2.0917288289688932357746628628976355030096248918202071021519384006559160442448750477513941699854250120126551185905224315688371920620268027130938844750905247622789839658996516090483859304468838652338371240492100868653235941696472077546882127446548220073911916495576465249535100529541273509422115365107629279079610150814478204690334685966124804768314324389620681403593729555877300509951033467255886988196634416908712805907975074386540054496102813516093461239080920636652561264968713734936985086298381279263569774864134536668350672057160573118015378830324320470510772629995091747899670785013588879588206617870404925584136182791696771388077891204948546833204341831508123517444456265763280815311409556993357639172818857810738422573867780377811966198395660895559224701832459503933716379292309119103641432860707341268846169256092037277704184425507969575228261450527140189295531668439563326273382616488830680192951248247392936573466315023528821137653634081785153476846706677657414991873745595459611149274690105023799204212635946802963585732545971306018391526541184865188649598714112341503483592919145130664438255881875311513389789665011343188723289198211561868587373970942141189550734292543236168891432687049651271927046086422914728983532259040483496455810188722348842466117482743593109995206543613044644909077495144885607910407270308954361644291155420857191563900223659645466435207824906645535250186095325708801309335765120212138304480081844347888445732738781936352768604058337741180384451745339880336359511008641548575933458584472809803525340182936359269669525007288796485367272329649729302520814280790343327608488888184630765661473663139800218444108422051613760887667604333706811650547331677023689725144285239722649771019027119005050048958901903811369556854896962830649875605205921161699377357739974069551139076466909953409226153757967993361988661391351992129104375375421002416857278577144284496421989586170455542458995098873320443257139186081863160401858973384817630374698027257961866707917082726765070561833718849923571443147931869197871150665245737671436593284172294524236769792556593013736722715012981083562093470647360349728816857715754219022508366873852669859540984204711374596927574078715995916605877958888235387121533208348458747069909283974720275978466526450748375781150678958950053071716702032156550946992393295203528349403457331012996915260115515103834984343386121335575476696324187160237848355319838084787470849763219952902292064223785626581279698733744911026858805931928205440989715064082397197589162071849740960419824384296256375231364554251917202754441406772023047122824539303065093081546152733703942827327425983722323991146908990680969075782442655783078054346022398414875258962694144729512874268025015549360167080172598057918827009489279850559788035417777428323808080539450016583064534954762264498460978423722152867186825791985179964957813597191386893167400891193139564464705177467835936797858001619846678388438384301082014344498853116299820931053083375164609828863319144801625325550668164772391073063558052886817446312355472906716825669441866841144298857769404696826468968746812728609541610348199443524156602541549933444244611042094796279353024390517676878192408107648888125341170511713843623488694821960431571869343274755892347950505092982558584942021967867057427131262698711457409942407814486442159842568664693973456639638622669284576727240516037144421372413523940321902623559202868092328002849602007231338842045934380688067536027556014430413036164020737929306534609771458692172534316479653625113580877380040190806964632967780044019134198907118132061244715805393405531221583666795433719467566131984267409006992030676812891918906808094677618708794641112774433883096315612546014488060671300650870788019651514128676302236170283640520330591042772217336230818388442255157426492957498114056211568878780779208038698204498831985188312286050657761368676665701324916363839491776726990355322487877118755122737282213825647688651378088565905600046383137417630388917311860639768207867585968377393847389654858722746348862463781272769674588509670627412158138535647283917219184170544766655510101746794705453757026525519780488152949376209059602876396121409100017579012036599833213284110358851276667592449042950497607325943867859434419201937307934430063396813859259193232278114140092743530485364321677451813741561181635085325076365656129253895503531551955003135125755483018937058801363164136331032355407547093673137730312489679125375691477207866097468366238963868375576861134713709425155005097228052874349734403016315331654696182576333102528926022633195063742075817813055894651093555523978478271089612353892721137256932877683806496889583551933213685964401232544443951674163395834800821718684081499095387743894671116768754322045182427864519674206526005541663733711169808952441009991317114576608595011838624665394536994100795788012025485310889144420672216668432566925529833061020085074324233752105838319131347592632062913677999029250178636761770349792460306805962525407720367114816430518815071064977224596243487173972924975784695746449906763955987338497301480893646516888495262240669649360845438251413459651777332407351294189177513195494655872775920863231178739529809588552268829022571488325713224012074561177609351656003872617472410277395248063412105252495569072510511645341255076044881368974037826537477841947696083103631670136289864628469362372265726643686644625329273892616759060260292682076959722855074848924849019564214007999179664727121917050601004035079674105599743748427911678746295214986687463071569512602337155920978524243332446500350756846538367026754620766018583878151704518040756517040265034935764059324893962674984016323822437403179773871333962619484625341435399649102180438224050945320023688077033147970010517654489241986493993810824496383046153859760445745468472282167325051062128405011414998418194650283232668953748256284771009930439888963240140146691894041211185208326943959375495084511291721166799994681044300096858401565652484978324627911679124814157243543724044008691514584290578414933258736393649945879869044230714021721720705151522835230362406956780229928287843333708330056898189797501457464282492266990543840470857931839274056405087719807814780302834696420438065822374438727134102735420282116473440413155840687806731984606306728750589642278200097544560822537577706698936103040497149115127315012525627914231824020255648525541616257157377749131435095696452120825470583892767064266591725556378669323484061886437698765314674428637331125121032657921880271493289366955555467896136262293805895825292617043497077404361239077095416948647655793250062369490681837965625500740406400580646013119890916188208122094749775819063520890910898029944252264235990480287510300508981849861680694280931033506509792136430343307594359799076726759324944848970745952899309566679774427159669968134995788462030406202140334068439897711412734509616986197667015768656246412061670949172809995270436539297216038329911573017743974797185986008175554013321027312638570461010821888994981332808997134517966620803691387435708657119905231217070692003894920459020351324070158992589799109584719737603306477141343540004529257347093122159279974624239494206987774513560349912552387891825648618815418250836669352742056900510566566676104751042444495149519178575663558251365733570381783856939222591890592566966768699184089633850232041420282277442604545864451086135402382475451625765682462452129570978990443056012558915776002311489081538622496156375682337112313576918352439368957177920725557703946977740847385317190943123849758841620508037629083736191692298919379086569807740997261350560142793789555087029739231443970281738582789570761185354130296013174157959256657997440354152903596887006127940540762372760937208345656972295636478279694055750579060486660657626725141338346035304486782238748779324638165231371184851418374064906442453601336363257233955191226720066920173461284680523632300447043332810078820802602814801349012649720998043321158215176520261713233707405342931870380983717531649831719011153464969423897078424236579753307502718370524893888835598478277065006743700922790419689776041537866529845550986456216630910398377694300828857718841291211532719783256933167930567023299086857523566888940838786752874778462460352777167319282886029779001081864706191448491308698199911806658451464882678402127897429145816431500957817265789825708313923910889233818523357870854502018798750943199953428509368442264192465923253421312341682293126470635868414210304255569957193040550732410757676853303240941943956352223204572196907522515207651493236126252588131871564659023684662183513660650681232531167693349634318135185251519190497263560412615315497501519830701473294997552282518813622187681925947003630064694898417320480065029728843962297768030903522497631126656037269537656344799232539790423234619427852675640564466352565561847920377286552634036386118428265824765952946857210396719260508815209511744367024118657416088986090645529431859989348157570435812466585454348809223665913155479502483500994262321492659103187643723836137757335159327064021601946181411168172218359492339960448189165246475203182775878826639216095935227907325778532622081999690239254517953732449717883837067984610641116194659671454088506632357989047312854871067634172309943867851304009276480240985281458425186245661025274760280233154888462031909025528862982536293349820121679083724951456375030558782717491430537940218804495535576776704646531615588882843693730754300558780023520940266290711485783769567414351262812633258876890318276490690895689027663255090692111643057255115726023294485843523005721715892961771449258420795940277071638299315836010400500847365287584340045744256431026508495238997507285774523860690771549907422283948032366174427143416426698891160653801101473859888245562102334707877123991533917546862709126868502283848291719624043400325703096352290692190761847219833043496280537404941427175145249296657356967833532682524501287338531702765958219759511420617598465026601539925485057871292008253040147006323715679929183473780866050761290842290717996498093473774487058423071596417337089230522548502246330037868932797182227772754869360209216909658654346904874644171344822412250578649171177256346695108504303115837806633219600670001384731799412626984959785547629080700886199577182243899603962124914032372196064357959119338123280592823944904074141543215919346893618812977538634549254938400216564623676001105988959718008799621781682192959826539484603599448582373077041408886648804298407496783361871927143645746819210796874185771230316785248104978114202310125560494577202322301184139233325538640975977180111591779226586005618938170337077276693276375190387538739732766036086506783904972039941568596181509823581345600206771831366108428817786758391888869049169116994711430612120897286615057500332705419466017058212437436989074829421216105890262609598500820539044632226108281357504318108657178971460595207615186686495087972121774916155084407836842366960193108195365278351570545382077000699759098326340438520389967077230271904760874064024831288635192488951076364935506541491928954006756647204523197371541259711367166650372050522976621667505529741542876246574279896642575594206249352778163900526364651296970488173864935293602648763139015601843222097858819507466754543399442428560523737902823389692352370401549212684145702528368994091132296333449592666420075864721206626487945244393375433423669752861348142381726879103193795138771132878006371870828239312542351556660561898526301573318885922667879862259411607168424026720730556195677475685991046980351236135631255114435603399658547369439210387907581156799300277270776613881433278340127893110043773002775220348920361336607262273097890636926396139452887454760949323475242400579056319539739764540478273640953763859671997826799564429885715131773678159799496135263449105080605064725583224670151701942511603856833247873136903943666527080032664348444493805724646797599190354485539520279088230818976853172913876500427663306923773746143512227511535794675576444361034428075444267545222114751998753393491249215773502605872458917265840656800499352630303745714281522553914060439641768561423258606939274200816682076432772642986765223387560432124853237031455256187357111671607606024337270071898756169075129132564432010478817672507788153456284023726204192560900851392262401223028519927922201920266962053463825366202338399909048306989793592600670349351374292850733050932549083125505671643975556677395084969263881623389305599453040902586295392146077709049883599268264106554755808866753827497176684897439139813516822795604163451809761582215619499349183482699267292729211886593770779271462139297629763270302978843704257602682084865962109173224890721810619466988669235568695140914642301655755523793385632675704783663146077269974779127825285969651081697954886877088384049249598869972625417701798221852099933358743533355292996908240698652005537007034392580457587451925580291691891817095375643658776435256605634746457629464205434700814769138127763892233239611697352524165388803939565374802121264684139616512062556183074832954401469776290531905529978403940776361098248935044208060239288477687252999720210860975635402495885893345158449060122798030219358636701003522844803928328231896526663103306711529479010391433139327963270539471682585172740289229827946962042853358223224460871927528732598636613587897445663701906516772352473181965537638723698901147093379607198995609020611458828263147398859304678738376626451156526657631029601831689617428655058604527258623408553693235825270794191655239481974106907913813886009953139466881744031940770630286717736069930501449587775992856215486458997403917554340391067382015853219449798822342444812064381695459727509186420687115412099871563843853792835560122115248036821497794392765040409871484154987240479643171557977112465901534730311855342807661507852555063801908332799355079250566078558377019173723732191733167877567316631535296129483946807808450155082448261720100389086986429460257271694086357663811023460624033436024613460451505122356718283526468704614037752965259444784917485145933752759781526014515509059451430485104927583366209567920056922458919463122683964434670676859496872660395216156316165609708913183510682202338542336698596624915348101287520939575170679411606151230664908291635257583604593964027595306473361939017979785771808360472408910514668612687026121744014187804668807346224856460892882795385461770234401094033342433901185942892946043717085259433416866582067356655807390588050345860199338237760646126085885268953332380681237161641776188351827459205686174945798952752575859514533722175240107560360091251438120862632586317173446443666166559244416859750994502881263704690436540003053059348502360427229963129923334512640847153484688406335642951345882839872117333893152508745068641560825166686362407887529036254946728830603279933584910045117685724012975978342552021711865677860114856259780909760014441908566099511235715627974520626958206028275186990096193850153249468187860994941281786102896563512422733332736367919098343649933555542470290711914539677681837595389915662348006470935881642934441597665501966451173305096952919570128102051262987917892521546296430165951705842950281053977876376707001327493719832736264402721652633846659353668219163112249101136289199392437681286153743894781474806745262998328229210485809895677034213497950074696222873633032086490962936974110575327579096862030997528593357506905567925614439285039996664646357841191311500118392986191211635714869994710933374843329314661720043065333650021792482002581800945059052044397003096393130836763290852404959533972553975763614683098406734159923268834643493553774515631517885836223158395675165237281085458351512973542335552100623987882089105426059594646254481957637209823344803905817334204271703410897836312468303605360578239506843163889835367170582123675090513890537362418882375933833624461229568584884908132347639231273257646417552667116227185054330724718019312346603404334132731884166416886497282532287918982623986013749354436699652645735478068331571394798262980480469118237629415265827269696140468737247437897114592733309780897259974219228024856088664216049528440161351782739536434186789664364998113692489360520424046122683563361687290956420493783902308947858809467573916667147101740311813555680259383325744962072158203392566380499136803324682017656360540167581753095923232042601539874596526832487477416265367916460747675952954386930680496842557492798262235049162093776716490307669169752217189641170483490814699925346412641097901366950292424257340668724093650080792216993226927989184134997196906156053277651933095647629730195117921847821749934511433599975606299330647091224170426366668352302447657106707097257409416302020336144654574325030354916662035785830391575432781309642726692014390495247060682160224246473316539666775127763165547016009385101466095023188352913778879185963529426974772616398434752081017784398846997056228798706833036874502006269109066277805923023142442060478798986157386863018055712682245220401558781002774674074847973691549239746583427737773807451135055989313835860918001648954355834082585573848213945220075614714345139016412846742002006360601903295066128884835445874427268199914727795826873418449337466997411174948381428063174266605638383902734523522922524571093100068220110735106020480617496167403686789285223269813454888508486085827235424951396350531279913849977831897729510520092631149357538840382908791674793865706495338452430329775728505247195263607427875070527604143037342077716354913209917775473053759235344091641143117833463017897512377885489812221494794732301010250017552767115293850041807819697278419454562522082029907745151634687752494944299362789599475283998715553077206866466798733207915282215754882849899416743871428764919781721684746946277212531370952601492998877879443775699496701674718956404906559094224036056181151220311811031289280525514111993515946599270149774252418866317214134190701498003568638943627201549080519582874425149357578948876780405296266684204669886061846789142349543332019322108608965836604107140108816501288163748510778305510141979445406789179998420766204287687733443147709594517070423743735479386786047121905036993649160798772651706188456751123987819187422735734886705719344432873665773859323517924120340284444806313167255632426809189297644817513883679897422372084502902741702930285922042100025415148797009344963464476116142840717339683122857770352180514869644390899017744219538985541655046979723685455023616790361195429132546459230017842817517822826335320516714529662640708933702028373831693261166932239165236873314337466985976592266167296358484776494770144701753806615139154918052515380962408888232953977054880355992719054868064563282246416508640173332545471718888318581396466905824057790301912244142998261036791814109591464173309042923317189485401444196681434699134926006610880088124255412973581969546767738633726776841412992431087306294260926275501979228632563191563724320393478519747460882035994301026943751499344162545534613494712599183012575980355258920874312562774669459437311320551758995811305028071793237994256532299824698112482571960099347983811158773303709507158438886206529879747677195556474223199341223935957042382892203137541867681163012591145070694470771832418189782018213450379482014939929020864368980590292625931577104290235291013747162289499944746151672639542416154190100575029801772676023973082243174865600267184227954022814335247026809781354504592907281357785709300764678864618510773719523951550353898081329890084804753864397541560939160203740555369264879721175860153350389934706876957688600796589711179637266518153764976245343412542080874704696619990617154362051019041532084849491342208371873694704782111055016133418444919702948661168238151333456556761863548191368813448302910012671645642896724649528401156035601890002694415961419975336204259780437581945934841136049580524642325309926896043789795821124456953954786400548048744219333176126100519647140159249625696001612463949518043034637630902473308979589203298377706382021561434882567431192254528237265787123591691188800256236052847714851150942860639802157499988613527459180492752395242927625976826819452330832158801817566641202495634575951666462946689546066695537419105130955525095826836500985502350654780010337003404229917529719275122660919008359186383434888250917720676453636340692746382913251750285405131285514547680911517606600237383133319936822834438427061314829352422823557755082804081195056512585206401578898571253893427940886195085923910240219459725615461893520564466598681012492780017695467488796714422502639603342616157272019299149332972052105228712125889094477208139083266146283143463589989798626534649178093482620784488275807537030473039631237738005099116867540370537883130683067570097268603198091249797568783407869215693511469355570806100723462226343846060075592034032540050399542105713128349413929331372763381384545212330796085678548876816420545896601496092750149763332807878945191696686444872017246100928021519334047723382573996904746298392482784687410781910239290132688064824300728463608155677381511913507463682061581377570073401833791375350255150223494666722939967110280265392687547897229247976610950831450893578914873800728181296120455768058589858013848589773517822254338710177693983642777988573133975079322178240407608815936372444922597002490946742793100530613265433822544416344256335923311110809103776209608298689495082207599317921444355789455564211352904825755102047354473990715532967347963322465912430592423923022725082092157466645898272299536480614598557859696863856467172679976974598865981055037803212059463352220803986605671337844567119937725763309275026271012486235778359137462569093140390849148109439296064746331553934722565991453103110774977894552400649694908394620537957096075119757638628859832706619291428850205981329131490922475069320508345594117910339354525481326564972338158166941792408395257100297331787953539937605654825708259505695676527903220964796307818728919612275231735437647173409365809036707380955928724301181867968876210723811606177437397498314706007763044991295376460303208034066397101062233396974778004153939018111055058445952286334442247618037921376634501520414668786891586429347934689909484669873666727041851979652964456846994988212836567658451724845602453416414401090458312337123296770860257826872621966148901562470714784817192274606890245974893045637772705963526306106771174592648317967230331238116471423695783985278513499700495984574401163796152089384001813014225496537781451879464743432638699526402618286694544040566691572684989504646705435343046971765139606516435837429191295851107334113402503947756882740755197371985055056508804692544978411497154707807301052621436893543795543523722496497322622694919730006790445416833177200503098913190003948733777129320010565351579815277376387784920756251746475659789101524636505827836064661927614958548033869262088323887499438921898073429803913929258062812442213350994221781075090383253286984902044954301249824952153045243193230798964508552204410367999557918371870178100893662529779140412285500300127845865570601142086871907563948971820491454867871959638333885521212260408964258936710751908899870293329791879326996000446683999107773444109380488858166527940288001238765371240887609592749197089350045088258793783128697315415111975179214498984969048009165427617660356110457592481348395012025927403473623921438570443759015369483202184729655418736424112838038537110944084895841578668406038968373914894432104091197793565267345918200481308838595553854099241099395778710572624470295205012535132247529697954179098481480329556704283578206673779639458361704184512120076836195667583436833360603274702005795882468298601894629104783017259021640058759319482370178232759802047666100363206758492941375627900755759134182122457639665484960266761902258774194645911575870944642425173945399244668445046975696634688626287066529693110885916818473987384317622750497744151058157546052227953487243781022313762967079525733133150069817147102474198761942902633000008661284004597821229741696665056049818485931312950395937326591978159752050010996165225286276572925566417639722838914706261498383713354959169551152610097894567420919784629263562706183259598656552879437323561078084661040232090085014630655564298154874787618193282376652796614615986208936884354819500858151884942268159267768037801677369268001726395293551209403364496278441970191826144705275845192827148558121338850417265118915034296065617960557222739496540585591077461408154313064388983410214182478055261968724299561342156536418394203154440605831889724100802094514760299350043770196441253530693056344449531529372442025835417857403160469056875777735182217850267060063598786366469952287884568580655828456981928553240802047336753007932817389141286313317598285843390585885043954176973980796385839531648681945540519003414379157294191006507955220630170764026282807879701993414720790124194333567346930465760429672801764104229776652827465946732730836883196746923210155630398621635169037643375281726845133549437455606803042942046671929224457512005173751548165834809338788369126545028168969858609741521650647224323471088180722451341936713264723272758733944505231548632864743761619258074735244590843478765610333064900207333416473960626230390881306547679066250013131443762346034759024305059414946706970825731783133322097237591532735348221744528434536498478077880929290017203349048880975759641249794020700130092144053012226109527775244592763104127993160636777891797904330304352453778028329640785243730858913138628303668163622231942342392870028513392208059089831134407333401246672311417866257163996290831554679286622995579774119820878084518473119648639520738745072489557879734342821603258046480744209420454285280325289425467955604066388782486332282973942540818253473672283877162109774627759039997726500237823681426361989493476812101159769809964197206806068009996862907383763471292587814769018153095989013802163788289001166897259628073644241939545873147966017494006690596292084600678770522720316033449409589585064304668673750784993727179314793059049320762198371252034857652771152645352678868356961204890807311857403226367068284324599989119650776782787334508633816673668508515563299982912648031352225115207141556608163576856365662129124991494245208640139408963998132403124107066251814716159191527764440700212779260257131395814174948639711486208128741663864341366415188951521020653888793096705195414046554891357862950381800362606062547563084942956897336215699116321933840350207016446724417397442164098127149395446574216641276725568695380539611006604752136966117910560078844779490906684957702443512165501529606504565008356295097084662905707519592180534880512895084163655047042029973104662130676809537103904299352531046500292444346729019855265515458675527604331863348640270889856269253474436345770131503934945507172659558828948058002022115298728891013610843603307468008817231567814324181827890180029008771760493149589958820199105093490150464996937012317093842194716653640545158281474707818391016231250249188357634801083859346792082235064052529888286235008566421699096589054106069915000480253884267914771007285912364814671810198616064690460358643415552190396155944364772105934104801863355333478154458066390332195887433930934186219414026856404929458531186544092082210651630663966247700924153757951773632336360847911113999152803687411252418460134977008015622571934738066653166107189603155173976430391279905392852093818318036882572998719647854426261222207790372128622777920961908918147121926094156751787752515681821309826517893831677569226758310360356423528443436783030666651079848759403197443717081251765991854826675524127783032283683206060808627616269374121126631121893247081722302736464938807496584262562561071409466047004642057943135969211198645388043554820340340842885838144385915915475373030919762870677860166514197448513720228354592537326472107130283257569553862284862061592803498019102149921327120184172364448268612190155997024161337161085820328030246565051307092004684188973034895871419030265114239657926587794619881579829556524094915007956183253321379395579627258833127909155738791083603352816132075739183108024604447532528664069404358597201622748102516368308192845479342700953195833920133273217452701971247425031237808488780984943612314729470560311934833014455825488338929517145884452915560215239579823831814882824983411822741637564432211027919101811515868683308183269931012261638673462666016806421304450806738138267366279252475570039311604725673878447821865116228470745417139245363458382807614747819249893387711795600623422836059238886036822336428434107226643071622093862046702809812863515474396259166937311311676743483319348146119435484896779675106164090218098782876960540613271618513863667958729184357930900338393696107151978910157522084017530719392544336097204957555037860180140867828579531680264889460617068397852719229199304365877698886078785344014647422921765000313631067870822672191888982310491104846302745877912587289725599235078840140637255432704629540380830596502596839167499541178644776281731629154050641790024981880907883378604999681339366601510847972181722617898644848919657614848849517011099902364949180884785008939953353421495594073957076645619941757853788943212389805754008867537325378742767313478414873281925540347457083073440111819638250047173534167303213249333135710363923770603394749980251692534012801196141497029280023715287231829146209757050699294490530242430702384226434216146932547413383659607550992783831389313721835707543972738360951684361507647781885649397602276470625816201426805720066244096673237473083012832340785722729607561935768677462901873023806408519569147837849299641994514010542481189115194746514298929274963953437855707002556434714127353643128645530069364514903033204485658891010586624022109087715467159684615590704914030216453518825087737489143845976225893143892540530824627548733466387414230232695109678065423785912649998179775728639171314797734344506088179513719803243302004298796217752045785189313754508965183728218120223612938579237277704698493828376655189051237655705153248421524858976733795661409352499306909254094358159627653070801261275240210087661872317558209605959280491940919661255080096895462671898262450336243747981115148279081352090091547806684343112295698684108440493314366157552848552859318015462367988347322030661252279557025715924491683330295063064000282133978160148079648713835899581780647390173560697586925643151045103529862926038145681594037968147131960017134559213033920617419134162227018401882079486392312081596321137673325450582775675051771935507101719961778285817882751142536017879500760178790110345421744441087385699024341373862301576466337410175457243782878676172893038069145793971776822798451855461480227242710509348023187995767019555451074535979448268396457415131446383071832746265261115255407277428857797563000474081881498957045271789281358047867145430096063103313976619176927248086935161433260848259308443858448351111741307936771610274534124908952483900762724877860214458362848929267138290290983905292818285064072647534440573384821899183190851851558060245448631755801860054464283970133926757844359145790325873553893045778977022391722971015761858442407981333803482400775441834518807559742047888162434350947862663162499863721029524364652991759481384391236247004715735889704327548511135608831810952064599717355240583968442757853396422041094220633989135413582701405139173800667166850386637326058067944832741311959114726638264722633084805409181942831965285240840264148435427470076433777915708346741808386424253691819884573761468367923475600595276027815580232898140118877378618303451737511808174726597460586503912477530399647841234708504395128066786982195803208235055949602599037650647986448451616577154618250155748765802252273930282385064865995880769052815214104757165013020554041313231464454887553891255464328472589825032015647457947030232822180362525745462511535501991486601986698293982432412816839274670102789471183779837585499715706954239839083872347586116266399900816774230070473280240884814294302718529116128150700530049496958119490443026861081247549683741054324914482810322836546148259569211795366579320178818829569316003955455581543717978023831089116011769690217088221779022286116576434368653606389487297735369480043843200584709344479668430882375331061457978330424438736395868172816225829254280912542359907896255582290162358611470819619169057043007241014994511482323047503200058981676343305019231203184320252309030143446079686336977173928180738089505970651974999707996345756240279185460795515208299497567349126100599244267111704038248463476599006373799332248749082582843458691873455291846079960318731631011633395373367273563205874178765966019652385947056723309028209187360719114571186616682771989829988658835623122129115538382366643151532761167862578205159340094834455368963039075048410330891885801063571326694400888104724190866499902815725174443853232886588146964611522811762082664987780498220782171979769216421878341863547263610200067542462975480158681134159718336484596994706864944587322117526157242141359654104747472680007543106788710870786094008989252622059337697290293050351055511333407889728343501081705804892246597343893725499966747654367945226631924748951889161615010914957867603086965290065706860303581077855958891914397469170093294170248340292356398416236173509705514059582311136357774973042025334447167976722416635881984200885544343826946608628488626291850765677971972037181192182962444272928474710466039247147638222460415941961529757021105289367832050935881078695945599297095019250258065743023222113971858308470397288266562656066830460064302236922162800344143653426080134999271737489276769041735027277360086110345091451132048018084972142538488762205204137797422067665599487370100070318338491667519871816857225852635755298855344735063789804490370496888226957573603575523213252691045655302167293468406430489515208661178575878312054362586176169782949465498780012470525142787161672819955687576065074969978504293144082966780953960223418383557255646387818956604990557082921026984670772299196964730368932660771089029679987386806941804043074280557773200085636798580989734184699875660243859080555157474002158803840227768491660732514941732024876687693129875324730881478565858667879171614749861704609628394952222440482292501334088109130913862741440882039834601681654196056575907910052622594080518733277609903996866774771674784119630030831872207928076897166044840286950804138918730301849887626291205778437695616573624905819613981861488381727989215224110826502818354302581836510095273515367874132311171658710227121041702024084741667325646469936262044521734328595522352241152637780187262712160358863540118238690356957823301057493727850683421910732235290160398380246168466007026494206739686943948034373685530404431720090477406580697554543606974223789810029465796425109083855143074241562317161575403371723822926803513717600244110579852509233581290872735359135707629127649982576100545913139850419626780007538123821186536494739246335126365398603144905643980915641510968382277497288249958740656228327170357573826591481323302087213353390155034478311946705262130830718061725639128731893136416196717052650533358430501581285377384956270892145438602521643701471953044246950951031800854745633198029213590511926761550497764170973418667471974278845815574199059023718792687516534207012222397305172747255482760825353641510503603475222059982559163396275793240062667384053078892122755767801799077920744874758305640524168938096219759101964932203741142800443528832148693654843955709074993848238788416829126623221574897148326688938996890584006206133788762217381863822194651799528365282423325075899147901694639786310984657952288889180164341220285348031310513060887524007277965544702448517087942501376089164386850692351741246728952200531389022332500069537200784401402496410178867839770330660878874424809829596099880388915905633087389557840688798659687075473158460764752921191323007029104448665721658829799733337310196310582479213398991138333097807380477425171798716575333002893071251409375789764632735210913952354505826605748789182112644824332453498452777727352554235163432114621764400093921343779311122791891518542985665544216775870970001701859912566170900438597658457987672537933988874564396343907859208288718955544818389997014789632146883969005372865391754221602217783460554826046018926014493304947081233591683972176564765280144057815043488844027782344379262655535305950963970439231916862533699818895869166111744307947168885578397698543132106711012908648118460060385722540627502893900166130784676393051213331707436381792027233541143596524634409256246288344588102395063800823741107132968142842483890884580993431905895627562163717083715441332025482387711123293167093696714414338083245363754950817228732330051185257851009679043997225980439868829813925795583027337450741735921296993567001077204752038055395158646044811895872085084334490103029303375658680653492346408431910068883478764605121810009306725193804050118470069804133880846603039094740419588615902214402592217182119326716146990718127947321645456023556656564171609239390811316433398134125483461736425897057664106625631795823075933543011592350977639127307121718675145421771769209012438503699936816041258549267267999679848715777549302173438197941900894009574861538620487318006150796897703890635611151478396833920429266457424506632274247801047846525355241592559558305097013179983799729615017065116020746763230690315725006773378047437657217584943853901249417161812747365869129890028332082844087430737302813067921433390211033706203186292983162739932368199248154820027554161599436839960713551015629699404220660751075428457506354688265617077415793262574705798806251908704954771362803728697771210177305063047258448775823992167745412972849755630779154704430898491862636100375439502670135114571192221821478741857466283705256618179467566376059700195356084347961355035628445880215470761910782636684895319685922260487073347473952028927494326804998560540833795600117876485890929979611775791179402904581193830611983292328980189764236951370358956295497497534012274732170979527194227492109149584253987352505357164576812749297475026305645015335686610035574729960042544099088265555070714337766121240813499762445894039322943647354426693755420892718439151354471382775825045348234427954862420579445427669762882720948563065903772295239716542384365801642621459576552175597491727917054403631864467381847281966335898925316385329394180693059722553676088634253770054658219996527954156762590743280944611653319603570062424833744275440388079420827295055410245069806254147580731512155078235591594243034658151913297097782605441959994446785053791491140676132723329535395253850924135884316591014578627184192041682756261475154889219691654623497210990263679414233384502754215650260935222651833500395205235473769711708668911511858421922354728978730613507751764562630598542112025880184881483830247294862568124338662333295816710171676080230848797973979079317912125215701554910309828056866146278853057217841357000079326676876252247209019150249964044297765415476653443186852961875176886693473020382369050154706141949369381547683826037586689339989525625515569808202361602040942590181698266717254743671878834412622238323685672252485635660159206762642247336574481879610322420745519310008366054461129134980195845733884703179299034760282751121525619736514832637589227862615463600236182199416236492188392584017516453405037916658820803019917713384247280107303184406585115406280630218903919354973761627998942236466280016681758204628544338231436728984514531773612577559492506465839834041793545000556250139603090604019580627331028285469334676215072654565804226793795460953809869323040055223368092128541569468798697476251957480371652890305931532487221474673538262115802773496189522989119283989871281121717078823269497794758392427151994083294929621248418781670489702543478301349274856627104076382656010264776829807239072980990845254214788892970077566955590589857571110468151647223797843230987673326043404823397596247102316858280384238921808770060078210883861993210221680358563222301265268139267285434552544298397975034326561495057322862694324580552303500114295758717354330525853782172723023613875554887833402979971101015502877223607723397693048044206080287361168601619703310072992637639155464458474258357433673151244510509764997937273159713994246550221280616254459965630882452234937177999939207687801083336550973214846721057050526812221245696460519067211354094796538541104554161696333021163083296407387540304134434055196644611060633386323665400131924604166470215465855740255630258224205707183745980958149944888225882752668054332246327021232225673490494396618078744283356422458372601864129827387605506105250333388044730382818097663951147592954261274077645709066697937185659951555228146926342422212667119548269267042253011418897730353461570702537970036372285366418371000052172305501130634797054103762402392362015026375969054156137982347688400508234827291989218092756336894592250377556404713537793341205746441336989708475415703345380864695117034212659606021531264187733365173023458586125667479715028400034614303939556625040960900822553082472905666937476191294083167077773878257076353791275496422910882703235965146466950807574477495260196550849267197085902938244389066004778328717336010265288401517372446337244176162382605554647605639030535275687092721653744998876063602209042686678599473795968174965897078451668383130909077932772070392661888326655772128392276115668382689041263007398719496437782834596908392791561975046703219285810817965827502916285702494759106862795413997952097325424714252043564765239665282629320600271540765678711046755591762247054619843615793328786917578124890968888763276204759880021057491775704124197011807609373473155560794405074393507927992565081674463230722396410825419087148982445178960404173774575678529105964482555095975493489223383114589429544174473017192900549739215105215339605439435510682565798527520996196551465044857433252444138354299619934222347973579071188695757226379734626265761553277830361184490279646102193634449756164350638843682425506196411841774255870738948342338445321447715178169300684741472771931966590935456864834060096790587047252157321485346381747855054743049812534783654631531227099781234807937593833851235541628800037100959866294344338321960476116515513805784056457503098713685462302139863832936436097483847168274178526965286580721293725155585068967457347270508755169670667415066218147375230762614042423080324477386022386645036137263295221449850357622169481598293777495429731574034989642641469713563890904100111491985907565713468545617942217929351926839484757443188195940061409668544706052752588186880988391431179799402039576129582413653517979503060388861454110688453323607477695337924137480270999186742630088631580464089789821354956383464954812235169652734890556015779204542709646261990490811406411603673659927216594771447881625304116726542251785617944406002801528232742883329390428833181271024814614300934753637274167228414116362566321819558630010259677708110724741549412255120639636841539404496864857703282333468827461994493775694710717235249578975961750258950519762007491602299075922291257688978528460449285796119275958114350649299059747502593974768494099292204245268831848460488153791218561168379310019000621870299418601667607177147170781918549290335745623947020530549653520887317443193913721224615716142466320965790246838083469777900367396320356214149697444816330340858936021609970754911617918948344532438839357098283793929125828570008873140792139238493261589886447782059800649724344300531025616472170642806941833802273325051365110336116153509370071828405760906277639142851623780954902779330011816496044318000364367179319622350843718147723690494389287079369839856783333188946565217464360331672750519682393262906595661264527439207091596045691231891981118322884033820247240183552225637930635727961460494607847216058839762999512065571929104167266448079853411175656766241852963307399032146646735439036926945255673377717878062280983293198320998972673067256577217847453987177884212605667198686278202841826137643994284483750688201572914611449640572377057565915282266028027795601131057554312457860570583859383258184238289778698102461740076841309908679816934884345938911002909993981828392736749487975981879023917122844048767579261730544943079817390477421655306178795079612900950474403995090113273234078053660595628583649355956289111064778067562994291607819192353266367264608448847420300045146923706680544355782248301304451558141141103029017562932957574295321903498240356378582963133151017340850509928117533177411877360344120754091193111807100902107846180121106932072726023668896731523252797022856864836195193079321776877138917431257272774304333658126722574524508574627873450712358685923445458745942279085324397699623978242697389962541497770139476785185787225106774057843268910498744288946052022211813343767448464166083810760441189513118877226927297009085998194415459255719598857752627058774274362014849030835419400660217627207883604894450602628060314536808407226326293538666514654521443638697178576857967925829899385372586814287925852851495708361113589326690208290263624369036331530387136963972553469023115802396143806466581811580080396442269164948890744852211849926044955182972179537690216387625708865205513188603365453344519170928222756196330915247944640297207019067343088601821955753446938359294734550946455731282727151073690230583465139216203650590186817687707176816278344785876007943122386026833300760047113588493290524099629206120820656603584342881734820822689885902618872421578858106838164528999473151949497167026097173887696448956710310896576301783108265961008061650394536002663308825817660000777102755057048913801478136428463117870827389637248117271418989319744276040902799232508625396812378342682170186724255594488218642976667273549877947319226061006083745470604206101628568534817586927616942744514284530949652974509059686112137956152247412851072714379278653902866452531352930878192406969919501216816453218827577673477867562406584669961895906015895974505063809101550349372426353151765794961602085990924090717947816509183707963605770741558762398339848406344486991257542311059350585541153625923432025204316890904038445226377183736942515548433107774472592738643580577487864599159312934126719099080157309014478452613913705200174825139207406259110342100930156528824615423120952552755785901147868559369540647215611283325602394487585501045035682247353772911603452886082736376758480381549968601587612150074952419552179323608226645095536586416593439483270615774630442067494110054485022372220302026299748760483182568094877498227103813878775892846343427585987152256888788577976143272063844303244219823340259514778830059573536820357693101692633484246227026836276628748886432918770515909326142125290166212030501056777120477642064939828063836843186627404351211006340668825609993725974311640386080943678040929644385118112108235815568946072197887062885404333673696758835407331074851647315694069115098528362372084611653928541617994829434800566322133327295445904480768287423698756756624318164567117309798905385696910952038665112010440539110640711842206567632163330206420534371237045514525213190637982497030709420416312245259061554894689704797251404872169127621395877748440319952122805197290522179990781338088751345848926515884476077013212528515680661667354564026018943252547431912336174086711201312684312808763839075633758839642332191782440363583549547894869045400989000137983665029908617327173792570180167229972504286926707388319919903259504129912647137804097311743604546546157628892672945267459877152438301909934281049336550672363400289862939753842720863862739431962322170907304894536943171984833456522534681200749464220595261358961531102382432424858634693231194040867095182810003599544925986123786035696385558037053360706200570664598957514652442052993802588584782608106665590305087143581804943419078377386079690470302124591323734472891602643233457370836348356465196262666471195340444020109972832028744175328573353289227929507096865643946897844398086767148515304138050005003737435519811844180315255175320340393923458168788038465311350295964743142567563526444006882851553813244767387255818608641413055369824599296888439834664796428834070174877504207828454425382311117351452820029675335267385233158144538058590656832987562231099075554068557219018726665939198905197657220637390372571331019127466642606394501112507467296744320953594390763770249946373337933813406302986781954309209734888781071921760777037192697763025384026495866136988869223544285453466655672986925271326581719636818811131206248605823546940302396612138647070021088519613887288911860860994404337800029649669864457865326128778923293022928070423404175148253345130029922896476665013720101132804303958849850654484133876664869999969357128322891096542459101039244198569859991755986175304928478447508859951013216260174368109097747031773361320975683777606110174965010866645186638932196840598489340714621435077968126549889145400142120944267133357494644961232754959393249757110759002737028593291212649508022043679721999017069473214788215812850467141169984038430404967238041923105858319962863951564431749703492314471140864415480731281530900324209351343413226025824050241603705736229695479995676196617765805892164956945204667597417110698072762096471900717931768848497494161060939003384258213764044511080954313890198935880760037582494012477044541612329289722948363031613273314215510480650140227539493564449484882978523457169985541511502970163978048489407582134924574306417052540730029650277142403444452109600692862955901704895431193207586141920517900280955861693947856153346623421719523748003141589754100818123043562591456528432215866280513090097153630802577332227498250835940173881876539862258486748182997113505751781128588760423794629056648743013442632919364417667788822922479562630616982640035512514416136910738860596028296994150978987235777344868583713154822881278839937889438971048184852909608522608285301193970061860513724165166846476231400612259799068906325020159641131619393094948609036281942812465670250060508804798657946980293180983517313936936092590171169032905166437973717387684131350146123012272985967308516232938908206891968713188928690544703839086520269624486425306283539451104186718252418169680181375710519069822907887195117810865715690093786603993822652742344356553314116602864048873776067323913191924453027731460015352656484708390677582289765776195169362839238759363152442800363761950628627352829306586020687283013792920271171732076086335481989655468137080718152657801240311256851499512228517427826526576351196281784233803415160970989324185630098522737391252318536484048075366672102204199251281234117477666488521080032359068899970351318137146218544342554857250260393239517513030956175139679180732831458439910726814337080177749665311322425333790145508803607186815670658358924305031232953440320982034522989160109676951513443945975007503518529357544460201971483017850611613280124833014601452941015047107148534407798249238215765386955892087791795364123801141254755201625714340028627001310963125929090851027132980852166096454615215603283710471513835280195630147067560813061596075930596960130513281438949243132528497980590265739753977331050187839833485299684422826002718210977005095588030848979081524467813741359336673987527509816767401805033943777001341887330354622674849133014893106099580722016661006913846910211909310833087294578161694100950705207592714002624187217859150045866203149678263392340101453007052966423414964357953706226819261802598004620062217277660622260237999514089858128751094509439197185738172244442545681486645845674142103548734600818794600578223433109438902993419363184003096289073912890577622129545557971697739618131919525830646541808478060819715901410226693004545305027859653267509555002152403593248557739372946808182953481428331365501444006812124793047190697745018642043912699241506349338186100389325237065728827179992231507078835536015616189041116174695508301423048232326138329345505200147603338504305292739400216874142890947181122588456013091937657907202961452719898261638078283516772112226584179041108486370648963658426811834318263478552409541789092860746226124123067072524785329183190655342728325158141625642487326932229160602802447739047845779830172709142024050547206287230157239305871417893580826125710570035686490577081852630324812342894344649167355101850934315967633232933881149574169061255248294362138714258684765815096637862508383901925542905553689966691927549599781892476892223273909910828732140704392029166402989040354166731195487640844472708014508431948569885385413834043155823363717423063274734764810305870707423721591404257538740431237357464534305099371670028882136469408969610923088244338263560323080436667835796490531766532564433023465069654625695797883253563367703387895926735125833688289471865775022439392846428090176276248112132345778922932888305201215207584963362041898293881184695141274545907674448472429237713818476140986838530188266841317526492041556842261434983872788223604890667292615235047763787791484625781660910231125877465105808810956894324293311832921869473969380409177970655484276720987401010590820970467857028399699922514424721383730155523883703651447426040414598805001054964087130732028480857134735522691040009663874950787826360449992072981482438814761779629644954757130710569793798844906730902011576431040772513162428272085614873011730488097136580393146120887407025309424633979719289945276359320588812315426337217117969140491271213422461567955393630301450114549135915862174306531079264988270056582894951368883598172198721553761322452444045536912159081806624843794906599927255073880376873202306392416624999393033281488936535122045865590758046046929610948802115753306925786241093348599143273855196625116616406042304740493117998686500024951500564944420526201672313612480413105708891702022679308234613044540728837986948371800628790101686161085138323494134175202879695965456449193292280552520127522587549541895847947906216695712251360301449480562563867109697778200531297198377523084373667741378868286631689007127824470625782674406452498382943753100731737725253671227125535251610245045679381832071916893204840754713423825446799038544865461456964266140999017148176078304025825003450123886585294883421993250249876931391077061314045075492675002634115289063467356962721494899301202712880196107892270302033684602353757053402025419684851894859506861280931551917653822811589510385079318157430142963114186713285607745063658989311176206685506419396806455360961727837692532733050690369959071111364134508930624377147759495919934557935969197094852073039328426492538116834666447933229026591858680781751471991757681860336861517598666110283725575714928906276774306872020488983783711925491614535823357564716254574271202988844921227733881435472025678594874550484588088706293501311966256743800398910494632447848097387357284572180360808027803425857821122918023938979917303620996725197014849244954010325573902489318567016262617628539989212003169645824496081038145498311242972488207965900486993222491964002218681270809741033964995149694555765477612367755852848871058225114598355340669663011518831700002548011425042601635821883459282935723735398964620457418246325928439360126469276618289452875967819269826717897735950372808439930473359917791723806018558728656173516917305381571174982629295647535138486874052290864354647070825070945700426446285119771048962499301932349621978618733145244466043268632885842994407801811981978485501634925428869836127672519719576696613594092196706674649349459624716823586555890782139541366570697159502913250971569425861391552815546626752728271231531747922196970961943319442421503410672405636279866498358461897679493692729942555692164346184891917451202346083898910501961618463600696407553763507214171822821440427059493994665086435580374749387469276226360940720254270356985131285793334014976937936470022454260462097466577051127930406120791419221099357010337747298563617689609390134649543231935999697870211098578415771750603191874744587757905335815992364373597359098406570916089415711716508612890028391677835317410701212634970580740449578707230581410256522224458157772227651997446593419687822986729671035386872633453327360242634357546162370374164925340690076808517155607005313170684877196856802422534568359141722580867168478001768640743297371148814600050747591591870755164608955320801499493647709646155673508499644666798089535590994002365511325783088684319842383323150545110830019701313267734550066309636487560668613823660168282383075591596290003215201211340990592075713925283001572820658446358720446871916781994699133041742555949758222682402653126642016758838651403760832871920993857467874266618314557598509162636891931381787258863869792394042554081378100315332059788918633712187001944619136274448869513390719839073270629851960597014070311440650670486222779058925764377177922053112562548292306639350016505620717804292575332853725671522625881449294886665297886438037195488992564439230596379876232330760193047630935086118082300203876238592283164665440717916528839430746380012006273623518169530754780137964013135388694916313237577667348994711577736997112660483645458460496043497271522642119840288790225378613821498631000166302804737490219842428492527314487729842150435570396623470011049791426111037101936636170102896752991930967897624206149592219947740129202180159137010970667203841593486310946878358043468569357612673033714235796301053520006614041315943015336987930975048544008011505164132456330710525670250620202169178328449890311474470071817616861659393890432142081020265372577260493805774902060684401822628122046861879965209962436302984917984775558931460073757793663242609162010360730483741690533155240121085992894025295030934649040113613036652549809729313784527327146750367731336492913611511731841653022114384322042034410689563844395594487139234824224312186033121793730482965679005605237559197687750100888324104343360909143148137822756449966584037727247104579871773645282221348303445657459146363821420115746313144773308249027864203351564989360682021783253508242306599753200103795001103551669186737978126946176309257326814450648520203576443389380445033750652584490172279024481663845675787820995593944929056316728394396197800808544548147089920128142665976667415978338877469754525486388012799557550269606411134978558482636583187734108984135754319798946645898199988929094665772172649007514929594220703553605054218228379431074405716296771856706774756396169521522064026047876080403774041844541291409499695911209687806627472234038426143501588829503970931378194973099107262003699494119196908644084883224691013248530517549472672091494517019002342925432942578015655481044565563126150863253239282851118195543196609858787500184249116969296877689748611129988589877677229383477928381639053759985314993849033494448182976583709267725316605195075837494924403308146351372781610698340560514589223830430046517525099626102647101637893403987314477040465409790858133462400838603505283907059267852637040190892785091507188292559056868385152373087840181254697111632235639572763328155331439673003658879356263759709061273862160906938485738499625126224153608069241289581041506140099125078367740142164363207950647534565476035967971734667774888438260998101777182749479459557069232678637014387081867439661158520540492193641938989029489489741627074810982981880081424722109982147501868771244815687345099953655287340586313445754398539166632092634189858422672757310375690970831607071512120620540644756558247788831124433330240137302474357835701646103359912736578898607616350463725682246312935976164318678279751371568630300927594043333022529350831162141584641460376170793707077974338251436415478855465371992774042322077811937057052171935244887379618192804928326915772294828597175927873517120038062258540135500050520813563273449821946299062996937353299501361548019411236415944260875252777451937513037611267194017947333672812325633592179730412806740461413820906965401803921286906154135244734895708363832162444473172530215256538067516270364225624184004796650704707370621402982943433745282351148334822581996446289222212592315992524062454668548004733466322660650254194978354313084968852805666259635658156234391261283237406736314841593080859437465249564110388881233078872086868264973167720842292930331969863437097187861808519894078858141183719059353213534191099182994609632256887023238236357586159287298383929887621494950387263054440428440881236904562174324418509962912924598392366092810640094580609567825666592445065750746377313384816899671597103892231055707969720141740303689074907751653439277614142359752708616049079129776561856340602087647865759345447385308993000260956402195921528174408862865504800872363365051268234500205945370213180900831342926718399389052586788543595787981877894765039492816188590295353314237867369373993075323768882346918033658095186735354911502065147039528343711887584647133623062179266347676044383503871282230535614540523638317133113789010209415213428678460064784163071195211921570540088122335907962019988651133486901499668444551336831139176601008396015602118036369514682679753899177334174158567712119302373189266047181345110676636023642542696670024948658949038975505742876935746429132925413497939440925076006433711745554080392330591255748648233166014374175237812554610660800425734948854455496648785209417014543112032065111986363123739967754249407583718968521449128434491287551924725685164060767044789279409328555832772424649979922563451278148784144807453112126849318543202778351188524667590680563132389233940730688819481178070141283320632375035767147685040811654394201902761142816297900436178110165509487229937745176123185515585686682104628404629076045076373035480891315799245342485463206717840592561852364266846013692403828937864118537743284873976343734907287998176509966999078838174417759871171926254127163308356615005816359682318094668863053660369720453998974584843106665849853336753702438203582532775340403633658334659509849659219255384878649106192397906140453566959306006795585850018869060903467039168289517049737414716745213670232386321068888258878018028869111607943114097807812189472623653852070952059482439572008435677144090832229273168103282073570186399703797575747136815771149711426813534179558521852913078861491633522081213574231709048561822931711231133168612731760728111031238700368984584000060963937011969404036910281639408080734965289946739742268671259614526101007392517656934816229851600245797124341631147160000456196868558356396757735406171017852120833910971817738650619319585741961939644588073345379711996634272833439285350483198187892889535868861096861836587700215079859789213700805791071782805817665412720474796892238982620843403559877116591578412779862170144109516978972400791972196584262501379237247327231569069054138695855294786974320850004576006504880066618013496751621470541274198880295775647287660956539336608582641295651426241667273453785517661621259126469907344487816809995627300642570012807688840761409806563519464858056214318503100753965127980099660983835006917377467334564552510296007577068744024802294402041826569006439478555482216886302942716549548015939323862772316241041863560782127119535826544174924349194037844713482594121770247527359237182026969180576559623662922267467517939465602979421983199172638115106192832591144374449323365313415083252080380198954991864183385066609878217694607140452709507530336690130098050361276419618587237881544077443872092878718582705900568130160051164530842964591256992900045870124310196845985565484337234020688885337274003406607502772854688803073750990468204670128202306505300053911995787744164056692420850348167445568822538928799604751267273169980656447880424843295904550481555852368473678404987329252383175171926726844879571883729199455303540263527605017246417341785149382140415819067642987615797118413665973144934288268976979249635173947235064996566950264358712787992217162230705986572985123334150458453013636648496587319018328634154531317767650191667160099232522812783297499690235902595321770259049032341236620858338498802113385069324149703418885203680078101079767154613437194404109559127919025562098374496846222197778659534927442368452001485960603474017060622162365428214845812983632083636491615894403236135582394002388390409102064839509429375396922007673914845222646132796515286227649044199773628703717119182562334728092264133019085019790544448956748054812336520240559225719328346411046859966990751160318138257692503325431815128576713400912545922873985739784044578735254163323687456188704946141765604293949074117731030188381887646809746564874071530015970343701489780165217046772399178789964993186799915187128462034319395893483095943085227544035248025136319742406081860896590105970988475520303351580001567848976195685123735314994878465821191330552335507830725069702259112013587888863161335357914313752720919268870571306487386951947274623017124172773730124020633663370364181054782975762497890484449118705664272175813522194683386192985934387275187388800733183666405687782119372456829304489731795075768755951097245233609936483557743150374067378472079909437506248952365476183893631411416592557003048861047143723602141803842901710084875648571308458104828521678901408611077062817115502958018011914601733152438697792486521358211165400129000883654586859360288324772376223105190306995744643802186892465508408855695677924324584732069413434518362248391015305786382638717012271748675809576572743725205664478926745883872715746540289472591671339817324390556189425585090746332995795886947049450504591310764952940503121064675500857325395846845371900027594288150718090383196678016246951138125816289493310494457396315025382751498455139844578175349627685828055875165491249122244932512411252943736305542525499382627894207563416032761996522783298288872002932777476121688062932559867593081161415534428563294372535449224024798297916849656692557438011085426437136567371892764351589010545130267225611795487972655328028165216903330706028670625230394893448006801196566364003704891848609282073098950840876456267736300718400505609947740638281952708300005570096512169278398316339282503283307767022916291553588925009414122666835820827174518262425176560794204705747112894210370053193297069333001712582097607553457908173571060949503904941366424298556634307144438788033010348254813378190130967695848526393162477302578329711873600662604899788529942095926996538406672916526539098396931212952630795503744017454953279664612498656909486695311124727531555630981171689255112336253873071569729896977010824588227709426857572180691466218416278220513245794285017700128936636589842566757015266365974504936729438814594455654442359633932538816513331460598409911563356090071477711602771970771888438424450434679659421882049421655417153531431485720843806541287187553606776197333355876330375698734552386133158533810643140792729913182603372154629598543584016500777231051901900882600299149549547232137437775698531515560698189182882464126203506489741872430476837404924223949530091025815919453548264434030726937516876828373453739387758906792253454407341416331827921446439604036776485470829942548218946208823499665061176986836919549473793940019055688521078907911251658602913805703502812514491296826962361264652509902347503103604850539262203271426357571021267190046739058325034231419593912532076418295992907440317797566051707263231228102890810871413621150183018648879206343006526871877607279357428990188048517952935733114044240863220115951357366828215323862791906979737923316457700494237937770510579757043012855412099548987731486602003025282084060384625553947711430021128466753480930412556672722882416821727897527962693492316494262888515788883309213751049127801886881739866360036161941424762586106278737106337362455355270337782610704310965074922780193802189150923322701478782198641862492435735730199379530387494242270081755745081148268167491756926272171923926558104825070606522388280435925736026183618987943606256958181415037979401695622019273662485989074303336823166185350463165658832776762615916235956595589216515492096574166202673846287751188979308382791513111416518161619116696959984322044108191252914746150979830588641864189555580527892860217543663993555975632781976884048914518400054834491654950963633625257690602011120705573307938428908334798493484273047590744868574316388272598853204548308520321047410510421399281909282818312045668018047798050880745533659169529682138633952966439252127304307638942584448113136563138753521215663464827251854945016646501598942716342075303751003247921667607826239945203066749652707784145285394230445315501504320844067798977064318166195152603907051392109057421191128237768492928195373793894603079095004991840633741669767101155369641930566205118668948146681326125895720138180393381359068957251908863117817536002531301746769797404151548071409483831299158363216041425338163128062753631770338450975356135825644230316073728692490385970418057987458130900468267758247433177162928386497197243761943109612574670146548899893066315853329803668931748160473534748121253643086844582182696175224854499178638247438347502796369036096771219232540922041679315895822772309227809475923957412372812341126616396762106432980372402858721782541991235630308435463346083308687634456403319773899492202258913938352483400124904443545421223747515811669739848011959179617585633742929033643047973648373865891209992249003502030400421321164531986808565585063790889569454703520978513384313609490839915921727374119183547446689273829954695238689534287099252343362726131135276852568587812544118325933056163970828883173062909542375702964652372067958310040217759880245652495310800772991772987030899761725315443042496931526311061087485001613604441385292080662512589802691452472488572789311340962205405827435506362988645921692883213279902188882360780492277830813767820406413969618694095966556226508974493344546226217712135307343296066420153576611197227578869154008494215462868181585963783510693544058082538162004043601408840164264013002563809633719717755068326260691337385547669361985842193287709755201934089854523338851506353046937162347372079019105815630260867775008704201585389429346077553057487283715714036431934322916604562448112592427687123931212396052707870682489410978723505824305967871792004620727758349260861918151051271868315545413368424184394425353151981305002945672304861159864914951469609339243154018690243037328640673351503081249106421521597607953148571286745161765689705719915520667708104611850032844890377288956472897496297923498755972596013459992230257684874873172533191908866034497290596788975166861731543498509427863029544778004359413774006571795013830992246193640657241613156352945292392136453725479841088564115878472737763802102766643579676982218890897313640556750322432050410184042054283558313911785095907060368402818091453096289759970041980879541750951134230762944398505409157580078817774599849430047232613896098396325390090464253383581164837175606120661769468852115766566760246277731495772858909980342034791679842106711248826527355046705735966477787878334307061242764703412661534588434337802448954136134211947454675133579348541569019631866216969462182279850274360299638745984604726448795001596871393848427662239784500988543030876730908304751114605194464455689404244314742489004529478808265422470556448524796507557783476045621638336510316777751336927987156614432900561328256872633702897843426636830510345125706833285592293006657869737239997013037323337148100223036739131796819941429146965645148433581471841543901499081619735536702314941241396279781140329746553259111609910962429488586851795756117034462426038681643062380133920934563771208300380684686509240723627246879738777816547371888690981989175472761602934899272282647166053405036385439659409100509719910374878470534771481135607530282803713827095824872912607373294664941173416450734734104009266611962921020351895254451968749149121552839775853523571021871779055811369975101887899545455648054346842913073980320096380844345115138966068359210392017618168394714725725232970296681510136637644384421395517627325305120824708857911569759474441842702027909800897839984878348579087057633806214821103897284872911607972837394778593849447724010272246383512933298675045363776636917329815764742214974668217730206021803033158774319548277289875385389343855107935143253988674732278846266773703973117307573771900585015980393362760031713287425837602184015946999223509882082447486041399265513443672566771777706053914396494752235351923337812827343602780640982775600510805590407616366276222083118670217105369820284006184205501829834108276973349446789414287928849753143167395262987036201190394804199654082150327709536582276167706333192148076206424759954918139294474291588755318643556934268780721482117566482285278267940459004920645402314596878219196367970319868547964016688422820957097650154828223379018884425602581516557505264578848832976854767821029428831586260297203534172788923067210079172055563796121268779622066070653829103253893727080565418346663692587817371992368330827180060616010093438919742045794241742511945417099276498204964627716827439696455576406353117735566261494052517296871402029743884767317943595849217442948743182649944751350305613175993862073977643571015136488520347093795852333723109931507561744297455661927563633319220229713108372792994867575739606606547704297019666515462826461176251927141509144981253146133325545110350050778045720112775018885680039465955284371544665622454357714398338709869752645634698654864639682447994880699267483009136981532505420818453906530654009275159107179757230952699825585203380152945213795252582441170513297572496498656043651565585428939764713181201794570245402270996948938154549283376406214097415630767450316804535268891764961800278728231939856872284559082795835476184532283296814847915977359256617304147216365710677310132073964259363136024778420307359215340594758999581007711520350094814376038340898757785174354576727737468563039546877760733023586174688781539759020826992279326136808029653420729927166936985544676870225000583688313708035296751060977262344397948062753112546104218091028613147007635888713293880663483035382748401905408043669014855985058783407112535655998607616001915539408251778160590470204456922600639904727883519063769583575202347161851283888686202987060475330379920889019036614214313034610646373827408277493162309195897116786498663779656211536385312940880273996967700687295619878880463101541588649373189620873417449070451840452504324655751732363893345978815289462519488665576449792590476801891394260499897709663669544798960492131191511006346679545263249163220421736161408572424223886951244641514573409177628904513994780614758214680773350557602430728157693608135076481984976807279035862374989619789567367086157910970903248810664979212086883731590468023583579406967588541676318386398260608168029447497555153079677232523081574434747853663064873022163129335726554857900530618590154300089488678943660649579372555259312684319767709074107716746656768395193661316975163523726304650981043819629351465612491767196355826000095358149607432114387332397606555779633826317418588959620502036354604583649684645178024781029472722923431723268186632720703690514709962283940729093470629957994812595223068409179100682723516299482697456618962763291287956458501056412272652654097617523201886327095992084851936174742719857738075672653145261209206021302813195092160200781801358086621806283486069978666903616772138132053965061927315837599976772953674747856413499335371322543699091808897267019368155313044520712691951907228441852813140828341267055456899869633550065601548544145912292170790244538943249863211436388886909707503471234001156534492287625573315618933351259818444496474485581859954758520822967352050403118849642000655017349938062440095557961234345803053111973645651525430700117869305954545407198340679024677387193447590205792961261618167683255871849256800240800123537141509781569948832227318668722394709136446494448741087587080786824036812964728264059838456151904649484157553436961292299384340726811633442548044697616882935691131822454086300305100369317500991461098689709697309854433257431481634668752589458667703290404813133011014834392144072558250316375562034622815277257412275879694434670291494701375032077503236748713317207303619670538242995836639196511562584953347585584633894526145257317230003246774827495184674391122945299148592608001343048545488691511944264562377680537016493825647258403360964034956711753089822014069577127961581228160359958328641456490915568727389871483842129690787992777459960196856332686361327311620870235158319523230860268217895111912986926807929814639640443002969695534926436220389559924027007802310170247198142301043774755441039189865357531338085126913794337585244638707131452384555903326281288844056010296856161566803110599422125041114640654242346012931287607819175770970110057110146036770390744098626588178038816017824790225271908473318199962646285340162936946485552814047654741578308407293343956106860305992829608054658405838022974681647365632733288077084692984248503419496445586588124855679043009905213686332783095475709101781920450467956709207754869827868181789921113290638619455664520496752580578350748740757759547762537350756095462519257929711108617739760157537502466007800039329860185161639393122996805832457374442028351066154770661234477384836351102530795321674984570299024378989539114873125013886402102436362710862342896575479182887980253689800589733847804863222889494001537779135144558539233477319123064182084189875598066608805993032779171351954932191984874960634758591487268384792987128950048582313657870238348645077656090373236646344574116498173169598906556990104216283686609855842436374665424896832058917595594971125612165606649936779659825109030138875569676156508938550154524797394477107139508983916800932432693965989320719240455290784318854771148128651745861907738068983611551863047304320201099779097127884718664056674076448696166928394269213446786556621240361813185087358880013914134471060716803247440033068293021080854632832558811778468176570442042647757256737331192451041317018277039929522127998810826454821608938444298918035909799551527324652806428795358479657278538296483917307721532609597098242467815480821242264821856681530294382852885888693487308720340488556481312277363730694278153799929781751374552804021805504897937339017734048534347028967339646840360765661194877851124766397512583423337070370951426982162006527204636951978154053923624790606794457563806200088393242994758994177608960682473282911575195704021594498706951655163658176924984063049886785366783205955395694483135268208153067983754121311797620092099347211734894058568619856990967620829790709139390668427009553390389228800729539586966389941131267466431447429097257302705724038874523114168482519746461827196774541297896687845067652776054198327084203514326958217846832940663420504105400528602557270918989164284911205449560317409610679425969942155175690623500430763527790354457004815590025940550934509460175854344052657141331761042406968363401526326455492899452826227278069792075797090806778062088032533876573109807260605036751434562976097143576717906050083710095126725202002190719133322819053580546176445105018462496405253103783268560763374837964508162085658347747060802975567458727078261351244978903954475611642380756935453676401414761195947596256645849023462453635680873540641774895365138137734353177992631572894069713220401562056400043659908732017732538891660518764527681460053795468350572125240155343011793626784915453870238688364912960703839946353279506179794595251524179105051295914660182589653257166524282439804552408530014990407796408297708984390469303678501644030209978480646437818230043022096461047564169052625050829706253990198608996813816942740437912030146313588653514850140484450925424152512299710667522673320072819651367428698656417685883123467636165130637327771941954407048939670303051359884908373050821363644881317926789695003568438165782381121798081918280730621050485400283616474447745846530178718161013514747786175165917439231095582223600121786805990606197742118447972948162316056640755012552423790890703024484006549018562504149154764107674792970230695694428738070035622511131436890469660109531892033726315601679891975958549220687462859582553904586369147670503713986532200320971926840770139178774356386893037996194454228097220576218781426188100087111550429302838959478932485441381164093389323639331725944672616020563794005366529568542046311303730914163352300576385529396910839687241853021191731415537606310324791342075733931047665363135253826537144204112936223980485584757420245876658985436201836286376300220590601797012019737112785159067655095869300085039699911360487311676572572178596815394045304408589527097913919798646876252714408809476184780663200396989244990529970755670232819067772662392565459285533437839116948975425751436559368751911430572581599341835670471965353353433673538310181864241847093174940082437608041450695376339065797117260264326301564456098805249468989957900083143836703198898312367257481370509968877924035515263918017537894538120173462596947166575688268096978250604956151329262471062594461628931371104823324484891534742622259525472910996170734897968547215497472655381326784955347130944901965229507813290001714523422597877405064508086900436745504504783325156844279961866571311791382148878226182000779291317452063184791812270854022831636749350568024433777613801945217000583408044094627277330897775000211018793736815382386152117800801051068586048865656445352485812882626778371057447101572242695206386781788981932418829008726973852512081510459370546643104459672426656832232184910035065564008299280516782722915761681048598898590834859595919647418005293473509602106459634401294382870587969426176269405860631626771470948522671625885418363335433494843320622075500852390330791298219209974047598033323834824712393710954715660250880375873024818051644191496301455703526682126593367350218423530659265979584867430511382857164763265272801662213818280531915072264458250048153211035983395682200917869044197162958830639852963815735997799328049553440871230821144668713923570201018221933902491847163114810141957810044774086399794123976633938732615563095458623463525784081318431093012521729531531386793325322262651285142781351769089005551686463003158555851109659289893718399629834850102335695793592536916680316737559882196808866304250073132925685929019646548590529860762150319044141509103605220592663764204933006468163836705287657970045226816452169985929403970940938832806361211837763012329068628658601421952845342605740351653171800099265872072683018006484969655917209933279708819237847716313109331183841290188322303812409357858833972843889427675012615464013696321262525740697664504654632511919907027103164395825036324688322900920223602404669974901866357073991355094611382597697803100542099376854331680701807966435675102570574111358632546574371857056851332038430492446234536753538962736018984666796535424720379302811880393469995538068999177943245475733289058205864588477324352356854310905690331805213057440357333983999642396572172878869213385775087716920953223493383220339013966766232740331230839815960181023259646479662911518874841729450933357281058019664915619087484815787124888252024090552660674046527389262012893826742948028854159706333487712470290168002365073445505678501256400181630971117378710016205793110562120201999509638154424083203272315083846678953260728927037725669070096066310701593092139961546149979543200348714906855054337995642399486012952650372181003150467306495943195453901429639627106339415779627947990371163757419756138282002646991216886833201696214588779234134887687103887707868944149375806290280360745692147351301393572084198087143920379763823844545990234897297088541608974676860459309893829056976237491467189322241104119309949160065051666262706449814162000597824921747153716748004683588495280919841546417355931803133641594716255121669943245129845103540785466402050728706968190007647234870691652523384307607634362665037139752188943778933418390080335109114685144899828568045983760382054878083978686889383357267136193937488350944254472075202513822974886116437383860342881285767347831346579259366799948691308103045763394852321991091304200801990142762703891204977856754413883499830402962243097730285732885182116447058061211878716568842376431763614401990328911403611436811632852138031812283541522574351439074597639177881130044903183806834845380177195597307696736528900718306944445107089188508364020441691061831596359129598706135645452073516199675886642593476981707645863900048349385753145055894495996931654372828384353333671324257123237264911686548604783401419420967464153635684844289515345032777099277259963005699411523956596194015237261477052101862979729355081830069379427619275797646044598093601322236220482302411073796514561496278707613644014121782087285155168424363479530580798076187125391992280298172990974471391045241250433283830831580933058488672271080932979272367261185453011466877367097136242805117322487409259644742875365258599309303092973862858544536166866765487441317078962013229351609075684478310475192383552455590824324689657033206116557369876382922316555680246079400438798655977450102718988374603145066522104700356181087093867409698949399580641382609625301757741982679900389690845607946284079446692791012313382487245768058589480602583441860513410174585508891972348937195293461046466586103999555522123858889582865082228713370765300437269242195470407554759832208024260362973148956602163440492594354639259499660036179482042838256621004997627801913662956869057130068429666447852825883855107886516172144907973279366524284170920062316175573651452252049511407369973083115728518207346252930701497157721409472504207853122427911669166004873688811755432499580904998596439191434629136458206451873438448180971819683324131993335306480789300954254166072781824915757857637331545261835208061729468657798634490974470660452228271952598014422440647010069903992368873973731840536599843273512600376677208496413462112089893846426084706757837802285365897119290308266325533259320742195702829268650228135969160697850558744126495572116922002426277537811203760049753839863526151800015649397398040442290967407364389550206106957323476827046926842896348556199633816199544329053448284690254379907110809508221817119888735749154430389759888685176348352446706950720096716227605792203505885929521606255807672365517065992320846771435708460047139490753958055056586913960829590552501893549697353835032179868558637001560879760419292376527285416855131256767652400886379462804379964638136006939528306773058107521324187826247196694432095593092606408553479639461383843089332823414867009559441498569835196456713314916029663835746276991645147388534402186028073006473685935716146796019461876986642822682435853689113603571960589558650170967835366498646074165983933487618960502471289308762212779387330855841812134319509572288132591413609513993404086238220328154149898220662975082742998952806132560743846696522372562369956556467323419585469386888963620027394741642919110966538554550897549145980898792353884380647751656891607434788220740922904067711747320927096628938126319383725742951427103215569432532192400604783550717785218807179035873449489431043392317853256288838578338395589232447287969254367518431450685312250766699523751814851417415491896882720479673880098040739318273707695464752684232536225296672016119712183357068686707577068429892897382494384493661121117801037919280513796460716647125754023713499930952350685889292074490683712710420365728811202134185706826489640755556619147664172493473149518491481838866892712346138931549587214105491081594095730584228596326505465103986117070553102753803174184976783720954963332516281889012387735322158901902363084207954839128432792432871518700902750364590980654077175519008564560673476495354424954322752108094685157161312256607795181210107578376161426104603597272390648451951431055673404658529421102285035520645221555400536027858392779781584211346763601011276047145213758355471382138594406004609822527604474243528970080334203408790294537234476298770641141666967621563591603842490979585473117454446019825172143054504905890359006511601687518995461297534026591672424056598638259645032709748184044270477116119803731588432927824316887405624283905383177329931748733576428309510408531440319838939842601783637087534756751174248561066462070665341551010530786625807383075896225393077484224594717910301084541334667497804629616971282519806407913869649652217055040330242437478930532485913747935476748092312543760720178429119321698428068294077251235459526100144353672314426787716308759293002065837584944726902442610245760023594338264401659627033548634765718324595735764011341048698201134141582045162886103008043633453251377221277090839763393568348131740208109168354191484575102999229653462519978686661341064775772178082233047461083045716332933566682872440939795388230878638608589404527844087639471420351308017277571947680213457347342825447036019099009037451121968961472136356038970810812482937171845886027754827863669817620889634619674212535296637131915541231053345182819357626891378319331151302375949096878554870487993379818369448379817465676218521202360849400691094780676938954653273573654681070672398511200199105744890346146848394841099737068660802711118503407521617058689686203526851295718549895629879889082163335781733037324513962137993996210321639019724985386473028838315967117931991822343612179922313818170297936359333765164040854201585121318463573464837114905190202079415522872642757536383663095106740993369007581225808439051124615090083896885448257139937102030376516801109782042332369638610648465901503595811541949188090801495047652341675307546378619010107944660426264765458997321163489514939521491844086984036260794560184338777112396720835511356868676109997170798164140587314144987965148784899830487625247464846423772696739416525668184292011216704357412784246492607380670406381645305366165563287010899205318257000836522828455840593749571283261986529238353924727180595960877068448171073611350404635297561077443773709298139903427106044165233730345037211629924802055613888230201368415824461070785202762041340812690196740328949279304642740408858300633274604804300709829019611460508276763242932935545470179072065931557866606137222254359630594079780057824412799408002884826528230771024721754652697479501030051114151991459850757633808345047856626267662433324643808039690010165056306067441139244880230743878304787843136151226333105931612466022072100450299602884082440054165839961021840785670835931895221120112864185936884939282184326693719841424133680396817697585818996541786506868794427047506813748266737854246191425236244958638950168708487852445167135452895262386870672008651043643234581195285891664292121020587057224030593733550232918451069989175407079970179485952012207955797522601611578055309981831330256727610340033253459271727479663677465174974045991254512590105439065265273203264286082265649828102041243347126600472425259098518970662363239971885195349960540378785511349378049861120470896202126359035525671433239013019611013014556492524042950479962334935595433495859136934447261283335858493904358175944958091835211150848363160878326248550652467520860841196425523135307366430488461898818317951108186189584763085966336088516015663156539542218334153522368800562324010917984338405763219952838094445148614362398120545346502323959464923873551940034388319963633706921884969208106382970689926302819975516596850682145587258697588140775539683957867887641230643948305410936619778712963953843423019104964157270743712763135248742322383285665998846667654657735473293732781500042258616876358914227484692058871353506070749889063963856563517978518496907649129239663260031795009904154349915002919991077041820604998233683714731405664945842606037935268067365996257863051244512505705971258977401562601668120593819876490037561345210567629054214213394010814234108617649494549253493824887122807243946679092869470527599131580688352603835619967221128309700670627017397228375457716380770374007802703279101409793125469782003770425779285630708395733089365286654896938724708441183080021047273999050425300553806517054032442229553764436690413336708164747799279368748929590355569720014244308787580775981185499872763472963609360500569955334307730522028065370631121351615298015193626214113272531114841724426305942493259050234461264853590467440408863458867862942633863781650852930619504997824967499802146416821781871269497921640056893828174845587730795878412030837650108147022768673527271791080803213629021096499819483982557055285395025148487507422577078943216531634072086344094701898401958180294453951402207022585819376399394894703662816224226997037106184949302048460918116554758139536218876338597021548527665318977036785463770456939749719870946563156933516620268824829392364479951162232817122391984673304310207703028215662205679824043705672480716037469761927838067154004387501612844672331621446590225036792346587281616807381235810359688078376052374290372368608604155951548942305606159906483125733844554682191669824339660905608277730885848786221321794019255544791388132316128575572378625116714917414278550879088709379659864752838053790825879365209905881283645760447316193298378155479592214822481703440092764418525816659863781254728319513824320310555537385126233703876072038992340547072638361151697326149372657003704594409456292489565408233795789687254905378240065476923140031268140822902189458035146508185249572140201445726727101236680753261030379711340348095792809093483103365277699842168500651859564937117598597842346188161934153938827464433675997350953926531580320831880997397972109441501637696830302938291011516837367204796223648142313608851227078023812289255268251535972215377993579097837942003492759491867364804572716971502249101118084428361028765800382404144792073869964058388308395254032558491162748645844367944322159033344086834734890881199268233078193745502295513715982301826943956035917377222332643867573142233060917388240839682243757727981957557686362057434407478768594349175662956960281717043753287385891966631839083730677995325856414487893257540296344573378120288194370167047985383785853784088290546326477349313377987278905486678561253798171330955104904944671961324491570370551984299990053033402060743903758482399463130330486566884551578126267059462983202091571889626392338781337045198267299331933565091447328696099137307784720574722326579824819222336743103426138993918756601284513443586892726116909856011319427353537811630076932848919752659976548741346018061826562545954934045910794854648068830229380775365833634394752457915462678451132508515364809802590319150192711868369339213491389402316615774381305078340239622150653975440641340528233847204044483340281841981189270714405681347431995070054812775036963544960657080062824107595620774652031825193254770004098788022126644821582037209062948227420110095562092567429517320633000997463242363666510352041712807178804691477962847236089247177488803549459248557646134128247573893754366316489509564453376486815071809348349086614049242761530738277962682740471331912279140787306115866130283611449068398050367769787857078317513760046703144019698635013395483409586026731844369167173901131117078066894617024224781331346673523218689150623033786138935202638860743838926525691278490759569824226655600378419964661547356559570584150692374065080591128915518304550740868260851016405974163214769325301300614342632600142109767115913702615659833947843641009463813905322129318956159251127418357560049602638241046900267802720976589218025297035896971302867641209276060482614328980645462381458837880988620960331052363915374154698004782406070419158300987549550461497823819108423578703277852508651008147609167528393001265506888208674728800664014454796746550492501060729191741677457880262400584777781257386756996458718397059150462846877739715226980750554432333197284172681432773856438773389994744165922540733814995099396810265086611089596219830594688928263786587793200156128293769684785666060513219040459985402966256144553238275290476892984468091595669537968115196038250399111510127098939217506628093718748773280626855736048749337191361359051774434433123800363686997084012269702995146922592282159313669499143027010986667277829353183189349860473391669601316466462208707924976230416465561648134799541302803142898730808681205987119676791643349140335912519301378462104054453671368639931102533419615660906479686573049500639407040958552999086194331110814062353684557878178016587443395542196732387623323610316033160285105241241830820220459122942217272369881289039637404022691811499138441263059574692315594136282261729200178072003654256989330759216165374865913368345198904275295505861684514248113110418322327893215356350813271212879614117877052581700579907123243623519140980353365691377054282186368292773194987919848331865828445745625299997841782263752683531648694267399342397462191782854506072594877454781662764182252283607695848992419609083365485045947669121220219230712872603916201586925398589848462601122360802949324883565266460873058401198707857399315680031596218664520218751848749406940078726877943957470662507226546397668464933008941706359107693758770738384869484553778753258096805827690113543030824296101497630462508007841688754777784061748542187156609662882711329998785081061554459967854701859364420538545710604126216543710823654950064926592395441858556960667344108673623323507685081884950134174880496965338509419243453008958691534421660410453901397952520924004595496395284388934363471274818806837918375803685842530179949598642657767779435749574435473471873163901066714528260400403863018248575105359404704992589258894312078262691623538175267018671362967129031277586671429487622728047514764824210168568109460114504114906421077376684775989366484795136102154684332240985253567407732153781389980533601052394700939372686533556238040911126164971790137701564620714066349434774093094170816671939145790544185226676812287720957691379603457814734524156540855438277499745229996268952450653324150719895496698654372789795296486315748601704743181133774181472966250373816656722101584858857526756651452258079469456960314189401790207187051204478384251531123878303329345859833944295150105646860474396571852092080434001400229768943101663420963438240518324164348067265289234950872150922011949630371026543060635582957517588958180097672492670301946926415176172539030904218386931530174979819388548000708844543325351815476236384760305720792162836273523768634218200799929120538961272951647439988173353024357417269592339668999168345959683480721080067058738166898711091615933404319652507186565381789639320769331947620394107273902690710679711642272895956651904498697643674888219909299545246901750888904977793302230488642329082617674264542782869271975042091262808827012459399702680069391394126279645430307755252659397044788504025495595161458043368052013027771264287776960745502950007004581169959486783552682771271591198892065020929604911340179907018446039367050465215537848739396531885805354775767337686722746215917189225934363519088285972696048926885651629664179594896655899666699648319359858540495105157958877961385215467912709260547685362085043192479903791719467118696247016875255368303643774809278484841316504389018229888122500305579205853012935843583590725987224750247438373345726979390501740349970866222373874257505024424484321494486342930495956927059163593636163695533882852499413203706096176874606350857541112673654549359239564668436714626446193248608787496131965361415288478656135438439350084152623263768186320173076507152177388736322656003368777608531773806500207524774880665064970574715942825447018384205198739415367043642216379227296321656241734359654234227526047146980963311414202989812300784676269508288525864818673718814150063546453879279973516648452173758083853748045884890502922975884034533203037599076224994408805466915438714618220141896527246200108087309865273261472953901809485590914919012386989696989792296168035361569317195524639749256549765138045090796560961819322710866626240703465291213440826216813686186229997063972251485987455958315055085852532285561096559770257807592444602650195126805858013879581377978746119342936038940722153059791796427697626807873020440387494584122602226189330838746831905706134616313570497970499416145048111610551217943040872419272716571688159882102251567758005313865918441439788040081428330933307436726862275146092289507496313510673357698717812172450072760587765201926346812385686795015069416768649845620555255390198439004647335161748997282943817885149208616212048102311431988446987765183422678934971192272458817851125048263639510076767979139171828322057310790902669603003019530786669540306708404426551646944166310051966901742847501975600203600999477230495087415635427337318924415423792011958119739644676373382959161179465240182305359315055084701204201386878205133084672691508438197245849022241377152129118504143813959207147210878066282464676012681821696697889781524264877939586979191585627202020096412154260857219228039804722431764835129197260891917559761523943660649973284747118700064757841895732769692453280034139168217084363142315070398838933085894424120296935744736393327840761086404749181202852826048992768948941970070065700459962233318137532707985881380923789998382683035061969623276154849518117678113145927349813667176039994004978509321366545931795764669524847616739655164999078184864659897563967162035657212852070649857236901791500537748237042477277282724318339781525646849195010617174571386640662024775345891701820783156454191436553844945481461631497659278432496764718562607816503437082113138996863815402020410988746815952107877340609952934777501670013882018153793899637123550999171924615336212078730626316219121840286032300099638988315039851918411375247724771249193217466777653363883976575845192226065672987459417438382096787141933666459542623741968637661595350875070062233808450536356567402332688531307080907525812686074030221895486424083056054078941179704071078423533365448235185472468095207235535241882607010388192622993108336776677042221840412272637171724353884623088842189027640856802018390674332482983402407766778118935301512760994431138548896008269441577627178149764547388819373889619922533363188744295941693393032779858175464452494434525251276450166655916079153282402883747285100438776366687150057814308487881164334317173079523864543010098438741874651332969365114613647462005025374282695139452188997814745742627516833895735070236568769620809878159703730557450769371567029790596080553958255502734741187815894378186767680531001480218836435073557980009387640601283423002127209004866569697698177308418368565156420482140236799654345239829152395616239208492347386009994282525913981181110366316344634275648325536486694409697023555807370141869163853966679344659034200134449837000888223233497978641886283254297986587873790842993751465603680825333257869743386237697402529207255254616862612447067192250608833225408320641784216644037361066669767926656633228421245971464058077612749139717149723600979017962217193114841709710780872338682432668310146706719446712760080418414255306296132528610228519622811085973603868996046272472868920887558573762885816840406770057762528722012546938358819466160209421229443282408585947532794127282989610376265784996556739449704247294693029567824235715450861693242025561330852485882790843066666466516946714559943446614354992887498569210956541769150950269276579370125102334750053232873643619351739226718180955654450461735774679041686328068487883255733852031967315544523504584611452411836950177626585460089952397946422302525582795017299745944417382229749568880837998139418904618348469278773356797501595520471626094169009215326227805321491994414352282485934402912526398020538301069255585638248089473485255437613231445536359636884282221304703136458896605819774616249497271062937052905941315788293083266860299522825785265052256717743068749263248406935156357605473878657820054938972866694805533101408543415087989961075651785230451744992787110252640916613854525311203916698711710298212642915587143544466182269575088715695651694564382117495578484118832268399717509941763983762781173115183172254391007159835060434118535858018722714630294488173657645345002858349230417271499085677457370218691870392918953640442141890542766830537343985113356644136321595374590035748114417689677705410099866139128254389981550604141456306528973075475362485755798718459885050753206870395169168287839346822930535637297726806462096611361571770621961265261506823086024685514329378907060242759845722740390540826202147366438688129319269612236982800717357702217682304523968416241257448712602271774016465046405289776924101042633954463348210942806580444629596567801296702781734263372296659819265814148706411345767560651073826206113062778484186814195311186109867455687713745567640006584747006292014226917144374925693583946153211091246116939971044668412001532333751478749221629294086717426031343203569921223781284001124583273656167162692466460953683398686692254652687277421614333288630976493269359371941346365778254356734047979310988071089170596605990498594220461363214086986327278197026907208852522125290423618777635402418821737123208064380604127255046114282375880905611278022127579161172813849144667577972991461322156090403019491403422268535025311950752068561359120298791118047839078289279309846462391332012525399605968052458927046363558371651964565065413289968980935615342672795753026333964192068437226062110818188648119704098874981564203903804029653471197524014190374810333270330999105031576340374293681383358565148790705306974847430283367974599888824354092118699720767125198155156736883267226623170243686720295509268486340700904325851404766618752990555833258824183326106657379696526491427521860058571821888896273201603762528515160091396456065116891416981604475367400908620400462812716689775144931624143516742110730975930252266580316585978618390918479350490372565244138761565099481593293487118312397837959202757399023000883329260076212622314642769767438271653713189729238017701555503113326830421745117360592945625228559637936403409842200922872761283829430970930611655549869626674629772447510862172464785705744769580189012728962887585692311580748647387716205580582993117833577737499007042593572646862941620716162913848495078082832043527871590242609108793842208160023554483638091276331851293972002329614702868638293383530714134496621003346020620400852725769231043922929596607104858434066477634850619010528323956394383205407256432231401802754879603743879618723919786600712215396141293319697244365144713853812999111948831863606151293399990290644361680609235142541580976886700676315778961711327902299460172166472014157147314465985788976595019843940403901973683337076817982814902490133594523895835734007791207239009193822815250825273870366159438354105884107800912528795850282853385277456163373597628580280864136282154468265608672482354765075781173103410940615842658155467381522298604820824153971249984905012434967359110282628931160352524728712166053192567274591175141964793728084409032602468734584573470530098549299132846769996532106181464023081396673673058216368406605926921998889376492578248903892286877906129876714254545976738555493646778812185093128737541376171286695161519595596145902656764729086639916813372561550701429723240001730960017872415713274135594686080560731643504008970202828772173527381226984728140340062696981748626303767206961676767378726500583170047215913248153726927352753404723746927321503008215745468979777319953324537976548391443417921175044940220010571799580477060764560535944937991921842262689552889874708704604194481211445388863525300682022322771627661970684200943580142683912045955679910596679789999777466787797146238427101749147795026383920661005427139100915060938150907511651972422359061399954730202187653910621498794966833763225894153793974082570215552396252141194025216348723928917252799570621497667063499681182238440001199352639078718600313311727242778055192760018638849724347468892239609049966336360876992797760449523173800723923617853191910088321038926393957606013577831004724223307301245677690951876053780431097410583491141183977015687836309388823122139863518154397976362796883371574530807199728299412580648403959257120091896606809842112928419882015376895017387684577806173776392484562507936091611652094068874126483140356264271999976746003066371823179377854618219244089748296256934734330825479627515728960897079384800597459769943091225968521097113825210039029352848672043213205365773286899046448396556664906735073938519375856352619601234796167769400402336506559254568511323833131370720297917017333863882164745408306660181846170772198807412291755099685390535188985812252799030655025245531264543721533316379408407340518558476033120108416963639983043734670396381142277423404115305801465273278668691612627575394894808474288858166731028397956399904599331609724752806473557466067169216874889419832253432937461337898577217039124127001447843366225910120616192437299623090770599562415260999660011273172741754409687310603289201884494758401409118529714147700501433245751190365261638739944000913198517258555971343447878803823742917441940410292747743100602673302370287337988986811075704021766578844617224700128513880367622531045702723843532529415683534544352926184748943172084639390443300082528792982397616506395324321737611088719521204406486843938204786437498529927851672060868046120490387039303179917386309818132794458537267502805496918744006711074714888942854783849541076626035930440285309011321409037254110739175826733309048561035099250627544572319414727151831180696648902849649687879656226394996254113234838555007478687279181605825044847630646061425076685119991559490249031237402970244125135408124697550173763649850149382204860875803834130146831818016497887088635867378524095570069576084187444322755255666425492120700937170092042389616615966508653805364598747300128297933459406680726312327865287910394634049591951958567209308806690557483564847229897193842246125440837613055039576802167814332540789178585123106873164648117540118290371554312297985203870505500877262191461350415192389234325072879600799054826419725822675490943407076775265621684287054697630365062924638563280168739951270475458258746087269531470223529039782835289984618370309614929667893921262368597120878114975417878734670577812414758986288339707934367605423976575419226996916879557655739169563692142539378274532645242070173079803241794124568070841601304666206603441190543920618382668797060250513414001705135092554862849707335710089468298095952528811806051953823463193235196641441074692810550973559097239051820722481599971360824183208560582435057765391897464345671966567319162919150560761825191259628115127205456343122944239492652951327817964018926505094388913102626750663607068844642623952459087746664496810525063551716207362944359063712714897353252473212418326606817383935333088219625936867523679370342726573859752488866994208881108459577894412867118110201057129566528762652148545928721553390708582636516572887466803774371532778419706954941341349567480546214683740246509360794210436628304675941986993836301581419808214909442553222131617417887804956972387592595326054274358424277091843334082847737437564260479737942912712912921973933733481743754405559660927792745046174654937711015323029323733414579627319115217303432918358528158655860297561251995411519776961255938133141898674397137319256483525917015233718352455392097839790025218777930196905342037440532482060062178687579776479541057560781794582175063463955670701964536625514810038802550225549224628656662490884705330024348915437054751483576517029357585557026136748970290151861298604685059010852648449661470023449366239039781366982206608072241518700491858088655632780454927467465885212903282849768796024408161409506453838182039578383867494630024203157180205171477058934412559781961905093293843377127862644980860407544827517704180498923460805231832129341731234280379336885358889783450217715939414260864264764239272967031882351424803027472420944413566339870346974179019088486687637100381634605842417941854790616406507457923607338744886712644258374734681326215442947952214112552736258503592280757922039229950635560889226800976647177901719983215454266802730990011359638013657701954954019074034219135681588836010152726681565787577270982642802160278576455532176120988041976199424617587947388108978219985097798123388712823313771380066821017276458196401364394475283684756253535111214625084602105706795262585027892558704792387563835659505881392683702742376578200751340288578906359379016783245862342800711318813046690775299756396103075782896543909748664121531101558846970767792936906781693429559881530273845328182754011854312804145450314542641156055884333508038558466585395326734076527812895562214563676093106922502374113099355748601881170894749591737633911980143362426536493963851120640235781174882363271030141675571262353856992801700673688124731439403492909595009607397763734489947116237399611509853362877175533024829493295324505634342961270230308226664027012527069164259195327728766447063212726511422165972150721011623688546370563193891332819991071540511668077092255985198557744084723043798019216764370266065598416718136972089223889785607815687686420945392606053157864462606513669457251742284048573332555753068930634369034502897023615348072637519288904653456934932523167319132722105352902184832611302776422415679936495971615124320019718836856531757778233199908396543724461617010699784362273399067255757862478334892246659511008353081078914042650412933613551039808980021056158919768253533159597045592325431638253712338652868031031296725786251168081788595087472598926915794477772136854064741654997221497717908931049652126013552651424825131369622844173197977234039830158928166227943670982447785598219905291138404009728763367713882995794751061854986953659329758384958576851372537468146603436929072733850195300413790957529411066057026131924252825651868751227013217144181429548521667362081289017394511595230363543528947096486724923779548174684128244078788544749316501716156253157688377079513207586050575761957778418865121760011698590214943286569584057297949849884712577845916889721151403996740853636590713369457304095235773100301056739248150246877300369651746882138549827751341506803322091588788338502485836792590340329948794418403149406721183560738048030596892091746668054392082783056101647202949787956815887384858582545027098688693395151464191513518688833802174932739602890630361915961700435829989676103941146778537143088487582506232509984059690530894245736017650134770221389653824573029435195264744761408201302484218581125597619581498602146768644500174957105920921297624421376273094439351352137821259507688284520418408418001858863252451833013377880484943221002223527808514409634784590083920107209746614888762972692636272561458219213594719318964859018791218360779899097388566697729111688100955626644484812733272805202407314596342734690050275943457573137721892960000174175555176772971820276437036835647995361653959235463599159360516017958374544760953889355211291350350648305910742638503813318407037655988368731166995025191147107984861835455870075797029157153238454561959301987984601364594955134713377942326091161310740889786624949993669157384017709170881031135736420223503747287280030148883116520717395345260535336900708505540394064773707396896774256888376980995360343106357312237559406270424523635246666395211039266891864552785637826516334193823218406584829847819387000042842046905004988538920735453793791190222018525958131824441311720412184856728520714466782359180354406936843002995506304716422260609002604484346017835146847034683606443910794972122343289060059427976190636134698908785768814867775994924918221768353099628502241558916992737963759468840915489038102020072559923723350008087034783484355135285218469704376038544685321058152631201955840952482250784067949251395626456219422503381570437315526037383265572903514727315692148930509120801974119539431875809636432186930203090635665548578620988232856663350352390372501689346427109668795110617690060996405549387823544125330556703185185125027018063653741195137134640498069947524688073729600706547060736326976339952237696714307331950640887119722296874359531532662534224813726668123704422409898854298439867715598743337267258591848805581589111930926183761446479333912797374305176388126988130640200689592800722833653336403134616152313938534463292256702933824477171422353025587724907714950355897503979016951687565673921125534044645139052431130368283470769043051581668389284403402526920172815617812255577526594501496613166093898877049227425974881031180341229194825899962192705314593064050298534012245459593370922268842754222908342590213650833449134384752152914459643794290444424180396292480890396517588639829217392073518337229454085749690680544415697945816483797715238599799456099793904557523989763548189169778451267593626771673202927773881205403157673918934040369588044168779709414108579225600095811143837095293603662449610613279266101694731097442947550932965180583108799716306490362899603453365847039281263227910029683361817008092282000617522194339322513934742406009579969339143579906356597209635433882120155343856909119200898966966003313077079232508568620674522049020993716077258090143005980518319086344769991717792810898972338765837755728389393649274366793405274445316234709858900127646400144351371073876335778902205685588764471338664880839826690056328175760095249728297493592549900680063350748640407237776622503365430655953833352605039355613889857923416553589780132135070870975189461591442154760079738763960320911732663089144561013569794095010757316048365564381323107314941018301217045709076408225742492276568292016744662656046051334952805467967875471765431242827475012849066303108110357232804550428527963298084830894033512378271167353160429933375360397306931091290162697184027543200817786226824514999257135613388692962462650994630236158833392438380828743476794072850663118480154099866942067892581117095666061091737384464902117189786774570997729237173223147928141928770254171318536785300419683689446921548653655966499839848229150245090546857734819617924232119594882916428250297193599936179291482254026695249368022816982111932666528147027241646264799204396136199995290048477388265076707259036753122789211774470724991683927921050512915518985690054850379058441342273489186434691447638203579588820871774236453120598656608070809314931360828511408771076307999283944427869205835457841979241604645793647775125131667161852906663902322782417188460169800106451113495415359042976968467402234160208841480414846010087586442149443804965017370606436315675617958466324426215998929982879494527998118303865298522439332966686707732817807153624391311008214870063779074154638147153851230321719678123845542116199902976015567960287154393946826077407849585589651334863104273827407747555579494503130815842697973562193432982626595651247849687038014087083681487125334434302880368815508637858475279644718427770639298171508925166069615145592504062390964915818816842243393138186704851781614815845662529039316027319636110404996961122260901001919076754581335672929664039130130581833356183122146021115639317925594866625493405783582804919872661609981214658109253610157049027875168084379963264154206608813122174245774750551345793093539533844829923079507524850589622998924295942495927138212129865630730356238742619816728128661079518272150174303081467807005742283208368783522107941371425032979426135063681348273444212759661741197360550153103434802753199846352627831294794748905377574699588887742202872858815113437875383950219363933029684332100196022879735695164623413806207111657947651603357142533741836594260065998677322059086243928223424604060779278618380786521090443073376950719802835124180332814305599634268435371413216527541309781355595574460278517294765607014737567700096103071499683199622598814517373202205115530835225946571458840657869886716931252969897935126501649354222892928717985395884826204020675110200216498258687886488181896049526692605259598114415530830656956216098620259300599255124378633999777085963039381666949077095071888247391352263018535033062473478780051118218592890075291568672279986531517437437196998358623373176777962311211517633560781969226612317730323803358821250379918476014399827373580511781381767572086254175451194600502151849203703492763089045615144264925765518111795526135218408152871376219328593700588230245958485672826809713461907832041162156564678044860076558497158607720090443456488017135483594308272017155764922392131871688935571521196738263884967789299357265379877305610562842007412187172336286738276414591893806958403535526132381722288614976257419969723253893906454344035105603182812525789988099833916577011427330717328176909462480094780788814656137371862138657225351960101512717730256655595650309245366529874582193294382537200229433555249506591669671207904946547655598404756498851986725005507914272838599127623973430065638900537329564908301042072536522073501792151434058959162653766790347231257596517253447437626743888966838135962333233579974792801326155857255671595938887358097231434765873739994076343509892296963809647219504191360328323046198931668019339440415014711677417351617081791938083982455289555792809705548150430625764481547996451255171569280538701308602005950159050661161803826763682781571424437054135824875554115344392255343581764241827888685611382635327184882570511518473256941412318184550297304253448966561604111811897532953351874919417265020227184036124949844132365489396987030362246178543639245937151135684563175985321473982469972619547074267255790873442261876106269570438533610237581508463221828792080799946988346627163090809981429782108206360629849560758043824828032470068064586766161200676548362397874027745060173212843800553394812149549119374680206703088505510129844431562276892243975703273208720772065660613476031048660402787856416675271276652528119959465133167332929975966895865324683322640347411727306043832033666959593859644208501493066265726192592244997838751887860062926788636985648901618206789559427946410373611345620246572213675363729668012571202265153048765286363289232154887654114002920575895539434071354765155664150047165086255883806512631283434122904338459276803588932069145407398622995040001433954899163999854386557359413183615652711737209799006688427474412997879799442490278126446563384346676609283743704590424791215119739731095841805963142670494888017478056450201627275669864834561365295465621932732247382920063642454204575311770184600023465043576388038215320333953252796953812963154424391692669564378397587788662681498432540001529135575593700629727316409678735484824845168266477086347413905621940468203373655124792149751504620353234086556438875066824280363536339143363225838927186954844213315030445192412004436778774115116144209733034449471770274664378062173475430559079104212349828050553684850282865869800382606418167103722401814027344631651718273536068938311283613353948708656130085393097476915263658560489435204642901323376785847162926541278541096096706245831481261070607252830735274288019986429944920276873259111101694121985425415491858187449003815595992816910013393177915253417771033693709605362104526136048777614102931390496316071394388729938352830677349735864737797350468680158575754788964648928214411444802303667003819430748406993988385250145692759716652463742253602459419098718857354300055549966567741716822532316507474983007156279361321630410903177167399613843244967255525203577384641382143392601606373658670569413899460266947086186720830332295777251655786115516780820608042606845265444470623190774397430189006565145504083081867123446579568365935013155847389466171372731585594808801524246571690210247841153603452397477770180622504117921405521244992686834752957231248346047722645810583283004276327156792272096491294376887417832856919769039032491776943699392783709837362451676798922847955450259096470466574274708540984292751470111895512830988848395705924433000490559400389736334975671281152170144269887607879248206806450043217296465586747069383458364735591798061009110836608608652953616762213138723875557466987980053923919111360535361810109982884916332877703618996325133957009648103373805726620914619794846443959016102696517337930922490139851252806940077470458762255602451854656366686942520806886566600122875360908947083671012962458130807658799296851700107642786924418320839302642962761944370624006469305723461003254073226437853668368885062372793513881629962592559528593899792454490463480358497246698407918855977138257090076872459151113096211087422271158140814862411164649142577966611707200333826847528580208618001257149392451855142853500341969806725852107909499729185309723312154465539208999921270526949497090721517301286703422084532535406965835783822991201321817381951993156564969370274659714398064660954100115172944075934562732301193396208400892011033907951199902481785443679041883812914192411426756916445245623397421122609101581713340066070041036015460699520682974474591032516186611772561999540662432357176965063437281180005524775053746267116701003333568799644491607915866161437137228132544694921820101305851073355436576742573801312262399129054717741495987012810744053587491227654130142386317801995739855272002219741688784876974415774407400422192647150482426160591836433743608469620799683271571908609367243959878900041850240078727843843738584246665734089561607932362539608599670961484882031534052351590387502838122283105490506560030624805166348342528259275723811112872853806158593332393750621015486766492312522771611573699231562303657010546903465531886859415082157770602608120204309876305622897158064563046634263403332589304338669562243013996464700141077023648743726750616884218760344985355026720327647221883933347373370110568713160877153753707813617383743382749253598318689688105258483466887555728080933282121051373773315947358103032497613857352548628140491747005498746255343809485212289603665646104671662284809154117179297751864359690544326147977088324620497702270611624400515666112388858056331208079581707876250080579490898479333052958515105295030007756030575301001566851675578661364347390538544664009249216000574002087942114662335003589336195866816899039240786465075020659791236876706217375691110251352248421107158151842341766595108041965676679333342083980675519150365795433262314564884626179238883429840287804122589952320903893381771472421279105854726929169216110430649987332875151122174625975342454601877830049487334415355403187214263505519053465127438485711330986686898352566208999690694468010938053970430092768081692014597306889560522200477997597210705341248077577692308916568057485869905390055655163971921565871459305416628568914532062313958894272173711195627613269005165910122897207453189180426554793887339392525107917104084374594282759242539454100289558631507329715261243791221895648408077018978559270470490931416263870276912965317467987615322157244098888732778659581152836340070917814792421653835898259774891001038067896791205421632737405966322298994807150061482392680003315631156913688323686531614080923528002701465100050568098666812379556967918397711878169764685688748954961274024239208918775697292335590104114306554128276299260299564465254104730022746543705311369358021199872062330308097892825133577800157422094234034758461709826166192302833991230605642525808029294123246370949400048122553264956144905957566946636691615400662578774107452505868748269747348532921192573718599029801086760444268491651789512351144360185099398300544875536193119385875373448014110185192032210085337103674404767341634706059195563088666529653363245310045777214592527500059770868939545071830852203244204181350607541072970634278401724276140005913015710058393808293854064043815956844450605072696204048576070724047419809985553209342566942981885283311368288833009320649376811753146778075078244112125919895118914292359890426956485933919229772100624535214636786038141234171872131854009450064068465800501143006926194418227079910810405938624690951518613215564117951276810292383673118214668687153524533075285498021506602250551306431762891856909512996560037485634109771038209621524888057661514059857311663930100225588833126607215247020595818638969726149920852845587334823778271061299941775640100045637980116045356951408310815628089395584196880436872122037539936150249185487674880026125108790633433785779351967424070177843564967343308549704123483960064937144456315368181332877417441963512957406766513264917437816989927566702491052719276470905440861785326554877737204092099911042982257242725394843932045927698844939301340759175289662622138194146073777851278428337458407501262069677882975515190271289893207806126247031726470662521750310526958759161827930911682061470681151093878716906696524908323308929117337441374557819136610752903168118073942950602186302216307477888394568310391748502790993739723031534680775536094864486262255790664211332955039894242615741949787195814407606634060004874255143459942415788196832565865474166157045258452676699514410013387259384559240848485527174139317138980208448584172531765370542955647132006111072379682443593130870707536474836991927622021866456046215342168683799780311662208904545598655669437157470455425652656504721114377785135186783440403718160604932016810928552949639884106352584704260008108545273840532446997025514429200052398168304314766732304858182518573398496726225189396564741328154775342246898132409371014810688701805725016210178693413315012161799322090393879207006775807938778678506113744116262248122253310799351975204533174479048010316306015626094266547009999316548152700836956387349535744529434694563580660498886323829481073416654462574019689030078247700490895630032424851288072181080713442323191236004115365023376587132428288993652682308144487460155011573940193234845413730268590111000888906581805114007077285912343889013058905786380326794072845580077585439108583759288469096620570469226361278283748191756764033979824012835209219471980529318916679659070337200359683741115492414811333459669759564553841627638692861887033770950316004360381423561741679526206609475339030929167193359031104220539016360710722841739810843423528906712074145719157801278476493227527752518848724064815817027585184742048170439798341467179049578021975509157414806984601027916570659869359418576908655900193102417404648337780642859009527158577330333125575697491348752218710665489546721182192327059900269384079195195339891919834524210066636435331787482920687715820578676572076638287963670352013446753654509522970569287557371380013909313571992829364977975257972335511035077109785010925074616950017528481332033301081354715448442620250459047486537086317436820634084707851270034510353821744424852535524851303520314689491582143433083397954976143698779399206577167588032125067724304091358258287734600106064998138068233852976312127814806491690168979964308069893406670314703498695432788969281942305616065365170070409934381224098325087189596483785748828857019121074773943274683951567783739644329237827962594240637072159079855732447577905974562330837141237688083714868461259971946721773330695936803091366059217682369880009913304017928954059496347925991352521600236910192646510294270261187141035860394231131017187769349194608695355390257950623878879518308966726445630039351479092322736180909619563847538430741053915538368404355061274041448118225069426999478633839537351499214065697564940636161218119387597042585410110697715209586031407355488515777102596097091245050064375530458559590577923060873451290029571900153110156313141223523810978852199410772655410194269450507694132295621827687055871504053081739159908954063535606915062349168842254566401285417639543532940400444172169096862838499681076105298867014348037489477269140694093140134932096860327244842082076789620934038264035997179922890715383726828415560928323249439069519410821646923623572511032082758572170212164594974085109465181313768804950251316877030975433264920929225529018849164338588933253779679520726917087827102568909635804532901947360875643233867768814437855801566090506152699364875797957820987718684612579464469738598321188479062100138165867375008156635197624361218599706801214381033357177468037465188635082384306996508741653028673938597266492070037152513345912704470812242494030640409375869128493980264379758272998099984671577334377163033700380570284006357434506465369147606081996113224203411215868743496871109518494642673987888310716968873450138627014943519397820241508502547210441198997783016195537417727890167646991119764348303342993871954202080523681987584996437738879970025627967724036328593832837303625933457662499253299055511280633431315078060731704114863625856242751994948806514594064844792133692083259728467002009812255814070344929789557377542731660498990763551953842465318572473912000816342151230771573752964650790876483723246638090342549128842494279540943442472957124066991270869520991864229321431838909915472828261825406409186063365256221427702512965201527358679218670652011180325385032589716551661585873861593092879401494496076621625376610609695029672756323228841681001178483201051230250792646468472380160611315474087102306067897168546200360796124221965837605914851850385992779089906423664957590845163788337665756810434266289749280909429438985365273441416858178456442464898510332487567817933822523313127633033263399018020567143488534634880899275714131481840629801086421398717601580432119094001258818642750691966085523749619642439836299789456109524436787642842587621854916010549443089360540458738542990887577246109541432667616699120449406650576579053263652491504079892314451818939157472240006672921340231374033485491766765972801752226117947528493820837830870676760827948356246921675321535558023928514472883300773162954041066176107281773563357532136339558053354275769346902649033111229878081550868418850389917026145369105828294666455457428142893007666979834660592047267013388440861093401033487804541058052883983537539551658214232299239033600279877807887405841933069396290064757378525261266942955096039348278981712957412268871382070186871730931513247708446485586135552643470636713302651010496157824103941363854083003582100609764759287046686712073160691365426343390730957200913610674676111413140354901365618373938179292717833959765430759236734936385887935708968136085861032231808440882859669489574536185418921348184893147662076649775398951606320853985345457232788968572448929509462181551667153061658682687038433848976048368532629020116714372514256372152573765236628146055315442926877874466022748122332050414100119548939967985379937502213992117543883415082640104774962541174944654532452785897843299084840975944231426172398955661060804387104662591137713702341777748647966062971839453859746009112143020557359738723113568264773405263127890851736122283090433870707464273376351878521646755729858161373895698835574068286164964657795408101885973622989945978798425370429650983909567775134056427441700152043559598364249579068569457842006316822774433372793977491317623461254279633521911361213491244288752135969499732203947544799515743976516291917668630741056831166872212879531075270166895825227649127953763892941276856110925385239994280205408972717282553139862990189563355503105667529800812120400496928673334883909498997881259494451248213837571516611163527511724618565832922337067289407376052938139114778074355553655572103472721715185840432447911897864182204260355075182852843709474690935397852266560371600090011987334614869260816152866621293874558444498975273495330606911525462866090351308365693695970967385209833966734898956763149914005244160191304345626519144427752908316591147748747969043835969509315172701183594225220826297250057696778168456258631563920671461790131981905386088146519706980245854824246444190486408589561847215445432096088613446819297212206651723821610504298526853470349247509164887702253993818326599805303502306208804104359359921291010237733791837793513701981101072860173099687401369426203106035647337466500200968953920925957549432660675230961754388292804347917276574215586184978930085969579103668272726685470280866793073690317803629446614975475300988759486118803023727791204418240348137411165643480034816256647296941644751174326700037105090737836187592362480223518144974232632758009820411078451614447704687278118140526462888556870669422607433559669059691625132476478959940423230310224555249069435024669327890514748318310466120896440458536247921329629978948105428349622232188215971608706417913517048705555610553013648186901341772667936583496087556558532164671251511734787219849701095981045188721632630086795506401016968239848979872987461178082992581627998454546201700718777625712363164964650594814795425634402875199787090962601093283146297335548608323251743828852671373562969461022809992558233379243569719210945788307611803085226574328471284983568890819904400860862983233996550223743450765768530086232624426376764036696539698535826936699998433830544276829853819011134190304877473080869596177067690131847187534328972911258053325961549803280969241768920473314503672449840730623226396174971581001101990264718556838635505231274348036870404440125019542862218610534430665742441811576185990280641217410739422763565187288710519779226948533447685294517810288342675236835223611441605433056577450426643652899704337904930555526620712146652432825922541069173058515579828999186590612185374047195797514117754503582857363351745995310553788600014479816469869132337922527033414763434602341330953330030232368931363960702822007576943280804773754080826414390192038925126637170365093652346049531627414718154942301343768309710512912364856166307058502894822133336972839593403311197096232428749781922264493725663022376542551038254257263098630704204627389592039667343587099771389247172977835054678951947847376547566588182258197579067039377957762925686660226397430946971430604464471728798638725341055914424397981540240234463969488288642790045042054962044723282506694520779723888720636341487118634880505537309861977778170187820882683191148255643801493067519987883879446527798231643666068894442527363137345873260472000083044130476950348667578218922392929977495864432351817565169442762810320996180400954723397630301443936100359942106581202655600548150811117884891254627428196479362285247431604197419103172179278762259588565556179188342004564647310765176945619268924963028555910272350453427894892752072981043364915499462528393512423055345283555927966804315733365470440492613995302890868465143002422219129168960425253104921807890138336127651441606735942729360712040032930352171393168984801911560699657858906832655191798701245902839901441403102885573886642592483727949806349272660063633955696923615904434380458015815415604033817160060171947978989679248876956356128196549650290184443969384265652065497879267283183802408592754789671178059335855413466870953389394724376908384145980290655572737681003742696460639512974586323226149364520434672490519051252531534555502583118245675502234251133036734022279574486784062574723254242244288847131927158446547179387470242824329869380006483459614340438696591669850271297526154209593353366399567185681332193112192042764501295067703250136688855589996789109969369271353852893889697175870449440433557562143507743898275463036673066848525037061424050756609037599968590907500208739044335545411577493841928780344788031111196156925106977864363872314953542104954622301543673095414324275330286774720896455872396865797191145624754311281487332118725323670156152691209349295497535685197159442134042034447212411977628267482532820514307899937979032977828721270143160965653906507478901499935156870978349778678721064184477910814766997603224439926105376076429337642452811468875323920721472191519508458790684988712613577774424822152574696535383339737553071902500364599279502144155310477261500500490225073539322993064060048168478212763599714465550841622910979345254424969686361522213206057834261868926530962838635949946331774370010541831549703207413332415901084266042155332911771463013713531863796258886356401924309631358573198600779846936741427134234810548414063517506838986847287735059159676809347024973983751009686467967764879671484796330862080528167439769799339823601592172307732547402427686128116759706302502971387411686569887331860920322799051453588943738764914635426702505651199527959488277075080386219877669413114915983421457842500725592758805830509164551326452990560012735046928126314209919305725712012324993429355326232482759459412225268459486317435089464592354489449506620310732995968199375442249980246201082129345684276401755258329918170660068547651546570077351606573516218872428513715136991653631857826766821134845703184048824681092043753828429261568623435459437781046896891950452117644414763304337969204124247531402329174930156496645460589281332662657627243673316134121869882537928144210422226748784076660581242655351284193267987161402738286952610614860388375962477545392309186401308906079321973638205681885746601180695425028915191839704171132272339861178955848683563971248897922876167565376048342147537003954878689671866488467086542123284037773462014543920581031590111849663332648662436682184444254018682843878706762404124925794859139015516227033145937121705666943322800742433950980675360861337105152729946502398960022867921637350861950072968540742108245981627853731123530751443977900562453966412987663577050418190532509866862500799880728857510563141233056306731380253072477234082640364463156850420696003163987611338192778000247826844476003156181599716956844489431101695725430679777126624100408730144372882994142518441362651522476710109658543922221187306239369455564893436279226006960739393297549745452299549056317964691485182939692420098254012903646976326858797222605949283491962986195405837815236623231007683364721934009817199454964691439858188992969284474908265133309884030407709906059811463112114896207576575815795751219379416575946881646636074042081286474446637720331039462316213906909576130588105988796704974117770070739861620465348484372777949308062039186670730344998404035647286398345813419460622809856727232058646663102288854980917888885818518127474109740803189718997968034171046851857491686586546294693426081820413279622167588388187663319481961150519613612485383647142691728121274096871567102544250967863453736348423711771324986517056517573243182844644412801053755000270255097494936905764379795855023471248931213330205244092869375348365861158422608649524510320677923108732331990238568572193952710551249325537697957108105683251260855328603800599498114281821869450629371255317024179551186015651924204445745413900566288265262134190225296668656820160276504893786200278344234586267068767023920377189616902021356603878609010949062917469625752994225094252703772114478745879964460502795009750059668269651757147733678112522932624141933292683583919514893388561726682942271550551513574117982280994835999536476036667081912227739791621219269601134403421483673867626358509396304778313648667058719079643337932224561794815331736151520290422953411901751481218034864803182642491361535515111489528640827312900279922025404543807046850429401128646354064531126067178976447054536035213682825692161453245718967304035287188304155823741810723856603169843049006946815046178840333928522787559687508350750258058687946635406618386336519785923490194045534496742539116568386477549773133990188098779176725252079383584117263930660927126096583427736323644538914508402410013189633041606502951814937688795673761910022464833704340128954661862460234750350902704283138359943061909505437268082690059103888343531489814675010956793892708112726115428109613353015386105344917401511166501898844861189766677886757048022102778953876508993980588459134943010288242141789753813134027165696434684353846300063934487496453826968237142919390957357959508647825465909059183421330688944478344703674347171445835305921907998032672415772285572942649320368573166724672007266952913456605265038739078579362593123606542482733352261899017546838813045833797014706463666719885564025985549793997030906078202817153870663297676380798858740375339888916091309666885642773608623244448647095096013126295783664130665649350061609107988002662103375768011736558764849317478823756261827883035661227876184477156550116189082218974648374565687295865531971448717242784424575833632151554463014286740993861078418524592832528370972804090045196324091389858732191302550523848302366454061082894711335454582654011329765496971872008106938672602804376428742287043147778805154350354045854809324142737240675315338936380096134515864057258336861612749863014830708877684506920823172385935350458717506384121040655034585901717085873069043905790526144331137608482926453552944997069749142182524697406733832656376371402667365070122475469675906835593696680448424062309494457192673224146714933978215254943708342655054297239607514253823217095431385257971428374718857868925332269383949794457570370617166310247366886245571250789483535050256907586982985147411579214031446320264811799181515256118078066882409256729607411808432525776583888122922478857064154853860974285762472153322343948650771786260086462822748177883632441358187952771465032703659770099816225729281808868084139330123128377688004062597470066219451996208488868775621407712429471690454436127024541759169068640374111817378825210470640981772864971343293664966216239934901815753058650840112868499844497019487891814310859195711765811997815770120335431569915446084852324933762982401295892993272725322309035574748010352110231672215794015214549721380057054082922228462221391543518752199548715543544697137580334811364738318158371709591779975614962767593398774872982384843213795302259072423363822548044629911793159316349101667075016391116208017795293356617290758985388001883553288229767449703845222711366000955497868001761858895710955624696078579467250792185773970392658424771874415688090955812926825141036148227065036872784984521718170928748367978749384499245979353174173459097838522615208202721741151221615471276794175876094078046537692216702723468800944027796429921015985689256346289025967527639610190173331177889346812588013265850873487522129397145159574994256482971852293676525672755547658475583262441358811785126749477150278210228181658162704288839205322688990546135659217630311289531468516178283455364055445279500127318546148868057571317245537124499061382141541015378418693835146001616669598195816404410438638878023402130023775042465286890821570979794773133162790382258329144661230151290315276055202799210533443445504439949306110753845985808175683840940309283563264253463660059284804024864870819420077283936184859072945654601439285523347110201069846945519326547923574848280233210577660163661460378099007009148646549629020727694982895811228105199052094458747047615058335370138727820165531539757261554982319964355118103918037445285709963093350446979844614367381166770500847153242558095641808907165668336966063063616893760172590748602363362114065737108472110607300912080702681706781744709584622512131184302777116083400505052467399074847066907429558390124678081610775928420647676622851063419131700504940374208058490941632257307104264229690824061646280316919923687235532270131875657698141843969995484396101438529993145109816662290776567283281591546231616007612447799674074158651948722533693688041125834582921515191204349549733951602165724011328684831116546208051463630824071840316139469242605128481046739941344935977710844155507355240148070888137628875047527484981708576811070247106359666591959763388766850616669813163436051236299137035012426749509212491658103522431374846679886024803109229479587946575918639167241291241927878852231531092474075070706446311775783496519920101772807751978448608156418906944445171157279851449539108094700137367076510287299768919807459305780249989087756511399461029861977583243943725412283499839359979220317564248815676047969099955227554127427312186717945707062421735013450429719085911069668810001447972138001119417207231768839841252680910430947416996324838610791948926294156247709076764236794903635490302724937291463744832387600086906176261275629569305124035322604923490430701994957046637936709818050594426050473727250666429411523403155828104242208024665949651040525298974761591203866814797951583275488084299254412107822790210944986249760060104815185102933105831542389224329182631811733843288209822000929176296751433802789395362454052205672922616749604441191138101596487505532597253698928345419145650790629453637589562933411673574984946829158524768463553471953239619973499336773617002644757237245368503062536140359903163178251086721829480655979851568366582040157387756315158319163178101041213773735096319115599721813642101452750022984398768678712852608680981010681182062496685209650355016759336753184927821744649673063878749568897627225648981361874731951426350932362195332102228983970105581512358172107352798748396611357608681626587734112369497321118026562901732237192775869999616017418773530443051425972077220382984201607118404738774077467079541407201580947971999379548494411174667835582600004232965161907820461249831854006306463434049233047541764125062549468432977407640439747942096849823451128198475803926932105621284976021129167736290736751588174272860889960621339222371690252842754955046765326199303456468876284994432171136178109770355063256904586718520913461081530528926866642091156019701134352831718841197752956788178570672400920502908898780972453789914011478156049653495641521211043389908119600540821366770988222779582937799086267051886018776835827915380544181283464507600458517320891716467226857560280491531155941199317607932729280881518908601036158018024423297393856303478482235915236301952324173493817249353598077163789693320074509843833983203284508753583775783336124143771771060391090515680942464635648927476777008951842771300138564667266870952333627402129862489865255395344553431150708385197345054001144374182289970765032493654417947419504396829967414371804623650764405598868702091537660556260939458087738436520501202397335347773229394550294487234978024591373431557472591009018530293528500915046091093829905846320356525025279729496295771222184464351360254456770429576652645354108677055454172546136127154449628116827212112240094549948333449552469872416631093051238601072120698269151137681086133397757686595300263410914541914475507146418399382144552696230033574441355622216394532356252701606900508756700548713133793868558081667954333321742957345702558829978071937962510100788304955603648003542120980552220262421230688565820718032029228519255515070391930378536608762831860032740100935205834989812222762441549932417625252347181519655402980981377233574883167189520937851514165985703980294433611123977959498581685565509578139057798876046317019923318553316641211939494039350869573880033952551660656353982754133672433584439645063493752129692605586807599475510346186121653125182077726802567514009953815298963132361709488050116658944611517188957218569348161725357429021898392331349352654766666352660964988507858316011537381352536648415554360096174733618292503332035729877881706152817284405319775863781731471921638655225426692794825288039680111421414955327013557784182312430802398406497172999606697252853619019280990929761300081671371359303453519461471017211936350566053617299889222130286885487032764173998246495224079254695852989552554673966736667319815333517928074909332220157618751516112030826739741811008545677978088488188169359005565709083751093898798698233923127654032640057377652011435349842826740396227347931256830832668330786789361898483903327699345457247456504488213636600038127825861400115527900299000511389424583970931333208722311644890969962242519934531969232000731831742023660917134728465443779255909330400072247088019922772674248301945754842728773845191171949200026564800257839276737136263133992864423082497185642270249515798129495339676381890368072180961517503286201816595310252281850381283329600452782361934229356286905819322725631685686860219548372653724170265944325012426394594746930252257369168885200664812827263737842718737234997026322043987770627592105279681676016499345600914877831855027624136537224988762865595522071514010524510913546320946884263644855828637223729201866563410836899310574415512555093148342832428762527347723665747626108238430779790060145922925129980146654428020286315988919747734132048837452864262432305446710734392942258756017271166325604696686257567226977912722775617733162909925234450908671991247941191122072273429107804474895730115618034788548323110267741804158243371374745100671540446832949506675086986940211755370146392674461923526323679218195633288500746110229670962216840434729966142600998705604918009524491300205867614364491328305319250737742832701719752320746221427104984475040076969042454150828081880075725612130673007120866639636179267198189542829057714863990250342746746406285924566144933816838925574674068906393061734950534912744572696490316639206553224503763498230889980266344659406878437336242002699603208957572174696693116527358309329611032695434162242688654950348810767510595182170025777628091105385392143779334744921318264496311488638960661051005249475451860842374311318650929597260191482610268062608734950388606244059669404925931824983952756366736471654300475996526247010857442238889746370401431871502221471759479464029863932053045757368941979943882962587068644948925190046949314045195795338925404514917863870555062709517023806928513570168843142113779705520259299562239138764671684041660581843510280042075829360172342530054684697778885498936892409146799857504072073205724355009266102291660306435298953606798394991505487171352131561360892600424978921178192701408059097858207468028586166151024804830612973933582332378524608310604749435385266977370800917472722459557918528487195581507881049630551162892933562095953833257538129045199725333163608786895614810004308436577898067629678230128528300872402319726870584951246439495729700675513291987200665199204697858885352113657760482989956564834123451812259638724247481247283894391204510297180821393443589475333745784085782714281627038835537767005474492234194670119358236350072869297989900279481232935538850901079494539634952856024921591150574293180102695266315248891409765076090607322887813580175132579620749582923245808094091210171909224958120658083402199886889313819734474642853732343786587175890525303633607436153374942412152196835519973712342770081383764280354716958358705737135853720540296134799119008753359089989730468768607205082567403239223835843461483385639986546606813838348233300954216755538196155509864964157484645755651272652243418387082964429450995173084929464031709480674325478443942119275121169768738800472640899886519533624882237787808956726344286172047886320100214837301986839578078152636977875468923040445766593060470957021940913530969387746344433291225170063597096751841256207097463796185752797023815078479621024413251476110279220077894818828314196732676053685941472367078063385984516494065243727210263650214346800891262942961150884188715112169264204855551640985353144409938045162557388199932947936657090931857432126642226509697758979783517732566547005102235556852180501274166062018540907988455468906435314949397338035363967377677320418604194593030225335695777904483826644262016336489500733892952497022604578841051231224468116286915137937944641296759193637173549241092233339250873143993284733897258232682049901774254409368921671145794035192841473343321936307222969003139748074965433212345315390410961113609549537692679519789214349687344835907435162492454627897458815544191494413531518558493738379459102322750931983951466932958588717005199271658962523418303602499817028500550967678264566893352069258210689074580257911237548750569926862149694580472908962468404349439823184862907911436080835066729679604454953579184234219680413673962268550746001776094513616853597288378607992459384068721365201753163583121996158543796925972774030183269151120533678775965770937065879175452703227328366637118066656653547510136055547497735473094380608623717545775362247393278948371965000014341385561695218981733117729278560123078135743201683483137589217903819217349423986886138793780028799033419604878042727378203164290378134700628201636590441362477400178737659473644520709919633816791708071009172468194311340000763683049584869686688229858830167689876007622627109327410847708885166997890008010934433124238868593082535841988338843607836431099767338231244832440612352519028238534678259837531443712930523067042670243653964322252307148307165354717148469200297371696054427877356187135998588032666727797436427971602352312103024399931245684952350909630596396057561917836434885244707744737410166316489345256412767681824837284455423757223162486359410113647945869022222336158102598412343855350893120860406079021455947890506886611007838273995713667565192772451693745633382526274632052933313558158969234839693357323456269827610100061606304782335735159625846256193404596433098557545928372514060001437800222617936856243811421852851800189931521923469366421333756445855790406723331418377325438869758104307006069227401244492647921833568269073328008604686118597713198789303017029851550426161202952720644390926074507238382552003512576591101934623803437879931023765953621664553303737830454745997683533087470058028165766581102790195622963075574766396075587089888000745168970837587092511395554250018464553219766718247883222684817901088976417092920628802995761480230194282807614006299245630045312617705985876669213593383725657061802952581029521300402536371276621331239604011766292034556280050236527304734177769085578701276384624380759956354835108830498662094434806129383058649726027793361973940959340571337740772711473877343157602606758277781657134035228855759131162721454671944132563912845232065344697461603417255451252261232541624856883117616602042401412939181607485038761665539126536406772705459013850244275381060248884878365916389604727586145856184675471816456001146623936719627942094573654516364030859071881089124777619185220378688949526309124030193474406210035097773707813006276142752917280280964476518512905920519701758659381984693610420117269030442523713476427365081211976884175504667256526188251944703850409710553014164212384271427535185336735426661025994306517073242072633167587181752212208660794897300108806153895211049827746219082946102804292480215355965941431163652436422950449035181118859216960792527604895014776332213485179535927923567102578608617986071976924154763453418756385958972657467324259434794785877321122680017113668477903459586988642059255484530500751781166866621639679658927423015465162259745331023023239941909018702348100300487264024755380781241264317062820672166695510968998336447290588787545062637504510770115977851558383223171194343716975602912385025079576038818707923418460188851811868042679460349658822723960501576441164726882244122120548329340024141424414892830732963628588006443018489618536661107890696219849160911689742740572368942414728678269780793920552497139897892272342232455883244277327841964429292842674642846464364244928854098683370246677259626699221235563289381814907887478872435295948256481855063476330953005872373758731934607581366637386839719590991974584220192717941468958581777398759467573849326357799086689086518397235973890672616144864643295427595275879460994975032765619683591774474639820665586390194432572361928170944738227448073099681576343457602659156570804847213544984994571674191850444248103938524523291120631501953206997972567911873183777227950724379157550740114153664386653182468031646243067497828009076884766613365065902256245963018771866381491777286090260130502346676947893332538872514812514621038677838191504804896567696512919630975426353797062712388952382468368902789891821420922469229526667618371429688782245060934346250524905419109426346261437581927818657635713145032810891246454518534533485265362067192167890353975857624291175317928288422549294398093344774535849608145272683357672606620972276601253599831835082108078262106801913183808281940431276583303834455458276546937305167329610655198734970123704765886233998966260028067672283863494989924236514131442770975290471513424612529748523235729511893143897418170721472967190616682945594502627377650609549488441221034466000879503771463402004930145142312586208781531247155144028585006007781720444842316340082025237710008721853836857975753627856034100007752399747812410071941669151037467852986296219856558582175499295756836087799921148959225773472495596665512941119280240893692898315848955388643012029953518103760974105244835425282623777879307082610758431321926625669464855755956918609878357951910011677535302505928042685394988299588677239729521405071025275079782936453966731031017732745079384786734204117674156615308346122892983634104625669375317012279365572233927862718818804936159360002264688082807078975483934798546058667416962139466680791917675798629473100089307003065195350017619281464917496514564760763295000785769413817029629916282957840011279470295321232109001077258320254134530150989686099031320511426274243878540053699785670933682045209587371383113265795400744997406729486448258534624315474295267098512497310081350751749914899820110855563407017113097837695969382160042770617028423849876439949898374281880395732458064241775017953584766588553608190269041320797872263658988292066913913336662292186413516555824678574968944983296358999784582122944404084519574506622064551253584056988223601096030956240055249358652005785884050368573150239896153733952006584959273554348555939942468523281883056825409268386750728048747243085795702491751006889709045424219725857594586656180662445614509772719043386428310365887168425685257921569059168436844429591158431980921811809805091824327776145579611691299812936269858016558434371884393389034089943160621363149107606524908418998218527577782613639942602561667307133849961603056148822093245550122352823587316020381712732569652304387283684820026754784353872870760311871251543178167336994776345845087367770720122669999540886620456629549799898205503428138943554962535054323568045151877216517379992530679604173610586556673004614016979902687552604925365859676606850032777411690585555713326080786974896817129456186819010373951103859563284921735763504108523477688150266242243458423839757223142011078577202477541273296688768948042408432753770620506856270789348253219728669099734386934670832761163023643155750284787361192390141379621626127363464414467380170653681503142208433854064248668269469276123347429427337860113826895535590577130214761561095343833532897722315914132803433830642983716401817140699207434426402886195753470854273260753412865998888997946839023196781275675415244478642378570426688504806286982649097332325256510541675461300489568039970349128247899014442341133755734300929674107355517249513306024559441157147169372695334074193305227950672505817353122107265332912789911503687236047460963000299526564495592551949625394167295130472833329560304568078038694803233064804728009821376689338009886393130732167822026083917359714064843370482267451580502524728129797329944409747407933919619546257206220085841320110874639669973638404683860088124231252149125299720160402993797933058736206626801804514796826637881692939815641350617560821977760910986385361735918597753667797261726736775427565749383112536418630582331357248263843977717502529662712760974468002420926018674152484937607248684226657282300699668257125225757061097566142144242377124325026915848047567722787405719018504788805345984996538166675081744273923198646614506082034372492223120449452548087860852500761307608593360040323661593511552161763456134575203891410546916867179545588316430971901902887825303806420833630258667882578486416218461296340955946486566947247430897447642721333232317114119191557302281841912111345053498677476515783685007721522271945200204895111986050851445742880179343043157356912472396180493302480080967471853380478391737205730575977420693442544700153964732744421828075822426500557820231954103293832101466600261953902793729063835918596213298226851702036302889670630810955751654405631378848085449948454950671708744500145640377037598735678870280516985653727945836024315961070616356175796362840736981551443522630571792513434113700507693784951763221773811717543886733661247245761236557583795613715372285991067501811078871102787024472466568319441044897219315747723636083952745346700078968809455644412150661570580088288484523696072152184834649740745979683957972351907751431128407357113134469193921893020119089262930749943590941677597263935492377869352857107419727239319362173591656935887322628415874792821444156879986206045723711266945200554734159589003634758365484761639423977731493584776539118901790570410687250525227482077727376694225699587430251178668169412077217192513951490410306920825233338016756883786494799348385898728949692311952716159369589952807230477282685036750417148964771450418803491263943005708720766814604369264916142522409741627083676660339511924011362849162791213864563291740295103858627396762660790946501916006264849158916287122505938039404293858926636532206080517355790255794537558992162718641311398569544415095287864630359270895048587752498570609509865841109787296199098749271934680621737680321533581357316806846130080684011168684723177212426017759941499176842078706835121801863984591537048385680188530272040436486544209328460874808545628439468870296426871570516023210063011192922546020904685053668378447691681039093497834796366984389445657175427252488289356791903675170997555702487255171896607788890578626240267923662292076240810662561528114699827834412928955674937435978962791888408229715080080292366855784717278327325021702586773681874012738379865175633456997133816391832372595921414512541549414720703451167704749912574926014043256834877799246945115166917238033421304050469733587750421174105814961531117598283480936153318532814564561254505440608845660430479927079507201667986087933071819100628876356705687457573288284145914095343416905289725848982707823775343492282587563068111200324309871186047685373123232102936188583998150069966049967776846875606568663759550064674366117829386632365275768486378231149200848636852862720420473838941059290694219839896785433925509407431134265090175486795682522063503759997394117045054265141077051938343546470230857775110357319989624359527369379899627269927422124073158400577717302218433536664724454225646280721113183589065978980179901386220137546599921511574250834915063116035275380037988199382698071634709678756433315556762971410561205734120241471957711212669937580378355846096599021151133737785001371491707976610070691972952315097071366413533238641396190642531472895850831997474474655634422605163743638863938905250073154075580258839813705302231351118621304544515876315455250354485721687591324167204725653662691474227029895861398214527838634690971842450390076626606749322786686647868800637661239716565369749499457875611507332540752136998168233336275385392644903374144915509097702546393626014158634168064319848149188602436973114037709139152980619961179552654507661257075486258267166386494082113074170133637007570980219782884148828801755661619765596527034685558061407644257188523420982040692781326440560092824943193904929809614499823701602665096188696217385762574009940796906228437819582608137296735931116614024711977551112807945524384014828752977239766893756983412438300701149812982962683021097095859417938573656133762118526077526149031699339524672199421289641533752752086352323366576145171279815069301962227943962607636144974266140521916058842535352576580922242615988882332231624982582697462519352535473538054819069712475673212117549093620463456224239816609439136435349510966589716213477046470054326898909022066289674838083493322568283717445301870116379059509182912829683887437077976521949476264443549216562268250429465092735253705524846664821015893715184608369557114761168181649963356294164240663970130214714807536442404900371784537205066685096267017481393072133397172103045186391711781599067843385894515300456109868304930402890385099163437586281549159268740718185356467007944827290159486642322168267813871694869299102441614847450407409111014957590704546521421284747663151936416573335796259997502151766686752298571818469116312864868168058000982124251398235745025498204549430316362999673707275722967486416704621887482594152742463668148232491871934348559618586973631054832575160282775366174690447514870685356426874713062597790388361205830566787864827439051007535899116892238303326654418682290367420418230324009323596178569520305084379337254999334579661114697661966001733189775631516891463094374734718680376526988855444434298118834671335123476939039211213527957194857989136552874791640354126169725543970879250759301569927286856222532465658444730813419448849058351196192537493331084627587855199839647486777345987252314762601152756178130441196167074195371956552137617769233556993556812690589311749586243617184316718159822702506605888598968361329352626361928738544033184959739405564406579985951037098766616743710272205839522442094659593542737076685500258928053037775094453785536969530886110103247390485934144189320099184983265065717062038512244522823749377639097098040629921234626502445558443129818559496861102967037117103811402630181856204828881940575723177315845714032424326415767270436487476636724895410017523961920010302412630986000888297428974087679997453458497358201228810336399322520804838895841325601953561278749595860160914876042414909766656787467775817863419044880823877516735206491578341813647656791260629099102763302221332809844863577331486474685252956934713679959747436281984797688483062229639761037989113601832650792951453593872025340892231368859797854048680500892074121454267726954556636205790765917305743481956946251953467900485377728108422771368707289679978908023821303963703186626927832815730453716280279837529810601228860774780714322160068655723539308913432977673926911966524163621523218505293068651385879780756764724414329612122264886899754851904817884060395384896031522794778138754385493370625874324093857136417087071539352726098719908032678683894154500220231297610839278528689259990177917721698977291191951806878531276935163434326322896827768083247186421358673797014857868247090195407022388259194553740520949282127018592882827831968219716767024477029777459023052553064820451815109600721352047117338369683403895304095642836513648256885661274258893640545503152599593623310781580703808357440494018939483529922314044731597574531075240196591762442594608459752564048563218259434384872966529736802760503914884247944596056421710214454674835910150246745360785763812870886886264448312731639574930794998815725059089882578997750163563220803008491437406215113500983876040843000951304380627548601684316064642897533096618681443957989632124163692752038775381683036937974557841416979064058133726793986980660035647584876835133652940574306041616977295595578419565573034547214659244908427409619124128154103665971624950739769325820112070206817685589861338582384534375023206247326638266887360107517478741084081440882281225608741083318999734752136357301421081706174016831233685114407888903952996524489599600212394498151899012901571963702481055448027413321343958514883700417086245755630385606954461437880635794953320562327799144489880970558809502175921599827495531922986178555948846555956494170479344376495950919706400718155369395243975871375036164143222721214272804546967708975318077625940833509721233173246478896537868060363926256533404890885351624674316991157323742625606554740398735852195019635303726378986334791618756031261568071814569920778432481089890720553047247559991649768010677451147126046309992684592385634306151740181985868334745669574205470579566300156239162702224776446370782359929408093697791595266149461792303015405026058460277627876245358946566303400863567796872156268310637923963995784460459521552704593137058636130311025822909432751052479479187464232236816657144601033071146553724831465390726273031791191135453423320376983624964483965137178206292441396464992506900978965232623899605007815139636359430319563230859771065851854692348235816721877154879333648602871923691101376164842259901587953239007915315782076093318491550156375834474219238728611607908782350285502149245445406108378978139443424441375844937668966283608799301854516192923674676326112225546254176735689947889925307169395560869960797623329389203053849362660087009699011161154752496610851931130742222450845419718321971879530502333862509640542210337239886430557193691062193553041939126906630742473918481727712888323631041239622379829620600860752291837674914999264260303491972537373285140194984019130245934370449581143086721693245687257981487025472631536787367601592066764780597524062362065062084192238258130973243320194565575509367434027846235026357108458834048075084667762902088021502349899513309523694381036744423706104743910349631783038786193969176979300854540083992363809398967518677848554875781166818747301850859462568631473130790039979133146161289096288535181502538323006593880988591905873347903095375044739510696686885485798787108934507542166359979143357165680061785979998575637054188025919669240546980138108928125826089090826300802771001380971965403268087762935297686937943086938076771779268166960300541599875096277677316712091900794184927539580275523298659779364634799094057103756280700401020728235832855475205069018487294541389416161532017008680124357777769440157737807950148890778738421020496342070677884819513997420421352974130927699392469253169707099087582235013275937558659236301240898354949040521466106154846401983822592896163739575456449371362022126580421584287223545914607015962195437195879370834587095412066510758357514405757723888627815989580397390051691312875055078485338471316745162860695420607790791633226517154133702675848001820954671728743271520642180483978907558284117795829835115378780975203040561556724384382415778861571570384064553108401368342286239258597979354026112243628555939600667195207248614417369232922932300754949172418500228827536222166108826480712652817951868564049128726462780388126064041289900380647232600060365844355630338965966360040832859937747179046081748415395985800992933457556285387952413030019519210923919522453811282394670680000356725764115538009423188374547572486979739925767180781444806795188786648083023591714853387376157465630640771758326824919134415207675956300616016149257094178793403514381715294521839029471820760518838293394854540888712505980746666506374485409517136672434222120863301160813770782129542781364025330208763626245025429816305300933114150728015183888307775711285010594626116103641507726491725124361738304656493912084537551345968921792961893325599718012377297943035490053195560473326306156039923891582902873983222566077900133984596169462501739644036517797736004293108126854508189016057780217397315726014067905948359934845305608123248498987149230126007249859242632939034959961459115711015404166147613851174328304171975402756665775757386627911856385909621216598594890225890159425576851850392593398420722602224364538455436243283257517530835891670950438366579583370219630277971353919256733691120657381229344241956820790902373603363028207629499490460582735309817083971053456735409155630058652167285578850767999704013050519803362201040727369201348766945952769158144159115780978650795191669599610659510311749778221635371135978240446091510873183777967994690233142890877046620633403521210967377227951661369038897776839512807733363436434159308395864154375546014104867128708013879244271079809240374069064572103895965072920917753173879142027685282545804564619502589303855832859275224671067006282551321608874458657519058014830059677354078824629790119634857520674162336640316470153625379062557590173188756537925608068927567806194990862500598344196976995105052749027315608096383614859162272190518999680314175205746646193815284252798286255513651101549653482152545618060527255680752346489562464294821086924240234820028815454699053586317481285786872218996025268672827245177189425487654521703375874516202743120669212644794859605387340296558075411318360881159607236666458303924409419903848980567983865255552768904830599553664187965738560544954439688484915927697660233665334744125506551919825686384039074989074092859922115027593671775408242170785213800015356427085663790666486010373460217767521137805422839521091894620926639634711190562030299391302687577968429181322312732034086710594629339924001244437510174786807844645980537234887221014148953288820616584180425719849347507248623227440724840265042997812032060808948225986699477647429814509882915452047936345273423826711385576745365581237703182480169732809245149255731145826045914375820593080191188074662791549372909651474880145581899858347601837150615113329031337260660143850492949534871365018617320251030180288615786844335419871761475065323157287460865571730964302561954918344563664042309339879447970498519601214288858028081629496744394682083157657659083814706093382452492580702305433166541441725795126126014915510218415505666050422398609305836335640172027091608138178968839537018819358348608446989587700098532487882639638460859232482784812988019287411821773079020059183031432574490324292268330084709123440741935020359199027074843347624294786041100422901576930237747913850792263850702616522731460725802661268879842432485056211407458644552643645943626460012161102433075801901196131093083221272719646632602512164764330441967765088380775881797367804058870995193368435481721385234129220442892143357411158499183616815932492469161034843393193818112020293942236364153972731903593200907144205519092596921830625084896434801534477536061942681170105312478721382932155635620253636462056384536919707402013488904693853639684081811135978802391847771281759158944124160283635416810030585483093651794765708523530724161764792296821762034292680663524613706842431027016416438546089226887826812700918928646424887400823384944457789334771898863346793991228358638088110737900134251824868782081980137716969988280426151094834397489463330368757070135728431970789599783624138555013467498532923053110853777216955834975975856501625362792155667421627760189715953611039356632840579040762517750592100723786151088662308235770843629261035085049605496653943165978211470876970001038916249616231663559936817960175501719910549356741769470255084052830008895464649586351269716489271722090586513343167960503989603293643417356564055421404971090708547836827553084975748296733173638898922865050377302979893516117265942793993247680033750947477784974563732743334719223075667857871271026702878673756043761296027406287789078700407720979040371165077710997267729606454351096783265363304934091209483189286404603263674868196075928028468104344549556155986270161407997160042314366752123953765133400681489685192454614443728777102707578381622211304135281616044195280708433309595859894448866641638257466228646629427041118713575592683331057941716214996271875239589759931546728200406986308934216422614453755307348676700473863540046455106766851988279097357536990016491828557798741138652791063617488419083242396122977032302261830249655836235224986182280385308732186837405296548760968870392513039545338897240566617115805692236201480006685907342637398786520460487913800214133142755829144835948552963966791707577500011387188747764203021790711529537173183545588513141643469836432606504031156915307919584694476163210334595246804495020709691896743722193137274001286836231026013169226482118132164921233750249421953946715464211181167001041318099946429391199129172155230151575277929698557889745201345892847303727610702474827564813839113655891461233567284667449130632065853322979161928657181448749726364321121560908962515109360264662095651133961095444069132731973757916674597454217334112757690938904067238408759839057040785562798419164950729001467641255170143480127573620195761175595571568147830093317057048101646182150750806179362906568831314161973085814632096839489593801690587330005035272907884825244050340686054600988158138525351735784839422734929825957747271355930949812327127117087292914170614870763057152181856587672923078572075620960412033129518666636957465656971759032857568302378415521257428338011093798580255823209949444150073509426831384576555218510818311420422753537062946045366549523170394395432215536542989501623516551939252386742575818961951078500159013333802824519497192346771280809424517667531660263156115765888871277043453581933790243137032631977453048094351809014145287394105689699533924051135367011412793588053478120103033019966607054566610737199405123972150971725561252351611955225558542683643219983791542542449962900005878688088685803094200199313266271858379356457436648273403371955835559488169105418042476911523180851771559835236089688351727709240556453821036477922286337419803978488738480197998972924274201558036680088509699560160708348400224856634336798315449589434166787247288502617973423795470173189190990841675736022811860716194693987621259297239828803092295873670230828604213945119950117135550252108664599405755465013232487570697535860025299267099873919767390271406800269166082081368076218388431130404654091626426504207210431922021596958348986846964110493915439455543950410362541682262036271681642567257675373526772624457835000149518076876733078535852296315404007623416255333729695966512298097940717740436802163748317136705744132335379550261295127933139601784604636240787604552695731284727197902639913507973850458954844260847396688045327309363756795711233905814025210962042277682004734347959650173067439759993522518704257453395543008013129417931518529365675329847518705769958731138453730626650880886891685391506658292064286199532160207629539423884472511946719463564034036540189118119389637251657535336117095453096374071465085242113450427693675487273372380964097536877620285782294236560057337804958647223905546214474358465088708104337695876919588147095000535361742985709751774388143312866738007662642173031060274566704523921155315692189206538701987079676317587106660959445052350610193363721047844759482765608527203814774574381679638867448715648353396356686115365191962872977856755209561858577309016382117928416100929830196398896752243466049440355815697894223005648931259061231784424397139684355151264817956773193431442655029669583537678078657087687457483265101470154604008693121091131268837611200403361886800116802436206240838368767993855520373936205405262591471035687059871805693775045591527053158219571406552985064099786606636066680860846191631647927686186269198400615668102093840739267992726433388321930689084687876439110436072930604450606625122224758965253101228403830203130351395723196723676084583471226776362816521080711164888061778892049875149175879305880755770550498512901690200134699811323888361406097768951770161126110550851214349200972601228530759913925958337422448384233262508182973808535268183263821267787340650473561561447943416585164629990071923203949453150335557850936953813014799947325888746389198363175156469103500801912850957743685693353589218343278180230800710875521766433067152501184771944658207636847703077584340865824858367584977932898261387939068425273137413848505113129975454127077107222336111515475490237249679583996471560544487053319020101692303933730906716823929440168818613835140507991639429862206684702959963692522535170671052476480659234907911578202845959453057741504638853063578180335320139382037431227496445065298401485309475330949269872016528515191503367551602083035163081203170246467053315629115618061588179037195334863937510829505592452055303002738957139792052941411565212320662488078795388138291535404463286497630067105133061333105421518426069240414352410132087854394893385153453336211856070567297166457216322854222828045944908787344896669516439328470681193031550616887377140794091462013479279441223985798465788253695370227857745327414209483497112864960208187655627546358205174941710192570098995441114434749657615279964170646056723033914869245952146082487333921117791610725682385911642158433409855382669584137333635076176499913073917215167739864036435348973641586219480079410315379682705887260677547068555815763812222578093863609290012175636679050775847231969817821553532831965114050374360002775180933142544058668888861677946310108519392139985588536926341805201687699886958268394202983144588638924045083859055859891423912965511054679785577059210777152373707038979287819114179208908108350272174710374369168052149625483185794637672113094750052514216253457538073935419676899900336747141227133816592849024124491961563705954089421083943738335846707536806911923066489682156541496830908374016051480483087693930892279508213203050290218994906263092872419780297950089870846737360021256763992791259730886562513715202608514336895640902439093663365018344096946120407432759448748565301076608096065283736913685833202207999265037990863487005303958373932590937836913194915255034133347221512686262418113856351797852726889631502806320516167004544610916181759251261181981408450761915919163630359004271791810761576057494055577030713574108702630304632291735334950286530256433797317652658009309433972133739196534935244903069882261633629933958198754398000655570046412757394547895551974590933802542832250659741578911175470898093139643388374221583417511731696148490121087392633807806118676384829690364419331207975395544304138309085562594477073100061818688204980218373995131809521245845565375916459321769091457560931163273204110688170657508494092869509328673411414220840794261829022297251204611444498993047602653922332729608709172738418386436881459958492630408263196274611793336586311072629301511100130169001339445174555903184991730791501788759521048519713557771006830238327140822830664134996796890380053047418894364702967315158161655541642754965740560795661126824144652171652280310317244049828992674999117878004241090501330104557977352009622862187924592161621561809402725353692865051137565708420423368324829196662789706096900511293315857982851851135386246071213184644342449435918547788913481592417440320489723663987965719307427093428884843302270589287867709447050806255609498444228375892510376995253996887338973766469282173953471798134714979831682757073315329894079256489823574982358658180562748991005921560529648560542547039533692806387228451956584918516997750161568433551087183758987585391416616148065432872566299806647344546018163515300422564555595265283836663269628213622410417390878546807814213466000929433815741030379726722739558331331023490094097050813880363738188209619866806299976682408214848359965338302606063207530343438013485094618217789710099332105320233958002428310021220493899345448424062625110025703039066042137961282376691633049047364394456104977628639041800063428697296195543361238878939979420537954483911330332449012386310717800799502963648065661388474740084471672269641701946869679957966038610513350274066874391194226881708334570927532837073863838747532785823869098229444175840957908595104164372321594004245278833886106877061826343075033735192271227161009906724078866973981381115002729855371979250123157041307435000482606665899647245713037446255482232478503721403139092241440420512934538922894340009128382980418626539926874079727165074394822462646549447088296269680964224903693984417234308172894904038117505521648072458386195056162923483781643289185939550619809095454115399660054522446124545892006157571170453110484920874712431503217009025016951472248966836344592793904501322517170507071594381435357357774179274147869619498978476804516572705679953275277871494878585731613510819070497028019672508437641276782254416727895834677351267713283852134162869437924747894131915096866838855025611067039529169322398431997888473442917627569400904053150461727450605187587789009275215649649601214726671178864259918656901145461501255357420781138381068376050114532179189742903026100731521289571410276513695404325352206080936262654190308635987677640205869198340009629292689753690297003206922317439329669830842078850452661080368298819771414627919262448636629380842004399548636210518592457220677161901908486728091414496085346762389306314578562514209535235277821142325017262893506885881662157299420361523005214768953635452909706096674654057360801224709571603148044146910568173442895988598893207329422868950747767088074660641713424396959291035435927830252362277378394707579459618718695792118637797072690299016915180837815742258106075289320754116974462228817876936681662733662941240092316165650571513511154492902285320924256454223442821876870590328700107190233049186144051892080806679320041585427840103661083622575851866862747771044906544047188928626211422947314351445420153595504550083198984943775664745176532201671863732746105285741415570032785410510482976397805873343461352412100167749216029742133970097431759319610505040674458616765582081204652781776979389953216588138270760362504404087873115785566537343982244553017671588360950314846960440193476556634356344640721167163238746331291749695552733737453814718072303905829443083768912568155360789054818276944115859219970311293330035076524795734506940077530133269414401399451858033331907019377982680729023800009387550507486539937458587827977156578278157445463281732552171884898526700285546750825246993601737612257078141412963213570200505666911098726612859018384964970850537699186080653811084517036005574864786375380420977137889352126645579446953253846396083083325701130449876000109554305730766720485864464918125701350830393009340139107398666668910105086553217768961787892178580107743007992475884966938555851038883127114218327525833773793723140132523979852174951913724594583013581790318752643183447130717953987848631129869249110508092270977772784998767336177498559538322725763072393370357436037751939784034725785670908952114310712613119287360786086218537595449211471190969359323378759474287050992121554170982335452280236689129560057641754675275572899569417917954240528609984582992483270943311040645987024912208892510119342733167968346099241813904425646903326237984859817677628214994006632166477054505618692097036407214060993996360278393932595541628156728224560756238122976587945719146241097267345707086898553008458397819669469917442469561543660312318994643116595544923476242404846012441597950055424494831005615410517418508541638792227687223596632091308390303059433535835794645758220406326753653003887573386950305401847539822075609713018247023411421888550606343051397793130752876306656330892283405315290714433838763949749825425422429553380168969642629387813789227838546464970207067275152886503161061437845704298033247159532396654532945170401386001370823555685983267885462054370900846637053790527777811100279129625557344757944048447907200475986142353425817103489670269971393244592133948268909376326489220022866996265926212540590671177254203049022103424591543808057081876215978278557409940911079394629179750582281085159942101775133908590327902055285922250017202249427136874346836537654989747756972875018696533028651455723437136438247888934076748036919656266236849194850400073489008957516113747161091947186240918681032620237876195373815876604480651330999694796824555121326797430295022266690508468507124826963591666174538069437732135090177221956902408121470803314392488830442867040897254676450914311597561724422120510060906638362073467720841547705057598154998434675828712429830573966062503143919519926680810558854012263456495089948984332103808948410956041072470100132314442849183039427406755562075553273262670135187435692664604182606547692756783900429366166912854631494733765787763685229083121294922284270531122403581194780871662314259625152577192163911559270295607220590744714931559286719090079337402818624873289719460320947410637969144588399351990974619761136933831184105622170562741164190673485543039281708830207339967275165716476140290068038451952764977515655495178362344417978240531416408038200726663647717034894864232706716544101994950262319443140812226930103861993030951162562698989423644190417565012252604921228853383918367152818135951895603209449960930280891149542623492357701655308592247973410939604654110666648261440186311912847510373682379362427105167321683369809790266038102751716126638808838964600636155766370662535032547399721848184668620853414127164278025922505857981018512490287144881245817146173965578117912576118536677123462640696727338070198633427562651563917702640224784153593327169513893004747700475072332826081400560601105832050765291134557531545130498023106714686302318903752197417853344142419390505677368593978299221280189225810062355975751437353463149436452351240575199613584084826329580737461970442991809713682603753695927355731857736666650735643148923767881119576473917582279171959898229039097448380547808479202790243872023104618052399775779069800120304022794000352636116299785324473137423149224430068245444313637269530940025154931395075433917310961969644221920473030398965600626160119006772261077576346396698569112957404828609472627479297643469360102172997338469540014929831928214757014840828065304521851214263341051948296939501158142814184102495615143293224234102367282228084081035600307370513155076866085219577712845764085426081929364610164534864982126941640096980716119203420242222703159076840464926095432837392111872264102212007477695849858929039071900345861140194136228616584864350835883641581189767486359196486950852841039522399094853964945421716508924364002758579869735181164387419809313016638586338626986866897471791530002434138524880597171423724671035820044353853028056188520420373208679066880716310825065247001579189034223950792388630851718828461902861613197461749679362635948033210597335964349751259247403349584685272831303569323636083879398106297577063676956848820090711478656777154946779895950511156852589300434396167078660100840950715300783093764963073994663733519859970621961944165542375331423289175652915589276392613532447689988380836444866633057907026174855339433024473287663827206044296015324881040721851894025243979728686069986654850859421179805730718826821740704534740315782071136965623302383332424753190753245131333846907960448876836614539717429966770317440319669566164401731094661703757919920608694627473655961503690552444839864861818148232635536889707698482901455943422983796821381359830692797571109211504585747583555538922148253866573009603043688560629218508544913203623114915171513001670092410298858181098523996921469735909870745425958663166213494607432557968139656313670198878349972831695761218139731410117620718302770006983097711736122976399778317897838087447819829870105425636059344032461007481996326943086893638370397907092374449915553789179883133435170625470426960015351355748734372687304689331781908775630288755745072400761469571270588789735913138951613232949180681830450412008470408020291911824105309667379563989461697257136698365044576298609227697841941264556795676979405785015662699430576730706810846093920023169217882287918852515241864729810750830826304804027750603942484127573065051505661847145637740362532653455270720648496741329254471133204974442589384056320261787592274939536533049390458758936733199428112356495152408658523042025297938504909364906758897486146596887703679881748443811264120112131375851139730162238028963168393084034029415890675933637639199826166638464424825613004173938544228773525559246142099350961853107102456475276912790483899840587228662470102739384605260825442024443431255213927817377298007680271910203874417401059626313891075027781628032029739428078358611610247884131901753708176102852604655805764594489746308636956962138028997355113582965078772416448351644975101298679704020859427211648382850172961485246882092384147108713559921304692730314696891351595297523061406072326667413879276396040666860845728876073600065669766473534018757152970439904873224991583276466031713339258296674192096630647742770347968481432349270877518103152718533738907340554379878003963172864954450103838494421821786720892749778945222382824280571631641562406108106766092886120322322581244961709573841221157433103562755994015446441127157657052291193791399148479175137233368971362619689891752823788110448836640169432982877218725618396446768073776083700032498470080549670075602901031771883546618801035857412202456340780042177675399449579581570934864320823292615925826551557790319265492434660340577694200121007945388908461811461938339542443728423387861412212832218489306437007234158468552605078716414127723484303730561297133226473508183295484051886758135626272742800366425136553780251380175890233288841217558672143306168561952655435890652154208128743028421202378272476571077974011593054489479097430582086632124009859052609866069535212213677254601720644999967005453155908669103291297143079052603465696691229817949769130402794745977359421638240753991722815153473808979373363766718710563769041858030741053714889708392125433694655879427386165537192997064709478057000432173428599089337101375070126260905593929642228381815392603914235244675976041797526373660959170550905222144022160200779609325584248842989142980957077114454747480262240661513353799993403891514436829276172820313013875063747785520920892159862051036079531741689435609524016673321791648711691957164961552964235570482109580673770232075256888959830768982872992302707007846397247093767123888155773912901238443553930297129149090533727641621798277827119941152871633305402843922885624119607558374678992078226929317862386025673661526406439445466478136193640065144717836984002653199724616056571326680623778789295455492201599082315967917173003040570296103747741783828929394553306625601419662371690730325617371166154193734468570212676511495350882982973681308154247022475477767830265205416982261931432524339629737121798395755695945322825328937988732727551974907098187194462127785617647256726333963745299121842130679573149377665093711834345407214777980328045428229974747702907526968180070064771780579666833466381766251989362252243821175287522642069714444746536636969340704907663790659760264225592512136104866758118907465460856276344524286700173940330211615123262398353094833035083716249419973750216153124846110380612639657185992557925834721171817642025379526876938265063689707789062206820967126321478901652257038691356789505214218740693973210735152828524780765504414571730858814379384982900673385227446524791256777627249454556567120130175154731338528494758025910260050731074220042055992179928535970486264649905738008290483359537224023626297779048147209314710345198399874970178504617034024237794242101439554258887680959597368064902927763556952771350696844824865915712639306102429048245617261097261770801686952167347840181881118764072331941349466280420076235263009163149438021079287678099395641908483846743496195312914663735072317646612212591004490298941077782155434109299266462812030848948897084750136798711420563337671447451370733086515750715078547333671035050651068250831002606859117862005103244189054011033149856849084620876685198470338829401474245015131604667175364847322812790915420864255547328478882180560141940217443139862357388313418782351833855110713229626332090864258124111588300516612864221935179215643423650911211209475131404661610717470183373752010209555854011075248829759279829764353159718753853254952462640423261458951906369263827804139205922228666547960772504776607217156925223459964707371720838856755824072655611741797994888084215156391867747561809403412612266135404752753237852552628771379417048088480845253143735405155373898430775273686037939569468595901681621379007553177564866039552428246969388402018160038458538612452877705592959091775054854835256718054447576029490486620365463387532425964506245595437021398299218364831482327760699914215662182587883525405868199306993625629361462384882050455487442721100103553434675625334528910014749565431277473410205699812256915336662567915447662810216321372846716502197727669651971728109804607435542184011093090486777417056863766935958184897508138986790324533784561632546213317374994201496662606932877453734817745486389475860372827796255654056904990033979990263676439385211283549115341822636661957829146516494892171884582976005976076506074975571181041569282706256729423540238414030118104540261913528262039367453318301103875038861817409448463369041525357927565244541121314145959955667229753496377219762361083148199416500073529791122024608927400175639913356602729312914248732479741902357344254637856884182834003991552087404221228427032339004316224588278255663828092913144962685668661353587020030685419896704773995935469052848636632371530667940543150748424906394604613930111348218717577067894588933659815580319453421378965801817712978618271482795909744628792669570371448400709973165275199218335640595899416219920873944213340625807858001683240844538216810873021494060755915932898323315995844114412438448925996312643842311814999107218533199115937687631710253316546447565712079349827330035739144608328305248465834173597715579825493038357622903406411580044466234097714505431346618306377356324016412753950319206661107556549984210418826598104121650756268699029616721149321131060398221689993294071609976991202581915175604446663502956358835223725004009367656003331115670168565492377364267340994063102615855522184596957142543518203388504478494632489141314003766127069108385209811804090650918020453199115010292092799501456640179858984371677496338168877210152719877375225595954916804932887235271728511224178626017437268431979486920109744447778747713210877412590988939736233427223096540684756150303580878396504440644861159448570188460786668025053205630343182348194903474755178467784181660899147304381586899390166696038545322964005044639504347443324665442902042209008109927679130062939805895223156673426029974251113859089114204386839095102071829355969801016997090400517600935559430215150088665904816301741364750899455535708460103430083697071525774432465782696954141403899520044020760413185079095521236508037006019519564684682175545829178441411775131349590532386785207420519847373020912120799018340768742441730542690454486576231033328969427365712684582385076377054900820566190735246331829274055990636614201989539750498682321773449119551110427547852499168611857514156779149830286748853173756427322482885681163359485125361958886547998836537305186223102105374998963523267529419583390370806383542600839925954282665805770297846041340994958386507083986938024080165164169916793666776828510888255933412286108926726339377466808805118674965782820763891715557442143578328718963135073693243493898282684332715557526543286156342164784481368665260968822868658176357935136189224847910946008687662618085125657678907567929280481104173194608955653378362186619871012466268807724028860194392785538704444362274981627517758869546659146290169421364214081585325505120507656915776009282920970890532046251296427974641603439373859933159656896877289681690123362948040219446962412269104772501926547436021193854062572160721079827033352813049497352160004215873727908762731112919662917306131910861026375777051692412658407914031808410994433943986181726270497344663495584713573655615969551544679028935408176822473866645709106051634726705882119786750044626250460485922285923435714049832684122563772935455337155883228144409461330258093108131673734298818097130416808480472209290936523520059808754924816984916717776683850256093495002820742838954313636229959631958566161771196618943206729982143064032727031295598859436837165227658232550870730557799330749077782345267430885960628184373426490647532315863549439094667883765240315341255978553879577594545541985707996942195019285702824531447677321473811743374251941814246619041947606879994144882030029414589422810147242307097493145911427626489938974537830834582349344138473237219521743638496170249510331129525243819820387493676806401253964281723969610287942200240735033118025860168105927578715112496518046670847169826679195704985545572665837602756514537109448801959522350756300033895465775247669192278968815653497543337885682839451565413702617041483411454580566763042748618514794354150455574109776549453310165921439641795462465390690188026063233038363671824253248970470985562445061492679550582199167850720193494098622192519996948666515294434619875162277877628265087981472968546925512153081790246116428536758486034919483643880741558747400777472775474382381884425047483897896501429191136566341370382322481622637448527617123783667662204025574486715751866250948521063792367341084000273538225332567768915869113488463670768798906362183308105175059520801153330087178297102146240067522454283013407273697878044668521158117363672884124067713682621657563958388107006288806088765924874269495728425423992124869363047176697667998961125799078079773356151731732774446233935237222062391622852265478972130307440554339366082506035141825361245588692696941692868263574774926298222409883184188765083451506050827777033394547892661610624490894406802682045441040532383264405010370278332762514520938329773344898009932861247514896977312113735977186121451129172043942620462743584785255765042982576332150786744150146945035952392535881934419470923083434334748009118388015277559299274316751524152687268882759725811878279648425062911353191891764135734428493944610597932701165866881329324762566369553068629551499582387997730539834342605818460911416959661013261475319373686168057871151702347249476913447456718972624983026049029939100900463811511184848151854730153219251327662836120501233216238007688101747169853156764562845895625301718649476226028962965917987910174144047162393975440782246876053886418954415909703979978755377254798270892014170718341448131497932100158841863598099634607583597888177618495240584545370368133720134382234530129897295536185433504584028612666961305269693194039032339683211505511795401602981946592849572785011060868769373346200410176690718571631040555645376111573722134580718027606318266847731163607351475081189551850817110687215733318407663432451310774182150677595613355314564367807113844201011060978168993713311070043941983801511742609048727021485418940479630501754868195545074298077025760353417296767240221228484072924163396137973664043385820254331635829518499047316506574678195052252030067452838197974714654058142129443271577551181110981977729660767362254602521461912610070273700302982553023543503933549067520814793382249299432009861804662079553586486682567553785564198298907369868714030639443024559287056746673449109232776917074409673078610798835024301446423122660905153548880368480354321992681267132011730480541574978762742482979326106599445316438618609704395268426336137130495053554033933626081529443987884561196114312090523272475098639551792784389920203349043209650850648147246587989884778916058555801179217019767078397029378008647787748519527421745363284206984858459157847281320769216935478871059204069449942998755010409106148169999103092567211038850988476896477263734502755591643485089994859645063039756447316837535780715818127315561140656048224530862814235595788516618769145310175085620400829051498524275935571801411319668670380112999825517462337466389080430208506831210662884254598179369498871149257480850828721720519730390109364163523215475373511606350925817904667176860299332050739959982787647018137869079424166472839046765813253788902517570216991274513835760859696379165622963607793768852348234841245671734135365365463200771971533960007347922555695375667863836338529172498010899783227917092169354929999511978576728045736346605921418552454631229279056994497263802662120074362758569561497258530336506170799214112008877750102367831460230629898223340524171873992617134600042474021905490304362162153606650351156483524058955988589290729271688271502433880240893094418893494858970404193118946512456590247266593735031090895389084491506994177067486003934154959208756700977095602225145327779400074795695106491646153681856030054131377045040135395043898591440590576841054080547950858706142448300003468949022959363327633559493677577994102023110407285336264453326348147958083251108843882476907897943946069613784045494553746327418312221039789733764111192222860535809616620103107416260701938090341023912997813937923605515501267969909596631989053280788544395573501076107524792753547697396613476967779347160549300426137768437176318445503060514286394108024777611482534534528990367369868513037679063386934405124028443838439558844817783241077755566093082216793236755966590419392704334079486522578317406577171506093924007124252797378998169977036069551865876707861024244174781836798839296589216131204339713790614111445629373719037703285134897396133409629327924252350191499661328266190517992333129188824542357354348343686712549892216665541693859742341409417302582398329641386637458056282963972226775725212439854299765418641479614836096490168681562502751669386735436028955864961610995419098149479691519273905977166488569012264448354054908582919485626988337252611613738224553237126408139689018375045407145828443775886901492300733179427756023821320199487131636980143168197959904020916260231758119815160867904542639940024424007133185650644525731340783904681032920158280228158409746153841194110284711471572701880827141219888800878066545679944662181426451335290612182959377471294072507685556543194818298555152491369155585439729431049463262934693365806562591538971369729102710920595073741643420358344466467216055010582863623488796930627392454030417065947750584331307022099200068336947753818104297492334089232921890215358920667922196484612142620219959120788495925222892784475834617950080702694659201349844420132877394870121156576428557679281056567883740304425089678365733495498766934159057654982075532850346783028406803361467267676088683920520655816838026120689095826716395344788762497052127563392372747555158170376715397683152153075301647854402627735126277537140730823896690588151954770537885602389354664522191953505944104539401347584968112115827790867062262556717912378251366672131093961923653804919355989578538383175140114588781145181858498544463954618718473142497193469838351352950172504998742403091870841647603511885342711950160207689832151568820259539587249520772054874726516216789628019300833884449295789897214231624160946158422582945279192662271131323805426411745358001412818017020741675989606248075027801316329485174993212345506697070976605742675507109400315244481902610141708563005363079165089607528764320851903421844526067719212658947900843953620947829627251944981545262600783372019581583602786566066986834838069191441054168589442142145273862556467334840606969513744283719509556612368927044860615728370199760508862683625720385788802092279743022728965055580504209330965288631561841558829610144240022358181170079955795488902955874014753401763151581169745386407493773353306887717287245321166883338190089755349245960786175214241913499339931013162252592513544141904611134186294019149963717700565081306280768659090965671679608040356330187067739354783817243250480537688935086836575048325324054882136156092854027492213260944451923310655938797281099608476728350760023946663631376832277742415253779543086462687289223816929713937926404702476759398261676078571678978293290968751121973472905758442470892731867374503187260807115909750232606549343759204254927201982085446689814284105945383502461970171343069592521215296164560663926645168902878002349221976025765584411116867792412767796941012140783510281750471760879731720656053367225679927375769494448360044883984092373175314451040482616889560948545346299866873201928169613138620279267313082789173599957504998677770732171484693092644618974189904018275543997322438304551339102076682258260123380068195324478482777239808080134199051534019037209004312459743877569989531367798875663362798511908492209860899194994039428777387671164996757795330281618340137642684351030826152727633867660187361631876674014242480322253836529050233614225888190197180814177618526107624482720746978037015436457581580476691639198141878466300160422841630009901960115196752922131888433280373354253841101819444395721969179436332349405024058319664507303752407290093358008617031623754166997672085243317181935474565351838713324515232155334050495907525961688786182119456855756597994866064926593315932274705791496813268215975274220286672831447852708692981188724065340486941396300864820979694943926645722209122153313597097638484721306208376296692750332240384744166083564270272042963492311821773892177879274426669479395445508593796462978486928715159320113643440904531047790249221550077073240223562166830781168365148341798131526370111649332255723852251501039796192804602960218473251453838994078676972103557104858799538094029236125660948085287776704346842074267168111640406604831313560528080341915679892071858807269443683459687053777831984469896514772950628848940226159205577144665742709409692548058657123590052831981571120264894631087716027492429010479189800755710974994430860686217879742998628711824351315310002943628325553512767626592837547357695362298840653677417703229546412420573944145081507680330215492091777963895586024578223162167305894540563559657504115410965828378482650302752107101129445350566481151345363376212659993459939694502468096319816716460236026967303000510558086944728169922358217182272721051931991326401458865586779701299105384408459619222872465206598436512538954077843442478092372274968593490069996261879377741945244001213365965715594117159113440854932703119042565442183838592604292855646736402286698220853579606929771819907621053910338095799426955445437113105713092845853967222180267989197994251467863128231110813021328992445765573863796169102199936201690581683002848926728957909560286059494592153733125577917549050613909811879097535779006129440911425271532754541651584543946721470075678512268010249381452809695276259127459228961294663652378470524717315254574169106184511083835733460847389491434170130685391114348441604102212265424420073337657245222511761733594241320511035152987752456635409906123642002724018856688819213668336816098822443119307315741272572663744539939018367809046123086029949452007187365218212649946001978985500751783991121070353095005982200028650801003894980437931125542660614681011252438561068345754799884239396069218726121051540857381458081954579754572806860471234850950245684736294244996673773323579134205040516480217605391206496896118133322235576374645187878306350301925152711371213481330582697079995766438554329932929174842110653670289942399416387789881172014013494177633861765825898496149677959935122259775672162267915323463082675489243643459001690356130974526590711175226656435851401423836127480591089079015194344374242521790936314989389140843334464588587788965229287054710213999526086371537891357988707960635001734280469687346193617139065107419654944328063787637227645723200096266793915072504928457817044727841112074566383920231057726868126104497292410590623455452392808050989507625813406869640189723430225056758739833555682558781779360530283112731917683960948380142181894156232594232876300212355769411267437295595126226938843526527133758516875523833410595443845285587814420261758802605714738261854742031734606141659050955407435353893461815269967188910561259740439948103118229077020026349468352569272061277674351150708932118927276984723909557680118724078301143579508084866399426705931547261842322555210668719563659982538050571059706571892248720610178288582053926937087637344895701602834663530547064222082393527419239356202089755094609323037517969903431307401341166392668946559018772748607880649473701176161870835927310714757554600704143229661151601284295735773309021966045232027448903696031831071240687313717682833730386216066013757030984104479934393052998299456554403953335582495816390278048039291544023723066496132165957452938517453694166806072125207046177765131210039859542009127914970060136518637416235930503768852399397926055505976708203665461127719053698429065740871150096470952937906615338632995873959980292221990830894615833790496900382807304588423254214363609425469177512400217519018417192773902189747761526913570540781684454044928462902845681192465676235354517255110308113060796291073420557832135226265547089026439945735131001322228605174985714631991343441444138669538940437801309227376441112762646668062516043828667255193010195861272558874842271503633802242606191058399224620660833010367006470487739343771703061128825229287722881811265154570040952319340659962902678872480135249462346491376692769777044950602722858211202034877151198853745321300439746579933274366185194081865906498776843472823456580087451626971789849938995697976152279429193848251426351046985594429214162832690945213962806661268602381562490431547918589797114915636975672005710326472678016872838321140219813118653614753820020009970653383973590260606628418378260738438242324204311030629487513281098821816765747705205978724077702828130745784713664746828022752179366109892973295993397769439346779047850516868449711011837163773386363542967019222987185412324054640572969129186219321554144896702444230957944096754126108187932817955832418525924930488550187265201591957270585275952372612125264619910048334849236732740468389902908781441942644607062202110965638953043560112017930216073191041302687549892895147434284903822045287747884621451275768811144624007495667343314081232092361027407312171323163630134465758850499165449328737126068777381504456728327335334414860722905213289218195024348432711225410166720636974451248369052025432464653759180233739984041198056277588754368767526134465804968628200315784407442216212993213526214786340700402811911161194447662865333449773746123617676422069074961651706708311584678722166400917022333798838141777844578272406299082032126641534226949716763039017806801891672306813801006716733713158834656755822737880982378890676528086222351740500539139603264501433830060957230848520713064470519671884768861002415958341219617534464987945021477756186073242615120901912233064442670534601180114451893136976767117727583517842985590854879219737027386719508502215915299842226239933645565623572837135115408399889328092107819856271306189987355309374147676142787492303557260579639694374899175568931414752605858604093127673796273631775097415662735360774346743247455992982282161621461906175704955176893496057619732411015782604749528274015007029757311930468417369293251477743390476877932660699892401728980289742768866156954549109632910029028626253221464764607953534267257517880715687417378484230934813823219818663068866466192636674178065087261419748226374967141121340076633538470083552304970106799536378246837831753970280186524379385408690000986339057896746057179055808274909020335076860067782078212004299106084226175890809072467280415468047267024112339322460997279248828297884234445060271603085457995245619989947368942353611639768570434152177405740209944243009801570164275461658169583042062246171948019889936267697122192590767030116180772621421057485484150812601527815116113905878720900484073873517672396085294977169317484113312645014297974404066601137436108744082534153244037131148428022939157660105405646061362253244543323475476655840730673953952273956967850901407240003107441101098343936103856095348463201127108478864916102158841576572606368916445652390874672592509614643760798674192285705990407733111373410477477722358599178858641760850897399128846165268382813903607366252379282537726645819233872547659962576784388304057104437752022359267313723980099889305448099097596205816431678499228289726730654978590708644238347823377148633848913729267170762016710578757812629067900296653205854099633494335803133838572624130292662444827696421575733495999534618562449482702948728016701729415210076842038315343309296987772018803854939902203680008512118568414551631062154269732699706921063674623601654628364086311942440585339950616814451820824792525672776696295928309513802656756512243183430722773271022198940505978187027545504311188944956617775207787886058258305062371076623432232689665527404320621406427445754879334571577050501269701535479907697509760398839108319347028329448957827746576069612929602618526463952312698289488815375860809380698035465780456927027055497389936654925676288155854697405082984336223528339911218550282676658669048692957770031511612326705952671554572003536503265660648805722604035287126108170375371024069058573966484596948914265363512052507141885489283436445113383587844543942616215101758686423998798599428946265312092133846730863224697130588291633615637512135848957228393453347742834665292922567278993801096545828447476553985233279874032587042119373348371358052626378669476046149045291656821985293236522472154217404614775366737855332063490990447052388184936301295239368161711987993315241805702450647871902458411213474453874211976006228222880972823768333842759990595076481606693395067018628809066350359662761272229684077858451386940480722173468008697166029376936101844809489388442814486031950242681030787923122508649509711916609125013140713680374155559620869254612207196586539554645495664538154845204313798840764593917496096606478880193734349524120752725750340711785886299042145084995085217326119486844475300502032524823864095031339405917397612999230086315765792276126290296615322231652715645747275388914901653477823071429885497417479873910518241750759428269530226917527957492662736503703724099327492585335098016539466201495583871744249103999111032545394524530343012754916722897983074957419702983525499171529212591979307780052133919002595016205413016496923196048733400113292165673349306159237358924821775916059528856302301175094165844312914540737716354240497700530543086272736131148628802671383107088994302444474320166661026386861816368406479252512035381483204764095283364798183518098109578877702572693381353101147075848527686300500967493062799313347815886240095352978542858730747076042133674510469358729093175767192271484996835117379707467004328185258156126285683220212634496119779253118431648650547990754375752539055997696980570818399295219550305213937558438875821298703896230563323270155469887169616433838341169641005077471056235956818261748196331167841230138015254662687430148552454317640769479900788071723563801084334756030204799102970361633734638045777826254275761138032176695612657531530098948816440990913203975708414378800975118129999556456760302025214092812790588647530142113106979682573644296071459874886528224027245851450867942825148091720993592027741024993584934290730720530478258338453047253625114083481589123524557424628503430441843675350737745639347516895372400138165966939938544252951248870895978416456997799296867640358458654887384922174529444105317501298496222417939790206998126081475047294073365132503307746183455227756445547599679112154418954474871933767330805348825972121763935860951081635354078844568580925602472939325277983541182651041671402398624357390136851029453846421614115086130739989638371174682549644382211853948777185721647153830810560720606058497669548547608253004780010195105274892593849296943131456513479581492707807819502664444203525528978695643976312011747751594888945967189409142020158372381389084313668363725361354936571884511466751854256074053871496950725055472344942519425718100253744496002646953841934882931580552708674417186169872632760986636051876841052907084375138167097588626178376801165286220168969054476322657618345734907410999660647078798234886029224456499935679669343168964106169759841391955861772492960717575228450218613400486759878823913067403347561501035330754837260508016126453674574402810443854190361528168006783963387325348877847566022498006919249277742898120458997291198417667512006986135939094384331157500065730864649011887895697525402304908712742330360735098783447553026083671810047256356241038412391297607668361368861174582520963692978315750108809929886913743671008460709388387744237837682275293173085515730001549353823930517527353664710653915071237364813863402274644748123078851660417714604371743206488587145362574353595227597151804859105808501692548834592135825123310114418327687574800497939531186977191403754764386597740405234393144639727568923580792050587941621767602816202013302867317950548970140548431459854691546906350092444805340713816583102499564143568227670045036653389994262434862073099842010311241844723854979583350217237862848485174876019956433656228298980739636351757448342341060875691095787586941811084365184740381633753173396631948303573104407632020895364257876589560994375846450020073270984044338253311259246020067331142032167210222644381951302933753613027831320452104730885254808745792002955794012892966564592180636496508666154652527657362801745404869279949826942562545992443069700823752427752018960064768443548142167105767187002338586425425193628820262630429600086227643135685551888004927279956876779914076125753047331775087902955325183156017374196914169371415846416154499931809216370177908619071611250699485086235346056085672253409693435531558993908604282755955920208908307506776648248368816280438141932356073261762980552374902065744150718642387444684654150810410030121162812304633957568071372476396852963621060548340097385786704537226838726841523960102818157587623603370378573878454162966025349073005085696423901215878764977757387094676561429872965660652661411580857136990079188882507404313935889325048480865246556406030273342000067664348845306996522237527343533319871910806449981805972065518995076624156017978657785212678103986090379902142374923050417484046362029926146132542072663342456651746638331264536444590209155718065488222006570203954255256950978090831457551249799558430790497727780291464352892628208200563112856577349871457751300630769229187190333484885675171015206315768386625837172853970830629531451810283567574278738269518600656231928450535635709404708143408876487879934152543227045910632184039432509033528201171077661910814603770768402944897966621916285861687446452549968573311080759855027504266773496764256033418169588171111399270208158893141507836121871803338750909807028634792679850214528806936824823443862472279973691393822143483287120765207013674873034352550419304986353823677530700388948006566413071370567293774744009730684354331265586586165223559760213863230661472312441446505740383105716284441509587796815065067299595710533012241535675541895167158884561379388554729577337852206807256099868455537700734136762611683252975490496740860956815866036467364180596525551522966837251866295729116422741959212610969891784444733225914014873998173178436280325157763775564553942706960516360954340686311131816741885264676230754272340847156234362912228965485963840460664310024089522503182226706410255335176885549257465972934691645148255099824559430317218912110597442921737530748763084329606094661448074583869172886303722955289173355011089528511446768573112055814457935265321543244130008797033072612486915759881538541603394899844446884331649608339142079566028347043426437647255132452029445220365745884341003564902172611338652459251718632594591871443532236769515444542797877679395020378812280517698916742867418589000231882568513554683651302962953194667950137089128277578232892713083074941032381068243604661467003733634660920471069867536449117340855420391274917087277781950046292230572435469482328159770274759309241917376964169963237302369970273808981539557326644145036968005466125695040719110706460174145465299876682440723160646347464554018976411178434479811884445462077583345810964514765959907650128154353509273785110487670705569628980029537451340414653943734160022309437535486599790572646230954581338453631274666164308182445178323199030098755489535725052969794309786656900900062586262339622243439060939896866556410520238837316070926661926597150684727756233756419772435129649938416149237187263934588191626520780736425308649493057799192019352058130821893361567052852238344133941779841532977428765741192218775968634383642728154571091758855946914436076681697549880128029613368700862408057866632036857944444861701151572323341197932502838623101103291851425067350013316562078635831171839446440594702966130972196292396405558660386108214514539502808638061850510019625493592045697350575737066632830131060158257275564233150995670544897423294702641599241637158581794870755236508982577852394754292647862143520582103580029947155700723950186170020712531144616730511938407568907417228456082347324696613292369635674530543794807317173046765412433628735509594689563801381571117746599903065793926185958497959250574424602270273894837786272539602306645259576446857890685431468158610123267339895630371199057449689387395992246343359476523759915973957327410327916547598128565924234999761954367619727968836910490924883402338277913414111226487319687683053373696715770144781322732702102462434891565729709070803111060311446543387533193105841973493538122928154924079189584510880907501739691170080470783347637896252143436114488641716062433479178927603669521165253736080594046722669967253609494491180650164042921519566171928133256077649754604672232317555153078814298082110766687503315545768888681746149145097771545077743131548622106098803693849685165054380063322414262712278750842914624795491759961885196816251550095127519021426280860461556713506460287969844815410893894294129289319481127500170347370216376444282944737853148601364330097522222403182669276811973528898633602722650514307938186919320956622808811467774433559385341270796902289063170560044530159780137708286150927284904985828155227169857755128860385644232808290867276076903855914123155767429339357271100377394236093178998129786189797880017504065360549141871959147300756028411518071394967467615858989648031814071319158902200027024832820772331427219713549768036508983236807730572706822659370743299850982823236857914810534515322341491685553831296276551222001460881125609929091933199426778833942017943859857467003033594758539897638154544710479088244663775950239863900712757765648967463521045057584021354415432778969223704135611458987181506561883332396816213640726242341470620254245839369234449447752111966791047800187658319099087902988270153110539272893279815266576247933901488171712996220478530997899645642269157576024325748148487346276734926115197227312711059303847430519121408610704110663320285071751261048957058859630605937637280254011493381132965790681530258737576551982390515602659074664616423134051099147487828611115962114031715916056539576904672116851309463341297974166037305630667714101080559914228193142128654342358452498906380741813096526855245027717780129760442591549735205830795563395240075055641825920972092102352620325611391147985534503522182144115304796378958664954399346701018242515660529523527210128278535139465466496087122241884797500387874339762871324991166961458460697109864557692426809849363099167609566242303994813152200137375610315988961647534455578758948616533039783091849666842105402306756748061105118218630856008747927635056219941032368007352449458836391380905317808309749905460337115542206547318677315475779902068729457159354237845754023418814701987046695101211293355559840885611906999878793040792250773116599994564450929882994920202436471476659358050276747343526585438024812221541967196458190894720315318743015777087663454394468087303942995258063300129289118695516602206016936822272984487869573336589052549039591359933531605455102442351833728024646335065514574187995975228913782957825596044444961023600590431911990772245011789823617138210654031684210588599827950141300472143038353750917083347741280411507599795933976237962902531388650763640772652886270572352361238936650494649414809980066561363691985501978206780205231190968461392370846241939629562810830062855515599234927973224158506507993205065497350467435212446304053433510494535948547227896410630526813932361793326074711456230909211702633922821399900830884278517353212710080733232189524237923317199435863391054611741046089461456486522311546508056935171144511438529004111898775403336518085128843094318147129655266983598964135858909073352597953037673406637296120571995033075780699820022044011428500269922745123517229769895412763045083436949720706294859242894919167875103771953980039944275534937741245722407378684663558328329259780397231006845374587131227842744664215325406434863544269252605567407513289276383979279377853431740042697351796772390111486904480864860353779754654152302477121189258923663246393484205336092666407349550771022669598825235374355707970520496923928781435940605381604768535799705146572163787360362426223817994271042720216640209555742422956735455457197213297171099860212717698898401848016069431619088742641179329595504793226317548444566529786061609479581381290728188783508799705369526193741098402859311002398704991440156962205211246558956339526869290613595814798912228599456399877067470443086264637988489171149398935963909977887701834643826149510904677385260028249285369608192900450374494540446638757169263413721263151419080257873764530939360068990721775557516887657127905608387713358366393438127509441411898356589714571737037028226697090047433395877421555943121345885665616513714860114033337398253383655779325486730344679602041538707146507434305485498804219226356461700918619491825989676920625584322581579253893891977203512657896756659079319804990047763831117593114042946861515587397376497062605758136817682437575927399158850357212380007597303689480178148363921807254248232646148902163275584375760821708070793858966809277131839680167809695374614622680239875951002485422044816588795728112493981348484279047118484103843979365313973291341033679923661534354338078003120693080486191356139323238258436665733896207872009987679518139118198509624458958724474666527406225135294159901206904407254327665405295092368684700519282141411250150596145677512631329491720677947847102861663949374765995038908613324488970762682863773382341999161195223199562580757250587096556628703731956282634250374845568234062149721536155231264763167139448316611363413509071699043226275214438079298581375000129687779494048979597179763039389186973614326831733312616091201404447078772419427925392938474432202137635550029535002663155011537671680697185903406755215222353409038317210673822715938209549131103974139354752385668693996743817052056844189811446239264001992634159431642434037503839304034976658415539510342354683867724812224820247340641945726301566043647588363253628219492661032449542842365363854374951799214885098107049628327682546511995379855189279575897356143041447132580072138757779881809884247827371569208171276779358264602595455040430263988340186755293547096178579432173539470981358863899282945952177366625821245746555822601631934493310081583199817600246616313143652363272682635597043046155430104004041033221014186248413007463491248099497785405340270415493355325714587911619872508450044639878739901174143009064249164076987921512633561779218968933497792601151692454834272538775972807788404753998848189944687284702435082668737398106101664396758007752322202166331845784939335427795938829205576809212690249561294390798847511992891065863269838984172581039782163415816521741891980189574047295964430001330551025856090603318419174251116810090025265895978300820621634051777450615395701217201750262004262244209978944696831405060244383559851780041001743227701136010690701330876156988856915032338620550567962597258098188188764262061090461427094463342682561433362699390309951711435727651587838024184227663278704906064514995207593026097542165259334752651427150611977227810353418681693292141973127692447148222590463470270587579378417407103656663100707735691722638481904113155948861624800306479473933814524805561365365273107462946128713815746068817919625707355300125860111685225549023703081363524248443232953676389930505156803354005995693418655157943938726928010059511970160032420952535376100513969124591499963838017670485231513414402781373999822332020531907507046067265637289022008551088458692481945451724880343515868879162638568910891814617950296949570330572391432550016051594964206379968817992561783227715208894467638102867217415422885424672546666805683180886334542371160969934162013319610019894169587351957404739393170500200309846939759680513791855802670298524240676362423419664554016689289943178810372281994272374785194588744738741673001084935766864240213999038018458865671387354899473958478875495035607631623197728132565651477875051214851071503437954443274692735086034400467814991179469749297380444023976846382050661928754398720243222312711129186983812949482183616485861236708605683799162932612814372585416354320615337939635765852528594103201837723509962673080037758269439978219092772204197572841948639578342620993722112219075051382120851739651005436236340746102686645769611791295199721524903919760963271378677511616013276357822472030818497446302778526466420932417886390966507283759132448835929288280603566899989427096032157575569248058090848321441981593673459772092755933543947655437194566533615157216208242186256355155978326230654437689411121983864900540020512284371399232206678572168109885475046983051445389789832002691296047067951157620281288980230898454387433799046295731876573398197815207592558200132181528023676011421241188281934545143215816005660003095558991171525530597076192532797776832559979065054313999789556707540955891745952059768607763073861538126214842687150202712145727264098930480922195047922972994660581537114921065797177051222827950708573928993932490246487723748631225015366584686057940920026614204585125444435002320370564635390451603925805115894308583952151213423218856011841831751635557614493374099096189159327819935972671219311638072884563839471762985510351848928981553561321418963841479434519061427910294437715030163867768301418133335037431156606645711806267646719728805845876842446359094421583442707506881345320944999115315460844174137007573751604579513872687724916577545882573136905244108872598968185013882801260456818181635021916875631177446308051059411190260301665162234444471688794572959330753799131239295085343760501399442396508282436230891345357751220667596423336568905105038720730857580595636100082153361533153277878607212861834708797523901346042517433742398215595855450640826140219719824417253781193948268760816791069688803573911061214791280815051549535846722358115354813681709756071025769038168659238031415634327990214382690976016588473127087194252315621912400459914559164249773382282940249144782006867097178327182945633854100335133614249453903626894871663268350431047196358913358802941076210117925971587873147191475234672589914289694128965699124861205535649475935251533163541845439871361660741771421337522028116250882013988838172521879398823699655277066579112171058414058953427742829071819733180619562813246487145652480248248853710942434974024374701052771033215611114968294393569623167003721898476564498756181057197893565254481047828471259209224435130862011217160608346507763793893233025025948306759900475136828804916576083633720203288712342717170493307764896762912002282914109422671650037304788899030888470669557942705520911827810180170216893454949394269392714802642654161748252945896285936141500530639984977794673755646659651387234868521070995012956977290378761615776595906249844316146621017794577997277703739339131116226279467096642999486809658026847673705169872480820721028541644413678651848161554370872287686814404823249533023242334091828766083247035064243700551493230114072572671606978174049846904559547084933141772881580728248486360603971933751213814556445161614418099977816460445895996948557614036916379813884111576727923812049506593894395221380125398880398856627802203574721861926086537281352325565283369307804223000053860331685420743674527033466193230389784542299967665832612438556434230848491193900511829097334654095789004572773479993459379784303117956186209181448040321291743494657332598477586151856600791980677066500881540810466189619301335770790482367875519282287920502827721891066252932708301375324594348625119826356718147839697992391623998872080175817475433745869005020202145872549759273742320817144172162254894929548842055505415504219052213123740624397042102453550577692063679369849561702386205768579148108290924554761993324502221943026436332981270173861828431632245055985625717739638196257980129791813288969023048856560052256085966784240761623252028072353172677097938517221418706212908490124849304522962502651788392565878197194819051675313943044118596489829413010554724759008934239156243580626494278238731889500479690792885116958880603343572609897201828266268857527937046432204491440494769037531373937823978626136206354934416120845709405617007425491278910866157715717624115079509918894581657028173406420634832276472116156135101759480897481473309078303442792574204576629072563113304943288561571656190100010485816183415944591190965708745498227350411969766448140628377030828378871288644375082922697569970989486913277252276137084809334168498463875125239315578090445143557460269274708153191164795692842351574774343371555361893109367918797481502079468989655020250041277863377736594944559274503293090157586929391115959272186926380456847929666977161755179092633041420246411337492113216953680155273649972107588041669229249822253758058895783388344851201971904023097311818907541921531855187802516023110893577129449134189842570851483248297011248649144562316513314345419191092965243424015771312082593327927747601664709538983151391691057571783271775007037660873476687250362646941268833693810162032888624654791621124784496170014322211077661806611003683893610433711207695479640288870706773381431185102300272448804135090212262531039984182645281577457252648088552230637708638248845351502227389277284316475480012392101015796422544768320747953993979963640628966844423848727692282375161516847541324245032953648045430802036961707813962129421371772771538505861573562196010762771345254002327763015629287039373909032413539250253624045749432587449509200542615932693197782997053884099386672727161380993261908581664755706385393309461929559800299143759619858422885042110992591518118371975461018437351391288792662822887171312163655901562742762246916166188952001112044382030340392314658904967533078796201631069181020986127769088359968122549349421388961163526691107107156665005407793081539338118975278691690036303925970209802938123570922346607598138365826763740117483010754763924920236081219512872965032537746319446926162006820409046211017934998948542567653826546917920079061929812485690289934256417149968775280869314197791063578078266188370521535144574034179990892076248297480348865034647768837898480025983100752582598618350852071399779055202493455165768724704133361915170526062932691808237529425681445779062859559112595798737802581956095727807638258550943785188600808533328852701208403236961002916827658422690499163885149689102402801559091957205629085057145905010020260522942926973981508636101552258646368115104665168330055183265300974719525067412961092963457216655282570394294978992262177500187687725308846117893616427578215900695533193052244926396302442411575755535596988043874553334541871195175276309677981870776511158286781624068398558737315681430351304090780585178810703477325623812832168166450394757317713955388016127665891183753555209763602136306900781241623678084807940842956371157077264442119919883388389672281033885332599430820833503880446034660292797628742853169712722756135481912809530562131500000746161439100220799948071520298198713222806558534359624625291448682069855497445606236462080426622723454498578391706279248129763106447561556907739925936768883803802140508464049173095421330114071867768110319856896978470107121902395161387115941359918640168547403663707555407639228753546689258945028852961403599034157631349082057103461301189865213125552124326741519876026684785321893813989003650190610924557588934972238812031615487448366685641009296444104926111108838215538944868300354673201691214746558843547652058661396007605263116144747876310819451315043762184700100197534533834843030025949849206597657807341938168911730190181554761883278970867182897026974785563012091880290585102929130957626936122208656316402978724929867934893462555266563440035293087861418883631879826733687898788452497946869775793937414678396894635949897392722967367928762622595676275971594578968499444141579588437510680642079178347438680005723221375638903189638570901977116650252262677740964946070977401994003655997715178610814651867835039684211313076651571564638620099770774013751159357358448775287567194555507563128406783826425086142596374926815982349322239249912114514646273175455581893508849605228912637514265011845352921360157227465401714912966539187517415220770160651909182539329295900793512969756685746316218313591052136467753442000828735185492517241673606231004583150237463308145086138757363058175943526629562761978610757152884157531791729547802552595360614467423933465738686920600004560475638286987784291030520303555455454578711431800305097926550745305050788078745225431642741231312628536992455341697354939287778308694830590543388722053357496939583931212086694033621573286439610311229366875496060761771497935249091143953218210642418605373280929337484178266737063940721932621904577628977753966783170845431891892753141278231634356949052156043768250137900632629915749888361441557269509685799356264367027985915585121745249756767510970154019303000153664053507033526052983744747055303310799890254208185732160621016507741335845127300281125883839605041840792992957800324330512618151172038189625377798249095010428702084139115737260337211842532561079515822431239420648281856454508549594390159735380772319786840982276180705490882592316798917791071808886370938445069155851911826316631640599867213540668734836794429392147189599949465235507172987327939428774948022043702676001845419370977868822517691877320380172439477423743924522323969469724454502504000091343119092412820453475074035850451873056647587892699343719301637573418693540191480010780992042737355633220397750002888961342145146868103368719972778076032499979515430827460657759412055092882576297224037740016156685778509716561883323635810283242679971879813086864512801951936141801239615657052596812691773661038389194071475083301451908798230364295361206330515993932418782878582018437766745588019094406899442641754057867871111962853192582119816275592057607905710389530860198747040926361546880614531294354751562690497502153791046259314517859493707658210846897615173009574321274995322373780725641355146365545337752041615421095773257410230490354335512594709377328954356797166581091263622670119226980188472590493777384377950970019128152127698063345076053329095772116104329700086148897719867945499399586824931636444126177853825320934055020713931317122499734940917596903208257070608232003539717476838641768346973073682348835869471019228501247649197921078410775451432665223120481913102018846995276189267629315936001553655587187262279218070955939092778903584295087468513484994415966366619293368429201263808798571931869751698553852031860063322822586646366478442189820826724439433302472314571866335666649315627093274544465341006902251850804294830894036835089007068833774604571254321170187576317054355603771089579659234346876625686576939936522190264076914684132284094883645831694206854321220059749429815988340804813677602323406370117100120187741188471566099552421974493804878601789661221818288252492221130731422411503317655279971330199048107862203609887778722758258853007373981079873854055752197615282184491564758208127383642549469919539104258983455338773884145215925620180226841771328181203470049070149903755141556582144764519004568688259305656596341695051040961446471650752852910643282837629245129674166666728940942455739655336964985385424832619922383994846597359833018610766983168797607816559422144221120833500988672936574451593086315824504143263169971574276068804919016657104554677767946406577664417306366450328392867040721688658526484221104951285509561410380916724713317194926281353128172987216169803035039330038197044116011863600096722532719925513404436820084249943294744553647877737576818973482585686735883046470354609681943018530835319873231202382608045946935400183119909008911117371674072047817250366543241249593402380626968953921399067394293364938965291501717238285148081052847680689397948287505004580889589769106927938039812282105443381803143337087863015753718625556507187456181896202534340495059961257192545030358427619341637144186299935439683649479266074302994251451712293320737000208956116192190327064385226304115276922373424879141194398328568486807090701398458849188013029739110089522477157460744903058806085034993476665003619498912096784657718818431955586247655306395726223120266142502745771328825039823783107861744357007684868145281158551828952607914486216754347267447566555202452391221432117025727215250799374677284998730405261520568653120659468429168161934930835424350430071539658912830379792915610918378498052939252635222599279022624791446151380689245460160430588500842577217682581295368909434686524371662407628100181535247469133089090925331978781823459317564949867770695944018262047418120636659095370340290546334020035542151467601200994384049353548345924011851743237262320085136979107527673487284870573171229674386885798578874856021985750475254332278522872026336553815571391904980373305543106441373160254915121799807291689582423383318805186371670595896965221054073278928394793925782481961714481811348252990306389412776097046401947610363801371549730785674560230685615051017227469260930705938949055568833275544232774004497229519117348673747914230813381316990932238447934879354478051172329936906797271129187043972009488811205435405024457053701017785367410580801356164470931016886462667755517170950033900923887203337553527044732742532814493618275620982870136579270689373808584192701289683362729870160061552779961069154722285227952895071221957201738931122613341633413328421229341458044492899245198120839807944018433288190097405157126631671066411300632067116925622210596270274926047957772002479696570750487734938299644770480489070826013514220876978681179334742516144541409009494420282009926813295874367931007735208885075855986420799429868484687152868009476260305094377648023271341791788932428434664169690135214001194290150178999547555828263758334950067523304869518712176309378644817598102369536190204230312410489509220092176253848146377508201763787494983042713095678250889579625595396599079024766341815658557803798391824885609484167339353394468113012994162055624698825380109557125614968216897380959623482600696602080825509597207094750580198773763537369303457704195055790733692853844953446420477568218087290644312731702539688393607091811052064023097933952417171253689267233751626090737135487079247540632636629861857561038919713300103908775845283056293968637498749249899821758580814510187326399255682592607262074930092012680089495363815346374720613037877392828637770079485927748557877784270893073759670002411593717016459133990213783629868379896935152841616890694630331710945592949846672698664766694363309941423425778292262213198996956739580250265104721337706405647034409228008833178905160225249317045997944203778036003519459872310215242304472349638900699856450773930903060960304393634656784793043574294856261552179049004862847081522176125031755905085447815711329099256090605122298130039441231300305420561244126813084629673837543223174581097324148571877407248320992201354590637151981784495848512164750696808274050681867370193969655170010124769196985896703188856275572100206486091168643870827447421988681607096140669534352254446001108859879981258421554575861012316960626171538951604601139366835114841336934463885559779073607222273131394930045272448514768224871646108030675836625040115771497592878600285859937280010026234305410471368114154853466954371901080869525720771310292317337758333130388974118327156852327347094950468401813095083614477741613473288606532683155209214616652358059537480227093453203950380540669654712872986006524356750090035056008363578037393082922751324211643296726208776809358268819612532855607366519871439490648980990006885858081330813030150778683880282916020478747846323512796493396163814562745339847235501092365667171217239914170591573466647016259764117946462133459970278038560316294576854494524941995125146546286033716185496109003137674791732248355110472646095954608285236364352366452872687226982507750653135332832220786407590719768748244401431921785004219573770338356882037876346782666853417738024135120948114470018375849985380604088017295029419728633815437831240560456618266086078435930052005771089418001322311825482294158329203726271321382575384580934464110863731242972048262907005085940182630225341497852855385307539483399527127369842502524732630868058286385821615148793714959582960351893625220351821564365076715893047918756138622057300876525544080452326013278533958558295342900120008222358597946101683497234108835053527910230167734341115628078776673599051118769479168456249473456832139059182470879396469399190440706915388857131496592183218662599938968403452421631354698498008221693768900961482263462350393779798969865058757215951485046273664903117291473419987899100940086550764448747581620196517598371481683993275630785797688151580639349393173205553344082098172308305678865420626478153876982601489007811353819026973191661683621781909308552618196616107524403162184982097328309365496759482778546622499883270859854472352072167607532253756380144063942655517321937207591804812846293262086115254975840831702076563223990739788534954737853764558952622325893474884569353259229785135421493538868376076069312674584860444191508465116223353926481291465937829560339009825247526667490882986469729148828535626965280262239397803330189636115415893859949639637566551219851083809135371256015761030491937448104294426604055875760722000524560661293148267193785454498384114548772021092639092356559664232152970072423284068352008484041453733116486038185613448150031482837337861625984601580446307237933519279262138823942570397212649249321732576273852458685741834061293666354523560553848499511863589518141189336397927496528647381167613478928154977051955441300532999314150762378441638783800191967372571663328754413538648340017735645095558468696421144013969926330623219242575746750613900336349108064971780052141491880419915126073309841690326197390400992394642811538091309263040553217394363134411754790765067423526143274449094081018333205828645315993030929074473632525302227365301508875063508640777546630032401336434029627530888921925321379830922092700348942203315212838859799674969012466519078969537087452661632367515658807607951516873414745976277647689045332530987818505101199443387117189505763659367332249441773483068516623482535487291487077576383819534307699209858243859156337938156110810770471022033762900269166412853370966412910880005568642727146747814939589417126589346962149704776006707324491110680521316518212203814311346028295091811633042851708493452583352569289280750639951290713544134476440737683502052015004336499008039182888507075716693823143444132967457176373823933686495349571735031759779141287473546105347450896355592406440641292644510448935303392184827082530535638481308235451719688222217751754728885248170917704570998855659746939590183070249099223275520343976383225844214952559497486291444794265542205619329627422665525193819697583857577324140663145033424894244631107283284301829452772473020991104959658407256103104634014608974419793179525627508854167640042341748247902966856324282215584287766455225215727217097290427727705597816912374676478801436402006751870188382891389567295557118480217238218862016531363690623017517875604181667210084112762254529623337566423560255645933161509794764465812041250533196502280014189965772369480339667043446329740128284128607988017982635242401080150261832673909647734835306541546695874906251287663292311536321142336054533067623737427475328396960495983283076009086477244309452692007239837257449381925680003624684146392872985911477986830948677545745106685142230288579449258659947744405014686424094995139228773123975162917967543229228923287169156209373996736835993119090878451264095395621867205322692753234232534277476999185883897069410334522397246220526828473144627957334787220839713690901911560702817447835713320510685578110104962864385173646070197428908009843845920898000628883631355915126371111979090422647468355918007538118915420477419010036947272489381298181492622595544710565879761748715265466086576017986795631232645136186816070770825399748979011341199929253057633591558537842079703764458921229448142386613614908989734111000730461555856545090445005220401470744800459469691623114840530048875386242124112781755797395094350672970676435710815484885572964096893093766936550389756393005412173190728641714138992860796347449332740803587970114448665269119596091939725873456540397374712139916555611992929931208902966023600170300530155538780496699980339657284391805567548166049140501124562617027785760473385544863593522677650160609914727740621235095537335474265522193871333689207231979018879401145481145633461147717960147025248971738164819643987425271477772450807117885614706046596013541527168087175810406743480127397337262540210413108655503908119797271391488307512716823068490741402523781140648776695472849874138048654946604061213587119674249332399731068266341011331176767682616541108013318198409289670211243407459912054771651527720650081825562979840083828142698832636928364086016061531685233417007589582375926331855718108213976550899907053488380580344428342052107469128910952345703020260721077073444971215240221261031954317813567353579470715948665582607973562950286152507581869166023467417795863472040818772529104767079923056404030551992853470129964990212197538304065548416745599077740037809010664777981265332957232707148405401595349977041605522746913024924614636163607046267281771331436318302772421687305762356880250663825259253254317354423385580805408770427202932299281811908358536708822162017705551592548853886372473399706113884024579445060547470443003527678496193790685076199290649287115868291935922347939662787611809962460799147896991027839216079560444204513513118756985442716605780065936345445032040976976981918770577903139750846166875437779174507869895121881605492533670740118640031676688614985476956851354186643761776223194658401795039834432047020328393036001190317851420178330928320451036951672134122379389709938438897140019832214537421220550277053586430367723405329900689030227693649244969076719852972001657534142077008321598352460523417334176829669329511424005778966121750095270773931240189825308962558455307711118110199922441942749992806134981966050722896492270775169620379593046383518145125002093233814350187348057556116799929845623065715976360619806075784505801310469402902587283826464125145454799859763221562676923594057746913207001911782997095046650013872561188288235202677475696758502177685255952412543214782791398131388410061922023511018812272587661190935387040939188801504994171615754901467964008373420218052318200495182627366007269468912161508487534537827158523482703876155197295831608316243621165169168686375074289645499961408188742896071463708758240918077996355371864351053393412284587307911695441944242091055738531574822869147654749407288490351309320897448615991758800854007213412378130305644734417930341315823525044445416343602613305628885200278959090726356846044072320902298496968410398986901565472915038730094373157635690740542964534477340401290448291126390309810725121860114878866585553929420656177980845483968906440789569850417837542431665476704931874276855141234699965581527175471270471208256856959672848365176730058250192318540583037793163123139551459732728784651166575886332787650336330600002140585079955841282016483469084726160683724571254987718078673354928867272536754475779647227798583105672509692779187919523116961614078807937219576413029360345713424669968603907465798024696288246424978267049909479581736893767641097701524973139744277751188055782305347276761246153539223519728729418325452863232266465550294045087014349481802976230602899540705671798331162405763223248256218900169877424463824868372784788290820256450569172211860380262463020673207607287799546044837824073035921368619002576835630717358297103025768629626055881122293787660388869995575132059270739677482525916573964311275368135676309504766604537569231848582192893026419914476467070107572006450549670819499475541616539839448703284801220014628304023383586442569734575523921612233674991464805590531217736760607902782650997394831910625553306610300530770193419891147379301326084404994707866551347276529684882929204049330564169019273006806342386274775696115261085131705159183731048726612377043215881290049343540553062553040417549225917495389747888183619484504346453073134290168667456728762889682715212408358998600591440460552528258408425171361785935898324166240334113000180650087311169640862215255850624035819200235153719324832080655666618144213279062462880460324595264484422856809028306079310761812033401336732683773342736235042029613906670534346965364609450722691515054675988725078137731060522006335954738713691259939532008301733754581011113295202584647021868246464955856033293654991038222529596586514503056050300891032093765537300166556951962544957020376129983884201989251141188394997311491628069156638313781770344666816656381341194229143779488309245505005542286137816268424529560377021514844493005541887055542571867555732406086918256639531250252431553097138043408571875141171660549692049322607700106239758271783799676997646865904928352523633267052014789627902211058648627112565664905520495842775511479460223271264248325632645075157048123344534510369383918313101500343791724085628237710705365766346594696809123706423559647341357268250661750478444301213116686670246318294535589247314905827091858227113643616614219594392484206497369303224943991812827207966116029270952633130192314677013541848547685306003673761966449838001545511729840754056804019271101763067182681508836682603761572510192354573063980717436002603152936067165660890250534147028655592198758270235295391666917099393804276905480972040461913314698068990350154572634220527856832141766059524903556052887733860070532506634338692323325671097404888419672183196772026077005109796217049865806150144250008651936479689626842314986257617741160383139935907293024039227395854053159100362357668515200105231310168904828278143358881676083409299655872946325729558823265989825068087025912471058533491000988611098636617567929492365657023221571310561884617130004701826072919681272108582726468376008485918116914438096605339383114557036690004102946771278451474930635762034383031079542931046544421375000678766193896252480263054491763897015321983433371757481617790865974188712390680542954905698979922988283493861428540959796654553307489261373797945646176613681776234522179408818305374485162233778112816858436515208110679257097956372612590637670263062593557997266940775171790291036315592352452390836383688096249198462952465682383560380476086217402119749378227950962420047801414851119315138923266655388896599161771649275892166541893581721998315447851543849536097939833997949399993851513690144249584673416396066634798595557160862105738182683993121227838080905561472038408611402803977377596793354915715967957162965721080249171385445747591693415388141346542018605765801403530756066430417869152921422377350147124362653604432676993266998486706212647307666030996081312503636213104328315765599230392961872746080783787072956050068236671265741677158995465053708561569170455154045248761406381743620300932229855158861625287642027820028980042812035836264340162697170461371708546798740148494512731688302089861803393552320322122183661631984562805295549365375841702458332466974060860734927283609214025441859184588576920782704017579093135285902446727439859209153635562507343211174460894222617572173922930470776287697587881811404549168036559934559445372948458440808063683107950795907492965039758878015526870491486889674403516177954251755652652392860312189631553373421287097606151095101274319106893733586823325311698548953348084834437468565415345025967459251863145543528718124559236034665918256612397802344923673648105182937888303657679182125749290400389473828248922979410715669110161692779623896403099485114627214634503450986694828784708379862071750382298171334227204182274070083190134932732848573186349417581895512503255155837701901825063312987308587306240278277979608472367829341646684672159576107736049571184475346475490047569802127178088081282139723219599059151035267495139552471434179619409983127106922372727635501341287701234871510982082517986867796864196072653722128253685048546061132063527589727071559086972976047241924103406311230036047561876957379453068897945126471605542791864735698432990650082160895378484739092256125773600760755595774537325586331002287136555346714253895670965770663243873420095690794202519828665753780416569019350036279135152819377344301677374395864598750598286455534018297730960826727948976024729406667753319604900623794177341087176088368987651531349170748727641975511804155254546298552190311031945285847045833831675387397339462564203650187842297224657579481215112867167391009238026219647299926668257798856566753997132655875083251588530679551928621341567073042150154025711673860944723260883019507842187897235386404280067432968138251107517854214736325704748368657679930349209069154510391322518569277296244656052587476334032035856403484414834792344962343480469494281665136749405757728217749363266591034359766711394540086940492806319697742640447967570959822205182188667259126602914877627109726712319259703798520208083860900166787975505305646620322067316951938521878286591977023586109606343690439257071808209108343562453844973724929524446357618534967116179812969928468151764469531497661488966210847056422676268933091653836050256923058526102769143618225731598715729864926268619418984139511638638888457749449887520236755207038304661888483163298554934116778988217531053488011933166525581450214042019792648238287435650994390539448915070201802545031564238277627630132495139149779044678619975565189436793925943528058295815255437359715030297662491550874135617313985237181479719241703951218778772032006938079476253024305861067593021492759334454736778710570120954374932418188059241920533065751165044063130698223384478299757381439829582022411455230603118659560893480995596638692826496792726833609305120432181989078809724661491085404923854980144972034052991039493212917155681130263346275061906990304220463341112979140683327067911571847983894531783350419673681003020730233313155993521284573776130908841386188375606370717274457941869106206621444838527897864757461214820800040327399990533047007972873966430646774215546176173595054053841150514191120590795797782243460473003314904842829100940219145291399762012671268783673849247574844737394377182201098187561146278690925670047411838267737991948940603509875010375016662701574688516000657103980664193714440276049457883697647885417967992482569052813613723467501293065668018973682580414179945733699690123549813804605774009980977409796183349873548368449854066168658018154942064028305365455425620738344553883784909707580833117609424395519639430788508693136931694755227184557858191716950776888911425442978829503570826872209122025169342876045281682841927737945853123320071753586705601472847495335005106249705522568214567157348259300329511465568527317420830524928936147553966904177016695307593341395047568090296844588552282188126306108026217814627651147298991728658891501116837917448744664087109339204541682773868544760872949648498920245905424537346812299380776885145836093314952872152884189055905958177103082956672398699907025718101612294354198595916214331975912992411870477228182649713929832759744208933985738952677811910371863244170686123024246865058588202050794200099958710473906044153863614787236484338142536586337831443446289271712211230593096838338117447374365027295431627364503345148720478418477597645342450758945794852902440189498605112030502779658940892721396392554321678088182095276250748424551351233485141163800777560048521769605323232736376983354029846457452971669743074865369834157857032502467074078187233600315242689849582360952765129751628457858624894752362582629878887071014228089707254202437819631877319398726519598535019141737788721656365191946039655715142465048875044108736033953172333689443989478840153400807761368063613530699478980587612212367845841676446995883229751348690763053799411807077452784280434655537478440512482055670760626986747447869568691679591525756426973971426581196438209553115778529865067533642104942525268303206073753560199427380993383560891531750456930570706820293490426476551354218115049524134157105649313206130590141861531285387785645144974826336327367060293901956923345864976648810041210367333888650686605705038299279663360557028535274030313183337036247091281582693300488867354337572658624829241834014377024979630211824062268708151481082270616448793665592168617904278963393872367159630523112157448039805130208457573575778415207992001848116619134790245443323001336627412994736328997908024202987761696535144547470394985896201725044212546010057233068507047993797991499030374436929365250489000192070704540088097269434943696308928997098792365755397189022386615044702024488185830191636473254643373857240513272166604620886991701643087385121073670355634910276630057538606133952018358186933412655105540172667142210388357344796249881266015832653010995000194864036772832573681651548163546949925224683778044049250269611778056258772989356742301562578653238001802552920053364624331948372823157335072269929238194269275982016808686144008079029235405162657126894034052849723567043763866919882167272515905096491316027578585800619942950266222654409089909426044702910036206320377468474594692444941682982191564640620793029697111866969546484333235372371039290694878690677057371230057066785390919150948841356624115581405608771836100023078962454726029798166900682711500224922399420777061695926268026214404500359595400788274378236208712024130105265886163475794131488831887861018158748693293541230529737531022026450959122735147331682843934034654865013008674113893612637806600708485444184962999592351849010854879730278853092077858724852483483647871753873522841500984237819278191753316646380099046953307747431824907153953420817292271458378133163794902955982875239894027558806579582293422399363042207549643714217145783636520675111022798582050851624466832649338644348382304656967056984210296610574613365885987649750244062317595669242327885408974359367117246138459619027116319345916302238112513238824303361554885767992914408158379777326837568164307767498599550212808922859715686093928539830063942166431651117032397300023644419559262326364943579931419710585886897150840154190394090496138563060051726451931657277023677790714076934679965920559797540518025282575352224969686335761986148516656526590067488299204879156127732887718228639745306055178947951297867727965556697591519132546591702988845213165896425949348378111728265677162426093320604598645852496959110225260401183832355142797867122437635214269348835863407075411005624223265786661336023771964452053599473872791740768968264203825979269903998996720605621414524165400285184019425018510573679844918434442825904206891424839920460411334880026392562373765664745879540998687735620911924450377269504728070712173141193650896825942594942537726822273817044065794595885029643073437863101635404113809903743464185435511633309196153101976486245621098406425101744749248037001824808489939695423875337370809938626179826641549870542390545625393614605929456466533356253928630849850323760740919965885316114278253168109938029950529051692137217136167907444883430367398911722478488522330308209586495900848222691242400587761983797637693762876288711491186213308523428440276705938256713771166604096821368068396782879690529390140715351537375396779410564546291857829818235021078249652000245673008845154365124699027407033205900868802080338411691828611413887857930449032784253203363674018810034286564848473065148163248883130729610801573806382011927607871701070024455661884957717996119681238861164402355928209314573202645238967989828588848824325087524677510809702444321050445041674689866807557745742290550935668906560207841538860255215760767523618722602879967748677085130406868147015235671917774533335693873933392350050777681265725698279695329042244742887692347663677087637848808243810437660483368941523082228803791967305381383816730621229294845190388095829312786026931874507682942046933689865289382533903949901458422926429038077434409352051207110046898455097121147526055791012419009194209258518229669040435011624068800811152778196322809857781031757498439709773256590402062802931437035842357948511086477475549672176447921870087789340839023342671909965392786877010321828980015158371710576422971556593472653838858363601945011673440555950229615176164043763543186269805472652636040675985930544698412732656815615437283946879822266667335796022734750744981865491374668718353210222236063789158290965215698567200832160204066457388698905868623054805203966623502110090813486773539099497907487959548170209325283767014005720622775016056184157207786410453737601818999432606097235767353665930492453950765952610922764234242964694020261681124669984786269788610794852960206388375842780746962392035303169367408571450977632490055633182463496195529553123403817093717505247010093891746970195590315594481479346891583302043153457723426525360319706256575019877191585808422750073105529861823672357709567075955329087124132780606438666526285621937622244134225576836216414854526266173274695753223723771806053514573057208501074669369190090133051335226528001843100338622908925142925950438697460068479033797349136557678872811148352019685449374061121299190161688065712646936257815245324671196984169487764421366002695936317024595061353958944617075523015275760026571403734758375308094459967402363031463974227584998743924340175080863439495971704899630533151147251342046527382303507048473984400569995876344637984551707814895163510407525579572870840086649713834346259839331285906276644034607009298796067190478761238834333920636326539063129989601039583108366089940755860060711307972274115430140508825729284780386419446732354120368359276679649887787058763682302338105985977827632825786244887373731974341396827498206648037857214567344201571952290778041349437877972600741651516775822735975675762666164776210890194240741066962118074230425104233053495042540192572378461735666471673368366593049926583399907745715421292407760311158536845459822753972379996705745002734964030589096503036991363554997404141065411471539583780737039328063168078488179707262692144168638291134414102765740365036034998788109834092890527168385324303462554946645073036716115538675444855600592491938772150232345021671630427770958990219653615028535133769369470749464849871608595197703190916297068362872016379069863454423167205363462909145038756933749673348386626488455649378737575060971378479450033084251985046473491683431356974444595220147544046208332875728518065311592790929363124487520221591711077662071656151611153048297883131319188090192717294166348889713102504359212772141755595145593427446063610997075998772118907047892108690810062967699254565172414073462917780341222567920235078112937781533308547022273769338803227789249963682365581977188315588111748396851489884235944727292427165455361478650011122740504159571632133570208702457444768607360189750155115063497412421123985440452826092873347202107414626666201261438851408895990472070255045257872491447467721808288978099843945649612930994731818122540666818440587213311085417353980245118733530036170813150117238684492745056970012682014105145297197329582727044485250526262047114236701962410013371156293802766469939191100424227570090808368831715991046526211046141684433357470814878531809124114128151184530729711321835439153616202237572288407550154914467597482487795513051003423236030203931323467451904218329197023340234480848577248895689014116009893711739818977911519880745940291740090088725198228818461618429747391734348081130983068598677145928612586185510759794122619284532758985000403040588469286014809737267520341886475652269743413732984160866818974827491190099864156426332148774252822795207657262204468431155217061951391193298547153973139113862530738013640550064822329749707850675502986085769200909716892889957379507189061373515951051687649977186694829618791905255256684449011085879721846352354204808736951548558898776556690176937518624107840881726341140201899539627719019408027193212767821970837096156467254682174255528112549235033394136296211627129307608059552108778242915524489538989707785568047536640767905168859822889700270434469822650473186807479356278771524313776785739695563419477679104779041168527419194629514648916498271790185714739793207556265744353164388143510203452375961527942869334696593962179573121839157641956490085580615848105761676661509141769579442688102648550393077065181348048881167183006939816756936888673494591977702476754869022266027737972993825748036861898935010421184069168445940883602297183344182605842628464174676716779798670919387020397345267736468705068303674536535389684837241948801778786897090011478975356507496516764865289372700266672078920772328636926952094858859316742592623694245863475367682029728413678504839481606409401383878353707161988095059417660953650163816441729219943962606475167857507364599367345911512392095568880923253470565021740303824689370830851988577014219482357351084174612954723299661498757032170935089071859593070877693081935562609769310900074303249840170005544971517399351118110640766657181619639028213857256247240611953294789782506010406933044030431521122383719461982225022924463325378632157273195852556791988807702707135236190592054892263891794633776880921404239437711741769713610420850513995700969840977808183095029578593928267732239170085400745808477137532906832032023682710506718570151487077746792771629681423321437346843186092539764155329884589779754020549154360044724927015200314099193666242841272306358797501367236547218690953473386229473947367609332354877438539746098613539487531334765380539361687917537712878738186838778482730099671022110609502460787509042601277050320384276533244542877394912970469578710305910055162456116813660118978761258139712538633554817349404490763653040941704181423607671885013561411140302492798425195763785672863057684361514226186388468580126458164865425594401304088897248642798624577275278792361032063737758005803126691527273848406609610894103415484362249956574470225894969911752999754990617134077795221895495387859072435245983715751602319253165549278683897671016031164934230659332437204937457259863657412278111959147905935077176578276494809697261659107530757274331715012654646851388880112538534099131145253279363666740658529544032300550565994859989007998473627047551465679127405226177633070902406214874766319855770372697984898990299059557289634371137810787149283221436697415235618119432836842327372004480307092058022081474066897331457404236250681454112689359930428225575827030254095331330663530197530940949182612670037686020592750131989440758515789495039809376629709655289947098227281588593337322587462449832377656128803211973651600445115201095866771271583398919958998099242997422590281129837525658817425373140855293450635328175663551420377325505361542835253451319774413029205641294897025461936376977919788733791382451744371992064762893447676811158236495615175346281403343724159764188950991495450605806708194020191108445341564130928231951209446321718320441570076200347700550706509995415497440533759435339897262124146798373710992047083648271382176537009801376325736207513361820287353653554765424394955011432329742107772367904914772698897730940713717662111036621904989790853848721079821556180650316006254779797575848936797557079794593038968308711979321453985938822972265296979666256453199306424564157041907612991518545070928773657047327010618927171393168416644753471737559867217882211120462935677453979486057099281471661316072230625937993023544015264743461535849969048051243928117697433628099241075162801882932345231977020744454430897821413665598481355021422541685992825175258846437124910704917038596552647566829935383398525917343467752054341557471194545388557089198651882436535090762618573740878117535176160070741699579493811516033730819522458851510225624749049455486128191271703266125833544699335397251299175431138399312990978961736342028945202498810485942560750750525636290933700114738949662378648453360387140264343305112375873658062836308623006458083960544695264169113076507512651968580468824335583475190175606221090835283644690701615623846086506856062366700144442860971827577420485232378113745461043822841382030961122784274443979823968547681386497402272835357063538617327626723359055794563891564521944548296096752629166128840073516435821203396492655220177424789727044392621131598338687366308310593791362877486505893404001643010877637304443305533309353800390857518113985408272828862393543334571275715884315809321187661070746132253940662749891785078773675986674714202013845915678917258716238569868540449286759322463017600820176417585574176666665801284790604380980403037443511912109378443377392844444678001692932004326740064528868300385108633920525541530838694776643052471973318680066101875939914755054494495731536383638611768672907398047773610040524692113274587964412375087098565876173980681362231953031821318868417005673761424192663855677792173246197882127601485713290091537529990735683465717403504689291296138799241208869495075591933725965877182537391476291426065615691841087241586474278885909072077620880933796597180129112130295905864741702044148632991346909584109543912073996996181750261066009196589876886586691676905871540917856723452958790876023539814391505814607762615697082611606729237779439704985391967323931728811008601969337577809166285267818425041731107227239087593900288470990110630158691800993349807947234537698264216807721557106518613789799306497912544962365116844845389609257928165733892647694306092560337782399160698198126582409606757302747004921689130576571142136168217577419247816902416021435434913294082454185964867463053949882691157372193517175816693185896228287150628310639124883838003089296463933529133084012365295171228457301835002253854620122987181826510329127639326252442469649589562324032664212430838850305757545530067022441490397367470848915088719644155329240430082839710707041101357657643262671505054210852085014183982995377737090011522434582499999989119241377007025661942069096283021289829125977883941529735775258494595893654139543697164276535318958530280129919472589633175104868063558774389913485876877440989483354331460010901708107411680111128888978668751340242739667942579332748643958430021097200407688752490475868195347815698735135650613400489639561046947106325329681980708472568328724563557725873669815963513367250973856828607987227562300443722103588302129494497847770398886559060308005324775618342041600753892878288880457266242642333026430472542935459061155935274386875018949662716556456861533755432516083270652417771479385875942119824047854827542570071557000641435747171847631582718688817907844213586174735237254131016703885340893653396645136794385989406656050561525949437975813128891564959601138300036375642319198319991382348805091441661124841438126844410183526078010605793424244284538842532877538043113363890834950822201452554520050141187312360388972961665359250701338135494675089504778742209652542149881773951106734082905081657822244240506589619755250992751519643419192166321370032618968582739738716145741530382871181260135811354782547220081720104837055684581130443440717784891329538230838281551337315901585202242095210751155704926596325073643160566935178857044954198660932376440916789728706543401325170087022378776876295200904618014973618758897086409917387768576882395339359134328571989681588047959066760759090779203655138269581494106430425606741392201555347403250490085154139115788582836582569228606228054576718639789423654561107496253555961888395151096947225776603394632417465286528561296125447143234452789512106828425872607554626624294776023189220772735200591074895780587491090676765084722462049402153721167598321754978383383193595254711195414266304499286630021434358470146087507884668654988808136393011719049670912146693118344362047572988182191685277332387504662882987805844224426807457587450929063136459277322714706030823537645228883807470202591513746371122932606945273306085896106627577369941665069620536419402436181540932276936932724126965453743892986774815085436152048384005742592551645382564864587356659784579404120783736758649356373147438402176099656941158071402033050886301548336684777061209676172502797324963765672141405899202524925455485180578586773621214710575668470794988222298048042623044934375593392001502290683336633069909590214669110896267961376063777508480315396839980264917670211962164028932675209946825765050984555150043267562200350746427756619766621497544799190659666475074851600718260756456854914762940569758379139149180059724529586404827418199709593657049052343612353046016417909574062821934314279097488141374956730894783878983888275507616845744060106182777831260441245443613409715064198675777386452666907996109620014941092710091663072249989217112269289904602153356640036292373960022901736312464715296741582388413222000804862617639567927317266558310543584752230505464827978811309103742157171502542150496531618205263400556409752765639050053800482560798795055841342408001555420609509877638419090623460569056830682094683742934436424611616200438051696612024932861383470389735689859799264429634309669300906249982733746911157048245982793359118595326504587555346856021225871577551618733985691877130194727589536875185530347811890995760853632459388428172440488582978676111741115423199089148935706404102667151006574576473228612626977656114705097877706186587531161287342969782102108957194958980301933597015148810508828195850137511667923319912734160721762303555429619936945606181428450006278942645634256492781317142564917987021543335781986149126313374917209953487428685430257427618383555823582460665913087649165498158524106952122712645136777539745138350952010752610623540843363310554262909142381153159600662227075931037842891799348223781007997130729474248151090831828110558594822614607290080595547013333288168343243725099726454510855228644381355115496543888067372238560227056913492879339097401937507306006365127852835605739766802691803187561210842676733513601389958390807630908473471040844114468448737197591998088697304227136715217290752689575944790755842026172100588985170199861983879834244562456429834461745146719891484019998846054457540209218812609596831926637383543856335752090265644934195059276322424487731443383680898103266818470492803280853462423147418761107730125820313515761002449074322501728759626141148784027022771772571340753124875198003363600394521502297519848027025583769577405742226621160903062330931785612655169222861447719118025254500738121334064858014884304673138987608200313359572629933731723667758779161141885957498723253876338243213146793325662542691172339011219699366063611401948649138247851708478559082284520742748399048469912826479097283772377396325154673814323735833966745970617718714195583385548077636212776213709955491932679349118530566281585531140701195310102435130159206989466100903750780188708637067828976611102774874129866861121291273718292311028175458033801144626533235046830110718182545257671480056545926012258558125793765993009239516836113074638433503418507377874114933831062364431145463372365331414184027293069466581607619450117977454425054541111162144582451667645350269182313475343904832362630241635381045883400881495070360374918234587754545622180635177400199779550320150010060111989543601435132982813073310550994617601268422105452626708141372945127768848277724885687679145664454505341663022069157382027767385956980574581050693142418882244248800397782541975872126108181834697985011537957522808325225192634489731131031535948157431252629974606804682316148685650702557312220809231035870605895743139262745262973155662881593652181751725728896751166484643279699189964642308000999414666301995744028323354318066290092903808967267979852309009020350844066850253343926918365604384325482502337916461161010963325542003368550757395927011440244826523282294792804267089738321933222663797056144851302882508195581440149959108561030609744721764169175484750685867267534867089959992500961541685208513861372703918298038136398912507128158756990138454961850660571765136859032925100664791960273639703618898775804407358488082305324347285351649482348775761871640298318840467282060032350910013691671405690674997079196605295988838811049559113224449250198451044506005345716791724056259929266141251095259274699299268527405888589082751643398749819335778547731617594623307207503061466996968862826659275127924481064236459957230040559577085347264251994410262663025683079795659492859896702499137217218434869557865793814055025607055467913411391797453618905891108730670239574843335414406447008546778272340530419717905792982636973648008042879552404286675940356830134019108758127146481107083998779171791268186551847604853623294351252555196143391155377561031589980467156370274280479679908959933344403030975414593351029825762736133143952668212381931996738453916569835760736366348256381680213081290959790056777545369586919671378400808400098831065324148447966088545521567584513136250882471795382491831259732941288571711168285862914201465028452080839390110432070003797218355469484304602597907107583425258444713271852547759808826941873201723504799232986952862090013582895845589783711659109853773129717211040989038825314262775962493913095098854060791529293474691011493104701472436536631926192602607257381688140713274842121082774270350274161028157635108480252190865883914068444876699962054852244919395009161169547586334589172570986153516608974837928996633675152852083464660022298758358497962834496684464391188460451680912460438459002192500712604169474466905094995076822682827481474853308421475004505056680279450959193892296187521336289839646506650187136421979241599103112098844256133836106568189646659262890829590555585924339313800301368602326898864150908808067835425499736812725352037866261348063527485016972138378000653478164091881677778167854661347863935594841912127221509439667006574634192815458519362804946068392417534805226884108991053095317608738714028548628288121019149462933782350910776084902459269430108826309347079500643515622530380418249871687870709430433770307357098744021148353018707228299982406197533952619870281156409115331160104825137434439215161651001647305668421578920977082553463950377110623404152102569726569548109030929249388117818460825106278458309010399743206748158819954460762524515472690370620805707329804824456903863813588763662234765987790772385788480680554573018806449214306423115411080470885127255950705608673020812957565996553795816680834179453429909478225156579509817925078271558603301298998307180800784298096629586804906926391405059143061988332664522888623040964666619954230922753912136039625465053032928562607029731366861858058774308849736282077900090532838170169901032894486659296716476469899630258070468447025564351513191175087554833287289351565752463646051704625069405267926458950595800806880170089351153930716843872888345837571446310749373457832074909850778530393995508555304261831165692349147616315074457607228403459185767869651279875830881505447794046155731976806800510882191453999646974083540386597058499815994130301719243705625380130373267161510676110787640429947148656324093465915310136059669634712300689603045713455916916326924269396388055839433001753389449666353805940334182295749443098504008474726787842223680654548522618778368121477721234575595520614998166015529072472542133688210682727872575322648809082855797580904800508245716391194271125195760953893783463165852422503861797585328541381389065805616255504321458030726532871848631626306258268970829820769910230992443609694299996302532549841502539133776178337139182557935766333372323700239281243591076976874581836957952278422285931217730721313343088660037362554388058841409218708334769481987155324308126589546318053357029999536692649861879367074602053497678534724134317466984450752945197864741610137402800220827077292671469008702457066008614614959132585658911540728096934985193568263382556120924340245266870672120556810911378797356431776111577773895826850470015691307228469455205849689128037009323460709415282216146024930883276150329540349135109329441245649237148923028301114249398432054531440775956776899116835649873126261993499166698988527340067446925617042479965341201427462209805937232087314937768665614930823871574357890870453904558078774307515369555501002439495783561088080346424176705115684374254338554639677758214872991841358791749300423138805775797061610074617465366156633824657150818818668819292044584263616491809781884706370749843233178148985077357014563297549008465071927996764225506254149079867122187756247342914142940078843847765856294819261881773689240154665400108276834633602308801793806016153799822142682812077688043722954014119154922130306940639124951045269190915340277389937457850419394453132915098680293584368518140143573735125741588215100873609021770013252561883541606746569882831039839827233152936053725114092012732190377960667276109453175888230097276613103740034053191725686270996822544084957129032644642709795468161574945921528929761455127293425415888942506567954331722416571509337641511721376663856142862955909611448594014151549926053732812414296979469960648139782876818778949559440532829242449045854559111098686027645589319489228016697510950076373632999517426646599653880662831827850659947354589340602127881390939917470402548123424708290489931587932421074916874338848577042892703798864641483413686189839625639284157368908394213485307702051345029840370161611494719821514150768272551762588517994874507787738826591351644200990057778485087889853636147472819696886632867916691615418402273186955929451529548542744083945012885448070335375020405663620038272839045209523384075156954732430475892181022634813191698898875279745973573774704533223651268051741614840707120800463371106974088631594573563636256668007059016175889580947388501699318090706201938574252619827981607192970537690744211874067711222389395534981585964452455313621934469918372311348692881744573989365524620116087425490779564516282107446498561164125721419997674963955840756959199712954524752573107109664738927277099038487462297545651843935451132134785644975019595273558820688670280221083162422046375891269348359435533710260317582685048664525797648967755578403368936262459894964738093390183135379712090786078687006059680122268189931327717349173875732660634550090966526085650578955039294414228878218382809241839301868382800572198059869363734556116265555019396818225937293992301886358201030040065493859276781772546529320543029957376728556438592092341278550712069325515820329317537788962043918182653741706860790574422807293654700446961103987981127249167605905401749206212830996123660938905893441228376829801505675892017432496480067685855607411423879857359376761911520487274943853858044981414634628779544785147121885417694829314582748930207568407971979122591516410363464937693834656301151855303532457833925961064432211203845435422394435919552680602742333047310731748316000139478957632884948613473275876744077733019149698432737733424960953693735298900373612772641367376374796445373984741642378192485428261804969133002136664474537001361981630674061855856660767778187918993880952588008170652990283582154528959510839222859029161258081504383954442143157924988669800464589081178691820016910940645842078520857543919262609284998728731290731009286706032078703564167881400070271467868515025882776122332664309747291849250725421337929456226622469689389484713318691436739567314122069108437037086144022514757853573679109657146469007293956867503705168743008316611443850831694829092888746842136970728879868970268134818116611098882388012904980361559808578944455635921133753741626531942304349684787348109208423558303916441263232988269435424127137737712311432309228914770859094032673304049532189835508386494648699843068990329076079319888644843479767977306719666876690257390767047697552233128155436467594077491062464196897378024840680900689448853543447763730704034994751234251618116444926407853187424037251081320665506411626549105993878205669126039712900405370263686725768200607168050495693642420114847498710851075140578993712267766593050819101058433418255972628694273690591141731660850650522692801839497873706258976452846577491024764412646566604543002894920445929864986075222442665790275616454410749369778560232286709453553584204915355314545680171403797438454379980129696438695433703660228100907996738458040373038171000103724587817420137654281897773176757971118456446691489690439940237011129099967338188125359730289320898964637489873749555384219782347122532409002046929581703221632719504529941458791238855606367177362249201311667833241718189067764439707713404914116959965741037507090371594098797073732580434567682190376747951102136554626604286598709911103584413487490597600890798043003382893765206409831453072640732864556399752761836456222096682731205767963128084636195551834334077661681310115371182701691357840210235457135759246653580133142214689657099490933310989361541963911394484032299693054685916710162265848681763779330794243409226964296778690258857230052629648638325415776450282203335527462512119317971170486115362774199919105564142765172353520456824737655433923411156118933295319952917130927936844845707613497493327067103372555516701757327115690934675376343705174622433221864231469077282767958402749664472173851038325717111002373819583791820365214010152394909128494764628694858170876478129800807593503089941629224239209178173385101315935183661620448252962592502408788878166936680322635193456097054259127053483970432955269268037246739217175087781111640237106921569065050370206805657202892124846636787920641131069541643956291410048309772292430360286024045563356673852547044594200906933122889051303866924388409116751908576383700978437034157412662735039280260756053437245091667134471192882505994745806302975221944673027113202630085124212453439787688115886875049410132334956767874287212234400209206261286007803897895164613373597726440027503156729134265399237809877160534446112101828243291898216260197507420456984388837205318946063920384038233472587203088800128021116908950285084114570892518823756025383159727485621172383170320372283967263382131324155425889161488865516928970314149798681065797088856299271457308393773971055538730316350631396941862460242939058094042567926056808607786904552481573171663678780178156727857615661855789442552713913443429574481327145774846650900691562204630302111599348756898561905755910531542543269344424530390927882362161014967491226427766672455245029373482847826634376249127682197126169154349252016070015457360598435553464574484416159280066041784070131729025973708539132499873815620778741336659149043837174408195777955818610073453577907326167901875634856494321586974597597226179710533704384481833950209568810507123781102489310110623346990058194687010804630928724064936403188534434694313751405591979795685106946612373597333586709915977268851614212501366941060706580693175438283217551516523851840954326157263586122027982538028114938871019001100814202193221870815570284632971266544387571231265871820665623822771283901479843802588873621736129423825939203686245952243980534687016731719100118507339406756135166295020304154724965495288967896862600853888714809252974340316222894038083358828964218064811761442825857001447202787413810476783715911817336778211546912248266073071548685017668964582886189879733083349509766665335505509420794404144764421125326388429718278745406831625272437702684305492075345043546725205498915593456516556938851722006260199359229987448163171550361353169036033636870985002804008169911996440820379868741413686950059295062764407015435610783147836796558577108025175871652027734176939047147866150838501578165330341051907362525263757146267512477213450914581053979577687713973294365831088824919367510638334162563468149313287712235392557712212444274246152096197362719636645753808851552341602482765630009293727441037786095550179974472541415210697821906662266500738368901604558015526302790141000901343541185696839860140455608957170186437808729449350876677001709276183645072460735535091576530874941338526747890201624415919253369401211166392248355907371974344230983054490928381466173032441437944635023767942755843572204755915827411139755559184018009351219867209892971785000975172281947584701761250872006129882553435977709130430030958978362890170219416911685826899742651201562306354573576415771941630953089614611526085550513404860086283601443646793783266859651088727877157087787459270462342667651373186578959453744645927182658127093997310516468486485188242684583876661496725568807112065327003158361609091944838289290249307235696158490563378130449561561042711570199631379663827950805816220856079627405535121096913180325332205069554768365703494222217616486646677072584318788383085213294403363692563623652623893054964355333583944820138647830248845769913239812778113390819495726769959996973656081822605244112607518541790985244828815890917927656160854572167698145830540093510809683076457043200470670691760443275771188930160286689962729545350113650302449962965173679100410204706883909253992744083795471420651032499178134680181067171556591382359561380865783733170411197123092866526215792166562334981960904040065090373309297515368759555846862173196028993005965902101724775357446184774549147775192903060684647102774688940568148959163658202572710949676944997297251720353009065930636048666170840878490655522287319754501779550137140884044350916049222065158752849068758717312877511721884777520538421842335014729537755077085531903814451719689768067954956110609043238075777899476037678912167820628835831950529912314300414760327110217175402543481768860499854646016683386031070439628438370416958068395196630690296347293305199659078420364577900515481205347294685132201551468414842369636378228801646389694896967355066763023192961015936514756576513959589357326269366535551509761832588328139747706871135988595773392868310263981544484510710977161565958380947033826054339746116064245999179551063000483709601459757788355306180329367431045212469829361779436221705835920064381789507813618780780497135876627304625157240460842607445059365138411252437280765655926755887575437004488877675283706316961543831759891790310380664116004606731157907504882079386049765502670322315934238090729493832074711850353335984146464069625030209229659308247232496054949504691274351233301169687203858933972898592215058470141086371452340015725257898661201274471643478706235312127219390074180742862268662342272189090193762446857315313218722800033781799153324424814367667148573101102188434505400373214881384954843680379847075274531666352043776021202351715751957586138938696378201106118231244599045352589700246856503639670186042079602553364376562868766509923128346053361501890071791671321811716452860539495067531171401519840522722339201263200858655475209589563251627183190552157945555273163521903392457890263000050209390683874129866885965232670076288011297446252263444458247153178361228909233887772046139014951244791797342825936863104672524533304511071600351752684001903065822140349941931231654297451403132256077585303988893262565063225746798896416014877686746777999886540046189209134396387142889327761225920475183123648632431748748031917348770061499512966541852100440031444763670218260492179277742816551435088575866926229139261994344681134366040705711794244046197542102833771509590607673943636109517078742578648255288798037811156482784657912159603533303352298280823229709014772084598898582241741571776095852500376548313697974653400787260789175908098210127327966672606062299475640484654554672958904273927303162176930968886838193677697350456749125473488167774143612705789835588489404290966037191750384238231862452061360225502276002069252861096550538308643413871432252838302046204305004337588680151648852602593267310647831815045082472283955355396013197013829554553025370266847358428277230045617867396054151543297835330358230616295311309405266386464156354185449108390737141745338688353879211599808967551003579908386523485645740422390545272144253804614884740588480750143357184434984025564562327947706101791548579397524585590490642416308851843555809930132316424776374788109511703446361654623802282607323053160334274064258844558590827913650517721753526896039879251442162276388255616034540069453254506684916445073765718894773110998040946520376559037619832316029692144410689942337512458257902344473063809168807359503858961054436498831020565682134878636881856838838838452306884625465287890251762243333936443132764689172599219682004294853739628553413376125375784492475203427389621913275960015176018513170934728789923415311124175497868643810615924546446929237200169962389147373710680384982743124758469293265441571321968869848993980299998367662271464108425725751246581893872676689849318138462567979459168853546851929571877233740707541707103132861591571140114584962782903727016384992805960936298066918007910900745749258365968801071289443590782318703955685505648367906268405717859727600201310561915995847814130458926282466972629840146734789415999497141968879257082506136944529916610839262602205182209504922419028990795731567316619112116719350000345714890855273102848847810603417944220078354352551093195361703656493958218475617348979909815116446084752351948528919821330630390397021388518568991684894126424397964254197082759269204651607724371403811109032930867742027966618490441830230744814600461920337282074899713446571448521416587331826507545285326566327055366598211776208286883912883262360624834053071077669846517079807734556961933107507793473210722273264397140757485771818959296993155559346968387055943048204569680903888462635430284424983801340902807406038679296095326785013696652832910545746551594324548776388242502084348532239757286092190769322125844743892867549513277042317607697510946332580351899723926317723826952020099004401433740596110001574572449753313606520908415276397202860797424189098524309663673667696318824974008859212760197614391539185192921255840550826724920118129021820208106638597398862853583405109204160029168188869820976597595060165531344763736034433581580954866814457422275041425871130612302529645110634906190256961542903513785238715796504081257248970179612707983587711819894505870500373368069681703753853613223443796865863792404226461398056762246576601042647820155812948316867605128031512790376571989660863733385901945937756486053549438950453410308515442789019378819169708111522635582669463868122202254788299619318937496035372274912419853169625305040683070502697226941474340742077658222629534548588791045325113827910175878566761996219759862281102153934537011583639924439183946409702601645466270660252082438707490598238999824113623921104696041000968572336419292747428104632485297052784611643862228202617260880958192124912703522865939828381556836356230626797546021491295055034302059688726960083573992164863504418577087752714644805849334766149986378280963301195711758629950450095987934562866110691218253782624773519353688576523643017057543036374338167085173487120513845768729227686346505808979841856426945070041950898972294914941364618637627539769537211314165303323737138199258904706539279753200993115013777513247579718121430312311056646571777814027313465114425317559466523339820154896105975282241958734904494206265480182283095359083669342655259778742518215140895764921586899873881371099560096951268492059639686058735098645237023382910998324359387658654322646389653118237389357885339059185033691530630794843569649090261617743765368083414164226949872159532680070238785926586696242284491967240125620430419598019248690522458616572736628119148068944519415045648750454528580678593717221671593215446814493306529483350322353366540323896720472600583216762713270793349658020027226542701552363632695406576456821317661533915521934822246095864537919501027554722387779444457414474716347557873299803341832292091789922219770727304772679068622446820530995455496387414017093028140186504057370894525410506953663940146537695838183580610764008242923919220928875367080569283057552710650365244697123948393938631922946005112333066830017534189458550044601714471134779174432346883675717431286806855794883269109517306930267129958251011590413670136996967485656353358118294138418867221684854326624600760281357732052980212455201921807588025119771889306709210454811324208479016724806570223076759406870585327666746729629195989399435059405192030706565377960256492988332922844064183442802888033727656467203010943342221829572916388877219074105762190318819590021117392032614330764305315950478069889722559434752449057627418782393163688114579774864033429998672684829187389468284754881086576627087430295455812820108009676315257494282553841224632519604215390308659467294716939167283753869193486905826597336741660038146786469447624565714715613167477090591614875733730329686269061455874306094474673812219570479342301077062104096845458147394227238833238236140250792248776241427896045383716934456433437240743487269492717860777178394436719683158073727851566249081705197506013203223571997481630039897321314355015334152388207907498358914473542374359752377885609990051936447132530369918129583670183885979755125342432542004243866865826850924737202355907244966142731640750791906350703110191938735089508770106801940414278123536357235346927919600741287030391460939408721603786517204267854835034615915897247438164600089692232342429971286406472677212785201164048138512287055125418261259531499207676035204128109934017919409668135503316540653194682041939249884023805684262715733771378130789114946457500264166107179564297403134372695220745275967737256753085851079561901548199085170272447249417789083795332278572432947045005138219505079871565347670594153359442574813426062773628247344373814017274762225239106248155591244525948590160699128484162557417353778606623173036094013163602954575943159484775674722926728902663238641117513658084079621718962613223227164042634483446041411572644672051487112693893596344420961050995629094745437932477400438984823690556116895485625599048800412237812192430632050833385081528158158679921848992296930798614459877970641253997448500634912314530358380619219614637662471877003565128938629046567423225779184819559783235370061873350291300536543558368770332644980234312551778683670915045921946886348672956105202054743399760719919626743173499346463452281578103035383402925429134755497951728595837900559784732079339651707276526787731941212782856268976023407213022838577607259183761573304007164771677252355282005486328081914343270862538748752433591611076606350478083791643360806350952818507438881078411691333650642846623355601418634737870234168637893075448601178020985185779784643382666277664084526361600733287419221108404087901575163297366458750793622202789408412646386438917381831940697139081174800134254873091869862603744611651991720860922895899144650259321362352307367505129498829319807014891315467265295626810086633546153545892848113559643950632654190551683647347989450709963619816767298241108940498164736139602982841031201477148511012956925350450536115249833416559572455245251377682233770102086398057852641336616505100652338643104418559720624647400040472242291824642883280472183464873635014485258991323954689327129254853885504311389911847175615427810983638250437530318869776415872427540034348480508091693522483867964522910746486264094144436565943786740247182992443160493133857331480624117890173259778291715028107597160235946155361526546565569200772056202179181391775549931050592375325965438678863874891869243203999395886872329744521375476887387783889316047247642833594318981067059458025904517676402043560877299837652400003830041154198559614723005878471327534853347636009572719251734879003981608463523550146105283631382150173955674472201211482368361555517161689201718812538551303947600010423333819358672336458951770095072624141353658924405037801508116499634793811540781552075166734549686621115607054227882994013836713035523607469958617241466593715822251005749275301717749087848263652778986263134644951174905183662910508039174991670450083612385605296999009463208856914414234846758974226255580193459172146156298575150388672731381155498638878822220556860435246218014165843546180358996618839337403581693100381034078931546163485543925514905356253512331277294189048364099565961002401545150496055215750378793937696206773134201025387648703760700974156230299248878202993150077410431702153759218811184242339033790664976056055465744065708244030682078900093281044682036806169082866306894507084999882829924947933689107334594321854914448035600231990091410412236616343799923741904186825974660250046047255816098186359980988588032482056159942448237013580968392800688997426938202828514720815112355852173117191527083806594206838478109575750351589932022155138539968192575699743564080141798454965697341160749663910510612359849268947369033902170768619455232451911201743874553916687770683596940752923238722959306501916620882111024052424142510489113164552739585102505707588140744097354381004456724107627212574849414677793544404396363490674471379385343223199225956083964035399260916385379986944662938732608128902635534827397670250951926950517845417561754539102314553848681495241685538186014244586656010101904392209109951051207556939556164594593474045658659991127295263155675477395335867436906298616318062074478855362044930140135122934090241564560490379600104813768888853881449956509005304294458215096478480946684895915996931143423012608558747173888610485127252691747228881686849965980005625608447610275523264845837724349535003859168887448228701311341681048095676464422339057266436499371217410082491413623031348656066425202490236042059412803962640671085198073466718420678935898188163327352002810969658332740985487644528954732857510642408496431428002037968818706597665868584116564690609858050776503789946353963022209979201315204497748043711396645684628128349651830303911391160017390859780278883294058270401828547320494871245175518540430048988203296336545815008620310422816109813917349379293928255798756983222497538705243030549240493244963044530047992180575622463834376430473858595351249766481157850059184630168443345225338867631074956093915977868666056549141453138779481738417367453431519093661850171082630492649876709924999415423696407418268233414256814652866874667558000239724179019595270465437482891782824176753136992523553622858975543223412812916345433763737537216037181343861181994431733786972530113604724519028538161037545371164136079841585312419188499827197151088448193644495045835102436251004048014446229141893788546250547446887362512055715682875283995183041500609565898205785956346785847101805449118430988557282534539826770523584904148152114983686852956674596883352975486509669237512234797975702878124312484679768870066778542374866377496218845723964741848794258737189794173410223568311736961867336756711168412257918001771118172646388083916653122550842745056647868078862017245683131844841391476803718626876082030636147285435203044852246859543891291087667429241405538937018458110495154246895036843724364215068623677672717472621559478536029173659419628073804494846947464864138224752319942279920122448384054151307737637669546952008943486496167464247712033074754658994220809768040296482302259182902636149783478931663878162651322216932850763891338048606070164349342307474747475147724021601112695546061137158900712591686414421585961716510941298513987158620299805698308350040362185417639178818241070353573217802918529767269833539570287650784219230738769203131652006010572129368625550357554219004779793778613016447706217752800244417984146794168747435417780574259464381507686751178438801599251019089856584654899186635919267542434625522557294467099450370227959041533458454340074521471499134379873154747437736854973261571356011027675479218826270853452241615259309861635067620184094158059883651516426742535616223297524017898853551364614768334276467405349066472247041555839487706201743515088936459260790598010799320562117177070723121803729883914145396391243357255011317773705497297673886303856187049904137626220080512654686603390345478565147117081277114090470088080811565477347034344716250659245161587055797910607370280825935727853377753445713672195415339823580538746362788421015347557734495445710912499124097788603714502554264112026807961682053155463439342116529598368035779268097887017581912554565966093024808252718463777370537584374853598358953361273114361643820284024856002587222626097364727798001962144515804437857043555201698217293187426126332000258502843966880983945886911076902866789559954624629721106654228084779282817748209841933718829765391204841096570381106917425332812054522583922399213287312586490969019835900757408323483535305916454136981948089631026715473993781673291967246764643338438389821839469522161177694319392218945911359026279772845608913206567882825936156258782722668191400076865011876543636372966958722102720142415946697626978497722845691132452073693121308117822553233698014475685860827988540495400187490881645319884476076511580538421297555818935018885584323179593038760609925986244310741290460453596383813540452272496756120153354939081639851901653860165503776925028291797089052217513659874163890376484831372005530634873379385719399192037789912754410932534527560258937203188058320388326725093969553269278634225136965039231264581887267163042228458191469375185961228435405493416861630808101476320303371595768105500844192276688371427032016122500776006128749200233392042901813310695341385608121371118104467599312590788196188444653394844411421916887758036778628193877999120625536882142933540574871806467068381922576945829732413597867538242672400914383115150919108763258842560473827598329125054883997173080928840273940025708219763358647718812672882439164749362081281702673862470552498526694621355555202106564900150928652266421406558655222950313056137165746138687821498953082151788709059002789702315595181116273640376693106151497271817632781097842809746402677972068264024505455414574314539961482768257699553635211978938050306338162687653427214116721954722262203365406940104603674339134284446703732632156153967543437661431020853415256115717478823853210540149088458647762005803706168561009046849897820251362051135862441651298987765710112313999473926375677973728427132137126406446224415474190680501132773286535827425375030895339044530294309563534491117359163646423706017015383677672465792149736434330700113446590339345867419782753325422535367748258247339385229270320701417848697243836227601247908896390406705057723938516330434586529854636452560692379597736212180475060549635025855930576452325195925060052798527062854933391692707691525920338761570904824222763000012123889107509757880149802437798899423123907536647391002038622136183727074996558804140051205058442051169200369561492417811777361124298284995147048604694254604959053759705567596006557322953359650741511115788125041089626429863749324451370473282721183901133421757554269645991626315700234571182564255971807677938964460444462050334460851622234238418840413509466836065968304072360777149123872420407202150870343047088135184101451374458767613444617003472670909122205285803835815200286057316629948933709474019781035686622002354124244660395807561987597011012432494994642590023991449650262811688365881087183175880017869843589318768970755710146937048566800016939892870399012553361134731716072520343642178727476624335963299950671866101330157692848632370527567530737833431055724150122479659978422371098118820658514651387503009905262745621192780842283381563194021697677042575092874532015391961289639974443670212294073140265213558869296177454942105190593409432334058930645537887879906381743836956971661526691393214826623646865061650585311109647199601157900419439187451878013515863443412075582598599977159364443466608673302766735647905222584332024971025456818516747809747684958474567715940127901054292719618788336575628365341953826177186213164634781250471312896127307387447383783848711736487558545606853233046459809877089027508603555316959304735081672698256701079895060797168236657099355239140097584382986712271972163829243342072031066716244433133644652267803359462985113347960430559201779961223146313774833695004138632351566977896113269315027057129958828626332931680797368956757985050094765089007551037822262584580713951943332918716537372736480373259823976618420396140380138073324744665204879008007540084298378363071297049147048507329653015206872011765125391285885453739320869470644025555056251351310953398699806867590430853692653619078344107917903291350420477338113697759972392336660380736522643290099811398824237451111116533215786079808697285358569045106264634551446111868234337485159102368721770302912503870904961432492124354799043942332174149516971011203335620546477976824729337954837939039674430667452326019381695938573753601211809343410672420784604514846316760437501474722742566444621700279383747818320962586402719977642392947000110471088219631452861435881267041540627021411194592304892086383445070929516442180591675685391814009066615084987938973777292532842673578372184505109368459839555245267564044043536989875508843059126845855224243095752616936842689482203667115545918855674296774835992705944730237595710524548051403786908350785357986428380646084776263670680809018007629011862519003204899155086848772372497770012692863931504038191313927642433001102512450343612688530211099310753830568295282553398994780769411794498810638068539632171001178280205925437448019212057552200278716542410192406225619422224272699558411335632373726933029346741397639830360194424367415870420531151150538102034026964551152128926148047937446472154514228231299332760792209113153436857540270513026456285529369462254446310974043420002772935288889739944191355770013436882715386838329174738619261809837184203367043469485624365304312044905827737369067934398018983797090183092036202192313770700727006244504623428031712101696333171665176237476173451371636008284030118520546361376965881943350267910858843808476972384509300271439803148334080114667413164381398396593213470211840826705283082259742286736799160872440405081197166996135664211676529974080560435803298311765849214606228205436945017044183526064875243889634773371666844324713723746221160446028327716057655025947722917969848627516905145725692505630329347874113600003548160406218229083552765645305024690010990980445753209380870223076510612379379030515023984263307625467373788720951665787131328254497789565423924176289331995087607505558454424146914643688317012534350129228244499771063232709038612490077363571961617958894228545148196986146485358390236771714542367726124668350719958427286314864088348335201464444332392618111504597179527523932677180346135841413914240468771183796684744457292091874099507347750473417952036650361136241618973765899872962792398293776525318223001221863184801021715708812804142963228994504964943417845189842795629588421327583678241325855248968753767765298498039553218425619599202921320742569606962513589789004526122065841580320115583840791642143578960520166724424703386254618983825593840357404315180080351886440368937012863389313849578803228566144932244294833607210052683343420497842527388582955673767058432720633106895953670442639745368259069706372403910451992207422136704443987733359322884175588652715627364648363638734763215884663752734019148926537777423658784367971250627792043004699928811082569820305788044744036935626130417964420156475837953296099807851953365322158830596799458209314935009624630750690762786888095957593042874253448368544637303311288394830054953013705602478444412307782925621821960370855511082203376049265167511424597817136219999695152129053635513311439684268517275052446342889376451820510253473479554936370014577925629212938400820321178889936003843456769550793111714888291416037721014486123896187192340662222645891883093783038762266294430973709616579149407661253040975214226016607092018715964242565758820584979908983857527633703819605033371552665770758763788133191248915114951626423884148467708462907730020124778995727132771192217531846571965186807973411690799356696115368115748975298983077295490476535344399395053383744522483328326946934951396213424493562231724790578778989040313599194335636399151355537425140660394385015003444446290694431687627735719197989714366704208771760209588763941677039881959877512810045180170043352494323700314027468852120174394536813126009724595227554641098926769895528515617645042348162952145438208563528601419370656528166212897905877064579223331525678655967302791286227060628739910808740092025761047623589934054590152458120565484362099812756115542536706857208873983050431769784558660599047044842776513477401424462895985583875493795228147413648150053830153470943663984306046501533999878923149072090237994685115869223890916503324839100393515055436950869463841330773424666933892461293325904072099562082023526441319933730832559088549719534245667779419759939467558262820864393550294086006661397545181371748165446528478608831556318238315622644698654515225711348412747507417594643353354905145633368623372175792238359835472704869521941511724108190546599808273643440568678429813562278023213689562381280246192125390894034352288474906675456648845772018883988453406490722654796046322623622546857951276048099310756000474155892488215050987979719551725083488401167272810151860150053035740541214831066458166086474039124602901122445497569473498816441441612296756322067399706952661163304819919112412988232920530230983102154625609449127541935245379774988997208609883373633928610721051278176411831732995542957637696630738556271691452811650624821179762378578978600958792324008123878913560837784970295943250901549705149127976842816462559634660299407395114298582196021883910478226470668326921030298581288946250510659930802615615362237851551037402588361013789244908554785574457275199901160027612431041488853340156994747786773140797664053320024770461926691222445686774619870632451815404675893207344239345412873391079742304504393911216791778569114949958605003145670267868329551705900282655459731011837795046117037837758819960701506961243831029269799856106443417786118979854324558548045604956906430319991133628647496815290377671572025694054024135448549780976088940874136954474895048677320794311364743187366198771179804308011245783032590989680795364486124707104144066729259434009576701728479380230464188598935032685731418172783590051054551422715641447552909499533169855538731886514935445003321578957422345277362977460526411533313272782054697492477849737320672504836986804245522409283168213936886791106481612204669532538935085304319971669981398378448304572285056818679811526534761067045578451247729609522872771810208102967665795529544948507154220622009819331522366625989247284308508753504365945481116866880932732851246155848975162366714176866878777716956474684475868869066990538919501096379319077297061780361511773484838691328288346879521320810962667132264775499673434107293999605150052829858923219370186794696954998139276701072784063375409273619105712977237544286838866905524357203116478402374833371570495954833026384074252521338739765020756098203630072035423026242655288568185119398630766522218882500054974485003096313460827934808300136289619352159092453135039989357770380327486386316691205200976600146966289368860686165725071110127953628383722414754782721653579544619278765839032873905331238450500916135896702962489550619622297581727685561820513389925147125528271866975402389572092910415580185886894498005125163455841103208395002121014958194173368793264472998605031098762722147832654684761808247512933601330890053582655809919355148827264697729781604953653216542557998526571963244195334269059959227215239643481744913447680451952659254988728226923120382734361283463463691256306942187063951209905362007370817065162470378788015731373413887784837749634092762801545682302855851168020742932567580726131570655631773791346708608752632356475169059197727781983901021952720677934365924402280154961004749457029341949496029341582104651359580809974687733960196834158832981847178392533725938597705492170546156224283469019751999226997157244121847075230117181923700498788901527013813456049554003599679400726743378373269924106358942436226840664913191994024890709531496824720589630838835470100821065552070316014737496958729469905414359787126721395346192965694211833643582521156027397604883928567290653998553628980428713339996621845575543581383330166767215716472883919281142259583678250027148730003910402303113595941693632761417296504731509697629821040507710812993031219909335232746968642347921115264972291471257326669439244056268281176341559482931906334904392742878325707046208111239325964852898462526518872027565218481452975223030444051371532187010543928839399169181691704971698939352853520697931657593259741983584418963102951913662020653448233082733662387994702642150982150900905165187697243311666506034226813942965803018458672945514610093734562635376705683924441372327851551325343389076378198899994848148215799429458827573176116675444765224483457608751803092047303264157476926464726369201365121524849422221041315301974873272866730983143641892643527127676017394977491610128892292523899926581307527207294876706676891985848269647298570839217735863178892417737334772804327277504122811623483530694686631770108274982133332033515036662407717627154092130638700372263493020783390730372455590251116494010237370678496798410227813684018018067907314950568938874559931507879369598209553811581247623408409088429078617071119449681608040042693709733965915688168351501346375017793595895527043681588096719939563899914621520321289766187833062396006078380500308531408823968926651611808887829250704908649290204008759330857958239935574759319615179578764823189311429755181174684868574072107164603856021980005583638708153307471902241658185001103896449782809980448356900664189189546003446447452533572077795976696217343477322944385000326060498807273958353948351925464671148448958745120009174463759529088316555345555259984577445646708232409644832263314030630890452945353141883806990911066364045259177979952535529554255036376243733773126553731084857643465504244224842379225857027579656139901814358889514163714931821022422883883077081420942833661137452505327981365565011330658560483290784588732111894138500233249390502436706994663894575080409504592196276288187678741084578713313878870043704774268847136841139432730545050626568185153368022017849355948266438347580141131226144904529180486221752330317350662275335718654712921808616746840382536335949120193560339008230037041834751806198057691335458897583583310755241397982263757559736020119561853019404269756884371886268598688347883431025188851316154146553165592507205246178968030352275103099124187121665076861239299956251206919601581832505527826093703300741767063224132236231181789604244776894311785334258069410589654769185433331636488301920639058819109687477159641665633953942688211757530318363969427133340903556929774491258837531016968497795129525443421587844250485832464800637889179990794165058840829621125697080408913548168780500141500795612334809996229957987580667864341146091914692210530371821647379451075085955140106232434074210169945580502069147434583405683409338454432033906130454619511152261712086917532910612488649635013152589088185131210442448543934927395254241349387762260099863962588820136294325533387239711667665598126941260849961761197613198314620236380632560205999008619525239739710712655059702621882685899540829446384207187670639875173704559174810309778839760723138021139603066166777675884249891543779495076329769865470630859060663350638315298467124504041472078841117228338629741231871808585597605064732941724201158960907212133831133413526853192520231465440432875874914678977988250759131520522272398626550969779236597096384182878483464937007822753096951980373190982767763587179796541246414770828306239023060395059403041316675403309313861385459792087910872943327376076590443528268172319328841319608952901949496801092407791773167413678184481986710917684799863751853368813050926302644950592609773024394096244416180267189233930757871322867904875545961283268340644587117192760839576649046347480425337439084248827826372407220389616896061923823283322056831144771977558860018239802364773675144619907645018665702597882687879941570773802940669457246089261918334026054904198501748494153190800967721392791923201478916071645943042714401175079430502591749837197390585769634997401582174437384863814576269756940114194509288190032295849859580768746422875394645361458311469402916986618121563232109622027941845654954653333425211516368027969746205346055650157463028608847977657714657230110582357373590143865768890747204892465311425604342373108572987802669785634071885288115352162582404810337658671852743267111855750716338524560351271831511410023093933756755724741912009228457659985907239277823181329838687028535932709509479627639491398877351690867759253082736382568938633485357361882785969822382821106286809393344487186300155482374240164051214995560185752963710184090670750186055798145089003768912834872504612842535092587489309368687618356413476486155186621047366847150688169248630014863042000204324096727131675054333789390332315122736432959894463180770416397843121194906074105539305552483582371859712200637804075425982526216653499433566709661998862831090734623242751487231540640038477038103783806761412235770262409852831381876099063369632685480978321381701769641724730851852829065415763879161171663546348395237939682475165088275720111866395307390313276717213910247762533107969275870149421290513268839091590808778589547239605527359831924700989572936239483659443680857225451690057738514789617293943903862291326833214030834767421262832386304650555460145640820760830784334742938835155197799430400716142408115622803859969963559381951945441826403149969058273593532255454296824033684981196275686902020410751737052972108889931530407054021567948342183452170681426766971060361260073944814899530883886318169562071505585688437810518216360387255263777704634171338231401903469061977098538609789863748366369211635388223951368032235450895891561477048507668509225181702917482283072380037713484428349552993793363270764984988114806392621177712120147851040721241148431132888950145745020380599445962533006602688962881720919030953415939291466806653634803263395406648590274830161754706845403405441037221063417604615044478523061689308619069547395575905338434766666986632961614439428391152067221549554945189701696731422217038835460387484311793695992354039025193232941354378119322666600426044761599606592535407783439440356855814329826189265036062621166721057347953699058480219311063810768631328234069626973683123669075698623345861642849087546764917898009668173808245226656620789984251149373501748676367711457099256261386051700495197763358871145111106783246863185675666348922525347347257186791072525417569569657030809727463932646340988160142688675511041569259180265012943065007818915275239474585302644687341131100057949372568634366485430639805553344695022517144041405858464132275571048306101603752829485584852560600946706490544773969735862372741472572148487708981708027385779794544054028290653336634926433660497188415515614681235676591786691078809402741535174850373332531258497930556286897520289610147858384280816723816983561989805694494082258494045491273439936969188906283628519968820902383278809425870303251011346359366992162693534870939048649019418334119361438660981626783096242198239144534652191734506549736703329963322102511695704478762594865730337712340145673602538851476809569558499377878276322530523275421909305344810233085053102560095886930623424285558044485472768804770532845272903006871396147267507404108138111844789145215589034094031322961249702136474660088849062213380359931022404438516950467772863536957999868450471931269701941665399589368373106082127265881816624987274998642716895134147557035191843165000198896223785144633336910144217793586406223000946237489437323590743956362418744832344200576519849459737129878730479697458787852587765283409271686117035051707931926344029342896358505497265278208241541076729805053819534599753517848208035278426400771880235181170746906156464596645787586974548339730064972149899688280896004267669424857405636508016271682564289981170032517675248412360769113289080600905246952734310867419615142151929385440134236430505335643044540237178210876433911488418400962886977711711221453809698411406894138220548772411007801902167489133895675654758776057644477090999241264090900666651568294908076824826395503832665302635856400067012611437775800466567972760207693074317826718206974554752115961149927567369527111493719459190822169148189538966614387824441773588455262785646274952324954317684371109428595845648038701781535606567183806061352488942717409515347909732703356207170816904873245925653939229433713081023330783582399410936922855629819949601638763083737384093172194923130967661510365498136689628183935946081195477513901196841378757523816681686312830821421560804437974719482693850039068211383908277591536129927722062169550229838220169778294511395938925436481218509427444807086963075025484474122167879372938919671488283487510320302160712804975893985794264437078351052996571773043700055078618646279603291842173238148236004884087790820714380912445605969651652758546755736938149367296850779712034937364802607151016241590751934715374650181757199354234295231095174858876899000849601581951694483153454450542944615520392389503957272041032184578604784331746919173342989410531651915949523195766293001671214443859295970967078022243509278379344192216455340609504002631674539228904234819861781580364980665187155262256424277608446596823170954190141590451467144955390023187360589619155092263111037052869220141666241544935901269928959951899445515971749180770018351420670771531931053336178292593608347822573845956824685601771657036036246537816813899845705393453730825780051594147750295230805507778228198335292221429390821579697377675461853821499099859092326853382195379385142980786342710451101562900096879691705681963735484795074933072602598864636752594845578441240901257305880904860392460321695110302566571045419984651379432951483715976752494704399866106042105798138466998692288912011233826129712167279355653160017033412724322874689104519916198049125251459137229172817684184145760925010527086591455205524116650679036048689962598842241756379037775952350169883723536749549120160186971482758698679938451485251202675411610091579207482906658500298150136990731336791798478931517828710801536140777561765546650035492648013379905521016566721576629710708002753176443122321651304151867160034055945874224112066056448459139751807922160686930453312757132074262239344947772197396074736360386325139407805966935209460245467740860525855838404198445664552338544161350076948473243018626145529867888849220594603443006300524589953823948415827432318241888258629377284408996930062725297693228337837564096072690018620923052075886174065743061497554422452633941801947283670077333930234289212810730117619534751704884984295129182229558808440310151969925378555644013867885421826680286274171237171428284542692967188634340917413860333899975391749644835284728406898224571735060632923993498464708714630515761101935002692707452049256458635883938901539217092422776022760021667585396315212415924766334616414158534566936358008918728391765996816417332629910368425597110723796501232319095648356660158851287234659287067741872165465244403144403447610534800257974983598785142776423043808338570240155476187758648785453796423191197520393882754111163357043237593441891269614624141897222822917865087780368861787871024470333437155578975991049289236336221444128161757967803805884208872695762272755901513911503065051528747071940034546052321326268502254707591515395612751975960586661640379639319335870581247911199760370208085351341538932435868459770521278688758005655434810064721175730474056950412832770440058007393962535456000936966366101520050179431503800596214203954140009334782524084050657360116655725308230207123912570011951563715428645256194093261127940235193977008996629590818567966725419884944836467759535561918016064597325321648587008589018538327403015360363406895959917359104462866898344965437781948007691512224472266378350985740293882133502238234681348665897248881440363420791322519286646112018022192240514200196539543912192923655638462641833027549749690072186653385558865819488423001872400933919765060973371824920443984032918819964231174491471717951010045000681136171776642737650482452175373873272802197822953583374655910843181541403482998465400832881802877526794454371757255923782775621892552398511868692238233842703815958990075220522962018803784384396654265445263925089047636323213470849278910311281351421406344324083767976871176022255240258895577657768595130315763803252283757185895568435342432081596782836359427742754425518273475570680268579619479013591979042666672403364491842571540228767954288126215132881312263121372129977434993382027987836516296869423462513103526764313766264310479744909238356871329727741943283307621372150444295351578407724998920155724322366936063097569976582044133580646826292835386670031614618026524115448989990829988554858060917798754035579767892396873062253661102382525245481014663000969186522004910247905371301998554644918753125482533077867294976322590597526677512903068880246378562269146662361104154615594467510682090826428022196900948392349820760946786299932910364664495506756113907102708783909670668215676354951322288050387091809967567728454989369743409174191341356261434952811883655430820818506288638374203411587170214429752417651709231083151673282936730615048437207386109248359440045292400602397664035731140489195737680259852993615904604962447672810292083467792355876036674568113359690822727927935522244643151897171681019419652859029441712331409052004528211861757921257929216903929850334234940351627481343698006680879494481389510297977854479565192107960299267299763836899318726290109478885625912153737849950724238052471368332208126331041799164379641315964199302022173595538209671973048993565429470644587267474228137782648939442090550084709337103709340666619684973243448748698814061791697744417023253522531282790636448396165851149488127759760033957990058010494048984594233137013061215748777048990638998789164569093903494716349981594614006637767911550307242800983374637115331931850693178375751135299580030767734478812589588341626998446547322672815947253888469862580943172957936373647102750821292763629366538011306330572050837073625942216661141840842647395396987448790493989511057438293096675717086730806568337662478093657624270439396819880092801868801362529535219802813045038360683827594371313602616496808887713515558870845340578506790204390565100853334888869947297189813238480525643974275692294550682204253564184759313607517380926667881082984186553329945527464525281970440051562386281758155306316172126325057601677939801429267666167722357314692641525019050513905977114871345996513940766977014247221180169759809501135208412670136489078232121081137472907830168214297537407553713331100835992114961372712637151294444698697413203141633302595194851203005977233902932931549333750698950203858774945274006130952746429059883258609382080365321551384173245399856084855870601908300088219390485139709187532728788158317976194562188619776175874668461752960082368951945227107298675168704195641570343867530246227521906051069780889945723113936511176924920841302957037110723107809575100915450477404987284815755777298972451026666566568505184438787700918172493294614244901768387078820476832070063659149928088965624544119503326069851777075851631469580486324987534658900195642508196724219191735771795929397412185135884404188858369108306260508683122219166645766387121326090556246205757704848100252085321578082373010312876241421862947006614069868220012599548629921782273886666629113177439390206054340232464826978857576367961934984123094804233495884023233803022602791717157364271488117373247884956064409972850291453949960010548458758040367814136493272203244143232816964704489226850387229675021733637292042584978319643434969574736646658869622691042407953402203072344669946887080979614688374590322221035658182062883350154109257758610736285034628028287746833358532599058192164683646464407765374615459537158494884000634468963414674307956263795089567384415864461368262956011144236077905236868667074842241995474480934268111132260891257151425629655135253096971595968233231621443103026943877784136246318736373151151461760660385056947731591250374514531607326019187439965074066744700180033824225323163255451071533408008330982632737423761727633207445912877271125265997224750804262917223008484885510713210860690400324445898131482099507377338154743329452074823297908632854247559648861703479453710070479320818392215126876694512944315786695001073584046342481935039611259043472862072517848681034957682134272986233548256364810279240778443171007070084929814516724625434043597186337448722549686721529664887726779504325390529727382309899182082338766533212270251850989037578167961418613219025773332954140483294815707616180209610865711057122341497422639647647230425368836406935498007125266355961827882251067428748895810488843573401302424440565170697875648299557303710638346034264108853870855930265255687977913619276583450201864141099578862296746252167398105307560728160914292921600578188894760408561975385973269995673073363101663578406190778096263710509434003441423600512184646702692708881129519826069672177201234851758978458585382148008266103107856357278473366896604049448315225320106662243838218542577196757073234903736637948968874055154742990282997379426627801276738583886421487967139246705660122595985983255211597584725315392294927593593079726186816499247889153622845752262367920013059974702782272478199496057004012177749275294695104572935996789106088342424984789917255858683987903141714706188177053493332734343912395419336895566858191641139893950378943177539723478711258254524995996192744635894703278253280818682709031666302401630588175728420948262813717678199356946718687942137987208862277422218062176895467979202140296059221602981509301768911735498726628570874695856344103053398715762281510493989149197247366184788089624368852581968283824680330315063210701309820105521881658149822857018254880820176162899224888232830652878087193257542375046171216812828961348575429660351107593763150719500033342699324463362769118581682882670175609514725110758593358123453643958603452252489151563522865327949580975539843531893662371234706619850221139633679988743409740810378773509452135437795594152549413956948097226872846890644565929760206363602820532413795606140014684063483166311049228146159441287393396277780551575777350028563248298919967723389413619404109857561681209377280218822088237831215270855644458723577547154331129775336407038498665999865042378661489793368037387560125067013506526994354386373006824386827071694927453432549113089123681687144904162399795825992491392097424644881352698366227265682796235313861573568103639116719817594497089777111683216714643892366907191363749915966583778072680995149168671795348888473892702446202585457808179513038400173727622017171958585288702507102496668555237573677729286896926911159841684241637320358071245303829676388973912329400926363185495288818500158158054649537253067762033153362831516515425219977410012927833127603462995679426535615277610780814962738827881777996306947524047836980452420665172721490775687317465676676718822724561889510994434849847781736850370062904027425247529652857172501854222111431081815491312373943723478527446904388719040059321754618340301498554891720480508598882616293801417923654282117317681196713193648190996348054144390825926080174913479698984223067099521449642254503780299810978485180993565179063828127206371070144724572403833855815897805940726206536496198728633345587388489515066381142891087050517788358333487165627417656923829308517091518164414555764020134518189329524671855794882196934675534282180291679148517974112641240595300577845146048023828808126250779276680983219340082919936707393330450531070058173993628773478438452501170479166748186067746653299013255071529981216749317946202966192587421952861316940719341996473186706274428242780493843322611870140821443822160902382731858291253607900261697658059383066652574414720641295128576825819907920303391255559221317195978889027072869124735883347438250733619632184968202109635232878304529213345694376744698756318259438460304734749455991812412288848021819823983459541674856932111727412478419497138378727596143419061410825546602220091880530915829498555321886220733091684093138989525256701374685097238525001724690281236314773762120274125887497932914929377491450360694382268853145304658156163449835293687370907718176081511686921924839876063095345157201159607106456239187595173918110402238567644295008510688581340416001230003447914606343977892860835615141882239935411381184716196279110592913011329942672614810157537892497552918968190490767629559586408470461098133797532120070118437066830962835250792426554765027547691105724597510641531803200038290322922064206274212317785623867751227920319488539743657880391646324321398984288706356944012990763954608333832869620165284670440864585803340799109849186363605896999730666803465336761528492520036457988211285231921964473832813737262112255206211592595744588739242530210063492102211484538644854063627260471085769821153338493965649383486023763652199644778335786570403273715311898894298526543997831513262304512395356732124226393990041505715635219963585608064660852799159778469888765918991375709407528335487758502209569436760515761369107893478454527099889471635528821195648366560065673507215021786771971605116979467552217786067148279948416937412904492990338069802083021646175303459306360947180271791075981374704090597842056259722150809897770343878630939208026854205766682706918244919218878209029153717819585787390192138993365140498563600154179320186927209820726217994883960046739997899677262338830388686252159439500425915564897321124405837957026083498440598614949917936227518177845792331898426293064284311030475583478519439499471832547240891238997622938998971487817723420839435520890252935048878575899469370134260656795632207269819229201914630327735679132629036394704662146983662102654605914890937643188604909337705445087272131494915740773771216275527871330505843867392384809602150740410578166366004193977812991207402994868920518755051619924670767733766777021517644433072395203887640761478364985896888033211284222206907965407758463056644398995019426721422431462031776803497806116726963882012420406573549431210237681681499270572383267371587002476366729897534959209973333086878157638677395382764042919857868684990750106657611444978536343491679283664813403574843718999541436405010967387671792010244479076686407761276869952468811842063411806773605590818473794857593009754833090459322770990513418155246775819800664999899577790781346173694675269067980195817564453884306608751959723544616699083069072180114710104972604318645272186897426572761327332384441383379934958087749853537157059278815281716145285133218521070231795844032318366864447296658209708381927617434640112996182451037257087144908448024948605762789356852677867615578194597350510793105956096265459382251707725981737150732348135102467837222332384137476789858140648779842033834541975382902764644344490005626731444458965274437936110423405389709316638617470894191725364990456735847140341409881948553593787421810465511371603234074280051376106220955005426690554881008677401215267293763966532626908566880696479627776807178473044339998880816270549432173963728303686597092435604359291275997121177186748004195932348199487002456985529010581046581573838930556932363204364410161897868618645765250104651557726505507689520925611847258893561120925821013703313760292116713487094652395320227802912013369245076896092179804014043579021585411662742986572997286019326164694109166841064820616146976723090790259083202137323316685127487462232701541488213555424103891731227648577993345720005721910816172527159631988295039207184341399581970424930494337474070732266960697514420106230457623260333505885174735613011470410503194807755314666665523394602715623235865499708694417883698751728957305278671534001171720218907804472737814215522827654868353458524731320848395485187821507821886294191661642513537851978467942246546713587854763862132543747970695484725233022605193702385793765474076095504699070138424287886518484423259035768124371441638678255452460497475579576208425646361119042011204813786382795331695463364570494832443161843277698181018567890667234113193895585367100299233421204426755587471683591156377724785198982674678255813629261739307694238758208641737556480687350657657484555448137550814680226372086037589369269555794167392862904113499598446516326068989063988348673098835488666399005650022270544814265606453841974428157807430302612258795445370444748677591448886885733676659229765427719044659436993883988566140715472087581599131447058427160226487601167273053017405198182575175297828438807572701912050729986638967271017461641816300992160529851556412903545613359868326421954415425242949579233743135040651698673925519526637697438354420538927990484058940737515777204723134249731063966560919694090390892988018384483260015312227523778566058122473277788146516578637832021357336203377993477345061406869086703452512317620597304246604278385722159654736266561139574873808712542890812976294851192668188771140997823348142863192363323482136617417588096065940777277207645172705393708902705048114975879530970548699267116190916902962495849269642231105011026211213826015894900830054633271783291241044101365919989926982029724608190077065315357015947714931350197851967665669655956656344636593644580189226378086624279455803247744072906175714071232938018710973157193927354052967252545446020623795054650958367235252190846450391813882750473581034089508718795633958755286695282378843897060026753719196835770426438710081972235970398759176987068437253995862391933833207281994272790865255079261864465909364243809633272308744745613438880007725089251688338419896903562610306240012357131199983859155425725406603906894761132927424345949080031845083903259032400168865994479583441705266366440019610637451881825336892507332819394662966222740918909318164653311425359150722101884064601010040534751480224336217489463150998514469201383523112860233830158048036803646963620875926279872850485284112862227807459120379312022794503366897221030395639430676837965580953236464274234448102898049214451792691552862171094070365148883340749942049702222743794025743085682217254438300025958092067726118280139694994987948956778365266445219704771062425647566960996053006801836062115794388620244962359161735244786647576037685435668782422716677494933938759096900133140787784231471653212942791986442681192284921324150572944039059193468022208041299751666485944885558255754121326066473896320500796934510733107020701370013047697272775897983804880446011298216883476129812047082779482249234360657419611844775641403388129776810477037094475819202959842704887793697029320272116318740626716786952866236524917546811430718073742151133933854175755254048456534677624101961741158274843635315063508165530973255349243345149495504048825657060334086197961961929525503103831988817731571920530626286164384943992151973940783240766151237419637966452152083035958788033390245794163726814273166341732327218895003594913849373811220807357335274909962974227032356356331449368889670172619053465178417533243617632603605962347567306583028890027850142000750581563546032805238331211019582893513205080798181198662465104288603212296809657691297614267789172402239541649511757743216089652500964623612447726051676720584655357526832794964959099496664805422833857264193482730309655292620360272088454513933925624683740481532016994242720205595778625989020928273714196619355800258877225811823227137837489888520791143078454409349242472720612496374244131912241977439499318808248084188254696359809271699510341325893576159658935704832501530235403608154347504322979964465355636418151807961263012131769384151533960225582713057319262186396044867576035130785086113903368561711162944093135243534162677699345404130703465379137350757551659011430026371618766789755750638134852182530659452222634715971552542607391326782035817865313344892255682060147956385842373686980195855472554995806001857677731396565713859809308128538956510817616052339114930854309892517805304602100418647866678317470462555499550859669239526260022676546411949290260855857041439697945914826896430425252454759272529000173728320261312145073886650018909270091015943298488058175307992774148639960747610452749990743540300729261697746735595631964839778303763309647609257586175807478112329646858430134635508923263446166226556319646742489721395502360713263549761305737551484318185025754188527059284119826597147690652534400119992685071959827227210254644393762422550326867584270098055277921263259730890347519330017475874548991898236245337983856799660350208456062697294989330341291971693353225846105323801789478342026817292431314268255407453299124196945438941573449939199861547102864729093368193439029073194307559884390577125658968296549711635737818248434202045320642166635203724572689082619223972242648665745718579717292975802140773118204987270705122476241814134785391843939113637105218118498174917976583129243470366809299035417341289825613452695742004958669401472616693167646898859039031715584218877943990204455871057541602623081587240329941651171431894134798751644787660091854559972080179883162242378426882567753799566818972412808741051267081158113947689833120522026195183927888180590817947119964576238872141077252278785788206033201097192725632514730455880135313966454627762617783611229199212723280714258656660163681872660336704179884325746374928015206542153005153867865060610010726532810930203711078939877058481018017807401035694654734674113698285370976850396840899772631755791079418794943140532452851074257614935228817028799321268130668374207800776362095050642837829771006454244461960286181063276739586523919797617148389499221576688504712268560832514401510491825358328609834740701652331904252769849245670520012736429366899070635919084958756779849321005003415739786616852415826447356460302844528447722442565022810904407685093918953119710050750917748031185427515460607252293023934794980841284492665109372357428736907844177358308510354570271306980004694354330381696251373952572973034302043007098435659114179571279987264075616921354843331375221421994901952009884648889006468904514658673299791332535492136074993602816673265172248091918252837518376151665946566324144503641159806711774029100249071561935754921360882084371063976987454412117032031942283771895346457902605856204445877162431286647074753767578644639287015357658402458548757444504890248780711320330515590775304795524653555511687013215228103891488247678062172951175774829456773196833031969305364241642757806979699551685371653259525792351840843461182099830377475337163250379675367299498695651929703713937324866437992960080934319635493662112308187320589777391617706365303768986125501318329203838354293025388006259776278108010942859854735290073168324740851796998563889837548717298477665162880014331349676450574917378519244815516895781373600304099169686097778100719180926821813285546781212316131532264831599307398819994940093806863596622204073601776069618802137451685693947210780885075336742041692129179301403286870621555355683087698171921255385334666518912877835041094232018570641338375704059703620378891148814875226005043471197347453215470243443740871173534743912924197517641533596677735361144837494845739051434988543721572839324887903070539517529151235908222552707488431715483091192474056807659406890676931413511730883222145762418716631152239426639423204509013437077275602768510355639701185640062626356620572215685520135986617797906920162753358279776183196905393613124236565881527600981508748253075965402031937137804845268187971497245079990248746119887098884671921983571337133642635241779928900384186298499969077232686250477862486587401841431640932433711109648629688147089024317100709122667562860413501011865741075729032478538058498221839373844674166845821992529196713980963391773668686649606976924770162225768105227461479261109481415093844126275207891843294117917017104923103506260355818819807067401644812611005401819696948143721488891039339033573450647872722769048944950580333377996799787458043662150459437494548189728953810498398461974682674129784131510963029004038730012809725672166709080182341139916694293146826119980953077145365843309665529354136530371169195872123781556826865180698235551919843065810902523088784111239764418042284658153984214305560030685622459733150637064812929303425818539670958370441169659280857969995666524463824278057785116458290187995520320773656472106569877032259954295083817457858107805193530577370145835357453099624149445252753581043962058278839814375297640015866509808473252717611753557347479259492604069918400253093710575934992623909535759317057372862469554021582568490355417433051011732068428710977376163575161555242829393517729310548734103981062401805795009231427751031322835795239351896215161376148311343637143973381049532890336717560982420863861096849831576771947111433483538894743871917275520560378825670213559015387635217200161031016375143892844025251907423942487164748039980712514599338252591790716835449548567904463572782823793662775523349253318921652590459202540087530915910072658802864132011717459774859449803278256159697072575894797857891319886930195769465105631416347978241131624076832741759534220529736291392924326140698177049745425567355951598594669481733719948729725907036253267622565139821006844869979864361711661368268647917976956252737216652617471490185979330840404748609212803979367430348802355089206336937587323536903907565286994728991261601125581808925835011311541870129606496840313167698653893109103299329303850544516775312057529480763550392812581765916353706851420675030859893532029161529539882431987103645004764542054406887491874638847270428767933672064417238966613883241902999920956579377057167437925934662173322723507786720901185439182816662367356185622159139362973826128718114632210652469878121219053846840272523706600211709470569394659191401745644583480342787580094856472878964779127814727292426784976819137854999207024175454731389855217810801490573250096127853734196412481757336383771085758837479266784319800725204521296494395033560719506604351217759110357175659148904378295090488662649112256116172955336606016040987888550992782233821215081702927812476018019576843377291080317375355652391681917290432306560217579758075456096834522506861521498035159503034909644549601211994679792163394839945299548617491265603977314348783257974475181087981309300526068024597074074680506616192187820116309886712945059920924321708625597314905440573267241090597121468174279766215106383532169299936058808558208656367449691996962833073476245441030380778853348027665189690472334599647720719133404468839493282368194995177512665624795561895270943065971846841334680781943907235261540214599478163635810641547132624830098301089551341123377770120312395068581040880147101375324736229032978720427393117732485124172450256090143693456391975745604515823886376411663769104414391169492969690128480537543695953675147281582185415075242916617331898126857398476425267241055499461402789652912822665173031462284613887268349180065469784751491015021693563338933748458776092284722782625396700513695507344322776308697537457465783168196314466610317430059383433193179780466201974936974633236942770107430121333878940041441329678601574248370128199754970815241546128151992656043078158953771566922389077725814587405910311833849885587999950529555680699103910795270814130426043924292982981324093600105441218327713584978451531794441503024992095642120780463522763784608764800477956894493496538778250229684421935148129742250416380136928677912929475679249627217015513453350453836781136524323450916453466380103232708814460665500951216741019561455061085349584870416355140337622593149839617462610201466459327507946599267680615787592490514199668176174062392059878268504873978021207971835842503683070425160055659335137513235710026618865429496159780019176500830059073648768954516972698732581097494121786337606399064792593035724015726798259201970045677494070608228384679843422382111494587399420313510663520833792445525316514488368212123444467634518156522352916606698895620406323720471936692906081771201271175772314975615990158565220834069473457028721694066676544957665989040146841743352827220261490372248963938056731186972222288778209610653388937794619494464686099155017242068115968503800673153275746208506314834655664881847913232998333092324434051504698666465598279800235415203030647636941672032309139187922325378762104345111716731739440414079060202584390598172830485815266682794727900700391557635227702858250662158418911080394219007683697383864649533897159276197684917485430288952485031285157770094412356402497011694330458690461038423107878886949993952382606286790061022462278909054165906922791150806602569862106322927243585219542060586155889933300978982901253663724759890646116935189194272408990608596405472290019076927517092258660125187755886944804480313062588920585885367706818579205779636529336074139471747562867568333155519722509041023903440595483350461639846680493765587246852300771783262296704439933010869632033793381575229941843399729161476282252315560856590019937651098488296380883484611057050477233461225067188868960271252258686327538618797125224993866078791423172585955705133222983235478036193216596676560661897207357401269928552733661657786466241675420578169138963935671991932746182456224350840348685773419812911269270025113905226153938732743955793893615174335995613448078807450371635006510187959347073200104267908707149803215309808931808338941129888212451734976665259457926183393425640655295889847595136695021522161303573147982688556624536226851387436621257326660667898511603783164097587066282446112799668221330043207170208538680149821723182515205446216998801126924070895976474275687790159447670656791603717129788507480361984249108093140138832766004333561413727293059064293242151769391836669218946070995994409145039080238354795622929758897600030397849552853602042295651178158426361715632682867472273645877593980688485044415651413084896896439863242003970133495340785641860127810733067604772315736966738431998632851710522310325386803850431279511143908094913329646295840897782524488264536698037731531095307577050839484666145476279019302449280309043510165262302387120032494699317540345468230189935735353371742691619123919271668655218875428287672585870101967685111272547789251810559496484922145630824419151513285040941226840388924603803445142407772158675358284752679761738056804651466653567450376567336181442201217245018520823298950259063251459978904443031236878127600313782724441457725607312748361640447924661636132728989773054007484985868561483977514088756201894699115116947869567741860127575658055948549632516031822965982509379305082235556003334302633176333100443561862765491592108463178134688959105986482508383602135480484364495630570404205722662080070226996292862828420995547706650410795534011825516862563381281357928348622444576744800801145078952204613850632225477643110792122837065990531275828061715983798149146797933742393473169541519098932220758814656524924105979594660729553973283019012286640404430615923169220195650164366023416454360278542220977879656517675038426311415319622247770289443530860601334459063813397231380666063879873545791136485090488818625810968812718846422565563321536661356715663915827596977858169814901556378908891152235828070071910891371159229503006155334951280936391430472806631851377101739622856136075103023950972256129130217057268225593746581934549242508508140929049504285079690380877492072020772174845901810683333023226268867472402263070287646324245673282986395402301730416120998518421502829267689451005640364190466103439060468740592780973462720065190081555012997700708021241910083625886222263950593381250127209673763495650752257341114795222789233576447584714902968180459626762165765955139077758594806539023175095009574325550825009723832996279270883178481489507007680561551247965006748313684931648919107063611546764459470043646709980523853713901258760362034896453587658699449510476129510356388691517798815521978608585046344482327982454475156027167481589294685969381098220471125243802706674681659214191146627187293261771685024131477392634456352536762247495025926017166414837255599422612667931946681053272541408248250862559427375785386228156010870104377114854327154360964690173492378634224008116989774747606355841716439072571952535945783248943733190524362550059908646401134694264655824007670865641738545384892374325393538781641413457763520693004009800889361619651810850741524078924352683000341621504551645042579503694210468320820440124262048299527711020995143128003149758855436720841221540043830677902552866163830375947699233410858580870472457367110152391214181809883496804780396964606656390819812311753577202102450653378086884452811581003199420344274300478896019377882892628896184224930428650430941053372385979178033356801261042370482397374769829597098106438094457981221087331928766588054993500427141691874256456927640604942758397013154906205658196970222163923241899904825953858751929012855831340951498445866308366286551226232982466763922236155918123416536946753725420459802397081725660995311326917729769514989755600550353520131446657652440586456810513498516159783120295381563910256375313929413144052593853080139957536805239145618271680070816238123437364641473381370441332722102792591036940568221267191760124517943042488609799021432408749359477468659836931889796826188112102788484933465066860502588564045486177317466132914069532196579593541164133598195805298960087231158919169453063159823912374447523864166634425685627053977029492069592073783610790065726683430794060600195032199652861388171534218970341480113408253112216900928775562174726092286481677301403036129359187348952891059695238516126069507409808584589827671343087060556182685463352003359374064637822646893798266591578564397491996401122636193397002760947738366770850849224843330111409574830697081129290263484349506585332970613239576798630882312371311554021749254341032088153635343479182401877128437439170715342937093150163623327839701295729727046553056415268810915389648656354849757570343140433958276954776929624627452214487369724274604752165589976424870347343316476338394987109580182685736701698646972732937987627735707887815520940371852498650770974379726740342878828974016240656780091808441260623020794899176813081372886133730611550871567267197319200862349616902802194533478894597492197505767136330959302933729004353952449128471944282625618753179852925208277003537880126935499668183215375809995521931552923066322820965996810956992622159266601795490511245313249035666249483699405218541192284104517649394821911503636069332945575433796803468551919217405144919188950575968600655686523505187466517645759408626504182899407332817601579566170298295071170658148562614504179486843477662398337711630123407377899248648033906142976116125335094624169601495782756461689206330003530246359786913154702931176926683278547545509671908121700497763427102293034345088603558420712040341252701975302930603870642077603724067046334433109713488436674519063994013008622002983617514665764674213280795081554380198332591097786074550918351991240247894176085384114258115447791020609847371456002090552376524330683222307685226597421816509040624988653875256077675114885553998790492436979747591892823573920020250292847409679643185635463831918293842946130376997693262732968489365135600453213427901859799468326364944896740067425919517816641281596813293739743972647223085233518682631021635938646271779416947641168027226709425041414158491985072697463457139423884348037250355291491651241583448686132321670966949938715535458345723149532712570980035722992685142059401178403947844668997291440783068829753815425334397009843022388185280954797865349092943277415758958561354326407699080187594268635161839884192404458347249568125825399060644094017289556478576876357199951384495922538236393423960366165786070682397803274402617028323208797522165209943171003848762300931934705878060604714092960020311291472673070290087821657456201127565061418480112590321045102520243425233611137302582564440135366698720352066529488647594315285564295268876566337542109961118970708971262696800414434624039795808009633940274167161801160594902537212509049746976093875145036112407709338748350486077606228733321539808123863284259279448988295644776470730324412615512364233764960769033307568389722325728362246591491403574723290174679081389662617891816128758547482726389306506456790678631425152944673175409879261532066229283041321448773308535121006760316034962303151657738409366713428050380954628150904025512102412332318449961795184855003152053287420268594243883260452262640468821216543312922111117631041706106932698636899199434086277724091701177090665847009306783554201594792805837488818289870833409171022563402483941955761582087768156576524203631402534081639822549208769187468780145231354855177796834884951076915252578343882601518910438157919323953408253203439738951173441551079944559171958676070884801504810475763090870928832980411772794154619109849147836361241502429866772728469798206301754088203786354679179062312706026990390699617959603990919313736097919368272957010610311691775500534161503213001788596799261134139729247503753970337375506077197225613566151383664117987367162295382593423506895844741184322859531669771414065382436134521287376461103665247034377252355810404482795493113334951937634824730313603890306542126663425343888796893380176621813953208125447800493847794579050423735724077038955003474001908078574287678007264397513486545056574491783576066732113182379620576508749682883623779065068140910856410178264328722811805894659828853763570897875462380434815520493086628857854882341460699604225388380672060468314246883102665242070292845403479323825683730316505901325226615805392599262700823979859550237606502845271380117261776807355954383433238022057378379745950704195481199466673965037934753225658820456775491569059138855257018834738722172098048208989285645893784646207464531181731387140825010989984208985002032735975541402332828056385267616728773694972523544143433048759536102781626198100389768150302206189104837547687671525564377852600512756851195979965778395889017470981352184202555256497645673255157630104439461359474328714133955307195480406749211524716437270177141326922198337251407825389934035801485410042550339222699712806313400257538458565744312002443059892035238024039904943696578709609858689357923048682946830784452617814633942150865706052604012798966619852316892941388674555853037574071332128255167003356754191969224300066886258241080847849656927639541219735857280251236810824659559741585941083225395713782246766822110827374651770535517715364454148959490860518569728541674704802776293134149634531991130668483919520207429129870701155241094160459788242819663819637785903690101344271025265711906577665079453064479483312102008182529562881218886419743065151090746350226076973777443792100494515848521395639541110935445937069617001018149593958626567257815138266285132083090007179894375896749222484776905782950574199013406294963825049549162934127527540138512929915912839761454343258346446140159574334514439290944145231612073418682457560510173879524400645463989496044450802411068294177257014610469711221668012855236927965972976942732836777654130662970264140354694962185261525017715633286528618530820504730472981759077503230914787725460276319335131972235646994107958272523847772015819125955538549752093329269743990349511316209432116339193979354608005412218223073693341318227620343601379102540575293155779802540952170628240749320649075490219050937594105475238618626937243183945149659832154970451862763300247150134199310660489058414634937107496660780157120653338408601670434868843608568364421244427704843562650406301667835580670752186153679810532954753961137618637289820184419800785029339417829691294896877215199983204056714914995322796178130306361881700446110778231308490010299892191857451116566147687491323792973752218820669817222255432805862015084768038878632771764910139812897662695336818779654859985177840188810972011738292217159117377554347863158842737368887257935260204971032736062089904684332372711243023868229256486404527116015958436183746727254989442057238449593749397057117899688815450375751242120600793659811790522066730309022493556656412511662383423344426338622419907589278137181317569728231064558193547780156743088626500506984076990922882416179373066111268251276906527406039169908074146014760509108955557803871085234215143189953324810703147140158383348760748564171315687763889760563919943695958115569970494844612588677064181891288263635071866996477752169598003684669488465644075956892982898276721352135919123092016806669745770791886286551675471857418855515051419007537315920238146776726941716251248056360630294601236024858661444459630060979226008884380482173983639442030741871308399023590813026651871794325854055734970636744505859184104518821017181993872251016792660758702831694885970278725680421902047859972299150369677393444480533360992514920971034717889964185918911486788699396353908851878219579528892080526167528608205628369960148742041365515318663294583131904978338547846943206295471258343304809331185995068692529296447470687142893918376188189169903475542960993921458207500872527923768919684904034097923445698737647208114103404172486402488669650289629859455794205890400475702803550048205283637954638919984235816772219381801054701190361366113884836271701838458132420285978579692642018976777001923705499555255010221604924831845971213275259900664454779803271381849005356089362689467313281654555436692048147228529993853047076490472213605653852130401260488410287741770921581618648955336774863995402369156540518277418176944476642883602345795054509743866115646758706570451826094036287769744661434221523148002205507560277176958469569937241752555961627461281741122000138297365286400956643536030691580354145959879852413094107058743627937007983771056578752196747989529361539966196652583907801821400352130041097175990467252192346866388856032400383441205445152720325612057043430869021228956279383004196877772190978868455769365574173843330618565043197501658559179746897702863187180095610189946983047785413222200898851245264644572229113702392595860694366623501557899045084809564039039331238989583080866567038154898439289942656877500437252759592799077143390780328006555342432549278371862790120036123856495105236921130718548226585933393269824183662262666263864547875959648792172794057566770011907252431136358325623108534045253999942616274298103707892852628801330170201173738397736932562614668626372542962860768626250686189688270040724234200574315468854875940115270332536052724223723305668192866181880443382866862812409470418811951907376991631782407227068278003341447697592075618040255514204376972511692151767710051172554913098114485231196705548598351316376251708579727945520066629678739055721451940262722613040088379333573909938849213957441010159222350271873766066278289082077917293314163524142149205749173548869655676029897472064344821572479190892136876963395180998045721669859675253797569192550201790151728682629241087871337364372969271559814054420918860205560952926940479723852895701334667297737472821488308469375069993157135393186102963300377715425548305403496646290891308444557396245110701795796339765284753727788065568098560262584485371511080099234769711537832585478965029729218562667660628334459014365388298954079579020170087967639712010254039125016462669150902497908987495067374725968738820350442805515299483838443357842535235047405985528019861989882616239217545633500242795055222510787418462543445978664024392509467871187697461514378555866365213646637473766988220415751510086667539644053443045812603071898382615546073522098078502907461904197878651298439459642766149896323566030479734525576739376128658263825921792115526309396334882288256976857450369864152019585178090888112247139652157606236499605496525962552984116681990355057956634574738799329905623539897112832080766714949309733206106471998747923053535962403379519360868450422717763017815014153165396265201420196173166945333151666287870854301745414858425987829904279431232116169788010754151902885068989850379641595257606845298137565821679733742144337328583334424425233459153346835312418640193172331331525445661530433817301494767090710886013472758001518395864216606896472174985153601331586677069927277397151377633638770295882141843793691857429978136903401260622492323148603722509214953579684688516737766655936470572292453122462670086779748435861603905895855017464936875831077465197780799814374984531642479868129797782603474096610236933389441352028534683034249926575318087993302642883331705654131835298118325805778449855860748006873829775089765945548354977679464677515358295379055136477903481526438519343536309550763782825913716034280424388290349081073024534905804780293912910689078993529174398866921781675751522062927042376664215774197043476515355552101935723816923622727523264995845467338367486902232487831763088203490244939571654488681567400552411415653966047201199923674669512068997031193837310527830598408641807318264892017009290430850127973993488327730948158159411294127474059382594072504328723541154745904639120482269975666963780209025613728647769387693273011303834359779823316187678401134897487632068280228907219742209978134317805024211568465950792042983929558900919181532285237957098294855520722438069912429761448401513682769140277894968170452565761355547679406623485970278631790541514620825509476501063926852556093685832562169193012354476590939088815597846909172455233811525184402131656325900864112984710787504147847449605990398510836056739658840905901039629656909901821061980807969530925485239245901588573769925558109353730674673968446856387458708563402599139542985603856640272869752726144803745917840672464047347751059783210004811217157628868105457047410851896066175398958098005060466009033127673604738488346972923084265976663880276780332481093532529065784753364712237831643888479410856924537763730329412280550798169122991759774798372719787520228299996738930684401654848972934571125394004798969380557098378988375223663960360428794866074918925939129946506278153193055552046795766373321907139851357524594420770123753840813919535924654789292089129672102856611237779652247968080619262435753550757789776094932020728253175729564657892395126251703948952884903501388350120660067889229553871755600014274020744291415861735510167517309517861370775495758192002284024195453073666001830843388530053243574688590139266137422165740361367621554540055153288524238678545854579864204690301203494588881300752256449302980140389776588936473202496942559955432239862751112909377970405696017023223093744287231180824548507521067843146501191476453782818035153721708418446942980049574585619536625533743003234636577960771291944679878194868622121605312536030722854611350517375404790358066579296431551761225413059672476358978695610281028570031439940701553947266158303358055550330887848910473909133704850723473811496909426391146466848331469227465341855841106407009727356359216389256239927616047754939633491779357601077184383227328177993478925317853036833202142979013337841846605750338061759242685108860529516845250246316860126085038264293717662821196818758787738795421094078652673603298796228775403630662447866079203134387572846779770201707506047090151004059159259594471465982572249169539716555674505747407478496975026531889791526907286333745066844659650901331186572788976670413846870843053014507927338712160722680377121366311412598107243765868254457197785716491234081667346916791641899058310672886313428950857300123871792626145240135292666291204352233518206991031286193920426597906593341192560837902967787551500455134810242042471147161506680370620099692241509867516384638516705860867866593424072418048122857647408986540924015246681712795396306205273555498373064786607023262347357382095711249062046409636420033451216645737296349098816149805520847061386761867922299795816307694658598267297725325719401896849077357544095173696829857180992699295689182382238659734871878940217283366087427910312153023031003617427566037110921792855059392646694807291332387094095748654893716861101221421192740214376218026085130668431717177403609072510568102263899738258228449154824451321341169682746176723915849457663667752008597731964031030496701600408945867765178679216082607450531916884312912196559766433127033829166402305244535008099756677394614264852922242388422057020818566738683166362588501051527639057968313021250982775483035690316403065612166193854006275238066288067147775613126944219737099121071139686773518046253159921178675561535293697406497349326043108237749281104161397025516002360050217026071313142161203102113185111315523793547532917727690528825715559024776323453029057740220142045915544792355984156318522248508078209111225849793041916514386522373951971096308851779337240183866790993288729750758993439666097410327874510446098507381032379268422939351734056510627772137901749026410749590575648938881900557792152195432677490185342896204876962493013760314411005061914526977258029004378980379379060982960945260205495017955206970742746990404944782302156201242337278670514255245440817224340056241106313776541293123182548836803730215948695641229348665994652025677647499581591027427303468151410379649554808197485208648856158394929370883482920938545808797869824669532885366701426377210037965094320203269912576803881013751320400638758476119738530696547808639981375260511333342453999698929893966874162127829047707121121392138997265388837412869618677428699389900144938533057286156203379895375691458920150237303357037096312665855266819889719177475631765567031629296279544208542595688842850870800212636856219845415055074360672144324530188482940449130110165729739352151852554691977065539171576182426287955579378573133379136428750071193907390157873749263243847317905684754898611218549090967187349023624160366807372357517422989987786654222627047611474586510863076857455175843342431379643900819010381999667235304422251181691963085595466927993544756679346172477369500276236111574230172314117284575844426954604909896004315665126623741206207216744928566451320542125015192802414329472314945897198763885119941682106394306243482388016633476960271101773553469373917146470942815920780339135020648192751891682823576848647433949640209506205927287361782026011544289337157319625034096744787521453122791597066116977471706469134604876078411188793310987910240921697915797135493729365056742627990481435060153308786235250445976109194083811137284711050487133177611317592453269853224350906325883388751884468689441322719902622219824555957096331344897429899244815497731937382613919847455751053529162739597014987535334361910037740062518526599674901573182701269204465821409602538589101302481606847244509612230320029455523422312642308882756870622623659156650772202544614477266118028662124945955467827273011764784502554627608052555148541965667296055389057461612426318406117346340190342851175881729014561711236832823672717794167666684168319576281992940937545319028926152542250969053326307844640446488666959430940249286049782985589349621043368293468130803174856117437192758898906421255493362540111607738534442177123587783191282288040262352819961089552355086243110320786620043240599785545186072146934226042239736373436570542323079801394474657289783311341418636659046382002365733055550203523072496646780898508538734659700939898836652377472277867660802991552197738103734696508822602133013171719951667522286311386197851886177185128256361773896100321764495305603010127490987768080964794534733422147027582491696654612592785131268520319939715543266868821778173311069114634090071876359587218633264074739584437755953001586322910700514955458944468652310213056802794870691105482207746280040204652434662909229670290153270752808809560466353990462808002512275173497868516019805687421558032832061777203545694056848583140500646574919642278378415768310793312601294305731224614524033773621284153944072147793988495049558171001849523631484634547936982680672792592677911304798050726586588208053039827359602364240624787928176320653326233326081567608543130930462975945256053217275931078271238839348704010064725088745210588388541261652536745982387049482540303556239490750718788838024660128120292931657166593606900071698481903034371232315868840438755473751362446768104187349588315895422121788361676258446389961601587725443689268554423848261259168833695499274609822329660687176876169832450406644077072530043369619603173595873646945799117191169242414627580570256162937369663085186104304077669989411019117733116320534261429934395007761368102281779040406284476623963806177442833011240997673821736208027597648912138330571314063305268042149327179348485089041320379904578064178297215865250102711991812101672682152824893304686702606279043124995707127747923873452110601903829181245560670018977286480047625437774691036720083529903689429405176307375995546278503849174679392194110560263839234544864166298221146667271591173574304979776364853753643244782550593235462178026887745761128835869411960863822748263295858504990170860400118101137608143883595951132870748194902865576020284265767175663409430796669787542669072176015797349333385137252118416720807859891218671333253796183077336068104602570398062956018535673367398558220039915858648041326307151583746133394451721648671255424662921425374192901403948349611055256294554005243320064834773211403634191253488484918317876953968637974273634544127309889643858469771225840853370453321359908029535444869266010915781599319760678171620382272898761887154252321167734182688650106452054085491836220112511273080670091669563966250284980265916617879262460793825130454584128106267346366284825043088686635007019087816825847360280896210938285179372753168433876815403007628101504965056604975246785147068138677278521919317786358234078643781775531279353371413138967165177991615734285838219925459390057147836846631206249772684231281014370495823744547586395381176151564658424180814228651388828462582266490028070294034883689330081498815031639115869228464855504715992392267029259777012778577203012438685183516351673854396924268617936217047020529441765995731123067426741556621861495889561279270271482893762442635029682304715566725700930822205711262834914672142403208929657235520075559448363486075789290860469385797276399661671965314937865386401854910829596802980979056303448027518794671772724770660195821606599894375111188710567558928480871359587615644626846128411818473716779181129213816872899933264802811699333731125661408489058714650167956853073073668839627470113731252305993673007249057099343358495406509307637759621709521318204617582347043377671744116272623992950236942652620281364204882046092623088438714410911948874964807936202695848558480331930951722947922390886635459981287843971848626078333216838786001479271912425791257255608650369624319122059993923759688157990818609582218382936609585008686036427472311013410287960970965486662513998876954630812875768950408417927958758472475456049005692281799152080735876698279528415792323103485407821663020677258839984290338155221935159782569891320159913004843149418005194052209961496958513842765000477147595335125710854336625786673334043352997917313670384918096236312089405764189617716765702443763644157754702211602133241717524341053332708773746256213974628001556940245385283117321606131127092487397644120094128243773884672934627513306452326903152028253402494753061441706952521032710690567031404735214205793118132416337712888949092337301413191617140181721268685847351194063091943514585375498723178794763118198406580720321186852753026207017083615234138520836137727634280528005408026629689946762807952962153035934049033800057917667491002228218332896343519290516510093436997746414375079774025066539387670697684684980350774386895841552292308446755901358110387702651645923472556682069185889705189895979849606182128681730818791136809637384200999932814859645551875684340858695965373483893504565031995397982386075264720360034734486296074830286691199921098317474581697626335741680525749889640382583567170494723595964085911712951505791869679403546972988945207697853614130707117936482979736946759578216879628455118617734794571690866573409729498168909964448503484155576658095783706597981385235554101207647300152077525339278763260924763037340328645230328336934876225118559231961721046626562162457544838917105809819941348326190581748879411655559202917232336039120089257681384423112042280952516058258220677718331883657933240556901547450609719074493979957050169089427629591889951611190070220606304571772225056708923967208935452580765254197423393964566704293030755209690994165908886018954865962118554636124647332295386055781106589871197558591669949153753602293781669344284883839787433696626502741332861388131277340493186950419656624895116331179418055776957782294991892414278477913319301235925190996514854827635356627938472358990689512711665011258613635562785818039489874588780676491360261531119363652811132904964792076935341851131869074894485904961033385147364003307476121937289716794794765498339202504197287349080359098292904491459570708164379430686831933348844725878021390651949882431285342021978902712861598014924831813717238388933469679268394797027317137793039922046972849794897139802777317469299023380085056679204793117388948704654204842172652812411716217371591340442534116361092371757689283947889520196220522251533379831588365715945057875551099263111530546398059734632402588160644557631160181462845289148786026023409174983295515191656426636122673508678576058804295725397782313495757955177301076573960638099236763573520605156830944370046661383433029698613299537542253835180335741138715321525963552630180535957650585339478597753180689016531340629369568342492315372036670256316800015458162757509789862903073886844743751446819325498811542566605241560038410112996447853451197989703387157474467328087101504599169755962408261173199665688208069177664406199740771882864645500243986493818509080612870241745351044547586467820521262549418789200810740338241869952790242170136503488636977940384022636001014595834952488996211535789744160718128873843655798784443237879825072349899713243486364015267242823499297631096215776661894252397557102213661448013955994633385306116857464302826439687081237104843400578556819468809211984033795940518777055699081075024048703284246350152769041503657641509929648950445374701119257974645092817794162407974718487903073592312961415460611290284129988982007289757772762287892127257846575511058948351641683715818516985085787331615865965011161260831340049232016131321338655036838148148138540940789824722088437017853117651078170926589797212311252478080570688755344171270587171790592553239139118191272910592562328526707929196474290322970893654766396358497196374135248993986372531768993101056861003589651313220119190564949777454313535182272561199670226941023555518993864749324786152292929074444358433883298186966346777940023975539357007321120304857630598276266582697164006301376741455037626853190035942546548934092074343536420744040839396507708321329103518209209055684718026172784010234415399767645123586023248144109730840875249404059742527501344391320223251117942862775688234515899626725079713706140046770320901202964741842971542662226595291843671219192629082002133343774806401565790055666592626432193168587424439327298452361613395772701065791851938325027233345068677101794869527502046644431880039235927650424635996212076638992534704811533904913928005777624599425832432416779631891890287071304534518575673202888364189521633465240269170270066694958119199371768153974659994281185125609043403116640025083747421416692607874422504281335405560507993609614583856240393325467654300130176705384414126390206510166650185655269803217021140666018132799850050067886933949685511472445674621689361354192654475220827468463046967649218469663763775417438221265806401990257729285400409004199704762171579243625949236029981861455478624143498795416083125015852913558768733348729354996749480852536960503524888155357422946574182885784398965690488568093654059690915332598312267931662006046147868548745110732407546875041480236573356864612512647138375806386585347598105224822959031158099032273210647143471922157854925674902755256177170704519417637148013157147736720248930099029233570447770616172733723235563228354214138890028653510796083812782216054696286923764049004160145083451471200602359287135313084524932136047386279217287006412036186426246642057865311572663710534883705414893822020614640999218836238750326320903704179789917747581089720500669903790828358408102629153626370916358643183057841615815365080791423359603394891193736839298733078367627114541669038727823151437904983478202406945746464964696111366352748156374358991114200168955815651664541091354337797134624142347914313391307764906174551761005292065619265690906473770843397908312538167571271489748251874742031628679470193461431970829811972426271238547863875624886686363760322701896964713748893684991146702846694865400704673042064103654615619652672211987624032160986921850827325271396722105605682019845557591274964479739556987612566484542608795903191731384110565393319051555694762778680739653849943556797708508133924585595533309253997944295405336004996495798064912315737286563254268294366816289073661211463285557688816460153014959274158912612899389483712347674270519420449854858265192467839622109650986683319512479902591212454239401374789165766676689539650320070427126864267591305428633360790350760539399704333421283669109047125830695141352835958358649195665854062514696706333559178021897626255124544464044440834937831748881076739943707944620275531438399199208827642517483403460036682009054369871543508249027349178406498634679169654381037517776579752333910811397687010288524792021583309501539573837925846540371645599167658207059206671462523873904695999721263281202102317322621651414195746678522858409156130145528566921341772535735412060060613637818828423903933304648213196233009947978239500591954092902252809507122025696487933769743417732741265054261028601057868539701190810238392818179632125798512300908890550247924913651299770726338577301384582708396376657494967971088723639607835311432036723992927789575057550238072297726429112698299422636387753112647040677648250247349258845782277824589061897563789693638572931826080178399996746609421769000903587184613039526961755659487291009336110747119145104440131304854695950148836254639975253031310734213211686781209033681406221668118136040092195439441925076127687199327167698525249399731961363099787038633493004959406372699091191248684971543519914989126319793721235371277862669552022144730626075837845732403686396733154260911123136411053215148968756230146346895129990159145722688423403216602487201447915417558981124213103230600650831492129491654612635449268609067423526146416444887611982215411028824419992016534260028094254715126810173746484954259042461678305700882706609486179267962166270432622440638222231290430146227640777537824700073038140595188043293414776982702140478195526232783603997034210060039079447886381500465479779119264467148872535880190544025559239137169426648270816952824441081748946071356741714386334956253265688581848786826514584873008268884077110198129836740981291821171076190610891322631754270439686802966783370245966493911770256159009169967415860813430025680222240271886552880291196913776401950758840720944657287305829787056329732129580711067295222232364018201667327201689103371056203698498212780982381517722975095075439560197331347038668625943502510256066942475466451390797932425413412435349330304165212703957501331921085305402272539079753484871119142460037177174817539433026110522603064873728716435724887810963970010568663689224190104372237127216242552149803911471454179482050703595182536783911377592987865675286650269000013725062189800331570508851606286050525918763876728707224593562224035550544918667650658555201210349607036723492617349625606718228486766019048262355832684751276361142361403794291891645077976831053608247511370741096652074030984960134984262771285336817366743067339675318900023639266313722621905360841887354710624073925889687150676829007617583606550950592989279086092666103764965314877217530895705718233157966936254932796856478754976161817403492640020189605489568820055259164774960960953406779225632038507763996915676748913564468760314442383061731521761208855754384152770701912667140586220239431571592998993068667260466474002596375430815848426206502003702310149016007533078968970591110390559245180335784575203734323863188933880477339305203685626184168777861330322722941053440071208048165916018728738832147145122307680028813007990006000104824495431325587323270424639640425140722178904759702209736029872282314139381078505982364586133957296804008181787071007567922090272667993890719801258551636065924858898637894359520516419062206835245328765650884058784077931284066822747781900942191540030844805910479224948132272369313376418496780809862404902127527005426611520663990807326488353831152998584909393931856358565852736590467443429330565094426548816947925196088014858457555440393826270008857819945295541473632293287289746908338367452178431257709088844630415398947219345320169583080491980089844363600462378456164256629063088810962058742482672836378710400143981941143813389398496729522808142670689964874987014549800752223424367100647049140981882003961496281381973005986375423858749519851081538445558361977145949935612735523552130212758823936695592102345666675241426952237649546053434205586815632858063270688130602716591723694768143064559709642539835740273811242206767050924174416853736653937139287080090170802994708740246660446803865674946499066053772506845633383409521968663543345938761393364392841740598380964578749877052921968407965690900238957685185773923255155082630028347055976832117224001130868833272248309050017122301879215461957039506856928581645135040543936973061434770785263476438069121184349779598025790223860077736055938604452773936757695817721673998953246849076470960630174137372668093758960680528120568124291241647285085179030617099183649848408174954313804327059786461834781112917599158985918288985747085279403831599871251285359902725326274044769726146185545306553371055251501333703496928213706327936954154099289215270411420058703436569753938933650869163467352218121813860947727015734578889322694473869767377158251686270659832517670948738288777057261368142061753625206598018948731547432748161141011836626945584566605670216840074205328291391198178395894193102949331385002979895484640020145457980826301376642733583403107277395999645780053537827252287344943061863861300889441395502577997271775232345798411391846891700695389628179832922221511818370741504910273113929499545016331281492727611351115955066764143602872480038755844005229204617347352678324872251874892727029715558805778914767684144672199670060689261306603779483115452916007682328590785098754359257173275456021642603879371142041954517669990338303742011227206378655080085347226102549401687950106159252549367390810239974635448151711818228656581009019550444120703749064355716471888680918422643504380657751682276759238851056909542662790850623570875414395902950251194969830336520714349179644752821510921291141444752672718009893404167265891076070256290866232198873415932048030870428188052087836664579034016808360713741251183614520101397725512982347479057874010139513897278089400276082670181214065247243498789570109850215184575806002174560584572317774898364338826516042623299003870497725104078611711332753873220141143610811762382156273030730158302790225242204915355595585936848393006487685526947723581835080701275790686115941883780744462190466129258456561918946404623642844775017515071827070352093699241846060250045629882839757143515231407104732103052142273035919451737964777365114109583088901930669913108930784961623033438338793325044585696248739065343734265231059246074510202571832375775758066301310800222737958171318219078190864395363063463405412430763327451796308810547205468484170795625194915773214962998857079042769255666279679993144751032261017097744990003607323595549964851667072804201082570111688892772193078913283808153251158534584080088321999063375535229273808910454225857392416309514178220897442757760418542069809196529589052852626311476936311845704718674096181370590266393212204821379221983855246447897343089522866155433475715642927886253413337452578799150868227359735954697310175633648410496202818648868135534163046432062615647219985818674922429078527264963844385308155411817768643504915033137089775827340693345265691801585946026024432546261713844067463603354204675934492485725185207604474527794998124869399013455402049203128701132045346452624551514206352325939419022841463831763723611717332148634768790849507671366458721315862873379906468060498590359682954319688766205443981206829610749527219434917833084066889700337805254153069154259115954510025472634654746188022258304661367033069577452835618623193666414047151860224467545167621437312280407857544233814649632717112709700705304874542198960216798028212379511256720308763114641410595675309305873839475107541154172112412018081519431632407904171578211045321412411875015779161224941292341548449363220311279913415965753140274526028133246642202964113757199103863894156937184469862432631471564468014313788518381053879435059496891274130927238240797430593447187835988579053168655959543700893818298057735898977592140856824207107996054632272178101948141132187121474463298802446229099858989464733333474385707785823334011495841380059553303665267845222796091274282281051612412676487831452158865108983508609846320998327984000207679066455950500595813658673121171861698799336858621484824483616286387858502658618975895465095612901253003396219125604525653398339231172753870569609113783835749763762303476022095006686794077705216666666062079737095686970856745562802049050581709691053479954204685419416471565914223391388965151067165030844417635914112993655639866123860672481744156932515483840771775188590679718132205446012740513207042810925503459901486871594350662272719776877900508054829470214206312191313496770820571369084104442753801859087568794369448202679555643713860865525090507329127273052362433813414375570084283449195493166464297549542090439599613721987151457641511792863794139009716735672778607756725191895477165386712689578777678144609714950537429761218569994504790792758825699748726259097818607416882256678950191094459362489756431604249768107837832463246564583955845997569354580356966052153772443568716735652942480968490638633860074446909908794314009666018951750871014643194643007953319055553424159641960452140490995135510531601230475505484808294669267466768522041061063962331894744627246802033112934838309660195800011730511650716267990357286871955071100069675756162478113197280598068105942366166001113507254234300008906152227686967250928417285335964400008020906643453343955976982340763223073581602376205464338639255187270900157450524932136352476332264049550484805439050447135034700834642855867495973196823130844999403333820223187948613056812306279304766154046726259946204467604705636035878231989030024685770409984551819332368183308675510035415338245338924041853517118431927884751423431524971619277147467108565177421504254357765817391708580312040693714827890481458040499104069401149445831658175707824768740008665387904730299622095039579032058644893974501111595815628865279349840592647860649633688970086542973918600314305219524797267551163828485094027780169763001127580597829930925796192938057437066243205354151109748724452264797783584876843496164182854810142657495314307393776034689459304392012292130928401788930120778100853034789873824271425521488030986817070554366661466512069615075720651487368868216669431625921325174013277691571188660158952420896957049006172384287119132606526697869769097343902154846241684813890509888814728924657129283739310634421474607646769460647503164380004364408278368922177380707939818268724156010526827496143476975255453354395839439221706387561459167239184350553097637287673602898838829342553453256056742824691507559098140328860447245092960688586776560291209013100101190151929121941254384566270932878723154014548799294406509653934929530015073665766573498763687033863004816167160015474968977699758079895488302547943965144601918433470811499272370881607742893145284217102623544032325115333049733580031302210263568772030425160508628798303516350651405144036940336779622024419384975280240425044942050822162669255721059389253550559177241675918956000741434084028987713435551321869629542651072057498823616350533492895867725571725294965383109531081575780417024119986243033858476678016496808095597039179319785627863671345647783495860786496862826782535494424565838669077538008940884540786766298472383837063629267924003534963835917041912690632827987585593632560920338613298609160645618914952872379095181008979658185898137087638104546293668683873669954372385561745060312045749117442688604669522584971998383571769906841919743008472181514856285831153941722322203271629502499954959482937442685409162652280971295440358764194963301904548617106651871754607605109951438241966495571333442795070047271146619448397034495400725651264289212897043487812594360250673863494091097434690202134185180023124488390345756045516266736892399338680959308904083540932816625664241651729566890738855191122425096466425165397382957601155161505970794178355669632428682886103164054077623864166529454349206854839204963140977915515529200486081678839040989386260877026063132340511847330030798282187884209628230323765398452414820344035034792125984245700528994035045874720077056808442659516065530392339420539378939874448579867072663557031686109191717373748107817508222515033466813847925384776200167506863209271609308833898318163289246977614316409215957483091256477505110614368269145142509662312351987326628906741474298861824785933777622825206413214277311827459832631926167551991434498583537489259230550415067325553292220443569606041416767205118861347026351090165673496534687320800069938186333483085357282995326653720530313469776577709704854882486357310304356505753138342192218054116851131291919689112885620233752068042633231946706609802792078041775578361755475305691534412832986885687792420227603715719937366489111289258943937261849638320293971370592718833379901017031686580111352974019626897274698543076992606474624203061136983475792854745757491696513909438747296935279312060297101633386099920613618678658047417233673534549701689672094264554828919520993388740416484945562508278021157502462907505952491147548894794014010505734548227975631312024860439734062882661306778717964493313292547503492712330595491192643881569584190350053202019349499298720766245823150774558789138862339870930579751613555088877210686104133421360980804348529401705279611498548572512795257978701102683669651348622149596195615141140703947003814875507940172391078265924011999123721216374713401121806778118435383082273895058295768184047552511120414400056639433787086814597765675914935236189691279341833375614398761136085488184204544040288549840838019465543536523395803492761170039543756860826693307598407011997256061309630999884087007870605051721461924036706062294489803962461180803750150203131548886772999808829176375864548137038449318845882230393576786494042673603849675482573882439393358117606219134676001583723966798955626363866274402707228911461033656745379088447908787345726163879849501830781680344806533719033769312114797044177330930370100666292674221350890374268624335822980086361629460469638660230171304467778707839004099509089482293239462580598448724468223085938747829130756950516466315430986329987834776944871411380198972217789698596218587878914734644678574854335664420711230665659636773709749951531772913117426165768573571910326590000150708575012162514937508302008404749082789439169690991032237938857720237485555280240810904728638580250674742305607601016863628546924572913598575665173949452475047856968884896404685384576006632993263268904122873080829006974544562292107706304430128236565884617336568606606356111040651231532449277040201949641532576032907506151697754242819910075719048183852351909959450770309223041897770874140960969177081880516855507798731779381986436927125567791630460917948109136854525545850081322966285360400813728696976482806742958308134500094373100306453094340113216638705846293295188799006938670427178995985948580120060720796702937007137862437154209138250048243532974390405260291008368780385877846868128237340253951430439679309671974697354931555282244146272504683191676386304334753363041406707962548284308063688555030558235528479424126096337533641142750936933707105667917618903385163853042481728351928788598490845620033489222714455546073425489409539309593827840536793801296702387613840903662033863436670599977097428150284353501103232433742253097633976145507451728043172457693234047359273102829991697959785623953398817932544038679425912011687224442300235924429436128084641248688527456992781443359879885495808394068065510683296226762752391744315909733146609954494092550745173761597780390272030190667342386181778468895091277103365416150432614064199397041235516440754587583213821461487941680322328604019052011346830841993021589838883983258856983904359166159453984334249141206237694550776985658469930762907011171449988652028813832908476616130544502918528919545015758475343190193617151220272088526273470862955340019984447553725873246478550451242027517040008395586470340509192136482435078824389458696492925750703988444429827265229915916387034399204862990683893562678370189727558817423694084394985335413102358333608138682006049440081189035386642986736890100603010673939417313833219612924589723029928164606254196166036708318419161759336097458107035005606967802853101894513110926653130833599795379727605794514297390712089998933496498819600625175469247355387457608351377087500514565961860342563492870169793168516854321862194002889459370183341343729723716951338171688717816121316381472210975209931487192841867913094216752598038129774592781631374057638679094697742461199115974617938396530012418727685605733982640960732093935147759266921995496696589480486721225638047658201308518135931020564003587962885361040554472788272238343601623062662801310835840590673796798663400770664645436662425371681033964829620785509296243916723062029605712763220925350076316328754700557911281266857855529911723367622605816639705013631631773401869278749178470511531090718122596695182940374458201590187657618226246890733003837792500708469661731220740750290056002094737906246167281189932790205921592951718436421784346417055814587137811415826078060834131238896504840842064509278878341898641422409112954737087062726600839734237904265391461240382988829968369137489512993022505113959079628830871761656908290476260546310436217102892768885611025453561452716925075518264773405618811792075927660944501619768510791587993041698255082639906672178167759986907952468534254988828557956612185273249516764199694914022944781984727168552843387224073095097726380807151583239988149574628299497031686819463350033245388150315966289036247155969079394347948329648621630574078892072569865477087937239959212541721423671791023769689464732214617953549926733739404763434256031220833226612593083008884576994151171896853501460400436156139180095781399097969048934277692746789584970180946977586476775069125437586945081828803094101404290577524959824968890675637890261656381689921292754506558782179134739682925614342191964963291541580371131828596707784382560507453236686880490828646305173520336206111229184176625739658996748645117570796351060884301594351187533083602540872088442825713731755005257314869646475680217490119092107063827469597784493467672294073837107185771037399862472034333733734967801024031509451910379826019663554594244100906738074345931816650799687054757685674045776648732492917586624339535405893265140629470148709920485703403123412867080562829695093352049679828345458848184076021627709386280237074100608165223725397241866082345377825188021804984705089361213616603234721894192945973854275466494366086251147614756477235069824218997868123898514931031903970157713015507852671115942259226167663994265001436231071005876364865225668229204236063692305359862756304622417170938101786780189424751297601301752926961759737860074856119100472115481534116479180702089120420726229298433285003783221986416664123503655590697002874897226894492171300491299662611774156717208198579335951364922219743002297750292419498129509476648914502083353567394817048248213209279874246160687911394224262198567865133698795521950404444492428100176476251431407910099610336516283573770601417404718300668180854576341252710343297827741051163267296054586873203016313266083352677154070621351970219492495086174220855369176611383752677108292480910755680626196304976578520997796401843650449476225476682503035489314888107375769389990550248194338923948219478562443628406124750251709871468801360842373695385754132490734596945043691522918931820862156728971384511261268566994115461416808983819875094235667770115521198718346256077729516212304260512877039332426273474916825964899771138591731243454664930855068533430206688654725850479723585377892645281251922637829729839932714008871676849683632629759350823145163259969112731503778037402776531546875743439631113852946264354628243478078879163388272496057059144032217245487200100865962796367133956893544544186508031638181422976618614176059482158650354008631722359514804195743239721489156581081150457994687200788707256971276661611284414788546348250556383511855481139906887231255505790466373963227119612309244916528992534648454542830477088671379050640357533254424056528410457614366853090653753543031658106468745586646173995359291147330750309654049736036771480186423045522676902327337110711928366357505996969633366607158246297470994070284429740053415233324600570306788451992739537530424397656895769661334101419156725287793734050892595162923845942154308038698567157002994721476276705252932826336728875525039871162052101552750220555488295850530202466446888258684917200654493161452986171914684922761786609391291361598764503811270054762387873733723192904791613554321589181742066850757156790694959608271726854562601661268062302921397782407322164049263262331608442029950157795698648061370756116032656765028118694418724940742022934863769117081496388428786421965053699818494861579440676062750952064876134646786146459557457367666445192588495210492425614109283472700400742386684516112848827929736688098977866107231444472040948554627289088504498391135609132446117725413873720649633410602668971206035832442695062985555345100443562013806014227642927309275511667932898647216547668769334056764916071595938815975464264170594221356959331037271188910239582691780081882324841858061224959145721056941562478176171587339385265184560804098365833083077527883182786361410021615967321790272216841344292329922339703227122963331951869147659095678668455161070872714338442750512567661062321185913788934317058385127505978532449402042848444799675250849323136750464856477494960050497071915461298216175070009167185165941098287828095601291464296082645216464272644302432547121201284369785319221521584550331915332682457136612792676278058711500652751505990688562240484898972936231621917684829421420509343203306622965164111914516578309580004020035578312459013431471427035717262092242732351105316582551008347747891425838261058268961549882944043017241372610756479693714620245372446620885767196500759688477119563794426781638740742012117487062846971708364167980801479363200384748096216088331418097316925555422278905552031316368869232838697520543809334119935499919311663572253155589962972920000585937730977106794268876926675431176422981098852849909146653584717027070597392883075826590568955531360554916175257018629152986344528467072958763085493240196052023850138212785344082667577966777742616778644305296336537034972774489249720104741363584902975196940809553278424366082424837884402465482844823069752262655424209008468802918520085173141761165373352631888699836041179994947560111741281881061344836048762199391028350179975963105386376741374335079240436496035628984321585599462651627435463198236247818088077680554045418046212006889066671744566145107591713077860676035339992312779544632217369238701886964520780630104037479705738500459098146736777094483001429348288099537679778744774579866320792239052081207741343942654298465052376109869554026344356468127915715278505978891872067048413400118094867690628531259736283553915078054818449370926315243065356961495676425551288459896481289930946719760059581664999980482087039436562682994524798750896531190217550620079731501756862360691356691418780298143437954593085721539016346515547968497092570233653452291394734727767735314588301400937226408914686171862767127810986862518686086074030959234744353543034769042660866691507091432361618508186716703106002180605701604903574826930333692136128762570764381999611348519780676241849400866819005080675036383802429626756214264494283183305574250178268126749116602245516275393533181712508764775329273643376798734631502756163053116149145250622698117833131247850066642014553378399422776139484120962648485398687041010415653337785108251603110295623452924170943730784845606028455542654730600358706520010964717655240158761266998903008350744228322131496088211137702910986892967811386719932926639226165951893744290063267023110874755844202987987960194010162143614769949442806517619225369842260118593370333349112114296742310353880448826244538719272640716126258078853792421049355029801557603386486052049440661608888202311597521663539116464263662006515231648620034366903161357007920827260692816904889757655160716459603621292804190909775818073818859836985717168012302898351741414693567109233694179647522386118783862553539382578130259504748893149660208331984073282509889551302959792544541108841735077611901604550610532581475015571980529901932237222666326164308584561640693525265039495288097837297995082495624837045468764873831315242948856883516281017828654753896691011067160105863131852269052508790618228977978620070527883654553730498629025302778712650934569029053969694732092574042956408290776817028675236421518450999647491177896202590104177320632682251082314549644437310959397895761754754107436600512064671696441689241092112595773867631869162863848428241360377734177401832576242410094180252188066068500730726207183987757246195315206627911623078142941879363046136731031339610481850194669658659987394059660275538413667007563037235216136557516896086120267759990830298378033326779773316033682511837929824125512552259090519305937828700084752149645188723389349243222449616126485869205432279823247545388704314444795862277954349429332099525872167365040644281785103204405021476263214282962322837198080395293493608108235847312055030827125261713344076961140404966745996825267413873882109607016857239555626486522559018887495160446079332169873592922872702120332901813023321179014947925596829333536083089578920157251159477325616637965117119644307229274847555783147786296005035950482347547476701723643326106125205272132117158436397213347908729010083489897349692680466110976631246575061190189330577874544153467109193337668778807791711932641972650971164324285571001118230177056082623102143700692329546170363857885738726668498711021898797421215790512014201345571656103441683065183993694780109990805450200368724995046932335871798030292541587133906911061557564097121223833851780057460660705088698069249371755900257098204034497503544821927500194959935202553647467804686304235280209972614809157911709429969452688994872892133374092131354551413275711079615743320825555191470293958474656175347951776920675946071932332846977111111474758455841807847939238594762279683149739554148098333958997285319907730586920946056452347229303757212676060076869609184106009884487628461184803543650143796641887359395102981547116755474213566597959815176486090725902868621737370326275932036337989088067764131474101660436606219870073683184570655337481387521751780262234899485639522767861322241316551555543066306415447016584410139616697743095081581230483275886610176236944596921147761366723764727453542960590683660238336672794368674873281349943963321457307058219366030497090294910097124687862163872795663625839828551441945896305954226116728515808610355904580791212513627572220028690565131657757279777480063508509903836854412773716550605535042437290621626877113576854693130960252434723586864915552331824092891372339341281769067545587038740414742433882039650327830643337289807235853059502185405407901699425646809651962300970074951298768612082682270512681427640385023997664668204955699280006982624108265659919829099706740081565352242987848059614625406061546570194468864685637667044218332857234750160577761165573651410780107951723729981958181582905796600469375271092162125446039059722871464473255023631351873047887772580885475156202647883847790142495480044931312971583678317538938333966860839243072587576568127854031535969815319382094166080341886200373363036643234773764011343180048058515687343103595663232242208519933457851649839040847869233342675235991440833865565629860434949598529050308132436758207966124713815595852405760083231941650988020460712915501142514238978473639201626626489609260727844946340439697779445253889639089742012217654080418999963570552873333563757993500123134848082087689318760292541828063627631384494157359078262703212898750212915739498130471664817622622662051880488564119576301155363243503906966094674720412115595386775505803428322364238673987856660714041949801319427760998787563761738506957129294248491557583383024945075829204894687786063316858525349231091744148060937568618285684973311859859829722754794867350865408693374249836642010179984041677432991042803692516297118992201931443742660514178626109970581665225842793348890774845302183884569437359500477430470992094890835330508905726745563732357810701380961602662184246167010516956015851757173030349913319678225646683416364172036723402619316357700243958010982226338164071885758993134325786532601890673739203397199843672107369233728262372029784204210264810301571449707184842770633391427582289364895321080313127507482087086784610254930368879497255243302771313261100849804587519519460958560856552495404668138732112733719186922281692385007770576083847638992214779343470285976995931884179544825514604924883545515038047143216413609448903497452331704002773255827657279845796041065603670625837941237927437787966128698889271814978699582933794404905481843137148900491058287510683935468655731948815372745670753531588297016830464533141482863927635273694723963511989544882134001087350585776036674377391258959841224996534844971413191086828394390134049860698045903798637107921699558826150967165934723717616486521715681593036876511265903570458402215507990498651476425374865253612018161736254357586539575755747409510388289514460214115378359565084003085584924669215582979575533209966222564315786555860588286367040479966364596476143974328467074111517045339457997645575443464669904056943135089265780588082284805121222713044831803880803112602860678238432695665088675069598755448682343756273587304554036534723848920205987775331932649252080268347751589138544892101930810979308450087790545052949474569179371414793911509168116764931120186357225665330708118702480923634681164150665684899868957146670065228315917473221019521941288225361971312745722989672761719469904048817199156593723693708468420308437154927810547991721361630376827988530540747136780978192420006750793703622446050919204265874448468374775629839229655354443702406889245760742404938795554774613660434001982772619850591529489620438238242366336978751772779313982566522864534363711475395966778722871176452065169462297075307015023876371073518424753732942323145805493485694203899673145250702069497427937990799946709246214545337840172006539143617839949351860159437682118881445302011652495849850822120725588085850626497650965451669843090074786862730870772684385054372898094674516410231574233195725732666226144096726457630867254022613674945592235461696387110768274362879879909952751773470998879361102348476051129763994824458531177595560562530834976586112855993708975057462428343304404402484422591798540180036830359240540750981959080987664213254317512315250204600173120026759288623098949238423588299643061499926624090286448675724576538004510300654576887455456404593056959798104651850718040165564075843563186967366172838211270194286913202697219054537845955794486890006647926689547630129799160218716886686801276880292030174886699054990770647723936940429105551525020103153584070189696953255531121757302969347982879155581675149633250220288259386641866233911557344181220757621296605944946545270721945903913464984777390632625747679877695870810184848839151125514474008911626086229509553122332600690897369558377934751381703269845408644417482601940052121201943788025235666917124530131964864688160463675775688020469573555486270431138068999615286066640225917869800694387300247477172500454528469993578011152843189379056723057502059037145624528315405015509631406645206963794686340469819011029507507100713024794868011357288595618732484620846424803898524322159659370986421306467015231380208731594297304918966528157647498045939640453623813759288854327549818889045504472366436791939815239793569289289147389756484068277201879211434519187153891509160151903054171436846441288618613261749359042546178258198892723552514262739636564122563959422561650361375705445955458075764610714942090982439350610855162887542754981679308960911240339356499139324990244826595912266456963550993614618855205452236891745287198811703368609966619137220899751917309387786899030029007456038760149565922841495780417180437296771463072103601125674386438355852677347536996490594664047486664794859762379144963842980014276720963180270815345063231168099512905243504471911202267891530932981716218683332914332220441187942612592241282625325460694858957123234306728732538206597509072843367875145114863048291362667640201913755042901114594049289863863471998337336140110974436381218534346764505180978892247170373864531412840286392634690328428732543120447145831953988316601577298881245195572812776461824826316648548363462806416309583724441438953520150744941968101171905451899164211310048797078410843282353129022469842984364427948076286597628012265051216954873703337520909608316527865066161096952581575819507966529578526343393547889163555493859592115171438086179467159690078489937090897742104569213531272921160840805275748066168500084776119740474337563042123556950838780709724989382783560821570530865016105307753461292292577320147907144387435899045419364015603707042066013731982887477192940639216547061625643583400696761397327802964706143221929374355359518671534554966098154377457598291993235903970184572374217009717164100384706912131107395096861023623095169695356837326392022543941177782711056924022398839714673522107897750934523082009081229736235802820884217601448815510765798973973477133110644665071086244028341727876096215654233813768236931900079295038550768077321133969533196595231778920363511633780787719804991640764563567605669206620390515656206316452374317037357760167433930884067374383621578990376915884951187948501551772695590386944436618770523871548572510794036954639668101886264433110720206827623090589050880418247519873999381909302755461562790628503324299959716005846986295138260842214795653181618105548913389919188967958637358175240608202756082434896853346413977138904595524950731898072714692981280572395874949789323471735378229440843729458540111443225685719200677881816190763152091736124425110417316922315361811180606744027752251199018110113515745160011102987915426082230774335782918418934206056929622251079138470268612410833628687251066705021546544781189035830240986364341723866223413921058320784067575442773656501949553010964563565691050737651273733774530690075840816775518982385128550579933563869994907739323170887830537386789083363459804853688262882320279823968908026980777291770791598818210683662171437724755962736684140299302810611784763955109417171670888647364256687121798982727247092398831432305157490740945222876485218786430504828065894291803669161309507937463421401029394477429576789782387783492009836527005445222786999237284325212084218315934708262909050419581546652553515594169692263803174092142424722683907499570513727880427883001857371762037848780134424108923542400858711874169272105855148910121725748210251438097593679033692957099648095353720589744391800080340726048569589377773151203572810188673842815484690642572091064003757933322664344135928087171365646393396924367455273724753314963560228552353749548914785845350957991910875602761168092806407732076612473595983866597917756546841654109769393519504566331495827640273725520357523989479002106585540410315251016629502334902671164005006792743417712588796816724509005389129269024923058284538611094233786001542772890945843445190072660647329155285330856497126933994227936850523304606215151069556155044257795658360957395219835292282776034080747542830945201565115986402605640146198574214219197350923595513820796766979987538165950080331810384462617412329069748868435623024897155896644220179416562797916663524366435592478261914354531220719124089343559983970257355237408047521129080166235697778255244947056402990986507965425913574881134832586189557652581035600639641218013317519642427460724045923084637802245912051140614327058991651700374347798116297569165900794341163570076931518781599390437876696170459836802663065568757332295893684161661725725798968863664667077582180929221762891514382029550269512069551838636977726727404093081555233417700060553745065665507260329463385425894217229095731121713299534821018461124391781822645749806196187514972882579047885474867641327565776559183192039811320181224623381511649369448899119400438493565413966304379086740105999257524183917248056082333968992438505181576088413576414771868399666092488893466693134253843233104178987301785339467637194594287537494331838511431946252869320364204515485673071402117760689179230279281141709286243109568432966127714939008171437375448570418221563164387013411500794953580265877909671203092367207251162075159544055606090519620037803685201637455957067188148636835309749450376839050045696913836058915996876844483575199881147045029120611080601976627206667808402967002075204784170501361967305716458211233461677333719071153025881895415793321620130772509155423659286135016130414758597361219416801693936760477390852857517527547063419210937982211523269098841884227808873641870898946922371234305616493582860561114398873135235983319473981850142627136444781158228112279655419622604450049440740278632706935667415705112082478345519707025667912362481870687385720660648770413764762978863285733606401611018048676472565792111303542410321686014550699488951140869050414730414193766177107655263265641411515722569428050255775058840911214923703445433526133987569003290263119453573026416314226374992053583786502475453440726782388995783106781530519891025315868741865519979508485147379648363266232277174038544733839313220657418835201547143471771361039723555211933510596626854916478560989514164880839726474796798736160994445175667845292235392706017574883313139036077749498619800916453239355983546713182464180536504056503444491753177476178965025538683642119327281593851047772523196536613295510630060427179695087195699154783335594123561429866547143050383086080498190362721856045217730658125636711872874951775176991151214204331214689157956693953596030837658491669499637116864005364731365743386185293976536643628078383090313478541450906131656950453096672751372036568276166696717921098432482853026981655251227667551436667076962461748520538867663935223278439440161763495799488981503619285235406148246951471151190728028903350037087603155454700347056090951043660508889186812340201034964426939124893792911281042636265706914082935451127635997285393996874791038934456019288855624576529418087954892555653216262109651107197771610614519063197778080412526624986560248632277966754436646451151447023258971488580665714768120291370512337898454763690602793339194402122969100554012741391473554329766526385856267008260163672350177253497147259804720102707822592121850187011023906061038890629870712648480303429177027601061909328502306751194773601204399322321877249069901440774992116252158728321327238871155466237080903047013539119357264408989439709097907218570480354828762674117808930870663863386950036882423226462040259684379350974389308006997096259170664691319201320619415811227599590720259151540690439559902556273835268692277907779500027416096305999752218292926862743624991196739736265003983064819285617249992944400241608478770834871409185059687882926375986194249022180730638329654810922238249636998052531710287613546408960716735920181714821712132755046385047513191832352230626748790568665975179104678152643703741613354853754204386163571089300885415556102309579072123826785060619358995777493037536941656470434350104369561787358546414287531307677217589314322700799717650867651419091241294801544993386840185549217606193523556092048529589807822330070699318266327044605198593351978743423660382202944262599546577766527740587976358209701748410473005104587588287668760395603129901502446950594160056493556587948554951797415092880154014249463409433904586204874547242418915369909305951182619691646043884075424455767450327086640359520665465401750898906597018732008417934320150809045447571537538390629170650159107116627793565171179634559731332827487734095504601922835230183081997000482548823054444739301422652350998551747545686467209577271973859911607210685534498218303314596004245831730232348452627588163556243216712815374162903473816677626980854503043190397871221728363633421323236976955673149867036350311432850817865853531980098674418501912218832455061242426824613750777166605211864537254724306899689435196731639812403431322111582202630487311055657936089250072772519970625072493929636678620170394545274806954349047430351618955946292705904072151851902480181637291429482478518320756413738383257350439160782890436293241452207305890722034108290818339785201324721919243089755251567429905281869080434373758457922822535490347218863051716187971164304367551348159473729276060614256274127404930660605279571273084314612622645814725013629879368219512185261869188184626401285523733240934914924377782800103167243368091937427279510196392971377490110153406191575580733380714707454340839830490980022597753886973473979265917975113550868541174394115834327312442017349244262341657129104846907325411381139183897626356716207696000419816072444176403732276497337507519830734328687644706052156313537106625570965050883891000321036946034487785980371063545746749365067171754075648140415730765688317498729026288692912109914974896499555266846948132917916023106367964603393223402603347393472976392178392541557580650730704130188491167367070543562018896262679982706166161755998563958197256419525889452894352817475021182234665074862905111890119803954048063307346828892830621744882743883775949309049694439398707254460143581272076973420572752000529544529383149035704249991338070193942218326005079851226776758661664153232583884694810882331283773397501429289641486390069345635748372900699556362308198467517901588834533189662325125800301393413690583898449205298888276522230509394943376412836294339313999533021403498590042033984319681755898232528391321878957849867157601062813051469556656124482575612110300908193936769795908316199526789617492910752295260888016139923465127977833052455018774764297664576320156295834895704445645822081899808511155679007264183555337597752614214594326203357607514555065071402219948335727541385672268501063575016578421008931573213465735244647687032135374473972358390614732389168871290734790191705504142181141849495925270763392892309338302973924984886340237476992620688321358883290576540885769006374856697116499849246489516646514456710516166093950387503435969676243402339304672010765714839130865528694814811581483125108245433694139539713737418089574141005323465370217642712121525258097874717418296177807536654290906349090322065383852520545960413867476995189778460478257207901982234626326758415459851333816702697556952492145901261701491918693066406837771275183175571818164411732166983083862819374843284512126188611779669209890910189111661160242897292416998564423683397907786628270078741866552385606767014535746531243317312000808568001623262954236677257001518903434190044733881427901165800696643838723578807279266239667240376000968253051150865406260936359281057482829401544253293880455531803258265458167589837200930116249273749657968875058369783108829751477124872580985919608654864777676198760174995948421498138655209480241433200008398408571651620485249190474385632070029423211698131342066028153235518712645241956750903055225142409179300034182466308359771555377397540245059098395572528615922586518158449013960233153041599236148865935973535955634447671251944933189002592226034988918594676541352394753179233448444908577618431862815717007200519256805212958521773347624427866001416005443847276159173981032424995478316871279283532820650787472415030492318418837139213476151780531561432237357712763174304610293735510314965790399946828784174027555117184090212002453520172768507899465097119147567463401162132367464522417715967362941270660624973612426247382348330425326575629673251876692091292299901231734483896839880882495550720553394531627294247333041460820909110808093285113125671127115038397514937384280243188991070963041560559005366541450886976952554015986863045717353384992087763006860685998834340690762648330628064245635381433289992523973462979945328255064472057934426458843496365856864407308575503483802116609096539502558503706186789901546378094026021053602205412377167761852886387457270045506468552220470500513786801087834009682940196727127513066973838001587727775334026217527892755525224727628839355662402829293273966659651399913410324004524625057908428299529347707735315571591781874075546252762776056596108675642297344479813468493499484534416906399234239444784109514546280609786615512647035586636346719867454166110636839973517148632101442793106562494759507427371074749992685696729984102903783368488863081797396810623960649925958456854964663305532938227039803102549469038310239095038057920096829520763185353460376675401116529305840641147756360202776186074066325312057669989759347851067697562236522121017295744904872261700235737368568495011301970593917695638024693100348425470940802759719288346319868863717830970655296880354685652331541084339064120627189076912611210895671614059982693731564444966204295745076562128204753340480045748547151711697476484547359569305358555733076322286720983634433728273218562405032801406891441089330458303399016562134326823813723004566759852503333050186421558293454431224782342161125877520081469278508634806829147946581127487189231797108779835049144835422558372625977436378885068914731674916675167925718776657668334842752486312462576081872693967541338371328029924367405990621331710696380112127615015213229387930300053313163374712452725021603491823435187805640008793220305024228823915894593268435391572197235517033514138364872518957738409061907582248332963180733018725173575326323177483081628135669040724278377056372763936284378958864980034136179330640092356705116087891238893032746013883849232556962504046481531042114689324655469844805830070782280265569888969353444160920000790416049456579423610482257240751116707282168311055921364137095912714402935108085658731694126252263753043989669813373032108580439838642988384902028762579378746734592804089188423411041069329979077804896104100424019205775737203890835874099682193274174111133981058429903890601361059719416276276212489498584608626761436426932134299623117304890802019298402995904529364512725859552575862314919078128186552001741873144223822010873110704091252643564462820735409149888706893997306336332963439747774762424989525960942591825548525325935471174263937405884327773623656889113324238307582263720717493132546929337841376742249652134093965297794154433544449441672466894635473440685982424515470854030191096520596653421905875960278703428248685167938166505710741244916819780604637152835766788986608843390351971088634002293103656451982061781364196486828454117373236579301543210856757702247831428616016175700241415344437474162971135136856788859378796252528759862881078216017094203988358546737323901593381236648132679793106589328001605754778216346762267446920229526644097979914757435288293305838591832918726053079775463650539320449975442517304067155751851476533548933773519347429133918519857854876325258736904842335570931813617287016843959760590214343729219199213370577972318818101736150879408609392063595053157951766367146576630135617549634301024482148342312616212169729632611513734688024874999752296331941348829488309100180543036402936790911253282742349101655038550685605539862813973442612373991995459669460512774916175368809259521742571276934484925859713574013605644195945474767206596364937791326802391093805553602994615843793984679982554695349443252332202189494707695689878074509215951875728167565641519464442897725395755593785528375790378308037645188516907881600426163616922402647149031526147934046929237654657554031789895732229266794544723470541385737111245683632625852072896056783386000431750484742843142499541213235121111705067648416826302054979537086867647218706481465867826449266181560502245208794668155861691265430546190274497827780274499577721446284924051099738549295325319484833308482780112607698364409807254908584687430319568284315877997178073601035581257581804683175168507382114361807081127987132278277743198974616292087193600436157534469753112464908866509350486876523713509792264297456251903341999314318896079604446896066036943987288581588903671901983182127933401323855403598921341798346989442354293936213353572883684743096537156176136650488475536671517996596411290421830695565953507211009146829892022828237665989224975862064843002977511096426825117409336308080649684797538269551945316054214551209701292624403831929009055993433153909395113547851723743482212287371858674462968089319211189043845184411497022321568015800289629165776528166339380029456794990187569845162266061269379838589793899866739607025951475070597449554501860094864117706559538655544578412277804414531969414134770618196847183206261166240209986369986533604317653276726653349304543029426572395584964156966887483301936908934530364671077797151782879413672865103130717676258040878935142693173473647476699541020236078638273491727301687144288793165448554249506772263270180597392030996920864439206074044665258607405964001248940458281636036337035216828739085656407101363968324473418021188393151566966902433746329562118324695916108361818510268638810155829131649505584308434635198270583120446136007888483909949304068972768162432510832147311026926547350603374259555358740726106287604690796199130949471679021436160696747262380507150241333868908895474148935251027068800293794037262432216651293980757170391556492830880524340135324656851924838964844238485066204271624822945636209179354079348233280497578483391182775319160801629677930232808601800397776929733428430904781856600801532258034815949566956258548756526197891618256129114717571207202860504062767131947363453692773613917067214921113475407802065802626065802468630407465543504798585962297257730765041212220243704120424726366952817052928541768902307600503277652849265535584936688786148427624440921744915146514891216460886942035401238036831034951157641839146562942111497954080787105598813430854066372845881891223567212899091452467158439795477986162973694289169600034068747639984831923663262866921888159922632205736900261767970429276510595008149609962707183325265515429123028507913055474979947215491728959739297092049092610684740559450676135535105722096913368562890607826581510413667411198202932698468573313022647589472355860761331208468184203113669971429903530020126151430015371142989047179059560515201931250390615142272603343027595550113698520295518573633656806760304640069361048226892315677338285582804229077315320193917495824274290778048191977653317387134207321471992529081143095732259175894560906706685367517079262299148879349952792548763798137045134211112413130478551373071446445236278241327330513887878761006636376894021149813488107328156677367303827077220196574147741463333168569987461285251164989740060504564800105208402049983348846549492268549405125179617551519767219704117586257752680841837201343239961008920435701007846721628016036618483468866061187519458377477103733329534908177423484261479634067012423544765383371151852119530054843471465166895720775437559353668102964969469789824680495473291282750430002656999271411621105238775534807830358532539270242258466951093331471560877085643252449471539924623666894831433460447472039051908995584378471596544287892212096039460146149575535040837630842155882408466178704780341010303519351558325630188734859953773825157554664450628811405738893039965744459488949343073126624690741157430369297078520623240497904923091008686136546335492692170829637135793573212264014394422100914442629378883576255181456453046281355504722477716357221743821274190115944914425234379275536790271427538879231290838494867956869022483616720274797386808074732619682058146480269737525737906633896055425029014783312769958713561956833974177225986347446830913147712048435040215037839282370782631187986648416071542731637037903332720465798371551367427362381513320296621871032814377424116183076644666907176022302347445740307422043804764652570556955639416925447470448282606397311432742600156122894001657381776585512137765988401587766146312932112907341904165276396536709857024643822164142978066148367518679571222035481167302760214140395740959889827832894167542036600835879853789231066269155769810946103672766631037857056902452365808047905982342588678236014143626506583015806796524102800616444721848405357328447742316348648214437027966511283668014560040305123098070913950921211498863790629872441496981746233772091123460015985657632263073261841259004315296387537426781297580703207989245427815421058964517557963528040655909192928708970540492827493687150247208595571490356592830988211953260428011757595863902996082637900125584479667000253039953850099945816373817782105620698841132549307769386696199803220151215740059320466553683524132571947020678984773399970115172359133600653070095550305654341752903468908644890125376091908873318791869064697543800109109452694516972043681683162222210692126624363896466585886824985273012611717921680878901832674790146136829039420071495687360233266139705717734077014298591608879246728287008967773173588763398377076307131578365364268929646425482466455306828133369198516680642330822793569838077454665404058899512046107635181149459988911126699298783835096711847392108445507952658497695611316814536670398494473881525821485052378163073288075727832888367546918805082715470642928716473623412227886168534300991359521789671014512652682370400655955832757076786253508106643990353713944674129562648025147487254243754673612206579430638999247695943243596723537209869913615467378142178640466145528146956152665830273079342373538576728108963248636070011739257798310111431774044290241878401173526449865587271848809313707474526956981480957710142784556142987048309395945050212418261713139206994610814310235277232010069509810946268220791179294443153696458755109518795533269485982513877411014204986258344494827723011481577545524110657773833043300966251510907915432365861322384364942399016343750706633415310914282143378258060311753124104356344842020683658181963805879207650684458235680325457545693849803779412509697395236235474292505117196203058576271260104653007366898711596163374344662443486258082582063509852087405896724512430687438627597285946509467126825073899183003390285518642988922072010452728678113248135072990999402814586499672690605876552081187680252170100016336009917866908775232267216613157809067630746588020436141953311294093655337431491720915343115020042166069352239297472434643154093023469001023106060931145290076590473042031976069886129177111217931853424385782582828571239212381384736717367812533884192344035647154916211179794035378321093211599279647747855903455193944029895129571921078274525691897580437561346834939269524400088851085758753999347834654542405308623213528044919477058010532676466922976894754393987693764305010263786313106951497741703080018515125611738640468921737788647753581862666236822712912254397641974184884318558668772229834251478672844427796569399825841369073400914095559314281741944400812184561569298621377885078184945437712848651545260200291549819621524376824520870486834653217865577745638513827553623747935270290844844676143990526176371141755598704880810268363775205450205965675731144894407332855406775875968869892140578712621950164623565742962573920403030592232877546619917143001986857508902989703766981948494647966810396448122632500048452441332806086866309694129399686717912947651315752562640699988319982902143289092541366480489235001293746188742400252329686589137069920692409219269442750411656907286726708463047605053051314463916616873511909547871488999837847066916657618237294210872264367660971578223108625256272825511343819969246682979439036078234076244013070877498959497387119138571544545534308030672583985627508353076662045333423300677077953228440888134490960787384543447620845595811920493796532605837818894924930845429946502639953230439842752515140252482218099432137680476158474106253884407706481079801874451249384240015145349531037580531260177555011594693562455113087019772476442346822758431931077752458707178370975282683446462412025042325721449358221727031699450759018509249516255449977363267160361714058941030340009405341969051413968932360022766303111014804911170763299877161372816203075126317343846068476625640820329528011452417460699561609594199517717901646298446360394810418433375783644118196405267203536420241862123839324247190162471793612281486422247180873088357207956875340495280459482186200087081425972166094713161470119653367177232248319360426855091431977304523334267422723613102211336040616236297315845745285024362787102406760858892887600453451653355270111192731619626919292757194832562412591253439965458211989529479707207660003371412005783404606648035327075506138649790948042299367939298736384692079418990007027548586288848530199835092664065559490092311868285918352788226101618238602250427458607036927575614246278473393993650912962098200806170979541646876256999033152002763477778733001190022300505934551666869113608696737175314123678197711497965814759407465014897715803065842653376164300064615695972810049656305554864074031997687907440912232506420987043096856651806627162764746098388724138714145661113822394155226753619145487296018799095354941988156124330687368384213988753150398797675332212205809625581278475679032122092347323759098998917820695466830476696742385040979060357450359050035551733800205063995660465780172082200579105371514130102563736442321209363112903832078034568069116438669897320324894455607515734100457612315217797590958747803405381945671016069678012399505259341620177224580947519201406071251970987371293154772508227175955900152018364576587502823720658401697957793635930964443975873701251192699468174186613242977937648495591616980414430723075287596033283984092820480874729057275963918367049524813917474032914804242193427602851487059875800923506642262858816419132012603521226986990632032287690346845996572271030475491147176770297063268119451562692249570472801852084566584460029224515739775664922099615787405273444609501909549263429401475117572709278965796336768025284380842198570563492330681239317788419526090207105841900908149252069207835167448458917465544951840419582478959790351178687549539815588834067177113965405463511363152853734018597796087429024104074019966762509519970144967507911085642373838277953354133699111483950656963086752085942426104277981508598845901776528327290061445103535501307489116681637194467338551427261612543776801253790439551074994456990271403923301149332660674943651551866650380749337774807201473678325158292618490277844764371154073389836517645778127710991547705617366336911080271025160914107271098444739026742175619088337361232924854498836221595877264649251835262990345025026058243518005920321307187614112460881994571617107533766563279549838782349398796328593935150879336620364217742691650242178077366260810580312725167986417063236059016019421789528141344481942828074352553662481490258615312946055394446714090554411584223854155860509564613034600055897922160122441420539722974058003962923986177132737951401702442831996721355795375346246940100714682527668004323714272784523732857842757317525827376671740814404998883913078425800586767556199489849337848952169326018106057894864005864363182532452488583553292449766113523799696477511466107604994749778957756248700003413979058794633301803429937756805385745350260449758637031166597916130593391790740725502293499115224997384128481745490683244391300651224502948058482475664232000644138767673841867840446795358042849554625163558301716937960953475371010749545762185332442881856002216304022710082650059694788082507061065939714712517942845196102615057547701482146727033252621523958748583152037998551133224715031347486698304263482363217817457882518666716633683671806069440887937798282568635001474242853523291193476635867126569070433704216928225260887427610606943704886370156696842325665334716877795239746673558620657275017388079654362646913489440115195230247101148695059869023846866562564000173792517356119959644649266586488712280807516391530778186016174320561277721966294036944878969337295856127778329884283855329654538339448703632243104500607734541587358045949818359929085894662042969002029323411688299315612922913906842966079542761257066962219748396029826418416281194501781937588277144345000140459656184424834763378505940001578731819522942770023158233673234926197279549045493949695803663337470087307147686712075235563894028123226442456746179510656372325658230252139645842746053553455072361806437702314718823508358084504420289512688221437436224484989824701446629783224420569941511061160435251241682058010477484635823396563508883263837947735186422636403735451988494236285777165572587220067829212184197080588711648465323978248259987017391055602716399672123646119623802999484877748271623955781156976054297606264038240493727180144977252481963430851281559015610726088524247835319374724079895647968911426048573846584982913568353859622783451464170624086924141851812872337990284212922817181693947464831501819053316821487142363288815674437657265034247082221432085666839182394965797371700084197080062710194853983126333593538443715865936122497156334021071609364156939734594670182662989499751750503877045848920928419151192729883210519975814195516718187649802362268018876354747791160251815695570625149677124425837329487377567040358959841757423168951919456369314550499535920116938244917635219971508733174499733401863033915991819009308582023167233962317996142227711230275417586430836108369476298488351406327520656951101158116032512791908566777059511565542801691120257425549634747729109201929366001449540728211742190775557634229024793006241845652898491751147562196588905544539534400322886252089692766278451791112081499711854001818814280637819022943439082193984744516909782426218547649466826147879924063863736264060913358938439021403273464174370891761157536536827904189233768504023113598694454484783064198594852432763553222981427809514724063283134197484193899963625537533406133548012052872751251887644623394412199515346890283324563575354412248715491849082920603930684217342516974093884950797572163777131474963209701900373850644168140758971976005290459580292476542898721426167901850931950346767141487284705024282985263587302292301036563586342077254394620336574401934759481088089031869352413498443417775569106770347289478447758729372687526490404306759880156372664040688841972096003585393284603995791747391147021657690938656020674929936545346737861091217996132861628498982783092177825037459446430402554337750045939822150493650128464450862828737037047068684914993066365100645015071334126904571229369300618932184015772292349409827168477374748919477752052614184647719875260967115433127917518965391526088689602584341542574980183990369907537286428943985071765997125774327569380358847894140571743231067614041512323651061890314356133187034493314617570884401115712505893849254383273380002340926869085678629536203506859493278918259266368364492512690748943545885731361502481292254706145147001497562321757475546257369655955823168351786229644619003602360874603174055759103368796305363090703097374992739829422859557586896883576919280335394117692431996911067859480765626372789534450049995754389053996931583353587007044645329816130178156162132728354936926893753716230210920847430317755974765453534991048569260300027974106816155638246373485911357101857048417918842966208183372009014515899925811885584917518468438292458164930261196298754137669461864353807581188853654572326681793647437273277612200965158166761719544959613700805844176504004007564056017722953004931702553551980597330156484936396870450252332610805699477010942772993262427913007881064093908262935623431747167185748559731968898346229280402685712282957840237417794560275824562969993666761005593947421236910486027899517250136713362804495358646624471260495982207995463813322217386284731631709640945819120671980740325524423902635545597609629294927065036413299135254798196252626865661079724206231195488674840119813623364851874675248710510616052182791705820356997752952749894154005426851617820931238976358760514380180350136728173078022318610624501520199022668368903091551745158574450772281378023144022731552284927418198006163903118759402951247210778083571283353461518301697822853925823730818139892524348540705482041930841876825375534584439832104130610207415961714642450002754136315226572093980467705648482887724716873648606086722075741007750897967193209161070035367186621408168179997291792653063004944798193224165038650586752394339882230203756496528788529760479672118083818187235093858547488338409943723400711467024034529810444729875737345437355989283904572004224973056983489187436954579551516342609544947311948602420313858618266089949655204255081761037192641359018872065322097550212487033555877271155290033014176014766282056471022245112548977080703227503848990677784144352034863191196558388110054232045540468515656950422170435395024224407885429806113640621310422313670672531116324720071844916608110218913791601065275716520845037098092614231653044522225518368319029698286819104784044599803332570050631603183546477988111188159320170418151464206625233837260363028093441211056012577363352630419261567623765965325390141725076742876333304983094133608776295109618746151622738513702607606432473165599935593654745736349699924329134914068848926951803188175286683691929636788979974998884341959039605828405842722507367498664755083630664528219653729362647357661748589492429153711678288613976534144638388902686488126322691055783100136889214355813134582796859532336720196594199162894942585158223836888742856120428508684877484180074010220649300006382158624575323920077721712960147087083932540052731634166743143228584958078148054217392576411827367268737637585295831723798230292296030253478302598258078192303359551176751114305657434047031657453318435999983739261182110913629095671837567287741197358220355712784555535245148962835125810040582928455616973882928291980940751425525928937967692254783887486538175496890005997400391823217078126710498818388265678219544333716414600694090582783480922520745417803158375771677338617407833846121845518854599729456494589697300103014126701484313160673010763041670259993453619791336135257838671774117504318100695445571085146477734739362752840675573454985867623027428225097584581196789980752525982047830525147294860630675032987653822194211602674959908096710626298820061175744697742704491692848941841879647043922261355902566547241968382998751816540832344417642219409075811515804709239659401055588396140417746615976753778177949955322139920761903027882440382257094529568136675228822030657195438539758060681436244700656965762876578290005068595752694540827331999090359269342653964308982599202793213314321996111493826550678532898002369673025137224499200137025636842326975813744253704487188860474291374475430654272789104664567287614257376210695353655890863330675502110873772805985605796721045907152074420267990061364895447586745240039977184955229158504298758380920679780533665462304742660662007643269427072405895946640347608112923284978829597780156447282385688587403581845578991342200295484202066301742344419432999878263844915813034107794424993190447986460544188996040329531216149960444460392314594637946459445281269763531161723611375395491126628572110254424177440790955728473647807543589980464233915092681694354388539429426537689791817661405025027282685424416293770037303389734290907000753356501353513689896012963996971800804953063337093736492248182240729551687571288489948630494269171507160496049363273915233514112892458514769870348517034672853717345950461677944529738854394179900711830438024632216865491795644522957024619072788056595147678821417861851298749459229713831756263062841593415872696660477614455479493671229205372978302293532908696590831134700536685674096408065871786198978290550252343863248035673958032420406541878500729274204005457709470659906980141250076788323631406432755230995486865108453413140194624594727306021879859516692737371707603471123792650429994387240364200284543412095050642235965200910026643259183464186726849142362365268029974338050234725459360820765205016039140188749718865785848027643289361770080398131991970979640623827909055882681325959451352798033881052893519946682199919817739643185748525727863592428069881586016686942114350379628314377137538485850874089947386922758417788781327350865790408426904495192156676880859660583972882962163518280473519209289052983285926823520518943344943558232380255952225358174737180762618740107533967877598696177918288328537869385258500560930673218329254813925110375028158551810939089914992716931585866577022086010686146622230078604915300587684073572421327782371253243532480203448280809302281266335066368231201669373587950334311337054427466460834675805016703156672821428638170880063203699190064137120677048762448249115470152678830668036060683694743979620512096066906109446511734480842316509611921635115839053774262521510531997673123819791867008495377038544177854358895520287263909358279115362176348145251293885053888054609986976827999973279299572136537234846426258514089936603437857326239288560704244831614210370287222375926855895201844198923224572761231740104101758139244059607205170218515593937341722765926443509398597756762298281115156992078618056798567783389165158277149829336103334107955170640913457360482547339767071205622278799809012807828991669900418762436699499087886500560836047240290538371044355507711367471507134899961414768415885208606705865199991308939367548309404217075435517318387001379625444425367642777838755563361934717155506487465783637111553642514872686071501448097053911646215003350412625358610588987233160461017974347791920061427413357750601270480161929136452362983127933207250329450258854924526124322063877243468428588002369644332405437213171016041521976986761336482062690346721124504397994200644088921245489372260837098941288442142592148789915800945151372924197309890275801981776725633339602159246209954371542828175302454994498884963277011111703480552614244413420170609073421293886638906859743066138129247875132404840787151992971641746768954845105266371989330558962535555570151745163587471485573840423375260613182843415523524164535237807715279059891937155558295934898118857789217336620699998049191693535810621554984164885722124540149787028953979778935294044511895451267604151172602403859116079961770068575283054039037321306315104295409337237950836138027435966611065041000219471152532144076470695922959542826018146203168509836001067368508685144130625101185399366370239277984887648631526183459199921308752949690719802036933694293224865634382948354469315653964944384301696742342355733307085116043961337096287868749699899914078486724161035362960289170975918838247225113107811046123145533959654504259370268336706597813472673962320894650155089432882289297527311208901692221389713771089478278097069370721450760431395694382037780882376388519053066629807398623246926287714427220487022497993141435222814385717339053514181125987264017042952178650008727433534920618056809555297664854567226801060260477707436987128431885549769723935263607284996941819802631866283632660714375329786257245264502209462212925529054078033511462342150332935956235429488398913524664087573735579805772771442778924774736810398902056314371827658303963919050697053788993235873953258702999813654633870206478501518601885958578216108319473468142386347633438224733410902776053929387180399890920656533262949258809501961056477468576396072500758733433921685500629403560026456498158614954863309249608559906189291534678131949967723666627385016884752588207199740409237573784541312083589467563325953231881103258730286793616827387222907226372423603615511787033566726336510016018693253429997505925281797770062426187592821633206345095005482958683226039024005811931920304902586794700232762111443835200141581922990823039579711313945784418784038637283973966352287467856887365777868168780180386155107213471947375454611075379193178717104130445284184052782907360187973658265279472485646876060769477506502684105518895900118974011663187925268309422887134604875985404879336627416947802635179262885784135969221894836447348445028899649944428604777714533382775433333744358245871382274503585906389678991760216154683034000736419469340760128114849420177915812195993999993264328046146742183775097432006219703266040776893112767077282746806954515848217599755228323819718075002115307183612411308235655464331596128262919476548956586576129479852805184528477122972511531996512808413492630323846187586862199407080277688619446201293910320572002135877770942358670323390783743301781383835386575734784373655150056092697121583240287357834133220592303870655431937483157153406998122091512604700894739706908188509658232624059345646254379820692856236451508188719407084015209525053293288225084328039816530373812941405909564235126248708627936853004523571850904968062149113653012026914445255762459190181488341106280249955227200674224759528491414879280173275419850633305759700224922864402943746989172415335475436726722101791352152664750275410758227285578689799075179306211810363226538124305575468067367089698769590922865576146399005490422473178082289520530157538702225476881949485478730018849497098508104696401601965447075720695924535970291896889039645984402117938707234457107465478714103142414764732228549669773596373485253059428785702362178773631933706266191566026906972312932439533146692505993209912620211721650584815719977060681670327279920896908846008246190267063018682329659814940780569118027602694387165492224946587402282996469048060611382923617625075753191799637294078431763396763996637684473118132383757253986118866163110467747039790083004374549388598844400323610455191312239211153901686236791212358700358647744744147785278840219258713180345111058296729911049848800715802172244779800430091559498779294659911273530370208255105626886209047010487373249241176823042375189640368727718806317115811528338648139069330079561390652563760524863587641560170966930286129242448557844615974107586549172108819249125986611843933044094814553759693442393308898075135410646435257052553330422257445240418692285591415295519891065958152741271155911340597555279683282332567626776636279205539242716320675435430949415816420495969852238576636949143698634226685407662134400748302331973612782595768048074487342031936720806704048965269222720634377777876430818086655338119326510350221632314864012970073051253155207532796228904792498801547965426759166466928955572545425570453806208223051004921098220171590682395646697976970798394265042258206723612415506745032646288451385466347830186130803368592250046608988010649744540055153746744003475659268737005929112552181459390370361618780743376771119512241762001565407343921058924844679526347437054807417269642176182014417328058801069668661306656543356186452534490731154956615561990675605109428369546109607075635649938123252472824114367403388588473333510036883726024189987414387292981185530170829446375781159826454132858126041297800159039220772591008291610793629082303987698143778571705573113553222788643281591717487320652569384529604724335560523751424915966277575741250925943860286334590363545430214624029616253857401567032298523562955715526166549711877388060185210766251440300537983123936187861487105171468115048040911201973748999023712328518609364091080684783826781572583733475370645830607361635530629026289583807085927897231194548139526362815153140668231355092816422699102294073306516579896728260786578620480631972330627388294693161049596253130404501479597821452536913467715001486517973094989017501780388251755276619674810213744363976531501606419684324005422581394761699756672414238362067574459763716703482965759298604995245004914575209860169673564625896134910225091312220506380420876034928234213018243070924317898332736010311168991985844252790845758593137156950573195354529673606744188679534334222464602551309323630424149880609300138187258358661831034694403170485522673714099730857034550313901141106797902766806983268738131736431697883340500246515750943764015727365666482743836598863385053142838661930150684033573971131489377816773553717038569973381043456746330530242738681750735289951384263352531637790418560048191996533751070369637153201153004064627615642708265281591650069820287687653669532996494596331465787189278807380145588554018736369194198133750616897493633312010648500466363828260037722962486843089956576334394616589328896594417727052166689494723505017084838087378015397054833642391350504176025598931637911584080895979649251191549731827097299986047832075613075986131227658407205747003046683856902625578299499085636205418670355085212711469211965862417799737843249271112753951123415326292473119495299767477980483351109021102074560219787949530434352554517451783974783793847681620548737302680500441710351543380182207676113593644691273256393373358586601956690145167511195205222202634023385515803030591467683497902018852182030841347353795767302500370759237853896386425218733567710866159978903223669170375569326446241347432052024732542716786651019490782615416567766895536692056306698370387839092675200128297217557234817611784303012958032034454389740026832646328955351705579017642647901517924197015695959658339031821107770908977897109936076371026642519402358852049139716218133138699182734253816759689448508448395140052561269215809173871977845044710178398894050343343959541067383231052024823260813805411006928949985580127962062982286333379791732339353636591239157806232836970247109121616276213785026476593648075050618052552252055998141707349239668954020305491940585418869086701824972830232452062702569224770297754137451192937145599566637734024814290312835406925155252262484070911791097002990126235084928583465480728376101122938313831839577715261466008707117063537777585721163908911581676423205316158724963568994743826328621009226409210034698807130396772869963902824927504938512061013238750051558022590444131896754095111668091188695412804527346876888484331155117243082011528935526064965282067721260263614727100705687378391324860219949190561613585837875980414022944847110595234414478918754820721319318226301546100767483628725027873326139017446154210896762655731523319669514444739686782083627301273457188945441629604065915786736969568171565620996055816827618924770850761312465564776016559199350426722064815862284625895134115353534832532927006461272893139072075632182380368383837947618687583380364389848468630417669735219423112136997347469586953572100811594114689972838091883933151861254489983363465042259012127264131973938224745890399185564321824965790398818777397772627675519950298293074137171402313134601880664494123866784658247504539680796071862428732795287476146452309571492979803748139257253729343648692666623211218739483376608739220891929575726168583868770477198457646826569973446429874831634079969683510426362229197721821534453890538142928272543710576324745845098366511896306960688543151949199881953213580461007414959972724643942727225883990127246683256946689083369816367984946083538243432461103482754538585776508934332533838776059834161753278388928808379718652637503081845497082425086719236385327840694701031903164735901269674446227798445774318487088563835919418112775377850619376857233483155616757238092951079845172998294573857761643915664248762439852006927725407085086454513908555808932207816988245017267952106760798796851911932025303965858962828171496987189083547231438855416402896908331901833718707170965015658315277882685493191611996040708859680331578705641529813828502457897034375787429457222398337842956572161964759069192469728170504398964340943581626271903182059383904327031889906146128801321520000062865933372123882116040837472776781827813519736638267614868226084164883431303069035138441301725681293014763585577532827002871980657608296859009236178026592692428026109932601120993788107631020824747858735749053906958523356791030395277910142466235622037519298767977816563973371817786888558190194003298064400310688368406556747243004951909746565515643065229986818921651533687546734526264512896899908072275742992078332609674288209095984712065854336724669036930082929808424900550516419301506694765614968475705122641623216363560815258840113759017960948826073309524680433399748118201118490098543111854562500588760654698845647376225539072700896643622764165105236259152366257859972461015506105640606555011190258458031692502525527077012402074177109807742405792612859557715329070902779711650513904690551926467377427720342499885191782591570814725569827689781529865036007722783685830759090357661538163014315330921966341631243384182473227119678270107812055013533504396841747524403004219115046485687617250779515620607292936856736104550997953025023849678289522291827558238459374537423910453900483033128806998484613797454707428729579918365365236690944277742195953618619484692421977469986806575723105688300970428306666124120366827390601665125046200438458714624408080858662268439759974577427461355632773492196690593408045840448093937167685409137929894111917351478572120789724603533237157659421907261092378786184243128113981585250314350392006104087227028734073946455766706165425868598265438311274152253577542589896233119821861237527915981651206826182632560413125101140513540305243765334555979522865155475058529955898930274964518400182520138864297919365415962464474663326315384386357078623861141698938460738843798530504424380773472389320974207759776184037419690159030449284789820371235746429385989793525653414020719830495492634990728486531397311599279819437408903539723954397978109499037167167581985693190745800308606968663372485252523854305007610478922724196083426668363547682072992859188936594974801571008978093030557881033658923988170929465392060262832647579138419055769729305216421572170310058672491684726023351327263467438171831249635781223223715813716547179667315113447826170735414738919312846845614773379942737098744875938977990427793043592654774194915672234062744600577163919325961277186808854179225068933744923159541997438088445134656739938527009808197819997842627691763206932503274012625988306466048497574965773904037017446612298298973986475168261679521663173097981667050761518428778431679137045589857040971833672497074218265963907574820181565234530008188151033648151380499416363181694486024170845034125879352881596692102039990626132515939980678449341390100181420905470605627204963575211067516391610219545933537937413543025664730175285109707792436324137381173081898042069176658693723588886904482587215463469328943952682315235520307697470843199794358813248380816020248018986962572366950582574349188690796525443203643684928083367704186668521196858190159823686704340394490663030793018826925711170932661932122385223221370300316493625116831226913275330162660557260464256373176818616625805744879750876753143149976818809242427882836106537988174940086103836652520895827301635031649395134447569482927196635150277305816516980877524603797387522499926701233699809147723235567977103940966022897907759466535374856539202134192236736727213914170304541382179662872427142293908133053427675653464018275013315165570430765490175780310352549523566721957357593083390721547383959410205174595445021430861818971311712216588939978204639263457502179795519640248965820348440761841612422785309010005720611954860707188061445668840850126956159989392196238030819709755702490866080962425877735160583173143119232195314079105004707420179846495324961514604768258760451523222699639685945602106735195661987485656786262897988046880878320120236771997294910377950755311143424574088173393129696009796128950686260301352742127358015927933858778809896049700594576702493794998736581513498585980803755603718809047562033148758920727870898380662486238071278315493600035693283323214805577076036381161806394643879117670810259899647929208167750158417048596306291254380549086589370694003763700231508474829641630599231692429576148759076161202623770995406517525008959731600121168837351720546121681765316725811284140375137227856514783759866143678994428023909969153624847075838559030359659977623244172185871763878398347155321542825902237590503956359971048193459178897471226073856020584043921888257438762529621453283985130545866450074507284292805550603052652516971846116426584460572126148569848792315581609392149672256655302704961807111997880461242834476852764787228382276449604435408804247447811053669319482190437332193452496223749136651608416692912872830083991499133881844194370464125787563238712638764414376545980192885022144309719292560122210540449125751898105897219440235794075719192786381881803289729410988672791927157716236861948678395771238797684495156415854304459044519027888985374688231763100228286808334433160195654522608684227945199488729523394114124248620221132597442813034575152494860448235917026870728323318627975288842794451934771961686720061326860888737462378451156511490120343527835846607945923131508511180437865989668541334505569629427927620323249518196097087568398718509657974299973863237159503627324704768725487619705920266386330504753258081881065728693769974745423664996069248124307995472615916644383812656123389288659667711655246230205480674243723290679346310933188531378414002008485311004051088095169335379942620322155878700047397481496567766768707485276652391596744457510573087852474609938557033927707766541065836309308841907860931745694853096720820067095305711357974846707392314557601503654624607878253264592695534183416806585394078714742297198975808111241882851974859929904546836069604885379915992477886904485437548047106452758175061549517139699902704587960283323224812445190142693972379467909443153461172109827684762063295749963792373875582184755702153425042230680482912327047860750014064005996746828893470825638445037760778335670543026921326710586791890500628890014236259722225636984932153749208020967665862180370626944480822135076203400311004170015800373554037153030039856781233764106590854077720546452478125388805272103106915813410621272807568419703620872711364065968099638800737311536975564148054458660873425389038174615863182810877414659397992963858005549918069543812780293679032581464761399956132491784575595558388834016061500651262812442884158574854495396556518636951256568127465501269486651405952415523071914775758186899539938432734325330676127715707072924051023994080398261790903438276953567960260202399957684473899145673382947385741513567803800220312039276132814936045572161502200838241220543934184628520841909063289138673230771505973574875876205310033001603585196799994845302571741012213851016775782094373076566030976803096775320278696053122892982738483665990887429066305461251285286542134366522415561414841257135569959985618550209396482860872582789341481473308669606624032363264086663544805563126210351292772061095592092666581414831718512882995335710144961823875535309087325879850639510179300576296424756929824588258673521444684886694411001795590270994592071739394813891596655307552158561828193780763486451312538199801080361245174963478952426254532400433478519091367348523421424526162332254176793041773123289276297699581745287307947224507383504228313907054477579427307626715484044895253198331173332933460465095117132037672754356899427398829741271945227590736177347687727736490368354049409500905603566697778869754580195745710800190512519942906959114292424592030279173186449006817027094783334441063958178210890039727184321760094633088134511117044962592642160713336993764742115651765093002773763970686574975839853899115680057031391231147841453445521121552200024663197713198345401209272513714910470933848108009755968991425942700469640039001825737543539353512225881953293461262155710962696837147543368592861263105690515119705001644284684541700600038940778669454260792932266748315719513108855673264299697785384034273618251218683755352986114013175418405852373237677004508715773212651372744605042888192525981123976332144752930321808483927742994769539462792438108911554631078272845656174389659056043545769714912251529808018517499919874608111628267613230354714403718849288711488629203864818352721351345721146081684653041767377086324932427592670967291566099574885049018918315571038931148846350126465985304357249750903011119157663145798597159275575348739103693518435589709428154622061909752311920392987974375727029419248705131937324929647481233596154671372861892450829012205905968121356966500735140485234216846687349677307669943989308858219211625151756612664107799995656920447559440949632281979520666422825993473821920557604192876564708822800284778061941329642789296773694263831066498561028390333615771902084871366297398658710199907441487067947308890223171655711446872419232845311128353157122118297027482526910020223774340616838475729167756009741045224708108706695506603787742338937119281378950238065109219863144421470649011700062273582403471450642190743743653765322583547823873117896016049614634256489189701102683404131671123475000127834129930593819244213114210405807573974725867711782663430266153822227523148070030237860456255975734671294668761886733760701042663826723988608531536174740622644656388061052314574890838404600564475318270608226878796160557231394381374131250101849426154656510244259859136309359489936427608921707314167476872358428485148416486636962437931787938072006532143497727596830135378388382921905209471066254502180691436368222149403495927088258244541552094702058292446779056141989829340017077710798387970055654090194408065589788002280122007677514223777544727366175153835848732116501418575439531064449960881018522639699043062129601918128630112178087566226917176460380251526206241064866002087860035851342428119933929798526259624874367217715057977541844204700648288941435583160794353904166752875546164764385649247042751289759512398208151888732813013978631550933379326018304654162958399040603383798461618457772823152193405690174609270481823895369377234595666136096339910343982561896461372418429805613619190922631491408810299278558277723265097597892581842922310701850254397828892398054948085606904714011618509152535604926529782762849032885594505948580347571769959783662231696627968913583703529768112582677365565098824098688144849890018308996282987768726012006586852931158443041671636946848490682192798282220808148902456202191269597326606886064268379410513708475668073299341829406665891598678026690194373156035971315543749878334345345915363652145097288237589606349380975599503403496247844274025879197802581858605744586216862535289230601230550439838590240121242469021006084667138264396816056921577678956500261941805109873618320778257423633591471864413964508822076959748046326682082358484455124188476424666653812836466606945741631684480371268374503479740679320473490427109904501507472752896361236059767517528529509551319349043209628591485344183927057836635821905810641883972762307156863882046989688836313304548994818759059536344696949867177833699458424115086278447101178221329837957187351786383200931770799751536640636785062653310845425547927767595479817993355966286219947783714092874040138160466867498384329699251191531367226064678866110750418324073709427072426457771536306421009971331967821976237018224321584758189472667977241357332319285551145464324484640890733624374525343805933727593669294025936452572959304507843270541834207142112678053143657314371390025855857247531245187594663150046437300962109913258574974598840152390856598095841122467311653396962843455864972885419799932906007289056643878938383649144893106828387609723538936132718322398889465726037813217647598644970867017861737168550085489130367178347949016578990927719263815999177215831184269715124099800621831386881550343588074078147054469193149764707841281970854583105295630551680746542192588097346875235876774565197112305226482859877759927687215936028638830545280738862433064870465936658670129347526973863558453193353582650486116104193549725917713328313987025114922945363211375419851240608137512764358730918418338431696314914543951053813322765622307759679004894443767454113272426625271855814441224553389656095986162477930495098543015533820067161087431706433283355514138066759872654367376417549197378977205856888210754649712641859798524858432008044046879114428662158492805009693836875030038921739412204885586252366211349791034305298712819948041230816016820741288157102379730765524821733297631098362712119251632011932158431624518282371762951335244438942330804262943836162100245169487491499736044201663191678645134562796869943872448919048260818678060510652846156437225435545910021166187607838527192034118554406269131647427372428401871700559745506167901376195865138309717922720406032426500917577030655810019374101540703663790842862944463755304955365438391026132920867803882363600749405381684706551709417033950672730696470830046144670867125709492581321456438529646353369460367489616917426012710636149310697423418952530945716170673901228593350597986365196137106557103218652280778507361516354911813242072817318398649617989071820050010484842992611816065281669520272858676606227897823192083836038190563642533021783445748426799538403709876444864748814249712290927987832798829329681331912247271798085456694669069096460056956660879618311894166848964967183906759100926806809776792799486707868175678211591107502593096618306217338447945683236344100888938531512867794388760640117789626842363530709108086870381068252209253116139102067270324737757791361048632523378960714588142586151001424537282006584398313781432082129366973700598668620670421856201300800652438438893314701776190947984941358195433517795936714857110224330747635534714649338847492597271395275014255925456929023945499572849155689693461670574183431025069956982218348644017023641504482694724272550654917308462224517530880755175720662191657988215362333864851959159793816813577943174015925345509100869071328921958530359738761894524993994746147480242725729083459353260274736757031793080474726913018838818068472091821318897903633298274963483110555027118990100033303732950810411798085572184138486336617609104693503469994752617616314015329299159801020463411580093763833850650616313747928417628914580821679871133061876198992681068130095576525439740237307519755908327275272008789720966793887652392777583776898430319764494313970853180953571670897779463430861806129489350233589249806233641506248272429703186666756846235730827690600023669683875518309097920101822368487811346484761476443351336697167011912188399020329722460115217479534706181720147477881829210365850259805745877890531810766239329741639205031820704171060659630476688406894759341345828246935070502159802074456449780302949767325193041240903430993753236620439564316228734015784429240650495138186322383836159531422852259843091858020259888057171126834450974285660968287690102123405058335611339140020401817405926233270223262737086091411992663750714000406965383648977620756835198661811821591399395641525215986665268610417980766733373536047603236425675972377744603582006313693399754866313229643031458945994590958507830581217710098248783936423326994315399919371655515500175600092563884603505202046371815237322639633780860580924605021297733170303050937435972817341927754379979783839434492525199204846584885338472310294898731554554439417900041614186972083954778549494125377867481800980901986056567415842228560341064329666390660792296477762750808153427391583246572816312309436964633477210632409670126263398862833185123639358704314081557147774771816424111112054571355328271178267722018961491108095233133668641925623510711885477271854067924361010187507637047197257676639551040419839022464299156405796396385913494727531009675284354376012832344813945226824969041335684508015644658126217929727885597007116458205593870687429372542966745909443105272116116386468123719396270377310825698009375961479430658582342877401001259864808472384239048511554846721601636206063942703213229035661482431138236102947852988943372932856323431144447654609853217318680255621960986590852020875194028534359210222312899345811158125404159788412069383466085845049291530409052380582960037320770534906362035080054669266094833301559195223974545076839100900317692716096162748743523493782459388046914963854613220182229279321178308992235517809506297023215983075503249886568576696679772354385087329368999445996733789140227810083341990034525399828368858240396117392978042066895196087289199696582276780132871479445511840582325860558684017603514821895947784333939789220729210071767446117473525420360529851858434526754722085493690851206933451666819031606153549835785708321651374744924855508359056702808232111512326732319277346383506013616505590238903132596798576373964923480611121917911072109867469742201174953897540280404434077214934817629890944924853405167729054561385668576510890571121692798228796790910650650695087714213868154492686972949089526115494243774096175349117945208517353772986403523417744238735924507202190697010945350315748654710693348336471746250374902289766177005161247633595389372189514003063775337217984868051931806802332009399450385277245768004800882963133198249243734773109365897182922616900815564148242731062859666092618387944484618306812796328413508467371612644479316945686879864003739132496594075288648474096989992968946995562156847970826981163922926932435213703604766451073147872784587204255252555774015642758134499094947799385977693004233330111285434102334497019776101566569535387011564191606268590926721654897934706398880639502687740818440095074989920308192293980942771495860966071291788211532073120213353858564732698252734526243981338491728693967940259177918414851516773825194374030682432750887903767199054258087049384525598974356556686402207234260164291788037193975768627217850754674409660708694039502186956425549465125993891396724093889632884205008444935821111087541115422192950758556008942928745106417148135799959371895607438203205767705042337778660091904570478690613752754232738058333188724232719006356288450728905025022969613686820426425748909338536738038258595850276055327322328344449263041967771943176202171504804834199566209516710505649586526815600728780176703021427882782534436019681496272846529932670685159298034303891246336829296810912704210122472319425990537620023725801138221806027997292299148103812198749936682143772222287928987710152703146322408421800147931320927655201707586557660451353731987860941473092394478966850622466976409259030268404697356912250853352917309872959821987970676511709545963725063971999040698922832708450985670514514035442716780157442696848583665396710624983048372346299219118974375413236945868484140971785073068433828222568262995971630531972203871593904787447547254513824700781104562643325838158837055904168127259392628985038790480660387651539691047104976291416893443923001151419556723850493645348135707532791526095402543845252620174603682607726935977537401314610989688424992870237090859585454564873794003051711645772065362051964806572453923232956988119955968035816449527068624510354242951128364443625828842731028045161581133441271567981040258203340530065414167628053535969766276346026718918371367935782275763627958169762303432348480623134265296519026541384294923889156782659379140727761675882443427516699575339585559614737539981730450949053253216405320373323061776331337130191790929517673236818013854824525586356687881731219465582940365242443277998849031187738235083420238100042048249655192894946883541318962275878005323866808291658980125661806298431458490660025620389352912839119277491272438536491912453132858480660234595677212997049525026474871636055290628200678203910901233588821436905530461440126456335594415383319378582157044811238583865781420890069555436650086835195982281334563597254145140371904431429155360659825515940197655373969097080472393574937979716327161580838086056351508715786159166355934869509335380342438414386842730198681481967687667888067275290134731129224529718491209600687418366597483022516251750271717552865031587341763552613435084204543740279448137826672363251557333004889751327729503679053838040254721820213494668326671805873716974797252117824053835480002554558247892902191493002617445944247449303449357359541164555237662233381062969631134719517795604981078882298493459240936107288155779582262320925744339146169991750337405779450838497085523695088974980473906795454692822627215258387965894071547344215413873298671734504524195851855688025406258204160399232819814810561962958534841166965507153126801198769750255855579630542292452149878654255734013388410984324314677503570001716692251840482103122332919902480248713012316850315317290831491901716355446317110743579031520529399106688204413694826846420271463153802066756386834781214129508287902344675759563501357221394728798576490292978424974939228809178823435328828299880391368091039933600317055627348793504979832921503064444726791832511934844528768392758773416888776774322624626504756947978148771894858788319065167165408878492270560153829624977006713356838853091640421567544636488944286400832833256644893205209050252412670091207301833057428180412591924415389880425152540236221295735746546579162816321615771439501294757270147657140781378740299656625498351697160192931348357373867914793481518904605295535563311394038130414793387106293926952820793722332828773509042072791913008506990896574661778147037817806378467178971434907918537959488865883233735045694778917044028005071724557798454100544809137164520105130538146750114719144300019311963716990680233521302804495488923126434082202717328396236452287688295527510048505796479951884740889265441125004267231199903480962525550212576370690642979113345361610743045639578894381080678905267611916076916135324119004923720858229763071105101847053172996089538643616216632881165479094878212612323918548397004941587364051967340375835276404795477565841478977490351738872312718257266527478300971866366063403054614964316499298208378152528249092266391160521452059110654427870772281622889427723007052526333557914261958622322000747337358182657715271357383572499275886219973838545284288547770257815783438919375385938940113744992834364446663697480603608268853680114228296578127352410961998952202560039526537787935891608045979919343311891075643714078610467239989629109029199078723680659243486990506539886819019101638644244223892448513175726708541916205709507128159966126470308962923906489191870346971445792120409193751793002256970036559685498968131457428504611870428566791594545699512141655732163108429162823663474722249864004559526633677576444141835842349508495929149034869086449327670018158082258147756785055289895932164237959375406267443936225813573894769599826106289070919493847120023805109211382697038269685841203249890539239585206309738444165985760806597923498824894887725255908772991379991740216795686948605988168721821336313747333272100187007709313248196828511324316157851827138590338540822468006481711450528805468976363884698241282823011719669718079846778071795515446518869840144739529490685067973500139863151472549024986863753798832690826487745073466549333827895654806725168632218936447153207215724269755655934457586856080865840023965408611214373894656773555775107544034591781340249536788762749754325572415973529669687310778848653739392888192128084679698026957297181190787243053505253181133773799197301534090903062954926445211157771170452034918134261316016659778341408378705565495536970143631697600809298352206819801296309399553127484978358109653979320223990504657007943817190765017821106637861797544496263985005791409393377501335694951080545812979321697646612818452391641685408848665979938222474869688160784872950182758625314638907195931790451080931920663167599090097223358049554147185106103202461532558133350327826926589973756379451797897177611355268499871744905292718869122919395003531029873681088824277056809694538559643095772696525062800397499609856850172401814071098484198970021513997677546913471262856273504910124855078589490438992333580324870455735971647054765789739418613022023793916372065468689486131698658207923997715026041531424221872671570405339771422798901619248907130154529336500503302932963230454433324306069388308979193886216299195485324869304660285629657522172066536740540665574959213018932489402337526568482755578047563727632736507860682257854058272904051999231668381494117133291245172718320273728451947789051745148375014568187844300937432727235107628136645448627993552344505551540507046673154012699599431246508926756508752604520468409483701637827984093803706389973274064987691401235408383331875670137360465224317523629040356802768650288848734009882072318506357202059604858284631314076681291723356400878052729029433688016847675330980456005111900744894349244590985935643395014507115920170998641574135949436302226689817460843997418339589021482911072351421381770227939887467710318242173457078301804998724812318537485890943779433778153973036973092871686323342543808335704242398851600544189808294740004929812551283515943303760398156506654296366531285295688088271946591622012003537081007720533505170771787344621566302896016573274828136680742189444774816393237037228279827790559001990694176106546374044106320168482709288718117337969955173501581564240491848433083218596089157461656802946085188465155992191389427400739737704703484035491259475250689404003891838033818108280121385890470716550658257875947718993583456098303545750899184409540556544320505942254915088254834293523610508772802801042589956126764079277647842902219534985122430607187105143864732009794780300018351763634264858707438225557294863799738612339122527953245970997580586396252412161179520623295874199688645081046097653662362201126482139156993091642225189790705268391693670289661357647401805291001649337208858331596947745202753613971401276126435961706597215866167485519863449329250968575374357715070224631364180825209551437912839953172075006417543645225588659623516300710671286908657331278931205128905580355987038177057728452959038410411385846726700022990001693591864664884000963860873980706821880601574834044090547612889635168582899266577147884115295042502679491431092184242585505056794208729671359840538513080962389427454143092848326719666067098981569327783665009656478783068068168928954514273027478354486327646276497375174001841640342827210737853110307638547848982709043163243856252250623067971294902983822372423573433759039995357721202155776219208995761289639063448780731168537868630013236982025646216581565886840949164048280833739762304016167039439329080540790410583462740064508769382729863594523600944542853266283394192006725506252152665704266909751035543359935783244802664806467293720514667680064319210856370350638599052695327428589749619970756158173400752038486010707984648547212173065595694134877769397592862644274627852455288330885720298537720150161042755518185775021133436614043776966721178424236823194490154382120431500957199884219214276031870805409276192673214705847132842167163721570683995118659429303702936675011039427790626666728718550637579602804234422134130675051372538685618106958990552919590683619957742490611987397965957655358099089294308235691744129674318777060943980771715834215702135022638652121653917785400395966173905387929821608066826647418338646660049948602697918513565623053122831932685550364010436014977760915629854300727340863626374402006643274723944999771279642424641080613558281743134408010774948818242255869669595335950161561302169815767964449858374830457736245867874888910998289697983732697594221521991921089090733018167813442780230261913752863474351732652015766609835346926258979828139337057526529227716709046529000469579792995022748776105350937291676362620142512315785630532317864223201413020536437310150960574010170570116931150863990658396480080641790589416965642897643915252256207181674212953592888569922271030103911520306524812446624152615740268823353793105609090134948598605150351390647539978211926199739928414366185009955525771112032638709416186802621451878955785876885384700376485713600255759795219758964804473998266558588366094333330762796815636170117125253011048307466173020973873128787831082607068986507948161901015830559117923993598470338359093453076546938960773854982861981182605205084421778330535579908507766515088617144640962945843198979281279219397535538137530304149863618655239303808601611405124858573672125635516669015213792301205295879205906326025886939834395491864346954602239394601011379482709146933140987831402886276692088335537218661763847271589501728271776806219767994495501211822598486612000449196873506118141073714356989516580123608877302024873817516524810604340012449641203864798367827955045107903866827326319623491920254046168834514319134508732332583258365485001788117368958501092629065280509580311853918854043102217487770698576102134031273000671369173773364702758517080479637500228518462282580773727133053876442403183375396146933250753656692535424958284424679951723234819139213579371892615187994566492893800909943284350444512202241403615336153152239046957957490156804764806977017311625453397004985662693964168675003571787748456851586309589087950620291704066308422724429232925618235133272012383580580216395435908212146783762585611628405919473951015896405374791130437141289039685213312883291020504135862499053170017829123061517933882178208614237037261135480582426997467322799906186566919263473969768858490488623973817296970501638645553181659287659112324199894965190847049747210290329986303574944139760412998743869333668137659146897136748181331090204916017692145820172913179620357371002990841442758930879067111918061003402624241036020994131520739205005070032808430668734984787668624761443736322059943125295845538637640376420482439621378216743392018258345875531648242691097481726091945979082056987468269519592948073272556120365865990546672692799460098667088351687352406165240146194099396266724076318901532247893826581332678764531437734835758502899070209092553361557695561139311656651879768402974377152048148264813579622607041512158311766025790909195833451467704392096528419422538068827402671938691541054539830925910728470016679772391807566774942372779884621438797567059868297408955805736588896401923644168792653907135784473093697053385151914638744594844174529669430406840067410015359912236809090447992611382171721137785540378418780937867317735489852434791337192429016724784174562749672915539350257666286624679455827380555083464895219465274434536484176201469366326876493061611981538449399209928843775737552861991843029502643129110957726228419540260867100797167707029001691222851566091334755414311326835715783689961237773762567977998118062001210087980759345562503173960326327032201526036892114622117490927482730622779434314059634267107681506787735238461008130783462204165266277381241007274844966446280519152064565260894683063750264268054647903788573721687760149631569508983430613485371882408128398131551753280726895551120184652645158832595327955898134564013064636153683902530228548783402470686402230524489707352315552890981022274753377989680047273193533871301320937884403474099237551041192756146150056946065171799613157276385834873239806563921430230142844121129954981289351285922308682931527833682354233079662060398392697532202604236272244703501177108865197032196749015762058541845097942173281259446906975702470595888307610483018196378619252153058538477667895291290512076551261111956242299186079650814211232104927166160786166784861162686824782285362146403736529761725168321074110761453091515706138228618077692681842405129508100375219553869805367154089093972018346114951527982444450332742025019845469910863541216924448957406976977093225137964557727596520576010237601252698185878754138097807696060707367298839415238755713912564509869046119790990758006021791646355007494940443668402225937033240512450624173365738536760374102026816615139055982382774658865968882650458461718480919026189716436800143077372803151045069440982544099102934090882465340050843180881709592984592800651288446465971170923971984021726597078136193927940408612058158597800755758664864253122703654498905494042133900990546118025407603534338144813883556166907850056837462307137774418857336087800971241130656853838494121491968595406297731468453075880222370033156978166693898699538855718799834606558757748056410899648995157389287394357235121322587888430832442837880696460806996602617312078919141942007212660357230670475202655387406032891369036143325524258355462749304998959851772468316355781594536830864698191053191364385598237201543177294343992130551785982284579165812094698800989658597453488166219489404079381666910386133559130710918135635882508231902069916898237639256772448700960964650679307685092676811804038428452750245802382013389167282374501732000095449151228670301821942013840470025168523474823919097729053264649943051644804179790385650569988884366814533517371531195905357900807255771997123931867108287195861793575581517420161261138886852524220808195273116605841493520330930858869171544183667645762335375775143779745550113995059292955591919080261826483250918295384519686045093212770280527556839495215561663180813606519745351524995082042661388606801781371998809773035800845379352751831044544771533884301950083615989222966121336706014544245845213977449831001379318256148921943042437845206584218854288104156697345739921702366821589886369210003182420942189040963891292588373309801325854840289624566425110388752447114087035495122526382475000129034955269546021814581028896639465769420260733016277415529780450853308984793691985582500757023429846243436672063334665611900707611556025059213402301916508252961629712257050745821337842899776966250279899632346593532742474324858579605594909782493932513410785625611836327348131441518898241451996602395421268888898718538021387982538380793499118417955091664235790808557178795481176456290891960115231296634368223119634023905884550910211521770861084873191668486607718824856524457391839631283508009596045465148398320492759124428741980033546993696858977848991383714786842608182385772965336590865411760447053284360731074675367256431542786658021707275857277096845380865260143583003237324172072010145984081968468346171262561294888866321287996681311303358686621301255604726373661615903658198366250233366424346284487772565465813407890835137485947956778438225619642901261584544125196253403383611995714260653954220256689828049415792475846097864653432086403954457467126648956284203166098027119656621011632165839851403531980612310748234503192057470966281008796377406341160164151552264867480248847779101845541830880305746022491174344724712444296411426298554919190644113259566486152255980240925919100518102152107243201659504111031733435310119648357500867714106383790354030688730837315446227490041182805948867381636300256362368996644954687191293338357551181924928878963922371834267446887036360559274517681318738468864496711697326960199529027814630300810629050321077398906117621291263785651293699400816763536684379826774790724519047616743523473617015967069918181826459033116642393325552707099709186506558077064748879138864148799583268538731775144360566485780855704572184018082053067141885411160340897210841481355430894512012934541644598690243812476415244196450561981641000540572403352934166579908676077243967643081744970281302821170613019280855615716279971273187109862664538692868999407425589709311139635909619276390802118556767094799135715560465218330698533067878749326934243053180001554510632304204838177607674205964984640590504780801271107682484756229489278064989470176377950609065925985254873640391865181463361124456366802628732380779800339644804551774033871101535468271857339903180226404148388877972309464634803571089545205018546221468234254836844785741965534538589330117644129374234937034639451833948835924303733561975212234518251837957404868278491204063083348883038451152135475810231780230790093816824843138129443585975717510295909967079961800598878842121635480553035688798184836068508295108385897138203424433530656559866696906051702477258075426539959450779308649961830069810760377297645833425322124793008086539904652209714394911765380200525069948194434149942988141291397621588138291933617505617403413676523160252931954369561817327944133058874001102782038989888594409556367123207272550634386918061353279777021413455859406879065080457220404666011850777883827963155818824212648868421001430656752170834217570269600535373184236563730028105228097058966473897590992351048133606901333034248230827413736540147018778688467143313504574707844035073886734215944271760865035976395132917742799541972524259984829696150753917105341755968421916271546341178177238574820677548536582347335927126083589630555543777663719105642752685448569885976454003245952179677186444501745929247371319330534511037003948480858642504217282332460380593911472712900552898836035726860180484446528314804095906584596198102452568421560517131637478562003387855913481753440022630321554978291471370452074115382236655437293732441967222394858280192630054457515001414440081314659963301390847027619453717908833188773601289408021154862931986156310895499432418663118482441761927380880095761526685915258228802473198817685191463841606164002399733478164610897399736737625408977346471489720233994049094687480304812012096406957278297635626372978165232037887885465167143025981884181506467085908288223756857321309037716122665963242098915327138070414610408864731250014771199262765865033214898258251198424381869005253012438362689947117530654844581049538465780459917104842790692968780833988121206044502531878590122539393749025903735746063268788801302165463412195232695194234687442560302878345273289630866092905346236060055269477470025064806470584173790723128972387243533290867075819101214697735670719000053836378410183843438494709433690936736024546362755208796976817581345785479458726758554116532780189562326130433942520809723447721187363624078093283258514412067172995961804821301528112039461836227715851720327796794043090573380751594512491785400163586015035368920312827765579037405797507160042379840202136954592437307400719417474021643401404475866627494544279469460440386779423374032760652709320338177797918910019737732140663751684528635650629982040769996297746120533321980305922725172890222751140692125502206998278577100053666456141459106889666620439967514222292251156376040776613478029033221890235272579531153887299161301358732092488850856925261618611507484731189680663676472513008643603590063336809248308017824509281464018092379659934892156866185325904494616576942513263860474232803374599530074178296552331981648676532106854381123506779297007450218880316560020672422741026095992701096162646219659889311346323173349644020248594079483392177158559314101831418107839527182073156204346027834553506723604200864142915465166440499555812399761305862388211711376390064870069565857093774921556582720203459420227876414490136656196648711619854790134454600703813415283983323895135822111442229576626593794722031258947398873357585175119573858764106413291451808393691757287251562558079011632909544301144332731335274774257410473824091288825988904026988408018152988636249876386604000950839257247406090791487039339464709268251565348661853031053454002663358828537281420326290298150463700659635466033630407863291108030768468314564457478286982188493592559074656979776907293067830404151400415487048362977977232452160568708214398036699884404214048849981090034543468402748221024306710609593684892161065275689219459261193489967375711570315082435924163814049591760709928071142445780600763873795582291266264600280451946409647938865080521216293514631717596209882006025851159484586408314854884957807087274786318086780447057176965531303776834701177924868920581854163469644924265787092473869908679130786830691205635170339204462581942988838276726957540792102500393477487250901910578447223130795143948945624098748626492097150302229927028034880134603942848184138696546940209857710545185118274068529280144716482062054240325987934407656933997748843414146127616478166955589288316045084800153740932733850077543573133793368871369682447906389107537927802199896269797184767234026672647776213340060016285659362880391349442192727245081097064967912267019703574842507355364976478446381941282401160915602909248562153340750880898179393817656084899686948566264745003865527350997601938165770976355889081812801729429833717365068503282617589594956754936500769747879605865920085022020637407618933031033703194063607474154305458313904736485738556459829204747011123113731989479290408503371783487393778813076490889299261430183347014897847067052138875989824093603558374860010280752687501037609677243902259684411165939395871531116322229225070092669633873483377944242323104269576049332747572174788551617718133487091798430430624866707506432799264291632199677193253580464131567069557747718311830885572088771368051384658566185523208960790616881311127392723104888640692529853320125271768842072026919514802491051753976865931951770948441969800365050906068301902350368299365814733696925483301708810413374255347792500668873288198670236602567025920802863596757561091977976303082691409527303664858637017413480249982929910806242659560701771480407469732835811039938181523507490517467542440278420376405617545570484967628186451324581623936548023947866756416669784209989422820372960694768514855555465153350967833790624056034081777366229800310539946997810512811309704425548015442454010821960814337983661470895589986559814752296806671450264213261216816734815347497332617975933057240115319402496615955773600244008098228983828131885529683491854196246815222397923573848775155523831799335267201400720891692120763228102580951428114641063080727806692012645045654336807354642661781594569324620022032125568152518360612169825176737982606736689579311674769146817563203543342379699606235033121765462328047425724909193657457391776090713912231302459075306889301286426294591357854507059841356034146810509401031820294990394879341867349153367740828585432429842987271580881401684526127857711573054831568016862752030663213282771340808101383969821369994047508056855810134970178762426917741565644196358898298785697706244690074431000723292628371036329447864043252970880986859758590578902683060676811971195308312378817035626185058713711117067831327780811148728590592189206719349973544276833186602927620350773422973242382490958297532857537797611782468897724739913889030677916508127238894221621556046997032919140703353322140606690106134160478207295288282434917187579859644212667017166499715200275152238845432056751989660886039631535202230772724615877229272763124387014516415008539411055299206761113100391207758273893045340117417345909571031747606338807443342672996253334350194649788453189436076909078617342290178688477987650564057373688707157132073874664292371869779527170314393611488316071898217327805789659330858590806233835798945999950548215386540125523598714552194481291739105479345527333161345401549993494274091394007299136344885968269482603817569907671517259507292480794966686764135502254931867327244421331239512313687145469323857141693587185204402477248174615019175281160963623867734822222057848532989331471184960073336748584821645894032158253043282843914986560336941739592461831801800144075590302037691388059535199044751600892400855159156404758754507418439641986678671297485449781367981163851362997654750290864154732492590149561646331805344722894718432739072919725844820994058750465476878526714709195748969727002488300589014812830424890140871278981971059908936247909572721193527188880622207459844630666490615106847521060566017735138799240437180950627144729148136099217209637835502685399239590489853807525367775116670622761579727196823009754249644092355152976876150666484079822295260693196861729633311577272958289057496329872524033694794362280378084954817307687529530439979241231066153077158268921378372804193006646836176796900836093900741036652610584086139753096860427765422985317757039740926100015440894336087692593362839037616002380151637763628595272470425269107005500721872706203614964779326847081890610862112253224511577983636864296411917117509554902910994189027778089447776498752909609030525237147691764670376744690687507131515658244096654882439704840185890459619093428004553050053020611525708331422231337577462630616496836672925904415182816838874356187300053636699560564640258884939434073089912477269090791297402951937034720613037424730671017281534692057669665086676664645988770673063101872148525786754092773593956663387929652507395009988714947998360833061376387088562336881986078796877367006747678693917528366591406379263503673349532965670710778241489630964000194743631636805888272514022807281803077937568979574061981439889459753227154090384645152527693403828969339801830529030246645085209586096917008068271503773077396130171658686133081971299532593439807303750338855204821029041646106721152665843899424294812677158051889816320533374855958618894905403199070253217693774642449229656061025570812076003388704046630728709169627693838891378641049559440145283813433844000309246368198871926339089137136739162795162762663207942149487252187463598023483392173123682306692119658219222015697096198642664721040685692032505544411145915020166330165217891621108117757470680950194365523948919163245673960954643275093153680212147781206578980307530220502224198964952776783444783075966048636179913336287091740295198013901400302388560281435666522115774652068347353337703662846803473050407668948218804823070661481910889017723643390795604725775267699252626810148926549414094432999516473284359391596036966223058359014450544342767415199178331300927431540915148329024899805440871540595706996989618900665809314343614888469590625664489497687918638503278811280087936399828825431634113943503580087053572744083802998816233406527065417088499465117165981281429313905913296090417976656235853190781844911996574721735377071495394160635603173127449353127576191644840462015974173785871959970981945646735659986148299398885992853009249932227532073631355962589111396499098137176389296820647053229094133466750870418248738309608077683799903447763723699456305747057973386984355579384307618611909570964258910199082572618522460176151803916622506238587030797155957593960878630380837154220568611842577960109117800745327878371716727520572250301741085103456097417264867872241194028083400624281791327901359312134181085774719517011168437894017671225539476407784398897671797833696059760636190523978016701740751698194024245398582982713192067227759321691353688774250601160896743114196090632277249666839891677965974508922430779141854905882277388267264985108664736110812022602682361075059901313731021068565094562132210024458621171223596876071720441251060286142818937368786828407002058525879415701578538947977457949480425628210254979454399451306027147695385273259437621656274541692308547139521371052467940432170646575901165374413016713960886334002641762078760934548350295432245695293099097361839333434210409386364512136317846565213226971875498496034889673631345624644721501794328593145522032021535101362031870374560889948630710077783395801691944992265095714310955023226359866772589186594822917229602249225359290836656486093048784206670585826554439135044009356510177301442036815403012793525124468328014188516827743699231885827956662466487926352845615735141108656894348003893081613072527115202312516266605529476655982831351891503635012368453791183351758291035861195724559638805776957902808819784917600614758766193519992740652434025610565590232903360016689312060625413561292270273875578766023147466450446241465542069697478134357643263726608761549401490610175311816886872834908918355212860123610688950831531724502725607898738415179082225349116262491455748803296312670462540225711345621233054697859064456973697331787492431948911286450771131974087029179472321222758320669382497346310039115798838838426337326630557441851220746664864978836032732315791568096783981744908273710203218340371549199530503373541085018756013264696879158579710426081108689387616547800596325088220428237742538311757859525522077345099851696188193553548461517365117298387230765020244003931826564835375938410834206668803227096960690332634976934761747310493930723529243750785509278320184717636451881073956178716017163473777078685358221998715188106653538654162828425250555240280691626828016244651671658665098017625197828645125662879617806714225825707447574606164744840538823034347887273108845817583066615008671243214090503930165892062817087062049750804806291016463608982511639005533048304317756647454973338837916811953875084990316071699060155117735669178604899671124405748891813868217891552000193696513758398733071978681729373402916791334029659087634991905964027985764714667551436303748833442081164880168889767942329891415106647016869320495960609875256045261667365347711997744231748325150724289937360580313798536848223724334131991647798385963419155409770330699250029760631681591679857168459088335204193012868617850052553252609924244236564183723256336022591508912384259232800899560857260090493810898730849396564889034414344990856637856845428661884460592435329096823617130226143481825015755873675293719495295159553216275490965493479297617500110821953875971625128114924671534961718274282042962038907331710768601051009371173023563636145580690618819101965341424403476919386294477558567402074052458146643134393241874622117460951845074217974772506824215712807513136830755929760884115735172702859972583517618853608700323115090962355733633694729114684430592324215643914995617684708042095904260833496215419647753601775266021478926324192678545290907668066064939582836801652850264215534991199480718234183952771732103500964059160122849038275444860578615172297548013216791397034425988658699288095211246742961237687452160440347368353760138405252646922468005024832446097626823267552191918933157967412534987581532749098818686391918189735765576473577352204180798326922869317985565667409877398191361896140878739759561987809645270862533853466134689329975497848017371503809517927255423877875474731521564100287510007062695709644527248078480779557858974356221405455958601187398408170953767131053494753471537403304019318337898214594044195584664572052960207428618641216732956197396626121946576859451715420268530020241928040847296919000058579975458965048063616254098059473769139071442972884506311505196411042566887836374351503427834478012901544415631309804148676489563929083616079992854514121347068231374956298330182900832268803938917939008230726623431651160788578620214662172370604725696063215235790612464666572391993843726544234045543316987476438409189107672639948029072760020736939831634810246352958735652167508450940489021137506706031442653120341075893881341519749670684806454346108473480801371172545977456004376067099591519293871870628086731690309322706598462790803539892999226749026810110984669013991399481123501032936026471448186240033452381098828917007170090647805845889506387206898075199916084412496472410605969182335775053977094502085618171545565480809202714618860079813554953577409856126441631191761914228787457625104706317253718600933021566230927406866404494881446055529875141601729365762071472155781193357648627579104349375510972037854173798223748191204411301015733490330059992688658176920537236827871092283446841048181465607564193318128818742357684509687941558071027489756606614221359376090200126355216990040415280286107151218460151033608085870107662302529300834169478108746157395571262417124475680302237752680322135834249839395463992508513200703951984565553428512055636010739998468576618939955915952041099886196833866296185793420200382525996221692517348665325602673145430563675958486444956387897134037704616481957229723070609555144729510704539171641895993491116202997048514749232186869810050389179096082078705615069077845036484946911113241852564646276366602992550507473423566362472411763479793236839738765706736218482448282330372797580370824071026198340703135860026394458488433124770416720515456792120303793562376990756031313314396090776818914583920668507201192367802947097328242982426444103129723723329017708550068967671444991771325356328902363013786696735796823642431609445186561450187219486090863543489928229429745920216554736734687056753228744540870103745923902946969830169720317537323976076497914290252447270323176655802344363507842995491593710404955598988443928323647444727578047334161107268403224221004648778720858056067342935429750746790272005507209450139823907862985133570879781059200883911484047874093712731643215194767824933795578654147836131060767852818085952210766193950020499974171771193819697841318695413538450540471526801954742285267509436382571482456543333872651979454720329613286013953084845108718965566062792316230403913636966648156730241319129110306507837635605401160207429439927391508205224216590771813644843218567208852347819570241635412317211696803378872754644002991693586115989474300192661901539672258013707899909997202028404985154408023095925659954501362550368409797774901310364956353657390297888079604436634603775799009957020519602021770115659841395504634087925959400457895657091040183897650941680582419605341738846454037318705953800969365864032452574501341407877595591889172607520923793927055792465865750558832549955527084386804729989298950728902648668684653275238078475252855128675658386233318201284502709199868082497840724589663620191721964830930807614082137509989562143704745485800679431654174751527596779133144519485439608546699554906008964154140080427253276602947524940973699710176039145604888867773597646107515190499705096493653140935475597560539705426995005601717912212376063540568201212437431970824375698674615451701253856092219186073135539747346145042160030509998400886026530183030021408086525104100099356441484210896149686940477282801799476114171318153279265572315663776048865172358946384303755322649344393783576563622659820749054773955973742334853107060027015627175779063286386084851235806182712068294955966846755446787666235015815353874494525397585733892028281025339924277231843349814179959061080469308848497593543952369559468859308249149706321015745272366396470545681841908061496149134957792231718131079542958798588523103250193066970398721989918964748928319651639225988699078056153815588999255899765844469703230888013889194728479255616008282377012512828163149750961017239603830294262699793968098603922255749019162119631987044644265393999116129621769845072881748474661060517954550688452332109548514597429502862339561943555929356428608023303814520067420394549093810464335301836747082976888748250856085423529288561506286737841964302875438480843657456185639242575709485183615072150977267916912214058312909033633535001726353578788680153682054725785292032905408831740111447660120234295800699443737800926415587965469923562374572986975705746908543855955864337445871609907743293605801264625127951953819073507728404608214028577479294408971460899396774229889636097713832521432668401383713514104201967268913489562191599130826016478332143809474211061338513884822766974334675780745272057774514413367496211770119812872069000602166344782477901475295420787856481653337344921529812553902350211851362380391899464351889324672847599230305411287989073185942350019637454946280497718392737433661154985244901101160385065663409521920058280016669998421098503202629877275338390702130633833642008736601520390813573975989541255875408774032313206003227759545494192332551316298344953171933453928512299090138225666141043867369267536836276329300857050380265884372345795861785242718505873546477319594814632108031749821027585536973433927706917736274492092986725685144608094308420364515248922177454570230268611829115479436616560674866166012935540099857155943174919029809014725846995225905659538099621069464664007486811878239516914458419620498313807210211224673218172879928883896699158166327240496213032265388886959736368755339668028135108983242136127274888827269512678085870595115174810023092069938710178063620680914063092320678945187413152968175016103250708494108314779161851386079342385582209441684341344049134788893895169264325363017743092024907545519866395355407848367522659942213564186581169336937095315221810790028745858849837148804521365278446638543279206725616368985371192765471024019887738247664746161091257030188055945569188750216456612310548940693195991221782519418254802701447827547923262854069244175515355748626233147716607718856528010786725131622914669383321230397855002963910228467225635369816522462396380087979666119178388694800575141920314428799695480575472733933862690747928509354872291987708005666142250589754437226553712670223478365836081736394479024791067455773295022619215958827505961672995702208070205859712956673343093747107343190907299385150181597662335714607072672900473007238713476216356920262716005886561027535489698549160017923535643921854517048158368435977790927896862981189027254413907461555996566374000599081593677901864194624233791541814073839994994833708230310835456316463530607722506752059726078891680788718427580771734161684938245810805539291843699306789781785036742843059223972273314355843455695052527291953447375209620471867359445386717703970177576744840208989947777435233519461145330013761362035959093666204308338164242613345679847426942790844232507733543577034450521630092276055330776549971176290465533498564433238873051598454394874644312545124356473113482190038077289488001977470831711949480304596613427790120983687404961792019901560599625746779177479127192766308885209478469089368720050622867354648980494230925544630285492076717988574459205276415290107929429425784672157437070475005586932265389566460960050005829170280912652841856710115687451130678435032677015215465056382079470672939292223918761854783369031656807281764743057187411884270382186962162411310746130193844823386666060222080288739601230613959104714896129077168238930134726123668116381613376822427579038301286413401970260736499880693309530981841706499165897248417896799631904061823392058909654060163690038752667597795172524016975280069235549649148900767955091901268057121146866795117635449066403742103358877020801880955523930130895471248098210708718114918356903272501479471398654821921752065087539693697244813961129160722660464019855654912814179368454355861174077741116862185932302243995648516929133705564625030363427080128801017040752396824963440044567905411917721464388639758127650427338822271118037981375807420013263464894308914710929098028424608781924075891935704829776975309763785933805947041437760933753274409567561402635697491129862687318814575063311705712892620586153545700591760769514603916162575568866635582370225054511890232440376798435355641503265000025662996896501027044963000682867913254206692849908209156834194029833443961779579982741261753126192237302225273335465903988999825634479057140387794523295939043802230461197479070100131135789225949880024024463275491002352871423093728221484366996851644210356651493876811417046960918292559063683502807142542171049601637978347086129933929033320511193105129470477709412922027382097233052250955806177278599002710238124120884483498185734099052993866355106163814991757845442238090157796530383484962431770369686458870591326682839308857529527256592473953693386370120994809729938372128908122576755387276661590160540472782049554066245834931130621594662671635680438360621714644209145563633427512209017095129529606475355145185150156808286825168695874678326320709259536241242056585770061591949896670680331956925381781008915797227139274278120201518357782999985021973329439326944422240792578324248808695780534979363985740460948594543822695896320567850609254296006028946011549706975360446574450039788378906372471887758315973630196292402838452930008242444645720497972953388221864889876149692294355842889677432347955006591344841039901001039622105857435283215696902195949336641879232472745239470557718785698110677659877660429388966757253581768301305697575172984617991096561098944916785475827916651007942020448709883593820006698243761589913843612432187686708954866720477195231199207374179949424930578286382955275596173066641095078594229332597036967275853551874407846951830024905362045149347112767027709776494470268834529595716781856083115040178282207563617293493529451825610011276103887624246854200477527609694342350487244404199048960004934600361909243955495610986432026305697603940212105857108296651770036543997850749256803775995779554864130263029844897591852502866838567616616953417205259015941308967110522493027245331425347872757455860124174540965183125913643248792677074271708063202099200701081189583608791416274451851314343288003949213614264657710656930472853541338180621431372574606078478957794984017548155043530268999431054177875430424376670820027457471005295594526421779276409475842272568746224470398140680014042604158338206448176800721004382364788736395159055159363322035205362677464012748274225385467909058797935833165193315192927366438405312198342644479847708471151570489331343379710141497766402542226592440252954352783809921417950750381045264372148392797777836669724152665443350805334573821890594271607068238067805217657619983785826140862738653873003854436101564115271742783233579621601264909796769952362713207898536750631586300075502172832229878229180711554493935000074537059032715303897526271729268267719213077130471716816068793561627064874968132182369368556003933649656192126614372631879966471178520032142547740152937771397830842184446735568486559047030242754330314336738548402048994682090165328867118525382067130462304840427474260755874183163206928439998699361530647200876314284166074108383436884474936347814739404829226833864819218458125640922779201387996613833621724975787819049367083108156935720326484363944582391890345283535075793417567770666162985740256970676646975320064835114693268574062004288037031966940076289906663998506758698548924096409034964599382954531519881319530280721925316226025850833565922674527979724057192867781484689733937201510137617533129599572307169493817919270574342582778934792863181553573649976506114581026575040576339244572152568245776234288746340387686207527172885031538046455891094880064706758347297431287636970087444339947692549054370606327540420118104850419445853354016605296032075520646347190132097247442263310474710372613798144708583869806105162724740286209926858432528275730070417176213441852833294161387678567592811265278543303967996623994168973883578399191518537308820271683242953207528438605695786827368301874228724005121478722711438643500887770117408618827758654241755105961301935567703289918618937516610746545892536047639991329975038552362966143512543229302912400716392893001382542731673795683171473593453625836395313360244583117296709484864730881449159307980383589208490477764001147437873756370156914708384480859933452343779167658639500158690834093874492043597123872564496013022559504188086087784823521590276409823519064633863953092728163216814418581921034930011722289022217403127559094843036819638271831924006541786868114739161055240059269771936551366196875925462652059353967897357093547581687992013739705293809103016542808292078144307318370582542054938501190243487962645976530764413749131107088813533361950929293069729192699598254743548897436738542741874614142355294349992923113132268002196010798486153648749061347668950786478937271398561664278009407386232460705242055295456528458062865917733868720540351344083583084626039109661222745056250642221059139588402104548746247182523631930776850151430291468502494390851232318277853367993176830233733621960429009278253413564547088015299261519887371301059365187543100186921016297104534305960427217516325210590987800758406830018368941156755429503110854454226218357308439901523576888235531725399658605304581627603239233560313950644513483093099039344138379331108414100041104160348056466208264853866407247978567159523035523134100621852891286513027119251953752895604911439375759401208754579961102891191911787932672340859408082904007117103839689460003956806194680531578521903607380646066634371300430961167807004782848113853475929196295463957275707684162523032520237232218970314443043255533915591208072971385779925847806345489507237052977368612572569871633009346642720841093113266524921050614846989704535917055384044324419399377671256247898848199319558909395645121376139449975690540739500531383514950389753014338949939751753562141315987882125691433357090182230140416605674077145548657703034850762132285418233392027958082173253669323607844614789283944524809709424183826844396773957497792586836515228719897258394976285605526883855808801076828504342791929038278000471719510520560184996016489688401855761320504923254886369087616126934617472688221203501178846236798799016655217477341802906054456165469604247841657309751582374886715666364923108996452433871748312492450036453590216338814954976807987560452343782446698685490647608764683705486501158611106312889001795072559388152057774333156655772965723492571856297284273469096155748913461637249506962519729140999583369398922372508080727259801511694605362617765187762165185722660205692989504481642299474198132253639150723994298142607577352550838921207732861901488812675827439040644281303266490811553143632900830919089211111991807358626487797299187544818833117230752804188912890710665588955295547076819730706894255259173699696265707399992162045434450557790630304704271316156214290488095488912995877984027056567543689155560290804952289792465352660693855083302517264056484383525995807527039602573018537856424269580174350528413796601522935235149478074445827608092388547660343712519356230361427188439646250019181762377247290095088342996445056527648640628666998673336803854826062323743062425091205952776645495461894459234019464578488152644308065807608773246683163063039432188106214447842895161414485512395502912133526173293163691295912048975246728366065909568783129540776554822788737240077831322661728845803160172159602130608627437484400300814440385052346201234541842334733763357624724286587554501476909931053205177051219485579035564288443161737424103525417446276516708278876732471225320395944818348176538933211314242465189387875346088493312529057653882460368929844826680029283724759325074024362643174670633972639816145333819047105366968567047676067641781413113634283716937819449643477608566521979489364451331125919562079390979629821796677083474294394463149486403035357447588062412645182702614625024945890490142779198213591984004565548196592498350563163110801074683019518113854894625839721415945488465021122042590244182110589972606265513825667760613764724106943923773316279825532944314285523157811245322167015743085781547276738811637386821729123340294268607836945722012561906909122438345522598336602536566798622114773130665943106576024579209458293454580141482349752207860251284670407585724613085420647684853607454800122364897311242764356388852047641664090384581189392490805981921553048119299190820297207352806735151515387421190831750690715282576593106231963462137796832233932877092287378983409561819744060594914240097890911427277086959111733823956098567255779088896125077478665000004065134330328688304291273231923247848633395442444530892419531772442541725359729110615408291024695261802696893035403070698089916900497144124350185252702087572092998477668191054479872063041007749175640488544721561279949151160237623877855894043868511780780762077784493987885479295419772604310250811816097598997420836718821106163097223100915858771705816934121079808115209245471036635842921620963683363506415982871798989098753348053319740524857796398035355308287652011793478073633480887415885683528028012860156665238234832518919477494014065963869656760437722461060660897318833237336621941872922786445127782846883856075536930017728621399035280625976921862856391562908532127227428631035468317109597614794042446076377329199847873787274107929272199370946594612611470842871288261059520726746298705203479641922493516272631845508125736530771795364542671469494274085123430880691911764314857108845435754484431915324757534727767739482787261680307667328984234217492324258175193947768026162341471453401991246502798626000724475206874888051969357150324152768720351460796429329076543593046206194733357101697357785327535812956012058753218520610043232237620831408121719549200608124624795032044975217467196321022321761602095349628399338675957519140296867852676963251326855239396764856359428202214457160296903279673771387641226951401998141020094938191694110675467811393457541040970420577135610770588585263591102833795542424230882386467392438873177354051423910291156601355273066145287365916297647374157058283570439230710365884408071735307477582736588510865505877367813256321404414107271197375508030311004624739366103531145640538592528385046353641714967197526909147504011916977546388681197921527750437165329266696754212019630127581639454908712464434703373547322638371237121755919479413285824103124244319079435468681486892649210104325176766185343295675322542055886417587550394538283499351063293145677887372461758778715181619777164771683755968396958225362169117998294938428730147033209488468617025740039647360842440743997051017190391856583539972208974262206188542534744811451976294991707143044438743353202315811946617088991718907740337186410215503644952089118203305890992540918667249676960580655756474520564201571920575864179621464211979549192247066355297547736800411489997930057822109963242045035627690019993118033575209219274084221655036183262628949059873908617928983763933516241163185013089153146693654146412866593435611280118299238437255796709895803335630253982081934205343295151252611965356996846231219682750516790619590633408522875544984299941028018924243474940689558611036947817321194850639959852343117009680142079287952724564719285401640540097855787236275735085641615687088607796646121570455498293310675031158777828621166346674924382097555786161897064820673250578610705337066004764100785996050253519727952895150339778527555546983208306411316214878500638238547018764197802613332593926861914532869476978891301476042931934635509811028808554283970694792225334383723913033736860083148319725872240919343690946000577221767005836134286644542520855362530838725961303994584674817387376509560132124476254895832910202203964571220504922909954278950946895924917128130069029318426856416268656858806110865835036735175610460403979527470940404301108452305215128966569081577412982097120851050493154513198974283816673659228798767534449487794842862581427590736387051668772013817336456644615627946558057190494831073221878407158391262034183132262860984314789909801612562221721062719027515475479648795362468635471321142964712803112648126114761420832899124995934087901736745305009906232420882805948635484997107189698092854151282845855403185463813987345211598073685542044815622297147766116369250127867727371156157062677402358338906796963983721709855526601299498882815052943835882078122530976866416244996567821668545226576107324595232126189486933401228910873673644793550307649109920067887994349767845370034066954208885403216418239624735761297283539413822363347496319773385689998146729392139430208530509431356086049811302131586316851676635849023046878139610018689503010301866712940151870203960402297869890198893287590033406421185826277495735306366980496734039805031127700654586234355321989347934919920012382077617446163234266945333957079096314810807061849066204945851851155129519097422784623604156446670179430906473703418800853295385589407240666049227898575950380877551058041428740067677314723742012721276261765552660924610160036767929248348677933515858708973191733729469445304668275346407260134537382544079503532390939174335173997881326537805734283794632917425932716738490377801644025723162881013576254023525153581948466450113474401879099132648747508190251174609372558662930160053259774520168126108398913031355844896105961095727545404935353335254359831281252493663260952779875488260321136253849053988562086548018047747160784943103452811302927691784466412335356634400448082767378386749120847160925630986648229958127729334630161905218020259400625620330914913952193733014883983609149388735803374193374390285006216944536587323124134327651167939303699689740832964779961724668424490006882612988644485573386097248134240919323710386296282441249791096251946369995388860276709746177143833214255535448390324555609508257090481523097334169458107000215068491202985892887544749308701916748832547959638090325547310821268162598415674098975317847867195605073361412913599853924755315782154616224964022442687013064340325348482300342104384032414517049530454657518946758210916545863401732123677680893431147437917756244246805619213529884359702632899482098231886972533016521723369241759307775028024607202678758539732968903228691954241112631361624211359338991049753089046678559425678084379356848129377476666922773309395953070788432445579000045986466071360012618685520217534783494902363673892831647560616191013230810269057133982230631107871808202706925015462449619305380707809919913999434349788791054681143596944275324336471614320805869843237187897616806863244576556533678130976165047352909250677354164825869510383378298466044798648821329705076287031230593829529348469133406757931678054580617872409985731042213165568319509780169331408722620759406780725413941562731203891026370708588801375530838518691321061404252786256713271372439496814810071466630900904694733145178096734210732541631343974007337948003383581460417794329073678011382273781763461200695002739625666995449934535425405935546218707587104321022558800834249431074992743575959345190289406884536332835129416711192100999286153389165976918986826578299715327118304281416412847462073434442156672287090395667491732476576216901563440998520297101449610533435770738486644912674228757838930330383263613498207684383265301792034751638168594553182302610850074865104178190907440562257604885063941470368975057692492542853547754431293513179280355335456346404017716184231541966768451188227431890384712265193833778141871001041295722066918997589382155449780156905010148023423715188779586761589237806913658078542743893546306461697493503268894557871057712580605408787541079857396481294340153714845795257505340242588753637448448275293521979328479825899248412621361899370459868387892511256419844758555937949243415103609428898905740097512426693087596263232147738068583714555609652913269761050646226022097482348875564038087878923238281581275339477572707223854959664166772861200929940716696434676378349853345709179970831006458061571644944838466999589410624490197289031967890986758915856534854798324013336687582753081906919025861851071205953624876188103682765028919782341748728973949091237931045584007002054461512393666505719146083184453715045396026982164847430076771079831678648323731203297094188777475268408299315257498295705493606634570957519150057789067587722062692150968331477436079550903974201091472506720544511916614948953409014751357100193019133292240402895728002224131331846592480969559520594339574344234138653857292083916508298295212088356638425852582404541619979172570607243887213476181606069711202892130425071742525524049528156870250955788097320393676424549532864406411878219151598497854330161749228274922807737367025851579799770951583451152049399625667373494117870047747515929770932747264606983233961119156255864378475178632742555945652853191653818291805826684385235997105536601563832964414032272259997594201864312697173938543235952740605233576259557704537890077665399473829015933649655023078784285687151590716112039860187166603498292401716086193742798366138563392802104699323173470931739872619465653936150976684143787143883017364896766647439024404371290584805486606585671634650230753347551798094266653973865643977071797398105975650108129911400335036248367498609376149227253471016494741477578875828569427582694100860041734818674855020317525402365888342467631274480746353085345007413799307815507010636645619013252127899360676138564577919484235396975849934076153989381320478847754688942667217041031318029778905368318817436155951142974553768135749115163215298265886627649115977409504660072033295223943900060446202934021443023356593043352413498342865893028625564459688368221084207357142338436910671278983970391616959311594316551733604157132339443531538488904485120855745122678036230668638358343627605355654240642326765317510077060543736240610332357082332227808517363246201972078686752624965285110188515291232256689034923059086701234849287418443208940211138967282397073561963967640787228615009113046237075734808933155644157917309124093739243699229278812355629119077397712881597850390962922361702017711927707834317992016839471517218410428967428732190239879127503952242748947453168356765894700653151243803333665829864547256006899771806391837967363359617628985915978981238612626598818111453711153318587984796238709283737752508770129453619276698188194034020168457574080433299692621612049237425611576561643706539473116714683027207155294666742167259022611663088590556724816116012859900787651901665895436550098809819302227100533065012385486505495118525472474000176246856438975387770405437412487355684884110115122385159557756559041967162138850218473215852638616573890288074812217360116167534098744114659918419117878526361097710793918200823024641279781842125916576000162203131187167365480252566386397321436486724155331432665327751997616238183990295959926742361199436543078144522969812917543099092027516765759273403035254148876834710900217551253976710819347602072134785313185979063951911450335682852025629760901615919611302759223412845264750044110612901215122361698530413830625187659531916917299390517112069052260000327994262536251093425492876899277306790900818219334797202070317868973958250385521194892072703013972391344275664721275940797510143105320547951242934720364056018019759596190548463169562341026186755370227051556303089533891706802725959731181020536385517453624222645106827513410949648901967380194759434736072604710889670020345008664082246443243747829325359523848045800716070176898585182082322455842994862825679809604205548104661946550869259637756041139286678198240547812453535211667943560611514296602242943980270038672630299455172926652749884152391724528264630757375223218314914533116158656054288612112011509711282289058190010427703867078777377888573148209704435243085412262873368550538770921746620572692291569686703096136763055088560886111398827833499709591679173329116450181026848050341098086343583096586891546654085562396960816888885023394715125821320345753481856790061613377076402515362790073863690741321432994418888508798999448037770968601918483280078943636777874497278088962352850679078763139312510148561949302619312161995476438677313722731412892456219944782375711036869062491222092554131092760053982843184210704695639722099635549113419533144816162306819064225729865818219541880643767582079921707934116302692042442493251551282262504743587140975519863663942382414497676035486223477886187733664522640428208509041030092216865360702578716940906194720109684994506011049633787418603970208649986257382234380041615164723221816435503926510059240628854916381986095386976370420024969687276756621538696731349881440550280509028951920485234110476489399748560304233244666406492645042791475682800260406971955921775131165302268214939265797453712799034325570935411037259101425569899228922963339036779788969785946359766572007659011038018127866306771876445150765426215866282868415917801276152933908184199700095256008795053151306491735328397892722420983748002868773821082342376940549988431475052180426594856469196895691500409939811798814357322089823442100560031893651107277140976172174536964810509477398753967575496049762602142845649566172171571837575168653160609250323885961471273350355245128663495719031821562745643213955758035974913090235576833634091297410542125192468615388779791287058372590265304394292181428468108377843594256826340690092060700657089998085002125040769053473837827244374077279898237635785699897222600254374502770993177802889614082981553441596774731342740321206824412942807107690445139372796909602796455745899025206819326655688347968863501511303700819591428092353894276627428053927347639149450648847179476024911647428157422116903479545053768508741676178776655223665009692911751072516781991942490075854693340596645435846497280172630828638801355479981884012664031985342691392848440227291712465110932035510368864634503416233952860207025733343672607536338963819167469015347997114167055074052812670884579696880016945605529231123977727678920703804842597708483174132932433273808430834580609080989214937747972649231423749134725794285656279653532387570902255802045122374419655455460425610112159813284595395511973063458505735871395146330448268648969626473379382413610002353490809501124428587897401644673438423742352419308752272218120349881400912804208077283702315798058496885122802398351768734942239365410166543252424101019630734218052800351579424621127491151459466792114066215946259714215774913760556480109540149639927441192325938250248475057464807423218361297238492970842221763884339773971314407391655790671725828638051269592572417471494998302905615641186556133815874290997215838378065307907431964051802982500555720912570306272360111111697249179453439302169464771805324311788875915055065970185500546819477134297324965302818251989947168747230912394842608243642018634843793358984246719879226543106144727254732160774994887824357974067066681288218140373706446325811977648843954576862666718232226502687596911300303310184211282531683934983859445952498698735222607385702193839288030252999152672351141372070506071946181310329059717061659198672693760098479217606096288990530825384355737880535260819582249727672310430469701960478172940751591645112415704257383558698291526164309146242659293151483242437829964924955858717528424364729057985303542701777967148874833026901589047212588887613942750320306426178728129048437850422181570785205370030858507890613330993445825512718328033347923950672048052281990936099244509242665861303885259002343120828357023374133487367574217686632974590657856750199302686123502933825266820466690958996397405544508676759190875217890706567163147966016802735744719976510610445235060380611758058101533632535685065015625276354188831481090887888894353795078591463727818365225789041635290080813278644323336776654599639592763274600009171972702653034894224806845325887670348667883921371120255307609135922925082036612808878128021167722427446924826434371739114002777593427883597646619412455264411693573629177200330632876133248595698687527416511225081365297418119506808779228163735438130680773120117290797478399449898000147204576382823982449692793880060789603447121321144254678682922678853013781722779866861895547651274359911034650851150097660959722116589399133296970155018159507185369514323099077739967368424794631862638807740961927174588219930858638507204362121969416538822216624220778520942029907672233863597866497284304772290351495849039609107060290328356334440110760314047846006282464798275486281913980649659375721091682201875631966038490055337454983484453862393269282869183648900267770839478072604718155686512371515690513103233396833430113700124146297929715049254213585669547926711902273717223904451484735415733837119370545050273789252188936523512519804785111180156756952357922908155651946688460193452017536253389178200267215499340458425377296358585646111976188524131943889281764659536097227544829485330659645402294112708785366181791066487041936744837863736014877316369622193604630489977077740284974313811802451215298672157001374808566799638800590923163616498292552551248223577220927939183393518385915804267423043141620148039189328563485489799946617403100509431423728730072195363186089207714008801179457989820998987659525508578323586802471107296404726689081410444239658699133795980261135853163290816495803386534755294141086524667278069921197407261917859643652592450568396143093814356799494438738304134699264068751859458491790993297155275701775971780144702037876338354357544392437109641433760577590303313329245145271602465631441394441279192194340304471534169000633126169119518927989642133314680731387479498177220783895819385774291522499282647014178333951259682239560691925332650637110928158518052989425121587714562607362338327474201751470645347469657414215939924240548365317494791361673248433716995843884408366435795595518953892491526370459466639153781333449878615235556311120623850622685880202711260711073786832107830264453348901534503947303488800859472426716303466949205958218729983293644205477544493041086731528629819392555696734228772066850494454713201191683532325330869881475530752275450137346510127691688823589521389659266799873342422822290057648293564170467330524000685260795012412285166148441332532657862020210611724877072029436020691314761140536045185832825527884794085740685251986517027666773640330966096634622133729681350585511223406650644170643032829116749762732419876875090057240093042164305994027345837060691524857518880795432410939503274933436852237242878609581081428183774050139951406726615931396367325102217147689456196438457861584961058763267736982412054089747915682657265529021086638622486974087124331190545963872249791282492652480506402768316994454534086377347580661107720941859598431904734880633222589362193107742547576197540800675743908030455764457788299481198189891882175672892010633516908587748736964487337689136674117834284687513915517730717144427403823126056125901478428871640623116081733280960919193121727182004427396834322771478053476247865844867198101604789813203922604176260883170915185571684180749858124661622773169344530319537027351570942120864188334644191436761631836045257340718986286135730767272129562726679850440512554381793522662053888776576824279824100121788399383168144331482519618283249715844148505520727736168631713316687294485636993918478366925026918282725767343603751868536398046627383483086337175773054709379204535436120265958858296137118061456631858963078920632513951426064298278447970695018673514632214320688062884781661915585511303117522032138788054969479997816193386217458943258935274260537374111898924637282145137505663524629320677803192071872281644516556165313308414012700032407137792934514369267514855925174959995553789371629888998988621796245288302623819878461793194542156763725086862990319832440188749851410720205654036337013015266110685609731912804066357368513515586358567465680512478384825026271067583526391517464164099641466870498563396126825479010010154201566841824136389142641984397804131288544557201813697952000080679745105108276563435333826239135902368449037758276637957943678713123538002822401769830856796749229214613856788536252014157575555843321878362266642908700936795225387410669232452235605684426946708155799747321317762871705576226836891965474492755370658496872180661721773594907122747945075621230437913406562684859496485098248544025138034649524188958079276905811341834187804805014150065975840941511701316693146312591181777129993730988303129778159329102322087419096993206862754529781855968633123297192406816942255767594695976297797348953351340122289439357085444797110055856463450546888944377157058385928181946695446366660628359626588831859092149344974791329448626870336386818501415941558720561731285688210400420725452020691591879177758412945929136039945872595754745200654473408678258291741702864557088279800792128718478168824469249924057452441456545851003250782032148660617435643566030385364398258043815873281315404607472692545311419174291341592002632415187917376806235187626667567350592717718411460651182939008397144596891896864846119803277409711672574393545750670768787135578678195613653106008070509960892688943959069472346634407632102808973430885073262104509474567778573127413485182860686012871906936023590350315132578943181522572831576763669547603033742664790717693547368694297324341465529783634112508248466756327438693169295863658074402752978796557315065842212838391100477268419463334305144915773621042458548846654761724731651898736153539772652045075443460753586653682037148341756865854095196219388893733713398110453506021841168820348023633370380993405231744310764293051165183863746775424452427192380141322502399225245971408598598594730603899805182722441403547110008968632842919916015638930703494170722533634439322475886140428905097143113756693901234570172086742332115796313806052211194251170082307999139127158093806885070273923468427531873547287212163405073044191444268456101668916145006643603099079907169861294179261145337888525742449741020502718079774741189122011485867010661854526270036038386903626473461181838896726880126866726583773149209371074664682664374005416079750225070706586749409925210131211574364379512549029720605457445328622380412942976209547162260380189594786347103674628517353039945348000140801822512980761313239702596398945875136874834829761626175448401953849695770008745743741317831612527261631979980818558506582257989650480520750991916017754580426329918777002739045232836201139223705673320313851021009008069130637029538394525806285178557751306596418613303421585289039393486742326195459924125052597071512892891391481067278878189332209056179640515683208981182563936452617544154549355478662034613916205634399216935281856435286759435730369491867567936601141625871861138935313736730135003774969024334325596347987035791734429374626967874483844156993419823342390848459750477797891227335126751265474952152851188132139889466320094866149531748258690956815896463620315944782228278948535504343141019552089923188430955869293669030732037455672970881641150678128305753115533467592702038444141528217342915254852021787560607267400027689284137564456318413828920444911646367173191471785708025768482095306203195139169157303671914427831683318621707646031676275411797894838068660941854366957445845844291316095360223022354075620569066430501818277873969069970013597240973308641145528212453602308096396602224520562499179301424339883869054361232111311686981160302752926638575563627333306917578700939865904882896865635734211970347424252335200682133516536785070641916042105247947282257393340552396057287607298436546014442702403310237849273946488023886259100697067631851284468451881189906800624924320968304087459563257048202555617467972290377886038421139507997507381586255674985309973433357265618371274419210566287311565775998792432408417835128458806139004457114784515569353374074007757490934737372303240427991990070688193017600828960532500450966046354155073648656296962621925192840833209960262008496549177472473335486611871069446752950969801522098054807575622126241363268340809195644192921030497940889084501068299964857976681996135833717453079827131848150975959903968874845702757809166643348057371255746533182011861739846766162829275926382258449934546749017524212307614132625128916465361791035277519000535548956732852049121907193597532645280652116794586655975273814789617952564732401006753739722493739896647639452100879278288445281450118502712363310529265792365321830580295197780364424705127598233840255400246327363361465239738855305641331055976073657620808897514008496452422260741179490872790362031340553320588592483523868970138771655271741452457183055180937252210937759927434038098792233042629341156023933263404292310857625698891637712228820699422498813395436983978729567955683171537775454417541231662385726513929191507348578319863233302176735001266959835280396729356418874219638805816626771755752979583222621905936996585271316397832736886502378080280678822735504072436542494672714369488152438809815387845822245362454621780171134271204814479838270760270922181554841050744771928505944989332524527031567537279971639823661040008589694912256821357238438643091777307840182862291364441407088236358429481981310880045217436822793126188338975047537431228387528007890755984344028574476461772625851490379812238216800058278713780142303801642673504183837081398203531317606671115133170946156132456018753914564538491954317152444204285612902557638552830762879064489363554744338310907519413046790795098983623698448385260001009645528389633218229746926788582516998357257444484037501737147001585230193527541505794329687197489668633489960449663486777230874540118428578038556712294549648768197067939224363703949826782853465417008276744547538644277597878757235027954951209912283162376631961931520461924847608423773195249379261889563503576395849118985501529152290231813525878946929672104738075357680215267523497091549748497077312451405001204295898140451218201573278719827195876837048026545314385884181618617830467171545041056731983708904288397121676183311971488468476709590477130048910274477074078597108511534215721772110577543348532805381726321670041983557979983569630275170112336795758810645989095553322671908290073834090404430730387205790473553423192482471055194249373758429426652497232668209264307890927806543156599347661847761957221554564471399518316977659843153741735804872086841439165549939129477161087513304055150582154936129887010828905411130617804676895381834777761342382972695520020243181433408919574710452730128609095226337564965985453588728993421670558879193573353970411252495738109164616918405347249285336711302051150529347749283051157794383966742779268619352775486170151268830646726026897251623602488226103329450607826312984691833100169190742217425375537147583858795431771858220461701544526247582946131663998249893360207169952441649763382529721182871316486323552199698329674600746709051119570280167337677444817909530834098610857513361664756332010143052191664318505008852452630748467894047084824652761368878010031571794724539178758316998378586771433949357640789877749628637744287184290771558285739882814401021771851617989095926421386774118128428674913633775222617509372258426964642959886040825517976534074995300941917624487510622944799640945959619407978263591918063475033564075832227785503835475799980850580212156721473249603287615721558705330283523040568585312398124610542942942290569343902463162945283568987447301528900073864511527606196245875992961912349531191452094498350389611649822570367822473039023268577309872879605289627745401207213629073937525745783825881678307826253471363348948488982155253650120431427664848693325897815814621019155692552712521810420965898126165659877943334627822029752657748666582460997112021898782961392195635228647415753885592938913840805295595649805735625870423751752793669725944355612751219440118063970385592148650685688139158778085955613300229044817896767297386859042896552218244755638992492298075873369092976645799134105573791475591547262682249307811739703129294858330400129557724299423872435628642927548299432714919805771220991318364237692133569252136297128355038206075454543842282307855856216607512273674709870885973262140766798923741371665295296134865186821666004100351580901624609651685584193093024564009961565008611550628915661194908304203074111378876022425610702331890794106015689867079449317690543039878718785059740526829842392944992446390183341909099783090980843766331877438970940897183691264261734116979677667452885927035091829652073419658049980747888200784434003797500088747328935716939767734295176013202020066442432363885458738694418281728329779928063528570676940169308325387600760156487168458215338553687457121394773742973635151748222241468055018194287235402671374217837064862447657502712698771459417005515850571844466545809201392941765923997751736865741073055551664147723343310332999572183964981990783300861126278795228740230399647049653388740854003049578761471716353932394821764795304801012596001864808766265567973291257430283978464496987738046705940641607232965819130587553355499347665161273926592262015799490032965269485636460073992008919971103831198477647998695366681066671181528957351188939571964819185477700952380385385277515724759903962367248050287371073675505846736145968379110492396834836395320074983055626550782639922843960234795904454255414553852582875979384290641583766908656794899494684965933134180521905772270073633932028098480766144276529827876630627617885702532256140038378809687984858852034045737960821894483530941214507940405438512493031425227002741307828823147979049614890393891203970113962624055927590442290067038660433640735248326113858091222091702635457912789429117336520686171095790651477517741902300615350646968832977350357789845288255019053125808398919484032563574838102560834028655370062968735650230255431986245272362216554175910970251432099269491859537110036823288360135115789590182824690581564432327429945160617444551653010633018877293343158155335102815130209775433895370155010614413773569160590290740559656795982618705024840806940485661068217285309208854688234978316082204185563213011321162843595675482502800935371628353916222027993972176409289116142306564362231337119042367907337850835176938194162505579821710696683506850792095453562494089439609958211799144447021865797098275986327994592129746927506488921633784747051654327105532211160060729884657113053098701861328530293758396163372392359896755902391311166950890562679698296229757450395594669143613802419853534949918524850185997044590676093452851065857135515396440018259506374309136887866871913861872383993762236480607391193561201236569940773702682471727526374163445141589902079297296362354714879923515420717056329861310759475732274259254970185779712821737596815660203051143710309129547951425384058680098627435175154182752572072625917319114244696663895491191507037088042492555965798582320797606827349773098221579106617033611550439835209210701538977871899874861160126457012286227068207072854140001860437951332995798808633995790911829241994610333470606199308502984411894590136329064204690798065672862943863553907105821628715984537522053038606540916551049924777946907269302061858334331747993233209176745301754070435799834152301714789486957749850194160016102634521015842094533061950653651053456932297427164169554077025623086231839081328920601514842754746745626865078354635774868092596358423440499914419002527502633846169954141082113900160113851780845020270356923900020821204034980752696737449132029711716516620014881305180446456175106532738404722624789818171812931115231979627388527089877478902396037123867321146218481848567414241885302116175090995702763958469194484270141880956404382129420030756079452778959470722929194468372804533989007240700766836785446891980171310469814400088780736582065514431941809745031811524343713126407107426576797650893725841696086484181265871721374425878325743863220166231005026721736044175531285757345382955041606620299287985088694630190799438208998481053692837416321336644097867695763952157954272894594304842762241350526094250174941350570093977815118344539890286267861858420478472717601794768723677121882906798587977912666675579428610084477397986821816646865466045305161392876527254797894180926467948023850940576099269202850325969194533440745893841922118595448283582721702199732282692815991854897796086346037742902932513365599128163146022216295734857652566076538948248102727287493885607159919579077475717957539633450098279700743825600349785903708531281917898914752644401924622748716520670644042158054757859126706272172257710235928622038028145281018828008793844907942051004220965147790954429576523060239129764965491785889160355246355495198183180479160628992994738028720889417576112996845111812032233522875927380429988562793266495190795348378169123825741093481855570736042752122195267142148721957785291877454266907122605494280826317530739567945801503934498358256990644042258103106215831196460011880912298828710055197071558006132809738395782955666949363851824054502485016880155330026197764930909114129987437514152556143573032953617532667561988077283553466488975045819667955814753313440170069902567223308333215750899113649830377416486584705748877691490628825235087853445359298983033239569508324914745622634891553880399244252937103787521800741651075440013457985258462726836626050635459816509648004350602030993089068651421219507143207064973307561452152324566030715361579945906273120087576638907321526529530725525529850557321763410347728465498294283685498272659446288968100095054621692100247168596156852671865797527742416906521499174530886286252240366425480005128956321002343878149667430991953946859523343436475809687215499857026071769555212465459387717783598479653545190220094848272784268085661835371773556347015781271278285510235538062312125132921697437944516306884027309746554242154871634938806203743840553053939035611625420491645694304080042775475901514146938209970708104664941231106523584502148905341529789828588773669255952228423080807146740913501277125780861213981102197412398110608236474804650230874185479548363584901819225016616540350263372254354309734521433176911925034480440077762598711717057591804416894981314998791376349843743733711398077883109477318497846781835882123743475806701722914603984870988640393457437825679233860294871488967027918534102225421243044428625793456493435356343645214970595030631125001249723411274383907331442318299778224767217653033406747796085148439852233676908960186882572524374437299900563551705768468278103280042619013323287424383292442905064641315291411838529721273152549246772140349155678503447500114960841147147314178632160771419293178186677853989434314069463650187293966174635646587316654259954485387301038009393240558783905364036227828506676089035081947992832197693989840846315432700692098200879304184424212272227939622583919193118081858502295098539669318320433064108888446712460865989894276258590565504568414559773050395339310604428287722713802813252439470495618810632648053176121511664478332011631233486700659902393649996439530756853540558484540841172055076471128106433997752307116099627422804326217483281781254040220927362080155868490213154379174951223786531650134698863527302532319157815255134980350171455096005120514370053948763878658669648766518854661534848182278715426979552054193001909451560172793520653080287140354447824343046428195394587138320758213048553791619372011304566937379501817729101866624276117241140259829464637868922962017451517167308924141340460842651657710496144988531796340453452476527634343401339616464383282486998398747421839357153486119265965212509355460815870671997585885732445057419150421600893868672871075539347836115488941613973768356215817173238133335375419484732025789715034135295880966916606291664419809274253202780968813809431709136972187946431027391811463776647432541792938575300057754365718373807091317463599064190713849502096153409214656046918436421620123646955880599816590753410500262207315483893513495036383695956048686781655518563273698654403427281052650214223250535078338342111451865158204861619332518446644081721745156721136510820862230282036073197535981265775792000351594050005158262540984233359622883941261615636348216354891348916033657174535033952895244884640403579711543605786971627891192343016178292249040786838636089119263894313112470113364981294951326902466593616045824781466987079921908752330155894396957400242930343435348475987388848609724437407517679570981204504572645831017875550965649828347299795345449635489556563418846948364018144438236502069323846333845035868168799315178018849292460539554927231139209987116176015246445332464731516614189177225253074162751041355512547264865452588361882515492901518480843646691211548918503004139377802468118138812421082175339150208412847378704244279592380324679959624139215052442189038724109210581273103481070563327872607992830038718876318872317303303541138256830259982680172213506139450194365150979119290363098966291024804905324635305715855323186464570244594841361624653248040228812298517474112815126924417314597835057420503740921429402332058700985307327467890130419243784221393131965064810846921179669372927638398758566206580777010393031581084949115827800003859620417871623586003723562294336407130350956317643324092312298646935243156789764692721803640469806218166643932643065601892761537908564949581469701955616164305383399337637481634006256870548325538045443910038125146621719951400342937423715254698682950156280991846964712038831232250807071625189936143988148634131668012946083180014447585665799133243472560637988543558202229964046001434576198561152042636617507994151348814276349714595257165925222375449301699146841021094638078600163996213072454012432624029058197300797983089935278775885121073229522453808307981344643179661682495552611974590163239047064220967862120822761809868809832865447263959764349291283466187569896517982461256707403904938296372313120280438218940099886017397467287060978453376533139018254456060114448222910110152591864593032362390228617789603972042198102438703815760080686077739994387088965264814023061426460692896197653593473746604034738948765105037493938170122982893721237859021269641148085685057843935541461761672119401989590053122715310034660611851458308919162165731990266354557105432706505327144445869014347319396852230525499114441068499820498245867853520589923436551770133185833372991926622932344110045580878250750990797797571583316778018394006559189768675802018672153474019941315578315911216116755591549363843141906939767806352653773597768560250676115848858081000421473575601356936867408972945447646373071304769553676400701336979973220517726741781466198929276984505938385409256483587492984570858967567845294246349364942843735140374626246079526652966725943434421834798947043877038708858716280157299491761560192170983128628541917300519689852960186018573138124921490355462211459749769114435964419081652125451653152081207668303800353048382053409519458529846900541126376163280751331968125092287732928432349895832131698104176563960726694624797451209368862236121280138762364057849124808727029930010215387585772832756750549420485766581986823590264749181439007271396273764170006907202140379562273847033360994272120715237284719793392318746491368405511102211397588363389606302303576520724302849074302316680372373427969641756015719959605254401561737104569763310052454347897710214322455975008562603493889232659098940785043913818351103761168429203905898318177589686489669456888820235188988376510362605620224960669816401417350391066965527277890666202798217220527184589021813254996336958746051651579902532497312933727699149217252431974510052457391383731901638877503123866835019103106277088332532916105225208620153523003786488834029404792189200249396905224207993296707328690907267253811798196404848599996092969992024607585126841860963272413045312299637339679723172406632298611070864968298284540901636839100086221226768465164063730317841061348877099547198668975727190014980811753650151327629357287304265669036136044496992259433110303178224161254079994283330655629256271625831789104343018421260499460284324248775669930934581867744911690021863013976515910312224028613012505116475986919102379709386851064977559969802793220083358136089951837590872648471170605022378088016817404190499268612884359223643404607705503094830343367627370985234649032019805619300189555037939939655821302543724982618447999811828642253164369574602417874524441566911338195035139003757118947911368398992953255756165788772787363186223246060057968296553317298381446303509938984621541826397738632350264915916878641633236256329938782527045793970797999106767064892571761378494639265233108285232103190361928954999969103026748660744141884925433047108668842422785196609148536938956479677409925210729974193042452583247753525751258555632539260719255110650379297224125881174550668126951549264133194412631990608576244721493289089329568561933889393143888486277657084635442116202590222598657241521827665113982229130908517663681598698241775417157547986698804010070124122221054142615688554251124275542881714572119419842913438722286209195548519620362310408402522727234834136354099857156029126748730725281386708752457751590993999479503679136342611254511388485612344029276975841020185851505231141999320048294994942414870478294120627625261569578190214468892262329664631691511194383532902367541434797172567076907668353862235488445310126914145678624614998769903202333149963493031141897222241859089063688511077886604504804288931131961798489031715725202155674980282473712413633018754961361590717601901041516327395884981053228241681572067069929289737613592221930189869278679288977730782908206864144401820523518166494424251947824095171467054935204636898376408148574537597235754556020272041422186443243617478473619883129475460511617689726089317722291238086295154509316202212534844158604604889497618231714794688814099275826558891735692944438856215812908999441647632934879415259296280988341267148097017019585920732408332559676475255000896919078947983209167892590310093869769005507485969979343730641408734354768633856086167943875627538767308864924849581909853959245101313968419780005729226065923387317815064853379414864318555908164759114400177279989230988021595281066805479561647730128628193389543442185999993072025132231072320829058622366464774024992174183260060426496942340271704105331010696001177040657730047298531526337690128262722579316582258076638917925069850395868690137940906366996069328458977124069315857669175925442318645584841018016678843151926555819308494335183999914108257851536443151019597414061964734239792459720429155593400503763038285160191314855038108444289723029709537329123136092647217683058675132547934693518499686788019496150362345654523737232122335550309929395403121939676265388349031081815116228718370183006965559112246655387405254148160120620583125465712223202863051005308456897446416767139331324396334580675593690661280266571866683656206279537291418397422303129391228833843275436363304880068194044443435929923169500850990678412808312926766785121581765992863072746376788019086240181518941345334226148807520408322890253474282331058711099452738119343353416314583128244180174851421718025822327265729910179975991545390883035644612166072034814005052617964131086603455313954764574716222213722935923474605097829503632999165059420039407545300409341614393383608670393794212005439186074099863939448405026223401992292150261900441283535073773519508143886857795928980204024295541362115330659718321518312734945423959974817420116823509214773042343222800728778475764210823699602479450434554605707429477714961421167748212905282184093649804195481129675012588503168893774936201918949839181026551307119947057252279450134102315176787065182388511436088957402683268595480400161752548471658637434815961351135918355129793368376263755076042417808276990089177102889662388677898955099402797518834471333502521209301783895041377052993349515154627096380081721786297007200050408687290447546890307827207533827905545656092011591022372901774561705694651492097590958918928449515155543705395633951417563429543883410836600337585227238785536003156146629810067943947968146265175171974363737463663359343283990807671972492392339799491149853293984115111263536310362353389309011216357566864212600493625284350143129992218640603364891999626343682241808691563852411876601976925036385984605163193354037950831322124682125864129657535243539377047147825419442371354680112367910375174582841951238662062401700966684793687422602229780382187608459088633615475479055167609845539946353859568761727502286620147487646318431406019367644547877976162949431268673617572869767539845892042071143764838927747676452601330477161371028279487123827047710837441069126591969970433169972551524518252529719142617809833503767186779713180558470645742324355958317254854220385612498820963127462731744356952516988259769547500494616600881991856550599040193188354614719925012161708153500930011081658478129290448102402722544963900255270795371654341290908273814865041869395749692059013179792467670901093012751677900760875355816755494413623983562368657480325244171771198369672615765729110164050033742322311143084941784908946198668887347677252224078146111029898686796982098489972307041186132910577650574398627981760689235414437249340010420922104702514340946960735325005530712262568293646924733017053580094251664328975134130216510878471865574691914058755677057127198544019478594755004274381276375641836229159267956445926507241785770259452042663264858171464983778991337700411732923847258561361301928181080514592636727797981708541942011275342530680293362941498708052290357080172611732192681604031437946697679558483388981286009493857231237938411448061239891236706585855491096584354412288792164450018289080414449658786225353999915766684428414909763119107766419610858231611396264068019849395919848204851131747945408041166736727959015812088168171045910539314991513348643473662341632182426851729074600357789416844912959389332589561075541121902529179001365646932296721370905177061286120687526998675818808390056720018877023936638585346297936120545401684338395750248080573685291003347830048994975764290407942941444751685274275126739578102375614505774014413820951932721987480934034086562799480336821865459099194971638077946011222439040736001315778886341319820963362010232352035606022448873981317729650113640841277894205384799241750565124135322571762396300341850834751274505104111731695448108987058762148862150389898687419272015477550125783864866085873744219245102383541564116531723900677233515880022413456603077928725956602178364137150370095110792162067644005554146790476183006312812186120455082993332319558474153157901897400363219983456640634303527683574673008870262887851816356008525218373650094750850545656126174593014222171573817038431512045377130514484291302063382315097973546391732671564343292331274582762917691016256585040983542193146331919292288417118202204026387484246460148519632125986349134534179354585237840093457583090527786293232862290773189905228070055044401547914146409748249483168360509503773256738341286328842093593903106403000740786893152531373776033972720667593060842814518727815732779769926087314756975426803378893667955971784332894371937587517509673622264484279938169999223875093267149112829895290084015326687380472847713027938581823063659220615294010199227712277203781161351841796099727482717277866604842437925278711653556606423399006362195358194849746195613413422726384860799214702550762031105717265919663637825311749536157133728068727903967394373966481003840463216183985098444194174500592930385710455408771440063167522382989997155804589103492917062870599939580141421448369835403197458601196797819692960456902904544957754828519814345674241255901856340165824110729047676495169582839202369072275861153011317806352687564302300679023407389574191530478466074190304785220800883152820934667080325515169369466453749422415384562406049951797305758250288791352234046814384115544386265526137670881871002610924007148323554745461735074924548095455236408098132705908865247551062996299034939308891829694227564267383752224265944919412923336789317083294604437088070046896671381005212556935131523948937208731134472065631762677710897972950396421653911934189229755130398894395540113700007115505722095844421387850312670642799917455306101241210692960724465984607294867666180633821121959774930113389856499634200304288520044566151378524006814855373543863296404491646023830606353556387851837634923998557373861679112471373596495247473526123891184716993299068470283435592954474674519043663070784231347447684772512169655198827755147092908631781047644423680064670571253953472744909479964448051652946565772398742513302208975777666400778657321017632788484117680004505567445485890049863428039779369946327938350220798641871574779669528416113733278469419532174738376297888929923710863327462149103631692562318673316803795706704693602940039460801245427287887651315578931133655648143944666673734931335305956199954124658481372753195050367834439845924152673094486001549105194019116767826331911831549704042535521303033111046790362455982710298855278244279248075207606646063797142755071155266320103913230205524590566296988275003931945494736168907969328949440552894930390626074884628872075654892132006109930809113038512518896283427650675683176787188596126839332782470902297950276483710013095675133184389449863680729724009809846210295808742095078952464248560616326388729608157444491586193801767365049705111806387826171425376043078570979046832075976186381984504023763623904829580528805555441355748791950110788882128174546462446559204022740299388825611124575218082256936970400445901072723535443586451217224871506979114367723110798429920919545592561964446710901614840155758569432657416517998629547889653662676670491451300039768114270659307612245879200142584180553378551017134503097164350020254350407558623445567372443501287707519358854160329420349767011895740812898046993799251990953286042326818886016200312821026083609815171128054898160543718282561322177044111156276691589237323249143254124178260773690550612515030282763591372465534043635938331449538736081912497718881688587742907453305301993865984702503009180931057137766989958751787744205918749082173692307821939621806615080284478312095171982836301590720751744182806868842722370839830145132324153340118805478826194462434136163263839997483520705783858453330500401685947948992497441200635767854202160479136697096749241291410257791273445564286597012470448982252361724738956977068496679721294681137421753896354108520333465909484202599097738753509173021734906154999662052660526853769526883457451996882930807707810643474578517240578354695979022987611153830208445893673350118496096361681886445799037419978659443799983622066020158447993451295138378203141802614950524721392038645766464826655752769920417721475290766778789965813700682258441277990877144779473330970190463135116441975684337447008486592044238228225534662611203608217178938995936693481816235942729339048388869481934262341931644693249844976039118887860408178728197558829138174422443971895815968406173620222699573490840367184958462275188514427074035113462504146400398404967438644315611454988055997909599237662741527095106147189797929473521487061148411727878671183660851128305939201821296282472709942234463223610052099877313097575887594057357702804547507773101934915933708098786873017367835715181258153079257579093149060146042997256851723698191531857042925677226228092701509090086459766544987437126038288160716862343726174841087732914346400392484158410123438854142989251772696711938640568630742623281481112377362130118535006006477477201059497987909746049846843283612601629589899934091947921331246765905543116686155318475714306108261091333391318122748242844254445771521017745759640742185095831560517066470550098741044745981046597630904287351820150355681663102293686471844305494298717574930583866193001652832545893070967780951649253009592810231219777941371628158649121647083520091549238537994760415781471622721119170607128580372264106002783441270541302041966880974069967076829117189033283552815884530323054070933106088681634273431719380340651789010789008176896862928564734041747657164083312472212188890247825845016321314625682863229020786318900217777527777522527430208761353522970114661718584703647245939185039246276399645524342625388626542779283305187385678566300768736151086623224689630724137575024756265910421590763542800142446481725004737159980860772177987386548464724293973788139741189379390433791790010079481074791611298680450039887796068988194309216454126188461948143485573557910025648268067459414435564584868548022419768916560346627465129158224372392799303521347183423480432489369826861769557580188973207597332911361551884492511004404242864223050630236339624415641918876755765108258736063342960451395640743353392612836335170272098917749690387780363766877323053315962133676040945095520705229850082718889299223787020776037573872333046480752512567359945406603721965993926873329625610746698308510391324548970668026177971310876350133771144085360820324179914698184307623187602391581784363031683821319353782826363381712765496684340894381317763729781502391714197391520393469455893627264581239084433786320890041515243182787624133077194346441616383769691506435639775117542611610583703874005692274413026982941527403421217692936546493531990790706161213039861199854358795122926297369465988052787833953277420356512394655619471259444277212824453243687984925945116031383407635861948804284510990782011656979215973492893244973857489793396674746195652591200058930064073837889932028361646140385367527196926508355482071357699651945135103731487534860237650143290306810189496797331323865044168223225041437889491903550077484872415423866798918180901030871023929990177759650258742421474921749638159047265223650406784284314128870052567091422049008851624365385718170320661674229070748804939478779910237154243917291423029245523507898242829372638089676808845179267613796847659455439156901736002947152590217725505764084306607915605792429379545641502042579608441683824437032724627360710042284781832482737484588664774777494691137556130187761916794570241243374295676454578350079911044427491422017331835872747727577257466306745227774119038814903718466670969086046463705777244111437530006337997651047772319975140102643917928530324653449500689826021278110949651140614229496005438267963191692390077149987456097284938498673524576572139185127250341676944758697694806008954179833304598534213656083483961757916026732987934880211266929309058212980981955411015333520486117665984464603002240546458470459778589684339669943507581982840617534113191837507092424883329998047975876213586861646242674871003901962176852092468868884156956225941105734146521967023571964305133069522282833471667440804434641151174215879256320625128415606314791481527245589966969646794520302972120328934229616932393088607098824314289502886415247530207965650602940798496870045338866355066457334668201653788169661892226891610313498250280035650173824359704670198664708045590704431674777831294854111212176219934028337164646595416212653022057650436580692181408808616292735513725783401483779048899581182397925045048467451433057152298651468708434175184331868838119494776834872115404193368592907687010162544058677499479704685866884104123509958032755062350032497015749084940369949634512696014623675290449281060325679255631052891578390541490238505941169969172991893908882923204817945711320029758243878108506039788376190582883545296031679996511033275596805604692431508495812350806560202359349412090336914585031622766126262353664087421044042467855202093450857806290862283231674685224890776360878686113947199554421270371157008158260763959497326657119652439874141059226723769847215466415275217824360429184258241543604401484079676940447916848292114440733863889705479783253443998980713261592868892862255560993072506368893657012489493678719807738691216705812535341401881706644474697563490266191926280917045339065560880755117439683782300266178749871978629877815415964511146755153228166410201918472527706866411417490185202439306261910753026810832519599532674721953970339288948614563144782337725866515979478655302593125326080991225084933690222531795071322260675458891118443455062340244558907017831447273035586054303911571886119011979599987706893556699093726788135739581522568367593568841457777765642791076171620648868780988460777236430767718893722219670766324693081041340809091700285169815465878867768034980322356686706023637012799589370765351023893996201767193416526235630584368507456465950942709156968952690219148462967051022626384934433091110590738947492827646716245915863949184571643939328654590949250229564712603259909810248799989644005286949662883345179520764203475791046297927532063989761219229762675274663336837766466560273301920646698645462718689536597641167461998255825626588243698226311667056405211206400575830729863650738822800231412476150929469737733900753605707393316845130875864464479813649860664110079217297644621076176676561767485387396137280030431340045835084748611330347473198615501252716422011657559786447391568605722504264553898536506477123255899434472079768938948799495952202986440302149289632960607849080785997147199840289192249830300355216001562162328983372280897485892461934001356570230532956266376158391809048598993009288923621384659501895944979518914392746583216495179127246133778138217797552277178325749291238397848513870307347469151827767633274597390837910820939372752541029674459132643807633552484602453020039993656314037427635215981119968818140926605790403236910436612048197288424993327413691680536139472140175139261909296686868489397272875104063026211620168777168556792582495104909696111484131055395836855610631538655605820686316387894760284854149646870376153152308550737077336617918169560416358689640044438594219148929826709966115990505383042601633847066136158666507586671115254903244967989524996249783883627702508550068192742396006323022795984244132906623893576052994065686800452593823144483703505385159659615402773022688605753228826829972308961833541234412805444881851266889615174771795110243153942097686170768743959255708464980701283366347182477663655282701123393890306203865624920724478397582983716925342189625877509599394484173558767027577803015086201715237281253009636833551393756198738315166779268860631224433804498103074805199841373954581142878373048302311269448679315949552117702050539260569922518028560030904743004158980985857259602738814361704201202274049891709805914308856119729676951495230855633462697869189639608669749703179137579999544507247285752052787021348893588204828106880104231033540054686180663513362508615262629584148293559237868845263543075842384173400264826936263638649973189743804112788189117834030660151549781042148720330243328329107559436406913634086555012842927846078878284225287398182454814509623229553725519835013162907307964270482845479323717453576427717411734316213074252084687436851208009080009794549452675557108151700181041065759032850037364611823194697837049257112474637998639319863323973206525767972916360095548611714666132082436410884407338198235828938223518782808524019894046413600519339400857100132096307245755636633036440627556334219771400385495836895175322082529508109543888097874887777289491633268085633316886196653192099708650918482804533889647191474131408999003039181206019680830879477814452589854231899327676907110778770609471935089571829680208035720876584574485642044295431955930369883128283650596257159596745282095841687240480262529761143032467384990924518943956470045997407856271392185255570871537806996894874300743206012896525958434360183450049112147385628571543949406448298576018088125999284548501281709735399563990895365800421890871277207708533292272009759099460185748687635759003657922992130675646991880926889948581931059928423624246478543483908475502643287739609947776256106121875509442542628673618074892185755705403585693390083902444401839816053625997438025175697267446004411194421150490003046420845152972227438899301736732826200458539094187282624489146337102387424949103075910585567134698077948735611399476887261757796158779649352149721657308413789935560407635055541893218447441358331460993311712773001972263088965129274971892930340278211360145302913613060082549497219915136108907774463503107397924276586407019507520321516817039272616493248947733589299796527009813596435093998209438092469618564571939884871793697594873036919056094841069561441543451236656744880141720492646639144774638040243267553082495326825081512471894333575002785453551951404233873011694651067980733070224573990556302245057918353633134153065612313243700081067471109940228841954616279094870762899996554452269733710269665474722567142858676027638123246457424510637671074227780176776036483467763927044614325802743657613329885731913782374677907478025736988110794704154151695505675222776366228994269187305369231138228253845839095004529942537848397484517156984592275306655118148844686723735740698904612196028725205816926035175774250917994290211622860281101513114059173352621772148680881772078415666165839444433043562751160778177790551122057260097250123576627549859057261090148051474356983893477784429767478833677697630724919190721946115306533172941003079573459534741751429604682528873963973710433031545916477592386447938425099792343293351100359131725035066626224707969564470447391543433830906719159404307220779643822363378237829203832477712521700786594000996356373925856610791691484234960956486268747782556166666444051381568989533500427049567611250386464184172157466912306732569813014387717967385423267193940839482790478215170189915977785719615672924243038101215149558254776310220424584230035845465385743052056586313417959069807646386975169418474029144132601522127424732070134250893345378603771385534986890626250347459266225197506212849378386667519182697832225279523959980258019918114535504413773419633930288702662503037724718097859949853671971111186850429666061870390320068470987219153344875386872613673072225681794614126796895831137614339461399761102363516937220191706805271398970492153114665743367823720738125726283400838712692031877553831104202190630028734042147885775003539031501602078743302520540199810387579507714048107246532871061950916802849665454734308563996877114455754583855455628669841787337758480063067886476795441160822443333951547577168512730818807728609133202234607074071066308291090148449394741303081507262590869274009928090566582389359527342001345020414909542270946054253662961416274613865162234031147108024488261609754079543798870035422040396590632679616213856401417034733455195616241517841315400278802649138814944842386028577778245553696378978192820327583840203193697571695101407034168444556317913469508097676833979091341947147103422120415277550296395484812713118925790741857199807718522215973468112211949982761809554085627379545575660979840757876609683902623863334293453822835661185009577483491349663765236278518579027939339456748881022959642091271948745430606896044628003618034290465341004566805222159239952525240397168717456958686229708604238767482017347705402980059824187147703619278407859100250212624368838559678299527883787871638996641202983238157290856459727280138768896292848425546346194585013137639638926256429297213271410768845649324536951770049694316171648253529637533696469898452676527462115652992104997958507494555339918550899280553474799195315288552984020177766825995907501304387985309864220078327852378807533082443859766697716482268285457894590405853385128362228199825775913437588382933465254975694082749422167211747497277327332850124975074189439008668926207270216139368278474842069338236567037933938432495643883538523804468661820689139112147184999580771747992030421546682967929724043060983209188920882967038699383648073504108906350963995811320890224077097972565099848385791814260648867595479297936095593412849898818588611631716284238925616092355622735697531029614630293274483033065508507567421375267013284003059929706670807811607084999611612614819306135575811273596189688865089813670826447813178243658985304121951191371832295115560543633261604270219860709082325528349834169302550144367065835134049021586750866784105575745997791029119945667912369953745389218395801048880499513749596317490340873936456391219587087915866035371783273185766776554115701953667041076957191596879495212803906086341247986841435595967558580762983169801491973170359058906269492816327090128772849813531512511780252841345469768765173391030795615265781889028574435935784813938188683919361581864646683069253014303433127845987596296359663548542066191427466688440271589652738725836118389795599718476848566802143763227668393462099380943300843819303252598657083241512822520664882356753075234889453483570729081512985882352152888758374658455170549095365162955829107518495451074179464697843486883956673356163423600206612775042539807427568165696127267623268776776474080617332707401074606299234323340895103714315168356840525944073940845995948403067845097875467483663329736224361073700405489770102617492766567549813090946670403820276360276782843130823458472914450125180998613360082916389949932226428889391814272851207177621461382563893553971975606468393955207158714737724311572515806223819706929538646094926781555148081624359719340635536639404351611983481881182492923512156697547262828065547634639149730518496791042952803461790057540144092352287685776570706939943722067589965359662130239632136711997655126083526613684158040217038850724997188013666880924630225062631653914292429864263844107414084067949464957125729619505239154172775677176448739684353586909529150062854743913900232505953444268101828667571129386951050145445340228969927528810049220564937181792423244401567381675826903961808344925032993526335526762202108042611087961477249444761516443232116957722629392344618299952639900504392149021480506740615977168094080935765816807232150935146125590534433253646147941865043489274573037413855804172857877284512283447176841412301391112870670140725261074061717562647934808172991917662419353681632203990004782351299540763919988678872905484476461693641229294289377001652744452470084215331691062454944552518510802395430488379732944357297354654376606784856189587366599075773659711683443934281190958600799891897462055985623486072965288480428187001092044112985156822891769860816967935906993810408932824952459916014577269219364005534920086235112890931050963170315168659801709391943532644475570600477030614293034880898188846980751983782979495064006219121905268731280952799721142248927022463397486442064539144886617206576599693825232615636867225829217596616667781970904433212983845114112723483211536487636902245000345890733114143579821084732336010633422062190350418005946706211537755297055532660556021351470515448192949211273575158073164725642441017459110447246481725257831846928217822981335023713220855900503771710795040256115406318937319919046602684855251413887444516548669023033390974996110223375739566721664158510836545811656095054709229671304652625932277578930599773261793660954087307531784885835909905290587601234308957510872465852293313980847351480468651553297386654921748014904093804284863727321299967532105808618751806089101244841624425741246713463621611837424041605469045217686759415793152776911314823233773360969255133597452802777633330292572938092212903169750728228934064495513579670715840605346052613251230596476351223572421799090254314950484252857195451217466388548299303886865418313787710465590032501008087493324637465444872378802502506814050477147724185537888588052077812606209323234680563598538880790769102854303998768213163144973128976171760691289634090935227687826277348670140095187983364392511606784148068520799040287959910764669802771167073549844191917100352057094622104484566973196674408035853708772102095371815220208801417383682665801760220604466862424286626852268211488616617011512795044633631734227414569129881833072769585013667664004160996700870409034154451225452616074570812278783646524634655867248363477852816165167562224578317465849686427969104979670293237288910480497339576187377332389823488582237309454989978387750121471238075690017624187923251475131951915785626864731697808507311247983748272927275221871254108149360904301299861693715693741829130863335441687737238812275262622970275596696808949566416646584884631484085683835075667098205772391609096257229720204859196650833380972400314884487486792067608535801771333410621257320618073990011871183506706779260525462020912576299860048873291909506554896380442609116420189930670443484213233701357086778152196534026238946133118995317095448746068275130987094261258101948394090754651179075011105024853198862490687937029468809067833491117547484302356974460183175394343161591388858685365634421142993882585200720814764479792868743819388575580385256680468314507149158415180803849783637562383456929177243489274483612159386544638769653603861628353450272414106255102632840900657013240116622522844891604983690631279780601381288176257177564070605315119931039913769328496857378673766191271166854991903205597458727381437150166901632945037807241419501430249734524612164294363254850239931487132167343962727038021014326258074329301653190812716191611825701127395129482983253672947748784109950108675541792959564937364799890710876756913831702506857632418242661580377038863609167523201044098044162701130926819691393600882440768866139057837302464062447648947521498451923554441454837975214583688887968446779775493853814358456939022699720460240833580839340629184259972715617898889898336034484417373160111351778018750376644666641919786052734369003087847649408364737436412820485520266359876534152736541908410346997393228211458259234989113118544931155690535206944037473102163377960066725533259645063536480437220892933920883889742883703681410122331996408724409699226819214410963849551317825476723705511242995960769312953446909506929990606943840679636028612256751816380144737936605918899627647273375734402859395401110057238168185965541117334514469127297639897810625809090487974621865799574251124871725204862619391282066759622905173542779507923077639230038994270328295936164295597229722742996464196268332788746259681667821126897006447799684528305088231538817978793218994651652401514848031683835165496985491391500040197483628537082079403186150772151557332195794511513477504092932476352350552017042251155210576759130178087572425427164971102521973352480882691534173666569184696186763798509773453159589355473279126783479122522794371331120010145304071065817676898189999699440701734191449982075062561058271960321342606353424092247198614170780104200570448543014492518547936436545278474080838683575574142742153909622162065498874446472537521105911461377277702397971117304921156661270359480986058088809126396628172615602249072779993597810543902140271344547961902689126714960454291345229803228601413340188036643135885826163983518673005050057286835115089459757878936798980318658238481708379156061465496708403867828211765454048190384798630661473175281967487800184364035345875340080339115238485038973024347388735732784954323317221099071004474113469706751106287432550650642228735287651938043940525646428933776049386976565624135354173977297053858184242693873044877455893480271570514448048928576203440282365045756258382755051193897345446944341477424194297673902189357410479489308381093977139158973957970229272517892561752963713646508641932288533399930579839900983353574493539118109832799433834389165914478363031558369333096291657617480213521494499354619028121890448124464923694587189083963851981707972359649957170258048307753962096593530681288297389440280736344485213323253581253227528567955536154327965859172251293416597413874283629458912176128339944526077121667140031883328049330884961711099845609445498637390280251900872188630906588933628039934145616977491863721186275662127209897132373268796020543497152971425162997241899825920267782700594876098826661255424233235571721147519065329112161944321508523004450494169506179033471535575576030953977528954081151430041128302663000372742198243189678852209035246531269221707345192266340710328493695712251069722071483022409558812333480804900847021528771261941754300644734516948481604848169938865527142847038762328923207335654002424645121615054931053889317709935094846406649447536652634021603481179936161631077772960424611449336374499169050275996375614840263230322134604470654364096774307701367039450167197562790735900655821619262422451786368660195127776503648041295564699902334458528811346785010365765443978164799345502595944096581681706294264181953290538358035657046416627407918201167020193546047768516791317570563261342825423727743346811390002717508853893664500423425562542443086784278099377950459068657737018852430810857327429421223596814504059422202163207763342397267805147070841001980141435400605307106671663082042737671622119509113238873267592608573781378853168154531819347447771421054798124277521947196654935784778238418185647243473696117223353658451872185642864482637639725887482772187697953156518190529641992622771163318408649467301062483635739560731851011209044379375616013798307912884645655019256011521310363360626298661314725309999304617297245416450967750689078767627334778310585666665155074189592763116278456873019154663546094373194239346177792803673896473462952366767931863336363038918767739492794875549754583623690468348595495707565462894539677958476397680902023797640134179082468670651677103220213686791791501643250308698104178748353376310534873666952694845715620585403255613471431946924385950234570566864894875207555171994057691844382212608272826086443262896421115647132319074419269886611030065044594246032259785354363872878760849099415429373760479934899555829260484543763772045482547582636679964854625100828679770521092687060993106565125098223916959271028598430352649051011748365248705343275483296319716728334510425176976569325072458935540037240790433307796128301705363290060635196029708271703999322238644098824911918229006044547254164442269142736070896398015171879636074485432476717127864811875449527072837336196809084353762083881387012126173669931128847108176710355125506993315831326449698037811170678334653523865847924485461724875386700432044146023242123723675143351331888029449781463380930787504475103120502217419142102577520875871482300655263047096608845489618336009017644484760518032110129747449533721844495026157612495099485470964163632129271139238502040606846827808401646590775368322345455178334185810330406906332047799320892526969351143391665046073133420111211091828420635179702245722011815464383006840097896077200917572618109506398962036553838611549589584208300957764553498824433176935986196014821270391474004443006076805971063393593064360011318918556098152567154793238194452382582766269245419459595567383177203480754545346449184800359214334322888043723440063513846586618471374465323182670847223123395742125322638087569205222082440728881257528553283899655590781615538268306157239379628161368597493487981874446689077322100992858496273679108647083014433153444262053484138493337348799367631490797247036800245828844106398094688156612092923003855425377345098289892572989429422601834842279559916843752672915037911718083765165269722673662940555992329623546040248144419120311137662770015645365909605375173761819934797586097844049166232937394837155488442607494615944441212435392659215570251448165979156055154784417635568687342081830053631802981498761011072622787706398270206934304947222329579030606042641356866152235494483508238319740435462980534434474025891204881941467314254253030170153284116774439873117695769748429029830692465407459530835366583378652027122518375157392627503043698268434049437157045077468596874900418376632399501319862393609665765323218000335516476529221710069995240389177920612455070153216325094879606215011122080744867486251448929879305675545548863013391879167307474362022431181085377058816443179062428257286922300104886042912628429455900237826790306703474407753735410210739312799078631117002389727075654018654324056682807072020486876894133015895553949792494399518144862309024264371031937941313120428436477758362089943748344746042960798486828243808275687485573029555131698193445690408557148453256616693151548828865111107798950459678138953834386477466073485765550134092461187343006351727379836934273263461190163636107123753366662967022800566566688924637977196963122996967506165408182133134855881038702733876802875831820600455685053143114752562751821961844315908006630918314527379428524783174839092126296596445124510322815258093282052647868830012224816765868365563987560881569270616309214544388815607311605659490796223088788471068491736546952903778819965215675501800357434602265423861843470742485520131267621024908051127903013112386414997246980305362125597705848493184833740219086360344733701728866783586910324204244845009623771993870843432373660691442658500270850260448247325403622664829570030422546238872625065218619632511221484108309712491240479739568721179738507445605778636552879659060879376070322169531362826498914517162380531195590003636758031641021620521433420804510011334237166163908297764847080368015226875944610642059309058639978039547453363871087423173849146576081270573593052053776053681706206786997714531916008769751143002671821769832304872235349985339920744401101564885846748615340139136928352551048823917804248797049772655092193634889873661317155282735242660854662619788876761878745937711893982687030997664876313037339879750545938362495050433200655018856765160450074515641936939195793182309801323576751044728016521849079000024850162360180076561115645602585401301597785788086309784615609334637206177002219953188080938321226149580314093141418269401188945128854858162195492751693147642645203175681796749111652048675095804818198350098269430794346649578581681683445863635111917357177291382498082379428524084987747596093727168590255821885329379013968466132740031657550519479352686965814192605061191539828778374819913946085640712106262003901975509287955437557170973519242632918641544704829434917439859939615486616606082587309861571227324601996966223887852875669059351640087463804994393964137504289612650461405637235000020243709265470335403592572569981950751090803460385836375459034816444585022762476380169979426546656098968809481334317287174090685759355237201935223448043381028968347293385455894882527834231127855029383334356476831719274236374027548636938025652313478199024270987276019912435449087136396642019592818228258708106323801980970978409273721218546398523174334826113540447648180971114475954496038999776331077136959187025248290353517406329522516751821988807577422608785443446476083513682035154552467185352801446880322421121722761613261844296114273286579223140546050908878674808464715339026572498723571181634899660440894193052101378288951016324472851239733963457484055804945435920284390629129534224720779386321696039950487932761146535776123836930473978305922233447999277881840884766210563710180840396577020754293242185289176225845881021922925114269401243938820104059168642224006713460403248506458313863904800599236345571215202940515970674451542028310173095139219294709359506086170746068855690947739195802545352433890312189826535606823008461638267640768499920762072939687167585072850764714859010047013155545339270774939051930450708737756948777863751709561417308188424868517321103477017260181788420823042637698405869295928923782650138194171500510768436794570100843467703150024165734886218587503751333577640089659450070921918510653773463872899820713070837580393396805755186485052862352748906619401870139639333903472931450206366478795737704874366273756544226929451925012591294756385833534760502307061855245415740884002321215254845755829777734342759298603010157805797377768471066201188015896212435808596655243860402410711153070785274810421415650711102816305220598125163236559252535057490683036555064300314296511080547830739988352682823040428838408152850462912143230133734082240170675767125053325296378744123691801974481986073718504549615569653831299298312254110857023057847582270767759763145599172982309941533573762791380170775576129738906998622386074241384727836858624864393624102770045010791558819950005360120244281473118841917306352756676415978003174972809427027218946198855938715284601870688670442209838727292456586930216761190788191032863737292323841227025398948802020685276469587780520733995842558513406783914253622093382207889927880587258329649286980603363949272079697849904107397505045893828032292122170933174193313047243887536423659679938485961568358255288063776684349903711741746836275368475744601177613643539106597008620527634390391794676152073648835029851539715329331536835722050378573988410919813556614758918786301783912862563808281811534814283986825684431903132649318101738232621420751531520062509661102280417324934801363512624473955450147359609974754405413734558490777660813430540770128595005851023451621940248737287903737092623004905755888673448241690127257436783964324791166107551825045675717701055266922490860401668296156461566223619062756768456284874161780546923706845338379964749346041879528358598041949812152036659040488644189057728980002349410942800144997091157418137545216387968853689525551937290211522937187983693059295188443832947665657912293956559552874590628312724745833073540767952568304156814945518380722613549675395777199959960545970607074983800761588820744202866955360307576453965301575767078633379116018324030238445876952849145423121160685491848049142833111378385998847131076741064094580071850120952010029873041756895638655947649873247625221838952655724497452474315628805097631534271228303250334603350182847530896440406293676156769307801140751163699586153277201086715806713677311749750225631356693295074793929956327528174453241986988138522865715411197453725730838144395356467796325215937205917457356836329960493778479732477875737798558383759727788757204753562566775811387926917408068789922912340011188968911528569632529399037454428335783597157860920608089552509998804729743507402681930674929264039045970160271143892661024132991188379553481662532981456834470397169746659948688038723676027906216461997374718996731250224998113425697699428679885768539255724639745140936697294348236199828771216233282799056772821483148664399118323779590819284341262686311004973785215171253685401210968645369560360264000237918654028758450955564296731779690380468084540230844427471637327265814058214466193221897469741960102958582915714690609710867878961697064046292459079395763080857964350364484812247755571611863927171658881475379318655538282277499329716634703255489925941427180310836653174723529447377505375342039763183005140021400820476068370157519141824722250783245803045077350033592650566004339142151181067733271498028092174816580359960750754180424297636533433621399611183988766966983901371002486183829279956369096157620690619239370128605176273432527056058811870069434658289844751078908805596722337713443147247793695681006867360044747446379236762261520482398288622853104717530546726549119395922788461548023972008741046396980182366016923135278540093187069425733395980439556747808372041794670514081348983771080597517288914414199451792434989183538928985142583164303557309404725167936220886102130968758148839717716740660468656155139503346752953971746481477121894346805018682180172516078472620001952658799549807215873255457066035758325086449401495452499856750974450892386832968088854351086613401985088286686114172759656064850731816564337202733595750728953638119716265656371104680960428760596236139488300254709327218170695068673291322812041634427717155247653104361389354602585119511621660359112498841526340279887199890139035893875227307911461506453557904472372235192608958059047662365755811353462304705036806264378569987949913710120446005730503615955365413985568107943684186630724961200559206505449869648051019989170926579968229440608499711138866157232124003470083962421501707746276191995157840971707086468649712973613871272547277466620302890025395538794561473227564351693829888534377619344160896312259877563982258043533637422067598984704176130009835950536657310557988861937433304928631546853134298512158191296979459087376262446452465506300802010104023464089317938016652968295461914264141086567701010735102502741421559533396683061058501284683677281669581977989062385828298901421078744834653108932484549123565559148501758714203564532529581540932426044537048020462261741207948343290976794005001617640424895037220004477104124994426279174608017556768711149801587864286208265031450531123159039835109865623295315406026730246234955915622329772438893708970761620701348414500427854211885203409294803665968964583168844734267071641242793714106809228628281054957138043209739578736408924476412855725583646320438304031410967936025978524078188997628162671936877165616593820293669229887291645592286138209792010463949337108333987707262620164277534204836519607418929955174775895972808541167934470901746621309803530074837596541089979967298898281043630381350080381651293042528241797701331887770794124393425794593377315889959759572223008568439047392711050558411745702948836150086711599671115693023373386589876693805491948218187088579002743632201368429740010160701018625699152371684303335550538740981250584360307884874570387138978671775690869687413608001160672216326543334579867895133951544981204100799148253643193824034272139218746950312663484764609509470785762032724305830547205686329633847216614544702305361059475234751456302986185332402644774167124183568375010716721362792869186984108827076029277204367059202984767778285833107311690872568567125420333310475309270737756478819014690903737707293003456100527600152195917475992534056590065709979997322676338769713365239728185720672854244815423675414913767357696995226440419382764176599837153994462391454912115296961712621620387827753452855001187432228437539838223883548899869750196130209987647729939653761662467548055119360651458188981845454892845380220823984187305844950619065142163084877887852563936546808160647528298731708334445171360724188933013519519728483397293815541873173458418560427468106628215154115577550000464097130765228484714747156309410736974296257900734682453388005906628245627801184289016398878851665754986466928100570000161419679235157489004524859052355052322651768386937358684387937244376763837028873235779844182986189299620941989876071837558298786588062164402210658994610237179010713771132944267811078828060785748476594125265090808735942171895229747401563636412773966986523910358719446831182858547208915679518543972413671594023895063534511298701259106277757728365993515527350930659938765864694377982294803817779663838081535912845469294312176075802909733710574427989341957246593125536732837406682032529907420882335500131501910103800629341104959672648505770064885527015407830206580863873977078025025438670545266946227057648316207095421215991111356599069587605325602957518863593807108252069759956453909251024382935862966739829969266406783547696469710995993224196283949524868286106731054921321057080456783673793726014467721679728872316975634063931244874214867310126449816374205831962838698122624828823545581338118643373273087549246122865819397038628688149805732153240309599562513925932983897319715440081736476282497649771523690609214761186393075917608689787787475084910230584644183435867977678932145944236692875226156455158028461798091516234239794408456054602192182236600561056050170142842720641616272334714253298444792752689035798068658235714527015273870367774904053418354903819091773187976288693203361505017926267095519615292760656239807369410664549957356014499485670119593799207434266345794190001869941881845835253043302279272595342418526376054019927570149991575818113532997523581214779064625201775002873755384381914981601929660274196261365944821747623387702199171167066334333217298004525834124891093762713167336593562222393739461012540574708427378332290239539574203353908804662869080525345128758722556556436405371759167069839913178127017113439916519033518922919501086880206670382367054404970385153442146609045270364429293056595670861812754311268303445658139490408729192550321131075828768653094973891974811337010930056453456692843472909023298338393900580027992182888346398438934684655670278762972470487426679876861528098576150623345655902053251229539348422843858627514378481234506000080538958023209955240028243612960711717654122428775688270962917200401871481340970516934840514333055257329152354482784626270345375693044151837434964391471304836417943057408063378482379045148077785492773837681188561522481063162876493397804873527367790592879084301805762444328724491844103190744793150060442575971477972140040881075409877106307924057333135113736033470858312618680326970137576339953916217780516429165187492323281265433104127138367522940614706247152590254207176000316177635761507842303278746488094856928082379303745876778201882278796416209225679311158689751683946496969376469892154093595395466444887418984285652283604154574126396666737534288135209604373209082074862335535214556770443424608015773661569732624671661797463498935432613985998476407942819906562760797853172045418651889050452537444464675790872896291502903925961514625246371929689820175558282432816770483443215576414680262661325055244310366108562567444033181113919451027591978608305326567224830375486650801635441654517763143268862087038795593008567847880775075190458465196866963808857102918846901983906903988761967356566736994403994174017031544312039337540800567202124186893387775238380266751325511837328281095920942544100762066224065427947495548114363497193913815955154821480771266456453911516843527146269555340624665365308145084624850902364841336069480287636428553319814238615162101224572052156807251208311239038714367819647346387255309850496747905251202807206782288862470831018591889136367935584060077064549018402785519162145647779190181502516044384847785232615814397300096363618942387757600920153119928520056646791235471225776636037462004156715797586951463441476543423228451168111105300646894980510767591756069254801398070416191985207879482306057072558327850014793337201759069062687578622921919839270459016168980122118335541009540719746142084371932223980664816064674402556732279004908334998804227981100843285291251222441210234959811952786942143500387840189998656462856157010752276076657374640554584732054393542987541339271766194336101557152037159980597592813073103824030401662008437505950568650957620161048042030152086467821987756910865323298503956929072162660238358668548895977949474880980184311055754301990909108730092373203416064352476192311981671935526585237928118892711736405412533778389042509634600305098400365989872614955579429523781166514811268822905121656181915674749299214855427750078157013658616274831426146778296632626532051951894464100595073794531945324723526358458111864675012398617524662339022959360197627130983015387143319962500426586185978521905399612451756365098020908526989804656218316136443968304233567303791916119705361559092577267664989278926959624279926751044165050148946539439337857708728352828914437317066436641207773071376598828982912599448519391270588184743032395102351999727714921591108820079407172004279497109469329692435094068850313133160046097917482222582318173872457716819906397925177766828538874444525097081171240272902723222716667548931103443367934313148137442141168907585681424376626937574393114837993894357440208148615990989790614877590413797152965037693089553057764548665514935271535591816977958396715131160052924925062822398395113041235616983736577646126804213701278892967201669368650663172895640556897013959495711043817536914179496818789622795862375624021747789961044190043362343017714197477042982324437005950994385881924696511209408544095182578947548678102480004988417208818028233399976728143210675656694120765196028464691780091077223956942439147106020276881880815934079423418071017810991790777324732324303955184752023315598352200866938121168358723266212475975214544162184191184074577311417719196882163078353807315740938246508990284283347644694577202722683970179343928313170465730167794755940014527183716912280686904122249140560716044459700843825443525639253351128472577447601195611389851697673639933707119058591099092381115618246384056664899016550569388893767806920466588477347071326048510049999675400977087968415073518527357241466667555350416854411600486617678139933979045561374563879107178963173031591157151186097487227818382648961630104456937212786000763530031002522935290243959314825923035352801867167679178950038146951841637987154361550347778363107894100842962253447558305998203445077771409671290534466530866163885019817291241893948469251200038346856132493680123549528042678443912545946501501605190986353791174905567074782796506531114202443431022410990875707821753458035575460513197848189708439435446564327056581197831923894963196147687672643484357198002482902463584918149265324980111006812519966206303823198503021803262992268391325570306931641050166014658791502636307893269845996496403628847267571274290105521660514382513544693746969265280463766709517693773561587068766587058909678129368988938688294772076364099792722545206312533813740071434416506475167903536653455170237798454409862710453201516408602230722924152066206557340881625557571830971989559638054272226165753050206867548997221601501991123897614460124674066597848209511665827172647777548521110102562830239652614509678631396676532401723298225094863788447727000368679107256091545912088355631528026596032243428772469742270903074349746148788480710298933279205980310267987653149384445987511536592539167229716507359628022432434735704013420657685867399130258567500051262004194029004549976274722005598960285215715935668402610636193781353309396692839783111400094205762679077746938593729185864986852942475514291981831174719623249356503817212931973460411991835698034571907581522307858160182126078625997833816460351524941844727326408415847156218611432824541962191755735709768541699181720708021849474743447380568322063528815821271297788810770356215644943009276797368921231838169486762084658547984541844289776871218100940674909139599468410285868438842721397547783530341051527280826600776470597108854491618748782034887921286431102468642424866335579118650595471182116719033430879246456743217751168820330510850499160205257895511854936839491893320273113725340666392466153609670038240920759405692394642989413386777925255893720148136383761948230462719730889978347166908214122346946561564535375174771775395605891217873712354612548586335070087907750806708252321456900219321537284165037420367420975040413998726368398927541070994357035917392515824814242151514677981192513429661590036115930452357265092466549796292294701473972718487519797133728285997563636467568832217451480204768795767155499205019056800101628333743422517381722872993650516610828270576209668812838330330722692680921206744634118828697509448650870173925214539468202865917231614218761427567539037294684006110663875811067093853405534154577897269765947499202701762323753113841811717924196243460166994902940263212411479616715543372525256182260548815814662666837786045758925150077292631336261826847427894763835772088829099374623933633261680786651764259781923453292338238273364043963396081677828527694270224023131728675652706390427318640546873805309523168661768096335902191608688803082885798749328198810251253548341224228490810383993265132812906907421875424400101612715858859817853511772993261334742643150937957928586326284264403145837805778706165781807833978921183417661573903146591782361427620667986918241244782187203275044038221715245625698467996969103789742977393512986414621667645076136257087103758931591394608100801848767777223377476774689622931556398323504478868558191190056541089734021374414071922863220041363940260363590947695230891748991876744634440771631084335036118665652955868899297353060852881679495206110254921840252556333668378627029933260270008045642284905428173377200076552129771886597030719967851909772545996845197240756481686535099727440245934857122380763786423736551892756693668607161427743537680762954934410071250439197532389854004140961794238214890599148222247946423480016901561384882049158618679878345662988146081168551445676611351614361045570423782520648103809066478179258981980463504841150223818700883364409638267640702026420805751841810218987110734609525279358559419817469665138588795039700879120562277251228109570889386179231474375822061065601044759730531466080353876411414385419181712987263660739198990488459389981951831451240014492845802515317842129137034608609129573774462166964460775613415468954987857431399207893279594579741406465276530584460830231951408679543278334817207546068897872669735596426799530487491204852727413357345943480963381063564336443784879767931313333673754475806718505664403225313746323864134482230359915871816488955578778023221187140235109533399068587795549697839654005196410238866845033311679427452271233734307598444917482307417797510687244420842076146574964621724716910266492825708256446761952474192144976429558233450283653171141553337405704069861220900014127205608035483754339060476671020240258983253756234013082046080618838051746117836498473976173227539018765702803591535736629236479617669432850813519059382750339262051717568145187009420555385171638224638374865682378058691928542198651734857509841329087464715438184115381830640897212002242813837505989261880612944928045398369978901360410840150225969392666522907101648954972348405920322565664673444833862734111280201479468465650172393815627397094471275602637060026731448323866812782755430746939197093555026450481513600036454765548546570243384148856652907172305346940701903083480736305628571266233964557201228532041841609313343179895512944259753141966370799062203822014373037565801150599983585022420300187256999960319565052936802885324010660368671387116980403809430746881454220166175231690996921193106720529816088113195287552615147840247384731209858329392663391927360170585917357485699352338716240652557366192334744243457455656599542814078548127149256458264251876145565009846064037744552863459081624324279764875363462467305126642020938974274712164736342315392582867608362392231073877952507841771060414015235782608996349375072709935898159059697089368148426320748539833216868088209674119212016201982269145867892007901072456478148923634999495537523368015098300099088230337456917758010597000429522812851026121622101962922326622019530553951177160253685178324281036055179344952674180027703844196523885252081190044857791660206938128143372207395214761778761779127109572495459647336521799878676120223909822078211107566554555884493969293615050034984087198560598288602226807856254264343765102733724492759463792943051871737730294299832614532490731594540059400039142238860293878017165283352098834188244300233377856767530645851751146108196210453860228876119844984962881833736236556540968592085024848695059316399991548180493289067814024987086674091561183436031191460708944413875313974393784316072319389565714787188608171551524907752047328324479034903073155817002171546114720087696994328363284345565238732358008996946741245750485926533927793547266149070003291237739380388061885089378716416094668481506201864126709854056618324252732233401517108315417847531667981196551831834004690255206222150197328679860652596907440141436511474572191713030474770661247953509408368508285612894498379368054138977913471203197162532316537323642921064944198469781621939945299955437718306050379126974460930438294827925674607283894623513886079242774296782145381628197235718691240925968815765450291148583888501792963408016262795046275047399111318968234292446371680407593553142840722544143053215277862455472278630729330407394365566569552281170441178417875032363990040825211077061484715087855715659833455356731358726424048561639389727638949847855636408879731553942380253694211845419602672457664956179749243388664325743548598922764030654687128837772242553519109470523629063175122300305204852644609171799130160884539495224283286249694933137355624980064370539480244625964970117052609207899974912140768091899170490625150752393809975759002860846782539586089478232598871389561850705911093792851977675758370662276212248745070593122063687273333345617069214072250079696916080239982193312964773207543605140800239725700963620046611190609774658080501171779740373531495123648943190493437139410101512231902745968478090617666280267969952829827439591441530896907842512063137910394992962232593035830834373450188174463369158495985968638915953155096183227733099703712998067323753214117345503147864565988309278925096191902358954809091424907959425014776890869580767799488922157508577560074244725406865065409065829456361882736792380883410877311202380760317838761655885284964939900410193567304614744929286723370386880986109383951841008812491413986205291573100090290158429000438413120069640479032916995658601225552908115968535145237605585696650571196202324357448065999634990940576624038892181982283123704163482312708292152204456778487605363594944010263142045631484872155454525750222517012334535178644993226973679007173928382444765418576628472786905812226416415711146465217728025398249454491388224217447446532535756812507677857319971653069060792245281907589923200208829387164636519504114392238824765775547923256157426572292665730472126691278123562815870438288525878805518023817767810451302948839698986816258625680628826593279409798713605281908458890707090711172299065240369798734374322052879563302307453620716255575549509314358426125067856273320600037653018884160369428545598981697440359330284744294689349698798616653033329593727170649812412424003115301972852667104481299101565200300129061540085561779611140433269987706204071969060694758327144366128475383299809102064579257661155484924358790887419122530775659401025256135214480494610077004273296068072124613204107090305666669864305641193253341887629888895157524322989809500352285553986975502562841949127348315688977862584009178082886756457365491478744161945339896146406292117544803552540223176429691514026666014939291085622940808874890501633003676026717919405397988849911256529772792427849289910741535909610014864166272566626357136886516792156014659137334606374001255953195190902693580786246341605669728331555040771555290546730318926019264228789753554841683006954511486231324049386725703713770705707303927787139703535011304754372417775255602806476719349043860127350026621430558298512001422783143938411663149605819515447585072632627197137727266301346931019710102085535540357861169907084099527682638307193877662932471053615796212225535357521886568163275612645415960951528672462979310147423043635563277332371945602791718857262046493930525176491507496871648265902854452401276335875171724707777948354890274230203274807594609070096183590583255506562967253260087399837291953709345691199318951054358212858456169844202104955185516358054980751442518314517677925382822358563078720759233296377879084247264444950079186587854058413180162166934486974947873662685230215868213312158679085139311286825792543378231388934845242642385281082681269272939863489786726656747360822104166952018394308904088319274678549311942432310988573048171699691259624672592157144873796901552705295308955263656216596708430657010715915148265343926375337463982318542179390984982218278854533989424006920609406967816921602439370584579035349942881139941428248140555022513395667416483199551794669037371978200027728889441994065673108700540207425852783105012768273929012862537808757639251706929598698178441492482936095986086596461648518295459792820546838756157299326771362880844842874099708533953450910497445206368424337491168556377426213651871815545122620410440013136183311193141720480296945865929356800287046162408237280152219208287305980196968493742137777389200867389032958652451977363398148445315716205236687749673828799877606758088242386109925182241941741942645710917343703528975908075025410271155073971555911327540352976162204866148722327177317750095591823338850215335621715015443568206700238323508137062548898627486156185210960419334614111430245518845268909103285257144072854705803081312915574789317405492763709389225802510982803730205187813127670641562557011582083271376680495682502903420655951685452275191723557884835102354450326747378851835373810486651388853054769436325392679490317052696211579000608122896175639105377120637013075357117590243702146587612588240266429857021404662378369238624027943275964152039847707856844511038002268641497519018288462231877840989952161764537886209198454354561858816262737059169403246625754294063565943201652426246207928407126321820820606346658866090894549035168991396648520095563408373055345496240131446332391892081683187451539234259423528717253235325743550724719563554049586509581902688342769126267112925071709184775236260314950258694982270541102623507177345948995477051374767064963677610854701611202254486767374764387945310653982063777225040730969235701902976528158529051511650540862832930730467288057715258150587293466207891223089441875479924714953192558325035539809152346053416764945460771260319653509058841624870173219938972383818653681653799671367777295324462473104593850005522930893474021228553570290431594070224026162767021048403310778178947404411426342122773668860480002313641602907164541358303385241609377671271810521638006316506167454876300142734090300325676692254951378011400577732313303148291013441097826288691408561236922600696432356198023027643837455025896767652114613390274354298413288981608665912981175415086449725686162699258660238941082385267105127515712018772693999318419071930194390219622971478805087174103146495070452721236902194142978934701983176861979087195623329408104179818034331210999474647574811656046643155126336296519157952416084744300940172807496285853050343917286226476304245473031623070058739138337639491748513293465735578913140139151848091876847806276751367550066362748225637617627948954694108897733262526115465837792178287743108906585913383816336257877483410591243912871136386460438136353270243734238406619285122017009148588960749535385234598400978794785233459608590441192989884052099978280521795892928499928104160715574706845114901404777376858192378977363897018456716045392640936269833899750150401185834974486199575966612006315072886272691040926505245642286884358295258932712344590085920373057186515532283414989855508558664085884225237329718671556253057163064086005177946310031142047107896526836140622015690231255587788201061632877729945195015169054077782183555859707357860959233266759880371372049663703272519812243500827418188614075935219470986477902836365086854917844506813092133394034973199534525435600365190812404237377184469843322509965256431128581460004356278575449621936233890691086062180191991657130911061731671874119772267610137966458090082012803176650134537934909115333612072185914759832441517223331778375703321024514390072068811723499751821610259731888657442896727233981041555972169526659482742447261060288275442592235297218099501577825113791601587352899588548559585281973311280229294827361941652095585729987197614009272410577660141743525027125161002276363586843296023020090052793620910162099628288479190954916745017543488308793874026912730755926954887844338184046614603047929704072858908503670239935600182112145450791874158384161479102586291892473374193376053449419361234586901612633561559569060441423268874468558449988053585211398517988865520867265271092046307420202423598170740533873395626513143605405881215075946088824391969157505179377953551039655255002850844955319703019338722739529282689383374484912731010570978578888045988457290365985678721250312221789569191292667319818296667549695277773658747932941710890061859973548424497864498526738933460033360099056159344971576779210532284975413348131223354370249447895412160167235114475147506076055904452859360333305165423093154541702277584888595615982387042394854580352808471009372317005990834499497666009215902529347686377104702267057425678619782673177804090496768306558884690330239568210252166483296367510646265744604875810432116581438014922742944134357673784821420802442421873386300111181089066323973355845074588093529655414903531757968249387101313454565729617741420311820505120157716524020464597123545185324311070116397007777761598729242770810320039106035783871435183335698193903826529561614004715588694619019955628852537563027449768923806022652554979846587741337259168084309597919359848794377289584449942166348772619635189035682511680261244687023350026203055109775770484070239254494091758718801185983162425457353383764952569548575740888621231235717144158373772015105957316341119814139632305738511016618091822612925681594048428629510304642157584902411440609685864619869808312485619939256939164646887124564179935911248847899992214373251429957574148065879176175108155320694659084071037167611712508780921405626601699678998549940088379498891566660585009130853269343587139759916682357220228623288434211989650638709703506143199445450077674722691797311296391295955866363498124703457829750357720551021681033927581602203586608297770705236598133147959227900741553581380634136754088287783683706553442669263960773458961471505782835040315208221355585121909465515776606700923999341432128477997108346790092602836773868486288151859294257591806615269046727183224466281985731220971237318812893060906295604003642245844277645661884512736073525221694697958341887163767585964460291512265515630409487692564028710179680182557633741435002238420456664894163295209036717333314559708388820111649551492185006468682473416330750913243209053903733819547613363374377152084518419093091272254598577739351338778844230534802933660877162784095911212346827386366703321888444776731296577442670328333196370775740413529975035452958946381635080011805591785122839969015149042757967166271939639852221092268515056672939139334164199064909289981131016162330030485577967059251874177068472606413745636824794511331089561788309684103969575417092541518316334954620365851650749959543930488845067771840449378358265816630627160954760220307791733889725149835908015251802783990341620991076595506200264035883267711895104276612555111099580161689174368784141806008847175753653375698644380792578355221251994572722443115317122770629621425389014478799332498560495244595033605171253677971813836176952235821965306995465103562502820864922131564341929936237854327980647652105899806045622744681292112654369240939123308252352949471450833380944727838245281632674636316359483173960953993459340318838846005892367001765659589052749335244091984583821920795433675269192304221936813896015989567046546061986893488431205381976813912304933098555058629483512916053133719343024371915517245355914954153203327351142897476022376724481388843418214605143316999975680047689733126258959089997532260989055446131798877439997365860056687945860895034844656490784437753189837101414708305538242862370490023460065777987670213357177074278069157825368316237538517787153364202973358889854366655464827457532427080942950744230877882520054922697970858876304717077438413688869094827870389972499253141959500753558837112192787883012563321293073866652834892839224990006001108650148097614177121998190450775650415122353914141869468954537560691584728545339430895880523704534641305162050637658024376510709013823569695225594771407462559548313261156615465590749793845736216902453243863134128520963097335319593042123239702231659402933838436113999139370159698079684493051731004509346949496807274750798135472947040683748950862165819925273976539642573158086447579279811097611130963392146329363177636226918435934300616703352773043556925667635998763326806942055255942665248767241030171926302659269530209231120981037492317269207250922767955680467040613139978434165308450758070243071685404090550303171228384665534922143917981225634344110305496812680291340740443957863310861809963253033941173383908083965709120593229303455205412385522768972200312945358500139772258979139240729340420257549427444450416134301282450777012229768410722963629379625697517772615858265770519793996249918667753080436358640383342676060190728854262830041764962903727958376608993564598257672307736106582799022471998297152032171492172542245481333089643794674960362329824752926824158469970562935770807118563464768183296628800964657847031330109248997890209576181372604810031408938109721029291157264310645533057827841593778637695275632694100755774731254594456544520903811700301482709238161659372282361522585913210887618130048112148887654626993665965092435101727841601732778492343240893982789587479409096026818759752534050066059803181166915645725701961873042025689649820585381601367692722734959035519131155730824607953939824456548128101993234609221410229908429085611235617329119572602120322095407204933565371101467017700811171513460321103529288984214137355016118585745553982423507660601285312491557858224358313142827543905956030831850242993595357967657229586808538881709650940474384350797754596590595304043581002002371881750604041224053914183502894964214736538792589531518558825763605403986752293113986861031228573595745415650257304188548889486329170737202510305528760640109057366845777479519645691611210367420788982163262314662381608624468571230468254395116447772075549503891511161704069148619344806026749841669995826096401183640368611340681514205914884785325080875534479801405662172592257232838844339889432790599379324849146212018088435920208003804723749329568934370795334220806491026957061246941717406554425892436278454173653105831608964682535126835633710031079234576348371922704687174669076073422701649159849534006115511579961514272491033565481780641739968650130060569583887696654652281085945931138792837689170971401750540583217599969707493377706120792795184623263433110274341394496534995408515242180891619043602963608563274866072083806359504919338764263045585545358067073075922519082261123870866019037408726965996153407936733745341515662632350126505235084655987163192615788538814534791518125700954376179106321249636313291976988406076487488976519713931465066183549359003658879517477293794397760298842818671801354443913623904226719689713459442525818525817494901469295294621575729257584822845122046823765935417254650271498414269168707175714820768655992190701135680696243369160758505296445346390935510891008800570473261139532860750333291327007963074538359464563358964550640889783502844051448652270917947686349355023977570716139122879877851206060124751072985130185455604085052840942302231412596450780132273250985856433120633790889855598183624667815030335007300815800810634746583935308971154719647930935762646660906914533051782851506306632309266896737074134481262006176008046844474138224079486759797524391155882654010388405854425916052302475016853429166301237028410249574036615179704872695578618831263514949394528491421519723432980573781761918591404525397278672076417875926606719435761721518162135173137202181528039570898913142383315943519320124069762193422199495892666483439269807035661877621878373346047869640476328573611400488667118615639840872537867005442310281757499565071244920810519572938145341950212412615686593036055884986135938999974890716372168851630303335482912969942899704694742365924453608164651864668237876347640336658375584226318627681309134248213906213707210836002008577065419321702271679159843543831883640705633128150342112253556978505904690773423038943503471763054146969862629135295936542675358853535904729247988837115348065595313317553550257382024837724502243564888449171909209086373328477905326587688392137362480651379696654633914472396775560100511607336681228832935553659768934559808367611374499778004881600347575147090153399160157561151331572941130981743352882397535780746313054728095184847851866608025917091107401806484331942675029883515701746447088509347657915235353376101989835415809745425729894487275505739890689283001553618321804516666448909730498985047550027236506748097407623794787447677503720564568033529524469746602635707980938773978507554391353039957883716774688601185484304100251520828682314043690471006208083486504838585756892791468284190720095966540279202073261847680279152771526803201042285607698326062076969034136071154477400290315881651377098056917119249672978039710876161164614485103563111046187711833737206885839953751564362706728311023359134319153090806438156370137420081382708936720339063805779175415992541069008851769144316934022784333590511040367578673547503663787543681285860879687290500628309735310992522823043965882408142735984740661852716802049229414382002053439423407120562402327989961840448196873448322951935695516127014398770526560615010780222944016107175001865540529355673858428888670688183811721136144668997302432503331565512033501663042648686810025886624914424172908859320261118851987058723422454585973707040614172355207196842908885089310177741826757463781268446462778352956468471573292398196148504498417833290845354936820948537065654702344721903248441027439209648134064916040608399699455057531885296313149846632024368922812572274263137197383185502390229702109133124482768785248808492982080470836475345830850006036273764241666512213123395161227222802966935741993696141077199590137869265154233490191419120054082976818331211723584584657799897263316819423273728077557137680167140894917448672928631061601323761470500034020550034837311795877713070567448598337340277037494147799888697381246425572080960081080589015474457309280060776971435348969665133265783219100341509195781878755827526611123943482340244713013392487800873224842761002240252646807476903961135772625711652055443200041079914261498159272238031119820114878123089190227102216753873657251921079798181826665102935755099868355491240111430370032777789113876735103819828784846587591196016040411710873211046865459716322330014921849770238587089700017045889319324610420726213719921146262484640065938167548921525468422681618255160320140556983032067152823648387716881598141079662310206509181166484594617756268728304828920969266274715173707409642888182621775691676331667443507113089555156242105167570578388613996476245898984705925374689741531594248328398349703194110031740465930444833575834767624945338732519089525902793799920715118805219025302794932796876752368260648125729557110756874238786071192139982852928707618934062607194480689009712205052839516335352373598910959677897749601329845062462536590653438243549662782064122932783430784201169995058791756860134842360984052470770859526429835355663727650949133602830997777575292403363923486086835072195054176523270289007615005288254851928683632241354680688827399991448381630585134564164908845076631370385042939850594851458116799045303064625845817232262299685531233109834932703848998609773849016496598821374734988576475167085463177148384693071787486087841722319292280398166184634766438596511931476984619137212830420154372725736448812470628775754799492991361766881012538342379335691385051933705475806349960523898932411947705218629786043281101978464997643368350573228487631226668748529650907203037446997838118383966661227530597246289806972023453416428051167203946663237254306729032539477002356016431195630473643262998310660745521721636381217448037009066740048081531535866060099376760462976025109767564265593419584619749916707471978111851598965492334710494098534092254598337218423128850799908587168057886952980197969708256422420970127703639757190854080656721227170381137830311062181224957828252793102881769804145099310386646830475520613270363759642261382199875037753276338161160109084156166349267651596041826106966948062398655644467201128337285015308663176688533704091532048071557035195302536406177568095939991839441631854327026652093983095151442648240068899252625912270853293170951085338556270434955167423312823254761334148005083747980834798520671876247965175416607675674784624590435005557015137908127555981039240425574368431792032107075730618276410710252032489683847107949162131706710279572314440697378204341634799963269510388556322416331523050857590686985928535210723676911409626377177361635981834314527094482647593580791864124277861006965399386601993271032610855794929100123406936810943976042735574906904184667183994724373652831864434079920018434140487381671063805579344096422783896789725354501526307394837627330236071470035454107838479865280200343526853336343815408894823048345569435014937768603070079554821991322559434372749281245933578469967190763555595889155842943885656204795468101350587491203270363977512167801395527655654324388230767609418494338271853097962656939732780564049412741106234249757448055174678855132718635569228914192437512777279872490043802827358628040075672478021955977279121346574748560918622491194091864770639918675959989057836851221232076070355129169670171431182870048209718161274501276787497527305474242189224674896583517134448191683512772654501148584808024277628341639762877693877015899606825437641064149743780062432662137440331057236313450227979402883550130929485601372212562732529250337564748780472553779375331891022957016344825984528669131460617732726525985706555816759664517361175494474722225566537833372309181826466067552803368080001976692028025142893243514467385837716724415077080154651981310169554273406537467783683295223035347060523252664530406069087381228787443892451045260707102695250193638627262306995841618318409201160500643189157613663508227282204589868031491879502822899131067724114784696320529675433079100768493643639833773886349845381818612770370933405304378248199266243820732605739211668400929258472074004350675737006404432866175316414850598943213321810561312554877643788465192835073191612613243001698380415702873796278900934700662889034521604895145438116069769231805608096472995987203638816008993925996135216108415813065614969490288985803268347402411476273012431874798091421132321517078416260460602986097012537383052303905755007972528249879529382616504934269628081768032160597959173604184714868960600849932573750884116729731046685523805009548638002548289496259271894169698506755758876239083012819527497607961337802720662561742658758642122451183544311782652857145287360085667934166665371788136788001878073708793151812402150690744659707668757007895904944516381419025706699380953786950376044740917482879473067749606924798382225479845891785029076509282808329246705127856432796944430396417040188805901617690100659614441512671685495660183359517066560860031839263092300197542459689179530272106179016822581785537371299428749590184126359475868428762327856475877560651834357896937277893123561369632378684572181749926948515946812776349943317672613749553192216636782771826112731938389929342608130997169725104396796727174068984135955420120995556640218515343416359819446995803547716520994717685181289159193762718986064458098710580819320193113674142684564041553642107011749313367564637143511021400519254034160285460871236778374340899436361990070647308352983772054725222780283685860952617489427770323388149962893997214294035070392488769581424321770105542184100245290222560068545807880676168967882412507179007351618269609324928345509737838005423137352362378951788352061657991306025080793004214820562887478980073087174719405621021100388409092759096430963021862894510869082597287058009783896175472979123556588786054625330079473171944585849505094102545698153942176057784632842009015405183412595661195654846578908896970947768398102818943705090098551081714884391778953058299236067703249576351661155571050929060527519061658711085120496359991884304793847917115393328605601705355520376151095772212726299281222871780068648419304016672773845758479396384059972607006114972696430505619026525062114660547782831806273811333950635170462630180204728655986187785806969969045975297857062396841110982059819963509580967414480701838915989162843513751969461648083741671046794764258731297263506832779321969015107797467930039927251981743302016936838739463858905811658225244575473515141049020927224455993333463039497119367431780812688437936409818397641687963740374212808513739240178867725140117638896441846487912966979159070908714998838622462978975557609788906105247635099786809645358837467935191625930402337737399447531363416804999162332849227096655189414646482425184454337416983318804554696016449365342783695757727887821830636748839885991373660994594795040632139258921182675954797685189957763679916914515812815365666597136400331192531257773708349154926186129418042507099300290835817912131498734273984565089493160050927778135158332837155980756801759994733913932684300961042052918771364547484819559970623405114721233830107766050611197560466482861642682230369527519607118447938535981098022296258253230607684904842151297659431134325268806189396283396440981750117505105344147447678431504228279511238137185197876113380468081437884799608300675866499853532563407947201740392192267561121063574417406559702049529292151666748745857558237241496441857776163039903166567050353936095214152181441352128279596660826132666515246568135010263080436325019974020994735681050530690943803973533219486539813405468187342704141908932468636430158957508302505371521202074529200746763159390042625740440213732218863664566019294803039385574958055056420179991763336277183902278706268131558493713767777720807913528606828118313770540196294181131574417311329091307120315882751808807330961122627042646795323249385889243374699141946038826797262657039564490293498486957567315045774695757134253858110377563112482466362671678097922728909119135008030233011440133845871985663305255779874934538462509689396105875739473816753175162456364610141082970720923542499128829292986098933702994713841929528593923790029167819395834179674230927810412291388705592028010557258001735977513598990895901642888598681222213404275416363644686752013821275663750587407840370850514213869639770259985423273104303776337110113037812718440557783470015661290358398061526565933730996829275607316237808408279108994592963490394651927640616933464808424276232242992913790524228698524484986339102369429965611918434357550389561008930355071502714843516418869043142461621462671850147363201401900587708139244035185721248761917999398952113753511132240328561895639879890461940031079465772932919619160344806717140255963291215564340042222495136814541478133412781662621331368238343387701272151792662184294166198838351872952284109820698501581169875167575474170220424909250564509651463128388955941726808985479737059101944046075201635218453169409486892627030621868003667233517173714416725523483095708306872758214870687427556523944082738821178112616253425098787054082250429218492990666101946923960626680494804118164213720667369935348153248038574842144776173594908125944621466554202125460337383270253730789834244126357952593719574990659799387827676728981546027507778553792147067072880464704640707183102603235338405796335678663641570829509283292948213994104193121352741726806292059866860060438841275183425394827147664822636014288490154867326421207124341223136557102550146577062518745205928850224365021896269642258421671507072947800891376643268776479574676367696769973016512275193508507826272439405865473876330881057679690357564497550430363743278436799861357190939405109971203722050603117035164942106233880727815507177214797858563329024719672269235079746079453434718167878627698296496864610836224104887117475806363886111363097555225655574369881998466400278559804868453920360171974985862636793637575519892722993981187257862988633339422923671033926337669797366613866162216383915273628269286817225958776928988768702047025505106513261627563795750905502030762195643035784957059139907239296198559002024773589528994159917301840590160737151118427889582254565520663175681174089828233655898072480790515928388898353536175484277174025246807803725811373263977373718018397863487261210697175578433208252504538321420897229084595893544124122573970954131594084404153595327908842257913023131468031841041919346391048829013999265086315129415443449755079244847243688240393529690231051941046200809123617455015243729437935595072484265874747652530687511222445725474067618901695950250969751939004472282181302206843792162796135714133936848615713888786644996481116659967345286938295228653265399051173343163655504138375743704122062916761309788368767483706162652058916484494860219372122083839368652193976940336060476303311605407898101280524349219843668137500564372812521444175934287780440421578763877207487074132506780776638226646472768772105177002478021788716725570861397217218805025127897327403961696457299781840379452615354936226364840479514391430119301407364073661138288652049485917611516305189707100631277962400989591456571246351256893982323053568599385544321847755094363729957464460913635601993982662318988258778917411757550058197115937159910577504229759705354672096494347890317935787537681479427522190789236107906631569976600330201707750569113556567906863841803772922246620877591415358400500255212106287047458645518249253813980136089724851259530692925230270064247115415553658341381960492076193117492176910966136449852412413279523422271785569304787383258973053317326697144251713827103545410971526660183121885011079649560778613535337014980437632100070355683166274843966414312303811963007859319996605451390238927189341291390811078720027047269260707661102939594586508311768883533905826419837623408426650290352314566149563486306206158822105351801810833308455999640542923914685963809639297318856760102000680174222751747289348478123072201130596032572286819067624922131084309243680097732508527384748699158205430375631597650345065728535613056139379240668476312685292465171762644501703830798310112595476135650204568159733144533751381677220953568210392950541046010068698713788905346851201072178995655659757709943828379453923287004576388365052862206759263711549619920597777702494885764249283947609828280955580285217164489370774686550552411782924828773370400586372749474141174747049635379286068789866791239693262166318531731549566075809651848672303180050302596397664851720129144201860863967577716346331138597071863815760980121553085221061657733382265682945182710493585373060545322192360926417527317674397545265909372554369759902930062471498904094213655528989543112811185158397303225102776835529737588885843066136796704388680920105444764620589160523098418916057957534704655003658008254849160573832279151587245835382468359420955322380162797287465044094379545809437917044336259149568612743012867057131423989950108974818721607410726208131040444199804941925559781684227682465699861694980699186015621797929333091026673079335762026954190901375395587564131359696442407103405537945055930449830209840384156425473245969992251524764450572820190338563214216099525222163798785745453250925690972186879005417095379416242728138565497144464526640628059884169719155656892439363753544616137834099453775633177202018437447094205097116229105592194601036874650764111203014094166556367968363985320179095606388930225540102190767221345819781678710283829277451982938458941925063979204896487749726239295842773819101257057178603851452915438792927617180470815054951098337668472192005243986660189121760044357735494164607968682709450967410524037053865927251096132016155760820805740364757467554578561330752751804406477845621151187371324009478158823834431790978497788317091450728634579858920237502478739401276214896255879116753086938257477863486758784089156419910148277381571055029198600449549932641929108035599592121837449348309917136907621129300212028151047545511100872225160612560625647235526892615755718919905560014164091352750349290230776025949795506528110660936974535227421284711061161200483290057100931033639859843252868681401337425406124207358673334822802691839245459427642682570348396423667712094466706417390991426723109209012658474416383491787811471683054472766669476649169255664981522074683968305458064480710223994744404300048045334427551496008013013848501250216802783785704709171499621973074484653778867374352900153242185980615076969878988666590085924893261479172711263245944614226750137984185206987762069789198784351442701290255519343749400269142092264202276109459745759789909502642404216279945273541232378702526617692786014487515879326401186318776097944697393296257625604492539533962054581580833992734825366512399491222033643615672626676934889378487242353383950281009238291382242019131239285022334828680321104105222374392093633671629898552374740775638709027763266346671538347573668371489912113385181875082610108008377935471826026162074846575742560147859184332369499076884193774731954069731625133725847084382313050125709778433733235214035492831809407371143348173101372616466559639003627452484841530028962172034280818941822332031698540486563784659499962077262370457577749756134358788717380992148273586372699725996417489855258147010706570144079307273486271931191206636746670172115627447066539103825804179301248203014135508925349029010202602666930695140495003408878600761493929021998275231598812895790941530622606984115943429670698821002550208019915620882933003787712008425411677362327028881151560355945061160493125178006798276618159576139627418530557644077276455540998282098099241421295690955765468610637252270130569608455723437404187630562717008222942803979469196703933846551485511367278880886524944839835087789759792511661935201292585396166803050093861040244228052171443593519398550051411756388346613890164184887351586468348229492492713331637673039577225783969137992957462119298181336661882678911148009128651353716149690708317042259404897538295924784001158057272019179259633656374089098729831894964186085253734295899701872988071949740272886872685709438686382016089878317339563264071846127965216561683242794480977935945773917901251649870224735943467137992932141442120477048386422183257909092929887382157000224433832731192343444320588140885531397516022009218289685051674046598176721880293537975982268424653044944110934501627803520589097663347886325373143661407939216369304331316998006109584402796181685088626855210348236867543271389036603549135256486508607816573698149233446546228618643931385013928873231547146846790214362806908454229066389285418697811435639001656908755224571265707447598196090287031775852665743323434737412702806480576555986525232170691496016403150998770316324340575266481426595700339242333685685207190770646185316251048085990508776461150594730042024811978051723807039330427930935041225095290840623834351497145929893533090908257146168921592743119114701169272579805001143724801888378840975197573227048088928355350574415444492089890997583047754453121407271503801592556270642894546904032985539301170802201362786740867744897077136887731936161047075220113578810434743314996685645440549621739703692486591848868722365690362026823101175178275416855849916730105284790713932601695427985685996272283378170655218228462015657360312560244546966702407626695919304502318764457464086507911263347251001508766686544766528016528999035897891078361989765755363179460829329617372225725446788280361121473739416908088158557125940718051984170930597579107368168392979124798513013427036682226918848891084451055235616824366058295341458890142859090649574757416551242775364296699121497762403878124083263282035444649191698855394260192943258191888172702648101087265511275855832082490541294865266376386567466577362933889868421939386577933453098431223704295230040760610802176982220700994232291569198145351295331918244162594536533718606003565563085120898892965899286367691191243563519352857582212373046431720289733589301938991769255741595448431591381283968077373266973927044683212843945230725838156861744263985902343209832628230212558838910987993750542994272136104555440959334342021430757503797373794638024541628952567018894707894907950266929493494680263071133679022920858067966385115799243953539232524548063970736031823452278738949365181364505755760071952833976035112945524512717731483249121681283842140699003779700648199408647633566374961166437573305479899522831902400318181941485734324942820528991772017497692337917691768462901917570494944347239332631791221047316662227239740785304483336531027167504964705161965047599841472763567560116128434246013136726578129038598894462369293428908411160591006053978150158573836928450122890304268115096861894615434598856822162399621345494361777418322102999650831666244790715902930275517802725745649308041282555290149383521292436763773267823794785243507105595159570705286552095486406763044485678488346852898080952671712362434585708187205464771142778391713787144425515459445991897372155310532872331076002244853127497891387224688860089198788881734630044306500420754278144664463177931937647423474999464658856939964789346459459018016953996441592976753353000942330426699473034061186255378897949569930523101198917030956297325609034186534073574807586531295716785772204150861940223815498655877264029203723412985891798706668868660996021938787616191391128264580806093498963978159553360870306277360059194706276592660477584549191667284536015797584663392531796384525775410549126780282370539305524827505113725280255766506740535847864480228505335985945672128691866827251878738894649234502118639987685646223034003375834436982062098511281540592400327512017667925110482483095883221618831969192047792538355861515275272574167018240734287799486520732228117094139259607799838564422114015112525050086088845056289099157611975362334177907509358980517983063906983017949412257393206783989269106908125698913779898689239538869208740722632696939432512873246393010475715410920483892456575017850250396573938864346496637549562556364780789008951720988264532494375194004382329181900676528751167825741476419013512800800558987994719867543605562420142304320400355844494492851553647256209685102957031088416195153799244609272419508329085315211438374257075592668677100782373139750910333258406500195734831367579172922428211768371632665054130840756890548612381260301475487445606870553470459921729170137645905599848448860687959002113303687214577647070183844707959652873974587717959407091956455686744392817523646154551676734920209973029119297985047879099256973170650016119462440177203099003606227199615983880106604566925823310813683124441151057281710148400895447300408447734376412903672908159160924616267881661922948862748367997842775591104419953593415782108738035292910166795554707244403270264363295170344995912260687037411300231400244863109207151113589238875843040373369991541474503029341221065568188424119064056021249816984309885539997253017967404659593542951284278668837858430959056336015667707858642569972399836218334371426073070931438290112338699842102521501065837640264364387078968255748797362237011941715245871268699088780467284638052541811979215511898700308242565638511330156504749095080112132343218228031504511729053245879053767059730620555355770222213956597939914761769664645611017701402187709335959560868586095938891169157084388198964027708418355997049651905875124495022463434755858768343161167610168659328679832622371891786310398846338753064584940297562946367273800724074154048397462134470336382460430882226941830338115314592721396015698018722974915884264942343836628864157118873384218038046328674928879687639549633637037920363677000652915010255384026424233438414984892173649874677017170312903015454247283064958585455865338009362582235427493005422451792485377643034946918594203425195473772762424449694930709992900661252707531067199349440068593247348550148054844578430337015941314004942911458816124853883328111178259749817899066656051984350751263747300752929482162622420144571129745124943729705334963170011078789995520817367931860574452839412325627936619303147731787538710846347093844928625203146651789487131329096455635017659097813961705357233644206553141080776089218975422046056734420511447071755852019453547100748543453655428532221252483778405381764772180969431790563943464498616888943582813847887684800327813592515675350620994965963551398200788771801691037729725971546947050647527025583941946394498846187890541998305168465728646675232784578150700319607812918949435935987153403028587409570944086867784937115114472129116354296082875536734209832592635943130983432369934284173980533846553756327029355395296459658431625888298060361880070137566461812247463240309669475680136404586580954140842748049757217450863270334150118051730234879354296139488787292081900406123936394115368403264555761834010881662769567904886074304471585203310196903630203139636047153221730173482071174980712487030946273885838083555530797188740878288356711258052735283983604403137103312877434587972332603739528922418114956963715060641485033294269992574160527293081285786093795989892709890654103123903461924686786044385808602236350731933456374127492565792130077854786865421492995811523555149893048539717159624124518971322337571418935228562653102335501172412831604910149536879625010300426086188409972008737431451756683064679322694611986954741397003500438326154397005197191560650465005594488839978892466507161577232497104022796263135324592967143357361552623501737073949811170923115463498626040793229390512878580467751008203721518375192087285988759960890811820736806173322279787760243178740389725143956035309002804414688484626693579485564569679290439631516814018986980966197563136382457389019847436707949629537389729914804190563298595860225911530386474113071369249489640200958756061073585900283993942796342187713317628339897778231021089977427981644108721124801190013595162964629648794492844626982404673001415940267983846441404299757021353700450847479629667434255395141479783506198084586416091371553172391687808194884115671842227349898768330153066777541852788615687924840467822330128190811728771852329416959108366266303817344003996358611918572728640454645654008811916553733484580740118438564543075310645193886575807028732964326537354142401334024291488637364987636275516709167408754328807655223325447890889997764631282181416902276171088312600456152895412246004067295781088198375419324756105404898389279333107753160333600583044947353505049202268521545754037020428264524924065191976147139879212801435188782995320306697890146392367523621306845301835129448775732682324545647167022985234389399473440872300745084876266303721295772781522789026238129503339313219001106814220566742833535164102863879810128190168846346139926471842606085540688496809126968772139630280208286037977904389952519222146166873296709827574540616472468718870372988712479458350994478064070137495432788944950772942887850835285488842904100356536871120496087630987881971919516193190388140476310000453154994070857283600498100776431069957421854956932980531982550465971621078109654013215732071400589926690339586352246927599812529737250069070967964418946174894268631022729672686661155842641250350079664065552318037130973057318277754663121391739628354704183306463704047617477675088159857889013604366514330913999414524007122479600731933406207470936664854812014054638656217288018820494753997997659995266646692226595850294204210524386430571832112427248326979709635722735955304241730793837595513467335226037968018757425897514437007527786880469079010648433531214326710321919181904013222261394332251874183808885369126022721778114950040031215610156863933217421446258102562980691876661461857437431109022810945966085318108880969684320776840785294126039243404950075727481936352417296715835420174739887739099025581041798268618084158343176091318741165876667725568785099658107024974365971309630370340981703567210627601876364705118085018720665476607255586561641797866539121248063517742304384592112713437096507757110634721869758146010765295185143275274806573703948010107841786876663333833501317048665816601455755591746544460613970375171832352403446821815402567115919038290103466363976113902562622458620459851871322655217556642569872239698998264735846321061947893031234167763970440531598504968105198126713781019987685248896476493295514537372203576056447544482139335379972425949446734622486787627682462168120985227549980390080227475288113975972177251969284161301238738638979040729072629174272835186954225582286758260738750701707377244953461225847735542689644204919208573554654606072583595170327645786335913722683479164203289878008177563815279595466717891833027286809319914147953202071394556586807842131658854567980707109111365272718571200086594623107146514325336657071883945805771022006441571460374738490646217793238197749879873161123584460907067395436632400882333931141006957542631979208025695044551583838564601808478424575587080965823419752751690104385237032153683268354694956962328336261073696520722349876767576368589625851621247066449379382905987975100029814253310808058673482363511847826421235527175467211069006618791437663462159457400751173538344522540647938651273262084546065906156280101815878657814516840170651957712472003068337624019832470422470285034365797838004814237281797028908801356756243394480760114085359513773690149883033155930359135504611610033038406466625475625833687718864132513311627037297752542795429251617167681226473837223802416417606508418581667038347868722268158315110023875667915533546604677164591661851939921819079387406762768918123772179089720366009184400234152620809569290375529571953392177724022506243995100211088133642390544938554689702776297155407940204900778033022463538203430341213563479965475304721188390797103007580070131587187439268380105769676519933873095380283836630458399717582821028593132379499374049580648251910807919379095363107597884886788148518194132313355491715502455704162196261569935640799324704165935548862407415271423804760184144721538256780672517645584751630807783588521240347888070362139798850179146507065440203091707441703526086638035937472262919459444426692628108191951875574414802400830008224642888614272700505903862674012954487863459127623601271287507916023255191338496426494980803328683829421505267948029205964418833907877760983663956239814704224085665748274643008779842013552534597868450167330264983994613228462930768912115180417963918541546792683707397066352736584607502584439161497368937168166611719515692004838846851293432810068497936435913322043302832693680812791421686341814595163312988946447613953913230890364226036750301711401425913248954636910237735530139681691944436987700044132785617386622173200755647108457448972608007090435680338797940453383655216636293339351190272139909897674103423629920029575408190912247821169864510688165116638746701305613522646040939855020272383786965700992134408913181962519182198447527468829698734289951216433822050621444058081338871189849757051618229627693734881081411986919500687264377433305250863410550391576637837320818581828210106463218167577196290761780694879944979447526082609855910211307047212125459835648999754715623244943914141212223883138007350481754576299954791246324203536045477528840818419025517091264509342167755684949769215417159239682670973661710364871560900568306671658772986708034760421315958143373536600243246710170061945737012179040746441258323197304655619415072596630788732307078246521240456175141280917696036761833567301074650199208803283844135456522713871174456483681504022434448300690035377494545775813940246339066506789662629729662443477161913801278889283322037402919766418494869208821891461337720645356879459165917728099357739563803250609917481280779529110274111948168724106497356084490255978194524424494545604246270741674167949125174243776041827683382411317151102966283716900797503702272250631967332002350338497697018341647923109843847928913019439811824471368370229532975597172752448633280697878868011268246245213212139386296393086954722639522326180511648415531998731669770504261307454061241035184793040155662233752614450737543750579146872019230539327103462952383754634435557215759289814959431957135876667979113916241137574538061077762302822692030927474998855951562030547517457743413411093130996061129458458043342779573616279665415208135555179650015864285913165193562504112465622432052980370758446397028273041327871915373609452046815522514022193037773372779147629844809184705844115142767632824338566814696605246906248053874082798208242881607017057359783876194432555486186897341953262719536612730264526149667350303236176990275669324477493304949039054813574048093839598946197007838137178873786879512634247676987536849710414593287940021191883183707040018190641330486209645919530282669545550790258465276359756580595029660563193647741293115756174231776821778181735259209395688190212306708776377850010748350697799620927033724666109387617170398334059902649140629213290201140331434889010322761015733234351046673926476317039212474342998737916664727893244613252600429992372439071424617112042802091223514874300794056852038681920384924629467944726505467913871215400241570119539543070833609068525411972682910545089898591107633933872915228431130131494055041076949643378935527284693774595663204292678559947045713863039795314203323719201296446236475229528967580390399580907661762142831041025591722437613989106469942818458824994372942754507661028115710701660422005384511744141914244660783764460845228002797253187367801484601139456138889382343537432049517891471845336455534238107278943853168747788246958963751538629651783130021672705697755876642570553893556938973470563815403785249570483994576776639604354472677025986164767770534356115986770591809889326478811091182041128417897506015079558970350339011268921413274004227238497394900813681727106562898831524980025654514638930757581994476625602548696101115833574817792175538642692406342766124330469194242591113209041551945063394987417944620154257150308871776212804908889635566112819477216706951341426478410409384141455221726747366558882873175398905049631603284418825645202523100339709872762811271347914274718699225039825691157361127321316801195456727338856988301668150421327149746851945976813315633741029073481836635974669791456018864336211971338356266840138354304719332534717838900247512674191240184690306537952154804761426926335945250025308938872363723969734145110499195621897349645170753415220425063986557833128892498396356469943144639666078316452637812844265707577479389366948391803413897838986985347417071574722234940624968674721638796913509626166185604003010379434588142775643338923667173245646981738537534926136885526705941353018978741122946811435735556889910717878221542130651605894968831624754468466613786523283680932572948304702111312756169142618284929932324303823467611532650303474973398994955414653855048661607421939709583497522100128313149897270776621762117312428023841065283201385203904421170841893852227066299777802712531172274101824969477655466175170658651666819511193509121648671151803370944538603505677768276205438307315924594718773612407030235545180701551592031469949173151263208023613470983967448522171145450599916880552198578928724904218806907629137262299017577650619394524075360891451731358044529010442833746895932455134556305314239335164995729830485480983933582517192047478488017469222950110798998630751587010362305448567049773064619997896584425459179731275518784885979438236616465736981445842220394255361899352580108598268232923871518267220009284389003162100328946260357712841924004157744089474381171006286864782851994273408726902034844155467192129567302340747978007998466021377100943276034750107533552171165998010409653419596989853266341583268608598656732893686158031318347379114367547965856674042348298224671881157807585543095165795683902466568694835769528134771468476208624862729038215417461770676427023340597605142672241806542614150211871236615253107444258203989803742087786878540244825489121974224143598778864735424142978252175350819459150958418013108028412245349094869608172605080621036373324253027921051448251806534239057657148018002551999100914210477298259064263570762672118223777831404460688514138551028810370472414101347487708368786785583436320940667371238119961046932406048559108057330532490354909469096198524685239301219896948605757415721715413817600380679007889796136740205929238724669419436384557573243173827142503348604502283868275115633097725164170321922334034459743832779421056240326158929238708133548769682422125130632756401955003560598687482279383477837476750009981552652161044715856853785366037933577204015084809008093418491474785522968424271289250593761855366151821801501376391138272116458066821653825616741278181343089908883246253188367179590750904786178189102620352099012150340401596919798704785899190608938345931941243640911831726561875767814222400440623921116620928336183572203800227052090586153014530616358118985889104500757064054532357757737939590018373405686228656672434754470564674850261602142091070807188729717872336616629196500275825146536513464952578049326398886535098849409687100576235940680209341535795913710435727379874534938315837583308798101683876432401218922439922890728071619163749223552071394005434583091374646227296702338330804952847129542175359477988893425483551054454488872199417203584808482703754144294143083224411059883842294557922649391925673155184225867255243289211653424268903996718813448470386035756653044736387794527205445123448919307359243915666514481494184430983856703476088920035617868657467999258883587298662930326043408165396905661138238757003727874721864791049929336232223053681861484085074561288867275813039474452826905249790058408704671926717167361235598908702857488969697257047167665260620039771577010745570338026047908282282508602734952065683579809660049410679972333947716926970069797033669281088701323763530827237914946756347665909325662956368671084462290385703746153537956851601672081322372138200901274713666256001829272438404959024319346430663235411324058346783025990325857677865137332144012616151466640193240602428714468699501997245477066514497196913781163813913691147714978616264134947077600688119008687443099738160346807220128816053972345218798828700769703687364299158731229519814695108452975539687955223404766398843283953571370517823889643290713835825200639965883184591912608270924513955122739338165811117851905302534889338594541689236087283789610474321023454195169450360687470928841324017814718959706773640948461014917888201604527740085606738578880782616222066298769908862072518543981423728244482851275501433167139344408255848732139078178813697669884756115586146018950292158445416539684669810357461986328183263649067351990045104809344958203871715908927247650680750035007992022771345613731093867952286950963346182354362647291058735174354735932647868284253533993631721164017919952071011986286167859703119790934737379130968072520781776452193525609953025309719340142264640379825572866927054736788181424203459531286330782984523143824718325914526996963497170650156683153083446515009174145474261853155983096581123298342480574077295482521590998376356338247330101990734133828023854856285562726416457448907861142042287233935846728677500274462720070487883400467598218994460999476171476758992287826829465169765729267043071766152260566649767473909429895545861259953549750540620826539570983249402216589134208669007066053107764248710608469528079274797767109434928960240524232976477508144414069520638759776778913000921439308004213626446161373041049512158694663351492082894005170434201884119995889433041390554472035979592012754076123877124744392066879888610489418963929897479189637120568297925528140814578209355602541381875459282539080968695510651874252706436747992633938033336783991259601441989501753878956358641063438006370679627497860134238222229120256668453199802820147059570318554081826539258678362019872604299533059544539490359334626817489565392143852552111138293006025047198549849805821041337945294422212105924436876188701276109659540284523505953713538099708350731177290530567525345942010157589498797298841865528075643257991645445753769839698937112492582673921367001880828803036174547242867323726754706680499201240172670273149999005707710136742280910500508915275776754426283352012389458059557401958607643409369595512283938961574378210468091800262077963930076131812738026453831124859980013043248849018882960719774949753103608397383620718771014418083125159812028970452192774631853111367781991927269570618149678023099126010589083430823163149056183280001048421900462482095514866742595018526182119309328151419027071744276111726010444113031261749979535273352847903312138829568830050734942950216480701407009410470868114270165759223180003161168657222859654973463853887894672610906935404842478981173702591304202135023636539987505789825693848038521581582536119963841185720688314003833635417103575025003494096645516327399695094324137979978071038489019973929002731786806304157336757645686018629604845978501799408478626987301293299958467789509457064375072369098927118634427335612513197226837067732057159207120778504345223016833878067649072366670103229172632833065570951127312841164540968255837830617249716007309744507830091701996557771325469558211240713378066218957693644796580413483271192849756335128482340656445132449955163251084497243256552910778705191274992282226683211885530988807077046049919456281919059971560548641117273533013973908871899263279930198405464490223730657507889450698048185136078693503186631717841333200664823112873414519357739445226401213894618128381730690812699147232624363069878706844950846908174317355385398026065957910041745450045839477838803581502299428821955968590936575933212843944608043072080566030496484779664394145365678288056983452287226470091167684617004180876526242511483769574743442886316584238171524309111457615068224742832368074884210483441538643232638646978718242045581397586812151837411010612189073007982149014852076989630976626823385027771308765788021783083188308903367916378468992831481586712021459975892790767699652921685194481283216357309662369250621327482497468393783772394386193295809505614705541734018742698669590605421467048507172815103782885773206490647140136474649004701011516472706058008525589187449557130801760296791560640075823741510217115155956387361465064235599955332804192310520797203206989782266386762389871942030773459541425435438078385105164375244014691812786203280885941687095849396679085136393218536336534722285862395704875615234417961305149261632959245789249294278814813113598542660985833642301707693554651025437568372610356058077907340998676213004516921635344850778986043532925876092344676124054454983829484450073297788414555806197312104538184024361548194366517869563641709399255307149460580230725309314764330639102712457952568749068608948870683287678604463701890751994420476668849482557471695278669844603332549255150651043358730706341345282271715673464036927834496170885251452859133567347184220654077716276361424571508702401288942897770036768920341657346385433211697731644837724497544978116834623769435628783782158938001144640319807217337237290269700578200825317569475740780453574875362844671244983287961993945659554795053330447617171278685717250487069968846451024084555216777184787583215314175619344981846760880114531140804862394599877182359155755138421261429582199298968917682907869239767791264670250162104935420680060695280134329260392252379858995111781385110692413228712387849768997810341902561363646271545793203262336521634047352341343076374974763191620491117005301925668406618832354650951386584381683121654393097318022674609566544534556533355635979553024972579264379488353701448498199134058974001958931436871820669972347176452434653287058181201946085222985988911817033390394771800306709619568930143892951479235402269778017998527668964905789687066952235747733279627037590027678760107726953117825028270601656637767244327904199457788892139668204525835466982959752474748810742841456140884429455466365959385516883611441091815885293174318360391301805712921292032372147484609666479173384188003756500657767588292568910190767071303938175310511284605872210088824701678948306281150569141288049053041502196949206201804485748059296840697323754223384879519091470109611545458239712988241168825964993646993624780344629737599325055901729539361966472082746843959273856509693532398698977055550514018637466079487219604194195677847951280323800668742007145125548533565712800220158557329742304371940615508435107716155387838195995818811955965753048820100580195640631216179278485317734895507452586422778954718017885595985830900646628862886804929041797117173201067408574721808035245122231238327947401179208269667707860862918360029491212559118042629692838212158405462606749362689013148596186771579092233339413439371077012770304149269256709444330154991537494448848785488991226355710588005136419461457181125735785604682231571346234340168326717740331020916157170838710282201473695852324179980512769204107941907068767756932702755737279454764040729121311236310352414963153742197194016065277841880817030354893404783281670323316759348938630193506967359723618156483094119200339548130807442220901600989415770071397284802892481770379162952727743625633825079843862567845053622098139114121838852088359171344866886587476955435483936176729679131383094564539943647427223052963587395038569297532511023972272115461300730404385953420037976345368280285551625558064803792334701777418409585145939999342230107435949203523234030783809961286555523659341196328486294115134937951223838822478950427994444676795685911493625867045248013936380371649125633893199853675737899987138478940797505510606382032425878797700043292965749386022620762082718964618587643185301608842667706863538504501495693381897891758296565151684253101081717540327966582534337546830544077391599748770838536219506555558823646233369977469420213809434063333346763454393676178654210202006703790569131009982292737599617557814832809808458240368956823704046343161380841854204789957210351245022112870431568260726360284556470950048773896969210995059374368257631674634137228279223723457905282899104519979243875599781346118586476771625287620549104727517655258045279354274701703748826251748790139169738358415904218467895483118715814575958406079207606151108882905285723352282653690917393525871456669197518205344154009284652801207996070397264050738240379108257599143832716474307218390892260955866999240974761248033716624402087482112095644666074688615158427846626054624173388427329419146661104107528094548795895754519109778561440454255615802663076228165152698605171554371659882992253776335662679037730937145950538108443713901173990949634514736314847304740129379000747085184484081249064513206760905204370600941256490255914869471678600006103247995112717347289589388078250953471972395492351431492964783003057361178176804222571405513179798671590538025362905202023862097680134662162494753205268905850019777965771985808722624433543648851350797263539482268779777237755319750448332972480333040829356470113870959861607942541551318806678321793461876923799905960482802815821990992846176353576812816112246541851710544688931135842729754820625875011240526676040325208689466509382331320574769781524625539573673395656499281645967833340808110880308542856270759747619319033801336900597918594805698644803844580951965870871940892178535378985812166202384157897935178489020674826764249033426512287763912653555323704916503828717239194748024202114420281597490772159368205324767784527227010087544116458061517070671957282826689278085455481549812935531593140356134819721970479215921440979927389116508379138127234530886135215689509430333182365639139106841787623676662396509631993725891612203373639196153793706227274499619205577971759231717368004665205270876311841137767995286017720800359839782409008789897454345318671264758987071488444536006092542536931461537554848279269508922684044251891067428299842405656341273974887003146988280942387912642321393924868760130073627316125328967442473204608449846332375908752819955875277940986389794394096391831250836199859887053923294506122470028521077577960445783527508844707875800707054800960344827844042236300150293569135697617718950794006502943831606297220558920967025010866498341208865482960717291364941362594806935290243055576590337211929587470531080132057185662822651534655539886848526307015727583528208892211978121960472132554956576381528272448279913765958602884764583257999588591572950409325011173208913764421551317687792818193907005594458120351806426584557099114335575400194012711400746991418449436416503139718461440794923066864167356318777819122686134124718326359791702155022314920950251593431801362818878793128718561440913495085937033298286616597206902860974524214230289682628005248280814904710093886936008272807489481884296547929460865437777607205770980808520221162366648530731260676191818845596354082886544716458270034105430412604708615620147006211285518946028046572182178519323330556777793437163747275789421331712601639748385056307643701617167886377995072450643570653995718808243103052103795413997825150064017430752366003921798340792426273401026926048689413067092855768805287658168270225266641890873246189796927759959787315042897620115851066619280301859861954106651578609086242784725228066963712436961347488723456628846189831019141059766817909273685954343894049559814885876865732069069052053328997066034786310006061505637352767018428710741775824979007660075108454056932595583364560074150860332418282319783166269541545410555302954028546086824901182089561242883698785325470493494243740662143902009293714552852854075572019143894628913717442368276931904036224103675892498554190753798330677710502675482012765561234297385869208478528406109834307885045183909820364373979453211121146094928766842472666736105458579923208306282497768497657791964996697381327588240471052926013216435982656584391634963023054046542226439054644147028272428815398901062575691387322111012778983125119108427662545288380947606325304464635259246053864197568446463604178026076742296943513626275431777628422727971153544206390477834192335378740217565537420877730106224584561641139934405746834528595833935866499452422380531124139067014639830320191689940120559029281785074493896359604774563876880228653382976475622130543918221337209885806810030071208054960857557023772540830086021388123456911658985312752375412387373109300944096154514751716001666843847308895892683209945900685944657022214458717751453249200297608684540616321162400467611948346148296328413003645356834396946780678396051807157286857001474837822374801298990089127991105763403496830491935618014346337575705244055073806336619474274653034073866063618134328258980934312869332825110870133946484405137006269209751589617937988029833025089360056240112324870629304994166655160557005996148716852914254970527362276346979094773696028849860446581797803220949290168317225152893508504063116191372218761567222502951405660924998513850525205539116957490963459228131239962767860609241504089800840965298120337515384063539137849315488204870644654796331535132354329396639759737556830956492388249897633704412259411639321954775513521267512765951450608579646506260147204414161869616956012884815075841453110593336576463346870539788880887770656540181550458825835250873876895607655558662730344213963091496284133564892499756199073304833377875278598720838505949992351037865027355074537374082069379702074053349113408005587801387912787448115320783492441312879316181360350353073263450593786686900572175044976646386448292647121255837207534020465199619117150455099594550010961595573155232905330946268584980873539870327433957681035200842475053215200999520005998056262556739821062124848818001308038272379114824773811102099786358511467827098217775897658925480061265017269068652509740961570830009075069265447486878532787790894517341975806028318043880702424624983059595160107349647832121364601441417856643756583061032128756601534802721055354479406361356160452913801329911444022269870545620767466334107381345235477060046917086132464685619179464294007882061776506516797666078717987016189419467583471543206966161470722097978771043770139444841211536958655792839313271715839003484837148631800505632651783713066439354029416592758028468514587030965053730830409562712173266727680506630116722636541886639235972286745493567246087936280312542449168487203663713176201960445248503004988675416693800302287931141594121567572721441672318494605060328021409026938286616342710878913810537184954841248033742018811795191825165956988718939348576527416601540606026671666905291033223653688322885870400332645700064722348182239237330023843971886063760795642310149660888386254231738943924551806450133747179101522817621127409427358849214753438378995582557772783560477371832302487684749586249257194953115702108052507605845367401179757136474644513107053575102658113224911705768663955899532519496346010227139275942052723832254372807685673809475689392914580692935500610977004519548090322034926449727852341397581421804311075871349204092494417938278639564922101591028894992048993027971271034051627494903566165434774863425230652674428774347312121526211736382730579888410738582443318109475115326635162986157718258034614312657446926549882180272876963293102434568912259747082248096979825541292918555059285696903597322175611253897970355305670848299471213688580399944531326616068863810123520304141825523028409106076895914135239640336099566255716301524954318983624774201995211640490418148540463926671749729903913492282604205243270428782441025520696164857262512086565487123263409872665365852900671019952245929102266373821646226349411073993212764947143907109515585445640761825561841364015788023854418206588179954643111894194590142812320605704982271564302088837458563066655434397762314770871736872992483351727684183547927095624806726931333646186962801357483952618378499407878816125752042137777288883081494325892389137016873665351522081970314989120409711591128253785797255250726190428257788380175508998416390678746064033555955478845586042204820312735267660936056857163047890364846220261459956994304644831475397738855828801841876049364006852997640334023529326033811054836142237548636528170676827448138816162972299597069179659720891866335264037758068022165691834478782248609835417542176407522676232483279169382045949572191928510579789153787235602021218429690512139514095315785423157598997206086295529011102607333007792704405933833753058380944215401982835592431635825980434183572688727067710260696274488344124103520943250547484600268116942242824229694372518918687354668445650076516580564804257732280300615755211760439674571408046289396114191946776466000359353120272928456613432061719837899518157481977981482236481252192329570780680580781828846052674865046346922300599195375995807239400183431488325849553139338275449499103860503805195923350936903078130803715454055326126098973849697383814720739486852090491377563068834217695287008136453798594343267874497529203536638613312001398035090768632122103596054131508244900701929810525567836808378287501386700586059173323848083797121885054993588498949951895596743218023923933295504821603996876139469892503169143240028192039042051123177773698391986312354752611491044488598796393160575034323881771447655968298029377391639975852462755797191674042621592512036294384855405099800861607236040025133603946429200035245428106195292673429672561757856768952179437933917520575059167648020791790943178131992573903517552147413093710682650287867601511260689206566794364614045712447196915416185667339066108210318645413055446789065652842998006124144798969883186469829894135847150616322083005598690731745577891856358993916436852515028922300737120878879808850210684870663438374439517698239809813808425000313651620083814622418343680180687657304052653286220179362455865238212344841002408043222005009304087284123960060619834997851725156765350584499439290472966298539720476697428669575770063028342319541917552216147583511231892277571382432773860096581796341893295965755156931222402661672157852906252711311480652208175266179135105317225074761233704128878271415867362529105483216368044411447365461093686794522783512420542656645167802772168595109683106485336191566869422494580914484434043790782524662185874394606338116566489347003865685116921837407938094212716474488068280785059919440174738542738642963727891590915726259947736820480155013766634055634577895611290235543252938377713618543962914546889492632465989802783083331172916883764106034183632041005672928631118452152377125783465993872173442743935047167875445054523835424879867760462197715145905473703987452337228786601191384647905798265522371461939230687402954360119486584488052673453993235311545703073981209306099738281581599653928962253161430190274458495281696704775864797964383536733242981700034510645769513772431783309815303519435202738483404289330954334265995094695829038960620012589563264766131420487705985616763715912050860181790836122357279291838972547013292312050008631003292844390819691434993252796776417101525150742364277978604251920949525361489840972551389859479560056288252982320902339395221246096077342559392804482137183325283486225647550882607688391360296972079764850931856837554734617050304733424604302522163157271419378576269328082004510713376100817015119786413903350466490673503725920975258604955153150874130637330876636013683260541540473560615440935990554217320205026364478685031616068172735063595693754116787666401730025638040380161680061706090478438298964706483752655934237916315927116533761935768856055936466928838563286975599688851110360674363855238322591751910875238941291660857523255355654378963289703515850771142226282377552238488758502626228278730296117093823513154110617189347905723226174099557340059381872200898729632739618433449048270750647040735118780517789896009505252255507722710039872944536156329394740217593625123049012085328081101357123598734912646610786256859973275398312205898802693564672233168194982927227776226533083146695040972806016821736606373437604192103553743920973032890027518768299450121017879774933676991192373970637043383615370188002720337245506993549047803643719014383369853092025218645071741732782129540444715393783796629277299782924587947608084181058161751578410974207352868043990198145816261633447099464288974942612531668815867229074785047043181683585852761694192003408270668002756117976632208972077955032773886949811057963023264970419307866081433095136991593759350284360599021697727154766625986125179614352227176713709752278981936904426627769282950220273919024861265505378019175650368312749439313979414032068183031543668115642856456972457742482212700305021871417953280318421941285736118959335821117731077438096072633869797617687532064620104039338887545791306895673029574525222596608592153480576695525639318546182161096306584145722649149498790612319504195620033192494550629988599498103866336407015636286411175319910535578171090146003626298085493308707831027332394452454187054319868541304491636319849482703380669340552695939257231468764180920866842891833863950705065582718208199392677589237357261667502474633531003388421134209276485010575521383631425585188088358672755148683111456070857428816793690682021531618621932082366357918442767482384386803693301048872594059260501292140730586430985389977429928755762083618617929377802487749181333860618021533965156333054914883498561536595317998336962199137226199427242569298089198952275978664616358172783713303862261089150568944483478980576158405520365459404846746868803371703973892395112931421287093112922079373758845165268041008399216741059253487689107045665280391184491224284811315674353700656411992649492642260621215706985221306384150219116548998127196438526938356629459296973047700829497149516333820131988910283602055068254002797279799148271002357566735455703105740944796919904101130303263125390541401965761007503069633971155717789672597152541984140423925444793432379448574909541363680147232600774438642431312602196575039691760718128527356099760433529233744509260424659981205659318900072747371717534618999006442237770993565501361458431220745472830401581203915609769336298741447615844039813655817558976055281270036186955725680411272184058153248165115970595220975291078708880895785959555064003985386330100979098016810251808352616495059259467167422302338423143506142605933519240712320003954703837783645567936918135239734674307833792994888569488418107208233157728037232537460990982133651760070112143822388027376432357396289522027501220353776525147179580026932956358390536444135260592187930325850036620844966613045694827051538343205354527671110194342577114045072864086276011228522910662580590781796189196429918491216591918578156244012488578063715082671679514932857289103796440783342224871307378519831673820143512186964762660042170244341421355038804109798316931274875326122832468060972174776315007357176525252608042846366343245246015504833245481588863738117665578477565185023956300257225067979242449183467923857507305955013559467894134142828673133252744648428344575536654996137697684956977441126519434112035870623437210343567179049844796957699881660729297093685527118438016989132912053835591739639545529206030767676950372287177027207526672403753113479313345200047351703266717103696210828045908059984788210421986548342985353789521645587344820413705717906403336431555428953907596724419085674857640401636368469557347929996266288142876779996347986519169474280870247688724829708046210716656249701540293659339589049881710031945332723488201150702807855035359234620373674828045228920154927764279950772359937478488902733195666256366458686738670895123545475713260876372240658555624455826356368897405847620593996917236322966370175665476903874053767746638009900755430869453055833771797421583060519468859084367180873238733691324104011974244604344855509106744681069744792861144760727023249909319925508453375456272529939691209041023636586236994018225740741938278992708490116921736617004630669786885416019555411000099464169330894264175035290629520404422286432550756319648682221745748610081630589685427789982097542364009326735325344367322684634702208915540211313698654027331854179202219669053021036933072068170908734072769099778690160422583472480414872189570744459756749938766876910948512929587591260249751926093225726261602648519375007542817563548822983613415917337802663205675504173053951754249555528977303827124131253424415351893891068975466923450790937577369683057693810368202037017575033836998308639538360231124081016524400180066194251941774241769958171852801730321363894992996011043991751315578751683221768833906071145393271808363280831687590548581340647827989330285711275229859939095031123277893888273831524504105287062427153750032360000831157740964640927058932910141398860664863301604784503235325475134431348112553452677825971493325836237071137791697143904277040869610838187838514265771015093959835975918418676957092562719614657800267507287112018649141512034387361271432367214229502739961881690424325769883598654407439090992783144614899408453103830954999487026917395208327202288478974962006199145674423833536654320683533565876586214170306496644690705725529725775880961320920623404938527613974464455412305973435328967223472094323003489941155915190015865645719997891535252350661050071051585590831468224073845500244186017523304306678129762489457430301379218834399168681650583596405716231404046969466431628157372689950535108113787236486222858505740313486231601941438286933995626604559398150540092239557893472780528745967460263565212316259706509980967985881539560111579140770277546175796615949184868458313967912396544538184397278471876977641944860009933378451296218521093930993945352783134225719937525589843544153078106036984037770324894289817531846505685353450229706268811604593439665468577607549731445935056605653630722514431843900795197450545076687934031795724063751048047464040767355652397064787292199666640311391589583876049668919413190273274693340496139247693439309649530451727730085278136748693301099685238930841684891550809171715160686888287719880809100566391733081178512064060587681053749823342025440183550380475829280932621516526482548176068764436667705085635148054004028382566532250680054502786218477555154173814032663500435253902684445174771566429660531900547624076623950858361308759013045210595954923955182122181153442542500047173217388228617981813230417162445862815405314791826590668359119264856944414141493934479937914815683796972738174514254998995777224870780126699999601866512774241579606065404457386629695003539012350239811690342410572762205617360218214160774195332206032808282589902765944204766681020804722563564653612746543638898226400233812320336160168122602529345171591619865144663112857749651073417035898802881700845760645647148648145346955542824646398399552418950211089686967296761461415288799187344842009080402738713302950469617993993576064621858484252430334987092500193436833424173307884920433707648839081567208926535499317243326194669145021962046631455017191866182007203322129412618858939573350899965374419060401114965929265801211140759890080859946392523227297486831789392702306829136813761306436687404235635403901693448546918179593136722365727056402587950240910684901194731642310819768233854231769380783709166826937742243110157740055058025303536146039356380887227431992674097829584928129831220815432176173694970226008843445466514282613044036499675142804373172118539544871177738989552261377864711519106297630498158270537500438176763201390825560496378781737088531948169011350926758908163365808109927039436476274404031581452210400832008815942432488027387041468786253015580411946971510057930120340139967128272504622323850539450198183758707453772501581566923604149248131159988902728243024720410102007272230396044524050043176954148259803131051088341846987235138225808096866720724785957644298001124448144851494547289612942808577501388811124220302617598417949521099272476011186152654118192222159206998197299380526678059975465749583272891040485795921878416812317345371728605888286092192077591707082974216572534178413510847343585121930833540258336154051966704693206988219498413110463066147502112660084029698806926777337922133937749537316673614385859751802792672876022290245056847570041752302594297730941293314026069696456903908788245533166418795402378714698459855210318878246325907222970358772254616936395244600106308172816892734001909233693208238028097427029502965696339371632083958126471632323741452505339947385674962535186703642427392738702175312936684000816950377201654588197131049428076053276680598885975329839723732185369865012415673754478140932015517328042747963723799053340319639495153621182877137938596376609896097288288313653247154197051346441619982389061279091805824344607750666163352191565405096759295403864511255464954325536586460159103061030807553634933772390038584885723711038567394538648800276484274833805715302809268801283259636806323432375306765767183735965014815411609471642082390122423307110118322694975182120490812992305787017679336045633421536893074958442721289821178434990636309351653188803669310035140985994215047677907763278421286348151321863279410288928694379816357773501205628294066482330104685386888362305362133494324339449568930137556238130686212292685339818560547703687201629608443357090725226725500124767073104336342137661827941602576578622147724561877157141473219410780944553331519759850263718411374972749722049639897331767180499486426481382663924082003738675781432928454434267644036418184312880709290995343395863454357195014962239855211080961845300594921905301208815979348249837037836439736413567905074500307139300367775035984861934135268529888227569684707121526188612602494485834139520226119663558873174536432249634786273223138089512228328862367233583298310554508665107719494971816569702517605195308452469655969969195582141187681545723993557872107539812199901546753303071152778399625619210035785218595979004253464804987641032061523760007416054999500471293337534575034065695995634480468046513988879354824028552825503073561024344309047345671686322200916083792794517907838008961413280464937898808801298953267797645009838209717856474916989426083634531830137188475661969338705290941739765179568866150030341141983998299719606724401813582397579583114325870823505444731785899424955297232327315588345272557027229182029504818346142702813274013721119836726251632155352164599093283094979003639155223341071760861448211046565187094701268500704905772152995327744211006778543222403025785212334693344366332682646707399439179918853900368379084587554167422826548017565010242993186136968142683620602708983176112109445788124696773740117845362502384049143499536423238429792128298145926042321328560806741989410239445943838345926842793468078780474159854726240886545603832101710951606149784657542951791725273492287847541929616285655765394425652912532404934549184879307125963568996056268269557640072556365232598396015973155909323177841906109737684483617916237938697351464149237102470227950345569083676146985930124024473784899548375007402866015627806143360665219245824393577380226223462546173231601069098291425771965560222429007854930440286426394181053922769143733934438893986865208973901003066605383572032995342352402327186573992401999551026655158850279188880448460284129381107003442918456130906183523018942814388144784623345881225896835040521885752519976888889627642237779472091397597644118229103504836576071554678021376427320164965220010896242183428529299805708092131515918293205106282406870429617837727234580291141405393914707603611779375272385481147221762677991129821054942433353414066820035801738451640819159817506306578270001141421567223548990749206920483657580086327194104301826870881583189364345171403564233118640954689565908261637588378380806973120364608826922412570608664915151636353045588464698504605854187051442457998934754387855704204157657117672502799442886579917548690805318575938195692579609139940868480736687965754496811570478118923198263582678957831845055813232255432388536837375946319967586935500994640365239695808215302010867790442219175198447183794889816744908246511998826744715185118891985041199730255385233011570248727044693384706897606248523899813314954113085488506590280463652699795972383233641470891892489016048574911468935843263169333030733648420330230481648435675149781558556988923101883742024425503929515854561732366201349119089204248850084934294068581583676230164993628428431057535649340078197361697722730202851760784649953449900758881512418887391355242246781745041132724151776116974793079990784532393061084155399327020390246350672111270668488158982111064001606332384326079079879963453876424353737946332890681971650490703554827292051385797963726196853348096860790215561815311939307013215472192497136781333940458739889972732629580498333391446973339974193838611505508307114140337000089574647337374264408299989934975195820754015612722163506161076527143499536514256448559245422138143827298094171464468688279149637015915783503702684819487361917975746381413216895435330320856467508831592641693979301145283718833091201541470221021413304033270811846533566550383913366262078077105517902234500343699266960613786868221983571791216857066637317723833417049222528632554463833467972335679876565369947485691958130266754502334807006020821691854896347265899876331936941594728636596683855648750121160129929211710999848558060567724858826039598981836677793270666211977963556673356207434407924993456568466689924242106128098861120697289853984321572411098835324398265520514095617623619308630400848976109524688182208319280313791497750094089474515558426348556134823393841704518218306258390071364453454196937959502052206396702771343710023645775981802902440815837895385628934615360369870073276695348966948915396393465627016601256752051213954684963645444358492989480531276124743634749128120874530527492815365976860935075006244508078863686460725513772274892619980069184546023369418362357367330264281871420091102371787901757151932976119396859520330061041419519019277642754651162728141706376692512274711738813821826019664765955683813780965649572960515634682870105039921652488853002196053854753612504787675929993428294354573156361148849966709115479560341441570767304648866657708970682578859689104310701341252637733170158181129612077041676399292875728908610255856708411120721517038484682590020019555226605447193624862284314519724502242949734970075151669035256217548965755012704340395520173585541576627965447732422605672266136028864878298547019758132180716447739363037438146798919925759146221350751404612432571144935403077204879978795781003763443255728695929956612237455009176510331553286007705709042066977165524326755422414350928900869611478470636172062472041320051814702485184172322348885577268439907142966937892296525390615000190130475474714610446407845676394878621616513337148599149172390850469103464032959054763397947072010515541924172899072096272494725474198460188045076039816789829102869381047638950541415055638143645816571968322869005937586073828770886529612643939253228095929595615203095614480456345807863932305234636735473449282270146084283285762445829337370769432135046031661588137124096213925401370416783459058633046051008618072748425341306057524343217175268702567062641795880764173738457959401834113381504224932400685616264871157312830467082820498916225007158578546207321040657504518426100192824466509597509711393700716224322133284936163544470934672710530221771946109144038671732122193519944603733857728858960118531632149685382518890354766459856240252877486967359058813351015045437208480394198870627190687537647421430341326633495898821505390828490246747382932355678784396376829001138818853612767521903232784858900086499994307711025808398184047619186410650215335281218245781284987104714753512714029676132193283675149359790647780484458597000515380801571569694805475534157657349948236733462096848822733352213165679881680065611897763846855654132716310273424226739962473056010405268298743938012404985053883183384100789515771819480882099289648529696183419296401701822468014357158942851467985015797525280575020040400188267740848208081582833735833365627579305921941178014654645150347944839015551619769632809169007541174217552670498660726553657420722339754199115025240525446690419347876893640751875365198714568367268096756602888294374328625302731732474920740309886743553225673609272712642663614510092160331784105916860155340871886268587421206286292709447422043358155765913444237991463792351692418144466926525750563171606242571707016115131494325538001771268313493230054515717193851736312679595822381509002259695506851432677526836399695238445509654381338198711379164690439495278875600132975825352475242361725558520115369470420529653517350644720295805161074591947216450458323890217403024873572926362190510035084170478333526658521749584473306252892382339051227981928133844441464072455023388280107251641209958350170363092223275063722748171590746974192911559352940838564299094662234182303155467675842209997953979105179793583369804396230275175549841885787442828480822663883944287978734156910826102982888961676289291010193208149283637458624517739244841409740691564405548022181293905075809135725299587515685256845983715925929212926359838590881530279425282828588096188724949788319827573140668341210182212950522055093033612669278428555219176320437996894003125796544643730569077712190597027870123861358676070751407815187519711360389813570487068311944172111902390360863411827338709601427551532139506857443678695012329273341710382452281117779772783431502261751834937641093626698667405494544569247504795505373573076964862702223746030051567418079989150713917902138234061391616919109534768860853515912683182516043837431303593777028574275784258602575495366420090464909669508033885808597906954444787121343719824513684615079665628004348280318421499171817651775750759590145898472071913516055125930122635544027508812243943440727017823659613707630228788588707337183197129103868356706867990859673041403615495665487157031018933541326007496527622666707445174035271778895166057487109848499433397607514621125516415373297171395421835009498238270831923614575375968733071837481951925021303055487679576943815291917594084683160640553368982354161607802331638452743651068458374395731240539720630699874868286792633219379565350055855112436446018014721984900016230026877206253776101410969824404564588924995590814658341967089770318575948096036669950424604392233672004733561657530085468266532217130974237752870056794637918876928406952458957270282612382795824272054853856780289422871150054552107371993798453242646539091161737658723645731254422518044268158704693342948075743399010200110284388245828490459343058061890707795889013713721088425161289870946824552691545065268494728097184244000261928214414602556494037414977737874286199660062754309830894490264710950467728792174946328788484354014137433737944249660597761759442195625344200930629809822577814723984105225671045957412873095520103604799749451518839855866633212199261272684499954351488225305247348236569183997321963043054969164172633198157105517440750201111576148952786773278624595034248402147758815162044812537396891857487854719475302489734992301909736166153989829402134731538846930587080867261816599665943310339855934290814586748442802378156796425557809224714986259609087646958775634855056470473938140532811327018629368447887418090504665324941831725998345893672111936376226388330321711236234193254890571548226273880378466025113818927011270981142519600672301723792550863865738186987994802561009401184212109779199408319787071891768152816946770170456365979880827066271861630801525214892382778198431556269342612465045601075867454560230650149145168532793218691012635911360267672800438638401493392547380907296526927038203019709090889516531496924849003564655206274406839027839238508277950378585839206313525278138948982211641707262195892283267164815113455774468865329824953776979199136232983048417132688619410573280356218914130469845732114278936890860109126962271557972926306587644027240414127307971423595359353415236930188286077200087609951799622522819199736185618432348043387903327756723754099025975311992162741553915695557219360024886367505295523836155631628098972380396879684849525670861360021545433975522548470067948609543731393482164705669340014173566285628201023185797860489204311199186445790738316609187187914150952937398487921036729983783047448364428818025225008688479631462114820008411082370201755202503129433824769813930519976469366271330919818404228465340478707588888835963053149555363327855748917625914190396063903174190279330662754067737642861083247497793260918431847469175750395867074816358956561453034308814879124908293038032049474586139702700048992091988426730573744892435830235250343744908207185192545392660303779132270880631864777502021559707715061300449683053830081947513332830288348960095499093915505275341518807768235437414900907403042839581792007542982910341169169477657091614593780116395718660320740297916884750626379066460821297195135950970070726008975311911093708930578100237719904244294088708920531265737250863489694686799128401732689666096499517259328795049055362744901702711915108340678048340101982351079398714331339995796662794006275125730986321227340116490373969131004025533723609969194527259911626117999444912766207952722647824778751340409290682053211159453448882225751577833951774018048063857733870888294066262675985234354536610944122731807441650531981775067005128830414854127342100557610465800605569398604317812550313390815275086187398723414710304272027260265325566470128798963909297108440387498657104422733291531813588731234401602167977138449348751603602752843008345772390679675659644762849721092984538984169899567651820602756635826647676151379019577223006181324358967531238200899922915893673072133238225578099318846073092169958723329867121675605089772226465054045229999015853554897379918030071633836392052111698238743654523401216758923725025107884973313072058460913957023458963549940641442820756410340191609991741876663422346800214867577746329570155415868655338709761540167685451195528177649714642526136280494710175276053699447984613882298487238083148510484439784415297512583702737338439974756803013139719452571310522938285072695451127995813247235760308219901488928902708453186725681580699225121217028174397385722595705401920209426364253804173808476180402804915892888932920067137140241261857481106828212072873033329139372709620558285251898219764855528946487410833312485728489519545704783139636517450938534458364691240635244634642387459959573208223565321199017802481886940710764778550733193774689905130266146592692899107401227706124436433669808531230123133168268843084146577331110603022422056206842528100027307825744153512723788324557798456147341163576044769656508454411076330359766528561342693580645210561095594767928684367734667845144373042248459469074134615672399434482290119714879516172233271842110198652785348075408022059357470908096459157211195381822265673557832643045610528998342812949082208788338754255123847527924565054632038296307530264331931254249778881987290763334600168700487488569960771533056489583606397341284847321988312786077159789246118633300321200748752963377579574612401070768285901549718730777726833492595197074862292633788597480974714186402192967427138592807977890469668112985299502784309007924802261990511329603333371781402766174299751698300776368244064967110808268164658723892418565169955651881563692649252110851927430841269000736828359250802042262149497908018787780848164761336157472746389782611798015653111275566411656027675839901125231070152192909838366775157048116516767052008353291165151830083252075173091505974629327751175430378872750486465382450615453715770792864962544162866577375518246052450892311390920315013842348032725391251349742612307873884543861200690978531095298825617654544340276583140629793818167036806388920262167167460443932404240070473475204894461370366592482833003307376835139407766846907813567867147757272601176098929273135074647839156444567285171648768174443516327992415187656900264791674313879893422168324276752509834131329648752893505970673561811211371354221285127664772483152207983178364465174678215027145333658166037230633216707708797501226324153988009310766031052143769250071998504863729238363274784241694107346078595828542667439908580945928009797448006064186917821960729814531202055923197331376566442200034876021959815222944643935511443087486185780190543544140173980358597898870539835390452066166975530964316362563445926667230784709913240244246192749510370716313244857167621503668365194460591612632958324173996756842592913549595222852778433114621217656457516967904276498463791754903893895768792934959373769305108112679884481778492791364054863473128286806942561226347512898495928448097028435840074465732532918600028103418651202545237118410524878412258125000869151206090107217191553944463749725684201346430484618340160245846490169932093166042158632668814944991532665494527236206082464352256988661965516733808428507664638961005513761666369046136392366758135818044294875944516036543810504489925976689706582486744381690146793809962181052570497405312083509319329435162818969839756538096362752894919488285235750022012029064367319046054015485680145263276913740763313298304678549656331055593881624079924962518489515751296404548047165487279562207845156433503575032883505530932395806746594266831808507695029218454413789883300205849127226283096066277268446686191839816078103887754360402948059220438706623962565775410406259410218224021106910768214414892761648748688302001551244169140131723257292243045611492077060854364111406179874251865913111750638551211561290130382610452316182181863782012072892384427382796509284942111772930332604238863598936323943414111255325619964509599047951284555388043458978690143050829027132761753929572963325242220324091102790952769277469307300336760623926446145304534242324797948101400443643707767562271506471346821434744026310317595846507217071795136058332750777450642580125698084369447203740205023008067385766937907637283921606644406518020782456508814902959748115371295153184889765412926231683672894995057509199797631877704107707382665294887356424131164995037131584713302215863621318622131541375487740172848571551784623665059041220304880068732301429040593484133101455845519993207412904847680298799933776769879358952186758704033227493639776984632814848383260301054562019730345645213366241709177735908875929025814636543172629170090115901540866942726434251951637418644662491785961091990542643841439525230981410449202793736102666017695095102200856914266501373989327036065403986420600219372100764957584978436044476832118608666749268898313798902311252062178263024158688590909887188959132572440819620660728834874106628710775857892900764866994955480219258499570696268559966702422277215902077184674619481690053950959531727658244964266673406178443392208558289899526988918271426616502459735895892712581191777703372613087873122772160367542767688173591395618659430473599619200586716747005965508329716771427210927244991241872851208772541004757349259198584071317432473322802989157176032058303364063060623882185519584603563832939478489801767276652402204320887137787455580853040413746891979743206367037670121578717076556382486020063621273433507598519393751354317572215053872898710960839727161736357730034255363866775433038861470384526815206422368719339607383823483621883335301893249985570232707843815579386603674805572117621749559170760690644272420181236479757072350865675315184258834558152728880793135061933341598120936185636619131774226934354918301362901172646997143471848817563191812887792132146476926219682842999487950973725827562543633722146597146374340510118587160880933117553615330712216007920494716021773081874607787781858572545024944460306441924121460845181786534662460475400347067167021545260191069545695480873559615964189653333393192538434967314985631825293938886022507961928131710550412946152274802121811855938032756463156328444976234573907938710945698815193489698665325336284428574662460033994630540006209030261596907551940677850239371012218629469804690326396525064977709911853131024897599155060808838106265099892670559993448897002348070618582609035369927175452404325708774503009858249214938234205625154058681334447764180423683830737726657610017485923480250022375812293963277964879113064864968890075107392356191749043848080476789012159161509696439937021315932898670892810730189269202150353948159976060713709998957951563686324647197862005657668560856507819747370100879235543080486811148458046585427828100978415743234359942708673193099285477305666100118548854656704427675324708428379949215563546275515143149169859154418984571839126589898185180484744884130175450387919477952945241494527875652886605685940434095514867601018969011942174691437566930722895572593440944844526496783502306455632169364457771108419845081767938695638053713009956755526629716670852157455051771507594007535701587479754221720149754323421891631157088151478165709629497040456243367704295389786705922028286258407106302280248814303762143739337939735483474397675934850753453852266067994507198518406490446344058699969254822965829020710468835442800505072085875492072526195570312899880230659100983723331750089121509020607769579287900044126480833713160680356629554643429515736323581809381240239545089731737484310969321092312871916465005745840781557299605834830834397735605995208740695193296900206304012317954861138139158046801170584335204962576138443882480672711796896954643500824513891579194473125432643631585963006741220127462396166350224218869257432571402370517859914071312095904915773405851223517172675493269875545636883196600649043951004058368362870836177468450131100949153651547594176068697087721772585789581684001340245274809860722013595853895138952919994893536246187248760954002270708248683579615102209242432328147499988307661638611423846981708241477826297842770660862926254148767075488487716531808893205101344098364791744400506111721818117181901665139155673626750502352114424942836563348330690589035846972378067909933157547064553759808281653097693048479126797503974330453934110227864363042155733094435084701165624133053287433728364090362908418964624751785431968143338291341504532245178400884369141392024529541428373529749821277161712108608488377816363465992843653087939941077894921938552629940222073112320341167383632557953017459900691375238248225004798567465293225279913771411010614736492569326526903453021606530364817205075682796444633649848312062001957814208369106343587409629656904738161542817836800758945221243463496534877125421009060395861921663707540373045704559701334614338657082202317517030627672684940815876438151154218432480219619139267765870076021649869119209189968696422879098352956919414208298875730795238115444214815124595701107029015444138966439597482424880037323614236641465064106363428935884348319722778362378990529876463586704675030306498048687908669962247902631539414867992028669838062930290123373322215546978533851433058607876539992041274573942360010706374597177947827859477966042672357968172065017227197111161038407839268133458482945676615886073014456282756053135700598033286027758720301509650051197332922180672210748476275961757160840546409306465784925230467195754829374874183564822210971471494767261016889168860513286678672341158678322953399510543102438643441115681415230341265359936170824053901536510138981437749392904611770097271984248189133709864986945564146656749492572196833653669949923027650854237989255655693095255026002583913736435545398579050974045952565823408162674403862698714007510295371293894957799325947818966059985006603193784432282552514464054888822155654300287602145345224666024100030074004034358540936135134774232984031651267230181054218830184864194133701450486130149122885657407776124782621467687544870538948336626389846641383480416348829335513455234939246085055329488617299683124958746425850614797608363861540964139125166490853960761762277269323015391411143255426974912069388712210947757701575613871318300528772405994517744878028350913883126147767569225641544218891341580924483479888946654987444310336132701803296616937882531875233663094543184357912308845325839319708433880546393329315495840559843666725384847762208308269734934360192115125216319366102049201545710786655515271051236984985931399105536177205294548239742722750501299362917223115174280221928541240037391986559834043455294414541738306529753753016054026065336454759861329149292929675010481999378131931813163678522477242441942875428973853487612679493223810661776441991816495661940873622497882637370537220894299806563009585672275218205043483780338317515387727379581572685408985928925696582798452055635278788123807102585885109753525720900767938112424214109722351091749412761695622117879217925960765147055052007569048078126523548742309892368680444313356117557238179058650521033908576323706362020627726709530761813687000429439728253319240071951262857248330648551075510836659738782997870444032468829369747966699115334673175780989776747742652228033585331372294819116120224846647912315592081383639527134517639111541920371023157933628375615650672320168571183757221914617657764340276706338049278737639142582872622059090138984770036342437333922829382319708874646387027836635633498682923170180835554899806867953482301730997717860922993735171662388899451204195588432226801282763373675131428607090138410447248455996943043484084204975558260153100868986433666161197807368959945292282647944147791914386941674995220453546414965433448437648644074958707693094029887243605412491700395050839395784444343799650922352528754255014787076432831286129795174272711282474631988859316427354276451505739971662164246657481201420125607888796259158468917315460329069150428760260369599492790582199930943416041683312348600879156009643678005449315373777470617292479029523567567702881306491946257841975050071932749649843548985279612144375081097335505056988816432289939483365198451288824851257302956228993002932406840620264714640465473090039907268425066529141099000048252787797434927185348646298937108665587429187554150394843813247455387416095172375069640538402882748156760396126716788741400207939302765729439352098755774856111713794094929378414491562797849428109317592632543931361246281851749222810073094984202899060252828726639179119568529734434128293819700514992110499339182411705971210214401470191857596865235829307061166917407552705373419294064649987524744614165806833045444494140742784096167563315980461471553615337645409750770350404370710311556733873756261782810402201731228383932231297646556880490881567539199147206235513688907734807700112499082182402616875729220848072430391769996416873711391828901139685592114314286810185688617773454061414760872739847430982356682096761473947399155683311004029236641330570281869175939951956592547631723601031039496233226171412575536243239663967622933074603053428043297114629822917034188024606853392806300732648608117508546629048455964122989855299292445290629371830563880133117549944902507404244898405360816737136139580831605779333945085847204034736634994878872562744321956103414607372879404433720569380029078317850892345748236371932147483151782458619127563038292917896928541971881313706763821186210181651090812941230241815049880285239005465712445978590105927972068293732079610400233799099413924960253902766917970684218213106395753770538542205857237905762826445214106978928893448126589785674556977727409802865319719413055593380893488054679998438053257558874757463683894991342929904927526460248237771951680469839909277874068795297529415891814270781678370567989869802488135916186103677169925983630833742602154795436675418956848815087831652670102012127159149027398158593546260608727553087086782147442757023546739842664268239381360175741897563485318293640628227861660211328765141849980472436467739700786659109037153520787302921461798238265565921753722347776719541672310393488436557434079397359015820176836523456586473646001143112682031950016641408020923051404205185786490260902913336274133134251104894221987745173151564062545251094579572706598186869928240290839054297234711624688996117240292202934449267607825747633518423178678877284828302010323906984251806792250091426183551552788247843865796073450314044452822539739923744864252319131374012447495510585298753036200814394381643169683685625778317490120673520424907538603392592139811136468998421562484172081216165900656990419234536064244262191390207435712250144828877540828305241533324039496265894869961865292202943518679473430500679837303908683072966085692010493093665272265016674972179376900631663830556116101058309015795422767053648648955435842921240628808709864335796486942709024578707073110131135643972019359303524943366107248734254833601921133297636655757356301513767769699184389532824513164467979833297158130849128377054357689603881919368559414390308038831462780507757754252961782897333050056003178382572147512622325492843105587077760409182793282219761490556911775763937732835672543611205515882406495366166688730797949241788342330165851840956008429608201921284227810609742240421013883342076251187895255442858359146434477648097329144627777611598956484643917490378362304957895168338642967409222194100046326089024586633992342636843486678779626326148266274546092631543377975741749888687597397971262282025268977713952339257696469078706746293545125341389931482661291883830380505498582913002394663483735737904063290155979565152903614777090912743994496192583600845066743925574671943283887083249710252174395078115400323607585208478206329205466309863099514031376168320589056040180797268731939475835457427722331153491760264751902443630563227780609739747447238345634767900938085824541977937362248161729545326104369395579277999071778783557094514587248426612780440866591405256197517995313133636442504123193990695398041654665802458952025394975196164357404137446407762059252922999480162986522653521714926440926760972160330445538154528533128794624394277273691752248763201290895543060593578182541781540463387888937240870878235811495208938953910240651724650340524793099082083976302246339186887703696418237523897699168461222086571462283729622348750093574483159574312942073017762212145422732502692631208926807356070185013480262170779155830667999905570376558300563477965056098033600753563468031817501173060213704380361336024917633372272712012373782760902509450895811490978244337101433826278441484449981596069261610368403436020149334429607330426596992587966617193832219299527456592945513193930888700464938072252384980402252319022930722521999867847420963179790616145013870692992085656008404428101655507872259216721662933587195494891783850910111040044864431097132631957582850470727990340151100397292131553919225390290553886192165296515264527215926954124096275784715075872530411234607765533578905008638235361914359826976767308189066777264047877949488968192757104292485650343525747689481615410781074840104435985277342633892564523597023643422192155542001462608317971252903998110681959939215413274148281848858594126714311978931640065599025496829433122650349204980497614674835291588953956616036387575588450841135318126921619206326030690338726419325097054854082001754874187062697621449418364583590799803915912422789303074658804298545959010092429229666178334170507745995750284406668801173698219679130276736000163456309482402916437053346576329192447196274290442396743138208364669985909467444047199366132562321300626880849256166877976976056442627233167762237017328369325432591710038221585858809980353742158031934156963358584772816227899926718473251295906046010803826791047645854857756607027489922277202289116447254830510386360060219173460991040005778684451075525835558120546719904327918768894250225581788906676711087530634164487401921522398405348393929917009391667683212094872515734665077620359314141565627209652503544218460601595049244506735923378458397152088013845702975454426419670385174071201173578760937396288536772838459172028158122094665877265828843804035693729564681311121572793950179049406701684578843156256137797469273907186563122800543978739690993018806812376487025124195167707471872092162510823103049794991981227220332097459192647939392809465730166115679384037924827182628950959397067553194725908099753398468386576856701198356772859781712814324436777687636692231756577411796521648106898975031024088371124101981560503899956923812506883356398857345393804058834498697448381050857830251686950563260881250647755039505788147104308716971365695363976961566860867247786764738115754264052161083090458548904301597337819688810566206567601362907540112824423270570736168802436735055354472670513360778318968701366821349629926989413501756778590540514171734493971799637878640869388717525756901314681181838614450270556066025614544457025236314521134130807289487374200028276543916576143690030812635889529176417248635443301419635128656588562356099762962857309490313499679272892356609118375890366260949123074802369081772304872694912601297993595505544627447456890420976923467634453949525253955537558758980728739314322883564217131418919315145440352934720493842518219015155727664086956867739843955102904433361781358219411755761218933788816126509111738802720178726350975324231158507432764978126851608042176963314588376133402424502877345226143666747859259939184471666086018599355579334535568077030205069027044722190708431249568598039677078027792380447020905573948529015027517333204016023623194358879792497235262567039487788326716534162391012683086595579310412301844133509279247265585806757751155761964206320957274382033839203221894921719233902826798702854732140187564440567991932813661346554354119668573585846836777593565455190370346317829921943055456697135534335020758875547736734287591036354950447765504441241910316670753198976473096129995649924515856665732034549732566955339970792363684211751811700326779824979850473919996046877060491720641428539072883488198803812543027639361061348553422649956981790311741495653139666073086587765871862729903992325384594370472986544928291558700814869367618302790710039680177249049821904613668685972759972597123162353491253383317718541685007626584279752989672153941564269429397822318022666803636154190501530430159194656292820611735591166850144488884981385848561837930911864663185808906349510756778767335166349335091481785117606372878006023829294655076929203886896090405985355063645095513551445819639152320055278332600113232230245643039872415169153560629263261579435049386935496505765561538238509448114062406986232675159918628146737008868704941994553589461491236997008802327931808257403754225583930230270293081154734777998957221763067128160043759176913551488574344775655036609813265637117122674085223470480132936786081404316010992535409468989501151890255727670678750914928237070890930812846932397838266207736544393030485709276860881620902733966587989433511160256385599520084502060978549873665735718862411006259106672393893386943122958107096855333882504290016502188305401734013956941589277161396537753789683564631585908997399955010069044204036962894339357000541821140105649643725459865743005478708555435762908141282991151019165300530914341028881570179835292593918301461573206681469243026076740099018493932630568172639334446974211119906841206918791141052061614272813822644732479789750944625959374835594945338604394557161944281782305492417699408660919825200043681981748082172059728534394699646644293495299061503647541963245106432001643955583357990984746984286565756576151264080105214201215350515110305624222936167210296796684860799095583251845374882113915200591113466312022914213929225482196280281634670722126144477738316794544932814137795193898986152952479503602489658800155421354638161709438902950524641460811860396400921027224091601883574869339721619436568122343713259228343224085331392797666631419717524552126183051334156719643998556915270991681406103454653421097766022498459076837223587441595907054083094381447903044491544073852079523144437482822287471514642314326008203961438675691012428914548470552260496569595650753862421902579758735821876851094260034558828287034480861252233825983069364185487609549471106881655865824313686502847094032891446533596947863576484337515564217520589419747398475521928849743876478681723102877752267831338953871301173611191133296464685258337577855367404554239875752801280109660492278576530539290398128364652649272471971360185415664549018403786422105692790034646000415850836212067469045068613142586015642835376618235829651035771231622437312787213594783409433435203916008119934672626751163261872003975895551462075792505365423748471243532550807544770568113000597017311620642230501984126846985120273625428115985557714570437856179547678090747828331693821218790959751383998811537246447445072052754457343158176437708902367773718249246052539318467459868335680007076946075445231914945655299292191197481926628342822368420631605520143769108580959591019025993666038135123163696556827694710005572251643448586746486112606400884849873876275872821200490033541207982617499797408499762978553447652347157823438609534837987621459514072734773239071552137979629537035189024163824182711139467779390066943748307187966221542310121491191607886921292881237440345909108961622388454316605804445174735275826473543138992331075099593041318412775979129785662077931151086092135231616639003019790114971944886743500310988572547947382029261033537012794832489607650852472167049385803730843735235657420716414653109834037143768570964260352020352399138388479062459680940674320239564998561433245361810540531141026015135502681960326213939460981331412365871572068344440012049630230418250057262892660621480138312813360597894750559870779090951081188477775774533935000232241803551978057168371168921016594772966235277610765651865376801909902162987538841374031963839044674733955067628536964007890325273843250467004546975347810493108119304769471340660295757012108173605451192769315807162985485170721366428726175826214078451256454657343301984339274319809644023909817255993647157430415646598101666721122072048660660690900136490352837171620730539111182247535893043822992791790295080940266291170089715549890550990571872129353508601997581033174000286675128175932732608263634631416095078386847363681024256606595772394855814119252984723741329944584354207172934089754243209009933449886204157134402832593187229351335262089899965240658844803040480220712447963266543240159098500271216986761637006702185399875056616041963646036338620141378216841963318506870950086948779521128646052198666315485279216920038537882107340764730620304862476054132771643164253841476213909128553769802282214910050120825348925569984310304934428494901178388610874079876272950578543009882556233067862014535391299211402975884561453793566590406272244320169058496783199475628781728706353192843241738065944920496470666019749879581716684295234458976500342121288524576007799672003957309107065324786649764326364160056732635231876274959265099521041759312076647785982457623990703848433916554325160813725700349505948119432167441692036452725698231206104267866286851632854619476497950413597869189626506536963528578076440304775780012758969258497733981555376599684036880709834714505267348212916149665774659123537509196734728549059175681413049973854999067403770197618161290924279587186087299824272912507521901673556637798112705250806475521650795363575510277602857980466655885284898489505590728089845904683293977648481631660055330324797699047693053323142483168365294304450328205277476546747518805613324226013219549693486979821950744602483362181834897030877751953095199408649186114355278678825967469902526897930125164924573504746365987645350753984298036906820721121849616033479365484829538380515207591409282938129849079262438862854910960113055211387450639458987204413807072181872472126498369525537579048531052012601433661663516748397531392828778782232667561433161291310695109200996930494439618909396484707512721712156383712002967873808885366750597054291326823771487346719685737402038120535461477976673593518026332417728056628065651521211349526788675253751885276237096655672749732258338464661485893777037991458171598386952412094735294421662793405955370113022982918013585385845277707108117106773192560487506339814208480301398124552029465491103315529288144592091024257101796877382969363849742393255078680708638863046093083901212374866422654788197696742450639572158914330717211176320503536871518105894661921928333197169270116833214965710093515853160812962948363899244300379155060992152099609828604946332232504693190342725115119913827874964725608571217220726465584715619814322294751707303297008091487807014311691545787784024556942180539254830003426961674970788526472390620233590391205305464652885411378775239574970861802451726932051397584491163282828981643774874549325576160502263724201202245116317234475005999219150414732075895663301765531000074693789122678962734537813705597360139692151086416813194305943664410584143366956900088137613683690276914755564702572794508895302743243280602706144747595020552022762266564463868668565984141343264160246456373970161735688673769265767411184695588698208312054754496578925632299257426469558890401280589993805853758524792871444524096037922462006890572446218256944416835250258107170008460320058797111939498050703774656204593168280273091233602444340723193847863025258254779393255100937751951055338811067600578207742313734638655171668359424180654439400184109267660548526408441284033461872751546603115890742061671926110171704919705756852362997959359815960374848103842354951733169716180872640502673719351760004556634815611890133018525159491875696413700049277301343754425838118647758131202916244862181186499296794771030751262196430917937014806034094999517376174199588296781967417130531591733647689053407953614778336450925398132317697059830305526024358205824923425979234317334062529349399773747530912650412709317053127410897962111012584190354108055851659533671687424530158211529990972725961030276645672135309998523888771868541127480295781522786250640061152106236307239658473209171271801073843694418082448331945395246547269977354991175789745040251395215449321436084536643127702906463448044807368980506988092110875965384564542577796213736293017318475647374993773253878809669769165624505981625756839286682314002353473034462973870082246105945034829676724853320212325663090681827532269734250371259754400368509284460622351249043750318471202713066148111346709059729050794226678758929377361739559567429764781120718854165669053260727287652164416082001153047652479016509628572568041059477811435205028993718723211300453642101085919324689427879701759807144335494591791038090763813515830413185354112089272412151304665350553384320312310268230765957654594497171706829942947478987007359129343801151713297280526387305548031236311720667808727602800936161451807481203223447623523247361286771247787854658090071965901897660353349685409624673615560467776306747752564797005531807481684882299271889974890614185273967033491840430963301233226763628479621909613361478849861396402742016173458064079911142733591127478982126410262104918596448126278476599790275081461191332323527175647997376687622042844651148236487328516594377015084102942643466398884145349069667863535113496345600496403632911036022826178043572947502515407711928515443185880881061377901110871171724822248812910517131261316099359648498101251077798658947320317199451782657532657667867479477011823127125834512290738196453255713131368467211408028620657446706158531125973249523137706851204404259980456551923142513070391870281261592391642327791492562294230974678703040993118213102443302530642834395691426508995131104867377557028777240092467594912478948389435223732203124739178970470742827266597743536216026608051991250802991846470312769600020018492317405343301033397037274584130486821175431047051627225191454644131801305489108186441642072915727967250241148461218844870116921144170629627677143463052654388134462145719600379411372420771927379803413307173757857406577992379510571836104276348987064026667994321428818402116134038713344499029309702892919085896994548002956986255060955058771987741841437634702023281682109749894308743451669702942241208573817638181524636950952854193199665568959681055190062131552344905124101843914994124094436066509614190916217531342311759149397945140180194211415211556385370253399743230816719669031942909718097553067058114514750616285038268520271514732649385192646779339723444186087540139215843817341053381284735186040791910750137860523900576843069525525007593398872414299376971558516255828803474912423213863722978951227272289009761853002891725074195626464576799787313382281765445535268629892968384397422464011408773187350215094313879652363545365956332735588175377390925149878827145518292768251846942229622825531141578128660139428856136750534636157473714195052148650629605671952781312525122635594219421315919062689780018788951384454360411394522948808006180299879293723245832299962876180110299586771777811480966551239119218138028111670192626102741333592780481877498261430498373989609583326060528999896255459065371827910489691422438267323730501970785014634564704620562376855423687785616139122974195710120402201646276638612975059963625788514040508156803975557664077710103329074627963894068070960434331016217664571272712829162803104192798436885416697051095171312239406855973575857709247037687524121508770302414059038754909456857135130926732070419775902372161835567370590426665831709592640506411284239769136174341383599073931932872976707285857556180686273265630895378304916092819778686217614541737698652159414436010297724400208595720227389383730950367192269803612902116777711669429840821440284946942549289433444280492903719294893552926085333845870814733162375062632615064225850955840964817658683333229584237953040709425591212545936957140406445063755074112814278649151505453385202209192020216262241238222355914869695194552314941358575146183801577070204045707671600960706616620932988635946298017661761636145300244706562560472777684682589559295369905146769720001775548401206152045478501920457616156765660902560938842091382551487818493771131465137145158006569154979222399459227050272774912442966963725398811441050289286394136114407677304360193697012978244359813757806360735799139010775892809558702004346546648941022963266360336360865839479930089437408681511766121780018885445721048609526707604733818293283730415969899193454656268558250432485663294676758419878745642735546757432011881198496968699789114246157343452063557448436362631945055047850347416562701038694545651729242226027213709053684501741619325768671436845280871010426694377808106719629290357265487492414062728356639651618622351102351205219731485219038102002553091135095950756936786871585287890520197195043931428030920666036642009617928687752789966137282584252466280352888026573509539671647427600023415151369744269626463406757145517033027538752345564129418695329544708436796560834715508227621645705374370072836641302730032734201211670949593360152526670961502584384570696941078818935842921760408578630480338080320869803025331703059614156387235257711590703970266388630744638980937722285186808892127965349299657686045625089608205241323587620909676833840403262653581846308965964362462100649514740038362974497443890853687689783603580200745860479639814931511924349085965458005211164598811220100642829470982994157038925543927087618805131088599157385522147693049710732260618921094660715681672985349529479912757727186642362261767061665144204157952942138477266782772664231050912787006068717117881980667866221244891740145195169932485808862673358589335836967445854977807944054171533295508925278391113569810924980039874361877104416256997272692472437918160300439092912894101672688331426202653701528047719110982323178496141471715966070892008549346315545272307591681013578630624884110361416224900808667069086146096335977974125903569780005860173424378817646297119271927906877065933518097752215146339912232086364471904151648240233564155608789810798420537761287752732571764350034287466238049395851542755198650907535869529193019533846002831655448076207433090447581535835017044341715820435837580668947458238365682299919628892220398816158127806662869720540097639341589732495681378124748189502072812682360760866310696569818021747344196516593589457103829692413485297500968885243665256256516192177637692272562309263414772656094018785317587346513022644182887624541974011978835932050378791630385147751237052192317269836627959897823169903452164972387663189728952661130883882168120573782492997279764523680449952617433574081074335568046020258840773827634003769636578810416467525935617421289725203081612706821016621226327164270713089904922400387896064702000470292380576039524470696664193600463136979529121958081736602683459881240425615339908986937695146385862679855632788971510050922088890200760945144218944013117181211755755363321548487266020476751957599038509637522300399527947168330954883175996828930115734560884911649486501382344368453852086792829166803801579284073970813216273707191577757383295687264041889911261897256189921020214712819363601562343888373963008932377987735462583375283149942251137569351066449278452763614893490590837355807349071500670409456751772092908244490618416262193812927527213491952391618645817442204410019899420728244739857330077436120058333121942046916257725672741368631349396608362833115497601533418237701263062902311920008901196616667796274852183161889596305584739665919336140104004832937355283345305091859496517369284796163021574451619574292362339203573399993505290832227628315965724493012460550645303239794782474404059006270714267551356683648675489063814416119899812404652611159348567280554873565259949368662043752927283347074595886703525149725895807297765775960439007576564391319805280701372269687873043310294807752605625607962313779958784931069639310669998034388704106042258027150246873741915938683229956308219681333992675089116214226640764833593166563123410344238987625463141291567810023229578029257316132648443041382795427952925250756616345950562832249794484675242701113890320225823268379388779939737928939679535047095635785780032795635065726023806324975251771227295120182330560460703109621821335879037732389493002592608484565348535801532600579800603524708082861615330921237103179516765103114002616398074560463133180976584754139472367268794478892989977273808491107959639003925365457642817340447666399856730901957550314762475365796980946116749925765727396300979808470677608038052976679063060518959202823917597358807460098756965920569406262457940624472975620155717182981293587074681513351158004192910298675920957144362541041722121586976238083501587317315529033455116368752018138154036091405141399510114794579256190330307622709554944431450403386602762579019063966403906975979881053196821792520243193738116571919654253483161668313475213096476999910516815608608283453805877140599049854105580082326263941731659502620618382216743869531029023311669849486613676637932860754929934368006657587852122912492235454004493375846321628784557391830768269251546346392296463281583941098046596235044285701249552724402952753230355369108810143362540283979881159431996743117234484614586986563803463615455946631567751975832793603382478077405385877845966920054001728556821506718329683407378524412607912197405231568363611888900755188309596300732118383485609535821535670009829217970257512898265950156228775512043426816960465973010282407661522033850294467350483598964001456318039182490629826106466897868610689687164264091074548470555368557400649061594628149270438467509311237975575903956105721590784163020777859295406759522263825964541184074497757591050987847512790081394355051010695057393650242540609412573801258704478279955421412818171962573959308391034903406683077599634763543519740016866378895758365942701134325502683442933162987844189820083666621372896893808371198505347447358288599441321486314186787184831757121471160548212345883002343444240694177328984264856467082216046149740556197997776487565436504383820073004831215163505788508885560029764626191421503561516926000913351512805586252756222998693722192174275500709519639709850418241146731719516009028486354911803796523330951775067785198019972498732696708866241430302765835858093537675551206254081039797268244857841577039526998403205133973891959846477425538108865360803163363198435369606298481203822822592722216313090208138551606374450165832020894305401766804585056290259387249915435563413980554802979671764546188197096223202840091876564905057353240403321056136011549396735481267170923674016909166307209322771944847008323330721354299034373167025084334047190858642341653607164905208997613565142587150546188193032841454194320056893857819635155276718629001176940607577266718696793582791738973526876215748428206233981851130023125646900439503804272407114357280403084111781943456569813142654745791410541070531482393529723309137273069140536923718969883766700138924429193753304261514812378191946882739967023244182273106727954942505924138669745753277721801289804938658340316359461816578874187774715889716682822334550377311306910007734064882930115000739872184551036455464993889647218410053714880239126796759867491368014778186638621537904990173074396176917204453791434798751893463013230607915507315231964048587365186999283856238571305131630890519918514129859322020947815058374116067906439325983630720900322659797469786909485049953682590566431102691359833168674400923538059017633935694511344750915265061724561383944042401846324999200471258600891839196500002732278648986500561949711902582815341338495714194903327180556332725796491089874658873099347868659256545941085050072203923153447112874876353474009977277282239799734603379247980277393152811548643961800043282437709210413982522613610233875357005856478555233774078068012750005173639778061635041672769420475913826020716061405718349291771142274142537374372600875795301618702546476637982064046261674232018817861231612182888205666427012344173234545568194356442675445904094160393445285285557775140592460927927084766797228991907958122502120794687160405019801207076967635674026687380433950805253345781365888227410450248195959321008988926715245491818254242961200934981850435178067274922448215793551185573705883658633595702761531932370482616998646187053748576610323344555132931411995840300240729584950485936776528475695267922789764826905003406129733630824224519756092983663392578802793656391624832891187799177326235108663287131866776094767808176212172507874774972208941741663386936098636840165648854468845329911259479088711312429091236977852427426738301304617696220851330807731610230551894669541844027215056644977741884982289468637481389978255820090969378483997873413231166737899194312186868587785752729417160209867416892138214388948908022379434236568202700494451536769226977311715912471518298491861849208426776312510290785092420044294752973527491228296717774698195070957431808565422001208857446364451888793905706716943215185409242402224162599974972265379588679031743536971283820624387183902057363306936607272709184668801531900101501084645388278888352280210588774405120477722413082570124993747894901124332263741121759802500440507894016385226599978613481726617007378259872434188232871317172933842011179228308464042046979834573907022006370705116660222243864220024021761922207606230831718845342717431395176030417644877875242928231655032195018922859288846540974699663429842312163457990471060496833361795804992091073136926157492128538988952904130519986062589011033300079604189587038978866627463623653786993228600758190802194968428454832400320750058454418861610232345282893900443299001131346824252632357062357865983080723505954464324011888457178034450042364896876103174880952279151167695307393975460173510476019753451586367382472443661608122263350030425440296961923382857584098531876533659054358614565264133455193828838875163143435142682707238297909963293556981731775032458067213585399126456769237929807161974466591763622836708837933776440264060531016951164474649995980360841321517116295803967638676326370941311288913849482206741118312081968150531507699014757719099133147467579724114234479519799285426441171605211313372136660150645016838666047841188753153508354832027479428505424888895514972364652869992621580896493502636093671176382108838944530207500226986726274185294836247625705387497825202039816746583239834893373569985157612681653982561804785542167825489242953475225860780927482621325980245266202457043134234188447570867494151479861790207672786237204717269207118274156362617439990597287094688683107224068956283866986522164585220452577401389641574144106163210466751592618557034377823169332348359048016610363006380117765316269083779749951726261824040346544208806139190233282183153027083831637071275981116951568892839572691907656888512694842575944651123021537227105353659856353843195406520168086550017789085147442722835124178482686673175519643858900501844158281666433323417338653007676535308087215237498824405690230156470407516748216494468600736690065299160068950694147358889131054512649412025805728969481558386494680031429047762253151527562226149570133825964302590440207216342064758001303086311094834761727279413404275777236231246998006709378275083475452667119127087514520353458249025987144060704813572912845212927119982326672934898831125549836083532868547391583580882591049120310995809427667812906379119407125300491060673506459818154969154451359069983437692746981248985618624985040723706907671429917175031497700557351590876955398714257779637198600169124223154784105094712795434631700732024884893467265984490728631860159597219309887580613682845001727569162629306212227815732256002163788723123289227481043721611890886426294941750991689027575734002410800144923559102703256743622814082744922084922014726398848115420016549586254667995314329052015243022786954688261332706496023180224886885173254862379760251232871849591121097953040017402846974298411857129499073288888763336417704710477644529748105800595799496278768796060194129744916525977118624071210159870700923593206708063051286575105937729716281702487659531527263887298604768512241257201517969006251231844685110111187061056534380069696936498906163229562889293050778215816874701996626922337007247739031355350573988706581625216151226958555203131056024494454523155734701165539447160429710943613470780153124288892282143499088620995725524160966255132699999357659577840838707772602118903188645251390118040318019728759731676195288441799910361271295426719296939479023629772243348806672390532053437250662231797405015469624016749712890950859803566588090556731035705543489563431198420872812826832173832625302629598007839350225941775405355405832894083096465037959731551241071915058202954037346379795878891489818305284614663325718211023553168280773798087618382437120336608102483544060399180505174583410192364900605150646248516008678902353308049211796501601698639876235803532103657726294514565098899923743941797680108660072370260765634400362525547304684758307205492494831577971485475689876007446290460551372178274273472469816676276618458122576966169816209226484511484606370867032880561181834414002868068085210693781254209677685121153443341867147534532682314442449149033792094385112200208110471894411334580768588086728682521655522591052750544981512541660861944074503644749900255987662026944533537278351803970271958088407033554139588797545422910255889715868509640176939441728406851082848742384575372034465068379080199933388920115583167620975374055510830652455578085329437686391714327307286959438650969230699213194268144004416949200054094441385338134844939308855035501984754769876558921832176781607381182564134663778532190311519912156949502501363373544181999055838152610629850435112559047354967873378138753850509732253331715620062922068936159967519835917080690769550599432159209621238057423780117533727645298141961032740013174009896965130105548862596770942341204011351647829212794233945664339151538492969353048937335979510315690277380629179908505225386781663796732174742673416290151249483704699013251007777093535654329387365283809481654098208207649854036206369575713590708401794782327073960082146059511231693151827055527927059698377470439698338143916836124734153363880090405770918273133758288068564590399104814513248209788561488172985173073018387704420025619736716875277998195259455110188909679324507957571570143026325362630288712805730964627476123392565024886622719468379953738564447285922955484408438815622548132133064542528128690770175826383859369407732657433567350684570131942013582393051544911764425652315863244735889680476822310910162647218404919939913267641127954647580988087813467900438472072333266108229854132962339153092159488214963338764362590882326637328210329156617530773334115853888172476563835606350687920389368386214464905052185330470182893010168818982657430410456226337738303140476059851150903052679482945917287778472198587855350061115569886492637245186426941308561935512379767689187339023503911935482616306844804181255774568242197705462202986060365515534619530089012723294356224916872446024484251848776424812590436781109453834419913887956936528120421869706601018633012960689260017413020676989409668008660287572263831995620419533429707842874813969108193969593708144363658944012481943658371311146331715144713843457433834726509010267308416834426113962910114192667557003341953674079741490885251912727700962368759508370061711368540295161173856938278002472081453567958978952737179213246813348972930931087297313840236275493445728865578110617011721752901487622418563819954814686593816417277068711855452787660770328234076611542333592892288163050658670986812031658033041662794961778741031093431561884507432744942194505979484078445983088635908675578209774061528180261459707085271576707030253498501030324650098736433911373063338098487403747250232348363627738925628681738031046251025837270657741398847041235352434044933587184679282803041126325656856328615692215087210736871611593193485844989948020356374818717400704060577782444132863174707480746525516071992758997306824948977341514327920293175811535598414695200890959556521668205072574983006544771093216969397459051693797221594949877730205931811114467738639753949517638477865957385543365524865535421769249927790467306755107916149986196810240838246597077064386420501375739725525584535910046796507621574072486125470718352297372828530552854917005318163232721185904439235906785016876820930921374799824438840451843269089330458707900190602747252919732184070874610886859379780247792129370073713574379254509607609401006239596126442335223343214539799671624540319541730136783009439319251682199005322605717114025991405905166865619439311248816838183479907387942708835407090538375501255982979188596701302306713611713022684664073613759502816902569083626269335684788073972796838970619342954765343799780727045844075627970533231353621240815289555461124583325655339950980417241391136163841289619477535012216185199477382598687202503370917707566559306153818997518395774024895690150527121980165842342385549997407410634950479556541594110949789880178237060610940702568114599001407433697079116138985213113335964930265278285507332619463146317168920243272766967939870036225161596790283519134770451707652070679935232716084839897549751821697632726100149373012021706758402469017328135843382092196287893773536519058571794591421927756470703611469465484713348442109958302601198172037712469507050816339988716864263746500489933727956272334842524032391908129736894255091791095377880148526388806346106087556671252036391025553647031044250283346538522035437850873174105285000355216878586547570600638791492105496113882645445135684449459267683144674549980674731443275405275713535710725644606983046918526761886966198612927591217909042888503647125020846984576963557855658258075061291573707115192265940789675848958293122672759548208400137546025256339517732945289250195028934376910610247278665454120996445283418282264767298245345087849799169216949857115615488412332340611839761843167754064478860372552272488668060787674297462215934902397066302361893287577409748971228586762373848187603696218139660114346514486455925928922191535166246927271453011523919446161869308727842095182411547130047853071410174623078945833238130744403652521808571239487657644367919675632565133796551806755393771166198294284114621248443566559332867372497717667636302857473043228884772534558531457683603539272595643801420954432172190425586750907332371566701200004576819974192996490265425438514408096892345718582226990645096057916784393000424066629440820502473444976136441308162162833266288053338990474431685765669034338283071697128358919352569175742685649639293483778254430508010983482574697239858878297027122098639662848295281295516309614055747081927885035657463800049495028339078774726313009764840025560587007531963537310226777885508240545973942553076207251122643467841502438481389559729165014496626360873087283372726539857630164717328746432581120826925591281038480976957133258631444309720923980172302198767265644796694685859790862731152098130211414334067881604459411891671225742490584996971431223606378294358710737711086785187170244899729007167061988469439533286525846487459987685926359667342309650285376372242173307650062729922004597245565625065423282032893676857332832623112082361528261449276843758674590402490312986205281970769570658259816467795756238604745998712979428989706750315968118129398046666577696344609249566411983383975494498089264405963024768037142487803479198150289174748614488768959128998351238593200482479563115398458839936556519807103633841693487973713290633689664492437156867752536678641521707835400983834158074694240890527864059033077556816624005856729146453463492981758532225222530446030326456113140853500545019115508592744080027431698479456926832556403413135533961829771939378566352638567478945900198649755544294661439165359700212080201641376469716345518611386293917454115835568640985173087057196642170478230218399633764416793906980447952982409484255668782692186334222818552861026643819238600257087137610472754618280741292502583777211548408520936549390541522112331878827718049055889078589479658902960764929443825992186487035080964143207306080002037261702863834474427311805107480755703103988248812903975396007906530541165594654236663680290654193627261160510015291235169376977905241623725464344225724653898454563464370133959673606902386506387231161623526970168478791383573289690293768690007145317512889837382412359808966999495892166115102830311733118460145287149498704458080576591309259884770879821087802980215787917458115460358312937899765921087334412518818206042200919094766606449643719428939444344804641820677957877926983008848761393882840545537642835765760040741831547630174257719534452865422862604789784286390452806451098358711610230175773386788414566289595487189867138909443984449516899758966661271294343924970872592408690358924090543054109597110481682786159978028846638048634459878609582760709854317864978397746045542973993938252621960945655559868148436602902926751595392328418499054010696039727033931630240541193403871915344489091839661605560793897625176218878797474492852898157156892179261461771802757720161790355463061706921117245347211881340603939874703129596218715945186380258795048537394736824418558182790705704580061782062148599553095266657017730532125752365172305369812259983874683089388440849052209071961868885742242862618053026333576940510959131103993405873698630278312014927497383370857512878301985945472592378731494218698968022389740307074854262999878074099978070433282311516091396850341490853271200547995977655935848366279711366816690547217439970163373466970024985303093654904886720036399629895066771933756958626637751655847350650372966678623091367179455960347578552931600435613081432291645624498468591587802842718579838847951591171380257595135810607695828838832114479598160055230367743025634033089652618218654364562997125928309391291436149288124681359740487468167341130774261982580320588116013193835090956830121283594425371391668595377925644425296264407247695084292129925205623085182215382209736590920736771535788458950697354530684599867081222693177093745267459176494884178527216668280080176696507900001781779330393145306494159844581589478198704456058485142459152218782051920785446002708810973014112171793862229550445597693014255039900548235813102230356785992000580461648808376339040153350351354571419816279977417510111167201773362399814364347417861578162022329368953118296694781355939196834325048269856822088254720885563779539045206084839812510498241522475686700144827088519029698959775566562368593153456122193424911838358553797852677460975599132493442060617202580206922087224303980468897913413548499245684620671120601170146297961470082974029944813773641270754389734260768828293823044362729404027623419455678231073894910720549569137491831310123424219422292660050315194499167457356739042685446915343175661625168522938141591884666401205261976110052966324013055854381468950675863609595521233553453141056839454574743763332168279262368346676541963505596214448906846679956947169643579016286192002276061359904275333988658773804416096476353594872322718347197534777584287499206145322627444614693898027088790113733467171535330768710753543777864194931897611323457315456156671043239956275932315818874722695907986619685299529509348151251275468350517054806094262352062360553749704454160343309415889018951990404695453807215743776171091375937467911619461041251275203891401672882636381740557959794687688346121679699588776752499795931794630169646214557167202234108619413292272077871195620693557335022314005452370483173950465301252830987677284204794150127575598489605665852924696809828116108076983557944900900791542110428888703451460808979425750186410872293501210204741614705490778735309300451194638764897162426519494851024104209651630904684892655234167396670738594615095961415107069909028114846553706294162841127490570943671869391514413672788411932151967346959216952498348042577575712145804120917464890167292673886073512043670758887212811613543755805437255651942559797469260714329052791150427412527704218646642022341217093419487052250101065735857575332563577533091377669098913586274747242807802639954938830475792898108838587167589100794448100265331956820183544448048100033481784799897954388827471920671336836171325598000119823973277405465939752831003941179073779173746910277642806514726240885103440048075722498363296872424661952572828784688945091433900602416623316067683298106038069495471114667490134330766010380900982943564225879942160842237372195209917625213341246517953749907532486943376661688608521094065846022118562305520889581248471677596539868139248971592768706730208601456027639907023521854206061141480056860442487069193526887764847942380579513680398167453022588651427233690628433407175524326882104419057288534573565417435179178072460446338674116422135629781830599884492801028502396530666068286875469534949132283122406748561005500932889355850682004686886368010286809287393375695590005176844570311197036926894235405552102989343326963973134840056966556903720760895165976704640222549319197664107989323892753259242477700205386050184580239490178022501922969877142082278818828164073565912284180203758295476961249151692770098158049702826113394021042732794766016494778465712125258524837862853534401212323641128704429748610375252102987836338313048983983291041909830651642955763887167322134082969786401627349060004604189692076209337465548182996207750721913192191778686353461449594669109029580793575638738119589660235074274462237454081901218999318723494900808899974807744315324459692973417219283509153899636155434186497836169300326825257579347533636910480009372540352630849928200076572626200034222935295478089845144646079628559044391140471378173635868115447090127528547751367568036247086277866105052474870644302651223156189019525781252181300660333497321806542593111709480438525428880617169064073208008045793541858207863303253130388802547299056883791530952296926105429599024786333983422489305579311289871598735474724682698907562194659783407180700796174856395217378525260141294073189261552597193539014985985938657753026001815952566342976595996486685193201127100748863154978184056500450787840915401885093436672288698760170630488774471736888278927831902431687881957746027808909272215405654874205313181152047911437178917779551405500304005531371884352481535650800557863748684400623174155606963508500866991995899409379457153128428562159306653818969010130117310537346507835947362600343468333622181342326060426117756524850065143596361297627101401915056360539394982648652420448315871339858310029012897155092533217188729078977554702239614809879227502837749630747422832512714656395703895957907949516556061721335919162475654390377739990685727424720892276658292724542293313882202724962925679567931335114153929052365248222991378947853078625827331774374210730329554378620356123265162537904396214343838994596015743828535825973272907758393736856682228513358737023827055205942493835680315646920762528258626195155135177571753040861336569963898260742686398282240525303363670967407157783938285463477387662679063903156218440175770159263926747865366489522028617195709072093184534955588448973985044463648951542466918757275993873663197838078867600536369948169117143284076041169341925443812490356959852206288810447575063384474975972718453756260932767477051607031973138536022272512661206837204964812404560025230101149292702831724000602086221073580246201593917587103511821751122554754687047751199599488523012343399892295147990700464964326257488155311247438533331364783702313768362794768017955799315400506933211302929326996377420372079029615207299743428133791647269526609681035567718229502730303464501980029244016223286489214201453271404558567654128787191498472039182439587882175666361831812930567310128291206691464999391630384624539905598196727302786707860676061377121834341449098833255409438351966110990221279969072771518787020646726738540354739872281741376591600701095650758745141534760038385625711412939709355727680104670275358878110032928819639204046933138779268770756455877847998164029986453593383709022899310300328073381465785218969474774039040272430097740772953096598679335284449074981836090018569590573063160534260542125891514791304466852691295045749869858827999971566065514794746586816129414000165569536693471331376406815077213148308422487964796135745763009696364991978691542074679636178312005127958802775875625783121563188270243330188729583772321184375809884865305262324127183825252556112792329022511964902787803155661912889091551615451813501306780085881256456497562963588866640029902020384517522297047215543183057686541326502419199604657264374647120354468651195717715329281629064451103821611858279148013160287993789493091370978093808227223743880447600564258502436454354976579004673203787699082191936100618749092732512433977626555072317715275249454911277005535552367325661380264523820906955867892864673321830316733316747751893520605331557973952163577153017726750130425091408923794918088441932570954919657075460563135077859864415401621386789805093559208460954370698554788039355725964336339463317323878088279860742281268178438587333559067453588595936471414615457612450056488819522507401783962034913083258451031274765554894089279687033452168059465627586893493429122378960728356203560047951804818557014027577841323629739999736071637116083180731353515585428838999404002748373943793013525133009530930853965154992576602525768675414644105541579719252688325925328283717663497916563877470781671169214844579547521109267768112061135987097106460381347871796633686632397929382057668294580406518414968246348698195389702953711354761158132408799075891142454037187966754529644054073440480761528549712987037747266859257874893258319995638176340833037765517353289609698612157259539350565872781131775594002411913761913809566559682447744972294978921862000933189122114456809133535632837710162503833029903179646793163007631153030752563168114888785675924022911982339424526965686545755292395841624524782921761013474214044564841128522832176245991442590877606268968208576206822936999987531654003540717027867390178241215676733318424728960530582702337086853443328417951919003558311408074494142965417942895669893789674620397973595110683836870869970732672307423568679246534047439805840240928478510024487012125528861109661948572543824699133518620067248460076312134352820109745699573733341703382214110962360428961069446261077270828776666326234659762884989725848443968494504987040073959834774798639915534162281012936676071595004651067924925023874428999046657727794485318430347935658332375150541369510212180297853392799702942543327232152784650076731231925902927952883137334074504885408625543224878531470366391735550339936364398303257731400276160329719456269346917649901924759887363021003482740618276733266437250629517360833080117839512400801204439374091543505852042870954822363010102541345858576686153704686370796638960159526812029722786074495553979723681064853879706815716007629000269132317240018582497383850257761760228987022926019564055975320814046165228671868018122782084955777713541939328757005232689725743338789882376079386128255265443717701842907968086221964775682198888794211142616227862815178608259936281794282645766823111928376399043835966154083630551283093654398455822228926347050954918394329471860139336767321194176094835957204166471233305209561289935914119705356096823842578558113491244738575546279967868748790001352253901625568015633158784229436904277563032171797158582350048016276181981259049058476616068365934293436496675728022073043068315572230700376543489037515475918420719628225720754508328296649698115795047198316828001206459684639912717864544679128117622588684952625116176446219886707917995071815924633818073550212911484226874659782015365540468890310015173293998501796889415330588044458613858863614927400315173396523473428512205633561221151395902254694641129586891491072540316086118332729975094706711728949582096113546491324471568321884960474829854649937906048505793311418419653117630027701369022772038011849555784209438955200857677646655361910535833518016849420187883322753517070919942967771469445882678521762717711259806463337954142223198571429783975664597422902181533624471197529646750474877805475799925653179545970927297604174521575382716765891117984811706209564914567082166707510538748851436932561969762717959939259276409646657418405914701082965216430447357639441870904271913052259577392814777401789536818022814746514557464942783369504217947391954710125492206118652740779426227510143537914600897187256664602623713191351227256134795066790435405437040940545224747404686829725987264609837608818473691424338897611944129568647804996972248291831641685561087961445491188667374569551608336006538844952731629602392967933537901319039421439729424635021387794383273887508707818381717332555117450411043988492805857232761408584966439758608785702588351213569966971328531244827858854885530837789072164116571595478625491079508471306472254040688573215689548749527589069314882044569525370970520490607426814044073802596338159297333390990292693216025610080044498570049359077395065166539215063486807406216510527379823008865205854940829003773348047614631163556267543643996670422319197177773444059628078829645007651792993754843790324463045659803289408340789200194717845329180790123448498014441087338550868698843975627347259620033024246558757077587486356864853414857665977959901944069683516527730815269370969846752308183640323604228015493139406698776129863713082897026225216065902722089406422021075393582121773061284163629627247667848247949631513485936693007821369107744908448345180967980502096446252695035015455602774429430881303866190936164239559784298332709487777244205394814305463829423308973864883135879929336855523327322266796167292808959993129985849854411000609678977573147202074058877427682641380597769961116197876502611741707699250477506600248537119717298428017525765108755109524784420566035016812278308513127509529263604074841344124332469427836000026796172387205861868422811499437051498452973944772691109274228453192538909445526812388799644128055823862635049384518439526012257881079491838312508259431753766863848617625689075848045019538911314699055262106018309728252213433405510487253957053607690984445242994437125797338920900747284878381901864783782760131847615186458101743986430896955312864392177073767588223007185243444573490647408296142704182710442572560084888973611626849088837954229749247371329179332715758453022532139361417237684077257482606003019311067989756905568709200071919199543151827333487469105791170451632187366427465762798363776019450111061543294502240530222912685796459284387199040137379105082377967958980715028232850940187454940033691829004155330869279303713667552228496904118554168595927252528824848419229857408566872503583735814008265155372881378492477443110708088383293726090220334385483125315604085413483047018936683617793395508859327228203247189919717827967424499865583577016041304554999152271898751438773201656246517325135328997474271161261945054203916497308828978582305070560689292875351430986573504566676851372372127595965063953588491324821570903240057184367344242686698114758656651474798947097517195492734602702097388606885422813138595409177055421567199934658672204912276336791370870493807066932452919737877291594568003661301433771456774785935704173648419027850686090353524832087090556251514610094977399899118143835993565061584521392797945012915850612696550047135952898787216244070586078370403011643660822738522085396362994517923733675703263552255977280325551938476362742992837537234891519790374437756083568787680097275137571087633648120718644047160422032099401603498498066908452784670898957872571520880821320677526273374840094799840040523490546670130849489321338523416827837257064380173262601943659369143028429808297419205754539856361154822143852826766806980008628289389914509934744139898449840590530393367937449730507025650388896483199595128046282144261923371745301759607638219675676992361154833459556524626740828162300172728008549177364774112735695787699877651870287863090956315498571254002171410751618508154570493418374393692330425014537701527366900250288919621338622758674131438967131804035707618620485877681013782009559485904754284815289391804945391598805612677455480750067830635293468125820563369470308208350884215507240872406682056333944023469005013163281217743417248477933519415281719552305701665986754306576055683680892682771446164678442163680358974038421481601700249032108833039179887443099701787646695772170204362282494871922239369376042687033124271922409769364856861395153925673015243968203529895415245101400295979750465839888495928892482596037402436335907005820555612602146444603968758271260541738291826439967904379733431215146877377569042778229929839526974580305795137581855180021991142402093139614958805700403906519362239897632263717796821820088247730297412881206605599371450284055351378355524563452303081151984306315962989088024411153680121990938926270116813101841366020099257283134015121922256020725405074067514078283135124219203348819237314648725943674641834099392516024766043709140328919633637400351591662617499564929635400884313724248350868724658075808947799673138665242358558939324796113361337145608521958119305670679616168732176689399721978539061806636015536068255566190277112052848993978807468898983116101732923116302437707896805673497260778509400726775969962965026129167557683887884523131722531325966817263554128533017398402136416659948542173548527135868123328732765340142463353733111610324857363194702866141734134601588344609458141202262487688451494967737229175758184409372417459403012854035438652168409442848618107132785240709287309126099866646978261941141724612281692884290184274154886578534533918242404641787190251177219703585093584694291446896917606768482823427983548286389699292524204914172031229395458429485564921450943863137423798250186715550874342912527223200834055684044666669859046864517842380769708905391514548242199269859496366099607658542439890088428025059791596067316977243100291599597933513059509083264854755854928173356993434372242586910785489737574243046107590629178811284763428882541445547218821186776579702139177628481201627782489099112138181763846811056905687167083430797436350927195392628405894513391617367647446994976022916786363326715240092949498336294610418002926904770642525286644695266385362897370097325002974874598311247739465284296988595760174183570250052512734509442621454866652575109587429388677417014661576647649039986638437121164265429657697535127274430571152811676086046196792268240491197268698094041606420813501810550342512321714235470200269739369798224187928407376390289983276666336274304729555686590432114142489987011549366303669986029744788615827224271191337491392953772084989124847627311600413904861180517773835995270440614186956662583760711895677565857539612198736393024814229026083146357747550726064724729613458448887309005339040767504451620569928272009136747212463667808457834322184207822583793424191593679094989031297330399995524113611656434467528560400466342250770062032322872899144362833889080159375001874567979359404545774101236957257476741725746443622990332256951546011124293843613179871640846107647100457859064631954166829835679080539534970625909953765267093728145584108150950434703198697238463281394101866732802102213711412731169176151272629783047169168475774567240289342419637324071967539216475243105892538761689288341539540723874679502841652791818332770335163822123566615988211285713323110647452494921930766206302969044396266402402257305996066080403468516560285718780805666116258094563073815851657095878812491727435391917331236848001000538087243241310057281423499204143676527250759979736471954997135519983026046041675444908592931289385771470839359336898451769397401822033584615486758901384719737770312872541585076012469802180819024105450736617065007484769670677001059999415789114351052881746406792696088601520721234894835492997965652483162624279636739061081053979303003260773705437845448577998087192896968507787469125581032061975616211071064745264458402124890945906057155278266291627564360890403813120757944679645545197004929006760081678890490121084856405270648756337981688673210340515607495315914271241428678852094748810366535889604754595577665012213323334881099023408103303325570261096756809592399680678447281765813501925824370785127733797899073099735644412536719383014272372127432487350441367821619630887136171373774897466531030300997190251630781580245810896711837790307514540758239133927198147231613214159753810010912008441416413197056092745260071052521338076597422360835910576912372491215093312959936785564378508024659053659265817617314530503481126473672736279278299464896957915897481627787892892350681677340614604179796880827290473249538086711443168864270277647816867819443231310159416546388636338154945193586983315800837697161076813408687974573934539393227368608385202733259196474038726823092810089106781733516681027953667305408060682105307820755161943373506420523742480594995881209325217873592377022772625131304722514066469931987576196855482453557224405895436938001257588120116035234395505534300363751931173574653200581379412104236076970754032675188312128809806136918781189115515721274985697949524915721612608676551389308076273634632802512414575829890911075223459767510734962849858409495136472611272744458592845971345760675903867342354329403149740236820582696979475444627788685125552006292888787388574611456773336435571239328463335154183121396037249460206469765363275915350363467132249811984442328642475063556696450787841797676500229621946881837050696527364830866626453886235922391953383320011851214549135864705167683563421839759249676403890740178937451085168973037068292822936242000620734655271825598625463610387856673261482455592215106980719914620197761831761572512813758722923239548947687214402097935972594702325849958636950409638436191505201304687824978381629835646515042451483974943346448228070489643595509103208753943830284052137801207845388945692438161860003278687187939896565820137291817492125402537588796828509781669767882265842394710350703939022307666518689662536301681723816456908412787721482670964638977109066574956952898342973840646846092786209921220592087417099807057454421565677363770941198933009473854801147364125161522647191882915056473260797440251078918612274453920763420278331659956653081122329352220993996765143503541900415939859279711647047182709252343695112861105665080991170812317812295649397142556196362553880964607593787419974170871864261300852277283224801448760796694444822258477670343760777353998018420697947265807331630906084252132849370691906646360009979258526744947561965412255852826341269848716745050362601586863027773519359390070705914236588431354288281770350500275917493585181108155847163434219971723147687087470289596486481964064499007108861842234970376465162908224676591244967301030055428933485541721339795173844507032116424331645122600165103139880913958218405078367672533717644517208353196597572391549962152211043900573387414901455665941991715065262255330242652579962787396061318649805447970931327182498061932416453362943070484534126995976362256310233489099599393824087362817946137209740740751618004934460129987295817473725245003616448639545490996376715367511185168678306833013445989981606808664834183544571888648927708082811055888768509531001560765467000520584207761176301500486389168221467577554471382266985249371376848840019011105193105626089898723843118182828789597489485725368023041104289115639863930750446404000920355537636677461415965435304552722262643047050407325959057006498023257184829419585994249027624217629791583685122771769341591822281960969082465343680194706959600766228258948421957436599797236067982960311788620343736496608091132720940471334031406085804756763047253820015101849977773912749045592486070301129007872801910542493834456808267496953070875545369515692647238430516161727566427950579157831597374841643350359720333476340777562073095574615480644329600408662210730849167244106163610651726351213151254126744742106326403765499651443189273897937891743883641006687593941952256521239050749691962744390737932353898824603407167830071821899969269419195765753854958565566226540377541732724349642792938576432882268199550644046311159571138453783557601009773360348311117958958997601250009926031603970153978769434247982599276721360003463159534301604694481765108829579926253070952439077418335865061414666776819253639616730048853209941009882425413506599528250062945473899866677933109820932234370350876602907103929159576764894660958074933148982599044124184982118499901416254765247272263105261794160771589254225010698302385887868514593589029442572935450672110463870057032756362031216992485292090871506193332451012994119605774494400474993084948787436451623562697438053911602073585245742843022463944741857600234227186465552701655597345432604286322838317985676138549382602786547531314345975726724044819721715710489100107159454597386103000493685767029907649266656550219978657694875285976895219194899209424003699503179366663976250858423865678831677073140037148703156458193355359042519152942553561031465553367800046420405007109312679087246974167720382519445761324894184391028438398875366293943807620505540647472280733410975316079799478431012474255911384230970637579930184369302561901611772146490858900000517125298579457068520212660032345282158899051481546360798109606257294971209644741599355134711230019070825116476500807249338080449810172763872927431739935479773409213057928375729346309131244185042784610246005954949159280508960541058224424428981731796389936935499595735439925415487665083249368376424033182817755284726162977410193754498954301883327821563072491076305996840630069365887895060929812091034691994019542228357246375189223992201616702287151162193756132188068961926502243495095002107312265645348220006510583060288134606410725811300451645573606826918615398774356049174040538526308871149564208994949627813203556142709288194776087541021356267723506167468913956657176725246688703376091820936575171974245121541444674233775557962407300159667035758585136287087353168722444256198725080553964414799964859107553831185648010504157851836052896614752173296969739525860160074302600601374511340685177370105776449594199086913891814641975073835002571166618802529636966355953454074447588035607581812469931788967945207510714585305984342377339089428095540886013688295223144806180244018671189717534129554404948445047890736376135680231263226078721864801912119101746038367195267656808050053793882233668041423397270828933434846184921280096512810516323564485576652786968763152056727986502790346112360461306498549406760179448090674722131292950330434351008671863359072816178365929134196977674928774064887105390057221786100530685262349203694277950834107882952368599963334323819163027662553468011636343799165084827636445243556749535947677800065601205338736411419530378497089146007404777992257382473817481227783471585126051594473513479851695385675992103175965322318966793687206474590837218295158490535678348387897754938815160522143602709126025071032687123755613320110072831789811322604049112401913642119306806554900960389796322463643133323306745521253295373000789687395110159875681056309520214372143933822350169397744856181957586187915859524245106775742851144008807654613030415256522380096160263483336713161733762567035438173615950323533612932765423426684590257928064525497991034391039405509412349176834065620492513402361782239127990594428425530089209239942686774033271660457529149714173020207940599799914683386789310272525284191800064461028758425442848724219513158449762170784264835218260631682332942238812055443796956536460221251606366831180909812597659996959728736629089087170227812416116353581252930715480497281393488433922577588624413519915161241856249140712990417804217700737284925251649899992861007012257629227097946861915949271083440813556557782160990284639236135148207153799660199479538643764200416102103044724826085593919929773083114468691465636052086247193701243302885885515597824359738024801067729486412738685167718052928334865857606472164438630523120448491487002734165413660711008009106460446980979505466177848782418650826623733063006170704953334195468730194724084469669802830628579358179027901343948653597841098892520341013804177357801564808941823336434671778054983264086551841574406107134532562649683755357094543346826831632569380256293896145850935609809302410897864101747206140663043558198478160969254910191059606572355048613087567601091868317701077807743982526367105476246150769524194262292397178346499275118287966467397378943235435486005843243816894637650580030890895164353303117173961779226004530926920494889019307685707832976778816301319248289875233052644517107699926214671015339724865534430435874595003813693676997530173353654145918392077343427013491235324668742455316232267039639887794684932363764446139575817919576776673917019141615302537435939057491364370709499758765175361435147748223968952027923910011661774701516362543645790347309883816907072441895876359131478613712728643894785953107726385647276057089008454935547544761484083427357358709319784791599267762569591167445553784778461163444309547045609585922176828222819005226599445562052425318120823530545702057141976794503972597022589857616766512349423539729014233682579912604150080578181164718647879249281690747305189752503359114064648485952877293381979521530134044365660690648490503099071548940712433797229147578522290313869441886924036225599359610988975498972193935092962880431855747405027495514913621951816554101750023545846419129942543033465742940320878893453816965353957538341232600651257984332916458701470181067457603651266795946305203314700433257099067908832307016591887293995697367682376881440737581206084351206017197789832869747980178941826639663285482853138971420782649640231347665588476102047304957703767865596800037439118063897165029867107869910154209516933126133888957227490235915226662980667216581760270634055603339000595140097559029139729270863215627061663137234512691910469762017474406901346023181741195586486826264973642750435090708543561994201532174368707772877398130543219857863286551122311203924273966106370286112819244862570192108796412875221275479990577387119558999809143408510548517456623922878178798829909993881913013611947835776204286810619877856166564975253800938971390744008125599565824798753728706390122304264721427209458857212098754322803828697935459533676937676318718359958661328144054866198489136909891605816090544020615414956138349402449252498944342825837904310369186310101404586111486705778299416303379554371896974320632175673978394214076880501784512804116658299117237244202374645394540659685828587397035598962434361668272201257562360480764788420974429478468581445291973662541788099068469461495749937380528846020083928359289084369260657293982376173096401530385055257757715811211988098760579368393492977700308381556977828228265209053641224055566130845822574807147851834968982761114826972296326332960394171506587843581527846997322700535597882599103641161520071961975783485570857294059785869407472520802844981425571625407277019626108378994290904528732895491505896515354544075138414164887257385996697683230312020617034490246468824800312831906329601500177608201107448628299793394603185982063845863401785250111744828101270604210641899099041529051811614117752204232378111663737651276319906564944778409657353083644785357952089007044220999462428699623019272930342907092971853362774887492574400446099988332945118633758666921776941589156101333328896386618552476095121395953860953592823908013167692550248003456032173223339474027214399382844844493153407346596632096124695681391393212325780515808803007401545559708251495887929319055441115242088894746371013251716678953419379375334319465456166430529571645157378058230599524406328641578215601018411853467754609075819514269067182060378499498922349273742102272119420494069845778951672532808088393766202323098361886623286569429336894354666889377115036047157875319985436717358678838707608748072223401093092002165357161862613333570793614845509134155132176421065698317203941504163060833656433678239959467474415441180723122831607512054611470810266694061899771056120644010872762915678557196077174765511148093479598277368906921224493862864793983183953757374841336131200435100825254532758933249883145298881612618772199505846404053551817503049607500654059491432593590108557164414104518211989078924260676624626045389703816312183600555297751429723137946049268412102796768241455198802614895295783711157871256979608506768065294547638473940618920892950883997412125667016537120988364144416741237372249189459431527823386469213675421381951257544514105078013119009971286990062595622165651527219555805455374439990939320198448041239277925162195577128113776759001905414978617405004411035473190269286776946013015784470674520928746643525318155893508666144416123580179585655833006824130821341952123350836286234974841074729761890351832523922537759446940849373323404527583808390377584350204962720122494671512196167697112700532103817831011338447169138710270796440797544037701373970627271441058415483317905019837402937900486812668792924193793307055289060023236926662515629246249999693238226931738395065758625522210013761708072527026023384370501833547510106870704158728648113688727924787105411585861609070637369366047120616860794717974330221638514592693931617621850038003284931604823220003832279382235805005569818235664578287220054640322662691796334181795299414788979775439679213341982897453344247970491802557195693246946302162277330097124554782186903205327891777696418766024541827836428567548459219490329682227606134223353456653471965623143600223499469595713822455314115777234781517318768487030319153525961411787414540175143433579283712190778410881334604293408353288726044961233226752606693686651211461899751055629983679617957033381818447897356490406113940996911877983883663070214301991007663530256999670134308157741948640111726509581031950291820176589965645275182399566830622603715201953057647854889064198036806815430214031812662546543549700904649710818259121419492455374809008184052349898849108889823025118783822032245975028188415290915492071263965054039968751102664107686650812030543484883403405454505878356593292080582767303818885028923127192601333450552050269779099898847543450335737162639536935330863670776110284128376571650943345701386991402564179365723202766613370458512508189967197274206024633855680838335645689473446815973788338868069130038292223227094964888893930366156513672524600156015953342101923682902467392921294785327361330232595348470952140153661042732481910327364662688315767781563581221449385708205213496605412501931962657986407126447016298038610994408731837846753998512588382622840554260838049885319940143573589953342422029137712381930206508347330064675223329478418891014392251132415185575782782914508583486379414750690177977416479972616907239713708724572070095317947841655455237088566134729934530687753586599712409227196452741048273536134612256970348218430823485929199684262345255283539695507419181885898991712627887179103247481399412206240965757861704485870703669188989325536269558564163395122493747877724700783606860343152311079443384890092353688358644549889222196507446003737305994564900635773709417345491554543382412542672478626789164745504397405546111010835707386196576791355994317360032565881280973907672837860317966156981359884192372381618629572416561924971087987744353688236887450773117922105877658954609132390589365473697802882048437978411025948968853567874293315679731707847577749659992180282313298813203543795523085498693221793316318212072311489914723412426966681265851200244977928726469991166751335994600041835429476102647767191821695978971159552932948708105963525870551723428488770176123814722915455634589207634985866965209591240011074251741159707226892163775421644182261751781679092608904637757094448171748540219429222798514753605727054713139474230759978733791470385274703711914383745599245979535561569587504252151954754812366865573804609004965546114898310405301577695139794771750831183561391342066598125409054174936720075876127821393887789809003561618728900139252722332649511056578445470451904923918909627259545382418663164256540602032601826259943226122138194521363444414203690254892209469307657055580470379451442010390719660812075674762207716595531310587175803582195088162530345037267385044024727269210823058675133606225754192262672532716389009687257916055527701220088051176715932199681159401694685554278831945477972239440610005304989303661542782249090651419851016619880105572386799110103829773934151762055560509307244132465237459273789187214679058786832901022090870268467524234186697906643882916567119758599095061737693489760118537147733262705760998412163873377113985360433899541519301805306974132880484697732515758078623084712942551343844474155824679248030562177083608054884498737042875858943805740003157175531867471250363430457593171036842304809741737416229209219424814994210079584239564813723854033085672769693060285027655071373107052429426245107034335895193547903730559149389355555089174942765037384883648732746240967945478096498539674877353633288228710261764836752391453783061489661819680481295838036761781362879650194365074976854092795853700363023856955469264136697976943485195961077062702273013437076227423838795344804159299620717303692520664410861225299693397253476571284095515564725681874161082309990339512647853414479259428827973819652397288642645958538543740841594536346265005827164427045707957154674758940176992803620472038565209843410286326644986033984082258105367403553628754420385988197324510285074826020767974976025641110675155340606044170066703829529674248807497360885311161862296512126714808535026565878461595295509687426087389648489977244198993665452776571158961380370316689564618881034059525159858666752974849452242873729856250403297665833219899098012767513796307310844585937053443285650668230823450116327266907739399657834945927367393541220693703543357237032642107895546245930320132399720307041809232948954823432484007472543433840550340362911764792164801141181603647242138800451948949881314516722518225494996604260714077401953898919748074868960307655920927256616171855195059084653768372276226652877665528359792110862423852010535399381588152631448682907598778196729421993891581123920590903554322962366370143520459259386993943827357899507578650718300903981884823159345748301903930404867696766560889410124298842687785759346225594995747117853298166281136452414635554912514004829710144863679081123131277883095540521231192580238694143338582426447785151575687836980853095041759091476974848660653596215161464865925444154946452078361353906526659590848851370504951465656514790421241379066386405632299984338182644514316566344054294276649069486893108835744357340687427566465512043615694421173067938290322330128909593813991615166516178812790474856141366900876096283756638355787364254366168625534050975094518153160592195310807556897839755701841840581870480653880560999170788332972229242426311648347834576882099759719897827548520178808117753242587090173245659440368951154575448519792467816519079960726232467378051641617549046189010627895975821936076077965318336091700808999201299338468206837330291681096307803190037379953064045079587365340024284058050589510430540158549170658709654959751456711578312763316582740785528345978191225550492309496847904934713039400708663858538505707640569266382625903018111970614625211278852990253448764537146702060782201295687829553965366470166549430330344326933716797250435010097946482936089854632178501494288412291667544005132053393504611052632282102873956791845473577575436973863743702591406184972826900585183922793240633391577107808692828666366522630332915507165074994636080909694161437798188170411510433265171916276440293275781362660209924610300435509708381042024431584476134773728405122271645332044961245846573488303095346675855666320239676781119612435015089679862494976663628054867732848235688301162235320793144143988853222469362967466368210044998727781352457377774800784803267215972822502794603512112436326240214261463902726498530508580689642246295299647473387544782328237921597715440737494106828628256507400897845529816042220795944629777402646554659441560298380415575779525109930958442937594373375399888542347803108792725585459172501396829546973871606309310473241117986300009690440611419437622325861798873510751901487736181267155240273780677223354750474286422100670737342648112061790747359050028397419425609092943292404754928158463104275385761055624834829950339658063116536753659200337463137889413386194778881581473910827828884003806053505275645887666092313156139069652037800795303418864843063773751543618642365298257370541956921488323763628540239714513730804209200272071101304378887875335543058575673448391008050524081754530832419855476825312111450338718192034646694433618953199388308658715702948132583046174601966784504952093062295355940384088020009062042447163770280651679395280313682693412387089288342331600129842733687781923736740707724218776524283576271781774162030510143486841340493625217166701103711162283490959278295879064672884039754253457454439953824783846796068732770100304870174086994851398031975270668256923720316806844318199831125265944617502827690045749152698200047712020045540553221084197761948783923404166798974536157502609493151592774160996357551881720785346002967698572067312718034006001818461725932090794686638811886986131309396711609170564424058726886405339919649396060628141967433424783352952720800091898894986932662465811290174963326948332446713906967594922299450852225694941570174834817007435084844566541544352728249814936559003933699297225220341326044928640937957745765347043365099037439369451167763676024346437265974354982811959352116814508168544717979227443946962792297122295565882759411501211680992814586691546548186522568429321551734553017752923567821585529646516695440698163540519939103099664321666660221620612376323094687456658541246779704707509753361069660431222316391232927206832143625953475338278745634257043930410504530001054941421474983235231684615220560570635504866687266831846220848400679996603997313695331757102441571375853432556371348453709970094098960810069115483817388475344676830045564276611850353407220295612148975761248048205481996420519064398655363281318658003758809952165137434413734147430814559309912597179410548070478135884602485303886402940051407404127144624118530062369524139133434629716718749513277501222835706678464507799298230307490106147372999577906958228001164276075564715508166278970009304114350795817323213274708862161460136944392942040129388128280668485148016369057341891049339728843612618504417174191090284832306785228041871371216725442970470146771472185762445347100212075991585175812364110564393695407791295557257774386353273341886181212153012215891991648473161995821609404582276906694165062086336872463175274489232423159571236171284291541897969777615095354735969178986993157158655704204620354830048175623991450866734316512699123887121754922242756125412146565280726389972009510623067493857053974156356058610241796504345644710684812773137113070973545045057062343895393227384572689464675347520943090220750995738647028061372502204439460912705447747494618221094879210293015283080081277927420986592208135321230748497704412351260890789207388933207511176287139360558875764589783871289668797512777506387285614448802872515097830206926655052570278825717187298072557244013473621069188801150249550629375400242963268904420943416204572294849816228586792186237327417451480355072906259371583311034762910524580067374221223836572104459942143886930689482329497611025356170537049356412448149627197510147765071115475243568656930838562142421161613233047494004599944163128813517297756230497818433248800689242579323711764666799068361085607226606537553568063880119770148916778038767950684109592114633553720493243179880025131645634384168138879068620597005727813321779623788471977377697349924421847383581834525265800143672509501322389299726167909727532587369566000920932529857395272798127256781273172720679303840158189447359861252563347503632103550442693258106075721594935332843143718796026106064586053886941987371742221849159205905839016646011475138871676392632584977738306379843187963506728429326948672011853347906048355761443887868328546776047305684498192647557975272689529263082261865440885122874461082857004695463143713815764485880147665286638010389438167753729522466445841727857146588195555619767240415804275267442203184612506794163728848441635542896362270966168261787013584433271332393189038101765658206695295571678287766446055762167447810858277308267861974302943148468133303608015848012339773603559730696194520630569772830394221019034956643578519401413537941026376728326280879950482353848729391047807478990193405915926992394089857534408944607268965040873372784033459394535665634192605344864653268862497348591932333597369952379211666758689097498619868029361895792320596861931090503200605585977998974045794983300236482021268933531648279785217679894371735408364936249431107914561163147833434965961962059522173741635842012592522734726403024586380691261380892326325343787552029220647866501235910403212156083250503118225942122519253281469051897188104580018737650997377826612445240231258062413433892794744011412484650138914389862762834217519095756304390513067763006957211922938083446118007793883043237995691506753415168658652506869985408304488578105983715743825587407365130493640179944673913582589581430128413143944295676293246087970647598883163080006510445643004524001401141286584989877195715296356927100433012858285794460959728684135636060045377479072552569014192911087873968193605222815191683681108627104867544886411898932530846341656074041191263781951582404023972097318014445853476573805709429060992831701726361453860608457643559497681192004212320816296281339725096742520765375533757057260903076247053912265356008145678842256719388994040900333273843071477308402443549005194737418039334764401431515303114256626702248827791737451985684451687766517495436280249624770482080641643779079939899339365579740430502485319335332543242999464993983187207975519611392603124879260889464559470665691049908292746564815251926261798244540349989574281203820234749046762975331050735584881651647306974591652572466858889416518111405820132106645087692577731771228853629555944227769706544410623700006007294507809108086755685643592754560502948937801785170853588745826060526727355983833891072009080706915037040050404287620520210044414993818870005484367736448760332596758254890887474894656890507165868228853768488279706953765641425632030652873197029739988419221274671030213523275011241205108343742145744138246695904241668295406065148156190993140578889026720373732971030908926226527657881103776377247265021598678514078291125603159131297280962470350194890804956141837337591286632218004552058230777900584829523229030487650758340594481752178519589473946281541222631810793164583446468590042117301512329299678596096282689311169509650912417971931569094962112647652025304998725513294490857347287968979706241103550590699250671177902197983231199276448306825496683296493735999356112908631569201961874411951104624993181733555083186254075301096638907815223609847357496411758213109204402537859710522802283129019555372675946592160477215433742423203180474775142373716527274153425321807690274243811194102679261926418228233986866522662337756936195192495248568068490243385175770967936871381876446123533765121829017072152383084694542734634842944529565234513113442343224104758271976935150908380305385990603201403078031254894162522808982891143654289367950905137855861808923547705169379182541904097296478675781136280054617369121972695135184690145881272213926017177850048224890949271758082419447171234212951363812817018178456544386068896706811748684047374439702146010405174445844925659873971354970316170987361215697699079094203244642434920283121983419743406773579209201054431420928163934610594290112020457269527442448451984195000687023757328471003718279336844340403706162922408818825463112275066692544639658894783368552796728012221898758747979546673227661910651283382270684501983291125344948310669724888893387845830707813992256085447012850586910977591196934632433147911516553453292226079810189127994443930539445011853442096312922094167046899516441173100939562229435125115075257465439579757278646183155305596523417542148030615939371995770964787161865493122733645772920321362890140198891563450452369305228560954421473248266829215180953015802760239938733144480285393725798208414164007874491316527067102755695265187459645290237336580586941648654324750502461145464115959370638223379158920202863857731764738835507047561126645116251110757670269101497298170456820037508609802896162405383900258917972931118392309341669931234500506166535594313197188901326814294727823523408069502835188099548954149181103582926878635302508596622910104396099678440874523248898898398914445254671610454378322221650745212561541585093874603943255072464917226155756109212983297761238558936184728878041404241288168608289948132602261578669902391529255276820041454796077293703199656572102219113765618488020406673886389868469803285927465595477319504999154073705140461999890652017878883583872523512755861823775174170646266749399777642993047943111872123796458452777946304030255463284790806601484993632239846821124210806247427955665781984313373035240696505900436519472302437090068172610078564974209642566672920212103193471858124040546261233808810865128411506455455392153218988298920230386715029696882131529466722700695638509065505191981916633384880173029739705213467518488848778497171662048872930175587677402470896340501153908876714378975556131386184379068322805308106406924894209266508273456997320690895568061065996452290742076342232749518298240058193336618783388241777966038566550094835639880258804580870442991209778214100637567554430094734586138540512137886938029030624185792043234126203259510183403114232761421124739028703919699655154165980167615564050183472833193078317741043241994111578518165441892098952668987543670601852154289850565706471459099592274233710608736006217407747577293611409067702209230371140546326591779108153726794668760094129242444308495815212809561502920862789547246070220895316066812611294361592732678252620696489228742943994554147674221180752545079059973480763660715778108779463379769683794210429696210634707050195001900953673646356798196784296561374454834778987382663843267157623931560243643272275968715751719686243892828143512490171849374265607468338949341393295196307651077271929332992017590555683817472371492656387023127171349435665017012177069212885642302791537257820780419081706987266350901875120930919707021070291760994449262474084326669541702801591366402347260799666346822003596943088762559128316172872738028885462310985482358863420091689569912940817473818891791846148126239835470860061191235177699269167091337055961658494712477017766082561484752663720678088112432989291924535979044182876550518238380037326565425247244610355315643485619028852878825408965144589332570319523952660325402866339651295027802897852856031204929523946801044902619549920875856042750943134447278372752630350541697356488515716510499831885861805593113432063574688417849764003100517875741555296691511236668273281552291968209270713236015909487531176495526470392472890425229206375053304757614814910985802431328921864086461547075865211495401128084471991821523967285173161058466370078493388015371725580072225080108771844911873852345053366546957371579738894846835037197044004160007565305988122120539842170989124294045196035391099431515892891812671599221222779968563951860085590099046668178212984892273613693076327487919605969013617907722460457003598872708715123253352849215323210963826988520000006745451737385365927464681832972123392984473721219170453022383808687687924507999440700593815514536782966744698389293678625713136732197689724936017848171395333535657348331046256496687266269697169986357832358494965650594282859096699102127502146956262574094600312849540277832707455266380631952525297668453388557243767243541122288343789826750639508912938276989064241942697354847606423970705227771640648634003414844559398397918821650150327487581203671641077944078748374171737275321876857952003346620429126303543099127892359216598203663728262914077291289917388637114435134465156274762744947269018848692977461664930618589285156285597369479566998716949661736887230219540042824997769367585413725969396145113244394814865928812684826741121681103930112599397301388243812338365686476336821302256752431763504888900522382711057183736514529226591723689081163968323257492308096013314949004700655405724478055853434030432770475097486510882601301866475653936058309382110629347798665128187827415695092967423581718818299372358630745978964416941985986211893354043087738347457128431964630750780184209649768338740328269541395994478708912518693178318283664156678448775068256325108292365594599157351017500630310844984053295603332176536942232770397399388543856370104418921427810271054899625539472979694510945309954563032890099339069375076449620381132787189564638751147539166697690681752223671191186416012215262790395331161165015292207280191944215515923136402267599135826563250160342710251163126501860319802301886113616514317723950806717279296555235637719171901683556068626787921661644099254993345865969907838295589910076595550301461776919176064567054959315540890883035116876068788345170127003779557465665313829262551729693630717411217226892507856287190524913131898980387184410217093732898945443438061445111579028702751600654918964584598225523300299519955478741517597655820622644192270688088799859396377701739573062110432938305340785550695124370275759777010996007818455084547641372532617388469351367536958204452255940606997876993643281051660231099741696089979765672012183297807491666636024156244792027220016771501389569010374886576187856697787080076775446156473919627695696865278785565091369363865125225330641505584673989663828124345677877119113797038907227619395262685103949573603278554559696875581222190163074065436102336098817976914421711289059961238661720919630211127561213382306661984311844545663006510067811415701900306596805816962820576372257639135015091388381801330302760231388316279345979355573745460558399124459937487529717693096891342500465710359700750701408950780042602151479657685438257992947171686931992040189561171098655601375194198542756544923126134833276056635922268996827398047535930574423518399865022684146152222000825258936487084882897705987937977864416153031401034199287531464870739802826695851513562567771212867397971772251158811887290838479452202532427754626709101918807060416279504648705688321369280909101348562957574531752935366759932103305530384101297464866594950798556433803663500908174255373411709642214467814687918744445618105625113404572770675805469872415607304921527518118256799905267576407723778876712296805225450891911615382465311872483261506260074182737696735079759897311246167389621641018305075837823929101058145202833220587173719121188174436167019173130705119652367891829775229613966792028089865994857522259561132515009901574784099963194421829332410167593859735954812824268188900156018756683737298363561818535886235225751734631142553908700403937675043203069060620645203068226727469021144355638371156024442036245645372360839799936460106319427258668643053120026837370019371738565181179701849836481731312955335898452883694793701337126898168503546048496914284487336091196998076330253644066575821585107670495179732407622785738664013696445527611065688596274086599175141023494802861288332362616284875953825424516878059302130768088340771634543347908238060735686996939371424066029343806190106793439827236504277882152087844547376128383187696192144011477700404618080210362454962105074160835569663733748133688235072918649145066412731704428806011175231342539471726883579813928319851107780899348618261718028417091119767927594062959173574590449226029431162092960684699227975961260490377258385870036873588162772077508877684417556617179701798390651168878960585622796811936676826479287621416560520419032733315304059714401091563797589842403069187995124401269995167255492280456294024477672164872417325789144764227451266394619242566157970659360232566429490963789026050532019886183842795774125166481800852157732851480458699145245369241718466399517304517684541237847707359739893924077001328463130643805339257270542297979173401931783711058980523620862965912139717073150542614793179423356128231807790348713041920832486939420456128427847630981833584730547505882499115379564932568445832537106153138811635602387846666968074416044175141239740273300600318157549001132089756472903568904524685210350615073580560546038758646379481117575055666797938532684731416029754566971490756287956245730946202717952080456930439040527527301032685079768547495263007731166090355021753025453336985013274982679007253436483189973273383534464303109892283278941578168075192552657510725946049549575854703475163871636443115968122851879530656897812579711927068356721176988820455730351998041832030748509946069295524358337422677320966700958023604149692649846119481772481370854523850401425873640127871869523640716804916713480823467213788238690522612292060950491148938976077225731178751582973391383043087476829776368215715765956476517804400667262761630139820795578618152865707868972574069189726584144468106577295737929753811371741684194263215114956450162235347599688211969528025326636068158086578544775550301501696598161689515734453526274933480024601698620173329440204283147816842561136771603077162716204622083930630696570027312706049662505486107516406416324443478299000910060480763149906646194697441743746033707765365954823752294965798563943974236636717247292153741690022366512428111584216768391798450933283708384058805354918042061691945314912023299722942638836774613285975719046588670737865250061370706716253503788198007996461004895044477226135822220026511246540586450187625361561101026715303850759961112040588416996198445894744840216453015561101820653634492514073779034294994567722433413485060910552798482344169566841621802603029780610651232665796603023829513262799627958734469995728973858671502586554073691095256321399845110224647902392546165515101007263510345334072226708378381128058860465830043305044877603195847611534538712081098951397581276068385988101953105871657679672035726034827999672732606123753230022732403048676825605931521359585959597448596449543724595821615734150635079439656897108357118044449854018729637308746583174881657595172344404497373469139608980731534255154375163562717514321496963504777511889187746935643825098289181462014365348020257867268905354508407342295983739531065935517410444375940339973752619726523458594379317637614286400071300156972523711832617573072584208644404202646387079671681510675391288054370808647169645001234359930602906616322758446916796373615396680617793868782520077518124085895576419573887692672578201624143424869774367742129722512449252695644696039497475591796741172926007189359458977031855577641672141779189462401287881332262377314469862770779949819873607381671052099134179446788245265100865154992433975696072789441775047931205216220034082499604161651490895150520715178741267040424904962130910282529239800657388836900658188085459755612256479690450896711805655104407653581483217893149108325565707636470253475516766668069175618778397623049766448549281620006203227530303969045430409220199472487656869838693952744350068389752140452236495269199605663432116331250487617678313183391600975584622536518430308649612643171010920604627415229578452489385977499712061817786034679962029644079379507426884536870681690877895448412048360796153134926463906688539040819314232666873324000087092174477585445760195278842088470224228372796766811134718380229361118271728401495031556166899232038535360499828915348779239773210701965735532682663413333821429251136541896412955977942288048011197729373340277261653467339529286314382994951463378692148957770545818620716512182770169298103060778392310173462462966427479889788937606923016425538802567483382225094726168009986070768391290448972437126637972702324799749494550695808371976348529627320208585780534374117241642234637857183844907646143279104908081129073418689624381165502195484365365314510810571223276168328817338541408142258469680488209288483988643552645817779070207210960514255837919025414556837746344060929488233893187398091768949817109857323478036744542824105945723826490506070361197048494669714887458262638268197430199508955668358944240931171984033219250288434980610654860535673816214605175724993762201140648986805500797444894595193367552974347913549237469493696558426910484584215846776798373638331107599119335190754529401439591003702566170882149815477471652972767662902272830506074328673839796395923527148654350243864917976651551783949203999140664725329722239819619742855186747121720222357509387468777692940418024172993935062910544155131535865780989420303400426654513782852454334530376347643963459179895014955004397556469820748913626780567232068063169781381784332116513658771791531320299503974013408590947877933176111832284874853787455251599024712294497780693680382328445482188706888503506873225674137151875184319213780024737661293844398077376708129169382151454302259433465294996901572393246192012973537422962551854290400548057356644456468892750883938162429268882373546889607574652162527481524485808902749815326866672210369499243484608183985043393980732866372555460201909758149357550473535562425285928193244456741247980025666913716571970958893236716733140630427502597882887756613821693462922635099642284529618582324841018992680879111275734916387828271931488966146560290046175755598766786916602928791524189721385382847576562688208050640216427315794392918944850820870186304095179434938973769810955938856361637520451706115023131336343871252865394621022787882558260017544349074644614799824140260775782685157180195672316390197826180843384413600108698040244998239547641101151594734917010585878406192534534833717494496660272166512867577504074671688062055602491382096079485330805761406456490332164643479781977045991224716230588964959982332577090182179118389910406250119046454958577975210131404090621708447036499495665154115374142814626978581679702067511985035452282327880857360984234559368969415884020816565856491652093197414043111389687266874568536039816249922419964986342818666252965114315992796351883163381467952262386386523162058839679097326824388734709763398117829237577617360580384544659355170598186280812051177990952213275243728288995460497874034795225881833993360748204808616773162621041555242351629794298478875557398175325358637175747236637335753404971119231833500791047576053273441642541985652519550182058845108659660345896880653661760450511848732665319531600652304129996776166364547498580807679134283690224530838913442897089336301126541097721314474558804229557280429373944691271090179767603191429092224200211259761711109581304966235843059233644237846520630132116826710360302465404873662402177559507909723096009426627696230857665973674002637707421255079289381396965543133419583878955994693245814348781634888043853844701218478769939158141999551630943979651045933638644607317248050226626250942327696204971840788590581096840555191451840983036652657967537061621430224428915534434646683959728233655439871787802804365832797451920332752498953817120132655277597314725933719112607679520758463167184264941865490066775853545149363213663785339065838485592332375651436121744048400045216812872261802164499539759588646615950540735546208166782419687451826785586247039778494337378675324912822562639378211448717193125316025061099200143802391781356924100636870199815541075530428991472124084783053582082296536731873763763522296696947379295463447608000894535726180059025288092128060596209293122289539053596085478242779834788184191999891814795431237451860031000168134462487160977140899378790407998253414673157574014767285289433275928298408117628206598036561100837646407444530920363789775733245492984162532693965438281947864833801568487746313531442152333087071842101357367862787915127813928956694127751114489925496500312661538672607060340941087042390285453117216739864997777738717713177558739677120539967002340793738417650393087645147203897439143465417143306103779588755539629523597804407884610745917109185865876981210743548381749450688516462953688653487992910979430953297180232219824495971990207541598049277794250841757776063687425605902255684128237922606065205556924401826872782417626883093501465916400257688277961120325698742720397844263673748256019124867897953952703292257103510522790314843174934595377902110908660406930068476006461664919627447521028027027849399771243514398113348025942838282576563543617930690000398926515610181534628724462412352983526079327359064018686050871016193526379554359847964487683529684657254734291794319804174541278703289289272254173397538892288415642464798219377784556752810836161482552168166261774810235794511022761265691070328425481576037392713453891657872596231141640560221417504641361084036306891999785087230859482240050350817899761294924536460186130031112935865383292694397412537583990852829814117920850659921715272288688588528195948004185563984605159294011792922110835736793737987919231572266393989866156417896009415138291808257410762574854368972484729743390645399992650789350117475511772610806058471618999312944465948582464919394799553450137652943051023788292206263828686350004531583126105776994510012000820418985284345987703633657381400741586184447959381584900634536344641332342199255325213403520343856635119764550007880906388154519226852489277879629548825646410609452848641612658723131006141739415512540930182341875150655539692942287842514384848966402508285198416440829754542636258978861923183457615532165368185027144733588213166797588953042301895591439538848331600586174041057233420736842741240467189491579350755230652853195398340427678323885425535491646813963869234865515495007653691637442766180076736867929935579225630902332059739536118805657601746207499492444972713531501029907213475377463003209246398022665703488511028822786314973114967315879674100218769899262247086783632975384023632090819338993228340417110903013452447112085526256962947191784009080485714268184182675043609125717279327195732679610813380441165934418872646662661081648948358256594357565319515937729243782342412213717055335660061118113241714294684056322874179304849813750704974027985946318770617425981957088101385823378599817930781744510124107423324217166454600490717446299582730575746958575379883293480916070740250676867719535518626536112270282596454739000732470203631071841821307505207565600612981542427920745907444970275408148267166939079092019892341104145622730352312406510777774626133917879261331209927876110985829656135769101705898112441143629929907828381802447235052177552848419767897862021144867703066437077093073843950684138879248271003800013064608244752151375689923871652393106721025344263849341450856625715523802572747427230805287345537087162687105753671760323856393337867537416982411803923844876691669330414087260686979256468053306806971456834133365857928302799097127747582976725469524578139385666434308400393811001476825879414260180986747459739740587419888810509857947217233312072990281208806053919671532639962110793689332618584666039237669593892295953897081195535351002796839396269091893938837235543357414940793670415092022051926809066265894135597089296284655223007773772573106622071643392777908297518305108753576368983398381077610801466700712226548888093523519673002273309497084182349707771131725231622242456545621738354369731289081443745103562361712829598027390597898145370087588730760778846477311065344047179244772997854520193402388721684209793151089182837961799660311642592654659104120085580580868976311361283519750797868679383922733508639197047009489251365647749400824649288872475442596566903734564313145774340910869966336379137991944072986536353040336194814510997864201186365268905768347452912737398700122128039582242684181688413085468453865755353562707769665751357847753007771255651362507209933245029144294791097746588985496850449804471324841953378189289449559724412227805394461142765308203954051116232529781897880888124945368936991830550061837001512194749463353888099059895208984304195853035651691085529867778167796351121138156088873224810363167382493804638897423493813710904905793864740182985754063998022810924467786710438311212970486805436730352950731922129484671325194456568088400199206948564831386590039378209088005984921406717770201774521274343092750786404096501122041281824864114537134339260172627336139181956535334581478611174321040829754356941757603169529038074435960607684608650837420836668751283047228814883027046898693294183644510695703500127033239539505092992019558020190942312848625077014430966532925242119399902600889514888191076558199674292472263669092165781323095746226399338398187362165869051487359093718210136894611721386289081477785706589601512989628371391204858414162878969417288602654599892607054942482840212358318875404515230009218585719032396111461821774174138629193746221906635625879722183790069451673986507188317115678910166470137641413673710892978356157782261013786127947596804075061143067646974292009579310370660664810953060373723403574227411004994205405526183096208458835052140360474127609527342225564055647013647524861770407017356874894234740214030360042086009176423157805247061671603128731893328302016146044722307777675659077465867897646423799926914145159670831319071060807176296541587534747568066970969394132766403835894226446870321753047167533931748896997691870593428717610605746086954966294202177617411644076348927361640112358098982589729840913700631987444983357652583820530127600819961918142996283644553571642708886256721119931118406534795141024334412822606134841486200843698763045593425536642318737204171875414612719526125198665863829415766294016511961167881680538084345870346923148209108609858455676325544169832677997375316027435714651119736740681321271841344806161673741894958456153820738761677945499569648151515555469977402435694991625364626342765151101258213514051902410138872162782754986359554844762686727404686263763150567017971740153986553066854001676721978204854673971102687037790759692992755948956207462855227223606014299658510354966319437551964843575624599877852745108851047153735320906678000097047416373676668216039787226379641121367771732080942979163985394139401156886356961096573008113375877605321936302440571032569682252008661602161906777369838690810068575557136798317535735090558982613454025867084452566579046362379168333985612675825739205156113319288918232076468727652670107645012509291803396628468019880119149898417899623446756197706711142337215602396370154780630982914768292882936631503417602970852122459477011517615125278676375905219998680753379385171382219655424422146384295215448322801613915284555970263579670339686759084750288621219899154803721174142031018043604693831387195014613693984749826954359497186966129740516864640777705742076686177423937948338011753912506806157094735939436681053725179136242026467763318835655794402622740644615591501489302793055383539248241340847849678962278301437139481974988624614175382520998293810944732988824458195379340826153952236307648524140054653701721615769538445081078746818785498041860735131702560880238634664180958407118859951252526678320006840446439816820470432526431723243765435360531519361405882881787431931446709975971540480390461704846323919307933977098316633162225851177320950144086121895230615366550700996838691229153005064500344154592194271040040283873777902921562341424528098199963007979496245234389827454553305699091248574485075773153701048963170312055145234167810776919343228214185825170555947377762525543424436865401257382257278588006323362108485304113842897412089119824289804605081928256452481872337737722125128341711477219398288533612505470738846876535296656025569111928855140253781745014688899789165631626932475807763742258209212474882640369818760842387885804630062795095748301495320020100285395809099442023565482420329421245037207525426719708380278048345033630633382498907094992649848290400422505885951588737517451204367251799268526165391941817790906026604487199712728151474406641340854400922837890609474852112442786828021355346629365180885180237262544285066719410879401290015509117418457968467914556120774548527077801252216184299089949440449357064098283699426228737502575280028509029255636948301265160399558350923441812102495431723787825031761678149435937777430245515884647529964932572515931251906864451376477847709926231896147828482368349471589860331997355136790199347983817134944972179851306212284022393356877123431086168505324284947952212522199461266501304573831197842270940697117626124482857107474262620377558596342190715559964379418278991928587693806474836843906858370366773260885389894322925399159627569340749007462514817772355829832089926947411732918234612558247322112826708615529547906337958641828965654518777944003535431716029583536591303043798028894412551788687668694804249631298488992570460657080783820912913073406898309739844780603954908309823325169169610305133122491033866382505794053023656824981654279350274418628065043601807974483309322267880896435700597294928605770719286723552356145008666214654178388175995929033996677040721062764136844388578633708076793255674426432600592825290070554701345856471367406955248258463657105195838129095432640127646558716431692848717289226366218703710181444986082276255424067171668737766323800393411431047368518822426422687774207720798010356121667815695481332871983816540413196624647614016701425082651762872585552213721247534048593133488793138971496896957655161210286623153116121722186825161094272628697231657131999327155230689546351728926583559520455434301983616288436362114889043253546754989534212405860705313974605253087380729488144506889510544940148715512863920769214025171302477292894035090188489189556206266775874875531220170822223933172384019607070723081592168277421948325710647167207291434469633946143246817984347984956418781633546795240455745728760249900659907479652580591099307307241452765132441438994671680344512244923691755635718351258560654295175778033055478506436751300991337576488967430931104895377265577580200185699026173559388938470426995734392709894643725468990488969618383346213791494466399378708444133693406696741255134915417205440169810589323740704825977057349563472769045860910759854542864474801566294981720194680740115441941809041188506881391673584849966221074279774232780780483055962131471347036275131079309930513319094118291758234569945820063961545759395762404375289176764358477550159052699858793631538393837243188434037385233902818563801798658968887796063054505387868993704260734518665785094054077823945709173855118276284486343826384068851035034306975123658236089431503234667387281120722065669006992882073146261009254095829397878176560105928716301827343261833059176231817280731831072319252957879447643169040094987357904474683935432083255739365609881545273838588773168877636212888031724172801853787987419961363698275372307420571603672970828610682026371752799705376467206410418777170410413752927681738935781079497086796803131216867106777462252508381853557730811496199548836526478848119771152859989754987500043933381061729233646372696842143294177915182841594251430239404263903907062316666671228614321358072892433478015086055310328359146751886381225658989470146335597624330289815939170351199018471930958501867962426388515778930283492137077033202683345068908371369501423374994933396311274124871153880602999239822097537705162407753710851654150030846414498192695962780027954938370105720261416114322508435676431413116455624219958679516942616543063481771636708773705391344231923736413617355937322017430429431526573583412252777631922633596221444934945601232843171155749589256494205834623623881262659636255080094306842337171916780079038812944775549076827719198413481259463572148103601824430898892546391954384520308221749380250564475004399947907209416550179104678080133378031716674291650666083961659674137529149324691519089997782003197470732047732716919465732340882270392153324574081705743970056433368311229442614323899640067920104629955740791445420456343871425746052625038856779236925115176692943016997289509085655636537035214622253612499787150892447156325856173353694306598299944559365409360783936219507202565192498764989815109582851653843288514580129144541303677839340473357194194612435031408751017895691143937618187722971129400620144957124518044895364626189672355111901170233452985201437963972597159893547238593946408585544900172202025252357199838052506080833542778140129542036363015523285523091738803546252549790922363229762156338277482628364044013571961376578965420331053007569467673440189870445070932563235598740449464348645594268727268536360434291838365099253509384538046495846606988874801753956713543252080775322306588964897936560215552586233725435401507753721304337248751072282504167539388072198307100198644402488579766871494045714739157734401957892268150346602464397121142502868043912194809188672794970085634513316647524969590145687720009541718136833635411896399925916898722696396424547841070825325299103563851870868354230527849967774031470875373157979619597789061263793507823966459687263774010616567279167604948274315499247880307805208070615675885984667653502228803276638080096170294851289689170177621499165710496875191765628089216054359859214215241856830068999647344092362691002067154059091342780383570798879794525257087110989839909640466231916429173852835246538156265084453606135867565316931160599875238348210768749177346539619222932912762657726313884019593100013714973121180033916497053767944082008378608439421034911051229548284600076389176946010552489951612584150867158420712298580776750901482947571123631460739740571888421671094028662729256390163953735442707410953028943241794253089159131489898350186789986517003350309972211183472445587087374831823782381579634133610875500580065203501830904915747895372636377479523132130253330162829531778307055933105413095895642878199574568351837385511890358345361444450781346184066029844696291858703047135548000538808449502837502055873976347716396508860187335903787210003226072621601169320552575482262843600237488912522682226299701676657020732682270584938499043605620700036547915742460680918827329504241420753998660268787382912790900492172470839629748799973563708849420427549078614372393675688567429030762169401440202958332152602802827579689253935830034677641482738707647329900699796413690422605056633447972226379725375919574956749651827460423830134328045191063558133557448582310875767213134858496022372146601027152168669957726354620249655017306010247841854621281519743354212592197952322380240144261137458891228611154831386464294642424146779898942774026728607307747747550105393305318923341354756365125543944425509667329971528543332126542114986738003927056060742272954378747380491578954823174616887673954105818164032696682789740425443049569594502369855564321543407845909558928644850840411036925425775378540239229157458751628050596717860716594199399473870424396115015809301889908762259653122692863030530884321681310891371651936405339380743171384266093910008165072614695455213824232731149871931946505846915534147460733177839761889354003886616252512303393252585981263155187241282788630547813764035283274546136231980227117002586032998626722946880786549423802584605671391245101042210552599331010237484501862951009918908374214126066709589571290431444604642041412989800234636434377524529319842238666111127572743074023988752455547619329288734647629685575506481549615384306721210196252179464613133227305118424959817895421842478858856377608904986035468876233458153239714423796103873908246368154776606981586223165742638284457927140840137163109240045079994007155111625080189154700261530416502237466019103903861885525458754402454878729851355199417355295318638828865904277336679173214953271891831957373308166732070180592892114533401180133405405773960898464552464172589936445638540394764938217994283237559352815759263885076556111898525764018373179757820945989218616403383403811204325212399999716452634682405848272999055478788830544589051639242080849882766200546235438512837545276483907737478575028237350916511993397478470776885246248699618611063279307835800044608864115721021506225425724178412843336609162625790060716699473828316798455583651279671852070915766462970612601013974964062267692860945901456568407432311099432009554902857995621114018652931754472323042542327637746788685438151804125320859204573031533332710577759765762637338282498907245414054377137122339972405185305918822414006112139780495535947230152026041757901489504309125227927832954592171153897876316179263845705495947018721302455607914977508675291069081811833175526939064736882631886041440222241784239287977132388807739377816596605520395415083879706418817363489854945656001824373275674973715255378543355484985614252406018545873664508180401545594666199989059689234706133839374705307301917865184830870339681180411935273747536522572059573516356656591589356731686541490952378071908640376937757794623406494479419086631726194983923538242779212452136095874026066089599838810188243320192597303185350631683487506050907786273486204510252588158597202986725893507625143018312577053381705545390389834587431850286586349974606907948477301627056134647064155115998804915922471314321352351139894088954056785005529800383323891062325099914324959573293053150631620190016936661504835353846024766895081233403694136379314196417645968155250364581349965698273575740772780012301551574115577649914020175267885237389103700137580063414510118135113092402137929878635470551766067154033898611992882418901593933290823874547782199544073081184343578979526176162740770819965480319486976916612501344143071669195095489934394479363150798113527785289362355589103886008397113036752298540755623008036922009775641266811471876991075013448582510486375595343924402500249345456593012732346624857168623047996883022450072698827643811869069123756931589285072897192051252676291014160808228556396348229450312843272662020146391756741374978095444785019389933406442627837291066695362980730580635399123225532644466202889694085881746702623421765177790568943056202123363046294147080439013011787494462374835441907741717611624988296981734393068213996113417889529931489337413881752802056978604784298952207455502464392786829084171766724895374039544983063160932612088959850115922893097470140468644096551729848751337085661530126142200817116314283605496982033216584617344752293891430792340722844826581732539129611358581501974620220259176890266205489746044268093690645285763442186361614380167071941550331995735900628854462322591049486694228235688300763000301327214235274691221979333772071057409924748562982006672686477711704746378439195097707393098929099442900140359203531332566761757223581870982110122368428462012372792306571360200428087266215474384591703805444232572188180835506446324831915370473277716304816379206249260656515262463166110794520330581237848091372835366449092693954579374299180967756427240242564825160523946194433853996813063718973632675932442974423024332167026977844341396441715133597985673694647962537395363528283554707291760084167498116185373751633377194680290494022251750274606306117656157813906260604289423602466094392924901272296847584428349613944649190735932998325676865108682676924488946275695360486105427317498075702012369783999179510352679367646238205404155147844778708733106824569584787943534359603953610023119856594445930930426132698055493168228603204688357855018533558935413037309914288318255626931601573145175686078512079161645644818466037336746067359037649847362928696432835666343373018598579069713748676560533162021884438347674984355672184059631145978900063504557989102146925156023233731665808300152942894763150038900942636004348446128861011379312744904708542626643401657041689377446280647514693260782286917474500128975410979066424093472942563361950818125286078265797002785682406244470214700154328076110438196387222577126095426078370147657212594178811134056087966272272194095365126303356953994865274669029299179915220288418228211560683622397682191512859878669250383909668178949770515600984595868822577082659670395883740777334891634686239958796497910194286880623840559908394735762108342868337113516361093300859876966864521856953482784813460731636738125406246175630076527548958423282733326734622744464040226794046426980070834563320547246282036125296745533394543780894449519530616874836676819408231459894237370430090543093797704446748577247879761213921266615222808761758934594928911511975465483330753385737253704540114067884390810016534846513885941667737842041223704532722170893298241715624630980743483823342637607304140289477061780426406295368461502206416114326250936927893564713209381976177862829782901872658987390205672893691284596412088556708578831062794929894442173317612818391278153568711673791014306108021251512085254904901740922861904160660097154018165977332403525666357077890567833470787588333611138844298992682191155951271033106575792896026508313572815558251716786477391848174124457439440331846848705817119927332846175196952712656833768538039778367089283468442114776574357046348191662301838241294591937810941749518552204159682564435978284172524803208689586746332551617520533053501521365850339927292688992390136943139917819069069582419377743154919564668702543908971252759604259976550814775658962943820243339600275008030484928555830547585608348851480439404329610027881977118467550929518019884218951908570133828863303073413218733802314092765264197175673095813315726620777439898139838437332807360121262392922011201209888374145181148938441916596173806109317901776708275812529187627741769868646044472461574949081734071313952120851330712216326577930976117447431405354246174103662625438448958183147963870982009977800324133583633979855997042627552817459620382572026797406922994872102609043283723003224984143433703534254093705274022296358840489591808641889413223076703452463926240741095650629908521065812359890491148895473184348952824505193863765564541975058860524199094280215466497916526754217191056603480580338214625506612502212532118914396893494723944337048845167609197849845129020001991914775450167968682522272442107985014721494504017684828554759699860946925012208673891257613575367381466764522747818811812869505870093393554328739981815571627262360991496504649055481734645876437847294760130491868929619700375212821648210198680836127257254766108408578538381968256252156797684056252940081134441451408276901545569631217972601327635653044270317969618426855174221157140446023413249793908546664077231484939133338495907592924398896060171020252946632378203830428773418854617514145589007470062682726288242961249895917089153601584388332108460350294543450461323950879626456004288542106078643947297881787221903383069695469104508939039711198480828516000481884809720311155540803826201291248788042213415554420561073714424291904311594629220815315519893179628404424933905583704359991555498011621096109047652157431934524509852363051209195545733131373863952287263941333606696833878281760828513713691068372755514769272236387505126958658352425877207605690359508405633091359427465755869101879436874328406899987655910700203734203578321086393722709783846759496211975694176453028496338222899494468240987846055848537149181908181735358936441750767134744472471301955997644419164529452673647536958317349994149661039193182521761441268712569981820142726214714229611125989604915072062580936994322934971498854270940487457636456658007309422095864601885486044059383211265105329952671940240671419562766759023771322947560186974795225123476850575198329002504925709249228158836744383471677231944286532172753034950699791464709488094537501916215962782207381539438852857745435476884134044418651033234731713736213513479818717963183797839955557177542388287466651918874297401721404839664807706748162650886374342760842221282181343071422630295741660833588281236920985451454901013221085109746465558753459749245416164265879446451039507562302198752730027378887421793378503590043262353646261976192072138369807667402799710838238213802453749676761489144379275247878035490858923833229665354321876399071940355283655443350723623731283313710508083889426378509153628950381799270415902683389738369853901404855096668671008913724188957216700911104443048043090564192622353021236294320748233592112853962628349503504094361734962126735883475779702908018302837347785516144309975693682971977138718676904761114098481027448615344059345005981366040558160346993725747859571572692457315977846532942720319814008618274325110351431707430189106824784424656373022479301484956449304476181686727092367507643419517908788858039222739926809529234919035074207392104457631303166305138623177244830081547839348549756030165415378914185303531956180152168149466414318632384037392631472535283065672862926570659842605509293273324604103115828094650200542254815618945464023905127894164519314332356492794106730261631047137478399654520012447681553373519846622122474535199731688333267397672611841815938874479593399731476992775279381255357542895694820997490076574173251105714909187682363046040114305126107527998410579828954385023834874034253796969643669814779082384728710071685606698139419627042559657338283231365399609299128208871120368892931491855481802013015525147799581181984459974793459704263260853327234652019150353891106527116325482822024870245937404950506708618172554107963775805676749443432748284841438444254973161913272507927306482733093829802112654529533217284009623317177334979560950243625235110087682124028995786094883619967185608202574719468918897675136280756605192099610641032963554682279215947711261745464299392697265075163726921505156957804497454956859395242155347869916642414599860221435175189129179351119664066449635569701852985972123731285734480316470346420799296973919876554835686049290555627069184269346878784377389108122883810362471293782601193238485825343339648007605686866546528610242062444287267845536763370651536085534526349202485588772451910014898210431460562715444291108965555725029286904670741140458579701639913782746289537983279780876157595341514584596858529007705396757248999575543446346514562030268702830735857377864660355103744576183242517960159283536565238259800203565006382571946008975790522014042188720943014944938078282295868798521285631308700025998495892425233841602184588200409327884137731871909939596491389304317489560600372594396065734769820503698578896801097975618290614739206186069379908999001089983500348606436816343713268405164049215580515451574487219444376513559570880425625061184324036120331655815839978349168909012468984844794160922274111973653451605045747878439693191079947291322899214757908832554857410924436030414499588197251530975795474046523067535204022491682846691976074209601439407316450900717282987217147374644741314426802606227613173454823231450747722801686351765054571066660398696059820103777817869354023155481696012197751650050834431900047422878577599474455386267626103373535874028611566118622103277787111727316060664398423150679382775360020207790426887000164491640297423509845210310527753171008523427006664879226479443053053043226586643328086492151662426423828197519420669305381028581442879042065821585890993277789592759212582972015603673964574888348450885304637540533925332394802199910558129575495979421837775967489779203035874003431065298118680807325684178087860014372075300324409220282830572493432520725740461699668922593080789746438609765916089834150899558872731736871211380309130940136458623357329614535441442381589669471993223013154907748657579847560993574632639578478540594282983719510786163311236678662696766970760343968627606035434598375043867470908963172763905483778394445633574386056612645382818604632692862157524500340105713167458345677625526227134437024456978901464891315035343634165917216626228505459443946259456165133471115992951303634978710345598011065773723347407864570839724460540449061395268217742799289134776965494272133649387674568017851793885445804917787268476046613084201501190237673198677966659070363292228626344192530717879866760573098151984794116533247694295613692319321366693203768930456437746050088248223262376978736556322206742796746983581973742905011322601600254840717100989839168719714314603558802791099158990896826533129644663632896519761946466559292046154246148602629059336841738868753167548052848123827118392674441408335700207122871404559034319143482206245707763396730069402973155781812991741215770708525838788552310681403342295191945368990592746328677983672720886178568794024371773450987773964691868651581452007420605326850922395523224488933464062400106097300410765962327909852256444527564429793217605133284204228025124283426977838412412168390712942007440248559973890847070789604556190545351866205362958004573919724886339837671789365914412861230662597254441727194359361149444294729215267893614673185138833098242056285895217699723616773882392065672152237276342494362338020427122396979832758619509341687845741737356336773921998955244563706417657800416563315809582965068177720739768173632684897822890530760108949485721644176425341008940173676948257523287053011493859871405087566777908000476407204510087962205655600712735618400369423427856773458468771649917142065534302971057296674929317530600606315693279572718761870383361159887278940439400325924176696789748677680709148617206489022654015450918695686128661063571640645322759808181369537164470947480345782976171257413277254067947552233003702172615484805595091381262930805677268901915841517999799002459963456481822927233223114226740778913362882905843949675280197362923891158557550740741454770002491859481870118406843905085505107233581025318720744730129621776674822021326099673487222388567678465850622303245584501064044060767189005772756010916896485708084832033683438003252113223140918901365075248618672059879023948668426097232912631374234067077537286414092989218148018733673836016408364957562549561199996505917082644925888284705848478813641104280712747356709888783922973477449766905819058585222923991369529572261097088523671445209972416714587775545696340057812840779220471700802546928800731989610547153380439140972905907055944706273873293123981813817284247358985016563083239302321403707839994986172604386736325148729132008547509744541457191617781638585536413658928526467482133873943380348540875782049391034848539187828519191682644563816551607435509629108871676144861808803398979326130277321076294891886565532238464247327304446473186397963498001902116877221513222455935210427546454974977822547325183334592090769450966791171918121073995809023415014295127881712490109177247673623580712169788087884961994204769771575853730014007425361325978919795545849838932823896274166618595394775864826620622026111510323725529290934459318385452633424547905157879762166307140496155926189705697708447237433256482373134820830449827283575892633410406233120436165955666759046483626598516093450232056326606805830892314964511287719415029407911969534464685467174863302976180131603160365887900885000551673598969805432443405078327187988108278506797646826345406401965367932081505063771513062398402955168373039457488436569010254812004774353435870615435498505208959260501499864960058253063255408916039734720319520696588190011298977660911639989593963375009225222559867379784206365263621275247661864615928436393692740514542734661306505329258408555205376835579454358159557213914217965538620677835369645562891789146134717520560853398344244332153953493369667344816556790636334680323206591763075656727127728073582437777831463750323437996602402545519127837804580029502908056435895633667072923026832936767891641472419636441661944677456839962830197539375626740709867742949374812366202415056176832234647569039562149440046887870384309783232316564119093992101007635889466829722431895496039427452239332509394707447684784077293117674871294623138284221380592585549200845596434363857474096541078796648264186915724994854566790685166003678969148743650826210860756504877345853007758272840081881167305421698268501653968868404822653412683637169943166230052032803938488832031084959632118443290600003575970141529632756794302480544486927491263627895035853484171427802024638055918999396623485015785985156995085121815897855609912801548385721572468685455034649579650992960117841963591112712877923066491467037772383523535344891365976465366706052243514153597491168508151507444530607842807935640341901604937284782565473409938098014809722616590907165839815061391608058797363095354292272912711731779675163024335563425408556127624554426887133736794245260260612738652791296729114269254224097945158296896286259476413680442672045822254768508903787691549260145039183149382487816920785371783344330803726497870237860047486433091561162356166233695309015016344331897537186688922727975942554969700980512467578127975361821667801980615616997859317203671349050286525679648225392721283839280876290679929128367759126661201379541964795060112931460220331012522333621024917235852670724103052771403847897747767617520243762487237440276816471786231365686615162398928378219222795380909596702224853288692157459658029859654189487687587316963209648122922780679056150910924930187137599579311438540742963756787185823244556753244053558725814475425097528333601265307570698016778546227361645430556855128162075472394994463524421419605190863215520557351294886138791194616312746595212538867765103506208878337853411027713716025153602491867019983771024554474123447066352115185564431517873722680560391394398967112171105754884174947662986626325273685815415125736245333864505164824857691329573310379550665647554224004166181015515702445940589086394816614276940029697089239315105375388088585034381087654043454361981322747493814286482947843236119667022719713739814277509569280896594954146435648313907533434959731468226701785487869686777090870739311735662989880585690610410819385174652516193042030434776452795445669247649676447281355656411784409232621941200484422210617095319257242379542392695944444486427449997900135236665321585148129750712105650118564961589773477192661896151291751245638270262758976024908142320401909339022327922905657081503676830755880329254679691214512351842828383175580672888339572263898682167485220233729760949341800338369350337086618828713837714828404488451881304347806514436713908225849883769000033293032734409967381232456071259711873051146326292075013369334249447276811119650861462305598685182637790800669679199753736401990338393791783865939441727247681791058854167087078488474918508863021349067876788215061773375411967243018995567023256989502974029197455937573188441108111086552804890904913378813927528907417675518078113842393560758518958307498991830278718668757041127635017280352559363732127144348792211814386019300267872724148860900910497059338112199695841120616446196711269458511407388350074849813605626203457501802541645006838687787742192825183350172493584837250124347842645916479471164429512304238036517859767559580655151524758987360642179599030205315336391250915075496692110245735466306610663276379784983818552396355768493416186672919444913424986806284076131957568571399119871807238166509934825411639425080033330727316747833569557225129979840199933780811721580212393387460864313005862434601082990353463947991503205259844523009806290811764442511521141602252267440806137778951573441408877953964719124339747142714219664287172445826538721467246111293426292257754207647288201584940074774072722838610045215348643190672951569312921264142485941208399285310073145671018360924369946875588336453640568348851545495604458573502742811288031393556476911176487255257571107692808638924480609800315558636904164266878251243003101618390800681630907871440723315227108959872722034366084522966425723006646598938984987309561530593023633247550810428040686348095141998231260979619847943580983852496489046337806669767464212499998168808143461629701352044176316030911395409167730672128533189107430687425596148519979810422565379627699042854456050953076398678307915858073208485016014073330899643265256902586509779552792516274547251645998627088651300139405345365791145831922217287718229135829391712489344212219814021451047546146781673515258054546052220184323284484724843108038828837565511382361530139375796268510709791541675621885083151824460401199853853393389523192361339225810691673981953876791352043802326502581322921864504923204223160115574383135317778356958390585186677810179921001137045108942380691882509333560754092133109268065314961014451020169980119894257255767978667813190216425886835401112730865723741420802003382290347024305485126377935115452168103421407964773664507928811576642118263364523760577366521175127805851095867152641470606462374117171080352021553537605557857302572818009219050987870977384298271817784906363367454257738352450327909859415703223974846334073641226140982949441617659986668438247500429916421101536936359776045102909011820523400273028890688985996981321652503402080747686545248043683219067631429453174301406520381506929336072850212670127834899549080059810077749436095678143315889826662739843649556923501682085346182286180379394184999823187735560249391436884551875346049608575705417646994545949668305619317391737577503564601076949452838827755369767035601428756441832119816956068824403562888776447675063247371355848865870265822816739126623161906769747185489676220512465558891564809186964682473272887936029796495697421455705591397445229131107945686487130914026997470392866290587500471269717843084702777822212951204546667902990315489530315890510177769420324096404839198678634867970391653627796527544077224156692561002635805236968322236053487349015362885212853475423419732237927260545996186089369548705699345041047464734601822223330002966205982576224949637935653086918717321445425986707825261794384560752027486108812714380991963053023107779113798478063321953610426920996771553492098837045118274581042482106481070857659166661878227733211927374967404373474902627314761126788870375700112419103411610768188730669198258477958622902709079636144660349192311283471441319059003517548758912977339411134102019005167473368445176717143631748474433026807943689376226422525363119200266191563968556021116796862137498923975050379434037896870927807030573285345371214789351660740271314451355841196093934182780848363491673061352721444041892483785687048359033301733392207836321721741487790300013771400345152148875828599725948481830918248710326173076779372979880000910746371131357759498650975051866823414941751525644507518827573561935673518897937929388964103810668330734376094057402753830820574311487828393861375573319677315023513844890026855833122247570139040700301435361246982196474080879912455321440343800108364221370319550006544646111832783092450411648490625492408062971485818254223215985732839611365482168532183443088958395118388791919430693776859145503681380656097161915525486341577760039460936451997483974516617127542884899865454845422166127382246104400688675362413196858887177589620011428999546895629513404576898254728796295898258321748156880355485892387231866875414424775982421380034161300698621419130552337254612920359905968362947416742915616040530136825663591476360982682378471916484958527935033811404359124184347690740805786257025617218903795636730455539081018339132802011830781554882689186086680300650364525737219644689005567633208211432792123516058336304614349786187336464964143909807580875264331816968798708460766521470206710641419958159517106840812095123419639271446787308877765351841732024676619729451343842990878814340867898398260904982011054680037777551630381722077339717946243545996947119546217499200481922475281505086331327636685823313943656975226827845770829287992859177418086953449853163054627676610821950255173237693327930406081122062659564671596623795168818622480575917346113997525706606828160904073453428194424077114771866716223466621025347905287078989595405505392956598424334486977630864943528353041105590789920796785989127320127724686810539248390587880809269530909143994908545170190695768069478133438880692864430058434950213746721660159464914195964812497253974169530180695678277832718325471568380689095250895085164359295002528792958440776737636153713980327118054387340121747677500845550634834664266671141442210218291823456927862674233976559273679155921762860097101491635651799666747147194774760743499455123528523846243188188277286980541694680688250182917370084602030128441074049685763584148632900113262210360689826337746280550750332215584043007619591334307311084421591033677578739737259624066311246780309247271113317602979828945233184795277033983708676952137761285365897182675735590266501371193938244614795811300907719206188958749979546883267855191620138256235000000753190065135821890400033112887264534960354174536308729775890014174818518822025272064646328786712911757012759202451840830271966293462324454235473540954739838981184193796709507344658294872620569022884057025121960631440338276496314700261255534538573737267081029793545168127838747374941535737754677709123925071072741081044148323003445556657315979498525507727269274777313775437869310792365059890577729232210710697517274994990868574993846040536114402931304773280899017207795036722111369638448881501197462031799387793584550000472498484522088425840000081302348873897990693031804588658598602406196210299702602492101561033965661414843462448042280209151922344010799857938759643260133408914886377395679610911443810264478613885236051475572910402531762396682529731190964171620253029926403286364197969388911421179798143692859176397539213906090605847273305232563252196729882933105265177896129020883075846729512552076259037834021334377520460381920750289268418435979183161277829988509000545976652225994856690223485299770231241354551570170918278151628278686860187758526482102381024374854824805754368671287250016142559191090263090704451898300926862583790988173761075495166687597328904791284967538362298975152316784919465003038602869303987327567459781038976042938336410732363385718963331824541419890802552087291793767442658513979679124166726671595753634046930782591350552186395300870712228411050010224220134267846004085528950024876284870782381085283213315375486636908577267347714249193133984719163647081972499992045180284830720779801668884382303099172044768589013925093112959772048616541786268566534213326041704985522402209202280848447691071114461960121207600294551867683164804416281575493400118746717416908729409174375463881477462213929811890025576483806358429019887204458409280434582545066416241072156385645912555537965665091073777410487422837524234444591931527997587496557354661016310991028240150846106435463902335194006674863899035858218090146080239216932629234717287528473773325570572657977414310435431919639765242070656453987415264029617823434039490541089032208398659831389286684349090223727801774634665916630924094178614233946926422998674732722966591328566726161692162857032757784907162133534095626722844625325687757911799201059464182926394680461586027421682379970890619366777390244673909258455142268929891525823329025894275920597267178039576547008774461820093361906416515237512384154795151058697819878532581738633533232477966398637727676411045872035770701073469803966421237197196875617657433568432953515312021737551811313255140485742757334058977637265598507011521020633716870112745762573056004603756883342735491967003611409700529195201282322812406668216786212600585377130953234782284003600840720494745290951421627100311933157545193483280659403606444015959620346132453296587248015485143318807094504437199593233235723558910113133167040034010485775036292027472837864227144962519418837893848261355097961683245329275187657869731057567815677784757718896132162474772465233736431811894875875424820217803065264484282417962650961843144764909674063780356601315302170506106372480498701549543305167584960975340048271176185514308321273456971405775628900481126889881023581440157881018465720398756480516279361328111142099182345965280094670618644641880065447818883585987475334676834997049563937517421447655996668012500265593650300746109428601228191143278972261207693659880702548425843137693419383151056611113310573940003820251887705742707203531097493819479562439778207882907551652175230621907309063672644234197431294382685938454430200033762594308672647424215945399409965429822553186622196577816414847813014094377123900057177435615221969058268239312664787654698823653290148336461386550897459583718344061866414414925226545107857606634343197448012505498651429856635615234880834377471953516825091202134770069529840661569180961178506061091025149699723173567367856239947144959565568335455398865300488540128519067017874558973121813203891204602095621554610023233549991773484768251851077164870257652210848339473776583667591268048519594610293702615230582571558597691826018174306052264179253942626961524628090858761344159459127072292917222437635868205216712041892958119646072438389495720992668434020976823097590447232827321966306389508302298814745958756906004875171667291725840435141147808048884482428042451504543677168948459544344914066081156632052267631760486953304636810979160663541694887780035631220897079224834499728603175055823303478232502063225740875586781013429101904332932369139061815602165637162010723313581576543810893784098094063191674428295554548748146305672150273978259597339178840043082718421240998772417552623221562048955995213783038817707573495018950129997513958100366997087503309025623812651713344332449157586572739785636089422171998321088058211584676633713476867131725620071046040166123391407006991032585438909920788017974595449274612184049985797653951852111257791316925837994241866689550213530123828179607447893301585756498356276128330439225094797683768772570139133162287730841676509721418830580573825936231649077963766162030785157642489879148012817060479804357799900142974998702721127531629597161071418819501876053114081008936010905929761435045386278177912099606221533904516929147988308328078577770505580759027166463032303736546025561480173834717471041270421921671478507993663938562236152823489480599017379422137313161989086068833646684376116690223012221796004530398053304291263981800709021069079662510668074904494244635842567274580860485055859073035773847144395176816365768875934193870062775802970120780260664816887531564541070617169486539076206797731885625781115922363845245335892779844757929561366463818297312827394415574538663223233463607332521264482027079234777762893243884288895346720444785929437917413057711185943677360558461109729641055896514006989583708495881753340528565560588046895734323133882052141627965715182666491659771346473775080111575035948169834076808502568849135383906698400936042556279379536178099333942841241440279358053769784266194148149235511912097851620792282900052841110689993760096507743390616880148293999475778072391716683533529138406417780105143113039795757266034389776721289001586691197816332717485201819602450367775815970402436323446455841718805064923841752172629331951614638434068738605053222822139807363992305679762621937328765608274001390939219861793042366381799275481031878267838600761989046132302921164554221908261258129266917142293695747432219397246978476550230181396649744162064129924997973722978491005293365484673721095709918470911894919125754182464505381298045291447456024836759379327969173594325124247413077796916648586208555152675329707963329423410373274646268717262503567222213571555865007858975659200844609809341996731989758227622704457658882731008847052592015556747764048220221957567682210886063942022419036721802333696806164531442809053275079367342390672519412801325239999756335373998285300725232945796157746704982597954527142844248533767965118362307161678010018232989595857634727043465753797779178618227835569657163262632016380622464764050565129149225897950460454614316590295156381801100654604783253446943149425285571589791803246646105517492097409174662860180107778112301293819999456947783304033775615488392979123309025598782602820483983560398876020928109872909313753410965322716344640253795375122088493081213942352120002185605825905377029906237269611784790328894261944661888018487470716678902131318423289693024028765544874599061569158057169681452161352638230999152810340680707816392079510749190875584408360439786053863038846439356647427317497693666687676047746620988953975580327330638151139377123321004296612956127286792759637825762273981507247407713965562678668040766249347359796738803891269064803047637925073375069853244223269638378517668155065528163291503509944429276666843600179039729474969267707559004587313782293979772861683825109163323763720961167378361254500208155228755797198485406072548573733792359531672015529111021027140103061771462616060696792930301486052002883647319614528972428038882707524475786683480634747983525311875198977167227860702559062530378742169631796717937653076058686918744274256925892598017431002657420839017827455035555574045821631504484792817403141305685901160338465446287459086947082358451162519605048013108298845603152112887452076749042597588208677075968620381509221021806816394987843284221047544593176816990816531439831199830256779187018474589668053697679438491580681477318779754002713306515644351019307097055110939548022972549979756002295222518415511404877671389566805061196476456633033291477738175179765213710678518365767347904102976561211454113649012648622880879612031297156296531317017273508066237889857504287700730877064785084966468172280752548578532358131095972280145742518359460797117516362629591346506657224681060516485142837431682054008207205380844941009789548325361553869007109078745795873615327769287890338765726224820566608750816371022664050105496328153285336016628785373181155156317823945104198850271706313929197042503030061142557063525583738255251037404766253510934889518063945951593097261788255227564042035511985019672104710165113473359577016952788454910727928734940844161633022049413111471124157077764008890871937803170984884852954935421080175991803555127237477903312227145119359147755898953084571983735828828012824529545232526546510402075877349217484796540557612250641282228272674373293875785732661063805199712875086160077323080881423898326361248397148165344316614103372104074857667245571314120642311092065948973279999395004336306853371846233402906907284574993202229521478531010142118556854087916036034055056262829471471821042886495126019599787939340727344499927087024225729085498418296451702079049570251693889708879844146284407956704921693119564854245042947628354771312277518282013678199405909749025550096430901235707022074336370226826860062564992822410988472120989620479408614666312761818608746768226072952678497533416560462681288553861695610337330765755269800913903909648136231762483614955926645761451021419118199874492421950617914902718917004773444357480387688795456642932558388973104389718017769025441802848662072613816262996945491262836835594115665821062170364476155661083534151990782719354238292352551893522080297105971934439921654286138265530233423550060499322736774243216257213100871681201934532415825737563302643176997727923647423127935247149097561900612524235255760782259088758357339763847064545577326551091869457129222256981592608056777849584508258965558510984250748095005153134834862016574697883273890889722343829535507521546844552966834520742925680876951455985734782385875502554985162667552701402209927292010892517899610639510195379852210390584817478225624332862579396257673311346228037407894884029872468152728313910254082844073045261426632805522399298721159274946291908784050171974043843821283573521853428331430206588436716947807572426459570141804117099278863404304727033244344846579237921738139607259324412545888810194121314796364534607937443093014418313602411729227921610121736285858007841468764224918309174235275900714595301489726759066702706258721826119635896397565681516119323465661704721278139378295665416957906020871089612842513804120145591073173447359609483736453352675173891424443937661394576101485805158836695370359489487366184924182230152527561614469174827320069585535356605588983063445876259976737446806104865884256341839004382429207085182204104284557288567305697872076815123064750038802728552782959339302839941766155862459623011434412922067207394334987727745136771262294684743108051937471178216920166481252793130524060742649709009049912803199477913362509558787977776991979249879060969125665782980799259358435513558621000455921815987217904646392546683346876966272349944400330532350058621317880440427945387574284845220005618697769221350366298388642062360396688289812884497553036297382331838208315972911167627861128994639181233167061817238372116985302289102898871129226073338831210885073282286456452782674862589055750805214163919497409475102312708186475713135358906625306342843980087067869500768233113142537928337572235021191349248914142771812901634533277356834956613533380558595563714191307963227894086877532718699103735599522681749953048617175045907380083260053608163538375374178965946999255308657860318877089880760649718617489738587341332506720216219462506735199949073730311885041254998234922459867363129426128255460664455116220047427351956970433278581368560630134156602673013014777000399037003369346523257891688627842443445810742420398373950605304322458985198725506843103498422035824536920565805272276967725485797928901038010105916368810790963739279999001655403394083100600656491038783420345438652331861204602487981978385333161716904193048514412520907753853934597418136988831275779554319287851131432906755701207018429699549782971967414898717102890525146737375322801339902762027347468592831501204880087707422538985831808455432769909685697308323996866116914150151582020071536146685582936382615536587429143954631897650978835070635138258140072011654930401700091454746982038739292135680784263694811249366593897529706828063863599749926389735989650658427373625675384662162108600844676140139559118320520248446260964699184053161406911924504102737188632360696294429272713687751116870611861285869793592341996186213909700265614441976285358933193862010360087007984423333697146301262424829294054089422601909021400346319919511830985713192311986588566297427118351630628161418992495017881271000976082634077990506057934008848426261096030853681263147013780747481420852169559906763714784691088661482494575040404301268368326045820424523582014896322154202077795709017252974467396865671855568749120577740150084528625617106564187022525113014064503531132249264400889538866246640774570577393705560533720065475367411378371196490313731548525087350787059331309707105892362018000617576581487862449449527245971050768990845603142375154232440795804968341615404901955425138881509218857757101413699366655468817631877565779835185737434772916216298961163730171685977178638953097157666969587252113287691045577001393721405158069595528254588613105544996255447057759675875917265916188755929250964140248339563738851882696130591750487380197695828622197293627795160163707600380354643669496918107405296899195512221259026192341733345590897152380166372419447082917823295722713454337708028665241302904406816883512984200269898966379726529669111606182346704729736749793979543500234955853521596395924110336576893153392364209880118990060829902949074159632357877126050677317051430967832742674386740768811797744747634563530514591524844469795678396128388060438890876948317986991653619585426493814845705700466911346994664743681852963917935907579938291751926247570219548484522915181954074117478135514732293399780792001655759155012971667110987097134563224533120489353663126246560339211195095163308067094766374710820748339257155002850522831717573548574388161039721214389285287544533003245272412464198105823111503626209580205846385138175315446208641761364383693790164090384937887966021195388014074286992533463494838679984251639948735504395481618603181683167280545328363022359247219841344794697502123618377729453747399889574536979707753543283267991069071531972290292717927825443241494717145101289069172628458479910618486566172093531960857408256804166343872968280429974744513126279292774734317376706727435706625074314279587164811759416076030108831792109474923742908746093818960949825063142502890911304725663941841549735263325933679673239709293702748020533334403993379473886546376915728889028009227835047646328472115423843726008017295437803688415921945844898589457696567911015278244387702328118929699462650734982481390141227915830815015665758937711257460850372075238094376880143482125653895323911052075521381767130185314605250616787830394123968501952483469308248095381986957752502129446236125946390392064094520883423912001405667392273547732310635224728278996035158275310352620958745806435410714093728971025320191836000811899861058130065780759258413315186761013618818031440433188078671024368524069694494655961772657671892056035514744791921306701329777505828960162824342484262411560448557590674803966206255685784361053576041816807075497799222404586552078972717111896307783463024276489218989916430357288804759297727754464095331899618930516653442231826642710651806469224538200306465205864435068610288371272978224815209229024918371776135883333954694778310854585221184316724401115417036747948039335857359518742057823355007874674437681576866970008041374000943065050645021975596920737478942419589193403400206211252760854649007498120377432303948589863451702387033775338587550958036417971361576538495870315919609613461673481073939515374698711556634662684197764245148971963703845045080282659686844227420476008138691701166584758956791798200454509927214964638041384235552305518710337406519964959006282461649787330461559298389093698352907094462343413144600233690942851224466296476283012036717012750929808709832059460659162692919944194979198176279001679828144608661345647455276845040508162230115666114664488120496189359043363161320297320152556733670702023964454872247651690340258037855934688375791379772365528099648900907774904510258472384342745983608664002586619184886863126632902809718140085831124725541433693106032763211249258944899692892685775916513235008208526851348086145270300984963698004844021838708875702315823190972265219474325018656026537971137334746371580357643817219569170538818011232380189774649444814293818695396746591821480641502492850110745275033835153660960401958039815127173432417576440034234453616302813460170444707147591916969433051812897442178396247882524871574919731419052165881042377742562217305173425913296414591832029210746779310488055831621744084891527938131885842317845947121963934647445852131689225266829510631773468606619856043932725695317655379260704509730310713536448869369685554435084726255647690344655259016873420987142727678673882620389131574256189758272257331665562254676869851085578932682115041486138243824916537926130953537540078828427227624095592179291813042544422799834893620402778055616909042730221423350672913102525971556221355115459404584053854298601053474064557165892607311939196952246521287618913310385498175652964455337673259252307757251696074903925312756843309713291725842640597488695897922347682550640498105543110749698118577924403944350363821828175700173699411021255833969161916786396743521884444929894412084037259000522190451360388351459401349507710137986987606680093796796523256047009555598658923772038879165765649283597486272044960978725718518629372580308224436813381652666851955522191880609156713556708742861088411170303841637589628971552412381558755356000596381007274723890726333461338455465902710666203543246348009572085307446040218030553822559912639921452208351322069317811495883121817769269127566694817719734045373678536152678232790454339494797474711681174420703437746953376809063677479639804523910793062710189936221419705261624964258299961649282526594441716542140228767687117905955193216738313340665354584438116214454449863393677640480089306836918017608996872491920254888679208572000344471234636162861205772370197754459024667341602415578050932778635558474500939893948429641675130337137158078329021884764594212579038156532774680997114559800511279002412808944246593972770372479928332514641364243207303369171312809033666128211388358568686586600446871874380665478726255412110664285669782261439247147196704337882931317463495258696483410305197827646218463497064267358815306793826294966125224196489980174819756174796801996028064425951456972934496824620727417098283029909474360586249956792404169564122542604552643760786265314988630920574129744865115886433886713962650487852773082914991685847179165396369716458498054007985215524110389642091963998496079751642075789599680678211158505278350623862905875012664535257793468671759918481047653548749983789375829233437951377939455535571306877642232826708206590072113929237842405858213139233064264199773011130816785089677331074009382267329186812153012172281539267072190148884772957750706548913958492118988046096335776167414035916330683179891586383283497028193505862763771940287110298234416062743658674289390043208446682392267726141212107180772628357801129628352617103185160607038890625694435607055557675265637368899121855945875260730192730581737275885474260064315911149138473312268791148006138020358514109129240148979519903372713388244789466792119998614109807842551670299064235606719977922987410584574853029892551968719817613227823159276492841648507178813783779821583154664260463034277746821394794388198866238409222585572759722536557100901602442931950726505870247721444360227047162002931366275971933809834586628104963647313025128242996473749706289213995105089262727486605693640018037822464233556676522873663347713409846670435383397770915793900153977461899248856268621768467946608712411856591266039941414475057873043091770864244838918465104648386504290925942420794060787125449567604961458550822996409285134352550361796186853033725826432320281526921038890022017601185360889967968362621164102728890723046799782235775145409502779381118650540423022842505253700091040562982001205292714437670778220046569468010015734436055954820961283029898109541444139782582228549450547246574495458842105841399503573522201022203391357990572654811802961877651476017680765772419589513487631122099687078824409518528797494316256072494830276951392966090183435668817232413538410164009898993525837155909694042548341425966746380907895506515899694872474432077465788859565988073449725102505597932194526002788443468872374045141117713715879812335827198983294879461143622834986736922873095765484488613379573628264243829012262293997444678691626965002629019669256471253901155465436407993289630548131685737992876215028834013237334133971638282702653404437201926515763598620057136217869297334398340809322088891614558329452938165432510764524589077342172555219631545648443778187267787427982164448793324936408155157882958697197067857246046285216059836392020648302351062151329790545306025420233806522258598030035403467775785007085413794258776053726757074994946388396726867667935615080036780694282727584869304139254754781113241081563182712884387440114893982913844167370225821646058283806920495853268547157935547744078089122273719964556647346290309300493634976169509147416568350409359852429799754592944579619076815383107950527015593778014940173978343510900044161817120203063921965111742027564113657486761442056309900768937284801174894479261358264668291674155792608738748727297223056184123829671643715773618730535165020538841485772021847799776199515141609203375847132386039111497673726639263264167856233359823093246287480258455661868858383730175606814917884735349422120314442039341011282169971413569270935125301841464100730843279173228166528104595587992269713848029722862458778368710593746301625385822271565561670596016367011613899455033047434126275678393978355688713081914348393921704490426912232599645040300366957926099331680797777674350388400336883668849654491652960818691841872966620643769771066374818740874631302890491247121375228464202685273630042426572760201971977710238216705772141625704883476655538389777818833651652128673855285052607016688413923699964582759484030415594529478605756077241647113910380257808562084635942482690914836545542150511636307275268871175149062264067623989880312934152848401407575761262794344998922132111883349439645485915837098816378715002941940883119847008589922802282173787106244343332162830461833688941845214870907008709311225596397428344642427531877334664460000044686753607830590529668686019337475329092347449457273751833514218794292518898191545070054182491087336513682472519826894313229083121048211758204228400531907229590256798308909677810646564552650085173113510180343121989785268178068680833364698712267457466287146348942058123488800521300987459030995695311803162839226799446544424187595580944072368454768915154297176891200852290281995967151325160387953390065786140013075555929753227699529062002118140615235644346214809602777344505417619764695081895202190466447045407454344640609325121007909938332421466601188511847017478319537120972363020564748107849938748422469109021383597553851344962498395732325844040738574661734645757602773579791475484334041110171969947908210783417106121492545003951775158292718630103364303646031590748042072539542619879091008179560634067907499650314883800832090896020293410079466581173438983906639000776615606954706267821883256335627481785369678744108629208075244020189778432849703530613710905947267399013373651283856159333493070106758075027390729898450123493910440994129770253348196149872073273615753236147456220496002959404972426892366703721948557325069558457492449997373999519680735026027245979319090752979143920959196839214274258894822931790580183360399173909215317119564463896006006295776023599445580641800623873517910087068874449481219968875145487452760791179304417071241782329785286898203901403372714913782254737252828589174329386292504148099983408696270813116011845585427031867678815944799356533807731174950084542663423017892400393576460968246591998268328103434985537545479701333647025613812862367145030090155296950543985701226060897085092821312155109953495902899718192748705133132416398720176606849201974754528059906597311645253518802416025867413944743496437950676287038493438300877399039763742181223566743103847705060431000801427788217607142767058266175022732723413510129090573342061579285654636117062459977441306285140444133194688867243073232116599506724993918267377609354046915899075480942562776096033514658403145706055216821330016374886754915315080599619115490857005268452007156615818623545287092257595966275983021459174531147392079289759133526443348198644313128787534397251918935645237500562362456863598530009991196258524248500042367786288190198890488004195579345144929668061808156353710092333488723230130291294545133371947254347450733810151306747438996700950687316065527352263351985814030533453332467388347255452202128645781657763375644523621233233704527079727298911648495803907366067478526211011378778953523390070415135542413857739592591063954740605602134717096437421875156246354759504454572448053184039806490094164972105511047832102279674199937630672345247539987309057413310965168651872918274901112955766358966307012232503462764702080933290697116185207742331601102814972064693866797484099781871886109540158465846129168987794580023616863451285834994537066356019407159618311576655956311371072141438363804659361018169989363387111697981948584707329307716695901487177354874856963213447435290658586255481688346739266979262277087491748025937946807441052509708245316931271574074376422816189680857989900003979725157895386162163212357834174321188957179261076531529190616832735486342860664056926541824149672090220687138692683669146440856625089503483822703954246128548247394759052997067411476897971189797310794650211306673471857181817163096989100475578626811141097129687360966056757514801941056655640306561593596012895046743794059849685658182785055864562012718998810318690006725402110637779970442868749708674628164016155610515711229791701819502174716209491693995822035060943691180243220844369188741523053299883641382955814366835812452136732288672887291394185036690468959868509413654594100158737351588171597535929874120511999239077676164802200682974895368882261121219794495840546615827806435132671277182496605746135296760615745626170907460189472169234016285045062092044505397589888755645575754180353532790958073858608308803218421614129300976895552266616723974563237347656146866158287257399872532824012784547778666356585839360075127025765463868135321387244611176111511660478454356695026214322173234541301874397573132834141597010364750185468878797431094395522327045477647014162473095443118616040591427265256693149223206750785344149302778524183808821853779570593137264752819524730895601184163484002693802395695633026544859849975509415085959750226076743005025134248726883937632013474284392873592785598793564535463764970683902756687544078902003059391844231286297543192404615744641693024737065458314660167648088311743675541743645887365746393131531850826862218231271818977911784430916658309216933147086454649383176458271137465619083173466368339518947020149158840030867688712095937974405701492495754579715244398368375401696030574226482414426945899059120223483140321472476230505395276924004780074645612891942841595400598156072694885730354793924654087764095988954047199848648696374109001116316546158843554833459908754624680942426436490352906529796475883016274166389492088091195319673730045034820764115420148213052377044082228570194305882992411587612760224409693201318800242814769978200534840343137193754499536921328340263187638450630545011404191211773525606505842638579482934967158041060001149472952128989543199834128432491230866483738989727997697724105136289280406699594915962121214421819780456042347360898790010463376147501019559526650734123598569416243047881113673869867075780799051608390481010031449240311470068663421009012335579244736563163856791576041326026868388307008657604851021810466949267192002673018837360933904020249006825679772622527282750779072017989206043128784615886325790145288914319728573647255499241660300105024956754119891331253305374893521433585728182516434545208887452275217976745331175036710957358599554837817601648511149433612057814488086183712773302164097864129112317597776539286188764896243795787910147712242504861767515507450598242771328291798828478798941687123123151346723575045430536385011614695602956588944489535172483709386400518947803888827113138385802212433248160972020506292343270094778093482999598495184085055855370366180911358278033405159279519613793258311653077941844002137207837199801952134634707137762226922595694122695811866978179853639661306733991690103982955428669099703635086447602426151658907646830316172829129893919709408032958512074538543763486459204899102914610561963022357326969775266294693532225147631013324536995342719380288442287157634154340475780264588243690155194927110793011670212029263249092455347234033501850665870979383741715690442311915219159135738479246546051606176281937580975553940744700223810698154557324690631270246162192658577354113907100848019342153337845191807633250509710233699199748196523486073326946558383057304217470527339127551977853369122459515094619910299964894709490363513649999223604303669956312480391814729509768745211284350901920787104326770471368476843902045503577805402924355407220290546457087747147279864140800341585293036836942344665953107435837961926873760741732993434894265467324234749516630092383619782321844151103868067505343334290491597294487805160358247391275811672218503017675884237923172105127541658028684682117284367534779477251605890880000685356757367325858741805196782099731868691177515135981423374553534692904126452900597176730505845673920021230274850678049246625343940359562100785827248673897087385617642450644115069428773960340805939697226216819760498993085408413987836967716670454254854186563950787292613801044107031661135731120170741624523723178492120428753921705189450485291380905003939905487735077478933619836097841457027986208505076583986691767461761233157381181693592850106418614501550305917694230529050291198558420442647302168512385294400404782818081623873177709151568571187407259866744095384109097017978936851452572117389205964474130540141223028665977096511044835316396315451846603759574922581168101727420721772700198143897153342278810160774525700264509611696746186922331457725334280587332362216163075746247852972233600298288645602564438588744315710042918746555378366329925004561580454205772752291327224482452718048927871652223075008462131962482572588723950080510785922474335232978999523081382567991879948204753768458717994629975613046252972505543877336787305857450682297333685646913344397841165744707809533735354580738168535126672616557213837062359493571625628405022438309787829920886205168169221141028018240816734434754979404318914622087613684321298294675027536169222751478688502482759643165254582974033648250486400216382706560361844310683019268410977217590375552258757475007755200560619094012872719765145762075910562534549117093242079863334888407269289001090317551333482724348353796864721558677809059367871630569722381013569695479695909464151883735070165279523285481401294028240082749415695641689042474272456591861601175303053635472062140138423405124119629698964457073366365629190488609499338569764368499141155452776185636676830884492388438723796754477937273224894245644085667969563320458452786834261974603221784900918493919054242407935808098772490695454672667734834596210043109053302110490222194075282105338231403521860046480390497602845104239575088312653304919552092110515443451017259882034008578208314507649798298168022817303980557207061531067414804271546807254946776132365285348653104442134289708831978500069789182950264592479210773590845284206183000066089939688814561285371511910278229466843259628602965762937087885559199709499093548979602578931668068205182636504889060410812637940910401934900131593439911890713791098874742282978160930630193964246696836835262562735768597279213685757013501058553378043832890724896438162642855113502388988363196247892764663478621463562701149152879428176193965791076096425757984407664292525849851954798797290033258759051082782580542725225344201337093274138626917893465441115790629218261618950328354445836852384819518654043927325979497206207081183164982766520595393389985422453552077476337806169875710863914599608465545987576003288058903602836203262200312026171963968092966891410682142152091934062931020953863050691050597988868729704443326833051087273734852675408191736437579773305233428051758627220143305647027003966618117812810317693583788797132183134993252031104853662020531682771547044857743597495754896380902126186885494113410591502948607326060016243401752268384058833610820114830579367649616797379048927762835730436363176612681365476860101315372055649059252546958385079182347342088839342305386014635499687245633434524865033775092667688574046326064255635061677558711887086538128150699538622491304083217990399878776501744381778540051489846362233704593024691872768630898418577728714374932019545550863407613011696713973799905376663094346026298372426907800478457978735340111608652453742453503407133382039226511822098494326099239390546335732422335371841253686608264922781922437602169123873771710060230942368023501877417472534614345096563516929356089201853385269100723645998255073653745900840055002649288436178764951711634371502074224665983053609084853934818980363905333622743727255242242663641500612659790958309577192480211606063803064646123714886385304050800911765023827509591081846646778335401902053832064055005927600605161908965222201704428632548744102151713589961226714988640713964464668910153365684356697493431007577945239536018239767824199568172824270969037344267500944476009501217495762097765263505095918588293847801890770136413830915733192233229881739043853040275476959569253981855640048316871234371575591051734839639482649520483556523050891283117520063451782224552937617407073708908245882396884536002567802377030539478078390800267552597466770030871586850253587039634104527324029186168984636256496792823125837850525117972862375481816387799837651629002418731781061930825796064106496523735903860068968801636638448815019602526990958941526828070925876138003025375596786684982075081826713439928435880541468034672479026872826599577613388979421212649886555008913485216732454756958580700187066265936643779473052682533772178988051003907069353870437558438741239670718617511786639485644239486232958683582497057206699386913478232480723458801978880265756314281961652390281908906546403101570764292819468933006183371227476585134434796713685755775987737620448582656924493525493758020678388754636582619531105247214121054700823200240484852704023537469394159988589155476034413106155016236164825997681931975012984850995085484224984090117009510979612894646838247400150527494766312292723742787180817479120176366114672966934123183957930658866080049184848954166784348746628554326121297647361602200204659517091052564799161219063661566645294068300234010321044906908494054048995977965163719716197699671704162137042016156209972056505882146345103798268178475828693823889715622521042562437432937750144627787441325858589320912310191627739977355614638864981026014987236434188404552815852109712195034459155657031797724056577381665101924600618412919472314746471609540848669043420576537061985905515149910259681832226636568997426240569681847065054585860580168708689612820117429809865161012058668187911204639511653401084317767429696960735039986965494677589284074023713404278093183364532055409643631273925652381576284846760946092342071094281318139394320983458954630516256010319880086792506700789344437223293928692181460159765025703368798997904914723393065255868389767377127359416369240893040817777753854960296245872839499208975485364306236484596751867582366643305331165321914838542029098138335476906045980131178566327314455302508929928712292880021437671139242086383291454086057356797022262600251911613359147974394937112643327771144460803256990574557449633148572503443417737317131728020531085833458467893403291001900995500886153787482333008301518995878464924863297164712890724503513164098355848682691347270513719554790273071807885594786522241419454229532418765687854273941757881067953207332890260124277197906140895716697540432686273307635101333403810356229623930213677519396982512027934938657430130056408200483215541335897008337140286086953304977097621316287856850729859432290178821551581355816073269581640755415266329384865266581059788107171210104855243076313636558028374549044580807920739130870091254560463428620144612798724003922246747183425287393882624252551392652734959151289452853466687851124603027393930291341238272936978926547104528460071609544070118151860346761376482690100515836176710928648445079997607708953603188036690683476304391647957574770201875858248897629275643915657828076033193816886359873675727392452756377364268599417719226160781151062515681089607500552122992055875439618840794410717406747442406339930904280664939210082537040273074154864179670207968526147235313206919720214289378323419110577571872916673707065257314567920801798921622023481123264601174008318159858113550902762956830650512955674719530383164527237033973953133706959052250949333293143640305491528829835386765623328379533579777717928475862426385469753846399384644922386264163361723101478938913916327164236467972255782857999523393422950549843009507374291682913188811686573858419645204725598495811008236529822403157326781607904475116122376527041506796946540070628338554587557459962598349863491885285119476744149937657694699177282229560011268767254818997279306324036226450489896075875098657353659556773530276169439071451215462708369554850851737303100048777094524971334767816752756229007392371510018113695230627749727614363963981180671796999227695060768744282299826404748340928814673147552590650317337357769339415748584415304058436758123432252205401241699183281015290147459347725593639552446034303359319958394697224518618572545321725470847863507431043071477830764223107793429315315188390992705476302815424177951834457677634236773905713174348306632889400093699321502073629070090224495087990209189139508423294594649980793712314597949080937606470283832541728402297159263675894993807805511906598695780680923626686695179320205721294906463398709377267630929097370537478897426396448722810590888759569287529233098867187525537836146122780776524199908305279850680379383286939581951726813032743589027415389601228267792896707020398139338799678518969887455836859048369766831098379097317080024962981538303881475565057539557090522172439012039244387512583232868324442255565255746057015682741736158809776856947076747384743165459638152347220257550385613363326379653252808172332188943640296497400832625017243957652684968282298733623353598986405223953803495421011760143108139264684828141571671344737629974212351923329265653594877326935316822754196444800481486108791751054353951036034912989894863935452134151883743191631300772002579561663038276346447091194074894928002064121602576607239364158341261163713123848182539945306837704089919505001853506407763982381572325097252494002316333794377416244905653283078750896461287897555595501846480187212185073702372045398259080906394488347288201286512978439601546020810859928324413583262261671695961788909742745037202255600558639176784719974902881662106485419231368044231188456766664332028837141347252684486806286994828706761351349595572890466494159728975074784959115795194563348489901869574555965761630988453246249480235366154784580629597511132678972449953323321176852388777017548705835981034068805016109407158518950433168172589512318694740609425412491343009293425168758864576652058479584240380182680140797049523425662286253407965185744738173557868789845066505895873121248500370775287693824336663953318110491073262500822538761831644732420945371771314409659154497222900722530175312351755284472430501734127166830801119383353319766923893166291368027195427010553499362775547865729032693610690620500194383033303071242719950950630222513615703135516137902101791686205128298754401478135163165993671980624554774028937386258783002088895855904626243416391133714035133734122037978688908226764533127137980297012835825939339638654456760894039697315142809826752083548114409361434904074532835295640310898628006736786811149656700359980504306370981846057355071054345523060835393881221999274091802350737508518474515096814583540082242010641620079139928738746227451399024657115762886947039578978609106226026933593819581753256439461034903480219813898914163592816235349202863895101465716097333567823460955870352890066243896632011224289693968416547731118372257024741538155119704624034467735010315371742790587134826839559013255230279762719778157338508517450878512699619915695366479279332935011744580611017096452526725949398871446049178820292276646988486797236031935016103925988247885493764489239340590957428946513793093114803509142007147791955680707456700883350722056901139358425071577111948114034841443407791243594212916889256475367000406187102381083777188283194877559994603001571048567259704930305342330373525264650048027310952794948186499260654010193373243365189568624269753060557659379244383275631456774253691597974397762095376601817526780966898229741319261880092599120460090913965524079677124233199925270787308152218008158916607061481896113839955159730618239772958541193604292630574341166570133898007972481681729860042162855615256012643147850995002412495769567050796555097762772499797641807655831569704326084904796737771401041775899984027323595268754881901219813307778737716027544074258399377278519106719757393614981778308535369926639212075541072951584989959540462334994570687575887613928900267965151929097143063352192608215370168586850759324909902692651538277922081647417110009822890890520151484892208516908636881657010676873959019840127084779682382286257213239941221578766724878319456234402818605832539197506741114534022917256982416320926507783461303759115908028263597434069854722040053138469168729162858052179014914166990128414145148974133872504094521611640464876075591403013738612209172758532679371218006181779697639039943905027866548114116531591491967709613409962528997083900559486591881895396170731273589975705185410640321981585222707738174583472737936115389350324323254032823414589350509917682413402359855746681577761707155504666443081423199073955558755292993312540795565471673683524196280519771295072608563221933866245253277122249921386213562240587032007973261293102770370143840472055544465209419214942132881192052196870195376406982626357200044530410152750555430450979803305738448279184182415102417997533787869322109878800698367188699971490365705659254622441872228882587106266588527070647824173498641628876069010077752593854478399450961606790330036084274962839430062576046365493711342687232575173415124712899784900565710753043632472570912755893818080663102513451012312360690950589643412488620081504182313820946887441096396537570173638575190158372358899784807371934048729360585367386469341789255176914423414921920535719669515324949449563414522577134383804247404393237932251262332191651872793931386916330775574361947764902749215609684386976940357624328499234882287734817690749803485225191993653503632057260942549828908294313377872954132334827775266064891829267219103503305796912226204441049424424134671977885135370548913155594939337041580688330043537484397294092487400728169975718147407848780454890869459876007740543926594875891947182843273636745371076264800065611643810825036837359775480037354406137102702100049866298707863598646766494908927063815314077263037689479832132590080899660155115877539352201510599236529300689196942372220720713610181662745801273433696801824157699058775236387550332602925286395303669233198135117386534441957510222118254527591325261156970504785670353825653533631010321710801773074869388226842546666358454306439900295171245779728590317293738698458584220536164496041428124668529219496407208888866190776684934927052563083316305334562570102503194693708196568128671568141346865495463397621344280073677323688607051228196895097532415947518641869019840402436312517573401679310620317932825207498304905405836672053906682337049494950806330891466382724070421767969746965899569989414609161499446175467220163807164953489871007544724002484470902145096848246492841642439629583625944490873424698741295546707182316670432482817990428788704582246102087078862325243425864432988894380167696039039219793205840074514678456691753840964410948715450835077522467302190606275655324680980452777216913951728877784689804032260462651917709472453980730454057969208462196745443791386193698660355968698845193035020351538255906110161483565498389320108269677367115636956639810885654535316638981499523477493280937278504924299437066348100112517586326430225310028725518533572094522471316415817397822952233093364820244622819588064978063508735064382731070049882936829076080967458496903483057812570241378273055380026734303992529291823584611227294309477406913876291148820407277475146951757568447382893962282213086651971148088212835203707500497284371295086005414716350944080280301099307192568524171219112452918987950476458805662682162589039549597406396753248949114998290250446978773202391813931732282939965467836662865606578927776869372812393781252884664140905819038380077161535773932254379162483506603615226769222462091324625680378844979114914512519429682866566970885066007853515440477463991953730887694280743369287030612116995363692339746344752582055282346155258613747678398170982033811215980584132843366729983691177540883096727974320816741595413307270334927400039000493237954681951764954693119582782837711651616966086924459950674606083139670239456340403631780413067599164097780367358434108455065554212955430764015993930479191004964811352022456528105456575427125071688302693886434115570236381310101698975552337627474562268949549132619051216550603992515558857754950684901747767533820036525596030571103202125599559622698303240388869767612822264392349935587837642405760895837060010828926553686908209584934975929014065322626780632693197366889589334193178397873557483210761427570526764168689390898681900196741678907884923322808865459997260193705094917230281012812154162184937276707144419531289059041047364967031827434072799678451169173238409761548129556863491175123953206140049768453536185171595952895832635722194842325017050063525126438675857338413470436835062227928583771664610124549264009103320044709193580447212656797246459321320080347081025330577903829199180468865127803814824827512884317718965168888479595470267734403077830609067838263127462967795561035601974480789619803873002404499590937154589816550973463417701193887558722820420862871069435864662982559360965140972526924460307182194877401180616940369262040413534391544693555450711147750699832916738617094580965267090892361478232495154167386541098496609628569033185451932069149028251957396749357529058784593114266476163721670827919712019113002477195473621350172739840358669918948173060779082338393181277223241960083699502948391327563914620725776296018643717498469412145918898454058409630712615667882680618856170571119233477246801905353339138648181677567508994988740748605767018767462980722838313861623002418194295430052507348102546139786122384983787733996072439315471378202098405387506041586360995829471785788106493953886349110130617256180311346793633987351783418090695512448694306524187431566741224557945276254258901066718088763934490824380162165039778190792739066649431371688047195475335233422067162344982646743020022737449173857379676269207535701401394315095326825251861414721095160462377932694229299963415085025728953454840290855153920447758843657207921973232353545393750323275613593002383634549574714247230246573546854895045047045687091361212376783774981606481843784662525219384642912179441302798564631156451049628742750220014177356261348361899786462627420076209771569009214911915181182260873491181129219727162216166541143614096404650227550200784202707555974055879306374844439815839233643221786150960529632611006164418069701313781290081905799470485514305776348011134118273080734839188633234008390686133611167140970610585172779913602453878782555160368797234833903319094083441863807548430513752024502427575662505874771731892215234423815195666329989624379304968484422381361012649795468657253929962214275879380596321784000122496538514738382279015000798230778021975130427491202559168840509008557517303214283466942367037237830706652658927643130453172225837789889229970314909509308086931591311980773033144753801186650161464482592996756331085326071769673824054998422988533618326405690689749387976148734133739824328988245536780565665690674797378585709806338767605069150023236347111766283977452747757968816458313753119722704167449814097230856341110276534490034969103244107442549562983860174966370483091989742499382466725592404244652992611842544648566491741393659670607071420466825840423675300561878118998240975135220429526736396859660317963866535263592654467209388626005450365642148446131245363450128160270810511667858896240860162401306169555088647745529214507298500090970780933276668112264627850002800651196048322668554433464605746572519920488858693246115791074108788417848514241327853995190949832488746635317520511079354583304476860563681642408317747478711805511487261726523820953738183233903985088227163058187405379440480990057937944547335622085934036788626147554397071327124439452708128826613608451918120952563713510576455055344433876843416562676810880532534179001973313937395890360282113193587666649092877499510872423432489413632824184190931590782586784201846585199950276524896854678396897821100285176171082526280252086117702526806284787994653584543929665662280609116827279642165644630972436732567440806230806420750378230213520094973261333937069261045776936617805860144630076684302403528058714830008746429269406684834076024285453349597003096778300090255299650686681542226211876108205427493164902418833495221146757299595882639183727413668004448483868351375530624714318765669989673303495212451769391287435243099739604157092430032235645194230679314991311083680676769556026481213397743050812099793409591103886902610688119308685283187242853623874181352301924930624190842945798910805335877931254997407208960588746347573751939734974428853509614263883848695953620404878883371622721081185198095727381825699173463278444714830142799771922853947361857058067432125034446472275064348059922323485334154537278103970914293609811428929582389299766263161235753899181108352363501044601498916867298747211387157474417916534881900263909079867496310603546751022616549785401747457217358540694634493770088689336990520624507828680792824515738333787155672423877793832088315143424115590317422423073014035067663859654178506342232302579554166302957947530439017698264482712943158233010289429562652115470206971432795789563358443418969836321439215194823749609889319862807130085275588303405581918435808120168048146153914252783901884973791205139967850050339423943321548330230243341079315856495066578990809757945246470528699499334359467556444022833122259800401653573758411482115841391376053222560390869515903551767592565958579422546051642198090004207824437808562216745946350237615991285052242519216602945527367720602139442866496784873531663433540437156190039067028991506304482106926904238789615156666987258048884920375507495185164523229466566694074498476259056944236756215056030145389701032678379532560906257377151811844942383056444695074409520923298723425193342738665304140322831339139391689395392637167389508621023714339463670312541016066516448585322254115518558172276153225729096511690648409527431496494069958011513192342256306315186991396209952754631920616514221918315681313618592570233189865085007811180761169020227856386067008796475843768434806999895546334277932325431802210274511102126904438260409946763447719696569175649990361287457297164151761083998821575301210384902850755967982060625334222697610419730199011049741662444533719442227344671934032852863269800592278015513671974438137874546041302239693321196632849140463921592411791691540411468214707455133168651431288825468354160849012508042811204055772254880799779371252274252477488761020283544765858529507071100340643288637755272819860677113708564994477046098882335164969855623039739459716409354340619126147147714190196293216379099657767512238725523115745453175720693350879205388454817855725739078272489276432335038753514162608064350967797850571383576087271723205022026573037668106187988314620453207267710511438870663418846057600543428973461836888711112739071019160967468677689860731213874557533951539125763593002439656157210858320816578065541112036214979288316466480337415783590134687416954825677117234398940990225925020303280763238541373213953378684729372823112573269636549238520963878559730091994687053528445570051870313734066912233673656900521315391942651861747823558210059389422890672511453912240515124488909201399978618268463775649496871214676549225274169322937287521099544287405449420449577479501660132678017361778981934626844772447508439223812339342464539318275827686294316414804215102187519469479431031324857165276476659986462991126575956467968863911168628785200371399237220487696601907709741152423517408717405050332460212876888984384955314876883216392068559842132802717420842523209761846687656063630519705546641956171954563771295927119099913052776140010489049276791786253694800746323588569917042264992597480424167271411849513519870933791495347230502074472956861654039058935137470155724391830968042292982400555878874752004082549494879278634873067928969830112168737692503994397860627342087212403890001492709806940112833659023129802036283852874370623302591795140236919973460439275369028810761081272813565394848996599813608422592966906348333925036375652377877652646618581492343805743765122935066865289334410414764563733550811928758209866936437668084230191181854621075820912617978159495006632722559577933557282336547922019902489351728459908633393170018022451467303149153596959990722886660112254654126177901339759116046020916637002438856165493066920263561520156454603752862559514892604593048586923593920542292008576686154714087620998535472458435006974225300226543310877783522306848341283367269623389874638969013595590584455423926102940821323015384578332399749802415080178032731799845842628624412029317816168240368287411122677191469127739114243605173003866884659990479275438453046836642909691114522873654712558343332203998913055391572393713351105071765286271172170608910208872267390734370029246182306481126357442686992330331569600481692787872104137439696937249184206033218440915802391653218172827686931931253349356110406007421691262017125641006554477909960276923508731244172313790889650628811254573737771626125582040919198202080040571953174756078884928084674943728115070922185286024040744726994091785759208166914108661198086802948794466006142895872860348174677247321986585109404731167885219432315611624916553823953618758407810993342218467441110786770562751117025175367688707929517045322072777850870394238716550707499369954349016736461154988085203235924788589871697963368634166340504265498076610353374623679134384524365810186651517031660162656044392818578883569732767357087380123462133229839290991756381186738430340791026485860545798649549651420725315966379055198766724882170224961188833825684039418144100215067883901112349870746861815360230024393855744236960934420800309282664931582189136513258205074156588441071912701530519212542296584524394933808459336357912748127554584563496149871134024755192798821031772022487190874985375186270516931610661174167738095487743734653866169825866488929542280703800246214000170010689908410901498945471328560884740808599150802067982127180257518369105302292432979007306292930284261655623175160260312062903133927070703434655769198421886597394240218865616499166257587937466447647161194349387063067078649036208471608050607770568909361464371291319010549067386405884329127433162251585394860193605842221868883864429220075024362207849466235908557867132318890257186583431670528346958279271180539751505037063031625630218507434811411654758260798210352987670816637099036925205760732381003712568886738507102776811594423984474771089232322392606067595793683005606519975079505973974341323703960591777761778662634353181689757260652876232120167975919689308441221242783376987440989808821644946057638688689060325627844520274656956033875220084119474547657924177714603252622401830720095911566354481104599653307008861285826272494487253120372431392897090038104185051551387774827354423508825683770229513471230437917784791824260250626395465150043658756943055851576317861496617515921293054093243194445491798852237945598937642749886426775299844964105822124913628768344877665850116104021023333068642349567165796548326057513956080468634493123410644979066324787066901473135990718117389621822224065181022987605187756218307009037982109502758589730076600511826389149184655371380567473345971680364115112916981637612898064218116062183430909180473917647188188384403573221035700315408656998505409601321526220803930840410897379323949418395226754396058008533091944170088668246920763222756974362383828942374951370024071540006997840808119354716244439217915661580241645035283696263165189502962868657693589622122213951645216195016028283287783347073759478117992812888531774497852503405802580151857342095700606658242524679758989567793236504220014123510438780454139685688748373088947090159545709335257553230597629779676531116953027617920979587450843761958400827493331256618968080112616335678399220939075087302140628040275329825919012013928689283175496393111512398837776258823492036837878960094859988154321017408839318918913925905554821681153836197709015196413796143777767043719881121330557030427752000197076037484099251088650379659050191762274982048075815933299318834843344624126668255992417856734940344432528828045474025819674008811033327360921702534967496230928375699274114266121438019547011361360913764776636696510353578084619717904857417056771004819947043482596894100190324579684207287567294101831621803713098650733084072835867614844102772731071887895071341427109559621804210974598121478560144363710274389181117515612717034631704119800913947438387955492437561857883373024355216514354411110646395116211993836533718577190890467291820285381426650763544660260065217701959473637854394474642840953148387304747213681622684332735476691059984672713172821086736483598267203451450826926081810235323242156591175072765933438547471691857015714072240300299790554280935977496198181207490259031027748859130264647539107618812569019260499532453183706658396556776657595933502906252434612916678303796901636764598981808169393914466739237379940178786213257581405984652131307791281231594373865411284864990733210394073498155601611218394409033989079089920433659573899362899663053519490471996122507438000261468403531263381465486978554441221457935886675919568041741821678323838268439330915633920273666857472390575558482261388815326191317601043512696592554448501096164492780413389593992112547073154415717495631697723793899945343874951362297325713627692241131823090761137076987021748279813064006224489624716443525155147985619535006837937312107550043413736530308917739769138377126048143200241462736325938872712929523511401418066408358839286905240849674436655426578811303932588396454915685700604566747699942044719027935828025129850302569966781091793433850045259697612097957656554302273615975748402862718997226159833710893815821850488878368475036400065919451362169223989377441541649644406586933118521921489948939562233831922898035690665072401560243359599426381900508095834159542988385160396919756992561006804631403533192618362563186069978045471052482550128325057622127498300827243648987957281887766562444598852894593595704168785207014176078419754093568287872980613273581021767191137472618477101069697140234765453819512294442688451463950369797701795971819967584013779554219199663268390613148876257683747201563015792966036936893066785673200189053890990293402607109816372289261929417662129659837950397541313421760036683895428312080276442917392707917375609414338363218229590491554863483121336813787672516191776829445832801334710129075411624295177826187493564726979319638462145741045165177375438470681536778905290950562585699740810417487614807596390350526747683793622749678087060913157167600579995101031892234128327705027528879151532140463752824001771682335312674438748416707004411267070588690510987648177845532852193436627096415519368261253781892874319123311446934057604505152826036005650633753337952446786364125410270326241479948329630134190161943686942511090386373565612396316737160474689960715182775449426713546206582573715313251631659499661081926882473260350069150352230293042976876549930607012748785218775465604140009834816041302829028961567233230590602586459484569339910994044433557943314061555275031522761921654618508847986063522477967909142219506708629838638686221640575904826411944922910900797140307160247914817411607099160189564481811291423577803293158929124547006970910982782971348051799994268095400691020337890065677595241562691358198037733452075916346151224325094213947442563106269294097013406177873777928456231275749979192371913482215651367331048485259318253327500780658520301233987186724568968962846669837473526724936591183715143531744786995718699051822666140902579874226760426907058497378289143989252766428927438953435644875417190609763624291239661253773597370803506726921931689071130976229979945528451094807485697125086596987601960580445872006929301061415361212104008338757923896580223185222692505225676446103991838261268959416391698614718867238964561589453719021395075771213815970933415972343454777092818381756889181577783867278809109149716853530299019783950804697863166054424620362038258925236900420270486773247053266729752437694032594790122287884788750669090907082148438445302099139066473928549204851988101546165826752511696525228333250956477035202817151618302318738722203630712534616696572156617338581550557521078378727924489107076710714417714216685633244452912939316978721988284208360344232414823449032054469136216277983157064189674033054435449199908378310083309694933626168447664823652967273519396946547358524907790844996196792499001787748615002900882732311852693872541027134578500589274231832945084216879340782989641442915963938414980802658221148559172358726261140038947526986695793974175548863262178303749246502093926690857625189115854241452859883499304539592832186645962036837465005349467254075588580076044075560405833422125587906940683186275144483215463797807822437447453310251889954251663414265110738355272709733920742257479423256199987996744593296148568857955021237217549077705736839940019684951966471176161598322404222244942762421444343756904021831929074340578790366065936174838901703005930829990446810744335142339495376146363523298254516940574846024278735814163303662887461825006200115589652411843794920834770353423286215678999700196610511012992833500023695949609098043625102353892054995369838068694514802685798772380281582282237549813339695690190104416677019083126730213642819908555302389559329047782287124013541074821944428784236463545429808759523996891413465717738258851552633202700724845929197347507331619311508873684348338145410603151000953992603248789818335428924582538154720494809851827952676453719750316723741768171024454695245314896557648182307562431613251846816304271503470194053271723268273187252014189447151679122908321746386786213615602856213480398008385542245068850508122663745636778308989477262616221480887354477694438721738887369854412631788582976144003170799517004312544060197356312124591103177443483854764508278948373833744678817256319870300577623448795550368640098317805465267516739466747053555285172115542944395243274994432968716259527926501352388835167400747728111323602200238102639573614737340054106866880659482893716228318048900611326172733466787219541721760981511713557286528960964543023558991136740287486773301028584385185618496879833964128620994740454190315280948880222914441073847852845802691572712093866909009015131226802843708739458822648293865968671854944904921394102872959215760232863545111797883395925949302468829047471701838392727309031485287773489471339134002062719700805709184660423285090719247420559692386468018807777784401013540973545023202209965440954324330549332245087974584329746312160419904121656463402288068225690204164454163010960322820119448508888422325159947414942987062564439111820290545034508429790413106552462173872457128460253015938313975088669160178894514251320743326350339635278188094715058643069504278871220069211224660503015085236867013087059630359764353235909891786599078514114666095065774052707491291508525604145479380305336399488250436971351893210543247406270633606489421908888783506575957793494999462916820546123833913271624845542557986509133843401340908210818561722559857856891963595730039594688120686368078016608859385039603463951279824592090515078492291026293593091978342247026975680953411300305119509502362702921117224979067753866136050653816716311834454887284465804523300930364912279277418149368703868107529771021618775380970747332076340970353411659722782884777422915811377501869137145833433533323429734613029319678680902396252540576248457874928557668765990825513229894362030185148799951864039990181218807769166325080103819608579212290908922886782929896785391736724266727456559568552940933491893257856392002208710436749362475254680442048255626806377874679211199036334942075010790958660075253760189459471446249296281695229242288405162586085269567243108274421172716737817054861367697770449337075286636743216734814831096529890175727869457844073641348861460827324108203235119043738117180604677708951836341986090507229528935243747095821246560097020985701000747202114191143291837875993476958452860817046815054626715095785616097406545433964211560571660318450917370894314837224235731560523666712429021685273896910693622446122572282221894148783612124698507428919408007835422410019902241621342202794067800838556233944464880395972510941901005951668294431821748190845773605828315296850375280639549546381022459927836041682233855424510546513768564712761203805625390251620518876879764147792625354685305762922751269730833532083162913565151575506386942883958648278593277288300386905519814508853440281179267175743406849287552073642487165359750954763022798342079457052541853171733965268376262370894824599265459782791105368981150770884171606407386475267237515125913324514965061928365815971399002744393574812079095779253709756414050496720444511125206041066943671860136177582278678201245434451261582101285697155492643575782009707691078168098267816651608853066352270249471279384452456750041723692995050323979939729846668833968692625469089146396170643872160656976934402909469495171946751349370828451236903354865491021733069291870931459243036826657300041944376118838264654255212656001674419062349364225971236191221031652135638881931367553713176500084957847789623222274613705066518992873431121495804713526907818563278520269675579083091333391308810653314949389021472339927391434005499282394533116477925135816657794293555395258784994142697223522733620884412750885870001821718876479684765554857052454202959190253743012804501789676934532741094060524553037054664213622207836589943430056836300404448814294680227009044732201044778611038601734841346801640865238261047245655209094574329774645813536464061358660359351220318839864473769238241235225623954774782703019341837774589470064066053551082753354158668336428123799011738560444676532012745699032184386852098029837684812382680062859836919359955997202586137508888340390080509680934028342060860104024794456316134618924046842048620722148066050322277965572759773830097444994030476258788436974966128603592847321613607826226105157155028764289354280818732928587071391446601688456043946666677652470536722202652539055392000553439731056387525418324073001006044209722430122779199866589277969659509084821542433967423746717149114625499125013573741652739225882826647182115401954801028590394156768288309906163434777496761480543204862579392339853078685853784321198108476735434263681194057101000741559446335268927072794267068319718361992083716152887098155159328227479701118084569871977174367287632559916740001792781832126307578623603504115253940934910687857547189933100540721434534313627643077276020664046384146604083335033700856058682686804581115115256853819350701911396863709595395047769243386138753142209979465946129286515723721557918164398751156775679213751284381970941260238482732775982738767077161118042832172112185130868908096540681324102374394438087734305007262158591439884880154371187199360650349115552369692519296256268240903326724803860538712406128203601504038786604634309243585923701487012435546466255505794737920867385540972097910500667444297592036286419167068074542529348259631477002835361176827679313190888141346101993747887032014755546704099915840428374419601832749042929554533179276845035519644689727791043047594426618436841260952168700422803089437514194571005813667494941489030091584779557786068160837959820808392413346882203747026375499256357248352326488430222664594214202112536297473102819860962966980975246727072684526770788780049612931953324207456478918920156455617196226629872597269032238064322919226806870073302618771721227321202797414665291891413060474370587674339543915624311098152754512456244115216063604825634828904187931314011411703830339657538235660077623835508819916590059224632059743670701839909437377842910033853398140211490476474785214967942482275847738628292338637925486141874947631394420621696608252236174150734203659073821166140433757057580298794874226396836290957196408120277124749810853690904903701871900166644380912221768205875157092208797512325549718816163789244968784313589274601317786304062632178569517766972888297457284902053853583675395400598504821607742981897277468302678979030954858321771957926776164349346213350872584896814826646416409517506554744790538755409078552116659855316766853395206247239990901026472754334572391090938368822735729081111078046029883835472572376903087575613511382400032234831777468078665602994795600160955087971705719488860756216145822525116945666751238760847388558516361832413871465640321096229904139811571610472676091119700581569707615552865058940092901608111779206807320629793505772116739947465048223929614453046978316034753788408643719130470311296681529089513491790137664351641372757793647978549280205419375745547326292936921318173058795705211525342204055686173558626825418016876913008588750625724869381303491362018786852846110409314521011601087827425809413182744474660572432479735010755908099157528725853140113100263960728292647831700512320041662017803989645740437471687159727404128743064832510268380491931967481223380181982089782617892519620477334528210565588562753804824281966064168233763380019280661010571868347558868594670493166813105170568625814640458821177153166679777467906411241823863386661671049972538469117222321776885988843740906717564801031664481007898004243191342755018267098168832774811255104777615366085093723500593931829338491545875506884896330702983110747432660445876571257724600051539218928759344909703989010346857354291615166213484057563304962506584811068438978671277616393323703440453471465930926075424555950880779631184074211627222560304539002675670027821595558528180596402923526652016815469606460950726177428161477024821434013486302417956168097095338776250946555020019407529435183733344993869699184766273921707536209591814730938032333607830100704396049518786727625789794848118902560831338109529067017534673919377706524273271535241683948719321257613498077005850741526830854450578775229680468423507399300489179028667957931145611089810105908065943583669645538513071393171593015574999586517022958225133238408346132073200551201344956908772867662820806991151753459109366397248372930731928117211366240633567602414950745389566854817003099671035586931245133244980677400449629527020849432444234811174169924327838075172631703386058762844473217771083035409686647306880370844789208737874520513161816463735020050228769331832958726911050546732431974283912205996793980204271895272417692844685058591426265860955767143086223796088592459583630243429000845593463683795301864348240774059225632863544413900821295791622171795351530004888850603823777263557673269450911793524853697780500196944480831397469596333464950999002220319436297329443397297973902793235396490532898876686907881439768214495450670140155613208117188995545185995629327219141360344435197792027209518008224874092332376288572296723998664304781210272177896131698517438356392969103091735818477142276700733179345487833261894830542127357788105156307994497787842079362702443093669386801475114300066011972456317233021875507910210152317744665020577062932920705198574463122609328537440043894033573250714084978973877476932913121309837413771780319140892887893515134190948599528879977081083765364063168149195641880290475923025436615912758132997050074034542346744270446352132210086904516954423066696256768272396109760002662180201837457516181287755879765174270947605647234488137699165579709979034735217089727175457288640609584007020600057431491968162769881306336870834481703837255527871695930268294505933203599536136696217800161726767341639664964810898321234151253189633467277169746182237147466191110431693834537076518575872875092032781465811688096522952659431612242515127177305553278206828166705166109206607141851116833187675422136054464930324842459304035109241393803370935875680196370227314330646467362707743895377214362148640076163583654173799138233825383265601739000937389379160678869485048120879073897195288027507290046278348153013651694759102079274888520181277324928509682227118722837167355928153203983671220763514887701802707905608289849161033369645391251692940757903927024514319757867611032119586644424534554531062244111804467584268042201806328798317747082756526547170013865456462685110826756156666698886801147820157959430678890595423783884658369663180111231077620730509434750734792714167283805902120880251316725119313034424824723178799380695345588922769055126308387102828184388832830687318551858428486008190713759079397761856004206817418981103375488484799762235932355027086545658128768664099246789106463893367996299817003710758833676519977627469725355086634712855673796438011675686891108986504237881233092902002828876542442937671013783186814227721757987573350392810748898016798800413837711663474771177926012879626928618107427662869877991968208058233546823086911887268529285834460149349945272694717592734998725877623717555708179866071071243515676850352055073389454684217045772991450756500498129563106863722114952840803323419683377614906043125392581896241272627433514408868424061630005139259191499875325411194675373117067214174666635702301375145564628483788178476885882056522455857418041328618903023420465974331316113655721715200522783125950625298723998551798090016808554671765302024118968594036130420170801181393910438911199824596333894196045772655016699871920810576657481986244289357898694600803765811228227410099981198517278485147660796081315098373011481599810902312223893511253949229754604061822085413725875029709941037753724451414291927358802118927654974808109822797840207610065935887412538339589097307722450994619847257234777539191641235205645879694363346652769671441129741339887931714465807722277852402032404137359999750779660742329421711694674101750566315554852521597752790955100430157944814651984293447336990410960577287825560149183898834907847974087526922040251084635924116994954494099949768685442370449887242248723943513155823598714667604318022697284973866968314281083353755447782074612087560920460059994367796465885385024495079001496157319957016103611593530702439927250833905416018098344030764360161081739697182395278298518089491234988306101864191242610071409947256289172483310992494193902668855259465889739336919915145025230974548093639484709450097729284489744924865619641492143569004006903237154735468476007226655613996121096685819236261708637658943636538681937600552612331310580185772105579404647016226759896854843603867747072339575552690933046965159411158805798181140525746922762285680275876693960808670831507925436221944060185449871934095803652402631967913794102049860698260590562927149503058496303791732567738735463788334398863773658238978583548317587253519430449481537433612999500968484869282962892675599280265507430834631109523726809100765007530717306522726966480196012503228123056931865504144910026840781645864578079220114665949261056055759179588439560286194504781863374036081387333479078185194189886768710617954039939961903386720129447808028482291627926964753135384507700132371743441301086227040594520785319916920764773826915482542862518416508709457780064738781954365117587093167651522860817580143356859622963933719981776767085619070858939481636611244123977120185932562219008031334750273601287948651392810324771271914432732185712402071339964324500421474192015759838851848894999078068966310819397679474221454596624135648673891585083855078179127295125061939634162542818046481505914840122494586033534724115041207102199762092059708736904779351340931630324027603369078799379716802027229599304749224419223082448968021745712260842774086332787676809167358909976085435113433158256689206698986212299665119693300123647466257033920809294793756730039750569203062046609256069641524280683287193326511474026502543948580772004733999781182191655594735982042549131627306125232983663053206998805928638563086817016105586589601104370881424771785832394563466070495505017525814653186837025720751285131074493472377179999598738149115459011060939740697034506646762762934611935880167126744289218348761269962597493496615475298983939615511037546206984508587691207447646491514358330291784409995460459526325148343805613387131966952083915247475017066113287756410922830100286151884530033103488483811645598013527410638519888752563978216107515261622381957291351616580991195648202887525435791683096620945711945014124994890744533266008180795762387668122334223691369228951740924752279884339973079292719267544322900790047759628728405561959944484096122465144052531614361666103169793710860805631265230712714322903818942388718931417433524416239222555336060141568155144074837952836373771613191913053578771737940675005438517070181589329584911139371730774812718895688480663795377940764265627383951235627399289513712454736894669476042175786439565314752549897258685606880918787161662830529588233145187273200567341982992354428751502145062156593939660951555500776689772251885688503510256776220592918358558205808799812345940602169492604724347536307192424483210294184264774078998447636013457289845232433657832920353909633344187168538295997438709073563860563184431227991554014204309497864872231743320985908371810094886187931369378033355797901638869134759979298597709390056583373912065286678337594579613520900504458665555320613142545099617571054033789594127724642444905224910992829324517925719064480863702961225591400639127897130234660188908271035813129726330503532607833521719794386806033588074917927136216122540901188338777926560880854788284973492832016540842387328730897773951942185420534497472093417625794812168662681189441700380321073789630345631154823156831685522175884187305631186214229942871879119972825458925102572349782552127919808979946017061320980261269064432665975869404371082419153541880209362512594955615477263264045124611471707613539838313764310896392470869507881355958840663174115570720099402314088306968045179576458606469219930781466989443650845530437121241929484799662724601048330455666989237682690452300426397418799673494904830025556622514322516116410129600337921270182369419065008411088330920847745883669654126674103968759112463414170108261314816220748049106360843654551185642031865523906802825369507692767766601029653473830529684845721584210421613732696820640214861678261307229674681283900182210408832098095576040596477458382571006219297676439876893439631500699483942341667840231197678549578652661849807074456997887338900589010902007305068923287356448194066534019852444537123833056940483880152528861808966168010660568994597177296947621904726012963461449706489946954878532144925027529910181398054225234259806563655431050490023267714796399618834652280218672523250556808309375206582212139579908974264141762111114918256764708867377536367357803579961671271685897194298410835060896620374165241284530067193620870306931557178001980938006981205405133384263898758864587750039276014483398587075546191445490330661916637933006604009501821583735785861419760461623882621440276791215534975526128756607135850281559703947269028829419633655589209498103130376138024386021534892453603590699452854727259738620004828379865236992290107538289265294534691454615196985519827254115472770110250053083617070418327524933445402285948808033218643933044786396060321456590383494887526990859992878698754646059176608343008263731595697931923392417713123048486583047834214851760416375436935990922034429066022367990950169491314250281168614720609014299756764355328084927687897649155069520668608454125230312091419186256061735817726307280823524973157292875361068757144774942588839349747748432323241242480899464835742148912670388465045504449403228297607673112583088619457780439635932440813400102338920297110327144039128884752087657006942585331709590953972309356638272238364475174672468827702545210758009471267891642351973338389598192348031252136954435142706235283227426414913945465772902530418423426004046436163735980707304598573626873533574904912802882468015289565835028389999173377949777347515465076247988833718745188567856605131019988508105149012315668777805083520907721172420167706997268838794595809693716441175092149413608970709988846412906288441554024761051572099116127324394611615981947426543080175898908402272270437070426132566472433722610356948560905093944490244576517758013978091224826951143829719572081411826378441153600511201284182524051114678847212228396499765080781280148054681441392593767006161202824426473031720989906341311799343189852102388522406879184809156195173401470502824962391684111998421641490410227910758478922056442441249396120281771041249312788259880556345730875781133394591687979278309067825466511837772354884805522052202537009899428659963091079149211555730181871459909961818566425370616465197494426089093962418645911715632487173767287052992022510199107769224556565664177433229468094109923427005953548389975692214324411642822104215795810298438470056844628140538531113672936083272469248277883053351960417247648730299654128421204354587491762970817909792009477731959444060658021557208411715009751220963358040835105889449917898055795634387421619456484827204618576514433272689468278295227160561712208973737716742586261422087873292566072733772177937366481781258081013777837589258642671927877927856958494620795034030899816286772758825645385817028733529507099009875620086216497139227853382003948948286382853199450798675568522589634786361868341760333836121654773950553454280453230882858215561495338012286070453911572820075385947100603413201504796178834254016556138341025157046416872630610955235952310683408476177055780240496238967873583228838149323373119482551689216371104121755579349950400405079066625540544269359111088349042076433042182498310909161561252955331536838206380751779242845080215287407084885339838409557756368528261828737011007198893495778411394414573402269782472460758084998272165214644820135239343603791660647411184551921137904737379264246369434614608091479031166237699887043924595526027045515827374395922892829723339808055890899719353577489103136217850413841487507491568703500764099743681380149473139000426243580344682207578284906669834569732226652597669782626316222886618928335260761852621609179489537482575851827020667957723093276611012548897348742938149781387419433563540573564090915197019583571868799406521984837070136058914676907388997426865188487290924637597414946302594933861271444430362694229089309707939411676491409197685667952305286545564439998457868005598105761487861240733842851793022458437010052850955377960759559386318513731787838668100241502332445528571643851437699759031691827227119408566649380051040708809636842312326185137928925077639943727347180571841822366149780970500687668254400485355738192402026307460010074716251637028435492896253285981103120179266431126807535083153681227163646182205824913092520958521237804150164496204940346211799543199777685973108243661011819363883972727425523398794292004903215526408644391781485524325304924056241345458640599914545689593831920505722100709289078211355226434112287727679353464314068607390753709506367634926220057970981971907764044068661800767587384262270383186575979191437982812568442678746374783400209252184520439635143370726651165036796631645720126303849434840797542132728673753119719660628834455898943103736602674498446822972850712759293914764338943727450652097436407463675180522579257365891965558278334237425264952772022244624497122409911100375557954924586303696302347902415030434084167386162929582757561991448689485845974743240340044131911152413842346233620289492519123448095356334387830053647963333291650556385160905876422873319758649573864351946429614325019515797372353926397700471634111771730319284499633253310236485143287680182291759918037787243861774420602778136804883840376503852017027416456316201870343716863471962045621808309097593828410314649358607562070536142683828524301102996440179044450566158691941168693497444555857342972371731845707478496009611752463519412762607916047038074379108347766302819837074754220146673358403982698867413130847312720802050459754846594111480128077451628445520208582811720591326374776045427579954960643010717264283888235364575667014595472667568742353707127850312106753613150609681949768593792371597915552341533458013746288208623663264346500055973611625524379419454175143461139218899613091863790467335387698814163819315479470741132583846193799156401836282038756267888936627155769467682335821556163039303669191448504212085477612394322780585321934315040726480718234223528314156601998801617910702657965740284009159330640402505185925993962599452646897156338094191294450738476586342144411785403639053584508296005682455881765502727149262392940970377635865261646636642259648789519054788090812977489833223578265711374199416345850689942688324255017574573763139601927455392280623721314635205537783041524751787064818986815992943692763025335906961681069349363052558696343708148513965241725470405602180930827060334251249434085026209477209316324946540802910336299910023862603451384283095784147766335969641765812796183737149910065204651912311036756050500834824957855294770817925373390971838022932798396646238299683781409151886906472744176028432908868173138978412485712748805556190066542451376031827769179189067204514879070987800198345488670786888161835728744214640560996575214088994892654402112495806243529915834228536796379952839094076643217583118931674492958129721762523759109861562999727101097816833749032951158044918373384616091569315566218740704398366072896531481671459527374081395111843000980039633459929277544563629512104234234294198269192571587572008241536895970949085390449582689394083863845762139283285392920323942035671054393357876816907888716577624050658424711250332261986892039157619115312558975063182168152451247506682324577649206886138603062612384093450070632848547610160046623354752808348725183090167186937074021321689468274323293083173051318160393282735782996667346241495745675170826935202000725510072869618748931867418645599256787579656319603438691014589138875528125859007278030869325217761299579029102873828099147832859023095632536678344782165909957259199216819678406526132833995344518236636561088172196060682445530136322316514191606101782175506798065521405074467529366640866554016247403616173226929789009317875276784599293743706095162100365993290593898386338614810192928355342045399241583100464296753929845253407084454440033014338942709912710205434162183930225356216140700233039213386534726397084316451705275590017036636242078883942870579002498780770643698048759553493535018721064724241703672792218795504222214704639852745174094783236558351298991270853365539251831254411814494685449395754083793301295890500883049951624853359408162135356306765131607847170890132959960850840194646997246803510628229476799103534817099098505437423074903035355180320257844089035819847456189907546927610127505458403164679411437843888332167591980791074834378211018192350499162066264712296429732872779052440807529427297515916099070136496315731438837847808617090330594947137219820516131278270596670030105816823416088465503941847757192732930859559809021870563076985752898769987526101402484366026628744051847661978024778733002906381888037737331397594932876498558111118797640753718956544471974987484787046149841937239390708893439009353339790338373821414461015389712116980694533779368133168430923629572508408938915673602992605292024397714231350616152160281451622829244231622404121264310524851262187264336432587397626645685660991483070215036270728006437962232388983543828535336949922667487796216525810306102401600515411630223129093024875869934793732274006533038721007691721196626701146921637798115951317753643225310430224145545091822717669964141360504894694621897004039087846538237193692742244813096029637806006857752260719999630028993466109469573344938128503397495191590060055950533529887358756970897126240025275484957286080832148990294803816547270991659849732526843078993170302448378998617972470838885272762168189462242797740663478964618755985230362462486578528472090666489057698845721155515500954609829602321893651188858864898186112723141032170097228111807510209867806994825686442983929640668342024361105463578055809304361252851602545728045660382732387999081263970480259723304274554912710690002005151703457194760238529128216127654673236226874829289514256969186176561345798222463116102650756855731281408423007662280431809292478666855168400975891640539759345980672714973918466057311887208322834333152314934130377035176896220921832197712623644467966625295488183731741378123072941122402618766912135996257502963400959019564387894104528118077604360542309671197425521694707286354943349850483932143702557229410500869806943757648580970753471083882696298983718135133496567119777520785542284846625558903047088633584991852649696418529622932132594042521424146786308725155706754262367711142168791001251274517545095564891758659569476307932005149005853499102450427611551401051457260411518877930033790627789665896360090385526604657702302933180004256813117974499881765199661407711709796965525739640294802668151610658315711171438041487224418295387332155672256620729534312071020899801451644374997291451673010084833725903994604888427861834150446222655306593647095320681218383841254686469459783527216830555275368668077379707914079330437586374735827383585584891689601433316809451841560329061741526233610940665789432758997167381783266569424991987653122888704386922473143652083431140375165895964059880634501718232540875784602002609246603516135955928700527818384940920822683830309598050527715134832914150390097819053407131539523809960697863720382695796142801095829489575588633377482925197759537007985739784576791848499024392958403154143339205609472939329850176694318645550337128459467470437677239478575234964059733336438641828918339864410143260459810857939556469611366561745433619246163448750140226377236952420399694645318995626842197880533789980197963681812910051534674917799045535973282590486468077563985233207951105182413564375361734965368227544125560591213936496749371509287176903152756062266936914375004878800479937591309299112509443110238580007831647648247121203468048024427181232613979744067873457981963087175041248096362917448124545755604213598163691518389238232990321447516826308003965787619269168762975896502147994981088955433177878748665152890485268919763809812722239814338113246853601537197248567585642973982982846028815068635562843728758163078760461517444131637445717317474775968609756381012377557627337371859880430376850441171364989274925963482438959902172938592003120299191590400785139334938435343729444453793050993242533215140314457552485359133212910617014075034504108929524066498211078967421404377500099068967756791836229986054619486985789786502305419618157646875242942898659550801229084528650057904093077513337600313339964600857982201953323493047138095458816199241508089265723771333609138991186986115558853640898734964956590315314990543896029706039020830471734009694872224063953764583022997407965477907823483624078588251449154740612956041125976236250320933430820111156712639048834346246358528953571661776904387002646034863442626018476202805436960614337422212346591650631239407391347623871867166356758426311286523339874155677780354575088644881893919803949055389530278384933361560042844686451095072176008998869888092325782327776706542871486006279892235124996319647067975881775287638320711748516231500447201573337832382212596981759194474645593540871760386243206761911292607182897585241391162902433724670198523602234932059106505210968104209348971598711807572922526089139973856769779180007291314147004123314776558502273212258942084455154333645494876585380941986721649007212481211830974218954324756817967384564557761730917385952859315397708354832770121320250268967787939728536500462305578892227178088349786480053966003268633245977842587905927106217711816551115129192858554583719767508811191291502360598723217973305044394807487002247727805127834779728426684890323252856969385658583005561192120516088522700708393158848568577108343026134556593156627374807013751630330534368342989622244859206476909460535379920921183415292559370107989533148522395968367521826687603645975532102236907076569228290509165624801633659211337058275706496138098167579625462314579926595622162517649132173072020076199185668516783968147139985752420117695901582586614585435507809791026068292415835372694208379563024695698694163622270630126119327255095092582054418728027105872746194725800721259563139763780972345110653031665277198141979219235821918545645517539117960865157532874589646194263838274752638347685687868541978604865476380980972737924513602353538442426959436315369010144219589507704204310171942808549500577874704178790993743372722088943735763742432631398239628186866444884900630132107152763922288166771451335443859575448250515380283395484962660386194465291054191909314050550240903495377237926144381768879501710736212345899266621124771316951109264319529102567605046627241654198898023213067786191073880789180970996936369058405744097446028663382611539573464619570640386502419355761894776262221301270472178548091660691902225049565645604908015030009937565955845070510884950896379032157234414870344293092160810883080888224140837963741402287730209167062878763772009058400697405812728826468357746779323669438895102408211833058535796263583959627342257863320851948502910202414140474039542188893845102743211724249563490373719210839793306166934812139421800029185959048454646333974715767967611499718519016173575681898173169703540059702763653341567872109597814174009943190018388731505196182866802240040682976069588179773167634860049551817468026292842923904096907966579229271278825214943726731777555302928224862126526157320640289474106697048089745523907654649712262212387911981177781011293812648534930486968487498861226813045664312811631856497036828958262422256468169688481802919938339161205386240513864097945192377675045292674927320630748311033793572177047103752577739578440874407018896608087802182291315792127449428639890283386618617109383943353494305551384707640761095849213852495230549550324832519341961023743792938307931882677547533049619614496194424947542217012686698915100522088593977507335511247864006755872415842355757536587610679684676258309047758296385543718568289765372700757378886170482857401793411416169053881759788156110863560520206242128186014592906268853935847479013874693026774033690276729049703142395909971259808473998323595801416007126604977574096894864996238419753977151580367448104165319104622325809689068008930541274459164642240040728878393616446393392354052712270257917503210509521443788488740787100416729300289532880959632165538677828734959243109268375437667898415852929616479020889748585010017167673108738795681799676256412238790819097086526220105806603830103015301717566531692834237170728314397861912105160411122399992180430481612491303556947692298227643241555204546527427222923166761146586852207463025334909601271507507966943478648318966277876818319484691468962144624193735635087529582989839875337454677596590939618851340064615672889759963561928477479469877986461968770470191658727537915048247713412498675163193271144259518695362859323250975780775995467462468677771443960854128218189938106405470250445405545311436329441023730134786452545079041131432303785436678701786078807820984024927420390307615885884070912831868051057382948488911782899695090068219376970382363676006371507641251212234158768747608373505201457555145936911909588650065366258551456208406690721247532242442417219406158446319531679534807191574408088647643285510830989162216677409268234151363756643182851059606844106755823080221334084494839234874542485944506253112467170931991673485262620086704169407856532565642913100067662001762925220534956414125502504333700381092883228990965209899367107335770060381812454439572373473467145345920764789964861378658865562684445577767276062414958577885586138189504632634696410450661521827452933095868911974295474436246223981393973603671954661543083109478604908168969881319150470632830170172156719410304189442077653730546510658365089813299103140302077327510506173907271163141440022558537891579309445408467273967303680831501383577272064270960982967598342232635560185090464512238420619181351411148434974549140685380531940278878290547104097949305866859406490870957433326986345903913089927099931127733885680153219589796413819910936010048231005929917805848668181628204485335226559319104398566840335686846963817765952639675867418606950208395070574413479700810951627112991689983206781936266792524034370584527513441479485063243886290105480683831519365111665969705865298839974835770484038543599404624563459682540620844322437175293131654796821216970992391655881358520248383369359424017810894126633140690750028695524834333266563614397403012707205002284176270525652289127650802470444462780730467062014245467125404719234350532557268276790062135324545186480771996285601194410622966460321994422626817861870826500709555165383856100367430436919640815463880450400582069512166672361904791628792220693862138541446438064193429903329957736353733366286284808255430805107499893715285705089991303479300908971450383383754853347895428250749218509170689287384866912943783058903439420728698096778839974065303032749873825071388125268275602757465838294189847141155448877158012914402272401459766267305199776581475733775254606688413557262342889645140670254396112608147833738367321515154943544067293036397356640358616270292986757848718511321905006325962114740932286488149150897266624525187494628043686354285428807541946523330739650293216479888410277248475503666309653966038597790958432973473212293515378360474092926988731492919088074027257547287212284970822760514337468872121101713234825874039206639834261450310944161153368081397344684403786897516027908844047410197900477045699188372778828526975995225046389229140579895257773971019805081954132207092858822657115184416096251585035679117907670547621086337101563997924917835385074727745033065788927721968503899158586770129258052844592211942241676894942677705512860025392343387357954013790327548712690936964208579015344050557652529244201873229642331332607028302928491745542214272492792078187842941184690533577106146766834263880773989375932774009510003238929761921215321540354118961972527956110537137519873885086064052312244683971964890330901065473264476593794113133695134683092889919723453703220045092605049462463466184930289058807808204545788043324959605712961776453870844746440720133831732705078776915826289074883087288074245507089396875933767333711154331000970937448606625475397003587215531368648523390570857324841078923113599919022152488585853598963667534288542587410239191134596368619259770479545360519469633179794906754434227341526913494654247422196364844718093020172911953388851512804922422714775200239256345711604696577339497745637390303280650848617647058416654450570037478274007784038262485468789172307279673097461679245478378610944686015305463120165051348195140644897292480491429982202998565802413045424910054339414779943431481531579205819264587393953310672951983374339920262153694135773589333665273280501721660649058971118270535159440326835557303277321369694949438296358080456346509150761596417228650086325475231424393865685040030781287737081146190865422355991335379047897303115402943939429887718740285430979846243072029191549430825544608134625177063209048293048760354397794734623466712292019575243129775634815664189868687237554476177091610964588236462509632543068278872521880109821033502773961883269155833464416120327512503763167361239218818235746763320672844303742189331630440801562230942685270673214337880921838262065949230134740124630423927863596080671025220430576678795461157707612114047555027806088191378449496324840549476084248365581802763142402736100413471200216825680398773374528842200020265334410852110237863787849985580890001298303495121062704761172033433298360074154483414256443515607816563763369625733336730511118176299710435395886274442964302467611363091108272729090432747622775687740660363517460895053659361234509279881772193515289119238980496224485048001205724549462237754018849302144080218807624368601801898363531027033872603411801150095274833644083463457106505789462029005095975911663485215593776452438131090040047778171745126146111821421685478736089850115260343974042351672954644325553290479554013937714652719388629246043869271618381041477359360107940820664767011564165645501887626040948647196588157415472788149048385000822235129298974313337919508232931347218781162962601556391902003893693942896657011285710877961124372989007303627721750737538206822679394875558572412953665476561596709986775668715210913349716852988725367735033709841899571154772119889114250470324685917722173091878943534289614994010846326826193514999967297543762226016093595711322846106573909098079302340491816844830514783964714424696480424623557742313735738622293430715354253784879858446176200317101524549278708070202378991749149589052741533439721203984877037317050403339129612315030643188318036835925171452606766483409514193721732254468212638037087913546911078803575885353341058050486088425799103918795092715693630681689781207582837982818865217083603699534266302232920684489623746145412504925516795630422259615465254678297051754001681976725441146090102024744526719563629861441538332438424208278218628303137486689870034798212379430365954872599871347990185992912574757613237131606963863294925222807307137861358557793050334799898452063689583670857488985517150773279556162121754432903335649909772529696752490449905280261510540602744238207943329908751253699792942310573627033562302875501450386140306024143783207313001954318769537390266510248435972708366164877477521170367079947265174649017325230578664790588619350669859031252953828647240970765392360496330893722278162567043137922915466062397857050584650690290926308974999869682277376655141728771471927497327580296437157775309404475308075739010892490193653903417315499090297528669334273585607165471024557479863895647356055638257719986029055659295463305785869081960287425522462364145575244871763199944440595277408006262194611267579529112580153718832662885879871481617910061674314766264292709267030493871413490221794069239355049329879285431516039378755701798280835835641873348020815064770437207263516158261586172484130903005469805318960126132312419765134501347962808981483318133906011194201581342414068647648593600593929181191328940175654540946228551254476296978950671927216811652787581685719992997522648687633907738577362872856375442172919815500941665068392161890636659097149585712288461666991528550863653054610543463250979020742463010152562479266034106406476534132292489596039567478222414434044250365802514839223338972335847959203504968103177708785508486522146044282981176597882746548744242611925780247901070712788604192434413670096475759425651703972208894657234509715186517002129365987817362038434028276513878398553161282389292594604176315705152730416761501293112959167218959262147018401412608209203790841797613872237259106842934021189710677856961653322027959896039694023241356400325454430981290866790118368004403469291112890067530743800251170147834683724183269482620996644526195728037166148633486602681473158237132784692355210671432568414915033083068774810128075199993726957450403780925080621769214081573495335206835610238029911633403810592426040932782912384265186992239073440134895995599515508759430467016650959504761060378612477058296125732369723029649342860265782806770486826899130127225219450568824820686562166243712666916788699691694997227015678547379275212914776887187186288316220534764894763704543965800572092550652503324036328590356267720508045796847407656140517193798358004388416469831686972913128563786391116174511723264435795964392352237335809374925685546529947219349611934260700780538201699260900712863486935689438070020790518756220194979852648816258060922675084159197524878581701964997476086406121329182293358884749512269900216382238225191432814768472220479068840876171380169878253013865345395837795963259120276568021529156093651237594714012669524475113441929035960415807184355205652561393443120240666372536636260128217593801596443055120751574993218431686969585997585805175162774168981779040611993692507476657842349260199542096018639364917831804649906491911876688466598648299210891566923711184678262140423998095752495287122915559416894670006688884148150589566014038028870057669856911434218194324292521504197000752500030337998134211643634872502504682751343789839885844320860589899168655191548108866629911079658874101654705857107672196080512597905725615499089767412298962457017386004353498834705591279239890650335327722770522839122588107970415402899806924333679959668664757713993773781060471379153380431455790210712447683268171367066483824040416122521846683757611319304620369284086763089255448332153727408564749545061978874722150952526184422861554469144213015500038493629717907700962631691648227494419832037278712958970608538013524238031114363602540236592247011695048583940102855636222530638669298763878777353041340545114330547019712351002473494781178263759760970430137492685513625823608412473893125618331720399120049178794269228839202279273694427366659248526313347612190004006307256802038627118910879741376183671070381997302775201733119158497038898469491680746824593288794131756623533740288118426808039460166017508257813805832377191303350901129224468031105680128131366278294496617234312791186199285677921600755611968945628796822168378916670653205998751806628766630518937585370079396745644788006661428301493862157636619958254272737250375548200408728287761062920986793535571822746778541645007893076510148435964426978103871763789492993094050616826394591511185628451138784971902255137969423620725123158534797308132774964561596058880337895253909639988601145140616602428843952014819279607948362068791603300114650081801853242828878502111457126364628928968194711357551450168641808287102600127199557334366277480694048265847508107745351169580772886194314930850995907536704754357105062800650596486846309231607554105461260987287545783437244476746998860078283739366789757730361511869321200047935040455943790619560308323791365455619811230783468602450547880244963769455659426998569375293985468665237636996330606947087428343964717785547693802200154897409714207664764623536901159822908692973939548441343563865846105357236711729619263211858599515864457667436647270017397586784821161909130733751303340137598586948411368517465875550440496846108993004778959996547839865705612105801582428813015853151614525020424238058850095513406646252629321381463697757858447698078485403839123731757456674809328957392901258879495584304439589437934623539305371644889972385218486123474550346376209832597935519620140646486596831136552457380314311613262743156898956387805368273225221215106180425197334253677613993513546011035258262181400204787095263601322422553078475275608819215159299078376536341063690092032867091497026524560067929083450291786771004135002444221082921352435519435325873637250911719053347133291111692394867914839464764096285469990896107918160625461808416208015508324343951290465286532223437426365123250836177196822518706899554706783226075339650538345898443991026803426922132084970729234437228152474967196103774383198390999386732642561469592658461327804957026293205441760841858955816675317658760091077365997211011663297011511819634912773911819700750249945226697746801569746367434222415648733002831989589441674763028233229956851969702704413006531480433563261334376691081381145590018320108247188316682522738375071213101681253050515674616658890672773297913935542846317522895969498888787649502506522228733057195059041296005139096008247807736058535114108178680156462025325370878674010564940056690848763894372291923801391571452503446749272146869631189877024777508524566305816029898423196240454733576194884580237142143438293500302019331841419173910192495280802104296185494381531486858822837924063258955869462033046322114612430035829910831232460414276108418373312885263611109461083195234042966037917670651863140764303106204798865859139006670073292450974021717308586296474863008669064771729804729878774894869063546196426265087332482694381319824086806483149198289733876644117764118242637661752778312001910716361040989747331487429449574489793459546810163912943179748986490569189277473067316815338089442857379683856631303898207806603986023670512931481035680424277016661205213090950115577019378657209638537647669225346601112953539885169953774219804520705697907880160554404209610800666749917148232035613830552790443750838976188975017240289402271642369069075661945451638352463325608132893028966134918407211262198756551886023315938081874054793445485893948699028787215828390489550619494785726248974788377204089504398604395729930607703875643077831249430650985445866574905919302940147102943664317405328953834550479347553415239925081666831437995869524017187139049714990095333063980871000333074788183890869158036080675958417194273555437829653094177363552791601261441503906182668465910513129241799184812471542397633586820379373899906650986055765139211184153277623748865980906041443146405801381846206393552242627056474321299882261779787304054170421369506579921160747034651150700397112936682953072750372841134300037345984870341167405675213819240775608597585035224968864935226483624967076782370370378153656383730176205565403317604499956400734809874416867925845915017570663534666424344908823407990087842172733620613686435941608734351266363531539785056768332111988172086801832154234718425545581370470724662760146758004552965483879222226552498181727478722542380782888492982495910673251386080865519381726207291405071055703794455626769671369352498910208644072404985396914432257093548090646476657221248854821630539923537372303841186327422073669417439706877406058994224976967714038392946896017470489630962245423201732637758639528946843405890063285912126884003000228463251853671832494397328461237065212068912594317477264217327438214923795335002348271645939109862510125492659908958153690511519977738585542881900955548507849633333395200580723374464459840219374243923785528244887302853655838954533847391254564936074388324003544925542501339491926701570083572337330084320252102856454763583333451954022554531135468663589319994706077091382815010824673888508363881997768322387769309882907229883720945404830767569600511156924047420048008725857957988023685947574333939849221045057154794122861299311707262579116616861184197995996609622636387198702047738791352611986555255181915976629117689802849324271553458342491883460098216087844043508762170945198915817788311867683212253859992198045193541476482346359633840553722974470074241904286183421271006828386599435028187560202425986226035349104612131912953367712822658248103862334447752442455989286141651290550644056237032046493213588764207667213457378021769619722372963648366423825306782262403743888053877935763833030006005544683782955524914308470474951348138814936664621091038554883844027810149887331929781941059677026845944196707394532594989612837204868066223170573226207830772154718179254906626681086870995767343251148497528573272386189455075353007149675587320693184703322178178658105879832175779898056545472409306019192354714798746630554423322689764876033552901826858741982571533287083057166288011019215052828022793204814803830368088343190380588627677901868290465099961274888987309550567764636921148341629149152660716962284838767143538090331139661353911647216498461219971667370234095603817478891298716733533477644305379695758102731314508817652818264827470882039882512260005099160260470843321983767554486806829149713429476579895497650673801416902863600355145247272360061466668998263728868770844101794865164750667504568435456035397129594351103849086505622650357879129852927580116806061437003252408157427469859734688918877959101852383087476342704972956456272996625980045233335090994140891978142505572357300678600829808684359912550623100764860805742667156233390388181189161727272835060475930429003791489542913955116009446985720678545622880461177300470384241387518503679145205677896682684828290533145292145358654557486207053083519774560552922902880273823644125342276589430866463236047500422348574720462200738443594985861110416344029347497677191667767904462950804640361539979092961258208585781741367634041331517258190539432190774200347199563879506346554945656063474987561050562875479938590119060607600137226786734002963024044961722100269549588561735493323565120253566440163538166920928769201057314888114520512090045312113038891146235087656204398781133553162074816408848383363251191256460632572539145770570782590125099063907859819014267671772427511579294583877757984277989847055961963151733855908606788812353282474407373321007557602277090956295505399402217703523373934195818350823267819573819294474403341210271656502663657670421261428359776615379389035582664375269153195162053169083120633122002252302746457720402450116459337907627967104961088355311235436108782807917743347225626335031091747671060674624579053069429819773291074910617674766699343330398005022664920981752842251151843120825226811579674819513708927572418210048668960972942222372158972832406381003478455826177195459675016935621549329720426967506201042977069183438744567462158074473946845086261517711551515913927638299391080114587638413695257663322029007592559627793537934419288534517828004450847796899861754781172531230152321346557528600779758204433257986793854247301648878197813915557907755506155400142559981493264959019025507121967779587433132566829297447683374327176958930436801576366014693371891182190094956136424508043000610617469641519231074783109555053551291993553790784770258650840647822009741670935928545207109663516299675734699761735595878630371549043028763973438318087491052042641044953868852679333478791991903152134961148519903801267153130879217956042957547109050660695109430216772393997910400133307102563106119094566121135314544197875398490171820060352673311017884357578709967367148772435492116881960925616258787494964128970150759774517359557864436076982530788521930052902265536857979629456903928437131528068604170142107144331967175859375473785389304061108505913971231182326109978942498543055729866367213891002945359889422594272681581336402313705544746648739571525112289753131501975739460493988264507960724028667273361669324312825194589447491254588780684622530841316479403967596995744170678924173285875261469455833849992120463489868587500274560155612012823064551185008821245365003056253559031599424833503963411808844708086094206778114385749160768371291071498949564261338161697426209188659166322760441251503021545117798862101754658267919255923332895970455099435213101490833961203666300282135275810363278171289524480867723867805821328976322362724213977863235883805547614965140128865641012983945909050760503883649995605328137722218412489826245430129933741546032537301769897782534452078222319267571772763060937359404902560115151993935606739747561808162804861046650417870970987793132396657609098177756019062300925949783681186096659348277554840953092150168285994924899593410751966648122322625471331406732365966657304907468727994143753977370026148852714129916037333632828909499441083566989496165335439603998271482496077210528482231846415469252288308506483940056475132381191324608807521503975106557610357532658225965196245971569251512735812450030660853319994675696771305273088393043192849071577374268121675796055647500912997224258056255711297200016846998492361688384471305259511542554645823675926181463405463169017981035842917951100901942155626907569653110531851598123493002963481133906238713887843967247550870091293059177374821984745343744488189478105277857427312205033969379373234459079593550846127508369114706421935677200376976380890901798685646758686469960979517028930784521477656079849733158480731911281396074899878535444185132651363331945722812076464250527338503471881852988970259754575250634048439811081538832873477136064329858896523428439389701325263346677164739710463538855169655722502255513494466213305234967216204238114812743600132841105140299862343184060448929402102438566945951536430228630912101189273701106241035651298398925758486363598891309385111595796920472705795266733896655302534313223726826906820305685834253707455149604339384625593631708616509356871360459922683575198904551268528790922310802276226845351001165541941520589102866551503649168785419218879089628687093112182244210621299656544052486001393403783631164250079770862953373577280487042358711141241234725111356402171722477641256437411077346755173778514643381679963189574996687449530212968347896568071033557391072508756422475599804668733302000234568515101100833615190179237022348673883338108088728941149299482833645562775695878395709389231834330121514285444305196546738123949835692991240250543966776131096053737857585950703885785805808109983920389832432966713116501574471558408491459186724802730724925517683584562383275352743127108637391811148455034698554820279751419432431007506989358161639263285939016609088662297915230976853168103509738316788412536174102298309156183512094773058470927466352147306836374263007382951100407838220714342652004565781364477838663324796385625007679313769143135639708944988334436810176765635864088721835017420773101576424999654277115194750215339495619007477490353428043756203856472113444055104905747213521285720403634443712263726584289923246131950764394418527337760365019967531907990561059977167465948498460976992297798638029265195908251397974591653934312473991124167822305699085152811055895490854280408599644674836096457973639400536557781464345045485760852113928412328798846599861402781807529331953429918240422087662578960403121531498628696790805466879600647265305099679173977518284502474900061839506179519174683895987992694061156465299941042470130503787273374361446362787230515419941071884461410519091089250743361552504422117492724616436791632361210240754319435881612317178821645705321136182230548267691033819915061915052099759015190271968627569871504642679001103274923516621177478484035382714696003881787863234927440794045896507255183849211223469189802688193305386114488832267372857721093423185794423367962854303914058628844491406069010631388463380494395651166960621149309881876208641839207638015876214114932028246352470925432434299433203694369440574080628955722849839378601034447193619115482752242833122012338906675483442723099266335082170226999378984348850859007579421386793381627126908532822909021824538645970171771502545898173828826154860590166390165365875027338748794510262613454914942906102491536713342326678146323278033389435121609329946062138113495179883959204900617146638158757676432596196761925301040365941948247831688957322137988205577674802598755508351347826523806950821265445676997238892202380693801315080794233150528456956911410190963926655935800042410453133727412068548448225058554520616991037465429959296078092926559834175237095168886029494107918153356861212830381098555588432580334885228924869906926385091347731682679522958017044409504474400648926358145534661386012097814317066908623716652770115204725461176698450780073280842697520387274118848911829926394872905229356184571469368026220779625531930667882754366108656205233661541673413064200621901634063288539561562538928232790567700342748838841569861290686193775251538180179220526597462318611986725950683146079150352388540271924382642015736814486994007470227333413195222063367139276646307915120648920072245833050324480998413780735934603488541957973522941681728818920954272712188213650721997727441859793458421328277437911899917163373499957506692288717421936728777093598423391624591183299161228486337848082451801585408140970963725254323203226244129859383873085773618308714499842474844987367019049645889007935492508372946298379819011689866615818283104463220906247013081120826168100521632153044105182340592440370158351885379972645194207604732580642864162994084980789165990110902967970978373220607163260050017139839343146963041993374640467800022579023486102654076105835192178799053251034088393521021578227161113999569521254070458610397475116269204412774984445172090013698723160954904272067313042381393711786904794307977724470209456683135233411927875341333823098273639641467585108188735543681057946534697314943323855412971350103012083887910930284134757825033336793052889347861427894560515661305409302067220616588463072919151160795421131396918119674451117898310301107646358454303849688430053682424073211865444085451693744426686473705464996859915422476514335338639195256423290677759112121102393937422844241966925978772057723830947830357647356426315998547102543582161125655535195054391410043443334379795262228570490912330997187907245006180318722327535074292798920699398759946965298845667864204653034521650944982260552495973093786092512736950977182916257118302872092139200291673668645767003672000243064581123975659433482274260034403129107979318726020874988820640349251526151958751574661085543421829278251756500362494463376285341451239331764541261986044494273882673400068350107307408752935276150105557547837232246455732096743905707083804414950287549892940158301551814672787218149087388546706584291063716535924252888239023182497754054399712423612132265641021140126299652703041059705836463718558956885391021220402437996660241845228450837441232014183628035227767130031468272185785824504478554260020353628729734339803785159914448709453205010518364275527357057206957891961741684841235576670995756283660839336103020403696695184669271863681913964621705138034610493950447233121821005456720506242030291068691225714430257368199957896153216596434814438314570578631326364412570087851580995007471605545891025241826552053045088477317769618064213512643842263953681883314588135338972612488408484217813604890985079886379172792608284989248139269376377744730504248069452986704287003076119084251039385669353324105402299015773892662630708624837077768141349001182378450572875973794739728352550208144109762190822337465953444959662895820045913173948349243445121359056256547247317866946959368276640090246071103177957880640770539200059981024711478309784220014849431040490813595945110475053330774875957476391532641451225544100162714827379022131651790661607457562341770340198010339831376700303602763918901363650281120218244778221826403352125588491856283270366515279161380608694745076382792176157791943481008317541022470760447430328861411986681974677364793185118260715903080925046647783940252960918893168828860821136774253120097628835044002217304197422546263684861398383246487330086845705458502953904534773182109280045795373985534816325364253090600907372887661728954930780397216717814145393334421360769074769061707904758359071779015371098031454290907191302661998791564440730141506125163603229621880067195767608927947586106411569934873204366292082452551121057124543756382291630016628926197439702436601779835574528906081183247982767741766766288484139399311958407564117506909044780826844344332635017480698357661167498805909564382963524297925553358622861523286396653038834677112351064610190005981368183939427005284792215737361851453282806196023483127553670137082490015678323991992802462732143211390060966088883936086899037732002709997034889456721529902747091784781539578320627453565824088106095672528002103914229552573583392738479357826560406410060582562952222694000895952560072518520900352841332693255320017324437837214790825432873705540927420178414589885807564009498879809563102013329686076535747747626277750555784554296644381580952433857751533227169743024314510910858737752616969720282360979806164278948135285309295417908581883718089543199785888401368683001209792238227999120344532165220166497408652954236305103969626658460537690364494515154977215941374632328546220739363667172023041102603946130075231377673375540063242898102175157770457344745408527808564172375331122122408732550328415728766841674404054144507252451023207882506247146490050906028830237980986680621414228254296012563141066776443037214678568958889817442513620948316053731822502826416624502179492104148895532373452388704903117883310650718849205266563480124641829380080160614453157466790074700671174116014625040749169033009983426860182494368010599744668574319844017501133972976242394110082739370377825706430598186121305854769328499430803091569936181923037488662669812084939436719661442318288915395417001476770178794021785810222631254944386719959038097561422073537953544834301695292259287447329658788043358791798126120186951617178014176715330663591767654037606546209188124468524855904759446452699772665729678289931237169853617644491301575847531047921464998933818990727197963207760235869805150652307296570765701396837611193388430849150162321421464244608758878035208287730837977588895473179513824142752271457298837298373646539699177877457395441934302394812849321546037755677791471393780429218083634932095495659449466481021373816668531334596782343694902990509675768967183648327450861277385754421560750551857366671612673702533800430590340328445823323648287258476367895223816456739189783114042040308670623384406985836367847623541089206779999857254390394885809215200746872217909466226271451072865749598052712803177859173898945398631716659482415730409196774362506975353076407972534314629549030378996167644782476710951367866442451692898802660706995581292761082463803076083708514804915303166169605009547781628245515159896546285800155053613736051185854249066710673906525549946341680715968450615897419310062111616545085123606004086455466956422649463164618521034798278056811902361550079957267759824250139668117618555825712815534424541102315904121383011911785608149731418772421770787981717866215748450863653632303051922893176787477972096549388012318052531974618832916880033599412266548966714826173750417137535514614672990386885440986376981395461462430468389947889513341482398390367611371654204731077278150072840846912049449440501122693212185976750585675348762885113124826667874871584506262453855234903715649242426466236454301998400659892839523644325928638522145477920847626540795659167911479563855207340131824239075948337234532085743452425281538363876318981986250319959213857296029431475986936424472112077258603659609647153464054399200335387671596892916344685393828940510390598114496226279773011703437634344439863737934577516601376581647748090458671865214666060449419686216383383809365345311777236507479497954247286007448284776700570157342003299639060367823764560140954976176913368882492933280472825633285517275236438547211130515138284849508219430980506674385082862144549948699917221553031722937847465222873773428633836927360357261795470984725051178164186013740053269554964843209930349283825751937530750968610238466652277700641820718219540566802866004968021121481103002901416155255300942708245072916280090760793674377277646192831448994467347275732442235733441139391327744854018426354808050678571637606784815261052651523204394484831212775352707987734002521489993699173592577393032246577134102128188453194360522211650249817222948702501142398852185115469261021002592049182061279244702161550132298469037651917765173661377502391534552606924113895347155425411588874586834175290517168867355019376621703084702600695864520209091262844304751863336926979589595014931666585685713524982980964914281690783079711305686538795998051447090419146671731066733179502041451095542522353356759231276245230059797657585675811528726539282559442343856402718450099642486488941667870536704056417333559178026492282810947330978003452255448531858901413570264271903411327961111993041922286073165432788352055870520020731024008190719496390663641082562088346776565111440106183983947447752834535531362026477425437153263104220335072806786497904029275750716314132219512434277260980277087238232039605272705657055099426620304333039790769192751488038591571940592389404105865352794649388101282659050568073774287316817609673505061063422835627623428321479036367455089710378758749977314909091038749496873942116809020233636670420310886213365130934075866390321013214312790616436389509252966604583706352556685106395963847020302658650041042122177121720484903722632209178646484120720777041105871542425560996028600082674255392198060137268449354903153340964708412647328045048440044902860244041160970288333146160997060031228238425279749669901211909727478067997912213824107435936470995133464731641376762658395120411956621998087358439660105112429730014375425616873724765554069990209870136160594878703681016945135305922514500031196508524234716750381330940387727231372004414995847359666150423003891345838391883857102554310334182726901001822231039765945737169584378960355844241340104854864275436725234629310961249869954823592995122345937410515481744587018292512141824601317972451945465737255900965501104002792299106337575530487718443365314129814176803041938127332114151021705212582825607577278551483528382426555134698847803043719804198557420284308991467982372932032511482943037149184467141722605832819284296326941608708103671101411136929733901854174065109956873444257939202415081284825011094200989836480495796218909206593206455263947162057419442541217569400528349788080741877994955000442491931822029745811665810478337209702914059012470473668978219283899468873777514879874633719087313026914987909027758828198446728725451661718804490688986617122897496589039844988603915646007384071225319800489020151236412339144247090710840115251681143207827863460708558730706899898439244574359802370294480286021809343959905367581848788231971569723103972697696311938608955832124805756986744010226417196726316516485764262214361910613061141770034831312190471569726918488313665912450360720348861230998169821626208327277637955732855684089188878254219144561926829356194384916068438199709750942473774853971267321275513909732502110215106541432531368980836313455853863269506178368721157989265455429746133488307811221522743494306561677739938247227846922566774464758439567735126679346315855939598469573707127165637000551703530510857023118880757241319297602513585022720389513513701752336737106864307098444143404719372016120302117586400631099235350960172828778170021076026942813207311160781453350370356885449494624555663897764653372167107184506993319767278007080747244291276791553635871600468229933638584667611105847448053617884164281558458507597529300259465105025462739709426148502513799683266734932607511123465827041778459159382763388819892117705306274586100186463382642452286621868618342888454940633797964116658489604566714227414262680758196326860076370413598692441114065106561188053424452962036595272567409049927554901008708074364621180692910161830757307858445435117829212561212144052589925286821460488046402122475335695090471987854901528637903025589622943900707341575974836522287586403117343737530871009133704133335217210524894027996179695652603122124287234955942673700509016988229854519691108359259140208794576475218045509993728056175966360602711271025102403775587504263156509559182843862564888851882403747085686889457895740321798989994021728254391956679443235610512870124946985685832696406113086394190913137044230223460083874614713620990977587341131644221348114070728420027540662127428172607546069605766005750131668766266068980523623821590471139943530877375061622498888828268235320353015541725023435161479694783619399876167078899783620147819298346339676546868435483817078307137654703554303738384648123302888820249687224332398230867594285302070651399074702152866068776292184003195851031299887336603501259933176520156920353901563179818678152289219518539419146058413849570283664719638012909252825053681417873480004004383653121356220912971325162989036091239330526008513929674472513881980179069329152681212288935474954419516033238964936998085283815049640320812291686027983445707808895987488614896634414722396272972583423202024651980832672649115885574554482681538555130746003805574645010199581643069611769471499311511287016545927294305915748649265044912964991442510503568697865106989674415352936713010060764468898987505761059242881173364302404537172833154386571145344729031575027622566274296666646584713217245038174984854287954924468806253067708572683149939719615698868179409227894934633115507890790534330209629927680794733991270253586803383041470167260431243155837015742737042336120908442837532919714653690655953401089158105067482056798763530275142658390320019482287795317777991296384362303782057038457172858950309057564147656247828172507990130187939259628411994112566538021462408773305203665667923616818984022691551140800066545099099869267559331646375429317963981860145401706263582900838860126446061415523002192728902829710874299036531082859493878928175824814907426442362510838717062054626809331164713784126056983968352127445852970086145170042138728454084016716638948906749101445634941033606395410190221171509002097725894525266819462353063788863030582153457514977943730674500243223658409461733676805253490412869343432868357361327881897014415083065834723003884213747376693698641072412015492851137478030415028355641683485902510155544434824758701479782078368757087458530142139060613721273921342878161712989022487534650958644269263767856128571915932162774365523726997844703155765458443496784612647452483536674163025138740590852718133486321622518210410352334026749731341639037553069800573746345835543064965204543862554570375690241004092671283156447048659494621658023719819320541497290603304033743718267658546886067168994237591140422966546629584011570696188655973722961218782932084685876142203016417429428473876543309231462328789009258036107326178576157457603816095688685448225032570456243334127400108157982391235380772832902094684288532968267251440628486858824010236487811991152293539938406300916530863510922167785487874656901739072980784902520422069149076174910106819556663362448014995055718613805506195116188409108814810972531834430599727275732888855794826820483993708442517330530542436470511844655832361613348936669101030975650100204805148938349307630078242033083077477541480692557956554834724367939523386057429061102585762422304362361996036397779161383862384553496757553750395155484908335674338661765062350007783394537082930519378151615670639675838715152829674180006448457664987756777003360087776028474888892191350000338467089074324721632404580725214673088252377782208973516690024227355953818451127404592700203209592300099470996105981699722811388249013281604357170668633796055065900154702015805349701424219065356230804695476495300155061492851781788352931700711040452166869890689052195390412619898751468123146597198881846528124009513796182924293260260888635167654139832015088654820133362923952376614073975408299266678051979980174228953716878173581342545079020861221601944715100500240441433676245426479361755360066075611984729768784825795523247922102704403522384528757370208055862420449038126831585206631674324116396438340589049814715484899913062546189450616638614825617878050740638759164703480300041216882194501070180586468430409091503273450354709906507641778683323053329816876225834431079864627977657865401402429619295823865948559090756642039098936312598571816777059990972476905042670205159687650976265932141757501141639605534178183197695628338912319898726635940922276692868954729624490351004240633107213994590841660986705377341082553786067866420364081565655634901791882803344660200158035052502449946531240608756500776380211339991788174605413955329873576982080313761927738987647709775125672627757284240704821012503103014048062681167068228612699893712438000240095583788579289562814598721416097502363037798220621044828961211366998492736828684062496110882903542434912749061098180034536401782010102726621906297905534936584928309002005272995676745160235541242478934615665378570421294979858469433531458849859722415167852753761587431134890440639400988510466940615651431020246878060006007385725710916319761501504232890285306900240879894594212167405066796320520229662271726201161388322535379961601215291406097777735566432526956206724346055267077856211669102888193417873462896912645356412556298674045884431224339829635378396121927275254463205743913776119170122346880762017349953537654143602715294789348660543377242445651053926595979862041905100907436678311957537214551449638511237680982210932747760488659292784388011127192532727631226678209093525507041578015589246535800200482134852009172146246802541944602945637692617100282118453112342497130260437309924840340607705528273767364591080005448596971214890296272323709943378322843355660232765080737824112942057433861810969697190018467297143773642697358202720944964318707060712392311566268668443714217552081219896469524382500989922294671138370711867265999946732232395184671672354947492264205126075370759348389611723901606330819078715523800548870172986418486971651046615244911052957474719944459834484712197845325967144330725199568645795221993499411395213922390923836431574561078837697380669372556941627152609815612132776021515987559159646634263579312397082328462226967596766250149870891766344370007797618771942060702357762980679771948852427698024197302008432036778921586721148544814006819020952852487172386945115839368623654427152888711588824584584099829277870358777948773906641436683258352302429323297015994797869177643120764425612875402454313378229136169666031806356260510326267301954444688872608339691082522218367050100055005053679543635432930509476147222743228184473725527690231874024391061132312769002164729824016588964154303353213967774541678785551443410944877945792158718514255486121012489119444528582158500674332884770821128853064065034163992763119802396952653961862772954617082011157695253326246574173923761289875264396919227507756239529138603143095059043671931483237700668802003333724385729201946227968525264612960623563064336515873740719190010343395581224222875945584762211854716492898749141092582120778005231904084923776551956761322766619027652889548851624809842266101353695626875591447002693554741103768878036917999029252289664199630807447669865046526331160542788251714212323768867072406737992568365585041563731197411134932617955688424023657683126733326355789319349073425533435838701888022790401178535651679170001380341630231983032500250689687769555937015425466948687634654251777545938503650552869012773611950573727819803513522815164085192828742305936526404805563926203927512089756248958487589314471451495078292208368252339150555258434327882560382439918969988177293014534467949334965551467137035437827464338062387924432808340324301506195454613566147312500024084058673024528732980400874905957018674483242098872638459866552134395028322592020996472954095341004778020945761612179246218921881194574287621789525636144914741367457809367907021106097675902854894136264764278730655834428792815378396305625207162767450097168959469026617849803966756840959001967677131847518870354557941728359493933560765536723045637862119558067501010702887298459903043396649880627117155637348932124424717878020082521553817528900167932456854707478529975898428746438536271074522148420999157867666532389047401761051738205699549448984401684193648133571353118488644114570763519181883061162911511468038359330072158533100328567546580416218332755751175721932277987233213372412676182593050494524646835086051263921309381324640645931617113163405172033649221140332237104687612568258849717996654940231533456996467894690114706203740784092502924342443397183651619813468314172477825275875413145410101098716480204886901937930315563083760125680522856424307842626388885496064184093659629350943621436321899738299693303857853843244561956216164832778721590133004684880693972284632352694938636081533415931857516619064874069358119771982684935599860484498884945089110827239804442071298644211840018509249983749541187109853098943586627217904230433300288790684745883053972672104599649513788200753029456422380451893928453205615089387248021914479794416093262326359256863080381131454668922318524121744238059820254483522735312916549503133808425295595235921651336929761674099005995954444380002513289641313480776302703864801427813984023655510097583908952987731926566269884015601484658622993008567636022482017394572553144509440347414760642946169762568957709005952134733323937936906233352241134589770954480187165429639593330696978152329537111534296372342747325072962340863672683279999356719745660849365059539376613006774303945710760030790173630996982979191363255696004206403886064688204551244312496131123025788620746848117537229655734580032443547298505200964208100716612931645036440281403983940440729339480603792652199117414995785121568403271040440600005741639663828403105162912521774451138103724951235975188423037534753761815267114196436292073937374427723595804995705664592080335559808256565605743534794842085615902526848874868781733814938308552739272796258747105617072195616712642943969419958297537502393042464439102961684383150032389368995446650882155852727780117206229024219939711136490029180643193012810541932001130711525150927657998413801955603661854446932548748543369090802969914954419798551126235641429610745348348170313640386047369465849600301994367111765805264506808217507348164490801979414042922006953379846290522700260831585065025456063128130339861802913812524437151171029801081831796826749735029793888659325362188473507449470255834373733135012245776147603194125377429011690378592534620644327953441003842540193459159582861817661624688983437059443726879858914294137880199618819311026242250324201044117874259318333674100853386203597173936068098410359615485780722880123834086497571180017260723699023500160046243449498059262280732634290614102863961444346943516380057618995682710178505955954901779798199132368061989586440209967478818073244627946313292648937491801265284446158125968252650925413198308171295600632540407912357083604229422451306162572785383947498875593726061014344606565998442398374263414363087577368627015193296796582951136403378833924922133236855091360508088668951261487728830759240686263131062467327580737529211256506879136151912746318641521140908278197067141684397117370953529176631894734827985501718734958440619602076309854969722785018894991677728887559723599723387578155066248231473153739560804478317522399585863574515499887171321090045615015466802497703691725940565414718984530302271535028432917133491731966085151176926405551466387076670649191178767266414448540397551967082091424148838986505631556632938721240661864344810783536330369073114155287036524037594671691734528492307468962149404725947366210997425839921473596213515128452675556276359425038673836344217080347744911314545209572040896061006471081689531294006114160865600788278612863644854290748293669663287716235926934302735126261824075769341573697231239178863799758463483312708543397788340192268579358422552629661347203768609219092490990080485973570518152330598149853260910360690518500962235011965708667795216808832515510035448281279934536833435605763288346743199023412494586781637345969024252581244779672230544785939203571557471106018895457626329009252594004721192509118268597924152146515872163352172420372972807721778090984004843170128323037979321436421137214739738220880445792114644242254095539432060080438921162628872479832253611259790152226173807784607575207901254023872326748781408836480769579751795088723427159894676984951150152443957647515046983153158077383479034237241165465141613141102111259093857398846524963745396122906060397504202582431575363376358636052019121176960434262405535736314831946690280809829812110962756083132876920020309958120225445333192868087259613235526253897452835766126658730954016580728360494005786294317055045018522670247878878904216663618473974289721666696844632040860513021609927278468604154420415996185890679111579736829565251425390981854032025706618930472698539383171865787976798860634896490488632689327879262879650997914749817636573674293749055331123367739910034765118643301580909424414861304912038126331927388122725555150536758092329425944955291786126881645123074364141290504499151214445503988477435546852820723176728365494155099690547708351204804387362192093976486901698288167588061113699834062152415557017862947484045060039437571966251329775492443686263185875065594177043576908244000520174916061480894499288231244028678844957218311781640815980145901034325627016737641747962513863399701435040340536326056285330346857468165747425097570541879131926598159854889014616556400977573905152382239994576262139710439663173598027304142671679566299301939353458169559255202961723552427170363396625791452860370123311469820581653831395763496341250062258364744088145521936575692036819977343439560328497274296592066692425874328644849137777459829058345552694470076921704701481161015994390933939249159950235128428280802319833864169120608988012930144944139660641843723494338246378562280719114072987164270501336724541842601374955331503088601421440453123295078879513577485246051587691727214779455996247853068613480916059220686773818377468654104256173416516725972541896471975237904471365738656570910185596447177991264189673054766440905736944497264899964164162814453135090291195751742383515700869518097504129014795693055275525523234590505822313080373992473724543860480786361564714969717213606418474673034844250728259084172770399248956152591804967118215311915202717263017004375113743539547928624718668130446847667748934222712078522995543315083366075470451679771589745088368123811728974124374638726292527365915575493149945246771236171540787547244967064083351800915976977172637946192238628539861259538785817704420078396717794898489405596904250290616611749423204675943947654322986443508961720141606904726130629850351575703130065239048938183715578764447476012959697672663183043412760648977520473679350094644539293747939446877440702650445749740530248920971263455446341862101501534878894857077437135115422309020033104241860956091804397775226636033893042625980206977278960208970754615672156455242828796776160788918451646485795244890815469224317965693319773844830598065110609132841104329179076225386155421098993452284105169985298055934949360705161147942674196045791571451359269847887883706819087900326704770850954948967873582329252328503535584587153336885775071738923842067961669410015559897276166576021453129862761643061445341530040902136140704394425580465165306910653423993897795569509165517015827299626131333758265916098358835106296779572659896566894492805832951259256780725785909596725892506136228338504781574209697377048869589517390737057323789751434157914642485459455923429067300485293735812120212831932413526649742649873343167955028576736331289670777835051978116717538190435140311654274627095891378244117515133727792117481089848182499741659158860060251339343187623677249554606782052189580145262550025225840493836362342225161813797562839280761215216151662025510514776169753418790066090155051191381126242637615083148739815467896827666136945285145974222045069615247105586053698238726164001454217458857306037967931499835920679055930481968781544357068044319793105245179194670198801564289538612049865150348343566012885761115018162147282219200454216064626405645123870504215470013649423966473882066042031871484453481940132309846250275678104138020274447892778823558861048024267989871213314721198412852021255725318480953610296834894921272179380400716651384602011293643100872540513033523712007410159971351563322654599148760608755023302602715559419586278660158255510447941177060403026588652152947919078031070758339689061287051982221791735622930053903543220228911014843027137025417350714739584639695154419178998144729446985744062282365729971882889289824955186034721662690709015969029322164959936047304163063978697880998372168764484503243833310874976428339992339251761314577264893771198343032808409241868952807722801454853805445926763119148692917698691971736125838086033967319756860589359602190911484940456628718001940808608685684988528972927962510777772871879666020331472547510174607999662931522872366989162973256899269649371873464130435221150324845791505355847798489014995321711502491494203401829373320998875679855043927898749821248587231103695244134000352992203385592933316383527674841648392052947167755031527264586428909077006711761320332339587024399757598172694448657038570589492281041949029790497036221417693509411506379438286383250962138309492268423803727773381844398680872981132292977390764187751422508911665660278546055855882543097897716038498250043904013566489818305101199466544050434406685052617020102125936867031105087937046927387866850151336737263985357571785245680291868327550621049330659867664901987816765949014246804045944107318149518707122413027625235058708176969502056924568563703609344661449389820624165265426206845214232354395715522117966190151119142517168756982525767470453910446764006247957959757095503730905476279729418568805591308594671939972633021702216626466534680894308759959321902288930935691999836583659460352577296154728862385310692248340865853258153798641710344019284663646958654799626052521810219730589192155849238510605792356290760172958632767320133253325846128847889858344006531526399390665352021622067111060251431767487754536736733142857952222868907182478299680131622989251254361132734819371352911911492895242353355004729578710647031092934886962649952564743003450732558684237674834600920210720927694240816275948023056737463069162920642925129269092257679109533150858691167708122983025005286646812371838556102294722660587619919389461125949382089011127572569629081835836505590612112010040849999133712884144756213736237751054619156750529921649311768929365622779633243861489440748640540171368613723977605558628039301175860013925794245805595143811459128299699764452624937250714844283793217344484367321720830862009774396009091876692262601211963124476992368245997898803601711314619492905464324632398659639098617349605378134787233885142031461346264477720927135492022039507222207631867282174484499208029461259548530770881613881439248664477824872618500375813244286511413525918908713755784291985956993764048218818035682285412583788106198634763553763643720250235192851600003795576246465564181685301338793279564506509695733704885120346005505056067779906284713730597128547115815338770678289440182517439634264519990764993845981288214348864042280318919973339065522221214861664226614078950349565591944113036414811793421825660665995509018101197722417297673071903429163628182457249683704326551769799593705313733536977424559525209416111371292437388320810689826255328668230744376661476113567333012070600566162509126742057668162365735152850418957678505730840390007053509470218795434598633704427107547223304904354549800800880467448766520660584056883352315156751717187383846951029571866881281356712167309710535974566079832832748410841794834797712362510824826485092459535581671850490928738175992463917167805749937340432404397172387771203169843273618350101071995549876492931603235773078883156351905160794717654168178583948924820246988698604844379184020671265117142296787260914701252981518822548749398831516983317872306767274047266718028144914483869841221065230759117392988738526267032449112056161869530923716080666918769808065088737816140928925390130583671758989529291730858527648521021582800857661782982373425722917103487210539454190328783027212694294407036031976359537993373443701976140493335315265975483338892586567564975332152104155855078645159068861606454126975441653337171458936815687620818714021773821666981868863144701378062689069880549159941605838741399006317867395252822135574353813587826088502782070076376767980694991487801750891177034994328321382787364010685362535802313493195318931041847003110421107970646571165965154027960238145195303438894600812353629418187178167736396760029086716520611717754589003496513240550605304864983872217696957886224846957408798661507186699499333473964274880077909565049181627969003987279074081962434393892387120752101126365418809544807255605867039879087048840118022831175765503312888447805254079732376243211903515586187410708887159111630208184204798662758118654749975626903873097510006155174939455591921619648597653678794178273111653220013077913524498599191131757908772291798453365905798068628978309428768965328560055830003553562732342150397745073952561115347621858662449422286334726978570114722671081572315641784812885328974853048518147789982663353398691843940035392247389842733934311107476261298980929673676178462038510212622414052735852319816190751609121921570917488604061305736252094021859350998231736080963622837449827461143023246529748947539551066174054624224445971502787920047150718252080614013911227272191458873987837850110140843142839541457741700827276770536962064015831630801688457891508154495976671571574859796108206354805004819719421313202983753326637864869471414965395137270740302836390023945390478305356512898254278626738306152183830320471700076384406475839140695107544109539014273746328929649395144829536614083005761213496128843526173310138683600323922396080626846090912074340350373776089234019177505487281259746936731050335655686329854820834732784387900463347816316414755880457300584847461194197808263712727905930516321397655272679394043766174324439110918532118421985430183160656217825505000369967500225355386591788548166487521270975434895761320079845830261451402288587068041699636658757917424478405690363246582631555541596832496686844276979166799622446547123795070733805942834291869730392588779087823259816139876426322703633843899184889217655857812814834701241008249013353917438803829686452366550502040262682229097240301008687007848635418639393925076285988816370907148190617447403039842238983867016660588718789453062945346646457285285683850864048981525101039871967021136392603783611180567858888809779881773967794670424053356368505429927527055950860762658422947569489941346320459367699378415729629294886336783235744461879146391628078605017569027512649762605401895949365549154485437984255356167679206807605296225555217233928584608891017703568546766759213663951621532756373250800335748138055384976346257313223138018146311394456706629751357819666485421603900485972891878696360006692340980909953134998491074523637405852648267797875193025441088742414290576343669184648221089037538739321092798630837743701159128148793077975592885367131217175606941156324132247640758926290437266803069150020347235208257043703647371846757964426253755612019226249355074471525618970235414721927324772901287289766770426585564962022614077315934531390610645097961078760630248478476944911215189940000784876586899424554676550840082902949278058699505493949968234421378617802380839495581665452874084322844762195391756756715746068728903233505911769186729967805706761718380716429347416817673970999242704752656819085312516675664616851848723195633569293605360819559534172161796137832691610134189020593753260889982953125869315691856041901089902460638958982239159722557377016113129258273583655542146042302318135066773280258891246105170364506407492112561517898787674680236990781153184105231497080173900110045443401191783295163116875295497087663116203545710180448349442121886772665992298615126035668738282435975998767819740723209042685762514626869790943176844995053935747010350993100006902190199891449517237696429805925679100132993335592513718339603502572758707864593362246401174770725578964578002634754302114132458747119012642553449702457122315617214317946086829694680586106211176519047498858724547918549697432607830682748440203304578272685801324623331383681528201544561278554947334996613855614352215570436543381868590208467930189545450805368874634629413822238773174096048870493719731114211347560898700331224515974245575326787976645777206255206446728979822038503752067423675308880251777222095460295514810691049361430725117248489418071761058506387354248788220918582393247577480607309933461877390219126568731315561936721734050847063621623400505290953552450446354271394240095178055067141481047677538950957227160573076884167204835230170920212246730722002690041881038752205300355360142300773853598046455744421213490813678020347693327658741511852087027405124090670115875559687252859179954544693501733539988620515419546440261480678254524589120606985880439904749595974033425002985832969726287138366632991486818304525868438949215718703868247252809496305040191864084857105598539048248323879401759964211800763754919535492762745382924879333095751889013510405975637070014798227883668549865968921338011298357080665216611682908661417887348868863819337705616680984094392140210726194187876026790848778352039792944135507481535467005210933024853662441565291449597481376797428253166951247811262890092605582175280795847368644566042825658686748401114617645012279835883634160760566341633044443239742582022367463005192542327488511471917676607837117886138007066054285107818561590656534345345178257103684036514846960431674025534567427319383828629207919998279730205904126772222657389221882730957904690041003802426678234570292904965095614501048392306748410083222062825576428810972538579958797221173751476506337161492028504774597756329589194539349470334002998465043043172812886271719950669967118276506143338425432151882109288763179314531435583200608128298770176746227088089854354451448443895866188396322456138208530819937648659925203502026467682262063055142095909697516676815430867506827016895844147492577109218655988352085855874450164564763866907121889938672555997701121893594003451167614648345757591290171034380766597342058272248580393419292045289491002860890438976279406376947926534110366392145591684590998353795613118111533568286348254812146896248585121840369264055773974856298567393144793954025366471936577346974904800436266629191038831992244666009164800821110869182330416154162542378457634902756531792781912780960044840843980856749541904748654637559694992422607687605332150558441600295996499807416151673808594599099950607873968381309664466175205280105396100159536339697713953275789947383233001272402401305148473676689022095646581304258001203425624613727826477003372103990522792868412947683306125819652138648157669004341599410846011388604718633700188379942433741267865645745647299754089943626877179892653954513188087082980118027106655253745664740157006833478841604974776527717484652098291687723635396377601490100136757537981742592691719089869415263980591581396723507352765245977211455935929475449015582979887837157641092608364535718921246598582706886260755663363231189735682779920413240400008473384118736405339583035313065381252497588032178286891511820712278284641988160365331013998794276774311635748254284379212013882697734504587953115820807112978832012264694584708183565803613198919369252689472738275002857827622887142553758289977173714392563515460089331212048362442399999266773844537755839204585574008997807786258635715025906086906510137174232194432373862851869451314075456581699846426887520048914204483190302408692958703639198636083049366195784981610116107630116807813695213369466586745252090325132866722429702478787300061357947823766590083178341509519397243866115657266509578051212588843950074947055418782881499861120510795232959919103666761863683174239167372002851817434955535122677956449006185361324250811792054019964516886775107572875198998696730361358126592232441440194269378138846851204288091327638562480686978968495375919177642421298008519116609589185832679967378367808841758749695990571918346693460138239679285630679922597147253445613525303247022536624564313924637789157054300274798741154148580371643249026894709861750278275240736521532407769994114119957151872127130202309268425918882904488150448537849857965464496971362671154476403754600552706039608018311418756012082578150173033127978603783921624898091370324482976543846451928015319644976644798018170708810359568798699722356803690409367689410045143957599626721931201340781271246751249018036625477085377281109546916457972115649712868332383535304264408888864305949297015592918333861536741718289661295545124211618379151290590570503619205713398347413543439631081771779905733487066880067196278234369462366345329612131650960093148548980159945206951617594219757864348694820308126675430516923500832758066547310834655391357365089367172757580045102065386697286187177005321068144782912780742761360891568607845004967432625559535372498784930456777057749937282228057505984854761547068266504675261563188913129088755414866734436100223694044669339120866393198948541221158457332840607409017991697755749824449254803503829151404719530313431716854070753611503362068157185566102503546615336847028116565751369928936388390947269999145708444001676274996446648658139713828572499785312910569139155668233593478108704691223826351691339624749262485526108680597005334587331707718720339454930873499291730388312635096281830377494863523476149731345309543098122513228012701587449534723233286116278824578766383189870483917999881885931361135260213949217554722121853832217447561782280040338490706363694864431798737872556922272462184101949805148424946786957268599027684942176983998205553125761380654839394501509047363605707726087347304150924016140530081257129555788442913973916481272776951182028371583378628761901246971339085302609839877605455366457968693980161322173375740408122916360893158856405179624062696651127128267322172655035471881905556742899344322647611504248421516717867673521107937968818634528307038796568069421178394545113444946095426651031584719755565932691960365876509962282676130281339648208794527866965849581048474707172324045850668906443056265383049051327935182579965772892009579980040340081743557649256386172137994622453922828722149961821651494097148259786893186348346535192332849907722654465480995938310031034690267965374267893002555394063449407168127134038172234181030001376161929547129154341001872379407180608536407835025222670474739980590715498334028017593046819650500535453658920645013687874172311235281780636423244703349016997103701692116221403939062026804871317010884671961189998902291366396377609348788085294699303729808158273680231838918490894623986334055607230870399721569696568124381796273012451728433640830275359370506956152265523996213710684269333720574716590386114366916026650049374407587985164551066435940411189630376814047268313603106995163520587105063702854400857985762661435123214436632954712649236256028846152073112699087106740794629665177703475144579271297827846147863813244135596289980211508447189365739629340708313886518583629434082352243484845281915498670378052941425792293653115771859885838886099120001079758980394212036044488053581124638173923108791673126059299902825220350453343850464900706666344927747030391030890792062792765401011693072640261810375791920850991265760954569265087740501398438278182443984971703560722600462857851322512090442241718641326594632524935722829083274294913999503163840714557941466198345736567358406568667699443314733648965799170159212960259504846474701336392239125807365802749109131108017958481669379806708042469864314912164440280433901773151424401431118056294161514424920265511535109681977929784751834910482727095607393377730401755719227766909189283423000059333689881824729668870382596396835158224598511037093956661616573186978536108989856982160464000736153861487739436543054040324107647116968736087490862375922976481106618164610358783816797495296059703098983401399860590205357405382085723781583907493961557813467273691861846280259083973585975838487438991544597606649859483122886870501424444916373992500902460958555200031439842661737633907130065444888975064054585085383077163097807103723871734033233432939291503075660169272286702126557406392450537606927500224731981187465131294825693285122959250140478969269524547973613796419748912631773580392384925766182995273122905649780769248242156393053274511612535099529512789079616265490931163598193647439022072520792857916947632778375960004934054798632532334204358956651697555136288804474847018626823752030288407170671562840518562552160203956500783354147401839783609455607485308220615280892598226086146637465916027482448134117713719313584640084173640567731259838871172289674312627997208242257402512086054759342564950479027383633706377356375647142265723660762088406594023384243586507638223824871701583880344194237593555267183889964666034052508591950156297587190336571862183122457372573021756598189968215532474376480749292427886056574602775894583391376084222264518635541552007705680921517567914665218872535935085608426378125414995435713008901482606865386073601224351781907790626500535374785392840708920542261292582511433487971860894158639913682776406059321522705636956691366068413324961271307256049404758163377881753705346998698351390691362462895067170347970086541551833296977143399809573854252112445414057128509531287663217975456480880637351756323914554756665455093357773404508642759310793886553672160768479222097805379649270689787980884378282801253625120950687868263987165758511778560730959675845685523758312775147915636244418247851396277358416298455466775427693712225288208111443895584520178329736166984191106907233204383939816909604449401565749384098372869193682569913063645948377757511092674378365168512340453987588154977713379741010403503209062542694509628741801658930642800461705038037400542220011900014039773867797341110636440519733022155796388692037604137281663601747702082819119734083746805228074985742113019836679128890952597798748555659400254120448134717612064947515358396275650927682310429922603138839429783050050927715616548575544374118802751394186355829074035141180940531720367745217380927786671717270959130729826011971970956318635397231897016494372384938790494959357898563223619270506355244635944408423708002648527642445675551083493435882386758519757242737749701828504840582961471054390871973470610732098364085680035407902773441917173072270089476412265486815216578044949436193615749414929998239436393588385711713550751768811069086583530077725681827204688724744141067289743214221251357548853844368322727459290661516065548251845010941647697873662874507828152107444011903893411007056666391614805056801631556257745150294783678713463805150127858387052303854959019194425864552733614532951751702008236537645789168184582587834317847120012169084536477327647399323689036039294055028642430017816181976418821599490677373383517475822890679384303303689571079112691137645361656303753921082545175083952284448679598963208537854038180756860081991581944110601975094359502407140333049240916721604121128652428265112250417141329082479132252970966249909033482788499811106093632599681148602107622844933179564274340227626366252056966263781292060292823081247928395155098066798498140964311783770101345961557688916221162274330872050098814944966063993232194970959537230780243490117366218234385372651039371869556073313277293771846062708618227668538738831071469795174474728762926210621552955931757646542009758592326851684615240535566738768258684570189146751288692719996950510520958893802093681038855187794917754509199235591313957320258581161272833034768964186114434892682995910461990248017953237546471201624002725643592455491486673556547903791510993939066383892549765853730308894388220957412927388965438030320728458857095338894528944378591173734382463289422992998116519921621287160674810674262058840156750023431226841185311641814503970214267417954211528372610296528215153964056958320214047610479702240828360132728256343969844646601437244868713101876894059478891006978738870669110883892610011934436060009719254078173960139292595323385296135614764285319466285916774068358849366248887166506246450696534944880659950223550802572908024904366963133544151790225706016228000615004603774394152370716485055223147242533650915314246502959012318715094517845525069778107346632657725245360892677230805677923499482524182437462306303595838268580076827349271514275499739506591455662124970060607878661284796950488883310052175514645116901818925727567111513367780840120716684611963088396192089572614650627354858423043053357476981786411442131978092153077908247114216080532874486194923328005592310968577595089085076014281743426687525502135478481890147540439031402923195336143546977980935158879732715401261609091451766913861526007912629757301764686800107152710475843520706357938880393198794383674031751612702786427821683817248230647504727231753657324239790414856928116501238597102316712270261952611019176395317944061139496823667032645444802035277939389737579610377560576261385559408062846762366349677818388447800725331039951803212608085405280025339509869941978433701564352817076802890646772363322464902381279420833263156793588710517899212048197715896105795857572291942296987825248712996129745874998279689538383250838773509870574998329694639862049641180267771409524651485234258968890953793138115113307487870857546024550752578820257823030230739692250609391033948421307664557232507017278689626688128944804373078449232941904735838435773215408544862445216861481205578320223132474826123963364303675888001749572012576921572167819542846070927817439381068216311455521127568713303560250859599764298888085939102622261004034164436310828985749785738000446993091622029920449438181985743950927787975515452212523348624385185020409738066713334348132889835592905076396416584672049541419194439574045987138452891480610935272914418528666340239042315684204831484052129637394371553787192912166871715513293137923239729076451880114623056697462974110551766055769884484381130056580970487728059668714143638222489810305182686991175690057300407629580895731288320892616607060106513610261173304729859632934082418765034154706202251854011988510651959360416685820570366214169882602036347795332175423871108291540846822685005962885155855174140816814167815045960292006190829815152150091664685192524783852324751980474725164806498261612994928905479483754539018516764342388972054984091509436562479868186012790159423043167594249995465527346932093215613909327912742748942839223326588263550121156490349959377620392087490190332797390807052986725736185448019591570204468090859836605090085071305858784024996562610993335708821685509553993327153454868858499858851704498222222508087710599637609418405681721752145310369033230250212937762423919473377043959716331182274369676521016971327161697900443053604536174397922628772194285502852925971902834931159871649325787172428958377664005789261287838933173192739339499570230573834373082854714641964568483250619799930168382325835992672356377557687199715090910115432099630364164755363529998143128053027194782903553086645661900881121325212979052244088418454329844599926459095134022206254328682281598311102168601898999555181816447237396181609257473318258481842953700238428778451529764044070092808322076989297225023272506162326167240617209930375107094004405819167542541868463620473932448326026946495492795641755909796508653224097171833868195328495028981432824314746367946675805904654085000464460118589357736506852128763830412485611539085843346046697575754619981546207979694719241864486104825876085543727904250162170578575444178519581321539451273414830594330215384133668500166369858884556385902244815159623586835989614755488871750834082954896441906864632903599551354101611821649529723773483558987910822945576557687488041492907580072995852553763661280969782164661482480175467776171554862410314820816527264598171453623944635603632005986552976590224017629655954123823318097768060103719133228844504302613596715497256250319799324545169432468261064062990549331035029289899170757162125228878870328214103033117602916531181407411843457601440875928286311039804839176092658756338906327549382584237594199427089355066646744847852244241732061399066710142842702781200187652202610826230126836416771671176457497913272365210840930031683547797091315161999483207105491351523923906816425431563910037081158685089704493128845363595183388049472886358063565819523876520990680851286970747337436684730831446910302862537624440355668118793578244514404514734767882893969589257776716724678675685896856833861231850775942069117482131066043925302794050371436498053867497524586596999118826068208814306626128351488001923268268236082215485932182983004420710013360591808703439525499607697353154062335279941946806465801117028148079216864528874494824645491814219538816415314725593655592176350806920500783079594002955405108205785518882799948947902494647063063384069447887927230683686305517424013313411506932016486143345937285133170944348881984924394991610359277596154065322608649222248597627687480548407604734881620345028988243255120141426944197998719829754295161580867672739387170566331100597266182714533397329260609124294633408993026679005511811618443679948388343306154987974904519931135506252340423122196757159209953400694802123315105530419892727005562316994504551417058537407732055275209828105410463464109720249136478529183317569362054940143395454593985310294468850144387645201212071316465708312807669608516775425605765852499461146132444546881111277608288075079182093373685413584725325900436472215880024275020057940797461713285588310999022774936726526747414804980973536734943525578257936400295753932936581350661386249187735690055179909977252243083679692628524551449568917325009375550960938952208095136927043087197273162272150164666225002006572740195205181504418066129297247696882938051742764431617203281763812207030498650178331667399862416213551258666958388200258333029163545072589967965475745714587190248548178558622720371381733824112515366515278528039847223781983225077182352919945150471397349057180691588123507165948696031373769555382731511120097740155144888500429509725194200710085751699088291389157248086993339444504759243492770247109712864495175010819542199173836443174138072656851335669358371428909379253814090685931896861645542245974035164409378713950309131188306084511922309325841014758811376375698361618370488791821360009882579555529866072793109738225722101082792183469523911852880329502962451365582530285253631771017761578566652702766337375565301015651577620057181321392081669667531890665342177254404177639494514886852815799749156783573018203834773357700246144642976519278899784685741846085613573768126173310601388393935151886185764495229325765127653810292143154866968145043027431053122689590268461488100060599259719722640164733755189113339019807663954037196257701265129326795732968773443473472739235288557735996667922529519285717859135113441834496404182086466477590920568910459529398850106158911254591836236101323774760014203615627200393956776521111741708119633619478062080490380321154110161111154660754782726700424413863588748393702849170646562992240718234026723401439530500302155159133810166733580822838415733695641367109766727745216224496353793898528868858673242807803114058584588230865175468433760611443651415502335208098811066394562552384480177824177715501640533611521955758280214345403001079910038511092751335944777381287479602351163438328121235189884076041992216459693811164458400089845745749645404576297460464579800051872149267328734418596110410130480674573973654472470618359454162143805326965239557617577329785188301717513861336178233860747450914966404933171498446696276483881896329307718984166964383236667477268477174278960231661000032977759636312373131954426881778499520883178634404991231608236490048275140985646126964130177174692068462423541923913993608805386846478329165772802360109589387689592507920612066065070290321630760662623133836562728348877878965901865459224098151386484311461872697473642433838598659773405734743797298782976642603932718406302972722662801095645059836661786916875988601927127684994202962292230813194091738940341706925083982393270154262132564720889142375590715368561865072167086241692441817873013187178151597307103996004779494493162859048698670767179750985168714647124385154372436712295497192533260862637973208459858574620343233005880441367302450675298915523281055203768520059607083385461304659019159414809559344465298059951859197194342881217505278077679439759713529735133382133304990711283322496724586760776119841698634550062097447428891702403022117228651931263822662026917659511462461836112383065894932306411249330789261207377698274438016543286185354949794578987922647229961407036222830226445242719365254611105749069091153086610336562755670059985336792981714365414685195422431952284974732623901540981340552199743511816211171538821650263161107333751053833742358611938467610554809759222889339115848565527527503220508417918498720833828019379400545479955527702208705488710919409916344473432696005036986423741273101527499332580849762795220851010070087034805985275820600905182615203506157244428323570548408749385906295720964392884258051416193559023760432182180959716694550119861795261420231355517986213121506466996255492617968849011688705564806573955779018778855350567796099393168493622215338243825558457023349551709585811045107425923670842520102264114438926556748619782965514925845758699289315147675933083947849262289486875582886197692435188211093718985232334788297043729332070986295774938795767401258973720218700176831302053278802677881319490482746028400084408022852654518590918916596102676436173214220395502372842217534292021626370876987675784296882046966355997787667948129238169803255811912288086838365376329984759629517020873197049167695910498781615850927204564771515207695062987032458324334020503088895415749656323695158985555163871383669835762365903462046572494573545627734399495680348431331561675552822827864758560887590962182782163045142247035405050023699191902543978556081686441295607768509642572469018470315703743033815632493835050367515668116309404917847166167767248655358525094554822924277742682922154486264083051525389520763934688419549411116801743977509857720230986262325246837879761250336460055580622067635660691277039115818743374891538236622549416158823014861090132279744207484718205196660834268524864157418898650911963227838146826451074693448121344323647075968187572713886445811066604018877483514376057519309623017965091160902218890056288253606715835359790769466388198259937506235779139135860355344551443805810664263705112398574463864390054876521341182676908520231084053756162282441990833394230408991639886850082368894574523692898299859220394719683439990719132073569302407086961485615249780047460357462524053764571359355029652316502803211991554912662964273852496063717575392082240549529204593136654721866728455176466994890699723747566247262006981508184394644787198034138307854399378054333445702069068017485850820504300845891251975164645725109735508801451076638617171089636227033656515671891134795299532534991077102401411449498585132933778487000399610797082611869270805367271822416455728663280321323426138176247483585892280499952744697158761317841836211722732437102159655450485485941294469372191407382736123366429606748135874874602255597065778066714306375504931384651647658719870213073471917017110619053237299967572958474559462154655199697040466572574681324177654031078023876290520817748080123584777727996097165056822599183627009252661659901704062001322788592381737546726270995342273155429571274783780801465301004075875806328619267255963232454145225887287308483419436114067475632921112396097276671942877931046350709351321792746310676436637677079627405965262821618244968189800387324554864062345490309395838867278992912155365938927426159852670642116210915488912701612868600324831156325940543704277796062523363625539852086286252548899099452542201697996586198439602176180691612494644546829195695636127724496143170177169026554080953160956195195819829479897044891010844465213788747683299432419162757652545932826075766789413542944869888372626552578305892802227655769539122825900180646775841917399459018438383099035070062332507500098354679807021611609856501287882221503812134536309790978301325323315507932417565414628889226004018891371831035850003739735260764636358637757696025640453842839886997595306528456284602693738851884715025913296199337047961147918946553544135355863322303712997341339131404386621911406918736505224164712409810179005220473185383379947383528208762485577829110757486708192490835120480701289573606322391074468391939121180896127796726779411525135083598487280014735384439704461811903854360241816473128869583125102135757453188874916449457070445783546139627437034420273371371783254169597032886057977510127566051454659186798163786594729147144212491931484717137762519877554284761790055460678616013519431748845201885236569438249865407786281219296054973518208016742756290338338867009832429831924404715474862279547603164381357354848097790886737680981086659091493886818949022978773443232854094172533506422611609051285707295526058215081473086176619285995564871748844909867293772483042992768149925807656580116979915603081124650896071181656966139780357887414053908611286372267633240490403824386485182109470459373201364239352449488405538181981705943095219008876062331691658955666169711618030078130901460713881928139512829386067289830037654085328851116657273215600613355000846062917333632685408611794050502923351979693745128064659696404877955471322404867188353409772042014195420148066550343521085003415746072727402648331154389956637582287664022922085322604156506100554149471571199238926423349350768018509108818388629586235760731516928313546449511386270819029638454646752445106790910520460115040797794758873932485443164236563918095019418082419830705092206034823067534177300576393087103721546172509828622629196505396411671018093820916915482015569738901184521032683124384856090042980369786807768748448919998536934331566229711455669013475566108225772911605760120207752821354804686856639242007003941113587315293808063221784399899954861376631587968692167648356530955023506098794675540891092884194634245255039935194265646171292546623944255627392152791252031350833860760732340295479368818196086427213369493832260067136158230328066682966263503716183097428585269576229376130936937150769408058592589960668382034026459576832104043155757635959312733722011267890301699936681641488541327033165557972443365703042992136127551572332611102451639439352756854007281274348021276075764481212507281011820752199544866011451022503518349343686149372993871695330989579941538796891738620218177919235287172643877817736800397674964181496776061143260663834049027787782154509159977294940505347037997847389994467610064539458367524458980536361162386410253457148002977863409193059049665091518532575783143566602463601900432422818363670239275882696437004230321996242803262012245731043419940129961201637984246591854795011304476523141164031741086328348168188765515331129535077044602561761163533737118778986785608207250914824314054211372710836281264665331660605217793138693149828774981039923407249469405869525632277920363925474339961556884413063263807552896549038916225181141274185022682909419284293936483499695849482181783580766787527330793091140053587075756927879072943992570889694523590521164848368341258163727469564430642756572446248007789013115042421979574488045849451520152051940883080894301870232531112351245961645694186506994113056000272420643669457939371751002245986956399581908586282756633523896301700351647841474188484997587520107919579822887345131202142397698300583364821343984296620842201596028543402127271290473818155560056404903735013714092520990919573257196325110340581210561015493343049513129567718248488914225668983601674333215258160665510996471229570035694577681860748084966583846183524279759513534642442850598309965531939627890524444718855807085921148290398805208333693920261618322029581489842794845700819343455256775785741395314813148346493519986479085359134136686008107612919314282797966423007617338409807632342936743861561718390985740319261101726361415959401747683580180831434861209020547628132314624999298050650315124885886727593106183759580672039624314309767189618151405429716378270228894309964814222620641160019771965786114988095581892160304956843321521768020515355195311237433945258053107765678793329999327365008793069627387634342910669952671301787814028292124035713191960463097239731735374033161459032738552816076246844302709314430719512673038281350713921708419851930722388425366652782296495586826962680395484818662578613465633140391627804938100208543102287998430508495354941648964719030459455673900415954491338102071537185375099229697138801113952033868573819450185408342987247155341777303598896333978588644470079854693571190863138286833182937913780580851184149838698645533142049698247260434068328414736098618005927588439567379578278585738916412054971702545666186693010198889478961828164643368230620835311765069152213566770716326985020078508483554243683520451546078215844235026009433558061188024922297180515843718330473493856561160935204064967382039701377327359088918879545303903796088008299065436486241852364094337564951417061022223806842425733544269583134059480513265651969897445685167659381150096193067669312015952478035083314470631782640593226440712180796685326176359766241777697860037617795128692966515959824934598035772288040262640950740537174801262113509334578361632187048385414850926352690852218268972315605391282330150323544796839070223488706367458859581155559782064639402031189364746137391423944266198811964054594056239802646780833412520481331223738166797070424125401881714750902639565337082926182165632543521416683479725570129581838383101113819987666665346771385484718556409644250728573346591740403532157510371840330369812250827571080085927039341655512049702674127742192734885474088400956033080783219734402214143524545958805595452985141455327532580177362968999262866233334655113261768284363554159523190948766640004449886063616768824547000271955384064127351950720336383942656240035879710391196009953401487744933942191446838141062186654730671169516677749543128467908708169614944685615885036004214538734492487052420306120406452514960961780576667972928658815221255007262273441112287979099874207741596476307739413622723151361308622369259368293443775106994333451254601163829520386338826591994041600608969291000701609233414129939333761590353790121861197301528544397181607378955330286354554790943978375972566682072529412350244172871199412910053774154442369218400304285325731472828227693992660498305821374548325163740802085036239238480460422629040592553791613598307513613504308819444182565605170406388953519678563313119434369220755853499517611729493729957952039275578737589729652589916546244703795272436010945974709581944253455240655497311263946724078744980722798555227935186307700370895547622971194564216540372126562535540792725832276831083479552401075931261735387052701250368633175122201903415067054389621648363398138030112962580990552004211240473828698987378939335825972856538514008866340690471592657421199995781423921430188417957807631595793659338058242293280584484003666503343523112837451183029815674025942994008608349364177984749118072935926485662158799931233659575242482832970771768244605595855081474570703702183323944302799230584375417887953854028750880362766285460763762056101859003542753733250824154318893714892754905471566200326872907375858372504482340287275206539110206126639203111062966320767441930743283509867462405827996045678065484082955602092390241559526831498321912677190874324161236115245594674389371794171053456899211620269681065035994641123756074265312400938781226209792482098743689499551557589662155381453492492510365288930890255298592889403155693211204567919348599237186112550519878453303586993981330449361725101725527891269644411397627661918011002986444500870804347771792693615431511371806150308068001798208275082181204192844916442647097289547162998525847770048160589519586062054923286366664963065770784807730321396990242626156580643371008066806071837999549003629694114329285825423443210556279400248172222795737938043979687209054154099883629923374568708501787121169750403586653334267339492469934661245547064148199555880107820625160167851229533012984553018397125405945393975592270458785579792398578146575924833128792431458303976379640695928170870306911142232541503380275761259273364787389985892607682097070062873938630540884097922502400853919602017086866931305668130564830877059880659812812095157929337022220336644324388819708347886829989536688911128055165851130919352464161836282711201065813004869419767042607311944738094579061333115379268579523130994558498700894594769300603687067411084510065980920866745201564611678077566481343507904484648332771157357492693796010856441437565645438750698170308735895795628592289012101260134934497689245493139384471212498390878695045669248773087134627662510404292881450643024424982669060257236394455746261882807957315143314457281618458666246310475589843109883482747587615622452356730385588714909166715590916700288824228261904790706843188682260236659003211744084745240435597770215053105759768110793808503532510074710439467206740212871595008446141640040251127882719132963518876335008619210558237849762883610215937422926253887436689450654143584909978653129407290434552429338846584052704439898780553548309606244784417662826568220950870195513670044902512167863006278239563717696439372770528437206318945963611484164313135999561614424915316054703717867292252430507002930762851204385656769898805240162580482779521775371559381692950706841172853849865656318000524621344373491023788227444457615555706607415988827589476434934198399295381306385477142519045860299129448141257449053751309936546332509793563728466580708165497962598912165195398425182123398277110852432874087258171701424037356219092425917775075592965546238482216828131020492231899484791670369067218645365158449801328165828423681134187556284979814107919922794485453868903549461911411793820086986733105888880768705484647862258920084894817384486387148560155577856619138375438320520081038634014633192866976023440668095495176843239938243971284268028778163298029862741197044096745091412802566382879196820909761640518715466262779785230745490545845153136592383641317855844855343666730667607905254391538660546758070468112448675224144100762689861410672896633810306867441172639750646745889482559472725135765010504798518549697795807581197375748444646986391905203234023012163628580439945760387482536729310442225927437399750584163002152917375986101657882732604095586250647891151444207863090132819444280541806483809600944718958287565108799561695141701850649549162876622690726644244121252943094515309765883696882517418233958596872597936881899219976994110253490659559399734839857852807694288751542993027989155648117893673512587568760041329370421614516373137669734577245961172176720002606910561491979585117780243367935573947924321189403260387373526844301332139376534549098101658898896567086948271279076549078752380253517636029403368749342468616595414135448829328216926948985460298119543586079246039306879312637027141968689075418163735785252730466772363504552665422042698275298636788084100969304735641342901516289201936820190575231807935041735407204317533210969101824533352768705567985200916593267261168098026304816460444341124073893420244026025592776706472868624738830373267706692531984296034903868583645589916750414303181739025068874028900386381681655934553467779330433994089348993541412415567528002665408178388162209505177802718191391892185888334471466087495274608881737330158287239664713622451207848420059196211026737613285732951909419216745097583784217739581670232300941975343232601334960749957290381266012139985628487282246651143747747430238003078107759069740697484466236988548667504681577448443646804144700701675138352623755126348264191499477265419384374314908231309746707487938807786228243491767099015166233668933161206454404498431093385343686369247874786803692730538632710423389076579813412429271963261209217484553856451550132886193498174078186328770685211714053670978775172351574321860077855934408851308296649507669014367246731412499879702757252429136002028054152587150271605938079863775330821759078455289291192479160920468803634655301313268899711535597988956300262628907704082331289687478415614401971223201761502430844019812636250898328811801713866269352559769501039443846940153890041098162496484412727994040253708058099569434591550178443477656719982729507268261679500673976963299310307659735094370718545534936513837312664406475129644280147633466407025049719533159711552821275163982478367469319452359307175368634312773086355784750193541722445709366452692124955086320929284959144059013183055516636792295362534596060758882275469073682259278366543450821417839147969905378433164519882986834909199857216396929683078257881655120880056120142979479127126202688057483135843587509499463996216933022728319416078255258714913101342344068647804420036336676836681019228942618147543685380090362902321094492765743739534276020342979692759750757124582382295361738004711373903193098760076177229795634098182402441553589841193149007197202107889655854316628488243238556897096897679359051292473513706530184879038517825916013635721895981602690659673398667071601368915579758074630571927584511231778851092460993638417568828985472204109083314856451730992426690557532296109691115714337636138012269181287660641903656032201569465569538619139443400632573970425101744335361244881436629107430183630857944345770931686196655751486445973089414655476584930525860728318224753251336987949207410938732148432777724107957393125626823792856983911590858065079725766154722768673740820345192552634747161005930369220948370282251696789689088141538923771082718062251292215648150211367972726806319068703943713214881361273006916559820856653636401853900900324309219993531436105677737173161377606223916245607278021843412441292711320056610807588522042983470723073807848831672710577175568324533476606390227514181584874247774327379081407245421318333734821943195570229130881367587630235686708841796471937729383989483170050703916326909482958540030400237068378914686725421550765214545422689632713109843203086518397596977264726796809772291162556071917663859346558235686862602866484638770095883846481466156296451310094589564894518930394687982137281562314372027997596246568717442112035163239104952485437026587760267854266228827683614652409164006383849935627014895049475545754920005670904514618887269756805952437525443879715342130924205729307316550833711605150255783672946939182164570763750840344288111720576287842358625823169926884345865747888138948050119352873905290779745182133879678644303097330301495033578366482684023123053474904094318971971841064301186800006370463314894388286445065312129209825366275874885479700114418249040164099275675876005107437941312858683994570849279956754647586077026559026649473280814774300567515604437837737917701618793469948206487645889756027876445021230866938457854288434264883174372972232278487417172951677354766517658490153062980234819682086635977672643507187818277068566145388877930574784281859685055794133180605744388958221702679099193835288736145101784137955351201901300182766784077716271353820369835607669730899475022985045326544061691034607756810714720525969769759429915389406156419100925368713227250253845721120047380880421553242189206848503319369627785485810297299515394762653047882199399295976609749737165538531524347345105970903043578440545837418314705349858478820685942515736760024851314296872811907156754630028110577330951456239978640488752836402349301174747070566278277960636070506238686573981302465875517662990056885394927104426016679934399052939710823947330564973753347686517830005206924383451164600510633181853451383356707555789609905267603746593948756060159876333581276077256923931792466806174006131260451855462182573282696651407433834663660300823079331925184190517080288960644631623043766131665048719374132220248654007360004195839278281392528530414747412426789245949684562227040876358323704682382141357068484559142615150863405536253013170377602186532258988335008861324364609606387876184852635244814326177562935173005582307855782645527336545332103985369334265067713328104039240631361830683608219843232316201254287770191451898154486826791280388719637327768593144898285802122887214861826964101628273500651892646583587677740569243283232777662242075409306973685149355634691514378949265675063964026324750211526150790339119188435810651909920416807923333496522902007472864510613769383899854291325504902865643799037963317658201181191924918998806481179753146363473582168367394200855539883487456192003316724809985482506367319290547910188136324596915763808807315338861161992930821928785939759567990278896867529433592155255773131556038992495004250645855543134304574963231442240297793201741149453114671272378137827281451873037123494865730862581133499972849573235917602062866455055482831529380893066513608324575768744202659142258481635052868827380711064605197271382217787853562417344174661385855442271393234934147109476729919634413259765172017988171373760765964793607251338571480057679417999630258482411876832753143698384706757235463193188428079644531801164574579867582771552914384485929210147151545963364679565955838396504527575981721485777987202246535757576798620467595596644841220608710778580835831610817760844986959384272995436675123391054228424086295094662261363212941538450328307630105448971581848361579712596424351196077625383116221351310641142497429566852945193956506239402347238025014757067773959061708663963992967618300286660818584481556798025076295347860077792585052287019320585497136877428525838101119574192228134562760805696147331342520727380518844051520646588939206036189979745458014111952856354542269949110288051135405332861607631502228316377881317279187647896102012670785724483583402495448656003436273887462750863917538928549733311019220195969296472921211299412523701643925200712831539588991042875057565720418183636503807827413135320997141695693799938768205298619885548794995285725855014147721724892451833821480250248844480581971652723356850434380008185858791719079078470077781020565811691422283778648233253461007553313988931681918861720547259311948834428508635568864705652830224461732693892772225166216592028104462335482337405022827112205911416110609360509899594072668827748663422936774471866119278360094108578270172315411726460984616166285667459460809826095158877024066639669825296943845892390441330362642847510265965342656766163197607034363053143944716741790391257328203228749951993014963180335881891039844536683446827835043613443215436160139158229817684994150936162642211035463985177393389106310626734487069671611295233860444396832751590100846174328951036411194917493818848453778927431982978618043842058737914358090499621748115692572964110466363667099604483417751041135100366285992186145310158416942242992325745696914871678106980652135761610061772516010985513785557828057251246448602948875944935505929344855378271933492249203996955283694045909075323213248677024202357280399992127611249168738296439058038557768909996295586112453234664297440794439530364179445732049827482938432878292631428342675035079506026560455688774625232056881679960634804380596712574057605472955531553246290257188109622956718418876855866317373264306257614325493095058805695048641424794796089009762841177998968567101073752817321250264537477212993226394850810429433320422855349944685819744626755204864707298437021087280090317164282271759423972388954687066669045859945544364164227583400991349719690715700441427996315514729834665419680703714718793155279086912797910031442717663150383885963998141521620399062601440594616261436468052882212949911493801721586959924155322988200191365284094288694772686232178131641325253102267350269578641575096873039309179541178107992212496566709044662705456970514182063234068220527699888720919363503434601773536484094559347862512661049692708568167933344083907795502181985665747572011564813358964322283654956523662075516190455801055657935405254212209101614849432068353072947889240495683044686307780654479810975405398452581443144575874282415285523378470972120801406244575964636181959715477043534511550086522853284613618874839397011136580901833448236475999736809934023900158868497362218504218045682691691198768649335313651120243589130059507405267774639445861326982716438624191095374083454969254134480604454679776521857228313011746228241083859948387845455822400872401376948232442238276110466680449212392793925122531916997882394557717735792572734912196362918821492167111551314263778272839483721650015979474593743854017168335890722743208109570656834125019156837067590328720415960423832698121549973846392246914214740448404039577592583234236651302536517371787244674443234421307922954304059720778430010514808289221849610189175082011360289646005136341882185838439411719238110156327644836468595374848150622579990525222564327685908446786442662253464194644787499934620296785520253791101169069968165366310605346763976190520847310346364620531322170345851870977295680267840346109002313431864541804755827733222786900792216702630347598198179269907120044739069030926228561156096878537452131421664303807354680098517051572822838800309323185189014180982788508591926546036386428900822231581563397666638962898336216802056486503096335895169537131153809380016661459484847761584918946975934130427815196154640961575770010710063403313153674230468780696630523374316227379143916771624815674276909159616233836255288940132595843353954447953799496065050262253778859114624804500429703064396678091663508256945205844016919950314958617542128195767369027360149978793703613037044516658878329939669753103757599950515576004067818396696228220424108588317405974928410237958841641061298198892067715883315314491311031694632161284041840980035879798101989168278317499402950792611280780857834869173683225671331132322098419721336245997248747806771571294802844575503860437086769121542727844916076078081882617494543318742570162214307179638147737280416724201782694907298042385928959366708429434785379210930229953063958272434724482735968096850159058158281241049102708887517589796220503431994443020770327257616901205711173360866867401251181301900545357882740380504585075865689479318638331704711738708684637182928197283631846154400544339543074463541193160985115442124457136209429244075509500696797494546390681614586620788167004768414841812292438833374371596490831926622674469775352368042955968747280787903863696514101331284088996661208399798057436580977446075071917984650581492272513333178319868469886023784668770906340460878476528039418431444873368169731851226952814476026847787953490181911095502313280086702364983364000764927312483891892930937671261043021054678925449339842341848412631076867125281106835902035109126072502837431383266917662302659120670557421720902568418754166473111085810662070407419041791056957119011251071743052561629860130861121646895578403469465930153024102965857752889923693349131135142064589750802871259176107790254955234942174276789274287398826195969773103633504786617966910561357704483470295226458942834196204514412271439010009030834572249457216124785246115690858818864448238865305545107656353225970744825890991559894542899828250519395550943419590735959157005719150602610069659834017581284006232035694950505417075102358192386759478283064294038455397227296592318344108091287958272948677467202765754816544284745332847446874734395325331465438777411470173024159602083575357585674759926977077458435843031855095641418547538068811952324576859070513088096297617695148414818423783897390675892445911483065189565740593925791393133345836935397950514117130292347743473053373178391616581021778753416655317586250514979744529558463866416304508928770969533172880432587393210613063112245610520123369377035310074265001705848786847531019718855620364250683595502704249705489302780939819482212454316005717649276468848345208332710475336920591977777662218730687918109520108037543063489565680933516467841578368374580086759067999486204518679309240055797109081807781523582851028856908924355914300692868581427774924313248165432047816451093540339004249537905324652380110641729431109985042897811436773995816871375670772246057144013720827184913220905531938638333789691002367726838586021813829463251363323716519298790695896700934315708735524788611337239783493781721301347434462885981950213754524083081821114818901676780089532055291571507088909469404400818538617138658886809785466814516620767801001041813931302050579340009489754942105509998804470489669133472306337331466561656189001527908662089581626407560340007821430685524461021831274362741266333702665988586372883586907531532998101818460405618493608842956439116156577883066461069753892025172919528401876264370044625786467229544786580966396030587152516925427418279797365199205230082796835261638755289815389305048425459995464371178524966072641465220326740348337424297363151247758487901430255840230688657384653311779677111265586644058158274712566387714958717119512000963567886240474835918422495344622744306424238781409800443977602623472834435606032670163794888965331922364051373764063182869048804022238065710882744662067736031663147561191314748446250144832861048752939945207426614660742261703925281685816596351193426592585117198022954931239003336835186560858041804667128923870324440368611984149819959641660074696759525580639941184029583708996538887602085175183999032927166326959608547953934706225375335272858778935425426902210924660459702940689673974282171654136574781887389619783391845246786836624203163821667220467864209264267666548494647421388456535670959302998023194421122155339546069651405542039369662931152140493924880138320925531678260774540121759523281340878461975258942850091283771229020980442495721427340142324206534046086877203791833047561922542015818073373502038940191299784778886899964263340622821630382302704514912540184378277977228708112515499635807237473115720454604571407469880778394802036687926996088372988442385009166083866280381733348073877527321767497189694754132554615177400903868717491242773037289939292196332538917138480770320795684564297222984335382307387880798281066280691262260727342009562521762540949976449994513783160503879450818465872187262481028559882944024305224631150814828437484799502951449548177448103758028961001283544333677242164210474964954080261312012211357171390720004536081070882894889863997611979717799811369326697101248682067451409634252344915202581766525200104988788634129449890563399280458892749345853155156476893186777399114306812571289896045795457264733681271616960187742648280789013551428035453646394264328696215578119340106464705336369712104959375983661172580013921271932685386063437414281091216512546978197209882930832278145613745260303276491781217646873644555070251636583028675729404959680007377913733983645610996379407529252164433589564649593289237906330678514326310956036966627247964617832649879066136465569665740554352795011910911549872065629497235709411867826626339255028876105290112136883560797779272274800340709508912852290302720964014238373071095976270508179092927434674023349715720990048051070268179237889084282688498031976161748927157946975156200977784142280078493390306858988720823624738801850791825558120368300672150213294703032451957933294736395360035170428796358961042456499709844687503367926905552010425230279349625862314122044685145634209046995321667647019743876756811426322878034996528266137178029619939314814926153308989179209037401838032266093700644457609256370431131436772237061807659019605838919638172698459558044524322239477562969131764122047554160234184715411924292714763034652610134479769630397856536939893075368337226013860003157907542342519104949583119098867602087399894064278280823129044904709187254907420250858645189600157000547660831982377752384514303895557311427095961738688417927781110872892376165465960648743172627382719221926100796937094153826424785744516215835814797299351141844784193845358166391916184047152007232294286561672232055802442905465916192656388025175808798598290648597662063982804492099120199133044950770318696555399440743988004798231745334797890144604305935506836431958613115234699385824907642800956749213922514896819258741098589420488122408641619131484208585987432070455097672249206527670574935521204377292134636527171612970822232951427518678072902245099694531364038615585495580182216034365774743980337536934333476824431849736622513045100500952146079957940864655150439324637058120532575416613808092690182192084828151566153207364463385407073005696253081225510267322828449359492060989404846508175003628945243716738294717354266944071665347368213572666301118087795280090882535298378651288902406536755062851238634281034753291503061805311579220566864870433805065330643167483153155436070008006188833478685125968616949438893194656525533497587690162823646466059402332047746630838165351208117850435057530557902843023400677693294996252617108487280641307971041500592919102748830441746516877630310055486713293572488788256800743707174516876507928990808867382860614029721442263301037712003715335372290912616787438774474152880427222101801276738466484584643507524925143379188457882441513389870907503608518462794270089334752144405409479783000682137554877982457435450601108990624122351990500806635510747909599069544272891500451091576910901125958487618059386299702338818389093453743170766067223289330614673816444611225652008342336564140024151519484930608370030123487438041948906835415242276860430112063570145370310849711096286934549395112899110034567496265797337579839853962889480404062533202496742096561392978172381411636802264182582454713834059457695797592895438577239765959483762032245528604310858396487836311027770691703016449762656324233881338239786173356989233381994622126418681598414796147382177843421943395798227838396066962637705332133687389021585648756790638401531203775048004088828711020270171737206373959781059167981641841283499242302431785150426403292365412870096994145305917063056992498745852334513133932310422626534862931563122785888891545920996267439240224852843810881787704142655656472749548914601258500053613012833568948729328906521166070139138025680884509283009639111938600318981430578574168355626709227338594824832673858852741533749843296713881732446816586313620847654924033410621455691070107038835564310523215091884035317670698575855479139885799959615247185634432954112675177975710011841157364354664895450749316947232045309323472007739728402403649640832687870735806599562427569190568063478969182230440579301035718899660515713885593763291546024643769101632392085183045426774298079214308145614706280975393780961528784746664673103173646563476761427485337076597498490007474177173555354412691702436575429955794495832586512874930906457581962092522744819596224467629238077629644624034162564139405937202907577688625935268079854405688360790001876863995932531052325697079302971350484888997471421302218995082876576772089464109483404069934638535860129686932296029866021516777957229287150045720337526225746378080099719234996705989363709869291044503348734187505515245615681504075760100589001702642283454854774968558132796013293975213489458558332673619302527278586454270915536452482106550178350506506494737530407391292210110088973252734211438351647741476345312949341075272745568495093242446774524299240972827727565693757632071399526046645753039730501963904206049848766408843129003189229513084336707045353003508615258825351101543333571363601634517756993363101826916827358092001767854070440379064955458346992373076178438071520555468561898046946826184810579571447675014176011785839355289047811463719550108361728976298345941309727138215239624317906077358082472650760590059851016805117022204407169427471318584004675306486638979619925078639104256649534543241118136912764852971762006759012827412551963603203497666675564343765779036552425452467264985386935644409344692236791605810836302633844145732617796685304587612248228551531857405554656788020214954610349489597493705184426721912834409219359530533267939569180831222597058893079101092573446611036779498101585700933241194761839520229657398512447616728834655189878114009604391742772645229122355466849255412682028333007788841445996816324393545734572117603871856034743635634109202612430938173923242151944890035145815773786096003745491479605467659295643108323496242630662532900271948092830790859838423262253721809976444366564181179900301553884339364713272657330556734320517407911423807391773803635248934742462669996969394044904184039862146670003858103298996672309309586394398815998666379069569246138307985056012458767704423874919140944379348226047900967388719469222636166914417109804854737649983302361357017428347368925380938320032001344684453488220420428835968233366494714020554360074742993449081185324824565247075656442723893829682348966791907605997970292996446591831704634722742495960536648328518175967594009309048628799361048408071805401939998472810120234950167318659009071535036690251542292430824363083470091980545208667574109874853686896419695172691704847424326638409007990560104595952908117611943219552786923726282550443729533596973364384239292840449099173269804431468235487652843549354142261600434262454756925761910438169518275632276146714846556329508458560031321011127686859189101818767185997988738157035572442526542330081888907689698464449079097720691370193308370541901380915990999272086496729259933189082414160182888706600360335460449403755314402831920596808671089792428630823173672913044697475138943433450396637925964371834311391504295483495679727811486481126190102844403741860586613707011790919413547040231805112486429583541477026108591882778269800798757615708173487887923515149748781560609451845301822359807326530699706371160490648820693209428028892383683184116986219233009827892685886586769218498279659908676716883893185653247874338437458922014568107729500939997886179884168895851067796030772453849098820717870891308963699202770750828084957923414517783703711302549098656477330543817150332641692577566572083624180895579028717889608504206581713282516095409039226485979179408252066897242519716835693745273515438807289442661508116034135731278388599104460409061037813193796214884086591905788435218625664209361073859587830991665468626184947280102645336882633005909673667127765022564788772242240285194182101365801944551078594975180670589506901691162988934734407451169625315445189845863962152178250295372763787123693518567735174289218871974588047478763458059354396288637982626199479520069897381035728434692608502436330364503284641117757498196086296475110591829635852971647450872117178079229164629051456711112561815615828656796432453477249900822696389003825442370739918819298893597089940100525129809995913725211218295364737706878818426162024520075947578266643885135249350508191363727474555758721137145678705237120965812680658412409441845245461971411373683218844515978806031754079469531647526633717977598056879670714835878679837507960981579861037085864180841432529136438122774543341822774542461019490648254934524345958579151020798265292807511998715317662783515060075749769347973485967275405556514355259007790678772739306763483119691479078930247870370742087119478260480321809393827847662133150612082672658804530440855396190927262639704842941410458462718246369089408373432751530846716194770928629750724159919643673891886866505625131047802688722436213696891178570353567289822193810874463343705098220214365955905699828942017757539198652673311587524989796152235487975478774948237467233626037319892613640914568012377696510517876640550769563081047882952589524293091597167155790055152805851178922434001802545076182463876392945766622420604178331753135034745197061626961349828160808672209375749728089037283551870399198126247638672038445036755488663956656351775265148656910834803978144382624339099217560955276372114646018967040319217319814131938822280351088181910416447443630035346442714900658058413640329004181692545939082166513597027266351410929263830133530363514183731337052627712300833938901261241811583242169966534481779460504060183809675710399133285211109191362197782605538805081360879613741611775509134269515756946415942440732897971800332212086137982540968430208466068524210410685890189981225442269550212633266714894237436768399979781825900239518157301250000597750123049747320687708137804505375126183600904392649189272040896377928965854169996524819735287173970982064779733736056998675425136903578442714009701408227025362244161670129604196155476779688622483479890572769899375049070627632277244068846704890608810077936994827400074137687325116165002337006316764501704765294604899284338761107910949892517255348517141509273726089701515234758944141525590919233465249923852463987266108131631950473868598737637346009307091311565549319441694352599411251746297021920932247102942066311423120892512024373393546023549568662780665184196341065615719686753878675707031636897502566085126264944112417533871341531290005177356189648689678308436279761077760357987399675989288816572251870593052910801532655961517988634252944665031107999043249209848058782745681882629921021523333916879204181979208171321204297657895994008822396442200916144915500661075105037259166256276140255577003640186272273904926666092570714941733358776125990944379635568380024736226818190678175105231418166805836624629218965616883687139926912897113351050534569763411624402102020348849860349110970315001019431769695877902179787302438759142555447213122735361798924374616809011574115046397724825742163417432902301801000081486844278260484406210489585387384375737217333998588233981429126133916261461314739741902096656353895449933824366010591630737931902277555125255501804930412543722658400331045235232764728022937528722863695839890360039976584612471196769401083243178808305219645590653399765173823385594651984983817916502604805654713439400090575110863975203259416993290233144240127560397586868487924188435289780606908664239732758210611930648600993074679056610111309488761403791803007014772434521619073759627937969952464888365159633922396033392259489897450717919028982191136670978144974473241939578638751139270754079481705880176216262383492303499429912867985506186267070000634716609352074296488496693050013241272463686935922024340374022304232045284602104014432225301511514247189645423342841552623882991072163331559227173502479330732732144493196898520124611922805476259146208150164418796703646551147067027970698049752069879411312612026755303517347690155304129924598129808767440211643690509774677493877861178891767829270369601118741631311551154225698163162799591263397756178106214857596729005554505669849507352740748717948130019573785982688838650236036678415198022620314700274033273137679147120964093762023020972142757701452250961837131633126752562869237000153087927108466220721529035090102815174069542093053534780937541252100636584595735087418994315169670907325314018220961199392464311644766716145725501000476197952549625796214492609608190544230708927119579338425023416078093061078348891894872307058645230669420712312881267561996363099066931495612663382929714289292422083031528844821637578438087868482890791991178328067382560188618568942423843860566965722145106131647087838465545459584665217120488553414819904731160667390308535143227762607569416999060929787452051414599329421583249975743512331069702320566782031524540150214583010049276194419594778299429818569081675594000880780837993296993816049474353432305775851586848978393365104604819336681883093199088706903191976476221367176224545263808619245469595830151820624235178558293869213073481227574069258673725955928260390293032929545106092914151694802380263491745673237342490771027610085041603598316016835067556469363662557322586889771140447451325472084214186563089706232122668859860074878324769080200657771996220614240417670835301549589011057199699645086397622458865695467953918053132548694480141686388163324843991292595806997448952109872508298973062404698461895645309728691665980676666686897313305458089011885598720059375014672689073918040718519897221848632090357418431353575819837763979280499409594536049412333447938046323951759322673715341116080661785727926789553138565905646929204968018432663036890887439438482128523083068395652228458431776914250191862373103436099912543930421346796722254580439523649921492082876050942443954312960865418445084109567161763065126039075612622509536975182470837331243266846083054750651315261773151428570141739217203165673949089170155683177380442451670260103237322438809540565948744077368899215475278385934910433828368835182922785644273755308038939937115798406029566747820669773482002659372597544215093501368281787484154185273028409948807793002407557895842048178621255580392690030401825929950958886290840905826577726277785368205721927867771819088392016990971854884296590726464802838529576127044655264057013157745183180928992129834795380202231194570511302492216743849214725650770254155844604579688179215234524510739801273645021591479053972838983862135975543364840089091230121821375356430220366251791765500094422275596703457751606889227936355065298773637041101898339571605676328788381865668789656654325414484223675716040651357049873103128327349498849571714807023225586006376110020355647258157462823779786294287247972432107949001883445845835543814340407513721639690346859013343586668260797957064144474500166244015989725413778246354238464949303126723705883903805800917071736077971826373403525013427453043103863252342846217899222727072955346147469499862516126137347883187964316876214480589313787205409916461138160953290489605745664670866211896587669258250832267400811093068111950252707945490103986870326950499518122221148221768900605605697723238519549395506877393437706165948841829025812713181222953524921146726180822319542838753150999809542713514941832352309847556190072360319899386816581126192661575949822480086788603487908429206447400684610358340395511900201792620865159848708380815201600973608406890038802304013272889989000276742730640985254304967316972043061086288336773776887949361434782230428737889477844074852029124437726239390747709220120478624752792237823497242105205625715889979483272066499547748313718245031394256107222927067919912698979833462781281373169918008799447131355887625538357963166325918156555303061892724845469556554277514370467115802980827305749571434198581238645999274459941329190188831263161063390738510101918063077104028374340887320664021504893594742731759798986830819635014995549064233607151722793267882946556385802417342889711283741327406971348906660767799135280396540647379565458565479987474444140693806480330918327401614927561210910571310553690215746481295945169309319963225890706507745688861019720911938894571146161200196004824122016100304715195670062393906455256322097757821425282001748917370861394620764768585165374592029000382459145409726274941274260724253767045813082585838929371978500414336003965167940382940371886353371522770700582599941437525849589831889314134079493966211376635742400838859501077250314733578128714404111476763605234065592575260704218629047783938810026722799345301494350128138003193696698408590807565015544768720382941898793989490031322687340785572751936211795155090015586346096989465628900863984320400280309592375993681538405402461725503166607458870226327569256820315171983712124144187003853376308120747850472274497407526243302603756381969961888338392110945627537206762402342920511691883083951811685656208449150415063941742991101277660938756010923600651494488280471552704108571087726471968869478234816149898473935070363051301112255588026545471526084428269240392824742877498288932343754776773116217692253174792119732618800115040970446154723278735778133609394804439921710546952742448685271646264620119422606390675027083228784932758916451023499367782509760339850714859015434717721720804848408127927701160654090167244459623473438473364447782761286594258845422282747486167107154085080417982183721407566060781722884813455055596387911979655279315475273899886317112794841801798271811776925712767831695321392456774658575625713321788990040545757378057663439912230424337682627502265681092494028619437309337284012482945814033118795572897001893894408148567184442399611245611208589387184243853029324395091612388321034210790195031218889621725717946070711268946731399818153415768002756352008632658673102855117846683055669267382148300690029939017353657442615973414305088055124483829884771762129461023414073716317603171066301136649442038602920028213395817829444253782296100133693661409119134016696841104743953125359354324223556053409444692462190252658871789180328873456809543363099305294768608850660421551332098829394321020600312036259293480926265596956067954745857617881844144279576568800427914501673862197114025632368832948485404109313548646613233154475133828906984738558213190787283121288373526028009278587992259120630343068028793819685550478160026715845564219674241955064714811582177311590493649625550967582103911927509805910028330311315726440754509462753026489617385950051982115415519959691229668285900138784295162245287532324862530006005442356761345535363317222798152033124137573148294670799151105843147731436589071363097734868118565540892225496404958059631100783718009948977055360578089255719887270994430994542419125634420768681535032505066007086400494904899841954888245638567160025381602946958532052420303981468312075494457268212972189831138340801497772066535350925927935665815804144557782415521619097052810262297669611424801442659061920250888498500444690629955018706889036979404775973225715677890455148166777081474600932307914844109017107639056249637671328026142561272933783087252425933307342801882710307078704380605327368958656157753605101323696141301924641646158320981251197364138987975114993256020486873803957813662951412313337778136296412663158419177902147125218575162029554076436205186955366032010246453708262560216332091741445748065238258671532193861391329628640026529560206189841654807596548078143694734492551783870295472446648700207232294116006721100434195339459468049099203102674197783599943273081323266637388030658695638748912213813920631413087813222823916499726575134372877394704478677852796103607269115224623593767759321702014602647058339906884959883639566670054742416008227978070187765978416583648006532958756498896209357715772945401625580838985127633594986215469650658821073247042037461682782589360379434397475678424951184589415903969476426936401453064331826495725699492370192745987089413353319248238025341602824897474156319774550846752930891833278657395539595395574688078957858622531045222503918444017234403986428601376445132968554682407680055686908106969290434386998500009557669403118970779745975684967085529045076321891138840735776248012379761349330838839046583198222216321896027488242294260038288465776356577368541923252982959395223382707198107773212016321737253246596280478599159335504440604521534796056356390635338829854019523925249137621966692538271307594055346359718945519348812425902172450672570038359616231625083240905742596253487503087720881494601975116645353706490966973508101989267550538000022414821670637991260422992427770640509729643777847082515060918741909721821745685922830080757888687223623473449137497427686482785647981152447028798142232873586611417114939158284590204863308916244192985453921464786099722971173942647002219995026490035928483689174179341195202929921549376787845448236082821538452536256501487004094919685688272510481079987331515718910027055551572881415181744164881787798694227918244934690876419270432389469736512662481979014516036329901203369445505610832449876951834945778921576235319915691887329916517932630583078623927664671785351805700423492359729531229944929467028423324413878766156459354579598248568585808270052859112603088969022566679908626076405923739253151558494374013755681531834364407345773569753792104112915442668422180000214753712653713554944464751110229241139712129424535563906254027796545150052077328802953248157256078486114391830289763231378826000544806514509349660020938736079236094622944487923429712533215097951228960070741086524587987544997418353857108869556902020374396146816213716144022498095507319108743630888983258959291807932825591648811161889171886778826432045490576115344739910693267617784228929687767702445729049834616513225144248801009960475529440143413884022669119341429395836273438408418405110190305380051501216755485037517161588779127706965898743014498935753697524967230416005324876248010582457819447455323156196960005020415336611412036563202518085627557317535907565588181220523311996842533995455818437719073993946002877865777818075922695235776139744746324427245556659456324540971913410412168067604782767560033130375394321198291934897939874102779738274841533473921696109807700971594804834804913539527047139102798686662273912049588972758927205599011521230309238122900862423229176162986983883681187773775069116575291135616194396238495300808853231517457045538845847635091132975973884117488421071908359933481487696675318552469558132318984087448959435994785368555036666022160979506582361993106825623959497063874607869718570539242949907138528862976883398314862841499095558391477499452217462397168368600106495598859585973343826475444258363879288352303173240053176140111621999835783003796909728402083697610994940457386629762632731909439426020528608346333747114641188799948484765754894158803212961552150275309476094347960048178230063968602535675752752600285547713548022431349761162187225166952194603667998633332173576947595339622700308266763810819547240826828984046687635999734519663657251573920744803027770366721981412207597318470023307806828801675287608750382770686897654881055519924619125517170255391560521627366189315633466119141509207478120346206282387654655162963562113744046462702367373379704296009543981645186562967537724973188885891588443300256396250829126455636785343786961022103964026753225481947947215420968528006738798590515000820956579411728953901295328801703715544253651597559748150853492303741890509190785607257808849076786377277596541732164381763564602194509721912464972092833427170994167716662950153211670762790071651484314265049836495898508933444344395162376723976740714354361426716534504128695589892038055568672645798759024870995492120192449196548451083712243956958760458469498574442472602494540239442379855056719141209092648837619674792058470820407987564559300768890840412009626236572269465013985519016319915075355555871188723649751187817840045287487497740550787437500806831241447780085246095776972150804305182434117259647589750246219990404316528421709803708986475062349666715860738768748849786560549720231866166192662775795231762963517832592039688710751693536994663549001052544340479128177377677154996104745435828649509527350779222062242930373516465561178833043280459505343261591467681711234811329578601818941659016721130926751747786537780698600055363041508472225702083541328935471295744490645419795935652096090417934781955101794145981952942377567929245030517883918715992043630247697333255191969939107820160794784553195592941297500991515130690736795765415469262199014380588464426915555174467179763961362983249068483198305651456548315885305809517615451963153653007930882627243571618416091693219026334173661369616626641847199511748220145078743353816352756651127333722479300450813478438299965422930395255985890825123246812220573161534494935084445695015424141837686956049812562771063475113517000755343280006239385906194657997241311530198043792107777990951706489370271620412183938748628885427891245745214169606462211512386747207833151171926873562058768495676895125101564149502344752541871476328060877405962110044608638483546269999612989582530885136773892695025098862430726819762645713540637247615688947448784282828862523540478081877995899797465624311395331183609172079863673446766567653630360073440460620209361104116727371504743200098479363961321261609134771452431675599722939442444093247040451963313116903337132005624979240553186681758131072541441663868254158801566323143318301142364754607258456679266707983091295759420137297936262860178179668063627849579023008327563854546817326878928789550668986984983493840696004131820176453127725932740316519164716134031810431446045348101559682730524947752703218608097179771101919469638912682467756359276455802090084864174842173264192348702721050081992574217014699612252869200025201494462001750033153858373882102793753283002649743368768427351579453630360266828367086848215189811859468116152449665256605868377747337104223625607850299927560031899196902851831840125156897441256023288437479201429023961291557108185721613265475616728285783402899952841973239291964013095884540952065947125219943810505099409363497017671113453356044228756158217980709531977067599656201597204399069392171789149199080855856308759971771598055647139137899388539464087587787642040258411141780558196490119845245938579265623463837301817984633769947018972262729756106195524348415397885889214919691771021192230649600011129734817546424275078080267911488701045835819469918346642515715541544113110277976135077433403669475009691783404433740537198993797777136275015949567028469303906030039712327281371878710506021649384481182016528247163483623163712437767405184589198547345877961965431676954114105433447746247527545834407077593677869910261674133072267258471858668339211538785665113719473467545164246383271832903518207586048776571970558949955295234420880902772287469934873223860876318285508835556223000052034302975216680999117653097417075037347352731962061886803594411716000791042447478238029559073689703049924444008304485592654362623637718576869237131385103128473367305358878569670303648061751592368470648007118529625280012859044022404406480878916143302332684590312482512420139071308805579488499383658234960818220786250202197817828482051972341006259456496937612927444403825524138609154147321160234770454032421075506868218278596746993959524095539754320998894241796897562662138477415188963754142263641122097413304332519211164840037311843808278930344285674572989084447028202110174543748786950681572428478536918069271728844345186248341732014388590095107277794805393184980457338677737441904483361428692561827552403320344672637388847502178538270273825022744552080219826866384113166658048530502579306527059353988544540602427026496120358152031368374610486892740996446929781392767675321350218885864438737955069788767968195128571581831869258098065090319207470296226656662454529582913453043455910876464160272799186880208470553790540733982000839525083636023140209146984125722299180812454399695953659446370737405652755176463930435986739893622394290444853244830272864490226425836675620789675548138839485720571379104548090024633640341918515575183918459324516776872597949475308504437700153088442995056347444836674514900267519029999062692776811819753227343427264952984648690852131932265799261331707592323531468878832217586021950662578688888730414905513530490923516632355189060679484776684996443416925591365655448095833452919426383177687920218836464760949383472382368927575917403969720229013736738093057377371640964838518172160860008465969587115849191696580350312505211483764256165010404854393250969753045182210654095599899798064397826093401414793755972835934344007915236164998953307306030355651002760198570661733733458050500394733533205455613943722661767326411739330140794337866454181682122064989119615646666990304984727779632055746359361976982394000910068273967985164435630551553273725989026459753632432640029010397351508339164374225884804396464634779414323365722955374688273437792847501464938182219730804018753100046607595470359427166234635392311433360305445451018177653796317668672728740415980224715946332629255625465348991681093039715848846133080720127412485468008146697711712746640442318882102849554619380251380565176196401517609194299515516907834107972604119965806093934050340203104268293765297101696634470225099139860898535627732725953404220518127382236866591054561398413845045142674319499521737561974605804643173597399940814508730879562999317590865356351323348692142911696209824327927513334344613223336321093741036787439640040873728866283215636313313060427211150823940078122427704053612440030999931583747256474818881954160841717008726519283361062677265252214743011451501746481313921756987343795250256009555922745974330988287677521351113565213015756388485959321654547356032572675143354562719476370921407672354010420083866368431134757705709530363789990834926812242517635621242536332313633169265614403397834776401916391988186285622360743555960520558588662138174486216811858747514184666576077407667535377687030592832433829683020014173547646897366601746418666221545943048133004520977855521509580203690555146466064392027346726120597270284473462219933638717962117366916986633629517184614221056231161451977633849930986639988396663499598488252923639093638428110760106357703398127383090700013258632808315444023840062286543064048404651667172238778619639512858200731072657124908729108258459601935195387236118907014300275223469584882228787838502993468840747768014003813817677831378689179981800466411299481074298772644417128233070768244360844751966686466102597230793153292131926814070423071947033184788023285177492742962514991332641220525402314932947325913875141929880270493773530628590191994751275886451520943102007930145123454299913394325003215681248550507849996644840072985722996198229306812449454444191901644294993749428707777243897569293614384150818247008760105595496906444591723685649176572301096580804673988457387079164211432372293025663572243898397803295907408669924066168516585731283504339832302907079971835078596902217647786772866061473125936334125385252770717058349283385366888716402796302802918339880944329074780687056045982059894413295201793943956010433971835975014249054356826781337714748790448380438109724744757260122227649290610927406597362109252608091809561197305942451275059260416144004847604791990375590649315294104662538333657176390726675545021256662418247490578935213241460582931676857870789075143892612929899561617834014539140411203567033413696705547486049200787639140614231601955964609037786316182242558708891646637191549513236854578593116258438585882179115841674570345786680540092365279448587277486878368412407982606926233516880519786502079530820584040150080068109279170693599020144372854532180932769102594076050771544352316631323224140259407890437004744264323114422154683210998045648867525616635493212045132893445014447612795848264497125638426716194632443630697428180701275550638535449393012323455955265899145876817882690626087911001263282133880286504547189548929698192520519346605792176135500138081984598348342363128317470678010285910186899335060006047685526269679368595131932309785204985413056152524101132400875625850173825664223749245735833868319568865035509480080198334822454888971525654134804204112500367821602316196826102368398173483673351521870375312862070822384981239797104698913176251227558222262875325608895988484368897878053280322136194416495762960960340796859158077974694426047405740358734474362307158715035673120284785117172104483421620210617849612922978887130429877800435560397577293857847814021912477402704936403770279857838098498339751399292204048991486804554347062062172117924130609996137288479181641086077696398435406840479872215139046058685436819591910958709383164715435696467388239896262263900638110209367253837232116012617851581221617394131695487941072027496195782696881912806636069970346970160037145798780554553907824879273927349680511179610324985315774995448852153589951920241475136167002357558320284240727825614175912713569779506480936504226478137261880561556542017827848893528029133237098841775669704508081240176319943384005804071180116592056699442720045313176495850660646913874936309160630494098573924008864471719246091163748130411269781421905458208084537350265146291406773152927782161577401585886454421098720892368596096819139210521632782778280382725596907679932325608665433300033146786676699073293447286319298661487736840322146183459204474085788200946428892128067610039158672275522595635444250832990651155913942072576771879942310330250582545058222948458365793346590967934679513116075275587119253414168820522926710927045071121250438214754141264450825505696886765544622497101615521063560889762617522569999336263191763896480826497494080851517288816867437213566865105007082329836744045783721688950264692730721628761595703151826447916112270768154394017487150842660041856143430376239361189831692237834084502319000863457255140124229014834007484551840234137584473391362870544407978144318237053937744559371535069773934074193820339605021225004312926160293737061832829814868132434542769427918718610810187401119220881741391568992382671347326697361090047868877634947951787295819176389199664666275702693876273499150472573890917574251902365178477138291577406680974542424569873058852374181003960375548195848516122846312011930695882020480532244875577639924165803051186876016896814138022855307429666533465459230832798806836556310715092845908297482264609936048237519297166938541481127594379335648916254822327245841872916921634233494246662238268666738620774117699801297810430887596758713776046851553667246353854648910621411797768778800125332590503796038229610882558985915188276766545815075285009533388358210055274437058488649512175918676340923088655989814544521286429048716860592598059303047957294380791814144635919494801509969850289584662826242003415714196066287244429487181640341191807616277318980671781853597136141869244559821274332959262432645221491844014627995582300174469927889177445838535635802600709796971189168151114062393671737994265754616031688092914460683393941327541784182431554825466641813349777664165867755428887390007715407053150857817491153226200771045872927472457795256878657660525571991389606571706262520609626572019335307916302827458421818930898537681861967460330696194848645458488247767259958230557358934889089036902509093242229998809499071262257482615375496974126490318980771424506873614817681986917727073615882250068058584882125739545525415761577673033942306591367425088828218312770751087683179533616794223084302539319860729616858636129726015142399483273624856894244399284610206871656071084400406466770762573793948852733429318673446476614671938647894348635797437878729813187085034458357890119961484095895695894659733979337673360023901205274699359149897142634244003344356464168808773130230079209967149122276348023285070637880347915403777395316836625621079479150546931704719645248869180215761567776179105878536859949574240313090542132110454390249301860999875409866483477771627692467508282560648165551672736884338716870728023358205399343845269393744482897511939754952781940908464326224835566778962741462869082017307744298812433493328525384032316270032518094660572064173957645564707315886338727336876273557088807072742353535643014992301556527645179653880408556156489665046873050401661104370830734302776703592938108652408800228568212580088900106763555311307815843522072453841936581431504772819253141059229019163323939212790942096105406265149472231656487944256497802053481500987055460917358350964903356771406678980888308897545771284212686082064927577087876406057905705124023354993594393341187536227397708319204235958850825388705936882325759626757015439561595792307622436831251016253727937105649157960022211933519544535729133182005362925852545894848473161892966917191013801162273979986283857617681125244589136275841524387211188288975915633435713197912561825146359746730057825334172799297201327585886218578054135583792212299955778281660430898378850236523651899516159274781806869806072514033704912409196166029618592874920063112409143026897849763626649197833263468603480748531769874434869833291159175535798729198427970397644941390672607112403304802501188904090054418705509148179938438108977317746678728406161329974210342253891016938120640136448342888097710934919526030136674405236266432320946123284977777443143077023833764388195862864490734098311305613307689454899847170519329965519015808052745336865021392563073243726194789222685508004584719916688489573229058261231778395216767411190319692888306965591911576435984163977471093156387030912107612746053489405884543304691556718003653451073357491949581228336112134904809944702963839622809380271466156681019510035756182484349286257061279948827773901969985110134285694131975080793571631264814188943400683211993652948754525727722826553484861484359202583850494253059200128407490963405460794679812765644561328946648650885901228821826622397955697930718051242640403285815695212415317631854517075813082119675641187012246476818109412384318115269125527337706795502436303107278728025591792357999339696631413183287377654500385449465336662864854769278762613435922945628725329413741061526791610916117872364137214572387115780839164767266684145780396114847521360725288848483907072041126164662364445862296811590625863158328951277836862751454271554603940548599447960336449337580682133284308386235967110035025691019056064360407891066513703604980600931078627845546824604998143312748164749444130514345856133535919599156311771526650128574855786806727640972106765953039097964180001416267765054344343993537701299307333604162326797042163646698704855077877833064800705822308355195923183481634244170439653651005536757719295223221830102072263330837915834498575792671330827550222211515184592268379562092898901310479114844205236878729885053255628385883744024262269139177716699784443542429026521708749544165402866536506923397729796992739482576491502309923264051585381206908287150224279566877045953434535289688162117017904072303919544299947187804504865055313055889163143285768288466498158555339453296451278234956668393298784947938612829846102685586267896598328212887270724135561905469837160426291646410238933907655717603680809573852405886391721458581536148813549667882656527232132042158909241577238987705118758117779278369633360471608517377202944456716133262671067177335698453569599673739073277375966356794202491679114354424848331372373854121591117746383423473790593091813060238721697504201539025028485616304820966808320431490029032153069043146931132950671136883187326903995598469501376414294580746467514754214073270689122484222452063804230185347784585589241626589770047997980598341616921224668692080028817211836906852885509824900525401671230818501327075569196881871855233172865570942174803370272999120033273411059530354838685237665526361745992301162820337290014288841053038750408294681324719693615663299236585876652901797689190173062744000775611734344742154829504077696501711908367853527691714633501922232613353466647564843793579429443391123670633930351908631248886782630193021943031693499779117784794824415034376512821656096805224914093538330928666224962134021787817437750833407931799665353817575793888423851774080336858641872129275832640374426291661557839941142498369922045519462898065866172253977138326594891422600078984218563214784433593262981371928968043403082373700508914640104356843549376047395578513094797511549544727555230759748029232603981076196466758420525121570711476703077940724806694575400434468201987803213139422358573634141066574658892032486446807350264060324892678626887314058194840674233540803624405926584476405769155201656978252366919007509421710678065732338229097810751941727006806189633456083895042893762255222143426107883117079041783754532411980910477355942036663177919091287386353277582936232767436496400666216131867168260419955941220400403079672292417644723411404973199424317053041601236793734920023250833428451272571177513004000144099957151374292512933265744053088282232052692447742392789570755165043255330191137036233137315637631060874006922765902835353686821967002377587466279399378255121577924812566861722297953236884818548797482966417067618837255781863700617994981178228114233875302389097217675122061877280621519574575567494780192475794588634688500206107740011350959020502608905470437273336459788064888700497241803084650090477055306231483674139118890969649994839288917183475935560321819592530912066036955242055517492493144859854651491027843414208883745747995227075365899615931737545316697875432021910360188847607683544432827430013972307410301302515031919062513646133807164161302239947110414930035178642006291737696292148530235017707954914459660867795876091049023988918983290172849150960555382089455670551000882372572165274371227074355433357333016486933943648048920316337726437718713277545513346218426411408986710133760587621258240427822394160943549416768230061210672078164740548622208712405193655193488644343552533925561357449524014747800754303202366492082870033725713563824334471034097191996624073764953064664931857304996145765413557248069720396243039413877428380524699108588551409432307464589738993526743599538277119074926218594303593373838680539241512665907220958891209433136663217239998085061696864919783133995158601602886443345218976772294757988312122425442665606151486598417939302003681452280565745490305938432934729127869805886650117168942125153224920150984086703520417167515187522897371070038188962826935396816169878531914145015442794468863950571070616637865878979853199280193898363944657978101276212615037771326266169905724648103699396671635604013936392304965520415119944788348156292875301832741631840178367159510810495053251599638185622969176381167585906765361739184164540209881129908085470947975023034976209469282785028205246784191323808621328475752118054713459969185945457005144383404506408417282447045146385164338378502523229557291818535857527037233658015704108203762294438553930723260748633702154106474545262490498912511601263956153203146387888640872119650696029946146812280165138372595725554882759615012320263039813353285468211143126212289077081220165307349501583296371313595480360226244065211744886805309776604198182435706283974280446327762845843929669171986555438818595592216570995429515520457635496248572288768898624609295772216730429962623230060090360232691491917171953343630296484293666390035320429747072785597569659489254392393874563415034660997372594468662105834793186528615848581594811613972641335548444835154481162767697539189513561259678701422411808923343156647995541583617614127007099643596697089279514076087733571418914847082561280196951706916004481064293313137380965976608549727079094567902319195465485166584630574125100424870786085730641980410002220970839495627151017786352931268539282917967950828494953028226828149574040899912826524853428722845588272790533177962733515923751265743492941646997902331703397032881052206470580754256078097412842178593700424247522725273555801867346828533053660071487569156287546668368431902412248613635131871630146295857391656018293545386947784311580911986473803528875753283234291237060283992025977896684984605020679062170868825033719103240512176059113456290838150532978353748468013506555045687506849863268012437518945775319322666010901510259902831858604978422654776579508700518087629579669605191456733808793659217555452145763890199273434847464630831999744386893642624672007660140298454299322182202759985872475916163976574944806870465999741472985527810978338744420390643117258734063229734033224520103700377159515086660052306746147460414528186294420530142174893197376382216964210205795366836547063300873241138222884600794424884465864117740051777804625170027823099445462132799280754689242280960017811150454429754092067086501612269258811481778975444140853466614296915554805122460630880321952965961347956417655597762998633721780651127638839022701214696929771997843056970407170522432247611549864214704052950812221010113953801620084219010032784205049266471187636796120780556065448308132370216229112154145938202534480335592416629134761271454947766039238547582016502499946797598231422711400426535134864029813065439833882603649287690248458724665941860709864774852894652281728646713419122957459960826507460029091563711211788244236204717315561427071706587054404541029916520343514599453067192241181754239838552763996533913429462880283463327886193757360020439130482581125078772922215545511899064740967537451849366076847242873939949920177305802145496038941916355021244161726931038352709737255917393944167606565425495936090809372554234491121833850490234388568117114958023412466440465631539901355936048749967311140375514640714336354735417645064366286430133189006399051569188382497006760261392506857607665253200491874401663792563815075745247906771840437018974652814697776845278819062814885600280765202380070745777583730139668704211417049403976428892277018316540321373055171078558129924172265988455509622394173694165804942838631456789187206886960929302076443672904022664631459611553297255455637144595802628180750964711811695086337616362353838974249683635036197618038804191270905209456333515132714972827867194375711062546858882864267524091406612390107955424528879317503242130576791890114492772253966390892282711028291524809379309407862985026315549458845549605904794827067619473930082757918362231410870190551709994397306935659247421496118302708942093322799868032818843039025419736420310504378801525611467709674968714388719877168194811747398073737351436614579052510378026189443343730836451227427093123320218983224513798887372385535062871085623543683773429680055365107922399526063260520819552342633567974813932569925756285931569294601243279331770226766041883477456080268793362217188147383327334848382517290001495862626724541557432286578874707537163765618581765056843329180934825969303668963055738512373115713132402756381507184972724032316114418317658256573202735012575301696894846417699433253444377716123088833754184953495267818176334734720262244454561045235688095845787161755878173327214538196381921716573661847868087834707696483951135631126557218398178278987343790819082292827220379349025821644363597789005127089842012715629479091162033912460851954061862750875985943343846333997992276586875465533488065505264835483663360670019919201786763776801618278751803571121130894525105677007630221326491882051048230734398871855130212681260527543502525664898833698690177082720028244402237219492941616805223147267554942627440576267740030918957922747213965870161063446443933018288338942602585799726595169633224282206837459739530310634526979670517343650955540963441566072507584317383103569056886093399647248625221683485304885649277980476405740267661267012207592035699734743752760958999142013710706090667854045491648204848982731954605338438457926279788919071777782811337334037577301673838598548096387695766500715650361971463111873791382934778084371774515008322994355181645610481275993943220569833558477954738340041749183101491959268382788314569832494630040865406972252437807649162274524655917293252249572614458146698578387404108527272975045133768840991570095763971646783346704706049566615847118425010280735455680725941119292986978606716992321272615957904517334048118730887205513934507289315831263368850993227319490370061179433582963497959386084043720759171713303634713383018557061340658448361040301343311607982011256964457335386945470777051794457532068155203273914087487823360457291846164928178372077677586218833443674442202998886670898826546090765822175379757996037927780402640896146771128853692788323126925869542685859917267042962984038804663761111415809096160966395076145303635692320955466765534270654779669615735845652287809837924150913169535455105257117134913612880161298419354925335927580612250469761678751419294647376755183216829508043803685732271112094150273054558786902199364821741104877445208933113620176179130441244289274243065954275626557059435471467260389789018219288836911398104761692507261303813686577614791761340274962829584400555104836179230354855158052889086283201991682029463260989627966368897190063640388424929482955247288644118796282941820334218003440182920521186434395715402489867551703275297453081356351989118965983541535759620705328791434590554359783349556722034129535987227266187608373815936017625938763594952007793734128243941086865276896262359354385473157753287456575945461307094152677826131503779863856886004283077686027877456359373304814278035162465851258964833807914764212666863595451187764036498969613772959900827341587000404425599886693713551363813001811254234036115119631766454700870786920088602783348253115370624074005853734407985218586566784534846153425003806469641206636137538021613315829816852967940721768184855085013013599760490954091856837482463855004269474447990723246718630778752296108866571908067719170849313951212740720379528010408588646146198283912894875375376409789575996698430469813600671770718610688476128535240683950093967538258449415360185493244089761267341054706014194716127182465129360026553980389924453082972633539568187866899212226381000070273215580515304286986007294988203139158924406921222967177706278569524758514937165669506032097442740150488079661936574047229299480247831883669881913212765436630094810779666651940343915227474756377271606216537205405022834422160000378434125110732749392796568524155144416094715818279147917704375529559374130130480623351214581093731508692814889562986658984448688434249469999365848347174648885451351610600227265593112046259800290297024311410657195653563571747159423523958933919629919853725850331882544519785525457709689521915206279994310990318530205705430226887732223861854975912759678391286093809018538293081619085134759895384838702154163554229647579302195479696239602116576232337415799067769749545785003350637664935993711509934931623826635288019947666198307601687440055825131945226928778796448195136920459201303297198932613347356982722483865780876497054134727491068046228694029174239685230761320969512023322640499410003982339838553028135873401695692292821698508709641961704066210531750382086141076600313142033774197007544117280828194088406779459632416599889559718930552189674336509255013067528720006197826146064221704448926650250268777504736615179460329477812447505944590517058907858987698879457468048110348730950033051381289613615179464990108714917915735482184400978636973928131117882544956169444378782112973602308223842430574986393505483654013393949901883637910915688351760403510053017418048124617838356378816266441157358307457229150008634686869027308855837195167976845351587749789428078376662924810398371995362509668403429416513081601757643212800443013152856899093336013260485087911094903240530218094430821666148602743367281753347522461133932045069269415872778218991353232455818441147291720558625224524808911311712377960982991446523337075101077447342298763929455453939336387236013257290798140958657281315302210824819638324159640094204752524773040296700436288000624476421099232882597483321292350798877067845198393003177338618192693530599800672948450188158650938835872743912462936814798996815431021550269892492904780118875007982970051678511867436178600693169623301148063734445783115919119777542713445904437680270511691067037687359752218296702347525614612180474542353709664936669797558370811668521071827377421309470956744381481120399580279000497517592287273162636179473685817765977854984452281860822640884567342884572892486440584622785952645681546664146462128715481526282501179855010258356561892222193389107843406473358970614042568569237287102413886413143881981182392335034211476385275913023926548226998913280838427421586273639080306107018928512225994786421320889729098873521870802061450895330449285156822866652101746127261653474946121871370877213960136839957412233937393827707769151754765549448152884324665750416310798135597522974134349840461479552404941260831153941992006302618065742245208015184115491692243913182288788542076232632227307328809877358473686653225986952799583879119359164538166900999264904209581432436809659003348384849373901860735231400777364919205120330820714832909380905809020037342213223517864936583669609690960801734265898577381653418171861461059981404048067709484916041618950716953959487131217891799224919270187523910374544539826775374086150763290559868286419882816721350358903351794388039038248603718441048370000123103335079527380453384935674611832128708038051758979199305141163258698669186330459095767033217305915100824029789830889760235511709619787233791741913082683344767366713053250446072718623785076131044352229343332426128822476179224302650791403567765603287025412673847555649354976689732799221610401055902049258393197530575029549303462132763564133469893852376279829250027335330203844914783487523407965666080834930028122240006800665928537014226355217430614919471387748149845647935069133574539297491845030208931231273553716230692910832308670723327989020362167513217968562344543578060887603502954399402804191434961960645840602458499643473354821775049199750240245715342990245920151837454696573214333923799052880883516648878772033541088965950426847114896610111921100831626923681193495446524629890437511931546136574764600633566294757159360168528040914587171964919212015838418090005029426693470112259416126749399064167812073436450433185666515290536403402354428491511494259683711865038013563601790686059353493629941449038369523496860002120591329287345923867513122784675426608650378754068607216698368256900560919936717825844234502869627140592034016766596951492964021064272252430245349440338105141351817752717382368193088831602153192001011889822160861968872951267387371438061502097790532946354804765116024997740735941239297806500378831981625963913976418394333832210156152243499456152997680191317531144797447717676680555183224748186052581193634056661065306002684835807295462844941140336200171652828184621240035570683604232460306283833116751696227470623565238139389551942240793199165107332509297287220634252433943962702471348686234383245279359446252443780194311412726585991911024287898644441770396077531288323695065999814879391289484043706765329207547076449018130611006496161986357664577488034799095413463795755299412226929484915224904023974331645791502372747504255220773756015577807038103512810989215394894825936409263222826643267828957423057382177707318483677009960955142961153606214819014634098131734498589918515412469312320873322313786464095084161419183749893142857413102384006243600564997909105955205159859814522233932543208006714026503869928780339125618945292907427612705199237845407235543500241253078871137206115628275878651269585814583921301109130420769810344324761975473466752698947740006052024795207035566944791219716644696439351380861723678902061703762519548343889252120335389966760438529356176471247747713803803541489169684984207053493788749195035303496428456533464275232556336622958020365759084913133802270813760730775375514301691521265216007065326306780589171195663217330136660431042448480494160030718637442312906005880789119512614879330690542470602591269436412235322691928668588318729401160252744606998443065254764844118187022216942550203023747209136729880860172212992970391631059648208795849672786343358161261992412058918349080056237761239121741253306045390262898978151196379211486832756394027654762508452856168091299339381430812638561519717055165555038447395020334075617730582990374911239947058212916207080575356551619684871108353055131730224068981426529661962829340743831531464355954662488196531152985986897123785747824094718429217654780531654787170667889955175386867086506589875410703456423298505130967056935661633858708666371712656529941771122402311334116436025676311682781633037517471679618228392313173914302230508916172699360120166035843037743691914321610862439957929325432094720520377987713770581905555961496413936006472111779141887773085796401479808467881131499494437519111669907255019483035121415774623621080452646631508887150896862876717478315261686672975703555644112183075757196370207028598190563739285989813262429124635770388590373990334381337657064806588503192981941584890201786362536522378905799929770005121723045374509744863865187687059188776085095868706677087444573428489661996598407603851718429795119116836552695460820989957189314921374338610192438357805873531649705590835000050446376020665082445355385836856966170224482372259765427050384060128922524038689232368885702397819888514662557574194847564128358767309974081201225959948336855093368420151220182790561605136244557429301809255980643886499792277649722312033095416751750728484001021268456138966257247033106554755244773524996607678952840779699335325502036340811387920393764294103101532151081040356199896609668674799153811069399313545712273054039251931892528607527622580464993405943944593676154507556019902587373645980336570894697954281375782249846756639698926922722257891514943139793120715417957181690437242732137559401670085568093189148024851915402048283216973401492511847213822989797442324724652852624622859490381208168741166114000902436340588999119668387849666531895737643566236156572126654983823432809928583990820348790156532972474418215712429530601957301140566886357817048220777996308702553717676760030606411919662600854359445941235302601380809393107369289241923821185958447740380663357692565680374180681441595306776320631830772705117712759774946257387233894444712150856755865870912504548522972420953058985106960845101336081176112173458056585417683929730431988155688714916822341609029248902011795362890867567857215784704996006230582982928110674734704696278508920819472714281670481077875736782303146658538708717441143810398752865124003894133613303651671821712005793852128917325448955963194393421644603880551100379539971001403798751541913489929289623725326021369573886066973637744376442139164195005263660641512475516332097323813646725573236143498328519392955673911304984301157037182472415099017935840410355477561204023737974111453985511905051322849475273027633680572441210298202974650952757115496921873419979909754492830432734594754392728269754545299595995486128406046954898403347575727778091683413707575285997013142684284596842698340742101920582780521961417841441059877398965349938562268939864039584459693020338230289164511084735500614482148079687363633485659145962121360635025796236820216744359312820138494593226379626102209236451588569646357214345635252854589801869434949032366668492057972802832128738858495464525593783219741451382513851585803672352019587052055104022830157485768874393908591147118818627569894231234309325424819181000104017928388996710788084527995075205875232697337365180985089292110705184967752400653666355054675997321608407368007173195040818022861526172771581801252568955813641471741864045323313663999683242189690564755845740730555953998484388453831634687684484495036647316100627700992604567932962736351977457242415493994883139115711974646239099565905729498800625174067391929514123865305497431260412334519871661650029066108136917577584594234017052618549024659026334915942266771908159572364482775340577717782588640320414521294415201301696820876399668031709173863196218712581523873347065854577689365194906189960986870672612054070813111924147493556766650800127482103921682726702210823493092527857975402917040714186954952447181187940789943260221141621015675337234864660713957266222157380020003830708598336514642437622752442607367778169125916704892560152175472139347657671560499951981707782711262067418081342015475452146566002098630942439834433387283515166413785427780411069796516407194212233543137525456167166862272947511346043677780786839543043003698242093916244266460655515002748657019410998310495974946276059506721794258130476241034745564963555389305462476874737704523474159784288782995714464630866796934924401460295357797216180548795171474843431431404496905904500188294906332117146887992443303779923575787629691474103819842730994398101245845636378605795242028924450462014912908054246010804114462208895129836960474432701538571652502071663223264729105171305672942985120547680983285719532025883664494046685563712928538457509001751550207106742503584992165704925051754467076882406867328187255495427226708866628458702385988302578604463226076699371774058326752254249079166884747153322127749499820643006496009271103851005272053901665455595249466364016792430648869303020846699435684847470276714100984493180454948143238760132531308614770957169856325233487775363698093064528546213106372733641527756568044076795856300713126512198086180208864394373857545885929836600294211976604363427165747965644480563518606933582670029613928748747332157591505893631071888987718353838869046648868163893502042703644958664487537969973464164999434509863961722834859121538638929929318287575929565861510131827021665885351842892344601908989173163134565986137429544966794839763359068591965904631450501277179520888436816270693743755453718460373644908753273987350938057464299601813976100713589966537878116399956576517644572656320057084581856399408379131052118649700586280525626711109502306220480637502069908830286142227423782341379558179930025702812788457930781853877150690158502995008034778161954802709140065247100859100214487847263869648606738698861055365025643078431926666464622273829943098866084731228158793153226330223381226780447050445531846461088867655006287195062904939465577749095795786280321036270837938008067872123472931674521592970349775074425541855018491855696451717530502912644987312843687018030029053270100737733644543268417715223715675432989122767306719124050517996203526468437885764232891328301976963193585619071548219001527595626202052855100535363282386137118746084381615030719329617403997788063351740150457405348497110228443548418068498492180755547685117071881021363903450454457226823407644303079875121636427384848029366957562735100508457625491633883121919473706268255289464678269825598849546713718086974852742590659653405167391634653616409117547176924582309538395410108376024780625768113162149524374898646816967845208942335850906328257503725252560133354296498143119395324070256007057780860975869132396657514125563985033197852938242592584492404967587289841388459347609938465376419537626468384460075255337378498347787783044840860720867714017059156294002371335900592866484141226497600541809757032467626860463347500519246925948871575942632012512740537235795322405281484164236572594215092673405276401289666968649403690533149772220504908840054913790204725582655337878208065297658636401784240240166734158154496590744191901277640653144575902726751581527930952207048327868508606101301999655916770843321714912325884305150086328075518237090110681125498844956639615099964540482867334919096552769738575873200728716948691978131790098681109074788388434873617244388459156389554561559237278782707909518555408135276154605177546559262629549353112712501998464129863178662728646785687058294003632599294993050427071119154424003401295328163774727719078925617999282826987843881331700814903242416727266700209744452013152873956950311961163032152835847154204297211620441597304631211092768520676204360590099381525959513264927938984965996241307714539262405540471269923003170971707821219303561163194630486743943548304536665519410531169704366567752023656190447923891672643323668518387538922630675276125753122290551197105052526334687985531213844353716726379020082828353765204222317584759712206464397115567609997084964330268510754202100013718276413017312418372906554102337958478618235824093314235761123204363708488898941919246350398767344723257394566413432429170777125980437275872831977206311257233565235876480620869106652693364432451091101106795328866552450515053533297617261969437067351751722465314033958035158108337021770497802828467712716812128223912716941636998827095213664826035718340498031866963465599431980428560051840561176288192219722467082359951804063855817786207846509868898439711927251656946015372835753221243022749151062591008034587961818287092849670194285105216195018333541270687736004274361841952032656971436712310360449281227411634731593607523349063539171299591750650001717640535462960037864133619061694818091513090677581641165269885083165746776450296619206076499685554175872581563761158957883375374267855011283469375419045875650857618281335581240644213046716122634085422680897569824029996817691384820221761807635705999998524074359349378647368555419151273008598871364974459497687027643835606340137745888781834607000738136230424552207802697638314112191413779681591668471863415689123285671534793969946204717123305794895810209018428722158810523202848180258701229799625331257737443736910381787075408343890757216759706833938824019856247934124602147878418230417801877872541364556497060431148283670128879595193642259106521105475457434815823154920366807579796102399129196666002383235761149185034642417975450762565322879685741191826885801224687139990333521163548706544586164932863184225791611049933541635267776130877462477585926398715034744355004161672329088729427528765627901695847470958076587689100797205501987297383097166843593986353723251719386798582336055203734738134402345824504173750680712048445437552812907359565447791851777782035935102759018909447662877122179926852683647625431379498145781545916104241497620192521074310016519371975137272481843859627254914055982366984300877372007043228653443352691987958898501470989077040253991807002903475755055799288720565189859761628536408650698450260596081148123999255527729020027785857819463328430437646086875681592298575922842652827973694154648804990176277186034043285736048041763938508689599704756267265582372053118405923539197821544218432216635182709415154694020595106421409946012024457509231518331414976582094557117073299441029578274329229844349477896142665064553993097784507507140169463461844339054665104997414227794871783464648080343004119422499871324982354292448107788693081959283200027188623045103061211135680143458923664460036190753662217995884115722303803321263135177734197328768016900979187354067906603218798928444572580776066462446960251547090853205135544376289728756761927688974876002524819563387775838950434068876041463391497825814036670264793423235588896407745329020903267253024165641995825183129734076104050739792834187389775771265300660343865907809681109984143653919310479146442480468250291285006919730521366866111317885463763989376328393046781830890671344916865482836023953482071868728244366320766933982544385803946994869101212244201923351067375954140386573737676082004904083438802896634804359321261411670329172583775993143470848480530983102392401078741746330916487993300531080062826114771943054898684182619517018371805874588966703803535083464260336823887194073968954325383226652472909997259676803934599253156674000941414585089225155436075503274575364262984366274164316278930240323830548999954972381378122922011852831261738459214948431914788031720763253905474190118861095017549881315739731037192301634212600646546141685223108232182690238852679865827947433537458679476062507884989673134950581370369316026778343550150277236308926065938238969705694683565297541479088366864106190446013407603072904139847338778953251631333053772897303758318004483583619350889757766133348299102925322816172768760864072472088336672496287542217105729446978006047209687388968606596417787884072231494680692487506531569593709777478489986813757240729042519104048539124724411366472715242071978813808759511813510060863367595096124107549772277999302849267227956693248966427766336701969382041964943766485054158572721661696307770995729058110708206248051908794093297492624215369694061642826496865789209276603774138582086968285308493649335992019966430925990958243278488480900210068134948016924405953222593366603965957282573040847780899756790633892375851777324664524017716375814974622325884088820703552641605786977187115619771343056247461390177913767289744960075281420786421060695022000507338075404522853073419039253019975558922059894028386511122094081147131037808540711019883385619114821144455162055110342196403981591854763093965687619242001717322802250244079790393434795383527460558976797084374406578791448460181608067374554196551552637419456174272363098530582298969596655875080789153238786115203219356484285204593993168981989935294769044661695892567992860272770808327117415428590398435947931832031071544362882280720119645625475355717327894280214968061480280911520027421458728692140009829126488293515315582208401758896096443176178231988886952956474003629623289300855404553863877355021093698662384709318917005242144384351137308938389011524813303306361862672013985436197307504579307553722788252054332399122483871127346193288410381856510872297482037889970913595600069136615593396503954256848821617742778955240192676917781280721296408791814614107748678999646710602898330313098982190959240561932690222504029740449996435584691424188520441575012482840751451351273931945439213563263550691410894691270755202172831295805546567980933400960974800994035126943137610539507145525936580133946049816323627409650336769231615194867487134402702559666058220887407010255381313212537165755247467002862541015275377437809852443090436660521319414994345585643162983726536419242327422866148525395157379008111251501904485342827057278819508376561892846850804237367000183012107027601192394910571926626970110127051955001473441212559650296438592550339758192238956695459908337407392342934575076302042134068929327019176504266078023361055111316767515273922345864952434868994439492479295021258734820775531017382267686046230302530603051996746159648586857133288833674195350648883006257018411471360918439931746319662094627231762265409625931672198927166294358141799833300089538211737540951387549136905354164860027445101901506827466605866348566940986015183699683426343581158585800377536081642129840694841823662409989529081320899276737005227354567971681693348073450274667160509470732588408481242226886447034481485440201319441011459503607089274162287015966240090765710145719325421117667927911501184367452002185084171274896311338608493441220579970049462076543240932946263127239428214961197438662479881871923184507328057795426877672423924605084827807818034001633077997759371715816242436860556002643559670401765142162661981492400720821642921985665060584810291633803227250592575416592907725192086633915446859401474657384991009276925435531935426674932977566909881893511530658163506200420181941146895342540092453411256627052993811309520916533812961523699273481931000788149632009274812319988596340195951287309272341885627486841800020192205482423638615121229265579653567036323063891089746887865851972794695619347051479045158901235646936210286458904430993824799670540462561076383088397602445486711653186426387744610806379869861866730573403179402543540228528247143629671677911938165386537501545787056458612376222589413052078321916793243557356575400800980310064490096282877552395020897879287643129150875335517591034021273359624643437084568724205338897921107432948065090325744839350243981516013317251122219846508436890761874323122620960861995290077077271565529065598482952270725423276446492182278816607020877977549610499381122758290747577018757160067690703003095332302405960333263514939630581991757162435693799697206752782730103890179881276505999595787210061264520723941540974931323447193227065060699657845893440871876140483721996924611797339970653177344696949349529557076992092234163304957173162335571042537193484182899186945015790346204913083185165018031738688913630517617605574285274704621958739435868871933915318746609333979027424956233748937663328805164704434390938475555518325329065255750564556786930352392345590727295198737951054792832465395783391545477024034464924264115461356903319962631197247271610974446355189285851855738470624764412756426304280889824209795909086910070602792874034262839111987353013082527935135827848018386977593158487822759691773948925314163893062579280047410817628225421540577571597170698190807062130484745731145829103917730597686665142057214643966395174635877811268500030025847732524395408581617491949769963463430080623480522448772433296726821753910924726003836996308509319654610648424238196388377992538533212091967792736884262545751760868703023780444138433729774294856020454813784007170416391364029012250546363085955195678565188401727413368460047806833562832093460611954776166075385671720417697363730336174377819815968273017941329638942731402893290267124244945253385407925804608652106284910302675515746342836462500037903567462334722548345549255227117768610489504209444989159118498478346039826318037973678867702093925348206032554796156223123078695329428461888841361771950204030921259320228244405596958073003690077877293205623361906835639119848075985718196025435221966419512421649078487145195589571078840763263784587236756549698155730131680507793900704470777164483183583517193426928362028462449320636025430734122517360105127375364452500676426950916651429914199897048805324819169084855614412537279152807574104071098083986517185588315109921816926566089527141292460120277790622155203528151690281280490328681586524820900573077921137154829397572578256442313147300146615244219309570855537899247261290993140830859125553268013163122207348714996076886286371161298206592495826150149690608878783119022427832630467779828498430115946792056345490574602218864798582342443058359726082273221528581028843909452181899842379876835903150404062490467435628868231849343265916433730712804378830664608860601896229314917680031086573030691334496897509041811056107778053972385754841614460020561336120086670164539500758725146687496171824304338673097453562235113455159731054186564294384426277885979614593532647837328618154277219803833229957389714375131082465154678542127902854407013066779272662460754821829424384815950931315593077553387993268680927105340336324920311624788234214501655505444319434388122159508255581211933980691601026421339184555402596021360545089400352983878855430560903165820675160688572139242878415984474659217311406233459700250059378372649331959668198601691984748831309164583336201652386081958122185097984154505306243900984216433302254694962658121232525409821010814761428825251162654528161147157633420686366883085288752658245262472117934594932514111220657435118203845121452851875590674074714827153566585731359605556843345810242891786073654051477250479556024481194261651835959753921265025385117942546334019726200968138771748732762412669001287208746507452883261725717597709113578395473592104650184269998450318846654973620285216063025950529401212773791869085911567640897624480093017692420164256291966372034826752225228737773592168020357492493612706256907811436548013243161829669562257265944257604983264095040457307822605602812596397669507963074970235400575702044730062706712654573359085080722555707542367280937464859656103059636308220026453724754074688610307736055039252680523073351029683664485211617125342273119902809654883547202117123864849550594612303696771968534093308403679567932882208502239665040506880372603871037217556221526960845136413033336262375121039504325066086722858474623089670799716661312433093169639244908665890626874679507410148898357901434466563686453657925950055079246409010201745950844631556497158980947077761839351277098438552673896428162575726907673946225081351415731148360392834623275228566939133033789172978200266571492415561182745479715435735059256148063391052851993375426853954712295643676970697925347450535131398079414121234507123507249909453681391358292526343527033057499810369115482971398854918290070358520271018999404597424826777722739173088883886614042047461894912457412521839623337505426107668882395739606779630871530845767674028486187714250619285586674032703970754803068896793875836263022259677888762299170462283333021769958204720934427543589152310800985687325448908386105918013289924473829006566347293146724574909750802768411763401262358020974220718539785238118940109758900110536593812665713858611260304746080077015896886065151679241796751730253824725718002053134071650488933347425740852310399829022091753733246019562234200196998116328910702601534145347051087577906536035940393034819164414382177340854048652603784294196814663765336963466311038201678162975311405916767094374551550050707353451124993781267285737284247512638687301769444200615674325505733428538744773252653776933727451975846003333020792144189389010721791545187214998662104133830284561528123346174099125825457253987357933705229664683136793183693377290752331151674624644469711343382609942655237901965878063806789951709759847070902694730434102989969130814275804347803284671299595308108020891053538874210960556686234911476748308802911411455454400290520598863682758105142192510867182440014795288304223745551942808963337315482953105848751620034340706975857266975428538529457169346119710927342027132225909686956874739105293911120900386116527049539010788908544018634692595807749699291044014715576469920256984779160220817578951995035585203983571262957820668430187630348786512413095853441706016732313321062068430869965470784639364881989241610867475958692414697812600498574319634622842602392571201049076884489289525955365835974757947876769585479072123883537093618818550789840139400326528058186054675826014681557337441637209201240204162826284036015615973325085719022957820413131957309361664854457756638253135032713889677806237752818901316898552490474173309489341772698676252218076620348217743257677850692115078391515069906143680847541534072912755092030073509250489362635578530306312025525321115294960321163326257221049339363133838831928437755244712380944884698518378684577228886466671880599649226576021880809222588883253317826610632032749507973586772918751660193299990839908902511104292235658401484678384845043662638092582069538499631726363815163705928584522284541923315789636243784490098039424077249429857090576947549586477644565414601735038086263162749603792040180744754923295197480210588857335807691380836036870887002824377812371368070331204134918611332872355495928706364435947455285255071653891911123996579495012277560626008775281594169529072885370924371521102897049884318395330937527762970829855141866467225752877258916624043587946962908474234111351797163067119164560579740247954775801412643969787855514414253342724159943500165204644516136119916445588293829126840257799578455664639403144527774513427327673524420612644357928628212295256388380552587283503845546826097503292846329360928181439868310147937130284752266826327743727050320779730521895070297839839836521211072220598640589704263075464265251316530081179827021395141722876433350620678989475632632099047665173090101366835482553742621186103634572432543030055018225687783984146920834279340115798119044089189034204911276818746011593212539040805926202256286390825854547453855175541482278718214009702830823522739203748933110445057445977845981830640652096073886971949422690191955943596335414307439760919187594941940191134642487694410964299217663649798642044488533026509734743771723531263338770229077138584729899617645016901425989995233103184907790854649928076990991145058397399132168507489831681845051339807416637585556287391553039365810133038685141020503280994970089972368817670586373172019873427667202467338608405754532174345640048496518461383394892827005176721531372819598104807824016707519948141655954580450574072498271761518646156936086947263243697026243650748611884669058422500415743875500187576026267398390543991684289369074052038540419076647442364204299505164347135691593039161299140934131979801316618667294436063214674303151938822547155484346088301170991720243837955723430594294758757069933996193687947485590209154102475151246208468609433858792214659200291233348826409715575523205252934310764735468864409505888641645302682587089679450051852519055984279532223922706817880718501342592274150685312172009121579767614071524350904643942680183276511900043660572894466781553179313109857586905764837533615915116347881353139656769713340452206556704335904033955450264006265862750468729134443293780127732013944533210260833155390122287766976569598365970983851634967728600448635658466355564635215279320835720103862927268173639786376035641961537524074012677521138051169406993036455591372125301168712471524080661177861222974582607851099023092961841593061483896502899262489018319592334360704324016554030766955964300419886866252284014703732322960897971463806724268692364995638027102923255234305893702464942818363888892865521921486508025618202983853245481316138901176313921197628449737146418082251467617631411233526242354807093478221318025398569323660875000102271261977468105451995917310181994808128452254479149845383324829701220713388736223243977685057234013812887443102750398681282719612358517159066421083018396998200695120107013346162342669379834523832292476847542044370410697884583300283164141701932540773829579581443320798671092740114679018032511073097739997836313360307914678932423327190476799333804490981631261431092171340498828562272298632801498242061308618368247577815416937151984058469068348127290789411821973042106880604219939739187559975035109869137006280610457695232519660743068317142124302245513137037144017176860971062390683395662681941834056950978118264263093830455930627166959004001009158675150946720731255617546345340357335365170246575921193086535274603954013125406008294700323723950103568298315430493368812557413741884340996049388209222312718268591188620153024102651488689210336971920901619521021149436832393195109781162093989433234620548605069152816646451808080474496872557742171241153952612146660528078521500080318614205625336632272105344230038187967541831936453660760251542029307137342549087271056208710952660178592645112435278191100140060571477567545080771664792071104785664750653171530989015828585224472214104273129372153392435221439231593852948116461853524845288607947338493847097367387630360234577467713535899912336100572505744245900038608306075928273239670594435230034606328235714309239878900337156281833210483371308432471813225233596655107131129976402539335616540983339147274889987999845861255568100501448783851151687987929410535002152928953901846245070292073542692347492316079208118149230072025987409802124333871856880632037388158796263391514398974427545426182067793171141889606876397799698663558425523172646086417753858417463131293049901976147501842763151138008202719644841768799482711171148040480583088500368084015949027107207127780573965663205434667764537211006760401906868949173289799942725500986112253270281155978000641185326904029016094050417772428401853941782374134743837296885979918991158095799814045936492633164441087724412258502543636216416990289011963656158279769300539363848492393590391292836182620747973360702919910800990310228523077631601390887471175264793816359479998183222143817160337179260609663849637518529695888202824930176306400011989858538749876768021273948156041713490586731716327668372739783034981343001678968478326251320387145270669730022555302477611747131001045487950149292870706419434320511608134614709778664422795909656648599857450900281650085915192047221924595724621639276576980237075117196573848100012025279801444884644096804310116989240565792915756461516842574307846219972042783782724512048683281658129166828838414841924571644158912444331196771285368185528254749343671434499517132078351306513483984020842904968891062088958081008815522752573285755838710149837424344374210708313612955792345950169523214755192226067112422455677706634431737855735013557768157411118775619530120505087153082559844919023313329580937160819116619881154661567189624802339138516206631789484432166150114305003005845718448600289831575529541911447907427001361796265780842068190407687497393127520057595894466093965232404459576314232908961558259902115885239255454034885473039934219718575486430344369380291888356013478824463496443719340320089845163635231181339337761255717049964172681101432696098495293216065461446390329309232603075509384211805157759839906518726011056615605681311661303356526752102053207747193226229727454082498694400629034902898482809226177993449190955701554753362345022438170718795580993640022166486382221479900563941531012759990460311813348469947709935527930211777169210958896628446347563278257974543253534725641075405169264554061432435369674958919082628985377778506415181819704807059207640827429699555129477987116819901861695191563286094815663707600886259697932862009594391029110605601599757479548478595842313992753069291714952273354485256294745782089205876801729164029330955758041470588831071118872496829640736461180926113782737762051166059200617634290950490590488172963095593626160327548641772671112488067761897194126238314743827018073038530911830325735975014156490380438674890157840457248620164614050785506691472853521922229324496213526612625187718346781917172383426888377739324341215865289474629965665607078893001670075777894826254392566953297743701437153854145620736686206631438428621612746287121343994346989231198860094359535012651678148053602005436009750675442487884440704045897280690760016624348241466402103043410929171738722969546377551936078341303134749859426730746517435975575225474393812381279809749904117429570812515636990419749816299129943519689427731225823755551409762139169043098548182024994078152765815881366034678898730326367995567934030513019033147970741980786469315393610664379191093361217748709736569909013911682373845733226590035126187134916035715242239065333023947861048099962627102169048916169486609033738164369273087900546253329974640585216960119904827115636692258520885873064524982935752227313779006187168851092574747978640688087845630628054413374704025243706484708093051248110047970892059148547776335597084078503694931878234341413776540584126669276985362596156194005925417394270440269130712354881116056318376138672274535491317515253530434921784226701943232339402274330756760948170129435153718794857569682177638927758813991203491102696716349404247077813614165206228961127932150077410289689257111520817514186408360587220910145191295444307545163855137759515140296754743465884099572419542066191502373078511138195135939431398527679130952285151173891709146344255324974241855685067180984362136276837890283018210773371842981296237308539877778037106358840729124340167841541594951300215635766425283913934783001329582401843945651485712675736723606351882412752738029150593745965300884038123610133033976230934518877994248928150728484680373002816515229522090556025622509806865883266149343579426027725160537401128909160513396332731345287636929939976514290562777164633537617925838556631988504463298302411870308012400520959109148816873350757914034559721831760164843482415412208022475053707463209538296895669804812494655161668232787893647351543271217688693548334662770002123601387304647572484989942523303304024841082686704527430495124573592249100534935016028422597889885135479259503481502371592558222083602603288756419733507797012463928047664765885398249476413079024970676720797247965508656278548882353631611423113688153875185192818627434675715658837515457421983372602987005466076669651155046763497047910102225143450896622758934646367652471880693827526625642702253503854951873750840723277647851208472299103572122115789177853818461046168249534188329381101564482565517823677754368771085498480767736267324640651437359760970268425406590872964979458818917994141877052027606491577836524706348538434638163438374700311378506531276671106713832947066988493083909393742404464357389701121900508408809540202749059169743637527842252142815713278125160690705395169428240648308816664749964118126829517803284470415008813199725725269263003892171862134182797087579701572384308030815424860103681587528322520463367990211283841981029246774727521596352383283830251259019269705755618250052353334484791699476610883676833679584135537503373225018634564683564901776169527390919643961455657104467445562064522328933745705391030285165451701649421598142518363713206273936943296336913896682806256180568418591989963677242825779362555030901936669583349710644017903009491594084962742174031582012444594857984528760324412391143355592646813979024959853572813893693322121137071984753495419899859289154860362162947893185208870713858013189425324749878726963391980964924161567640389769964629158302026894752697997682500492539114310657071302617543504996957256677123205335366994841392711547580982676874145459003241036351067361099318108669328092677637842709325918944002454274381461834351435235508079565295461174196873760612980468354473528580844922094316417113111760839620685245058113947555889946869423222752143999976421662667879314724148890887483829378913621120177117795323670028964323130143166067975549834612751828231146321029367788068157272307703092449027808233267556177999182532467570419598236043960307043160701056399718420410104043407536854931785512459450803689232727216689823485916453752243387325331568348931683658341363497518789909789715753108424450882238619405259161322359284399123385971652685106005504927151025372179498995319195519788476023496556134010697521835794656697378578050447135896008180777233237338757017377100540894881487656567418663095577206370947688649801793716177346736757828131985123850114715939665595827202982305167390811387187906852856654867176558141419934216103697140854550919672480502054605706646268496069567935441542179087398186604136289053740107782079090885917789117249627076207479568514747403102134342754625650256011601064923501097837579083648781936201517249518121295553384530953193818383953581841686557588759801048574453939747930293354354238645778011917291118710852474887768571554105057406450514465671415544097390275865949855669413472996604163365616157394228819508079689312671547191728587133181325961076918273991263439346186146023837833002305442873094912176872204609731097262093494991817081598677762927706396554161501962825349092190428429447106151973757854329824414546699165224970043808123628103179601895743688573218246938613127471644820096007335217582410742466094242306269232493574914176469304672251907871464677403350827130838587565588141255592802065908945852892912914632246244560982259435011031442178666141500592223819378055219771228545736476515763563435307066768768165152023450632073356885417616731701166073318294547041478671099020980705619039345992683763236862149133683360241363936136030208974750630107361732360267066656165186436705894449590496642952416912463316738352224018535501927884861243736419506276115955383691881164156261691392444210853106932906420028954258098889048404676781835079915830855995338756664255245960039886178217728236476685938619763863425693566884641723836224721051855313571510598861033574861993030492246670406125767896087155821726778676514655292207943287025140392134155608767470553523402116062312155089405119353848247389113386722973803582482609519693904889492963463944849629225202123049034576116682100186166063891450248486847523491464006338704809063768681036392087478030850433409935655012485924719255177768650442126291806067728209224193335297633031367923340260337059030637870532940757600064821566334013008373706045434518784350064790345022330462160880173387833901713659162003593479582943413159382882527693078452724767033676764433214509995512357187046391220814721040043016429274846867816132051953242339389729899010704167757767789333414484720081150314647331436079751136679760757176952569426871169597922383708169101588392649970315076102424185458102600104131000188819998478678683908207753359931808778887078801025033309647909258632960612486610917300067214904046345301108317391248488672506347687928001799640831716250594325642137431414707854714262027671852040335649557249103652465437100920814573251587659840929000346324307874761389036131820493734167620594529651453161992335636874535326294315532635168599216581723554395588223282780083286559866361586348708931085614782868763436477295442561094640765947828497967895754486793451969230957284823553850908597171479576534501057199899320041971950392900943181247795612657173290563251155513173627586170225103008487719848474710545620447091302325505067987225468694936881127779085522114034797979929643071429550852351680275195288946138746577601854394867936391299345694287825591986177697422422592837292525294488465245206873971065837891543633339217018060496388191405683483124961705120554483903137476184147210002457071205181213635117162277672871371566677153885443968218731047023949064317854512031271702689575506207596607616238491376597935719938709438727585416929441681591169026489235317662814563216540146911928416720512216322670310962293561019006589280864284463002377798425866853978142555121887377865454416182774572752609350294164535256206661234894906694839459866546723425580054117233940288136731298831015987951777473044598430852956670467894227675220701864391395815248607024464287212068999263139429426523427074933203147278231761484771265779028867233760454239618201981283952758058677999611958674988938321020620742434802154041279144972886250936592240191144967050615662638468095221925598254672600278252109703066308725890853011946707135687992691336160685224839687442717644414176804649988968517327458846982724177970226765859501464577938780403082431445209415024007855755847385772059445439155438279244528643102815165699501213350507233148808916235128806160894189426248858641197912656818535034641736840291963833913047705711228939077425461412654463410519467535587029693354564490660851063306664539207498505963110121519803701155787312413876125819782515029848113936232752951801405845437109111403815790303291977654430559111871335850922917481500694110754116604192695395461341984167427846455612081747714864158805638800292451560168585590095499069300620856823003531962660042448067046100881617144687996573372751749128266259778884063307915533834845490574856123035807952245076388348380692627263137829781307270141761453526864326323260029401158676729521966818596436192168538827184825076370890396636661394079040223065766465751207736948212659987527337836086466868565978529731336034596281122979411025063956302080489635385326880196564070861622725496534646255853865329766529348513111845448439450499482644868944129594539133812209502034027527401490324244690245726800951075772348917285709789236197136468083413872443566934171214156519646073987602138481959035876372734875525864710443267313569607161943246204858333241068918553085077327544503912676421103299850269494381577303426044403519175089481637006221806035705503546887251311954843365716366643550877207290275615789634053741191620055960143212219422252385559742324577498809619844501996005250503798478733407350830956886020112574597355631423550107302821902699660240082557956520658779779429333822867318650742473614336366869628774880871977232450598720216678681301222440122394364958252833336923803779113458997316726232871972189104335017478009684353978257607264439649489949407377947036986702908680009308763107244412664350314372362508109020325632958404534575385157005151446441038505414177430906262556549320340921526820410741578424338171834838224897534886577880464993327488626475199971790559539047952569837568077785056076248319559336993440803210740280472484398981745904488610678386680851367810305314315788273011702632339605115208738475763385941393977883449149667345125912971691742578096278007441261488928196401123101336519013279961122553588284761577776333226443023277165479646907356268543157124987711747203770769770000478923346729103378838789971923994255827694144043857197774037475228019886080561427270485569060249821091123195487022105213474801134641531809178002733744936274587411861013894960151511922188506413422452302399496480432078102407727764769052420975058536373431050777874182311970251096646955341702069235755375347526420854329929009038184950296015226316665584077744160489525390056745712891843967456666308893095904671401837886980157892383924786610447336929526073574731045983164911963285831569468677460326024201373086132295280044072120259327996102466164686911338610503583782496925562382369202503849895076005792720512437656765656348250897732867677896431929826763288895448866185210634827525585110199537785143746359642089201091101560386431544673029678716958403152692585980742187519695395050758233342385031708595688015479366195910444761867385019994056075675789785829707582756261516371226975825929739003526927761598941266015103124940208357926452485170648816129970626911832664643730704463554662064175892020258894410547348616612878990171464537860654888781710639213359170185646482676577112641501203165487103124711588983837908070328071190826224791156189931198475147656619583797304195468669172713576395014118565122423981568989705037139726988078724651443724399865129032444158896226091338070839406139815639940198001331642399469318979478977692658629841693657007821495417409844758078206600194919390493229657392610063424429330489175237535428630058836010450060599149303750874122035645922147662200580028862583675261796125712351148208422290884201117356510653980862175077478950432734979445583046209535903990293175733958125263635965586468954674752344831559204438649757595794742630388088405798908633017056448667110171864546667089849895299100694461757868076041593521328827080108731199141713514336773194137287333822916050593856732658765157358953262858618860485351122335034941410758151260916865036956106285797706432307955142536086781646248773263696720200036313049231423871325597286361933776963965820622922510360546805499920674848430166424936209948157015807439674578914550392766948521629160534630468727682502011911502235599248674257002298358083154319128095997035653969646923017800867470847436343476527485697407489767308586880228955722630372929136888472770610626370439918692701943175565746586445038412775372026705854817048001659712342990920939545110527872386741136515493264110363173267489088918029176458962681945651891001240681892548032053417218441423130482995200469006576377549086334011074626914141590725971392680479549430136380443727258184651332005909611770148504329829180707394070006076853191458458792675958877094160763923098709367996883814823940742501162201136346030608024900385852590676911311292469962135792465394256273519307296320750860185230731244292108452659853593415045549164836083461732599668679185288367513082975179765665385845686394686132069118461128165632984530693004142837152670240458179853587245202273716105988156178526031011297824252006327726242167330499060427825393873155295364677272099691633764870969435066250633821265792929834445899327160614935370325401416242805689657515537666396158266480828203696345119357127548435361569609545509771975259985102360497719255995663114846845055257389230058098929383263752092377307055404238580629720490193609729844720772890386209581340156634904953935608597285189693684529756336747468768771945860772924011845292019511234440613244043093228911024179846314406684510757008148273831236654450572863975149200035721657722362558745436577092676011698163518953513053597846215145336544434701850553700363738103545726761455996478937552004484526940641032092940366091320435990374362381644092942282359575627009863831277345701246105631760540693958112638519942952953965837478719460121050958582291014380189232723039985320590451359756494210684541049639991278088091365918981519558550855915143806511999043339970562276084713431247992777826717098173212798000531986815632402196670298096267599209709746228386263806155158522533893008234191494336389967685387359197414631189025157965501070297874660613749866445257742334417270488459682005406487351569300633587154813300455939311990203827360521100782592701513173423191568599195944517184948154404956541631556309074126825832535974821156753186400650204987860760058879306518168764744030459083684391713223379345362066120023104191519739797576622922753811732749481603913691778539188148259408842624457264121185844383922599866919089248460664513293714924907430671787938779205151056076853179501058349544505577915286434466193227046034395637264729008353769378390983820107155848178280269067223110251350697039159155581209276362902277576513306892057871264849892467829160962501832261956732397664431494173562884571893460890928389073192680744194293887149746985523839132606479904170920617484959584632132294343100236054739945264101716333392371511776141941594921799773431331091554217213027374161408905282486637130654238682694057318795972782337880495133834631497472665102174012695138008950752633055877938361974518482749029781439452583292601100729085596671848888256821198033827653640810593171516648379560568631485079780264890401293649693383121193175945981626904714827443543053914415667675024325928783521157876446287196943344602079477516464435419108113794395823240329391292050290314438759599662182550466018221015159646609477922180457841764784980461789919417270381501094075131306071932190554173193852714037488643900756648318155395876966958865143428906185669002797815844388520685481292874392926854353876793937652639071022248481484269520545823006111904667401121843271312026325003186823534693538377278426498097508856425607762002151758905636286242256601727419599614340224056396944578258727242720500923930049190515276441650409898651146082264712340065822398441530404740452789935979020674027018207285602794039524828355153782266617392668635316183226391996378900919911224055980361553907529036420664694334478768504375190708085086035609145884484728931618568323834425505658931409411674702671651547182595821970097647808715546275263548347297819647064646393808980897071386501597013069036823546286913073303224736841958441607362816492367447700003018683336698135578626224313000552501360867521036035142408599506729900732532502022105394224547533353415475586502305940104612883362525872151527374618639906940562632034495153837963945299399448775214925624474198157793103515157158096768979138643482424451266806275076011983997133903234586610985367118542165786462028900432736061438274954028713734171577449672881241142470624911203836972710912250760611050471506066802816261592827290965646671079971626341421991853828317699424731015492610071272039779690450704304926715732093500752838319291449077545759269124525452020650299517389976548562655338413794885953372763204533258434413311774185182407640370936583524680317352188290146952629755811678537282980340062854244619797293979394069119646850721995008387112566514988027794148998696141277307978566444165702757796482649028697454546059760160275192931600302462579522497215733879850677702427200066754241398832132419821834313265277090059661649291813987129380134564738126086498928030862572704229280437397422308535814524411356186644715941827640608063584049900026272270554880213497971303835123708300557943331335208951822966898673243646636046609827944351936127061759106928920312614000292843906163388457788819187821876487339132481668147825537210119227706166683239048758647560967552195355895796002653133198382574389952985745200838107128507139882200851943818173982277078905021289253675176646765085692138447480488893200607055925031971434845468656141614431934381938306877842955516046734845609040853959993749910833337743366796513972636342884593126188829689357475748042051227190672874957669544919890382117651921496280422321324342776910776866686132092738691068853562401926019410583988387410920673492100890450456512432098986624755438000974718254780557087037176280425995928941783538819309686714057963642098446902204468616050119769741561867083318989544454649477563478929872811324886294081837407530429770682594605195389064061383037178661224907108429054844704553343256302723816810896360692592083458510561415219786473651505809384897503952293526990867554309054148401954771132494512912371082176289227856740970238757089990248602290331205167678467392915338761055720219166884303491821656748963353798855634960750006249426771001313232370728052563711780709009431884570740071225665436823733030433569539553177704899974251107213248912170576211159673227975168394299274526094790208017304487894724382014779888138757118299820601626592039604359013763050824301494665916303423174891547110296774053364028169766760731128696211417501166203593669071475269310246817695099873738579439291865568357583957829188881255504162532241198934526868366765547605048325873266554274662637277199270941897916887459928568222495476462512029145853161098028770647585444888058634019403912721058968454892731705757365540070536731623744476140356371865946372672968376808659483398517259210332640824604574879468503575071281683561857235144622789089963638232393140999866309632654634106985292547123186379099932676967345883546845155215117780615958410961038753661715680719409694385264905493209961054887089522911326390416604322229263300898134288396644600338725038323172941835286790575234882686181761808499910920355426057597071308971295753076532078968561342851686199221020077261523482098678376656641152589964739369829103804657885997343705204991294838724292497975103719280697866903171916989606724970914720064052332439121263521155644886511380443516018708062584790840711782310583673736402741375419125824329530034508512231393069490030278626591280992625119522762393169498225428717802801157315186250910825049032761818747005961871844726681336256086064603702321389926246921287900586193702142284470370111189697320171620952740853883813578703536045050730255449351224326421298764286897808233774150691695114894677584946741618768139017949801924977425009916849946882262551010545535552223361610791375795787873238148537121394604854998297375351510438882163038023404613911090713783495955286238950946855456240193982775153102078098090402295245645907599148810140659084238966128506790134584083004374912593857985494040535523617509811302642767381835968306007471637135627224959710291049118453698851128422599899145503497145738830230837011962123774791294874789568638859652896443569595964715538155086807859859331434094507829870771347914125264956276971579268495236938138971447055367223340055621855822387056141023960657945126343752869494608771747909461183214791690118450611624798837404253118297832947550914526413618820455524768504917752699838831526515625265018039456304984195657482630727808699090420285682814934218155778392262063097222698026208557208687828201839185288464101228648956087900024511254402738965902380669833430247145162894825201089312382423978609120602647789284159970311433717837261088197267174107840118536341642505608635995442089307943600158638452845607140238277396618121192697877640072017145599983092736178310452363187479177356388537156532070670168700400547245645739041312277119825547661089133684620513569640335068903865284125909302416135000495061928466424979473461907588293051307581760394323826540698484096409983834240220399483522438738038902735743077334597818124635878909853370335266346230913365607049811763338936334678835595450545981511894389749256890062557423510198539052903811941506202091189293761721732408986599624077396990990662813170153567285329411328464612401910536248912622945233798635028735443884861820194609859041816217724000143203125871093227072742045180366495209720409835178459674963012029112112451485018048735508535707923377438040826473413998511068125939283543663080097346148989406846951769052588588766249904152898833984519262404424586983460047217708670763416758774862997697019341331438608944999202771095367769997713138161822279059330972882544183161114129563802383265795933826578981025699338555016749703302497694411744236679521490443460906931386767150070731282407300892729908115187515752604518852714416667523600398875765583584879412361615536948828684945808465265680423858527998002801613594853881460458873931997539616291835776806226684489063176068201596787262354628316838362820436547641640409937275337274840007166520238075006386446260671707121391773841230319536902360734095801990797809336138197763458663339060598044088097618041733407204305061821314169937652417020109031041474002935841580883570432667775740938612939439391095914404576104742416696934474812803089027681505278434697274732858263947468772256569681447741588562121548985205194019590407731780009678450091058885529681874886736227428334761743912033614811736755710639603396564612738216302554380245893904227394487849206125665092992830082484940514572790575752206570661038326439319327305687859908177473234042705877852177922452007659439726149556100939182089983352576774431249659113063413560144265086184407357125517995559675381704031068118502717947450081203098006601491808325354090234522878935680473050929404909013027535493876733553434398550860115229427223159270190928662750257581921672910946912441341983456521341679647222579049878191714280363702443049855978447400099425075881872726432428644093963713593531277735676326609471892573862883131001608576228322004983854764187261604499246190870420988841828201808234857914895463149892706469170421089397510546192665764929293210486769516727339844850377013976888161830776131204604100714973945926524585661538237489071193499335231175159877758920759638295597177729129715818971960789754437144815010047686309555534078869064621008438487660302881167963398601824381020147296623973236853114032831881294917972184370097916127351825233125211100323300013453583639912825449017323197206776446915301730086296022861397181910851586410781992700847741029675623287263373132826789540899856862641312279982055144016455812579923718845994285967729073988790369040121011322383725191840646775899767494214647254873918701586385688108886435525902096259577014633280895795984852946719579218537400943210510296850234278713644393085950985670951823698439646703496690073146298415731410149143471939392428407376736003547243593099307153649507753007238106204080610991748005240895307031422632811418489176072023106319271046744754068993118775689559667564198420449690974589555481287515589159096611468310328291059181249564596489604407445717433954161384816154128581055962321732761400793465678969114241851966612472212335799305114694740476542720882192896499033550202793519437852028577508385857006566986761977510753231234510247831904247489393379123355737920075062195120279719925984753570677512831615907384869873639471792649470147975837838241714590151649567366013882519227204128745128237241796784654019813192192134981310525250188171536308343691194019796693671429980917859449188832588333116167506935357911966001414616495683563615014308282477404432145353389769432741780682318301903721776266821213746289810983103531756938249585960364603045910217349969961927150485175339503244896974515516395382908515729048303721976805475448157048515246304612573176842249923207439341215212576488000331183157041441091573343442993974522315384323248240531025246925338617643524625238668379342016437767881632217712335114515626260937792881546865578495960288186448399904360488807328488113566844927451323000500489977056644356392791428660682221874036711258341387515699339150416957161065779124693910816284427105663106328581040304141401205308402272747785051008710823223731758326030979733360164541007099720766700387190131171945159915072271349355725884053131548931847494233641436945949676987139323928280112087856152917178970840316435435127174739339228172264263774305785171330567836402471767402795293324519295190332847790023894401356370307434264422142351654162949831561325266958568362660124240389630779945296624449323946916449977200344740849378463600634829972652317098344863438775819320790938677128505267514135984135663080947106789972243549019686490886944598244344220936872414721127643253119795910573129841191655823316594065511734882243517487842583046535964311101867044559463042436945139141042719278278175924499397308669317996893558261309445327726777614662675916690311913773311732553620068070178741996544689032158958262927384717599735456262256873124923531424487525391092228790960725818827113750299424022566043958717486896752449927050970396018912155831050266609429786997948703251208273135833054859546772107192212047437411039455618925348641561169149673982853613964005399774508264906558902216017873479186262054150417911131682976583996175143848174826511297480063942321098437533611445727252727909499454281067038080510403697679893732092543123085212640248664069319258440542336646494829428038716864047755630001329925099438927546581916490597869366289296179402243285858357253321383607415691086753585520381264153400909649503009880322482782955227222461118559686359292262125090741852260557726961802499605902158265446649801553211955201764782252882778936056861104112664900736014703776297154357058512533795809816789131956784810647025795416693607512888186427758683021202301740031567477214628600854901561381748122370068222552215610396341170722126810827923094457902142167040178321078937298185835580405276318028121678713570838878756952266792360567150962871637179118474312359135172986748932543369647414961821899181982567217624544512428341583501889186266633956133717179691558043853814840341482944046080035763092108915519804801783951618651654089857562217274225577805873336648873514658956424849059821178992125661955541471514710977633066698721942297941576367785743393271523395819792722634029174187611619270279357013774753098850738367590143925827661571836834015079547078016641403765120418836484284616950927124276270735328751258103085788045142421601272527972186340194754337935621892772386456150396764469369890978130677080554678056298646647516122482637345724359687073517954010946486554757668212772926197492632788613353144966777562848033161756101240657474226187174772983007808403314085042461382542916126936275619337705961409331270082823936473243236394590627770384851659960360908115523790015539252184536144225944577414867822448153146877372419255960783588195724296022683045492030839147110073014768902445393067626772490891664875141218590481702847543252227187917400580923869195949084275416487263642224877284850119561172890879616024852081398149186037401600961699162604327196144991179365484890568806746371536557284294934129953052073219938441635711727067667695013698482174850422052428742974788150983328533506702745980825057456107096388227567362197679043996404116028643564706847417746078741645889747288876654619018984154732471366913507556902019561361642993700792196590474264068706628931642862878427243690819252362208047237006555612585838494003342817085204501930409060813967456986561936703020795494975886234674920189910680964819976496272354603607023240908248296902420115660126182621158368625825037330218245378216030848445666947477819612285466615603352919407367931051444848860502922605136774028961124223537345775125966590528354758030538523888110823288311448654765609950936316912998323901024699673589640520581893790691150347643540275622567897942881652536824805189844268529799180400528604110075295609806958735405053789140036582516370985414009068912530016594851689312457437603658791826070067907835357071903187870878627007388026254318052947286396627040022672862266146402116099202498325068723598141943909658945238051061389210891504466531604192904151338494506068349960440622284429971548041271754348211553111553763034530105401293957098235127093725277503954450446409397896348146212087318500990291961766876771839688166547099866734239248510392517638248093436002208493120689649277190636003151516661256420587384892471997297231967183127642484563303413840902887727380708316663370510722687098661231295218741038291370659315322611599628491656987689483274271739637524905746406824467555551833864787647795864753712844478016806812895395433559614715674559235312917689765784180616203558312764047075361749995972241287471548456348883596930233994446398129862221546838694553132706217482132646335138866046477041309430869153047640293996801278085862230524543733624329306745631104694099596081613614044768475339421271774116744836687009421939625833678775662494918964463538879285124887738472771255761472888914450133077907289079793319853163189131160667848073613283929547414291239134448339920235555311094821380343818092882364125749716100918400915632742624335848450239099814695748421427166511210679922832316764076052930375288722372882364190572721740596371677263567451509219720327458531693228042467572542325853738660156007156267321027036139231439184345750696639528605963606493758937437727255447519943819800271393323099697114385457594984947272627856167479530684168560231802967507760616366265033646821361306773382857526113127767636557660660581477703076803569813913175607863581988835605808550777458693284501375508851048804485923106383754731894672330283133043533846553778477588750342930935098646589326491439068508986721778499439868218816918324736547492911805818248420018681842292603348685372353909127441121133689547351537975806561786708870850687980323650410902460703474444870145124917973933820647709558768485534016311852470731014446097275930167874820654671512306036745252348389628791997990313161478561992878805102727610317379427824583678259170324427665177568164493285099537895300925553788306085976212156892885166053680615972626861221313222958427282168391036126747520161968121760327527542383613544277975864891869324520579615607342649967418289552179759061798783487632612365779490458489300343656168831982955146041115144024941060165526409044275673055354022944432470434297085879301013510096636537499221009848584878907864752093868864658400288945022533046331044554502756539848254691752073808107831462640650565383984078385014447361467790225377361035557115878987102825438093315974880173055347639355566478949687001837107610869059525562544634701222279753755297897308124668232768601827181790133069970423299930817926559755349535266096657925950233245237011537522311818039486235484595737625388741587571361412237202732234850919762686884589227004363179287811401784031101045320564411307249770839916163228726482777329178381705941735300047080068491961059987580489885270728314288168917931880123534424158215135081773817508440738943868168760442949839606882132148670385048703896445413728051586458926908659804668804501969783200731450901738649225362018781226594622046437162542119132061248667246942337866158839625028587228453489200103915475909659967273775110862611149505801193557754955189689338020251205022980096033059587788913606108619733313209313332868586792639457994568676218685132966198999558852384717909712178694718898559833839629127657887936743045942488585939095943010331054141404957549691914885888694520713210217663951467605462347791359217469140766529225025195930129426435381079577859981127029807908992013811468049291742025268458834835382304661103120732439072551632050764860511944184535002577888442193583987703300112269436705378898919765969777776655456442726463893043845199693672839490599610300000818008477441947430603180291528037184714147127347953709814395559817859641177816692907900595581403976762574292457105310393892133427645568198791218801724019302187085185750935247923518158899615378478162362471365315089469412438788933681455369528339737310767121946016773230040020161935324077094809210579813639092715403544733152477888478482386054192584439399995787052272041067482387624341630522771568064212033655596574475758808660260411029910421706958362929819659226527201527051350969835765561300984147297718545610549744783089240515356185381588612695502314658552480076844659791198570154820632744851002078438891338228599163596926768359542368354407844423780621754195898661185786206987147927792429824783151136203869153545095888072717375062775679034911079525961347410228669897320158210252430762000792632384744562571407898677843323098875647786623949181249229632036069255881408003579301039780470056376750094143261276670840468308780135554956205991330928908240219909488834915842884649026674954275985401699798812164753062573276996548349170912652074042561455152794754408788826833086524035014026970036792744828839922549106814862300317257951599425118083320761262289018707553315931619154088488196930535797039198355048673112902285062388103248494991929186380846912012623871726744873658779065088105319213261070580995434793426382173776747691942974238961116399611574878550179648101776231202696822848498340356576455894857541064045397988285432626904156031907735038521978464760744535084606365471101164564810054576142685380177833604598494216832316800457202303141405043104155228042312065439513187056045505589138993103419377970256757493821442678228053077447420461919550548356794671626696864948667425794836072873956031414061479714452375619096659198099406170870421893208176003989637303493158479493778238105607825236432826308455495719483247960078451893664680350699601920514064250521449252967235741898743794100764614619089595102730174902669620571167607059964316015893023734972207596461335349327803703775317511259148843450684534215300626931682853888938946113103608577678490959265484345059553976279029068045006183784662709826117360791128549391565517944036300634254141595844587190168121786705559960545554406755735326216122575178460760824967352878566767993582809560957086309651771170783620392931598928036740188315210401771135041665820987510925526440801801432090820211075705496014842255754306516289015186756688580162189100671123382874894684672746449647778762340404423446240380655385617782583769959243413402213264448222657398373493569421569757714281819511138533837102202882136003538450243820609296088164437669936402404059351647504065801239303550701894319690918804513208117626930076727652795694062177744442509830258176423288279478528361648845051630370964492647447092114286132963678453964702306602872253009851589406840726667781297956567145241519477718314184479346318813019003720793216902328890401592542463940443760272937566718905366687220552045371242683968328722702494838177067500222191875896099996056850302924293779021775766085772695207838141101109071367313690881719609237124334750114587514239434427248552899333387467637667202548692312345213572039918018673823645645100406899800136094587199315697026648769480101945393646020367671873378993781814261737779287504643204019361867102463620371747273504689611043630085171506566594446284476520554184864890915679425109524286355144692687416819655771175904061878251224776489316146839739989562845249651724120815560866893583853889528131945709340295213513338843982115553402891646536444443435710958589707135141743862718862314744750154189655657425778269541449049743956271554948852809202089765256166816093878764931199344253574231958835984943952875310299669706139533124046345022474323719903500782289050684819131141412470889936975691514847895505810445007593501216665440989092021374069951539891911465686242552542116616340531809723164462997283100860980998602443995750872480980533829239197112829230828400977367561354044018714903060137525511272883542439340425902233854227841706195424693525536588424113498394587267329169805941090592915223124789161440388597858764454140312325804238334385773708396116384617422421008498805180305637518718322054889559138852578613831244367853305115076552754417418331758562371527105839458166619548108869788095042382261914817862147442015439435980544391428582431228141476293540212587847247150759713041225959822649657163687421464197593553570666020041187753211053198505133331886286211014980991349824942714859916723858262908991371377860592769090352363925834192170433984194781776895482551980498860814285704631512269815175319825722630657552842085846769240974882622572293671949384855983070046081907642459057122451749018485776851954866443738423721783106422152703392747068562822563260427280534557714447097415302382099716275563880195201491630817502917086599796654047659640125157470735292956826270978277643457865878027155733775180365727237017417541765456455737154162535220347327381537611873006028520955576508495983827189235771168488284016002339799137964196856603044771109493192555394770805152758238742547559775592630581023473669483126630462259342749964669578254618715936226896315208148207983269822784399080369110827036422927868881259875642304388131174593907624070553157139886387051257830046375634457498126264235563816319811933957344672000915227697201358733959853292488519207364023985846859813118844532217093781226971608751726540572000986841602707036708974202641970372991256637780977606593222566860030006241144088026252390963581511035667249481807320696231802608245285188258279550770192214601338226859464800486819960735584580225258201795882081455072171189672692927441519825166297619193853733117151057622874938589511412889245085175496974812457771209905282020040401318637206485572522083329640845734061611150555993077734096860214888200796149110886788805812668708890134194551331507471729162779439822631533681807518882115486501649732610549469057381394404156933025450195446971399598085636995377578790446018243418895297989038599351601736818124628017670426955874338582421771933568283787814481718067832415083713328862496262618734815971401993689633936882115971956893882597018474306047853610837714111776734277389274113434236508384592075659897744575385474020195760726612299035004848469805379248967196987061956420900742856262060862317845415307934813733921946950136084150289890471067648916015791697696721406918349945440119026745430870243879661298485938616465957014424155155791431050385674555731431285047089551527099771374428778413026269114663223131270237667403137882748000328198842364140359281092529937962750436616948033369175068515954004225129721615159327234072309230281179488497315676307544031077742586052810446491402745235273317952308749648554764854106056193300957329125454573734729698062313230425361574412712451107636032864790567609532965798692942753241348210290992601582371485496632610974091850895345409299102620931508531013832245905346371614464895286850932314738375612931345901071877119074371247322648109991440809408610907558450114874236793455754877147029312358253812265688582294439627375789295805588020873426010442662658486889348730722342702702279211393090361718469495247793789627989365511358734954955284172430973456811617697749380268408042682437374415989449759915118299008279284584784624612651118433740148717791188408167867032285559704340648586075333479869040798521031708602432565967570288619928225655996534499106921825884899907534481209085603764655018021578015269058201595289335879838334223872495211441525809010466802395960215819546056273620706815983814502272756098861357744272527245419602256372443563444268429378423588567672711312944858025809335190278567098568114096735015258055423944982800403752681449280740601663775003730546288498969613693541791198386519102458266114411086189818882747156690131041705969082731165078983366074735840487840552556319930742193395082748231580699392726590252592531982186310749277106273840271445644195970272113675290234097152962755047955520438492498119153150982887314389268172926017263131071721206573585362994453793431932803497617946621387411950937318513703188405904213618779175497556900854545811046985808420175370944819876707098615094392134042961114810299699707636798608434043657675907312849221652759557782774550938913860215299475632511126735132499674723537110538298372184998695035994582136119219103736060730183122047891464847729191739323043979594521601730978468954151313836814070949222532397530531277696002604115349323141578280588213251549418572148022769075423186086971785391984788774174896775210529834342209006941462474168707448487571766776818677242106997069096047176102491338537234137446311816397037726712987182144717009658602190685079702304015210562559970705565101709835006203462045540235030891389356752177354776294838495304200333682221161877994589474194869896240245067016425731129312152439150072220014379477133935489726193874977853369713680369848158470597193113119071151256361498239351106141204904083779227267085562486988094610035598766715224500050279129624672004021839244019665366800685330659305448538404220082278071484019350995473434354102526867224217531124885528091765803764939048270823802487672582665185118122883365164873239397009872655978368548686564744962982674650882565763900612840675777406406280708927338138632074057426548980076221306179812375270902698767637711551362120961748517188127003586923368565489326389739949466527194405174089239330247686874145622714773496058481662273377622106460209647442658228963126088236745582388795379316572800708426055607477810124782745382584257674966746947173359064318859786780589323028506831208146682927651183246071085646398215002543011554704043220134211103092367322264748273296543592227428126465937086221503825585299310368502152935694200852726564180563105590823046932926784570171009892067176667524072518591237066568438227690939827631987484554323044099578391885901101147257818947578385392014540935067305073434937875692489355413422045025108958393949012829672222028443448822926180960983688451530483869235066950157647046171216778088354016508938814694544757240014898353936296084548708186901064646146544977555855489449940825863833470483469834428633342656887030317247384630863864681600724337091496545943256319419162048781440887555059093530231035470032393354948701481957166161159650366216153680212626785073284681133464823951389614416541274607374581001050517930437305067888157893427244229423495009731765420714383603409749064618731888987586221072079661188451289718816719884805703917931119394174135346177511263590605357622773945501349951809728954263395871779664595696938524149779673507378228774092182396671607203527004186273737778259408624403205561246528775227003909751615243207853252492126008985662458099473359363001899555286146424779488998083343260114917997585294562624867085494449357574881081670660688537592953908174625464905445546932500065322116695077431159102516494861210974618717479412297029283413617471423706059683736507914453495078307560274343481549243099106601390944621188569851245369756818882746372771787756009525901160065187716457999327736173398645280815210092281235227233625127187782534901555433616247149623832928942718827240658701280846903654663290705533723718539532661262816513293611217254784856421658840745809140413981872537442426220258240356754299857582265453455695588530307473382494047599972495305086916419641409022473098960717889907727073657765545729061104344190592852292664366528242790957299518203875329426401687176716150996815454384214354786773873856176629275075640617651257735247261730704041476247697930073334250218739565049363978495889595151231521987914429655368544073209404681771296664032062076752973044931069748673381649003623562866506431311858706970834144300774420810788871088659317502655064317748077706669268072529976001337361716763909470874658170305700575565471808379047912886026751495731838058243434420772938689800621768660338026995492096702619142518712365851265383248321810236137420020223849706844232795241108520778708730452760171365274891229075934230627361720148388466590477548881609918982604233316757022775335924535738899601325883341550716028694339847887385465401900654031114585894340172362089333745701726361258490145047364418848231118965309294719439812461164158263827275716393399806010517278486836323962469537701115201195548119756232368930385024858241281432146826207591313944474452358277062342851302226822996450343705938467637754006390012743598884531536002939670779440922482412798741622413474124901259938195966078793330696061408528408077016204787860353217063109703282239240516825768673737315479388097993456349241753587980847714722178885760283027278520199172763411306636191597455049604886816115546572939475422834442453356282484568507610903608749279756068788515429222332164672901243377956286018315093900394712568593433180809281403506093056807682525517050458522694778198009886235703492815158849114447111376013334358274587981462735993727784496280867411712989324435926575844895905576924561195237656130689470635439794029993083288169710794106889984794657061654807934160790675572596247193928367672376832266948477142373712340353055073563350292845951835793029943077654347642153536487903172888607409320744933563947209674500052585270327905276483162980605020449541200268697686619809511332116282557494992996935902445026525487170928243022261452724859763862325958992819467282256918402803915495029655110223430698696737453179121636658413865056173213794937233685882573190739792543553199464331788928805999278466990507785955131045880088682730174223754202684961606114279989669026426104974862501514471365014753562268913773015240117542171143556312964454134010172747316197107395242776297054938863594806508109971898691559319982407096794813680641053091747672601085361701730015544926735329862170693094132547837985658050509445638331656537017070905504695783006979638583788663901200672646896501347989587584476167943273321820558944016005788631871620481736521187871019233867932235376526099481994020759434875473733047998910186941017924232179051987092790355231579419436058295974094060711833288976606943233267777472848257405559443036344308309500136217299381139335470292255726941323901679640007187275666777909279492112729941468127387174542327196572668433290941773608409063356598025689134322412538775016384908645486222654577343009791681710125299632740503747653765414924438551747054504250488146221322917525611945567520916671775851915358271287546761708913071022642098266555533219141754150020464816844629507780060503339751610788583846454806922246356330117779529297025862358986291501981672368907947308121786354578357641427901851929940115487641092472102454887710104602802707712448249582445980428063692745566949059478845155703353465958115839471523155383496875747756531885125913826336706409369907312122496521487090860298847801907258482965958153398133870470030137461614937201301041509571214947567049965706775940750563691245150190234012446214352124315546001824360079323324875718500971538325719563786472092200144971131274447956385094334061271248278405418141833385301593611515586846215622502398651222430469304800620888021662231398833949097108942545772986216540519168247005069797330023585569597489567028037324563100725229052202260154891510144562093574349547849682114559778115173642787565515677822490495649798037114194432105765789473232012767446865782803015529370479794131348899624319782724393062582003740701739356301674517052142191658662730114434437356236759186150995178819447673440315285255797213592419118831728372392184454746402531598956196046058428140337462688484010296975304131854563286684313565371990351968298107229582536949277879511007614501245120680845377359148899058566345864865215274439682996179424543106576764917390401045330849631352572022280071445119058805637425131027168483717335996916659983393903435941014583159815446866088889405036279575203162372075061547461046534450998148924794719858745758693963375281931543533017928780256963860766679722137058477009111601541656570038155410078416458514730296963890696196088265566994232325675915269113655319617038169306500817846382802053739231549970392852954700136750117515456085835855684879388507663634689259932140771555804503687291672072550618324318736941536827690272938498807517424609546030981773479990211808479251602446949570226501688154547294495510345795042610578176104173857154441464419060836532382086926500371759089053483018688946732383395330609882450742026289730814472286187016002429504045550077600809911944058313151263933761172336117470871379599230392637415803228284856267189585680675048933267417588896404112099655417065882371216734520384519710623243080251643226197885683221136125816974518687649830332301904404034298130880049963172792104907806052863912776960861386288314948876469706648927903441465031080651676959946078229611370951051920325702718206961215860100994770315986234389721308525547963670590469154933784242095501616723146126628879032624379978274842715070282101455908710094239020492333591300776701731855075247396196893491275499929171859851917908147234259512574292891049739841037682792529675317544714462904978120533813606253103731026608267272924319256333114868810827988096892088416833074273063444756091303796485959741624504938181095111260892347747034312718025771784732648838370531379955538270259650182757151146704499502971216907448841582661416298860483955849484249986151496599957469064519690734315429558194324304947782343343809321381446887005761781033832122562107397608407182470018387271932708858160167383347075308823994116207610444464317276354353577451372466793452352519076188031886227882665324766645900096055221678157682486086567868736557652306252286362069775747341124285929510450989876335809677165228009139204237222030106403027253812307437166910401033173108599426158860645777214303699423785537819075289879452503946123854159245374722175636917234389994887338898813138838031610336230784465073341300801313499292833507099462478780627872049044176593454853281260083470892440535744095272307641897355264171636576594877360949500740436691039980968080418730213851746377683103554153899059216879365198720375310769525612540556556364257165041805974585489770930464082726912024850346251777474457050592579030310987250977802838767810914224513884948577267843753810168954428747691798066886075715545700140900184095416405502141394551972617662652340918582086176230503046039068075012791356392000124199730539161208782100247699769940388430331591167492212766634167762179022478162196937124908238000296375747896975513289293979865289550618349320692702636894612192019245058085934761272427021007167716534617986536156471895636782816476301922607978978529748962279778751649971759601573666285685655281787912395517257961955107880929423244876135166744681755690399460969056669276930705644325500149034742506089148725457467127167247920327693727992629437148017051617748305673152229261631569822481346584766265257581465893318473013731231622419426906132273756524481986027858274733626568644221121293341636517545115277569651765060025191003575704907025288616556938144299865604976500926031939549175044869209963438237104545931909473015961894867630165453890669956829652504097168628357349072763266211118125619558308045216693459247061172380823597411389257483525082976526301705521298460645833169330560012878953248050245118916149708307013192161454207985049376467052466934412302870755028263015299597091906145902152117373866182255527318505806794955864085186629553080587661424331779542620487971317914225695973706922424585695135012772544431910118409932569971719456225324067620502828846036142865802019306860616187681625510213101226750106813848665749263072112440976341300789351152290215649516053014676648337200147564683391093591373308311133764653946354502430066185747332701347270824407330895705053765505352181674366649334997341645286653594407228846238181278926386857542231597203446337008558461895942967847881739971549414344339988140178639048181908315705333653109442690813353268891171834144084611176263911268984110439437274316325510855070082654870155056941117659803544923304917385376738176594951015307901112560946345359189225047297413124110169615979470922958951377844337468973473715221441668797091069530616983143776938394638221395439293123674375307880209640449997850809434442034117309893719337927177116544557926496102080401748338873220426553337764735039763885091694592162562750084318982160287099281715998010499037973337589801940676091006940955137322546359126078922575405187516075011516661932149167823438677366872813880015612739594716620709203077941050285913150730538248312686492324364791881503215613283900624335326399916600120673878169147418927503541636635933017303989889789507540319605772543193944307971740872388148116372644727466542777135766878738742060702391526669327782977243890824846999461071289117112423247047270581955133500061828691277782972846633548727604006629891618571696553096140670671553013178475341630806817805969003832099824118318554649420867132642122851222654529176097910536018349263243036109586900523993567690532392688341817635210820353529682674421957985033513549748264574469651935302268355513129811517943899834576158958724379425836043668234133994786215807911672934312759680611056224473808523223076716767576246446074959701520858897285762346085636533362829563112169018830539968622941582546642830306882496968084809432922662950320603995903594757910079553936115649946097053875759951083864140788925368827614309700282218436253502579463060993208294265845550056658989537975967595770414650166209462889088481045845694182937639210729471563784380944878890143813503160634399978517149412214747728415553261600044240150083939453726662625214946839421309308218278422303879990048048975780846283624226170941829217799312561900214090353677963603276010500505732757063799318087700373448292922531136503518814883104954075738882025012655004704143328365621704399397670988586035203637464948985184692992454440857924686151991501988202206398903242334898101656998181394345017641324173961004888353974267898074113208708171566580126220893048725544470367668100993610948756175425224069702633799056441896902174603771248979116265660158139096741747951302441263570414184631095896862954947206652255240382821493655503615595853799345434500291964586299799588005112677914667157263187301197164572280442867310071718669755417556157909565320075992376290044418618939209776359360416032604429258745497193475901765606598451263898629443568652634968293468685692054020721715159131513455880515024270415031834691906939724214164128784097956198159118716019440346090885066284368451496543018219766630388663724109157613245235114484273682590085768487633748602944714648850289065755350809987252262004592402852389406864994622561043847518559940371962909934968822826339159960308248733339738247232155821142255291413040422111248251147717048502602649014343883779495915699873584484630015694833601465071787538348885396749730770304222383437976261191585191349520405327316181870220007968139242038529275367300036863867949395331651102417050712345175551035252152874536795276783445165726994307507524612948764785470277559601945682977936429090958252895237997282677072719386085875967360086033235304723671539105712237665204326268190208095880776440182551409978003308810004760159713494119955838854890489146910186681876028439230667868391092773915709531876753658228108420826786081379658983717216042513570900572408824557529313160864258338383188162460320336768616688210823167643714781162816300421021230481999721388038824293310835565974949893837745036572505536549291468801757418968349225207495480524830365286412211751966317560403828223765384130297957991437882807607246394385954457932141407112569270915293948880245660292720787356066668035503687191902488356203440492795565221509927645549834394372083862294045826460973224610042898568562758235548517500454583282846180450982182872059817261663222897321950648249467189968733522218579578867055884145477839227675816910179583720194441682524190881056451670482912910202310551481332066026755562840382642381212052184464173914825764204014511050768188068123910978469120221338072155177154849780295802546731826732310104348199666616964099295527111366184427252901408861304114790126465653840879182824239858996912024738786489829505496892773016959049451819563761118840263392371218020403255396265419292419915986664855909331908614655487986854850307809004824387785309397657507054789178159705100940166475991220018836108624739205902442314219221440097785287794987288667132592462093722047640922385949313698580860594548101895750098448919644429448302962613978134406579682014762344137125190227508073100464283535778055322698737482473432594264278040736594349051735298376463601145569870284106016872087245355725470578556874872181763848558277064720305731103728531107314759970938418418479974169282230346237426949112936575151547107529653246409198670808812671187557736255827693653753826102356394125038763473941575587344321139514435391562086414015166821817434780105911058704596803605890776399157616863634519529870807907765128166735027713865708062623600203458178581390595593869613783120962204762770556026706431292669288020800767409620731711527413182420229777849895939576104353687852542027512434271318489796259357856821024599104711208903065923635840378267260999146105597084364169021867576668194965091720236827016720791798595107648471328163492527232341695419283811814785021801056184849550446136979109523104831945004900175061753579851488732421500452214880498842074207021229471702896367683078867177911410995415273023402858091483525730804411360962929125996954167081595151286837466483305359794462949519586048183645026337245972078034919622501040404143343136337723185459624274045150845685552803918027841385124760977164927792896518449866724897373962677446568001746419357553091951382145728191349555167707107929175210590383618572517505951173939533016122244037441557781431879012650874507289652920905697900261081231372102858367495698992432006444221147197073966346438212112258764182665290197951845851490559412719863283807060330125036630657308939684321799484848503833612143544139104429163734837732018454878601817314885974704795259451354762088237674078046224050970767867203688932738037331207457147813039234415071907685857021610746568365337523826806984778401111979637167342595320328387980877023095533822370264554728920407215277486295102525360868750782395373225043152998991067006497736177530100333474144701416063706030416543896728110373212201762536074725838100519770504793313724594644925345478875244104184761480279766129809040847876629996797770598789846848578728274387767588340787828050805997942531546866177009368430415449216124186534986083597945552463286384539247294704611013819624083597261714260387762132027838679166014947963593054104423055376543094318853671398167249062506689968012132007061551493629535877471051963367777373342005193257182735608283114614959552998861951187564720966553634671460562961838737870261578507881278122773815430722595193638991995990658050123781232132729188783611800571453357356834372516607079549442772937760259799143777433731739474932737056667805048321754980337533933193821469308809942595779474471921704744962395247497804134892459074996753602922269971035841110350821777077879988257294303556763189891119723232177121683374859397304699425288106572794644712623327226331523722131013957981991763762948957372862933908364602763432619111984146268620577479160909453284093942951611183226893038298876951724016700726662759442922413570441813196072711560743882242959229332103083830695411094175895005861616792514350699263349897191196537882622621181347472637971156305032318876120186832950635860773451646746499166185035292566550838188340757734235452536254099707021355468031893625769728775306978226889128648272996627152671887378980115838550126190440021895894771541650590558404735272596971156725129302251379828931773431479500625309720609497410421215656479242018602560597913223822982802811687641965415844967434780987396116430632262100660896932330983138088179515412614653686229125969787118523242157678921589307832780389635893868455643850065505195216249369412553773803236060928429361679401942712903900537331078796606919881448009935663327020675494896136945618809088287382987463334610489624110040509493269406797172347609768285524057142110204865529888825967168858276595699159611210552813945942294449016621883210346453344096243899063432457591081489539095577744791208858533658585649752265397647281287145137361808099355565783894119829447882870679333193575993020537003844709974590148028485190930210923725589591903736139510584451445861431589182024909094722547168144759040311569908513538646292124737677334598890484453408767511722151534086732013544228129784115191600154910287120484152014381077205933951636873624486940451759259479807962595600298934016048808630358123761021198312500062421124614072868020255148404952767141147700098840294200616441181253719198725285468518916834499823326073497964456627763780442463936211055471696674673040833832745885627251116579725503654275534726020909812982074166596218766030930579364819975131513711717364901140410008423705311490135322860436015032252568847985809991939537552611073319295557803116940473393695379919788993384991876992581852143107097076316112142525215813206485775209081024165407168159649212666693219520854857130188124166741263594435931659550802957653905307079016978302820065037707270048493765407898714669435096394833598223966603006771499578833287304175612224882897723869644016854319320234855877448257396959221244867773111677986471092349881512930671857689694966495685499176401206028165556764316426154580626194192377892754499607328683173763187431722533818664530885357457542092237075414109332132403988769822493511687282707213938181132492653395772571453129784482437080261068900082562630069053695172361868798501734043471495559935268890302770852873831314304754627866792473664847065654209127806897160810586045738680792083608759260656610231174385079564529981123165727680958979870464392491414087735363131421826471273168672847969627063084655984997801420048516452978111746580557016308563899469890671113551241758184844982810167194467106156842443153183248012360747844984231231342650039255518788678990415986864686746711659395616262360121181550517504309910649477166986688963359685835084476017239894511783443574065168415722466971692387812158481493598899748366717066583893591744960682229511157255305429683298299541409445577845652395330175021897754198549774148835696123126861589671369342051475468263655863938079797173941099906203075322606156878990248413029799985593538253341389468905242264150918326595402594974516839278335086571143912177506539066275010803560856496833921403374797465824346013393274385982999155126220363902559744713949052716121531505382531144877307677634413560659866396196492579722434992371242331950650712856782816973138729119423171313803147778372911528108760617629727124450503618568184872053512689332963203029492411321302510990770969387361891756540764036559915106734624277683587583477016124134483357793609876991199996244245910266220811569917595148600484248025776884566874480962320635595763499859358501207140988546925184353106934842078401922469386670769625852048371163674968146920887913556110146541593245766558657169340802395168892183645798486517608003302602529391595611270045120845719029435118565023321511173338990315707506241997105444823442454099671850680622703673313840882197253905364516147913741081694165644084199283858427674481977126355382227365112916479758067463065953828191531967369704968422818944527045636405774843657544034101671903976965189438198570698710577099709859961009398583386038386155731343504647636720577633211981945167926950027644926625970910439348797564908684335496414054824529554764053958534442799197227511496639035451332742716203552234039380018535657740860322677725124799793920568868317140209753688517313804325049207708970214850799621774108851052645911013650568335386095440027576488619751386373106323297983639664470782487952202491060266109427603022975300966201553802318279586422696158612647938364568056623953392821534351474661435163667260985405240410256114240114605326855190909997394024110379056544904462981291775502614495185379212978504853623307133074060678390577461075073822835405617717317576875590086128227296091750964193213642474164520589210294644886836700881253778944973816353435085588325704660720702918281929850761543039319922321645264337119879075320770229880293188768913263392146036587706818890653398554439021185095511703982209707765042433203436258533188181777407080216896801181340084831551519097523288378562741306869897275792850079219983359547741976217574131197621538989420921355135948439283924852435336876698178795538574878354408445455091513973154034861591844798195834507368780681215646754598164693965504848520381768465303231962962652768680530556123274202280781881220271152865489513786952465413213649182612179508111761915260711262143019219446100912455456362692920127336526831045800295806422416641877778884553725558441842830853780959496566880092272012100530485147413305860300273034650236766411031625290629314259746758655117221877914960588092162244558647358347641399270659411325444804417207937067501446060702060937193706158596890167239070926243288044098120252318747328698230193997807808566963910003605413868222646939191051067881158972931046617104113766104886328698322160479746437556168207546314987389039193350487805577119116044611826529076854119428264273345790719262229556777220848165602729059260654165234420978701716177045892009938879790714982021569137477085730433056075279086907739381003472955410295490625009408968731837485210428010714687982353676197326230914812334591741260574101217952347654810466204733896934487704263247225098023323241673028369791332721656854538253039902502116102212576947603925281151083895463716467178447808201407255997353138739277322157045569090856333390673150254389983551001224185458003304142452797138635752256604184713204899943866671954794933064750170206916758796023395488145887904826399646660815233686568462544699472167486366469795786311087952094657886203026905783239324772035036087301959094102664981415528185669891845717335692383981777539608344371699619613006462576217336340239199255314062275575054177045396113928813496986227224677140820040324208075861443917447938999641597994110354210253672452930553077122958651527208533232017437186506888359545403298266597377198338668379289224045496106069618012308675242634281218578739899132018244256420480068990430942811087745348170410215190787842205183176210961455159102701038886219883789208319752083889591782698184442490279189648605708527698009201571793339358210397993972272232695014986754581761159106885523150753247078158006528511735939167515029690685058381822547714954588404213412147825882487723327936527280090170057607928919952146003603807342386020325376636906745189659123318421581361088247055210305966351114917895613462161273743080847612236837710219944794803890114354212914154773916640358627455820879656909726938934832704764687915053062271061176127976782396041619140788105341671615859877880577903838549911733041464546196475531055441130687342761269593521238846994481367508354047525521389304631634231264821571834087510878258612492727013339575396797719334280348276996967684523328075611810032146518409126941441325176869817953524406330783054442814640356555395423953051225576430189400714116142235522029601266561254518273970272720874850975215524045869584719627462528130111036911323294751981801781124549491698350936869778602609428386768950173538631795886624805734831821781455729558585254957081430125270669911577124768305282536975489560682043934616986070602119201368172174354582052551883043788730292317520492815370510111890244683905361880135630260711364763540519361410669342107827482987198476500939132768773063285782627394401017375995157889647287398087319227659208877015667825753291898789080267298977263816049718669541852779696860956810347989645734668631206647672321586856237056917154079929188487299923119110875637171033740903318340989526096917577070288817289890250241242502863008341125857943105857997884963687658684974642226297878194902311879750023075994808485104055401349210674764653240980144978494447152128528656511895723094155554521288958572986823328204108979601936456179359870109937611990831083701145967723617876925821783585158221663901001152138172955135694902077844309284251312829162787797578099162413917030067400831861942064444228904981861967181900934988871675725191625564376419313155665208975614914106902020654868554106623638234905358225093861103400101401254267799752744987640660658148594063587318055693350063368851497281813665740657207435800264409295747682508019334641651741317493278160219352662026978037185663778304661972284402571745683193649675057226251967943888929802934853739698876941856947262813999687058408770819917142642953685859278554561149648659526402363342367154713056398647845124037181521381974811407572447710573525799258832040646444217437461897030942435577676889097117531710943132055291454609505708225850298988283287948619356345047824641440585729277733741140756033656473873227152738473275272283135578073512337994481373316618242320157674983498985494559159424874043151250840283223586533469976649157125299511134247865298339518130435197148834928599815568821042449634452825637159114517339965393748445145943625857069016052532216120431378835842051248962500335088411799134304111544805811563580913135090723140703224927857281368641167437479595458871885628912853167747552003104029239949150100452064007252592419970919569797699400040160636532031627594767183375913529940468559436321185875719282844470448460053896029061934583775203289384793500152407259785320500711065928912591856124337460064050046028003013496563944831437075898995867630830034353705985040291635083364708093322605901340460266349124873307806507051097730851610187387044356578176993884250266212723477198888548849856417399163664236794741563476843881928896972708342416489636638774448872049093109608360452501645143716761995746912043506031815184853595014382476564913355196131916530416100223597190787628082193140895209859723733924394344518856728255182034877063452597297722828506795625250736792599305329673708570966428962544707813369357187511973710197192153886003870628350373025420073740351605019448134315646369752110838766597431495118918510928289493667253964696558241894963154707667591973540889564467660116884548834914077230170472601084755497017980206973328369192805466678466764089523426672186096978001213481681960977804320268163932457026897824441007847140874854152414514422907486102797248565621124837101644158410216068053352606391833541632984308501248302942429104300477813242097797889154077373511334850111750639700661869992110942717985306235255489854668006614516071640348744185232030437010458754941950897258496455973566408793116061671516632495726670785524288739465941319333502807770356222437867584824273783455491068559350146613860765080883881840971455198911855772960257278967295958641431686302688813829794441235356328164482392458951907389246109921996839929674553666423441368224892452832153880700958740435664766191490655672666514183720015697043064287417554878052036373515797313200599184698185822553264321476761918233556625499605420033859907393030488151514791609017081593886068344444784290832620210206874400612569212711193547916174580268599525108539551908116029447599061759306106720468684566133868440448645732007977223671009574778814687977909547279932367098560770959833939351713262486147697511458442608537861592492657123549688471628672092914201928178588178209497921902934036479991315889290909553046331868075978842492463743479316936287368695503836562854091000738154932280172356794818725347881819481879116961994414484053499040096456038743969797780410143192538456114188087893739880952423840139597493683738280445782405047600492160462442039774144151326046965584040789696353758679340388947294141800290589432273115485796029037083234262616326019125086723243909414552903239208971950342970061404764213263566352180456047770014989119731286209682709156686808441154489415048615436485077035244218108949933833070990389810304776641028697478606366550390427181260881347439763139318597226649019829227471378158204884772516946767052186735706445821398425615479608796978410838417921697658617724744040493836444595626596004632867888913037708251917789879504702127152251450925353731540591790118363744220978274851913641094314962647860052377362481652561538238451210226755977215357321477181511216742156708481963921047065668324547647912039103210202380698320731486329191552315005562054345964358571298597403240065509007756927555344986218737987236234797669397895530790308781911292071218074617725190739731246467177940412805703518446288253482931180591716584040896337371310188474010277641293666460603039566512076796215469303230891894233696598281361291975585171200791539738546347360053060594214263602937712067501926115395207844792624321634060890673096794023064730442736464738804622039383572672662999098746624036173219313903930690167349982540859998064115262182210152829546623070699952832470516410169639079687903810110730819132942433510342051236937751813416442133668263512031570281266889528144068629080208849702898629338851178443107133878107316085652421133510610118345380383239917684787345699756851066266846661365705124191939614250351605327547639217865051158216041386707807280570325407064044982884924502746662332695412972079475259227884725485793164316171237286895237348778671473922666313888382124495183455139889049412403889196870848058491726983881133424741429335202667683204358589668797255617434667427072148635162226458261059469419346224956188324265251461954225557182758324528186677305919220642314443133706316733589422960704018930839011483174100062581380179378691058482187426461363176262128408270784965517571930306443907979910941445362833994357937663269723471391059473372008940112058996594378998979787145556675018863875445001475281863344679145288646342389720486707882442663084708551071846879138496086764432397984974001212432447759200329891435991802054364496014680473913743026727911749379327299761998619114534788609854368696553318803388609637771011581422935899469710252585867622647069174944837452246757681853331887420243226303162719917619414717385195482219401855790962633910832658276371365763922105746752610840268058147595315890311571637346735705188258094060867406991067125620943430130847970724376577658926755073713589937523092835065330648367798392031529025515812307772583698668579080817398143239211163213497976012931978190333468134708015967581777484626048429044167578744410189454283146976807330661983681375434845899750804041662067302580493808377800951176270922470928395843233622609731825166631664384533697645075860293379401457528870797363621243335982139946302453590566082798799953141729624520483381223411343735825785817464514423986239483421492128111873746827609013339804113421823899357906078433040702993552615537298588614788736679774731594090608459920517727952003759107576720959539509310121992365052444326694734970170234147875973773157356195943067660103038001346785628769003227207254744475322248320250871983937103207668824940353788913814958554626641854751112005973786709436358739935085675569135087872961418594751609688966447542553558724794444605417083033907773784323099217888344346172641687876759823402162359278489841197514896491031311537946799187233027552942687737250113323620850524935900147356838874520774059054713317754344853242495163855849562116914092239431177222794619573719307057456269282067112930520810853899296656998272836807293447106826776437689448698122317854657071729787058522110385746587364444286424396264915168722799436855554656099575852419492158360157686203129411716820647432470025400721189229812994040051593547147458628226902658817604274642074510178695963410533856533479546820868466111320830327706882996121463195496709022601307704683484611816666830265939630469150760673112889981919546307420280233509920530069475477128963080917351660554553196673832111730081627184307966271406504118861834944490244164143834505399087782511358733996934900619031807382631030730232668267970223966932796594541077292059388349193547561672055074980083258975680643244863668110960465613964173819188192634789172923741395551444733200339920575649911340973047113980388350425119942009740945418782658471474464768905416531087334655023616611086389412416592076993895226682950851802668967468394286050664881816791308475628774094101333483402142859830902526500234377673613297649029333747188076865723142450520290301722324375810342244651615548159336473116732253561584696657850655274663306205711727924131972341299918827307876279690060302233706237022668589444998053548065257400229136070393908497837055212039614700819950040520112245830541484090282375204356638956451152978254048716245806512927085843988261753075278898352157623707768923633595333055648960201283668160848160125384205235762268398332949845952484933882887264164909075814694414533584762102220503182018258065623719381037138525312102970424258649669477775772911909338744038766748303797298649320156854274937275314465218039443344749707086833662761568212784627294783606528586155012509896387558001320477047395682197861426750592623407215067995020160749111380470141820784005178012110514839430120356176048606332635170898810331941778854986381165433197395364321761155564258336697841974755231284877970997948413852711139904274553719408991139225547576447921939538509803869354547753912876021931297215501449437624060796470740715812179175059500638303584949894515328467788954335209637790479551782461436868159695581335347136133088882353994121933575852351724844902777233647214813524198003266584323614180076576066006062503470668216477687675982549186046080558468699274803872586631596326869231177701958716846870785478697649270064972621928267276054799477479435418593435546697812725070626426729487585655980239843015485719554592599673278914846642747606754894601290402987275623647817557074306965344811824637101408334019300415035309536453861983685822649668440057477154001709051451229062036428286116787942319589082350300301776498719231455085913245578755764382979472024877581891003740786485948126395942572519507669512503843371678845994332253621469345566268943701003705258034456972208623697637404299358125842396058157941332562536234266530710404614321404555236214896070690584637242619712639684612456870867443075057781355574547167853931423985889548682954698347412964944507307390594335515220558490240779280173320599051693297755057809935487121064329193111891065387620854239054777754613006292718207941609615369554692768681701451836570825363239900112765833806756456701926133982580025559050475618901393215939186067482948258615376615240929170061919743232916620744833965474057326544103294902197019094236586794211210330914662154343031413771770946685590280030921132506163721631189828621871929418542553104634932880561946936426990327778966379093399988806407571526310614795000917466135093487017944566950857924074803937167244515857856523179538582932477868369383564979526636336815014432900417633044474767148065180882678557521423471524203812481415962339076851680980012488460465672395151114686304182895708341880573476530254483888241287695639606757192620308567284872068703009873373250130135364608344052837369124869884665258608721607819509653301454558985602004198538425324230778278972063245526375221629928321397657388466641560445144569952238959354104761763139336541847818604932442488512030175325659592963842022597677075414289742764554570653152815618777205005497919020133479207756196490887599470808808378527964586293311268290505348301104437506128963300874290431069563038395023432806683135946880155962781864001167429725905717565471153433433545373674881045909397555624536285673527759674566199712372652191439179835170343451388830052053932050200346636274254984409090710430470897569955784368251578654950995560103879096692623231354421538729685148071703073536514373361614880946533913233691113992481123176516355955981551602742993822258859663570933030324148789428481596945026575284667891994652441215814424791413938513357621313233795266008954841810561872525039289518541107522502721520412378488574371766504908355442536042224893139202922849876516040429431991890162328738291579914158538792475537722603331932102231578854781914320989727663678773757699356866381735604748521378907595316134563124289778787236838387266980451115832670079752970460363594460561174757976821762357988859667559419980612099746821235615102670742166490983193188578541303217042222906679513870124904790795760907610397700371622992533712605212486324143918864820165947612823620420352050359497209824514120332594838496468060995865578848279120943996933451039800720976037449631530971307672700571671498615403365207899760899586235868240635710143054159443786392734618895415612613431571947932168424200113177895590609070353941145639395100276393628879307747340963316219991284315694399224914803136948484000748297058818473115254183288886814080231475599597317817948772359133954599531847508562477835246182972348906567628148971842649735213289745845775217736647245153650570469316235464625029446541891989672986031231582963981478582423686376343998813462518462710181221586125394336724765537642379023135819481664218598880873357670798522762178374712217407351164837663958036758915888551816865395350264755185213804770234144657447938390923440727882710717585270562807170961181747422212967570676012370592333119378942309139255723816722812716271618319629165882454682881316276560013588328682148331118285160598950148935836373681087694887574579351817214480978467727038896209174990142150447565913504251953573827507157464900500418338231333235357543790620646645174249111180393107880344805284233905555885308571009707141172654028812722044360916484279037531924408045917023297034541092106488594689273879741025537731756464920022463995649009024313769719233339668904818844153758442276582770432991841007271123936274629977738290828532600802732471012130438962518771808303614068982690532081259233467639226192021654668645246786385225564662302756026908848204087842861112475939752073596862426446310187237168873644687416324353915044494354090411659936103577751428960585286462117126614635883709241602836254755187994098730375084894737244886598295717332807736490449951229186763309013655412954831541349658095835053899908796806502183441363035267931546870395246545867814794714633685806467034450871402665759851713573618519723940002802923245041837377351270199685090894877840968510912442141171357549166174541360405595979304701834827081150374173078362369517953293040258918796497597683738889279356572779351359391254892675680886327704234787460432620663217469336925875365287863794813420783804129073241816632359701700966990534879941305185079864655568136544464038343641611667278203113394030865761003111088560551172947756683902597500108676043030121512773662056676152138977024718385839617056226402273359323762798326879976865563904287524589442271364836028392401162179048386179877087657441715019309179636525707571774206440884242702062542850421243488794506456581347631545785449952064828448479415926791789453268981712771088274917904831782389419776508366050106114047700862803531142610695977868682087631011340648662872617549284650183748788315561349758701885790880110446304406440897783850803216840189956920886173495816104044857535801846953933296575890112612684203788913608810573502885161790842340395866182457555012863201111271512115440148181312154034470160896155479598424042545550681279330180769908035358226667369324974878126657147011093481007921858820884618622119743786063715709419822350686158068853541986361030629717369757019401581745910244650369733184779750416982803088207262444230980707878990689078119769630385360671546011783019946097280843928423557420786457845482135302907234956717496341324887169518689676155801597318739706834979314617652800653647272130487431409138466542347166813263938697044775091219641219991070506741234140195150585483858924685816307811444261138912301883738940588086898707667944310392255898695156396736147412111070717445428016478076273542176997103660548034597531040381411309061925592494831435235864571652681943289212408191871264168719417916376672613901917718027459149723722766836163192992585675889964289929266566344058481793182536264593211795386558756084493471746685931265405969834041941649788013891891193667014818600625958302184096952160316345496591433954106017381368346416672975259315131631820480784517384023445591896408553437379769427212711173705222017861488185745844167273836052114953670343503592170785289392124737670839182882943064280497747358282878398863100165504071926305498251064642811915459251053875132072098454929500217174744860228712214239259501187289613334873484334160551788480556377032237201502005235997293356353847890127153959031409283884998355214638962751924268077262818910404278750851007274054421612153288295201750381318713504245048395469829309898949004330024642217768790946694854609441324315467666819123783582704203694952452494516972621467332038844752403827269835471316993934014182368821286357233067035034628617519643849286397904406721040229565587605190487312072932285707982632185153217785341937468509112435469295821118847798710410982098488067560367425223166432710261999158927751560614333563602003186934727320329589072920354459407982618666912133498280441702219966566294319502182605082665135776508235990814786622982204196144663036130266263489642250802391213085525172106464928571614094033098125644908944664398853451535510891125524002374773357193144214615443884017614352234671217748765765172037235695773227631623956814888089874648460091709590738244300654914627074540290571711797221140054467866367104479431948264952063580773106992030087974704226545483374766755779330873155485710075608296160902472944415308497352582797711329742048347307588393103922165350462072510071162219080577993852198616861290779980112570450760999664186969302694406997401014411480070771433067922834490288113701867955515825668666260978620137831320761996963721448031565917729372702502007478346214703721099186755947350266086978356630834969103855082858642252539666915746251559823829300017360221490545956162138745058518295765090621680306759797039428749844934956030738751764655445252486811627491946333271706615433569422788723315927600821847052703965128386083931636546940179964766533376979226607124902326546116933716724095359218013431345044175089318824599568066050757541560015197417072586070553317503391233025798120013393568776023114241149269422820044181599947767008352871874058187574117907118295846105458200559890530482023112645843899833698627163080108893566606304323250693324569485896221655778308042106212262680621415536853350269461621936951644208878927811942220883044014086731805599095448903431157645135605724007294152438114013300321922461707611522274767720193762865456646109715295276144782508281913017341179447453316169082298168612771862956710689474759268229384973236681888675247535173617894366855156662121703678844800505568264967358590872691350734592969888741432133212223476908259803903124129464832051677976407089854845234459420647781007549175398496835501538101493676070092596972969639761940294509438367035353721546667568546913747165527922300549817200084136516021630850938364022078533439708604870334565939349323111365677055936956487315357237203723605862908488250928473140315634097100909890136683432882345357559253726189019707987581516686433224734108495581684095327655219686203839096388879349293334200589358901302418163229632385272050128417873945685197125131596081902717080508539699734034792587314142764747090820220980265935859995182403065544083793886231308013877424480418540888206719879043117450622427228651689168564434190314799212354920465947142209621752697345269653971975238204809218597060650387074647936767777259386712021373310636469135128181049064764621096699673921492715148952196575415643546157864978520941676074149418156503249738669828716065217865249220181066043449955012884309146789075533336499441873338574168093731266761165655993773919561206046392725083863897762323149807518054119244592889902350713129161146808516418777471002507641035433852137987534393402279650498126734564677669471016239291239855333870585836706410736515358676101395095295207420405462730359203753450218141086984503571977173761081728427677915776640159846128313342308188029742050376970496535293994156133188892478658432383213606388077210921618617673018640016082969021783691606243095296090019656929341526889269808897602054347689863045488500935944810456469281481305866171015729506997846450638460506828587175274613863364884765356689382529574159250706488187377274301075320911371887115854678817375944163078959065442385492585296373307162824071945950325828286736687540646305823310386837930516208375164653882745920432991794893896553910502919818255354642609526627365657259115394299948380990128486795823683466843460947710862269904907696713823052021585244438842726602709772804873094416824937306079353198812319289298239883778392152721428696742162731658903487345055995482804010717618823245292716228552939808189071197939860501672649352933647405743211789308324048187827269195042321324944975592949546950227115707235961200590485711201292783532152291982663452770920067453721250656697861362940105836505958069459140231532983537738341732140703189608678627545235442248875791839370937885552079911264429918813965859966577124432692627754983652718766093597860623834047920820049512364154252391075922632057887361354332698482000881159409147092951348521080086429393991623863878112133478855865999591604762357232932733986959417915447806603441336000052791827194439302354425447521957162099502608020138744769040970168191074845494912335433883731262799202739313869766374241642543320196621828729114322253857645314192828391328010415965324788140594752718092389543901949652252549450567222421282422246552541921357367550915586184665929801244159416338521003070658306875350267118444472050829341305475354580976732364038054708661766814220979461161809884332108739870550992206745531633870844239740879155168441599945990353175722555576872579669660278337494600640396258523866540513043518376719257835801114490314382870855511785408376320782375228611679211462822580958639765624167665845814681552392796660945591796619214627425670911414654663967700154184104861691301769289103385800713727730004585572322464066736790604229372909914234483794189075439019215949579077432394312506073066557077736945837850705919048549854022626358589879607180448281759377535542644326921634112004728263088838670775472692771283153337917977293289341021095787951645807565751980735435228601459812613728822539134240851388361847566172034025411300612479334479669400473733763939780642242504252708247457160304607989774817857112187173070990686779613803037079030703289264812249247552883860521288783445570208438002025718150566950738582978820245157820811418410532771222395849547781324622285643472386378007064698908189907850248853333934104356180790294480829521013253397366957034827646265477390235539933694838888327955506755260667584261115035200387025937668208217559482524567963948020770681705122360604932255096578683690567895376467548674236765847729365246401164634104363771835655854944960738213051301854061417638404199831801164438505971952367727947396920970176042511335656589944028679046259444882444277230577567014091895640116247305091366917493615250589143057542671569916433557616021600120731533411398905781868040119507010605376166989251233917325149318548879122067663435553927467146953789191002387384254696520120804294368878867966466438276768841379756193863379123006881391765721218282284470539205325952486313178919568598309596071548199308820975596136115910928987057999015946595628360299162510399877753250319010587270314520296544319859798724140171721107670660717370186479296747920488170813157107622759309495250552272961452055983779713993610872430923024771504207748535985049005976897374111431223578257893269635858121443502699881272662910429818671492156827121118088567676300155607956582688816926411265745695871717719271284479826904073218574559385593326173458514336119222801247933347866193114977270744515373940098515835862285397556217692292438521969574740242608101381241341356639376100089849891509204821918309111601115732245661380908235712703518640845136876532492731464708808233290936541400841170859883826149974903855692625403330524292633990353594596275508644732060816118099266920743512660682427599660437983976588986104451491784723857730812396056218591780260829995800199509324661719655919059591477995332319136551892858702759949089492467100595756546430760621145731428446470476014549916392792569969572261647913861896980006743338731689717759150421709555424071985814696240806976813594288904599312645619573569110420965288336111609048167284944814901953436728054729091449162956863571031140635976639392609297196556938938418102607178382217424260415402925692132638346007651874128112101948646698256173345567933236097682968597486006238362539297341275810332067217011917753786386514270038065489377633991040570275514649202279243642702617989336239618564543512032606967306908274591047695092854470799994044536335091899470391167928326103133181939403564407785725978246289079661725394876076272540783110258929886688496407640434794089999707813844268954575339135335353282143580068766213610048881942798259876481214643671420830662522361315347369211296317254985090582932667774724032274043147179856683046822548574221933560296277276639921174790171532382472939744763949066171446734037102418007302284965081513482984107650912093275808929610045778322542053040103547926635784438763991482941057639533482147816303860872008921547279192318733662546960121254345637355655367756585933986938657246919058282752258181895172128872206539429120777079415353976607483567165375342224373796207716211245106703270305023028540057189803563497649506140846891942853223122649181670530322999404464909890532164289511175507649306508167641910828737622530301647961626508137328707151266995982167397783856644080764969644215399870947819657432808963655674867790664729087392459865352620075677593782205702043981333182229917581828939377928674883481602629103521065955016270983114166463058353657025659670199992108102680157689284146936552435567758883161207071637911445409968117708702384402455556036401053563116954355395790258594741722299257720635124761377137322412315820034107829743563856822265355654995734609531939196692062788941177088377561632199930360915925746806133732343908338741539645402092544111918920588821862547586998083126275839363892190176839607517621698442992282939654199280013577576402421842585929576880111171889219529812557313658109652958286488274333526300431828487282815224408954224962650144909083397515484428068650981691523021239380009860036160031854147875456567042158626921216260587047842093024485469872090880355522486351842720888937149007378741240988885607053912489494423139592894324016652536168876188071737172012578866447382752329030517857644616179467558484757392268840054355928684715682531538517388120560299568362794636603850462644982442361919094925978175092242511172901577701289922786975349660574455702923601430162429712917446121503084835482889880843532676849113980869888446553928680498084470670939759269783200123758836160470636845609196780585751287150442564211255784831081877461113042272484435118635508760301798895046396680220919659543185993988991193059667295458603375969256387487079331135642307099398108418029303432758575153428013269407981531227314805261250926201538914900199957328938398934832271211871044579510161053240764003618276219912249341627625016544405086574030603063377857961901815004305787965917802276217565996431029096550763333026067005389998507566682762510416395574893732944708212040360234241278058589726406934433525142244154454955005564932967081084287683248607433589093055058531482049852152590962950668909923088715461323196835256608196377112948257451852672222539208880206503819842057566287612640175001072416426997063431672390646678026173488421076782504610903414756063005172835519173653512546319788474128522151479342646407074231749211228918742276116848203964680087097926617445382640682446665193504922277451031313200855675064527594189996560121215477858343324658973735540062942716403893611536675667653312756662830239326904334366968563385092397998932878048360508929646872765247875787224375713150705630186153090145456443051852740835698146609744802474234413777081471964501295188399210328646717622407438086112562549372223388772089699719451268091831719158806397374520387466395270048933595783630606630783656994265256074232685496867523687783750914570433472392799492550741344166302583164769506089334458611347248844316014028038196130231810914230619952820138400536934752229148136526988627421195407228597788288822130346433532098889195434824099532469678150725222234309225966081736555559827636067534561102796559360427037473076359439829490685178256677996361598813973775279234659241781964999154568879060200559544005950965628274014245161051758453131767269254820788946346429091583320127845784042257166206451270063065570990489453195862782425872573677792378609979633438241797040296591423088135395393422358457720443008717735979865740815815595875257345300869670644409174365078223083381532123387795291433520716192121607252806273154335821410692228306939404627201377336932697151622454438409193103359840393313632307213635286512696823910391165779383309811148743220914629197962351232973272164476247586300984071452627124646916787139473961525769446151596568307167260073003158128967733416673772159693449433399382827607078371370051448454163190280295306765408014215113845311634925704359610454013444831350760060646211918716485842235931320550554811278606983536290477240838416255393428044500223408268448169894084357462205874730478054098541043880644447548510059476728225521020548616391785005711864557292098483854555450451667299755196830325365649467289913634647120999464528240547343259377639305332779086841818451658646628396320450495542065096966272739904294072099198112949816640453125993499859548630982461843015151726142139432011466382969323868041281257215854680533639259563624240500641853021970423300362416338964446090330605277280976846776578609608441098066971568795565303758936682527364446404600220247456992886021851539524115986716798654696397462259107677352082110028898701767278432113317857363828406313475972402963036370515590698736818896071295813588588496195370435230141496012516372550259859538221147545024123122413881032993666240767765256713792373596905625508694893011655800387701046712422766915763917529973268467763569322626197689727260464362765331208941856174913416519972563328595303914590288635221711769374688221330779712862895437253466203716321958281631898199751715358160759343064500855792871702384218503155491469479578866909731870074696666713008746706734466794203130883807079285419966918757002152190826941191217656355401451909823760637983993167971520873804044519732891151418251785466425176058282710605500991056645741550793899021032039502685568321755193622987731780481629510020930260380213334808051642756855345208152613968356469439889564757394156709056405502795913742472398510617271691393841436080404136057698862186707461057225294657435071949424814803325050996663146680560547029657634924256682030668073769617940910344399568963145741207384086045861626080048032718177755966117442947550812936963055501128805067906586357456039509169365758419171875761956382321232820563475861867656817925749983733554961403019775986317221574682430400079177055206038513419634410406317060741040174455301625197588546667947011676198550168175766080582224385149890206611958105342778015120128586887223830771842867451145382061878476359020688968220129598228083576206439770745887610921012021788371411247110708008609579453673991474222516600829912361333427301466187210356323543817879815073070805208272231609332074564505540976899112643364853674321969568125256889071578852637593884759304431601447723061759457749480526491174063047824665653162634773362429748048715060720664683204314325190838166986661050781692373818833600146761481002831403861844282672781668069919368831689307996738337856911234367461022243303131197125754586737837941851268349064598224963406220458835352044795453801355217483707009859785994288627748304954641221654497701276326502720433011855597646199714158609869041487264070443346996219563316852018350983497134206958307752648312581491957492914897084388886342110192565884456470529993220781808898543417300199738564111810667987967555556658022541014777755177629821036213079975067305855993483462021530590406944368313193864838148115337603478592050036798867166332348131232228343752575155500363974564586039667001089985137789783366345717093919165200336566007228610966028154846530838332666924079185924216297177346234268350335327789254486989223744254196025460391164355685044793377059055822382148496861488817772082639291423703738192057564768669303012215296002307476219470716695904283426447351466956754754669235703526156338667886178587695777951859254034469639583429854870800071215824017457085924188935922968669184236840496902254388849245979293292006902624604357534778968885418831419416038144084835143922807589260244062158610494841420614246352493932504193384835351109145418342294901846743733846201647987948103051673049592615464533297170855461478059959453053687746100943819147389037631620309448906946726809118783798643674223162971593210814936980577676501529204915572386396790308118200175890722129481414157424590956287350374977506577151788530939372193909012922097611251273161304789344164558609009023813844245499394023050982066299036718704925944091443022736742830982803879256762954876575201175409573727344876216946116640841575872183153934833479916180380844126685364653363743340808990785030537222283587853504876035990509064392133606725057348570577081038398263630831518419490314777972789384485978468168475400262825091963019771293212815984777991072516941476530858956107155559560713601809412931751014471043245590131229451848556187780397104073976115953833321260762578662701515991572912896918159063306221995399435516221404373057767542818629197397671867795122550649672542472531215987694177583693257598394010622451183438591900335123384254620928629053949012690400685451460248677187661705382664734253025034189412032450092521797970173130992519241181258867031747671740346800936592812424121269086963231007183287988794636013840708507201112816559356010764422418257461016752199653640942528524984867068511612049889038116591628662562620535632537761837409837314275811540525603880205294321249581443222191912938271490404976480772502681240147683351852460190069913832020661069760765822260835630379522871095630151084731560194456548697575194095334652642235933394676543949507465034669282542695198009757759339319654080177415774320749023134394472234352312932913260255929529206368294160650904805350405173302103952387361435400590389985662452445504741760313530700777784239209667114985490165538528772122399488096660128491787643312227811864420943662916957385557103491007065120059613458763320451306071710074943841016817958821472128846587214612863252034839337266464872574292138946075596970100365000598091220901737561298866278357321926918907326039626360128452074834006119118659979187481230366262989510503389078796459652827796855529158117315147087285903067081457497340733972700296307387720898393950953753778428708322977513193394451227926833189337084500913065987869601964240843567424210996318577801237999718749229361405178868271939662433014589840456274364178956561716606639280348420660245652758650466815652744682185904776990505512112755646211933959583040176398488776755211542832625279734895993020419599053395493937982484707338042315423173317515403222313596175439279867768598475308719865613586625234918770831833231906162540639902714788948231549881590430901136495898708555909277725628074309986459014913721201254836325996346066250988151057495358588005843595820623779571792275337073982954671795549802350253865692280998617322773042043705139213940938079598545191296456288324381046287075987857018130527617487420396835232613401995113430136619269424168394808111741530099414503208734734859868982841523425747975211344751250666601955263175438388130172983681943291729041527477399870702000769889311628658011384848888039417847378136771619331695994853312813840771026142385453859733630349133695438114593230116985011790625775307160564527096794704112286819974546072264179806536316915728232910769109237513111920184018834002403830560938345947502359749807338388159076080731888614509976861427239467773125366492581384690380582538705313879782126506307966452110551611912916547181693981321989718739950942158968509159569897189067951273792742453723710215967238836347720387297105223711541961318497039285307832546208916556259111618680159470482242603204432816842572936857064837783272175347878976958750178345487177464454739795261227543460232056518479771917273253746991219757612569483819268814716471877569799277387922213650431761985822221866495228074998705186288280429497770613362253094861934869346731196629519961673049500816090595464496902258757207752989725083568412775851422234650097819749026806453883900757745967939005214265077277530619825623337324896506361348100456039798954236675956949008397810064256682093133449112451403906444757011954384545073483274608229756320821151029471627507277437292711275195855425353594601097970057292778415501755347917659293533695060532222406747820692602515731825057977135433958845075424775898301297988413471550044544528612468248633403526503730814598681052358179181733497443267457598565515953965765567036577605436431260248294803044548653480739920181251742793680744084065080707021267949466171929986611087401209405395102333476552137761735488029247247183477497329085411110364569891338682764046877931895147073563760885546328493279647687481244512327096367900143149508970858731372685964977811988717616005633400470334819924551920456607502080292869079446333291686075250271586686735282207455320596833506475503340262852644078417558600822546739669001627212234702615931598415054533782191358909589988103095615707256213074987450361598300427137072128566577851172437073285662259243367587908098349177843918298625631079968185688728955930514621423181514899326429940321419709616940168300593649279414678293268247941313012164145487690219985516971071700211739928412611911446830104598937370176297051984494084880700054402235618006204001077818419379450763148492210197361123522960732060077498485020311441231397600915246571623487730001746822566506893490790988358426030925839931709012386366553803826870371909540580097212117714012194109661907999086846125775218710443132563532288459106103848874598855108915518357478530219629107995205500673109626913891983415680881066386614947115847370176786432896267211129481188046336286931250442815789942588716655558222249262047446124897330429015500507680863018352059413927788691881556874563401457114655618921348720525709275440179640037084595776073702345024007498307234811000296650920821258275150727292230191575019504961571139229054333564671427481495097519556947929374466168544367760905571118321019792227766990036868031770548301939438610221404044001434513056957122155425709941327457333420320968458488750460107416762633310953506982986746686928082157060080312713034749563709834122094729630196730282412806572086599994573931863322367641314009711767175199945362931567086984416916462950828185850545348620018007189120050420843349969850281660914920959650130602030385142385580559838336777712872031257104901017469918491579727560786392164819734980261189798975177875261814196305367201234414090402816940739892123619432683477772663019228653655841958051578981111966429665775568407695308634449981308158301477348825053148233655159546372105465107791135941331858956145091242150638554172158654452363148782187156606836287449082210940522537842689632333539529130961749635722761130272438601317519960813870527680633512013250384033886606389004099570608563250910363318792793751807050766253488757483656862942596289835610055711042455157048751777493618390274031864895731477017048556441084631631423431363293673541460811576784999437343225951283695862466833389858396515996883950009535957816687631630497167029263765843458538793048501780052796523298161818071765287773921626785558211877032133664692589238751750366628364262982136786529586491002992507842163323255217120842306681414639598594741187571133550718177853304941188169527120680828224990190101030130726850652812287274645529357512930170449322707846408587686843964785494818507080060981418008589699005176492538059743148685802303954740096033265929874710717158857057845215206434603781343476895751691560978298799213462082822416648011406513422699585915228487188819309315806843611237454036694455400002642199119862585576052679878067378507923962108567613272486577964406987680079270418569717501816212606607325728555519639754810787929949629937755711779831822563481016926833598660403775981247964870611062627629611431228376696320217871761035988651065860365096016618096801804437668558572654501241209079313240084417345913998210685466659876285726495088643604857006438639573667197892904216764541395134122185398936718068219172582486920338418847303304950393434303117446929403661958949051284784067364838287369967077516930060307137587202118660702133327710280111403197583920387030771997933531278316790521657137467989427718237889696984344094691317550479951506213205575242359763800372768719123119374386192854968790793923552416506191825732917391058187281660079010301808347235322065368791031920779533374649696227328589588798241551992570018804867079860208674956389051569131531151114812272416528993911363503415212890329348084942310077675480979208961789282180155709333973792407206583876318991954190835480947252789707027076510565161138727286071610201144444975137081868308941051801760869812713516846047317505971991265598452339385570930285583905327065959772125227744649335314923736754587050931020701918647962508178983669681694027683702968864364064820882308726148778156081295688542282812165243605650439155315524774803226352605320397496187711097843431048569527593685965206977212635980984203707927397296476045888340331887401774313914142934233612574943868515921321731192580091997610617561385139045053051341024351046761548556851194954131645934076696178725350608405359885975913365840894461189921849410975669657110903573974220844267693496566823002953253053758156845518155772252870250577839771779306794384654142624498206361876344608984621276018938454223391325937827261690499252715054681675158887179244349537858909076147219467476521078258063919826046709313735805640030129438898472112534646703507603485007962156000868115540489593243893296363180522714172385508481340737763650636742682250831850411896970151541210888549591147396005373902384791790744452930722604184767239061395721921422826510573964199867196702408838771401391427621017685308112798538777249879437396956255754685952231715755596355808659692768939920978497924576479518379825987964250463097416447725151769210032490814417553152407017011921929281182770319346376462899817389114264789582983142956621595535512139776909228582693942398460830282735474361194354342597168423557231048182886025537919506754566423508288158824599203306195404528220250083081987228907101597775322196024943553390297407748271661679441693288990601741544900778987105740683425810273964711281583429398921917426960702175503144639958215832073522026633564681485363456010171670452738851842155641218384072705135386272631230795835033304434096557813690800836547364641122662724679249269891819711420706548326350868444435466559311132106032700529777669263670136546481839225670961217659369222046029752130164384653268556433106402794087580544351639394239423015401918841795531093859828878065975883275473403719384177704453789820798216802313731899911432579764045307327130552887912592788935322539283804295472694761821234913198063855439222855411786244837906864271668538616267330247335753158024928950085907604820862580577734648778138451082310475130284020609340485629731446580017944114508185755008298126705524451280828802916147748069701848932305814444565678212668509144085947968377750619348783628880051444627511106815999058306653427294701801254251786212355751948703899602099982651427501058169206610270815331731829504652698152521439185920331289409488075719120303511282822086333315435459812294753834748672539656760661564867931124254946507762364598931785961124712942294707793761192689582312114777494494129558397164667979996561421702399587960740785524687858505878293469994698396428647128818413693801695991238188654450039741571219437156144357015779474502142359306952276142673399751585097338880833541728774346637171788059336532344657531957827441480718040565805893846189486900951061860856163999782608385333356942261620555552806994544810462207694825912299108349573192769208459892006715460324513149866598661330003432268746556560584670720197395217300870882392728522990278326845028216892446773641547256946050985464652055258254752589143074968474151589817796841511107146785362422571807121942086150895301710564867462379103448747960189513023608131572841320883013581811140124826699953025995289330721492692177579356530564212826240258990830751054599813157898879857638032373272335444866507557639089045431223299597560173608432109195995972602367883010350784504830621208149284350306789165333213489103642749256830956295053747336813184572295762716989465146853886256633462366086431433222045870782572055494455911743519756883636334614291527058314089030776960570476179409336720545655846711466926348128259562813537213849674044611621640252462980019173227068525363626586444715527689613839168406599868527494582390763372986389228216520018276933092685087744125848418465551379308577007678829715433785716290967283666048250865105666531740665265483803355990601982303988968378260932765147722955042026892360156498102016507917302615008264574602505748676571480444462206297309992838765764864104868958269361000262469213468232992476937232947135233150981945053009538145572850856825594687354006757376909509199709489566528793091782753158146734879917233571717240975225615040665787438075609622745178381533834147659291823190536067821589535349491145216109685264673821045304155738658984554075307173474302457955363395776150947378298364697657594095536689145400721448622087077100544882438951174444238420646027080918794942188764642209427835163162290429861198713354775877752742716988040255524598742533226375248519874988362894139127938118117589018617207166910339912496479088595025597610367708544535727075734227409393206882737448228383298322347956888408195245351642577956834808340835373136755067490024059527518474679476597699031601369544362527464900104718051714222576172413680514489717155169304683146949211055976916324179755565681938501689250430362492673685090674505610427528173228647340388101724556504922090127168917979829134396322652724417532692859020865604690214436745862935648804614138845963939598846423671083207211096171789742926426050066621807390142383830665198139610636993721695151760467650545930928263336474657440463925524077829826624097180691431847327326160010129311618229200674441746449726746772440820850956324509067420863900731647933549079020832373303107235606494370265954694617027028240325411121494683973378634539337563269679192834597734942251712936664077724200792038953718081498030254369133640802281342389817462932829986804294517533605095879997917528957298216301167523827587143070430287942131134984938027245886614917901571016305383877793672937976975035655705459657668988623421085470236236663764910151507089661518265805306691390445381939149269199241720208080866033377540669766043112935477677969831382036596876524895201634704167865922902903163828034939731247616899424061947125378822874498615429089572881468860915225943371992839862502250233890790164822522257156887727953241319747592276330995216799117090537909347677038444347499091339900310777295511461128745653796934817506790435797674727791703617448558241226398292035870737841622384205856074492594812578407897267431809210365022680514771727128982848944871875897921713093274007394554888699573333423064135274816059824227685164270845414823252152492966867724248791481312275192548739803829524646223429777875193223990381725374003751550839917976188789082568440706815534793718052283794006084403541176554683841817459088680186872020472852264441278036892186248811692226930328909467061285507022289898122351971147265767827322727399353532602159593797279583556059541945744207411656857610267365941493094409252524120869101541957573454572025797821985612053984734908221264085592633426149760889605231130906704192423658146796829279042674284878677504946904827602155069563662443088378307768286610084905625831684839081074354314313732430625668288965321699846586255172263026701023472367194023420796920550720480691756824252945242861380433380866693327886077629162180028758435414049416250522942706562364456160967336228835560639040505596762233154970392702732971625092209432167405687949523559200986785735360778295067402294975179957989904394843178574890345376671672127763870764829505165779018307945795807898016675830587403403756744771808594794945512352184338674719423203462656293739075575342102270312796745298798431793298636844767956952574959872639619418648885931272008768738416606119941303568462261469944262207871473679572829460213526816649298749294162823809628586013128120071403001611960325548703013494082230391822052979291287746934488286461824354990247556906263001217446745027838068316171713371617999438502030874180213422376833255913355965501227835989335576953461853970984141317377044868048863601377667948886202300605857356197543481540294339553663989415710326146521629290886496676354582486600026674818960863535350333208880059106242854644403360575338740893791564781578662550686755182183156074685308395884211614760784783215158852136299179906212065397073384839353971781442432637493452036678775154733342123887276508603001706200548409235488940480236629489098851628171841968380539313533053495616548160177085044340320217810008896448285746576354891462351075948539210870251204933247994691362832091215864818822984580504095106093716724271098982916652959791134189827272493144520487621793354994365147580227868881058565490196769802510011247022204463921040602488700038828368640308390324738105936450016332422161494219797336417553306905158822352433713212578759261242416563192629260932241097688734988889609558541161241411062551501772581179008957773744107177052675719639180155363335432409017806792785087695665695287921214171233418880123848652707128967282632895474541538177964674774672923329291303133246669073848727622310043461979020132239328531117518595596529987417582113979082423843899178916409441338404517904327194594739911096736747381961150204571182581267263973719543770602717515086534667725612727478942857165445303384690935642427954776391894564727417241796931463243618129729981918896020978255033312883436576784112970335202614371613339441694581690290833525292114507485847910623041989427527383532228808115860095091464515143175256589308108269438743529913244935284235497813304034318027020334002546199107187582439448598708214953025425287971233164230699147420130481561480319628280610906716890241547581389589901212642231936832850890129307552453660258781564681938453628882825054991736486927216034293783037893443130965964529943521869459069485644351676221079324776494580102082206456096117506799559308876954579045117155030834766843611966344585769602812107184238298291826031395921080543297697922959120447245642679774811179927448989377608138262309158448458321877697509906991772024381181403175276620194540078150868482061587481304802062433918746505006300621009151400994095034564346793290592670735730665860620372678874913745776172895850383200140677635901005589549329346205946746411324278077849608881582207235199321156353807398301604295554219692058569123349946821894502182092647759716773476738485045436291557871007376545946064740295078410368470937596758724213289267374737215250999521987195340486687618805950956375116793663777341987108878985204025305461801333139470660264780054498563748900466500797495158857408276832661094785223791491391675034462969211585804804714753089612536955978754606318037098324677137009782624871496738696538864687835482384288614832755713033162739513846087750551422179269532255195269123553065325875565928278824780492926848338809093238981186686861691120039566257972778033913123866812121379532805567375043649930132558816553373369862672653091405424389341754823682995308825798781129874410468323284666058772593824587831261306971358780237454652364383591118881355876279895317578819455238123899102861796307864040478473113694265990479963818436006084239508042265118105740354911249846714644269165435336669249654972366255049131229914903703323796467369663507875202284713502303325021467510908416653015656287027020861500218291962079192633364872624052636845096180745828436515777667617018775701442709304794108385978576246713317035987499942632229798706375532148431319570954844079993272978883666538395837046886915000908745320235669607052110196401126089098687603346887328339630952641914648051718675984538714486173577815751655347485174414569866864051891875014068860833630621014339590452310659277743902441392898030583093884979495562252676509969852147508311188645912005617961945484121903262837050603061274999052961333715247993431234555266335090597823290877476363761418100966468436517059781968682258441144795132068634762322245669398449483854681386166428186172962673523655561551843116204188577899937397584394677767085706933274704384927493631648809975443789315063630376149203944530462205991711070004470853737272088611276190533330713767451959205060785502813687951339404965016360710025648599584604119421309958609584921055868614712562221368421601083260341966419922258116881772378352315211032966385046339239061992793744590012722066509733336286455250596405311565967594726965312699763723332618005764598758823882474397152278159070852838596387456079755238755575804455508924445484048146013131848827657766436648581525923351288588078777105938926557402721415332463869320343380243626580768277677690538565319410970009633584812292194080951012917810019202358077238935592859325355843256625196697650124957210169526213065500991136006847756372707592734615250863390105307131158957796014689316728963096296384731137947323286000483201456138668632095171881746433239913238283171885610467253318631608594354098616973049364163349453377017277142144494372166407284842202998647748999913111897615537876806532995926525533883135740691205663459412475057659789233777369572315321336264715006114193065227353643621127493148788478263312423463615118180587311082548150931890293762515616565016429472918791971516148280226486414210871776822290827116675674999206610025184621329902057864073694427397646001614078753854596027017567385282476732863761496040548073882268343736033750500532300747046290502019514332814003254092986917311584305608784980528603812673633585163359470681512919002450111757353040677549089403537718040248841526902018816071871003370937957722024165509253363355766413016852606639946827612706106494188253766007787089672084885058676482359466174291685151828433846480614317273599913173731486084864123298042713178364144233607252742981968130265073667742241269055569464624411672720896122944923796993005814912292255434548355035625126131658555786571419930561256545680612865141680342228804818389508075047579618801044735673968061481904211170007834015889070402309864231874798384364124687901764352629340806032393727514073930578553562253176111765748960938342779842685516710791053521657410523884736520831851342186762757358923253239170577797989230225480207357342616606264738074253351784147592030838023512087590015300428311081317911861434140321280959816998282578074908293909925621470959576966765226190482025100979733045292963772878132834980439103851500373299880811213535751134724216748153034370859403677795829024226319601045418537379551212769229766657050353999260547694651528447789358519504525189524528825542538285892415160013380135566258398756761125316908567625698776979973442851184202586207514339787031148018576269171696280839494606164320461346419027407831792622089782194908670961682266808310943490432092413539614698895478040266249249137584445607794858778378357229156317437927946176200296918237057253102252222926475469413134004910297101179319821009423379182243522039501751789787789629110430995957315499294517320082397934470371207663769130096796438933912601322283461523666489173040434656937221384770788854451081739039526745659642179483149993875068290605941802349311225961045708213067042476466227595640066674317272705412878747980944934388877153172579733750737043751078130184520998933860904298771329892624514715903590537266169645935057733154243049301847966735015035585288408826010223293747365897800469599787408794658294524786969038522278961357233695332363661368749139672465533309159591685092699389281703609325652087742475179054473474291728199645020892995944216627633997258195034328915583784514313468138642267314551183756181575254529569120957293253190852825209501335880072719712222356597003679650804053204361257167426646123741798518553581226248401012174376190411174758774007408944219133245539010747326054219075947687420494959280921130159836470142124313334570932866818643492409081931173872387628112235996689186940591538854987203047731739882288564991860375890840867812424902973018887854341625315984360149288867148503976788694130813103687095853937864994107858662899748605199961350602067484126761629031953639433202759381614181228053469511588999954249359559608004872325944158633378020122573961637187408230896999041203656282283391588718941315056330040391772048705598759521975219099837714706803503372398632324612257640647115834629658701794483249098060597823317225832998559460471907894403385159947379714081534662131995080801435105779232019699429614353965389469076762378247165620707411681799722565468984845920587946213324604016547034805438404032826704358442225968595688479307720419874885414087736043012413455796325633438808247137675792130677649787078564763740966423715081828825468608913230634079721374536262486453747915515090561610037780592448027839265885096129256927300450442196470405778912238903921549206853549059918754239062522414119295789445014565420393179840485866466482437321580219226189162335712890363958295310917489056484043142168879670302885387182403114259688131281130923542734774741880981650456688886556474057075305902855762731835732351308185113504281156521884444975302183632336085032075684411615365813813675269321549722072347230278977864435647299564496153320929574070275119557823838475832227753071906272772437091891979111573625023893909976307535208386323664416637655192794176846116983847585870082176279709435783574467307974538257877750088140554204230328240317884575914749580468757670416031770253808617418083107264138449373114266561501405160933955267579307763282394532311982858547730620752951931531590246835140187273955387633906735395252292655755311864056758959815809734733236954544291222918540989026598881193089894667281840061194913672893294056606985117678323464074999424732008957067846386087181491230840250519062112201409250920276436891565489149084214420126852502986483060338922127846865501259947444777448843774707514482699504747703847683630354535833020279527585564313125167443992157551346138982019583676187743453332652022884397286244384326328409524374382279258517927954001892639656966881749994847254982997509914926432959286499862265863910604771712011635181186543209673929843486205167364867581266722030485780649070868394113890950100747679448851615679043779262737071370297492441117874042637365141370808883904726962326445859005084681790094765489614821083131736494020397335409063352017965359698207864010160887217388651411582508217844134439115934382034463921640953071399161393353476296567045191708116592339958689522307695253810188850930651554089095106904761518615414991042762118379207260261960850190041111997857921718142720515526251219728472518109375087905778211893432380758249912090216185989002775348383084001599411766295660617811775340719413403940954084429401213609443604617807644572899263985516292101364978918847675685968115989582802926052115066773994082805537563991369510857673991623314239730655791851641552372013357979402972767993249121654059767859887935886505396828153174743292082323120899622754479584247674240833582116984165958777411925020826931229159567283391668082854187632230415798517485755036561510695178889499708484727128297511956574246210181680253724662705223490390267866393724908174584499645372442658521134340186863359210156461993825202948172359664351715190254179905041580438788818953370662534833751416108045049425558200186894848115946034346982620124752763262483132899192349732935206706904203150395765366625561980113479988960712036132780419782013442291033751199045776778724486161079402460986703637671143608476879430976156253748081431132217135234202388513451914937768691749595827272794487517314358050061418422299090790565431210553424378635149174579791484200754364602090720611178746776757518829285591942398395391959391226721283447990186901177758998467468653906208162811587072103894053136769170092180663277900162597365914119618705928540856167393401440499773359234897555848001808869775971041829253681506931706766098338774026367286022571207979391779286959349441615074616531108390583857535494420661107784291571688654086307299850016803316305363003147852624189771536658847818848576546037174859564566575463594126164482297789379490227440185867502993067122428768736358639040054994287914899732289869323774498098780279165973767536129695627481616836710940753027197436376375235057957832083466094099714449008327816858974141331495290774493437310375432213508004036783682293522588167192525320454503236473793687773797009563382584483579027299917842482671350968232125640633980256309792600812295976684741520748509476343643502232801465384810679791078786316428761742614387249919073836614847230220858851718114626516271042145035044733816215435598563768326225902587913556944694337166203874024735635566552803731453595351529565044488900473744123577283029684373592795283912969562299622036453852020029201951970057338782791609007895705017343592458872674807728161996329924283964171173654391227923503566762834478030891663696300228910739444281934347882211924900663052659791172199005657096118053683353485613470779102740570765058106810756290748761785336760276186195334371530634712712801887661056478112996402679981284998706320099354778497967973755094694955422387484412392497685658613541389017661717008893033806983797940571474780194376508184122912022430113640816862081134489982441481871686180180724662401030281254760528473850940781581253417407637857881989751169594627516993412062442069231223924464585431607039519417392548850411331187762040901796243881874405956661905379127818164129004581175702704939197857767046539777511725825919939406431076659855707734159402596890556912229547209575949654882918092605563249970846148790786921239712737340394501954287284942527938746657696949413398848563918339473925448995014382820831586852864627132669123996479791015436850472270022317515810744681633349605311783760409728755858136720650944016818161686434430503043275827249132415908097257486566729748244461629003981111745130223515342858661222580159608550528312185199389603274765450013768288790613177544634499825069162760373733718532113165950113346456429698674610470562680888099861137660427573399858725934838397228293745963100152939510175654854350117415503414104574702259467801735781211517231695372110394668531113900644408636340354711737539110360223519882776664478790786345276867239771869296378386639324662249896105676654174484650397878508872423678451114395854051914252960114269703965884052695868175338748480380539750366227089680723157151767900149519180977750212842103040063068435911543813233686000590216888534899691718458520423834258953077194728395755849962282872610710744210308031479388445039111004567437137350719137374854315006886056674877007145476018954591130451328330181501489738571197914506288622361145707709495915738866670810362999610664402366158225369304593476426381555980323959163974398370364364043366555551309718308197958650740210816372082348813738489735973005803415226113451167725989544922151406249739575906858638927008288764558652909584374451160029097667919725727351165533437162174951515962931243415065929223005018627980257228455416174865067448549264406038075991308037308029910095994746358678579323664827205217286542522661595587203036410511706369054212623128148974347584080118190520631914182567256541845708389699306588603115698138402222776831497314845821148163521187173051194511465789569965904494445992605734667369169949058234386342280632000169287985748084872167927997453679914197478669568771585927803078237989808520548598549191584184589389187819896791398538792306474818244933815076134542034445956962625799366267804530674477544834226889603875644493884839775959647362655890022625765958116378639252673420655445775719076482370273828189574104167572463382232781564761189971343174361985266655641443971735086692230961880224534240267727223903398783176022025561942179056095879401562508834973642033958077328354465044344678935121982261123567362155690900912610822100010621068329067264618857630058916443334941224431633121235972557666935596728462166490424622012579857335241336782954341606025002734024003198679815698683455194205306172406033221408188020584126126301966272842330644693170648797210078020012499595931383693668391317817521373292824223647763597413918137326354368428751889290206861225082856772332503322685333095628096595241973145138496285292598849708471267489654488730977972141133194239794100296823723271593838329167215749340172979478658125676541526725800046030832343584780661211942697501647191607254466980617347381812017312175535942522039741346831408471508491114206802982320168330467044057167440467615914054028993687564759369150108654960449705575187610398540240328774697568895681536868805660302097456579048310170057191116359257924463209996332535974573966813724548919979314766369942738722741758625915787526355296893350740142055324907752720636164085243516948003159634972554199606294670011766351859142883887939263526914974008819634882151289728434128155336206186833332248881073934086601018168974219615767536540678234110668338926316591359433722965748530405893469706000139090425518645812984559306352940815389394392481656567828763885287098147427075373660583726173732178475426926417798761655515438537362270455041761931154520124922620228734529646967205996389002807107436677088826354984326648707102597372680007653858205502370803328346153009437056549640407655866539867702201237334614296556370092189726245386333034871738065830640946046723272515933320354986087612589062495361783827889789674390522384798385823685536620768247291028909033491950568270724256253136535491922627161615791973132081736362217168420612541278058077932019777562149739659154588656893213872636234878534744295229900768864715337039879579292377645509637424994832797327085420575796196368210965236937186831208714901806542666816928693358526509696810035397013684141359331106201973735511187797817161080596501559092164853557255055663110998935183125796124770973601713078341388997115783400303122070131442573468006130301389265697944685007023041070091186584393644269688820312254443044268781902383656246318422043997441161483164238998154088424447839286524316576694934142574640339104110362098025696322508192306182427211737357997867249757304630189580409112261400872880962522727075897724538270010420815465757580264433933762064164521001013918065777275549154067294932993785463219977675850596579403708686045393501085754874608667219564569669156326301314342798416899532107761024117608028203635506808082966728071716380067213378253013209866831236156945756984280365998249207931103696868484406506391347099079747308018633752672889510174985058655101948765224682655006152160603547728834652928968152081767418262472098492894415811839668160638756985885623329503012083197049168833936727158020930834875294663893751903394362361154826263756860320810712276206111571459912493009630252048223538193243006444664226129495780688334122380245657018724194998513304217187767220198532343854702877204151112599016787463188236780459978177652719405981877487719945065623778535667904696388550896489947904603155060658615976755655358681982451876453448701955280708297160269799526674794738649500430578408368591411280245903514865987211320326668616535494991267289875554849104629662122874710512474509301247952411793445767677897133258669287367472934092388525609243389221385032615623993926122298128445577735781853962343707464007296090910130756188653499301501925955726512415116851939661730620346003147969246864184065028844756271884436732166995329117331680256227941583644855405450254883890763085344384517542519345026373358894918510760155068883173194134242257013792472754272593252367362636421844970031207532246554089650921296426426342443280730368936137931493698018846842539450189090449742539042268422959360959610709206253134911363686064365471805828099895246457356736180014169546673441198312280804129050598828940153449756133524011431119187688122234633539284549720502040355307676141242928847359234466340416163822309730743884266265162790770854576216811083654396217813741663843857351075395527531482982639383161762381797376848078340865214473500035451241774752011725575503229907353091730733899410056347412589422409114998586640749923238884594175569862847609475917142945283686798127620426491716790614983109649803729183722136599319276484559993439657247203687456799226308892320055443137657106788516088391821578020228315730134685851665983721568932650860439216024529759192200482562928471569426988670503747659397155651259215264731546056494253587983445656854895478364317244169711930354482881707686399184457679033867312811074000050151024599387089452549816653169157986665373969957598528784623966405073763586843016025697222062947674647176704699843812630526463143027791724547095667381124626843776907532355619433213631750920059781223150707039793271572967457499276115910590047709376880247757578218573871605904003958779821848218144100604215751000421686379476827161742649814222691469225982504517142844316476113603180113045585131283175050026239410935735501713452520595687977922087850117838213311409680542189822529491674831959888532023541822870523343097002732194724904801742856059800730195004774636590930472701281589652111497744196360663039174167010720179215635704165096136689012034933688671178921238392283063687472399200299927298561837798521028192867509235232585340695999140533737660531567825503123246037861154543282546700945301069195846014683208778872783043310523292607819478425826069075299818425600273236712879068296062574472547353535080864444565608327132043237443083723162905718415403262031442413816897204298650382491940250379357304375458283338890723335025399942793703501829940426615180585556519332613465252115345022307826611903579926818031073115779566264350165479502813115447215825553640349306637677773682657250135578839165161794817613620596373384687068301201015067826672002298783313890006792987456673591076852493982222667774648095313552075593216986463257213365828088897652092857336048644182836576377072824289552345128374874764882576108074092639120471946909105943224521631332178071840804555001024361584958506177534263938981604098276999992572824863651640589452801612181174274404182131839079683082516267929099535320684667025243373919803340841342624452663814992685192179235937424505104689139718103796097473492424128919454996155612419103566393443753662672139957100522515812635349070759802201529161187847414919293797165516523355945300435368467552435493789142516687837575263235210874357929153838579998669547601345438729037865592043264887395761006853925589606315155081362602650828760028843252172140696428481222212281673576472890986995603767276863298113645641517235918939498031730855519811998638819135523296413237140972558356996676705675492212689996880855116742036455740544861351856278045234544445552421905650211066140082030601931233714779101279920183210691169768026897752700117436308279986140230358802578139340660363025973258398974616496847977948993660206050497188502140290417774821251133818945985967329628069998282182150685775361323242701342251860074552217744476837082997937391911096287579915531375151284275891940966148272719079854894122396099095826570483316947649816825135544069112599493701020862545455818935250998722221910300087802154210993500920014421448923359405201553150018277880934468215960887396035993199983599747681492266932615349380331803774238208800125003546393148238272245013334320472501018726858435307591379789871448802658045652886415039646053416144518992516835823597694229404195212638051388003809680585239601619583961921842303360147738942901399087447868983998160742272593237310112022472033994390673392529915722201429408821788844569722094755140589003690893388405573368348064071719543117658568067671753797327161005946838169521802062218911116709971301625439936717300013390873938021787457152005757905553588042357195942191110910893473808467214695206186553580696300755084274107066775572082513787873986215651997222855592279528074265029274444945293992038089162067129146338480673514636666925968221492771241577439269678681136710391167765625749114737741900023972569779933669106689767084375758379148057073445635216311830274785109328059635494841838007647571116285268831145755102881077001495633617477789215172231995817781908275910011901653701933763624929934907190921505096414488751607642488422633874944203587476611963125059990739941915004723790905976782354687514611536605761189192417959287229743568147567724606313069188864401736029841255195045675305649255542093315742772873806876911747121439207774354412422275471987637769807416080791901394010167750306846913206591626860617094534950825789532506075339640437507552412503056115898350082823297324444473592623497919348507693271212023072884530251116563659111014732707269459116369081563073378250693339794313177631246790412616438580294176415751306405322531615482768802181804417868228212977170634542004875332291068666502519570893022016581983304829286801819985214135965665082971407385851308030052066050057511496824134581450126198137640546893291443023747410052709447956107063962013469394076487407202514224621201954941306707812902488766751108113425128291070080924629868849944221394429646737617963573734696748580766184982998997316643499396748796173197396270608929909955618568983686492218073463064083057540360871903225977154507652430254850957042141806553491594729265320622967604941391025588350614333449542074289003634046602031141857570816899402767180685997300888842073255425495110815693158326484354106270247552406283158479798636927190892929361649712340633884943443593847166184477284682182111578838429277433674699542857682143987663853630206551980354362657886304833039977308958230124629059195576928629876646956185161234924785107749943236649448732328308793122100307040080902030662528753242591819784030170433392298800608891593816239624396033667466636860071603779436046007305520986232872558869524519364600432772846008698139560483414360839016385685151262011333255363480085496781948625301617959747106591628677461864031119280896601343186658651724282982410320149704739938350529178560260646638419518913852808085560257132186606082828405469209025499891454395578770872035313961965050205615978222431219837372268897444029533192423869004309584446038904835665851364041850246218261846761161427245921585223484571681056126626578858296321463336391978961408887034841510304996791094667234448698106393863768534535342453740403488991333943815440895360730615657990332080640542912162064302327763955984911914660263557510661451895106477915472847720638613228925576571477291488409834121291940906359880008233415072081908293668082291701421087198819700901129931150280816102750321374240119899599465295525605891438409351375978439409066068497999120567717827203622894678238560187962165815571742385905447489761289803968526171772841524545239813493593258079204820259666775202167468871525846334461052931639996656096520108552383675781036905882157262624305870866831715438979735927205154609808965317735818915604085118512454223195515548103220882673373139673321277049148287721687699245942088986882335824580839479691987649315379225956245752094683290413301097273286887078064356615212050713650460082313310650594380700948651429591371265059138268718521204214476793523882210326411400622017473623431219778745922709812693939278524852140957388335579641422956959529419875132487327629530062445552295847759129937508227769880366233815775939647230852942003777309612025948138914118720378977242542516807836607939860055565205520331536728478702815981533207634198061076091425071475641592907656373020957308126749964076397416565865640270421407617207335889155220652215542313754857948621263069655467732374172478306249739608656943323814042081411446888201123594356106604044394054960229146072413346882461516960270375252177155522170203428189928131171842184846078268577052091611057148995220280312545890133878224696948508086153396314938385263118172170805456260410474612270003383297547017494340778105754018839677655051152292346254091986606172242954466678091282733500422548900142282251649580204720536463979316691419493677948817434680835267812795972201964367759577493833244372412357840355324227004764899965302014783332934609811020704296749637144199012868722977823985507585933811709579242615203364388297025483539561994639016990253876304758809786761118439949626608175627065059842329590589475333467216845887551079545205603408270467526561096419045904827496009549380305198134172077930546241334857666060210816208892509446337150432656620030330931138928109618320041859527300584123841615601611005893653022023747683258424336611859571803727858042036750242235033913278381351146638109648222721455288972320071743891721157573093702660886193084021664700127433295077462440143669181344884230012231396257681027256703443547639437815125290143966106344873712323451059274713115609803021287197028938269849368829526509939915011050896985171837723811412537232012218394359399192608222423433477957792905960979232600862335054012497128500183506404927311078926088981117551815742092955443003797478313449121564832816823162846177610611466474816887011221441287203114645873826883938965564153682106040179000600289127592533523519153653907004919520177914720297187485750236389271061821429124008464209543806893194684012834494463946701676885944503950609681074333433516099996241992805547788680513808300113045734719489394084437709965583956550624276187190579601872134330590064660741063350129786593279260208720109491685578571745237158033254053437691219936831322537729788222273613201342853971854524218672544612216273249258567796714464333332688827094811161162314461522004945301407306548533496194946433531960667976977043699540859229248109664295424499863654386404763890570417843972365655491932238329962530045098698686962452343326462932209534362185809206276782099516790112567921944824325747632192116215740038897716728844778025282105158983824431535554015087448394779168061397505596707069233526107009903459155762890456640527136669330695014585054148406247781688249446886146924677691414390242985616650484997625184329911164471028727244601015260871810284822270710911405052878189905550916311384966151983300104541790047145955999312102794494961738713485892145797689757902306198784613068585532841360028547789756462624926210899627078486919314573661479834785986140864812841720628020696644575671908980406755455267664947164091535442050660692974134759493923117076782299337528835058975938361067253504150043734176791982211870422052820146705012884361126627268138655364952299049474023887480128801768052841044206688395054325646817434063158221642664845482657784378823133363881367004144302147753439423204821027206513050307750857960954081199861361868688586971134610317167974279014454448554386966210824057257870315667089588236966321759986761856914846197692648541466428979661847640508281834071205517497826633912696063574533826336807591700795470270504132803007557746307465655568617979548970544888893122467065861862007258275748974968399450142981433640969014285136300901119020299805542413628410732866192204534268797534150376604950232326294472970201729632935111159079594402006222661356713922280132407478860409472532348579544497536663405143879189971771534849966010034818112506850253198053551571935619009141263054569399791851311230029856447940551335584394996373885482965737364710201446209903468321482217956129333102789654512352826178907789708668227288862202453637671373567774432869984326612799267314333783745899286177825091531569141852853038447651213541118887715935978760797053178284016568994807762712591980083225728372019142915085606203733306970350306076547198028914820548272574677089136859599799211844544073068025810572392317710767996048117921825745331366761542989093091402811110407132355256965457429871158642692065944907605404140439101805520985669787781100684766711527810960788692144428342371038872672678686563062281649570546323273378020264749932094560662510770141384072580401224228679288682152879823914358928450567560670808602992357233289938211373897021619035415856108974148415590392025766061082071510300528135927019950663830665565887532939714487660835279403125610637741660806858859601597071048073159791003625546035378630598929127060287260950497559485563339470592081986598267349094006438636829032987013419139231460673496953955281893015961075011567569831121823616781706604411722548787682847433663007952845463041121270302053701909811603093622909957716540726438877693267983213991904546691406771943742414915168258297416283839338606703039230807734308527832082088404230905158156154831895021295813245490513685358766381609220130643303828516517833412899486865827728928953522423749745446845363067667182211952649833184101339284212852823489724852463964559818583972777636418357554007986452299637124419456184726409142057043605207235136520214320777946925395910818100596561560125922038301554175843861870379210314100214132731047153583240106881093035383445103672136623566666695999888911028912378276993054043512511564589249663068240864339503736937249640948159036386273018192271104049341668172407957372239530845716219197870125470045208905209769386151594767059483531763086790386380114095305431823844782644983507509536212953984708338188802484549857902223924175611440303062603446698161456521041614421896895674813392801242688551958689827136414003310361258607533000533430291776929671734601229088986022527578715454708391868586941681826690328008919958990016264252634959381697603905621313638551273939786633284587824614805472925857783339557175863067015059858470713941026911904812257170354934023461650531331868849584844104069274970318896430964534698161433424690808643125911843596063880236054116052301040384215318171965764872348275222858745646246710437142912305279927281572872274302046959012354551283380422087407620271354620399029287351301896414812181538677686180692882406954616148779707912078672341209946564653749444605866418535859238523532117485245451610319809378398491172284323916274410652068333787762047804594607326669430644739109604173796236758054057699189215060244687707255796184781741531916541047992987191759754647036552615779602035658023362146791868890046989808741619847009559619147263834578177090339364297310118793065745604540690751729606374067635584629621033409812380557409924689581209763355388334741602070153318433442855088992479863497445784339443673799116053820069436135262175086758017165519002246914357981007728733374329720292488562579064733918579056059542600634965602241583533167452818149041422025989330158704896037683298736322790323384348458259308214513134338115396295175986988837791906567379872242967944980337817782878843875762663677709964172026431718041514901574988673874468238240785632978515468196821211570188882921623758172261482533709630515248642577991741697044941540541263485351603350364130275069377157971252072451810808423106740549932841366359214400844128671768260131602364757920115230610879938497019908222954130442939838609005908811899437672773698803539227489414251205147205655461656149932495325847508409574354322127980939076354363219858721216043547714452496534884088738510594457759038795154437335701752784384102928621439937865508718982202310042142096215365058858483596028722313091336746105328285422869329244992845691330098050620072716719089982320326567610283247954612880685033139472971229704801716244257882014748813778402573220392575833859466937272140544699659438127659352728033645612654992869814137464525776167092641909150461904492276475156065267770929078780712053490103130824113560894735216743495576862261869651681056234221045778835087378360432090795918238159068508328114272265932307341675996544794383994468760388737863660395001424004293156875795044696153491157903143267372978510827346957251276146710329993458012865155093257593701428117897719413191668843750941868838786399976335997062832839816539098869508407156204680606239796471294975714106134717583887007734229561838248194672269527377177607877023685749531277383485028053935882071731535337586687123586275459815350932770608601147309328255222563057314326082302217553520627839502255261829699148286913882553427151486489758200083251334009353827368868599063402351016361701964170803934214453675155145878969029088083743987594164652266642355379508802796548622283464725857420739918912945409003888365316892138408041500069878028540079774272676480891509389962110069956126374899515414011824995516317609103277894403773014129113734323864190719987374602618650251999462511097005496840283556568219244508172267378012452381790591028910173778979065552059809199264822889474721327714141878413946778137656133942193507542656102278761856781456050877109833133459184918883631448763537542038823460138760064667387561638773844414176894538077018301422396040440163777007957421335206136876759284785867989773581173007387037383582491463010148676469391348612151695701588728474257123866434119966419452764119085823658682099741454456866646908433550644448211246650240980365953763805026492082041770078105955753873692103353823008737521287357279766231391810811477161718381293186186675139798209134752732193203097154794501474610363843624650298407957601800023507822434828283336808409612810217538378931653743337608260327806509972554175952912935409788662880369244417936803066720276067213642499913497268659084060847759227650262658266363018043601221655641507784049820759806119710168833025317917740752846694019253056405918321433156028901654498312062712367292437343495075695289471305043777430961543243929146700214508298761640782218193602775248033443930076231866742632239832404269735978193985794369319886402499583998636245175153771825371569563972548290600639556819355254767523390398890248311600754973379010600283835012795146734932683221058720048729354687098820531624895979975314374382468507961956369360441864530006416900442159136443098776688854218432559572067581159457729908105682708500183623661164001869104950160405523169002387287262818652620607705288099242395332298205855377358307864503918326210496733009215607165892571560505851875611350317520903481305530946490525418751173175802923737464522177565084289186838770504718332418679708867191228134093315944308627262002229870117923798836459313557033366689935444610268003486391553338914542463717572082964321831420986002349535211561529116722917849757962593773353979253766237249319789559763566464650398004634688515885114909822061935345020856139658120946085075860006971587298040229755727885143674965741248384389331314535532296698375346127193866414623845662094884999627956075662727072558116235085352477337587205135677730451941427953917705201282300647927732350429561667698440255664572178590841936031598222549244913295288125816329656203606593952130607699479847652737760755088812723060123909302701166757488119049442400375798663503597471903010525426122385523084860913723494300915240735648669707654440124261189762080093462608496013633527563905879248021274443186796388335554562524399826480242859460328349324961878841350106838015329527514904221523800495812205141603532842607380084749426110314660700444514155299045513672656902032976151763855126636938852257887525007318806275892394222497885009391207436508319334846225429977247552174750324948785094299169564818557483501264825077878780061820224487497436391210218084266728276546003220997714543158785436605779356066058928537934899010671732202415446070629851234795572448122138315651286303555540233454234348929822685093688045515964172105810829013907974435691874868003428611863461946243703115022147216620300423754594600301679258631816831555405505591193855465497006509833306349220742578810749416687183706242255056046823740781364302152801517619643731076734599349662045525225982956775907329122534831364272056933915787720917863584970142222785349698307839419645594306254433216241708877195444856581293112766169985453626498858208660069505889137517442065482688434748331667865106111578583176598797116280002926108178403788112123104080307277064346462342718266726647534881678512244881419787909762136193038735512718228962505643809509851404059050670463762672158691962003281277207571998937696141450334124495351522822746547336212344599114813801432581177022642850376007959648392697524521752354535530987858740569757607636435609801161163534265984969606157918898957312918670159133106604567529226543251521061245150761194336397080293731241194783890473055980829767867835244104497028974637643935363601241705453898515073741475691328443274194465451378832219740692741086314818688759318672748819668237199545563143754889167694691467428331654954700898699261618398108293328267048296928794132118352393850070498865220544693833967574983980304439627893692100617787651867143748741579630060668179470314327402353478421528591516507099104716321935983812855764634480910473437673957102230708806113380434827204217437593872559959503071384579312561845669423371870192552880184001330285961220308169624158195745981486080473894210322869735421737166021572839120806256109268154619765830877122796943897391777247474929150314544365580581029328796570181488630134342357875652701669299412051213514871202193117813064075872175126547455268039523875713823158331106115040190011761441252926402049680419719060273552452407601853595952147447840465719947704815284854511223541374340996772832226934924388070356232463632516530135850079917884878341750777981483687294607337258833889381471859464120266072478832273797759465046292556751923764834802130524944356797873591421269340509326120184291008882840573721850905104926219977141661448519766509511292309726652078559095052210962962148471737779736412420537596877473531544842371564834748029252519452926769527530494404039796712806892463564232187774300078408676990261753942736120203343541902155764418440160347940249560168809653285174512504285931410329408351397023183558578626554193521518718265111097129718602884970874850559545662474243281392727963229094513634262325737831285149617797047593427615259611699488652468406622963457150403279899611701375593105675051842504589413770054251717379669136974777717843382169075715149362703999365872828633544686348181763429276024742471969751659403994924349970612443114263240222101645553505137671365346927729301520779317348169245765698734964876441379183386984298024752152279005778935230933901020266497632790840726105021651574934400312207216205919266551535856113241980142177553092223921425299745953940962767852380089749622400349510179500819813089167668487325617306870905072690140205842499889242123147451009101219114750634729602961746591174469738237911775416187617131938504338370340490712387799125745325531074926505654479640022090631080546217591184375369117654742694566662080392131104357661977997482140582864776144148286209427126137649669587993884785480036032465917280215521796860653423055280181739849324209688493263168857477356282438607920147284221721321502352706089895262293122300529675202475903145696982647248613416477976147238225241095530883434610154285683781119845564332445631428515808373516273798220928007386356486160419049524855755982058606209785814535834138220204200278339975138105718851058381427924534860389712513204618677219057275198529740884766690849096885153360038676703552878180302467585559350970034360165386244041434620828372800359913911593324667180241360797477729790248802126938658678978675557876473750757463407476516415807933241027655571710590889283033550024748366373673567966750708377267292249415888028954140771612666652543681484273718023995296477509910241860096922828414079579308797688473277201252458345640746391499014781512442469065163555444201993130740004393172726061438032538815686778783861303996486883821414924661189262269744995791382384477048083780681149590375888747366868907647357405805994190476119159533075026239152595189294687721280648854533794740402121595029534037645266363732570768893935810122200735195237342962881830792104941510571025112693551739342882508967749125061589094553260495113961029387188527264140027657247630675498825230255906898957085734552326660515031503705243703242408745192973207115551699576277967371908214760033235020436386438974039616550026068751243323506121908291230914306852592817464048022609726080800585704046097038610623334553073765371029536306891867103195805453222497151870860643416358594327544029554175571694965722679217451691557495777911569446325643264751016252650953414009312243709233836494010846767713359463334699348625312911127974976650612003318898675298142326226573480762968412947867745333845520380803429578918715170511205450798762051896038447285701243998753301466846889152065654511082291700657359209302069680880759259428535541050823622898824976620437441831825938002447010638201984297841530003671065459612064415428679202032718137501774554513564132238077816320730600638655117920128402824167250685651271603466441607306808044095885907656427604474765248104233460788222196852622163256841334419799986805391343551467207806159054705697107511044610053106889406553107454149694775482302201117009892918718005105088641093840697472503172034520683773314437331607580327595877938110473007364150445238740030619790658165814253626011860548513433884152500857803566401511326673941580821984920258465844854579777345183728657777765802595407097153468154157446014440298284200449278953902464853454793508278368928451182095870046639383206697527941281723109305658800451648547531436551589707837320833630850927875500389082987028042156728706507366104035463794852401283265652406013059361342512913676606765611974949540648340379865882885861179316005493128471378677296723661715275420837558693711920565640541570026196607284243595804740927540297478447258567200609811794595775657568522249764280580988437116045832390550840028691319952523072958015220336832605879995003370403454881201613852189380608589224653167696869463479127927561352884991117721894684267717098462064563989179435759748120482038365658863028107995810695754310459345495862849271119911680769878921585484888959022576256841669053599061103482372324950460889997367203104867349818167465804415735509012910508460277155657654115553451771370623854645050798536922630404431418817675030803263279182613059897170385053656062369586712615343181845175394027590350510256598784406499055124925142030600122170555948552012193106479266334561638527561024484202871144261371155790115642462670714735834352357190903884980864746711344040342214887898486248869425193488586633578599202614708026463313331846274701977411288565843581116136209292533808304257020497073294927494244759403537608862281085666600058799142438659813477908911512347004623586183733192477064490520163950907492355956250944787851776371482320719443880652394891837530399935487451728009368770337571187057434608881747340767953951597466337640888989938044990762723280332864026494593310541886103266576633182017655293028318616628677671405164994168026411609278174168277205637717537429899193242744201111106716035983673166974237006847373477801630437297811310523681582848963376637211352164054184785362867355061932068265436896509051488211246548918299275800767207595510131899457112942181667998102086486236811617225197475177114871539787186720758925425407493613726826146187610060296728607179507431163949590384752973104201749199615822936816547300014463297707008467666434645198081837918994804143865126506285796238001048726618470855612525033834788376112206969883334478840179301992828638198995674628502470418459195219655441742687160580138023480123986807231361552770455476396690547237368279326944761332664720501326185347621579716282097331356235941357774949523593721498136580304069213198799257636669599876962019152027585635138750433233956419526800912371469545760392003239099234677035583749546638066844234953649169362932448072164461782298366974469800226827891969556676648062531632409948455967328689440305609127240629561925255917493292794348065467358580534762213490303371780571304825912018899755305493064510990563899924172510358830048204658519052670577467532369824850177338783404343198494506854979049766000818178608797581998456154814244081776787971906729900959158374047751317923201462753225401068481534649061056233423374994612434089363063401417722193071232355098543020989737766866856513867066858562621274829602043132459084148548530997840734278847852502381969528201091637037280368271906355354076153509777863998147043498246143695161261005543438541255623909420601623728821921031797454468131393890777980125636691487851043217273114128763613194172224675896668820659978021444220361967547871454608302655041191847302887468829335720350044017522649820625629684402861243555428291456892508732753085344533816429321199187429578554362062952478839409209774898071463723233174311022176951082802319636087426746360246738898532822361769830596695659218239421222109391010245919563997788248908332698261861904418356976848933896669892940239470626133582099965562183158597766641261245838674666521960389154929924042527710026270771313517894451898319687047570848044484590669645336216214594548092375144671373877901914968748304103664027276042605736679002024963157947871574647026245141942421286462295750921557017655356946131398787750972562071648918905365753533766454925940448483311643600954318482467486526430182182855419112274802754628922555037468390660995598511743004251980032258709116736265990567024411126351853987641321882421200794613699969318153413535839341618471309004077120472106829262860673166846692505157810951780469532558248737374597847742744140711687953553337498029649137171286638994084002608302424863689957158912509835791985860512652224699834648795526926307150607209803207977496765795537068884993649812629178124370275142169420539892581077597922673735650731144637223049447275412687979613226424128645807703299137805496938345195244235802225907108112577684257326085406314773610527870532967010957777758538501401912887003241101298405983928736279492218130854383839280410377463682851855376659065577559048407224292307703098537344048739810820171471868294277086352146341945645450258889994444440605702010522902717553516548738135954379196959358123037371857108703847498401058115430207118329802094284284550762550143452185592583555496417649154737215994539568998440825557263641272802208171422109123158447299062572316300055029623744027301047086499060991206162851934222847283732486539692572515393755907726899378121748373822699014867125355446153553132925617165119983923230092034831863937950063200113415329128706823124824596592408968478561048255691493809430979853117735014934019628777284931096444699451857828521984699575966145395331712898976334868290173184954349969563502666898862186562999323855889045355324699284094505289012829116486714397670159152358740984688630981046367953379309111889254501089298525458243673458453476484163636968924164341774126231273265154978632563925633219697560692327068273716755667247934639099553921988686658751203654707788450228818668851329303881875488682245824582208193663457470850219813132480447016335856208304246551743660984957462173028379840907024704954464014998115130850459675799419240953640505322369581986815330221985639598286380070146201466455897300183363853735218856670000915327221642307519316139883015486392214139213617086469077219109687638453296435393485281175183395476577430146874407240986858100014865168373697020963526002458393276037182684852758605107626096229307047191052417856508156272304494926084408852882650242919513277827141457684361857540617002732045556463654166736305249588370384390588209357686358760593896692384401629324720946819199486186350107350892116397441863658169800105805388047767007737272052265238592313978549179670005009663521224022372176135364501158832063908523505242505733728098703300242763890289147820080558487026962908770340437047131484413156230628388359209072006921892943401747135422213302458651664947698711480276077200846492375898491608599310879873356166398949085190853740566696847083182611190179572165041643163129849869455592238922527447649994503970518336212184460435931401014100916341171428765248391198301832682589273552962069462224785791763654569309920452232822705571250667181085031640466700788590745505825685107071128768830034767179547428476132572026409841738213597677095670893913527765285974903217874587037277597287828407188322120739767650420166994938597051340130924099897929337251208329813893569459575340256973069591412306049952406159490968811503163131307335066789246549381331341446377816233611412177391027078461054329925130603073750472969814559161023992472661339142362135328864600363692690870245336341912928312084333310084053983808164572492021392313569786608958583718761605262853211269760937168206729530640567449937465794077740407790028791046786333731511023907170927284616267936042004631449360168002345372952905189419532285545423164495510553167986868496411482061179315279453710000410536954310501112057002649978295162029372511093934393107363083124090284575061830462452456433352255464852611453598911788692664959182643630131973131500887191705341832234371651934812607181370910084917700858373208371125727111613896315667135202972156233797640038732752532510183996131101241951425669785798918364667812188332796703528806285164388300198677477332926925645681102999432841553553891909830546978629971753705856660020284803391308417039562211869391009190547748203754943874590119700357592489153886994183959264796453111408320312359733992052241552754729800988429867975409372747060490241822197653699558261449576998281030602311752384951074907682764676452188800827177648295060832674995252619156884672481736680832724899673476778124933288885744667350748534786016781272947187361907290640701170602001467032964103241872638087509452959938262267695086141212854122020034822055073111516370547751983247736579096790083621998783643881413025275031438797667586198493218855215053440239972187978289745771261053823873723186777212562944450174281157577734560096079681448589908822198952151846086388219126525758179773871138589360832936502091021098608437117438138060961061491668472338411243280181459113611301078771344690971340137275497426322427748282051285872744612524245611325646677353768990436607438239135021151378924540425223801069194517002289637359372106658712209443214140328970274717937551702564373098319989968852998609394601856647200479344814125512150788400971450184480695859554545214385284732569172254854169847266502105203719717366081676646420161334541838821145031008388491523950067990781100477463233506575406394639613057872572915532371481899073184958902725674163753724065734527367813344030154868913776679566281710427775658479757962630959461045329082665714977943747527044142831372976880341185123668117831040059647369125472369078078021269538861163414310335996405791385038602187186379652992957588902438080442725298512469885161687910278390335306048654333114428814478808745492129750974088736425337044940590520342733446885469544079721292796681667115488828636602562842272121069305720212688367364005008460063055521166836920868746211161254866566761299332887166547524125718184801526163005475558192791939137994239655711810006820183546964340812485937645245694397973559674978786063762945711406441587126958089445282625802395603388482146882019572319433243768911316907746879129420840783376996012916268362150152820409935830467353870415760832326061798729288236352354914049088578600471800585156621975144340899814855603546024792640614669213848931252668207946691314787891290693320588195360977626488615818336367475877184263053004928077593174726168750212781464811865844577975782357322085919898938983215429938128505980694590603577150844293104005630679530426293325366212099637001653560998918242775452363506318002910291843123715016762859226427131629876318764648291582954259433175088353982630784490065388856272753599442020690983158849264068727373351414337594516001726433746124402752197688920955395035890005232210965489600832914591281250473767376834112403803046367737411642323082932292208107726295237360321849015199099917962089611246869502929580664771422910103202256947880155961323423880283506507662379583973081013645805534206051442378491810440331445424333118920281375726081820632842797591047691937275703469342888191711234812548341252746702552355062891861335986173192099936571589989326751905950822895020016289781460999480374401278067519124676176602856793869364832531736804952700732614686839496049652391082482905088037354525121790250044571130120548545939826462376778966123941396868213021153630845797366928990348572450093921476426756037116428081964155260626379558914798581740172069179399383929687613193301960848552918408360959793130840423910391146938917608970501824452738741436436688274817544660704517521050734249400621409486867451346435251361374464274724484838372789593041111150314458187226213926277001344839658057961934745155639308658382586737403347425280552145894344273768261861658739183507668685812239895676254183128521163318172446642045604262036359254363725902907011829930140009525935575855212603163257685680230834862410394388246999039988631470762453962143909038189554697609648531407237994326683796471472571960240577462330324236081302687969788612379784737424179202496164075437528459492611113828263929057237333401474704849631625408562914115774648847236536597463629467906883822425042733462221130576219617519196346097876327793337228306606098528649219267383620844417857483652600607103940659392542071398682546340955292960076904334660456357737720801270694157689325149866742241702812953390306307148148478006017579720414653971798534051159793265810038776184104017150687444355378440692418189642300771883262340446437435250817295231109018384079331801380140465442900618828309815932104100169006213473393272702869158508555633342220937385550976277917784673776768107012143501167023955677084892444265687513475814042478488206091095734485505335824202038023365897416208183393927535043146445459030828520653608851776012113858744989811256332182441835593621026401787182063664955524397123792010389323299226736079667038348085213725042998268369423524866075604825429861717813198002712347366442819701442521426827020934727060461856361595210942503033744831895215557428838613509128513543492083211698256606282113213075972380764009265683902764442211169316741969865939856883265960321528519825492327239078825983390847715290908059262578519806248934666272762771378366937774133228761872783218354306470880511979787623671450017866895078153286570358340934773564890290698908097095167133711489457755668683961553974443311375700856777165422585504937547486285172986544674809073584173459660059056557637987893632488856729173763167721869202909007612623293959277313661253233691782308617356293914881410054894102210972029488722642194928393440736440222947879424127506584288458888306341171505676034451579911596409063937509676722844911277632770474699491797048481874957750264408546204316743659434796867315609647642119486991564780394552272793368790340180423268703375002287086203093430108697906603058242947506095771364016345747236810531838350070957957452641384621372427772676997048543425877980380096682829174111759635475442003852601341939486911630087851472671796600847691108406510956352679013657549957508852571456407814571054614538343981203054707197318227347617679768346630347343287751674093566551770945605333585113830984409580271545101806249770585068192571245817101240408645465979845608959858174580239916568974775942308833425257025224667583686186960410681010556214339949512810731800754915987285307022048766641174368593176913944135280714826378450333898688845549464969712612717380918832508352371297153097382986813661197671604471882635351313893480957695641495910287758305574542649266455835180008435802956960287738142991183589448861635855396812422609351941369792056297672325302416562574774268185599951463977541237263410422161157278687537829355562362305249608635103565045121133231716109179107844516547172568106557404617971483388319594099361971506667032548603161838879305584303268986213436618026861316371273953353278047590531677327999747909523063473325634801500256886001283045310152697019551776282096453194075273032561194295359633204416354494487174760758604296837026074375060483061426679682800969958864882404541898811312405490980352435475287144053465960650143507572446163812162603555597015451686610458457639825386387403821541893210692231255509439885707215970919489947533580005156004457560330496067426558886149126504566969674497287201259399460645503854282413316517827862878297078916149169457711525550165343510424938025839218242669915713068869686896277113738470865347964307931730146491818897504724158841296600008486345581670845172974006278943090681963736934571236152472433622028622796818887509992124512925934705448889149687147406751729405343226464819025007414780980560260552055910309604440800064299549372188336929074617469016808377766014737564596147185049706709265201354303993989128599674713779647236301369879632674034423932664101694860085306863377370987332847489546712476925929847878147351634018347417964503090478933119875191687305016949524114689504181612797971592916721081450704277553567440218915985949751340216642826204584298883190331813158894929924562206349826837423423963681108977911149158426074584403997120118536430617987174216084838306545470668629303169403819674195307637726099551169490902629226418783767484368215891337168799205102949303029729438657495203284350237414714950120432005061169452981011439009184532546154898949059109928083090099625805381802724187399203124837427184674524705938320210727378876494666634277102418434511916294248365494283690275161425427565996275467713632123943403084040221898101739963284245205948399807465008919382409680076613371111709311656372273896042314721259885098497302747165733448944475121397295608684055419363243633861564346819351692723899183555446727075681548594642677784676151635470199377227965026082145521146027570261019170106502336643469159161244063626966750126839384584051422182055299613031895195166068727872866665595847226619797100706912432926336637163966493041125503086556265821652396688472384997501912488835399210486515618747019813363204847424614354967230090328379188562409077315045046460592492011302050061691676429261210154312987799305095599446937000064509049876256355356432495691934685861735836688574594639021117404701721191091529294636370105084940230785307614735565314612896528523286020966558342211229257020355072006392141362344218799544278672330220070110711661042643757517789266534450697726710051394650641015113969665321917194148008449569587570955376060241556420538914822154982774988209604000386282421467976687315281539993655640298422387233509985541260730798354487190522061314449756818990390792835728366797609777523599855405672324321077939641980421628947486540910114133152002083429982075027215490206663883041810206264180092432887643259637424886191024348024191131083723034799887023957252415010210983540320074912529579378604556643286167581366360566573435276494165884048359566497452851954244101040323101670804236449011595329290668198883330952528133327304248604223581649645478615471106284544231821486556727646387536939793365386627896865477111891396583952653250126378099426507253133589983466420849782119289716535899685488528419777081447451125051294161143794820882303019020286011446017585874843242944069239846372992268737572953173915170561928111145502945873343778619124519168463044695805082335113915205313567369589488759521031424165349402426946382637817426877196879087586243421762154079736278688375254124364863769109644112608638960725112876961559084878054663544430043387708166365337039514970979360300159275623433555660260964435939212387360789142796429884925859719806072432131823548374446753874760413980389252092537070831943494725589307512101863326021255313517404339396236822083166982929762742765117757072543767072675510468870624232382845965870003192439909960602928758406670820677372914847569743517227635303535842897686301251213044134453367812291193209470488961867799862612070299827165519660357090227265797984366934837775423019569660450766891221895983891419206592233817464029623519742272925997066497869132135818585457748853147088530287885651862655169046002953862915058843364511112078191513575639200571871725660848658361872953961215228157827550969174136614097007046933091272847522579151506170225288124321053540948014743851831133626838121083850851564539821324812061732685502200387101027019026746312232040938075141106208437653822639993047842432062184425788874468964276035936968366710932654785984434098993872626054172118889631955942417369867693214203664805629240483147592199076391443673317881879123166635986179824434493722831977765654782666992634116726786148887472209227027365441529601944405125886435429393951034839442333936655028479508965797549303443210704718912011389464943813881980110555423610882859421137453966785360882106238177781129579389392874867631472880321633412571628933627599740257651413852001382683415418558064358842596522753569908605403213347330863650352616521590531960092690462122730320397600299513703216630689272287712249125403411951129436086436304517747670538545525900181706365815762143812474469767853479062081717206311662533180993700581762834054363260956999650083721706580055900138870157817280726524440956491838850375858598133141511172998316950888682403873258931153493037239755223905250437357240608507405592866176236951462483618809211748664163320581323263309698307553309001669084849534961550342885822943485400399960543246109894112902005008886860101684359267050492838382012866027520762983754350690160078093257246143655498237601835591743296014525171824385467881432092893717976090658457803838196832251491269207575569490183871289260925013324873036327752851564269986928188173081205204684091108943937928887656327993511791800662996188230644309203345661016670305529103830521099616563629835275526504752162842162484822052099520126722894474779701437547265541676705823512209866597784765847549419213248117566755110024710790938327677354779417015593215005355464658351043332758878261427545973815969555561837121459227529437615471177183112028834888004733150710727130958306568027988637922326447509702896674186098221139128592102900280984878427108188085666211481604581824134761595223176247752293918516653710377964371242370237109315025093358364853583708311593013969568611073762098319635077627725167691978925242851571513665533509403825856295735035715505434733900906783579856270823650058086994333131968379315226503277990960763240258204305838286366290861810677103092111414094414468702932747519518218529071038807494962712027223923318583484886368928431431859587281565398053746871616992758212063284940563097149822160148091042350174526631767860839618782108723144457574921517345711871327633786096823327485076883354468816248748630148331969216751074064461126877947226261220004208626339557340007158636973291519223359297829410460365298907083310765650091496128789404559401225060815321582167420590844890470319339916197996286272118377933530826047216553908135888656653197913102556854768382787670045324438646015050907216752965273526018736820867798911493209396344077712032006523252326033996485093324714518618972951385230604702576977812956456165387658124882195244832657744958915814281261891730828742226787464975526970366854756915322688740173831715989318820864280279031221913161330484718760640452307641598832718839331691761585489340786137611595422362229735313294884708234010024268668589225284660214476723726395397903951125399142666852921836103918221203151398330678588185485842278658516543121790813120467499803133405135078433093219067795053062877556955306185261758101784659341875918617643892416210869222198141199075195724403223200737501570451425701048393481926241338687531327009110121222925472375355415311286015790855598108528750938525353777182643405415725138227438966479643435939816414707640078067550311507573630963576254574515422108299748261599993467881972132103016213934166155043964053351478772323035509689199386191327400617179509787479338505406760090755757632290747428631155752892419111632623490473180407152673576932761874766964578903360217654318656678304297876454915067976714926005375525844355200663121993437297007223149304982526482879670224919156322087415379099364101597739221772919142356262782866457849529252213651569003883821363501606111774297574219919437078324774134424614016017919703842378913591825829903683057331636533995650415625333201267241959101750307131285694619410862728773162579878004187556709972604398116669869213809662749723981343853737966507166148636000828877226091843033564385753016511272935972293154671810681062716644248028701069743473597066972154407684588579184351193101080523591274986631241862804472954017010677205851739822055353754921846920267608862429062341267637547560779352327583301824414433289000143917923355081861625509812927352623890652126021540450617825983788186590615161885734392710961797187578916307401413498268229773395153199538263296593699621740554720367222296562203412204986444603505507124670301782982838183557343808791352738960405929147985347279644916236986894558487400802277366221925717176222899739377976866570425370423530608982604107616783343647842715990617846999836135258254914548405491861191630872238134310766777871654590019919772076172682001877766358041327512969816774531416964534802178011155483061701038477649962350405080657699853431984193177541213656626239935088873385772552373081929555096973522062913598594533507964580644476111319675814402458525191719025178071888817688524920348414218356257097605973554071333153705011647035353111956448348204216693179444790842280079768704961743904241812171943161888190449296722596494916913717794403993990880591037426288743201699509093173441815904771334826944951540382068368193790433340091120778393441454708665185104840412999205798250365921135848308497280503362728180335090881971895823354292143758786843719730848250344951233552621230044470729691503327267732259110385799860350207571900374796320503399265024344646836448331986441020560606769189353561743267587512736004862299583864523363960271761277862906829522694299613509545053527337139814881285253825537371402768701768195955274990095105373169884552320168405215516282894549800574287378563232398500440682916956424029565251798442172762792935902169916269008486686926108465372319263908955352101116962167438268193720765933583544259535792425023845186409899540765939466419247035399317225534039522425592129989143154502387746956850319009600149772123061326172681945030069377825648247060917006036820919505755606454346168823888088869228265037424931655092565717146837385796096229544545215577857883485503634534138143819215551383217127463659357214512837046273201049496819783306636744980522980709761377462446601166851797900586936524105566470067242792576832904765597953467003242226495546200100908926928966689415326156439172641654170528463266593935080505495185164381268700878641591721718209791468263702231094205794297501634222705853265809101121989384689257230741546325867695116705058636181367254507947672095788498402700124982985079790458541674819006329530067251617021335687384753529950443300690989397939143674339572965811386660612863043034266132372559249858249329739486925861232743492561646494639820830647215294216288308137553702101576358380004764134236534102897633242107693194978456526704776823399224051844746220977794406044921060380722974235727607735069441721050799842461646019512937188835022386604303855933157383181310781556778377278180199770758713223431333280609976410120973835541256181448934811422290767664807054226034200596240566847630359699090128190402346246706130244519931346405275550388904145898859674768964692613225950582240571571172997546187017314477205376104329585152659028131423447606357246181740310308042942344271551745997631163483006323911583724147730167459676783071932712313842790350604416474264977547000631249405779512063016120302264574044185748000469019492875903764547439845264611105645385327963553819737595009329403742746668373257405397032692998516588604332665733475135460536893850788360850563734788583796999096828540910021838410798216963563683262977029313322740115798692698385725657941862296895859834298534015824909954387237545156110208905283685857145989054816066934186562537240779996807220753625626418436430371971888884329711876212141221705214606823584685803036256407618796538060612268336840689405747551350243305197895405510408698307765524414835651813415383618143492808389200515489929626309779130519907726104615744486955907567565606826586204519624707417849475133997232633356225250432219642996470326308881068372599548317275029875312662062188128842443395540738202351688359018759724545451910103928283160092801721686031028169992507212135797781641228075887473960578296249897241726420902278362222557576059852986023449756132937190552875626998939838712503270373634787931432048658050339992675055089322082626775198704000179638588936250176020677233493735865669594261487698987498317178251013734682545308172811090929533178998153094382993582716403791639508732812100268740024888823796542231315571920207493866397064579466909878395792328860701785811342823912276904797382065709915007827596750441550125789509299868144376596122659460382064723087911474348411104398970047115332102703223649467108815631546738671657068127373914188128719171252123417561965694534176274927581073169682888440181332032164533442033041811740956953740972671543817747992190959480228515748166998498852506478201919179691096511036738590211749172903298760835652046820279883560599319133389776083413283661266533700346159804061116469870688561023035795806341350112562611938614392506060305125128164782440286375625154581332624074207382917209784512492027913266394099365677655821060378708921055100241965130930623945685356656189272957440152413030175213559730034396180956308879249814008442606041833463823537435380235829133214677038553399975077271492447530158509035731312256770555416725174729186281180044088335042871489859494471078346193038331420957714146342861452323625819581257436934939144149323756135029093530266508879894819509709293748878696135827804275507021492608162183659237662745776535732414977877270825856643654356282877277621056549062055151369719385325659055972168648848773856674335823909451479894756665088073136577174120848436631223523122296981835668117337246764982205400406213710812238509634465877615410328841675315884940642930727668800386557065824525709298034158354848358450947087326181756729903321958716274146679659899772560528902069258046422506346259537957970641254728172660449309894388279087850772859979680349272720864487592519527881764044775342015694061824104093376913734462876760102230713395381617655704283180810853658963910818884286102359446747525082815329867510740968645894361464655438300670668166956182641915495450234621752409034455449644115748481701577834562802834864885446026030650740358353761902984736260107897864496952111931292919504943944264481154351992958935189435611849001201197983310830517932087871988738965454063399075065657728968665028313289185366463764838893587959827596189309887154740256669729265369068991853362367486381250375016173348257643797829446977833649765890441898916847569054363675429509475540257265005581264221461494057798089379368057093523969110241233521708729207372119497148480933814723606074945277805930375285680654044754733844316680676560093469752762998876010115462645147346306364077593462483334412866288895490267831205312626448995713422048693447424904483596950178983197805116169805551558320214456614984752442801440314096695094882915550397364057167285067575873171307503484872230311880954698706099342879619307672039319524938975091467025746115636978323654147333426200954514654143469764287695646430871272694181764603391607715070498746884587811591387819675517273155131610819779505747839468443742772918037375187394385645627900311801103392241616555713410926047410326899812828228733260191871611338258897380495408380814310612609146775202171737316403771923624174507266880359290057827549694112151617508662911219165594723857153232992251567728385359969341850017066700239675501117921021258442231509539545301714164815125636366477469832975131332699074428373727930189358479073253603073062127136914272042580710808554479609770784012446186651033725171789608539202169620417750257575154596549498439383695104702357171836933339553972361687275222369742716480270325239100437845663211476030782129000963118609511783471845341838564303869409963960320655011748618850554025011383143091739095380447325823399804391358463573801323882621647410988616335817663734429926955154776826030114132677189300175887419377802888724552211470424502531554128266071603228037566900848181937812717196661348365719559486222451209716716643849461106094197787789862978177633602467800051624814775896116819767417956679435011437508977890687167611831334806796305432956358314345735105567043346464037359597828294494588036722837743899903123710757717508781121749170874407162292016876664769490921790969511359940541264832450321899064872546231715729023584871571872633637268822627719307872246018635270812506986057202478700162202787091101842991752100637620879155720156130960846238701515301841221902221102871038555476643900515704529889532643917022914010556982328022226708310441703437341831538291149271269704279129297123367556078749459222522309054808903886382319091939331735480938031124207917638482319992804211772685357464691082612820356212721432015264840274682292180157466429583051313498436831592857908508825168921593351573021685972400513119484376242357446730073881287058542687899445600545541018286664829104058739318937678802595472767399212799532925807502530756495654522354393704692566722606266333921007573100374207740855048346286729918743430462356417664237364835520853398247395798141234205390578511448180371765684251657075863521528097789696264641740316913149171887662455703081674457837322591245301751618194244011259479754534682133251536942534530209284237241744655183880322586404119098608158029696811509182426262309753039210080113163235063344251237468094562038882062836541312393825317894282726794663473783384035688815214648679797416897362046181041476518364967038040164333828485623209514670868873782877917714294169986436177095554509431217783903381306196510708813645338593183289706624633593620116816053158167467446335786719516175127800815138670659417374910620354108339032571139169917181781313615222089189916959634372383093837003872084634192042127599937483860776410490093539767551095801705605921504003533808102470921080116095272489911774196376410749513463310473386256030739415639312010039641456480341580190445964206599710065792706925313525784713427817002474564004011944870798636117152820385521325732017587267909018519053542575171704368099190362944076276112705981224060912642695753279142451540706502114365878548126556274598870755105211468764135241839548598308804713977154883420812057640269938449428461738728423778480921404719724469227644263472168906812020643039749913384626707117675968085235021617347371961939615455008015518118369960967129657923034457474970663798664729357845341519563605143851724932115693486055528979727082725184400242267118824321733868546939071342115303408897398832510618763875241524145826457395367915175940320512663637148959857980078959542184306448120940687459000085869983078479297316108567478584855720157636472510298296897274986083570657821304339214949176503488903338986466385120769716900665543854715872291620013814374921813964125179446275739615380850148101251850283927862773113788848914520023405553316902431131939014311080139034558788121631993011272163888842764579777197267408347392857059433471628068125042844128159017308832961067447998108783447512383601803057989467675116057284578309272669566974212488431971414429199686779866640184951492621903867413074103889102671468978588280347306664291255943403377784421063698664576431091748940631029985452185886450191083231391704056495585794796319441728225608359039129213344987034466415767435648063429001600252963379712743569614086816109984240253031836156178740811499422815457775980757521083119249873105825786088335696273649330132651400561226221144083554272772174328222003235301506958161442501960433922629965940133763769738003132136048749450279227154119432776412131067549812089232428186978729015828002902557143165418433731950020939552787762829571857784951394826923678931065455471856371481643132975098074355625141552781489784658433656110615768283793976489066389517463741420601656995186863177033126442637633091813037838435190016441046976184645355090851093973671210642796542823984239858483861035513069582116540640775456482092802513622258083126294586103384897787455037196758934136472058852335826855734900653253505860301108549153724743136320968973900442198809638702301931297883455945994288404360373627163640495737321125128302357645067942428030745232234680076539181049485570948567242416360234480263644955866243938098644958349374459386233046069771868724904083863730593856155935975014060970432389906365725886465984607638633217985102130048411237021105127422245295972702964283288706078770488096605016241031359803582476617187187962541846599847081243484270271785871675954966377178266545632101063863328987754348149640091106104185417179757229911491340391261667128957007835906163950712534127214439127385209276081587074965822189916079256374632180434470162581028179946577942632978164939345705160175045088825222397126527130601591351128962624822401348614035833468003364545545869389334276157090181673112914465758580274751425603146501381151883340159677326274318105040542716225012356567253742667204088855537533226233166733598416599705965175086066936931926215689529697990558577691459654870488813583116852705475286219850949891324193016949744542310225163458334695403704150338711627167155682279992138559209758360897622329910559947374841479278222952741543425339503119420175789204997351758069506560779295092187428974778445193667962065351042080559356624840827811981784916238747995159987626331982029243484558456964954031721143575964797762246584301420909426152604630652640831778634274991482401055224500897432439607832063004037793315889061512657999608272946270359586258724112518597195831417590876386162368602845424667853813512434353862798397796971573963705392470998846540661653805726653202512092885235107187460707766605280642253617498869386737638461450140696793027778823938547334851873081101922436516079848483911925470593834371954986998892258838901142420679612983525221541428528715960656682099468634833161080505789369001208413098153635548559940279921111159512144986169748476677485282313301442219627102694544628522977012626349435517916990890811953198909359563562618699107703438420933457454103803640524122870117205290879022380698446852290906849089252334278446286026938815162348556941022523923631136052571553618010130276001052963487732746593536620663402687322336947541797366770663953816380365484189131966940723037026156735638742986252805901653883633340408765686966537104075210011595568369789207504083773602984032159519944733944169607276747395156161898647294825358307683975437703372735461517862807672356452281923364432095209174881410736464035454809099717509807495202009824616224662560809287003795503181805986816294527008142308916114030059813819749189417928367218805371684069308820236251412401539428628730432399893498186705630213309138806694851466042453382574213967924564364216234670761040358238954171608996436076907288504246886798531020959175417017909000063965919748745109670656773132321413562994784470757251537224322164990779392813028024564708484290354032018257562649133349082083517777795442092233839681845975187252009050439774975337352434793578942605311771302305648857675607914322317864563527834521261446828088767220346234241981704363910993723480443943204930139318988999236278597608010209101241670358180858688478613711746682083987448424332209961083896984508216859987438106546089899354367503000283813849646231425262605686155862569282415299116785273916164727701806466337847876821158144437770510728439885485530693788110217687249645211541380476389621866287607081293053347271650499929391891356468320941947445108872209649906428584157447928471011511076315902573741997380702655272815946454882634597451996905147112079179137620406948567683190748846151830575109538862973169687350211737293492644329496580619324588588242926529818572672502454458622091872370788634531786380433632533072789478931346216239306406992882714824128177944821345769427306678361504154393821366970562318060748976672562392652219997131217793366181992485449779498738725393839953199438316244391628026166781977878960455242527701624939713047414196020773488853275647097394096191191316227322986842237416622037472234564151811334215250480358456455384296481752365685979208078204276985739559139993590270657036900670636500108475990478249075630017321361477315015267440823180345482343920633462619201806535372946195232613330203944099227922863504884205686897868692854854810352983043413238768750523627091908528944003064701246303461284862164922100971219141411630470233352582491774383651634026970074950248737851632702193560621913080719889456569728934497159137096806370856661638126319007590608525907532530019056542275404139117709413175770263193149376425918116307522820666668563013462317235475698813381276929951225193169213792917381897938494372480499474755493614556076701713903019344887285070701761908415261004817271488271495051250331761966489859345079827529458821156203827408004593101585439881678157596179166469837080862938091134129723054750691358987931546323784928837837382496921550301251529594508661145795254446015804051136671097525495373559209228611457325641872940880265718133568040824525017365716922360713588816625213570391313024056955562372283476698612639627897004872496726936642334251105759752877516364697958430672536246700774099461240687552306042257409444692379384715079198336215695152100056404925277909111949655552416415743170305918764863685025693737409696523325447683683499472923159331314614710684909001092243104679881789465093327113067725750258698170605404479277454708576297427892929803723597622990284792472217105254399068431705135248448353738594999973156907764206007470307777889924239516206983056307309668045905197555891412563776811637277093265413834238433720782065541601021242110221259579109215429997565246817990760485823674721305530628245070634529070110240259478474862482391452246242557041328455059011655544816101799094506728671254343284250470274209737943561580671941448018461720516092802559438420632756897106409465468029145786855267372591464594096612792817003676049675901909110780344707178771943280241980156833273518570745412491134183923712931135531242362220655671967681772057127426124388640895207092957826128761509785164162449098008171635548672916184349068466386293142095691327772236445232662957794284762845292367579137740774310426345345731899811661156605905086113181827607316242357631339488472483190732980485874939764508904789429577147187086173136115501040318712744785447267553302609136976605469938988865057186291301776661421276083307249900875636023974798554272978765921515880721808197821365584190164651552462798117542211390639317776436005760469299856850069930111168241921927979959881404874356504351562950900603402391198194629155304674062144714246384885762661373441082653656166980284133563912828946339796120044170945610151305508638567867616163066525062377046678126108956768269317035512023249294272945670931165344814650212355742696867778314022348612278872086417921309284845085359276582829161209685663964942503555164435703957630744795639073557902213313424026607425633148150625984804808496658436278655377187492277778925494450206655721477435167145777264176623172873737836186999047522416431971059823326933034567516670378460424511097735298211209239290651765777036648159957892388108628474936710515845409272108122134046836981703827844720596081165051593185379860936702339567406581459425738581063550929126279135406987454177867591967179130641023120652156031489149512533699006613632373213433510976748968906747293009561655773286251873699614230146418994655474281518786818989032381890463624707568172573610432369160325296678674936586766362496976194696111827646413712924459804028924437028934886755146905010697148739767249078274918499807291339641216215013129027797549865657395764446359806694145725937980255114274226439786012339323817595942019710113572234525869509266521179263682103423941390077471535448951300865070966383961587282529365700518108333897092496065957196138807680415931945300880343476463983506169217929094630615913189715121395791637519598369202567106442472718505554512651314527883567157813759346220055192573335078635134655407218831053170979761325446031664864847450674330726223001675877608816881152968241073741809998170107709763408094330187200390553041836730601810579191126077384741774662557108005369570639465932530343241247581933899385175698755419347336929204746888931199461503802454475723918929274537688840449893383642923470022466475043623273565058398244159692880473621882267828720582188186223911960395608703939986221176992946931365938595808184926478808193417871861748978903178077308083284415343093218706461108247595555378013423833519903041664864308328037045226185611607191901146921679137649424125801657827180270063511893428603847554608758343131133132229851812788582347213226709811553156306725863359245505953558270114685981605184542341003156925243902883911085446097445171156267644622620694143949662147446457269650937699869650558783805794919254213679215435616532940314670088607901610371505806186142708082837905910202445899333628019495098833591473668695787460924615619646383456103830385320703465884251657286247472864067596592766047000146925851774366312618520895627777198005973586370467291702779667449147968682351728122830541183109988886533372298457660013988436210639520302484477195007568705054214710673205901421428020682517544673095104889942316413453945099812477406836716349437872395386383838512360310257605586231307832823144522556259409444034098116412048581360349949149388290725918052111644420086600869714063477215710257945940661269654662672234334193486125985169126230348614148061311679499189348463024433719823707585250809516051822549641209008343099797746997359037469885407653399930245095525884476671733867983381267238375364169359401282468830773248406484879872097091661352748197674908516003109748927441782514975134213491113217209850638900359888076544469762075237410207704221059159335899293803620251806207451179807166259947627302736876634372277142070524469897694517311453699520947859602681137687382531272150391227195562684386366376775771680539833059513970147304600492936593929720528468985486099974671944582610796485378255134743275742946842717273949185800063891193038706454520490160568526518020956040077412223752352571525891452024036276239091313615491988854237247359252781145693764178040587759702222970557029818052040914500209158820218054089735134682926016854545852864460498375534793790017345383273254844025301690056438767789300851735259128724928673612919471480066955424336667168655459733078457830939982786768424287500528553056687041972070037393733334539142976003799546180451259097312898835465394500375573766030834675939029156392399402023836153183215279496234975433411971885770072679565945428325136694950958129788756936862216389051255098668331522974106651413258483678423162891169885302699344759956235373967193238810673003417353687851480764727093012247779182779656459682291271438889124280268857108875568280627422579560716978646824671786732230197284849819481765675139405055074098428294256072152331647205628030869300510630322223167764171142686969185437556963674906475712339033385769872466293625592714032184533062805116163427773203076554671222834978251001795143920546497686141279129870765684273723787140607942012044276170193849847627975706975049033602791188832683886628153213941472369518275666108754342928621311746697943065542292198788935428541521559470076327916085149504778895368279003862545638253982448313145229347060919584901361891323176086396023767802180339395725154929786480858387943609493213949681937385126008531722399892260583450135442271369887071117134666032474861161262389796003812464546624338206571989658616594614022451911262439379640835137363531699127671177828527878752216346633781105502745099042515240877915032162646544328741002488039647704217029654574066163390806951967774493149959289469485685746274038814905286977703188586471064847768379161176444968034112451640383816760994242332739906206614486876294506894418605722069155266887762591171727379560158673079709545149423376414042802062622962159838234316972935688016557380787134914153674967424527332628167996204312677028604113737832496635219646208472630144276053227945372371085982815906429740664891887719552203731478314057985499174627253280110368145448145298231999725991005466140821885769069300483195506004677663919550499206856570722031892708743511467444057608378015460627100225819391055617851337273083826327391493146976431025303980270629177175302430209946957741599486387026138993662582635169944559337747205356102933552013824421550856636528950601380098787821215156633439655808464313559625801588815524864889791101284826505790041890832321519023546328442670908503006839694752641253160765193554793787584800893062435061917552879276681733549316953588466946638385495620757579837423176152512151999617126649851939624309901315536656545569351152418024242413327468576415051211038830632002129221040655481219090330336954709950679741369884227454404823170585078402819477720880432846248563252457499400848186526661347544226502176845522114435849805863512388717034201392135951617529959631559660742546540515823845210150738280703413120385983325514373300432466988715754141046973059570343397949661285730750264260295223724270716197373746167359889281272751667001683756734355395760110033582232299054878855227369731641066357513927044768100942124157527965369696866865132169064589154962488162501387860272831712406712246076100415771854013935169906011451495820270869669510507045918006183506156476294563696640461981335217825047123567773841565589537688610924331599282635242233960263501592372847492199697226073812429316859955249609307267453947462076892111217093486876235184410596640035096802022871043802616432894082625058741146530405175845412437192416573152474245969525593042255558293061011739909393830793684188661461040028479231745173433729287243862292726711008619457102871658511574542627135545159367412841053150234946741493964822747150083912214376012714793638465813995397965723663701718504916161128132752396423555790308301896009020607465221576256947679870832590547130047097721434316898406848180451977840976021379769112343539322980429986828973516246146084414727644576820649982930256798075436606028625853851701043587186077560253429627400555122876918960161837219847313933487483332951484962120440790943837648900132573366698774499506671907140098419457378497250461654890222376444298369545774481161295974702252770414666410997679164982617820608832256005435111895795966799472568212740929331671190682452892623246037104580177879752309734917818385509765156448380573147323647514815558069796399282666160120665212567078840465245918142352175607816360016383055702976832552280703020831643539595999798885004547270171124147156718280416947991114736940823229184403344256094044559135051845306408870983552993428976315023692464484443121271498290579670510377348977388370570856330063792722174926162888904760876779936408336845468012395815748170811237544844226505549117353258153242077813042576806967239792373317873118440920007872190550314818220965557783695724069250567679562658535079949178261553125118255989162433168728250535693472922965959877099726232680638443080304800831272993647213511115371057328605598679200916520827150599665512407175956643409754535126386642653566525065179565372947961147264730538125303220766868133063279616095429856340536286288484469017621740849515008658174697280957239046957940358288675218220551033859825145571233370721143614503153531369111627745255822111140582670060273525945003164614519410739856954358965571866502027391722169699810045950493688495845036358195572094199383367571418606546566427360574350145015206111712625631482761830119202285208591934441236879289598584479442052043450373112653406919167618712679742443102422400453319871462230786728738969143480652892210531160077216117643003030092715002925448341839000982310467748470676823539570366808615144508514716813693372602020619822165753384628367988354477870582659621116684381029214234448283638185364263565570436115743336459827156031538404707551686868755921500544181810387951245415458712933043078837479253648838003724010967762788015329066595708236428778274593724925309453600610285319959361755717168465366172835369128306945424879905298021127899432666301987005040313376764552914679635680914427372258491173046080332862861609034424579426575212305379598272262379059120762671942018541177934539812089733149286680743067832632056490732570049058700636824259226178110939952333722878020105872883671720496235310212693742835540078424758004500457492228362808500818634676945748869159377241434885729204631340120698788753104764027942504285786416398480033462354009554345792804168317471035047406251784415275308781277878942269642635478297221270005497155827814401734366666771834878575245435714868655869226800281786696832489874687592256568122140539713674227527662676001892596563984460846965760956630933671685451091339916112908224679143338422755460588525394801700625724256382862032503422299148972918855381640800235588127827600339489580465209002378010603968469531391477947176962897432959943547525507732994899297945678778060784413762263421448926112956217935991572985186260711413357357938355617085557794250648170604147422785190951802417350712714936718983581543781107058671681439568978920184935271241458557006751852482889297281135894424446519494498225575143558978818620828651946697039764886925358617936171164456814114939600331858158047785511264596463892391476188056474491273591366120837099348948693870281162736467327585561824982555357276464483235603725909073422259325093382642399483801136784709081220146104141152098865621172909869296554395514039793386084195256251252747116032204892490361213867027779125400949825224097370166868214368165786612409461350404622540977833433772152109978576960474484774795211969768315691822016652680351606776138543351935954288030145326256692762839243148821550986511951517697711012892892584905604099454724757431704493728432825027426235665466901523538552252688097049903496603290826021691620555927638887533746299231072402160636530862903601670435802605977029293515701389938014637166027354031626356472561676806513265465511704582175218897428623390908281465614730875367389962255761594081053809564337272128109880634871356354331506142655710976427006367243100847059141248244211606905461158357638106098216350391686556802975765082930420250053138186885660622500565324214100928703110544182787334700011812211469023382283546640349391561473012640110734779816224037942996976221030473832697928774800234667967147657410612510614807652732337538749395921527637163938649375306085314181872078583275551399819797964423181855209841891634171393707274014399410274156236976981660363241358776422567077214758056724094545934358409103184007680274336408881245800567762893411831806233267440330738045022705866044191041295268905662699211101532416823363743644114799636981833789085807542378286988297922209585652035180976034265893232122018884857054802265245101249103707769748812283560885069962316339320709762001233022093962502962825174279139208379747896705445558104181036334569782778494551095826853307197912347739821035910226789555599130966582162743929292451576503460266574342268096878373388588110356820315275705300830151820712977641889082987445796021143804732710197266849003303946243784827719256710171289319719427777029553246261876073433275272071978578221254006653301625594219678612872911357356070857628638002972532068463235407112583102554596613073863006195968902207729502204703687246449803747397042373873081963882418290142391286439107422707667447754301473895689421727174145185179459323366237509619549521740652481741572472879801665993519406345603926399477498224318228528684187350419423304929543131012600676320700566728924223286603605217013142994848583380240218332217585903315214101698674822548019489438957426496457891123282800799456237778287160258382828800823782122621402158261304925543821276742310650230530568490994156760747211300349960153356916214519794075196067317168142591728101222047991229135747895224241566552693744168739461820434951276316254619185606745179204706367922725198088137556533484188370541457998033221743895015168236092697812403879696506328637663599441330686656658230091643891237034131669943944237252590219677467758427404864835455425122074660306360291019423437013007371582528176890942997861362085252572084979793544844982927473347838498377098894402172521396433046002243518599792474081504774486833277641943313077754643676522441185122853141330700829632001219614614734503062605118043771370518607764718596674558671930665016031416827966409394250049625940002185246879663992426016825558436859519400398747936420057941458424708758423939027751826024949757020956834176856072269774211602569234530068219522273646874408626142025678425308255473025454193921704894126371421394592712825631119071531557242389342344345775830566343279808587533452482918703065038902311352634288727859984645671261587433171347427612258134924115803956447030965450802765764966825845788741291807649018709497504054396123322010322250751544960745037228204020302779280863996366097045841857678580244810264517995078785433474392153808443356220735152494799251937225162204966809891642487174803168851541747162584742219766793034917712496886401001023987675439642923116801539241175845719337793861246737819610112507276961852039347416109444166755582658076759473860510824953981336971327335160781629002014437911190049525730052334129304618074011054528523717457359691463278295021100576555145291462530767640191922242491660917544018662594143795682892291399449648261792601069167112982714381155662920730000699136325932136601331390761608232650875895037229573176481881742751843750570343616117471134011746489658985954355292580087048281400544463867957361184415165960435955311859960640691606098709869218497863775265454647464285543672535300226901220681311456815308053001916897139711087683366711513447629611666375352972896150674083051627160392917475509768118705385626655266815136190764812940334457174533992044115399776488158269737686247960812980173974789361390426004936726471814620453793784963006470543721295145602487619956447538562009113892872299540151711520476835061667396986482057867563319423429936380930697910247877416810863767978032755363214365055536531881808386287031806692357167137205744255974045623119113522060183459570014553986193972160564214345928214620875523580088977128498169635094530945831225261701930955238439507385487968735680468231239599212122845928080129559076428061908809448721833337959700283909354449822062563306152236276660102573729923226053539276054544738017486739947262490669740171019259289143115197247371384361091240868817285229866037677529583827832769008103177908973804700220209959396598181943810802768998549117262546065464102366076318723407668095976739215748876614110717084958183351430612768073336792674422796401327919339920954538278820432625853238673593241470626626865811923442266288706744579604615458118279787924284519259747781914997371610401638706307073189327150577534665373091484628988899693104306579536509672100589261628695945086880998326334256670363183318222951253854978223823192797388947421479182825032501263049339145504331779309000808887268329402280269717973825261643225335077796560115675554430001421178902584283349626500111199698383701256346910796032533030835414403992105139013910334674758385456469506096248594309493284402793911582154128705063500957627413388198337750413235965287156658618401464432861919921150598038097744448064316475662459502501394618351861531197585807124713001396109308960291369101685341077851476238094455808500087462426166284559512376320404811693463813919227159995341912157494232359363607846300673632687696620115303719742209913847355245328902412340829648236625159579143967988266598104205144582900983916089822768664633754909788609308544873603487995099591848442946649626868968494711545376587871927644613100345096580267288120171746442984950776908505347343897604469276423625066659209124936268107067567337789911903073506213995674432855613765102885790987244985306093723462582938815890595020127216675987759799849310233917922129633079577010254282568871186400066545190808257472908872171567058067668592761241539837042185431256742805847244751887614458270690016325816678547651242863194663242252917915528265389849788440900006394740996812377332929112765853397320722992519241543378637212269833858358821076671265473729159071580456202449209766227709225484559241471826687186788906687063321764892091332310908111493922969432580884629452323541529014911048513491953745185112045625065312657579417141512414838129392671639863991604277424922020946218070225740592983444163846602467770591992402649108476131321894786454706767090399035777573367016016641605024890967639662110599600725593550957701018984425878077309184586496337066533088723373522734474930573270951923764537141534291164894947427112630361582211230308214689706783716656054544252103014389206218364557131319603938036014006042736182941656532826102628321011245073581036299685872535269043113787207162168323069255896027827177117942007178610601890720616477454369307370547115014469512262703243514250417845382851775994828108691473888316193286245255682674726145700045061585176319837005148304782200716944811587610010837242775120603836207615659573795441530421963571919127141399888326486562141080976776735341852380067083192989902259301136688444459197479698730811320413135451294211037883522056357878089369087663545636708139170095640660315451842513782931159329550664051492380593690399751770497843854433495142298196979177228716371672158991060672102154716943729366892723593280927564527279365760016888062390571296332472611442109335899506578686949836245819469217029121550933769247365459346878666336702497016965023299808088662274417309367764937599234246404951236599062225777629627987450610468045441723198741991101532466585930115191739067018250568151549049983823415154984534509183916524075353707251019403036464919814511657281232689619165905627869911954685837432814104426066522981063568489563393646297272483231741944991827813776508038590303160899149909218867114582045188617663179768894049465586316858358561141275921695764731579589710390793305884900800034399531602796858465465531559287902644213537149725699358357416371953666074160613948218689316580951230068626967383332489462482829679911957904983248890797323311481242267042406356534679414003388881567214303991218836334918649265183520280212447044669415498469153071665974387977083953704558690550010870062918108052586445061216287056899770086455090521744479008109689135752742002266942862641914397744576224221337649756525334254271695856982594119124533040460703579637552090285859854151620955727812615403138739392431779001755916589213907941971608617821636662167940790881031157719918511276176685984219139867549009758469182207432199992482384792593806986890223945861498596187203928359871769324686034227877643639251458194387795334048053651664690570353376042453890582701379637884816294145894776902706923253935301256868175630084513155633438850307704077898208169762673402932814420999921565604497652258333899178779114715973414602791169005683565770324677894062229406123272299148499006809296939187011221289871230519003672571155302359592968211621758720498382588928754457615601220351658836243958109160321888294500269009496165677070737245811999905367428531413055742894389271869991303205940839633201949840901237666679233874996281660655812234569963550291889616391045247097218225359710266116457508258717800481384279410106211556450131102699455752428827264936347330183723684882563322772708230149538285788559130883378631423960353354816921459967151634480686811651710662813378750409516407168188499676187360363993682186704856607765935845727364024443424471350789873183581575704635221174361903282602891443769237040189765115676695905124069302684022813011444686660198940057259660947781795015472699864068505091991622549863928165654719046766140927340358512162057178506550524428686275191562285605117573735479774391568510354359077692625612646639371775090016174570138227911156137972953186582810760616669345161937940868192189759174093730949026633003348740768616309748755060912468271463448354845583426847476660802600466629625463833246313546622490196970442423790272920933407979875815584351776775385038664141252476047752351259201689681941038166986178347884501458626720291238156615837280221850738219316019265910126752865042923268754130703894612320342783793338083451088016200109973365957922245034463128302137159085563128809405811954457552633755830378351073813146518245772312473860678636136408310202234968810258932562642873544222678509584968636264254189770010487717562265680101366140808533603645096068554533986850851573503534061254208536038301531734358450548309463358969381891544921998309911493498050071802417850148487943112068961546211101136997587984775968580356907846188647765233388834505696275678039244972225503753759197928801570460165471717208776084123451059500865673593277913426692382982438052457740813601279996968331515600483298587809397199299818888651599924990433356134251130365633977028506011462324005093002391084868250452867564219123911592935073937731721643293999045932398676656060923896712365430147918722989003490805611499583123962411932572412971119453541134545144465628266825039145459714049988599335698842477943551051683144073326933984856590326656793238165702275914387397985813532648424639755801341302831247789766201557737064857423071121421517119458853325733473800401662694972889733442614048213331679049360045267417737873376524649317215953081705319115559621776736513389478371378269548644030879464314688957365874765370572211254402735282942874237704681015940856332801835269994084895731693619856775930261425946825023041431739734209308207874699216243124771973000395660348547975848448867957917978011002520184973189896811604927970226176455354782239854530155098264523278360522103395297423281538000896108930211635694657863419873327072098355109808324220355516639667460989840272833348920766565847033556886318485520844249867853111451067532880746050608961516809487408784133345986369884066959962793876377425876120801498027052597901262933570694272917696079914838259458426026530423946555946977853034791287937070517757651076224109416883239182449698472625945341384763902504529944109312867492844232830593560653779099574885887337521766598311173582124644583109003473523470882549424329096765131241897992089236275292651799748295547730690582461617148788107940956269044015206807064218533931420250992442560683945534837283423202022556267721126954586619948237837512880989816812762116791544734465065775498950148778706439946817520516009227433111375688809275352979223945929463211465099944522100353594011278443946838057090314834158615349876861129419280892184477462343988718808732394964110641529891903677921203818945587931242194711356130993717938456977001555757287879050967160319159010593759432037173078912145553590255920775788912455699813173365265272537702871150558325812006485691219753066585666856932476440308390820002761855863992462739035207936167077048757313282611560317399487834909661192735294747489955456110170803411639384082435313638654036302996824580814688322254204543103824953419523953293298691637155957172618818932572721412272168471100458914456994091767268710839051419055314643400184054773042246558444748557375024972379991578729441120890055629259617168466643073244994070769349920152964985131319440496465133779757789656473375087190900832814992341317699316197708104992800529587179400143958739413499224835725530956359228999707172431603399356404980309020125317767758843422662366498811433741870984803645395450752928001532440416375373573774937021145951439111536239615774379252192807962788330624852528558134392704800589017593400781274260226116615155200338716994419511391534251627910065449618280839631043240702899853946794491253007971587941650234099137579682657438028429184868958072348362587408230198526165149353299463150116971725205894756249803566037482284469610856502058882272490540468736762243170830007197659854716808321172192344020058325908302573056959708242525033744503129195907251409163474315497610035808169017446212710721842253012330003701143236254314055573364528806511461265355257390055296574863900699454921882634154145237306633881943674018247797114683624863703976127164930969289406632000538243109566419427615013146248077058362850556180535172948808115566893114750072753194442022477026405916178831129771334271067554864446356961575810876690406507759278936608526730538724438146592299511986557299728242792477945900468877855628843081697765573533255116379179075655510806862536858565456704542769024956323266148725582206926291991948573741672995043379317222000588143512573423454890293999042743087432862576197935625186988827272320484432819804920734408763826613341982881642043451421417258461411736742811737908483976963826371952980027954734541513380349596201920547214159932948330546290991203350466496018818241530572268765142230059796538314544259721426200496563318362581275181426192786004657278107005674707896155944240702294879600170563645674676409033490589374826866763476408399707854143878751936268914870414575663934880551290135637149126870854296377782090143314094211257678857779648527640046014397508249280074433789539411720726194538376974407817724247322084664825514950485072121451067212833505000763246765052986090292320902974380775013465577858762211714255936767240520699547553863208914957719587373898808025774258573566835517335060527751783880623887741104164190281196251610610970256671217329421062125608905989576389973674963958379724034626299581741707369254384217327331073719547399689979772023560913658804629473908583971388339731661290915986777966649379191905272192795401365224739498346980510698483572202424679711901193411992553801977852250479968646517200787241880977360549816220546381251068924558719989030407941235362748337788316160393694276051615187587630127778912498412253667139158737407921373949146872294880732539682775311986381835909242932808386158474086634832426422754907979216771957589815369662340847865064423794921232532696797887989046107605381162580742665540957880670427346265292941418553957439063684711253913470492386065078553414074668502061463329324119720349620837629671158334361292215553524025437208999329487290755060417850351337914492702917741494890229689817012113940328754111581725269919554456236429952722112649303195358673366048883799170623359321894218290367889323203945134560538194949211267015580034479051477232557433011793097982347449289978028819595650352315869826427168853515414018051944647158449618664844836263370549137201069015453028276501799524738971051855144985754870618726963300757557909901918553300130580364218598487173939734157163780636933797496643480476230649641221648045596404170387775698916591817002051778121254693518242319900368398811346783949769076222538375753137263679465862422181961184879059592103956482060829989029224862155405571645390192262948105263228723679123603313724595941563741552648298986108609636053808638544635768546374448858538972985561536048601110397658687358742507483226222291367194598930512601767427212574681147480949172867840895397107543369237486532735446946753237442539201026600177040144488998081423464662994715983032144568702237306934992391277303355341944445479823151704308464886504331949192828403945008533488785355098339449601727976506022325145722913951142220231517431958621068346868637131969412629112302493257033148249522205034365300597262733324274191589223149150387734806744736275965978822998168139545999100246210110956839192372162222020888859458246384245134642503836689467662188976212799790768578941489465638554304442426387881151061564567112542768492231854618385583554719855663730413080643588545943051840545869362257186040570705907757218886712326927541095143177126242191260149615810246776780211481142394040277583584553804393827140213246827439118576453712946121756036656547629905766450121799960007557612983150546727589927977069817168822229724014237867794771856949156396723212956962334944277186812691402591436726766499363820032815528500057872662895746861247807534714284790144050034912587115085255886887114855557466385745358942044714575630235258938817374733766578748330476352741017660771549855286580188448628114394216773795030246051988040767773114722253913459176742228782356671815511469296693970260752367376146288931629922890222706917173327372343576272803313116770685823563505422082923484496779711039414794538314851838580569313438886838992478609605625745936062381033873339303020036466877065825615142947007725555398462508030037435392656551336075550341188487212565549270619850518987737859896872651947093008343101486925939775696735561300303357919434288642458583004749016839095645968758766643507683764034734296626755408964805683008180553698229932914938901517084446738592136766820312418214913355024310768539178408559044402816794081016699473911900745058677520939655516789739388237327381424646721572472975647956330707213734147030663023950171304651860232573608303128458433631922422009014682770043535928451245201332265779814802451987266979318460094661168540209551174636122084193453803322506732949254127744582626213060907094542284394021063879476879556891064550288834604529497950903501096604218707441143368532776372626127899700573194883690088022122714032462224998439160823441265728172155540724482314765445712711987264743321555554813865433669473770643975040581188913526222686023963950447838775737310009972441691704096528530486129145379709634235398177913258025070699569733126254303843542487671412098760926689346794592678620947224810351961982393318456128132410576484548034072715560192830359520889895645917931461528453170292081390270176364281063117087836435476861634202132587174425867444657040756348676437991471533308211291829065554990541670675651306023845342068398306601012566973607430760323370450668551843022950477200724182119186994701885102987125515992412033028473425561169392540449637914031631922561056577576193646254521090787476971609332983986869498692295155876833017151222228688607004685042115423186357364281543991895760362930233748998074408886678049033043137187740179566678511537555100773510742331934344128281315305635085476775885114392088694462575674957844207399537853461067567177019304692832712338092108210538224774728350706175979083892874586893749689410482852319452801459516951101567764199300895931840678218719800909723208586739749664155680424392174198777705742684964032123242566369675090522686519236650562691493470319680474369388855858015446305155200408334393355723539784874338989619641542953030524830153948431862451776621247872033579834396197759927939337955214360630773903541811645234547516443774897424583230292584278974191904102106585905697959027408734626694241005345766611143717251778961770317806067110779838669333069210051777158420852888420505036347966059104415796103162677238243566678624186907140081934410947335662302086919591224265221581852108403216210638306989952992859849075494739651372091547178496410233741684226244999723284914228610821079440320629011986789146204426205820978716820421403152559862041734379891507042242893266152669311706729298631949045670912743892791507380479442358884664392666926646122429624567994129504617500875798427113102960053817819787893769473958914742156640048918064540648684319486966801417503739818829473545489026106887126466776157946168597082090410175061752776252136365010390128742066555430867377056299665881395471569411224567008706308033124087195929623510324635416864737052019822551525877734946651691871659590839288598889871385641925146706178405197426107587154185458481129643907475525479078212548944693264651385732988791014499580358529937187937342168686421494112985019470072215896165404311588828091951680046597158560276860416315669326795666529101704452932796399585176791902392438162719367385025544677898361590940948404087558766830981764308462236964824051768185589795996615156888234178537881472397292844098103607833753060868526310175344442288582081552253228729720737952789911051866499239940462795139936316922917266147444090348259469925425975180875111897920021701699667845910217717219564271390373081523759989774097456814391565410703096478532405334135623889827064884011895202537602508966683338758045511299346221514658583447458874785057934195576922075618788566495751761136063857139120538876666425477084683459547780522025662104717639474955799437705205717517589355590700912112878123029969011806124119394303780148955097198700423254125181550012096549151169175612131340004344397048046364199450823464178823211551027078375098974804838465568475715523838211622017857217118860865979423058956752622900383258298847933396398821061937585254431751813337213933908193034071550626382414500173978719151553126757927067540500536060142677241484036542034960150056114686154906181639255262425013490887019426745474689021207878422378630503034040184666094900842714227291336918758248003833523152482322259489553368771076471379846996691418496628895932713450269800353966872822997616951651566667789403218930088924016786177887549633364372994897815835179503234717926498824022242240785649485955088264154209896215819074544860029049230180863948878349294254667408368121318232980329193467680713534900546184847168003775319939022819868870030688106170762633040846355607746698360074157304772761553661186738786365372622311770728058664976854171668486449084462991497974433862585073034668993611588324829729640458565289393297803612419640906990528537227741147509232529503892923418490551996784240098976452969444462165150416549931027737706840694436926569779763865863041646478519175017088260751107330725923745292123927301724703660000733942316792755560185318818841995588149853872949411963319241233633601852354731411710251921976877884870468053981243661528365517949677143538730743391412028430959767741986953996234491041023794527205499797921596678580994503146091660839296913881498426083846034446993321041313364331505383553354089987789125586743357957906877305416801877496884453663254572601782300615459311715845789730781575483145732989207870305552928689858763512278281160441028663937995377214405847660475674374405724240058475813243475906996278423151320681538185322390474793107832500157022098151645399486586959866677408455690849816777881716126145965921756168377363551803538313793279332110898969731177975533175475904925013304535501113629126482996598082085083151471478179809072936730529780140969172092482422175807076858958253896843302626646397850303574819600830206306686740324661963500997859001778315657286596563244955348098206871775812218005217096997695675088995381837531454030529417700706043332163529181671396126689674389429388391415208078363489706512196471047973300888084852407722559438952323959129903728282047717673510257636857342934096049574161748786517821701903301551548078941479767331341101150915548197322686470158666958244368875603385697212838087341473929328503424858839669701253650897553127470878634009169343109008484820554740600748799298018777187313954989373126338415265284610497342776729961870153528257633299982096057534545993687268524191311162091928397856330991118251821902162512893591505150986564952142503633856319271471431434429926917787600653154096060097498493577271723119418172318209571079320305966809191543726640862108531897716657999622228250137404591880961301345594992707822650637789941302943914545712767468670260360340298478497682145004663170317146486196062809465677640339097013892369574788389711372521645180206572278988943102800035182377121609151143253653579235677275746927625353939537291298304618991451634986495932093060493166637332571551881537108870030501968245918985638409979889344497753182265291179140462298118066225172621491531630593561387166873424701934822930626778836587945836081830845588868778898613203080631556208534165847498891196117467206630575768734813849413880752277075310654595647687208331349032332386438807833695462872273385687447621813071373866677470534270794849716559606208931323092906905214632806059275768943068379018047292735908312213394626024554598608265180266241514147335689139496291778236240349226885667087890612597563133759617082293981520909430767826824859841960882604608421038705623585490303359536783307930365372265206975702567637160215137479284413243291278809835975466750078381956647312454677445682420814011607353672517670663615481784480118966708347490741616214292723370333043514997362897158015925310939992940088820401943323986202916697979467068798404381998469954837522177048752854923955250113116384995653720393040988522678354019881096942394788662151159280294596696853297113791632300898059255625171425575830832327103231645748796502850724453442925424337810483865289610341274198542655801805810652510139874128652472559737311112389551142363828233843913549914412924086623969139520277220756942676219120656434522465962920512009420445489795708072988713802725013979637627858932104529711567947096820054721253902797532797140091883200686004784257711549449394188371415637380620204024178026534367088252460128577391500572524640278924067722888383710381685595984445226250169027221608556070436870281518321676315240418156559083573445631314232072547363370718656853987823358325578761117659407710631335182050445883715897948174651086235331070856873250237515527448775807046305945675725865672576849155731165848188265552077772161730135165207675189719604411846680355524009277137676646457054728959846879638659122597062933227168094208406309069264336924063372839956208741921239243159881495139067162524329309855248147563609428853760560413262532094493621056680559182624487404815501660874391177448967678639385414137419885407222307157987111265950887296761693027232957243054492902023439251101951462085281721340524292429508228150403194348222692624279695634602145282945282784145840351192941737048504160383845893653226429071169596193375753357203164422964676996515767090279235293225952968400656936307124470243497526204899808350332549266081311227118222597737120706471201144863214951917734086060843024524084561141266370074727717777112302000853776933716263315739224389574315426828806183344845049909400626456317336219714364628140781880422682813742348125614971322113517597516512546812609533652251577688554361711118172052437770057865726472790185329203469008467949202108326886357271294926682315826105305174024849017734767381302361778811539966344781528822922693472503613540993416365298245603783134632943335098191738418004331676499302754737283843730329974563696835858459043176840802655878682950110824673350813090222941830745736858879462473519748996112941655462613276644326565332589858979533243169627603426430676559972696340162489594617484916033210968046841993306493097552934995747570463247268294270616200736180985057812219961492430867422375401641112539412682896256266397346724184514568059001847610768845518274540524504519244077101388647726117555223159210126897175299396021876333681987927708861183121555321553789707494680701785743372535255422420358349066714095550565747861450350570632440469159635875262050977419719714825507580661437599212023314849356570426144167567068280563202738933343014279899261722343359578278576444422701632657963624282495700668859584801343953891707157668708918689153400174613064483161890044497596300950341423890684408113579735208114497003555703690141634484576196431539896913964522279622108267854865801255378618192525593035481973272039547850605907042493251985925936453472677024920277803922387245698310528199266333853004665227032930440297952480645947171420262692902547122052433076187615317731331000221424839340513900212549137025977161175398257584845157845334859237418675624997319919920166248821312151573698884316696734615996162690670368662671181064316156557177552575241801438546076839847186009014712843708057285728815889278354921788642786150057595753359789218215843418820939161209221765087783093822060991342392037999514275970177955578690629978083663154994547391902184138978823534678033425885649377277564426980701805209333735101024696091559588858489534718973423790877983588881401421764636179374484561692584679169072181776959976783573068776214255028499460417908055260417584757562795142981165570822598744539225341728164727481628503609132075162199090552417980947760846566351628962632584595180555647235250255177434725838984621658178206363102983609607844770283900443116540133340748586787852426132110102570221448303321617489485284982904126512120803889059250594578684297946193650114692396932139551094477583122176634541665183237852812050185913693046172326322442209633181039297299793074316203772015533455231651838939134358237946926628496996102069725179099348515305441019870421027856973850676414079854501692196655450065537744435930902385466992313752760655195203771471130899400180025659137444598564135203406624849322541263124920036572432486318723430630085452122429730138246986935216279243411684139027530409408635083550930883216882965286034135783639249720364882516564380119209086632445435600627403212695828624437588731909987631322437286516659152826615566822485242572797229929813198420801182971066058120644838445981699963839488052176710208770603095489516498140639790565777548233761443248758620395916216911398578073844752183310437529365547536579633092436058402988099352191506538471603499122609781203651640110556197846043061261411713602838793201123196640682465800573156534560761273372787782765044920303800469925536992149733591561251217501446354465988507996674926801265875791265637494619825782857006806253813389529159029732005359635768547202822121043578074198215406643362147548844516607491197019372741440924094362155473565133416591106845631659737475591602698998341899442851878892228543408054102192770436158172294272439226185910789566428982976517986863823133247355948076951203997107274171356615272913425700204610302358915157037503918397467623171610896685982212373468481242021535047624840275917810188251477978444582256762315512093949358755587908555790683093215093197340501407896682971299082120730490117411083303561929391376990310950898212410637516445210887069937008736948085503478953432588476905652644525383890823737780469958800128687249264776556028066648873255467462122272108819959182325050493528409597931935730019876739976749161553813951436042036150835353751773251898702018156713137846519486664733114218780231394888234600674968528440426552488088240339710959317915710287646855267608184411041227885303471044322220835697747162075784201225597260069902144214162526370847901242281489062655463233166871821044385156357894774472822883119503379883656910009987057779290768707816240923432866283011635177472773996745834319711130757950967078118892651465326863356436451505885035670960077386253432031302303372576987449641505765447216995358119722083692860002751132611838793965622943672335777324909035419218591915483176320783131892111549685816413492407923538754372307478055170689662404805405345087338052875997823103874955440783030415002181739743410159524217189273816034670733109920786312829483703054266448681316471988125883156445105239978450270194790322284270715655159648964548078747024429725108938422480850731699894234403977632903477114436658950956551311408521109789221807832087645990942932896233920639434980694768993832142176045260860219021884148039028361563765350806072972286029538180293434940211818400300240680334205724405320645918539571790260529106756217030636979421916603200860046082389005752378919499031985061405793895700529651230062220017593012593510616048289749657647817953583564005861230463612704433901428611468534337516198495466809068997653815432556612894148262314324120089133233961674352717632045197119232755964771622680187350680666800624805899106716763708546387542580191482454389008325434077628881288357747359397751413883427884437952483818065860931054762982917330359660787216365070534591354151605805243228599414683081964411513243931643052033828888821093938682924066387260607104996876268917409881582544376020196179174124954077981752169202122347251577905748159171920844881733020427181560440014377112071448853243030768374192900009555153379738196790665958660104398175288883203355500321822749405762790799411761369767798875072618341851181582754454779411489405219831717831074987868785167363502712071326608824862408699557106503027802794743986549989279461232675674525062507202683652753230239500551471010278967357772309388884820288890989514498110850401435177507321392774970048596238537506052888115072176816503128916078978962473166320083254559402184715770637436711914952894585780056839944879488610862355452575802149776975398478372624191404435806871622702567459490323492953347906971101967054347163050600600340862267273540404855927695820454091833697491536343438170682124532941768255434290238172630232185962936389314493474766631557401552758291408145182397580782798502148149149537928799587604346809148467563572705570501503989348560506934083641968590033331336364216674130563474623736223465015143320181995233424657621911441650970877953807687311053457828344538808870066482050325443958725101402135715261931278861187700652690377924884546128246457159045699583514733928036119905690289944156100853488704676403421725360576608563993840176356386533326728915533777082812266675741589321432745488782190803993123409855190809634683821591510920095878390218880027123987959002064618757694027366638791147674415272422949724168190744203731764419758297961870831675895142490568304231584612805991710174944726183177254609580309773208970744604159670855596249212680652858302934612748589677554782994831910793396110962530982970689023668543438251723179458417560560591974937762860362556794604558339916094526552138597320473362809044871719727902122703153007950140114865581403201115684395129254853398442721059108200944063053819796485408329852828499195396265092517097600208989687354615183021473114019842654758388545121480594281371435619184587471688549244516992157093539332560883774901003107572647109909186507866605518991309180239545037363517745577720422400120397420810503045743115998548490608483889076339957054455930559782316094179348297334111348110539521261084575156713749052754324746852060884374625163290921147245828975763947772142461331116644620049340166441677239929034616843618382910569289032351319979261956371944795866301579374594616726642518284133591578685124212806713598190287163399671576385246979547693474902565901979860883662977926437987532446672426005487339782275616225838230678054295720148345140055842282492858668127451807739803565181015070776369685155275126839601295255393048826414456324076742051683262004327378984392381683021741180676398733548736241082102589856561927690566346249507597227974748055493603954560970646816730064000751333150615733558596607479999257956762131086385178263685491165791219025497481301060475366481368919447720209577484748649623018169098714012619157577149892768931278654114178190984582597934823936780989277889694174890388513824670120249228485061207313295073616970446493349750634358312242903831434699321009706995554468038927317680642180973383086675013261140367182833390959248266997909921043347458787853860049425317015945176459799598659153927413663187882983013712995037760965221253163011826774886160844961089059073534966797553738235420875231610299021206222508016784788675177896020854812594293080342277712112238505695441284781156300063703302513545780796218816045433460939041713640472695243808272587867208992031674537133749935928023552948550008495679302089853415228856019704150214314644839733098071421803754026001973859790988940140029606379273951783252521886160921279699114106876212473029482026359300457674219508322211183377030117446864904858532436228545900645639794380054249407997490320360219462489025264967611751588031919815065989901492803475641578676487164560278023906998066439894267930395993210448535637032493447341888109009996251912557468460356254795859597699246543264794298908170188460176927886106411462971609173942792489697327991337442209009594559133547662172246055070401013173697973266118162201832765866913823713067510076402553890173324895236019109424406705551467099805059374194736713907620353274673884457783733727225119149817306183562824292328683085273461274862627628816457649391006160794149460610694081126722983739849162003129540250441972389098834801852898889797973966486288537753622610991494689741707481812139333776750216838289021919340780437401907754065056965529203842918468079677188712298177363826170426948762664564069975297474033189986748488076073197643043900894476236269388534178445788031589099410913345632907174371366746758279773780070900065799233958429796065562064095746256513087523759580090910031031765508342846415679937304132353771956115315156294068976710074527540143197020398633241852683641279401989962487802222562942195101263237383403100183913467852421794172784740333869891431318793279813728896907747871467590253264623920758411020388794859738058409630723322785668630018789358340043815745952075465645161551847356456799595169283452073581485740071900152343507763599454991626089787598311244795325832510946774018755773436869568865603893466388201368241575261417158096096956561403766261208744629726534669037394013300082825667036561330232549075322642727643681885300114635851396045403529249681961985916368045713750721035978591481331698296763130936036611124104255160469111137759156498881046954447770313026843058840951981502725101827992034581469067650613673237174105139991446717030431341842069458869364311017390343951949466957265264829270700138715115612249091052949765849452587152382684229744346713554902587118245589730816929960251519642401848650662606774132906153815441437346447036568053653417671906628060880575370933329289574873107026162397528684357920856366891424316655014042639288326104691964805869717550859995301655500912560354044133376959790848880847338916309069121379771809840387275534116815684312283367772309247566156429999942837311394665050938723895907403874581665188878020806531680603622825754228733369200674852346962169316857666700360341839199219791413828763652225103088039795241836878348496278765554140017601814379098759478633993268485029740259982781596979246031002426694287746342468508971275990993945294273053075569940242673551071229977863654790676220575268599745097671080193280995392880551798538957100833056229210025755481001213917759402270844411997162135228781670200274154626381263328860033440697747972978377529588425267958878365644486147603622180401467243779378496109385374605642773370096558019387801921724168142049885671418929670684946699589863843233178504954175223071678473971659261128968991352872100970215367147482683747532950541166430908432345824826380808329043343869641029738688316222358483757489170441293936736407720297210177010875929562410395481440864835339022734149388818979676248739113601095084338998153316181664565781921337981114001811142429814514894278840674095249984939694674264513837232522851055175147961048330001664590575873697267579273132023952271564238345612322287337094631122285316557722768318100314400901808752035801313391153073506551483504834253283881937330387394018140851464387236625115063945202539803955198512561006239993758548057603248985463036086957442395667159090021812107421627960676181502388015219068886384509154182858773151385335737982802143491878814670398059564620400848270340580096669562360129725173643378170405172900039737730087754769157502036520455993777956354417518448129706698448016652137652384276144383313980708363208992316769354364638627952677254748146105566752811219981567981841260327473742329865745763366950486096375081409349887860601344912952885317877379627594877086622381783976882436198269127850758711859779838878618132207295164161054647317107648182130265841994357461057281036900813787686159120648498692451019662661256383997891078910099431902529414398808917861788667539072552232506801865436232656575681466882838128134834821385027210678957199744787062086800510167094931247695851698119294913501881870464541627156823211652473756981861406880810239748987516192701603795293316023794898079498523414949280269827902638724283724552686699590463764348118255981533020864931465975206060817367587604201671466752969482588856157715687901440803694076452435866807136126654638668189790728965454428071912312684672315259885820219892732004358399437024016866115776822566682889965701528259454028505282373135431184064000284836388324632124147031890557148480884916019898427490658837863205786014222443449966594695211619117822238580543858267153867175069599521831049380349765422702136642694553036964144705327087447429844507635791978066175418651058154419802174788494705338379400477618278544772932108482370864622054878951237538102927279146891502371414313183041284797188019058112509623111883002954960568809231536471229419520692163714973733404571054338634438662307255276855723405304237858290602826496166878180747043899993766007046657093621656079566552997969202927052360142760899880959321879643437544270532260953679624218594792455513936330077173040838801342519751736277976375104109954818343135612591652242966285769571379724902129660775679597458830102699076917078742778810713831694680193671219506329887774228186234908899733124820066569976875195630131119520387740217828572490242339150421852437729481274045169967937659192835315138751565873165527139351720426624000037643112825465197255024173627919290583582335909169530095372011802638770160463404101443007971761767209681287301662091127919316566983646179650567246257524467484732701047770037032219924673385062475837404086131185194324779073594322065993553187015166905803154991988760767220492688492702004814271297188780274717118966653575471630310677291915102377360417259647262713104170206953859471752014124718508047960400221565037476636044003591919450231645454076933901310103218701309560701328088754379077169536099516409071359193063428855087019009293934244125852079702110814034699864424031314475821342334915220481769812546813793103748724083389422502827688109110874888211160556896587257236213016210015560898483465534827536589243488668851281844719574372301395219876427233003207064022785773334812868249697466534755601862129067939896659266207443598649548501671641861675030527939094037989176954134978205968482814527930588933418794492867243844624472495673326133057536716948967684932832707762977881115123672776873600549636406872655248785118147426056923962656671427839869074398354989061897602416455128502201563505027750856552868416584989694166855936221285783967584991091965707039386055987255268122683519141161647156843230935328328791731338477262374520214495680276435466948721344412361315612245385776197410863309258596019543097115208198583994951899356714908875680582242651947109309441705267159957779055458691877517528999384521330580294126635429355938356934119990955863364317655169011637665616515915472095164678812347819212543576480989650307106684394194428205222225928464875524345709511148139894827747665547770455163583306977153867201605836306827977497868117621389884769469408823948739503528980001864748430677514144809023882726251796425115938741837725796886329240319852951623846665546671717805391139054432186515434625217278188313701395167214793856257000019536852138849912893210171436715897081650689151627253540137197286083582030157156111322751311215743328106160713518784196152432748852864758209777929931475117644390221558936207599183941737397828543476077788622006428974429952274053239894648561448066896866390494994851481256978265592431484975828051664881393487573426953457834688351914719400704608630907579890658905975231175210593285198971639830443954416251825541964518986913582214865717698392354673839323961757042112539600090295352529334353605019049631974115643619825786873813153021106733344983348272234884565914972510964344230978623773418187506535411601813976241168064669719689548099983551889821325883384151635108180035418188127599605239140684180460241373471654003799074540981427628391719033001046493548224520793179814792255899576734402446188329885993190247169796960916535817237006012756614254385720168154027121914922046075753044114700592989622728568285262741061710726476892890368982711788693158939544671380184649432285354162823454553712684144651480146973527799862976085480524107911240694282372676433684945403167866228915865708588751848963949427373561812374567040682050108003048617519982380825785519953931404964505125940551488382992740611671252434848519938784877123943026164828235053760467248584294082532177824139020424768521217223990361483141847115434007931859044336382499143391291101493461818618206760294638106115617991110119505653199633760324478026635800538492243768744966999442752175236292128065569419126507217409266487526956838139244020186609053369996896303789231712603747461426966368942101030583038985720300538117129218562142582075198672363735396271919537984557379738703852169909482350640572429436257702674138856200934450278143375054372940958179393211389538245190609432000007491488913666257158097756196095600711714795934349472715869625365519871634039889747829822095279842367671492664599367817271403061452329292471107382127221277032537283200967136970851460783753903768291686699826383069705160065021749059083595919844264676265399193488136981516274502767814595665581009914710340224771209047267012018032034021162168897365719914899910187873077098589450185326471477586505892931032715676334151655641695462141430472115882855140377187840315223931096238933487732340909566564951760739074476501716117302486192678033900658070600318597826666679815553716025266296700340780164148851062631693909616602518978610240688819990625297676382667925870537700625906100788470226848730489219430219395313814913704644320229266072642671810965725446195443358628359126980492685136059397336053499913425526720801027224033069541776512572542491539718487678459840894083444574935223465796019332353235771080121474378442373835908599284061586500831101738947539703463963746242197561925210759384628400737495953069231529796040588037596043873449356873523482180232718185321538000839516889166628950674036851947096089358017112227933750381315534624884418279305759461391181102435797644609214465816093344758826904650373856924515126401462780849131803942160779246152418762897689084669144104466067228089364461892264613304652455583601832637532530364721845793441076598086585445351610838938812733428873192478940136081420483427070929488049187005343857946709689849412485900028455753696306917852502451773880485910743791479522723802843520074552589333382916423865004327049574444299993575362152077690100063789357171715763756278518979280524869458783384509020114672702340022597112870894073518857418658933235232624483334304422990097221672350220491426919016286984355226291806485761271821770915433539169327960509748168508476926577731397972812243945439313912289103288249310483069928466032399435021772305853544931194033059532645950182106106641613751133600043094993094483043132189016886951691763751070580732450752853300867584788929909328049979048510804830128788580864851394228869751526924162135312070436633417507982722305187978291475922506852387109547003374063533569148304330526657660798755420702079527341193625601836044688355114523919059101206356641784610737937632689207632121894093815607852411998020159956524834442776145126589274037629486949544870552875184382932840108226861358695527122939658193155194667042252456605710051626975067337198805032879710932778723887006769897910646479631348446581556205663001117711260112980270131453393957088453704567311422231389236691736989347571519985771861823124328588177769796842189034080649202701330212899678002786718619312996481382048329020515787380916088456178953965294673095640305479988822737736804546528950526135644616439392203990929725732696949790105039133987470893508430646416218931076661607021308141774709088198081156027365562590688211406329257713803803658053695957610430850914583416524556494038907802311013482580890775127389471517365298294832530915100925506107003140637502382665358093285281835146165835231905835531256614221507180509625596500521237650856037461193089972138805594841404324245974502203585799682038068333273717345813466615757521625696838033938066972019868838535239167940568848549868632575357869027646799873616710356028412136732494458721007766250161263814796527728232469638204355268118002637547769005254489759751625747357700549331148726141403927568213549986454901424422458323051056146979802205919631728680606070058942710892248294282550710549393127081806316883039414441375752502899940219372500113675260293775580238363165672741530052679654791990095689180412653595833068041599891195073724454596480404772954386751083034436731242937614842542175101469366179158562990339349418124889759939970635816656079413613538650620863058174922654350189810152660320506857116069292310283889701121309868403338771366502109482721504172778413763522343302891247903754376795825449209229251921748737844898634490860860736551338621333953963068335165829464012797940486043752751953548553571552909361428079109539517952317210114194331563350763384550967888543750308331774147586891142091734522155245847439342188050026023341845000139924280605023033179549576673063672445952066203934887987628778035494709082944137153660787773287474093576461852685530817694373422866529194394700409158613651894044284285350180585808428725920902376418695066088342964593113217360012802583682896234500598671717707550284667118679719948477848274949195550901305349995291510914800731588784622755714822460306330699333124259464753467256247861230716271491617206715423117684700775163189684849840062628724574014666514476067604609844314921241892133904587468881265986041509558234845720304509559427067249384019863430782754694921326672547013020315566405431503874942288712850653148325381878982115153729578956799721172964266927816127619303675381064516859315873105693055557587201247530122997749965741596241937734117516297825753372127456816804016327117960298310087561453545265691049831084174794917154697266887414976844244851254384580587974159692296340433073362956451082437299484620780762539134158072004414525273469207883849194152067563358213564592158579065831008380799686404813163979746097803159629223178257358416522273702561156921472407019931998177495203246241029117167903895219525479911284683259207672667311272780789198505667748223337759305656543317541148951662511784431758167963323593022770144657576623628222228558403444740575864218554989379270575792830853033022500323920784678957043494724282525946574964839060626475573139506948338174215452293892792071474554266212120202745181278618683671840021321567317350289631984978945332509788054459410884533706812576193989224888974742099292238969519829280772567699575597389493405867516956973229870121919919980362588875228595998837234926125713566922938611807317453775510171811041081066113691329081811316373021196868895046896800284658632501530924087607469599109131532752143697702296097963628910102286088686803124904013435245044989731514452620954476152145355640205084658529681927159462480293561191602790514434519099772191124756250598833444393073021835514036994119622684402794076721419130097973547387435275203445698812798065330133497527269098928682552427693265927626062015755690226726507644445242632127921186419894826929346367208762803487964099862807760032955766050132901271327019802074091392386010129603339636732703032261901425680850355520134176698604952018926322458285842394210972193241609728767394373814173514548680791505441939899297019903440839389065591281473099921067239721066148026113316687428418958751036602704249844271318549831033079297787720675629001595530473138045509773136607109440632629678218807019297156485871706688978828827080075663205031022204914819860217997380689654598081594570608029363042199941239525317352137704956684715804776821032936747263137692091962796544852612427277630294207711145493837418303696381037864694701755384588420683396357311140389103969671409443389102801085947334229167794282379174138125663084513452392267967465262788829335685633182874666582682043957047726117797302692455817877657731868019289582833855544617778458302192819834185723206884316125935739257428241371650850521441258582588899107274051621813012175539582093823670704508376725506950837246310612512547447652291647197575406476482788426208790228257172011765960307373640284029009002598165540623553481705776920376239931043877259929873688217045402291080863491324154742209754867701923738574784335465645788814283681389577400775405047345691100097771927034241904873893284470706079814825564156568920687574425016559508761834223047558290502450987634253463395495650240032964083882095141381972257746644020008338908588249571270975148809955291025441486002303505857420558915189526949084716980853589910144635915617363961938883060062700743261529397886501094056718380539309286909460038322957554488022396102326815587832931851867780505882583146788545690538619088894908599527005547637423309872938414415629810951463571215996432544267467912987652064477254385466564696509328755281556529402540001457150876218794824704329917489394024820022590107881498252598143139337343706813075007773135921678186387443193818535922173015446686058397393643949872530745847077122640631878593951898554810181796245416660684103117729530262405555158965404536357253035929217483198363274988208718755982775094835636712075252782707131713111135922132485255447496272384425063354092824303387041009284773777929253703174394500181162143317058117903113278005934732319521058766829019527015401479551415243425958931099007733389725311217591220632291341537184274301064929724587010514148957356396962458055474500527089748369882845452069882112708653686790202498064965383164342681876625014930601798416580823081037605033963633430131907728579658998199692985193263235297527097990844307236481463761028579635796631305144255406900870668427272168037788150860906010666288923077771506092430067703346860570149998229555176380558389006412048625644319459604707170904567245394444630876134289878780731181249786600418870666474773421378976405751970180429629805637461158430138906112127561209963183682161472044366842409969834372802681000195434970127921906576320176341322466600737630182904823892347802599469387937969022493091908011688689227936197429912708765380577837350266557321011228446154410543841738007600035583599454518456216161118617299636256794258884552221679612080263703597539320693994438600723026739836331705791782107279235702265766169751735711365909033435110075381326004874260405241366790573440703071286053539651688446018217384739736114816869978980658792571877628684520159304651926905291937492456757130395536845769697862175993780839179351158759126700293758269468745610519737098858510189250718734234619576776253238770898312652278210917467055955568257744332465032870703125620733630201057945041245987481804921836631510870685209628979798571906868190990519179714964304355270618948986285297474845139738685411047024567662655151804885810895048901309061932926564244481132075104847693570013375510376514587980854865055981839606679168247704711208229262402026158068270428954258303714885594301652162373568230549617954573107400330816095422680383401083313731522347339877927084842447929138116304647219727406366255371421198478451343787585056683553092796731045336650794698569948386349445274671809543369104082540803763544151803234439683558899565042577963630252204391919837087714826528179086249337572189389691758895635402693581665667140918966131659068973644773687242771884306270605124309233554786359941579575956470242862809126786159155854221742424705092525798878765096205201478491591678719983726689622554292281289754038836198290623248766306267813107640476523079407568718437187666627339030154911348021568888634995087089020254619675607661186463195049210592027061073555274601991369824641303537844105436973348893066777547639575080198707334651502205052535054773331067084644102618868401451737892193384223036396383929770459542795280170889116090272051693418641000661176256579117533375696104586126436435726305254197964139489592226807005580544260750371224911531770378583730965837190323065952618121560511520775465424801128634726625869063294011668230229413625251567770905236444926801494849065004582404016188294804550284493261851411676112962470168575104984822541237374013164765760760960114095227510386854533045469941869750954140574246563949010963864078954849326995273386300503186132056954821469640395724112957537111994694765884379108915426092970924560840883479129582961757982018773039213487138617636056454882079371441961343341744355661404388221029962543734785584408841410348893197648863523975445452033772814618967246791836821051646477570363966282684598693099111732491958541641982162221032999603854681098792756007930105627863446214356055553403915494477652087699584347916121364720459629375838554338241373539837520910923254459735071858224703979582195157494108891940564016672106492342582080968091899167526654777440274745144367025455396370298318966301178615231689210210137841116544896527148100720941035967807534506794515629433221202664875618177269407118279441865760627044353974034377142058538391775959402662940449592118089696982960910373839790431204971332506176706886075971364103812082498059338340298784398063116333067224264642219589341031110617191963303031050112305595594328289427604694238999560892990781310078007297441753157137878958409240336753054722785006078388828275575540011882386856459863328863981555067355795807928971914892603492885557941655529737111954571391939002494776825955934942404605661627458946112607988678797587143157708562240354988258025603617260728496022765257506771893809994521384766124655528577072712522498272331111834688169762328994060421046856046275114851263963945974372999565887721535173161437691159686466039096297405675924693877557222259353416781556595026665457348989056787975236741650632837679879772919005685677326103364835144026553137217929567451129605207873449364856242354793988607052169075296391646630981302873137156189835091910367933195608158463018742246163702418134296506459968363820103113268214660678937190252748295861222049775711422364104782420619160807609092129439492676896890488913363279771140637691880883156659645184906266533765938882437491550482984916107898288982280479679391921691681661684116879667265844324110948936503857055410098386943591260224770374840358002346494821227766574225605844690520500424400273527463587823198236924831997887685375200169636985180320716422684776352535681408799732595838318390205228782718776488263965960498390762461218974951935187603415166907890953605175317988176104384767650648656899059825774879056137175157620824275758486498456820272058659386528058382550803983517396511385365875037404197389400672358184583762491851314922796303940945187596806215935167528146511740079235869202963899818312858709258825930231176550095523620735229634196244053457991239786029254017124881435513950793051495741629655808822283586893587388283569108530927525915078024633342032606213762315453927700054378665384816821649956515310836507252447500172359236304783675995791419446971484736799688851610097838928829716027206582329790194540432691983504705164904026833054562549632026779037457377435566259051832520990700265746066256070849999816817219355753675932741168342551919954533411440600796495781695655698446769489425859091445789132421803240141757879141063161423294774254892530636655197051118377897672806762564397425640581974964717503234156254750753641119184458198981325662881033421572155829224041474986404910555129515089286314742052158185338351671851897349945667775580603309396634314553304476281372592359906987912586593200069490769919399277784128645861028168049648996328725367323804691494004984347834531928238063065385185836437146683514305212133525555637046569476568951263315898408379362064301084974709824307237213233114180004649281395758792234572328516045047425000288868232088528319729199104275578951099684725341117443852298462591855547080590642388109011860288354315069320866340021663139897076472815601651660052438673125126474000654571976796562932823236352389570662097847310255833777668226338534007473728516783895364500045408121354807691754388424439886401313853614351896670828876614947537505032797570565015857824156481925516758452411569219071612314160639256213611933104211357126687630997318968566033771038748645915979670623136891375475723860598106385390436361716756603324997752649697298629464363790504244005125322637529616287132923375383579783229691534877151700507349584642657288326655221893942992907010298458725957223789196071757430433121678724645972586350910219905605771757547783883382425980758519380849281778510362824231200351037133089959142607074275557861221153969887941831758244959522974764382624601723158160650315197255063373873782856692307429830886453834904265527254077756464202287033127604282818884710487450459961122937719377794930570117305910546647193036785385164052439410838886719714252987220021289239482977279070824998938271320683609642162942385124934091309859968679878041933531747661351126215457705677895825965442010117001582157709251651841535950446190747023905378519095060400298298741402700160417348165616782323454372029395810380002313774935759273504500982385070710482425580907005062058452466153549639972387988185026949941861907409345999004934104080297459924898617960061604064294319697143970216578782302085972811307783059966079948056042063833037680704707460826789071200052653148970420010442833856318680414775976307150708607983954707375768378458784658074479698490696811334404393703157536084844514792734042513922275449964798949741610607274549030665315391427222937124653949997568116623754104334233380921538927361236581169250741098889188790996886404518575600095597688732374391950993239549758198714821431960918066220317758609322105667861710554639360491896334159378482608473172324682907369090673079516151769913006398691855504540264926657856050127719415372637835939268175409034893571330931336060804457102487804339609387936570513288317108753432323302518187443603862014545077847910718734905959939233132936820545979434677612284817093274798254476898340003380009653244410531149639100517661721834659179989139788183451314066641617632328822700459634207325473310618573531135306098156943463547902076869351760950486099189211981265983901672161588107737853863266520788568036927043064539529333018930300367201480845617931346778802505562503512608154743760309069677971779032001153817193810596239094159272837854001519047930907789700939426550526119330299983572074001549411392031075542056653884202658897827068889028127019651469996464722405771056892142863810369875424329666312794448426668331954939659470740021251220529453512372408346474150580946699874530468958609567408317045882041395103254028104259891052103886411397890596459748719783293383132373674575253021430893275502602767298953251313745970517407824099843929045871673119041301603449580963152960608527854238833717765709799586987369330911515244739291202621349630863352910183250899373791481486104870349811206274522746255080276653253713390224608879061237281167225173992490889628440287591662579183721532913827543745314076837449986523403895763106389899251058679416875720157095453532807706969522400478891057076015755798851281268789154584933284364821682370295954567857565026341109262199363783921763373537828182670843143659720403018752308574723706545531231571277845245208383342013164598189761585478944951412653916672378247500699086137763241539940165761836301900408186359760757055611662319538260346156127227917366130205689754252441572763850032482228612330464663571526502372604033626796333815808358074215930134490770031346969079843945110694420390773468863897262903652993354869994008310053869818741143080120901351576524030135167395293413256720572888005362813491914994317782091785163458752121291381274843892489073800706170005971046598761771770553113019515589378708877077904126577546107441227750694720107964667472571116777797885797697360049404393815836125730238042155819364910228635851521666420094847470839316157525451800403930280260743749492841348976897155061248378973108613820073115347145455527371861031231382490396752002388808548852548795504852228458362714945446057169451103334271194593502967169542114032741864420351003630148887583697549211121471058085075022992442437246266864299937380443587413425950062755565516113948426481424183547341749184302586427992925866595753576391861509875894261956270136454915736886525267610780454707670274981467134342713559706882065236963132519502460687064900104708713697501483495965504434151805881724766330240295934112590991605829352570700277266237938140299708764868984553338083935703735821192909914202223757304157741478238058618166558964589142452422287542623496565917057910077303331780157323036215249230047511030563588993245174788129651129644294807607033839195729533848288935888970130413045798634952776855855432415299451538592912966968974588763643561405919510810360514842250165145081375459790285366422151159354713145856379682801479730532229731949004899444135170659350817436090581143042204765042958293605114332903459857457156545279459701533705702172851901191289620775717873332651921952811738285430605125343320279544521087199050117554483121847693729370455353733096823283165663455013465265441668310894658149931738512683613181045206636977486340493873232724995514033215469238662779782738575343677617002764897976768813053703860928794871991069445651524539353238906946272427676254819891846231114645761692566666822305127136688020643947977944880724546780305035681372844775407480182800632262085945705831044620671217745921949447752810398280609886048750401317512159383500903537393987458162292565601824163537802384459803422054102201913895212336510207266199791447465055618757382080450468419288062472612988858310547518685881670312580444716968477602793584896079555954919734658321003743224431730025380965902496999962472945426692049814890157562573035523573802059655000639216940560962839018712136346792642988636006064090021130256039692832226362245480737723504875669430698117876604309594392625038104248322932063552074829691666495132475018759047734400227115766147233119182375928494929468967026208093165622394974090386716450304699973530621507350579151594295007639971598595780753297524702671321202111666986007326023788516779335500416040078038613655218916333141092928280382091192789528818439052858116209326701206115366748221383203339195981673920374994731574402531905838760916667656303717952332374493244764879876086125052494523189907978404247459532093774195614292208758444991511977720646366482632472766064689056833788069547828705160311997263193694946885959970837780631874903205803371197594761395677266433673888973986099520486224129522012012848720459260084394873225690111053741441703352104081808463689159511162335493083072619020982712121851975076176418086606280854470770625513234268853459466075811598317657452385278047916312553073786736034008857678753712484056313314006522701551649652733808360559846249910511788162871023920323960536516050909644362113062433028283127522449902638462097490256495827844303958154102718299341849924266144287038749891392185549651120125210335101284021257480706369480114275343241988052028722179963159473921981203040484196794618115922899038592373042277102371216792741457816509946713781290541362947887234554217953221959424707936163031874045300177254052280854605927853263129625819675460476589994676612023202972925554940617453660920346481266548401245511626307223262674469041416616034298601917477855652205702412154369322915917254249754924358132842327267131675375709569147698098367312113778016582583736753234215213064930411049599579173834146237248387737116265209061196817472419561342231029032617391728556853114282048860244286517044917594070640491206328191299498058253304758052161348063187590143319449142140610992080704202595021476946612268914890930767116576729567283207086032134380913126196370460532468258861016086451863446325808778150457702249499792936712790403899952612378478035643582326543684304978529196134584937825006024057664869688606715183810295672649645041150210747722238930105212296610286957332285466033598709310258582011979788170869691973907139104396889456318020685016904444181514152043036751856457813271148114083528893831329494452643210724494717681433709131271345364871042128149941847406657013722829509404168061887789512519537700956908595642289759989401453679532528646014328461977170341667265225011120534611408744324354839665945943266045963530075645871991022829044250720227200977424426142460038190326391831176444371268745847866092536509416444144288441764396875592341742864142201353667736788683313890297717804286354508325760012961808196122758359578746912888949199729915090300696613129918657494468888563988588474419223382976796163074306748028915538073142935783842266916501766990509398677208129449440854724322659599181289069240816757100557108181909346368795910687295951541633840661294817647231694696803141361590624197070152324884825812489525894755439155937418417656341978414506133807458910423983422988679893359379777051867890757958595896140090643743313030055321257568793369742423278338788353219930976764586392159898470692881317279247051789442434288897266287533192342458472318901622422658944644617788035029182441371314902975903672852571071520358309982004235594625978987428542673371221453088901190039283285041770716920722640816672989236302212712555765742334430026989260839898657290771553246412880225296697677968087398250459349342870478826211333703444748351007320731002434461605625023258562412246003697291727265775993274195364949355582555735683454891924688161265013857830879440007807105987006135594409437945732912569909872445082989645478179287784860529348362425344841387091628891077500517681306889944514323577629301166158818460567391645981518018510193328113725278269438186165646081103626894726170040718385774144121395826460145561586706120488046077260894753489387588949103714993721525868442496832036351147216683190405314960878388558435123737123647727951953592447046351247066931624236837362954145506183997841959821650035563664309697393061782821715844892749030758886554886163868353807856432676743591559208343861480167128782887542519965132269249064690926720777855084349269112766353395611474847330572994909370726201803073415294564007200261528046351209150224167099128163422826478017826233836866131971487825415007679475141963878936311243295248645633281739252397370234606549208374180545177654487202031884282030046107685571073294263774020041834986755892352154418118765328573504715252074849056966706350765986299793623159920031885091873887275737010006434139281566677117585077422461000229359194420102555841300749421545255466470562561340432540843322527607986163298652811526257615180883299416940722047855326680137411582051186116682998575043327546237563514679019408798210019392170194233553077580755852721226348507769487633301431040776884798424460282035277419455345024373725488410195574573331633340671401507627214781331048446451935941316004980761458840803200010859895244885096860467453798485895195115436367010334449124590459988102677451397872161294437705517828113707895183727320176472978839225395314401201286283342053828367666358625885604695280811116707996301809194561851781730905829949105131832897564662447190159979476160601019055096534802657671912653119753419207592092638228915202398764284756447846178123070761937375487551369665675181959350640996878447395113382983277573749991496302734633582986155544527864854233027236123528318981593797845786358683450042542185798192012203297957619015009644873486704647413716756565199095742872756409107040501587386074907148538658358555263152068480466909909126797584704068544144033816482233030152770329324661686232189803287606777524589765802941947695583885548652219016462336856791632096513635099342775367026998264396621569727133663219751378058241040294891853133854808289630713279284680629407379056225346594712482255904718665083531635696605155725970561338220242081985733957956846675246890320074659495629960371830033887387989594956900279628768616092536622600574286792343959637716414409260275359444202492444499480502643140885755810678354801731442518785556868644646199379127805862465601625423425421201024070387634320573315581714660803572220694393928810894080515319525453508625940945881551150717045154286856985205737060656408813488297118482822830645609373780484106346520887015109804814885806554824894001037222232791483581108607416311217532237331970466787662513572417100085373922160699595754856898875784766343624622775488831706680041893871908160442807426465399663531557107876105379688318433249342184435430623233628355645633791659770889342838982786734651240968955314093260622062475799301561236231023164331564285615118868618050700040450027892443290358084318516238568280617598176932754389360469938564773650557105700792522397906520345566398023136773813657979380014664478249979530423284937075769812367823914856219961872154241940133361320819562714386588308295819182402211258885868298063262005620173832361336174999532565237954044426510831314177556405251502125998654069019977736678762402028781681365310078954338775899553335122514951565529069380233595365102414259858708336598198519604955755698551434662957199358423894984817878444222962658476368595324389153493363307801448721102180138524529543114209067959184685825694408598482220017137812916761149641154070467658963417659849731972743500320304981540108071472290356798106813292928299353594344727180954228551436099292140074972041999247491184673537452931354855268282233245636489653035431284775563755717667176571591077475399200221861004914499201704391840639021402957810834367110824146741067304131243494854224825356425748145768007724164706283740991943533590683458398961561714758753545565707169822465121913278334346108540637428467922804802784678239922873430643274745872851733463437681737238734462400746732680979346772727924011215900646269164453208376449507727535725034480837230527754732566284064141021013707992797211707738578230687608029708066245054002716544419820896851482934076396815255398217677847548575569970300839310893455802353097859345512809866952990084814829533428937922329011145859171782332456495416567354464350167316208781668765681072222377427007233975472807342432572653706601594724508835838621372930107153005039121575058081285518147755932022929519414981086681158057373455529508203024291581529110474901147485480822118729601823099491953478070990433616245799946737250086724866293134824801406358449716109990221725844594734543266842186591673308085778038020090789034049123090338774023995355557002447904021815794780965590397497232496530437642766246619277335700166742170623703654263572040494416419913976761628632422335784886526184562870160751038406426344404458024549419947875237705248277771030801187720860671669438441942166434432221944819481716549199414423739055443768418482568217671593809102698713813846777661189049213066888931500392244051512876744476151782418754042407593984076291518681603403777041869199356862100733077340824184938087873037507930331885727629334401258938640957212946775302101669208220547543503002733937434990155501894259454732000722989294801244911644237153847291970485880984401148641787784886010585842534290557280685672453250689476081111536830192866538220777219635342924351226418200056797410289341084826360090330555669949954646671954635178200476460231357556085637253991061198850150495362563415318558688322321975708882725124403545883496075861026375242051592931006941388774471524545401525242833989284982130994919431362813785832901015146723042707252285651212028412201746539355084616115674753036967209731709521105766674793809248898862981747555208562699313009656624142963297735300154866498440279679602115549427154126333695996348664837409004233428118242993147494856021398407949554928393412892914476335744968147478820170928863593825562585136127016581425600704236163186634100461550727989946824137806758584543212168716776283215187677920637135247729347783423665867341622996472440972977932193956211101110064863663786020853845637889882453941668435685879086664981494127388497845118500437887444724054473904382053877524816091821415318117823012501346469456047876021298598142560008552735750230048582981108105518803279918722490909218633394906386907140662982522977149169436750303217382456737564703512350162783983389010048608549740050734545635127496351895580095757651169775255687326471020953600139223786767225875965291405041918230995392307472230912400228242737729557522285269256852056372697480773402355435570012928754537527516391085119645144206262674571420179592134169323996715065246418166588761086911147806626167660713720136649286349936386888991313679230637491681105385104173980274028750947322363867789890538430460461132660797668675041862445814668766277157459545382953240898820276477995699215675066428442644135654611909389402578831486763837721279227181015889178195496118052076929654644442824576796704413791508404048716093948002273333600757641696029470478787409861641402962373589924018896343524190681154124844462675030149382127380901731412017883781003894470536354143033252365266270137981324592286846176527439889915620605250099468002467766728072132172931180553181052454054206610827442616335617141366088890139800103298763291536910514983446312029418916594728221019486827044037695398165124214711905402140983429641203633648395106138264254202793154401421005174637994000079630743147959850173058304433538580193883325046969229251268341129107337167662917901962393247060240356229302111839351182533449168477397026648413196269755677987858291577718691119518857430971687383463507783746695019456158185254645983650557770683587327773527307265013276800276543862286435749977248199912860692944489838609565096678393859748812135910872312601218566623992482289975190028296185541490971482433122895244430869148929166975756101183381419005640021447385694326225384737911677143130134436513852213194221495995577904143516334533681254800877949100813391499776493338151460941207073708016982013803882996954643360907905169939189841073607492287538280196294730169357904114634469090208842556949210267688317101233607246801778118043668721174054940377417705907883863466762042184111969280949688108806249283999535944679091837723348815568031421729047415524646274331063365185890303126824747986289425872874237471726569635455876970781869864116912802013390017962783505347362672888031631006096003947441862705765425060765024235844172636703832117550661842130020262760646205139070193610557456481683067958832028088644840679538021868631761280344919352073778983275990251309300707170280637335353317831749804543217022311409667193963655814487355943791932880581942568907417714041939799165734394127220370284884299981478062315569808612102036448413160911754904538607652704004472120135159185747163115912783765973319708618869731587175550835103760732534180658756177058966979831104606389560855338689136385980900577118135982271052553961925131946291695955044411622430476393420188538218128634570565923660371654852470771500246982623508040478126971612092625835676426983346262908865061425520227805714307528193525464340488498956296235445898910258320047559139416881982567826257262041631604100065582128209740738714440670080036143445237894717157124709270007322627974807340297534164775999717683745574803572690399141005914065390510788681799432263617853013195773147009250190863917712195528352421123885471736833881468784404304868839242887406250539610784151173589733244171742485005828542238296701155713308753375364307692864684055910669996860239739428159120043095924092096488152941456509761231241061521855600446117558853258478279231187561636777192362543503346237850658022500654761051039421202891251077593848704739325590479918345645800157441656921523007533609049346399329874721341157770783665351012648189235646681915004330116014206481581032349201431850060105635700098559346365769497327343936504386362913537127819396441683633214367774308787700636000197405429523424715133776144578796065531999242173752211279563707728194223893084376597388362499350313384096768057867720007640958681222090903139022767140764700490344336508637008749946794309697409755449658046481868658831240619656560950390762326450043354819271922700738240737071043108596056206404445154969145198670505905875771994364526612838878234610303086424750083595420617641925729631607933943947515703480573095186080372080714291441635856712141243367946424299743122072245135693121132614139944721134883326703267169683991707109000078464275325533416618627911463263184750327312549260533366379430677308336295781122010409440564777769200356313246478941324936233076361190717295683446300264673269001488247117811652533110324055085085390177074468634532651828530316701466002055960079456342899767529336731964666814425007966005904117198543113695446550748809264160232706603031577677787514860391121411719979614933380243057515614593972835210852815464581945593232893064559980804820510309580600999587680554539499642441438312456825850763705335550756708942768004882895338793051015856598213482915009400506914183594551023516340119235390711537987431884623842273266065596521238585551955049850367726194809586940709095061210895575276685751638526747687262904913250755442989702890528285835459588031558910433388896761691007587528973193407423546433164151410219714167416817379061371390736555838421746587249714706570904892026131103190988065340072593340867590084589875792140250718585162806214126160122801718987981553745843491215304376141198873877902087178859651977963456223449672512957610383554386445955832197082792209865458348914829671884291182376743175420227377298276500882853187505661807096392720786847856371534565584735287619161794162645682907895922813177033994448672752399357811205149558003910520428564122755883950254189992500813247455068727073117567943396340168421856259139093451607113156632959830139561479565279942456212983877094562317314608753532894473986668274472079926622866397165321630925052260438922093122783691760509536107258575330048738078898306348819771153955434428749245560831911646612320141665414282501947191555990413342715517319809716081333203491208765652608741960577973854182996984798000673769739590326229167472009148104758640072913731112463552209586746220704634063582409736299684953152879249413539890931075289162204671832520870307674349846050571522869478828069964107992311725942629455791497852827674462632375836396483811604530743516484597831274189375798934377725312612281617752013181060053212713162886412665127587536241758852245116274675695381680758444805839830251109290180493867299987469007098357445720847028532027192011826548575038909349741204860925218588287571299538523565390737544489191503041494752540896895278855345077879007440544803863006056111634044072439722062751452549605303266036604942939027871630559792614450680776552919785876044155818081533853357869338091621633153748903243452055329489638102738572358853388657264235446944727321832432023606291472164047986183190434296243823956139886460286607687276378653979248698113389569468545649404735169059496331742630349632577208060948718478661530903735276383994230640968431546239364994504398883019569882492182326838190194719209086887293864743573591992433134767637911902948980021781694731873420012595684963337737060475958780900743139082181691525631064174190208864897273565832569729211602206223609089184307120042810655144152127717530596494440456311765635317265035809696691944235144136683086989761906333851927036476556849257129957483011987658114162880606184646552405031126591257031787285598749929117701486497493079289990989775092639269074230921896110513866591740556959248638163042753319983464075778977770898391443193034203492075816581422378153444789227701615480498270921863019043382631270540957488909447247438879215519993673759612371650495929620226443748370656548274408900546307208197770066711859356916517314944907723827541313307427082577201190604387755657525830544449373249092616608708513197583504500151045590147471549524891212149208376882264005213778502720855134207475052620886700334078609967421731126704617193381892119098976701880022806656075170237420931196170353069798383085670785661894702674781032673956550333342701058266259423607872435792579044391744509789481357870430975504514664394817893515175745566107197127501922335422586352639386647655443141160825341458892812610116737573910411542568535188744898043119686619394442404626056678575578970871418300620310260148019551509873792040636375375976711680651469025387759907249989773021676203077644966662490980628683236011144287966366652954970714983512859875318310954523880689810267785566222706043272337897946650140658252336325605640990296723625875349143046775905177056945689647859000289189497297157326861638647006456847150198012792785264103134227464656991638288303809904773785809395085972622618329825381947602057503870915521418638338122437139241432977410691007115235655841257705605156275997547226116061697882902534168619181398838435379766057039839214157394038986451883963805985533417211418317892202282543273036879896158899820474287874340278669913378332554403295124594585813247964709901662435843889187832476146771889671920555460542047974877518758555179106466786184286648112886530393425426864231542942422926924122870160528516947308826993690104358103361392256739995289711815389771660976338055085769007935166793699414702383826862512601367843812290394496968079404735993866994937088193744956201879168611076592814099991852807557504974886690870964429168369107961434724553851596974210545915815487453431564231792361693873539214723565010481372902083405731340035290856290722559237878465467827791747002964133229700798819206949276830356883691889175313237104362731551084523330456967218896949811543089156888679559283569566885991777149098905218210019834646977237179929597447795868151455216200312173359344961407772586186111938500602568915797882836353682528754878463022462180967967205702530542636364939921478168344633869827614745662569974337941389920960496529199972299842452280111385408771681297856803781759401825690536786119882198459965982921591122975715086538646999795649264143019203894394994286858302608159824374771929025231323927045978888819096157910289302505096536763613984462936114623637366732929200110589362471945844825827684248295524148625703628185801689975803984179416961794659873152858486890961201327709835812753992700784761071659109723596989644042887103259928049695789956427042912467813590914577550020618730401203618818032684369642295388380577603333251103341411559528884882353823552718877902201735734732082189800216397363129892605428191950133116276246287619399809824744100867459710822216744572245490617612146924074243772279446068067733165852613974860087210057893424003759423428450491701673816595190992547032165604565459819737412643117251086510051306659884697045169978578254004038407220187802436837718433006037479646025209610639745334061154736491950541810114949575802603496973845027248598706985033230511831765128556044287545064921358375513080161263859593757002164044934567895343887020487724820316452575245301120448504203495028272996619743967034324353025017294022151380856915112532601518559697467753856833959315410784579004961670732833818343013648641241489779753223859757621058998436939474137913057392302692104281356094841733937491737191051588502525758530985605427098741976980491613216553233671358469564011301162835720804880498175265713414244327086303986033910505011965906393326677194651417259978945377003184363270389771745795165551538927717344002268812016248796763196945029593398842085148889599382427049396508961028408525147030056694830267290178828049850736366505761180656080194755245296265311630877889369430076309890018595124722178521439421667614470946986991279906477314771237331624860820044494138687696022735544041139557734378001806446974441153351198384778665186208509795129247294723751934093042079018828987412961771893861302784784510254643396843221386459202996702129519969279200282302067649279886302816899206843376068116972524012363152407852421987627891907238242811121224896420299803079373746741469709209325251501675258931076113698391855969013751793270653132771809502569192042536827810757780633888449907442283565560799126643439402096410572189236151839108821090782288849512139550358980211201104215661837820209668399812912030966826632470791438702543211069650583141917598268425524440365993336184128221844326124132438832822512486405218995239922669047061746632776384160032931000094171128649593215765901078457016592296535210816249548249351304144916234588513733464346830113912274111178395087431660468819086717678943216890138635531503414365927546347531956644517755648069728170225429587115091153589573096806789882734751786498173908247866103150004146931561631787692623443516062378091485402672035483136390260436464751269259567730848588689210894135841691413968850869882526776814360686679286575832647714996198825561183447568315956960246712692028347007619901881926228002856135150347224516555568740624021270501186586120398995020891914059538045441141922133371627294896946928883174962302471976565672218721465548263954423112191080710377270869321454180360883153790684007342467991286053264832037531848261531201147069436301287617706816945857262120151179127501910223604770534527030740983357792282894188282614607711186731981326963491242431374463423724566047922753839589857113594229436185297632644932358837074987240063014603200107405128031323320354372121936406133926510570158052454973384254486990122417269305215882694192222601022667523071988999419383027455881801052649964310474012520434955879619668552159916687716374763046185076040059163037877130050151067040607112977435400960857001796724933161572793829334847712398546645154744727345714271946764522239509132476259140618878282131704742533465871273428317074671001072186577424397634932077860819895731792845297540583561181086997598305295710672269612506918468193895894810035461716608535279805795129142543807715657229171220971571158759407486169899601219483821476204955388925294215609711795320409487533824475973502920765651458227768840789153284536871425354696559930696229971220423824111131555391093565756446231429049501105793390333365327945635947143200581774915722892072588043981094726921396669875699373634544608693036005332387461195576687597997185658172233740631549105249022766228357774821042754173688200614982608950017668318378197745295391051217695424997781023309572358111740227934414193901217432330489667313860584099021417979121324306601522359349197930152326722031597836129312934017863019055557828933945611263168794697123565843658228033927744107090188460631171248288694810543679687860100823495508870330191956588981449544103002217776461824791583330155024865158510266822524293871805236463401579931576380370482469250185164097902149503080598107035596113394656877766640041301699010022849110253307332668342207872854279890115905036251233255563873167022844520969150263963536195065683683281696056875056489013582549197439526765785734693534373566734981118536407306411679815179289110091678295734246857491842816381404949737949454014846410959486797695762352323289682630601646096419139820981023583315222166259526770502591575443927821308674240362084929924159795346295940227318689789285149928145988324974175923873521700153787454918092357130366917030395794058852316288712594664062064986181966054390652321628975550728079081827956432273270012092607298477154879544649084447754042579832929869819272132359370274077915776194714641070514858492069457790210521850694389953627540123561739207040972530727700854248211204460590924035561900111128733005002305101422596720439742899628009623546098096594949914365695759718375706081334401315261499666713408506028367013026131800560059012047379355978587497123047376084434171551703338107683049952138543840078332999999358711358617946565876106686175756055079142370937406540430403387767421279551089602877784152631125768052908217807346690662467839475657711981722476594272326762494370768229615000429280594478620912752987628018686696334971175076551791287033856490510892679670717613169156800214873377703343745647656546155153112069361988285008956063983157103116864639186745552656453200474652040941424477190074918858176587815535696663376972318546193158970692646652463664873634084833470522959689102319366209112269558372048166425696357349309698537806750517783302620393527658824227951463717236402706152804642816008665898126850609702150508038082288794119766703949761259957763629260179145227127112418937180287757574678422888507462491080865175836481703207544538782764118833205166274438658700809820264349633185587136875270681890151987554138683058518890742110901165429079748846333139934584604444757415145633007079911074759395405712888518764313289678529340818263634816300906107365632873315883775608119553595258317082207830393599474154554837296633327101445880133022918747298455561542768992508741568998525616174621188518081509853845924303948928481655958419680127880627813045024627861865751111620159815099885137633689768212742631611887641533627259000741026790517074306719955146398064377985619531579244411121560305408813936783082730839810261741760968825794947938964505219406736660055729220795351913807282609804257851050618832652783830689989360099500677314966019556559750178188225845778484502917030252273972998758648559210033564366683436949665673273470530907147691949383719570472083367198390235921672498904463479332908318225478583047955125687400762448386532882958287754389520616513583593850223641734085334503283372444138823855150536622194450538057262060372186439500311235259017975686296968484033094505277838486077448387624110029043525613462681144748063180993573757896105539229240499091847691006970597844915726067990498923268708126208189995368277341760140273785753895574140330261086026133643314366656004520061814978358289512003226978024194898879557800660534963507243149055687907608223387774076531079281851460101662684018271447910345573585626720667343520607427857947089298736705400914312804692946296067906612664525365003145158447862952991928134251665222633712612264527989177388444745876823831576354628664143270950536570923106427486090518985302942796419369798382743000801347524090728905920095105389944775993167462591808780170593502746586379735219156315732711266671115077901619573475133877114300345635315311522741995072826572432536265072098221438423122891227351274103595557340701216903789874291911929996060641135983038049614956493903930357683187588444879909083466080372335027697545606062640580117822119419509072203408953980467898561699209318870202082819973792772346406845241864339855361121126194067437141198695789476937597407002537920307617782511608616140024924984143023947326214019777422652231930293884881576247431257787313305646552868105439982786734058167611478284945779439267517184732448381740463315890630328449787864709411005582199608606475486885322832455285423600435029760764165254635049968054480857259200715085036713782542446197108291317451065057703248070961720022137643733332255781585983326669878923712110881701427075776380197172135910454490977664809958637382891580018099701801980940779511439712750374645361680690831792278644397381180379551295298382222381006852641185516270689429811552499100716377329452839464143520580917904688465934549462806501895151241752335361768008876186307657066527648216615768634971695853492696693778308013821195057159647312781661373817724749996292935819118506497065820065623615544235792703056400234263526731627471789485092301112770592793415624893090170362530844234181047758155894406296545219754919618602238508247786930454002524372171342216451820482757055813844021754395082338709715467972878856876625817164023178458241647039296417988705287939802912494671906989168328925603025349224362280876337058178083226164582031221713780626522042523861388815669841310633094215154824650037052953616960988475225833468531114751611275732576723414018129121218815455998798371678998526969001467560759024093522258565262000733524800203378306588589932451844581958597256087463723508752977255397161379496160256303518043209982220350679601651337361241348861521253051803488958643990511397139112276063514580125118524570215442373188615227749332288090738131915068434079209682832160166081614250240271135971649971630466336839708792297249470458879180867889300356935376564384985305997902561022199305590374207069047034137555516258868767805940528566684385168399435068945701082653952305865834758413058637571692033984258343754588120010525815708599047515351536560641781861018989188474687315069746697544823550719417167442254379654757769649642249119314437306407098035632367413926102596183093420395719432932357737629758029084462142372025870732639037647609920143923966237620289119082522834257410050524172283894579377791481746757904305946819094677464821344619061221045935387688921942059899117156063630672947321404743621555377127708761150423841658726863815222834025726866167051587372456690515892695690206354453667866454488639892817890352185580201331142883500166031830095199772467364585754386098122595164210939425011976081754081011979580958730673322969002043916857241487920008703687177371394449298056650838962031337094536807366726281320241424359543901819640483671560815625574841120713088461512809661621065578789047382214945313299581642594059763789058352201649159897373232905185722568871952272142071962718392688744572460681605457818812855946343861115405240975432563041898012929869332562807676243288415641974557198058249965581137860364567343017654832331145550762283366436788187361471712079238954534456712245297182651273438683850742272224275781595276623102435263815963311386832023339450384315445789265103547080077026884039674845663839390876194362523277288935551647162205393769047143079413637035871819714058408576276300533275803455746719585983925163108607716900438950520595754390984050646072928969346705541758659065989527185361448045647444508036350257826596874101478927725843738060300961858764389365013707366559210937238080824663259374676212125457212300518913571319240929313352396430425482553322398265915433895506187874362577444327546078319633149651135608701630820465936379118143249035311198677692703631418791532055395245583260581632832357121617671072861735784309051136270507187401790447865894917506159929322053654779538724282292242011292278015110686952446003568915398776243308650772083670162859302559876288869703688833225310622796808353642446719623643893245512201579991803948313704113679502117043087707269039392080054849358239506498578468985752041714350988615284394231748917076483643011280614004735266752714168034253168939923427535092770644025514656914268617560448867878303933191706194935809305574546705886103924325992527728921689161787784512329442825327783104938449718326047078100105805586929234676943136438175577882526259918893197450501225753391971905453347483283195777423627735392941266149039457013365495445924838150253289230026808660329682027693714097499915856354236349648228962793232646227318562595684675202862006607676622401820108825565521185045342858136579184024311089718063748659823528465136469506034672255567963861983725070842018468543775552821990496252802429369907745401142231239914065311219618134646090627204773688463751663250095098583467800876078761100197434746776726251990493903520717014796727093064312254707779179174827942120470180779263203396360382684140597863771531947124134198699080680119738324163310972062229544818973766981999218405229869249428897938373508242251449539669463979251715178102961961044442563915643194927508962562310347976698470986365592639942654241443905716622042501178780900247680829986867752280718802016581404881174527445710224626185750343951354571707690333591517367753924281027248301120467779189108266736067642034671825784332863930462630591947149476757470800658911810776706489694615468064520812497720432709846896621921460561840150712733557516015981190773978694610519093212234482895385175202031336520919530385525732173496053212883662408799987443334653290913358854962931524784952646293747729262444627103689408006493359426566337686601455164932140965522341499765378275839703150592091879314821294956578209594547811374888707317192750160344868465283023409542796973414845528872365358556086105258250677984331800608246752685483233793710515324879137574598900943944422830636377114984641135755942633577675055531479262355570415021821085485481938703472680047611010774779262320961855223471064516351271779525359867990289032819516048042689786942160222584041870780916035800999162179554018041816279541485076826675381193810203013025658521102304522677384252387739322588137947271789770217347819620253956976593013342409299280796256523707352948437171769925699555885861391307779057327309612763531949713807120888619771460782116651810142886264253369723833766192491086648503103615938536602687483507814660441451004199576842644816239801216951375489960238945739789471192486377847499651616490017258122224214112295180491691987216538686272001504378389538649639612895827844929357995307040017899526786282170319390048457644325038998671395782007932022421786860230428825109271347155155336000955326258224460772926339892242406333541752800473198071084775534295367082072680870814481551513779921067941033075998755174059014672157535876454192181851398477944610148968541115316755678459655809832628190804666923216606741470415599981087697464194825429811943322663616332011446312189128912949393017667530288195954643705761368884031649808027269046248649431923378241105862446093877408619506868059850882791552984599614178366002847015111989952508618862803647070652081161357999870852721193803355281648729314461668070976746190875289496759389068152020960509190277047431891058633972028971221017017899805822528545886380290696930202777332217901476809335605487335813642745035430834809095314744292848836536501137439609506428257910564366086373010103380626797042526458589982832199502924403396879670094589634244964566534301870236874709759286145264364235582290539695155288386432514742877088720186104373505758413049755062411105236772389057664825283436763754706603556420006642232394131567715615736490888045764974838522797788813351327863656885578432704391301658618645064769753862636949855837176641022678549662457291175772027786741078844348512734384220455916688116725751928898408879987904992752229658684062604252067348437418685257029122655091411923082874111745669702382770316761038621457747572694880507418227325685129300152524407088757964686062782255998637242120023910737612623319643512923202438555742900401209738336106291035105119937340847479745498986777373506536684829049590728789488349281235849814108028393431022770381118648317483667343985760182713082344948336572501723074393733263619411938086207727401218167990574002420908425114340972982884500348988134564343652697513698911367456490017093649104172717736961399249298343840020583734879598589239197142402232200503947823691744393148842150064728080036725228352157076036891804150649713740995197044332033883768914821773773288086876935951747855899525210745130725674129441747626381222341761632347437063335007133951400348524069946893444719034377554000040894602115903928722779911980865086237723904871692312957147668156581588691816793896922001970527051090413826865736653820409974867375733229824309230430267144489767010297954634540210927554292792636903555649613177936318679330456914050000875665528966646662121389317133354965392084412505142571473448844089996885971781071945829512632137029277142493388193928370731545690578106823376154448544015878715423018809927501465196767098343741056207172781799056834310078868217142662604028458193282232363437603407875377629015663439794386475214901145507287383401533473778713023109088348553918789781223156497094421815894867698265873405785023535430949947992083336749574357134523954038189838667877872250821722517063167800398718415018993461886721919382116714697137515133311676871893630491987226218406799091433292011932357036843187752181425731196091993957819337599691453335124542640901089787391986847153327657629521167268827662267060246421418265961272675534414602984975272101607936192622851655756317445456511622007880032475950573507610821896559520943222388637886953126305504692457879098003068472883557992826984033650936593131903704458751885879295810770470377194491422182233400387658792724681067090979502754984582444774068273262091049647928133709028963935138932001393783812783602992289029422757490146424206030797504603150855134165472685563398918281825163214712529127807307098033595599843820273477832920906999503053765039641732170833161619204115320538487060585034437534618469995135033357396295881449181516158962140900204606968820431536464029869958224638791852511871100068249143459159894702531236014705460490533012507982183574336710429065375375781124126182262006965377646907968711268385545748217134575460571443408600561563003189782767035283133430149257379586322291320423589716257941803507167845856761992564365546692809320511807678818010917337015549400300558057905353775532564415044263529259199119984142867046716149550872853235223487150237608232823457483588221392327126400686487639791312340056941601591360309255640954021070711104766968953435468843375566106213210592523274649530601284685210622643862885920772735561929424987064057133562053407552237176254875294414278636771013380378624436587918453896182281440435517737864633473391740603927747591812132997882331870447181452475192641403611055952590033831754272320339457948122983679489263129449249088498071253529539324921843897300675599649130484747380060786262894570369660684433979214548428025117871583240998848541686641343010650970989949749580065983639714122349753544431156289378968683692419600007192913820873036531106387443022861586334504829360064471954314491651593497987368788386839794192509234236735554179153097579837812908880836998506906618585669312061664788426238867236787717331354249856789230158572270362566916810857171087866657580682566097818455983859341930828354817987466750571764373872777749843629747247232066664997449077356683808638017212174267194788247886872843542255000989943318140279925041742869501542726147103748923848547833011643321845539128579731367097613200839185245667084808649409830047912767902843361670746106438806645059570912418584172473654514829455955752609635426411748075318488642869678688406418447653262443697505938187116857793213399715181494254268810239548042907577274104450993845797424870745970688997435848240186293541701742492469800480464049514099906020990984755847864406173964433577491205794277332324199218207167452137509217061217523481630364291644570033352620120062505382776375205962534006316888739144677735732459476326057754749564227346876918867655117870818314557561983898504864104937331020371057656919138229623820749476365556841853131582092307694392556968312761661924046285162197366250299867685979574086232382100353513727123998262664951378648632234815440272645849026619964600511765892611931021790157269406969458666839380770369400671653691851081544198382228717406189424234248780330163695776111153856383219330295712064101288263533937532951978229763391733575577846860656089653756792963028398454266867077455149754201032118283592443696657256922191621132974732791712184371307012405023597726761365851012357458324044442780271636660484066815543364260336875733726417145714292019256121422128072690798759599098013466170634565135115821655633725409482963986507655339677018813043541826424131463010739234222635603586975965687916589504274653786134243829549065182109610996325167429656570845931703765337371176671672582362363770181026342064006300892443858100608771478362951203571450822502436392933258791796502849884917159479617522481856109071316887079573690693113514163886442275619512660578001502167162006386575498763332029003887149924487850669558151863203981513100761343267666886020346672440636228238056500725959741781839044441262492022095935289186654726688855419951480649435317731864385439285152750307142022820928922824968843058158940544029918104903042396745423291609659545453154723604171966582631931226691554978065088150816026285172246016091944893507582925906787120108167600535793512445547676689441068266423106440838896273496886093992832316156670202420958561674667643347383528526330938160865149408595151857320138695779554305118384413363827775451489649422595136066980558819122211818855113170618141295240517520915877013877174501237629404669705680534930487862791504653509461547201878695352862595370734963953321823238927832656610360102898813322202029853189174246254794891196852721006010080372689674021994920151297371484717031248195436409147476210451544983159158244788528858372560151099359186682970984301372130522737149949247675893924636529607079415048728957898334304951024664683128041576898958511964065707331026867893751391011780040814399104360789064999455238873641487923514504769295984553789007656563858588262388636954882857767603156300188323434034741782540430882330784732508394263515024255419193846649106866185993801972458605994185483159706933515041837039572589906660267636821495235271382910258458300017914377159739105974553561363650474933160403601494062408167532181474425065750862838026886279367350877211915694721875198306188034526632357127935554102646926265786058334871947649317147980108265757963918680450296569826596015503043811870504370648321682706832660448510221737295469412179468492984310947333337720718833876969770079506383919578320762244581625061308925655122747496547360718210463639565293610972456521310934405578389059238701949050743953723721427453481664843856407575994592562886613789733809129579310725606711258326907965549938711024006357662149782011987758925820756999098725136217060155926275800390376578798521203299786567635539497706984286508935938713095137142199014338333279889539973382383999364357080200978781094191790471657122025264192774578943388402598899898884473449236242213763652605763510343512902171966280983148348822569755533500661823334899749547061216884503626409695328564887142230614158822799373394503331404062193074025576170013008470774991513418863348164494769837132609856301634161562876021004956735258810061458323805119172196726229341222781457440038397839308377781580457820858709946612303517075152056072170659878425251718700440402777074359469672119488790184517527707698072026421108521247266063799643810933993930971992913719821106730115804612479499284031427361254484075566248883107184041584031769445401352351439389369338885285764455256347985528203239293961655801260778573192576206165428146592599161487440198927159750480648268596130631559771529629756703146532866712035332458317508602031608819416810551989792992016391593998908243762989169880367594131664004815219374474459058923891734975217625479587606612304429412275003430677007437544167986904753993799677102215715039530219641376155992678133854501213782980380319236160566436888168753305559604586608975892986846857555539520558370502742869343607717884542664116833633905264908914382985782949124293568125409919588138666567247976887396667235222090079810535670201629493992775602434654993951660070975285235312936240187004032338913693981138109596650438954155948258093940659978138376401869860026686804535599101675195563072212876718212518252941070013282787230636323046947462281230141725689190319643139028038347773227547761464197687435952237568088393730851042217146077915145092039870627087584917513133422604944855871845130755310105942584273825315277980452375495547571408640241177092595637716488313149749169092824986977205198221118255220514689592305672137264365966410298650727418533244313774478734314484540478501953780809221930256453492370766008698456693860040631627944417875291260169537379124406123909239653198638742543265305933954696160269822907691044071049848633547404445838730855194909577860371408403367039447925426877452137580919014252665985462272685062218987148851936936053439114740871056375575092249154971327148781222667009487761755258729490246981328369982446517530814003996218213250901174284369332622138063384962638404261896318453457504543308634731612787752267424629916192560073557400675343821718641055273933667374287936727726493526440371985917855436847656605565275489403286093525157111235018154949275962651556974816676079216663985042007872900614661307031527366406388254525271546250268247894746141658162935098405362897745273038139917675108300991124848944237520235120547533181472324034273576142562958624203529106503839989338784083200172701730057925232929330544140745386884277134679627056984983287018250749166476926700757677998624758654452667368213789920464034327745806527843070598950219267110898046479521651073529214676256308938281083753153947666827863858976337465684994999987675519443312386321189736778835463762371350645568653128561171697189909629757746082375917839713407327036942717770783962014658715813206308496412879538858477582476208810745405640258937427062639632409953026686934600338464339909780980779948764280412195067869481127866139750493540685197289726720563873029214402941081001654153032100586385384963349607080291624384513557492428559269112179620099913706752493796207997240106118805681167371677502907615061996448909593957352867171536618738891118104066784899299212924982989571483198056500974119968931709827191091497658230008848626661154609452197274815556442503854282521184201302253488859381914772752668878956705685398575358365461713498581945277205219220531780313063317023646938802854699152611597760837688969800268737312537767547343195459790396378673814868761156653312044718997231185060020361837588393218366028029085376383834844728824944684715065494172597340520052092674322525130139612580872511063533583370179296136330056045887660661780634962305217945155273126793731974396232308559454017992567619166838340073744537024750763660949423835508030060093392820660577969479745936039457353777689412168049443573247537087023264024843386196638890177366358207843165149028759152310696241586588623839107605024375434804972084590787167497338181602691903783470703009432379144351968554575832702234906274565704422625039234921706176905216615168672284813166393986100327863263335129650245411720400594733249358659045264714603823831319464696368689781034260316223226029507295261317628325948963041286009617618881848502486481093191228522599936847841556805332969921561969084337404901664914199299991404179185472759165645746995077411539398748618377793061570157974519256559380973795042651624754873318724967604285766404898858285589009557600745746901985618026047903432524852050911673488584326007795418379072641581494002117532563255319247185630914209138754477222660064502880923334846805060185241095459330239015718876417894386739044719733352303423105382521474072099329101974875628942691085988976801189392862468729535644280250549482242589867357991922985520418607760419689643308510700202648382536141489401237787610986300785004377161846432063138375957401633531095100942319306593821357863100874482424623279867624737221906991501379744829144298076516314860460486530314889106421890959818597783644099365882467461720781025985938778076127189894267301196170707835094809911331444104358587506303156314402371492693604084125888519933111889953740059780830113277956405524913157941891347443042460766929323302431396450199554060756515175814981314437610345319220579750998506588892789529271922937418539157707295290169533703986121951628596797321720083300187409035040550294131114662119846821782228669425567551045620195777721190303033198698085646052414524492770018799521216297291732301213063112217864325927333828361943231254166321686072007209882243408055297348245591112676818945252440032671077855212918032363068178508840514815225676411680484024984243269636447782013865572279509230726221586344246625699885579659314840567307593329935262458571480403222084965254352787038734680487820035050226444087229103171286652744892184644552971172748463627969196594158391152265195201256174281184053041437432901924611467176846844493285212368764012358945641721863190962110712871923826479438473969808245954592790004240373774065437265630169325691805429169229798303411750799051171634558568873088234843948606929209313187620359766194482880640206426047661654267031377779809856060676761889971795419327804238072476063565455945710764548784116831066894310425710576852562819435408399486381764048800715545232649478152012574892275959021129484604880464407471142921818164124921446899303326165791820088714830386610565137934942833897456055652030116419056449481591657962130702238933235207445340278210949289852943852790115171957285032120762971073723496078894576895931824418054488259738182186222977260517409894398795815933884464417577960409872957958048744285096443313213259936708804848350052667817663331100249323956137264313445456630051447664282574977134666953514078241648494148033058787901435470425658594774062725084202962889541216813486877673679568986684481851901304771855708070856556872140118290141711096339238732574086193992622265931163333866746562385657184174676759920811455368730674690401947108393717356548598967233505059382256625845159337536249559424497009722965151974312821375540570511402786756386412999203211031311084008997493659970427263272063019342646780451012430169234274168885615389188582577822992753007649748615472534414039759968613302108534588107881907943365024837188551701066379930480827219135051743761443884081188259452563343897737363928147243372616983377991811888580270761828931230701036655614634103287216632002417905095212495359717082717889907033435846093359691372996775466751388543230950639735147254316315454120879301058594940817268196635407551279652758852441444665420276360794038622154644716474860186425384023910143754555255150867374314413314160836133225905701493147217962986000549867417756459909356699584404433583955379585769696548110382414984692128182423349742551081505215760032315212841410387586154485177970043940153046694535352956484868710703664436162468613397863521332585741466319959349568261889355111232266013556675774846614768430902955240753419041708676140501782046062780186671074653751987753610322071607559336158315519605620326536849037635391120851637089254352994021996764328994307484321091333985148234820695335321688957715487179335536462554427367302464942247362854495029659470432720192836185838540777779194917813427336609326300309272369937953880726662500699491336748046571230785870018773530040840663719056634565757377924969094521504952403372694859272209487132317785687261316225830475980714371260438608701984717744389717964697275859545317332151325245283673292386590186466941344078063999693197746336462914507956438537499572896282356440858729058226558846965331476899448216343839826970219860821555918421456496096944131459419709630515666588802324488088756574172757219324460761244570957387125389519737926176181469108230490478156899698704053452959984967356545115023333152571621221214820202398282786956221368070849512783856249850691351186627938952282023411285179813230930288088785061580770977594845352106601822459183350248959443765121029637833931577558588723889420908241316161659192859526363746062808126158430171912385695293844991935033262649779543073831607190332478028285683307209491536062924177517464776240765383852171512239483330453568130511143625462129305355055990830721041312592840623087612346715131801476841733511813388554066041044057041135762674001801792625880629668172087582768960322538796817644925164495973044728787715364221708998625017283948458828873251055996581690626407379799827035041994401311025819669962090931953379923110072955457764893157794213624162523722463728196209359541464525850489275016954518790725795146250192963230863887286118985113193767865290657560057933994214363716453859435729234226648315770031959828302723035010698316472731587250818076304905825664950902798206503886466854596718747675201231439444138803821227899003328286469311096181177847894052831661932794015537096605414379922179905920620730011945372059652935919591535803887918464133086436074411120937279317171919600137645308265070434620242271082680258933574914927612388691878516552471662745229883394625385464792206723975036692794781311636983162481789339184727796971605850622692299215515597076413268596508316866405876007895592121418772664946123146174356063333200333457509132560642368619343846901368103270479688788129076253794824023617221415651495470530733193298977873397445100951047532659729120845935644843595816786735183714345930303456710428359825803464637363409139599540989072013699532119086693784953361855067450975918667478854034216759995596280055353858263511271678164375041052394442260834144244224196242497433437622622867648304686907896092466028034800698168650573938439481782441806429992597779753455286685088248277786243384593283974360736921852017205213978194106665318012255467555645214006616380087449817911366310780120950903113589940754096912585244156816238734873765265429904610906123261026298586858506471549372678260927223882975860188456042335193322785350251206702227896873024855518137107080550842265922084382657413005978367043411373948378884174560360681821339623943705368125678262780227458443437821325491589819678850349823593787009888423462082660634784893762700864652022674294337435726121976390765029808717296766633219288343273628959597955585554233445997029288848044735370595131552075078366559958211395398452454808318738698952741118516558227683422426593532011202734898429963679208325112115917402383708751611716449102654761611529468083149734028162537389390097630348507901611189410671239731702008780258780484374104985530898593968844843294897715264293476495397707799302643085150041475297138294479929753249461977867114143032880970282599860536825460020456151056869591984515310302075554528454844120961995508125619956049907881770365380359705475123776488011699298424925303759834258175371602266990733678114652112599545162998962531043771066744685446417809959171996437794106508931397207632170768529348893461493407744088600788794766631591235765822766129960992867838334323121028867550244801547761981097799007377279116244477945526531043902084544697149407449283838842642824467147452681491504333740862960068242658520712971430862763109856931739651800326819176090245700695095004675120876712724216799467257700163539130893568696075898527942614430562660677237636956479932318842392189337890259866204792787669989130567200601797290301894958094164482219955603580549637532303379420073802054400159151940959566848885961271454544173740565669790016191656700151332877635023565443367847690520557987332190611621722287437953130111816687678188410127079856878195895093092350618446052623398892369166256397389311825249627500086760918737779676058065107353710238917321265775901866693504024868741026151868745371935124072946075727673312409866814887064383054605845839583938312902359781734023274499033656440297298628249993866865979569834775288702693928408627216305864475342141521079057694042526617700769626351054964560551882126113247026221139554403971819338210396307992112344990463324691474030357957697319953787535648952398344876874761010406825439063372390386809132839373167140619319699113742415728092403968622087476305039636152605529300883099908851877669714761394501105770843964866370597679489715805904585256976490475841959145718718388558983174644986423221303450493445576683630141166012621363395088678663576685017258473931305148841975503591006179198239039750211346326458604733545968538427386589276714782754830745001062720259007868032740767605685502490323743383186865345888813206235650301742370664611422134010330249438923114897673837391628814321159408770666639550247855419769884326582574265023738233650891445828826817370757496018010019104831384587922703826545080032190190821417137191490150697824209907826947387768466000031625383569066415726185186842863524568686299390614669109733230641249079928242073917753509854168608562684615464492110552998939070650848178769213445540178240217653692222004119161112164189696980553254377778240279533629256421436857981261043060088224686471919618225862192408302002802005035766370590345330387900528664168327671837943560857066205529083819479236750333100851116588996603799158630848156492345945529235436139916787744357964794797454718184454537105965371903398055097096938668597706871505460183705540146541717598250556917680513332895181458847346241678346787453599169671783349492004149628079749344398299342782564376016482463549869390442496933453988574491845602717419704387120356779752279112501300300379266085590639115943571065377189069160274656154835276109904782462420115734674893185095139881338540121936002023435490197248726030698674746064763407601454678587974533364618745478713717216237812827681152103478003186515314852351420755751391294464610429637968940418567559929534643457074442651943042352425941724916550926925474100639767479329775778447600472328558621484585665167483380615183564772102807616506809613614223776309882947582474353250577313903660928673351342324129301749839056726873334800891972503578391974571010901712543523577607729128844251468119217175144366145002395052179196149851420809435574423036561920938576328691271254156630674011771914848298105575360136648417181164582494334447533334542092501617730575878915895193371254698858555178669693225128077674154555147470600352116098997165234475388460332356443224291236872865525423717839039698716513082005663896914815635382235984755908672909486153444905643978453527647805589609578822375619742615123061401569236383841785125769238487689629303179777915133364569940990401013815342958349283468579383913107454799110551053201019380042953076299433466215303795483925890652789665968871541687366186675813594009813633635616101264105989257552478670768138743014901721048869585405478935452337553418335432928513034148180914708545517937476761577973641556255420789436767717249186999575560205483562992787693832684200484217757580533676330807772801108480308022460009118283528008743944831655327860688024525044612327855752329002657108974501570926756600959664760913455889372467702571221245273756522879733789048432244796914917501419965305993234451190778083520552440340028162807661100944582354939974139060455429055875640515783959613439940901331778068329127119289228541669717288873760911497280463490525189638033308680231200403511973502236957238086622263290331960777746701996201512715901744729375039670316031009468908999509528254684279240926395594342098857834804786433238144779816814377912774194250419572102970347802453440312583968620465666161088911518226584268942496392011216831370634319139210821674972128700320748317527326840179685976563540095595701476842677109726303391079109163187341334638932977925947828239264888055434953221832684712499897129373781728380859065404426776546992825580239782656967479434410312797681663105779291251986239953377412238315470125350710178578665631686209498797784656679078452531065728552182119308540180703946434520221870953302910536295255788585014491984974696924479022846963070467397849871212826033833208927155452081478366798817131744094882332054338523052489279494471881343501064122533749965411201300553343612171779546108915378238968508733455960569789839537918712930313844191460505973109731822996063022504810839824137715919551085788344397932637401345324132343907357344614299743014659841440074095766027288296475913025172270220801294779779200121198957744119354525229418041820483643256725879103006864585948531342558011640238618226191944131842797559295591468151167994124128024316677930920977716314353455444013337002824646888810883396180812334899343644007118725428990144865346328907282686489961050875446800367913318619832979490420804404413078401601650976704253736220223936245303969141546329303304404730204500675512272219917592446141918678326644172161724285688724051030689460980249899084098300019135732750591291404922062313937179425047865399210213336821208767538908416423037429317739188481107610989181831292456869792616437072581500959288742951507407173641996811049094994268052189210856246321751609216417376561646431684114468370170295582517224695823713601392928569772377913452161559929681941979307169811236155828039154179298025976863896861345422480627564299820701966313484035220369243971117773927786346851797830801850337563578821519174679789626836047327123249449903315867297430066751474097119408438640625716726781322872506683245912298558801793517784121923706796996233311482381185342968933403295027598918730542029181890723304363553121179846386078715521565511689410475407025923602301891831274462687889957110663538956721501194383729351032341857156588831418550565802503185273425332132392026610235418229390273321697749363463660021453874984996944248439511144741183404918171439677084049179171444174733772477309793249805165890296468032944637962998921530334548705949706634684941382996257751442116059371843592429903435714564953466252035331633206207921583250741837237817846591998559496268131048371346128743512619690986654077181010842528930806160004015372524814988652523100985771843731360563919074254008343104431252712787522571822641434857552315019452327029695491603973081759372739181166063102361716622046990077089883059475379316833394185100403192806274413163512974654320694058721119286626423408339166256956360051077617618427612850484746878605963088297491280238682499982414996229121168992102169868009488049335170433092526095461681895602408058695256114642515006994839004806073866214353549777703995687647482136862798111698512250989352477589393683327801982422021456087561738815300259548058701708293524621975620284832310811330085524496958084934206687970300442135933085556975496051055173007398943359038778116524546677900253450630998669181304559873467063786875360691679433319308447835687133821270485766609899240519733375813735234870085625180561877704811593490602387535568827360558352261284037666716835401931663628450815744543049216125188324222031507640705368733095504403981266708548714795112964220372695847695050056315171161192192856814450688946399296132681041786649923445904378863281776051743264973674631687538214876450302830195031053311827503500343940613708179682947215815227255224234176852976814087957085098410344637690700659966637222078724653552174050742818819381331769505424849895962880100136605755701991652499197211813889949366790471955987047589077800484959034919266536121214985691624795557688413449949099562731987186943898372638416788598072310351360988125890302703889254622356718476492275964980115207952706466324253275737432667150199947410507578916750323021588464821490670716176730916419412147608390930572385169435543209697106813286935037657768635575087864344539208092708576899514709806651224524106081355582439438201077933783430380067584700146045751581349933154720318176377259886298862351783259811954245258426011662770951946835575736717652695272279511656428727708774329115913494750334287062636930999975854442479231214446505484520886865710934783457740623142093285739174231353901059057764626949001972421881697153566478211072789803433886868798201717568277348254183951435904147455091462337823119487090270288805017573569022437223885822534688021159052593210057903943359911288669660061344566374678476351745805289340876729074310135958508115432890854940411121396774087186570824749561165395822689513341982488575992463794979800079718440361402483198402092222415418338198601144387181995703251794259555808319974094271236960240745595600077189329461780593368297230676924975762321070233609556676574181623514092361787342434713328656430250083965702080488005958323753437387129027189665476895608990106932065827966007800607402661596399313348493226799111701583182039594952550305037244576980708353633577080545720658716350418808514398494821213266529467724705779781927919549063557386260295859411699498178213612360304246767988071206691940298990347659806214994834076778358056746909294500323311493030034134707282595390678466454323555267736921216456668012168016703786409552746412703295290173582744882958952774144936642644909398110271061308289675688919150684774945812083055581832391799301273709463997038496428355492677505879049771348331497534955499066874070302781449424813015555478088772402487748389393697472206679738345140814758181461335508102254873132367661902634950930311137992257436673903940334601999234882416665639931465741245399182527272808969741817516236008895543049543688960634596366257493907548180717422317467070696566214731701819365063738747126866319685459886257175059597039301905722511088258623269957840213517913218684723651019071668892216835780597031327402709712612439122428277626979392213026599110631415540656803085713144625952231627573019002591415621858290746693168536210546124964441102874895184587697812525659214368637627376170202437704720083673510992661918448320133096130840560658337752796611321056008125589253008318865160249087136272866048616503435080714890849373869795626986138140874457707404553045782582536993931375113309251547526350510940719730172753970344189195062316201897393643119489464146709348975030819208956517584986309544699484103616631190771869569692506857500755044644729544506584403090301344567217850924533313211808835237692865755787289769590931237849444213193256811659549606290861775612448197654801032497181738052977301064408620853389850078342960799053707768638836314664932034268843037080771489100909491707584745000496483084522134362230147605414140158417449310547136845481260320607160170542299843395581226295942103501109580681490992349431964987744005100560730394713670339620728006619959342206720817675671504415558499859014064870589224197025978601409150146377530251425846058066687245292603643034724960046116354648718468351507587540941941506252002048641890989082241486289984821736315488200538033866840841321639408676571150335617346817600444780602470412955888316754680306114032392481840489183525571486399048957477511254130207006634870619510272594989661655767058148907372062056430061449490507029321647510076230753140732617289933768188484115571425826634553836356209999966892650677148384137558187197747776203011214467654494619244189540946935756142783894970793869782000597303111282240298374119109921281342242481590533489709167283409204255349461896957633605040774669642104768198534468844399680842356787269629795978898837079559091036291712161779704131554566147584617072447454412092552490712946202661803497018030123768471504024011481524355800624878751232875873754680085711765130131045812463732831055092454745007299962458561660941946258963734977612228185307762846457543605448620281774000113302687143341668534754667796282898603786874531850161761241656443658522117627318367170743507515163446049720919707733761619108927135121169511816203630463317267656990018703195191299657051853475696776292990728137414944022083211470061662823795290744246595258307791761864962108507916075340202606027478272011157963204143257005156023799164747112086700076250230537276224347615400227229129843530533920765153255043741448469054963410746306358167344565340892384890019779131684082935398490900738321647204922567299068639263478588483728060136932696810684636167561324458814187059314053921729199325687992487787237659041021284938866713004602410502467345946273338716963087432519259822176861808941888528784977984259221292557631302984586043082440856910021761876690255970091107623537335631878193312606049576892378318650528337255920741039954176701717040210752336441260244182946386307667057513508239451355731656925201541809998653672061434813961743301812258000734040932213001128251865507190550811680972716821949559762076074632394701835465686067307114479039856992148178054704967396085018333135963975696932246290667918695877594228471477156193848282611028586193154481817091018848783440948127953802982428857639304830291968256522320346769037571904315638149795621848379998880050924202676177968564518213153763271821430555223834716765811572735198621361832975163317444778506996689349953622242072044454789488809651269441707065658001104192570635741127954086588671771135184280547162656488670080127542084206005531507479005235485028089218545780077385559328129035341742204071703288371174000735337271482566316720291320483341541186414959509919302284868179216867183870356786933522405401448170596323912675716466838982067602176111896601158464752751504546900069762774861016789043850382215144092546380647304567658903239381215773972374323579563772158722491939642481605903260277846254574030810989065061378422946895706764269967625844749820493259572419621888896450931205947470868839437324487817645416288349803572557527859692946018171392707832964529362762114375688051682934940277169329396371761038942400913481751600075796038042965165327381305492643524750922144813875850839257312576733789326994820190577937329097759210542979198029477298817900062754946336747105691761102010867514627178580902934318539140011224475716590068704864181859149885408008232556470671743200181305772240816138362943415185733277586552681016953118903236003202718074377678572466072574526180819282731837581402425072253392957884129935816534573803120565727214599742164221845704200944588289630670456396762783281839845125897977066629428009539129725813450124889124002531781637620894154994232298193599869146049436995160484382378691024158323904845420162652632751545322981468822035977235754648291839991314393227020899914100761134829841411053112753473239760759721828891811560922939061697623310731807462430821980097534676938680076033406686277085114346238387810909858859566035065063003215750775347912733218107154421591463551496587296721598300583695190467296748817615427353597656344246129691132807667327830565475026839880778861840649700671055524294900140299198120609070870035575814743188271559802398609012891863297063996457755330257775871635466749689413556391484711058758690967861383105705640538495177482904031496620178656726582871735917880719093408262140495001483076548841557207894797047572833617424767931067477509403634510583784781911498037201068911856440301311868903173308619716133086156218788722726585909977609602425952046233399819661133886322529625827221230932868250760302673032674020969774697514957174759978148280606186253927850513335199294339698003234389808569905666573305611175954026843796893143413634922033310197611139537144620619822368365350936860669244052282661043820296655869123712488127584319437039259600490186879884653598516543712249008168322204555445459013789881008036896693099113630909753667013347034563140678992779694664724667295424492698537940514902384524060408842482957156240199820269245292752227870317052767423760878683889373669193785026817566614345764786871160804641116601668269106826253724754153551006257929702767587388383565703396116669872400401098502383487567865968978245491929881433880637673699678856162549960615842200315701931898655084414735497918823550539635428799954274962521857142890691841445460837029192839242648894026667462887969936230892423663896053398388932369170787254560774072620511574885390703784803749824931362017418685565495799136377580240465803108530444367967947374689872563186214848928913473129661615194310672291172114143315916671968665593797265813398783252947241502124532735414183725969576188000106027657689174765419104985436277455717010158540028451313681492373146999421883805441706036837286488088351500569461966838257808945144778754090555091218876020223947374880221758983363361380945446896142560781939766473482446701065594437051266021380202510953801865595640704961992380552346119124479410030771162890300204050308184267282013171329342565348839929181649947357328791633427075268000956124852715640061445831981503885841914780013358646286137952010816728884767004914032496799291258931130995249878696884290272645553656380090499577302325889472484385647640124250756120073828938291438371651395075600310615395726258444278638394814068690478806707861441087633815759906236562154094028130433547176697867289066950621041007287463092149928432036296895267245026233429075763879634726411386993182265900107790766591103218904932207710816609931415341685060781070487190613204211841926249845383858143568004786272819939927386107754129047676667110814802096646811248287646429192499710973496945862939599563842272501111914776520503967128430690777948316321977221468150958958884907887947887107479677812093613605720123510070557497399308673541940567672711424235090785567538148938191861212318324003317269628733379525505595676435508133040710424660457589659299197000231636778738418361589446999159765302992278179065003419037394242680428494921900937214822736807203648198605412585447217387700104461468737596455650807409979291999842385983829493279173284516268773433190563925199080852949964372425667816687435447330891830169732915534582507594816316699132141170858389299702782035065503080405282257610308985276757118499609109379853923512289517596519647347656458210792820041096050456007645629716156287290831217482622696450013791854721416098286864699598774705844821131336307279306013030554176682157040406672322014206210781254095573036445379072654430525327961435581827697922802235256917414665888883062404767450378185095193476582636497287115290219101698051319643672476601898441477129382817830606952927724164901548830108129668170916710839373211046720468852043265592101474585492067823440350999646853038742336463426764566745550153417666496374861090818373815514153994250220923477357280133950980320629911734045468932234256442105095980400010952219225156452614789884770756137937059737571906526570924057213163313607485658338249609741779777962570483959812665514766735646072368854011808896237663344998169536954222146873679520046450124271793331393921480171300069395325614340913237327740878715631826186474715582188797499262980009952828885721464756309157005627151933943619941616088301538396970216929486375852396767946263465096798551335368019726950925695305329787824930660298560225719968400482941466329428017597137179166847121813934752266471501080811397916667769607222140679613169110889198373190862947942264129609355170796808907025003384445073154683033078854237979935438782864618030778985689702578264354176886198720221966734507996501208868987574775920755184410509905362387461888595712681905497419162903974879255490471422990498706215810586055882810382072333072284559606877114847420411716672962578898604557743694117909982639129316599641260063746732352157157544929163698791756089036468367886730487473212994829464517101273815473254804343710107005381552261833908761561425128890259592321605128559120159631995183264786208094507257920357878462549754494341628277443048926293509669894544538362588144370271484353102449771606301105706981675482083599915726303677509034507289714863558156356068850662297665090576234634135969439059783036406499195389650743282053097417246070142229236372730032462212964588449258282173425241574380997576042801247885252183460902726719118562621402570761921308383589184822765163964467246422475481845898818840930866292650441486388938487373670786461107681192074550898641582160871617494267679259301006732479847262880237603773201768925315232330661020104374048459517110018416498681793709347423527719132095367797833408091582579038127026976805830880115066050621455679547363786704750119279433292493249434825362346648434372534717794225845217435266547435799574232707567961742777038913710423526100891108979604204237916833989583218610752151340789183388900628731385511129762023889793180752947745020082023826966171869122486828007552467778039318986755962029214211275331327651553793337766641146504995035207880768866331906628327293772420555640324784367136513135279866632325642002260147473450504703914457446576286389818817501673364597891922140982299093085926972769263845123634108640906795118375713579367243559325890483280580758723737904302476572752729213344555728594405748808918398411595638083470535440431764727375869436509449782090813273895230744924438289585327747314988501053699621118138256872112340853412014045360685840242688000498836762103664047156245198961715170128237386921632718780024785762570565408038402210802178347801712365130682414705893301756079800935309859748694894849546635691386280048657023817639745240409007284219209889897753178516312891292720546087364807038402413819497286336143687870070823089978019250736584757409944666903827477719856160737128550002217475094031219517996088304356039498931655551661670653757476421254605716688615591170060036548920470590776353922922347511314182148796631905515042862214875621783477180504430567186169817200112309818507403709613867515216880061343905300262318382285172750750840059408506419309011962510377713786257806242039125262712877145147980373277937447577450952289622834824384172857196326245091556799963335805943756896211136454028382094657359078248862230084756386653520927801544786010190522260528215201033081753431916054073146819577626515468577125514997497669787818404605257581997726729883232463413793091578604249344258290931650165457074859917990130132128349662008409191782254217725956137190080912839230796581923049281054254749895859399297925232324562316958901833834908656267092522785259712641288382837024930105936129798366272777038962682708846681735463410085399179412085239506100506840390442510709460395464598069854787503883300675321239592950194888346185023999218497399896945781224059581728501013663178059448953541413299784208161963834426997751610541913856925465636891769129101178246605691892670819119362522563842240576788710723398408993366892998905788920105505802789969201935744210326940064322149200374869996685183164496728110725187088391756663853254236169613031435628722522010763791005273426757274246032737701011918853869804494112222835102968833392469650636267596785416296749893065197205047610325663311500901118944507826848691409044835785226986514630820178907282740218585415678157582577504721176556735560967950918458534301884575965461845761408643757400595273367621644944010425530778977552635059096991968998421991874566351222122098838564235599653018879694167183432280039541187657215915772091588747886909510354696363795399338717733678674375475060121867451096267074362268510919136659893110973005029283260353486047640132242811875621027653779049723374884399722863507042505392099450442259109715796420979505005853004871397509436590479114463872751177854656817491805881101555958691698467185626927400710954695035148612175941255725260147061845788373161663859751316734748413980808497456675931565619160683524376773172309788632279544667649820531667904083415336833464202634726693267952783098269549996622464057793521201127575736449661817021867408062084860247306578864758139491126340501347083777720859625075304210160930057690064821715022502170101817554045036826537488449610349614881882357712069152169048252335131656402793683584650953726255938924841430110949226407090345729252204228180179741789995164983540142859645052140954889083721781313711666447847652801530199422225201217990987602499749418121042761455990998234777397898850339968579786166000205769660177462991110284861579812246344237513648571016687350797110615392822186884425560031285226180282179713513673915046157486198999663479133776447344060989248158174669525990680801382675298017866958250277647533629370865701824463090730407812920706503208582990894184304601918144987414978689569546021854479600329419518526852577832385461272424210645385346825468212821689557545026659709681565479534371101083479938831402906405524081789222286838799131749591113513248651261766005439756119308894679219382733943924428297002875081339920983648528904295188810259918566631703647206087681318707250910084806386670176024178474285399792987860126669645464426591806547325273102057012532110624124129977354199065630596054812576785565236724257862530527281284335166106281370486933540435466283518275250067061443466851613297687323431086618662988543173351045983492112305875917099416665016322979998034324715344926481710908893815070754562287536129052200366934617525786593397463903366692197933149521096979392188968549095531232624412911701497863342296461651915063128843184394224174474022920612272663492462182606782804140004818713033361933490021892558609319956758289507463690799133616306691067777287534880128812604465860736871575684485384419764774042142647089665531786316764667989061020528901295616210994716986226716744324174101521263411286408319027227759943830659471309124342234239707673325718202665191345711182707831531631940160148935570609188914666273335174218285751617803172779848087740638568678169788853294925551645724593698988947814160748961936015357109444090712667873475340882161355327630714737237552942987942204839971858474098669177671873043360688053683461099677863191506899669582234631739155449008284224812461857923163043725187872733739114814779798700803630011934307065562503336969327135040698721724747231728256933063656816921424713706667651630180386235076474064753623809260919917921870220659895900203773514158938304585306168374566183226715923325941026490024135587182304202184313500059469827882607228179273052458578226829077697245629067110945099937916886803219296532907026295881879635884779838942286385255650907140093535256727619662630578549306251883388123959731650896018241324745702377858868187824942849848582211247098486557040100510048042942165681087331833323714766678894317139469032227702060875602329060398780317303740152824430419452956733717871427150639856986576363559272882314466865519368986312257827674641392946003463330273465966521294536747919367339663408422987912372400521003258243250180511764328354479424464270648561885798176378067496788702260680375470025938646140369201328647190757722702632435373865905565575312892514414090420775105943891997251266020313343360035952778517383348723398969447130257054596037736358313570731040324793305363001272284441159820575617782892113328438572893157083073123755464099304736000049423214992339187768309102856116118128417194979485320644042675483240943105222737739568602353434352151099895989932380341896134647852969210934123044662136858056293679230689495613141425997238602161744061632348600469722563549742720049261636517796981677402416384676441318439718045826361385521328113586212838752609723929260783100574589133121395077438509868481522628771730416233926991984400177179554200708323825176454904836583316343325726458912288575103697626457177107953618812611797552954821007760604951962224854436478136325327479962474160850230947190330017964322189867596850974101230025023993314861973006525604708816395140280388511657111806229628557658374140402873492735303551008675379651161989731546991988273987963851546484623620938137508531513212662316791798608615415507693822839048645965530771536424603049164303229704823421920899297732805611624102193439089740172300323334997057847728826902899740986144441066700923248243358169839885634206616268967878709074508526062364968216381708110790525628708021290029759630239214692870277917412915973837135905750091967382364612011362050497441542566105655487111440029566233407329870673735416707464426369017556759758209093239456317874989696955143444217956395877024808188611679466000714425393797985035359662721893867174765970883080915002302439901328100651789844434800023650705578708452428477609698892929779462258616474944108128156145398052440639921820386796289868895631913563007401467099166014519896872420035278064530161937524225387514770528984260132570335706228546854492929707575513284078221196240299080466166572112729109265335037681162512865920377056782703741325114245838013589349965011533449434587129357119368805285972262776655624447870798086359534929987746072023517376595393610326683859490507794593959415994200108830021953447131771430546242580177163917415443345926080187475981709554781258085145661702728336689817472489596789073080888989780623723683882138518644972562927417249326076540482191537362214620803102749191110073990755093785658770542851731081698246449361742191460298232489253733116046575010174161950408218070910178590999794181195660335743779339485763016554106243799407731640688902063622621107164254293473164041904000731373667127724516420145805471609940097886312543987636434776158914752188946355998586385692068199639587387292074795054920411778655703709846327494016815482083482224119308998092730493580088975836326058365508664501206928276857906165389684649629632477240541023069199560453146192793610185694631234943990281625763435890867331381517951183185500949875683265435919654447580722265614456549600623824275815181942462960235743934694701366737962238928346350024727874503485268141842941446980458438545793748438381417555581666342729909817289042947096710545989653952623659216464779916228753724766103973335013946889124758841050815186335326666763903495105913973460461643168834617313100564768365826140345804082963538141301045901762049552995703084404909171166115465724785852066240858554880251370613403910939005498126140989185084098668375827824086829169740038070936229334594788531317739068783338572637224110799015442717326776358594745805398606042635968476655998687750438155384452282904498297300951541243958760245222884999480202116451707154756566908563994367088246232874843473639823533209590537580494412132579426728240890989089865177100163977204699616624424848806679926551814652542514159333190670606153952960665263287908546670256562219924651766962549731123524033886108694498183837457728864088994259110678118523410197570340691355233123276058358290859310117448943974778653758525586687204067582488790332302306646053709351797302000291261704315420217439800011474172680675517878814131216270505586260468682606282044235454409209610682636884643585809592587143704254189618849588665234182183124390278330880006734002389889404777705041501185648380672072840621305957288501733523746083021657557040749179442072385717602591739156238152025369428753518057505667831080497489835372684888268275581864468771487612394827811301696229994032723838688478553133888692955728566847202982704863704919789405032040302307525993680715921978084348025581317982304316014563465901344827433349853779490924895208299647245506131760404038476483106208732379952843085854302106045580968625100823946639944117669216501865011651232300291975624603584594355367519944915099568485181344190765348459770160696044026357327247080514677707300474556382987308916710339570201418713914323284252223398274421965146107194437777077625904630953871555329458625706408320040284152763440265596917793149492890529781989331493060442436121052894525529263796420542503449242553023535771581469642135363733309210790891481121102156218528842525574264582293784391476203909726990444684832207060225965396504520666030085301020793243048225178370599725134110121729256987752217108649004028664103096356590713631474128684004322555386805541837072769742808241383689157692485584756863635518219320655843841846656398775307994205546757381449367878678215499761580071745518148978202130783812569211618725961894723271970701378839532112147841593430484121964569392404307952951322669488520654908332448546552249271859092105493028753948119040043286395820976051486546962550535891882471435998013724366647342697208756863240794273326039946078978795735962955368828666491245639388655532229817566035870090727419208762834357508963334017533642989904727125916437030450211869869150710148004012439730783685632975949853087357648596652587609543395605215156199322571500448956016738510598252989571138794313090517317871881524268809349387524199103890896105551632360134571735526743642911753050511000738006006979701735586990242514961057036879919270665470031130347146394999520571217614644995563204528281204221209434587903206398363370102982745751242884261716298748460222836726783645742243506960870541457601874553218993558726540924624348622924529551671444454184600063023747667900884368313289900107752308037073044761976596256370874674411972944784401629847411506199032011279056493406945991238555273934568683290660330091284877440576650672955948112374326434457385289747186040394194639506240423148272303116541934297424848802683759196537313923506499512645751930359159099880677662995538432384951835638306769732743527469389458373423455989828375390507661864485604208332621225188209368487140426587171252672297387776929622715717660442971240512680009862583828026068046547431284087674191827275552604240962173898643781476899621166641958266962957953723331212064129907847087753066667858747135756192615534139507603709571483063018943001830790861422725970093062354029410428669245429506756549360085092246696829087879333141621973142576566283401848258114022445963371602707397219572856343465317215298762023469754649893059301750055242509522285446367835090516309669736556841996030591261405336710200994422715404079728605376612827469025509238953294229060003040650305801472627352939982036479762512102752742417516428229931531462347207543931701645986263769270187613831674415208215018873058680626027381472330072650240349152746910788013718886835010859101150458945618195621263131577549944134122904107574824520223233383571912220959504938602123919093374007916246190866076761094742895405994565583022585335713987592021398791398780554154488382061815636250167542296162074764093355802743262262830219813030937013528489294605728307472932986028834995150034006269635763286415706689618075338791216465937388053887473790103057195899550354572066123291960524346346469418085138878534783796803044766179077453748207128247528665728950508339495858234655796618814979877105543625237752643243994966927094192614186019945097552887672669519306402255745955110942821341387053982424349960785203023336057122732054988438213083887210106155024840732611805523405321244538471325250204110427074010073763447918799335214254272440234340700963033358145701588009676051956954613227082976608332218430434559278976972151972452237671581009153304967832219796706667622184741922210490314960890057921647287840164660072595162619680677160024449459971223007709621571658328343860693674854383225526957709240610919767778926571871500274060691586495677642063854529679122172745894249429762689428125462921411866313773468238590573323310213654676556412352269482931533656077590719675557546977822272493159287395228826817485697175785320555604115469745356951318141483642787605323807931887710151415683041609102276000251924872869801071668274566384633909624569359424273646064712830716328845981475536663091783820004841086077909397887398602347364588081688003022500241632973507457648391326558060486943340898296773756714160204573742899654809516138082339312818346578166565914141179973395614681627761866823151903728403867907933961844821631859316333416699997168184614536767150499137684561791002902887958924247296577966142976339108347986420418951623414141068736941413283986248095407383045873383514603953603274984819425909976129121015418369105227677641966325089275620669153502931614112093695286260524022915116585163858301354515886014247475734246546160426979711132288732963323499535131252588505542956897828958850589732391492209114989281593189653892268563654552762450774342951055776100306168907551197986048387206863373826036098710195440452694739955167515000960588862219982426436337469883359844372011103690188325284691635209764981385659811850190561725694792927805735629962224232585636739402494828399440487321130707492946871197252257715512959909112613012552266952262242353699496262119221416464186363067615404560531532460790524692618474970484384324673349260088262855771315706087562952108143125862312532846370727076742997054245994637477259967898375334303946786530708120910969536329750363167193813182719369399279608812555475989191385207272679426915061765249340530135683588604029149365185280325354647878428055597806361902851282219605896952059718292778232981182783636305109639734712873539744575420478360237406375567821069747186450106392451543573610531276726779978494268670674219198439974090739543824214892245610827374016618016660587768046936424546605704056560977666292071338534764793903364494794060580727908353612381100784511997273233543077880641564351358261030648146159853607414904207764678755991166582516938885017743420636376700903204236963484718329799352409746351010557015395346777271470851896183829626300790724521635487050160996869071554810102611817330662166858090412106805354540419103003882110601175001951061453827328444910004431560240923913149826047853279805054556608022501284058454410666013299800763344341194881326295179021374230734958365498705525162035245788453881246345220837519743556433798605316971606757463880693235978200147875951924636388954387041657862876050352730912759273371243567944670897625481325749417013107232355098200038718512701589893377188642883705384179733652561253771798025243260940548130041882979822733069445370084983657751592376235930986254043241313021963856214804608743016145543907976200840578427577729031176132959552299417093944238189657567456552376306481019067420526232974586918063901436560582154586123852232342817802568414804948586457348285103323033247228556175748830483540921155434938292079461920131978619477162916049864839908155789819047001219005927230386602200093272587593799922309544377916339861413102683819278097834316017044081801721100980560189524949825886093313487436984046118514151655636265332913829335130739705513125088538633766675269338173254183940536852295408681415279481327046881823559163640450108720159270022323437192636767759439438822515011348267830968365803697686893405059763681936294130212925693228239596688028158210696536705819300195039075924099077886828089217332220345973398979972138836064644362584508838894951051333991369026893012559584436038466370242562381390363204751793131221897632816705988032397571302135008053511106767838438798156691349121408949181221277678389186148048070774255402391491644317857272627081733518940716815313614641300126606453351450382904304654438220318172152828118496838379321549917355187273168164443999251662486666686528493262287512248935288921977414209433501652883407315956872344396283484435588823408698253346727282752999433227563389711178133718595968861447000021989341146604689125520054171878885945788216875254068539157912926492904950321708540300551036951559446760315652420664889994055408349656726330960742437123643568064654771454118840213691242608434287716811602708435908242198752338819285059074912357734021747387926241030698494720140342857551053710914815296441829398445003521744943493748935931788498237985620580430491499744929026164057394232761732412193081413743510656929692312983239996207554134291850526974669421406810214203070430919541277359241770736839319666542843037597424589203769944214952540353963282353153012791475822579707921201144743366128357695543055341707757218479499528347280999139240366666210782479330440233455901231535833053202906376061906766718215772289305038468961412458893146980708862369129663393363825770329391844498657807341045198866912998977232206248491353386610001873665160608703624260632796243196750524797030606677845847209433570663177138321183612283563413728488520617251189998270035407440371425073852494391387568533771984369081519184638586673626379871626160063937002091237337265994780409212543833888425929604957835853174187897443326140007679595463731111959491831480213289067193021049898097914283417096768948968716664627794647105336030661547012869041738329303019330155363329460050686435283460085755077317496818262571213502503546660980718256065880560933309623554260917773482374628896326644227012730592970237668596083201767174967175325199882978840424004124040042174225120703790854527947935043415234847345669059391757611040738707812909481686737709964627388564477835143746476650599134859599664882761582137543627564830767945948751434561138721503688015400374199483911728051563663177068472678518012522127784921183793081618042718369130274638443149061887081443960881439230394953304301978077387047865106179114913435685858568132804573654523937359475276219851087244221453926729010725229829606729674563856317080426443083556599941454888149378671857426963992572484692491025842860077546010754269291503656075749748063142916577790656477491764670142965511002699746230289796686414223081804602381917309603475770941406205574360518481784151545687015859766737598960369571729780420295481065811147077139292923888053844228785887506001404169439840358218646948269977430373010286680689054669519040939836058481642363055868235916679391799860983895917019565459614990505063464185125593277153778506424758269137174599058513665793690599291026246545676368338671680722495151168605691545479335978821709095929278957995127730513481158989239110335394016099754467642745726694421030013499344748169087082344831644549685911178938388437202426409458754865840620189023531951091920056188190670112710987044476694290519644911307507486877957603453100664649993196770500955792813520949713354498376389960781348560937359783811059207729453056493954847153859418324667656903648368812830499899838563281653271373043047817274657635233259438026817808074907153525627964899739604061878575067832664341466407915463795965825981624849531033310307533795299865180107622395961004326436890038671986083325226652825775380510359588155062662789839677972576091288368090480368814945883627529426743517894674389111439637688653853139412392467467567447424976085381748383106400903504514483285169506277944882213743178492132628727405286480154146139466870877298408891926714158256519104587719480580784578937884785861045487330826924618982363633300746648196124437674458259027055404202267828262549603877464250522139389146099350511731958063769461456338069467735047416053300858321540601970326603656266212487954192545822261907528751712254128169392462236479609720150380807277716489306167544567684730700097451872223443219777803264621509416149608035888357209497450661883935476583435221816411768004423678378797696958938531300526920625317393281342241990786896784663095765158057860809005867784197363110718732085471706272981273216156823263433094831450380606745065101984217079230486436394291569616645291471522794989610257697415149528344463529014442819440662285233105434498422761159851062884626032698141873662877491882585884119616854009271989321044276599390685662656149695954794376491980960940910935775074240475358681315270228541928454337655910932792941738707714423674639414331220330133368753564184751175372690061084009995014385308983507815702946440232502239230525764423139471610112666499344655148981062226356956587070483038405523126743692789322191442629920606763162560038422100659781300764524536163619179907947776095027194804138613653115071362229996653584091745143060394058721818442485542805167108118144102297252535098101676742767957267918353262436858959076864415977480168750060418809264719995713281473120306796944025345553844356868159730205292587642389637014243834353037034746156382531767354933883101418753331763157784203657901140154487977202360938486045609924794679426553849691165968915688427271184823485024152266081865146470166355896021975071031591984406912957555731363656839621311662929287555432157557630622835934647111288348691845524584328005503087125324660917891173210843992740336526925829400471945822709761809888320304107029359612943678624184133822211526942072501082648316829758825682177398324963475690870240519543618153911091812058652046254542510011582917328797028684237287509819605627578927863279235607931273826264780870938068868773742993721491273045473887719123991063477634467580802525986787926733153369765079530862677833760171761943425563714434496494293123369442360502200540005653040846997330881955294390212341950411106628087308521746766571426407290100923139296832114575247062158144227288283684914783420639237453149986548617499394024711618037805826580633189249423191612534134544659560199425332610409649438321784134499215208026747969249200852978397907483894619935341653903219085226754953188309726970999863551154560528460531490969186523293242013653706893600685668652778248454508127545708963070651545532808783256925534122073939742844686809948713233790141904107660594424731747277250649893619638846241373624724554619600309028114858446234416763168502899006810205272006432850617335878800480020031729924929792996607840770897706142352702292869759946298315301100279820011412460669852172746175617500127046726441771529922174192097860051385259076880407118447459475961366840481303633583929808609477271766523005358972988551132025043509502323879778816942258355288131332699170468886261926168143245434260731911858167125485625753547874382553214551024071279264733395070833640839767820469251492790369028681106887568413116632492669896920271566477732153131192367702086044529625901971463139161940518962966391684852070694866201916606703784015248610292792627310748453406030069069089704925393727856907545633242414614042046511714074946914251341371710124263252115465327291984958291223659722419796237607346644977363566977303426907515950412341190805593795998371295253854043218343411130070251275983314675799184282586846475314685103025128209192683575922071938159865240280665006625703913070403966881732527329449081770197070840741992728844043400054612202884294236017246790494221085762903034188285998756251104540111078568400522133502221276019506001494744974929610846491526519218164819772773403701529602081468235634951807823607277264995037111336496833943133824697274280296766715426098207470738709458080361030531968803497037731527110281985740659192816154758453535275033015258906983288929050240801891507860829501360570120873283279988004304033413407444024053846599138323645529198323968430727498585114441348872649311403237224032777411878239079790634385345951456619237779189019829470256703218613566871679077376227806821110352525250845902862209535890763903555645778619217427620199737484767836412548094117179626828944164359430763942244205165731802975610565719974578037338589783661845949013698650333159596392427334862599389030242069608980931568736202447589216584414394484910939807624744135412896970842193450088597667713938230289733563778389382273919361012632345522678162766528821308838744076235544746173188799245877011142727084769760397110314352311225711399278899682240362599163703350707947667364590450047096567762395951327691127183465989948293226019654836276348230005687264290146198445648916555565199974877813948909465600725239116357404736498724744010068764455144970793791751692086468072960102408943086083327381119908372916753192324717192007037467741566473316955092844826279828082164459426863670231086322878733922799202096878058569808516994112441885940641864542992443649342166758375870116055422242368890585648334160974594207795292533854323078847457820661325498934021546716537581085265503086213049604690366744614067141747467188039206670079848609041176616231430997340366405322557927544527715505092044604838289724043417037118284768518343331399806245688705673656626960125020959906333928809498342396199079465021278375183310770876539417364975105283418756131256059709725287390461103144108754894691769131938637239378911781976791578342184501939422564936037750394259308886235205614582532079235687352344642821994750182295420164472389900152370982832817344912027563617239060412837907687776278371157733924209414059304213499170549927768246435631236833870139437671127721844956823231498860252186707190135792076126902633551531898968792733960398801805532246103575889813007429165612465923862784650490198188912802983778087530607291073690556667929714836770615226236366002198518432656758358442755789350841946488140210152635257276174089830540875738608544952316440627689166384357503320541979944423383597759428519576781581769528243235393337318528028001482273684830935911836923124985765216091289161366442544670343455533984982610353314522818253698303067275271462347607326063234224496892916171113271805235841684720664178468550643437625243515521142439215668030579117544475632010361044876412886392761967082487466998852631317196374472525010466419932657616335011577923117441516438432292046019666213441438892503895738998297530175254355032950161032709235057988413817831617296927488020534403350619555198069163003708038366862217592743873278617757052420584664995717074546276407953832663170917613605941803096539445335546847687500333597294958738222246085581780307249274653856471750761814355749651245721780569258034111076789155670427498423741156595653871600124644325304730246635887275077758955306716757555802431321208490417292134252042072414025231163734618128525144611195228486422475407253468632526989592286228696122790699735658256387697546152123006919671052788309609174161810429162468475786126307210553380857019138689939125805072642571549614046179928311038154657132345769109971787456701364766031900187327775046072051482375237594773229057485191854224429514231542594058900239701547581013371294159538235669674429072791251543444184544006684461653989529442040236913941723760244577096871454912964883304593515192556592631298069661502791841074197773085147067815354515366637205284667105126178733306889853329256455829977247924077736235558543575470352857915978908924405045482220179915852373023801627958523939429381172666104329830869718429342098616566397521660979259776504226004778651371468688244932985746833862392405987695984333820768030709954475190004376331297801518909018176925231892918770439305783282958698599413445178406963398023653799193027013772178086172150169263549394744399517838087580364353806392341414295601561456767875397576815828970813109765875759242780358993315502551465315137071297298369503492069485679077139046615834496594140959107557868297450441759426637980032524912850964026674778161928278719215028843681954818536772954832226637229717148040679173316253427592361156519111460181800160989769113055799371008758820018126755147790961146277024027337754141822872342018669648731703361999061361881153982977430842025001506739637085120266121551710394702587659325361085753112595745345199318166947022704528604517442472147860094538030949734490586972915011564304340559367169033979532014067411711060949569073133459341611461721826591263581836831542725404839334942291169154683855358664747431632048179079686582959906956980666332922999906243014686404445355038717184982316963552821105052715817412269750629665342053600084003939317299080273406387622344128449682429707909108777840979285273107463442163444959590475360269623222559827309199722066866016412849718172821454767543791105640030338815438292454125121481020802320005879542275305727545609388603338277859079246772471782963231061620258971127341257399166860235547481753115712596141149398296878862625218304991385530685601767986900944835904849880436348949624165758391521202511066481160661142448230176878469367542889322336137311168105068125294360334038650121866009119963888071643758828228960655108126150890279814669564668392235212038071828808234934533223482225247112488503703202067804716060875976057579887322275706656091120819619186275618646582527380847640296187801450914415691323938237337112693049103294521261373357949472256783806309232689152423037136986678292941254359462031158458871152084156249225242841963137633170963729327930081426370399838604383342106973516661449861512937535567166703156978851393578221314289459359826964387421780645042027393741109363880501739942203625283564038508037351576203461862965954763722031049474415160890172210941088046703636731920733144845313290621378405037418872506109506865247247518743727095886613865546968805451583726294028932816377966203450489861849921834956081393957039835988050986546106450153861306038589247889675624206109449650304437156805467241174995045781965611641177148812982725100224295742531262961272153875510647587380863837250766355683646051217241408321376904760262278736985817315819187268239775637655255631303654148301582523963624704748375954026905942813532849844927703174294290670296774835242275547747153283951710871413512607243161673144130610291801491391084185235335875308196353592955390083634588072232440784195945103107907964937962457004308715323240539321501242226871351457404110225717534494102030174352007654961637933598666061094323418652721796625736225627169216158678337448613262958473868637720187207111420955706505201989552987750504738202418242214861430238720511190026440588844491705346174584913326063434424704853833191516301532939896689746545142170879762560410836204772133800889979164135301992935476289804962524166737657981436868881005325447032560142441865374112827815049920989538662909896757324214705105773440422354898378402969560122723990708884252281410807516722451539390163553648776326825183746674780821493918912354025812987496428709017678993904984699646611315504583173091175195905442682547448150607055872756264428596149394693076788313337343573210143764179359782687386552879557142696690668924619119876258856541298890496078443126598690488872988117680158821334324605415187475098454043569515881242153581987878373074393628164968942716299821615301660402820153329932296606058407820188608747766973523347759806417190193398103532357226177630081928576074658619060408246768015294419085157352485414604170801830501936713043292123079167464408841862575276216744634419329973098509686030292018622789202929528573807464313779301000803836422898640755481020594101688628731419960376271173106958429192722613553253032836647995834971218151740007257970988588171305368723240113458811065914226433002745067492067830433586625149887013713648479486992145774256864155280205674586171087683786274283837791170403584742084048136948251653237824222619816934982985580693459390911987645893273103720669532058126614065939982558406648076769500650712482628385373725317378772602569589971398757618136267090133233742591637637727461261984347159869107545667689660472436425923758026651343785439649949023675283132507285400407386097666445312436002544985746278052194181638582848501950548753034375117142044010516354439892494833868310902667644943262362700944619029383382492093250811355077975842856879623877854321199870686308267319051851203715616620935079030149301418334384250632014109394358611373792375224018560034567612476574894194781745640478242067802977873040827141111600782393961329361325365049378457481541245193426459275513075990997971045603810566080133804955419825595585704499033690898891595604666212112259722705753606408365710436884825290219535079543485602092077731489084207101203798112099236015721548818946755670040409084746182779285380864315821069118853486056313293088345131053728259319253029977054935514017109604427020455183212240365477100355490705070886864253960753183563011144169007060194154182262637466114572664881048359375494174532183478643593203605711287857010206973885854419833313311214149605370001240974146565266119652690411671705595197205851034326696315244286553683181372234509170607061447321713854818936220243560741833831655791825670050345924735120649530854877830342117730907713615885225605247133686762766085897681440615304652501247198323050264800199946466213858221841684126164232496945849745733017196844530569574995609602664782099779997952528158386433683057885413784541637627684676194741476497787657982311465372665122687604309332718251136573019184422531294289772918139028752316173453229087368721294507220472741644042888977551107685497536693096168530305976106784561812219889857459984726694530742951022902209744145467892691552636543752649635428529050410462085608354507577564998268739603831583242804386368146033993714204181299465350383821042325665566495817800983936138839292030969537548888396418837111351543050756640809026050427135689632943741658174509122933675477810043674443350670884794143565731906191331027414783696498019128815958335665653560195411561689020116039577954159525024972668806452034684904784449691904286863514015124127143832683893618898619708925756836434791035979442391350912532388531615353984460564726309612905529797045633747696327557507631193279295656513514924324118414286241519353548668464059798653758712115642679575447733556434275768147905820936791618016106755005596693974303546299658439332719663466592692961052472339813316605623912832533058889118729291165195468027267804017128935673405082268043040177112069491969169155501121006872866199248844145986913441430753185489605564352957427763780533850654701321177539476736129773944968983634588457953919261545952653905731387470642156099887575481273076568133451039533228598293718287162888644826947566606031928383935319846075210793276616158869869511762596127091424807259374534439231597036515321056685035442570868446517320939870578236466279696135829565413774402875851936325381457383826322072089869580048179750279419977571405888829980847058575809983653791288691621395291283827687722604948023546934727065976104690956272828009526342285144302552879354982093427643792768333239399790230641319751024664089132259481483878944978830813022676397755951747083591430714716298960655364167614838314797101914323316096668769217587242337428289762010960691761727836143936198566792010779519925199065082684721627908374323327435400821768797725794192576715508518038255518993007267019148246733846796035112841617894949239582726865568228279321603732717649214344215155164026513607134910131275114030508351124627068813417059199030859034870263240124368576984185163073632985164478616559857313081115926126753548521614609139612031787015296244487652016824127773136758878767793635742198520899052254636738925096008649800674923431204073694306344841738474036918582846014280852818674583112990671149503269778268115751041265801160635883238664222226353440727030178129920290215613732250690201490652828313516176925308108066105180323279283261674957846020999425616059421890781433287211971432692851443944236253088574681600670031841551224020924638895232525776202139777292717671781370190585532760837217572697993655926766858561652737818264279129099470750733578840038692104199217109240526216835687436790870531836283239059923330819388594220170440923346968556887819578188218951869731454968712368118618236860608411186677246430698637057225462694050970765412601786731110225397835261309265400880746059661582299024955170274301089426844068059780584391068754896481431893957690320498198292876263367557757368560775427798762641784326139779971990786360364616304567433041214892608410528463682927844859928648061066063794180572557504308811487305475461177256610139645680370326434388754373266060588282994209712529843244573892419697253805730624256408083039841348916600999931149298141730066545441899364043919925722096222656189361711224465948429406889423175887768661166789069995763040004495468145249106215121660905679666762915602833599382093009412702066804685239127829034305577751475363826982424324700632238717455440142766164319847681411728713013049916617857794015876626906942943463426877645823955942239474781952208854663574192447589122744777510736852629770895461515495637366448863061621950153663836375564756828870644539145219857906087687882376087261467204369063229963296988877472269332940408206294305324943236736462046848002391542668218684894649586902881734486342368920885643854861318059052962756061558518850322059492472224985901727537866277778609168280827233240924470717248149044078420894879833586564711494135761969755522589482276313658495408655003413197787628014634272070949069570616406937194208486429894547425959680749577165274461470191362495226676539908789112939138819943834314743532396684417486680690383698191240299975799790264720911163199407013494705283229534182443079762476729106418998440814353896165656338204146697525779826980567264752039048595765732634602857536648935310471169906115554150094141765966096688869619697641290619622899677805012283915326174650942406712215193109198927378125205262633239016141343180862152222518019927121137493433049447992510118467168445318760808044023911438857557155433755418617436611609523688386823220613163362910034301409263096800948690243093514556077377969911769178047241362571037899942600674104486366484726590827737209900406907643085481033321734817328476596421623366088355219150903751448179696869435351350929974905870050018581057342981113767830426285330220372309752099855321213446268402778410578192930680525324094204384320201005069399832512827137270509380419130420879425002118997291673773124728780236118629613321175038112968969476065736058585621506689401761900246540330074918524066444662602064074006393927595407947251085652051908707071434443181661321658108289465548106759205400314221263688577134849352951202347109691857193111134834973805150808377029774348824680964456295978626729171451405068295731562790501327124237015345001166109824679610347994216498043729359168204814225506000837967284812270352126826895002664598878252215998537878205384075588871930515517302923210911941960960791511914713539658280252625718511483627597769995125577911980335222809442791553159668985332185039295618262806277279866268516176702047258037202024875347207173264400266303466789186254098804384271720242799674114378290720012083177742947307482582728051536550854949766106948256256734782790022537322141617401664058721675156531757798835655517965042810844025289680805641768037250556856417196527071457534299623386406921935501796687910678683944862503545364742120842194270996368908590181518901270295778069395654526399619607278245076125963013927998759118803191761715656635091544022328434623460279998262201888838116851839654027339986374126331717728413862315299400259926455860807678743648890332391006159608006402245433829399418092587882412574017970303303769636007517996107596846662415434142624976138764008754383972966347157242272823758162561494562107843560245276032509008044921598575239536565840224476919211929417364548879926461710624547989295994829654992294266743879630327684190431948439126300325585068303296093362076018240421028254139784004682525026388785161876695877334267582651934258486460420557894524129250819158564988510792120849785358330438880070101784411510137975123498650941395714931170733570956247838628925226527912933716675597802497174836486134092137080844621590079116746500406442777642960665365515910320000842530410588622823664361092178694892056801460694275816632886520998916219765172746029968960431826538163098427974877504228472475223556530168582124653889534469337331249427038129552091348656992545468475427988354317542222099668162262558334871153158761960657536821515727563125518435541724462440926221285518207023415905810023289150934290357767249371051708865074721350979988287837493689620586181480054238052005465639013953440230374677885747010642978681617448697620379612715253721060754867327939193528939657660456456046642404382393082902464801765251188577660065548877739824468102780079501196009795057786116805954869790645917427410559758398161967128090618467080023540067152607948550935657187083298155997817418871997424883198404098809291600726657860244218169305290775450510839154753934004508818564975248509383499892930304092451516983568178979486971690029701209259404410120313035464670008421420141943823654120518789534274876553887368541416707923580236236242247534122923963515345343101315819312610295827085087328456372217481156040938602314530925898185543578172445756745152018900472872278029264295001407837938259442165970473866520068795339011138059485406543850068352553547736155572411921712815703160201288635660412313031536593833096875090102062862122707785729533580703030800499354860663788037595777354459923361037298118194975493262144585408115000185827884210414951262840759907550440947305224377550857898351356089573520431088240229920786796227634158313066946259130236926138662176494761566454758805339345192205420547347028791138909920166238897117021385904042445060311840004588926851813915834733855442238930295844411794779319404308383247696358042990184798690381167027556795352934380114130137869218623192507074053327200017417997830197739650772830084473908333202814381890703779201011871729828731215522725420297008302661706492956988719589379298521164905714428353236886859248594565390544606913388305088846473728062706084490340617708666121536714318739219248664892029121639752261610607179720738455322754085100011552821676491132425964883350841259248785752514652521493283480625018622679686578140056112217709204449388838762387886223645807308286342333089504703131762708294176679928231123161988372228277086963617976411860120479208654934887849989828451527950768004606772072149448815904359023755184053763269087394220959337281426504081059346984387836778267556115317117169656245884076649041569524731163326051794342396017873899244861429422672567400453049099630227700625967121527000510223201618925627307285951792484686391678046530091314183987107218929334108104494256015532597676171815785718256738674048774438377536931954776857983765330293809160272805639284734231808977436723723944756490994890011676966925748086179315320827281807837808972813203979002138196961379206925842971562235661060787321867852305915012508080166658847161536647848571156241472770513073703219901554664117115031632460590131960857807665784269773207815412591438113008565947519663999184136075827247987514647570941780729835739184788586415222706690875324937224826545455828627202182707522146541187311269504315223754034209929628870279593125374919409955989662769491404145213945161869571446315170836104386069502997349344177685645831598901232222041700139881124455024561679573737061155401146082192711810831470765944309121096196839356657829512823563049349365305484488183570688380571409932998038623420495204177226587466964611883001199717522118060878665792392315056684271889102353437208985807091635439694421738178292574347096692579814691050904736013897801804829708100225722648477622323912892745211568930941242154313767357106499027319495019030094213093781781816381492142194944657643856844547381789299448494040980466955063887167393983189715865687386274337596922595318984904040776842327536131632108405578801234888583244967762107175707954882171429818268041096988404564242959574639494414509740043073444427143804942159493180961225157095721495837844196166211222647637936243952403183374973655246615091124608916634867750054759099807561023593977399187695497090192495832991359060231160344969275388896525123033098696745998828767511599640863510066352520952902150443670928703368326527913181801363902569282271267402915641729316038707272821376759376250367731024049084920566125964830419166973450429767197208050763533084317027473618222673511199506360600744263153937619051165398445252313345216801853596011675709338246070177225261566309229410829939379219271610890417529314180099280207736318558357569285721638402540776056010135710820419681739425584266555640149918708333601229613914723244118062605895010836784516758071336251912154728123750735764078716237149998555358371845078549666911836263195007751072532846217183061589417261576114513488937844121463824018598256707917129682920325256290260338686461924767206844580051933906862106891865788394386608224659791099376094818813498442080924112811052005917374210594166873158831136684693282388415323089666305160329174930184686580006624933905202941417669558810422774765812802533776277996514471593746119748424517928004216700234972245406198953668041560625187632025134469501895996598549988096933159928037184314726210141712396820872479203149844636384058325305179830914123527946351491017879018691409619808136166856542428824451543962875378120681697593660267786848018554535487212331608914196350026460764800531510677031772395848833747360499128016325637057121733926980470661641425095407148230862353960010076247662101386243327550880342526957326704858978011947257724451605028496732166986125786685931227619272550609518742811322053323681850571524134776666130137991520117567966654230078673142598010944544712745751124297609488588896741472522470923471621250105618401337258658796441562659482891810665325693912374731224174781576879935331398222223658681620304758677294397447119431110292255504513943270835339983740262054642119634711347551816754066056317186067307128655324826257368479591748369900094663331498762536768938038302473805075350149294216116356164069931769102578481729718378429181088082412346324172951275278584082567475996827987835356539706724777748212044610631993289681014908869091240690405560099597469777492747296862881857502391022177824935213891037851162915925882371616244856474960502734727911515815448257439628996768050115140839555350221270373911064009171935588499871766521445665691319217919018352945425122943238419008124214947575193875042434189251021577319256321931189666614094985303944093246983876233785695180569955299987503149183137015945969268823667201822995901400034904282121063459491451904632885650235999207717668092980805971536334243955033261262987477769682811407183925107517610329066344161914226123995437578081488026829610449931377347115398237647074232162153886421352133485718863287421150887777571351683947773352209930572746539674778695642037546382021047498705541411327176043687786333891458423902893953996764096887428817302329585353024171952756622760579938611202051741900466433778668335562629061294646586351205317108243438924548806313211107136486846933675064614380902102409067374651248960238690368483664886957492142362139662683516037854944863792063438748293317468917107360882177714138376217945939981632650771809205922004554152077505781994531450447476336164881931867814508398746660548665117323466596656622559227465218460987411429766211227168890155020823535928025487310464680100672086878321912309654936438374817084091269322767522018203038614985329365758673705671536336034297997534239462823976491543620158910710867427551366907604135851333182481992616663134003203755317853739458097120252772890466214729557628038446344877031396130243857596254043312335572432242997474848360334598759151869378816824024009898496183691483284398456903811976221992128837989388727982142519948010620529486624163351235563413640619858014925845915606224435406883421432999709105506487215062750528566072822994026101719126892612792348926642317023121720145153561604660156152564566090005752691561801526649034008739416669211705093791020476678965272148405250841102464081390479143100960818766235343869402542825881965942325051879461255689168281259414292540960344214662257525517299466682038620034853074808395682357833822750275245393683953076485131556425743191736472145316694779298149483049866160508494169377588303856728903225572344929267976899400404418379388605217736364820731201027016415341873394128178347161514019989580364177332494427445530132585102802911303002176569367602698147550231668179556261760936653195477607329658803720523793485853279074578687565366190367885292067581210335437151017685195393511243579755563033240262969034961537392028436442439348026936143523877776459029535307646332606246447495687194289219973773104104510741433101273714064255249539572477211999437570669194633488117712529499961577307669556640234359680889053849162043926410838986018199431439820244135010235719860108341754880138251283336914275388120109776257305659539594785726596531002194482240143742494882657373208656202549297405246698831494994743270489040828855070655570122125161064400584301507905368948504567705839423580241582229693244343887805682234125053676871936024829269953944397613081208050435311025359343004673794763325568440227569792165460450177891486329967345990611511547550227190589926411482149538188189777209685758511276761309717463086157040264916885253763934343303496033276982151130830929160029813615468108436164428309877311362250505941868376251786871582057884645647255491324837226836043551188546587481610440232884237118692988174446352334188091140765282400042202900782995885506559864647217320077891186532479147395574655906048789063170189414117877196453453239965965121096458106397861868898959126996072784134581896156482163930888818880572588960238634133113835323872140682087820255262493632605143351181189680203632589345762540121855247644539812663506163699061489199058599089119876584134297888209599569858147335049652604251462152332710106210949031668801314735315041010356687194808641867976629219038290157815154302434245913588919240915316107170127665563129962247200142265512663358033080191700695781227551628825051950171982772508250014177954778890856058388570857517016218646138336424213827772100947985078516056711947064667542144986490712703526411793235464385955180108213442467773647212644501287063461687978611258918184407400330776400421422901215526019396172314836002055787089857638855573698913249163158015860146176760872222370537305325867631852675275180940405016184498637771570361907400651922933194763247782633281388063028825739338438340411461944500469726193087302353299377374805210105157933887178956984292829012233426248349875281399398758632250416245542963276302185958755708070553250136665948969627118532273360625262486687401243117877409231356612584072623016610519832641244463000965688567367556019791916255004293810109789574354585353923764578640135122278618379874143154318139026629139223031506034826081915160737229669471494882198534879176339112660883980491274068675534121641140778625729395065041589740489420748038800747759215179858811490457909047899289429966358135542928861045540978626666753438429101274606899372534289582496956856150758455404346566069334083852858937308042199571261070466541643005251608734904151585141909571731745399106924200186519506786384488842218284981588306437863184646102684150421391091407182349003645326826190807889644186029860254314808736311201992736871582213216788584285731154476827519349317698450086749576070971915073322761335248574901513500804906969015011834277616894787368987286841460021573227164472385987518409503499455120480228061892145551746965677877893344217415973938526908413391421615108965076998296455385643497346214136251038057932015693006515109327061495365011953345555882781388697844837825759246765829243171888502395668630385987579614459273569438478417050803071634819808658607864380783528443854831645194211899272935686916298254289030605995126023346985669961281618602022640168979430212556293747529654098630264410278847218311127190974489124525244541384376176640341033076871779341056388659509806019810755157447219626325527789107593895817844377839947479643868969838232394326167924997324603025262538548387595400803643275773018620080826844465733641484514480386804312948537469439285065006110089677298144097793136746432558301686313516596889962282451773505920017320700990779802863832432704915835776091915373257051002219242017912661189452742876905480656822089396014560333301285241409298869456114983505709644229027185701908576895171351969900835334418702482873878611480471669782485132064611841841085287692408876465059824667473293186277944749093996656281344998137760030133771454468554999630072574683227820986776790906914082468036885758754442012926919181363441131073600889157212057897180789219269519479367183396123349792268657608115093691383963970925878672636899064883754259811750681676941274783393667506752275737088772965474189402975924156431132815295968362811338083523400340590007174764205576194317158081706370784607495988467624277740455406883070990699461889081838760863539918035226882050666956364217966147193911622316131752787009385634673185087589180394697063749756342711123325102333965957907671584065019549040314229217938890614964296182409106287060703333324501966318346748408427913538342453270277792052824967408289334519346492003949341522403481382322506110881232545768208959784202386216784336059223654073322727262726570280176091207419118012200634583953708304006988662890279138967380524991708582257507224342213106385112827324776018940821556351506686660518170236264837047464926107684888291949859944547545561248390205820574579707857121701719821413063261885209908869282089014919292200985035540080192062670878982033653488737371421508723663629394281469980120805151853184313657235240964334980588315318005592951721989115166284498284257833349627090721258660695607342789154321891660068627354667933162320123749166494056495954955848426088852945654235425124378765175577862333861124591584947346993222135138593058670400001586039685209094342912480074303213713320865764566517731837287830520074607535258491477237823108635071942327053498627327323208298046432130191721216675618615103470814361409006617752715564480338409625439376147420115540317947214506456707586274417549156395666993313500506753577824006285389126527161873857885598223215011637428418857326313838882284361949060148565602465345299249468025760963652194091289727514196333976408514878538473938355534983512002613252528573228979188087892851655807882950901004428330029150163054747485963717455289634102591160136837016826789064935602967571639511537830333822275777208308450888694734865141675023080103978192998144615533757952651712749221337001621467777992960197084822883894436050526209544359062228619071981457993636592259003545104044197443655785297533893393041617964113638351611592342037094937130524510498752883208024327868103171923618427491138822941341184736172959637951364841177082025352494934848265061331510116400223494982686926041877326130207101284516275551531109971836582860828100097055504511788325901204569822484869680585310546575932866582561945274324542453295090214019242736565452961614291917059424943099468602990545750547204713014707159220515378909583439562531248886560575130661193966962927728473479398061221389895278204551821654223311277837452260856760430020164944440120299417155613191267923131231815329159810100104664433207561138765538918573962971602021871935400261946784650592935845497444083158031503649839618797900619060394679120360436348485589442289049095462740338961855999194719964200777007316958654572448593809210424860418929564652551370057787211648928583181165404714134630327750258821785749267971024629487336578680195995876115676122500928994949720736272522151771472668333426400935182695399020134678140763273365981713535017740431474196023295355178925341553726296950927046047494917815256434242572319310676007404135705458141693415682820648078299749744929288751881336011417696481712689267247443323129467273856638098705430872407531000132958370958271380960019617017602354637528398903808162496380688190156904795693636658209301724735748847403661255261127505096862480367937275307807711688485485534862646363552351566960117775475522978289543352044322740341470736178921801644957187511189983405846849787207516315665290334836744937648604392049804829334386430353620787867630577330899948664458939078781443507181824448872927283858766889191633321028543500131185073963000607699752243166101265953382587781270736038355577749521821687725316170211607712556035172034611399344254789699634263061075181555884236940828905225415193512880949229718474312883561112812435456480120271244918094744898603665755293006908116648862327759495074563332471950986953575053724062322042751737990659377013626158017944784239313568028109519649002546311074354779159905254819610351707828092065095669180010917948234901888778432309197057919253856881976445429172949078408254303531259710362502283945805131681254831633130483902380773473065206144495043210218943314085157802445507463082337286234101099796911511096556453519339611754345527497592532287505716471475487753793621417048398070509528526793579449845384613819283809440862241026691617484572319003100453721205537095900574694565087333883300844899237365616904353750932681905382708321304555886258438196329100839882110622104291407644746176584590186476428343408603747918323033988979081176928389705083567895273089131026534949102251856980568862155461822486079276355028089182944479549184654444897862910681694508466294677871466747893613320002401678473624249716287208843539856450742617157030303964742340420835358573023556382966796975814436560500661007250709160734757518463495427838342145488899063513966109536287527221150986901986539261314362094161686081557121154482929543162302759492195413296818175665415570880914294996396322415203587936779589165521900694537429059107822219119996705627183278836782845630707441285707457839784089378337380832097234199505793765666442569080071636699084298462703052460525623316444648271796023869033756721205281228558981030192770976606039203966137373840110802568386785649943394250825525074180684891869804002012053714450382129770703313857003230303411393749425050649019804851821289882461025536702188097345928310525600524043362423214160956759452780502872543965915859514628939569550302602120803407405168723742611229970672295230925287683978477634134708449192864922933256201591738941469298670537437957872189846255833208907963668058435287391771903363423515320642272649149009451468255168124328122687127336544535829536948675082056810779630475599502111758683754096391594413430503370767734035879503094049423575775156177387421097927222268687438646923565478540353675016744265308874400223409962677005576851473497569294562401505560776262366084712679852672596117300687401429074055223373013720657526108433779881617944719819116298562394741564668274422337353824972791754324394405111186319345445052600844563028410035936488991129648970779025520017082747235413651416366924747999290354388671972985419423882242075282543491226945427336440974239860138578330469408806847818152876776213053546597833157666602318610409489595309051304507819413907683024774784964921988552026559813746635607174122444125411385147237967688660923301670919744181204808112172210600692658283547787800477479721786649673305014935655531944297309961388176535873502537571735762252486514839675024227656773984075305474966945126864354528115732223908044154040111360839380779066211657214850124601868629393278421843851342711918890286552409455551600927422092242714488131321831282192627302510815335488961990913134585779896976562511631429529145412544525071838561869243158726483100465181726359930562185400545634577268321371791488129124500516382820900528084050462700381506577237722911427263953287027837100492170688256635974574894179148442559224984252093570323146634882287419726708672458384781393701763847548533842934034092249761869598968599702965196763751832900405827572148353574233301214471800154760677737230722781424861156052972390593320031395608998937777368359819224187672752046610199056761318104143530705893334322226327003700660604305019962034222546576316130917808075079035058960749691922754144954651159479504711422850416944070790125123188378641447541311180141287116117881763725213172287967652845010433871049242423857663236772319627177810994366648077416984838287564792441004436105168930730129143205026619697078275546054989669796298985568514040447054307088485486809362468610321520205124635249861934790326288562993332489695254155285311570730776769495558154083995017449538095625774039190255780086176992788683590234380601714542859791501932510258496520616347765539508167133778823627759686215908906415844451083363916507337939208514641325169423260618505266196455650863523745223650677005415705263532350465457025639583009750538211683112821264992539840340339355899131665686833347349615172514686071604792016111354036884214644356877846183469590610969333867840894054198926887394501758349403057138255552376658244900223724683538234675458648050768585854280063923689668833127894413314404369725389926034769615175141536677076830127286367013935100473066119841001211063079828851257568901708363196945400962301587909209948869976472495009905900690940705258413067955376063149269133776741482731199394503125005687994305570158810499500778135015684410453891673615115741149169220019866752928623350735774759862810495877895911094569151050940847356795606192832530121357739199163450578760744088557438729679007781065885508212860624451387123324091337770238661887595406124518623000863022973860846838438370322148835859490491365041580383028898767921952746616087366475088171588786510586812089413119684767602888899742241927355676618136213929907311101824041503541773608717878204882328804699797963817388217101096551550068939644476827561070450220744549766753122402129126658133404999132253768152501729990335543149472355134710226026682929140199222599230040971477562818395909923370227376635864143705577211512657756672942178573003182657099334853022675768353060654541890837904009443180228243109013278343294874665568628463669508628793841713364401356345676320237051574908203261584176284146298491744084947345611793326490308327397651010515636789215309171347676288813054163380973715702962795330721982733679936931612443036697998874846516905916082177818920142904458700231224120732240578510613398146857236373823992281772770677955092030570618343883131453881567380686310803892699443613944825716749447259345928260840139413475686119160510588065472856685708360292130850842673103930432645034739827786924016877593194795356288428706444787242450646569373272711522559626446030487556831115464848366279014277696732759899414444511566002772135096784123422553465876458250716288845467156532082559631078028233315818791072310769128866215795068505679696759395986599026898859377835635533562873952449364665427795677907889749216687897280418966532294054097403519910333396848713196340904525690943420361959506366611883812337030062515807547158602301816500670345114620814675229052156484204123420002402947611620500719224783916085128625044334377425560991900555375230633665723360352050381453559009565381269492130561447125056036767668863732818332843726853749549322814847393129446550745091603431334586576938953905227200409308348030520805842245042588510957667799055164980763824113053935176442224708787289104770822326683089707519312111080646595963989560741936322751812523076592625098692267374179311179278896650552946778745163878145997098328435974173892271565676948514287928227701040125565458821146695793279816508267557906743368551237622296951728601660010928025704247225408440361474122623765605117502282795185299039086049321334093205319236461538542199177176248299066137181989037382134591534995373644279373800197886628922235530565517586668707155349121525396339750683706613429203995370184816807189822852901796584232432338345552468792669420150987402344128539674210707006495070764996014393295549432231321230843509183877531663783118185153021533039871262815734935567210305822559335790585712875427506859463056994694420362285258512751433463274555544557883811765322223392613078708853241073027656284100026620804981943247112480740887352363011934508782091810651510873969563526011557413523717153766110836516652955538987525238149137665538005021332166175165479091221765459311628076232228667031659969711963194002345563604059716557519656308176603548745049994367872421934626936210922925414840564389471178406934974455245662098868314952058036193960838890214555899448899274790120406632390265028270580645846628259655721532994728847842373468552506905115689345719819420859472533247492605946097747048873437318605078142831225430537725743554882702972658115424808538746005064779292552871588212053928510808195240827005479730690125583053303653857647982782329157351441868608413844616279529644605583312701433432394936287919462313018471541495535321775914455189830873964522062672732519003904491141005329971258965214838651589793309255434008285300049928511323955369980623027911257315011740155735138382503441359661726430881639326604750951351124980442121240664770405711230937141117238238454371690479755092129128401838171498515945637115443374813495730626469805467450576657878426246265309344124172597799790129177383208471780690010298822881019937142227765391669713400481132992556222620096936445463807093476299555916408889481217027320697613010779416084339101715019237235515762907163794818705776196882027624723294640719872894052105806097077509364539035887879228328668163886307358094643563005776084989246367776088718375537769985039990466346036365904818525287354084609990417002983514137546003356827540739905447326871153697191598295206053633269859383665397718999944016971271773109352392026822288202332789364519906311227365137212488243873661480372265110314778204967855003610977542258168763271690025490162536099748562444887801543332887700080217250270455802273840896943802181430949541036436123180082803263603455284951049630276146846727880293194426679062858814848753411464365419741383081061895527551401784935246225185040186510411392559741236861128431297593099788788213644388687970967698488827859195573336099439632077834457327111777946010747177420800444694533399563549404774620701263523867054425506821312743335489518614013906466022449650108140463622829913598803180643541040109200516138156751472407254415455471957737468630791355469174047888814478047882321676694060914200431288795999651140750917136988240925422346344751630626045934993300101795481553225828426418894170766106378975530242023353388364001173585010161668146330955979890857818095176556880123250741537869576984874508694405441581988619633306989007921363677732043444359264995648217828744113316695490047133260652449056246086482506583480926682500586161527171033011260065386060886941452831284104817883919368667745686720524980811649931701962629197661331730804507547513576256092753834646497900250209226118623700659337137330254402469559966773232368255330166676293453615524357064645444866839493865608064011029360825359492462415395176914029401036938966317509049478702813454254881072708422824340404613514590805942847821805139157489554605970130584828935184791928066785523639541932604030975251350072068826976245346454588617997966799187754915076873142309395976549528062259897299633485210698161698137749754789283910758408170192336037128635104348066643347466990124306031248348232608156577258170917398922119780268112592080416292517069273717357153822179606456015652381686634882863760955955918033609137781454618380875674973640747632553616270377517368182509279935609552791850676354494481465071619141136995347961122414546033582756639034108634818811893187457571635311443902232575349011818758830008075691496731984411656665565939198808537223147884524646771899110556694262984519029498850039397725318801858484871841667725743288337917424023725594424832723891092161199415061676484679135461477201766117819613541892119770729998032602436212541201039158001418791867164544775511772896062295909807773410689032603041515907345922447008417554029026300140669430375194759755601464760996610690269610185145818485786755631233700281695880890789046366286497211193224597424925868774037501569472135251744167909762221143332535326910226669863345122727256017506180584027035553990471666818581284332898519381753510162533827358545952366886389095813307571663814005078944358770585015311626063500848796956183532309603894971254563725971679249915447270224910071424982428768779622001197259304495214380326184915500064767163814950632885647798518300530481329125819547551369389784520697121574287024271485168360146934641477804133429292274889538239206150214970123333891463335940549565319508194080535705438761138290433201563487405513882355304036793113174807883320418253604024558944959072716235673062325733203039237945661355273145978374890336978427124386095581678626505102082365859510049259455324993335472288149433801736777935156569049233573443687950022883953789811558832655275823743519132638191354493412661971693983321336337023629309053658737333779391131109715638691031804588609415789829379906524063876181138718236821274413139077914046146968527906619522932867792682180689561430664932104726668363316964523051183528480891682496466862346484163410360897293748618794409283101345141690705387692609457119941573433401089215956360092220076243623790886495350657941772702912896307647531308999679731115669218301418471119838893299759097858626411217630838167126347492403985823296870437129871051983116684866961681015304894502834814505906610050920260539433115858872133508826916462444552573082565550404229325027013905649713894522855232067507658671946499293615356152546155700357371919831013169665147705300694181860053437316654418011751456678737129280523309171645912259278502767328818097977339835539022025634404865374251921953704033150996550033674755087100210916662433364317712182691280279678190755153758044582600270337439565148714917558504277969545557338476291889179681192768859519068351636336910008410007203930631517075460648442595236819222158808708731038979363497213417504762430701402703157802783277002411722301960548548585482627348396333308753180141612327896621003507969164905976807681821991190702880993209477432075263417410135989169483620757561760921729243598700555655441205935593344141912337649780918233981216298990217822464177696986596174668334828978925003458617488106784224556593635343670415927070840414046123715876053847438454223973202918946684513377169373723439533151432305089016990835452618763647700224072755507507324623634699600154598772073375374002537527729717132883264066735365018514917079322991335315183381723666243286745708235379700043469339505924318386000208486188024703888779544309264169097485468160045407399857407589182326311643049514971241772719944779888761347344166824838277119184964506941090093706503474360480283718528189795464907930430977569630900479107073819712348795942177822669389163033402195223935133888688601940151257847626111428181758108451571246940378770143824969948527106482567686436724351812803232331825176454394816708578801485758416255273050718866959331755829030775539390823748189817596980149476368029817971936266693945413499129495360398567989657791925453147084604750382216299323360986468086074263810607449777546775581230722511784276434286637254292649271651304611093662252304183547783716343171319424489845386481567199396991193425111436763787318381258195875949846007261711154185026089150734320504662556674279013628500851258911712313989306819637959263785898186089461107645506487274747085528176623613871179945664257304488387176314741697068377821435570781637828231287127377061004429907772610758159642870320423757370299851724081679595358259782899399893810347609505122181504929128627356417941387211132337982952444629015787688373909736667766150892422945617238426133618080914517080290465783289613112832998204308810651914196768235613943048206967018189170594622998512176249462878751305910190726781812843211564272184669766009159413686789577983797178334844098026095705570227832298600187905603515975138427874213280733984835384799901646466338588565343887685624900472146700045872263908885105616372013448683890435072284625323673494059273979305825654368381694275220176121773101377154666511143006274832101780745745943226601438355236137932149005263885054138770961761986534895608872118737272813389950136007670369734306016407238696463825948806789227713604986230565354006627804328118524292312967772567175268557216368843563914563657488418203294965368198053852616760164429628399895818537296307933772951484700805030136450256193947886351781893295604413534656161156258470462433889634522582601646481259597377530067573785726828652590036271049690353942529688365864534054987018353054524597743744499510139980110155142068513635223614923574124025797996642223573809070223854539356147865199570488843185975154950316480587347318654615937355129912827135132910661792321047728911599061406636602658279589443681242192911718890834767295797903456568403392069785456242604374159152396324578964238157367552255992175335712039374649362109235709379202433022437025172671666605238416673475827107602761598765432423455818001297700615427956955490003342655109162819950063784459135667221933023718327198389804314793588433944649869692984706003338866718585631630964686057914654443934286401290888471349961548623968144655577095335755868414814006885729283179524043328668797455160092819618502007870666270143522849326237420918887721219615347323598628922781953374839819266984812821846780135107770682727434467413237804583230495785994433170401693995790504200420835864981748226425632401796384823415973936901890003701396036121027452863039846714100124891518259921450486197460108727343931342119935126938021188375612364450978438449137114108465844699841533250181991100929610220762984775639688304426873256884889978897173467460262569090015228581284814036452858384520987139577537133066968662956555307217241560563540830980423473702089841390135435827708091361507005318080839047048169264207301244449669143237694573490160334700344899548699640506738248784986341432598393049783120641819058811655960616464777460418978265457415138174342272570816679239285049597387048819764950316867541404647356663927174938984445497000402976003722347573577314976601668262948866680281284290374369459407471246783958081471132282372566699143032004802176302800842751010396248574120631893373778912027766667253349899830547978337481876844324636219371370725938366001916234232931307479794758693418729738603854617335997398316751452846068604991045606148130641724402908170192265649684395754395811507942976369996426854012221692557447570183014348382087158902691009784450356339048916500426416339950605260180335882130225647112521764716572473431155049204101394909615171317646168041628519355530357748138021631074510035474318712068595486902582799585663035966148096612018464417597788460048787843706682537528356706611482983987013548473184673476189900257955129965366023231790588197317906376194607818328029691694135887493716387471791221702769055908773851280389247178194922310317811371362010959838355794431236920454130081445670666011007369054782386600821744972416522656252538525591815048955722351439145932029701127766017048184991123858832109390105763676465994758120243611206046234414507436214532141293539817972180716382717215368591518554724708172360259086798928828166291604093117261857110583867909728900488397195042304721332278685421686887925710067156372121852786891975583279524461265852565113240787863856714930512549748599246514742395642174742815874496501079939530833290150047511174333639957158843811397940221020954733375442580079033841817068239616212675617584176087649739225314285643059561422538814519334008397812500408733432254119318512871302981878315148987893256556011098967197103852094127396481274113469766815723300374180935961964038840240876843275440420794061212841163428604344531307871683621877727152565640974718651145989944311185736250535753240155173819620708227675476066944015700801492826086211564447047961446302103149656075943349841981095244455168321905884853153469640576707484037722617627038391812726437652057151956321385493756060671654219795525258966389800392768383874999268907237531645922553505741538317320933085140412657288986774958838463398128979259171005656942087353538244952135854844888595219362296592169689110312195155868758043307415354685350485493628017456012967692366960865632380755715910572925740992734686974250747795976455653540010006056093205361021493689603019908754917765344181959332352598424433909034676202811786104150977508201622966745521196639085488449657764449443048728616004689184273318413712782463862481619663751052066943817298008661207048877783857193624899230144621777644922996385929607720956811591694799334009739935476037295021128833177305124347168276731953414494239139135269539002193089646572352128921486161855089050148842508046423143079037053299477593279468715696162085679197735981655326713779358658632159534516645449891035125679783377734613716104645715291966544085376847052099264905098330384177782906923624017017376821241614340556573555639206425375857091323487110354315510522784828443192484013806090202461529088128381974029239855725755277741961686923163157994759730204648863389699577024851882961692571982230036962949955783296220616249605217169809843504291249453396061498876415950539495038586144768293237738971509957814428185685893506717088901781698043582900641754665172947097780722072581463107882496519913602968057701054209598469216939753709305302923149664302535160352497596061720607666982146426095903966643011260415886669758499603783869576188309671255964700609147775359178766921055484514899253410474065434030910240898664105045648706701705618413597426230370575774915074907836980809181099251353407878842744519296837958092030022231312223975590497212169211049099559462078178687437592007407614790085115274808762336845114049293636041993246731000268381320504727724103472305232687978317367059919650442143108900885611324339137420445372397147971768415487781874609541746424027476126851686865400405429707180708776120362230561761727192174785540510633740709050348266962981114892109974383099947262783341878973021186431120892044041196358702692806632073832727589913398141977889338813129182552769471436771907743106579288306645910065064607943635251290134356406738304032615736045785012740916409379152654265752540093082819079011930932349588291051256152138863242603768934635146178022804285592353301839025181715806459347494102108697673659688962116379771397626787274166800169960676854422515561622329800510105642641835161147577426886224401020440691401100983470116247069629739642345053615427966674469463123525167795299590213716619199099629783736512610287132077832762138440708493414929154261782557167521721561605800026599803182486703209047142733200321234946847482931450559675712440756648169713622278138467991973439195853643123545662149550395039353076477270478459924675847068149817098842895103353627861961969511121626955659067517509517366995011897270561391729597461976716244908278172789788971756155802590103959923909814084662572616393061946071655540365166019023166748132864497211644103266290339563411305508507248335399503457863661639856034388359809268144621829121395750048632551313140004029618833023211904821028801535072590594538987894599199294132979353564893620610561831455873633761367605678430797924335930659917983667005392846974050132338947506203506981202457383652349191145779534882366687908975034737873858826437002507858978889054026446954715695082848823251501643951061154670070801823167339097866444761732575554930588361000300664763531270717350328601225235958205619585175824744903550392313086474583769264057227630899320162035613498451038684287701174931386942437433740234588730560190766863858029395090079293224686650743638899754510125267810976627380253771644345818941889136175522224793225626776268150643015790109271683287890896373070617115532913464764668819517827181609121804353533731877946074509962478051307784586290680870021966556000887702802012658691991289300473076239946160867220026510246279445303335203373861045710859508412321137538293331815335706415302733804881006804714128625548141827155813231296328474393469488558722967349383207779743150405371160729763412464778485779452943702572926339482869191680998610754947121780904134762341491284559225144929091954636341961385044304411386582318464470957302693713135508189188792358949474517559903784061215380638259051234657935192296345937682742755944517003664255199011582520633103246643968762417000082204457159901997766055784759197932791382123915093244841076891929649285124808916746002078267446656816544223284817164290475564601397751340763710461034606409081173376045224536880591483353501129420478124220666836352269921257103072738104182296269485740299734933652513354802474146630818796953150891750800369058875881030996424841143945543867037416245941999555680378138861599925221815303791253487354812225750896428409496530708865474108712184665509806704717588531428996695570544103442823979057553483506708473135390937629305106619099472643200112198594701381960112897844248535615731143289032366325404297312765536371472893345289746420589384220677814177144767960545805513878291995933022106239360946702531966894698635821198796593896900080448974386236335905953828037903589250612347568638491493028612716300951257927896250960634575737701966577091145707744463399743168647059015865889354678577096097709849857421022365352874641054760072130863251041008550125697544426505401628980111055577350447211926801918969662568405895950029631781780826126859454987734792549913480113338532884853392525096509167782551718764803224106872927786022536635307844407039219189358200239371582125297703608170050904886301375110899602293555378413445572415773067144850362912203790644434538877910055049237015930717993063077961209684405595254561146532914663958315462181287602272049485051956800809606597715707886219469515476282294792190426351532568314854509007931860550737177450700662003726875006703466354644607321237756910836791268965961005403427865361621922038933394027363041580097113743365078729963189763791827752697524858239407885770023230494930197527068737044217904968006279646564876613379873676729602803863915505381991801020713809086654779254523119707526656277754717494709672192705441021941242577036400925451332197479372428798359418654973919984356683478068278779460057532446849799303440921268895036234865964031740229005771610041726829682602650689365362719073153401383167276899628626579348850043782947295968513131941983310991861725519038560723954990137026607157875353925305415394350173774490702763780931653762459951445626928964347051053999710693557978561535227480962551844757915699439644019058590589980914314925324145296321100490510582688449424650201005614638191857925635794069851699107935358720769797396043349852816852441676361604812325397132598344220850466846806182312226284161704544772071579751745282511199100862071101020921879408509303748813811469693158772170723527513397130923201517363190048599197793977967493304578886393682421961143677798202746615398455660968519237967070917438713846438049234104132971161955825600606710865575820953211939119872182991675375744513919951844282904036841901208680765402268345966176949561800545524288889905101051670634690786861959539843445576232583874461432944120277246331270576436358105624285290815311515531457816965450246475938764505422815394995871400621014751095837685371164039311093489683924529577567621960810536745016931023293852439796616846455792662819819619249862926382547234847669052287116784843827324123773071013444860549516840866079142229508120149454618582931970271756097490437230056336365477206294499629332743744959145609515268706630354131804453301910587828031916735081101625792034230330372154433421551575801698455709153629508323920539909631167094359336222660826905036647689093591029699866179498927711728083555658357145348208307233124457433779910052502247542986514768918415658128616864787866682083381947219496550953975361909739771706747888917032596024023033521385166421005514571777843852775321097849867982671090066208506085515794784113444578813128789244733549082863117586502084241141258688411543679795119645071801518432130163754779895025264810101511714582006714353207187217557195489078603003923735586376118812168865482207414569034988156953863744881384349809186087836944861980921026358976093840211413275504058338158624404158511977543556782205545191230399310697681635171507240485117143576171350434554371583147809492496827140900577062067124186810755903052611449995045549307300900576302992737673581245770037053696687704177452566243005215000621476244522250449071275068027288108096163012629050047288778119852069851775364028624783248137440137129099704049257271903654998085023028993791971793874762807434520475717721762208310342869056301089537394617434605096890030749004777081767756009644527943248188203765900774197454811896587816673833335813054307993011087207541654418972679371558708725505127905097097545956172100238283048518826213161507962290279660087541349778759007003839590137161171147413415987054569183712518068862663636819152881076051025109096763724586525961288508813280360857849165841890500788727470859751264688503932935215109901444260149927221659110224847303393872825361547050831892246878240721446976747647659752934480945117863992243010263997949547420139178594894542720149857837058916682252025948463915869902563142969157291815702944260720797670877627116757680855039982254213889972843022959900527485472928896555964136880127861592216117742129355504920967609526972235943168685456791717708577410671544062221155090345859435445375461429002065763911348640095449022180162082963806473466090053053559401514803204517795478823409310075004375244481479602862081693845180603172137396169105350111295794847876404640599224577275857525971050856159816506212114779180164624168962807866635901665244490211466380644247074933646051394018328072451754218154376103285082185267142814711751864453571181553342994637434654496362228744203802318903809244280892287774334792608343087729211436628962085041654711193067814149034711202849255768109762383494912085957235246113519169138810533836776074847420149307383051061301658538804657118725254484738275439428856913196001360429278258974556258407884047873557607119090094516418964505496865295669722342432199824635248275937566144142309582349196308866943926125829628121994376739652015488616084674279920449233809748200683530314180893364264106362934369027732054539061673153900240761919912684256426244718791903866649809646362694283616445216673241429571485601423880646096264934893940449546061908470121909620763922889444509095672568266247068595633035825930958397023679932226277273135441333498816903141193025439563320618434459481821942397191314275072602654919878079649104676946670220644482118271342806155838239303376630450370994338354955193747039748640298863775729875568934967543624473387823855547083997507035428735463960287408240234186564636690322076743725106932809995233380461900324009175376923714589054716491090569460070294152018927698547179157846461335610478990094805604409469264841303787590844915890911246493353801866875131926329047004639757650620529564337172460722043268520704950084579183015583347864327922097821393325104238227772234857922021369962842766451821451881328658259284759818065330759121367316433549986276735429233522576679811744914736614958760986474150675172979235204456065087949312377690828394206868328931906985845868606700234474966983204189767132429845224950462859290455420915960220550609465428285670699466412594532303385891123169535532771855245408583333508921952886330629368254489204781413871063735083922657285095547384017682728891797335755397683830434672430389277861830199925397648574272732058452578453398113395679977177529870042060997754620577905559903454120805657905069716870884928721684019463211755666057017523441482611776263935136140806355624397343010859335908352611861766153386202287471090606694540409588478927578450484809900962842672825178979399197191500658845492557510399476798449933200412871920806879543321351382040676365261478975845617558211708197113624163747850452156766750831897918442092623870109086566610024750272475050269299615556965716327975174329378220677571542101703153081005270644768052376267213998865178875979533099904821166961420890795269053460056498286262586648082377330648445081890754546365486647026897738802323939588641836356515267634510103805017190636754717088289562622089752739968993017749196559818894823621319144383007860436985892047636784143351495384145023504972302092969764116267124553045363735959753594401812722563333673368478121128560478625787516817528799366677013779449138440672262854261414087668607468506730560525448068254624606757318023678729481623855799305486177387879229141041330067306299851563958485279756686882521008692897237518559644871711244908215859678054051574892013145216418505141385652586904644466531960589885037320406216546927290413488443907907698312034863963555804811022391913742005219852884466129277790731126074925769666887224231043942790713630165477252933474717389725187278269767906274262428333772756985811247122794542735743029252887548669673407195787400777779749723174410828515648157781658359681421763360752672527706258971242546202968775137079209142687653993649237692962929723067169013075332114901143849721939742517018620309391512152597120588710065967112038686456915967872028109341839647318407838087690626610354635960688334510288917190807231507274187055344778601651571335924229835020506649766633102113466089415168309801162451948949761752353872624361861734019996966830601862238764700236442193233090179830727247673193202944350682561422356000364698086942782946610831189835226324442737554564336994320941945495374919784505599014137527220718226510815011639415161402649229683837964028539554163182721651790367211250444212479175850193161355647924392997701864143594911685623903394311282908987661464165410399383903479479373066895373253590151129139608830002812123427174392379837183339382953169860168001858928428817346390376176642038367261210028896672574032613839541116546384959985526511668872494806366984604351062758621113149210189827532777224740230119171767133057007267100631200173907895746365216953672762871399635266120233590489029531625626067334061876641352637936124732479818898055501993598138688812034846912122628559606765940010244824875294543210303556503416106824086039471569077326171153852057323239427504957295020543108298506776941220871562681968113444292376093861440560948484580338167716298989876921330005224746135562820673276591851657371642980444539380606334126288340081754893674232642452608248388675908825892132765571391445848060877076808340408953844330995400962155227400843959525601208233536185259284521508359985789130112890612898964384296264521752747123778977687764240189816759549953377928585505510842003600070353789349353102412803375850765749814723223174290982954919314374204510353145779875109573291934832932488833213373208889205405099626873331592890136259044469032617128161572701416114616168267838160693173926168133464446956239288183654877975209323597187211338822225321365690374299246133214837045999478796815824806787500466821256573678393332922253568052224202131381026668300836844512900455028248088674225698547630660081160210447503245596022867610121769624576477875789930377366120895630513452473912920891395204499095408343006375525013680335129729183798927209191144444320024748555954484950719486075433039879411989142492247764385968414820503453533912850640209620535657958117965055664061882106510895546318195206836166502382281779249846815167569042903786445177277238272923638724552827708648198362883443011589167196602701267413384479743199449748994186243106438731364708976531937696904428257271439697643887674574541088822188925929541715547533402998099609952555815851169675148579038977537477346742088067109626394571546952320319074929288560385676286714240129029377247279893276540152481778011134217253982331962140830682558927146996097949819822463028885676956455463151014543298413558002568930948023791750394309169220638069778910932667515425856547557689183188667900580534263342668956282938201627268395972359715737223972940069444185243273542141462295906988785688365909292046088957603833182421971093629186918978880778553940523592509793030422428593446152560745846725765320450397444788562998061044809711393742220263687103256168805101816173097987985049139507857766537733293388687262870915197729785169577742395540231437997024010239969629896204200777370426572629844839696996934179474740377201630684214566654085118490702296058254712756067692339978019033301527624368678863062724436617874945717014844365740983341819864228098772677637644296757469078953204232426314114286183971146699637324640435130653552755790659957666343702718512242568426889621801034589173509251896531153430839428676513521120056467099832848249574438313117258823402165266677715025830348492781827200838508507790069054987664233591320045809069907875056734227273271596123613370832461955073131997413791238058765572235421744758051039590280793246971836895243113252267278413498835705825749115360412997262192887454278272150429125307937816104261482735089413795556522528284917854434202931023960829100188834457969854820161287121266214063048880632217754796323763794788512983403040346028651004348614303988338729339854553113799933751890427738577760897220898121428146148994907074398853299005640913429248446096615695325814306035324764029902455577940572658612631726454660222649992358268954789800708981228752834248265398017408934214732823731017775980460324708219883752411440624885942151398141199731886103869004548734986525007882747937463120469986641884950482739997815880804113403171661957722746929007099538070411751052269186395448961911777905617951017133429883641999732618444601185228204421466070799485596220852711038318971288616111351561555125693189055066372486913110940066755335271147802595189855491850855137507210415508845188120991736748179376346740274598217948296547599302050092324294040378909463470030714397190514533855567583480776842535501542802289541732293546645368035715923687732346936602328715407162080202952481752968557655039367157792893404686446542825189838821076128387325921899914266163259491998327388248745717967534422498587002250965950155762511118757136611829102072147658116273177780508284680588203630157723053183391691874620400253201860195945190804973043069855973189031761127963313093744584723497702003353902150142945490436999306699779862319020340012659338248292080913347097477680847060944716492791115691567167715133727210023189541928941837534282832819207864937309209509911664880964854808730719829910993983965108901016599456267765916211181950799823506962316494476624362015598648842420739054083523126827733167221127275713212170347541233433569074256518836287740427100179985174909556104326401739349268351881868241347651660303408178051128415891887543643226679157644200169558542660150933792256647531928819402484704174905491027458403349955808359174149276941681537903202623144083485453273477174984318986580542853224744768804593237013966268771886091741044437401615937640405727640619724978545533959727262964830561679700907293740426788516173604416269921992599716521513961129896027715465629244063302651740088361712036005814713131689920661164966215299001636244122310467132207128156595733056654130472959315224447496771373517668162872199228687474327411977752043852659516580081534190744830859324684927045263410291966992298297251748241125879982610183134219450487389288739602612184373946684053141405375831492746028317129829513957333438061702244264540089429055331937746580016693655247620879327723552271280493190784131416601148529740709589542951045188385538857857894952368580020608531129793399675856889341374870462102467611209362291912599147984074098874269666329072352167452930340671651007343117431616629402711639693526207615601065548769240155054915484530867567975387656829014400129166251283389457319027117045029638375939609037554510714896271487233105652460471536436963838900029698024635276489855516052265047651354596715976243944755028902507884981091504556394509899499376521476377276519494315576624660628954396161146767872488238664797862486020994884029802041343281965877421017232485019443158787438764181789776828282944594997920896647188471695460101983594819520672138781483323353952074837884235972959377614642923073081196249348005005880508870611086870162026971379795391491580235170689484697583479635811922168969880391948904246155054400465528988621837610902418718379862173559871974799003942891862096078715129848841484423110875212524107941139662502156206066475444191030084478583887764494889226301144904192561852269468171067331166756392319318779899060991943697338580782077668776901449315200483202885639450523185487683747895795482502599857620202431448373027668191005949855735936383928615222390595719982502812217861913466927183927958622741261172692420209949692185551591817831871775915400603008765612418725667344900831839197747487060444864325928556038473722667825324236901619864459852422300170340213831481826980100816500415591450181033005079828186506176666673120123175251873436181723861553046209750958178338110833922744055715492814757599581142765295092666362850954906263545730793652864733576610628648009375873535501886813520530747004794354022485953696044398953543751821714449091799955546809759202756511709369749161003841674246196781904114185694061134674577896315643643979064843303903072552557017182184288967620624391054512537169285577663233601864960855635405776135676592306536324600093310105146875594053445311486834267630662960334363975439764625503265299432653470405687112404307369778643042020175489207221028199750433683432328481933161290613071950775548832805051517851217088041793200810508500053071433152283129122535262396302688248477097832333099955733118978433564386255007399833293882166759080160572772086280161449105236852350663046308809352817562215086638155854020804266022235350841903483313245614408415769094220371208889582199838495222786478601044637201592541665363934346686370727391353030137964626860018867687378692821935240937294145687890085868079346656175038875836276437202226646537553383423085219581481426518963453644726636889862184965448797055503971967090172443358718937026821431947181726453680721286854831870129049473047077261526784818061556424187523222295688800379257781122198186242302115792790755575945832788915622084459556026384307371288606871253290886924147946815656970982046330477753704530859042027782999845291092543646682876472641851173589498041956437841091419210872022642974295291144287552012718476237186793857332893467237203825703401865231033937788467128512170047072999920967433579665280729406323923730209915685434800057188473799792085907226783284032723714869797885409501060559641240467223202487899746509956450741519015280209568602694413626732851023199129121512791681923057305462863738583319114309046358381989249099419652403549199495257013038052514119931122094411559339532557413166596602429389146717862531546854147976607635951201831559158677312931309255590059244082146317909937531189316807380681700687558975191427930272913390773884330142174988982605971562101959527293196304228446709465012084219518317246456844038588022072589160749008967564937832395782363266718784401708214706727596455992447224833945005222977195139318232149591683082010048881130369069320576161814198455602972120793388066393220499211870811704826304990768164517844808356675407479671772060087374863613089509956785746501453597567370219126795192151488907694097756188021035121812834353318858331575326177616695724799224447946819717995340873121215444955136751951692596684229895570895645313390622259768247991915780201510211787358859170199590981448761585871544493042845277975792993797825794539413366508937382545713863014154621331867594241879298374621218187523669246346954063209936304076129167201138583076008998016019197261964613176412926885595965078749180910614639871864083967507830074554813984188568566382761226688554653775841848863051250485961936028623091236181512622792451788308734477847898414328663891610116493843795308636132220343080401574361168112747025809070589321819591946863997366888090308255953770679492301054081795616479929468648427107167123519759389512673509049871703900623251177770417569706096394550797533858910911553702394673224291976163553962485582490734263895426970476208778591384140148311270365176094700902599628489736475607183577593588307792960571208418848350079606563036455488968659765400383543271451320502420037307465108943783173578364661498120412862180601181930553188978276469984366395869734958429984704183595918016237724274455043412715111313428429727055096471239869108420903363119531147323636383321034806199343250514173290096339784708843933125872717775346328602213348079278679281985845225750153707914441351509381596091025411554675295795781113072616683968167165829312577637792946498205144455879678931665991207338338288041092922201145417516292033654804206483966611491090203826760835380099545347107072115108337590169435973677322794377069224137350393692842711107370508487352446674219753044142909378971693535798573743075284764672668083223876672622094247346138589867032244768887349651966266071696773237141686332179310372196394693308932722747084502681359882864040008064013438955103976105506447465856856925911227061170636322918205933202645016337174546864389655283588530163645138770813024125378534414706023323411824136329311798072805545002379698909195069696534040667755507388265782824201695289847356394691499762303694374314192665961865419561953851485650079115768098709216286559227497889913906244659371687676277271393425242146437982317555273138405299606513961829213769304870737496812687489377576712579730586754658401046014680583636461740956490699080450036523649765701521388765817740541658642248331913944878951099233369594661753322059780159143060050091778562816871003518147603292841140428937799717924398897873339230177246092035236619306022714315266711356605237593497080379814774005663640209549327152300673292483369219609319182729723828279405413215010134097531886246451347827245304620999876596596447071669443426319955441609600430963686238750601556533176729266985478433660500187369960110701647155001539328269974201680716582464186019088598162010396543068094863873162972405701529891209023886926581864444024539080808248366658909256351563884171567662285277131619209748336127448618457715799907513865766691640684794672724917390408439133155809092701542912543808931905520853037559268504377025515863128459721769588526795199063274550555257414727715797618526550070309439768389766725795702186464754512526549592355424018417584132565171548844297984813440341013410874333811937384608076817353089617370133414547853836086868625201822534910224775203691116875816825943936519454244230602108878375779160272451873039374281215880933351819933611446836629168267111403332782784118614893760550170586244683796045826462577680050987768089484394402267915224046595335019063024657721673576234843497767289625875801933656240010323254087578725382159251063693494748622684032770781774288551880072927097432423467670937182037181503779666139118613428673205063735782503133928222049344588056253571909613142766329995702084304585157930751149913839181460516615793507850693564300472931200138419046747648851572158693719307173392057306275445166158797403146487325708453201191411741446519490594313451815631601063115734770755330795712649717571778233000840119386482193180040175839924163445037807860103237370548002270405681095830869059908477559684990938218461619240493140804476081481716451874361608531289216524094259595476743688235998706470064061383832032710899134446679376117767939036959087038677096506306413461058012860857252935441376209835769125374620573471687742024726556728969224714389010240576833398858718552347919495747364391011720011585718221112027505595583845007595064583706235294026207920204578663684329711124010154195641777868902474972582396914633854877113714143726388772642286742577087557304407086851767864142592075189748915527721932094961002627519197279460059058635063340599260668307781247406880589695337317663598218889567265387000075117514095028560326978913075095935130930791135548767284698214615296881847931101137376781387188090172789809230241412039310619176486463079798132733557847203225581425007261064041059498465701896147606080544663010378720125715639515465791378572916138777352206069712036700509796811816041223698115657237030146857537749078723125756806190987251149171218245549067929926904790101748056068690090491398556020374361966052363851176457263614249720481314979782771220755274364515338889898275068205362336510905345777068120126219388095324503584716631738501001873415469379161948458932845154791852948409505276314428544604255637006760026289116315595806107183106367914316652558185829044380283161521278922700068944317243463572314906959471725509797338486555950716564232370386658944153409846910472913107236140124328738198054357184606713421402868336388871044071015330563643368397839483564073183975661769953140648589494787539532071611269221241484881781258878702434239689088431862124449896347465919792331766834023710575370738028658470427634312248790626746295737389095973949635442623969235799688510556103940680302992821176062471731812220893823403390724652554834443044544293244644451863235065804640041372054818985432304033150615115362914636347065823523046881881154814189577067632661907931556955348109168408994860382026655266417433519319515820126142795855549504002797322812368825961286582683709778388766962424365436237052583549827140828533320170460144980508896303820971261742340872622192151226526202709594061212375000099083896486868978396389609584282961360677816172158979670575350780138545529406295131813159620074739383086474228247590738615161076665468038640204284741138248462932735310831387739457623532513284477365210545530665497002673446187549278244246739230548400916176780752148998078626556856845874885541821910856193014289224973015951060728417016083187605049497485064496366472716436876255235621644846483684851907153286744267685356886352188514620142979745485638752663750471137534715973275881619429516593550874390786375064677562442556891333460256879941546873096204549143540631949444592899669129669640589814358271640430165814413481703056959761827913357522777585637387688141122943068475594140447137792984078251094554788024837468858548519289378019813163474116529854316313941185808645173143201861818041638462440770370492143585105150075447926163235147080770117551047733181313982523688629685742332707407452209555201130522245484918478927412258135685441051019376387150477647756578029745541192841832673719886208213308579271687844438637266046729497572877616777803973006935342866097069118451849369842646992840052596645323065683415960070440152882955358746978833595914816331017270010704280981443928159702555889796206780458339933173473615582613162312067949993031371002273774386731780574641167718321318838772375479082461116921504967348740577563527169476452918176788230112125518880868820832421672806033751875322744922528931907458358977918900074870597982037116980450706575868958560344747283384535026305864992797159167838604085134897809817636998941231401456843912316002733195346862774695070937686716008821671673127119533082387818399104347258308333497082658630257190990485131740976497296702878670748911916711031463733139593014900817130486139805086963592367630961542710820719970035645719189452412188658074995255001601284090801109233146457432864312211578513228602376498643996525479137723946077097585109307159304032675889587179211002041111524856309620485533516896221354515272132563397157461004022969647123497550822370441713434622422191831981258061652961179079144633899566511435155216324390065554754404322597114967250137452240971015642157732247270772179086702597044783251970762963229532533695835425430749845457246914661564576974841819003817720680944609716943978628064415758776333631281509665390569605659154623070736534095866278195850674694216761826992958518379141516299435265546561651391769018901797079135331542103131799157803626287761746841036935683202893240769603506930150567788534107731766427036149628609614229244659116457408193836985421446063754554213041568001381890280757919635893948650416553314697903200580102791324642988341942209574108820499250346441938641167619191317849790087497242675660313899494909368648957900568155735309699776797624789403047174014964201090376029994956440446094510565105324849115516277506388048655868385917081964530780962931702671059962192687379704473164588678796025383034743324536538671446189668017600767086526120916084348514520663898329864245965074631546937718323535364349861527700439841511032332252321365042258313678927998081194002231472974604288157235251684141587982087903120470187278797453660411211494405031342029837845373155753968874089911583356981299377642325170737916644217005365457862293682340702170676209522958519059927068921578758247351877691556415078888322633540702982443797066332846193591520916227982224849609738625209568872590298483160340286555120963715453801341662722939089168503602392650674236490012368752902142629110101337291223627283271937335699012165450409255229986515044879572188325244043399638692136526017292306651561869192605325379634226549968783115148587787671081865161181857148129807628558439515194888227329061669454674434927756467795234692293684766416421491303636266491174600839914917899709127490044684154320209252925602958862393065821279115448458312732045432672786146738891832801091923805682613018101674742028775074490719815027460239103890057036538634930293802661612278731841318072254526102142325316849018975753913379862559329823947956449724463082468787259032736903716289081328430038077214841639760629535714759201699428114848520591899385659679894020144663055540017011756420615834914024736696809680374741287992655411179020647555996455012767609640845383078095496955906773716269159696733573209997722501745078270334413245282773116997883555248508510971965179457152721746497273903789836481051050828217852166388076541974049278966797816805835465680761032948644974424740349940638975565615865191508495097085331731158294188079661395765167974873685975383783410201289762296348676575635610262346519498081005531947158565858788162061099823560524771242051565584885566466503723144001888162886553685874166545956471339709875638239107019681386608065951527127458808502917766947016142790219290184651318321160393439861355436327580400427345754811560317806356716337456524035035633399149220550894668594038024861717414494991195545761639658396570080477387590470298225678747522993558777185855879143037303731823398755956180650979062358142497549904005884291082572785147170144589731572813354611711985020774907826414583981442292619744230939136824695064721669009926725400979770993974009997826564037300943728679201819265581514327282430157664589769804338617049050253407336300012545198461137323228235084664603301830264693657942676125430529092443545077390716965280302820416310372173559038945077787157813206324281475612342856310912437624618849266998715728922264729596761394949595676307931970675232359620818668948555621662238591022372841611290470781934813681244094067596456968074774542528429506402910083642206456320228662904354691743466091387626756031456684753112098005979113603923458808666281704152179141334543034682358364263588651523357746824457818378752482886013332723749338548452456723401894485292942042785916382113708819211742856931278788038021082151456605090442044558249382673544453819325713568391930697456223316864372239811656697030606264418871463556486144390335804177150580563720593427898809120781441120370815880161809324206686459094905186291225771576901555537910493322544588880465290042661262353568856973210127370944355702915938346250671938809866974516097978784628125525253991359690469159270893961373321630359040475433614913085415807891579135547640691316832502132811063752576850766044039673740670031092297431395204246650902197978874909756062155489085287428163416082311279898602490446856167553609381142504116608789934861733488177466924512704410882247123038511744300038251049680401419992411596077144643672988724902934523176503670966483455956235318092483868379885050489439387724541315031547341382047572772164182210294234528394745146666554862246252721996806364506122075709433753692485226314329881905068951506385097167719719094223474559675172225059375307014877594799666136714621630007063331289878997542835249074334576107270874325856183319991027961366673121715860742883154411351961193929755787571936277119997409993300500500432652351895832050138561786579411892120810327137470146320113291969289065185808065031646215677277479902715597897035793795529202795849167693238538556943267897221711879742717190961059162727098016898057586460140134670814518617147495773937380568139171607267101838913176117309390607538412393509732650372125652167290816585683766059078929605262257117963815354062473194649478741464693261281437645714337408127202709908420393495755237944681029023138398050909918719259228622798093518351618720063931844818385082830764905374975201577065348173146133450384188309288429660494461141158655610046004897005482643136919210563003261248761805437540082733928654611475479299987856024445047152909857745699890729071307691502292907929831984235426164816011795073802117954688681907498524258393825866453937874300805721272858927248094358019126852227541720762261474516967663001888355230938712795639513276026866722498464909165994702115790928382901850450779438483213884455447518770174274140617171015228548670105198559137528728283914662323302299760828363557904094614373187961745299582680156016366839481083794233709887600064640756750993148496034199668870461653237103413219885945807198757045383556353543138575345627940954639564817967390980619037844141465272780612989202546777389568083444300307548211554434107640950162387638438604396585415142608431617913468192226231977701794109414786603244742947423362947046826070372325832256429197510672457385221093210503115766262712679345726709334457696326736218990154737734420432526798143385956872529928598037708267675558207975143565298005605501272852528082536639726159971459476440946671856306619726488391329756203125825359290771332048298514784904149645323989026776514614034920513491561874249975299718241802787418237066820826417764896286029310968503913783033805740526164725292244664497680542272004245973289598893072072032425844237900454963285000865127778138524444189706579311013438342771873898608031017100320449906371376918052429388414523326963833284504053966986751021859633998315900727202443447162800543261718617158618690597263367638527544122114490933554664128599100794813018942857066690679893802792329931979458693518657864022329657640599786580211586397306642442531078078110575881179063545676927339310658604954368343441399596988946126219395946936210911159277995091262510867232591677412145489544239698989579172816965538746776165167511343573325784223629023792437375557458908016402224477361452293766383348835350556083878422868236702277854226367739266633881210986746243453372331845197332393079955529379267182474261746409983186291054945308988161627568551258223616419410397672780848327351016749961213746516068161802104201535859224114195505003901444935373749739897899786086470755343389626472433373312341377618303419604491231464870112981452286919651677530604923133569048147787069651364165324818324718465680191269795553497438895370792646301750648052369037907067113119983586763657001426033106337476929746884143509420963116320249203478008353371811315608330508579436466191526844656139513994480110021649478719856749979283182181351322748336307337474019262747787527120750750924983777586469195410660252867171015371652762740621649167716338804201411174551166236992812375724706534944478250956383507738146941914029359446936004157923624485194501005802603159209479398034759869950685208448898747346549412950889970958438408459057229444321005794350278214886954356133468330712023379396788662126538439252472171480726299951935183163342205240146407669848836431331473167420764561263498232355244196071367392927524881575148137769875245424494791200028456309922890917715275387284668584092678504474322474402508845401775928434227477967123457633783683611513851145413222356073324009432862515206411879536488113474031273296106417804477563923726439138322406860786616329465545506502027851210228293979992062899575645061047247138119157153970513151405774492165130018729172541777036067146759225120771661839086549301220056061919771833039972359351907613752517368378011702720875753958769063928479540954253324817949438529453566175886623246438304728167356332798866809351510462316260975379769548858673297765281252194192772429727079014598636920308582432298724690610524076527319162847678162670323129347917988429315724391257315064082498258293665379325510709267724413684938647936647594852549650746758884025101377130788035735141967288303962395322299349675572878088936087820069232115425271902732146941721286889704327865815540694712459201299507834977185951991757761086835100291317467155719799446727459543935479694952239618093961965272874908506494868682992447414976598610562768787479812217008200334612859619158805923694395760168398297552865654391371218202766342398260757673430089150997210785730030128017072056052129300996008809598780741117159382338517394839440614544957399523617528246463819433856697398242457156136945189863702970051577230063839856515787815888513050676617236355590301623212055027516221565332194949615802411477620051406816091647585190947298921331611873640553680514335737751759438472477685705173545839939616283747016719320412802769378066790034647461249781334556965727089714377560469315053287447750899029511937241247902713503576846097833805268042177116603034377787285874786112991193766835208439928305698826651297668372206075607574375830242329131244673342063008229629258248565450587868675220751230010327916434859145026970876834871337903363572484048944125801757254791984649285139472694125308668705642107591841778219987427761997959244366528800697243334208561003261546677640980940568518061885662975959889253815132802437764724057344237566006812761827321572249576627446380026073213188134847238090912757476197434449667325269403574011452633407732755642116777753034692065825600366970501120828320947958395387140488090564145710408480184898740540496467714948902583196936912661935125495456483856178487838401059655315484682752936305279328069043193360447828829139808078630361750585719097944963119703426594928737583560350732684303884686226652464709056387757958132302644623809472891642672238798345725790668156172933114192981698688945096497882301386556138327336212549312457570579948321583236906250754041387089373467240518353103221948810593987710078511869474313883612112078004158423009889222877421953442760610626136790293974743162821348613822627133852859674740507573473528114747437966722864563600369477905359064925437120077825750265440465606708867159951690457480631925831002565884795997106960249084134372914633086495306882543309588548241129429413619440214108892017322404551164506455489464276525757715075879737302832592139861776877081006534452124772933429672697576857833490093742259243336498321174569040235246614603230288071597648930258832992321519924661249777722953844752823825200968118313498971106510638285781320545180875300384302085735431188540807096984326404253361095562227508773100661098877435864102031393394354602512311401741110235889953074261879538657127229169328433907691148444877710863032666795635295930727790107308229541586729547175436223069595179585894570566417432224427509129240067101176300589433317791510454269792899646774917684521438918192004665502311984845151884926151231525039761967283362209197338859349907261865111716782994782455238447458596547274377683054674223053410097502671861989722899466877264608714481665610057254350987457831642306844265793109718651711015247859379897931314216295834692851793835879158245013488149142061614197748243896306901659533828254255861570884860179158261217176664573058741019335919159691555205233511544675010884231494444889454656580197664448385237145846312304640439168042013939445369040613618811635056997680948534907011443894711994758129384372578396328303312604141137812982687223843070650211229887434373186779210347666573051552103205072066051337448583436223183996036921808588323401937280596430429839355239926579232160454020198716321443784261226093701424207105911869982590218111940947759493299626750986522913263553250435949266316099764990155750994348030369849915755110154079280940758097855247603077136163310437439782798012478542318644717851409762701151508884509637106178806585352168362776077864269174852812595088970329306923014891124644326875609007227002268137828284174493524378962267021140302111908766453826022697477844000030031001073752513283717840913815415092296385062557499325935902866624258219350080789213165902344755076161108577207969132046594297013016030114714165417382649693948699340478011644700963976048931444963488547143939883246828660160955297301487301356076875954959379217919786882855564131750129261034507491725230361509050774627533625154685155346932073829184011942230541902132555255408039027715389165902879676759119883453829009858160016104511434112830386820148614879895587032433292937974726348134405005660448643379555608023117637049194004303522326233770598246409723867328666468046201202291518080683749742900286196961324841041580509435342795157915335854136976840594578573294019181028054712635274574065763321651312963032921594344538549378395574617867269168430046351254324101829904392741982154064100121789100902876455022159525001287161792605467831724815734808265394305961040756260515751683802475534069458984628885805561326164284907771924469354827523146408017616052686187768930676173045635648728692496774160686651297012528857022773583377408726528056937095098067904786897828945392998760791161710971812638716333670451515933093666783057234643482020868287251961735292296668365844809659336000803229864976618029365567077045550820275992995979580079862597970995333689609175320414018302778162652226855077871570085973791638464836473916531002950816572310606477530150930404278298943840507024151332395972227230226233624807678827039850645604639154765424895190723943192391042196796054018855059224622805217844747523659952256214987705872028243174820509098620926984866707850262022061107125696153742915927187169633263400157578669493958179926465036673625665921527632157313923642153662371124252825573871650313425426350997886261816030942196623488863184425910400548595283133969797381531731955935386232193980918649679164501902017234847538859298862740950523415160575810070176508481053074733249376692068122802959369659939698227455366303093703239423732628604576152892013526070237138078425532252527376197687895238817645781117298344462674422595842669269348173566967264322408528857913060140368533191879900055089761579154687191314117815183003081048172527405968756795104831872690095535769151656211942790230124300684576640021505888477783576947356294896213751707575159668342656352950689946301303084785585476502925636865888419848966305940624510203883926695715607583961766329246486613715875802859387832646380464105119071008503769217138889211799490802384752570277377734641794824411471615354971439255834801956104106685363374686442166212012187509344317154072158530301413854586591693784032192822467684211161848088667168867067684559807332500832269833722683100471923403982281041874067365139866703118472681914912691573248769565223751310696900566767826418783972190554337546786596817134642765957451147384026483078474032283875791335425837534864492108393651920232411326559670655191961478755475381068502055524433750276633311314673303205066942971511851975241359666651128637407286431799335774497825281216101481602552920854532384224763872635302627381300171334655751176065244599438045652464225409658525982732072654320903669442170003547717453997660822838637755476106691427722283858304073790880683451936764121406617234167514873906548372801387860439023222619158735945657995524314789019430984647851494355321693674894462837253330124027653319200707529794488690251191240936030059138310880859434863424990421814151522777307492619262117497678661869697434348677943375414473048568041822624703686191027239305063625007771389442972161852490209375005614861229388376596668079575243079791413683182432509269808368330032605766894557078302526889741357367784535533791025956559917147745559161566425939165615015003760542281609005516488015960252297914189675048312203505455490096844664733056630470344388867016651473677291619894813196340031343700158834882662318295359138247613069897596595447472397909832706167232010719329862269277168698125756395086802315475731419529211159767240052458156163352678353437779112805959652381348867071799410680191092583734913343663694363612764449096492931488087233202403526296673942376499183024509567786270052794032298801935901628459085065424245360906026268294284895330828337511142787636986787354056012822847842626841318069665800676421196968451152567195747840377542166615862377020089725709160890841034893216592325069633003781058425550437440924868017337696051066830328161488912909884372363737984420032168597043501439405355400856560848179179660484990575731560018943366542288502262881201341304355395581680824447345533107983177203049031595272070867567032947978736419733319505710432969033345724985585414526858118104232841236362740171583815360071352441675155799835126199354685145284294108177211966265866459616687893272028462268377076816565531328913959170777561616558054835152546655117431182605071946408718143960179314932284545843014673354818263238858213082433504202977826626025664049579276834288540495693103999872045500641901618392906923213458440508867981565399962201125110096825872392762065302265615812365525276975291755349841868994279776299709671981673388931984188305572167100030301814718705616061649883907044454327895868127208510122617907670677814085339062966153442251063314317409432021380683576921575986986562985434863616535050591053636505199917689576099924576354604759912749842836366752142226641782267852373979706587456482676754983894413131224759969578795485053962578593516967268848503292927111785558563349466642604402288989094908827513950124652705665361757266068929570249044782770710088780105348670889849468572061689368323867972691083397271252923397613470151844813712932981082151062390348496861997559800234257833234673348260792707107869680283776758408544553120150549985101824216069332845703202314638095368571727447002653228366555081733245785831190126065090380888838158647911912521207028961278055755811561700582795567158399836450737284000721999946174816077014954797604011219073531593405288833124996917624714167955221472267963089019171361617712403333748511325156050619160015577231269007962100060074319950356898554478799127520095960664233780133196429334423852446541997097648730361465784870184055139525573238802876664186434553154869706457474742012275662040742525427798725480744447922266284145796006735994399537039144972951752069542487957600627408327692830356410456359138316936990631505763284905211247607063254191742655017716305525235234338739172774926081787205226410822379053467814831263082989494297713175540876051839948533640615950545151443584335827020385150698955305346894803366650581012816559720015963937690324439020916441467045598313054345766344880901670685995168359543126863924588414276311132878808816218650823711991424736441798182276491591888752674157558497177925298894107981854137245710913759602434770941521374370391688692713111751495895853913821046350656787591664149912704730170666369950361945481451686469753777623727027364686440752280849345539106456764156474106865537746143051329331320976468967324592242554545899249972699856499972196208670285367531595368639493917785576108214723076879776775462666995460091048563229521923207775864598639524949818888515703388172593300335065013374174535389350923370371030443937438648613958005460427635386818446181221384464635051428570378402431967984793728505298676655686815577159202667262050594022599225308586994879078519245973571761294833558653789198978556044979708727064864781299183015174286411104858016548655240096312049910094624003027680313835570128497178573174075443343331190082642057561662154611845536248435748149221045940636232542008106445935227834820395346297879330316943663122187700789693517401094660578255557876593202579917943770038052075960059944253025469759432328933120128074438382413138837378386696309589479081540216275716333236461646819260780526249197436500851097953225287651080083262616376176858327325656648830652200618838891200364357731972616709822852000918821020572778458259062762484041006011238474408865974844084280832840947027049031036437203266711735675972552944679541485120461235746834726648112648563296012145519848024634323521607169441160394334206512265660119974795821052255431903846523894007463754191658791760850109420488008963817629241794360017256863418573517540906258318113793321837618069807388427569525775340633845102250920102625339611718872806823902119511691237270917869586741275926501019792757003509482921066584953439682243809931507362854335177769135548625477803515983138883433866105278986798704261516146315748450615480973398417874142851883210314911072586415291019278185873106580545823007560957293951744781522803481219019989331507027950942032392869400127910000182220359000205365453366938869788092389983907408371104045122670226833335760498682755522808170946719766774718322441483862950951302335569164106205970800710397952889071161749730680060064338389951925972474149630202598096913519406308069235991697772347199666883514923033122964117392877332586955292493622133727094625664773498796996367794775576774120849073662136872899836779245436223900808698323664998135283473827691714689691639458431567404315780337215066868767161375138642141638200224185192758398158237646232459882144529945047520773537500104759035642235487039979804435115626079293757487501566605948139128281947998230054221299023422053014472434625353175736645120571646297678172301651248521635873258098119638205571929631598662997372678585182864404850335255688096614162772125673173541708709084043068227040457676901368062646203350571087829809518722856771868929306160281648901009305016705941705706141368560860042271731346629212072687557299810302202712990999446387988144801988088823914941172375323509811327435589809512735774135518360702583942237259233042115771403014490806740998945809259147631030891287320823957588157627335597246196966857464712219166913555538692275196576964841395249890928191197013180252083120279700971044766037539531686550621714552944366664539088561477629606296259189410472037755176124511462935946779764243337370423097515514493112921044348883715600036761946097877334594486696256673887894708219001394979465602375144101291847941086550039557318372611673458321500075045233204873624183184599378753113482819867583329021963974342864102591925527109313899610963331944570805691105312268647883085435958382965489564187638894589917470536820415390694947546422402360481427808978987787991591369254624198316137563330650976462695393599620420943197569242494906371835660091976085387710044403346701809450889656264967143027208178894568270552173844161288398910684026990182963173823071194272818793604098901051604565193814999250823697622386383538165897029668392128539514598209069007489909870516522659539850758370758133723096317253506573787370807473491987226844302109979405310402713776118997212181531613796483092316059915716321939681730671898860206570653307227299163552466633488210883558227377082961514839290572837248973642720006721814345546888306143356598531427322999613482876979725108146660551806276552776718070979498301780537555949772469931383493284555754647931833089153706750862794341750760013493262176214098689550813157226495192997667718549650273459504703875112003495405654649543733544470077278303977858104139418212393382880709022009626338432327615765556902793002003913501377407567981067962689346004205434046426666301651489826139249372262714090796561384162860165367913432104579783787826500931053969240212331825807839254316397653291750512752636877380116288762509927642941108636243667257040070880072549429355305448392942264213473746534385310557501666034322407298132059545795048410116258953898072886058114082747084279008617229775462305721236736413609365692507639534634267378619062668664402721171270895218791711310643549631549086928537659902373352898225961982329903182092901020913893683267878815109599375711749438291586892446953323769850371230607100578085355534576201779055794270127954885291695493459549126465758991341521566964433040966897836812367499032906975474777365225643107350728994128319383237567247055618804362784818804464367729251905878526449532349714120803266593588424680379395265262633659744841816082866464087417271415793358403275351550305295769955222462089185754135518474507484168320992547848891545567086410526640255258564543807190163329248724543372651579469032423300665794638667944246869837898975770622209186092646755702369885076466327474180402211178744197636279106709352142605715607908504106522612393266913799401081935687151956027387201557847505437264706983785018842947476196693790897552210277829714646565536144332398984739220189415989828968870515897152262030469198894413672383999029202077762235839149420475010038192528993437452909240270085328375311912263725243156221992184894276439531577612547895778457860729929114682894473820374888779511964482483583188965734120514730319411297029529448024722198795595986436990858925943003572245614711044989131925813839736992124523855143358864546426504326428788088005476578790894954203568605016633795509486010569681026242618783680855006254906990821489985570083886044962987189553507898593673722279834525680668036644450247330308370999974173686588581933335542754824254075938664360331530993984904362948391469874546453559271327872284661732022204179736537898210488651760604845576569646151528582379948091245810227764091864130834588969552928247870381961155536639086270442829000208770690218290122227656911480519970406025500269149479662051013005309364880584155843128432793871194824333677007182054091798895069105384766637996892529005025070967403606944831968072683459607416166865309151872196511134628629227877748009558819205789508076801806735660150901414394439600322820506898975388841844215796782707271577043284018052229875588210132448986402976710015136141038131176141585395844147131500769564174356541932431179135207756997427847580482097494052750537525027896579713698621179704733221575162289164189889920600652353641242108904106793811178798035179863448636600750085486191114722597310527238239145624436635278133335020967674426237588806863634714566428884045791608657299172771738220881627723410818113743054827621888710465746561197195435278374643420175989908503588794692480624357718691188289735772559637561502758931762902226092642474689098705485786695362334270456592424792936972296771648550925907148351567299401993063859146490977745423514091023071343686177857331963652551332926372581671043675349207188417661900019648410145498388211355587725270316692738047691871732565959328797084546722963693854227407495933024028988869021060298250722847301173656426255335840734575142106422523765820839814647464251661616658224702976192644578109382474092679218863659814902511457500155970697421201993030166086995825673766213965180882536113500803487852884817685253492182984939870123600192237822767605040040759928550507237356036213234133738427650341702867315470285524138309750202871309362006954208412015457776682809166453440310983815476791894861652021972053973098567516392698126012209665697991434972647152722646660972704439480653384124565925117212496828107848904155723069162769660207046314062849951306107108252120583549972581319050779690500341238811243238808457162196412102567951972037759283079485910784728288420020453102902082336126080451467980544959744210128289588113988579906862817947372306882420178643835264786366248613484889766242416387003892027679358598357122984783879406280317209458543074518709231050077069182003530574947023671493217210390003150475269762787157834564657762257051062247984737416790167324227062208131282276054579126538016797567300694647469347691056558294934282895563839308468201098563692202572428331651003727477408467315218500660319674058535396579876864741564669273967314213918908267681376413122898613183499523869071325456375209719262245314728271838000820337551895776802234374623379925802753629664709138845085951176599324903340577044561736874675837200915284389342451633256090838077491584235350008559647997753990083716433427568473031725864761100439927880179279945130795759888401730461369059316139162674900607496659752772023154425021346069825285884574713191354699133300812589936617382868411122489162698530577784283802246390133922675878798935890755613717409467649472416105742610953916393283645370318606065771739881161196843139505067313383519786122676727832353468252264344479928670405854172880912572527304562949301064474335629496022512050730234945179456864140206532015763067858785181395779303160820689670793407980928567998885026884290603405816229912319459541083302915840930176948644434304421373331824375265777713334157136060549552720553108407891418034605625787392625403477044896847641805643456698290922732071577351863175051336175739351936955897497203601241896311976309528211300637930104051193607147978327763558013221986355526395132091189448057230880044259795497086268650653992178004650698884538823865896243930743923589363594239954251856435813676901250259390919544717903195885652078226823905720011324333391210625302831461717677464355207293691428957473223764417449924799374129354268668898513720309005998070254313995987103190383516967730577987768586428193960413257066698718064396833414553746438341842875285376021623798416753695472869325227042060425901377463370103164241258714321807121526234381595434271300253154735030726654119402577965474357161940553823871823258946296895733394200183718474371228801800764506730713292376663419146117966261268654012690743125275532364700437235847927861515655329313146055063962847003761983979733576452781670857696318486767283808318296491181523191915861336501470948646273478973907034151680425915885586072023091369742165172329885710854631366514171431785172333364601438044079116116644967510324949097394360531324680767604845425247811330798115747402520528722167091446114194009489450803616976556929138678693681833565014362076427867439451986769744172943449170853483806089923588265643142587969350494292491250421663177651017894425886452942395828074812059121537150755416129924070861136115071512766882551909442196566214131394602091572670851639155134924524524248112474085805516686756077158609423090037918297056841228974062941353540871396384727878949318131363988702355591778160647391121945201611414304832099327490246590521260176902293680502960887297600940285500273102345943410531689238822712388352603906088545563318289972435350369004792454992934670478265230781086570578818399170747801819701648931742639688392906217493382628646158210991622243709312437117292275174404841130605644708669777042413748166765357671224562729238027765681378895177726381366341852379999300538256259386987373835398777855303581803422480700638517778356327125084233749203858832236143653476974458689904920327223021729813855716425526340262042642774841610130603593809143529087907685555061968386886974794551585521850622564931923213773841478687590428469012796524310166752570660640466337741017844149061505372456623595869912470832286876090484798240462268642264636465633812167125818172902315565810065078695068138104212259518878468400211178995767785513789019021889767887060406858133380711111391544477638929653316172690325099654560421369793479445004778318647703436424136328220343987251348410163527527211161491306914437485110687728882107859361172739601306368617270896477915544618157664045136403646413603696601782871513490035005816283653186154290852477805620252480605700004520064176082087341844126419870594186061632557616918940314374025280497076140987601613680195324526280327543107824934142786846273947747205060485318349467199532840467593555557171030430229537738162500262731325688911286644027452351298114918413648218313016229607368204720075597845206574025600960598684936012049999569940590486814592246286792597659954572412178306602347417880479465896087961675035822687401173043273593486433043855235320730137313043478457551856904227382712812993141353411222580166355129533588681500510249837423576103414728303597634908113719144386141535458663373156866488225630509254087473842749843067820807734569954863730219232177885395153988264823435268307058175977685004808639071380355913395347470473566925032479848396129181653030702505488694347922821422298672642549327442805363766296081023772912140402288317688925320666615756989812877603858487671007840172798189339454107942307336774472106462435309851231972228665462245656082839069012552369372525655053537989378554078742624778247983866640172889980824438110557739065852838285975789696210388766289481748158672734990744679092762124182425191832198367193064913229191873815496699605329845262083706592265600328974112580809882592002564942548556434605762239555986885678863458133538830179318003673648422176858700704663781045752547405078237311932785200534485343108174323120736515563815565201339596694879547669599454299466024046139393904800460177649548594414501045307578669136781991039490657791039606638909696737145231756581763183408803247646791297076629396090163379475015009306250421991098004016148300042262245035833664267551941162900785958429342337913071175710384373545996941885347563793577801166746031337330249864823389599306489214635817703219867342800311687133642842646924457366730629339284945710812799744758021200122349089790098917014273106871109107638749970177267559883088610724973067792173411931396197476054745123169474368358624865044742105061160902171676420270381266893668208797739032102995961565636709030194490238627735778414408398862643893493929116072606400265520784741747490030829538257009040385898640705161894875017361540416507897529217045620965503146094422814729538485595217645795049918986362555640895820667023411036960215196441162869416153345869667014616278030446395917202303546001931747095106643864259237957546742390370160382229868174492061578575239675993568002803339972329114630515947388469245971429685439486932996738124119986276596243214466163659417880486677346591560982913458677906346290886176873124906526764183559025191013560982257342184910017076068983879364671693971050895358857929736225535258537660702004386733113850867119648126935704281603975833710431836097948019872985921024564887064190157350253321804413969177170651124915363011353234168741000628678677354751902721733939143997334355168658089513052664686360525079678032469259742601906430584126322238198635464762814887439094148212618964729759753134990356528153435422256363016432836745685591096753813514275303509156599324680002700935631187423706258450108319072131947764119849128537281350889459840784025192233111698621923009038699539337962277512304903271103134716831953349783810780717735608758568770731086631075922864319715652319184065474637770145520434672929089172920610694513271169926060811000558320920629686671669934089430995694466462211352442056918818297848911008919579600638744253145611366164984240566079125036404463048762047120115044598379665149183892904730615634303539076474259178104508107735478231067497054442238919880671287060935060152162246633995808096911142452617748595462284930354012689277206225059232117656248902056406411737078575398453754605159261099715431868771686369439445276811182563707270826139232674419093230679762836617862376166494872924249305938055746177754034179850119263018409225766698019292524759918954173952398024169885115679768315945433024127693175393651202163979640738647647545850044135009555663938693357709218692383938899206972474808967232042159781974962063095608099850662354898408310916126741368212655368011601623005630510059572191421507109630839270066385804646445262075688810392221062481512276609380369934764834761699840503839048977539481090026008109747702226271723861933576314520011560352708163333535498849558512032298668803079486408923800650956416251273424096094199819846655565155542676906376891241121773247579491304373194577455428917937640738718886020729336702376024462976638244291360152775917985151015902543785397309701928205451719606185060161026497303168330940269725868568382869229700325390152454324151921095965208037195905959138897214070337202542161768005528273863042828239686496353067409443978613193587056709955844429873331796868015020713764257592425669413941812989802634384680937484927726880201937335407981098465177884656754635336601915287749529188368851492802455254943469081367142282229568472892742325700602055818037578904335905488619484534814624895684243609012355027514412648128791824473562570379531843688034491081636955784190292744589174811674227208494695541461720065854220135798105237281715546565240022012354017616728130240299275084582929144646891001072744663724139590718336082729712211797268289873121164226765500645028829730214909258637363431275572362915214313673421280209544602840812428718696505295849144429826428745509752276574886024462765873815889144107240200072081504896358503292650152970218703467695256195792538801004007212156356248761288726997596384326872550622997993113109334521222691305349285535507958543673247704996811159452883650417126308461032612547177189551275370276681025395233201016428921065373817265106229179206989922601010450145897499654885554938081520209903998603902615276747996985937328298870712915350485911615673713602319967321717785733171677615709911510335409385303446553620956407555275856391796949947761120829833861158416343573489535267955913236917255177809491458303903723045823259734595701704085978805974167834000368454992035890175962916408962748430129284386843698749271075209634684413264092277645346925092000792608276440928292838187403703900138760934860227357326454000466962381490423255675980002071143384279973718466234187358289021983697629938666186072233872830843171204839736873661566355704396346759581109986381009675064162907800882178290908704785193455178947699891270833949535134045902483268982344386996023755348229086272937301289853098098271130727516768588510550332241511833220461093222104922742194682139440125301370557587854331183541389440731498007216933002875525040885816721754712419347782341341737055122502366066207130259540124911891244331951052656658895028259111461417114305845120691560458783576484051959110905565929142648864714014095095218125110829280819553989421691720912460538255703425765286436565347058304852145340979979335885980273390335283787742500670508931848775948764372463429935560562164642492421711411102572756557524185289029552404433397389099183188988712320929398716577487858152501227003095625347508893715888398089411603623311314654006664910714126331150870198025105040442447658251340387875152924225494342068916348776261374862004842587816676407952349673262247567449412862428762609336695613879123345451917304177460730153425697326333842714891938617056963164838308116462417011042570985404764404741657235465038242291881648285811868343135647909079267968667418176768183684987317240193944426884115758470904130145655369179619995579652646230820969133626770165228650344953245039334379377849255016277173329320919561188441327204076245967570281823618607468283961917976514393783305705073786277788030047811612242739191577946194805154737298701476759036748507398395637074496414128063013403496994509424812345493302929384024121332698892713001311973316132147896466125184427897601038974730685241774044426889459264562523262201657394216538662744408913366339342063315735855141854382048400470261048331335185263600771986772842338061802659893662601777472464516913498752641063054598633045583553902980804599969575161991448590104117398404300046465152170087010318851784390213359124236294208741715281626084796535990215932200270189177643674341742032187063534978004457997819491148493127933628142057493876512553068308499151875382479284838585319362656124573391150229944570819060496361020448644506902956350793796218096945070498558294426888613610806505323008619595360786042947625326991660667724542384862073567289685316149290173407801062347217511000358026243074913987393062608355846372590884998097744278535575377566896365153806349446338297906893297547770804074161606960469873428914634706410513215486992394453562758856350929062209681061081098267363245817017307576495938320382769439209998614464054444699751839001423103005631294795501848754171989484336168590393117413615797132615071676656566663014691336002855038782614151366051936697404397512061954498162774702373676175317156194391443904702557826866023689698478001423769315559406183683305058459474148522306280967393666381306222303706206839943297039423757444789608648776656994428759841563798024804621423118251781925089492233894819299753132634764762704216323041837054699246220429413867283007332127978721149486748156041873487426469115698617942097769805889574938562326978697027335051743735928598664405358664464137162792542143516547164648803924917278025990322883198542394092591265374721608918620623048391729226599540013254375455380717425096634104477942901492127929824614036816829429891061436918688751586619112979637689908234792732698849869864936879260362261560484892614999886486988410250758581011014857186669608657886161769430631683756101100439045053078487242172624926097101158733655359567379348084305884186255811605406287297100690415244793198554805301904128298480980992970596659240082579793843835421370046942375414636093864582615393615808971019994005640448789290956340024120636632933743720683288456299155954749199763337464422374385086433813450088804973934344194269306546102380986388924135580318193988548462885468085653384030109855479149320116120203682461541470283315569416550873117409452016026849950426542898967232845820025562075074732089055426214763130078694606274387413381825891862939515456488646061054321975121126858422435736147729299373385496688222360499849595819901197128651637634194501043047705188039318817030743218960965061874097028555624592654638562984389532727217871827066401544083780804955567930801218218303092303696148985173339647602229207381814996374666052928233370411343896757763000762614906126535885144920516370336029552477681887529037651625567394810224760596048876266672058681315301555945806057971945436973099928923285149492147918830983625802589796665361116243902793696301722514452867733388606202673428764647510743858216208732446775239915616769136775945894167497993817521112951140797844134086479185601631789807183947583789208909051949234283953125382766593971052309228728584753568666635195147180669136994729442683214675831503620515160446280357870102231700145073795255801661845581622761213756468776377495752356862294579547249260843873301352923713520292321319838320481310388651014078838915550927204226940127866767437582054234190099738598999605278029793003355200979978875018054972837044836472478139421892108971041830317698344053743069320148248876978662950131872519459778304247184712434456770064891828042908664137200247792450448519712062683670600754844043740640058349018839234669940358138301834064481057825445724285381361955698189921478173643608371811939928276033041024183133251075171844236822936159226403302279450094377021413792447760945562303601222623491022877631896863632844876533094670498958466125906002822010087318162226676122211283379511246199414994721688151912607868811052561186172095285416777846058562626271557977717895680992438549398701773737264868967707067466233621317715237058370886020656765516692600890379217789092899888023993499034625812449305447019254016703438354334337836864441744380504783235895943348701283709296275478223333820998723358102742141052192197784305643232838394584929656450245387739153737135099636658873718407284543234804965177745350756427468824451566138836023203364130235122492429032947676458866842346872111131162373161365208824724501467733893307973583360313722452135899140183042221912252583432871585227491958358340609349682053457380896159674675690922498798865401363502134632337396399855851230644188053896657013619755268052240704810187871564618954459142398881437436938626981270913439132180499210564332963839369333332412370077114122644613433890072383789463019852869649092740116691769882924731782524035384477363785492172543382886806327649729109171313127339057354922995996307885198237228839278924996192991488672928580001889682995954878012754042946244015680760489550969796070786008615861496049132709805082800102394009944560709779581631163892438710875505936641841773311168698022941880739298927726764444548309931124042694402229329652269537158729293705651843752470510034056519277233503170942040021022508239992483908480000314671576020704029919195230841073042159969522027020857505074238176995938642894103884883624338135193664722678656289523864362642215500943713656802030017250641305064998179864723808289393610666318699983213337697279495407336342867236986321850566611219035221966144415101983176487689491989029869494663968465270016960652102706333554498011172137572643526321550197877453425101136476370151858749077399898413015849605706752746547438524109572829849029188425643684945668627327952707889871690150109634531157586626227023625705322512213611169344264133945307923142693219781667957613777898464342285995592064260431994765214851993055277608352585424821252287140966397454665804607668725133020359842956605963132274437155986211207867974727052297912381047215439206629238456879838600955824097718074606566048318961306839267039594590552030619208610526410738404664826117165361360314986557054946008490106336172076613991000920285889246429898813913297536294233911379879092347480503630480915709667210517855059194459983649284707369071949519963698615311169000725102175977811537567114448964228309333248773349259711007483952391511048142261991886165889961923472222560566739218457724998177310868989490238561369414976882134706743762238742266520452140462524620512750638308015075495050921298134467906181922890310462230329161121850107218836748908219128667276909476939733870276527095168313174522692363485541606102580952141010222964409374529817773269101312929732065247212348930315840118320434235182274967872401110173192099757499265020659297671414674652230068960631142037855164175023035625789444349752657900822580801603557792080605399037137129659737678112785228208641495122138937059442315732384739914913830206211777419007020374606607678061524902078367012122890418376784363212545233390672916993025983450866698252182323525889733387863977956741361531450401649670966712786932401349453000744738651157124127680103078718575875996358377046479842853745251340788182458379332760905165747499754082632509504989564420288207777394641031034723203649398394562360150758966653549616396800540148206876981324200458897224817657367017456687015683183740953838812975136026816789744671144110705088803457106530583542428903959159296427682157805304412087474209223754911574732387116283539996593116946540357829988999052128779139912400272244017806825381187199289532892689356938484788746882637306346332290833629851431735475068245004979045003174153057315742576177089437475144467455321766997889892793920526781796069568027472868742895974981837002784512873393580625806893177986020790930138386537841614622408836956621090027429686128603751093537411873397952501619365836692608927935378186848966590485332074237804182849714527251198112739427789265606011226531658825151417970555666738399957748913086501753868668350674449786108673956294034847528278268025189603966125194389756663963120744254316429107337871800003148533835969927739503028896943165055937910467744127860723909768973921342336008769857404790389468652709139333396174590181330363501077631316904674657008403389638914392113360689636988637478757944633881491683504348236240657260255188501488171800779445424196089218359309303373938688746470542342690972047857202403431927495830819122182947381728733616962975367789191734272248391658980051798651676782854175264406217938556821328632435955603633844816815793514926939988524757692579066922533213328573510798069235793499702049945125207327571405142809433856255465612717066909962168004366103844601693108081525288747850369630256148438554394616749663368988374340423291113424176283424090308127859721140773142143488906763449562158546608038927999870247498171470148506185756859815829198203941212688332148571281586139878713204864772239159002052152296293417081761537399112552635558627505441849423650142145963968779129277920014918633766537182393716500941092128840679698454613296666229127419290887773966579070384489070469158234164321672786990401864593525812455173051693301005310073247686441407553329040773742988916559056115588306268031980877458770784677385036778985245423286953338673999908664972014240025103108208662429068980692528400880375231588876767498745535984769751465406229740561289788009118669997907693225852737100659579258943343900390210406638956166472595411311276451378353098993681616486946663434391516434467713085676971288841725784694018809722521993252000889212104607665684430491566519386656410909257574410387994454199402867551867249253226769047060906933385177173415553365827238385938631678407583422559239551466002913627124258611084696766216372845155548025223473412013372745996012373694789918839626400165366965476094532758249799230274648437875201620714908655088425662494480469813300708412188330015169616567690528748006564779671811368735538201601920897132087650646061087862712801800055523483859496692005073809823286193434008184064745559592896894781056634387779879722015530059479113707927591361117075598942602112310502465826756696061665593814287026932067825561980846942525503472999126633523690680813221757268971139575259804307772211321764153686305378723613469780096201497192762743148474309133902516522477409032223690697592143213942759133846010868176910677595570789877536681022590083284146115261867406890786785808719436464687940491923449340053463592046712900104495485012092882090456282387639543537435240756836102416084889559127193858762643161151848544026752836690789025580384768346757904609242487220546766185635957915297603148048689093282703989626394658897491828795638983320468755116137189836329001356314755430668163564009929230489417975905252776060412418617047161813838609122543613628552754101284110606044394059917058135223173468982817018305605032608881504687098005533112300448748461344928957631830694216046767501503456445249108722722619682876312285138570600467141205145207119780190329154914769217402715001180469922993884538604761230081171191135214623405685893432203131314047362556369421719476257386098382653359935247315281536408484911272446954318511507248847475399593371244003244427323504910390377178644270003235608198005763608016783635649844617703709031812510882627382735418239194004213611943228664075007310496756834721982871543208500534137689476256970302687302268045618234727112201070837810038295514479061590710370383145837752720866990286636425371776960783671662769959104988349555363809541698920246045137200086905094809576361712641804400296034201814253010885453019428631602152634595011864303301599071890603761138497638494305323092486269885759727441524174451531119915181496063587255422459208934188042462910954585087130046089096465386829949254715901029494283152760000227896153933665576124297120395457841418235546770104359462729104732347215169373985029221159308640272789326199914640813752664670525187381737766166936077058371362580129250927882673920222484557813989297659226029825823720494378606878366347728185998638805698061586011002411961218362272429460292826302635740752215789682413842382817822971889547836978106761782463241383563554275265361675058032042946254698185818852236544309233020679343807783779554286418454576745739867247975881253691486559103154389658795165102352819154029626224692616054004377299474697234004502146049221660015984157350096005384235514356824598035530194829476899959543473024265211530327512630370617039563362427575250080685230476777759728107498157330580067518849307363296414448105076769036625876587870369732542810226884780913297855483528549670188511810053427438160276779394731551318131473732857661315956225519303232125968297484521124520596894661929305765004537381793165400669003229322034750878424013077525340054948849867371498222013339255995916332021300586214605149916613046195265862575918231629567070034560697194103777189007640149102909235398736986857408813764872219966062302751987823382282614716195303485775799136089953088974782547922024772736919603770537292979309672678227323969839295602731697924526918806289433248956130199816938851867368678982237112980709990719644153101990406356514422432940551899976475154510471879298517424670773014236307064055640057869630731868641033376023653995649123561013936683981226359356363122990899480252899316340550406566511704047789837036841700227630061434177808191982584243724124784724880864597144581323989441376690204954847584712711734442691573885234659042398545103000807471792887612649316443329883458894679971542279538170128585902586751518483077206029711868125712405921664833462082521046641461231761864010030893986771008482380431215648436357755227298903116596003995677069454675105032573578772821670816414430375564713512112537902540250842127718726671728741092304571438045779324380108861381442953855826584233350191209676426053190149145363065639475376302540974087195550612624681718484600617199848151912790708320729235452080999490023942928655449921793582472470698652921412037289990507184014473492836119939664046790393820094897963081644325568946389998120097269626523491216649087681435307247526622056688630708807470187838666489922505761720940399327477699253268126175068327941428792255281384788651694979177256960490536863298878113564129814711475245469419190185834750513260095836796972953531477596515394609709661395370762238861726772580876976998579181906504876373529473156434802832661405810734973984531858716096208891344920253015468642522073887269157956974055025837793832626222599402115975393600552019036895102179332318822007053604714245127579885077948947157747416086921434912601263027072534910362670509334915261680718744453721894888969653207990274015456395231669385482289868393446820836247695123706745951452503891572548041940841008252298552625754411865622476838254891130415169237359506646883806138474121389308147786009755463419788563877879546877885622978539569158001671686575726844950303419569173591616818403684911209450284881121785501382516802892413855118526691814195533105520501857881961323589457490519447265991962042992785050149971143025836780707230574160644360593128097698059464684540445394677053141138918854728174524187996606417925295061811767351286452478231071645784663852287476640459081628587224251108469876624073721693039467836707122317901950975342391561897926946505656838868233149186355786283648055551191070158364073491472138117704818228379698392919444156630479660331082097860384210290640645080245945847214641440459677789023896163238333189112553652695122725724634712668435794035452737391413207037652385334370490219969024920151980815513454011055417134339129649748500344747502975037614662933015440874608128907028368581927264549289213978853887766888934210975901363547717789791810144306926484996609463452931372555545979504145964777326404615939424126139573756894778180040052216970342564671676006461267213241770743889348265290142177093793913346678896948654830259738308552548374892173951176794864038918697028558005028961696688740193657372754353572825272787800359788122451843958587382094399290095234588159866714376683542905195572908293705966709512206653577285194270985407716440423096150389889255683439674845368558851753441210158752162714239738768228549340485075930746532282794895510735820683404564485892787845253845082964917513118412626379409030189534332939716868135839721122877840212138336511091328500380767580317667821621891194064880511265179035602816199981141875951022691772126175120411091519992407106509629346316209742380829806305491593715559537835379336899210263212090548980159947705716263123549933294855545677101042060076854404012559093393638282316714989124669776410662664156781775397159944140200160828166495627434690702892196339882998412713489442459629885637219026228641586638984720773868420042729402982444708170782222581418962273542301460928474492897312920998000059084538771782142224771000489387606160760919303483943813937680721120068917028834572955882534054923287635490603158214584910939409203031187860273435766356984619301393552455923790803841697105802859446201160797867314370581205611722436687365621605037399722769895814328870256411269165449015711131334232734244704165445505452777269729536077572966009387218366406240154817858189304712395414650051012775553878019473598458102666276089945571146532606291486798582739065624118565206600465880482449105195077606643715145165408498559989544477915298894213359894995205593415862194443043910195383944140600884018688771759432699372213353632964346376074192650732703278622335707976134993213368444116855987099268609624789164931229426664352438723616233078814740369776972172104783969173960078978128624535399131005342906517799206025297247298816377356330131453715866020708124110451609006867863116240367314251339255933807480364370050293057022518966591708779530753185317995402702524900153233248050344022885172692759863528104652295421932616303606515973159092734327216478457535848102927761081757811401756464620847729916213995026512925975373941062892829544945328062624865901634502082013638780420709069028685426660107266404434652735827787397085679931522187149493581910470856656144084045173259956943803257551751622407891120521839827267361094365229529232281518626320316533357864632375067018777730638302339730600068227465214439888497833277615912429396079242474104863415056885838722524773491594892483224172166556445966683889689300891051042296587962343926171034732384127003261295829649838764517990416848969544943854720418650043902980875525796284297487689112991599307242826249044584226072276921672357315365699804422603948724357508741731592628535694827535055570500606083597127051639647837665430667717407786876817837374134899081123923498628233240005329924480195214739407149637649553282178657748705822540102930791101398935310900591097341627187684520716314230983668452288723214487332664757301517225557125048303583035052238732182074118486831005492070914573936899357244212809992962225511414543610056459286543149517168201810352767547191014970600849727516046769460027688892197823805027895847945074966365301263667205484508150188927430387860608236695309377432078901213050895131929234003949153042725789235294993348775126195489237823070698115886062153965550311234336132898755303632517496847639173011711326296068632607389543761243123251754002566361288868495451789218196061132475057279064962579336171469811742791301573182029586323122265970976666647164025228595083871166565720430064237408130958443581264858210495859447029005543225343291690166365668197160563873591173391279442491097052442942659321580329293890298521134228373634856184963032150564371351371764390520888252194491534000769515650467471554713694169707092984078160471969597747949417124346683059753725769754043784002607889954297578873533587201217173667166014748943250069611943892014581338193642027232225110668637829056477053715276728966570348555337453213493915416690312509265509092278504946234243211040567087243157360848022582790575943380592513415262472040068846017852704834904674111728237032804139960962936627230228737329953465752890539879734102276494634073096365398833580348890142953432327079998228978712819360639285763671812916750275537299010042598191429852424398886994537708265316555563058187713449196732575066113177361763869509969413471385154113053552537428436256935226416857414532649096333192375293520293767297838217397405580147457352054168470514951961130965651690970236940972237962642558180266207171128103697433390931197222728189106307666292493750169010604658936216401473898286142123479230171810113045628845541492951740815271793163134634439353454339697176985359649546910756299638970067778525405121158025532139760111499299917356874256699875732673931287508281719241361544933318271531282370473124714392199462556834270765566116059537960965762896429506565592466235222757542386079338220869394318412774891617567044790880854413573319032996023513867507464569932744462722468266153880264163931072607836689658537334530086432814538260865042733006676067762824619458871662003618548225477025342107786815114852295456186874675121355092217269429043713701497545074528704891868157968902265482999170779902590884117497188676398919662992699189377950475778812797819147231931803285313902422570140437351911450998029382743274406915899247588512537760946310019849216128971711826639157168258652091778053592728911325530776832840535942712206093289914969650744484753939374450260534369555663642404671100813678310589882466851005655258664855119216243315149987270932859997133476452980549852493360699191001369130502761227020431098632640394898695594725104182886637259916363660044129822955216085832976692825500227856114599485276318378715064231901156205327632206127805660652822575836963670383043515976267466765797173689239660503637271479650646775903253449997318138215186558929828908535891438236990610288728537694181033373438776800593530971358530509565399899015646192558642425455317835552686476961052698463762230986379558671410134331996577297402963863704329593704322522086069342288087469232568842499931117587504969490157917119213909958036449616392880479071413509679932580006366254394486359476775532701631800187793867868697911685312687551450124726950612659240699417079726403022900887682838906646332266714196990861751759623901962792985642225380512771248165780685862761213728435092347446366711817899963386551312922838562735817925093121881679886860212680531654986229634992279806579018249666166093139347678581127791550096544891735524904135057095892218664262261869897607044627866275526835712005077289146220326731340634734454740313497560301950228087705030199532243192004002391943268839446146157628040522037969795627634195397767243554781118013860697175270406488304056022031251386414079180114476247202357622518559058036554764749068341318416700368175049673602698857726148221036050963998585145639265187963650618263139085028624056635583763632477747241379116788708039918263137415380467106877028342364111008101370088837912299424273020444834903679686295501691395133843575539078672972951595876856315305063446071562342846783076189740390583668434057776225303113433939938010410543279529906561478568231188790318996690387584941488820471872117347400926881906525616980677692066836005501475311408288144590083575819160009412978492814230769873006233287192160093018357526627535626845807525032454614528905453590385788616598631323984534405499946290449343540764013355181476727876778189724242041183766702662602276048334305552280303005555616941212930665369349457769964995429554026498908934637346305028036902074843094962331909835933460171620619024458910853218932166982371234035912817101953274654984393121702235975062289281138027878334331753127562886547055497076702237131725828042016531732208304247574868078170075978776269076665595351839260150696337535412786704154375998961978091883214679638309818441001535143961835097193388910657377119337335883273222460138740613029429332523552397603281166073013010398906377591798704779912536445351629648916893346678989471072315691028052593121695643945830974729331098450625759966257266326984160325085686298274048429628386224430284205550620990713533717452879893658466348265731162847094262405518683048249564374754831520411588434854340313133480943515834722799595818476700338967321463231054140967348083420426396158442783224916259421294100464522800636417193088349412537524506671942639251018708766894809274287915022042001101733657457396874241002138838614721360573242199444054629287333500652693492275112027613473148957387333208551758445929461599470710439635684058593255550740150280826776660312509418620766375485127555687254063355695342718176978406971907350011172885236903295145987533383292075248359888989008751572098710897492994841715666651217338247721399859685109847021422537037463137673775468422060129419475245321740260660456600702743118123724806203376067313796273610556350075014385666994094223465839268704716548294299417314608274392844769588530319240028128842451335857890071379613926398489927909616856092308837878341066073902115775625380299013260702027043896213587657150006222958931548775288518639591507841166025300151843894379006658494203099857688026989258875511341173077008540441340487759301579360152799060448064305498047256273586131834683462444058364291115972803538931936144274114835257990649577467156593461523712007402561010204892820914900586074054014933369814451987518222670655280302472953380465856432774611713016829037595523449318752052393522419213296916945462095050317801832277504013899474775496419922797596376570801211334110646254063486749609319915372151015697904866849381089415512254069116800555613821883096855400350364071319903725076486196716135637596289513841525595500580220915252164800486693957824130995694979323702117041446266613127323583450194850214581465045006932555677932528476738858256610656525625758894894956561176060915885976679797390078499484451463266507983712277406433225947624609907869143159357252572840348095552811507581171459469568361981974080725640789402122339240370617429697494278523728579860108234713513513088109190812294576256395736971228676409611559438816794533745589552457140023835865511599939479245306880016805230462188839978070875029285521497781075266769072066661873518541239663054159785664972353988863437948528223948445332083698531206670284254421055842249389370380562331608824108648330307619181251156795389041206284231578821403591062338164466963827755733597789538008510290794798587239035800614673523509916719410786450707367246692474037598094347363738551592837964263786953747053063297321569435312449964658447413504043574626384827805411581519270565008211804021882307971952618328825385591869368444288480488425008883422029190737942704734441387165435598131915923773775036655315233153653913203676244012471555397132839088608323451782895320237811777793656326319597663219147524758576842964538401038398564524972756203004996300077549403280641560573753475730523733524375408535279468055468971592260701090946911065938016396166225819723036798800022608940130290317608797689808474428262941815866984290972677904859769093499809230462764825787847603195966149719336807606649894729051204794320471734406229553846533383088821252846451499307277970748212574761954995112592580663028710444458210619224529574339156173321432367147982133704700827200929457585273431207196834852344831514175084207363344999461643818161526494314163697900320257451751234669282782607450637985027035431043443783916841592784220588596291616149343113812197177334811581860079045152521094924572249234850684257876389383130115177763122293116786249741597739652171570730907812268609240675839321592745315493776792749692574866843423899211093981307333405206465686983156940793011588592919396722801220355498272671298688869894963667304237896075545229017641098131490498629331945512486503937091770226380901454074704755784023890188413825657213850279721625608778793511007781980967241936131287150145309946689208512703331716360404046908871223153122803641555220004432928926384960248029676772955193456795527234155474442237937405838123057110006226909032282902639604799194567787950027881353010940418876775609890409796968823731585193242326589104213388457928127255309442103578198659216964079674737254987806618232028806928407690087490471940187745691403163354677008572850891193330344338437079269122997509395570492411306091642968171629850366378950586567212024755113022727592662142647567771599936521888779665122558047114401057350676189088950741454164187559234284709987298303885900433351632070108866432125359890931689355094230061610390259408338180214373007484565627203312512451224604377567177924397113537191331051085706127275018682173046837820943277034441598655540599409821831603395880025215258801727367895099974418428220635757084743510049081152474019277158637119702927522601903056532773085403134922581005764867505282992827920985309032773152716321716445702237017902565120951352919766819024655185825671554938068307107114583470419807974038640958463883294904533696428814263350961258412053418022051370279429515029613006669314018867535273064704161690382980116917293135427944971664245191998118269273553652960832446329929695633306083513950071254375119240924490395317387599098071832466239879756958904149006029469897227017772739959961988220594788396021738677197755565818427745662120863523480798710579923727032945883313885968638314150068464414373800549653511286343814681760158367147334921049444208501062173632845968906300069094118233333790961057329067926336328098069223550757515708420678368492070145702481412638043064548968257653740060105435873184103898835784489976651301970962061115337501504884144056944952215255768207660162895563002830521085889547340705762831067511619090765616538467231815571425171002364561041369132041009287879695839850183363482851021739982222825283539311430560812654717015555965456110789112007412609714836434655906009241894500686346731025983568415350302118104426609514709362367633255081545241359571702589532079529952539743198992557379630152279586098368207356158043053904416484807191159915750477402168907419157974795533816471353383588849321359535737665262207099580728523739726352703588044640803221633980327982269629777090289046079531733585844828091339406807824997867671448680015188369308907769285279556368000448455906119104434218219237277216135954824142251601315608214823120878396902908581374982644446471732857186000298359556266543828982860887321632639785207175085349026332871943962980001206455136209701492179295956927452177965323539706330629994257919082766333420277913543908373779656637582574311139195872078898278259934683181045861278259737284924446156347533644047966544311692866768190468445503914122483829982309825885648464637599112124582137158601367987997111946831307502045726405615791411374654525452940966887273345512927873133597357749401297507968969398493528114013877770242813881292611269794388128439681282478585507163010374719788087910256006022452219444527671380703171967814899836840847555111970598749776075383851093643893272853072233761985097510799036091577462795926850209610303653448802393130985911402937651793701905444325361339813928315596889427619654484390386117961784437204547987844575158484644066369806094810631344970481873138992031393244709990728526331619920256377910365842834315260559665481668773908295884727141178292510127012725504878328344434894152711280502729115700194847396108887325539003746539836826435298795859790437207655495513615248798516056169002787883517760995548974075599857769246370640028497532166201127826355048865796318006453789837852962459133026051012575373134251256113861795933360586112897068378696754273687399127025444656852087790654652145563807567638465164354187944569973825766918857341838395837054306379320791026579125356370869298675349142164341698678808785109550836864465559321951152752261819935118581698213409645206799890880973293401262909066573773615866700503808924143121923014655220901453297424665545640545711979078208092903126341767564297466345003769695795040450162355864801849754373168937536610132417321352001347843123907699971623205192916345809385957839681253741140555457406363847856995111337385000126155978167455378821823852057717107383533436943616890686094681884305691836846351913841025070033626917645693998423854625893206340664130806198405422766161104170868795761753281589271880566239308922610307639895275913670419491117925676450812774738748488064554308393844307344987471889198689642213841111460538464190871228664914430971592186712046980032245472399143976247174887997231902035407003390167840803296049343323513918434221437670304159449403192470776278824665311136691931167271814660184139802858000444743155739413209106019104511215787896142456502755045595615641660843247306681506148276828587627562573601598754623160264721083929587705134114644863637824192582639794601695768997787550937159919501418341644763673198457664723765647068400920233263717802399625251245196404634356877789922883948776206070671920722869874805179974545511652286224033848118407227709591798255455717769646516986880529505765659260131132738078198973595424556489290494014151399643202905881289430883330014977734751252758577833972822971591424975184011884220983075620438253575307339932162374048336631638325755563648789139917141983567805572718169453492736205991647482594113439617854708487346114317428869504728852813338217247852472246571700069045599721153838769829110334775631396789221634716089983726875719649021931994127934318796774477672164261026367733127967979429452729869832417425260206488091543864909212790054365572483238192540796209533413469406842858510976714701453212671507123385261023791836634221317969098772462218492991861419006390070280568471801024579203251215772872377905038100948905248355516620700647683022354004438150705622820855505364735654036411986373114139831102741940970084738496720730022568078504443755899795350764562172534943726470257015239295479649899525875580235612786503093773529808234847022674610368430643617361750651790178946193615832505447038959183865155840989481607805980150375216089025615491743703053499083383871069604479030562441969013290744155313287429550320250367826115201056994599711058444994565571537867371994415825294682961610742942308760329490810038925781119134404891397061668353287413527836154169105797304371978795440401921300703240389221048574145679132026897894887556244495557197520084715176902497063976714055397704069324423274873289796052256176782950635592377656830309548291892729450001606398203444720219215118699613356622187332072293932761258632137497377378918436065999576249499408869598973462779582490064586822335151371764261092959749140772386139757936857951499699555671687105974065154242127179159316792337493610419145316008413937176397425168682209262567731435095636748222902016255120658955390904670306310245087230871261792249549829262885278520494289339173792602721605890416160965281746400550188112473795170791282519674370043206676099962176245267012641132917689592524234001566058136405313151147248222054279811853000197197108713404381008107994262646993752554929128536718926607775145888072239540550123485609760576587248390591006920778131222289773175174851787582288603081696459183976604662235312221927469332980960665390104590727639012896937533545500988453099001865098374936648135007640973905336475599475287332405278495548279996252505466148543439499144427713134137359344372354856382535446418676340793665306130824778873257188024438022743450999180614770599273909891485986778916011016818815496237452765767190285862942871842356872532347263740093376169151532715494728266331519059652839696606698122510400844321272585373582360413211234630559932693675484921066532557642092276909730050812758698716753119606481138195569599176479131107927243045901911422495093565786940715199277812561027952236161058020160695609967263244395849854141285241724183809510795370201852940490610031041863605916028852271949891333360096541066817872030942739167745494745851424058520629735960235398167801558154046068296663698146969526452852875991716157682169109482464903169039949592775834528119024028479122274111442346480013793949468617532606956146882535330841411963246408299120052451215901753398352814388069261456980890194427643092902778727713765161230918630586590568668830609618397952678031172635456086846053744431584447496242302064216818696331112280323401660368515207541770595351476993974441701747470854781568263195276295032194715690580200582974952252564402632956951182459986567982744917413244855493610811769187163161544958790041993941035228785528848463003766021578498664122600370352317380525964714671349360642303892592081496090915668258608286127390933729386155439878211338527426396426580200814899951579621522224525131086115092853918383520655238629579660887945672377047110638999702666310778886552152228579471396478561400583102719563739966193060405221635287076200583856156127322713650038911510159884578745953622472623483239573494804815376591148001884224930485980667758050789658166583505061269504249531544501983334122504962069893571070337296630657751037922942000336154839915214967985859445222978055534646673532503162367388036471886087796745323588477832755640491643134509673164139978899225010188472170895783852688836743510755264789810433838470745003377022001408680886970736432804720156892295594164749609942475369566458718210134755121922764848299988070358621404354592421105265940396354902174046585077221974657572376803162193380934214894739243584587854900277600171331386807985491168486888059035364333576781551181060667920665663961925221484080095629860495965796326015331159868219210910834287903862742482003392981743072425474769794089299986639419361680630791475701087232081885951313726238367777418460436122157607980393069795366913099116797609027203930559987277013543095578405460877894242732087472998367342619709557277110527089783984666722173764192647341788623748498556784837951369122039022034486598344792787034994040516765450956639762950265183829838701650590801946255388296542644861521521038023455119676408175856254274702726182304641224628375096859036057949838973734884678682959121894341387816212446880286818550269733281939104218336907168693247049373724799926729114502004168914105875536639641404480209356043298306946351506575128127408319869148519647070136572082209445268872480694254142843562506295293886879223076371340924726429635886069057380320352886501415732294832474027377544893396163707609469422948725378375182910693382197762085845271608017132646290816535328103906072867846654063831843682506263482459764695614884462353562670194346956323308282592113390955195872992473468578436443429975483200075825175923992327253467233480547616283538127848042005625536379592472989203289227000525565327490288844323333569343464070065435778115617146223462419523358907936647826450756996876102318481620591691265127925147669723076237319504658502185486055523314810907786598344555991388510477079551801354812683764217726206512343903965887834535189966069890236745285011860076163845938033978562179663420389164569766517080647089494373123634793965254672626395791720987965961082843098040242512329516117340621578653429447550492127739924613589581855990036819532357226840674723126891140392793527018097797832526953182812488839245476543152950565552052632531492112071352745661234465569143318704620170028254844998496031967880891322931616735008052866834509575080723910384931348734499541457308057025328019154224472968227135755893758676768730282951144309317438029024788035409773615745648585273463260030034425336106697497043722504160389613141130259834942645992668029984779470481244692199392439930035490447498955418260266548988446855467928023131515865624251311489103322687357213798341461393784799774505610178778414929897237825554701736105805266566091054962452074678580583183601786139702162642300034565706255275711106848897589134690154669011946860392727951086012127693068108131693846138085683316544354284799597621776687089675860004138685548990846674693693055310282622592580863302782456264161990495489882170053400001794113248463645424320733409350945827486096426069657786081482038914293875937364277171382186943988107530717310272349360584753823483365672748458821730247037849306279165343299845634429939825217125045447566285565126166568996144817818035413749726935547740935939342428145611517741406850304820581049700809515246150566669191035332993379532926511676753187722009595250427890896525717938729042322757659335880091973002516211838717208761065845391840726682961034340167875869693528781026413730087463499776569553780917708204061621123839320523590804342307314640842458713218665365088625337645667910242313720606591879645613903258263530184942484664798016377639860091433700062357050540248910854523892663671907399457192079100706307822091379424144783093110838271752397817995377362397964170554812122397373972290795027482167925289557935871478021893684803510621458248404957145162560730149063646576715424937293252941863070515702843959275190756472492830641802972705660656367487154300329117797116083140499593251798510557634609250969310594893471090522905071957428180765792445188716564777752801509257819939296718356189929312943899028351369996556388495043193689247019340513147971925199566109447538878289251089634062416764672612247682629328183497615632678350891912803455250365527837719397962771833807425352322983197495753863045280786597444853760945777968939757098685440781814917306487754427493920791521641271655237318383360572868597445090864834380532131337120037455385795779494731696340360948923201094805540133321043558527437297033579731661045382546137276966609355461973692073651662977567117983995978194163649504802763252597312398484978640035388376211562480458011781014800590373445748173638727168472302160470636899185120900752425120579897578063009442321913733774251630500161249926255261505205169149373984304472291531534256249282715552795502910609017044597090411187585789126885436956459461243014236012874349075531316968559019540253027315773584076043545006849315303233278991712977353795012972403314732688394477370014287978745767832853027380094102467236840748294535797794928489800282536962283769713384913895932289928012418965903229001346245563228148282152046703816331108279017718762539255005784681007350594068559392422508442549544132299694509773487201221209402965559625489060841363882791429705398584100292370208822786448348253410302594721290940000214415705342124971376927872037256003961769408372919656831562813935303805464639757646495905622346252408969950266707027529281245320307158023799996947405190845250968182330674658528807731785961836658648165790047438284563035719786064501838534960988772469522852808953530346112646887678146417167061969322130844514710231841622005376521723018323133255825885948897592706888625457619408705854733260123917953506379491606617182947602879740630511903357546835901587453315644920237656631323796514509305761363155322877192431496711085293664757658372413257659648388855026668783801388185081698373246470791427212905123759928316969930439173935109723844872200572646029133049554601082180330894463878813938075195822308592904214986398630236746845714699916299234239196429293831544632655337457938340828065464374196799033856236236708946838777914281110460197762970184945226632797636193891538061275800426995032048879684843715915787266663277147604095339321952584030360710302628533405746492439771608063954138498087033285919811520109727318222080307444570661368513741393480609197309039471313011739816551640214293617789106392111377944181434276711014414589341416440637168140491759197175969505746865383297920127925960151520154657421050057200156689388435258769512128645783440231618571344489066510274749726405882034971281892244147028915114372993853177365214477718177234099892693965916329926181745836996815922407707139127045469945999942415873041452352088984056116550162673742239471929802545346461391644396589912037439366820647739223822691832488128213552329059567655602333921749825327247795722737935364850236729213675514399487022735824083761731610111673269346984564209194745554766688015345518526060955212442696084362294661669169390156650563536055603500026562942371683003236661383904085820500224650161658242614593735867251721304520624233922643613945667071814336671359665316829771668861806733654909133741826523913057685631251058693975558703999333793163061482859339868363909144833671905858960051101761213814097064119440630531338850657130712698076850858694320274758382546539977161861953462888967826062358830632798791558204443264533965384032263234486176655829758138759632033312282615974109615656884770136174223515433461728686695313052250203928359120749063635395175732169354706427192515946924706481453547103758080506369947423934471842311444373956439766124752054609164548098312408731917951211959779141220099125335417567194954551314442907573666476358769128002382977970486073568667274618982238862729703735902788760715243665660157682952803754388212211666859922914877693197321262355517958034725445500285890421023203393745467370798359248037731172703634096882514265534992617556844467835973119042954516606251047058231968453700640130217759196286910834329149740036433998509575475120705737100928446144490939669284922013169547172219902610366378408653674424297976325329679650581649682888974242721882792910217296994580088824440805568353178861819789865222061192746592517685525200096413770732529982843266956837400647246497959899536536784140473512001237463163982644784971288850820862900215314796290430094938900599343680935729035791599463818131543291352968991186132167521937162992795027857349005854819589014244957508490527024582526258954471598223243303661444866137113558095773482734085463330445311189591598268546789548397961879917371050400606909271377202124373016595668622228143273127122191970127225995589431397336008950122150927041622733336407365751923028360785118576727126598657697991277112425406308472972579653043374687571787728090566209629087194934018956623256793166906022440543040125815063486015288090096007870061365113894996240933356872335074691314633202684914758280372444406407795700504372749479714768948568834132397818398884054428868180143451371361579620234307489236397508342126870412558134425382435168931398822165764072271754580922933137566945329903036192553869010789701979451700956966030889102140336549016861467861243673726433988292887663007264804154494767789046430844268206359117009476668830708701011238474587154208469875825572876260060531952091614503700812566220595742442001738590249945744491509381902912580896354266962229360636188561557688690479710224947263350953559168970391881393399140695645524460841024809081378644602573250660443422348475230252179114821153142090715376607927103253744538435360250999394009708321441857908426703161950902323652026802177016698810774810757327350408824593664398452850245970693063933803162799727465855655599518069891656028992053459047982120189733158243044137132065635550034884673265332738682653812963900444987995433680171518527266242396178613460601918021764136203898113161093147413818855449814804282582039291111792986148019971935893091378942952073196308466727638786935424116934633536275593432722085928482382279158944843999933679308813904928034635569727900680113873213260800198082985749426921338932958106461542146856037633689125739097617456821222253146470927324908625899777255045825431182706216455637033818489552993372780073421748054366599643046990922889678502011944901014960720987765069128728456327113285283600362976388149373964819201745554909421890377187151324606378864092616878624262952741879027907173581325028933073931118717544606219195709749076649609972115764552994180708018440708902062280682989638252737716037437873554910760581901382165994371058107776114414989681347322792751288996512103257219953572048093629486706883843690099118648826200360862029521252013297855113855222474841825117765075886240468108222343026260798309173906460245815499212917612674440127048251449080010001971377399880055625873398737134135838260138170941403291507195286789967631186173257656355049764666134329335959705854410706032319620832260946907337151387742958598287113032383247292324954326955940179673651085738987880219549047332211406143306612731018020800368349988796789917217410521204713601552033103770758520243344166382962948290109324593504928381369241741961029920615206221583905799140815284146214489556141230811247628550275704444548561205187561067745974546318950832103010668254659727982275594566964466311476227059609667332656800107749803123297016450789728694308744212476096832243173788177731106991770283971155857232463531563319469154295090614942332001180639403515064584830785260637863667192452388519955627378336664414046080040909861549199770073429815036255780277419508873248046039959279863736537550348997894805470741047584601550856040530176139783788395305505381857056257423392746302762030502074854542476350375173697991605654052999009531947040688486176202829830329384811222845125156731052319830811234123302303723101397709696617701280213505992160493286159872852332826545021478720060309568016453022943633208452571934574428796418512718338915016485786961065895431064016062411572945611224151727325896024378650709570479278660572278607235704779644529398091256135289069063398564066491606838408630280019434959914230243555353209528813845391430133551601730787760650625023511578764251710932052381826307136351071928660340522458105364619490508911648062883636995653897707110491926193802544287991126767330546197644234411231604219728752058834512390169355842991024582839336440882833130866943643404448386763300734749503927814199085686383820713353262007058532765835931987383542044454064944330550319060568678708171931400915597916565720175127342986687079781883382660341048488433227652566083866674894483461590687629676048664503389407928551690668780417560727884405362499167801851217457794463569649234885695812796540671274875241693440976580388618279389743531815867791049871299500085563745577946455980864418780122830591763713063288765221111832290974549052504599141548707852685822140801788442111278321196166936266947234743540824782967013264877532024274265096271923218284891138494936440566175949007579187339306124427021971299347113508342856843543380295090368130767577563896375259126348802412465904349371832352438852022828977880857927407818464916745501688127343798586888287672758961465574690034211712556474615311503330787021398885445762202207579772891553840892540611272688967257709769002528006017726759095139602283340558370031891036038833260303593527403071640692063007358821985456778905864591447969894987170032523416919416119136368503239336683919852818368313630885481148371786682409974760870914235632536413517633646107886613037660570924476876007060262316927885294087777686202436295581039967233768988471290765557911710143217371298147077525238975930437828406630479664078860297413164714967977182416875675250168251270144955999965171080361228879461502628845314274958260690080079170229581166509232323391079325457722584123663813579047915424756125924837266316492536236210869407883781451446099719416724270996482399869683144482841011378358114930949049337413434760428902921911809898507192658633790727989084768186355163234866166822502890501690125973406371977914394893485609546342525915088391398697130385782251522334852480262160138450654960653447520290967162368250996433236483177941015275274723246725682531222969165065932136534139169129610747973617232097538691794674357108650637137983259995763403394105382831062719627101995853754619377905472958136518832843616970346431995184174930723481970077005694939090783193018450116613429894783674608406411617785726498594885889165068903957701598322034497850422611338237787561377119771959869366479036532330619422452579087471821506326648710134386229592949235127201682561467952319716451288115518797694682868216465950459887069641009593004421253730376785138220746365586086661672095827358604769655066370537113158822812341007323592701040286268086279272590831459747223098329346494313485596432418444678147388132106136163896345448480208823079137146696810157667618044024012121327103845195685762509696875374485734276398115172311137638255142370198570111613427365673522507927944964987082304601097672178640873700061116245839040720130906033108806854796918395971257074834668579032845234170134326496100149310792333251992594063566424844028878083473177437079005246703578927222584865773528528624569022269452934037994018957988322449362228198657268400737836602565181836091807010872514244773540583787275497360974388341791718071774201178396063005493291647198868039326580979551724697933944273586222524035243016784983241063416030355793802836085234837688444317355826439551955805888109333360195138260003557855619591472847422367334437938893695104121345812493940374574782855454822939498176787363052981200574075502065774166816437257550407973271704121481494915768946931861212753866090539040393375684598309903837043753684211232146892376795391315058500143166582005188829120549831247501067076238605002601998739893308466130090884816693923719695344190510559922381216007207503952794194031450930518430494087384526710729351925604702659301409505517073261974164127099688218330624716449712468016606921777072956188507458785393197920274127127760361892378083422163123476665844603701205229772305805252733056028916201394999341446498421029003991415615321082697035658417252576714074022261437211650378297227624451682021675330399487630910969449743310800762260125567272438857204191754346455376321789978190617723846087548706934581441734512252378414212715351515509209263435695846896024083993121771504559618459586752679566016875536395894148043718298871105699155143238578888802970258803468416076021337953144308273323393260531822003130413706794307552096526213060163395735291494988003640357766268233210170457657884655289885631205964646941041334113552491380692223118850472693562774409302071652802508569039423328855359473349958887762568548067665585477994538299395950701192968032881189515649381612608524522185065285207075068334552152883741959550540613568162512868979452212546384879550988290359265432498012273131148378352517265218966578574063259709020021457700633847038603326896986562018189407603303529269847438815692351755009170038085069585923297130295952953872491740386304507355990174468602790546419533229854567055726842229491605775842828292770254831435143966785342277360185912935826324579374484985188005758238693099791556479619284541554897207862329761029417648876877576638763709702507926174827738671588356911330068620817744250638028629157510533005382104983631245420221260718412449843609931225996379459884096629652552815371008417835771518505423560458111366370819185935699676309434982848748091245149437116374084527968236277316874114084631872786518696882095542009342291742793638568045679349675939398569537785705690766517537024396244907367490806540748281782997970330286308663089057117105010850601266004015677768664381765040657463438336594264393445861686871896803319985890404909621276626207715232695577259228234694584512469047540536812581712672678805943088584786209246758935788333152743598744771773850882278380422902446249232523549903253234471184238461083902953397050363041360173265239782213842603675484719294620053548436583167024480242444744659446810944797205909201565209906533345324769273626000597145442845926728361378890627332374520920088207856858227691834053544063274532374050212870091917733903246386250361884750216786690143806088936647418603282635374151365025364049154765752640794847361580752232279375992447947406667399704644721485960136707625471591246461984812601107148407635070815715179313941073040353987375599615942972460263786316247190858685959446965194103788779142480071202198767448708004963186179566745236006884100443592756829722944085426489555405812610124942132515107072551017523968259754233332219916549465819620486710761233970357139749951874997689913525897091069524029392562527414182104809238304338336197087280060525371581698545208556946475521200539948487334564769212361691466214527487723378051144739273298523369191266045426443786540059864774694147790786506741536060117543315064999141926298353512461188856656421645990129906033869175177679324976742259289131873552674596136781838619172582235956917843370541926961607014879014468735367979960505994920093634514576397185007895516838782250752466902089748984948393644984409479454202567016536640815349470050339516132697833450455707407888122654638880102394301300023123783132412098530971968976908216127845820148944473488618368849087604707175415147706664250562232060328392880664310558676731390167094318884335186883865714120532930603421818675879323843039445511378904882369973790987894364439231360618115515827102457355849412249495406446323352160955840212508723393543052400607807393813709065271553563021325858065782454726394445318182249770836463251264465263755180151297413195904466448941007146188661833450029059757606567752350371638745836072222257136303314186736789361889635089885134151195499622890749829330137759382632696949684499749724469890125915432969976637641905617769347781249705624075772172824930238647465268112400611171398817478181075519859325792346271353110556973980161406216378583006623204731121154505969508479720963570534242993662291940629012307400644571558723497655840945737582094147493440545397422107501698114595055283259789347913322950980466933408197349499954552030621666718213078557361312286537670584639930603021408593336593308351565896836374846462336577582531577318715974102387535131783113364158987916191148003783431562046855751020114199968604480795975171109104671970756291314758911857330480420488388530928682304894742190613428862214356444629506987879745295471541063781684912802472155023692232105893576923506747101606227507824416480520063556831428021886803122547705547995269849462273314484751504477631154463152495017851331841819453239338637116229753221499417149668636172979893711912971827237988640148348184425297255777939258716669595956781232954322554230749771747521241472927784537846924366470451998296398934455979786944874161155505298019403940698004248041119185659937715186289913619351406982981952065555309471685461280852423061048940355773480207141987644156851084029987546442038578291128244014938412635574735491390917341899474358547692105810036873186487986989210048444001128988625800784357434280574896652980679161603457461118487453031836572518597130156726691145954268284834850614104155844706406104359159567479255140904588199312667616852221062803392079710708963337358832347133349014591025835814706132254415637925861689302835627720800461674046891568776612163099413670289851465202023391470193077506785909469092537002583215507073444422282897638648114521664344730034959527951171891855033134845523045692827994194658205179572490176306109961759099528959877490322786232932221089163714215579164946552705870691649249253347697222613547541235036529520644835352925032655218872657168172926615164897288180986810425047326777245223030831722443325500632320855742738003151083196076422675572836091450654816443763555716415041980246880915598858280761051564203470684174355341536111820121882179187098305044765322733917556179402447900442727940319655048134545840022813879171667636311143464949165026887346634527202118751011966033087998098327259713978997970762932697680616255213626054006633703827948168728453242452060149956720729343760017788997469805496140489238681363563736262988435863396397960908771238815428250805443130206103449642514476539363513560978046200963182019735552694124428504118166018563257247313405039173154688313086091491375677613763838845773463770190804832390113185656484637130953224859166469836339192200004618862813770016774963225268348155593845307800786094146247583776269204380351923160408676777853641822126678851494722187410347329494289626627041813920717911460792017569399803860634942475486352201071746452395434442611935731986043759794787561743741817299816238291214677491196933546147896279043850515361672437183499661127104253234406470628110450619529076626818363323820194468647181022354892546540745279201655295081636693027654748833970018071663797100781492942532063468802483744975614976425891352912692537242410500303643938083534060338707011365997002692593281216576027255991086153644232029133841294447131508592919628100883611902085383511536739669701723311745500218285282320610450224746306050897218747654224497786849389123921801624630719460900955143875142037760152888308036731558208115125111240762864160600452258668411487022917637283174015389615066304051930205393145291234197439874195299127661558229698781408742456790959679771616485019602594510778578561136864509548743307296616423895240958537149452948949245992401076592591827226725435163721569195321372780503564371751015832979407746575760913453760118186248689212128973061500151665279740406194266302499076724317730268930500933042050818907569631800664510438878606374229069164693151753716265709465636894829402439700902011535634202849646328067218088630009274965983800167619320981434824231695869227117246198568238896468086971518377751141377078333298405766682511095170241649246162572137439478415724428716898962338607022193196935566741058153552442178199844084264101807913116256633512688322539871473711847245529837768517695816659688254203066600797543849553805852806576730470591720301540047733687885521282292557496081647077240688048725281275023717480703645489519176716710581872613707817803537664153138421987380580273292859986538906267785189993355097401179280582174156843023184917827340870215720099428865025110801903817739910367311663717673157922712101072846687601779604662581572609013216535323978862005015184674799813469462286501098507569957079318334166429406064118658719762448365813364437756148181507090689083042448625675422546780981271544256161631401807198613746496223439577956150284108818724696545128118858919908967408847100363554753281684447697398125071018553529405882034099107476407583672800994209818368632744218950954196763257226185563108482568215281985935014194336459024049085848363039846644136600905362841492408599104776416764909110824033619028032901487650744287306343096373759499165369424959685291743296368314426884152453993516632848432378625224860960459862623692501547958570252160495797407843994050292856471520410839608705867231408856709819459085999283890101068745403509184437540880425986453333161744864824051291734704211814324197172230170200149750983962472845662149151290318795279877346616969107502504298160741784499831062358494248167759256681015401762927770317909351337796710677052560098015737965379029508294749893140136089628984759430913914219683769696342395730831308228142350957840840873691112170694921172398935121189307223063641332506201745772591765215437009375541493831166040103625742021059988063558100594898587971537192699482499515259872347711786164892511404359345520413773771212351167374541491244768888203626058446806885907161130716804023054298142146720967783990737930550801555767638275095654785254334238302916169845819140140201262770451537090654530479679349322753552944083024343214938455095139299248393607125180721295871014681109006001086377869259036912831111198678225186765014419573055366584612906072179234556417216568409855056056805660421429119601942391204987925411486982420999052333697076894171971907635372422928269540251279752164305975434073265285200580250854760454190628917238755752106700309643849465531059694407302743016953920041661204650141374049881514033693413253271472914659781539210628285140384400159213306985531122985637847611318521104609504952249173112425652254835288922376413430822547953443793893936775305276686003431706567167340500374122358235030256014373241970502913067506337739684599715477560375385630858247006616756832118539771301426813986239661768386867760116809790042407816020123962258017408279951058255690919269332984319914019614997769445413535033075232772041626026420414298977960088752992560509934169519524378352869327020332911827125206747426189564762932227708144263398462472350055003151761533601499292936270471060924583809723499471942336458553545767782031957335583969432945199421419261130730977450164556546909449081284516724321290207436838284145746229992031445187986436810853589697057150976734223893027185202507074993661064412877679123984469780703491957114247421060500202504899809421677564870015009075142460050625590033540301224483451156260889902888451055197846198012070665909790050777318225985387194304638444228890178547239180968416727230310335898041378602339057680692266692281561846890430827492325729720325927605053105516918316759193643510131410978971212536288000321800594277243237004531143278088426575558247277119389876109091496364034739482870643348943945975825904081210791485800953004870200399834093964939172885464814944059113625922172148021147664973103960358793224409717453829105771521287933978910329882805696764005068661912129379048954423055967618175106605625723378971503520325376715996744445890201080351175684633381705135630272483504855265896153030596028134681915486197821596309831458170689630073259076384316530967632219372462895058237466542439949190569410407392129824208674952027201590410551701338358060902114226998634802861813306525096529355723502374362711661213404005612104603771423263516609831069335598950161176494740849478448567261842602702198901868645534853810761746984075368724907349266105267925216976505654134115336323480997300854479738841548784458930696438620335473470659810483509824209295171831377873110473020346143921599131533355040297441396745112069457986119378176925724262668209293382493868967104994652556221111346565278859548762216613602017761782137015581740455291080097630610903580888833706056567688509466654238979165987092422774755818437814246987210081894144213947780380774152907487111124930419771696953435813823144623428326620150435988572024838156318273416674787342584099922770928592818753994602000131568589318737360287830017354139977057041710287712309795389063057338164313618363927328781517899062170354229085421173174019653915102304078528048921899736833876836950679031533978813843526836188990262519465297051877882356922810403290712010277358398257091364583103823058792013641659087222141482786770035700001503182989170061806286686354968459049311037381515871904835695005922434427582845636367239890932597509750052834764604526273758777558862365673548229112017754496127379911490199622928623297160673404044348272384620671504431710439744196693206478927012757007180836093678476122139165377681155280899207818895032079233173362045764730668293127355081166497022302442909317392650692899804556008837282550617365146411826294292985754376733544980658753609145738727227211861453730236515643113715925413019233747542746718105473484037180836140615368116255564173018853036304528240666688674544941424813077912101452592992940540942079788021990212059408494352549142454605344427094328036751220114699836933151540085048887305844614529901124845503973318448110165004003338535114641880097056724923956547968793551760892309466660159448751422531907010776406930912300875761278156551172744380235907137650371260271298790196311985062559905424193925655886042842678062955497870665195434714259816213174331209092190575090204354385886587449890389483921087113256947650922127629880997645601070781488897996290444675934834177479686798554473252130805004348557833836364496232073923155954449566223832087146624744209937085991009801294214706541635670109117525054469900612553821202980073445828441394581203698673182627160952886492902222838974830764082578189224641609661823945577648168414952094193053401033467400996887127345149217416784726260233993169259619903689578143728279377175237767673587391580068778142492744882937998726415769196903515213955037181067966982951253037159310954356900258591132658296278099864774392690879632244921050597398991285515319553791612127764908092760516513101827317168861995667830176844066032840020681850113701032903436074804618588816306944463936107964096218855562362884775312843065574695830786803323302078720474601202178160955546670411204308064748722564334620332089252489533502261958332364697496960166988528405075624684885384449958437916596966027481453593379154558376955392290482038564727105197879877461197067604356691411579239002587793245737783300970127224634463307630435984146621700953207848965648092226346097144608583707630074681969514567110946680274435482512650956182921154835037874606665409619639364173853175870984043755876656020939202344552209577939538347886142104390439834262324180258261171918475345753564824306471358505216798948260451590910966738580496021228747198993392404549802477912146874326213017630379015297753115680121837190888509548414150905544449162284527425643830087119748971940802204497102816328432357132478484817218385497912393590256361811481003000126285445066087504679031189307980277207273672167394743550670326889834605950040985110599865532326701588223812406045226462119470688727940534261504489650973406441675794560471781380216968852241337234446948934978991947362612217644168459900593407475215614938802727643588350465077649420481253227785211355788912731847102152018789066087387589084814070153454932637610718574147883159076533032023714561491240685808147313539463551877352027796890598869075385930219739688962008553288812412888348747309985814908375093355024687862322902748545174071080785578133529949845486443192433704974082539853755602059404150901051249576029621674101323721379712085155600834165762180988931623881399933365077834578121772812085111106393776433834301705094522749354137772523493860567885415589259178994263703604296236170434175332133368205471568299957615055821143518804374279053750060191965061164680509683031682846431378749863322809956873858521539337057944996568675580697405736503256783812409938649131964260090794993425831250036021598586998407552283484752748269436457397540674989675975421692327642914586371441450926493599432304308449871988865107917415279570262647751961349437038776717527162993567815601601820754660224033220067347225489663865051535200424016524785865237062787284916010265125608845269836709993582414310065093438703387022387867117280304654571031332081571182366038013031944400308401482660095623558697205795058593144473322724681685524081406207143065271913905078407653817926633796368853179288122877709932248760522199416375420205222858709852670186883852532433423491561902220176823678663882521532809493448802333479507003955758316498194069602490042895777907969368704732910811142333973563624616762849490063078356896256258147606024592920906695121973790105978968929079770115463158169602830347307078592132935274754493188632295742904744079895474122740371788575372601421304452549121124740218900249229902635250763023077227411945456584124227966051152638017152240508399812819730484449433783829383324994522230429263877022933128818527096545378686400871618694331099848274229343734046726737106452570394249346305268627050939495379737273870857818089414125290509445889584460284355741431497953317894952031554504485623992934445294103823077946436876672270459788880151526749535309950403318000709348111901160863876226545884091465539316970151287697316870016828056912592852825025907333224465329054168091965820026566383839160816156633062019846111607164785283118505028037340784368836710272252891420843935596960826193064536654349862752519317621752179479010398743272928335260375043146617020950099558896110195822454126393066536959657436599656320984618259008219129359191771527199127683769503250159490448095004685725187646761219794257926418160562372492621461023543534542153210873801102793463408632566839996361382317694193835899942283048076013945594317652898886647273313356798183361858233736325742225442398102010962609368056941057537875722878169025408355720093974515524014083635013218936252100714770722410120440358841093420843259689247856584273706560000933157242335322590267533927845133556209057152820656256163512185516690318524065271414273402981844887417632110015306367675967754356344071728856069347961596709232116974202225002355276159184842803965309342571740793862964129491511207501438407895998671456899982307661107332168365422662005531451286624762154946701241584450722363124880857691674155405877018464520586534778266383663355356292360180254640728761283815860120371774833937617719905865484659445344218104756862454947440799406981441227285992968668225235421637272588265211740176457808434911841536695711501143079126585467112733230324916448308728873476000878246158101873135264562603570637894536021086897595743631581393546516927725984869252382657833379819935889097322823324568039649419970253671650102344276719724103588269524243966923730818427034291309112003470882661556979718589282262796629556811310368209508295529915595173081256970322943603763076534789243775888555653455090708132729713027777664977186024577785656227599310823256339339430781732804488941261450252631338073087452159280476022719126029873024857882686352209023778349474943511393128172876486823424910676924851513122767037691879018396394523785639974926550004366695597013920634297260224528925383835985036607296444779628153558804530888922917071943364415950297569107768025926653668944257095907932185197371679450099213286287153388772883964712993109571401319095457426885080192305031844632523156791770374059327396074315281782455468109808445714740091452138481629791317187478495163184829900723076780363398777068010797346779328677107663875868872005903614772483022444668222457257189620018429380583784006886612968171978161745863326165753222727724205939400674401178549850819674596666834998524358363381059555161531356741961655085596581163576960172052767465019823158553233682169354941879242865913125315436395010839340749279703470881022299787675895808580240041591669765846343621034748908949520529917006286575286189212055519279721461256239326451370470397587467354752675619173760787292070764429608855504983761516697318772539243912376271583576256598608961515037808825055339953804425818911071174845113501479626106172708713889669328651859492774339590604273980117712354875242993581633741370667451648258278906162168068601073011010252109088548424938791106212745134362732814025631525638210142784135805226101683047779601548755947279067238840748509297364713783122541342668203328358896223967162111207936592561175400048863556668897271321431105452452225183798778803737934720581238837654531558803695909043714955603988087827886540437802309508625558722131287355543246723906317966440985807048860292595669763953724256112014383239168321876438077304662273088169746548471521331509124991111673476713172740993341670487489291039347218075291402864105935977987509539090939224869301675631757782800987142973041530822831871310878391263641780389596656307692272717430966652362089019101935867324615727114546236154801659384802422740094820156463449111635634624629059714611618345558952145778391966098194315636164107132359164495812900986952328303569756768147083891786330002893719830033595387003443379844291230125879401577738261716574054093809622769908257219039820398098805953190299611390148285833647801222440340246128488386860789019347818555625697088868005044845254100386883300148668067399522219541489790495132512530477096141251106041165760040497016164623281252917593274952206893980335050822895374006625756150392846025033853981601749655482427904645039682158397396243604487683014619286560950005191171226643777299085498065199210307601858422763928423796549343919740902354155005589541713845711244685321574991982665928389200712995196382711607846936135158997534095323341678129266801188985769188601419683068427848667004117410083834694621109633715838355212299773949825559670868895999471732402248579416184946704574398799626586293470280361405755964431218390934344913441691761382106337743424075527141889521365737681997682845017024833826224542918661081976155000518044009439005443854744771092381241969766811986915885302758069589294885469461686513021080442717318242075737785221016818579155898390049119765644140336693151745021094117681257865633869635305026753078594287296041919824484570707898852156710821055574965836931743313188495306705842674771258083552066072647377322977548337587412450343952584848250704250419500588114448926750623954280561853158704810630597953563180870406117954489132206407471566549438600831924602916588341886896270612289201311302562763198825148593488743711379759638141074634681477181262618958168125962037738704041140008297788266821765366233192443642443799766755917803375380873928394530255687463671988897137767986075351558586530744323183352153387277891226375301656539550152639921296917817620818204794112591691021131537872059051385439891297905914884733407260153010709580964094031119045770822780110938155723435131415906820539657519194990229692019407357154396582371933489709217385021575273260840599698550042819834680339478822408347829213808330409842527127335995711905125284284219977108931760964320419167201721807290370739599580751244360957833810527627899844684859237659199998666263046659354132943455945146411796453610998934875832744437348774793784902188427265617423218034581855889113698573119834222016943082166072183260383492678422520289634390932343960365505676698786883328556837329608131351651886137441741141001223885337477831886125773413345101413740851513399837871771920870721489000327237193246797929214203491785353374283151653784305391896585833368341940323732600281555025302121296663712212118761511285296332101490169229509303350893464670313061186364143954807967546106037408269480744907050354246832187114276964271531671295499188695387976977620078331202078236950898887335882470166317174442623901980064562240708957690978753972655996692819833401364303969108212285993185512139534115368674831383822722652696444017914810702242090414306635629049543541472174708724343816497559937854249804305860982459368551274176171880933300477386588421932948271782152738114557817582320166273506715716805266315592757470514259899651628438463561758167706871249465486365507651829738589156028984155445940992517509601580771691987467875703259338404789609605839001499047852795390631535819705233479649670504030119375145297036574264101783350181015616052341471625367196802901939412648713086543349454342829058903771803133908944277213726364173277964551465419746905525261215525601348999744854045817675143440232126098889435878007790365377421017301260649092072810242699012995764552019253247734526487598054604652238565324292060790393419047757841307569109401826944636545682463761135574672801315621486421930044714818505595106405926038827917030837740642019350805562502384556406660883755833962788741422393746062455468684922504433392020437142087263971168269148626977242888015262416429929526932796008368735351516002047920415554128791230182278536338102414909868516622922840177002337808941271238052960856830412414450521853276232558339972433697460025684780691993349893609123033104607953795217619993763213686146624592756339183999467867719097034123984288450158285910018002242599371099540453645640947993950147921023651808820507465225019028062576317296819740688768651907897615363036323695863837622015666225843175883771150654411551118375207624502969107074760018886608630863625422426901627933111281437496224987674155796320152186926154394842560375642337088311530574633877824185193082184193595041966102791451810091673580108178148062328742029075827274272689304193236356609145349870813107137838462055995366849631549973143221501100565156358550130949010434312386644748160705320057332625326043566534776322475556673813042461971732418556837381570042323776665078294561873552078715851186153590855454817400647729670733983524618522559167558322112768902893301779461183568815869496293085266519669917409993976364615000674325035437846000262328629588917439580800873645664562631353182276101949642872933342579397243501489155767964863212223718257308636565192781936317409732695703950328969205023947768261464694009506304371835368954836168123901746954335074040063381961517834155095036263365065340124871894800449187517879750080103435123911241736842562748558397209637082024072761516174541602104723683012030986424398680343736852973929632311115124586162771990909480112612887226497854793793927284461163932216898720763157544781100665582000941248616118656950704152054302597819538924734536351627953575506554655615810488135313206917319486918043591786163174327459337495071839670596368555660170190071003117774366235236243730696825949344366609415871550489359000852798029209260274795226179935612190874636230417791395381019144087606667826104696727729714071858982844631714615055625077640921833936456752716567662552704090801257458367758842749931537053495763412934020574549811794626146257098890950564670432007567787949854470366594720849349008794361465895259451042373848317690538779276043312896683072434507049976108120371796810810484175817694257356355544378717570764750208651143349911321487055184982727609729573741939827028001285642713770550237169603834205211605405325838699370148093468394595451766886850754711661908899348731794612752633441245400247449105217649258761204329830805067143380939925952591527427652131296264507078700395051108727075800901662011576283702974697328391487903770651637121939070107822312513395161518492323645388393478100261109013246371587909063088778698086847520450357412865490278010331350110199552251557347860681049332979535905830110509552972192244035560061324099208923562978068720307702707047518718268310410792842000693906198849864147040258902357926396013712084394008065934494044888842338366971710361268295579575718706188771358523446696412327453869043931081447631908521442931432546177620152709616872892776160737399810217278403864967983600957315117841533716510659307198755823981302174656832287150203435553986003083360518593844902813024849952186767981494583188241391248066755877995283347912118825136419412566777033718004053154679479253543175904693597803669131565810218145338369271802850864480532279078904585448650166704862068566918137875420100150474096142521339453393384666960345959351062172901464484648770025750226087263882428702335559134369956403329424703558296590408348750230693360868013183051250993051819929746043093730610265258038964373152686374607380530305773194587256432715126946668905839924193650531725767433052104005348559207959467214231356402591229694336058099491133902468112992842066686669156987922908328228885795723173879470950957278410572645473302897710995035070302612009988181877769561537453830430347522265516210253188705484242807578936915400283424837863089353577893097160694833494264623829661722889882825910614038621405259822569749767568410366303096032333396597981103314096152309093045645392000527482857271108553880856768522334074668628883167635652779007588567396909443442597483193585356704034405306941846887024437339355536970462258221780404392111266604309169905138100655509528769571082476419195297887618303565558655837156571297207379643423582533287157378521528860194477807430057597073610308718922716028030734639628007361512672840924115767756090112110009892988541078184206484445996302865589775631285807357307649047566646998539964377316144345061752589225254830267675644516997155696760426903383567888725286048557305230094336675885753439786668086056993108776407095251533726292670818699045194623482094068741342904900271787582779994804485158898068225384565090354530584749206462805956348776224808099919794268947501994994994650842130069362994648977297869390464545206262616568238144833561584512478067723490038218691020586549141670948836200113651666237681058145239146676491960932910224866554540030117639419976514830749908389628298547416319207907286031314755524777823298282679667421149826757966979771096132482531913353168110158052168475215977188740799230418362236599070817433109994140523390116202165314510026836581993901306467323151353202456340894257736369512809070608968244366941857079205352930648424212889371220687439085246074466149988844462770341671253462540060713067829360479059115252797937792995085097120182567741602886657670355258190616537786221976435494079559399963573921785047462190451227507900286893843303939764825122416061562165798776752347478995789432904766412541775220380697940608365278905255364921012482873920250730682567442104935606358014348277742498921558867137645459117796545348265684078731642043159831535645930671237688041271014012424014873736418206721293420366310741660353371317393876508717485331235355674988850995106431224849802427814227887903612856620320808761714627993897969155743976251934208856402384427226889681909468600126102605492983165217941318549020029957371183721099669427896228206192000895449112536798630537578912860833708855532161439801535573474392521554194817701919497633561888911106231354274432429614341125152617324629533766257128163784147430827932771372374431728070165545523630267886770226318931612771588781126935944435927439947578037546889559235035266619543807383258359090215236770789731631068608528568078679859671428153224434575232959056106481678477445036704158230788934979471488601741791286459126188421089712879139583176404472817197117957419532266569055560695412763750876281076630873531238409462947060967514286425944354566058267482429048176901276177827092343437593792533199490269118067082706394637055587972647194274935653581484462015867862109060128437669076383779395923886715604915567535662119501383461986890253552610249643313480118111909506094796450293233305375806782726145547011421723602460210635294464593117333982214279796852215928682323335058754853970070716434572351600547907289375396022536820720865558823483869459987227629108505584398331846185207763530346933737853112476973883420123302106710493287801427366954944992764988491502352273014417176291359058130385370029578778727797027248782427827894006233070355824296617069112065142047541860488568714935642001812345362842971750752096199239832902477898924533154414576735748053691436195314416151074609379898372626214553886621376057866798929980819898411460324436930450472766883092360046701732828585493053112505525635250216553887503078441442967809311542442960081846617058382035109434115960711895245277667183088393808294420746293173827948723679432419317893757846009251420192355386085301736761306071190379261554581293986093481271655226601243747732796055699354597294226640459587111766904356660206546171135571800878961124988920738163848916583407366564032452232431267850921585519886541554458060849248723043777572152440404066623670017058050787106245688670253517679604764002383301693917742378632763863156644895253746598676068903064528513947063174305429423737356710517098475731309538968580987693252879410174423989790045442270318403827927953914059590126531180359037721406835002892923087883028727755195005709145314967778187390248594157058026486159432265540114813973403657867516121992243008477756134068669392227212506861069584555414823911696876240861941559477828425408704077135497908333107162299637616180391181554472171210054939501141843990381566626265449895437011296332481357202848756119254334193444024008355080304825766814544320785340627756774118840198477906803887332621861577566973891090338148898641667543821364692093692075147862325122211501749548104260639802940361542313994298349984744180263815916833922617882795022941878588264037616370378638249788135949215578863640731136554132887727880331828492250592437444330309454772053067017009419739883379784676597305309356700110916225844836545465203694376018038391837483775394962767089918905266423060058950734401779706075350750147400865060017799892584602509324032455153621183738850920717543080584141953081156263531602693475560184302226068062589089005421225950223132530813561216304414563500631902509678713356823034573607598363151906834723772376792530492788941884344797741004431655715541852738309538812664505129066471312755476316566850940151838705360939879939747762347805004418742533800333616703368255079295946935318061501821839182421773763926541468884920674862563692824782449330108953830408878824124463374318805120405659143553304332629626161229579241697166917610002798444600943319945507122168396860417727418095042090659624338074176215139133997335203743250893554128690488566736635857074888688699483538795115403944248140916028808291312737458844549622832366711807044556100537295649380019855884760720461928364737661439346948348315786997181428769291566707164670699085774023956322812677836132319149018068234467569528142653891336534488041930882772307099666246714181122765396387794833230718088413037253327729990319974750371487742210660397228236778573602496742795644408203277643658898537577959096153933479792146569240267511070487087856936521747156228733190247489497277872826742909942542551960332696259954121751633622248685633359869581503611337226231246740864614812745480534634123303945496055899108198263383561248280088652092911454403265336094305861523900196705623871445131169764180576235922235059674661553540576247800020960379657564889054439814662476554206059036680482822698113980920967123209789488703157006103463957604276522719794449242729801202060706309119596045483407210645890198297491540357541446183534067925717033360567901120488329900205273469796628010682091787466878625659588626378530361889950726534287589730616094485627493375585660810063910044105548006773988803334852604127536633472926024325225623328119214618565302921126807977298070220962046887027811105590297109485785913226578776486009723610816655818028914946397176756497796442228363601349106564523134765664088853141318088080223156113086762189048005979057602415409740974740660672330434863965069510628677073488520304772768332676766613162343706239001423783359314255173124828343055348568800633680836769504065907598984339775018834827871236752538009049124168112743706810179391542712807426908833316829337499156190955424937964582596818342855986412068519694874663994113222749327517928964905883032760284864187970717240996269692246117026125545321198076803818805961102414836155520673204643260346334141329931784872205067663535889353830822919005263326522199424804669986232079033000897390874725821410251893312185452417985948025317622615904657656612273733412329157732807158454010213984120139529915461309679488917044270890131351451383605881163913489508573836409721876251903005820733683635248384032909670507644538854499100542127961941025814796113513639758784567066746017155116199156910888776099974474885995830529845707883283160755930066668549592530054807520397445178709249635616490246561398824596058221250033803291535348105801322310404092462089258846761801252232364545542217712332188223409967121997616832020285777913213645510746506799121779461958431960731775430222401370259778024725836105428901811816552796401905530928245105178727974414429012673702868370521412262582450614967333508476222542703745373959105171202424324977912817846352358534394788576143876700917993389756734998555274020008178860478241037657379673082302093392562454396157713027708505653190139204122661870386757407639145715191380978241321638429170172526391121655656658915262511940656741473599896995971058803010697516648834325303248926166915097582599319352759523413805940046849264056949001617527432955833831137710742597153275325593951039401696710486331116808368083580092667965821246508997010970190966411199952047295408025872840976623355536288253451458084994168731826010813361582023434361574186896312686391097953377302616573355499884468265233379474002636274072481120392723404920467731865590310146354550927825980098628591902480606195452040112870818572681754476350073188234282999082625853499242540947038402583880743123709824592385869442689905187154834793017085543957173498938132031724955328042322196519300483903239788316737759561054876616183157036322826828947169770855144351615034027408556991063570667019685340242985562017922197230026149666149830525174740274436696133762562042673230454489135941700335355768320823724899088815869761297676969564879813872806364393113528843884692355507616774924048445210332689722191127373997496609156175925439609431036026111512000722061454659086993650581502620314314635756285421372809163251290510243895728364322114295975579237982586730535312355582293144140423397118301431642456199345441179333684979156563922580952284282307647958441780128162885336969704952530242560904505927752740211335624943649000237159556696944508345878741932069907086200172574377276240430558073468557994532914965788587008390903827303788955315349537748204027720991483384639911538999795461056116812518659655779443855503553520517142619018025348586236737956175878691766629243611748403256272288159779168493545579691910701739737928726412883844354053647514209388431422358161277724119848715017208265004834804203655346662848745679181617260091120697715259648038178793411024109949289495199947341317647977212990414092484569755292312533449737284446353001392668706774908638017653513835319065879682649195620152685459578587586930670252843640176369166078596642134150717093421863068179925035540317350431566064239073963791601744253179894469382271045990237378629232454481995917784051314524586187065844685672258200308492585924019294479454977330275691904069924667467645515673596884864796831993528869484199161937406137064261962199157220990568870793360243931589535796188859287990500609216056718107073607489448960450801591947761173804032457682198627062155636835933634866787510035157928195768970871368171156450023500772198676490390614421312868217450829031305998141286764452567857045629108115211973424237630016326585703751439810198399425111338505929986691473659569908287888271160611314268497894663725284918971568766813011953997545503625955390489451048093544284702017269631931891242329589995606282058248764393162043622519984750788669543411579460266536656434784231251090181983273655290759733168123630035988407153130915114497728783165084906542857304382717328273717814415892189420384691100302203823575835962229450536864649060858008392950773999519923430270482471658973440366539993149767340121501943580093589543843695147497748607074837101028986665481427549857959541201249718301822698357704970249124934051682468164293876392018902061857396228781544608443404285285572122515364857096833684700519387150226549279536535486655885642532209415651599813895607135507739313885199882494901497378156296095218801409162570349453246080926927848392193174590326235233556637937937195500704756360960295998343446113391727197157666022346443504896579270271723892863789006672975228777781403825668662862115153906402527629211915020218347144945851108518149841951883413288198630713189183397560755354569866919384785633936214219932857204694933169671346405943546653510926502531047874244204344334106577645081175456917964549311398837783993552296032617052258553748266531220957160629934200074292913902619222527501847307835794860522390712372783065938754312823746735198379944341679463293619215376874489316171518217004612708220749954916872223320101617550933581876642455566641575274012220908128550142185251166582543583925459703175152340509351806321926475307304924655894354273972549699126161334733758109345925284534528539573741392245407707684887834963118628610847797469370615963185175901401119488122544125039326967770533547707790018611406344374972385693789871198687500075663476766670679365347569967461949507990301081533955460100987486302459043171988744455109723321693727495780637429266539668631477279529360390343683233499932255602138470800489440178723001851948354433625749581347630041896938760767808640007455824293008646984564740127824911694984333295832513883813840488927704884333518349486943623449919873556389900597021260610178956394066164592680883239893983843179557837608497824963399342955716492015274827875118578334128416949798544942906152686578376119460626930346968910159276881074336015500576085093759187417749050812959780960715298452295150061403346248695801517632017500461392724846101351576579404508916093777808458527095697354550479672109825706635486648363920342144205384022095197715210724647903941314585968518154113455241792455194518397778102765590053045375585113296231084562613407845889450847109394734752006927829082783870333049778280233075690498361509694722481161647510256129720718164768311933945539453146938963621169460009289669806432941732772513371648612841637910618794294573589599311964915392844143003063587648794467581534356279962259271325489420129658261829803817779879361554996805490896568847209951799395061057765298328101744844247390199885866157496288693573512465291878415919748535807094602678397963882228503551630915324996310064164134002586564470281099553606533709427754767785921265226973451296223751022857072183762775223902915239393395847490994661547252179312427091918559215879050791660260565038527833745626377344501911626972873114537880211438819903578335170333306542714650498112874324255404056925993466154980282990359829725975543567135926845289919634808299160739930095229460832952652552379356353951158550864790711817649094152824923623802959547651505526683007848293413423139308092950408008780593499098084846499586429291714941992173443635338590098479384170178987483944438422692988095166247111760012367448961279602716054192738505781064095859112349013260127060952013245020168466755714425042425573681886064432525110439338434750241544709229804280353009294215514795995535736652153892258008719215019190754627021388041472961633215965233796477378952830618624478942764480060805620006760769554339450950102465948377382603293848994569153821425821576467835353223785735899055673401438720201839276503730314960745563432552643345158258676904537470883212457232148807943072304751018335508413659616959149076413380684355570465666492996715138038519317320008517498517995300527407777972124931781637516751662521072988804553463303930960038716569953196196090139267557551387345637288882543244138801814282009328631092302064716714072704018954343316064109498551226312160510355990048140596988717169218377339029488463274631754179846174382391323174996665082311891469751813399425509870560831586087044091194024000335207111870449673016803267815725953013701421114705865493786966114446202539844623739049267319403969658155104978384240668433740683311219157816763423117767315957662645411073787711102452712368689687078907561705904561498891649447833616542331848735264606660103207935914370662637001219569436900336332681202655930006613093145360572920317550195439680891587020683147790846896145935940708855802235340747030590407887436639653796606252002638631781257314349357565733860990774995073487474982886719942366287528686719500148080749236324963132653343161351875202129174390513739070998367119986142270941449688105634523298337700281254577300566489951624439605998911517855747872282263264853576589275037572833971971163611708000952526344691706214748443739588879578601334318263062562218257227791366523803712332627178450442497652150219483274168639229993531491134059141579465534816616514580572200206699589543072835177541426344633358854558642166255255416956496171745451704698216254565054153794185352467368652346964915441640682027929362604732280056700007125480045218529927081854628593409773860056891874215274735361545623338996918586209327790976851441588053670441818138630097488537152668961245811144865046399258486250840518653797239011396295391636718406122616236940638346650260694181179075161155670429246124560763321029354456970687756482049727317032327139700336299853689712656845951143661366351457744399638159083801012529413579549355596751005232354722040628572547315165507088564593721977109192409092943989354563891368190144920288328938201108158001957994374931468006109861145663167628661785329469504552552615136476151862391121370352314943368192734210298989044602227273646211933666897983329934818340313548106457038977263158750924506839268842772606292167893352849637931555940528668830104988928794561656909019674722161777032600614966465218013099967787232967260403547127610268033592808613482466640209446083623151519781163468637840294961967064191189492014184290557597091299088428731470625069740144485780568701760937935293479258530805423002162130638607434744086846815677887020276975075418265757971517922772241005499880967208746877788621427483483767436729828667425299846063887741945211104439712841517753361374373794132801323200518631465725645159952287009566603545795064117084824269003349779311764689167273233556935097457849078431313822263124073137801211869122500541654302476218322614369342540390631974020763632634268575932785363539034529590933059157600190283648130991858727590491890079904039163511901358098725482385249748305563575470164574653562311322455442932809919154971849142664422859807133549314941700721548895438346731100048101084023080677474543233562314736489825347639010609049912477899134429675697362189700114637839639279666277499788202071007854707426440242051185713364241905919352936868415488135536953853757932237100076578139172596812190425151324537786139121859853220260584336608179354130903679530265780773200412376283028764729848915042501693091529005831733358802336668117159837298748138864215949033947718697355216651236298862391834053057443200343690739309727392464244662164677223131093886587765053369587250027971396503814319782813180025672242315010532948919475587414200600181310356860483165619983428214985276354071712856974286707314290942326107118378210348096337571783224225662685928755784797874051691453859235451003234989622337783885028373681208728554092471806914322693182823918352319530301275707029118095065254343696859457101424068347490120232601024758710965553960987900293362936696801711971611265264276806506332848922954010493670690993563814379905271883924941341579095152055574712042941612673115320979137499386930756711296958149505322033463509386823869444835161839803660570000266949221499542807861555609732378844552277510838447735162981858178672290189180181556500374136423515330273578030660913618792858258349407145671989425915134534274281065629783843010252354710233206533248728242241140969397960038055975826524368829579366376274033943279664697564781654989423730024189699778468215430429045883055165995825225169665392408869516870972721238136508044674797295762708590966120557492976253926655246585786212607495788793307556251628754736463828818374552119603436227135023495425002365690253768509844256950205654453951907610992569376190640887700913881942375836304726295848989006994205497802966347670525730653723487695747350493710419082650240037326272363179597884039567515090101675987274444184318740278602656801412873715743096940757320830159678450234109104662443857572729233331425013470177459738925708881715096186437128016082156904317976808166052655566888758411977418318912045829793093231682871330885388520768486017066037420056756300357746728735621339030226158284985484989064656412403512186490561930114423565412817697268004767970865603157602128698128768346426176210972660601209798890144779143002498870052987599805233509787250454618210171418922315776840973887166906208816410099975106933919232213384664991109008070297759813607781909202732712158987490655781499772857325595896149364465583529388953781837549791681036087348576913473598873982372241009172996701453589058667349674539950371899606574190725523669066338778300962171115914631898966393823525370964615564627348638266984375118109784554525725119577915128046034287607025934984853561592768551509182107358364842212933816317953282939372248595391729005462775658979901521873586156992027802612757475808348957043358997630227175007477130340770160155003525551256861530249247752574025558413597663241037984331583285405450492355907628288488589408579338242676452330581137346234433209216222415377839335124512991659444720070739581486479781242518931213461159142366395135821627946807118329329709760030389474631311763031636755729883930637812868625104719449562980416826087002752942920489428648664444328190343820358015151453519569839814617484495016488634758937837821366906277030283058092766949508024688927883079737124119873525320921129087249206338744475020233192656504612009403291490077253990394493489000644591233665004116607823182443920678049270843129786452362289506416273231201795128967968520362767077141567984269310435974591294000420790789487331696658971267040474415484570689162299525787992837674888191876819231498892633156255411827762278687215134159729163524272045388949720341046082821159925313284864046540824077008249895153148399605857932527372175883310563558231586133087022863121281221495943667422261135286996015263417806174169457263438380057164225206432810954059487799844094206909152765139434470526277427987409721870010533810604217826903581341634362643905724892245377776765514732140319055804198598249061218288597737391023728951165194144404896178177948433482806579352071189233587641843948214884037300101881828462776438210735827130611784062675365333770510385177241675262114474312009010762808727022427009689913936550103735795670013782270908067344892576849634516480027978506294035360548773020006214119049412157870799179433392977442821118366326863779156649735099158189715533404914181871719043697252653955835930716337567129576042321800436627518665540880977260705069879196040879265311191490363162440466506579566364405071393475419037414477605424592788443932560538677880567654737220560132916968396449639192220496016779005106508764959590274498387176241880933243066932337285415387149954798490553176013694791479672247178579113534870001358462709775226760440275514429327791237292644328434807661663505723612433994198159602838575872193073543147743752376365508049638162432447576515226251702489828360752157682225554675787948782069489883910746853937083054256482932337995134177043757151820041893883416654149770854852364556871266961800022043662869876821846531293029592307444197152045644006976859211674268000715250662844078698656737228012744582009984027549859752735882436572076024968565409306718549452765155142997564068083762326987240888583774749476606475314358103166703795948548560986205967058295552322105495727068186919731804655850868410955452677715200700242213083791780331742163077373693642007755424489926698128025193023856199378106996417449274526230827877587900402826478870135236627160325340050783090008901170059944143091935178388296151059251543214929732349427445833489704035572098321734659510868219713322092927879958459222871520601599639583018165470442892433204252871801710551499804402626686723685991998275682463654804276482528668735967466719515542902830371664951807943319280743240126323316516401737180848160637880524100319339774121230411324034101649439481179890046245700597859043275784645373194826989020570463845219346974381249795502445565843798813160555666630665527210405467159184694713123563292664387759468832213278491965222151385816665632111539680681350217657229231097105889607660856218000318697325779880239841653277313916277010575264126458485957923263592817252565213050598590681548880788343239402053992848332439018300208163911802528181147608699557739378245208109283137845488963688610925487066136759003077174433300709953420286286998233274052710898962446284231450533484282457865516793335671997332685878893204376917776599273330883905502011994305424383769383442400689716987426989000540262022738390205921731860089874990498951158292417277268244964483572317146124150323631183075461344808372908332813724811680378924913529993401475994080641538934579203686589143069010362668254195676505969057196629811889255954075080994491567608976960574901304850116695270840000832328646935371579030386167554670590915485276950357366722842866200728415904137553276667848561190718210199596053603893490826915464189150270458434137733711116326900458031948421074355248838130050043797409307280186286122443561258798791347314398423746380664388685423305539586717209908697683103483476144402928320305113190965717632112818532729319898633425593529428069083514464481241908137669098783959098081032603208261410533322577448471469706980056307488090724700860844475440953044195248458899025759684867786426415037529808838726910483590249454261104395013432115472006518961076798802994402601439183367822638844914861523018455426385045927023729878532490911632174514285199211493999882978152428801664641973227839308412122262956503893474818825801849546236613999102761502354387372197903570120853184750708879708390515250978156288192562838480171059527336086988237842604501534587611500219873673941521437540577041515256116760182151771862433244229666653012282537746948322737052346323679183411518318837158709052623545450462815583879776798746294626722724508383214863103586856937814307411614672210022660249254736092943753705844700231841838795281487503126658432254085475528676938678913953027140285834826093393125212053191630716063174479808957558032479950129966036473841712012218867168987083756426593738313233455972019135606962383825816806790145892466303522837921596093387826243822626200584381130433570192991441632025533621225838831802514211843262280277135728257397919040380406733059862330599275357381152840735022983999541319066425210683673912838336086827251747749313612058039926007128221227035473046735830477260227797899917216315902334582587740919400912847564627793145737502341857282850135616380817516816500170469358801739967096196349428047188866787165980072956535238312414424701730674031313397752542902544442180927808537328369866085359357348840967365920821985407073200661595167467860772797921155263283391314204935923904238964996582079141069487308760697204690695587089061633439608743498867737955224971686928053766884628477578424755939624036314853671798190626567320579062106394535888718098209745422414905432720261180275867027740125650411180707099511311362529995121456526059383474088865885754464939138797806060096972423047437336785723031265448202506573282818729345522423373982276039279118513217562387669092817144030042068226513995598983496190821181200025670304659472413596140578857350749030176880567124810633767095979788114157102654488468838103709594335661448355718729008599814981072190414195066959324021771645030323861511509274438223348694305242953122926659740592002440795443447886665419902930059114358487228063337190002627572655828728050615136788694227248085885942652572526154505487583331182369526815053945116853132682518434237887883968259172752092790354298655954194644053374824143906319950111372416681452316546231270284634094601166420702890203403495042277629941739397714454567188455502346132416451916557642480293264031760795132650041572160372625418619701479038204247278392432424299158729393441844722704409055304059573989625753892055835476449976587952688763876640531227867466257873677365531194302624891237531085609080270810977974036457228884906311306630463928537052100454322769447251636573812332836144900648732827448620818259849430825964460565823925787317444097001187650798311596563294420851838597423023599315234414266284400155152214354376215007645174310939480024023626833954688631839140035105029012944671120364659774156240632421937854370728849429684357541839151235783016423918669748103369485715790021577336546087811907006336786440057136984862418287935227537635156981815247726493136791560933388446162246674132380363186182531038512461162375474535788424931621367634562774361292097137020150593196936578783165140904962916600616153353858024547787433563929679062433450243941599980327448045455677371196233104361318420788906607005657876867235928439634946982331915663651101371914544268212964268230698038122365994540671145086820377563108582625957449409469158711427574775615856678226044453005497763417990852784702379698658981634100913057642069999717342342979631264333953221627296125282835169910753807562432033952384300302958848029984451129699682651599254482736753047423750993245667712832383820833601157721267027229296887252843658438513708710882405216482001234431847802182489982280409626768420939330682402669161501723501749424179944789080191583725779213814710235093645117201557321459354517236661782382760130318625930062420655506353742991985788813722516010746348038861901350502608494926555704994656150687310247851534673739504310869867076823932861976446160880274087824360968703048098586347655919414793828165157464873561029110193005683050478646239707417254943096813961610193435107427465998742855717101125518315753806543526062706782612203337035641575766495729244817754040466872879484592248717285098290087947717723659041176959970929637426980674338561248993939642465355355409678642269087436927699597439554008750368343999054368924419869492804213945857076702145179996029725920895494700027380997067712294025856125618648672237133889774241697198742991442192304820805023052696145184882868043219153859571764823040738591499460448474084119367043798597426534873178814936738291814714297608833194254285028487475210239576115752156500554653123789524832696750454845897250905903008243714787225395943366157865903437684862686335967930044103370823559085701843690158305768556682290247694309054162854175628516890720796665286044502843479864694422978934311465925635423833870563589995463778103891225461313331123152589396800784204204656925677796083045677377098538334120505080021376374533954030543584272118688428762792331762381889972342939793382969026368297361418457561219175623308106352804391052625592761450919953297922687754449003835117385938750948437715113641845786402629990151581419006370485265625756548690127872421559579593816313225433496388134696175078342594996924996933664786406894177478287643316003955800246107429124909399406193467951635194228937701854529889185900743738712445395971626521870144081198872592205130649200603576611170178486996207640041441955701944209149202674963451554204339100142970915748648239961156068102571510447744086273465486163173450532257090944857738067410115181389786094716763230150751757306298905264871040826451976919538787033622584910209322737717090692538352190370842839387220998039768118321608469572432191073923838293083270318156314501601292189353117510200709415204397558168537041749919471664453321027806093369125714319002689921274666301250962940949348219811120097077476557584671233658117886595276686305948509794557542349380183098905280434354162735866226544126711734193020248344540679987533022664451837720706200295556204930367083848215658332052610456363117142691404809784153574915937539729537970144034682177361897188737447233885280389351835629450263588892008797158745370791195480132400711729297639532537330238265364242645653670976714109051565916839508373812379081273489022992122814532495162805334754158246945415192789760052038914550394281227108157984939232449900576549338442861145304628511396007595018067414562093988582314557395620311277237044535513139090001893392534436608478641387417160063834841705636974122292065625386497978009670695873122879538638340665463646003623131900688219729514524941417799339374461043957554399509487745606340861124964433508636924783199686226042550666000587325819457870094794556619736038049740111580365822096527101970138107335940819560573301947513642490213687085273576444846024331827965023993003838743432101885811939292960615818043275214372506413082058298280935842552065162917041978782834786914631275885910596172371679200579586467883910262583031603330392402809705297650626627017580816776880149162726124401140594918916219568910517633312157984488162028531363281112560894976475379661485178085594912017191781340508171447184002650202315148413995019447300238784399125738163316256743483582346282788580020721290373533964458526446534494255079167825719188909118413295418075678024425556606433520916351011432394345222346750185456944912808231137016825538947432528032594316867294970291066060230444069569619304618631902030412640830352908081108578385037285448636472617834273252809866663990671447453628909036134790416411054149796017693376368459795364371166212018421151846725217721142186969736182809936666618923040125411137330695382849549313280936652175088324050331843297926763235851967523702500057278183413141552908717384120846297331723323528664534599734905019220207710507724699894121340888425628443553730090988149719302160156135897413399738337364272650279214700206029908462821137733060375034834412358558718003483440817424849931610342652948572070620165828016080505443760461282706529554967056233909180733950100037628693617743396991162266157756616399224923299434465674482929461019447055176653479690033866769831056284278160396395826651739632932913899693458925013234059266555739365361512505097736710785000911366928848729450149467691094573731164666379582954241387597828739761094800770170965037112479351997075406084797307143119744657183665032673972057729029919529003219069971509510426958010558045138345186477422580539273352395670675999856541995908189712889674297362383859261784205168790242457961145219369365366171854222162969070481661019109553769486914837228012267699261558434091018843954844566879544510315127767338928268117393986603112147198744408413096925450531689284885034790664182320818239767266308997162434474866070409059047539302491529537478765060802418553369032182414077485185083692999921581492505435464768119079842147708416673690748087217412820613488020792650378910113286427833659015730008118513540458704310118438474962253088911974542242247762325647962933422743636591673110178210001575395686537730234539902955090247606499324868161193756686714599025791703112139019992458396727211822129511386650880833615370597106792927131434086743403636009353129403810410894849558505548980138770319940262518377251040043022268570207353146575537099298725231124537787444439972225790478641705751735025877818937964541372496446848426006007460975532575753193601721614138126927456365197687296465341578819210857380765674753835002400707261217447281535034205593297531155968136894066410638955781406238438745387689932416867140584274977995894515111689144714937930429824681865956595973042375311135549447208560193164311755904671458636649544426052344132823952716633583274829155286019160701975555952138151818729716795833260987513322309192917854456840181029536066915288528106699036630465969033091339353626348322515695692261256755406664902539145517886358086676858088846549909431747511929303581192265864766970884559055984603679525712002588119723522271806534656646228677328357915333147292436539557525212405894602754406979174326357222877923296184542965744731851985677189540838326488892555750943814256664021739010419463225085350761888248967676600625164597695913076144502980618863958495252955989190278816871917462444798043510250118162359969474685633113822282699342614766913367080431611342155410425786694360495940753656696124701348579402850942195435405552185879626309943144086151631599797184669909672080572444776762291636432786539017551089879131705560395299361547647542232981525646513865056096467956843930542789404145434841293886079442163587681322264204247974545082239448421406360085186342623079383868972125266696191081085348520936474548457472752005967805336224753165789047488224169952346726761112156669520697404061239999087026952819240018970082526957061488400902401498589327844801287935114481373688790952398051982278550105969023993779968588969966927448905930032164210139017530448588301205661811769845971145970145897605391449515517242282250822673240749711151449409879036058380031121737655827809748330837057569866446343994466223760659475850824635526938821390667065417816321054873080800296528857470851031688021263241897941423681330565929303703359633140451201096734908918770070694582838837381502823853036778793136101048662383965066736759914602144359554514797415843679058661058470869098671605750945756190556001701270739049258467708067472182605823478370330120340704903461482269789713286317549800247912825179926368421752923177604547095978413650441387038099191111753206663862516857060013260226571722245095199847814837181178015962165472975539462141523375103385068206377433281877853955449199165928584616453437674576786819709649388509578358078660473993272909354390228539370316482289281519603504505874856370659970782879678037312340771990314362135831842893356732360514236369943274551424105087329488385558740179906019119599448308067956581525075410498915362886229776072755768690126017337079029153316440199211135194319875848063509037948518252382193045188314419575186630465923668345277491732672703216037903292126657061789562191426110635401671316295149425678514006538559601552937318091714144112633034228360267860331228209478356592277737364724680973826289373009533295457682185520625912565860964924247309146380022366785926642381856218764836603252730218598601989198075564342974583879659427904823919848300579291749225918061740931769599775961325350729590670804427858683011887850113878547192469891193587407837543077444273302997814554035980773341799526849787192507706624483082103862306953835131538469922018094061577083590456330940106114108307398634900166814922555355047810835481424615695012373090156186157997617449238606546336738465574407247694204606886885735696181494373771923180985646660176231770204536888148105235616318259664052732641321218434039588080621314120588815827492447988962783873393712050876941679964243284195456185131436633838192585771170714415108651747832170786496282491971935966006546438489834305867583680072720297295599692813576581048973001369296625234468755511474597551891668330730949150090432968339612172130096462242210633636461345474306715879314979912846828386433496978564504943016058777848243310121301363366580864547484025007002117803792229170432972495885445096913075120195542331832664621138067360316327268165531538733993562390234265627020559264899263085112484703538511205256889052628520074332674999232463128364584516025311592272002012274749773740017456009092779953369044411382917779692069343923591529007691455692020972157531704101533527491693742135234061374978236986535825410328491287948869610242299885711449317574196567179465579364157481568248262198811348291790121458850306069530411728049744546566396758218582634022471035997173902369058162102394071674654439724905046448369222440926210929931495138803128141318538058659174039007304635708216847959844812531237545104139669785077718068402373361465570541544652889411441064177424851018689386183682277975153906838686778051144146406038126547960236452949296130088734916599285812439336624649743700500457471478962962225815515881426314587957122605149017336629050004677655233615767105726298467537475712952200146303765923940906813465160828826086936862399278421817945367700272359378642713565956530036972937909344206253812931162155957037808274655446197322257135447448782220043489365380145524691785099547369144852041433693547696590496402640539904709654883197985710375198157285216679013853716120977693704646980532711128635840216542591309359935688826819499117555416882144584961857436458281548135499728711961938867651841865722016315953138494793556868919255757038641750973190763258276941913577609685991386876306555435553864791292962455160483757400737270984751743474820589695056574646271249233036144752177937147659549725297023116793921574752655266672348827622927178842747206638386298883719272282247849157196211376164892897526595884287843023862021618068861931956111049936462400220713823447791990605075036915782373541629503740109257569641648898330803639153123779120925558876878926961190019155873756995699043566290338340725697116773452725626458746906382396517273996240075055671824674482283099724472415173677372385144174648947099267403552144815033152273345075139118791149647744355043214981770552295307390278299396330634849322253749062060575533577467811371029213345767364317434671032266970468722358428260558575103869712469174362563339482429681665678632413087075198101853372312686249533235072939222463232432467652386647159213584767272500973556189317211605620336422099180314817613479779905825767890417900590619527845713602671982819593933347480379455544418527856382799428312835939850363568476076843926047719370211938842961746481697706625206572856317767855386030920591472075380315451085898992726871847171106305041735235925824531456486229071571739592885524775667465391695804969896346931684433549038321459130290192387703148321707655036016585311909732291385171742587783436787601456403493654719269171556875907521133744617254051270922879282046225260619785108466653419499997063786096273685248833579751042713082790371359226144601293741228258982094906531742380310187558557913800613754080300691445842936488461186572009741466501553066414010684387342495508079435759134445252321667417387991749748319640860761262843750953436285980240944916242802417309497890316170229103061716433202170979399289099822563584340744835076072143127458953531082102553436323355275429872490633877565713012847847635208948011350083264943144965179245394684884747139009974201612992509665091327742594123296034267182982598725794982231960461983101719773128265340795422310272164068096476924583263854746883151727585233314222615477706792594022914458482066866966894768148936608581685233888382738062064561421986730230230355139159846559852391231437527455653958758518008957590546967488875119722548444863414793051029949833997798968678135503632802853455988222692723754462840645489785910853112035058132629570984904493448980729919671555348786689367759918686778755350341141972677080085837841079134770423930684197973438749231495221766597766004769919602150044876612428504765493789988309649737160737970766453799302722035603974612902448465986744322324733593382370968855052733426487736283540443026461552533733983627852653453516317834032048300640755187006175850723498197975855215835898080705356174953723342247407876352805125718812511444335341299243747620733333393540319842328400074997809043085290907104924661631393151460134617239944563075445834703755424379888127186205611901567732046489442598095716568279130442477787080524359120741466668977705021553936777327279385690118035920700517437053436869805262186651870592767260431544278621734135394514711218673399656915544658166103217338125730845021420919288276349314549060282650458604473969510471612470418791926005839681637915689322114901872399576943076768693855595103163220643498273594749910985360440018978988284052742609689419390839988943123353804612732900981426673682297763805939465915978564091830303478871307565840464662911904264301533329203747224847510650976740902827172148130604544018113068052991347739923244835368982008798789366399303522558630618337292942833770404539517408537790172476832155611101307977819582131468054659537793234131829678799749366742799121649757205148834764304167732946067974456327404431728118936114749444423015143958582348427723382216774743584702217515827120275330253047768374246863499778129961765554816317891459685707517786988547319323385460379649644330767454096180192988690073357261885368822173715353618228499746563685849331323593888219513943273440390184054075054579126431833828532537978347545627574295954005990013264902231089779739200550289921256378703061966317392685843712264501304022476381507084042762137353196443153057590052783975007442982309139405671826071134393516967579384554786128252635323264626074697827329503610030524512909184220721775323074663025174217199903325222217232661275078351951852690065567205695827901532424139518006444565428915750643308866203479057782714324666547721901089443519548794589598438146616471572108186627542714303472285973260052656833433229059225602901874967128296263602492732386450860387376700116018793897242776330136756932512369623978754754061113063162069692129216132129506508129241657078368272959650880639234881215971946021931618214836444717795066076373889875606799230920227588922712931649296483501708032049006845076399781766610501499166288724196132569387729861463581781893579877856029853680865992934805059251750084219771615980846250267016426270756421166036335207402595308085167501888470127980854658640819561607392568831765674752378644033801937088409736065768819883717536743366986291726018195414246342832149220185355667616172843219379696677352289201780257590136786535974172805332436159997815602719439066013400734303374723272167105367566672002078282266716006996352394426638706496133694426852228727574908117263044781934336598295331031522694556762723873509009397836889657271154583535206026662507878097761870344990918866401843108949166822178610097393707311323775608382435741876620939209534068727683764180670560265399917624439971738064539073681377221547737456335080230293463496948920259265467924448281714987902225777688413194770369359831321032406777981438255005354079203765413577347067515028444707254646301582321085868292360790856033150298931288652018436524924037250287868446366155720432177430340271489500116768900125700221804959866498896545784042022528228801765845854408193857282459041669796971613111132008158298254401591323657125886797241374570594348788616843079898888125661359100618433464988401136989201307640016369376023485061416427841485549777780877886513717109287136846258167110187446120169327941079331727315457149195138038558480341556533450136889596046329996665760198100722172665014657987704401963495482529080305165847675588060220339968455209436501441392872869317567409112600816699569208312845103145752534061256290713896260460268106197486325902448277611070399456768827127208278919344251016706203840579817445887161888836734959773955342855522375408585390210537325732935554901668268580177510732651730308811336407776875178071911245302410999046451042787079760041347574404081996342244198080454799464042140127176175831111845606398136441605507020252949455048025864031957630965687992997873800213201610926418978722753714155909171074200387023602322999171787481012841791727735305329359653191363157740748700968851763264273048839907016009707583210541317574701509601864625313644696195329681799749008900560761204766117286882666400013159293141280352348738960412081712304122031084635162884422423769615431143422481607530419060458320712049724034578385831362586843778905951553303058980167624860246580065169614146276036129562954287195654397061421182658388449362484636458249169014103599062207453329350050502514912473779988751835259386526644841023873048564860919366209971840100678576633435194060726755704727452410633500942857183980652501355207176718463761349886797182257295140383697499684239372764837069020833955578798682059488683062631475483463124965364707108953356382323409598283015194007707349606593898114296053187272273658253934272356060994961454574596306307941133851007519860425631868189797711922330135615052688888652545052267271979761650613112585992504418960339930694417421130100355853099957133086602979092479452872780313175996146296080896944716874771941563928366596332311729435260616716527375613338128539317776478634996123604700520779202845608650132791121336400854789952056601430318960021974126177943036081415075542797767999207055166148861747927031899214720262279044004617792556166561854608091351981263039274519841872527490611824113472901210131815549357971804002784456829109410660082539980889043267588594414280664322847559612811913549510483986923784653474058189019711466110176477440880248419406589393248529230887105788823789828014772794637875734883389486700189229631810410534486742698246867337394665186277802156795943171710265286326937337681077708539023333067605209998067907877237053071566228528965426064454508876976254420034993637342249449586010870757113158340307720320718638456258581193883015352026757337518839370506021593785398688365244556536580409859202821952272484106265082662547225143323837175204483177519727746254501289834851292402714880728188063168910583464485373317789624176775341446573447550866551179280129764930960476247133315300587833057914538849165280885705029447409039857984873111346539853405614382021305849695463713869474044359251886894588230482345922785264803621718436588618652732902412181476355405032968144577197690196392001052361511394459322369481173499570023006111213429922763783116998258570334844680268974658586995148700878648778181018285824318070245553747759276053636356683986871768579945241053124862064778057585372703179562788363926375046538232654552419766609680918932156441429995523675444620946648283699846847103044990823734443504547560764142339173217572083042454249525497268064226179316855106801263461651162190346382756059930812942246698065899194703665853525633363066310985452441356778338645832190209741206769729072848109834049171744022973734156350194000613512707602755580822113595264281593633187776712029394101826123059414183850533618950307296729229397989166339780319613825292021652424959419979278254364884554844275434117307715703305854853806059193345590118176810871700068071677677762128842240448637935889728405203659894684147442718868210463067001927785597144048446840088745477267893594421237262613989001428968232193416814816224479079042237626323622510483988307046366976456960557829839771468911679378740451305766471184490712102291061431183436810022762053634085701339734714681061905803382902567304180045880274678538321664865276203895046457197888722564016793886363146929545526631220589231345354223845881825827468949013561748730932820072378311181130816769230752502958127855172062438085632928239702885647032124872441060851461418113595643673485511037801774599251859484516563057268520863860357084381860954369405808792097816487359686511805762472281311963579925483140302250633362264292302870538807363386567112977474460682716028904366298434551465155662424574157679910325555247522739291257103533426780303933918022475346792968698513568429996748350498840708576633589139532994998692585849078311990848398909131056202598079784188302496686362741218473744819845244400965888926396979662540418077971351175630575253948103844864047539827091040338254407092255844755666911570859557322468550983932588556549926076942096491766131199749017078831622547549988469693058837757274365639966810393554949379629327785308101120654461465064769978541372532088705079980403498179974731577463995033392232410238164888055742111116138961353991837930851119620843147121242399755427336270893166417986003324797193906746321735166930950140717328336624775066795901827397348503218114826092685526773110819912853080662945626469895750468503355099540169958577044684257806198687962642616416783885944474797483192017586578414565679043853586506119105861383839376920322602554864286785007767888147092701367842594922322504483957410868066102209706426862316087622739008917668411757388742454793039590125449556436502403078538447770030310382195095165655019605296329685079806750768658592394884176760976537343353139138937698128969547214676486224547879976142494346547709984447647098751763586645948272207075271594651783831725612509789856609215611838617860387019652307833704904163673444974907846578709281188534188567911150573562075706720933453493259329905407255873734680609714904574390130580441941132880862345473779588080554578660036306600390387312333695198128487279887512018027510130800599252400094061888076852955910081462675564027842519372401054576066789480370533089633598969830858072050189648199083769417742693759609522290789113488513351086183763160174860204150332587970718710752491121845596477109914237157289614533746596300825957111032400619478834361869835763664216884467679002831261115726746391153656918339263236433212226360234935936306262596993866357424708151351802596867319649285322623114344453944260686386803498195616054398281525355255913164372849331470933387744738865301315259902912596676799577113407564111698942495971283228850506313563986077172867548989458057076573322145928515328749816873412059097843469527508255638369128760627446099781685497532349292998717186365171977175642950337858766449242874881611044446245393117842475606910060629192400377711247281189089333122445388306152284032347112925361113932393958742040672522986435049256844103854379106230515933172352563807489497950730133417425595547009274191110910039587342703628660214568494060965568720135093064389558186616558900652432632362897932690485760354706437586452927525207653250109256796217292499158271546599628173935842283625769055344736998192629303649125486346043689602119053058488768185099014082858627229497978234143658219977442690753647373122281850414073939381236180058559366613142764177757570247413350542327386657161026151799661808316150379096596216933914524629634684856700487647289624787371626593497528992950013608401639053461223967739022378081271043370727610475795726866171599827199011756096937147067664744636665433234653770494820017402609326419327503396486948335435833810838714429860292734037462856249071925339769359392373934605631006058900708629771427536299433442099760712622777511942625662200227259715023983875378658464866058898906777070491513967883641446206917332525021167080598530936164323468332104326943509919978635021520645482964227038030024920471372909308492658668599833597235324869743000567315554120425955224884988745607770655496256389629490013675468804015725899846693236174855447042518112912137669594160308293798323876930562697847730947430061273611810942358394238679211844203401900090603481980115197270271907294874534829677759239044669420785984170136198772960384500333378334349310629402859703648242259023007322545958788638901526659158865776196331934425945188772868592382056191697576448070651271525120849049584886664518164801698626431930255915533528238979563758774108409056687164738864043630039403526551068726259125214689530940155066691045356855933411055018305721529972365620280690840510154408585051538894218694568836688911974551171465659872593614656702398382396073750018933412739269729974268400276622366500615862215317702972806288492532189444833805086280551201728833636856625171414894713970733279181099210708442103517093458773006051108908704385284781097112844155354189561099107189930389304758659361495067593118600155675920822866287802044572556146526125432968193895563080287680756212053410238753302487900481650210776892705365331431439466089945163936467125679042776831243563953358490858296164680787040858013746633091463243631561309337012644994142922154810166210166382776033408803907499085844479233480164162995690036032576939573415432748817411404547762053966278640995886036750750894403383781007896970859453574652005694544834344394572002739229534312835886888379719093842819084074227959026285196719795748249975628981046227910909363729184609169315646659583725573016742141261181621437810042946414611285368934448751560001435840939004180515835486509346992534152135256370159408356447361013643699117729513345264970512417071313060502692681389060151904022403716167401433552423166219021190044516335316246290977838625351835631670022774470199554344472122099915465957869170650495441387848273405121940613738942287380524042200743479561882103805980826999778566828093831027057336153664775615190204402573953438119962360194659352846548140270311664555362563382387564010025458460270118855440981167283435688660261064561922285707314237862876760767693504874211954594411329656180568943383535928957671066773022392617217738638280803681432023637466786797875691985257091119593483604929111547335977087794030619236329389331367183549613337794077272721872374380430504620089244051480468462099091500610582853190745032832863303325796863984311128306064179834141907142505615984662652412608920165936286386250721066017439638389759720555583140817756510154391008891686967822244589471662305839466698515477454991224011944965864209280128835001914380907754798535854684903335082237554557311394926421840388920513177877188752880288204905407234609631743612986990221105791325859270115787558136563403614255019796734777457572781387791039071421432194354893284534826208433301419286700845909290304837132595238773398239487513510196279828746450686207393423185580414026431052413141866486788155005486225005994917018801201335280753169878399395685944160376168102765802865431086466084058658862836182584657269968886210009785994840708372125903772035527519529231498550685653712751560817406216611859916035793951940482629671254098776971120353102289757876772513000097985973143316711326006276816003133241696162316185858803701532250074413119572185786181967370394309955002811558390012347275253082668268156703497652050667447653921320115613584673190253149972124889813475071334351942075248705124622456588993147250677028793274553851440984952576345621267299807700695390377110029990766556287036037099128341011881950521080499516849836409007104614508537579039306269465963774523275314993375309227491023528170718407220485610602865348080097705632212560159173267327616788681526826144721677925404830737212371994574948227365913911911537022109150305453010746460067741525481459673393642833914040304016488226363813267205456731954386059208721216806062770937811464035973899104583286710011693339454589995224446011377234947845275291650575687003902068797229511929039118806486235742541398249335075400352450758903185890120355910125861065562129170735601783853180303624246492515330211794375331305170268253926678216686554277508964249884060368753872648475820815114067097689659999920100145173853418045318268689204126566571582057006532211537477586103136773343391688441613363979155748082914622826053645474023834072324586231452483103490820815305875403402653482024927346241401516163778360220895646753965599240953364334084491568651528673328760598760368651622705749338839059253648977801787681536204718762712476836523994307860597354312131549617740199922187986736024062390423300226321374300831067785934117419425724987363434345117657171161689496951712578959697965716474506660030011610756443885207660936657366900772914814119874085288010375498523453924783234721852116361869216632479673762584662835116557813557541147560219559635558200872940020246275654286086909274825918488901706249344609363798463762268913629880923604387412550152708944416627785015128171440764923147579573766621135666917840216716252926937032530456393634314984125948231338695587122147654963648403502934376226732031510801508501032027734367113236591758331241487018437161000926703665787023742957152009750555123194321824567937832276658024859729825005337990586677549395588563276891251188744436227663666368521402405679761243694215503879083559193745088907265509097069239128772075379397077586601513721980294110767951374251198692249200565900281848521359774261110380284015009893420511860825224091395818428615133798089299455770424671844773707639523919487935989652837138112472361289028463709591459438918256656222929197327192914049151210135240259809974301253881004206144314910703215583295456460748245991606871118252572131813462232151386979806941829489762047656733477655636505931765511859977110570362493770405226450558220796813924360361958706848316345036783475001957240112957249385141630454452224274955119437896453596606061076400556184701216691857707360544394770646683771080460695232517065109538980108701090784979087007606209635184147904735287300430658416827126693723693740749784762558809797201729678471063374474754248665063135288819363604252248650656255001585102094199654198820267485930424102749478314746379030561100239240361529420780711802041149948067944919812395542557548128892832521377906643277611657131585229921689641958037150854196776965844527155170536420438982589349408010136829214046776016464858541846007637102357258690285090535748681212520084560278556254492260479896261891770270744593625058679544420527871735314669632326165541284027832968307984230879342808969630810546379901121103041686618905072707244940150852532015452086279859452264132122739591013670069575278303566840973885388173011108112184119566991840096903703282560581621093418979482208420995836305102398732773250964409415995028802599242673044757414551030438325379934812298991980946691079561200250677089395638626856644755733068693915861203582470182152779155503073936221623955322243970232601719211655332246645486364945732862309706687637440278163798394564808218292314450150243213853215121755166479185806321639299618126999696536878707161788360597224962194356056654761119345366985634458412942461948602961765618596309017777065775837519840363921424761114519479884297378585338144183300530814099586106433431258300001819048523383123703182392456506227873813859537926883320758868347778480020784612425880018640067578115625282017118821784744810127728535720639704346945605165874398126847189493359719446444392594010267486465406121198604870315359010530787408773470517575264172240709328556444870344640809203999394205947877277237469657378599126693757708486587153185273162929485792589335778067970387117491233811930501172798195818129820304190957802792788207016022392187146944088119039493183666840334554482514792266823454810120423400885389879152951165848847939590553896093376884691675794546852069484870596360165560181326886961893356613426461839419630192685178022757969547862322809137259896004667329380049908446166204450615641547481929770985706142050971711536080009464444453415982920396416422249555231434724060621983912113294147432619819130967877107106115798706233848925100690831753890144232669346250760083687656758238458815641867160268046749229845050119552347511209832200543807520530188919577401388284092365604379292955373306025650920963941973310822231753934740780817350810608159469135471049586104204620029899076421656253992841840282465860840142339797057236937215734142974124637806888440170931211668775244547295761665397840751954813348487067808122055963334547806366786803784902850181486096239052947320391788087880078053235935461056221085860584557321222782102807950854773724761483367347404741280655765357025603562424905129095492105551505269875779769300311484644195220525760548676303871343193138424554110619576436106331846470568269468600095888997431427608608386976590019958138765863627174058151939545806201705366532770433483846518502647770997494282742683141604388877765708175307294282272375189876569193584927734213241648623855778013491260385245710287874498126410218739210325150326469328077072881833189654372076372351869555776070863171707794291683096101973232329485644326841874628505243551734226991438155207099420233265397320622350037241729383069889357276043935101099093818932117551531456512334196716722872384599618062517565985839316188653393145671096901713869502473454949076782671815366862080713149520716094989062947041912596177792350680521590130116545985039517590166480533805332489422063134540714341556768187675056221224568953329289256419638343713164995905324248034317746425891385731898422262897086329700656614429622772277817179391662700083518727409478680401776454524836218655070849063894822789720946772398871780653340812999098834309263568307840581271360456396729349988136394679397204172866659007778779353079299188621493240718066782287080272868463446365924980109907221776229478343338872481319389565528511953246487603119949162747852555165990410745258145432491460386781526333137689813097433646842876279596823378032361197142058282378011960881654826724932724372476296954177552620822110730952689124226248434178429210658473870984226688752337821044732054162466262070796455938869760564489194872767234438905498829258216764947375649144056188894591918830538922791728119405340978812526325974960291712233108310715036434092315768447334750791827969484042502297651758886850346728759044262048108855331268495175439676789939197083553298189859913144719442143551774317535548223227066147281773936353714851078796518473592885311837020531974199558559542889213307734164370873952261443318627419046622567079897891640639584985805414013294347238660031763800641143260922216921825283672498392079319246265432200838739909438119529518002480694884772246426072363161443141377314177932804315733603528850289325881904877106908363269628074441104874000412202839905456651142613894811315079117191590971878531198642149023256949743772291652296648359792102072485976037928399196894180660758631892988888063902788707333277207942433752875913973147657886702133590985269435946780673509585520783248155900873474829525687142850144634198875858442487979366120571726869950232685447158409635453929571592716890860299036497661978462025631609173894792430031864166460591165149609996677119548785763574637667531079733991309619992367978382595600950777742735123732667911919536396874649351170114836103499552966841497876077084092752138471297147651576457802126728569673385958757825930298165243232621021255320742547484911418436403540098021974641235871087025701415697538090441120213291096181477370249940948027247117679264745600078001925874013121753759231336351126980232163264515237028723726010111950062098616089368248176095936354833130523818713436214393337773867410216050819804745794965035635907865918915286642648309734096253062090836267959019904759096893681539587201807895371611828526321099697146438136955547709237284322191669004178798815666588009935880882239615034661380498704233241210594560868429647965338840111441115534230772103572861351501549513831397663113505958543674283579277249537790648321184989824533177153788006860709579033141196477806968480127163187743848011190285773438780836019775087447824506511996218306692558624915692120912878320507741807849122226480535873983429093970744191087196983280077083515090397795918476501086756737377361273764819300119049133319173420277526367867539534448424155853242897668471549372634003319607352207312722388865929717016086254554518721544041234713898138594490141532651242796689558364172600655689939228269646439210131537308761899255141268744264592067390476375436752544331723736435062838234898371886516641232862625811616158979060764029285161523186146092773935776451511094737624710609800190418362174772439006345442469649897623889026826462278684295901297766708214539150175853831724346448498586960666860985847522300463905095797049616164990144260268324358668770363676674875057309307719475893910687187292994302551114976842437883741817612272150306433225570223215285999528904011874406712775218488961790007069922998473587760687084029372894480396809259780809076752242602509739214500710416327642827449505622873891531715577780973148535156299062636321200718306220859374379186004277081573985323896362404960279587412142461860759824364639044818152928764375701870479246255790642309796447135654601661756220219992087507014888386553323146364541590473490757741369596638927835401884669241739604150612630193179321031471815936496088722991679163902307896914791935096094032586410254883893950323360515268377188188140221590591605928607412401767423042757010571917734812777575727536494249064331917289257427024409791779748546116325438580260286160768800910451783929395252304565034605484804465934250312334647799267209519847726008666365840730660369923261985627529172207732239101906199358519592516542690724461638216606139855240314413754240128959569887242687438584971666103897724689179356032261767049000723853334964096428278495243185244572452062874770643486390823324029216357512336839674459113749997123793057133792304968195122923199583257635389748977189402470059878410480238774748827260704822188245932850446140888557221026586690556230626650967745601835235990315506427753153937580837050754713299437508171195525192282350598464350186815397244253802808038092787678965590060034040882198772356363883666905249997503903113559453274837646954157872639939774327102506663228633048971509741793645838614043794416974053157318116412699168706385290928961992866015898964374356727029248926727156518300296602870955299975900639668462548693287278044374362441898938691083599622159294492998404210397686548762254080834955035395820726018004470496513748125607608591481052188786292574151596089198820399661421129647691884848046641209697782974172483977480830191380284148821207430616475869272557671021869131194993555186714370065020056462887353253112254578811941778473508088566828569481281075766700418725037153300469022127279323349778146177461896335287690302886359829806684591059452033660384163194994458347699915432599267177077727157182159460386966147799061202205633076888283702155392469091492274443242845507191670359867824209145884773871893998939894624701390732568963501415563736367888395830412009903603396422869138042735791976567058225313566861008716404144817310864598068606555995575758650129989033625841653238852554470919600987289988692619904492653078400564060968419440018551915096837778895556966062108427665077367770234776247732433479367881444591320931958006079280739559077917360682424669135122872983954465153355887966911148852360509059508915449218709869930318265449629922675712915274393220417200455140369869036122349430732599671898929156186972095172830002997399330616081996626538770674089066480282173642397742163581200358662333052923691071749392372372878361605203851000519608925565401623336376566064780524301073251459837061592719406064906712622067555423318099741199099926284339299493184047061172062310184582321945950721179478138123071355252846566314101042434450017024973981980868686838942691966452222914831437468794128884690114949862575654822434626618108025052029659891349847859214928938012470858069301488572500670820281421920835250897121357290912737430364361970972137164175579976563012352777910230647190989697428123507192355338090816370963903329730054142602964889773403955980057383344577985218438809932442148754177629934370136615147866931865743869918772920390445010285772189932209603706052633873273590104213432396397355474064972303404918714313152659317939028040354715521634061853108853682897600747423974428011133183067977076931017343358844024783530453009713726746736687682962270329870896859519786897078161079600624989837553337643619348729919090014709692018211426319964270198296345005042625162631676710472072450405009731407418643108008130662867553467624795660709767626102509915153308786359604468620837245128338971489367335419067019066413291104480025368832044157860459486399965628210542369268241649111894840884307367132433031231945987123750967489973057067225734309666175304656631965468819484559451050525444524056062717560290489052528299686084393467160810298293895099260482191378763951946070840144162765268437892188852773531171015639600351269973671943162509962516185831887162549150927499923312355299551741842981532097360192529562039480915986084072128357065368994958444197471590390224193646608924549524807626565617014427212412273301729920585773957154068293560776459130296753637122945878200164412694905869134318387713740556489481061813007469685664339959609095668882615883509203498222132009660628571172501288424260875586712218896288259015478097231295341935618934444841853675293070268775226145065744069584423088227965980389744677995693282193836777576134087633362361496931197048547745590346256604206414626449366710136669633197798274999462502410157514351067157029628431962658895307489345745233233897570468209177440887471979349313654122325790060360945115876228701500135126740800829933519713787823222355805384034328263634760992006643922530983170177354334527144625801409543260845992968879115480951497946771386515051056853031640768068772722896642495219298034042689377537423047992455922091214749725616757404005329167216918906230650756493589215211903473859768772822092478215500526428843534969077300977976990915872229331254760143244958719913994154474588912122631186249527926191782363562323657319269485968031682172919220734600066270361015922655794085535378431028537386310769635801651916476443593726302699444793310534840065854970220316290502941675150407749027903174779145660662797566696709404382018744880466103981616417395064959209862447233002853689369655552584219392152388079466070624776835883762716311050853001810494740584180483706327599923606681147607107533209729331254576586964391450589402879419657563837338536670326249971751322614333901992742348568124431888457007906016665811732822845230697208246945283582139493687313853567549614761756464415005802322969005532365366613625949570317872782930170730007236675797660321369880780445374485684240315669864903118942819414408838691418683659724849999043164554914494041307775862113702557178672091162563453564817258319672068154250692444807301530911007431384713725663872533842887866697161384609935038634443924315363947961004861849968156249785096873363062272910674979995124192125714445994770796679518753570918553849435155885172051579186868872726463959769702269179444886969633885393713889779598364509252720328562315400261055104633403132147096242827201166915333999807719251514758955356114401363471574302805475004941012414347583708498883869635255354565563796923405755892261008880344915354590833631782276323376099179606638484708734164963163420628667475241073045488639327958047443587973722892993073712702168279531551088442500688161592688473845419950146585077342479967704598577029949712376761086781428281096278661461458292436452679594202842350765952886051318629749664771515992383487500698037757288140469893992063529731646878989851045425951169429573929936274092115571877374084660166999568560823661585080507727693926375753164808746228450726130964322094470501023083297806443390153439479820803018856151579054979974325332514610042513412135990646277491805122449223841239475741962171998704720914456671044393050757938654786140115807699762029879170478296886114033873951176356087675457489615830961216839475585018214357551535550622240533010173264465659815572133715509772672407204886237797052430273838925099596525214962653484091038170392482066373637339655140674744815761787300420193025634363239502762102828240007383190575617379297362402028113652625484502401325205384841884159197967662055119733684112168753173690530255610270063529708509643320487240892797390843066974279829370427729856249188808207797502572821466415030115886744296561789772858804449353186512688150791246385159479193221370334245654060804294627116439047499215537643270443532725823102972984722834023636616110975372288436535417983809381347631879931873344578077779972006734648219322707125465450936090243304084571055974947910213619754861150206714560771773866836162286949861410381395609433005360426947710147702320001090200164579620654115666886917554557394345383862676977654076320243909801849422122480378949162392912888898618764920719294458324790970680874066510756161869232753202402327236035051858883827357599808611002553783302372761460625967420866930389196312074833295106385790436713726852285630817920602085817328896307694123718443327112573560650378023404804311019658044516542304317086444660543561290713511717869089398559045826893903442502935911037740419858897518603111821063276271597624435010903380384581037152797798359743523903083585051946232273518229616403521126745628776283908701903387269877293330551718929592651083518272334343735576423549436779386682665402977538395230431311251961393850533650474514920299330483302667047561625891397109000643998507579744843386328572669853791597569613473157227594165539282847787238794183412327973859676028991740429412369773507418226592396561324348730092006050709867992890309788206714047579916249318579277767479535470330710414733267169254527857548068896359155913674960256757394307614324643301805970303498099605637582547836706690222616412663965106522385779134783306361678762505081665801975608606322339233377207892399543538996455537864928194081632741131569648257530835199930997062534368198035787617050101117099574802021821283968290257645542579718273180296054832300559043989367107643749233878362435644426493811561588776825353904759598448950126939973615694150919227252840697616620515109189205139793038411537665770345615168366389304484691585145836275793396090616639111509383883124391521710348735683176083452735911877016192595212910630199226322932443812966395339849521478624796922220472228702714135998131192236515874283400737946573989094011780601014580905987298630647048897733213166530453497809586806123405740859445660539553718527760420802484010410773842035773089173670024024101296448917105529168900810502036870429415569657414966886779135531567952707539807182354706820992497785058234822042693197699143821740853091981010576976323777808479785423590524836476411686998162539190309874853834395551116315574074764808578720387781885594776527076259975125889867288310782891685509634139208253681626501191983886417244689012715232033890610667253548381402939338308779960043090297641459405443493837999794521359708835060532914653453096594056233696780302673243839005310651659389011894331385109003388314580088747118174413806152473130217202921565239209062887164070904711350731527658697991887476977106164598267138448030039645508159274601037013708429362668576411257390110947460602562659070168672494813675900760306450226458821441631714313087957267289019617432977553929950537404727848768375781901119821683358828854234228843104273823656295224570881082860517023566000322485367437089887996009387802224605668199190240717040222433859256351460764449028456247192841959586285664143862439582968119644252486031556689107658962428179323085925140397551887186050550743371306844688697480809474004194611813698250336487701437581295700305597884041530845773349347751024860714635358707479886066879454241707969501352769898200856707087825635035161027525945034958482597794387508240846898326400221468009420854530314368065754950136051153743744352477917984618953158542226348275778224715750036338151546128094179652130152791280238915748458712966612244175103554152482581879006180753204206492108946855803790316343833623573082652651976565582455841406196406604851743504968447569356468729396097571754888106758418400576944211024800487548589805780614854909112160023062689477216326510680838639040117575336296293957593060161578989290237825488724396328246443223077333840975348611554608041478883156038846802748725549449454267833429446077122858949481889540451212733804370194963292150768790186103677392479837244407824322807302306507407690375819166529618371993698145890809030567536376126124059827761728773691669751057349948110304815414491949567486464557096086282747625090171332365644429501594839239595389885089196997438886671403646304677638992310813284503487958768175883641538470957430486160570438081053844380450547446076220068136564595627760408588456831993150116176708541638459977886085852543832067605321920368774627807111988063488631292717513985850283291758945123221964447757661182032111420853065385554221173912495942092883823595901816735789758237061802989655358828617251211005888615749387336766540148237012911821221388824787837003147768644221214490555348588395633388094909388124777488508088035353613131782566867929144410930101816416804463183141333352559559533090905981209483276364274313615226067028772196509598347910827478907375036450008026556328315622814158635079052449388130019361217749250507976007752948493596487744791654422939494385153758953482971956064540996447339908919238393576805937034558905109272427436181810396203913734067869973929406481627467723336000378617924789881538175109499454139527541935552398759965102551589445591766501721650780313660331907488343023353820849613244060013958746496878538426337976678125696075825681641088412728161584770293384441610808767125322464413670260291620276839430762324141698388779046309485803086198413743946824251883130755750154542046152430402753331947054616718903287435791833750924022591978687338655406352289037705085706544471203819188603157792875181780501319346445321333830102750231177228476721710500152621860203993113316552324676706630892192346734398098235166511893138812534083438192145557110860011128033264064910480946210165817908480450369605141294558727063925011642555641791336677837732899923516369568286117309080351479754128599617470855098997343710458041093151397309371311074322751664894247835242009306931181595994706968140733971197302274117972719624855799869051047347362315252127127063243130791930048234377591351704219337438138563106965544186067569068939095876176087299635511732239604515656652662852635895834935982750231265734222161724334775042592550868066488000664151347785936575565824316210562998858890150283570887308798821109761813744495432083577459297241597272061163631811175288810120867398852086217079957993247173835191148328457940572105424796590592914886308492984563746289689495715486478567201875211493816990163450031304380846640633372652650674437575957289953254412097694516607785523565594761996565209673370958617626800358813779377000078092029009996317565994847093682144415764607351298232887579996318047206640533264494722864278703406084854326157498452629968060575392390926303402916287724415323244917862468496954297643113656443795576446252214169313161058142844452966958154607838016978511402244676105993654438840521132481527000976307714394167682564501154649042050666003628366684121872549222338019579606982745811643158998651061778886743954752706665633461458900506915637114344215445522507002447880680307539399623007088771627384882147166955325144747106231268992121681425103539006431819253742488426775591826782128350062695384662232361214019656567107286275840118041431666887414039783598748477763374035607370162778587421687945583128302183174353176548208557581202463912645446361043582155381442908531183726154385295855097863468434481671398867880389091176666320872615674995980093736578650280615242192499490509658397081115646035222797870943354014686851690474669043516727030444224736662254864487590259817709602538335559888817825994204937978398494073412971317706170345639886646611941604084361972548139671830370710464089776345009384444661104458714750226488207790255108534864614058616762705484006125695436321804284296452224150020170230329034921428095294554775445817243766262629295955426169740319958364323787353220566526883544370208154885879758284672621702407882442387699034400765121398190529865704631255597982774789580896977681968977282935181374656842423907808282244225854532518967429093374989558442649527586127295518399647797446741305767218275147271736052288929024461228911848677080468455236227708505175442198574795556566537391655118991497894298690726595594900025125229140136536351160852712527444683180811947636435403138498453920901172128640581815943037632940110215847511919681882567738855243550112705497810962798885825317999234814026947276077174756850901472721730130925173685581216386773962551002071915100726985787297785777567965769511137616915987145354697278247196872980988913271522053941457580350141399832547891898037293583347126310510122153143305137226137646057554909858867872280152042561660493059922744805144077454936638365462879643834454323410866619721544047283751910211968253248148714613522873845725340924361172208382635189634911208218626007004768579063630873123021221297949358227758488706727131824023525568544366766580240533351748162433377204746505494063931882230350315818301584017388229809711733768635476291883045440199515584718921690959407168888397059361863267557087454522607921580275236786532422346124716358372220983700213578855299487346077764010712713131651619505090591248217512312686170847691385738417503803191318430068777908684190480275086552074356017374938164192154245737066273107195496972067110587365350738229718180111010561550911560490202805659357033550540672144423438516022709824804988805537765299635067952076996523597920099003046769344001977388544515226178487211586379059962320842424246094376814832570152912199029259264557512355937217473627256044332039259100272040492042004559693938386145174749559138929324272158114250581478059794983546221456366648918547556488925341245818682940752389446124789193551300531442059220290856536750464629419621659639199938290605906473037426845894306463351900925061156457192182640008525579385654253975802581623127786010041213432914497336428460780419014733905370178270780090789560984584598985978312376358902117257119003334458957401790526482486201534988191255490891921999351034604818652244482662478393140184108967264316301625358091870261050901358657209959646405406717090057948155835895393271803949203882085622735498702565137149021256696383242017963069192441423087780790197462779396135006477920103772277958608986415388132769109799227721810407699444342424481789398292383960888871152385662972585200531122050648810864276289247650044447837936351101353500038872555823681655895407533948836006258622410362604275731407621998560131948718441371601642639522157331103566620786193756900289797246335427506084166404317266018666041147607493968544470354387471706785649322591597931436141544273815252753745643203426310695119026224494078141644467246637459248915846652139969137396687025110658129838565204413824469005041107050696934322293121499727560559895330607894888289660722608648863172574209998902666559020880734379114326736868694598079479169874906322929410079334247580728825493564553624013394877815060254397683253675963602903786472798902532969715525065048463406455239473591051666465708628068306407593100420323298279542905678924435371165908791422925343575006091121934644524343553355316347576117336337718571401328085039282104240081366164446966340714541812602143611754851785335484044638217920243224234723448665329239385515493924700100095307022320501310904458640322096225923277841635839095103918097075981022579611050900517794904204429493822026738958540601830827979309234010134290823344938046080317716274462882737846894812402297289223886978171946583077315463800020466971755596703127966189691195657891135111743647060027604152322921454567797484490432030717506023675637739085694259622528443209724904647015657074206308896447433538639148871431073456576979248417075550674707724420368116778220475216118537206210431019561509778730262465845153604513982826424127222920865038225922122995621067815959267790121324971961792591562994027181385153361648561628627392219647768404781643352236656636075318243814980534020773727328694707751237487166009736280100591688860365367882395881344269197326348573142981137012175319529311453614649297729060790265180687968166810040234086657463829024622840836591537642864315658902599838105004128871223971051262553854942491540113646242309878108664385607368614153142393898313401228902308593849126616617894088455060238156468499516243049135416763174716868377622087294817385905862163668069260288499447615553228629685200170395646758203524656773350813588272177634297400998768265634173226714864616860495008461815403003980453200311922062499014988145158670360466166714274329572801077746417640536308484839783005142114884595025991090811360879729590353899308842236462332738329515830467582221231675342703246599287018511019836109597202168888413071368052631887561661201529752430625395376393831787539983657247271900870285756714534166772009317735466108981629314712065797902768505456004963118892059426392929723721649338747809072416704725353816902214680719255652971661553830704976994851468909092549777109042943541067831381840711981106068179062358615680529855757593493908036708976557301065756699411997970982083064307628937077093836516331706994417746408565889705943783070047498522474046288965636739263900000098853402742495015293551287958784659168822645329236384094672332503439883649665962736568054892961285447006217008080035307581125054165443359838068657738974292363645228341994891807694742920184908406399413590335929724555085404716674469277816915311680693565063334471224823625006126769962159497294669354325924588487590772144276311845911796178373794736681272276592835309395776063038133718959614197019968108107207516543815890252912998917858791911762886188101026612786419193499108268699794869566888897680911674614275601723657990400381565600005274176562880185643225540940400432213056946893766446151838238672050876148691561156527239363248938586111309511974273609573529180911950116448786213996659175755877090643378046675642303812593460874587728683684909011690001522380279851004216692948689022116888417431668775540690264997658821870787590230209004164664028135655566369087805232977629423965831418170283112546043344791264984977737671425707019883337150786603701057829700168409330464094236309986556450760998230566225403253273478869025499105149986022689479832105964161151897586011366815466423425842850575695527517902481697564341025414043239220506728069595448824414895130719310965960453619460575312576583362038127646491051192058798640869164141350324013235612046398148233149752772841064158873403188290774653984245215034146072705052989946290736245615592883018975617051985620230157090454917306294119732240492057297029116493710022215123490770208680292986228781041666420230589142373415903995614269617357311324208015049891195790572157255670447805107243322994168927525076102684191279000502129751016095005330895066833718863643675264271033722336627577982708253293264581171275210063454457155414575889114374231373439698658180353442145872330453037550916777352810977862770137001552180957361482354934424445629573248976191767220702818532879252332506550404477781827293870779353457107353034694275652462421443086323518715186766716191476351405876880913515755790240618425408648123541120593016223199270881286483603260878671224345975945473778551671722914423751389418623055814105180268279845740772065293472696934896820790447145389475637279039364574668459830322675672435734802298070362369778402928008867893072794241976842655565631608547926688506640520722483505398462234589666783060900114292239807445201060234134497623849926274913973312942698075228154494298136792797978844491096034681860441921070053410461723965723275616044606908592814688493436512335272464347953099253317593438192229638530396798926406029267602249271796358636447153125715230320320242650016603740600459692936179569813649391348401580889526200292675980733845250087331069943535140083736891928465544411434767536587939913914201708843504789790985376391323693424757503605990161222119757800223336905361003702388038134358180293879194234920313570745122816734235408203043975299086502030035246247850088599446351188696468758456191513508000371234507410397925582390807367608263147124503407358995551237515504413804554853567486434704068285649945715959377871001671442384364281306592077488478671693273399049331912732018379300290871835908934641056326815845312544681116807986726134276821894747043402897539251532564075048609813819187034210621631888760954508484998671553698751765676257241030834130905550119407592229246239967989435587457252153147950466452221274201535853572100859716853645793248935934202471770479964664507651629951992493517144024615726687622331711435064388643848220027140412889065524643731943923723671599638989768256687507984241284406060784977021051732733714342408070465941852357765526520600883808702498119764027010229855500923094445637383286216036829779827478067569153246147469204276467027392398090619178078593629023699806047977763871220577289988663638327456831814657322806690200210512217489365309613526000033593172227264219910273567897678493019854552853013902720721728473107121387284006873682280011426067668043278980582098123705085777218145998278466030986513802387947622972087371490790977399176044842945513259312013012082750289987350026033462596058972371393788214395808968805339418031453766217725880102429044168141606221238895165110913383403937983840401249927094954178966457031076459095939941852770308483358758966843042551597401721522390294754313398877326876103094345497497489723471310969863881459067975764182667036282063439172113716166669285187365222728293387632590842143200393411729012380074735388340431055673738878903543148980404304148542357930965139139542590394580615893807487909224938739907378313886778693369627052361849280981110271558742485651214962995136630620252040633322608575309563029991699817865892036835305890602620115368816937591071964097094247815615070877985413397003717974752640018784616507752084365306255962144412637019955366961835213489277196321708128331553940602970520025939709210570789320901839923976092083807713694375614766118198426780335703233714503259767509396093967258956084731175593150593104404962348866392146167972273678792041785065269348745683824385901282459282795403835713005446628067658899546746966445625119409499250311699938611122494277495519710045252123436052163385731890084175511124553526019834898496775599727844552358778442306331244595094018963291403439161122638692548384036509733018669663972446798678526809162048408174730417354587985703914605826985312805583855686155379583599980301661567834502545106081294478606877684517880439966154584398641584006912255015147857926989979851173729495044783370455458407272706250430170426027306189277245845468503909446366429848024014366937612235104281162176782229078754770820577364826884100914943198187325625809956779169289601702958267714795871110345182151697346594796832823903345885077941848848958488897272033306261793924981925772083772969064535570444418316559966793712193085098727684125049174818156224864283582097750074788995158057618833017629686141940285501087346690758133858610396789987012189279313541357350740416273763272126621114213718882987442906820507852793641980565037130255617614533317733824975970775972202745336039176365239965313173864176352843986680501153124328057534867586099886074816033969955930726234788269214805868473894331059958791774559861927865862052879142110771994865997170527109637495935520810367915668712500001752497521656360009004474075676063838950391395014986445228908392483228229676350901601293041361449948316828388191210180550483777215560499950151175814962067043884536513274571434917994123917237644049748409840106818567506848318239231747730634423860887509727727896021372217638904036125698838863512182189849735082302603145091113604251748316428024886567859677666581296354563626279635249996339936624731992247384338271222141029153487525485050404562322645876878767113040537319723140139438441555103647416115478611537032294703353595473103170792124502525772633672305455734975036195978773382502628740376032939396426302838639402262199756856316828265011935317185073126994371980440095380765472294557381818248545734230583116092718726205377644520795715172611106443226504599081799846240291966842432478838452247676193318786689006394095598706860726990739538477775684149594503247640815072728321505014601467580735957435594641132006038226964617132963664459596992273558313933831932337431649056923162299544542833984616559221416571788125744130634327748119114374268023663315665088341488543493524805709547760190790525555300041942479914825887037592244736925026004332216279867299551410049127197893097904724833294846985715045931878668983116708969909408706032231917895403841283896203217276039510773139050763169100699712375632362491917596754007040222095078191910749599681391282701575261232954786912828751806688665611431762017740536537976354996637247335813375457443004865370441040032328620391382882725925076097714106158354366410688589069950367020063692571188231756873836828733390052814566179827218949233139946861707251439023675547517570780335617549387402772989088521480194666454768563701146079166269740957149765367373800581909432347652880317209886087898937187265601625261365607545393196116855951707311345067572819858898150018690848631793613406411108601331228134429456911927984606340362865925352805304137437502385764330494251137008456437388219114030121130948466068312134105236472851303083669541348553171907744374651773739301005386839178061772304651427314989798963821193878650886288635686649071080835523595915403642235319607572213053619530357251929860551133632057070021690299639459692342579054597132353489634035933736539235615700632957449638692622919640538700172075382928319757012881965571956854953938663565345520547069837824902222637754638987275935587479490115068841259188106524496951270617856873091410686352145211788723047994473906091315199675607724669515290248411148809785962664829598117027826521548952817274921524266822627007657545024640427780109061948622878459026131183349050169372028353693218138590509794415595180859331535974969743974499896558410686451891651364785328072122060377300232536500234015995757862623567956162143065580046070512429106410423831743341302274758066831798186515712225903022880035418991896584951719942348285339444637594796712834583298598278239494485989909163797905800289143624023050894903682826793662621024217204862456858572270243082363801668053977642470418707584848610466462726800673625108245412170252538618564542480698289118167989504897039250628358475795932450038242049611665167044206662168867754527164323138396664263793638822830903272211634749355305998259555705518479050429636559425831690154817415264252118789741021142926800048145990863127766742165552821951184539420186407408872741174059745436785823889340464995817661461143606211329014621895544097510762421636649203480764867788602576414723740603459681360165567683141322562537513562923635167322908753397327929192250642325599390211701817405896565840955322018504998856604135033017315964768777568423957954484018525515281442364250813066784700874562297150122206276320949847088885598817428170233599168814723607306531526992590006979994689742390421337549255095378097843450085818573484882902522396459548805507823104276020093456994632529958284884426543723900885761486459050050311435792369135532873342881359236350611076356770957850484699859443560052477437676814632013760300616935802188935263701412313577132467397774703378313009647164100966239666604761476828878866089017042916968356121148548829242665541055652072041846121817893693264007994216471885449856964055794631235913821440291519923877759960827746918773663584074523469798125514748804053131827709928345898228537399194376172869057064579987896375238778031172721275095422759026502845426118340002162208477062886842555242843289313158247371062710538943568173301873805440655040480222624190071196054487377406262372932203343894979862648742260037459841497456217946991748445244023595765623430227762857713375618447635315046272502979631123857330983200565405943890272019735641022902727767699173443335667661764218979048521645130177521786845855618090288283342696761864353010227957049484213797023913139287657052147516369958070179029026483859654112958989130658532070405952496897942733149376077525741651088526786795514464314343588748538885063906049954992682121796215493136951777101901543916995311178701689124391530455618354041317907226240571898074538833266752479010764375167049585153722093010180530280735071839766830505457432927183283187850499055967529731557697324088775469157861344182698662855863633094454004009839490695636472998244897086310774621998566157636128825891342109312109637061858578570700817002619665394164176623239762578568515000253798255914626069212404524530888285180496079253757447807457605323483314981151050577410309018471168744682973160156012087187880645937041253126470973779351953694096952016391701538972950069699273096654735471858907837199854257453505471857176885842957939739852177326572070947569112621984172856300566370142469074550331327748361249008334205114143717566817201084213864693833300904457114037225657168118035273316152415308667381371404775878177052340601725693719761663494439360726236973434716092826495222364870792256390082940569455021698708730526120688730822734308889390076454471395858859331815686722703620301801846806119139394247272907295440501470627469912427147453902198256466020595434688907415017012104465458275771018310786142047787911488116399103131771817693782006482487837039925308050065300668789269830469081798608633208254388582204904872571488594817214364113917078776337833770624690221916443955393208174069764524254980549001238870197191868288033106797570048264760276562096953663149368278965505694790814596372057139046654892433861003309788448138857207941211404492519078426079014517817265223479414066760821817805932545498841695900947662654290383640119772233512163205744930554430090714422959679438307309670301568392250186609798377886437319717823864244051998740695065079678300331916145975735812628762414576933941048170720445736001754979605353211827184109270018033115850531975375206914110795515310433943088113217300434501647269759743237635194280132561435085815518083259318694144611303491252581532778591536407530542774956091360410654129381301337227922265617205735410696038000306441847794413741371792215364760249510652278400063870936807789307213405954424566758806278301838588589650216989579527349805102161053912629941463692056172382349359845696131294946886071273670048959021202765216189404238437494683618999243782669615803695937035967628669245931036819066319515139621597586666183519645863889805819481264614916302500026200033194353583620753927878083942755791000008223298606163621478654884106726534237208100652027293867894096320032646284911136552536288142877596781328623403660998593790506983682540968279615706370218513052596342103474559144460523261583480817282301459036815173106237891722564005490112756671599748840383607266954833481171567219886489427671822268821512679041198747492029353553902035961602796460964060447004858881066218297986890541430147430682827834024031608666347892698817307792362280535996912046145905725225288484845104954121565478018540741978487262514373347447451340010284318897979534210638947606000739410189822951467207797703295669443869406056162657633956496708091929490652730299893053845059760544071939633309129567036358978267164499592670584178097477881016794354858866232940335132430656391210596794176026785573683535411785744016642985843164805907879777007155303384819876751483156496278082040871461779835409216695583099907933111941907936754120491872922611844047293863468432555031043986254076982421362061697561320499534777215262713145454168632536814166682525186832898728926088310688146425910436402534296839749173344987282958681236542967995227003590298533169865710773129710491520065093626897299024525593359476331982229202457187767447194498044076086953745067604004803989056671414461652974687827583408909784405788428944379812867349455264919354663441488172515417370018742136705693970165467822898003565816313409938074069153958983245162404008704832581621177480047715483324552330886315586800582461008940444695487995923045898822993069987394195742642198479478767901357332661733262787103445038801431077090560204543039626331070265543965038300366555856318023639312322461627670177859273516882254243314939859545813128736357374859298039175705062245379798640800083154679393159918722508377820630286075610738317974038032205440075736784226445316508096972976128128928786288607825237175511244218498086939961482818068553976643591336528493346795940704993212161353823263210714990730513903788327718647213496518199163153882192978207005212692402936230232932888141922644210509108694188597465711324209546681286881847826215475497067861734640797080301899131928366312889536482968365446212293242177527477244871066856680162218873120637240486632875918282204621539285115928534550977741128095318762658272470768347076961944063016011170131588248272181362951452206331336938994993843544281848570558325849158079441354262466522747299745443852084203263875260405905125473943712171298975404386347558004170223617375946772739460873347812565534121595958903646607449314741670546332453248064334811007936757788862539808632972988196493192769848886685519587878618579184761057518375681279859260950866851553697140893030087966790311568579579995036891330378718691420342135001674534956481995735619908781625771189622206278466362470000530153134797800753657955560311831228025814153132687940413586765640126756277187852223159756884949827393949294976281632279957518410537460808208534366561206302074643483386919042444703872343463801829061660933634252314167564638451389309074400310568394218731907809641713871708484452847702388886709087056902337792409422083599981211339999851993088789265334443805200661415458289239106854817532404578825238723447914882677148276729833383379329557556565662798290545105236429962041176035617145200107059161646273607329270007913923043301537458370021770682924530968974371102523423242154989816163866769102653621522653037324547424136504785960030252417496553178801372678676348182625640761265886994450812031431482859870899213513527667254703452602938153416378130261068334180564235845584987161495255563238130448752188095197436891217078349409261086627369961327123199348877723514571423779575287176653452924830006782181391157329056600834423698498279199840777552863653144117579648989050984576889139512508666009854077738473623731185359066613397712586021164333234555942888918987577274328595823423427748096694212036682358950371955373571282321977253685093969459817903307072397655057951578909119725523481649675707713333244742013808267618267605773082993133196747446774992387982392765579070122629218741488632099261198962010543951748850824599752080996468642753992506424876563729271122448072449799649012319168742215583564218577315024335967508018527251592079509310259672890141475793499825307531540141432686576127932996232795758008175146181596384414956375485274990528493992458996053426911102649570850327889447130213553864429359550872325260889323703264938779056935281910773381488210791841831081490532281400094387783934554853610011525483736761947975795537884851357088834881090307692812119234166943698897670233358768672138296319959094868248212531801701812053245604710598970330894352213004000088863135775419124076921392368175457103298252707795200440026190114485841045040188631010957673777944735185346210584501568991724687113169428836143383246215369646258176501476236313057574912182041781103033927981703725271758217079246725388810604069288223027775201357583000854296451176794253574651771362972366449190130896391472536607074741885911622677803714279405396385305662425712011552883111095567377233216599976731135796030605859757965798236572196010523943391865386777689887322949337622034122824753240945825597500790045973391437255392255139260326384168707814652997157542545778521188853836907655522260157220082734339730673292194580202084142830296791759359619752659405160875010390606825949341375095632880308842441516577944079782181132806286562543286960463200978211642330667456590757994657766607903638235475530316864440647831044145325088657830325375201517622895742322233071570570882455568027907816439590970078799006099710952744104867465598146362115516344875226454792565596543633753580245979961433637538376856253756918502913000461950684230013087284026168606876120215624315947931828100698873593987368783499182393226253867353285201737479070215629152128793614600331758592855660838412563913052244819493409922089431656396248309463242627717754340314306704999794633100823532614606332666754977413105509304020227919231343290704875361574080574178456451516635927426162222640309732930674740172151654129007452168811482592896178167943336439559181198083340796206574355818132774648064953401603971816836441432818787174210024398372761546371672096401718244751341143605225626657877930456235470112144923406418995224700996558400531587810203746573525353706538522505804823206904763293583006204254616729948173199404184874418320307181034654657322611218771467558600371558953293049961703695317743580851080831588095020688804756525645589158009042918758503946870707895221811634565092955538206588383411853697327339742574060982467218915093176399067346327564687326848521637980671495666724160052391482937971035751058527426043638496528828778133790220870978820847890038707602374538501409106352648907177187694644941811941364525195560202947619504074830107464888582905687669551536329832201214531708259299336824747960263417316856569475105249162963539188143987810063135096008851443955347618354414240200709659300464067574394326365477197760846824245963383692063544730050890306446197523997255960821276446947023946581252095002445956163266842111770753141525923153704165953730664020881017520811535026770047037431737109850151510954202929929826573576530407940170519193750558274254106632521606703316993981645907534441582451754204209842885920066835116975746244022764439574297832903003450854027097003484241908657665136521603124813479169487715891424883346745355838742403371169862430739593004103404677744904494153799611495123593987114142225221580424920278549957388093200571293503929724406491705719970015791653488150178804526971583451254018766400017091986740266139998230113008714125337556198178756745405329163754393734176328734236697418947861903289010693043853231692196213577121351015372152457645620669977937829495822921364326570020181785293065794154974509447953202152041812974823039881541177480888620245518280267142027119847928377895257600326649109120681980557774610509271065461507911478030224511615473540915979153210972490518942865775019081516042127078108136369434461731165465627630531748632678188474592374853234539122120241175439911491704563357585922486526082709136960006836055950845051631733573149217109504203008995380333054752658237096668023296481846997334799492078672376544921094977148057919154467507668433229679788432923668775377381535341090345848355050050613759778727264615522115813235710246195890859632655408570886465649142917692639849328585892183139439633667244343749961286628195481984277853130636004846232981183262119820656335477958669883209738999881486894331378752327536131153984717590093494895463038724661107612568481792859631571867513819695514446913025967129409757698804708345127157823626615288158979763621173820802140732460402426400756730531599250889000253274801974257555612935701513103445320059057617408569679111292697738378634510274215002814682903082823313328881807332011957881298929659662260951660294341639444610187524348644773733600483961343061026320974213838719344296567520093077537160088143892024338170409151891140901177389727394793656691861121994970949148726088887576734011977854314899169193571070566343514859151043530097605499732542794493010128576586384483969328970901820603544592241407652973938934446402780033709249320178214236854552982440899576022217319377037909143233555754823998581867208997398652982915063737415698834893351665926990188668672309325947829659111842397140885392524287669328097660302598868670811091585962963768823547067309124251158686274114497087501959007261779089061958652554795715342270395189046986620327660881484043691727461725045380086656393216524779821814062509120656869377616598954479925677584515800954146599530430489546274737948229210059975173357526365319481757260173481444115131138399857187814633877994871369766336786047913619683517870395364330792462879018954466565883366922806294418715621230031168398811624977002305369685653734306066192704338902800134408713793588776183038287976377316098842469625720766010909593949000425329686170069995266723561690388125682243434967357420786490983219054175577124307216848575331110412274173084394070849339273988552382217781096637314695315215771981290104345576682995267591162991955574806203759093788936227969424172852776617974553609963818230650872984609695542563525080569573852161721145595433400101966003371283389605556313640419485361002707670575898435304547634322576669165798356541640730225060794273921107251117480943847367367950656777079185663427349415835413250110477543245019539651306654329821894256696133455548387555368623438018934484274955950055778766671712514801545515996539293748756452999701356713863204178267289375738872313437913178789117903991307135389363189677468198033294837606864416215693362423553458405585978460592512606537008068143524170320856475077780293513419187762964125236726378609750925891442568948126272092986560033165527087942578562197841796223511202327927110039615452746966734966200349385813838941990456779551474602527258410865021234256293145666538322611082248765199565969372322902984139112259355714034714769252091193599882429193277456054616565781165135240517119883409189195356319012048107255148676412793568787126523466763875662428460332527881125240430883076250055810499406941837196965870385989022690737679627942098026420634371049701676565392522439397575243185249121541745273931622832275416199088945742606646211547976976985499318352721369821586097707274258296563073448242201648153815511342925154236331950850551602473905862227963130971233185582595121469836016976757405205197387566306427882730072015651120057015398501242050897353969571558658285183419751664127395440868204961773417080209572620143710398832742959320031856810735206050881580633193354998319735436282624098538120900775357393239142002065845061227894556032094035037540148740831925704918771607980579711664791046808549017510676717597538128832533773211232944514803273948951558891542597841640337385318227991990920769268063439768907682566606914769278823901830576566367904120331445088606684138208920058565018441345422605384138698341368690132889982721459339565896105191380439607593899234534992673681898235269400303721917021015694222804943870114245022155346202207879082099029329843987634010737368950262939291274577539641377709312831196616131121971356689621015149682912035820894761671453301751568751180463954192780470839197227081149259140735346699085309304595495886517591357782347460177155685793609234900544741251135973899271758502573971232966691059745634468657638554027926213763242467178293451777326092125189494294822362605370696673757345213610070239140785555983634146266232754297656129995195386717313652895534836432140623906537683034462952066170557872749393315254428005882625304148041171511527883824985576478404895706285774140058463743780898052928839464671934539379861560804998805894988668664067251354373717351429484648438945413254204985421415666692661116289645499036920698550139890107957486361335370342236624976833066124846828451198560272919657219056687967671204902381626880255884535232048543952030036034844719139946796942139011410921421889282160056171864590120093183475197617382720538674482858028005579141456990403780026395623952869056310427873120740434022596571794996531952043123929674015641476039357287850925291934275647778995266008937696320066673113348276462375802593734973865941649470113857752160120122556889706850306904060382652995041138758274216847435154485280398442031618357448503414782430108787431446576035062262621003945583466112732435712465104122741996246116189271803353585235389552920716488855700759923188440065510399073494576314343481800029855387615042236459834772614187755620594086983321057072816112118426387877767485053837935935990028227950782574216078279350181804285058534326662078274980717755263684727540856880720457520433779789055004636199631715950846395296701399874981245684399329891058702823491685599492157798208401938300332803387507407806914757890761784200470758082428212825754196018024352144541834225079151937803417067140843728116315913732954272746020412303092869659682595336102820645375192236090683703598177014322843364020518290998294724226896606813175927529884534867050816957752278933745789268266300948017858499648068791945509291038011871168932004109871486571223075681402682705807906018272644038489741901706190076100161439336266777681980349385102136461006844238391543938924723880275521212907131384340407578560997111392183165890543837296857099229558776167321580543065231244033080992673830842740895319769759611143014021991043940120757945791017714361581725789808681486801934978343849553191740003185894652307037913560523059132284801610849157504370206982528140666798161930137570184320816205176232691626635838615515201919834149481091514284683343405053255308130920992666080857890520481538473587159699519205912847596935498203739034158861370217947076923911293207485604216064789466437526738473797487921524075927055606649086485274710601545222004178993147057022201124273276841547395221434694145107611455346653621607902013410508001414378742086674709021311696363984286237632869511405563507735637277788821379569933627859800136820736351448484641803366699127177385818645845556928863742285647205103794515464034773214310901345317501614648128738233493311328601965017392910565913042170271151924578725651665792439088131282359980116226147465329450452061362974735936778223225615002568309443991476518947631823337017161922075518884912204920692801423386352137091665329948455409356526258985285277346742159667688842556344261737868389345324530157397926731715301350096975666638822087418094354182906305061795491399801310387806684524243862777457449636809038946180985660790615890076396375489364922315305944298674281635618854399155145118759352472062406562359515118181217319726146147133646330621019043186975785933642934720358937619524420022740841001570223667921737480953658612932905472459990416102222323484357999029297491040292889363656318053767690115249858478302436823806464046382262295888474038430973443926076099280833198440231129603301685140166722284483447029836855850410765187069405154148966768174769242372041956172548371661576228217407125273195029876112537115872457116406745179341291868037034335356309851375865478749830602259035609945857782531645831364406692128035442325322642079341843987146424312773766155582482226248419529760577078813566642560289879550254432591580754263944632164441169525403429218063713345760008470382331455720084365993072649722895978565214117963151413787996098463043951670442259633970591075318968529055382437897094888956606633404470261778100697733854463289511274655103246327863821263703568444285041623152968613178564593554018680604941072853235215125778136567361585272215302030916835771114864592073663344418834035431637443978778874771684728220453592762736730135071226092324167258443753196748216276924372360811400428428605911400694047161874963134598484605799741764063420965544358256330634813839192407592503291875666717504921812527137200157028563939819640208402432265398201260231681598066504044003302711721851700940511147440929123775525311681135478884380556200360820385212086341696070312730914837559198571317470106127043811983043953823195887106370810016965947954672304925824922270237279022359457609003246662582994815442741413451778935796159673745097601947354633479683885850269232696945801574430079126985658044301399032654088096367095593069537810154461604581009978339388620021128781233591595836320317310517849962933766167092441483724701736442193627629888886307722929111230450479101882767902442888511647320864111913503568581750939491194125686047646481006203127482583573901159960619124930975047711117184507390345574701360579493974633181718940232581065274671969573680808705921640973151277599208907382975934167743492298324452315887695939585922785419282060804449743236175475034887325678257743523861321312754048941401390049559559495947993182216027039062411684907935620247961797790874586539540413575500969477125159867987764079081131417231215512095977570806469463481590356080286554897266149301011671150619217882184108633711372064411504999694013376726697093663621021947970908935342885056025505452057983323017707635425235151956313564245911783310230088747941934938944494802000476086015084186066566294605402167878035384296374679939015375706478486518378377265523933780647970554044966158476930101392290017230224285335294725631090070798212964015371765243153156703419477999381691330758223158893251917503220842498349431628903313031811008956550340694463263895274651074291412466809411742350671379089324911388096115926497299340542306589754625334925762705506170192164268764335619819414362407840165670657572014191702084961648164653506963196865514851957702215156703105973415279502359588820216923627057984108273996751249268394232640272299865672017898173649793389559046848627331900861958614985378721560505215914212670452842843713301556674860850830476563778864707693541710691961051425016971112514074512366206073275250321231381663648008638947314406014700534823867394006294260758697302729046685620626377665852050837887033243854140063705794155364450778561886102603905173766224197574156125606135308036185123766572017879823130516825231248440793331160395992821269000316173584489940654399307294823155008189578013512148387173944267246482637293897419213933709223764917517543966231548202003025639175848107689524207050313649748861517388782123094719027604855244352803741248577974867933640612146756141477221004285785818357040595612925310110761780066958826127924332987674192593589756961780471983736531883833976974664171834009440031406896295565542304907498730639425405542994557449116384042521591439897966581320749679469161874153513044096999868445942274152764721549147753214322533317504543405846957309014784025059549467203959236527938241747677200733440077718683193621012890499862452730256810076916552797497926367780896236924331189530853979752521940160118365748764467583497280577957592997791855209717709536690374867507439574215587855828478676462574714909362459911660545227959952554797457128257841707534296971654308553132255232755877120100633673839762269396660093880678494615521496938703236519134055680929811190704628971292457756442851559944852793166735348169021672453351792457554069285528591463227517242143340693154582686003407641575343342069594512580106773740308632963574651679283243964937165591328470690402235138844932410565967736482058308226218264035499386911054393018623248772434743764305329404887694267669560679734229807462755822647506808441410019152668842902464555699990474988454967122880861611476389026868109339519709621910010185045854371355672993348658490407422267502669298560973785405335524291428228501832021751509791713204728869944133740900808185065664965516252971548997232655067491627189720507579167813574487201658969707996880279547915553207563082886485432943911984603611345338969976163743496820336007927811336424317133666540540961835277252681260813467750450737182537335205911380283139363610664783028094786231096292045600649763249648996348037432236083325444975705572817356322147907948559055422436455877495556544667357633487264106988767047135335488135781157123063395612224239400225974152298284196885276353086885091198031352072356663366394795816105590061969057666438413322070921031374287555481927434463646769908605799101176665059680742595761426760155694027744091748404187406707170673033363123188848237873244380602445932128150079489467469087856168718753031440801303737779683312728353315123999976383778786452792963970328790803721226316658595324587515108195477302368734706269861702226854171224675735710458765684918361092137477270729022811318357693387306050409258134672650904177354059867733414063230939654363375899282045347003294016608439054906005163394006941878466198365292082389455475463357225334839100962915583550037186099141745314718595093084561237395499815303966095897119731948613770007486798627424251138921960255614378868483625274429060980053387222638686867131962001276717809277769733189944456030785139659960110445951641195635982078332926482145698325473898884441888902759677157807141421000343043974144185180877451286380268541342259206075345760564617270767891721990163852351532243405618315870219617265842572514766971932714009722626504369738235470558437415013912924523656677861446217011942058705612658300599332132445275757328432352212986353592578021650582799449219306709006741204730809863064058168829406689963621255948203449778872919334885975518007236102597721413152073482476975893671504467033835708393176159306368904390785548147113294755075979957223772310241541224693314278992989081596264012842782904029043478040127588436569071131921197320552118845611961944841943663363805858924803196311466300333707766531572184007862578305462327117643384112968771567985970969725805555002220519707078297275305582473529208654630893369964857059667877014633361555118696300483760369944419963236973292401158143635350888521646858917821302095479405378392612875398826742903459304888717210342622624100405161863767206713425596813934702051687885800549339550522570519131252388184162022109634609952424874656295479238509538811412484840974412442853981066697015688912823938004061992237043142372808547305847621256437289058581249447533744503818518583560848906732960738139229894693228461591687496722778640375488240881721112868293540681588590868946716240571788688162512668076580354943597971792270547989485240603837856972072154591020364548407014572613788830828988406771998805011854171642546735839668533357636819829373243077669427471639050436349013647843592788166136303421467831110542067101309791376725499303588065665656722599605288580339622454930189359265964679382148249656502236125715321156296894756163221566522340029968590106463550004057421397511748721730487070060626420040238638686105320407472583446727117985254543784476844277417644160919818545633658230669173116493994683662166857962961315786167614176559188110188177160448085119424147971264913877880618030391573181993803311450185484274209629680290099075617713217164200769054518995888461275450248785015761522716251030634270352196566557565742688771851801890317605033778001899548004582775711680016272332584721302692025044453554469586630481303957112078866828877212223496195562639130931035519701792548732675886208230569081985342301083129520461818729494224034514603920999705346254170537325787829963454025085533665438166037940919192313493308498089362441368737262083556689332606653119382162497615334677886989514380174370237580122428677221380499314851346400859115191086975455901840635081117550507960394035743329077804806310431391937667698895422124692250480619559728303068053990392368237509806493629486277729824004363324903696970412823085646897980868792829426205816579459025390140894110234510261932744067286177929159374210781661757578745440252950914411144449438055341768375369714322554884700546913253756294045258195616550843857988431820743223329814797930406836837135089265413194879035577999305812331277948420902029808023910554252303955128858055599385202797317623376900109602981317969313275668055235249348898319235895610888403048753176345608243745712223630068797099560267859202951449282288843999028901456388923654385804003971291783178421039966472925061360299565230673616505458289151781886400416243000971218076009870366679225371862235066024621137917413090218973175654713017792648821884737795572768003622005481944304471960061095783706760090240117763669020869559070296710267920978727797436174252590365405785366838678954407627221818483618535722409510377911764808686251692302073486561027342784623882903633940185303180234862205374419931977721023241139464161612909621564314107146595458181226611287898247122640622907504665488572666714100484459191711026084499861479616364621310966915197155009819684622784640133268813320750418494879767652553792614723496793938941333243124098550460930390672255913525088584877950137523462440180730269333908064274372390165519190841320733395416642363826914016716848370371031902455138646943265468333936297554871706205647842219079221853904365599977684656611715792056924029896349264621822765954493546128036036071824011455437063046289471926515222384576180535148170948675229325477209907784371144971827171717871686498784429484365684363227388906686240801403409396689370779384320842818991080526071577996627332153677118414414695176627956859704894335639498224158817822604251868416945353915887306514465484048257244864985450135492072144019179739845506782594845804338108978188534506449792339088038222914236657854324883786632800495500781912145103154036594631508290261929579311328361837696492718237000623303735708225708982028165479738413767848476739366833484074520830002636535943571248037096450699543813660582255207052989299339337301974251748646819246306934369845515213175741528381171359065457017146639780317547055646731720945587805535982852118217537675341511367717163786946845391241425452899414098975036777991685728031898929467270082659688898360948004035666631193235483707482232604500143427594020925725440281156928530018478258557076431664205686346209726852884048271500055669390872804380684742611057892158737522499075713748205359062614896067301065423808580739184377964057819192572240286161569162068552142309151461785736503734464427264407858743202369895916998609220178087366622637931117846722234505805996780049395879335389504321570764611977673448998608266880757454503764943075900515966289820691116481974917520855374137033233677414439863887565131157387492283533326938227128107384331697626230716746041892191238420830698987346956689990475948518534495158421962251526227618730514040402818666949473328434948953634327407630971772139645565453438049748501386565313763707999582469051355815402825211772746054525798780863379715571790648363649064147545123525709053076635212249143965582057938337643587964133756489099257406353495880100906756237721495602305902464961388072818388988132703129455776329971153620115690052580090459027167366892411518335205042429813443323002151358535421709167323970510026256938427820557964992572081590189672048161551737927273643669784980994201165307815853961910141312644476375630570095719721646327367047358554120726878527332392270379758833697200185155179329702364534083295034825328150046740131464049677677298347671930674439068102997919996356493340587627355534505662534123210080830663866965510776389690089004387297050817444062331487773721913721322802911475309283573751113129481147166548661337499507273060727138911032458151219064508144992990056724935677109251327829673683184901468163613702322029420813209405465007493234137491830033459452354465692652879136947705961535809222532079948428261599140112655247839274240859075566223574170773169035638806029490435116482059714033463078742947471323820253115888836505100618009512151740749958438197969738205618527931519888392688756175543660141234345926434321412071669201851947613000990478153155812452241447173903076157408709208608242137576711673141203158405689747332981888990492860120140027703437586981579304411059483725716192925522667073471261285856937622508044523614222891790644410921126862039296654273379408995638482722279084285500868541474534876211825537121035737547706981636601732230849780186665672087310028948059874038336632821095892956058854268473926358155842606139042393638057016101290105999322405807564668626826039716470383535476206521093187475059457462489036610312694910588212469345349330011611929014298592338085274596802199115605637458062800076636013869535028400727962063214019409886490603702388246288519347581200061095955750637662062226175046570923592734753018659748367526344346101419743666468590125379378018528337650005325648719765175334648855611952080338549345160184896968959575610147687568308439353807249019568549755031716007877440210352381630551082748804819798055454897421465634536250388134445405890033418540016826381383728662774772097980247996315580410486974898403397054328767713298562736964962492273797901610148082773677801560585469296851784366328764267628851619711559862718817608731259899374853313071369348523373924902689545343179638076773546650524009562900622351539589350539205658797652927533912422762071379941659771164242235738108304597341127403400239701995707861944058782312678107210730341045375217390904278554494993047714052262896999864841869683530705814745193007134472092387866525336083966513221074435323744482993510407289839396107502305551860050492183144505672666647797184361729129585759703592933134172604981156151460997034824368168439792198575698033262768190726428868138840900091945436691600970743149290659360403058628400036153623182139246745255867199769702567407537094459445339121384998380318740599061018298499142303253167006836283640154391395479050253850731765595286862371395639553335662314811383167913439367564402642545611966830040153808692077891810694617750694198290662513807131132217193848985742523903984693589121171435289366313894455098763746052593775969215554258428204141750965162518135552826863035941012949993754709950806693840377369145986470724598062261847834701956747154069549247076086206223439010912849904267689192098449266766224083318637817425693643302911772502925707433953371872463695808866149919104696722871387935901346187724957025007395967303642892031131600281622577936259109940648885021244854107282686844112352264214814782792530131871390319163088415045057826795405370334843959204772280469332830777428529351767915892783838449168921872959934700462424470011582767884476500780435914687668343562731710680737236170695009185750983586244082859830302272404420554020984531319308759832783564757826339595374329156891426213932464257593368809204589697068572751197353488175531231658837739162667689933574807861123467937518505560931049389740306191901905621489504603386477742493016594298348329181289643917850107759873552246700222323904201531257906698067350710512437163253264382414747619079784421406152451901267173986072628274702525161749676378748003694518765959444194335319969784411640836537509742015326484946744655339989641207531242647324535424059598819535935413588927124387143552015103571113558601486709895930464638345510268425987330494853640525953298869136033279519330402058609691283933422794082382548741943328978739834537367418234528785497782919940310142297487900242128007365946131863876430492254390381760469851261800388970907522861308509471435374576847426248455148039331379130324124538988640558924299142253926617867490695215120341477985796961784156762713474330707693221737189484579350359133926315385508148319573702364732400830291513548924123502873118670402823002363603776819132303740391910226555308478697859840711605839446204995097543271092935412012024983784403914167405059105324822305214138844662082282820383545586383857769046597041420930182389549984047306564923030128500794128926046495469008679861351856026656553874321178559233952326002536386990275383839072315429763996782419867646556029193742781118081350897408001862769250386998185449888314716251628783843032389934103575300457871719119960922609715077870112555306078720519913288548875438922622368232311191254225152665921632473632273063581617571766007386879226084703306442494257011055928106920376618791765916724809722396125222929869330911170399335592125852540508106005479616224027379620334617496119137399238249578010584236588023382701870646316216286757823926468183634856464504310298070691213281971616393126442179304798601824299874388042847335236954588694639345987410162893207861091615012872811839254534318062375091204916824769805124624308001691685144436473279065911119541628858747504402390591179477302280472355592242194762698180426831080382349212398178963510265934630905092191960650812088913040664574161331790260951895658913583463014511678613201377049817053498405832735475659705550507703068752477349186711086647482777567400391676400465573509324127444838675642670080539776892654085642283499531045940816730426116757850048675486875787664531811010825450341289284024296877029322295917264824593229995568339765455406190489274404130792680062911517975468653680468894569280521593492382053370754009656886261867108101365176409711210365992561334033319727027147553028486718618944868549595749630251346088905854268649108666671788596781489455907786239572993358875172845804882920582603521990877387184742064471906433223878667009799640237226371081322247021098291436232305510661710795509587949157487396101309457746058495618828613482152377093249895677932942255576655365190491927351396895378879823267232829320033272121386199968066515087444917173877187182121743878846474313105638393660064994313050506544798655684429592079000437691767794312887068309146819636275484113305934238538497126979794669860228276138700535766167897854714488851105849026046405810068350252590606096328716518646462924264389047314147130282833811783163555393585707155506347328016959493327192922518536551688253220366922446356627080052878357164778647778658178056802902077181205489197574266883206096121697707247981692506663810507416244917213021217026628687644246102312925738484819002577178237858045612305709754875971870646759252300111655688512938603766334013290100902775880061310310893233614270293524883721577148372512218144528420168903258732478980609046502961835692321633741993067954627732229123842159001841006795775178732538635448314617530135225766675119732644829528575228990837895044239344573921044038184999669612357904180871786817085639730632983554061561353986708692661557077141965613661391874083973126244625607112736768864205813621825139018801293563134686803250655502066457024923199677846088475239051268877122459691003883151641547542736735547197819980322533859764729327512766963924348693309499996290525126836957219341847794010027635544388083231831960889751285024477323749445695760496644314986711345491429541571374848002463380203764565591132331961662914367022432715590260643410084383416260437656985043053945649109172801756004555616341779979424879158761255355583605921979267066519840476893696610237880899846796995712240962362005059271396050622350983002138623929586007674540548799763849901362141931148838471117052621573714923233636528075048680466458258282857241454713112318285554189293915884627720999306822017556247794270726842753487421877358363757580554877613824545449940812950883139116662672603960141924344544548887824754296299657783171906841325452089285813176543180140768049992910331373297776439041752478298044538332893478868607321498232453556182063568700809940802378564785273660169677059354670834127932318138100457254488092254733861652823487923466034294548239761331896008211401267266478371990591245313016891129782221327590896843797278462610623546113275468119939844863938067523262288874882727592987685004849017364392486794972818459392865678844780848623455507788237856626994173687188171765413252141802764409224168047442191336315596969791214129052786106358409113830056344242564606062920739072964018354005265358814488200190718154233168960488005028902648022000821158826771486266330220101133114402151224206346736774195082332064766751277179193158799542315875627072909856221916141760088057053936823463576357225852272566244706137984556101975007075130181655056743083212995517314133072179489788192358751171401088383723406370120285758653324329737096811654735437412014763117937588956321587204078801255067585307761926321744162930371968673736031831819330608479695873956292478465154140740249590310475272443683898313767168104226382233389418329197461065943728584795921955189463904127120802434879621138376601679974790619879680704073417919728560439489379415377855344084759201586768448265965153782447826877282567504886666156476959787997216607232625332353860322318428098082123453992279114479578771092969798791712493120890811761507419635803543286958558651710313349199206421495042015452432778571099358129204534920273275104812562770430968843504460298954861217706010205872410299758343949143686386412062887197753600440201591199394571195872577524606812286235641372034009277852123642823394402796731496974847736002859928575499174937131241945640937739992048807380436337585159844774676590886159688238361514042809153254965908346388215826728362970423938733508517441657748437016234880118391033070705712208578216002904126929917188622646657047957862883822950099513532261870859168250802055703629194239154459665311002850629451341285148910076748149590953499305749233777890676569422989384583792907232479310139416271155804382516044358762126699715117235219950351652052446640885967538426346967971878260377703235090748026873533218601504860521924896820659237591319650330464229611767851324640010860746792206614463153540029464383444477039985476343127535199362529120128018033858777341810837017592630919440666596623225897076573130697316712068608173106343365626112162331111175795829872122267463553657308258928871396663117186449774764682257787850696252603010143834870947790118102623162038360530601451372849061185856332128326352737746815026517456801582524077165674751266097307449524608972396598435206056016976537557410461042138283744568037903136380104182303694201226300204779846914715923157449696182377562434440041634138190222724136715072546508219263501131719542163188483122591956544590220993347899765038425353815069977790967857656781729536453099520323355081422911797443952253120577065358778780154360674366526654474800355557768312632028775351228168802817725464396500439901385513911641950009796152284211712970109910778679191100645565288877297927529688795674466045177889892472153535648507901648258802989411488954592008921589103148560375958964793430308820653825900939048658850812094851486934495894569836864914875056387840629010523243639810921964350953296137276144869956969275452451954438069820287192879775904178512208918602052032015030300178233679020258738530687156688858457458175960646179886903626568572846706385667402070315940459774483358954814791134546345023157540089081130853640143087549116918557698209335455722357696441143384478268581916751717706413967706590267560719300505295651792360615058957127185381621753348531767473449283109563830506524279785215621580118837766208470180449268338139752223334471855367684852935177093793235856752910741308750058884890087750697524847899851902922535145591896989862507979141117725899226308045638089224979461533758127860705364055077205749178990533134860392287414260524228800096862957840735399512587534647382012918132846247211599008943394870366162744349322353282628248174384473103673415367286837178902318359256091304451494292570955750846309156703040526402160501283438114867675521444618347431974258993122065157852023208292012255921428940818572743832497465281203154158635105863518177307960326408257678299035670646857403463028194897622230528551055482145806239843687367675798054702122628766029243640081181161392186530364896424307052618807246593502807007172157003188139117602558875437895081000004698232573232522684381091427421863074795432340033393097620653683010535650902454572727974338372119716026715993752622828156205009790627422698917548344284933601452051965599409043101181187721116907471647918869998483959262221401650936842831446790346397481529568609872295758815032598658613310737646830676769524691551921894701287419196876693880175232163973181335180611764551995068374873439874613998404830674243809258348096980324866837717559606055559247794783882415473506152527618813631346784135025534524492840668120269427354098476711487419655602400422637346288522617531243521047308029210256255871875229891531597947360544173230194445741219299443539406287818387109059751887006824487036262585054105387185841577836529728576849163094003166213117362059782356518026892305090442446137648651246346034702629708437415653942180851457511441482753253609322872579321701470678038130435279737442470537426386596243026759407983765823467791034972545190449325542281597407166339413319506314046746970727067568789293274530291078576688790855161953619006372200958637148965628451796850269630050670332769777757466487738880809542653952722896444913719755372556094894496016453662677061741199096542898417339791409162007144826237038141682203800733769161277982041516369650829163358760291555174921812812513462364907103656250742154513145178594642478722660076631417952655023035707464590461670972394533093283464333571250376528203373825017255169465312850593153616971427158701459765285875313927528637454492659805860861421601009019190309507221644893533434053024439133172609095574513477055053079043272778933134890845064774374265294105925345100658269577077421599196356043175437794796220608002220076167810035429187854036149562074247367797740723975148202240163714218177317661473508342407172470643790819949386043657023563133470332505773332444677716174502378954986856498464685948336514651599616159140026998568013338433596168912439525175186410331401228235181809971902659381321026041391224714399012535232572300904263219031416805385272462181979225128076882652220351463897629422381964743226320406240400245706209910330326678684293532202823557819340137857307212967161387385932557258791602864749304421996696445155894736519720837318978785088654853266888558398804805335479996432670904998525582805174969857088198332409461886791147909349407459460246718348634781796225584097550159189521810966975453488005236346723356433538220505784239163358608272976855430235861544913765639701548788966866764192939609454549876513758461445550124823600828233829679199344960230800561506192997220523743109807292201690021530927987984087189471665954517160600620161366025674683454215979756309761966779125144567728335087924732941738397404602547093405197932026607324678353495144897498334463268607652719780895881753874252369583309235100050852881621913823233971340939145467228571398512991272700874229272076359425119169870103942420216995153302838374513013526484411853833649880543274206201628903521394504671827244073149678500033243037194636916574754285312142065412674305851738425782770878658791425412393344031134906897459565565786699336538514187228537113628078703703257107871676503511051474115961577365531790551545686784961893698227458278641041900000838480601088795608899213004542591034562942148647835357454411014985341641744808306152243740913246388803139705655978586221371840381463208410311142723897478661355050721156055182014951211084062588635647094596082527210663649447755420246569648360233465659785897949576036685834855350033220088214001670286392671793375352619639864060911987745967368723368270412179496912278692969785637677043447434224101964196783919760903619124982321115544835487225208520536507773063743539328254939802417304235388983789551044035395909940234126409477443503644264795771502971242382825064773670288106439492574449606881197742589740030677974980496838678148960407038199830590326183444966898665405578488586043315204982523207216670919518421568655752468643997560858809217878391211378321305052548388848754667833984318631628813591728417006225564913946888929253809480304239155504616939997089337028990809149322045297531043570556681094045445177795817453625482876681004998218685057186483638717936854139841329066232799528462303270513454043272936855129478064160866263974159598770937744542899765086489121505531765178968012081915406892537814557115639019409786288874876711195653396304836840062204009042321497530807227679071815160156225303560426415991750606425685654067810923001135927007672517285306007363847687801969762783198637956169183449335284803306678588471331809443446433899054544165966504183498472417337550334689284428969592443169239231119565796947601553171464048021968245474055909918924894622513672755688147236893191995871393613734437789249513216922370817487556763113199123179515920021624398599993608594124096533950255780379726380297432012541963418637946213180297651132954970684629909489454347589685386951446516717551675191622712050966283182649028673859622104814971913478000158077739165889416456023366368064798122920599988738174767452534865728047848843338821254268292462231592817068159887264049188542116773798845275483357625990992186467333888001680738395752620816075291934996452477561799094137478535351827501722034236926597452990382530366908848023903057864366461426758441655873525194544577232990317446424119229136233933955340323486478444496999995475409579106817962993847476517602214616575250035039069441805020402463314057014227072120289907602398528512656207947479767897910287948498404323413792570974012712168370534095761779497857578404405172750179759037707632023442889069144630093162132951295004163902437130530168374838306142740283767331953990700709437313048293066901993306784714927732388403868213454882334956428634834344043305499151633074533979780166926125729601846671280224167135604703134332599684380558143597071361630953575986572013018208091708004051667807389125263025462099884287877537140292808714379289559225977059150078863866289075257281931253037947400526045718179077083470042068779195597949624325279015996914124090899245349797636120119800129202664799853389339256621575404016498964059295200372783163016373977772594449237930589628685060527934651586751805497176053572578369201106683464003997993152097088817394635795749690394063387229896813303526020194882391719846633254229213888726637258602028954098801846974677852389613453700327149360918694955060200152368052829207997830856128406807268178887407702245175968647828662643021326130005836794737710189010970923958451807119483211842377661026913659451704101305478722223154646805195798283661599920846891335299970142915785548921781837937270740964789052565374366223813130743060754668096130887422160446535810174790716810296620205515141596671760962604714184456475299065020473067557564311870209653718874275597568797285067273090929485151794922398206539171747479552495977599492362717217596348626760272128089805359469384626546500467316661922638814046953796809605392968028408041591640128115245866041383475897541806929770506061712479655862013712172019953499321094475958907354251961815690229031819144373703070060672473644814732608133788560532964250565002448448160487744137387731457602558091384457850059142440323408210700449179591005155253430129794754670013352078060865869933392506862136658815046017712333908656671791026626068668310364153065345123773625481075485233747583247836240494226476152272057392561018280453601794471189473802959733454880119437360106039697634694416425891103337102579961914547605198096812477126496604201864586952467006729347511947364379243591012444315093291919926744025997323287215704207315942832688531684039933459909307246166603609371251797994542260711387984762295348060759768520620518139586320688958993829824085755379286799940655737029597363226654141085043304974830857879909892989376063381965398506099564084469575437152748326329558877497424646373262630056395568798145668821066943601427149064123589508211514508199990164496653847170569807716959591804374540356460041459437106469812667996221443915415370280513469069146895908758432797981012474121852915009541885624094442877076189899779389728880167436606519538167483031687399189322260294898359479172154211874468138259297984309455948365198435073044882859303415639144337125187003085230725612178809406465517894232893623983770395439829537248039888930336109011073325310654741367458595288075106581539194318853369012912380947380050302975165084727192668832293396937168940020752888707577436674876538707948697528013692696143079497523443669436212413507486812677822260798009501722819703211029781613727034954488987797034427570158881037453582536091318275571981728209814472245733957740835174447761291295570857764434741110232826594195169390769976566699089151278508096689342727945599427853777710447922725759183774747291894703338263299550531017735992239759145984678284842060017917489593120801738936784923690700759615792612496921246696886518850151107767857306819228002235670952555669120891726700025053774000994920136455678292842168792677870034746355148089551370750897203416045802381302438215300530801495648049442608025408020377572439328467917469533231795314271174435146869771789761369652105894189954217198717438069097027758126133572246669822156741164695880157379200741874749355690724217438649517976556579272915838441413351626488671483816070687483209731269800092083819873208154529462308169040545705204819559229619204330184663689113875451647100566108212968460789689370702912035671050174070169393214724492789098867646965033248218144812502928621961134631160366612659282563931289795267459672726875651590959872345535130595763159722946190837610984714946912328385006660479221224249201419231967365483454693725760240695813647490483320297434248646888684019377562907738602443663265287509669292269112782301011648331407703930286037854336447858715400239762784551106186504211747425694101534926560788715630387872034946850453092194530595791398545047203995953999741393177530892163878844225051142310163389615407096810686206733591695632191749141911912016597182007391416041570443912800122193075420612916240916354352326659929013933239865291405765451977540970742186339344880898979419297610246547111933137072748843238025948317646832130660828772214437112428809587568129879018349026261681833138319707513123787872195681984263384886602424672635531093888602197377291352177167235589853040122957863245855238857078137203162125083629481963887290620370986328639991466742353447331655507410087417276501995963838432918129861359346639452685043098363032189242225943342028862011280915628568648638390183033374015888304836313035801059680002235789199031995280558055878234393227109654194199810872092428476807447502567080127784288944446720979452652283880094992327427126590367118364708104134354258416578734036374883918533690805929445314111106205774897687905780760820251290060747722906482581173485572932873803746672980530355781838786145928244975823517356763212789105161704612049655364646565745357995477341821620672937684627153023883986790946173060425733397380084816160906283930434721070123864325794324198762951051529588504203145879336937607725532585074373492406291061376518959824005491005162985047137550788588269321387763770346832187484993350484027795165223703501492456482234525977475350578015711913026996799063074698744990533410591255654917237499368472280607446950407037652825900156376472307374135682018389080377625582557251293892106904423395559810276316026102300900765088891490860814225504476340729246578309330972269398554415812882160775680350007557322459770360752330103224023435423629134025344675068534724696941470519125267410808952874260085888280841291694090630141971039946516949102588577906299275657378411423050152165287682541541012952362363853752270986270740963983211481643842066586627238385888986742720103778823205772985314256583367258289508929105424351356681823944983525481387794579746317939115574089233267826505577273142649431295655941969484313969339061646322242888680726393372053087640217559549516579160258180376932978350075743736589661239251524477347238368294401085243357307507901622282674705291618413159915259154677900529922212852804113410575841266033446425393016092422794463109273502519227191986338790364957576606312915479298425582952824461008310040673835723685984133037406003430738519902934369106761281310375461882677987378401280974580009460711307657020957192559609897370665460340257667639171608027299720699342173981755616936498481969504661341876113353637494153015328974421965099653425409222158105657677293151827245502517540146366999500516807335891782916268951628789345045656603934422553298665690102387757465621750894267113604430882620138909499067296653048827668020176747948556964102658371225746921892037086575249480913687503815155471715139770077247562589339251736459158609203082672618340395908877689074590808301869423689052975531546043027886031783635431867162217645303075414066095654739867588517047252760691750538750939182257640787173977122014149794103326306222059702808723767553439536648250103166092004993425999997485818870755413203776462582253474060262057015934831665839240656497445321382112218556064566270905725180838255861047793670968642458194521418956849241088237301600426785417833592211528529663600170588089325680027165375475008103577460546917071198828943521423005489491874295026031589878945826693054181428990341101815653773660715754494050790109189515682930876062787032957867149239744211882530204863976789407844136550304738352382432332670347043820302272705380319999192114914305773345787501046066925046540027976399053444079213434273308309134536206260754413159974945924739214086944156204369566673835943126481326133477782583194188889736136184099096356658785126888075932946089433653363809865569158649842582788476991436839139929835777536407498914725213833977378966147356818726834811939778254508391832729930432665099260685924287580564409785736819915179443445570041903788484640886160667637179652006645979909436318782580437104767720036008284373465805539018667536798020757651681135370300978485577060494621262055332461886287045665135565474954663847920417588737821253353861498177775819725114595431428881391748969567773201203189442690041271172565199383393439489182649232618924972192814522283486798721722275976146026621897133369465413210505187586521541196584792723465737751743581892612867187094011543235524952865550859867065250575026707562626063285073288680412118690657880874684427985693074975266248235505617571537014431301694086972426195612369388754381276276332376557212082015224109227512855833259744601649346309331428734082160925379674526261049901496292175608013429891603777651364032884162537092223799188672772230961204244123147685737765839458586304687004542326941527081381675009305966111264985985461605857427544311676745010130581512229908845579124221422304016235012035209711648768039128952519414016744110253428961004451512692422291400526357454416698507281428285855272698408542542438951400004109234053337773643167053602007155242511090751976326617912264917328379151490487638551410129352639601047839564809881136904460847924582369212877295898973610790171350539589933116700976343587262439989285426785946719975976160798884243776463686959042165332865716501157915970398569771235884950801191888005235700679422784266592195965318140768974657771168590517019986149729527972260556931098376648349751866734040498702590772440312453836827173214080905964446611554497302404049566690084818992124152413751694516954802521408946041986082512953562341633343911344474654908488606551435036556677429633239898627764845330038112125657603650428369393341766627742147133995468898141159552795936054881444858531913249989954669419128552519491941281312487158687906843223260402614704398787627210142666039062463723682340379114990981827495395122381454731383480678976941651425100516930284428735494950956312314452305707958401898219836858131387678395451440329188219425641779346276195510740239771435710217191441357932066971713539555976111743645211442255295994943920107668762988661656756896120976837726221731620577312582014680079015325373120935605555214670219502496218477415354411376896118826345160883734294545061846339422947220157323630246695113561152647816191635543491659677498928690491015775057712970246272805826048772895113766032445799045588461352566665892070465009055312283405678575215175936278865133346557515487915119981378833121690912949875397992006487411626003212690704531301011070639095477451677666248825530334525580738185899237283411044305450690632895296469263751790503523661594913781724288178047889711344522232429822425214114197080731473551937033751502233512344933245051582465062428005343282227563584169809777834009979888008483719210402501541699165061671001937466588346325573940971294470640975028400563770535853874614059018730147190557909588598817337203171756873003461094649534649603062936975267964613567978967500683239432968822387595064048702970832513395730823760732521723961055270850359102625175466401742919272392573915611290476339476655125233602701295385801597100125958232140568525513580427425630529410858587100427554018694498226979150251565629647616061512651846740390876066964379583213387786184715794419815377921660099323537284073655382170742140270695981057253310265178714633407326408592154654845900748418728853170613040364214584321554873066826959654184159790593277651354578415031736106759754251882247205036597952131874386363893195173694477550741182817985519207676534957822971259363412498788317499832582970824670822902783966057428196286648445122887335305757275568438732008231854017528814170457436482687057221658924261384021586940920962282952458999198587327241632097190767625581655395377027624326548154029866540608356079008644170536060228619895046224053259409972903248408469238009998106143005902738972266798575843632416656129401799534561081892428851140668221261549921707239346536217960603631316798335461854196615359353171710488491814333860782337697884326600808345529388144810347613727046968742408623910966785512909449845549934560320273325296720986456504364585182171072327675328637126676870852794546341885328383451817088315049963769520897947293035708077322064198552005093543876179191630592898477880937419245992494847685837008181568002153824290325192929601515746859137703637890620906932741400375331610874235492194835304369047868672073753865009037329378211893620780810331550065567530409921860554459092143911658055557780084411549123659555425188325986459156786665711108176612360565837903902109822892718669253880082442623293785158630336263191673134182405261340206515520073559040470373864191721928971755415184177937123804400048480146344342909557134555743613076935621917495992360465581286120421410741512059170995626939608201158083922710303204716421284492855563672442368174215532963436073153321897671823668302391720986009582148190891126963255855002165797324964108791800630263920899412208506961120829551015380317587303916304924518557411633075486802311577788933618817902040132930239382772972394011782091232848803951565817557035040810452377206532478379590898970983282788570157299489966366587384786846797429188350023579199303414276084637241079571733342139916630979948200453021394065920735030618533770844414392164540379779058388390912912141137630953514580556484032463204079429170191247037023812362823736025547180132954656209397610533228488552906281862109630013664568511900180201506426531780639426934157477503746766053692113695541814262615816700406279878068783538706338921782922471404132804153490583030393720679046074562644250211738550305275807754530278436250607998570728680487502157647075481510173000527389766650918523143105290234694324153233214628076121536939958632634713382874008753441401686009643280291921542834323570593907592119906584595262772004615463054469712182269312291954634422394177068887953836467310602641528508289683986008606501410454704803716840071536373234091802633763191696066481229617105301514078983878771568494079213519121160165797607768537479334706271353430545252360787164665010787163724654822596481175711749587001624157171030963311038791016260389464523301573763844365884337496460879464667080797525473052903573421470955112342001829291618688343751428635451092071839490963265835617430773353626304473095492201273247944700251955742727403775662765355942984998395113629739574228554952960780872622462884567076653262954057893467533098381981393054270872866813280426344354084277284429035317725772480765400897884123104846311402017704985177316999760245275589564614196499633346237402327845565219754886865884125153573376422409031766659287044117673547571285508822222746880906571810855335386138469547508396694735388060703044808441879578401141365276483512098052704216172905984035976863027428835577169261550207118390847296065704197591252591027135627977622085320179170104116861547062833495502706354895648250561198880998186086041268756068039114682911346821568606506500949614139903574835211888918698945296513113926318276773887004149477062945534121732887109381316112582110520453699149257670802257963083908105125187881808705802618046462805276573687086212005584609837087222909202480068741851055124745432990471530091831402841483370726090785192512054307399135860534899886148366590764528190447686872974791070622525374834359975957905991556276685575721259282292058205213689291454622220789089374861721047576845219626902525245329308148406945030379567499227413587408965895482363291212383152364791042719380486500922032911905044644667663635440875080925370503716293937530802523575814171665106485928905009417858336115155798328734458743745237340951102968671814855368907405786854503643412362192746108596696393897339121318295686721759480649041012778195000014718771233734847466676350235030397009219308140307156165271786753506276758887009967523177297537303852714160286909543075569011117215327559912941102415122632227279759274384578159560131166977078408714534704365234798436717219665285928214310413788558571027597543439524141773477912394009300008577177784158558977516212880922232306041432157711183517207795801765363541705752138867242095904230895569644623583813117125558587597435607724894736555696044762796813068532603228668945999046621776819589490315289326025719924338832912473962744993980578559049806322779810187206241794987452389493206481344685043778350961777376314926128348227588394284515752278542899463098292660931776837688976328345527406046205724116056960822501875563835605807766891392440210838973851316160881170203202383361250704772507582855395550479816221886832425775114680974516562509721818416065111024195655699423014425350426264719540214182391673533979591947678514813368942265836881862045551088293327098142287979271103923561648225906032005770169855319537784776109400408514635029810239699694844096606542175625357866353791255376814035953801903726109135242388843292769151399209600991036400536033763192366570208438553640075353124553156940591342558531047014934542459618182512224171546125853879368562158731409439875069780938812052193860430876421349739374506446646437614589262693847756570447478717825892953468055387768143027018451088237108359703489298627965833101865843017178149324911064049686055488330887439526120102025534654703568775945143699080909168104772332792448877944307447512203165003795952439819636964310328735379525406191182483198478401474161590445543528289281394790029107420922228580197836597163456478208522342711530475798437890798702713080614800022884605144747196272222073779833938949251963419805367351097777374230051697206292111749912336447575911377228206141546795873490482334691702670741117252662883237624931234899691703106260180765458943303321506520889538915971722212049248807543393063245734275910014031916555649675628430100449269377640008423958175697367464575504220879635035486267712298570008874925638930788144692857821985797000417409074795914897734435863056261562686249863273356747098166774519205240799471422609597019148466575602320542180510472713715194658118509937835793788284041468065379554726038874737295339104530936792415796384989455602583251780727250855148844021511128434817995188621667390933984916165520041560584484359440682800420617131526747913782549040202327409897306360898318336862522178648245476568729836932716338270713911831200176258185408864889762519604626832406377008533789027463331391145247904109195640702770646248309953990811954875311299705753317046625751142268311112268214874122325779395680056680257375930194521071692828369213451941123946965818529780990634808922839496632189463619587942684204296295868765910544403186628679191729924498509242574826284770470956568330577081582855196256802646366450965648887103839693027171676374354941633601054802196736953179488167224151869185129451919600356835245549564757479549888067479980570061781430425404034273517676075442079320992935189765203554716779411528790348992776807662394300739308205628881052202842003635483972320897436948472217075520875888339237467558915872962210226923687195832932727497280841990931965206604444412018114465505464683490746415881426308231182073465039087166697991564081817791292754496256532957723315201348163047721754921339355635599410494983537680468017293110722988676066720379679578669044919628588999547617285258182940324898709991736088783668399534020997334515191325472797391694078931469195329495714751891057140688361330547266173995594643990527941226011134751011169683446113396794183823679713202301654319053620921943497473209602597620392984048944827266817080658120149317828206929202558167943858261048195733626255874131375812478863165436913649656734792105769915291030900077281604051278351435928999807142048912909920795622438018216495958708545297717590900926381524942182972930250732852536338801629805810277378976106650162879713065173944533219886724480427842304650780884903208138962715715127802653535195248614385177647005403210583679514270044462613239540313591550200047036422921752007298122457042803485077389442705851538667807521048733929138870970393528808059355192210990626238542885632806629261511328109520037781265514592084128961242898316234047950858342457584548668000777260905948624997479757261870435824278923285022073597101055342888333712487176954069914106895122393995024855887705490895514526156673065379059756597670937022136965151104191423122035629922169549385375164918861610932902028701399978329005595541884619757629003784399451060542434373292213769002327149725710163782890329558078251035221560691496142827159817939191224409116059150963820941796561994634873449476625374935423258773275641420292143862912882819805783784992389407170229859027168599405220481885261766700541616482764172718075151899907037293459410670716171782803720439855170231706336102846017316308106620331226448132273743847339868576852046876009662258890190411353056750242719236937987604714733037242028613388931927356291802142841674714052862370526008541139463841254043576793251178964584184704410766995753513906260059802928809935582723290351423956264560342619481615394178767048074984072196265135701829822974878824990799087577766113309217332113421057740220502841179024252704346955189272569226038396297197894140608533482465982131323226798975202499087662956183663376559389821642809181515260492078409142502178204717758276089695897276455697644520111480554676126820104084705631845476867407653143781307402033257121861265869362041867710405261346905861093782651950876968518595720371775446975713147830821660713770592104628420065615528902206592578879152460339345534315715814612618324865787145502026315323642522913839142565894932786489564642517274843969647937610231128824723294139171784695639030859230476645366707111153121381933462574348836977597183629005098722770178801552273597611382723620751003933250207914225777819235109695907514247438010533312525471661494882463553231130579710500598443177855016129729691444713302964369145202217116298369202688205994256243423255090937965780275853868586807943901434537987888262123527053930843660048923124778520815238115942179294797381048489559163568417971363883509242104340055589363564808065698746767016891214780685199732207095458424883230266703289950898687908797614375044342773852696857013806850552802666627340185298770757147297744205749230961423182905943391995560456850099292089000712600647917073535133191091298658243444651121981259256669022009177504003060635557236952772791889260017362650340905365736680805102318975990715334811970231760288120407084493828589314313596687034800555565746207653598405838076386194252869399668749500350906222779034340053705652203967759860646961741139219020318315552991502938852748810798808947586665158545617591736395672024836889464071813329555758817043989476806421330920865878523463532754233209939176906527252817572025727515332226756326112409674394220456843345736251619433341813967563645554893623742770107117255660348536689496975587323347356265201084670529600949145360271095905529392455453666518352380341078802610648171401742897945942468808619224209286609293210166951857404885697503584325649716124744891147402874643817902856416828232946885034635053754869474752937698605028277495611752264674973130456134365243342704236370129306706378680524617762222560296688233998737140431582682874325387492625362928862464950690271984814628246073601477806862326689925162250029739747903658915677265381562298222815046827504821681777546929688665473417269152070213601716920676652233750547697819102487782774768678870280397296159520075268099554758982532432120814930817646648580943700963810847394306683994735072039540709131990548967475240145222680423256100872643401478563130358433945200581408437619136330204148723766484053203100198013705519679625207374248918402328217541619035366643117459197718591823250094690953157511055389713231563293086907588990953317684158815918131964901973656117892041493966781931500838856116371645801350674619108871521911922873300314790149821010768282215576545178545850614582995997439028655896474433472443693364189774192136847340474764259766565116245939894001463875844433867738711900932045428430431129584219069394226990031942395196094383837960820889862204985030304078604900575962660434449931611345342075940122440032057206757482159962467706669360473014611696100401681022240012228256502858948920694296915998584154638795794664344952402740947418521351253448652796438263094808282292726005687015305177584798102235144767110962206522695734523751544745929963829233125107493536015753995014161376399936675054298835724978337124407212229649225656533055509582580248383439306894826427326018547194419663774321673285150158922181409865498460503225988010706179069193050356633727311772694287199299011742195683573311343946929116895315458778307187136223828579254348555479751423332773227211945315225061074240222414414704286389754370927705350637143254953991796970658181244936030105825985400692032537707871914330429550575133652868530683058673107900689444550959564667454519040793933289871529940879355619095557788843105579615691786671803625884689270728938802169248501013478508275450133838205484777017395874928861796740079654611109706303086652220588127504099113056939426209880088587419108510094482084358209678487477159691646598992039085980075138322870738578750964632692837238261672173278920803877660151093550272181243834456063093379598231258025599264014701138165977456987930981922121314211250159676142574008788597655167433495499861797765975569206104052388101529741585746050786960550438611184976504016583995563705513378657380281847092849276185115262799741350724619463764537740853289890039462237640800621133265234109535094659208010936243683932753162246913652266403573627584669091008943196527089712383366999831167151879300697959394256622268455040193792598555264429021132104108413360705063034044815777023013113337840762322647908745766166192477224332804466323715027311516491349950749928855862346187991560739095613550349174825015554894793816924552301788610240967615946241929087482322840092012791697592521438361334304132295686812631779231978066666087098822891181969044995368742932505920891551372712234286490571199506561477778856546261834426035290141771831866093275926490508411020656519561615445431462182914210024760178439275146958618556021941249884496613975298675262286857853765561005730098124177667087656799312695054354117725510292677142110486496174457159600995226826808603036941654365792973357363200156187044280204437539547463993477589867614995953212896079347805097089389994660689592064297715966211272645693140659235494385692621491761764599721502531796932549136473516932380814555333425672679065059433644737421642454436828025937228910806899897395171283948892274221061695660953075547693833595874716153231885812153349050210148384206729766046996901883565496605029748839949474657587863354293582277333625039308724667014769263590111167733368768254529690361542908515319428225502891672119528297183857445533386185411945959611281764070990469527067227077147928350177483985340514314993840902134963048098882555557887247596809232382218039564753396991436141712836977813966001760385065268392051371883219153236126957602224551060178251282627208123724592375421969465412797939836908591906458889305964640701963086598371451796833154849602216605418387575867276493280132756619954923738890513999387783864410882767412215247501833794001945849662973650573969624377163573353082197154755938658146907515158474335037395225872630467213478356211699014322764987503251872745644895688030442852492461060001162501908150005404288675685756853291540948213799846147044151933077510116901440777612573258095690662437499107351130592786274427299249056349361622641078586237780201598451442995867697832923367977813879809333439191857659028483649526249871085248015735837453948159794553670575837408619603689189004198472199191603503042423185508634212674221011349506030317492506896917666150348827280255080587457061929591998422793773099032461338803086167775221373273600205183828409500375756148697608243904701622876142430267507908622198550774261744642422094106772126206628557731530029769386252106509948501414382266876216512997720375475113529686725221805255683558570744355619965818618541105010768284544126135532342184372847522040481463506013128443771545591833646240018942310485814380576967695526882414848641594978715580239083124313911019629207302500712447945598425798971774099431699473137013621117881308080279579891579775446007445011481320441713008846967071471205207116825944590119248002569680775047360542211929921445650087026113741120142471419057569822160805729335347174107861054598873068791437364828601358458864947421777434071711633467930003354224256383381574228739608699325999351170597610148146633745457395841293584541727030122174776901782454187895044350759634515971264286088749250965387566658030449435198106441166310685576822168314938384984159514836053211175081881926545175000966013149898071906086869931665269453724101191146851273028137301804674719121895373480447859687349513148690590376867397392191786924213656257561864302490370828552013219259368102921143715815204006620492780222878973644211406243703593790006350976002695392019285972510150713183139535840037712378097033275183813783413469926759192773487072884522355030763470964922280468891642676576140001970838826933576900002224591463783386604693689415724461246595576840197980288199399216575062216296858757246528856404336216468324557572918544709275120118910608192545196717251822371960494676911700194357178448077571718881869466731423465385750133338999976974046247720611181269370516424560365934523796970799862995156374390321552033465575992511037937813660812677092014047423791257511326301442663187378254418684592890176533821633585655857098676113888859852520820949388866001545275548032797768398042011176336872908798128283150789811586782037214227096002745349084346325205030470755980829364978790984568663574269936513561770092946477596991444261734679458825222076047477548226888816043665381597723303654632501903090202473005117100501314591096880548815872515932268536949859022706434503212718005989704326726367915438401537768593498578900517041749460082705854485950270090797827817611999509015002030032922619257369600605595664162247298091945463359285336199749562605821810499900485377187040497024250236744068143449837308858632814386444372591249715531558581648031839351848123582264312024046964831193256662510904697528985245378771388691779647581960916237915758516440988055184581453771590812838679677382822711245881001413461890321451227644953436999152011884373168601640065781585202711840646802617062273172097873022331341574214122503042812615728087983991804307570994654298060724965994044510465016640737276356329229560308272408649912154603700297224462554209196888544971235775121039778606247112521255686369700067717482906288414328650797188956598689161935978161218408953322692991079527683885031890369465287643993969708843746973510976686494100249542580269126576388688619657370796016965093330716869771194496624930504234097769661192656610150554582736656951300829125174300188761713403048980298583197294167547346054012519665947064407187977126232900423278205471089131037194968277899188675092736943654566693589875981789102311781624152831293089563876581821133187071237703209393972060602022563786555750748316566006074117479294160050821443792473428925072852240719384000043148342892838237028216997913592957870469360450391605347212759261199730213692199282290487008793221181882945170144417890402949914034880633298602117959005605645696870105798549642689848830866911419588102443548406545366663121300601361860728654455805505821550869458918826109275533417041962873063551325159211115333727990526073445521040940251579629193413043252583091641036174884465709243416490822006196614409539966179586837080121266720155337715156783225965992228033145479006460007589893709920963918910526984624973879030145311368331251424007261345698877986084591550440241620932906470917224232320854776729052256135193485631235993839369152481744894252858309322788061784239943906351067190941493063556938307782309917414724794076075619859268830881995180692731562685423014558548768274236542938031819341725320271682293032078473239188179980516956056590352221879086769822199426896796598474577216762146613690640623660183119031511679206231566917305186824027358378003396323212509305458863508146066166212573505553468735407949203276770795544880796722580073359299873552381924362039875288808770691044915809339635464189355927238119236435478755504528602338332765990330534054991437763670484857653880992274724470344415309709308657511868348434099117846598135156292404555123049575769187092525949983839041004759911898968818452456047027372812957884452201920669520120357547451966175398226915509143764350202057900773470002990829535008901174481054291799595802227571063911787866882357555008594979435913630365349049914573604858599424093086304931894080574611896180541050109183408343061218124654941110867450635428866798790522546278347963749968800517478059268548119701463008245019522432011264019702233329098831456265869179328092491120810660631547794936510166865106447372947300199499551381824542333999270260453903646520110340430618794061287143364032454420677117892936326961188619902783467306577332071452583527470450629424591717561763778209105613819033625482954156168359124355779725836084302665373463954521152648878739206869593218194922729611447788398629621920729029505303083804242491283207514458316785073210045965159156137125542041019812555281221655181733087111953007437812527789133167968403212648777617799804225981745112021775506969388505121428702036522441162967610118537108315462863936069334157846920549031119156985952449129960001838725386952318964593391031477284695250560805543511660083882426993367579333414994650962693372130043996745804558421202088492841402736378859859157021454691254002161968891232904128709608093439277189561921542386771220790401901576193572591482598036991781176835102959722654799907248574514385329583715645227146313109150033960049722427011138005105956149606936360438734042838197483179615683036931320037715775923308776907847520103499356218851189904222128775966651189700982054354977632936966517658457679909672729169640460891559183256896818011478483247192279874424007717690981563374877099159931548031984151015152988463463615360054671691244827450562253838887622052756759939482974642364699480708500796795028404390255613573760877086911198274858197694673357011090145675332261930428142198988950413499920109522668795604118461955490089164777497097514258455336324493344206213866234996110122889592488418955483310916884241119360390913410071775696216073516195025693984369531344980735632679666785453968781619143517070223745983290068866552430195802788021717271318183804678544234664087992130319127736932687879059897766795634717355414560258812572098547712092925949207075134164794698804881597119366489959912954591272494062276688111403644459283543771357167662566464256986804736653793550373949914927886149041702307623404793285465808098371784788492824791611805703227584273731238710505335690273542425142510329430787106159716724861459273884193039410801864448238317925028419162799551919480148885458958712206615778304064755345048229366653856765460985797766861328445601488977900411688679529480251958784874742825492155225698664703811801598111451506378480209041121093379556918908620698971361434298202964153098343985965156468011435676489424575385281304136689104441705936142260818614446181776724910707333412398044536833121256050563902008499121671215720223538459374709729752721081519383555589636831288861699761335692170185359644158827938462558213458071528496373344037907099318823435566296738443230262160038914703154823371546032832597472911519728916693468014904596626810026939968591109065750798827369004866094460784503457409033213731229407172710701272821485446646676145376573182540407617950763116973168131568305415384613531892128457813766289466641929673432399342316936452039508667525041205018001469741125988443114224303753422193718401729249799347511438019239908953975131482367353338552952897925760495162944984878986313356054883837179528892272644041964451795967784243313847735938439191607939138341447880734456228090307971558984596111120318607968371698289828637653230305539040644439534203858611822797737352288623561371617095223986876507445051693367133101067133327545858345094296180720428308165913547384870429765260754615507439034400048740847687207510698573245591723891325734804109674812605315498261333471799056190210049185688191084488695444371018248255417259281288120953161970939139424279587247202330576266413936626281216084063597001762921382254629718812651942454830817973183558126484225224311987134264082648513663951085086837504648291618082679681428690887274611812396304275454454671428735441669199710776213385495500321384198937298129962190265120750940370899878755543844656125145734878306460862806471244531452261775478928875533896120109715259199305993162712484488829953863753892525852206061761927991392374088314737863944488635211622649405240658680906368548603134827838864810202085076421459331808010794736286780183809734376380013819502062395866525261406192302619811686403365901665781423280026178972520112357915637436580646515782922189060357796749385382985398512465400713871327641910875797716657632395658821678273501808880889541022824374563322273324592630980551157556360419405300365836399191817135945431907791354941433728596314601765899493669291930078299109899836110288306001799149861064613257260436141698846745680302750258558124629800596396091353632593308299973828066065597223522097968507014360855347083111066312872252608102529996411165383755798515309394704380828192359847056772069353286477508671379535737548752212383510215548665576658904424915135433569126447214732007269523895384875613186971864645971368168613162317260939977324698547931507936298447721042206533038018846281879367653845430499019899856038854829111493055577298601463822694737744403165525190926200732147435148887984325539524458693987325497226633237888097853999000401990571605489569605407567292643507089580209822819960827929479456091206109955527484584775262280453417724091243467845959968792229252058959689699572024987973443045565302426095797564797870084998234609694516915808095541636882487597016351117408200757674128153454994619885967059213252473640155530670346133175190799061654709778435423967659837798535799670152606812993303964721126363330482413609896686715594919896913673818218026829433723957618365674524858009779482969200225680425553289281239741337859670541642666172879263887933306362985910487897837907697970973828717539244657945232037470075775881008629306334329386786486484855331727164003198643135263097202461520830634596374568479494617723158902446341429572277286401913704813035496211586345554872114577275151430978800166891435840580171206975403718981718376624322365552791971666790356016635247057270423345183500109419169932295778762578016555790543635793036006681704790951556379752581896541714312454443586935645614223260165825131137726459808471018104512642387358553708089509990037476252970795134739245558020102847964292798113613262315536322493082410336636954743415014737557844066726242948243573357739638384503375664910385487604532389727210949574828855082520244556433771582113631878773873044146505356179317621582669605340800585014631917399200522303571038830259702874791198300658946768835069173469407011949883216612147385430843343943416922180727251916095108733775364979399422206593648562075176484684241861222998638307904294052797935808158790077301042511846170316106402699315944953242391397351380081581060137394215139330061335281977138692866083475133630312578306462741925017513736091380703303702957718568134312601100129243263522607195805788186709101641635036138261597589536014085502275298546421172640720057315243965635220478806722829678951809561166689606050774524081331582881844471209624168820080044954314576433776074925177912104130701649670118361611839827958890896048498900020573513219229772890498530201463378558863675424413058497171675046732402150604148131143666629256182839397702573936912002549877862826414206345303554837297511412960649186147293087583069176442176821954855380145557113857082434912647572346532754868670010318843559385249027599521885121510357052197790719983375658445761013264845537551526469901478059865948398612793115316069195303363839817938719554598907937281231479002968460086171193557229950594529314052869642486539155569636598705811151126260275145877454794087057668587001054220649827199673751982313429373513861269229483336435575778740528884867850395302249738693480010662920118356573364266859094410882502962414838604526960992116128690949252088900715122019831827921495535905759177283061190945054669538673960575511236262181476127793340953363990859593504587239641708163631090175238175494573406022336662731027893703242393502911287549128317746248961204152416995957028689253853944844267573038471598959687203980645692871480038262908842841309137810759494576292585222960501265706697783179371902999006622635462194232569238807672357682328777563215992111519097020425024449670429205174865075509866653808268481149823077550910931867718015242105939894116390006483392024704183438657451067792655203374407277270264150596630616013281710375850306105520091998345711017002668471672733639715296953572633167367804889061546503054771270770571589464624792273868024695125987227319483104184363583992227750924536098304684510378099310956788046159969265512248591553569306455350852401906981566346727278574760515299592971653156272364474683519123650129944270544032121281629469807361268655237939108349012357488569768085861350569732548716702266833473344756841090939887688399547013687667860029195336785832952577976152715484848876098966494252875363447711657176549534936839246641433398056678517721567469597520525182267180959410864750095450896184271174519501357905738560115745329934337186996752464358724866872470873350328608340533096416426095653050804395482976492009692052383986079241583446672066422918405989022255273829097029260075325487112922391380259470661980923608641692311383814205970283585584864247417848271534415979405952292850993166416044631416084381592875142175022434583957741133720185356592162698619617883617920124405482976910135645559405889876309936049792863507477965958980944351438031611389534033280948932491549568985934759002464670529462301796959210354399845844723345674193277115706959403370860607078048271963828114212848286236924925374763407262380215343549529626418768793696298364469523006843408855910025363172915867530266767709148346210687270941722486698103110332727265787218104188122125919202223011694479129220826744125152239598722429694521172316924975650573101481350979628681857967119344483350446275453791144818565490614166575517952724741501769856947871384931463624104433364539376052106183916237762885700238802760577776248207681675031197715739800148327637668046244980668267442108129966461723092101154653857906373550096414308991008369488250070078791929594807725387295861463008080957670693576804751549558482679859359656515766422131350074482708076265440729672820884578250593887872503379442929016768112609706626900486922063278701581033600990803036936718029369280374345822382402042098520590551782863548517632060371687256453621864270287543591818359140094494578487852881772221133336952432189703136425266422105144683924370694085889353496719386215122334235414233019363844424147527881312663125414094778946321178975925110349368526691070829762222360851727375403657644361827838042203349110794401541638186506380220021684610436059171179988004093414376577094674200887937205091150823628803385674711219504230383241925139087530739739314080955344349167167036627191281789760339088371388065041976096875166028981072691636191525033350111210698869507639289679682381336256471010412363225450987470836045851517431416145552175217082471226218400150874159372375636609500338605114116279894309225232877010252136153323347769406710519190023920454646014659789463791202193469559824629674880604880000665088070295697830357781778587479666480729908767984288111697262277615381361617042491502941890416181481267975566347407283910074251301777918011531453456840874351145801740196762263123444621868861106005428972852446087772550058703351629514830925413373176754363306369717237513095163007394558788685049059111524166184743901669211173876130120288296272671104311857582413540071014431388199437483958145319237303052563511680383010894267741322066822058995139519881154278079751057749078603828003505359774780414433780243173985103539562384593299907487178843056836974558338734522404787761089329955020451896462519225792159972406891144193474005418453371771139557742389364391182767902629811221561742060910963989491181401797530871067878560783208028988752806650407345191884236960965772140680346931095516461261098262163294911672342006999184453214465700484660065686466737203968488004725341932990657904542955460388866194056685022219306932374478422995382812948461769793802667156104446359643124843158077936868007097033302318634067376440011684224910929059941601205316379578804469585385122787129090014934854621173086596520837088507802027759697407694200358732945100122506888313573600628253908164797742580210502733027458006119404716105148405822136831910408724637801240322864199662986527082148542550998641823149927346081225724030887089483591045767623114618242733561927457281942289152500767952159141644794997482414995275729491105390338969526073463996170166864394189413694833242566476117021513002620600932863323893758075277432707919958516434541870628294299317530613037742056508641273179422864901256198004418450092043478444108403610209623294966887126238527852748117359739325752185406093865954725809102797079955954044346577865988090163756219917107566349269782289024071443805291342565837537236572518379326681929319261469554881910318773151729955715394122434135767361146030725742487522246602282607285089056541993013608906538770623448754582773185280105874797165961300999938220654151409649901260256501593640415536699332592339134021066606994142844550361017334641002294178740925872253962661909769444196104190519769608495875343975048105834294701169903621061174132340331945167820880087518334498031583554419767948683343577086289317832044243317381308804821410426098361021924170140911949302108410044836906180868227777601792219311900271903256364244997554826004764888460312671860709327580346398324004733219390775745844160683835746372144375443809272160621239164708039620536597332344705203758971112168283356101771889246075935347579732816729107250255705999291613721446603806686817866352720989632964267726422489274911907272357054120784956157465069601582995153968758305326960575677320057662418448842569432416108380556681326029975085735021643532733041607794786407074656129160507721870734993057833531722415922908765781615021638144922082045104210412589688584215849996850135014702780773645466928154102527291675601558243979452998843630403874245744969842345865992835457647200158426917728952558301302462332347543946813104160989168650239593855087462078476607090832265880255371610565597816241597328235818237169936938889274252898754403560176070180109729959458838951130343627936680758202481025359872216058157513947657228721743211654552741645429033486224784075569230568223831320532649845449924501929793278773132330323822971841944080235220162856081963008836355798284650490255892848284169552502694475622475454815328556015757699226609487240179481839660307876371431266440206080190368350649365481085325064517397150518007531906451813035556967086489902171249579372469895058453656685725825490355179183560758289339054450279845546360874152523643727764898752380245310504435467573388486402834862713756827034381836729426230080723392785850368537950006843178175460178510809350896268328814413323184537893741429463364789553760832143156063019707503000947524003095014230119488197490258749822989319918831128110672964556056885201787572696254354233231243125913781919611049108335995107380429791379421729583944208989851670239173959177885987184418746549859289689442639129520778797818708419142446175895317585304221386329596353597360057319842527935743041594507796109336730565939918498250255251188422420847646995999034607393927984624733377975323841246900401330532152475909199835387289276172053031776998098855771905904950178532466521022332802820423278737871290156493499652389784420371750615407550813406923075826841696521502591344848282822984212735877019254992665685308377317601685246315102578606494063298472502125257668800098912628704113789814928169476817869239507192465552779557057372652687729566778157782523714449650072994863793273617508380722685841981258651041551245694306813989053267626786938892702290051709470099765178825277212074899582313076731243848769192289177125808013532925958895331144397234661054861923185379471305230223166377578560820466133222529127617623940653530842648815195113242480646047211638317427221123341747874712853069108982111596811064290818018489747238897319972804203119418953035761233409400397172241714260226580029922754502215868569203094778842039831118340774483378899014971232923390858368777965705486754426117873778227139569256503085896395133803581112714156627905900903024180488482176673081112777860824667536156162481452665657598685681191654898640562772711122142591107732939143238028911781243234280342639302655601781853182634392584265912071813784938536641657351254353625426224559615422791338523228157694163981989256657578942413759269427219600009491054691067299604630383403469492804041895095784040782860481740325676154843957498976610399804856775492774821341757709566475860311462082580296594768085132529166684873813668287218911306657506047165966035309401253318529120322886564396606685382948197404776649876888296663753671438992234015739237759605233562967257936243934253226446944013269697951804318760306878705581180334489127213146349608164670578240649525033175104832889785978147906636997815325291723243562391082427173682097187988359276353276974372053040776580798248338113550078839076548235410528106840006437917590199017155387345079129276802484463635118272414623433174410965868855047509899293219868350977604756284174845061014171071004083551234178999054375547069786516315910978343953164076146214092973966753259701818052738023719230235453872532730668325871322950350656795154174068230622494493059762225899025509722616540910365509273307775901902260036294875379677678013892620055035940969763993967094189385856312484293423100838219123643454263722507821656635972477683959093308779314618772014238818680224724655854006628138837587534113244975883878795805401732224582940931561638387755059834769355367293478101131276990332073788486097021775616233221759372447012108784293982101305757030835849364219350569163788774628748250817960706748607421079580846093699913155673899078932222407934142296402789330526042988176324359879754293869868121253079182505723041853277776416757227772871498205447728097385520660862437769945028910725498596353885351732664306821679477521785494777757018565620792301870738972715103959961629081268103177681027699911466739651007690102202138316406892091025757149791794023601670844980296583412926757531149338514287282318382304136839286006788630182312103687234795774612204328057343262202985537236483372046148321037047988943127862381029739398713927479086009967234214062728588222000095011069646500894932301281675340002395343787136275160928333235426722662720595489289125707769516294931977044959834402193442180177971269755580121005619414081239822034089604207969733028031572508601672450212673629657374556298453416702781841209322643523457514368695687269700645100687703674854500148040709419660435838670500773663715340938226139191047328824878370926818467603392709164012473074388457986632939252401871708985701172636091391843935219084368137059599121133522975227730752561131159038090570764532464626005936128131319626396919299509374429044227271594902819254535613578948704428371153210696625212010164727599583490445398004612944553140113952599691781870748906656576625293096662346453964143295174342504253461978737953528230813151003847746892379847390142052602213461778729226039647215354449153282606110214106557034570650326728678318337819416332063636381333430565237943631849287440370006953968997860767164844620447442976560000071227799934854257256920951650514045289009899188650590985812799714300820920084564398608674786148453952142167148228344282839053037728021101902188251425401253653904813103273237347719715947974442175714213533791979464458502904726217404031873950074640538472255927693121809022377616187294453235467362730411531737533730510972760076875553316535903338609564473665201523685656325006625734343195695478608459913272772227912124430166010662752158868865344140532490423838258169115292100985704987162771733668049832611689279309686813427054943137052189538681199473015289305036675206774966689034420996538351312612977917752866595822893560636888058549944874831724428645651032556885806215080150366304075603481570935035948494193226449089155475879345417903464634697089448435964297022838811640279227371419984950872715984655416341345567042252742052778268125762346184758504598092459742999121181992120493210268982751673332380167583572669715955021914395389207791280684869416574860764645766845373409571457322126461531814120718079421142401655237083243112186639380740953577174057603418939438092362273673897855476248251723440499656441257569195993739223094694383915460302412397427247520070029382826422395697981115252206672830780272708450208741923045194621307213446640226131534129506331483709921264569497630620754909129410546094484135756652272781480487376396100100104378657029019118357580539437360351593172955200725623191444391912057299173783488031752060494063393561863634415514202409264110927017111941910515268731751377556435945729915066767072286873231699106177761338876641021448082241464968049049736578815817591548926852778077388262151898717372834107077982221980806118025772171250807113707032074037760672480078195225281341025555886973366693434552705687397360914713730826134620793192251820389053656184410889786103288890225949312070103507119286745383450465039653685669789966993488250623392259773968427611942571497297360033498298688491652832039359549148171644072488769432214338182335207192785530136563627689189945400033964632343893415373607752731233641930545401205566297070507551809193838877367414295583800979161518106887058352645438145808508984677807390842501365906685163140908882648333514572142345666818923090943349390576239203362316539447974476549306456976867611534059403524199922560173907537481997961481111559972243029309602280721962870876927652951223833924774338677927878781249654434045693569377417625357179690083145467760898108475132131489549297223767177214981076995125333292616528801320618231969537984739475298627373319771044138680488299294763491985324547442743726514090244855413557993757314256891460442547590872396787926870750679208212883269588442724960057108637936537651199125229371190229839578853477125895093868953893645338456492487370718539057888200355952073428785324495987245792984324816489735228593346135974112455395034356241975629582928557652499378470357688913854868680179985082307499130531597058134398801901125414986953362561138497465916655129110635840406132920076868390258163106311784626697635378306642755371711722331291290815502092415837526070687744866329176080609797726068277329023356600219494616104802618600918848735387141642249356952968259537162316010756498337529149339382115135986773278886960939431729005641721751910843989344966292115007557185035017659882553706594087192166526286090154900140171831227173981975618194929774509311838234072044897141240609860488800649230663993753579619304993599638854423046821042252752039044958112888251458871752328393753588167768972190966792249966805206220832806715871206900607538530697883940317565357308021653841423260501843292624308119557184206691115801853362706540543950263856622908267513621784413928520672213612760286619579653639193407247074296179176107900041073820087962262162758987038696650886259794114681587638767900583341974111273369661929115484853206192151592149492752612581697222432794647346194700319489872589674288540418674268352388808524297051325060267234292730238981256469099425328102245030472278614175746833863005627738995624765098209317179418715785676318736632471963416380124572052408914227069214682198032929828658077343666928515264688022178722712626618110929097120353647068320158951937701864686595302821813406851094306246600169302647214059031567235949716288740034616491046347205303622736710146568107975751450179223068996736329185710599892192238748782087657360440654661992274986709288462768625204123749705447373170507462605589490585536788307136173925709665751158233883847815447840544990674235135373343882972196964320045180005292396235515052604224748879209127326564967874217316348535990123377461565656712609433340003892676667835458104232271445041515922552327229217865271052208132646148180623286319585861559052351009963850278878616744928390366251514369296135132465076032992973322697798663353979954797288926192170450874420624820358042123883358874831735518700131415493234148258168663415384396108974442295549819215358000885974187615500868355105983439792352100618376738024701220583593592784308886260288289323457341287969563838698966398648992135417668850115164125712538423709044685105523991989320548144813601138726886690207340865526874009525983033877517314437530488507358264815005747051770970735640700627950884488206158703872945193852038268072311964700194625463793276411127107812948187873501413415199337264112214903287520144358345236582874933650800205441226700226900995216477290906201157507551614100437128390984407342141121144955012625245972563394747339199126962552153322364653621110514315735310040913160033247942796241868157323041207131189217729737874391963204748825988831502677515846920196444037146004106994522979164894103830170665768865527212215761857713957147193377600453964522853383511086493289244519428581263569762879204277912628217376541337730515464982899966004925423805724846064189718959649983867450521276460074982417205074410788043797113259150200130519864054727141454541957088676808132251768734675877342439496521949909125040708242884266007517882613277657640330670679217387506013943476187349552590176733432844019539585608334625050706120514220521137548175014657365706303608942077631762784441122864922488601047022095007774929282908769213481412074054476315679929777577821405661172445418320354206514283047674058413225064202901610309822660169145681810500805444271762578709730856386424925504047324307000473913987527010932005574978202609406025965679677811302399688109874879360650988216510930488170023009692211879903511319920264485005987998758766421805705264122154884982091666321378182665489534507266469841568547210389167532260655537912547760152074197527241668991807705563213836343644220277228776768985443027334275734246682411255118294476516952087654027455528314663080098817577020495664930711509209652485156310946155362494165869603125590465332337439343337969583278078935323129025326654489051159417663362877674239197924050463124474781005628620203404000722758898857091348537979933760548795601063887045935237008223308182546202742999602267090015108789041811908087417915796091466007807928305016099260903653731188028607018673023093709510743960582062115199370796838679456769479926462161383689044581137687444007502272203489476030613764887845881911265425318481466827734828189781764688279085509463620449987909942809991175536376421906135299831388533736656853466558532500039443053376032572951303020438948512934599537643964409232377809382420740688890931747744578516776285223048359357902896325471370467742077975278121882364748373664018139500151554758895188649041654668383922721728280183972040509805137735048260818910011830488511338420794218924661551589066864300689858907772875248251582268831843613411012121225298725231481746906523916448160196195252626469452469865095467176894993090242389587087434311999642767667589213110172581256930142097816856656889898296052204425615306283567176684845883908388426194011377975399976515778095406476305640206771713703027152752684221092052742271102878814913880131565528598032563395033385298383026519690855176509882347816699706774303117757006358955391099745395380304588887318076549103442572892001191277864058061082528993042953394320025833562990427858132892112912175126749064312824751844113528255065854744368918544429153096109004634326757073452134506003875849325442557937271936700128590476302454314646725266781036397669089282322834626984044279399082808889659484329672736297476435792156555218670393900915483973799820767157632098527892611841861674682284712831032346675972717282556649207208048633646945815193133230195159868404844096208836157279030647344792652192602787304013922960394579464700098872591898095399998879126471034869518043538786906245213041578474167715647329535896303916398672244384462370266086774325890567179750616091826130420812920292761684483560203049109531224571493848355694791553679198906641778929529638961517617556114308229776699520617167732998982743562634107963786833419387977081203952111441315748974342453918591655664641455380577380007050052017477301206516358655965352143576323868357075768564817375883222400456005415374380856990985934913870400336735326574728624868252399178677963859073018430455814321243328804013822852964735996819093449083355775754714677081750391522267043852956932182674646509553097376630378423814941447480853097505503403390892596956648828959705520733543724404295911814806730424870188704209775993072313963258383382706179759113543019821369813836894235008207411681611885319100208169398040595683017002969069783845676933157407348257546152819019096253308490818178413852633310356144134998113065093377066697213466466703548863364633354724498037338149848026325988420375958577275241843237866556928250136270914851279041947235010320081048057200069287689780382158297558075044919370037486268141188707762341799043411955030195484576752545347495068655583707938678697823502960731623483894454072426327435655682458264807509356016842801864878833242520226941295536999151164943078672419190707695522250006622379994930937294563081737840228650458215606030131483996809629522281817838210426385767428000099156612717076189211866635352503955196883221420992549380349823642404525013924000148882433645094979838974855332951848813496773962102159534369687957134550097848350418216609562025965195067195692107239765871600053252495573851857029899811982777411715810975823529016656502821539321207537538402996336039258713779722755149401526028493073488347972593899669719557454932631285427413179578126432753657149461328447600200321346007737736387203790311733813477557287812094030305831827907479256732211563662702606032402403433140121089543179951361964649777892873199214140948582817532983745955796413176877417945036559710745952023385590428882606209016005975335043793583239766136925389087772317359897883857055894906328959306886116938636962535142509077302818261808583735818885105028935842393220987515316945787525917735257037177471676766905039644026119625515452591095772872396946998177642138436287784967483008269056749986880677283648062787393262000217383597555637087782560018396590260290621740607212205034654297200168342507584150812176819768109473862715971203167565155473295375952751957104817444316366939773810662957616079859614012197618588768362636371776479521553702580149320611663908417380593409835050862860817073342606452603692872141905346533179707073138123672395439837145481065210870619327048388466245137291571423751053441157055669132743594279188154034675665514872333675124172365770778029536810911184338142485025331446448965555325915183647897275324484774866742011775320914891992203426973851229322748746868534875151752004959989274444596399735533772184751723322234078644257504941102391639831384660387617309314637894922394832202854402662375567827812966453241642512775638130572841969124936371873773405230441936344062681632285013117849090119473003438592537646934373969251302466231405432047485036676761642305219819488474171460284697622223781289045494208579388054732167257359419392496688987740568129957437389683509383337597180016385319001870337276764286755817215206956331681364133463953511923090497843624936921472644980867335653747721867175482852557054195432268883888262180601544662584220514869916874653286226261450818505935122979543761588020699173629855684603921194302537611242503699376898063628885607045777555650783034794194668155822085923665189601420898720065497226100905206410603366486592495996951201170973867846459934205441389125195936889591838965083120474608774697741815276315764650691873319240355340546838173222451440190503565303645088977137174220687214624849822721635457995971653617942742435090318511607612187307437185124366783871084519797030122626708381634353620187471544630936242567727177171516906765447329136747064983416578638354457221034286963940989153273706337404845725181276246159965133289741255176810593408189242377770861929647090529229528806373185774444249717295845798047946622522592769958915155136868955722403250129970804654405177537208603907775768236303836178567715618477666446586033115432952590615852292275134389138682909165222787686141995098339225464309701179099462823591901123723361279181375778796788009112052413860985775174886335819331376737637378040491741480986367950566852312386964784437878400969892486942389905987600252486006293549697337793551943432655507347645294416991043443266454769056777414728793825281720633749479419498522081676827572318370148402451565697577969163805134576780875789854113579637658975301299251247694346450004894547424859812391405638534804986878842013055647843702499830533900410203312702874553942630519980732290551736760930099030794259282806690888061859573958068169649099099496544124460952953425769458334768591141139473095359936718510768941753010839742861463439046882635614583355334103661323906886167789216666346744038660580352791769356202837964540395826470111343725648739963846649243247971977965762602574202218657183208241016692919988679523440457670892725549826797302595440613137878767281034331166808002323089648768690969836648925178728799197875660122249949484033806496302581042516615324505133863636108119838410132278400830045043518667403424320583911664349481313655638110872218178630441844772327660474344238850814118482316645344516878019358370369648862430049694974150339305573788934810758382300312208985490908649973812496951402470887964209916136031166251432057771011955771954326994969290060523506901662428037400851674085525524470521951821116833121654186433273897403730086324745588348572947778166337606667745099439139972251472867395205904351956498187262109191936422839547516765214885453918034596818868338005704717958775559382593469392508112228415147918254082349206553947308718806300298597250397214305428564829692810909233434490947949067617741418054692705601235974557677893852474466124318189492775696706265725475242480941637110423159013620963369721496618632143367806479821523925674571180349165313377669140067204758887049170824726299096795302220325190501321371698736317172767846389507664784875430669600186432365513978699125663078160372951008882505049914780820181491243563017617427771669741594936516084742463448302221895884506058776860908309135071905797739053951367098552333653371817251526656591417781884311330105863106626675651979466500408514704888036642743811126791681850725377907914224916680077068812549775799811525390522174309296932913415897605714006033839367927738534158823840505889255488622656471868424471085724890134461093539914593079592253000487923325079157180662004203073045328638933740189464048586567547189030650380848131692291579815997330399532346731077417235872465122869100736738267450266599380377346907940190433326686928871324734085789849510026915770137667698819930602085112613230272582014278189553554544403117228572182003472673741615073734813804447560947787018200018888792606535213661187911786583879745957952328580981308521478782261703125705054090496186289464047425222950583017289644159543521305792440670208497419075375893128833897987349098140867625009847235537731707035978189477694205760137910282381081658113639164847469290516331426861775250837477204034926172331912117044340157448862174147262325159104521544741294111741319985743470199483723739120599140041287202908348856577269472487439578515981045294919361109751869827314789662234900909863989082234155342456296876211195540234539999988658774970351907289807981356664049388528561229569958248605929196580211260875300597796098338100555629664099661230318681885334951233179138240248347065384238913718493445447714400729928178146849076088486217748026229244159192463909598879560979507131853246649174888655230308015571770452718196010166274720096520448005074978930249688326411927170347625640764411168345595179507353354099376496622578667966313343855864462324449046845985234001336607150060027028363523193977187317125579116222468243683585690419206348347731019820142626900597754897502428697260997201785516838019624600473207001833763574361843647110197517763366316079450302176320738396432053368362783299610673467189447795950057584017258352580386067255191772336782129308764222771961088907007420482800397822646526332350625955386125110764704447232753899383888671566598257039203254094680625998406315168156663022270156388135092957487283024321104093756070998647903751998797988298113154992969243905637190108424905953232438771737729066775319799274975178478665049972642835961798220558864725046422431755828059155839592418539599362467685611543876953380103426165104990515651528526706489933260384300142774465175247044152010710512528347795197605707437571958828825807220566417817702618019007557232138716865541639380720695195652432711546900748030899668122460236776007993736205549866535747208851402615894717409755491939816074317028798637575978998776725646779209158094266619874117199352805431908077939698129300581104921867983808787318055970162044890646038845457133803864811794411589654109060468071218797591677119997124263432453362419698092014981098658872083927429254388164939138047055201376092665680265116370322151790858976747752306025935636932888414329957982469794585912394293847610073019183848663103166384196412842408847975166956610836252249657521544661874062539884235485605684057196514982493054841591746387714422961594277518636815575092177254040493348353841735984533429254146233064466977923989024799148477223294445654975024192074987886921509725399747953499310527090089605073035746068151800567029058457194785239509936166152970392846448222589438524578225564342319806255849404087191785367352484261813241115679579778122364942539283971081003203482653339496274338345832851486941216357616145873122888157438385247162749317095463579980595555201373932080768013612542276960565395978807769481937728651305749877479358714485695182502144721592499306135147628852664240084665977988335808730321355921594259959426818693213457172686004216646773942748618852167000728551714424647185031876853850602611954749801185492756343705226696396690120076736243220063909829651997771845480346149573064337965771444548178293618509543191081038783841074578534212543775473793137120362029531691616716398938045957346427961900211355120606335930980855520452422715408191089406625171963220758441981945048687424925236141982640892617016350172824045872911230166539836355386034059792144381421766933108250392965997793846339141840602353558218732365556425128698368102870992483711914720288300839683313526383551379541259963836061199048289799220075130233934532262605243999328156787673971442103314564426062401162271875836613130974192686091448719151429934900007889486145696311451747885137314841125685227241623122060707654118943262192950628734941872042682822691558107259181134139420350447360175281812413879256198554679043319345279287515897207205290340900027254833253399302287499774201698172523893722564805193434820253704406941315473182147504373675847552371104666751726285470447999551346316675232294574249796606340596978763991280581297287951415675401179945799923450894911203976975116270345159698602421031716653781688123013657875347099816960560126549767481129731073519037732939353794110440677925127166106475806601254021137695216199724549382049216818923136169989540780717510624952472882779287405941735023618510461353435379766645316251826456751851200690022409253089687698587084962099271744265592089402513168112799216906195925061575097305156624434335606604465535694835953051790300720980795301414047405040097017931926183269218623918016926121761810724382305163247099665713841032115215650837929718963658254964751891916158684028271236840467863357113135629618348314735588765889345122149356160868035727235721909590365498671497802283032634387754169281968008614541107150113715783401952388538617901063282673198437172875459897824988829912615301970317338099116005643998964668083635828306816681300778199298156328394849969280046719794393223408410491753835389824529187010548493631409289865936804481703123688778834330175975225220346546258585400049544853548781914948829675501345125619608233093199826200672771628304108846609844311633638261953905082995666552745756699142813183776021834719887631266331722112667750899920646662325792987500353553663164566735320648753753091755850752491966004112333072591247087076387929220678626832665852833721577753875529191336928542679009963029632454638276843358576303488366211804717772792892668414629138336481158173219362557554132618061073296122165794107028513484079692892210355369585770774253019636778657114900478089197746102448536097504508618591772254481851270568216201095128672422796600781593130163510925499654180520616512600067302292807475602858968335797863847599388468489184388006304930203814990179022959341494962492489287635362216596085899556309790965497397751497007639338050265726637882845134374237933210596781918808427385326391079613872665425576851743529993792901573737774947047457796282130524072120534954934796828414457084459320514263356909450654008247794220582488952766885456111335273626999588088160930102035694368885088878380721526962202543468082997159401320622770876785392767949502010943137007269903153404282157535540718412399519215478487813789992455575372088915387211622428044343439224479413220460095467381464606526110986265362515683058453702468905229895334018242374017437936874742372926181604963071865600631025429432712435185083549663736001371151810150976623181509213582024277775766049281028817201775208551117706765235518083126982121389308805636508829620924414451922713711543244125214976378253518246472659197082484173696773969796357349027570758212869644107420353378173531905485875211933350136975735259154917420540859034100214732962144983641030509601554790931685925965483595571938096667848020494601621583170746689651702517873280323531721700431676465087330692609480945691249525615932473546653896271557630543658601131438148635064985478764474115858558873149532129009138452266082596485860618759343623982055162269354679188847293807018779012507769710868894110384865042191263385055588700677190334376644967905747920429702109745276646097868365752678031501431151890266934113318441068650444269752287884073161310278531314269977866221470535650453819022939755172520093220548146486686162466184150860655628718421806703724017265851299887461476598890300425002252931340970144063562701132097907392531345145606391748831907011729098067525360514888437770533938127189650656272893457430950117729126236483926055341616012872190749261685128352731397192786599110212166353614751169338851043718668344550926782048236919369979596220483147866790672223127152801017612381464866566365235379072863069702046196875341640656171715502110638152983905126014887922646646925600389443090987037090513771774365390571777933041132560449910819618918723085782563248723906537356466587122114946504749912627056138763278774916806960233381220440966852225808594151573909734042660763765057703658143012538106407299317894713840300402246231429243726016429379834878658242304934891066833789143553317977481100592181345751138167632769279755713152852413136221798237991492403251319716803021046202653651964011706103869743539538754997259094588970430948665036820221655398302774828673162740389039821381549256791967956110061423617470785116809760826507274359496911562706952357232768204854417519469578217079536918426470304503700190288406299498566665104138768556307861227506641293942954137557562729098025906603003598208029905617025751272160587904407520562548676319952790686218295439846833449818395330758583207285151954688482851716150514088674085742142424254013092773573931502427333385869664051183425664559488658476610835739093521860462768292594053006344845898696296901586460135739677816817922309365610044854603596314529469437749301074823629168005016395582747984485970496373397686884738043509437949264728563559040233579862727548540209321263698033140229508229965522173676514560474571041218753712992541121280619381259285431157816935171076896752358172258643811408206526044117676201357371045993438361016096253507984465080622741316056191267394735651510248763629311035774668401727299804391675494822074213723169882501406359641073848807615377704957245105433208703851016953932919730056128522238910983869877375662001765298561948601273615968530364569816771474983118078917654602005791414390372700906420527708409584134975658372757748226920468648925309461049889219941052426111174062887108672980296649530926182467728339906558821301289403077447303560071682742690075863579180632971890468530061387951892320102926343889381556589948364952968937624085282121367968270269075639766226249574580736599643956426725901329441074446364149212154689451456910125496222123360273962149098740421596425823484009708391596858446310197766638731293265358276342916894117075298036036401589021029306155980719725549560824842134797294344896470988491308516967194268651696683846216534899617593125960822075288307315469739123092503884904729437103189136762286539758690375051354859027295807699679565652551023864096394449651476190870584273515484109606978777749708676738484265652901154048358483737628246083091607251465098016626752337174338933640414879995136703964797121758042949894821254216212775955407970546274131747421515792883411228285980122098073014613761469619059760925973130056818620826450287367872247128277404494991940165790045745634630530689998141283107340272759434796801083344899863862719486736871302053504950394128096199120143709680596780633719091527920469798437000527802446105121327800189134069618304920310088212016531679670955195345159284272904075265651406329762086892735258726226879293940064627642971465921680189445236553930387103763796637231315277357300249512674719729328464589232549977388655787784529487029358846115690824000847287029067621574821337514299035317509980175340383383017332534672840315052437363320610113946953740196865004378650456083756199819310684856792151952850803650722584517669999712303651248332645979666761414319625973283948754741727716371700185739214964612059287060238955535736486495895608714340510310397830504969233895158141652603946491187691317475340352984080134843570657482562380716108893377544789669860802361663606047973736476772070568342593733986314126227300384868729939534429426617530015820867403464404156973013653309234337148728644318764244934277499592519585789301919875306662336681883227173699543922546237907731478701253844878015412395297489574804845824926376343187297278329875185298401343799221524491163453159099593426086037520103973115354969177858309157331720841587840496337351838967431190230686000736038955902645953515847328325857790799513692639797451747808370440423058291410989389241730471259195130160611211060669813831486815947918862255393107611536229351793495212015320269742473974391204724350353157519567178527723825276619598563105995478288733546083339358047127113806251365287042498268052665157486252288321327747399438408320586596394907332944025133086506729337383487545303311663324241493538614735745606113607884259774850532358606524347907660338927038624688654584860406304091860053936909367672380290084704815628772473882223142415676566965058594832282703810842371023801700341643547250657784796954276167808806766669913072769429441347303584507873835526558082626423623617862938584849577548948921749013187387026813527724662052825008915665571120766008246821036937725224770288564138325826946490174425043526770171308154415084446579688769238018715520159659160993417874740341978908517221747536658661938210751930436717933553969152122934587210801096164380611216009382166442616393730270250946565988449415260731984873081888017627352388280272116946831632316199368631769889139505476871890185976270622070079239643821729441243134775551320520561842786890136827673756562779041413849380700509844849151495918989482240121551134870012748347524430702915527915698692987758242454071198559275042980814912783658055446498877118081429437386944429372192483093469531230175617072960667788733645686447067847750502358674260292257922879314320903795752885317887085303415383521848812369697928776010207550338916861437714679048717408363687084115990265512177770591576071174272619063774859083501991397475574963500498647845282466673884148689172492947108941631856714827713898545332105724533844470590314942499327147963552268419875271517149423635093900830218373866844506263671675231954564640844475598579822422936978314629932217413631402487784987976241339354590506052030252763845569065788425109612613561956744452202110809676546040317833086639706645104834684972049601206623895516633807642829069700280111921200688714814622837381679572073726067203142758905856269316085508079498864576484375089799551032045945346416304833499715612815915274049270259495343194998216743047715232704866166003700083921286545956525121396444918509920318732975462081496454128147363428792476545917425914140805623154824094622164837132202952396174576136627338995937489597584024561417718876227783713689611674624978994523838378725240505105565681273840370501462511777997360528813535905336062263122847333087263798599013178235681316102605816620019670686998833388737700387323203504923909620477558777788601994221266230043095918344805754702108391337192379716936623255558731552424477258444190308625154454166172021450407617610462462828642951569575355517982239730172274908489449819518031016665664949615136155210124220464968243980969339658737005048302274108519933735345101767143711579386916147221631230758848841088957782050540288607743735185306480730490973893058632093438075422644919076306981558753089849673157609435580759575840469315215330477129931728408770464178459448393123476468403250741259821700680608695626418457207141705425879323984997857267826237089407447955753141383043155744949197746542346328763112662717215530877445705507642646904754951603919705209662897410506947432370799942309420531934995143588154294126604426175147246898225751086111165055175353437219161465775538294672239892826793665762022414692454372205702813947412150161688319596196260767352882604062892964151048524781635924304429026157051227286931338303729422704384990453083973030089742570484871077135399778094756320779736422002869195798207945181365181575520079843017513448119731183351632340348021879381393053302255826910033310373741210969988298004125639923141836280192350836509373814883829754273522084870132786667596166410014283061691425624260346283614848011132464936104107613586544301648355723630973927356068862200300873000004317286751047965624336962637203634587008202199730086635323573804936889006468412468598432073320929303077066724337018408013885132088903054060860838518610269329793097841982677562784233351924944956195962539318935769867117986064323869486196656205142364584627573747839621330313012764679296022834657604465689388013858239162917688683013066175891918465477241435612526699325832086916175387238382322876714970160442029489304274366064389455468374967342232823101058245289607422381476420723764005014286100275339493693997730533702624489274214788467488531032156957081063467091339168709692998811075901576560274958327592156592712478787218681677504893195611191405003400608472741231937427874961361165056927830298646582247397825750137589951354133889698327730175927647073795886317634496172754697594302193278521868223721937388404166281069797884374722743615073214995462866806051902342500697818669607569015407703967464337969259455028485948482395254056897397358011138493391077456375987426092244125603845439024545157954185036022344276063338359207488781403681861256459946938879002853107100927855986893998422760759443503089438275098364343986221154613259753221614720402140794722300488518456730835423503002210293216734127148235412690375840570728843398274391968191147839327818878962796175990734036778589509366888562755094818010533058030629982567909822242894461839073674706231481536113539876013041187517811727170481447317442559571763952865528569237902767067106414650810307341742921678059653657834325923912534049233344926023288660065212165024818467630589457825156108727241586312870661739284605152453287663607450195403822338126502240139159697187457344269466720108615571746627641072593584884188446946441850085898025123209580102580996528773318886477146789221707192733514159787034736276989596198044963762533469908315354880155800179153308761330210141961545943503199129566021848722991053496547746535750154073963598662579770736415962115265574762912697494119328459635438659950936652204305572977964157184657904436913430057778253500154810829438037936062665092265940314448027943059264776302138069149270001861137348438389094249909097641749349330068840880135985066636907676422322143760903145930116447219849145656918099488378169825194957491270295098993948313041872318515553120721037857317152032295369682797132850320367640983626782829458047836853712301367793147198229333469566494073820332546794058880404624361235791930675435947577541412907991525003032829269794545313215369139934093126171394658096224787093776834526006798291323323798035710026070733529086299854639143925197365711746578131965733830811973523977948499086344231845774452832517552466130967635045793070588740584279805630952736401081444844629185072941143690809199966755829373639401631981653912399983253403807996155777399145195089424643090477287586257073704172386314312269873466012792067790976682580192295977243708877210778830179755663344370436486918184653945901302185588540426112712687608197518579078838901511087780462272539835879651411950547723336951124218707060313575092244448893183323144389571590669348559196115370768717419412048030060006510997691851606107865360755932584861803970208471785042368832357798636344571697767075754571980061319456196337476257345910270032965566988808255677989063951923373091000158096414430571405830913289328616942155527634854584256776678389555961428337942305258136673261935499116605813238077702158910212179194724233888710923886416091543752330030437102068105933998773409620847025580070620128708438101616933961345808111792650773250738821603893519141676154452493370969553992872335739758770551126930816383445857270399066834296196301550566173829137580812142482154374753717806685130661634149905554982881273979955738280738009895619650315898373737974867892201560241748986344769595651455227031369734911965423234153724106413003443273546930578402057399159786829870854989119870090778140254266505535909509823471390201277788459614881442622996280071712336246575034022436124614886201741430846852618194262160047023132744393290271555538521331391838973709170894475609197242708173738023312056949273197915870659242141524680046604749112848390063532092894374609775375977796314481269149591615167525568964615070119191968794561769788496319356428614248006288100911465591983537300152636533714741314640357984602028147932737471337405984243759687197532455085846273528404779297003030783655932165457091241891664599118642950597973768743920028795811706522909376996290797348266465028887928753364264140363996300529517023291205367637292399161390302884011586044893694789176396536872429192044415081047285014672662671870721976943050984810362418064206729355458598984657097717832216525741432075897858942709478545623409987606972576330542185286238685180636445924685044854957741673575906123480453271239628852300342130215626126775877913031521104678279535969131376273184507377193394679302839331531626486306867079625492427200443106687976834275829772558317810069811610035244305051102943089561327918903112724542873819985127620587095359062545376424187893659190117886571014026962507345993165719875071828953098699290184899807758912974798968845462998173365386745977888985511813546486614789069069653140168528451821954259350639301890767253967908981715565489296083431437629163728491698366583303611922577067002351314800637643386433823845264495515424097842647607836878884496184114774977651593461170745616424000110369633770202089932327640146620154789022802142676121564881904014475080366518683934002656938724859807054220427762546009260862645463544256130804571418174145628252861862642760889683547154245286245466647072506911347830453581760804970249029982941672426080254258147798779916300093656594864522551254825242810265263647140626321704631197820992831084100066888199016074709364533598570570502147943741579193147433520129534818975765601148833460364315998937782951287414328231549806194928156850424868334585455597173916058777741564002383906340543611094762394321852439278389620373854328753033840352959613439595147514996346287399684243360216452089201620881320472887243590739327902819536331739049747277881822724907513782268180834131460431075658787181985771316694818174215837325652740812422006632800876041440512071682135247315626951082664711409729037541608449265814910627787069185480735822040332321184641145718862783832690241652215340409874703992792272147891323239138162637806172067814844923347380701463752314525233656969974709119377528134516889549814205801316587601024400386248489367704627319203478259453334238328842937694012129229463223068948292536350122061616485939557570647287993085635956143613218697067308913422362615145659766013565468401535474507865833550023954075303590475686251163312991470259369398496542446617438357006685777774653247893418905441629796252949104441745398108779916483665267374181500517578846003148327746619164507548808985364095688727356590261754154701336722490508868863100387549663515271829368323164420013168251847025575852596681881861355483588878232110570479099086995368947958261849881994437296752120631171991099646612990307535686278620350695743807844658935393344698947919131504142677022411730842562930544604213154322946526681738967397157723200706555875129691375970246725824157735197516984100384617689659175151223485417789944488937825922880574014378671946505789630368474765526651758006625954593791717722089021421457557336611811818475887982379430536524655563477596920308562749630307531205118401814852641454103454334024563500684219412096006754783735793386487033391606234717901454259652442942178969477550042865817552037149972738749225845569842152644600751309434680404133458082034719123139522451678970751381279073970491993399107817786941812377557210694020582317305935572000165086992386303033651118456084548275592193926558343740265297450438322755803256212967064809409338987783461226720113274051824242002968436168552065061913502501793410607952781247254283905853128480692779044615060247845770030324768791863045798584082682860944804344318611222060325715941540850804566071780891266548766521956273582043133110940387104779382529960495028536917777280311263905290659743562446385337959197315646486977823650320266437543790213316558296401182726124044832393832680700504122436461147189285604825243130165347615665452568662218785368041682266684494296071821890949549542032634735473904564874876317234360465867991473917932390521502180377206985345372584366596618112164972214961529888024645172674753313910633093324292485600575172506597157180775981387972566362235294793963420767543229427484716687139881062196996227880137699269760771780942863034505354415326622315886626770645737936385243646134493715179145717396838795836269960296613987980949114096784384480731874260028661804994923328439879239444979208611181078234197060944383208394412557985452990352951429422432624867434773431333358369150458846816532722089168687531042381737559510923429419230109999451811491294596140539827461058740116184188677135704539217541852554766969371572632124633501061882203569243143895464739135999623791544855763709462749760072782468806642810378234312012066439429626561568556170638175432205735296876034359613359701270366658543557306418074175905747475109477522198326119100073612316610526613909827502289105606172460378884669698247192931939522454947771055583829923524406886483289831779250839013343547965912752348945802712419192454988604002684284114481270320346293842452800282304850086234072662029202045862065476143520599878837441795207687151201857684306504544002304997131802748027357111973692244458834187311108027049072679077927320359142906787387738280072537938685299146581491885640879696051458634856714802424394133822867460493816025357871505845562808682464230727226613146195686093179531691290677946485257162849771590626012566261712321519577141720516391489591816595184712545589947806444875016292378065708239191741701395073738059646435128762940669992498736945747305017949003397059655463965516943890446631268920172996292764192922899774468426855265510643203419227960521597030962827122931375074298278880427541771306115112099755731329102119225025113076573138903150047183101494654338657900647571446870944545609704825983945941423779474962052644454738114284481266110820260017942894578073959094954258141544263263013936914740017758544623830285804081237914566094295358238117300478075138817613955705570569886287419086201868971252190546936515364770361557850926822216794517711420423864702802818397047721207658928483177890713716037739785604199089068939454118537257120481170967481601307928114840061551454654709385895076834167699139152286228578565155517837948195932697327155540675501483337143246268920734615245573046940898271310273596592429208957960417895660571333208586468154837744394856876895314339576454338348792156136709507629210377629640589951076998162911545119177785982294697550160314196865808692111256089716233638205538857845920613639378380902071673389754058551085767024017817513024942257404654346590008136774507943992874079897485984744570395966629581780852973020434035030909552585462468300897900848197114274603925907835599744715642201819734613386368312971610778327664133009607062364346949418468533659420110659135261939864296091202862378691785435831431247549608690667564866405946901560818753425704038608164523306579271427122045015022794961968590253779026232613998361360716268729315113455396031425491462230958209547134379425561839674027643287261191890520122009197103779573956294823989777175435287691973066256746427002080030339087007789057608229306352773975919062642656510020407847827420798480979188638557582490591488734832059497763022101030958898455822978851203011513659372537297123786896411505314344695020233198383148310054809168014836846473927562261535561224972766600654302748226764160432140239698827025396383684808777219374994704979383483009051112599012370102177413190662046803993417625712039756594835561721563393787198078810312582718751927776551577363580444105150558952483352228725360767381097617176347909380462748431527815167516999135181209720655059531038196695920175886073859704467867910175180286857773068479697639690492718019722306822739714623939491980315672731394105229727211406795931772887353831835021483183634324794179391446773055171039077388483574417759033688891762449457319247276074873781145094838922676091746338046345430664761339213840673859502073568005591494491064156716642184766052718107702888747862178525057365947567303635058962672325145304227763637334838520454823422183389174109249080940637447160983123707779000659304998494359042052430688417857700946488183835429850340645816223235699162971332066876277547457452911069778707163710375642200526326580311599666492011576895530539216090325787971257067367119842845590735317107333200376092368352785019712748948447242143926582767827263324697944392723510041534420953461668236102068211548826382948259233511633805388558767552672015684726116679600965670950423112654027814491471940017204740867655287032780150354844506488482570222510298032706639726553114546222780730763954388277370100035644797834083800849227665843267693804156389538954113890892136414127181162529715762202772913430384922529728356237829967880712548465941410407198704019885084823863917329714397347378925143866419395319679412097249101400633344347980115050453755906622635733140917930749429857013568322401891564415008735030816326623469581120578393189181718156633152336770685521208976709277112549663023392842855529514940846873701813039816011966927751271066459083337716228976719487016910758024500770021112966387199348128730919071333014568289260775336755079249769059402981029188740364220122262832419535964962081090493924854351108706407137160452371328414470829119562499171147882748846984334652421891269883848814453502391181987294320974384640233052714299882368807422639307750740019319249204201236631785464624228650271757724992937276742546157318900371119997808441822196390583167627500849137152433502552916721704844059290380681779014095739080656975259946879020335137102037606035655374776220117198890764262730590083150405467705026992455212443099677761135287982617106244816515720761581058176831563197658103000903067829002380818441990734953895648459266962837352020885847904213971734760279288375334550722421687589020605016961411607030851400247346438351734249652865402831578408054990077862207716886208526516891567817988244633789130502400608031304727351074811752276535397706538576292238469082142628749291689199662096749067020008906286322440770320645660879513360328415182265247376553407338129715027740616139412361440044983186554882419934849076263902429662358651664040225016974855138519532938915755843352163149869743896755758864143534857288259148096220695382079460598766755083289063656260112630815490253012950598688573162744059674417693646904369098724723216340789502895854908184013708989878181568941743620046977738457266467998969229490809873940974223318146967148743828778592853455630998230655386041881087053179804443731320400743882515384906411909567109218275278899928217018442163589112299145772265726295790957027263177639299203999434451012883823718665525194812320917506365289464054686834468761461295221719887081922256943977250706823128519909094318670756812230608065238257599137658258270729236183302368545159194420918389476275013375619629194209397979668795009376406599717503252149584005468624475086244696942232175766564399603631233068976367619348834909854003650021674038283220126258222276808648117462165842338686492596944710428788467702607714661316592708946164456822007527479626280253017650333403531327334158273620267685731829488559750977384678704965821840835524992639707346719727442629239981434218960120044401342145593052555470083295507353502354288229701253635881594093078512807431486741180213567658623086050848939502770923949118815653849526318558735086610272930750909346830489284763008623907822949943774832113625004743731893116764839031292467296274730446894213290873045931304519550802807053941243335036412670245365733123068539232067085196640533669172738844905268087560567853225286478989804896467704592080184373971445328855034475958641288902471880001709370608940608333209403949139687809657487686348428856406167132985251137536125517844434994800427332777989114678471625097648369591724902096363315048717425521531439158091210632130873068129665824133572101059801319798014502934359030035470627970290876246486354259969931569737249766702553992684833486501080716492144460100238034042093194299219361777791332396921163350557147604550238366256464279921119846919961248621588193101480362174372505966282825407475569066306258337314189242907120354330586778135348817927524654092402912902461999787561349723340044489033836200671430701277827063761645736487007491798267090893402698640732614751207894866923220555117957717733967540652171378787469799745218772921335197446606341160351048921531417169168857045224183848496986880224887523300783258887542231594004786631272369436967622173653824831269717699121077538834855740494582007894605685039808218043562548522274284616711045884732812781519063193060312686583636500500602208716929144932145945646976327216040622316837168251877188623129753352653736862404887669065273109851145255415285322572106130558327510446838821188686359344191203014238357860025643015731749945121860888146696502067777963118625144069835839949307512055354951581978634835009137098296149646637900671022594515936241401590922906996025091591902368029041412606070020798968615349248814870322188516049652509604658406031894264395330167519132133377500244412084966539340299535387516302363804136520183621648036559899842272835565931572774197871921200589344951976446875511204778350596877959060343931664185743438394868590267202591783197558112527103526351943906916936594652022352821128979338988558222534678328383167345184147949337922172269138376961082978835002180015130751107749789219672880452284894655111444016730368441587022862692103395410537610818146638893458042151898360183989352418244266712182077189323686494425243984295605404512313051693047016393398032170308338724442880816432369063681592975589273500397317056710628877812738656841883653757823268724936819259982808184290247081793077074563089364681135311430227496635673464827150892340427754722017174971366741435680273856234737174798320935944821345003916649523001672827466058775255572698797027197041788119643300945340408374657634229815444495086903377983608549857317061203426738601475822342696004195548265706793081903408303852033794654986615776637391300723923217203093786996894007235347381660108602236500197352295287793810609113249076671906709487551210489464850690830024199639444467886403952831668766354843016611596429063560311183187512358053558039723046759480465316919465070897097178805824218890904305813590143087214026384747410906351648194559230522468577103436795178534573204649417897814956159544087644509472769237642777979277165528305147428541808950627109140725586809150140961661514944070304291232539839701896021098894063016961604278695750074955189119503815232422202472056941471850042583195742054577493375217780250849077975585741231661125133800430398489793682651887678571618959238667487532388175658817464657361058907960066610976265285111630617539585622297020411711523706787764684924612774891081100480404079401842271533839106182300941133210323360139634099310394790631892421856107630951472967241799078540479606218433099769505009624565800298843321345993555913527797885350159355232330408584411751179184331563709477165988945105090007077763394502211267943182174678660926214081891816949097053334112602737492910069308851298464276063001570538920507240042810528608134060151649189480131628059110291452054086416729872858659363843531683947041966661059283227100760548396327093632295157488603768169971272515874858272302203894966486117835027841849806784831706618380442015610136994029568877822710681072586376794742809801236178696857373817641871521670367694831541595051398860465755113532388214236018279523583401411922678846050364718551648832123120731261616343951292838712059180606157331160343377653937027662674397983722824791884108326011321914188539180095055412290061252777034573178210375379264413606497386446803115896841809154745700979876865820059595990332568404614198624968685644827316937435123318131412882436748702502416955111589831302411877667375625920571217818449587765088847440825125487025341526874457064415652765076810466180663720633374481060719082079055773436587671442347027231391074640244604768244674489009468951676366426332873630170424247394243005228450811727996692752740577817626965565633281775435819430832143579797476941922918105561362941082826250860801932393712103494761219707697759152595190242464193131034240661624789492705270659362556942711591377806167257417948079773172813460180554919034385984518052513172729222548200924273713914835917484388313099204895841970247174257121116951636970669120524725243002700127147083452771715991546638782058150517200101656523917959372113308456899144909723825248185304744336447433912885196160110598362713616100540698789268607961656489871945782075250067187371953587604262164862072150677398036043390952794284801929875848927539331899944281933522480776041413564533628090800836484028194603039419648788999150185728029134558848662240652863845207297590580277673635846993198918211347845025589495007497054866238519417138015982445373951072812951314102773852568115381840099925953130898677190389605294058106355034021063806888325859623522489972471022828290212424883241361355052077762740718557186415836242321216663562401459115767137639120877306474523835159545827473592709201127652304758723201495978697836840273050902917842151493108202017426357960718759947890469744130317651128720192772445047151656403295135381673568868821594504278204628852170765053588623922884043527343796897292159361459098570343605866017513344132328821484469513765873711643331025102217692668396222643922916382093662467233126805193193529956664024336575452584596880880885378881048148717335698178668280526208156253479289293175321976596061692436944266722450536710322064044667893107792695523046742337727414439560566116563397503983873192104830502402329394953825393500802153690876153701151898450515848781418350618163647436138947617902080676362467340291730116805941178647467774095663817837941919010272533511256485063842140090123670690095150861733070350286236987871983113560595324634969154752519374479327550952345646638773618841504245849444496141170276977807490479134547084495253857182986405103642517905940413429936476157555202726138550676004384737244355738443946029978348150035782684773559352444583060842004074511302916256867048660517589628106877850811946566805039246355728927650104722256612403206695317417539730169056452468286818422855857767545731498698375198769349706027151349399038238797009539055360644789340032759109255771791430737400353004839613374074430603049305813166240650738288980093769448101026500728571274651096080504725036313036954945028990899148296416152389673319288422825996098197153560676855475943944835981282085744448306716456553529561101618398270209936938745706786177235161237640018145601681109279852602726597919178949349329211958728729223164007205609354157269892563194215035274839664186125177062807426525504299559886787973569623498530176118700051612492101203929504249313628488638041513582483782838874864990260115570080509081252789167754478647985665007966303011317461209819766909384438763725867654771604645397936455334702283041218097788705893163210024221371464687369575925305726290593243912620923546612346654960061007808098081317747589194981731102247214158746238655099156851640388824986681972133422387129140992629567652056521940373290633780711911098074800025060559282154114636115298104670712991002678113119290825313456762309397937358811962242797735309909112202348109037860667423163958832005086142950354308617142043150613883071959384601406312536802510830487051797953576755363628191497996817179831366525220906502155890654701624122774689332633269079823707849288955596211217103998184809933456004503864213138206792410402324594827100045652822596155034699924954830503291780874578011522790508386895341794477671909248412104931289260508370327928194815990374275983964399490250545935686818259600832141199156878274338706058871837664817037957863687209392208688091027729344655420813507157127701998711931738944874459508847205261092468804808604361778485265990802840511660226099120082923804566347211904873535803979265154271238871703014353849715664285396629930337324514146897525869618983288653845883918322518815719677954709190023599645728738477832879869892457653965315631346718612271019680234462089090713986590417150617320832271728999080272534448227106530860197489979890752220254179559123473181562604892649895022157023018724767567026765266816470526520722593351520564360310980290230808987423618777254535093132090672137608721133440916577167971740741807063518803993760343970359655925361111076261421425898896987409966829680454400891989734765207865895167630655099634088812889369299154579172677146990388460214025742137914607546315102939087629413227891773161129145812539692211453211963032062583477555086849830777094296857591502604866123895586388445105305030769301839582050213042471698555012582179050551328706364507895701289854686521117040513667785655855733977956256146618074282308982623332383571250666415521690654329397057791369674937681835019957818886836641718144056325427151785136565432658065182194106237956259028528773301034381318838745473765951892603392815445815902135920871911039852178274095309243295357199036083737410580401764977410910442792927820376795009030228589723278552389246496338473355873730463119970812553657551661165651054063947685628695020601851374711777354040192729299556619694133776009217056749434807480772958079820694084753083801918274916163955484214761361313195383293113871008066272152482661515801800995250013015142311215938553795344084284552319957942371813020209248885780505004727536891480435090798899579507150570362252567609816759910991135314842983026862454218686628528619497831982018342928955762787153852470011681777820126519868033073844447000857143041005550852909583361345005758047935413053414587110841351566782876257861583997321548034465607752412750017311213255328814909767425333887424911248353128379266114208266487196990353404554986405142735741779760929927327297246622892377587625125645825290664359871044343040909878685415404097071358892332855357344127091538686877499474223601880798827511648751166487586515617628529570669292714841322558950182322037895354308988957261768224465447626679066197084429866059800602192767588009201277883072892868999806075943557478951607131089971328642855880122267202315612518047527170819685815869056675995767931109789333710390495395420252728078667065731367275525213138581234543401578906559966495736264247516765860483691704456816263345200198208109132026227268895946867336718853818648551766775875113926651751228639372986020358677398819215608330697866493698425502249373141284491471114693424148155387640061033356070899211116869830895513899601415351512480750815032453329832331676495825794167984664231044467361534485068847324296470189267519051599155881188199735566576480692852388335333767387932183915716451491108198722784758318343338036850442216636386233894379854684212574120694328800568753432622346330119044920095274308316685315731185844364892330211482463622270919556431115817625326146130253486453231906530166413896244357426500388768348219438823003255448457434079002336801148205734228047534504216345358130336635920805579398575583211637071275255441375726587130456888380334419708277045909568718561689488668413810768806618244283197861265916387430702587754553407345402696561750320380455111915649109561102105725279962557417703145079175346347884129891942258596358186687323593811113832380173497428670997586088283453898279502138161917092316414976146822103628467825238448163318381462767303600272080702822045365754029341679883107341356426483137801800213781853869511606987198774567337055291625343262410826215262607163300394260790660937394891041993272179099234316379652812155720077431170244655615642097304345137574486180898422599999016245530718964556235515165371743310418390074259320595624926955021325453202871304551715902075629391354346382419664185596738189143736148773559831297769992708036063017641197803397007824327347594951773501369128165277191469427669282685857970270518756540029951114938952576095830740383025790346401610395827377327631135135451527074894611588210602100434169036356496631707383053422923235888919198923015868576570915932637499276367951220975673027346027310054625132975655937786940899253972282711478915735677864288069038618334899441908405593116758874171006145271791401317042549855768584518579888882730050557804864560284051304945596089295375846213823890675667059329104255512764862120990908434713744635959925784796328664450694532912405280048235757591259319483643232815237914352849110856329843926695454851272095802575059143235408241989915330497844339973347747085070949123774155022298896624574525750684402475452532731596667666706529047944876690498168410833515437371387869867013114436385087964412904547512252709162243960045652566047985484672957805976116337090029700013006591487572229214275526479881806222212537084024935595652120447512896678842585008100919815980008554021418587169372649402859893957474261646286404311748240470180513294628770923621221526912423843189016472654354977816204134520349660032025167719448720854362379317901272528000472024618327877865786952600735143856724465183583205865466333424619690229033337693799204046626834340773276236611044112460574852164994889801031643318047131038520332178069805368613368926884030781340214785136971251866480133671023021731048688124011386301305133210216381505245862783163999598608997337386805369122111563481469793053888876189473336113949137959698710737887900925979001627362902212564608820368901256272198103154044889933276881077154057423258037584442552338686549307047494326835921385903423000038176494472028734922195076593220233985009528018250687608933177300385487455127707876762422411412631147249175366668764563161477487705534266940045059455641869908601890600828885345649950395104352367941265958872837033241720578713138149680802122920475945346556136622543964160009240840210123570423032106872347325749325814157082614618819216606540614675956409118731682279072300063606291419281674806942296272803249736909151164943227387341465623259061995476353240849962389206179200684449231604346741290355884113552714684917289829266578985674440363046750560039680493681451504630296522329735995591728570975870274344055851101352962902792148641989560998456882132754199060396752713275833415554381583129540006700388391054472586871322215563686461647633526445954972585941080797197919506355260422116292939905694078456129891285847391203187040856793252243148829515656955314315883846142835339129723739165779288619168124855571148347129693010763161653735695103636103255238224420282629787250577569049470862547134170580724230164808394148546457829654301133208606227050933111596514792773238863506401997969623287265705504202469540373548541049992255099753230660595144479714400285727308465792458255824110455786759083147888115884982814416895406614377830872505932613729920893684159523318018346847862185835744057062981375346599157097807538162410214214963490376443086414802488594980602286576567926233132890297999978868726030964818333410043170540686828792877105648767047237546262071784450418531001645974271331643914110421055665313450490508565002610134207218173299718891918944031023564906527126213135424237108327049198222098351423043864736873891773112442303658725656475321850191608799052403632822318908735956497435145469299313500181550131562881602329858772782318920397087714987284291788828089414076399413452855983399145237369385402533093096084980098754595097461885775274844451279212225981948460101183984320849147260360496949206158454672268857347527216673039842442315206442977324447499438023045982976146594370035612715647889918899969977832956329588114834514680443291729876467047154130394734238692035718145026269238717915308113088360191540616786841532793569319265072506569549605725019022227918830801170541842196234129085328383635916161189157848504159595182576436340948398210609754438707868440919402633494553808202776193469260158430246827532103720234686446361987173261213234061830954804170549690728890867124325948713594952785070200215649987479036563598167052182992678984769527171537287825281272776213222991168726660891409430093875277211824132266108036127529826164127944299921556152573310914794572863741541573225103877066478462529128779157944838530877057280852998327439604390990727243442781117536770913429998014753473647766482400501180395327056216252374511981075174981562053751275297747746773606392867122424051614890141962383988331686207158977308300469016153783736794736851991374738733125874770654294717859973829229091484800081646389513272815798860192125298720642606044549686347913220910746376091297974495455049684483256505138637165182184892683492975814767979084724663526248368125045554713572108960705015504359384631143493568292363467309722002171329679826890786401704938593903828151135691451582309973302446170391753696916469033638298974006415819363309836165447458077505602072274948585598064670458681413818351649304305724039400374306858008569583140847304065103345900681869937314424043387258346897367442244432895111905631275421465177368551046557202101125805123609523700900116671060005723253612923226695910298583537611539951020158344088715703050549572713201750633174627021776695278213449502318397281215314630174202121518168799968896467214473936054681880500684965175232352746209742050600520786212430421449717148202767810984362551900174088685779500557101939226478246853024518969313461751183909640974998055912010291852619944568112790308691893256477104053578105958264769608191249293099460701735410014720268553954766081502498569977453920681942703646357038074579361111765424752774276010640852574688908392775228323527774228986897692583561253421207767709930794861466633078357423409361403252419583757226241073007882423207223309896720374980198770727153267693230499246476043067943215122450993633299949791798208903327440771986202979878190967242715071377966151629079234739169883185730848108106412337232413669006678087392869528375998063780033314343949895324337413844245326297542528992205226393617025770854768046134882355274847359982439877999180910718374061626535028932192126770577762350577538477105158085966113484253038860228901124766940639365873140302714648860097144388939999909689132157288113653276169056632755349472234050668975991395378165932950071509643514357029398644961695769606878496097305714618410953448312310445195881427169266364703806394516755103978758225227325992245204051494559832256523155765403071466305417411533737811618742487977942269851584538602188823315632169081644474271765228916035725878586812359988383026449802113488219128226968438933355080377303923329454615731248742190832015991909531779885601891841715088069742048719628151470483357837471083790890760866110852155270635072035754474486230485010396474419137195604092887324214529298719359293259196838394789532903647483726157423785210850006656412574535153288058736785911168944872373087991470159856482929359298898935630861301113721452408439854932357054634434910377979452829045964943352343781883276789839093072669833071430381026941467600553844216049395738484834875500543089763087257507031910957909689495900338714191393437128996786766933833317197325833996058158953170472089235313259528119091575811182794654585814426122064881958286811108780829774567388997162717919382110358555190293019898924924017412941374705897811299028876645698764153898590232090892483278594110000764471298475872871062985994790528632086953515733514610840335897877976314161064360512220500828892126938459662940894244947798393148916586181285451376386404701441093927952301609721604824754625707262000159652735105504258114589213760314489408396928766625533909655353123170092553272016845769105060409320957767799805165896299264855475758509335101282950660233919244366098217594906722296479186476003298702055152392477766250887323365475749545067515467692837435484072231518037687648313225808362816474566895443870068083062549054951346583291521855224263031169627281970091701643940301834131638751510303469338992184386828432262634792556662840518549080366644639149798351532798245085772310746330979771012714924905135260421885438381520216454129086403885807230574231480896898820027291840158767741023403764989991385424197533165682312590918148099202609874155166093694078838742252122773900737537741826929966593083046653632020867598979190837431654557284379629025882593659724367218011095958844247293675246347867457298741643145998581671184821824272860942698206674682923603437579044414155897362190269595824169344305001704194644810378044037992935394063309699978022079069714138077514391856284621744037713027125029641370348652848963420265653812289443151502434901334277348726199705634019370550106607581370822279976162431988620234096317057489455004615360428984335262034128626071310555311862394586397280987534874308774291905134427460649835702696190732739248821343775465275211084737004794941434977984528341041843399714802994937018817295887067456610149008285393025371069414995679397694651601709208602094319966300864778867893390912655329784134278672049191978620300412254301795773956907839683537503618842556740178251869899144589613373742250481841015047944470638275562233427053495310548003240052446321286180182129768091202211719185592563954259129687340264451847162612423683854689712424127436707498287604191991715930905163043107976876770475588855780374974152927255970283401503756390215063860081890695020023376181937266693195896941612128060116002263479992435117516317386796101372245536929247968411354796894342617976092008877183179052401985757995565727080622030977064784242740090480755478147336801610032144521696897157553316995106898449211195194526227912847350221368977924924206497066603100200592005534981155194422324213885084189103519962867043008008348607495404573243559786204439081681155577346274628205812642278767050009331109147087272635566601838405658311452762777618917832430495968391553797708514618439689874051472656640202711526323374655857644649558787702956906853772048034384063320981065451160318557107323125787442411532973822188879120805497892875613028268872988577335599956508813776977327344085775029622166322301313311270490857774744255982466166843013317146598076184936035836991580394192236408903226889362425966676724143896748091847245711030817485525751776482890961688322356722953047715735323955156590381406450031460904773979084113659205135612795205269645759938338528381772955430595534246961012185158774582792374360704908252697311000574903828217225295310018820711859907005010754189637291184447917711957488813074949475615055241111537657421724320981913076456041979883503279822674650446269773224840723128519430689469014592298153702883871110324945649997052471644305518149702005970993753136397028550514276517575232578659343774001137635507964681117533291853047033000365307010069399478115130694270061220324324376065358487880127967553526392191489667062438668146812702240193674020867701029434760281352199602228679749965700880175045776088889069121278154703080358585760018631558537780252790759484499130973759570140756109698812563418050619449743338800430161669884096595021251506432789152382389963399639191699620300163952732724948141340349094847820568626201387924469958344468107476075699053586396839920079582123399730531667973318619891090615279897247197487503427940731708902956616498893070538618307621831696440764919595074283364051351465263918713975036522358439966482119223670295273151310677089560064538980104449046509060095793241962852828273146407678404917700385605308517370251702372398868089824822604962172760345164700485726864206007428233581010531908916713718258919487019923640369290094109904349594555976353743429735570093263027876289293199656233110783650192418480795017113653426451409560318018627174589692927370750109944114291598354182430281193299086926454244281847665535551776617034364891020551488321812640780022312227840509801816839837841489153490477089102637354224273620401288419437991805524800367004290619327717632113549686660844925385732984355829259221003068690684387879374563733638351870219457621319806345035646346594440382493182233022509009698985756985967381551876249764550556310975209912838374090102231996150257192797322829476181011492276216466800130007673470925377821965132158140092121571653446496944759038185734425195541556942998138070587804950105739958671874328095881638962246316490078917129418622103071735601406051425787988133670260738337013289291993391018958877116971331214612294359604597481453211162316358929387238402574098951932181510646724772067938901176657680271937776498921239777347951130888770541628070194012826244940888270079066569765160815029043033677225650288388870553232162413277389334827676931609795485953712099092008951398905506678996513436827515649783335210638325273626771295004104616395506956397727203772012691607545741875013620301435325008037373334320473910048366357615953855681620266936114688686342387247953028356599650833118284837793350395582649366609597876694095354359991537877367883396165457722685934357389045359567580737256831847526072291263663066659148602143332247965109198980637073310136814567541760256641946733641222595153225484195198649398261930309222391806620368995096765385733079257046265794769607472417856099219263167836553660309423814651992026175850722554700880368631006292327494212852487902974216537322717138909040837860680866311139094008759710892551243333772653349727130094530633501043260344214729740962414753221285720796092991591848845599826490545113523478749176124723376711037441595569157084301769414948928692141226136902936190833429957061073330253037274116235881503044162980000288865473155742978269205255512236154335860348837998617778854348017223387734542744977136441969445081074215594677547232214714414674573788504184044087830112152557813513267042524709383992590083474532599476124552752464035335942468381934735874583026833315456550587392258220587905315353445434564537531131856549908278932837941302747661706522136528409770588940867793394448680552593956737654669047216570356029980008595528985201011774581527138519736260318997037696933657388148797799028754013099910916110526360496091937880371039783469922986560028352956620457791432681947364883090014573152675801611776060040939231755911159115483372760441024375742869342672912242960726271419204382208997684300704502630536805848904568520682085997633370262630087420714429079617945524708527982955099056583002167870678113529949862540556541385373649252193023432944919246405843200109944530692208104125138604188073972809509690483349436096886019719184863659411495794140586673257290616890447987839691586014097571259608852613767590592417391527165499901979632863625307142691298544057805941226078326536959241056676965149107731048063882045790445699520373305539746363677581084651116252090419520771315761239876735047682273521189875082460360362585622895441251338488121654004632737139779968959823476630281799547143177120099377824759549743165612748153906601749871256334476425257015497962178600025634384138475349709517860545255830398348869307566964855028230242573973609097994682379661196680695161026547883499643146747910045514418530702009990913230763787834340549666788838983794067856104810230317875621555093358776467398339392193382963316431024591071878980828269942353998158843874782477810945276277964095176965357451542029617424173463175598727550624457434201820762333320029963671393480650307700239054340820105258243973271702022515226682465032179474214937008624199177968547582163171717633312562483967762912035575411141949142353119842075337823103051916714075952713959595937856085825803966007822392792080403339014283014385661745362358172939242440640507060538938349132836044899362326752542058881355102130486655925075176814547274039214825094181300624074147620265414476918635134055528721297177189430576294981602119233441293885585859818536641550433606354342606628433644845138931417573295865926986134181009804864934840398252714073536081747984533481769597213410072987315860057998544720571652084171935259206859769883405645250302291535020190718185120977382846507125285188891874948808513851686938357880044990366481420872428461090643968689968953756998737538031052989872556427955023563803595985595677489641294738953061580961477550004489239053589475035195679231537048272954975013356874288057873159537164399840877379170702897599272738569143836492956154547192536379979276354886180763569813817474634450407368092891554478463505889684453579507556821043600791558121005747351999394921439376863965324119170145842405132185502268461600088815230506447541077998459532319949105752206630940741833670131893780219405506477033331773622926190771474536187625477569043908152827135319463022560185338399890062982269290118990262808210489067399422871763106687694493114432874629475064474945592570632082205739432251284268189090047880746099426992214133010924677152052485223797168948132636524143567137950474820121964737289107348437971317854303515580497475760704994559723652022643494030896917592745451212695004999563623607162609078888361879560497697431578770812326986970964842369307766097610357010896125393576686863181037377603061057584866367224472466009380443581737896197647398247847786246227892275024927802470094855535998876633217172164241299323535830529677906663185242308688964906538089396018841776514362574948877075106990863921228927569071918661396668074183679162043092898515110580340345095783655330214675149863787989189506339789126044059840292380460897121934238542549380485594286492329083469595650323255280378905695511488080036805815232214442416309822825458929674309035528612770969832529188460202359370693916632274547897748084855201693324648292724044050732253866433989259717785066039805973931470642336915021030014072244309223510756112277401031757764834572808537630886288753063338139384302905557906179354496691345766685246125116442391272270739148039017731636168564959397349395723625801006592309246912579306543872342440206315589035778274634416078857960411220103126782480117637248713922962867004747776613144996000765334966122829655356635648878891270740047750967494247240740434119397515450667239043183482469395317976946493548851517075437129838128412965618745306164765418900360872775824595197892197249833509661266159981716100977031601677923188668894741768489776761779391819836547146695555458215126944877070529485756272186834894046052401540426671472081340439193147779363290381688897818732722023606738233486032253192869112901636230785892519302542550704221676155785254216452794227112480473387383054914038025348208446950412083022137255930921858280402791994964172721472407065380767558721528572175256249731311748377632508563482270990630780545057870685771958013394442873556821547130883023164520928000174940591401035848754510228649942853123754341603001812175716305150497994375439593627517247816272670411344134222968109930244824638582038084480878454385041418406662711457650480267661600451448900049604994137643529717534712526483418501897113670629907754800136531892169772649341484003381367767105357567625879355178112858280683408952326362281030897235829395980299773197374242165874974789945911979365079402769057429689548537888337599590958276544190436132416901183916734158849521232413053510568856593562815313840945802078553127966500230631175572681302347819424410083171893101364057087650776058374960927379639739205597648188957275317032886049175154978354749729460604657777374499401458260177995167327943139817430284945053392006598185649770350002929163364940068449788716819165384953185725213413892490245960363233443795017764977275756531379170678138608603532602583585535426586443867230132558297824734100776452814481647551961041908081762781821095071751299729930910952391298936452756927695231369919141641120884585682617442108560018334827505370642731185246328725601618403963348971546725153734424478157911119895013784201652436526110226733540917509438016265010931537280808530689095425380036453488160768179512610146767946278928329678518217114522214858764381599184451463286790622474563578592541553173369025262748885725724427027453961314993680696646077215402746926105665935141664143889342883648994295140437417418932670935108961456871653515034723609625076237390332904548066675786773505362588147047787967475919942394245893417267965770639787279400595762511795297753009033693846501263330833405811140492877838689466678684428879014458476349738274554916110114231407446337003749410456551571504957585089238363177201437640739952404317934654908579689359661627603152517040735582478720367993276011749502072225520494503077086843160330490565289655568046704418186054736741572436801385528154961821417062362859623108245922545391289487486390215889419336439408934450915199972715787159858390585263929385331862512899636218217168557688332258918510816289777130464260855267051323382143908663078936430559307337072290306322936654840805502781112305176836517603680566625634151687720028237175819200067680673525045271218202442116677430689294726889883313812492284162669135836573428671250614318844524067539328974475563423503738058366235723796186675852902967679849360364784802789020564438557211201773155115850504203065666406279164701735427383057999170640718372624698927056811554888665264823735628549050398021948306554792175096190474382997028404966562549895559186617062841785688303563792270548327704858597411482950739446909757525691391812271662630921701612618600088791845412714875603237232827925661450680867604557381078778144791403054787445293382397845243661990662280296757593949965702280149461096314272871816204683614879474028696749950799994057853781962661525110256115382516067150897017771650452842637036985885150960795554643193375419805874357495147602660125859050991536462131156810108771593622127880977395348232153400727627041051929135611976931758934149806695204197246359891752854824976046497551926590983190596577562088248077619497550044532910013779342257774388004763561411468955551810472152049747611217611103038669458664189609844377494472969565617341550600139581424624897097823418132795948557755113149738969639519282022245956623680484635829247124410896081894386483465531525557176898353037570145364926570057774309316103905512616466619889974378426535823166623026439765233819122167804219491595919802294491610833593337535980252046172800124798514239848748825239060423945130766266178988537803722961114285045966397782564907627708715790379443997617172725993192235990866637748312736178829741367688331791312626036984883991717027725856408125154680253454297746928319928717425704400943755678226648201276145715531041121945724013452553683631101829904200622970734414260392139501583234226523396993738597545820076259983742680233141530883429144375928470305136889291687343973622412889805148712598973924830329938530347543251039688674888735051123850728652327600276450244997050644375642733325050609618816827566684791211026893063353110516518563557269463971610071278014438231132165588114309450246419276779876639968725987665639398424579273639308605705750775790559388579853205977651493946235625528863758415527381352231714724969549778432420951103557491409436512428237058976986116839016363767791218361612379171791094978704648875956382787764752772055793720477709781332739619543899416841489415646025344636887558005792745836535837027533621693597932018959951977791464849541275652874829729625876295954900560614766423929776430831981006498917304324905647287653471923641167337902005965533831041983749039616293069439036829170211089218058648551730781688313108454757605765764157228707216546385841673311238176871241899515649032907052813995912534937236604819309422644532065221397143808764894271418812562220753882554526943938616912117175108730388186368862268218714620020562017245089127501483979690430026316025721443745016144652964913617859279728786652276355781563423851383064478335799151909649933663638549232892142289697644535228444065744582326228553807293986799837593067710063112500809569346506329459890968880348729947612619898500824116710677211787974488730879129260287635148816556103983030219791168947389984501905810921020840912589402005346143486775099316413217719353966704434738477496934280955703758790981518828200805860183858353100455291848042984208540271840399334302583340980560497815732139611216295988276313677354180023866086839137269175574140215281421222235268700402699303813366627504884437780720047685466764264287188943991932410286379406773754269502357344635886769072356902501885303700823755996983333288657276076067409900084644312638810741456036500123234913772736422914167339589398433279818574088620786468621283552842216796561406169181182750168222372047285661767510665239099014718788024383593713318520074493149894235671297902027845191739605741610453555275877289324431537972180704331030404696613125895198394376799488701453648992555629005704531007824079041805979765164220162547388622843421246391625094273524776832985481445351839544666119984271072442551766572918839161874174427142509274118967690740525269975615317372249070408096329382969454818455832846003541332840199720799377559445909092321650980386147621821937076521728140587019237383876769771156053415773617039989852788542522234728954773593120051785214049591272855617750679907481150332065260664370004782282728567787206885940085276300284837884177477354503918332569275990206516025331526740225568536035036253499995056103070895331092820014001205176270238875216296830133711667653839318287951060038951864544467831400008556901540741463655407757859535615182031987956309096908020107540096594128259280978263798828080531826250497837909535282630791596530213459876905534326871761017639248234573397514223684247750688839107708250168732148575514894562740121786551118616826480396661003481376269843451717245661605226044578274464680497297836833422922277227949415802254787825128646723354300420335109752756283912294725110572299207096539775020291507931651332282136366370372676130393763641445762598603840077461523959377083773849914117663101393179154527511623319499486356764909636178906736301846561040490261882343218381972131222383617329040370985846905173889411582371259124418615780183537367823789823397248314851784298815785212528751943324899105782367300486544819600495582407266690932617067378243486205443184045270563150282588845217033434429179771369385645608709651776513346046285773409915337575682970564277139995340854821066733620830497432275098239284554544922544390725446506339610118055776849608739827623374489134645189132350243963568405010393297796219618566736128936935051165445736869389303055528689038635416189400912784948500787683484830316998856251124120978192175367722610128436566723788196030182286583496041938909650606018426991105797782975567427333887782430469098406932421117730358265493394084136295012102883971611287257570053942997469879516096394729809057503952814415081793507385847198727771566928668953602742228821595334020821744066598973560732251412088134142805781543865411897758934681294703026634768506869265573724080145403822421380536842953447132003147415716082072473800539425822609646199590857334144651591530390261469463440359061040998128701608818651069796078946893086407217691161160067642803812450649576451803745945081475307300687875792997084641437917172013780021821401921642520497733501133169660070233492334563944030814421734107838712739407036530383178574044197882324343439750915049563781172552517968174143617390630170604125519613301940479567231822439430938904547502345504698832361033711305744497715528026737114090620810746295066420007028811200283016355691794715193432121620852205127897269310734508357607886086729232271383438410507961559167617856110917392845411791928494699502986149102592111718778414659719544290340970801800637693247159328409130582093773155000502982730127379900037367402655398629567382412355853638943127328030333683185956980726119165732417713887652341335771136355887979637940884788730921087344613775767981394582804506265456384755500084993171348402869424478762947070049682504382420679731109345933424774515777802890057418270289707109998945130696112404667395770779003098527254910554593334708385625329431216579590044421657820528199984127498597061839356204683543481811503907476773814041984100570939130633872533144821004871361469849248468903405511462956482298834352480176790824312509999304435532677181219387126874764989509356744372518085433717794224179078875650286826379685029747661292858500925955897069223801191741702191626384661498762648672176136123553537346380016960711050749714984515689967925062114613638685491174212810417506057503844417403540505312886872544562566552671083170121218505570443868028401076097151632057832055790373831369208992010451482658420348670814183131600275936810106325285920435233185665459523490249918472264089698778063971189305592925916828609755010875487856737462064313976272682119728110545463287079586490340770973081388945330206124305041122056066245084729335401928138043155221104201392141819282501320707319653091519560104987143157438355751518756757090805595993225401354371829898174904819845291327380449608943030033160125002481122364728195065048621639450744674703167187281205348691445226709361003032769429797361987761104094649403611966626464485626959111008040442195981330251042468661480541395576100077880274163500920826840073269554918819219762687453868678958033820157159533503464400314918290540894588010114656008779392853007951531848793852416407864771271082241855994784553200007673152668871448898972258636826421934642133740033275331890772421369524681681199096807994925891291822327978417622443195165254110749358209038156317346164299668925357475273841461074798266175139458504517062945412536195047118608336207717456062133370770438643463757969284223694441545302640539913611280701134636137663683362720904700651788393205127289209193204651316829662729597337961398144783909652358159206206080163788478776480083071513983219112264436599821435262299411235225875956558596019667877761647644145951007057691224379704447097547269140206247093176842720389213665327511222390054961963322884077463087444765284576134682758284787231129509397737435063397046208212020052789089912293977903758782189151320553251195908531269604454855544959353588196169069448307902808147649499926016765410187860515405736537882884677149863365058324335692734778827979322164350831486783361268344390478950080771180826253206510377490926173204308401782285932184982579787467098505372215317940104688303131623634976802747021191216890742015417839247090673661773114730629669865549901913848626618535259316686470650271426515259179259434717067184229126800183468704525159227485604285257738734519797587547860894539313328229353520933575097444824807062561215374303445930376282252776680464287781471988048606278938710572297195653371141950052453674461220715999416314807503985608539236479922221053055869107189909937322921769198332829116472380394947260230163927629099970731771364680719246434102793421900244230192405255735419427232406209097193286704877194654474695346138965924224132782664676430668468745417213103439285834950348885875632615637009382148474368706652373548189370906266486225901868611823655305918605979703812075240399209252894264250031593635469435447627060033872461784764432302044399450722531543940465350478427931008029455891878979834897287098541973425947622826704553668293627243193076691320000961376056095356412700499945762615716642998176235462337290675883805845359776364507590848470617234811279257327038044823688864442444548195133387347896119625608719804528208755130348708697922169626656356492309057489673176616014472048640296620156179083586022831345933774632908915206935138413064525461116106858751987766642393139406958380067867995574956946729956037210471434998354820703429432477904685253121921684498017353155321709130595621578225441167857874673654102210315506273462212290556946334877093536991232907827166142632185030674691071274773162019195183588645928405743800463758306640883024426045074231954763244051934339024386039424386596833363806735481069022339168250235222256162435430498047910067986457105998134197744209931498144766194331537571723016884820115677118799354581873967852705623613359735465420121031615929306861653972000777211014716539579518508786828310468032726962077603275971871434483338651480307219614201109436454052387224868207336740616500075030813521249565292937834955727266719909884159885585195928467547124099070839796852376771326525496114907181957551685066835672602553906314901906106304854432986542209968553868098056251576099038449473908264175183925876604018046408704015535812748568045009646902022649572513329388199024396219373440443962953908945927686204633966253223965854578096165748215518086533226926169314871238383985857259432469345121031651708104646026294104606866119206621167886487891507385962685981214666354741365260002276080360512606247984970803533116724839037425340169711464076906538211676952298156614987821851463289940526409763941290836203871445364553257306538008112336270829303559202028048630327165025459306799328750759477160924309218071466717679418592180249489582348464996297473872012741197148199407036035707086415488615161534595602117835179762978987212440214539628384214005496609681759739313255281419564016417070893795883254981008346226828582538190662494821021278400419581461692483753093644370414226138369536380474350731536616356619601897906185434664796061328652650449081325579995359220937244534064373644506683832158415819449406026708409906108716751210749082832333621162973915243563261028909792036405774065129963939719939695522720367659448753827158100423805005960167264032824855046672816186352833399784856960177044807703302551214404951834700378351964110790530203573694143534127077668215772134746562302831055791714631896729915403418579593232410775981627601818401415193035893589866324509829962405618146753423848545505225221936124544899465326027576204114399420260329617160468205439558721055698630385399748107412932768916293440397013827746391332537547152410192914038068279788805642615853335851936304303789248118054812672311809455823154614108101294669300889429694331600324459660900763306267853746480323275000981472351765347852630134115290038384995389380364836125557065895349010900927146444389074306396297248036896899177894045799189472733971897373025503137796603878543531971183976582025401882898459021101593315722656880578475692431496110015789561141641053649836201135077577786761795814766189771058241375797876740277470681482351142910221784028513658232950311733319339205758853402385341673809825647493403951521734641923288588415797102872426997446925680512991344494771502406767004030522364105532824559680844739679520580883718008663554612058577418217249398958137226663356708870957991269294709849226862275409705707793860109989144983019400426574967828331639606759159575889884692533229501226601501461652277176678282572363969031056637074389239517156710382664026014255073827976862816516047759505789357792776150525910399322954401138969503462507599329150202882865621796548476077706777126092302341984306610705099266308314581139356951006800837090747812112758501252761982677820387817456832098130292631569469935805289377599988026073705932883130737620248579869391336720703192781240007561149745282865287806898143819527206289146286974265628121343293850365017719701573585507459402499810755358791773923516596235173062145226935583801092480644054347875166390663469256826582613034831599209727011337500858926568967183642157057582746273648780957815672611704624332368907844268863049569192258390309439164703694319797886216292355610077675276538470097635549103241104546751635765523568387385957775981758210367394966630512912580039630368080762516258817245199604345386951859135931980323623050918056808766550560611745345638940592109528491095625859639200287837627205805626684731610379241244364632564133873738010544657994973120740989080376901166692519939183690495446976399432720163747812275868881941452978315464456443002871057878996816617585055188704655007024606214360263321259952781832319586019570689276079662690832101071203256762931822138126944343839373937551428003242976693614820615135570035205393350645030107953179010504606210183730156579655365693962502307135510356589111355896822149372298611461406568580688818073692287644309164025208769581156545386215229380196692170095166297788294425784387905493763753819635462276239622467239733564353259119578515845998749531133247650338286589050883479004391929761034124646709312571527677571806026539970439704990731285628388361232285153640482759348843116900606195332512474359516320340247464370457037368049709493431482574257457558608489690815954648258890751671359075475091130288169543795100071472392742969985974766219587004029127470990751603796814796103856202738103379064082404503441618739677552014894536576949555436165976145958728237661115601791129282763036781032511184712714712333818128029964424208867873420088316078791960076443584830068611011804797568021363194078902413439910256789046221290504540013742770075233916872426128122093265257199847981046698971894476848159274306323124506147149810243389162193379709126399951960854960838425671252025627310918237061556845186062851071612282285232786381111911387144457846276384861065870170849999139666674868577635000781976029935884328999560231026668456280941869995074060845927863933557482614275407314480131762244897715019127314068357371586713405009628707590725055389859259103998095699888093139771796386791251656782137171353585160332341463188698868700520384727399972969274441353693582213366753411504175018096241090362530652860141615228526284112347304836211364784792511786926130069574362809935104252469447103207322742092506915203341873219324979207067176330908888107614500416001648149853063040919894214639609501796422307558114711973925105742347752515736226851716002610539566677276735470470277144650556716372798957317561486423978511410465753693975817873110669335971350607832946048462476039134283258209789199958616413420784555606616259566026607494952344028843923152637161313101712350315575164392035085060853276961473165940361505858460735672644105645842177009182644590633777784184032950997137813642813460255213501830834330643448077188336540472833584101713002123513083290282314960493677979703034171617318943276612837234568727295589132889626824736132699920582249549321234170510802309483269049627843185347932762765416673546347538875379019610857798852014915489153292434253644602530650973277709605721713670071339777082769786758565895444648138019397792648636341448751076980986102394788714861734787140540938729506254456019650711361824904727539247155499777013450669789329465517275029283509147842708838607101798340037726348291160186028074339927521201876105717313531173511760710402361390736242791145622444009006071020029432296464524894606545347154391754169734126708637427285338445047791064478551952482833064200539093849087976928579948833082311023055380015027369516076581974358296819298870281449422937000725061673317513446023108069460870454723677549952395591365155221455399572827339261263444710245297369674203766176196165318251110021179206578481849354135576203221060595932247061993124951662953141793379384325462347499181675700063811867589978995913937656112628479923182219640161086203466631000113987172453023422374223698774345605440178814215805898003220763728453814879290065911430593777315903199795856228674454042740320542367239143016806308027454547696491361537961621104178039557547987307485850959934581181236221829147738378351164920486260457136427252791731160574890946136206654613795150642863031734182456243099969232291505851202622478279235847419085111036085681816624698599029710802550849695348164005097435347960150256200457857965858653449889623055013142535001069983583293873530861628716134479896684603399633771214016246970646902055039441371528400116725525076551055475983522223334538496834044647803054447025613311838532683887309852959485879577345328363862389983097067069328291483546476816360359847891199873548715429374220660635531752640353740011069524598316262370556509143847943928083723742637304362731208993394177740594414651660812482737775657319373940523874082758312467629219381162456881423123449722167241821689650299374975154745496743847546079890133025202580074644931433052312286477165525231913263949710497253030773802925053162619882979595708605746458790437569411885726820553756584649665713067061199225842001278550470978336812978049125280957121279930586841252428509128792613794888930608015995124380375684079782626157181055834841352554208522525169610800936814447665618980145553182652045831830665687277903898974360733580265892448486672175659746110186360180752492040799756275959053085054655421753620294731065867101444776239442909232254871849050857022585111136173623038306823280138832699347012432313618086713408869918162745771367077815450527265233131401916790035857149403302919023369443263390060354161321112639930859173519800094035872657869240399608302772140811202642615078170611095909620418233294595241478108423903173866185495116476994525763181833088617734983108487871998193206181276709863782197041466598166807517517774703750751945818457968150202968369879437085787528403756126646633832692209257334385597519724918019984236622522283379127143648634608969942887177689873294245648763030131175044303474581228797581300773474866967641784502131505272957641193255470178188247642792378863103933708128272612615166057258979066005834808691801747101555342480180616536640675229290964077071249177728119693662042081889366057485324981021287947648003996365435155033282503699765993180994686405245708872521742685645099764378783772669336069784297470815701457342092493749466900961267078459778593858397836405736412301725548075657516238489194826931128426932392728449536738415456597893250934528738899154516632594140109767986141010104276452278715692857151261916575463918428653528812197084609208445695456583807131814525601941926447207023935542087584074171625239625570609011256773240539010374077556357450561671725118492909344620257945670778928954174015997667205994677507427661000323208590974387487141654934843422729862092245384361716511123890298686436054697794034490450336644811960158133524266406580415825515361400323261611628495201832253057158503379170441296412277589693243337722510833820020206843353169218319340757129671622783958536085905459151315212845811723068933025690035846491384158899561457794725551113780347299550713078980786826819696208071267243483003968016415439977105012842379177488851684903954315882640014528630523621397065771367142296132865120987047039195174061898815627423986153999082910101498621639193482132223409398266141471216780944954812174370156466133368612819032993788060939780492680062161393152823201015940488837126979986782482544974534647269396627046264900185034971294740638824421953634615310952052279008545285853758259103824805436696591091025686763360724669024525144373600031431543538318137336463882612651120125438854716048179171173875819671436560666820381343187118788581177102925610875365589209422129160123259123049355649323900238825858925734242978081471957938903870136862301088808448928320768374561790651502751293012762341559272523623185525461781865605662614600620052985277844860003552716693088927598141215401283051288604704796456690889414419496549821669009274008230727962702819358807739820035368230297419928798181152544824280321936171097242662312895122847447553772320230938757008956141661427672549863042051500816711965976681667791580497582779768098157284759182966147476231638145095146852573505995688596401718709803807280859857397076055347754426072236967780251000003910709048751415473796660069481185573273963094471704094471899682418836688791956666778014518742710075236926852815777503707963505261050149712098567901333557264201650263193294500746596166673422960661277451422713335384470690156125087239370231930774374747626974202169674388883979490466807685812945036589849091848586384963701777469573166570016061443538574457921680070403993300801560683092615467392825584070204902319839070040851206854604309921251343631309598263574127886345344639919937115756151911283559310782533640440172389973255672443460189401328204195412695688284134254366659988538145918812112847482518710243408177752023531732227234149295230526828696945360469405613001092801827584241497775160746893400205140744026345856246274942951227662227027823093310996551107412662151572881577485207444759957146595257201671030692666091791661954947036804859275519925145284279097166291117899032933490467839196568491604407899076594178669479103529168441119983079334584451993993455838746137161805461700667298545177508331903503076047986791371617023518873848289217706697746304638920279157668544153973671221883528263841363473064915209048820164170763404358916311290077998654640623182666571860249693910577350531831323693229654588119324471850095333067697534367873240889750302494258980890070692018783846893915200901732677806552879399009824325785842114956749176144907711823807405525232651849716083219754467449239535367862620945407180870972232314922408595743759252607703536052930219983132651269474224846368690806531026790623808243401211214354356142684789454983688494819098843456761533803724131649020414510431725076031801862688070263343102107786507869486136957050716729110752817356996028486342449196025311703917035860538768217425246300478019510738521667108656011528759703713814620513722694173809289860642544055180837934782785238552516054627770961557604494113191378335979296178733354985042607919521925061650419434975447310694354177030985577018950572186109486421340217462813812347488454027091501200164105193187220512586710756221321744278994446656843932867487721326235840717976153319337544373384387188825617919148034496562004349927234235033679287107688074847575548008873690996683514930332649466528191163304792481000210185908761375837240176569564911032666815060597160493221848808484926827280702313351593973578494014566532137631139978374416154814340304370288878677394513136405376896627356168873521007901013205545003699443296105609446246065803457688670206742082238468089090161454632725511184596457368969583932066381357777667359406896216525907145250190737520533448569410076675324611948371007094371755081371628437200645736688412629338868907875169168358359632245266222855997526268810066854557122614989608561012196432791580748477924949924565865388275065175673592954038241538890010405321873291507156502802701818822678518041654996782456090476580450564549642241264416915825131770263442948609134808559028591329322414396657465050923131983575593753820954971053793718366832289932492141058615370623838061189464248615190611280630934089278548286794768549305026378230666958263650233423912315460238172101224642700122270020851315746668455628440062640451693931483328797791598986586457955459025075580630470812062574691342703606297990869848500425466036197943014591591561544473423681880255983922907657668803221813294177995986066513431417096816139850941368095356086560463527400608814167353687879975833889849977850728502032355283741958598540788472214548289524788855744899239626664672667603402757835793294580326076900798623864050360414652637919246240875517832476856438822452290073637937746825998977993477839466918630280346701408839510872842109069508700976465172503847724937528040292469127430899941946493754104296203024372703696540921425417100511445518426632477862061048048214415453374179646182468583257328997912363083185036544870500330130891843303258748192016490548368016155590807313312804416466043556834478904822957708344324079570376669598861402683262501199855719638186596095345410703653927136408210850013857407672648213744178579140055082077181060601790639231062830704791971667923916759227937988200158610508684097233990697603259410399200710777470862669453886849653782641182143639613249864930869012835441926209669980691553739931470672822550754216223626153472273321700496742779894346004501875082129116079145429850224267431298782338659599262125014080367102217371092471228284263781380891623729417259437351012693250319074240655436649628702305900695192194836376873144744545213462877359036020098703595435845350862031981754287954347406774587914816032030009291787802338732424800286200504869531789944820658469411657531641609098499377280236477079407539227181432100553074337206017715340958635731792661362252179525731620996303737047643664057322289088686657022731815728673612383956059066255549579444841588254036303798595465217394683367522826598477434874216059852894133133730296058057926972816743254161830747745698226647378253007686146285202654942604227583087226374023008323555472282824916110321780631889023607602457047881110315896270682298473246945861075932725464696078432404716727396797336268847210953510260820000186421136764110451610792358652294025835624727428277955232885308937802606096738266776806081107420071021601422101739183724685637435846699510278384295067361673715816097325695166253905272188895067401197184565342605901950360488781156748963583486089842254924607937796962197066298483549893613895034118738063067060098122653286919059068406161737722054261616843454873278229863902659380069748621513345743618029657675506697274375214266409373369305991786853191332653959511473562044803772804021735145450190782172524302401873706682640188303147926594979784192906061299893461356268284902303872315081009326793445350279224125832339968492526125359755542267073502182921517296274372628367143585840808866919825814015756608145762504529877373120042656692274678961348865290921994108502346026819769358093394748222124421350075594798202446027540330927114719963408903315900455915503221220797327543171123417943779550065133725707124670583840320634182267262542820728294664993532125893041540782287673133109417351998723773570600575294203210083360978845380912307125121576970870093742661317762946635692988301922828856304248772439681195780540071174834764387517813757314780285267215478901783931496594950552787258817900220988122306693811530571147194288130961999053413914255389640005877191744452492637222865868407039372180109273184931149094569721763532498640360403496931403068864112162809878891114580608794898169622668218256761670433175951257589576260174523153629233916072547379046015463364117882249675895232314353437364855263131839624067610624748723649951568668101101509404607704908400135381894811057686044895270621445828265286054392894908291957449434290264314788489735065093086898744312284780010017501886876257459311276760162663076471946357932407439449461596805807092402576617076027656028311116985698883414681781490575471972496600340552364152267741980908434380764441257674999609497023466456985027750655277570187120768240356984487888572474631114265432087106540345031063993369369349906117945344697768036470739989419537621408837401189246208895577826515745461594784467727749982845290902245185879750345803620939131279692313090738246429581682169127390577424965943857618794413867661882005296055024329882754225978983314808288472405103091238023269951037434461825607896303736462376004816825473959884674997642576180396795578988722549472904320897225649927616810872272578064857481702543063031559924684719208495642420323925341135766352078635971927468714739444275025564222580772513243757798634130417283955554283755612774514826670947977131787082135597251066741783403995351083820048313815956244977851907029564500299344204613551890631913970635906493121148091975451036064314777272335418110161557208664434547398093869473829146813805586511230496975398135828924193523480837195659085629507588836663959312776370133951247190014256732532597552535913007112643629982441741737132885498309225058792631890059358802306156781864654513638173788370918125700417121580302698240666054128456291503308372151837044245128715661917449245959884090665567969734513938896055618227444581553864186216880028855595178440608939708111288035614398221505247100841359404869517899478414805176339674996299289616513758569504584438107909519380523604400936552847259364568629312719468919558517791851535403197042887429816405425932359355496889835972186287060108539888368360305673223946255372059568586297574295493805881449625728849407433138134211823745082417632396899553593374099551096335603092653147618626143118821275757481990595050928658635081305203145064402635288421521819244227344990772238427690680409419573264785718609068873254974211694426576814463506407947898273323273582357033858333178264540647258334518638459167930529824824071489053709530365146351208459199869400692883133036349033441559137942845684633316228075859588621244035364255772187989219220476247589270881071960975724381434204959977618582017175635477846799738498824843003306147332723380710461032130050774996424166903357217722696779942181327073323720852653261983471554154337373023984455773173112007288878134802454740499109964197647183047194574375207392713427627604894281734955446692850926466493226091307182280129810625107494426146042962470262080540377020867532879555125096341124876981874659375939882621730724120282891179843220563016227998932039147583506220567851810451355885819739084124358223320218640434452541939211673839218190036728118657755689790056923186528807415547322744798681040708457875125105866543030234684547296992040843957587297126470941592022176710081892949122555140721913770734282186826175162653885821424267696909480809268184951785896858526268429166128436667829283111146601061730459378490047963680533033043592041007014669712268745879056889231606267840582644518276522530203471464796954693776872326160187615149987488866649824918116945964857217438038199684685302690130823181691352974396768846507148310668684492977929179015551925836847517547862313434201374770050010566868886443143113839748696454174082510172564376068621205380638593259590826485628463472054120985436718740543531382016697319121051621644470317591455949770212323275290641154187463326861517862481048966061053296366171312256740290953118331010860482732488811059639729942037075356438074089179280662734536423080614702858807079930114086030675556632503286793531906567832635024743424424026212354683852469288462470910285913101762031247271610740789117422706358375516819448345746382020048135881162743731510314089015644421644107571999311131881669102412082946456741025955238243915331064427294052821981491187498650118560159094832720695170575875490584273544097783280689379349649139811571468026367407624061896240730384975736182929242344069435504960797722512075234741303162694560670051681573358836619880585734434479858884617780154652676034608974414690764651728875436959567987007532074521969361305277302594164313536964491081636649659100826013769212853032301766088686954747498998029019524517034318261774351967373441000501205825769428214631186608813530142495609148332758070197799612659145863368919799073178208059119632596484760474552032711590015627390861055173226495663212235906983872077455104411693503191712483211876215039701556517652164999720284087098595790774543520857835155855327146376282777145662023579353691163913099487539051901052273389448723085616941535476498442434421651414513376018252679028651876473712005598988844318896383062347708471103241549706746696948107367745557263174457792604770759994391103324611176681931983194464106804146701573505828171627297450474230224038661837975514600049031014752011862707159674525980264286138064678343659556067552389875126965447534436055812971510245247386691524991399939186183429980078839790328660804552825339222271615586741475717779887668191637813057947313338283266656554043381528490330904143848975090771263392150579780350094076975786867679175038693694631236288507447804410109935017778417216079846067978005445622798073088960514616200418252886921863157643877304371656482062616359811363244436814576957842441715276991172314390802994261246252545225748924917518054157059682903486786572930398828426518000167542274088932036254909455705793556264748008375794768004671724598574905810485061710599403899622045383440059776743182099502876461221878228450097557573494404761072308405967994360700854482013912111989817896120096037648620154124555750705197898632279488008728486257109864079390419684277520680645643940531940102537639416569191656293623714067219352661631729651825748372966929667562965556401402694021904532015746595307098746126824391312141376514920046386128892747150027549468787925372009913960789727036248997531098979316529911364105856246067595455550316983377352351562154701088985267773631747247183360590121728624484120770269011527803466914708524311573550169213471818664509825185306879987792896952246821710375683409193359923883802799933762832072607549575386347994719705341790211408803990191627900740664283861234332543617801065193182276320994756995000706862662391727787721098778256075635379291195480981014287183870678113618236747553140495198297550155982418920103771193558346277189531106998534848883618893801744494141337260199238148279442632825726484857455431227302627953178287213253160484000432347283589057785815688889033400100173541285702869525775118216304760385061215493139325939905310156264189025753830711192699221797639092381568898875286493061123445771496648095979342899656525272343128293444933539237830704066970793484642113292087618859763560390449470152479771242792940795979948152957601060169942555111191132616333518700153037435414241703745376610030110943175930579476220309760394537923880398255903610731376140529235209999795960977500624514155037415996267339680920775747558335666049118351045728320085479388726877988468578122034957804864625276551224187381671024124997578682421343678886993664101294516413824930002555980424555702965082401875369816724803020905773014047728823803813733208992065452883568613031491877264559925291004441602184210440025768646902605858081634902046589318119067917696728736220791489828642706573553524330858871480010973107587805102558179777627654372652137859706562706007500172943951933721146798664461380297780330835759248471681627810546400633284072302965045645706579440892297418567707849271936081698738023894326012103000558752619958806629024319335768907950273104746408952478478661365261146414194307913908973663303472776085173618312876493388598134476975314770302264222018286261457540571076498063852727233172623957244532016385675974277980079340998192671592305831987794282271038503995811300241198829924768608529987972743964581943954469212180833980245280534280482719845093023285251258667092761935770030045185997070470513467647075815699198626241327109969771775930533552562205441280580123486438642656039065768212840398018516481508851683660454357334768889158398722818998205784948945717007775583290336558762146935774860315406469213483949081044802726975818227310454032576394317960686705611147775720795191783067138744826552952565626632870210661775610432399219624772524632887430625945344386791519745371062490716652863630927350179909867438511670352872528101652835701940890423474121641587135233870030502396979980031457111999525733106885695567342745697890860075929063737324073930912715349340319847570899682167756997094424199761345101336463926911517081836233568178265387479556882808659807388796372771905749782060914293055013730130503986504332952299001658003498418298039580030922359289951753801054313954487855090296345659983510099258629040009990257750411496057162337103797679927172818339472763231950786133998300442128806287747237034726131483475819384747033868916356846957879222268727672635850630307538348959311360003703557184095525378019162715219600109911183508231025084166988547065881251600090805312340548069958964689001670141896435027817592294296630396347591476348121505784014228173474209358960987139760586819251704560906987162947056063162496551670477491840916446272293997000881501298004147920185518831682406401323985394718910809586204436275943127241491995228873198810780112066677072342093434252959478250192607211154160425047917772451286421874142949792297764553531604941176692015201300873636692809140253226415043076927298446086452607347416811381813248060401151263290668455566658881518915182148782413258684785116777403507522596860813651048498737039363984294931663155345463345798334895558118134749811877644619052482666290684538684613352933459466555082960404861194494616769771344306731952077027741626729764453228634764947923045238839110113298546904652946314915308060135289661561826017234277242951722041527432314702256531675356338488783936300655661519937034465653797614464659586923627003015642067003155204844212988446489619715590984354965495017829824694798475218084433442202869581517011036700632646881320646428577574386922650045089582364232222681805506543843448643066107273907151045030138216514726065975554741491408998683712994796615108625360528800453577831021118287042713265537345629484780025788504920176187377766163649533900673657555975881685800895774531010485321208794956923099085539736794694870027206682526207095495407077877389621998725810509977008762911865851663670827778933819723373273576647153296126460983706713721512835460344020159389662698748603814725780099601163376712193480781457135267890901809566174946971894407803283108102115804047496343272003638465267029137811606771606127404298628036430141413146713601496793365554111646269486798214412613842708792672689715061130156248558335257941279220568260049329924558099588187524106758252432770426747252568372159954057159899914848265747819580132781415490927609912726135812678197100829244007860550089079116682840496456445202832610718009591808580852708414997992227195587178143002455611055928166604490037623261685773026558030101201205058083481857353652089975758880142513399314352843574385689452669147552009822920228294041441447942519958797156239393466272547574335679346951721946274144734695410671135379868597838696150236114847963598046076733303135897771184259097223659346001983483985806064449913207468981926265723118915197759810128781409997945873638259159389368848191614036204045505990413417419324101579874397338766057660945777324696550695493180090456611127247940040406511752677286147386248314350009404555796006970570478929315776289681977837769013951553200652946915801836223948900797080747753489664567743324109044379903971538189774944297611947842792653051494500318249181858799584729095333374205140677382103437557761728331335483554673578604806947369747984205168218831100959843647504606750895693230791504977435925817788037056243105202804670786681675641649495977133145472244488296093794364215413727022053282439841227796147850291770948470199383767889510955825098044797921277814429552106454759383647111838233486845934092142117762609526718961137789417985054655906935579906191666411236788532464371407214687967004652083118240549199466367457311920042228930002724693238472968212080851779534951798901091622227039010364758206761800695535419812274858863311120051685541521045217135629183325140816874637446016162948664136220833202569019166867286565218447956602570409346595499385904134472467710419058672944431177218499071414994091360823151637458756315569758852022393901409484652633032776576042513239504057468530479331152794247638709588671306525056231532657368193072214793761214410920323152052485302416038980485534120709029873357933682886051277224093246691348761555223036752667630390778069603396364771553095066083091170307820025894947404941266131448359237122602224551888781456966762929839767270337322371173042327257233571692058891575692289990944443115017298339243824913672299371690949551949747789080028237111847370691210473150340147918724521126352528280307381804986675327375533509796598916941851266077192845497067900236762219083428234142696227011360624752074757733027363163667606895095285029329629729486414010020121805939864690134997073376031186516489857777683398251233656434655851366685170076109356901884602184607716155848085813758577235264151017323953154066223108129517268177513366178399361435300757071248161651363965397002392337584381331043890568652657664563047027581822882479702487166839969632851369263668797616636926999775780336024738040540493252967296606165991164126313962794190212876109942194273493630384897256011754061188703921092676741378389122368544517621029728775085222995950635513751889300511415023139277681170646787323567008898883933744391049238247266515352789619025394783770071383671009726703769442784818519460071613891636603116305511546328922516586193724436945973395703214268716050452433811956674120016747130547879739122631133288696675163919858469995995415435463281649194000679775141777453372011717420399112068788279061894212031637993756264026346790907912984223459978690922181429813786815010160851919544604211649798589767717296254473826455287081704631892795761439843830702865260950361328370445299878265388410888318417873482166928868114724428587397010951834020580966650181962058069237095861137795658462790280769891144197325690072348932238809708222558023290919074812634958584011485619087840164062475507187478085629183208095970309525690660418475806390685444195652119252997069442627457918915495474974836762012262271327652237690988082134115168135381194842386694987401918607260555078331730704555499925765823892917735702775412263272257556219426904341017321270456500513102242638117463225523546949475236602554675792670352213285383605758676306436005676442911958364999266237500841879108981707786517760104146495490687735708016508875260567125540300661872232700173047991086654813930269143972867704301766907711028006272942098202636097139895416569825131718243427656006467270779451932355801103159433371102729867989882234328593423140469553921571163805615798083640555229707872679499940381851542465173505317646087768562340954665562484594750174442088283903465901966266496390876031926492703391240145565584531439069946045610486514847995441435534295165762082998405222434645750744174025880937654967563814000040202511303958675853839835560252684821279329641821619235688479822958136159298486623880676064022040299479684485728802521773512119095926049680361848162486301400810427134248361873119283247543723861442664096904270369464401740440508392397529282469245067493000203795651043437347792322419035900863115644821832092150932582625469841631262226274417361453610078609816435342975989288217075792659700329745312816034821870676390845339346439087113277035219454471312490915360724498831933875120704670996129015487699831936575868160912158863075012131703040893484483502922256187472616463561198710199083750747421657273548504906268232250675363007645080777633221803136725897910032565673770011489937995301952280165338556174840948922546114169189930989338008433671059055707013758514434759091822176603774481399658416734829233195746724352209063103826193091010767583384441557340829232142642667214928112428587191075941059558538761468513458203254906629880524303270181193269955314948418464896796949961990149014173328155294914096155056788201924440092304642538881811928969336106313656103134443924074541907794371450215258846603170128228039508112450766934867772386306028744346527094004689278315185720709825138404726917716439547214792224297538373982998307863556798553324436528040098964119737501581333165512603397477578912975831949521460896635080985109215868187533505234924299147636638038847074566981757645756999150292714679419293874139773690118853271719218767327072151885715706677564490079745387318267699677914540524169815594787280485974634753065593678104804841570516797617389118549379862902404076820891289433984495053799295952983115170545878618029229194101884643681996792705809656787669405535405623307621796667099688704901736943896717529438679545015931337512677318680711637328841335100223225665638313082937112765727669291786795139776768704768349023404839587886756863818018712604262290279013858882613475621404413073305039916790813464183574557285429694340689544017397002597962643851820703650391943458945999226794572226083833343600811221462244395778866246463432637173980319086537468534718732696356413529321554903461330781339038817524153003999328747707075518172730858561065078402207024392206512547762455038269185994767004529943997014693766457269649274839746004873512727465705704473185885381984309351229102508990251120829679109672095644192797812975497392818019877322390059229730380643703590943690076421614273662811099373520758828952591323967276008121012272934100675734395875501849939058002460410977025940115584309917175102569065060739400538021162995689869770307057056861056784132873766060658421675746078486279139168633776626427793116929114006018279063471191303711975261896899949328176803574988391114919792029850428227307631538853876292582351481322534605606802814865543126488458027640088759921926691545710638325677071948494583071908086506521895578564319691306183519615322074360802651241514791790486098823972836600039373088367687413218600616033633532499850613806251789008625356172068188287546075480569055607894632420419207364483365623014889525016591309276559697311029856822406571218923426845559183065178981275062001069560618348916931757782256871210800602079690652001748625386209802926339119827999858927951512541455496022021136382762079503478107573742266543665462484427537861535982645313218491133670355214295332194568442666587624217860559777820960834818177078507890262060334333114597142840764895840058337521762802035074392009136321366815872002976773097773396349778739198646750943921312665397469245133768517751754023705374115445237779488346991757483291155911868920102600858128798223045918422754738379821012881416102542389486320840433840133777995961094350356781160373868730339768417484041791665557519382670350918625296114771471733905421915253540524578798970085505884435145927853690087968563856341348847710103838293194570061231121315496761969256033109978236098672794950034528150794731441912868784180109653676710619206482465559872491614632216330356673510199862617766474189256099040574018772775866221208975772667123575047829156782955536417981572358644210607771415216414400522067398135075760031010153173972040616384796000138067366894223488814132004934016669984532708143568284667018641969819506296469203513534401486374982319348861855344697934175177147997373230509432780958321682839426127607594992319512919877242399673985087538489425155889061236479333760539789168741948264598945370985153992819977734768033764230652120759566843753281844211273656783633018448784634411443426385705666072032865407204569870830616215869060477984840398896798930194376586344028690737415397377320778296882634291720291843728683251729504755931965673711417793875091992514368349859240168083924108520583653837299914554077905296752094825834058295930206162214421399989785312440872321189783283741826717091140650463151750652922718412614641829332277168081306190954058025945280989058838506056167890557667138961128556709654639519619079322085518478612828642761301020863025260713926303295391077911578670470721656636929800163236946294830737900507822498975235956245912886500029446091151805854948666596587448578518756258085561632157084839860076349889792569096865786603998798740753730133679089208000653973830159449817704845465027813368122415913199198038056037014516927188589115260902031599721331322536440180134577254981234619369663279197516490073295823078198133585259504280690587429393133639258775489420850525617996599264239661633711241074793238045874370483007312158988560031290027832902279177427911329143699708206117966293834640054790558090406453453612588384572369072327722271529965170281623045764113648359740657285203251563649475176473765957880635332964253387973997573965566903952720879437731408126378260956886402650697436052846569395533181398278308382410054013684384398231610386556654158945423788882874549795804754513101050015875495346746910615737976226690684738833214275291337257589451266635942131392299542746662472126870693001607159234429549993534498122949163551594502053048137501423463794222097218428748359747591891466619919523342665481772100358905809381327996909672688527150996953669412002567169689826466225575073069154062364141333089680161207986766651132130568165508917846041115013058501599791503355418731128229216334584112637893428752367465840743757040895972030445457427780493109348231444014631484713028789085628478273871230203064658582086520915814801405182610495193074005177158700212369575679716656495576281188087171478194950414508069790612075541084123043789091409711252757494985579097860649916606859876048588717496423599856617128712519489101122839814211157002647811156261657902237021212452858498589356822453439920328714381403394448086166141089962612322778065259970814497425976198760338635877578116677622905836887521395505039551489900900050111877657704599673969053795322646436473712363081998283414672303725189519114417915686913151013670412409429996601628710969684974361399521303352953014018584723495634077422394734057663970294561284576069411328362157242706859752591758362822439214927538170946298571195266583808818303823161982325633016939253852100944979012185164813153027370247069675850534346168360665788694641763600121655503439934393175067728173038131646408455367041248835533783374356605120657430945392811749432794135981897009111076454045175131793575423424929979626945531846081314238538390301722134049719979396843625007547114152671392346829444748565988467781045806943543374644047069933100807832391686325892286859961393935976304121405121835232240937002953319781865702461855349732417098471524874899985879093986748297213406197311909152389430279640501370352385870225520959892187617497990712225075316834955288760276852977261010768264516128127746148996291206243686206206704506809696529047400543922202984917446810390950046125033516361258531196344080586980919766728160410199092492343376024894143597271820675967238463076384842968673005076854070064612566458166443376243128456183324239152324865480751715277872252725676355254600859882200980702492079725061408016664958791708383573380848707251099170253108164009148546154955593474310834372797603726157232468260600019344960433870885998014542649921398712672958304294788820985958440301854746062277621009383690986947172285433064285859620958373370980591935710331334319351341548638400306192967960550238880417899664267209438695278647173361365685211593304003840632900810703071603423170210695556027945445272563767097625799915682911200646272206536513382795833160913363175771184978332530785589837516998290278265376099892977410157154138594781594334790385054764289189835588268437911780964082385046706037131538657095085827567311451141337575676940559609983261810020151032285713109642558741405817240675315810731878842277496393473663304655939365150678991479705395558287560503019757404039779745425155094421983888755166453348695096314868823899178445432251197393390088750213682373217925697543772083945808520291147981480236758889962064053764254527338476459746808576317570869997906292836279475590070691528808833511634887592651675798891066712813025595232874351269706064755628819414643243521007286470826100553094144731571058298033294132975690182990779223926467557543942696618617186952593669212629710734914821967736926694212480176125205382633405575770180973679004139768098001708511941511235026135513504732856647383039315093573507613479474876466045055441045666405036976828594665739474359540884811389634664092892675529482045308344712329753640070006031564454338318826138527204007510851542806595732712916386374456614716983126310852401796272929281576463023809370048876563921535545356532738779231422326957022693180656927310440090184602944882516381304029023932252207360084247118297496782607351933051953032956976488639366223907309562521115939048631352870015803210665715539083811509490825046289613046101689740946769692578228378489039904033815965917486828333458177379945855794545444107043596493560372486194183018414281164625718219715762620237661033877853136258087830988671326609714607225232242138320486939145183346886350357000173014189796425319238198299880570607694966002427895772159609612603302616522005931659763703172156324771868497792241793064984856242789924233169549621303250287061502457568259241913886461385165185692305375464103804387357052910912358823691439849698665133414690279255168402473537101389272687749413108973318223150148724093629608462697912402712901037907377896548974243328170866295585139001653840761548079305293539838810866301614118536741686133981614881551293220564587637873344148036044701810329161522651324635629720374280867436417145060274295246690767454623083153382771157701335771514121949860582577750442819277102298482258767645757817229193916061368921117658199510327345830865805104653271535037697461978596845094923868490528605900028860936288438417167217953139873197451588634155557850792461764513567522523560255196025127579158050544544823198370923801797205511516092514060379650402761945621721023891599908365673000672944517053736362316782857998077175920634209515185720006668907411330982721873880047471746467364975732438306036021004966873424362474578488065728796580898503197274347878122899619250302925302836582152877190166835102305365517745950957483645853159110456181936736623152620482692428828095756662444597235249821587921087380110452946484565846294072778956882645440295528691932499638687067933988673372792061541401937820376491217274964074893217996531533822033964217027140105967657922904114979131890732384064192349061222900999929856048245259559947457807043153646445821594110720765456842203132531705262513618065252158090864967987687212827872406107721420372219915847102723621663806413862088729458145576612238178412032488538193552853230224332342549616980325808119109871386290807198858185394351486360584449475762196724859184135848454023250446082133245153131662600053026145331133737530983632391972357961534763054922494246274019461351136422412416193427588078908498539358017890407149225273325013608407312071161903950024742317447032896473415753896507754642194528648038263497859052231213492456772163224683114478690452899165127685255168666801168510701551948704683265340622473902538487839148688929398232294708264228533327087592083185174778030599113691779737935392924382466885887673793849083905007764274518919728265605402714236985062042445894239841361680021737148430905438746722195660133868168709638024585452190236721469711594696671430857655992570552003207569262183000123433581337088032458211765067168629920797207206665521338811533850185470338554257360726083359095614051239505163503038370569470459845320290319609400360052076586923888141002038308549514220153817706139213245707630250792891225921434775831707233872144182075699515885401102459150668890765140496821597962733486422065188419231535724966433805989151778362038737021526235838258230222169481862971889640500066213400569134130799370599006699994436498249485713824791672632570624202233689486585433165975006991248191056126278620055947551008173618547467712047732256627000919694826437571874504305362626339655022705238416670999087951309212412892195372350687434503807990562234805305290345476984795250652183285181516297243088901207669308523074774486578062220165042159142757097108126196860961682997438271709530182326208524628990934769952676721037630619942489511512102113719132345536959025416157058474840649989377607814371977977831683251599007963435328782987103569830779104919055213621320147593597270544032651607333769050410452882612274973258952398670851938737301198883773594077796347252977286949757800841804485830401613218948960519408735912396151188314881325507156464424485174335055722902179422410764388534711072292924911289203854607074944110296620064923039460447316834992041112599290752135931142484797224009398913886414943932409965423779438837243102296035204151513055414671548648557985348140241413818692844516342975866631851593427276743330368417865451591104124667295738047413030685205393214628504029629064127743205702288915485229151015624500134883386037631085181294486118481684477712947530155784961051066242749392086916004078158748678044020079083341334397000442405138193289464739246358897769770469869131501562338302543938167648676011000628730873188095811875176026721693059124023109561844264512854140299453932489774530769752296482726231950405630718806338262356583539695454633808977622247841872039512414046768476425377040745674931957923256597602833680159219366336923713759158594580628694488369733683411698192237800837727082515360259436208865928716384010273412596448960986138328065292308061201350324091771204814451576080802884166723513423098141542591045668517065074517729907188773342020475832366965045585205088413084148600009628633012605870751435217387865883974161885846524758916109994087786659610773671657060956741744432252412688086508010615473861423524019712865981294973235656802346122884910223174453838105326523032995744622345531340780590074968826919312293969716032890202893800911297383695015892463386207112546289064638394467302572726873894841650292753154030526654492738943716723385808258578260232333417940470544527432094410422994295713950811765919973155360989193509588980701814421464141685247258486789817485706836450950074464909782762452045780782965815048988984216608387692991825250626816451341175597607071065406871493024162249386331954828884126200569635199336442361974170913455306321859716924163249166943474735121943800730128045628638669065491081569737137259176430672029583743128870278644737739266012204864547816924589648491054410342922113067898269303372673634692440036092640072176163739742782700925154244574363306541747821881615963720622153661286862498904104975935727745830607966894353941667863898790399788611394277894357373137910184219650409548335446050776966515234572285558343028234547580722544657966262620812132553893618872978859001985576813900071571126132158723621639293702282958653603958986107662141729926416579604464636999345481367514554982630554130175650597875792591267467913974592631072479165558327967971471405794499382221851834817519142402330607924935663783131938542157583219367152176843583687764022692971182985770566328444853488608638751749176900391000340174294259816145623193384398213701074758472216905723884130304949992359387992359011219082605078618180268156709154505318663891117229143812314144623481410413169103634218965968756522973040203687786508545785843243674145627094064868591133733575028890055155559920298551492285607786505396029093969449956592980267826125393064866608727471065140199862462409210037889035503705875454868718758258853999777945686563584573728758404857627090602896601382713073044395997763566765345636673868333774491230129633234356360666924243182045845879815707261939084923786328992348125990637789531880932485236855553866734954879211826673646307156451094037812018456407170713296780203884211266546616851059366151431916828733814206473479366285350138935851969411086721867443372116650934099359875340776823856401537677626630441751581541514633623799398275648115274606696841464964632681947672503537790800766727873419372262120758710328275263257415514139652266355648507415451988470343265585234046922720999020048239795830073205149900805896299509290811010665987174207386880345021951097374025100902055874047341668808313970199324886617584818627538890710305791839468883714871420611453186612726587887447407781722348419090452895828748824812716381011408591042496000061471914795754114158073016807820367544681268824214600395152917739440578526525120940537219727105684122777801671067724784153363489149144349950159496230349012633471472855296634930137410703948386448106325979013062459634426561929386260692596956686008279602965109046713119800607306433032430127995274975935797556642403255319751524409345568496441851596754203499439855077753985917397899511554887066993952196083284083412356868561000312719761135298497442955580666177635531233223750539263322799129881592639281745185613982937665239044225594625874925783027834924314894956233368529402649098784639730137412013612458068504355988470633343098924358662077533957076498237994108252922129033906858693884101369273496997249345488632563632597333591210886562596909631588041434598997020021176039807160202844305326893074086015017074965007594427961542000544046017243581615070650295202380130912874768060899804854849113678785328159578608083986497214722250993191718987649240021930459030393342717231313225063769415813481014430452834873627770879048529504877442934303296000837945738251427437308601382714953304277503118265327700824125490726119731627569429666616541919920423592543677609638623472849234862532159678737346684207596987440674605502418460590424887307749675492787289418312360508063073899865315853000184248283516682881490534939048249022509903110652180506904040432244087541160458740384868066706300897881795777321974509580245971603639376667851300157096208613893186055397516069725679386034265571084000337901437600281064970825153960421569478354675389136320830056031223006753976536113104454355778755215280567196337025390541126573987774017342331393040895647778061674471579027335467110006910830224651936336375899405132039637828227922638541976577820903930539256886404418673780716841788201793671105721184820519000546851133606969512846860579820457925721046574088826414120549819286904924244182168348927385789196423467232202431683340603705907058477530610661635543665861856913762900101685935418872031084847138391671028881948144612742240403403780362002717126256035879380461705437498284412008395309181138462248936999704429754666109931392773743467384227331800669890055369157506190459378332635963396041712672186166206432952486226163623945815408118509504356672917524893988414952126597492544416012413600092449688156547511225679418143899130803740127524376966222803728513191960462563863552596985928851348558195488484122530231009160681598517186854784674794002391934822994935980405679790949694461848399889434529961018117365356504287152492485154073801366733664642774228150113168665474208465618476845733341827616402833918077514061904523454011520132959221390090903861801040935423915497237479670765944209041417238782607951004235124321352382740737350772887494248566249599346860767780357614364359438253727318143658407124866234570617629553220348100793890935087077133609703877885814446200850146449222274460109385783976668189621853095798809196965693341180322478772561900827237556401591578339608207981291831136080033542215487967519348697451274636301691295723204520730435586144824971849983978172202075277428444630887123764204020569944042210909677988236652138579825395276960560798959063158093529199553320575054307822061122968523166065586460304796971426601459781661148877537299141499630191540156745700637688754095787147024046911257973349674944990876701914320669691821612782727161095592325472995636585913760653784281616250231372860296697889647195277055290176703047883526929035029737882799514987103515760446570440810647295511075052532050629358565956910155428917255611905784994396772378010645971650119078570924756715162090634271769419993163933032528780657270409290778005044910827066218419857856949925701923502041066108473665098593227784297852232603484769212385815398904655164894887826457758496226570342210841861758439508817605083588577809708463213066160056349527967618494873797229090066293412355263948124430763741247037505752804227834911481548841547118178096083973805369597920202122575838137851459694444405656496293254739032051275769254510008963293188667193403113980362016415416222578165358244626175299912704821433400724309711750297447105967429124541775238652072589763053134656071121195740436324997538069783943277998508007788925958513072982384008267740837079516397622855691617798262571130062426124011508181634967693677659729961619740373529086953976754398727379744277700096529048245974196490917258476158032981213061132045690549480083250164533108411472419866438439323467052237413751353357177301857701540216920659481193872304874584637672685029816829289046284017164194201208739657051271199155395619299960777257920815294674288274372093712251555377184187595359484300931790624824726249621353771797310495961992213533634819124257127252161489773017851829411313241118137753179083251616800331378459890235117551788570822778838139492456784502296698398591591534779291777167233043751234372281762165757279953418698469185412718971799768959542853603134236999657192389144913165133446214752197765670445916463076867064040311852277748803339480686620546335065682866198467000046969065672868574986778303610923117481977453924610891778981458196781869996255116238560257798280477983824352922846657199359376801930764701993686176702976056506575625421236009461128794239761993668857442700315880405962540671444132923708355999986124200661160745319192224200417792055318111212395329211995767551705835459501251129088546313786774939827401022559628835502412764803683592502955027023542266547843799085664700022373325065042297458114380369301119819587580089223556063013783678559003958606932222573217084643905553865310645027217431516472607941123285273936941120609803560420868943095293206872566680230459327188568591879229106410094083522656382878508923293721663843653525746483061901141490604879195314453806063940978341099151056387881099259897148099739332898928857431964984010770591634268631422894950948335078348960190611514871415302752420050447425420459391969239323398145236702563535386589450740454891315441825997159796281727234554796911210052854927905262508181798781945861062408913960902461957858902232760324852746562336400327974412192702895379696689339341723649224577989024092933819780390436453585291181834964555690454757124114094823275290973186017770289365871432990279356080579672474874026987631860088348864301352141665094072064740329175196646189126029659697893508665419289901416116296239302617089672481748203163120632606770604795978278831131412395382339576796430871575848391052082501770104631102237529837212119316418609277178665311925735444377362692304513024264175981940604607602728984782197910838758481843877499635603655424620333197547597173707189974878897528243429936502069084816375212888224698491830649759693672952603360246619509725766848887751055592502101528224664967625151986511694827086171463198940867311170593577320285858344769925712729248995859203367817487890114704357330583608889658386993584316971273668061294109423163209094644853818386969532293819735517995126644364556271107326655688778980623531583585968682022314867907820523927877785963996010834149963974474010370014505033293128351518878848684796792748981383225818590420738654149762808962640124814826880179934694905175685780262716847369485323781204616604332112091008020750579909224896068098151876434113496258345638042964107071802135359443193295200048525610449215377611022531672699336985624568271059139918979986636851420196016009272802519081184489799147864067766949444864030621237808372796522063281983658165525609502076961616357861540864558759067956848815203308176878467257962245510857454870579849401215888279591278995006308968390876867910184421153510575911882107506397934851989102827434132318359443422374526908678061059479745833806048910216821229918205664167549908641980278394209494705482230953330628239818027722000700202597761762386850547869654036911355593669956033434143620250037413611140882110359928754154029834795870195926962853669466184105633014889227003303584101009441776086906822294754420979841599019424914368925883618772054098030909312109280389517520396401413538796541249036884893294212154492459327008538281843785254165855999095415081176500367160094079449646335655415720451194718539233343418766987986108809070431153108563287832828435985488891192665320607803396553919662308886977060887179785268311951209974319355152304269012212913112103657586290072232195550099993089274663133330132048506445794506858772339591597178928284462126106431424077657620977200028753571050162029938792585552172898171259717285616298255098148818210194689022848874205557563571651931890672675860849413924705909611436928649735907254073296244938416516804341319910141421350045511452892708609449849500756670908923728829605095444671637884219481926769893559469719303820623255642617722372980351936878685513008032808710531759616926617852137035090427071463170996425437180533150775694701223007220439967703305690166732718218985041737481034094758683551501047648965274289080958036410985336474491105000094585704401312472647284171618310290339548711336089315888175533544796180743308739807309071939491611351224284327146250561859743584407195629455453024587498561664181497469361365838804579852264530660229420510286531745478559932396272229493061097386125295853996370005929920769208695523143071345821612986929857970679688882450401226559177205713796405789011348808999968368385650998911321004603449017211133442771428892671002305695508568908871416593265686763283707866030570373754478060968294005808167674679257919999853093558382458852625957698445493288061205484361731112697744866741176520252826497367753608513980304028135286904009316461243753282152274911019302002784603330576676973794185001215517293181407813706020717220475314949247787018973668087796802219086080320966929405371420080688279565637084225244519931424892119217514393071312402888694314952138154147792294877334217422046079004049776094102007116809906259727589907768102502354291584962662326568872530425024182351713210453961856967598015941473257130750492153010382644309902910461272675311881685634122597622525252962283399265788761375504743042124876410489696929480689037813039083768419977143301822694376041056107526873067364740400666163611478956469995064661750794406361027745011543897352344457419334445058517826624764622449063811045864853466759001343352000761388575607665478139642470445015414291159153439640071680808691431398282486794834384026380264791104583967980563936045946233461094770088567019652936536787763883244208744906030275431338827488157743133851440923121800141059732493017589664462222888567180681710032695730266087141135635924119152608667706772964775454047663507286526125314170569879707823374225759269694390897738824341236072857715830020112161159591788095992358239157698213854283929952694405860307464509675169568780827456023777565824817675766367231034891698681490588695737159373553757972316560778533574524937909018819449849772104632300108772679136846337797504015934541521798655455034446668064052761139940120102524385511203237884562654612527315812654981331208422968182058652726907103117968906270302772999716299508697001327693780192630888179141980897824700235950215690301625969337590115249690493657916513731275257171257607630528398764212015094220685948074986112317442375123918750111439978536329555094003318197971639884113205179794213291390685704433526793165629134275475833719027174416588256097276655816917026822111448221396541709926038485775262129275454144755622523886989256921117369490541163212995012034352923720995189620385265398049435121301626017697485745021287604604084701677644722767240202881420294376018167376983423539856366691890061046423043365555489167252829931442587417310940411931801631979085295401874113555679481917869679618453746080872155059538574081421044549093683280676776743381094269463879814502391123644036029417197011369269102519626394192935910976180429054408127460914307491772375426193440972710631012149742605022493801243921695805939010663428392597416033072061644521590659905343887194835966364758308783895444527481682953459218945895136366296690341846013058076681847432641468381471028027428245780813174183614676471056355921625156752529862952431155743232294253381626111315084408172934568490926349957410749061610977330578487811657014456554242600610564302291502115170739479126355183791595380387793974652990735801651830023826065618509219693029075336709770064331535304663152642793814316134372323782151463259717411020564726050494672438311878021800343418111937183957936609689150425853238468215691515213821303903034904282692068438209224062627541438962368239923049373961948559888232446966694340495423499957468458656175443839300655220797777395377515739622084282808610207689792379519863813187998777725951607214480148277681004694100457643379305437389727433640888993461320619438358939500211993065270242938632068813645391805881844529213611011285836820604133836871617487914047574711669138058150289814170274353824579571774251548915667268116560844711639428247130705374108720858742716485476546068566893590700030761035220153948431898327487469841644572276137979767080518428334535298061915994220574303464262529763217760492867589893426500773808886899694204734650684485691109004893670644566374036572758718570030084236300278516280624976832090078921131921040652878746293794043720966985927097966547091946109851084545114221130272715157973127204961871823625428488895609618619259765352549978156649537630465039362225787745458247753629661120012292540133796884063649151304844525764863555365914193962433867649930230496769277810161426245931895025275807423109066860520305436573025635502765343372737464827262937382640585425328932920039724207772188436215089233583376629447304050546675238406159166986353840412094382406208224634877942652954539153164736765375414482149545379470058054438276894924602804904609661009360189791769012663965121581566869263452636301052935308204498091637226219741056882661707273877305878706080755159155595745515233138180373802998202885930762831109301593584798371646331673092553252437895323871834281854697867621929382882296691108737287109785595001715705848568058121559953589860148302046765052152604220909935336869368362613850685443664064103823093734940711453713343702770935927951440348643544071060777736618257031120270673742619619308932903134782991114658384127354252342162426217696134393736430313915785258323235293782990587250425054451699157995185748275523836988872257453522587273305099191420840349774646070357937145666462007462317015795485711312034985951785128079336596410103417459174177414743765324508169851073715196794298891752189444282981996988436191989063194643620573450348632186992124156815137828020601676056046615857388715206489028589341907079185281912214724430989460523850898847945279222520279223644010331682165869792575639925892873301519531781263122058981779223408447949877309100320804369510822992467752014023549384899576779848731161983220591471751129573377676093798685462541403147731938692256372554160132836226188285656490355994256114758265648227577540480515871548117716367966796786992684610194074687423053541919342620157295070675927311751449505541946585740634785768724830645253538612334060742777923917349297539558608378996402932127623822281123847652765391961919289018487896934395326052329149073066724106157359459514098762477703764408520747996947240545560078320516167598012874347415396323942301698268946961401943745816385783345484626532720308304761244533512882945198486604311767087153232235543694357004942145860037053531452420149990091660563000702596291903568345962550161099711700920028811260032026652174679769227007421131732755675590450599384157930281028624113962050987832985385803777869297021754512974557894515767947927416792650474564152948440581861052025539741346302568060018531761948461314827902335895951225656461821088835528131864400220778144506763310425867108510637724414324144498687373730945443889513650119719523922816214134906467049504049834838841278408848647144880524812040590671197757982010284056447551173012149698731309935961867098610795610639373745434170405385058281508884427099965676923190047683202986307396752098908971155212905279597267478034996749353314377989911157072773998805465246182091156059617087574601541305404812842202664955295445725339025510463623878119211978941825209566971005135811339694696691554795108221187918340538439606699945721915252217526587718889090853431209930607687248776126551604788905043236911485209300944241004155728823359254122595331065561268098111207891935273647808964793459424510874605738399029606484303188518192611591316030280802726907793497417009041168042821379179822630286682930005786747652362323522848716946498312494133610529576491234321156723508070941042685355107210703847348364022159560980322425534542586463312479875871597367281963100007956722784552012461710306258135208734144972436852629081621753357082340439290117976489606935042634355941778268040294686320862412508639104911847928306222492952706949664922211602220301768626102492679399961939687990804344925532856443311591896943128666398323797601696336554594766599773015182927677595153195744131953460746609761901114895446185899445078506108724498282486430657624731580144668834649414930887004262673018491707335387478217554005723232088341193460434593584652770627588652858115664228124745303023456698901494459261728220821962184663977091413820206555558351770479350902209951448367221517383232429105582364708429900124660576861845031195786935938283246648931586125523730413838453931776691666363830865775699515098702901180035836539531363134054643454934797820381771199390025282678356674684744101120128492875870462743402239603623992626149987489807992684612453341299383062827591714448060378989355344715721978198685100726224336898635278406826468299363748192093668407737787944343365201950365417588737740564991864586903563987285555567246071669021917681974380344575224032059202604594411143961445847940165099553282550589916027604557120223546605170033930183320588302404143081159078753020456101721968074946644341318340040338432705674805109626976391632546700903043663100642855040865590001404178445969893014153186619041916348745170157098056782086650431273230625484940019817869930423955552480693873308328553348564157804426199916625878874502877619197959057184215012933679709768001161217154908561556608796334312626970118715778805896975661559016572524018848666565280658104835240723221069366918401707874054737548937577550522097852749279018844565039295088516408456767679335452520577790912482706042277194038865265979016303654327184301917423857708382158998198290465159736420291410753022954820038861164085577556822215618299401183040584623275165498695394860953991520094644984630182566439938745275852027038820832963482694202074908207245597505429500719672135526821271003038984002102400190743509615875818143604357252192077035980856857171238768854480561447401152963087879886667532018979542978988384433609903469968218841165420875722004771704976191297152295077156077280506559056148742653980504243891160192019714881080418350809872762362111427891085545729342823749373413869065000598612168178930448989326757247314233192698184403775228547820354510843668877424332721496767958349600494774067238937427417929872650105892048687568661343220793622125581559191109531153126145896054085050476380058345872437704094930589380434328506498215667724397384973641689999730377589864314804954226223523398715710395632734992259137362071254085927296377541000747369126023486082453285322368709978587131944740808026446296693706645007158804208018070446600276039627424275420822138755671818687221780711733392040259419544372515226898086122681708635757483309548359578262892472934035986147186388384338965297015607061713376129601027720984201781187840056584877414283343905929305348540651246503367229898881854119988682774132349494598330297486897064956888636686237108546569573313269566342724197835276494457368481103699736484773797966758197332616606466926723846257995080649574057901156461713122343716407028772793276350983423242405782702306249616759151593835428529225806543846043095436352389617136899267016327095735612352946860677020799100945252987487340143551612776152126016709781847862747734215260735672660463729823852390250388862415120610166838786764995454441081210249560825164335750179247269618756841986177293303372359253301270918106973784322713293011970146194427915433107098268614403417983753047015635782836017344429840991665598221326235059662147202800632813194377541841701039879576340060961071153015455446424099465194460403584425791423457252469790382056566404601709231040703118571084236744441310267146184156644002083340400529331576831389291034957649641512832524073790963890343314147623525923942279518553794918918392321743503467739922127904267392903953951499281199870952168633696742744392612766113616830895949540890644363202729364377784098719808956091889800317781285268120012520613556279926783310966087633291209597203759385987355004525039551144984386084645782969551456784228787649699355973003696243971819727584860309713009756912992445488902243012726039794049138178659974108318235400761393106033248446795266965175675627042566746848257047186602398709466976210667659041849019826795736708719624849664263603658005141035352235557061386625730726214688634414511958174729045820013013207088318002760354544425563923438176704540377447313300977185361626484912915034092515490264733009640126679762034299728684362333662090850317652581542731790478862651078016099591124301939869510127561591602549740451899049060794705865448427659961110440761390261669327393958404350382817867251587026790625463394756391740620771206634824346118047644048100655387929499890354732092218506481976220645578010288940143202026964079409895244393146572399730912569037914441805415403514226669223504023402053054417136345094788510407285329087849354609795568356884139674587083746833500430448739468745562607330827986621666586464481995402395934172663642480137991194698572674737920133129752832257010147338382499362735825914882255676933941566975188975291378290678574967544298097381466745913352962069244665771420776900702864638953270750751476630222032151734844634924358697894664389196113649270126408742687051413170166994896131189040059092146599995034748531896153317247005504363236974365002770963038467691120082170758470243177918302826486015054458454580990558160875259790910478378312195326573433972634238587804527609943427926098658991410551314813287040020196255965451884754848248843016252371460811235253838415942987001818539268916218496779900450985204960559401452065347354842212546959015021259077109001082041295682237479888188028562108343308537980969384507259550475745690851055174382543839833726657803146216763417608657025279913621291742626902344686442409443776471710620128329854696645826776194107924522787023589324367245858202483390331558810009169857568433563749750907428235109241998713572143376739500077961200491276498687805519008587909826584499635732377022076438252399522554821649821628653049037567536765174851884523833886294312290853538609168324225177255302658096314176129102421994395680344948712046453746762625419232286677803323264255202530538878831498530956133735050542388331001758628653402542259720083077517036460686132861157973100055828704490644113685570289997209207261971648401094201771288945958977998504578753286216026892821714745438188584069795588500747275897225516708470064636239178816983222035869059887257343603616165274591993082202791927023157332773118443379118556414404623801254460260349770743112425256018861529227056890829679187011515911425115394562703784699266668895376523722528695134313422199013816376958384535114228405133581390254203314308628352878811806656064100061244633572086515214096750654205743145860513146168386247040010977279506372473828049756282263440125461159711452306970196150264184665008093954404286675935532988925168739238327571068030324628414558744340849944331250770140456885265504162881925083413262309249006084001804600686455418000847872888530686504627429442332814343687861452519554064313526258007978083731183323754868267529380580283087757552731060063067270494834360240656142279414024953070609447942664643093943563364605239623311031308583318854120031382347869340276153495461773814437459359960385251817000776403229871855515825163910542965631117820830697748214850529182176269768886499223074002178796575349783564770684211056684044528050038694466156721170115643976610601247344075794982087754249578992636629235956891227721135768355720891830640831476215453471506580057596110162582573937591421481615030662969443376238515635287887995502438977845697459054384963339822225500846532296379835072790367878102315603124567013664056463678779504367211407473961067199874726968350859496176645185309649293249644349589547398815121062090928378489241941960087257760401477227134147939816116123469263115050466173363876563797696761266217453947389121189590092636410467546791459050339669609410754537916313140800896332798826315632019320289079386352926156789235792853024645422130028373408435457134114011585622431735241286145932002993906626693462743106664460295143178155077134837423208217561499356683549304474170886100879653019459416546543642722146190787434248685170416034009872328805751717117887349328406554362883023688245709382835555705586370881758889268109434744067139308554407417715707559947607838984663670584850899891916361424179892502882638320103154789683038294743682767637424185482024313925938833466716717171719012896331434564094578720785409842436550119355222944040440837666047448713454435801571360314077729525903287979626832171378252309319031729606470137337605298311888828104189496754926790425714982952590287483552555450116994861004351521379789028352206750958268603235398460157795222114073731872334712734356874989040972795063835621369899828457628025005495039025323216465682055852381006519548578439638002319765951721194587006678335351785209007989706197454197790132428247653247227035749485163363213186881499078627608021699789682737890508819841971767109866888666045972639298776051221444516725631088071811782227625586684896709445857314280379325872106173471668091850252972178737764914689322975794285311516523861810082875432911999495774030652120444323870621263501083945464612338643644304604128445276432559238672994453632027495173001880063720812930765097880900305928223013990506479657707889658611128460009216060882767537011702996317700889084742984577509088348483082497479423823358949071793645932803475806058800779631900262256098808040831084035833066306395019728749679864372730959882849909361575400033794537651465232589347357485059620499860328812769684228484722767535321068928723902940587811802089663764339724258840103216449847398106935654856127394508071769822531950096360538956048501144398388812024438531258384807789884852951678931370910252603538139664510090485625832708152017059449091066510369647672143974983314755306898943404734645447939321298063773056849345958528764723391522137343165809415920763900947217533146239271829676805601194144803219747276608549726619992881324788432361665629373089522312005629017651856361772869511374925876848910721312344775747230653577803319004886157140198377252284721503433378835516562485450429364670691754442927198559484096914381353016536288005673250257417903579368311683220994437133020180282606843002236793022108910149881936525499922578053471419275936679084629875596139790264533258983695046240671835763612394866918652818380263610674579780480379378463206701253053518962341260033581682681021894687413094166616020324069120348781982904012697996367224130965210646293918841533149759388862921124175176808965363495405936758415767670790229752984339909913481687298301492906697568624530915840144781604031301742177084950095092448693743298539609619382505796666363910204668748023086571330820186877218734898098925117752903089653483260192509701879546111434859468241748489974397099091567645382395488128424597126241917539690433590750465989879836129545812063907208407877306276500156997984098312485706959765801384296516798836063046641360568885413973164831487913804447151459140788640351798474842872238272337401150891413051510356937894058532995415991892633090283898193144542155903763434712259572604399748113054345981941110434153158728074305632977331724919768970147239425579191204582996113331349638610486418934130209327664087384449504122408450550761666193428311411714735380995951440684544585410640194044878105928486716729807314105348309028861684886270805290333018184212552472560758800309308807927754875998582724480313170381135574329990719392667728861159834455500233360501913897284470652786684156572224684116046442100954716992281327606270634563591800563102374052371509542495625227781335679224133833235660204956675067089854361989861429228374846313769265041146691825952173941461553231341935908588226895623297356086029457959944994450872609083301094602857127058820767751760654378994672289128501939631647742589887546932845032065682850424260483577748434022413684705403289464520948965143005001702312281301708292257314317870920440939768923131070490755918975512290322216560289928405570217826653169808005240392960484260594535572287877436674567705093785186521659099129718903756870240426298891486700771467022825793152175484657525465621841485402423808233877683662161272127747249369979067838291364896802134187594055336617044807630658778258868849467821133184628497300996534581421123096572063855155951604858271452022688737626951581350445666093697291247107200404564605354413740495363018855971144779241824954075743429857873819236442474171050427899432520189785563129222863071129327621635951292774033268327804891949365498740596227863314309155778239267205089473654307245545737582949614084686564715159026683017984115897624569753020169009220382061418270391908253122351034521210805092940092101055671913085804371497070572018255313428523400064551455974033301982473618806921979791216050096600736713505168409664888244106156419856307219506901355920362195919866922685792743368052648757301928307852120751763460909904795928507451214670355876978224272862452787714722627272510153065347805851658830362547055504030970937799057610097892113390414730612851825827273955375576662118422564755958171799994422772729036171647837591728766512864478497185627136911231493259601484741380616628825813656632066627786096155809325187434360925004852593582222819401797305122624151869936588595672093473403383925498852870036049889241068313977592914577881811554554866575526663041404997235333438920120553571265302741625287188105075505019411893584384268526232798479155477167874069974384198826681444331447661417966427855788995698478208472787072432337904183887616198572139293084166772296982641769912007278011228854304323495241402076198094537392432757875559343458349867804922485285535027168113053504496879737278059845286768733412264886302272008266114235049510016685859314904027030114061824387331650702945009768723694050048647758135065109490504109154372311679664087464721995361749299320864904723254854764497346936336021460767177615289103253493984866560790709949779889377699683510979354527605804273645227991489225089060741099574827432305346447001131767621098629897206940364387824237510329889303583758980638110415417906911289907246677850238885727557184994280563059595121953516502074198718222346782261497055209041711971598222483629271647787622106457951781743809603944832504227667905000277084203814755486674700533772488733052663001404639161723412080422208368810548954085234110336875234827139290642373574803770099327417504705250974121722489538547515793556823807446593365965424464240349616151157889357953514710338811114474399985373474781689427481406939486431110330765099040342253530761839621882635203302521827962039876919488340207546440718034170398337128678559068219105800710674257540837639401201793794497627582809046022543563977332786105025804866587316031742936151448791931631676891595333717501273699583018769787467832585096200458272936116670791125548439650031372115893909253589276675733533485033233211745330748062087021246916248790223104616896501105542318007847071799864569762363673530848280784166685716718438911133329737842217551874543622379759790076450053136025352937922238094180445572125351123664314051100122284820080994622487403857688255033358256664700370337153289624433167131380743082518227969303071415036290700846411818005587907741180815828289486734846321962380121431669474702365624415441616409066271690146731650107653209090699296192463836677129890648127553600507662623899001330737154269352448589063989215755328239304336087955290774569639953237527461156725246899841468741950020634836668946987607814747885788468287942547704930701907106354039333298267440766112099843877600310657425499144466855723674752591569416014113353164004736749920131606220607384740640734440252855299841874492472918205014189166974757029531785241376547887321858672361560187969600031185930425179649656734507269406938335841615959849587689175002279525096555575644516295923801573601846434928591095202522539282257920947783801652603401275425840324240056804853255613958707751444270923817105841940769997602839885702290164911780483571296292517058057078847571974449932608287820893425230195338339754093008012956329481556632382226484730442013025544986005506323174329420732921894021520307469867351350220246747495633234245975544545630988351887009010468033837107544965336412502876719730892428819782221326894391054260202215085580003629183328561943281696971748347906960760507215330128226878763830475501366829484477905546819139546838232450016513005074215648615498428332615975550187766413826031126236044770673761133983465161402142092445798537919343898280540251321158310107591408161274903987549040171181325468211536031453747135201872828682633524990128109784549170428121712424747145438896627704529261110267349880894323247522496825532952278710872409847079041704531429905414009808588749971695296370072830058899103420510054083650887826406711619505605725182976165944202575664112813688799974862711465360454131342686453015002102269998698960081456363069414121493962409702086824781837352275244864510360379217805412959831183493034721299889286853212533543945059425995417515956458375733891076687187346599490136257209287622296148147660312244046219343795217608970870394716662153733740915261635743949549197983089739366028345448723567211101079722737835654679117539822064817113458311722020657831130880074888333904676764710005010426913016961722384400039746951598549794981983279236418632565336516166843823961053055059366550969955805900829240844116525001845209061119048604046658171195684205654663046667278916521335109577118197666908660300079311531847824681173734937377198541804714666596761170354087312886659964603630825966334191493999001934712485473937415895187011191685492301945518857600364748159125428801305017969654420667360694131750063082369234241670883732917887053562378738445503239517359234357270588052588637385466344790879357519815959024887724452410739980021315519627727065624369655722144171689626283755326403748558777098931587495455288273086004880112687062770334600816089665854685419974487938721595843354950178284166572263905769051663335950533950485514559973562541220864536785033298383205274343911245536766237621396900798243891676768796450323612125960469254368389495457358887950731386169131222214108806834627394707146821221331692649614931959847850406147440476584237208318553972312085965520332781000203735539406200990733809788106069061127896853254457822903585608415708186478603478665876608076021592936964979883309096260976042676418557150916641955258910794976778885011663899914642826549032650614594498453323759462519174352419903550125473408818955588329033544403089915473742412916317954929562375813575301746904881824923409362117709168392190623350567882932830078261565617596129535973486085634452653883721766616562991732109753282148107025826710588156933139673182099412528012240791279631248180468705167871804761506063765320860465770895083927820745263771952306968790424891239479850386581770667979675120897849117398881218000131036709268641846759236788948053270610311417935926121586624844695394068350211091002651778902471366277331327081213773532115641982905025997044719505702764802807674394989353768974294686718938680055244586313184782901178181430852891437408689335720870029338222933618077111786346083265976706115940268236800737447025122639180679991701404643820498568442556273596694589320858935929798020679683342825020251483900937946089910572349079181746107549643850927113457732662546756892298293785591168730490119805025276400567518504459099229805598231691765743325244847300183595717833557264363645738484765721112467969443475495750005292201798872568182904572484898566852018779069186323864829683322776888590935900703392304831848689436770555477455867706486807150265255898715062289674764117586065955815624959983356143484819318551828265579619263740992326421070085160166623332147278696436211693151311502618529760603111375677286833854142316174572434582375993123684712953978464458837893301793432398267049963925651476765032825747810066571964767356379480770921312374200971545107826340176676004017200143817303177997092799763212205221767902002096615710246705974195224360045988345393478814403883166891242492214767149658969751022818225469063733027228092632913519367816663767437932797522023973860867416993412148471033705809091305840828103626156780968092258844332087469937912117431918253650565277416448125835226040507361553992003575861961667179109787768747088236925690421456605710683048897532482324892971789051708362135568209628516580773221359950217861641565749553167282524573291268035809033126363449889466814330821192557339871273717408788681412251098200445688463688103758011007018105691157834762075083807799300434012553881895649388352909173798440855404703295757134453286143422460801526392842098481602591296100335090503168535629903599211130938427983679039887838129256415515569273794834858945349393924571023314380690298051688300179368991347140192732429964362710787638751784124917489815451092027201055518090694596432069488006283681796513382112913034715183766033680447216520062739702188543774643990863105752195982761239920764833660331003096996681048594808949680221619715716967571947432923174168982334000302236621810196729097109072210135942498593007484956479974596444656765898183778771700619465690554151047709716800793025421251776680315266786454590139437376242485533716625549794228033686550661838855724571552763023109545562591626944277474531974348411943065621389159990290368510169403048998768750242567099423282220239251941290344477191705337130893395098187863040612310844060039211515755905890788896324977156920471785611998702151168222415065350576182261072439608912312648107864521771392416204554529778120406120279919808780969175087735539741700956333076352838995710582012264328231895380851953254087369231591905906222330730145162506138360803131232364578671299154185781639659290195289335084111598057391049998092259819681141405261103095970402333623616386710834703256970170295752812296605521967370331454005796076158581805225880094024415839773003770020574895230769140264194160866931078369617981522264750148048093453855528850353340717198869535403685636086443275934962761083787049166337096549069187623032789255774976095776552427353039214193628231490076485092045127441257326856871985734707811822556711350429408314368555575307134826268214002513146917948328768209194485783727867121406534192420715331600621891431439165155273101599606224342849747771870865223501072705493204407490527704791281778595876210110859759947129284928233708072777393511308792536914982367881806924601976142320132517888087141588849539528421304505226530582855845865687690485469597559897483126634876777234250187549513715578443570049992208348534155898082289836558777582789344827220779016560621920566616487375540501562418917607628257301541649752081859302034181259570188397423043332211777945228094464400422206360920482578790831630500252239937099380433560558223928624343810139251028397784690765148596852138476046667026980937762312542153843758833936399809221152022628013132917374259757389162804596999952844292653959821594528798262134504146605436587870329789898230004670824333774656266656601781066395802699895455863594880291090680683239107882194287165962447320813327899651493689584210788472924319232723609975505639955180650540359927280348407050086588630230163670524694410846367207505275500878507423442938413050833739246960434399629993736591456613962228881692803742158362388143399022538290939008459384573568908706390090818323895727132785428721185253544786868766551450481723758856009313040192884644973700683685212984118352858189752441416399059635229182867730118054846874791650437649035381539627492911848303422800897236696234252608919374935667730154829153626885731199553182912002547386890622929133230662018677843980877126634813197548990951630094705885812972058372426949302504970160414248906974821960442170495438784689868267490730879489370512231826618686934798817240199099559547739276005422803544496618454476821583837028186662406291279594731064322212091827608961647803062991979043836282689759405539957530676017412013104359567153797829476103157865898890473158508914808954757679975943521204943335534411286305651140941690823386464830026552662327896629054599615313128960145697655424640581474731558569070910404942099856118618949918281334449322935386752155835547285293077205176726986238449978165446619441037646954045378464284573189759563838759801978910660212824068708981766698562530477727039602269213383091592571319369443550683936407369198632334416604361371033572546195692764608551042123009480207272164181900020054131554835081711977211211328305725176396756196241056849442684118830497256052895835492746955960419910345276406964323678747831779109539803517173063933918178006058907436869160875724442264960521724518603868462695153307536328900381852709307204393514259355827468278619623797565915404188477720207618959975997172483668928743978550836105353243318883766883916365599757027863898316931538268526268845197800099847270178803082113682290225288663315435357124796314249933746998104385943467110487516558583051310405845042172612574725621861613462246945367640485985134863576737694092600685930177497468506944887592944372617937246786352690965975190971268456589728458375238112711105336080032350441392022477969800655245951956110091429119333556332322805132949740138572020478712302375819170963791879969280340199609770909278337841526547679672905971437616292219279388547941344160761029030801544132107481647315106100617280042311695368306989663781769581167499179356681064122626678806128106979543177449647533540894362059563516488442302029730754880356087669354525708713753144774951200255620878417590654867997378353666757055124610870953557285146195346167482263812478828607744105691363411398183431927957357865061183588015877711811919259815952322441444002437541417813180922363471545861316287913955306799765774055455434973483068967482446596828799757609372034867389113781204084071564875732507910413773536975144632611612327662402926320965068382552643321015272344106720296843096041118231771608839500188823900908361016048763348453935082486163341993923456143411139532874847841509001287990615266440444543916475564465094313261541947214651647542088259903812994391520821235402481556954870786162866357141334671876368406614565207369527941441412994093696752088285952641423000453959655328633226290098345808412298488473238859484302999765036759615653400810540514272390135594519341223272319191114004035069730456268295190100995540673378132918467798569680051898724894564046743784188033915022303305960563866367311427810037921977712622639560515564111538540327535035427533069829674143594002413104987999896326445694297997904685234047951301773366234150336662544424466264031383427838505963835956297966324725977646538593845319586174596491851634854820226490302529398524843923891679534439993555860718315123162890488886559757594120207238774917197871929992978824389133625291479157696251025008711001299383281754889825045090426884997914738252700920754022246760441558064276679035635801903640041140588024388416298567425240963702688648788043368291491359023945442524446639747197865449113168082385105239934379565404138610333866589941565390735505523483259711280926648153797973124695562324998869321926634894240111496215870005695663291827500364973339299554219659952345818817544581547748286593944904769401115375672240120968536713775179112843305785317088326436086148963531835020101734481066323591310875066234924780722367779667765355823584145857490869193687187025554977979902295884200517957744731099439392957005927669841529583987674345949877332622314641066132861581678995513422545606689749050828609705471969726680440050389734895538447848886552691900279502957748415053953982299907878885942375047854980913576362192307399149089771934209916387843487456490117946179828541209165301830191125853921614576188993358487488207588109447374603691347740675378647544631669781967998080152752722792830550233950258789389187169496073834247076559786725367296464352439381660227305987427403278921434669237230626868744535436514633691405659739045722248297610770121241662169712353596035242779172322914025533493800352720586739013465816914905226036061338589335122837542926812644627865178135584678297881484887161158555353481703579964518901826797200611332904406261643968880482996308310959729212431568665506487842975390634172513731897641478258622511520584213904859585217259843561919595750960170558865417391152713002116383384685252759673525694204155423667106111192943415963670754164658199915613521340603743320417344364557786249292181743746760211535720993794759744426386974035509459111577098600587819102342560111716864211533516249663111468086708920955288673783129970356860508252485983355613715191015322141129814913600489460882645305698136327309531000389953347783983881817598498306894234759839869557423637850484347836729892845945998067542630997225938147083122619848693499053886631613541610551103367442565611122074046365018351056384522491038772406251770177343292680997278998977195032571879585264596521800786395643652435299532563210012422057616760592915195122780863518689095960644991684631718097949260967624393509522263776081892876500683987096539656289327526293850292257112372512741755457180189130921086378361626069962529115463784423649055403038992971426880555282661069328793715216829786243307267736249002704924814609195348716495829162913836347124038843853245709007922038332144080378650794122324257130607588934948978831002148976810158716671014681532997685954847419778102821027956726286149553380139670967181207302010893364966004298219017037442612824560176326949582949365016694068469956540518598167815627824751745787093514804598586186895816698010014865893259822185306576239228530332692249455904760135171695433408623150444666059569229229081719692627477653533430554606904214795612447833513300190486233233188475872364240668432673847123156756890423498004476879276029345923983323417163491275956568342328440731563823503462369128712674779155261492464186549515704772705866550744960983732739730194108588359694862978419838999100164416030129094747892313173684808035541710515484155680515996319194218759893448965023220365312266042601430883118710785598750432615788495326453994968732578181757937424114575673906387425301955178240536309847298468273378565947886201068832015857137678824235256435023213900246620816524698001994695203174383987889705581671522039635281687643749367525103965550686478755619445112218154744533351792399496069683281511899277210647286982264586013048869936266242246188231955992943256714779001509502427670847262698754962329993885532732047469022009084672235453446338767045309854027838527149765866412665845618734810800665838186688326528303785097917007168575535310399932045181074945248135879518725387179831171259279885967074522675459467395186656460458430798247520680671687177356381060140592233280244310378010702266597838420767861933805344944597175590896474955961921480276150767424790515682565399135961484916325911959937246696826218635358525448342160549571392290390457450945883647148506581364368928401663926841054784348603136127175407413711818376747176887932384835950747421674844154655560660496875433306273364673876766144841794235231888292425074285465787422897865503981844400781602198490641491968082564186970116668633952675069786532918932409849063362880483591269411708410794973656952552738056458054606133273838161250062904557684885050459261708963541484630504063708578513057452531122918118028395834891864206644370707802121914216152070341111281403222162896145775762500185513168612490567207944977214514172643409043703086544422124402600078187471978752270190493974961191693612277056520165988487298068893837411493626761357454454487232217100977932589485758071381388066941533771438432095849959390945032342881137898886994397559325979131567405151194206226757706218389101391137466873380334103110919128147349882048354783796683824387924718873853949365362600820432770363297299620175473832965666677023147693389169107716474537244199808221645220424995174710272694192234559745384803544339287604909596741985944635880148585943680183496259942016097211324678900447673546225800927737702664907529776661731451892224705757801552009057478694922482986280608430192082175816959312657059789862103601749426492809836671903428428492365369939218192040534148040973246535264232034418886469951758468279048851379143298263087664142768014912908896715581500413302267036396367107108567727116094904477344178755042342217290064671286637887789951905672073701023516304257873053510291933249137929071573546500753937039140464949489830672186846161917365838035313740284130342842065946966097957046414941853744838534830393162982141903375009405657786476049202941011868053154804753439868644935108473441903784654726748963608799561076301293988907743354966361535686914097546051808951909459982093697299165124104312425389582084946634626452282697786787122539432716358079492739398633783631056101657650751212346575195252360739702437360832785186467794028796673831181151487537232691465737001245396056529230054007296007788820390783264095727843223329664915662268773504818738533965287299566809918840073067582855784552083224895918717463431865500314872852854544329545938203016293206674107370758633823038184847396442725639127459474080624616731010089944258321345086272074049250841990150622480443734835509995762306927369504751375748184111637241751595398303559848565248292237337525784396921030714862838176262050824623740581604463104554311701155861542602518975570193592075662898278487456278087614233118407797843225653523342830810604420736462836219707226347589844001813361520541453613695871028371548087859803296296520514577140381353027771677555562508374451596544976322473980028009919674038631717089870782095169371616003158941948689382173373439476472052178078481219391035626133539881317401297110473813975178961170045772776513879835244424785587421968123248316261737634371722141451513180959392248471485128011783811228469211855413819769325325136207236637177985197151270138513180104373991531730145728545359793161192766052767453847213409765894455070697438194327633046785482858485809651653894736307978244659469385536237875907134964194845401058676053693100155926494072462378998728090379493654265385908070297571717362484889269598830377088956444929001217580938307025108835253178258418240479960227877650340437816938754446689735223261495345995398076172850095978259143011742533636130281335490986837026876211485141220686938758692682895056417138192381650055944304845005503647631023492486191887222824986827424765088625655302288009480752934442696377228065602337983979056265816282186978147787773047417736657305750587623209130064517610966964750621247137113463852016250727500618103228879600574935499665065446079978618856940486380508885411229920805328142583926606559584713017633501770159622368380005406098053252137984897626357417106522453142756325024337463469403204241317814211148438816134716889606896044381115590788807100797039539378273420952715239347848907777405888463832144737638883875385570980404943856597894941710859901221379425172951392022900549104103862561217942829462007881954752884419025244942179715235298829408843564377970968304701654114953001127248718677318640118316312768351319148363841293733908304174761619268958126734186539553204016898444565375062537428151617723713204410081791146655017967984825560682460929240796305799724132294619492059075684288912825266331544620171822346501396952709449931669153399073594639981045594979940028796214357841467016785734647369818821407307324340558001855794186530465785102089851028154698189154783256906248895291334987276204013224362814096503150318059639206916392218482940002137653409207144233929913840181653842091909081912259573269823783393949113583224870483879463929191526745252113278732172399769632164284665473423119582134128798306482445082696548071573830390161335478875331669674161760203099036716721277218357952549678182699181966422667252669484086036854300424212409966180898354070750611915483030539505742174448515727124514906408047785972150975839193955641050524368212120697063760396151009135959972722497540984272202251979283368651389698765158439713151642697173132314458069134281099701449201318672728700116675950271380536892112348879355520364145584412345250719297162632720449308923681938490812553757227744753532424621689812651248236046110670340803195383561553038650519809242357385655399689293060129700775663301908251985048166386049757230094094464074913626498323255494617735443255277843525566391003841873548953292301756408417994561127681278572490781093284393182321872254777453134726409368037237158946862226512978063428641207199116523953058509233028832699659931949914118077024538838312964937846186746505369554537767575639157833109530716628103150708155806989966374074317310955939739252802092852700261757116350094442584691678899145821902963453909871663730903079504480779571790070635663316052466045181382148240949584937769566928822888839208704841145094279367385116101849624241874042701387099911180823194188191765209313695613015421069795613110931465109364096057709280037220535261611484330165146179739015682302797431964091974490175499220387503136552356596685606742560786573852910656856032138318771784611296005741213305664822971820418582986953192967284399011519195260621430509422422332616183406898392618943372244786576231942756381067731066436777904644135122339210725406340637707083550413481174981978121190573836282958885307567028597762653660363519163146442955770030108205436739559796383504853412948984887480973467465686679186839506175705056373309731219166586763592177924172085811255718628117133828954550133823632154110896418232783861146945848092126858573829730201588103987896751316136709041829191869039917290336349542144508598890682714016263132701434184668423660625767961600038256259280509596141276309038578700340925639953931059545710940629381641150058957829529046686235928778458580060256443905020343633442797892417974506306273565340271128214730441578329986324168739335983784499797197713222272691356832062851195770449007009119679241198008993656168693118112702904046259417622517770911865601081813022972291535486231912108825343945692607746166898957489909143704030913154476660477335268474525474188023855024072582544397183963891308875304620109299103341690202586199666145985703897322605141336122032964504835952029318015997429237825592141137228069757269918364385017156763856867005671257112074385765007021066207087193866932904091411125376594830775383410212467559104630806715872312090394912701736327365091324347399208440398794776413509006258119575823946039379472818212934734289358888383102931695132628209684540581882282911093675863656537944426651272157442983368433702241018855746771466013101229782009486440890921809078460109699774672018251470245472865711078551861931657473160794905460822763208046157870910854016417171299205140450432577986779072901727903230891668399331780491563807041839589938122811616959022298939620335491089015175571930321797747493898274240421218436773544605674636519850771733060460678355710904820592810963061373282667920101005300212656510661759333567725498376840580243898754859149813781401873291979801264196091866180130869079138852230674369327115543865321595316529139959402541884870271279404823763861572045864461961459332760842877188758985434733188981518044541494709924639223802611799346049116042573284507604378438263468455022479007907645716218361730818849437777205659271024228848519815243722208131057042716181485244464397007196093527019517564449518345957982571811352504763758978924979211959149961602078344355438662474402898256561508484842368978814811477928830768293599435445109624742866519281709859197755359638916012318683398548182472410756573069430131680397165848097720503595194237561130067326333952430482204850627929678220391484591285898542756206892024942992195163228779289153167768330045513327227723218713776684421380666796456117809166401253847229097932788356618412585206070035126205529313956524906086664843368571047558373400322616514510129432347475070114042940232578492473494278190287179767065325843964884944861556263744919299243402875571127688932111218673883554916754599732278257740212255686489272861076542343644116663183423572470397774302856807174752676740472951306678492783684102917228476314623260486924274916732882881716352446756283272539275486515410523174293948360318038548088453942746754251125282044262190771928758556774725694881606404534499450172536245652361299858470591686228334364838249213066690855749547288940042621160850881910394623770012159187730904448935307214838613914334368720771349445413334252468770236897758942240837435865211450742138405504430058105553191693090890680780325182073972329452780104550882544332052585583335759040340009508936221087028266543702894482299947804894881762046664354623208340880307087606292133045223057086322305715274544277357736643154263985718753228349554851948338003121645869327565026841087360685042029455701256947780134939771319388979369526077445538109321898356389028623837338490940110052038224011978431043810364778273336058386217545427300462173771580404330686315882456132025084302864876574460263539349180105874575047678852134359967074503642746992533635032119547676220929555544826181500476704283218970886217341098777582840866586347205995295966819398392059547738330966302794229916272920964661043291165578171971069257737946207040871169350312957236509657534956504411593289047051444743588804520680670828623559322051367849158069400796390451279265944537842161553293408434955742806561695986909571814008913945274743637404202750508098380972317881283081474262980428038247031800375440264530856900410353261445492249738412257444718250135060375244995303060978286638505771230299263855276637386886416718048140940182822631107728204005141340926112297319335952889536921324470197277384408799494956029208418296117200175060305998670785019015872760471258511297586487526093434983075596096900835807550561228095545728576233523752515400236260774492676652721548869710371756563594572333208581688145136993891378979794286398879891412187540130483016427842561240030170837845111791604259658351848120359595080376976577809628143637799980431881785538682720564303082753114236203231020902030531087757005142673590853667365404324121598900278374268553246589419683663848891098484674878602063255121364703136622702602060229190153206235393461281790826023224262519272855538317642489884880807837230935730848502511856563135459195048783457451664049138294216987944508616887800506885157081965367681794647094884310561533687172882455024179573134178390866568883189824581397340176988015693510275165642202883523808210378804182974498154530195464506540387621140322095527216838863708033953556671115244993437064329567375144034373552802298926482717576156316556781850851315998445703767835691926954671468791505767237103352423925998435906091251202840906443534500897805325915728068833737961516629334338439497195206149696134636857067117990179071200280728709878809376507568289438446310923679632437727745253705023791141018483372015658933335238956093671099963613809356564199603449763735005931193864232635636483699638390153379382583916433812154270284344873150757427674043816499137699280466361789152112105634827663912560544040042521238503726559312077580608102591507394623545498699349947185498607552926449148339514253504464692179146110569915052412679836001107727408289947988304324361832998077166992870342769661772622396506988554311635657017755489650103906733346668144761882307116089416140550179644986215772236366673037047159235338479378877140906151397095914372841343827975206883564192838035397711208877382443290205291585938704425307330972401363080169467816326395973020315147027092884897692510885615305957949655585264310583528835699992544379180324228732665933713398290974947840009472759433046748130233130649069770009385746914523439786654222427581914343606278763234636349996454591480155084449318576581852211860285960526136422320437948357408853997472085254233635759106714331385033856198528932392701060076582514597785098248122684464516018240314773646687249385490075228096823903574598463600790939534221801693883306751372584058608314398485130810956446174612221669037186370411206198380821722451572127400199044477924417070344703352312435906098515557368462072047676648757653235578075444808599483771495857843290814039921648923957430926063691073078092983063944588909437321031578324340089500318208451720703106277833262963635578129857852336727265367637366576113045640705191448346439795306255099220362775396761638000396622972142720170244289708433612447429195328762488289947252886637467572447943458583082970354468633989964890861304909399775915096335229107265039090842766891315534795400236387079571054048647404677506259598401296295407814948717499973366581082041768267176261440171148709960289202647714835208740152804580876244506503340522571893838216531929697756431599345858505165108716717553389537388820461204220547535854116863616021892026785168602201656052006938738197832409093621090057579446027150521875004708236448879604647375604533921624296348037106518892529031243746696741986043601343396096002910688835295738050519923038518001918391917317299849456742448848797748408100938061980979527197451857928019693078168716402922099129756156330817894521319932795996555196388663462046403852907565237294365628750686115622774769364241261128787701653262964666924963487147392458687322807331446057201135498672223226541563750449865421401016191207914312310543257028093227220597817545117335000820592584390149919076782323143754173566282581168775858221712556718576534333709272057515622532046908367301383414117014669327127308346800188428456158258010117612457516217831948240079520979343896801580187940628015637365239076915884804240699868313304668030118997512621647439857214925816695717886534218336684745540343507923138789873378887118816522671738627806880041003985294531339106656891009585344594163913930471862499928477184919095453934441802203866242239783734093260783176182248692477177709868441122737494888304484160615588036809224534977540376318769115186398656146500782647047839671892456214109533899442122178963566486556953763824254657656821208813928378659688286843192509238311482742361927923062833211068996757242663646504254523815369130441401061551959675731414483297242970066017272872283906729481063217489452642410482776121505534675330995929246988602319831015306683547761218066959952927500114623592496773269514263837791668870889534848368543900833034342875109366349938128665060184165214005326407150978672730100143893287155266538503694005889829131059008786625489606509724847077815930183980902958628413680514456140001603488804308740508547674274868451661189931781873202240708299374232039069174965309550012198048927070178916549434629042303443986603819773658027125383017693968098239725272675286644543030082002629106061923034354193648127553027657274409065190112246524743390980977757677995302608751761733153194411017712953969738844454813861668073313211646263989035016667041574377947905460085323010122014999787787487843541937857240287578522044911125318218432535554775984501819243038511198970851164922213827547332179679728790569193666623213937182883349468533939105658803831797313803443805990851162678282364586202169194035670852200088330927078607961080788066254096231095004399984075188321832459832946785909921104954873428573667911985647028186227037976608415051469412030134457951929881627887553007585026890284399209607350319716352244719945220808775592318454003170971740355206648058264004280173677835497885849031583333659656816787757006716433582811146167534289765950245916886560481052346579577174189611411898459030345376154456503917099902432707930293232103080208016105511253966627775514212236222303999502152916328567479799233961349531245829023503621906316808453344935056841963760064018253514132797289034355535610900004214999799383746865523057686506641159612855709153945444966275756767016930136488262176800838619911370100750732049987846694420299765184214458860409936918608076436600670744088734014303905072782013721728781026339104964520624201555137847279947176145571380185650603008586803396427460043610131326655608083910463629565664002902711522345899473798033421679078863297294887269420759406433434043926544109647947603723362805367855162119376577134813191611065763388648958839544689357937796709527021689179876545029036023291361354664370771843552685498203851576552159377981788986249338460632278245414607358674530376975681565435261073650522625522707715650400307269613500965300871235323271281378846478026968392723178623320683864720684521894399263594426911902141386694304888694171138259998693578577915634397676383171196059976765938434969650179310139639705083274333502352112997554476573504767208318385794235809682663608615493310103373514172015627934712798668064529579571187579192191886812884195197813032194118322118343944414274546664006114629923803685545617982589078925235510539184824455886495558852712015113901199443956864205398527763803617951103646020083061341937156927568135811277680995805670883607015722248241584726127283688700737137203349701615219587777121501995091734820634123013496651138870451067383140316682665211968927290326745354263760450919963966274180986577165455132945935441530976464982062977199997191901220660417410076737423249106728970192101753424065459212480474166676452231224062599230420225337375952622978752893229656349354572410708411996815565098111246057706458919872033522084892848639386383383367071194553389262568218685796873220970043001012665187547390987231406041951613952487223353463499412008568060941009362262697481867798050781265211489229170457216677069287573348344010036670524071108884650921129768566073676421841456249220397029382760054889836857814529446265597339935148201552490685172991680294141632539009434863627582922929008028773126265648307624550827428655579569083718596765848324638830724944021127178677857301365546074880455350919107396957930494685726623167866121067475707408972339459251506182920134202794775622611987712765800711396996982159991228097201036655018887338314442172162681322021097311537009296122359138513592093205872423368460357333381473640688416498261038472059914608091314961929396667191332500603145228297061602990676769898553369117531577081858975776499619175753461821098817741766317125401144364001324981586859145683610068094201031514344142198210246610620610422095448612423645259533087386284291785425393092462596207228657242441081429313384494235778920742721060647061577136479030935525874517814505722238594023019999891374395042362036875784736510656859712501733073136139832416809716760883488355383189988500646714489480191958793882751554837642561064656856195133890258157201204257820200039919895516241501308287078183900299453977365925381202169675321291498325622794548765613134773251058339594162196358251930441929136030695392412416191055505911292716079233681585830934668906934377888713048887438369644076926275763360902492446663216610229184137383481760754541252731537742995432507247123062920705453908078532342493468456758318371095761678775085574483912669049269973847666626085513908242023571716002960659240286390137558292742203773807888890939697398872802282945319030269632767240124732731513435423679916599926415669149229011585689954198634375309155476275539209210746992641139667671232555826052633370772061483388804571351156217085012695428974936269469613949275269149462688076680353001819073672177367147831597342657465873268630845558835544943923243641188269083783616310385995733039333544116640310000812627522379749686862148473886938267788739771376751466631538829487436062685389924870679685152478071844038610239263296156104602596388561671888718554700659774899154266019514508049368170316556566565549115707669445569008817415290044967631864141854897986004289940044469444716319305698975323487982269289975650179441328657979891994741886670494788488906874530791853877558959177279336637400535268527406169580424270901723413585573156658309099350200557703890151867832175505393247155583456141469053322342005209596556406665641004229060994766445565141020915397000900715832760921587105959629189882422392878942867621124832659785127212362919688507433845044864219554016060363707837225554479686223372193091061833996329126428880554386197665307704787178289750652902254776160455911399683732372502874908874046536164071527294735826892727243228346069655791760034745952567208194646125858328002158849144932091805896004549035988125056638734903974182618479102594395200051196639883178350849066883104665129419938853567399151731003565883521152888312880459032134643105175493505004512177665741365317162160379846072265315754166475485728774906142744231911371465787521029341377005915680587623329219053318690308942297934958896594617437080141796491754497694930780069133252534345093388946132884387189714831881185506754473879040988208587344542164465879496967489959084229559677535773163658944212234324991586814317020655773443102196559377932435794835602462784287267156668791321678472301995611248000431437662103817933020607105488856262300047665632261747027359230558922827475792705282917534357651075541120872418047401702507984682204605742960135804405252583971328184906236483074396727110843205053111748291664184948954269108801077789897310402252845316127011700817694481026821668299436351170887869573699156448860408590077183516120923481739546776604043932656838983092996270743223739792218245650203919113851021798846566708675625599232055138113152850034225305052780857856358311026486868437408904713846704692476902358589078457956821373902442499896243902841445588138865235187668066492041093318908590609307916632249546914614997380157659632006707788670290617468502458606735207066088899627390501344710327381224242013320780248061671884243700564105790004407807168485824743188101668189541708243480342895886120086812519750850205684481607013552352588113438505296534999484002261643034188035021724255472831859090581545283573941976577142218356498755877286271819698711511885051004123495124861203206788694063341837662150830479733042646956056842156990934754468711647096287621259395997508742515906001201712928665992868817976990248524061722264775325695166830996913196182757214175550538506209743182303848646777306542707676190190131349790140733120982389491585908921224427244418485521572342804425999103656628591192794003945045091664301685928031163230896108214508366173073394402550727938184368191804516925454908577623869004093273045629017796238898754706708475372804584162979706061211453560120452377442094388367200712981378901738893162121681870235333200427991239916407170095246160209721283470848283666154653336819217072479928996437323954571619985428240702916522112158801316139735435290779992492368893602214971244251807340498563467707917819055401116158078795891283014191169187935317178878030398752242590425164595586221386569756716523067973697130456427899769868230630597459831119993587171501930659526334975061611520184835392704943702180043382944855068833563716062798039509236866799664709912555675085881825041881249398356592353035561402314423031246627943531424568397080982089656564167183080086748379000676737687083247067216521184775496948527449995634295553350926590060633235296087676843120161303814052108033731916960600679406123624146255999511168105538363993909923943977658439927375782187366841436119668436909080742227580576681980699255530236643153955945473501972063595161450448745372816851547647769170172349656586384465567491172754377628616367436934291429528564295302501251107414269047223059416558576020935769879613706188137153784529802950757194949404466219416036370178621172919520018812959388444291202570484132778159243628139540987275504750217733039516957024617068404941783106375942147400480280691722063202656562697571848182262890738126814657140049884188862349029443698922792637077810782642172909521382412495475283847605374566279060638621960866423562105041871348988123197653723255575574421043974369926781793469137642067933663540280329225949228014580219457509872106986778787337367086153644291775841438367057402844338817078948774990812270817784763185260711737986859643938265119867870775105987541888383789782915670233394872821001915261032206007981050730293675391929472973323377129840015047263022957272311434934582875113178483507499742517822151470413088372152814367286854441780043546631448298391683745379633057033193224556959087042600696922393578204327075814418068159962079198970202702261346845846434213737621263125021442490228791217327869042017314355769377797376714486087228756514439492330375893131597933659022712120741714770094565964301081224655995902241276549592482795206538061760390521573326677413707630490190138201531669895286999785161990389857014611270314547831413770066692324633838234431357531706008857115128450708286598761750395324570271916690799751904429860549223327536741369967732768553724302093795521381086839365431555446245833678675078684122985648047463346635650611116928936253794485482953794174264079949802442415387965167577794137179091764379111895350252706709295405869181352302629309090748766671938768613065501914878109240367917650337206254926935534806508239533724476773121084493455292134415722435686125096984899741103681861134706920131591635128931408101078468570671529553433816795670572811773714646312676886935665782640236355122252606635077398846231577972373140624603315845633898267450479168639980935226806675868142520012492082622856265174026860777460016534409865115250103502765960752360061581200510372293986489184081561579660230549515525158650833900266257834134514573219940012975780948007813459540986200227079210196718546390840941400991366401709892669099478692100007302837501615014025862477677119602407529831477810694853773556994931312582127965487067727708379437540305868351792837949046403358631211247600841858045703409610985994158645990890272362734609220784364935945535697393982859516790136285647109706219517831049907425151324375650229957752771469486264156590512025756715940053262710895575968349463092304708278671308097356076493415858468111450128022540660601203353633318188853709274247408392012795953470979247487115236591757042035915038271348967221839072558903852650967387604201602631121434263223754996897140086560913226970868150870642013064815432776021931625419058573848075374495202707538570550627798433105723121369906522332054745348971050265171232004364885307006123283972256037535745751152665331106161890886604655667657137054736120255087993127959298492378849939179816034065532991166300875719628128323331846503392405275425831087217334875752685859525508080375932423637136013773056786821301730663929574175529020814925407700922408079504897127123969078586571871311192438571270903402899583363094959506090315349858781869737900800811904654544812128351075041557000965432043673134462495619184170628470338185223291720816427304604599110220006849248147671065234124463513960165281071059241793405372712978627336522898264917626064466184937006512970074589268433911628640863026274178954646104429574102255923750626455598093099634149461683144181763983994558487687116938421841311365499346778151902452572198274616480651934862934327318103277339272312522338295397236271197539308141811886819470571703292287165063266022176250417292833722954139993465796549169289545624491562412696101813402307374904376442524003994545038598611416328315547497250980127672039784627279773693466742216532576391908852396900719788513767670533582350851507054241219839042625519231289742257919478903919482518365716581580225796769599111691847371397762262867066648101857493910752118877065745339045627621922906283990367448719552705627964425270002947274898165249665385716987580128636696430789240408184157968565182837640600470042271144337500598342108843521900982846051520454179141724867566798730024850028546606361446211822700655659764308737725850137936558725753290776596435773139741619993478827313920767216289730754207077992448084150443798800173830338583801352177940553739805889327984502070466517842771067808966244546618382158719836753475412301093330794724451799820394525511495898405462890739013008143610408303185587659618546984619443621067375209508623438509426113478031653058852661103265432902608320691529470586761574480135511307284080309230953712752543933958872074901993124062916763004031543647387948672481161162228760090106288920289201358222288900720603695960844482656900766512651383934380520677085752553166818373390605078107032533920995415834142525536372623237132841407628309887994571993838802933651713781919423787530446228378528893475879523322661028319343395932332468566230354093086690770008057562070935141046500018851697807124902344104015053693702857917793293672090164116031940420688149848300517097220140848026846597124841486358902928397844751643306100707529356776700611967053360746013645456358988343884977624156837196128927895019488826778752235497848823830744022504991384785032019082155799134497819996802959867480165318098920028714441922131494101112523224081165500432703434882716936672002314559919741430771781898760537548201274422613477666435456398137548677866332636521959589105281382400914110414592231047606333167876311752473853714292456950595691818089946705099068090259852503716509616971737394829307249620024283122025213345502670271563066302319382910354324403949667646868421270989326671566259211048246194225193756626648225722603078206549350144338076895019454374088013854993244569515699391326204677404209705113418028501049083434991966153802277013148877794487104036898610509374807962113116737741010315049873688218670938772900632759986228253549882068499073775730749318022197885930682379555137523276786355491866516623138213483594085032737156045583599138019172494364267242073034317065693373601376475487623411628339752816738043899773294032815377497547578811217189621252589721502507354918361087049380403909411654053909581531041023740010897119372876897280976186817291605862525652618044438320863540881555471935902390474788588433823084609259981342766266606540793439621252390362180022243780798023533433759071601171259873545169638443679881926642203250518708382399747611090670202639793089490762370395524358121129131429541158555026537633747516441528640918470213541278510883767815887439117161441871471665604756772921450796566139031076685273829751686176474283569430047775037803177102259947963710951662618577905407772526102020985084532606667144953889308832184103822531791529014905719587314674955260442391433840195942788781810549826608453053836669567141819237412310734789531681113418817693493861087752949868127149542922427021670599147623268150518407750334576856142799855584493668213974359653753665494747567209325108637635153804776005846545533113625430140285052951201941138121728238644222344110346513602821164648132473325261966187165599173099087223828484295051498697618080087401605659285800803281703021570868690550466437030636932204441241436585003809360495139563234200949342411532031440860197558620635061942448510698811674105675060079254378238733954176004334579332626191818031143544222267728369263438035090216094964716389176261236135147313305293331758694389857753707001750778078400304421432916977075863443870058293728800142937265141332487425280623042683106601946307161617822087334730033641828535103325427569157601413950753771603607024774363550919257275981329736452674113902201511757325018074754759217938383053783191473917247891434458620084382511116967318165302518305659927452580883935289199908981104342960334633653695168397663706052005574924389242610829844116760981738036378023833757968289449367709739133761002909606503582032335686163941938292920974451819542782253976443876790798270977267961413732376332282159617845603228071469374379808147158987289707957006561523515537696530733385373495239254282525332860865776700902967376147319003086352829162960152050642593896480423594973804855714766501935683956364457933653141651259000240894052633104702079994127126062956826880348994939775029757939278716790500265171108571019711158130916091369727324731941455238490348202187032856675976061133740915473373000500535262181142913101976466209294382904304508577200804355118277710239472373315430949071481049959086499744456519247811652615847354869354330252699181709854551660748496645173627402794840583593693798745198415430773756857043275190529365791049157193533459865969283488243643094147170281779690483566473582983726438396653434871859506855291964794594845932951119688035026594003666431366147906583698808860565565048913977644529927528626479045391576930187794383107309156858627096228355143860010875886182998571100986241754557031346584380929442422156638645818969782473151803442728890821024084029813756167354577549419016710177560042267177807314070893701077230081369791514418776007716122334704686353303963662629193724588512196710260470945159589490111051481602985332789572664341771367867242032509206054221753078475953578410000680048741316452548505634199371251939446732854969761350912228540394858037601128666622505101127678844432016966250345984932929318200194634967750555351297044557714492330597765450328026187051145511945647215173519125261379235220737991797870326250001515583795042137276015273400666292904081017999973853039567266679221161895055914110629328842222775328936221256056349609429390140371677664971939358679538341489369125133175148174511533237349251391575482201286531483637948537497754239394133547191958657193784392657551711747108612758545260368337480127584471204391292502743492475054269201836886817250704170329451951297627809018176392687485024133419273007470136511742308728175070744791424411424719929111302207620989184660924229564851508339327167621820817505080731915396050291989538796546550585847504705440897967376600388159157627433900664477541596170085228253881252286844163985289558851604717089942983243115660555492784470288374767191443975006572236816474952640016152090007934958395179017100789733135232860660746274266186899951745824748607623414063217295724458187264183142016949943970775146651484187109111211406422603994562402176575885079085545425607910597186754717936562612389222628047303946344796726558395198650027178926394554590749803907054252873892861912347020545725061430347374824925684719077602784923452983277774480528677802815818011046559117488323072138065709481156280021491940361271991665471746214164076599862464319174047593091536917403217242943472659341035375248701566213950923163718650826234771065318126753274440665086332274542031234344002560352135495689882980914755262696758302408285637829268280961802635824142244060762529338572493854038577785717916035736364099590391640381239502026040813841891884397134268928135570699582420681005662426170075631469682783135311368978363207616514185054426975294244741210675990793573089038152595705264469430838128634788056478443107477539499150071313993016096019343789295553204467613688984355731153151102198618446554473024632733850121107099063014576186700706895704159414688717027251216036174975799189759618781757232515812351832539814437706451378663619718737718668869370726703173001664091732548950622964302543794595146410131334561181498117876834616643039022295268247850757532196743525560402256257508792479369901806929309617134402632141156503059140089515192884875225784453091865115989208042700570705486862216499337054424104866329968239212639719443208578933776158213877471652275154203292050807792072463616134845441144339822847953971927879621178296626482608779089715074558022495272744313385047539251197698114179516961202214818751926212546893929747037141523929923219154443438749809280737942110022269703662623349343502362385860348535216396809451493415465323706693325973783186595926651530585959689960139583403423695663976372783168040177511217911458057754580214074134444168355386311420643251887429471370643071071339008046525069937478621188226284557467200450797881599058408819930686179224637894738288403863275315472193506747177127006491381183301078992093440838607528422063286262074380542059102969863047198874122094189706003289894829250339143375445433524460744791094542347920454350642162571861331075687695887330324549762566004134914931118510744777409348619228596589723190413861154422867159524902309496330796488724615433780895928312800138069546240255548986415753479201719539966385540936997055057441224176421412235011726177946742666049457501303729922857134388401978268033072845445696012497802976598999308524312944476743917856614212529277895378784589716109129933322402306732074936746493359853042745041303530299992003795914284724966277147213900078387749562612900227069108387006871176752095404296283339273333385747514493042053734582680026206484507351962283128980897018354921714084844629071862734099149946174022266035159743930787352366208483967961681241949302347497328626430186818395399233814304158334762117698634811811361662838882942334427850542223141627009204020168905179815003952407114659058481064688568820456357944463408775504283904133079901128205713589365473825380444633712088087275997735136906048826966463281456577619381614107886366673318302676619424856416932436523393395792990775839859718830580081752514581223734355674315815714966732360148995819038158052545943913514159782976402766050056838375510409469426949511876355771840347174995854828488056666834249341717247532472268637965019389500452454682092603038138483657042604153523407231665308640428751538052964130343372658847158908076862686884801646666385797687612428710955458993282710701613053246675746354443063861312434642922257693731193208280714372602726973358248403746998141614037543500509085783692317110266373460096765764093230518455096458257527018497831717224240105656125719628621425815243230546334407234220224694705779075957541049713619010569861429364829523408078820679577100574370940245647878320740501301389944699585006197765505720319766034138051032665775832664551657021885806797611252638011025796680496465928009936879339479811007002696078277274983881077845992507566980072396019553420765525202813328736422731792638773760394612598131203793191209560462052963193571181101424543030229946921542693347101247500799908564961728192454472516893973274318149976516713297273591875336560749324554906136702943173847430182029934191672298134001608390571172453379364285813903395052397051607602767483358230193899108211250989611742139203476267282381916463507173421824112321688160057755873247718134717050483259688756338219173091508214092364291684791937722031172502496250012975019488080576981092036497412759091944055046953526915790444579798776537936956077769048858930572514522457564381920351067285909093908783510561631253889398781361986599591732268519778200025780495891107267516965564542437950928968117414492626608921688595786592650167412652306035310278898042008165785993714225597819140174528667369924719200030691691917254816589649434866026487526095676705575218427801461367601984550921260615727446495257891723715669239120678748691833299919318388133966173901909094555969916988908754089597618878883122359175443197000054699836128003347020293161201200841427293432604934535669454374753319617294363685448050050841494773476305220178692791607628945151035221885545094333755878118471298939276311058163881171112389384247341200418649888063619528431556743186326764959700141235503460266973994915145411979505075185009792068234931623749017549341482439692004318449135908749858972255988483139709710968913019063699949466255679464711796814011070866785444953886291777475397694167377904852308035529733808090733038607119283438044951400145959445359816599826040354662510885392299684523923238572505128841056375173203846379123750787059980245933828859000035844675926219267003083606812017901146291057568669122983598874989667698187498118871067278169942052396824827736765864597209482967594255913145058118338125827348437850964615227278868776743825803069147946758816478140692026947862950838942707085752071810366884235817679400421254159291622065836518690562135584336884981243762165508373177501146405179760449336400301129566905135121464720236365132531932388764321056308391648819610275595231189004780043778961057933156711805747241712096962790575058943159843160266559171767552917921765403967029293776758209348076777750812867465745065788327268450581008927582244920746902400425824099721945175198171128853675113446150375014122314288964551366702446856107085659605943340355299754861580231450923944348681289598668180379437510228335072726975306816161867531511615473023290167692758619371102515078618733772739398039100017470529303807607864403401192206513529714462861122919240836200352798231285143913093242140398054952813082488385908106073170849538905489657055930625344186699923739795176772410669586934638347806936471716295975165407069702062810782455501588033372510099157282830506336162549408463471926684024569891982746158304182129376044769213309804955221807581322178233166073549428885349857684327717559591916295040730740147403604689970546363392292646525555739379802397306124826969680983848026002465711174937124749400495211692290920893694187436346394162386492248454284038781649983070157486912227011196302431352087496320255983554142636295514006162475902793713051727644039717624874296444900758214110240444639538807965580409422541603919279333419692905674008945678972194351505175676094932081484548075753687888250187587494552495823488719752266998273439119845352878701090172847980107996932686804692262959182545443487282568389516572622154517630729775464570347178840195945652116847332436721773475853483868743584419440667654940044913275589105094735385602366248672940307203560718506313370913811188124366722816016367951350416896130912089729006855104910037203560231500578495906882294706830304585415094096174999346942040339744992388164146991752605025707625092076850514223991917594182314116419945942137002918374907918091495219925810021308707559514025247321621663384772590821556281000696091547958446610296689750660918477012954615754757469275337566827894372649792854571613721446796241210135118582939911477847117099195535758278339307615988635035332006026981348581061307308358070173529750884836984010333124277950918469271325917546153250953371657240178115951446873245529720935753101609477012439570302121959375825257551540370916951569372454500730711078419938180908841027956549739121209159725352689338484068169317379301784679810072542113365073265492260441621658875995962518979599982891230694213595909227985825297280057782054672526965354641213433269000819947569174141043727199959318353932021512307412057073327657788190697691794435272058920693334534104179553883753848625323991833737433820932292672444256013624345189262628687633356468553203232546351477897831088058168895223242370594873991195222019928560536632712217317756893882649534461182398721303761362362192738276370215814249767438954490323402056919954384945118598314021370870372729142230015728230113757692422190567659962306184222135347386652297612723297189654153116357233513801430596223246677225722308782630204053302309195614642407505779726557162228550180116851431508950010062137932311303554241967439072804157579644010581730566857304017106026359405982651329045370632260103564502890244141957321434838188783378246515363574196792137889566750609742915642155135351259333610504286807307273390573548308531960236476277305113053702127078913185175434746180052346914059967712558859756766673132279247224956043740096711469948180446729268449024873681896962638638712748621618472027524850224647394880905892728308361400165477583782804716935178041120300234957904510905521163335249822787887237256469701875399405417920489196226827079452571374416456531655556508528298235168148144631167462004387421316780062355987295363865852650947522828337485034580323661258440685420895176864579046603649682198183678597873295030666849505160757186222551533005021759632800282051035850016996688595737986036930951060280122639585714285726313876944960658343433586885649687298908746813934488696572119085152954861234857630804695196434767434047093754743900493844385537753728487121738574581725417026639521383849772033516644426000883271143913277958931623992921977265966027832726327977860407983405926643372575776317506361857132063407840321500226763493217849037676426870581178228991989808257557174866565133609982312684352707833822552955624707074671755377753583871781396018001042175143980819378592868267711040460973742360760192341202406259193468635595940987127020680022288664221863704684661622780630883896779368342797041571572071192143548688215737890828063308026128941209220607766238702308528295436216429808467832332209119520159094167867788850751521426731810693045895923946097593656331522041995573129874314353813430149402842846382243543687064222461894184912748579650585949368029534504010685126212230256380215590073098271262573879358932752367140015512700624941542808890468421474277443868953728637191374768704967915318125614812101107620948098701392833462925926394737035588984169599942863132487653174555806889849749392501810473629369656955169339804205929326384742696486136902345317705631846952059984234515439166996944107276532549369795737867021266423262447975355633457115318809184316382238264045927098184078202012355026332814857457701766291898176388302707138133326988833520068432352394058791007517918614807796661432671924695478644184793153317265036504546792980679998867203512620725029290983535690418257640313684763459401390171453378213607657492270915536109013576740954437864397605341025885942947509700798331717201341621738128811557916654607395356778612395684308158823457455048084146075827675314914189265102062013541130725101002075005883651550213013565885963571245637489234003594906153881173229127221642506486136660412181095202312455048015724845166904344485329208084049844047710678449694927674537270283197680905659338533456136113643840682082811176396515006683532358322205605310143518499517080775605079375364372113406258692566846585592695679444228876603658140616455403653495963325381647685981469835166000433438247630183139302248288245628638243723768304704311303068515899276947217430891978879179728168798484228322668203210384398974795814608314479223497979819352337957894986780650169000171232545533650959760268084600147039504270539866578991223470442400205728398867852224164402285106907114226618171446900283374321265137012316889908119933379250578675485307672915431265557172751829999225046348227530506077933050841967995329172511159142407081299494033605118784160045190669900267832345658877949473450262695559611984525751064678947609565506060222741656013362679861795673496941119624622377977312081873474994812192836952882564801817685788314196718331353518602628672603006181990509452863592165262453516657848110482979148506954977703093604718816621740709484504542453162128350570119082218735986659171151856571668286897127223509353957245913775244882994703622200401277240891053953049471069151377589831060108972561294475733245631367610772289411913773979508487255011401236588721693138575208778533026864259316653746172095973625214525716614522603163093550617563611522212913610356300459095186610906048700796130130415102771916715240096007107413125594006278601468325894899750660714736502283611870473778086514643045624023218716431282363420240597087581313199487610044400942952141631938167083802300794963427005895233444106556981649237896520862099206306343388262552061532018911779663038497781753980248442538592816146043979529391493287866135547888472031026867482452187962427818169711701692627617998731037410279427779154873957080580850318861927054457035539563964068938218948683188193969620635862731813230259672586677792484496585699364055622193801293324128299080188857651552082989686802629231518680547272624209608059615571636490786084024790875343696315353402035720526080725758933329030121399117262190181587551719106368453997556250948185887749276818282829221637138297298738403841455140918070193899415234215829545559683525489156218043558032119020347824720756184325532289672923302983985716886135140993437284000774206167325399134461856959252393960555875035522698951788035412361750291113249314555038476519039878318523299882201930120575855648958979450003212052790474768445750106230482275774215097220941285121750982117496743671496953254403916771199176050156715010680012538663115437812462270341104025804634517514536607881008111440005749310372879474502397105988599344219720917079217563341523215291229072014239452934818512193189261389627559486820188876294745634627347703619758055327064236013349975308130756520037089261863273392697045204490944665093641641799092825395448615719883187242179383428561858992539996872592554366363034123502677797850270175742339733142316151602258647131596642764927630402684334657486766004799263875060074667272136498071320370474003503788188262008210061436601261428586084479605558217046997084631373043811811137636670039046637222810404795647342074825183210486454234548853806442927190164520276053651375872384961136385036869718359704682451809228344675424715124236799629049244542309516009616446029162826473236596214672123167239576568000351617560850014948142043904409536591703593749135971000369082146098464061585985135688544538394951238128134915953470107801751254937366151090838259280914191535484748644919664759937355970700715824424997228832990184475620940061837665510849514717898400144011589971182157980571547897027497226589912062033387986291368875581081179895923485387953985128105470566650260519948052980773651509559456984541357170606518723297465276479842840916549902259416485465410917169093248345435190679773664004193524101425304568829838062069556333597815802456042463811517611685081128879889137588648077344791690754564350364231257745430725493255715274464316115809955440875429775965442761430861007728325984811956801812242788447925671134969996525048861741975189223116882538206465448823276805489199438503686815098695285179030124133424005091782006865164678817995842693394394490523731698644552109849070634552896466519021241346870467731175781877933009696362246750553403431973651005081322463055314388613650963821012871212066146307055881090313045735362049851117003274840114785365420890487386688911026828710316252548058308061597235030528675036648418895820515834807950997088240744420922236020656423050882677304740265171890436523342838718463222090161175897438250694816689258446729932205948927058827259745063995741849744062821091230998945197916876940723680471987118023565103979151275351156567744027269090966867869610373635945473467010323703583818983552208493878161149875500076146306267175272936258210295082096702124313156031196647243145659577284633876035639006876256715234503106772111662339121084399217902304750195252628002009707186279788552648635478577626962041995093252796627720882404880752657092315806946290545923631207656764574909048312998994086928032902385562915602653225203901495203413562603080903881741184131718487916455515923842056401410585577233194853140408865268518240274477095797131082304601244489198038107914518004114170191076924958546916019707783247858919673541829246501710789774228307145118147853328615157118044409822742031046714935508450475015020955366251506357242588319927480029580990081630105666490505047725833797957032237896000305838026752068002813708118532129850747192162832354703379146722258334497559052546056296318321001342810110465150544345699617410075635862136221380361450343284158427040707872637706848697291758330291779007282150037226648496335292542045083929021825299165864577042938820589947665169630750689152051716208637759684615188258115450276251068478011131619148487227512561426104812705042621579621212178738193189838407177076730894265018215304245241048120477261167310152605738556453141507457533057799621353440922090890760161114590141390277060677836330584206304874149158201390704419712319572744777232130612384877133705107087279090946234511086475448371694952762262504903833898500914410584130644200967806392569853439939095546508833028982387069280011313334964975564360838458734310451846307243631548709507868072031276798352361919271471033829863738910187112306493856149038969536542720818435689329508447243507634720307665812327067446921575459373597949854752842727153244524098669963513199571389609858786057470308167806550392164758261387231014677879039307320993359854227768310604762696708488693964781417212521194911581345271984419808596901877247184429350513590390251293554766619466379653008420399058264498252882428771522650935827330639017632443899417738099321973387994736668556037255471373292495154962717714328366215587173302093294590905653579572861215920492148400693619944436681838274825007780691483555093780692037954878429688176257726419010217612584973758753487373764952143428945533360190473446844661045780736322476080402703502964247574453042187307439362609876616004991670295048857622934408709749526757862629005092139975736706718419774896614860651286999591509341190808092966976813335680982944377032404988507597442741719849276632261895137208539945981002738666515990566475209380561141325939818007324856800780943964601381122177681078472121722405573783224690328230115323896219489912231260526204368172790094692399276198001567942519040722179659005578680831102311468663087178312100281003768175841283660789253032808568658721878025001606090788338247886906369321619624490199676773734998647295698862443511716906272604676543530513001596259074669941843563757276402876241492076877332336535592749532531051422095414476228918437007858175953458455381011950893567027525983632996381061904137026487215764813714747826423926300338445983513768245448523037318370221849841181349087069471743276446777686017432786773710489355098836766097997442282015316083749199454422866904803215172755874994362177181296461298200985248701757927011353299304800478939734229396919574174329387034871556097723077486508614852049136368556131713791075838593648266991546881653103693954362027547771255868439951099189906754640254184335742853616472599948220444433044334128917315004333129799614403047373575119106326463324774476788984103663241690044551348888323157765579937981343654897157901756622818735193123490958014400532512951967121117195967762787459103488012347498246417659548711173313180091944450743361727698459491599624562844484912539751449149818832442912764410250299535902773437249481714341350098115926284535649066516332986315928515249371997983691144944775795358277218590216160584612555905629961658236197339137489627106655499923080479814403588563501912879870968195896624500592861357659505622917963378487571855726127135992545463823527212355641944141373935122612761238855888556209878993222068541893735357713662649364422928366627130069810332017084663146798136584787264538925977035591902960211633045605043363208304629241649527014335999865883159304729346433952700360282497654956803889069413942944109656706006844910782846064477303395104965647681345208293285689177316080940000980883065765940492078024335371225721052925561227755119285814646594210289358435956288814327680203753413777791552860561771104874750653095419895852511744079845050025319256551328769003297067044219519377753229597145131337361999846394718599421062653013394768807593466196031445854787205274588707441164244548185213434567168302308298457648904587301675914040094681048042645744967020106629459876993619834159300311034375721554583551309704913264178273501073913097811396947445259406393609194264289930072665749159916676580130424986781347821681699627358756365719711845222975509343622294260681751107521451228974430144429632863666431078581657788505126669647015371705121431484532051877441794292594932164472286625071786155808313744102793067614757814214846933679885258577133772200887803893291683020842539137969108836273736525659071228424431933236603454049881842291965320543719903357557341531259006610546922070229424165898530723822774815566496959275376792661411182529081787728784451352891461880692773885904891630288637942386786396540846640872407242019985420015558916934067193504377668576334732695466226028905032774461664748379396712315317953898159255516148623549995536326431623883627258972683102144179691464242112700103273217458734256432990690385219645305381700858300029437808485055056720496167852011962827682521525562792919881553695221103914032344866165170488284717534933348149385662519114336502124799276399804127059452832502876134490273873985410231060943924443361203005170404558759005068700040910935446710407466837957963147756262007319439575438942857119608145377655104001215756087435869315348425874631072230571526905898398277231014594251241578713382346089859210458028934945619341811016005921576542603001377753522071933201960702402332255643859178182940554543713876094551948190441256871565135769587612660060066338450987825385198483645636048822936669319049630006291777399778709530251077425614148194057814048449447139349839005199315371419267474183747367151037909799879286463894049158505193493377013009400507294327135381141555797706663394348199085118624155705829709480051242955858480573599751831648704886973976486863009188802420611069388892511806912902710934099823282246473734970431303226160002496995705544133286980616662408258596062907314322772417372906379384514209751987935537757577451964793290870375655475658833681236563517583281157071471978550903842564382094254929692273880640178701394071088119245989534012003233385358556824341376239038345192475215442774039228698517796643455170665568388588459233610337598694463087130001757183850724922882678697043284630019381352803194903172756482140709728670674762599500236031073356466281206416658191699526482096010219975611932300141771547631031478101101482709122031342013993029553049621906914277166336171480417368526339397997519555756164020651106455377699274276698739818294102880478930425392987342006595909603525398220033803176858548114637099907546402160138052754614423955829840011218533468667870030426055917838409028835933094766347928973181973528519622117108959041931744734052315725775601568770468121469370221486677340543432279824185861755390504069184328283636118840925666337312150044745777519451861680469943857303525038845117003196669779316564999368052751612893125406089485634400230886949759995012112578514278617168543511092131373783568759138145991034721464873511996634272692974706500632659061362281910665277267647822597048386319110893538968375807476278905136507120693913946011804398565164286261973936858032864252906664203157166379259210136319829797506371463949257360171017100430949627251754874835110218101824199413222577024240457479429664993557178435432230023896468961620807421346570375801073084651692084828399421615704869279712986371638979809687664781970327727606733643686972115802114423014203712690156727948539838180448295669640022125034524359296512432660041042894214003667167989759947086686061844101198355569362631490110427962264860050144256438068151507430242370657237899094394028341039839955478721725069647498212377859609754823379083138108811439741759299788531714877615110664777261193658485333376185904005525591840782408355363302160785258673694725671653666358377489191731742371564781217400085027047543912410342043605628724872515684298645939151882774604652002306962989757795455646782812847285765007440133430286799462213063452527525513880975050039806310683817064914909057039133968081976110521519699228567050169658795342925050420951345462175626714359713757503817623783750605276046859782393714092922155328682843522401508860114500109725050383070253233826098166096400858878184947342406086496802635028889934979421892170180613590228249480128389498683480406519674090450666773458493356959349686260294315245825981178238036563543912373247101693339391123171751483483377402596129254621952319214393922244603417297270142566338950456338260382673838980127790840973537493991416918317908730125718145031391783267162420053277791014164641306600915501477569444257010563352796645926477348129980962798868793627862044128310868029977937138796151087776035218589193180119283457968613687216197149666396362452863718037885302461693070199167038628276181578743264624839173795346922251214385837996565500066052559297994097677310601919383879821832034906836774991354168664812413764019659789078716204325264183584869307029962916166616970030610645783988828300786068764955967881441943764322176388618962878510898296928460439272941176136936745365782160594225330977373953670256062165106647754490002844685594123100379878262301197887113495335317496285964951860880994720717185747911807147917344879724649568198329136685919345838615343203005484389334911110698266718437520145997672582733288252610582139020060197386610374411144512110284103560740246851700195628347533539909151514238621637351670333871956314703434446858812238438312043952750825749569582971896414332736772044801396966783696240692049965732256060041778305576023224564369978513270285758738669056665169101077960657009354337188775936158349039747392187489870925023827882005130864607886572849909716353705700523838572354373484718658035976533769041484424156563749748339172283780249324474730232072383222137511743996442130349188645537669005231225084039814851834861865847691202291931946197185700196906513827183021199205214764702201041645100783643634282264887629421578065778333076318953150375265394006627646085092976017961724278548266196619482088400860237249709281560021090632402879523957226513241960480918279561457342735812251654185945186224451318378239884745591680918891787528948679323432193944594155186536692091870587359139679651600257105648208166661752846943184168430484845663728114932634518929708239126485320861895317820078602306451997084162373080703737290536999738457700929949158000455351558161280504669194680495998891685262762672306138985819600811553914368449123931375827205486730554224724242353483658106507301021897131078779715934540634841309752335061241513293230742817472691219572429236426049555381646223278530367719105979244172626839216576146538050682625522923614710798461848246360827617457563764681636471349716641901198914867777260129287204834101037275703432016270146522341744002201589352125409691096201595375836848658188704802982944574408884029759807271603404152783110640498213206500640770990116946694873311934950019263872810066642345989602143859351038156115101406171685657459044411285246816330603227738649269796556403392815931052807165875028137472590893186545712784178236422711323436798132773384980451034433630198859544940377594406441872138861624092636256840881172685385251990242334893467966645472510122263125033647026558827966605249306331539100002456736788854025319302363110471153818989807194180807153392864112848109411130883309127680103857200926276491367828071335122897739072170145456822645449626195769634762522385882894197884243968741074940900289379282702962879253911271920723425510313630416250703920705950925807525210824167289033725185210754989293217959365433996551699312289407363802481797403835589498935125048514237892884748098094734498870933924940241650622613923360593334853281154445528735514801825486866392266680360861666405275214196154716633996940495100158970733159850054848396662721182032974511985338984487099130845009582878428315174662596120505269795399490193335884627125029694811198936555556435777630685633524688967331475016928310238906954834787004371219826738081784612621373462548648558664382177840944742596772291032506083104871406790978407615841547743205792628804660153440566206958927869393007691157334023436626415640816272620490206909101545019301593284784961318618825316306059943893277841578520124538970508277279771869989747530429727400238971804829020194966557065346009964481262776793129472647162772869138369814073877029472874987356373082362343619613906879620448379807329784864221084000768174534038547483435138634996988521833535218540499280209769046735424453754074340122828319728242900169713768516252078458855659227692568443804952519312186388249288427212568319256169368314916038267009213594143045061493277660944558375360733106070128868508958959736174902351865448677697072092189244037721161392951346020819616446255840086957246115880658710958345854756196056334848483413009937152574899206770967890425767379133287025935000654022130377374287050298856933342921183461396038887816517919064469144496057684881285059589599223771922401918017553941775221076781655605335813324363287681095976137391623641872780733536064269899102395803234444627564677999056614527658468836616000319784502762641051741304450228207636739868842340634201353207091030707997533417114462063732772994114099695411695642122058933845056128010601654229436184741418076935642946354531474108813403423969054062479005352864015839214520689035132132777509955075884972771046809901656271435481720528272187709381008754945244680572744874507698493528095371089458590067509999015930752728504133612499348616042430492421239771574304872184301126878608536508769751883718918159361408318591334138344174908654330326682545376157777249215768555300593410801038214150944198118167574568862517358924920664481040358755373430289492361995708298988585720748094840621562534432397243840531779305248521261912243695647292715430743492996674371679119991392594347302924082624074996018622880582736354076351819947759663229874355691734226894849299893389391412812792050983255354505663475684342112346321525831652663382090926954099177202724790616692572426361424276010931155576545176221235928939528577211699776109217276659657310857314412830027267103011626538078301683224441554783717174129562901048268532935686628701604370327770099441124153877006796022555750507405221461079768617474382869354138149138943653350577610825970628422780249857245092568773038930018133940406184918485615115395889374494939543925024264480558394903067976131662037035981730806019157433484753955580229280828072375403783633046469599967203968418760471203655205834289936783488516820164660885227807477451233872916506293338827529738669145690127365619259152222389498122452650833396862267881464112617031806074017546196111097309306348224508131496461400678086116028303493197469288151676532145448335727188682906695772396443275286903714906721729577305050534527379743900200738791459912059325165738240114137650359390591273482910001087943825058334251430263073978150188228494200110975320367768574366138501808570537388794075223237129161988336481676278209956861353897612351732946447779796212095582589533304472883880998611293658503161311778847816501447523284056350181117262358250883454375969156636686147539982191078864284808821708252319850779667051682541084563692871956097576935738633885321455522326011710345990121240099954049830550436748168946610693615888102017755647987035877681588293649842135009349541510044020784409122403398044313114665143371739831628857342055335711318183866829191943530127604342765059713189238325655406721335847605056260444882068766733438403763403559567989209124712306440281882098164371096561492363196696801889107876186298558859092528367480019593062132496153970616844995896480176930813334956074015055520396137707286131913120167935506823556171180182618071381722554928741498554427810621565733136918400733487952866332886803221493159369989354445574793629936567242581200193759591972673672582253772571389944871918671901046337690203686230190699976103713601144856465410136373037922644347445178678790666693932434455768121202217380146683991575145691170480384099734820911672337814350439626331090979434572243954628982782559874705151437869949410684016814668256067406807944449029057099549341930263684868143914201383540495559750208229847627085042349681397824371878163981128967225784040821730648099562910784907911229900171348356976901977237952795241613109127551793407971613348300319556848591747114855864269385586863553364174154688030034114233964169805139097721652655389015185691328367303114765822586385353205215551198728799534005968448555256830313595240574576508151061107341366438023444513691832744472188754031545860013498286496746525979160333142426589168536455413090013880714746414947923238526978837059044001506688760514963416463804744842356202430769312489244144643037843353147342165299280735588249527823196571294574569291738547025968089292373595863109367872099811827117692544550926735080974553787612560859109803092564173353833215046340872320982870587874231477873286662388428529268291644682834929736602629495540262595637957015482961300385359841537934419702421930697107848784000555411462100994624509956172133053233418928099679898026879107401884321167019885913972190973742440004367728235800934581042138161664706578047943506835293635409709910979360719681488192390173249180139123455441607248697524292810030447030735927226630800665102252145205809594445719559797773725268227827908045490440163128147936032509772939278653847170832584200486230006426627870706445357013385489523593856705194586059970956863815029256885858721072184111251106666480115649754347902213612137733470857215712090014117084763236130588113238787524178673313185483832114869305013687435102535039168110562169735814477482894811028877165632222079240994070630448446119632362915157108392585352380403274836200342511830896986810830571594075532371914978325340559569611917382565560813304285014985961246576779601813247999114760935626019649908183072398121692936947319274087994873339457748284857288902880107803550207865775287672647744108164673417822421015087120741458832091632561934231500930812990774040661964891213716662397948876417423470223635381526881720202480324890281973279018926257912479464713764444353571634173633430021390297744410451689326210377268842687460002577908827427204534561948825289945913965748881235865647964452887826983578787386733369000225667029908417027103160442897572059210800394899309968180757156345915048734502901030720610454522609735121356309218959717103946643423041154515155270849572043774440331897453065543916211722624321168456163314094375908886629430081382221966530137968839531297820690614176164089295251920955485374897221052892867002565887204082795970078542859945871862194200401773348880437169824955888320505844773012042698675754701633394638191322295403955054874670082787762553832905899737265669314316936244510185572418595260001430807749784434935076367841857328562945819821356433356989041660578033375121100906926186344400086795425174250317160052105930096800352886959446319015004602588949770457387465101200295120072077105361689163248779823175801548349069998840821278804089282646907809524658405983425110358051980804058205269583975945744453395377624120106668880274876956705061591741365007347876246838593772303002925447483537835858080070929074052593252024450420720564484719763413475888468425028338468216198847372847992611725114920650987852829754202038257085332958280329106415646454516429883119312912087084140829196098160058512534871166339480488743408305863724070237492509207265548089208888399572097050225345244039774678863563459461864325808400745868056367262322909998614006181618179567516944911519492903263178032584006115617721862744664482109440091005806446586446853949761283618280214464371418903094695653124007506145383189653617879137431376441386071230372346292300043397037640359617442393265362157678630459212947285377406880875695038600494810382365231719044006138376855832273668814655097547342406547089422391861309669631537610388581246459612411487485537125896071715406576024634935325266851963791094516055388166381015580275980603604754936224067304801882973289878521118719388238943422629997214514153947688520356602121095366963404633222000159443233399218379274944888727409940557663786267775782686804979116192993279785592876033143443411135157499897055277235750043340602962948842392184788509451329759598626889801348647830759627396488820792368290240562637579613544024744887053027722477056348630877788727419037186050051638691775015836288401415220571092983211891913549929251342161095889297241814187279280687800872537214271084117220241014887338422002814649902967761980802110581698799852341568996302373225476995983925314804782198418054596717458333435904077146371321129085042887240755335212127041374921222399103140887001906070714070444088089883419439945803416664505545093524472054415752474620477685285107716271806894187524570953572872683306892786213150520503381815883927647251352847233502173478910987340572866310705966053754126444520803914808861123477108130171664812478985812310197878120004187207381316989287726523456879365971359515370829100858339330410933122193387765330580526416146615479616713927923473914964476250195158924707346009159089320535783980933876653676984805757271783273631334608319589862785406836538921586823215659558803462308163254901325027561464355049025126598199828565851546035390111123237023952738745736118117787006874963930900116046196825635220066336626747841886047371458940646145863927038853185677270180242242039772453906002719107198151889331565367994025461690178094082586853223675827301649694761446146670409187128535469127901730586162025813354375451709464300020656611313250645666424191416421156605708771049539533907214194096879242117644336953753935403565727581457317215841628006423527726453071554961103367708959437188703260201396086437835761930602464244230469507326697774692756241358181623237430877254008462471724160828916503036279273021098606469599941999456214342278021824908012246489526907478113061642862219229047076490100798913164206900163811469901450821518479336550113174057949588006784922434919991443841586138786348656743664728593148033891848667449056948475401181833580791103615502325206108817142255004962279088443523183930304047482407372943117200031213717859304500148060831817107275242430744750746687029840803620224921236787064808752662383477846616489962783835881371051730433702340730703260514333606117743186340110935647303189065387800620595101932808421659434469283324467465803445181106816480329944975875872988454142946186699634150312197960358969890203758603668342470033981077979970577840679450727702863945612844432268305283020933767869694140080640159491835504129000024682853038850332658756337041598881198871740734558212407655452171749572014142351344092699675331344245980305098031916899486624210417395088762623899434482940145241822531406110992683776007197490674926770567090687846072072880775828409074015067305568655880855409678701539158500332470378519185338381385895841472976304720957248524179909606269758489903703981548590412773964958625994209922398128046818524867231284793253650921793411078878272542255429525408668371942237222239587868266189744999262137799258094071194723357518968269243437858922453807093927182555352666387774778826433670151336733349040741014316446274598146134665665067745731579977175139642590355030252558395259214597171452233536321019406924616478345446527234154903658596417402224548775873589650139499122891794460741950215996417536315198806444132332803219797193912022457130907262717940792522760399200000886806289749156708704279780187899803269985119371267509262336632174031520515064048540663194033682374616256776623135245210925342078808866171121711677809431561971331134751062499669165232341299971310385723246291034499220429978473106376461347195099499782194007632372391262180000715262999103381276685168700101438895454955744781152550627770954538044887285099109806199879043271090542698637890116633369527263491664590838371391826002130853231502698335625890947783287784682466543082833637289851049245465023985816518224113486672371213878021479132265550801158005847029311331296276138907186037804988798310550249961532046372588228854035784529781280010964917455214270534361438092306061056363885083613528924953032332290250128965683649358658239581784529794370916249848156126755614851954905048914181358687536886210597916254790363559522836227204026098895184999941059557127752864242547359962129155976400655687918938435650641935917080325175831782792419637720761853544719546345623300739472880362875927143752625637560021781960114362162360286869817614092883505528755174577022577544021528890800233262527491269547776864205400325634278414545584148937097344921348024161811130526242385223703784733844306729236316876045969842468902693330594697654412705223520346179612298793023254296168872246515543198769730630065455704644633065857416115374432288316601276777775781562981062525064595970525988214438179547612448279492333207694158901990341493209099958387427353683804900903486235748877857671090147683066534760122517103979037956911609525321348773178162810993864143900809048612219996876639064644267257911380383012073840809154706767243566597881205284704120346072351371657781555749202141671488312913018338225253466150768800393053210641661219693292030899306105785659355009087871147990387165851614511542688818446712595356179066712253310113213543995739342773342363694501261655177668215011178440519235517060750181964236533039949015051087517570068541135855271608180964729084472370338366668229913014505373976615121432489759403928509151032994557873209882385345927873922434018226373965177673879903021407243847308156870835710622689378274021823215998210461006457009358827214931855675475972159324655562162588898487563834344331113093275052206935511302335912642517142895731864468105624806444721425227642507438307822858918858719612356246275053674540026873190022262688494231927795629251425427754865683476177700944627407703093434381911215330612910574178233553271015851126343546203199068833853339436369376317042285880564443442313160765425274165579773497207258472985614305174700526268052891888659141654244495040622974437918742637988109118171113993038178210685048045906097132939336966465546499342681707531941744367748182816642031805860646328873347623658845180791408706240448565214063773581971447743858503149555688464016916665791402452618619414870753726265740038772518144891989819943154170987355071613387860351259956552678853566732812248604061944259407725111883935292190962060954070409149122959993878643253948900871591263994055245045964648376108193169205606525405091190009396697599395222656122320691337988236163503544593986289179306752950547778910394780562478552999835614686277629538888087564238830901045551400046129482679385737803948699666545243023335286229704735260269416492400540607204106994324280336443123621360758919270341155402755939065011300823529823532926027803775551311804978012314426448053271964191033649687307617101182038086786186102420046420909822938751010372118765297046942346019461922504304427137056094919137953027726106874689147425667198865745006381667168871936913545859908479666774332015627320853685029449279906168501363088616883838553510572652336615192478868232558088287190892254797574993026674377756437139425908061892275304254832247573290947718444516994904416888840015232027812251766230199723984417221634460979533909053772934836275912575417353096505459534106923878205352599142355255509221629242287120038637469313327247168886640165339040309131780316105387624115751984776477386761768317599226946759946564876365196331115504224864965112511097519248437496204077546402474537862876362285386182511943552907358658589860253121656002419988057514440478876574577776093658585411789005803352737148575281130121058916329031133644562200416591880605736408727844463081629992648762764733114525317851359229705943867635605115604507484365096188642321413338020178421213999376183719358966888891754667466442909323075101848058729250821768906842344094434200522855570246110233984583912625207499976596536700125401995515301263432560152296242819384979864601586853582517268571393519805036902119485106073549844222353119409533132326996468366035163607295353577482960358611632032059460534306094073900270659013137901372173665438793730206865684816224588224966506423406259107700576386036665389456831600601491343005414771907567157681514887636007020002640310431345216150842010282189032954516276344647430848945270729894658187202388127301993797343734658621479923062665740945965084863225748467074694660853727232301803580268792034803426874023432207077717417437550968380699618732426377303667546491985859248481730164682706114295119414953975299445599922968320392675278861514764971964723502229516228584374070576154116322861746521772967106105406847456219515902046375141077434200886545570856628679692826830302531922376251399576422536125724815757815246094661313098003202562883611619773125703028216043622175253964557834226430243116817539122453786702093268377778744409211290348529290899933540296318190614845475041638010713030545099252428693151430617822902594017473564945368134201834694221828146822800740331670305271976718281995581128914265070547804882355301905789087726929803084045845500309520004834760967606191098369039193792730243020772982995764161473212066782552842918161691072393566919000721363050993521626826813117969347966225656747411923213187661748050159045769313263000918849018914026272156339910246061090106171619824510743871021673158415493595547602990691675897368706749486734012848531535069107105125170677079614047138567046775594466801987766604178322213040366179392232335157885853529779986887150367217898810087901600659221061296087790569392297475597475051859538686650362062244229891244525263341852160989042112057483817687346529070053040922687707165519174648152271001463088141984806806300774168359620945259382500433973513762975514643024658793019934570809368895868552493251684835259181029461819969771041883041851011787760822044883360098648466164412633784824167514236836448949680735392469432270186159531258256534885656348296611963316834300455756236461692416268240922081985069113626426316690901564505755847298249660899120534067328082988661086405833792310059065713459002124948094945659840520579619559922766275339305510828188840609315523722173367807292145783845100547554058152473870137993355465536273387650332595230081852407399793924235135857640412305763471924368183291921594059194644373248253779395536407970757945547390036902070323828301130660404614387498968836781652526142438673487173799201348964326325467292576758247521842240630933363821422276377705148963775591865718090528543561933443010475426773264133123713586525017122323136035331550168664945445733069952434548894365842430735627900463739479263030654684171067807598529524464670734502088840090695356850089118099261276610764291088935161517362740049100223861284109390423075496201832958532691695580556775419887497561767046056417400064796754999883046624374925769366713372019457867606888207528385075169354049816130791093572308034870081410085433483131750913759434485428168008802034504368687689580974550911055305970024454693046362853146992196904001427066158853755749611768906014777306095787005899394431828709493066399902482083636676712198061672357307164704662141909240560547040707413786841815016268037563682790599664333307421615469294050121588424996701288045482866388248413871569443706818072900385165735685480374189640350720610513077165540382771100520143559470006255064270483938727674484410825846852934834789714181430861632255145103602462632126859330751118367904877365547301550391892885912987357916882241644934036865971934031646513063699203105882017424172025760305788914862991269665240796938062774265899655911985209301962906433527336444840473047384308073336731585906722128132258623891719332838049429904125551869035384040881090690263016027583061925934439964598658266223857967500982279101242690185451765760615485900784363289039522953578150118416016343369357115405413432811662349453564614963598311500014787992602820590737886159375616491638121818517753989357347210706960691000545859502423274349149972273721951143299070348644260932006775164036332733100441694958777982262152522025238149319989026470539678326316617175417874921808894333611326200273501912427338827866392009288230517471022552545489257417558439013816765581280523855798550892339583266600801597398112221748945375931363187974824224461476044598011944273425843864978495503813315903404757615816880563085616747651053762176957040917367284490994548010917088455362097215505838901426196489777184080108863962698121726564592133816060413705249669426374114640402592310053439091415062284138718786391150569594004921895692691842034770351929525397369393053772612947079782271266735230992653669416633071992077003238606725193056966962902554239562223202629010990737759848658204959911916438804722550799923071405561385630135798922616065263810668123799913358729249275292991486453700746341765645731284453968534703890232791400940097406607711733023130806995933328482616845100594196970054307623411199471538967644999066259926536315958821475704002715576735475012551115264601935143569443363228324645374177553041615005871143550983953153510537480966052766262114550622539755903045456665027785526011496266285744304119658104046000476288191402253407391842535147039517469453232425278245691942566487210548748932057904900886715484948046786939214700362844342030348942942548549186317281869348515201254363540467630162172949637522417400669869892213544894413049441555494608100506461146055778186721950685067222474651910831831175760113645950935904724290072981492155817925288597727878680144673628675030385743347210265645046670533544658657284911164744185097837513351994185937460456604692447391004145544249790438390697247356448137502282135220439636506403106037107930731576297469741524588278034635091593671113788570270807411031671511515172003451163844493140558599178538023342957786095479246059448837097897705717832583410553877677601103522626225189533708238530455683929644823276770635972682032790515347794283111741789833852732109361369010678216026521237754992778108118612135846163828176992732931381033212680999268488747017552155739041735205877803370742163920926791554615147214094007969182167334614586848897650647777684421290580312128708797588084078663667325201061479796753195596618944995439679389121897984058477153871066524573282288576249859219955152896161126567611872020252962859427906141315918739757965301456100290683763706690223254281462297373807723812933142293177284075620182180100732245436379305851020344000759373236361290191210569346871554722938915034976562921390794942968211108902519915257603441777906320191591676683713525556903444636816741416669328506750662447768068691879736676817097706956003003644326968181634855480766979482313975034201918254353805901818349859653069828705277234992032592352916630055906932643151687345377002221227034796904943461802693263823162049720643938884038583300484917704877175627491179903738005732821719600269767493047225178215899146127781519714617253487060750320565661527889532494071834012298991532167943898634266123549232235982358640706678763738874011257767435438445772448551981185850336873116234315690756384744626249923477936152297866716412147679295566598293060365724481302711641017471642484716318445792863187253550230432689816841776985026241513357566218489978120194374126477343535411998648100225292212337664950569516138524521009016182984800471294071762907932340072196056862778429740425957745704632070141031735410417028057608202155518432729850017949236452812407047608081905956149023727159118023085200809941578434934804877045386005606621371184416930067417709863170514733365621987366736409317253282832559001339159469966952210554100528565298791306279396224666110644359745339776026014785349629088467231770901501368685425888706907689852426608146950684185958120601482817446039798960383919189393064947066838908520347973557273876043898698870272887449261485315195787775894849133831291341120547817304247965434643807543972436830492985044292040872128000676809405010081247566094689836426710538407173363368373458571298456617713908326888681876999467578317267728942011679541936576463045212391025016614355125560946694609294924928714123226050828679076922797617083919723611031244563755462678875863430581425927574707379627975487704140250955744893315037912502443502748036877520860149016415623577390034790848618498058111677058865628232289552800389797045364870702823866843023410414497529839517694981274960776455015922727049037553867280780972451985444442552329787390102985720592593538833448477189246734853588687261410522358008179441718935749388233449530078405087326714756747162790118111196616907998578117735052706631238271693579156489234150143899005735104334431580799791090861475577610433330546589009442633287346477717163022947507246234107218760326464499954087842258241930794500205798731455740089166983290504310549864638207563541946833802825523296581647443765062084238379285865982828907028134741736827987562745917708446104086966735664849757857977153261909755553601683135561288204290796455960845489300750644788725258237405733286038215653721256725469812199722387876877524527506922740747380709857938465000914150850575909367287774609285113364732184591953398823743149547437571120492638158823423225934398597201506546704135686109053403278637756191375579270758094468032638674537649350484006055962697919210918400338109833819161234754961315208372114965201320099613391613326996558802415427772046966118381606593334258472321750981758498062730512540335161621064656743702077882677261745918295613885680573298325178484671121481943184927754899823910008292621774496684376092057502284489669828909785351116280078627375619574508455297574241245933365121893014710071307989161937913018145685116410682652992708548524371391629357476481253163244544799431997689789241219536500494261326617207466878532310681839784579822226763377658733211311335530998780517625949286045415033210373892043983604211872095526302336024404145614111360854693164205803698563652897757797085500580075977025749018978107888999807255458029412689619925152840114622439992160974566095107047657734985508810187812503639970656106696410495152711095675854988050726180135751490323228110393632000096189032731236890016009893327602674172054006043488527612588745234220718870400344468490264556224253274719848209293808098623583565659126139389584811989331417934696226795673872442738723012945310727677625488838352417209718009024956311256588873631945543079687331734965189166610569796136569426656556717929652941057152300527968805282214696514137470975535963981126402434691432149211612906992761780902025387826042037333580386729950173856052621626049530236275069349791673886667034320350080831156480368458312371657227548235225220306298223412281604391927961947861601808601458595365156874065079065045040388208977685809791960996084396779554090388072627086009577550321520591876574230762647659225725273883124232020273736576886970455902287789516221611745570743023820266483935194031592407960814038898031244645523751233465232884636573148122844909753797583161474584241593807538305994534793311582735715458285884088981527260061467264908436956313103144934930014383741163351980341742608221269276907620689987291737873789866436242811883092620538299976257474218853039931958492899702291218292469519097938373301827647233487163109752197655174138087942623680098869501331101040805334331113164730432532887916857601333202807309431470295785033141007793021603019720567320676780124591358529588934244532337757417114313583734644415593171243637657905186790260937389464373919416421307472605860361205852185495678181862582345562760642922855848951926008369606666699317826281570507066490152012525113057422584485556690420874255867960075780124399219705878768280248428198030579082825977512253067865313095265412386438444196844573738121047945756424282721074201105890277474296267754802108478146939358232908881631224973320811020740248017236745783807777694409952215803520547925078048023684950357358712757314158068143768425033911446883397650232690174014245563440292055647266070315897539329513819782004780754901788413018741353594333583116061644860313164200866741316774547819890549352494323128149053290773107860648558327536801600470554709125784550079583025368282816193749687419427995650220340862082146336563933272741330235894890586688318416222212748952837346696827423120851284164563056554805635733455930467796993842425980833995787994326236149918481509067454081319545857294204439221630854139388045637869275323228668011039585768350048828791844058392065354123645055386287378591738440268276366675006551493824207254662150163936174262053301693653518788324636319195036802372903357394923778978754760457014737888068789028633480425042291566684182309201482025491933491056408143894078294872077302516781823998231502672370062372280965651442237847653693593897795846184042682450649799915516540277120831971937444249827757128263499316931299391379620402228546469852272662137546552912628720480133745388428898183135059535951034662631307239072762899846468577534348810926173555718847287360134501447532396559759351827662152128724307775713578345735788945319731058776147321325432352125981280254165369949272369002194043021343335569936677710477842152552644623475139736133276179289229594079517412473365853320965558389428778726684120958121479409122971800991904989560894952477451351440088032244902920305139382472148049560242605741426617443201785408727527085721544412842500319229196720375304669146229630861823221983878665523435099112082227524895115037550789405054633143213667122170824887181530733305492424157670181426563286050578505235356255602309179318568688703496512936376629294010167351630237326768913960110628249788727824883288246776889944768693800822261217333392805607031804132433940865820625975381167800503712757028283039318666735963105249237739643872700435077744637394202988224227316460207734859593973282170207687261941244116994760725551067890604081818237507309511094754991260069386060190765317201031966468813264279377814337945365887705016220696054842425667615627735030264885332166241920047490742183505268121217692365461720007223610901735789483927788119356883570596681138890098675157265403849545348833020297587022386151675864665692109196009943561479140126331416537248956167304502700549021307874070668021047684949218417631424174877469606199749651932520055795746858990490101533748188063152491194230691378984542435000290039059039025731281745521448696926983266735201361346800380169486344731526254950559763856806514583108912904264010161569342637546011673135891127679217924806538883369579465249704939455566653178274967186858923973996496972268513151617719730638311096253034818457265919255025764180882632528744271759201972191873708254949912063560189188984731278117649352885151040381797406414826105282195079102987219981785499877694636402710780436949852318746528295955788236468544380760763248065847445300264813598186256015836340876696720821921412306087565421506856391062906750547076261687331074338043603693742950102987341443107583411816097868654216175470616636288430930575965494086892973168451554019283542932248915980546152130100340000513691692502358579695891206911356133638475432939082521179866848187477913736308462332516718480828921716154088887211988414860350516609263563004523517813309123092647773164796402043821574327150835026322279113795051483567582375300428120570921863411192804417516009644421501103382262822771504060796553525469571972190324694440821107966416711267036541537829213671781853062172045345109563051846759478461401044210310325294662174229728546018441019244493370389328241513085995368498399395613100439862682046970964070851005802447856481695581597486644675630517528437058829204353896459177419328147613263993339874793509285177090049938873530627508081195774979746869521505076275696585271140488251485669111772281870558514468614968518815629692436855063393052863115404899689823053017635374914437448055310989930896409808403628760833612841402786651119097433658065615594644970256854961384677316894574538366476792098984905896576061352051638834735738041197763293231936619058057844890552673239625266747244121856738613729186385057509865449203192046473076965135325684046722547415062713273508724498580782626363422290549907773924542625235026943246648855057576592295250909349254119536571218528692394202660334732418369231223978831412432913745634822780142721512977737607708487832299479176174998696898651514702845653282687576290643346925153339941576254799070295237947428586894222397759013308106617578187718853059215579086755617128095217369671842715453783233739258866188444923326104119331461498415995693864802786258769226692525623051024686298433337190290840432072305013371661109784471834080186089782790362308731021643684699179652859891080366597674249892064653124780241174579443733701951972921851563722722296394587326598012265378969061622090689728106735103274765895921660996101857931718519406039416376928085022588647406614748487318586792285410946766904707066199273207173425807378312192370332267403529021897980440454866201048367573549935755547896998468716218183819790191035334050649787201954558331695824758620563552505203001473019864175853893624416101674298665458746759295723822890174876636800390082018626078089059352520590866820133053493175057075841597081524184461190026832486686785325575609420014278994170152471239280436296954712153581059421472572954833523759250220419274620458453123406972664857336780766524903933834120385826370699280919192319605972517781475311132135496719909415403778488362039992593949273819155951564235067580701140245255124311934330439797273197654701315042170272721025332823501228488603949206027615931312517059809333559771008381325688980902506719881015973470675432072773957889536407078077815618500189925255281599295652461760308145978740181089554573172721902690375518143251876094180036562684685396696978861817198730678031046321206360744504901971712726334768644756494680989830547906242493267319089629597996834027330984793206310388497119885236816940818083528558437287330834393252751702034528206678784416623536640739240938494480377707431889869730007721814580598812786692967334294502872081585366546062562929520095540987296534688670460398698552009477128761445185847533394127046767407916655295516376982163104109900216555634236296495220938180485550428777004179223948537103957435593304200384708842833691245146059736167802349793540371095846885940499321044719794123542858920662113304122296788919944126823013309998140608011412572796657851568363359382756681946694440297283469519570990534310730669984598732166992282387579016153493338399961810869738143179593188477613542215657563040406159005783268784880074331652376881736370362137698913990416830672759316489431985481644140580436245403797074693226599679033779937253829571235606469804944697456767780322012598759803804482186562603879650912590498166506289230458096315741341428095706536679742828383935628002733899697749070647867501378079108119841307558074610949106944233406674471818012733406787356408501423040723570879357681577629884891065188956982012242931409959459835715077395406169201544710140401341542339561900912287972575705067031640509003881709930924069766958713174040053518103952285392324167236528618440410436184731713232838072952381754878260843349355902887830951723492729596868587376652807203721443598568828276241150419464769366098013221295649584669710923768071436353901090307122141007210297133193301905058930098009818375433109356132381262622998608078346579878203171044124195892003120014416303387633288285734881901178501826581560641481062226737189982508839433917292727837650148717822661280700934484390529518461388199612558814927706689263889858463805190472949322101887187536660949037487757688470247363593490926130218059453831055418180681966439458956766041190878987043960416803426669705086454954668137817563611100501575472438468360221569388304140007474719300902616035171984240645632369710201507025271720686697104457133277110678750772749399021839079890991176445993706766790059295166734525978668831468993746329337000465424124273013534980929199016884413196079272678238610173395726581547177049211799645436422165580914303473836260405633506298491808000513563680517538666267421679665227828004099504494940098009575313699628906203706147687096762530148477714594733256142821171293938719749643382976249936614143690010329455714358365885867254150017106490377282470215221120474679716996256595708858514038572054425101576266333739393957423502130863287504655020164195574034478524023550589564577695431396602909237210973109135150027744332319021162194106811340693937625451117546489640651366878330352941932820773754020182875950254605749954429629818450393135407791341556747192675309832345574225118987199483973924684417657870954004507701673908473175396624330388356518595939696104444074886943480315404946648266444170745919496440608567624373268409930431316952440388068836312511660716039980606771077774255737203521875249702518940520025444205063567402138819524082601690667438880683136517139460179652306943400432670486152935659640637055506172631156449544377944352472941080330779059986055571276695603685645928208756840222637846938558941896487808083974281931503140716732375242661581149878584497984916939198143708021560671183442777383302657649503802837344074338728548506628914955085480478529536481420292875291013819553333652470673790416639366163454015071365505962115742158163785156843891320097874048184411508013541224482872318084746253659644708146868496582758858308031763656095977840327701353355592349389337443238542630679149640359778687152295338586721992870316700174037897639114982790342670689509221319419152112342184375551196923577282556060916655535816393522755920799772331435472458596185307654369302902969274634657058759707744842637306726693573420556129469187736450739680271239990217843330817877024151333729242154238647553223710032932378024877218294569184850789623023903750539130525013434791377889695742426146793659980771528929651470390281973994936599840814702103006434225501209060604703690774664671453006379500367963371044813792459191867363161183208911890908291155024801518548553777333973110700600444234101651973306773038158556391666967278939097017949625722770560228391796178414924714968062116118934748931787701407715209070099331656664385279211768190261726498653863634132461634775193702241924907105126008078096720239404381543898086650627113455873053730287057181842162525007683411585445200065652316489756223817744316797138221387697164880609702044418857860557075508569284750826429048530875993978711803509451934435115351823260741408635453166525623830429945053435112824877515936664308063083129923880924207331849905533505966328779628537047244961249313052467899859548091582110442826167849984665372130037725213075795646135393317069097092732125689048433196737778841404644199651847568398926106686963757199164522572416938516734086708805290415993600280029551423489111326987774704502977294552597570085049726124655178836159710429172471606627320498177446976265485161158491611550474283401077879224699843754749610848848037758646083069302410717115939071212258613656848271493118043136669344599823069234176982493808921539265958622303132183713669269434790239082505481814647417398597033851403269536355500451018022192431487980983587970213817239880782184104680572978275536292710389866708219030046806953943752902985159520157947692178030743359468858244480829042402141799468948867821064707942756607129136493823806073985941849736168865545637962319726422301116303999599793035651376998157327037228773246080693629782938438903936181781058247483192644110530076750586920693241471270716419147041610891059621224341904246277519600337606883492982457600164750445625058873508430399526760071244493413678645021016068184594206265184619617648867919380364936382239321488298543000226438244866023362856041337187655949655146549596871557437316818831161952081630636946992788766251436218658821890371165069127944918482533400119439331496183738571978506604279576492257327895925013604638940439193130046146735119427645028839529599160852841976320480386639776219619204179694149827294913651119288311684742541986796922777505257136640681582554268848441881852113465701921674633617035056943214777903775392100147983533173720647599107862925866216507557229650155170955399435071986653198916517254113600253095240422412635487356898995056844927178646432256401657306428919928338314209046290572158963674305020593474223587099491539402074367697361112199123777356269902935676059902774144993595041230564690885104779484224803058795262532616929437110010737027778554577481182546175370654323102197347960252567357395848357833029626231791114791953844051054133921058083109612042815952696657473657752702142749869263732851306889476645676809794935845732646565552513251059431575519987270341862295368020262321959826979194571253970802623498263014007623282606469924871249765760579987761967222711719495222517744186554266719179472849639180797537575903899577806360340441057187001879571579464619784951553113137512678239794129696530701715322731322949476914737026307055098229024485452756909725815615567244408849206745121919372817883699015830210398009372782890213511963529318668049555439447249042893187345949951742045122401686215812175849945160703245864272209980084371947217562804349949275987225006188261536265781402354303712859006536215801424755344663957939288750362790190993312413182139769461969894214053953122224950738689826041509761170358330055731771243015061158923541612737567613722990835602612237964799688588598644487116189593722961946612101283241868858868512297154312361318536662662545769314289142465061817080574825677572087392215180200636148101692235538043738320021601894308928450198996006330747380617319652077117680431238742293376600526656746692959449810614981366581853914896057998537557861646520696159533702853025096076264979876264476326001336708049141209715486684057616499005160374234812888278871353673850323954499461954688975121352060731298821606753881142902998119255244995840880457691078513109806837762833001707473223466131819614019975210405613359129810813074197530749524898347803187817488410078250485872814672921672385858323817456870875171079856389053413526779781527592919590662166826740922779262199075533020270812432377601511844961342085490485054340777804034345705204629406624544153321381531076993060713992560691064252290741628575187320494444162480186929759036854837010164354745810211398376247248272218524080436570413353423151959801493869435270907506527816319306009091964078524228127982766088351522375015940894714376789903629577518272844146370788068584306213147293377070204265729695499412716916961196475592864759894440954947352129167147958095733598294817602538041449464201229296086498365290968201647818600909729983553491220578790034571073248599322486009847224129311820256942264896670768287303587535143887446585168211386860495495135285421697869788536956706578651276826727634637656092523369390499756066214870384442284881555964791709084012419110686670954286490531084403285876315800682078566607431614495680997221474772675628388536261028441189616066113050055657656372464045414938542790881897846305972218637648472751559793346001825364770918082404007782535174211157430652364184367208384778555393516697067343341244123865306203299602268502205062543712976347869686027092467858150371162761111700574942546840580187955038133111373546244535876658866029430342594336886335418940668724125150298704947789908967489529753487993255176096038138259565942533496852495647428147912492353853240189689184407132393813967073500915893768243291038577231028382726183199136447420195310515592480353405127672622537976817950584969978936884666782448225053846709631152252690456328388887439987697865918870343848868405363147715566662126941404504601484021588259677702128574902778632060531423631069661635535366247486007268228373563462692918713084324746025857410272857805439734998805385201800440283074229149711430651752531306686489426860277529965267571929945631797432069111433452640012165076450739809924324392390943611942463848613737453915493770887958421906035778812036867277407670012290919472281139595281429712799653715138904858601689885669457371540869250896381525863927718540915058530732394315362527120433868023217238161150277053371507184924375826433311079735295429150886170331724629323634174879845965466712533261672269321864844169600900319273165000783189867490173735581700420276274680113630333450296630246718777027079661687403642305899204645986876339129114034538218471436526302269636381292389649907130191461089734540221073248234312783317312186152773421317604900294991534131148237542488576445872904369490125629555985048732206785229813272952178421609378888238627025947519395828855382918088831131703049266175934057205775815205905777432252375339679115875743968153399968268831771918290554973774527687417327725900537543383558199680747440582388650981838583199304599029371553290109297074627737202349221704406182032982434457909603922059526832238981952999442351241126886618423527242269264282328947562888761609787385955398082424305350542378276980918968340588663572221268665413905194760277022710029793042661214726616645199743079537564619494280641903593636671698441543571809201395179024307830498084959311187254143584623812920698514023109085521844336923584253361122117737861539782988449198574799321273960702562751611999742040156652552100868932835340837858028586319536081522692459576609250129284090850959977327398259487341320088525547692865813275713148411086452530275517934073153855073689950089592403896586382932123445549322541023597027927990793381911760779304453530101965987295023189382470713693107027140791581008886367600596952978179044556360275291825125680454606830222287341392177135036197344069761679781810389624304022739619527716488504385814492712902938300510935991397221560067010440082696692062044238475479350603293154627073101815815006538128761829542833096741390425925725569981224667661456317375834861361510973691544350725547869648030251641574441861455001658950143392630226020255268001232446779137122467411300084446166967233405609099946748477554749910892989258032911728026345721902235683475301798277194410657203190962344992845094097426595917832315795847237690620683569153123544037584112608675342200866351767847105849101601443241409428078085998335339731970360379551057300450840696622966942864397997826561624117381356991660599254488180123584979735945545492330621895469317249281592812122075292457738194046541198480287656466667623960134607340717125363776190096270730272615858053583110375864867466793951483356034057199792667540535602010903483456473737520150621367064196775502462749225962397308240987295361807927462241006320510101188779725704711391392298026543212094651075913037160441090739481751361423707834724905799548978836920893993726411490566837510834283457653639487883830209253510298656842391731628222470854746644995245929472906966232098981175699839291557301112654197231440763219385303449721364606141709992870066281625083684548812610240992197283175784226639504963709233553064649942200301250690432242935864657386525562679169083838710167489071833019995591941032643698646487853406247740955655991820869178360308971443454398303282222560528906115750482693321502823127803368089095160977002619251045043592166309277966407762227165181227131534939150345946716918027839762762036157967971240880190314082002438738048622613351696387764909541469040008677005388576814446312242957968628897163641707874720875071675792906532932205603184020151779497350477762716608131755975254785062160613325480139300205354610247627798347133710914623000893311362893846964061431561425421418881655461595317423322686589789820242100418464805319063317286888270522408345743982425736191457255825050036572099379276893634743224666943981289542911412940682195248637468560664194474696605307409687596034262906789219532167397765718210650263085790934488916429962173645616533292824363138797907873099694834349979122035490039916317714189952146387883186214890513284437474216582134645902166619427323182948120017187704253501716470118087424948968102783178305529795501573922889465831073240686328486201148096614720676770313376289068645931955809838377486993324735144365508330448746205178927995913103237645785196030338795876085178627969575741235676493373639860376795054941054786815882926206333433718098982984306344281759734317800271851166777818007099662119460640264666290664868846177852911622151533594205957279684047992105997799780468002640671686713281237652035485498731618786635073811382932319310558652948975812218836509436561039498680810608660338218813408598475471226647324020004740936797516110721204173984453403232645596428177184185485355022215206984244271108386225697041897742306829990481748926853272053090113202864873011867053511298311855500125341115125725396179587313506889113779368327686737136537066725267754016383690598581986910243660185569642958344048294080592508456758350266403209773799610185588177627586287481373883094274944126108350043149549271626191643746720840020761071145735423724192013838916291322565443336381840048395314971869824950497047038530700309022276050536503185840335014513614043602856422576721183656509941571740935517447810874560810851987618217533234440223583555372537180141960639756918883952874396171458780832999670357729906576555672775850150342691742704655151237949995497643100919300947477864177404798953988585700986676042125799559087767181985322848577054878254986499122013620648596158247518113546591528485549659647759045916365836736014215604864994803791242344666025526006306515423708745002692125399508180569178644096722920344871046286056382502994861363369205257248687307211812435251461121820811742091403566639106899767158377573958762016830414850947545564920393373191623560249851026504153127287207312835783405153145982175376346440889232185848594712303972166042025811658024960567026980062776617504753096235190514895326723833068839185410910294337367763507847967985820485210104944190094925163713605680944266332859996721041566144512011386501136163677802374001047330473214873626448391147245757366688642686025031300033125316432775489449230160021351375618126134429895818642985469382321310460150443809746479833462565527519716002652288675894288763938692540622979690113403951824564069129866288944731903848280891190061037635873819834611299811047414377238520373060165297524992375723995001603473969508142007278833042091352312830717008810613113632892955669294545685537259250765200068618127761447843330918391471632398004501551604387552871878703384874472878870252048717218201169972134564597832234548515325462354592597335523429324914351527541446287809204860619800028991680232186194621732680292817028101439382300567172272702891206058694302515916398968324605557746749169566101674081368512657750911002817019881783352968777740293352161258898231383533656121674270483164705430114286848304056636685424368080526633547611538277579107425044340489175217830081266269726438035039556530465505499912989958170074619526721634475442221918943291684359879280965775351939971396589553450103460642062833417257345666264974385856260703113783338155377838347875312365756904640255162904398364381272789132322479376420721008129730195921957866017651788265642240165336861745230544916386212146277926633000550320880791432462138490042490004466307594288038109699727288694735860334430452270937697865505759021687756844124906785043892527025529377748577184567299794085856211690906817008453830230750411882108702429246662208581913768577267468089911571876706571220604118754766808746487389144042808459488746139862299215784176086921049445447805886855936255941420013237836929893282446707713812381366105446706849185195382755297639984016631981028371362844083711370589988305440087406234254341345665385264214198717819724599692495086621037441009931800181826653166207730891536855895057813691001369551471207864828405817974457981319568284603303787757503298323659847247078200015001705705953112243529751244731815773815751044681026192123515341698644769003792613796445367682485615010258165612156190306163098794662606329092586453971315309998016724213900256504783925342604910396681140085179852179400979970617558326758410413216757002905639741473978141623935108384821476580079176349610338815599289028644149300533499005658760267341769033119624528290870124046680292899575019312324505699571765949605962014437082648305056501840699710437214623913358741951054101271639103047197644262373284229572652704662813345467132671178221086692037909058520399814942909174795167698853224473826333250371938880028880731297827766626023849477007014361908930354497401867260495117845679528145285007644621357903290552545823081770347225951213131319508280758637570350309031778929536329469747325502486611964184232213277541853359811454411289428184809358073579957442927148228486423073431074544055760881508201588907121706259174218981175483616649565091423863150875809656145177306580940941960850074624488264278913430075365889505677572179286228765504324788949677742354128830235786575864092548939953978557689369436932042477733074430569751327101539743874843933516464430192114566626301221293023693184343838022449371562078508563399064569869019471501996369392430795865528789649847954959171860940653368614409977723652637903293257193236998024456778833543828004284596796229330309050224344357025376634666501971125619262265901451224271054038463722428239070282120325107335807451233231791760168133497189719566276279134641433413270249681989754555916465117060211164397484723696020134540357415191738636875225253764230977927332398032085094031310162217672943208758584710236750654814724053666766726415492647073274371499130613527432579647619817829830372847740241566029443844416230319622370489615778285800943609538172733396881323944872261113117460669917869299259429140825449545632760384927986827772611339698338960754369397259346612042950139185673864722882669723024083799894287834684946594002470399530792176341572051978915952847993010053665105584435990126867964646297243404775575931915442989460036162016018113386422690295930138642431576262721067447909574854807497088787030511101124592355900750793941205310267953495814441685857140978164635762698426355617662496618210536752046346520087397487658027198833561677820295060667994482073542191725444607130535475403839406821068697412021482996698941123437575420013198785706856957508338557143000847794106978091754178120034040543868801947359361743324215877552935025589617805782027930589102821900203539009062776278937109330998210311149987179058059278940968971809061081492283483228187979609165904474540167573448096943194793115622959968688301192827461987924309268069358954615152203653106901058264962758510756960826344215650488242697063215184280458174825847327307545105143836687649745638807892370689451069730805031437370789319175071216087085129736160668360949003672602188970687869897610221324887870160904903686921913574909245425556758617016204821409816887649723186059657608181058252920256221093869962676227728557323941542250614369969155881332168994832993504942258971322370943711360290964080228667160564952704274870249580840272476108684223682498979022785081197678492028138562659346310545084804374200711245439056245083954037410082837486019529323858265342930751892502195629633947338362624844365480094228672025860804983934620840822581609022570265255450490665278972383789289230175044677788229335283253168685407779944279516147319682499692266503651691083010660677789887445975131291885844374363544662301963534955725739432544749547358164332788832280634823134756088964058055157728289977100296520869865568754188475207110696236255746570366331181342966102660052474629963590620897058316629729337246618849294673867498675746716977296367583198842465601038894945280227987099909603497725624267540794801090097040135482111330794053956057439630014706975252562634899920137392104799597714105804196830767484937815651323912363542559980529006957253950127903672368793577581787687791126354514716597457159955215736382453007666731664157879106415076686036917574619597272491144396264634606278595897234261874029985113371544436627814791013766313582992750826401550030791818647518090733204422578980862834672815587258835907974912819248493792221868035311126040392806002393730286872006392446072783433377670518335248427063709813729692939600158725338625207256474755231234649569411781018162017277510627875128810808945491095462872777245467943158009512074731839075356077044492381867217398244320870302107564182132449377932344742196370939269756719667798767345090802720283386485325496394254875787299597731498057674877479532041525359575601426211785472449978268304039845642384599890668247614696507128022773672618294642012887149118259785091608117102296033717654835519679784886575775707875102525976624231879432520558130666256920791708010243998233699136114459653329394305475285270531571394098605145321225955337717778812523478988970975549657597575471616516584104595644674575864877059146829960829214501446142011465067069754236760807576954229319333265771356455915843624411286673290950957267546010179148629363071740059579048832861552389433062490462900224599661873829866935632523774478415761962458730644239696463875882164767371448016225561668234563562900427695083995910340350371697609266255689900956355621940259329941092620337754419270103919244638834599108237912047087760142556198247789668076017772540205736584299073076248392437789229576956186447315054161703053697615676357201562076417121853876832796709100740362097520044186899637393860714787725901708977627448539075491919414081449835980143876778997064955468019217378435496610733341324647430006463456393570176591364441990208534999659564055605751700836201690327464129922662501718739186184571700619627584098001301135052472031322613582920042188146366053990457568774031351499675049033860120340121846536216494859486496654061147805892466641478569164396968102741132038840389202017412820649987625927862892708440879919508283030463927829566105829388841635913163287421755334516892241789900027716462878124835888136344525872754751099291324530769739565007084117733518590849372047781003496844801605848327313214690143885188787626131216204887014934254400990542353050427919467950507723950615285930863311539112296828228558289605687725420092019329968405519265812809303435644392485001318668658242849949820648474837282241880493590030849831497883113300384985827490036348515899036714275718462554109310256071205953221122949980845125625071328479139381549112815011735426578134133284973368553469939035194109487130051422343943280245395334352588742910809645638093010996433367298033081981490510002911316578883358042213053873500663446446719532974164140255158427628796157627967267421562628279440183854811305327081343633839859404653317852417497955213652291408314351981126643008187821557447338685528869705792830338894389904316993509446053540575731037292035784222780111040596015916557644859543175890068718054656346842152293670752060355590797704676286957727351741461269745663482296806220477453373420898441181169299084770840871036040693166694812070102718130695112663543775877634495552134519847967361381267588311718384741532635547592558163274076721246734857221000061017461603974075549283792061353931530320152018521748064724561757850501638351895236300925265224216218862800832601664543696841524833155094666983198904292474733189493949900706560491650082482410847633015567077627389830096110329851954649004729281411782806368120020181810167454231037592780508494254409211525173107676437690116879400248188879933968987953944504011945038739250699063434635233823591825313164529986515017640566922442819530494298828800712570966642322195451148876204335336726849020886049767208842636347316377420129268655741693765114955168027799755120376611258072220277157929828660456140670710672373044023711918501783813357121620056907877396854329194124589773411121227424791306339523585220838738384364868420930669809549003620441206630872562679631248518991755092708065206119858028232816012857523697920931307723768320512383794575341375351135462083534299408622305167187592064350805392715937653287329798120380187541999685357492638665345683296929434187813695690772843055409041927500812601726740303023375815552146689513914776474330531628982112216994793853672125570347949180170410060322258926383679460505264056631897731354205779795467423919286942572294315255467365345766476092043632016752920624523616260724650597841242495955021428317229225621152191529805810807472899230128488533018502698856864921192722864405933494004453204274841866351765952720988595365976557573206728836797459101346751534966929240812524737596282700104488732536219998873742563746323806803815341023003732326698644858859648066174795729393248558079223915068078093095305000219923451853185470046447336318373024676224420360127703110452084999893628307490033871423326672239323362690493371371476721054735577508667011565751545123794479708941747280904071322794929711305187051940861860815011518495062883693763456927893198158173242470686475992797796902514014655726224753552212765064211328483698282719710612299833437410287546277959517162566940715790631898706050827538108806284932385018345801263735371065018359837232393261556520846204474986526852555908555795515788544399281905466583533303384250808535063264076523523484883547727098998192388621415906571806685470928186544552037580068072011077897974651608880336740406244566216361115830443933676642267491410406459779617500408763655870569892604246408092175420573542498828939034646424548558992803205861925094386249163408390189618925895109596804133374219514254829445907419674056306741354650145878915742211300216173306102129314091283872594955621293302999656402814775453757783130316961611295764603997165244767428644255688362782386792052124350832782643187646565462769752043713537611250709714813336741467142637453876199191816070705522194745463036107003240420979114550693745948700459091243893941106748177919756689319251567750914061085771144404425978303968106077981403409562255843894484487210964603257280903097380608116741720091621611649824027296265476603840248627277770534684933519215424057754977288111580287764633745161756293717139487742478251443517843160242706584146738930743228144518782635034089595754285255455716288951999483850758373318606977643793668810912583582977698065523819783427061881699854194616476572996849048655145330648042440460746895347316175334939314250168746012332835194357823617200648273245526722989276343992660335496918032348211188903508492958795349235954560302374898329629741166028644725816899402308487145084611629046566921906733964389082707050937602567189993124281161178336246181516499189954175156485856962217918102779558062482905476716184036480734862818903266603898044083994661353826884351132620217645031901506537167482042678610360143556689470686152056899605129793980313903565937749616659422526404572821458130234625823609635066459301419584956989831162749257616660536497336858736424670368213035570503037823711006861104400549488038672375813728107486783522420145918913518825603302831535241653440187035136388031840625942257973358736928025462180453513387509633004906857290696427341372423505151766678437172816503093510412514418414580758654993185131626894336622145468622968118336794432278517419957067658790523870837474906931020312273203280094487359056274238111026055483315567303621112851524389790903852381314802241113118360275275926340310798504516375749210466425114416153978543378778103594063687611202497973362108807644986374537405005116494558881807150174139389962151417140840888491607109681995376233314424909503851535788748203400438267748027072882113452261250182309498910487073889952680206169397478744204461296436069776975488782639687244572442775285224095432278766103153343663795709509841597187962742020639673889445270398896476676335542092149103560266426721484265978862609279841328673478860064239130162591448668066765893556724185289100971831509922688397546407482080330957598987785886209272574367878929758001131564399897300581817216034275705299681151254464328764031605295730606750074585970233448713931820344521595787219935113747194569948477211217232189157733452059338425654234692513836973682083947479976421835539683632631817700091704811512434708641977138644777627389358552355074626965857860659749192067923723190143257144421481415559814247751497151789396673863720889822293854916053221425878894916584152889803009193015820450230290220340012437450955023654825268661828615875428664627901515000035942394579963485111463145204937478491601407284019984855014971931452083022691128305584614468349232838977102206206392727673997125492608007242233636842210383960001226228959978708789760643162557397901788951829161869292401464115033051606600305438567405219887937700869986186083132464568612420195635432060100388446970907581655719157504038499599162843488123370589265276754009053096798757149293238218250281385744476805241069178679524370062721297265204215245038713198727613597872663020558368589992816529419292336096446332538736952550451559431798736867600479790729228462059365324724138002236252407864463653328010351537247198874126011191853031218985632243049482021623237644522774496637535319219661306802152107562273305975507705900769157138682811917726331183441778305483167683233442427111433548161750210299628298284685898320827366427255673696120487244442295751304372648153594559148564117736668998914156012398812368309460575857425199380474496272537423666487683480666158080749244966868171735574877911147769334225053279166468831331181482389909694764114978095180528809817061797567746148757433253526095458547926697751417723828516910827289768245222886277894129885717138948249760204914499259741189576923530611684780556553202832536473788699377639124589357373476711182177139662349061038714072898610307238310563519256513002167429521667082573729866241706240563699430221357442915497648554312571804507239534808689953537597549429540570903983951605688108304922016900584203526018820172322414423968454818240199335297793265692423594416222650539274991292993201732231293152164306037675861049633868495175457620921853643634313001484621741819980507815406008064016574786947612222950858921672308541693893066166155596164377812697406299782871638076585922659292260963534174837169518152316906191227999208573431511170605812003959767342412796771521622612311915847491143931978335720107612854627183988859880690957083525729488004794616826668991922351331210446496080862860798811560171315274225823734649089229445444309906359531674938185320742567619723645006731023886718508108650813907700304492706069074782660692440252368775413189065249185474611476131433750487851720382906549173959001321049587105594001053941798083283603588720652184248132917549106462870349121871682103390542928759684087305547469013564138411813622963511568143524612791247772764671745252029401018754946025911866388146987022250250684537081434590742800603565945638219351137836113270759003989072368129956027985929777364215254530954527215482201708835598142414175562038839173353004879189529906521840814570765197203285505298517146860674499617864922596392794635179427969551535033600199884632423292814577309062528305483551522580467307327965958260458800452023437013369882536935252059373915092469820967098456139015136796548706206542720540980403140394742431592875390951074694887758309821922400335384849548514024607180721345737676046461834599591371742455410986061599948749452776532154301247234590926528832313133895564782201034630873262079630409102728458812234784475474596227172079266324482759382738012073334018329444666444674089569111391277519522988072279669828135096119838273442463152816808675709129998706439020054779684856192742229174111345580166612839457568328209172847750925120668265450223925699375736161367626553569253744183331131030425503914101597335128009264896935483482108103556621128084647022290517379166226404073904182858523188420658531614471433795291362997359293197721886903785919624872224924662993479353193116774983780191171090392675673727053311785153945251501195328355824918315252173910231221012360793935023844753333100724878860194815385521934671327562452957003236835445002208154925742834418333156218775550624483485937124369442714172897271662280042715982227203960159395706776914069614564771173778340141700620381341021194083185634017634853135211179114920186650835210230968352016141379892542000512600166674810307516246087249989936353920270401914856725242562941877013474979747527857226287753578398518400289252610756516210772092492744900641722765363316826877906390448079445537792861784179600127525143998401630520965561004360539381061145154393017082410454658339683370394986785664051336830393178624245663684666511256212607542684235263008791963752210387953296140258207776467795886713907761250896878137888276640324296839598718653479818490980928082762572285834234336824251439077034969371471856279407072239215461623124598654232565821233207724774699247535968707594375042790819807025371009434949106531306935563681386766210405755470403089986984241216864083552095773579596174445630513821219495041016818673449879901330729134664029318338231254789978068272482243107182160410976312028420689362087082351420440628888070653197384578530400461025718648974330047654910185965120863298213792002218212606854301533947743629006261239690218620008425464413146578575457110784354724977624284965097993124104659148489598369276257132194948276344755563151193091307487314940054207649443810722668681720772177948054351908165738067865114436128843112361962592593355937170121774028361244808897132819955438831263615293435141021755441179157686432276373953534718131094427493262746958176529394410303515004433502292816333257526095521260715849696291320458934940469217113040743681947896576271486754070723727328161347873273452625734961555138709849933930027276822364967915786581015957301832592883080919303743985024434171808656145825762570542307441506896022967005581859408219908095548731234884594061553112799710721028780193685137928115899195842428220254449299890563268098873365963844254659771638389848062438617755208071293909028068985565176334386308928658742620894301484144454202848162770931618012114867822834386203818176284548252435039648540757572996272010474380972728332127140462908949478311780904512601349980250184509077890217083752229932253462848251596074746938687041716270830407434405178352170770371233925486779904228480312637247297974833923449420865438162472135166647114441981862834440677345581789710558640187790415627858279828270910996549253525351241735988591949084562398725830111409055207689590021671761789723761508611366332804815079553077405237149772441873037709960820822593980033381347872443071840357473336675167022516433057375515792147953391193691866941880453901933354525488233521948621190164681330166205195382908468751586331243620510593764361893130393694261235722406597171010988911416068944979376193790454307299889830875026182082967753643848205006557681689524646877568027005987804041019261925924865382900658542802464512483768407192614124752959632801059814061220499754542595457457739740739197865368934389283512071158644731551716453202984601556162486539964743049809740067376880199758326106150165917618921199903391116228450838956020862773898137973946665808779995813515182137141901956676111254907055355543987734307435030139556070448590681939777562231380277964785222770860446685989143012541467288324013301456788631147849937140751686389335652781081118126985417535503813455975769307255554187376907018370481701820393457806811694223289222388096921138850362205720770126019970172234614319297178519084245548850734536919153821682366912893633533701793442743118734974292455173065828234021447268123063385932828741978492242229976495721404793858315940204984069046914492296689474392635656722242760592087819304561603710623978560628731496448031437302540429204640832915465756960495225562646496553837408400226647948775840393471868294756999067925826407321215683646901430493470470936108206984158384346074653792833538378275337810364520688676682256401545998445229097778305132583260463387416168248052430369991294724303526820581379273846661742397773777850392279388713682948417933815293854281748267389216667203457364875831079694322303297905547586989465367334584139763271354390042197273177953294774236686304925310741867563738455932193470776020854442368644262254061570382337711470697775536190337373054554416783540851632943647602076917876262082897142863968530069206748205239530071253464472551190482339826890786826078650035417090549472107212445304392858745488459710273579850755401168116360670654563054991053128348701649502826538319564102054803897165585059710394434437829731026820445440503577654022874062283604293466324661560462615251387675725551234416961914635393002978132990050827573004957635938491260742827224339266111063641308556026817850058168042813475008708493520156283753616606667049561678053545921027074243385327925141409158307350478896841615184188606168045992164622460617452042396918957520124854736240134370045813305551031587034938368765921883369078017384273048987801616361541166371461663127726757799053227791760706933636686153622054702881019892554603534141329652065215625522331090344188992676662852692330076303781922425431233330024268635669162469643209591980539597654374148569578343103373561158165803146296269692307251542899305699975217613664549879649248955221831943576093826566960985349179494258322130277901250165632818095535933059791545730831387483417310018917265143172896195984584928350824816333452867988624098437784813313507371954624157571452937801782652138261151494109836603291645189446560792143981603971834238718391974894423921260589269796747570242443834136837006163673668607482907668052966336868279226154477629992424993043898069837843209050377933250536026714785459376904678220899051654117144280265381169657922735888619098458733778535495428567977022254543404458359742013059060375824890262678661015187520966834421738549050164199528639114600613144258844095334101751493270081350893572467898953752911555708363027624463257559729968573635872996484960310168534737820513297112592672880136092232963125459239504684090755359905375959687722054670259933157708083145228716518733752171406418883392534384417831545706572539375306340510781006020510426142003446787063581167221402919926100321003620131293939955615799975012685630098610382244333252929768035532809780835956377101528389764110620818819946122807378116953065712974096031645916628076371806774166611933046325536801949905394049070118634059607633797835049048104475340630717984309055293711021908195549389156345702364314307133328658836930281133630040948819219551615713972626014447615768034885227563275812181423644066765416391928062387142200318388453514346461543046919702358848353044894941243940657830568741118626065505444485927309150773060985937675982259275378430290804332249775136410288772215642249744679120254019733800756335294240265823092335625547882442552446957189964672680228622138434514497442854306036056927834760987654946847374062303231479347093333240827380744375344379009272320253440183390891456083913657862370199063441087449021375581495860802073426194325705313543901222446905200849989079060181108715317962931400077928775921465058494338796939087184802612506462132787110487754284015448629034710030146451363225212530932156824625738331076046603718286740658381490922369796417386374959262894034709278009289719737001664451305573380913012395534989142940729808743893062394195497619988478254401851363441472897853158970479102449460151242483730101075681349365446424554020033050644157024087803990920049258624379265810369799806645864359033575739988975525170135492135960596242335261514148809752902537859750542631125981219005559777731091903699407176285177358681602088609973421229076326622421281474662801440160386492222921647313694230508361809956672543380178870667171196760837696453985046065053698935117658760623550236002240642595184273628929146600441983787989845531478290828428538450927958346110549710059543542749409706595064701629729792806282850149293283815326361180375243673455418806988967425021324056125707135926677186340845832522347745424850389439469395966921732609732614342771751315814114927560901741575851757782583547927096390525492329303829051743320369157576543449761746848193490585465244077706315342436939420666256144659914670669249552933683545014832261222563977581216148986771890355823079559451403866258438241149719835313566337608526615001415374716327465862434146760045298103042437500230459424542066034729628628690968224101243665503517281372362818126825003395600300572365871418949844344280595159288295666279187206980790810907284613214381845587813107344261243915095861534843437725551089039612496014543985819255171869694775710574356872465633240725964758808508459244232773207829332016124558291226706458870763914094865883605903736446459763725230693001559700659784210721030600088883232984791708401843328165994854140231040698876640088181293601877771571532351696156157799585667981289433198934807200703024411495536636407112953893864055119086966179657634537474746936586225335107556200831681781589104252108285877254418639452083117790016654570377173480773712486541516666623018557000310919470133908708937518055317982794109574437177295502522215600206104745805223434541718600197121608773278948054678679035587639123505273970587224373102491739959640999885241113545113732515029538438703837903337891438847437786988095865479357357391823680364479550675291778385399692417313302068898480939968743431755849519886773317738382794933260542230669956336146816730071191050076886229797399064523752566981371736572912714495070585912104465766062749090418725809763089420413247381166251533058198900866173727887502524621640681703944713008184555746400195565437113560840723812687823492117981448546399797598880387832716640393636484554035236979653016995839775462934460800370985530535139605752462060833507122376933297176262829398171630725121774787699942137442494094743409298269240759033715660827859757038773956963635341428795244066049308009724968010661682382226571198417453059605252440936672671781671435522563963019377932946795220346068229575527024458392972542149385276741796411717154194393463364990617219514222749607391616276873481728181269674172858955770350780103646629850469152943675502302497365935476198417883247179291265215386022542667606754137573317394789293079579487649611689146744726252819349498914986186219849896024184345657295087224812113159260772797606921292329396325616278294856176395225193483441839606198163750131680565698957348661948511309771619237768622337650663740288636765473690692255249242142448665924848957388587244137245051481058702285614386471105544749426276681734459669305575007812909043449868993080931821359319570270203334572144987136552265183974346914163385668109704206486712460282695259272775431852304241185156119128529312011009834029793670859672646425292800063219738191585941778881222429326206000469558059429305941882439719617320339727242735427250594730776432308227565677045715849639311519381075603026712062627807753098311407976755306215443532689238144313330452525921658089816156501015339957368860233587129505067192264550062804981971463319316032626379317692461070088716150252450624461676698916691563170919635584832141591685163537481213767606249694828210483973918128245335481082147209767810989300036359288855766996266981432480518261757867107354192057330507261888737380021831262119556073206267588244609132257752523990208566829865097951757687248151855382419564230407954288518978618158519553576543510975535180184251227752975386666370847217894827662014592299704367040926442629674026324482014019723099382046869268273938555026219169203803007132524127114590712563542749975885935651261568248881237538120373124522246590141426552890473750530725274168602640705805288840619913673009067191457539307880246378257228008384303207424680859321645365228209240293034308886115734704051258737546820471374869640866295999072245415963980077047609428698446940264460429668139096512397346440056142959378214766540061905934994029675304287205675075664914276827779092105535479446389763983300287251711790251470555013324234251658698194315301717023750089143001032724504999511148070782688367021111973229144572246802575267885866656188422232982061758277698704758531551040219766042055804496762772756189135893015295278012951865319119813321895529232041163115649562239586612693535631466404823219293674019583800290086429911159682546516816089949954122317955699774203709749581745491835747965725128691411206435519936615160605451168253039949737821801405944488572611432145644693503774449463947586974207920068268758500043666627641359782841792171170202657387936247138694359031584433941064398093140123393149948917823599600977358131977277198810078242628511580983635898064469655195896301523522136115237425670770670461791693719621279555909399464596348708735001205735708902710591447608217502896960385980040370224059745669967772552048603622320154029099248748859031215077809881963732100499361347381403046975622530926162116274612933741528564205893008558566959210641128229916409033556279280359840156147996736118985344222074631317415025310551379829895400508480680279724171817962802391234644782266653565218498311535409787881339646373964061660476753624613813293491126377173424816547470217870112517714432008161644444854422586061910101746931720554114452455758493214735835999075716373947344151643736013189875115883513530903779486446286651911793675087872872351908254536825733128053206032571314641892254960633951487000152196555702488292789903891878791021923345667231425942756592973592130860708292347210862454192053159329853776210024937308418156079049971313634956528258697376496115274241519723497901911458260451964202759457929405917808214227418550251890662352433771695681427970182681951491829222120839112318214960242947797026893050864513346319222294341024373125159237736602605947734955915676828149950827565943643210644045402597900789403862454979880231451444664758033326535871118800595221550919399876709514073053472691363572950665093344177924299436733533144344341847163261837947224125090961584052055006092416753069505019674886684218259295531704764116325478347679478901238154704996804404285951533705666158475912589538492564080091225656400671506953894607292627859797339975595431957976839912819617081454473493186006210980398796121970155750861887541864578650917207496998824330381226340634039041925040353410931983897354743648848809438891420696107558588259899474416609766571930860654529892022324756603335303613615478450904087961818084090156318870495294535789976373518471117947086257668348777562132423990665472692821434167727638202235009076255159437937592414053437793677220164036938665060498315907824982833532034516727757694470038875183888484153494372121542908814002532746416549497837075422061663518213198937244046938137255472335751410815903095750586128208645086122397724822370163039983370749906300601478136260521391265981260761793662777718281942116269209457743461296359806633774139041081197752657382922895073387436613570936679371094891410622608735113050360427265384458822134543863716292940120104884180902433893553604600404793463899141817573192581119275314524689338632045857239109179447600788007398964107557718601685118939049271654748738380980297343871191921988584507639204163808650485141203752613257671028768389635858024155781986603117163762964668455075127600218004231918235845185530685501783739751065021174977233658332686478552207205385376809208814295783778299333490626311663639536077417284117458568278956509730891765763918362604658901426644145643503476338665692527816882940589311967452060282249740654823852477129156375612995065597753167921366457023358596789228612580724292553086936773344462451916327972057295872550311532006711098147844692384020108934370270759182215001347336664570978122465150117640473529241629965579983289475626480261829057694018742047872270721173748133008529193995167138838183487136665795575574627283237168405065343765707433384780068391371914288856683341535647118881581127451389770939065403503017767819479301648051477594522737772604517687926685710130984735029460627544212968248274900804927794527618472631734762373021945314313676419229900778664963691335792823721401300537718505300311568125160563146612895464285599530503129339181712751652809143844034657737306990859047559263519178438603701339953721826812160919437985673572949062315290901212875487611895385443076440705505060151829340826442071295012576090051786079900640566506757087828071340948610488742471247246464768753447912589117642237714954728534298196373455221256124874330305644551048371969135699156038925367386733634354234858651584548804097168533562248117811036553262220925255557772217796101851272475613741027471444078182545399714304293096829156979406067925995704066241651189819449588079394936180981460513417970459662492631059342940876535265327819037243409996411710564091423671652307868258110344784331966479550681518791877118677373443285800063071515695476283868855233193665872083152351338621865471452835954837694688610576094705647412166857828947710658270905613229288869052320397571333813042387869524854128797313435158891183156941491294984817562281586712754654986727269012730192800464066242511227989232439749690426142900034622852328719927159172941730458132716580633807848755325945254346747515660165147115970608581914441782112672459025893461978826124845625575925289692619565109847020660323964874119213986110364505202252511691271278024602300736473440531805406869825445001653205435739067811494919615824064528728659105400354979183080392865362838450698468655342638869180340518669960452676346268664538108287018414894714875970965629417932058233342337263543039466548456817531287659082242682047831911600301984797887620045989867478243552169429674077345872445968303977186011323154298637458614024356933242396594241843097153638136470147570678000813248186162168769397108248425591950186187538769208938120602871774353439940780428798723602051101053842750629767552378460278261150221414680270580185684845336559264176096426316826788544605013373758192969195908303435041370820234917409743470913652781536155939534501527003493851498785445076404277408315006433639732422302069280745708576945195649186045937747803972445814146099019792414597177227917040441839512889019351248343971007815581491914957069138783401609003056258362595517032776006832378093891527754657657926935654504345863602002399499391523150644279536103676951447294630155724812967325566100534575445443589331863795029299044570243439292808588930853723776974725806128412825813396296221280056687641327264686256864734656344946871442897696713412841851244683919023811774524315271387747370740774604003648402641629501363542487536414484508019084577015388178848688104032249753594098417795640779166924134106418824058106412526234138849676041361877137460324276052079535295446459589887578260740704813432931863357987755379154208703766645658316635082004871544766773389819643452297942232149638142263981054733047129682413170516006688060872439830356277313959250339378124214973214669551657264415512296412445143033457958830625456793353970507417756169933869712175677248350933332616670075244249602475540197859833366365311093798066082435032394587830784765928270541455538667592136834516752016164977504466188934799144556120192939303329559677144106042836819489747191348793308512090887358000405347891305108848136801395116899826455862493245179927510453628608439656588703984239451564111015435033592150558181186896779442655855111935090078621740122240821703877242276986789093027664553901275850990511565687876420207735766043906257548283082589644764101365429269654623978677420598343198345138445280116461752846409578201810190927351497492635687457724792541687637973382607736982546077220076543911955573838792588605024959428658251416100966074074458027346514699385433327672369396100442804921769620995235942209735089534124507245389720504079781429599576487035880778542154971286132604731814369373873938907272103424293022805977157296508943601707863829314658449421179960760524615228234383354726821856294358987671525056756788571774781831872860361016963858366943106574096441000992842434683051610117008284639378942193264090669283418528238147044427275144109800983310311207233380362769948104060472141598516803715374295205881243518633058553901513610562282690855648376393004635012166155137080951799024970900247046103475788697595965776969574186325664401290843162670300525750940394612775726158027417766176959010952174415889913116735347622927683193167481572684427457735009440544196488762474600228523503327881211306579890913219471049542552320911162794339221919933866225770341027746873914494303682530474634227270987827957043050668031234887759298620750869684481816150593063968813848199726479488089834229415520769849029129008696406243263765834065581485031374725080754867837901669647596580296061485401460872998387024160928231749665835215423296175537566939401087613599425525387162368030350341989270459234839741965977726765084498228328788358528415251340194992515309280969362553897452236480826483862920614630713329044765634502358481189974102669034306094409793146165163168575645163472982836509225247216310731014314532008544422133010128483988600698332672050864912756933750819022452415007232371819621684395189936881129836407237422228423555906875622179661405533355497420021166423025448687228537551708625340275666371204851252321493141141660885009203496143656770782340302537115363159311181153264729164839133910703761922207015252219848154256200088404546799582000999598629298605845434779950605939034107014008365549887525767210448914316688224410677592808990125946621416146834450459996281658320298339708373609391112058555131844667876995894075781828436025669676998120662034013952535036209613435744759578858121493245199340872550581940536103161605476548624067265765674185535694834221248891239508294150557631815496111885886626385286399631178868320044695462118253198375122240392888037321877559102584551685803702212951375012612219632025238684603113769050825001084555401652425992120004514530467048925215748524674257922628406936941030351443581066211691753778782109617615852032073060503300645739456821264054811533373486134046846055054061111059843701311114146094192970620185339783595558165798265692911436641540100594750636792981501646239176927166698091822647318287795715389518366637500297634253000524521676250434804151124623364631265051686974882491528895756682451819137921138516032116908739393193193275135028228585071739696614754563375357648833125110268282810466991140094068806449088450432399675043713822461903515770345414294545554130790138228932827562262120234097885706482314765845115825999782491282817959350503508419080676150276243910412678332594421999686756179592584248489449955124951199019403008148273384432341789841327655421005351596698481028475985315690649117684673714975256682614656163834966719821022538288086934451864141924687848529879662205731624978462945089211630639888873140247119590209563569409110487883947798296520356508135936168915016733604786783530194902366207357416445175265929398940542627303250406715353679595854167569602954069298420614335486325266475181534759151635997689376732539854012785433286077385882567008678983699986336124996572697445849765606456548559044243139756762730574463582604524858148587995834457139637510150251534419208090147067800796686504975478656185004727268376043334673904017893910333641305671027273427600955439615631933860629634274262752960524179456113400707335136378520110312112250483353369851672303087574623419843994794460592380359339390569421549928092215541407848583247087699619237310763593537995687398396756266391101268438701586159162590477573731403666223783065292776059034233863911622673212170462099169389528983592556321262601617786480163704774642184153541031593362999739754246712177312333108429721840489561913950926755469826365178938156625816575132851194869371637230708437513625571648634352241688475051647156667402700872551220704319234129285518777203885353014604558289243805458792289481667459760658882390278477569113473570889444830795687388659105219096348266926556103212140431130543473679130939496830686150592579363305242237846318161410746037614539335200483871736853804718030156319472783635954586832461408593302713739682034912585750475933262684169038413355407902893750849682580036307866397426606722288277875447943424034659084283268652318501755411190114851575776557585630828441789344459020672688853425560869582544084656572793439167239453618570867422367978945401386067381762023484180543534096202902033964590041554743772960710889907628370565813856916273238630895024246642528394386212103794449657320706408874811176502633945904690750916393103830461946397263505945559179434684119250777875544201345680104746404595506667114832750772608653570416435906479666477475172591486456713997992826040711793615856017732889385712068415357224298501163048937713306471031159205716572368914601518825097344279099392453843478579248726247089241525312250819809375371510672858833788365137330061440410161044782615203606683248021021928358435235742907294118175497609493542248228226463866013541556547505075528046529676533472842460286153487589558341355403868055589289382296054883817089610223374027851603619064239329757232100269162865475322984612217181472623753329493686746770541889664387521665417640546726385330758422384115175068815651536983074202686011990255478278545234572917703291927760786325442545121911037312298361183471442517681244141165853112675376185464552622147766753803706571845441553899906079170637344551017813544655370721012630223444542618390470925177142962636968318305912503761532416483751880752323478344303366332770389531335375292484607832086515986980777174304035214265211111005964440258950133121667882221070082975586194286941556806221340462747192048783304137466262933938572480601597994750539338438168635547611346561704020346170000120480965965138662477515857870228005842011015237871784506170343862317270528699032891369532406912169046116982724354432074193104438661868197879496076044055199472822811121701225076358003406254039335736503860527091923667429822841055207678378324231397099739528945095456948844469903104114893221354890006135120298883199947844570472179011742613110429283560445544815912202031332606586557092442353220344164273508634285009464843183156923281253659630530581353386070940391648208614903872979400647531231590970350054413458822600673681117921603670363176015440902154056552581232001319866570318436332748552365222872501961412577175392351526899513314788977603319353942512481052577365629696819092985936684743639164255650125682533524489391333336828543215897024313320213334739610524976067497238520843041488464688867447171817507472677041912328978793503756434888425660960106788894931058248950410273488044329108289433910583489910669795970386563061570177444438140100713352956445815168657609988640036540050824173075011567034519524144553675936283999538275324882999547465048072251935054953930771584509051665574232202644892857130280774882369637041700251059619333142953539126635853742311416270539244927785462924302679136003772973852230804115047089199401437888009242948451925760787102395179849593389221955172701745629036129274410565861963648352205778167332555063994766900852452699828665074120042831514167535966083194678496761642830542397147817270916186062156624075619887890687285021493738985351129737636107826351367169127923403731706956432812953515796038033224300680735102568972614028720436044265043439901132112371641679180187003878684266563340747837163002085412410788437002115219896179931897064062045024683207801414225832209811104403828354931108668660190110257983835529345659629585718845358582500515183976548940532656602302629621642308306783024473148266048291026128600189160496044784448692312489992241634957662337546562007500632103979983138565285071576453696688423655435827569307479977857381020074028886460205866001385985343473646213201531747990966495831827452138766451497894542781317633725304079573399750307447220269379366255344969055809995385791859916953530578610119504420319469180889108902725467786085972608383665237307026154967335596683165375019657723253875109374128701818876075223265569403844902110403934313774987368449959957467536771708744831410969277821671661637016609037209569590934782301894697068465375304813978057837946429419558045568712751163172393579998088639127833898518417371055233604895590615848694222196640298892468977877177458882482718947314523101976917372391557812681523847677272337942628008249265385435373140239884272214663017196535896495226275565908804789772833811405731070191180669994654861142491436057656221545244006668641949559288319745723733658321801153905828871678360079624327405769760536978364405217231303266042593453120858702171444373479877708826204998425145468173116508439641263319917813250347849850157521188355466952583555651707166800226309667958126236263138275813794381533934051846877217658016450264259082872974511745897493950031302845841170689610176556717669531980766992399466840567597068454867143238941265440946411868607164417538095549203717694900445527355462329309967297246088733765513522948108792947900554381906800676619202954807197664785413940886984820648566003915569283648404785613321255134574566200790155105352778723286783242278415379225171806867209910140755925821679385726460668438654382686280398872171884489931934619618620664886452677368211214740999669121866958414469423629383691759453457120394469635160513169359783294974393136758928254428121920220791519919558767302520874635111121568082737708911002472213988091321218751927179515430600646866063145892438957068464843806371425841860573837913045957095657167017409020091376453813676528105555084298589771801398434416927922466418901539260642477855923854105904179338692051388258538925502868996803272569390608457433901592525423084035715707518305164935244104259667999063932542397609240928823380908898232355428752166502084294265777118507103564469674022639572780874525105532261669530682983611883604554729397536081955913281049422628153656153898212738630284376730786590292505267010821735919549397245617423491354987472006861528715197207507073164743233219502096536601388017319403594243573719652680551685536606005733300046090698557559456521551975902425418153452492133365189643694540408448940587134201702277465746654377606982082244065467021043933272827068947780845619383687209452973738052461012125922512015500244840584284490701888752711903938537102213874697646879775720111085723466008216859265627926696709503541962975353718638561802217144357856724375758226293383890614310812932017558938657534706472858190782644874755575153756161426915876855532124950388000968529101319122085318021878739321364289966233825447374389046845627544684027687453449068732723162532053885232760356309532082546253298267061638419744993240390537953591374378094260860834946918582046158390824072448831475194068127603283835463796129946411646299276912358074687367176439321436725766003267343047794692342668453941655479195224567453167453692725048066361499920036177977054810944901348004845232335732863653070321731513724024808332812747937833959970530481537359968494559455845508069424636178529480912712449450108655890179519382350150662929184934914308890771725163684344948582283280902522470433601868403558279699487381066810322529407921506938257693019794904657100338900592424384231451129364048639532667959601592653515746928556196199173861917217418016597138217086391975830123633627440306516183538606431655220601142292476080126991078858295308017927867707832689180532898413440241104859459219155441459957155728816066017009350883713882495190359796009297792077728720354700524025535761295031800067433853686994340309268010009844343649265088419988197001452584939880085792882708660518386042858316470890375514425899039273330321406077735461307938091586717038721805134854974208908947305363337265236113218543790789635958674020667278487035478655424508045423366074461930294280893463866182137519723371841880358125020668736217068234625246551805797669644734448239797454627140937576273806432799810797351886486146226866259716223503576522904701278324416945693711991764721374494564074054304585964750366309394308514376247272801412860015774655697365083002228339277595539248400623209483466611636950780257942286189918248731111843414422441052005013726403034899698637012693566023733727803443273738959108719364454364608304227879877900902236886207254183946392064407806824304398388294328348065501474248210061169358234185831813511864466360906983845354411536238887292480428251541209018454135139278075574324539825409745788310883218334738729701111737439633304178266887505986231991544222705684444842614073359960462630456244774881118971137836578276871863627612414601792463236882442875710680818966689991816677070816748890558989381433903250506722114581297160192902977932173034984107253392072190089166663538566132767747067581041691990013520846239866611047536579520338089473709535227637638472428339181491086849683454867795247590331372011953518588374160409361395820091700217149959404511284047924794295043319168508041274523580271729979013384624038806801730206257292071323211827791798575112603759514943689804913778406536294593163981437588873413214992683568056090709507772954010007775004404400516077074397077144856067372394629329024086486030772896334063652754812797336681219160084001896130255355088595958439223910622512194177197942634726377331343395511489352054816269176544800376042734883866615724635687576412923489895490476960586342055525234303429464510866034348100116825455499277689033883666657785305122430546800428399236225660844186100584670088962361261560767503325845619882174726142357930584019193486838592221821269194187288943515707768568376512558263355267926034120863792230838710275952488525928713154582367293196468094073254045472360411707882591054980785375170962463550620257885714556965566511148522666564737375244130714057181474677869664805538021718677819029994531381379716296858226625092968321983071110531613434943386005141236064885081395073372671270919957163926286835148036956498311746521216069885368976821919033206601792290648316504525828071520429462682994071559224854602602701807404433802139309694154512221610471951340517082362143472991873952159511204215636880681440561986975125868183629387774757087028513379012641825281538010817150681029408869399955598956572018366586838304731810865578328613227232404697931321921585780782745374988370689299844043719204641310518857028696539754150276320035450218854310838065812125678257083156695610538761039102351869305535744368410127852839103356236891487626174896276479038571219167179763633270367018473372377185549137375960868151750023732046334600924275217685283878049969714989205958919312531332556354539747392393057325061129606226384185210490228574127422561493555267929953989622431360054326045789653483875579984765971295728068088204351393453325070407394543324296974238662425368069755480543076160493779765424517453176117660379941961405515218492001375775815797713432693065920193955444382743190299709131407733575839077360175271972374295778764963725992112546336334053843129520413423650140375276147388517946873181752229774785723229046853941779828804162965416298411763890103017409790668315769423112532956944379795944209776477947167610516242186508752490292502349531952364122317211568576608568315680408506769192019319741099274860292331378346677272860169485020671738676434963049709606636340262349240938063598313874135673881390130669924907739933302679173579086519411545073844653733043685491886592265191009870558897040650958317536687816183449024188759483528744549547099843080155530031989503216695594380116898972040329536885225430984039489162373264808751468488770429161090196136663807854557333336533632689296253963671590954521237844949219980031347921129851090017722069772611954061331283378673272960123199053468681976904119626959208040031174722795715645423742784799461036166247831106344406492857376891242383298930477585729051851869895947502396223531433544782272577844261503787094922186865542344276074337549774861473217340714428331405144698010479018415965293559185761100034453688397490079255429104998807831927548280401474808465897100236272730238414509890360425066374910085129124600717634783364265624755309989687974329175297727989881344943580058653040067527453872587226248522885807113242312014423356181151400231168705972095203909803249120558148984364892628849353770519451468442336930112661651995603807565495619864322368985214174389855426209259998845066684890771047782760219084653845646550330020208707076153626364391578746040671670676951522572099187154682741921705918267543922275203611376236816904175687521827424024292464410871390591155708582597917050666669078326099137303612769820723210131704553344399455754878848131280397653429139247820820836845685533055904853737945699273328099301936115553715382768105429838209149213390232214902605619931530551754948977625594772182307828881633641476462937007032071212173504802925260552923452849543764942125913978618528957227972882019319923030568333832018435720675477091408249105325282198070462660367690018215878917745178471135142502656532721053449446789813716379012191730263427074005300676866094354308660437157793307181215070778839310396798120093485559684421061571100980199019525856254131385203339158687240644100545122677386657178667083269592241319416766873336815490874045929186485809209215554032021536543833245956621775433142962800334617962594190160346317982788600981231327737735854085118300830162993098117612408946425341912916795343502205752731836114819298801423636840441142218245842951703805887979327424049935579438027858978069735841975721396674303158974305417054293786295474287065827250535738641329709986792125460092455680888232465582985719752022507714715739278072393773158013477826551919301112886360920051618720113056124098510777002594525465835872290832965415395904424782302590414516032304361421625096985637957094112038050061939084847831933601729397546114727524749304876348089243674823714925952563063311717450441367443237382697020746284124463925353353450795757287462647238461197413490616892716794234326958726219614889813791961752463165810360533388488280758851287884106571473390407978853318518863422846902660576507261231304234845656192785355699373506352964355686345113131760628019950599745010968744659893250040560373005800979684404087825132909716351072894317696794341597631713549811018494389728002034908095500648561195332912945514771696671912234789909004584730395458550770188624619231501774539126750496723820066726823080602422859474925383799481429601480437822420639755106564087253475412715084668969092557253572826160260199540036284839789595402620756095424161786316193718897237176761169760002876417447680928932990008104139968797985587139496219995824167903568038819400526305167905945251520464582043661717130518763844379039020715782146654305871137568338491608551530256671914660940753610111151515801352361231857149631298150639153823245323045986386509084956429859899588946599584107152065627631844021026945478833677580116942229938135477716609131285403781460361310316941815665228397308074082904687798200248134499992409565934207719554561917028699261880437819592774839493129270195620899311774603217245882390210134213754940789654624343592911396816645584410647779738661337562072615456497583311569932874186046316138400044641406538658143024710158719615072587096821164548064170549164901339867958443550178060458947431585038872877911886282573357077802692991673759848743681906877827259093891430981274244380593375001975036119533869728736329602588456813318779382470926472090191600167846112055999867621502816565656587186225090336787088496104169644466123511635601741832559948998667792734743346458101246018134469360821089823372628717242257560189045981940032369114643944252217568093896393631617800221456952368891036434716089147002189012188184797823412843440933245491360860753324560418306873386372872489908514819223535823858384723825426444294333704775498699141015727873728473139088852855038197442252590820945754516710601324979919659830427185652685847115013609994091725098332756269953638735158995908755087952326746132287394446696721175430580563207841554691213304614741859677154791682600924918132268723151901680062764253922844786541844715102888982777614062227827120947845193752741782052228869146238979023808208049483712559332404012060950378794213661581389641365913748856457087930173824345557114402073441844825992539809859712334062078416751874708128741141240583251777543756108421341475841372981528757033696751613584457939055941692314655523110891310084448930568204460588250891823159443250476720329856914399033956961003695179423511342715662755644687181212015973628347672338844993392205251073220413524879518397065230012980301295804043679312605585012648671042913212740033743353344618844347763775953889920217943966191878794814994126465785045480489498655806133289948066003899435186889659922018761584406486589310742235445798740387517545830339152909681077895975429424420470680100856070464000520906216907199675330050378569859932115917106696258283068885998628542175563326059362733453973593000575656338060313868710558199093584255486004753651618674797301388739418081964970877658598093321553111007008484052079355377066381503537678976520754610648391412550225523465775825967250698100499239433924624548760701968304868222538828697661089649194833021354295356412906018761093217321503936685086077418056043322008807048333200155513762636594111276457036269784611949052219688563126196642665392857743096814963435706553541506862033040492221997452342647146632279469416733384313974539775889288358846932990450373012853581231848907222543667838708164809901094590102891284757221888960457878768547700115360764317881306991957354119297334310264600937573239799374630916778956832570503954338218808432656251446675550583651964261831120709122404577667452790388957773713647306858445488307514937345205475229945890798917936336440729288450547165233444155094671874533258071057124993470400683084368098721433541752404505306263247808608711227928463995955902674854583778435620856212322890143087929477899792353217415382367706896405802100204552420185528129431738908377842867076534317575750794052319956818057570570727217665320469093583723748058746552920897738688216135979094361809930090833305491498687406387994885451025040334938357470304753353329008613793007505857069269823171343846025325140404891374344417850305109167208286714175774649094582055438968130690996301503470056984584144014829495979558765929519691844123733084288781762417961047987441523584782442508236202996934960437399046843381847025858701194027509262388050792144266453090032274588942777416271479308678131734202490827877355359672769155775667615512981614104684207790135955341402993098189422977749487172719859071003524002101569233889280343975858292411216655817953270754004113956490344487190302941645164267372022092797588793766343248020669631120257321502722009595182732228538551893485406664239338933560988184849200444576292921803604827507960218476500059246365100316259263849683248704980144378731401689943563319361751367722824092401586759299930148097254903143296496313915229115143985137746410595094300538204201766944212240410908626281743961570169232816121839769108079216917368159239701958659455307219761699612921301300935384661744837661155798055639987038966883692265696191850230231522946831835079615811982990877396695189771084592797159242013082041975513243218364448597478665687948323477098772008998612848195144206652693465408197176352695680996563208891081286465754447300327999030680265070369338199979019859886328473997128541706231874634534067711928154544318431958046767916453971565454490968784602650015318690267791683894651203914753857871148231790002899554597302568074646805708745415555427621652898802292101250759667543547906701739804370924718989749912097288420566051484724338579999760686718506783070619007659807435167397048493194087339528970899661849410258688243951858492515408895311054212840604725052909252255686802331183074755750089059238375384387831567154540335149426690479691453533460596121848168610482159539080985653615053930316600049769854945665463948663291900579696917913413257997742269374198608231315016882305212224500642857726596320618083852954760938457154526775425612981132838730032108271183481147864416075069378894810641448109003925436747587893161443209439266331734123782673540888436610549394686957769534119773939792033972812518401847737296041893288308061092249724409980240908187740939211821917453205957811884080928354188795069251378845734296829608722567736124491932451876473497218283355769139386067912306056954962510264751146138516244475438748664202870987337141195988173934051312228538223420900799753442134262102660506643954142480689959146337105504322697189961664731491623230709180373909207930405509107885895106446630748101879630919682383144439656765601144708093739003341911047966096981741389324987778802155800199335838347217702465115365002455016093019762421607397007889327876823459340796958595933920264311940250836263688336120342767801655582316913377862844332373321926823496795992773733292061577243993487653878047963746190099377376746666218090002833774921824565791140258944372216531810280007616013355829057634660623845260456165301912123633184938306239078792574733785143323230646008413810459715662904676775278162283744413747905741493339523065262024331556966206221443774880423238114948816259335612358331990747714411419332851499012585867049989157940722924836100034645768801323997494462378789295995911592116605664242436591589585635124555441306897486731459628264929487323517517504704573795105662860937397318769733696127586064436024614501406741443389402838721961373549073432171089482682372812956444297361673103328828162046833092550239016352957494033695359777904780509597013637989139469635071868568286163765680465501930781952943569165539495042262497065563957245499787679287676985459155070120461296692538345369782400198217128134808074391390143725140949803996599769314363234710800222421472241092106648961450503990536021651472083707462913790961689314736561666324455719546592540260781079784636272636883463702537042891502908147259167132483305739566088129877815438130029391140304994872769371548776813798226215783788200103332516199342478373499169950453763915814556147200186571526157609389519072583869140249044421444206336384999532865004356561833673297548199786408852814867986772749466619764885724956142578200732366416395555738473664794502119074938448612625845015396973851930606424179834005253652362541133156322018186493345984918825051260498724090765483195496338646870256010213595671759074689363803764102500785446779301705268168615746672529020743332230954999588565665364702636169119300686325232247955628714474953100415017750301665221512014738241810363502582737783910474975865284166560031927221604195973657503247038004653134241755545518955713174571872685752704750617137475631731633523169804352028387274083891265274007536975303777710050548205188086704050355180288261291235426967614030545308654885587661468170150376754010649263083731266741777427416251160378395010056940062907360721804528738280219920286768675979335911427617701763779435469879482119248163829336584141827321567680656674110110360026177757077959891773988134227028672758463117720617696006076289367414686563076229634963682971825112341727678186392546960054504783150721363791015116518008959235658627501823964142194157938391676578628785578530202162883008206925879664683366503602240352141242034672437416498737816381227630028461353678437014438814326476325486599824364751201883158749186661534822306568897197608630299123334682691626725535191375288118413623985118868519041995755985733961276627297254922215342147081331127350738191263285263943314689841417510108390288685425636284485252417899445119180399328724867455469339860310930811390760730828018849156554601713463695809423471436022535372572385504611689590717070240457367301440722825413909896899636055916518504195750295514561608230903637205525602142976828704047480699796085147039508915977476234699927495063578350829924443168369854468721457395186145005114195045047157140825017168955336973321167704451190876904994815396972170518195346818343480645472376071316001325286388474492822291840630145387441965269897659466240644543237337472331028576871530201224076775388247151006469252547845779528326198657688435680310923253382158033321202804130203250949916898057596672812351615957260799111142642344454714918371934603224562552994150220219362690669847199298615179826376792128291334990841039550042426452337164380369742623448811012589342206518556822140999902741802403448115921007293685433447913169610991179147886137278774971587198091597456500706505170644246587600704995903371808317895358820839145548385876392974981803912298202482592683651205077778215055584108557627905247508205416722313056255161481494604944859774600785407652441397373205004191217619211088566726885864995609468005222182706157171409763598541500583034707225543421731062225981124342537562923870930354607719866252504871015197271364685942723594373279479931828630313615877487578087371982985222118385251346710531133854615013740134015032499703411796219968510316782667594869952471147588129689287902185567659140774325682748187755274535084874772846954835038461769837352534241350433277909009528991431995490591916814259369097799332563029412623916202946421664624284401621826732849036502885157283061255662670069264102494878371456626763296203285312624489608508125576721379309932094042828070550256261863803112674123950451341123936883120486625779634313046486333919591376518938668043174829792656432276421364911291061004209420372744360657493865963651835882418235301242571718607753257259826485656926681139304025171073578207622535318058269715992817182715626526134205688155106195261795535690922684018752098381523341593955688271835827949416833723598268871118271100889931157145259766666804902779602413040671265026912812716889774146747324586503531014136777114294572249117344963667974457042187352630444993229332335572054530470068569065599444226130861418252373884882909023797163071024742454251723503604242834080301705211258358827341263447260902280422940184280277780810793089256013287803480582756345923612131140858053387411330672751737838571609170980458299806751190020167158949024787785708809384147737408101392897705169349895750945960038292811789869202894578931666738200982903910328766298538237728180272875786393361448319278103046873306590305325395545940075101167193486603215142751002892717923002201337999323505287848463048524769415350165156234102399947979822015413938310009809427086796930454676051903027447888344251500758646010608249653923057352099425743357638445010610154294399356020912767473824547945582954801618125891152337797627384820467284262769574747728452688447506525292504783483372325369262128827702170343440543891024846602138951996633315366067973832029823118155931098502154435883292146683669960534077429977199803565056399989011028481096300521975488659932555868594254932786667761927442255133497904319567723806558491132083033061323144876697713497934387706243470423454943375975438297479858952980818547591464066264471240987794456048208828257901442997338861137321039899726781613951102997017615704023442480474269988127360051633458158027240800756404769787310545041681220563846697085417672318737691798731867615020865124084587549205104834050681621238993120738682854146381622526066869454456066142756923176759443088651539366905450609420417284093882985675252148915041809177389438053439432549498500123470472988319905036979581309676935201673245843115023956910223733859607147151515181007738558217843468741041525316500278065543870866888802957846012262586432930960036672954440665713682520981639662887820730983291899142306436856580403531583057728235397894633664906324123639810044889928532969482766390160037575438358123559442932518178386705392472570999851062874594611187195905395471106570346337376331908275007288155081082410601412296610102021477817514451774283797429131381224022876797505916632115810072935224425400303990701720105531283232663996181974176117070653564255032573890130307636850358935299868589228538945431997671280975685445388072700858006456515316200467968065448231598886940287366852570241143523539394551621170492758224484189267182444639270629973363294553549280778649108754007618541072279231154709027353581751679753917770065348431676576128563702135567115895769272936403206868291284069169518476554331011389494647819180765371277232703253570201281239786773520437713143889325761619342983716683608256744684060702363022054915074425453850783145207287318162475521120034128186473702803487544009979599136962288190451207994990829778534076719347742801967998034301635720400526670944303689627026005095636318103818568124146807174994574321210482317508470816198168507851490710529170114701152242987287403347640530440903389080401169839890923945780557057023357717297845139625572990886567168093969073075635759223297529446536221639848441207957331930546843314315542865610998788434980145385767765355170487845586849029625044619867869348282505542863636587083943916816377001252821698508883392484626427220288221019131578130461471334975495280196879666021694315825175257333911120335962524191133449322438094772632725029535077793053389426743258726773740114514185208820991488526841017019376021603605023182558861729876940640506075488961205072024720512487426558062501517109309201735130890354956425234661564913725266591375042480717230407542525302387498288887748956957896780225212022761993325989582532961346357264447266991919013941331655313880359879136885050344596170598860396033285751438590091226130861126114888778690629849569364772468670412897602998570291688856422079349707306752297337336701364445528899571669339158414007851745262306773872119203045685071107456918577751997956109739664344716375253692944734090826537086637122060266118580612776129955856504989346040743403140344089923883138433137997175347035715338042138409064089089386225799997670289305972070009465680256581235844611146316931586383386441624724856511799782055970483788445291592012300674249453873791586234603201851757786401194519553618789049018138804318166252861827561206149768940272861344244319202853538854645060331752108488682104772767196462723990111974213537337616394588360291271238415845497571055672437628341847236207561605054303580461196183919151114642114959740084395091969424348834466098944429158488266096520408190227239160617002309835884715535829139622727786427130961872171862472513306695774302359074367854866461809824847873921105342461294839599965959863210601658629479291435381984511473497872368544533958628323761113910004550315718651399294769062548360970814573880521561010909290345054287888703004628986326432509636672588507598540268050648598504324467029353043805561597107488930936156915242344955985033132616426195613144885361053072628642213183446953309581008556136423478925741770015054709871965877504886085070306006805363423125083271238061833904093588434517590485078610485694415126861781608385628433620855762606315325636291299466338323715249171922285875265570560558462074727959454551058227261574661226962303558688418943355547263043315487725684351491570280332617615412574115219108604389620031581725513601685838570611641274569690446833218462716100785759773495377821228846179485119574272105762293907084967223452377764755539591233064331514727060448256732860850767822676505573591985835371535989926365790384571537582527167697773393758370830386901382324555643886100741615328332169744619825533123684108811788021330629482046860773431312483492468170112941403846305347130108764344137978067107648968229849571058538762510326808398807227604582482361795642669321458331543512406057848592498848752284038416226796608916993923450608218929747786596172545539496434341514733776707917430531469233797999837909781003630319091208661716403544808728818292764154651933774701849561110814688210891699202491069251269010467311449772586459747356261045310647725989088762256360470359617062810789697814776592717040640167376672956026450130114116617295180482309704358209846270898256926657834892211042213584313766489449744242025519745245701339671325708635169904415533555592568006250495787551712178939905862428707467791774505946789944808600578095961148470002962093436549320745925634631233782675559884156107413343392969144578975287801838550057007159060079798007217771066939649328705416182802123433324676858942437852352737168261725503617951943720693080818656403139961418943342075111511505436719633046051586505718479845052229210510889808831675731984899904527052260687255829387640933908391025892846300074234215286715602215897727424538280208122866928706709362785538469753979559505435492468418755850640511595820502092400095613150990090583050259087128259848698468867577789452205581933142673900092218753389104330917230163810706214123020469783675790381938412285418278411526492115826140318057090735780978672113881343000241125353316486497547144881464548636110746621598373628137629024304347432665418399561336048641441817648740878326491486370904978728468587878181669307479550226954144087645084409734060066979053716298233497593984015639068321860971414653343119887874178172851863978277765221418546660462327747806451242475062900615893749956957344402333641774748647585364463276540430022111998162852748281884450092789776265129718534447664695043904507120550022306047783615222045960421401401167874954485863170805814634672149704164116145070696036711866392227744051978885132711473104122933634494502805526286740841379234122573775066024340722210672943025468049793982354922620406201152991662781360467562233976656285517016765876451169765843517010359690649150019903027202000434476188264072945450194853626094142701200401444996126334287790129235525926786532159880328474602506177335296212219026409236495987821832553841595498583242100781956540693297157825069433584661750406800626437089877829668372908059430858945691963925093082387634411103313148339362171114035146541169258488614286612671659858528456583594961826209023138000140632673367227127334234626476673599104210069480536810384620980079749204022269622548016768417284505661363308425705653198049059961633640359204380723556432637520230000031928747240192861290330331104444874993432779515502186331322785023911482764311241947190686263646461386135116090699011675123819125107386529405741944814915736058126499615706934227528482202045364332062169591857553257623550384207556597266527566505533535464464026097981576387519133882194659459646047573751165227950821533115906503782035590922477548971979791174832978739040160077476132664236833651166611368834457280591583150960968541037810388296722045736522955444875574973212003838226058154399023965461094579743229765927870646597699678570955531476077954822989425011562562511405815052470646556741697945106107139294000140301869517223944630490508304064257987305260416430621175714801065698389469056760945187278459920609573188850448675046777059161769841155425284827366568243226830898757942994477495733546643727467752146735031186332216512131341900418314409378434833139582303332479068388569198091164628760585950870769751584525896798786027816457560263992536255065532821402171469867752391777240191055284946973292709936796757968128129936336867087380619561846416065386044398257128713116532015535095465544640693287229667894625602334393405893511966030680795806997578735789078447886028817345798199822652654623781316581771889134249919612905275277020591944529833421186154663550614182798611330883663897415150534355235917756949906285536224051195851429925462444801537312287724193658811923389976282999732478209120204364344093736642155746845119626926234909736555907263456571237087953411679625745806458817224540559285971271197450910883433006163854399949625461450083663048711419217484524242451846100241064179934929710072980567688280565492017489809855954213030886599264995159929535391304659830538033977646312685268724868021155016737792678983623557376638215947366483438791485783349680042244573168141346738293467275715505116976225285090775220912875059931512977871461753760658933129264134039454749556328823299932251613225876194299624735767438760134487688357197010451434697336007861146982017264487512583566623588373507672753251434910779792663322466476380890409217665307196101745776864001113816897944666822428406439991629181290429635264641322635440944702130404842105081053711100646370876746674957434112503567966830418093828533385663328805017570506968178491731744598172364357572275147358057167152740365618769326807460222854443292145325140527875730205755936627548532032119797692075873210686062780107274703360598749725088506613888960873634890819253760737143808137421029739001322161399242867428592418082366363524334792520300874241348056806338353266498137365174726531987061452359360969683272920727036833520895747085484544463036732923977337057472997944365508899126384903725507528743634984582267354447249661943744985497665892846592224704170079620048897762867530876493075191963686144576147762710644972639273584584570689995296327861223850760119195893338700024828173767252926200979325340253413297899183918464913940233725267738618078390351899762507716810255352430011601977084404244032670685914101931191808479571368276133575484758744168236960271662347621741227504919336280467944278761438993125333762735906434129532380749071572811202742114377665123773923423988079173665111293258459353266274647069742270926330526447851034665423485081565182329696259463610171462142791053532263185493549915385563100281640946564086303336864781509874415371674869121366044902552335273680577968837944074565960487132737417355960625515070871625612433255082791982399076037232425320082004538802681436772332001642046504300448621014012893568420080581071749887071501588198961051111590371194618376345914311625329178805710320721384478357962342538507391901713480961570390016223031370792016035604106715868522521130751928999981438174103992340561737488372357147604136708104371554640398570592149615689296299637132711368314485690405875978550625657280120671484521571679917574965675857051757574722863314252998499285247859593139233083642211305201936576986768548347181295501548410987223424672847497704703369228168972431806811931790533983949037735134977121513138092971416304772027118058126029387655551941707272760801081545254892640461136693330629570877312858648429098539987937651259729071640290370002792028509849170783872543778013075883708068431485951797088264536702217458432984896894188129831327055507671904330060110565486908360057537464238385523193307096445982847259896408965861697146840441171274685634263140293919516517770066269246031389704228134928875285032078141052338471450317487035949366785888198946441159474771481155747371136228771340775687561454283568144531912745877965725133867013827224933597569151044500103711845671030936063478005652638883472200374640929176241511857531789741612730539735345751694382757058837888150707444862674797716715751826702114258739961003763322052149848815356195037645389176270528689453291970492316867282411116810382898640791724497195031788408466901918610626185113027204767818362290298685105325190352574720804671108891779053612127954477012390764826579282908602273610166281531756078743127989923060067583935825648014042736597195903303381927166243162331054159855521562380457569469093678634242875704702664885944448453182433434283814062105877614235468408137322472605997076239889428753476873931550913107026469862693416936353188398632788392470631837413251573861963747145848257209492544708003878742171533419771421182424750505420363387188490936450177777807963639888151887524094046022223883657898180066034290070362317181556953692658857787223526797757037031377240912323469091545893264459873929644101117926587520868353700531117094269034416509038209177544306701853186337800044724956905671332536802401202846778296742210773457460415043917817752947848179804687849890640336869927803843153068002481569334559098007665792587656437356222194646686204882942327983563359482794984515025143706353113392866646383568000130838203472006584022104688098067157518292799273244384249738481031211595359342355266406701089819392453389336883693424333878493106138227435157005409985928987565840526046227981243979664886868362536960866698034330962198092356259696803728840154145869091033118743754800253202731200402877623538463349543892850057250627034661423859449130125936254349329020420735926501021752410160597491187392124805933276732970317995104540286435819352262311627934646748106395820679720318241561026639800931627159600567475631905591869113794038687736722945661346644926080017880827501134108686695458799963968562756329811237610025629547159341441852260055481301183525717178666284424251309822503132109674142956817750937632162219888170738397057108671755820259030356385743498327952979106602536596988552848935433715467926997820871760841580701812922907868009262417541814499374479354842813327314371751207970230126278453250732000385871482314894884518375752827145650125930598158622780272764967883901264046410012783456723144483308769543716155462594543087479315116302770973321034080512752902531226560725262340716751366232358192835228734701313804111040367510286762368136837151333658581977048640035844364000641718538489750194235065499774877358631955795970668121392364467760584561701914804852389284211197663880330303849144558955636890404383969222518053688288024055921656735881829113600843077535001557210777357707370689082321855456038771964320166388096465897132217254838232566546312034059752665368692221786565726332606369887559965272768023557877843522876907449249592397913173593064901023028439043088621671059101060316260225446141965683362609092254580265207097734292943624176163292599108943536408304360628965559450316238431396659626229227205841402783529411276676365751216177996205780982267707146954801985037554949963527338433399434788529811778777499481719365853028505569748827978492372744294965306022021140319801050658311134655221263274857289992653214433667827718514303578848172688952387702732682544652102322639111670875923948066019815845033790213201340804970242918144490211599247816113256271484971443319146662329564770643646169479782763243321468822840535418839696084996252287167779075143056854700126914881512277552009431007112421914385588267243276760591417758171304953377609031344769594194009981081787633339733333484959615895377390179908256266407449438126811207577193063730227704963317340241316993507523720441196138808350005534928460858459566482397160779461802181292939107858471700427775465145405215208905672306257076938951755661189754041016178350742977758801199355829700573700420937422097170577659271535489920283585736832034447899452111674454088614368273267036593911175594344862706691060741011366693995959339293402744706801277597212835381695885169110276040950660720238921808185639669500153935462713635743168860332160781616928670229644591616918306141141471322577573342949657085081967877291081823706589816223075826723842249367004658606343519539918435095966713196424804354332060759173089429775234011029137445909102300935054251095638325721791789907521737082906027415644324998935357320664708036706565482513886625563929517533358649281787751169209561513143926834022478277876095280269874488545818212239898224483641938253644444126877519775810199092306345357123233726897609386599810423371472998359686316982571323883849403051523779342615691832545202466321176236302008877456073154630478128122451995752059386423504485107293914953785997175611942324941634599215833204256156333169583176074108351914843213754628377823434526931801082298260098600423671254824041351722195673771292710055381782179578294299428928776352839925607179772896857782137445422670305106320055543086326120709449911207433986012630886134341178146605115206791041014030657210881541877146477451099212039020945704397600926019162015742723468638916157982156463231664764225998246491906830880421786339494630759355964528015063006227932685058010196507282458148952606302912038444427732747084955238212791304545129206805645218566058393619167047716316094684033981980278187109839476683267957601910805899051887615721304522161070993197594160158066933046239806408529390355438824751823261636025128438855781956024401375803403328679361770437170636166166664209072911797178994817541210924143384184690941575471871248003000368607151698131517476000419440098257292227079672390124819334602207428515780365431784748007349418094265763268616291658186454990705281230454722402127436934077421115865426802162842381451179797577497467945319141348745295396393371673214951381183082616076862880703729643122133337430722271617571714819915939961279903463202942042490983254347524594124201480165932033743024147820858247087872751326538006430759441760890322971863780034923858489564434562492935704861015068265840802874465320991540617382295180808869834291416216405998355519057061151276357921943066614343236692551474300815711923454190346285659950738498605421085506147925936740260857898321673423050877273575962017814346303592954437426520850332706638943280666646406867334511955036552769566253228067210105058760044694207319874588115951676702403989756685734452830916920477112636685468937363803803806076260410254784326478551858688012759968531124173301774485621684940934403045556863518819139071839530124697663530203610031778757593198695699703465370423351187473607252481611119980736391426339532646468358910911730049024280045239926013948570858041054370847127907821735071366088918991747150025242418397519466788166012673074145573104628123486731454747648215969868754756199738489389694644720295045859087103042033552679037986741398921699809937613306048217761469702567032245027690504393330724695339271449656240586465364686711202854091297998026752188816725238571387946341736507495789622772906783900511408701221560941402278402694399115361684758087425802581540397579583435672492888308706718865565136725600788823231905454169842235873173925072263910462928497269960086077183981520691088152164475749895312688237715757651992739143581192750927386159521211097035625307748582022469993947704019749981507031829355093565871045661624028114505457927323767449396882751411655038679684816045205175487752474727231325547799240128688222530360936601617725061470612876669516077808825627796653835205762169962107951023339796924157568454109187540744978113018414760339767053017665086275253871922315673745948521945832053780330141833781190886745453463772597972371191514143684000323455221324696407683122412713675417090560092404177436563111574692455345294233850115817718378931125464668835348331312640514525863161092150557136671173621159099678648989918317504722949234756414044285628998137581037777845792934844080891229978007850763924081364990371795694552977466914797007519431679162186865126260780176587473043558387804555657522922724933692990832248285260458789724936621335348465990743389170586172573951541579895062540020469518867871466795912164035738396285005857068420342317433348015258926560998333087006083512803112475963342555171793219140881161954378933710043840641990075039385768803768897999404035799000740305083479090568463040553247837670915372243271486299616561650968118713146397158619283919982913673650000855718646220315115550883811199367448542390507149447096498633770018239359524199518097705219424473879557651825149830607094946865251924423739506653414784522047184326669677777501208627818811796194608368506861775585512630124965334300390401062054547975195817270693570788351954236514339587386431917060486186294177202676264172671793284640334809476325269639426316604708211330869301247188543133955244229141035835508397190178408771777708767800028048996741721847252397970361908136515477912855420752406715794399614087867976247422573714713669098412532864391095513740468589018757080387289965107840529476718115662441218232480684514538903614552357212792031622293633723594306005742965080367490969681830524649449846306761270660553152684521838595033700489454020733133515003411744978354146157949679216458735168214328376968492399023678312489001236535169708317518060056319295840035648994582190457469861972496023877120202126024311438386410554989350769844081499221215836934891031959610542749328239894467545104825617766594407940442592927825129907413001843605703859498406552924805218046762010883559130134122790623596108824353638697797135884579204260481994826755324437637716434217779970903134830579984221109122015057220856458032094153956701661257242602303850801029600403310499539172946819444168504457475142354420499216691918886743992103162076296551362397334613449453070245448880557991743426470688926189669690310073177455581847908548717687647605386776328580663726538664559867285755798512652891236962724758704795564580762454019346996997394019349584040613714020677554550517011556930292803051620366747572179946384229750450728041993680774107748287160331392044076111048611199557895697842914255515985120339546529086323377171295280596165147566193880375449965135984268512868322574876301098595048952948238140355310216615219688606542523844572004447958868053370596581545324920049303977205640885028486763141486168320824666517269827322351684886142922099014282538603004070771394261994893396476567077499873176123481935336833144369565200549327963922195477476312922204104227593019351099697261314956919280746748365831984886770181527620256637213273945491174415217053998771562386520901350438861533915166409023061326206831815789305447489089741008386858174179588304226516299692965057455586660611827565102179939685883044392608391231531410278033872989052716332221976400053287123003570142936659298371868347616828390930168452995552635088811884978764537674691432344289103410286343329255434294473101263321862289912119162756462727903680692121079264382419332523554153619809700805170939861230520440385695315463600734721611001852914882242401151419782535235384936300233729293882898871356748931684894990754546069253990879458367365298288684823632926019844983703838212977628073572729562795308578437458086849789679786840682696348476168304995839089387922197164394390205423798054844062610262213959429048299599966748325732816283718810667576113165926012610259037800990298411706202659941586704506786017868274726983549596125391608717746160814779291287955663508414256720335823651476439484553186912231177827440984666234664516464868867844597987910995896070231785612105985533261532284532050468382560086095832526098177372877796108114978658810852191085760326222502424400814779334873657378039974530363322191548512008244721881720531206781552790430947527321863238514187644377310165681964100100519679627948750696316850397106579529765550616842927835731530051170908382437107734027984541842617066723807335755251664185611625125976439638415999313897934877267689557302855641743338758525854299536059262876085842849477103015439011650649395754672931638841943260028461139788868553535773160125441708502387192601037022992174854702854818456595444325296014198826225236789922676751446768212760878822125633089422135824103922974600352294909876900160199247156988614861783204953443218052800135643452472627165976439499190117946662659615339756988941235090510248948417557076840661304430520622521584260939615945914927150195971645238611274120011743628929709999651776876460226973962797521759395799606387822876862767785719391439473821390921828258226634545098984954708209129459308873431921425344006087596036130635067136887710617821292002314241608762576134882608426915242276927463978239747708660185470628672406632337639707684832477257270180412929639054016436955930234199794155310455290018390608532879893556000537950831961220432378754826165929535857086982096309273368603057862506898401714466012890433662880685912525450404851705272335629486745063558975410158105514797461443189226219226949876765831217688754285760977963982254351186589234138290589085901011792454826386985892966702200796421478551434336765906870474399037219604207326350440432880459705612610476595100226335473453266939629031654023332538667093512795131671504356991620297244633918198952997796024120492054296587779680976866603514855216795334211452792625113895283433650561744927929324524541063655946411411142968550294507035651911719942989222508310856951729350381042827214563107858099902170604148365428668910685656867150449173087363152139476683088545619448630803576768537548139008758774845077936691255935650973639464167227594194933093732092013679256367744592247907588423294559782258417201339833995625611523587437629674019450116349536411010505167045822775590216392243811766430568142115763433194828761181686164322530259733795577726698052285673851740304338920084834181859911928767476787078334284944235841145048863274583913252541214769699782083228594879993380935539253057464819859223185231690458213772377381538596012268123732953723863426466107753751648483635428178612161267824235556399165974418719170579422287486580004532446651996240691166706163199923499156785891944059781520030820925784905665353963129754822512342162867969416737355147202202304351227045918500324413672707883354964986255152065885864379817362544224727546377378193571723710849133660763324339325941108917596032590858361194702534840636107395650188892759409421009622237706933721987663445630851052936539044423756999068532238641360304235648163025977519025671548510966324228946939135396804339885755535603106087697912375602855958942697680940148828813987362790613040856873913802387891925460609445791007023413611394758306394542974399151928655184484413964087735046577273268065237458420121039886742592625218695918330646793433705396924248095591525006976616398323509942306058721185226270745303340030039317967273741797782142740902125112780738996272428253802733178834625535809927452978123197297977449695670585849655849768970064346174649521017689544580539865057656474542384417398122464426346990815428480037387833008058072025981072065994530997823265953773280689234056634339812985407498476518377485355499021098487828893308568966627910661834335487592250820870359399725267135586977045701111173610767191848667315681710407440050066493764405713278558387752953013781372484488572487149053506649128763399897608089437346632332709533463155197118134972971375225130862224372362642775278184006968647907452261924160140721420576488899657708313504481153647510832124863044427853848626860536077090497585583790915880012369629021532580120816631735193562923097203783052351032353089913518307131471022542733125892294442146220649700373632546833625090180775055155652493427775036949993705491105282112188790740276297120924626999915563586626769518389345564798280563277008520217617142740159790724569292092669633703957162122687042808975546750467651400613925848808328761251637224725724022604693781632892962777463576028991312146085339082436818759691190962408690240274594667704730608702688617224558606369500615344298010260164664700649052021788232939709864624214574808259000966033591798179875412492309743285985285698616399538823582224000837801088235658743125759122474934459638198615526890740436194943325138339456760861431965584864964945857188981298026535732948765926050747395752125074095407730502951758023129963469854923058591654052891126657417389033819232509658883650043307149356037284716104436740924939526320489368032123534220238416483102817117451384218493478229870248553969600087936266241873951887032900070192960651777259551393745828864061372687169534320787765293040214365967075417264349185359947226358376701474786096361503909621118779542726906119664849448870504160479149038380774241137249380522039165048734343427468272264114426045265303911122709450483386593137619649767421083613686790564009351799750861931137990252234422504545343910897169855342462861982477503271326386829784022219913113157594533310741259881878573693631195848315658014273293511177915614726364222530444559946964258760926209583644790833398494919707246438068055219448970695218961583495276634672209748876120923264135660010136718857944933019559280508231938866352734834574367089075323004633027330966780789883747246880290851919700737067122610412173834138752623211945520935490101751038700258768426301388011499418962071392394527911559848230186583244167434955458842602908895853044863531874616827498987248988604196700869695393620649419289864386517064167084112518388495585727358113383197003702597747641903509661676990769771909432832568140918039253253758023752644069328869122248432189866122088450619541861114966656580453971097433561532310297704772885956126776413115548764556160802902771139496960981268354350133526275801606508704976493302564827707279059089773223300528084255206504187951909664753925480841835363661256815585639294989400335019972531502353115550449031419399101977153761096301227133224456602840721430601571578759696486485727170273390446484361297004181701744510465559833426319451486135448824473139698154610395324779868655986102011969168906185812014582280084338752578369250578840759741827990736377794017514330749631642913096984272830816859620385783936024266572610703976844599204057484986799259895843348406014264630559771933105818651421929390656222550873950056311499354727778569056262850237622723839012370260797258831395113861186160602234369790404442107159920695553421708343939843715942322194386353475095072363074862525450892219627120694500286239550793093204238778993974131275680069819779066764487958285595096532470658233814399252730755371717755426472787526637202639532829595690154961054536578977562012457220275809893648802680515057205191479164239882282136635574063099184884518266262908292148166017822469871602560638652846213430141243179668235697156626654961874158319168786748123962423742457785402656545994497067435009326248511050272957200591232156929658186465817809967698360312518331571218176424998059860936589768376528417937308010895777139389686477036832155961987326957035762215600244802146769376233398067868847727194650627540803823999212021822492764910498290930830067588921623782865107644546601353819706003560414038620939340241088813918489674718779732824559711568784628900478900993984898316467197553406032304275533124913456434150671494380582676484703935395330176718910754835795001658455231165892618759849171914086285292789092089110145080111496908701664722960026751621344134587711462028352831000930704048042662232949943547556249917319574250233020898046177047017327148556003760193153526787367064734033154071969712341310947765372647180434053181518634641347190016876522677624264072468320965829239559303876159488963723755723560388907505917577435745226770573940711998419671701282898155637265294539338188467426025664752956946610195008238401312561933303737243519889779384396892842345545303047970173324957339474074997796664846245215196531329025197909528389079163079483104555153928152282998712420507327222714314623031092430948292435540169399466527832966131337358681100557782435961950052021485044485556535458648885652574583811697706658091910782496102884207612686195348849580823100909957990364307473940151236715151129990305947254734893706451545021315874499859340915595891097091837813087919242444150344628122209404930958901192104789526457184094558414379798163265515467833982012719440289338640090416131320431621789603362698078532718183568901855265098706563014064226304234451582552204634532980482008363743453787680201156172263195187207606572830135427157856713777836559497126842098177048183776193126808124045467107532043668490620669212558882592352607050186961381642290334200729731720572827090883146114377107904385819008050395216295120658573470318596554480644361355567010123304162595132877195230578608857352992463321627366719140863939770326943318353678091970998441289916827334545366730872212485152114040896820368420513213710109084278892557867003630216290241153657077730748126254398204395671456456801179794971452508924730164922783327213819008306523797960279706481164727589027520461660670444203963869039136485283995034269175518842453232005389953778081718281177929623025692477257190957439984591053436568435721750445218367473750887360808182783328422488060518175554967582614858350734892387074912673606136956144404966920364503205354480031134484215685178061864724936838121077531801206221289781978292578774273593794958177513862402986657814955920091651165465727516950421905160639216221559163816041769505177470985868918602321057953750889979620452163035451922191256929925341104828437370002803115326100869834529291352919631436985757825991638481485145821822133807284827790146407901854756968947555860810101366654487418719331085188528068130918803334142676545118284611808405441747721135551027385636030068654808624265598612774186723898543213982755583767201291458217225260791707005190259453570847854295304548698230805968507667466618182143921520903762719057536129055827089781730267200319056926659556006572265236723155853237992027589937287826062380041795229415423225250774622265252233388502179141961609758932602425812436013615021241289940839491019902634869954458696944125214203144942208913687187769307706604723242095667822573390872535498773722964416270886606180904273263648448197664413998270752069067844398599472090259743006078988464611315476301114246622094440751547812803905260717212479667019413786063841521508595371356684638417344363675128831410673531979024218876863306533151258723424491126219399336035009769076588545642875012488361875115975046572709460549740204397935660242701537174368734515656162940320961081513519945684533647000999630737660544893421715375510288282487067435622312537876804004356200008085936378200217495689769986458684325921133556984079317753289631793931118510418343416485356403601929108776741918070317277546339560538120332069755003673694628580252713549628457614360930353108915972099288870369408869981487172021001948883424627636057578743498291612228274680595086055199364420296186098348769415736583832118084807204820596694728672751590619317535646154943057526991318807069275367988679944591034189040127233814528611558744692731420430479985869421727640565026091413835126834776950666074889005740606233790075461888604335484159277539037558743215637025684367566481086752627087822539712602164118970626394888645474966065154001549891842505608914994769313839059171804329238651476924603604751988444195782410082056140556050417722008893108999285246718898790721236494059737738611397371515048558072496088107987686773527003329510509346501533834779607399756915632691353140720027752763617190292185013412299315102600746085885659967206380071063330981191665851270328958009529844629986910099906606897988138654259880115744791226859573711727077210548839415986751195081349739048503017271400363034380219879546761132524807555808120245874523546899110126473509316913783002893707528247899552530613913742686543322562384257474345445625970084399358982071850462999580438764613930889058847273065618946941165592099974017578521530652440242184456258765756657136030392436021152145380288432293566199374563811400163978800177974617942013213675303071109194117259868897181129033949073233254864125357356040683477262586678182588042409330974299061435848939992305440863684908611021395118729843203445731211105743015296847614929594353351462299012250696351134627208910548619672575586187798811562816854326420413165116649268058312901903400439675599280184320442319171227425220611283764909194493790482179777728553554093786942255772637771789007183165009940030664718370124480387757929041047416554463789016146380453456935222123231352669263999059825788166644632982157423639661945888965235831976434370351235188386406177737749176476939661506778994831335217673712956254105073867787367660707409517909637004859541504263448189795349349563944292814581842900966401952671763836814707375963473277123120027231398473567181871865250136194974343832774275027784885008341072712193312650110267731422335166420805333909742653709732323349524293951352171950094756276798072532320589440220496972744133684308101414019412413925677594752631119975169038838678395502627844414974214397887172964539996358289656973636108925490832142114622701559519169816934830731078679162615371446771615806116666701434132339186848178063142287964253895488181296985460034368621052365841138863096385985157537456368868670551669463186962522122291334530460346525934360003049752180616409136602555714488153872040494048288112930193384932975023194756273623394494598239208682285127399925279169635357862867520885904593632329961874652679377129908418802718046023687251540654243349760185967218952299072078123739239437330320524446524403032961111391109143136629433522044923785984372382016767105554527882963313514423769220069049020075698652744042222050953454355110576434945357462348259634259137595522032439066414372362905451804738999198241887641599698252610338805114203780438096083355017575176550312257154574217926402893896603477504451100119939972230827743319292067007996612206426518100668875392819632335554645814315099001883452882026452826284850654539465803543933091226902519190017398870490994406067486528507002744715375056518203422501572391598662908044960410207958642995361453346294213277623051816852820934020013242893685818953438157654547086401268146615501881279856504530672434601364692857568374841501215080906195212989372173394872658476870098166182675315974013611837381445955559467016764774845174417662906771913642796831116452134023768756555545421320154984238641284711456547805110137255942473125139573619903201703508471168698789694398325278743613674633757601942280386143583924077404827631453346817674999882082628388084057414312815211362852709866456158768038623013687280895506376088004052683397580369321449927441665665107707237029186183343892781996384505095740638410819254817149460149207045230845980888472961762316014578110657944476410496207033504696120588705133650379203374208946941347077438895705983402135647983943097510885086023565200326866233492575803754471050119343751126993990629353814726481095245946338672851497918810904494349661459495476315901131179076212312723478183212723464670106371594990862688476884534516973824298075153395501324654921322527478832662774977552643369009183983464217744802426068362763891828641085122377308313573394021253036893873244032808880168134548128054196099888417924715562599396388353656160616984730088424534676893276003903354985072274622269031704154443811497768884188499618611672956192228790589847766682203446915259980173819191172023358642625893389071384022817097130513763732756195184595796685409607661590467841178146139407226025734943801862285284913467551305383285339685230997662844196385832939894212187658639549831720211329127345054294684009133946746784647621593228579561045921310009354203173156948134282836315489559403674120262662159541883741165235326768489762667943234184418776208301274325337696686908045392751453074131945203414763147183901472325516162064133565501904201150898250743102253651362831909250208905417983834952981527913999217968378434458686835015452091374360833025062052563920741682558031150960140461383109394472248281056961324622786554896628218453828076834795693563667508357274493395561404351437135657092186031408650689499124102607863318211648933345726263470432317447053484473410902161613525163965017359970125448749269083433495283662761913444072774054544250046804977087971961329968505255811842621475069598852070959956535485046254046683335574725617246453104793860998137289692714653937910607034593394584857427891645361797262858364841583418527374478052808503250849471386669296440109943376437680647613097339316174438759448793973778752673000150226732366046984563140578419588180882419432224448392585987813740296232248277363112698179185247265077654131918773950442042798789214539985806663327292990485492747448219678730798786926639883025574597760688062790061305036060121772712261546594590546898917505923374464178367037657533075287619976032889460912894771185130063208760713897110277680373731847319770808695327715213417123173252091782493281587405707974695325437136013997687000049496536645790402516893852581790066165865483648169534284589344339114961963796426284035060609171077305065879556527827294962571057747986162634321011328272184547007490528625902228602546467405217820658455735544909663806776672701504466696666220835049106927160224948678335737232653204267950364048197398418009812448405870814105415467520296950469256904822082408796121555834770471643902883349384759968327515252807842902744474768566826064869222021934780479193504468394658415936542406594615829949962253858090961567982814017989179534229748761131703807733469755943224498250341038850175345772193084530935792855936207155845631592804170869385640546675288507707818701999545249306193843607160386306980181049523693498464624562742000592043421714443734204052422621725735085123642169314467872048361692649396664327541472802342708677871074460056598712649256339534629869468806382399860069043211070122955307880510911899228532225054422310257787474686078306429124527455002959248929189247042422610935830491931678161706772218975356549765164029303609207131431011713664149512888301011800871361132970442409625242509685201711785021338880065737922926200808118707883143547346996787936567411904940828794390393657741047650395918771029967948127956203978937654193475985507466554605614375937941314852300167130392423171455788054966206679538993843989882784190758637889084183219271607892440377266644962842564044945962656489835043155216652254062220289468290768068421736176045262211426449622563666414875895148011262103850889632810727377948261874938059197328653231170302687731739608226554573879485925338122505341329513181584071689719289164333134599425866522554933291593899526122576699533954264754635707512009305178334040849161360095356123380571205555124665043318207044625420374145649806767041823958591316887054859819686626084191457726899445112005030015070108449308566275885566718438073330784114635506783432633574333437132775740332575549352938446236031939709339271646007707216436603741296653680511248793648480282516847448107455824415908422024897070891310978956773834947081959364323967143928205158196825679863389607635681954583189735836172686430882883197865837541363564413376183246369498449898783833102038836796405919291905649337180030667204321015209239789521880053581802807094550386792802905772479080064153428582293203671661310842019247032186998833204875225617175412151168269649974125634955499323780736919793935347047262470752626882577474317479911015135218638885944093341506227325970806629910150898863924207733715558436986681970324142858659766155152813839277340497873754380931078839010528549404031722701701993628363166050368637757398579475015785836520989998546526129153452156100179439833602482696352612998589662295226146812794241350933102752868410051442945829574608104477694635953527581403285646383807819731302007709952154400229105468581250649790426509276468783123536229118940103236074637694214880133279059265923039944116548895075820815555426959440323171477439236691533726309930433168233902918774891694956308346092702638947878660568436163758621395173125276765620011039046544863016089815983622118503707858416865977800851170141957469547909794802329570887386582189529761517911863130535499596257500633804108216863151759238145752966437354451538639192521122932097948952056961601517347927399143331833067839219158617340761073072201342291389042455012475772358703595972167407950513695551596889007351777035018909316831619297606645392728959835869801525543518608868916778705440970636258801668646371497013642713318156495439111629642536777343096881851467668517634131366673599649649375941871462706696773324051969530056927298846423801713172895471285768565223275225578830018367724507184171617840009804663537156754469294237930220880470342916244786840350558956300314656338362266774104980821667459226359200701173528447187810482718150342517198036686067125661038106596821458658382267659550100500087102375672592625676417783357552285898722238121246185587067040675134588085955620389565587823249162990306925346134123394459143458974370151975592171664971607699389824966255955797915243439135249539400262190904956409160848647359273630666959511033246502765368625608436118219954553754065026585279286143910360265763821095665575415657701761475265174637032296383041913794775975543137358766186977337653827935844452000669665435042399152689632105794903617548126104410784628474942777198565966284757617121852878130291766792483180947409550692706119611095516147572487113914559847361875604592514555982020209682790349504264957634609690171767920120594728197516028268900307627281502316300705756615451421364791209624471912275448589031687822336372820160046943321659173182532309136274793369794602191631808132249184361843479070119500689638870902707726335557042545952493709856423403061047991706495878531132577908491180066879065796633084012407475256786567996327489126225913002266955734673001565484102174323115915079580282947754764165238523064395583760639730914162110212252611037402453627766372837146059055757891336057231780036998202978378034274475274637143402206627796570858459656029901454854304096733202983362535559526471797928749450125630116356678483519269517688824174914022669153139720138574155521760712372270670848121225700495274144873071395898976111989617830455269918998617387459212981419063011675127793078859488389853332666302033912368246756918040382382682414861214121416763992417932482638909622264451791595992898817664222918903157837725100495168502713849872884205466884144160169895196647990253731948673381251846701214396493869183718970796906812967034512721357763905733040912113489508552870073537182471367188512122398085233153367594107302308957670189514751789286094957016598127417822726109346041019676087916016130807191337353733244963777815295796490744913095273892736863420822722821214572296151465734669960041526663323515990701398071265475790388700206869622716062359535452489879194587470115398783221932763675726098254604395415938485745112242328100435849764255400241175561911976785485488899063415763632322101232778006803603710549655148065389382071934783134134126552671334430418769445610955146853213405916438839980243198493575583304427773328493078852135750395586069925972994400318482795838087361563822282965556217293946501199338952196233455792875185276540372185190405180668144293501993484461341835815807343397508401524031413566138501910068036254572781296318076165367915366193595690764553302688355756023541441043811439907092979376557644794446150916942266685083428794877349475039508479097489714280067171989126197666097679705026707152151257093736933415450499055371240520134639048633796814885715317583217469671118968347442212326072507554420356727151620342121201979130462842117402597096650256235576596422527394149620802480066294766835234364374963350329028669166889163346780530756903037429410658192138442162359036648409326160969917909132266625129441587448488307083489760539487912480922460968520903993047114582120136407355217964509049173488100277889532940608500356299090675621267866608291841099725571965694643829022258120801914501359209385008328300588205180955834103148875473607734721383772793957810188542055681208633077280621785174641482977253325010783239142866423372770509058921824354372420555835849671337663331122764087266464615561645660046194683376314697389249834433982657598618896622895442690177149033032919889734481156003746234056406028693394970551808893089961549629260763511608082552322727656088710126532388626001373558557101953773051120711390556053739125749100273450785643742478357804339915406178829359335053964262244842722007955610879177546247642912759367836462356240424751299725530947454138029155333098854298597368039500953336365207782596386940553742394092968654502369551849982167286570030281007205516308059145751302784812390391310530881992329471291334815980914288724572583435061797712991586798391775529136974555089146087048223728238350228333736520590939343772926586036061161943691025264310426497811051982570100222886848670110449744886862572730409137205758404475010620602246296570964535400523917747462585990855466673859994177472528030538572852293914688873336720287638546648942263000785421808128680669091979731978400456044594816775114288009742529494476055667684905320135381208610551225944143160400558583843363633505501197193022952163285732744263867462114705739372078681979503120669078082299659787442753545899719381131793191961855394123021120980742134286185427975412958358314246336307137229298958356879176227401839800120835160000817653001030085294675990073572509645143541774271197444055042097618481419542808033854525595485906282268141315711972726490901597088065883237620036818503384536370188343805424164499021086579888920709407304246161014187944747713507858705217686186160297121228707888714536283527296941997159213209458678072495836439927189000074021096155303990691419009397601298059863519102323675866426833395279637786999119092421387752047086172382655926743907783669335826207648261423107143924837522856752024605833099563719409000765764666384718991101685924133399616313923839645111920063522521236684977506299771880598345405451192271075979163154307155890433334255201081343740221738835960515676452371251846765101549400506432480329143889806684068493849572725071959092182867641665746616711361552007159246555556168856852307543055150702960833055777461488461095978287706157866110009252701122093780917798569112874766755185615239516277336662596213660477931025527480780616299794449944237853480779269699335947501659130692286869486865407991652907481477883089217777082664844503296448236837486712156472930423361987357328646442573807598878014346813412591904340239594644395333277523697074814882761809423410758752023306333388206152825733907364432129938910744424460887156461235849363090122932364162519463745043045342749914172030433623557645679400052880758039925879520210624617899145048979316160857375810897779877142953390705518522466425772712858695078307276177969978682388864492445676496468314772687548448250110363428926452954337488214833662919301836481404414291265355638206997231305495878514315630774610831758310080906925745238309615307436974580792015657856189278939502482466637824316915025178745219536894767215392768075035143071527168383510382414950861705123791023318996331868013102468961700790220823885961494930151359739812557607578487894973041936065199605470775925206465553395986450592403277539940218416641889705278338271492969398715172682739201729802138105874639996008626426321226779139070173180677295758051359707491029008477969083374165957246091420745509420529322174824013833741226168784469186718412762382346506015844216348480085099749838500802731206956397047165863779632361568344455122105881199450442876839774521920472634082731747640713975227485408288742881242975286345187528718038827496550259971662771484694580478324270037803348794516098797382265054142881520112042708507949695882028404450718977395889075698787091795182227971420325070821869384340588306493464169208286986076678219007354562181253271395449181658913207287109388350240792485878460807759420681086989892531369663251130107799844296971397610049171694752473917646966843858696266636211056505444801566207551980520352220476338676184259340890749352765856300442205054364991411311517434510603846637911945163194637688159995924936399454474605219486420496545563346410482218238903444197486387293624440124813812144631163667603179312723612356996950916308268991214629867157523315626520882496143975256575914787510886277056233850539912289059781119422009403653166569809312698375165665407773861374594474853726282085360863362390688449910702669247787483573416115523232816128551182326545798343771734267559686307384984464314385594218839667554288922888683974372732833636551441198122335393344877478502038336673010672858471871468236445390951746557464466091857388412505627967096337794511706302219812340026592797910189167694214940287671109925834188281831452287830186728144634464968453277960659241844601587127800719596164552201745290390327837708907837525815469830916690126157543865728182244299111730437434024625356529893756573296087627119202506907738465874009714517779915371967983651853479473717130308861912095314920452236147770935875352546826273427792477679751160819934829379741169785903175576450111734718008211704815376081423836770342524477414863555271514116298859442874449707226455020920887569549015378050134894255415720484050007556081459744696815361444338655285800690059961453891554698321568898277775500050344241512941778478783970213268843537793456392082516372765076758992041008460899511130767337753952831088742782401631211208089714729443506031452354866505243471750708035073587843532205929962158480448282241747287196460455318430310833966647148208254795829083290927454550551189561433663064728750934733326677562886745990685656697555530954126517216601812612284466518602639522466989350719719212917640381779986775643287410422741896124806396180621729862702729762584430828827733848247949777953524285199181469945430444555258621611850154924292069454519373977333798805365377450441393052448356426754784904814299574210226217487785721349726813001037649026832851422135062186122959426832500344472720409818177740437676037086488086535732748011284647562913932877853303983535136163155886643522622038404450173114266221766967776499472862373600402734571171907726888838873776236966654619758648704718763669695923034807201540396590062565217104311253526638151531073666151245851137853343043191838698462396609747957664631246245219332682111782903839525767275863094566031329998878146082033219227888197964013576693113400747024065093375262510999290213042323001960549700932922733181646823852829552693007566247392364676604607693529998865359349648745304207778244765367965677708741248760992465957558645722405800690011899998793222867967396355268049726117837714727941753512516331374388492896922286275396331127248482932099793736177576123242055935500179260591084892872147323945166635704982090784252449632130026323623167944095342022741213022949625471345571155652512899899749681358402874736904502538248045329878685863029589507131898478699263719117387994589921893847380401123461408480775782273654264649353953145952680601857470806766338845362768304820965538365054198171918591209461642987013754951271391818858365917518958692223935818005106416562856463256429226987165080737069061255390232652647867528769326909311167961358893143043870777955886525463312301593937482966743763138133922494619030831417191855906511850882901928157869408663978060388634710641192897207063527214582612934772752967166016073439641161629265445506266127047606389260603692625883049540990543414438472896047392622370523046192316682373946878270662975151036169432494444280005200388780420654816090645003529844345623779010946393812362631548026245206328615343336182342499051607615901141820073901446468577389246018679414185489083104963822844881343862065911879935436458738382064194798942291483432820514182617826721947242822476894988008842492348862254779798648948625915995139868043215289320076780120971598011493596360936276464643704689859195418507705319122795473578112460732650897213560986050442944673802534835451963118387510780354560049433083613820804469964945156387867637198450290732919455335763481061593815372374243105003945483600345030939698547983501708652861447428996080549579238786179645908778333438077530532054435517778425647533177887905736835315116580722894735135108919447210780699644553768184913750406105302331037981081436997570880134192644017451681604766578388154925476250770033160030349814419873361880242942277503228509203456453506369300733277128260513484129751910742555221682088834154614371037309536894717102111390561994211729564369868334204701158810728756031981481638030836848884326487945613983757762337986325848187544050415028403267704910218190711507620360500878492251801078727124778916368143235649742519961401797775557004688690547259134072537440636120003607784316808885986144946812289224248161187962662175117993502122534190406286712212418270021538074613192346955988169959851077271079136792761907049748719765002310839990789320133743820025993571265795072022745621749347442849302482766330496313935730576326378027590516870701176970694914183353376439767860994541810463499058595124922375554184651010149190212181462659033654457095818978515809803021604089410256294186379146820233409048784120265685086442126843940521302536307795313696411682985021138609724474933254119265909260656601924081317233092475449188993464293448897537235952435176926626055099060738413328541134210023748383265891655975516279462830909465794856719563129108557011985197883078778456802658182831637683699618603503950228803835887360595745986407965873967352869243781573471492942830505939467159764514867687023376849597808925246367429307685886505667393116415528508188620925216937514435338484607672070030208682126725465540514773918366181817644807804733156963895086876772543602555225499087438541899257007162012448875248552784890100167907461808175133280563879700911313009594579670412391309220721081357064270174702509649818392830953801079348016580272710441476716272159394104922669172947780915225934418891679375426722939675577195393109494664612705304026273724873099326374070642853817529145575942502827374935377219447502949507587849611653666807724954195927527705130890628960133815925757856164342740441145216263466532081017689553219283059445410080455425084659093469393039600448066690154163942013486809121097543690380983810063818446863564469020583876849886232064627826395821419034631226299360245584441610072472708001428810844773569338848147299353804198820385067012504278548922359321110087450090877286975619912744318397119292728235418718912036288208979020495450208028702098100802138467405158934752091907584259090930276016627234024882371592953232126503159153611357991768910242454623439454833963048972696966189161043476563132561676918301067832928319651962441789371907028401542128099767427357250563431734891973920418288741976884259224131631918154667452620011767975505169318184630154405662908136987999796081646562604464349616454510023882352645790908701648316491059961896263133931862833187870418743287157923630904566555485363319833548867195272116900749482831752141477906963909972265446930040831201809485218043295299859006200991834913682055921937651145595708223341011426662825326078809592382720761466459891861274924713107508130687978624370003384420507099527332309022527228750697358747655746680116196717681461293152645767712665885172237824872497723490327705798811811241079357672532276081531796824527169608502489597253708350328423978104916546658144265707748318051429913777111730386401606505942209596554189811105715754701784744144653930090364552857973271859467403248285824938058331825863409037788700730154794142540464161851852301091086084521810577776612736833814542002479065354148201369057074003495643975731629658718683998153264348922822231903262284009703022763192990744559357668109223089808304387008312613784109321232158972962694498958180857998611901884896079393961485293945239910826826139752609995478626843412315424816898013573308560099792489170479819073489342000461898880356774424225977218967226360987034994206619401697433269178689035171602911788386388560514210494223944021060861302506999124239915640034470624985312717785869021714434001262140390145561513984071601420890400070389697216239714420977022614222892081076237099746525961482920912131683008510497116724482849528651040492209583872738324849998695161834534758722081832535778972901405820418453173052310383016240515150147990440046197370557805793252284954117346886753651709826008183509202975273318376215020871659405234016384441643536995053938605442961806528862361616004248959704222885404304179329711736173987725829783701080585155546618666247317584204149111453179470769152858379430627140125532504143843187710858638616817779498845159846900053339170708322000144596555857431530018608736897816944670014496349871539620303522001370723700762457681696989922717017063577680541021493306264097153446283352670272122775663346517758286287169413228651314053073904921358489763391610777210291492855746154454461148868089762301356745489762021170550691388997805823661291029918850373983823113235351867683014843945410244899472812040121926453050357877539143688561468167804539258954409297382020056580220786537633990189445286401752061075495348503397278280072499446018268641419309342020821234454569596616925774212750615704604170940664177958778439306336373921426065269392611311916518869374684788591819584468588780782663563772271940578457074060819388173413064270715545617997130244502744861060136095232636056323886218283741880436105759396112032009981569374097032358039417484845059113348162823679045760960107629480657776379971161730765570900840750756241369935868806992067739590964455837887306451273245483958617448240062536395267016483044929317870126532367889906716819910651987292699373643143779579421953757393604867253265162823804962901814796938268242460596746144207454741205649867003171469254414369736366935935145509994462473012380351943112884122926291891245584241092135364261268158266810200777126092831169210132771286171766663490546244591950840254179031294241143027610051972696578023424916037283952694482186709762624761957238450936190670450196672820621006646948627042908787120788938168527828991010502499535657030214729389547085058632841026983009040897338166048888707059248826357330505040021149295240176269611236804968756470587365353034879582643343507970150021202092975101049380631020022031724238767477316536489637241103125644530077504739978944266015007057704749982559222538888848176795748445762940972999773911008699208446738498594361202671134044946494613719795962679906662970797635821554384297324453208262310951495280835223079526859851912017784783493048582810243664229281066337058501324760262637346919925795834830442624131804142436271229552920053420415305975950923061487024405544855757762548163476963945924840843200007662495369829832758152338447194377303808246091764537417142246912015821705009868467929416001184253827739668295859775621269649874415937652967614693713202746213550403488051772925664201580216221135908863591180177665840507559338348764108794603472737970337616909853162028290993900607536880812662945386126330128926165224280019018654996459301778794382326936455142144609842953391146339373705821614205891306561210364153719708700082419487746345160312701050900937617145043583241982307158530665695097643995911429565435358203892324333732806457107051772499057455685874470138609552639830974023499182230538587671605773978342921416845831170724241457707181422704538267014692846605652686680442475567450512963668323514633997116137091269033725905472414886262116520075590311866342352217576440574348597796771858925805305354086801652854683188749237670010761950471745006506605022937325888731595969617544867664224646043755224280115482549053923125618043919497458834266260264087483267019386290878674713858029554765901441127463254232174581758979758896255749304350126237901227369077580925710466151636698420211628766191539491126753174564686192315180567691776534502153450974652276808876773734600987673256101317209040584504043536675877428508976605624347848944364220059443733478192721286734173284530094794628343671367672640150116074632131991955206320228165037556547431206183233382534398762470756044738292579989933464679823732853875282007372628248881786914229413150368116105490249036305221068401954589353560604615614056101661680781801591911259745373077728975444349404099522420438203955968846555563998387587143145644171265987952269478717783310704872964858548084977407435308332153271932340484712575576145813161861130757353066749501049183455145745305202733208338712306191805341869186013539347675171562223856083692265968306243820400342133766132936612514948309641395858292268629839924582459087224225555568735476968907024341753082550399854271245643909898867609183867928267173410404154847477687953348769058743401732047598736933895012776239874234893653919010018214699518029866782165149018656038773326094487354977048440400463328472882803814762058499186811749892827752906364791251711379661167537060735423801604164473132714987758802507268196757760831020651816911799506406605559624035213820872808926258745672383973405270751741614674608292710135329649793625139555793872784370924659627588408287289876852376247454556302217131148354071481810796289938161653273009472727918230540477872303556593112228508145575264845488511806360481389492990846562647526249165579257927675553201627504992035066908547002954862191376911118215010564500156741426843875487347957400757984204751331683207242781464929778740038626347076049231448873495131948105463094284653141944840396537873691689158347560164859193824266071864428520324430145030835876589421565920238378447378505420707508361866284051605461354450583484551359903523107308484822685719598114138840867893222518269062071262364498998960364405547418864151188828115957241800505263259887577746595260732442409704890548677883963373958377964590219463169487804097553061320334451035918600990687590664033742591719609674584791369944358877605446317666320359644683307102264830606558365616001179801463758106323874307578751992281375373349819822191797288164011282174599529608110025683246146147804519930576068667806800757913413527821195580718625783211327216593174642363941340065632253616089529384834713014234910004426878671637700106435889126399960874463346400843397476181822538015724058636325647909957861586921401292238402934155116217639459222284670682641608591474264197703021979859999367418190982619534930269296883803888171432995816728916211282600880983358930280467612391726807918910407312961891683088963101068099503723602468246282506014121599332136789281409894669428774150938329530172634021102034245081296399025360453546684161271044700390757639816464712940085582813453961350381401738545574402263974512126381263083148930265194689156687395811921359982088159881030998683450195558013939345403173675806378064885436063124341163579333041789833813286823534092036492115205810950282837898051501519157017963234549339356610874340366838837264664651751565296269572145917923594309568352911268557086457438939568641071854141284436762015770639854349978465634968477378368489289699673716387996158377203645157542251337782549775322996717657137840216419798060902166448265695801706817761512619537317620733205280109862056458681611092189384833875360848397467932483960292498501052389344697006747771927585316421860418621557667959860028677061565249419930442231520359378011337081486548956343530248513926914523457269797254052795043279867163963771029472952281440731689381776579503803790201158463578046383936101516735982945760011745328299870065715078670349498779194815665652610188200127162863802519367710774379399473321580369724662217909344502218203548038428438989977498942404776464938933992275186521712490922729425711970199620786350432135837177715024329318390774945309600368894861781698977839166341055590174569478802175346358436114014153578822610953344876534649270580878909665427318423172172361951017977153195225202051931343913335424286039666324835543568601760356356250390086807716476765376433117163451214230675287939859181321614207511484786352006675552769787141212893937628804339706878035102815098703429426110134078544601923499516463752215809130012902020558431473912733025971669633555585557865404142014237963613525012491172827674995843797334528699262756721010614776823537590444203418500057357307274372970498972354467805959517218152535897694629478694224131207520242753225538436320469738986481116443653670102099213299135418511315607220778231864281513066704595246717284027777290777448069262514721732538030021125096726860972309083495256734218905247538183368782462078254554191516644173683306433124093649641983743118235318511464818924725242652417931234994811371526280920895360245898479572167089194250802092914037306644062565617377892081334241339937249713429935786005059573087203739615662460736232721527541904236351744404913572636435874922780140493462334892611752604838375758591211679166679947130675686023955316821513687382833849292080590525432260331701606537451760960609306110377579727520478519177990762442776263564005891438983279983578901057917827175865803868224752699017209162725181946415519884672660719345394067791361657937098756863696545678306623389625196725118622303262727258844078958749440464935074312615887480801640798983745515075629830302125339798840781660911332263653059914481094538960435806379314767613978352934041817167916052893294199365210817885506242743402517691690721936090282732844504749444052176648922108371941051272443674623217170679867873307785858526529991949037591912088575836767092063816633355511745255893429900731945512202441240436202145785924292526565387540352261080125015053847090097979106328182295915924989453763298625696536087064716132242158124741860115319437038674217929472851838927123501497143966019010667215968188066214537131759795464470629905033148646864436037154558022344272626487061423824809356597185482158248053753012676649187556699206905840711222091880133804924614290253358709799456012554597498701077634913478297468617140543291622610320014454326098242111845530453901858269391081846194094688267788760401968617625404224374541134380828810164947775587800436111090608176133246618662756521634449440245672724200934613275644795431555095111911206256957989053081560083764285920242153835803327013677054078216476374787804546259217443027689626624916649231978123878237861794672027791520060691038448043510097273893240981658588047373935922215650108532220247646533818650185491513535070059261942916343926203150364510933126294235181580763281756235192276094723318752389854316846673837153062199729780215565649964300525703153508472195972834833002381608454917512056717941786440958317402520909427464344221888782064906949505383467243670446122642450994306209289418999202575628764143229818258376800857012151380825158573106368580483239718921787218167812391094890613278028970027152319037631314609937577094882507218725051434847523922128016316944628505349441739682938969725501080688696181166431271342160803246473623832181702616450958626670986867994053117824581016752667751319111131964482729603298035090940781209322126634975826155361801515550935431783772780277781554344713713002390210313190475734963434180071713762081970323087511853105788988746750129877705324974739776823792696391467537768451789650717166754786222379068711510928053323154314536240725420384120741521829074404051771193728915107983153587674894514812682817334405807327155031648042727934286968206795916926835587550567608097500545666139546376325314437608264230316919536289915965923478298990487952128093669896029334420649432369552919340889581822023084491220925350312159882308924449487247769572326259578091549378037205599876187020073727652854671530818639555659884605246790327686489627827379153773694494781046936635935816241363806178293102833348783810697470764800416761120045771168178860411787019471598489010624807441164785559869337555910382648144896585133553246386802439609007466960779386043951596751204249473899046414848241407010266752755047750863257063646359431820154183629996227612357822157085668947168072522212236857229476909668081065232276102045695417624883129456991977168369494207620014823579057110642100835340853610537571057923528327101244699700994657768708115813204126199573449073801005406962236136011975768817670163486388541386800548343787820482844564531789757272580357311907780762400416750784615777647115641321332037466167013304681492997025699248897883175208201794937924549250247415123538403579429701858112349823942672407225890547008295742903325802403577883447952496854928217791772268162356199061169077198455276971904205497948679707911835897967864880367699708662573062894514020220749855231263173044098901691713293579808201488894196164947110060134698061944125145557708101119601993480681515441970136751896521326816741884479239582526118229885509442219665591727252520530921055266797119533995826052295226346904729534800140068596797082061142708155249781258454062407903541212026244863005163384491941332360606317722918333855627251606838530729148765426845533445365246725771656536836002457738016939836969868182725344575537865923492345606972954830454501123391612171678014932456925661768200468042485195692944295201748214625881252793700269137165483306025777075221132271199580334441820806987997053307230804293959623996088410016107069978915170200302869616184961406793098184250668377116192383316604319428743243046973526784929275873687686367102957493120859329550391897557070739357617345061291567775940542563804503533328200187533185245119487609959672336313828099275519559391719309599527360854942113990178528119544688132030413858845047119302550008887292093214782534893334144482324224741386995586243975931505639402930775578187558021199114314171100647152434182084790593487115586122934246478468973942487869761353720026788610404240823243821703807893578812957116809019671980801527584946058125462084541932108030291773627525458270499884790108640487721904567897100775170885796607536024201550590616043658654012376536144711294642642441094702301473964682682664907616076946530426132004849265442422416656228794386935749921187575693088284626828140268880320242325888007766476837016349301946300688199595922947634598281901643579056475225845659099987378939207868371835861250320445182178313002253065385135564879801378387280767396506215125940910803385623323237924189641275084997824490337116214737109613466516599968915436775719295368197191855751876855300552059633226702833780017507677588056561956341528855386146204471446631556354493111486781002793523210740181053002798525194676613177189385458089627367079969373746370812556642544369315295925933027079340423907863230898885792906389207080502619030330669904413362356011147696985709525034677115234358083112051167477262558121169115953511145250270463905192963606806288548605544570171002499727705199002055989776414269041911349984447481342131839595182412005342294790877147101638550725304132549113539728447349418271472505699194761704765497003592789101640671992371843292216823250318205932254303792585767316656677397603639972545781375994603138280678899117070467750701436478332984978514795632003507153014826398568459280410888929570034777337596987175639614200079246754119957889597066586184272249833714607149530684294387026421661775731532759799419689660398590380795823218677122851341530215786171080395849490376100046670205480068424972316975047260646663607687707029864332571850579810594014182432961873827770816374210184549981896570132896745448615971076385896804390953292644942919644287389092710597286052481759437890369030361338503870923608105285303464861151987782961182412469040164836868673034485860968782587747658534357059795173840906996272205360263154015595381620501745561796780015450940120172824073975597457452197111729910484397746102252172542908760620424534593399041984752018447300232787445533089744501799003743244482481696253798774136730957013726459303690842873013624419784596132062444738397991062072129747462354722344493462372408815427724306922272931759324142925601303313174563976965018733280083444111940188582245417936124433568056081680771407737704075894272917089249426714249320750384046852719764444557492419963148284815675186597402971903725893476624579924418698674732206403895558952163179542469618070028453024294172669935426012892958037694585814708524318883283093477315051040410594078233265827973378519722096337833449100547158815188048991489707277989321911540349408409419639112922680285837425544486049700980993264050487408764345426519741730421903044440092054043437329584389679464648901666910572370457870306048313368181652000731669985097475971491889560912802910450344584553443664516072431300998978661492114149845639538854475598261170715019644295255908704895313214186315038594360504961480104148769481785200414999475189275776708623007290581648913586066188640656917143378756071876058661789419266973964684750327248921271632726849358060383059989341869780112707105092769748471434282660723956180476349445240745837225846140888447344130065838796844609963931020254020320749365870013767248406582861712085435150640204974799983607100058593463291907352879793371891913637234838015811635667390179464077662599756961187014331945549302015996423949503785900640708677134800743103646043091394269310238828765405666397234840755874346364437643086806339423369992231666149256586972146610116231384586863807628237919087485857658839167934745501866244568297693692739776415405789566161478032616633379714087154250094210840526960414930482209451725060704540651307910216299023147807857333818042191231263219373998182436551423688001566722008564194306577041981658129202320214274191341486453448597818600828275974200988773886753420509786443553670473412364641466322221304509963506841262993204421776290781876384257865244691660612482954507160033691537356589685212602208267343726523841902876160346437561414914771810661498310146461074997538490762095238928174043685344827945662305882210556547923812173108851037572683260298128520876936140619337558920902552373732893772779390557607005831052773171950080655167118281736921150099517895773663085817787547015560438863829351251330357950846327628971633600412585761421852686939285092685205071018998875287360450048351508402442164081999010932725971574207081060473582372862589038157369005159548690686532695731624837221430032122232963665523207082743203787173685142352700101301264060719041263592081353325847760895484538645962730494802458633132895406564693152602477045415937758945577701184688936877382243938688882448147000724119700006253015322270984490232807429328021770085962476437659957275682185747164664827673033129337114249250420106266926642557973016567220141645112626977677713328565925940025642819523838330216637818101351650773478479254935313579694794781329485386877700780064313554739200303565138610832213632590191770392755779878880983008707981651141006593360151758512131921977885382212681429467184166805841210226362396828542687352128249249692682777166742080955742643511851974458491291963875465122780621063645388102304915020775061447781459360176376903907182172170300917806351514640815928451710716876247404928526398823319311102927169014510335139984099467494060090922788665020738779027875569382917115355934573969769497034124707287072785028136758658879842663526374296958296387918519160516947940298751059870433653008047096565042027988572337736454025377489586566572106294883451423412426487802014180570876627270537633316406880737827389714975243664474085149005904080348514731943102411002827611941723898378816030840558455235522830211053457249208162167366467208577834967163649819196587495513106037531807871646307252999141173488942860044624694008254134626966859032946343370598166136223110790884459147652351902491439146587553423135029045053148506636279316868197340528748066587938581068948111581478125617298023362197209053081413273235621484043381513918991171517950629803129494928314842685999369816155165656011514985216324072281362223263650064603730295645957911916499122608887102719511141777615365502583532640171975798231027862309614806959989241695001400787320558397225824059886028107056841381110443867741434745253821662901287189671569965657573287722632891739460051194660769835887105065995176701632541135722852416953592154862273437315028898209563122458867631217011959910352554265206666809149191134419911949576613139962001356769295219722896950194548907260400055687402600232236957425062894809212291043394985011663091948834393843098933029535538714519528359669770801452084910255156387758599436422955230167444344972397989302667327985956609852521403432204710719596020368781785595348557173850737007544808169424544354012276392013030149367071938697022299448610926207252945443296412431109771516412496028265457071279770026213937024352239563515484981406458908476042305097575995778173712888510542321742067278987352519063519209402020217168762224632169963671466990536912688783396560579166829833166028953698678202182491907081505836286745159773463054663900548721053137779611173362454956651345743141423572782782409730800796614565295631499220513181596030900558879222739365802003389280781272458515937110663131471266102919248971892474411538684056035717597398521402202252364090445829062565019605315799103223998327082489378702189722023076548239377369361986036515245883344896982008324987771942641377130217290528250529590792426039338688566848017826475902624175171856950601693559435996711527545810715073861805496729642001756376728484727061067105882097953206626419090718755722539523592042114671177491290767099756693317405649007469345551405153731125756116821180044687422945670004279702349615542031702546519655625833512200385802079781923937772327090481663541460730864356378149586599417337430855659521202162764699528799490615234133018972898687221796188998517183436270503909557964290333740935152000592925185200836819712783090080077353197953479030067101238071230927614154580338614408535741384496473156422594431181183240928924697800289361484795454555733135665654769695591961890981541693931734213149573087934996226848020307652439980323844626461227623776784893265309505893286791068454661921091674091469051393638144473534737811485200782705635078107014704289013679053407183302405474501284894011009605872414220785590234222402587522074709878899385315445795915973307679960224993864000125447940359927421583950196377287950109997566495095354825284830569937411821085094615421584905720956378950989817455306292671764034051106850135002107382504713235034666785365831431504638006438871839135729604056138363313920710157744757399874067239110147657587500805483578011855679198834235003679806330756757116801941068811972507071753825216010255418729874591958826999603419956422814047591235671873919513230909156658525636878849264272694275851582375046497066667499515272610958799594262363630414987211336481045029285125265984137988492296300862088690801566542031161805649344592786052127771646340309147087737769651218487190101679392401036829425086214351081180272760314716053877965649742560164342247454306865272624725331286944058377402032251383298822665234180884610479796364071685026259667276103578471839820115100633825452961781390864255027313312068245728573689018114013998809013156132268273290005093976066406227467790621003135898286963127487023346956789598195411846677546132864379954775707067775457456848909928364365106337047524430688411473124471731048138172133392447318827203120758731343674404205010608593000767390281416139134980753880378270293532418562732227988916633158816408384192409592148241644110541405345156635774775142231821311102268599172595464223015518387135024558080220194246981917246794427087027044229165430736109208077139423199303228389037922704474393334790846672566534594127981565088421369117307279124193092992499575085329531593437897847072774368627297528148009786877921511767455003164672917649822292798555350233382326952330574189973093493748715421423453171266888718469009474535701248923511382989210034009273934148348300452829317896100852889528004582885437832347790648697241341726650117067196098121417503005532462264657063575677345223517069445694766365955410531623801308206579757425103297600323350763548272723453019856331443509452831913108328721192738717049960845784568278881800117275453693556922758062031961829270222861807043511786695440856611476509046949139450274736478332880601315287538005015347459915253230896332381028293635554429695203676346798705111374293662493893739513239760910308243443692599996464418541564919573535764243230833536851172506328365050532337613945802730389792277457427480458746321893456460067699189622630055658783117336703857489611114112670013889193936316047753233062473429635226479190641353082441215827063343943585768500920517590292991958449803287310633002529304250137901015804141697765418353904685117585302115299264125618665618664117274200830472647126106744742416800464630560264005497958525862683132894869482310369671241115006029629425394597323451713323003348986889586438122538116333106278883382721073909732150997356576993513644528256496252709237482436652586741696542828567609921119920559277255372280916084901425006663145474459909737492311598721020559882899468637452145133865073167369478790517712889095174221972094025036446741862612183182855624603733380582244647209772774652105026575662018044816270781432161783125906973191764886331879070514842202350179756527555610335409115494360467070536625914302552087435134810755759499781915836009873402921669451532695310067839736148648743274811654094639927783310705717234387430829190359068779177690776995662448826665918207949421504507656952370988352085188845776160082945518118545754141175767434895018137859104567375761457173672696694611478898027674929133433279934685905796012653731935847873782277048757035376931510952741561532626268328545660034559345036455269267970375588030307129583786813912419240912210707962225982610938978802441986486431241427153937433633068283037419113477668822280182323525117413331221664051798432071846918436482262847942624297024625354568778306337306600554817078045395446277867150021854253058433149991681185488756708233409274644861240523208419492333029277108945283642200799543351071757357005654664339000074190715566321893074849590861136076408706210291425609105078057227230027285617955679203772312690105902805186050110073764706258636803483188885088268403626236204613240860476094321044606303334120392484154893313061594278276689975453812410030258265428768148770068145140172538637766709048237723638663272341207036559460471294522595531321123570818218676298470827695138357339748016699992450579541862508395841581588975229442404233237740804039784773184209501687168646376924328052246035655463806452707705362789688242735743686084135749634391448054869173276853274528689563311878249362071037532020268689902538603366982859909914018038444571332217603067971929710599340761083202054106320380045660552092917635747244706522332131066859951137759889868788310784982395488033571279943561575678630398021135524259056253360872659804880962077756625021613986327111188806279485337250155709272840040017591064310047096742911217337794329305266317781766757523013947883166182724774754066122806924608989335253393900079115022667275121677018602423671647199695557372119811980348785741033427704853833470845212434858919972715444433068514123991152397197155277232337665085873419044484012444228672841473703802853389167966299032424654432387494178780658278155318577733825171594884300519066120458693269959110775298029035421121055617376761537674641996637129979059505192541231734230942230375562445247685866460124126949918031508107058419297318117867366414273502726691337584540694057570980781143814778063775202102227953439837866363562563791836395092714129641085694665288093697666801720878235496154728421424891663946927949033667696591463618339741108784270090594335835159094721529131380983735116672634611067272321969887585531905243302057412536632601893440595654241052339907577431727519015488953181080272357613921085298864757169859662178979795280839080194032635597397043883130870570974817800793674911128004576221246844921532536928903602341078868862712873384908570248649421016145567281370397631336435689610943970961934959692098045865221919841536561116900166587166236754980031364346186804378794564536125433778552564051960791961187658968265410968977078846649610712084190137954748834693546373419057174394103708331584132115987753596190909131042876332094181961283108356379183568078419167698293747852130582552641904022161034416384007794150688613404618784584115627271670323444463894808049259081031558954399181907015045561729444595343540623813754632208924376882913737517993739549353412923942047641408641170630808297503661869913690855761388308110585017149496408622845035159992735056753251420163681471846017788065291695168216528108062352602889796885629467076289735333954523068063831290477827919633471849131890453063833156779458002667289659780531939392592564796243228358775057157228486559436752366742942011527556405022942439629892050591617745387701951467947678857357512279385504199824038567057249748915759378958802951756400842654668702413855176334225663087119384606645685903846389219958287851466375533016024393211667779428860675772650676073323751787964883911672706857973001757595658539017623526549692069315714969821633176364769927079040837181930031864016604410325430547350832024144258459735683332957674243931707221033085018357395984684579597749193411957692751092358103703318519525970735049667888290286453345243316936402883291705734070738908110685014947514927461587486339645037194644329385892312841733000221101113934118123388401915142412639865246726621846613160691628706111031762273927626880405601182345232047570979564543021815340625546131021207349216740297379503962223020019153119104786813681800154791992183249949272167529953172751408127300239932555515277452491383010392548521311446548301185029510300076981280821617655817343079532572034061019246417975544388518067276947448775353509198516653801579208730238665509822815845828216583424691110661678637620472987617901693369875459844005949902767086606810343473678374305054038691559404385974219218498515749984715669364466488342276476986979386367279783743730290205497604664355759078259954859049384983904789020258423170703339053699391667171697268277075270944808304283863278218216580966647624280385208532994166157743481266847151657746572419920965048455376580933600885063614390697089063255863220681690759834245450278890387800925719176334230117680164731805733900086498499171432918782749250884629689743697893698228704833888462847431755254014899366162149200889416187472949328606364887706185073158056402259696504754479749369765128470948756368636358222313869525161921716715302394011261033845106976176911659161690085759886400074723214207163342319007321909609935570826514596158612459039085135087229546370186278108073140081859448242723187298462648637458830008636097072623481380778211639128195271173657523175847833737810601663607227158873877199211958704641441555098209292357615952952467888512775502704309269347807669744573019890646620860893766665581491942751154433121544649419953737767526226379163492543770646398607495106147891888230556266408721136358805106471301792878681903508852456825188593158396769029362774165237599838897780369002713271375118976502918615185950246375195359368589459837552246132797678286236205472265134397268886878015174513120882381985359104876401816244364982753470492401969085095047312909902999747920916139325673088891252953651526638664529847645749795498137098333261367244920529888823486048948155463355602632109696843713302488609991472313467217572453168362908268893509342622755397340919512662838478133937909780922255731562669813726760731633741872925622429138189330466004956920434699692252716676674620459013333564012144815352700660842023990799705188737487039575821152356563659688216977504492356973432414410751220634334712673213560704150755069624678960149397609580059809024240288672534687204773685151528226288694298002213390489924822436547783669113649211291654496582161433098313695769046181635029818108324093715989216737538208996414140033324022995297899656181286414689981324645484221282327738588533693051992595787165705793273962302368159477004400670230412523434526937978811584989523493528011372694742649129129577563259120881459773676642052090298776279764706109501576516132067807225398933303590789782844932343629005765056294645794429295141422999378761579599567903983931268036318455957814602976549363368667850632278215453315525619611466062888803917227300774976484725522664279934761353496763733721735038498598536606226170350261104912605806605306576308195462780038621043307093831368851782623854809809896584090527776328917945767187002350742941099752947827729772093255848414087022861266529829666073637392000920891094712769178673341656052457477599308375204753127398697395076573402806681590982332633489321383286866643412799787699685521403110252638936351981194455701269687593381282591417267808393232431640751351442429791854095413114425548291758514597077228513926215904233933777538124580899889122063851741339480144268916835924833744044239767125624003753857122305864902379023110227915605223258426804545369382003785949346541850336607662910700125557576728290606691724162675307730798999425167506796466089663139449606785232447455728611874773028582072610164651939703554981016256925303325707596836495961185788236111694588855244774496393697091412729395989319843922073006850508713167241272175125785529104983953856588693960476493805883124776589785220999944613869429109453378671931702358231719965818726856566329026345252047319961328576382877729800039554393294812524460045755118857494752895294124840963501607184711666254284262895217026286913872911491711436723086729352607376182511769950812751395929910963606508668225517557083218993928658841748858812334174036033352424414998135191805055154317312712849200643674627844569255050522997095417307660598576792904281057321656196529296667711344707368346501688844139162616763623449964325707288324648316885100429359109657946612581517837454577467131343444396738582054017361765876812611531240195859402113979900467264310920142466510478801484206949988003031105614431889434216047669364287768891727742145356558187892967701139997941807087892598511650930375680777490525268991306977281582997460133565097081945828632273314633335534966367761091745686772690814222169773748248170674386530979442150763246677916134630298723001841049472471636927446338026956158256821525745348855727998609367402164054723485317259765420844693049123273243808029381888389033616972120547349038804127533648869948068900413718554524567510387075751867313460049593173082209053996631979070869226315637704037398025616777253314773442156791366108365556904915127342429854214719538603690791734457583138466811366100264775317776804292537203435477186569850217639976620871894907061519075855590721354397052363514044897554653901690329033887872817530167387435246042598087565195138178733913911789126044009354338625162072533329864306012579762328909219259600971395354320043586381738393585559462661338518097773868211297645571691719872614354222706836445004257169546295373018098948725271955381498330948408938796711705792318443832176287710785488646011057255247002532391853305133032796899190295596783279534664832578571186034888799716833732401107639709495544429639337708900412311127280562138958707604847741259543639584529980219296105000480115949894897111349980639686737847370832229535414213463645651114265700361527427021099080756944741014886393333788526124602557584355760119641504651232998377179651163619352624076197437587441063854042427945018919811551835457811215698862665483451926791366835293522914440902094160693472758371182018046134534913777672558775030593493784198424449287594739863928359410138172255489780511073587424192266604735984904360599991148873527470341544680521422309653686507543355824467141950958699645825156759158159431766311277871137068278486174133229899629292113506558659970599186601451197771589218120149349564615086329465651452854077531366122164495173632995367703854526568366529564135343640042748356717751941778969968092260438582648088896827739496105496160615605934113923185563163560621165565290686503371874140204721274096546584382075746183398770467213233211739751387794912545754635269059542294076478655551013058659183496536211894636750157327096460540612745242134720088124995114375151830843298481034995290547643117671166892902300445409223099085787060081562654144393984304150565571177908821112811623669466867019616960929190411107897078169226546926827469595195301773554164233804808764629974561408847598333535254057615190112266184027254303280867673966922758564955641504652060636715905893101341650618671538044050652711920408296486464033554258682633968931985165030415029075950036898299270986306893589649634436447844228819542145741379621318671976206533764458930705843224957476501318096242461766191985775531308691732004855076030550465787152806150252534705888367976510759888081914769265969753334940245890987782763374165906170252028598373590476926916207321306509706861789465100269194605138612951033265315859253844162102580422600708426392526411557052276153998158913602468540227773291676262720565916790599556165753530971677312050178816018786664093935076008624822258244326157301061339647400694955365487334938779040557508233731168006828513076587151327349595432345370264867550436734116955849150065057419372682663135936922634391825983183127038198211775640382284676279266306567947052151971948749597196291277430213682053304600892424255672367857458467322015965129544013653282081052908364811085778977718959012510866643043567378767210708121598488068929209161741790826811784425923844948892471147059784871055413179232517173508420500670064526373987418313195148070106379601442342628920388265787309328190185346071000111217506730273244799656159818907064324279781377089243716703127185215159081365914651654883458624102052176693558389554313974933570037482908818440388093103945599172276173020887996565636433756012858855289818034163886649680631870603837953477310809739295186799315632567060272235454157880456490200074993387713134294008629174098573134344393209432928645672691726573084273099404506245747218870186427791711443268623523008548643324868943029028714035496978732026562387167182878850612904661869276235267883791386682747572626271039742274635839886597163546591095279029124236223540292637792264493461208441702099559722803671884363530071063631165317745401222051885623230384722392213448327675190182950044078522679423087261571322073059980293968169131621218376280178502765799422342003931090633137423895064420687409122428341178444751568739868390922268716333969680766412514182912839605897101731815323564606608327157703080277530091700973672364156921961432698310163719472528074890215426530331229889463921340735187494995683433953081037689946286969722089547449046208286469610368765656829874666740472275629558089733160092128008052082043472927861663753046587611292880189252323242553462708021722726830494674872060450670399338846518238401711904259303467087456756177376619059024160245464139494272441799253034033424774601806732023446975400745004811864770691334019217852267979761531899703436983198102202936195233450329421665698204974934786845837697737050687577557750204677846023972010896455472094767595661779287474061099930844569247905243723527332557486017782756891373129623041621478818042763207710433490275241681221735815171416585108361894850672001524316709836444382547325272114491994028486776927742921738263623500105376343529000198823785694331649567927824677936833388220299678704940374171647929412111526613805612471865400735319795594317172770618849190960362433519046154832969463483113113294960292693363552255390864500587543577028536742772872877461849242037007317592296867482413717841862268833493790057335339512635516681192267648945276447760294122724518571021312654425568927216407760499741547905959052964886445817844962859659338495941426587566042772416911110124426322991209608039974929632019268802867534862363597498776481070271263963633654464911994905754659650336952541742478368155716687846590948003492127844029891022649632429397310567147067569398218400897281850315974087679222319599020107581788256879568559671931467171643628636057250361110162202961106351889785309680734557360026171813463570364532157645888155374253822647340947974650323967002590836813202099294432541411313346372605774344635591895973982513116409083979138813528851396528934834134409720163043301105738323733989081734640297004271078269244347382313029107143679323536067612484950857158685669392133301642679714772326874551742399091312863142380722127326390376990545337229260169344980689330606494633980368646420821584379515128594857338775294463203662778515017652024605949610179860380263124748233074566527804131506118101467356329268158451157816250753675502153471487691766381316336148232345323895587946670084287785043173719883678809823869377946583860439395894695548902839349343222496442774028050181854790325652908413019133038516561393564271893570533897507479953742813274738885732041907590737539792481323033194436521006706719057941546294219628511553769473821704872566608193650809797212649844211806541463451099320718497666129043130214310615403671681652383629585942878034197416714245435561594103200172694066744732479577192853049123278107703002009411296385709761424955036951192191003927700565380136500350340382268751785060356729900084590392479338917689854963903951201256457439555848047740954134258353412846057258467223907593766199340950647017000642409500354424968147822999977656375012976395186790004108127973556656773042353730535524909796811421436088244618417433800750730066239417934806247308033754960046272854064757356216095736103136407472161264465151020130718023503992794940092512081636779269363414714550500602844337745402435547180538809202475027092646986862243144861296996115392076821544265340426459501874127190284236165558550292095495547481869643295142296461293356471402529355598073516139253203967597138998025862638162456624616756077420843301467264030168220803880081072037511807755396316032803449738988656560463143266112144739782312251273314617771318280970309843118359688197015521075131386072244464254837443093207891349149635622564986060136089103923157190611282578912431677639282731958934079842603108092549663895777578299661018038659310738758384924471273011916014311192565022161238319006896951701500291477934538439119017427003044988203041601911377198418772280253087506938039510427532161036094456350368899513357399272824645217792182839040276642783852861253764730164976545188072098201209744480794441496436605798435403689523971593193425623224241214098407064521899635062124561378905335872568365673191063582396107716660815848587862425405346624194216285113689355813976623102241817686613004577262517569331465774456986032690354827458844550927029222028112466243540397258980892062352561932183598155595331115384355630652183247429964722449908139813065194686785613442745660162203604752503713670661853265076778625533438802449205846685485900155506989497161593131851998229627410384890982270313254709662294835940041916959656378812497038245962209076761162944714656349374107984740660896787807265992793177497479072779071790597378973512033491928624953624030840459308382316751790018541322661307652559704613559388384861686833808926486133756306609533226843899164560992822095401729794992111408070421512236712518861117552182920311369818926052492288819039011985772441494199904328945213378967363120700787624096515648859602671219426842306566513364080077771812570123098981119475309332401427770847340323204549698477410420307332977240379296590156443058260810950033830866176887587406087443958306658903455448898182669346824893141166088658273525707414579284751858589802691782860724463322673883460857077780418074506644234358115460682485620184817852417295259492858301248570912923676990932425858141283421056706509794724424295536096845350366345973304982803219915864333450043297834001570719450592918220872005744594394818873511526002738190256077469404851283951170321560493255891817006157896477071315933452780956068904104613027297967892644630032416317875773243272157759629749460912996890095006680992990970703467424959715557689604681581475390134525715680225007617453798739498123858610629741210700548435166967607798826342959064126888021862578828611841726322167070442372574568618247430042246573073242702879384216956480019500278941712838322522110033676658573308152986194310773912815829683663969579377702730938273693576373714660421611228354417483434503352512699733079262088079598897836397812167098772891407459428240596153016216175427634472824496681951476799318521578925391590880512630244144794555263173085126367318136042992731232980956702233262619819245721851899351656761342306986517707659389214837025088144442374513767452997542057220255794358387721340809731334707443552068950416818194292600133615028937207722286555428048753105392963169409127397305898949756141985579330878883175489388110402715499831713748764463956719288368461218756074164899762879878399159780551885776529901606834061115310732772922934259099017183437376074559128857789196681955717998786523558591599567128437349503646837558529063264682788520172958105151801105102499765964871569856343252235429973592177683909773967084599057708398112083702464294408431409360264451227121345364268554995029673940884377651802953554530451718211177997783310092710524203077046390679710324708519221555581984907922597344810971489308756466073871686686132258672831094687875013260237715584676429084712645669573383492476360016293796747811631690880612574660596781076933203220858149780968043964800405831038990800853742678819207732208337811041499201765465098598096954058551215683365655881858598355245526680935202226504047060857701920250616417892633688229736995686196051023238859680127349264129810065791997450903918159074237047369826302450578258944967507251195189527595364845446222552404565786753301774258191776543587867218428661897260688315473444014795550259497907086858376412661845511044820997276443673673714487057548423251737019141014722335488638909509978382258891218538518769059850808583611027432255420026457527622519395310720884418471341533242290074064276009493361657956388174565239642061527935907618121470844144310016742550234197926320275338885374233226758079159178463411429377056859292560859662923504758890325063618917932047679817390772897447877617320381851710666190262413207504297668376271064473283872098939487485218198612945467796025362842411159630200862304346878768274773479002891584447312214305931295578497442239166712678395423307106141268667040470927659081066121689173354506073713698395440553303565679421067445386942817478603198403382847781488433476903300456900077197121274335217457957679573496307548927848146181223495609213680097039195704678115901384281753739591453279594349694415418246014467397248580527920622191884989115210546762827007104728328181295608992090154344759499203479272160494764456909481384139629659784406189639488255860821991706493748030117117208235471503455537061467228891443151768739619217908812352619446687135486047556063756244938879448609826754346507468561467862205731416929296726199360455996419401790263883845601678381304692894377895148817246712372483272857016667527423757819578304654682197758793727638749527094933405212226838204109697990909152419447126486197387556055976937231147273254568414912985902250510490364376438569156013236255987264186975541613762792669072722118328504672560312361070929385075093007304145531405838957171805008611008957827542612745891394344944240458981738951831712959659451612057086537692206765291566641947463235220564175896609248231855038997564061207150467774674381098065959990715239760631080844711586644811132318890261940149258574176250740888297181874929532486225196611664396209945263795433186362988170119710897119567839618691309922928169356298050774873196932406907445572059483663304164967595385182684417395693501045437410974095904947200519968426684202437459973481507477692082420300778681283026878145310116885212535384925584840971085674680823427940317002384276525208812454255214828480812497473735417411560986258735733447124315148487640138684227579445511507920009955044221835089363451857363909806157175488186613283182645648589294586904125536187267834119859965291539652869819793863921024713060654917818407010658326187452089360314488028814846515123864412755457940009226951920397533189609517459649820158598446717408113743714206075639647025659483053031503440522360830936709966269461503330273858407685556660032023847696315277965634340759071101070441272830674956791419948837483342312494818757120994474519908843786256877912095641388147445735223533916671173198909792673201394892454627206559853874314423131329062540086341526526510488298995182278937869006632802844352599687654823867258183958020454019646883504321192540973811818213542351319594358251891647127730354762342020061036527781240542327881859174377887952708705399112461461966069663744382861441243334370462462990866465141301618803506735044703758904017090438490940304761809803614662270450500463862732082421344021301520091629122698640170088265335083356831803788673354187814258297954606648368913829831666196059002033100278585769149079505115357308010394747145987305904135549764974639075228686639890507429507302617344370529973860511025163724335766467913846338802309067365459282043604095267093164729620792244495627111403509307686631141721688949287994528801345797410356520444782214494366913899808382825579433300123768648288339137085793875700181646607836289140414358380607619638725551184126069840093022386022241799624209210204883813476215921012542646757317577823491158710280264400017403352994883391800073854695642215638873678662355303778978289468140166546761412747126191581174149189242091510827601388180847627536405557579100414445280843994738619807443537111014012641801528498398665136162758771236193288708704178474107530403058408751204594666227226166960855102491131445555680686388026110955312044036963277430840665922890089474953085083774340445103711258709722270657489282689344620592883782041079491624828059766217917852116191568696356219001038631834082571682353212770919483557903850512472926706940280179142300717971330245885709335298396897011258569755403299160108598963876383044203136709976148614321100073447922640464397629662086293079899481507008999508108054675301490535679619591822242787517819085975079863398890490290953475969506435131034026716982662663574407996292213252882761919377469826135990682679720244169843633559520614442757773164499536922704428899869432963177244199533673576549415329912933206291848305905087359888356618755634147266555483038344453490800241338357704481155279995866928178203665749024386853756766677825641595625573321407592567439851445751214549286967784778490149850924973414517613083362381625388602871108030163918594173900600654880178176120081359606455574060869289730060854817662867559801779849948190668618971404294608444593287750625607593869247084333892400250986242466260754516687543490859600329357400584733060163345800591032008512611793627615925227275400462390566286899074262037480184094972465896835125136375934065349817005183607901042842859514287888884717074095885447913185623793952363213097207520099964180361417294502252215937577746832200101077649231441236741748432540800945435884896287424440589817025920940758718815240994717798239374146539026834985263051688804008190511302009344125812161363239652019853002847659303230009684345923595814401009120819661012323479419489802010522175502383633352109092664895816615170563784267647045891283626104520348388012122253996023099633946934487511465443696307851169054403880568196618649826348930057356841189350655335135324003401576534347654226005883629080132521240248684208700014388359808420700294753287509770881182107311505178435407818308383414393231254674426274276717479711667018067275748396605251489847072892340702975426566000216983676398547255342283022768345376288941188472411098750374194435008783009753225397815264113527610459888961145936547336495055397911269031102930856897987178723537484164493033138530902360761425602897248242495347001380173140929617782960757156952359648680552685245087872417031235873980860647853024147207918064173637255709928383571466963070717404465658354669791893757934972181868716219916573078786535358459203152916408186468264443424357095813004503818918495453273207612493511165595100306690790972511225627114800146256910584244175247274344090928115120954465340956886017085792820790810657239731614975832731590258291641587803165919542709755327818323790622811798963182861233874282158929920239942028896386165388401621626372510291633204096126345129918273578981876162229689921121119569689631843936978866492457916331368713400609817351135072145736187576395714782828909456148515339263409211863004542073187605824556854849764220850663100612289311385528122291703240253320468375950882144087349727948657960334413731656966340088942362586509204229520987590011430392022395823059576899300887473652206293533514142197790958384818017373892401420749996765875641128493546328366824180922506232114443630875866668047438175140838162670806633702895388954573821778587381411618837155946130122466917304950524762966110183728734817290232386304707340139952728802698847158022018569860212769996875816298631259632964287615121217007316650824923059859957293662497605308054420422207470492451406793412915752220346648438016824791850331302500922239833929658635700683791930051997504400687250988421875415718314570590334551531687175525131268962201418217950323765858461006810650336343965392138295062517899592379404070196577039715578619709512995139558543136029479566994008374675573252677521204650936138989477259624873050224880354623185109699534030129302005878282338842558223164822849023100486713891089177602173892536220859809697866660060103232715401755264975763486961905638595626625387757753695439282900730012041425255794313808947648532022444223464461101286990347697302812811391340912470988211490673936392635524913149380141656731629235811876776681483584024217648756475895042656218358042784056765896734699160654165686139693059589480251420856148627863721785876502654472183599233484995397424610751353051721893436333947051363811101639744627016057826288185445993139812452694906259032403256459328836769291829155232688768137962361039081924608828222094231858672893635554127364025234955682066714218914345351213417207788307453649848786912300859494084678696309567469265296362165198459600579029704545356478200317856896101282180668985873907084168937120492783431231524473223860106803447441956003638560835541737156846040749111107318242411375010209299993924405560792912667890624781121322432427355750569211421470505763748816122551921342364702168352320303153465615779295592137937287494841336538980880027968892201081852611124702720833391630566844988593946309091343034289164912964510408664252220149745542774422026580721550461121136838196917740919742152289629530655908510356075878425954125863243933849023922285389289005827671385738579165140556177635326354790382947711049754424386023592536490578650811069416183585665178370001200071446520318843169039408528760235265210018823611654432696286339164963002449423678021468836830152888580890755123830799627502232632098481718463302327478213469129198173865279981133620752197032502057581324227828879648641383492505274152525380625590323199498275745035363192106407171186872421788907286298413244587815610984461133539529986999374131856864060739026456173597516124942276010478161944030227864044855288591791873439221580794188312972330377984791087639804176649810588734731980818416608232397922129750823349293545542942460127733906467794892045395818952253211776740452214600764094045369255631041787597251746385721236329085655199970193846744649631296336267187067055642428446234905722516638664130945496190398149242697331034830808922722146768964970648674797957612590263134084318695518332639730670935674039339447358674891908809188085368920437252751891694355576575112769948324276947247917170273532369142659025359818871103053654843833317241225486735163803384682082177423609891828687457311940423418960982793969523786564087916776544750018919382947370969682820167303161740837077121355214794141673116977424207679721221882338892628451713468078347549737598331739460755618496489133942674335209063866220494712419091214618205644850259250475877746531557218200093016016990970903570011208171467527208819299870440711017308310717862489445554919472256654843807258526251170874830888291462924488677503386476925953170076274140816585341677622810396764879178884936612293269512519508382751826158841614588841163113192606172046400806777948126677703573546164677717468650607814102136386108105240114492224697744361770905571775032693580005472956362649063564251589534290122903921072301252194098676119274207913296752961461488853851532350198457718698485692388684815202355571771474940477478075751263941333695112303781931585127015903712323796202072542837341311643936227190200268555652955123238664287515417799644263814588343967862842390934938047818522894440954470323930081950565305241164427852996875616888039340991145755339207037341450314666402581105826574467844519445478064122890933134175344952591026898173231725826827412578207576610581045246601939556903479949657684012006365504560949193835739645158237695878033485855361423849665464268299478592413050322734253410132089355516747598592100748362674678017477933048623548675880039053246606169351496737208777617173622743411986871705021616449893686731515045478332440143435449092852634038921257744174385346736034355710421800605730056921782256734086713593389738797460564193012555648138632461450483491978480442936083286472265170212404462246370099863100631228461001762174011180702083325522879258283698535344481925474234099083528679646899925442714963947569583082780237378065101833339073476760640002157601955421006286807515203182837961528818268203659944129316469272158676648146898768994838147381299277711451953947968572719741019774706763334126201753893538698095962835681668692529381794012297470204865102894668075184636959754970173283892748976211828999862659077258070880822914466195193692109804583792020963064508410376218276012816890143534373736523540803858065606283094175305596543687392977188391292533897843104666752696935708478961663352290295091860724367523918137477636370828917387219871033447118614513096499814919209041948013156382659355701894708149889702901569805351682930566278119486435733055244332896113051295803282338947793763023374826077447025471474694704195234083107632453388224184513422571380836517402134319047594605363387010964184584924885646882283708450772524601822960001674930851986927925752515045510370618227839874974527760477028014151585602066496579499608306987811346104485411608519513150260060815345452587542392137559024494382445120835516122799303591472359738143461072794968498118937183727755203749848548409788377043389038885635511513499858481139249290841159822300920320571804263801407797583038730687830290202300021628752480007260309963976946558599680695516993749761332229240051896058375946724236970307479439677015888437345536965987531483780901162158842322011074560446889672697342620119214258651160996875567575361856588567492736233291115336715439205733659867474801583816161260754425374100082498270627124542375685618234199724228585885456693575054114500607842402496327829542768678555179655032813172631160109466743006464103764451380793398166278960934281662319131178164058263567125691452720015895638089234381925763663654995016437402279317228879449017056499871906157232465732935614008346824310359124565297863862942253822859877068915780533889565541866456314276426265033133642667681204072562477519902997113597145162643913631298810369927166871063134903974422062133759018562416705759860340961929641182836585076075937118573467890898547592826149949658097815270004269844391491849287458043659123613789939458753257797532511578164288161297393224886424126516880964037711588566947928109846764623165021909635115263790719953981567782353984686150547391250119665203034396282214615256747143973662162650670126533510275734510313624142179439920402451517070510777887579251299426186209798269215815616084703607261813180684036169273289980766042414366539949582882120640783815468846620856555425530754912188492638337118349564801436947412488073608080766667011008745723658474772131782377719785212601193078195047410137035113688771921736946915516077881446457049976933850497025704463612188898947807861005703370532837226439211701554528423729460769782992299341463688658289604317823189302385627272888793037048704378405451588966067887775620203223256215457309814016442164057139410293197568328502843962675654633093324542923590134677341966017069171692904164105313095533786555329189114794753974666729097577954612033769568776051016122223760624704534976235305934421109593757584548606500656054878370494313153045966175389660395157078880971936217704846186813189850470162371158519476683261152254168815620234717572736204927720783403155195297416137207348445695631323348406291963516582771516211423819598272264885315857534172980863410172902598088743742004986880137221874823652892761313541184516505809092433713777286551416363548966293479789204722540039865967047850362723242201092260636146793709489313688945523734641583136428673234448181812613282455621713603098618351640618139679362779931729003975216937688838536124139673042449994247899091892225262470419594292877587958278807403757729604516886388533060219905787782731734329010901920937375955963495585873359630514771022616798049612382698565377501917272918210391401384627810404892914241237839899975024039989216651676201958950287962217906063028836066767177327227820711307660670977504660020309892060018146046942175910382721503502532916012712182135210832068503471459220007369833547537632211427907359838463674156674150586399414703164108918023568516346974885358196638679719753799184345693450059679752194752453321283825318387964653051599229915509857122875362715406259303549705220144271061406488583614742814628499569212000727108899803855672614859511045155156457177691497725828034519707572704570255816095809900128933603120771925831601823741897485404373593378286194371401382843490434466750059935732884952992090751162481123863412517903205675265581250289652908162972625468329294487981430116755695941923327931323788988879028402939204346672925266942348636237409530741132264727500884579266349157440312696787855978117324433283167181558843576537511633636276936918216431267705381940639028722412301337995813931385926219523664561999404390440766035852186825593186001154235025930189048000231612670795272959661061665455631043652524360251132372885335022120104451262506729778266379798843265100532827301196059733285673867172829255806609833136747261988736308203599171041459781240193705925256201619039990964951538451038497849793290414836607952966997495875585562265136902000686970336575281557119452974626145079990020060547918664457095652259560700451708048318167231050058911079502466515905081591370811228938387756233263765750366968869393135334630564325124935116337116069110562247427575386661330709917108133126569274614018317717786013126299836552874242239430852931531880902932415377607153403953915670188405809974692288232498311554576462464101764175404548067130976155951587644034317215002927799146839311972042812871072922950881655228888602694418845733050523486260840498352221563103396364180489992827511319677786317673512916735175150366756265514280870467066605732266889536452677057398727158721475586911303442207987030972817281387164401621079146535739936565883224424344280073305810271622766995753788357261965274259304043096338192028949258212106164407260778961643459827470386681272698460737591395217058703419165191499417659914968192376804636302545873654152426320143345609421708557859493518002024883001449185252555035358630360800883118320217725159122236375544091335656002464194343027099161996824880765056434728461786104426798980517924848871861440432054294352873415612367957305927627224787589286883783945533014261764827747844870919031062070329592972271039787473125789173644654935997533789316098084142169216247869568064061764531470614657963718528203841201894800129020386470170157830521370131304891374965654467142944808138958653055832749441580752457195221496537223291215326272692725659840093908230471959384963872033109537428138379412298216218081048082915845571765446636743336510263855223350016188908974604777876751093842715395004353562304259111939235266277654790336523972988923806957469906068769741138188042778120093637417390721381117835264596443007789195639704981717810665135348250339621401011509223846019938501374602378900344912096631124880585320601545898018602037587480612566339294313401188067761166725792054949151365055788169651332946475954633874306454034703821811824748138783379788653332702050447350245334756217393081490811210428178530986099465053761556750146752141658920750002425073268013432565065790058805568395394756088661164996751467346872157126589965008221373895507829491277161949150567654962815523282476295705700335000539423235483783532940278531702513642544555573247690573304244083445782496250864158145141566514289876165691007555754895773762219559346760708098573830145496808192164846221356512532113261152654937014806980614946801019627849247739278516651140970664472632170326097082225767514584794749475063816762318418308560820806148095176186343073568033753848655309478223509197092461440046521388982853045333816612773333283460810134600114957799535979179640750886454284376295336834349579180678131002248335587473538279836869901254372774703885185522009191552054559070271251495723996517166358390496958352727872591094053754262827672140662688811059461792009873620174559207263341632189789593231623058350741841456887277317626191031837137369974648255436027852802151409165582589397324162612113503905599972101066050260726533714221432084391222868520894530449016892138433866549914135409669693540597699463247098041281309054808432905626253273931277354718924555899813506143931580871070527531410110403353730821876414156761291836243542509343002169120503897950445587013482918916504154843173758761441617597020737425035445329566811573845606629307123460436057901195965090040964018762152281181311571731988461415870995751065990175033542845558188331408257466841518260914372417785118950602191209740070894682329808998435313258406853168416556997566949896860724122108216466758513899332605622376141179473149964185159368390665366362249832639739204353034813799098600714755178310149506778358554393459249467230212622710483007217945620108854557932841680793493583014897595934760344544731598809162814772512248290916065370668564266911066544348375239474872188616209453421472945944618168558547660961029014809195973032648597411883067404386888159071474489088267131307922553118862949917278070289806241535287147941213968800065253379329768429416588231126033294463367085439042059473951268758739163961619890609854537929052893348514263694970943627343715822940222445875737668411703952486407633642391490025252122311934594132330253205270764528189452923278234020365570707518769385042543494252699523469928987904947028611709235568625907763645084963031309617312893459569237087672201345409875287556004887460711185535753899291710563140144665543429814693028282603919307899177965352354068414087262925239049402291082954764276045992146359140816500040764821946930162877973819346920791937877610426726918292270427765375864575629229723030098984816540917335054221883288749002377377234936463121826730437288277191866296951880836646899036274403030336083200545279323680825780070305855726034388438931117348176228063820713865672222053745986295853791665954968505020462549380273266772017181380055320808153596104336420131345681727934878100859179740136032075932803229317600996935603453990656802895783722905150260831304414670930811879701516279279266206906637118228387862963505018860940937316854711043922261738426226217377397883805921495539408899763874034625763088209013020579311095356449712651030240685783218083742108395968806427816407611682179537018100510962197708753057948009151264602956312053768330782476303496879092518342200651241431495295483199567253234647114144093956795112103846170857846884940257709368731182505355626176554395886049833227373815663693514334727745298718452374884774460707561088655166694235921640783869618440331848151299601401253744913547926763763993249224892608113138204437999052069505714253604004970643977504422761173422801066066695693106563657577850042065882889706969595747147838867068586493661172537044979343754438911433369376993692704043451923190765152821796538249637375988356532448757766865711351449871605136171423701474251524485970355660399341300787451042744742719253045016177581294472138668973571135453488818496334342542071119111110014368086877935098717522202783938727854422322968338421127889196565447763060105997416600615200582160911380875277760621512494685918214442028521263195384401627254563413391665824465052064477105965849104326785324172896952291906221415840718817284881723738157367859543636116312414669859929785057200646694086769298190494977920993319216349507881633565200742774579998117906721365687477117008418656118650763902133191159532483458198050861025394823754139224791312003825167415907817325150499927562801389611408654669660413714550062329630033172972693570019040365004321326275954255100023775780799444374156015292168441484975014741409095660807616341477318616319029540782630508274208407367692795024175931912217817363609826163134385778184993810032847871777531681970660255147217316491743105499871218547134610875394354533689710077417897663052650406624457826568970095668927985499590567291598646204607632074201972320094211150108534176494990985897300507078885488006304109167003374207233154430902177876390507794470947202734487110533395849587643480266734066576860818485844023130015577382068902426196595729957065211896450938105447269020414236661101602924032038712441082836044602766681580663285722429443305680010551072566576847276677694816880889169347977855992737116349193266151865013894811839684111046771962776107812489417280579469250545739881786963130654152154639441580734937504457590063996712068303960025528337021653519725846913473533447161393724735805465693316166030148612152444411015956925479594425162198054872527185866878386586860801665854098971370643838160819745742715212443290507429478700084814435990097606564094471502577641337112543283134589294607733165665873850422265026861331110796323213448562782802991581525188009869464461781327191728554848856126920715483329815342206419513641364847164913948124557335991961712699644176334543492698917178214831539318077774575275354929796320479030205406048526567526688973680018859400094045200111067647037256176320265277473487322075938866218420858485210292076943064094777569398977203072804172971531595093445504264292387765091706702872968380800632440789668193060005499734074720135289802931282089751764372235967723909317706260253229108661302265828164098539787233683780975279588927448806352141130319241199380973727603197142557236754034550514979071314693978487881963747997605257477075040577485916873181156862754574681038258591196604268297997434449263043276448500418270436712838124463337128210771916958320184189879351655214615482464361356162351609987063903750903079669973652186193083741792876151961530498243720522191421710692547286938112324267950792256384149316427679381389914811723443038612531095175347442026652910248609821482623601452849093455151441246615740939693455141490423349956196315143045860437166567974126866824821607486067971902986968531137464845586092877507793090178189465946139106731929104546635614681115364866498536045342657425311984840243162054572872034422519153520510693930043409381123695661785943680488908778928729452472561079631246028251474681298723128914882342368817273088794919269141378212174276044451762383931681598927822652838478461905958101437709454408957933030097991740178620805824758253297097287573452049346553572959466238850538666600323358456447185037340547501128541512660116984681624538210534436712761173384814708742664236083249450222630201349704942799849214741795663337311676873043981017493971504218647963024370821696554692600809031660953429103776107466001049825167587980591378497622672228656875646039108084843114144608854465223942945602785713808486226904927625369948530898984677242596153881451415731060366204148293633888575184978325257461110737307494625674901518310978338677475989600919112079200833992394445668267662350691974928168514952136648150839956421971640151215055628060270242740522668847237330869304518872366357702145626059740577858096222540075010099466909938363819205633145473278750973756453779681931341938011142543497928103515047319905881545983208091944604009898352031880090844206081497329979115122651362166356193835074020576227626868186824909812808254190629105501113117518637700272890340930541516755829605206372212908360586861864766525366974768574425778524631544606229073369862797907973704822934965010078093256783128354529698169855994030840474058756243239695718904750303431892070647604190643464759178078202293547001491680092845990743210516654412201570517939092279623308079382065704711273316435047940933355467647098757366904527230381070627294350139127535681483138335340489216699679162697511465518211925196121376755674769603850473347593282934382045482097861438992580012017692583223111117568550480717696603254018275260536831453225485233026788510063830476677107577882488194145790340707496009568996610619205386968893833301524468397138186361902533632178673151451309833148895116392576225496165556095728106253265119255679732189511110033265324913775456329629163977271788738243965274312943187503203823507041667641614565231907406025945477459153498915846230328581717212185489054674786703163862956096248646409599061631335320875425024184431416407401879454920218074288282342763045203236150631239513790431776205994810769545296841925199815085000833683122570392290014688096141632280986578402498680161377242231375911677798402896889724435854696074912691696357691720382367455602381566476630989205056983325980447155023975334846816419917481858935139953019151753384850967703647552198849881175409362342242231559381080936247359830627984773908608684877526360355591123603852132424185886909601085753479104108129416707960148864421850564371897478095012491280888889494830055373083079083489828273447326568638541849657308135652810314315755961486764565527697530624507358830493628458283860442561450757155602825245780624956776757147524847287162406091993858368892432329971690538797046866910711861932020992311737264338645724169961944072149393069817053636362992279123568965951204031520860724297082324475713993360999619671349145268372903227952543614223928874314394360289464284189088609453070933490305467039523053127506317509384359083608773469304839964452607864736930892222903662552188134478687112543047673452494451034051275476648660638310454385299928694942842264835063982641323026800348430827876922425955429997213312580016008778311697189255257294881374371324222942635171179682609068715272491686097888847071408013095512863954949555199625453008449311297080002900957300156877004528615999996305446678141429528647135911797319913715391131064741500779424419922055520892404995280728548428893760778811283248217392368115359611252301737275569165884038272383806033252886035560055868743884092875115245431954783675818183859785823083591605003415704623307278638745183228672546938895018931462502238161037221497338603071911362077812514047311299644664945962146317671586676737286402307701327765083248873850833048262986480094903206833086244942642339038588286749053569057096126352005359796268113900091929989455462759325254480396435578102991015885011469638610635978546163252768325863517311233751840560398734696881734117051735613720325456899028412611422524385008273115434301637864483974889331921844177019260757347254403710179949775664057787641535726486866495805850656708574837496853198714907237976325028888034212219557720322319043432153905022491991300751497883734708109382790396976858715801860130615144304438776048490080361358684300499632445634432567081534926972112319076554434012396567999370032590637363029039012048535086934448998652567594632985467407509937258098169330455246871209451252422539679846452365173351693850859277010790458909900162302343111203058949413052092232953901237320275864795457714970956720492459998559260100604931515674060172770302957981531982717310343801672079687476756795326060441317215226147902406888975904665868281614558872150120589030129400528508128600941931014934938768988664279428877068509363512612649617165966365121761616937354316240735122222591264607633605505503026353149936755268697432773468205065356421216314557118091419960969094626249123991725816936947990978011199720439582460881117820534606375527947360215336389696908963676776544548347428805452059229214133116695248041389443482564387326433095069277932710722689958074798558104325158540305320336312408880386984787066104534183766584198589564154892643546201361548565927960884464067578216934951546887709474399596845850174399907864691007105163985506789483878460861315823332669129657798350549600008932737663627294787040963643116047944110559526384514020659156795331281865766195244629162560478887345212314478542002520833092401093039880278230990954233721662927520478851377207591925810316991242244418624574555320324456248610208439304004253204709065324569669198602418347022568778464578528637788628688626201922381548062618211953079278086664756253199985588839413718390013013141990137696893509626114612088536252509273641737698128781021421798892813747161479907607492624264485763190727625879487811108046159375209032234802947658375816546514136664377547357460884714303946061264862587888668993526116572437787389701907672488147674530055126763148160036017482051258052455619933000990696480994925945495232752797647367807148360298326324270561496676227645892767804827571957195571374761269652808493473315110137188515588082364096936914204642443570701014374023578062930255396114560822367681397496377909422910821424910858750779543395369996394800120004541351804321557158102993976013536507241554402727059699674625100951962581341367827882183329452888956147992818785277361588302385610443856650380844375855244887857478759748471301330520896703944490854296807036277955339696950577996768425274198968287762155035491704937522221060641982935351645223824145807377291278223611966844529254453561614862124522559819114751364727181996464815853333402473486874373841767312184552088220105082787440542675529877739245053031341826952214803543408372723399789119070555112922343777669512084425923198733634263230301636184333878767396318976759097906348694431790237481965909692526096388653162461260876064690080996312717003677534196167069679959055778974733218953141018925322881425929193198546439852410563001238352134536160963675677170348836714262299210065101827718154088231243849893401533640687480688944555249600896101995329949757072154756110815014607568366173379793312883384698071112560289917579511363685251099552073223726476896660423710157211028424751340098990229782243960753395575630904378188023060897217107197241914446711878920935890829608702225295283476817794696357663485376697941597128151152573133316522285437124257568149700549979753403744257284980379437804590071999591351715310525554426429795034320557403305744490833054910869284450864035313365615919041767070664394603012862956751522302016710018947061808617054489731748668622174087195206959604258966657416036202989914810275901452177289395655854989431281491545975059606675381007786151414991268116001149017248118525998413240079441626019750861001317233783188660015751756561627742362395125071795481014540888115749234584526347283588710268572509662400831789354729901631400673798761168859891125482116845290117828235623767372968075699559278948288392775322011948353048362739778189813357829484695775711012383830785221586872576028805970548885583747931718144104318693348577334604790143979702966064589577086726165497880515002402142998269241636862246272194712131569637383033695116474763117586587709224474525029637700332212465661424298388105482511010008400363621366598668097214304802088042742607610928377837579999280566211825238033257169483240778138590600360099657718382996479209733410138217333898482409304115381230349789586297690298838347108336727142241294794748869657601561226327800383846679465922362638870994099528767801640524821491347037276726001451971364062078327144772965828079810515235471068898490465614101350084861757976204890097509591414623493813878994689696741579166974717545598761598309117146478093489785994467487686537067900712098278209242209572559126793526427101170000114076745019390205338261584678828054570726725178918467347527738562165945988590830138825475340992309704620011036744218975133859456994228203958115429658441933426580274526257100358083803513696281120459918556489953105010324320932267129737790114472486807096226237736148966184612037207736981974245629488512392348179559761298580322071630231108189871402734945143150682048234012619102453567107075638432351605790930675258359236857480905871676783336138994061229567499767551321932955052053361807460655453659871979732782357802976583997892856091105672250803472950789689579109961292881315480574923453758180711396422621874353843228908057081916947062367703013219998748274771605950849832280315708525398986225781244757936307040116571342406085799611935627967261835711122426188106666749829841332537503698592238919821671979783442750704966570998731766232587710520290900123087600052033229529382803535853321215551707610506192563122459444329511958705110758503785558818830480506354763121237743916183594231116345018172614232921820150557469200202960430571080569998540888585053046726852145985179418210508490122244043554608141819914831939933842758990371728887587116985958162630530003828572064903393607026300034742980923164956957816308832880520270870168796702344483041891701440454737815089803238228836024563489566090472204296025335860306676183041881895399821956943343100142454174090114012801487710543230468692255372818375346955740510783388994081124522385396881544739919138599926132116014904505297236491431701544477001924553668276995254202756327580020780335167143971264882471767648318981255085214087593969480390272351485413736009083552953651010889734036525817865237106967553248874784865898787427660281396736756896892792256491158647630766959661417376522513549750961287427357163796696661307439079199876111630857189955550866420822602535748715957224556402021668954385375746781327068611794568067939711144987026087974709664217316035520801059649813101768935678570182507964048123030202950885311835645358413111591750484247256184362668955640553337048873778801340656171405193248157412831169455513873076458985823000162010369325960592937452745645755650007330040223034885365991840981651838979262346299456273123852835648812092732705006491424936099962961604829060548205849711719129827531197949615802850203269214045002170122835250762805328669623053711044709301195059772812961583908150929259686668956441127871449623791196672217300738142580649944800455889235689162938964820803692035338383597130770000293563145687935465364483064434108674650459257875826085946012243119486261393554964696956076781544804117166867609884966998814064946535436652439121503622933510003626645472013941967697958586339458685387254064743866944789490301486585514213358691622556428562135594492533091130579635680232567666537941896919240398864050820915874024913033070007471428103881554460715254890381192350367593601808241349851412530812451821353748848888671774102141217715546972190946104116273615438828854698474859625241702253471598145741881280638924390883073481590833456363289193220443625493241586598061799702880294813584346469109766390176095124433818798942242267831367069952936565525877309242573455117801238477593865344176354251178388134298119086862301604022728702136814797725521023903949560552524622408329324828797806658822360994004068663940449895896917469941326739772875756404538297739155150374224372067717805652178613931187999856505633338981092865533268383878959883926880486291636973286025934689965823981617262208730086269088204102711278900684794138928494484379068086238633087152277262446414509211724290398256157572982976439847553056697120409340334556266150241285505431440780221918024808822557890440105588341816330646731836033820525292259368453427010730183527964445185654173139772510297411043073411826628843426480688200193689375940594691770043076212247602035970744012649011404334695001302928412715825007638139688848215514188816214612788188634066611428842374859581499314927811713539136782984111528857318636990371017691029314517089118472351530316149287403803404408412980463253587418896502092888314980610223230229517761580176186267954076949460634858037527615625715959217436810630859796565141894589001635289200119764540429114705858303511872471754620145605178206055115220996717403713883852980823197379032302705009328901427393584319888279930216429818869280297932865819327280356687303794138329554998464535331619414742089558854502550631034851029485530327915359304130758872968018195431628632240271892682672910881135630481975769678643543133087605906251254719509824523936054963617430841017326296793029302495939567074200477072099802408170280114052792220764786937411176424117921483557890415431833379583229142433039415240146971947185962172606856549058228071301685371682117749293828316747516882926736325034991730502018415522139805646629692919054058486979295707972226912857990003679354683588588370307786063424390318906694865386287729972399360466453153151931364994990360224097927971012518039432024287904424044008065629260741275963439496021927357006157094094163102649681568289864225097958926797711836264620830127592840281893222168851647557377601624242757850346943687847408269592074747631483482240802725891660458984140563058839409998869884626797851562690005030361669831445927343067061730407485926300395277320782216587339499440966787174179280584422776747906888980235974199713214627980781144629520695982050483470648758862090748971788714491800154181125662971673035267551089035431655316041984307319034776388398245121605197073107260339915249421938494687261433700594122816036294761100659862077666404323482793186448545381845228640608833295539420784480897919486206946920798714387740987121035906114559665382992837559034529014238456478764151904337579925899513818901116204115064262710528017549559289648828830795885874027274505501816389173694345320521232454869430966214402980042418954830493770297159010650897583622333707746882927223576008436214796803372677222616314360437065441121971465509019385469270823725561270704569633511820748620840358620564558628938581598541399462876648473340112225755146912461132415618506704915247209802766994468284391954452919782972420107628843040952644931494752584488034202138270263100683380891584300135622135159395910392839372791794413785578586663704962718563981152560262848702328739678968858102056160110554872532394212337605728499367860633898610878707727349641687874764599906875739133164822888698095046289754705020648985049506683762864267252150754608219223705547687712895319239446604961616533174385953808914411201139209828849365616253135434411244915961413647094883205507258512022162755028630238228849583172673500538604282687517848675342345322780909071928303094356753879463582974958740086121227813498205379335404621407444745786002397801295087514829245258491432385991652382968055840018406749353382680681392431992719050382379099051804825619315579065605169137127226221653538233419534815104305366336823040512858352119238707829446978791938804414462587706969923530673284334677964076177886581025707254079772860168690107680450366854506130557201582290575328299001161380354594985502868659399050364043503565715617669621319891150056502693127142519674379498932315865862798086949689482756535147175290937938270476242233614612982215937919222934008271452983966394817556965060090790646398176882727040915865991204253278801778823829668699526233587166840069666426620328380958195127894237992439902916619389337895105113814088686883163504024961449952279943843638765779432142891898438290970365157467429813012032155677988787533987027364871896222109422951833325605438055350555167114529037642238255090710414067657242576242560446574049249612412462061059784558588724572509937135742118612530800581105705022440787761312781713331223380445867572868749810984283028567209905576761947971089330064473505029076460405907415629420945292934526753855858477190545149980462722351546374333499334950555060696577824070531009551397226132227823943556313845419008428192112682938018441891778910165458045548566673492121120384400561762879051934619922888550100607460349416823366705590843224666458784843480099483610978846245557467292216477218286719085829585238419898968952407840631592543430169570887237788337445395570024879710791944521549500816189333951578576728188088992680714909174185111395307826580865554097378805958750493317931592899500032757378797869554113631841445908003576827349504662773822623168784760181277483091483938301763371599957792972727656205859092363957027954891798434266827136842573298177905620924651771756611063854122658496573304258060904411683466253537236508703517053333296830751378640745633139035793627363173466128613084894520527004366758537121031103500049248104605178254415989868193812230175440925054248026165047011532187098777371799051650676972651598322304454930408373987824120002097610162970967124205225510753685786570777705715975801493770739590201192599958732196240070511139200318362520489479825094999856333906798491510414801303509867820231385679341346090944756774350237924580721791114369463720155509280347164592435566890873588624160233915172807448512438509762298153849060779803183996333354409095452678416961262104766731738531804199012437844584084251962820362978795072964880095975759773323704700146060928258197016605952320387662757133223744568194647934601143926063769630609081099783363561975682098537610122453407365333687674612505987509502408430218991279202063659974515810057596958225873565217829151154150728837366322477026270765732394160941474975230095296425705877155418118335904990527229606112066289317545244753674685004780841155811826602851638959136845799733501114163179250968087537256560120427759888564970539598309567201657185543828783185286033071694616169812787188498443115290138222652167837941720150462034478717102755890397415979761424224459292785539000006992043165728219252487720089612824749994107253493104017809129516278538690529437171480985630950024607293657251480736671734206506313111248443473755941955125635057701135281506500748000781549018007835992243519410388919826055408943958288613239368714798020542826831943747757696311200315310411625612760752117929233654761224352912649047170938905261043288146813199977819015009952081648774875748696386969005628925795147212686019618667097349159076817922375883831579222098661512969290625599758174692587455279901335324081533442609181715998209228465952973858595086635632132408950498454413957690902316812903507759212259481839526157950843106847747904284584112755133411669642110491659814591951057358698222707906909458920769609905527145509561315621566848680743392305771790687370144142490781827937033683470820805730060055973510596465187959938877477421912333302381393954965461025479072193101423356614886525743997963571087871496848630650336940502175397321457392894819015200315128966406855821571276298679721237532418618610162812921033166061724484358750584783526708115516169084209912488204994845381000155943075843391467354332721937721718685678850866249170024506209143831581923425439824691830496713024068543949001345041093319326125980446680253551899911153044084101064792865022458265962649447106333704785327571500001255914983850797639783160838265253466344003203325641406541090032274395491529344736257624609359274305417621075431400046915220460164781647722594485272576469375877343252526584067701553151067991296035926800510623765460103866778859881490658478073310042814565384591126780934346567903000755065005745448919198778759554410714658301677650272293972840858108298962002148312636743182444179415968414252651965579911678711361326515477834925292686100347367955546051777442807020453795797739256243397547520004708809162728362679753878305122434551805933520101324669455661668894449548343269556454727986370304202027126352760005370547608676845167706191261803141766421721657334623667634884265625582351104298715423866981703111280962703393201117324789975775087569849807104850351659369299185050286162633166665246756727788378123512085334972164990264746061228779865575760236077186048222753476615989839497401445491382678355034326851671817435824918195219680265476871015245781756717049195161905437957203879481309049294071893798344172308207716410898654215786163308681237524237428593318053732592640493477943018265249430240225092293888661201433489687817834013100467635697671809250315542120409024803941106300605161051079210832879522017845621739396000779823716130904894318469148677845142791063530764700290757749160727111827173672463913590082569286913182566235477153222574783525718654113761442662386682665723903438121216441411405719600970081571599122269984314463998793016048866265295394044268788182416216307930443598018770217510729122454910856679131547928403712354569234614290411145081548405404172868482262521908112685803545220243283582020308358538419692171530245968784231285048198899992906728540826789804111958396196798442926114431359716787078049868094544973648203797786485008327484399693106443104115276861616900818062012914670354555474948650034573410246297876514595862865734933789525927402742999178710210654577953541432052835372757949184028680300254582275876845127593923418923011054995930137825292979456327114144603622197261269715378014919586824604796620239223642137268033776010154146597204135271987287726675577578276550948776453542730975346582529148388422299458341058513492707551771184171098318448854765974384012602641141359422595676610673435227650835693719209018921568310885646277543067235397691748704178025272665047587179277562290430853532133324536007053269274595812242059235851161291940032264550570323031774406328955266425083508423326664366300534068429538498916413816470168030169015247237544562706280033738249464499805017575283443319353895607277181551363611794223714166587577064467374098000552222023818618577310704704640312008999511719546984358491052207536112900133919974923854126059449350826722035247785525910530654463866698411603889190353578913531095662792528667402439899396212826914591999187681361792715299253367649801368362060105514465265091235409725034912634189502407236919784298992933731909387826290741546017808928379834732077570809666518698546576455467896281607482884251150365021385313157854724846424185446853425884211222787421657310820661693079416006664069628283069739569661875693799789272459143091360179292467695508490860492052841720630613438389277869027146238376267529067080259889755211733827170578731666736230120897276893371551305618846818069804596327922822306453478058435385596965373705891992636216458509341999704424056717047567334175126924806074271899370352245161249913674318778007626388293163111632596686742698900975471502455595875514204906674551727182703356461775765431058134442599663089530574128863658584175271100782562229336098711977101187279199409925039740549452368153458429173823890509522676816700766137571688379472871895256102421415352911835192977393478423764498261418956853124945674511710041085792995427050498380867314178935453566568225819935199681854504236088372191784996274016070860879259951638412412027328678502892164299733002465447782079168930192388821647923210356917715010676579840465858073277210347930818842218473235394718523883905422097549484965205576333920001271344142461215189394764323140648076710420687925170510473339347457897051057450174092807760345318604988558422661438285512353899054224906705612902029777893951289556247742841587719019349791528496956520537800812267358783363551650976406728041798915734989536719926404971150501597796165185768545993050322953852458983833599604625278932279425930700407753294028124563365045911086921970512953417353888500690503042469187298116992856566439489688757667935690581046636802069998889149171804349461654777888294624002057446565752145924107987354467505526708446763360424995087902368531614184379691157701386432974141810479668810247654483672709112708252378371552709944291738249054046959986894751744651351778599091430792670819436939942751848362774356557066338720209657040479279938053541895434043645041299558558898064080469327415494127794475509115117445923330016280004517694182442749414339421563093590334657225865090847410728313272915404840566575025064801070817529605388381029782079019055774981487509881187979701505057369052309619416814184124784213096753437928344568051610171216809434429069122228574493283847343830721875716512911498435290904137975594707394239276819342849979582739113056133529695762072007768808176649055652819279270222362262565883939608789345393605421653876918447306604901519805238286936197297858470521843409267396898836961109218020406575655168767761865005669921720816489794383408470195253793469367867517183639186696560454315906994874436417136088221242176928485741844930127916399190656033526020731069281581632037080492663361715703217864610757512194626815225919770182765285422543632165492156699812024487198884629625936137032246586680241033216682781270780896133687370717673250564501851296659091151718549729754968270658836273227248297145621226545235528110774166390871066902816236597457917844832449918615796134329692531227493718852886070566973949813748345394851541059233681589612718193154725440040656281264088249830023334277260900490133204267568420123326990614477374662706184213425130641929989251752033611944556025895848896702702749312343602191059145500490142887083524947540631775863837284996337156512447910058798134533119967957309846929413433604926070109695391644204042325248512479106664929020014173262423410144547806152624792480695757706476753457212375268225001925786663713936345512389305385134832857898111086390813005766349126583665852518804126747972623766276506112398455048106972912106350825672355210799221127134371511494408244563840772316660183872858848494084638674638822539792999145795821114160469196366962771710710053023591193515401086427219702577396797448718686412206001637009907146911212048446078765645034016593706809375423526352712893918642152183344448912233393122930193599080508926687718890961445872305960554566499091659624630560215070112226803107474167165083826038046030278673405168790203325445199523592955237620944951878950393363831691900248753249151351551712478173812769077896479553288123306523894517043952616254017889608884502990567345791985652242889707917970069343152615337864778385010170379286645762992358029203683344429932600998141792599630436191481619315508355035607815915792516883188914166560356813074338033621285397211321094249674054253237836943421924676532673550184504633472500787446878355697033444699828213724843080177066721855153446908498389763101040155433094365269953057208371988310262869206322560434521478818004112463450561889402139015124605039276385582143619771611183546112376785881432251272368080547186142810576881223154348591568464517578402340472090594030356027817889929240991345805256721933996765455082098731034530838163695059943451973773446138756110780404718131610475704673496847666532496492019822466108141803703517532628357611238820177987130043739468709652553364081878132617155716499596432234260878328704111634347835671386296604201478184563440378741827967058373851403796780326649865442700203677911458424792353614215170840195607351857309832142707143222748245953891543901458364094346653776268271116109462515001327394745988096429151259299268060184965078109485534304792583146223564665614153826844996532975506817535005689684323287114855072606949703614556164182421588905901975301570812154266971610556751130041732615685666736957615903538528726007777534282842997124830658488423800638364295009715987793044697785190830148576401896123453546971441984928524040718851385833723561912849202865195907891823350088318409215174007341803627065746532497192132502653390583349487537596259739022881860385661916456074350394024961613530404559018046860704219488608452299121110885573282820042394430192131731091411968774834877249531992776856088313109461588072026162080280113090667508129439836532380311455859600266305254603959135566702255342069498526728279764372397342645826150526437902079387932227314856883237302350188894549416683145022409567667306322426599841765444267603597002567767403267969279925243414117043482189537712864302622367864404462937142735226952093322855710278381214070877436098731151614882754936724255322228689227300236914772011284130015652531028352258072041120102558875792720064442301582828391411806408855284324824441325731912937186847869621421216347048130350146153254765611796308790623107549893627974379243192459666931280975209350501095865601265443337990612100218233902633001892570469176840342554193066454585752862680746873904058171781985528177699890355910039361024289408393121056864516007881379927193411355791605944514453191068544612088505050914096275206161914193923541083968436925973782922958050005571536395413209758724209224458743780629233111165432076502769686800713603250058504173364914062721889941437055831023626763861099484965649859198059203072322639312988141254112361849394910697413476355552296816173357298021301391739967504585041356873290593585406442249690539693536931127937110077552507525357767646882827862474100723725549752801444270095446570822988299383705193668319596284488406849519349036572948875753667600776539079429567354994529182779737508726935892613170496135082377988438161989244694858133158597994757789394185028394902887730526313367284232934462179809739120580071066283271948771984933035883963498131177010545570829139384320471259999130476574449782466173635193053117413010131706333896213875392806488334023432574268939431336731717559295696021129805863471059847790296931803381161848004248401887678687042826325100643960549335178193807519188265850786865475288035599126591432355570137780916482635419067299032233548106816333169129722166955601372471556941489143205412843261247294157772923653844222070438492586270046635072522927089938371122118932966333469880256304310586510813497236934777840946213654222817876236111426528920823393234639329783838053115822851998599511308778758862058426470921644724779758069569837608032004897345747179335355281330359449414640207633315375799636124630370586348210130425382553502965533709017120868494129825178677059108023222709121117816807619557672868574957468062483031998808264097655360505001648083717462130780760461493493789163065528373783621592056228237444332021726763832165187058652406296241713500597707108320889910469131342002422899936601421241635363166662151358729426218334405509457284772311036204449834811999293397835994621699641248685365131426436670363844940983738612566163606452958721743933021376098205625462136482923271672877700802999489984144862073216809146814211971990167473303518153419107681399530550693065279863263613071774526904180378832678581720649020770745888119987853939463888733257265241196912091284689910525921267924775888114193930273429067663654567197712814786643247646929083378908799137148024721614102474790019265285233991239891251422112668849388989643200750400831791597744921160761730455512637642211039706122077144306056763503470929658762799721798060710816218485297628514184605349059726194056415460596989917948383991748620336378290789210105586791926831827508466027229254040283523264927070769508082979019152795004771830115342372539491289458015124607522051999387392779525305466822779738286239119976186650413453211532643160475774726578274635568834102710317327269931321788720835045027218880081603094482923281814047043455608643330045982019324653471582198252401830759269244679848527722336205237228138165712081457226044704927738951886404966567610382539193283747424179726720592714776661065589508138233756918501788962763474807748302931672535176970751899974810435855426200196466712446245775274229708586043452671157926417065478740190577268985902893801555436375176806115171168900741103164064036208166276376328779437342846258231803107777675693629265501580171304859674367617374661995740335254062569807165712401969734987117718175224181593863987120175455685936930290454925018117410744152810246722531404949043697934485981281955593927876510767597940198751570232424003375038252658526818494813709252486869147906738486325591931218581104729846550077061756422066920352808468961706036008898017797228458654817967453743228915285662966879798469143908492912194856203153590841079165930174365130090055315048661313284734486149653175296342858375704239048738882754805157254078050192518185388015410833188537565794850349538028231220550161098893918910259248041170614726246833825167788342879849238666668205276249879213671882360819775772983790824677971934506488634143682708015382747727463072138447044730682112475938277434005093360505885096350324815277955589392365026569438300890631533127351186551842427886349016989232002124140491341322203770877907258792879363439360855289924437870168280658042901314325308540726013845307782815711753992768105377455078685530627303866694285915588885329253204084444015665402399336036134888153306455693274652055780495656912724372273257008001377746050533353450774221010231151598898182736606847395571929481621305356589161503342470677724758787166587390020620084247853042049804842110146838758105811959642358007682711165105967227737269943199815115986209277541421333652131639774990775938962530405417606886593029236731159861419267512663717175792839526457797818173956778542454490810676259058475261751706313308499664671539103168249085040428725993175079321457188651837975582091464235537321182956640892431737764731849488196138368929250037843127061195297485308885744287259295952932420235177767667781489754775054044865622289805751398642550304195589149208345724664660922169415280140741847490694812618289729617186672520427693699769161270714537220241040227052612616586794142299180561154507663229900136380312364193983771344423121855544530281898312851347107921722560125526866453985493960330092499917421227184056066505604862424939318217334981071872150942098972355825904997998126567463288103015948064918505133536453789136789439647709902104307045666547096326214136388304196879057244229755962347815401693632568536315608036518567289600723783528232696376310753057784537906384770015753574733583555650472719116888327171049364046503510994754157357623923167659469715203129415936098128964636406876722773679389839045168561658983233025122149780975649522967970971991783661067883277439994060277239631847046974182399463875699833685735036162898108525055410811033579374140581932132767392864724397816407902880797891948698719172859004314360038194450438655030592688226774832510753855202859808240986439391145480930786599170243136804320890726858183743601312627201847040425359384042074968954452006481583808526460994815838291886530807829514288768801475274606316822680146301142138492452944012564959438406942798773664016575213945605095529982302875593609564538197137079986787725975336880627101735327440309948440432114544877071381236094724181151196649697952998056583417264030488531672016321210006189026415163801799637871913106514579152813991054719844680290379368078061331911931570392831406195961953313162397870924741773367632845456008603820401084560651060720461358446532798858987195704800750802474260167738088034727698458908197111817752380166753784225631576597656556876327143366072464229256803027153179234354824081099588637508273077611286171351389713677342622719830983260199548464806831012632139406402473167842728459925587106592211027101328471721568251135120153164425053981465337679857205716653928976850627484989485473675933882309211529700120152846130111902673383405628295860935250028420700032804135179830086707154784215145770906088086777402101941737572393046219427282905765723347737525600070404127111666953764516650812243165043523148570533335077418555447258808846562230858144677467908585487445385918939363064351619806757857971981546469389813981506568137731121253966671957429289916501243953531980227819954084221075770544634978363580692239652320298051977067156247671923872404052132945442622652880323884879578172550596650828098885560542056958812954515460648871803388814912174244902538329064029650730468226079656805070773193250923545470250285462550084250805992105239738813678441141259282674514043261524130384596009480911322483048378482585314366491468736809093262788126793450181163611153636749439805892854149829115636359371359235087954007417409857806723363497460707492498407714291150781710422448172565645363875165474314786588933634969261917738394150530218985844441479364904225057020386668461619616069964389047224745141975104084213398701773328299306490398370773579280252935512195577812546422295907744605213446015360534550164582381562935335542040789411416838829968601438994845797173217928182092728793669736153085051751790737560802560438430564934236893529413987993132653639601546794391433700649444512695642118630152008692855229953969595168783903574968057238454482638576052314570517842151768222310876153981420132807112341450675478205550501572517080917534479783821469835682892183472986916532848846684711000828589518960211306042029763084787087163919746380894727229205875583690546759070931331988103384455541474696464137812315747450149089826846883284002426815177465560917461517686299781275823094544529790380406292362934856174628400986410693970491656673905297431324142963354004184442071148424077403452811162992184626013532298834962652877911762606658494707944663523601204045863329812194406642411872140794407033731258256721679037310339782577282327662463752760551416222396252750672065291020489028548349490624383568253724139716348286036098328656189475220075170762061100076456392105902723273145662083347035778666776276314912827664099354980213042101041349199165816824717883504405677304759038979317294759397103729948189920588844089031071520874850083234461351953135790527854585891622734421551846927608152040678099825284378863154095611877838908064772205261878554910464082573503413720541652543721601756370381263465415315433783898248066893563207800284186060165550812788559343370021003234469418593225533560965575245595868628986292502168807369712333415888322825922250140950880623483910040274097388245832537976384316410395454751917953048778819593390120726832516525575555700759005036225977781911704117898472324124806388517483893435293702804083473122245159758911322961630297885152453707189827724096306836406610805563543551302910396127698224807787086318364138038186942447884021242705960338110334325536610665535009752987922375299076451930570254895431568937235533034320247534374593800369582437603770297162156844738328662085703172517421870010271444857487957937811394950926157645117394772752323444621988107613917552328259976026017937196177964511386263299357539641347342370436135700452957903394080890776787666194693498781968742441796337652795090797292183370085983158935768123553594438264089691083188935124957105187383702953800395190872276761344434091058019236739481982708201853707024670749822200726731448658933295602291685978949825511373740035561076524878844723497583219094951194008766056120896517264851980640337245494652282326021124228445283824721420725413644881777057505815216690985725236336773478673300560563273831397513473473425982284337686042109568267734502721378100500073771138642736750465267324586915249717605068939271922514095038128161414842215334254875667139656196801664752962715693235559928481096901755552405959580928442871484983091476375161909132057331850952852585761765662206416375820720331268910070631494079042890355309244847858936831439654100154892352853697898654836365040745855928628236526893500088012351601125075783959592889183780735075500109987492319340597404984820623006989663292657365462124503964337143633583427899478097788347308735080091653478561877772042125097848304558622823928311302114996172265273445526166631666250931684123192130264903936176470847203238698986259078681790298392736515246997176091632854198721515541741599650618687593289791302996475982513882507303117776146488965521554394061933714090849787415758767519466098941496889160098683705659294864335008999477104697451851358228897894165954338199073039878932272932870219580473015433148115531131977010451679784463624687516920267401016694288798009362422309649569327969199461319833330866592258911215134624365701086324982163564334218136044965689235914428251967434059478688385096646519638764360702461304658145602194223712649940199709286583287886801272120561347752030753942955399363741231604032521124784483663016164508051127373219015339043469644669149506613148009456717883498058704878235888596660694886132314629110582760481651651319686158750547509004617908362533866663658090511570538932572031010707716888238032041567446338465242591855550683418168007023183587460129443900887481184045893927836340194477113811447390925072278037177130830370949655121420792257163709586077197354434317989663095408137438647096600913526554300083484069446957642163638328112394225080942741186176241262168720755441063050991438211396990430455839385225692735811869121840631842679311204792010057739199624795627087442393828445765287957706789564976298520530689503827404870065120145646208900341731006196658611462363631142716073158767362245056560647453623044956438355746462471157756034435530581240072613703890714716586334252151232685560415414810662478322972271632084720530362665271643967065596818306042516174671496520063431904956283144324612442794669244491025103124110003222104635192218675702581080584102207397131086100412591555902814227313160480097053946016509205420590945788412682783814371674137104556558634147009757813037491845400826872300420739141984148208151401132060677523896423413471737049302262900253986616336095587724246350912959201905487830569898011904875091875147092766645460033030230596814961305709493714942384030088665862695997459798856582451686533548427168341921460978063530131011616198404349865679542709634461667617615049348055801507621421919523867114732785971214665795969686216432977991825595448039594691292596967801771482108801079593656606617646504712653130289398942478227361942571595649783060141156589873309595598490278282449666883044567732082561230870093761372497211906965601891879904983633288358016262332092281935329421336694430265175229110363644106896776184958416122010327127268424568800944977059614720613157614376774800007210107212851412073060451086776527911780003204307056518194126415564555541512712099451281943510714574861907241484165786726355333325977964799389815481978181320063730344476347649908766803528745172978425288391344254415510141855516746519765206900715518852643816511569331802105683700859932772476626273874982049633386523936973377118164296199045209159801911480592679531749235285969194120734848003685042343345714078106562130258240451437314821559375638239246470772691884549796294692235940297928643821681303937010404677875787700935208385145233010688456118512961539880835839868506131135612450319663948054795889751533486793991898630399299541424216629937196856857140244657068766874393788823867347814214792263209108085139433155229950681004030873288858141413919298546833884139811275881167002059650075795235921956507786818888760964888320873809604049953314671935751420021715822374240323154185409870392503159025380075343832250324875375157415613122022025473235194775062635965167524529522907946596828535964887601553410528777675723106444875160846283518006693002514142068380026518326461162387351420135174976747870105323444766339943580439817923327841296951332416305346109696883048952259247837048051821170116089832450966618318681698718236614182703683027798037915340966982430718639753782449851296875705665029579921898286364233109066758235001912339377239471949508098604432256834908094246294075411986048450426359885091682224096689016951938035902913505872036030409647343514225754853106533419635777642475071112431810739753534911730245100840125947256232654078531082217538884223428074918206294854192555683995106572690267595084898765202645888367045552790066760986798086054450362825202279853688995847516607278091960933846220741830973487136064439975413894817153519905152470348508927828031564858319804836906763322427799403171849975804452292134291869102914125507601319993900264611430008892215112822596251567334376514353581810186105136296342157226730223006002202871677073909750140874415164876101606217681492514505707146608819004857930435156109870676048094526261971930707847812450238220103418477657826182270809445480983435804653680818071327794813775454715747483405914374476172989928682023994211914759357530948782299696052186127529652647535903255385762693048180923548934937001422995365453052479642171691783312059372756760131813955662738594651465572524075399501334913349647528350036622692228300987969922315340194013886352642257387339342004632053829891853925007442892577170023658780725651033018589110398516284228096361143198918720040754952919325205903474964473483635226134730491436828613628271697295661269614685997982309070675521571465369539398802916136567189967938558353094149879772628619858797326901937087487338727570036723343144128039935966469743921764654577439523774334192384081993972856909445609381581746807398590006443125113189053101315362892837202537859291294745979164267802596108372978747948736185663669285904653128980281269152002188911805084676389336961080830609531457306070382621714503014536177571648793920130048753946125193832491771908836994677775595709299958461928082980413679522802708998240427283086126740213189863535138563360704307093261611516195920048794956601949750173729836701020793454122274682455640182567934305309606283056179184629742159318289224239321485055339707693173738344327411107204658732195780072101226924800169580749738647452949512583231734053268204132402782746282679335793554543302235149399583020626286132206594633489397912516451920974495065941715374543586487997605264015417329151135404702579445255353451690984763886635954656933736216235905445312461325092262603311408100700048770177103364696308999972136439938780788489916248189372667239967798810319251269535199821015207072850680370980070097036300177085471824178043113799684418036493352495541660050455745598075477923198152160161530618522831600168780023865105063928405384536521130166093150398899149610651996415231145673123688366537050356575221713278488735084188462888102325690775104737648868341837362009792018892884718701691377746809340128589958300014770784588407443289752487457488591911619727021385304765208739056980989581584160480310320381443541278331916468828517534137715790968763576785010277132047843494003478685639409262295003495239523207743265745104279363324107314201632793486747558920350385162549657282013793687420029771521915606381067318839756366890389979392305908431475812802995121852583783061491066185273657275172598945300891303794626092525115296125526440059139173258116283435088589655684559017747966889785459097097267793333453225151203564575449965408417325749246580903660773672055491322867269711090831357321172672063748819116294362246635670700752240904818840285973509221380777187654973389178178288438822747350611490345808443523633802015125383953819281932282842326643384196071733158818769488829482758878548060874974509300604494609329212150891833201635100515433707770322993533117068888771213095656799050203312004228768501448370638361741732357580093103012022179309242571258928680456678050761048256609914522283122754055146948138739340399088305798676963213114491695517857883694679406874539808749913558955002284154535890386516503360442535790386717133732497894711620356877188429919710832414266246116522233435498374139601689685522515619928965793853074792326600010097765314740718647133018545179770270814572892064731903419148781729558182588885963864567450050762645706891362357655149928711994031344732259972710601838225677088562848517501748398855641061387402648837760800395574361456085237036346735929446472492127434350906125942145039749004114472622000731699715217307237965464776289886596496141352888909358226599905716398292274878071581389914422027251105920250969260020096467427644485679338419972530118255899160635522518441719670435419828934201570002672156052142499808918371337664791450882258638694715974257215527322289344736275772014723601941479348013884026958784990760370696677731962701608198801076614846784184120309109819775986724210695299801804666735880436085819721115798661206026609693126590129924999459183565146412844835678415345522174085764603164480570999268290834490542777009380050777001264555153057701394114220952895446156071354065122460319352113225806240170596555434510124201985480193272897435026172826973199238786058628253034986057710169960889473409407371296408855131226751318218745190397513888000226479531803701815306960029786676235167089641619001537684298516297377404607158360203015447193117870348049857729841691516625366842862493462228602771139724334566536484857578066967076541743640867905070885232683596834543816494506422173330082259425504759519948282579568933117075753939299085021889827558147962403619403509279063599000231058671535061595817580681199612657627761363875704900842966065286916251460246017958169293372393565855785924999261636727805494369152953570970650424345448036665467589903026005575033503531446439991343603764667280854878697081875626231122226307139019813795127086052910304569310531160750762533717026385534004288139747324022737261465063164067341965064930973147004062218762151526193724381037591961236392687404781932097399582777073355767058705464117621760929939862085122988629597721669698379883766248599619639468018125867041016182316536999724970541233110990037687154607503441534706287950194317203048168461872492513482597885117164372180522759628011478109000865000490346051590249772481153216206887064609079985923735592368971854471705332005065649182383562264603919941117742281598077495018576041471370736249637177718266907738268238328308877649315047126296317973734263212246750836629057233330338110933846147591158911176427843592410709283505579164525806772444626928754099762404691512911901715726824384383802978763088835786832221552473077557663347258365527322723998404413975338824765956221428539589591417515578722957205295795356043990777509947559351772578482620889852728095342527730724978481433751595516200822805556791513070658675659384489597756168334871880107178359060855431504746795916782033907832315588080966108663104235536258993807286419701800301031752258771631702109691190060179808035861834082174374684294899279332482591623814808694276167386296503568103566927802464596099290017128784225109734161010933529733059011498893815561611032851422761445894539167990280906699764717349110525766269046137306056647561461697558207360025695247692466800962330899161058546208366170061795614957821600756545661878542030861690571079983643370399728256887194027976250548813028971617132562241906578664129486617058622997214542122726145482606214691566873147115770713556742110479826783513540632791484822001777613312278290073720023244223095013310485729290956548804793730538844621767553124758534122737321445067969406772076872111376637810471475851776871138479646015523808964807791635589427083261639353061341627756098896060178553543778978874380598403142847708148080574734747570345500353515019380980028648298806342860359456696861397736229651097091134596107007550059228495963905005303189570801028550526040708362232593076855975112677024052062918213984860624094085776136023039787289754498647879763506454122852375696167608987913795235341374567021955689110435310930701008228286104921773285809498372504001930164912150566989497399899996234430785507677781877694142978257951909480419518531673438491451686740800067119542716734441288999611548039014821617053619351625216167476177761389433262534603310740156574889052179683626590700351970547233516445702485095951329106929723689237954381374381660146433402767772919432645724994841524511422572402119470260311258644608394201048940528240090514417894928205411562078609477932528060862966575418515612655277791149911698214821384825656741961494791276018630840466681150231594031387538795365240403404022284364874664057127654841093948475799715549599866174034929397329792867574144074725966406982420909441222747895910896785724031640315795210551260923039552986847371192598716216205229317919245524693220850958436583614149670694986072640716974212381424243174486739853364647873810357817299814754949588216251002928710319629096208211272659169149326776743339673797800851204411066248926554031159729491650954281124051986299388198071350736647402889808564665757450342597782495122755034432255484418902874069360906394643287822783310080439774893799055766548234192094391702190260808561834917116180507539190511314759139248980264090390622066903788856392779922992267910997066518378647206838463717498280176780834942953417318820077265407218232971113053000271025548659500552320907127811036659214991408821205350173074500922697173898435472160187847602438287250666229055563687446045075369233690964782708911437431968923286533704301355360346494859446572291643800564896544120449677406018712822938341391002875679125192871205485391083918382381519377784886960409990837146914227768900079338813838719871633875533244413633324596492200416982155439463018935928903315359652515961735686954540804723384111000384498590114919845563832924971685976357829710784395093773141188110115034618451101142120477641178616876819030031922083796068906584297255045764537569258789431231197718051343773870985025052578500846638998279039967769021800498050638856829275320356121856453453211004838580319505430542992824128915680768083936185951972447385094906160351193386424264639121397947092286357271219447418676394694097270328101441409805067724690739329587210512643203223606294265928989334501849897420641649774324529620470827879452868714355181815745734881339677096246645916322826435252217724032291490429690641727403475536021872708510650729937399983409564630931073626362406156412338086609994134126407103089951006273909502365776905167200262521321670080185227868658321287062927117433660338374062701476675384181502649769627756970625763101940307009034251852741588193896302044723393215329901916886340376870127978045249493186121544457548833072348967722134813956923725029444659603753028875184349643539690371597636348453506568792424707183939564881015329937721019610831230105247712487681077116230340546714946840029717925110824586080384699464174141383088735573835563241690006581230035776859711793259602275349280848353689353931369374827552114949286035706388171535751337328623414694961677294584701588787839030560123171195150650050327348493528679980464542938811715320988376024876001915705490739595896261533338203724844292624522196423962315775932314341594912997561316509092290907375805965325217858554561918712585957174268331467997860274688748392167159286215146511472378037985581685079679748303636447156794385521128025872442010377658352860383591065976224620250310364616540771706389924531190271471325897248207845579747650875186999047205607191847978021480962291030150354665218724704955024099285993427421226617375233559021057295167808059870252918519285685975251118216587808990192044633395552350192416633041959994432051384596616326616115855109123626995818414469134338097712283142824014863104758291228470447689114892318803875302196452900138008678353487515101978779265539061311446992931125429054786120809630334653109107197118673308201849602216131322536631936675405808335880706219192228286371362765955296356229286309415521470981278566464435381422740414421094197137421016089938559950622460121575294236050552587206423581332532752709408108002160279734612995268216445762077716203219939408285794248788318267075092009230497058380664331844753300335008283905259643637424415579368682021048993542608458907011307929391821378623569196849716419396433169408274543879378322452350270947899733583578220559129389788491497113601355869578024317808444789653112049227397536594980217635822522350842884801224366930852584356191899686398043738452447290112016397365127475946251395096116379188019297400147661146533667667733707999677474475836074049964781178677125547123900227670243892573342668059341500253190439628193990911002063233234696160512877596122364346671307099569755331781565406237592508556555525055872604254936652648589935369363916449173932844641518529545904214770984760341715214855425255447352087238995433158032098934424409493355429855189610155396116134614999522819003141429495029894616944324100116711263385677165633839478830844409963320162499336603841714594404213313298795372876695135544109584726197660708659432886504598724789522200478932615937813147803111826685617445157261661304377729129416607062666830174868151018811943769237582711659030876865485345967020808590479691296387413817691463164790137220910996990246503808348016323393722319734748977000825398132596105286955755254482020885430589362237035391291602392604499071962655550352748400697482519936167263617024211903449045575315972877196872288141750255340352068648486904356169768813586431876805805014330413635735340084566099792838340535585738437939217207327254200528018584443123265559453204005326902039082491933017621877258625093912379291940014664704477500255354808912224659319866311690185890375963249062345138465966940525829395681190872006624313736722338476064189667404203186313893345427670898052137897006680442769941129016835091296021457727477339455903677882491391487442463138156084729726820774102369531407506111212289276051669460198258669690067160425629968048819274604756226702015943873498235384275391604592698986047575461242446946849964089725431227001990521458707261398589544040052935565151526785594256906554881861969066280695476860305957996973830680479392466347000745964218439304139380701423804639772693208921313095068088016742668365605100157863511697455511013531995644730978037041804130910602275158486473895799641545761353010933078338551221919452995588938243120971441362354921709852370428526816634517000985910514585788715212363074558819959061907699947869297072447999984576852427509467441410624359694151896832349624186023816681025857482485484354459584711867728945072817741513813622173976872188852486885745023062178959284159031514217326352909714215073672820281647607151513448625764002180975042885082762081316305008996812864432038414835080158881177883545187920849119733468939853612774507747592926319296842051014199031832345200525265509679893708373231906835292135480635281155744513192187904370333098695063559417280550295753573118956272969063713964247800058994269210822035628153831415940537790345264028790664215422647115883209290320775469847919677634315680608299027481480010755964049570976331856531034405138584152667234915608057689341833284689435385836969725187128724927809271041799904260222128062990932690037187417882070910779676439906465542452196182626226267464682714884845668395347493259805913795063881495095254208987553253730065358517487283112293338914436056550780402119900899578672607360902188276251404635579003362194042715144585367815255429975339080587510382377864978908031123554319059746842971833598212879613417131319162940955133564972782111032253433143225577175290732967790583580435790398792413425911138745913719863831669509056176840780239522113024668367886051890257270539842058408074182942749781131102345125302098656164369111017832872820701859056238012225878793095935042045371729702688684145493262963062566617834105733500501451271041913411212612759417449529378119785952667562033188403726552019695429755109601815470888206870800973329194969879824219629393967787234344052953150618557862020159062262894359479056473981293959938495200290844896291141052840781984563915463417246087096261461645699166761781801963993338611967250661050506245072788023071872327844465065588509905738934245653312212761339909135456304872326981106447547625409687901701813226697394744353269350994703288616951772212435205640121574013403544717086228250893366716057380573197393324853818714527378932323935896670055786372747538124710942207231093711766387661466849395489606159112863881467778096870689660529877537952153609504766897518625763202170830733738332200421859820026172048716813036739969306443631728962949204191367341112060790805602763077976955763525695044540896123500727043232202393986529554954553767098982719981998277185352152440810978398096056375070930939223374386279544572937511581013300679725354822136690316101125797935467338830005832544621150645857437719781005013604025187740515277667564413915184199400712273904168851689292375606175588788952839543105301686198381917529331886148113892950515729429373682153404066471499354924470559160672976466401363046163511486453436334934431335215068405809937869344975387010679871994038065004847780746802422499362323692551647079156648052187643562742516858555754114469103030273197514958698072106923432378724447728027616630366418521067856157832036220679439795524795641891385218990438634673510380347905350310165890888097784840767097126140175161239908715190316590914903663021690122369052859245368976747442822666160605011887966056004818912065732849244208038138168130107482471492089568289029866497399180229741852199481770374754210644904728906719164306784828860715675693928624593105859715861234431679821742844906368109988520608328206194555441919555648833838508487634372728178662753755942842183921329092319934350658189938035413738702488301420820178768710039049612384791344749725576870464253264290226221023733857866040467352906879431344705068976779824527607479947715888350254878326515397257188332848205658643674927844881952469753458954180938255569821737112504781902530914369407291026965027351536697324092977343175278580621156813463220476218103748018848291738296158642979891870806314786603217888385626259957406676659815513363094230716525165985290314242733384090903247386332925543205983321147847662176644817988948865725539204949005884396008919163788746120116748071299032137824201262654512742803484852372352271157667863857558956267505502891261729016813036062301377517889694280281536182669112529333870162820088160871177572131617543388188653974191141020847363649710924186293040309791314555596239640354228534901439313339869558875165844706920450886126815057393110471547961612134803832637243961271347588584180415654647066281278825385828836582574237631147185729799142162715951142504888098152182725257760867546978281590229937528192344581211151877738269212700901944443839766776018305285073401875465892154120387159772176002283725374704425072283475647927378911617591336055785982762885664868194279153846683442737738490409234860446631465890927034963269583167203163822635674272188001003596289462005261887239421572682420389818545384094250093635691262204011112632918737963747108393184813480826928309975511381234837934288794550008206240653870845442193588807934162197033121299208456090964683470611068719913625525957540923612859099570269183511472912986607047030779149293924736759683048249769234032056440546045193051175217567307376076724115804566619110122568128408398016569965330914178627231810306365783836023839599892187447724926013347166041898806952767402260703831762138927705671284512128505134142310265438339331872550240601342152288793244430671352472292971374977551556908645124751317837074648767072400769170018874743153286582760400676794071768832021101653513170760178596854282287534910644449472155791176458456449447149731850781714041241167466174164782833260278816377720793986233514836219785567352255269633373359379084094411059828000439558980848623028772999290747805162795683526196338721153389450024895696633968927818269309478717892177248627663893318095166834041875822379947208321773017036080924030304839197289471312222545203271627652202329587436972398057704699113646378424802630062834685722508494845246525099472079364257364304957054718644586988544655385986790390067370273633504611310007493290989264598348863997144768404423813954137143326180994150800331614450732794978942389057831908484324233316795118915979858528458737662463305890526790560316387858648981989441044509735050777965583320758345228517626146261757974008079514628661249924383480783417234709852224426453118465262076323115148370951090331567273663126224535189751522068509874679945227192335531656059086508067377737252961652063739772292111448541944945603361862257919092955338750277858563521695154836883855189520528485417191016091610330113989239576675629620461144787565326195429202912068523518540954814242875369136350576196282825506564944717461332056634713704324172360909662963807667544968386835923642691449945723385221646874245291908386495835081821866784901318580595653740685036077878767160924541708328788369217557377768948535175283154470086711196529707685931119745617709692558110354102485612202441401291112614291881188855752552321791194421552073258378124073077940117172927064103351925174534568927119443459228382906099242339040635901450556317769459933195341779408098984176978123343258020729214317718244898711913925839623829403965028995656175759043870110290442555315696242111743683010799912184590401587795491969307314468066070533031095371890676607854501837830392569812158817084316906089757738631756381110386393667519405384180373563760593152431911943073102427893586046948499884577194565314559076123400160013513180806795855085594518169425723293062816234664264465203782001448313377440494619547002805927225211777628445513742882075381979562632571238524288542288479706895325009471634525448320216314119875986963116150562732814438816788361665367336118675432021567433742113744495121734854720272122165056539279548468439809314093046307801981752623817710048339355380617235443742031954390134000883911628520044851858943064851934280362879380689891624417876180559823299088036629933731865140662078677118349703427883995466031916719760538386415410923880907991251542555447958593707107448303177000228257234468495644312946122523355296013417738157776947148262056734529985017480942147693109800978352373851442124823993848118924159771104774695116254176685109684330858621881162494600593283430392481911169903222856895498601711723115906504004487886135983402738662065984551360732672079737003872073905218458218882480316065318670406392042735752674836523000281358651369501181839703989297862904668859783476097996320030771443002165518680678603666817446138407293258345454139212733220183535717164356282185673147695753818049318820908057621568524334533791910283512857268082102828737678306540052671946135474759070877515443630911108392210536962111882901107999165866620929066652816602866935061715169325787282441755708331112608746077927626516387217389335721130012683094365316406192192375330916335173191759883522116319909190081610767284502417201406216053714257034348158699062485341938198507528645603671349947803040315760304690641083629672474425258910779683415883355066679008122356284000651837149518541107950112046569238019272012216353160689328298693325031164699915411380394600912816509082735604210522462565150113106435489103964637450165848840092538930879956421933302457544167301397390128173068833940727389355019478148567265651944496452071655874550019866103488315174464481894225252206083880770520271761989448903472194389994480777639750278478772856914055516825079016539322931685837478112148355151056140025041312571438934032621743022056612470807744463720442458062189162260045827233305290824824211766932840117152440529883966104414885534823346771246746881456346558676422696228648065702921386034044791455777858584554832655863638000065910000722537190412210488173329016185878902664932584289278007342285872945835241879832230108797819180917659357208498363248097070074521263124513400872799125760277940319913567180098555434487117816171968695202986607083445884626346642935236531079076540268012095567108988588338391445160661638054283504853643058986695020649735718460303196553349999563954858287473072488969275011440779586559654402461412367959565661312412424173076980073379566160614054697836124472009269812110870738420372587695314028871584218691212774078244968624250781853033858277891378122964780001938690455310320186273234689343450441317896023756082209308089805075540216235361127919946197205241758068204117156552294872309343333719526832918938736067942687429535303262506753115190427095793936517648996626814488468572473517674988274114887757803587444559571047079435200852350382054938969834100748793841885181699807508651712723379333957334181292861777993137066041846704781961462998752368324444606375587870057820185319463289047628068376243499281987977234525514659301181985336583081546070521117676045600793932436613801021818613968167892802768351289594780085165206019076206922034554894829480345114606248157507163996685365654455376458539336541201722915063802881105321934146868611896408539116713501285046490729547140000370930581636248467064652195615095142193096402761176435067652099851306877247193829096846551088678932930072873957653593320679971460152699960913544562075918222501213362495532264881187053959087552146909039267194731718708464114827170521743359805746365620684031907682813981354496371182479898636237590844672281155658205893536709378309057682841169468329980874410667431456285225580410677026704249869681566921259100649871044117681494545284243501950894545059288257662785568895242436425141886577970146213265993178851524575999140399537945553122005201961913394243033785749200008538491369034575476153869531365611954537526363384517364513548414416902200486485492860582201078541482699404952528711862448299271711263251470445563977786212296252668070840538657472335277950422614899798261105424532622375844121752157315283330800305593338232675956194480280070064523746197766803450573541978635920284771818427681854598327532584235984631994125524122689494458148552619531323900954602981907259296632751130061521808606020941444806444788136514311819726354188051778369704767837708700918786281716396988252079401754880357651731744088948226953646433991053030892768017216902503614335354177835553956436501387393102108446164497794252818348564755131107821693233375651826306830507487468580774862204462311079781712789972712485960238297852711858379242958878941104639175891309400586236497307285238543586111112585162154367664473253463805598668492905484189786600659121988481588495287963179453754242923783816687805710213543327200964356687760946362116057676632468417005622832615913138625446217272341565767233430143187805643327985567511445491016977685096039850714798464769504191987302485901884406730380270486578447087348635280156057686680926138439930610457832405704138782893112281286748890116435847937189425597788280307271943796841697866051258866449896867824274438531817667258082237076826322553777092743293339887841386610671014582037842090496281535913657507184940071147373040368006918766412895787134235646930039142644049806168747366394049214277922583954261924770931892677657225761964013386064429383095394468663163301891353271816065751392486901537506678376075228534185735577244341066707363777392800159497078631395877840816411897866287513083440340532893579185588161270083666685533308940449554309321645282897123377267819163603145275714543900176263140278430243918694325778943479380743373809757619975893694713172568399519186855337536517215317448240172240067531913711245485892236566743885334475546574198594228879229283808044791093985438349242591861173851814983896673340138006433164924709478343613313489253346960015946345991898626906369342539425268711228413970888670052927904843129884524603766780977513433162568665298435029725792711429321471595625425869303060189159742159654914349552389051730870717250747111368790046881595774334536927333879377023192111839237079558506741898377107560074956388755754090501899738599628469260309928110919539310561724700520752932085043110767354586475176069271520789459106971458112061054908895622938049870922644736045482527304104128936052955277016879841304049896051359610324831281580976886278719979816220430557916431986001274221059275924493365448324516230986674149703268876926424575166595521131882644040629638703944981816868099749758556548359173218627016433859675521878056921982341551482989252406007206067415470170623308315263920110347138943387028471919013836281227992462682646775673897045812481584836923470888945719201748676637640518763832655445882033470752279927688269468345082585697001948636066733601998527802553400211902822108342636795857881837149643638154450290736326515532224764273925318543676162558147284379000741766682936670769594780311619788540951698890168413677476810672599231593372362726147022752950262160692005734975047417310731681570192152173698104948924418594323697670316614053049902277785089234649004128937405840397807426856179738817310930206800905400073941847471312921724324027445011679697555068144712771282145640215490045336429499711921777916411556466346763030813511568846482550947472989331636602662874464479961920626682025408280763363809565059292239772219840871514552414224950340893757948848067265397490930287102075063670984463651565367541032058760244240338300011922077104280814645480808964043525670370594114585441876874188427012974426995484386328878255160997469377791018514918559843962362955811372144855878441439047144855020856772902068667650359843639234884016123354039931751700542379605073444604928110463204538521917180664901343997425374343699692502492337623482423929160064940322017419273966104207656828527928419457032503712752810534074951596819057405721415293620888708994464492042631969243358371258286173147012485935894488560509784075045824940993600382845128204950827879961886508654705948000489953738821375920256580577940742482558521846454634311724253283428441485858670708753100515522748614820837170302705952284413223858152121490689006719094144848526787588278405604032286945023771489566774518182061811760875341056066533860589985286193469179780985570750288007575402064695216763523872916173643633401125135718396103550477469090970688581160096025522460005682065317025965994505035420256865728135123988698198060031124423490210135399010467579057287877355927103424965958926236573556930566896815028007218515182842213710136601534633349800335736908337578900543114983012675557593860246459153754122154940225579939401431117637995116981572783307727037719486581542195385327042403827024329710470708414159009593793336717355100808616659258290586730484714182361834879027166816740186841939518602852542789505502341285023443324372635674464028882175874360699650154940080851740591122059943933120061224730206826012739683648572548558707857518442087527092018485843518976061752119459641575126303082460716449659825414618709781072738098139679551520506568751221515671579108123174092700577566697725590792495628605132629182214874253030123810688773374430863329555024593684829879485184241766300821631067966410829400420269353659063624044337381962713755262213675115879102879682150579212660657288243254596720644860058427113661472904912191775109483652060846152107990362512699478215826174356808015209152530983362572143682308662664896496380540252802184426212670269629413253375635929627270370662486209666869016716954932972181515642032381608290329485003100263274479788028548220272101450663482121487475700082297915473241664732520564886737342396412332341622394637761904362651846628397186417214306498492608557439958868732085212072753036013534621222022709123181325903447110431214945202720687460434954995065802798419372103632036484466852585961632688736560189264818946667154753473018378842784865407756165877739993979262822673758919134386594925608037628666121341280662772072283193266766854479108702269148708485064019140592480523679643544485677987226093396252634189513843809021389619755906748736732853912272422387285822143284826655493561668033022175945728725325326985342171665243476441753881269221224833547033137321131794651562601601649825107790029457626335745053384717925861889785539865066795003553119340350045211558029463220355036312937244820562144726813344768344661077270264297452715261383111469061619919908325641160570549066459930059115355369391113055846987028440359707446469769184281063419656028141654139102987554259343694578173247468789119052649701461979144361366799228362715819640485220938919215022317678693084660738836752829471579906449272622206109041925228292931967606239601974430615661630189745663376789084967768320749424777527926156325948283794799154392474974658510181322005017692943217653557301119469043027463842842881992626590817886275992930233293594849735789379983005579904293333557561389331939400049992414650520338822213768494590161783580322713044918040149803690637952031164091707015364107591681625099650963789038603850595231559199228937473236610191096279630749580357862831548732073550090830542541177252412418174615568169489694086756191255270341309436683341293518506577860516451466468901883672451344594164820094721416976082787046679428939453045086886113700890619825158502100651764936257568690139767379100552948206959789444086523304382860602760504883738077156321485952579075971052490069999504821965575456055915218911558518678262647044958155441916476425396210766543694771689108245392581847073787851420775838980306711814116964665774950707429300477346119744783689092896833895568601312947250079070740009853114069589721058341792793258142268788409086111946209457705972409225039693793904292903508726625916567255939018515750819325724522850798793408570615655548244454166255135882669333751102221160578668708648337245966479323839643718204764731214885415822561774089743322148456243490683330165355955387012729019631198143181279709498678135525753925586176149386331647787401005137563135440266377608132647871855764029111221660212119530270246793522830406122891525249912581700327270463083398854707812349264311394894740907499278341916224243004081191755804272615230848650673134067983135881003666852683640108203118865167337564384476692551465777595278312486670114586449920137797080290958821549733239142693197506248026044364878989278168271195875329744748376834767485067914120732078201596418940078181178189698506075238226930050388598753510907832789092050780101086537429250378793912444410010348561607069116029216071218864435828051397371918024036631099852896150417129683385649764541047479270706120301804687607603545507990563686603638356070400213162985735054629035652087828446544658800031675111067656555588569121862857102318254151171565118652168728081697782778971497652718969362685007547887768959978124721538667438451957483308577487675289357851718837595121136823127591890673929472717657045862160563995812389184265198909330822586325859050055984780148632776566855121261496127991971718231505249020790193627353141301764334303893414633180625503014764675487407916638545295065462861765985969493720731740810608006084565847526983944534529182229766722118033500879013716703777911201712053307468491191981835341268370840781734095424592337906457898748558205282019240786112659396059161389616336327355367395799924564523482500614453244864731625018310855736306561849851133814346963844137654130282587919836456029715091523980418967617695155928728419272148836239016001569358200771923179045473178601686514067727881211345571418160030276809379542008171321242013734318637941778543363884713610682887748402481890877763609959451996993714094752362712076759443710426909503034934974235731576050259099784047858841826826366565683137568429524347271498367705721088955130577174470058394102566138795663178286092514828955087836673039044817297874027735395241113752707817641079751838160032330163111221850137807091673554515696670319616612290993513204331169329649930199478567570759641681204085977271141069396939753777731906206061440129761098595656631726196731538553603925863565649680460575505708992972516802416118094302860406550664581857059271204579171546974683672045713346920607703731575622779792529343688015708217202400621883550021784725626521640833264442390522138071204962666225851739220015610834524772886976112850961581235973927035277174192266523668699851037424553339708126595832915331099812073619185294297767355697433408394934293804009581144365093416098876612021679451280882797682015828548710632323234962268212409043415598914491043006627332468950950063562108948405012476874786055602423483746095327351126257835384251646833051245941795017464754038794764610970664604557206895045537516785870725408652100580670646787460845878150672799288875858180266939455951801469075743693349077976558584761729845100479135375424175653170691956658508018826882478204341891944968963965783630611923625617163797859517428467443620786783830785792288318317291137986185289145005368114411323029723079305549099569360154091865202940482907809997764720015189022710010837166642816374907032149452293366990491186395777699010903467540991399152542236896361092098510413485328007442016045880576426526112066014010692429121488962880088200767717959048676027356497714852010621146039269421499960640841082053545858235198790275589633786295482031035085720624232337042478587573644762407697811983199498536604314602992941316508502279315867724987668271873561758469724242810787033886739815066274467828353490193901461094271737005749270667019737428786166667368821080261166317884999145997875568699823327540997537731968462298073051419196490805350848688834360526332976874188554993846438039325447948187282065951761569253537186492131717759052998394483024852247627832433201879716322777093922730802891740065425686589211663024367411476882604359824256016154388527770960318769058687281031683483062520058692618716786049396795245066261710624068803417460749307831026033754637821375914255537521444751573996859343171347781651435228877307392906459760850439716927234248744337478625429533433250938611827954478654338247723795250633003752960129603603932708937580207180629737931133802769038100671253335158398184631429722832209036557239867152290702881121145461399522843503655578669678576155561860058188027710022935034304250558110406444107667540417765803087880887993974622814713498019532521469956018922133547485978585070601118363522519821960285761635511512063109977067537142382871994756611618411017707206396981063429907703687294660635292427081743501686843582225649699086587368094812905320970960460086492641655702961892730172764922270845877463419320535864881978303300011067830779176333827283776054214876724201015473149884157417675467738230663525115258017888779189788235471736797368047799062700080085357007435771061639527466945803489425387091476159336473013356960184634670992869185574722476380592085909800203296317560263033282062964269240337807498019625884383078660548841329725167339617832169572379964618226794657612205802502877116277913235064930099048588408769635550674745616142424910992588804975642485775543168100628366178480725920574181903019322302087919343206136613433875034626583467118356449201055462582077016488121178419250142463963015420142113139249465410924282334140724708999825054171039746678465429518495623686881477556320769015639579372361655201310142219197920388171651330876623240215375680781996560114782278715701752795153902597103063437737979985232612166351869677123918440173944001816171766143949839662253094197923556516715984366961644218537314167750527880840417677855478380213362847891947294752583544706804323166665756345219810562955861781013395197156042013832895662932004672239381885410508121730860723099280410836719645779308753192682599370295862328257327461582034010486198815482861979721681691722052689093786254652908260522561304492563178220796112130431899496326662679456182114807246983364957023937725910772955351639425537318591889203223608434593565934506211388596726777311995632743069495931047873103328936625618479981461447100264522173847923536869479081242872347152908653101191276639117824850185216327845224811340150704409523496278180824543266483347151281344297102229000654098579616972831364506620137890217975745713978413684632983719431696198030334803626664696897717088166156366424583865109225940366867865938088910821780702330769993205550876315197730925765186632061371688303603514577262514150129760325415182086877453186027501522510783413984036849754188084713515741746091623380606140573369674982782995524752271332969383064485039526376913990052165310518995657446107980291485151929813400141865319587914712314335752524270853733089829338371035320362167463530965328477521005180499523938511081733134389715903547743470893296567733660353539597378738904340692235958771522471062550020598073796532631915284347354027113803023478074382176559369303909398354217377689285484435123253242295803483082720284991262436568941489927774842815452749767488819378473913374271309440853219179168974114977659178699197559679572207140859479217889793894712391436666840828385871660856578434392416381003304862442164990275992578395014373745991580233392327661784617150930704143920739437281449288518149582161551342914404787086754178969926722084367329599656378270433024570072270783306642400287733236008306431724409026095894685033686901389396811221194640367688453573005956906047179024283664161949279540328348828480899493649114770421050559270813893370957414040458575122654419567514145473642154177361402798546522917755456905668665361045709903367525171109443221455189330399103677388107749603101589945776552684337967390788750833134228883893083882216647836269244141774061522436951831739194075351775504066273906047534748600733255579694557540459816063951090558132628967678416139400855822550361970452561722609349491280458925885152407497212991885729631895349517576228541452448060720200837647279167508139504618966227791740027075971997932532061511650822034142423722781571258800002997062593331354934036706817820480921065224414539902530794323197477207604348643149450993316424374815122647014220793049933888708558440729372074626766418524432389276100736693450606680973820914603507912788509854530356841275975344664096173724701251505655641508465647182021673329568345025232718394421445588622252961379673553198300764572619917392375751108958349487970218505665343160813906021237382168439204156320178993338060452649717723482036381953895587041915950390414629077700926241338534908205411839523441957601276711760115161038021106724755457880515922849397655131804270752259612602439704690259186701850168617722055384875313788962273075068032236495391300598260184644991136126676050592326604907520875692086595313354075641407525112216435653314936940591217421104299261382392282807221974412213858283362038199249704674765229077480035153726939071641029941517341729757625043068255730658731936745877263946922167093028177600881990908498145440655667548564156628146201026312622410577184899926350470305749587666550939632193624871532480890898167214835634043989264591556076182785952773262794788657784022682329629163865668166305141259821048985970822528343686903580274659690413341704644041588865670672547682810493714757890447048851399330822865234472814651712170106987699422060235475608042792930922187061515764118482826905602374194940304078456418809402363983849059771785195423041447703850084624339138685544229259992722986482520089673483335650774888887788488362449324930640523401335182253412379990439271226549875971071356651858981276414558351362760836905496636210191746361738736133352266324261535711695742566185206099273173585869374355512550929370607691945103319149194038135042626046603803679189657984156913834665521952103284801605854706505596467170073773837863497201826004114915763758708788867989591491107656634273835568175725685715587978508990159649310420229092393492319208666024406420400443452835498438076868980899143330408311032256802820403566368434358077297612750393701941272585932124821161688129596921608655248246151482539081520310873913935076411708740573716382086979676012876946610647563857758227525691342837243457573659709934782232432434462750244261768123815862677923528039406697760778800680575832712761621635290078166716258932113961722137057107027840096979702164507600034202311342628129184333746292549434101131725520576209114964957505853548719676029954360832349838191642586239967389521119361499586960341470838592605348729729402283751442191027449073084656731312314565290921757422923218935101381612302624230324273476411944451237954884901911605802153436283880595847785343105680968638092974800773902388010735968758589797545515704877745044607661419632918360947754524312783681348958434023476257203397356861805896491946148561356728137479696627028081998738415014264562622467901104903104507582860033779941693106476246750699623213784512946276105465004102370503462822635644822871379679774866964856843652945656621042960006404573416384074299118531585235316849906975574403474235237966404454883955650120855859450365808094878350450688465186301879602809082587882970329754112017724771176541259628162730682293177727377865790418452792495151427961232757674618301199370724555630856955056961559356681312083734514587115704015634113780317097336919204668726749744742285997110518879288043860272422138219324582483042396351010077527704601860017910313831809672793553369825193576013404853061231495186107158445076802519836074156536980417073315760160925107753795514380106034545670032724446911009022187595382124618481632365036557141085074235458079635013215586582031359900769249290359678762706016503294567418226965589287676764911610862845170054942191783842521400751264471685919026272812549381310283807117192657514652702900041388033462127123373426303026424652817655003356735571436588687406304619115473857936390075643430148024172521137710087641781515938287022847243492029014248585481109559064000984068642911797146545056676332503995234784146777079967924630615360315308143524960586474082457466221785989092793727137275979721091647150903612282049400541605390750029819675544592685129665619165165919794650946689197082999907288690604442593107395933722999458093224595625963172689371765472564354869092614407039262891479954693373715471117884149484355539453428944281935797043802566094772270571167630588973808323107715321543352422982408871936016949175035816127306173461514482934055673273039396582510189310567508615760978071800350316579838625333877428404637144655169979866556306000950409093281755708443828881622611207239922047216117306423884018945094337120127712243153705913332047173600553160769537864733270424964264735749812962751170295836160081978612193275493583482503366474611891991038476167701206198640054103920221434190011390714291154683907079586164531380190225579377258382188599221823720089458673212265069477900184705056576024082955461143783268231041754322968117821484316825520339795704549775299618496793343549420727737328220451216328423896897314853750915248364953999941511671921428890345370898707408935152360776746716515222822425567377278412348753487653052632986638054345368683299742703452969019289064963347897771731728057497525697100014624660450023964044330878318078684867110006841772158926756902185743618877418988719737119570049442444647119745306738496218772280498477065720866558846961411271309035860665238967500601753446723300799771386705925787760891833404840964062596363490418018938584295155281868737381885668926690372552897096980143808107286241180585686704222984101025360536715318491643485472334908148743273754799080607986919301316440427134442979634885399275294644576995252619165500347012722241645644208272237317282649221266274876834840478947546139126701214805759123276065393034859689734136342184650533711011808182209514590782975376099682043668053876819467344386856433436088121920143185231833493570686879278183621195898976931653765261541516685133864699309578115751341118220126825681565997765362182208060840513675318667442470527023347166690317176925814778230508685195912253559388644206084151552587586359743592711215926011721293993992597158600627695661106019980429953444215903533917711290174834900798784597093278769699763583901715155306590557318624191290233180532825288825805636155233782010903777572783758776318251565322099945087033148916995593994777887798844706787280925972754922443331939251874780981238021502391860329133877893069387781303997379113913884676982449529989954226540301270560891864127665623609393315917143601181022195650403654881043111549447426635355477166854471080160230515418893547562820194525266565639843663682186092664394636298466040724169223310722428382953202526828969281314453024169952276754945764854719328277365224352189154091303495117128667724896049374158345314809693663865291649056846645899576370811836721716530147540927521092484982100729211886556984963629295998023734444557322363218716296214276815453177220372174813210977803710659032110060002222092215318019158776169519721254399979847559003965114100570956999647921077051471442481852948028922333744816534218662588600854852131921328636195296897464797589011089764204778650764582307186770693345071626741461214223628295508037819104979233078427342849454150559988991622409086972076793337173526216719895351448182071646724247773906135602268816272598800830671820773173790140657092361611454866823235808611833029230213642753488657858874611472809397439184805720070978783331364913869447388945087542525664466597805021532288510349918002991622502083143457172087297270903223006959202417573503023783421201934550095093400423493933389588299567759289954761073163633194426731077895970628845180177744477777305743260882009889669328624774957327277530333126861028440564741972105335614774523072071152081617677673836887461951590946123923764586249782728556242295301084390260646395894559970021560781531118427386031757398819172586190091810573349636224838211592677408439974062244093005703528181037415926711904994394824603313919001900477890054760473026480481973617174448488201060236640125341457452185328183149505511432477095199462693346143661433788566327095069722206743996343838149730968393898856981517021744934466343413166086009107308864154668245813945704462463801361004310772338789452861170564878050024733309875775778033318942173799573691766852963448925384879028907752393533654192111626111166739523170413495008774262811201504981459694922876190937186255390694235885417833875938002547533497746665572508391224045979861427603038805578886501706113084121667967972634267715313170589202713778299877052930222593666375431824443290734383854425959412903876649411610285869143257969759951877757497580374014045033832684811561880375684441558289002312707637983843869965985746145463298038761922738234964382123103808128173795168361773195595009073073673993711976673224362171720253111406680496628280699423005512928405800476281366386019938014144856378392260251985202444748966641970161661750711009994906045565696127896265318804056973629220471639250974601456370651881310109244490172248877920029561762005853308892619034027135575229559882198721261445658229010759036895643640520086621160699566219999367633796256393144488216917193571395459629617077712311803317541352638274801810754199464348979718457830829527289840207049799368645347580782342209636786225040313377657013180261397174706093511473171757210023329713121095185914557340610460365902259896010324377197055505454577429050414783629098731402327990792991240989680893579894575851455667140620931296499493782117470027889390286893965287819818537887161566062722296308004081609193589726306746395220310182528459107026534587830047507256047185662248414730319070474061613731276492834990042747356052022527154583645904908571628396196516301663235607075007304511512058744638683749695044157884176630851413397108524732697929209259912674099538024419150365662744792791572540413864752072130949278454232260977844737360006213875781415195388847800474597413565847019645719086410440630851405778683496177197337893845481754461522022708560663848547988707745399857271713753261536410689439380606423380505716659635358559999214747352424348920885300852266885739163504593001398115615397402422314691585538081092652584095294479902237017236783726605505332990332505433080498195214383402523673909046520271861875241668280142913466894451836673248443972494870795681149776993873848407865249656445100277480868965920925502452922739194708333802027344013956836852345111927011506894464395997709805270396409169530567381473864944664941990562204718727154930211390453065716363060669347417665096853113319315192884496626150293742706151280945668129826743122059250516027070089553664552314261228475796014962507068878482322499286159163871120318236552674956468193407167130997403994050817673257273597681261067725232908304198510634106449197955629224584975506925074299812331373040498510175232860757549881428531187626934948502596294375507115198871310657824508535963170819772387156307780518722060128528935250278080504094308249447161347265505955800919286453155220245489539853300413555742219535976545209635705302371489273704045008307846157886354827121711405950928543770652527234317423080109757730644162008157642838441678942122999209877501684803973008613822011438787593320206627440960486024306310191274923414022230462030650267192987914420651323229981270704921810647738830516235115253340337031925354596487468155017268708288084511637123180917822888717225857194596051832887821266131007304819014982564462800279838577843323082552223005588788413476697441263296973418764837634925382793359904594258779426289878390716049528506708539428122364154723470779601394752849052984712012173317750846215192495820476818629185960672213233198596240670803521185907934034924923265915365153651115556467750953082769777370684115579906481450609296869491863811736904954964530235496146372069152005684826975761550653753713233980116818070880210937970844789783728768171314405706647570396528711062826610645350231101840773844787682000333280285925038092597920138745621344635427306081352875650448987203812101160946914218699626456519431705047819487941412980638074910909982424421586069605132382905944125885388098680723969138952818294230323996761298193407696690061561508143572174376825854459673804925395510727553927881230825089553970414633657568012517721868699279832613053458773084727398982652041007048177277502198747828426292889433000301640505367843417682631288818815876173223744441403130243163639504466805542494660724459453506280886098413865178520756803121331056133125245716942797825820142357477029830590807796816722704887586111649307066668560474822522208013599175968260111175256650702033024102853856866356828247157523003021063698373932683256583890601659594572941793226600654798594558743703835248090092963232739505151856690716149229499156252103897942817699217433162899260248036696984485670525637257699141835899515354221043806057781667024896259466742036956469822932567778683695466319278064684875826211057908416020368157858379795086901924037733760421084033058348967301585406028569145008899973819181014909379230724751536663358422053826162677139125034020416095102737535246868447501741431261809679259370900476318722020640248025154889797366425247517618368342989386618363866836755307848235444618828095084803347976871151009827053978351881668638123287294679877915140837570234380867511905640176360249446378336113549098107716708041940837230389743182714262626239565126862732746304951802136958352683423568812666799599949901073890910036387650775874044539976192886161038391350688926339161960952490578235331619927843190790811012585958796289504869141734078394482828758779110347222954347276462094715277652293402584663687075425230224329022704931746672333447986889881175594081094608778137595359228916442935696386177412677706563935417763585782823621290983986594298794029325386577355241902897903262975672258153058934092157701907412257626392625890062980528631760134176636558220023195179688700350009044148693693130283293897675789536202713933357159437422339790282374689458837661590591206228355952807528293740207226343581644703963205461423695785694562337450236820362594926293658637835831276681620518151707594382040401565805343705797781216734315778264245361186579063483353860573050919969823947986926616309427673644549233142236113639666087495028603444941586339011653528063364929828346196304890309712641499845386228801026374352568921913044575105711328964775956215653133845150253997934084860420854389978612992693058850516852897392777406337347167999922299633101878549206399176552829900269972485380523177881233366193595009934864983821055966662806447503079327704216951448854785752110505903905228630704100624434860389686626781983431771993050903878009999967554969201221379856836777511616931728656440944835506849773047733264817982855652419215897702733422306209792270877842392537179821539091779075110507803691906500703342466632494538256591305745121099306872347945395804020437401945031923329788957134108998159535241246803681934471253460693165992887149662770279295323069860161141523068246594546851922430670995332474125352216301247159748414317943062430884370504443422813784004818249273888301784395432363974632284398267540050143520365972886571963209299614322971072315978577437876976003842333595569428293992511591464569646244292686791970005921456611127520132421192811592900498123779218504422764381020663801080709780262545328903763709083073331216104078214285764108101130586926102388866141511965853505019734750800993667798561013951914913654468624557400987554492911080245414324973144027690209693906392688704608304138118806367365285215226156475070847605241585540526794959992963433811563089090580454142495087575816928165395450899455832565207104837562183041561519793602109716819558059409881156664342233688929079488578140709433592625099083639671256137253952048343216875486558678789748325597773783879972141478335009472736141098040318804631097733678322795304475839316091196566420709022093815246133721830614164182337010912930915708822244007055763428461486564656758837873921664193991926153467613952514212605881928202901902248308383578527516315121857045575282152440918743376385535057065224264782214622159584920243580176325451275924545391818763448776717141330909106921233663631514089255495460252102716086971600636352681299756961321255875017146162954676728685795021739918246946900924806403157199915739817660590296967810764788921233539611118052958353566987315746472688741928817154049563864023987092914082540521057998342421608062376335478844946911477850001216159754924610270440894753258318025426632835168245652821384923192469655656441788340086045690837545309224262406938747049535953011223165605783563071440143463775898281866712347627015120233965449837748899728627158762654781841290985090886760195971135397971116809877898248105004715945790670382907428145070237910305400972498687023870699941696389686534125729609420412634441351120852356982225631478103387350810550409462238916365893126342214087182078633567607584990460928276078209175282310152369736855929301980938443749275118939346034263401969544547330868365635509839946757613664594938370254238644963519058506455112987834412527330334954282598715139907242307598414101350839391301723562904626499781402691806038099872347090246487210236518120152291818746366447412175706317773831738362985800762547140163199513716436404802404887353027088774348537771887974456450419566398374320984900334245640435100850675192609282883298120084909873657096878026807607837527866444519370286826853834042974847331023907651570071337781412079858953433531480409781972162974387239868064133213129157306591916960082335374712592816046781868624044764112866960286757434109827292033192777080326718164568502324025954908182996464315005488032841495854861434127042184283906928935040927872483008233292045681904998678233004801480691306447710992718720505010068249222050761918767497409590400144431797061882459975274018370531285409342251642158099539421029914727445983749476437153436398383195981447856413734013242448427008525037825934600787197627992481664142403630805279348445020926369490766645683386412624948359072989684405920400536673465332154462444443188723755593093602319803250360831783588665726312614616166551697809806283286953097029017068296796613360779354710957381005305469119077543067280854919991919059111573665316776526175721954113232071684991556023040149659623940544349617363610694579130288230654363980901482285026048640408498317854999960459015340200563989013336268840759542768439892888283524418047136136733643510123377121618600374082565467454411050743150366532056964262221366534300593015501134316265930473146105348965681850261024242160692565455257137742293620437374644029006558656374320083695467936089001789218247583851050656338104811240731027047808938861024359193283749383353800529297565451987143832426741001849046861724973978914129950058862051547337069617699023093420671814165283506943791492336466135010106069697799456453132343543727473126910198812549659694467563213213312285880071192372788083276263654967441906730754691060887828930526851776093641729856871098372582138195901505219547387385897084580776270042920718882951023935783233406719975525394007139635687879997839950138901538182695071081511937605897921447984700749496204323472704489512453015936994115855122113573037768797833437821292963778898081665083320856799772802060196014751038171014728349591257870227479945014186451158310689567616513880165353524270986690225005166761611352540770673883178398511761120297622378667124936377719126607670083387201546774465193172118433412262751794168767845656441133940007967745162734082839494874563252361694150696529373975069087625438386272837163181301275789866273563889330588642741881630581332225423480396695008545163876742326745374147539859553801384579691407437223658225615413525555461454597748610033788770476851704271021857806990467495741181151565175501001210645539161265971180961769498204148355857722217119994026636057463903935025544317135088036372940181601298948114653353801850149400025577002859412479277424245838758004250852877874008471944184796161090428069937597724462173858107645537134084263989148019483639839051999049873829452095606280907607811352780160710802606296482233839704056753598196948256125498264162272211869373461494348919155189104416968555358177950493867772810410394470498033624455925327045377779270961454852336185880253593964379826362566994324657712990369672857086263185592365774369361111902895421262875503072238046981818118361882096326051606414201641940154660337504807512391404896999621728831806057175875785426092846455313959680248010093300671945762989424906619413518576731461758330921451910707976794486344289210300320079606692312721666240041145585114628498971653588034930030492214891389698356956819149941958170652527461544226788972194524716032568813260552732595759717430821122216175908379609353869887878570770676501961434098012341912372398632035703290382870173503035505728543962186483726829242498186648722714637174970385191926663346001499622345904375516249442322827752901018997327355358766655922991873629580921367277083446052079052513184959247859552740302768086231775718075160108308410449718549598032914123865395083263416614815886858843487350035484208705650081486220582284289844278334207687289530069153285419304438182394140525641572438871949041705037692659733747946474403871506350660401720639927972864930003869895937495619151870940012327143696098534012008334758807101544960795292601324213682478818937012058198853252775206814510119519393360061110200467922237338700297414198805948930619986714450324742335240203101285144385858408021813653761059187648578192607199198354267206230430461119834112779278556063520906627060044033636089437968074468510458740414321937981751382349101208972365000110018760486651464336689183969756442806570937566590016461659975027713537921742770021857968760363323684131292811103218269656883368020097470799019488800948363712491753168580105926873546769802706377020246475143797992304175035900540300150579395127164166178190807235974974068850999001231261179272933663413366094324327100181338738602091278911934083869544651197255273892905628166491508491379387051558368164224072865709188766290271019097751576082747269508516017309095638772190446015905646358912072466491540783339026816518386446046376712991305128711434256899705156162680670653151368943072381355320802853897801190176770017582067005513034351600779795709554474155011452330863405446272772085990149449058084382708036843193734455027943231654230137316113663894572728088174788539174192899374866885857487578269556595252060310135756432380344117214737049751858934736537244682700897538850698337480637688177358795505699419338532644646478657117594660729958163067089349821029952877937472178602713201513943945048650385457519426172450072808428241730023223944389826160703270904739808164634922178422136412979289813149556188270543582762221652785785570668672278144223073879204336759939485582399468380625918616198906234218118905823930031678584089297606307541089942818752690610404721278142643146360064913004355265792763984411994935060199219158455028344093355875504418108459355299509838231949782777588884229124998330184342405822528779531537392160809437854770719910969845313191226998637494658675074449302885180748675995318675866483410636504124396251248126612700965146643711491265511305394617707420873176439469732292549926515354169241747670958057784748794610776933406023455075518615361110410808980649738204789840978752180167840496457146378585170903311664787480247458453530046541343765568151933030100989009518284278087496133147590894292771316023934882032614525100238427380379507500593906588416780287687272124288723820054741231722609708374770016204471424828335798757570314765406037815408285734616312166164994581469760514248956500677600129568607431973306656922594159131274505488955738889473718497133945050445936967587045704141280254039922787084977833242443686607218946126886278505879448455854338974607083335717072799695587532608090148006039652814300026565579288825392721979108921621594519307864276880023308159723386167011612309519877624788892553996830493075734420371945430246195399920239426885343555458287887523109301779663991270539627248970825006531488055130841645597329505666038820577938745388793351472146667619204202044308343789570528711184671075468401247111002652493960191585607519003310745076673058666907028584898281802731760694792142894604597301464033414141650563573873751209244653476279817143125499079722240168771790020226875710305909195993508162994805667333150286095314592155987016915772281156094794571279905421425917748686770626376600042050237472947331461005852465640779644762495476593533320303555065608310115123795518899148210858022125829392673407660119729033918556346295975880984978062726981227439545206272807415834975142456153660176028622189198877627209856858073568733788354349219717192881854264125844981985109105217811554042560378518789394206370710064680674912673968240278889290815009501187838970653686317165596213048242725416247434198402112225845061230253532315639886988179176973555433644930550977950736342082109688552061564687234631303772968797999640734780297078073613156358895758938344133301892766233575392244570313610741533515812613731263384780926810933288405586833552622462787583766300576181220783811868457009569639890907760719606309410375930287188519909768396470619395846962178848539196659072325244838866008235049547516889144213431738356726013755178275336277971485664926848958613278192362302927215464679767978413647382559681710684518504513160847262370501295636741580309682245463417435043684861869564514137842303542871771813818705877667059104985688062614661973743387581976802538513824932631265646411637145249414555519894992949875762018312647176501433042067399098559353610574041257492583731376023321674523366698980432611768180075028087594792872131304758094357285703940743725498869045859792642546926953973843800058231176501246858451618454256070048457059535927219989509908044065934327221233985915028436389061940470908464053820844875217886745355051499396533155150015939327434423290253561833176321598658911901794256857111952743205553641698680837498898749586031483937191794661830393702972946073186042860254657578812275412184331183154241862740267925864561622415203924266794412267084384934475115598219510609836862943862700172460111170876232599925394329817762557975936884787588953868408358854765362049660064477113943991597460633938029908965712665474032806808421336166207069846386216775071284723132845302526324706240631746792636423039032946229392107886104936350730134633664830586990988278186294339981488149843205774556075502140205205115887386365482955534511392784254792104025599078170392938504963260603396846953729299787772089429142975903271222238664262654160843673746929583968658294563939625634207237082189070894081799196169719682450363371438595377160902373772849429770120545204068292100958180530805315379863888031688747599853299053492750800055883334034325523505017035291745649370696726740988402854696544776875520092395285647071850683690632101842335589585107157280210612991868547973230686804256623532058193662550001110213429823401674074389604163719610599740419797322028495759656493303939148070399413121782765873423336907948888160744353446283801778397204594657259989543427201437645518119532726783581297207325109613458288097346046071952008937703695795100391375560871859254506546136016139356636137498755816674634836633763779106392750480880861774543201875751494536235384863230345476239862625154806276356546673493174392935097872638932373892768393939222517536162475252583619817775513625368724980099144678982194730813746080036186366145877365155930403810830355049369828110029838150556441015917343929791835775367590112225071371013430143555644444293691150808480532771167409051745810054904383440974343628509946259963063273003784158715875785895841385383640764388589646832855440550839162382825666715213001058621576200248420722852660988612553806518034023321861344057678509199243129023006556960499116216202126369768568027502443548104711526690307330684251246898212458584961723091245906536598678773851520712812538699302821391959913858966953069479092414225808243981694605916390799499948508156904640364113795526426261449180193550314159930786155640558996082790074673852324362323481523573883111939088485982757875389887677391928449727748492619900364544503431108741591775688159413529360312098664793575906976173600585489361742435389355766488254192619629039189616760458307143317252784150385776606885241531768785221865793960974882442662991056801221070384183523283006928036800067720734627180565389434632635201579564452210077210015394235326804596006282670645809608569706543744678948244738118941380279957931052604266748731370206467270493845215559863847917366655771332728393362606572849945327796696143762931018050089396619660416810208114506920538036402235350009102430104717798926797255357911772932850222813290772215671069270699856433003884693887791866094974830873954059672720131025051640099950818119965629989806507167386709550353029399555470678756738393803667905183129673845570666272044662317622353652201355794129771346840910324671322518191218025025510329521028938732132288852785551135209185370055774984082744319798771734338078463277091839583081790604460729076618605524247123232227124631934303726364869554825167144751984007118576532377562743451248435801698649492153528072310211206580670607687162915855079506613240536431710009366384204146829697222934496867700590170564597669081255632908461351406318966564730331762388709663991810721207825506053755625667523029429409614282124267245416984186147543511663691439284342409947979067393686841523170396388319612935323512238538781222078460619846331146493692255319856000057756894091641407911996387794331576792609309675181584978069174314062104023654146857986362873638129438968363194651489385523149398252320242151850611021922048212598404406805095411934203075451669889360040571364611322036863319361321882959368622871131089957692099257268746801843523257962232303905480244992145456322947238282981082458195863583791958142661999493117809973263161954800585070240830079787182504084129765192198105472142266669862308828177987383386891324884878441374477684050330576304156858516336214019995799715755912339464523084575340073284304082713444366791812641287385412300925219046712322183166115251094059394461768467485762874667198544455750795795230636304213343909795081223648594734879511103988742692680174700711851479890779107952572688520324798894462849225958207816465505470619435633833931549929264321723442549005756435353768033282340834576134979558646743822800170270254286400381087181457081740545099906725059172624625169987501618831725800159348029825187637640804401547814364299055181221666169098478016904680685501088195331824803110769718066973224440103584419496889017548988072178907300545095308830871507637478325054268230647604800071830652801812753574318858270405009140448931470957497472822646920259539912624782955377689057012553035126950545332858618881299878845741978749152709810621115213747782176492621387285528774589113125900850600099806753274213644703529513530579758078742064138727588069670112188623228609973905761119292241642792548387146808318070343374831092695096095824839495211313122655439827209147980749371657913663624414879276172781674857987860854467447431427053737375159151062415042535760292863471623354936675786502905324596307827201742528504399140469588474149177223348450870814277607157674769132760802015210477413001275587187391501341445242317581063808982312215875736465339576640427298134716327177594534723144776258235545450307321789218761074268406275201502111453740609966584654228274905523016530029655539690382984523656753243032882728168596315056821144098042087642963113842814501731081745030378395444269023011441196987498432520436733790496428436211775094302452258349184694979928965193225298087827626145476255020333432819056515966935844025010630038472193642634499008588325397521645611530136624488204657473150502362163486496385639508813951813085133626582094872986682958875332493822589840503330604492410943217493192640276311176962861087654593237880713739597236970563706818941637970733441951656003620349192833771360405194691284398216197101204041624372673247935848520803976539358209959954800890690309915067266887012737400030178274563097689074682545781464396759474312918803324452922664907221548924907301878209503289047419051744150154143413409910704860498574543671856533065374165427534794887389221943998850215388108404800274944648639291263004112318719016550165974498287206872960853260872173523594133282399102224148465157459492630309234967532699671254548771066617527740403393620704444517018367561200451067063084650632842456482777225406926747123869624841840382770242495096176711221158823520796206733546792934653100020927073204239611883726737070618874282087720197407041345334272107402611884401078715902545477963883206436761136168716163867451717917642165459889068450387805570804701481223764487198994194767619564400367967804118985654702479232727841749014114345261192899281860681910612062490751432559180717011570082102868177251105696883976640194758593316835701898797788951191226488738372155915737440814800720553130485153958617056151218331715004706417614515749687579837286372053225462156560714053281747926048954423917277572749327422295179335182090579465221474667851391215831570761498944474084809882767905146986506284613225686375653104321985874915409526306615315114916775202506095456498581949938593268567394092470081653844200296234450706161617088287726980464922126717214807408837875120890430582921989009981245583717993495878156710303879681617543381039312581328511586499963072705374642443282966227804306695359764187727049890084002888925588547432115668515537246468985383687597913945310450605742802977863452829236486444048404224548715776386540493486939877560916651276441803624108089266034415241873773755483282206443233826595570401910316468504880762271516732648539144938786014913865972380716044299579744155491189316653342126823093445844917892934004031359957104782017520317323444450235229234712270396183653845016132647887133884173325097913581813671048997946999939148789860187874651568031693297456879590708828549542715432600248235065158350427823426152485196718288057241686824779549691058435247292263505530670171683149066217852133636826157395504006400613668864842601789568130483534632995172836476020575978285996925649052298558667496871497250982455243906120333705301190701503219137742382860978193997509707603733280025184289154156995570159707086261414822798471633629483643823600043989834143754771530598809543679450293696767739703381411398869368516300476604642408585461397786589851742710092485541010438965612387973080012859797098967302107295864354031404842329156211237818309488524946538855291242581837176029072311783002393350124104286794160954971521105180052432360244811505507885279419223179405092253581827174883960038856960971617504617354450518304320572925724508277842208872562020444051340068274023133186157766590215212640267008332577560351383714404364747859703473230513625495502352264218765277910470059856043338088260172730045794057141016662599898210933969622651682710300160860867638450085071697563024792504447432228442698936426926791808565571551671362595688998426093959788063346791431196359927184575881260231915624837257898301519476361057490157760178612359062301790097599791079577786654028643274692242781027287262277016056427630239818276320299191531444594164326412247873106504559434993037810810976845633828821670612881288626485575928917090697939110037371382147292599848420296729660803784422451161382551019995421201553545907242903829366172346633030427319332785087287542879355729735801346879783096628569928094196676444894425667953272859065401996426545079857491191585380146222194743272945442415444599509282141903426486295187625850935557479973348563592975978169382454761376752030255838203352400276922942484868200529878687947777757559543310825330027619574681819261885514757667592655274766655326148543647062667344393867962152838371192446877235645124680933399160433145126227880576059421000091786468054449377866561880054473505414673762941617315391470744617263387007263834556869297580388005644735783516158355343797864314223452577973394048557188120200129001520175265145602404320834592505549973966797488414957578648533965482606417439044428598447522633169891031692121493135558397788044252573580231177625456580937024675120674180167839292303954188330348080980442428597157770880312128273496476637389868329067314519781787946911177587566288277215508118454422491344436056685002216763577553392794813173577980195537885892861322106228369178982060788559132117383353548386568010755802866709311010874339998595828457255059239743422776448435533041165308755098625689877526693649723699493065098975182938176659634130768321242307549928338808527683850876486393283480021186522574518172043846338868057674416848661808432820716911008726346523065855318443841820106044624021171984968507895469703242902402339043259364977344749204471409222343677757923686990453716487676755427960622624851191929998178827605830466890713283346394255814731645915849069057395088864547414306397433418609881274912672116010701048738496026904228527365926474969061914608088240222537251370851778014971788616252014485111836864683332767928219146586040365687326521668316262826949314421132417791319821858685274921145804018713199227251816765996306936675113379538983500466168031534572471143938190611452757021696379737140928713431748045707853451789765188912606364788046687265605934085642045037076561470860434921526276625678937776586464849526874796067021089090469031827377328716171331184205942683210819117553113173788296172408895060014906259528156530051301460027696062067406284474967878015240780796519738321256004555279763862954307758516198968552332516950155321880894707876064412304286389394472686363478566590295802664490358468053528534655546434652570254913278313289709393512930113174494976132311833183444638548624694289650871551660992478545232142074092524577137252429386388873013720969929948585381799028024549675511694933723939916912171580038075175253513564883903027886775284904188561401593295721992790477244761573359627748269766288106492414079743955390818002765424111158907535403618940002678609492997003134369031622561700113114730961144189541608706709630704899105107404913916776268514066499530324670327872910038969902379399182862994072602536592710961414521945357484471554080414272707592055532277443116039478160949707039340310513032498742764701391744567903738371103357398239228695898313769271559996689065369864856930932323863439721642393090593546134911797922997490491808727982060421931916922993413818343844338500562051876952888117096479135962003485056675666293825052262079936630883561323901750879900570697522177657236489754277132803034057970286692892450256149505085355165825852233158820817367820135542785219401496718990092405622801960594896335113878673981443539939998785201875469995112184933144338525589310248375805401910475255032427406518432854383986164762929416466926658484188696518901992324155401490247028565358295099259581924908389244696737175174141894234266742100903256070500668598924575955051255586856004252709459678735389648409046525303211331609151900164370482737039450609480055731412864150756417586336164891415109707985352622800734301839635533918084310888132360016604928349358515084902392519265569249619581183054401835880062628985880486950954254609953354645734122195104543011970711216778484369293240054212893968172009933987780556373728754694039021803636231630207891642725329712262635400012967980224780019356121390683076083781737034423164454898709026393650217287353796404968403113955962018813588270808719669680023822572314546299720543871580570952601240284346318707343758307791407460251897037003559401481801822633640265090634607626877367653368955432765399455839565860226193437856737851971059501349425726568938528675012514290908243177882476424742464032079427349878300760908315548186149263237452621188791681875678965339747104351402031772473443996834671745182178723066887413915935318613610854391186905986437692325970663067773687187227498776659735131528126677315221167430637474287109591867196283797815761374371462178939400069905110953646559948866459223972097931658051535730642392353939732346482348001735635344593495873928979184757894378922821441883140033277339514406135695212634431014645223012447009305015459813131031826701700320911356916508616029356679097362290754360635375203670258957586958884450619995891008067962518095534621585843168638088627156001498192726705550599573031432471746831123065872331804212950349220981709498051730614969492972828503405942179568698448893458284696769791959160654207017231483590169627308501436268259590123761076701793418777775708696474197882677869586600567303931365996644080000053576247444950263546693702784373059999421007471876483417632185487268079666545037136072080627378390140217227105525688079270342656019253537752540103567067458997886696180257892228562831281613373085158325480526557646233438841128923204735734390893781687350964209889610865046023897194403837954443177759430235247124456021136055582668676195256168544256393975520138029038529161214599625688116319675301829962610220036283730399802685899150909754043212107143476340988999169501986972998801952552250848595226073707274649106061853334958809343638329698202329787333234904464075962805787727375130713798563807956824118855538195034559182895923315534023305543213158438163647382759609021262048771742115160771482680292170542741363192037226705152370123994387511918737551998231145279390229719101065070359022927610192115723688500568217625025264102323788318777748877137096482526512905358573087576143793291431202265251818804747197083674585701381825314206209307799066607262239151767484742762566847866079248850653677366354452254357478285380536125103248723113360383040443622232038255318694436264930465485255607233364972030057105663288924613727644013766190492464048274388534146591442557278492978841020572979974035154029837876657374606141837729877740350496477341540498437214748345993130397645678022926874654351119373929234306486143419095809469797346213588330475720615686741251362005302464840763312104434339697575751216244999815370504206675812074469250369341798689095433328859062203314638268273704079431357635970454183280364198055974587585555383877205227184462791685025776999276046055473479451508721460418565436266082469931446329285560821666414915087767560926374052365320584662279939236429119771215594584449322819680370481958965945691414338894913161435317461728528020380463321907442852415598966890190765760216607610416843688559379946527454140110489536090670076460613849220698910549982201957342023212564246318168725367813589664402897669636745481460429542214833023749480457836088673527799955183160329061901896677359573056651116122301706536402458471929587830475533048489692211483374143703442928160232872403644626456731195647995542980215123937341487092702481014954034970102884508889232260309546776354811170846277327013188867124927837092446504348544361703768107895217247259398350357146369636198219368785426601314524300717310824510288756546162539837287236867988358911280954767766619527406669816499382121951709762290541528401965358743190987087401977493657516213662237110294539307769062075938985554100680276399710033156922157404686376588347705715970278671884108562393260039898003704682273451488521980069536140432621803869552544488233537139531817231332982116241300817928555079197670253116162849460335926626175154955983257980547886135161008485087464983575096289935398059244136551413068847510657571342257950986191509150540013519902565503461533889305176287786381163922832861590481577667362007810896308674501074196304366727357263642653327589997756274490225446523394424596867604797186797074619260999278413497289476370926475546888971528980805164098622111030734099321812759238315071884431832518472772443807697267203585287870517711906551072925768940041889483031270975150250767140746355918337666309963140476561237742420205181646421580782036173749630306985649456265184087048943357422336722769922287280196887579461845504160979456198359182474740448704044441521012898320908498623157347272448284638473452598012105109231973187625101428639621197551838843350595982808168428279456488280149359664562772578278546763705221808600172822629336076384224626370859128863378604646585368614517637079530418454440618401429893405203375724886462249318733984584282997065230935303101150172549275774086497292081077415554009379289109048940965635126984320561349797933635748372370290324163333810907696509759432070646880357833407964738820443212875683988194976743074715337079378686327104989595182789864987464183763275740701837846061825243793597678178373200643424609659346114551137454571928206285685915520978254873539415317784605813826321506048610757549317029762239089851964121541654340081546784619266686394640367546409124722432126259980169790569511975448706863013009555702468201582600115102888610335161541036751200661433010640495620627733239571157513269831859152840035434588059221189499292517687545408913341414072245004770296066364193731381560046026954172880159613831136057573358637640139600663082314584588209255547080493875480977375017545954098877720062860298333976129678397678970920757035313790703938175402575831226378739504517610873009668176554937448577598315224005577264279235598590575788186042826213039573315839478132477543037663433373161360788626012188054640123827438459713014500913211322346754919062709361294272592425766385115807670510715753715321877270801903211662233473214803272925891006833951601890782615710107693289185259522313522605965790449724011773635856025462895736743642618270781787660847600522558375745016610917914682977655465040921965366216090650858362647611993500334084582480102537760446647269858003768524489041473177594917540757895117278649512786077853732283224511584122644518992943597323367524517485977761822565195597170347249764691313017678150606493458171175377484221963874432502918228404730820408270150447537984915479703857486487638342733591017218007425090047975321171262111123557470323317385649299097280762060476070829450121731447601894704843263077177333463592895302023993589716943983335225958031979901161170414857514988791004972726195911363501304068817715960749862834895730468177478480478937131938483927681834835008235032826725811926815081357402453486787849090922802519365905067430456670689466801842161048325355065669949230043524497598381230135165736089471128794108351593359851187164946401561845839704076870707962301118816823833252541696266726264135071062175983823424478877805742688648253117587436170587627387495966456600584139210457519362119370242766117204542114706592021231254281294747513934622390878722738792960783802078788396965329026733719430212029410168679378882416404101403833768219918838412510804092021828563142658539744833251515050167605511195367760651872982411982018060745685355066615038209289427898681110207438952299049022031227647523658740501179725902072248042181464681563968449971520204241484236517286755798363865853650067886449089673049461995636510857980365217975252955796327975066084415823765841283705391877418001025538214288415174294063535850140337974641064828940242184464609654876676158101728831979980553693134389244574034079615678302943739425615273047600919905264095553842898470250637174164590439468550130554916051476277418810351224630784255824432789646618710170897079166993539998993169428347446905415909134991943472902688183141011303059229835731859376926968610718510713508501648706795566378292217150450703826639830076517855752478349341136491059344496342120811200895767998308603768250353358707037171335139653252824302334691306642728813095321221506163462685268659914479018104852243401134174522575616086483240042652096453762905328167534095679177782566123165197927888868222014974884379860779925317832370825520844408764072759915005006801660177916286453084920381331368755388123509771817195745093952947591177317235393262550607520827387924991705493727502346690190257675783589871919665319895641046092076254717877272361527538092824202968295206832614049931822356701747559586449506103214263649758342603781660485978893844819454201669327339844932975514653746644846718253091343934374056356414513942334867070545885626103468302257226959042904953165875121314315252163097087731815542227552244597942895919841312416217302944932043053581692534823475995779521879541489657606245162881409779558868388451666701674464902701504239688618079558769094699306597279703418786268357749221597022884039965574817708251315633742567565784281795252405435730221243517277859053687521613070321203186668465535012524597965131099819358066354852425095409540842344942088436080633396972045178758238137276188297623716976085318272889660683615401377283045544478079221773143994911289173701035015737562646632331053286736814518346178227677892191824038035964106619936627041197798313654507394929082004178752496751465469751288656817069158349906487081075021346929952645696895721739056522072971093889931551571600261592010293843120865025858122252584302506165800205224765113976771529499000369673077593919070844813612994999539692353337239633357773388448011483666661506858355602579655401310963060744758778883855279270068772455810889141209707470289453114337290866663882600268377677276636623489193166011864235551756087484488321874781736772205065476016442108964754062163456674318219614374894487873360012317158667902364653392694341839391907709949594281584371375250341312637246632302797055462227183903126431252970372008081741613448803613043968092729732358192743053430210323200249078787490109304861388248623110129110647567403726342845550051677981061611051413078899625819319113343132260129960926904215613724382203957252322530042508547628851185294471946756702160364930485762304999346984088305196398586894251219386332876192508157599591909832366689165611833914059694871185525910594810205990966099305752243859250854230284977849907144471477157574182021132363339836682073900430048725462513829742988862352787700080734272718862829053459564425953665191743149176593119276168379518784037206414836952913685409076603310192430027395171188528244596960206750031635339829942622753537674268675277599164378727995087069904510900585243585639191490866524167035306221730271699135928590650534259617898536907157401247589776380136598679122583258421081143980448448545047357303879858831671422127299328084241740275995958004184663014647945238574004797132811981895810968197349252454887101277634061038912966733089656314614396342499570167331928282148842558234872727125084028505134470352071155014034536113721646736307743360277628893286733677575909098351693174794117453689124454617840607644889029085793521774580020624256814451691282906027097764928000701996244837093274007769857181113186909205678498818523151722233517982295251967627049818822633186665213051395503290787262009033297901924057717475862977044067630621038780399334428800783452248274971694516085157478400639390691687012710554465339131641774360308744345763684132632447056677351949710896726950220854254375754340812992559037062178959697692570032236199005774195338896222440286990449378955375943940570802867832209786106363676182654841689006972966096377063301216799420922346289510476575666190144016085157434393560863491555973920558900222716615756911404429329854667993794536083239948299080192671373782032203468459162749151043809620300152056498989573770796987823388938331536579450750712123484278231432983723244117259677222043140315156555667282343793483283870207064861328399967985064714137909056867121122347798353876390918251555915165279450372964458816356388072297151626073030578080254617355993992475854746577521386118880982212699143569965839418199720319096217291102397852364474510065419802806553095767194193155564672679238734491847443342569789936259086309265401342635780989305432805523939804717131153164641507823705998952279763716479591643381661972921909073319913047725756399258798485839577168664355489613166376433906752635765639193923844037803673163227076063818797662506140853636741218259039057274219946110338452816185307367387754672225049528266073249378734090818648831548436681407601947542945655252138372427012774549197446652682785890134145578799564842393953902015004365288613275077028041850960625205120885277152588063397887290224893795081363817029999068689968809098450023486544005813432495149065634781375835858325734343199162262331780325782073096793950009353765186285740772853518512023446588928817392102858213489117482202183728081368810995536204016697311682871969284061070731232095969601635279254843709946005487505663462779885734950799248658909502616057676721985313974630390816403027924159167122242130134319760377345335821347825237440046452436132739004697361784284325197674301073899051037964023617547037806497213903022948594660583331672295218522798400087068471239518883941658857881399214203536081030285609493378721481745069131307509622593799250136014556099054474097976678431125010708779455969795296379047251323153391507127812361814705740806118817975888184850757988267233613918442137202437698021633003147225510103561845104214958337482230199212451773971675119851105354921725014217195791671367926943643001325354187175290790711248141809939584052754908982004902526373967526195828585090727083816843048801747660153043512781468001040317840444467631480543585678899774848113264124907234076394017582383241019127049995974624699738212470952329105626690913404299199134530478449283093128757020806474099310509079981413366046227572430098134321369115983562358045206836374993838785752525029717656300194845813929751166086138439586515332408807443662225409747614361439056731207947516277253356873076496101481980065999500304413971232231196549531808845394952806232344629276449960891180439304721287671474550197464283019951098634865929845694093668636883358720616732911535241219505754166808807488527840014938548667847866698067865488445011387265680016081270259272451097233824779579120882411622833783067526529621835088114069172662775851396425631939677184182063535100793448056434856645475381472722642183023136129979435983582909040079639544479371643131910829818275019478738037735653433144447886594819939235599745347670589031797010262369156072249023450479990210350456661741542088186130315717751208651848648102952624076982133763241010279704552935068304391526268057408471371250559755796568848242459570241775853422796074120029614288814716631756001161908826652024619701596229933593688802721485106669015642463615696273888394275143618160934999565895792294956198826062543178948523266953475857609495526670956478559693464356567054868580815731367411063003524841356106079889777778420039432196172703830294258047541087999685896127381463443893142511834937181052268901540707917113622987361152607825077056933176168457926018795830528574454194152721397685211756249225289401573663292428301823075595632687757304323022758599200999409790679873786290971332597643581049783234929555439027068695413657824661036847902573018560411529606225177527744906402561899359046714966495486986782719633016816659472916804417571990222410459175138801421691974211866925520412658412427155370381896198171786133636771717401795649602087452570245407084593318848291443711349886363562323200674178002127871630534845149821915979518442410599223081938573090099276603647511255837488792472563872282524837026214970759101880895115719097591944501561688185604260630613442154726270609083375168674518640900289315193203666746524876766435929411574035042913786728316126552891919529823233390098945246071960192228239554273134391906723418885705548406214144299046906029301481704684930367206772267734536866590827318056133052312062250249493588581130135901198592065722230447082246852511103626742057849566901848998074695548459012973658117912248738410245232677187192995039659829327332788920763492288673362245947310019435285775443997560155101525336347492142240174476318158806782162039254092990191817168423603864407055940752801257956427664532717867175708618236190768354194709173027695436535478188474218022372330482841329714286700852567474345658023021265633086946939791099408921110891428327027704970642652348963017111516482869735196089280186110840902652295541974461065155766355297667076156446656065906936821364958353108209129732240492653874491954647104772743898669894466107954990757828040316927212532294470695378543442327979014519139778975949007582822905562954736182800256412008195182518453733416125313940451614045703127755158501132404998665965551975498913317601538986639513011290286110387598899751948722776005544505404808941655714110518849891370902037578355083857797967496760816363351398942788322854877815183587623615276053106711167904323776145703401621075780633309818912915779175997329211025582573603577123635165831951580478891132551091482562511260339737464355424666263824191397362907383841872324284342597590523790729850964288921005296275589854235619875556499679517412674558837204663799254018625152453559577525781165253480809889117668824570456246484189111590965952601376261980596844726528167118079761208873352446343004563500954068379292990844435712443966535578760446581842368327998237464419660457404559195598234155345554917057349901418424882280345678365774427622723880146497657430798052045218417053815600245617176819314089954572454382240789961127425110619106074192711589778190924592796775332087768605358783677009541464664873553657468637928982341702618230030988258309570835420466004590189496148846411701861078465775503234379529926882329306302198272903752212417538343805852202297181307097359437517109143737794989125486144383371012335505965284815987401462777677534634378847189600644562972450026213679490268421694206005667451573821594332583058606252532633923781362153233801112900087826780879140163909571988113670727287455975160976788533323180384951409597966977353101288765702270842015077849676325401670415994089292222235705139749302043195484885712399072220188846401844375407313090778611686477438222618136021405197484598970330760800771235575867398871669496614662482985315048661667572491704724581077131189590854110146625596053181416817590805045833958452346052360018314112765721447217710146519454175959022842244368086492028679302304940901191083584332230295927743448596848732626102909429098111539540078875582409951038167943816958922880103217322869910391756894685038142249175405079661104633025714083845907472539752105206665226361974988223915098643722448480179198333049112184447243266190700988130689527168326282855889766174794058674910373486087052978273576710355641343217744268571369340018591197006024233820016801840368779081560267998693585887936134201392547356545334388478387744447161064409892901834867379947815259878860789769736693933284084324317305600385789265384419685645670751406448308867992568330693841297330523718460279978999624351085678285883154055043679890120831902900874222647651735114039820629919455411061225727126875558132007060733662100923445859205439153693763805321863676577277606455483762857350119591859182431578131681903869695606718684534712693169685575460419521370356184543298754423714084529617339001711918378276196165593809170569414464339616553148216416643025060706569160250442497169664712132650553959256850918718599191602277716803181442453315659016441677927923846506149290415694420142170526810177771598834896013480677316419315960479392982820698960031986706657575081937922761797770542689095393713860510596632643507600942350286782309480795342604973238060144136608509517178560038162358172837701435440975254136460584624816903300260793484226437912660348035837852907681896876233975655698385586464210737969865846384125535957602652989673287204579600724165919694745707555907943291091558401755808838210719326232101817695833108757535228559185265887302884758331590555891548122807988136903788552715327047419314720186349413241002917297610626802835904414551683990445594209794179204765794900953178740598553200107085842069788116722462205902377325201871360386242130515135922841166047463725733644702373694358495622484632707700125398071431512207936742324593086812208214802260781760089715466750785120202187673874112384788837406852209583772957282084156707452741746328985781532736099051071048252581172838049309380295067451125344267885303285798734227579474934694191293831388147953240276520607510371427794380003983583105908474052700568990581145281093961303612883125766840116184343029785955357788809440796098807605089335886622581235286947445954119970653814983268187151259976742151214705823043892498915061790068350253072111447306290453179414116317460592739392076753414868929189757913506701289728492364931058125723421172612643275640237532050051337660280623549539499542349522957097255841994759397183971162974470837413880050410638986148700276194954071954388351298524693756975988975711210668276323879011980837627433806761679917134437247877699829298143630792316097974673102315633018836072289754906201499910584637712944313894907091638605192333459796645613615227933934846227040770025171492755905968608518666828334453395845529621590953955472197872015108533206475879108493099922902733901746168591021927349519699667561375187464910264608381631803836371880661727535315151358436754031299378312023221789425818052878876683231209508331456501442706484539094785027666305991418034477094490581304616860684645182282192645681532744949389997461695065518795878514614247973537081089454886059425284149192208465832384030513050263616418554943539888625489221922223862814940456173109414232247604123277532115846959138761789597069801171897338955126242443210447428643821677821658345642018040081644250429761438574141097785259305312058264424307118459629533924296874051158201816790200647956590326164309861106306651476176458490739925323393778150526117039230116038172211787144700921159619758274052120462626217200201417035864741184858747822687624181127530966261627287772260977778047041885901294470339542434117900868084482002311442562182050869743709706294505948162686126636660183187840401717777059521051651068689977328654727795759415351798833879327389358526460411111043084481035960084483859484971862188673387381289614412086559813667165913754582421426661255811851927768673221507114139089667672602128083619417571115876065688938262668815284604640869419446416127081305651749916588699725135151589245282768116897716050650618937939908310817987395818194819624456258181281735007063303246019726993299403986526572182588190884227754108721322752341163750974610301669455225363809979431365066974455667164304172701935200168903099225636052749909437055028200363114159123925748130433963088668978436630601774124742343537042206217329766996464974184284206877857909549462034755957863871546369374984409661040627055342534919062254867171853762479296459010561987230558372890182549598875280504448576964671328682591723511965432353174959632699397842443912972547736738993327288572611835488600025608216111461164190804175457236328215133163416214350289114501362624288694844642324486061453005119284159205689334436651973828587462490659454698448088271437568073598213880760103543505956002708665249078902198461379062399767676205351014651057883371387070354638903720265933703854402301980662883906054416856036706240724013860508841046874398184190541341896927259682339735221118717628015228626310653695248021697809996363361404216002169825381853919077430875484203596808894162493116383169814422756067548629140750413343555772376037550415304514721021987760815549823065468230607781688178845205962387949737584412151736342287800582427191202088715570970611961638389146364505271405914365945129396797745780222306714371995289770499506733746906591206262698045740942962075127243803444248325445684518872074530556668606262362489869624360524798214391803064354479350873852559711408106207755341530173596776695367055465951906780783085406865487079581256906955913818650101400442803815284572868610606785295886825834248324558304770526147740377330826112569390369423136687432573342054433862702430604951993434833395700625089939448403625944008302220341820878449357242088853653396664113550915097863226352335918401234391253697005500730407609462347721381185974499825853015197632564481618351495765617590899145905969008805362210273440489217509392770437063432398131083912167354344632833417130457986872002812753830393872608024353244420081331456536323519854276236712562448373871115167824228842992418196753673747419788521143141916326498971669424316476635378293810332646253209455042498846281912194148061659503238005053331489978062153740682246497030552027282555794052691315967826541489349754839232105721394665281270631824720302610266871232356684230337267429541379401138528516389785040039890943682427744156316302085014154577798257882760537204956147770816961298399023618898681730807337527962829393653401447268239430415928751544231125211110930120532443121197836551740395032478855937411554348324766624213100339503294590981214529351617972803037099721080900541478964023550805236593024143379486403179560752065879198087764269237711246486168507197997690504843536215606041613638179916446242595678480009858335373797669972146792801848581648523669068027240862820831729687829750579343012783897041061131983215650298776622513953657099072408005780741290493691337748255487633298683427807027523099815021704568300317121627231343489751757117036887228150102772567126015486295308019534041827572029323960223835883066860138321880899684034461941243046142011419813644660462921403182390895950538876085844277151821871763417598533394272114564539043246517709097682042410670235781718371761067678268122817974018743027780680063905287945462310011460619073989079593058068613312118805082488865728352945105721457433129768929056288187653256808289145333684387128349500766878098935402937774993729180884514875821409996106615521564417589022073863052155261387843816420984923837561009930066112879748963228016668764967510854116402698374773518172156286759574323442528748029949192897603958972770883142065809985775668062482196780174470433032975461712137505946908052806505442742106031847633229642965808189110106625842372815502780741420584277207070616666155773256381172981445932855136956001197370884191117444049682310890180810203001393504577740050412498283862603223523848901855705555948776514956436920797722896782139879374252372593800682332585469472594423103071933116090575888899718719434667465657109164832696519143191998867806369335511980103497758462653421930056660323652861918244210673659554270450430375337524247913984687722431304122337683264952407044256921527224573878337588612123637153926752291398429444623659052958481293175177737085921508090189950680363353785038057673486949031484914785477989197610701026721668302891825194940870886907251712608625950450396522864051376368022054687684155371204971047060679795371502451122871718506306474657171504003448180622467429393990205306015298686337716943113219992606590815535094186234565132280709942216208707007790935643369278906840375537110616754836358984940499698413381232599285597621945370304687200865476950652489598492230933974702663727879493177169797318964443764501180717567171786507493860375837574092719311553037614864449949009510850221205872197020381910934914595642128149400735269891540990590002060758084505792954855676968034059299421138638812027963415933751025732070222117223200446358276101790742760088334348237939191971924947158841694741342864398745187751059894270260696928552328025079695027648116333091175952774363585579099743096122745846381370562948995330139077561985346067250854727644901024172500568336756401520659553172490351261073304990216896746061822681478619184905191983719271808999229427438576995262527202995124284133426470756286469909686356447734508026417141655688856617837612897469629909842612931332984905661920009728437425828522186482811276866175059370891030451631042559480706272004182794896917478234560076523910045838756607585056340008446987529782800093154742907052620478845643316843600029668093644461729683958155234661830546453021164007471063216423238585164232657563196362645688036678748723710825651833939605097873637395468422050427918803594154293771836397462228796035060625050029216302329107901336282283241894555942485824947802685535227339292697600258509959113484334941492735361365606656539398791883889481569068231805593118871695261237387122501232729283341965303411431293942691256589731100458941490262533346250501659259369077143248088455753098927787569628966690179045628772172977819846968897927328697526474439476754478319112203302198544387684262985321065922411780066913408750341463080451618217238630981040195296054025269965086399217951633577603866670395175026977605474990156287922436943188539648985721833611287723393166663264245320111835471121313916679874634948770408232524525049540998149811737833163859180731663255346871116785410076378438565899763549621278780129446437161196870542694911270240785943363463451397560652851440425882879436849691198653289228785042384888467372663929940317087705529775946553666633174459347942904622815794986993948843479911495070881165104386199294326797497667656777731176453024869379244644806965496982418639648823787695689740679366586623745803679067488999291053896494783034814694760223556450559488905460581710520394862117203848886611728599379647974012662347570239647324044940388643018356455257588662397667765424327208082358666676998902134404834097476858919788282884870673270069067089018380871794784053593369405906083422024564713879933838930561109286005971741559041811531423940918126158057031933331225162909486299557030594136186301695116574093872510547286224134641827195413893844439062023152475365429474168937498146049993639925638731656450287998676495034029112737677055793652857878586919965988359067661222282423447458883493057784621315392318646995112610822062082093013366821818557980615215728798034517926943220888128216121123563293553947268291599262037620082096634700190991054822630827299849800834253581677504798539130669636707823915094451359131410721872964527545212782939183908380605183509921249722428001382676975398364808212708134738756737826116043415751806182153900901857952611500550212637907104555202514028634495382935035653375467591373153715940858360625915625528222529092170743327166578701556320240644035811981813095312902844515847503342524971128564880434080266943140103108223954900761915982487634193970061377819591289246324576661500336356518429747745115794954612567568406096721819939581804814435539081207804194857284971853876017992351703293326372217729571384347791504816086863436475570241883951387005269280240447776978296110608791331805276737903001784071574647065763362136182806554169921741552904416501196348390636558159844195199313124135986062182572411776041228273566764453923526434057671184124116830514302564414471854345502315488160523847056842952986557973937489721805473830969171463301624651108892011569724619914165384980137047773510747132182132610926737958241463729418277506914638783850939155557789466617581377454299691667446659172784610306802399740964163182046551122672768779412466731691609269364468735864021318071112377513627948358932890892447306490662086833358138340757077189454830833021101743134979516258283105831426625638015599457160325145632372758088977420089354137872036850913035856034582068560456599046496988046403030016453721777205417288294810814540559198555653581525444451586201602357121949577403628617566568553532775422570268477097060809850221891468242898410820856010431879409432336817190917321179455211237759280281451755067488907870526571961255487505393644908651098844371878889150233896401567493640503923277060878915166610932066350769637385144585722491219594811648251195710281517203306986727569397999107613518960877515473440746260333202565490422752064421041036425079491013159837392732025481107427798664700278084716683144047463447054975638698207296641350578422217054854437465517740902689924289648113007728164855992072961266329359960722864991908569187148192069736053509160693716678188010641356835738507588544130561097148085637979251771208693118101465082443466116621077898196373084833096031662799849496263108766577188412431058011742356161120767349785811672002411957154784110072827685110913378611336808518905204010931883410531164879306232546222638656987868642625281784647009675347653864872280509539133625063909888438996942990002790228550230007600131226987741362374898453349836183379470376087217106863422144675531866170187368030766361964653217489681980024690522281803850580397289051129361819025695520780317310088967183366242171872002724161757819243082381530389883119019849640578125993443915850097892375053281374625691808958634309828886204869973219533409530450477898330925380859570579623101210388232953600532344342436385377549501664813482574080833967370778680018596183422169234508475478447917165841345832290840680249784899661929164528945543982797269752556755732430779710497923330469800168586160817976096111740045284594405833386290790647938437401542596805318825028972675158846634859796960130987893026381333458388633624685139144448609474965752713585633287257953311556167260187866515586284681559885121617709050068496566277444704382880849226687854753868596256786684362697572220954186576292110105819149457294990268030300149034826212103907200776301229923833156876143522431465823877361232695695745600285077415251853422442461272655506225081326819977911047670467698098479151485235914062286150210267522012228051717530194611904875832826641630914621487053290238756577836670087552904446041135622711164185218093655222078572981204198560215070232066070696870937669010180001531728845200215330855689375666430320364218042020985725672320492213504076037362592085922529133229951108069285977201527858756382057259601027215998598748834384581752230437234749946273600322648279360278775997301372829173867540813898032966216715678926637918808556487379534184867160697783357107174367948831735822997840282848016721747038255608940576315110906799052657023476406012235843646963051780070188387147245496538952057588510678401287128615206576796907538773169730496494876835822732095410762352490214583159035118852019477709267496861021156460797284255008177652543275227452899486578263608684805781475357591289442115436487312340864672367873814860188009014324861508667553296433374940028892752763865081163911795773029079462981954898129711070274839679788033520978393995060849188357751698802708793135153271059702318323409340631836186601574695599748793797305544850735719267355507634717065523681435898804734883472465665431638638392979379263699605580723094947926311976430390126433372719967587131902455000407350921394538251443980393901977683768568585072842077731940199086344958117934785625431096200673434628737631040168708515355793012083153567848768249679179196107481032535864052492793602872810079873676621896785787198811676144657561904130488945104598274536067299971144183025062674409399193755246379655909841427824625556525787500730225583890558475743739961186084963917461510360506292931553678397701131083133371409851317990776051274595515916656978291622601342552175331437232328940841999409004867645484402137610647309739925213125070662984046812128521923591913832871365600763896935074453004107134154470424196268250991038372908243658958772537682437526623302978291384466673544698012338222550297327693313618938733800790333106741838902640166966607964983502843011159530086684344966543297195726153388012182240349159025985950924195337824482525073187564590909608984863653075468670750191591900795193027116394341669461836062016849756663630488086902420373736332386729293952766153382731357484116791868191466194234618165603992492939236854521053385428002003397111453999208024509696934052804215216230058873480934906525364311043510363800192147246045921151357697310561092390239464214380537606563123282174719679918087301409384337992979242146085523767469130783396871069821236036863704077056372339113004133960706192925301970926761730710023891898588365357305309490919046887820374407261185847842104454746423070704042268745269097213647268352344451176650625675744654153762425933639882396437635565664098345827328934101170581939042196120101457705423323058519244032328218980978695277543312746786036769965961493998339951778879001606147420305917192149732160615764207902716565990495596835058953833166185241312093769150190425273293173776731143034874279011282596318437079543053034673714944088777623150969461665680434080900899515927254890413825319146898195665879595576357699017685429388298325373600536559852579949599129833717263603416662460213585552840053544860169981364530874913557666920561274353799889144660525985614162504239946179189837165515107731108708462643645542563832063445116505447672670648494768271623099868858840017269739532606917904769539168382963929701751561790213762242236366335819997992651871037977805465690281003749245449261887322613669790608321988351585192496186001063913655153887008535266020083362807093834660031506568733825341502996178593099952353132487718926073755547015893478814242958441367173777657733080613924477178232959879143458217829832532169366587882949484626019383146212104805965278884222370911979907678648748348928543781465455827127359878462511290264703404272117484420376813042714877242217363165760619208544057446608076239848421100465334811415394377150819631058870944660642366417244658925382072031521557969048521345745407081300924208071539676464345175365867699336987679876079330496022938467289428383314599314954890108674059071113745174737667146920281037773358354109309951303798718178482506425371353481912819902799718122463521392332749727463615638211809016237344724790320826293601511901892645835888694991691799505743212947212279184341518350370361155760968283895682027095643754694892795656852501150994203466799946807920971835424742568652778731906611987949714512539178258823806189233293686454431496578180740056831240404307905415154027595859259550801908006530015292673887038194197204361659955128564276250271682031115487769723033530924189307307151880619753372861173378675135559895850374278869658491889296072012392495504869726456572400258954017439823252927230090938941084303621911325568398296323049002346399104454635266789428852022433504498165276946629160543991738631512393805650292730264022050607537011882382798828275129239932447968454266664183894810209076602472788815295646708135347595505845796592025789298756699049545771005351985280526069273198456779060652486765515344622351859363058849834959779480711137880375645619548776394410524125617918678405437342955871962200951967966946625572598089885216474029184506428650425168950669923087076833519106323244564631464486667514677030443539593608145061543674965764998028373624772185203128386615232823635648898491346666528722857525403702931650827128684393183384640892349864332776105622883378279805931616245381776765392492170388682943417889667478906527767282916529381664558581149803731791979221679231260296481582791141306127496740047658248013874623533359101695189809528956729292280693856293019322350633637884038288981760156510032344298420971005627049327035430115885594221732734483720395853011639729172153979932000930455562220865243689793975057086436888719209097537647739175084659563603811560317950601608078878699580611952294294934734749636199186861600613213881886718339436837079684335761203077921136190251749171325858758654711072507347340424746089208588287364839548176200536741372654504546849918621496116270209348166290739240607613078823816737777618109284096485978211377390931568672862371848279323136622489579077111146741088384853923131416390897014594700520029403122049424244228349743039941070475481314147074649718763334447971199482541948587666028381753440804314649540088242468967386733525788751667713583629867577216263026265800389233553135822486859832910686681115343250408126541182874559096191710330855985501296578232887636276173337347888784458464273319937165400383762207658271024033468756935758015765389480487150215358233929757251682536636497869168861252312798449349054022842942515264296732789036878912459849681316227981681609970186047757437745701144311205167251963617761422960936581897557470914602466821058913785061927417776065829918612012898202403379127429988283098589757535247171992271582719542855089332904787616239177211298825379067085971522515710604447896927815709612489256818431507974902196750179262096274698881573015458744494972002121352008496105030704608390701678284496354730214573570178087659669892969405906205706820427739773206390735657057701141620851239712372520198310971561646620412105226511437827551565663047991993632187934899756772732034646474317456209104561585597205809747714458906403810491507968765921537056354033510809679725107664635641768879619622938553983674049001730691271665070228233926003767800850567704705748998420880494068647580346318660207175779100142615153972517439147521326801157026319884840092568106421308047047211223224678348347214638078014903139206450690110321293130638155307635083202538214833146410335947290442467014418785922357668410087677862996693420568999831734969205025942694408850884942125729655542364907048467188371993398546003722359722354543293516708264721415707398217403311283709842205821380509075133897957864714662331406091464027321736854176747825228968455901060371120818104610013459923983506571751243542246065663342787085810356515298880323413223932235031165884356311096537430970361028561673201772421700616119304468694341033323711926180043767147477539618989608449392694342845379218425696780171588362094846563657544236864916611034097540689754580704717291884356210526005172435545051766274048573951712322835449566310584460702578191303909781270750942595131435805024159344143875764321442663380346104947673453606134060774098778376637516396770214813888200408472458819014524070731410615594819424424543728005708488136411288160901462574146652765828612223290293665882230632712363119844546785245573226275615188511519161307232102252749950032306468604269607099798370772078816898555226785750814636923247017287148586253027127599837958497459393420690558211714841491920851173583632930925540788000860765270789419869064958640326200088815877539044310363264074579536575429214043530942037159553012276531233335910977244039059337768539744161067466685999368930082705097186257898434615225424335404359176545763484624512084334556825096775013881834703221655768386221872260523431790632231550826758723032879910828069765897881628478104388952942882995575544696498871754797322310190834718624728669479737592341287813287251990027707770273042960393771970348844655120027551946278982466068322796819054645539919955768455172656075798803973681612566511376721215133969443481829828297780929266775875494169689573069595881031447222451979549508552684936057449720226138717776934317762089564467659937384631889936702733599613808285457915899576815240271121180416585264836752285470717161262078179613761250673539235713200851535672429371911005678801859997437160979254812194522984513937574140876098866799195471738718295875352696198918397101353795828705436273871563172884876064983946884834688018925484918982874925088650511874043959201378093923486650946969490004745836495147825111928642703439849867926295788316441375827420992072598876483441620118097780318257303287842871438423298364088466448773750083485713141792480818482896027804879551637311645174432955017143866686028041600192664048141437445347127290353447697526941631395873687682686733227069489023082426387322207143100056261356306849983281518570308779299486409263628048887085649959127163760839940641819770277673395173435892765470306868726615009954539417291299444648651990669273101463940349085902431579317250333654333288784645888134880006537490754677588342376618335024744148198698109484428091065666205865794073956906589711505798097763514918011405201356233098624856858241761367259609582499955554780733190216765887873701892987648653593797177540331909949069913628950253088487235444472567369894141944605921696599537798836303031596632285801437654712295984237171881885094252964226215802743310372284882268099951406596157078918501651556250608660285301959422141449078913251432012651301793199853858724012730226312787266113541115866608105321870944339009299033000168513092763136661998273853257929413132604051862826290293221586488245965338606903387476866526124444723370503674420026750612006712161178128251958009949748403707029306578530662221750302794333483135131942737216978728843097788818938130592521192864001291692376841204669040170128893522008617974018867652094324666692273270940781846606627422330016741461335871776427913552761035201250938599181664354680640995540219204567159424479804590800341814282015206415040381895432685582887259323872906403456210502673371786530775599322045209464179569354693311418771339852697500036606066554863117459937228541558098006506786572032248574962149382213947438591362199959478085292329354200286738192579448301558052285447779852330517844981612139243236275736708532347724234243731786170299934667244769209994710110108117711718230093098535153500488363667162196850896234977035818691515863241952100907791871002877867754409429205078197873604912358738658278576107769433339014029540768190192626075312076590426768789708526888876536128257964908147029982740114556436647142324419617634444436284829000703250978924053588261359442986100960964721008035188512395201692771793445381466416547070524644760562801324080040757627908334347601797448103806963155944603379732372763307772161570897596684765409956515861392160154001301672448624438618957985089058279218714314859209956059889651114042916766510300108956237575727074623796884474313997084335441903810406821685992581519468929722606583332599523758508571266349151631534201621830870728575299176327310292784800760053591762171598408666621013702779783493669184473109317760149083364058123751762682917654765578252063974047106022068739794102088550105738046906388624759441430393566458419820887704258105692401587987053149844081425936747280211550121787402920986967915062238383512625679100880185814807644254978080128239374090927842688054285439799968655055695393081929446643847857085903772310978167207545509448876304922026839084500503273490269192241982296224397677519230893907895490672158527590139528328197624808932650689692054134038891084408100008216597834180686444337865255348690422545727615850371325043350108327069535469478777793238645936459622255446695981634939954947928050099202733739760900274720899194180700183622119394133142685070590097415798179292171959745685521835817999481924774162878538167272690170186958471046169041163700439034868553849800111525673757457928672027505663265751084906903211754777296479837507175063913330634927702162198288681593588657388573787088278490841291054020248916600777757903574834157159093199871729644686612103752867862318970093986964120631428450669013502879075042742255761318034219460516279011233048526650042353962069596687783301956409717578967427758345027462445903955107496362735267290781893721166767828891816938883940769786190843993245807354553957866318853585634162996285864922993770663291785660079933417787488259811079751740930938701637769475661056368418586531717736406063576113627206507373626046724384571590565500269413860604511186338325883730868270992844791454807693851773960463984488023302285046061009487955711059140953191761402125811778323405553106331229829797636146658566962418234220277504119018115250658000177101898909686680102859434808398401223056668026143137624828660035611959503989211519852280728335636636192626063456720683732788438131830271586481224539362987344538563680331774617141329165066489298696675017033696734711760721940861372052648749239664511107309099215562301408686407569108454867718076149641743110755394340005562773428615426913357636060306340029329355618988571427713315918972007514731739258552169176848856925745851910591004934488963698451434901953842796288478630756870347524952645084025860199195113444212768894513256126925983329349174494891694533075220223191752172572945856299452370599060679998543200168988780580749076980232352658312661700880423096571010604297782274781140168858284569574361356115960436229789549220850888439994075938164187164068668642514187340521395472745779986840925386743868639847814526812008447000637461797091848977251570286348064096418898209542941084622097926626160035194233832637226607398519164666691239909701916285129414210493438231303943456214828951962708952297407264882955853368087124354725483040322390968038519526751812160437320997066728295540214707121875478635749478503846279895995266433635610190868156933439835504933815206100920129966356842487502515607059809825380532554717127905240081820523278446911032471089423015472745103617259193055121092112761532773548566237124694390495227789070086922167681920444027670293619633604209884994650952061200032568273824599082689424287285069642908851392832214752636379667197144234096749957913590875222702660362640905975244318286578223509508256211634805934469902828452886342471481452422847218299768965701262251171191685622551894323895041152359257119360281786765159184318642914461370628392465173408797560281503103515369352072352251540221129391532929885935589508485936952034673497474611316562136363484078563529645484048407718919969467245686291270836395042164724195785595887620633128607611090798493671634984534350894318289957989456543838398639985796292488693374209802341911202103200652579265213228389265263380395242074273384059232223594389000346566851924016079530687873135452606714014833629960498287157327909623109924364428335682544417474669854934829702907035721727219164993542801503165017422753412060490988481057933286014833622014898216021487152510977833852872005041458949216685481509700831506376242875036296796656765145698181707256175859531932579761656221238918697075891349254826923582400698137328301286071858674082649127888094140667716197117015898553458165379801733229188302162087319728529322144436761450824214618808092486772459772261748136838164285446133866006763510993020655503817316191879063325276047354507318776841267940059342036633977805690386978595718056111223173182357525024664357648673877202092134957613963198306532634296966616862013453100569902689279959050643040134315711426142986052795931685297141086580483238983887409933412583513915426272562265117189639682382030618135528367242248884204026872348654655635387813203921756931411492401574221422161952237649933374941691827417576025477073034018297360910885359511504320011227347690812411144814272720143170215770307993425992331853508966457247637938017946610448821261823120805271365073092946671909198007506436078710239917135245473269715346490361131965735889431301069250070073324632202928772597533213287108205541930413395437582165242547974402187351880029045364874204900489195805731087079516934898651203227781236838173906115101898012864051191558913118207913811372163295711793395123835140359831013531935197631063200298219422993126309721487136292353208024817121089583017274322939491815600592489196370236422764175271426533281783538190320104040387378533937478991410119383837271696456067643972858169132488521677551577372193920053365302826066412990025059541943137931057030353638861598410804837133017067038502829175030607818397594275651891901496128680207211633366071851771640180370259706573552142293385563184848189634064784763958494767530616611102876605361838516963707089716561669162492003815619241913049471852635872032848604215565284998500678724573955200629399738349313698119681105123687195840182044487792130579027910897711246015834578003317244797597051665693764232735848844886763462125377599446709526665411030897583639739430059429532740805885848723881037372557379499874582823082417100394839961952671794391835739823458423214097691177726257743857079030489226192199749248626076540273588997676494817197705746864816916735509842051693437012078795608130279765793641880433510324618791054500845374536472334305948831246146550358412907651715452065034324477552149942786908314477400173880222723301050283801748183304743862507015320458042186671443487275352619050605929758000171941180949426199844635116058932701279878091955637499863301609073946857495152547609055803252296831850360237274288466457511181830664773019012730576815984010655516548401084487751492737041713857212999624906653983314151232576117067473022737928390973705492818400072609506635447692179405444049531733587307464522206251087621193304371570077458825597737138384304175161755389782510539178836110669475118643506337953777510661455846048372376390956196891748565816665448210378340584701083712256746086560948196834330062120671339172490846170772551953666588257487597718242551640640066657156960471980332380245467444969709865615863779414402268367705433597552036373190061705397923542699311908858520406827374521544722283340146831219668597667281616872437854281678842728192411777184167472517153836336015885806823468214288063133513970942043213002760601717049854648373696089419268859958097028861784560258480153753486154523864439657382924067353266728331148815908960555489871943369837588315362598159204862300923458829779370131735521797253457579250027711542710419887324451945264373846587361285476067240072187865442331913755334283443812028271540287045813661934099913862969218541363138158910151603285722871236097920783918372963651061002138197451973165740749305561091785095169621969639320311499327464662953316478501464128994304044904336410619208882112605523529228775953755327779606543411463484530810299625897010345428980617259148870749288853507820919375258162061546547661850343673262137843170074065537965665601941286681293686035718133828027824575221448676449387350425080756027341923352465191550333615295881036437084664350749164347347590938136878288408217804490251641284953764228002253595091355230699592897175604839753454575061569133795219073296637925124920773771982810147645034799427645749485698694705357985858791589170431956325334803142027186833113626795609939915373532078549888538400183234511433582766843030060223753623309051757615533160242428867244030997849074687924105777953985421597206824551715067424920375620566198599674887565069234689025267297136249748603422844547674919410573493082474240832656609919914654402214569065403634891079333681358706619405159398668244242924582638128269054954092347544203738475439927820565890732587756622548161090057064806610172012209134939342384887056902059692759774091657916302693973005821505953295287844611521076619037190401756807706701826893697681001894560894890737579647212294479156139846189020583210244786471584899518217055299139623120182327269666310477168738790567445781816942164712184116875086916846641034240256154324000248076787813737592962774959037219166122639090244798204690892557821351256036222791442807767982048524932863908585911121064267556763888544406218676139116911556488342037444609776362582339048867882341890188773732999284715755178995333399582952937991761924558964889110556462395973643546175479555971404707224477787320230439972058038769539705052752648014635951042511975433470213513928523312999437429948756810626719658759055792712090996869229749077686831459899787584064728525037068442215972413627349783683742369525536108340583487215454735115257876077540494583503047785012135594669974769841667151025559582683125506205463709309465805888520020372243300142153142108423453216679097067352746250077789961657622190823656130692007897362359982237277012601981440393230664376313497401666824386535567420675537054989374593765618050777364763766524038427497447678198326653218510237006444210650472327061103523255212879124614892538276258196207713757063814706196495124031145934626476984781488216610684923706849437633558869544637502598354256536569376211379742129092728700470856112069971309042970310585619600038177124865014244650454904373875637747991571965468449315687182869669408649156052858349931996310443484541710262353634996720435429670926434004171555230006597326784209599774394835248314657048359524043228681226797036081929634081115960473610989803057358235978072749748571327972556413474974482808153969321490941264123916964333038107757436362878456212132710731695856048964308277653652500924140964647947864480722557522265911488263609340691392390771568409853894075835574978160100106684563588300904464723209000068818628338234781424353054786196566565413980992379225157753857279864718204635299488551272504514811321445388536983299892903169157837778869658702066210273143161096013628216164252127793494079363106239499732423014403136330696520485607172316021362088535670882013476199590147809032315977370069437409724963057992380186446293477107251895931862139247608765944049769591711971922505488343807966452662425503474354271128513040824181907413109919063174847398444608704752684713399598960348750748139605236917418580075180888820677620705817084523455348959946354162428894652727334253443421431402919255160260132970926426478339040876590897426404279684558232263131330947075436687833748263988913313918046421996361244709405761320504848556797244483707128518337203766821419006883092925546528420696621790651136737332996814222593369053260929927920344707285739117651049963525142216035995664865680273846593280560062592357490569232166435116964881620776270215490110762697735801250275528124054405859467624511930986374857490761829887141558406447562292291299710182549970393774694761978797862129585443270651412499538878594662155595317445902121952799765207948684230409548695038070371317016736215833114705711964120359665639044145623459564137213462796388200582385698283752914182311106588434448591113731181143382194462748329936597292147047005417075726514268250586348726235317053966373624411167217490810675558106986135356781329009135212285087917670544845828280460863623260211237755056152668635372823738147650957326679555239351812035673146586938844763266365307888573641940879971044741296048110686533782561467476362841668022631886581069277574123725309021027310301376075338437643504952023062037701454389635751001082592969835985005965438338165505752758816125586987996782474923384229922378490789033121082443441230309671794521583360252506439373967849801104061844464959230228844468315288628197047464280499094512889583374232872035714886846760557883735442198420412594132260614245941145741430896705241553741667956648024312535912350768739398403207545112408794810814228503755026921516467210240604270585382703408406891444798977108861945044531520086716947892949659647758247614881352044178980385153029399305286639285808024837135637769989187556130114808108098718385331922042986212266337443504236008848731533119815351346266468256635673930643741391698149507050757818462115975112398162528599216436948363749753084296684945705351859722115286431784571985668421321300910201375797074685971059076713692592845453034580872383496448432447571418504778448247336054507451819285352615328434477642470562060965281268979440776501832782335145651536198165082246599950828081181403470853475866907049742960432935732266925591092729289030080339208923531842429731691047634937871698266031108302040194647560252474922878110605871683881071624979119439904344868055592550660569759781842862084475984376116784898464352333135108121839972106980838773280884142777323034872459029631894462195170377263203214001815868367160233651213193858491148228150279047507661971217765415124245667458283272122482360471227139271390268591677473582423991040954792207229962966988526478003994451710026256266082875116813812459412533228997772685271608393314129222732804360410477338877676922437057385233028278843705836964102546118061132558293847232921316419533774347081363475637494696126909994016284324888429988498164574033878895192935512574064834830649376331622627101323168284545878466016892490885716942470453282150372729682143731558810781496557068476144804117817596977865096144473075820191334052423093430028577784373986900288963955241968598421294882029285280860708520605047902240922294387063543059587952506044747622020522405300636879350353114013781539121624388548734036688211917188391311708558650081458151051722597609303886489917676530221869340229283241867025014635954595475425693958124746733370158287892493681725991872250955661571339216656555957174066758280492862719968019220931528301165609926358593066257304969493495480610378157921065814890294854940171353959963022640699143400557194715808784978627392822823838075356992202729373580198631422088830600603327968569620665102288230519990150804904580105692041381291499528042124360609867294583309634921182509504519324182202840365544794955325920695829323320501477481184758208658313095618655538487071890671013769414756138655818441618488468182687149370332001804280441815373970958439083524842045986186038966233402727205684021363879109710974067358019248995703985815289533577644583775445667997555360156209429245355731884195796588518681064621671871020389529233422827155084706619436875200151108777055407692498343583963942384741090872568457606305017066713121365465069509016323732634351606920802631900948584067612865729758782468157554776192110848253640563518010906781348845205254527062141677828423495677900306606966989936132274704393176574635424690133898201008785589447584283745938192299182849978075752760317648796569621625134771994387238036124619771831532117627660308476822009309716063225149966185449020642149086264224994322306013078480980759743074978383838626006039736799801437650043425492907780549343951586080971319591943311876631897684039279881016828887685431718664964508970338069082859721736845092246737157444849802653323226874239179917947031350790567174426277527713551170843626272081145154029837326663667619602221399572768206751391658539109754407289510098293062225347400984848078226114037684419480717641880404707519167583192247042984956538031098445143171552020329332405297694484013826059420010432523968665266918572136629743788664237427084786098289320685649217189304596813625574322720597963657907067238672705438544228095026015807111386641371002443075647568429821208632183571102473309346767738903924444297281665239317821225688927774363309830917666412030348372743766556815420094007868772565226855881903525235388650686926277861043634489587534844642154070919321612364753588546971119282074543016875743863711130816707995015215909185124954038953742130976610731751953940660053215325839921846008506014002042774046161893108855795558385626385844224883722613118638698974200954715226218175144119318389795360368923482068718798452093578947204516878067872944572640929323076534802809883041821057571615648483449924216384387745979503114661190606520066395357195163666069137474721775810006370783426894393310737820059993253129042711601783500868932747984966839862710927985407585451635041777264827403212986635216605475050458542433896176219836166848543495885432393053267086375369539138613426611625886735617809450656320900303168976786269191613162700496192784120472377565788931792692275137894417129058864677399923633310126129415779448979999803567425106099938673630051007699081852054633148930413683623162136849372763425217008858554710115202763961556567638891982596330391016321620112538472534252359119733090025522925825710516389773782482006556350052610436403834925850932913810363272848532912759735196879105467438990168435452459043955334267725586140275747529849213128469432970526335814597480584468437244809672910161928708721775865992602650093793171346513250661489499899786390032191425192295259279265924520379513567856143746337157720866478021671926303444294136747628951982560884579265983985328147416750178752000070050139086819266386055015226765181218000166924684888282244055880476371278151627301127494658386806368333656801530549088279641278685488933067514120030557567663468663695247884506130490856132727226344494706414452882374925998574593187479307924442860933448657605382077561761641278620237051307452924014277678960887850577355475310549428908704963732413484437177173928170691706859042810300648071422224266166798745151721291743571027573958955772559993171345351251872632770381992016057380498636681789623706203033942519179331868055575108306888180033767248549781510707360504156059927490823567683782072028406162026460647521924263581852000457046790500481931978587768638858022592520132410906654275195333913841877505524740220971553259148137079704333170159259560880737248440998853326824912527146780161969408404702738597212359236534856498770632368029146041712401647507600260780977133710079548934857724603476150705874082290006374025034171254240628556175333779557384079937059083517291885165445851639663707625908283713152479824915986276059714517300695531578558474455857224577364729293770849487709970799982017335903721871764395558539104257549916408844763296817400083796296307838373125674082677481294056799228616940509088125847907948868195502467000200710115255711451914143353786252981812751072495844894877038376440406570400389078423492204225788807279156178187225608535326409462792362029452460305831283668345727648495226193120353346658595459984803922024188611855089883769309981532785614730806837084495726226552646956086080073705717016078534438679221127190255870668331836204364131566658259084675292034379908776401730351459458985109541930625166990758398391865995706757031872231231562365335648034544016845291342171355476145161142451453088454494622907727371720255247140831429759746973680917276082256662717978398067003336685085613116579248034408307557638149218218068545880779959080547614668201682802190227116902093192836114574552357933316329249887958015829879732110517008701380649946793592697514261715711230395550224488136994601045170984814751796787922254484263211062565503303429530329997392535794910994250604525773381476281290873789378160651716806830377475738186737793318749470839429431469988019873365442912752446006345665349634357696687744405200617804180836188621088293526584415247722361276403429151907674579051092746677453017977618763854489732735744936021597933307695291610350962705692297232186189896834970003145071943792959064429905835156957612995159928487365119691489877642403989842286889410855408488547101303596122310260757201970625669871632616707996378462397585055222771581296541310767763235920654428789689000445117854477422800086841148251607015804166075040410563918823612703757820407982302490264184799604140832158210133087866159477541875716790177207419267423801563141732934470880503460063740031806444961342568554252133702511469762338806807531603537355733706821100642441160509321772168674158989653654002534440048300249108594142611123954011917309309992990785062077809413239948224576760303919179975819666536574752147378462580552175277199039078218392837254355632372478306156770129947029592051181400666955530243283749098952135729662958396594382511565438434626068572136465216113600833475029789818950869127265169061431750510425449157514524683290913054798184159474348474398677552120812363664143636512528637887420601798472787757596436432561438101195061022237367874833120338823500429778595855292089453714003514599046887236494407283820574564634190124563076878579099988854887054051657784998002921395442009455973603591834567265873731718482534344622989279653967688460631474329138957232919309869602821068469677369249854977274877383804524841210268669535725933363585411244090924167246973402918903086187063601352320610210064297349942837002532483758102969781279965231397075825400457693380101452487151610682049637340500666433293663894074407948825682656013138206563524336456793181577532633004416186584881451773995216421670378861367598201950370739369058578606777476860883680604245307243298027097659639451036149333012175394630352914865100512641234591176298352378307086430656553323168675891823749244577732279915649101662773638484729591657642522638108600871550295843852185670069016434723893309375440244736457515338136314862036697775028814740923045565620138335317167711028578916859487867962404040962289774411793703441722890492086545645039778845216641743610780346727840358150759325286784570522511458578601669903304207437403768317784963081853820180906272321359190897328395380371605209929637146466596132238108088990857288841323112714479639358439827575075530576163713239628654973054403160736919903528058859432764692142533669834053305591620040197392893495414109164604350098880609706424776991713650190215143150338522046612951182245758617402791878319847911016164943683721184810795886311394576889945494253554581337379533737293358956128256520969573924783029161080798576583419745970779038485574546202225918760685391497883738309181382463859831607594756862641180827650013327212167210676591123305581430924949124109988675644667378425356544389030049619959875419861248909545688935879374359712616714624224569205209803182288305554695944554295161761214821950153899629181999086486131440307824995769436222759529878335404903906904607205629854797206609192981518647496322565087789501823011304261490431624553993149833882911810638614608687179113797624715393389149913448265251616474171831075085044353068250638441187646365119874316175221009049454234941621015505087449424649205122868090596055425571995365783353867569297508820755255438221615983210138788940565367973606279599636798531803050220938324319248314145266475430777071337962458459789862624548703046300525273254172049987861597352546964603184036877023886035564187627223755693673611147111228145790150734103218053836315229710262991707825012720230864385869824449891604489759485142882634809642481551825130623582956148433281548131563809240855655501500324835012967519106500981663098005000230195001013704123604734541149216542868834487799859137813477075054498328864701215481104070165999946906649877516324613303112878816265787313456522576505091856022795575036111893955076038076526806156518557103437504452063934921965864063495443576399880171658653376414333147012320884035747794867159777556045599117351513878920305299793814614608654739098528055902175869819169541493433886989500016113295732349675885802830519961502025917374266462061664067232928279496283017837539632335380645183358401490278463800481673841421295040422116714609681951392749155244170640788074931053626370946832267414539987817204155019644773324763750336106859104577400409049147333643139563589328374680498592544740743930444176292769559553969987077411815060610499126493273422991201900379705716943792100136702953079449980710531912339877113121479155790911500019551675251714284385777438352938188079213385735803129385549936674871970040601213778906416070506452398066268632311539177327584518326862748951059219874082051480388231870467957249724629556581002218531783099365588367253212914282683157076113112778539404968460291320168476221514246128358067336908666900634462216202192569875787609557243761962917425171312980878150494401480107296294514383765831902175706991795759944935282590628801259790901360839342754177667322774862882946809993446674765119540736176278778576597832613877316805590685015536525611706749193647646249651848286681353407225999961464263512730983033812706735446650627989564662807722272111978038691755432553888696911429647433647850215948003202656318300807841415389610035972386259132734449920071483073069708864202297383253739823953076971804336941799473456213246130971025297581272139466220346791146368083984835243141648239474317041559930623523060106472272240086315073612804296987310724564681378537330943221599696409263722312227802643250806288391261210836176776743276330049805549256027485132272385519988577910534665064888723817819449185821734451547960375744168865859319453495436118112073099923026188683933764597456461556773654230556769014601355382799158564205081940321198489112339555081022636514488607688744572850498908249814073634852133940413898021731597080357240770330628824904819237014631291094108455888578762704004989686020557361627991125775253399755853529938643059237098532185800965706393039082954420655548772902522347805668049855013312442617675338312356055298049365075575861287544061277023711341099906998745473601213670861432885674332220709762263343684100826041352326476261789777226418234189032795517209395747510364561509659913588425546917375192444617854450927022146532615876265457908137364748587869481818236887291747986685126985430610473095136395373530895996402630186448075948205918896451676302512007808240196111820276977437599492396430561250333407982787950968674324855569293544911228922926019385770059253270240456655712524242550831909527915708025502828531213548134583139787982729522679771372735531332965246787143787156829846078229199228690670346533770647808456712018093384734784051268509853930471981290839941174474234769834900992347109710427864967272040533632602454996138812883732663163875281377069548753529289720056896533226288176223923576623254227560408490706209372860064758284159903845399330339168958240908170874705646616636697017378937387500547392452918981479103837059306482676050677314156847622887934343395272704464676488782686439962353972940015813311842935698393062811653984981527977967073694247106156362691797865141398155020527013118375431601251807320930778093839230225761240861954165356793959119876908167484859922884860806280837885829698183506803016415343165015601235606639353262829260263475457866260553035882306184578368270526676058539084391347243053952306087281812012780845628897099822254934173947021267595395777796651308841776800290742688625480316468935797556574662662634798086989286591325616013747067523953728926631619424376451472149549171568441653144218824413234170529751393449846006897404355544332456893437778206531762934919805983274862958780261035298589680634802846528401466432630037115914786849527156925654923294007657452455520571444940637423468671968740186570921648048507586458845728840690993231671517506996166793421746595294481883934727432119286109127188140254300835449617723527979811287424778934017268993474388586083119303486915306909133774230605139326960997112239076098921343073101839063867275597106345973677493841199760672725076560655987234843969502294085367683709063730050045915021348880299811190981516103031126531195446528995172679829428235182087632378286396796763762769604289616084136518073545675467595004735759271570143936824779823614352351585983389482720966420981502357343970920728565025607882978444108709834137612803829007136366608778649825952906480800099383152779908020063583715362783240036524894101435722455370400353679511980238921094207011293807684888979316733141490483556649967823253315673229844450246420443614951117556002390086912004774995572573236725249159649312155012137250859042424906128603430474882077360597025183234060502959638262068101136677286815194582345405820064360368383609350875663390590670096293441563117353309967510877990343768644199727000801751857267834792684824012085382003732882919993190570176534212924400387100124621087735077110925625271496884847319765071905231831706069859890190199264772426577597714788662061419371125569879187094096966623155663796229236867527771879063697349058686301722198215021528851694359288771662985451105674569534028775586497701496506931532475042327253770971229544348783417483158291742049274257140986933874359485965722656154776542279523462312540071910518717834742620014630018117811623870356178034918338169813244760365722431057532365344485966209581917041335463054665974667640269087116826636780134407929794023259784775186105216445103699334770594952850826864866707451893770830860643278718310918389638398709642983334869029109596241708295550088487835177193382797663826138321652782229105881437193777214212055485828443718070380362401707395460174533259338045210061232281683452733777037484922597185901537161078572283412121283545696843416846786107215493454281391282855822350264859994074898019324723437142550441581251515973606924720993005121713163877857729188589136887561658672048802469155220675809112385572000540695946335175773610722297708609592094779102275410525915674749077312606773581360510807489325200957885482749797340120927663814614482057250022606960000415031146834339332693113739921769418652443972522560920587585712158454800569299558989477592886853237517973477166779863748609659930360410653524487009703596782270983788114009743433348240962858339132770242232958003687619741732085753141088228352710674084913214173543224976487937921240820897752882102344004391945025379679004859579702025270131450162211255567763148867553907346421168048272919939059678462381404459337813510290166554842887301033692962896745077569739307296422699708457802142220776293540244336387987880052584181388287036978510136727234845306887202248623974543427630250581935958638084450999485695802940156061409478646984964868249545825802170409405301404002777869168721987304666511940891940547988033404866368485585133536675562640957482768470432371897312633255921315737347215096530341945372418761960135627212019863267194599345034291418409423648264249623993755326385061879024518169795897677317519421867968682898033489203407814770458692848133906253190304191011784653377649700518273532143321713639109019754850946238796334991163048554494714482695683566217272033931989612980058798900128383246400727250357641152501869935499143762957101834429730830154955292059996932511948306564081696083591995359056295467932722663735864813176703229566263596793341062140474946010561035151823011282150860421479510718481463286542072337769415630314652398824579927613978489862546555711889564391557840581804151791094184071710445838483288744241580264659024468163126130202232368728949611839912799574291578155552512161082646333768011575845474883560020512005713216435698249746903190834084149684979786767399940745777594276039286902808510587084424206606911100268489173747732973265846668442572869398795208991949868654338229804587569816714081251906958630093193019372666794091278003168754178534447880764316582481008182734343786573570830329293567282789717417663904500942439622001498093571806195254883691612249956777687707390661378295723176031702921823967416373216368839558963108157410860235246249683029448113996064128299198246112180984084477269123541604333799484670927330069043909929642450505096187456924881595396455467332535268071608409535091551695509599393992163417028075971593452376222714147060952478578327730990880548526540718146596384279750707668795151663050778867651964444229716791817581828335193328508733485759727384675852338128572048156478903416591949930452521888973243469292677371301499599494406386615933877725498145762661203207521488159585099966447768522797734600267520062784375795160552553842263618602063100378044860159341613121035374295313988501232398569493963058533896420723111243838482960089490059027517978217158309183360842315680927654556372278352814193244763891746681094236993580598565897669142524790248504706797950157118632427138503680026035114344492211090306590466187394166857052218845771519240917019607684242252296553221804479492530571699382960232559981045729327159968087253122992427691003217534704098028441477599436081167386010867903400491921517088692297117631794040912684615292699085009920129203904865738630339415581344120509652217957765209450471400693023108910792485471172004675022159626736316252060576803880932608491575256277417372410768301910795849994154558957579434753846523716390616288540862138733067751869532931792073457899427711047735536623549187944787835591468057549679831533409940464270848099956514166028612106579199325596456547944994007579131839116787574864215656466331966259599498967607410989002129910366588026113404038482059103323637242153817318907233277456946480928495793214975330032248762416085005658375314954344166251813866759940749127691333934980788325466348979591961681268571985850321433323888730968368621876196650499528528823054014356491119688030618418271801170713367223244828949472470876267017468281088307253125931459961441519509368277163778729413596356189568016852642016445167240040128020169553580857840991596981813738993611322985083501441412162227584166118943558022012245513001889376348654560973186182267620852359759127064517312939103175740208190336977660033565219707072621661441254989544832195216524769985968842219575923905883775447229938094206809663537009844050090337476634120135112722526372615881003218712582439821578636920127234065225423417763376296357129313939013440568995406211544795131472293566042253776811915516286873741434787440709485498897942171089740267572045764930912015981140667404749161623312555071786150496117330028912733493722452261790770337053701035810714506984827242416826573466602755279447326178061643628743335023876265536752584293467541016303169268671029956327747622939869895078311867106049618744336760407962777722121631025106552703766639690940757585519891003223790420383520103092452300748806367785381882389391142351820654514584123006262375537623416044386985064200749358681993139994539181592691861711759435785157225610204722060837440726282457622064079212293225509668372640835739280001047357360182349444777307158669616587370015523838866064084926519360910246100551522034237468739059878379204428962339346090238382710456530883809865688550208266416846584285432621406240821476645361992455192397523532874954029970343392599179778643861169349142117814933197171859038710841251515309701536340098564695726259438366939718318297848512556472510157355666311793153872179457870524609242694394312155506767368696620222130920139453721780973850741498630256323991692606204338815024754292045855175456626994236737711036420266361856290576945311849372429874568445647770005020873312318527547861399879711154229627515907919189828911856065636822410586978324095294718754234732622775794378544974807785165152617398607522300465390404386504839714109801223957415674134990205073478536616853851910520633840815771628705639400943456887204825025213610741175129710446223078361515002270974096269264818077833845174159998894932389637952125660027862399688420016055093509227575083776360217308491497178894291470007689089781311361010099919668885460899097035088492295861330326021680008511029646492968415496546454651657866043127878947349760497846835949606250814364748207504242723129866200859373776433686779263665718788754001038818787602932469560704282873927234873020475983908075008847679777288786109466980723682015212736719109344725651641054730534881466213114375011198324743299782330861541814766365699573282832161499142123096453624198351155282852753641450823758393169539298162485094100815160860366856610401877036276646699569076018560893269094906902943351969953062327804105227801546492970432043585079603610904974799705939951903565436804951265645974546372144442968490050450945196937774562649813148336077046977616244931111512622734223735838444397894169856320368865756116141025091233327413980779733654926578731270575750766415112368218610469018782968720799579032302750487228644217095411607121658877379252315455071071980572793118712782674773338954812196468226546827367901362330401294553035238472960403513326808913520575203291204534898696870631834665677187781379445646988871937538548505885744046385130020181190822759690729765638113893275680130445376592597754815418930145345982722130134814500344172629371214264533218315393837194820690579290207413675929502783517996407714890545131864471158799002926001324478343907713748654903761132329108507050819000547773674251459912153084819667169294630719393869922189877645890424894329246071055957976223653703159169769259773554072424481072715241188388987478723661991826224478219288312279270457698670682353860190926681514215976525180346650402621299319137777189229381941101282463045979476064638652741305025678973924244701555512448033121857352694825659997059086464314768359588980847546566159212079655094570847092309112912257356379022131297203500341046034081867180849187444583294090424851495997839612476330513093156736356392493986122841318450465687367335907759104173738188138326410538073389491880020081620661324456126966539337389880160120259717726772652323560746815293893477213752884592935569430807704130966869783140687918667238289324444388497249472755478388244289176408024878214148857364082805533252186189004062138697266820527417617769749865629226383783257981450259504869023827724490960590092342487112465914909562268322847583010186744619440326791365975921994115365942860046085354770530671042000228910442754608921148084749052485919448241326375724011868140926835948737162361261419167757895843584155582438291678419141010161901660103870298802595449717445450321431373360493599993531138542216641932933110045146358628700628086180885487462674252220150831262691174279070529176147531457861865293005316816866135179622409000941818951417136389826457397444843430951467375784677523278883331825654761599823953375803090753492169976147215499422405546181993592996801817796303275788743402400741597638788899494095987896709461875716996733896633501633320930502118647115168582783448012165022401856933123814368837826058446494311316327946619471288993109133152849299389547517126433402597045400381691139641939824841073802249402992129929892486592961692030569398157985093973202486551467574894484255433428050100262069327969903533058114826616428186977820966548595831064702706661765802344967324240697365281561575123164708741254346488717303219250009675986148783631708394667581334239973709382739372199239086655815004330191863054593011784495573982959743224141661766294298303695579911994184542782162107716730399261518253455722981922551602610488812146841246495398793666786661782815880153807574691689630175274549168415431319385819567209129832277037658267250818932231899653967284698009533651212259854565162271231048872190323692042944430437560041351720509524702904954997010930857256168282661627586846288376118239005129346097852916933752636761950455436087562222326336286863958976842198802694855468848887569532703951039830354387144181278044583780940890675583278829184624454131346759394040848040075594620468073309252469856691240030839969442654619565884651862881759258457512873405575222620618024295197377952555908524951454610555547760013981098348743438959943482564023581072838444280510347958693137392788060677497502254394373305831877889845381570915756486205000582337561651626047729887605716788378848708238286338446982024596670987241875417069207808595082417784070044911752501828907626453223354915123580793963471688095979407548025261511204455458910376992271117807502265431318877282887261480280878563070967292811243180982216414339898394174225125480436796829974703032655067661270327041510094309439207057743653353604883209861894404481578502471077374064984919729053961876433525355908485234394012880695103070392014024114798990068581481577078434360431766511108235317915174961893471785048874664149760043792751838337547772543141156937836488251373836397145928493128740064497000368068604908475157787974977405013462122366082035674311908581713772641876256590774328587366981865111797932543232189000315445090736532325686406298028943894120469881175982999578928314534866751748705211847000966129797326823763790753980413007879795846852133194777247499052454358583903263837266957149617223353202403416413266317093001906867215717720047578113518682072046415488991494806793214611405920164855002825646143575796393764401587524903511969833109894211993337987976145837550309253516358574268290694088396943607269515346486282531738885839614297976503929709319690004516430097809269936893733354949091913794137651088818495095148596668565784106444497043634836150603717676832453271572163912181591997135634122622486081718159618802764150722435224301189640532194251859959470176327059340787408746395010649808813335079799870583553847754325358665738125720872139414359995775375177486283095061911909625635255203298453296589502924007340066242579679165177951683857291340485718391710322550018178319500871902859867573040529128170816491306658656544949495029607874338808510237930247137008728417134364794860562696580668032833795966861013212918338967789794070799520657917944916434345749603081098221464016949100671858658681501903518225546374892441720108105855190825387766049499695732954637738766334062931040773427857704259087051862123930820722966303604575107968283393845514662768400945909072079651874489246845520885993425488363130889319778204331468167152617012641503068810930843011777876092274280857497305658266522516534668052903185967056118431333770231798875688091296121354141376044414456166178925237263741385325637712495986156519697630139993552469465786742874125750985184652756540682580171155052182083658007513559824036727048175575000667370976377978380406164784382989416532005315613458333543725293956529333501168298755722371322956963209173803986587174557732022434822512903235829687939173964186328094771372748269453851957802332998147480779709990226659939132491106301610015344057881406015118136487507961106231805284255654842332281717796517564489245206389157651833440154951924039811684312103646626468022183551925910016835403211498206079545136703481231213988294611610766793346739739591633665297222565070420330038903719902086081146502350456943713890057739921896077058698895053673159230458070758627104403994959122198956796133597013714847098435307166150894715972620866530341694402694933351762356223447008667673854149316993066879094417836239693995586037800089419593423003898311755302387807973263367442885762435277178228343432166167438408544524218232570335009355255756220082578329986435080951851549285880398753719147333579514343814462664126093855088240252927046554261659936750529533139129630718515838927482370862180706026968505201071350746751864902926219393414121504127147558753110325064730299967432341897353167507055569096491108904385909192801441807820141459582736669921906960824555980077157281049916042202164105974831599127185728640908564536462387012567104645234306083777205817221851175749886510292774396629616755908768396565329394729263332049258575174618470533381705953687875923011473513578266655261270587974838418481493217756134224946286119668640945179079028205406643983579282629526870553637428703763321961078290438401902072889873709994491000716774659211976550585111655298536698977090361516123892165717405693527897745296093186277187167194747553582498889028127693934152381039998581245144676497872699889331957961925324395610043274284342364542844425540249205277123691216894871225771097324492291823328042365520071663293658788948592038833226258782496550739077628492546744200930966354803502079020638113547748843652560666554913416587964632064770804102836420295109670966095310136557528751086769992682391819438778120192797246742415928333602429575606109856959470910077537750759930118729772571070946872315296175306885610683834280416775949044840733331075204652523462912196382580170499741295984897371299989249242272095848994073716373284930580586595344185622065203592816013088375176256355594103105885455026288184195381565260569035326689202985614057647055114200225316366909414922898472786502595273256582414101344323036468463077597518888891706733077934710880388811224375172971556838517708635647017156977032398836159336643504496214930836139979776344496213252533014572571740301027171318998089585453381562988807746914211355376374892291947699015806699991579882254266908197650371730982903488830007250349313851240959447594283955013208264171449047057666260476121243869378559120607591652418666367980852419390154359582887126017790076767673414860193123980870027965633398299798271111088218967766713640358607364681015256454105259544327327363214980804245653766266851401266005459386097419960108473901797058227924542327210564320734417609773102863621698880247068015603949510164785100303421847946567769486240777938411371549714000285687701052306182597509223957634132263996430547583389863837468089386732034406595540131793479461270677121649092204305190557489628066738390554619485135520499276419765971008241960247235489479307149713653549586737627121760290875674826812652894246028778989812365810231909056826804400006109040754059433398302808270414743808827335163188218725465507580492856384746215429333144278106499630667228845419182170532986742739027970359234995435672874417398614543530159456282090972393756312164680346456053472367742773846509458706877444785761752214612938774422131053082258142783384342678824164840442843843413685577576685451384446233147407243915941579268692553854410184180532640716174738635104019329592717216524824158645462506201307013136993700697500743364854226231856991716647828402103918837697152692596269649598812283705344396346808545240357166200311060064353744598382612264865454852632060252385558926630246844261528693371326580307165746794640907271833150686019861288431098162924447897574594551962188381339659260927187041768875956301220398114614215409839052328839772165074930672652804625388293706692622322311026591541809656490551047538468644167804633022097006985607178417146938790130438666767693107339516639258665475606224055522198763939927469783389124573218703721223310938881849046623282904228494965665864316433135985693801288946129007007080960914136459684352349895889263774753314820933199588386761868412205372326421671072241293690555647986116407372167973008526124417245151881338181789451971061873263042320410338219009848739105709243462715144872528451590880212635249190358050825621440305459514753672838451375109239129617508905627801132163504553445607405654654578104884231179297281093188013624825558529112825898190983912700047893594207100465079455989993046823473312992483794427652514751859327170093224618547149366670099521049077086372797636885564513872177182058769200898317589388819439705609439133585576029101961476157267432530610565447920697451504793056210926924278279382802667123527773875827738755665801457274836106290032882744728346119428715224056398270293427069162372409124716732167546658796472790364567381877653429140244550868475995339486614053934655959007419651265354230980533298659186776353692644223206890125696331345262914680718155048918728821860583257258841411202163506184404315604965540343522279961116412294399570719750450380373576865003913811114973381603673480016631690762154704376822883017520981432575711024277511767917512877917012181607980948618167637166161243281326559444263011715336202232623869434865202344793813366029380107153698292254920152050774887818227080403334665439803574623617342417058768747431715696776940594180185966079044710298755303465566227911147870848841989254218289972025740453485426183917974576429648323222578637203408144619965235731034458347108022171911301619405013784572780409927285204605384342089025879216106149559595289266234422902529784535304820626876088809724512818297665060529779019733673536674379629780454176558292419574475018470355808011871119639569456623911772814162408274887193805638012434545174527926099617690165798732384509091182120254831020839969926491549735520821843467843039961594326517051738297107582145739037841980857571665805369916612424130963195816408716844634554697830571109269446458118596465704090027691032101880159906536860573929647952048845741978266733381504634535931765055632133471543424210963641871828632262956844572004311423859368500914011067687875755562123716992689354505703834598291475567673136390549812435010780445514188172718288425491927105432359369252451994025513199344519293620234781346265303215308475005739876976485399113876513403259173265435875800822097037686720551394308230228596742496336298106777923500600910657363136471600691085972398353743077227901496195946844104190608950460393590201447259315270347100711345458853870166299974834814575137593633642107175867007988878701144162419944945392602815797123804743327559268715775801821645869010027697672636075506359126402851695318520325779831440702735748301108705505810566370006052027164714044402251795651165935877138655504014341355516685172656327714866599567251009780941667130120839058474897791396702068209279398548395418878452537985662372404710482604986628702604715340945622073306946991402138445419273923596430799099746994844022571040636864309081710249889897558630591690212747298829695893331162556034428329854579033626833697538722371183711049717941816244920338046979773645770994127503320395637953718829804699425570542152397492667702496891934224441717896517165085973355522474618836671963490214481641128409801690328836321202822829516989686715262102548977937025010249156707116964291590589543148229100079265591790142654333733228505132362575013102884985879812984101047602148755430765557871430353113427007732643227091457642418429854590012957735755293019505256459632028922020078626937031993673466584519728321620620680521145320974676863780891994168130996298880504895055772471939548728534660718197530540849602355382724046249942042726133354584827629379463593568344856026644745492788432512869841517265645466949964287584735429296652503648178010517644298743351098450890920003800014578959151933118976181833727531194838170637876355218631688831644028998733968948385009842902017976054439552640677353174773747789856484124669909981921398407485770701984257076491099783913423562732151129356231445312878727579627560926385393439903320764025730257453279349648577547774143138642383566859122818941065712566093780174487969625018471387123471602082640037122334149010835088935201860694956506009315596644470512018656616595133198095474587294666762572601468877851783253693675097747646338359276663667559584677133586590305499065544663187680588426396301540973892125556506419711956953078954902249018574239487002000665644793113977603892774245711461115582290042423466854118813311798023051383113747850713293543186240573023802446512133692547607043030840180593623389980132949987781099421380820866588783980836982467928512554061359293014259688376834991140030108358337647498336364221988683517864193017145769722468358042234675293495889950150259673597579795603630997159535416913914531501316773999047370153431526918226915574843710629770346694917618008122930650277719286160771083601596375985096374554722761667910570532982559324920470432870825062562852745380800933496261012411374274538578116316081214645141104854390676186914309928668957007943935648599476923534796835210781475373164690913819209022712930349179158382589572154676280697425375461568502489444765916877273564909107358555046928440795177977500951497687805171166602550834762154461809016077791370167274194603665299576790693685356345034242838387935120135331350298285821085175949137294628976370265311682530936964764008149511524727001555210746586613933845373924597946816710754256492496373382134912505191331997966032732968742596045592468240139243046295596117425502891653339827414153168075735162994372048680277723274289202682020076758604560657220689629055875873824487747361932958066737664381927147569306984800720222695545954810810964983001584875870193791109682257883791670902653969670800797798604105912558214635746912120540662011031179161052206489301334816437022670239044142837256140468000055778347028355845769108729874741053097316016547638948104972549001226413433076140638333466134103557487850167961175627002854723160830786919528504378303147115294518726985173740985276891601720048748398951091708178006903196383283894356441227574340230458205928151687628558567857634526647584239894167157037475057324107278474949861044591439183654467278400850677788792567198450833328215914009631029441157173672267976180488593288197954421368225915472051400936372525356193456920058702503272022870591999312937086716182241399776540299793776381332569729347353730262554856222794567863914290646572521292107013774138143486552120782203079640899744101872373912323448368926933046872509822452421329080798114050945730226933877386223810702255937306320784925447326502170409523765583108040562029793188676221507330412158990642679761797559614047419926759834628349917222568179388561268777619130122193178737365928970745066574841205949384967043330746853340508834288528581447056804640416749029797826297408216304003401252779267432238656020685947574430277130607925274488939367681629033698211317056582164298345008716779369641371544260077498259997768437009937879879116869323782080342124966290174061739514201430225995262437849549329520370910205926555364484257695991930780410109135371977569842947041623500050569006894163208753633138756289830918564794085415343194201667899948411180598728300999989154558351117653251173391273953755191926099652170634433294320191599922318405385111670691325938784367498439091038883294361445600228393039810002189893422079781568075312398053975431651736118436132600010401712638606889401118817003819164824115556396235516015992196419039312980011021276089954927293729325905302917697851029181427321853971075679177673324951511435056777455212311393709812362976886922508947226100200710818805796050859390851329433298959578769738983574349408755718244857594848701199907569554321410990716688179262647432303402801754488259834697644500731042447336363494116763787633943520095022065296464536243639912709786725472286831438984264499179361236663619513566034907145160519427179188715007486195860406131534288411956609451927463785189856538914235421643937391387316473559439067875350405948913519376128761118000740597925919659216590501634623700140744955123442286316354963777801352791237869319818275373683386857599966306836961959543099132894954571432082059859813963289153684043268595178122520106995267005879321467562913291799511820585709812002997316253135825415372126550554791561281118868500025818316411799415779036180963400055436316656212668731793542022744055896489242514540057815194775505310332216901433917508016121182908800270789491522095033552947592418672987044782335106863321993100611077493068901071381020957282928492520016754455941930339397476052415103144440631520701480690852051423368677836724525900901458341742109910093595288643660823832893924812713465217309371740146184677738063113168638943044199949756639998168286268128375099509635990017880380608720941911145047113624314781443342733183957928295708368901837222849684702610477807099748022134308809559204267199656205649422197003801850982577157973222941754912623484611209449813391978189396160715600174068381873005016565366230779628610012435828378470720404311955378843601823697323352795432992846381275055881145333167780005920002689574067021809565164751220042866484413521328080990652827325490998404115640422993853249094997283852766341385123126278991833902888337965178444082212826723855381164190401161068003239292902099818893622444650358125235482284616883909811103609236631444143817369146892502153844455032182114977340503115830672925337261313148972011348354116577330175679992616007920936752959080934038865613259099729884238066743211646342609532012535060720998921251704998442476263846564834391914691748649574409288930836670283754750412205773842343377727684247562892938347035595586543937982015692886718566797592102475228043398662132096113654546628370504453103557120286718795415469907711108502695007749711945564713807764999336404685838043058899497175108124887757791258382505648968896824844856085267409136302387838318325460675880628101752437077350107201994775601830494404075872122718506353159033606597743254524542863394293010367607411556975217966667611743471669272834477174193217310639077136699010867143349130715084357158952702070149750574475666535373124886550199756588483799044884250469318028444439939944599242669571748279330573636676232489036705730611059143365506708459137297494147759645273490502848188913660444956388583164899977473612565813037530392446362636304026196033226034314868196042883213972332757585942038422606369891678934425651523636109262505898954779716796173311646460317086691086404004669389413149177758673961429899587779215099992902208564419534272401005713295880454689326400729000909316775131148297618343165229052021385873842540480287646113434334963628573789181869700459705749706645986806316224560899162566871059587456012021186573529792801438530791465935586867634518952730236762898031942985192251215386797114854549746168604526309220038049075043196589299279581691756966334633836668395526942316763489630372345865444608628548302788848239303230125236914288287344205743901169693578016680517481090784721459198617157229003918178010790697579512055897944049341097803644705150413702456696298278833772318165039131778717207560539057593991473229343838239508629624446363145303238043443196956107502432549344926341607410427725161617788348249162760960007428454492080228651441051740842304106274069947780322213749333803089451125020333806910362503470654511998007592407266361488065746594367158249173922055412091812888192249309832460019779066265062595667057964686936683585676036767214031714732727570349911359930362914632511602199339789183275553876653375563829737845045095601046125374446993344489902487129420272083246447992912162004014998144676484026297549436672611527256672898561311679426742627787460523249817841362214644413246294123044087193288647192487731139144709580064806218308826824452943243279172558473601161547438817067337445411783681353122526838675398193513191439897306317126077988995060372280164134251330255962489308112637701536854238212562274786903832842022000485376715271771290489750154330394871778870406936350767594648703543710177553477241509475891243200459430427965558389744515681259880751337625355921253432037861216769349764277975579758257152549455848063125094341215189424608484699023220961112688680334326333344403062063315264357121576751782350861063251517426908228519186903346749040223410384569641485147713457575907024132504250038561162568909158679457466427081285594876096229423436233498132715359136183199886918874712824919543889093616217590146476373418271677645714061935264063493325676004550557782807454766621444274042826761072409546655583808120300354536106987578481285903956531766323540812361630986603374073535097246847266720937076925562691851750611019256077670898731535771496030081946737852382489332420028664322801097810060534812362637811618383078295059610950577396458145126590208623093379241200211088158246035201602130427229440732087646836623630681785138628964460760326393706869753637757131821551099847939006506670380073256237442671100576374725443322730979337281204228551952322469374926570234981592362108256782460401680668104128167305639462187838538809559402756556058963855262650326619135996878019407573202655632096198914942647102701468563987056195637935976906822011709886561417477599488116396432119957178817690340817547957545750180332412307958620668399116972968525509860679692146456262119453378856230862210181708211149216087059784848198218895223374282969649665010311324236412791439358949341188093411938825148898379683223288005722314644432462521486325816488526406187047815744254213495449257148054042584834478721564429453686569782041555455662960016890940336694099347554186017063622984103243055205012626660409846659384463620650464276336299669936273477509978511739090055076008254848810955369020732470112008981055120526313495401993976244629475309024380904347774301551580007114040416331836951489383190350620524438052171830268277751416704590350406902613419471960994072662667408647002933789743102815600649569375874917138716301646547886483857052200567916111287316375545867941032583915597016193747623610474068031586570128079694706162490093114145559630699252326954544272326248436644702786228615886764744842655067988958907859377592022462922117549134807742541560052505355367940710296701747463234678919828623109341172711888173470810910486347346079993896946200082350745106983651879660102425050089379732249839983219196626876593283675340103660542850255518854692056421361371914714545904051452169613484915275556840908633272331830724092335839259991041071028177168693871076923703141799658762474665420119561100990444922039182562732482143592034624508309454208045400028344815761547598894157458749027622770594615729850979513584615871814500781585405760606065445175724876844283576023688487767405535932445691853235732859171847564807357649629187313993421194131879157790557524696010825103115154125715645900074002933285115926937962267319192282524261030152949664816941174859639756752165823156856533050218180596053936412011859952592357918160827129705052877991155067274418260421584133193305636101441369013354021863761324648499753914728527289307765351488104372187024645414293171592849221182631399058108617687922367021668175530795268760563814632497216667561939711911311830279022620417803273790467633868696356155900410853334190869109753316185376731677935583528010474714830428126366045713634181595850092225531617410235017474340859675767435898973336926601519031242289155407418499739552135722622375120066851002232901870868072933324150348230576360765158698008874779594670889505139974040451091420769981725331637940844840412642280185496789791020093132634799390680144077999952943658416058234358208803913805066289716885097343142157197432273170069779232882406929442849935684239428500458757598506789776542419972972529139564655686099077458947246579211593731447272117638807319359059621221642776782715632000633455332095787360639116741652251102777491545818378091114393159677205628258645126315968090574421977510088839002416898616105130264254636939199564054256342062129380791014967199232648309403185135440874018466588020525466321263388090849203713609695525358104460287118670945646971043356668994124285957793393173163752877518641291604734912775718483730526967019565217928541712752058700773195061794358311755911935898685206664857575936451299889145327433957340488051072922401220792533602383301805657461785400764626817735007478510451780200549076388566661781151094681760630997388264537289583668470397785617065947354301683732592771789515924214308915522966942389948705028876068938667324833655453250328431767529843546047999610029084981756059629337241885752880386152978226005754421304518812051604477970814706296999649884545626844910495984834014367332764859338672947275195801948828269217502448390985523461499080143320212620214118655561949180490873263583526580282492876524899592731178259447352327456361279337126991931892076857910982260253130804509397464111163806865360145370488120947942083835352950405373466856320307885713177214949522518200397943486922192733418293824320888305749148548902258595094346050008996107850512602073998074373481179025599955316320949532415515715384965249915004135424507869119564660727676594682123794904646435111882381456576630724982408700714460356071281042633507047939021207477698524507712320099404792395431015734949739219259334182801534364281279081477475968027534786896792853671580284216915823221799714477347512067465305120113152505875271411129954112962661594199943526588020029196067727639310733765860676789964154503491293304763046035351498089365714191109274685753274339261088193873757966890341858594587943753834230984459179317848154779290387885036353055289395567062441446659884691569743174669675632437896864020438166864714635020350009730158585745187395950510826883823646795000006717505053035979355405022971461033345411999348609417949136182631715011905607000517590363766869990062429462720793072927831707277174308861604794921597948609857570622623483864028746150726403042274522496804388970477265983501535596656292890615218172639358537461702376347882771467400295351202084339875352086016066847571555800121150691528513923598408367616316515484053312824038936884517025265562960961093323036003814020194881032808769000916983918455099379390645656819552212024437617677942718793548247130261654544760394651743046478255113984398346145154766412709607026599185867688684879085797186566254267222879357426688338404492481575704557840125410871562082053731994281046301472624231784627657062735980516003205311571999910628737121186785601696234958441571162865452113689754090911173376311979188635605488142754760381838467093775073789437289634935103093422218129641440330616389712762263388779863518851915668080570291832043388321977735014915901115542580816308544680304109264381693459802872207790279798845754069343405689055629862902859908508681011795206407299556879351260333339162785043063275749133463371564485647604977860703010878738636238702554930669892492595942356999925651259242097878118408571861435874005156981775997867266011605295447150531996488566793510372793499047399622397381614707638154670518482105037299869537880541540419901159959459691908472542331514040435705397602549314683449425659611347143606586201484389649114200135448636822287960891957092976406445314890199018883786422723147460157266789662072569531373419522679279092490176170748683857133506257376160235560537034634701354315204381329748185985811530559356565100913015031915604615053243657464683415875037711192322358255492975021318518890451606094813335367181428179222058478687953267930323201652742437545746475385511111296205689578317741143124945657006040820650077668430079405345165534523452522819033285641484228177730995647196975027209621464560049823437142890473567785869581779313391537994316046102162785538760416137226434526457607428459879270345672479155008857037555734783544774710784047515530070047259490712897858081148038968531783238697647273078633911041931245698061607002824427181629265105659190301045142246827344665443206235318687004662614364477842372001659264399570317293938900432371889369835715360861222005688977777498669730994258529088952268265201906337217023989268594758157920888738289535560896422517190319569779727678300904662714001639482873061268515384335931320966792561929377962144103706643910962762622741609890475774551009902992988659383530278062245837509446373578085038579528861982472883368108055032047990825559682779968468728957541687982343084863190664968987030318543740619954372391281462260302835654860194994805249463483967897367108766985020792688736302022804023285542376323536517887556406225213984323278845068154620765255884474932329281056571391380979303528321282013912069597793596793150163470395118848975378179621431783922477148114969257209781005634158039346977179060931861364616410035316406975623419122729318038008249940705899348431419170816245550261066838157575447985500683993494581085963361974653080647544251650593547877544310281083317993721469287726885508540628030632188220354679567985915343416906331537521370691875376328397603599278652400068140714338735717868325975129843589578889712331385843120477726597441934733572596921528593442849074190684471768571376962814566216673896674507924229537225406610086622040980748477582495294811728193845618025119827436297457729003211404725349973367212496561786907493639938453577682682825239475620093005683770219356616470472899686356908005254752919060459752776163499192857581389382264871006392774975608580612182491278006118893681426734014576853302820770390499888304882284056323773476189048853504616361725553536119854295012883584260197223873351267918062098941480995097238480719840453142285062134169297361037328890516314977995777482882440903618355079300483402999071107589992399475601889307672574189634561116974106675234753709922174771831819036194100558323036006843056964762805188290299692628775954959409293882984360366154892155239372124922456285221967700118927375971784137480718385592028572314016837030478156727202095817277087810059509881734123023184105748242646818404799952607078219944130913992996325849818050616156069577649907152044019490301096223005406085725436621027207166938226572332893326312842993210945773096192509619773448086282893105030772845108906050114594872034118767011186877754075060611313046893597774042843905402833485802552748022225561511701082694210183781241984752328876879824556238174837624943640911848059134143459603682821707503434061704888451721065345967876532011969761316037791027815153235112393142416907950296480547044782360262639021529990949178645258476154502297663514339593088212537208376364696781976413875530437520437365060165802095534677372513523633972363788568643877681197215370133766954917263095625174319410904777683948667915378316065047128106851677010221735458980307429017495237522656226604988596910572815205253027193996157719417804705572563773990435531921667137172319645564222126829498536167937418564174371141720259953545814797832566435550321373764421220205875626700595114012694727286833164808434122765672773759575673671817203125893560512373509682652695552753898103713767840683622793042850117601827285176093905245081011434128824984366639750328559661559007078762108982432444422140710001499949168145346686812466353186031411062197322802606072291337009930367580214617199569277378099854359704678007929017114712939255854045996591453421168968196262986198550906293375612338354120037460195578934279978544627075606355662191719321371619211737881794120073095044651913241313507083253087866096041282525749173397900895490675435841457556520369112284297634245634734229618269538879696097989956314612501751896866532156441160646007393203838621341726456297448044277113259732509816165784737392068473664807156033665801945664051285481785352230652074351159162318997635784096224689449619937152014049030427141722477612051673390514826143887589524175728161261001001590722984730319780728974999540072532212283503892499718057428511138374932549351581033956954334564018219573179060105797523922046561645608120616864548455546347746256080590952263469143839570044597374208765997835379319903585401542499193577343031281648217798032202452046157415907289947383929396177072542062514943440516480937343866441613085347928363954184498647616599483022659212300732103807113042211143204908114814385090616133787180519319705321657055204872075693604764413465948759983786922336361248478378213640876213081804644906975071481696528207098393632906991692527353799796000191083317728838124181602785295136302647184207982292435369764448494111222764283832809695553446048539285531506026641854680180032254154252684912012698050577959687645261432453695224010768109647190038199409310701818923630496744799170588858197339869685971909447842382540092736645424462700515648354225831255439729320778984759029869518439280447288297973305010814468634177780385845452849311498655377570107653502120048303223467053539726062777368361606702492852499732414913858376574074291019109632884952624786061599937587484914880821024402784061254227655229106807928118278932715597099099274473038367937671694244439882246348033812421254613861344045402286054439082695771153136940304498834204722584853342681086888184750289248831030125754412353880289481032335531798619393719110233743254830136436522160012212506056909653472976112219048871671939575952104212183288201219443381004340000874250222297217802803861564917349943720855024610891055632082545675780505000527782759294661290520416309548835739796183531134953063506235585177506423298377864543567385991238087993920070195436124638172711159712042866678716988953683412411727759710823004825783446832152566766249395753787096310720692121167000577528377483897274908508199745575075233033742432866369737619322404658226270209338028252299683047043731804483095569589423543394166159349339562202010790331025083419746719410037903748465072672522069064941067369794827587879863297917514613544840626108126664037926127145328444616053037376233376217254727391199973485756757338583871247514277732751857054172190274137934025835150781867397745727217957410349417639475724033194254526423211983221856382451850555414776655788563776742317683179110551381441246678687596740577418767528001227507483949500830579893609824418996153223510612166753166184959810449038852545349797731463057566002274007775129485043636659154417042636529307614415966103720263666921642882543083647168658235074005699801538170504111359126270236938958760920984537101628423039058735441713265672476246010307481512491512058965358344520137364902586237565721354569484918602936614392974296353744071279622204040863058497133227251601581495520467113734987269223714005712347936343885347821051729640460033824972603403843176195310345944747938338037453636447271667527148851158563800633608634420492588953985890520080244552995063497048488315089802024460965028647760371970987072424036691546248276638592072464308795326951605647305597603514357252764306167500632556795703798106724932886202359275523244472853345870174267195712075705033296537498003698155474219934745487538946721762959778811756493620513893860089368536283035337782632411429184758553399946428843939734698003508238401742323166352772204246109553305465139123067342478819198443528598800591317332760022554182909666728703239550142877669136398090575652366200155039314362775952086329125937496269667320295513757877309491809899750515756014691448349663218111893103092728347740177695991405248913838746941771715457666873570228932336842802481780217591553914929069922354939310996894930968623227162528575711039819996607447011474157990348484185028385415418767147681636600663320191640765874009783969818652738549885516851295488224312452396758419591394920791752160899618824467862607401822808816997174080059040622531794101419063392180300606636585425350632372231692785770927155154461556952863667851066812942080471141571729876922494401161232573684748640947666218231017225893547324650839281344816735093529389286142429774680155741033717713567281515739566692133159404944350244082659659820967974008544032419836814969336854718867410909460838423225349793334875505944580746320346474752533017457853310975147446343575323872167871156245156940586616998276104005281424993587469784748209013105720193873192921374494280072787514868810836959594010505555360149507831971344511235599669373811907429254625200037299575833564657502077268537089796025116979704303880559219559899379919410497260343442362743118128181398318509871360794442996701342524602304771362137097192417563285040467692655055602347397142522591093808339812652338359956332809360780686201943992990108636979213025654205725113400171667351391942434388129286358465052111504862313437473362814164869369005843022256682298518252703132363767940507206702631627716774146511157146022377554710127640294085186395574726872515587039815280394650516528012196488390633046437228188943579493711286283297354345300117470244356297793816679675260196880744635804518224798776314653076492733330596011796153345410915403382548512061421502613341548131075710789123784407086444219199999229208483693876511936805622720285167134819767815852413097990411244458922215558209101307946865903774124621857065214915961154264259370784555679646045139817333974929909558100685746783897119488134075584093993218784357891543393513551422793558654950318588871377313250262145600607152535332231015244734384213429676381711871719172151764526949901784002884496551847807782577123244593136302592134805639660127792620631576157987097127615503862685826674813963962955754892928913149820909594724687762505081639031306058453865936727835618114685430923422580602266715891456763119935659876233160081690874463922226693757657073885108375432236970314643690602878388264867034128364208114836264325517275056655988347793512462526391618422110606419940612054264261411197105875872724264626729351573976751271553392966748474992189796395006471235931923275931797489913967224641839190565086739101839825877659483229651492043574336695046798059774976849875390763344060731884019115470121533282031672731626749942774319968904669174937652380033454574653032634122590983425170911994293746298334286346029199867602865468044590697567797406622823622735804037127807826739140543508174878780143857135748572902050383259466298535216550722413059770696323218985135201669387762805415899202137658071689141271434567066037510650019291824741819460624790856882557511810739310289183560275021968555675763082936478934770250474789427383050780101928885326237042041525944606429730938780034915189019209795260579646600435280385958507153724967640924619743019131964346673432445227587495501985004095755759207381283827626172429071360616915765618090247549908367916784456378651427225991663671517735323279922093865325951362555948002960934029550923338165372422413603201755672297831824917029170199394697333440018868305855107620056106181628686678393118573163894958821940152413193836310244461733414277507834779784613518516730736436144039925907392199167089643103516141328750932825292353134569811963566595709579762997251830056364346239804940221034076778538376605171958079965065082569825631084955957834189316762862310540838124517357384106948466089962056889946224440928369093400682869735831008751290545440742032293773322820085863356190271899251072935130858661960233143644759279140736571707417537202985480841021832625242487396825879938104868928578763738712880340246158874727703283903541054418403281799117402570686186665365592217383891346152885048218582273744161915998852730927126542358371040303762302702245868828921204522764332122939869469231985108416579067635262848738306831259400713224724420216567145171317687926181107562448228206511069465334226012524663984974131422264616732987792857192351258273074916654103660332421166327726476553718046341729646138082956850444060477508378164524906656520599507622677672765340214554272612144886498678745734264500248502477798038854814425172665318775021929252251495725704025681822359899503925805256450593741278571208686193614252959810491019897872506795771684746937917674129503214674419329509577099820226540387867156497017863950259758079849362332685627505640969981280197259150458962790973103871269433002849906689065975830756198538032202043220578055569196251591248601589266616050260683055469030995800552984916659726496422701116876348007279239002403361085152814895501669283360221286114208571233473364529689532613778704376858416954484091702492677205086883315131257690348086820861178668962987650016016839766747269314279381099388574936189503657821843305347769798596400677325629304123782757360170525554582350311546527364409021446851929762430129333536506968146889818348431845463765534473460935611285058945395843836085344622630917821794114330746698868804789730445333224298854301540905895957920249578538000368242355828363273337034103008740383764600342157094790319408948861697694009365667605722224680065029748663236730119079903095742735549825093702945094239296706223463973037237386260363721758454397962985837328809396486137385374301825304660930265222931301119592204800630512066457689879057880962403706535456055170975414908269522161319343899915636381966755372107626772939803590676313378347709330027770895572786195630074381809249898362754339080132238667872598013684617615691844489738557020039813664429374637739250238460176431836825778314657131392399338420659798379470988971654980765689558740012782848484628781971557327066062074804628143153372891029611694208648404651168753415322075052484729252739995669798588271121552364613335779907372483166309286779865313190386185193369562888117610549456498538048184189056158363648857407793817670790152256912923455880925815431831323150649596364381892615375328100818850806364494459585836991509918302480035543110770665718487786702014709781112933647271202474437996150437165025790678990749247521862969868357914816995087826505049919417049425897913498221661807419522120458854377488628194718685189699734932697192888655949147024146146885325191665926689329349104748355517671773965631735869867369756228969760424713566590346985931090604564305097680675020813981492178442765240213174531895480757132660130414878719874903259041248423411872387650785933260148791430178904345449336193498629186789427164485545817800497895563100745851314799541976190857551794966334566579147457478572390886675299758069415118981195107488628261066226753988343339254374728449253353608685177076289093152580137685545319127886336157021277577204660297138848109500230263046587888730690163476996466295883061171104152701085600722350758952792867561788749565542520586074607039539834553690215236750286559571340352050637731648109452644612123072007593919343259770843895418536791328110123957893731437909233342251379463498678244478450891290919730133517119795624963574887511062943171445681093467012556065276866325318154300150894480116961460367096701579268997706030337699426909106810475907649941004467257256081455977400884980822806843997365065911393365190866869626136647172866208282049845848695026854866143232821779698760964752076392581497398592492477756124351947300586617733464684599784405096143788989544849044842739743746381535768220746542609890963220965244087269986925938859778777451091953742801158464455868540907736607758647877353290810177576757457444360105598218066915860833096261421666184836384483815523499559826330422620956439006436835806160049927920380059187036018555152749458138575208403667815977812483491899775667175817191183311870683461568181862814766402624725406551400443749293809980347663339560644268799914265028840424664890976856009941706703873404298679446850691500361070980086730426839465960154254339539234837050848849836988265135138166797336125353987575482163320028275479299939430705081132728406726014894743691716436306860854401532205650163233337998537208749953780029913190940732644190068529473821545782535268749454991718609677603699913324723456010039921191349469256191030784524711228640394551025332983426967267577688358831021904129299735106193476386018950859215949945311135974899313081027688208133047558924576849878005353567230652766180269707206010791375778814054450793804826869981789342175554264670834374667711501707686254446532098121066364681956861553869630198261311223763385586754821012859461038557143406068872622032027809158490146584467241498261571268149212098392040533043533607058289699081290845515413245554805059357440585031160223545451557997240722157452780121985734746418758842495536864997470902963736762553409771592112273665418854211055609239219321557597433830328569004041636112164412580794364492019408704622748517768241297424146243713175036401639995685869949445310742968330825494617614506569271412938425663110878491746944129621627308545334020198141161414552782420161908761272048646719380990518607745785392900404080299990476976691830206519311958345203910162758398611590954772258275186568294232307011651419141183650486059810777078984325759168421713622013199476705010682256650419303295563263096073325876509165172272857979613420832655225455454690354236087420751963393025086922654005460318924601152789311103378790361366589631076526770422932343593193449348977329896882338016079280584939698809865024544534536674816563936568220177241643499185088710427235627983607209218121426632232680892817033735806469836364761122188971219944831963482452313875755721196497969133508592836768780337090692040040532480842704718131934368980929556143846511417520863390900950280782246544709675529969360641651420891881325778979168916859333233293327172062943597321434931780231349274018323597867062004715253093782750882972325089151481275478046975213052550707468898016477390229642785363881313473569596392726162898425977298343666807042902446718009535445777926737024935988802221810161374128293013630761010922628516902062578983548692182122624872121213755084050314470068305536312228468265069221365243860901626559136403119856709144357857182326838031805915460336039398193411328480085776401641282512162384866479836178015882354482824755044574170122534518027574645344569474378264536295775450526649492690140439076158100592022443280282181369059211473909160127593177350290543468253996319492118134980541326562825438716741821386223550265504337232540479713498110615075577400463546527021077884971668002429715368880650025352819769159713689243169706597267842744893667098489870448289677107788145928964816919259197681741450729746587274241893738332693250438064170443440177464238276985401872568081107087457710586615354517748377336796138605919348945795753701957600806635697731602395497106349828717741174010012044671005232680741834138834653483659846350967347936078075185703060395283528220706325547684802111864308932113181445687864156290538840376691642317915162802714816316805205981946590724443343592510967375666473254183019966896646262730008160049123996642286116057534288476870658935911468905831457551528508492566864303792168878695474136547429841458840421725838487648711409281681195962992932667647708372055528105048180945554884623396130960579440208516226617739177965371253894445012520762332620975154646301560851736983703140521960018077416808653405858751854473375963869745958772233824672772393792843222662262566585748237818150566617655373202359106193286049400796469947415635185255699630702849583255722768040562477558295674735806021410504030047884283681383960654522965201985521788232243996110810872780652369557374116691730438634864489880341512763648071979299846478160794532592626371745875118063365672128770246560510639757260616334765207142060300972395725016701353332410357478582062017628250550528472837603304670371267863019940144131017839954204609287038649398970707989199185632035993430988613008168354363876187543291429189158579311592689490681259015740920018947559513903483916100875036115988718024199192639549091676131540118950081462205424089989537186817709261325080506772532627863152846822515609372898775908915861296818496806582122960762268938120931200385627223769502927367342859307527540532948530804381902035000823464538005328362317695427571736947777015980027150536153461428999302567539008952853266483014951375920660567193573572104929973286668601471491435156828105947532777799086095439001225363014030256230961736158666722456282284282632886248016953438578223850703290292270169037722540820257721187195859018904397045312708783251690306730740734518053270422626371034749445586252622476985022717704573718758307954327013688597340338499042763001182679774265560713892380397595966002235221534207838775244047334475201491108030650575458062575932047758696450282661417325840218818131066805347617608191885480589323058239348293604537920232300126900208033341461196920690336313303778051796714141865332315381961382464298471777955760725616505713769451205827635361219613755035034039070861080637887212390346310526899638629340878502401817702832916408901260937941844772891038693764813459869902862251292786558251616831373814585830852083358292325450168084307446644626620816603480706764879971309104357233654146156395873533641867589479352797202079480618465587795866241872610919851172527163932785785132794627478390256375141105923981976178154984239902542032957898453749820127633109511988010775062517729280168797582866973292159675493066712512895451844710577426389551786420212466111312496886615767400300050401262736912756241801463463615105037924018201630735953720016245695925631136855316614737512697786281783969967800464692508416775627469330351732272080555220131824511211380029251993949957570383896598928837146747822430244751550740046535913856504435525973847141153783881182790453662936605947628541648212319404659744638836949879733060390423055875601293657096573107922556542786170910268172512637029358715149670435925585335151022763892616780412907313907675746419326789846344320239879407958982933474821268252119014639868689057047375734182770065828461686948360986702948885744492016959599472384880050679663650535846708802426579541986805641414623366396027424975051908006992849885805422416514774038349657363006144441851748845495192019240361846672460208628262168473444355170447715241146859073932245700035478315557609915504652158051684725964476324458504870567030940493442309598635982755063148095962039983932255342628439735983968144951489946102928100663677581268596401437666907561122635915549065483046449575408696103778612027953700194207650704746334997175496861657568790638061971140765619209264694009685350406326005638553067633929477924066726517119384344233456201746362020841457678753037431499338308843603732397876994859055816364985423287741595846072907739802000077533533303043799071390554630201239928343987071479133204643419672290855009944066546733613067144846779850033420601700394110279806504034367477447938700813962249553311512185160417614093103597950609046750168665008977268745050636484451659429693328140373702713091984048450222142322071398342724896594003145128647061332774959725211345871845246564318071584909498350797687885923969475116758234422960134055694508298031064148211443360610678796743779210068382873959167899447725302508097888106795689681144550480182212204258858297059458819693124924511371103939589296401586312623595212278621865185070416262431506933471489785741449722589220160312006984792247654445440803514843093796381431128765897235112989591368792763437510598964368713066520771158305094289063064036281765444215501485888037565810680325366767479069091350107632095727705808142864861205854975019087379122588447457047709027616127921184681130465446557690866628643467555075559626180597716421717500855331227808525877142539797823659283452686682697275087904197833809245855571709157350851251473418892418094284402366490503506286885792129493269574554625604335946172513748464427235693410687642536533974833844047818895687961282575439427223286382429746459354794414965921366335078334526796756881923249121723180532047201263490707261883784051253367014755786854941070449141554246614930979721040328633468160477493033323985016430465272881737390524468057462146070968953507355657524963962054924311032648683632064122259744784018368080530116061107342128347303108915454203053301053536005890967581551559952661875630774920738085193214444174125172284834294510476439669439843376540778883221539010715205865245934760868461743613694168684147400616333920992954825954156526494111692051206602570774314211013663387097600698651866465105064110570674826071731356312083361382914487949585947354904511785103800449501179403136813722020849643931741612019414365294781893947876534325930009029248482334156201698267846540640225372443988895700116452414495958175245693183107784224513048041692792374940720949545871349520752729923012284834770586984711846278356847846223590043846497480189360246604206653202958590757209362793477666016594500352397920562128556229463406197927600850325571792327225341481087181687982641345943077004526928466935035444140280757441138899602870133727806295031635106550647894690268204582026709910991490827556991222211674436712629667840390975240335092799869234776193219271058762412173867877692221706089885635680662711346979244902882275460321925316477152755884989840151915547006107233177298100662212595590681082609145300395615266641384598608338582747432959519475244880469317275356898260488807856470743763857067510057477333336890548534743159662539025318759774052981091397666925117410339609611742403633471869041850426910732365340176240521546457576933918093829203487410046000232634499510455381622550721234542993375707310745494676530596857108175552621791770510733785202991873870602746742447043207793921181310555985142133000667253203108688844206430001287833009671499081972147616314795769496718889163118305020896006230964795809887083219426074019357025872294961618586388277842938129592630557513322630168633273217196183637760756871736171320758756613168028057316438686773795929744062022068183262862807236109787971001698436878697493964982290058854981601772015646468446524457275336464841646620692371979889036194132647532331400578991820610238004381906018086766474472691313393558759926784636918427181546859798330317983458515774572033561085104942205447239242504734664326107772726404488211246691685961764823042244350868383824524255052761952469392751635134374765184100747118941706380885305260531423472268683499092490790351922929664164481280797819671139198211994515531175495754882627193111390940835857184349117218317536094163614946678186456429340101377633966059905716406688825430429853687654369042993158826201020594045038834414808945792144446709532864195879011664575067581048022919538699360424600107265827920623331416268005788808471447598040326663843826485807986996356876988189796038090703681503827397234272459185979210882777344345200363125224921070818566675229271212963715119774381959231984052974704294516333366180295160136347454377430975111540802707730372506961373175591777120858474684046073239551202554714049035925331178311523585777133280090866139544265411060979453556269142590769387124821844898815077888574408685119006431548828214451606211637546573000789759397566531764389126999279291311851592537190389200485098175713129011683375547600178060145567308191988269218114672396674754684677912587057180618146544872416238385319673782873891840791808345049920665614749029709074871332769429415645851639699383687098466192216733349414075146926220782880442213852377304340578966468948834837720834755143432201786299995095652310333129550776027738855947102767268848147358141750267681284037020036552962548009739778188370815338506878380283455994961712911831102124963636773853833421394824610765029894047037151345917699203327599154705993508302407741958185960701065405358630272542040393317207509767564646100820366265268372374802603862710187263970693971602679165359491081178256682284631680142243443723694761265859174449646996711364292234339178846881240237188359984774770074309724987377114745340550424267850450868618707432725995155439275028410803279072870243475408339827514425230420362705287640090397340916792819361507477450720397720691129511150549077020644811682785244888968792170750424035872087727718907337569656824183048305011118235180404779999077752449594661634566734615463278185339904013416632476407284677621683513780269733355812753632591332182301053047476302643031263889097757626035221918382035387206695395195625516585360756880017447029180777716079835052560816303168500447229762360419983901763894779120049392094403339766021930209326120238408787910487732306990452377680739418189813449930359717090507956778967596519071388482014117380450134702743824461677837822962368255284395960191801177566483654329022699251162423152337504005777127903107165118566327802166090271090156264948987379252608028243066302015900993267910688725137632805771804474441406632019443389163975151121004503235814887716594679776974140475198616370986993962652369553218522874192472130600816184754952290209398794634319150883809932652158411540491744940562849909831163270607434860152774305838841746821463538668029216102297514079570124475232568340227765183994633144816607485325380873147632993717058665767546190388102750999814313361067508158277122127310018929934542562261226983915368682132699965171176140472222775063032072588061221153119863408479447273343692278481227668237791873780893084334232620035254631154731847353867690971057334343202303377819653415189555931589091645894697791481775332376974215687855406543784236578134701925895470994326483964444387161572462731049316226869232767539528582085281996889439602616591776157519129707673686455001357958109550351379768895795629056750762519373056400934569265576126980483127194202943512825175231175891144912391010622387785622176630458821288763366006669220808493470305360094931922196536808821284150920655645186227287422421509307110473055087293060600554323581611425945763981056801662155822302371464641789530664075003498293505762089464177882301925547004978572698265784892275485153599300577600463796219327866685876816479604932401721257534638058608536680663785277719584738883783713169747655664666465792576786246716956840984868778300839473537691484840075075264921493341265411557481785385675829791049685616228714196318733103283265028427848554256093612286740612678727976248886272270524643500351244336632184895689733304991447129891923136176569533942871972129211688724968811487562633123945637155088766604817566468446853260925025848885654811057269270719502175108456365450236451392210917321084312229911951946433641778310250868169528961113910869082188074983880899287789069503751922715474513660588868163969607237868077943388857775874603622746084385218155103849810545937604502468168233094199664128699971111888991253737129139937519281148551190868603803692120938393910201743051522427287105009031974361896670538081015891210800842310684358179397470538688470616422496711492101804224139090047641008213004221745556243442120701956957018795876669196023251326028219213917855821088598265251655220591739644862426843826373353275438194924112422140445418723619085596953171195792930033058820772987627736336670596304381701499704407888853990067286585603090361301985144623216286164212639130622687976638945231720972407361130122767215516292249675477373819928435968064904949038213374600371313139052172329760106284929999101944507149551470013837146453553770863816710100109896492135975775539487887063134540712711627716090718319528967289725617794127509220198322168388602526357774986289939495319617446412002097799269148058130852778436236163638785413950639796529920820455054123104327277729664118542005441791952585038929294973866227610975214870399099835305854438234510085636618518274423025267513150691698216870780464229099942650624008725275462530570544690279491833469607358321310456337507079484009518453867075337153109007701277943876017627785143065366776212103372176817442644920061105064669099387233919461047313244908539307676494925058560446088593560044701389702425370732380573776046838985684195038090031399346912468307966120257660415766109729827947310537577088580858403708427693995106319336533053523815004997993166491590829561731881590226212489475058303385715644377571771454518231423542793094060759761799491676433526121778629587817092474448556301921512247302304610604667532023830708341723747062917084210653395898546487662542979003828188200496402321682813878790513210821899993221031971861020682357641716134172035693275594919833148993507153358950386097399321690119613017810517060778079492318186914819816610822806153490749170543017303366187797849879248829714707488132681878929017179032302647498667087971671199597025160551724945653116517529900830306396637383213446602733264219717091235942341849949671029494575320860379149609257623739108330325648893056984999042398305554074967471305639652459507372628669484301969381018798810630133899220635811475801508458145469098052836243097931987702288804769783571794792172913569165167597143869459198719072355075357130591047079772892651617439910782865485407464380982084780050080751895895617759481776293460034378048434672101297218995193110237771128504364084139409322903642064329471777656427753000922008173934892667825302837220498251583380901630693957330921404820869071343511873825361582113675589823736925112811563432764129719395734966772428329923685469472578754279202995613301231498479262116847733818946247067050374274239452118335418707506120163457102143649193214805924326277117678536364778620738740609310564000278338865436400519469495524631657655088738489914156574581487440115134854666798025906509372513680362481885244845030538300884423966697922754343048225446578359530693975907628836463248472032646782060674818472219944857135185805664821317451243783453422123658924007866285701891762961393027094484612670578997348275064820560967277357903073466592838518293763727898741806749564510822995736418090510317228488275471536468984364431032737417116214872349381200237989922762863114982452852150068839090449444782711001106318563251498985115389701289453470788455438773443035993701856307087157477082117812354273138906939883287205766757978051362758638904501122441836537338581314853684434660870177321996590103680513728237248502475571412843489401896828528740166041264830863233094135876484938571687224832110581659893748046327873849385765624800837919254068960761613371517393610672742435406437448994836651021975742208583932833721318006290908413683615366406486934795581835175215898536101081516183858225826711384991998948256622927846210609191949237315970029052350850066772474967325191468209972781365462766778492576950895859227506801727528577177288155597621192291797901495468861109526540941704286843331922334295727104505196839068579201853622829542179834158403720718719923696177803710266502359799631704213861752306925955153601424334049334516663970150017136145325760994020615289218281326636813272305177990592089809215391699428265804147317029479443625888363715662402408329480615001025182152731451954921104831535859405963195884379206495390560117830999555986486761259594407502616534685529955557224727865101563428115990435180182335889423396254532553312901903192485076071647232245723550704666932021740145391870096933196249231047744816958649819092250088010995076478060582857765307299837493015527344451115256492784110251097570737104997759996115510515362540457246614007383642254689950292854044514489099795478304566585732729501012863089336425150145978892315123161062204587026575413681376260336799345897047753161504915959305334195263970467107939658083895030924600093729653006222303905584010739578386793972293348253292408908419559143674725727729490930035103173636019813666834333612560151484600191845676177559712958852676109981801521757593435984899997557050192403289370852212562694604108732337927413705595120342227254316820386834045603291439790111023229873711874447661221528120081282464065136314237455160362657654138047697326133773148449704332204764636890511112983993904829980480538504099511577641723395185404676027642188837174076942747118961640129016377328747346931050794364367053581820305954701529072944222018889073695203383923982169679158635003970209976176566822841250709546327240276676671216559381606012421803692128540749332324095116863671921128426477876427421191254520894468501282293868102552869863196911031352751441347385143761552355093516621823625623477751901159196954292735090431074217017794528088123303521127541124380011671574242566296685424257130766208777216791249457224764739507649058675435749754099142695340867093020973282333714460020517454288605357953388027030746368550847218046110231110911309420186734682952366327932250012211033813309242582755122274665151313115705422033125524640122165582969278025165070068310882266642837827130670555169230629512888972845548610396215125399247381261352823306970371983258742328215345610711945692827992753541742849394608878563086086685146168075393539540749043224190480818828908661695131392511632925808686842031328786499637878707924138019114937589519341793394510075116564459315969948338587630325746089924600024638332550583900366791037477046284291160818417455558336733496859003406414623139273096923011723862413588584610130115236276794387128005686698403556568147016246628596443573495027583716563989392227997754670685722166387149474257148192043312171385023880817445291639444379872605071868735819377653681411738253335890312872932648040264743464791723416042013653128960448638842950743034704145474877235805293912620596050855112697979465116311270294707259523531677961224160969054693659011332114481592200104175330926199820459946822139090976134477138654600114045404639550972431094648918832607190711365442454492171334700315038559613596741783484257712186551688343202863500886482291414321452525845258748178391431590135146386675342430750272561772576389216513340415680346254678420006820532958432072158896295333367753194663559515543824984817122823108719987061215386153062028938488025002375742689004758194503260659448147429061729110298931093745200848161969823743616413504721587163861833212867379496259017589089583953286138784621691553221108847044558752498722215692888000426520367133455799423276284926096452082681021865794775255869431506173738406960659633548774932870685394207245562707664276695370914999812216598044747093761735603938330885723816477154313014714557112406987667873806702915089720234431287132004483814622101420695639226042080338694189112457641816187514056444716185475065360138186874333320615419764215987165326556332729599568188701617472315298505648730159780216504956104938497256406628866992305191329648254849722936592651394357239736872814477924735954852179810670926079432124642140268464373396828796194183005550730347213479976216277764893831873427166090280300537133846431612762108073363616796834440371147089258373814047671390745021141902818719257673086558970178624249720236926297949048467064348731513124348968548780058486562254184659806469331557577788710223735763979680806481616960821506310021642606390448628355213265517899199039748698698505597897612493082209140599641563492301508956879241326912788792083541457088416146863259265398356536632068427601922451753654492104305763894430122895129973012342530316628958144672024892675015889920233165676660156777424696979510988513088388846076074532521056228793729094982901542442393973975474871174465923855004229247129287206976974174024558603467171496950517815227694149630244601181272371373771638172331140293343366949995281427498849569607533357156923328999017502678563734827234467707785520385457260432877933898802811202108436967863902378323658485627893248054451745259029857226342432991380337284048422481869202718802965032575430180366319518175793191128987439233537402757728793167875998147146256214543944284066747130210174802408482846731727926003700800211820179472776212164549686325536817438505328682197607580189571642912674718818716066667132539723698409529289053972844078275775174278524949156812517455827297948933928572376862745364362075185143058379090088458786675419678500050831384903047596918491771792713460745933782103617393621213237294883141433484677169710656948080945700911871028143025020705598799870073118265434208699112663678089247374685618891027164624235612244592653992571462922073060891252769903104212596365186874087341836607952017391586984125801303619670362997021870521818071769713043204267354611115742526544994144301973743404151023584097329112909601426327801610747424985564705783515801164477036168968109965386720480626108700801816578805991486290286038821381976944497185469865707917053455244904255301244861854487788380249858061082567138954396772738933515839477177968510975687098427858509219083947671819660736559196544042109322257579630320711016333001964476275186025942359204903071853871045365501096320620306905928962871838553400397703610941728708130958551569182371633071594100102647026435940461945407444127189418784614720673660613563149092671622470051460947746990961454017889887740896018563312885099736990221570530383403637598464737917161180008537444477748451477560190729755185248617304283003416047536126889677716965791357227946490104014998476084254301893321073514339261208611305480646303019578761091414262343437305019184658635774641836449901364896098498470411531351599256891227163528717485087764624174727020381089664916156310998436287372105875640618168439761641641250087598298408819336141277549226795584483009404781253956706074552719123668906531728562665877576713752882273462281439115293431119317717492407287960677623021985642207276254501026847415421029552914029747722799052581344850203804427377384961363623592502702401649058495268172573527574502704319313115862248945279427024689162155574775345530376666102127529134308428797928814393345753434245380866817170805260396316445425165242657094042548535895948830920110725473111358565558736387048018743945493720151181727476501685948072732168368571247119026282935674973067456758925538440786732832613899780416862649017033996161778185312537214150008192982856598186937453181033499247570861116962607145691218675208821705384792472665066539031723805040808503823460790636090752600028987853796667958790177017544066928160435679185198045591058168945516988805222028961097308581753475749729385029833413025439117279217644305593215787626183500253604887242389539078453527701808556022176753490961696438058387594378146473760658545480825329672600512901893651409192095568815745940502696219027052556622188236771477109911255447718001252791287281600915412226237267269567707330650023994615823319957262890480671039627908235912978547963680432136739953349203525882097635752855185743982580746460499796203741769309129877444028665637245958663329168926162623962329761224538341082134936509306683895953731258412654137749271181872604560633374218284935487872407913827163123478859148903389073002039328511322408014750033095984315842206747470121535335321361094458147090168327719507450822375475192698172707393523028704895325484848298709865098677177442970077265690018928693650911359133541658646570209378305455677608038453658324554068347895744967465948091523726063899626216534725682493326085870088789723886407659701384013373745135869537593328490360117050322084162669628461555911716234537069914872109783494602416701843692345279212759551290628121155639360548070770848736140782319201893601498501417859162565894352044108759473835233143839054381888982617361042870341359027290921033100125548040742778677763535054005057234015365510856282588148244141190692395279980411660799056272095822197739494594575083596983150884839513961094694313471393397476346212145091986452665526467490554012375672030376557881943753071092769442538736611058265024009657709354580486794151646361599107446564582164639866912985579196665185037355786737926829260924216491419000538387244280545624290891993631195063262099720806988686992995361914746681236974599815541237473769868914580633224239725029907484494056748312005958520353558570562669017000583071774599738789969248576646744456896568109015706094189822728292946027026911774645226863766174089011381183039153069782142962283334257639856897750111662275125194156661095441453598725367713401306747893004038998668574605129084758141046475105026697443428214769071880296748003137520907927741115829845082523879438028514669355172171612928196695318569578305983503333871787227296082506056720341504452708820984018821667994254761163141652646323004497721859328819260626702150328381550922264417245118279595914919523427483012043482399454866119016938133631987812197244661415186845986414623883964851485077419942500762893788496126289257223652861992943942058216581590556215593925824710006527621404686448412718027103570640625654977899120102137993436666216889534444870175257661707062787659742865435739238443565395505068180571177846409402442862973432298727762432114297780758591673972618324089365619212511230530602677607042657225721720368485651814828194249114353940738921908739320012418665269642623167294912852911760472489624484466094607223304343005282527749502014077984358803390700933016069957608764243753071928727111074241670279988721545349050317639944814424177371970310634818381718268271925481964054786270757842270971178792187833183636877392409423786587733834816288353031378284055426906436497881685449762100699943002540314694840103397481735128422727995090534367300099335633995446257203450822911069508305038300011848041180200448077085670315815605864447657267515932519416743499821264747259650196994270898168479941716679650674060240481528458598529855652818634733193382713460694174384513252308075412992816505549044006724663624778859921425189410076336278831174995176475843959803092596334726960393537968271323581931520878356914113833650315219035581990867694584307256996364407554044776759716821002866633393978638274264684028119266499867890904340616988659332869613590407295805710950263209184159586211521341446349964087120239166134130485972108530667331032146621734090134756572151838104212397058598393204382181238415024604768810971117289457317819850471154786236538749029215908140286405789791501534670717868340734906013557724801751567448417939430369254521610563181634234662462469460259664531929054241253347036983453169900378986166668839908672940906964673288296778973961574859462614807024391918216941705458902039588396228818927929104573734529716640617249814628044804016126471445058020443248339995859348139150847608775025125326378947515485333506640337877909289566967940273661289481719013654220749564622959060764387056799868683468408466616911695654952086091141234009541936704655623747019617887118294629607074136796376949704423184655677438417201828971575770083869711833948536864853229216529975173548492475807156777451502127934312358712055160566606640167532711833294113696469071504596572577674396922102680028861324310665622266094203208733371612598486349929669923929563807539663078476896741471318680676015501711210457887916699922992986848456609018254635881763820165793997155465616018616097650877292084104715700591763087120395570699841757219045426230253142649114904295136172424666454366074478942732140604720864666537472395107575681693444181873481644046113711853635948577275630360359840896607563102067304312478978403773042275563660744296781130094733622747844656777725699004939885932030989699297186514806886041573528559995102135630618730624854983676236691434410645416943292776997219106426444553479480006584681368659521325321505985696534494510071437127462555165287287928098871164665258879483649310294704775875300246530549452124389580028134364876374161954958958698505378050517909336483609952001344534952572503528255669909134709985793628881265146748336564627949953229700675261739601187833484435451842480169644681174969381952003788764194275636339193958905007082170598935368356278295086813649881952027682850412548830035388319862780817110619886530984124557062944039111815495961129264179904057108518757948012772016484955865941476797442174543395815237071721492569983008294441787928896510271157566643866516817200371557483506720536406400526111739968343849440702393228020659881806755996133738850079853235037257652396532095198518911917417493385897923360856734679698071864735545901165122009516399148815756719849887218370106658675802771328165292161989449121199865584690682147266739536960775682879698820094638447646519332932465643283421270312953873249865225557569229170291678975528437813112962286820633933227758920197477601383780470225732775008437902313297786654885971585486158040518247927718134342039977298085952903239846488770909630577488750234349802881673244781678908590696873439895987431428318796786810830504813934354605672790964695911237444582100745821514121276922501837596547553417044395093925322972177224986707186549055610699990890971088647337499520368492782383357713696445357212341775939795745577437005754561151688508114604873509533846927914241267514361669025265128999440743552216978199211621184334629371534327760332727987173906393474390751942683182071700055935972041459236849925222697922621361708899529292936632591909833852222093891497793389836540591937848927194787442812967762478476139608246009027609476032512632894769610640644225310922217149833126308464181975458397304569862487342163779799064110756001167739519631455786724433248398314329315784847590573728899785264457569288136580345972677020105521886420796701236701425125970083810741387277150391164505444034744433764373943543049326605755891099715159750331789540244696581249639026028504760523376172389719863422225104128041343955971401625176058592803265038380847263690511617057222311124171191500925834361043836657767152037500232797916149980680572625320943081658814506450245427202928814428826300410152797700135179073042175007187092825186813178461938869840882320203250590840563424279016093505985681471389638630408475751600822659700585027867543235648951368505606191154515418654030518449514083734197193847199791064699421590833676238249838595155983748772661444966340948285031579335272687424382619061948813099576794474107527529086072953428571512411278625453712788305503360955128180711953877228087091920362469950320177548969113720439608712691369557289082128954595612037579022353831079884747260897881782288578325507319628784828665812788453158545179304039177427343747154941162646432850301392234750085964232319376073151247599171490239632369770246821040810162117272001084622140831062897376160415640466238781649106296162656761510677238928824453581506461586837710068845479201431567751541431791112475606682325129725665566970367454911122252011045895492498312199517834075582257792245012498700472901711194926284401159820149965637385648337670094900335641496145116281978683268382105628023063006075487265824074107446431073847955722014786436164098943730072959490101259158177109402290972494290419261093527432929641998611673760047319287909149054670318564942918323731132679697694465553000069517716700268787714663492762736812994825732764019428868572338905852457736560619994017609477737977997779099788187679557892349986812184684069522060511561158698240259904740882674597016773231602240116096015915169062346794484122795517014019187935648314119554894630530349207530756529994682834817329812507165544757400271092709134007704429698876289836825954412777824383725029969495009117503082773060209954685137721727948070282034490624912714247482921290882960122715469491523459026392079511051339710293568253983163894236276851432940135758500213512093105649735412035013256170702044519369035487264500352910932993531032939653285544184212009435507361216775063903464294505347749279040595802333614032503209578877375752604831694551214542601281624859588791481781253047103524726493306339837900473453068984224527604559660804240871589601462308250244496669071132465963974375932650439349086793078813052620008699115536913564534752906623248203185921097350537486906877417743838067281633518708931927462379187325767682027557673492303516025138329843436035242482988890437297905486975998484778862018982577995518370611858387803680364960032923236304165003683198125778721404370528269657656994288832591008793611376241687837102082336638324140968560821405352592329180775116634605759860719865718997899798908174804167937331306401061102968552318282095842917910733096335331029063696491025190703351982895105423109489577936172836956781042375698934535070770131417794421821116890103038869251446546575194503753679835725051853349137272078034285381832623777813675099334144661241578063759320718172773866390709600515894274250669155001702379177560232834843548748036764640802992763981211323093650482265130246416106959171818298076301740974740332000212020069046837445652131372250420092560847528158155110584838761215548024335304083993307288593361953901683565066172865595319106248957255011494171999134407628484694872466521645486344553576886229983446892345996545530115164695369033925284864950732113544502454945788528662366013520283959628131988318432255322734825689715338526545442756124961356326479798521834183151665683321351256565116335984638703203828078299141070639624509890071486246839050835977968228585396629197881881787186113551977696740635137086745639100066762010211787406955985752802479151867868121085600097639378753881653498849111994297633715601778842913674165096494697305175629150139382612781515944146961017567560356750789619657253485058173978157630672304776554225405577078406285312768297184470756400759516038501975669306966913693143201261232018333586931491932108324847074666504614427307863728686723892874374501146433948136126568088707247624155187923458498384988322869070225082324434515097290904606483091205880593320395826930388820443374519539571300942474882926625457663428704564385226905062395971410123721135685235138448559987368625013569178257200425546352699470919814544795003903274011747080356711849331135178433486280839057131758516674386167938017262690949732621246580769000681940968015355300200357873592912106004385079846611149835334440595478032637359597645487769857034238381407432994428241740271554775981449773131940294954475075487606980762657263167553981446563009787674999590218758259956133974948144686098767261300034661180317670429667652154733155184496140570343365081283103854351310262457471964903588921595247241992785597738685134612687674750790905196422865906759586163156815414096012511795250456611959398850638945948923367792968325545605768882755503993938396747524288001527801237658354867019811399804036978935173070859465748063985760206365946746634027671406096538898167884216388268907039901969598805636526446685348073066979669920691038927129403676428193515013120086647337273837430478337931266836833678131042263330357379904338234632765410855537742961861013517551784205900895377185226556542783476765779967756481605564920569697088149173147814975319638744322704575528236247656281488056440150752596354804566231867946258880336801211241818694266806288419521094919291915767798670350410887294909279546176996618353195139667051329154562272826661936252629847721873046721853004695131473489118274075649266981533713288072273211648580441210325063712023236026288099084776043513420733006302891433042301470848146336687090025452865945802992222079406918198957201034498793602664340058125072955473551509154433072230348521145234950942126514190137871612928719460148562568436438468210841512983936930592641065007795490701092644364602558298085637582813054121201257207948521601349850231796630558373076667758639070607825188814661182087142824029554319832568583542211612290400526770513538306747789145080996628160217852319530274100303357010295646175154677675190673818867994890375885251524350138686818601954828492632138849113311183597912829703953964124876893049401721391905912053789441383945792708079883813945239951961742635671543744993870800620916753020313746108680142064078198600262945428370463154702900984199540423381534014557853119743316843293374903105022855715233418578752615511580622394429121745359665330131868315606863503905538509259408427465281921613163226834341373994822697780594240376916131011139656308298604599819528038885462715845546257116762221433161136259899722738782650896531071946098569100475236415022230730849608677338717405110487590258866433125662899756716826715050583925112060842114376952142991806803190955841491189321269592888490594448099026511750504418822629030763866142647707185227792603914536897633429412890702667738335214821168641708342500125319858768438529653709375795031632712052157115833154062615387852530014192281182068677733328835395943614444890803069597323550809373271128605703935316476460066467934823250685068649187929705485737576175573699603382461655447933399518165366185326536478466797329437936505601482791851603684079165692641360005084910259471697353722700905208957012034751363964734869893683355728840984493648374998749153453538053048303932649155434201699916298675500879809834048526381567506490586662835311271810183379479397433914595783189343748730695914206670054577299829032479053782265251611082585930181727094449468911906447033240718225806672884386052320771228982298515829472676494708960830640330183875617699853519819527771329128030782636670463472327513539176524028098268102559524167595387178882854687453972778685054397621875263510954097666450775532521094777969306416030554432935488877422155772562698305506654815106897267318018911378808039887244955586078288471674564569699990004358537874390641785321361544222454454162714872630644314166559224870980416030786502448190083479236231820143976442691880654635053640733146660046021343934753081864487417106985776734249178182414184073233644951584031531158758460541362447326258380215696026782523781198157757913651080621400564961064943934129172599248220631186762735623159221331498718113278831309776191664340495672625602134116482314393273272126015096800255778546203541554925594789851877256735743206072257394211708107900486794748132333292866179815863467214714257087821289942354305601965130102430112680286592055558726212404802662038386227815780262502565259858721806239864343468555837943854381779329043675626011062362172574339469603689436881157592544101516482963388587423410080259979339971691211799435573098224394491328052880880695699690224711921753175851647146755033256301589673678576788184248486830553837847942270364834414800898668552038001877775300026030105292366692441624181795271506735686909764046421705896127509484864503635278113323034525359652464728972239369681410873640044870878159942499958571851439537843753074201152690352048567390738059536181942228170066518028542933565258083866036937752116470458339828061992274658594844699966052445260395843739170737785243950518948529713529069583627254893674004482294131276225167805820139299842708306352772313293931899924526051954137204677299319096269578822886406438532191755380070606051301110919791760565755241642213638279098469241644155230136921152112035602731072422922021662813296414518151420676943513766796510129528477946330919538290244690172416025956841277152522363731646258154799703657856100333060124890194510611734097898985224607126375418864177539151670251193764339196676107982759144907084876282336889670717577430315560482750034890317441940679117601118260476344001712828957483044292533050835526780293388269417685217948998821192399243757816591253586284853168708321570064570833601485448368585787468794007569248065551112793930447296267498554909236237865925859880003769744860248834325489556212067282265722571042316561127115863719819854539128658091340076920189139539669280907428466784368844126533043432669155048086830781798635108994696977209390663588849614558249613409327451500023687160501406223405024837482553320284516885065269234041134238570937277030083383863046520354130215142515987692264062658401655727007927842748638418406712901131976385823790232490230905932633298136839165971433960683231297397360487931395847696660997763160958068472537763591129396976883144986242298486404313486005776763720191398620240496005522188330294267306821096397304465557618530122673508782350750412767485703668266891032600691531295139748147356335680834579569062196685134879988557837078505902237857151097808602298016896434803677015190544974092448164302960684509699109764061796094085544800106990601152538057164961017916459759102348896954077308665823119843704850636927440006024460524023630020839970242177490959223491063540673182086618685126440559814656322450904915811997791425819836459862359946844356917378806222049707652347797163241587967203663275144476241354865340532199487279844875896335373472074766403811656569774700944684583553194274970054353318737125071990275821763195770869981607860688129955090882187057397820189817743246594135537092768795583664263780060744509041141567932898057969492066674871182108985982608518349623208440222024613747745145919165476317494192274987454392159587005945022363403907299678301149684679108506561557765391176783170077655104999827285889884231782418576037049670296304232078008777403990771116246608354313815622392883833258034676389507564386152288062619816704683245578517294575398083695607098950662220966466924813831032147548428600865219752162960447473337516665050104079855102433169822025708499085653805357492748174296575855279455236772655735024601166891223509240388686130704818678497685492741063573501113891308498187671217087585324630198402950328053762258481330234448881093546788033546150728918387686576240574697814827041819788703840914661078776959566219638746013009055897123046190443216071069920701668181024731987713687501593092054835295682925673492190001207868907977091071508276039871109203599283205792161954737421690823200921132276565051321683654218056945883637009337921611663534802183125751728552358535277820874474980958326993024759721698905130750199368615424328955007861769573088925359367585543314829398283731144938218002989274829873637645169352069617962193539484622287387567523169240233696910217230230463576297593206076458896549969104325820491487754518519942680653503565272390284422407796923570436836759509122031222088980414637694420205385260988796566734522001477375048590040051913376670237896875276300901976275931425402745694588588488881372365846813693782961922538195065231090560477228962062240918409133851385512998718906955053052710541103767711717544250075498105827597724086858459111604504102135040751906187799857976808516933363195974013165296976192665412381555341793604114371934210644528092190966989280652330701081943312264838684079606015007303605662081635293428787381862913320905957693864769836740358907343795989074680881034191143880411554336045592039348229578701203281213394247724133603807094303514158863120324847329008432841586360969461424210555469148632090977459804354253329902231535781130530876089973651917257993327236852999956142987202069543398249656345147289488410361936417617936208260624254716528493626062785393311289893783835292963964965405987260343150533347854751708164986352300126874235687797778047080050473251732282639834141995805870965014194535967672290046201761032620321644467597458209408424655302597650204432678067521682207106195891951087232372295553329942953109192463595417960996340121397785204331658873983895515882544229102451648496833389922048974331779428972940765131814413204866871848077319527119910311544576930475770007695695294781270279284787276392942562614673253135088574069988615340208359647454145838457389607420622806765687911487298053267058908104592940794197637707892449876825033499940123836321203329834887731727294332892624884099275297822852998662888910943830721852976881823235949929237616431477701714787525061022396821447262402745577789797336231780821514027350406765613711014830527021774555836170418566076904597082549169060638931410183895931545483385786852266699937376305339024490291160779455132604864540163549092486322067827932446642982147737095435832172968929769959818435367797755549474388305715435762673008573027898066550462692858640209282062412445102752283699062110718033924725264637524209657735178782074287833269165392026337445644640197622140346693535285981268206016370669838071637678533646123623286153140399611457088254939941247940292867648420271808463075396995493418040716769210506364549278906773252882790426585937758709677373810753034828588737962068373794694229533492295422453545381102117821197564550656440003066922298449107452141831076923952071031755617215566355481974266355867342655253706559059842097281165241829391483326907757288257645056890900346503118961919817309840932121243364749494829379736568409237000343618337998599713768385910019974538285796116641949006951859095766599139106427509287545528120743864458049092703049147688324566722587618341042177075023359213672030936064220701024669675050405047047442062656255611222873496352961822062183961080493344408536392541778163649285497165779788470373007055785186492951263239140562417240347019309531653326119303216706578243430493333648222701598636713324654006140725708308082399830292231068486244785714176615641591912840794335656799281942027158337566936292926341901465090429705570288443107237162562190251293447435323742406728104104415464575421578325271134525096727845607449040931032249271850716136557307629707839148954746967867231317816331152100968860405798381704562753018875190541306845565225035690148019165248683961585026780867628755148169224311102430773920663176920905133086872080422235273624553892805714301246287159749988487725186808363039366995892508405862767616842266697769306123073150726832533236278193305869261318788945519296705036866662038006727675596410266047829523200268429013188166831780930742680599286882905662054984150421447861764546711375363674426915422445676168347867355338914277072150007192018422640563294637319935642457451926699404858794314098664695351808869493353868402678674574060252291855790311606291599544019244775806768242487537602378653930739584895613260788062225220995104498892282100326892245878258137778739818945469338775854962378477104955810908640183908527974305950261455504570450152688883486054416793300349329519394606923115466150394849551151974787471288739094929861161774539938605717198743105231244854957820254679221305087444964297160943659720205829089769329440265888756588052897400929279132636657944482477216600487891873017784582800806129011893880827679512908526678373498458401295246003025736290317799070554214832935803568388466609546242506395061258934215543935198650095604482920825093855905806592847332939256788880186066034299719344319835813743066669744586732037130438929982413216678208410494625824576926439181576695019126919455917793822237138596877185991502375080668883552700524107017546175450044989034445461409837866535531406882664947445529624783053911864739083707344932273016161686964716963812981431672101276804382690998438941354452518023271167683984252723978407673209500284529034163779045919294812018064315987275470788355906172342894455653390874528074921778966515406612034570496486032823525146580544026412978184389793372688166801311567337945855157474199607912731657724676743330982641199051051238896860728044099888757178925625283506829812521204994797376648370613057756748952030625181150923003709290227028135662914927500583624870737307278616220758960084213556506644525164433974349406378951670405673562485465668895406547500161661916469752159055016044925226974816665792919476168992034776280827658206371016223217966555105712101527904891376876914877488972510017403323472595389570811700015289036791970737260261764322868491015190270486510312392345421588752108832712518037598768129465851043955085812274279231311593134662934549608256931243477486310585447688768626727864764946916426195657726927034916365868709771552238637546180593869412565376605981153553496462271949228665372314833174522547915157724830387844308340775027728361701061349256285690555643358474811357100222208471139105388915549199250265810184352974751121559497353784953980149464499957075709012248459448436056758534257678861053665703493361299309141216942996821722841598535689885199460517304893851845677842237429987083700090134150263379457685553589833768307493043583091408312507889106726696076688449249679296121351753799338122831523159120234575521356494965902100958766404465663376155694503254133146248488961221126441370137435871425408059630941267638011438884684954000600902841133971017747580075265631000288211429519216834097592443473756146925685396566418390276266111958009806131912084923344960680060518794454180387152084142033814100474503215257206706565584554098047391323319940117713081796474891143107362789167598654800000117627572558932984446565743841638497186040674230013900805602747038988383996351322578483838166466811312936664515194191093821576372939800097875764398224023694541882514945603942374479327837420722177981720522047855229537841530388488658617828903449403940331707823802061073198898262735337569546911319983424566953664769136928171383515344067788920738587812877421127029960839281264122005502899008574895729276500151166359705424747798120779575881972493915283518208573764854292127545765673129194625790050261132006684808363195938973108592862986332838660292927581823573489437689247586566087854922311688186705875689022625193676126492012407061056719380433692034714955244206671931010368272552940779272701279461729466281174815423954757741031490236133401265186278976508499981054507852752945688804401176193323068290035681590237506577626087895343433085084724701365278454193548185756786105738432073128758024163690815979968671319350131447099228783514636175800782810306828049461886424172860574082234744320180615304452075712919062697768903946434511263295617423674968868319902557926960653636540392793956817886788649119555116226333402648537425014740932736966216913393226224568152962695545594162919812205784213728692888075619624563327700043727883147498210138572899718953002398678294236567467893272929428408220382320775235296156050123204545320049049610215272638286215383392626661413124806689351261195593855722323615813896574408480513223661591363883973498909994437360035993019089579129664600636471850065012424666304527786204260425679360988870184003501472644094663015296757358854009290251525173743343372508162567369822539714855241605802642639485083983680173145481265652423235580584964241716701685421774601190502411004953374868907637505280366441759174052619346459603190445305945753595559341953248156061745050757668640637579321835939705988785285121231738871219394830514664780069673323011048757590968075585456243090623696873271056341486015299781962538523712408527851679747359958487289409115717035305620060003631135788701469527988892223733597410966510277680316948837902505512049286053966469675471902086672878895936344649432326888486082938243270575514992128498123215841835747658785002015574693701389408507859694606330970608805711948871778467626459531487978566271728157105672510843112727419482824792230498804517718844262294346911859184155751324673904916474280789171662618712434972822098737896084842599718376089992333829335425319220519794782796070516598736349958335359752693052374839138204653749937195114106290018897325150724283043970802428159911166091521131628222326497042240125902308881071511397682062217074270755950500753410380478359637392430079906386509696692999105354108945701086154871810652332221994629234180994625983021344025992227867793228709728550895001760128301323010672928201809674861173654688253803745748898117446821408335078910212627938667053169439482257380122314056342481959681434724047368108225433731368274192511361250047646261207417569341356059004620167076556276960993830313915731083849650723728476763841125316082740840843921348387786122108881132370748638915094732356297456891063228625828181306404383292545382339559675053072695193214997030868910965837305801482099198198218997956343705706409009977637022444634057641588375430314626861693283762353416780769135045817727065704450652155639910167757204323570778780542496445876973643920642782721432090164348254348305255346890129927787830636256369441240800623887952712298884799460497658242033568849762652249649043661894272938972886493906828781431522804112813714880584587891406780922815575399053838386534220076358938660572580709774737880001031640699544950476570428468562625849574689750017046059668744731968024963452805010842774674511502657889294626010110130266024246300494654442195312001122551752391648635573702846952728391806847917464148393459908758442275944657372015200975386654995389933281520483028592947153612347090998087278078174442055108323160690906744663180387056712884086179496268931112009349346882229035574351634530289975195824938307666105066807792165869378931559984301620617537821257006103657500686386651616232225737483752925667456839320663720912614473197274584119938681473583562155242090806458059641376628548019880864120686165832579206982274448475018210360084669601116922486564361660611458518434593542476310081403506844812052007418502286937719647064088491739554758941605010450448321995884709046776426542788654706507690507818091049729956563108224949038160319592620114837698990481017904773133258451451236612773474626386671862238474070583084768401565631405169224955071950742823090074468174573623434352993588584913399813184904144147984049561729282395071346096260570165931071053366701043399354789301803870862803381796401501182003962527247409998601247370149574856821257774660591935237046851117217913500605328299274064857668874183133727475561032224798255219925841626145043148925438607940228677986844661308463891758080928639992981967021219466788579393976535231072244732789457038185057123796003279898488264998338558737380411682586797465109086863984276917534627331256169459280285198796338995982339207442531504142541948850879983902864910426468918291419156127018205815636877732608386631746677845936847604253514771103893009923137139340169192468935345508560065731826801857480533680449185737309978697923447138008763459572963076531122228540969918083791038504657244719568979063035430379195123410359030050711204525854844064938214385014718470702763834650363360020444694956149180143740190165839677010038395356047481538986228876604741123218394448654344465833917759084526926927874925514450817305409104769920328196272034474651760199075185690985376085612799062315798400178403254631483478429691676134355778431577523122990845759153099401871870487023773873377281007334133069739147102389978101632115920196941453442603576566148964548699680749734077598558122498017290519385879611612925490805728258498713316893556906255389971505283392073402054198382825579706216749556523607925647860840908232894480084588781080507352961571087637902736749810729052718939676002694205191249688437051038307619227256321696961291926017236947540359308973311259992522677559976701031275187417502837006808502652503034137822089528675439553818654745475045680159966881129455352931911387511400007540925130689808830974882588876781742868424616565805476616992874601048604416812110199553870308838288034095448457456021843363329301489166115558563672291523613857957231255628284971256864527928240575771135581689432975183334219526682961076017813079980610397730145079644197978564888966632387709007594372922667247711481579245426108282281247552747043763900526573534772754003594226643025106262805743286739702731985047603342400448345913882735121622938131390596803047229682708231876271492240672801706929608173494715845072560280394919479631693554408288489723877231925356666800260097771248268230498676986095135100482345210958434097206028377780856204223723839770297585158937466915449736546606741177320242791899636009775605227990345964590420457555806188252534501129649557735101566925318468386756136064574297407165296617676666380357225564331360442832804816406897158580365569558158826409488871749481807644767858591758403547524036694895094807421511446877900537617061965416428809029328832592925833407643152399233287040674637474460720590413233793005865491716824563546866212418295492180483470942004264715628067863233927990551619130851093363904769583447524348634350393260262291843191330313564075760517382055509171115118965977563017535910167873300457653507156915361912289531680894198890474460109786554461719184826928353130859830207473974118568862057830493453739424052873475613296075052241399763607792165432988074964880786579627256390005726258860812482181390946880068795498455219478137961477830685829815424850480557225267742206224714530679869401705025572369560956865947687688437705034288608028464037970191010026039961127946785197102808201356057638874861588436012381698398814114078497791115088350867290389286131428411690727679628011518944511486180034293537072347229169783226751078822940441614228354757424108519870218139690551324277399465715802893834307984393209926992887904174271582739483855245781660061718880934861839863622338490799722949235204213453401105931904395855483367542351566406034545920419850101941106956617310736419938646127605337197392400519147649134390323327695392905121317291778051425321742292060008211681340416091464036759415393122857640693582212440573753677297367899537431698808402344012133344059692070594510961935230832203249620378538272645611913519922772220066651503023792156809724198739270148382083802589686038555176621895622018106527218034862974197662690636425241855721666893444589944591385893361314370216983398965645629224281351667591680757505572500236305587023436417027184436366221114560782809674368132140145809219488175478372430090927461918781046380788475777061894835963855337535578369198096811214580239531849222518721969965096377972987133203394618064485349380212911221169332503418974662537600212528878719155183982140166515450766095431902347277509796011118266413214531261737800503505577326206376901861553431610004119782440469433618034486298214286202698569739709144057223747179129695480906494197966215388426820956904598707164124267340892201968044131286424290414742853938553786439431909963956127507249913454115582507392725434242082928189510158873430075109903436400563360701793867577738835764814557472210650177663861150142159854924461414769246480046855703439853581334189052314649498108079030881455573728841273401842720391299458255741302631283059269461873293314435649182200649579648285826957881754625997008957604280649744559972354886354867955610167398505968994197306954544669392165003395857639570128674076062269781925922255570286062226780310109401348427013140856368804651032121026368869572254674776420446901876686414980103069059155487833171539205291606822287535132065224343568149266903911660944340904132775273040527295780339328426697523202788114899981802870136295209830327334641724257709881104892823917877685370524484295905674435070779507410725221362521375730088194495979972637410703962051550825115830932830645323341809710749895180184297458280573170977861786910678452259083568147196686871524423280547772177080002023497140198666757377355945073481481315755939803179308986204992762980354770722720669268940646838797095289172897094484195018094384263592157308269805768262815285291287050379415686391496723615412027750134384842868120913353465947222426680425005136987348052838033439836096408516661799438239554194103658178558458349903413427435798679144929218727550865975051751138825196177155893456134596517736159040132164968781187931772350007096617708360669173072162072674218958884781006101891950211044578931181253367728768675133123128480846582891885907614440267515242956205786361066569595040800617023141597896583350461755299873575599272844183163830223165665328051327995757667064400717151471007242788407682905027678689105804259868545687442074667498784621352107884081802707740663128771573972377112898012517153462689331018658994008981426059999174181335019374390982594906112558700116091766708708399083046823902215543223522515458530850540454665195713236867392650883496436394989034162733095031542966903298908217737383432462359833121804581729032674038576974891881231405283266182991081480084425525570701887134637021351711713850997887902250882309529674197944875363445974943640686085890757931823749420353359004260298768950473974446220082162224392730729191866898108157963680983635038458613556204215551920233715415837853299587067962013701353188784809157865026212993621477575502680697303356641588474681413717024597418677433197336837206355769948989592260678168278231279924218127749328976498627963594745587798905296430720819244061489606565754374648731893388324228390053439657110231415410898744393386821429206813925850955626764384850284576020308556372869349957393392506781442956096166377657740324348655505182522934064317522144699070360126691148111030882724029832413621838826959370440993652330117169173233056022326181729475448460018775254342148698795802128068786787676651839663128069048996612422374737090191954684276631234437582790192853629098409069863212993010021590950094963138553927646638529223846046686350056773135800562058316197800757567020590437623278313633947774903385902907966694699516217188976668761369886177931678800258955656172965656972480346122555531927341793985789723169532048506285104179134904278122210762997853346547811460867337030100071794086962534060692211903288064630619948281573034989095810786054250050397860604250150619394715504782651827919207965625270696413797587289494113274958553354052577504383592802811558909745752259395230852486011206490659572791815468131306523286913891647356829517123307625917091000362739244530164421770785183443645106280887412534292523034646074500929369454514312382107559236232799575419902349798910571688531779319281967405280267164641728375654875592739542722542952859073058740574695020250532373792307373327374957081828420473543185126023000143454396075707751054719322892881905361018104605853356827354417804547267943292498917478397423299115822503774764015615437561870415070971212352839204210549810577524580837853782323573687205245111908947096317027336130713495565514088626216535688806803958743908999259621507420548225083156015925523120235504292446254595946446585171231900337531744970998541017205047896636197818213342016533555734558532386917111326765593296225493630340661500430513517723384577054137282439503134828453554514797694820735573750699395553869321123558296009425790685235075675704065626222540294424642204010486960549375585370964357769616463140663021941290912932816001920988716780896765924491442917903470881421980879572330998121206714641223574644282963186891672824099464321382666800107843517468365362720185313469039661281096601537550678524481666902911364312329607983705257124220540497334633531160872180987722419670634072466706491202863196123784509289247503641428852580262190983667404349226412318025185038015792812737000797895137387572726755692192191813833305396949122990126902426166458880137658697095948128235011478419545897872244858177044505061778073207304696403103437193923024192857749045374238642780901176609775860740924612022413517928609707385915868083861066384880039267785172873869361561084101319648054712104867558941650866947260575976626610402200642982909364638380149853087124975115064349654824572137086836378416429245096223981256883008953389784468423119765724778188117851958920040752399409951398124749579489565707449176803408661557336043075614214407501236883585909307373472063076131811341675102482160838525551615973578802594522165202871558382485664621095191556746399744748377562277091805522535441600439234039934315664065137206823637652128603789627609770047271619099509168628809115717270502407374601367562821031946203270674984599509485593691755934952582810845350483287242664365237870183977348529413473740634927074074088250112595629841696177397673460373536744557358170556624837034324508895190049701912305046405333641942143603327757427996260780716084604871367641997026163163632978727001802506124128042485206963364100481443360838936512695917303508094699590707102405981695528573534505561131971382454390921723649028114286622663070867935058773836007094836770044188087507453690669611760490533331091868445106534875581155834803791446617866968327469944915278912056319093987543361430901323689192402422973917073604869042056834783631717123493552094079029767567768457639877882113373931459861230854598849333249690856305090065277982888480289758465418566041354170172258000610826620301398311000027411244132519302772957167446447346616989291645813188068929312692419811928577032117962354863141198399951176538694870217208249687877165558644724337408085385608079102061725666604954893784338987609520612149000399640628584390009606753252449353810134581834258980357762151891951468850322182644565871990079857092176654731205787044167622195467010731998329115495234722088067386138816583682394813563041905902043614091572746918811603385063893001790433781382709637713699442114335685958605604245401698527228616533427884042480659512862264204872619558550608906026515129345397446532582203377403927137187838232212349564901915795020545569799129775423851535766269066846312164963691463278482630082321997412403165401215724525152022292933022581612100545628362983931342767573657062950029899301132969832663381233725391381568987665832327498241991202720557405556009715120115435236909663763591414445368008728635764438680105520707020546967165356973613446958487139401471116175040819059053011230218943534600422016743579256825656134765622669955993561262808234020074548063628192991108790435353383159666059849368462792475891195556722475572596719914350666332674132225120454138954057987504779105605293350161528415639747351519498948049952725244979114353927170343548557589670971865539349355596724361616866232890650826412324702422039478387220665184064545307354801491426050276733703575443009207399706810071698478061460080919553819050613930753725624649190137299595650916035848272966646896854218376008257500066245666006378353537495536424238184011899039991146488573268072094973922579168055448909197769025477301699316186427756266984338346543730307236327987386807631645866165931197721128487966995214316316062289370396506540416166675566052909661620760675113259573508284463797544192289722302712684199514790775061901026250451103009963519673835355801943131584790043642430037380199332611338819197374243577558073804249010467009895445916395681635140404150219765898787870425867220556451767058612957294478408303046489763823702238728723124638737127454400298427853519657432565517837876274450745451760800164210204734112523564634373215720084702181461621418156749559435159905731379393849678010827955680933817094052093630703678457444392355268170230442401376061470380286286830076125045609581020609314583184066402865455161752125021034405590016691061452210409258072350230451545911000907239693647191260384836057518089510434369233371191777377506033335145181608045794059882790569215738173529058518027819889378970772154594066109805419429410395841493256107622749064506529522254596799605665550211034440501587051495870103859915546408614546723918295325900523975575594329009072908195860823384754576747734932162148008173156035149314922076301039910214189756904098377042188853474799806141941194783799026716408315286693154338877939216493734554388451937565140513406949269353901148193312856082617882625943196496977252062619958037672199563813332789979334293929802743853437428782697951187904414130162438714024426228331569056597329806895931890441901541533998457607678401047495903682369691340516391482138902719672016819887079831273166641075275289433485558450593528386345525616428080031626249442700893890789992009451382070296123425181955308647850945154962010036187549936518361847195851931530216060086808665542270595064382060494510050943478849600397975999972283605036534892881392274272113749194020235975027558875892719645086624926706313234988165537233654715437331416619652840070960770689614998302047962394141863529414652486873278408539310973041886413465312905169457136701162850122338313908823703503692286495110670753276538549043493837269440760384769517641333936237278585750444497599693958988391682283365678536478746652913568524597871336186186871273454455279450754431080888294434967236448381145852321755431113032460100665188093949319853767480054453149792435322590814551622268271818059719554166574384423618595800052430089579854300590886735320127751416676945376777044163038618085885454100730979651598486272441533211220710819938690558046369439252498049409413986727861263579871999999037172782844165632271223761607848633526595340174930206517170825205006461735294926296916421069394123901724093303211373256109649537921260030513092022173568829674795607556813015548438644387965976663994050787073604033205275287277275183686905687862781916714517041855684982845634873211698431624064445284095740785160288434656205455340650308843138012730435658590122792389263108178641000122269306436047064436292251827901442876141070212769991256812759093771785531462453152215543661899651774671235498776378447401786077408096883208704174789493676302193901857900283322476980799269202310470983339370723599300570301460057089489835643548771721325656745267028355338929090743127401924802863522687857724927224183448632127764718773032727315824980229299977134770665668950966265209825250510115145304687249932178730891030029571249494775632460280270940204379390955750384005819456368550180336687933703959858592919809330469560011099384835544470518669784697868747166638784271411948610065010595389153974450841527377775224424015296241057759183221040602281141926078163818717885982324943201136203813081701120327223842551531844987265519906362895582924745266094582329183590709548158711700606729404079120246278375044450644490594766901751048122773392177214834639561313112891180617552668807419718108974994298995047145155237869146645936835824977350618201989848096297247201788770503954507225499631227050818667841801859004858729907608170794791144834391004162537135715234546124271897921109710063995370923593196922664543414237425386809316501992850758449118760949550125490886660407503597086669619455936573977655543078326541786393866949872647448326550527757376580112950259660547181253704588275849251100450253504832038005809472994773477519701820301931017086662307056412296848498011617842707202706387072342260567111987248748570178823727561739297303347490260515008292066813348450843168337055560222083580315839193638159727980413158160493590077668845509198216708110754832350220908586893795420505837566253457571704239192642125877810855109696734286527304436416452919922917182857147992419630915672649222512881640003504871855790011854114346108266396243457470061954293057885702192546136205912106513744032021466006854817446900249320990685326330514204469056208598835685384644326237870693256177357692520929399457524611277049365485740716787476232761260703427126203763749523647349574840224813377122629853936081949035631743884532883591651009003874826157673602284842575614411446764607765954868652222361443349751140010899107230681501398065893975873137401365283807249185638421745327489213698290423504491140455658035266043920080701409085546401172565374724345871032989711290474906687076840823451321285382861264482037978546976290923922728258865423476925034888092468640643222899711790222043418300328649119419744126416346780509464027280723248595379215703951142817800461832307488583757700541097835382693161188118929775801381401230844212121109840801652166647066286761296918886750603592104671478628296520682223118484596545445277329549865668708395582764180946232052217223212667727316023328868475032191341853691075430795749985512184021526213934817951721045211931533429150936128868500397236517109894237866773810546070863657639987990099248061970596635621067836934978838252436446904399190150586531861722904306663936532608898690925751681131092851237344061455268201214658569126561149076596051357712947708358046197587148694177254447276651537471555869164562519124767955445191455606413124820790881332528246386322381571836167870104748325479080858233099516004235495160702017117389962640165285203782627986581017004137870264205242685132856865339333092522394821219017849073318627569324290307498072952652455596770423672161205782461972230837794335556792760701514092912210495903893306667812511699204648287322873901197552824382733712931582926836233176473084076174055816344745232071694683111745007754546589000081606059417429247934954368640921319960092077663787101479994669401918731280788188502854302945056003677106361126523968923808302761041560976109754340060384065747250329006203645416366889515338458648755881739385879746744061946101406724802385488364975770929887907518047961725526256403840572883671053980775242432875103782380047710233869079531196910769508705694006430280276973575872869916267867506739534693116556210460211757387677440595039289140803923518667478832467088508357132956848714612512268915247276479140560327718312049180866333622054832792759805943051344282472252484712327072661910139299446581922593311329890872045665457114983922677214644297187515576991849031418121823587751167116461948774607161975555511149146585496054142447657260215464304156811373981900906996841781160868256552435298323009721832308072739207840104944126899893586223397852752031965635894127889874550664612285173269425909066544759911171275944873183817237784329905769588668340552447790661999257654004935824185676532605745472825637790326413285248705912068559692692043790383716072995550906426733894944063643956227720794676857952052896859965103048464009646890471158773037304887602338545508528624372722711284098459383059717511162638144919156149466360832548681371449769525521486670181308478397421477998393884200871887899014154483658120734734466325919210590517332823389441093161294984899366607113866331577278990828992523084298468524019707354182775041575261285871827139894443041819933078238484466456909954880450402415603154945137957737287932548426778198899139755046938687563383223072063704726858695589343204786027116466083806559083260303830985393572871906454003669191977205500800984159758170562212926068288714572286668737481036627201301861509529444564200185900143115171204208446708080210967432945963042560640652892781877990043684081536023203061420586297556992023940492152285662945218501666054457864507641388546968052165555017349245613018463919970718166358848379084841354765351452535299785658921919955578343782318301931591915707457273752029197654169416303523445614230712989886076145388243989107603659261722145308736955675223671660586403859954170687866288635591606775201898170222528991769967068355338113979448689211753918420707490893639878941077960799380311162163165056902371897202857228408249893101828354174445804352979163731270009583575018140887015100322839317586666134422300132532856349232461188983456651434158067646013874342998183366094270120114683297889622201742787473748905422379968359936445665489862513082125083128526582010791085628713430675558771619182613669538428313959606794001579594118162201406296726612309851400572777145348338267261186818554270654505140212896370366884297357602698536489905231576031981657748884711084078959322480512577749288900712800999098271956996674787490786562190940978177451535761415042415348058337229459656146280402003095940233317386809462595676950988575975068949087088024883720300172008170980986722432728247378383069309143394398272903699682405650551365109057939842770246842096450781406419093119494285671042534358216625197277379010954894619556880232800114158525639110388272247055803471684173856650111020356660857921389873293683245743614581188838368832557682901280472673041505671417616035719797281135950719426887933585154757947317940197938763197601261504884438984078507402658028983490916721358916642747097029799536596449745524338960480364614239170312264670050448595975561929988642118479622713444650865417542288449647214467903329696443038136229515482104826242575042773946588277983239772359656376001612259727183060432000619648747161336814783345001709846825834873536307297960046422309478058401902583545833494692134609804048817924587563520078354461221218045165514481328939276224583885634840516444069516141765796876857901824739451924594618318336362995003804093734850251474621884454858746268789351025427061629603369676545872495042841328888770893443227211894961002136892610900976179043598481735940209290712846000431555593871066984081186175347522691346690016929896290579518958420382732434241827143122525271094180467257692884865041071292567295788731767301675143934911166248726526322209284863577599277883173549345831142803011018020452839881180459377285185101192186006402829337851854709121560575290510130381003608351820091122576289342640157313971964749608939810329202008912816197742033738532876471652089300620071871281186639299475780738358238606748399288072471449445113980831665771982650770899909893249072833296857403155393028345523051800745872244828458203460569477214432527400060152254964497898241108563120994413987775012629230088788331829754142932324947639987794630997998886926314739780313423673445162178925867325777908869144764094697510772099366276157386881458591450918773207597421028285468572563016519338061302066974222445191201812804670972536295116324228205042131081633316557534800422168232227868377222390888247785183782525405004770383161049117145147905107512538603090213073810812265767272709000120544736004712149875406840340621436531206277156008820707950871062559090444354350726851286237537730871816280502595799969452842038023583043358284087434166617660620552611228408156085567194515082629043832260630022142121747791328941913549697271135443218336283255201828261854660715104510603083523224018155773568472156597818655560997194336942743835702223535764208316859293629117430086563435376767211297913542768234333158144244450207052752677366587214765870297037270489879850316271474424732829833454294413817041027494574204424755354382753230103353877926841074985681078232107811898035759231614215588798663784548472660197785558248427269183863189555304609792719385395836456770591875879518531871502755907095411235738608749188205275759551086613638521808446427344403377450325299812925108250636024377762398655850389880366707777097002075118984479293550742596215938544233879961109161848317284349084077454297170067803572215791758771101554255901824336491884281135571281275438300806120778880521623851370442688790509319378195138270422342385838202197971603239478570064586130936586607945637321912400423993849337102251162487664385428503637091819662884927076878713778725989715538377039157418929005982378396460344873900103860451064579132045643297125082276855829977370555352856182568313846330119154660203128640181849169696565226292351210967327226136026828407582635879200240858685414039422902937709053579499646889643504485545241014704790288549728425494163405529044878702532823034514292793337422520075339397640121118199525322973133207732779949644534088491732619606674519100072748571266334550144692851700013151485853802562587304185577830938845278525704462159128991709168094648742688126304471371190169955579737521507120178425217738282834852687791401648525598025180527052654632874069560726316019888145632493381859784529109270214400473971134998039313732612787097799972401984362820662354280234059354274407369897285410471964269393493941247172068807122249715733211313371754819015046089832349082921530890678518594344532922302664298900087266615258328941855266914572045633052991995929577629899982866963136991203556463140567577339280318073969872932370879020388648120471608221493813192246174883161166060126906122374451181675062237579591237397233157260321066884253951966045132336315011654946226652542323201304157151560732015215816338678389923744002028080662426149357236271733424805626512996368912592130638065881933533419686530269498413211314764496176502314504015712787415069467581769257598653312433690361500532130483342634113169792654306235255305584620512349101858502829321464494962444132649629059744521573106771155066863829182186841297785410780085451974664889965882079208269308518392778944519920854234968690831164374829321611125400640648271349157462140606008279502086023171678959689937713475836869770484081065322404255678577971220578624828241508464256644369776566492477751971243315750446887831535582716382464622816151754157863597832944331924900040512304439506357860886550604971521427709397751445940536222190323419549803273299692159356126100441839038028033956902938320852522795554692562651912614196136634233569521337229132691359746205619337745535690867428892558098623793616127098185211588169338331985337772359015870829582379060978193752622989030861818003423905560388026912301478751936593802684800836082183740178144358763929753987316088347701554672608800435364410421879942324650562158608535838751320831643063558082057286385207034884034592591396355335233504786256100139269716062835360880357529917987438813080519330946245304476457885434882058278805391410317707308490566518505843827825652737440354745621966545606059117991344693212591452984449342672901382253390013329006243219078871220062508836291829013867665565039386747640881556010380922491794096677019687437514649346556917734186478009334645050382694818329842311513177465379393816453703019065559954202502018610304314418322855302199110820691770454389963623642018471022334886697973560965735442832603474922944237745429824644216043397448765828365869369786871196674086173037265976496261041960449116319119356653141230190048357086724233161943191494866133110012953466959482082049574984577636512192183177966699201665248091526766013528496280840628424502549801073333532685306729704200466753404343032866895459627861798556333497995616467267382276850443478802211272055302916163068860908758290284885601281368687189943370985704436980983931217731135296480178795510456930269995442160233438369253081250004595385881052982824004333838345927984660416820733705383308446465505575165369124512208307158950491453754535106651937279480176299823200554681001672894311272513386182383293117265460758224759314147131376451233008594977760711971746508650462025622201294991710947138750954577861706996201826088944583647545441193022042774717919157324119601230934789811668860460969559943177949104506465065621217787651262203612547339018930000710607290675558210788259552251931349682752736578266100349121374895523845766009062302871241924113361480312521231094673546652315286743990879086295239455056329592387036349386271069739881852384029824744805060586306728570476400075063922360548517947342595220146144204345182352414216666475825647095797623424547754102069402993348128575443330229628704222886017515084096445809673298481898552413969349971091501596497138610103225801040191838073106118985614127067144534181302296398474993563761246993954534211355319480226613741068930649742380546528330904326137954678935127612297928418161317808835545303130074468594208213319796352108734512207998187136446443542213482863878921856399370148601793520924635797851311525483696454098861665263763540680355404908980182389888187167088509765689179737457746389250700525894934281108385783224561583283305723413893375173335123862171049077323443309909597952423074307356589466938523847989556079055888451269150615192360461962382277259749107156838685178299132083097230843833449698060798733262867055923120245537384552873693861485553194849580631654677062133849977955178310155919189262013164019445166982573262672509803360868933777904328749323260098338606280608505519963142462121491261557568837367088896815797449729906554203741098091675473019187555517331592922893618143197932649579119313729960000306223547710693473974605801424366904944562004988934145516517278932498421875488708238712187662420703397467520769568264859864752867353926815102779945772856505217655594933010938476378507548438489684511277035496080195457397739048274475397433269279524194881733836643110200808225768994035974192037544983044576619478602932796418103056762321417871955559333097224202026082170121120087344250977544009828043106103483962539580725425423032649835214028486037694447605333908573406866480362188464759955206550536537591708328699044632099429830327262360231595444226322541184300118730541301568843517892916497539513530425047656193404805440052317266669455546493541111870546515059752731611384140400340175046320621716346978986496837065929263427001016189704584652503799310124415733756787758764674897950150324059194228819211823904845413846642761553651479523930770451351356559355470868182334450439342336223069754760628098034971159422640394563105244472690957382715602028760441498930743420317498161580719691485913526019402689428337319501343395799496881750491510691592848148172567174035183571885541893170059594397887417361601943955294778370220149661709034342836543077523491595335794426947542291821479425697391037096382467432538425289815421917068054762594575433166346889031985185948984167076450073104971854325717308901430392745838403487755679911850181890061928450936212006687603385714535894695496253248260903974434796183331354896450176534017671556287541327110925282651581044501751666291586614242954555288738837477251842717436565220504500032651757181341087549492291905162243248250297462663569111093700931261618498412367144023080127596919066733792647768243642098723873111753628065558767788904499225254952714004240844711372369545005459817324992722381895838580088363925136302058889578150747435062795569430184446118205214617392355967136906607206104383427941912860750542492134899000226368313000246599039148757480974348647538382614540950040824701197040971834289645723872919081134441207555258387972653901592915988959780390198585465409848551090784920776007431645232087911253163928411415659400439519671409691932684321251888461880056477732014883698862016452117142465499772829903114894983343694837642087725493526852694722202601962618996858977381928336344300850259326157868110960640556048031576471495797155150444706497071891508182379582088679165544792136044507044567248756001179199788385553534765412105976873453620753477811659623932628289849987335420004493048333451782346194764032316023139861655170459657930793107152982830730186050421801985222888245918528274977491541190931345704661627573788713598767932901482286751284221057913505203942267460978741407595832500182850678872889025101323862132920211683605562400864045761905215171727992544461085261294651339269992919112356015877571302660196530550274581121749077621784249906846691449340455998972186256018832519399087777527056324786005133158148697825454637877262629845896837338149790709329290101411147093482875893893169507371064782590859217641540759120015125889423852485201202432193064898923663721480199150532300233377402085676432715357367490146788716934811684278362147314937739479070003349486919588052488756068040149677133371797569068682756071285350573933190384664488362348857623426138731588165189762594182112813379194045546153329743101247298399895395656821175968390121306230530713734564578988119072209568907440881355923883254834186747229258111461171324893155801180662268121810236909008375098819151268867371058020096776304632279664839900293286755302040163468637649934323312017827448112640034707554767007107175464447426987371746592891482321062113585311896369655958074132990509658575748336537116306514453947195394121852446191733715628048988528952077110352102504502477019169046157892252606568812001549641544791205887951136892854896716342394379236103226529570193364430233053454199211997706575436958637038019549624340908030546644063071016309367945097441639439849210028369338113256505259950296309281692589193488846622587817016848562203217917401989301616254312025342302410805140057789281221162609048721542748100150963434888738179466505549984230705133056701949240250911638987609623887376536130033256812201817998122150605084170759156742701375004276148387474663446770016556863297161435441226606480803901479964748951765373160983783915110925479468469165039200978098252566862835934174457812205835238547806423870576186269374786870598672909070460564689232627911597390643180405305416974853304567555025797330463176734878092001074542261004426526611213857727090050878746431201646611664845399886101602026938339284500495949522872499852765375619251301129802297138259238407049311453287540919494923446456013901924183577985620296394281010937641011110098957748574179595191214641513605069622278809961471423517930908398819913032380591829408633972898638491718645384974788912041745640852702008856494566113064553939842840532924714818307337807994985901469321232066396204440829016383874515624890618569429063130359476299443412280907462413419060398465551200503238184174656671153752847098220836824509788968044653902472372944793244105353687264451335181192421403944031799499906338990161922420850173443964045438178774343498748059685268228645114843190051845649452636955977046748284609285008989477296252057406270563314856035456029427612586252114401932159210270084177785222277868976119758733449298202767455037775821007184660039165772928847405214770803883973869112424971409527817561442786951691431698258613372355128774450476676506243011944684889761190579267052534340532960785938371026769871793308048119791723304556599339990193565814314492468424459009969405040593675083896386868499594755697436818582425776624772729868305092864337685990478007219053337860414904317997937671570397306861382887682341479447746911979014282826833497609926872900342089768296226923132428114418243113357387188544015399566923942400092395936413180559919281605891282269166551550104161449991589570653899920594731731469501554151128775870648247816828710373877568725795371542542342401733986189861265909023278997623113766877083613985633737425051436580671240909977328652306476480236947741822300013025949171221878037395582681210608809201385118511163451276860032481407303071273001384944905784191731413656955832288073070377581197244282332533536207084746515578828640319381168628467247981194427054754334463918754542374017661168914528271292881031165788836262261572174171321286943062471695959497184020330834605345657787559948978177580932773396434585511697499038754995975319571018896987219753709562897025378127522884912365100491336002610557623165565525300991218211518601601915025989071275403390779468536596860370965894071577458960594768494341000420617456378658427306664519824048174466320854757404323755554364002807502215044712153327417377084574174238463203940405388490317045334094170273633493219061659632742658097331178089591141140927602031585517480760261794273255000869229109860652042349536876448236843638342232995810140547088822771644007358446018674659025925481031593636848648893016210454500090677084498490667863297507776226704339215092949332422511714522489170851207197667849964269625947008910381730138271359014091124283484142918049622311210902049074322097580471346746933262566959059045826877154793080806623757234724765631975689347479736538243864559058342162522726577729996970578362174055191963579636990732768786687697942626495205958068397408714607083674605512674008218972249617829256142308029612019621247560073170523081958827323112737225949757378831711441865644795416327032655018677444064506334618722174346118490762511564158706025441271728140698772916138568333487029766328779570012471894478576244859877412071616872967300090604944260133416492938853054692808327311443410538119173392230911757091174671900982538084480873920769615318013785474618101749044164309377986283915897164242443423284847840722029799435987945318388495781303052708377039512339857849130332484577092027563454867704490733902177261908864236505662897258747918290251415874497908512595233750752080503659493255229426525949419815083307707160489670130851871352456002868355023568623290335058425072892102651576578790426717257113168594722406940350212003324995068797101618101687479110142737844118421180830522458494944869061303211535659173135171983064777631394267457790737863404741166037170874799351289555303031269521147319491730226728350977603094205880418246109108748382459869805068361129416469989626757222981955944083693566780651394300930718503588967475193267007177736914917921824444534670492062956032260303333296732448512688156264368330782285366469472469463167148384055556347885515765125713835130130333098554083696522866790208122374020794267423573032508252607022750716195247294093355843826503886298563233649883027715532496718161158712316921018089573277531330088550397347783315618564492960474123707088297292012520148532088665111996420190849016275446058713245419276675297789100740421613385192308439132920639545634948844765011569625967811769975977030797536543014106450177405377778867538826976733628350810950227408110926876812536859227255560582506009808225963303952839625323232536013545110599689866133046592520769465735673800434749267011363162310902973595374492141623765024917456243843238353218328908149310361492311172016675647350641097748200626612261348926426427994676250963123590609268219651511809895205933803887320967518655354360880433808030475093083097807609852804192861333474079198971015812271205721836860357842378832354709141463544158915144206527242932792343480823893213758879970363477553955667825904359031676685907062343277871961227207810606630520140447988319251202107146285005120373395254303332570323890680264525792013811506358970641287068213155144793343672804231660789839330923116911157223842469192648258778156268547358122310282863534198571142832841785688340572534321828035092439637525589594313873354599900474366330993735870350375660191644814941121630358682965956646655962997948349670363134558022803833938169907427485734795801007450725494358417012777356539926548607531651356739204099268489801015685269001323376571113189961760524023179366899906175249137353639588165024562842986249988749242139889591152008801824725151431308125182755426033351818208717865443188792427657548004767294497246668492759769998926119208068506611535385765104042698045117224195527443008135854048974802947734204605631185856478692296602011423386290329833096229190738732625318567083055870446770193337579812863559810425502435260751153849362553030392473126186976142991707149615376357450908663179620277443898053455646341667412643484141283178622464630760259935105793521561697864590229227999747059018087443191991303297757568126485679901134523702968888149432782755148318609442964989883554197358574576093371395907005247196456329804680616149472467678603485149060766161945109930767125189135096820297734021903787642753647068139527679123334726932406368018923267897039786054109097279599215779744024597002303448033257819911980199316307704517416375978589308133890466456752146745159210986203293471743407000307923692301515476237487158129742119612045441817767762716017383923104283771862584068020889020037010611694549008398891265176256605290476090229715126008540855144595109183969438839062817096057215269573981679461946335328750775597056460464662371181304488419831331535396964735627781488792092727088075179937760526624547412324719847875903666450723640544478677309119578281786354598910763605208565291205997109466596485897663685528485229416976155754829134183476730861981809365568654817380246775296033881888365487451787373361020757346505092626494703411018596657114325639164122097046451707707989592433231944285043564287382674761694283936389732807968131075705178139371637057861932349610385808859194659798060542613114275521984883323936415104498658705510194999724638860045139868445725272746286931923368282554532811169208670323144567178792634475949581272522552026778250264496857947404822486581024596477469134552111595829258525925214819787582114064500291446869069817054567953023672268526804815063420418178492519235950601950094658855371040651699304307664308382393606857180825072459458147253992567777563778474992806299871838936044803321124382152881762382131424768061131154035783029781991825628866893449085810174869612168576312848689345505268191772494877368033329738268386415794037633564193799968195133505402792223001949413671509636518134935959032252791933937876823532081923216252976414162389679402786913756149917567593450070424944363696994094851889270344350869125263035230661388326272599452905048566876153462622781037722921768148793831172938156016883074961648202650271394064864094589749998191925035140290207334360795379905632429477991538307224097209551152305384799077138258640222025567501568505646035147567932642513708459267785540722465430378130850655346673939688454701153657954006140078175989553537923841152991450783926631084368738744855157477648767884546284887676257888472175189332094844514405036852286340205102032091451649847195279942456715925507466414370403168776615757282578469331208416496634559414579598329396012729145378891193166396974628557569159277126922210938019486554222896000146103514108216389707960130586218007926973237502629626424805390379458617716197785405253599802088556384255486530581016236047271353753896708064763905747834841727285963393369958510700397874464250382740341467517943859692525388213844275726069205322932723459424624803906884806851285773717201537639749304399180651775769527741837919528505636962634504251824817157276039412285572136366451353281374899085515892789979739640678183266845796203109512675167425855744902272478194774368685498970784771898480646728106643989120952325356846946844131700751655685685986837490851208919946359851978153956198374075186101776543648011872539393680434040016438099137031671799487934806470079759175320582552863959954188170991331506571716455898188440813345194156716931755898128278977783320879628316046672119210264137454292373657279894393173909470892766680893027854938079586291335074784230801715944785116986375129570414357818029684480820929518422833643418179656689246476783908913562882358325309710827778485907949847920243061997102230819789239448213818534339964070215855405013048254904136779182338675732743338910070772584199419064658886598403567397155186921953059423174671760404218034147600160772198660631404490479424494201205599761667691697089676980555699868539204959871970440461000348109214585775274087207296922725305153313087618143990864372189615213681464258474178310444194707007677315911426810154143152501231567245791877675865776713221879531134356568412754313679797407642644025363372219348663565219102537117360115843433961329436056997747669636426550068109747606548573448923469650879007094202135996197350906431497046424028642362148810058305855514894932575584058047932957294214070264747591929903148025197180042701955865841902982646288879730214602299783340820947283216501332819195904922270188663753691155695797986367672914004779947800229066792272136763543181829521349060248215355801962353756933132242506038017580154953383590533059278020205777404962092622730355033847325931147016895312943709022678491458425318015825421140661073659902249180540449990703024465923385503963593918693658182640535120263685145488283102871564176447732443254543527518579338701061563001908046028973110205674397764625489241383188286612757925644132518874644078808747711627032203967489335441729062137516384618928852531211141656042419123008599028637621491798564414596705755619283385527460620279777744951206326599713293735438760781902617330486678380158993064597695038822685595852341753164446989562642539238241516636735850296268934352433283387300240191803036332142328016691360026143407700102716238088885779247910117831168285681017281521566933339094014167568199334579946264415660315278941697988187043789742607570644185266123023948500114956947625233072277031422191356035157903571179645108330519083313275778189182353736450798154644804019404359785986472948152295414273791209008305083440347166305560884633743191519308639488558514364480293152200466584367264616540861567133587978176193440117946237693653944128640096362418861495344258254001826754174439202130152005353053850513114555096244810364473859326289672055501023768291074402241407456066380272217627841385717885997694025467772039924188629846075875480467558719651274546188670155318561869916839988089571363619874219833345267481933775677472080073487347305273965404625678056671518183562892723057723111661909687143464537747583944596848746601971296405831466553937409132098229866199085348694023990388490408130825863217144544032327693345224205550903950595501349660587768726221165774722188460663941208560278452609062066230069908588346892269275321689274421090145511744133081331122178606615769150007219080363594673733450026110411052305069951115981215993378933084610576172555993236669936595127784013577852784349343857399119541066631386382517821173914679294511115710033930283464526182712120906157028768437463553258782242951714221020001293083845213860494217352824447694671522236999549516718263669057218759574346842718186477834893222893604758207279196050220983309684554123443091339839780577874679706437473444650937020756346410167063865415703078061699002509281517764278161744102663203522692205724378518697716834389703476853604154984978281693274879526800079184789822538348752828750820109728593730957703210908474751759119266011823322438638868861132410200901654198545125288375102839490694316579226032155063780621250654734983079666834192490398676738154257152386170586024347702098586674010557197966561196220510501245494433490082029362970422218567928009371091305249513707329107748023232549006139286122075827180294949079075552224677072063224004242255712101340079125131653319872577701723148959411150320134107015442008098020719083362574470828921300709734440768649275214405519271621173380634669696726156723089525784088177603044817998105368957732400000276678146038288192303962644349813568470664241966528929966525625107551409877210402152424015833965282501634587161579233453827023012025198034389409581592378328687552074714921255713942410065188495009854960781233439455325446801549444973526305458644292402661399605865450951549765027140090962838357087328710024457993193086634336646232666485627279464283641828762745572144069495448809357337412249652489860572823104016384098865904449660481530001257049011989485068972686755835065080481025223816987058803121865715114672528732018587054868227507229413841643112116625703253249675302380945435421651692511001720797744114669170769489574410138188564274575055296982965322371985875970400192933590711835242251748559315835000795466918039627505490954870351286353719777188604768746918034055749383547578173916289862907569980787975158807739777197428608472650083263684154885974246247456636381615993967188261874887469332677759729157371459733673339771955607674716071099045400974831014707523190488698549774834035256032718889199724462204442489800060211876703931378959887518214378090209453745417819453699894699823023803807458861380278697709969962387232932777649708719320631026669546549044248460497594806367061074380674145546008295286166692763189661672878546146629197210504476168262178151821074923070109621355879898198479326652236613107169328079338966099066846059158014997822447789893870124438822118191876155306352226018769819414542373501521383896802709731874497914503661618348890119689404822866991986537407845043530842606929620150704551469097842275817767898132952208078381950494629442654214834501947615368060586375119796298811710008261724934810313258574762861767479815067482662407437207202845940114825756866579732232098718213735781741445830134290904662686363424369254263062365553354853285086714868282690105447945847185499384669280833831345257287674567255666500022298801241854898026594016696505498218983772649126027514698796275142083712093616343256372902013882983490788455765065862312584118733847307306579212999752419298234171999619169850441413359840764060126353037029160364396357402504707200659444224507470394666767279438119332738248086332906870834685741643578603414217511762359532687225382553929499206229074906909845181414227882422068485312935014596674529694260481838909888178865353126211950053592006091161196424707101832946080177969988314413727763416889922136220027166243115489370604200017414735953814802534617269625652540084117296663390478879108900373378511756586833054107017397977320425779133753672031728332854247620814013591205193038838585067897281669094880635772461640343183744993596106069840101848515105998652557291394262367596266208160081411439438354810392114975041139167064975862880814485017619282911984822910634132957462807743536978460929680169131433233674024380399171924444683261732975620976296395254056391238516817509480690575630960773698174777239692745493338619953586474745684792885718923378001146383054452228202974882061863138637332810033627541887761090304720930558016367348522388813983319454744454018323389036943686095254958816918002773015712002094321195763773496927992238916194418684846727392014200867669234414786512963329451420654664964145323178450697552852391847648873041783816626402991837913462258625453628711671255594252147532206839781424999340786304015951865303073728793879493006948937035041857870687684167170832505144728466632894612783702171983174264502454464777470249718050436599835520330145466252230732830095214084228038562430769992690574280572722449701338674576772633503745085302692277576616000753326775771981524393955740206911435652012972087580442969307228350910691409299442937359769578725789663000039795867548047333721178352036731297452699402083166751630642103794800909614596036732108965357100960129699381389911128255407924396765323200730101164602637946763137032351682225918023465100354837619663925739596675981294790308357287187415012789212646793258554218840459864678166524166943436492289678992199513776375616459488978258294889417502712825237992257887669144947818999721856387613875224372830433789738634558318725840492540798135468782197780970236786859624694678374972369832511806643081933515756179629576067099178339063858516158229317816349269043277912268533839327963745941006511427418324431235090351572385684051324752484736666389037909735192399428380474174746856485706387869544865905468986006759763121503811391472670348997894349106491748871726989230942843409237111066308803770698657979559463860764011963034281625495011194252006022294030993681265670376189444837330945743738157494438306510590100681705501649954562975053867129175557401280133662370092427309882145838298810417942548691310129105733532010057988777491627582769652661977033436383568928736451237806773219104426300719592183005713380458733800776834689983239746103808132567132060737536949710969383314193943648509148274798677285038880448311650020105936403301360583216189438578113240029571776318057650603087467866724592495057734861961844191654029593474870520704351625568959507281476843385092453668588958630897515501726224328634975170062193964273126083018109725593285865759361043513203626158056712159114671579249397500515947779717861493054306146698282091364769608764849345567839029396793206605125182159434415497898864668268581333572581713744196299053562957267500345033766212414170434044638197618504042083018502518195685135904946100221540571381253092326164749953362935372397544030756279856650380186615800719650915985382466220246535273487969269811220910825339134507615039583327070900957698328257875858474043657203693012948159160929336494127940442679968811631407486724087330063589935447722488883877919218743051448075413425099755091429803978313979729099104759464095174744271381872738688197544249195765168343650367465331992488664151672910329850225302221933272977244138960016587098511721716648885908929848367453843087981451665975744773867676283623048192054572978292238331577652477985066158412078770879139308561442131521253280785964556668973459707591211432395173077431872128386917820845265319057044399905039533242285509262275294285757512097639371597596978555596225945663267896157573352666316557461298704299341129441933932263540672230542102533671545567225085643835055619962864665412189338854446696413396780493373835238733331653564596442048561197260261374833763094848741605190010190143399667691856458814468683938074135748872064920576114617402286285425957993128574103738657026970723472717995568270458919942157953638770662441574976135171557786434574993551640261483880953959557257007977889938136481864693382323313400920607276973749565298561270588899098225247078490111330192039311081156246240141402191758343242324779653896136689311245736866723787023661471984072165675414102402373379211627780429953721913482722335280132690929846528688730735307602447019348307420921453617920366209422139360321362638135270629469745063145102345938830645677529806561423088849309326433496425318220247214102322156279075053149191520236487615430110461232880882702454519182793122488329850036474621015825216866787926827467794515198579561932707169685631096774585203459611095118295419442151594833560585662184314815684346558431588047503146450242144346582899693769840415132258005993570413938910842866075048358807541255474073424772662876216029863470677627325888312353548217929643843608713918020103305440479369929527112684813575688414060912413706974844335687696165950256688306776576798608310527261695441378534192090920713387005234760592661319080837912766313770483071023243833793605290711954797862818075414321922050608169840197007936086511140648249877875309899285052691989305172353740526831235320307350036879525534361949235926314592228522577031682565088962488717827218155468669839500761830478111242727317123260897845376590643466215520327074481423794963104788047656593789518510350111374138820566049295009429452425009169384643819980901419193414621059989453042624080173217675354553897259829184348907677372272405908541967339010754636152970483936400602817217716647706461566938138504338660773798405432517095653389003605987931011046706512706655900655374094664678639845157598322240795877903227742777843126255429036457999727333201899108425056083402786425677624619788432888450737612104922916055280860592173968938474176949198022200123218286708397438418803941789615166336819735856245421717683157399786451031225373025365622990822017594354521755284639761934830176127045046039924048165612195322262919321344237224194205159756843229495952049008648256878815720737606894046088703610079979030936682081861260363767036119303605205871610299463790177245746108625789841720145388585698854151888316066529054587628521402853755052977434869455268910554879278942853128269673906169385081442230836754106475530260625639921499449587024339833550496167385897505567451124550311023783557891058215325403810791970817852435915485205813466514804481002228061361933049510187798019109499820015759982436066058363012611060383177665691786636497638140756448841763705726650437987922511542358503534501689719141711769501749339352272388030980295986617924453288757205853463803675498308282678050370567781337331523479580640641021326422476948084514584283784810188769603893243716014234332187087632065408847617514889151723572242699863501758401950683947462042195544326318130516995585942365090751780014065070198819515505685852111985463856484496599863420488121413223591302181974865779880978571070737785950733556644054316157334374938488148034358972085172291891447371801588610282708891091088253853519786180769547270304550349606879964154472479443471463500264330247717706241079028160340371332493327528548982216980622807336327687130731082019472676520278227694908421788143507386781753654331776124469320576883060130767809448418138755134458991872370935006452098189558032850203009499974771733323309648008044243360162566725040406177922887213544933393800504875857972555045171297443750926572960984302884988065130243798416628262239055480625420899097681444025015080680921763622174038062184626490418987135816704227878641365056930957110500791595258832258598412377057342726102263314510984930631033097647640636349406164220976689189721148616870387755642423687958845615717862127886932076976888619197531132572506631524101913142374987198018572416311320852201732531433122944696154583124943616112992052855430368222083187854471711868995866757468445994905922101204209821649212865559285334350939886317145952601141626173308633292198612384234711003831514094698328619000050379428757196820353542788200990084309804446576793865257833470306570232615558356729308016398312783516198783722507816580534973758273465569424521963582339531473426658239514186691241411596050210682111910923767009498423847851259992311558856099515316602393337051344871624549951870931536859266654766958804089453577400999317237207243907274031333375319852602138504438272607525377765068383472920689589203382670396745053565563324185524712732639715929267704542568292914262403270617888842221368770175478992021865900998808019093303883392521173113636090037091825602458757323959338217731955872281117394024689267722180762871598497139647992781487413041084145564721318314134886516203612928762722046184719704509856251518971254259540289648599478827488374783335147869932794097191857388879354925188830026286297118755127725976678134971889657648272136976208345675872128200940288694466011686712738169820995013259440182217032553363773280707030231602069550282205415927629803227777981379411722820956339152925276207517088681373409475394418847136634583959633467004465195349814787140470058659810136371845354654840851575616754372686811320728452814197247166346562961638405080133654739644290302724997155043418814225707353153911221745520920427916874662461650087422714168718277179801748321817602636999365592611751019625451639091749344341226232441628242517281385834597459606830904126180917422281525083645831765508105139105945909742173602349910832851618106107652719659554322845969117749935800475444991395055521742009918031045745237470846362573158358329047037768098021760512700418398928697888840613555009623848290766036536763587310662398890533177750565458793042132095758429934026897448985812691212820718688995678377103389695461572727395408918871881751500103372112116003377945016955379548610243843196782681458398299433490863862220993856906785741877636993550721504965112599780625268038230609331608122522057534912535753910291780194083359651811288079696420078985823539396325878218940197040666095051355709372537454726532084116438603898119486829467692740087396800728879629134125937216043545746665205137264976648510868464905169384560656217900051067947672306133314770449281935553638457545533841085060905980487332696060410707758021093671739292591660201956128133529852581906278689297965769782275280071878998841869310363908709043727699335041604853294994938698185660514119631602786774475981957533499717165938150786467779036313985855067072739663277149925128931444808289898625422483325127606428483540399445902001797012654197911130459123227355083410212638972544745352048709332215124335792581523717882915080927288784452872894227267724729226768280492420481337503510822940245505847167524931105291733378338463678535763827985221167267241910928107696857414881456453999034077714880338668754584096282665043935354831099085094092136484653894643371204602614651762488251178071431263995801418014983828754885382802974741250860063300368695513951237844562979048438538421945241221642441713638721345772629922179139244673323752966465626098010609131614656624026202004366813380455717006032132931218727502978413201531690648119414700284984596977524551734667249795466253937070242704223287151394798795333300466397099066328692649644011950819610808160676466546377207337470413983576555213683010554852339294079956138528272551743532497779701343417812344526544182237180921427631648150281384559963494861144166513237597357251762219138633157262758444922296999639504207704721843638833674364907046695315958175049558835937356646523815743624678600531004065678332033995970287474958502516293624484971723560706021836044605321255562184719268136693663681606831398885995451138972239672501864596318390863535842943779406462310992031935624255078150100243419007907009400297808901010583451959611261360261861017492002420976702395772474406390145369854726437080335955046128309593173369569474625861648314145885862501303251632861902621842736357024691701472967032786232001791380840095202738826558118546178634262827143994591761352052909388948087633440493666931051561512188182535781980749594390977109668193383966466903920892825767944957670230334105380499992082883653975366062656186947240502698533266862383445343810941679788784203688981871232216985996934992388980657993279391293119721642956576723970989918047441836846124546468708610127641392481484858595566987220183895193934820378632048343833803522541208082805046951123277710363249355566995519116579830919196186685266767063841560561352250920546906421967279656895182327533180765233415310241180236026793305161924700290932695796400593268171695320012833170426444721827382847176561339300174213348454926769617120547008012572419178573606170038382264749447512280774547263674478429672886426291893777737299033886659937967931311548943444450462745582360709575464489473123432245103569477500208706268223898202842395909325914421924935750621454337487922598418148841338943272667426322747763386639414651420283308663757851499938798274666258880508212475458836304584068324738841563283816802558938891256260764181834152220072349369111115862193962289486510157456221404872212043366346575091671143021478318346682665225342216703788975246495788632675856254622892403525534284892916673105143829606924061508645583301144002704761391137484494565903371237624785951620059027986835573396601258365183595577483012498805945759586219805368109105502589514168433599286267457874406787817198713745781570356300491666550147642081909079525176357249891658374186476629456459091829892641552530926095466556841994488004091549476732880430105792597586768557232425759019357972681477836965610962655360502725607960494547015352693292591556781318004502795833413830876794895277692213255847325354297776740109087740269186595305800493143732942079630632665481240442442256839043522957156151110696096126937894152422645241452001730845957930493482701304466044048836340454504170170268541204879024608811953613073023860725407295951507246102082785117195938681922398355005469569949028466526042990103862761287107361760844545993426974392377348637569257682732547807561542640021711045369777421226662300502660080207555801913909708869815028818392168162554959511580605544759970997014559012046412563403605243639998884535445811736096736704862090161962191510127943002193893216603450740224221071778073497930142768747981213035447992602245113111866306329494906899908085295941100878194229828690468379081514882384324951376245050276464955066814091294160012070116694932883182128899739539233582832630045630753721943268790149294996303062242136470061805663898420183299519959157016283785338544486573747365957562201926109960685430863621632698034799847945200101182370760885121654089709381776011168055545335527646536582655762923880985995267847570528909681803603193354981119495479692610097255204988461560742040317007820007250532692827769406142988841393677060773095338605599154976506252920940921346384232857335642501316056194779524869555614945177583694461203187439228521990570837258685567849262468341145417905113024747572845325748737298816174376147462414228051097547271261328764967238185679674630099898419687124356146821233351518461297834534406548916796701558517682003753122751603348462901655375013483021369683495235320849242112275875926738745798392351473227204291742421174235046213945106604695112425869595549309011476634041566573686099959840569229728833859592355218600761749474953381202190227085612499464701316635788625935505683228302513028969874963402053234945728320409117702328899383653056731128689314164036157633186516396298918304117525970315003225408261455612396423804999092595029219089388197015585147500903250040102470355540471846764384399843506375717329254144774037528633882750755348447467933286877971467311804930941129771312898483537324365847339287101990395491506217061875670313618846429327287079480193084271445618757856222698882853213419401721900194706620757444353517569455573280929810174535650056587665765296479645711032108522243648290058447267544552930150255389813359230149098801754664638965975397025681591226480219276179709856451512611383113729210647607801536253632491564631912817742432276242916816889872569137577272642255235330258762495688834716505246050716590009259858458528697272142826717820124815385122931440520915198896110942890882642585172318218639060763795854029348763982078805249000199937194775906460807314340312495897197238769385892333547988503842149427495053290381401205243969360732131069520941263521244906091267538516030563354255435427502917250406826498937699353775184184656203319843744468299032603229144676143142775296002607235540217602020553639816716464058416443713839611847446717335124714296062695162675187303493355563293381193025840646550185737219765276352627207758150061315057068820422097942635481650895980829740888521981722061749080864562609345237060910394730217498054345061246727232380868977967658328207328151043757834634690035538772357581025918046614580162418397700487591648365463017931884807206753189274138982638381737205659905120757801702622385766556614607369561469327547892231518534029408546068217972910676150310720887060707521414794937956551215298847499430810746325913219309189948860408943553900519224997558141218833218965742596001609637680607143371029713371058953730804188317652611896946446112776238707182666023202027288822964110220513804527716768579754960692575579402266366189615291513469926975671537630399605215495582907957473709875563351463485677469017052572866517386129088670723770517139677895267616589684574786730464969623807255952184504805727079283927840441094870434480205942542698639798905915910984332233538546665333537072016743153076950637022945604161724748587381570191511760090895129347384605856021315707293002153800249772570029580722599639802544538345003940301352658533719835075163606517064821322569776797668206478724108869021053991267801058621190388248434238882482413037542110785001795692155452120115033985753370181046291050998601879475259039085848633788531233499868818511602840060474958910184491598865881430306153466929058934961295665807057304904313862726464424237400941041210557752917969911836981099875611886690826329146016199297779543382506207082028439482835331916065425554097270570795956086481679386578787349991291232969294167795078986363714058490279956549089437575308943140938005772043541769864691957465433031808985854858227287527301872234800036481247254622910286138178290718473781969655368494490870128301726117672294082676644465547475205288727503428900059771132669434659529010872743307009790822250765466531552908372337029406934496849003807267600140391594187870931145499174895182967124583999165926249701424421136372825784584441650101072292428503355370787100937375499248463087868714736097518597065138418693943375427507219201512376882381832305543157384100996857971939395065692471016513327877913921315962186252332262439230580369043729935439271942098800358993499446185816183119661037119449236626294255437703076150687336126392095408176759770963443929348347534332249181144434943473193531220026600084053732616593066060846286533533064154093331011962581589487786324411876189747641890834876571652557401111023335865043012879253794536216613316296851985559665656940590327303039214673940414235875255864248685804848925717638644126386328231534261626020893259254668729102933741304122436386111054876488212521778180696197128770529616706491092921972526517252880141035497697474206581519183838841138040526260149004723400730626693399169573085691257120483234452850304769257696603759036365379414973610372593055210170804271275982931629223677731108305627971445009977012649506215199688522855705200233363757733241342919253642233866525173550285621639596874908287240509413288026012128981984687832042637242071480397336656867624999756984843957494624119916063409333460587262810201684823623376534686125534609300517677791272130401233806570326614057118405718602097520888690401805075115321721731313194725284182811075614543163229587279091305272623292467130716237865084432077523960240825491201273512087049223267304226336811093949658604321608667921535161240783470573773759009178720215098035500924078860805267581781358063442809547657971034382106282450943922309582292683498968792380799150707776652721804676819973933533577114624841464492282760157925407511975490019745582964289218902995338321280065353794085037561494085030476661791454362824991985820706933238425746236985209075994470093232032282679284233827639306823618919116838942699339279573896664445994152197557296559250476202982474562495976092068681227131471623982253558834225820093562908537859197754121296782537618743226734928802511196471442986048290608931540474061463956490226179101035061773577478507003083616831057924566653371904977034615068381640317444414676987786489787329637922480158693571311732211361734951850371173466426444625517732617022952365751980923885982256043153177549274985509455548076061892130774992009902693055098148908044829623867491594812670939211414730658942740347073375052266701662707422102223292854292510730463508284010900121096798464278044228182743985780587916097055435532660884926571000786581058088709223067510173468662011148860903268669813250170861527914415060128690766136660344161512094308281080449532352114648396058920034253253343422092313746853998874361833526028621276134022860052214025406436162437495137328509472850422761662458053736618685248262808482522929798632469300664768692601138268961837747632919372409993351031714143015172874601922436138051392926333311234714343542528787381410833585874444334117288825352887886196094602593688942791790208553094607917301536492807118898600711578751627496093890988214957007942625266107409507160978206175044895520187128761648615543987573432426218662085001362638598626403498586049596114956359380069793615476297980045613927937348630161059978190600225492844940576149475432881525568117624827292566717681753654604382655817730461007787720753510180690653184226018757191097741246397080119715277794796190735984074941474052065224061703682810537187836301818029332686595847172189303141098332385847778656656472543246033189499732862276683418515143551697284316276056010617594931538261630999990949720693695508063749712711446298601252043734334866736950945275332736943632851804620414471810675307902430756551411851613630505630588440938928031113652685103165645501184991804526039444885664511675568864454627001566412915213493322088761427987755227196000306244425632622201344007718928606987937210563262263669131313496324642777522511644381899899239541945238080617622454919283392412266316244979972842017505790579163860474024371989004694240295421025689466141063473445924853126396967457085397784730637918548533901118331506254441355033258697103599653165058531226232781298043879568729054738070109331216471866499835157803641645568219130039403955178519068251200748228337867967289877436142275851049152940329223721736077176639012686284081403786701188764966735229108668683490065989060941796038234713282616284930831201977785165586030889319367224687829986882585990876680131888099071326668961100517856761972504855979219015833889387374177769227479120448510907426859230499315452772336970271684563237094092340542088719807291735931306348674376928451477434820409554639313136535095622441917604450806388758451470992748201735973759386693276332001936359860945433955398195931784047415651518256664883986850647444748866811213785569012741482639320178862423098343488303266550409393249734888249780341908675769217289156564619778417334701887552738839582151345164615183081871615567294762524729424243064004472857580040582268628113560082573008705000109025725851352761773470319753628366450876563688663817963385556814436308705565456581924889647914435648848479885687644853921214593741488710655555756566918518619701615580742078088198287561826440814547321610398536531495920094216775532805280287616030665426523835532007930679982792506754076742612094110907852775873162680273839394813276364406896646472174638433226018929832548446007712425349078666880339191506338338583491049849179447538450787782093322121418715491042581421237574747341048714108348392553913226858000850561958989401332139301193320783228038340454242244905242142709531706435932444931643188720590146268470922697397097039761413089684408073466345427049949053818687995181002281938889802299980357875680462147101009651521113705631488451094666774778731721821588865224491568898046057937574919353513335412104922556830107226745427965400236461202486098307269324441695255443923783130852995330599586475630110091317649676012758983888950496042450657715706294258851277273222076730991140842560940106809280943237959693821553596953012001877271601872784255540213452965499080562533668057046572884649948275023331804747789995659400177624518764112668703521357987220453759258455582371847185623314725038710019486917484996749030258487064776054119495487488113436818806377945520768297095388019805567040087848491576643119641982953621490340522796021261957904045707342467456859870210072568032457297107594597392244856574565620089998393195108079910938493867055048946777872425401834870703214015098810512830473341536605840474813991506630780520624930638019673957179872957030041133878692167569185432038632290995618049479869566535519861255857272948538438691390248324766602665873575400592754693195498728748788580038826558099519689579742913233468626198231548316572782731489146662800700137243903595601423140206288224193798354267144032950052314356190300865332483988421954948143502131233172503548105559888882973716317440507432929783382491110477770913583360073724070457230003125608436879902262541658756917707702815484558952416847655109146705818119183516803906418517441034670214732538742814568656058486664453556797813253187612415024158975539390271746041179740023264878653389780720017424426078467917094596805218724939590083920418508882666344986273606046224288809603543532265560821370632565728599726099050063797749713342538902437076775889089218107269946128517299979211582481690722430040127925079268786195309481816264717025145079023022441796128981113655368154627960868132607565548153537359649326828677353362388373608197342462007626706635479167636054202232613154076620778881542419048597185083922950717090329844854544089997073691037306725708048627243968296598476443012767120372458302795703647588966637503759098891709747759836074346704488442387492348593077013127035393132290448306651627329970413981202709476786399036988229824504139269349519290574849585574084436654680453801806683148718975110858599606420861363493574704388579351258764868835634331602182902419244089141947723084803147632473378410748275660940774724438299094204739870502631571172204611105096744514016446620330171166246507620519711088805256894863386436855805187890750461816984009359134351496050937411615038885614360486899098858373027680690912550559825164419345430088162342356191218074655180041602444475329896916992834857015191013889357674624386996883387186133668510125255202971505893160999088190971063331962383831645802940858042709399853948588375105492144534816408812504754585288722592918017705352086487748666689647000627529839493480350342968509335510557261573624603258668151527973224638817703957223683949348787620399036289089885423618281709964108531496505093213881943840999616524100407146889177352385401365040287311896222101351118740552759293345255578723277536305322582599322467678761466088884168591770710468648207805832768587345053722060391313970203673432760970060498264184973023591944811014027190305250090223790213241186220818271808673617494296379933965915797249770852297385826877014252001923383749701124191082932395952536046313511071427244550566402704098340409982517144254402252040219740863804952084104196021035007262788714233568782372818472361542194543706114900707321075916736793998390803340876625802536878053510563189951344700330554476617447645788194938573086888757936810647796637428678398114842033994865932246918773706815154840900629930864802985420549504850666343548146803293373628821125922209669139037436573601239756712898927778268118613197344158084395583673287782053793690164713742606436934423563674483967959190911821654997115939669373119282288553314104909665827724184638157882304328555772123264923766911995667081476858749987094631200835484949779628586682780697062264315103563988719037972149756264918104751254101571179538869841778168618107919286259120696975324984895228004617489039971569315305087050841072614289935288566477711974146634181397078699608754737690344495976257962989849182496917671910409654528558555230350265141348835145249285404090267370594000367671534786067167695625146138778448424625050017042681961294076284042686236538909476301182614753756426909221052892870461726104172058799901548348652465323812861082480806905744525453419163881718249096433565610741687086655000993216342047087732959017689500662046687937428341454832642267732707956371484913075936862394503987349227238859780028678815273289186018269634616452787690141403031438550727857226235608595388905036220870793321247572696290047880387914865205171132295314661138142487597436453274836080116962119040294340647323111359008218910368110960488430106645331090518127967461145039011379406977511634118804727845256969558569110091928145293955580870523573703341758953053114119218044334055366392822705892698988442134786079176963806498154411320309001276297291300805006205604277813637500675757628590548230153391575028765507145850958911496346488062065894725710835336391199471093320560623783482692808733574054256751187062403938336298966155197446802304836645069539341346632688803367735656676521624504143859978094678526434691912495980663325546893763206763859229111908111325891175920247251130261080873781139260561030933927329000648846495898187740736829720599227995945788781739340305105942102224833474425495140250851435117550376366808485530902205868424707666771445136757666835955842348605612206188316271929278806878858667977840057193846987522299562737766467065497904493375896333508292731344848833377998178382700410117120979266695754351488465020464060542524524599736497113346332810354048535679069826358358118424440151192900201435443943451448831933652291816756794583181562921394035322777635840128518333576133335396798086500334028137486575765625441567004131859225151725140517871792095888806507169913757672922567788651115367609547137228933178671020872639094883925169016202265002969742994948537415438936862960341756114654990662198273482888024530131953114842250881094496608990835912527253242969685526043224712636713065588886265310175312599222621569788729347942725665509672109708297775778212297351284869929901981819114225243102840566343940525565953391036182098185276481398072486333124888111414590483016463848166790835849739555387059926785148845799632091933174385933961297783401941334010328247038646799450650865789855647416816192297229404302956869578704910719773686973144777958760873960009440128680875187725177972190432680853494731097452077313449523362487019547729936597481001520581503453192894944122242344362778861868924668482172394073923761587175485737300199954871151833291546293314198596842156429760690903804385871281643687713536807398802078147893172393214619414371672968331048454863083260941230007434704609067781092411887471573010517695009681044480714760842404990367578666745730472713885433204163040964341440431376785329928671564704571394654920140192766155792260095149375949011347610423819860591149921942405568689837931035566564982612130175184851507909832218486330330180051743826379915028257508182876497093928615078553637869376923946317922237971080531678443220934415355501131259747939969461072014936741474623187693333264106157986282922721825011258602804217151845444243632486741766932827130477214470889234537674531669906860291236594263565668224333667915955468176320273216923832202893032613403794713982814905786547677222142532529986452378379771698919948534596347941664663250694832430436394906332762223223443966228535923685114400590210733699709350235413442784390440979290780538331829990877218585110679880450167892976219739232881116667403585616558858637065611727756417424385930496840149769364974683221728521946422348468144653375312343419793884907917344767185280841729872560649284950514170876727660473072893927466646438258493137687786840030495516420387862970911260497442158859481051070531740956384464275378257433631535030970740134913397456081446415328136898332661422660631254868325360550954004850187829420177183882165177169160233678928161568994859944555055792705138096929178787555982264827225408656754650593634484855809693893846316902945880165272884213219813601395657654524345271729310647703103714950870176557891303850214517387892312147995004251024673733615313590356788800246404301452816066843743144109075447886565896088042559016730879224464820842857632861390965984411828708563165548343707456185761272163568609037363527170752812623779621641318484339048654747904129574548510790910290771104566600192657496496996554941004622104631849855604729947156805195769098819044543682824088115736935374205600086434011448738320820696603239417847570853430958505403997972667350482370453083211984251587806762455456723480389160257867498183079165400399655208722862810680573021571079845647365189657664422403227610062548132483071514054099250803221141754959194013666376936474290380459928637197273233811857760964582772960156724929134647852361331734813321461133528853836554304833419742347573937212733955806068829000657840965633185742181994193043827440958554867202268843832702654976577989394575116872433511968567631574038164950391459533658289694248334701536065511584815366656365671145241846583943969281106179452495510587224550811010345199617148672911355625906112533385244047570516835213597854082052081372009707055736946085576717037146592364400706534350853820748207679045594579120688461592919856421849709068953278369184050455848014136798684983358406407870513067761507363531723546676041230516900902103353354552398073691345583055574566715231381994482424819978936710015363781768613991228691503645887553931177159430880191388948231229623155152718636283565555180668800532655297977338623453513792936340420151757859429237656373417046346554377250496757293662409753247262240656668630431269486013774872168433746310916930776158849667764966848960422658410134181443568396367516921143196914701583574927766685215068305639248526230106382173714398977429055473242729540997962855410770432513645928935574024493069142999789572489079891912729248509099832311201835976629375498264665703771851673611821685442237734342232569384578653776641818037468836541304728778582563068856972166907294095209126878833196648965702473117975662422335692947519845206658863284287891445009634377084534004623232943138758060278628151508943312928364729332917909781160964233796201183422060986144151234484593028308875365136547717597077833131526185739249214472160945042828406169872791165572993084575571254636659586378397605945362438817258469227898329425378849988655891892779694348606627829877900953750692417805321061733781252664556447605659341697065790757880471837814622516080068312420383368065210813778836379560114563366308246827297405719966441848463810889784280857527505134598108572952417298422415387542755668267524738587173717086932739376225263648424810530174077494736297596864205867483732455249602866890872042304719872651643595450508120959041095189438328640941095741160879788027372322865398184806381396388548958684621472963397321927615152242636650297348902653360979226573400327725839051143360792108141597236338803572585575475665470912150960754431501670037905423879106842437089225462312708796745561247515852479448841088516116881692203948462580142207842939079117966352354542777601471511976467946856168281325429477896172981628238932730935367913164095260676520962616033057964451050639041428325106726284833482191340542532381849203482577617436113955603834232923020302941258634195251104464488340313931992408844607486483629109776778653663277794484787202164526184895561527209688737483866786597599498168160443127223336686524229381606209545755894450805676015405592271243613859416327753279296269323785035273380490218934457622523865777938135276757185085734061170540146259724056639658106189314704255859235686954035892178918287791791162360948615568434215544772333565057826197201950645179099462154969358122384027435272710309911561195869362907016361889337287233103023314899567565547944283217844526846520374821066242318574366533405823391997710788425404446279530745744300573715272846416618995321441085236875152682270262757763235980399593030274754901482820051575931990794179052923263623471741529403144932642264758208463986881971902837374822871249203403623536596703115461608954342381690926490261409389384846763218364291118728644896746952716516510826545933154995568931157598526232737646018023266047978236190442790851713954264084804158672444889170934300756202657744519667547398100586469151168650752343575492828703835424265254302340831319869509111752081029820244653399531004968828020537740206201307339438986944796444864315482060477014493077888307372147430462943138439109056955565234401455257996422861522551903800513999882919029129115569497624681068644704611849252454875956055754713853762005571964095675095062906185490936674527976881930587411410666561549386091921244082099031385281253941284135664845368608085066070585299102910956452135903863780033909318476933480320624935196050191057945344492176843510220566737419942779761971664459182333970153453937102012381386627826000476259549637117434320371919523923052191182505556642765500140191072402008521811376085804040012146293215647955406572175060878479434431154921717679435089892344014110694411937121917560989164510336358621787234404312840544474429769365791425361148052006191559441006129039059445732160160790665623512020656925860166221598465177139900845905809362148971161016049131871072785765636535006984506458863066782700099099833620320441702136224373677704199938147272566351726662308554726153340975815419199034632783010331604031639292229267990384288623100655607540944436978986282688831107652899857022692297252335391814371982759027071650688152614713351874512483882479745468889104017727017323150996267086698070534935374990431816196200136357102690472707859396906948666579394623071509208380667283449357610510307344239174371586273137741409587496577441900616378023538797246685963717805012409617837799742187029865444813122753978073110450008359729666836648496021435872319647063887226344667942484808608102853698746816425942321483671207621994055003441400393131073017065241193684635903243241637645013323584910117335039402673717342097705759778901734743878627866113234610225802994780365522897394522554103609396107469592018656389410398657142411544285619500202356575161511884416784923463469520763436603031787819410422069312755901099170634386341605281021563505760155890427671648012677030880950720319471567499583058497929711057064865500433877024219328278955650818569200297049480207466044708390665155961284339595781558717653131956189238085181541374751349598986133530783026244915480521780000859404788026834459489493984128299857944524860002659799939176902626699326271886521854053651987973443417295462772686619168631337389179636066209220056680628998258124942868988057397300869671165519297161802534192219562536318246599933877044420089565152737073205757923022222292810731172562458257810364053640432191621343301207317131411941676625433307017658159000282215252278709038000000530625601719995989877013891890307826197534316532311269373073128140446381361520359771462671947804205160927727404555359740035212154189280157694447217772266780699297993767592670670193650898499209812230364233667929154339862117529974772802103146041646749491135550276755635320577337823626158502852448974089984568144556646281573518714794736051017874010655518363717876160096627239182448325108237632690244157522384352971908644123699616899445303204776483911503154831259848499103317470466190219899886141668686422374657355242891656562768695984837965169629087105953124322430296995587752993958316971178136332047878598923095949596808004870327516196693355034504276470989879726916741757639222160999165527319658227197692902618892321068953372062170300847311816251056452563896553926685609115025596878998072012360058485061727755920113783601527433130972279778897203706114733269972551763443449409964426474569550443506459965759799968409978320071792082596173131945003832632782658625282334816709191015009593548561520845490918950513796289773755959132049007191564860701298146835033637368063920962844699208481385569642524290236645766096915186867404859007502506801539483841774995781082582337695969113909981161114400573457835514756863924907751964187362137810998321256413336090700474741732820129225972247472420495347140026635271980282975565850925855917827081051742577001212779501123785501693790355818529286381605836201603710560011878956570643152712231845410787856399268475422762969736273101337705002527939637526782333324635600342024472819996010688505014750146597880721556813988479788472011057047108310355904618519786004708620208182122032711574548409507113299480490918307093540386509746456327371400412735168085953263188699072884942315414307824277319030625822786874856378292344863408850002708931058242184084327602890761469636302692437282504977625385845721663300762098359414486022295138041240926594403882230533976264523853345222404591473562542604084502806306771804109579986209598985928681020763945415081290618841784100043132967070736511409412867155114050799369932159150243074748678059995625905447640858567695651029827672753240813033412110988089575570194681527421470245841974648135142599446301940718634347054565770998618712026659111067601449999438183223362080865872490786154015761210105777035777739770770362505517083474785374321581141015132896651593287834419281700448590689191964446950670695306278116483990807216319281259481819901276018866324268947877885289622750872317058209550682144505573990734653459909715109827028079123015495080470329365380813568293929498261299069585436135594935734688801186127949933049436697491181397562235735159390897678429298830999892432347413277130754095494905320133021550490465933931511920292923973118969051323593805060142844755127424573564095710753422151322257268868379653791954712100667561860178702541480304141826604674333660731594827574603076165629853675352890817014224897987073970506818343720339696961666682263732959318064095724674394152995469996951554679360798655890737967519177478667434325764420628325379528771806286716390330259476794039836562454139288893301950964200996743635352615593083768953281314623909747276969989157860752429923440523779799304072340090145621681485288320796001718693214052144367126841585040569358594724784989503292660350243719439511310475022026345113693516264183784274594823557591359302826912260840731408414601147098582947483919551824230313795260791201176241620380241651152660434338620405307087040585947380111964000438418410027986483632577952465805557363221244957359604326667378335553594601941287577344963993247223526571520169898947014283053297404470237145434730696096341380804549498676461707236613897279329625226426049065397395803521763413697099006203607007599101518092395414339309484908597436672230134977550453061601205609872279087352607500209765242420709162067812883343767623817819676749227944283408651575975606616302295690422178297894716402464374927247912710324783056235074822821603097637198393928827268537484962070502141480845572561542454287209230048250082837702964500542014336656335818941554766531747653025480410734483192457975743350242410426190873860389717373675380745998051607306991702989300570795868379442661477317401798231700493429332910402582340592960697247058644920902915435332031383800314129128281360576735830016034361488407098530928110902172021618357199728251268479482919353345543734505407389966247951137888279266742636240227081373833790542441252996202805160501102182517442206254410374423084460715031885094140505648736922420267868772899918279865000807420444027126806107925383474853010887443842372311237197206529150920567170117204123765398571311462186277903609586889091874183328656588650530012407389668510925353939505039616508369146791109858180666484959378267636259280362314454546498075736011536395311234506860836702575950430646776722352661125739453462349334282447738026778811933619949439358309474534143907887021564642324161584388945726981594400689595415027453746359683833752269063525495403166556963435971329532831214284942814539896176307865453112153248114479274871305787640125681438643447367976762804559211601484432249201967527488284578461031283515433669262116353913631227791541125953254602412887186837850916536185593120447980103390518182800944995303660276119174683019081186555983538716234659259557680491306653914565652190362896401907131901394421950393906295424543974421550098691337293312123236624174412394412722188386218698108313591394446189139663250909282735388229303521338008830159260102847966402889935436130965958043015491269899458896299295127174205047751582043666790741543774434633927351537195813384673703899395815391535658791227025699263352229667594828644758353438684406775101852249051794473416369491727802057370527609708520565310445580904586193140211609688774165160141019379065254999927596794373005882597775448267918063426820456648536324864204931497001522185604964754162837555826197237430715761923833223013105045507799590995353179989963758223550227720916038702908157647440677021043908961387796582922888293243659980624080272507710138441604774068558182706646357784992203687627978639361402923905177547348079338499606176308695802080068249504981342014409916212911262248998652545400924666483117404024111589067970364327932155448882720316068204034285662647477819624229137689366628177824287017818109424810128285475203517679146698521733704708155899381963982258203869082457660803239161527001265275489859190608912109156334506387580056137671519257956643806197694386055873609749843602953099985017168183769674522427262550809258732903316212341305305333713929421642800791760623567386510084823515251307322446266102018187597977015913369025019259138791983629354150072080035664865176863233391646584116306470394972849631127058946319930033245405646340298655399020417387986381054722507069195213005389520481244111714365478571548106595451621197006892875357757026748463416561665040140428696999528029025280490813188828150729503664599014574328314389293891345319824540380978968732586872881100168529613305621524353409627381610166527553016554775706473864114066887588303913335477066950874162137686151160309488323068793795609214403840335260286000293903136503386353200468876610527087142893570522327733616538143771354337666051138729941480824640869096686527952925950198806323251434608108882659664129486296622130648495387601449508540455227663536081201279610504271419418417713005930296028497339661038608090117196202853512555046587728657272403069507254623222574917039667518370858137867677603844891684314195067632384836724998875203042247364690131454666327652574197773586719561220180081179200817866233737033255664975487489879541264134484304815020346982869615677717704942464863314806514796005190596432872621866022755691345083263165879419867324992774097831855622939040961553058732003250468141880498763543042022572226653062085100893633065901483270588060229917243677184729595388545907815010949310400836833913636917671037981595269259140392367876200073700666308657217984173340801429871227019223847092761024600276849646188249598799938796123254750323719185936321156907704084634764842214700762997075287974909147914076825238342336469299304800557471834028264691334880955531214257033713035792415622663799929031903071066305171658401775672987594341231942706397749015250364572334535313657996419914177331923027926543138652081403962065585691923443753435108677958445237319803167865382839156325563543736945885302923820208311196657963155356813276025789944449910761012214357520564538120334868771996572366698922110416194770304940511655266543479128594932742881349962682687248516621589280118364184024277077781546145045983502910220884126012649281082800107513453248112067735410786080263972120608872683880841632417093180025355457732632730221284200328212999055259045647307233848612883112551226754328705561393569288739800422409432816945298996729740102646682472825439625572508769172156172042832190902975204215733371646645053318202565310256005054381755326297534163456118849036439349704508621067624979019579928610989711123924886198657926809021327815892873083302411001161814603591106077268400042415166180148331212565239651243247284680793965252559424394064270899545461786340375058857028299776471106647948093544204739910901596059049619281399166103430530836797763783444254744032850409793395353612150837282588590600834545863987931415802432540297392240870070517293032053445544967240978778366655498416653420130504902046811233713459223506567902349623557966440337550135810624345137593073105507890924968225553347408506950783498467763519326825621737703231053386847130043023382008095907425201935499225639114983088241217265686896257631341971760840748966427735929177848687203376495883809620836940652244996043553646598078781382348767650304415482968225846594899368235323798092502567647288560896612716412821591244232854343835133578009911670881484132721028552895465600549013286589060429550298646568198688065920298280716055873854191090972786898834510217554114525353530978119953226409549028547842853314804227479525226804125922256551802892018209760230496864605218081604116271652112495588330480251977762993854315099382314626413423579596486642315432162967616341967245854250040408868533441107085507469980030027043619454488029576925913456458721128489992272725459907303988539529169023058278071325320529202326988199816575237755589009775993204415438146389404428705418699838566883224760075587322081318207609104220187390401838012629453522531535656866773336392537128492537380345946978730334312772703816226235863270720749550372485558041968993043327994259481031419144571426144828803540593038830694282257464811930744323468671281042311380322207353627893274396056484925630410683169489447938017413057324930490947164038138997658612829931832302594291474177063552967639942874819343213308956752926861478668774492817678390325083533069457804862902090472227618743089295177047951316961941925486969576600231029867605678252300204107056831810098119065889157897805318186159695837485864964209211956208172720494642253672764389880355693345123051738914241110432305368837919333083112266277147081505912723009247873791378071347038214322727054197713085704443192873302830403787918364319430680939227405303904116063336136879025382885274359974089426243539157780451130331598738319669338208284755866644372255100873001077855178773326497324596037913724819117612894158632014467030464636234345490827013039431904852729289484032303074097721032376962848524363163928611149032718032684192243558316013947428285900198446261443217027178347564041783619020927645775805650030164617109377138203685403469365161652562789131322298013188448449862133618274078278867613750243144677610894292296987834767268352147546260164365675668237628612793578346367098190006771133541231681938891015813568760601867029912274653615603585809695914576660008570496320229035610809814106758640684896946927968980870493946021459675215727170522455699196741208301428016961513568465425027562027235428621192956636169494677090335245844908719421733156352983882708040022137588168003144475733686191881537087539532772154010797435962868776744603600534168161049459729132674936387760833418774216964589353522242114582970369267481756608510592520678588330312851057527197288722640645346287057910127372000528015823922309124299934212782880854288268402920690847609209839930536923238497798579967909298143359848422285801319898930799145680687878166114682719071656084863896098598253825519788783361523598435325576737254485559104360470722395949528567001320304532758406600814438527340698454449476184305611037221881290172240668079761431878886719946211128085571002858620096968661088247074397944187166991629708322676811300060705854379416933390204491255649827333696768664140520898088912736969093685652834220111202301321814917439379845468211321848660025670291165808023337788118282376167753719308781112373729430856153507178522095183729700632125708053916896254106474384598010598382394954889831619795219123300828629860488298535876230291439493894646299880502422743589461785906112463392058943981509530744800286493867246849458832254814072251390850751875768872052017798243848732324642491317221053466529574345175244419740983523936422498460706469007418491108366541226054163970262037622803364853809172436626516437243592547790550730217678190102734450321887119557460892766009176014695792142011449691695458948542490024058684793386159207914862654498949711996497955732581471373813390262470170449222727556783597348117784283469133272618483392239590464063423058818573567116496708084957278817919557844934281347767547954528248695799008267381705057487832332823628769982637532822955890734896096184348431238478378989974959163972030233104535901989553879583933397548064137246908463610142640890403035197981932061613314534341064013900397825313076022852581251980234483861669241472249429393477969065909027484784915024543774189353770719793934739720623851826858373629260629764138727931047843317893540006743039157738305305256821805981576353779747479710803306913675744670027288526717894295021939632260258743568654704759078210932551967395461425564345065178802691491187022005833843292180360996486869381401339750149395118908540852627974377893448165185658982091293271687390914130311237907229602506708883674641161987955983351498443596946144694091482297512152704024352220898904925025477365723332543313435361040517946076940457191580761560122058617821037664682756525339284551401285084483676888323527615046254048065286619576375887015939909096431123441788112822809213411801893679670484424651278016596739803307979355975459741114009343337594090433383202821794599348997922753712135375754245464453907570145857111733751159041287772686458851627436546946701543963696414291796792459325787927170292828127988011257601860848690338460522454140496287105683486024002237153599560739142546082657245431508722463378239898493085002041494407895528797945285172887028962530166886621613949934498955001518249239173971956460708158445937820708370503177620267873762105870326023210118105074038028954283341606404100649482448989352141744515269863307521231484263577748015928767473007438106228693991081345462949436136914645264168670693509766991395039634907731465551863225245045924555490880589737775049830265920934192352766491868950459437079785595593355114979117841795422995626288035404004997034467907036180520660833943101517270638129828209848367699464453918080062515511462393751020045208703972603827842876944486540588258059137509000004945264882503588256035009125786315229335841593977168639444537809864460624291398860055128890148984842862906982183009452878915818728492841156871233710125275890932468931306347109021304132244375066715582622724855121279314857499478340984626173852383455268251393106996008572639741900255986986199594305207581820738051916876630632195435178505668632075842077840929016115124654871592108272962287423684742799378036567751363654039624769704560664643608825064595290820603908658186281097904655552687003685281269986059163779325064576852750473319269805189714234838845566764121573329465892946973055050374934840593438648538358493665049275846927487297794082723482269449336516427619762001861275844153972986315674663163436170833469099867165232872295742560059452804140223979089609099707844638771348801820529164546751751265217015294510210455267770696727298035568268928979063759596528662463267001158149550741622122688943591187787560435581286293480015236496135004255641760945917486444497656812461250001587467312717309383457498222344837677297332614439013569229110344069525708259578980412045103645739689138230878415781536819007785649993498726394822669478744758125495563642638872274110168191110525853699868541569616822480653306915918692838577593623162181917547636008654426351661851210716598471349461253102698188062239484761456595421780079941638289418246623531928594425764606038633237205424177874179684618153473594525192099382287906965281959392361703469930816383009573304608270960982858499079657506737230282524637656125622934513491956369190341393800496315569838329580933856386723931448107487993113001960322911910711479157529891401237120328868604652272397793454255751136293815621112922026657989194264131678554710131717035020837447111782548812199585516468725263380411438817748995086396918197932200540893724067656172146289415436697893376420187482106750484362525595285427191528634414857404458321414691726607451674439927669013067284773920486718831130631617886680399980572486781209672847427403625906947940832572496851580856318603434443788585634715014895562497417083963950774191540838808067903294955614178261385787601124193063890089952355328994250910477147381290970443780305165367726438619561746961147446559701391752300466601428580927737463224143199667983936585073095284768199801379300420463001155508904857168846775360334395815573932728433843183187850821204849579314726049275798930854361993601100587860119272539396399145100262575048260827336250091365106464507861056367029735189900558489796194284207436015622076882693237424640511469551217458265957971882486652745370013525579771317366583130683414354202892872663392917438449591126488325783677254112833924191877498404066833962275693107795017456648504652328612917913167581002350933821493529111701799052022823100651954354257723934090811990742124526219342300025926254463136172931056816046655914307847597961819914492264671913570804321181817941022046665219607243979863401664086952719967061734372170801928778807284056695531993608450024384037889084877259153213264069179856103303381707015219859820143313051622898501722053987837455704939779310249024783717246695588355612445156632992968854911608940871241250875425397338563958690587354368377671112984594093840925890755013050547107935351079571001249822831918162245228022132955922615925314806969749116706455938927775460902374194947151340685922113819537633524458150061153542048461530737700082706781852838449307558254368597386280747722310212984622956018050772658907181673076499905284127336702641709423695804676281709165198155120071424359289577102221700417439003262528980508702590144563890781205566348866093882960424004226270009635521986374156644795713953057074048462233354846381622068897630994004650321094519145139382108529854508457487832307899697031579847794761861935443723786148224761330555613398399134825177685402263115366883797823568251776048914415253553558155811269757858288256300440733006819589460240147629721077386640054918313319102420433609650203313139496464657890129670942407037146132932391668615390339505801123555082816565016799550475377667206768737117433174439994519097042177267999092856494219071868889568234263102343928289621640683489994235703301117428813014353446653301527971173208710688748059584902019064550731845968968191646177614873307624875251063866989119883853209795228571096114338293340030759555722928626073666239273957914304190126201892527310769058158730270353885664977115086153597175792682077012173810788168423476209590888431683725105383421596187306280926508581165775859293357855463696404593802192532633358810363109640914969375524467044281414332959130817388613909373904121192420386983905753970120193907233100061460509012642418600948683781037366198167928647295199803418723361365560791926105946684340348297971351637004310219226339488708001615396096785089468407173593693552877511754426076387827981544396156697183607375651361248817305873907405000608042871409370547531218407462429299948002263221056679119320059602208439444764352987871738311085547556536097961520505637655547842065485115638686955778164635119719741636720357699898731574483318407745333117486962523954526440317403292887578231480271030559709884893652236785426329177371295776627446666597550921425851566385395086628988018428592961392110992770022052006429738185029468418725585225273663587713603031866774318731225856236730204520450742107148956462306298723178717780642275483643624328549287486870371166898261985006832634547943927200303978011150201729715762644309427060368833962442537647248937544650058271810771991499095068827816198306020465805863910232107997658738753373128745916060029942812971224779506514803060926123247802828788187932397050112648478957588742323375286117846250271075109847057574605541979439952882680679730564731618500160746455111429165151115961927770307535949148988039618761204169552335365507992719817016294828954903993516486555654128457887905517252749151837265136407504026321080889530974571944635625756755539522298146824945166720498742409526514064718649229226946464948602615924016047486045371821248748044409602177108801500772752033049774041382153940393497295419176005664625339106821846709256512540767872710935061569911279386782761269078153498775296034391355373942624745440292864567456301312530914453169495396306885497738001608003145856929164802042144545839172855185989375064931236956360203156604467144212004348555892187973847621636508542562462747928310352386124770814644181288605727570636536908891962855866935359441023191221488907549794639125182217778457005227291043186831267687096387895806750881538909026404239331094164179947478757547847453688209713665424921018331576147173432304268109940415452300123094283908842738838701306949334386582033510059152222555611914729876597272941588518564764602105928929423626326624655442513585790761426172389752445208823422404492565028036467540389407047431978824670554088730819996139027345438214322735324573791153718900031497178650541058550979690001386369796580889428738534498368462749061359629105992114517213945074198564048538543885403923664312200286508475083667289192112628305650906576648738229117865113727281971509777822710091881182032298355518714982805891457075038221172570613867773995817534304781605125683773777247202583196447697193917748365734068354148260514850154571807229361625724760388367960407000572305121287557353449951410066650789781194140467786676706259760792822390277446773464370493952082118498072576893030203722704684646733137663658965071073535062984586287184479990009592881271081869965880849918389758801862776544328436246595309342702312731997653093920811553882095561226588655220696814262009695132101101896759327655404549506984483178898344299543003009462572216828384983137120766451953280500210273531549082559211572687916289779772941478501444831516852025838194303901604497712606292367574685958073536097177931015603227352512786636377995297368650474320777419045454902235720688165888355237700455987784078151570423151809393551069387835364754277458716881879781021027616305621188084052869864778779069857073579224096120468349545153761273301981273572913695942740443228439134837520125242882122135277327724265841275150903016838599513353963986604263798147443834562667772419461880347664154942053790129055683369136618519128462484716804881228976369149564755702621474250529618703552239812883184117355740235762786139282349861632695360214215307993507316542715478965107533029998285763833099948763005785786290574096295305804709951778822170222587688754855204246696779742129778095806912571922636656449256922552787961982350531614049937407316745219704093356327959206927263383947803543432414957544508914631901438666714713222398537356208992957395667567101927436869500407980987042681345521362419956947027725579249486280608191742218562239203684486987195600158467879365158137744566975232470073229041809124658013104896256135104047264980467533733871895052797646307275635278547607686434530488165993680142872684513112480699115096838616955381193030124561343120659711068680007847717693223248728200292591319282979293334984837813723998263706654513942062806066651859156223261414670930000018709487132831130725808392021870408718424240276613973276350076076690967480786430983957119983374935975244078767267998846254248076518297823833515119342904492988682830671624142921982648798193490721618027717417565828640544987062934682359323880971748830635456679505268648477211057307353811151009477956260467803813192691331501361973330104650051840444395766859238463686137777899933363107131601447789592430833111907169037022147084926011424328685373539458502417623411620928184722016557458235568839233414523512450167130269477467043299645221448221123981563645383535206604830110385635144754544643889892743719631440255587427778384369514848446979204329874569497104213462961433834937810447654588509260469742617539487429822097304465876680079199197769859796980475556564678882410453099325089348546332366566692812331297022832536474158387768900353346697984755156778300254259329509649757982886899727885721802195350083054326687400853125448175561961058243456348758381467233820832917963899584029848420344837657708614710479119854917878658183224651070050949339973046902562874648589785740004671039662714688744129137092828467101955161660566058528936363000572250939211714307982808019336247525742535367665114828482913899807376513817545729572627110789336806765553721652205191240651495324998414034246077011373920816628956541938663303021130514340654378103927379209443330771723743811617845619406018402624484493640887172927259667489903765703940472463308319140631046996454130600031717924979894649332397378537053423131271417983993756642343539919931800777984027447818515527283852758904053037280539952761126830494527914725760547151397844763229057610198272645075661034729698276705289812765269530488444853786142863627138760558773613074164732788204141534712198981012301237714972860582528885859681959481067265084068027336231142928159223363899825513781897576871683601056601211894036096025612860740459563657737666446321071343079522551323395504251917424920135479165886154519826332095954973566129017122589820115498430121493592738503790591711558416114181402555362571871926331431656173468517462607083945423139698729835135446636431396452270368538860832380114775379664623358609935720612455231870880255882563598188971046759679695931955511892747661541699571944731884100625453586720758114039563883571591105577449758923527984847838896186965468010983516231988113735850385832888669555453452536280242619574336252439514231298245517699996223833817189505448943883953657332395812089666454457577386333491378766274305236268246888464049479285142512575548538762409916224570876211059730262754781445173608884608666570866392980231636744332222598052247111141867491656685524796239112586412922255737305602556514750859729355554426949715388727105910769105958169810644600591867875703375959524238910994045537233849924813163853164256197960339445674996029244083245354524957819183694415902621854186679789568206998926965797239372652778657099960683252752873316945961340575291393479890847929817036178112567902812015653825464730975806392849507391135897764613162682244438158332218297530598639320370435831808119815255356077574691777191516930029187185960830446499270719882051409723779515711603616689214377256757487499278657040424530868944263010382335646316864879262119413677041952239159262298938434966417494680000640866316096394367705041059470623948651572068222404433326459586215942519891382514763634126935939885976866936888530227277908266311409179198615591141276932369285510951393635565132710790827249494902470020375249527539877925677139428080267338552991192900617590637963054112084597496720786782374165908832015950763253233409381690592381091809980455076030513598308858421020411019901865085565320875557828268314790573803693767448518715251642326233415426124967719173175276025840592372351127796885844336538994797729769206896798545020902886352354080046571356945551892272259862825739219480921062466918663451206233552909780175659728829596282045870805730561305623494112882960322589047634269336155429931794938194081810810044418697508016720128692581494742350758004362474356054655736441629774519886916677966588856200380681174420749607860551382591504983339416380391128939098484162087257449149636865208084109485381447755123756084672716004934611874285689171533092337489605432253527745535695065208878864829477726033225290892782584317945014930651549005703232024801505667759273898992878052989486917645626161806552197453279447907775804922562912926867582701846703418825198723956931920813105477457438755508915818176229530572358163420934870330565596005440001573808187444336950842487486122538370331775730806136674931080249172774066592567024040000141801135114861105548424475986593902004821450086862980206120331931363975364464492066941218873257401895824433955929401135872713211963791574879360988529803210541789890642256537242806135011578260567308241003481604825377247547477450986519103577873503228268484009773530737787465954897139256398428987877136081212436761699236020799498449427436605816283828227968066003341129927418628990381195877649835745372599749739783438850074488840932189450401213834684791715854550638039021368493410140970871238278961358551479846744915806002880029858349471091757419802848221034750561701923333359057480209842864459621548565399233079476174357390969206247748485122021588771016370421727283843391024290855724591758272974414545373400041353547511531207823417629044863346671877419753198263119369877503104916247842016946824085002773343392946108879723737980405380330391967331745034804699918445518613636972503537200726025405307789134671088289750854608655088455934795431074895342069344417668425502404057090941344628615550081234055098694965686124558527195332009283043854007817274108325481819747010039067331834269211717950374507016710634045275070250370988456801476679757327142261402962010825842025305325068046948279585536609498132918545291369788389329449539783957820355761292617607994635927601329987983242608257828945963669651506930228204902991802497229910141990234037722755527741935065557380571040291556720511516368534934126870528823202375804531248710982218620989366401029358778652951624209956279463721423230911541895694551385876808500368769673195674818342971094691705345432378833480076339400639553694135650072668616208790523603386777242785749760768023091293570923462956511070387817932062071688315736488568030744372134621915433026477699999241652805061669049190184499787792916945776295793716858958433997064471841598682080408463864827497816307721290227069066919345582644799885899318482304329098411669909196697066415667658755108077078061608909361150726518069511857497748826075312601490301906712684506707613079442809466788373977144004887561078722076471706291693833249211974471808559994987851565074330077203398233572303112739624520046864946477376090940981268770711876383247586326416740050995806691444356367909667125272505912592583608825078063435211025334291087589247188831948312531569817065162897803857591401052259421916897548731793289847804951544025600226402734480466905324977030762251538838195832425615618111841519427586667932896908206882466105922182200684196335396464287103398963628840062778655775990894465444567173941604150275125953564253894433997366587245199325716912679747998154851978548867817420858839683077339455695748330978554735295367721962937715820351461358035068601066560121255133981524928600569355580405320375034317810085517302617197220396024108155228062522906875044070480630650655230156220403774242507675204131826779881862665540009460158598660197046040528854519675563027997092514938122493386658226693222069000218955594553958890518753302258154977704822288436574033936649790143737551570887239202341150651580586994477958270055680842004189294714213546791713983549946932341782887013925801673871911497584953890487802422435031201522625042466232136463080808622343219986063299016860502083041070492743958664614518920459896006325662796046459355659196660490784906168635712786149602005043551083379193234857443194905932203850603583880510193116067968879098750332314943735896243192531547977814860740129593412714371785844795108775172409878928397650251988242632200278649330361006006597816928040310017073439017091812396273057032676982035680214064757006503938148625257587377668015489809516752513501044773924889587138823424496385701715471902164344041258025930956035382288130927195312336528221108037737702354939818091265557082830376789710126889944783177123678602248163869425630969443893653429831747196504467284826719130972034320610814979012939805279795163887201044146352848706863512813511443684803371950490130009633955711793415135695801922492261137250512088423749057930953403096510458101029895353006642072846630008805876512088974470250649156401242664549312092618767680530960458825182078763902218580408716718201265249384759579523382942898555136958084882581987438696837075605274869036915456829719668320357181304175887017892039628559285210735719724981860742868477385877441961350457869105512604565940212187204414317621915565788026271329646212247736627508574903566474225651920593108113059450877814489947780592018330055201158772229110030601719325271985021204166128051315917020982029553515271275959484377794491710133850322374300728880687310676539909039620018317679739358172238705174525105514017004792878406901995371929480580015169921280249845417819351542012140914824650339965817121776247218215147995688171780982113530456248074791239616755551240275562613001273594925263662070319908401103511816569810492437245330219833746973138169244300985871491965935493604858006829387044224922848957022759090889633663951645700218315512623682573587238507849338282753403456248847478357839968566134842176797361779992298828898260922550229235154192934813670017635772157652063978242204922205031422733793122532809030530538964533436889413958584120626434902940403946288672771099025415240206176810935337600538098517228134363766629960335391308086597310212470418790851971377992030457674354108767437596937549473731831081857864468393657153117833464235898997846369859245086341318974159927275580217189289935588256935825674959355159340330226457333866152614739194379996136409912659777024625593481445144986209556603580625062552233468560473870366859735447218535150904283144784867569221268580642571881877743347349224943485021716712783536048990221607917126376815140283799983906492192219022848512939812876647971666633988573267149997036512349376109348409388026239447649211807510140971724847846640381178994588347793533655993225592980402802626110793499074299596806111381131925726503145915090799792436532575369548498651349287766272515481835414508226305123790616086094972199019009661072354782734239175958246955031367678418175984377345697435691752283609996782788625014464517909378439755775935703891779416927119119491982209924284540826367028307535812184623893808110434275705513535720724511272856067205894206500183565823847534385580486053078993018782188026810653952061651493485114509929396103946753217102052561393390287734610058183259186113055753454041426489693769626180925015263149841992870230226103042676290116777720821155521038280796171903916952602240062286666712911174118248587748165621976457658735898190248685257041117217088458411838560542427292703450668694692216776154121004512530779631187516605606023858882463066489795963238302560880911162915590475052859899586934652922289265575044575657564824512045889488332815870566387028656738006396814378028222743151079984300379580535659041252158892660437475608518184366844615529617369882974312909352240375203939221342039722397365446745708685464067857386262646588189202459573072555474768469606843769188835933492573679127126739833728512725551127418375802211743785566831299575791155256616788858548990607253075249163872345827316115222288441322882099716515013620068185546474219650134894161826637084933665046124286463780452797447565633753663038338399764976997523481002734664523154050787748096237579350644328218864014972349455919899061546222718555757877854433533214447908527187971657347132903841936168944761512536124754405098691376563321228049266977897132088928345895416323683894711363660000863659202365535340975595122735158831010919257847595442567538768638857753066361991864544779450956057086893825434512783848658212835781486618884103114591617831967388454459281975601388254506666932676082052171400637627598259281305708323789492616121350427922152029096465391951711745128054684368118091599372161137340769248578372092195678337315321906070526016898076847129812050419727593766864957333550022506259579615658924448197835812673136242303650173233397810219022146002876156365531137520344215979466337668657521415400821764788281457835955655046218618524739384052148592648563110153693180809668281105052876830898495310246089004736683235816478961020410772256411888912534699003885175936768890888636421814295110565576220943419088550428018875076789263870260883340094389816872335844861936891611267679257517062812241984646712207424327167493430503714233049618554964055132016763963522999570718989557197890702577787579983317618855501269573314042582720410710492861886535587984900324304523204560610500383099364314629582726060224895242228459856232073478860667827477957631170039136892816570037610828161737025752887526494524464781528550281104642226308298854142071892609669468823872306386462929014188932324700282969176178828808601011449514666622794581537351417569821200825625725510782355614368430317606098807170091373377343364449750038877148015405019608403589259628354103523209980530341195630082555699609239196712056779628784879326462439053961678721883082473703133251098476618219939317609199669467444261911558454560372462575888597918086024502303247704181471427675745778343953090637677916675734564094502097997483305762985493720272111253862880293336441379512328740743552112729053374842163550852748937595018138024807800290331773843910144905807095705433634705265823664263540640734127517469370103657278192231366240717783486407524455715136216938116047297594824470587967542095932349712370732020703490354417733776950055797041807308803505489521040339393715250773095592461294259890620728330015562262319788668390357188156176552816160992590800795214281679396266842920999563834112657402241153854807805512470334727062434370831582002455180815679210774734022623856292373521197328275925041588057294415524221422529139606482986949810793870098042485280502900480049168604712901436253741301919203055672146742767545292127641349547797967191571507545637278719523593016714215318988257672843218231558710299547414543728749019304904262152312755589887702275310426366683545312014284928957509701086958711385321055394950602256066688982080108423189117472050431727412714287018867874651519958635456430645409389554899614988530997183562414873672466421853398919508700324027339989109934453186450114481490396204114280317833853638983616420138669938977165904698225904747146795843282021567807777864829542640205179956673547387252281073973388910173868991844901421988384640114545235102534710387486182688591797556677649262588493879115810803485665867459292710064671290170527281469235722157440879421883339294444558132438269759873543964772424713620379987835733190127588026593613769314828381163030259019870054356935924966965779725791107751740035025171228337048469489276702435740185384726339008513722410807900825329418505964729800695907678111001780342760813926969973414105092573304629109429327792453627561862387097917942185403145704392172112013642733482322449618725451601209138683042732439227776477942079638928669713613631882819913955696850389646884861194772444207710005071529870304122476347860838495401722369256721375909061665905238579860712731554143986313724912320954578439166144076299172469499946691555355455722104213056612786021943782735085683947906490994800550075505079672792353488697971293635982021826166349943575360085316332341367019391098020174608919256742972060783250133824982360922362617594354640881051599613000278879040333369760464675608090739082750566016186282738627778739052095200348251894112136637121481506467125932982197473454440595638425451540028453787472857414755511424313717011455160067027468238517198673013360342585222186632586777974263304580151409852784677934386925170154918569579729186917136681618195698637936370811324980595002349812137129806784872380246102197704109622373028061386163159816958848664996483600032756196114660343665137080641219063040863004494767746628734818853359170406425600050993970726430739393985734396989604585688847292565464678429567338353567212509866534335096666344298213143783499444593166749627376469389551876739439432152512067431742773000437584152466764456707143531516162285637607744343576607703989051306096941982286926623391969994413236372055232259003823889132656707332056323345559274518007666835796480205273401779881952512410175537090330156423605564316841287314875131540158666988447340072746241580320087951547671447430507182850422733671649024222716844793192946481269176097560129780192482344699844798706928630307780056255286071889919156435395720571856699173057781157845964103943932966480449496799050992422646753924811867802145783857660801060055242603280264179885719931563687977157212868641613841589989372539344544619728610271440105670656908683475997997775881217076910691478144087598259609124275992905683816255546843396549772624249797636040278442410155034444453715189776626459710317149060538049337996982242312900592097961613996950536505089852696724730698036769764494228954374814272152280984534945840202870506341535352881810770037376065028934972828328572889751947559266597859523435487588399169381394199010995820949649626286450981653266344207470171258767034544544598851232889031660300887696477305644979325051087941471853177363648879010051010435547936732080866569926193903019773183599087300599544196215789892507646238735112258901351917082841425864905720126898251840317386266534840918153914520192213092334237507277230896659493023300708640844386436352968950161419029333640102725520134319294946666013976687674229592600730669421404281212476114292721495904254048230516814994521461731067646112119675063223864252512010697373839931811440951703858539537162260750215705412410419465764365270409044601367850338057853742009654710771503113426312140938433268914862509163499293176948465746713233773152136528632976595292284992808059749596189650883340022094487369445856879234086948798956709812635402140058780279749042036288650969707953322903538861431657221433078318327351187729201556556947616082075538271523694723389572593772595766435704648793949696412957131186338038436776879451612562246763574592377229898564029818248035291373387006463259223756574855883389859426229345609473337767394608843384939607619558474595939886171849367395398255676414201203316282661430745935152048321245812366190993170225527023419270425005281080760885908409121611064368314192402638785350378660323164671487562299264541409444816007899285403092718185242971910312003047523144251743542442414545778472298336774571630486962903644288186729715675329637020965384464077767065697693329385292526421393800722776192719190000186029396756325832506926209035203625301831614265239692941944737757631575841874891012655919096223278408399866845779455899175025956665482442523556947161485135967089237859698743910173822279949437329998773456402007931432555981184841808267708080833608157379947482407428493732454792130529833917030232255173872304882745547409375659038322298335329213574500896791931748810503272729104571172049742613673595543799298201758742894033471089637698430095597277935221289959161758630773250325854019787582297313822219367779795074180360734431564338763693729597385879881984170298342585807026723550067143927784738114302502876552256949298733874262535543846274714531604766106214581015336773750157620529786633707027402616849471357748521943904702769517453377875867379673255929086752559374213010593497210257090568401530983472793506065255539306700886844739307283664183966703253356329043957021679987400078411093991036338663120932674424958534936606150826901496778941442737476967615371234451884414927031351621196930941468901398625173628623208708632163333559271077988957265474938087542395062220808444580262300589597344897413825074919170768202278711472535416010703283293075669318308429260665961944922169125895657229212755047463322220668773740685418781126861744499271353006440666769405841645841691021263691316485475525851038755178344212389284207573798847158531543703872053107545480575851251031643497807304881278229190966833292687868727360142181675742270403469946173688487459436088735522047237530140754006578031868363603429834673721822201381708865665678687491978154902968860573927120729208533351436394516060738589132303798107218224886370453327756974730438923999672396045661463700101758207582477443295278852193832015283853947699192108775112374888334595107826878102856440597680710083241524713965778893204153156897069724333349474869709397858207759068634250975602785444269517766367248312473348772598872343275137573085743708658347714926851542062186406159618751830774938618557654820310775561952163930412050242455584812455714036930637151592947895554953950225842648779224762073027493442281376992257037104123527519927155204686779180841778519218947597526199905664293277804088312451273029404553558688791065062143383158984230728539749871634027367949239629435129698017369849952437077784527050372860001100502727314113476459311335327737783304687478787051228422663508170066724651033882339464841454363049561331730056098953339458993593455237203222900131469555471536258382982656349127552693422487839484354091735391500052483253746681544871667767037570933808882893295276827654330729572410098025747780070640397731036558937349072754970641031790498943503107129696576213135577644941830854987474809224684638784164578632952337947466273036696024744920142830980293098834476570882306479594636850208812363534169573120175655834050474801137940734432719907948916800474039530587317429312490653070073547042221867628302350069312013660577201605185179073658983392085717947945574053134909368813288021052612405572339484430177802251136828703878452069776691793181453066447436640370938819552016322093668111588456981929769507622641202406338108936333719408807427066209279771309228463041429005172202664697991221643333549583506908585749412976165941737437227263720624280849407089652813425343423772237854125875998963151411712354803933851551114310069103330109067527233402046910335366888892288396983388018828691810919065195084317283389906886534911622506804500863450320362406599421925842196733737343930283487013727611418078918278738234307155601637735548633657609082385362386929170777553316821519840818070999669629241086814595869520771268219429240392923099414628068916192128193030506061289167922341914228509316988430962466989718575857143351136651226214481365583813743440650105380264031809873335001718108037615360495782134675722585525881356583038178911485136566175479845770519252954303062005493112375011469649341382371951662069594754899164710438454552316124127144477643558683394046030587836444349780522029194627739170613671818653875832987143374473920290744554507721143658517202732970613124720215405956159566374556475629155559298299802131036049531129559047133235555279049689806369514435821339947407813852274532868220514165393436461798367663505163286973948617910595267089419035826721475496903252254001102871835899949921931877461674919193251779021597901497127900508442153038938930890466707729937126496615648852639839806395026175027128005169718109414432362375206147306082840194274476363940834537790562748508825615652479767868300584172064805039330372645107159057564800194793925630693880819732425274048275875857294822013258941494532251031941133436700941524531002678985982043164889994601995447422249123822054606510765046043167735551917012616759737994080039622332232507451167327383649843331040600511350574038417615389624091701050668904447747894386559369603103765738866782362455004046482822215394598906897511226021300580163148089376570814081725631203485008479317992049736735823458478063739830425666908300188188355083475695242964572257176489359223649087741464951114521695768230937960348161699108330377358924000543290587022909585138941233060713973823578221028920942086317141730768309112075722217341909940383813860275416043495337162569510682377501078301629706731980018156292425862807452817617195085812344324617922065809640737777986145071741640190275574194665409187233792310006105285174925286599769033644315495116321486905656978943229887391022918231291426910698519816812336100510258031520460541482631970315212133064164075517233302300825800320157482085595181181229013735353397187924061761298786893503847405653194946467152235478580401701468709037932921824764504680916700701308931325817994953548650998977081228128748087950631249992788281958000599256882312602799522069982368363406458632878415877058849049389535332807847388284631906936367284916139736911874057556535489783546380177460554505546343591756228538444337757491732643977043960741646216531345702942622446336753326584985997973730835461737388189958208506930952461037570012838751983812173338348207479631530073210680275081146688346938525637358696912321633010298149727845888925655856427740968425893485394067316521548788925760628002677367212542621906602037104010201944009545432184213242117385835238526477608227856559938593205042697971564057364292204937246201193715680238800243217776330985833836359362023003302685561345791685147104958508234399167764247517095060319959189353939262040617428814526823639663921763474826280472107796552553219372694662197299858594143027828810750742933863526873773152740335000667795520413059264418174006590301763132778968354195950967703895412603961745883469931703505309126387688628532835701496359598832502652347915495974192227971012649230598069043931708175006570374891756435938015641633263336753964204763313135566687712200792097662090647629459344725138866859552620046535145184575674159554720869175491610464577823624215572536988598120734438159785166276229022381438611312548872755647495341719865088574127237264348437721331143778988130724019425436777894084495899557712796503361442388515958027148850602311508765216494743403806990188289358497983344473937498083300457996009492316772757429044184046530754446917045194449700098497015357833695039060200249230455761193701410494588947190180776898628850816356895908755199189360748641336159981244319723669761531254923533462737673791622161198106752178230520345299806368077826445144297982858762834505386569797600365271612941872578001363362139033929735615511293040867165088328105049423003938912780605052853635722434024636146243765051654398965509691805010463726440969267517861152384761522975765232421121638403789456306596929294088799983939641814362421501263801997140302986397253668900300488319931430978278922155034633342112976124134504116100363056684625311905887214886404931273472405668756207996008233047638158915830162694041405630064469270050253060907790828696408824128079611853989978212823221127421553912410699763893802349126838381739995170666082391726461599982900751676497701320019816703308784931487228061976955028675399357836586645842937951147103314274026387893112098725748668206874224264405716598270696507995608355271797746161989055577118609174243082033372371689109095889384375183899601797531155402657113445501031106559779751764500128298565051201311377918751908305933239035768974321078714747745637480728817920791028249248989800177707757571459853733186886462683654102619601732431150050923276628547052010803990269803343542192268488592590780780480237926198295701312715588681861048141847213885779848663008695875146141840005859158430209997357805232187446024728738698047360056552282321152543977741806914851276868392281157474598429869612466964463840222680111978805967613355628868724796204651165474097727543548776878671325569492030135170937725810135544634962993913450730939243364154355176683404325459874838783026059606559652109879097287817640191851421117794012895972430281560426398199000884257331252558385205207812223653795731492836457209594478191626680174527823945959385424226602881166829390692936879034463812107254078056210456425862195517052105166905161207232024984901150198247407555256344749219762538494292231425624731384411086148893361587170884794337561078921611291132846070873034086299958935263368651710970441250339516702377843973837768728150525434356711421809719040232216383664424787845306125161265469778181711922700630982298298583564291219586675910782844525226121139236459741306673050779196569277316751785838010854938638525756735222461180603563581635069694261122454183606435743844016169675237501946339822080714130665223488642872226624439155849792619850725165005898332833356440162858401073124538923805926002225038352987900730963004074452086089096798795417189708565701208525080257778062468637299983743769845335449223399783719337669262190401400767208870124866992510956091787897046391736413502836306453023468479362622184604524205739049784804221179425040087737249042994585175631755750906442790220770109389456104125485793391792303669600836837350420789892052416883115716277096570650168693457980133830107746684716532323073045003814181097002222563619991385537165185592042959702818491828784855465246327169121987058183844370120280576760082310490860660389767938191165485053056782724643626739739067130681886715980653514082974404107576564673462224325207745877602895436187622640537777087173846843621124752786583381955765024570629074890263634756319698595338369052380675165103259533986350640041890189722248107727500091101916649910641836597120256706054545851194298085914805438049249635748312990791942777920889118734829779626349786948246296665420014991637552211808884077643071219751177984340943580618402309059452975106911013020939361995441247204661631646347554189969822469208272020700335915159461802758002421362478456051093836131965739629048518327068397888392221179136957401240209645306400879690580417353822867229013768985954724570307469091000854044765227513709051868285667118210139338005319105788296155000808900007271781531573003901961039446554229912757725798760917994055983461693511892852212755737460656128021034802509410808925331536894990865833578959035415189894316114875700097570925430028342041786031647349807933392142180569270201573241114481366730573029121296242202035895377916290725648311863683804746994461413574989639722560898487008315976435559887232029113393569647560681984208511172816693861087348795725468686097948714011210024028775597898303115201090943260632011428596430839124143080160253985050865494121576492829529939486331791243730062551889135394972944056054949120865869453014526364990686824094798867838098878156462027591729299015897833561619508004931902784948934824088384868892062996791215994459488586955686895687707277742162307515888197741972752537439965907967012406572313274320861037431650218981821126379672655249120882283039560901391044073052431408297397543964640207817712503815000169389680580148785931032492712789137986251610888997413973894984591005768405395226851618199055785092656465531783824136467185292145636647409699932069604981778776758624217760929090422881286032781055702029579090775292205947455939506477388510560071471642403623148503574971832008360092679767700054506092648022845990335794067152681298619673209073806661722008845866410107261475320118155132566265625708288981875497429459213827617837204787686742148550775091067546961015709529912810163637404147128244618123058978266502982281288352359937311068859159333289738022659118725112746432795792312360892317054030055665925693145005116269819794458325915371866394469242115121560932679860669885489994515550159784419061893601563609046192982834512061928779920085127070297768172584259878166882376672875176930271251249427873641653154781427961956086978475277878264655184123131812768792147861952108060287009747425333810762483786807033652874488048872372635714437426682252663721531213727460536200006154300146502421046281317402160305018449105612793594079133779831034470155245139177819500016067789990157198859960625300220042799999698393283378545078912393339189385553955034593974268128734432917493028040114004962805189526630318422309628987689948109473669257237385232810099314369730143006147726593720570357099249140638860789712217227811377625751048145460111583566915896847950280599053869222711405964420993255604150165157870365570855636426586627597400473156618213791708316510544611405806792760073314888873308982310450602586394171824194884635353318271937352623535267991880136836366074463283093260448825490559334525439370923055963314819693036404403903230939029515793530454528778957374356750723114106762352966824944265119967448684946300292744656623864235463328856856490701662876372061764724240507557012225684485660039917387767459692246942555794729807343514006831899175065206133255726465861163086558959109391823604395801330017272123187561378600851377699716198228145659495903023478619960511320817886019767381990047015722003543716299189103736222349330144993902811397698384585541537354677123569441185794863961619483571427215847291696505793241296945492189760451259364363672746824796942783527019373626861387133075356412673868581240991993200320593859384121515865354712880734662844512958559421018983196147604725973242566065004572413878252617514576192369594598408978140481852577437735343073603981853707339235181915550382611200990203783623428377848180237633925330475881951994887949485043390596707794322013205123713093187320915394256336195689768351198231238828424465743944307407782846186038038787582979907367390435437312622938332458252585653170419134519544304471367621239634119329259227850957724828641171580016396414411989643736621835917737860065419615524884081735342629504430352661163859936980699579382366931087247963402744328958026764267729194040230244327485845381388937795440319848948650142058422286063926023452985334823611945632489849545487318194141588896525866989955016595041085114208216512310411771628080745322442611673134074531195007790389385273680675175750564573232935687090375126741266142932903817418792119389174050540223418021498702509425659511667072559495846754235522804133386939194563592931007300696870207928549830557751657765705442516866500895157415295160890903725293050312116919625150894451382242422964002842913989201818844641131784674043183531355110784586452556669600311032613154541500523952990137371366074257218466008870392954979169824144779120661741810826353217875349562904131746710293035043282418679075322294864314146179398369422706049010146229319191948438764006006414383861626075266672205939718560424582820308537572931715798239166978614411422638873129171293205320401177428753000743879348826633584758468273144385091992229588106208829299590007463103965404942183514806530755916253188471024154645132630091920984311402180578505913371614284499045669802124845086004208828685130241197655548300142253517521891981351107427647613295220820401220767036253916877492076004231612630038392240539732467284299138861435866959643926237692488545246476851620474056943576556273010185557718672171314944326582666466176509620438806499588645508512577122229579975807179605268974063837062288066661138233470749467470731030294561925018186020450596952286550190317060928996089026255756861665539878439963370921713225168004592382176051930791491573219815507695486162739761977899970222266270575940262246545042256663893071839944850571617604275097681541428882262441250017206398502009794340303630660521623989739363670187933815595319936851943614233205298343078707784110479753981187020503142194252046587053566440521434458443844340048468297971329599272494569234680809927566306792310269731641987775511420874142346964632051250206333417013340818908556453328635482579466828085857609814438360675931616296526300192781877871123502910852539287757898456513703180188325040721423995597137080621850042244525713861955915698967860317279825705590036447622520554315235742602922254787014922181030676745475799859697290204957009675655110788430669733086610344723897618532018664867787786591676396835291158501549608687024773743750950770364488733047501114294351562058799520111516452952763176067470019799722190262857000518179119074883843393635903542545576701501756095815180172891823888863244700678749234296459463481508553197023953343640852256374912203828056891070353214165254062954184845672245008705508287544634379305224868756791954615573265673713683633983202871381708974481308355182447243196945020109858204081082361066387872075758870818597220389504277481544246340704075030584002631476523960961367916841358613357866827058638690590638688988791995494142217123435976656938088434671642073700466628967692874280461879966815751087215983080049709468120513759853589614326864513346263937239430542570735918683116781081480192588520949178345780725303052666235601210493635313204132789106168268220333446411851487651217773292651287048641827147885940534328460461328925828225164367645884604458155844184829986447170578721698300150647474184648412055343762344637907140658516361627131836194739203461041770009873690241533028870748780634545932624823647688156746393429016929080267139966129992988163732359069538050909690849489598063089914744058685607069832366645354483120468501649325408537583674176803054276507610220945928072182195468168038369633829047813010478421228132020437469264834912196987710624563295108902292529191256626594080078369662615050001398936044704107771374964841126960847951926944362730533041282682780856976829513608785670403736131498711158847641360611256310369585943239180409364471650246079992583998499392483084800814990933758214029465536565778415025923348126690169128465109815536909098328933888586367737540500957832217688449898967694301736989069074885103800676752804284920834829052398842998891103609986305741789952315414049097911631003603923587681503408029222478364106138499380769644383343590953372280423698990091312660718068235671304232709084433129251587384766495852526553452956383721317506261884156359789034135317819464599855415630127351151279591898241451888781671807768403262272512780588466513378423423065353083257990927388726193645239943102506521331768466608252891621638214009725811895312225824677328734945628201269208434505189187348340242934709866315335308467021756666647911734088214612543242478987148224964898113779957499834648237333999268826166444210676705843598564959775184601007404790330401152710527122312884001653061601398575988354554068735907156272817150952586964073795665882740149582091992417896876013680749391152355569815367029991476081683079986495186004840975885983091897089557974368504261711311985432965771750770419208120698422280757460843181982622618401085160604248207063567546395314689040788321982444757948686506825385605689402898598272825267395241711846867115042110481368871867433914689273456901882192076213968321618297347447142726673320951570487064518363411838254019502342293274331257738789828704926015081589169692132247647949079154568639896515189719498761447282475216595848412384025321550096606470007862520615353510474953428923786737188290584120606437715180934481794581590987803851492141100082149807325956737425738230425788861078694995420669826027193354497196734950150089147396393834142754360704038210236510823576177457811433098355449932275939963408729892243353707697947307416055472329403611627525620815152073717320697532455156130414631366330602591754730369786581311300007679891008381635791439422404422947665563587786914855765013467914375614153729972023150652505168680349418900059247256967834938515829684773049502424607604429042326486587543631145779927595224024725198683564935224612501901425548553768773452094862262260396769680451338524797943302909021547028012031638305782316588794621098373960839078696765856969759240540399985412261999099633455882784574524703409112807318243706774648025199899349369960192661553398073225628036591625228271761242364476099142239213236293598092843632126193661074863024598367753977848575507290704149407931849596066552648426789339602199448592204154601317795550601259866756638873312970631714218574403693106879898152073974769857096487921059365495523426952000292305459279605031251885477525200716243314110311563137174339273339000923022645744796099100164547619103898435386094158752194287033871147415300020015647797517228067358482837189369005291750822438151075211046966820021757125948697713932501950952678449122006860334646472410362441498668444591864470305630513652394638091409979582211761840807033639245624653187606288443538465888484577991868781466400426671850804888825546731963638248303996037752695849017364429182838147310087416997418550053410543679513579978096579573483401176557997164754718136612811821700958143901405735721716290892295709455714545105414733239621863420942774870902828498996549123984955548353032101154545060870920597039719475586855569277046406241568430794064481084562305618855583220050909022521045463094347902486731252780634797469123356408017213157139188579057046341175243388540204425600161896868986284755056365347219546779550019008836653097509457793973571027683955653112579618904500992258812746363665010236221786300566123301909660537963135777639496033920410822090261319139703534048211313603349786063862798997798763761742193761695244518626145249994329811429834596680205563313637615914802492834810614312439038351846582614004945934604220387045003541386614157790624684530601230532780087639260480695183609088464108197330547231133144542317342839369172321689449592573633755604037106541336399043599283939051268285317577491275823824015666639909848680196779048033134607894657012067366686497028396582237448300411086747887498575615126029955433329179411990485109094724392963085873134013822746250263415987711716382074227370272938305459089870467357005197262545581504157539183798251999096053308517370868883192193529888712988857420836065738395684320647982680910099871950322823192682604191586526447934142360446386022330739903222551818676591510935536371259823877645231634167732393908913576531463959335977880959477974492408528575882259675628243535484059657633108758172720273670817646261609705034766096527774361070887886580351803911130851764055207308504525710881564845538582028642863903603739486359729146792579007905527723084546867561544517373306795931046620260400800151664819617940408720078678040190627193194087341081130859251707472196928368723744495758607745415603433435944420201359722178383206649744405485517665921585760601520099594184422804844239029840308779238114568744840490855011070039931433664133638371088983992069358384432847693067964348645267952427566407009538622352352838040156782893189246926274474700998686021683808607695197513611098883903267748207296927559665318661074435262866664271160616033385295018787977126422968700004718375873147247247713845668954985046765249340266996363760678165969545765477356910402395274018932444378268486164005182646474786180021211403648004021025173605339724540722297344347574908872682057259123144563191592342237611394941345730778760872815558666095007166102102536859019496437034283604094960604429923286011083634651547871702183754199966190973804619428219880766737666172636337135439994646315717248544626819867404184895954098597273492881293223985680896061142806157160410691209020082849328430014240942016137842412190187104318902336618564177364497110484335651927620777343116843709305963071857260750180115203967919992442329960636071233143583344419502518661921958483404317010199995662047051454908321345676831295757694889710711880109479532927750000624283585972077276920806300289664953004278144132462639322612807026454722318808577846634501856785173429030767165768572728347324657002982374080410934679385361076619640138965638153707998057445685005899410531461128459533572072939657936578647860336949291605099175815198419366510718017397454118694811235990098343608334253205984307973411299311135073839873055979563180318229045232428023338141433111561186291412159408210398623553494440815510206707379349073672105261867955069925820834195993019187136654698340053366669409563920766446430762184503202711934071580839352284631909005530798061302173932500308468679878410016274733565141338367476078646694763374554624870146827191315721219227607825595221832847887206582016916436889014147694009797850611498341231003940494212773499927560206534848577235600919481582674057303544103997942398359998703542486074549227494241124118743919540257570641699489059963807550867491293009206045795218223260858026775278348358225210293723634259836736723676331043994860383025525282723062769341378236374269289181183953738900750138969339624997749492719638092543377648511048468769090679560972866940998844327919003691411359035586129918436413606395613858999427774164792630000044458429812902256885712603402355208051136275341536004712840364023129967614538773306003955774687538221482493657532063907396354803368856494529505660250959671598417966835189033943693558454362809394832543311497883699908860697688577581416991294558684872911130334180486805843529604155079460950475138465619282831303952727759450256342062955966447018298956605313951207235588212234376790533039678212703843914703294626011574770517155308030919715457607848025392055904785952255843779162059280277805845066097237337947331820417069970146989178057823370520295763839400860310112007730720651337128625385899662892881285928899506436693442433788269518939429251991868536730376480861164631952707440180891288438888382372169029883413394623655876240561997431872907113573987761218703097770969558474416883327936396901380633803092688588682966926475035670410552261944766206941135968214721827311231933178817779891703315558064707468617434302820499839531594709017570493279939775172564032248108153966670483849072399247843298113544773279341616152121938018418352971586156649810900083191969499693471341355824625132699077046701893268548092986043521157175733329721335273049800669036791942216620982969716720642495062224803385603353118119337747860692664297242636501344597888676307973271671643458138373450519198910208097653594626364817504348566929838172470226839621325415970496202110172134616372456526050467711784624163828138876818594648794055022915736961568917993415908966735013222713445702391924913751012273097769488379105465910227628969484076819763494293357825897565160411731896892102207363687036983410050443489001742102118277543649278051977207361285726051117665736861551585549089646152985694361515317301323441109782831526384054742987550734433725461107350780247746155324610106487854870644749191669016754023546461004693895940713857514899880250719821376728587822634683030788080195058317369180209330231221939318803026476768403076387486561474025414408243273192109143121218867380626015899150988306475831069837402009154190986129668320109670206770272417037029340353418953453006019542529927545997353902720070200430256185806071416454397847715126945468185912996491186835706598160635564606145675386073427641940138142209099569906366516452373952495348762646189934956683898866490407359820631935780479898287273851736398201942092358207640123617858219264510544275882827663690413247527375858932176044658645581285670407377503765455931912512912275994278676683457272429672556560616617443347240020223421370509460764351588698430497346399028863231433446895915390424208923670533533565677097063356198315349425531878351313194941240558383875613481081532445767827175684838838369052433668631593780974198902833535300167049665836503532299589748532976745289271774092133909488589947227514330624113701232356819307625440301444949223122536263378802462132498508204560677341604187706745835552262355903963905371592164003461860869674991962238930516041161655377437965331976097213364817428051897531177485376663266236172551226150802216436313480401141316724981395460791941360795095859404120799309329777053578091007240489027064819987964201844466314215731487169530650058118309997464887539539418494584950975341636172610279081448274806972490427902384490479426109388118061638597153280179662499323052129334263846691006689625492408209511502464040777009924330432804283708566838066125208158519454764622507056320627011306204120223991356562688935493828875721511133816187043572241301439491358602334527039551412354336516793943801975069207460873193707743173489408132413885556772825060060702986989217353548398677212159808004018058807784769514866092086906656666200827052105991924293607582522510108976920571630447293777936497516962307857911645330102660180622523424398249756860354688444240909381960674490459140555579848835419746438580259456349105348564320969940023422723252537926051924627201759509080341775452176043473845416934664786053239380126105823717494616473502455181590157498470771230151252807275516114214018758763726488674569860230890015497395252727744028935925653174506213257631770828164009398486023895977599832726086977980485580878918795311887647500741939849399163660837677727271898459936576317644073354489061259856760634741595649069947866720084531590368787482700077806214645063878410455627924179811210911038246168725313660541999770675877352130260575368297605480434324434963334981816122083227495409904661195193941729813818152725881636200689037648306465942044683797595137983925958496302226391348070088761808349964008469292876191981486257733068016986287190663258498698299494771692028636449681734563374098102315418424135682857459030609266792802053160923459680771758967067459752673899501819773790419607694934412504573146890650085621749219877578793136294778093651242228155885214765019453286006799594942159776895092501184613503306723869665562251630944085277845398879056081979657512262942734181461887833216418346540717047782522809427621975124165742429504730771337362830469015121075160998843024197142834413024258042442452502900227442281604608432737096858567629072541076654861720114245552645410230340411774297402179040300261333411253533383396594438484183965545233253110579604893741875011147782783898291747514395233205984977345740740619427700923437500783486437770846645861044565238594566247953967483062713846694318706092141619523357192474142090017468344400878351140775073457323651218250954325020401672067484162721614353634154866692226787183979750770986751557735497530500788198612167386810720124226969300731777410044724004295825746906445732218906407151689621921043622959181042331407788999374094431600171740552853734649469289331624444274062700188907621701577294672135705123578367694480650130402236495424695203254667711064004829059330742563957568819635452008382709283339109835857092992432717354015249236612975996048645575582383407275881920767263828673139818452131845369738020324140094778829907969716853133894622985396726347822598864644110321585465315162751196776553740831293420766914660045939265986937606237044090000751789182939542577369548643667425970870738522928419091364902375326975468633444561365079127760579474355263444530204424922830544513485057170675574353413713268616386324743077618968376713239051357036586044836154226176429273955978433030370438216176722850020158602373234630628941117841761173981876014408048112913705059884381437627245464973589544074835232193956653848070824372194991592973201307809214649980167429143071324068186205906781524092787459716711089433250151815964954564305533144841175053758490839767572929067724010944198091932351774444454593675987376912698361653002127759755974647673297881973183343902317892403653076316279809450520480179112689979866095868939940986324290162490175158552637657325258495684624184602573097825467553992385172066800085091849726747767279159316657117043866701871277791874571112902900621031046712617857202396867294523261162915608847541174420196064592501617988029426298076899511477685744122448016102868880058338134106221638840748330851472565396048964510395929698467921129084828187450524847523020848255717277904555683369058229974633530942212788518053686734799968394684735838506140325279355342743492750340997162305124267475501755269134499839225032909959381393724952408773366078539685735315486561700185446409745737783988954886656198396411735543307756714697476373733390085086636974017731606567299387314715945135481668951044322816019465572123263171374620742270962899499807354458153580500704830287418142976366406769117828185518941915829321937515944917560019061981043260993227905209687858785009021773937512492886426316818283366010003264022499912594810875298709285353592890126165019534561564350720096146402372666946089433551331611356371121465670296593447213549134051191448537314864710670534788977249478216378588154852142100005253954578924162700088289018385216454925169633158513700398393244817824049599932009481988513179178708949089826662053240144354937616469454756032898406818134221643863596591681022358644747154787579347073947381403260374496518024375876686867619080828459780933004935181743384470808698201853217315855054203345065287694893894964872059895688590361011834061569708106811193845940489085336539991068886542312405154578988967694734932047239288089114254152877646130092491428451621701975580711536006132657864917630082018750552553350535179799974155786321182712206136384476724327535095869371556992376313829017230482990453516634031991402964599834829539589030793094703514410787244130217104849102511772855490005515917230603648623871105710371354144957300854485898985436316319624423409834778373999359501467874235480627953999774698959215277022298862624067452223402803129251727428240259600078471339635713192480897880373507568836398877705287615129728840488154106527470529590574523492149551945326076182437602992326661497120608080535340908635028735252881667425573789139862736922784642888425491707660465073763438589557077726098486140529488267155634445212009725733526321805689089377751065590556647914366771431119911666919082213788767885777820880779340106830528029712235539217859767544368542675099508288863310351733685354097418504994721503127077350744077536759259934250671118816725410782265114754875516240061271810521819636042159874487241856174158130996065625922967248750008281113687932982072585040020460148370043261004052453736304051655881634099941039643877901036966401343152537171567989729247046568464264821930923445451048650514786192246265455227851964884002392603258833996389332800947014401734787236586584860018482634357948743366967821754777370580356646756218046644085434626873629539749434324241412866518702477121248152901577051435604751595997700356104590274514863292718075744406416042984380768135202599998471699326029840112624294793881667387214995260341405977300826893722654634084200366638054216303367922833853870236698658370796754530081923139625261531273786460107110052040450489905675055213688437147200528592399389411043209419304828412684935594971539637662294793688077323668414222018743787251636559482987764155223525535529105050861905198437943917230831281753226438116370787945380671082038422716915174879851701727203612378645342778085883566700511961685597806857703804013498389770857991163749631832262978197763402704494862028636393161086275168068211260373351538052494508600430690243075151609633253099112432690543767261838590633169114497539211304120469436895618563079224070530087725290800913772169022455513728308017179543250249740597863746331705019101365155695983287125958608882449963080358216625108688761808391753078395792568771092687439577756094548924466600407080627476840385011036130255662433415942307445451343270750748081015417118955594740169497765575839868405985267175531035062624685164709535775247218285967101053972161480842347913973690275323867247517005357509348441104809448176776164669556614804616565771811314801849472911415429476994876725929448014002971671254351231074863271182944210946995996491601503710905574870964237740487586665424842757446104890348931695656524793832737074309786950831072323793202845784856254395262034706371882861313921808737264509879171737020873648558794407544463101334782735204260992670478215339539547485091362964385544229301574443147053747957326371265136364197606503913346852518471341137181524179837144076799454147847204241956462631367366799813986984877865599428408152206982761841527848294482037225094937296856977619048266188021786251135482019295077075474785663674106074714046817265392448100548854245416811051175259177454133402317883987599938105556982122820606596459979364187971232801559117765713301380230635788440572185706650909727292849259046415203694695305648966618766821847815475556118691641998894712107258081956344659608444422750761654476790338269153894912666134455016784189833401972588872759576613632561647900302990559927381012281933666476070023980433981829672771417720621596395181117181087122223415658651974590095832565403238033424511963152619436693417781937329481036628508147216526631545448063835905150294496351402538487485305627025525219266337549808015698454271331446124162164589503089753003500834827474896587022203093541368909203032516609927143777194470074812037692391849533506244246189499082003012690214488109371385240073765366911801145561418056898140300426302642045422554677444985543679193801115750990383588701664270390062778588347933769476836673963065540374558235670283064597269917861029809583550694795780776224766040716103813907679498490655382964538464714848684019963685926957450031378985426122466859998118324222283304847753803360872893472407657105761270376935027506094991979693468982336190905281984069885011983751792072249767889714375230815021982963614457590684349278272389821388869915703986955415769977028016991124263737423614926122478215441278313792144609808864523923579669178793923520313848376808649279380974015698822054776651052315822329748706739396153951809494632959950647032354062236762893465844600970976308164360491210209376835481137855454341710062367832643968106604425477841434629785834257015931926391104164508860471787061327731407726734363919788892848335363073794972793894279317661411979789932404874356044367662941264812218960854996302278609731672825878439590459561526002329976546575170434077264199616034148238448614278973145702187832114447604877668668612042053808349693119549822591906962337152480747888508718025851065196940381365107182711209743994438703602503344484683214083303162713793668788257888000426230136465387737763852883428935722135579947991110115319447009117426846990572609267189418674652878917218889845250280053757394263775478051209071369408485433158066624330726999143323500322599720595900314519336752016365053233680358407062807412895837294630529971757533345691198252660905817138102508032222672641913831852102730225559948681715589239307724202211398252374648882372803448444428100863052288084723445955814302663037627750726761427530421150140622527323178381839439845726214444897920443444719554013641937986242575110969927878887605185394643734715018371877268476667578840318199691717182925144174821146668323472390640172538017213129759131056176263117601931984695948328036650805925746823310718983038366117987923942727052027620504358800241247445923023280222035128054690589393581033509476857641957730790531916193560319197718697539595727401459255386359081077768911529095697204223202169854849973674446809568050221633491107383441562200910765870144184856742137058809201160689593349269573134660438105464170319051277529373994430962667972655592028750240469613787295855138472891616148861945364616418038680297584390577526275454626011162079582651374440727011922159340406642918273038389473897735832606331513460052985580748724900603964039127301242879403830810616971242100582901197220966509750193143774641687037602299500419737368844361994033818760361164852178346015820089416339755395996123966199535137593230035861965297676874987352331153265310845124732566943134887500606348386160335673907708442881909621491180513111434538086542493058308522966624018992937055297896012069971851690792149470748027753526368533625413419090443113495689546113299773061504399879312508409100561898626667381731301211564401092452815822298313598199706425600845919434125352665107659806861796678080149515127828423572365719768262035470015509687397908616355642089369347484214964162638249740064167562011816486703821347874483916705666652298747088319050759762058890403906170099458936137417759612653187225737344550093039580841126841778730395952466504251827871249493558230915528798398547790372019536289093080619669580276953565355074526464205959633534225468503765445607149287620130925763918179661930517520586114606392114162406853705984185582068641674474277650387456217417136278289180218378514059127288169847853429829880694933764273246608297778619844736163408078103410973305267167501992179648465785206645010132512798790192963682377941020717361199246352184779559343806229068617038544541099311378766164455366064063099530507347007724208180964323169887856562758903090761403577263101891584009549305253863718550905311059571066011039163163598614451725854734654777849727250615005402245437938278881529862204926507327127310725347969789134134584948523610161541527963552357814294434294037875685963859526976323042703566223182239233831684053224303461450808920522231928805859077549113715611588111433320107291999338900942717710874832413366531387362816105068398757969756534687444802911170872901063194987845404174986432681308235453428969626912075718437814079428406782964089638764526697445570441912160559214523194406867298376332569172494849354233154870229845732533656402029945512536720104229877103766835710905008633470134226385603111606265912488473725262120595261432389068754473023597183756658359961422974287601774852092738441571060867610113041712999475182583010872286681907861952555419026437005171550782096784822490813374490806454343325896902597612846450195743933896668350001639617512925475074884214235391174439986548668377851725509789377051201222301222573905551553253467724574265183940901808868522762634856975950216315158411823138178108017326805649091404356174748283256346309365970181704498984791399039089536659907846014774196069466989739760873482805409776022072232261584610389488891634974780399643734389875773490213520528458713385963262707350954141254464311537041164089342242124615811750066251037251088636447421158192158427826228924604411046295902588070580028683626020234078592112139830458875624383041135458902475491609109761137830313653885646112011385808620562844350612496375161520891763309291515017475334149387116172445214329734490965039105872929271598632329489421038963547493024963428237252823582111009810043691061483731546471084935841401278789225766732283790623287225647749011705261830066656484200425475436969683128554412823527709015794095002182477098013867843043059099341995651797074692227980092529118988196263654356388181486169943702212649640491224376861754570529705872234755900581284154907251784767333145234574265238444691155149603325550304265987540502929598369778843499025629218987131194999188528028326109804964030452699048045717241301827937148250261930638547393253934550931111940903369795499457812038077938374717729368248263448382344962632304261508865801401902924397276501890242164545797575745335509185397542512652316473367719581756744290788984531439641514475062170325843055987684549841625494675498458002535857966904215869793609928674078206616265756140216415632421239442741724343025130464610269570365267817541786906062823300532067699782808342941292075285623930897238778349299683075137878292698779287604250320212871717166252891014212556993239292788464197443969815271301525346903010428599539882216481302272013630973996751658817050694163719368577808514082493734546469245986340465329592246613733289358298326159884592092128501547090232042709435642774145954874848988083877971604590698888342033179304263776672290751001003308663850116194281946116650906347838492325067948858826684137488195846794671641277190664894613695809282743942368428891703196996916116157736640348679744215964446710128236214971023682180238251395126719069639012525582987459363831729611865367551128697975765002139997871919560865842380416608589815127810038895678034643330862846068300421152560899321960880616450428728933022798999452543103895784857094598190464040373103906234236150031654113317751637533046635095889448237745440638219877068082001581579971405990287684973199820364803288265086074221915037152713851613733702512242881647413910150650642922766381794939327625347299549192137395563993470344351403296874345464298045929161866716881050754946039851905376754039741874186823955077454644689174252437461568260024159196128059150516662030605330051154725810295965028640726622165376372983903906087469215965198072220042893771480568450002260178570907105219846309628228817341034199727806111334763743514388099140984081909769202848466265032643651668512583122570844916104518497883758377770939047434849422550952025013439557397224348276467819470982485353942209877216640300213690558326443577382919142250607524970941364806344777521280806509692014607041804582142423130936478002568390227924633528007599298850249275946511307044021897124691127432437246648105182007374156694089649852268351544139875720194679144481965274024989279724631175471427887309860445267219804302883629567206853044397890963205035128047418523648760696879728533961808044661316848503274561888328129262742992646267588640301881228499996139004953540520488588073406198401900266389860154382987545389594610881092807107536299596312872158562052982470109888946817685101177990089799472924917144686571989835563946755087513939104128840539397449103691868133568265031372378676541306298936095764438479301784730862463238349533059219567541798047699892974672516003381990057903824880326594815423311889492229194071341583575237423018528871858838724410281088137057628426016301633709535159987950561227404197351763539900353491619444204675670853178813454882204697973302797143749672953547210462503982466555195190528263214526249839629578846935136235425074913284639471893995538884379705833975273521563245943580901879244545795710093034129589104671249914270416959124472192423482713565938609935580670447723372721303468320859129799068081620986109587370954155517610862307205310070469516787046511040342591121498592392243883290111817022622911238916954582683064903040441010497832443016520813738633818068943920766496640312112141652807544878458374288419383828596989123326562023208533680373716367928280449462401561485745733114775759908692750770496612459895707159837801985426377359611957429615947194311402194069287822111748776528424186146123639380283586449965432039856851590718840341774304734228267533172705467138999309940863211138151086257971156994599040487833447970409958098499066804431818660533881588741698262437256794412353635825862837381316201138985254856984557613063349146470278187250703278142034877248521001870421128964241514492707714479204512611135830936878311018113552182628089213387346513698570759473441436059559534812989134992365060387604901294637175345292706771653703560920561243030430477804337696864186036190484365676776693991925274429172207442984094014290294651349879070400306783468889307522686364346494027872536389132198270804347359449176182313165632553393600594055380416095850018503705961377603772899028350972844176802021497421226032944084617360568213271016798972017258293039213831847482020137276358906362301474335179416072529306350934359639715082787834690909360132717176062200262959762020247080290109050196410098439672556950897683962993275559739177085779891886428369228970833433923320109123245963556666519913637718436812289241091869033807470739751992931367014307852377474138518467921716274358723838886738028482328665900654085630393045698134050860396443786269542670866321583170404968776493198725959898100256602303582154829572658284731485822540593877818105942563336792401600869359916527700274743646567906943335021773576237034245500013775070644853565598583748017744912908038540376677225305500972169308781523365370287033728968176733144837105141964358432874398932681818102118917778247702454237279210890185831221764789214431925452619057868059760610148745491537099516571570921785317269747697249347796009336948109367505799937738985911540986269036154672876451110404210797071791418468403662965019233182229642764576440792443665324769288586216832027095773752309160062784507711065491659447938285832441562893456023672960442030789754898256744872551723005560833732872137562841532397443794854718940987743802931265352982562925080306582404204463752743624482054575846115102406465137855777719199810269985750958503081579541300415809839974569233628897989343979137670649270322841244365803606627058475264269877761008628286137288716740653908994189503564296105901208708680151036959053602863788804302875223160801966574836844800577593159662962842890348918388537119314071347314204289784862479468696208461446690472676505070215551819802851019429777435474418336379944036423382839476754332228251602119058776656988805923330681466936267125484491113796528708991929028324182484772434514907066007714534991422890055111081789737704779351530300000229833147196560112030028084997722967804502458896344410542996265816127318333595296727402992647789950930786999547052288830731782094071336529264731407293734349113523460588315755868017420914261733122235941659317648745225722850895454210772282063105672704047435493113706568291745029040444143219249633335011968071045746065639713463456134841172498682750293667443074625771955425530037805142840318999510593821661115086302308124419025736186243208557291241048442482027814433129117550805380899632472195115123788117094683129148235092866237735176851289624539247285463943462944062321141875319887561729888164517565580159459788055262839909696026341154348540894056080738239315059119040441328667234810072955021877061298170307765870382821901600372279647733264494023045059333286946520928692244901300816178530194303128965501321716642543970590449969786665723712524929157333236129080457425210472988174775125656920402158150186392606702422168063517092316480091462691159669100322193992348703006998818232017597210215297627233369471288582485298207945422770699393376403257588711428789491258165173138051000836783780534268692958626956120070117366445635835078648861976028815359425530466281854255267405375165667263510416725018215948907962787324954381253563382903821190077548737318571615479149241799704576778120681031803183466261129731059584563105808375436161165179638528161483432646473876881715452652918583838621216334438487263317432107698919288254098660551052871771260402104573163238272299413448501366228674484529694497331316057261615760003664904420385779699035157503173764535950655628694807226218572922662878042722838927380070352001028797771194906415132908997568851985457049128145602380712836179270882195923303689355004325622961184929081055198951756414444879994994685158704372393254054691177859160948344140243361421965565104573044694145341341394287879746415062863266340032991431435656203405744087404378501533929056306861450815926588111437199870837632114036518295293723176730108418202190246770627512495392023072939777957516262293573079676190760089789481297599015438315823814597842476045410914285085859495864847572111551592326432917594300649425772107495402074632929204372631944686859895734864662655940731130456816676187769537393965172935824678496166122139996011567310717843857082119800827500399302847538684507115576215276314788925250279204198200030009151310403531776374143656628604695876860677289198522100178437363678917218947034491194504142360508801006737498422058195875356104770884046339450407675871352066996222011943799911547365799106454276778410240364595073741113334508480764673687860214233210387780694835398937089795062566306279176744844359970274105901285157751187637350928766091240920970860394334499939124358933738085492545558983085841706582630322779182486511954932336935004877205594589046307064973343050739536060827899005267723848060429491505071702196689675486953102759694569220024911996221499706105108239742917686545696759673009648152070641428158991885067860181399688817528544900822805501602092641745076595910423462459627943608103712771937838175986294973555670644679456145664998576234662621197446508892270334600550976404874437848026521720017753883543954298506706308866624498470882404889087570115870103227397168497403037838970799763720634847280999166345307225701082404413534392119861084320807660637802482939026236886408325766030375899823440186883494202259671559682344110133344343172021605390592385555559298576992102719688640689287011109293889684468123148350772077873543874069049641882631036595755199321721693231619462488504023604046747330712969952293693628280949796748600850918198822525392768800151941750238458225790907568205510266298904798640154976666636102263591090886262464476939505981570118489735977962117160478272970581934434443916154182060109249011454203808512146036273101961701608440356166626800937025108782835240889086242415082435414192188192232006154552000582649107229047933977770737414827106599779905202895807979537972108839628660794910849508049855234858202694727061592616601289064133436257924860270228499082163194258282795100699392544085443854886517741421440634974537461644341779144722131508413298238781410326971112595703133715078404339983182763763487083019257189559190714501598500964643301742296333821978424447177898624870612884357611388434199437397905859931377835957961639428278571254822356966954310289928302867002496309957933670426561630775584357610131771196643697436064447953879048029065659436432922433938352782739337706562277685179567763418973377037181877785762796483800666110211050665991248722797230728905881669581669261428722032650187329131312043810148072604166194625139162604431240331344603238581674639145126489785481352397172967107460443241052357118421039487483688193677438661885044577222354202004429069599710324570617424856774268363433227524518272288482134415311178088537069787973692710204331448916186964738363709812543473512247791622929765591804357009300306611474241477016154085258733166536804150638568251977347658784335581989683990433321897713617174363837086030746244326868878251363701811730676988408686949140303786647666288810581741328690642948407078099438984323351116482605642698917916025599858945880184010757990724379013286580297178408844796074826893662188260002429469331202717598854834849169150789205717017364797154278138080155552929549348346094580995841945919773527002050925975724688010302883742237411522049128128227218925220736112849508330998874299881791084497798446544645120101332840333286022132491718795628585928874924616764688711003644394428393420916652002227262952683223484001243466464686340187676677880352088563890508870701172218488261229258831787678075148728369453522860828804049860997011200734446252719633089895607750903682414495005403792815816303756933229013838164767035476686562631654927359425474950720816731486286724106142725767224656155328596555428460253749092334139850863618501994879969536006144797187102297599846537162155309400334424898432530291666249048991383948580507834719033127736800864803049886032541907735827795892990959647816910148901926154259209637406217114330377309759666823520470196067093799453120618040400372894451908605007919613639500657600731782536422996935906618294376507940977127472241904621945265966375354223716743856742106959539798957853828599714774827835820567171513270356801603511568104688379906885022796442511544778183951603633073444016864579632262235170161599802545900068302994964358176078926880028293154313580545918558394646361113271420075432893244970168678138749775177435273017448995306656831697405139621866147153696703485942914785851960519980031647413896640721881828426458214385337589969092218038192047723865918836161299013151458188624123305313415572417109600694772660820387854716632078271745305716787629335778480346473063067219209482264195981965895285650870047478212189912198799433821932929520077055340585082607039518033197002022930899821547029636240774670675138114343426804586183482914890068141785204994997535438288762511440350995445292028942788136919594467656796164517071129070277047709413557378945402369783436670053234051105245228929547987889919170366627890959909865038912847947971216279027969047354442587482622373924789990908962434358351661653391213212360162891250122492403749345133561766197917583546395708274307911948441156941037310420580435621911292859586579672852749653490468603736812586034609363053308663779670035468316051314819822872174373040051619621590389030027253386328674072581985324361963966689964361095369829878550745969229647133890615210263772222690190176685187684912808130663992581277889350587114279677327695477487894724593681829973431236009472728283783473990713113485015209152947310895620976185411112213785816601575775855134048750023855443410846557874638531869221873052127998386428367868282805984207383435404612229230125458937858090975263897448114406205695586384246561228503378292979839121336298605802733775934757662658367987304591743763806977931454301294019708853276648290360156980898400355292783349920062119738222341368366088883111786335661637199260277476255910429067502118805774280214154493550143544803701782278770019794495275560856337455889924304231779502450311395843531276008855254764107471024037624277240009712844497405916141021759039068789708616672065491582564422666983166908074203441101805367368686721876093677301100613285063228481028280317475997443653578441320975501358519554499485275163109687358117915335772679466474618813675999606145391613588211042954151183425607994265306465134092943394417141478515807782195303367499687602405238757534052931923590326072247970817611539607860961781168219063036315067850604734393602781421234233800430804491080266336223908445625856141120607487419911821908292992393051132234466729548475886360461748136935514999912115051614778132058333080311747525988288333996647582836829129405300688300645378577100436859915514353889666208187176546027954351246477233701800715658707525785316565628629181121195878486173907090756008178474452103368284884220787455081189323593257090358457754568043737949864457835423992402408296130842992307720388097996277484248941234772293887907834392352807520545283416838928820172834295742379896653490789165347316605436689198743931871818094029519815617015525137511716629890534222751271128336641276994768649386225899615812649028360726286281852500349256751746481961059455172362824839242053995288668581328356194672554268999574798079095532275048337784578117340115471553976918592352140457459775116672593912823937432473707372987262945246864925184820290208087424058307413109469995377594372970450541475504247237967725811073186315846300720322016391427338331405966206988151797170516599441347290504737672572231825626063258405239067684416774097053360102903266534196258103714518781602227179154533124138551926874250943302724275950908794417701166439473628126704077229593802568991588831138930534650630388270863394455334450199420224551210772498901629932027386704507498731302364139483397336342823018783784592561946476289540249033666214827402102359286169911429121018903848688191243429168096309297838692288285669294137734361914455417023129920254085002453912769111901570658856752210246704558418283891900855989399950319684396390588205963929363969122595830726300041009676447442996197764457701468972442034985281288345820642025844413871912396206439402622423494389934561473611158465364923206950574349135235542564718869446754816992712263141828186442380745098491361078149461686010624328715914687945227286869053449463991715859017925306310007223069785633780492454168854508584558480772140653825580736350313889319426954332819804777852266244435523624534536058131021098205734038526610512126671477904360726748822386635730763923258964027292510060065262248161813336876159022127415771283424668258005289382060628143133562915904926768192431191455306665370570594142859036357234059716288243575889600641163987624418232561962856771605481423504417768066161834251283497261116424631031748277307801739429198682452100928726006831592834112132611650098776062649275053294313756673545909676220421102859650797511170102037515482494004707554793114025826454576608338594594909055069284660666444462030878094255912202706231563700180350468186751838337552538329443655201706384875013743940567503846131534071371553710553849967747102945099279030065418047278788166907574325941070944827340316082666639937453444077148837073459253656372431020563323103897396119591192813675659345157388978818025430453549260095382995181560352997693182911844251700729142140201840701812253964123923770887423515138837742934959929938396512830179846489982883951929554050460871275899996946658207996046806008648799547180869645893637448999119359157652609967342137503259555441835939071500746744348999576280728542088504243430060264349125613046967056904415837882082015994310652362602442118804322852005394066729271335276928884546449008235646804339692058132705043876626817525081912247621921889960222664717046668743964655326723707609056173462753784418502500845138119174975818282852090054702648709869834202473461082756183744898327489145577237347671465303184225321657016431362701016680831951504404695387916305693667875284074539418696600387125145719119834173231123017563715709970207019654842056139102116954069686695089903741198383702020734636065864152350647744618363295903438570480050140450684178054914966686982577059495713214073060583490686343301615362814606314528092397907536081611837588431423051223173550512576740958418605262963499107097679352254724647925552536870642888395201811195841757621233124980504134463914871410408199317161173691240179741891545355896478494718767379735508603117467118650171331277610222355504940115137081585990404263199720677883090077499658803025690623064960464399524482196011848282316995693116411107764270247351230012714020938572174942619639575264329517744695816482032020090721826888410565396679055769332193152690441659000773332155079010305372501184158159478189660084233664714368464136713832039193497276442295638061618254379660319519532685555757181931291070239506498327799288544596676371657984413011262576435228942408333304232534084208427344166859543540150966488385403785852438450243360596063404800359060641208228190185728986023391905247866897289035712475116901616230165242214722632349926182890154558929923550936509916966672529624845467844725668029828404152821469675604936029048536278506930873120091252987615345147857565137240022116840296123123415500301959859175672520596260606981253760188877030354084646138536778049236616287645306918029893977117891098498354851556949857094947271983801059408052145404218039651020539168919138976662067251998824275390083494185730232395367093538819245587591418059348601203206929461919674026916447738545935618268182040120959579522604924681637765988109789664057694423822040113762918092078639948984114079774923918574725982687626684280168286715205365554426210047661721465899635216904482465122295244349057133493429484355918616772681322470913593563069966490802321879394493859662647134117893153490027354606858458128358714263195141501443646243812755877894012799461603582876683548505329988667570336574531788762638471040953082532820858848721614137547887166135653515939357692877507394274174942800647043262076737922146359660538041865546878065887918766718095004250318724358304792086900637388302382388460165194472663270585150180677757281333617294413788463727092056494207307017508192875080098793179453309123916313225011474844621409904565385678515803163310413864410908873467345155427707587224366680400824274091891006674158312258673795219816662365569398770200376954995904666275940563467744528613926033579660284973421831394520443886420658378193840158713366821524159967329003303423658267187704617802022865468896659348273231259952413098652902394769389419879570195195153922078837163682629518045783021685439448292549592801053959114924757006298283177499874210037747283326207387968136184288466322815474270665135100833694308530061291284944944874243840086287997178120329886737316464323934953767499923166716156490454558568268970381284643292767409982303383151123344878190373277629157446243930740820996699046762886574743123783515417101668230697898785578284413208823273691185449543812152504769116188787567452818056178632676452104469831525782479154513534150562113633920038267693064619202309253787622370730185364280473127028014799277773259129353492925509468842484130661932367644434470714236079771877948722643942508851971064151774087599712248413279396641047229353223404319015067363957515568978039924973085839293052977309738738500323149030579723289827813769277533151296104217862012502280831819396940389081627936920732365969574840104988194597134912724912459576383954158464003581547042617085427717522405384477551454618785171150769455511125434468758065736777140091981576487920361693250619664327951302735019114623390276810955596129233708501969883605642606868098667749957211030077054022084643807411454477781228779291418583928399101135384057978950990154389442406522597539407719293154005514986198038570289033847524985817591930119607167058338050285116634257033888989463974483875224495941903268927457191704604289172620531176237298938280707445937197396742798575582605000524925906461510735856472299937786554338630404235475379081160022420049224269692918222613541245442335986388849422517793531728021989174012819856095179684696031267207254777353084449709372049224282733390359198405346655520246701908739738957754877872193165482423607627282339704604862416514089275778442638895918060867630139033242907280848732648103128331258790050570542219189774338820297547675523404596320568434323845045227714830483543030999448453585016135469946081835747167586854461413757509839784026662743331790958577753440139329205923895688577894458209620290664047029794690085639230436955060283111148412921724642521680943272845003704253634675090716002061955799331294061221002722910967809178222175351078706936802017763801720063925664452705484399177388553157794490117369969708669728998072144446676889850054266810568149688532096897710632707619967569856923103595014538474301414709552354382419288589054418378866270222766088420118735769246750387807130324243686679740201037457091791153470102083428899584039123217539784223696746459248853078743042236520278779721994412463443220649690031734800810658874327149967714399118107222635046025173090043771800513749290182449786194449719472262538495539240476065924187169709567206802657564840085512049872602054530259486800227669590622991991759831423103844091172646305799328028888048541024547004357674725515642163264368246026357796267387479341449255545688925198798381878085649124396466025033857279938148340518584634482637442455716500027983452111328502023309944017517099341516271969175059449200411274790184485103990448988461908617966062764755048714677087618069253568486932024375033805325718318601669002866744599375133569725260556760167743082209673180899899675730930613840634884573377281475048827211499939945114661517060872758347885273948407272330104448252421800857967585269012807847285317136918997449425349207254762515139356897074308036581924209916304515354109357101801054440345026200278181549017811133913280349919445910810741281752409751339507769030063205747475668908777734385064489025141396931363354582415434712135265236216992386021443288451982908815287411989305228016692523005165932725092002678358270553540592503310226586303350602477611130746987072706605657003524841109732969585292637839752779140586091413787972928411800162855929232978299839404303468316432109816071817963916572649216231522599597963590129705310080458829078954967243481300458148036127927522381019525424046618551606380837173307519568292370045811828855672212477504212494562323977833640558035805904958930844949946155456025338533776400449517736093198548968467223008090011742649345232932779899217446460246963869257340503125510114839065015606580838409514669435834719496718150263605483758978651133250350738031245805081573669878309330912523861353831477438548007810821004566107607245561497700055657991594019738680651283267656194712653808411490206113535355439698073913294949894135386046057269960268813023423719284598342209112445863365170910479680339267944334923506489572531624320032503908515588924951859719334312413016863156022223490087984974901285406788180893162487159122675117770421511362975575411802361596770207420723965912826766764232410978950611497007808066185428195734244648768003567073750729373586041628457718850511186234315005527560289979548335364119199135067982191301134380510666234632850575817328485678432410553665836528690913704903708049337788849082824134067831945616362051005321723838386378818591330137572696091471356297587699037085638262236492659239175784402866962656067782821927444826821991082457941855216620504638622732587822997977429038340056685985800644211266169840526997316675205256100461804388958900808994954733291910877721957635105912466631812279773666397105457881570982406970579982832015802199375051936206361838666359457002654897200006181505581916432030226171726091086675771530842830316083143190061568427652808114374137964821996007653465707597412047446205598940206260200097979282248862737017080158244640943712709734925896605327265328313475583565602985023115227683856332472202654440520888987167180694334880255812065275701613112949940909452427188463050379073469827464124297197206975932723928762624025341603085948384453428468005955815803989752062923621495240828807310181651890676972830456829551182857599032425956750983776338393114448946967735706489633177558449141427784606244599855697651598770538493193528995672355822702875920301962775360202879042858690158409628671399808748782322802872822206004765564159292992824231050505910075999335255463279156189818522842979906685130560085175779673925643154475041854062348472485758283816567383928970647056161153981778390924378456505794133523976761828304760052810783317238471879411964430015389638368301799744985854505540194959661318956528789399520736496789754958565498707157686763461398293018744540485990516071117347013567871241376824325300676241010410002486029641790130174502654815446135138409508958433529489009736269242311961833368939707275327263756475211283189208349007899746668660568723716030286082838386904188213598172168873717284900696717333076005223730807417408072663451847593493239917834793398012923252426093271450365359646869150472992339273179346980460940387038133365143363795855323756485369400329501488723048380146381878601305031182873116903704476139047849226585096095207191088775966954877833596808393100766898872894187663877925393063125512712033337230403767574458795887022333394804590904919231499679971485770163242413909247500411802052947617458809368175975630950114544036794687057706895327726414816738049882845817730661314492462282388523856012352269818437767613405082573369379183569860616611690792815532835980935110615757495087581197975480360227481769690942347643933457554338701204735881624220934565494369370523058602492818329529854132008248919714495621142603817322593511297322970969301895215792575167598654430450244392009382239012419924558668445344109123989041896050785523400186756972192750988908177228685577068151629392503488213383778034807444796394426193838779215207365538452949480167867663528362080905557757323170660191720940524067324797098108637994219676759265548688805917611991027729457965929253324237940568957187629631865429941983325722808902191317550325765126630612357813420191128677826622733366176741205769522696118902415112304032939462405643247786906424871114414723211517127585392807997493015567739102712514599089698668604521178539166830282417096106153690313053694905727390866045607300107003728049836115645140421602209113937376316535693313647379553689366923172470679511153480920808512555759732912773691984632554791652663909008390093538897699811233468918957259918723995558140076946429801810549741923411206503625981418800764097926745621785863881398125155081792753405251845474614401631817111389294245824326898393517626560894495772228569157630944758835589271165184959864116332057329103095706802957920603440318405703532341951774815222079410983517429703078489529953242770040904213021971001676244974444586672782978215162630946927494060988534446259663093984525184188945232751986768311299856895234386359596510333550430110709436864223907796208928434159983442012449122351727871826882774249163522850907135407982880517199250519096564939279302427235573012200343750516045134851340567967868115552733050268605809206637846626822832071126635441305825977712889406982498677165121274833943309343127092753457946465719936442572869422888674968913269134021551332406084661499420864262198117734917484753138313559130614521424070700235383089226632950767971486348534512583711605311818505301238179391131852250970767721886786272051234253618986436828367454289845489471356079576312973922176951604866425827656304069352112599482132845291696045028676293663205391985140438217450097826683998914529985038649391837728224335029305753950784236446778460734117112522614961933891150821633995979367421916015616287146407842263465031178280136323545460480037821512414420746456155455359350823682639357059428136513206592640478654894223965790731520677509163533168598360541485831066499202486290103413445943717203266600560375560882276248665607947289558487590613253535940474283615740846308769796325908326973442207617909425795956848437319393639010075989627221581848183258048164629692517587497376361686598991086877944558240439240080071209499064618152645843256614503123676179814706378483478745831907671737629905033081867594644666659621283703345619243202779063187669992995508801049677763079591523898753606948130429711738984704560207080793756124225638948134780830129548633693542394616324677027795451916439392658935002724574752915879278191156722891894843504826424522035876233402823190278779339231420126626969528818233641059761843080837541528921451191470161436381803926827827490189702325364088619321132313277721748561414248495366010677283093088494842278940560171846366051649132946947250515761914311913224219672010301941242206122691444533447277612636788155911449977655095135683939433395897748011790080405462188129045800455158499696306161203484207568818698725500959350853041198892300508936948578404695137844788390333129155432590357269149769621643994442418624869081855177887692485102220034107449663993555671794489332480219057529458891711602728860715696599800822968279467450798779872789371388481563374006548814129425781853369550178637704354168679311767902602506674933993823460614555510244048218016343561738863214846861392903402454679404893474571800467569190348007209621775640564904896382158025818368401792468781295263845376554277612729579390419465684487964918029715184989669835015313402402675794252643687925983638087607188508162281899801818041465423712330023387634459586975519777836853210640440937861946432081621430777341543172014609565724394696493481393182381288727039648720270577345401694379171503677022736969176334431525642432895638845276470823302769189386829834665280320118323281630296703408168033510974906752325353990518083290118488160111685657563308029428617701932633334383049962824596957025947977696297577542990048382338865155666479850741937783381343769158339775996454263726661978308560691926161741075501614537803192326567704349457116547994403256319037382545478606961890020913347342650436249873728127660054789132588733688009247916573851411008419456256083595175478923517363886794961714448287349752320496631374976134267086392665280171367787191929862712898878777719376456216028107600020993977051269336393344539357500025461549205524379601322071100424547913865900136892970612237539089115035740259627205567948736321126034610661759696177233393228834179942411868924918837401681929263879938315754901980858233912001056407632174873890562021156196657075574966792428916732391219767362946795856760967370724513901963083180354771222001327459007899253125504213273460857641473806900067390097516144520395586076149187488383247017089977814890914045841775068129051242124047220796366077664972955782686580579549547337755277596938524153381071952099374061736315416736918016785987378482591547225520245175239402862984968494784274448772103366326311051383969585963313538404606675167886992117493671817342958220055943357260672655224188642263814168410842936301246793122741417712416894773523311601638985382811106387841121123148885272256196233798969603055790159855616132291495562031668732571614219138446079731637433555719901043443675153382859086719350936844273331728888295800348492991921178076027216134632021328379141517500032607591418960612509343621277323529901375218698499098876023727436989257670495009222217607205353533325878665576553028339339119552396096606888245701898845446810419891909181626308049464271975907674237429330546901378440560742457810080135037963295378428578127267573971114915367973326683940791179645378925555171006691958563602067739895534200782182613858833890648263516290472824176966227585109815746777850964228022325977549233201410377538128409493799470395424889234474749866003126503826883456320164442502785876244845483439543232009884317030533614554927762205836039420895252670675055680418757762842308825026579521435547091635627597652688542326520195799692854634208696833321755157913990834847236068963316420943488194658668052975497996137033693912250692245176868646050220933448388391244328139080695501736046483106015057679280881649385892273284551496217560039037271775650146113715821069810544468702142217824549413899250238734843758620764232572005505328673245693182040102768909844153006369895458029507636217192697125314750098310463721139993553931472617139944230210781588704554427067037694522678278054641722735296800792124239703035997024250292114243448049931326451586474435523509588392191900717294145232557042437362115513792541723340715212285244243142895824235127109393912595686622254198572555939613958651941592666798148606812091220388269492531912783190830029848703982214702034052258290829761165601913640806248757671743016410468044934377749783040426076114269353087367289951499446181010885379746150954741454749316760216003864474092174632087482145388045467794650840224297667571786688482532828332808368114287427362801821632443495121728136336407925872953771423016926538983754012385665453305083226461580597055377803506590087574068373640801998071918236209203684859389277539298763756978544706147239212577290264380510846634092294519715266151694014647418112603329178213904907036962497846039546172275422010983722976760496058513029354688278365816123634031596586201293649900292350473325942858647373044513883382667129796552355326604396393006983454582645193841163473087353478859668065734956987051317145506134966638694924267564615747106052142801752060184656146933138837494309413324733721895899969578551203254435102030533846069998782113428125129718452275026440852653308772113968785847050027248420061861014287268967143458137790531729719029304056003281399581289409712864987796249257937632389899207229461294962783789127950978959559636545019669793336284779084591977318034456965370438397497933665374002561310019987041568767295469840105156708449882807708004352326398945927578133227932753383431119465640961298723035439614210523182689983672160554676323845375810530257969084989854408055806066612687315284904120924734202547323618386483534103823636442076705628650296178785462518170580528434126068470365471220656395248253909090167210462995179104104985742839772136723419821298037169472919634772595455986833631314089296848540497879609787186832721087090357263019345188039172522678562432372910124977897696144031555316608310519006778684793349908142873315468880856065039515103725306440243709799958250933532168145327587911735807186197872960572867165992508410952292120568318014491815901630862368584663740134362855572519761134742540734419110961199775378506474198399554869017132238715962999438471363972492988044409128841014005305456232625641683729728787476658341741353730386905051508002838788172431960907440928903415653762328604655302210530549045850249972349295035036035619957085241922587526142839842139581549688764214564136733634282482103728774902172701799274027981068849865897332765137849937864969320376747505832419997526363094588936496744323774972417119755067796761860741927699876666713637065533359854483112529787258239329130750994587497550671686254487315419673446629112730352107613496383385680540946822328076850002202250873192267321553786471490527183715347100671452457961603302155653100868222486724398235706199989997812519570861174010925987340658549215074471814158225055314267986037480092489714477908946129757628450204987868198587347488924506356792592865062294319469936863868144107285551589534854349383874289779560797339785079482263260150519752693089317790809654322889970118054769042251937318212767749427581668910628242103817149351256765651698898089375808935092205113097376366038242579355714084762609268722625033128069891379628500559930831297283440012343840515482756942312935263920778835740747386652512654366924870587300713381617927683548884223447931396782948340330139447462005911385656335543033401558063294835139838351148944935028448513742492544085085359527548592823147771334491076784525990670027016263124372013781817830415107849996622242463386409257305606338751722426049045584397105263955596743497376626212669284705822772505685720066654324633005942178535537817957307086386640517705793004541032302530669903591481505136127862118974999399820209444236038603343837233660121827338169336724988880855426961470410248923000350298216923461107492558540523306010724704402688195069569269583680309930960845807591103948851647181947530824436007445489375954381293386905935456490934520174638374425757417537976511324140773065033104767094296137009665308491239105794941399639129896671389541766206576812042446930682899901303611530374152973994321521321397080663275096543293454349983300666198801876535814904235359313623375735974033887085496518649312580409834648447499857971217891166864871259426120423422629217923515226474890843210302471724870530449963592263560921388565701905042751248487414186154061693592430635010739332422776213909759260336666223708392300954699310019731161341378678451379672753627791767861523637892544260293824412902554681461349085058477410693533851395701112124018678441793319877897180277484712976798725948540447055798649305422302570734695879921148849298539397296018573200408851945466939250555376747779952982534071674554566595502169735804618726950263512023900740888339166760128357187237812744852490223465476291573666752795421211693931289128731373495471336417055549658228116981473759829093497163869417345830875186314973108591571413320041699928529147950676651729616470783943131996790849789453153940929149037479765146533525715190767695030016145405871283021527173821870210539222295371289495583540169070032458797148804590454522879809428718032857872288473465698279718578967268333971816351005364931346811091248265159291017072784086803575577406831797111522215359574865814312838990355349342899250134753445052586146844004533643545236207996585349729338672628781175085515031523826750794827992503366416839230678201043873061209552464687717648282045698361994141558564700188439601007906118807941703736401232373542813919624398031734780084602092335828443011003428920829267183987849087211207066152655823520716497914888593027257805582984763043083056955276222641569873326939549558315793054925186980538431682649101973641425936026703103779538914871502940278741005973412233657152487823866304884525196385101084272303702888992286832008317475254205484658629769294889235909921908704302273343205944491017773166312636091529043200000802827246614378520752168867553536188767315423102433854744548722712278787486066318527814830555337418743673918302065337380278533155527732956375251038078575705893315862792454647171570500833514670148986615736924264088237959747139123239993349011215471463669184147261074357783056198461399442050771644041912905170639382874256819333262965918866228512993914042215013707061838899633322035030671892513118823676841373201095615995592994070224991802014270428607353298403575461550626748247699755704741857235470622217570215963513378178855414689241189946247839751818045545246580334586566012704901244181965006730815378371176151013192617093019913164660295647395324592590580896894892874528986247504169973624846642060619574708152608995374056122533540927985511264288599225199407825421109159787694285718085327929101272651062141490850749183113711113082805417227282422241734575670264121912001244652116541026844208981346049635850586100821653979063934614537390451378777697001710245716170134055874918647319262626732736447330762546198984084745018235059671187715043270923874036719790724898473310225700854917015036723138122018312756939295374813123756430006666471772058847197933633120361863328571418186909589086840955457599218864811257344224547764460887180462955936896664766937878369999498547445556344968758961614985997880854770567522467061387790090912624647149080298027751658688422695317182444343339513891238205024561678643881755195200376534820290001547567995334499353096519256240890027833693901581650320368084691467526259470218486827349359076622591000053140070196465321806070144150962824904328358019449393982516947388966715103875555213588722139844392555086372418797218109987881209456923409998295194364648540079416723912545747416326660136763996179422273070433965813166728266827751439608759490142907043984689514706025801449136282839598323418300405197702563303206835511700916897579926094389552843847581057294029867821707695821668602675003991733488779514871311567119393705801855155989836704097264043680350077811930583436437141644714143236553757026607548785158978866620877550983221318335867876261277465211611478905000831939051364046090302227783035426147473262492530997324327197572521479709360612134366820983645305727746471498647354559537900398075256614600795130162613228728017505207601901480101416254693397477072152936061403652528280769032713153389198917839004795959801192953012815955851107203940903236744540743589535789584229900541049318226068691380575196283061952494932829564258627348392879088629093977414523456764619877424484946002293007536580793043904218321120284940070008447019545172885857234219310250151736130723957920667596180166672277760614159536580260893159973649280262534675449183102005548191049502527863096737531925572593873423663934404010572942748379239365486953058640251124712282003737458489365932119406880785791906576001890798271824534278083230853221527962932271666334981103158487848850212529834536987985003797662763696635117826678691358921252449335655049000289347370347932126018098217019227045764909809520470660121681984343578390595830118507235133977753663513573908036061803545352013774364545042338197725458208001268476633222020472673382791843695001289575855822699162609116997793603620324477250199767143363831075191459875379848509538637418456229817044251077810857209511048582390191336728009085932335327208415536308270548031363826309227202744704996701298405646769859074663329713254083588829004844094457339358010356206380123044851302656226770905321763964917717023178144970281120994437888042204899808162016395702654550657776484636509147638018466642076847540444168114700832413988888473201590474230144914938938480217372887199922605947314532641149959371075009561108310422554431437448648923888622224865649896801929443575380061649394665888285004347484361000122779149022075876355065469630375463937713921254089768182308760246204676704466436723049592652846318566822332768436590971835721356384175458275141967008558427771673994052557319233897484362343833643081478979703975708372120953671149944583383285736006572831376850083710397583883256226607622327101774022684681056743727344685371070269997346679898313430017299480501352773874526949968897307750593014940402921429454685332868538934655863588886466646972840779571875172715980249083356804651315390818113831320488106697413172074744703792579418223665366733743141943194748598541463850140749093404110314381735333032433004330228133247831203775008068184408481179453517349595141572966829205155553753703163464181749278087333526201394137699002582218512736507134242410868774805198194321179000403880166547223500184955936986865822025366005560700903949784063145825463519370194783436621246644217906333887458062058270647997044349920836549280753103983200841338252650114003188853948626993922768452677112901813294688711306423870424609138774173706622272251737309799838106650445185798519737623659256419985895392253420076030466549756889757393740001365492366340602510925131118035225776610937497398001077610976796357889080255800991742961001080531192614342229706087227873751843635761127417089092439674306345973617404427407470019437856978509063897570465952734542235389914459431606954533921615067737208388372466535934303359542015154017110606487697366958249783268577711637984522993304012837577854522607106391178571485225418790913703858848302749731650524013240648795209117947818295872910976696004282887340513744677455102704673465172198668565716272983073619650596071684451526008286970697257801172103118268109305994311559943635281249366324497511940661626213869934145695040436473868898479034687274626913486338046336277054390950836445410619102761188993742191087678760796764413702833240747328501936295828389692161947919025656048793332861185292236072713629624673194410130919007263238945083961319720213556894041301376427513890600437422338899724917039352999386724687484003296626889270255100531343845896306691824702239362074855815216002644575331428709703398745217853716185739219670017181341913368823004360255876366050050185428465611756630270691055186389769187857313562924931055366959869247460279767758108874963763919106709845875172933576425316797239865630275084090846914123953001356369766122206248173523770598962864580277636043727314295235539339225973584966393639267826305009506214243585752855789477481549145576600299065149191817453568391611600485162823177469851602288542160531403880319096191638676033804898960340769187683271012486404458139694640200772640732063902970651595956447394738049313529114399616078799339124999608708157473440012298566209049254319386325584618512805256591244489492129845983004783281063768622888278123653881339853887976550740678312967616067940231223876466264682922040966708294971892067089622004203936886040427032251895795379698610355267050540955062165665922374115824357882173650495840870495063930788868692060481139354399305411447365799183294038301649418991253593546128059430394672841663950287420104296399214221071509155715783892852882102640602405355085092837544142068679943209918190987454763555029459141042125728350640917526346037439726199868131687995115836087402212821121439640988063699413953912482012435772083753276316636514769552547212007063277251357246036862364834305270782347305621182496707780767311335900660920752576629031899852124299300021487473119948066070990599677891931806532350834372693153344222203509077159721090351164305086169125430706908020138827515535525906696503275510181401119367676642177141638637298452751397455620774955505727842467491995738025902936950858281013975106464142111180325828737898440808500609507856433794380952305716557347712138058988215486454728639813957776673548032855691560623588715879346001304032173400783533221682806596392020002327516815528159892483476468579399632015359923753327728167305216042504113297522711188692611820341385964151063787639189351286090309349405242911141285874923507778948867756281044319691363696127802185411847512556083531694763500235057980734401585894424896719809522890810736139688810211356449640700477801122904747966137435029896642881694099271703425462580694165863357042593191555206769111384511137482870925761371665492231379906129565555901239518170908326326890517652191425091594012519535478078662512834902934094617412134157418817455625137753441348649331020167830982444773848944696327347387977431812759043351741334376729254627382846547479206629079681901869567133020429953806886584384112396389926984739775586397613022689070568323750859613725691647321682160878957092299700953996709366676388757829085869996643024988805571573486817833921419223822322564347551790122871331308136716147493238914759602536582030914601223116384933890051157225708361623536946401312189183538588713535103815368766389699106163982154712919432385041684346399908671593953450503301865643908962086715908173617521684382532954606267238400529297042724589756500881466932112888338806943554606639357568110350117831503297846459484881717734986088117896914934117281367267917142319173870339410536361801645222193103317199272794366758671873728413435512437502027709180820621046671343358586245485309664360712329753533359863016949011332021007360325539929108955443941460795109318450443539208882185773475076903076623590111158649657304866158311810449716979210303127388280594993226254759763561163994785654976095536779113145074445707230547174204230269896689734475572678029491640579818214129328523728338799022032516141114582827769399129699170232449398750857922050838413039350696959997285366231130107946566507366373470936924990129890476907286963989604818956988616843638776697053501778434923323467841386905037734139373051540805032342896315723761919274944279836121431884089029193071933701156491381367056258851979678705654163762483093385185734450117792877436583329061998256011746971445406789658242208420087842816199514234269385239869909310472262948600797317374661242044089940839087060098630042045359649802277547732188455615489597874427776763520320799379458303484422338928158612596524704784546285620239929812674410896695672418206638539571250340816500891408240126325828034311109764623743675912329056304204495062421622701703329538037093653494265122994729129808796617652177701195164890871600690329991569695346404403719301810736743417386569690798375690667229955148391589075801070451212239416137354582727727313765412292320123426801148561627524779697783768099477190171278730577372141514117702904587499761289852647469822315215784823671165858503686883084215034324344856856058937770570080066446461101833452119544509966271544411773127423402839833858840142477607008231110031670796307305013424531935231959552635314283249480878176507843540693519858569871562339938513631407816561860709104799479246336974821948080816606482771985091737630474164618420218823515429239713602382803069872214156526764912576727058109717065462410384974056366380242572298283487771926824533175868546866421904247883530140924885301737444816893081800681846182631523772537412684025554916483986579447427665564392799091983645725442178530187939679666840670330565760083100872447674673973099173918265644886904224618760511772495155275137060585987991460364235515022084502878383555057973833762157656423466244584764575891885616570658175107024499938778076872190803759303180675885383911149582158052211575905282800350693612591430126448671941018102695195022260715903798266754686882748655641853119730733874364977059441851155753391506796044621379287808189090500587326099449918278567168144891973928645287628004175034650498826920062902101365623996573097779085908135318555249514628197394772585421045625987161736964112779270738704934816825848198462641561336147877014323165523159132951126564615663308068987370559212110973113635399330039037008962401351057566479615746528675069669642203540904214327978979541994652188049825893542272203070664547038405127255319599820021742815352493611069897909020990649466207207917855246495452989197064995437349518890140252788266397528555311935167645742095350530432831865898847962470217930156439995636444759617304860257688009087707207324485877348561879315849123454644025800409795976268442352863304938261456694877561894090191852579937537529212154957072917025407997134969269841216419254382475597738287594477093776853338125987711366067693739889582247256116796527161440604984551040791178068523924380041452793216507040748707429324051446196354504484312808909509864799346935400840090615086829175219026037133620051994039397281189230788265685424722245932630318602562848648115651571405411765897095990255015569592618175748682415911714335477024544647000861923809987951103030862900581210319591958722632005854610780146365604109908499031960539187885797664710203362941641470134881104715732587291118480555302105518882836672649033607311547788676800017245960980702609939909151893319243448817546463650203787875801921096355642902369473599015040981954126423865267350733900457052272287721397379550808183493269214828878024018995921619487126332928588703667843149708649821219593137451883199770944278640659746406510800122829142718327224545595790874841708232892185694143617014963192664920052900904929025271936320624311905678618462271989593402994833834083450564148898387723775413005317878320039123975315600403121664500509845171176231383689674253745985677331874530061524638185620657813711651212528114669278220765148507281971733543439814712981327351957137566341424475144428750434865558560291020902176598274589752214393403865249612150314864730558433479135188644571278048155581043047239936084812512416173529148796010026458683185998963567273333818382730552270601540461317990883781054979677186199453257137108625138239598992676227272448390381757108902544794368349747354295385863859525960290015751769801396338793400889052114009129217962927964111463257835154426258310087357492074690758955108246395616875155265260906155334992731113725135655409405490703126108103672137163263925982848134343245351373783732322139241122674945205706357806425183373908337998433383215996676282621867439334871534615917285073659473041554018801131617824535997217202464281556217801441088209310078664371152525015108198666735936506082171201645731651236645746219393640964265021666413949701424514556468703812649563969369527422186603145388515903721997057901093559535915275620541418912598748401636244722020169847875958258343542538120032242345844415193428804149888499213442606120797440765396160397449979088053948622330564002465606603266585503532822427149346687001428933968095133836967492808579421529534644995246453518513980782419012389203701509304496882696112305082916739401910445399102688610592801999985463213355806729168927484325523172129754005987700005810634379359798688907241615925567259833173468497277076879358929034520747542192631855409456837302810649671639710203188198184316632042208649251915250961623516503768793935609457154839467010008620272576143832757291343664401113829913266274374629431692417224113796351828952380955873366289368942699652480831225268338992945408723517135300707208291292902134820766328129541389639052596861402132393969134553742117620351034519925517812439060738721225033540841983409959660944853010855343484129119195343616128988774539641192069541184668870852003833373384832273877142507940728319815178086907675975665148417823951483926358242182476101173826722047233264703558710769377065659811647711248936000388300536618811492166398967850640508137309078873026079261250380818840031507430547744917237365504427034535964238595467634691661733970695822705441145737480225070588132532263305739192629840024112645647189529204632542107714439994488574766196517253077303437930315451580065119600549919353336745460327942852551158777350679159415154247100991529014073489909590772522881664512826537622174477029937601516251952487851173801711054034759400940777512656197602776725672763239263565831787910408965476224860213707920933659046387098360218167653435545646288261312069959028842120204272333954465531613570460849462711080757641021595042212063092998356811894824188305006097855787299737733269386563523958031967312898603673469670416234893973903774456126567212779081998262202279306924443874675145415991304049437612601318384860104758302057019621640386767354233852195247361617799725455353275035522546530275125421595189677764775951436972313442762197249064159136137575215285659668381182989665280547493490620929240921417906004803906561064114783685278764431551080949675387961373080503831913798076689493879585178631850538010238713144605696109264366261002283407432888883550112924525110455747095543502331672538959114863244194999301826850489965941979203702535687895857798853916661042461705052139918534763121654748305895128168175814166810858797213082965052451036127735676041867193659804704055979661344676075603870506747924368442126194779672086187907880294615557855768530763879547978496401441585561944464564153249009118265309409146867065546699161619139823087306548969625937603590966915331324918976559006875126085108790751002388384462380922668797081158608074419536551775137611501369544765736141471478063763145714474977941889937607125957002115285274020544856689613732819142678753344872564168102305149041632195071365080307044392608264234293460577144028957076435290556204166371703333169611524303111242728707119668306219544925130173617678131850507153971951275067180540825114230987737275634757765798227287334354108299892392212956950176188204838850321628623837361052261539066295616488917584030009623572701769793062289744051007934020147556917160878134775572122765888639601895621298111513361732654665214779561555550478505411856911112595445744546619070476783689752911438409891255557639342455362735828267769198882368418333350456597708278372669124757100448985869602119567536114697527922130546576916645273626395904727640988642360388547894715105550681025398734513695509016042664808790464542838733164262431522679030327791384772562070662222971530035956285677010681004471172520400685609144305328825970716858786980369775300261261170428737336784355233947935631606769895476500421896998435977387110184720557331648375883425153988403884310095980262798686640104770128087072101820115337849283786756402877665988585961740924901169719069323927468577651382467450260167933530874822487869071507961322014121787161644590119974390791310362164222742168613533305494504980972589047831499972203904077461897459729708722155579423248336307408279997158961587899058098704364982869395510274557931942246499052686254275907304277719833383802537921228159045784492302365870018259884351851877244549525895272419531413425728031693940566314406377853825018724828669835795366874266805990996744547825907201111188788682741113358414103873869283310917200594564349219455235639540034429764555067641709274805480112024581102877384058488801946117309834141855416480194742408272620368009704615362308771336180028893043229612349457805694601438127673733923541086649699834308286963544258633624534820937592552607177020918096720970602966857452578569391922826260761486219793574436513761351375680081374318543009817014946089756630190361992039373639182570217028520171284716611319317962628381246592027701746098265759237772272112245961516815545172613005605987726269001113903436762415030142703728803283700346378639947502851129982512703876277983851042944754352229593485850176620860140222005505219701379612268351294498735069335600920824776038207893201490375231788751310569897605995049101255875976433540215882450308341693516543791151635100014077202418181271346664958110700223925671668606819972183295163182197963087082435818791407590558507018496842001474339124018361859138808676687461187690400741548311370925225112871075182042535741932405901672784915820832144036736362162163439321329792348608240228534321744590322728854954420873095718408506867812381958121722710523305133946507106588624304507198044453932211766445171695057417847090652559655337352727028249909402071164833311919595094772188488834533752131316817607841918494181250499016358725645380910685780359000880509291004071648808465504330040547350212309739879470709877927294338758263214174800701262704979304798213303338669294467580630202626867164765246941178913398775119593232514788600809782828797212975226936949604613817575013399928632171417143227765980233421799936133614088291870484030284872166825191225830772857164057961789982287878873317962994310201137853666228690308455464816149845471256054145299406107078930806983552934365998077728599708356697607018223672009315199139353455520156866094016792040294184960617888438579113981283416614873644919109280013694462377918988332505044875326790885033086653197571523750687709693314984373446536226856325177752849994734585858929311082142840374550517805272278574593257640112723862733273948959160735787551786792133507813457491969046366448635878751690571581110635852171244814081111484324158047374347222969172600612704365603925825531645118870535705374699197268013537097355749591822753150400862344844035013173953221518319150097250547563169698340782967249350015835838366321219549449765913626251047586219682942872982304414739260411834792330882864167440450338046378991935365795508326354011498276894095629191472476020300440540012670926784090971367860130133701073914590415227931585085803924953843063330146671279813615224882785566462296364928644012515975464460604908294571527237081141731941968319237342899149310807588090024629123533925410547194311170149011815662522206032042015532747119671456836635494052128769172154991981014589111191665365394249096523801626133519001873887496313752698094339615430075073974872958786553595469108350935578924312390550355779016578669511037697576148301580313178495826509623053424157242222123142445045774615083827368557553820794299919211342589476778107149985266362496123625652381698630791630860776474089201992403234216183601940618688682012373902404154646552612766817224389497342167214883086599866446385564362940120637075863833824008614047004606384022728030928178104952670196395900993933302593491235583506336329825306757802813372698727611853738580745253209751587985695991058076091365243479877743736690639702935375188212577411133698633717452742186800810214949080445835828669831962056960559651077035216621492129982439845666260812970894942162924523565533276664278224750682494779337021065598334998376266501878944765984715116341171261455813581092647042612696982343840963576463825018463575173861732761982094038845897876508538119872614190253535297723775358072235879956965198758846939675424045656246411549843447672006865600313600340920479328567372736568319591146291290121604732837965808024275442884153287615120350199780547761608107627599604200835471225260412727765809160183286950007461686354056505840178836999561304447211360066710658986284075372156137591721045368444990072638617885376078311161891621274236744948734821263482464116828406848174405754225803558027420872646650845426116821048112435828497373193460580400538252829428556361158800544095735537557808414976939142041999769098279444530780273935606323279817821782035549098187750569444480497770017815260416283415640902381937752170976052465069565336730683508330627207273509824580854017798558994925642278026004771583512197313696854304100418287149963427990308439679355594465562135758627231333006721431079444221731177030791613399771683045468249755250651266349203635975829809186516285136959858390969968335505568939842068349390079186741534995545042552543666842978500057088485194423973231982243842073044515612789232641556183532781587224401026290985795173932668020314909112531543651152166782971317543634434707375787340020334048157421692260019536773638602041896439335959350180538896009973544579168312192837074019535005333825652257743222828497554342947960442828743184387374233833906489343409124100638520678161679165767824452197619077533030998565295088081277282707502859116224510222623412647949878457252148212090759617216625523060514337058429861672363452099239746377307307669119920286586096194953050330185938958312615360084801056107985015128372517575965472868728885106086081480051946467248639112496966183987481994438039335707125431310168363704772148293478082211613585317994494200340965856623428173839517626858194072822899292470113738144557445545013581880469733502040688289171255488365292173899615756225986213400884966434430024288407230459097188615070964096743801385285636074798013281272720711203437015320679971581641748012089619409209128643023086122286881918263932414845786779550950500875378761504723683371611194074190766481728123658183574511888636508574784132447305547143227364133203022647922926492048896952138251313666901618369259639118429442693112847119429349611595845157003627529254640923105801509544395433022441843195435741228028292810197534116685215462602266910199118403041568181035738679584404614778772610928900736317493852181917576983210373052130379144419197846192103947276560482086181460902107758882934971676181172490421825941641732514005087359505994860119630242625242097468917011002293167515272435494904691446303166582269193825830807249667803377891912887453061397850726102741369563960055768492718936721660135240978676997523878388878972327270599594423606486289882584508311196502219078542120916992691555642929161575474216065254002003078871611621663622058476066661040006459716885332563064973361709491599703711189565222548382175486818809745282796099196639097653383721437235359711491549604681091320015169915277238661823282839177315212782878378676727383368647285966529156129251577357653488199452540153013915785360745472391461340515987197464676369257981520533026289365857262248157163499822742315026568238166510728884228824489159303370945084180437457967753294434197995064022617217509475887400115287661582442685693470998704705403084463178106053245332769392992052165624102862729963247469454395460131567915984136387979132333225141044947413355474113042765721927330549497689536842433572119591747336440516885560329667570035165700372685077121823968741035257529023944753206802590905116002566150637356727538688012101517754622990862867303103168357937039357156447932255328953416950746240176384689883785387696139080060782151320970896318108020982750958155916006831250321376157679557526557674868409110267066130085820083642498149177078585330594891856106885103101644762791491661532224662487646051755995244284865303195629179601309582356272095691550557006323431791836139478816852267210712023176303183397915868321543067094851588270256274983942050317181670473005318202307554148086806848917535516915413834729018257513120191739530835130100318847603660926721682931171024189569484031155273007756606187958060351621297333707733583383204425920244767869435043230595193655615085507714606271082165479636363284958074162678525744913348754131755550260037601898366391799505491155406768811800528621772142561569153205445549587526368418130944470693475436771256026908443525240190506194329552358501032658230670942488364357542844460977568198545109728414552781997035657413371396480782678159520975953038025697142844029668668760875478792577020536417881645431124261608250475328383719335605820106848517343379127056734984647447262215000720032258314543889904198071131852258504472419257540359704290862743360015604715636169584675474377426754000917379861143296407044257450029753562934524864316031841289080741125575760360387189426983792732410228591499195485739425745912792664751286956862873753262088857333227749576959718576912511278445118573172590327266768806806378002345389406348106855740960760848323740605878537077156038515532571070535138011897529356210273904525350259523773416029763845107716353560640154342777307938177391413671501637452579409332286091834819109011882307984843736716242280983953753562935629557840473573435268632273790149445547231359781255567476700225016487320387678352799668071748030914391625678639915678832918777349830946431212824625084883649860490517468948394775964109004462687695383897104572442479397446762447814822342600284370044415176426202951752096700492209431560874730339593384228446220764155861282957093921387756760979750285339451331089000451097952309436756411573712991910946556730964020337155678920320835217034306000699129087887715960718765222603055262774090258557205797796860669409444410901050192119679305137992561434856406397864542890944346006156688268220463308419199893621057689774220213753897648635478312982931939263296151985637927540447808536593312643494083222160101842583368856347488521356456607921154781074495843802387447926389108477701368500083193327065444118376653282847872736904148757359764093482144346630805292570694561261377336137039279988732348397685432075965404462362574899119163327425946437626490069892370259432951094304294931842832726102370025481635168098239806927794344752685446823495544155045745745151491639125218395185429153891878404157468905381282630446191341463766328280929577911069994685679043674742016091305934722363708503083870921719183516654430199909256775187749498326088705785044314225577743568130819070622694542982259761669581064891562426176841468085213274664719625059225919957261854243331424311139753458256839452841391575046112316967123901451352091071812405204880728925634115450200122158720037028057877880227247177536267670310732078499958147583928789445247378169729977535573213756163525375963144036228451606554431775886519927067301693238718769557814066584723147123568229534530990037687509269598711410801018204362267584530713568533962722739229239413718168518685561803517648456742770551170484468592587590183071356996287739013561409885851367410978754701888889374590910078876915511995604642476859927798707993872129245101236127266112904638298590436430709966930643931816512721819681395271179490584450025496475221849392287078553417638742771269035955596108821904733155382466346617656066488194045698872947661244918158965207730844809572699258472363639351070016615122869404785801644574506278278339038910809887173502526459524931114105308842752452257509884569340517078816383837200689231141076230488971227596945055746649346217407750963025547685165674091831513019820158433545052440690425668139921459230348875044781461276164866001832225880647387714157570669238441967121017844885733849798506957909196179356776305700145495718872584501405334747449323221132358283464907859418321685899269966249842119436825719775930582660840392946793640551206709579645225635181039469786057365797841340522473595985599509527239485631301894344298168781225581141727120528114412678866206800997369389180232359316517019331765805712782274480047992932987682726312211130300719494745720329952550082532004776685954963778400992280109830447197738005579691127455514613447338312143599642617891958578596225388698941540273276702909739015008759840499053263349382435240373505704239838121650715943267856977393802316739056264837503229843733206229391352475717786726888028233529389974171463203483220608856075922776968996286013451211596242142951023392108372545829561582811091212355740203502396745035859075190214306972895762787388724599735948744369568511987243660645057957264746576350454647532548559825811052010337003685876537220569782490413738245973456942146384426488186986865181925424097992813620656329058537395371015212609746082830569568439746446960002606494837565956669537360405483935408522654935659463894715513457271974673188030238208576810668972353724615397356568475927237103226649927499990860738039499058475403198038584341658386396103279708203507107613581289784213922164435246639362514093973049348447894468271110380843156000015330362730530986497265456181829069936666608225436203482826456317549954117695341805568495749412841843361869361589198924051160227368414413017997612002786036834936403970063426081321855656099505735538961594684784520750831745918489439749818208088266848102257733901048844038898391397652425368675821812390740166265406657370197314002635693125351005162943759734851948162485378754067207654693741966678377619745476078683273177474705042757500615722195461603793020067157744395782927828598586901998073088574713932775033736269018693966407151832158622957297560986640263382805198742583306159418124599749319675291214854565235092551345415367278992652135751614741759660750638688088341990693501345343910900825984567784444668451186394842798557455337654518106440595554117893320231318750595291310577334360867601057403488252211496999220029826234471725455844543649109851723472258758307127052832102328523145127957622413320872497787383105965490606856748772364155878633893135940356058673216640535587299263738892129523382893484558495857472506008465674769648260588450605207345318651862346971960013828409228125200946462618179970223878838800060157833197856146055479200371516006345906038084696443837686939106957243810124424687072169301832380637837593031989291665383772558849138073600356534800589625977314917154209667601457230248714000437507543343362200396530426342370634292550000273338492795485323030394799445815210210433910968172769002396185289611184591794206360669011100519121423194494823680062460583240067996763057217676227017034303318778398121654920816743024573834647485135099094792799552845962077448769584543223495720218068961197630032772592940909170188040257028584974217400098685946299391639579126594389661546756038123178929392188159157388253195121147592461134587131115926800055883007840067688107267002353166942066360630476800952209769895830266511694316860054774376190133533589743135133102977281114098814047910071093173553123425231593032892728236963120881914946483965557990060962222494904327764643936966996219738743280253144434143463488181480335516759344291366222857859770322092605820772008118739686691005966158341995974756430460664471262341491675974786656920797096995679183484222690358958232058778003160836158430248011921185581781741701710763609664688781743159815064965509366067811563512824954638703905540361672863617516924224325770271921309432231315173757353604879971666894334698956185049435232421023886031541526281212609433998526890902569893838096171212263740965527429062000497662834082024016381582937892683651704875869527512991524273084850651530034257737221822414080333014919979136862685918208723180421578119285872357568736541979250983190412562920508659548090217334184773289901971784592720428324376793628995323750390260368951659400485733432487552496236244165328299173884623775848800313834129763685643766920205685257594932949516373390807633314448983345238126913677949409505987287129821853468923395464236077449085310691770212553041358100588657981487663723367087103556837715632479618516173074680629198470440896202996921068704343764194484963338345872495617792215893464566953626007385280487169781754074987184409606554959517177911054660754835991929033843790532968008475104612196497434241541621311750584889247480616796421712112873633388846793493010316234358398758467934951073707383086451885960180885444327420718701778529235637749787523627671636024802165331937991319230056023980195057178313525514360748920226234320252514204286507759325863086111430826212467369472863752262829034106387724739342204619220926616178604173092394538565568740051026660783370576798279472645325131983519793774598503490772720423603705710014985133203783531484989860927335905673228898226065174799079362983802255655991327551730647467174087177477843404703076348707493468225117298819796837213306707413084719020701693464337513492407035134721565628607419863500291746617500930248491847288326024649867198461208143470323778385845181633034371727768980521080860184140171962806537161445622089218780553351687469750075144836856584456587158787260392451754037651377573087272820915995372553079344951334188370654911427869598537879649189449088749677367916624843305946101177215973878563172656191427399973385020882739923935157974767431458481736639098392062706773618374827562085293981596259868380522671391754591326370187816897555790401312001531363079707536073271659776556423407065873112671060308113074608741728167601684655184041938116886221104477214454613921449371405090577843830646088736643620906028432555190977755514484145235454163048264263310230378817684855297599251167185930081823311499534660186472258081500171198227836027932445225698263460557496013007483948394782097350949795955637795324775065290645077798773559844321366113178867622201303222485288296166847825706524315090719350027376785752244415305235732375596042557433365154109969809791871842854974750677436962607399284794882551616086143003708772899405354178328644499385219151347585209527520386257253594639152632112664092453612711669386248966201819098605204663471720979817552415311175792000350775795216098381778455300102407733247926943356429290402974776665054708189870278780297265505147979927435222441764257264487579167529067003319731580072246993940655752969304174862180255821107156732548871314822225432053945307573285248399255734683372233994061890620100299995425180040203685683197075734286248726642664216699684719912815261342312222621370029452927635230472991053673509962457826960933388088639109988165698520744399988266253310826244113993527800840996630062664231276036431347664118175525112733689319766444847473956344159022487479706768698482014591537979274124103208805612673079730055667916557036639721399704255840964881919079680030875263272006002617387569737819352026168260611212432550924664845228550530048543947579723280364770143676447974644777091536744851416224452989187625848497761940178385433694122411131146694397274915161424381334255645940992784924457124383838900936927907041963618507569271743959802672415614785421693349044860393573533573817411642660884257972235932103164568107797013259537417663917844689054202198958460542803870765764408239351606761967768641976919931753796611077876137302427560886462582206043025056977931790348129299479355264433164839008929861468522146461081407310706166290868821622941978228988510792819167692277575867079418462328074511955868573443850004980395622949181672458744235999135958255517320110639303120853678401965854881932013540141855098969486599564206964900078417810598407397088309944962240786648096120189598509986966072351401398859983476149014677190854817205187412568345344019823428442024868309260485649642645334013571887983138167849353683587860383422822187563349896686426044211319243149094070765734243830862600000989505331986681592079172481570989562004864522691502645500767177310571664920261856163095728087611636190793109461550000960850745487330737530856815134699293052148029603995643323806468389945293233117970556685341975767270174160569957636546916519021746197169575573429221377391200952404595115346956221004951526070217777385077662669987224228191290411487202508286657896626426444785388623861181217360504904060547413483122085249183676203021429942769922696373837982502850554004525227608474632833355289731755617221239665064722424566303584676278588607985154016022408038373386841109876004902894127182103035811842984980683315896834068238335016095734229564047274834249639809284477516285292686993438355024269728070919047014704377694681374457363029561482836111846787139922090484789248856598548986977764354437134556563371248152588706618475715123619862195539148070593146242893071662581896437162177614104598596017299501916164689263745205591402923535677736312656976082118062751957404120291214970168245837655927200194628185968784661656904002091421342446875486168344566939856324791266689155556993797117182465415153565200514188328908928603017969927966942720225028771780158366659434494004028887917351794106494819594074090941639865577084835001581512616237256213280057963820578678456124168618588884099884890403143582298877546914849345814264806064605470555010762185631820646430248326160616367463613724911846362225680323343872987230454419582131522397738027795728834220307746748640810530320989895525148472807479298012685974802249043646719813245074789209495090276144078901826222249974870945314790113667513035215657958353237753262079894180179423884475128248388863075755720553263552545189068384444367007377541512752355254616606204307334266394762087771158164078419907916832926944042013855091375083328813801275239563396771629905653902767735975997210583747924768119767277986993653356008686808225036309237875022031613005339995692555814818369122105106111547861074366689833197515495451605073431757007224120193198551659166513956301296955184533109180026777189821373306309578514109292337549145160861668552696880221548348554393306860046822931894244481239841402342088288598808291998440482136528297261524353153054101598012294697521148086786205925379353953315188547687462472216766789737772314607702054933847166283571909759887659687631508234996809417924683488556515019659585609345553487876794177640765353383968854602704865760866466728386735262106745228369789768853507801038411147158991639074756549082610150376218157805409484264762869822648248882195682105739888657552828504992675071065815428499875802103677159603119197819567689506418745888124445915040659304197444927376072432519839092486166587306119562175870234092170837607230425715027012486637000178694365186785498138792803972625148227726884796530807698088178905035024338295618075704243141789627406129267038271178063816643511151744648756771670521248507875108241438882478525061454431035740266964131416863191263465113783529086885936547095632096769948128209134859751410041003909186489426553103229239394418958829545104147411386153969101667133127404884324144885838194583954830192662270480356480333616328820122588506415405655659595190204973012038194396343145599960801958818571860846476109718640427775208740925441306513045434450081600469695509945637969212018235466792027104106105302776071857811749070361980455236985358030011445916487593512335044911141799211717217197079046315751839040469717911013009551317306807737830124989262525748710283672606889728831860850889232530155365175441674337221409721315076969021825949761095190698156921194946149429059084531550460216682630268461211085382305067158609315527848366066981937741328121766806054179388035120903125412006841387931729549372864117001147439322383535159827184645570936645585089265064104412684401777461650594226297116462154188980934327357719952661906749081022142105566808157967169626816619269343489667854675999631183892972760635251674552190556966429496501597653110368419120215264522631745400683382525738749077973792453845281608550630998218164281801782805903097868898294563171214228592835241018703184946062905325030536225428622333335758201777648263892044260958526880340868025238051301386422701966588067340726891874357193851740582409288046541928523380401456782765394068764171193458242288400509027914708112928419578303249783650308452382815138516806742122092970992630436650531666620607654464039137279289024505465415025727640568854837886859734735373521770059436532751439618157255929552896359749776439835209619336078174274090034509347885741396608284633350663471375860151431177480937737717699915068021475707787840375539156123481019180519203579759625022227874502690636265284416182156706895501802200801140142708807999032462655434614634193915085863356971853109384487991175058704308538929322916434329626304435598188328338392947586848878095939551417481208290777363033185939974347532552740591317589435089022822864531716765657600271045839506949496463985145242550663604865756818071066694576354860428437097764221560148367110213740595318366233265756875917091158755050510716240488981982530474520584322762689702921265697930063821765792281407150225774069000651986688430205490018811916889440209574554157304758807464416951436837938432259030771373188462359024268998922578230559594790298633539768654175991982004521026444018009551708520171689782797121566537361865492597683995491604891993100585623885868863862207859549103097232641653581945722179812256647397872747274460753828683813225280917771439477951431618085373902262768899158757835705220776717878645743287762203447871655335464235897812965690672371543512520233443135051338499073904959527385836129161981341844859182338876008902952351077096337894646505826086246609639041996435414465747130283787955210353646539953077590534305647074779979545249199079130643419082310991613077636942585022747897727073763071456659947328902580594733840099034983359723103223869795239265611094973944903203779888789567886703518330261408913375793742181176984269755263867008616997257825301898978195728505681193785798075133296121874819295989459328735777767645678299136145194124160375320831046908220006916278083427131808022442770181498185232843448162501242818514145941160352894628669951339490218327171138842692874615890751325020053393650478954589544767893773632875313856693358675650158391465684440169404430707727252687929271935251365852616629939786884152218290115136220517355025879113431572023086626372297114515752590212176830723162666520193196702300847384294936378502820561073247292236733765178802113304726323248400384427970437211510371231278004934593825952768262204794976920553730426911107855811901525745609574487679988501216035527107368806988823373914578760769087513247365738301079548896227116767066618751224121755504980126380440964918442274242743127089611137450743194299591800564990686065131381553818840956299296740433121583954889983309121645338389118636374147930704789425322517230615498597769765719772901253208895052404676727633727204173847504432778261429040104876713395717174365898308696568476075983692749317365562670452858061239097988976255333030052149504776377643910662970357922832331759628322244885728843383509734492442579368641078326153291929358535297152338948327978338186001453221183266735689936181442850689088237541934747326454379856461142191236929110248490617147233884008810804502599076879266112666962188832380325240854355172554744245154980115263047389133192839326846985907888378656186154492414864042494855278016119100506062281684016717206076528576216139652181214278154362985497574240356213429028427480412025021542731724041136833559589477159393115976864873926828955562895277382075412953522928131418337219473773232969175515376295306998463749902468588974354023070163088317532428065487304329526119948265960401677981279964881685958714845289728223833814711369328943524059055585502105586727602508902859921799258372874506975622436675022487881143252315343567193188267060395412720824131793517432265071267599729153668445824805100573731966504669650005652168816721368412565192656088596823407202943181480270783133283016396901003225667484652686316269772884093812457617527614953047199660333295267860305207768714957998877317819142276671080955505783617551750801499278300864042915446249515588269260686469160760785171297569414220079251760065677111102162969645000637432556132716064434815291996349856107182471449877905081132559264247974797606950008483716420567739089236343058394320983893437645547828172676300145521928049399402450169353062408884325354878832234338350176217933836195993009258108440865493472575309446858112054620667768472939223897890893880236247238939469823288801487369326229314205590305241164990087038076383598906214055496135935116850941341031005175288506360792403430259688310938189708534841214540405514447584758770178692003175107111161254044705587478192862252026632808853459912652792469778547286739833822153626079603144049123293001404250625974412332961033566518005852441470264877725452867341609005097402430858691906685905796114332944159507394007269741211578883604042135110446486346080522362252871258545770952202908569723512650490839802084750047047440793815736507190042344374286750188060304674869138003826456402923779240397095435785018636819268676931491417069771897000328372298345201079539608545595088745313575233651623795067142636873795595307576234367766446242243872071853624620818627737875280681344133388709981780335561722536203183333840962594118895367822218681199089399460413914297848212165067215800425489995257737389109762116550571321235853209321801201423589806681115012685750950962872738310372830507222031288817532833646158412448142968721383350560170994935104265029103219319934555535483657599955397638883983313623044146401911819137408475167093503672905594469042958396351003189455890704522267998163660720380792599800758483540113387014760261292060730006040071795510312429018580131892088416874849156090263352767092677067363412721857777584016637832767637361268471765875390474515641923288325372044343041702506516816983624710057862161054363605343207378844668965711146778788121232268306735817652346965003166517336631398235729589197349687874469101521206008792367966783465699387494557837925984682443562673701770843789384763293846303409873902650087801084878205827264970211289548645700975671671757629285784481079564024670641580781167066594274773685178096579852312099115223502018560113694927161476245411759324246156937636754140095598355069615434967346048297433652004567310228411100850291031967827917714553275400162419620843093053795741948946424705942936592019683461579751258147546229897204984983638526895539715095345789570125417600705529049613245441087939206037371628743456240324412871508388631742532319110872843652666110025795858565073695401646167377738032513947449534199807552389294525803604836765483934160118389326927791403093459913673165341216943868344867666599895670247594241584988517728106147478211998369841770951380677374089059630985366493656382639148119535104887897280379062952119187365097603111590458081049985232447916069406168485702494140556349964342116644711267459654368086033115167735367791954602203174553349994663073664348284401029513346236623587708540299804105699158126149573396528789877177528460647380650889924295257718604123387474554395537599323221948559663867343566675021728854190561365034351370383488214266641344558583484062414049781910192649408537665774377701388278270427170905555594516524532409296656431550264187086825406256093783744360778718097320522832879949596184431425480610810009208897738479171585955818699021214894475147351626103073677750317834324221732763380618636906631318096931993286746742255153262394897273824192061719585305890623604923286787312753841461317490658124332916444276776123695485162812554390752519740066230403844066815863437088144532237100464638980672681905540731193999104728630076029798927098809228941761306491395474300453991237632944294166600171813636357092033748378402583011342083838469047739826007994363195033351494611872260041842029754365137916527460803488933064569541083489572701475982140680362333461359884777562211146326928482670755751250716080291705790681618342267837702040007301794532575347701665297139558289105964895680582163935986733220664180273523877254141588707433258390617417759722033240745949116238719033146841864390804091682487983622505397269817958051318390082468818886239766254271356254710714129415555956692657883977051389038366186595828370084172977656104263179360610315651218923819241827807342307113219820971377085984572828353903677605485543851290152107367167456370270728400827950068247759764938689090507710855833026848202976243116544643947018932935019996273123698050927099876026796276056113219476211074288736383604085271989508993420862068752969808962723989767595707928461801160328607129403443164588075810372737017343489100721627091668803484850701104014948203013019938254709808885552391983253134802856431777885051271597170164044836108981010136994771699384389438091525070412924579969191295147297455363960415137868534970421417550165200317778600575005970760299590186248814249741353016498817149229660777280325012729924037882356675656022258317783450717604992471042381435694921284835465304579785361652479005501305450322994700724239857573874655915291304496036154145565010991013897922226091774007572427164906698202092508947249938852516147948932042609403698045482188346819223051253565651007776417378249828652396574361674403637498101504673361647587959755714830610099133187009203455270165182152650455388184614168594865696229275258055208893275427188152481521692268057249108868774776239881425546204897616057226539174397244342531972786243242250988956721413449292399138676329509270715990247750169614262001540907828608697951292378576681295974474679909678102879358453224109638508724129200832013798682916304516387933035637172795471020710128025931488751309519549485854542802891429983899848739002400221275826069842720464254293923980337910399086839270935386823200064291797894257425065922592166808759807408003196894410823595817699616636359113524733144277355639412836421056259941370032568106180432101949563855277740810149710760345668230571260811248571684022870006204625432487216715851537536880365024069206188933839401342789497729173835442570941711536370992787672205755390753708577224579363368580446105513821748136950444023466266349308438750068002818366399778793543346989126556543576564040720565085100435629052817096353264665326611579541589391590994917083640982616685789184048687519583280624998420752500265725808881351576132143450099746940659457752001032334927193222234579425621856560757375877413889084636795179555621656344066727842766821795993186007052168001676650300037805739948502060576461510149786585352173949805216285977110414482616626036523691219957725478717253061058384965742571587561774244052420747830133936574448941591748951855742323917615819999180267605490684876496921717286469133244181503464223469254570601829589633004618776502031118868474878623640391554128076472419958656388621144881706772359622828062944950342803693171386633659899193818193204685955156213210995684335051647875477697850229618942129953357022511626950754963094391375883279308807898152364408712132906751411282836837522615792024483768633142652466087135484034490000990525118008885492577810778445273692812967634462309668335375291191021982297743666706338224624419661147968995923293901096953368608236906464366394314879177544105848675879466199538838168314842571765578845569705669400932711933140362827986043630676676058894900636689771993654041071078721907679604306122300961511800912829691594888505514735600836949487014649735627840882738596753718213109412677637063034687553978113312249464277303634187220237504292307037351000870031285261013362325204885102166053511199877929053462852360454943238285899422149616530237511157548629640233057099387817818623978596590667905992203215618219106063871213841388899291170195142256260344357998098157423081689326642224631876094832029093262077744701053673223160923266785561630354642173464977636709779248997268240679252298824016260555490747352656487041012633429481967382276848452641822256769843978680344509291727833920677083957150404793664217822132628649295148011433360244092868776958748731827289617089783151144939365522890321978112292748850720838191650677362897048668539899350555701668631779350192692997860233112009917880978134592029377849061874386054315720160542483951916767505135404479371675759628299668204099139442632507863564263410777110151475994446720532933737106769039594807611171141694390567689483935400907540896801974371825495955621687217267272435816990515187797687476735610004900163612101035694809790325260350155795971633526444530777192523640466051760050616915098653019712085202466617517301247490681908325198724182267231453582002112072795010524111142502047322940760051278370119827496851030524713407945541094056885304884165034056361910176931846656818232022108246367423002728133463345812847949722884356918610520623121665430609772480301896128758504792442170482460814651425423022208552768037331797267504013835952227154515523974428072579932699070883357167531597914238999297774398579920303594004592065778350523959497760852028174575936468313649323351550209825034917580397321152828460922476742969088083249537786624845797483113203497346437422782910738542698009503619304643601103159391163842469758889222337787900471891253842376382932886575846778884773310134393758905279007322548410395664059995742292925391859368842070595388898929416643537351906595986252195157801175263945098213248308918035496277068238274934148450420801862566552856575306597777154604519691747293486567954258950281185209957117798234626949940930487702809001405074453167621283398993667655768028971692939720758079855959476311356356912114320392459827457544276027097866823876343643945659746130291019539629501829539080703616548656502049601362221856950927240824303462865425277305818110224208904571030625699590722359660394832779704813617007388473073464409509494243538502483055180667437559974086544717682338097652600717264157645624388958153695341543677104638691427255447295699675467386112761582782508725005258234083523397233653606652007651114913588036906164708654796602689985369766172558477635459830889904930243532707857628254923533303280738843597085054746917125240091125173424858210905516149520510541536639354470246488960024502699838390691422544488807104413090219322567992129349158314993742226723301010401115680427700811551279018038335872251437193351686966011756795777453663430148730809279617720398694174622658089265636851681092949716071754482820516026267271695547066513068456939990992946366500768761817940716337177431057992558252709469653883086423248481667642151198983820707109646175906670238874344763909711084375409170157882313454926794660383789732930713480265009277099420658417297885968271918064168630724524769227434143218997573542580987369705474159331978689942062320750663037752998899450316064952593323623531771106533035284939449108876228552668952189102938495789328697187833608932145229547939753410573072500510390304289669326490613204498104733474147777298028528675583008546353827118743527354667936425998067686794750252707389084859951814001171607481097709801479314978948724403067525562982815022350184225462427042238857175937448265088237951580760084932641574958649691267261454568403121391677202504096340531108657927957348690179279686690582825722451740119446747486670785857718274242038109527600224704075900605176984037546885449344087491597421751921231914809915037119288522792674533918725019623957624507396169743392642270421938465434958419273089474805312993501574901432125024583774471872209878651635189499559420327890858064223271337485764927524075756239398586969610779927354936528045819623412078811576194267399307724726442298511654936457050073684037730956383741302994009354182927776720378596282585058438912807493363746846526918885588326040335535868345075595877279774481885994121640776846281941888276980079558517537647128458054920775716242328124657638158913464850517954101586188185771134294654151019367443948937017666878610314718013786585994137443460270995332970842826578597440424720112565321281078385067453160297295140765917867760460911257072552504188231353605945615623692483967128251247222635158586290359673286500977906988678688656614430652866088697160955722676734669168520873993919654326691549446233165445308371684846211497326757165611351195502973673547369596463004289259001678746676972552379807428594472353764024560661972874448794371581717832789993292465677957363430921427074237837367090480903189430027213346835365638889691693405150466024697876316222905166812075779164618340362424167612661662313596266253742021638666922603743849922557018399152818075886191479424994628072727675057412599692239062426113512344831905138068843217425205104116632012783441589333446358420110218142639897209689551927224700287776002486589348742151108584984908972069851610702674046065405652287689532034979511305110919680031771864332023319361640554010597173543975556363265851239293958995263183267332047890516171237109924731435176866869494656742106482052394354279694384865674062754976390677628256378257513846056317707502224534137220330259200908792128841546515101744382446821659590027467967702899334168014417920666437235524930160140095556078388092225784007871527751810128465435658862757453421058275288631303662241841236984546219807784081789028852807750127352847078729000375719744232478581261289988792835933312981373650831886124219772574613625575231190641882353259482954357548573879814970979164886868380843635368157402870122822755354865513551136932360925447521322890685289740213021143932537306695007241084542587050201532178548488418025328104505426285069867030638075644463190987846741400767927521310625308240434207363458485045058970459231229966761497600317497517638647981847487629094290880030454865381094026808643287175731993744412397512542937631825393774446994488996399987191690120143656537688181250714012242237894481477902817019625167415171923610886458018043860581349176234422883544611244244887814690516109913561799671927506711732286158713899076776581059250297094461698377942952313432096951518382989315818951811923185884492500114041253152839459747230137542125687502064224847470896123735324095143581202443815536447002532333810549707366640440594042358329015218487054291037285786494442296602011682232943668692965816951896057026823126924593692301339080363458543070564948207126997708575237941705352325529807287094628368991874271526922323392881144365813474352975640969049856435626504353262324130298338876991661740081419525356607621389263687833908602778358097752585874014949345843302947966023513480735838245301412462139275780458866183197584072806511569538613063817343755339115865009067560856403406889717360039092227587341041565318588322081015784639896744221673004761278426512991251909539837983033893117443689229944545885328180161567499673935095719286273686009505063745646093668455413163417421298353018961323864367219914476655157012572337565428420530967963332121447898626350736120502085384588995999022821846167084443017218281019824677330809384100995628868602648511377356806364846749042630071612093572616200969071080098284460448950194720982100592992277363287947782900639354820512449854358603887215647313574622192694571434055306378959668007545284919084366238536564719751863837078729038844837692060404841552376825628904794330838842576926691826944694875948315496595208815780770269699152208806242889245348509349783821387226721370228316995848744072971508656746658808362993850110042670169788023732702381989793312107171638029606434474265780877352774588248786971547363698329941910622468651650450151175592103195672480476852462078727775075495883544525654600701842531718162038286413892916766289760832632900906111639548599252404632538099612172504356826976188957363689253571065828847827334053269754398043292844431442288901886544221748850232957962162992934394966719902528754392343409493873961450294804473714641401873990713515409280500552641443877569723911144619023198924423687195075178280565142396269508798735171938060355407228373223751591677052907690526235106401501240082823329698153736907659287923176653617517270580693077525931050454515735442502322991168118224246558730201896214419847539497977789395526081705476616598517666265405698502294138896323493969045357292517038457657678583101997968454532400396654309727391207465858702252894169003635930084823923039723027376910181168622568163001059255767562123338500550244252761018547045502520689166158415322453548000649942194382331501028617433226991596647528393179386556474529424409637663404365417464237490890848374983652675561715540432273156422758984663283794534962362880414372199631063703159543506735603861682398608717536329636270171427557198901743416771035323693045763571953090530558335466376316212987567314762960756928248544044502423501198362416421579014177399336796470263269655901224375040955893218110307386774641556621573034269183677269488225854909791572581955634350852975525293655644358326551749250318109678197072980576006530981318428562448334555044612376123404138953766631200736722385377074538303790807702548761094383004247279654454958503198356402887286970106530532474256906686617621756793930704789258577074180429841786851995765722905790777098402723977948876038004407823755435943222868273597679101085463407491579068164207829562517813370691322006125018469134130831963939882770005154011183725480728799830693517038538564924582501162283537955770500656125625066245682416661411803431322278569854070769083003352691882749731901910770791662877246099929854263353901961642386921954603366257078431145103417703721695260733163089723046270155152414920131797149159231471635722214802242788051615931895292426613429583723132047449097886725407421688031381440145330679316281756769480154140559294192514261219862801414422169581776170180011450554278237662527736303637636788747043558242741163121125516228989055989020643177001562446484080062755489820908616818094522703895922568675244385557257867383210806582714110986516579097155493814468310207329392583754655288680696659559393301129075828511168136405224739500287820665728009785973748990023573614739735800514512378841312512428331247043814108797634162162462238734106251899372468012239724477307225886779817425442117666143235187901661374799348639651564320992767454462177976996031854458845560100679799534781727488959566200469202978945579675269835184969496224534297342275527179956764562762044353797061377010476861884360049206699517263900661171113894051459650610986707585651644580583692680026578280127313747448016546704044510808032865147308343282073782898570594738187231099889992887418153314354762742623043760440158319017100634846723226414771171981184731607840790520790680161337628792410132627255568177392240000293305965470392593711323806956870596449004173133820931535897010343026546524741842746829182521079264586473162355920291190920438082605268293261615500450898757872469008563205556606965201458114175957306704462983650606258717840341276593106712758638677100476570181493228422543051598211321201651155956122188248612940000545643461646732623785818931784296627686709653372966063216191302159276596092740523079046277282378359034440107940130839017481206998444189877677078830332256933617718881224478822411773093612273096543583357774012061507007200122756628211386266602461005312262047135438235385079336433003487592877455906636398936423953808127472924677576563649959979241116946734394814113845132321549814743121445302891727055790689026377899735602925959676853845928860212214704511379088739445065311065266650708339634658137619036076979613352740139132255926784843430362730768805042628670454196430717955046501231094300016530301430523946454859751842123608279326942463883965190012527975889770569948903627403564272439817615031669097989244893789378806012205719498490791039298959273691879926600572155340924360843588628185812700209034736612470854988928291232852998406357561220828079753782240347952329137468516821745459029578085446978524108213866441253172487709772778613880861937286834234557678059508639015246339396659433025177595651875865288143111460683031657607810166521367944907970608080939673713499826382994885685690206142519987389553473447268735900079737964093325706830051042210740292803424959540220437750226139225872917987822058848264191880508627457626344082813736926367883180084476666270770122352406123606938928864762822741073574800155768527246153381364829794560673006415521673319761946268281464044825864970037282972078401197969086584540701967058398187566547348532438464435449104118976341322310008592520340912713704749302899081488442755125253264969085336432939155785753289770055114334358561578725255747035208045881319778041480814755245644672557967785795198880697915786619433627428532987040412778373387048691717529089247324915939423383843185237233242721283058076898485073863658460494535858039587417075857603005843308308241388772284644183660383510171212238809645875936870609175849697484252256705389123643204392248579594792343955150056326699239372562180799283693053590083349637209100380449963701359926558047567143927003977109033463909810623659377755988808876981124819412106406605432224620148454480088645653801731183459456266990998053987926881842166292886405021299577808795982873142869907859264000083145158243141312156820928439935953762965593048313947000771964729239491620088245670543189479816929708106634210636507468394264688931627187298349829740932006419687951576231906797339868917515199696840362431497506767617607089989043429975135919825416972661875460668809785012757350110049176712648801920198234269829613698189182416557838860520989513970067141179675959348503917561871107595206230684180828813500633250884753462486599987666817426450779234929079603002211671903403555423692868750721968222194943002768453262522569263396636961693194676771862989104088086691361436927278773321538944442417523683383312808965221506647712623285767328703690236162133926460022905335420265956776393518999609946368028929867915859121905676889379074434272663615332528045860750974988411721376700295991092006754572026322637246336153936383747847988375945367005720013343355965761015161754421531906163392348685445015515105501381726155837022803668312044506855378938540630870050877943852496351482203900473728457006161687614968880075406531027553151098326923470623470959566308540517257354552171191152345366490340515668834794387035448847237693244540110572984954118574758784636441822701983900695493880893005301571689608860026630897378732394008062152476302214439740464269888296805881237996157681549441149041092461802284584588339136068238702165779214750619691378706873673142753580709710438797963741808064863690098775402695216395504543835312754877138244123637770447732398955313446238621141084005237998254246505848398716055128270206915125626829617030549896993003405150828708495424409956348810856879853165041714385072111331965985979196007837614778258079929458980632163540179816909077303231266107687554637659012293040100899209528396743635667401692406995334334391475817910979164611279951441004702841444693389846944950836135211222047409493329824080957994466732974589976257631245212397694365192666744084195091964027475920574885041674866142618843442817719999229317359825472159482767215007350605417754832573821279796556810604603741754280547858537388613951030206923161787193754683361247731798929319842212059886154136250567421700622789760169388576495563137501666035545489422210609557020198009199175943966129009095303512253705524808708771753509899107471797485247885457350039501569220111348391365575130644224249051676685362910472431061468841499435191050431093614904492652186776367431211853226858861322456212948063211631283773880379104632339145737641105177146509138470724056656588621045578846671304767157192153259934568138212617126912047864986766212677115812033048914337785909959346103095066817825401522162634801770255607330543404065679131803740878431081985337770693126211432301099055124485928375590694428688642545314308532127170548384307500113841056597252525578855279779011900830372246704487646244519918609851263057781281588534190670290802512392046275240164785770302397584176190656525941636041488906374063480461574544664310432241289428079145918378202059620512435294195321894411372774969208114461107832506485184849554487867177043448060176583640625616657796773632631923885691665201281802127962969877239045370979282925099699659506620509617080255738506545707309302641358069209742199554773876823911526959301720279077233170179280026251742823718912280888892841668215185164841447013865367175896260197165201134945689104456000765097579275924853640168480317819243206380004486201455416712360093874904405254580418078708787010212120799609040631698340545531936242294317101039199057786619349063459069797921173633402739695871293135291263171529123032411617687546156440368633596863699366692069166187383474653540809214236987511421380327460454192147397023187693624152730617029339805388210632541369169318840434234689020957454513183630477056308752910482824794811463102496685133345843795467220025259763929190080535087531524750470515851673835163761742381040890537184981202330061812706328789601625126910305522383326890110937273258849895877628199948749687625148548946100924662972946432618397027535402604207670437584652858331169909396782631108832719066342802163095475998273826473733321711360343701162107901995907103749068104167773343636179592173000303604725253939597441619053524739388986958019853347965861655387745187153237806701285137879050929241177715329446227083319540992438990968874423481323167340253509733617864532536708377648753152007682987966655561829129080105701302663662570275328462598288299787525097456531571382367990089484133552160109946249419385521222106288881173914385901086696428623025179334228710547121948038627294842808553713632893243838085369530488881528853434283641082600498642457811577228624872220535822968964358100973782012288468788229495751743922068678468049289275472706031524469404108828337995051654318324107229106847276127584480808908388794103313346961892606740376440886389943680925798128836925909751105675441426706753540558148252542984058663481207784665670359004835915808504686344069131575817937208702041575257250507387387040251634567569234107579298402835009765229961907506567545188798009832409175115510873491380721981391651179249834493487598964303883153262331128409856039933267013108135591858328738483595012474264543782150274326230099814759437651867574390234486487978588491289990110654615271109930549963608089470842159377516861611074674441339875038990555601969251632053679031753399747254926855724494914713005983174789577968852204014228939997169045936477990009036606716583262511986528311238967414803138049940005403562404461497655296507505761736971578834646390499083625729412183873446804253155172731626538468103823978634901463175992882901887236781534683371367917065037315266096487417669512064805652146675822147558258505484037883170205620992175927635385034651462270248139691027805513479447457786889925133483641658499141888791258294280562118420358307551417777256867774313847969417534721745165628226513224221882401984151093354953537638136246919316776683905103571959522578718466455830697336914877606050319750469690567974707390331012815853462637447895630377742919402956189446520045109798991097546244185072424254325978803787285127297237475796052459354004704310169215735971154596911590722562086668507174314675916907593400322831666058925512162184328786050425766199402443436093389889327797334947904251723164296051856215704413618381848710405490103493038190958047381535449620430132037047869163613242011911315782493415198299320795746132559312567608262025517777851133725016975619430232131897835900220937737237305995983893918298268247302487172054828215694635497613972823103124698244712149988685263130427481361414718247466141754286751170095746618991914663532866670887731016555720185230512754040389396336616694049931649707151676982902500381472850843897341771793720204140885780223160495388267478469301091439725141490452634061819318604117601793520521653499857920022718789525046955526104320789492713753402538671706576067673274101922471213229743779931832080533879297040568270266026548863401477053149714414639605346070783881241933693763551725131405598168685665925510065570407500891868254519543743877616625426568758823215315582230264101195167691975947601999226413366364073539529200509472199663545770103978421396479869479800303991595018968980433776587019133047148058125918712054636846270363770812630759799630060067148310747751024266340195520959952169721437115194596878730226919172670575761339875729648108370564760578767328908328140264108442485129660516495596838574444511439253672883658976535654520187952921507764486370895213528308328001272356114154861574002867561570829658219217679296541646990719613036956938030216091002192550187936066753434014182835896032827330222052782707800927062696871157489567326206518183610976410470290523378500079287530260412553267263600443839210197641344499134181892878141188763832873471288204164417575330942585051479308602484849715221973674629449455246911150698095300214296149204082024859581902767684874794608743787067263833309258330187210788469274106838726422981277273608204828824844755104319698374445883231956811919245603153137251766021547607508448897609716907530359382067798053053634995373336214273914855560814959752236934941837187067766854371282491500852295661538449200861213152470967414652470778934414420675659912135124033578980430486436867268859807207877024543732795623132340348021811628868677322032646361587238430508489071445110921889204026173240546628974171594563185959521134713721474716464574629167211364789887407627275077439791157080429781105258844626172884432183940155578333866822284561611688280150074380529414875503020311757289280759782605072911216807727528344909131480104469725951745370348133508220838450816370830808869295762665958187434687399779308673599142459419520868629987287400862093153230458383422314174298416746775498023165559493597162419932844289244969192132576738940836438672419914793868905168082525998323929900983072825078987081790686692521572627364315074075870406590396865854974671577959904209688162303833416853268401398518169149472735153963805441106563004604268325470716907442446846778404848961550066625190651990326837751811941281557547018660178470378967479043922134034860479193742259887873999323732886303448579308701455147513776614061382067384314907990503016238069329737484716203423826904419735971155114075285106179691098401661126455683775514911410657889474566773993799077488634009651875898172522514197626681088447929867989871629883554272329265468948389888460745873903727877916946886173827662530039083011770660550436412713557430303522043814950644612357020497925584236690222837434143497101464302148132176983762014217232756573116283375855950714830943436424346420951289181107713586306322570401711771283223992576724610025844199012980777058564283350941948514630536656741945482844498688548048945807434899476000423358150384763272101198520117835696893818997368745557219102490672852607649535377040945580164756108144326686036954082614990391157301387060503255605341026899090804714315817204290920062347682780205086075671608075580400062113271607430578866749605085206873936051515387687022121728458658024443283368731035925196484057835181910242621160044528341646031230001881958160926241064207761706614916344038846639565004178964758969724684319106714436497775668007922343497075838168520630630168211435378690065176228261904280423571232978676888642231864187379008990869271398115229652957614776519237772479686409938552203446304048678706961044784318041482884439253832157715367066469359887959729114355467627245109010397396724855134153983106801376242802347815313187259030112718918538185576773743820435494075795991110675030753140754946842745058613267937807305865895559216487416968301364865833022245453950623937221698623407148479568772666667857838686076143837617934309084512509272090041963805283624118628174430729768251415811726362466658365847499573552017747938541480820355494424789709613937090137932607703446621608179384606764219737966034356687106257633303624270903179736542149604597164523155322044196337886060586136251715051636183806493698847676993639610014065634391684622275046880243016966560431755778770689211916195977595027371211888321623718365735576746104251088243859745192069992454782813009566711577915632392373449472298289058472240215036059556862338498407890543521772100544239317982199853327096065014854486709320352667284595773034594284823152120022059827710786541303250766606659364660594273974688895361259599963506725264890857552387651734475168219884182325166623557552381800514700493607483402466275590527027806583094232160900151536139715907918124722800026897375909622851950818071948987299934247140631066210939491709965778055349072786960361178620610451118735235710692255472746211003352212579548980228364823974216888064094637238991521404947199037744018765409410298288640758672817148971653976431236547332513645956754581995682020127438337618185130439442107430994050463869255922587597980589665097390845578142451804373704415694283108190808019549972777935511811248557219824033117703250529435434655542672327701281806668178908098011425552943704621358032399574145439086549584486926781818795245842048647540925114071992254106629131886371761749561315534094492792304122651773533612032865926018293726608918404330766195712802516540450992612699256299902822945268421207991092286868350405767173503323402497142182137769694626136036699564766580937967613769038708295636752219593692032965495432494406346733876474649683418282081414064829974523009885296367471038164982750239956904228502176809130176425278583998106417728049431920694708214464807261665169841621157868569068355099603751055643167287791032872037030264515171814038393985429253364923930992736998110906806330660341947647654887742411330807839572553074097654371645623658283548932441761941861905292447037737102976999362963481054871050004281985612541741627385718358064716690496484767555427610436223168732177020105053721570958060937448833199086768451386510135343252684072534312408760487037987076602962008207397500117285874457247446592691681952541826643448524679663865407914218705331450218102901671092220032270612529696599639282800737982965963420653570134348852701484181551113498959491039831092436109795878387199726352745378915724297436749439480350075514066545041197927988423781616536300938808229866055627199098119810458767268236243279884390447072742522896855349536401206533183158399818541340354424953413711775592029383417397418470660345096819099196045901385423734162835444727909959046005577023737240185339398743480235181735085595440517057322949113718658789236038836472649416413523922505284827163433007928213358732450028551450429097948596854389245306261424942604461080405340917634918964871567900179621507035338101159434386878307604521610433395948087499419431705994817984127918795691274466490881459796578659672016724887004165018678241605457111181630323692060532330447760377188733506715603346675513007440265333265664192753661054440843107125275621584598937295958334553699677140343263334330750214349217231757057746234348911347706022643651673505041083555171303506786591194069173374079694269920881074321145218329548887908925843770807705826633751379743219468258991944569917352751182313393500176750043931207016607937751168319001855688468642776133095324688627444103680223045036018196258615868975530255709513854920020008923201588462258174971853304106058217898662138706606991224696011443665448165332854427553212848224157785445694813043122171881987113639254977216035153223152670338401524484040340973370385175973537372401196085272663675704541396633055076940929683261961279848825302168292586299062398972985038733030470836325902873511454531240477355698629334774571050962870353472618988654245457401303967583147687955139583947193003586385110069347879001124561263760167135116024892492781136182234210304432836585379626501887217741302480772695531890676427412964856974150883042070606269006569175741704178501167640741342329428947206934658702986705679991653891420087810243744209297847133112166074977752480427284598741500120615051173623922099696170908418422053457984888274570678479695092049461181151622361670843833231162097408551106048455780921438011704762491642313559743778947143857572463141969377885345239944329066356888385478237294121307427200470133541717204766558976269458902570700272093434769008727200672565633071023807910602693484965255789782561678539132852530449668508292634529434313852810715099953375342587896882608913107214270465410571748243538335267880281670462526938207228236499528613811292567147421810773088436367492449581600940325945360703850472135779067436716333729477887969093266077731975831909601541276988213982527643076705708666620855566233890010690480932260960410890098048864611779315944022474439015872471248813142824645217199449424963870443914588880018322353755340844412675129392917977975744009386527684730339021221655402877084527570688606122274562732245691950171050922850236964513371355862261593814737911314887871107384983071215593541149067091344172056450441697343127807879154350513144603673546974215712891769634754167469864183979454155856858585070138519424339184397447157709702128830963162068718760877105169963825637912911657313424132631074274864522910906582279229566504242275827351332646584678128103418054747601834045804148343443973625827774446831240599685155368717364866837588906883475519409787900769438758477311633900209141975609684209612386310697969357962835995023387015302582204268147385061406568954399908395364768702224045691917757445913202008651946263044057760785165429417034817340752209719314580279523820971735532338448195640173182757624516611321384127823312777101999380007779695437033189097082161117060114734467360856693422796608056426340330753457852284926304676587689331739042872132517565224096249772991090126221443336379768169149049512744179509850390010008137860758601510786788797368409932397687298241572244528879358275818955235192135570782103365341849648544012679312873088906358514875258493246192372144060002646568268898583744233128210819489149721414424536539845654116934272413825638249851694555469569536399356956333597850283949599359509788425878414188451797862469630062003101792363906343747943219880379806920180677616680314401952418848665216509152906736963130342641603922106122534017952029466711938500666808483846021613400003100332194461872510136264512461780024094743114908364795803904390944693630203176312810385587853987533136638858627531769836424351546669389551054682222676624948155791974641898144795759104209543955293088295169843972693238673460002894578565609305161949746177289801845054040750889164242142203253817293416889327734860181378631148254499888675416613936532879131658891581929431035550678547711336113753778685935805879593478448227726479207190856572093640827886479194696749988200287849418438172029152361767015922062161805669744205666757298287761889325777768790617223419595697152558194292453932119836881816361990734263714219102966851073059754590543857595803112388052332347716376934024183702233345485479464654956969313650696701077680403219822371218254991794762125899790408493616260586893190032036166995245095036881801483732796031460176498521601572576752272129569603845950169945721227017264504342861483123004642313925465401804621989671090925778480214097840601876478660167831322789508415129697958470367776652120358726477023021714941307215252185148442356750248488166994553648108792973593414957758028837002764705513421763348606926958574647210982509821868419828965748433996215053086802428678162990481552552852286023589622134815160577430967101323101879807899185193725509310354345756485426385070616283480785392142873245310048483382000395588646508201317627370635985691138870736403649203327832544086419151617759648173606396430935748260030513503353724896323162441822343387614490382875097043827051474644923892921445835194227158757728332562101460257943976804453834149499993461408887509844169204575927755576346542997294837993717340602122842735902443603425814933237811844266448306954134088529016445026945334434715590139518665805172734540567475568953018204663469052768088551148459071853149812268704290829318440660795736270771579856071179268022085113676836750679265678718123784762728233060805031681772469766178519606870965799507333722616390120921893053224944470344870683348365748522831349168550286511345929569224740183293818536037432033959018575840330296115326554454601346945788084359717013103997558368849800365372859216804663788958282935072096846181769687222994110984095306949005480468481609545719978663617347583226300083432352488092742023186121813130635067727042777785525830258362714495827530969203826105307683957783976842713758290864913026920022922380155208422439035968326975148969052570878500739101208335804263172360396481922131460856215358718772185987491993243944888045920752814460790426021175805233960927558946952659982450530204968454353882984429625278496114729870479548914896996186608848391010445961060408357572493408798250512713241616390681675674660881449245531617800111774376397730133369135330319369498536120688945001620675348833767425570146537752491243498923543690890596570282120386434674183721157354003006110197529968002131594761148680502675333209047650260325622434792906917717239576124255010188335073751050497866587738803417143282537804755779815465409779432977719739867757475733101773959258513087555725598310182697820785896044255218651200157320696740649315883235606488484788459588361025329162938320542236793093477630813202572166410243460070033619937048514117966522236573013563856282727244077874686284716143110519303164025658799608395121733971792029634658423917706926672493396296576686642958676496099805713572264948459259745434274170279260630043772645234429293720132827136659858674456257626741854948103238232732563951169810880927640317453796248303347462281053634720790482960064148792952469569958160898957190424353153863143983349855284810596242396565735773652785115860157621302286855942191114513071113357784580603341243689464298046330499734651663225015367778195945587436121127025033595521148137048460139641218449051839688425492860071839728363563425613005084302787510342879357313435710444170793850937968422241512651278258931134368153987822035649770810798099709950520064859197710066543555633535260716004770565388782616688233382357965442690953281555075752927124191949224023405165232325055823295019799491849859281032071807361124075659870711763116949411397674052294318056793779626849288259959091039853996494871570543975403233271850171445491810913025939959094492488227374789922882259818020436681198950115565343580978654729841810170074389499828703740413886619762695233584511857159610360772783872106305046872996034029928793944266763327273218200488510662480096629120670093162139974982887670993821834711889211650616564374764617168617339092601438037578497729794870146975237798484941256116021504328840650002849111198907950654978291887291801558956509258746192898410087087758804538760340204356890667750732841178720902141698429746552029361893940164384475240671816537571245187175897336364689474066120969526916544885564583287568409530822207026765753594925910386214157309233655107135160293750706875737900642666542416352955008708490634844213711185876073870122005114690464625851152494459762874389077270140351334947905216463943552549973797595109218804193621566705734697109654940288921346092078227573206475638132836892597125313082149355460175805842539762746661158078829334959435342906418470897982587163656210512321219698400168507051280034453946910137962884764935861619121347434605009883084659335633394533099145707537134589809498875758363808581212532222235963953082951686061274825555646665157649890089613691153884573846893846834101590807003367020610489253415199547915659202559216560092474591374404071685741762881384867492373534764175467939798853163885475088878131009444852962248177728749143751417669305310697838520141254414614539315255647042676545914003113840130203636897064183519334447988345089437369201084242483864581430884000242337077384953049045410787734552613569948252034779977874078978437342586147418416594963153611235842226757131799648348426163033320199144818209832808612311626703151684810386672842380797500230742142203674320993876952590708331173262851350264359432256515935691854946513022020857347738624597543166227166201138167632854860048433793611705626306405653241540868282534417562082229661381810109296768681787555811930716527705992901618896260156872106709086605684876296941038562281131006055573932166145926653123692814329635521777346580923194921377003899422457698677406243495770922118261044784192511569145807341815093836280882899058748840877533473777041999835769554320179184817482070931099530055940537224968913013132719069720745634924725714259437246996230996898153704514695622574486433165335067387593078366028276318926835463380607167313274126454966678034438205612572614944847369961019048344972122247601664564485011858348276228233803714710178563260950054136501123049650458727802401993413985911724432415394552533290510804379694920229021195823605376911452525400374536625944378356906384201308089505094226863905347468923015119630572748612845367142195069101297415286269383701583655208994935472337741066765352755824607175250414909797220933371145752034749489788354620026854978129577693418055137828336200990238518498077187808370317223692909770898714132604102377312436858162560398873236739374051359100399794757023681558445546903832974711560232322340674305823161878775396825084064401028273826529883459602724307939469877533333673734091297895191426524713679712715681119783058799311480472000459396638963557576948463784226945289488799290934981300914896573626646991590983610382860571504150232315158218095937264456476446508999658210286939487525259393002267829361833948325053325441866640694302922544107107106823824627137125401006608521437497864651800797363156378615459755821102849159807478768838880265695797473931511822181709255697713074336467950969866600427123434870871750771516209806637475952240499347928510380963944601361425728396106259771639013225152521775513304100471380774265389867041258385915144660952076063148115478709313637523233769743333522926064568920253986874425331137121498137121277887145422141197734593876535435688057347993611088584790869002616698100208118425289631794141630980669440940318351061760809982426023796738913852531911013347762244192011507151931576400433146989015397991604582554261151595491822404409379769611016042984626289714913412315110385368866863490076716753770602156594234141494997288368196396846326724956129101400313372044161657895938810336811936694435000975011525261216549738288705609324423267034969449064340133281341582549821668271529283074229868230456352676625479530695086931774931214138368796619184861545694196537130965483516964517826370188258697065234491854464473048777940964004828147974890145724947943289442429518004648060377863130377501592928482032171908727614737511133971935277320646744140879247640248393691229376540470716291326869370889069844534982643863615034861274271649802807016904213901650409724119574785991221240254227289356111171542492763261473983816944827495661279974004903214611894026046643674821704851474823530292899532432844530532142983289777235125200519866226791190062187339706351483246313268459108408350140870244903680491241377424387378163228463992553357314793531771141838995344977205265824998028385413948643341072468456983384179431940344546553817222585833645187854882601634181509583643727874303029589929162167481046433112548668196886791514068536333771844696419285774816451484565812967193388544959044841068153710856433725407589838403666199527924218637991574879926527147456891323025664105341866103461331937435536054360659445968850830134204984631642077840422734746787323597394668020439616778267575469342401576214442748665190237210383143546623765149490817752512030413220577936341801330428121713687502925120219397313858950855861207800059175511301024652381930899687593565733104978922307605588913123040810418934310408885831307601569252674415052422377062833387811252637587583648994414468923293028805224996277822142592636003890420075965366384955229406310444594094838550838976592574270847357733180413325865022310905048274867198821960124343776548820638077675707450852348208530569502180083591516704973621192377892887138056140984756484265519524365477982376491439164243395299441889502913621414956222033000945326586816988682662949911687788827184735725459294685934759329859315698439797907050716189716050526571950705107953137869947353082092467858192094362145764821046405730311748077795663122956392312552779484478052453604957710999975204937853127114070685945880164115756592608445413300980568744987807474566192682488717000070027388757331303220795377883038860331497207556177286165084796925420194829872024567914754070458042801752595993176019178892975340913000889241735540215777362831048451928108406557553350506301657798227457594461917424723008719798807312288180533525522698239625537169731903480231446218702171052309964520645074724473591579411469246295564521831107431139496425958253216660787643758457359146625858905985549282049574746654292661137504212604149157788496706225675923280079259792488058571844385257094698304385345747271769256800910790145237713014139129486273283018975103007132844139344716047868978948288808121766430701722205400860781485960379779805120064496966256589025827696519357793872432592751708749291930114564937443798384080553574899294675015797835846879332768244404382507770426906888204282588019129502286032729741570664699143283691895834006503712961735728081678518845418207132453779250320185198538725890230515018485492649470670909712755326363247862191829106167972323048402002192557399785508888775421858333828637427435761481254091602043876959042142990372654623731382607626310861137894158579474778593435063816435694213261040158004501744211314319220500069814131406137353327597920686597491840050187773693025441215508830980677774875826205832553134891521781508969454048200490480854214530907494187744553652169905054984640816904947281236305291850587948956396989609636668163997852071966914824261644221631046643504149827821059067896054667416229794049294965887383911366206376798925288865128504145650066740468059813927011507528765859505224489888059060337944237454465903016397388615858414316317004653524341522029631415524732983370724498544501853434550561231829043980961505648492814924675240805849042622846313504163800770806652233646356006833042540722099920511584736591959579968742237035711841720580173132836587489588632523017541454315457973628436180927211096138383156571347342251618474169922892527093660949883768209435840423592764708621948365592859828539448236679146543674456567143054042434929373346366933032659855783686886023266577457821686337736677668914134877771271670145462400181413821104104865403606289279672685679144092006492983059652550357324572187386399951682872815400232089731962602682633035213312975841116351975927251624172552872513297031709638908671508535262899327034263657412551963482237346793375402038217716412778812805676807861840115285532161829675914353958697535438504579219529319936293409832862629914583468657383852364663014804026858072614413570290716795322724399176107302658568637720809931020876297259594430546821964492123804853608111414341032575596706375612444916773295147458129753737825307194393263129453315780186269221261047994109148325971862614397014193733043925816313429438108612154753682776771158696298879825865138914656798091420021726119431497715840098539947435173148284092882470191398346665933908097941775975086120296849197051924464652042156084151494397732086910086634809538547761746947837849817150371953774994034568528901488748134188371880185754009252071464801087061024989300285738245032339017710315785988932292024144742347318598927325617387409482172873420698652586036026464740605237226418823828346701119391825328281581318059744242083341026201035674965416321938033359903369223056456098380561700136868839738163017623030079318927805190650132763393608282613502166709353231383145404408825348908839157269769120753714359820143717301944343055678193259579470455230459567909544696818979975156270898006519452092368773833450710848694707469819753355888851900533491047196743070068256972858503711855032662913057645574052539327101439329312375432642695719621702203236532491938864774074312277931207226254631238239863097179098027545775890619973740480119727887655541279783602109846346237265657392027255151151631886547435446838721558028309770123568789709765897831433509429873286812726027307463652030138524417484585116379108514475455741382742330219295933640507007424966935007992788235322725503929566992359302890952563272540563303565203182544414394595001878101079070599008597227659053877957276805376619614671789949510631333948182119771641380777810028559649636076524795893041813420440970003724590988041399250283666303971087710335142831241472929083712527328604561401174828306879752090419461209841812226004771230865992423547635869476396996368621440849698438393185609836750027267370376515185570634559784782793076205142317280724789565847687181470765149242202372963880745966776716250574113993053683911170675334128880024839086965601556052258022901398487009981014386234452109093742749741785490878597384699488776701322830689480902763304105387260092757405213469859665938684007819673443248208187806338818410820199515146282833510176588453451750745182034348084091049514778047977737272281945005080232485157373646841982442096515533463993182442779782344827957201266126901564572586987688264166463790044368881939889106852394265694979237813545327739497348204286717422867518598550995916371073150948135174128245357509897883088056206281393386349171666521339615774619668840610563080935544255958206338453528904485413913720486825499928191373906310842225078062265409081056442581124951708164436863202067612556396506755940511823926770000027950398248183943274443871934230549936462606964977075604111809455308863245733810076498527521173061375300027206802434723117032230377124019093463615981881956607197707044825296091342302487717717470921044826193314849215898643363163550897111436407034770787552659445129703808726645246078539784032644490692084674487033032648579884509867315852246398479779367641414628119049476454018792668958776702861312962778258808118618253656549047648677778149859869343763896850736602843916103374931679758884158242424660006595915878202464436690329170485319967892776357365960832730040624428143361234311537882554966859081124816702358295696081956668948552820734546799183710667977256831472225235761145596166323184489904407791800252219135406562409628996334935944636679824314159022811307352559019809063150977958061581845060589220378104114227019352341128300608740905134314578205638864469723128095185501160312287302308937037442041389646769169493156997302670362631761020747870017228392809426936497316636517007928267880366568790382436759832026381650307648329459001147103620708972765183080870414931086310887052313259997854935493114703781003287794452205465873008950249463242442237441597997079961938569586290987688209855490686923815445148539336978318457344819593884889020119399231777016087079620451765989414642923234060140202780465295197692007956517348326052365987539553580907353478527728951739471798485103258856014384931381682594777831875039182209614646927541595286350992551435527041335563331164707115858931932743630297983746322316712076297276829376523294301343940439509422854604005423290438706841134791558558062263828930848267749227896907682165144252441464223130393829188261736145605640361568026437883022718683307727636658802974432120692241586836036611708406759039964111643768984904788163950091760968038782586544777936524763256457254496368232542394617234920588157092632344668881617807399264877504605629942782509940621941689715996534974756071247056190631790827808226479283253139091233033394380007795737629722809169093476926460527492392244490662164503680150961616729858300608389079661112162626824957359118684970749121725342867611151772111462443540726137384972944141136641383081505034935596152682178311101045003495958805248021712051594594376846685373670484410156768187326826543497866624007452636612627269950595796066984953481211313678177988416872415049307124991402687775980829581175154340801842209736110293338038756282367374610431148189140406764558736673556533808105846264813893587427546728840368817252342195409494200325378743532423634497930585077127316911293785988218555387313976026797120395970259774233655746581603085238424445692555130056164893545696828901830146597328061451066003187353239702265749009054042928793312960838812721829364018232967026382632957127046294504459005748171761300496278200956295621157571062618857846916906462573166842356586399808986114930525601753554223477867604248940157942735617304777231943535441347701293521577788856003558688470993571117351049368641546026552012810764257904688889753704979494501055243071713523354114164253094068916350758735493229338168188783797611864141578257340829088630771915354198162360783048514514612580410808720999768813423503175940501380138904972727967577732986243616960859390851500528870874966674208199217505521739684498984836046367103754619436658861180348355945163203766946137760170282106286771131089148600858919926681620533593295948710135286026077623755941208642814680431836030994275204624180890212274791253561167071630077573261441895865597750078554085551379243247390278083629378157138456484843483049245910713726505547638891302132969909413844922297866923863088140723881448964906242535573417161790641872969554780879021292260647073617233010285110632968139160998660246835623417894760782743207329982250859009058732705983187279947847273181675803512202599168741658197045738758876290131391004953374068644338408648642294622181665618809177655377231397215351986080577691835972869374214146580658161078434395974704645520761513417096459975385926561168973149337322161717352004461115187229927280162550648238858438444015034109337471772391828055940452033137237669494131683948647505373508098329346800298375739100305785240049600063927994940550879944142874193933064189400206915082857259285383415827597201955530802584331064318170798144599261666549706310200986648042429495422519774789494101794187246351128624964788528876745108052358685342733161298119572547017906953110157714033328275524944977419131400180297246189199485187572859689774656338031569221493093683183566601979635562733503148333105287702368398104857646625401342938602451862661282322072576382705456772797727115562530650221858992730949844293172725782881091076609158063807167877771769485069376457769421305833823980346583209731126531412201664918849100658200677371695027045866196797972010749491762813327340594311881739551716576004350357288766361568585465403976818712738462081269995832718251057646409466161403813174201254078400676759237475071614789330378031971776425276013783803888402882210187450513762346140061613670564060725394280543311034412886528434697535095080213638939828471514470736344290636953063463368191257289347292028401040484187816429911147942363872634816656826651893936401395372326577773961719162900581280504453499360152982839656102267860666137301493993147917333900961548430113442713856387064718669497130872078773512497025691799006067944066265335914132470314753410654643173920382253267472665064329784823483419186385231415552601132978575809007566833462279554725819350235126716083315781275269853922843384593370650386357352384378235628457922306716506113788445077733112042799778802608080498997086434658894631664999165317207247696495605795041729467978927021468790799480446781041945324204607159274410890379246841690663785426457011360376864471726699959321432536169149099522640465330788391430811436048753069590862253320765040297466243801916215153634854741237130661294828193407697592682685695341855237626454216409320115196225733899583821530574354907604521102688365690951497039934334564470172920511797077139070669857463688031925773263420054963604109939105076345116759216739091928880352726409012627279011507687374351884682031640197064652805367982549619083027975946800932473507876362916546531123789531941395325193567081256485178478956071336073628765909747955822217370995014750440789020071137638006937921551808985170020769147926901964845939314547257431602264433363886138680261497743629364093869079515445779267412312959415620302624605377260110579648718436005390719704796768658441430154371835350738195717110912597740496675204161674887707657049864962478972150013001588502585901487424214628327688650126745775874769525094491235611806190743516504433857788662722576926107444496091637562744129121624237622102775835101641156689571755954232278399638411935331893729001940644208762324176369875877557155429698124475893148548658532532890134493190300561200953474575350615999620742475041294765458389560180006523955873319516694303997559337243198118470937384848840722043096300560200369924320181835272737198680887708120898068740045794030964369587666641425095639113599911060590439626750819698467458354519874713818504712467998920559412265335106443733782912533664103406971550705695033320182024516244580808487512943848491965851104462644169699677965852795905764438754029010068478189152690756634816062616890564284131506507414135742515337420988619685295545034027877277630476404639127295833668014919735129107406736582997568116958101552770512744322554555205553560188386179645423385134659303468517392461774373575941372910168112255947361599674935584696026321517376666701141862310815149374981772409668537738901568942079585229327273697726843233143443389732006382838042529407168779898365012244176249699605821513383757934380002408645104906770494681163987142452034197092593570350374337202336463059203203473206988196439161572048552686728462195397048059162977669306511571967729297813305293405784736951827750957920620399398447381918775285625920526411490423046134982808448065536783497226560317058215847946222172474671782270086087382062642751783316281543878759687780243178799203696750696841730662003627347633264173440587344371363532583557232587135299235457926867640347426848905812699778133484224823578869085498467126080498451142506284584848586943538202047230205087824655692018469210752107055107182797407042082740692287878191699493180550965981219518089482791446755814713990204407637221230892934975236535977929005398383218707985642824619049742475880100580070709519838594861405097387082969446367972972200839993666484249091507255331211024611674673055997100602338237543712040844061802026722549744413852534618396741339856542023355230152264005809665926271153910486265596316310154980540407411735117562388780222686073979125915545508551651970894022705680080461374835078883944526995172222504466569148486173244254291616096678356414492454942821590249164950494691798197852077219596630685854451048726893806350187214505744525529636291890726364852180032533125320879021902549152322632923649282979084044066672377525665511653049813049204485959536948814206461866947521524702397317761952156034772121913017847123406348678425475766677141247794354804441836311943714103403193558022658897449273078730997872565946921648165914617931476950647517684977240935767531519539701017846827952654360573130204954512698344611613344110486254586747596230120632531109136085747077938306871461515571594427555583136925913252081013202679604581817529490526404834771292001933428785970454461640599922311172665359615049930184975745918549054371461892887615020429278081289431202552099867387955869175249830259798220051157677325593279470562952885805256753286793091443095225606491639825265725580712921496086571280542066407989123015296663484810626527481279938829681273322424786226228072039900868167199525654991879028159876096415291132450421939847076965433189989041185375263433814888620141222414969647862634973217162633499818977220981834900377824423156417679035767895948901362230119467680069226226022968317328198185700882794639854962564522133563858494685145856088723507883434495946453965153640405626765011202044468051688995072890022775207191359581032028248363721220332018407059934261925208469492003791769908143452176895351490854600627825908348119446745425455066741603801550423188628224811206766116821394453490364147433078639226806880743451877873395165547564079887000540295538329035709474894668469751501765573421708416857748179476997556203735826596000006819383541583582049415189557590899431926261628086113923060924463706441489541422889164235357715596440824558084035357871094315586443212463186744889285770298602766554772517897435209228047362153957194784996631696883354595864232878931599783209283945393784470436319784605813953012574039700138938961349606385109557091342330505979743566784424948222326375318282243580098399480729102662837578820845592053793125569233566646444211135333259347772091399636952152154053787060966423216017116581249674725901537159948003179060406377001856523123128845892405187424757917752757179413535802336852759582676707774842048650587675230149161925740023475327709407091292007773362846941757810194765906100206942373951731405456439493408800103513057406598760252956434794935999977005567318356346106336454531122817214446938969597260622052310613387699039109429513092776997438093946334387768434413127354245135935256322370807209361135467676658866573777564123822898720234396413493004824796353028931215784817341360600035873250383780607016409549815508010775539278168459262773680918223018109277706716842069484396465552602905536867281703321449541003885042016271859309450841746742388400391538538719023221890557028643606768773597929845954963101564099154771671528092227738281767969350055688047296494178194801463982352340684702682102531541740901671529157526855890638708418865243096971653691774894653542648155358833821090387082272587087289573211545320788894755802777031573554733995808077016983417917915258074314941962877498026363177806252542746739697913231342674772342110004062398292283730799832426628973481513825270159771876570597123468966536105422323227276693613279871624937292411178898856252677577225669487084833870193624602535214730865185008586746567780220299222895882585707895902996711215357376203420663441995876603794561833688820281203747856018176613328722578275837835039990406906871214611917368461699350967135431255266156139075846260771238194592494239374424008342865695126555615702329067515974023432674710671294428622180808493225084716646413923911542644550328937853088062764596937445964320945126290701311616199197847805335429903097613806461002066069414824753540481358597274484255427396600650582818986261813992464555549636641040009969621041979283435724704864626542084721776470977696842560590045910039299525381522039082261221266755323514271776011174992834413367698303461157995454529561923869766306516510254796060866961610152143858603137540568794529561133099617393840431892635187588667101909889563771219211507847007703213560559367704539921923120544539795738744480596674115137797430796934882983885381707236394736821872900725365635759334669262370254554699170614533061660805507640934550168096212447366029844773710156944679914397484828525457034744750406033589175080897016586257307791570698829390375804455169520271398272274705012929164405808440193911596524101593499515262222161823516327757874357338638190482700961756578782483348844051837546979343102904646401804595586975596493354238079330694041947734706873177653457007294431022565438701389034433290032763770074066656788939473732341768445665969573670054463929162940825318955231292589489202725532199007303706792437235652165272253505211141591602508315982036492151864397713743178745724555243637614067893882664809259125357377495369898560741312324023211452135039638297832278511807612378098761814440335622030352044009267279184620522377567118416573864662171929725285286865626940316058906440182160610437932693288244511406965321296950968606107682644953528193503488077861199620122204597753446251921874133541796179816803071723144512305130281593962015314226133928205101930786958192942218203912399835540491259325449272872924144830225347523369326605701865759494381154070402169115277097692641785117670784591350253910997209838585366440081008886121618037388402977795360351972471393836558115049140934745794513855291050888288474397276658329273160218601162604396718130235317689970135113724812033168254727298642035595631499755710992756870736428665329582376833921050485384314794834370034801788106052046667264547474391606816911487344435364982542088452582074664086281241055042729555084146357387185364918912091539151408100381011121818935659517856587077808566388537261427283053496012989213383529995741010596238984002266876922343300547932448179235608826781090874779915688332117945676137479873194895627136255600345964755968160315723298720354230769224651833461516156533487920682992420104298624223013414568712564600898244476856149632335359194455993568155066295761020078028610994693442149494501695551634800648839736575105700138805561837699333601888114769984037138345252653389982283352951522777347075277474812790775400815567575547358103612769904996197800127647995271281560730564926617152494214980602213124369932277923464460689057525525791240082527113641864509860138524401266907167357200021589895392257971870017530787505562285367712283028764617453222994860267784071870339491326355036614790046448512199324725627393047508993285787458075131391213351583435045801601923177573686323093299680685708052673435243430770641276933169109404982862743823203595982969370669237386265845002451401134215433866690207772093467451056061931065937396386240523853024240659404421176739130560535256575091143782484839637547840846812815857330592908526182499116442868908096991556779760521531180319965626308593872983951473987682440070549598572299287522492397260718828571118913588530561734576209146202082314360398730610504572958369302911796294929066405851887210000485117307593818969466835483826157387230462129916022670316942094469383285349022450068627860073656774808545471480822728778564873532554597595213777610416764791279926117678915141566622688276989082077298374475074636018663481837569767629631605729345310343436949787208610717774504491127706284973382200455353448651963283077053834988663694924997076689320240283980030763823475852569091783784481675083049397102428238326497671317899551501245670546235756888308688635123111557142521543122452443252560054233349015397584803697034714496609223788175134577519873286538879241681127549654766399584533361182513242234107486342168866346953800062952460630539123424540863652499292651280091196564342455836182864537568907790730409225347311291716247259658333231525086624515392489964184140551080496001082062903897125494130831034023942706665262653374710374478275073681639068120922530408407535201819669199046894803244373388328840185636561783861153032918963523866502092967143745370882983383681163459657574505487845584484743471489772248204910326644645931398616770872877794015818211961174113334107517657896825550521489450957409265184943146573937035289894132080023294047029369047897709424883920197378241530810881630476331246013980598110004236925122065921229523817505487822076881486665300069057665668653775729649085080828425741542107993459214529994912586062079609413626292391945829043417855245829401642176239576949251248683972298425912882635098544646995834121008843746280324697563420733134300198397545330523686358630065404448778994071869994176493352556972893636213844833516171699064370298392429382653449384575330520605891610330325433783811089430435471858694032997158798099846437929238446068340589398229420664149436683621739920119255405652696920004355642546648789763778803714113473315313820276078106058277543564611020757382952474103694585570902672685387049174638068658060375066108166493176147854281104195295679118984534989895595052434493873271280004133940742923762966302649379862111500517803089791564413218078748598535714390087836882630835451339143235305064267566113330357150537107540339970620440400827385743970731485138858085403627687939373820498266051413687192005874336205856878895128800456641818632279840914726802335202648655626765863256559101207914182667532128748176289747491349674271251161962008084017010947268257932113399415814244158011013357714908142643523107889649051563991543931685492276602109186121904495886937757236508333821411176591057376753742034207454978909718839338691050816417762520377476088439428254888099324603528870832612708338806383559751917227909235360199357753144455167857810683075800468130195494934305007650434916371935576936528753528953608889749846181645575045788682403260870765747010313617309566922429280313217112300809232103710090705475866582775217738052707650488396435800387152218139501057575722088578066084872774006153795902384226423278742218733729773424984461677119708138417578127557932861161557789633722845584824568748290398229287784351638266321047960926034143680235378556318533458850928891538239895293409390348055404902213129888117703015515521869040484629726557136815432474195700038326892512154934526593773386518898219365524408623835085088289753458584736551131105217788180840919341072112960860274164133946563376576110596140187860079964950467891544928922385324996933007037779615513782815354864741695877664037189022560832330983134922234752718931962134472396179585021173030980958306104762486204422035712055841341163489622504656169232982463143801265408757690670215025484893268591214129376788415868402554789932745203657834379889171629261977452969842627468299722269749182821054626324751847451849489309090051953272352987755272854326318333291611673707746756060191869785928863535958875888347786941932810352487396300803498433577472562475928582879737845868755315989647133542854398504551373871305737790168572292648733036105465166274125908680582657534870529830862960322408707839464250316240062119206114386954025824128403498315490522622790837062693475231634058786673419790709230086404247491615053028293668591818857368078958486634203181976583387392965110257122778890439381878558297298877407836600272102103994574511013483807570596892538909629729082044402797113303618479292417651926558671260297281284585276328436024844604289678501940349440970150604040856620891572532267540038573413069815226372711048995206443566441523931099018739729283698919874904525588199713082054870940420452038381384743682526392816527991579141718150283350880424645844602852799884863315197140626795267561744250045703874428286844286227122937452970676197152840030230083406474243149442947821656186197489284294835963121719870819880677568801894964902725886206699414208133792044921214566477821183757761466443925169561482816635206584841901902881065414960541244328114508374614057817474360449943964842267877003701860730937057767024388776326076147802304308924184243514947957353202118287652468961912272221205828397814116576054592831950613290414932104947294534975975894446097895396123716737086808640631499583170737005265251959808017057292048361895912849250679662197973666123474572187813767364182507444405034190924243284457046936791551502348106702437651040402175678811826115748080611227775486132892587091025082272954840805288286965521537576275049120930563065843881183604105908734667847000026006268706787759553603188394073466696302311131984414079402221559994798550831947862264512580270750776914892473168110726660591745681486396094385151303807059855562922282988504236277963663517090477010731625353750562909647525391196826936782303082595849114129574816917392002646281596327367470227717441168093316526534352476925988718522897653901008598459374986976547473325585260831615224378546285825253948607312393645854678942220607539059619932186117409564809065223031440620660932351833237050634174903136635262733201719305161787842955293225185382656933730542320938732318869023638111600355746953044479879430637503486966340709751291904511903362900666148351876372740698669709605766404347004660540096674922258610384590120220634294472258134235442252146022983420203339906646438082231141732348632933177352864407156969958502146915553928641942399277058068613631149819986843911864027759590383471575383162802244125980167417391309676151151451476714201467415450851652947685009127599401140377630454792496970262629764714444901418220257108447128696098468334036726646164645042817030218535847386052002535465093307459797888195340125974674931607824029114488009996640173724423863722659374961412558087356797933173894958827768764086604629736607521482698785349687004826816966867797633620729476077307129539231540141811156409997094716268556737736663581516940982249646717076184538069502473601765784420070076851094531284691913368218350595530885908164919101277521512116246685653938422606803287644192641222688524278012586054421977114726328686245754586626756514858412884125863413946913940264418819239682315371155549359607533802861957747041813690860871613617317669913932581274034380787104005791428961710814060916972039271411159153579217366344442946514601305621059540652001513332572045649676071060001435684050809021970195697739759189511377581727962826176412954589459068061916269837878873385024242762757032680578954926187907795197950120589384994946861215955046629127568615319823513248687725658008484870649741630371200021890953400377259838472959923893171527620236992736550791348564456320715581794266766785637413844557266143707460270116002806812808666649833093603509832919205718813653559126713753150257779137123380696364063085772223487138775177383281378626946611693582287805185892792704877633172086190980136675783373368093603927377429409859534757439960032296915088046026813531084870899914631961503124110400603802572710271740618103011496249235878649459242451508792830204896459265958066947711594719463867690054403586747122863706890004510428093374516530728417451835976285270242790198447667605133311435801630597081373170213211402423292261712427671861772390536918349442962515861398214813159250349752777031423936955067911809169010325889925635154552558846397465242922069656420093214926734440141034750814528802542735092988253108762580539145746350423296366324094193226465542551365535157821135238897610445966910969192307006696832230411425366456511054296315491340285296369008782601108402240814881324432949441228497575186553192843098847420567392200838313811030759809468987091486281184806365778957935233375362073835928487008352508920258154873707624234749790050288096599276949877907516424440707572856357406447096692642826347329564768296154388245848245842735732868615093932005684683542676791800987892652126485512889887894398932011847062480245670992054350954990617687658427849722968329166840074277096757154972449133195364023343283500375576592686587184836444730557943188300707503537509180937428729779962050996094587694337758960586558534685797271620533436663352547929389329045802477529985729018181772959745260972515041096627211504741021499862943516900683467191630082578200470186205161139850668819557442818127237389888120402361455289913501813797714948616001947469506437826770042847133148823499414730396304807612251011328673758203813087675230468958438382811303262281869462152720057018927355341925643058572711892113053263621783161907956860648033655971487324919744747168576709497978571033672988141860535224653442735237068063949249576395309201787351117179845012694026888747972931889793321326648792647221789556184916301047543847619808904106328043279607463552909724336881235779132525243780610302132583874555179719041963113244233833239601113273255770818099994492415695119371050686321229609318192207364593754511247507412375051607612444450636118887083312311897483939872206344046070286338969537622250965161609193688765684664001402780221150677561787915650862465775754082458569311032055437349013114020139464754479021729407319481747184773201737836163319415928945040770891296958381827220539676328324242302658521102003583629577603857033774945246467454123668663895211826350744072148842085348941663542088993338728873294821933491826365770426935975127716358768300012254601192216497349822911309019473526623944912495622311665696514248781086692718556627390196743320054904834202962117365614123830107434157961975151511218826739376489883290983430650946289998997870015734167657911478538232424069984037548997699193472052442071097794611800966651046772259196999901708606827287857473390860474733382566175646719626195880853187561806408441617348930774058297586081490154277562901519723824635832097890737821337654553607171292007857141702302651180503466972004900245915827512507641365421438124415625696299305183705767853518385937366931888292627183923592203833287890134298402788077238005220302969781187156148595399767213127755995298998215056894923865754092155414163341399009214237111248228814684249894430618865406153879906378434606644725842634763322275100383238448732674727538792892064421067100488202852054087232645105776192622343234818773011706755163617161117968418498102876142605834144153628389950113620964133093749770428169832126616072251781608596282533429537653381582997478533728395227516476456885566855823637866546483166255241182415698712213633908225535931939454358688811558438075261374144597340351911479301904657240056857842193298263009987341089282051062289767455293661229558099780026445034430544144421839605715647257731984024769648610127983199095547812445093136881886987413732018698616705699123502242711351419539496145650320873815117600326050883769474495672188209480990342946652444815927981419350610686058401128328178779912749320323858627953038076562440042668636035997912019364736927195840451063917022404521379167420958147494696433506161421543255280744356805379659431239107049239075296352097302000209858588060366232889373243409088046707145959372043640283276359700912965315211190648527318758642688591282895452893138301611712650850044006406191153632348988991005477849787725380338633381381727636598586281112385776073971072354315374601357308875363899693376453975435853176895389376275035512797029878928875451253555197039795614183696092929019026557662553555176635942307921344345109802206390567845503563705567305350643657831796662506745012243636247234811856580868216788800655284405084048618930847198675561680352527632728919941290654286234654403878170751733619666586290543955450292479512238752572126695408080191687783106174857164415068627075706416654981741600558615794180951374060661530120047752293726946986597135901554993910977804745740782502768680427381493207663998437918037093670780764160554738956863461441607411362661909413353475224877918744958641641859778520469170095130782177680813195809731910656469664231939333259762519524932828665593124123190281439856350000779954165469567122658389271938241836039102413260135940569377227250886066281141786192701327991265008582478776735706991226319577074869226192317544175380313538834731547377570214698660929306660570366829788027952815326565479528217031932959011588592679665030506082475686642219770825576262769737884140952350806179072482966403353107023047762667547947668542555338576731953593559107753710427557409766867484039945533856397277070765437792900541200103638859452337481931040744233210560371101822139129947167241152169861703726881537409547394614139302644302132914020605312422256868411456119778581380320078362855047466421177905614462329165857097272341733815758349234260800626074640955098899401654175349936987345715903980537857307832265415611872921427515665361056768402700295754498454767092577511107564774664579941760923894331721138383645414846348181896784511475065827050400544496191411562326050475592353117217060060917558831217762745287371410580365833103078858581427371926198046678087203645869712774397817418202543687922502012833026793468709475561511925047211499045120759046457155128518186157368400969384675192411299847694089713180074046103542738363780466361590859831912031960322819369193461992105683440019297742500046447931204536039959397300940148479624114733839594744118465352950164864187902877258525314682651644152134960560139239919366398148323435425514048668417742060432050741059738990932443805632079510469380245276872916698887433073115773964962906138360294394735302322871567139571175964289718133239052684013718464927210753896385993588262024928100333341643185441627394059767464850437199021812651097120839136415007617668874215869737925204241328763021291119083630904460217766541169855661674385537433835036574667907253028716119991163615005243224881130588175824032338925837636617776554812153354436951878332290945573823473855540092362844040362432718856803560507588876088423723874849649205163936049820056262630212036201591192023548554791106117081866914480999527051079642282472018437776287810965230314583094977557697634890357086904967744434480723851472225779552387633330364902282108222284387757973010877331929041703996563793220063847268611687862013473980018880954805955415539957163900524388429088476596758136132792702190873450361289287173030797943775687946578789541186982930441490408895108086630100923624394433967782488766746382956516912282233382948305243588362475570943535670521014867590196430322917212737062585461927651568614425065788727108588040477833328893050035773451157072499437033925091574011452472211410041991807043794579746801510269927395773287206011530770479372998284162544426139744944650429161222846616331724294682436395144120556783447068608579226347282772285617411740169858671855473030168400853553908296833575421697901276886793430255271850385205900812310889918627083130353293355366737313684561729766322978108924491254835874752434038654550371511360406105898327058709124448049437184421917085602993472098810116208215443538266132422974678789338015090410529712481430093716485717532436534169495137341042980189043851586490990058773661045888626135081226647269939231480872598598701930894375644820888238072327110534137292557598452497348754106318488660204775708806650208677949938430788556545430157257179896819353427483248840328974181030448653116701428360853752801405088346422714052288388832149728158782318324744517146897312546059645334180153165428586590295797625265345158487725434433732349458287780287578663736290802779223487148465832154359738568654019258230537171908698813542968638580354992671892263434490154980929803811283525246728909426271195662956405115452048311256380336096030560205440308656082271525058028735523656629759320701287716732241833346407462336031253633312027599747932388011527619910922872828578318177676723663523265720029115325993411185774950954742982504208561834461711279679812409348606484443868954175045246733383299465481694596207185983957048841646844230621889004669342703959879899020929397849929986346593546624053051602780563334373089228809357492357000579127338828745576280365107013052152350211017113223528999424280212016834102758330095809199480112799426345096751617051440021330732777431491459371648831829001200801688143658665840101172529368969634176500589112293444796589472351976336869779736921389302949226001965811936273442594691711380683770127676587142658835460454595281869626248322001966267241486261983051544117585001859821276579674953675968385200276445764843568209449148296559305350184467161961005146744627809064528726846814311863161459262700056772806000018865562834954034348524251233319427253180894947934550542733851595172986547691938891523388725658708293108203755344990348810471070104295708870864182808007504897736917302499294298509427125816865262224966648649553418058766664988336889895413204034598201272445170014250499082268096600721906531540228522399808894627503360224837563183467921839687817760613727979169819093559468275234963479881817317961924549290897247017762327406674179663307228089702752491482516735986162074458937047104188696040500605969137155546294690254834550807868420552382534281512859658565628280578249425802574110311891741986306139265887531366043434895299314941776540395478907540767743859074974292678919624215891193087198591585079654249457565695594609099583239362592189533833779591837237851920779525459222472934093179220584423370602671142475675960899144182205115147478818600002785226209233721300880704429938492006835938703960937075511903912458248020816268939370890206582257333554694639281057952223531660265483165114130119963872548565504847250429436689246898583810464699683124873613642912029003470184606078838021599586500775758604586700489018736643086190100625752974688417248032404946555569799565752395758719331095724444997576381687107906755742985310575408101824611651065041196722751601628851146521635784875124461804411006771142971294742757533000930070045721096381930825990111649521826408759931819842382503303954067402817295675985668578589809141348741205816919269659755275735034180538790095054217848727413568991541301925660721457677981263330832839351410862680823397219207552576377574085610235872413387379196696086430996761983870797793637292566827755427235165825368388013593874701298323838860040703969089446504482357686713997361999664678062703697423390194781412011561401897979513370163178331591284418382623221024288633831195403153480034000609130117554678292837971002130549507683783552544618644204969377134484522473291130433734286903133565265259162371316501577677195924756647792887090513487712141283983046807568913025811867134812387995358972643754627784947303746072686971839748853179889057651923695229278039857396578685232502483619812524639140588670025216360075543830045945467459016837377039427356800578150206162565480003713031816501053963803287886793761789731921779211975530525531672096483264108648701711281570417007750394236986002311305541977856445028149112073097415282811822444161038842444093192760024756845422087729356527304816881197918580222879497826888622418877349867933428743857470625947394777166129666013623302863261689886667645534831021822274729373873894180830901276158471051222315655409668723758872637980003335586123594147769902404772390420460868687949966922555452753676188191638637355562182310360397930846437449465763978693862225336298978471558017527186099726159991924948815665771885572185705391516289471004479415501378127677313085364986107041087301801690744120623798468786794931436047085202335813295316129725444069765449306111404542999166420989435283227871790548702372204861592155617858304307750803821228754551234543462417532820868309537918590678034651402078306922298537863765402201647422439477044213980244658741144140280629987207975179711509077827368840990023853362795845624493972198380802223598206038463970590868189369883114080470799967192474605654247557238246039993027578475249343915966589500360848055035438462983092909973050919718810036647783960600160514487361592358409426314051266961011552709311507397540924327716725929990895214323012336280085636404100235299662089393278190624536171815282124693813020505544444981320233350466332107144257449899304279419886133131905304529018702307265153135524829371184129532763800474908741809534419489540965025610381394614170570043890481518481598783498925903909149784592476084211408160988912178369858356725609786417417918647323806899622879648666581201502976148934053740470977977088863294721807203881678865435439018100141133281417533903689470422502403409470303456985334924698519951532404101966207270865948729983909217558480802168620772654904161379137141554999425549320049620488578780738414055560936652637543763742138023051834316269487218662614966408119270544463654840321397197328686614319536797239813719837913962956498457605637535284220373087047260497742957860880926235820129966148439926961204730306101226950251243956459292698626381512267861206907921746253068000337993561664093907791257683352878509419230749202184875106280942906395650772677867828677220167006434002584172058154959712514953685663982350319428894415033601164961988088301697193009364784643168735576289625487601058531723037674484419531841156088060267444947900296987847856205196227336710153866384913544383181026240153423687721873398698946447417039679713459259393388140480609128487538532526144187497811031130505569625725119753356167955183501917559907610303144451761480978464742595237194377544265793677086811289395784512723841836127793090877954259872141853706397796308062075996533715467232288274897089611975016211068104071052588462865056032654476567664192740071063530870617717886732671054770414471733039114417625724103558592269865490140667576234900410040438243584665690596968934019428599226497742973840462490050962763958861870205665218224486175874936038809614111103923507622551439514688532302275095524668121976780882974952603947170290645167670876173419411910559431050616782997184724883244144229349849520986501318114947696846557341338496271506208400359496791243500125629418917359582201640023548212823044517366826929006682440366772453314099808526410047212474022497041151238907214691355415723602852075980441056873380318256169262493776860562521175999068544361634472152427526476702781921987259188096008077659777432180228016863612581268948969899616018837320812290736295324019422008115168023129141311120548675182780909449775303797937674017120192313744000480215636567189525862755134445196920976354314259549310530525974622387804457427994832114141967268231292549789448044199234866692108048037690793814812616496376951011901353980050847208729521993540631153619587752375993791935378193981784462005403931079797183119247996711428500422083728743971452364768416564210677514768727302429043059771390447796454866745049067740089761548711721570414319866308903142693015540967074811640640415088718636427793559091254710259842545103254945019441086152827207788408431428631215809118559789681076465799730433423581490241840851565167446588552510044242860767303084959637695286566250921150636976579967600249590083715464614328964608200673840334321206556349110191710438007989784595244085645588132754426633351399938781566585138335721508045585742103175056222793582748128446351044803241460615219327336843421293685430221545065047693906118617657795918817343720494262207245721515365031110069267948020836432128920794256321341635666846055623959024181118011403077618412176045509694932730354743013040351462325011495171940607161109857068514756999003494681485495956877411302105733600434862973497019423949445780910229040071364431417700033563888847466526585705925744922441967088839058994048876420900373453264257450331937317366416804827477174743960041983873022681931174807245893623867260622846290006447690188225635862209222988921300619212210368076226159462009538307337640410082437652661670863655692040214755140934772815103907932055055759537713134171434639753355081060219688705264749446786710930059216597308621481843759338990217058162724327875660399214962294540932827654636940318212575356103293892515408542502399603784640036509996165610872175501357142592914929069738950183617087670242081739356376799665090583456441826202373081444314147268764479070557643120740465781564216698051131105189805635113662595637448466730487140309666561699888502152608426014909964172468768066458285882572712444530807983491553058684001337772128374300952599253896508136121943362248424582289632724844531339830136148786098329208722110438358909065875522649734048738212828975268394521530929006268395670599556211247455679057113099761736763025484432311365759679904379883064946721097151846005594889405137152387574067939751085434338002122542916566362288297283953097955568329765951302022148674100182310687313704806572008181418395840576498720075424552471528377758812824128187600470101818033762270804298378957998596952367481353396676267977813325841974315296597516358732330929151210335851756158437076236736864528939689556682233874686708675092372450175851399210726714294920047356329376288877424652993399418264395656408928334496322184335450533993718422830542688653700159454337852600874797983344095875914415666230125022220502955957248352954674273383061733192509821162450058290077099173931136806577287092337677314290085140447545188169128868959897952129069862093430892739603581483827227089700634540936139195257979392442254015838326901843285310781318874399289960362047838780127005124209838986792321341721578227440820056594240401913145478768332173298731544470583639422386842651985105311060862287802650312870901301966974115222207085273632047325654835169659889846769711376417536379634166253996311207589116629466045233348002028987694809156484745104076302600865530611561308520751185820949274165145551659333685833560738290904014180883277797499448352673370211057599991203152341623354548261480638298877465652590966439869916294079526492309051118585595720225512959326971307359484676804678368676532686203686228156878096299678533858572227647760563510431756725127913203098949441143416238137297072571109676552274305152332706692494510867982694817203264817980579876920424855565834391244114484035737115521351316407014520800434959569266046243909032138197074018849896894918616212672018958299262314751563467924364686520064660830090008884486284427841558827892918654708725374463299888069756719486936048806912315612513201273634297353770834855214678760274611522967908561437857914970371694399947954131340229418307481306633420971632062331722842824031097059986890503648986412575067168206767244786004974986243184714276401789414404091586103473126223953598726719403924867260266849838352013681213850222272998017040721495998448290304326179186210442967993954112287745989124726405648570351396922732531605831736175326611982053529689062165735061493810517647294268852324355051515593224637058530383841123637542479360647664106499770905288008248969459400159845778941125015905328063041873623931244651412078747493581600687528142565777880478123657937935727396911366599545406115900438153477000263157702509673547930593478967710018837958285331826209616695943875324090493719002058480064801158247972224095261796288441719650762604704106775058950651381875198354757996988580722885580313273867840420087107592341711597712850404942693854197631402833273341325192495707836239526963141461915239058323982770151941167138106250508168437433036969135391590439604758720300802446639805030533400521265594587597700496055019835141600436179526425708780101392809067129306802554503231349675866449271643650624737763692557569105515722788717041310997395703097769824750466876156801694365036369859645275212897788385195500611321023962068806254730392483084627408531868576668345099944165956437073041914523588541456368783195776589611716181237679595008807746967953290150111302608477021836734316200788454742403552625095234882158410710173741771413235182329723286693540403358662159385653041711519437954459643324913278775600133710342891368536909586933422988653104877757240567988404693418787897196907927730944079335711789554489407130451905806362833002752004905480593311322607199944630579448027071119355299937442849897260145138665966952709631406522659104189585673927587839729925120343112464146425998837550541575044268764038255441237065353810182950326241781506878604542699040285937769984791102199812534657876959163317237117664341410691092531633694072247771659126969577782843788982852908924955988521254619824842360566049817027181336577860425872437701245962101852610571184966840021347881704910921925298843469644495241991749829863177441975883712019138396751845547210615509124645068794535740835435810630326372939849724256080813332216445620563784031920806422745021536177631492862331723156494318131853106697918375522544376119872408764132181428651648901531222947859815283343798974019747538099169896040744572233585667903046159266504149379596246054983349063558401930007429954932310458860762660488329273432139883792689164733402720821573463728093462628126103944887984130323811362948827158576776375885479478633014956703748694752328801909370507147289651570088387948362180497272117606963934371908076282066371771983230657878299723931337049970209715515105309548966442470687439309199011280391797409971485455409254779694742477978465822872993135166167363462112936925007265930410709589002033258006718651570620042927379905445946772520554762364641989104704551402253096151946713604755012859376392834517594376506678001429500461643652611457039148736766131817218538271667439118069926841802688080810749288730503970072958636386417170701378983788261041411229578161973515480472731819989948048196512431785939315342067473847255971102094361140018481573752172561254064281734969386615901324190068865415923065076128051537666455356951848396703171916059329874533798137583539402629329542497046895392568396555234512601191503841390049884105917514251193849260367185021091006010977946538406815528446624147431131066533880098954618242462496891113976051249577433555129168706270372918028257123169367693529124575211438688254939862844591552408480450067152014076335980447549538825922101482367667585097970835135163655783900267288209981748470299619043156256617925119223702662626280336846884143557327943465996386871896514372103500896829850273181055021347435136672459744343826703992053729670305658319060290271783536358083208041600029449401959956185565744634176714415385676490736746526818332189106453552211880417988524264196850039356487068836625039702971088357114793963729883524219903947672615702931517276687975877918110802349491125540201160850060914505688490421513200259737656193261147514797564847284917079304510279875563516336061201148990531250986041364700526855774735393197472294366373927570014128059768993589248761412439345291855294512340451909681349355864253119259886775374079491598697340031397580822279320455792405768342696552783261236678429458333450476748899646870100170848869302759793177909522909848112989732916703664109671446994534871035074465983121176476716515546492009802825714876234708966564192936443747766184083688424496736472817165263230763533647747028840563645893332155256057085247634334798912417197106711589636800423722031014841908593675973680591220142578057308790790335468904649674839882724005257043566403613662832736970029759397260630162518783678951430659204595143082382386700076112128347552613944457828301177290309248572315663811864032799439599110156647417939177228518730448786822206931204504800172354775118126448094691317865946064881841523626441510553072280463963873652648942857272914936413771560820263322697282937822827936494835282906763423868306935317329647028249393536756470448857634205840358465748002610614004226857181783665283663241099625948478727305900351326580185932380499254372637621999105642028171928037958110474673578407495935223724028885047056481779475742398204565031546615680035837101678481458244047037259434514266500840441123910773284416421358358290892659256841585394710985068638370165950865507478133345611301052825969407797339189119824142226620984740953214195810044792558390090581473337548073771613309303008293929416629199056122796260508328847870616139032739554509554557961649153138146912947372622667217766294291567119714412672361186047351660795212944070349297326138872321635046800494089599153156972483018656471652196343191161431361166252936869167666506788523167931062831251131670165053018479541964663826076438433110514915971551003406502880941945826495981129778471200744299831825772398072535165166779488492222947759093548485555362391345558892417894084213541885977612292560193544179354010759612252108163505566832409329078186365697518265117850714735263104319574028258946837762573329283922476177643684750584728918421800557377501408570177152445676911471200843906206122826260776513312018099850441507944407947998398193818955469055158244745198268023633694504269546484819672006647330644898285738268836693825367166532317492773885728467839810076997297641359923097671645973741496280572129693887046915268838789108288545282859436339134713221504917399115340445370226617854595703893932942382143681753587868271738404795593839497891812058234566834916563866946706094452083135058648122091133503147000749761527465142667494975628683273739115420559527537905213722660138813038986238579970870957071000101385590300309044918809616719672979334703817785160735532558880298029307434712067677254986284921429137524897962745118180543413789750380696094776234214609141265753590247836944811736131802466174952158985061073766889869249845259715216612835938575512290686345937390926163363379934662502465966060227393943143823486731181926051921404945489741082963440384620028838705118510961411751172311142331479143824045799754290168296562709563444247806767037993838672801513661664001869224854575428668035928202635817484412336060868026692018768597792267031395389153271600160574906944329490741844155332538067092828278603185170594442812060679094462319892462996408642648195655071581718088613158161917106070278107183544122185051691464571026473031597762656118510963519645780348562189669034910299579182037022639400422327777642871828642129328631142762605145847400587050409646921278735903837216262245886696763736039403290539586527260386281691839871447144887550119167449018784664987712431413264661985176632845345969178725691921544854498162015935314058695127839838045767968382768230985798490914761965524111356505044930900636917583891989627773499021416158006023542844718139759243095259385307657063906134758002193246129966819138894970373061868744123971567481511220139436580411920296422081699450216084168513395571052321971691289227374961462372185872267823290414314243782125850430489865854783471565616214337643451054824074811792066043024197420494667583380575973757105691741450095228086424928801937910838637992200871546286014532384165199485153996618906642260198585408987417581158806446819916988667767846812541408478476267637702888749164812935543978160139430842017606745362914196022198812432184388540625059107010330411175495851149134289967581157907654078510379775722628975753023395724844937604090523298019746042769160532617191389596860382935213036593670725110941470758600431856586850897003209406448005777598751854040183529950161772832238563776659613111464195098480381717183463468551061739026223741529962473584489706862749793151054009231741013965435783814257298310020173658407518482436785430769711809056974114569578560226008690372407612270439113224766030743902773689771647526535609928738448173078047517728808496796503620999292018540738875221277823768442221156348439082116515353883695904752536464901558583753426521381492422215372781061140686915330825229604810806505124979701846714992414961393846656245356566834728398099820869364036723128148608833074276046595385177949687380244676369741068187753198649564652396347476108828883905458438564936689355522993472717198336522503325815719405291028199468764210655099503492685324331097726102652227714141005154592404745651038757723963430193045639329926360972583560383082982076933913267405329523231791654667533667628739614198780447810036489500632620827339802454157391556847164113520102632885289419343718334062440440588889742759303021378416597360766878511692866174122940897881742331923173944340970256793432910137674078802505032730251695228122448075455412793044482690852273775703990493664559484784686298901490925976104016142421530238301455442269176668896208617018020319132454942188422646135992573738404748427995183738392699162569794516477141744279894228211316170410351952261246159903641686329867568080925661207553084084171097872489312139837350299262412609625035008896184253408257185494572522628396878397941038018894809457852991545427382344570131278085619891645866989748963107440888112951354016017839553764231769681845796636117028364511886172240832323866891638415649674482725342732986584949746225915353279432083897744796973335489871340016438783380342576848253549430582981324103752494651824997685624702702867087004584561085032129556730997882362209110350184836510267651786858567968409017468402758323292123012143540569378808453360346076338078923201893811603648423842904236178191149715997233992399579096161673389813647049843762207351167673494437887760973178162874505974614747112086621552222481458391187564864520885060648164473744171270702425286607882804042209906027475476609475690786522527237217866143465087553530570693078266496899779846801779046830359267205099077321020053729248735334394551387931811019131629212379154038321178845578893329326217730462032308449102796280617174823687901434949598570900593310185070928460217864630644677030331494758085364714914639394009404599205865412066248764779190031970731402069186149541468439944004127461496978039468488563337719403742561457279976040226275883918787615588303671529152719923510789581928597575504397262053162095228155778090118208726573423730449497676530397077559252446641938763001138056535680453570342750505006840661309041242301863245260870864759383920265935100032313194439189127022407989388012685707220769396643964497266121665217160300190040662095972610333248506301573174107792958436179015173214259347214287666102171453413413366866146995726717557098912306968786692009367246489697391647874248603449083050967826405232459656414729966591040337732789809900207506036476779149784851175774672359873296182827347887176693938516149476293081064229568307792829028541066221193358973516211163546301495564633323655452114315766015611816489320766569475967877791305085367043114863461028585562970393567043156464051297343936805765751944188069845544332455015903576821337781270117752268147999182553275693857414510683328915937618183589158766284233608067675907655074673747774735642338106559063439089657347780012040910758324579844318258076034391356681673677138182590000339981803626467699956288935864847765186211881757798267189603409450858087779569764153753013492866586490718830744095822071162467878984887060268551203353050871650954383300192090006263036180399906145685784600074650730848466587899595570919438803039295398112769949700399572535363591400754675165056282780182495744117465415929291517083309708655143311000809868928410053306666574083430163188120012398675640331358704563577201961735800906088366385009158489541919415201310202392876582375505406516220402063183963808481109940358092200347091769560101831105706817638658402263937124523656160024199895020230697028701340563057710709323143056698903213202466085250573761196411713477472891144790319727825476037901668318050733851370284793701094359780596152337554380269292120567729463579425919511913437322879554637014438546996187900479960251306553793689754331215854973088205031846389279299966588615411997610489832061315873485237120184174904077631164423606612076804657263235001247138008053710198189560317660797963553626458064300182671476663625081384536623159330134951794314921498675237713104634684660002028245912992054490354820777187152453803188705759502478661950105484438458055274278665491252629044365406937869915256162128577051790488893073877020558317887892421633252348223104299731258723854539840176309427374692245085112983333779329971001422720469427140338384235521895646049405928410304907509748615733305034501800762604489002730796736788964790200767781354303490731910137840544684714074101262791819665564285974919300258055357613825181264739251238980688985393655921742414030015708731108205178759151845271304744384291316829628370842512249359200883535668572870478586271313853912976460215994024171027255193087737745879509368580667792516191444684635533823511134322132056006403587995639939062505340878945886258322220141412239009928783724059910255855139612232291125266994502067426909246352593454182146639200877828526456178183326236192036239075916658170064700013296956608451604215140924124375650801790732661531679553048775488893125049569105458672042683491265100318411346425277568450860811950956583038698033041557165481305049422422602534405610581208414132525437489167259141602119430679153381996980552029444166247138296963046692040499212423870977756905102357055871284347396010331976296991627968647498615719288231000601450512877561945118207773180309364040682428932204190499169591080237653662552735668632744822116903060922606489453975752661267174175194926332344302498635837537320636139984841154571998744066967358111354058694507636636601994461978618543504132943183416186208718355488045227570429607006511520315649649142716538240826024310846430454948432916145598255512617292223985634269164941015115343562527461433829602585887874665763308199159828542866251696993480112123468164357917647236420662873647949205258392702610887180895215759557275508279362168842182867141036512372598792349776908369240082658503250089051347065266849094191803525144477381648445990382796424234451196183162090016555534810904264752285916607506770861905532175578424079112482037142431348939397606128966068688073419787382305456867651486240919061880096160435044504757731774103073074720235667231956210862000564069466394502368110040721169978738825015667312092626138840018600744783971563509278781364775603043231877664511084158941461948876335095258565060695797189301163747427088152472588234988242051087587214356655288655900491047018756735137908617456596065677000578726268311219889505142622178976489525846668238268795440044376877409546353313668446896136173105010874860388737480157793667787421598755445752342775015383234312873403118086893498665196495645823435337672789619123059968122826667644274762087355631745485690365278420680339071122705488231296802201687871815234441940583618800874894310154775137094909573917859878885062621385608761723387437040699987649639754824507065094533213034382448948083230920369077302716337384938267709156226644776207380164622202331595725669838797101442934729142187815676807907114521086736483986673203580821874094750902079217661862269254218987567013442563524152990993390224633544513426540336946408741839942822132311283076788881060869975444041060779254924683504634809237197680354053904443073696108385555670835167023622979369335979569451235418279940445524827663919841959602364723951986489377630178806078391300352715940766854943520071546062350644930135252503832764324691146648644150262778869371700657555757005347063725166216681894457154678192839651272320803079255452209151026532641359520415156795720823043486778806781137647049242743861002407434013411231004876096858061176427672559502093094107924940580750853231619663143260155313153061924411694558219418246189843429739073011866059904528823886743774286095061818086672159761514987709047491125989355336491417032292331613761669193138678088562191555583256240655003777434209719629465792744499475590172282124414287389216182205646873096038318980801516319415058443085365182940332488910918722587033529080597519939869962840758949510815393278609661881511890417990450123941037318620753798336020082003115931746042195434542757483764104533163202480135574125713635888971328405719840118348082185574033857701845284303710146823053919656965782250522755210250871086478931016226756152107613477153982610866409818135891360428865451356987383433636586849509077899563126978840795762836168926432088885031784693336018331411324421930815789171588349392779418441767265831309530315171073134464346071544732121105554171049019541867501918563840227205425896560723621286360245717273386119592732230056198912610807689409503580530280198111120767520090251952631044818836299467326457942906596636570174529478196514472422291487723770428024651402379103631576065971427030353774383654488962758432455749318911102055682156161053953264314883615959049302816319644858108332686506382044291969359687849163702383555122155466870117479091689705269314702450925854630512677941321614023825787035236336618857446824635981748547743712253492233491333108154749726250432409984566784957912220934496351188370861208388248752807054077673675935451755577409901794891561890968313125630194605976466480605985288846448116091065482832710717802491666960062136856602574408209510547450205628434239877285296759705223857131489307365766814697828985402963391190244062654854908554356816661222534206693989530586283451291378507656935649772918338602851202260575559945214140506211414952998726798249086647293246382728671375368428824800981131886685502269957369166390239454974148610966505804300520354686039682675393531329592966131222181570512207503318958850599528717229502568461788076464304717365416791479846966573326614927106145862299424572811272839201448557763671763034265817435580072668324340081204646378462384659526338439459099435984365342442541093256923165313897146834438241061927351119941630029127241233691647802779667161690374610703143182874296764758829180632719323800173173686903194150960836417444177352693286480306056613589661794051158606306549467303570846048930354845281871431791128128021424250065588772208836554787046581367717832080216083258467765481171027592957418033506986634913887094670431582808609990549269751483234131606140345881363895617870741474838804997727280341774555721552640080433834974613592345164458125754817781412720069154207795424838811901487477919880948497906556042698069785744404845749195841658674359617092260134874861248876908457477540726738837325421593128855437027263447262603250514705993560389021326104139012680159740192346490341752070035583268260970348519390920299167404987425741825638903355704140981267408214780805245684383643229319678722608247090965905104099717176343830393191266075388225518236724533277781602389987793625580159485227729443046606384263524415820004932869471462781984624731037260395830747880824570751334105394585751029009779271020202934368233476168139753626277610367178626562698298222024921782604693042039800210265339965647541088404591298555688463116678944662693746428171233818419257980160409575619358937307033713807553624424510416231714723051924544193378361425766278292613794321150236055492335316975220956287016546232046610725526637498621136166427903447846686361263498141949378641708675980129245895923715008135266887170468324788872047787541429333153782059426410922518913673203126486255445954474076155299498866572823682736095076672826686766548060493131343185100029770564429954663082042233402789709856216338770940945191067216636124083349839112014167947116570863658908971221227295398993883385106015450340836268801893028888779566461649795968885605466844255817442105956936993360807293711926135932296393908328863947607658351366684701754607831704560487287528574564469120423361229403274075389215699910504001481705185108289525575079291687274766397498456569873371017035159962386454935954698286169872754931258465457125609366317940689446617603876184138480001119406908017205243156279777815041405365959180009958269513213372882086257879586194705083169428632725857919717736152180881237492683294928004447250790571917907969439214627126070533668436718976807199484427115778133618049898733542942271364968521672084518993489497784380742793515379355195665669549481675109825761976392915887750523929657228590883417853623747954800523206732719975988457797814846924886090631030455167454626706205888818544199933718264549418815088633810126468877739359718030143969068552909719986414873768348969489223266783214877040691070774245204848665133429257236931560544175108482424393669325863402228520184729214201423364267507659277938122668762922898329157470009948617470588031397168109900938245033399278184555167917460782773697931409679710499141237346549419622569310088665525667546554316439162837881573699820362457406949864661238314745077433560287139447989197524633331150083256275499990568297998157716590904438784814998216928019681903936038021959129730782889186229794106814862398408268319380771429211778670509709466642977400425546292275656510839821021615000568138017248752961168577170764971020415146248499951158761792597212243953210536088579733208976311890889526850923332596542606897850941861674312857066607815053069343244575466707073126916409738480813693807436313534728726608389410225368131866029880018044123285964362770702827068217723905558587130351201116070827016337660616901019717841882078084263710462009578702558866422807839457791754994244044412793172056756885782102267839223458191934798842210196919602309748653991911550507464980785301207643396117140845276861137652926371168454200948686498160408206864014494244055205408825444255311452053439457569884799180819648515746286430984013936801424800317611860098497232982040499512421128510165899852054308006993516316477692578569478871347272853205719664762218828641537637489284394731111863109280572125476979491024935700212654245528805534507115322618790488932183337791202634729922249982407420240327139485833517365066910064553447857137028570528436737471922594841058020473949635526807370678243246944920247414339490324171110599699114128704467936898414769515017763831174305699964310503586005274566957183006217504452003152187445045267958875335957632160404975761820531722183214082205560666131317364213865746350798854633727852233430309113751556773509934764388805283796104110061018205910799516754492250710560592245242158194819964948410173696125445336553677988364475544171680245151372908952552538196009061950426601781879901562346312112524418176021118172707042559979682874339676349286964461240490510859540570547073973081581214223312617927376141477502498252898438058299927775477347123381521609554341650881004411510958730570931715724818853415532263646683137277703956195690747634119838405550356762880434293285096715209541598115658085397772802625146896206966569024960681345233741048304081800491983624560021270130483220316807902760745950482125921265970798978420725876240624533191115414439320123940786258619118737383854492555990149472845783472510796181531353351017588632539438754735238669962098798316179616619394307960646912074840594599897256049995498127090036579102434087234321988360221424827455718307391159179666498629356596780858749154337867902958708246429573095072662492496225556711320608169390158527353232632817333150959908210337107362792993537277484919418534927670235936697819946611159398878668386672693440018579800438403569080808760335560455910662177640460478015622814836960607665879413409540030902518125883143204989522514133930674966751476524681231355421951217258624922522053846704659971034398058481838681827310501270649087693036976506129313722959523396508674840571401707979750692504928950616939801407209531965658512637677224991433538470506812230318134799874327067610443547273465631205273697834723770625111236070129081159841617435296001737460343301779511255757122887391931247119044529557449392543292260111969980473647789986303012496688003898359305796120294177617149684924502982280094003064400815689090677853410556453647631965097442365470029240995175020505295442406091768438593741420409222136857285445067666516477689019154758244235782793417873283557057038409267275734105548354953586767281982404666428011146336682414186750929400737604155317487294814990802304043768195732335531515627637524761690589313214498526926874120150332548306795340151320194123749551359091410620461510336301918390829170290835601841609752754005213680899001886051428866650492085418468801755167962656760411356999605526959197814134917297382117395950913295837394066919505865753478052992483150819723063801959305719622664390213673323382479165299045590648551118534472574305480193821799737644531598533862250213065970519200918710204152344354538978669818347973083283014641115474007807684220005724448727166225977620931777539759211145996128448117182746045401251436754291629573811137529831016092639626814597790376683014158532511063430755629836801185024121158247274807313669146270162120427935967009386650089415128012330032069941925331464353798366257559631498132125091380215942269027400222798674996659350882414007947359382792387699528408020096747936013404370956520434302828421270230443718990429718645696855607089078894478650047125545848588442873022841839368968237653001949481932718316227319038431899426889657301525956029688558800786097800728934912190975638158516169675250228551002498070946856565787522455177113138313468438455950250832502401100764220225146166137530377848841050939979859927014822159394502295327158449213065390047705065286023288955106407187963934043906165191270627810012042670671992068299380332586572453242334208426064068589275824007183191269057766138768670556308597040058307371439909611789740929223879348928751838051132949658628344287178650191641875801730571959833329349253479982830291600545049247192390796804450892905233964767485775445151822119868799237493709471491000965308557427247235141596169875529573153797690343154854908702762979923840414524107635794878712420653502520356254233845149384718332259851736194145017214763709787045201905115707499847413640155417315434344492392606095726761095204149993448977890002464382191726958430201865061553410959237724859378327849938754513291959640538517004197747262524761746570437871009966580107605302377610141204251982365256054216149654731930020902641418216120893155836122139177476086539672793879003548904269705304500907939267254538708409533375256710055668962266463735558887203435522501227099897973387023675344201132426512200877678559033596012260764958695832537999882444862310426562594527682240093514468146278730086148226058975646790695454765589194309498499559313825974062796101044520001498052279446941031069734494923578800030760891095638714817978127971862287210569207080842848374988926391413029238866238823401569944609499455595962067497377424119903615633188595621357800784810481365218688224945384032008241118356377212178151662141933135284060178602464362471741481639296589727712981459784805264919837436397059322680041639372177941245959115933686861638928581267849395041117085094094808026337560662847564760206080985123021907601671239454079388306629602090304805922287289120460303170735569879325261250773360957980285314607119663564703397773789660304176543743523068612565776224313836981227995965088513720866996180032303667374958202677343551600187818362797673976983681458243169301426139688760928942967397740504077917014851489648590661863130763910685973358228817017706357988460713363754338751139175642723082493290129337607916437904668443140307405417602151411705123231176480129210989400607196317519202398923590221979110715271985712298718616544742094856557629974914516088423944543271271990673729214319033555361728949242458214846749779171851453986510071804138751740631103455718418512944455250109480220710278761935024125597534974641690557956784585935182534870108580859967421838845712069464672839841315038539758055438205332994544990057469502282268578734401729429180486206618512805149754428599271271446001444322589045849138571943372781832797186219104384031513788016924687048787382306339655384183470535476417626737153390592695092890816264309753217146792709341460006809308333508265455595855317891998134812352487870099300167833037033191786304411829216722157293155018723794148735745374364876020795786589837882230244077274976745158796525165013197156854181075213121231987185270359887882422628899785741971232022720521385723301411961646323075701327867637623045020517056781350078879594975324927287447409426633956562727440926194370351009695857890278703167920374178411485552271261662106278700118266120835786690049263309148911174485820153285388448573048422190187115586725969277242623405531863335530795851959040130314574796946447050235826237482330993487709450059170625147107883290828313142003066843552291075554750869567157436836776581300432025035552361228395335282231837526438167792738296174850354525733084845432959528896489523800436674924368945380222973554065255918235801212153127688112620585788021869161269997423190986052858156014392754622365566525036249114795543890726653615249902822957113816159223003170030699685123492034668099475276671095991088199122448940788335158385378579662073395391807136546124220408442576434293746540160210991119555377822885997827893019091142032929611820787446484029147062361229550098772088992938851764489257423029045108181095452634617924751647847307805948952070652378518363176164737162314939489592605612813048722000402702832692738582705107816633592255402639550630958822736971392356623530832093155042056633217055669617013945457033767719351207605154779239725987045810255204042101911427676055047207470343874158099394071110676530075548260843416644751209527546779375883142048254618641219102598055075312701884278235850996500698690165930104694222662405243215490553856979786556402858524882120644789216818902433794292251851703313983636041699444437830987269398980565357894981208792650878765804998645621537901173057744979561047859754091333865668510070378237046178889401611967556299190912060292936464259750379837290773053812529974618108467929701466186577754521467385909140304578788004560045878069293078023904604598543332945815670126737791501543784756390585031852935692094984036852759522975439114794221142401763917890645549266172305101741344043158575242786793644129455238425244722671513115682803111067081369169583334985499819204730836746031922908854931376643614420149215149173509075304895724930143231146959432350930054445198224773114649396486369867559150246832343538336908789619428048811628854009162860626251096660227384367868991919588650102708362190786515723070746564589301295767881684677821404496310898092000154193319553294243633060646548802927206015334134057806666272333925597103135852628595796058105308253668862333590242811730498362363645923005359101800360475946175014141461004449074615368392925277303944386374362522132989847620105358182469561178459918014758276045978352366610352267592794227917662550978022780258711138025007970705959168604640476633315184236148541514243679264235468092665477326145037386907331499912929870496536929080623040751281676922141760870013722870402149886048004114502567389700898747068108455487753558308261499164538857403586087900766874806935905902994379072394094358681934146667529022464603782823676653919247092195707772409884190466749651494879641119647495522443235284444819274912773664118434318624214989813682023921922315603029232515082274486885363231380940070075393975771685377962752937903977026724754251201716094677936626843751246758658993984864520750286120767008258917700640718171061304857491818389679351568483902842261500649422052352613640043619799560191548095659517384853347646548163195032835962308604388382436769933308286015393974730889615816920809042896734531401887379486953794906776283889660799683965457479377501826674916693358560350670310368686283841092808031380006487328372497340434415480681032649647421479209524073782466544452514548118002178440022660500249365306889777352840556746477976895195993687148868143790389322557591622770374276370118120740156025550072878685865972072426923252471382458870937976787855034764968437036467678819886082416652693620592209631007570921367340775374615113862904109087317225182234836070649554700336177393093380867360000498152453431193061949244663103138815887160772755652521832404572720731359994826427141530740417842958553019220343482571541018220484764667331236564120404035846477756475593751108469642622468223540371702193307596438082211032150417633506176975319743691873694104048546814845671505862860885633777507894139671478234604928503492711760982165399294522760430812976799544858475556090336309450125294328018959142316568667921433732171474338230747558037061901992767956107693955139824437669174396152919271530013260983091732893725247342342722277313051578307298050230122891560666715577918092204296255441263685415951107932827871690741481222603895418030796586692659317416016356426738968083625515074602664387169711831948851953613703493575843452538745480670096495985934777202201991158061940947758951510705834448147969454646900429537236396253091948321674215013297380494059503330773422566897374524629123885616316313040053243299013422928948871884189920163601547222260400387794380023551324777474205739026106139708610362687617334635909041181780437142054830646786271879133293527770185835128201529664194274515327333186354522713615781882386744791568467938470024108971246226815777482781181852363668047315261961463703153584451328893316486031514693919674912290904280697329420980405670111259050346632328775343492031515150158192649376007912058231047500737337506776697480329201045909591841284679832986792276196143384067753074101953493113756722351029272286878728800406372478006612562171182507660422891475692910123944754063703881388129626626824135077891036654494059779343147516001578867245682928088052352024882545431076153309861442620349245934175439008439394007888700181170357947598440727826669184059583238288236798500555624803680608110911801415346469725038170584314610046667528067681494960979377464703114637836604474661264921055718505926168530015963912920083660312114415622245986891899265794434819675767095883881669700423594080219998426008408034908506651778422168811451277898160165579259438808496310505145280774535119114360354987635931863179216877471722873907973164600732770172279597116761304077175378788944963447871809998049961345974908305312250554534034372020336958661579583211098453919085761178695736854751347360011094080654116234471338375158397541503554194055203949633285988822884800443109275962074505861125630035709324442846959535468033067397113858564168879098887471903594760532912916880564847473916055971690620203033314609085089567677478645871131963164670627338650148390866452201933879495978979455717196531920307839355711190927273267817773386534960978160243841792740538964642153220214445928468078640838041301912887285262889866590602553296597871572764710300598309072742247321815441961737711194411116918755827513343925689243108754502968867085538037637685326140218319307557778641241815416238864709694863713126214479554238599812084886080801999269244765033944873630237651855740904411416795750716535518176390953289721747130779547168476350973844014864039554992089320484037948066920960187340990932773226106697514370167844392313205524452273296781134800092589450033151471007743028629609198968444955598162498502833179587304604218488117657447910813341918363907364210996368468495770062504952180779343004550395577113390847751774969403136686506827849471473324960374865151462792520138677533476362454733313014203009789464665189271306738577870190026595097914897312873399497739579114462760980644678855761466071463501996790283825321590948540184321981815096165990861234837173775244980044401289921062564466637676425257234810749512866435558992558905817919768128717983044178103699400878502218791753719685110966823908019208717910619990576790496241562774159900639078649429026734896121117122751476055659783029771008307796427048715765103149682806920380728757833112463600866170847849222664801381363512650230599017932776851730062662037866829526556076572691135368998339806730015524956701546210888810240586666841994895208077887249427090942304592900860239567313942910420893392921609481992824318362883259714888800591760518015227827958763227437250989645671980515100084474116713600690325996685260220971831709134476127125090471336094607794822731270137460457230396347985722934977494275129393400056510880843984183742651515657124512539660727527997353685591518717966045761965928755580534916255205874717248137965843447625922422902501158246965194364925810714096392206003544458205883440217625574900344167153693721037527506133800835678055641525380299577123693954402296198465092461331350040262971268191498984910880385292818019941598671675702659550661894891086157208331498963191839337183333479627150718280207284452336233102828440567157222163174938751851665156702744348632415592876088481951622426774680339422511103719261712463462932240900788762383733403930331716644295116362128831499784340923004109438222796913050323287295493073021903749910447586763409972178751617859360355522311369693598417639273995803203440074150737041737559261108951008270401692694985794337928439606764301164627833655625031886988736983187743540736753338054926115741165113004514515948304263854317576619463797777366834967859287117337591310742231280969528000496696259560847718038130677584633359629415443421103075860668441274288068746359385136808309345382643132238234214588776672031656523716268352128397088582195661597722435764968198109210508759121946754894500301761179378304757969307948165596609548718129895678725943237439135803485275754643763088314423532208286277150189786561191626274800225767464422290412838523144332747756772315511856009394646932463905173418872590480211157081816958573283464898094804129888324000571754767659667697313213178610766603579156565275988548421691161041318406514684426195884353823350927980910976979461166624626498914182887045429802372390811606021315332092036264378681445102212399769365296977312414200634239992177230725100444186614348238480043986703428447341882783761960589603604511289818010954573286994829088818503691057339242644643895945425239192296127669455578916354841324313111088683196436975557874307809248207007021334416690471079883180799728149559694811875825169525266854457278481275402300145457798334066657135370475797754834847382546774625617229091492095831507836360282267125163785000838524959551175240139864828695438528273680838526654358746006005002208825941203459723532001471031396301585306698334306483412842219171755597774601264087959533324197432753972018150616049696613013002199785003770057066218170487332371065488582563963366511064965444114282278776143374413496385271980023320312572454580816810614274810379979781029449383254868630141903656932101575549226433848781683691978307207844534907670375601027799212539487546150223754762619773212985063941655810626673459654774093869738840487888850060253526268708752075357498684770905924498566410310020441677452282489596650546945647639824216344248735404683274454393225993159100933168290548961731451743404635726113811715636475402855289187788688825095073948180951697426114910415225774416527972949008329091573302792247896807192052277323556481493269971061950331138746883644080199795004139437625753123108755206465543112451194701316289791469635850698141181077139796187643715496273469571277645080162058194988767883742893371537706243133954264928159134843242707683335400261356264481798243616887250691922375332800743902000435189578734188083830809560091363134609003583397105014804658648189035949941527054528800932832223048463990921440298310459310030162130761509690277210621432494478736998906215753863981981717966388106976151214648540069441840761557890390004827265674209578629467491424901285513780309090278707448150744345433006856755152596534126580230805007495245535630325029879615420669956035750054532187393161489411825029781115933616709409341443564086156542660925929549295063464811104465824690151178297911994381511322082658987791567136925890721461694219786663607440904753252073900133543649099820774571718055439589562464453126704464289976619941820026451377900036028338985318287945598038882805029997578416154732176207603726019495100885772008444548167592658384418767887137003988945825625472845173283288591945975193152174219617067234066681010268295307703626613256026315328882452665870119522359985140603487498443995416950584230303385376306786288086296333725775406929855943258489718757637581698122621654997057251895846842611514290180447151358655496224239511723131564749171870332965111683225513259315643000325662667043378442625382037153538714096056094674100407690163527453431040811149828457128678832327309560271197565415951327783976000699032780929114161980589232899839054277425580184177362059292207836049351117106048031412469008667502922485134865036166003426849065194648841789960668938558831592115534072924946313842898324144011868812103953974344425413074130695962912278296952109416497521282139202127557443864049999152583505227178337047951192070224523775925374462868337055705614847836958169838278574707529157766345826585663602334488537093256272225309151659232289879045342669472975964901725695342059966731600342859067148475378912667989942250947294159654357649880470895647711225336445139357332544683776299021183599881617492159344345600936906838359424001515069106691607401694857026200104415313081592367141050980079511281919982745751840914762580343398395881359813299456020766323475790045288478669222546148954412099694634467778447742785159330746381130392699963052691008120822127125686494355281211095850328715498565937252646724403955332354164932581059762246558188934298752710422951567237808664592583113279203822356670422730886524852095287245254291505685245050196800886667181571106319737521961952848977737192116518714371041337982530396457500006291804134216261434558262551464591191038771483018419840201743629042483486187168492304519487891743576002789838954228630422499107237138249659207434015633612632734702599278845125092444351974473089895268995152105632376654300971903342966911111102185568908280852551165341826989073744294864438768783169915845961748731270629008857285703091468532945387837705652548193338251785210733201204957322083195052570226844359450821285325428505406512870759049567429668810993038611821977902909946293686315668635604861367057826831731614279739962233108854947769110691212485266766429280787843763888184733401168953099708119472406327961209038979784662458885710259987961724104717195338157438043050612798432567937865774043491497062460365090347087193663331117629705216585380454566032344788339087391328060619150504934028884949925280952904813205465766177096188985714410625321845103727977029821439077934458302173298595157302802093877289757888945749465057544983118741774202328742988604527050512470193477118785026045883845602237490918439827238253699952693637129184085824729379695758878644673780837293783845298711318807123871762264512987035891816795411299752288523442923497717070207220539146415830028183424755801796396222588907882399854147187322131998294871797219708363606499549549624898385853597654152151575014917274970917672774694633414254597845092293283879789472249204345708527332966837642148534428122181097154185675761698244281301558771835543521001541324483272976494848927463482341520044561797549998182724334106884823847064557507029365413032104742168414995709459500262206621061181024281134345179639298179169438499265303204327539550970612062698204088749870118020431803270864367006696275529765140952954076362761169533542752485127654707107549625155372275203017659338142752210653467924682198788844933312469175949431100089870189910979874447347408880806651685931194925888533549517919342795699598960283575166456169154509935238657726527862412473013083389817695728579589831176876229361434270331037307651191367028945837726836113824736064479634482242884368341692082290320453392359930316234465231287136832717206631637421305925969831826582155962415189626917072394537242054087331158568216670396896690633595780271733044247517012481573219837993495709516734816187334172555458862611976823150237253734984806803914332516821492396362559507629861611651043227351851306180937824072554827865955316296367012824723092888993102292192190195945136776875871466234517872702164762424675174066126315928428997215372655806415364296397984570399946778878093720878364709572069395132496491168431009937897019547592513363964717213223103685248515548539719103329696427593589774691738721015814928910246617259513544201493645340038198105180099783619928944768222025573703595054754951838063851934457207190429631011150324915222333371728006298304977573961927806150892231441905761497400938071512997354851506693191471954730923585313760565986514649650371299617545315841846205021742085958989395801567456610610115772287627511642463553421361794743043259421323003928829029497913775811696183563901644640940184044831264202126762352216649954268388687488037526956811813346282780750084072184460137519249989341253054671025709689193277499419082257939387168077954011276941193247328520129662847987895758103638813965317100983750529232977677365276920712292099268969575642430167730676246233190618494425016177262999754196133556311464254369259200477335837443740889055157168564725602110989970766853806231161200170309616623567310218613034035152749054738862701332340829222151404368763294936797338370692056713586422505722240521179339389089172312456481429197788016013153982683959861343482763659153674118802947967066527510776978721913479863761337359313228701265566104896746004935742965201040798953144254954898184952653588805237660599244265239318307076236523454996896081226974982082077284652895622067123379861613112781963796738474126324439685808711595298298740370720418527912632168555158981167871353611201283869485111425125200955501609921721830212323641200189217107447133458836696799959535908394846654455582288704489849736093022917552324588797797728324658192772574305380662224147708425633600251969081060029612571601532259666827594364551670383870797252525913878857830542049968815488683049878905083841773552274435312741760599563975788199716106911740413793264599738328401132016473830818273735588340714720084423042923412479481503684822291984482208617983378035465055357185261072439465055443934654947806537546570862568921677441234850669184846830002127620494781966700527604335716091318778295136590605332995440969229312022345617063062567652229868124300050044941686710673175503889165282708230511531769147817591462236388810954310942558789744351533816002334827467989588474395246919742938824067138937138751307639012278529623007112466490484451978448169633294582519926283942728731258317485376573778121159116018824142334107560812994402592231457483448671076905933606903383343128884734528712725044699463686608572253143533304913796917720003307756014833633605656463953021008023716788475313985561058550636971478361137627326465941360482584293312013191208787382147006764040927295594348498902465859129542407060384070902333468764302632195089172037050879738718211880991608486584324701344823908113158397820281347448218435584953712365387085904375051987556896576530897073754040401877743963892325860272615848697598518042865303451325838262046609621246995027749931390116555835072578553843976545711435198899003229736490904254161365848174575620343835432395253842575717398888628839742225499220191711074882879510248946400815109823250143040895037812851112340055287973818862957161698478615576758123960872111358576024145245858052129548749168356648698425512499526781386099674270745064131186383747347355905430337471936881447468903257395340861015717504048962247579761400162175276255981087981437103829476105575770771256057093055013037918843355127250027328449482515646334736054195227462240502039991176831607978389481751594006202348627276972314428603339053878563577933727213938943902466674491478548825217904877965609837650722557100369034386610170112166045745041443119645249525376926656696823023441154624125777335616617067477531838241534701233705373138441360196089505348886253307422466376777812949291669184296334486155301567351126932470459246447472528673511054628018293731156401614626977932261844517534931546286714082329725757838041359390688497450387514291419487147632543728363800838816308042032247434703623138140739323217893634406559564585325564870703713517347336712198061330218048180589753544522669361992596547425037504006361052396274287091482639764609442385798110698277645577694164849823515618017583206171463669549132977648518557352749907613646145115782320850367143432708493463610439422500122712898074217590261899896447884826765546430082996504665147496778804113674331784375967023365696805591920504752443107559538677774822927344249819381174867751631688880027747028643366925571397078323512434487888782573750448353060516325029070648912196489689209178619264308870966586388424241141167425235448557492708302535768840828700806902988295510062303991116489801377365531076524235642052958989279783190149670810304859329721486511927250341423009964716128565734744282558746351318700075470932887349539883720456489318415909573910950402283004118337060593409653716097413258220552035381675268475981722525849725051452569314496859526080686150101156927011156956297155657870708234780385876500031566174425649811983834354445980972055973950605754820461945151990960546185132449437586729143856572793608453074508788189386942908187380287986619598892145717537915402884451021578146338347112354611261366001553089719283113472837888587106313946409195187998179481128037708146740379940457091635559954859657736938230429177010750004904159088339060566377193115562025248439988762968755634137350967932230251057087243263518212341459081484793412626837561296322351127817252116764469001553666739870442599687635977584679203966105067164824078525651047107416812237320069212887390544937855225207122952086926910470585938440532361883399343936771487905946463573284585980581051156120059874320085962259887128034824686673730872561841099386725413364465493741335823443164542105028513323486405238071291330800675369009169992225536348561791253379981981355853935181733766179721732312156010419506355116872747636887079116943940749111413269108607659350434831170161337216720658894156876551212233079631832749282655948002526721882634619939190824676206043491666011801067429982134255524526712951177759286074102441357831262785490007847413278061196911248746999716778889612662912618386677805960864750486842748747359003783767442093010614919748216081111561594619843441037336855039063004932263096094614388943848639795515852711487649810134266971165313138307252513030552766516024692531054479785638078504271558971106542815542608403610827611733622939219226611062135357935444034070324487875567692586104807153762781980617414658219373725085111404404055984813416868188443526124194500015108383915870250020259972599512475101451764462409212665298900490830427910925352682883894956867760981331287072605022869767409977703192744649087385900291533908564181485699256569096280565190695910984227660379171750370074064590577081461455485971910978247834931592361653083614115293205947800801284948921551826382400807703132697182775036924527607276288981647532374596283977638080585533292525888856803768343427036381631890090656184046550996315371073379628689554916520679740068601400588168977725707629541502756957014699559855165787489921455362861684184403419558362712581987036376309192391388137802150116988942107698490263060260391635408648358346905157500495428784803182045803003000977149211042292181166402600468973376818724145819062799592138704826551102332355451822550655201360484505303954267039180317469762071841297408590874982230702233183185902583857494034417373171967210986389720689612035965043617045157524621957851180281143463398787752679559719950024466379580806836863366183119649315248715237356982083502621047692728154888531451865043146364519176070525496332129626146209299986211271082945677167029268249089453842564982981688904256174951577124896512100568561699499517206121098432171353373057867330508541602772226748925073458594199268847639423598599513181172406829679551581802549458949909042235267736256700514543679441761455929460139335769788757440178472229157785769358763122643552985986335719445506450344069196267970142926992550253322576056767139667881743213178703876667783086730064158790460160036896381788874347701443171323278580573955054878192148897460754407507106118688292243002798035177037547155083780500551140869392795054452168502378298956929004889037150689707087816544308808690733362138382375217571695796896881178575192535805775728066864785447902746141365924598838686726969550938788988619011915739284136080249741718329603137070484733080714156518554798091103530286103117002175874624736679299097460412762102000932594499133775281367677942298229531572757941519948004863620965007843418217098306621734253606211817808815288268397312924773822300995016853359957860886156712027425731733097984722272123939587069981926873762295665933204091459618422898655181556473198332285177243834288769739622403301154616499875992894108061719306755281878198663754222143583083722158823887854992180899759991777840291329509074894469391557005108824314733342133574566402860127947782465362603286559830924162261055763381202166280904095831987091245570719984090778179054676079235396941600317939502387180790868289168801591812021699735543162282141559786739866457130179765814362378431212462945475894329422036306763785775898875673706383536694167747784691877270289654413071804340935782075285101245180682016317427077388764666061109840817111299302947182883645044175975011882673989682024600588654990137351028967859724600563784715085004297413332740018706787593844207353481948165978104291299693910188612650045955120261401334727710274262442275509701554637781813172551376692821376347827173934301586528186233169508531446334507586495250605047540497435860397824359195342062556960261824050448738132412415082123944414110256019861975536819929776343506526309024396752423339959750650585039313917305143596732220937469662152457947339380325440860882718471884191766753914292955758125216297069058584104263992934373761283523908512443405736220313185371121915750486799779791763427767723193795902022696358154961707269524309252754378184914087526148328626355912587933135598664784794316450330404032757193126062582007169787992879543235868129971055061095406018543143758443521669821308466576013215525004255169441086167670517021691934412597105468803035326191391838461870523752616872175379980761375163880773860036018377662137581125493481409362948890618032727608256013967072744467876488906183312602878691988860158044408611985972795195744568793770789037520382401897875023208073471234514880017515721805711192075131817357917480269826379283756467954352285457265640179539132540765016710393178465558090348382888488759901126017914959081815787277956561841144525395226511780994067263565205589668278997604617789395013866539619315741496861807928231700898855780685767020573388307189795524619397763938780274821286683378601960817099616609415624324200872773539512694054290154358410652572382783987869280750925307377417925405667882491973073484827795263768502703088111828038859201646636596897544994463520327499430866760331996328102735545542341591878200712895458468921291065526487023917937607352288521886871059713492561887071116810252871113729056827894014892376362069319289706387662083954240159961714742544501064047539002862328899060415405165328159476596962333474821817414601444351963633128626568603069888033029125441422613432535085330286960001926358975214044104445611014122927274590052705241861118212651288417402833307453040508471854774274184379226221920757011205118364338392719113060982571950145921190375345617781035779801253810679821914631978129426830310884065683734631307554610988554827496597606476182094886028018574897109840796636264660980401305593459271733706395118026865880213305479065283924499537329720405454766485547125615082444455981170048151884785919117722862475095920821075776922398714977521083801884411408086998585721901116900831110316390374853859944570513106090971074040835141541461105218065804284428506977821811481511028230245352063545558268675223748675258253191857490306842032764414873837570830148428579519364299810853949853300321405867311800053953174899079622010683269363403873204815549307579300310312039125228570618527371244904092057107476114381564148757699051410202797759661925295869225303713413489013305069248119895056531258178366648018880012000130531827674221374073281035422669869076532772673410195292863494805522205963800746574373452778178732576618846100482645212812829512669287255621993226377698842468206715316569463752020826775761496328259985183093171604616283387867428518716369547650850064598094408904078795665674261766796700868444370716176864231037015542183371226082753433271279862668481631387598939254170164193909118438882976318466541010203446388782952191893812007657757491344616649937872804869290414353115931392231009334322878043317099303931701744389601665857545889658979267394072339540297103753543285638926084566372281387348779641280345742521934957139938162044950188036973919510957609426313858739895424565029765075438309374773755295832219423930644554603408325089469719778373965790102179220253644089079221271201542703233776660271663362893660966423741972813182915866445778862621136485406297433604038950543443587639933930338956109622819066976914336113476264216814785512287934891540037930387659219747211239626080928977666384423798025110945601602277017318419074370068966678065978801394892531394302717072188779035937436684831305020723450583870782052386992426970003455325475962327735383948564481923512788482879547170523808941100732011689604395677283107730858841959224962869877999721622917122871205381333555883844597175147466969297525675830072840439238773018013980043226096081471932449805682033586967718464703292758721221965344265346122964484739437926471384407640052067829773726335021561676769672357750729024652256182968570326331516506256074812630006289038830744847975768894881696555761111789486846363453838288372684156102136711251023147741844481446446890166383083424620342553227623617262773547142390803423025638713132463724282351831410292997525410551631709608524334656286056945981763367421503463551484660783152918008824154771152351398739770812372645614076574925201615274848768772744030595245159409212938106055586333509682208468751945107615408498155855057680680377020018017594745126882224280093457656706274128472185525964400110735901735396676224648731601014314800054885357952362249859366696967353407785957820993870043772706628591109298512981407494833431356700821065353398629372323206978278271503474675838643438303608860346005487279019869961485061025073105655950349064799108433777877543495013201340538911298079318687450329705155131336005606601527123333206497930512477000409409280693882535588158603780807366642131167620233180733254294401048224247500359064065221873146335844167393561113491759071042802976453911746912724340910681062182125784301940886063661553132675460943649910555235036960599081804764213117693687354745272729745940961676991335758104622183389033301156699904011885807653181545854881832304808448615300678393847569376812230175060866814402550059980067754559248914262958552323936198125635233722156792248982131095466804328001757414901136904112816931729933968742560712915184409995853036146392034717951676464965952287912085432234121039206377409786015367218287908847400886323868788072649124736860565655222832888677452331582133028301460207218589025474154941653329405946074592968525674669427026674002654954171419849586323110515005517209029085295105259714589144421959567512306521856525515544954902460250939058196343174927026766005877580470263337680362784830449929759389498010481304498285543971271093013193109434882659129242205024695850181477501442713326845379565192579870113684269865886030962741924716897346442880412181766844972895414947089989640028112003652133364558990302441824936964116949686339943910427709273834211225615581216496112061964606547028119114820184980830967080200428358719524997351831127273308615684198037086838971882226174088604645505371850993702528186185921722951357807623995448195528503042924072008924492487848936672751555083879859272554708683241794018262188472051241848961083328246225987242719079839991979834752406517898816789529532097812598794998234230137396868433689819955275650401975468916823918033076165319996693228834175124064850182764239281555581708758857739229758188150679676456932551998745364019521474893998444153569891305661515084524402342791809179801614868438756406076851589589313330063837810901246095068706724690826279388246730719651157176569862013800644794919864469576438293330556506857086565826559893953279703483664376307905413498136615313236954738454559177007093220634151528502858368767811007464033832402970239875489994436113933277876913618696361745038421484332832162130462465808107588029244662619282089663420617443634235292482830733247316823345349129847526787270295852443101235919217495212034150249460810113140716307543722329527571682618763145209755395466779105095310369660298656725433655638011861763208243037436696758000391267334690091461082437526702280444254077632427294486831781401314942020028867426409459028683255500272515667068056098988946086701095148582380980212007068287270574779011820819601898217119099021670417747333264472588197213888095591251128277729860571078797936528621991976540427268598481794494750145209355115160748111448813665445085627599812338647938543340972571457974675481104544341409428731342635400973049343111117674961817576284352853572493751266885621853393493152678879371255636637062152013474564827884160405416973980630364673571395816063888094403309382738310003693021895164697170371609212568848073678551886456095893446827532300402697684172853811151133139881843298654317515919654599738455782285872025861769720415102583327227651302569448188695966886077929292644830235533654616754421037450472405299044396257139074033819251685886339721853101680408793427985431376484417535456603867841729037374124577646575558126726832444127846825779157342963363898639529245613310709601816023140213304807073782454471717358022870478201818623627189083242804099662097554285500569418447461127134985169495545679429686425352864013936040150254833550657718219667953630303146241351898237758618604582909878832258103247777028612078768919644891560222295084528643617770171962983969875542644790840739431595907586241100986868032749301099591879436949936171471785492343982076142482373679047377430300240514445111322875228037793907960974058801015517888498335310676829986364658963895342279173050954133559899693086847800958339895378002564609552815081135583784383176122207914879973488495142972554088002627445991596745262212391196199284005242321834883742571241544159200851417856829701436830638895250540066958948567644380594633578621730408979059494996718400892447063155480389745981509788257171844040771201516734017195893395059947978557471269579035925103274842221092734792977132263742373562803806522603207316784485029634984650323062204253530327002488141567540673232709608984358927366692294359780639401598959229884077039143886838125426738196012696381813565113882368224748297926258139293238264123547579554422298172055389772444354118612928393656716120367039457976012329053443292531086605972761136538349876554203516677090768956325101494935889890513070367421367919880929414122887459396897910330038486960246935800823828761479991047609522272783764515198311019905951241045905103831402613407715056032110486981647577870740097365208209270401024704032784738515507943396408755790425220284598733768485644420261009135593562160725894055850874977000159759808436178458098203059115199069021782474920496085823575676683149303315559740094528325587038444078504722806445465672586525761367460211797610914841139408646443401913321697337310047726091965633146256568230563549654076378274684579590796615151430390523279697290978710797673430936777251823424787542402038782328157088335416720468441753516274522873869913541776807707231074884298261901377312416559342145986649092497808414835296481811805482565057360296264032573717764081610313563330782395701308116990459678629347339550343390257939702329898269762212504255621737549033327286830835374124369977775339749319156038223494031850521997836801656350221115109509780620147277416391984669743083962771523544758988800544550157353850720880768191754297051468015222182282730659665964317213035828564996911654622628772718653148800933811059596068914663316489480323373521126451188465003509014804608006968254857560300760911228886738153870300229448742881546999746006894441607623041763004968763240203602206861597169876386497836586726985920081964982478440344605918593158383994358525915656820419589788733999694437615414209652097239510217354562246436834885345640710999250676583504838836411633311156115806322405625405476330126770483331429470366536102113025583988908303016980091340562766791844450133212446852168579416589568010828442274189433191858887092884634818983859097730889910124699243308353928204252884385025916247517161290843484534424525228561016919796009848658562282761057869713271575131710169206254970476315464999259838757543027549312932784836205750307713123170434319122788121263251174155035963978976190473375204548241607016186057203961407759832390666409311597105947658130541850017326125410940740782312529167378487567096823850346287792265080424080182270545682812155992483952322129139636808707801299681615162205289180738219351379326720317238279356975637858332290993825069624592506349113312400779945229417007830361500759207909505972507348047289080535323549744438984340240998716454924797759266309603334020738033032714287877046780316039820222403684421573617274497831252598109324807495959251692731857465227230635148845060023799389088701191757645185006405204216431162232768184996288195173562182497704440890771721570662914039846437348109443318207100547256263361033890145881016145669477114242953763141554146425478840706385075906619613165521176475568675252262736219423598586841816905549665035468450560905800410417872653518688529248805173309951495204580996139501655333329082875591186256348999849334945108581059086871122627499767388516188096756023489392465354756548956724788166568370924558327402877076482934805777959915751218423926732286462113934811866067801714456691612495563903391377150611844911046301329953988380685013621265968250083475002481666425363254087432038695598152636906869774790140720281872658743604741771511945098078927665471746098147195208160132427028552799036368029046964898946409689665543526302688399942274486624381815721322628589261861124698893415545260189130454866442276959851282416677902004842013480874321430067299709859848801801292233949286299025508985250615699364632725864064556812141489565776499837312218555986542546291290643657388906523133707459786509728707162944137295227470907216118623629606755800698481473864534443542385327653870921707118008781476088594731795158097985838376357103648603410417103659464130905980913411562182576167123755233102472819449059697303051508305417528058181193081968073349792511138006397434515161301488212829627905084797694446927520768389705104358211604622078148103728106762974005480007620631589505572141884902853403763240961681678674488901382297950032050835061120637013019165063657514086366031010810717739303546990006588107772977167109868386950136612467276055543253637024078387258008720219677997373571688837242224992513331065930405572832623289780631638163200504503331543246121838743144040709766894729523695072569703642891070989845352884335886796200550271870341009402470667384458847139512527048667373996590020969540138262897023628378852243640185798697593872665536846428185064831677814141350023848046877419578404105802995699213272700552849738856089548123477230749892797649172434601735978032723275113974006355354744249449065808842246642201107144157744750181453188759135673176066954866222012951909604334353847772620836400669412154682213955792406152583267670291907030945722980093223466681237910798390723297683431950089086321373626329723726192748417713324818366310141016699986989972154527819049030684926537365528112784304627123314161358351026345703182213470534939102448921187878505891089177566282910223565287826678131200797016152519778630663312271668775185735928623011134623507314967846047161675474578360829071467799174599873316529243517834950463837760020995073551902543067091940538122625601748159768106643579844708398946017037930095343482694638227490376174392813834939340792245137179137803991369741097782099331080562805488306090067126118274770987209408539226978194602089407170917996158770018507356571286732837889497660431222935662810096605417222687828844378152221486598066789661881257793026988972982316793529939534057192401847228073173284979915187952310693343478144245604842243871191999750211456162197874203245670165432111363973300995262408361498143678347290565103617573149577145216844871913825590717917617666676817533760562059935290423936709721689636742265146052815541771171136208412578988922284497114231735974610880325740956811292091920989504734926328102195169880234575477913292515101601100776011476599684779439864684528475238033336349839649607337697429344841827760444874262667227666468709658678923393702532280301950856952537015905796118150554066993677437815167278886814913749714620334056508830455677323446195281801144086738159612441340932089478180455803512924706310174074428707161314341551010825384874279273087373520097637167941912529720217165344704684336238638432201726617436000257912803844983008855552562661191151025927042995674255712601914975701945453634023114536372603271670216812063738177549116099000437532870757685989327311875129413806947114785653455129945198387210433167722169868445690431006197454619571685231061025053334505062501579435272792106632086092327429760144703836858746458738385795133121724885108072581559804472672834239320625893260448463584132317264405447925769056622497780312221936629759852703949411718594859659260481263653035057295747482467891649016277325023666395247015966203267690907597169172244547605944983430964270588197107280356416927355300712836971957199401598772272399881148426448763897407953918691952174635729337122858789309052586640219253123123736328195703457651640409249659140420774508365299090655182004128168250726661409988863792698962881087259392047223187457572877243552610804257583493077547944754818289328777411767079843310300648104090872634758501203708075049464434251008463341441132813171059536570633199081187538452516455126458818665525792997779958250075071354126815321605470613023637496746252919548775160714385082285040577431195697771475970943382169705752150581303523932744507678596088883471990782078169092874693322276705006357072548492494949756355291955296570781535762195039864962569703869489369594355962311651153133635602463172604533428037632819989734657624193804086183964847239975761753950916310140845906713016188381557802332981058525099929904889279608198382903495010427400886631607154311945572228667209919205407155860981812974005077392789643620360203980335255905745590211964277954809615768686056075259275613069531260317973739171115465617374407499120624914859073264317968329369923414639406783350533586676782751705052489394097240524359982423505438812992469921938139364731547912175566793011081265306541863246927294914209567332025598374831869718549540276190001541730477343655004774276482212724809888571861512882661407976491310490371740356603535538766731708508031078962776789690784191107525690348288031898413324209395468374874850271540863184736404794475362977841317196701681974644854576001604289018140166183315660897391851486876726207003667109454353623458186098041721309879099857910802894721729355618922801059596290620430653195429383179726786630147313322771453089015787103259242224377338167050387943845883533519196871590491446053792024514548855230355802453640897200913911136609805141363579409664965451421438044796312391712809707368776345048533234284210257464818921461156828037262300545111481338393699056593944431520881556289050941028055485736200979288087162837163302531886398037902205611766710991009240293054058142740928514475429730667276767331245357382586068206958680988123428658971949519199696825781325300752014828507515224499874826471479877596834746015755600936143863432494887412059380963153582252432374395549878106704408651386431701358576780789510515578228673643327886245024782853982288966008285464711647314195936266184154258832082166478915107208018428599718150042071137609059205416360148912304419490290971333409293839990060508766086937429870652635664571745158804786969060063091405925973338924114486442164023133353870441691043461387369727747131555584304566844304435888082952548206887590418986056845054717987182869909948268071618817575875037070733971665683356844863099596360466463232614845375488077603139687208436590002893128489934865570591531704299119560122148373567422064770387427051802050396652976779496885031276863256661261588716665169581831267780964380799716463635591755757083874572155108901352462485103438179504485899718801804560305166664052461486505604359558937099749098809151709597674139167391251957845313527612146368380440386951867654944416854202727654208691000262002223234150223255475080913019700748236478844269480600821595861652204887296046850064927374208493893381016777282808251978081230247916784281455593207062882578178410776071012527680218426024198767268481405078244997050821354028705881856294557666566111732395165267678165107429545394590145688572893374038616100530817712758952202104501835361847412414205781740933853975294375700806202415934943339305295483813615153981539108245692211585207103130250839055046910993826962179374914711678108619642102297242670981972297878374610265583045911300333955859698824832756593903944317725314647064174856014962229931047200434489967483772453099720932804016428374258996575306284628134295832495476781845578653250845012836109500278942267339042026695898277348962741281944020111131526164744526841409885785247569553213669752032064434279345729552518424185370523424609623922456996921855823060948503824079143438854781458964089716710273745968717226081976061968919418979542090610536411785509385012181400442315352307335880940341933980943880313934641073491697969437421394695672111069743705811534888290903025965488671016065247280754902748331079105387620780994848143086821867212032991548321222956748422251366665044983945689446248004559817449008977342026286386878507107710311698885468368337931441284401549311747623680604418724575145914095590691457919786735783444387453135607426597856284017866154268717940442458429408783693621653862438242307056639703352918153760458418042082181834033558042860955703293114188595358152312245684842126659028994787435826428629723625143661085058497124572478572488593538763622770261847074590824878778282569304266949148246027811456860593754821921951000158056741642167463689515227971125243978187688163315596437487104014567422121003181035581619218059090523169999876149099614751206935617096638751977204625049786878023930874094809379129008174964668669602449625364607906625321091718744422738697425081769554102729037731531851856130497141455698113449285510595766949239197664230074144382481768099191228437663286140182687663533217098668265080908478175513963213352709954766153646454484795677495591704921678460213923390283849738503268489713551797038728204006352890674779453362435839252198319816827833621279386074307989257597581027525942065131725753081191260529785725364436230443026576557343132334239125124641142533985597880169020528039678161262779167506727299811924821558269748561108812038381320848268828812956220009661802088743788807404892188266427182713181771534173250852692818367565309817820439277664141153947566658083378003116994080688409114123576377967592951581025584610698659419012902909092195786306725607068188470690828212375426403898987336479221555738086621784755352655271262806672501417318378086066942058284367566726408886002204096123614919882432331828810403902130993292372600060156061041656357856047279108999279722319107001835525469509029129898599148618714565555101679534577404955684083556563284133531697958324889785462982809737196049223530776920482985011962781605988769712270127940052776217774143975354214742091659387207796122319451264142772304170790074916488067880349060717978816186358393472806844847067303945877581608671096576699671364864813392702397504126052762039874129570056327422562935282949789217805028408108572044247372268324301851006404602391088754822515110066159524953867808836932059721584033373721442458118735063342419744811730540795932173662880384174752302087544868269886276239873861899381565237200280858577256878403614496885660538779268531570894117216758380629414542939036538674365072226298416986005217445608356135982814984736729368217103362085733772755355973767088074052490108428555306603800630613521260320058124422712953163851336601217864796359995757213225079395746369214858622238106676240514215369287986744307537595861114514679755572259286368954268768515314251758547714758291094842438823679719408266635280182420811539934228449049079910261995293168546605905129446526609716050532062122036459924410754345431748100958156672348627745016212333157742936707875286491678687672800652062829518754003560735035035443820437493356150833584605197240404748671362144873077740993339909058782702734759662692568208290869559393126402172606743460089340895924464683411584269207943530431396690275848322764410131581478080894207610263793384632447029260302605064081823931040922891312125937760851821507005768361168727920014843976381521465370272196245302083831032800942801215587054681848563679422613231391839336311945069950297105711976512728777210642736681049979425474552325969402394669268901066393414236299450784646303217988266632769778818254105813946380022476605545862221142786553297488526468035024119511584014597208530455155536452401504222226567750633295768591633689193730535222234202177767312439508945701435514109873115607822425276908170152707107469078541076815338389626155424092088331852170503510297979829108778307518433533888798569506915218000420062218335134354950712151322479333304447808758971804117612736567797192720636230435390293606846913335443109140072042518368928949803454201213499307083010603842942397669620092047919758260641841323257502453129369515626079607401852399131851166270891350243154839747081704331610236861854062581761375818018298460730551843859840861219580984878261321855532777098755666573968820054401515353135261842223473376582533502576289643499102302687540864214736078514709673414594495468450506852481791261909998136087133802578394058904074683004335350498486812126563597926816630156497820940334964669980869933393228157621086939197239273487096157336493515198588310041373548137091851718473493454986380442148413492127472439574633004607773436607539340791758820214375666679823981726371562979462278266517485646610448013507468693820221923096631176330342704914979624489780392271168811599175856243923156642495925945730875075458544027989086779991565220678540377536789292918537809727054494846940068403322926712469455044547734267659691457031410447806068396695661492519533579333081111319386168317578425647184142274754197110476698799046697138854091642274076677533606620248114714617587196138496438389594155867709216491530772891737975863601271887673009762686931392477719321911512153333983566811636552519923600824542620127919539761278828561913289830265197493446950621915179229062682720195303230630244444861181845322669128326360519701366918824236222058501058539728062169406105450152900483110577259437839222611750610012853532607933779070540740546823718151751124402372335921028906811345605163014983143393393218814200004224688718657148164444015243236928028341547112155404281926750378598130203002688359863456717136780748596897087464291199686214573323301562412389461240692856914951578726034161980421820131620551056054379769568644084816430740907102542364657393423437587455724491250691117712257940747040456086308404309694791280824159345413747115517050725469167169155076940094864169855842119983540459258397012712400515435605875625316834201671030318700668612981968717532433808425858078982684824282417476702571291987496594404401383750636750337464807523498650339296809203086654811376460719077890410097875959820360930198181518707607531409420101018971398943840351104751144546858235923873917843984115391421278458262112922269073459159112788761158965484561034172116506781736356798874836577731518671343811831425955387759045090132578147704410185620969096601324772201945821121910786142352043929088348756839211631443083416812590714082039762945899525021840056943191058678801206457847930431603621592427236398907982219906476223282641043056239325077493933435194128915404636863235853224714720153086693732790256902867608294028959418233159691894344167515672414172539730848569598096432069594070633037206667854501413525989537647736556225826741744368324170918192676342604493754662493961594893052882484005022637255056616124495516867541619202677149395839909612761662583357022405594435422207392728528803942992245743500216871324758275689876018453215667227581514154781222603934477104842534000902275383744595315315567868290029368355093422492555325314058474576881744459749986190793228689303498264595489600012370894220716330372581215307384510922546135684524712066705401589408955993473927523328820523128936076221205005376009259351333184682478194232148002400972784238259577806477778492445005550180437935959814879929863530668640394313179576788778796837046656626713228237636938579771786488109406530276103836274288317798297513104668209057324827009770095886867867003915000857709167097047440036688431906975878286588070494266666077376056121266474029946150675452007557690095239112252797687621342850016164174435027641958266620670364848687151802166701408522044084739010473113657936061436869002318193968786315860459884042094404415533214082985688114621931266793916831901281042301519628826545752360452932152732261201538804376711271765424563455758817944995479277378208755589329242472196586223584233344608507251475466558913841433845071699195259633496159509998378205570265108935817923739212755745429578213200542977182683220075343342738851123039991936452860431843656592001545978469887179242588275807741246136723973856084192128037090215938890996651957409822591644598990569345389749741743400154549163519162767525214739652333889243064954418458978577343826249898133079209714963788209614998081020104454063297934285748169806486403207566643952854086176754863407676336701150035484235848779815397688957030243097504160288182909870543814629731204765755165741861566889467908275913950559892017090613591945004923278198981578311343337173221773505676503345294737096829574526175484719513760037582627639272717030158681971120126764889009661439337182990438132450812912766655479442064630654028954782687991945308202851313733248318062919812886769844682724559626852737941352186488820222735845640466063073866186873739769934298117689698200918969098487413838893679798242807006507714090608411435355812715249576940917884601035320859280251457541957019536370653822539578931844054444843233277608625515186667204428029496012753630056745203312613874699108227296533106852991311808436166232664979555801019849515422991201442164665346492818053713732309475372140688039922399146537131115783446201888320368322742626509058423540067425143292927488169583322345698168563747989314067003769139210132335129163270324632374890143604944538471139851769385244773353357503040223618076198686456329243290657068637084240730845259242551802891379312897473820823726278592399946672663430824011186475746185238823823710065788693246606008274522839837521007217857356362258624902633922294547873265962900185441383447116233670221550659187899651699291724685047961942056612145037894949480021112730995141375212638404210533724288988117057219577724489266760078139071906428620677789066928410294923231879686668955963156307838673519720853328729742299714932032093906364057342468791839327049503720186851648842842795075045195778540974283895859726143652997150660327829808521813562886789224880867174975182221079111748102114927383581287637389737552886367217014245749751948186438511527812607414644644905738597672552800624854164390477138505960399450382928017276191555632114967478495123924285147775512195214400986821392351235978744131120004098249720393191732142491872074261457785433315433729911048601903222461350890702425728251915489633401961351019685166001070610656730129105203627713179052432493285908938964670618454339396412611270374079782409027602771069480606857534620780990367801605666318571698431402068885739954572736967715832053944203122308037183994749086133620964905660096135717508973252594281224829669231143538521675933404406483998298497360260601420613001799075446474558504332562272306305469645605340127319375130726702004012486006767982693278945871920705259326007180994841943772591525134954413531089810276264189499119731740916438879093866262801499826664085978692245174522747565540076938507426368021427182931298531470822024475715239224628877368576832135968469097495790373884229756271003335963291177578686936540458909599246471530763105296644874887932656804312954037595008256767684685115824321485836412339279111801401906730052545733858861059524953072212974528325327725444560809453870589746462055810178942145345912938563268627303470453793163370363321610707353820930520977242024044828006041070737559562005367929000042059626190567150503364853390551327563851600872253451903040414624933105936861687238662063592757399929952562038455521386650087389121665702366651961249371109526987100656942253563014229701786043050251221012131651603397735475853727988576101581209713125283259569074710353029403283356611123083922564853826065078013157255733220553512054417247540847259051711234914475838262420824613226478909602820649433134961701961180035352885031627736549274759041048306855933368246861231541488415919479106315714482186131069248743189409168138283987292934723814826722419355180961032547851088231687200704821495357462850726489693426153218515582307477727345065746339743437059077218884016475457193047976736310396785989835859332982575270027026570242896553476053785767359713847156224694584796429095692217020576841696042310735046147940654917157850034470207303970733092811077550299357812795941842748466296015489907739254490177396146093458924803244944274613918199342562017866158672672463615776047274376725857291797537834731200240304582499263563935754266610481650275232052628252109758838145137837470435948164222266896701412891754662020050025122824189716616051450082977731382273531876529126078382060181133351782384072675033883656577098961020337773837430309272656686874964311109479641713641292013439559156523276939925609381486802016949144663306144200481083285873065457945151738453285083150577640308274795226918934714570947642770131922301200719099528541218775383824344804352533053305508906350789952666631980138977065990997450077715947097734304788014561578924365315524496220450998627725990588360543251531176859132324848086599887203466214929689027726096094051013801386921224405395464808194862772851248613243323381554346304922182462960878931823025318243870162661678434683326058790253842104673316634548488884777408996136015034140853373716928249572147182089385804952246700959183321284772572320524013358970644371740054978774800234646431974516950123662777518299796450426552866844134529510311669401945233574977221186360319531476531303705632215855320323218838259299324560287685385519547620748539483294130699977985864636682924798076386470895882413246850930897490575833268048113473563866484582439098160534030864517350570680238937337208590858396541105036600990390142873688316895670891147777720926510194797314216607691708644388086474654859272315076922959434508039990615950187821593424166287270913105160824209199090319922621660730916195715296450073467556057117813188384718798892204834213831038351338396162346551240609513932380636468919752176234272047089480215524826776044164784405807708522416729818091787424280855558615481866106243592226235471402928223403363751125473228694557940325664018057624231904452529750902309300291520392243304454495277194832616233410539049035959131607374543080135536988223466945444677627134787050027753420127082380878581672463524436998653014894048224626927429590312237576942670988209026322432654626623293982557846873870236552298136551525457788378057910543590189408939692288030259396667000939773148264352366598624703490192310216247356095839648888622788568480353490726556209023561411936658168055312708025026374539954556672276110827893173658084905966482558601748653062587942728030046688257043580501669623422034030783966301599827682602693584536491690278085748668757833154611667230066262163700668164961072517807204962136342597160100812117291886869697390755399631443423322987399751386064842983323197291987333998635987858561521939771389179964433150943801227641798315198449920773664757861919932472234914705958791978777965321499536326283352835712984691817238319991028785326943880920194304876959416664186348848254025242704335924246274566165234807711829292449514127185671588282446888506620040078736371102983295188218172438793039173945892772310027442108290766448959847726654756120974063860630948725634565875107677539960376318924911663398316080527356278424727930383105611193608123134041109918247177375669861612750630655351206218473035241139772138541081020772225435881125783682656217979720245371576477422664111860666626856787840147745754285720517287273468436831121721373327952382179137530127652684143307750194744673220673625763658913143576347238937970662575618987392423280564032441186497548765495587470122380001631668865481869666185995744669423505440608058969887818531690856961806294765559161340711671083835907381847452953052262620364739543786254139754660892121525598720873883108832313890317565570331471285410022159350346117553946502036003435366940554794595659623873444555528247853991784420170204520958889292662836259420619707394156073800821790806526067378121312704063505412585096597766772285179176890154077914329796201043453326595041255740973687328748558742710812100441366780098314720391295367948715078577671767599036770623588825390066203432016381810721920505729062887290155921690413168509135451435299889446615929072548286559811308631402459309506503498048522507339793378724333100902623259048645752899952244955520755645130556365637238742909847392797133030784569385163614703186898348426490086571376895406639273061022495703120524838670927580089397002973674703805993968621227999444252898087258921129543012976093696803112616244474457216693815085159534587551354704403598736397819453372870037499201321181945302771418883302130608795576412978682450174332107307581911796244557289087552389416332651468432004859473233718052230633270452141123960426950838399988722902689397843647755748482121980466109662900161270314431070416209517703929300694825330151315833811769264381855604237610931519852379873136112460130573875945288586512228395382111965992282720781270969082641990965156850069060447974473865999911970429466179839765810059935823318289124299450584401166690758714178973023789279337275000567430863750204903689930301500859326295260813623906994751899345212900566261966630867303267989357730225674278618371732339384809411465232564740215886740308118760390661758401494290767617713421342622467156527783328994605463107135481625695651901362012011894828234032711474728615245643406596461890412268670967530656903021743014095879617336699180771286380117061442582028429624217566819112705194263878618399683865396851043003187051927393367433914262782757698509741779500438180783092505133423170273785873007604189440374932111044430859565998563249794985923780732943786356128712624139446485621264717396056767668723391960006415835466397685762756380089422526895096772693363610209028610835971966428446214866594914629662936180840401776063183069781026361007111589705493069302524012545454895154381527799856353624800620012444238384205044000577928986191593075404643488850900699389396553918659803966819138583766879719874360729982641628625179914002262044689639474500648460241099202687867248016643536072055691953392606528238145837329031592769137501796211364940356715651392859445785565497754533607883476600013194674402657827823585793632389716180078648930003423614736820157061280790453277260727507627676968397214994334597760908975968815965421044729856820043113830737576551859242732057695366141237422841741044862518795858795525137671632749203071621391307989594448141968234873204692342306097801162351040610570383660647034040129852125141068073542732036008807885114866365169170194327448713081800324698958255960314934095318959186060734038549349391702691205501681784640189400412991393454282924069639187070359555421719024314308550564923256599273252329151068647660724300107709217876157622502580725694641728538133777032219629177281440532978007396006857010203876841294273394890639269229865970487790106110095277768508437179020720340413155490751150588495924885191072577817453973670390252802427741089301103145623542248632760492674487367024939616911413915747592792108838910411801707062285368245835495299086013135906153676126151184704348864949349173716551696757327723859303184243545820964414098872530784683807751825626221878942384933298146638139272363187010268191362776192169186466881536130290454785815035742561820463076876356517035482352437201300465086213529182566778250563183240864805132550315820875349491707702399637316779034685158308582775851631651118776897115651705100762331144060500346735440604448804247599816495590763413481284055003321576696530814519445523871823268713957250175973967854521032189699567540061566796053782326265045339079329192643816337038220471500533870184450530496234078320133621720143785185853139743565387733603463331888230551641296893748061720609411996516085949452103475578043695300114917934004564093718378857692343013355440560253509404750703605128076683892343164388801609080327223235723732451988309182629435141934471117998189210567821124677430618644237364084826808492088118341284920212245815982003086255273118343621044918232097308137766480733506141849832307018693579815245403052657452668691776592013579370318079269268840755088716067756431795717577360148311898656593580683634449964567377529243294330529600903287819686395137221196857767672796120042076183716156223377638664141104298207751201122602367224430460471794004639709641849207721082774933170671828538747260286297357811284983708824690489042347476147611621813703494529371198666152271205070931216723452157103841064252434551258888841714514456455056369740290156578325202766993353218707069217100062340220564566086191802906064627317344377808167389318507817219884831303531565173247114288412080616666657218663213333252937399535814863977536428292543462367519093455596392714574703918599284660463717108332178905826723900788042135138709231781501518859846449667581526009631698043637851244505431279728307153152030015232801573616526491994036726762353209157748861703822597695932460776230280131090865322386472745252010125790174795432813299532438836150149098122288292581368260471862577536560107652586179379380025691209801177434742340436626391593068820485605337072027036626334624622755503135824636443910354512522002772282473242667162659745149734266793733222848765097800577307631370532072235831310731028181897613954495520071969478087827966059690209534563226164568737689383775925560338326368162108683895553153073288451438377896463755609456284961896694699206582560714475344492558974472913255788478590252661436572664501684477447633407755269627915529131827274488221237285453233186426205331173404538935030009856774261967581945311818000434172415775124181521972009031036790586665297348059829019932307477285993800835504548546451972063448464601498113729535605524365169091396785677860522926852458341221760921650614337318601743634275929260456766790061355895539481097612587990607799495140633318419205008543491534530188565493146112120125363732416072761378029299583688341206391002297485219149555357649443274784651783159246319797884011393276816533501890192327133723588682744536415020982997410557949042727208117208261014954322828883654467753092297223375455125125893710018081318335925457942679693786957094678417553464067207254640933379219905077238011778461132790430891000028370402785141401502251632178959104514175961097078946869966121643763821257418787075727361751449777135184575639007292792884801785339207103728573656608967814587227467271474881442072211722879226016927627426670269394289535045870741960104971321748936031420792559320339804188281953570375221705078960878552996270707064587250080418970445829449408745438112307348343029145113929295917760830099292509746585786915837928843379872489947881452760717562000327123282253662149283793264933652240011105136642541433719277288334268508159796580609011104603411180694799663500027086301729703231541815349397712768610983051233816238015572210121744056468150433871178093536834707603180108040634709740915201166381514645032818851433321602371503529368555545050564072257079434688350229781311455171076444074059528197939177112693096611015049726992775909843243863440160909527779245701549101895788689669510886875862372772878707531330536879184091501719116316398419474750219069029174774225718636226335851682208630615991524009099351710364189913932247008907312924067758210636638997587613479777849362846267628749556216455840327988172145381599349391757268405083067914610280160959054148687651005429149274849838036772477112311120723633012858521074840598579803554603358674200444001136927081225036198797447723491320728807842561026958483562388875456497670718853353468841682174302685988831687499200052564125781647574016498102463607315134067816237981040484934750558179990861998621248469390380841269899222619025854254058347542765424146723803278806944813663270099938863850413187264838268745363657616903800027932461514446887357159886251611636605898523660974284232123670201531120756690071934029052593810174727041054966139479323165848138819564301318959423643561145862695515185145187796002658044915071145048724637899587205517409219455002993226605349948878427947995181509535187595559690695296974305628718108458201484187764739634187493862092178965540707128291947736894227556645598831803467992351215025509956045823082314715729033240258116191430987473985433848783919066692135143433273746924403744125406690706683437118758703910093382973368544011750955953884284551128462246574700443207378718568398396160669462415725934047318628324857185064717313611435897419683327925551793378145259520342689681181279710697191505435773141344414023643280881756267419206744778171375589208343317707814371753248664666240446524499721832574222566076768528648765666568444748105704559160484272995251621902374225755147101589316103418476831220933926397343443782068125172505166887773339183537756864350260357447981383627960284785686836438512497854166694457887888368700153799883791044944489385411675944568625267151529081393036820663247204352597596358004987452607869470657379599177935426543196738828179107472730550687391564333891107011321562640863830264306627158475821311753539523227265896121415428054045830272585211744303635882881307338741325530645949315477111385060209557028069818624795891477831163798936353571888413905699885009822171671380310508038734760347181832488722015492986744649384312233656374879050535152595910974945097548038088927637013881599873028678447889881846220594868884923665327867061671194744093389790873917041563901170914596992960025990007734852265591855273497903537727331646685849314007918297163393924339300377270210660228424955896510296599578028097117715087867154313464758114475323485361097632779376961108718757636082156171800855992408683400885149637223639018752070002055602260659468307571906211919301849120315838740517178730703232151176615557343716112081325054048617948454888001127377062016698928014617078943245184087785920179747134902208108804644823534051671054252616439454213710626857748686842751787596777617651879330707104965503718047442655677287688147094200509959243002096010522234008229603292482320671539882441568682394402485707316123243661945069169246245628753413710340859786402794075105241746723099953360251293240081766426021338688896428559134574935475146571917893320591467030705329123279014746170313476732370880348002903713511752438884106300651643423093847165255569388157478184958834276766347631294340878014421258408743019215132051076768733902706051717886022284741608860962373271666971535200600541642892323870176394992431927645683579155261023711825013345468982356682239045755535733428102515213930244693196242206637392188065651580275391702761858305515321022611369215195505775454907789391862272728232668882019360944397032144035286257415315357257702240299698063159512772147992440855093279852085346383028909712101193102393511956845773646085371241467522499363905755415520921320260046972557692331744002905552949849826092508528741515872655014499752206203782623739012756254844604206003874639356583557496995766528972614274850596860129855540039580327215566345759929503395868061882913903141484618578865944754304329740055227602241033140311850256442617107925744041552706378822730092049948372653657540129929671850835452515731698567046709670881843215521907269205130518178113883655610207394787014968524869460235238577028367361311327089829193351470989233582580036348266035163886959662584416402562665461422375193777222146034226554718429343107048795608689418209744050986766603157098097976913264128910643728207585731444214304908153563497248051744232176012094711236175438046350262285240733842508783010033079772223262662937910312375186696476205487959359158641782483191802010331495709726841403854109607145381787027807868602181096910582150821418780612110846198875809835768864974469710860557977729638326016831130427011144175352494285697854717338168290062396733761147726997085223359379863482181534064747931124944214493527017292773525132522255317947487105918033863056042281203627350015829667209625129552362552747091505139370044722466701252203786663447253799126569096067771244945515669443745565033377888086814738807663492434700989221690179481426491405039520402950533505827165731479898622555601173892246109649719082892775228336958737456779376592875715457304009818448410375910995324319217191790134187008236368792198308344643283091613962727837322503742359485435764582446818910814463427785623195657902549601028182979339076755266111517720398527199154447497051248005488813899606808342990615431838895559587475834427926247799353543623890244486399389191264058783727182027069086316857500493609308712832523017146160087654328678163536195041560409141210736091744755129101920952261800215329878804517855860831816725591908820642662931334654819623518403492477360375356182618647467943837967500043981505426531498895649627233835879409942407892167617037118383808008611500108572755321005138237285430082923633443744465737399605248326160304930518642477785951429027761282779362267522968382289843643680292011442324399341800932031955004787141880648484665138791497439885680883040189638392353328506365043590659545679471111669341050513423676561449400962507312894909836707840920422083559147816448073200317891078798024642093142913551601084972418714306844677118927961560288156364363341789510108792606807461882273605615137136132837347821791953429734203098553830120679957740282301950044962577050566806556347768331203373699424833555989142981858124329585851441843593569132866381524006844561476522804695780747213373166645449751514370944209726559297861523142619602865251222769552298761103324383449000111595454666625445043515139272810200764959401307987120589157461664257753747391089354724883757375754961837749926527010801675809790606170486065051200347888896130242643227940331961288978076580637009527942443455007167633220782128904620372404476514421961318897268858613147786007639674275315606754412870377817916258317479131986987012438912872404556806773690117160025659169944917123196973551281835074132824645252028634238084069921777337240699806123748781058486516022303200195313606414840825386971556869984207423200209531873014316668183871789990234450321220859436200494523683505805262906380052212999499918677058861444085056012353596931005823732452674125345786129150236281983870829980168067543791217423698800340420843667061522433104906780238439806166212583026276740831695475298947630300514890945111305397769090036461449744174768960803866216320905479658516393588993686193921829608546100374368577368861832386526725042341576415524079333244454843881521928808995539636360844000830910974167386068028312659842925560477264393103746909663003574500558101079965640016593965858175026747331428646582241527233418891084359430235023678908703709317953726897376049602650669790402102093672685372531611440796097702756890317735153489248842058725850154065946831733812054240020269765607255693489226469585563517327864285609967124061189017382065643570295964173836575280075728884425785311595852261144985951988482183559874995737697944120274480936382034812952006638649226460092775396025258841595906374153853701072534344960693834710646395932278934765609350859807977179980885845401240548445915004911209133819345005300228499601363470422917368720845496739699175848357553982482471500334940845724191889408837800845452526433340043655203467641133927249532752981336315317848304525203457411661522452390564508891761928634273959017955565125995174393587763072114347203721027957333202559622030205427910969375070357834459989904918059641209528507166647674122351744954382541201241951119206272368755748713646134826891270233417236047448720782619675570588280683422741087836488062029042565252109910655303597026250747970759734540249305446774031237263678504379218010769318959126294011379118987536479296319755183344655915918722511572838408569156580482182667270298946747206978559510787312413275505492872270456559498961445170278001496340695214188871494112576429732563484053085428588585204529417535581494005443650902466906195380082577280733478375261571897270761232048594206448331161727987606418967219348371115068187523898948315966293123979665155502908054123907479098780587271517916866748074353926653344496286570009136464857061396234199157636229812611923645147449311935980754680397034799395100152347662623149480785833898252086417170493706817801308803697859842229669465745375772532264452956996491796977414397307800981071937621334272785733619080837693602334699748453173022978656184746849052819174906990511119532124709633633026109300282605001708080285654727082308903917787708086620242915068498816377092248994271852532419710028387141537253191710077998219818529332732653833098226318348276600776954042308003337764199177831913005206993051241907668680266192631949491449421315774802496097416729932283184622536197961366507867346642288009838255803844958781837056548006877835482960053958648954614547044202867558128037865832724296457491222267375953127082343596175368791570239975088841389056817133230464350745863007670324570113573362598021497519168668153049799970986949160679935802917916666442212675150341503736351085067961952347596820594421388946982576174750767244613694931220916458419551338184582643263386666215454844873108744529561912927950018167989307103642399133908666844984037977412546140371851090634600525396312860626480649839829756364261728842154374500719404087986869499041559224020481987882985256006201263007188371422537721798975101979537053355240007177980264733670875552518544789058720175569984787975978427368325166998315761494138099960641490118849087569909064502428469654197365068666761595856172764461963941426801360344296926298530504634953697736469933160162123958666868705120451328496221548597596292514230248749946583130842217677483738798801452557318262207929601761655615368089317590424444178294696603514872555253985306614190904369125255482552353359297379939959894888079247719586790600529620718011527601828753800396032653523197805040221863648229484703569562067023335818956846317631680650277769806233051206436599613884678078253749230286279740493557341840888634532415579954352602748627691093192068957040097367092547218844628343739648118347879560809684280831415384126407546097415789229826661255466473264857650167090947661111000620422354183016636421557274566964492872283853449266696967911354708832780975513604348615764979516984047751105660549260729584316040556668969220127603162646968921619162022886098898150740089399541137428555054835066045727087514622063607795822027888831969225918314092282872043498732707391396513206161350969298573499430460251800876420485448674402859369991288616953035016524398802856828650888359841953136696856470210536090239697355427366681817270361908079074292667679086997165948338269790091460657391751326558582609546826409403959315250149479574653510962139196732933132599286975688243811886752596642955779935904836240442070171942774183013836975435768310282884528320952736652003256504238120363147999904192835734804459760044304423093365751903125060017052296828669006919396392475331295412599615440064737961157436738732741418344858819947099577358053622235514577151745014252554969031370282522794367120569496234918296434313979847414300046549379561109434964241145763878243885872762748047545173716604113177682092225213851207662721669900608815250682096230315554101625867542571817719002215127544262880193270757971143608458803224512240111405888607019755797596560793643931102600907539096064176338578383689897388086471859489985725407539908914399335940061460082246361362686304937197766356333012543314227940910327361969017354279571381729052282995435166702167819419732570227562342497195403451082995434368946029959807974333772391249194317026683270571561473170470512916972145661791658870979353352758721016803521332769341476720078423271566678711333379027945754132624170318163216306832103104799073223054587564362421420762910357340642821842428320055217327077955406671982614378948307163451446450136765691576791776990698082017547765119970288061498416861242305064217382186643794718062410301099338024550710469801580756036997550950967765600743128648231745986732980834558410777257659200427988847651791471115287388224658812561725266227041207697298853659966476329809781968507960327487699923269550603023894958958639863380289211757098938895396892745672837937493217413838877038419516647100005807917632235779998850154340814672769937036113026834647949327837038648642138244543531389619352392661060555756527959466720828551932478266674476171860068022133605678866754444953583553220787719055429580336875914292935118560008157233096091915239743007991589148475995525393806046620724032832848946303981511565121423798172030780177924951888943256309199344840861716639903135202649522967208978014258318750854246176220462219730872231821826219347883557518260294140690940403017897147455902308372019346078314490346086618340720989254188181863429937259215404314120853615292550369596897379862148653933443633363030702660490436289074091550642299271764893659389916398665818603379615556846901573145600159987182764301700791462682637402890682014731599190334499898784739482273456543239712676501770300523374961466915889767584669911317820276399119502897413739981950329038156806543223258978201508501979972006559967182157811946054832872884901815933119663992737625824920347731524506183871526426546960837255967025394783926474965222102568045131226941649353556149036454722408318105221778413504542613629267590603914255290414460351411749390848996273574528252715002192600220522341047334243886723073203991902284383477280619820241894994664838573025003503162154713378655105439868357566132138231103349360319204019574461943562784148969322295715893453592304306402594819744259923638709381311278908784583534968205375553522051234986760102382861903486446877177765764126787758064237141939959371498054479036854869458147429333056437378916571548514657067534672845390216817690718808625131151786309042152991512320236422526557627008769711231131049060643659477828556283969156609588575465929041677066119617264504414780641755006975273870096400343901272250581609797097242388051286955098659596993625316620502682206026461351326364173173009984280499023057189509386554635788235313221374178751386152896587443738161421527383904732343989057629658386387496407812658323665049175053930717511855912950978418909854782066186312321914623756621493196228011744612245932627902753894532897791078180918803575710524254252430482287486900258612498258042717462579848468763578130867811025816095607925666641751153786369931858592797519192138673918288896684735252152653873431861742542494511801116093853317180734804698245414299701568200120458264471820667119675093211362029287957408118574986935535537326271005093693198826763922369881355109956866354658246725301358272378693977754574049331249519436548171329743493956362824151388612392208797342700175586374357424299569542443222635076344958463630606527947845117006950400631164684137021593368980414670531018970577694336441992899171719679626087955308579226021705700601815438200841488383296944218528967499365467993792516317593675508948734433798477682370266525675088900859420583186502278907085204002618528378961734169958302368405368340630686245281567409009834245439559430000571493655053207205802045893420774932070837247378008946638615199113348956881457294244437251151172236507346900113286314795146865114664147029602227128551547460354806213417958111493177183393370712286336359998630336125553408350402885148048299030976309812338869706984140784165606866577175775151680553489659146155692943803299897014727392648469485429875830330192392166902302137111797101475559160599695366002186964541265824190766339312933640604087055181030061911736800642374138190408074040848132617659722488413999446099090425921649805650010545695784772728262840672682752937131807411680051109241557084862253982538421922807535685269038605400318795993404349155906002577577054081022368451196428321811494256996260869437585874905828636340605029116027746150618688389150910217139111077001034446747123757334917845079850667058168156899359760413768876437444578164630513191371763821417973358490527284941621355583615576818097292117407384865726218510965972193201588295891147989482016141902438693421892002933941005527694015316455926618105508202348926618109661003286729778438422702268478531375102452822225541731695085049802119819131697490494038512130502415471900317900942178439845021580524857227175727649623269170283076276652135869968575431837181412436823268794162885915740501914492145964348717750164235403296976321443609583432471501000418756347428124563420298657377427615511024009145696392401630307312747151419964062198195148810684368997620464269083198170506665059787029942963161130135363614281304777089549298645037651492663490348955884530228851009886165112725397700056705024486034915185779121045811181875404852380400732327354784691605396270004652582010898673088054255997894762917883488567668606817393644825509358574705109522420426056433272307574393926442316837798846187267661284845785115381466287893920259985829580936945961960573384018635777034108768574575176312324571863631042686037371939701597154391826708539771813857532155059102037521496515567182684956668501029808409500462400322885745119838970044502231898771872292218106381036073216647450857862969664542441738150585474166406901805705924898885302430846631347332550311417928913956422916656239197471678248045252575231236003771452707124246784999434911234732487619935313697730697157972181368603857879857564730599283525035569697492184234528679906914335645632397168378365357892625886006996279751053334200271713152888240551439888222214739414099219764480340873307700172886976908951017545954355774639694797124513871022036583745788281897756208320628252749442065133273725265821128726266143736121861857379310400282104608725504811992238813583294536076208070438508858258932305343479117608789061414756686881616210602409025441544091706011682230878379710099528221204769834644839361181494454011093455497044992431477691039590237646909430543674316031502565938438720130984984513288107802872651955132733438317338719373141407555251131292408349048136547533852445671262427759054655159169390463798597542629641000704449571479887545292618294538545438347806450812837028279555679950087792938577262660107211489531011687552311271972264523879097688956633091252018984021837977975696926897418466092497873493330202419559681733974030917243992036978667645103165119844769067820518748395804552010621654480434175939348544638840522102998035163088626349745694663361756895407252355502406958197784753321192132060543456367440233686712692308389975089585269008814811331819859641154201818401908973988040075110245711397585380253308096756136592732861172295835571971737161620954701662427897910404780380859290756460240277087874312572487439562339636197397736941907664018800625768830112523775931659784251629080209013616481662493398300205134016486988218942220494592645857387311093261896380104868042302605289755403030299560840170885141594895578426496421400641575072541114335288935914774491682177012335238692254319335762103602912629826179187460366206929206636035260585009340713240737252079921054324661992332705634340031916300196404440487200670826318657438664500840000233589769520400745182476659586040587606072681724791245087759229569585964839091407681589943602909920447191619852938383410645488284416197423338006661721483177733240601627436541146672167978886116380913582263615798836507803391857780476808186595506579057018341628844473022116932782284896282488020527563997511688194602985874019497156148771997874561191910336240293356904536003218769463011162376417483873733937515635083317374516736138274014060908466515188696270664593967484681090505428636719474221277204491830341682173095640480466152605138379632878688304058612918984537423382121390777373656016763080048185568863636889800068118803585022948923109965142586779263361932848886761689028098204315028073893582786256925406442095772220346207008859792684665796521200245494028261443476912751687329646054920113216071869956709374592671516283593493894974633129358439403713170128412562597611307375016019719463504416556775797419305083120205878694881283675595345080245076662706410028291540395570548486362692135641939864530355269418410188131445686880661959220788554785119347437168823427791218590568903724225161808292851016948528490504414954137862820627338094797621718245072009812131251859777561486212038153995562164118939846325712938045268500366193860839877558262142949396631373352942138043647929654230426917911765648383928994487990131261136619215857453092538209006592182009931984904228767345847369654114277879888544033749070752838377123607359346451578973271704587718839306981555194637031757525384712933446373477774606419399757466522671293814635067220953760369415095919939115189394996472824148907971420723030429962893768724776592264734539927850478119083979680524389717543588951422785758067617166832147519468553187914866391575040536224864049369812392739410353287830981796349809074112337806798017716172137403203441831267650022467871353104649622141922583542702589936439797461586045785966353128856395337984060314500823955777338582593631878823287097017724703936378314381019521292224878738684637783171379881944583400421561947223832544482474690954185741690909175433792675038872324437622082390047557889343174039060832737823084299433691231208556789075859405954251146212734406387723311644703626841927395432782731763288910811007116924845246771067174201514386755864789450330161617957615605600245517970512104963897399340289079666165045559794162269746386734038550108787627990403818787324431672880442740138865773517302008221812491947220383102452570255761060450567180693704431519433808403697257642047567668327130582307251138462983674552641324342462353550428492590479334960785705986235300726590059366284730907965410379237332854956416830907759844603110209397649776073207438734641614372740318164226015715811543703793191434152058745349340681355697686571372782985730291924451948927891130720852183039999086258645684403138013388204585159106226619379882600928409185016551346850614719586697417636481041793359066558205831154658864170197998967866044187110443115743233493260200367998165498311019469496311723759978845644999765046980802964824395452659955903602624235953628644103547878443552100713892610102488894783571950548767849783413382277327641511993597119664478926207193015215930906403607585785085147950052815303452827087966354423337526691977088469791303908953287164357739014964671254656989663823410852953274617355136682114035435157440467149333224617495051123709462205374382743241949160176845728889461488267366788131147312258134178108177805432993278325637198281660707062964139868536283722752685174263587383525663300813537257143526342485010580503377012987174610893422856468689217414852273877426279890355523135111111984032055329177254648940752248869732600025375692647985363874575364838500702759930435649566531915418454560846936942087530273569343749986940318281447468854388006180764582934245176401104610258346030220305212903919008322518936011285460335146453514275183304496522505122582187637790241777778329650114854759384501309852619597971843655384999130471467283321243502909533909864521215368132082051245152045978297671494087169818676463211098154450852497487659702399407673313208384282382132136948128335248851662081753781139200533037566399730156845509092020085180078878987430882601286017063052218529778321624617289277165356851185116810839402134954912257575964059383132619141013461154817265617654701392659230066578275964589577788961721247672256330521318546046206848952100688735225054102541365391607442920420654146534046085934287300752492949772537001304051493164170044547052042163462965443319015545193024316777004659685851524919115404226403952420965874270507234345535630832843567393859671205494929095098290631409475417461646024740880583909966503179719529031738356811007601274823412518190294958009217327084186560857878547005306346044576598921029992487160771033454748384179443191474561111704255770293171074434437324835797806379437646817670139776710187232623440205764375668966273390283142018388087794027904736717024058422622556420232870045131584268850327537558068101264917603491840916805984363990958974356522221967844541970437637669356517627930248934305317574502809657245763427644474291537512660725526734454643807974521954520318052989268742455050284093650702867817525837043289628654974413707424262873916262163740697875538748924793277522708450547642022868218274409805103607463945635839599022074854761554070728454920077652057454447921217508264027935555800659007647373583221666512638919399917207748974856265448567025678439312075048333269713772498358340005809562417186133417678235594172743463647555048742722778819901692619409288886991327392430394855554846674587196373740632332093328263532085344828985725798439021344214191969476278593462981854803843506944464960380377962237997918199683346714437127313650908312416188109186628584537824110504382762699717678694908813432685195815064748607533605471055409789505915616597468336990838211137977916689605678052386561352204848738578740957061848272483185954470534260764412828914056821282639189786573853966362263388934853904280504183908612361190510428917065224296216513180396617331962093254024848883568474627012286133378588211655990449269087530061956458131360873900522317986080436397925144401054917120304422203009442738001634184755840518332932363270267902650413950362616120870317342188462881105255951632314726887460051641133403957879851580439229649875872386428929377696043038510952342548623836259112295864133192457979056462236643533899016837487330264986676586657437732662729116619480758944076322998631997335573935764874066644995885847407105302534083014903539678605455625514914544051825202625551905233025952359497303358430105412188068716854196328241784657829778181247933458053182407943455496276427870897082148788425233743330894316874740880284376203896462927000838026522120757628744772471163332871935746458168320850639674633553681883345321915565399655423275219004183737677183176202489920742385186211117091129991918197501578565323256459130745862906950482778649274553540287238667672603866953494665939519497859698205465146813079317168529804010178216028457862493004787724342452405046220201143292219826059255987371032322587804377245034425708825727955037328724733735034667372659255853122866776325802462278273313124363248606644331589120043501265863674660308365926227323468533923692328204623715351966512483804304520683397028345724694735219291142560264800787981995498828890316518840727368052127016496306293315029660063952593163895238280761899247503874337344262556851800273811940607094641774941605094757568305121959735814575611464841952052752236724373268899748898200666398132187394910740153779985596444451277980797873689448961385864646013704165661461220702834014377874546464065502180655022126664715378752140142219377171149071226838265426556079801814416614571711407283556749501471035774473394696739264556336296957335546842382718740314906473686866523367224452666435030705628379138496943358768279387780245657905120323849584510176274016202665785630816585730322556174127227515742087763043946835890339422651170407116505031707955090542728966767982416042713377862150220636101330900148931364403849251494958940227890544533728394198362938025237641115399119178008606743698139121447789565687946840630761488830167299043023756834382167739664019127375486162098977253003314179131771351964885390458529344568744667407052678462723894081213257819011894757578807002400259545552224171728269014533185746591435341336027992929147898466088693219663461591063407207487131275347738996751429401903242013463902825313728051264423456942580535655592319560775096289888674719589081782007575499891986518604317723007858327276969604177033306232548668481980341132715429649401777241690714730801793749789964846030826625570347988413201771430584504511860130118662156724766892951780102815495575091482130045943183194778901919833331282423705795026025461868703460589882103932532662322441090608059268241579652933453030698087334670098239173017326897191090163773558272934976338985327958697660024398305283228483281554066468277370970843730982313426375301304338074773291715819707641421739474931705435596115482444413054418444758488529056245435257760586100683315469979094111235120173044122364528449984352436587103805299698880295536451070362519243025933765404878204014235039895669930724076458845040361751489294946087787218864863750706692702224468594205114707381287761850071963353983367648816292497364078293843113259520816794122910673700669112381275166042721070909555714043105101281672599539607609273825818674624188466924798527782173791085613262705005833625459881287113333935752514386954593720754522022243102925984174580527773538942089232853834854200301517278451966073533282739062897333755319774985493576138172160278611926486440250076013414963932521230238421281742299273677705730613561220673801570789822398546064576016971591464792321331334850687753233534937262022545775724103288873699536972112274795001015820355740132998625738597497679284883585596472438504680011065971819841485598979980797406197475917090670996613897216199161994730658120318786769779645553610272020593795288841982910097402337873361705479868816770285514745874838813825162234580367884667959923435364999400695153804198838745281259305177731782879608407449265371906975104828313851422442087694081407713521525485040234781242650950641333787332597370124912606699872012002883735376268270151620157821366362832338607727102587526870358267968250474143818172504846295765530074899791573057251584657312242281048115898478358130164806309727988769956439483960251133721434260404137753114286825403970657567402029819227635437989167510564817557548052086357178173570075273797508445117777927287800466769749550990889000968012375975746147423731966852035308183785692513144281074102460031890926652583830856871002248401803261203241097987439394817703343468152825410644343698198449335239419733166956563613314998407962352944681229975975130454300118314356277927691209806878995252231937956258601111178395612148766548485033037181202363621760599352708745640657199792016142191985258079553154866399933186042627727742130870446556313283984038106405638721138079274371698916561994532456590145727242831421244703353793048283994839327025571013256784545637774131044041682491236208466212342357276957578604619459709028475383107503603495677018073996408170564768974113060337033903255369844566512507899773330685797273931192560430314777913691032420032935879686987225854020334853990149406959014986156009194182186497239412400409884269087238442209005567799137265649995946060447403916447113042246732845560578768449655344647037000314732098476224001302679848808924314445904709177954708433494666933367718978959715558608435805757493504033673902046586608258120518235109226065167510477188883444088254948056441010202900165853993213128932540274545095618067980880645437918226095832377696358791680576432886896587374830232182802951864432374430323007171193823530871434582705208635235885156810371902790746885864619350364366555975078575714578452409182380557352182476531118498597764313826187667436893667165561475948003520635047770252335738616872097594701191850587322182893812444230681808721733334940711583913091336216130337172311627237303811810716908628247876144093175291578414037880213393761391115029810452287431644693958228126516764072929923469432568313952643631135855240196154886461339163001068886376970399089758514312574365542477809407703025052403984521897340177086259256461245227006434511264816862657875133574679538745543929747180238554679134828187495253738654922838319728015254261074624536046577987647937434103226820456774283053257188428195427297045459071677237725035499524919534288006322117346331296861822363655537019546060230368068494766917534232746498511503759315633334903029706862540107095882175677978000122378772614936686343117422208233616091527124570349248626552967193102419645945197392101308462735640736817599817755872294281403574681585956709366647492105166321101208197632081779328740647003696932286556017005035460130795809739038949935235555384946930142298960791232403377975150617607562570676609375370757501217776280454175020078981776002874954373176872797414968973738258206593585482132492686828176853821848719568696278885298152867408862119165512617650718809788660097815413951147236681879948956156905543701752678810731591329715607963400340504949530639336691661113349964266784063402984581864681767962497166332881021630910908589483934218121133117716267710235132706316720457923345801610685914725551008941854923243833222473194624437248669322482780009754604013955047060312900368292627949459599820478770547137995894989601661586556110045767368795838985178485858300708741542309433834899863799597497980792504635258649967984570934862531237907920993198759749023958441966931710323723163452700525341709038462588678719000152089322351671866207638271097187163960006926612154215101062335603959830139261448020758769351383101883799313039593620327986230403025370015956392243484659329762743435096771454826413288677111690333672342384901523028352642431139153739272718104945161805779823025619063992890945162521345930611530205281745078729793490781646057597973548585028498441831439683190612005974223319126416833594401431348187579546373495883617774260974915669420237458395211458373008411785954673938498013489504654269633522993755281138265963257407966498836959819487859596943268723057093977500367699116699570291691393989901148247176468896985128604337038696091961573010176673109631698045436558840323174197244405191539227172316266476348531596132490837200860628153861183877247538694331198230460766929149327901502099740637052895942723555909906204789985455381426125020195817216507357304035509516786250986864280105844167209697083127268614504529896214061368348209682363400804724217209567446615978772971929458840797239883197436429797842932332571747138476375067448685947521044145963865915726753262242684681990040283017256545633114464731950234667277030034053312133660708172931126008821141226538937021467268902621664310066757945298681969843897903758393946230495355218989602226459265679008657278314535945233122359470261055166332242335646607619613727722263445601822279728595665865227408368906711101964159852597926155103040512687560405043037693510946513752974711025435975141692766307762598342475531769884994000311892724387245416617859773179534414194181029607549027569473142530114065699562632624929251009145062104662276664622980311866683057614808246951072291206285908832465838979518850534521000654179821670687653500857682687806699320816726193164874507970572142249937059037186987218949328600678642072285882913175168596205426598444599436721397229842050137170846706430962118994538693244274898365510827367979564835691929736843203659711691245178059621011933676832613457071772507968533664916551938775230883626561796120957209186500097995761062028181717943294706301053874487573799966214520314759966850008880823866903090729115611350470669989771028380147475198994440001949931578274000981176265914825805316074205991877338911884076251839826341551406731714194879978801420696481532091667840699502807611879843248534889150007136817639120300638001090296715143880622510171215980890480604236497254592774450534080367468095988859590324162020307265646001856180463713758087438471538825085244040406893866898460988198318237544093375644900338699075509417521662491519607711915837203366825240736012857888059799590667273427507724096959502054967834624890665269024946216868176092431134933688019075638152448589959476339443561222468109721736211110403962392231079719783983510130240177036623365991358072548935785252986496179808638931747699754880304423588048275338409515173517862217160479945005355218409487905526822760297411763338611848588407474403133466436622960534206147907495086853485766186112296929817965689578887833401034322965782585668510854097351369701248028988377192073697319637839976887765019249391721802009886577035834304430496233810249943084775531221206945466141641695257719367910105543267368434479282338348378401886845659053204781018300405588500933034118702621416968886624847839888496735871764717471563981038407755331047419862578664322670098640287613993042996731884542306343021220114074623358041616741232510232566838960039931769505352598693061602813071558997108681615345885542760367389018042284118709437360461473348131938872859043465643079821928251578637627762679353547499736541116208421896416771531475541278738192244679738875337766244616701078395772193391558786276237171321674135355280703112263096928916530795321759062436410222883148584772983467076878029079412702884328974151639045685332564594797876556172149315475612090207789736248432137643613608880754139142887862587578135671036847095044408293408902111353979935431341190122098635548736882005740785316250515163913083916470671923445046493092578437126709270472341417691856853309762709313293864250676781477893924224221830036285984354081542133479503122924371320115209357870426523211749726475290291186878318181291907822382444899081655635480785518761105346433813268627439377932712022266891451000573005163425622975863331888541615122066470306659237003852791111438771944952781117778889559625680136721670099242902598895144868568947251832339308333161707796826947343423632381232359389064515227616204610562043420048994755199140201057704036204663856633620076238297905914312410516078194458344986924823826600464943316870993389555081021033850146100880361784465633308640478690720486853663637327576198371385271037883294831938775791753694818265701252447170398551810115110488069519786532062981455388153469332829964231289479882166827145310884506247369876862507621176504030601782335941410862318768217399566033869446086464086236756176399545557260189099317029954531354595423443784049401180445813107973633959917747345934636659872803228745351574844641367194606146022238374285714143372285448946089243858521376442682592792317432647676007282988596865477325148461853558398677046038087078921155216935986962207153275271269105387417521930706232741979744371913653837932997587887719753627690040455555359089179274314073633908901311515474383206946267538155569473620548539303842840669788107137584319839765772472636817287379874886267977278037803325506408429714372121041304034464576185319476017630728104925054315302338875142471465877459854112743641555785585295324661257878028564982410772098801976312390408828647024238123087659656952529249464203081896785515097058583873285237067819538348734680209597877712465126215156277503464420606369842827141855665528495358249637496686794637858147900840843649335900633704544660427869101685079444674536047883329277033132196366371068654699768438649635317256423501979760805189900929366507717193513724443831055837428790269443081879431122492210648066611252880213268931237044890793169767165919285581469806518980020876033375503431347299254021377751624538785945881978226447880969251372740615821547582917699471926022758288759056928220351669869722751148542417282280996673980540707906417219267818501474048587979418936135639554348510122320026426803931189369516910641516140694780790442048812243848121161013658855992731683848212993674626031795651316078334995633249856756422650134393224287419604907082669636450589443657156228062109291254391197818453266594447718687289164844690860327065524860262109055108693057035994522883741984568802037273813327183585198841391049381513453451753154046421441695781100528732517657075154952931529518955284733301553454741608788528915486744332432787403559171153712367603083503630181115219849805365841744544691967889971267722448855369278853802023074220275415010231739974343188685168563921990265703926842748842947289275279700800540147963939038736435371827221407685745242840716387551456472732208830539543910432860263455379633927007180366554089535114338338894608600080214535179765118143491168341703960042120505096453433204804033784295415070774666257222865191104473770310776314562389166244037506141493871753322039547856109407809608582342613686065692262491463179537252609645668111452754116631846212262659651265392109911056300357299780577019870724986700933286680080337907920686583184842500487674084445295063749881239149227773948742067486862586164209282999836528193372480965162815464097428436919124685501146800483552341657236909134502943131335429674952098298246886986700591652824394823775880466941116184767267092030093393055128861812316165539353492999858517892089107912146040009724005222630717763344003899578468763152516871139716559927659834255946142320209187010174643924387904540554290678009458546952034422132275565958535167933628719910451453766802976866075978196476041527529535764007008158022019030483965272530141621027596739377395509353228916651459288702640072875429098129328309479766145766546534037871018740488427417297937641293246830703861206990624564690488919297407030497155374767784776375229082757188877708251640845176384647134879561265739906811474035377084444816758208003252248349082943454557420568773638670294997508241654456344132301024489833642585097623310510687138382231236351087430580030427170597300791901299656801332328638272453978556481156150208272490825331964655169706275511453256264450695973595840735956008205564361234263737108760719313349957464158167307826456613389345736488401617133820980906597295737456153014188775787630712218685105712047774354999084709071547530105858669720652676633835095707549611623349217834104790183136470232080929113303767301606152682282566995656950522609589531892245760126096513830358833848563214188356968911786254394703098509015178943248015766611225123727344414137489768231590629763767060120061440979800084882300866664594327870860656445132249489240739404125205035118929233552539321491742405853861228172939646485710017157369622811025956067588527950412243850192034782926410654782728098950008736293503620733778250288503399774916629242704490326653853333751540830099204173989853417658651216013680239603522794075238238037377750801788743559097493506615864941532568459297796491061129996942579833552822975242075210512056443127198891085765186119392403335973566912283265946988304795057268841815517508063932089958116833196475957583697231364904999407035481034063520872875807181751513989925249656087060519357125691491281645399368680030586302152568599842324817137542620418253832084429568948086145751123352830481162945352511478910195800781626214266532869351474962405088936865422696481781951775775977515734946344317726534739299471655091770972493459009457033216771431815068511887643824917024985124642349253313652198607528509884429653037784571260887852753141598576138430739800111312864934351149337908563441801803530802145262446008642449634996872826656424332686279065238060202497853956631035794964220656999617645905691671282150873758209078691214956327504844267629950451019049532019161064839010522906083574374582419929392792423931200695722367795641375497301742883362001511985163748390483295034313370312630910942757681343853888585636917537866689004003472252489119088506704922090162591896472454849962446845646315048709135956422038629062065395649031900079527379744001999612831773268101378543663565727093393718327704271229432424869964229688254016682335672010683139650346823859905552624300099845957459554176323023616943670735639832191817466647342837326456849941786320047859042382686687117231646313417748084874581135996256965241623439649855872527177780717367100175860407831901274174797947890901099181847975901913371912008742920896759498428638674153995023058731445342464634992850081423918961987735074030413100047524623775887998285432089217690173536012066291356496368395575353876871586186655353510880674077459260321981992769314216729038675963839825070512189636104450277164689631375839168731967735646349836769448590252015121806658609858508967709137627688544873726429090623746384843984806568446102282037246111197180630613931023400977466923475261421431227978922390599118129715421692943276941522875261580136307434249928925897090835646313530695310273161989603875300322407016300007218510247182267591349414476222697098053339213653464783564261526683928969540073705398819829495837757094904258225624290953115396431862045673866506132365351406017087271290073743048379483037569221546179001666373568489582585302315568612409155876394389100122046217347407384996840161854505620451088202008831674759207673938050486177888170482590405927002844064222444332757961168268773354960092576370374216933636285499090274599778210090383905160657385389404973236569826590595006111656828743235838796607345257263035128474975453888339331412141174526793223853339650225025727673472372054036557994317519430139966309233981301904398776269103387739008269580534811317636354545091877143560741335670906980612193397589293646217219031961644265921059975255176285165973402564079740706742965609357578957402119846373954773502812801543721646718985325650457628771878779267829971703588954301793905173487576258021106856275369669051505957098345488094084278796251454541696408571111846056653304620904121816266282103014971790207515982238512327706261161785719474569106068733103420919957808769270489055982500186748985723844515452399617532503166736707750145366960649498166928391060961582072428028395201442064345552473527036993148115647929428989105352457043937263460492773637749349292071675691630429997571031390667648290237109630100674975449428486736672771176116481014411119337074421161849653326723794332876223940519500117268167736805111831216017302972909481618333325399639367532094307918985123040037710604590658407887280139404450929730727294088122216277835081475116313008279607960230400931181662339136707870326154063764956279413894284283304478409102363205919560476192017640371648232903200997402748063536836501454204474231332138347878123856523661402453025092181068282378938486556841105459116969060257772503569749141358024826155098396457102639265403339875106368346728232898291728732653868089630511845107842831734484912801250900417208297485602433839164752793917708316918053018875393050427523231350954058453788481762908117267101725822256134298776757749683189897198354177808054163307942870212520565894391935377273462340055854842600798879999073318120670480093977799349770224050416538505273043249743674542366281468189489229577867059994202681292120047951032234007835625185824065607524508401377330065141525551689203924804477344609101753846223524029444539237860481585099787320573563899949218840997840472000346633539118966772062583027703884734793631010562721108488712611315930384983426409029724642658827143296567540732774517663943089519606429463436922097652255048418040349659629923902109505231040902058707369855989220378022377917232735085494926703359646518853703399412727423014025894793161694367863913121412662158040345608425264587386309362831818075356309397800537432717267172143815337946791677522430553683160823002955273626673759109876978962490981028173864801293222259273163276038882294170290413710989248186347811498423706084194605725372421765995454260203167964782004266877168748669006968284127360214255192031428469350542889242600097726988476637290934347985096546296678076691139121988751990741575900151722987643604694607343239565687250061586876449605531499440083021791139583881926499308997760594543794346069905330882565025030310461402955342205746588077028233475922189921604418186815203746625234786505166133176610388612769850708142087346839757205382248532161817351670941135961757860864964284804089187530488754327635444863662165465082742797087457798600014409813881437121003509932740428368083613203522206287820444855494424406852255528437189679660806105231953290342791807959655911817987988911701540880988832876025029337117861699941967177984363682515752093862697581795919012884966420816714687099698921692670195862052089020900374590256406708978695025208823908859386633746281293319298814676147323028539405598030133660196690130620186950993996386491947040972151380730127947964285911739915845982354624889013981601879019953511053365601001706205189609941206612700847637151676479377451815337597934217021669004209547119376506532439742100313892794447336638630494958943720402147033530754028710026158966038051261156822076721823178435404049335072518673350659482700540007401179779678103796582752298995577649597802158980373806889163953772031024652213959625780257097081506117175470450437600958546210421283214775975649064678034297095585814034566725146496053094068578458996673110093341817258723370661387152864897537345458527870383174615433554878466229991585790083812691344010373167732761346921597130054896869411639842705729360515155844507685782997485355321941971442249372695341990348768893650132596986458313096963962298250485257605070772868148461101836188973774296645750061214602061969322809590781314041087015392085980128796396695067161973653963316721883348168814059278789843022554538407409803272444501808747208328402041411235939801065902960541179954729713657250829081734036853144905370256000173177856918936619060492924955220914850397481897535017924010068931637843930326734614874480217066465801767548504540657695323452780492501066036561555168368150952081361766476129090812420372606037330744875936969845406244797620790698647302308645014507644028718506179147862366637994995814918103434061392602850997613273481968262561582902673355596508371046180932174737864780107390680392076793593415066487356605228843820546300206342186920472557974693483796357574859003910235583598772131050405303047474956732975110662917471892926377725430715688980820580372893061197406380558960014132747515371290618047701918066696122235967903641803860002253833573958402027935034702973837476694816964061531066297162696175259531368730725700637679659098505776794103682803353570637081943681247035757107598863086589232432564384062255431918336978908952699299201371405929685647613855175052039956293184327018446691592238597088667082185610619121692315852954406681666325543154459246112854058275458094898866504057308406655681393543990691673190398125569749203209681591980662997952176894638285233124180573212600581302021564921373588624407157023482450452538535420172677557646875323493961792101008576864981343719117283670645899654154076067706970599113946837811336442297084911931766262971029920650961448427904557947554418843228464719201193531392232030787153766544558377951728229528144942575831931464484156529277541785875309011213382444342750579816886972951559233339340603992603257123704902505228225166782660548232773685681136119674517103897586074395895165657160671579661144697117099984413052709272078815634872672263348883992873657930174286340579585624777222983389370879804588759235821733373614555278132976023389795783762515918186912512707095010729266066770215336632171076906547145076182716123671508823215708150444729769094988319635230927990741827678549376593356313052107356407665438018575132366952360943981215936233467428257194896212242127696735253802028004431786516610646350707335393719723989082293560351828229698521124359104939948695348748290643686784536970470056307116246364963041535187521614304029764952345085832590663164959305825472975267977586376515283199390070777696565754548504841041473033767503941334006207722570756453518647728293474527189613454139627295914431545200922564769564578814515472049844649310571588523818025187669807441614045251182912753125745101598933417462247640354529356257559149113966258187310116895248109763126799054589049585622122629464342345662825397019445717062128694981369006906085798594957035367388033225014501154499619817067927095989859637831546790106388066499079946364061202320510419566694066685815004275761847976322685646981721794649727778044839018166014748487695980986563837658857233738782760393149215131336840120556430829357674275069699699673370045601619277215739935800910708106102882954622491373917404810589421764870186808313736406626490117939059628648227820624851857692538318493646202400597193143186811085287756636083492976173076842401033462606602905272642606927793187127340918934013181131669216436509065222765971968006865266698342536189099095243950475337898253825004724834137822191462705484917644711089665914449845948155887496005657445573389494810787295856153892637944950782046421156147466450919098846428902089858963193191854022277965693999106991349958178134662946799985264339960118724812278864136105256759581428298964740601957159729860415541891246796420266173462098075442834657317329556103172836026550524369720058450150888223225248021549247234113452727670149522889904444821033758414516707702240125827951850354470400190203067367301767914760196899634177631612855620031717968317641129533634718985383507892221328226220918406292579274874714925908779035098255359460399737855315464330925036995037257973324699919063148013864951475450834027950589767809020470186884720049394762237963769915349725787078139547965146052892592979232288164695603960583066464536771361620335042232995190843092964213182675494865796723277427039437518053021316033581847613862192887380721980424240372131838993769002433314590746577543147616537473838171257261538881372502459872173821519974698310940367514994440049457050187546952497497799600043830352890880891588296101643820210024403094032511683250193047952978119347013545524945119265403992509375542661430407518450901656728247621014349479555213586184826385536613973321256216154334604325055704385743606075280203713987941014420893532337596722701765159919992221450935852113844977677856739761913828839056158377139455346459761853233850343916187310442334979557610780406454946083861619434710451062906098940792009461551557821809868832018569087665583902738199809016904118276524975748331147072262907263644506789222234425761397885566762610123203161319010101912824036089634253461671800923009484904241464251289288567973219766589140470805558163400724148494452049498854831176323821216252414011674312746962192742245168225338640840060081150990486976173969527731209456744311086146921091527569059525873364719270923590263822767898926687172149235271058279583590158877098779615037903846120988201100245081206310422651557288816350577516825042405112742157030300550098969030139309147623861704144248957231827742305592026895227116875291338134934588344532382708324939139989917417441188545377767698519238482659322324980499929731545981961629270325756293742138953871844919762920242047785070248867447291896683581202718262201520381400217917145374187131844368687750030988505311841096981986968422132061138549330222101298157818476845702245935915395720822315104418996155623838909975332442692964607002345983780912874372293066108255717744122639893381025452826323533527278345043649860522173587491854269983842916203813654325860831194746371345962634819478409397703050183106438562892967982257827415279208356973899496717784861951824727812789494589283839057185118441072055222675466527528277153187825024108771590444400354534163780433554624503953853828841716321726811791883173146550550167224610722378994860559835533442693012340003873771893399241863100203154267646319537261959923634874082703683522654573582630664309573767305128042829630657858354940740467358347763338024328667351604599069563306340621669932299009370540209788648026336947222099439965873729064080035323949029909448326352306702513843942638480796750153666922823214513711121566974379628467347944709153138807364940836363427284005750426743855616276947284557180066336982385641933336450909592157966794840924755913482812727278327572129288358380782622895746720330677160163162226803098913063055356768032279225104794132556529291171303356902784189597446562690588976964862122353445239273703215117357946848005269426178563111854968641499125976931536810247508381288759250131012204095075201141198142881985429141025549057954417770983597029961014387513620902087871491984199771355719618080047005900208112564194609942767185943053052501084629295009811617345849431750002932041291781414413269027178400140673778005923072395843314463648193765245999201410556071135476515911144290858415591153223590896868887141754119164943743213712996385144106104392267946092324227355412809200644264026921071979191925812007355607436807362576779030961714753224768665526763830036734610321076574852665488328727859271085196476440132593538223647362016201631387872449307001029471908948597069063909600013667798541751634715567186287970904960336699274153537214576103101091727372416610006191843608716574261252320122631240129783939632856148376594923841559379189120072711271138036450875233810942547418717328340604117850406994391115972159315820386044602440645950306213222497451534598268628001317562692065206178347812079032157484512532799702005774563543086738998483253435598681202451124589003394118397531999010607658842643520480083911741102031999290205208420145422698686838682742468517084275675562518283295827209702980273770435521777868839575879617547368050810934938881203614087428851180824531113617466587072874456242856940101825534901021478456325186483279799177944023886009547026364322842755886322265022618850971688582771397994309838776978684053458079506720852310314971609187405831064527234047149769954081688374767567384553187595151080123572711686078593354924415814733339177719765468180621854971435764482515591399296436083429492646628236476381628802481028320526590524295668820764961952775126384589606323700984894929668891985230317771686320730994752701678072885296372254138377047050442331487604536282444367166982997470670655140747628996147959700049694738364262060840706275467521132745980279662648990917850084226048881949236128774528134703861792608221095896781214405168576588225665574649616189095847606528001527160562208672645038801090294614171884471945985116852183243797205009797584271827319410028783196381487787309561220665869838306650817807236509681742507449963213537220651772239100748927779199304487502816011924502377706874663059090621290172506066505152909771701356833765085413379795569566455628663138054249870832699991439879929931964993443085285598094260525668136349147100622548664049406032473925821213156911248723718934409479561296930885373145679395863347822786799609769472350598584288479435669916848932872145438947591389940879982827061494678611224934361438932467917167201491288748409752033016436676930778209425008281879077515362524536262489444550860280972769573701744490085464401368955944401611185742870770795382977644118342131614261093466626808489186590375095668031192650259093095314597518357247166913323421922506766703051195040157476255002839629268616528119419044656457301549716655406352170177234012261556668642408919131630337214029201757504539342688182861441243949037554721120943916102723011832916852517726711895494659854668382306274924986786030926567754796609026630440258053806919312614972789891131641834795390768997917513253852827191290057642466657228153370016993310441943686081692270750608477030215254291274347406896803912142628077711465382973998047236423976036865183881277275286582283240925912478650324536597855725993440432064673560432454376610510024976980099064433717010885520682088839848929515117903651599194588082538447313897950403374351208520116126208428622549742382784466105643075309346809804822738124373129078337692758785639940953480743721735786243906292818616196035958329413378406438705939107544088589552485883517655507312749287979846784602754813988988023892675049592827257535248472181751602093835875459165149721229577730596156023865365351815423264917103260930779829637782590210800651506279990501308037617633577138665950885217048478736655528892721085429589818357330590733570077838250882545894884987054103157678466411401569065052441603765701300058482595888217721102812244108806880495793589058775808218305033346393271068042386109743538880522989611864669526146646036536482530114408451233130105009084609092237066356526518420088382439546818347989862478945624547372139052600517598538422811788861218769401714486780522077945472614348558438065681742698033644436694447932469446339270324805534239981786787616011766395007109171875706427598770589885775572989857396294669903180806872498659497985618362887824637350414222920201080678841488440469948482777203817635547345595152703039770754959306173032418248444815180425624257141794964988341795395051692429695384033254053818758827853787419294211626827974167736549387378205417931910533359795163908350813449300803559511811392456688244178077688448938420017884162709137017070455624524677297708106822281283448990218133082555399476680366474281012526662537876421547037292691230358128027908511956953126835511310494233503928628689436579639054129603033718956430092075773763536792550974644411560634246581786693879114980329177507618044099712005814434685360438282024697724774653150106838355556686229610494672921778690230909051987524116014153051842099952399034322868769868769125529323881092222198531924296659276179435846795218884473452283946545563326721698503024683711879885160892386198911463044454019769655786421957012977905235963969684815234856681102781649428684643633829402039422294736059842148044951863439509348429027597899848243790525102902835506577901555226250682278815242593752455615364988586249338430202312115940380805248265072620559215773728317086215829137054269256196426796999975650845858164493853544122424236290275330507913254830312327900549492423938688751054319343941543723844239659686608889084668831688082974621913506399953885632041949914648873724409350177687619973616795880583825111998237710927505836373160473986463779707188290573311057023295659572278187695987987789226418425481047924507254139579049712638470440418427333115653840861135689372246065682500018116058113368258902026581957884791004667859722080960995385468706281555427058240547682811672377942495330986339486778632441663502118128203398279057722951505706499477987096006550422287645786167750442771179050582261000515405678346605421070207973292636264460085083925841623468713857014932455334209813257518038021383635263767772736708505576406047213392943975878876718920222501326708589749521660627669046236283069686465832897595785545414367675946063172121392089758724491141831731788082051225619225214049816769843602816853810473013419993165558750363039341207923477249068790014947516258141192829683539699110501328606737274542528402367078431347904927186073181821980307179039877085530532731921465964473954497104907582818866292737754788580829270113687226945183703685497180430729009115966082089826483561107881831589397635903857915290619029492258343513744268307407005549031196473303069933996166261999193010977917607258186563634756456703124928655346165493392082275147081153964091648469408375340255490668558707327192772341595192606945940341343595013954566242370966710576185238911849195449420730780739451081268478798067854874502248773591131861840217982955184347350523937284800183457489276942924958826037094790933870697999643106021361467627323865436871149597525702688870509664227568912408279249889080905489700889491193289309116065404834195694859337471691237141914561395199708740515579413457636345068045328369058468362131904918600554765392815196312217617837548264453759505739121631136634237012795614706690320029402036936450243161967877568762543169383043244159201857207213870901550110700988948738371124216973536915536800245441043523896227472963973965302563669776778296492092879162815008659502458330490681548230641970618158162290374615983317010824693629244047140477612366693747122470990927697575587907487738208652487508286361587481439961081093291397104107070550241074116540315975094770995911352620657440728469546790947300969494937711361886628049372657822695790882006707660505954529844672146707273128988185539956933328298371214866458738069803757314179880985597718014984917542576757806213257110037195837838170960766865030136447053493248771177367911749181247063838095631927753859739098378928989872430128951798057312717845644490039151333572775754978906525760486900725381891637694162094477774501630130293902440508226961195571201049627641309902877276151969884458972309384183980450659314017569882367123860908990596957737137080479769702571525136769914250422771864597009801612927516936204759885883514428758150774837115640301986023904954414277805526494710600279728156052087835144652285805945278284416067696627075967164934904048020024444871772051445643334895595322491616257409664828383532373603987108476072699027779943881072998625280905223494749749681309364058504284068679772306612249416379443049390717445278215675694801402596072374632988876659596698420558115787535735186019855673397775941735786240977577784193637855009730677845918323514604751021715075336906955609946275910778886176327632158570379696713631134847707725420033856225413229537461824975578202250606532563344312925322093030969223853506462723183127533559092962681431893672662786186470621133646205371180433978645136451616430284895445610161484623309301004251571481615768468330972641343680717837779678167231315661760393641327654697961046162088840942606238520624729893110848875969243587858270722273486008495016493248868138913103064176113215016618751385568743772185430113710750964560074816674277978286171677931272906975781548925347077484872799107793704223436273503257310193540791553224623579986928241856316820945096823772082079220289195127727342511307607021159736876595826325080854994440087398048079134828077732753536083065869329587425709886016508929002532662041098293854100342687930365873878895305592828543541727140684030081969967579685718163443312355984714273040311431241859548502626334514138098815053580083964138955877174425145958165432283942421188972674319759000367691574036184264656780214627766542526869830832742026856830073590331500455195900279576194137081035069444681258390475552090940103698491710669455918572623449585436076399829276397088701975108112936687275411127431279323313839428390521709456464755468747497559140301284081181067740039580469607640533998736100398269199961564672745820221648832882134484206062995996596578310593972624528356765080902221234354116708749855808279624620202777005351451878576857973495026737715942318160343324207646694418622525077955426918888392375570891138988731917670836054346538434487808236475295425563750985399130098697516825875443655318610260915196035898153381544991213721832549548676485269343897525714552427297183102921110757395270104938254762830405966445389355090422774600310663359297961087440602960774093590237084822989618019838553701115280591001066140804333902884495938722013277648047040205885425682969023289041653558564640424632447914705209695757013434342534991343644331820667938226205578414333740532590594440233784363027628175694390647946894639378691797684534555426782598144148277862385491733245774226206921197900913516470031265133721898914774401644501654732239868746547147885844078409250418317973551310614245438436053407810884857282913129784552075826722303454224245260254225629148016117546530250127103701036068403639080103562846336044300833513719375394530802259126536929890177118871039314258872156915922687545425158895406876817729206107654551269346053484689761729656362362713279687236858862770011510481892744700967821653781432613950395052792442309541535966837033244773658031432410907873444661378722244808564695930818725625246006278808982558846046940017728113886560152792258808632822341400069813375457160602615906052713682928463329663150577886763102307637009921371778275052285888366220217589682286006808243439615617047689493531663219162733321052480941804558042667257213167718820230543913695527152815274100618058042403417426444257549177863735670056122308177218210477513679130028555242741752933722816820724433763903587037409208113812735164480959040169944083380303361593048998242302921732248827999364630461827171311705204633033382836885063471402646850072727107473871950403717269674834366181053135467592035118507738644907720466033651670497740409340935313517139784529181698063066361543963295689297785373748144699469070913277238426098045163479103124704071652787964492877776353089273582359904992835897712803256107112848621821121750702177870728651788291925985978632021709649159758420696012157988599686944959882646366409657512145714164061438477674675540750919006877645340353518139116878951284894220711816415772652199878832938710475348475181641565035658347163547153199339329529472816694628695083944139655674030549791851124039393276739396964438593504590870705812297057266644232832665765876121178529022378216570795507432110583464486625971568279928363751361365794603902670377538353207046354892254642115763299383300118333172755648933927171548117002357559837937542416855333830492510727832704812345184609531109690677185687910043979805760511784692055500360007458519969265036676167710827520516245874719510885912111471902442818373001997890987449780570711876593255877314608263041551562382489559063088318320969265420032479124601345310654237493449853773840873295580872970551042698985740253618399861439527247714625413464851715845297862485581224906699188749806578373748299041281441031006449386896516842261927446252932175877395933707418852608782808256681896503766335805098765014418028619388719298511218390637591152820726133563615562964609915330114242886183298983983419593410020140090098419740844904167613131503610474553217191947869748322638550594625148428283809935543141880984554262439215707300016076373837923690893462583933933345576354821975086707939974858501977203533916221329003660986997629890040848129138596162781657717868010721203681377694808349411274819335672241484058216339986744136648528436347568816830855062476226229457321773998113992174096353956476608360551014307354640272625383525568874125116499818046245338651791853665040455603764705899439221342239818070296157092011276882196512826180147298944932940482750464209898015380313754351047738714694296668523234376569348063952122290587155289548138987724690714621918980432209953459409303771263246885362241609158690645374783806213413973512198942325122518829943732815693906871803246605459745316725821936628468685523581877756411039767511071073359602645903680511789302175779999829687015657350441177532955508905778453932177024402548367866516860999602850272742320191689978488893762594021192297084275981239354520964183117636049539717501708551378528898816129756571647054905375743693050655866490339615336807959885175449786274023032526833658494537438540429034362910759571269921781157681613039986061003052800432253619459999743394229567876420261021804254846299378148028111235782677183203785967807207710422643603315440226854923501169327980143522379245735362220153100713144529466006989195754807822642086985389563530164011503328285022925731025264779964115591021581289283248134412243945872534753466871695077953116663432954517661865692929052177921327338951834171419804489750669445385058303736949797198809345055019651534867670217232642510106274862627791891464298952655500433359786090098426606858207372455093226530567569576176561769903697041064486855013194781227382659708261485751923093532911045381451409591545777144060616605654391330975529917110122871815530525717294018717864641335746799727656613587582249851024775109546023254465145263649672454104404929271743632773716826480537677014959985772366743246244166791421150011018046889592004077941543591088734432018079947698975698444413721766591792462963946453160093490318359121029253944427035714998750805372116479800292296983502387278191354653054111656989122067636602223351464332260256844475146520263747531780603820120699553155032964326637360149345970770003717272164562879992051098263294627113577411640399177037438662367949922916561616833514369896910169265734080646386722173248976560550918891810036364259406909873518490729473701630260050160820637305723347975678370890256686340858002074894098007865956543393828032612001021680007128425697633944204494316845854299390713864625038934817562013203158038914239299367968308101734174321677567465046658768331244711902613956706838465184679584159481520597254130853502329510372407750735573896623612885562423818409502241064264883430560663227314658680494054364371377945050651212146428146589264919730162422962018599750842733303873777546008978986305659704180108934550681791618518143593433545331140001430341563536357878300501518775002306460319097351223671512583576246808105951643190492865138086679003216833324540883173749539001620248994633457711246800146921633682509109617364878833658110759453050865374255819035857431801412474296075361968334765589067887521687888919755168243072686552634389677287923872333919282779838743278777186472803827913247893072467757311135368084015617379445517749234457042321249619108135529169097983825453329372008782317876257145419165485432631290739095890585572521152762331130256902207172102002113984518002000568253573756587863902069829691339516497896048168048435222918764376662436645457816331197893262384672309899814294726506854408723229173908399206241112817293754566034486263403887120425720340741693571218864558681848233631349806501871132006205311859530541428064243929873821134170734371190835803560903676578708089313522208718451240680494217280331916764596880312147431707442129595788988632789498751322223274266243454708157534771218149167983372636039899445254655696580841592082509380765601968333061624348886925676294465606880411998660682201410567103267809917926272713540726683533021050374905598000444532761219598617144162595057793934733049970494250880505226985843630740463072174103455822794033604024494425529597083549093333087978839064623747529285077284659601573606538808435197668941019001143747285380301259294393283759649877065327852188614837600209417144715771984332307507470456300247216233702621417503709909169147192163971100134239765258581859169499132628925955902969079878712654673617496238109832580253516009554727543411599713338815993049080372639502063286429066567708988557801541800376064412638960569440316925004410900485312116996314858871461319839488869529861952142086332552527096060188775109795956737540339504473010093550982523155096766178200883008458115385090939032129419522674573100204328324944713702818276775918074578499827701605977575872481974876590023126589388664974273929112030470542880332374186321539836424695106639438470021559529705570166872749447658170206244191518054920156152990550780664183597410215776890368597220693004380700386362818930596448954119446066499062901523152254448622342210944606127969966806300401631711228983787629010840374211180689396134999441471895253718454084338012714601054212934795486893777235946263383077461037568464582210490332417099370747114132881427068539681668068850199686858951046903075040661876345648722230766414198812038490869120010635734809024889023419522225560703238372747620155378586759499062749544936293375482570358916606026981563540824066384563148657099975120382765970407621385728519556271420085950837243560035003764612601228649645823389673987740989130073031780307425503588385203858075911384638869769603614605240758509326102782958209430895820770830650912804447360827066394221715189759778707075403193010798064214591430251729997050891699986044131299115680086714610904568705850465258032182844930781532366669988251383122129994783413019819784157308745188930342649710536298363836982263444016138710528794183630220818524011028594231540637046205421379804021953648463678666374103730234396076752717096877665888626460323471238508700310910830019422462810630241873995559275589900466549172361267637546613548137005273520042059006143784098983900057986058371592422435735963553948214260382469377209133605281117530179415229573860513659952036424601123587906469096074924078134834068432679789813717561967179893390858530038995677693875772928547856218756745941342090907278793243293374747791099785471681533022361273028739091612454429820334109736914341497143968880397855150633551183943410098037724894043712353291950590339906375495034284542182740796573660381115324809766154615334754163379532960313231296931901797946678828658801361352400578611042347462502017555105334166311237361115041583688980433056198526852511267389987165401685555503171276103138602559178024646057648442297073004780655812033658688284977815031383515233641345500054861764786165121572398801110576725980183480846535584336365088172037426631010525070781083577812603969268485196897186616940734243822580106214602614692364841299071419739867148310311247511886801285614647383562958605859776558854733686055153385050589550895594465383091548774945760797657998841855404951054185339842767437749835782941958569525294089141549472891236246779552354804782461722149810773381139601513738468364247528357179718174064289382386404655258312170686406488538051255317492458411935168260795131600464188694250082092302273320163745229370247561596302394372168334847001392154046104589391938516380180223683625670413296605008104998959840694674576726387989107854075761112538674432157802672128148399484911654823224019609870615074205549656811982845625558928848955433868068303665019327995238939442209004117452232852997171048616526721369283593627131289024991384405724833748661124422620815030439775146122814754728284012677252544001476078780362622002674868786989356215171909674079820208348275977054785667063200085435357756904909232184775579672430267941070274756747760564573815661147156375441957118583319542343098793442353344201787886850739474914343429325188158242989913460248872491600371307770276261407982426084185085344644894470116586320658758761518526942855539516442186810257665583975331481299333525319402659202237256949320719431722074126148001796776024708932392616589656894531733423538610814599702390018241006242992222946202347908836927504321470441239398358761669386177900401274800297075779634187237315299661658457978200604085428482575254416575721801633501946227731688065851816850965698223541795989186619111778784751202077749989296486057865401018964204265909347899584463821843604016688624793835104595208948661352258391419797527206404317788947835004466684243577152569950554635312069301729276348048833564715357541339836027920755070403809222908549456643001378533316181239409699192050749446720487515062522881276598453932487130929925164114292046297410551049785283688313865570757925108964023578135421361223097750871623824477860640624445694705651458763265359731782985572502563396394742105875354858685958565282089804182481232956840571996827855823735852509394858143112772419022621473351479641764742559319596861840538333767544684601978175511358940267503346127361166926714582374594146977315433031677925312843053196774376692780789525310885533748661229256099359278645084605751281920784493602971114946172432540624992082856513003797760459580730517650062873200059668109584452541333992739632246910022012746541842375382117246378211161375585198937008640700771743657943383276553228448065138597386316184966837541179430451343547151175678310038168649804176550652863613467010544031747925502333609775038502132620353961482888593864856616778001104352120935502025018826259664518738418761184734319841208054604893961950226269673164010801210464867196523662926354667236409883440956378456697191073340988469106174440964685727698909593525552395208641620407852148007351732783648263959172323106817097393366062011385647276171352280090782387381265100810083189412337079991580408656169177285250928228655643524358619222323861012026154215780968928158176720146116614259548621887097429700199961916822846261492588969011006790869450278066698870318423025145579585651033512561708008614268464714072765036735850638568825400960286020138844737718105859466870946516968898469955906677574804513747484056083845337512461831082198674796758985226780013247755568068633651484683338298728310523684958250979334036621820627714612494999747810037257265369945687222241632211678099520493842052757424432251414640012951790216756808355163069305207854472867862810751989413017800251929082319036223073253123348249533099749216962623109295184777804785037806262473904847079486983173993851791661478727308808203304052956630394711322877589416585296865792712543783611844738408601978459656264374405640757525085266350103605644810391973797576065061356341706510248783300513365029490657540570657104790840779018137791679371315838456430839035353296146073421092832834721804940141517614130891164274143072768346241489627544958045251190457961053415106954685652211409445121854198001563934932717681302362529490507764788444596933838358434970168271418416614319042407739754455521160460154541976821113115105004935703540973235078023752539581719081684418304115098738302776635539986432031635479103485443599866018540013475623561425235469247419551994454928117909889898446572984518612888439729674767188224961082870344494429405981794417242306516622261473193980441990630424309122388294718187637825543032802933100228640474786947964175103133832988905970548856786447341696379317368709834755385614153873346565360423543487987895380081940790752097178933008972781625906120194672966146542472272007687244005164662401941513796627660788552948667470983878961405002571341611213455493128166601857794243991858103394424863514963831143422740987815405593759293648432071949632237849930252463808942747435054855451395519713341837665713573934344717949509105033843929091010812604673055339693959829212211722363097785264215798521258971569361748377969054497339717419358665713381357798889842256667829510676524293024763328622519698497533019002896113275455975949663948128045810191331987339234051661125400053927770659677460934792902820207877900057300037760330047074445262164603593512529200441926190914464834229959627101198957763801238001177444015616253329165963310283230860466612140868797762800364955704301957457300313703785949756245404365558270805291952893587729197714414781404370232339596797747991587286074916943490146613134324462275200960438264788436144015814328732314753315015806817340835761188779707777918605870807185945471116319429397403196330010542520965571971280242581400787205521568710543008652974869480222708208179516342017649868124314905243326249388822471408446661834658664260388455435513020082959844930880249875945864294431658933863355867541695640220595460491458725286380748055805379050658541596349150173169490902700847834101715547073343485143955549767524850531587499901208467623137251912130064021431287543923846483299280273618620326955411701783008660702885554472607525040772281690514373592513171486667596816164062840268965987187538587737335337862207497048045992624213360310937946775806561742472864617202986105292409505837229814665671322907628612141643490152255722354815102850182932564488718159419506049664652631570848347076237209201319973947362661414329035445693612601711543453191503235226314846836321962537378678372420916198953585541723512263472511826449976190942151996162391282396378254898888016374149206166991220349011888967669370042670770321184336028847560022727701634615293634013979940666789093614549723475521133303279718514920611248025407760881965046116770371128265884167965088363508420186289288150291137720286849784997984334116116852477603568183951853726088352106864997152815679148436598268905221019175809816055746445323921244122321296542886593803205836335409586974568701578116919181919092997894006009464215028068179033644461201196873103543894924864940190705528744193514893743612206524080426454343365567578821856397542516418978608687012078976699949775809347546885808285660043688733947169344788720063930158918998560038952996649075671756637920737862011038526971179524581810228908325964792275743648139300956722385633533103517160218839864566460687775727208715553318184888893602098203631374418368448057376978139939715392651392160247309681364841316652765041748124802468472669291807048579945314089200640462040762374762475661546372898978226225139514926457110364331081593526201906017079429225818808322678436252427270583115543284815698277395536992890707922563825971417756491984640009631972447770651795813026588313752835936210711337741287867266738513936544406763406663218715792562556190568012045506751025019959035746283800283504935082389165670395882876717200433636584770370563716432642807348748349437757177209127189299413816262798236059537829146056584411938374575442983606534080586553012727646923718435435850435733587090993928656371274544856572578185838149890765127332173485785048353907652943613070592801602471066039178894528668833540495794194102087033100115688239394702983902634219578938691828326730502698550879479437041477112300222330502454117934344414653187272993857203420787729117367111936191947648593991033989116810378151960943967100969825009454453537646389474043443691035282542929022619759270363237039848400761497202935643795883550924242642311864249427224880906951137058944223236671015769429111690937611906013349941350781264808216052775837213675710374263473260942318258041431419883551461698458850282870103943702542560847915692209181368761917057318567151339947708645037708520054753957317514217574319007461097929658960481760799747725887394438257846195078605696457262287200166962150307703706412156464372057888606685291021674160812968221514998778729203355865498045658936463410672771879141483600443719436625494220666059920101609859655524005616104542276986014374766318188592787619814123313902652088916389411319052819024652868951693986289427962074011055072506304691779886506198371101240787508997152130705077036921420051469044135059720481641867055543357252530905183823370000171619723649921884898727689240531414672772612947598656696185512692154005990091279751445528602535733260899535647159827271206042407496605797116143689865223548868932090486437759489571787576776873671790276676307895528732805455086552818393428863175791270290973052249893930529975555223727578502993589877839815535080569424016594814612646935977041679772214178814907701906881914474193118361432229160198369095237391514351632343730196236166608573109628957916326721926727656941979630241000268528037451666448571629981374073592022601524649256408874678799884299949744627200669365024218180462136132725266183153798351402383925288138342613810651773700328236085661017614506673127480284836893857595711656309377478249293253438488190233175431978587233003659758077986021269484576151572982227761559350513553240896620715671755444058560425900368429384798966066949470311427093063278038620111446481966756995268076970227942763453765107193559314566592051791852498180600951311638424609936551983241292690228952612602777500079753411230332698653926669269287194184832988058370137881387562505336963482926968742554227060104248213709397742297030757914221494525821173642413146279747512112667277868873560184740171239273005970706651733180314319026672633073526690820641531213544260335601571937472572231214900268085844657890245482584460577743525527943132940047743908978751262144921840611487382636604238223905073949219792181728056089056998049589576539501987584612667152269003433862859315589276293394951962905598230546095257933836542381106893731730401345640058554242878691709846143760846096407049275892218090134913432855855678279539280293410111534600313961256822516876012585521565121984408286352832874179719631758353478372781360107822727464968690984350969458362087849538012835581188777223596925084907200093835917341215689481802950184191775533744026851747780102428648829908270392014843115709542242149290271520300781083717468341344054315358268901194627223716436114186401035955269515116145117874658034958741868844565007884488588762274989369573694217427670275615934039048935911775108862944771760450838132046271636488115573622098278187447572362150926834359042108246836149964138105240872557782640876234277704390901016295827029522623452096627688162707451461738453508875916404084366572922151915939465980188490335747870955097143532214290697027553916636851728928223906349403886342197830487507843879404459901724782383653570687629807762748252237697446384305493283167122882904258347731093131561968136157275293042202751955165659933232132694971571120800730980616664740454657123743653950948254032735756171750581570778598653955592540871623010513773042504472827208406572116660424352498864020852789896344726118597962029460503107407852407100714320106443144241862246336731652545827278616696387315185501627075679991522878225835737590231058133078332404918788106725237119977878129166015876408739135600266983987725148204536612989993580115380559894873314484749118004372472658498002173655657935080074785290692878580430852475789049195853126137858470098346736479449919931443473715769928980653653465820233387512093065139585977263308029072603127589525187891555208501344170039914329987031891539329769371441280763902435339139597154327509887124725968426977694052978927119721010857751607351977308601558477523665331974229426006733470363576967700245493023542557392542431189099060102178053998971075885190828338689814241728125633337594846597693379783864975531627560790704197656500510897914734651675039203223131348727262361461120234993098767157733570689881932601596975113767369907099659401716968274046795982253498652696618171739396129654233287921141068709065316966530178971278917337312974081586873525934802544303608228138935112890470555537962145302059657239115682056850617862074012681087471097914639610379254277884064868693462031932946230035694222063206032157261091686789915473650993927026109450519599933368859427786194116406176624279764793156384400673562464693053014305410135076071840481617995350281825396416698803564042086348155667990912195178398836845661120648180307898124483666698310085917002557936836382014340597632813315777513098827667439787700551830397939197337791520717276053329586174417963932151717861876279148361380076927940734255876299208820113751940542329416306016147381141110916540748471496996932240431115088982629257329244654052438792052990393315410623931695406531067184112609731287413284208393812528612358301354858378584911426511644731435378477418818692751192209623491544379106810176895681112076487730581149474369689371883744940216252823293478338474493558132693623779674307659568031501453612525804831982704614520800883422118496231229744774492083505189951139459835036077096500304570880985413538788660037967172702476868931188951181144437238936717301399566002338177464795241324021469774352579798872792937476445995863610712632463359926525092026341621913079837620057004685461316509835019912768060847066976980902854124326983575287291040455032417372805165240046291034377557547571057056625074046719923943333183591608886962029406090784963036004745246556208053755375843166185438566270271618352620379230707207963709617171212032137951885681204084002509923943020666762887398961318596946827759856754789396691301788178701070772614858093483886084951091254295520129652122963636063952577858665567544357412974881645904007864221664218714912043415543093217921338395361346292531170196964450299387816880142747297298076720920463455256516858037055411631432841723099794242046829549208337853136475421643229300858384903017581558116708016885214543688682511568395762118053322276006051993524661105754339574725598230928674198639133949785542663665190917878263533963457226139031515056257583325125221905648098599957867457103600499947019960714070146197114764398057549852077078636165859550474548690451198308351815047234569216362937057882571041209722972630974413247933171925609960618891997348238405909645065223657270263731674301393953134861219602518579393238112630598209641959182142141974489452777839266362911050416448989332805237620723350937474491736669779122877972489346635418922356752427000789636130648885698887676256804553022554390230501717104583641477878110594903238477023837410547028178910980076355990985892466688804939845884457219660242209429820270751464169136589710185843791708336077102545587959453189188132715046750503040247243151343556710235072489095214012816143652978810683178721164401149057099692104340805937012167544578470265254975926642175054184816286603605206091877657784501142388561765371577183866751405878989998679944457592651607145977699954978761798955976967503249172959918707317199891175338442856248244927117903614712504350790865646123656354614372484876456214339195486064430576080624733916329934572328869809226159541726519252296444147641890354757954390785777762886605249661586633529425854404997532863066163672612574222597967828837429059032009578410214851719179729853207211290438076074053413307224190249339151811816571384786292701285252961555253641180429385732086589611615824982286307696429377168095487708353009768466722748621802430676231182904545539573715340876675514884360840116189222445281909740290726159895842509295477464958901578355103731988589694764473849981240087456749364240168138776051940879504053317896005125645989837398687392205340090321786895866088220083980325559716448059059155027229057636963260117771297204640231371772818375505089805695831448599024107266548692390411239118597810968213822103157397512541818373451870894003505056298699018492170424896211333023196764776005386871408788772581594922247931339311132165243600678186060401452877558173461238904794091934660680037880317397126321645988501311023691214379869083056119534259033252401805903192035668283411689178164325417641168560481039876123646961111822564611190917680697193070661365061709566108240853721319660670625485438195496382296806046239307809432887039393289992650857059262213623577455011222659861360184018104031434482259713558931265343333882335999874974016667332425530208709387848324204847563836227945403981686086829951617839346380240277429763375638120151469377397250615551624668333566129238067339540032804582621340362150288899203466388127183837474343828121895041533234462074818568049730617852081266383273890258854820157964938751148033443516908726687088716877737115679122246318340496633255055277849920963725830952461485156747788573688864360100493024042121052429066766021666218064201172400252373747396441892949114319151955694031502987890905328790530510231397720985264900217502196552924306333795458612719782842715765560041254384499402072313107990107108945389840985765655147514949918120030314005456124064630078542949509481917644545017346643522026724537421205901210661175948454705818782875035686519068784613348677816576608458203976823258471752782150468236246079859420059077499199274831668469509543335822047014156744012198472116078743849753925993282159568418501533734798541980549261723098669064760906227273708639158941009569376921124269303529271808822805932106471490780316840601357403672741352404565993107044081119363140493652412540918510011519921024057702588170598610370322590525703399648933146227544760627063150475902497463893555940632067338715440694685937664136238232081346944649093793734474755359970394464447137454354544760976710915978715956192316564596562081529216403929262525461752603823636822661206555461873171107876297870288508698488855250409385729822905783734721252176110735414787559980687824594118645896813586808217318115853843149628833089497846165350503138658534788990480330068629699401082342510041811293554419091701271456702701899995477722178392692801876126223414420175362933024374270428300014328050038885179678803551738262134734418833696962983449380659157346075599890776909638799816385593140341891024963096399883757156131674677189323248492720151830512903914238744604279541759949998383174233720742987565952081640654513067302936059065748234507630030554643151892635917561252887450894838153897004591889791108781114168414748562591998545574039636327376843560295450767092243071061867524120898109066571517162007934219172978438464716105702829573693399198890256625063067136879855403262687942207961546196396313668770475849613040103297410249226569880010848216792907127072266807752629138538896527461608890587274300066666082863099446063613359507864493742639616143578579648668418246056855047165883603836230615779047507825150339771799610635322089263268077619513388215526079067266593840314572281878534059846102446838018679447087074014538744828899664594541635846848693399156481811418284852603312072607990148815589737542915199743583048043208685449666093303590874188474590331466222162551319941328689530336054141390312469853777920309828590588679940250090361708617191171555763304894859677742797561990680516211428413503532540072277360534275919736924509535070022259268546651483379361152289040867312115351715745613771850154666411425478567698815775627883775947246755943797186800671338390237153789623016877001465885445858529116142373301096951782112016162565657719986050747180712628159350842214646937500327794003219585261284792596460905685017125032818755831875371215138794979969241309569920350007700221077107668577250367374848596665193844039230678364743407819944216788290517999690386782224144587367971700920475634848680039947660870913122255588086131793897258154956637321523555157513995040678998834175396517254350417644245372877380471914326711621456487359977894885482215301834408524895983989555340812789634492172856465515847837852605954602229835702395330335870875540660527539077485193010807605450201889386389404888083473580593445632344584107779032888385964952456510560950402060860125337205579975806920857099790220343243145571854643374808559898112807592270960638264134455594893122519270074344883031521486267491172025693787336924872646556464376741468590770923676629123010694504477119881443587991933991131779866413955117889829102622208011036151689636143925842107599969519455676140226083799638863299413886342611547885288662341886500199642909185821008172171351869067075086848319514800978018592754213007460843383455734715364538558909557157533057568483164628355371453820571353288155074460899161226149752321113067493295847296486135047309186320486484419187334059620203065099158174965932186624617228551386950633167084495533606704896179063965054034685897012571011252138252507949858550523415622458734331333824064820023011202833396430594591228500540182428612052103284895770299964885851831597220301287150017665301303922369084019688997164797360467868149831206148732376993193648852351706303699324151782746293296950641815445411013476529858541569861724462656781284257916516936280551873736313192707278599599939733284338644532528520720907869087220828889538735520712962141145105920227927393140071044831202162532620866439401669312958890916575112125753707180526202519399524348212673474514793764637390541491024025796569215214996361631618984904869618023163571461111283758230806588351151701310088773658435138643074453129443981664918372307918483757838858850675188613289570455267450811954569641912419980785689202076656044962579491671383830279275195927758093638611322134306760364284318816805293230548512172841011427648053691277058876375387630104957761328405819415149958571123235019407386594391376065677747967866471174126871470608897137342442391030768303715558860452048747957802153536791181594219141732864018339395716636610854627166794444412826946076343312794285340061157067040625948075335579291540079631931979260539591621378426005873022446685123733432025931198455399530336300433290348519081483635324213860830244889026356565061309038465693963861196207674019038363599703831926977641719562414528626949182227827567165343558623029980159429819242578493449647583063621961348094418428065212626717051392901996464497052976341259405747052572965729809316463251140327794683214119773809716674229992543679803993479572752033445320393895043001844534953842126090360887494492652469636631044477616826213927601408718593256899323548801493484462627807134472801506025142043073101683467439723871037877119564154365628791783378724789625750778089140580154021590524960572701021798349812043796241335935532633744020237796864735499475476099266193241098320181406769618290827431513971773510053846985959044716290936105960418924703142578083574410218745830228068563255060260257015385186803996695269693652250841176921918359308218859147847447689022275533881782509585315482400136286018148987255500863225881065167049549526880387807852407064390178876926449198836230577201128190782682169800234394880277939737089097826670877333209095811596845516054324292901901130376577897097186169719410534314743011173457491765455166109597557643683622130903706025480834832130513045949456892773543288846415442619435189729722618775349806685165197260132342657518572410365962442765398723956031238361521960298350183549546830221552356460493184271298991614872385469821092907840669806304726064273576711340943615215754200880749307676710048294618498325255324863628725883579881850395441035302663695880089845564017495417658428171431905095637045691335788277808798792638233170600709234434572342476983812793320999725638925118811077849650443756988049760691661271005081259659980864235452226750109656920949745054888288489144991618601458690202487556494657916875440829370636857141439235493426489085508620142898870881060142593073417699537599518289182606858315161841819685138733193286575858337977996205474168553963620744341385480438160653979208764997593677757114077973591264425262980593419982646683614263519056839176210234659785432613770386269497058871901669941983881977294614186256885964345344627005774956927075820627899741619708501706028009223797555975034433772634820740195045458911821143016034760919889851526657501080770362416735504389088773312166152304385321515247628502885795212692952976821386002530128249411760762114460995819788795968783068267244481120257913900655985199160979130352704914228239024941566878716203932335003596414864290905349082521609702427078579906181830516138812189559341234643121161114482889790412286660522852074815866142337584274928873927618721789136704093905759888109235318343975619772210974289999566676518404013396512465568817305020493017593854901932180939052751140938301924501920354788768443900248942897440859476685927870452166468516528999300890322428068553161561835479998973903433769871717655903094005308250948182296280988240722186686144138386974698103038265517476898119519027480795837665610894256416254381652436988684983239994247338201799922944780163231975580153037915547001861691363510327993791671126793258788898251142668758968937992551435577639332079896384305956016051751720793640429202439817424722451035325467572408235960464589583894295430164222902715552990069401539870543170666587492250071281419594089227511625957975464215308793814054115499811322321344780616230665047606499746855594912349916985296567911207544201548494537684703197702953703780284712696023082478933048360481857237281573518300326262031381163744836941201610107774554269516382144954887701253626695704991194104011318752068817343627472054032328466524206775338426540848614958804738958579758138414605271398060467004454919319131277100348868449830851195381217729908595405787582778766297555768628777399965864950422938275769582195747618308124656582773110635350332925319398790519059197328336489706571727133710414772953126042516335440273893314688420614586059555447690267944064397285864006019224050009677259884974574240202887668981514872463521253838743446495187223392850876077489947649936286190231034791584999384123605595703862460502738617037557840977236486528747015658934923676903084246328825569164711385175204891813302994417084777762552946171368829836799658712755750998433656862173410470756919745014628770633091823602703693997025351411471373769570786052957523809830211478312405762361985827099762566073426135664943798218341865309957451992408178794234115525392060752710547668948139122307733036032860251222113151442965549726667182638259495645373507753533419597727704893096276108890549913993122889425711948556541026280093859701512299710286326553442403911544626000284946868521878138630040745729479422753001565276688690415666808752467598739541011303340713789373226934739625360577226630174378906392985593483842049204622219949064229123362734853568582618355498337809749142059414390010194442850049988004834304111680542906345923741971956840497022711426220960378447911541867390171712705540859250511685184394005943315782862042290736046596069971862405322024872189579703982434459215237205065761355245173317401799859922353594297799842649659494117611556129814978150116531072583942240544493299300782600413266102980852445540784818216565988276843155991420729847318771637204482873284304993105415704208074191059800459408096771758210177486277551876809009700764216010817630264643436626225944836212934615172592374630471194971091960658345090826459666252048847065580616005095640271038826372909210194023932200994792254875487975443935743385427891295996809438325907619834453391774014614153857041969658694686065770080602302737479410158978875052221597322791795508889257481554941193699144589055700736412283087542187741642278396837998979792875543531043030386409908339890269027279842408925785809362032210986963163126060650682400472256373093988128318891377934301761286748501548575720775967842415653416473346783413962729561236025193950452862636270913359899392379239897858718415446488121717037186440990955214470334510133710776786375902164784905955632558700382822522755129194207046224179086342827050968085032178210673403699681703619500798130271373481113514053755982645547375581203185824778780157699727971384068206325487073026626008724392790758555314526349295991558898685695537696157066166268561932520310055080166620505811036539681223550768236101229672133230847393949012442843283463999027540523652831683527373773839993465187727770082724458848030528180777940682064276451441030523436789944364223557473452160395974597301281136427214143106017845904206599505262936292131381377777404969204504488668898388388400900941308083049218838512175116566709143541729284430820521053222403724597793593988707175791839730893361726795823690568494720779928436407653714927274530635117486199270899727411991967982069491187134472648004072456023140027387349478616020108467441899165811304803039410468526967446279175524280726955481674943128599116788260939690635467819770649017179951660359293034314769729676270771427894004721340778284436252853181878344236699176061659487142480858204494778703312081480903523085615051698643382284188648468086959247624122688108506400540023588742839488220158390900169250331438274300012213101085172011057389635393121212182026509162981643346344508824715399491379839951564938564316407853325249206916060932715946013426635179460370911973877695350690961866888999628352341234838134969077943417824378645224524447761942953458971404584667496633255976584758124117769610179982019461236947109889690230202931491629209725197493203978439996483295789069317937324549993263846943685931047813151108941743888510604536989271192586894098524902237855982987707822193794403807177259938395819990015420710210175911903979073409682328268043795086076282300010134636178026002534943993670687870126396000131678875257657737265056883830633876788696656241700852152473993821422176569899175427396015074797024003183840756158539684248535580588926016017734176531534537537482411481035851262614560453147146172772229857958623342076057050390904061107667785063882827142357434154844416735770585869947446780985478875021957210412945460216534363119617528496516287049066302715226375807065778758345818874945698366335165896654119068718598626654053197634140699188088701917378866643549921266489139754690687972193509107625340230408426153617273281992477044330524609104740941807220928306658596057177297819577298084001809265678803120905537140481268634954498357470613677194625031124563919561096493892100411349588610549336381734806532440458523896994870490529175137280931864985576189795862214679161270195096282206415040425325333983551245973236636734592394202542532115456504854844959746566706062666603353601951901304361763821886480997312830140061927637963207397092413297495903021910395177553638478231146032397892968107330971605832029269233570285279545266412695862736694446776405553000321412896903115259687485515590064137396620171340097205233275153545485052354631416208728197763417946381374575298122178904824177795883171610647031555874471703213680556335203082758385311245618989543334351441295149366280711475812121410322245112606042450044172624947471651370280049153605077213605613223494064139775160422946460095110442243091959063381889074224216710915934793529958233849274595257479143245571782106949842837949779317100250513106276267686036274383944882494062966545881207349959273673008425286438140580763073401670192681630080942678134573357355234817081463575330523340578263790683278605695246878897462104915930710686326909074115509169299631977710420138695878344749132605443046382420732973847496894915051064717913188447788758361859425115709995517463840232089128662560568936477411224760879930985434997450202998218708151501489375672063051556113653386143758065269712725897411937771601868156980997152947816607764987862412478858579689918423040379365490523298867051391941924535080924169302803885607261033045649384946360113264857878155172179047411089683012171333554263507369522524076244509916274204153421374699230793342580407394453161479100832732895017402102678681647118317983336330104725943146231036915239892164650643679815553352404866378332359158911656816194789415016845233884957251791534448363544662757587494768300256998927130867938072061273462057923591090873322169442989667340063009842507080024466117871965729011616088204680231132316532144312701971168370944183451368020665441807519432834580744812305309518156905838645412998782303575648943796141989613721904129264967621274873372484052928878980803435739020483447358388202204948251778092304979815599027934834484381909723893922458843830847609346306920509102693684076901813859232202125605871572533122220118514422954316023305781302384225696165693022733124666989043933054442462263372058634183193081965423122212882911582628192682022372644143239419109089053464037993762711325620576199529342911597823251723214145796444771212994202519266506019998980871140278970595650063616673780256135565213141867085255178930107449531552193156983062568632834767427920603331463905109135988350930729427162023601136566904689517344609165459127971209411738300782234842279569264796405871927045854257416703315350888608100570804345494778461346186760437633987582212932621681139017628206940682577973401667716239760418041071105426112334654790050060564361346469221455542345625005966085534555996221153140617173101229944112126910599366969275758695508398202246844878310114629364508240808926174085431543888327554918264030281761760810299216597148296534185131672130047714003036805621816627948040832736184057047861805102488333407676102172611776467761884438474334470192510767877102116295884321462048194527152794386481535766488974308817445989262260458308662938113922766209348033501273280089302668282587114485297661225061239848984215317737757856042326208575527927538480507949755665043552130939629577520189224328751862758644238482955741405034220167854464558899724741952608839333957775692145413890138519611520818691264575251659831937726957127783087839779376199161042244791373237539043664836807691908402039310411404714728453621556392566990536134046750987344364893709754518598512317134632685155239135177319170075310186855449745753774595251170148197750248607870582659025401500638126429164500163732618261918177270275485729209019165049016059719531504743047014707054506726454999938572960192359140593294642097679148033929564892126296001090977194389440079341504592845447442589637822601601988622624329780150303030851397904874180121781770628235199500695094473960060379980278254196547540113933189005225570485448858790284204091356424619448348920548013146624620759811612138924618152560706928718432545809522654804698284162056634535610952071685566076502610419046528745491015321048708497904840194525409420150670452469060991675507811886535755793251230885634141912657694871461736668938891155174319802286202455274912800524012494820931212109013555833388038641632814458507215484509796257793226369861518289032557815757652705081636642771955910528183903861815034135474687015102025771786729105943304436176306967340380440055363561466481578984690457957727664243437874772521650351352048052758802008558474759169396248103501547286687967254698705881571955176025980584213469148477683156320141763066740944623239866875961934277315538390639912542363680033904432509522274185168074766372896847206217083642993681369330991175954045050607295810433278679239699494454884172718591137040045681934478103535416643933952334117816298128174178685760003504371631017970162969412567117313100830369038703172851410063410265651406225008533793728972411432185564771130222044800336569337972331482441896439272000712696250829029333993271054254978043840883444122135938396090344511425754825346891917483892995049770018320153363615694900713235459769490756626946557976055774001336360556144554907628256521452692758242070212413349861132642903002227903588804863867656595214045339877872780569185377616255443425984186758330220924097176525954546940385464909829015262433760922302165986347173343506823107596359266291987716554904098995824917899906015205619836081207139030646272173072243945843779969810370372921917279990494974104177707577472543668613546485000808320827355860066071644494676424974597821253392841288650450334513737555760466418435506988555192804541300496456596802516997452913589547445473042863765801735983367463933618756572617863292665126889155600083057973539377700316231034984775015794294574207894466309895690851616039739636491984322231614227030964447418204677995633323754288970203009836522083336626846664056073819792923664483942637332688200612216258293119873278056786989408905743884768145899506112632300090363119835160968618254325059099710504178956509289203464372230387448335251137408021480581361183255539790287186902874666106691601241683167148759964353395064671919199380445810220539367413417901236401903006292132679470672537441511247226295608656632828600450797396768784399751727492145405607378430677164556068096499747064250320204533779336895979585363169193344465186472692119481134991061492323915301325388049531106539387869106249440530090067578423212914912603843270286715843339543499114885438681668463302822944067422391379492894101510418834581338199191325433481235123010287458384929179906486904496696699376428951712509208152701470766075367450582213932600225680069812137896543135506309698838846144070611353932723428388074241415590002910234926755587315746676008271101162896771632945121531436688582734293416000203606399521994950941795562151531184198106956677299818227406595480530989880404956414395868917759434028618935538975352010793203116373949278147326919110403877341769400258776535126604226628588842473184028734143287442552825675272150357000351518817366643318915120277443429532921770259773572782425168931282548326446236979274101506687696086253839548768453679809560505375325440742409291958189765272548058577767176061517495669621093902046747291950331647116640833929701562525414278230977458612182916727918573933839723682900557652646063742717287064449073603042090387024770720062624488269125881702384454415296434049694174482670697758522670966941586833428601678783737105263856530664053420931446124305072061726587477646336597254578832629038985967610253095343570890213642379251622821454771077216859095304784039847665437252614780193338585731680037567329094223935061282766866177831011800874934515287632971186497169629413829583574546655311690349273023703593264424530300220966687429318670374612981318687778776225725758317386481909395187776474795168369394776738815835399976228147943037260927190775957628511949670709358794262996080168526915443280411603170620805875332235700834368352736000541139971278120426345017131630482522002106314761432161147760946311997610122122273724045294645253406278466446303163052426798205067777326419799851419205674603748364319388489890800911800020420600487500337356265053083874393745209346940510366699194991254326799067358678449845287971901723351862124748181980883806787846218244316883332325683898899207554495929452836070761676519982280735707640914681123065747042157393579638648829072123212460917079948046086808782887222214484886675313894072157134829284494484406223108978225808680177226700219968828383086699940982082875172775995039304310405950833015596080827464869910011177225261261014466352610634722233255930612691815627709225540665448093380453448352297773204808876125706885658907285852038113046526683327644199573352452257332557522219852951338943297627816912167051840795976470356204249284988597678160292151440486986470958301185730239473820195751802214194935636659625440286071269100098082607189537278955162935776585525694940867506750017618301931281887280606578217207901180381971202775296578170598042734026583587867638599119937459824336014032602960183488394799391494539571295030363169319049347310314653460047461134553768402165412809424836886831992076590043138180967879352782515666998903033088174232678131588753080326148997836062536107391139107047703283671053866751625549318446929479065377858911500484422500895948692628343730086490989200520951900814268484011839197087019769014038744363372301775261587743546618515218014052497299878002316429678330218833956272025678902872763823222466949805424845799754140750980406951224067043484831015261811666749000487439308036558973496320243925490629743526424016149237440761998223266815360914271240665853225743470322242909518111821062537625656648543811105244606180855532449240377284574003767994392971040524522359583628596390429110265544434868834115878733029697203324452392533918651591067735300575935176839447542384198573360518886735089180540480295202390388009068177235144128195074079445595593591140271131544777046383806058787979255375928884298620467464291990559866652316192962756451103868375532785501730031748537990276564820033966832966790344511747656650040366914181574294549266157862649625046155247212899812544439432275999499884103265066793242196460217414680094787574233619395737454581631315712133533370429848294961508794842667252760151025518790067761277804026542642445839662465066852096035169391189454519241641110422108380101675660337259738318505629525888911609252566070931293860812495972692947453019648915421760979351463804325729472134906451207516444955212209957542410384506228022189856929982190840031004442051058870568631846378491445857574090158289381434561379966720015642701244829649038351074815437044503455314376728524682603304125022328928631371803891047111480651359491580921398037231807001670297406866452204709764490700809174898995155623169418332025183087263605360753885835888918688282006469313075781633796420818538736805672236128564355804521897410147725730023880164700194882055584071890101395662877761958129425460206225378031360036407424183329013249968362901115565167209204279558516364282329739054444952292839892346134690367307705730841240969593934356900394890266531009527916314631690509052864368719672701349000688297333499846873837835070883210934320162795801217107449172175275794520925343320523014449649936583886561497399084624809813265564976271361449102953508640141979734281810302931761853976651711841432076246335270957409774207360470148301798172025939130873457745036373639066941065846681478373212984937791811283851687756797450617918131218558306657983251389955788040236456157763057075563458364970181973657037537674346488707548055350559910512994522515897746408836286579048514922540860309651615149091495396134516769359150948825155311057610535638470910994090012940985063741398460551288624258175097131795395756189010930163155000188706623855232852984409888625813698909654774755876746695931904614505822513049704441777547981760477911559970443241288975697036063343460306859696772313887522579623659652118458029657930934679811419175618319771257993080882515854181853067486789581767522148283415348698035683471860412701435316999423363940714381398659834142127842139721285952477878183566314970232433315239272728234724575375523914665091094131239382401985946247172689024475616047090249765249939264219766290961504054653706560496097695876344439317334963378127687923548169639773486999949425977225700972432365107103799347619415558245708594401962229918173432931320329086782857523566485392033777165010161867808498486289175067671636088131855063098666779431362156779358192686698366453379052780604352654830326037352266578069893568646204527446373588421735568365770368728818669065243421756149756326721447145314333064302030810044356658225616821474140191286179802325700201621212053020497781951281439219249574505039977237437575773967867997998409876043132106808767645794271147269025927078387121138208520973912281688933523723106038984678258105930786568158971240074424450375569085322992932456252918985365673853093848710353056501664146846612045253214249779614116765106844371124941694804226358127880050754692245832745372860490316300198927648075062781155534698795659458376145617910244341058114757664983925387211870920060497254965507717844218652209971992244179320460557018192352253483868196048908055884160072717439985712144050072753398689373504631989930385732687604617071385340735756856273710662683420807899473552471777027819847625023686333359366287119981026041277492843751180453488611759244795958851973656667181171568719090423750376821773839696174088538177573156554815961886232738430467171076521045717006828157837221524950062139138116123218644419062587289767300306484921889876470689820652207919756957478066123195144808945701031302721037705210480757022414791866475548039894687319618594021435664528554892775251029679192126969590508331693215975486419835262090119733825830581590716192707217005666737084014897464187263863245656429906192206886365358107683615285538234350121092373740852622235206904146249982815601902587845218064597823083296228439847362294016907080004692509926175321286112227632387370643867053873699124847483170875162576722329200540529605933596481393673445485439211512367496900114346809610987519209781283248878957150027545761313614195901114907319381332134069525596382173983919951187395186033779148497325882661266078357498135911485495743595478274433088659529902110367208160865134214614236214091627738808546917480140488885713320460535396800829523872965916550565876169331777542536801599156634264057027031879516750718038261447331095409090031806915981817555654868767677992565092072882454628165345657914450847021870065587055330855219728858991499167176179304781317571437100092920407451425610691549990275298364318518804759211932007736204231068255789994865879709519458792220006042521018745306788591337470901917561847191326787932668482975217755387986675677335073779573479098006534432710224166483487717258111250063448093209947909147720681070359864228336119366383248049692744055483693924552069310358263322911565302845025050477810290686715070968780463533070439672586003911263736472470094906669575145010286463512581281590798996669357515099216237664463316766870086585290647858436578229269488300884922225638958947653983232651429356898312415039608611523037775395145873174295135456341591781579167954181037998250594915536098396052721168904153233562117501190014345046215981063206048583613755952521801935968640801963528180154065371937438997226824432236255157441667969487502966935194777058978265678927177382359674519459792970791592421054914455066187462789179243181004243275438898353437657849946757690960954922866229649980949201805026746874919514011735006957071774922416244521764886943670453970216416421143639893293794523447031802489484295095869772046439676762801319063951911936085343558809131002573332509470549094495608258928408299242464177005547032378512442423052307585252460042959484659052340313236344826428446018283646309005021495344429366567146456797436997218861930022476893845597872217631882536202452022635948911435036151707317917996937399008958770222445801539560520417743753839158141926936240504255505738167377013977660787127712597626196964087370238044089244836700657946732244656300019290219862149641867821996673190275198403057643769547176716831936102250256332969533094136932273693751769420726731620871485581089463114362247176887139506896806849200361088817161079424062847396957453994846278403686433951954497077778852543617035219490342641603512186049714632276742906607393332006610369856782923308344573877215999334326421633259357531830369796871387520559253685397872125419312720953475711960319937832311285109146881547115684248756762124675050778868422238515459201878061492975685289909162160446702097165427352716976068795759494301671618213620948701281646833236395513839552462344956088075605057036724571165889316448786434741627535468541282845337112891840418111221445596052262001709650020432263393174753549401008145902276422708630697845134730157233629090912854850837878193128807652603382193759656751219611055823608772023659210830448890495936240944076244089439869298967280928266387414693438807798952358401570542545103934635174208952376220916088893826971198382402441189709635151467523212185251984073307175579706714854814309353871955671791322403948040851307435529571334195963192690631975448597787427282610847172466977681604866622013832198812828552032402580213763477814648514065251226288978672100136872357971611226490665922895283940866727301530360778311843992438792536214672130175572666110637024921817571315961441819223302721920691738510463154332740118158431308353990305949274323777382381438379684764113748911308965837104328082191631965012082828468737398864533566992989073674172065599174682367367502948885944610623023477590750450060006975273995192522801920848844147031282743083754870982417800691624359031606705925567155556423911383608461896366620396347811241651936147476385450544553133650963212022162888930620913693590713194611739176617831955633167298084331504140099954589408182220428029314943322827001883109312744402232173949876409230211212479008121672412302785747009842230829985918091356813178847301645222261343635550711326230944819700673943026315739284487789347864974786000185352594565176808589955732945997599329517555534222530582806918379475127744517262304136902578468003033041360176613771242172446298591607142440334367039933830870267208062894263036752131257947377502011336801545002444302093261534467666700322206404513094829570700577277007955653133830691766266007385996126407597201738935240557723451672224012301910734914398855047411789675660228080957195341590329485300029179591179472448834110473539689284418373668085917679747458820676514330435198269622475739615663281065414544995891608158678423006198486231796882916225480182522260751718282186062705967407149875948656745229309273110700979960269750095460622021023998400002862931486529177000862510499616725429796304885046199843028973823895752732209777597613613556923130898856509169085813698901003455489168956613280700794361873425937409935398245763811513313389231828651433702476831992683103367993215344083632366108796107963441946355089390564589051154534281682113663666691855382881457198217325346816671721292863048995291984833696993946905359060781912783413567746928177291746340262702413711678921348630096203836197096648142514500497119025976965257992610913623923582407796292209456548967485263591481997507172528716059047500443374349514161676131328623650048208595672918485599712249820387922689156430718708837488841864661299455560741934860881966252140637878878416904802265490265937109365400899234452909036569745856058019971513934205260856271102269504880491011383928845081597742050260972993996888376794271479988936951838552131156832336429952264960408725916955157107605020475022028175007786188030651692928234439637550250799731543434223456834727436879887352606509391864471454224131884939006967573209091636005990228630696031265126737895641249954928238775938161750093010142854683163058975030713395617106963717380325002403309913728271725967131225743809989508719600433303403966636400084100484920764854271435066251318582705591894243695226521178913277701016447017474840189428072285413139858973013813814315429827983810283869385831371335432970370948415335035702020924666705580915747313610154558027063397820491574022649185585226914516169773042736462487151531079616093613126110247504811947208031729459111609914551159991616041505226600563529475378503696288756530829092935616291891982582797345020105295565318178956689470830046254919006594292840317115662721291946850441632114395185462960917151622714061964719667918216825867013607331701055142894600023479169244612484628233760154744289142624415178783116856646840116271127254198432941588663435383161747160579420639430800655480538128067649252238060437369996811355426576182585490528256948424740148164347728406371548303162890476532108026756258430750772133784640838410114485506491686417537130437313203183925960866059604851056240618860568556927240683587712708311625385910019681991132331686872032604905705254949108589290565070393119049688822961387662740267040667729122635146434050541138575969288407141913543670864197626571544829674538509350805719610843725886726185708935086652832679649653548678986735928161836906855444826483973359249641671502924873189120689758196477520368871798218331048177079709718504923913656345660277387285208844310294743333409361341736126662320488274580112613904975724284549229818838578207906330980915456043252417849251503871747933319131501839842758047047051366915915492690975795556802967174121584292644919955324056334964810127570082757596774312824624665157650214555693545041971744416347728379973121533069151562507787493008416589812348264810430081976783501296829491411880362841416947151874798080911775189662707434897657371075954047746537495893301614006177341221020587690397899199698240140817182950837496933944663223873744583275974130566492462341024502625417843230963054426596927808449837352576382302536517201559834446550538678439075866128806736881841276707913277322054201915169083900976117375129052434585140818993256836239363931723837911918673729334287641758102453408048968109780984278854592949639426597174719089332673193777396886292754705096605363338006493324970330599646327909571491236126474524575837917837358943564765703861282594639042340881201937891999466685623512884176407958867578094015362873481072596203504052378348841043366555285441614598667663707601579965677768295455106198226331033847646856596528971370338993689678616205832465047991061772663751029036513467587032988742763631810820676538216257572666676049144861163477871351650556967254504864323333841321386768671450828142727173140771442741070009117007976454552377198776350638166012122178288538001556226744712368325873153416172776375481331390854491805342828324785643939249671560968753675382103542576302823448900846182253195512555584574410249591114045173896456319238369854740492348644721781605688443317978214540549134013205764350725083785277092426349488119159042795843687980762538551265834750131339521057745928369985870817910502259947126747145020495787204821014848808581895809782778376041962754925430417496300769930736808128242126258908258520147935429960605668808038255012295880045269119132056372128814390924554853479327075412858638857585976040003723414621896751186733026964024082623279536008878870999073795024417882210668069136297266143190045952337538522705716094622234611225571032354899050255741115682084075124438578989228420984355661883044820156518367447552792508204270098351432470574986737586665030254258348192799459114973757127216661977987946260317306974114879110194031171246557102875988470172124445717575035931957928886049484062408507149263804633457003067220594358945133639379108842055235079426100909657466657263279262746638577408334303627387258163541271835041451140384263602778309352428239712876828671386052972372778474450263079729585530872411348174640530014133765907371353838392153897101827342149846884563775661630507229034415105215590193243536307942151195044697797914719252591496072494389967267574767390029882655533055867538396460686740583200896366410956226657724726067113080201255442954058409675926232282633158628910062208150123487458290242659230858308155222131708151714042598465337812515279116243340292743673238712924931579067841644237215275233351438161680472903384979705646649429929413841896237783368711768391595528486955777155023189296257863335839932915692837904510070193440326786481036756702579474204837066254980709786618533454848368686319984033197570156708631573874377845387684568927512467196036473645322200851675326050812948637278172471442982189536004915565745144515709723131553051785299741047978638067953914503826555847767718398436339554008050826714770723443423756739368899381646236785338127494461030251293664428947246459501773153017583600493506678137136656253699101384446898478696704106313416717289599381848986508131039473250508676890321661223732569144293877558648162147668423655459705131061076379364173563106272138626083120183858336285362476178405193962221268383107156631233368341735857717143821610196827588971013685397711190246082895058632762351643245038730438751415712482877455845077487950977544289334468254114807149845619144225676613287956941857866896207737282590879586648914660968996963944121977903077219685872433779242174866626314239732709918443440650129730854346139713665415823951804579691399852777252574014818182117928927434051751062165658560257821082984282447416540510441867847072791541151500555293230938430993745541284564766001554709652603880264585819800763362611312328519491630954083546142816300225420079558791695884915983866779866615906313805226489415416318952495094444815724874853708909173392030177113763519906672680626697753393081839913366809737563323317872237600955807841817231825131564198606076388578728592519396424585637125363597027381550304451078157974350291661297770592890767768311377795124039988121121013208873109304092040318369045452475572836387391823611196816949882180882145269116093245909007982388543788956360349811063268505115313745675312536379697971918983057975101455900381089624657602774032714227829036726937189595049758610226330618527585460780347292922267353501894271137228829944240456932596237273877323110449979294395833688078240066444380356911793228401179522077532598604479498329828066345938928962811862851547636373621554221879788920433375104766175578882533173107704691384613934257288073887706157276458797440568831134596893237775400685006164412898681161379222343660400092454849617347066131233421707988092165072852832340250546819821068297925327506300732466942964378042489273404856777385029997708409966511920163664645016348139105437119318159943981267765789924137154917227245392985041140994597858701219635846523646083769017355788612460402834276226600777615541447496408803857593852716091759360299060204680245858588638026504991788646976363736893208944234951068135086933926424331814932225802432916196426831739390734809642585920579096040669481548291394068780548710182656755774997376880150470834903242644275803800426635893119249583628252662435716810181392369242229125380087211616037266583421732778265456086578901277314187691629193173090777766785250048142883703051628098746426930776048408223145677724466045975397790983553959012915083279470200742295723626151617428615394476666902357056847058222598509837942010711941561278856712927640599809039935270101376066969864873139343948906975982338829005966753537897679314913743537934695787071265302971697233242387551119161621369230848446606313640406881070564788085963205897649637728025782786110979758894336944084976995365473650365728041114930683594528716640199566150183744028485506527028214234788362848542963121440314922788935300572088613238420734136852543805019453274161553612137379405302422404494755051968017883073196654087012669980000187064606538019906041295858583257079419066679390554282757980129161920893784571107397211176048167313920085587123716554395125310653345069528881972049254205304430689009963954351034263252701451204549145503370987351737689053728420864498127417533440397560778172140476022505225745984295851204123424827488118434572751964601404089604446183387322229273064749073001842904582410512878877875804163144473508008686863168262868370151044918249490281705524121285171809483304154376249712131134707007746672193540788512179257292291478456740457974490925818782542535802627727566307679344890604588093685137112474657270061958459454800876390736958295868753480744438362758606576197662007018190709483742442546653451691101019260621148656654649743654555091237748421258296224694680109349647792021318876166632287609953493065316510522562468905911601113320416823399444054892216884572506422339847280768628237313527377904286133127268952372005710684602852379273940538034307513853938203831452117801802313280917648103238850977563325069030410011435812312597734902139552481268106625952670229750519999369761916505527545609871082333043695557529439610232308667163787297443512192811836155706444168249322427769167735787935294569823674657217394789164786870314582010068669128475845410044977316703061006870450711534630583798874355479480811053860057050522597746518557148162992565025640483430426544370150211752875355167109956730930960070106134320937132974431904089984505336354331829973485335305127579475745578357930312569755686751770159627288272239654371108518358122155074943159729281066090170213496222685561675833356785241109730898374920886053761603449181791219946624686818805531314766381353072925755090872756064014502286933639672100924840064133182651969828292454330906127890872010890853125515492955009626012086076589488684673983578743335297229482139636493831020757293326219363237002428820897320265436174930154949481444512032393330538475041696266047757473870303119276435443740971299851435300938529481765666608699557057548166784490783107801367003081116074423083955711151667110221142780900717007906841990452884150545575938709998204856844783173974844399616117211700914929561438077299951231003611228999417562417211938728594651826435289854415076829697519937038747345883468764338928215521624571892823536896205938552927862002493131217926431686199896999720313964544145932923449012713195754599892690142965002486562981929178669343868178099623829714756458402589028228503673585759476669487827605125525056104615137302285288118728507561576227631693858152915612937416349457622066783516984732435533872563988834805184479267747183498304978445151040474520151127079586560379361780507527036448394932654750589724873010212440309967715397628090035526941302779481118974477934735415300184591983484267259380034931679830357405050697730727011865872731107593909151737342206181917620044034006540963827311103469119978177110767722453001375011511320709372221905368024411050543604796472057261155662899917059551850853542362250199838244076219676166679890258042225331730830056094898300345960189588272785716893346695541022044851071668500065146893576684781665253405852897676474020210163009485833699059557170471946564169389070731470313761914091388266484585107095054601411995252567120578796341474251561440055039511194095825152763195692235580858954578567613475136468318818382017641980017469676163833515727582968826245835186554195775552963683222883873358210637309752192435851898013792390718622119304910577027598927235944230027727413417806046177835543404279797465331531789017531218628746746237864236847298246562063330695725243138658164094850163864125426337660806410970944404232509464330516230238391042606504846985898674800206096171846481190314612467744754709548819603700777586645645971444177691539975083769938356774020373422151532364634097647793624834637895692241220970698089169942114101341823560941922670031410167021100471291589466048893467829128359852362896071663935610164945185439189341613616427692441037704451390766864030359082657019329691894329944088473676606457170781994545235457068180158608526388291267629078347188481209996742968485805373290805602324860837312352118847258962387546850909638291673037617386588464033989366215661899225270807718564646659784568628771630866636265628282399987361638296615552226858560939083467813687201841723140941836289806140780525131075986569011201537306389712130580035133262098222116375882172695322038773678440247921295542857833755772390529394800480995856250918373570101279721831146302548767219431711270121030378817202783215431918422822571709726989228387300915607710923383776654097391709753015975371961336726188548992184924428618967949852348712054458891474548418828212741563190351503034281146826617737226416202989327464505211641455709797037126827840668024976341556616986083721997005195161831714075620765729144007323700960246930731756865189040406807336807040167278291003936447351567869808823300612100469827245696198395938720679848612126910839720371354360860146495301123583311003956323926080912201032870857283077496125438264105242028138594281887793900591020314073393887655471531673527092684367155557867334405300234157707113960271973046602324534724573410243265235469516134535920532170094324143400683724185795166292573365277102671944492944035297466633823415898006735631034586419770459771230129085972443094471483682969587863291729173323081326551721186917701094015945463343972281075018591423103859840728017327573221757668591406838043315511204926236725293566860154131932260856185373267264257989605535551236219548559841152255525615950032692285747964522017573614153693496978188258703147124785421745179241042483955475484513565268317498188816158467736091337501518117341562055695300295893526887505065991552387359474684668051168107402176748793128600423179046560704732561903528904641636236580738857383142089471960999005937406544890938571233609334430335643835573858753527012180762243359915426915579625193467861051759591056661508946476298639325953101340481399021605178446479787824457692990326599477950418321925638372363873731399455005072233063416028844653436918305554131360538564789071368124037587716822529068410124959158980055971857442754163226033218502581894336249876765415999015980715018302657419302974532998992146689006150429349058147260911321468213857362247707500416115152067207953022031391522158331832343038639119148669764239600566783291560305022097735765604526739406885286796608649553930089447401431779157426042940509181354409062743954650522204556471195380737953906453043047495849722369539495308309777524980624316113512500585248923304900717736981437318653762767340358569234299834537701602630352435506780629848430659599041816829718230305949422117411535765642342532335391073059177870613549188600655754010294225867892859748126843345084224371790525141586468137315180007205055443518286416910361929450770743254310796548412170824615400383185994249427928472503753503791604526352894334075627499149970416418667881729731000990203663301486165831004657911518400243292468776025372493800112380159105331234587601679980730528479476305641880741932679663564789335874746914161089864186536210630161647802104463757339584929299349612189463427646939362585382329589954008717113053631525472375653974881758794492682955959756328554170206468191213852793754891717716506539887242021789037344138057723734929491175685672399314039649125776021058683808977051637090923413140419738833977395410996442719526869417470401851547761771024279001598501181719152274071366996598952938434659865614176557540823017779206362332281866036302704551451440085213003370422184273191138153044086005456866967598053528952669130752202191236314613554096428071706589826880325645446376925517648648500309585889455903605465806516541120245002201460072760452651011571555377934782887714816263403998872312701371612040262077618034437736354348529538829384035941845235029661013048600051858672414317021855506983601937623068488296759409100781959661310514659700131481985529488126207570605796369172842524008039619775728390204739490940877663701661327048953868798211731504394866428293018889143932104990012158500709914465731967518817923220360112248651258969274032607923002740655389743540093232844309304973984588399837457396089983373425128064361850010525976599099871309784229942133163155844628268647074497350214244130355569100296756181189608291197779388496301726892763520887890068202144277951706853820121077320656323103585807732601220245927736723603642247155621239718333656821046596629922512800059134993793310293869521061215167333967401240237714515900523275533911680684615477288880334080708402356794163946018284697691759415232165120887059293620575425064114038491959710662151892262703789587055759058887724441340415636446886098897635184494689844661977943359769113156280023714722706084090897116536832774177617290417151717709028464554958813042527122631739282656404005271047873828340702314839037342505138870014185662752975138354785602089908660616297081008870665512266530425158366979118751616506961457663185976869824969454900888525698176751123817394488539363006774288850047800392236074673389121928743321883558156482081971300291269441497615041875098781711051526797157252179458150036566537018147754476459061577124694298667121397485822073277707017416560404522725499851509043543412094202400280131237481308403592149623387209169031823055737635873136312252605565466124225723536969072555430379701216609293636342219732884389789469525640881540604400583194053660545347952116742413338056200045215665750693610929413814912282449297252872268673169595641831192010925876569206447752357749710774265291263300428620517131496572781526509303767445022709122828398632659629346767751155668338779107950259794805993523716681901492563668118491936308276450969383524771292637795017211857802813461870894839133141106529581603134991151214308161778251698261507070846559310930794953480542298617735181059907158633867566222325656616930024314391616031063433790987919643610888021772699343641086234518230814064937925039142202437510527724608295002720341340632181527184243551705809925423798343780767921162235204760923876398367451672364366981372310713474074487436114616046169964020758063950662228739316521647052489118700235749628208321000922954653547708850218795495580314513654594936997042168799914683556238924172263026038127360855938109421218631171352119200408230599265892154528581349702527964480344908815970074922003221862082177367616611869783315650844111492814826710982711061611265302335595301557559881580915449195956050037867843884313182726033846190700706554795438575072771636664266968775253416275056361253615846851561951922817158319053662140330584214169853636021601588450794568154104343793761285844947362265831934362429595875294164990920637425607791407160434805998943335373407038708847655655465840701607430554611399937796954275386226793568450023570035357156301379829957987808733361482937298997298002660316666801159917298491287203294585703741911085481350623475108998784341581464011287484705375034296574424841153614059929414250201640588394490880559293546107232438553377034329720159447634283373605697358938636675469393058231689129885879639672932894614311958257342206714017813977418588875336151872027952593584881731279809169429759099108448338447179272327874347521446610159784604812219366430767771270328650414853304560873390551652335225157068064862531108742747536044004832888293856788752034334062294546487185457360672659692459332697876786174888305526892848634545188084234732090911371011691457668994298805878219689164811316263609065287191549379109834214457318123986002659444362336823802012685893719319642546811492575025454943222260118345188694704538103952902396780119105743424093446386113975211743504776670950512592586291828221191608206029570222792993771657301136040892298173829862142250378358333922113799583742083559680355715967876451894536374838175511758331520678618050805761175531753184929593334393409138351186965058351147090990414945384399934502918958513635784841298445675999404522863130946932213987350355986435762594701579815333215244640663823839940815856008726089376919877733092693719074381808561140338592150648193533184648189776511784553231794802591509922496364954474207720133691367200559093589286622555066889022589866472275651663187211700055985116441534970067004242752264206031681191115585108989068454409407872778053376807011165385265363599088728068519603741992127404339082362911644200425585974791322143164648138507133973046799847343264426640842355695876029968887729062944617204227893728300368589165875536399805865560972946340807242003418709724133275734803414326824023607537852385950036126452975211456738754386294765022907927531933310147812329663137938098759164522257043040294794500539480919158093452890830310888109031535676252578370365435167901538583575847852992247915485922776186100455492422443070127549579080353498759319896674347829042780113661683176781552883826413709195723670424763431911151799058824329182419908794734254905540744235084986761463960613574728819952410748490325767584129028038259874398511093285373107724597883622328701645261659267783419585907047326714521615302033456881365966922671519522087902961632448368845635808393355773588260457297316630166581107575662102185348306723948054660423957923275165813772126202347119304802253780777882589227301843560350449841381885091374218140028127367880614524654456706664647243655674335131065740541287255608586767325850474662374373606778784240906340840752922830582050914584073414370934856699614008451259411413420647944749848576472297895081989143660766864165163886618497298028242952408494447349482416012594270422982513654331414192570252147784230927281683373298116023493530565861656615243956977688869270438616937217145559868703292833068550283116062689897884208498848800490959764550008340389579888801620465277175936307301371552423009570442743062225827734390343992139311004137865552804825920752970634724653801796319792299279439235758240471481422654952294513510629212290598432409005248144930130581145739713913501153980572049916023194043647216109629278465351349526038552672916031240065329968012974962176620488172733509273772230384955390293323987883530607483638086848970566918318900438695795225510928318321511456844010317207369658635200050015631770135287179475253388332734520253098217972765843113353276850530405148705401513149913918892029442877103083619202907250764896342712246725896392337966071866441163657718775118448674068513975507285310893871456340998903685153907202853249103290254562699350901305262972372942173601338499126917190627461741297999477432419301519722576143134576223125285427092744080233513350358677527745568231204418684951445175317990245740278617872897475447138018091827701544980909673775820385128100357942470070169953900825368560240466325674121812251813559715847608708180282797806491741603692068694088448148427273713096361629873080456090834503248058992441340088823548319480177185032094150952646663152739437308748595616361477191715117941237160532056873110944860892025336435927522443218238676720994280121550765294537037748579284013460099346891712558444550478061693994190953834075695341881516462908008523569327812561093496022728529774364717058361277431096621091864347636209912434336053009421273405296480343812690592828612544525705073175580321118638100138846917787868305143986732160977534149469917868436207288126549129851565429871239313178312051406718049644927130129062616936389442966146991863689128078186002960476083634439491577764956068894034867864270205745392251758817702646746627725908851226069751410165966513890208034149197959151692337108855125929041797204043385973730814348402069407713633579851757639643837393198095607657145125922029388031594488857907261741673681225541285247282505469256875277814057175555757571591670236962421918317464708508924175287676440503511949482504448753506041028759442918170213273939905681209953188014412801966654103067421626682641760948339056870946967959544026706944594235759886697962789096410038199515290013301779930947152489859046124742853896189491663185805108842469079062902805160627663355177001834879813121584116817899384842778736860423543598616297063135017615403785515016262993265778425986335178768455251889378874855897405033635926591619002322731466675212183309526706846626064969733333135217885812237279344805642136489862332434347423341494930922701682515004505637718163063722191140731998395458959167427185957271849040436377248715609416333151140744232532959011238251272804083364585629919866769622998252664035677469581415359510902894539032584737175253019907328399870410143893598980821005779696910270199302955496233923161957488363838552236720235600381841251451129007608715691076753063306340180457656926597114186568129734482099020433301432131132229121634425689665681982973259281966369134908842886125801656857286424857229013640568649611611519727245804163548395808068564340854515551556632005535228347194283896060059871876459004756905535256354442558415714234280778127358316888555401179518085169694846686030578466150844040461857352634092805352570313281964950525413934646861303767299540675848632639942690100567089433805731727097053233417599051953018387406952000983087948390907034828269366249635375953109546331462236875020179456187379552005009535099311978646636707523927156435503972402887597499457439730942346326804239507977824379247425424292817184940277717448199853252862816718738743698305516188374750143492287831604463453349337965462969705749300253136702463212358236926934104775427093181598514358713545911728526332244215280840523651469741341342972431284840481952502431275324856796441935701709166547189655832241529462295998685425034897060550443347685321989106240646540557948224904372222310733907916312478149193418470587442363606628546905412229714343771528834701733605063096977777045721713928005851456037211079368777932171584923551713287278038111321812883844414823775686996753839360891490923573054288684566391781110130032132376814611534774496768491017905574366802930548747284425938440020338327173768910925022071276269867212531348822705448333348757253666345973324868763889783775429283508464460142890268292148250530756541471322906706037383011998226574022498994565838123168451824739350442283880064495669373954040187436978754345167155834248230640269627208889340913028167555972255747582684984839926275279944555060271600718201221135549262185811628974641041278388212467335415769028829508544098796753048635068309471084060391236829712567335269742320198454546783121923867165755281555417370121600086081603738672787160569253499961485089834800872519128275227724369354570990168870559162268263126944308949022162406292771340225670367941501765848632645417594058986400185476249568190970515713245453184930570314148729403166097178679208670818830508749311063927802988874312173205837703187363668738616094830488240579284886126382605595593055875470514657247111923627610416370937121688822016942840982070388420204442306312850400639892298512674145644617892044185843144892113934632401569530345199467255111241655326012282480204554049572678965174169810650762532776852386419319510861825624351523798699425312343817378104516305746757264209826126761502061636506550799239400701632515338895293706829637643609751570929845799010066710713106718744775776417243366679217882761654580425246699123476147621826136642088072451539657422939556015786872627946963252656221926758516514911321085902270462317592052936099482303817619641187973752633625256186949240002434750116594861646778487502624944542755182953208606641327853647408296061896707622692786488582386758623340752924119417895208372497582513391091252511567427025534572379539152735814525435786133505022796457611154566787518742997091612249909918741728996836926492286629822604267026674623827502131329798422365032627023799717278577675748307392974518183195870405159822428519314842189825113948989873415666961470186064691839492498762066782273556266729887695997597682805172878651060550552402725058821542498450168274014496483527318367280091764122047073652477230838428797728850180147665737210457808886461223821801015088885847293545631573567914508425985061069474421083016428995065355165128118918210373564080517294741317658739443298572446755080253376274248084161593624389913686442672597906091771491294686606804973943618228703397895114247127333928466449861107749384456372805982396006102626274888689928273407666500488473769170567980049979995235699995519084558048941107659857079252517745554561951515350311628327678175810858067467380785540242833301654652475778679537028437530274162622786916753259266294134160999220497613556396182078156759518349370216344336239647168872755272040735938126502567400050291394328179655869418147325906324424238386654849702877415664910947592001985499486262871918524529884639303440724828059771781185746876098667632509006262656812838374653060704987453630959834806162075131547817287697522155536192411811903331371389598002909837507750536671240961898420845798678958604245154434486789721470739751852092169196559923750865568604944912888564226386594362735654455635160608761274079400556831316192935319783093351300255444527603796666990301058362636181280504493552047988903039441156170345662074539607018671474786588443484185271636763567280982134343209459175950599923743049954207717013787496188524417735153841617718594760586565638770388340971034162908990156773534606977950826596615703342440397513804735815868918148598945356119773384142334089512616809130891257688108499100126864195030401197183466516435467501820038333551077417159294591281353917845183947091817810998286572806788036734321954680141240299971760662228059812888144021770310586524557955177820608372404884237469298609332968133812344722136435649694470900828764086141628036502584075867004442961971561546830391829985510618052983180931006085068247436386221474209334151069749361335977957497448958798861172813053762763091551654559470420459559655111477759822408566467541427784896202046351875663078943442141470191187545242968071342114086044992321327488807768918001343237426730130575393492284492996879907422933905942805866024663553641864165127178250418290457315407501372028780244061067972581239780500725676943432594070584765696734485085779410479178984239519920179169511820706151001261941896219825723310126654952747139552347457313635612234071996720801708552008134971054250801473091214116626235903398635255800798411179254346228417447598377388620381975401784290069218761354528965832494369727152863225601210158674158251883604857494314222715122636372376499011113779553063464599216898730743828656406806158827757776467952724512579279905114827211124964770127498248697947573194246108275825341198646184620109998573769967152334421837175701180807039701362254988480326149559832127217974498143010555451281334187105863105565755126789082028273368236048328869615699626217666912004547041860648070814929816497132542211381477512208695624290117370165022312726415189872321780007657571681887343356962494189509635569865615509492778880674376394320132498804034087757586860502481358750663665532133245856368325066604963616889337399675322955445859109044270218038391549927882639809174496836620932787487386830401777755372703732214985880971624325288491072850773334959238229342603908923692161682804608719834086063968184840230639604097839897944329120164284706268236574357176549751740531382936698701986473005717147250066347192250591631608924561698886548635325082620193253858341638279503202873035304586383550409607238022601993975306803528725920677621956682135207970146405347990237298144850561331917830851330061254158458975319043404091126887981174408522654570126969814738525039523258952260466571871325079025462596557965756022435518806331053151593899397651331310547040168017257819073702366117322602148124937633400533202457396233171004059999653072314260351298879931219696280687712491415947995393956727978055736222889273603524419164170990379015891578186750089818439814181246436159630965652128609730609961392381863259249736942807045849781648770639826708330730964147533326950508503855432204039098423840127996350651712942935325075799438448089912594647246215220771930707890841325624895050718247947626866323323634954924322846822957186678593195067841788301460318577836202753931247173037145066997395659483293300798468554093802544035229568673984951030722343849177928067279933504753002147326904225901303879619778734257849178039903054663692207225227922056882650585288384329972542829747245325681084736634375464026290040663590316527638827652045954343830151233399483035952298343666722073920322224473835483006122866987395948348935721142422258808276144860107820248261589349135762925332285199108412849639896788187870428845970808388359223009381035293569412403152548050102053695081853884682657683818441434213330848881882500482252224003784164443990703224641132022516670003468947913673605161291100502225414304458118215039270402406079076385883781902389234830090286273932559901069976385844435322460739331239966894606316967212567691122639169505168968267568389744005172614647213974585357713540261076088074752861773654201090126784806053717905805937821704288913611251563306816359067813365750304946512836520494544034205160198144890287796751051534488164796791410302527200831363187938088160523255149947266909755130149685517945098893928167602886908392393210276758454611214909107136760880306520464740211344769724729384389296480638870444660286066459180719688567914432185622416186301533487759943213116548452974792144285246187933189796278407389183047232878183927770815664025709542228909837415299288707006147467866365916089429952955712376922614991190842152336945865893901154263608826858763640000362911459158304787964907206535678758270001874898837326127531062297864124930633998490750777633049437055220719503122624408542791910881641068233148379949074426675563629770401315506617328543802075549176789631151818569660049473762004681316071345255310428278282367326493885201336928944921507447210920170056301234621826234318164413972318343197429618876525756319674988430307964469850380541894173513107846275103620944262413608782231136593222613587351211262259218307308170338959517591326307674154185815509174707415948764716796303498595995583468963340705974501462873027117523910049813598765269963981964580771828154278610323652335750883087147722686384526221385192873504577435344055146088097331552437920324578928877582086014137549794876937741972476729741549321124627498901882736381992666452994403340893834141779248001973803307360022388006990832111641492112095723162928525733736626667958227944806495464772553377627205040831775313300918114522639996370711172415117149683498988251129344816567446001160528788885665640066962147964847910321041864237297476986385593048652920890417344078342233827330914824162269394142572867958585812410013018007157201783564864001020159059746651763682804247169000046326367069722490702283563237164727357735275732409412825600590706805708185377940916607828993112782824266781239807718656391579101214159378701000884361577841294960971470540316033379180245584022098988700979816826061117215670972020619557877548752231205184866006951267151014991794946900653966039870406577861557573794034145152798057300410828509643790682684908334864891888960421115187021494021679400813252643338457380841096063545581729016923935791900177664007372911997968947676092759019549320874959741551045207158497646750486214746309966353198561304671937834154499667831290802554276055052786769546464113405978873756140587633853507913418205917311788513748249326962145861641988211374259128127459519013652011475178543525055342505791127415808187109236828635580333023433253648641435120000786788773388655822720364411090621642076463513575864032985017967954020766774396089822576639744696771732505810835055976487391230499755394716059937699489822953215527046260575448964170080816865016954846736377999492332246854052165399699469858849010432730021288220829529459734364512198939790502427881369064227598771969581258155692566991576086875888806203828708429342970111652341588265015995894058117119383677686554172846425106653728254346624125774667590177446391359579814471612656423157044966415087886587363766693401594729876406441263854781702193155725344981867043413874954472694995027203298897262692164225769321044325672337879013370097140374384880105266465411736243485157814521896334021933447623186439568153439731628860525354949548021520359945568658226037963106473713942901272490720212037162222414480847229782482535825626587278439899693282525113026941081367256781283238632652229029926903548606168068222619235735913073387867182668165230092848695981681091487253525226408229364605806963946375879794425957917076398897196620507753214146767175407628771391550485394356561067512974080399715693441549435245008377576891127390082972344628885216502096570025894569940730845824958103993520774646953095813586120290540216352415514410626070350029999919777834350757846803899764509178227566885832295312003809155648490071405994399690970722445479414334866157017059184565033932647241007150527447299154536003009563013303448601219159109154172666306651925457572854621678929227796798326543915169677524918445415147435694041904666898302440238875238943288927300147473915339641340154359270206409161289433544657641478013685840704142057396996461554584184116035629297718118172272677785338284289317492661777843227659329463171154320518206561368290655980749801234807489440767744654650062162323606248732496688318784074495104911087703679979012035454596594408133913916505220441498558190330921849452059148440940908671818172620114188246253342610122834197778132050274445843644848415727765108019320552630291464043779718067741040251628560065343531864764949425449546741926792571629933738306902916371580311294567634518389145537287344292218011449018773571407993755433472850188642548195578216110716403243521940690727570801782179657101359065672942974930511205378683299692327373788432404020051049805285512835214948893694844444633848809389919494216434476999667798553898099207061481410180330155736554727725484306422261687578374980913019394636627251261863497312946671188815144685853529063585838197620248986929437485292503249355735428358410131518233108696155002634873282431558075985950799371464672636255181157786439617467457603687836268420174720020101354635080122473156315734181779579349280651134978701659941918711317280481291533584655837879522985971914283767926859297047291353499385339284313633656484652477969117480030684497470830460134067537828694235317876699707043183699030257138798928103630694748741525538919956495861037255398403555503445671455633111909439698166253321096022635416591337653580314794028426828153297092350685181692819921485829238649165634782561262110748593160256886390332082282418226431660382756478140497410887952467726259994209821219702363618258382968673173479223735928430853200505208121097050775177880139257103432097609943552369128200215464298754764373776827600960736737711322683854849576110556336687045326823192287881057897102233696023047455818548941128671613784544120475734197003017132965015547392223312087186191187837453366147516362165166959888433428644302376383165956272549395613679223439935065929580735279570342832617215966540406073728887136441064093654171346978627827109531375925906815797106463761520631283798011061717694611627468848641769379735536006462279530889502657790024955790069852749625319232467641592406016364995366333744224012002520772972896475994570924838040839698620369685316367312513304658264756814134132189810505733143507774951058161546646685745573996521298863751635192473871255642514264540270736968229710627538970784858880405584068618241966116497020185358504083506113048099233684106913133516751522019551816842500875309782296620671378694155068150722778234759454082481766566465578936003054104337582709701379147291689153480534149993570454478576243127943026656874569094475630330469768519613749138610318621204462560374953786922744822208796975215385697287751456786101154559356066834745111626337856781804076859682826999048278097528722658505978213474107406514499247827492694409784944356494707346547766015029418069545475121802695052288041749869461919096613492509390645326703629294307816643753716106590105155593439422281714890102313089071703093683757678198663682431616558981558909722435774747216237153188654436092816386958956894267252330223079011713810075486378021510788242749398241062890050199561256983750913708178323679299851306137178907046968442098556303854519477432057337215757519568885180271121816558513947314936902738818281633998286538961193010698026309613814457683727125975645976144440108755450601869016699236496700042364791872899725527794268278597425350730500238523342367370741655357585389264848924618596147169061476857280662208235331625086776119421769402916076105293476250334632671381567535032656309842168060478715417125076400153417731245101833001729363477484862720926437824254020376988979128260003696999065605221755154602316879989550171147548492988709196051317139454262055362096261869878668005694347436699666624287784457644018598100115102734276759913753809360872010930712783230004172479351977616038401844780827898151690937482346070671294429286965003291886982125332039319008566008611980394941819884008440544571423602006790098983383289640817636310759296916075170589686101869927610248298304631849043028912190262503358325483477757106663460982114433016233288515241175631762735305926809159074089922065429965851974155883785594536003900779030649452877779457588113511117008160848493421991200362377712519656495154470395833010114027399423637694364881115910122337331490627477676065313464314863035712696522882941264272693436052444180596071161237193520260241740517105252680892214694670453589989521130220620298387091826717155903461607992051129441735511475035686817456086551141286535871275732378915848313333386283730139492134498181498751361304141371150929785901898356548270900433120526291644909735229658974556031007950509381056552647800036751054679489722237925987273349616441806771051255814531368876766646340501639586872268034866162521114775610186332364305733300535363981895986683480626962909764286157796339569071951587056119851484508571696205563221853055193283798157487638783748321631642570727286695432500907064554510945582275036190775360228653173584263231128631866416888624193191766843401176523503006597628543558757304574327247187000034362534175668823032248417027099451557841683211177195970068091365732103633820002583709307525950394449185862850054554982479216710342849642626937202506522858554501983543519569581773182866300103960968736676645390444087865745761398852511985439593550084898802095790652126538798433137125618684517927002464587866466246168336443170770017837982570676080842852370506318610676108660629556920021791155571949442002716832299393514211700987751070705697050143138021816892877843297649782497792356150338313100236540533617034768631566981562738104251345714955461530380713103273352867817091077419524670351277950549345217564559835984467397546186863754868055151732874771118308109082622033384255057627145133403338049322239901975935335408183775076399017054130991676177314457717299654545404977654124762167995537770424648838939397989250259020012146274138139476049652812189983882304259128965840701335138744139241210559328955125380328803159226532986573400318086413516048386036812342359726512086462535532790188021810869842478280176109696732002210389550987015256806442412825609250489704567447844578201595356680568899641749743638047086941934722622402272939103537557292919668501084747784063163839866867328153121685668586586102433911935235333446399415651570160655318993274267783806349778769616312310788793255837648438701380067063573498354854966731490858008028449634941727327236613824216133273602272065866065778573121781584856533024662516772971487341775349287317141979010947202233931115388455539932218727371984884882494364966787937792391649545933583885210912838264426590161574377645787219727077286592630497311266756779179776339031556209557442011156846215528354610629531614098119761252629158458566152506701400853136429263428325127159612115004352548927252014192522599904701663042228111801885218843529675200694280149483711707953656863566192056518691738507476359384541706610746508461372167432603150974792629117321863058229720131924813094156113589020275789961079138555211269176374965979608435142952189297547191663864608075862851632990188118935291265231096046365714929983281319941488865301997192022918341602391972387064836426016811445987851990656557842571873903711756042343209699928494586380891840384040380564955764873082670148488014938897982882243847516892920964607550939364452591779589938616261177998882242909690993217371904238591321074926244586278289044587444896828000127295534735375706216960882367051259797388866088461496630413413499646460815402238790042240095194823432023911644595976959635371648856695899131606587073769392058991148690618808446232325667125899516176163101486793904220512283978016969682318295084418434581630459917324550503439210736185091758187583255393044054647768123477268758974345484843319571001279241049205393584407630728320436185137007967270426870359281059346587120107024690657781924697552621288673018935808787797981657017988512166284901999279538654393794290780004449114566699439823977573672185942930967468249999019035494389425990984380749211585191926700498684575928514556940438851414103734006387318640576124774417439962519649753613651692455254893452225749036443652091706818562781810086162920600843299027587051045001993354275284433473711098562751523103522404220983913092185232544470755498082687251709100810947785968114275127578789579238233865579116159375096992645352070487250025411730704584429841682318487367385380263214161303947486307608241090989774030001778451114979257583951840638347055064656218944158450032455567678342678225014671182933656917398053674854590868399342901168958580754936631428801205202132882733287694088061591840147395998616873841634538666927162866515323382132300773886188569049523651429607218554597544772107641747301344714107594679171080177489127453473008612470290661112324473123913077863061335042801956962855216592508281145434823679664289420586269138321407897348729905161739795781307836115788573643030588240792796796269906498037383821298141906347070337973762545698830436762536618831462996396433509876375784596846727123915150661959247466088242180159214409853132927011849416653228345712656166422148406325320500558981052999139550785736990312324111918678977970102949283383721683193012303637627501177273160183798661325396499014904829957601134464031524615678874103730281472357394431724794233453131538720460810947417262332071484112966405169163405807783052644537553343773607660452639485052898566512881983950002029055497208095694531499668699822361929374376500451522919908788100106779202388307146682513855140118489319032754761685719302786451081587934857351644754104419934638000861511467073207937184969901581949832741465388212790410068701250487423446425187304296610658794389705996425796939718146824097064658741803240406809210389467184415218518951196554801070395201929145567996653280411796506859897680480162130762780342072432612124430115768262465365269160015102224965157109462206088022428684808742633309480990743224002967214823689318295322432001518946919236463289173857710507951706071889922005248392085469280809728009660132994647103940139529190597859364400771049095723951051664636813850814761578889351604990982198551557035233650666549798394375719223013394770897850505465645832471589707977546505673030672686996589575312707880505409826230054732926587285402292461157922538553441507470174101552124912461347527795461645663780059944757449033189143762393415715802267594303526964255379591302408808169047373325474563402479368365619784009587784143708332800104897507594606493952217099145529067594689791140974605021423901014151229467992342467897185053663601541357873444366548179462375641816118243386832361235126649120844236545787210512429114808727262205423553625117787188139084781724463583667170502123006892255365584397507523340534817437988291000437199247142541369029966706793254803084248455902941569287791569716352267751734933425261517988132394899518752840690959082124088501154097027615412494279867299990015866313346420036142534418146789148031446426710079655060767641594814808547842397115235044079518884895089027706852651253557673367058778573440785820779460243295246033257418541902103281166487696612084243249938146950888162812083814030865575104988100338673003601124429829789738827062050385699187398438753513454688212760866056588170287504658362979627437961783791337275354463294726281451420500600218458939108557327180005265689455679454121442882309136033820358130927745415424714545903680002870273199973206253501161018413343288704705827031036886326469707086133888241381723244024624605471420372438553522327929130665818128109242921957014494415863244800246105152871653080318540510130777640680393435544295385878804953222435664169089648605463212931955193303013832310442785212535860953024884068565221820275991622964543837252324415926253002080537266495238192450827064364309319818121915731057190496517175093331357038872849275870543020689836819191469156806618543005912851567311421033154756515105719381487970469041753197654682863568451973714809368747510918336520533673064909741669799055379098659353715993768818853538747619102100125641321697007977405724327816934040717815654010784547231699136852628194585839589609382637070285126352503020880760017267834132013212639756651221977732918722966904206532876739382714975453362356392461947323456559582430073743892425535769758830065218514724826698639264854651643734011905306065722946201914757409748678383680113643966078950122892126852796146337623775877044558428540185708730901431745232482351794631311181613001623693041695686063358037012942449525120660652212021153148436640494943787399162940522119712577381831878100178534590946455959382178347455718854466113742709191140904916785251903514628331270426994869457314976091099217089981994009646883162095658979344830183643590173665140720774278925029009005965068987509697244695126131370904067698774517059341650657427026628456487765088197560635530595079083374304697992727035025823660160088092115653403532346438093053814053617881289665769882366301748292348342807914634845014029092752285855414471921680421185205687162733961373585658856330632225256597475390881647597690793620352018110455928155022891864299520163051745519343767033698880545215504152961909338188339152936586867213930405800959881912581490271330591654376872884868909313270551456941898566549375918112276169846016389134438030244292051007818715000776096702733185384715374784717500955309977949765024482305831657790109492993784150835594442465342449028558386780222726455809226776534814516326259199324661739486169056694154528240587600945815142937491995265903026803373400947933498023052164127444334882234848314212083356548850639025549490863939378109552940608054296048390516630664277753801997291830288213027996612679010449924337634736742782080768024284572133307587527495729180343284072371026090574176958781732162287258818942791491810670820553714235393034552884684541507993178352633683884355919809371361057643018558193221157766607108228896620183468584118550397843444064812283533309692078751346539050913709318001734789659092084067389292678678239606432033698853645963173566722713123706753987298465919621978839077330588861806537084771749096591354701034370540910735896903725228594148039075729271004626229892183389805397044703990267271031896988739397873149849252953838669720586575598935465722201262888945241275774561633750695822804347310302516876342729641295225658162316876638395456923522589551513460441676902411377509865451852021222613075673238519986468510799944878570315403748676078198388241167337474278021335317283072668006797658634268370681907487883358793109485338394683637281404761420679089507601132537706306663252706295406512832226949231979932276731780522975711799918245582831398617555522438397904298787878335936430885582029530632520817417436343744679494684294756165661991103656602364428874498017619238151462236515324570909618496852277122322049526466902733870440794288256903837128767836690207844666681070605915938798517038407172801106579061027861925893589245874235757839297425984854966027951258760600648245974260372293736836178900095016869863894336663954345134785046258132020917347222318694932297382340468159643892315323815770241427726394129703482247445884586507549626774708406629960663040896595520994566874042482848980508496715421216773979871387092822289307489612161812977210017732968385981702838929920839057663745283344820889771927514245807097879835013421355204372432214452049490726360195132387892446079089623436260999065912880130212948763669304006535923542948252728786305061648658258773631857476724042741259707385052142032571751246538103658541920646916549276183909438126103936353052837167557975648874605241967878365872959245672347056077851723922938778629102434403875563083989471964896635394949015701580507388900028501244726829046023319537475582237605032068947591921322428120515689523435346173106648837363587371329480151277711362079501828300934882072265982500731130322850057187240779471797960065197660980285181761615940193814401880814657907813866661382671455897493438842794339042412797513917961565635538227775462002231955337054233634837046576397723759772690178878525703852165126479304915559010591686110644146662317865959427986183082198618388658538024656321861342465598699848561588250615043072390455360700089545035802750737674733228506074233315691290825288972726532807293737077821303405365275933314854929065011635991758621834790541401506720662402754379069761433438099640232717326502325634205574506201352991546941231611445365427751442347796288936603767394096130517926480184586559035135513022368704049272945174477115117092210461920148520048022644838836659692713707360865708323923412182711310334209451851150639711574871539920167780107479061916396508267027693885698063710390800229128087507986426105766224250470795283794916012618385767413256040077629845347675802276921322254953344243543927397837882515725663199832631820708391793971871560491059956729621033217828529413904292544211947930822000390824577155833858640298895286996934392091558271724174722794057116941530326681664110732606517344488646446315826120216828092350663404212672628628768161971452168887738678605570469546156529656236402116749249245841832596514075039257661913509012454728827300165453978957325372103221439855001922503201844869717892097440102063652042576632924805960679981214223588442377023019868205518450049081513866081851895704075626942850775788824058628457381559403622287220248304232225890259583383333104245444938250047747589567050561460027536790954169552395342641529471374207444709232789277840187440884226406527140836474285955464638224137076719170127560470340057513546732711101545625885839884261411976603633751619054866207907433846517882461470636194134962909099149489575721905133487879050420090907714215573108877635773349991227745027113709553582329797118415502267918954226160331704684419617653137055338167873703497916464354843627736314154814326584596515777171669901660233421957622195585439756177498413350236650901690775003230848337669228996048691628561628922612618800888071358157614105696012848373522049129769553320429802249658699553103837127054229167311421063880906882394870751510579242370829717691755915218666693645622958906563765307187479770494483194589687671112489807441553394884434719456060805183351108793896621749338015567188316340481278895765465576275673893820695103241930874404186878333809400956306744197223410931862905017167548565746363214087700139132411428028475138925592037109849369542417168664891253532948064444478860128914660753299312769570542521904120183708868061142427134937813063662814046476454957997921393548287156594387724823779159929429644520158715149965832522294885250654503049892615753600782445447323804331549670806693699478110544037103782798152543271285397513938331354521129880701509207450036994967095798997009330276078654848793486889081190467945219636521581535778771367385842978942702230298735225755313321979920505669945393096448957032258272801034892888828214833688369382941786224169250908594528689525407086910173654968990588161553953195428459843869179561948984629121169037792651880272900314993386753994622100613235380293535062650388579161965618281117796380353536023940046022254871911308325541811143654427684446289225849972035356871913786766200530285774808795495711567836202836760907201550030722284288950910709085110239039528599804709486995804101697393681100156546157980990952792919334753490294278372018502437596807826329100664429847732184795235200258410317425716320891742745141228078941345491436974813540839901388319367150946328027819921224189978894791318112482940838276209962081886252302834742146005589062371693551581421275265157965345811206052490434994168503082956539332827418972895606183709307241046366419118526185317458570848323042245292753850239835344605589997966644548924829644181120022293941354620768999258909874293749419018863916429570966835532383326166355757164326911506308565476368577769094829152306277979765971448996978954996161087038683622200835360617838053630788493206929445654944548011908251652965392309120782579842728923643809812543749509483474791272255056216967585299029184561678770894330306526592848438240050752308239869884008679907794008728098166346562101777773252193510336107773540895442105992803433973013392543954899550780971128764871140554131116102388121173751925729737784654446468806860104377893942044739949327834269737480964143173274399595954506421442263333467528947522187024833947519492009484620116285668081796025315125416181996661899513352997295198140208747332951240496387897075688185045139024457796312679772281551012645208183828445072400156295598418322717037016617975083339042667033938101900036690737058318828892619632530675408808648138861588620277115054664639703016730290055210816394140607646480325432572815496270587896267646396624359687817151324938286011163771255214744795945662264719336899159596238745281758356996459909960047354947582465979886104953018870628976391127830372284537282178364472534638544312658753947231541722762691721228732189456708619617235438873077969463552829188870713590396210627327525313353051212218742113257026775150310205242381456653500757423466437407644416307955026209070586629129017764598809490257745125432902987028451849301642693116712800646723469109019157569134990072304992079347931912532289676305706945549390399901793292335003689654527388969569888466356646508661025805640804851917283265145405836240570553209088344281266992343614790266463628489633534345329645906014045861579392646573255867953987443914312066888572184897620513185306795362699808970235485852549652966060089984102397779410112503129075855185432568737820378725534447291479242355094948862780999407837881870654771202335327978262551055200242458321142079697200720095817638429175157244243693735748436521353986930831500214395975734058183182352118959089905748691210240685731717343139310347542330277685799538629392131910238937145939762390339804760411001465142603273543418742139969730358946527208219716273257287935188757627117481418906800132976350318142407832448580904613897908218845289107298602443734922195308599172527684207009442265093886026554430541629669692163237635220696585149926598780508790591691282453969172976163824823082918228507969109449972717436686585132697943158888781299857238984498358797052414735080724757929438562496274960526511762249954348243108185743592089988087611976589133583992205678388002722693173950531330288989537515187310866233066794079190750481559788034877177327843654697199451004627632256352873208409511407574830945478341756619562021248763082697421941755080596783140363494694768704774330330796281457524031057397460061953205423797879490911640294007112782935380736712386849066632021235175327774192260584222942069177037633120440158163759962903478507579708386371294428944851119007920153876014129062647706199048949500312357480967486315280564659829176383511011986108692288043697925243019781476303673663587093516134275055635496966852524854980566846643415818769854627528014480189563133797773548154018463639331115612292075648337092323893744256733387364016936258632653798600377720422270068326099822143520942259299406260375487150995788840264323230826181346739765418845298438404593375683441722071173964195240787639755525112788407705350005165203614644620676240086466507150233771349588087421119995031310043989487950527333203127947002444497724733374257406029385549258661137798477928476101256400203124524521667323691341078022264875032934659189195717507644445639067988934944567537257781850590247135268146426938431898459848953449723321749159557688614944720681907272664253861858578973214704432767238275470921789050383327263138878638166472009412463060870257335210750567066037002835112524488249985205396298053633894248949449844565395999330144667941858252665718961310786988438007786261966347048412365600862620750518172661512083414311149913649087405180178606318213323429172183924334613373200343214141154282812017846795317122582794314198677602647504753095328421272796519293877429476479643418629120079541100553422472266589889889198637922283493684881743082382940798247429906522775205261264166933682011485823577835397869878010070947249794093855472034731088319191053734931429211723726141801174494566638165313143442286607620226503206908343273027522680272575731230263724177760307776599947409514550563640433052484571106841246792419887097971799619800838122785705271498697984300338508504471947107829449144041659664660498857910682695553099321319207959615778819594025561740481092166384251078654255146884986862955954347557832281996520419365923422989304688963614838027014913543085795210903580273225996128119704439216779818399483400490622805681975429254259049002684886276564868985893358325058445237225101884486672387964611103750125389436002888807853167505461000165591048846348632814398554092190507630637483533727462299630980899170835982260796275409362248388639288061373969594869673506727749619401227230365559393324610151850947316620837516172990787315888766124793529855689649721955554110915017143967682663113581385539384724548239997006577219170297255280089111854226142642150808647495669470267430299191139013961919839221028478285674272050192276199097179462665423041275651958294085188280442265374598789500973253080677977960302620423619269159194613172729197952299282793353197579896828270424180994849485047720837982133974101793870088039883859173487141809671416757800667367558179581724163193176732899458322699425607875205343982624572389955281888645260160173026276963470881520726214694028444997486582190574482823250576787712754754953502281221847250045298945868492460533744055237207968539100559490041606081567496039567380141866844187880130752783665520806053651161436388554271721052944616134035835281752160875515762009519473259865446564593673165499232383118757549434692644727315529076735403590688622544786676686441797735963352783309642449915761935227248826968981661588121882212065992931122324512299153157484470481773988237432608182383788583838159295609088304049924271066366951006201792217664699545585962594747713335705916087919187826994009768416437123062138388613920679875519672173736631887322595043869747773691034236089537812580321822234436185634165490025766447811340941464397775019721231906668995826029330705048214705215535835514678218253221981976406634599996085610946108099887395172669449948743806003009087696092189030182674241674933779491077210153566143518546682268985361626713195525667279024046284753095222411490291668894299753869866188141489859859693400515393880642433039168977724633903784594241117861092752462724351436731612752091658517482876941244429834661496640662122289217821379335845939327227935630100730668504158978542428230616593783753404961140669704158327249563082676900981281291582267621709540621695588640882064600249406694918699127832651585833191685270660278710075762664153400027010964115910326787774985503354171672545896577216431277546794074806825107712196470710209676230095292743274083638121093667525643641678478554281293115128256978262396148896594707225857230576120002008405214254358107954508327952107451131457795202375926122445438113179750341606423399453643327984510349868761687750057873916906806772490888911572775519051781910123649513368804568498100824405475417132015971971705748500031109533058309491114639550608703053016742952108973732860335033541694285201096661019396482085856332025004870889137114717595649552470103959187252891331534794844064721228079688052583583696050293560486164082219644698219295324159726230711209387032242191713665186106590851054619891465285596299209215737051638419328110941500228137346095612415097266601014932411117860044501308098126323623401337832145836630637492636260951849449436522651866421146929554754701783740928852932920168624537739871846598097082141013899968490781782999454039477392962265196562102018171533925692878434724838777327997068863963409203713995176756459008715526193167029532737775341341639282630932759777019763507697051278061171067988381681202612050039437261268387850085283300500217092044004546581761652907675541134734500722812495935076938725693513979423931382458343482164276069562097472527512466939974201319883951403652409874600249864218607728364630093069524801645401133596893409024067737792087017831947307313146128414539797283248102561242440748776611108593373359899225509977851054821954619458105262322047940876824335533001521515298384061146399996874385271703929952266914653817253346992826809246446813882018841554058103796192201586467191415284740463288260619151457259199956778391797907359688929648090184168789239520285635887448730529097869625275083203637259426238542404513619471447088330907181640997941376287034556052586509543639576594984373015763098712031832709694847087949393357708577679567860549892175720657063374454054502967079978382655125587867792418726354574115036636327253249851284896815864458593455185173920463670231197207828878078857231594652179923288122250625174383048780384463154309743259900402015776884176418484068071350280386486794704711778141725598774713241373868651677920006100964970688753716863656913701149226979024092380877875737741540828603550345749690078261250615812621787368160065254083188263361622969956906141759574477468049931939478785379474568043694950020226018018352557335163455287920496192771990201498498833904661087582974418578043189847172596329956631121196305494666229866625087304988907688118260302440583486903244721600002154235647215028610336911658342317363440069432573441394784888573105570548425731956993565741766009508744459324655616769052413971110589883242419281480632670048605927174376922228987641285936652710127968737580009096456213798063828370174975788724634894504583199222255476576836664149719786269451888761220122525838093889526391146010571474286090607585496467340699618115836178419601631716971640742467187294989651767095170388666656036377547211837232278964780033906935876559605407484897128515331866348421343103925652987895204387455165951500859542787809586079853327211768002157179757434699930704646861416276566304753355837316361441857905093675054832181114639207446653391340617001005404992283563177155987046936393780165216295129046087140416481713135884054430780673897317371305728926820731121036769749987299482885674390075009938691455810910729581434062343062517022479654746805486090782853821066959519571492569449562716079053869369601705401386708111834819361060835441183319744714473301204836112680516993231770311949597273637209124643426397376854093665002556683978257428073286791359046837275707117154557618711202960909670732796274063494987112909673900554216927676003113133505549093910180001641159588498171609195594183527002021266114419595212422558146479949708856161820165700722682307984775614833286261595005956147005870372153170827872304946291224906292967016641853109230561780983636287942693132129958915208960319929597525231019653415083094123929071611941123892780801425031678415980946637524385080671712495060640795228956918665778825069525835235777701620582516010197267661528523876077569266162581942062646596970257643220806728805674136269113994369596523996962377850748348888583060916597218465494532746094176759951340909065674017101928776065478205773845969847324806255128984748510469460917319638637896734122667145282821420316705201043617694776371895847095835516626643466311993023076611997582572824566395116474447555261151686889861262916374805227666313229980501660191231843508226941744363979754073983193284813376415420547854151271907352124300875890657704766849904961690003596240147841557273226189753874878509734374480191106584124462083975855081927579528098007823906968036609413770186793723838690400312561591019221817373245594178708727162768092003123997012570278532416805478583969450041266075829090720119910623497863905240199726836483353865032985638806692730630368331622095296995978187361931084677018932906308486716797691866149137137945318812580987875162716347791567025361623749240164654028623568259554474966335285820525103595126631839179303501761543248263536864836490642090808626231427205943331967679729156589190054079429482749619272998393898571836740418488013460408496602772923850586484415970843338869198897588675576162171210907164731905711713413342004531055688746336960393474715496491813749842221798134316165216367770223322721574706215523053178349002554200527777255797329041743936836165114940543362867561648768729769902357409563944559571679489042579569562322085784379894201110120075299482479239814776370828001071135820841432935925660859993656364994453087352679277520123627758254288376885164909401058027985278694868878973924621689662904097277548623119216337844298119208876453800253569890383952833904157175446563119127038197127273155702625866242010936618641686714369129329421782144889697357265029015546382489510876713624149814386482095417266755520746312278310510289297675760779156132442210420407430929615225127413611818844382726236093620736346266743073132939521749853957933595340291383891932835317643277961061334004451559982367557164499104514358140278449460842327354875292248198505562393894191388558826892974533046574412620832098697677618460636121857709185700095148193565327380312924272176753390796384458199399753660783627323446252983601524673899822145703511545409492413869990921656536331955766574307700129531927336455806830845678516698141198479897117672128618623776941101187697958174668712891571739872378461135303351253183307860712350470519307508200971680439717092047355938262749377233565392061523869618739963050826639494963040301577594014711486379295843251315917612890357292943092494054576070159877281112021590666354629942632818642444412761329910825098621532079350486355134109931986938252114698903358455148957631416260088971516623572049267991579571095551209878375999425800931560627920668621704598656480119281389498932018499383648645352614413423727702155525175038529155063837236268984095290746962015243440108334583387575038491095484074901886813869682257602360022853892937062568840613079011365628583184466621950527962674349831976508823124321234879296717193491563714033920078124095444256609623169536913628052673622276391261844353104289012081427886620039238119499699531459052017475386590459942768202689512185120644327585146964636408537347521389256425560520274235930162110175475948008242733640007539101020001493631824073283877007273677751978959046146726419696767945011497125613956678640148849134660230097464926114724758157765810964369584123489409369766137141536513740151695965856244686241195619320870678630374833000625740498171832627792343867172459620755797664776684931350593852407988723908532480526790430899948775426442887473565223066974938411323158542415661903693085271823812572109313017817813827132245577697731741578061361874994156921674191859116404125237144625683882573280449436953396152984352743922775007174539130267466915421443278470641206398249350419607878696959464250767421684263012563822669656587626101797287009135397165532032378992607984080609551393267248379467716805755615657702659297406320445616424527382070230436501124471015980628122966088159184458677679981413760718485564091340155924003680570383731238288208623305121938417943014068325389616682672326587471482570935792384005085566995356995328088848092208229222851320492592098417010657423920786205485179426802778620717938560308212291204103593457026954739034444967431653140781246979972160147371112467999761968849471373422352895981388872001905043046972191084145014634802883774814593806816310978411573821219312728536065298531648346259786480175938629361194112223043962047622438337228066618283983715798827282206413787988924798927183192931566411599083243952937094208921087249348671610604793059599182863978333323149513300141792814804112223845599083591334049116754312842943781495062837245572667481010598740733157834114299728456986125940596313666215480043955016245617728985582854801689987968543887883185094413771980354527310552160757488047678047009211673987932539060440505520880001126434125194472745833658711658958193162767846672594378154527942314518601026167162070718590144445476407843161213687890152923837488804332558102081684520473063715358942173328650904551543568945166793158929724160810171246141624169785124836232939892158534981355713741318011636887797242310965748640388602821251313022531357901877889242551727584735886899268754300074837973233655562114084518212438416293253842246615631764007529886201821650838595530861558394223695773402710933081704469720591775438944986830418831339020210385691806704289365537580362578659715855366094564338995945328039284638354957715687542628052319155382120245350499567691148420438590794200955821724963787357320018095007960930701558717008810067683181031128092216894472448446911634147119617230975688472008611173385046958899303086439066482658961822451229409243001126680595822612503353715102381064922460108280997821747455569534857903108280901952665967806618920479333150379319902455054328402049064822963010170709962445199046880302867548757027438418211921140332322546105118571095020780307313661523688805310265605380602202186301520728313164599441370789228350623351252069845896797824025297608010002704163069018395405314759496221740911206403749727920241952571508527062928123013786106560655018567255218701768453068810186323606215912145403218316126398896927420868422178627062979316349497900018202128737772174710284617861395179572311105482233084347594410099631228644960101296258723701069578050323546302525970840408235524235583062976929132970858292056515591373630701115904025857348720569089752839635208688991276809948854287018675646984063320163849238421835474188305529349448022066999121614858344069014431033108403366931938910728635690225540247215559478090723603359049340427395923331467125308221986325007619558027737510802374822903937351269838350397074534315447703086161066126186735878577360999457996458093262867217567106588469724911352720086078594859519191649096186460338613560464238782827504890293285851501154190628528654745212907401261646520152491317600266762681155204507677933762804285791004013640300461398684133374815932575001528088852685233982837203079339709687442349443087698922180041163336906657839056104873609620906686940862690206617118255207746256685361090125588207973413280281531547004717176514970272837923104889004073837293728022814210060657115828967602386130107831435535346016280529759745167559313307202680510269833126407589394586862569218974246139823643510929723800808425185385039121882668049566968081525221447734350054437438875945534600307592396565556926328570967171744368721175551760490371310070035431624819958101734839056762195868365832723612749864547914525549367956746592740392761679921681588125792984587584972449158121039662189708711967170437851205798190787261275611558975106689530177337454622709304103740931236624010934962462046252424133796988561938834617750504268469090799811507997598655484824701980055865518604717624833957467593586468022515218965073528994144127055653225210755552832227133883305916385959604846131996708121329243712006978842974492784152449163668395616218624929529047434875494237910988393510182465364246910644875239840123692859276639070274797139154610870454449101318390783690887276516668131658501562736894123522361578338334660529490441705419316261492133159265820080403486729352193504401883149929013434038490934727574294674127115881226164442971470373578619332077629477945836045925694201321512375198487989874544808450089485008030081781714151920201002159662772606199345216089464824819729155754701760475110879554734674786670348313937976506188703739965317069685492076931056821018539783801248496164430760345663675488797765859422701520505873267099913428575842198276272734840646334391237987629983056189985131963752704159805542632923071131281321982690953634297439107864012472707213086636917153189098078627416710103510656070520029087642509882140106983387310750375217011973749262432985471785158110086691282200107638496311865214023659251139387183124145837667681499812266517355651404077580282942501020561405633635994120103801300796700694544345980890366027366978705094861575111610184571569839087456986662286079473722931159126369714420442907319527658910771590661260036364814420897720312346737834170981807236251584336535593319856181451419048979531069860819551135259143902316405894648381553007762739602115367491420161843563210122655616076161121074218371478164038564046666034028230199864948194801601861233327732510459415591386219748875726841763219093889223302276326733370015538566932275774257483171471487836592659604398025459020809742990055721568084946001846927699545309758597745151600992935883825219581657813104375770174732227226168744160964680887002190669516394601188156982809215260420935241675165990484300238764970497498560255763593636559975196816968645162468313403427653309564280448902633140709163761777230832975273656057795007151536675624017574210868630478542598608803677835718645345405954418563508745448045801002867176749870581748213120023336412869343764591978631179630293065109563661933903896422800598932413843049188698421784728574224440160119447175954357437449226202420595750345809416315894505809696043826526021982093465865847420529765729780781171278985625909069881178972640665250608231457704533183444652920198578679980280817960314766969229857830504413690778504525094280854944947299709239329053648114993644319525543537768435820988521263930029867098331608676358740271569747645343875599990628361516795606225505342109662209785706630387172917734001546774554067535732538069562933762928439866722782640242046591223558376335188497626054462597230540415409641787423197296270035926321459014845423959746633135765451303524888975238485882515817519861483475229484831059098142072232648130557646994730681984095202452999237884949669994630167558842916284809976736400612114239567898964281562198401985290963366896183096362812745751370015505603250160000867009241860717152830917303417639491076961380550087894771663757636252791474068263387823203330840486632715171509704115580257642744305480776151097239499175653842919255887742765140489523166355264432221028544106556273162359363675823939996238748440953213977755455867900032801269087076869802315354786087224575190161608998634573424513463197306143986109482028512551058816555097487790347359124446607924745338155697282003658362724988033701852039389346743671836727542308292188684403633993907484458471385041782709030858182522668644992722228011709399257414304441075641858592961802728973337561986367124520225816318497167405335881865331702838350837069677473090336662099199403379579143579097170780974539771504017575304591629295035232001720163221447071352639515013907770982550523418254134247620122200624902463230189809090452689557935452098533324087037052862162757162419038125079031087492233957268780919085489208062400832258779566055852172316637478063730814116076782891618953816001914238784948701962647810897562350737216758215984628654423204605713990292327184668686586887539071290786954091984299335076954971224093075474570739689919394229894727334954307657247611847414002197555262458440346751393433109029882015036445142924644794787645462124872301015007243836281440253306069711459222035482100534750090887082836222763145768770071929054930073318891533114450223867821999718706043442562288267257503307808693081459724651375656166852650324294356007715727090859255684845720929088970280000062928533840055228742437934421267185805096965727465167772916584132474199932219176746440495017639435256267569851433272511191973955416293326296245542053985716366228652338482918846193179270802635156332312238895910863930792135256716868792836618737171392830831780918729649313154754800115527739816022568733906518151553200668522956607092016562948222975802882929932374350310547153550532041238042438008329763986688432789912971509220835526348051462836194554074306655266651060811627980162454901454404108523516370060612557096857070867434821120170562028688852792340613040517902732283811742997868122071728364738017234351339497509190938006397253145936893589915128022733250877237932410362163960914939530661776146864551137932026829363965840435984687966251984354379300101997751605761953912516477451992906319859432506197666439522018221665032590843202906348930982829472321620258083483003970666503463324442271801095979574265474009672671487896502181991166845241760041630140494934747002055278816197290460792757903432890813642965117775740340242483952446132210406504981845340598663498596863291368901222263831490149505479663331809613880468984404593260349630280439608085665907069088452452086108637562941008881910358788361860049224578345607666860427635843593565392193857334176505775787659797405805938551537826829830491573761344566736273228062569581941786969889166257025301632781567959686956025577386578307859854724086350149169775446203441487577102488356566681007098798981480045293044093982873667590160382584098644827354024231170751775529998236043238398420715656717079379477584363484312128727525294508304135781632994240936009902096897735630573736537077807303887660755994046326204495929072037066780544992200436158253446783914794741234372536864518559037355819985578266201377832519359800363987682620379973703027783317784057131954398845120178896147643836815904805559460791020690887192137438015050881203045752097013368199244678455343579385943125407936457251488781037609964640722145398312561786924097541393974139511659123673929210698286731687339603269077840531399822352197904974264829941475937732611827804234175808663328950814709887320612353870207759496124566609012506164494895323925905684808600403903376535995665009086366206764710408924373223688307421223806258630739659796193995394859310619483503865320416033680876294338086246355095275797868625306847789008500759131262939085663011043295451922862395679999799872871726103381204268512013279237532644953778011296154908367316006732661183304988331727179460398399880016315049260972828990975065913514508666158122948255303740009738492872592623143023736058905221162933045183297585664513342078270662653945695540412585185815143955280006046599910872128017310367804539548066704633309008122925454933187311982614064194654392455355616084803699043414438850584336515101444224293471575198848608003667357863992155133543251081060476009507669983059048440078437135931543611994270382053252655613738733452135367172107650458325253655909741525352228659434916492631103479521133629073145171349121193840105821060654348799699124248644860445447861322483422020865784261144490845835505367820392071445423266049921743492847127377961460944692850443634434621129108466842683311104887115218145363881823724747956999781523270153443172128204504600628980039576570145420899247244281738801777582596897582561309567745737158090369515708437596934776618645151872644464627425825842227409170711611738070973499083968558508394759417732838802655588114891783158279052250633235308351201325544750866158105495404406666580580757721434526192644659994119890210860093492284283976456804237880181352526029544931581649225086800415674649142225397858984473539780954349949231581367043977275407349604934622332591547647122230216281127036807701226883670437292220762042793018722793170564463191233428884433581783349105939944509532539958677401163607760591460443456697125880680581412018708993672206471329916106945431319393080966866932576439521797851920168806275056786231914841251132792575334002954759735279543626540826446965560367649976011348443559042798037535425332835211711618452806709436681871008970183065354093810291211901453160543889246544472526607103261439741236767844302091913808112426324074859826388190502561705963480004555365794247375858508266639082012500914156405484315414939329893799480708707134539444252507312060992213348484127812093363463451795164692041392213054769914481464229129762071045881334751677267182884447378135707546837079985883619807979528025323693432643008548032084138430079214527082732594887222637602778521345418146621677080791832549987295447307963436263801052150320700382842029730899245871047932407708236981323028958001885452020481648253134049740631974042714300795450591758376398990554063906825501599089021643255683842831948675538464059604895655648116517795652084719982543884419426930405560607772116578744688969091611456069512643049574711090783617054027144825384710259909944700168446777490216822778286517827481315891792489163786984387475431309650470519595777639593752765186203975678967419071085454136166456662311053115522343692794695756519015369720877682273747711667370245850173769201123586223388639574628764131585899228242656732807515521094797876219787629355827016051047649434211345638490799781285700535886968436759069754706035387011006975367004115620884425376075058034600320880502040913287591918999090911922791120030289996893851235830227403830576410859142991198527050636362823273896327332168443177963563256028888186949440368748107937424333557531668083287954678432527419830213175620749069109678330298023803799493103863674722393065553728860477791875287488722633227089828814157385521787143604372543999426493898187601750216384484181578504985215032018644114898704992621031847201725460825018228457304284451472951092544984286809206729329466930488258261142003281257506571006624433852783495003271417207479431512246035771673089080252884476206762680787397454934040012330011527384336963832630665135662153494944026879668733291892332064905166366624978431528998111022293650251332229879046773576247850305434392665950923478505859220752852673018068844794942925415133199692287910342140972719566965957922255529097916959366495979666013879490824975235558747467083854424597321445263678103057662879671426679181548057776988068070506783191580911697698755786553321900878635022644499352650778190253295259458012789510412108150761786413210109879804155800603869404758347418511528100967052068769818387469869054469326276230381023180113414284542790601893132185078889882862364915006444644793160684248016847016754486100066731241345990429038576607765794008498788344399927792894800998319393210764490561787801298604949021217223419832521725466909330657967658479510063263135833901361913596796948693184830331353944828813259717316729223387226088933680509100791451330754248122543347374799253738550009503849201542164320701823968883497667374275977576270033986900930166361801624450505042100152037828253266579184723462700792161627480046932161315569342456317189866611374669144257335705199738294606533691581268533883977472760766156273463524617077287589316811557733469096581979134350051918198150546566908392354892295147453369163200570186144887526810804299918094854267774002576920233927965665985734495384629367236646791758099860235883510939418388348612309482891059377069291659087450266236510908477761324072587449724667311334122144108059448370172277602783215539648966050705296201032328466745725784349135084308454861873771556332815506189037624830504050051189592069143553455921148949155735481358892581626805552946106369770892311125981878851707880696743123546821704659523082792693694141602377006725647081354649064455671471388100132285739762885372574720409519367504370889122431180377895858875721723391388514531620623897394817767694922791124015908516711174997634155923343098746449992271580379553107892737904238667390314062259811162030020135693184536546470301113192016361537509069911780011382590306061450858238158864830165408730900595140588516505866850590646900723600777730700112434816184458475646662670367072461464496143247545153074421055500803930451567785775642009210977779112047824908813512082155563988154172652734338904005961856777033479611833192535481234611663175884642801752721324575350337264671975423403303864116880546486479859610272731228841626354533368677793530587004909436169266167727251031789422233644560379259476489926358774304377251870586970620739790364146353514673899174874188246868727225182079971259744823207580448949116837630578808550537552500144557310279248652503744188069486506082213520941665731592264455188830310687777935132350841738355257516942014611335780746171054338483052144756626438233147524467214566150975221204345539979757842839212313692495604085350635194170924469396167941273319835549417206360474629629051247619045937450281831670641807940363423864370277651815361208730819528187085206923929070200817980529209822988056428083685437857665359856887457774530593202566459912900466477245607091006269925851010570592555848081238232890762859918684721394312794763970311723194190658091652638782426371519499910832998501612648742081845727740774306140120247002706741438185446479688690181959661730034278531072890947599108716912259708032151610381501660076468287703298345067595729595446141577870560333537575935734820141561459635448022159442275871597351571237397732633789450261275809556566541909809003647118959744265630516631608186116317862423191306335175191948228570384102097276876760056438901805204094682509017251580462303611010101945264482944116291905963706838437020094929408217203487754990658893041806807418729884594617521499220466446516846444970974886447153802734477948892645007916066980225791850856573701426885256645330680208222622961642100611617609181473282986688815840361572712249607830231575822051870418070392552039632092700178009032807725077160828107134646713192798586260868951396286154462449846781645451561742221430521370394781262396841648354738191250665591019874326035738519706216942668671646514745230526090064617204227509622998439182056574084861355444223086285579257175873810529422930022518902982266810917351176003113109834195143265864754865131502649300436877006619003954566425358618704777373978214352526954550634387478726444834770669284128564438406941129986913217006411923795403544832698953873255017731354462329341577722856211290750839333973744420917487854905705492049913621856386589419009259052291653957189259909658629828166792140491255870279576572973339670218841386845569874714386512681299678075077292979183385187883439941168170509253512156242079920278064494737026654949675562395280999368194719693726030423462048983785685518702827732562311902703310579962154192701041281861185757540611893351315138070726146206568021343788602337933030158748369947653478460180963501806575940812305485006044230589746159789552141471301028821176254112275821476091227303183705359355276175421289570020441252282130755048358197416639937032080990686249106518070223810184248942039987919868678358421590597337021160104614526068290897662774173572914230956915219438709078334776468359257228485346268844306667960494861338535658435827622229342179848164261949645620300289289932917441993682783261313227760931198030808358914144739756286597235562001696688666038272294301142762968435218558558830761675434664815367551208127716615391723710417344491825433936651625608877165134066340945820538300800129333529869751214763598486919625533643866116490908371378385883801721012368695833385077376994488032375066174784882337101829810608858345345798911110050921615625147736720247310998723850739173394683220454950417361610395137370514458961647304846022133858682247519088159409164378308785764484378559080297580832500317107399142267809872366988318566276352377498855853343994871414639194555209054017648674485803928345605050538784682174094405803916458915065432927962129216455059953979274712330705474701279534714132160613741101275584457329843869819711884628714601999259750958984269324453379713771441254238719096238115950773839108577017511337112341834263664464726088743011403763769675167812231540970009405226374791305818780740744633878004898729146775518132385585327771419110982128968169400931530465849634050145690274240857119124025240202274763974657592133411874970847031856676004770593049084128643134019995626110198509555500860258826043076961387834729910226238659657050922369447256087204844422822435995481956634198450402074787943803895269556066842934716841553357345006083517738005132078190013770926500873612005244075119482289495834491794897756955308283289479513219960195979428043387363039648053289433499607073753096956965157247304339948468473825020529029616611998981583633179746300614321041695197916145290747300430768711705626559054244011023566877313392998910857806899079107869354765297952014457118587161345303228182228528237538395725631555117557217794374083602812385625411208583378278385289991283327078162751338627294887784510556570922483522057797056670014936052912846740725811345118935388563310121605895285737128893673649074090294823800621924644913482289893803149999516943622186963326359819762988701081760589886887207256808744113745643092231324837824861490537075488810200451512518346401646129281548488866192099432968077019214254893359216767733719755370647170068214669445676282921891843109925119567259857238406873464832697045132362796264825581704586569374233494019673093332248619234746492583152208153577124537966103405769285445312148651284400861614435747649885916372394030432230950859627051064077451539375059907268771112505772856470118784097023701390889754125215680302242682120069306155418524057420495894224412366186337117127960597002847222114194960379111364361531886819430222916512222490278832851889491529875352375912006388709972318551179250746942852374473755128833916540231914470240598446116910054342227962687829889956399167053561733281443231684094261475765866244629549059680083028829242387716559757520241309917497794676566358101596099340427726569249732501804451536237373990025519110035987566440281404820140349138736830560150867648670090375030956480297834901749890983839735948248863151008177100373664865523420635301677919590123616406622971344249034041511878829182575641813174926370304018823264169624224097497433595119558937957720652664459571267661967719488268735775255054077229357788317946830266250695557698489965852352945942069640821095955815943603075253766607308686334367550430537059609701896398828869268252521070268130097593075176132697844634004114847798502706804176017638141127443843395248254962873109213403645662959958877483811714296669481623119108256335801748405948712255024160279873565758909491075818884322733422500348885992160041197059691236638440562534183437087989888876648228348359327435878696700694753228315442204608358182050535263126538570106563372033855843985868881211918008783208256584135615236187526481342677832486811163940487240043471153465177770780842536394908465979921318436782660887738133280272549743271511813513075241723474585357528314773772358098334788854319347234415566570734791087100170779432970804703989460935196749393619085224020206342945992152090756371895525456741892013187889701010767442052698756335232707338335846615290276120682813934518661663530305055666886080651185665671603305289706037869101545656412634359431567859425436715686498931551224611078561324151159347757077910749176520604005182431358064067189386739992766919971921128864704061358810841883365285462805896218927156818909484767584341666266454859785749690721535842336953590929865712462571905099891255167353573649686179028609476784350546110339104906877914124653563473233940395735139523745075701084776193247978365277512192756649285579052029995474769386076735104014768543199202846328957824227214320992824558523387024097107286605675363379853341819705504488566911989648479248009322449173535552156406232755006524715484653082951575981244818722051373872131990212152565717144672719901820192595687671667743867103530683776780838702489993108644816916714084314635506463429670499414506878502830677478338041509137626676657478956742942564343488685219398779519243458840246734631107087785906459235298839814835755711977804607507028939761178243320398510295477654849190012078540134926725444788769953051505926489151745896083701592581569840659862177934061531912468044191606182525000287103261490176724922990287459238945292281448769740528522157639097049324417937717534450418945525868923848356098473173605674386650892732754603562412187789315421893624305156517042299715323727438952665895729169495542472585383879520669262314355350338986522204497078155527108517472336937394057594779114262078872011655087573799588398769217414758870658319795806973199393093106233015486680782539467851462268043347175850368358984831862406766407807487377745123333570335737145648385930932184707769198021180433993741224078237424080415091620423848168622325762322174193820684040657192735382038974126154775644539081381085004642211356408043687373218755742856445194099312198875290419946593452297402287712185088227146459791042673080714609375967229208010050881444188575804539969762631320487118033942328825181010689728730556237285833453823947570075165194549759983168870274403595761007459367340598150489238719663897574309890718613087998299870435779669475940059582876514261177153390560831335665516928364446500662266993018184721660402598198429885455953035896521421919394832083205008457859838349400263082182931419510456655136032987926534763503098658679568704760317130566180139722190751031917502681225334665012043620181374513067433304766268601039502289190509498815887673455287006267987067891014778000659625479198480863079753519403342295989439217438063989834281793550768497046515885366095792395151703312370046691957598121536953388095141719957803354733048959496124883209873096337102898300227611737665112548205741730269621826440300112350354405974603512645873529065024152958535326247568411740702191097776620824923191756771644945800999592028022771342408270834080396448672688633426648230552511826731112294014280352376308228024292072096838791414637454276228296740260841380266341511121673168754332199729590335830654363418919287187279100512674167162819180879221248104981500889610524520378489010585579084125967390386615813939252752636648698964164239022637435220687834438134190899475364700653321922612288994476148098476636411715862338649863110422547799828616506601957898610527466153532707884852457018405294651007481163369325335102666570796791838600587126556177338922749297528099057297386584624233863528656957857339664736920388716890658739732512317607298925408449445841791383473254863293842026769964810221909107613604213776042854722192732351200782257638125506221737279290702959923228715398509763664652112717096435568026682135802220279021805840354011482244074342260190409076717070735334216304818015610775345569857619222858897940611892541876321754687546278887981388036773157452109915168340313142654678557089360559525669781217907753965163548127565978172203861635993078402415964745582974759217506538369979878760879462833068401058179185616087916808858850981036276054366430278076848489781942593428159407401623239178020353226031743812878825630169087075965829115368256782928530390039794252087695991501945496453339072029888344595596242063997303497795627977570608124373376048955709277119617948303574307428745330750925616859542524343304297573729624980703223619949415285065567844798443317312405434815754001777677478744428659449921229777995161712567667445029282083801874402078727268556327085896856544279962923049238262775547749951063130852286525371188596300787544274356888805214384245170100052046875775815042828887869333506083974945535738318021147242147131447634640387404736484897301274215556638358381878143101897292254651675460807334490200073159914578497171443698481315904124546480565092688017957535016172936449095762530782978653573137915592059614857139704698106434774823542597768069603429351794420849376628003572411249479751309590100006580300837378105792945036713023280114920344091981473958379463909612353199223158453316745285651616790493151672019459268125427059447625165756324775598822376117438304363175347044033998013128979440497292222591805020169129869634272922253974391497337257194917803223880210539844726142240710243153068826420831001643023839239382599805730198211403536792547875795669441000523984101697247677291572728679154675899438800462118345375240204695119485696963285264590191813045742787865541140276758972207057885877527082468398787089654519301826583688233724772579431663524130744653797025819363688031024903349832095309377350867265185586806256515365887946825899575231256608938046840135468573018422560829083249840563916869886379808320730971786646020731682834701478391185474309679100531171059468571080275869733740734406615093330847559786016138137032191326790832379678548858356091603451325346168292837916577600293607757596843914487191047530741857186295730051649562952152752107224620911941530370752849413818566040079103940927816812826268562225626371901522724879219768785840443323880759550091997381101510705808828200250429109667148244157693881193874078140112936974330863475682186280717229550831166150528399061689776850934602039903456480772075152427482210219383457972973930260828049936637587343520818974978414527964903658587355577315311840855104159447028491087271761195420309932049410549795173738779909110342334111783955441008550443292334607023004840931964771230494878450551958790361864034796570388061289297152802827385374304637682343880069815939695245548061748379360909400168805700763022208294755930413566718361984101164435203241323349240478891841152991865041563961352975236750201640064094506282646873018257668052246386752591678091426765907614493822719349658523068452989780177511461298705014044967763355109217402470171340024543905999169543052133613438378750108470838863442695507732129537873629987666046697804305311610447735831083752514920644145553783730924629377553765725990083669944553471478691415100608550893711956771765578423182067750640441380009349736956031147931358958944070869711552913859241378339333221158891590339441594078619305430937854231308382884321175654186459678777240428894013475539283214570534955639747288246084189410875455029789315092856333002812238684203058614759086390048042945432110628395174741368116776019438518464306779324520135189539993464313581326039475392046940307147714000726882469294207262565881289655469229758864414271207026175842396644652912779270440153970715941426615959742384585665973901224788747385974181809873595028782018639512388285694383852300593594972304745907208561307817318289681808913857320055106413586427241995950880873267461888186535705959702638582601411439220093713270696354592672662491186943412840706240109320422951963082207766276068829411535506400796773339781772715364243287025270618131156941996896593590458641306457017842623549296865468141982956470203127005281983622171505945846276713443440255096657125077221794049536111922289147506683128394229747911499376191327393117957487124277059020597658152829566851976807057120603940252397726345263112928058287037107432534838663507757427847950017338643372849171840112576309951306927201835907510567993042447436794240183799240193941247521975549903219139322302405954058154947940672347866217865782605745784348046216253643356136366312993220502166943816475366733445001090463943036819550389014382155153239502434404576507400773821086868864788646973159479835548128493260327509235385708154709499395888810958117003917226887319564484289971155199635204892310027831584979019187379575303295926740527191368620074123650835984701225314706501897387268603223136351336128625251798079181312513328069919494748638254097674728583658414854587651219792686624957427641731733202912316355066898584270863628626091533649794730451826520292967167787268974064892602585903449867063120835445995600484980495533994390159887941202124566424759089860987639187594936244665751108909448936923549034446074960041055838764793303549265838402652474572102665341004187205138620038334640325871420503079422228329277248384253032164503224867251667365403385485704598957610368831978641274216027000561545987438397344901915072107295522252448998142461024794063483566063503644701077945256381749619431963457414548309435782588534435717591726990457739677940634472552534836407480528650389048347786491462947908013227320170751615778250228341548237649866135096547041003189274828031429384442856711085418911896339640647757531452206082618300765338594964990869208486765837483361106967722380237495705727176065340087896370187716245834801670650382864984996417528532506508135676937301965519310157012535326789764099201357119119054584197467842422482861935468232684271165916878263200698626072037668245694356041376033425372765674710129619819477718235727295221416152595469251925495335576054903662439411849483832928964972398665197024149883904246557643666227988964924957693804002942542065780923670342397319989098465877445987534762678300468996428126662201583380745663969796912617089776580782821994326620433904351419038575508721701087375778844983972426095829795085773044416802264589062425669907390574510255777668362426605940501516435720111107516362713336559787951129581841883916058774342681318598288240153375531833320699312454554203163730896233871521223033130502449074493246366643039145595542916127202436956811542171733581833389814030445793012922515089260997940489393185353324018911848890094913494190354661210910493511066418386353469876989164312098254040330843421207107425168582389738809153469762232278315498225571481098471603347887026320772099646030804986032582267560162322649198341255090177377265813859338163686784358545868994350541721455973865329731987176599418094849038329447740025340067543846186156840334720406348847387689834575003739742535777211676568652137592478909929724580733312790518836413460430802633517077084886674639995461353125027469831479298023671250463247810851540595143577996305484064292321548395702004113288576990922290010859170303055780383707645045244087609447597280618224883107267751909110783192264370983750680853773365722134675552145780772348920719514419822184821787775956051465416861798990832784862467273461858518164834881279689883851827020496163098199716999881283639111434439440655200985792923326187728447102714276173399368207397520350575576468569360745587189831142761226760155227391041360959331305511654028928828803038423128018736299755255545091672747986644139243081215866583518144047346718284342616277189299116714693591900081214399764198597072350801403080449127755224093298362228020746482793980408403843403663884821259035128834002820439305972641158972551998797680318074667202531914916158176008088138800435253583105329561884578336623477033350351194675767889232413047142850668772349112470838100331702482120561458131467784483777236957260887039972491942260043082595643102603898216279191439915802759164807100702506669292125220202153971833220874449378773759921016887079036035739950199958638934370559310075725769157763070133025059810507876199222193873854715313796077643638727786524202976410065282237172093816398034931137270140770511080885725437869184172584686011611192508260530041260575952052298338440898619673623533216195457573215044820509155445359642830076252248688020338926946961255352948412268557788135300598617700435953717201515418497746922021414792840513245595034122381477950065008929739828156596721090290346204830212283614512012275071010347388069597293565589262367340434277701182009416126966141926060612028856335856815597984854697029643870929983821448672956911146151364667012042862288042349140835383200752681267812179069237057323622429966378155612967386242713479710900475659859731388325545603744424183449273563681027896307477655252706969017857146010094131377049860160394130679253982944404232387983769363692584922792299518350926568050058067656918652116790781480409784165838037806051598332794723025928464959966567818284992932829653525300669176876279889449927833437700189867886175741110661805706107304093484473082176515003826491506981361153191804838134210752367497108148636540989459200352237486951411567704342349175239185462738444549720405754409660201919267581031939045130352996915390043411037953438441911500647420359525596621646831994123528691627014273924421054182766926376069407610799597953248112859602628623189726780898106015496869787534924263182261749915717402495055111631852808587824851363607721008675512879001880545520249745496792567526570678113109114169557088703794343899869672138208343233563420496981994807039377604830542332986603960589696299038929556668951075958188296797657238737121720458703360645740025217669568067157557778679783527750362248890977341735391478226957593437232762330998395116102093837755628213870052127754499541379392157845771083113911377156416163517610777680464037770277879842721014674835758105564562823764572012748670103363590867478605651248146567042819976599950909850683498112160944687118894695427292596567600393664517499597001043984071068486732671729386954072178283389365587336305785457679902775496920098800736509958460192738115919754689217485843695403202587943006649549786291073744029228859201880468258285909791729209547098868091886237678896133747122937570852656002938780685807591330545058070280951719418246454426219361504133582372495536697976701447935451034481096411234239386491628386264960770232494155770538038793542916935162877470032816554710583991095485108263624005266869424710518633994828859600174313145212708307286044873889753898181017342156229110910568634420428392033772792549408603812550091355031230896592075367316489252397053292986051104974394696669722527869240694585416991231571465704943529794247670251101952858136559502847114833870623028616992671220574709406133990344033499056319538580072315917721001494662043794545191799362529559453254444923179812010026167904697716843316555690482319704751301692182129965237408540339577021791980215011013544691964292738264168456832268233264141855903152226923254695769983781817404664824771030962266020391178982161998923448139964880391670807319071842332524639723529013632986653688117435380410417464220813009540892063777926355956321232098272746971409011521775947161896464522488827203043418457312696210129787708048909759351985175922981221543079438338613593169020382663533942515413795597325520590465405751289914732628119125856393396701544145431519655137362494452838414305266276624299662967345123773639613173396089001055014461203623229397700562175463430256817056014223794225674666511646039961571217010593410003954888126613585278898149540495012730803524203481087900695011965941780872905848287127491131801644356025836294697994139543370871512077661791516900388128529422336361079836710157035672259137658060075832053850297954792635084170704775192416859337885232360229839268037264884812118199028792761766038596356028926135456119076414515926379161500789059529145871699902334375280784691797549031146315264397959710688545163772210861057565608684975131566585734260456507558962608456204814965812268980640417045734931031666843538157240234467001087467215519758442036724019315174579298589604301056362965705795344304778629875006308100090211410884757506392527664040251603341418582821053988263381667487157712920372430809132715094716705551774035557787886325031310096081788390844188266194865985471013793981177613898058805135508588286333149474451907687733858937972086509254456656705228670769978213998459386746058156178571840531427081024319539471625032812286512517343731014747192849626546834630056848089118189986547937117735538809006651263027356377470239271298962102711918707108761189055264463980167114265113714364969874581120822119468045136507287089531653421631138680498195557139324874406804380330882444598269281754608820910175704550537658564821235044680744550524896475943886065015185419807273675846980371544490151649695797426831203950336571622689521185202641795371373891761841085223551503017491275312480890296052447908936259220749333123328539785633639426190517490822483431065583856565936596144874196836459668860089293162946215635356303098565232884898937260107387981638610639946687858725405729585824395404313307746092581643446686769432417444000225124274824926069579517822249846188262349434442586246631025320814185820942751320314889925521104158068756498482878282635944969088380085799010894233883755924335704973040733619234426395211148633946452434736078270971492368688746865329766223797124153198966704196389110427537125104187254365346989925338187113794375501798482499052053940047989737194540034399515857525227116356447431126908774709001242858813745094159826361096075754407849713450059777133198962195809718400238679404904465924500687860786262835917031271590754917492390966818752114588908376598094600794334449708446867763937139044057837268221976144323307628644186152557888836276412037758273360378532853389281280228098758314557146571920798248803596569142864399099730724093001046645819279522824408703582552448046907392410474899647768192672665580601751757840886596302761666908821675408883741635766113429934734758576557901696273524021121825393974315615772016482526161285037606202534447905282979401847540587770111116866050970589530068447710392268014874488526531907559390275513378982621663743421698245497397988361977062111231733460562318074733271382101369800582879065468748229978024986136202693053935426049612925526981526707759239131904658812046182407200234894211652976493232663663916584400012368854412376774229565995398581907376451093544531489876007059067432882029549886594477141617454752969671424424995396378181167397222864197049759133483123921453061881908019050839680508747563722021067781136982825893156973273777447424499337284112604337196169284967741445845069412980156725191389764246087456750791445663144263422053285077811247233793094211398589689475952003419042969523545922225340065931615911821534077455885552494233178471907221393836293019592254550975041342386829774540068347230537194056726651473750678096567118406235683218764783263297487877613506239034668877598009757345845079112038378543535656524680163150701340249456687032267864461260372985661326537472841334129665889287405939630877572900128971814264193332588384062862960432768070434560500483649371463916255450411320736342599439631541782155413904022529696081257038811953358288273694004259643056183508468530832910637216106609206970630647539768544975922269144965970281053510372665058863564778805535109454371888044749760263885236747270685387191434267535881857266399178464315878816600562656762652860179440038549439768580886220945998124884526092717503962570375743221378271400842838959510831446583683889263145381560048874620795454787558558637335034840041951357394406396784495610021790132988780469515928192764370891086018315239716971869213704030563198417230332200445272618495477778423950191229221339876282292419071179635901134753619540791066565427771146507554843573294780594098544626197731450256771495661373874032684929566316500650648461627400271960018898647963983155811670532468135295120082767501085988949826610506773419369535878497583583140198241909188181368901790628569379534061681314981250434626508726735791238910196328612098073174099227976087436410719285554952538815912003937639067922085938606558822736595939772631023883779389753619605995943593159456928048837427129927720839524967048810923164740111475796765772515480277204627002542112403573755037255245161679859744254421419059164881472662403365341791375428916084692776317616068869980001384730853639608378730565639507113328412981540179401329643393605102424547517616828064900746307817154933270260314324260128343296073207348794795959607541786905948663266289320179829691961340748949091103368037474609072878137027842516075564651857129299334873660611953875275111285338567244432807062847114841694411192866423144958286115778316150670982806685626316272997366428894642874248404485284545116532348231421686101064829520167541842650715818087085242616836220260444440100585464364606832542737721658655269720976266452909611176692494454360403996746366693905348746073705819553109318100215504386182294772972071588473668537647515545015542191181943785253844521008235520726716892396098509739789997632513214147885388765118823973769805604251381697048426620712706134663597294438741970927452139386717209466781905795259697628316788347405978937960467720418735758217555419221037958445782140588897816124956481959781645128602133831754946524934036462576801893517826831050031251914180495932043907089367976814660257642686239901676350105724624108174721369267471632820257332612133734398611068150168814211830477543798668647010700911903429149766951825180936504616091249239022716007298238942087470831157242921172217583570184555275921654835218869558059651304792547759448175282914328193722056462201873340225132102184554011963393650986905446592025351671215497962658736572867252864867331158507600996962933729169913512780782470121261778197628472002210132789752224626505421293700441011657916095729113241439787548399151347820409531197440923282876997993176910758905053414500146388133882497743163324979755536236198396643664432307763269944239717576022843744770808866584240680904424244262884006823796870431419428832273973347517196238048262278214688539928865764935073449485400611882956908832389590185660706809385099819969332854971318680696032076703396561884244556764092994949194652930091700643382805219895195065283854083972137967281281861638269979181707055252933852004858562312322605257777872146913719905314239175666273621248691232135478946359514651100830054363690299581326771434143247398599961897062963304316535528850971976723637018546203517225525528534755319916538401285209394169864396869840791847182339861746431926969938490892162848076888536966252210211031609619336446719367867846086027472142898419677600585676577315616481018760571323766264437886601827265904816874413394995716008210955360052262415862011424762999104463086853590984133641989533625028546280804559813265703877607560263470669820172685210029399481331953803742129388592170088520489883845735800889014660162216899008939508351307837381785485268157534707738429931482897359204584326485167011158220301837838210960259309682170454733996281888690328177227176686467981567087849917377635923687426386943528492250944244355476952591564700010532436124041966358385013636253096951391871614854186787167117920629030042060986840506471846790728464155052629628715102126283099638813447063514101270659721023923810625600729328170762768194821475798189003653280070504187552538553644248348906735548618648506841173157108819231422391245516701613440690591631649538464073023157597159780504617283402755442181723912664587971673842957538566852051097839338894231436600267065893769952118745831159686365911403437495720793097024536168584224171287158263445611922857557149176599874986304178779766705141053741531699479307366467363804230534785820248817221907220257891349553152247328339326603584679698140448977904707962270098886277879132366129651526581401090591036986278803409430358192527940007623347263019301253906711509509834361724575544070047038451421953604144088608898672367781584891979986502590438353244882706206045480857060603897148078911553337897914520200763163924570064602193604963644761285212911418451906759625086302590893178284579067607999559493946423460583859507756318741466425008362946818100746676156816032170210266378722461558037973743315998151346539411945043361059980690898917550009803090430691992638167805849483617200681814028567595680758675859784858766428283445748036117670277046351438173576436425648074414090180016617769293344019914762218968128304076637779100200573854029440290120480702361503454368227634208600427969690279813391474512726640903193242854057951900909313350354661755631811994901213332170137688190524722909707929902212919054514121322309696160177854363821766738406347114514183525378531935942810101365833819686058173732804000722201320226401394442686045966864278228580139025958748364260825986692203511639439524199180671318571316163099792717054093486028018374587018919781328748234225878663499472426357660508621836620017977846820412436463011613820851495250006572670697537560660831105894953242160637887935571654755874879587075449718730434937932929062396127388940962298931243254096034785937875732272840203345252180865734617013980708565631318350773139558350676987915136211061347150318799747103332920664766030425066267849746355411823294307359142496420191272624084603819425989851539005546159191434493100871413592024449575295633365570420799921793677020086703112981052049562806623143987400532875106604452911705162593824406398693925123120180998942131855695627450616493068771302539207507448889631618453497889794268039427452941987259845511100739293023595322744230203019138147472120599789116129585918634189759883520313576374991396909123808702003443922272111704378618879253916902572663427378199658950505478776730330584459794545659725941211887802901811396785215670946359294586858508487989399985374407021524815305010807163761683901259756022229847143865022327342361098863451075386947153996458963877510050961168834776653256002448214960759015393325829711427685858866457308832039458933663747874764587376086046142995622522186725961174072302826189695890270578934732280129676324337585678705361191203341555709755645369709069623937033280174656936006127178177979683786012081374759498673533078273154722984782853669153803594897718088034014653245826221456796132807922032530204391954110619008778733340455608470267832855846338867411008291964644983583929911203480041524442609411243153732390538818212867012136750290933184452624300200779474547920829210042545912211296470980412737779983473854169249432022343515971010459468590108757392709578864939963729330495161512259242142183285583327717199314334906496660809517589207851161965801702862713946962293784653118761309726288089730704273716598000011851419991307752376745541719871456397454875120648414182809403500367945719457971405029775262084361834504364729088629743577733658835110462689986683724096686042746332735101577507842672748673776684853552342607628872164816472309004915007038068676432179807735062024471163974985831500376913706775304379194393683927857577077371904886987783133024977117328311582160162936939037296748105080621328134166024515932225840915035966592695270691469006359897214048041833416392092286357213788988555201073433394262146216705779338730855320658064004345326805577560658507370369260730054954718493474171625732670586352433965175458652314420444344093422393978183722830900227915836482438677937266820208134397300409845061316611717036796565601316273987592790563796564650524348755504893363944258043869639173750401844011791290846964987968226659314450459726107156747743835691057270495884679594720274426092827651003459911528896549309772548909406055335227457502857616318038037729865442796427426148656003702815620857556994636295730002588451337146160669251125101965842533785500949363575698527437625699823704981063706507842996074801990234595988573675791026843241212470129846486469919570737132465767474234252207537604874929927801652846970319423654200176805195344341350311488612318632195209311527105698132388742545832637122255236227111286299407747898916604836072152866908854468695738619557807028092453892152904820099219018072807016547327838556890477730743714014365901584958976905980300932390968037401701765077623840363868804767718906184328396875019030895934178160651591643258086424200091478861402125993721050350913456332983189841015873463241782967794171409230966295522907297332654186333297058495828169672305659907664675601036396147371410672220943177281239727972439313564745865801886435558303823629899324327870404396087079025539731215957977486165173032175694409882156112209632675408960549707768591177331172333871061794113178387734509393501297145950204525527510119944953467263922094648585794015528696394713997233014317001982419665138397738181576981346235096245067776145302351652387524694336175852230156444825183947315809492116632074863118591491605987243147240959411751119355961624716264581090153243439981519161334735331777105978299079640485993845023956296435519933011538283887018122338703554989975395975717289025436029837555312163053783399108922536530610257394000751736400814321333368297500776438315152324235025118762258215358664619257566606690930684595731112924717729270926914988582474889199391731527688210356538537983641301542291745576507092486861233948069520979410351707460040797868491275138688925361370596618230760707191771914919808086936375870971121672346921722209804029586760028398984187955917549220562296943547655289540610703185434971618458885916813602087606429954056660487267860525760882814785387773400977417572632419568443595942939234626537387081326005047521659263666190694686865849520466421741666504347706224537113578175051523506547872806762797907786412231883565662075348669107619374949665930939865883866113229399864621230657392847811158752056699273518306353650741600612407942542492839490117624160486040433189293057645852361826608142721469487071231323566313108293511333693410243958210307286190511822776908401668047245018649508727724902835356747956234857203619836415091110609700946249830858316806122439124267149734689571075020780334732125495489656146614098148042275315529190975361249500856388018121742518291896968153667954140008288262512080779339279334766931213680478995219291948202467795267823423689659694325853591218194559241460567587125681616395663042752469586366305610387376449431820332295400673094268062070847631252315435200104123715718970438276366757906048696024731888654810331062681461447820689320289026525053941513383125419664547615014759088748992153862135332077947808459917351085363806421545400933210625373878174939076878184359729682236370820825086423302557631612396137993987555533407084310481360827630965697699857305480682075767873534225619528039700643346698372406463368654176019365243967269385155650252124135483048456376863756055599706277527729144085855319211051578886666710800135472825228986526344849252246836486484504719132102227294704163514198330432642059990699002712806235245309030537624924852862845907552572795533709178629460395092027151763127957584423144484123227225987367222783182975598962377192111208797408023965509791900335608418171249917146179251293701490212294051269083224351003612603411121690561333822283120789697178085265666126988230668937272798924403014984752175076592851256546865945178058385175045522322415038981037107552763712865878350255851601318831866805712681821799464207257338385805476303506722537763430051758550617522650604625820006997223673961682751365485415106925296861477723647759632739182882720872408419308697680970031455175318610464911422823752463680736628323318637323785057124371966738757925891316411468786503172876370839840296071928291447547153299337974407689980831402002442394489529157064206632551809217119615200939874257205978458314204565928313424512630019663498482390442485595864007066839007128324977064240461392100419550491362491517056159149533852457256557259607811458965378880718985460753635969284327120827774874713014879764941517907282235301463020264694072956655584984221541982571861610277644473547952676651858916006823085206776941125283700296791203422053028442299773024775185618353808161126644004281642672675922173603536971360441555137303135691605149414551147863716096222446164880188216508112495668781770435006834700283765816715846568181404277862490309474301597325440412447378054564798459433337738765016341987680455972645470417326786346864068655252617854354468306951286253399219350165119031877338750428627922760377492018677134678969633610027439268349587364193162289707669744628036508163700183635159438964272787117533694447321725955957827569501428297876672991465959292660874052345937024213073654712873008729378269045956708470695029604542081733929198860199220553500762271271938882416657624594873894712753071415797586746324119362558463347840136356163588577048738591932832666395000927665120602525862224675531536046213830788351154744101191488323224907726319107999196969712790307767398491118265775885329745246156201478467986285893009882452531088371779874840648461990817013799007166167839185512159367212177817628807144637027876907266766089953357837893256194979786091935449124829570202157487230329274416670290566998959353384167895018320654616221389683756804428804866281242760026775137449050035971203537745602410783588798371173522640024390344394102292670108803508326635539769429007908703258776805808963571535442131446779161742596184565529622249185799954946199107020588408445839396690900105222602599990523537066543657110441635205018911378591789384097725731033826504388866884278157923329057600599410779496437476438046933726299384819251276247270260651069756238954395989391815879485520234109276353104046610262211151264512087116296748627252255776854396738795984985340967206324552893921300883804635007957457143970985296834639036057644408615208395009319669576115803070193605199258553090872902048792367639381348983734118496283442670412971669314818316462535574162463250045932362311014593758795171892346813369581567882290195753052432931638308064848749192061249298268663079420655633664303387589482955568489246549562403231472667643669081121658182830391376711764557014362612018521177280524125993027836641402986847099315359655143470750833486252724437420779895320447180981715855836313078174895812586378404694666935770652999742154238266291219398364438132230738837165422040724904009253327195999955733534530601106172883590239861288530466056751248296644402007373362000885086904816827743076239351350336401245381517458339593909807071708904150363990479759599674389504758855585679034606241651788544040839049100830410640532286602947311856095298443893014725494173349374799489656691860951206442681077166529194054126834881982792848167577149191317915295259976251889340726672549528659288294316915210102444623508139066205339915064531942359785488796791437940148965966945508591462452776472740088790396806880675167200254724291291157729031950571864347886280806830799014215798453798431721226434712410295566955931768147272391364810367933449946793709193245428838536076699297256327889034648597073201080012431504398273670875081268108073664012700410063309779385584182816318240202769373926789644739045145507902374625334833870049624059868277801312222943895568005773120989561664732937710836543961804771634448498984885425028807975327160204821215231497316260442712929686239628018209473060316142838476537232891641709997110667720560780663628331632146706423170951819539114953829614135727500175125912270479859579037140401152370972602058102379141522146466712417161874188903176961429833205148273227644168558861372802070839404760659812060898553159437954887340520151285339338963414211765307019883246461926420296188191148444620356101728011575809725215870107373822494772624328014095440879349473602799553317868850787695580460391448432708348894788143775374761466087843855347455073344679406448351896306035802516286632422770141887455566328865597396620024298850028485113853445165391422219841871570044896533447349134214578188194823826687951654385075119771746954487967608389368065861043425004709163630097589736060147288684024999414358511924599736438460195911843888284534051724481405117446291789388096539469870990929926421847500436637198376491139061990939296625346153358915618519283378667440769913904878773344729305319260843982633848083143622653697157244020907855589077837866131516436715520019083861510859557584434590150005142668694384678074336027931760133829623946166704836785854169602756675623164685342686612470537300092577907066959347553938858744959414168217188818478913740058327455818790137910646692428897655398474167912030369397174365082128909696113527420429179777543752164329757700693827380552671948602386948658407056131627050768885754102871137364143895019219353658322312070700751832199014962687912041280642966955950605565309129699080138885051569411887983359145699916513059038781269481350430835018669031308957363834820819257146919421739926213114569210379657273352320105487648393010025938426656287160356931629144282365902259670833325753016818882761263646469399455102640350648396201836920464379028152213198229560402609976777509507573402198770271865042958712443240458035904417169166754930189295384761608574771118186463662754370850916232247909768660331350715158292999021355488333852468748924111119982139053430412743906855292233202324409647634405193214987297885593465452488433988841518659010019617750986035437036689702761197454474393588250301546446192344261297170450877928459985567243073235615589395281643238045522168714439893570770060112037896269841632263731105567547958761081514754508099756103523930641019364052537738300973718279394316185529139985362107468276014821203344749624767110728541241497626900582895882670054849191598458656284309327226310365756567248149563940413491364960163791050430833214499238509344106565572764604197878993056621664265280240637878311443001058610185587470502512693409531715515461720984202678838785676884747671313421124566423356998158051553527578296100392848896025023612491556203952123944510310077049734799187912764328886189382288198798495477165991452365319747308898826623728089852386431368175064462958336272315396974515562880658609943702747290794836366796213182882185169428918076696050989622753595606016903906109285781293006643488758980730091816907742459591848312555640491392449064551728156469311386224450394140260060959797716228674776867661538581048464250129717860706938698682836383539774593224191869820221094430721833052378902296944573666679329299626619815605357313887574121360955753986969145758839578529860378461487336161255441721455131837047495213494421870203999934416965832512088543510685281979726873261159061590101207779986953748577774518912309169298910424736424441871109373911914547774412107127158544933791055598169082099060120197433604066273640770564410962284943681732753452095320383051217705786813642186275564075182303320757902428583563506133376405770043641515440968664789817729680081021953487721955480649158989143584738470622066261472737173141724605981573567481774545389942113465119101808436894565916573509627627889040593682339251921745319652351589276444593603357866446474296301355527748300798778876717009801615478960481058422129617922913566473333099764824299149140374397779748202517641642060380026021692761315038357795937362876320463630278295610614176904368014884863836773921727127172932119467221855544804491334481271295782581143315450563242772680089465788633101287928218674183208802234524490347864806836575531308770231121219430757301920114727053849429623044762158636991123413671103313972181419017458033858872989957887252481152006720667270684214482787347560751616697167431379686138630701726541809016629171692025084613531132381955126478497590428866906479835068069372905113023102146900589851226621132409133973075624584380289402185327880168254326742391863016981827525646398103954720549358190771999030570903149885407637290720715294463015957391762634345071204802020753895370191144279130276498484420062506200898330219375780981435698873340657133542771761302723694526230649179409486867655973013620626447135366226392885765335402229210596539185942862988025464126174693847648505901478932157392378851025695364071141574396543027730302022595859096960167464409672431311830805336732243488679667774591840105030718299590784760705509547551947262862710647857477404475932794354052679977749420677267107717454279984139528172562386169847254053142662076194144286344151822270718040316992713989884310489569258542156688655273453407080834248775096354063231657683386714103164115839343098678544608380827659572590433293672321761027823359349837434909608828724816108403135306836737428888467335938027096044636730735004048449996591857037345765328661933595062298455587033762545252949929303945633966909172007517801628579469574438320782617233373992178541378335265857124592671554175289963032499670490406225590265319046653229921110402200023870136793648948921612403043312377576436920119541275635179618979900919078341314125366911990166285021906489421890933552149775361020229662671678708901323171892702863213987390852672246024440210989364877079354336850782112949289456505203818852099409733112638074254760110621028571578507400834221394793633049320724734529149413405966487658072704281772103830176425340479835176149072724754682165968852423879891700098888145571850662122829378257824442752032294723801853129282971516899789432305099921526484815677274329148694820759122764648515790263261954704214862613588288131088334469254868254742371765204043800631563868305507864777843913486250887848790203132709783642047291734186722479597392942806618995635006991824765488676822308115926467327325775195377481278217133252376704512929248603589508239665339831975187657844446928383131488050025781825662620055626050733029788354572412137047138196356884507470672713500991569853062868400551295383304951357326295206362821068461237948041331398751204863516346235950154852565766240989905029627175630744805420887382952632456699247312720270431685802614959220321657359045272754532670627545106957744033195537182170374284037938557909779122143460497073971399249528055294999874253755852789939681472889705943012460226698430766993032042230845984112347124991854962078104938185926168656573663800704977212161905208731592793904761587860646809591994091301671098315991087735580134998434079706393509149695370287751925572268779603560596273786754113703934589285374726215698955595297477291159608745967782064174759226381002205378518787945731553516849459179620141543906982996655851501580764204026699612727048186596952124351774848073267728440833465945327832074132699665018047420894460207415317752505935209641577582920836888320057639839175037212240177795280307883961272021608699640209965540504648096182888281592224918943968181965893379122124551011584191886299108751553114569530972846557304738412352228255850290400388267945392870134228447119532286894946503112316103296206521207390863889549974570358314828040910273682330229406889730511259557427645082336815403687222683264678964756240012445682032603570132890260492759338461241778024524449907042273986201886689368969341445146621177460896971377147962297480415859762543463570955116874734784340954976058324668080994816828124672797939308070569405802172612375172363096516051086113153646683459356184983249697762668857314790692666784749096432047028226980188626410318008558773639474413241401849897833612383082277188480224079524943179838474538663355653510527396959520203607839117491685710037768076304785193396771269759923928976756314395699403478987728491626611312076010596277348499506035883164628296989010527274947224120591062713259854772189526879581302499065708944566954174440563098387070580490500287377531151479610092302430053445400820259974514833261067077511943366919732294188989432154523267338618838271870535975971560809948473204279399909723531092592634685080259710994725340958720883535574113108591198385811774848073516731331968660160280381070438859406337501007531291960902969149682852915440512432707689780427289876628572504743162455018854179115016080970023397329670279296373090329780863906062617136219301519975802434481324600980234526237619298654879759813828586117663122621618613731943790116696030096573673338199800464497597810763365387227086313918652405734220482882041562877362674572670242502545699661742896642022037907155290950168412534021267164076465630349269886017178837607917776043265361066966625408500772511219180117016796727550161230549762162653829870812484705363868588697365808935357453654033564967509787435392260556405499821504117689381010987079943871455041300624578833571656908259120829653519864249644703440975268922490676041882950130907803121724342168602241493486095752785094854078578952024003029287931840155588613051563070998705370767256253960042312445874008187426649144230565797412972815699323477461251161828200380850556801076215270844441076587249169766423042779579258598886539962537324531120094157063047836676831412009287259712960735371995551590875990878082283018427402023672715400680020974898177788341413682834974456069563893709906444768527510844500536815739391064198102010038648764781027085514218723673376478304201234412003322852730207486707347547398939639844864912900257065650925162895380086498913313592051899095795514363524878330338857194168725236422140049197041686030816093773319084670097373471771893421277325250484800532846573428237598877406636561222841952254540026031228630687853024445901576244048112022691263620509442486025981433389837740492326092641572894323088898237206422590161485218590534840829976458971199041455239563755619137912016375456417237516171548926313001267939447350924803253440184091760915033128821220705127241790485147365166457894738885347294692371858833864293028803338944583718779860187286825413292120581732165943020568694889996889029672647117439791617481223060006202056293930877266979120389469443532092614170869721870125816112173753888845826233382651708174096032404257999572084801207678858164460236851557581003779877193967500730889627948796553460604624516085997780439631987204502090228511178926020013217878377015927253159912550030481476850986156224928946067580622770676453701097857857678323100784616675881560886559134117652137715781031752462710568730282227308962890533406080558254430301483230202508033317151583779740654158777079684073244259936736112085352693069947355048513235505358406863877538244879805531545718899649697675477026155001885228689176964155496144770604640021595059340429827480344696548361984999436669330579374075121765874643074710868066916191188240974413885541591664833294998916997817684897831931361716830255716835916020310696777217591621142053839560354910490670167617076058601824006300926594739344949618226195909306717101295247169881009952182461285110386541382955228366756835911933758763056456253565851613197495175620840336832241737975444923191498439481091166520017241493948337907928214256267408855593903151085018589921414007263279486553604535575911724776916035671650545917511267716373528688544627160744295090751310633416343073876586807212466653849886403969500520238227465911059227566934812243833990117091483760918492069310396910744100456467281181720314159476414279599734901411886534150992369361610924913734017469115111923920531466481917424936063635467069487648155923771775172857047535659164594977084257957033419707353812345470202588988710704916929817588186173528465544113863679346737805183292566392058753105381362408081796036004185003372193110174139654375476042547186399412706379315055934299786949810172114317320114462596173022515513675327345647389864045030180180705673798801171601880647698091351490234692608818013487608117814557479797805308973790059940825542452149887269904946124765305779297804436066446300291731926742431456664184374622161380631006049394830647500197760739163705639942886183845683600586545268457492953402733987530367390977642776553717858444300937067243275474482602163937305857227254489814479574439994783024737648474633756293354152405601245403683504976108722329785159268418487676552084143655662266856578066960764301498712236236169009520317816610182321543152965311468560575057819257964229036502175839748879396942943744676944695738054115530786706694751545416931061514269953575597452653068340419582406965006092799715344049925853777469595250332689905168563043672048549561003200682070457837607201564758596932391348350907454703434097975360255115216909128137791959413251745124936289323375283865395965656702457488539939277551938143236188733011729842203994185779386548457052787216312426531350835386581235025860442036797269686285759167903610685742052370260682135399560456083320462629579987486253646924725967756408067598472920686146642623951900486968617223245756670104945982145681055059674877999693627972013477585517902723227007348067881040964009920808290841543493843731083718248264975563910953781157858222340179935454900820595867601403639116668994076013708435278449516845094864720299527243680900503354849097749334228952285338246126521969712113109783824251721048626371778156700878701822058466191388019198883411579655972258562466358859890812423686779178225553049735134926413252012476143415166641341447708668990715209511204634216318654501382068929025608386770464664259499135490299730983692019397755654947046222970538180673094739317790694647676927478483210259328056192136939335993328736286573783539261872774394299709475008719388993304186376045474307807347552330739620595737699104989706537403207359431124873896801115735096685560476940694078000568884788291271970731442223003890289375144239061578095187875320204909312834778010329639002896830881448216242299065000452197817268779709968510476970713920382264049318345603479038120249168218842039150294001813662569868361521124386925754599155797497350946698046445870300647669198798306402034373768847731222479294113643991684903721436613472272684682911810851520580601895213088970677754889424970418081924607028611011313652215631677050753169502922256799835797997370433449864676067378843033033504743394729001622919989496229013697524258118789162642075417084964002015596890236487342356783926784005634747936290630300701308271186136166935774055996863428818252948945791532166871354413537012147134641635535429036362547195775687442839464896765217329843021123300514907306927773815554591721066727451966996207805508390807533042268163448570323580058157032839065782715178601046868231979394110696054864773484046938829307683885404882078639180450488997709690955481441788165783785703556202281445333469932919266020191273168305143754015365815550623685106441953795871958949858060960793313129619925767900107862038908144821745028793859267436695986748688802056149448458067812211632002703462939538480351653996020144954592094438786131977571459668671710364815729978661109667379526695815283240011538979092714752456131988414991115764135027917336764539818542520058184562321041690710081626004732816313794615429349858427423668574048392157870430133324312849577723152332199234391675327076034917007733668942390313487532117746794418879214987601332047569207020622820563570940230611669187420336121756845807368139040967622805847854959121742001250005263799287562521261089098358652872651123388937606649576926448568989210276177478829665427353473413095208231099326633223512949247002857266647268316788934173427276338207283421433506047785521500060158155991428204666963309291580147142399170868660319332810813987027602003112250553698641486361092225644906043785643714768543982001149124045086905620174101820867331571687550395698731913732389204583644932889102737016797520270112069080620413208019007870108611544516933434685142622604046028189961255443999079662754344917947717511424487509029641278942680071729140998338932776784640478130115372667306850745581087338082075809847273374004936375918093711485465842812875268051205794389967425190553805281466611623205954324811029650979283486545769989224273157399618779927053086405910241209094852600034708413641041844751474398031002606667299135491537215682625211084970088447488652345730216123700691165547538640486773577550295493572203959083424355232792244846763897488161600088722389695244807129538521352714554542120071176087859167857147851650660604028491695640935109098378517729540917209107988024369213947885833750560046918770399929597357261226358385021589686107953613059323913350156355697497484758082838328933772454202354013946721272548671030731062612524203756137138895138344119848063195588068014923260320802646725209772620188863464384113191644206212849132852948567496045100339651405391214414492797064998511067741530328927258074175556782635727380356232494356566508311508564111839387004203166351381483659540662133327301951116312904380106707541959159824514027304688212995598412772485022057258700051301093888358049879431266930194216280695215665815338753415314076119987837569996953102125897840585722443513202170653539492666628396305722325735331157559874880644727759854264177741440762951569057688858945363630220100299666792765345687135511155098830096814179095211088900740330522655953266946202279884816319895559834487026119624869118162568444254760981034981129045305611296172901201237183475216954929279443817856046677763868454718534905649960926268095620729530127675438454666910988581921692535200832404103432909481299989045624657447832968200091169390593033924246971795024079746757179075261923333422574274813939063749093305854878247859771883647771169506025794998334017455220969192540338373315126696831250134616042237284780615942017994759288677318932329302270800150018669290641851239267040335221194994926493515711281771322464209140536925053935599677470592124815543368682085346160440602383944112018282304837463082709192811298836202724082166621885435872875280308705988803695063551669363187542423464480477841466565351259033058611909114337437671467009652929894588351568040344972912527937522407410341500504042202832766441469613008965285329847135729762714191249533445840062122465269579710351891700558602077404482289850032246495629952090174000548032983288269826651176616931300804670875552334270598569052352888275404536180609740879887918815436198684459074763722180975231752292637304886944356648953528338249015345035507991877350470833764309820151528967792654896648291487890285889215174818591152093725827846318798952076110382673837548751260326549431812618441824650852183825900002034726903255836404322231768455955068656737827690258543171153498158872826849685144744100555895181501648742511147275929812671774170747200570924056387282423531349707895128459812993723228037953025550634762997019176966821996999295680905664414633080977646774377225513883508612933985756957623874324459807236438851864924098814200933352659111908335065194371671809661914052485613991903122460285592239044134445846710397336200632541371510252335834839645453224724899220876197530536023115959856022399479974094403161397667571014148368859395867751072165430527833762219912363055666229244824854504175935651551102638454683301740723843462401363257296559304538904274000916630749403256109735862204347962901519382612188704619212796888447837511081328336694982132931876500937630863958154493049079377332088883174226777827341998906033251699558619234424994379006032225614250796425860977483659598390926101084754426805724322749708716082199736862094259665767049474870490780203315618754860423770017277220699804778137830661926699630983246983989398961738122073501398824724579678873712432220815063893631616372178980804766600966863089632974290532706995417383578632922801385384711161716590880059677347201074316016363538093119106393736589740882723245794270611182259921909909826523516731477680492838855910855668750482290192399544008868079551919933252253166345880898527381178779847323211624709732783820577316713516365832745672046955741103760310615191643158314802083322419555981430070273312999500362498391877854270360112577893810826173833579902120499407899766866076162252985458276518811243397814456838398070683278724303767586473805477356494417679380678934543418063563651043684593910009775636835466120928220920014648281558328389892049304553069091991290286894472905256858353765319919196472080800293027778083251439563723719693883400877748849492349408173493160897772928036371960017523356036174848043544097596823720781632921882599130905059368580426244213182886711086949298736358458631407260328962814292272619319237122032924408371645561447839628432023226232595195826990795460705512172083765980674087446750561200791021399647563803671515389648076593655242090399432159846384248671257654678149878272658841684109052969677111798758929249520780052011585771116237276010660689224392097287830642094407686669144976243015948949022239656309669598693416005673521934704328233124948712024120754458399430096134518308364329233459526655861623124271904386450649546841417774895438647027099634740245775855022487649770836272902556461920518789310975445943266342411437718800496857792329483764372703223670089206782976916020342533786649608601423179410264908561077985599881968421902383922564381322104467651900601027255683947408254694918230565598837978281970585186926310925914897500031819437628149514469389739959026765342650535664072544898581659364179512138646012677731200100032958477881956078964976035464941404176461187402245292233194035832725005735179306685977544571567296725754191264975958939355256458353412933893968936895192977101748339537802617763372416866074461201049245523210621108273006771832541890263733895245011980788675740542648053780013514639923814613511486969295313558732923453785476728046726470023217132607261571989094443002590201451331716465903179230024319595993449058095200411330263191092549400917465822630858463372133192121521423184163048422999583551768245477382684523234362964687476389377530067148335880199391130677389184470105669343954777481879523011959627786200411650384075659212800482910489204911138955668634011339699661438554140223548477578314139666444985491171090919985674896047342835335695005208944133077627879082269903589964710495318674834831586204271938375240926906384603246858625443955111771053912965914966477670898927941112287581453895831405148639908550283348830830533889421146407921581390145975822410645294794746186059086034791184246052342574633822895847003186389677725649101556807640916786367675341918796662567235903381545070018604789868570543209835326934120239532064955368302993891027413485935424650376273249813980263639963935451747493034215426934384843861551302298455256997994830901764374353899270543661301969960681399830083839692470774204404387219180660921185431904549202428637252044528175272843079115796738649239727642981335750956616418833699338778720172850311774973612773252753998626717297333193009573655830445236519709592386004584067799736164469975403863973847391241945961111023798571725537480886738289199711587640142937804425432877261376988332582783583869898465491575600260989201403384423224542675538674837274852767995571633388026732506336055517855403685971375988202304879938300041654767867604622119331588438369668675290410371705169977935575186632460600347527768631102260733019074552729288687888611212241478758900925261051669701252892592009934680794511940558828066046536718284704245742529108148346189978979285436726741000305517029785539119012479266342436664102484160936974753094327680698214035702929257842099908408066445070495031309680321233030051615301161652288248325855791851855880157063263323815995476468625763431107563044938987133777807807478178145713169161027728148338895693435466204917523866144416852650510174799948025528632468886947850139214282429700057141817186258794282127692898064899667369446130014609021144575834671810724857308199629301042107131963974673254456068350115128380584389130756565432722275714834131798606275581106530410131435189207824303551156538601796711763990036402205102979425797670720280798827219066056113822365439021482183091353318374191133866921543594567505369190097645073343465859303922165413458161849026214439706301442717488843537605549076132403551339125488051223442200153585547649369909780304167102001909153725065599701539598648282580395629391265579107756252855267101760970739685385650961130158518449265730352830061912850439930061270350478428993428853486109178778301333656743018864115361718991433386766295517043044268717671443760591810056301211887524972055502166393049835831126725681520665992892063040975801247850058125849832698402957776718237118892208468442063968202752123698921701356038134996758481639453630387767453608791250059379123257730001499162951762372945433593131166908566056849542543699024148156138812365601974333014936665956704361156515142915710947018165231297302599756181947383026851396322170199006665165496533795873856549271160388153789560577052130516865342060444194334568899889689200447512070318789001407961145070354640713874822190279114320022051178744285301029196895247738771244109724373803741768081029357970635124772385073199572500272153169759112713572314447329029350623962941042777775038965839871825488453243732711950183637964533066990782017402913923827300933378069764122448410293418573615340546997003444380562929825871172911132793153670033300405300322201228373046004541516630188803189702198818863523203202228686007433997247835831354364901370681162523194459890388056678230937140599824668528003100811962116506613583626380929034871716871829290068821873522574881605742688890919986464588926537676708226466579861175017138486775391904663896345875088520170259313363132993826187586767201172257930866312902684020397050438316092700933581653881082267203943287041375331769599538742663095633986359614572534232657347361172235616099560302413435844998089978053096642835635051747989240878871646927451359551115900452399970692649975644016860808815984506300576005298317639414399078100749806817662135753359034590850670310031800738566047760523620731590652761622919637053627852093589876660948715872989477021682495128352490267626965464690516942918940424650525799637117304261842722613168253286165120720195900720165215246410110308316616995125588173867176234475528562169062260174978290244157567088319838351591940786607345019465604829242556094178793618758107805039780817907748175887327422314860619384349294050527512976819695604269833669621976463964791026638181807868069212322796799099215168477728066960078507117610695902269935711429738083335309608429977620451564572806631518614380919270588145422933419416465963888475385431816149446855091584338804485785170970827825345620902505571904149765023695215392767371939680334171303257248651336595268001511012609570061556497752290461174018207485880036045710544659442981553701909267898004065211264626074048129946391588083240544296742300753360399232504740634344473275808254356736043437561095930983150257021497181872833002063682295052380079696782342820887122472558508856366592739462301261437565316583330765318796588161031217091649024729399210790747215016492617892814496005506635434270643128032607888923237600174127098554260499992355367910244813574328010517956769339057683612038931650471333234036011611959266204682602284809582853220088973840920556622236358707517585307763080418623585829076149032207183471605865845075827940944017441050794119828268866565345929274894624333164798566672679831394073071533701799765862243764451961336052497434333833999526795916944462508036947956229771922243286466287743760623593094777512310477578956831659069569167697166903859634220557155552556791002613580774150812824130365882463444738396273044208109520114460285327696805638518593044522361413028269243959624166599066288816720064908620623733719809717056094545479545634650541084786370131100957237980419150223686608825158716959494293023701600733499461315180161694909597211934125264785178574299802940903426385586183402830262022919852292978035488312623188232690631426574536113290555076785815504940443820908014252110982057942881684676546969816467444335681471215698388097578245926392673734436748575721984117711091768525589457909349260732667069032048989175971380070029296030857077867397110366385030885783713677245513858497379875801033448202532908709866410912702649263483307249702752674148571053951154960341004851579097328348150619658221965831637921871901634975716950896414916958218488032503049640724336849049858568708412998510204028615066666940521161012376684193006683154172444165129961383547618305753114841054241919917341474002490567710592854594955709876501873655173750546410072441338516092657218085396301475580265660733490937336609607143468061299584726429279718322575673706933322064317966207641708925537185653886214587198729720623247074732773729965487103919350149978592863158642831598396162107919480145234787991242643407582855800336473564944291616895124189149688310256123541445056939612620774218490539836657100437905541168878305576402949360458799504998913496653089391394144737527242886553184950048078976337388930934236174068572629991005003729537265396639041933001206594403617787280988204058233384953825121490880713461290487558053520721201056746937636773163941483359155704927408501507726312374142590359006504902095865275742066935826949282532337708967060796339884595277728048285821014482282058906347757700558055496292192124128133523657414892091421969440092131346262264001596304209379416276685813850864251540604498315285681125051791844554293219152184839150939577163236989339169365090661424594704263918601509908887977291010683631369371961966347231208798663476370817695279495286706327284183879226109201550090682460813011249741366753314939893417880234071758644622441814207816289078963628518893041535921513320438007484446143375141781572814680544013457044871997587304890288309967083723571457390166419643690520838560465903188116031955305354619190519971264647245595035743407781217118685091609406544781062533925035958184579168445185586112265233065089748732383148784713043383796400949214523828242648098199069695698664303138555583779415111369527418489742767162189722530706110525095635861195026730126847823336226213693152354652327338225645968465152774908837513226685358760436545869511652195472122556901464642496116130150831668245298473859067043295789515777959057545863557936856729787988027040097252785926878730657647162725097391611667459929770276487376085943988089070729989077351967146134490650223620360243277201246723912648864556454918521130850659321435229040392597978388314907928395345472571874361559962502150134985023589893894126490362582817323746946536522263731373162678549218350139676813920052552560400522901437671978300667793930805684710595320062324443117734535871934512936933095007789586233743790867796851751800943358794432104745990975867925011259621230887541282876599561582247139118728130884409689781800886573439341853545669051054746848660260757051147759715799706130897398851987685895950213744149203359301330084552728660449007047134960365991495377080415668261446015120296292084519768979992015997640438259755406845718512197810367308393911977895690603476003100429980584505381554114030448053294149419818086124122262481404242614216042818637184999576762714515655336806505908840547045900259955362433213928195535283510070960751606237715880983394891305726501233349275904401442160925429603602292065828043458885661745112639927821607306857672880408820524294557969064165436648391704905888387455774070632206867701847460024299528592568432862562922706048467894648452734621939756410073744931840751814473023969923144892174861596070904763979937486858304393273205793362086804828260866937242292547132759796870682751739088620050595678492075967921909929975543351166390753115708721446765311576516476655331651241768939755200020813370307179586149080685518249014574518183136332776167731964812390848064361559356440277990419895302883899119705224002020974451325230275237886173566637188787542958890130163726819658924075047764416930620420477318621166927848047821533224245785672930530663438289870294906405648361040619462714821362288479034687155640219631535790434790199552770807203948942096865868910836796878891112667839169007791960390577603206191732533166439513073744140096157043674875567470377484699647077950744874662118169850984114884292077426721307785370009639094754714385192826748889548381516781492473211674857433869839118239282962601558558248836816854031575041079525970421170421125649356312384551352351680920552250430970058451199950244844886655674510000872622209064528656755191939218252843677451343450964385573138111917050294762218427290803334083640981453968410739547910307665902458821577293119414279227774802994031878538976056922092512326849701595704399208485389202034497816362706988589904474599017420486426433405336268753103105721183283137855579091656052845811472422520791734897483607093782669352576170441718795600498621014492436818716463492588230130426689030274902413918451166309373682529574150272752041992890075781692903444002853020022317850223034798244533220722336202966113856129572463845729613893964679784652165510938896501078985394777566063923766416284389169987455950413579728538628588142399854058551009713565500358823804016396364246342944234435644513660768521368985973626415201945739088040004842107926333458407902654781993390513051600656018543361672702872812669677907055613711569605072128423995142088500907483395763838109474937019901780172324260768242830851082431015274086757947689192632055500723186674847799416875940782136758814300755737665678236933478001203758643630604863948719920339868148852654995776307517019071557908247936208415266696868008472527330804380144369530925685275613271221268319624822149879054936608007297382490954380429012272106075277419236328942916056371571700821985741921235735039059321146673538026717719194788728578957752301976825088350328094727589173113911890193706162598130807282635355204379207994347156088118190090072088655469065060640890553164093535747810545695859415438564729188572504507381047695447557954614730562640348896243915539533011854207157279034901455555401456955991658451385222270919573711727554010389521725460855820443658625503573930794746445106561285237056600617807077839670303961759188440487844422282980624782473749755441418545687371853417360606110230681798522068969943723713238193687715241215944823655003507334198206723961518336593764090323718282066518664427106725001552910706363881457691025432574406009539276167309846605919759782151068476182001386648076198396885911949653012661714496500305778261452971932558953586746633367466874078229499342924929779705964288166751101849484699059789129153066091815997605976465821952093666369659741214074185256199013216121125721419206957761611809840374003899480032192304807462016396338074746642739995809576561677669776567301068904587580349181205771307733113542580017968154373513649028796079510961165316324920836807820169915182328776162176081500239255425979207221353856821488505683711347051220934512256845888558836622514788277709766174815867701532690498814087264256797017126481545848282307347259017961327455289563716256159784219791510425174788481887545038060877969138237103388153690734608325258973841629139658146025292755567191188798329184352621726944133372801084131366557828267158111457175840933802651468854517605824123959950327022330415195278594824560969097820562211309134382608993574432229985651979253495884187966484031552177721237933689393135839065103827879842058229630256566340438313051885279533040211922388048277008958599170732303967595023138658042090015972114109317967252458222355298622250222198063148604453627110320519755965208218756433162463939608879535819512495695286843465504908589667195981951815279162700652744586040716293923630170956373183123449969540579100276202960057021475445277430090455598711889497289354630502636901280511339591150674608589195160801844649328167708468698241567493391485991869650649392182386428814343713529063667701725808241927846367200779549548772652122786429766063862486331195631740725326212765093414107378326961680193814345708120203510516884405949699357063055201781396715964685834191157891660490432158890241460666944115864889114685353517569304040570074245511846806677491485250169680899541383498431894744442668795523216755519493785987764557098675102630499762668116350047714492608792459261650060049460485535160369790005252610370641601567981829200066385537660400923147317066080726628214176880129125128719425079322688550463228944890819622505585847713090376094474314374143290708706195661171055417644316653130641112486265522867072446140532164780473735001217050195469744447366472464263704557143941987962834919238664660718410469306840108606726575822740731655781549120666300249782576095497804160497400818282065854893758587644582954796877138502997358465457329613154964458768655722261188631665720052317553531800778346994945910494193122627564660551204818823412817927459250698403483386630595015362564519410228077664829880880517310037530774380968149154585997565064757411955309551991620844633617150409145583954598108293976665015103773691651440512477210162980931477385254129337617315758511133570151330001057149549427682077986541751140720943008982929969686187419564873332417628037949991118692710423044961884169903297788661231226683212036496478110549031559468415020934427301137132857419783849610639183615622808588917484387448771567904367426820819641577239151257453495944355855957598817941847972524834745126184967744251625480761302510879613798638132532673531061205234399534185145514371435406909698133883563591616261554474808738364978759622916841831433847608951473474554791540912775554377818261722772162526318564249205021795939375472863620737607511859434830546980567736549318813954063704917421159289749803164658664581516959081745355218433113644937224891205888974649035703989199652615659292670375182940384620059163385051539780923654861993672227880982256005763650594420141935501782697292345809403931108968389043290819021026093557676583311528702590912851156633333291348308906431355332957263752129861485700620238138577094190327270361985091448434302631222238465987003529983156398777493194317658546592495958489364894865823865517454093142711626422109025249999232802449674742531423977991986052925486835745574243836160908904394604101193338310847445690712870961124159853146441088902379331373915099529346979094715950739814006240373845371600118968942937293846146653869263885886409608421930472058240015710331476186639524175346332288929973258428033847303338760568353117527672903867202730553667786311992670440170252204094226459747674797182315797013362293674034678308348325149792555654081420263121865161422685010849485467713942972692888941654365946555404274460333731481696436447190379848426065546960094290075452597436883175483911564060080636720018549712377377171534755319291474091059883128718907236857205626697099450953597538242042855647781186567862275165309740994927993575867361523006620391060669770742278750201548292390650663546178256236198098194443962320344656692108413805285550702952289237348383198225144068720218519835715379699016362172414749066351529295750329407387626797127209610811573082146273678102231719742294474652806391467245606512706254433629531422920558764870486684050411753238120643524616426936313414790013143101313211844766301687358437265307506742057635739573705976162440723689123541047354656558302714955847514839934518343969464307218569568153939466132045810063219972130875990039281715736079220056191950860544272590469270611831311861795663512776256762030869100654336561068503036392568080634574053740728864489515730788224942275079276989388382884586426016012863098343938609556517684626354839027326908720091389317182129899611978626136769529973841190291659688174781462148479839306381236147970096031940077222788775901632085616014554992594749509570348091523558004515100592488361746638943963688036045608951236838292983893394739453174167055328773224788096293414415080592688434929318167141774157347489663668166780341737710762512957764407047350174738978183132423152497377111718796596979855152193595869988639284651086573883254655593352449618882686461971565220407741066409426441778621584742641232223657512220019566183881873019343840274852931777095839381831005953082757145811112850488647343055275112835987724033683268940233141932582000656652021154773136067932881784291376447338563178844802792936506141646485126748406061968452186869227985575750378283460587568567181076479021293953059055359690742097117603344110889241186711465249549023735401313194489640397921447153829028267587457925631130528291639018475955043888898961624746452513369607271236047621469829971752232315530347009620115547681854585135005320114258245721003403213686005180851955918087580596558401210160955032581833557366288976710858927182676900861255813261705102654012978479969331408273364506062548816922133832588305030151384573948921162825140895546243714793591570164978223669480416424541155079470019782820267655485795822253554691277633447177838377464978163553108752549459240224804499219219684012274683115285841193638599222606271925118079321194923486371183809122500759021369492682589763094356922939170414622408425149733056916707105875351287317284380674643088694054658733591993206891085354248552453135873807650794070171898634024424992365667053585878832495179942436256326620500498700437554506162975225153957280412246470974868002675921803075556310924448530158471479325018783137451350716458277581702048581323619322314320475631018540467287593640603112932029056981893790457783919211048847091427881229971811139116972768263465413591677295511821178689005859735872556495084563774301457382328035299192083467626448074838126763819725903170328956404171592106485520774195022316697477577612182172518286991121241036536352648782979914645718988767450504655267243121571672218401551846113930208422442021264680808618587560184144607044813009242915045963495616359601106985070349015629482851285477046023487263216191867140732670310224886327772098693449115086119814028770738911933319620931539748079124841285324199467732669096655070915344497837613466913442686551933836312132260408843403703854657505469261888145525509049617937643482002514562106352244783975860554646325603612488045743607317568825025032509698481661703790869502516755094323878907188169303631376106056850700809338658978502103054608521996782833029519490043661716485731855932353908875099225712495154651650585694767440622210187640781266283384664698984406197549347743286293005619405962376967660246053079279515860364039736471856096883808735016791364037579089363217331950543733906008567460026858694297870905770762860126002420118444071846909993203831243344648397251660684989857714497293021510669816539835444301913752155462293196328857017057415978857590160201385930023090736379807146916092639600287458539427427383617478841746296927264099675530956587581454016932657000054357000989217487670907634889345429631243287744899373290841070530925430574352068466786224729522815272194582228153870782817971470190546332259448359494742302435907353522922668274319616066834485714533802425647506682359886838478280835249809920653797065100153630612104125722484258541830454344371019574248520350931332073402282914423187839317290652478314328888208656676650002381035630490814546673932584188357350930463270628254806630958449969575043875272263503844961617438277335035802283500713264030667054546453815770022225283704410143810379688306947023709762015440686406741758702088648053182598670029659086862020194541625735667479723268048706710212831251885323191681958751265083793708439727331424717071819764267208821504550189644563869595395304073242087682752293625775929780578893630133085902682619661281711737914345639688601064207128174076785241013503522834232009713642166962222393706265405379824720788006714631071275256620745461435359075524706931543290645129378301327777650023919414329870125528794254144301049329029283105809458993314155000402408764595310094375314699903591519273749738041960516838343816842936799013048146713911260135849046143132848954877347577071456439034471167057244834373299260302404181045972296346125249109533933574367912145891594798381455990414360216020011602442593775355482910854423074853316783749525785087468961706207555212477501417896920163562276301205157289010925262947581793828233097008773905958970673774918717206462461949970501169629785536221888132033436178313582253629650441234911924042414945793544907674572123384966677792377979952911535458805245604613336596575498278285823367628608822184180298234979189317845944298996404784992790517809777585927904696507182526994696259093917606831584918586342684972062676878260908741625758852837338141891733716294531637196652113553183435593486712065522315843683224204349447392336990279938118687197101693088645150076941748449248283899445950520478440179975914323447170373615651998190994313331040609687841975446975059952180841503545807318206350530020286471836576743980948123487614261108948653338937444848144097299143764018018187681238124779523415318067254759034739239686103348091679259981091602360571501248554423333890361053098139446894417739578792553048725168495498777101192569201534204529915432408327345191060800440897513558700900885296553365701897588017226795351577511063333246399150935187508133971173746537533040809277140514264418539284288514453577538239928248737628124759195885086466406032973759619345036954688974287803740996203518699542902388360179728372933813391984069924306632460336248128426818417798460238569803723644390648070266788279965600680038786666857422668477076714005204270007765743917592271595827911758076112254694253181047509806120441889281625436290986686176987644088382600227032382228276392672852326031377666679836693980267351561801525371031121476677275463485818744781519106463711924060685726076974335661686755542107609470810126420700253039048450826648279516323165361800852229384432990852890840424995243895598971410389796567936480438475491811307552642486026924787527343199431600368012606853742105150139889897142186846164404745119471099291804542628072125679516542891351710487818456764141705504207396385163503733134383967752544435492305088526815637900544130099154231932180353028359134052006724088813839220886738165693825695635781238836156241599518094226303886374894942603028456192319315280586779324116034693717304211723151811561547277467650035258088907126506799278122449355425823799964951621999199929834133900074080627922150196690055542717785818572680493608219204200829945808168107758460704048057509866698197972808662419843670625833508598940227710785735773696343371632918925506613199574170337551824138637740239856566965125103752866633988022589957329089178534768344256949770603431239740295386844307367938278506745123595525869671685180750980044681473381369665702656416237998978252400320638790557391816736299714144713436256232031089725732771079327473273048500624352871897577034341601941984782181202309439128600310871516105264485979844132736471571816024297623682340534092192432382861257356989477411158328045896256423859575100670448185827692472741362085143893602059437299410403477311331519807202264405479947803340332093098733052641625777890390292299242263103438067438054599557785669689870611142832515090657608763166508818637169112670913704342331187229450491182838332556378651078304660289822622675641000150089566054741885029844320970695234236363192922209083202289745178567170302564021862404234100120193480607163895102796125006068526028440525600395529460190068732746651688502673152949734574275885451363527764127452475505021636475963544971986971410031656959917618335237238781479225640964875133115146668963466865976582149000323191038716748854973830474353006503378866211272890402947142489499884027413020004004080336617615746347620165141248019302616764636775130436733971829817902711047487962244866193193844895223661476408490923782308724287861364425885347550752800230223628157743740274507358783230441952122599956657160663673482740498837746131381532007807333203994475205811384238656030729662870209397517241092815656853681383882124733134216986623298674641982058464693652881844434217159957520991372628177953548255067873879493147291579907753190948932059210784724123292069515708298126010621604734543746914276455622709790053905685844140108164135852146740816298164525758773498348762141924306833129775332909409547363491010511561057758120148840844056994871624701453236891400611306425889825272270756220277144815469672779533819262910679125305658427621980376695872804444363362397439167222524301223298452794243954716115852366785109220375943429218884246921431923823915363583728848153862062823062373295873860762823892587557160776693252026322461473580670179517254657887796488890040683435587191822809492302709709708977490996535549213250709127345356342922697156585196273315850882621898738303909401677260261513825323426106586614069594251136317943514408195339960233019698815323742084092588739520337828327885415346018791055475627588789484079215243534041898048639388094176361556526765003139678894613746028893420309846901917387154616294661518978898999847284588447910726350010503737843777282632965012865115958614743626013189274060480693387976681910633420870296875554520307105139526093288827442462498030112865297043925735318432252672589969174541650185636337082171116910147466758954719572234707274551832372239439461913209348553908716033717985321390593781977505514742133809437859840566626929459115286625231140672978055647527572402631218566668424143850120411844708097579607347444494135708307137557822811248635329834588548176889573486216458610347510161082513278293455787867020043366627195046400257106621238867789238888591941052798913960485026868068128596984602966105491083555227523701374188693794310369629682749340629493851941095120447248042497631167410790697224786919116413345293649371164151419675560719156995478174525027272385683176553894304861751621720768241339716143645819005732119181740456977013638619354629485733101167689136619990249264339159407314079990479871352985410365944698611432312597737305599263981329338518753905440103391382734628556133341733418761110512257141917539569884687502940587390089141879492327866359831783157836637901704392753978231308910579497260324284303011892186661924742607776668603200380506631308313571944236179549225508588514516197683605323591697530459625123521284870803452558231784368704311404588434839452127292954606113530757575798404894591248122554348059588053138134351631187055232512948286346643594906545760570115158746746923600768476910800433268734655829240971969155029289044872940878465289160065713445454323310026952009089154034241666160650978869998785638410957477056689301313460319631068390831767661402746669059778693596981303425574275137884383421348749518232721754121739313647620485615484986776480076716449501384971712637168512234345351286513430941646272116649331453871919553149753214113723994673922860744146223942490029626646071528833042118647848743829212822154703839333820220439518218975785759763317171206764577382788177524959519297635201423653766457717585535859855539816676375774141510562909485748556918008632117119451603833372050293371170736168535950000142961726084989561723169080549158649577593894536771373674105926510007787493433429503077572490585359954780803694958570192924361353849566184977580407622939682121063112932925341882662274546482987516767762899935589258553950589254820724304542901430185968581806739596968251916934336989501654065545804033824638182310976945558838970820810686602254868510899489216193292132140228002959756764330285582939962126565961586492906355915533884237384715276251510768458340433652798850179959520176500325275211167078274174220142029710087661075596667017054612650664655535523753497987923103395949018448322627172321124748939536035737385339574085562789678167848478416127216179046278242284343690591230506880717660097710767999740241664011303045390852478769603772369324606139048363618567806418335736029940063165747491239050295227829401898888865337975908549980622366799248899691788212390409366134537076082461598040442505714099001097017751498585098785816215572885141617711903403394427611126425372368949498680858430074677137389399101887747500981782435105407378280896250773080798164170992069588678999066029103183519104976449849980075344539816083201167102616839791171157342372487010570077360143806768505195033239387223711997143361426552763490979158704458105315922412315039892048135575937021353808357034646346673188265485394146689118687904444090380197445407180498698214045463841205959237168600787335600574667212732302594677542607471866640766014311297712942445652482881278029433949810567606117347990940446745435480500526331514690956011200082370078352823313273972416123284649584665823185554187545447699592477778058182453356760485837374142559477951495404174648583261489481155574730161553797902801060960469103923372045584692567461565762103547427987431316859025324157027087728125058259995546204293091707245327009379663709968738153695967302524305007174980480534865316461885837035449416302486678758830509116690491253044650415764155095657099647850851306133903347240500028586036954506976865483475812257824967367943635340294694755501980857253226649353744159747904172820513746691080123052115172700378637770381501936537620172555708271647549263175861389350828744505125495733253430881532471366419562323698848861893814836648769423472643286549183707342254689544032305248806774421622178333380856421934878692534062908571824678258248569690387591040103433091886745866991632634061331013111778614541281341297738676816409061767756078839797262082213084622909815054173836633261163345788897952351857969560746087655892526583871094585975467932254380970824587621332490138492605491585112075518652018298869983580526608885812653750629336498249986413999509193915290987199977536671234906919143443956750539775839681521923501399145112741529712619096470572052421020080421582923376112230953165429155633862451797848697819091135310367556480470864713818076138402539928470246696393361926205621675887985412706676269674165851344279079694948450027492809753851637834811758215948312780505050994816041568976730344068325277909092001410076245961457016855401674990409931355241375618746100936658672443263066471691716165031422692502525216759951412128343666844049610460336884382227534625830256579882286555344519254473436652027836324551094489477310537724447287164944064086355688821779011589310205015814672130225229730907068013923746947365933779240615976605440334559512695601098914740279817331786149395586766309271905051054599535752488420716739979046566596621288793261561605408072792357950459240689794477770030022614317175635346707344915370180276402539751968079183224499681023527478849300731240507391017256737415714295198867209455673866260278902073976084545902523123872878538735775067479051308680001038366239308455307307425792095925228330747435134908300926028193282456370719426463103119618067111315097947662231761241608748351233472285990276996572184548363864709681082870674863343275155410094705352942560193154035884590668775240470821574461576144212546325172635827856939776360653334547276765627723661691471293176926110182874317052793083492204586359835944139899193974839135706739319952268446716364103525436187709155430276937907169118809101655336817428054256433084078903646939881653072446916770922464065251921779031123062117793923136816088239887931396933844852500385613226162551792742816065395039494872071170723577303912866674570939383686669733474053191792353371611411813936498300505979660528153973495911395196613501241739683533972278978782788421286393583010221979180678656125504770822903064688718426430930940148314866548133685394176607462941809025087217860284990710315202341480510803885324950689000431055192654571022267196816364964197419402927912211230190931148070621476446172829606913245206156037107743867566670867450380423609320500318216263511808963873585126690718288435712374221447019927763668171600492740105784061383388950996867100445505005662530040355418358924810216420813163818400158528723226674685713154544411831991073720620603770019714631499047258263944250930771413195962596734768395655647780646382125583276242512757353583403251224939141763343683374801864617879043010763726681242007523318575790735427298403972168417577236711778964354701258809663762664141457518092630235288827186621245819453007588586909775459812145954293723695917975466652665704438955858613748523188194938697108974075213825133543415922548424940166611623504018521326079893992666280903527276653060880399804202936068172907772837507249795670329657531306119752887823271556173475030770075070657764536088587178069937958412478428291184947543875828102722026621847844164284888216290551133610133240844452961616303229636269721976173283997974932282314528073244549298739507557288478305393513358536880521724742723311433985655179520628089599157234760700555044468541525505040203564101242664461931408891278892586362302409471730071701107414768030686968484800953362488804651819186827034877162523924826953895209445178235965161565695274282837876116322800492809949482430287020654449825551961717644513020412871566671095750584644542120230965356574451668933206208141620269627867568001915560938913183336544323629790264183467537481470805492057739933248703566573030432482451307433537464827517577412840527889246118813831744913524438063195260282593276243796413694610888901707664338202208575899496674421510707826123104850038567490967026206213552341298487734103263265133291431130229680216879611306346912987311526260263795887514843597439138422693673536981123588218041388325451017290020531496548334443932424045566544015364276318629986226903172156649778171667435214970710696832372920879989256323762418146465466539227114821449937852901625714473029390333248295341807981120357988372877316564144899895372968116880038607657374446533610003559083396146466468756905135735626190059139332418368558015871750287456966892718249457273422116665250441926616882933459954903480866560294478265691665341914218130231618744999402650225298225294670269265791198817719693343366344618232030748701325270389218811723477440853608386208899299716874081707021644841919773751553738459982255459181679905475556947491074058230593031947162801036378197159991058138928703618954936195808928118640745318459083618360283089347428900587184069513798184847855995015518454726796508621306485180041773207631529666110570668271988830779682923181602982127349703759266571124989034949445571591811538040744650241637898517676863713192471204552608548428704779906161512517702915818454622014008347519268613712160790435896529446844528863998395109564338194259050265591656801845393279167320930917755919999219283920655038227759066576029823162598846026605697923033081610628452323266934196403487372961737544841352211324992950994843442100900364053712602839865521233079720624515719933771881491782419065813041499803228112774110369925408619177680007409672009659384946901137625603764610354448119140713878041261328680634894557915772163556232957643300606932472505531164960280445499800897847690006810505759297891092161292211640618591344718401962661504566106717070982025954556330557156930298843071531177696781163180331518847538143889613435000856469112737407177751247607481650581834005425061438725167666919953218224224965619413881428320416981117516074229740024746562421154446574887012079351604469237621007777192818660348097608509613156493080520424534448468002501356685924419742009858629366643074126546701577405120275221946038337529220463981183873755018595656934566412562409811384664174345198649948300623582585416052637543546000804311202439999254611237189277808443296512270351434993797055122030112955675804870582411984817457250672790534910630076526811731848550855821236849694251184457369270591612735267667538564300126689987578962730979374365309525504804582319648178919450768088399657331113045007185305607511526178385496783196048129500727662759843430622789333057217236511590303757184440421987202263641330591139682611108785819883529103636570411751328724828878637406657897326801518451490783071242326755036790401867872039307192795443403173580017815187479086065847457271616762805597174455098930439594947225649633903691157300605191703937146094491248210654385871812194160583788779907939555364801903639361795040209794713278452688518524873079863190144885401193358361889020213357436561684717895058819578044521602477994231188250987406398824509424990122496111219772080060126470334696886014909205401827284003524172216836824546071548342391150409464304248311366261241978502539257234585443913518434723897501350846140374343395083463403741936457090771391656487331310413417057096247341322954812356947475344475097820255608113602766596282112986236165340235124811005902705815215226531502538403473682660282796066877918237892183313255581227412796164099171094833451202727140536225837848486222121815700174291116033736502138356422681291634018839272238006268327969666661675855972139089969959430240114223852724269374677139557869660425129654673731136088817863388078172875078911678533587568986259015371700213044920551138125660423213374863585975505249796288594170410542620639634330628924880221127345104677573755775207758567030957537792679865919177221488943460985332550032027101774551638423800248958563974445105738253824295671425643464077916683552480409211024032499403495425037359411361663723363160167585017576478868960560390844336321671519626056925923596841836062922650581844263353740583697261378431789695926178288732152019435827824868229317910007161032891429697545738507927886305893006203633301587038059249006845414198794213920887974314906151081581308578046318826382665560282503244674646553212896624212166926748605212827419338862981404264813100291823835745966863042552806856937975849729783903827597191921476048461481368981665949266529560719686730252958469335738946403481182484645845295229684842206909880572185093692637389328348170109604811115812076231623113502855844744815381677916427495209362567753016252152020280163498305450047189137749519866337971429576228597889949108942526540759042188860026527078109713048112832639018006433668275469488883071839517900167667857573895537028218324067993479376908637276924423828235205899117959512938702114607716259812381985305013578808529601590685795117445616733266085449516619983205278630992446441629474027787972300316473666238574839481399463930917644106652866061759871874123370511831971602393469251651709283084292746872951896361743155271766487681252262193735663469812567810171512542749787415431536681718450948256721896143173929848589798905770063577268109023774589094826530422442262751164272775573893505172149876896271370330621145711734364767116388669720215412786836121383803096087013289947354726463176455417136156350535234070143610239406754452179760134574490261266258877742932966073234808299413310614772343593139428467702051313170538308309433330342810502120983094623247135974810249095491114578721433819325482555795920894860674539668393188251667566066268242173884420746675916951566114156804439934598330025451749564765941735214196594826339897441966589006190170699816476693933063354834050673571552363486759700156572058456625355779452219703184258145785363936304072157747720721820620301772275482376043224540203966812771000446997669249553551126920158750029044708518381326606646972340493897682470458744793676501926423505277264614991527584103371382575215758706199654177600570272616042834184138495915710731170031720586929059524023937600689561990162389110300392486876394345584364007323471904407478881824525099931370305383611189481407910345353965228030592395644992980701547118325060538731942876229744329597260171036123769028055614431956461963121119100072204999462114810354985224388065832829409446546951378366109220801868593670424685353373162230053409832588620422174630297358678952848161813405117248600614920858827640901936117933629422801490466626133109272390485149139943955349445338219163480668428265345566094946374134474644940587276122443711583077008033491304106503501106952056428183741584679995867356815370422696248549777533034480907691611423039506947762633458468827525217804483017909803150990577651438201283506153333513733425018323848335424083963730313304512006780444946456592260028878574415608334534355667217038104661657128588309142318493274873444554550329328045751240635196056908835385738606582707390773057603866034367428202927610156588933544233400856548743868884510043023290680179456069196200570240639969302662065781863662899431093042514697874471186623336565706564130783450304239346784500260910704350453547877385991253214658963005075811921475612090148279511885836145562670229311943165537868920066804756118961322738157220565348757119620049347120072312886023812998450826222926360406334343242279935480523537624119230494242050387323261878404325232447570097545675240904141457063247294901944126434066374638564182705353165140948634559401279679983727630591335910502594723339939731752289980184553642806570762465049296662035911270945491972944297745714791343772385749414516492527020754832280339345580384260886513937676379055437964322234804154152376244478090357120632935552199185085792642417644192069846506781900290002133338258502141356905976137765852864505215480237052143481288002528541476333439653775172379416949239499935415845948451802223442565765152821031825680400482572863304307779123882213151000809206915620330928367401458795527389163411633834781144212839226128327923593352758294982615316941912548493242537982077071481692198375347419520525111330101821323418340597310207188314418031435327838365078598094645937803790032433257711974807419314610792234041908734323986412960110453625559904910274164180662855138658803107711296729404172954019182189888299403224934621271486993166463688270328764455203434210185684519096043739580917817175751179577315070914829467065547835288559109597948525153883631956456510493785564338134300143088011998477248339396373282215354667397528948635042372090151654057596964866379951626769742050209372014504176365270716474335861619742444832243663995169859604913524175666439389940067948223978049898006827842987395956086551171007477764737722249968509305765170791188543049246196253771218105725801983074696149153213538853667160656933186875219963250825162569534854576343941461466406484313153619169175520952483143868794015136399959822264249324123150608505048629602703220485958094545002983235711216710101494249286113440239052298618294125595423931185128842885029648018871567573054585055716464647904970176210415238517463308836476046624792207335152110375486509977422399756923846640163188017231065345109897193411230570186615983094211273617682917238172415606963306434474002476214072808832578008461818085504544883341875641567905590822105928238658255905668126550200789240847142198363866847659160930820254092404078569608461391219575985200014223077427818882547575310155250075221213177379920110651164056492653035617329220217641964628619385552061624632606188126245989051543294739132425190674792021612187849144215463506723531238705912651334342781245844831191800275311068680127981643747627900035658626319268912339530223904741707893079433324518140608578537557577984460817837754522190403484786485439865423115563670610461314677378004228379482361944445587332643624309466001113847324304411368841605987382542287231679077767138581357113020756549856071661406246646986850606412349542812989445999266836845442001704299539472075620088827803246097380877133331211517790083109879429656775560593877392217306734526043899751996854349981738426754368373106734902274023755846708599115226829169252750278134198713573102494044067304983069601834025903129842406140820437437330792257975909112452121706959543000655165280015155289289015322062572785782551828509871764982386542837156085882404991821343226678413723920522801150111734530793896182251168633313317235386298496907002222790635130284256133989354864713984557136504985213419310805352883409993504980766493370710009552282649964508965545494256883922270288979945308233623431796802280033471763800677474629284707485780112762091996819226177100279716499730929603487371898008438476816978220684216118697034492367816328688508427375607840721296687017271810408567433445655878153688238203527127989378637498157846132714605123554505800660109939010995737967883509331124471385334686349874247669734304885543805580714489014214589917036756768849477445956465167136377424499240555413317705749416752667168769848907760298460536394130192913030492010196680933720930868515255856838047401827923268962013027320888156784869486748905955491589732589805520508877117006821122348662914318756030369704916654629914127627016700282817889248338920058803510646492509202256850936147572220226204066937095964134842203058537517135125969975775407691972754325837081093851478368493478210835558192301734146076208791904019441483949880221403169463677219137151083564498309985761452243202448631847384986632988073766399265573999980811925647309951173055792759559807548420191135791616263758562948836112503870736798663641116729793954533726827862527416721230245893044619252634095476583250010443957688448866573993976277764598383179175915158239035183603368720654788582064175519969111264087192123381218046536556511593144007575428143103948305780136488695651316694450845971297132221131085594110868153379588323984344325618069667939339205439642723344571265712211871800613446387485722309415430942016909103165010152094457919950072253832165523911617214304620982478221219640169443104009478228147853555052940785940852813312387452220507971848997788095634334956129811800743383780662265363002818541961866223680372521910122712772290834980330909683154345914141198708761086992597274226738166715264254992746514891040407018264258804175592605725302598332696637502874502304715888541690874686027759707087719484118043416904685242754110374004712280637716651880512177381090186113988310761535648181859580929658660285268902791355172510360614787409541260438088564863853504409105511360425566208335900899799787856288193214572280958518259224511004472646555961324744217186583921614282160531688946105558963044040706959170112592348626852987711580572432646593598185508058903527542795358020651654683853881360730631720381783029385184827408515265769213602915406951752578906314926886724924525145615657587696596853376518221117064679270741728971062901235020793800539255559128472016954564989844557990758913019175198896511461179467924373399209439092208244301198885922386999990219895442272541274133100523109164840880932725695409169091072507793310923807116272966585568174239173806413346291995870195501223804517323918704136611570993194924106644892761347261643439007413515350661007779565937389925432341568412761398251086163926880455449052789159003311488541587346862769709642433899435200872036734930768588741045074048274203917501517841108979490764434858283297389090896017831007669738658301023599742092394384676271817236965515364389609656026710659793218363554045904491880558190839947890820969057368024838325948243232878100393009981757874610898461363006873606202521407558111158824850200557330119207444576988157290785859316063525814869089218952868328143710185595578302883816518379618410888983010423232154836094694443805198031584093607813287776449234351234124956318212019774006483966244093946348215442906225881555313318304706401004763014546587441466922582754042387909893220936466934006478715450140370736065866746080351968624790079740674938654808059363540182659271547660232279233974286383766947407754888558211040449837342500377705759532094543338654877441124468615012260593818732426010864997943482661729985621139205205260322026869084872121026666181619623627998591564109001465505962741625311916383472886447418661202966454488139759676310965444942438697705576712300748947832227901952539300605964571304056201978776059746377835493195481951373202762385443245969512147745439233712474883928323122852744386633391823205351422588534528458768509353294823650677060578359188016395576995007400430582661802980284521941059524521184284561853124138377164590596203837663444859905098738177478664894878695439512056751707321832355099733191980496515245298708469168361946643333796344650734580083896645947572929740587294994082867806716015888991755134411115537810279104347873639427845193650326149429843431928315740947612939082667955556628041274546526947366076686988100863197840195051650303071409380501841372264623264401966301808620952052046017873871045603796695466906910319365036452128088504940336401328687191587438097078340254740634108376469257265989983117412236786147708274633838982237254736271593812163968772546664191528565147590159111082743708802159732468424262365309923595804909439105194190313237882522410946418484296655082437273722088555389428030185970709613523283091347213674148766916681315967210721620443270139874215050246020584543135226917276220910286646418437418301386163521380227225157372372008935678148092857567720693831103295839844343337217397116404726137712233997430884103520433199865872901660994197298469102773289703883467058812510443303519376949389547345933464962789229663645430524624861120400895281450763747717668660261630004774242032880223243186967188601531950916560196357044413829204303648794328413401600378467704314947132930140329037865628378431578180322826074519469639357125866381788263362884322045579228304605740120045140874595277446902160513074242749765904395920427332129679284631155093519830043186477833666650236532024361202928776721590341649931659560068427342152397993571238750219688869175038568221030675939443631153377984794216960601493859226474874942098365168103774677617850882523808934887773255667238930298047669960368564251139982200599454540574403984552951979396127117810954801439505105611240968435785614801467558554775906389013653706688096559383097336575425976571974641219442312404641283473903914952537148752210350808825569486700514106039678071198174873339257634293647630840386942609459834290460637137574051507694489754533835341668832766757499121793586096096679094901458554485977175120544548694463937403480451903121434664810482096053498386999266536375823671795056021407599240030377292677271949347785128435860148279107878768839260616700343774307684878972044367238583010589352867337318997882499557869147791559329922154827337095845202606550709427292309909723365723555543388971424220938932828758072052026376323113488855498299521421700309870737545694492406273675333471185411063407526437844766720801261469370974582222577494730811616203563517970760840567291249532623893237937095448675443762323317058341664221812652856505622589575233435619259439379203418546351948337944744296631477024148889984403630691910350651654723112875025303745063291584280708266425065061840820292022531723915814590197685929485447449836344261097297038631696444815422145166614326471530444798241645392918687118256611423559944675209780350595827272226318615978871446451211572452710215726135677423999579686418487734649659614917722928283270101971744946810877376990203461240806360303851364219259444310795801231152302756094606551800194481278084810743601297618664352179212479579550372981227547825313218690492605044822309531456398192010982959876057612186044404876247690674789918401474442906702352600188406309061926181872052328018013212162892141776302967149398856953656519733911870353219676689487459179222924088204848469678119665013903124198362154926969645274869285005299392368045609138791617216921030711410451254983959689324862162307250538953159169430753952508601246813233827778003507613227184571171138509716903781438575846900640558329166749468520654272406276110232638368672980047484176481344295955112777148462554472239566413213608311839335636366846705019385583765459090724731702732104193738597079544553749155643167224241888283174198808525826516733684840101761053623754024428544756885670812961390592911977351651775746027164004025213193103427435905193715361690818015621886323437408988713591750479914567249407912506702012793997085913698046545408013648238524878069037214543231248359784140653889512561236511309983325689876906784900759892306634095851228755140903751579059474734491847548258082613595138438341806913253756402776676456374387263623942864995661653447762862553024493449477439283662270760580602081808764976439100110464293652738907856157145918510698295816433878782911500345601500243307163877300770575807363797508622503764081466876051026258159305268570893547933270631636207829634534845547615551978034684521820801956290944061066546425963000229752029537465903545930096949415974394974895961178314132202743144732120736168826592792338317121515036619153942734284079740700369596861450488635451724324261369550971802761163381281770606290814887920697228376833482475431976856023635831161687487266741025071272148291806147687097116986665306827650432236313775225652471321941579946705161830555476270022547728801354047106718063615779765707307588234702085150033902740943579848738343206434804662424249263803498958527835168439886227424824228447145221149135898067930040110344011109833874935607965783178464452410982958083281847309201062831061914503018329526483943598710052062423397313619973551267555394206900945715883217952470625909981076490411241681961320500297927032659223542239546838251733206280649046656875726888597440951133234427263007461914025633528707230296020479512386443516149870093920287147150255703302939565819304291649966216698602936861425803933556144289379787874743328265801820487189587009813447760165600556621636986115775097588050065573846646988370515464193865752828125840346217824127970344016624238403982875339805911783530852290182588182002704009351487738748333788401416651462367997374854539235653530084763025464867695833190595113120495028469041741048090895316125230067948281310508024564321380186595891537963567206277161510203483040689957396961256966750558104785780549543906117630317770680231783110833765318967178864831215410593708277157491783304889324865693903903926039269197359005555171199254007377897048732560041948235555159610747358786899451556600995764201965894850578124652757104807823961583922881592484896966472291648707116757863875299472573448370917279117021588640968343638548706459907803434461893892314798911102078698274955515236841197643104754259907383280425377025616403433159690320302011570672448542635839687928395282299448533153590405018797125348302513396574716078470961841651989270783228882920198969217175139686923560488754443897957003527825380064342100388918563580360371456552315885207666147803011490031611519592706313224243078083335984596414203100864890589405887519014941165269159996251813220722509952723129513779157633931021829373763272486664644879604475354521349746126056128654181260262987311316312564421482666332461262030742899161506741229174838323289520636044753805353547914350355080637613625423003439248839717920775318260473676232803974207569033250840312903479647483451400544563914283029769164562290911693089149407655151285615314160139623409429888474880195193436224266540786769720570791374720142386577721032752877124648786568526380420082421677705980841250520943500348321579380294804272074596985869412913183497578038111900521068318596383680735770165081043261917332511804756777441364420699263352280989890441719029774816167982122141788151257315654410993333839481238428683763033461983298639076389415125593755635934382469871126616172367327427846674887672639779779617559521562926388293993237661933225485390449648519512540665261116316350229769455625670539751176862429783821119031247573796231834454916210073959688369618611475059539728542207238019320981623216102293757354318591715071862161399924899299422530345533414406998253007915328756844498678147941871750864052074382387884510208100104317585999876415740627232453902861032268100170855061168932649631845001512985106397870857350757132551536156061474474874399667248991281320222985340233656566661296517492402769052895459048096628975811169069922959860500896369859248043884327775929742654722932492159381389138012420650124136289886366084566590126070896897553029209255344339948604178055852948656868811557673888495129227053845995175697166757391254376950335338666834937919254509874200219209533706627211447080378256801895997666951660370702004727319844472907146988719116215921895582526737702373432915624988868596933365483469455139810499427316304403554811412128022977272670584673961352890692858706345788583642152776242191338670214381637926450600726524266443474294418833697407078831980371337373570547606642961662865246380822059225169258676968261630937472028665567518608293261069224480235078527032203840527174673502943527608780677939888291740594448455880695510086734277735443829008827650247646607388564961337670210186592924066683606655176932733423169969526037012181448447700746184574856462881665778914756651936402144748760033245895812449982550051331977284822482450528885752215020391614980086604960761115187016758076161932553986015210739494937177818045348273873763461550551342104646377314473020276097073535079149963890666685115767242711910364534570499102830006544194813923533315193969239643446914155169852325409563486159523931518059750083234614032623415120487229283196575754486065555587784176860983564924000110701871957714259724796457559515791110644440142155237353732293447287847326360781961701453545240327728834023518318205557974303685199287282639486051099871336173941845042670814081336573783378041207097987706696110197442629469187414872988424062502255932409988500796846598196630806359272745986771558628337838676013356436152210550081576842706898148963962265925163474737666662032965818653690863995435160312577488235359138247561150229818913666836649416589151931535239265011941457638363139740771262059279837882987594761104141548078037464054423034178408266170581377846015623989502616486872522861880203535582391945391988486819137454219726138810963894559439274540749765681517452995414360706581666193217463132054172343467495863378121585945501311425197685949484967223530455863934609346709776804345628380582274199146692901368032445227855312440925160294568486867046073266082012679789521192618492688868306820599456737156485097698710349672969631177926003585204850725294364764497693993793240516007501743642189453087071578045673598568846327461803753679052280955297756946661018165235494968793628931474751879142084099650088612045287945282760672865974247843083937681749254536022632173883653929977691537432102808643651252287221278904041118845040038140147039786701770699713879039560970868143645757144678367985227978083995969630360422495873755251888126398304643032303755823260057524745555075611050177576058719386390566713436453357983732593810051261736177736903669827879730592171456336149304741171119873072867443357057700112055759592674817692617131956261098758954584638531983846956858496632602398562768585821089744405461584193983888063585993850807686681599685410089905717844094141024713184918893731191788903855804485336203406154315193069146702704615567104550934650459014540131594810142623970189877662475435306364989622526668715671624702329317473058605119361241223816718238973447510341959274471713648878304619485832839489479332222456515175171263367712366080990341257305499802106470500262411195345552589942382395831101585448903781653705808434074835284365199828095732878451949432563182008441224433875045779069561647687721103083420027170745705805037576551416393309200259810776192408301252988561947753500911013367369354794723604281586805498870904162172108830973942065519244620044521298790653979468119457009336480735084226745832874460726546167224503879605878355326788553655340575809341996826960522321680050606910359604266957733510374417238470223431817280963054165266853542896205962560879193870802252692543407597795329630954495981287663854279742907364172064757260400176098782781658648996810034917952785584429327693474061659300447609927426047535491122222050505749830408115905413157310490237689389051342728909818113055469761538211435697288636531854855209897244311348468197769747351627331402215715304140546779056260877968549314711852394954037704583821575181754119997705879850045013238945232164202412978988822483745284071042356146674258773953866449410588781451784332134847601424806487875771281360098461739881740929606473871832871687158096112456017229732901236524788031612118116895063161676435320923953648745934526773493431510097890530175559894280091450060922277441710797412799589654208551011639234314029305953734750473605055757192944183196049503583955158500192263223019603700578639528545394146684720564426312818809465208222401273061456029489299696246836857389926253028859870882531084728189264116766420139971141217878452995832224472945521560058415434883962417516719655147836012593937818927483171021790267298495325693470871080723065838734071669143417237930026533622103329915284857846341373327393639214205740130150423077229645554402960539452696204706888466871657107359434476361574836130498753448639594516193989598344221677318511116848464121225081741793139288929660580693880278074237607243350251320046762227987253366597939710954485772547501286561616129847725391335396722941692604120801626950023955535124789596772258912275759385937902750075586506379428766020899492948551526770293725060942835410201069035115177280791870221623918168249876544487543208676607955657120417046118940903270923222052391809374296492076423240305610565421031872318755404574133716802073788072790654991060451700938902963821788935598593551188378529688331472707207857265508875736748749050844021878593514238120206516163313699177676610519236368929543046576007909671697836269450535333656859268251956964984661674365029376453199205076034479637568785201023555503133633793909589989729567354210155161874300256278903201725225708676714757607839455078725260791055678313417728693877970285207662820538198590945849042563598610124939398571716872320583105884885723485780279064912895583377563245883187842109252790483462893375314308431306810688027480317404463371206452317097633578230448388643406714196479050644003782316208438463379640342187993305791528088800795677575747188025974271190951828067934097093755349077249450216776209475934974032599650410300023279840576675355532746794112159539741285785911566601099983364444056841255590401330342450190181699107932016280020231471116283663512665783225311768142080295063533722994143215092987778947479145008350562722611052153784210105592178822617056137409147536697964499310795690248494785180028201576940734690690761441807781128962890799761662039206937341351128543887140228607973263239701479311158390626157349976405767823291365377007372548484284992334929823449939119593137255371291613694319711337507120409415607349122597804372846560183057858258958860849935771681611271094861451018837757901731752308809843529518040329447892703938440546728714597694954336667305203934528248443537249077451033676639829362840144428474190566130174648560104594170775627683165420893183304116649150007305974096985357091810097875710039822290675154271054629818373028813204044422302643817253809605351618361049351017276674502967672190419813776982700429550774437392750184864844041329830257297827504204556669071114348115822030146839144342204766970790960793624958253601000940109801775807666119948771640721693452762629688778838531809887555955136418678377830802718568038242337341902111661553209098761069433733380092258395207896420969411862056819391742875829033404384147669794759949836274354398030040574506923745222449153704643293142585945394406849647860766620684122115833916909469069468319575851388811689729705513641479056600119791770186195341708511634189768255577545858408213888946932779254807653342026515680820267309222702564363445169358000235627135537115862320569813276984661249013614157717714672163986377657728027724919573385981194624859116656711622008478732261518223953395981381708663141166891367132332784735950967824501326743719326389488673639869928260646751594754572968183467955799811421992696458980795073743154953771711198111066713990568425264758727357798694429059717134081817591980997134470338231032232994893383920753366873089730175926469974980302626098910147278671911608309518166566985428248879069667650449313799908324786783160214825401559603580221201253087489465790925636534531421705975516642484437337727262872136510932465497420039010295658512302502551496862421190547953007665750092389944701495873070931057123358311401315096296525273489959540775188029297666763694978013486942158474655467093565577363065409515050544070800641093289363438209402171541009948698924167625248162856057939421285221655702590247499120690341429499824190461293731865506580005950784683983958231246606448213239547892813771206270807644191450427786542655326615168964638028722291250321991212031487348805299297122746237869273025374570366966057105900322058725499411988435503223945726433407635173629464489416861305166366618075186906246442201656167524747711718364841362242128236323894957230243506417631156226404555127849248759561234145192527760657764381376753935990077005641207472118766787424271280006286632525559537783664577080828927470831916573584549030411045608898944502401303078239283381094983296466748436941010966552632857456632806524587012484609298665155129361053647890334255965234021437191689402429502917025917858560361700429358495271656333520127410585951756012743820116324630176183834081331739796664870300880287724954537042984067533067728154593421187285214317896220649551257493160051214621164499246441542664159203956323416639835017317180996371349241353782988852385631119197052097160229484960217794164595969275541250407860200053997553102252932060224314691713022361805479639062877046882050514292347547289994238674571450744452072735243746940191219993849586947048147620682223931869710954309244512797448127398539227866942854649301080847776506042402043480900071961496747592064591842986559583364763016983297696986301746939624899692732095910429759304148565531826891694659946573585175945888788198084827140666123541546256678224573065030826699016311305623494817985444297173933955841153309169147456089546884964096727268479603810602332345296054985851102849999939775191867137041831843547908682724080693117720289022447661028756563971227003870038641280871623111915952699274960082514544236535153085788924476573192348882777677745840658927530725762882965132569175967106340276228001054030086211442395822015958809989846984041715460313476828711977401545065615534508237564389674960370469578360385435979625873392404733023705046009509520005544732312781766921903295745647864458999078326468425264529479961608153021017909356177993169464368351999199418730327336106288755635315756119578549444522051872652826854306274440422462202089986706754337018852015358552300859695511969031184456938753855800553951933474749540559664687468437159274037432144308625801900481499051424585672801934913313919926667690773512336664740145598340539422123717028162502414902731414306608437534547350928077980092030353232969283112950300254671904542781522828787533888732790790762739523806777907007331513979765466334813631395872158561438684309335783683407446280041576550924831885949433261788378769571370472407207261207838207698204381518753410740843541952330275217674571722937697496670414378568577476494686654154237438699232895914589427601966549646043531862813366729050378888622139947886341681446774911043734825279351032495306239252928323067956664241981313750831106088253186382426735893071029894304296815172133670468842824524571314363414701022342706296003293823386601301308262220132135772830533150394771242715563757464858626293895377704413830735501403038558783423074018931274483285732853286535056484846855879510337247984520129435805258230104677647031412437035110630669594744122973791849589784846292850610491151819791099000873553996730696340717989698202934271925707044613997633670616015074842512420710624118406068512539110908595928666838836066354534832277485656404223179676842862195432330469641453914752696365810409191100613798888316993871120899401228099705815352190744172515998407962411777618815376661380808502157046488864515433789815650890476804207403161395696041083831081980647038373166120483716902431411905165233751164401517224107584661082282924638026320505553616277022047989853132953167276717049201023894694767711506445284623064070717055876957504550423316592476358429984448317008902991802166417834314266136977416892429414316588161778723793091220398783816234678260366465469585948321808038512859918668123015674677549791596837077656546414468970279667312593828098180959133373550381421013593390007953797511727613211746403966219912325390608110168035624481001299477068115688361523044102189621214655304306376961555215963109891755204318759728321795476919511093626276062361236136396997954484519475073768441336994797619158928911629941258378009033445963737032872915367817301150287421742839600160023705708739926464100749602506713694245563859609349088774624376274754830482875877559140603837972231725529065921900028056961474891939010340578588211530521047289110511687222067748779921752607130060379079737152050506464504996128774282715344064309900599410095886903960210320982736580189841739902877353024705441675585832105876753333198542789338985077136816173805338127447482634189870409216858162701700266445014855057092646141463983449502953653841394680799876026623995791947545626629455083244132631927024484843534427373201210320700724050809427583151726998802187867369764687921458816426620132609885404698270886851698850963109630435660202207399975339676027629867096066610044090898768304544982241260053998965720197090272332631277221508200482071224113743771831081032589062480418977284417925676252101964282903171057296155403977428465948844964835417584273827259108821931733409749953259692822410802646871976069635589957939532732465067344521230050704669804113793766830600838319078890714113590375186170497146161370516405462493289230192637004026682013570883722028327248673648939884645867662015694684764733018070086427524087713338402094894507187138088652760257607862075392975951426749974271170364947735508196227789291176626151475921011682474196902614745029051232838296756752735219752044469040754301668980276759150032451525378420040043267769441278343195271212032388130726783354137276093229349277909445478803206211235955318878196608705414714483046311642803562572829423309715082646125594598344356514102449938692471306466967368490386105734302215170142387537149347114262059719835673742024712646920053421068408462410203123408490238475029232084925148964316812620685183177968302247311493967675320676553431787208126842307549207326416807334275843335428474665164051095628602768665929032938278263710222327120148582439614188510541719346881724815767066277302092356553202807417028076145895511337558907462883155680119091201328527715958262361852481861722288888447370501427534710326332050380500450291250732950114979174215560225275619823364349568940846353441929353087556006991810590077215302605337663511645692512883328427625675143905515408251190690194771169711858446922636235017859486787220940859258388422327942276907717388909723809549474391322204695237092216802981099588079270454559185387816669831294181636938188326791981656499184413615805161137112808689979192547146879037093411345090317819954862260946093152880799604362836202683096977859925915535767894383428557310671720187907067450188982606307796928652783630260735887831002877478241524919168923313136237246244035805326446119167112822865656756744799079185060940671642101023542359840163282698284320280560606959064186089572886848755864566118057327642541074214977428483902766647919028326008512253769655793471158984866293336260150065911731044784759963013436748023687817868462579014871066395013106593321773989899349850859582127423427190252504394614301462543451149037671239798160260710308533284493659566882778535217744841090395916098181047494403201366560863295220868088914788877737491280642646535376810023234719570541859063182320758183808500592096226052610628535619889353074821882488143851814754101132729828031553285999881956854971875424064766874625612270664094975023708345967296614589148417811052139117343989407316553122862496757088968111562600784851825709702137239570058412056884181361469172925907142432963884029835099052009323260098964188109666127907514752889946190476515713130760029981770492713082722723369207664718478655574195856442042679581444958075085455370852017348854993516931341675393509859617610841419333823974656309169643228606492710614093501937224982863306521893662831812029421322100152209311671398370400646889506749298661320373070268074025248940171421591810729997355924945353825192746463354247412219581132970480461774158488425619301948260563149245283567369978654954057714025179226117219027981192121977607571403505472329065743487511664571875425112424096994416572046170933663107662217001920574083356314955793676271080333823345269392121179858817417603244705828890345966735177138422026811317150105538908192064767931410002862925030021748921687228547739857315467037078155174880269756205359317231558966813624346892709296223616228429492171775645198846225053667578976919244926555981399143506362207232572644484870455525203801487997008822220613263231510016591765880278003528356534590144402730225217784631006789043152763452431363460435277983284067669875088360145494951263882209092308892205488161141920297312662354398160622472247614424321366156553982833167713764927395858582890645881847712315715729862669145132222865993947304110532896361827664298513416189388539325887185260754039286539542527340459172026732452119553640674454821927655399538139146020747267036107909547549338881286459268111710075572371614946568610058866482018239285340902125132504125842804712862925446123847836799620105952891173490394171187462930794340510057672841083490709023680449508084726039577449032457470604267924225014094896785039584393533308039000135375639464743472668541785127382863379902296106061092217447714656042856856135626012046539863255491291578918281400349519758866522867455394198103695742325813882987337817924659157653955244796494383816666442269357266698048025587308110686742211153409332381369628602868798684602759013247015875781563954060183849582742534785767786968693176884226716335083132492675449810689907690811661090156746685635337715058024583656127608835278447750202331095982048582118254318980045166878091432127563139294940248549623326010971911032391231604189722238527632560238326285840506235967868755853312600816504755275928443363962787290973607015763495816669379328973492723269298178295291534981391176210697392582144836917563319951388116303463924381576552035194391442931528627228793831060478625885523029355859069433587891309877205004548329257164101301369738040993055349943119783724746050474778348683924540832108483627437510925631894230937657418436486362473803938733446397795441073011669744748181806747518387113808621530752206649089571716680431322386172111408650046470869063722040243036831161525515717169155981463220787043145135711848778396141481310201820679281629743061633870943129323313240682038565983972697360915984147591063473562742681651695160542222365052577014043998998663380530341440832726095917349589161960308130949423839993453010687589311309758148471730309197176828280710282900939419358040264578714438851890965909800589269344051089141390663254370792556493291119463466179241304774763066264304223048982698244448027555190863267911486078239459120182804186720328754496728729006297737683389443700051759215100251666598554192039808281383658947936832666173848786926832898776434284177830774056154736767959802457950727656112323223831549887644322191684197962885213320252046752207730939252549702719447432059113719720760583898907982917787694479447261212198677659382596299877983587673882761060082356283672086509106348483013348723854569235431387380415696851313213569997783599056497248353411132343891621893497776961724063843921114358960552767486062573655525781082812149865300998563629333760736150743869926583680101471830567683765704238544457630102876291472970924967116595488960270763863485961466663544397838317207424890127333878537061196067634447737158605854299303062745963911940422810258033561864619557113568395181039121962753079343594840951648156657558142238328113058843980663902144026604147256291415711743033078335257449295841611381286537822340347528680670751467766566304175465240305735776758909978618701814916589788531424624281160524176448054667621895773162581742458895248740079780103167123969832722732143097643914298481318647914665210747583004455276827026939528372737931074247987555473565709408332108081116831936481934414238683259250124896654465955735680928448529345715401076605093342026459354578982229286414154261083998077584883675550656117705817889673750507954328478591944921824688576361314557556854378827150040767511319359256293008027189110836072996653677797508542406813777899561961536783702246106844789200074936453512462074513612441573088991495761842277048404132499447959670270612026766048629351956700582075181809987896503092260142427667449678299202361159512999218127884843800424883225431622644387040505780020784890067925807770526446200303629695767657593127976358138705867824814358235761919843576718166468884226003179548000928564331258141295311839624540161988419710534299298413068692708278668062100778890914321837949838542944548091315749774237232134020785710905249923760212911224593692469329220572690543373796768469790408292253095839113725328006547432703034027579765689910783242209528955384593279892013543816338197600551757549261864615967849473878543998826802216731519023015465093391449818079404667328161806944773483208924335922919787448195127076137284248347369720453218697993399772112436207084550495838682226408913755203120204120331758655930081697485054239748668986244672111792793100847785047834829297285210065562792950770502121358950713947595508172440328690598937304239333118733091312670935876980910593826799815490014563963765878997498185280820556987073480328824930446657020215394402904474189507406066869066451016647672581329822828717380165484340624463566378007433333921605012349798672638234091405444478878482583911339463256587271553164825467600143296904011113676346873908780455513018252397394870337662467120321334290755198808072286772151204253863551805245921284243908789268898833135506583031441575175146817497560823244987575134074128367359811010723003254436698951431953677202146769289779819562133796945584978564558220705400915446428251985618754515121142521770729232532648707722111178797134436127879263378998949150126811862427192852076294073098207463077363452573269497798918122882755135962085808784973277850172381552394163006048868340470638787572099668705739641349608243915843153917633678923900000086403105743164203893842367395346790539944823150155669840402611327043343387881831608339893542248601805232019859556910350238237836768267775648681767444587760872383922742981908524362226055324299034108210697855908078575496923553675655608715947456592045913995463537678636597269738181023545994847736794987711782271301348656696826308708933789731131101596706289502805986112723139509941575868007907517910378317259070988081984217847039764825838033058784992093989373565899546618212664366601938727116523395146002978701973292774583467162018601254550756118881504422196973729477828901321366073751327069750697038753190107413509178241531197232619502951536744671498300223646718609633922837392978365748830578748293170132132744758403380085763056631293827737609824321414281412693104490402502835485637115976522512768863322575546078414567275098093565071792943397105229634077344209712774654818905641185061822142597380660879818678979027787003873109257719097988693702942748136357695117597334482935968127826807523597638747202705253088391598773167548995570766342290201185859194531038407683952732519573532312620524515879884185491614106752939324250640828801654173879420213470606930348702732117147459734361259533142370635703598230265455247126455352118463994730752370344799292834112128335063188223762737024782767091350155651198293297637410341990005048627037912364495610375579411792626934535674198997322638017718686355618454387148989547586238390523608988124449231847995852681632631969894101928622373207856046431902543819659260739604755064885956557586515267823514397881087234626963901411580582643329078808036739351071405270815815517261998318426788261860478169073078977751960045730370233617964942095268722041943383425962940047002631966223109421105264487717308503167998373718852354457729845525267581714745260261483601259902240647041981151996359187117645277365733272557595186078592151733300120803949052868383099959864763932444934206228879398312871701274515909341152042670736891546144670561095300277663560732259804320754425271097322912808502481209842832460602185879656723669538200032475379454106476802324243002330379952451832206818600203523827880267334333206791949775844370412801468283833856167222278856869271827975327507023851783361119514477942591312015811378691210798720593092048901190254324571509570541972749328235827489563709507700088310991762011060825278196879828405627959148808341156033336515132077875994321783499030814854543092065117212870341140046745511494244468869510446584347821570276721910313777472945670407993947749427097598153925503878007198496527958152505744884069129165777684128517592949331041417246772750760928511156212073745463581506599327060098534970830847558600962959958491838817875142990904720112424223661762938708002258596227880601190760412189436570600563141761131057180998594106199909003361386471471567366007060279195757322631790331438787206136905057310465894556166092600813540647761156191907078683707897739054741576895854870422924298129066897698722479209151297478783482177169392377656642866931090241607835627648310507691165347191841923391177059512622758953312146388472043307982021612726754154393645478760311129271506957904447191520838155158260827808054185134328940587097383831447834895034497856813762751183919795965743988950666070713461737747013532634593195672184331646216166674679787626128979733012066770242343054629198490775698355854781215191647227630932089759175374368668203048940622111049506766374371184938568379652201171700979173649149649123278241508930313345556912080017460971549709922723587915250858527338270262218673159279455298440411186442062715186311437398478953719391032016738213471934807980048095691272835760129943630245416123036521183543880945585560478967944104412466877026806023721179374258721036246884414642405600445147336519649710390972910094871061656247378530171665912176549444311063029263191462539239077585529702742959774076681613210810524495504469451340660767006303263146204687784675510823021582081857391524839705098542235816376086431132209003083366968131716058007531782610398333479150531530085267145657265407954764248563276456393492505552771057777196727972920398401546746094204856768800294189598441604860945428990293241350384323964878224761714066640799971784838154109840413145235880331914014901350642964166199211813692418894717438263306283164969583568004892502624264576211395963508632694587701475894819673089229849212814108803634759126665892921050478419539324324508294852885264819161301094433354279745407042812734190935850002952485089294182958101916741892426000420598773754548456742608671773317303342381618216612873617380240094945710045710198668702132878222128088536961869217848665615556604543045062208361599299852921309392949633587604590088833521106319424780200635239501973671688416102894595060836773964816306970139765590102308469781559278956505470097277197206839234721760639646975180807557075108922603030332505684543770416055898033812074551251458321097167556835990091711153938232966700434070416032559979772051376183780629226355759159423094787736914676934386266855187755127805152769147602240408377047085946764004790036238158154336370536178601212647290798322686331098330746826536374163626337919012705807219197974073871687844892740115538737304783969451782221194588181866881760293133051561994410732019804450005833334446563278944139339978587561603528216050778357416644965125725819112702303001627129746738622099166263024074457943395542537769067924781745982733060311225200179319388149172138384995964823027422781799944332105727953898945898789333287979236254962001721353982941221507129005954345442502085597164398255515269714439428628043237613278447840940426476761296283657789782432930121975104627167983802074015041171901551122349086040508556616529495589806207532475300916625252785358959409907979100793359982063721965544169171887279456783310378887431893097267039259416021698600082919332622904478914825294717343821975356041488316557582872563016859901763741727636972802005625072037778252637778789337785843575054129821214836071134085230448864203537420289438635401204920703822961723368657204025895411782054671957341005101044474311345032010274526818364990884008470253398645759685114987990820536324113893493305878843822800216862620358729464277521015585294774230701713944240018052876794164524442986634394428707517560351955044841722254339977220474507995816805541659363345120520279944920828237808503513757561470842863787084419890529083540963604855846321759381017088211374694214305028807758364711010936113546334184693428951132197135549878947458775353835683811634020310966452511246868640744815632894361961515559461172516578299476150563129687872085265962934658416881783810685302236330267191046226293150621394185914234919806539091800535437872547642470175351042348786077296844233398791818784955103482727170198905591821735602174080943252086717701670469269799605796590266231694680725000630856810837520669968809457715478064117209056021294945471092879817547540342379613259402431901901403183890168050742822759195349995430466655069070118146837056646642912572982246025792130221606310923162022617267071161161742277588473764082569261878966611435550732460477339267647088993200366673717914944006847991968253507193576037160856096056903015130093408427399213625386805342510100761019763255442101577496527585304804550238701213937232501839683742502546545265758387073675550729554042286707545909914766969532460509495932577618407182395202822869121482405132724592866758673882013038634588922856467610974307730441783414669696743732835832694047668265503180773684573787459133728029002475814904205346731742917871836820030282095581536965676825340064220472585264978061381731355827097689704513793435809877162824774087231832002072732557666794532078493668700967010868230545487844067770829499747281179212259192749539048727174300131368280012703446311272462665816046653113127625124760762595777236229832927762120046808772673334536793798569241773476791159990002828994573085639386729430681736135171031541067212797124176806958927326658736720697532539519654385213403842897478334148344974365245967697215986733519577069420438937387544089792666614065286041921882701896087951064126657172059462236896981651737890919866302419337172325861264852321798685134087146256909360669414835176360073990524509973208270870678581532099750631480245815709016892605284625211986288429803264126386521261796269275601212777072475065530915178604397447422813864816558024737236774820416644911815634944167718033420213916595656086604338001698148997059533225357060996811756366879539872850371044072430488656093828701657529898181704199589389970013997984331302413972945382828676592237771944138203534290560777620409845302476708591207454779713016743318274100403302596757030836598507885064400069906932832853275043132469313478495952642693760064232181847934426771301581324374148570526374556202900375459163341830296920921973120652355628153078859263367260429946184117227398107786372972270503559343642258966778113135905020768237349253065524444076284065402052195419729134192794913563944337860168216726727763341675436452433047637600734532843147856129295096600800391504178476154229596382522586005306963398398655743907134584361002777620082062410033390201720160231716102312651147850531841318970085693347597834423835613731581810508236229082348007547458907633909897000700801456985082999637133499759107759484096264972046033545758587767614079803611974252785959514768196852359483431910180811062287328242671441703800578808414946526894876571213623509879104769574821042285620777387686874415083794949466426125363005829061843114785302921114283868130651509128980857181397001447788359635738216936465301234650606844571395144977604272101215344296266738369382496315482723571593367582462650549813696786994855688411626241706874574378574190197003493393509122327111354456167830103572990439787164202450164711954611606416471594157185072858992986706325225023233151864582805730586254283179223397309864625790593949165182534371450977826777781740834328083600512296240575269190189901615289466890291986154620089637280211809439808213747168731065289269560675226317036320597651097507433304012587153782717926581923158906338827785659901807437532032440758382263885734064040167156399979727870600947100017561405898922132514539299888913705640049298006340897785592174162750642218790561344930244553219034544209687865982046333118316538651380267759625533801053244317143851782747152088121246557469886270010506382412073875423907291268380698290654222287955339920299991666213763859739700133908515469807166726970480791054612940642318827759260048138430781291788011540666111389872189192217382808092255577404854596724981296928851515088981791239042909614857477376989095926792293344075836609456302209867067312663706732115284831205469034287016854106223403848988686930716954614438639644700736796203568194586689916195951388044096022135214300397023772707522303954821393462789379467359270307498952103526752059224979710144121079833960232654931638342667342153304476730789585056964778697454973572154329561322651449390347882015870449464926824466781593986974211011084704250906350959332695692677970747208668684015726062260035830793653587259771327073953376387652484898215033875439570920266718501025717539725817339389950435706662313479111064949955220128185005918735886846845755652332558737303626052538501304298675938525117938085800215814878075720108002694470145411291693850098736460532868508082070936486883544552638388212161966713816922090633866532305260339265125399278707277072827664148904670024122123805408730978599418978972482039158646643625308586228721261419465252354135315149772451736465508712601332675297421764439883359384524464661168979000086983559352385677348576587616946044437322727565537665099582706850431925954489592508992108560755538552629242368904643645786395345270637571118589603496464675712942825548034101914437920948099834110514741329825982974576519333347844384766274399345096479867006191179411185346742205083091954407092778694344245630877635161426720482356233977686006105746407209766180849448340867315572793460261772840077215259438867032046217084346656417846782713452642809844877672223940875697137937770121845898102131946658112549960975540709914237284348269074270375162912923998181319351061108087028961537002021036074113862492175223794430228735318098161331370269676312081273962222567082912070685326259726184447671799558798941761027180254867642618705575908640850685858364457919392707480172480534543349415941562570554151361890694686298456563128807208476058348641068387255067225492895046593923544946127670953949081522358179422296511499015460325321093020176647863262725366522311370943546931131894590703071802385272750860689387917502490346363485315118550800112352549130852579855771157144854333553991352215159934540252602700880639114208792839087873628646544479949961972630156418748727373033505514764243695178597746799575431002599534505612603672692671763257650938169972280638661364144812299039765217907751860571859485907682820641813519487992160643724911801037646087527359936650704346946847876534917063840408714331687381142070955091222327918835726774297806254968351158422858577631933434857225465763797966376156751712679378825713487270415991618274103844655565851333108518502831688795301763998403839569617925039333343376316564576826081980735172285393956905096396493107871843666409620068007575367285314767729036435964761265803500356347563947384691013193191119929213933596078972544343488683449828063995449372537064027830717453216365424495199307297978023330703818169077049770418264961589310530046395826244820267833013137827221569105385655959795033314673877617372333335849202272178855365062211813383048863078226542355379045323458325713559584543656149971144209513604926565842257871702950483202832170367581918626013886203240619677641991619443064634448406770398839370014274378900420648987538504199276389263438840702070123645984164061849506397183604510628681269838266333622655895948640322853390723128844902883743012969419133667493681964534554572041434989331553622406124852441566297373786557405733113186770295775478653614556650201391464689768382953284365307243954544005360981317981933061985045211574119741853038536995099261519425487427966932341283598641317065286102857293529379114124639469676203254965333922289096749364127979111334112860511705625883802337078114934319428304508823563508362088418449480096427642527198520997676064880094756378195233317042078990573000034334491631412632783732534410001443673373265105757328431193678452819774507444118075647422527043584053116992812990975439777155201485232600956553325806494985331476868987574091873904762617028535581742715482512060630585368419044748493043860400834157266184693790703210148964154076051167635121025163514371013438587103579259899251237122352481471948981029458200068394371548798754735102018835425660065253327581561906116789465004181139343383478451742202313204979664291094399333903587577478264136423594929614546667343004565529453885002624709742488080723266382212578577190051049322424911815960729240708417543988969667697057391739704838120965531141048035318558002273731825944278391890600408323325447891460112281620234223979938733159707694527100703941103400393237102674328718129977526833439188898549327551107766294819537340197094268769773578716966347951968287955616206413382585911442095513248356612028707415732747395691404791929850061823487352571741714985298967935796167153058150474293749639030918761777067770534327744864017649638870553996173249021630823840174253553872060902886949852661965169594681762419051777408413511093761096358802335574375394606752997057590822414350117719767783560774170317661001768000133425604414990843111192500747411864211065798073479291295445336207242317022173348487143830949752683454912815776262756061841934619556910922391965460164754048844750171063022521574767334003839920248759822712743958397960690867945638965213039388743833640778079272343900462342545003625037381217559608654709325584498285528661457191743731717009167828076928537200585572363642453433969041069426571980731233444386155473381441211704274553396037390693917423829486927995472124540248146144451180204394896010213538637129200356171136002055428018126707983105528840320076003804351789093822486341646929286000778377911230185519406953381899933250469607720132236157803798309493750239722032618640834136101413516184063841628739237829619967713563640065735024076187789284134714175750688644214287983045452066232205003913879423377287652247880758536980305214500380788686892255655642107046777900419930386315245704204505070797094459886709629303360789961935579933484374007880437058669844485097042912717141661257274288085008220559783174733176254699676315230122683393024461157188610346851343211470049203454207484229777486461049899726674453399541750582028576033194034727855420767205959223251823459582976720096439623593042292497480795651847582562569884995104942667128276213955713777662068412183582504790257463260567803224274873272172564413752856738123283363269940227385456680263744861740072561774939485055144243263886674834868893160838843851865913385392894889530826915805613890603714814499104413444462825815413857723322575795297388199293108214892574206906200643919060102894065451558093971714938465375672384156742748735688934801676471456919998239574414276299940359284884004725972113058799890775572530627889211025259127431310432104167963849189283698963864378893990678953648805903000064209339993615195887266340502503534808274621088763677915357129531924856843502812069573736519018878727006003082124767036014027612793028930936796614989607354887872942802082042361149753142918101966497368158675952736617728193720950751593262096883981252995278707064494648389476471559641697195047279035947509647203556170118476249648576094029535591520411319377773818885243204552578581962123446743887641472658585054140521259880468167979638426011853714977292545819842767879194119023648501709096423329165505773511220723942343108917545932556675355452024490745220816688793147749501945054678995880739922961982825250743366249410919102292537318897608348497487914449037562923867730663895056338920093893806029262058722061538210044249053505683018945627899456499552085399728370928544307557788848671458112930691566226788821667986988292099867333168033854309575466379898337753061768795314135180424739678539309547352368466871723368970621773783125383272354319963105344580814707682660219439197344767365537099957253092746907986203137895498158058963559225943932154830927270613560828267885468002600007959985083371874473195403272793618318303112470628118213364890877470618342723716280584338896156774161604714612428743004053029573435988714924124952495521900563075456969132267482785683073772351495008618415761374776715910063470097632003530056268845949760740119114326898735942037447455060065740786855983916289260506506495433037612740526024423239938400030570806263763180178473209848020161281738277928487436086142315433508786863795201764980645524850235452942779794447202114541095343787684632688484766941188002684350383251264692916318326974907283487146214559407087046338034770230117268208889854956771827605614452216223657852731967553318169752981994804051902658067055923989967095317717534918524629770352973329934080707688477222205965250395736726649896279086550126059119831350935063029269736846520191425081550327301623900477519539347514763450260292642555267470762231148559320891042030347110790164512151638093429402028053342103359019000586837163221805809244619250851111530258813119041893947452465195635458807919220297455127165925827303629389377411059493190591188460389752103262976723394944843380908502787510760711119362134165513270930002975240167188237387012815721024768673388085301892159570659385961186882430607703017999826578667841613012976306245152227809440625845325591517345883950002669480356519174782856721639952752317720063728893902136448396421382487675837725472228822547479548089919183342229731351760530847600972508390345022020455123579925634318178889172436539866199925917597401571000577205106390853151863920390609861420804990858592963856585948380406949995779050722285755997403922701474267812896919435299031072336080687175080018948877937935374813144698910184423333391433339319605035980040445958229017289484383652236872556706733009372082221002300115520485259981666296700631849041071957713488207261060597205257658797069382794064297011618719977947168779212155818319698829611045993857085173492326166151902637085532005546729018770709695157639155576591313246393334241873611683458968247879912820244487840350365188220645048866332921234834195602184393105444180352492930134724747129531772679731249290447533762521300598095849384042368279066870595614714767016439023973356975347887599239180613676655467761662558867512498886306493099651739805282872824135750712997004661822505533961189511631243900691138196536911833897739209061171585878375801127873970321427215011353924470428794269808966148973897423175152165790809966886856629369992912356817583357148601881623038574895879603790327261013012423051813048758818656789223832141747639950093890389021356808063563700039250911825817666682823370798268363120087339141207749397285170777602699871130338611822197988133061440353918713296410585266086101733414850198738920535867538860317675604783128539002367842448334437280293405918005181541807429685936975401685691849709547072121449524593460684645641698914577462698482903135101950165673003138690332242711733632692142711094454009444602178672547380576788873708238215179781338714667064018371284398605582093991440495517853966780951940169243118068514578586270244652531458810263297042015457505716967892269892796101119026236434321673175461569859668093579271460838116370263966661644035642591448812233486122914946457599426681738563547672785527540573276670113967774199484320872765502511527872457784097618128121411555106123355781236941560381958075785171962158508471773127681437805022847703305115215132878087293743129765217187237569859958693403633338294947541367767845318154305097526684422863215773761342118529041209839508600338037735885671963755306662308270517103237351853084573287667457875910795717185532098126042328453607832091428580022875463916895034504919249963464135693022362841065886354110385374296536825862110585275843802144954141405369173190351754998774594843208886680478720574864573265095682470863327500607481904391971397667199107913178950596042962985616914537138225414071532408691959615730468235005958299968775202743844086870176416110821603742773852259184196908842157383178401979746069472519556426918635823907471409169179928647548640151876507776065973349248139251275661464937649202447864409315755120127240736845498136700014502306474565888580311302085275724289877708774439734651846714134568936274712957927532300850524894787081959542099896046998911974692380485704618915312352527834257163628091804260493856819669960647308997122388761138471681517996553504163046477305649684014717092680450309075911686508440462190630494338318808174281181107418045028870256090021904331179711471738710076072797723573962870037233993303607112604135694335529168916895921427677760974666053182894168029061756914854548409660352393226841739282568346223220215503964546338922974909618458086239562540225093985312805795379885980212530950007573297192952506531503230565128680389677594995834640290066139074575620190140514374731782251884149849584657660165522082158863352360516205759008579006110243110799585500943986606024682274946737321256186017272687317501305071970644995665469111166435336822312656455791822983898231330557361218477355272146763628317918143662039832697172891521354413126108350697469652805359251641909064990255917401741680204497104227961720013040006889842870945086873970493098055172114785052647633159574313364345846783912614291563164967632717364246423480624156368754393154594739840640308598968893397701801248837657688206777221060162374843509654131448436162169873800707344727972186214003683665112244707432234139206146339013543269131492010389600093558644770559356242447766600222643867854442991465332002052207112015080816463221418880501330520366219615667308922776727145343702942911415102577056494650591027928597426053602717747208322456817117893730612760951807058644223859293283534619293452155991712033957017670661270932691525165220070050771267979594900404244088776819156419061071927396049104884362913537599703953213084491783209189975306092499602093759785270086592849839118474221248534983560706240003698184644291213106122929616863936160144458555540765622689107994110742344396805464759859191711312347673484360150758538153373790725206925327813240502212298907534464549955224663819678122471482280979338940739267478068481690485862177888943828506755832685393926626184511950327775685163913517380505275660752602220391645494601056544001916819022539674759491876850066329301273946966563043977252372269862929787815601494074921836636740491159850661101960034212711871531868913068415568678592221650987000694082295899429740378973939066265336658056377443895951489282544268373127781747932922171178009008495830953896061795584727607876636121105192895966582421781028778812756628682159828327711688875989175057424167594276304283211715895410105998985924203635957535767836351639015951614658323264648309508466135699414509202957458235580902322808810157148196326860800274684303817406055535661610766400915802099125950284827084446651508450867564783602490869426860236854834118959935993034574652617633535344977247847777157575124127077656801676839265503592325994503515956063545350444440666082302960910258361673296096433335150991855596016905034954410417405593749176457178141756178547939598257274331030095719853868548709914174258397918842043768235031338265046935965136470348376001767623131204353758470195353288458326889494396959491363612972255777991842905661444932990288698869076148683756386062154089630610064910002752448991513431230982651223649730024213621832521568977389215900777655551499379274921366014005879645266962877362078345871333318631437514411360763985156601361850979908396151801177130917717462621364480785647718962664658698843422092433243616839066321773786919708915068241384875705474051876047741036190028699682703777958804560766855906639984260060923215872768228089543212373511962453537822529000553845768498437165961595944892483762883951960318275365588766457742990801520427363628153049017153090782148577264266330638763433174683582069531210721250075009420457824082346076739374927786468368106125088887567460517163041028338730941400859595239703031493789841730919365471631258860834562259555653342268848506193262082066523486854661903364851945257407774358053461102587701183574739996148005869269597567390411525967247927681682631403763566548384527578655209065527851562548147149725251686150251033591061109526949260662998818244497898398522238130481073926836771051480986036414659863351196684373346735053775275582794783108234215403362791949755637025075256270712400328645680511023668062446747683256469036558436230528930460649802842992554951953276653833005554730988803733369020852263566281974047007042539720697126954944370297561600807032397476369500774540142960064996706571476772497572009731312867763066999681952425997042514893185046711106279841988099087008608334469058272896277630138867528039532549321158051845102369660886398285285168924277038352393540542717196334583980223138049846258927420801667488901516687376923540459156326604923031402123972359012638035140496929272997097917156268181644446979475190388417880438252975274305376558031552716758663588623910636310918178553205024597184147648043603588230816105111053259468428555617406099352363559337047408793404112239597466842442259684749980680019324804182285693024272998758707068166276003114605933906322262305239567628425648032626386652921947752137511260974955356041566254309660399700665890801625227597663184962137618415204794600959819544515681061238056791761119242262176393775395328849914462670482050523333097446761654741564382216373488190013555611780956905262456818896505326809204992043808813184688190894446829932412338976079225245184899840431365456862250475853020293484974443145425868295426723908777086784000703853211212577454517994361522925229004151258699790169605018172288439403746287076521365227934816554966038680719309526860010844912601767829240965532296997774721668138648273398600104271039196708893408869949274201223163638593060558074614507451620882603491380471792476037917360275363158056952419092504673793308719476414744408142254366359319966289252185862901109965128346817921214999567711287801907003022548998967009272339788502298260629203604440507251210056280315817079781291550193622606823446162352024460315592767731690635493756681765632800260799293782517055119387643153983090028041826786948229369956226991860872633740491678329213017679906600624065604459584002578866474985421569741365564709050913313703586015066150604222493422557315250208977008502789478805565695825817428574081663777665359291800520951281386736569275352102617215115099381448897308834526429040448332400072285510672059841646250355383268783839481532551432237449402773488467879784252226777525989174168388786807511852270642266874161132752981076435439819844359518817083311781724797425790768117159836227481198120963678171362719195265330704743286078026452053640240921186438076315915965798114801188147677536550552884823551326579391901626198272031631324729445019775978096434330839400109639964005614928302850911600685444056395254538402001438410390370586394034733020608043296466894103490155460981892978916718989270275164181794177394217305643697704541580033904993606058544918051003059144971809270148693612828652034710955756211469868886244286828109095227878110717726343817038053983177627590846293315750765680854746724558630855048707061943646980994893472222641666795137156337173971280634078040716717061328941709214051231180809142071763705679298045036154348712425293290614309800914195338717642240660672460390342098773114450621775738869217175985492758445767198462227007102684290528633668793756923310554191382273321535148069860723391541933640755305967695553697927804720398892895883377203722364195320413914611500621223756208215532752049625798847412756385327204408419137139355975730568562545556108984617305420776184003489572229136405848552242345566559689829334201401248307457043760342329538132127054255018788930367807236321426004058828657977684697320757963943925919631165087275996392335804422739301112307107764878548998614842353606380070249415235764143224759023170270477286410176607616651039241806784581164635295489164649086970944955399891016647777320966329207214985463399545563760291767059669929799197300679611674510298325450437291722891679772834249373237906777046872941851585738489375557624760293080468563773017826943439003945694775974529113405226892351734002335607102178623055404916475473563349121300771037415424432439414643904242908262057960309229552511898083279444919125253728405125678412231216184139893313942740810285137738779856871665051387593606003661472723968951191685815258808423277533393241315764127728953651419699533437029454044615522659309987477219875889788613444594139718670627566512919379666516658127518651153444883182951552495893320856602230544751890156667372783786759249738518941701158419116820595266213673788204076629199550585625327264515166149781139434769499095207831235447877204967389896270818050258338821384185037428653175441639529635636789562102206507596299087676899295984607530177396091898393473624990985995321123656923352079528726862281179642237569285067570121070003387272000593577073223069206177646087653627926861063886600364321543597698982511076767150342639250899458993786448238699466931962082139528919319679419405058326119849457309861684245620253533018761749034232054036880273668434991836580595987743711145794324883092018306215546029011262670823381122921440385495304518109754873025840303948864504346864080271074637713647632468657618783220497680627626208896432306162173678418056974560046458185846766611899678705260174128498457846125923075293764528067212278765143047300438944536879473150997795619089063483944282946791550982931701513913406598034585401191389430061528840861725708810001715665601896715441384555802329746618653630786744719567004043594849059898691686953361673198518927727461311053364231412865371836209639337569672366078317320084912656854532604627111917904499013331087080253706908422417434167324123477569695314363376367277942799591340307976503760947940597479744114057391488533488995495634513230071042499173983732113841542268656118790031835145091927386594538214782534183710963567044612924764511824606805168691388172860095691435405898401413462112191992546176890400023263055424904107986063825620523394927186813905092291433320659105737748227876472285765549717128730894861929300876055645879238129113670296270488855069045720318461896011398609401162586169615672502813417346255769685470959997706638467273390912389784519169171733826288520614244772581038168032021073635405381101979282559746960085642240468436391619433268234529791686104043484162154700651476672153658226941005299345493655506826200376269477862626671521937166373879872864112077328176429046537711656520312098097390409618882623157734787856530767733465110541781155326895857796461180992976731281398233358103349689687414396458029756894671816327534182844781446644288776570824445675281184549332089974581519569281729652565780722871121827478242638088375627315044658971933271930362126370271225696389671048390135415230427811322901828729290172104139184359777290154306698386186628721786710028740914956882927811750127530989273539570583942777597741969043164643965089580995923982581854557342345868175853267452949118043775292313928643439673009516006969974379540262729641719868074634906119665563229833567924516953727514484366232911134194965635283121384737089820884134164007266936032782774881215480173648616964683981250808073122901798030483728314411172639861162946224338929015074103183173007799289503224303773451609102476750395591902255618669592581470209695817342747286083192367354221811434976938874194910880902590792466708862936555053481136259219171251556720327245634494723389222207407271638024218991317926191357005971755509338285375695381035271623121256335772762640201180481912304172993630282325747685539213853465728020163764625032947073549730650277050169309039013941433471663414241748499859807670025405629815205708881353287444152192075519030826067787200854366395414689335963887064877468456541977912438800422514870196175981947973323970433000227015732243488985647705702834694933607787149909631737743762677970312749579557081163106375369309780551180627263013539081248978687133816071600231317662117268387061443563347276148067801274277749720002368438551238439830936286625395978738170354721458431701389578745398254238728447522131138726833638444478897755438614149597590301640547477923930848790969510988562074504520056115205283810486549687966457585156081067149393282959189815725338189117592069997418635964772022074936051174041127140662173052607879219847086368148082353445617584751278366247485637034158105155999781471516172257753473764618834283385442048988392063445336325771863390901470176199567534139907815887865028300681718332943645541944789906389268075393997922438913933197332809397878320073396687443685116068854841250124839658576620534217742242799138225783664301012476505477787668138804551128914482137790707063250499061110794820463913303065059797365922639124356255583552211450031560633456446313481058103568598184711022246081824179018939310031782757335147462783733082198601343380667762626779566503497347773351952172112858082274148255865618858812989730506312315416359579450750928187808479486007032569917277433219949982626712154587815336984111779755578604536080075395044127035373933492421498629535758723660354210497113317699427756475968419861237672390061253896425446658313974117790583645082642468652546257183434977218234214324335363419807695257887362437973438633446724830068661752285703967270054950576517598484670638597808354092797529390657294336827576555970191968553469787471815299970328020998588499768956542262135037822659585979148751123036425745797502961023248006742191321715772221377714276272294784070027400758853112131989207718322553739453768500583188147849388534639798523052713920424324453854109959870279494215295020934426068926650876873440257220763555037585037248255220027938555997010786517112332017769398958012299663453998839035213944570038313628137548872486576183128428283534921313815223508808336755774982514455526571250200042772502739789422076105693333739154325499369785596899223915357604362727122136515817092822105631857000639338916329471916357314659240313998985083137998418216833223905541553623240173405072437463883008258353670267883201711874326168990984165280583996832894895037425121232795937278933236217962571298681275724192894064891269993243654833752124594518879906826332115899547106843506279756254690095052891863042849185268413520703243362443755433139580973051569272188631794916254835366601381216722141525910091752811775317934403423006339305628315365871895295748540118150034625916216907350805890196700898972356439548459438098595760899633330892919979904533509368959071838273267297022683254720242771565110562347172125580236334160277296170301235997341677404368361597787445986324315215216259946631090171926215500777543493047603402095366523640019340334967276800651102677765796544059415070982769395350780647465201601562504689251958694791018823460176506977647510358414120070396360883103049283562492280036379605854857262510692184922764513715221368914364888610598255402420838088715634800511579225958077150270696946986955566580421658263179198827912431392052693585448595973195856055723786295349233017583039085121817568797651417132080893292829215255598937219464442468738244652597558859255652356580986627931729232166456672706450152679857162126151976818005522046081080467502395128052056908621099546952849640477384928976207522613228278602030055730318477215480335788471099692752321709542000536210057596965764618316957892265403153106307267904635116257859537656290989587775551390860877578347126025392352972250415912719723155437518106132060599088114199941580360911601464188161426556305634982168337808109137495074597698595942568997255849369429004778512406464695249029764214452183163329007384491732831752462583896549791842432058918018984222085843007934893057751297435606921141000957696147828000455732915689674453766590303035048247300900443184079168452011311416721098307400445683775277711352055706587086385956761739023113994903590039995031411734386939015435320399855629867773923819321376322104400360386445191547751797415652115533245522256974161284627614489313749273594836689152192755915390348002223416661609892421809709623108823388040896103500677271209638924148120079589804158536624511022636899939962403100836143045283701415496782259981814490438758315056833112137087679684652437648230924657599731469105859208477649417416260915362473893968527754029809643079891003596043828583302028067943489632206407962716818330665140615259492457395858891842600206992691150540280287808897193073263140220468530250994863802810591402191393990831500450054657658593319230899874835810666205400018543514665288108267209183776532042091662648608583603951676655609928775459672093463473644332363607052483378011633679624300973821405561193762463189005391424585101341764565624507638840771352385235952686253642320321585129871274188346059186342299864812655520521315110039826608438647774568578402455471031332837042626916304191638477412678001852930390649968389015531921334597146001033813782804742417860545582683458304290483099535956223034489553635001083687265507658511464700588885471115317961975838153499578623328183546972898607207669748244363846681125369345583764714954651783014526480274338425394398776033495863996021362390499864973658002068221983922915086603906708744358763901833289506587901382471814789532031969157123643948887879404167670135746617720052005866169711450247405497973733121471274451019005364148280624542140720736301377689398386980116606525624345148379121682384145553705246649203686914038813637338118116613839009298118971599256404048044294635521486745622274981170114684984392331247939840433516299109046623623271690593356036136753908142622455637180262399582428356034669648484780153442946454868499367402750688625930306664825385748542010370971913279678332758065016796652182196889389767718943777562525589135986701679585407160866378021897996966374006937803158390924898642479906266438066679642103169091552011384969734533862974826579173151689170352234181898371227634047018501679913896213381793536039797764166375088659496315792517267210172822615259508857224333802857235258546760683421966272149911866174665814741468442100593366898390004908505557334409067592184016451818212224254796346376899434949813580951173282788864459304204793545407203509710074438857785207246884832753303566833440434279036638089867546124357463689936963728653979633457948014657544982085271696264868849568004037032859835022788626084832262105447276947902722824973099430301262132746964589201791421476454673534999377209585655482522336325612760673047926739828082901104944040368935584488317046460109222887675244681624201644753418697565523744450959514313890801652237648048500434092632274417242268860302012727659662127189259289965301422527840396388317559513690905128813688409562044652513457793843479670463850349243281597039165109970001338690918389423027479656276235212058856051529504817418896921065738218869804139242493649925185066770743137402942106412926323659247784163111653183689274946064943171412090212818633297648804464489901418142551956072541253617663951548814227591442619701457754085588264019210087732193101100558281959247161615575535035531988985001675672749871139343557664893447370282144282711266747579000689648797340471630809912692099598807118868616525700739318489083779453317361123856625864581042694155925758990446034359210103713501649929074710296207857525069171066926133186116582917685449484764770452451508288016140255761554265803708342849210080469820397397993525155950645148207378709188924641818658899821189873837321231015606986123130048112848761090626711054113902969797826639137953332937918503282327651890466167306024973542029538030864286807674871392547042702816076450462494595396159629067074153547934908642858880517253465711236054638185345387172789488830833740708761059425215610373484500158400115332321499805330263892593850092352368090264316161921623012554538376056385974470178981836555714861023581399748216013920420623673788408176092790603494739349629826163111230245594869985848025097893664195700370014546060359585427558409681393161642840206811848961980289017678519774807842431573999432222335215856323645538082468484825862513758021326074906804935309847777888172995646976790160768326717780697226398545151621963504158335227297055772612566384478091344841608551842318152310126225275288958847900608459461027208885284435844351871115114186966660485744051887943954523772024283421468769455762251920343877006165470529144793235176801383187746405247068300798307917055595022655559298585209427384518656117586416020332543753480992453426275170491967886438401962074317116301006029146076758049422602518629416366634834249767053231167872021592329663766256345921433033144326183781872783545256651152366131310304183743400566729267972765827372549722943461731897481304915346447490994708922718735442085873554424360316034505089991128841773756044063605691637814454114038167477047762733708709724357917760573395885729139555869857632175164265099937407775081341119177329957499537212659358796186079460095375027940447839260247145372108619364459091051024950059946526629964791995043435234796975936206871702939702385100548606377090706862796756732398053543512871869551006557252968566336515573560447816916571107021942764649887736851630974037728222630170186056388063593036171947898814644095768472557741087054349645704896189549359543181749997846176000735757263460135672352454218877833423691418279279831924865586900714124763198493186838962359170603854673228090841160315980899241345195952003230335192383257475456138265716720670393324086017039662627081574230449862297216686217478653002210574178636906618377437338703281773591540079650781444098153852579521012755327442354669549284601719242181487290498732851470765024254262658302762416566545521021113803995796163439284794283329285573267640412392484846245345025358947028817779119337473903618089809677244971852002033436290431752379697255373452303470959108712724745337425053758507802710303086178476949148508222845085925628955462997882914551171586311046460680422972841318379006436452151674045612175110454827400039175601970243791268367720748326613147822511902779376484251808815489488178633621155466928134623652051116390094196425618995295041632848892780687433028537777285815664103912714844960974090860630541366805868629093527236751227039253520842030932945251128270269178726634355285174753831994839593000036202358204984424020749491527203154082057174296337352522298708882578735298364962370733670640720579420915536848482921763412017247202250078702391254705028615754670858311182741652155566710714414398916691768877161370660977795885507562856665881171958138551370587095763112352286472147518114129766480964474158517456802459133349995020445784229408954281015905492923981710225008101621631064819246849310414227938979589965458560747748942696996173168450180932581610404617646218252840375598258757476483131535382619124397691931911814094985711890206315547513156261219222396882964936870961633382349851157236887516488757559169851326920481871913322836893526886462641789587041686553671768291894957126720072387111551572214025444099900421271405067900821264235724227576771738520655797771023942798038977929741445924566070525071373629817413323303635066297217428787306984960487226525686601619670794215894153312610649449487923092510181692445023642490263055203787008438835311774624605878621776284588913354483244323593076062739610675984412747068253788841311441232048637712134690815872375603595465793821771515664020774610661341212668139483283958238647519953741570708137088778612498420424339835346261396969565526266455553266543456314481994841184471339362360881280288174789914819189385373802241860326897817642418789877303857124114801814898300127520231519382866502816365435081319144942454756674142884065813116049579915757947391078370100733490100221553224980117194976548244155125472480060504839643956450847964352194241156148725354431441794689600921806806947843764078217694521395665351386234730381949369764877189366419860515913876122803835842672876358851576934124768358606812801266604908397112514575253595978764578606712386716861891923874648095028234223459253035850833884929843118245829021294730953524259700940895735106173546689151143428404737397464697672830701309234572894173873808047305143518608794717485964842067496432539197606547543089000929592348923382908988599491457352541125107103665820548367657211478928511262140355713551394517511540017630035526152100849914785132119926187385871914346951979845801162143143044474968020061633118080436499786579648816118647091995898462692594141020383349228862273176777794518146464754135946421800824320410874695006843392251161457427743464545594594676944897150444952321657875237615056997882475795520422925630840430796745329677505949607854583316801437837387840749387406366229234918155610196474314299928038426561017532083026534184698290660447394886631912171529138410551160482352847934722489763945404013094521887007654135503058917452095246383874724270393842449272119070860334098509447638611135525586481801174764409926356036246160936210824430743685925420287806628904839461342020664209614819140446970847171435628783247793575112958067161703772415265781135623053750871220689367318999335945413014755233621858266650343152354914778939866720495413650540348458756142774656144948838513292927024650187725531699454720796893640901903688265552924465977940477538973893382707147424777727994749699744700642122075769564372643801979206531472492081644949509856393875576561332117236860891065422825658638409809307847195919464955151826143198329532656091727163069967750453087561159895085275498983977199216084454997406209260938629071707916388851295068261868102591802607736251712811702697204912597138595670009421858311378924965876777214817856297823423352557124823727820237449400118229067620261973336433047597233376339030290505529698035745335550558571411833964463029301749659237582733534589803408438061006868840133640283503681503071558172493412058116148445445288656512716475255890804133556098443801247828054492951997061384784780335845860917158103210689051715832859458982685898326864453880954347593984578262759705189282983067187567780937288569670609900252418818829272388538840959405150663224811767645126498863604189400936372638891617995127718918630363329906589173523133919372997304230821940715615298186687731260326264426432751239014669259721487082808214771537846531374859067734746140763708349695255274968912768451985236267292028524733689098447092078482526969301686079579026181915363380988576754104995766759659412323065102515707423642155280161885924482272761209137659655816729670312414968974699857556180019402666712616735078563379127400229075114567670658531181281390508723901374547382349929009324970121399989133909186683338781041872224528864218022940136631510216590308132908761308006139928183088044326351080124447520620755128491386103583013714505697064328777306745861291614406957110786929684559374096884192459801002818534200356747902032672369874054305584972787148376433094095653128683718737282825264679076688268924457572509239551919008261277728959494572753495906722242756810937029682610771559819208734707861513420450234534521538988251607997391569368179477464512104109434472290177682898462601526612153183312593989028153647505418112417901011194124750154053514335377725621041332216603848558026763449593631353689860101492214858126935816620173579939067774871552073522324130961767455799712963922276466380772651944713724979524228200624075758960396928516277703324270940259493177840665625493415524701121127928717692385951286675241895081383975996424164738161858240556175615970634765446907181325837715789756837034122531271682355349017405595682918345452250093323303246555990659910853250632210916810899500539638415436667086637032466365879321557965427597903001600460591529813076055355013343220263025804553649862023309908478645630339274293903041801448331995178545848852115428732754186217597412927858888497638766156715185532206008534378543271051731299767882093162548867400436977359567074034911803652863165535828704653776009970538885742843491558296669520103696257226392554173786462114410462424339662107831935836218079643313260180797932186824229515076271937920589352935864711020701588032584807707683486644505434729903974616679944783853041880151060728435029435049107265906186797606835930546224065319703854713773466614888953706270726672760334297349348221363200600960940270962586358734108549938377760902719576588159548621757436772498733178575102184355064359751136920849600855605239470762238849715085586250334410040486768484814565556521563773915539274330936766883674584102823194661505504496462171745059762873671050465558585258371682073029297434983487141720311795121365864845683303777460979432106340310554329779928989532694687658799720612352473243081321523068205703558615683522345874896172420860938439803368865756278931458046413434091378703257394630348057393644253180166981074329725240924780114921047463855970565122357536057098997549249514052747165524300382399723257718248127815183799326698660545574041083568179549017682469040761429264377872661026900962248055566121997666554796409398764973732320324473750758055232092935060695324311846334399895514814879434872832306970441556809416441619669327674163231944147892880741487662409973347937947349047834997286696592763776993982870502934235579346001713251234410811296805881449538353455707228212127428164990238869544754232968127538179918241749568488877751990064008709401683729748062408238814009684735279085581154709687861478531833727966870984981602219337290187815622502911399925890309827765522683169704784266873092901254635489877571190382518892920382331877428408636592726209453557242674405880298069820854536735512030386151067124311656947038730490765877666921131513081072760837995200043905322221273202937260644664695870841169764098693971933347953485708168536192327415795029285721269316838869871169620124498997136346438970067345739831334078865606872833172206560275489128200355712602132640487184235324794155944491804045706657712107364114443384909542118695850804678955967967158390243304009634838183405837738438695947848168349368143616097274148725633240951402351811512262552001272631665226456369725569677376724201551638850038485589221074581040549781753054577895515297932536334265060319554480643775978898067594664052613409611118228776212715256594155166815286217965799683281683652232976965795475588466158932266205866678134484670264424538792537605369085022761132323598354098989231002199486831714361689216615921938943286461751216090848568560833064903293838181010617483169361853660797500610200199938051268599022904280214912671806254971945895847849056018530961377652878071922728018472863073375195997969885869136666510628797306458352095434334424958585368699205788592025643734882952554688947652969906912962751945663414076938005984754271256982501461226517798130666955852676105341787865226901771910342014960882614167209346372466447272666783721699222842650093541595306112062717305321515445278902310385313639778070742209413208178703025839641176862987153278076242445739605231139433804484906498392415100215744920571597733585185456036552889261948816852711568294938960561764611170155091353111423201879273607787321036032986160730211921306383352948318518638029181458340493134182883581285999122701729357624826134255041586088864259227959998486769342752381414170397722370984114487646023500039006124023270459640194179621376332311556581375484440846425591980862019018226647780258663527608176628331427681632352510900218293412995301687414256182554825704437614090664317278520540995337910600109072583769166897046561617066290766032972998259038289015380200685241224554928131086001989769456358440204941237658265421606887304118920288293610582740720032784639700245853673988748251659107559921804757046131456351687061094508270613503404738671388091588773997266731789332006490982968177343936785900421257493938864026400239206020850358637213674928323418176543772598842333182952086413782621629829392672686852540654929936238418295633720925052595060910276397286451568214867917077102741522556433970540074836743114341372573999695420864827264853935015827773798825633381889604652532444236845479703841385545948079748853897406621054317209785192234213669411353551932030746164094568069201175656509824118984811444216962069750758926865388125782457341894926159467155421591498903254270050070597260754733599465005050055410820759015173368510488324456886282077943854360689342280550078128449261380577803115713026455100980215122199600895743364657370907320419734473361351055338626779443680219731558927309731704437513428068324622743491254256372211666055504094768619192312656446798817377146660865146250240872458767729583001551009742973963275920254712339311572596773127109464591039617119573562214132644853315880091429053737086918290840497700560347743200929794145646904208663920886493380341170857520136949971013400266370057015683055670113625760573511908275282663285986740489978881847098619837290632786440151639488579260130389653864614667289066539872188745266139024922240289624856430866369501912443671151276128898982620357790655358993382996441056014850062908935981090546113060543008576946607122497749679900422660708449177543970028595718265229488326673438492906471567939011889683991387946511699633800959337141440341987678146719042030503420464966763968256986744603285305340028351068632446776376511467741401289323852894367059186355291725293221125958576356674402972135991194073338375957360839143024854646042047809902677856397791011376380176033559778239896324784774325359092320983785170267145811067949912830790835256417819033134057000728163526912763214699090169478270857216128268394156610424124083940523469426519549232155835516002056582879048320253385940711950600352054742160882539263705186500260362518955575956267661056014884522612546028332265035090264709901941368153160584342413127475202115415763367012613093615178588336274861381250763100029344742316503560771960842662316748938124396333562726252459371939190021334430086284904889091468599662149851254747679769364695556895568613580248705412619748320188990059046468731542761250164978570212226223209530933398306122146829272709364669814878308114510845397342885851799712632234004309903094788654423985144140535594943007276408458773556594404507990643886701112698809642346563327175548606067221964971508337643093251005822149004972719845343775185742994794104600097596140751378955951449635953638975758191261679898369265095430180362946603723621248106400531134373576654721716281416483714173976840570240306460851117959965668198180164759858020591353704082374088542858502081953202194145444907551886059615897653210935805289064667342311641663823197209468091802867803508476440778915055118584691707996864373845447354432277440559232015633592912940418853848944679372291227093905638263242009195091303895941715524680694954247043568869260014393993421979634045113301039209641981346725575836202585471557820150722779161386382103388137484816257996886388782240604264412994987075151403650271562986186787047680373735599457803266587600554110103323779211982274152779919433653642750481947139876969864557097477048426123145742113547386274722867973372931386502200719482207759396348702711460031110091046574426729803818889907976912983580833018431553345112474036778974791814958129286326441916879418317110341609520730579659670211303526327372292371396632747956396587341821533378048509691124441274735362622930113609419963297131167842883503119750584703359026070319801150738787060317056279969885861265648987377159691216762757821353246963242011350380571688235031910964487700372374370433241639115385928679559641395017327708354888120987885652166953694316833214528326275338318107583108056071413903311529660166331731266404598373356086966164966663323252861705774468665453119123707342400686374478349617938370015253330460815927012771836923591235169401360052926779229307549627537898707636143565063280804609714568213713431870955927404931969425744127592068475353585801044818581771971742574985961920983386762681020898406995084648016810518250428923063367431056475655105868624957683799453897323539582197671268078544491629663493652040289269647361127024194704897616338454822037942300590876608879443060614462317438342793187435225810409641514470497980968224577559214761874769861079085080518960762702079616014878001819587857311184281751748444100486389331410925493202960378265839163256845881749956128916512414975860778007887991202055670333390144833438983357425305383419966420139450227129454539062200266055297604550493489868967900409671793064765850083148849919940277755642901517522094524077867966244675683724870035251095930130781199804005139435822126442390413402550033819123386804861024495691372152680092372360899494887605426641317965278468961892409240852899775712928354278105492609654806108479662463247437560712354889741637340468130570439034931617132752135189722394702099670465847660349968846420637817834848984161238774187718304637383228452135877838671303572593111904676903989090803917359541345687482608737484321269843393648333599928031286979357845946787147046209113738207985118774557554335471381401632558958189265710541452379663616833896263729741007574232898457411467430096033010683244679351349045051020418945736344763663474777700176448424151690515991267804955947289975848460867350607407197107908969789787961312814282417937847789760835944770436539962300876948804867870391323363635586396198032808136235109549917843893285441695788445533688705675708452312558405264314324944357409551354598289428328451070322168989865774599227424252555697288588197633008329643772474984869953515401005262424314160024592384742119235487366308044382399318144606069849608279446651371974730815889653765927062243492335943336088923208848552378538682745505451866951209965301608857427003060812142342598995272988134334475418799301553381571628771705792092356484929603593626001198302938131146193301172718070099228802818668854176414605767662308780111473982172745066423115236854065479907677246693101381698996572321639859560218344077315994020858054751515770809433244822748767222740152255193195184229863127099768709639371423294117292663840874884826678529609335787665348338858259350363757106717098550639159916154016283377055550459221745778962141933576687939289591535545148300090245392639724532645681634936626111846858936941649323203208965121916771615210065879503901214280418783889606858540609036858036122717919552836876296923665814674939581169004034080169467207544975939424412691556814983714288423562831475693364141974454206983294045516162254914805965138480849849554008011802216598163715225918752778919233412031590595139479646712704389470791934701541042964693054451487491920535900611365111042872983721624342707345880069977311474990902333354869201618302386236062371466138865575047288279670206332267477237177763440070047574583953220957624849794887476923698957951703305539818440476588713561163589664924627913140230538540531223773443032981784896237932257651180551241704545539560541371213267657578011393895544676646143570448241223096746366268060979071120782528232617862926819423464585061442125022226020103688524358885494901666233901197980614585032621309374244646441449697935588471182480172060918892541890836662940907279385070333235139067882837702984439421174268906398237417067624420867528415072537931855181009190047158740658336317467387985506885104041126649934974505046527523324052188602155075192346941558212845557107794381064609773419027954891095050171579860961470419853137449894360281854273628050142472731395061809462513771074689615263208394525091527049279933741070249603887819123383730340804641741512539943241642619445820504250617494815869082553231005922745158848937909873913424039011939826083282650128782476338288118492427922395183487019214089947749212865458330154975847467772250669833442392788105505861355534161734574942368910942655910276460023711010516074070498412844955828973914899563856099073478716753338685978131266155008515122431276897459969016029442492556192937278177314163247461595542940577443066989198126510990315258243963919622277750728426762744947783048297295013556200705025110239008549714601367285999405482407760336793402831315523117479786607112174433204651702965820862764668490842877301936532897696923126802807817276974629787713166064141021974953254817402005349945292140717961917754714398487631487223325105467592086520885939588769986338099145793446401178575207209161328604467970637781474059965247656510881347077646419410310346006319949806797135290252237609870816033036151385698607315187909560208244996534635707214494260713579058161373373738554816998557219102975017192002222914062108491819285321882846601612613169837272527564765871344880469421020798032667208981558684656455693172262188049701869077659604025738961617811122855635932792464328897345382500378696818707730567214338356177601027768411248202836834891374556887264610069919510151261570029833471389480647915181895561403199906117182910905830956474580791168657338268071193145681171840791822405512222533114598470256242412550399578358467667833459636997094317098806299413347923432073978941063235027347928755239910360733406271278451166955549533862909946791494053716461951103139951487271490440614195962508131984723488340612601770539985035441293453054622777832885811380404155149887735888822119268928366712473721762087206227124993079505881091171763316476758004004353010884288944504147853135169861150929119491483231749986221730570261527514223348468316567464688806622279076144281008011933081152804849102735640877511677485271329768325978685212258220133635499657881599428375478148551203542391677874630142178742061956167524777828583391224525439905232297212110467646235182874519002818409654497537299793054965067205019907727220351398775322164094414742916815607522572351672538334040333099291108461565539079911610939682427824479521335759958682734624536284034887500011572746051257848721126568998043755577719780227831717856853569857931008719010154151223283914320908200214390794865497424023416210340438092744891276973859190511136699204178891316996842966837279844738032986371967885101156129417024227104477620830359017587096604017900760690519782045629970543396603644694931004351114359679041927432380620646359810988728997553812229549746294881013347453416715023769865393570492349469173357366503744323597555774116550747331781014450882185066488859126923884100940447744027066471321606877582136973908694330036491842760521599216356808599174937347103852230920146675499182923325563791457525078443251628061557012601771556893830374064072353384897490355337323404386202788185586836298269568158178867864379307209234382403581467359643228738699812892288178646001659139631977911704631041921393095727298630683011502607468948282354548375651975774640955564924645029445382365924762295025242899212496344934585175967406194932783614813250377144520245148502479286575793034709609007805342259644878373061594846414405339452999465803856972909397568307303580449360295849523199178240668859848320834674666051578305195800936006373381719660861592418110650803446875716358968646316124239484732659169749885129729278968604245766075019664559350407752143807745195371226815570037370208216600294346099052539436397363429000222119258277988293538313028682088046078069310508758689061883395070409428928610189325212622730459965286851352260602029100231212017567953568722255018058093250517097101788086194296590030421124951520978383110879055865807952368822969354644707676696849137894147485893505497402578820719196429694327675393010278663341936195914717724317374279372561591014750156381707818331083623282544960683757349330697256848793630247895745498409316141998708683477628470513106235131777693065975496865086005200463267571062624652415340117079840695878550521374358075632945673546296062344974748443415393919576090308149516770029615500790430751531244276723511532912621841396614000014195733300309597649896575859379095195219428824333771999713923654619021059008533211946656002449659681295666007645694345840620104146226097493993299024325083965437437408200053626180921098655018288926429930463684005424187024925512216333854939616021259910243980830758243920176791755237834970719694908313661080595295543531542892449235276522101058896318715045801360349791583511166273088855796824466919136789254186633261484350311854344118975652195711379123524707888153579209172883365302915121349738625288626311758784631629107481874074292463816897721239735976252429332349361215873031610717729748434900138513448157240951178850313276639730583675076645277464583961436663711813334529327520175197560531893876248755981617099550832414679708009632449509036910910562620631663269221924225573610678628430896111994075021096162980194625907699575380260473661079205031300059511834097609118697668427182223092011248635619724589743288399116772252076567071664271485710924903500381777200550680095786599289196282882825701920718721862064437372094181678552307016498793218859403760658156693744597982279782239396544853320280626161630010474597430806401917920094949081581178329318974844751980459212807972493705628865416251161247355914633384858682095269301903135900816892771515400083643993071817385428132943685403731787682688965840129031774393349766230322966926216998977084419883169836813580037254693097166368871817227311092587985370876788548825525167994913957937917532758205284935093541018628982252883608089494472198043704993219201875136872572372255973741197728082979092489068401856208213999975497411556465515663484800245376310332617681091229435284767378698339096423831488514913841234702180928525320487897206942095530108262403806692873206866508700622000299715546231034578644286854654131749195040307365028489167676794420455128638911267351076258652198611705524516873296293428617767605263745440243022062184978313600984672127888173503671581929482524222924188099310922600819298467701730591744175213799665538674014457845641366865453921644765063066741332559213353645010899507053006616911138744871806254651561800087100374672360391637151733283011539641374640830952795603166722031799672661589246909054549939882371254386124097238869573853494781342241079646466317409686472015211376118840916165827203721207701823272730047086920188676329782715406197268295354682506621600796287875851102620516477194813767842725113175949356654434084600316335450296570686592024532979536173229892474909863536883877403041546902942849893331759931034369301162086254418703845725823483898940452787197564368809285151036337241725975598423274801273543511201779935072604003348939518232481557863884538062979426081161739761565592336951856382944679705664687395410369130227016338937275694917059394655105141855153724314290750113257986296950367804902856116699081458068771182155212649035948354107988638089297063645361681322024131946186780920108895649805156160027686649673941495001267238051173345018405863024729490439157492566054881624500296977470689309625360773586120386300258597871480729945714026346352419919642172330156309094981441606284187910722252528174226034106394015588378336782360604308550499668200451084482335660363799457450144466044736116253333858541046861093070171422803414309239845941247597361870830637443320656311753101912162359644357050549521817290008758011932138450219442545545990029467662256935866351542663275864812399761038320418109262381059597214864401704807182088335705342706923702241379759046904040348702558045512268632035123006035617219688594522425584690705275959357601467693148564529397570346052183828931852935995479588668253654421842770675743934723222776721282026463479542868628873406743266025093072623169025408312188647167652143287434738721829766811596742779361675299747877870761015789668102162555189067161671045341314353573831626589181865208776504521494112776728180169459310094466820500099936804851979331546455667266114527308894038613047699659340847039159613948978082422144286772073012217500406803051010994080346417794252806610904140947480392694639470844863794229687865758726633047907755558721204296730756849492751821604992162384018408913396885715482659763607837591620033506617760788080431823027294201555070760217406173355380386271481343202532302252007494504424982282466527351333664701687203202465213895988822458444570690933957610792040308251600145061339038559670866096027988302731099540608209464414198963645967015639051181242696198036711337289157012727187452774245515527362636528739156102630438983099668246692872839440113228186194153887313157824282717010418886064275989139125463464559438355927890989633294575845827335594968057933117783734412495795236059806617464537898186602144549058427239368119744067909381432755808252217226394323638725102245085535733491058995082980351543911306253977209674228506878197559186013685318307039993051125827680624951561881436178655539232775024026428015958201278084885483979761892722093549851144741648241205848998074592630245636471587243369667785382367078085351466155759561184123161776130017182102879062401159801742107673921287342421731946351258927721200948068760280309241342434314192839866137481429874161553197172450555207711915727827002143421769458449626737240236720817592107533023086268641361397976170775903830544400467142937384427427177651155812198619945824887359042488203876933608472679158301373440775852161885339942550687534338177714799122134882080106718442472868134711681125838939145848811367337001681845340681018327671823495940683028699116065361972117431111765958654144848306425717649856070115537868227447057105644169262454724699086109477142863241713417874034860574246889494821117393492337999762557405366226292162595288464754363700289483335868174145097938991516518223418982918149501325302383556910077488427843766303132047336002662948611072671251744577426015148052761540357165437306133366760586621519822255736669940078731121262774628117387958013685116764092586723044206045393144829489380434173642520768289720204946625966846693158369671235019366601426114113534796209505701335116138226096731458009052696235949560817155098086369670925337047157681854807069587064416246081413153326404490313787929412484274912686120059794702384973965271864765756773089179968674795705560157865802689103164645111161276394901681658647154535339136814659901780106157607779866798535874033818665934844177164832842062536894333273036047957344652335689327417524124584185296851888319184522010312493329319677458097918394076062316731445674422629553560177639587348390108951225857640958567190111545646409616855183920328852166010506749390005573989800668836634420308779802344932290142004256754370081946990331369135219018738813532175744236707413388395320675758610010216426705118116043618824110135106817674101181998196291641519514085731175712338749062757648768951004819147300147069692687097016067080830258270851695368747849392408524163220037046518488657014325287012317690130273729166129200109155203608102370534026185453981099743587994856922135688436648465273628255111930682029694604953629199477517449420875307918136013099431050221011378677905673373127535216572866161819490537244876261593096560213222985179918795637852670872673291505405161095854946472666166264172328757906913235112889289902533719951864909513396491299709317346735894216477101943346570239331588010386092154246578183965022864092765069862331860168984316099870948831339807375123752651575771080812046536981275485502308160454974888535076094158843359879409394442381566515764925530292787036320562453865115432401861832511758860684339819725675396219298773512528185134645234847271214742780629394642011996973185285155000130738342309872236990863777805920578367726409993038034605015870120783437567294428972373831210571000697893601791659041195909619681125251122353249134094465961230625409443808611773599769766190039887168459662472833797878201579768961892343732865554010101709967629777362421565014690973032233596981454096245549955965740544568307864887328473160072391483556457947214916346663640381103859264830893651932040969117066361131403317139194939089999359950175577227372080790872050292184237898884867979234883126753186158004071844584891521427908694162365648312009502956790792900796028181874386105448713053312102800614685601958979950184443786783159214008603695240959665693625784094370562480164304776335340905428990718050544190995512125555123064869969945810104369400884429695078789526097666819832084601133093469567590495113191272319237553864819159780264402215413592810061442761997470621806938897702455211272812736083084355202693001516500536740924627893277822416350172205676519903239163232444711641489690412325843222769552486001410772580643889636271056187582793427835922779167843232497447988653626327484777524983079164195230179352722337902105644107485255511072748694569165951186118228943046367733743872558788057230805604159075876752866301593852287352107858470855000816383127047445355558273328826343936837707767345932769544927829299916356801831873541591405309043778273388281228840179404347967054231767961192286321058905374813805045423321174748295795283147867270994116969231160787388299671974742336918147111009973483761870349665145251586845671067465486901230201960122304204486603525706661791122139489653601861585827814461498276763427113331910244072281540427764617068996147800140298874167190276517234315430134172050840872693168679573400437344890142824923663609879357100767046686377582756752407791595464028659714155792811394241986460541330464543406113046578271523928776038458844337283837446795359534782234825103723038594753514732634870111015817547754806593825472565442792330415267362601045867818862548136587146067605979762562104209584161356309467377287869381879501134514212323418670964519394415234209588878945919755575799236651886119379767130273422713996060273193940896089354379693773398879266496185168332721659727812623655867545345986820234833742234415675275852552980463158464985279405606129159088283491033947863437518512565468968359104150417282307907749593444196101406140928263393224732818421919028795196279045643931190045333922416419950943887523198189325669162897316061703803724532886439030376859339979339324360366098219401879932348272069673967430489281312560080715759225022606436632010321801036342502786343802844747840293523390053148765568109758710636840833460640328546992741658761925526489325450687692062590135345547808089639405273892394232907139796771451064147592522860024244934726185414784195058334120696223354735364056124623753801797179001734444643610037719721771256069858038441924954077837954394280740491330453236824791089447356835636446357583566394905474746152845793584681372079601229790554771267003294514264993744283126207089840101784620129969155260040531342612489548201717846599010303304709206818139271935184449764433068789068869311658133967144743000019532457126032241655921082164071236756707864435716831288543159620426162472162151969699934339558053170533027864998483929134458536981503821973326010981393639852692871688782765557407553650154533292234089260543042690283383657215584385092383425771158375322443832923097958230650318709828869515257352768428958598602142166844412581112663378322986545573114318984962290446717539356229655158357042932681367887691884616925478380616488096868630679166921626392866214796125015145842134780286630537177411713265730002189212314857116047387496871023464793133051836156324143576861155498378274561504567550275959518152195091875560876234801625439428001909900769649865112185428634951354082315074664902543747349457880767266505442262200437063380384282973777199109896175022770139756211559855384686868459350511684750648948132776300218156011484485572851772995935296585188552984697257551522601668108817715283743783861858710714601015430751115026439007071304597028161908715734909808493094658038138918109798157309052126417061020333052636442590884078132592405030183621756900912306740676466944249431626833022090211716784388939992771272761324865753658319289468585184848006073909880659958117515609446960814777001435933826081157154272236142342367647263349969544294220607361045346393601852560616865730327119571625698703530877239098334258635711806142973172113486407830794699502483299634567640076679359373957963412158827407994379427635112108365727298827263241620642578861743858333432346470851303663264422893592470121750084207959066445546415653820392320570523292273282396366372840387279686859093666321536627441239215634168344060753618929049218864027152353801795199307508612145579252197852022526582664497039105457479241612450234796611146677353562188786070559233686837079269630094805859832365887993536871471230629954359674748458128575366055714027347242364735811349227277025972831424556932724938984811926995968422479269628642030874038294255336054197972464336719429102989042291792750409508112133878188092153145018700046586869072377019978220819731347714859609879612198828380194528505005688729154531724842502045193686843516055404600966529212736022023478611688801867537166401204526136158388465193943611618756351713328462496456500797276545811135150823914595105774031164790943378556521095192777086331813526992505214882913176618901135875072731444989516807598492866694541430493998296785681709460820482823200414417922267572035562509469945579223353777776381660076406729713162407879096870781599123082504312833687393375859179672015763212693467459758615676158885607832806991459148899084869123227122153862934396390681690697176709191494911378293363672441525767257664744405253824616414734103097610963330585668166277101130381610223130167374383400657804990891465479213783435858348634250209704307974296699562924059911891216649564953166923696456874324802455366110501138213203877585069606291684414852933990017547991458210020944514960038052269507230044973426372177852215292077049112199312956852822210361058723502755900514910884757697879630841266773557018660244665378898121042652236053963377685740693317554243950774967107473191692179567133849188125968439859742024339594254383713213578686987875250118030562367443676840615348583552366446770847442273663114628853153970535015742025129253902358412843222089880978020846725354797273166301503045463383047491752623304858789534186614556234249386327755861670139765295994850612167897144047929548826766566676789690645728311127782022368044648072464934860493720332521919140506550021416914261375548502330787724888888865360568304177598700339981615828881174929659199511438114325247800792787639147927913817641779031115093107199245639840708731409864752158890143135439338226321697376092360694181425498850074556065584157455470853338578190837541951590597795062808619049514693414408689242559081607962426818835174836319827032750017794420903201238787630535767049771265105664110316646216334826908096119851531077599079517788517518276676316164731714234690083164148150915813611310446635224499111669567772574349344740623750324906260611813643587080644978470445846654785417131375606412263266981712536220790335460652455917013129041887558168455593928288437616081098021283530824790988450987076506131826751154598973078091191436622241312567040289214388192728795801849268112173852515686440647304727088467791607698263133297362807015418039480560684270523684508413182944049411113389120879779739464650908855869918398038294203098573074368235082354405951863002599622599720010538939463840822214166737545933702069593438459628160600603248979396031464780280395069117182629142231914184689088389936867871637435683813977949656858833189060053367955053269097669869413546833590429842128913438035483665118101481560493865103334302328285974883738788944917483322837960993063430531482841134552282110993843332419332250032375794768327019519791118217977648781939379873669292021946117602006202116105284626418081780522481170177386159890011096187241889556043919638269722372198272710034631647028296554986462737862204722841205457972677188156291361529455644331345494998249911367602781938156108497978644309694907145635953592615933063907220931099013857354830453320132910393545546720919786577570717656354230592715209987605718053374127551433992870873215074319004484102870335763825393540259456347076465674447858452691916665006845889104510774753511192677751497158589934452673912460650590328538749052790919576770909633304889043110976687174358259129551397366026658791577993226278834148014629786588434320881235474276388375514060544157825825464207858658072486302839178936643300318924571996087462171841653650609521354011194755285472112067162340268360514048942060323540409524807803918737989215865291205738290206074042125561371433338027464286824817847308789791695599452955687246736522706008556973270202824361165456103202330772380650329521687322584925455925411265961837781303296353363495074880889122326651474157750711897441764660133857463039248807880171662447159011657233473453177317046210703822704669218031422575397220738966424723160441504813779373736496978612566389625803071772993844328135076835890416921170455957521257006869591833118445528336437214463898465254893366438944873198792678415393509596211842335632402184236665179438942417271891394726926513621871712440749218269893211227059973166403069789384710592879454982939826928961108026517714244757051854730711451514506019749479366244055559656863321680102186987985735318698681101192910365669812891408460297631488686271405146991152381215974482921504031882661450754506488993360175238972544398704060041155686171657216518277397143713105410844818801748761482008363163863081136002435311698555955378824011526052208356163302649263920716105459860746190769927449339375020449240245770240433698766930520566713387690402957623359955292468546476870280378261659562762336948869105908808738352711196769181716341965334298451360228775313418137433141451910875599730254845819670712232392986100801877209120782123920763323837277267630704541673815790425568545777791900005258366738372692918125068701781156700173951514864011855691885755574225778243188286588442765658853019527345757136170336509699917186133244688117807742283490515874549248349058080840107340151502159288639602357942007728665558719865749602229011182857079884513028161798671225720254195943561135783189596327905639681388670284845630082204685487213342581865629793217057962863823239461698918252373437397158637783888729399530120600727371183968961308445130391561979489138411012826517191616937456238411081852180278648138107605325957509601576745124039056861189639948568562060123735027392363195306269492246520120841996585186045539394026801549311595003295878103315344720923284673924954989207960427817689329310582534748369733202816111054526154482092808105585281683922772183323678978427287691882397417091022850338450521067159130917411575426408615338805787303338742235326118920811635024075876500303217185739733189379160719938197762705759377265347317199793781729834475729209866915048954176499803901008027976155662296665247825827204496792401903499450189410329116223858078655073516074384257483093291385304055292564358283071014291786773259354006265521850916986001630778890239399460400730236653957649353157544125196795272341277123224637800814988809081645195282252812758113885270569384642149805684753277041220946313053908071621826772419090825354250842481034914097906183248633951424805717018880386722450309733840820482247329839515820620890942204182692702015719449685798786816522410138439721867753258237532307489307231626824861660607326157591982818373682033338214715002262890834021986153982302067639740706736728250099795847290181870400352311623249718803777349257691075587996060676100918477629496878381503323906665530721628740439446186259953647124711143283344973289196748423158693509802893255114378593946628261800684297754353623665372780602641485246022251653918816386298887953261137327271576408929373058835017709831011049290584873057799202484936652190077377715224443517682022036293556864354418194948025966810992432438859710606337111856877840439748534265487193971373941899433055101343306904640298192101546059846562169377770649343572452965538144539153866803208822965812908690905974651821345284716920154154507016004653583984969147238165429091102645684627138119928139849235528098554183397155976229738538065488996658404531524448159858376675306356815833120888271001869217107462032473220310287453344054985566076427822657033962347088283350864879526869191908245110791208230554573217174123260180186151943830070451919045098560632302989738416862915010053594151991477659732472782400533142835456678646265178374307917411114890967487450058152257029270361846411319396396593247615814841379615773907398562288081175047879068187433445005458079413236618488518263861567874741421747928128110724288646872680481809878704897348819189042979482829505282125297164963407834742835774629725768730951018629702591826108300560093524422666381486316753317602541705350467264983531541498320643461867190157023575910893301001725506229561129670073142995053928861221038784962252434184595236735071145878670421401256439020463473447602398231293921302093738582178891226171239549046622868385801140597441711542730686199423483330418786695492116801860340083905949118456655482924481276010809046284185060174431538453466043403217814491007159092890675150192782582552172077844053913066943225402791478948537611325643428511385181827957314338079774689750125644868316447009658229000513171262271291348248285565359887127985627846918658320225158061954010970664197311206310018874540187281659260107404672683331333837304038068991971922845618625393070636915473475597476889340189957936708946914438016247934925730052852541100695652731652890225556647167521415051225722774686376978804806402472692755803492200354884026226801002290612588194982755885247387526911485875895128127107046990891237102670021752764642207404225358616032444202382875293446326077586878793792027541476733200080020112700080461707548172300770966725375104246318738639816549565802668282866877631888198457521764823204980144883430257780362237631025379513049917611128142914231824739855188008051438625643007922098516337242093323461852890824532824494583063459457134179536079029491797982174198139558803955172807839644269016029445740456602161598928919305817403452670467552107796034753984962881289268495135001903099527200227798114345060415687995428098685482660598874328154925711174364469443667865708735343857064005293517417612716553386942186012384818694006401746104869619091217234366024580541574009315157687766988123747393794382292949411913955560388985535479098946460465182459271626947088400858329580413503914908348300971351990089043611932531828591688891402588007683848944936304796708486724492758064359669836761435843995625463959385995957760341397646134087781189092165777136828540852411752420099607527644185113398365870772601940966274015138033497036534175594279125949205454105735665605550959994413875196158607894621971390084331611624808544758507847585598288463667779741501339879929300434791036600179526838616061703379442331569000758531304602029239406477853171879918269891312643048386712061514006336870427759261748711240294234096407085319030000157599481542682405698528951019051123748918810787592695560269714011987745418234160278442733755270158763682232170199098231348679916127450794932709410923026868489521653561790524705732056450175040995985286158177685622229589194832505776902809701977059395554425282276680390260129865199500581061011752431119442525841754026505686627255003922169620973281205674296308347213967282782423329886018445965931607573299808335724529950049823498151403955439279475189298894072032307099415321748258846646682360653600264004132593980093951559676618077565739748839172327284492932554288840957949505550513313113657556886033886520378880014435929758546105363291737063956733058094007194661281340700571077842781529425798535581349488376458233010323287954571643630568894112414724246187637276397273905917251154751758030325274945893129028490126114387229194098520490456076914851876911231223092737668772995121668171365366667925415326245855322901585988156913469190065208518039766537623141712251463976108005301787663424999744179797240907697535605890728120068904797221593084476381612889279058131611203618663249416116809388501090893292610848608389877364515919350229970037463085445578806291662980162713846163347693248940595613749749611455862134543524832842774047758646359627390165661855830277973307598487279736732706926271256055486966123959364108640820433163475773198001080548445856688600641502810339011194121372791162104902055262305095519142630752077117805242418198019463719325391270837192175890732735944177647461542707026475634591085871777682539930875999835225123715661324770931013459134721336424829075136929497729405299647409110243711845734381384655399675076773686346793041286418766818874050165631199170274070608367772873719426114990681886445351538629214054970233156324585736935835697199636559690985591456706297940066638939215454416769708275574584829821070884598273827248446937874710174230311271581483807935378708112030314153759164846676219080611618604327323220142323835677230079360641841342653613857822596131669999262066656752446022713821794298631813905085214983061309606806116378399603649754836922213486739539378852925684265507924276408481925684885020116834187048521097450714844704333420564030573771299725716981331618742393327947089691750914180852819984259544132417842961138275858766332097534800826784549737062642594580535682198246881633254277123288159352606506050909036909623331894489617178502645391120019064892793890727582905749501997641323404778744904326781145681315959900064451897184997799048176451112573988843920423420265523062241109875959716802075930045406912173160292882648240631016139485587256981751304474670852320341857239695108924196521372712884896324951445798844276699015188733847471301805801690649763627610090079158006397815373587863823618991222347477766221697326136925472984920947838613302609880972568230187360535661144663620187142501488996647961261605273459446657582179183411074330049531258613454606491519795186893403988462188381033637130344584056248429598916834514694179312074759138136942231349540634843156229057851959508589365142918581419802205886304299699504969857705045828954322129452930061779397615187028037138506565956225865887542697332948279595678083299107066370758407036057459610818714681976615215654495947087736638698509420066917487598998387743186382033960463819740086613070909954000634619868160304025916405142339421763804652909195895676817369006015979151010731695494219584236843776638459850234478999426737536087278567414712401667056095033123457504724810000723340299682083235399480299462383624444174703424280808850603302256771989085604612832217141344821284244380898580416464436857731295981587144636661204819845723081024879724071564160625014497432293454093824197928687976512739071754751421590276546448563962394060368833077075720747644986558594320930005079468037320197924575717036968513327157485551919930993213516917194810850488315541826111774367842997456486024362176974632357290541352039566847835355889469102426413342570344518058804709392127341409199101958846717118264959291292722135324467966204536399028576706484867905694285547827936694383778021869035748397320616897168088547375808731108268253297067912985460643846706897704830545973335159726847240621461243241322632691925312133592796826695716948127085347935901767001023670017003655981959855781604163102965743905001882537605505553362117123234713915356045363081470272862072553065751110046727007537269217586928550664980772760734638788823324347813558046018703500504609897906194271568998109271041795039383933166913397503545199813233299984162896566753499167147520088911060599327835101817205793538037427200628156249723645187235484538345513415589272105513838784688185419798394910361724109492532372628002172720384253741613907896772696127334860869768123941022921761957429524115074693190611010088861240855278417054229791650870770136471324250252480311864248418161569074089706531907063611083687244105008981096786048265588275268455488519463849758095388580701514485553536927106645451852341457759623305466897928874519683005943158225835302179846571873286946433451117400330421554240559580397045852016657284865644425773257871548076345162752337187136065058986157409827806952677824430250646388969445406230551570918168211822077262778168791396234562614935886247815947747163214131294680653230451193558135478553614975345874538349180223286136360557289468730861710727546029229363016113725199663586405522127454933390941564687962109489593671088269845310474844086764620882525029016538459153627379153386652705940320550575466697007781162070933524056644394848855273198186660671822647285459108018756813138867138558970140301561159555009855321553895026088099501667378921881389059167551103923869758125427237562928156930214605769723492635639689477378320458806410751281755483315824688067214896549966788658441986976525670426002210704905716145352828512385501570359546940810246473667659803041790775700329454326835348175931366583900801353923132218969326308822973243494240977251737551410179412662703665955345305674486647869050864828587620314346814729909719361844459458611800557165716780875410183885195412709137539522437167166148386624581820345338149082442088902418913063933184169404507515316925930006880582472221597475014464586407375794419779983767570620063612279899048060498939485930760434875756024016773851104561701857390325069467927508404081808262026503207076841359742713413391802695580135314139499826375717892581606742229369543340122792571286014746515577251288903805690866896432973103222933686839132517437032757362589999928232879168870024038138290643446406283116924526353358494984718702387888763796011654817613785910204511017520526189562576809912690112088786071294497675881038085610152038914276707512960233807886405920520121800273717339844918139847719719193562658940007205917750596783799686574188984603912775753037199449574165713742612932798360334289108206642903944781095124152033818145485776169087777259562128291593228405127004467372583039620200841273790832980053926279234499994565303575391069411060965966780347817211215522405288467351356746989601431122504548490883053416943458611530543443076516244105673217441536559751995987162394468003057435735913914225698521840789744317634846287689718803759848593359858665919811413424076886932631807401486508120372249880715037438189074372840610635207566029255166612401511348234610191377669237335919725311288104130089817123886410231249255984354341984417810215708169098153219433507381926447711307432753316639848247781937274137069835168591933861428674135692782837290917543870052937138404030280633489831629608963082493977452819700067404451310282006115255860839578087129659298538608500721662263193964237070674453710426569752512204339152465591151016944595854662404760364665966887451564105589318212310267108947999430955372363512521658955033662639839813890874896133341864715901635167920604120913396064021465703669061710848924505518848458100753169610347299613999352588224524175550810612251415773592288780395511086641220631415690756359333032487028438621177645881114995487750322942424526707637057180656357895460009046600119049112287614608195114719585840471628144577755177218298181452824463891666834487537631279533328525218923257642221971782915251014641020392701709668637973419441134689924889161395658645721896895313524150669366477812206083264463132899187816305511482496497346838710685638689557834718642930398807331628007321407373708570603304539158660548251264201410286351827246269180717045037146110293848772459082446544918409871377563325003125034743571523564325353695760494499401676885684193102015800475814960363902106929755906832128503060784656203358178818118209475727529585767197254276187676771596657188209839176061301536002686201756840965705704665464169748437639166702719099973065634474914003333767563500345593547645791404370068549656726381062773197814342557196388564908211238477935416390619725529480273472078138532772825754745895658000635811239333600856837541291172540534512074404714872172639806711867962003664236198898683369134189130861805115608465660240964363683477330604357192050930741064159411252831700982590333178424760046462704789214179140841381943369245296133232452217445184365285621011793955012524864459505339000877367925821294216185275578621812267633795223450259065780314301895975863460565699261637548673343803297433166291128049259005544811324511737970037290431830742111070917270145163294318943429758190014802607446591480499104069574603403175030773644827413157990170746748526564924764059474731157508183435253312745308154169159542488868533259196591391407254092489361959582184110409856431740451670086340061430543678817809913071464357361484027476134847288324936606333035012608053806546066919618837500801299558666222442226872203651497926566856142335402767984775229252634594686213396230325939693263911474148790076569835503853251981272421257681474082776984784655543225129243333316235577818632746563421257988358346450830270542263338062423264779388440357691313104660768825973963080845390861612024948132729568280657125407423237607569151008862934279242818969931027763740804459402946846878823228842827168948732072232108940958407068056605202441060186230571648192482020614830988104416506372289118983961386743522920882635439797798234104522366938737578141975312757503978420982011955706851755277412132340820047736109692266463654797628391643547929949055774177966608541104619737296376199290864612944742264140222563336857961379831911412769325485022729442545891914280291124732767153971720057937664013196604390394007302579323438811710654168593624414914621827252823936604628301371012946350505961455163854233952249316347247235939983729964635858600833006962302734752325073115214620152053895378710460490136123744987817880084338684632202313508591245815759048953558399621128654429311249727559117077207939196803457250183850101759048539679852016802826959525230369145377344264959450862975036298516495973254395506847228643685282370033219440211887316034609991436962067162180964312310850261443769223327002638522876212043767148086099114557513583228607901457020627382227131765858083997920382854779579292011532878899283174870662176181039143111719111124649174917158231294499736286998431739850970760481651120616938013434981407854867586323512596442608960957896020073700544138484402113711764836452848404970447114316553445577713884625929179122837615684258274844485633638197313773581570482096374153097923915437756421264420371709233408115484324879184700389563990698428037948456400620048926561259278067130403125834022564920198438325489206899436730962988297797533860830424347259337346708554995504136212333185943417298747841889536707487554690973859911911496178276372747879812222216814217237793047362630795006356006393751780667689248764413901131848090345684675530664359962452656923642175938907163254430939833134435978587676545620247930040434617897681024921112778830868770725714411083595937541288349798050859135822805659066519271301117645907137413929908295589504388705007211490851924471091283201707541587689112474000263665011880535554391757772201472038349474781821868262270582312051105285178910607001524039252275657893603334301745681520724597723353410761485735121087093302268998612821008074995781665274741249722523553902728815263557562374601152551664309531032588501834649400969875859929340433205492910606659563326174141943481600446321349309780687480928530304987357742885516612988185022538878951399949523804148276909812226466733500222707242575571096071922132984293463391416796900502425768405305591866645278589862418540995217409798662970589839603891451614518095788624299301304580568550834068785455672846907693582846771366887961113672179843894436009838331199932137571219775438563543425594113726634529193301383173967726526201176187271566314529990886431734778449864836569013620298182392355285432589382500696748433215740903884319562216920093949356232398201786552275405633651262933195702506341318210755404001580250486372376837363552988651740338117066420717050381642454200701337783476267576559422037287901545991320682644657288243565105575561147260547764088757669016047572854457008890216668867980864555914489951449448641642651500871418991109646622833513729868309971509279415786747033020858531227469515056205480908513861395060686608779328921957079374465136599468076470759386269462751760422826770182780490048415976955472893012216441187619476003184892318787767851613032179803600487404390375464235355457203648167147034542480645652603486406312547118506313517378294019840529045496587879187151154011081263263801696182682101296120388607853699842573752999533939658114406550458931996114753972993268511730732276127533349797951367255509428701174872432513420796681061843171114941076668335361451282625710880075674450666289008589195715396133481822724967504266317013687788814568167305833236118120734737451479896791909229776599371451876222847517403052274440528627962921865035298101785372523359446130485687696816214203071529011661613205311552815176699394836029554824786616333935551440037315965152909123570650328160241225283827614037334177235768801839561801549036907100259625032574900173519821859547273267231119574912934940394239345084981465376532353663232609265692153855753857622361831688117686700877795394993522831079373788490538282122160560661600426230402119740805255575256499071328982575614295625317286078455475871380570853896338494327295252315791636415701641626654606606306145133200655725818085931055462843555835737328088137838489397647270736913765191627051320344859447787351145259973859172769544686051443469175691251927480246994619102962391529984593228103894505760803710010036822094903862696865446301237292431262161433144486021569024641851157350639150936305679544529024916471524948246534129667616380524671325893680952527321172053985821089640920287994399046245238644385858037186112122180466016801728968353146469775415406893300884119674617978666890077028849457090789655792562578446749780499919865750827883625998239191513262047523381584975383557491238646457623467567612934459765724790930678531495781583009776632430847562863768086214493628089818794892224895951194394731844057280006930886742165682533283673695436054495587357012808461584551025349634579526700495775473608528430321607540259930492730563029658263059515279043005379800288883279434380636139140849779729723659461555806006706151735961572536441581322668866856118926069226459465562308807682944843227162975515636739067764212337037012454331632046906409719578941906057548739783044329594928708739980337408883601732014417343704595746257175467791908305785377140047292858099635465256987559055665017472716480984561708818260473814504637889836527325829982882497677366561514095447642791122861122734733476379795582699732789268389581198443056742724633418376658853549672743307581778277108004668480167957710137235433036770440557030178514139943756965454371000881791557163574277207663854811630053165495057007583223262210457864778638725204561776947806889847153608445690031406479124898221179871322016296929284687060898431125076329500255306422415991997054301928429022310641107874460490957544793972503353485655561064804773907056532022063601716195557377073422911945767533016274699763057954323417447372119812400103685292862532429560997890980234619905344086625136733786542431027959845937757749776934706987658354669272995328072804101369457320255491234724355006957629503194004374173644474583026262852030307496189144365860621706531315146465781296736635024170608040767263005438325355160911831019343310341876029417526632440185619803538136102107686284790771413244484428216464028650179660222025672471613732021298847396415938884200407566064518291055275664512372330884613547683409349044855028592894748084844819785313261009817057735632325526542434881365589997479880774288641954864487245607386459302269040668036437818790372901655406125148958314309285429729631983572409532989222781634213796390300582010153298441360434670852952120976189979904280594670837954531548016005782576080875601288566073878624311581013128523954889754917557031532308313876290856963012799438859613129300072676134724524158205813757108151522454965253121487034627410858787582191439844275866010537202912716812183392593206737672012111018122440258451896489727985858727481778292701840365788483384997008135380294771473952100809505136353295120680236159642376435192847524981397534198240330888010991461770227615630519614686904728525627206507237088008221258321952104959681402974604215960133295178365095754145090770090898317770203149230080163738544992029508766553814915510572623123461916048397525151012568888475895754520956401382066673769117328082801350729903076335789202134601623530796920964455809085376264718484317936736344083906541030431523964374058025300613991220326084090830482469415090775773945399224305882415385683921606004181052091939704996280925526887719907856851585185082956001234377171626425674364840534114008707795024699614656090783720128171981724143473774321658724950224911166769782743545803682558809925620198318782449718528835977153990074534131138747999991354158930195276383106364095172112656738664032025536653796898544977893448476551052979832124448197551090869424901809625856536978899470560639017939181984661893831310293645595174979727952222147053153077921834669627440891888418388314973618294846022887035554623934951519935772359562208960996211386630946272441098900247976866522136577562013222726278913492976505677873034049652633962291064156860128290669958811227717329282287641344303879211960447778561080112458210420807430615860480700983078085829355091760025052619625763291889283223354676196778896194315742151772375150221620713980496093188564388565237463848544222999322539648523795913246155544709044040907580199536536981315347862939723036786771447823158653505588572716033095039199313151326557638641874827611929046862225575288993927552590830504695288065531943671412096512466282853690395325027495328296022594357311853355182707681592557471419151705839754577080212625315547385488493010413501782111248057579127098363445412495327203287777657466569747952543317556492776923982121108088343184091773961285386937490617594849502649316693972496275204213685455578443466328375385492745917716596037663716589382286534613381887584099527309037351735490938886256047353061469896660053417827642320309119527106145693313526366005637676886486841648848367727841190801093256928247418658688470403893779294775139942105748831857641999220362787738022321298251981814085554483014434393787070341473390866973774029618986108208464507864564554790918847617282713169707756265515573687947289330444954553879312929773635475620540890173160772612793918724454402804213577859903184112199184251987218332450875803839880747453988902541466472400429430601228280393168621589339180236446265575398745790744578748374037329522015982992825930258208104507690134932772818285129808290903888656053476683403076581891209936632232833708096960359034780453534131214368013813960702384310515276708024907963550896939310128032719286754240246079902765988510928475171516612081384866950045450814344648738650560014957573143486961284832755455871224528632322498699821336775729816802496560438045879091054522118114595096489604764289930458840764828830388447618681540439527924030720867697007381774275916290981093796198954912338907102624826866189353409616778528560739916086030771963514855624902845831696555963255556839963568657518850938491340289546764483498239105165171489719770202316113832119333852630642984364280713497132832631633620047345950544721353744724672033408961454737624882742471484938813401694279500064920141362926017772358849186560272603687741546589634875039581169139448269697749728526094604122788507295818955395547613254618217427748237478683411985518517087069883936738218226922838895668595459767986358823540518064422943018013199766047098171343470774904770580677363776901297686272938703791758609309108992377122418337814737804194639759598873864127604250415540085862422661508633496314954392461371805887462664386575815326404029156697921059914104140235535231595928864516454386209344122450794156959295734814848766587644646046726234862312518201237324637592562618793708887682951913802986843198970340504536597799007361338648852569272077571837595885146584190460711011660138502595114273176992682658391194909698082005541127930911240028606051501923297845815009330922275273816730705296103221560795372933000705509160854967740034019670075741138978935911505811259425270618339883654192308195176823699483293797272458072392701306837796483619562983143765639143840398573994302753028440158958622391119591389040232494186743268243218897175913590385622322188742463636578478243854526084072720947464735439090927896310503474602303040117367451767945550880245657310059004395874392269505670820431620899570062129940573391779919154952726503423276710382203716969101876478693907292218005206307521641519522459435400866025618498668775772985928835596294702922273863179050907219593909321845294558561677885979455070369475630097438891110568296203172754854367152331954915964107597620940212427558156194743562466532475832806278018865111003243188604486920236661083722963703309354352275016223396099177929412509435575023485444762190337582918187884739866036890476303655824897396745902380788051612501364664109781970237194480753348931695928189075260005292901775347428280729471877442774223571332671756233299909219737117348651011869709273315688405610092827204214210613363017842102028584506219876922427834505443063986690835436706304694104807878995746718418282879144146493009809624040198369280858828861130345388146448877241053641089812856795683717492750896627225139706811004726439115873141624376837228728910350159145328537123655028858464672311442507470350135713603444777342036636508936987050030965851236654081334814499410591362625023144537307089974494557397996823197208810896077170930801594873254236087693929353625262243169317121706053544722968920118876356254644174553899295623960929907550197921683479935212236674319311008268532138611214594104304769786184764244023078644037544628030995371803217191467057566645954664735951640450304552260116816154538919910753854473678557894923528243874304478697301788781388711228212169935295273399542065423112422762411411419271611792647822927746662654092359051326339227137556100637340854040699307188098736738457896523004772832187602396667407460662969770457554905155015062841506686149715197205437027852187737675783515009700596544290877609949803656761372053170966565744576500999370385041916902415228191836323369755341351249130919627478762350469633555636323938911864767856328920326803903392464684979003075551944786715751765973771074464746535630849076768460899834686594559853221585050138610360498579742417636656510575016354511508661922298874233821923276713574241478980385841443077757581739056572761293491019127121530822764613503327112179318601191068194411116264093354629852832814348769878299259456967255247576032618528797814569753876504275000103598680291561867233076813828163452427177195179883376823107842108336458793628941286999930670074749261136251524428053894944961159900135292080131159473035391667345897780542563494387903734706149019629302418062511731372473389136541732571380035552698597476153613055940749789090298379212334258517229811017468967320412031597809776851836425092948735241944075937221046253925976009683072965199050932544433222041219667841532019946156453325895467274102010348490531619379705028508820430257536864737492382502695538102470780935669087957875202671393832704044019727275339450735581667550232946518463140386399861085754659720770951669279528102356311417674984441221098471320184375960443774467598369490517267962087171851421796793420164423524324440037531414661754077074970113334102652217389551712105613016969104769586022258147647644163576628493709961413091595169499729492988048131817417735174253554327562077303197015667099366679955383192193157413434162885010866774248367160150624501076789962549308928834565693445081816637019528800629196876490595226616436141119462794518922696132344656995424317587844136401375103078901160129887050974841158809922294876613581002588955045425768525439884380175902070726313641393757311878046676213326794337896766518732228534780006481228635605907002947188243939429972788925143886583836749124950428500486163898212336508290371034156039363801549827661516061875618041907548359865760313444692223477969010445866769554943312295392826928867920663765564084189335848091725737664238618683160632260907637055893416367475497954104136413975266436820016831202973696841203030321323088171178389099978669085824534953111594825654218045477281321192958257677781739448735484882484554993346574795009693125443814400833436447919396384789096088119317917635504836679914895036043978540900200965594455268353160403925333624636186259020039216758152757787807264033930966184672310590171237000595524828187380537012725169576340729773735416266628934787144623641517316052555800627136930469070890083173950256122319556448833079344638955659737975877274007601475981988074894863107476818157248424174393403856833811416562284150451034529543748677734992409331903588295539724027177775631455392696571906140002445655004039680862580981625556621996174769760006497419929559034990617386325862519550731574785003202175911134691164927116436281234545440424680821928792809237225083130540063956978591693992752444144860399090660764275017760738336031209254456176823418780361759402144022241294199202231905744849796520014462220077457014272622506308426327494009220464105168198915781674421060078754076567016580024400535676411953615207356679144041339625581206596403272918788746029307549381620376164549970717777554991731809312651931473136629366730559226375562665434911686066758497512807253984557543387326204757858007898534831019266183373272103329815873529370347381555154844370186501734202568072494061835002005215689823509199322964869206535265373714398360493599271963294668085195914403184704146022889296394653169122730767643276907051934552501593146076468096769902145568748963202570429253399838670363066363028588071704780360991017651620644386263988702408732164165816490740041875484414195824683224559426313238816888089870841181073213821043307814027637647524328111874834482003622567833733358789829681069392822241354675357178409646268103944510995163147564588052851701792239919232087797262494295658182469434855517037677937430951366656270756557842058619751020663962639821459700539141832170570010451115250804931693634491096092621282589412765983775908532852086946210595927580605602989971810016468613841368103053071472439483891049669061800127634743957618835885039141149514786779934961755131559131275361710959291697156316180206437275068656254824032418761837223165676739222750488705588082738488241692691773918314203607962838358703735771374976323838570465313454197569263495397837328610416232209277867019750768885831336637625288222999168966423184981983468101214593961308511206057372855200333016596250372195658413845611385629398555592543813097474143116506787242952791937731729145089797528862129719864338039041958240692299432322863295358375649898260715746201594491260326368541269811021653861531005921433870020650309147533814514981598713082752388742319117263945372183988418169406067334298038561105964469140370948949077048350395910012213984541389392316732368959324169542736026653531888210449502612769459077571474865984812515724463688407471976175429148091133408676838418481002745218631977423241325604712288197283087932002884855698113289537380846742378100303824838795005938705590375195312367631427256647346424378042943180484788118422818688178174517337649988610940586270760683756351378303522694686917907305686271616262391072145485790441027280566398943929213414389931811950141070164430280972572203564046456638603111367204102733439945074290517329995565729211251014976111570515941451998531580566162975418215866357504038372098220745059674787485309234367189245525085432346070402992947710536688595508503323360178399353534841521775082140720483898635804593720844549373944268612790119401148727000008937886326112120218360841164767186637932189542721721233248662183858949579226369948269210220908085134253527015613505954370273174370268238464446339910114567251861383382278997264886450909135322828432795754586915029848309831044265784227154637496657076647584740044068332134554055834128252100561190144194657047098473142703256346227068727737240375667574041709854385746538171181348895372874962692085115690963026409025340183286535562662607650320388394123085772335099617180909702888684837479798205175416761520980931190051556346331620407699821662195054921974197867302272079364844818477551880609430254475875269539011033123493419998574013677386141798880124652607230050384977610351060962584201626343946343588518948836002038290234888989091970423847614158587670191495735608963518882047558455195526277862490487064421431954479097142308101656131394090063133466931326720195054202201229732178733188433006999054086393583693652384957574743134626349726295268404027288875554843343238054831917845747871908777426448872269907700654335919797307538124316750073128487006702856986583692471977815731677526597364703466098059039696028288497364873351461057367173886857609628939289332211435302565425940559934382971887930121857169355080879489144519092763917888876613892495337488173947346209502991334788816325104403294812724160389075456645982607644099242028243677911983289194294663693514218526610651429808133134081159608172689309317782192590321460696057181688818634307350996342373166819335076939677816237531908937564910982107123545956770682878954036189649763799662778984822305956325170194114964584895982008995621972329037032413459264561077231159289647394887158175598561290369877546320277744790948953561776183340914385392743028087350858406526792941023577607375175737072611907925374437766365862019442205066335892529386369282812693348192919445563097310062867573888638703588175868373301888127608955310050479343438489794028841057906411831186551366346959126621129058856403239148095467120095015729004309619190451424315932015037668948290016863100967882717074671755242773502566718116744993012041416808493876963537345793443446823275932220169951804733442069210524638154954740682333072951207588248748238282360594814724636858565137832166181175281836765107126311947633054965326040379127366049967984365521731436436330817919340826464155403685867610884526457481491891142348435411600474431558064178103573087547005782009508904583290427834708833260134173169357302494847296073404906960335254945351421916113944002557315498787221762918168942749273989698588173287712405479025186641322576337894920399629052065610648566524060984156055623535768789746339495547124096350526972993621232512692934044827711134131372647006613576542272025554783252230886307112354452686899235440990836255211389595637427534427567787957738358370284191926750751680895180226120759123396286521861297207496688226504211960418922070893404487044197059941076082284850690994859630658479330915673515613098000223052435374650016406577350843833909900354650664135510086067433881444443953911483580658670075628458225354913989477520968364912014901744124525279470953059476591520319235832912209904675923901734544723992094716934726775302411079893349253740407019589971166396787507369657481302785433339772682836529436841670054252307933749129859579118464353070363189585380923166144931872393967217587669601673991130310898656081309749222611801564987574502839904286429724615056711342557761784318608719293727666185062078666108128097123822374602120271889099010468471053895577388678615479351203544388199102631005677284633236633328471672116252623067965581304157599231672842205496564036978807106224672060633860319236697635498986037442892303393848032579582952626827929527720253726927189036156138803499499793415274877200209529053930241877416556953208948141139145918294856384134752842733009875674874782678117780239194809494828828534669852607779772221208543209877212474308170922114055248271765860204740275151727066418284712833646776640935290250674510476334589055378620944819165656941728321368470672160732551540871562709102434306900199840985676786781942775140413792665609356516937682865464171267416714738711092833766823733572109792265440953605419764590505877178827302138195969088088553266870549835304747641423913832933522224011025254773610961575669791211595697670257409784574188625585682844119084640530897247237249276923679762418726776131787962811254174328723324288041533653305044357860388056304699248214537513730986940248300324547314567297480018412059043263921626712596166895049700319388541123154801494376647370394039805787443942041839917539787897607942773825092287578527058344483722821891880163055142208134072914823926137321758556432135834235959911592608770434658734522910893325015470077906472740654073259389129381373434621751621782257218996610658410259683809946723096432710346122916849916630126370335268342206034167889528669034832899698637375072826329236877320930813338948375152081037888549662400268419292562261951836603273155056194797010060823885102826346843756840371252940489193385810025321466701511931520814364848792195411963091621922255836413096122240582165643681806715624700871510069165791157889676849873442479521886287731590479406687893365207320066882499291200228318218904854187131925047669614989374237610260824621221524624120802438238038185718093496169356912161217961183828423668749104354702593981606549886364093552586149167591756673956998658796024493313185997445573196929555325303732829763537623615151474154130697600084020216298957127696927475833842492772931261364489997327324752670103550721203695474140265363888464658012681778945229668444956848617623349852481132546342303298398375969681351001693777603005454018490897118093467779231745795525488539587769307119557244151668786856905069436525390596694288690911799059654282049708100305346429050091090608263272518184912220014347677140968504656413079009654605434827357113478541575424949381823994622770105798821633174713657544338159048004096636874462281558243661888129543760626033976268964187508252533763945799530821000005643527818400091066630754907619964830840196290495923233193531490454808716871268048161820273832370643568890450565615911049965625321526525421628724845675432277832435678231499210871934522657442192548100285997699591076925568271733688800051801710225703418657965197200616689415154159049583664744927593661768865831164607507332338164076911102040488559536176661286548262450385242355056946724825969041980521389900369578562681612172839676091460025413408410485201427933963402315944313488817955598253225151088430791847374764820191708349377859358784846251583776407680368245381687461610376929180572881266330270708079500816575413813611165344076105909558683366901557621577105128846193697517423636346395655431912043311131651269897175848152035019837157909832418472152083985703406631781867142930058634524476569186634123955416509489640759440399802641837826435525251920673913695997891068327306699268317296117156400288471872744545112882907633429312426510315348541208661833683368050976521450033175021413188088454212247041886505175635533905463357705579783758843870619945796608566068945860688962439357854851879174564870545889814660274483685089319538383651644372373897908262155048354641579259403629922441217353328093319905302235984229640800521779095107612018537755604273215307561643524685169731016657009550757125818882101816203672595284189091846130399543900006217744031428380284915705045947207345520822567119663145220374467614383574323271366993949466542753780337854858026980317465656200262971214883102998209594144169450112207649540405069468347506736851018265930238260578978355359823573678047516506588824182414741933926780668099138643128805110653034856912081194282475734665115456742672698033116733141474170164465161428227563581885938123533959575950600441285586306358028166359950270799214151066377143905616531502725297189290660849628046231705146803556087704943616772905110169209131930559653721768530148970881267807448332600025477547925489115288949473617592088954685366742520409257883562581873047888037061947906454493803568561769834534007012618970886914098765948893189445669906003714576947176035640308812789699333002201544826326483775604237259720264034308839788453056473182809991643567282548759198665559383379994558114941413948295621804292818692323133428241554661962000165216820233430239163397081452318398331104671858811854647721046776265924403070429694696886405491507860723739814465583556228165294259565382076973175415915636199497005235123832562460631156433742460783981607698779295374134431933646242212237519497012658180006250251928901065332978156009440543036462805067125727227461447728223794687432333747674052938044911949327847577650583147266876004603824051472040760064067856623958633454820305492459724348178225869737324866923702863933519743339744480577216927233753267085831103894406598891501770476388505108761052330287694170590638694266805604790594371071018085027168877803272257142066788599672638874900747046662837764421172027347654863367974647322040744828728474245857835572541195723570604536052791130486973938356607791727022895317526133082129454938988522470923755316124914242458401398269025909301061540200254140938885009068290959982886485112497298811205068244568390314815833170383467020251662358307310649709290332183143188714094395810126676893076099786260319243076192953816950497760163777692751111444535121933854778854567190788597507450011315075456914349603166538038261289764991760463769952931855724890742061620313648785374473967809525676928371542334828889785782303800180265539021378197150989298355776635748659837820508836590839981273143839655598716891100898417115394254158699725951936781226957027421680473935787260610514029118016534657024133535961714984052648161219305409053055918250648335727838043835021284289366219862715974014030447417086272934525710456626037773754369970736386612639644495103261794779520034802562174649788350188367797888859492402422885050544779310438125673833510869334102319013844817278097147079628825022030556652286019284077304317653435821982958443562743025371418857454859326714181820799100876778295024773748671512695666042612384635174382151080017145827242889937849924077773833416072877567996985506131143692210682239640372346000755921229850898001808191098659148672786523631336122219588292683364789387481664314907940997043088590890584695104582008150644573622747287092209835170470815929834380771144487778831315428928899540601397418358141704955593631120523960428277810816696819001014238531970386890502584428976150614200590791706204439291199841262678917052528775956925996781524557293891219685600011938455905917821308960778408499624199745274110224148094463573280230656377401517095382403805783683440474859825344238997469647962117281395888415108756750191600521693934201048502964065374816654542623832022633376737311438111548021847669510737057100823968965603472588295605098915794703126558516359989763587694382420969026361954416563816794349305175995453928204940092303767483333745459949294549097981736085882471018739465583826813286285122650495321258474762099398268217112392607660457189584967469976913736261070172635518643963534576988693245881954284295408286262196208777362520726839969061133992491785558165487639322581324349559029012794837952226519585516143943081172661505139918936102278098840745082834852533825756914487937902894969181408909043997878553305047920650131953056332422588461999690993449841416341371444577058266045916741645481705025641036711419517933703365280238706296942572705982855647903162640722647606867874643604297816426583459246030480997476331915921012795962147027061492800690042044296011259930669198531172865039268020607248982827568336738126937910382504538387864191631098333625091802354679877498714637831019894004492434965230873978980501844491714169430132645160301495962488593353498913758987730706872057092649699253224154119731520018719454051337120049084838304276041559565979504304250163463912192141691113188712188876977958562511405218715757020533433362890193912984754814264715027695616291334438214269748721261988483672504464104022158150118321458012536896452672184411122753560917071258095130729979705665381095618753041036347636754039298297828287509205489329965696888672628877876526082738114679588137469237544980403083325731676596170266397419701986236695720318541835680288068465846386860669950380920541045829661018389682978529310107263318096506893250294630913649083090522795794315005048252981098289634998061146148115432080711929394638956736251915939877774840465919078845746676068726850281548947873322067626139964684029861713135817709147307404879321836376286635431755143922931043516056041600871739025265278009845214978611835171152795507099480196524669514447532795365687972259595435051676508384264405167251498801079919042037786865878652562255505749826265099873204516127277980746028897152444960483913272259047206629046986973010406137118578989543670433390711516593756897744322400129762558710532530194365453039013455430978800488758088064427306561700942544245081380689244597156649750022858504753430140964108197128979063536446268039519459447635233110865917137217922477179297132639034365021846104801612956504966543650979910474927645081011468626239506422964039876695105273785051133344398114316599634362311277477900812142387118756929013165182060104652040857773411313734210050544458487975140678543680985256302935614212749082814175696405307895154554664795977548394079795234722321529505032315286142488305368734591404968553272533489987013003589224214361973234274221404080387331756530672474339616741573311167014316405485481311092769438133918764817333387206979805303062007348714624040567074382622743648384816117551946131302069058032362112045199846007041847648026266377515009061943567985465218230561978654385066590990702304287551766741852390963986148371168326971804137135584145603829861196652314323884808379559191538510909207323978082329739293820068616668618917098027474231084623301848019664164260737088349972140370477765927807639229786887838447211064706120992307821154109254817041981213182377208509478875874501849913481420825034498641834695709205480887751718064943767180169443315215865728565583479522574735804214735134458305426893023133672585446310083062302156724580891024219176151244131921779073070672470584667929787013454639951962452243904485098736917552603942216135244078983028278479858395663579068874592617000652060252590083143224077120076911373273737651861182324489877910879852173358179425995712172772281378978586429608884374906268733580156036435770451480189150674983500281831433822948326236222006901106208424399311107376773574450908466534283251796255134722481219460866147802851363440265672302284231010169836898925548373171141430169861121797959116590550645439525433192959284529753460636729924082954580790771865934613169538494082660722719517761872860635336485262736089673599720278212239236145216872786780398547467320838668464223484473385978763806546387012388823102161690416427458106473316994293391207131236770463483953857370782581506407359963786782842670089305136329696822652373493952550236733296314947334638799805916377554107143658643132733478433603451877468655116759597571221009521377341098407529913661069628261643255195380952993616405248379172645392877091727368295670074698322343662076226505883375803551106903435366779545313359675405659351508036279340476418043214200801049804781169331896951372834126390242186776795229918626595376460096758515468143912686160069695921285750555729520926742844905132009056740533775245876061789773629240724831425432796737901632248900226152990374977900010227241976080629159850097853616543756598129404031881257911091810664577988153611257066031254102527905789085950810006015153104946103332585147977714940708372447347357790356434860836491209687096668410981472536149292257367136426927308094109197204737413540148170042873100462836633341308894466527004124356729619780880021122001823381320564513853406387888453095300539257472491204502483171382588783547542597669472625906802563863256431253398171421248817506863304188765722383226961378568998122212512281854478655083094553616982140235440001685239938579389856519126892182417937142466753009682312390822832326008472930947334703792984745132279972573956778610992723236431302392730436873170599208740670005517283429333890631342355236970492588494659663021285325012687323745868334064615135634463631426834531649767870189545266621740032560823994863075538639395495601450536728523363627064757286888839384337024734314941695042401881888618645100994481334571195618129795234352650753146586600696670946655794312938003951282702796392142127460139823279305234827772385762202574916668578442453662862267146835534268851460506526538443675928341507617399224449587282938715356867926209863510943476205282174801757162466745910091374225160685810454381125841363582702584851633663697300571707978257596353249881246568012203640940229589419169460100248043767719780349543868556019924121942334309424768838763683471858851761490178697271911148838726336266455174071659840531825226855556288871189056536067957795838505389880564792508624908451343777190554134732129058297627936319633759848770462477952741853868032496118128588566842796844001066477760053088203747143818550744615769246567710769580910866637749740359550497593372723779460265889580776668499036233922482352758715996092222793264477489891270230815603704128514156772834451699540614240596082009108480570837263360048299152051292106743162849547123730360528426171872708915045082661361581813983449608341985988565201664534594154793608693589158573964519000866936611759189121991986239192781025955737124388064463511726402328184982101877782506573964458233171963453030298826850514641924087644965226091426095460792001319455057356616906037599264604716009383947069956890130453299063828300021990214630098968961065231906593261869580444279310699125018355148096628856891689218839716921611623438517072051694102940803533436753771291562047013045168358808145549754427406113806978967473296077560925559317148038570667338461140472039283548142654660385119791270070049824382394001183139986108156647460757835954258798528105242559175991103862146684912564734047691490440263374108776763994176829326719326213162622059289526881454817631519447434365584379656056411874943613561780673062544047772585720816016650374162990966690559956130882290929594370870691087276129581807036118361270349890610620931040781595056097353505207398906622187996905763453806901703556715081801438871038063282229533296119840261506503285484079497798871101205095630609833345101207622655100761583138181593756086110014612302512477535500108956594209852486280706414245717902939623447743045944856190788160510226622245419425049337833807535272650763201877826370903919680205326030011410265450125968843809602453295204596460490592162362115118107981677315797016218500810960313579700187186677668778944634235479316424018446193529867855962829581146179740720696544713472224774819958814343907838767944543075340538973434209108739998995026905236330956524711034081178584505057091860913064142386600291788268988317983234109763397332679323687714265777347330648972309543917122760321415883028765199248636194164727723960193744120649505187724053674595518828656568553448737279917294357038275785821035969152713664727743263508147175537908790544731414041192526115246250746229370828868973123057070917570058160181840329408107447118325602833451664355815607181999987230064415286868747807407633829374683096756491721041745263918687127584019254814521109753188395328597670810295939060964286328565812021133411774641654758232579328619642826630712774092856637834887377043195553864541966386916648925089325106511408229496575624343189524824094463765653142385563203269719759677472035681911940913151423538607894351098586332744650641290589287007053755334329326377111037768921293807316772838146915668880240498816974562075215562806756307561514473784847195629781086909216272533992740045227360630541998120755909380081859844163713252389513058096145359400922732546248343765594486181187975266185939196438781855731639331000926994175408904595524831943508546136392290872945980329349999953242529978284544425328260054323552853001255882775778357239327760127100589074232028055555126760116944951253844711441376783739194081665186279413847573313176545743424051722572250007325179081573163722299144220608311311418046944400859492176088794580948051345381967747227257592380443492759447918613075820137874353211375028982721983204570350144768711365095536179352846209976050003213948542391505637897139392635742200684467187798682828829884907158860674742419493303456816019912270919837494242085907206711803847036327344983296122886073385474394268400463116064854948381435587678023108164545923520927840944274083780293285045046585385448781465663900909449431596262456974366723821062098994090396434158046230396398584274693193978425639524501671610489522994523712408382766856859848389172150896671840889069728908537184429261292578953304812676733048714598087809952748126270591949348473241729117985726471077461609968711438723463592629114302613155112215956682039335427068800409282671016975896269668069459314077011882553900796865497617293729475467282716365673686363708443667088842779452103475613697000879321002563114792960780788391902509837732801658145545298433832977411877146002244806410282699700436813896753830807974653720115034342317110000273196017078236595327872379547523967365557131935647472150200514135693521209006997601747654001291232130143726045931066729564534636653290813236051883442472998075238071469683119281981222719903952717403715968878734340910089582105067826598276577521872101522924740745914746765066962673317909211727034969465098225635407658347396899968390121641577015381989764621883924448068325135706916157203755211509830692769302221221504405743296307768172329068471825408590234596386903835332283750221506680039393170576631834335331485754311249375912962801244413609945649029489092388924164040356877624848071268627042442643546380641373147777478265780484686093824501109354389156658704298999646129264564613750012419625034174956976060162745800610131666192189619025744931598234368804838754010071417404004992183670674395253501231727840704357786069954517740395231109159840180309408783931445905038982437614150625165754901462635743316534873638255501314142439249861144585528709283684169726206536920568439633156784757025064336329230379145485771277051931761801118459876876606548065080511929809001863437077427610642343839782245385506030084632008045764062633339949795926902303522426058667081548955869048216644958758272463130513287841778046198700213366690937281954895690769971923316150044889050490311350839973311438210221472359602489718821757046344758787725397530363502580767052008065572726785889733183772047625606976694378533806923096405748315119524526215280257482696930360580185297508312414864176002159501937613807407857876734180346732317887925617200167738346469944922798994645978302110063199476738715463463284618792232499171903545550541098462938156259664967798795464725824023489923834250954225670942857368280637398767806591774480286265029808534619731336618894909962446923668941027577104400866395626583788486240484896634862663311890168068603519119248769605330844861668741802503593245681589068380541112041628197887527661613020985925926037235230305612677458416019677842687289656018860637870000598980209550492661193551207970992550168340817750203256926240691320095994369710824609637986445556936581189233440893680539345060399176316430234477972353344042461657866475847295953293522892633524992789280140940596975854907460412554553340868910555134828729894617031313166996769163441458390520234210367684276441984537395781838898750949441875360972944857381075691267351442561132485869385012861459378728153316815399378189096664196146161169402846984817789402552506649820243890023038587613549830350982472901204155649418892326068206551372454895063771923680951667043260125819444905928757941844878379589683743743072735654855522101946707161155767264092558902073967234033129460262797683752383117679004656257382098744998240276157361978531666191581442284767488427261196242816525678332765394043142464108714961178509458897509570666118371128262172731256052973247047842972073413181938960017501653790401333090345589758857276691535273462086785573094319508275277507825781373971177390452706573926716295335768397457191751654494670047490869120790454168987983250360282563877982591253360745352167528564705733422619432652655213063926396241439754949097520973376520840506886761385688628605653513923045641498131183497801039484126160900207558951201250578970899233145340551331299533052668074397201354511738675945328797132053628703981921795711701990330245243594396653097975574268188114582993122715341326016021239686994581140660979817981375109911507365043408356668559318399023230881994536529199425275173355815668941069544874691861873248585936717158442245798232633051644528361274755210681599145798473535740990317635528807079436040986354268910730177685974695281750369687287400871856827487645320228757831140569989846860438377633018297863691852610901990506418421285092285065819759163832562158652501851670135579130022872212343336260628963357449970450630087141241087066110751276502944272657000910354626134080189434888412840728685706434775647912542250978954773817609818505673448430682861794445260996306132180872762109513604732708162420013759120710924377812060568614565623744764116401130671810035517889162168055437411969679072454494529232793734337336156788739158776539537571014000838749081359783045092520596211480031946312634755325325216213931230666708731400533644857007528132793967988356070906601937645292171551111264170738405153910994463659258092787173048171349229250062194061201458718550839637123742622765487885831818038426554082264884114173303133394704619784698780655013605655837627323479972987571186984700788396845150127674548453750476447450989987179362446201882390108324165357401468497649015161762542576295491087657460316357847014797606877073230820011789919990191301403955407572457158139050219364497694256485107823121107268250763112802134893115983733261409650799631907557853721837994155779407752812658319095349156237023963214964755472183431044794050856503532684478252722098575552081142779599269945873440679956103857729155840893500718051015723343568888067139767335391757674846759541511442910510716289187673747432742853364599659168306019746380557121165336253326649736619354124944712345819161288566448210035075799198277739607262362906283371918693920036761199926455589111586621424122418102255009855104821095612207996835866541492976596718052791163533693481947033590541240786196321833301887891125939477235968049982829552972394125574570056062944353692258550865327818342502554529652974929586268838373281292447454932220664753127002384564088634530658953524699186552062352988918620095702278371763779926282029718516399162283859316760869889657085266415911401947196565138587649754914121478390368136449405918320473625175405189377041277464567216986561311610640238871910520232977566151054343671540245513550795551266360441625256409475760487017374384076225064244550402358055728616816404747763384706277968392133028559635713676623354046842187963640717114893840931486792052331602646148475940518254581262979331206730876043755303540464654324395638316243040904809350666536758809927456889753094972919725846622457370358431161622218996073632747779183863017881582620310310698350844605566851229228251850217342723929098636229126711516981542811450856789136852814510974559184927442913458673271708631500105146103934035804200294839857692317293698852190217581576285357950038742092816139505869290104663942953351070728065182647825422105486157173262957209210006730652139472099380128411514371240850213963092991479910782279680946041997936017304309925717314828852000499997979455362009928837687130890475922150354597380550043262919698860929091874203158425999144178361313989806812143000766525046367126432047243664595993442543684691526055964353369830421039894846843487383512598645207829713135116782660803801366935273839865898403207588356495500998073974326170208956302516891333207694402661014588782639321636333244891921709541121040906346067840508623255511335252591449607587657615860619480253365799836047567690278158967330349765828993587123331698522443594788822886297574513145553869687524517080416063493563351563217728294740351841972628227028645015323169354595958196076694953143873705464573712342133998188101741581041697063747352111243316756767702505242822146948615722224055067011863881174933206986897478654797440215332602397431551414437899098222116205620994254121081926391665019705303793105939935100366196344940059112398033216685578787647630095598484152120365215197578395526498627264871613084683299760202484356502378252651714949926715850082069883891389096185618320369779207219384589807012086680946781614077403018774665684076922544620678915084445530075521753226276206533171587629647647121487298262483666476814798095475910108587879489535651940282059538656900070155174612033579817183192696604331237282759949295223643903279697261892766537428410375905110963934144680886315836941588289797516665873233277332285437011790796407625213098612925162487424173144209455645025360888309198323683286877778977779747795341674171558127063115514869171199272654245467719641737885717277704772121598599137109810492437060521447254234562871199229222005311647487311044364880207911033516384723113902549816182430840453969001430225158674428182170181236873237246736020382840423094387293531640958235437168264113362917500607628015122477577189852130289151139608150561198514307328036376064037607495188109851874338242881753446784673416332533609730382070526648057916363396380876243133022780357660505356487191093217043943219121095526400524825527699314415631367838132907224021893238444981034810720049159954636208483876087824811839831626963613774544237672161466184477845075976497321885354567244307760813012925579619820885671897477033962058088392283485728216417368347127988027334872720444199853522548007194826846643465157150383877313139631923260913560289452514582949484210884678736536697596357092214645730872493146075896692045092135964915456539293133127764459776644280351152291017362690482089348450647758550748413780900238031109600368194511497164998698674766007644615762663984415472260062656999164828310006986253748091226127505482274727078507285209728213923150741618669832088372630183284674748208338573003175838551307778077809516366404762398654932331124862668009521357397673317023871283730814034518991360249099115792736057537459776384118134653273733638062375505188434896984692531261444043560427355114612647817394115322494522463603730896519061271185840794056918094355852306502602782350199695749419665475328963788748294680707085179225345138370412359002786579559454164615463635579328550810583617937237491517121624656083341457962618630662625888378147693224021193243242945129406281591154567024612700701964072237085724572733097918080895008693101420926337782278959071933600208300288541711371623457588560316455140528045190275007826075546795251344465310215129503771132328246753150864049180859409560234644107203518161104356574801254429731314065429294298919653206284231809199320198121390903825241749605004413506282466936342997099068574608091809851363206346296884328058002763336382832403824357712140218796703870387778725392169641275087696636330907906869045809856384722363028413923581311800674632525121317790354534016894987322780500592416076785293316395888194737908412275662107005207761893729116619090972692606795371673934939041946385619845437442857685575682757975855709003008954618218987246670492663835821894489061201188670366042804380501766499638688552876681457822970291377755150933926548656619003622531632598972535803354202243699475491241952760364176999980220077268281501115816326117230024156023029738680169682964564365635148330274507446910460926943148005516350741330558008118852120684062355144791278207462059518374481867509897043204592987770410505638012788757634868077524606904115555963862795594407309756011863871581108694461254089514561529893297549112152270242931390703275785998659347089593959613063753528738190091342588873848153133375875458280126323925829529842757764950303602946939081076614173910281666914222388348215907668137703922913740333425256628122998027086533369443359267285731963528204187191651010622603114696921982356857211457593502272618950526073312395999542717541934505263090907265239712256339400242613752477741809059005468539365629717210036052290009130474811028477212005662987772961299257194822986455339802422943890595476795661931481758414224470114867537206689337619145507669788346872193964039003282109190765212446177116381674663812587667484474395416797918181909371479551565582787874649098415482412435551663745743913739244590349362146097408306927450642921298055078853161714374200037576286564983988250999637305453669258738975753120403604660996485664613780937082778816679648870662531631094385011981560078029419381677160079737531929055497074538139600632249046426278840631989723327473125478626047387730329462634904060671824616223598963489690413633018857387945789998387086483884426158327194326114937012154824905293787617939711990456298627358109932674216464451903330791473850642520335582967230967872388429796132513635280812661704597312499132141087236044313602417825609930783029959805293853917350170651595109019708106641358239672517208262676523452647366903552697246482674239510255907848620753559638854190605580234424641449325954027679818942107826099843918773813234819853427358734737508065486585754917306873697967221462238690281210294813542158422357063661319724285023745531482821095469684040055791055433316894851939722299311366846440975261145149336468850685012810108023281851769463877539276610661523228861488498315321173062114296370771145875094086606622850435611059737651269440021971542678724593055950327623163903541166808705426092282243533122723363479050513026095342213714179140609254741210854833699750747581370444090066984331336086909274472124498658470535517154484397162985882505054262021611212805302372596158511747036761129139284400940391554452347973500260529042748308926284654741552372884030410735831976779277808726940012067132135452650349421417249188688571610034782430363549430431374847313643842462266738927314434414123044565911552564186981871628794028501049628247333448747517186229273349975679117745354665677257907630101518969073801518386272373998706240288513108968363458115913701701458012251580272042117543458446825728908447010012115122369727908089814680628948935256286094311992750911659054722108556335216530154962044338155239316228381445573185825795639598871719008838615623015721508634451771209476438440120281803679475456787400502323926923446415492227399067327773275360601056272560061290650249321671520985986099559759308223790017011530007933447108138993326180516162283072857254606046978077720076319500440307988222435836828417258904684530223772368203328451643436765293684814055056912627757434227451130206476598441811383324955440196836593444840430156946750457127294975617864784778900912072278047915111470147794827816377750119044360155021168724799439593239863461849083372016045418160769090653577262655384133909083434926720515795984085296947785556766649206303833784476673159425811434479485114059073143461599762125493370770712939277585639025819270521867591624050519254007949872731648631679930594670332687608817170992737858462271009598424105515131311931378274237137017485364568821123181400226696539135796434286996601790653775100980849485312604035881836340412120253165064821687374056437320952232149764511323287662633458178160377769684964333547574501717341802719284337813397647277557822390122882773161585511409155538792348089543372581080176059427365839397833501881272936231739842934922663311015749305959958232776872817758448844007235176546014990146082424101488359337519753455454059251934488330237204129699343671340521196861783859621434183803024104648548927977283715136899875572950672805698941315249639740847177710018374341507251944828917077663270265162359994481000886042990291223648866558678961166903140207990809215111418275636128179931452803438907975543486477765786593742836419225996402878626205055475834027737862289084901521713839255491852973164934082934019928507035374502583289360334283800135438111718143814996216848149171439165504126600483750608992127033128976259289112619687262023944848642105217102410953259483349635670315377746571965447489157979132459543119354414597878348535726455742147450085420715825693142670913196573898040047353372428071313798926887692020615662085790407346138467637436071675598093995944750992886010603486631583009503451469206510919328876729310489832513012762743170778839350675949796063047854027845332849756901401678948892427779976255460325077025971553520551667596078372722008226790860048549585816868032056017574135729522239788695998964687308447515220874471802176253495769397754887900995059392291060756657433108030661091438068195987284643225846645513730098631669228777395226617135739892880261352815907882561580555318313953190431482168179711563869905895694815632183514708519583043059893809764248563226092269681396028547854194923039474048560003078351402730188325981604096734716318631244423346718949392275431378158709775413850176162569465583755577544360304984259773737415356901611487223582775025357767022697656123382201443012292588453303887179931090399135807684020188849571534678126953209756332295289774318225423053683097833872422621790850376252911522988120643505174981622699097451215946632902492106095314667720315354658450310001776774306537848083726177056119333775253551247965814578048535711616598475539959623212362364302103982166835431963420280841159703516182899973209240064008379463827370073112653831249024959809375528078912380269132970314020924186112608396747823187522822972133545760326311831761833054178095066347749008807848071468310769211443641473832154437186870816311958698378112906457438365131649590372224402818023340565798773109444781497262603341131332686339443543768031627538090486590836709668540608158558951319434662009636346033053415510986693918243545261641154523800254389099432979921576272907872047329107388896028292654242212731088542556771059803784957474007567436209506445370431672989178174503470780740367999843698780588211118506673211591898188620664105057511776525422487496119541711883446993214055746476996300127787858795473529592908045800935004392729747645898652439062228432859273145974850368344111703932615006414976522761194021008885622472590747254100606802087614733872786679114223144287416952969422427409975955910180822494131168307627233961950456149739688821856936049937913043159223787867491939548506368480421166668982028193173987475112372514044243406167214014297431436455490073283990286691986863890944913931446059164805237567593424222101457538504193717992166349156745194809869922478884047328349822168322293602148726043191603465192349993698718092144916281636810335511810984737124259274120702298189750429433362858342506246020258096803144427488032691388219859425849148741707757794971502023473112009812256719366677573759663129522367195978459988173876110907375479760674691888421317949211143278620294905086082597866668511938262467084101651463361980474640970531838202827691398272556470313637453745587024860577494379008655197342730016712239726237988855406526974191989407689940497694195108060559232730396576823568175982928013976204390294176441401575751609655295044847509280100792113109530718813628325565009343392602481737324740626783247505779297670322992831258380664980581289002672690503431588051395923878411731054577692485282596938933370875596398530441726965710908985976619604193923659924835649208452381983118073444165716630963554395461504772038644418353582194719914820535259475332032467295562200516149228069633207499455054869253694113747169609837866208885769385891806339460531896450938524635370127487081088574765317320847688644163413781890831428464099356943211628638214575326991017503870439863423013702428228227246814154062744283240506111917550180852257667840562208651083392310179775498464472103877576079768918092241038188695460103161326640158395945524213933001446318503035677618149801642741343459026454281269931113804837890173712832384324279962721310172439634092752511780256684297066647310652605646876689590762204508708693293236517055668636751058373761025238612143536620427876484720901310262847885246823725350289885067292366071546655356420169436426837030439037170724264186745031589511468712725098794653517136963737033253877949543075785337131446835941756864062251684974584344159542898969961359277716468986184156363057970825049208053214656543562778373245749026696987119875857493660089071597091839910200757297343672015397031734330583357777646316219618837694431387147192115108201888866579872819664213022557092279015931784665410971496044649912237204696931835695493593853509284066604085709095221744530256988823781850871512644972636575841394942358773688296424753430549358683056604639267586971775318798162807659080451203814610481003351331828571135338333846670846654969028741682716353935202270182988506966511286778448253546430146825914736499776065694752196188031612427904941567783670339955835830812946388865057430520987697824626424680784831544708389092658139155666007342240189871004634600569434073851819911669313443281367389084499488814738608324822575594508127933309928301644804537813908947102516386195791584825319256284220692595843902536977823945648447646788179913928783210020077300323631305984807415504197232976251998763281190346283684811589030859413983803060976596164732042104750911815341513102872315140890901268459765868843986911869780583059395810526970284235297693048202463159908783144219827891336744595549979786677171897131978943600575518879557429144782208484977636723179378423050410893968777914773090710266501872918735574934173489135465571680976911972888387790102749269865547105544237928383906448624194111140583284835694385241016659118728307683680723636721505353441178293037893328298569887952070912879602963063193885701088955601654197007087397576814556006121456894184094284203405914439288476342229750518819778961005503748472835261460248036375566913148275899455842417669794687463759334753363863167462393579353493160077963902420528657303018888509345588069555961022788269788864788265891142275627802849427468999531867659419595462140322765160250421752368662778371397534550508261595221771435416714911876031085072836751383872116109850099947411178929616806823312945835045110372697610003645422510006598559306572077559350508078407443224638105830591656976806114437026456263306829242871438665792646783681288896840902024644503028348175571557819497869217016572662211599894246078938872288281178050499467953227669837941937334821666065350852455248262940439973631531686669855162036387578374579588796044081013720868911549526455158186352250026958598396674025387378834769150185076752278448458250543982211322331002505153481210241059556343594821602899103929168607250638642730274048242909062727391710988094912222142497578793310094426782120450348020371278301780337851241689536156940273131464080182095117022930271652694581726511032082898288429895190997136753263178013168008002740578408473400002446087475420404454293628627004186587200379880418080349828167290209315042517196030184553526003366587705806584612284953587801167192519387630345350860749911012364830293584687842986631628835437322635743200166975291290352354051057348926740170740705087526333168832866656662887315290939952708496997156435955637584267566630940836050963726293553774612563655961792999248232098340420806958919054468362554084444104878769607202824610729417576971480025268477169764179357043195066468724968722596396641670958673295981785327660044323004916255339375115750635104688955133122964849129380819465879528938154001534019213566662673396205674061454501307258247036322771059215363062433102158202942503706514835313370408301292589260520150193995793882433994693891366591362527088858368881462044824664062312135451495187094516877815634258803000543563431320713671425537219119292778681591937739737208076876492007765805500933790778995911525954553865337464125122621987637312112821570019325757397222245323420824432978693478070617182056979659544824059982539154477958998725949745424036660076275683774621077653182710733052704413750291018686309006049803624520475679676485344494498023004342045163178668890973605252536944829145746346777912278486112983503811159142896179275399920564273430230337376352615467006663727558689479088722420161768184948613548058861910772659828136841871007473154910649219530978685495655205143003761218098578148154541659025453775657261447896177985151278585456354983744918968297813467310488425891900455989278468461535666616827087592818608105152665026939895745466527524004282325916924946162250265845789561022189308543790766064909655685572648752540436377583866784310763977483257160196338531073078970197199210865912641270679772689360292824544121862395344138943425765629225495683357234146356169579145386403246764347646053571870329104759715974085180733395721857749263512027317461752244022516510335472935452986913876834127320379000473190165758004080403069150070994099442110193269126363600785436642985932665943521147616281595482069634152230957612555037353310520264021608365796072420684705080916360123549907628917199842284458488764241618294488381645335055090775765609353429639562432725040330170999723351617807577330374090736271698387520684965893860195892076509324544687779530407772480485823043489041962861971762676001202449713690606679575001780501405985940430499664023222352412061484481005172593369585132507208130114994817519018303709430941837856469743312785812279936994465183993132088877425589090197786637168505994885113940457110566297458578574179310292613491269218365042240278783865936162331885862681885403497867098934620327752108727586827045581006867584620071664465594648371361193326157131537537130805245189536218143495447735229587045503908178862958028807164807948698142883490361306507863010553053796134633541807342418724868014698865668824381248971402119653362735095897291207813669224522656662097776772898023409760768691454528837380978270763978731035231744093014515218449055411103515741187302862746680653421064267988278552701426405009098174524429240901069547922331162283913404870538865394294493559950172352155660540376502331002232599703806071230764605347411784769043600073835320684209282758480896151085530390380711832028620329826823257773160698819590892570634618385164152699140530331216287359402263593586703459766344799680728841374546783397784957513316004529883226967386976511928587525807876825287003853568165158800224664731470999708262258133147360879136924144037618925357113055559917853820090496314790324377182856507512057138680652024385292582242447945240818262610457331989550305712271572555624914616547821394192492755722817468939939887188428713046237938986229373054613960863747259911252204199043272120312539451810205754891158837775875127197537189683098882205862618631284550614745622291370147698933471443976632804095593092052760701114110390437252165158291135606522053966347215039166413394580115293785036665217270643780735060254962104669582625745465359858760579632200158058192263923309213657533100580377636285804937646509098361828382711219924403974572018722040439560601351063505424905453050992514728210194985823628856367321271513750249146798405615797943934021376227491764945214723077977066405499824857423139462930480279356366279438206363206733756136544452850300946328406551559850831293808630124737049110365242668528709691424464277089979913196663317106240890793405003464627871144347973369752889865268344460690598938554424117922601316070051065071056428600215450563557745180641871325775709009599844817336754749339728587489303612672341636685901490780931475684374074112721178160399150478806705662493252906810368213180793900206905698111752075509035292787588902628227425310106442462697206289144582384078492104307141178511418879747597621142221529363461895440038388990170828372744773266026288483716189287103377974988689868006907815866368632420602220960880827117842638591391218002031484257352763547425249831580118155186875213885539466958240673518365487616167995170378447421144092654411143426278893605607342964320338272507806476923842721785616811236889285289605458070844263568468581712311060117147191537927553548901541772291336896375209627015491622950107872596066738797708515413088535993530338852779568631785122809189778293207198393256065185595915893825615975853084635906414987242007517582803975628167171752730306411007637254590144192576357315709779659837972826145174530422419328953613815991430605829935372902747993232389481185727529547616297238549552816140733475001058860905265280089852044060015922064984445107425522046918010842560131654089299964681413404476639048153598211897020124933276481546496553558431246359846367803287097085969178446871320314616088493720980904132187257442432934870795576295750615500378153228116978277827418303785029100934666784858775553209601818132577966330464075596899075320302345482514747032035550726417719900806570825222175756630436087326310511311566005683385442952899908514578167040090805992741926584495808330874383276259102426299931418347554115490402565662418349703897824800371005182744469290605728582304635178288704712079186635709574477673888620133162205089131827291776245506874264671436843385943647970214766478213183529247327678299374778132005110084495965253965961361924946578665773839629600364047521473988923422709370349374091124996098096166891994174345269898927883031664145349174391778379387377257542853537351987514635805372692995052100011794532225029566109288985218938345243802761523071889307939715961001029213078276347319495320341696729057844323845303381367947536505627629172632676947657935988262380849160226131627927478687562822397064532059427410156487319264477828633006839239671488798332736158873016607494604192533083800117472897810126192228677883140604815416096579088012924677560526267922407204352255614529761975678537206681877908836369410196346575149795068746781933336559513118884986702810405682892169858475680579065697124806608371124168492119451526713550746400629958965724379102095608739690108816816945795332618345664375529292211543080457366743816992328130218553359622983705408240313108289386347777574180901841999043799428621276282959704219155360789872539492156231688116336447601605941774896198314002373098264776962126365544607405159751895858318719501051229944287508264290048601322910308590844308027003896400466706957061007958768011221377886406774494872611054786277730873700487572625825940925860296276298524345326128981960256619506492107448617668595474758197073322221928807463953510050713116703789575485723433281694000380492673318978658637129079549143729831341996066953215806184853031733851366323029158379657799900182626699850917454134344683003777482585938685837859414208000132160881452353194276885338270107189385603767262501957809346223527378574030051764607444387307235924479299564647166772109669851385169577156733122079095192683937678575980203317714643881190599154534599170240318635873524978853715243693631366360759855459312668808929576201612269246848142508003917330031416993121128999195044098479593734754230268560898113609768369410529382414801987717956392247988973163719127910669997179613421683062157984394562689665374716478626063028376201547250655769938937507366225098521768342739330560567567725030646256539492830408946937606949204600525788056651143580042786300095722666809435277800821864498856178155837082291059138832521200861603711486663297324307156515879719288414264888301928415929731639716642869843981306393825065942099829518651710412300203688647285068634577180740888674489425883547368232105650710557009712468172804681073568850041436417245625381424304272796571141252480322490978316539688610605658530318393645817871523494459893190220004717789661942887141647454801065661391681799571927284477202845354803874247567639929268853813528238007171799377121046225652754527775718042243516426029275994297544615131720580262781057038055582567163454736066254869791472821239384865905264921398487786273849523041627116185626229749843895531936815953425840895783991802178247852549094349710710993826553177120618653188788531365412676486146611337123345041316745616209203405503712877419072837195715375812829762921742007888344198327456753190537304025018026586327515652605337340358655932134464535610561474297906513760173387262858584877424383876796843204967360436442396585799701872016615487025249395417071873711100916895781406894825115527634288032403340326198128370184002725079179015823280958469599658357450280931538336118557125279808505762050400242802853251231424732479314572658194466078430243786067792733581848175172113778090131331411489399170570966683556354663796845512098075172773867140219450112516234451471462639569854376643922341349649662432033453989108339910959427039920528854583518700015568135776908079374282067382250855848449689123850241587851349086023476488551435516424754061665830851320585641535023065163319716771047420130235793994777502132106225163766924494929701227081460461067249195458611615774283675469577420557197505793454129418948992861462171042120970300547754370104463214185795433947970272632252029468155531839642673784839105120549224329859331862609192258955785490895621557364275961363568094074588304297692572142608993169018890737162484321171952421072941556525810383927385687344373667601210738111376289733872607164873625142251528415075865891198377392509408796217979346701046288513403114607081047958139434817585292783302561588043811951471600018120716769059610944266327630644965939534999473546862126694461694562847996065739967855804949636467155888109253637378885985053245103935639987857297397227355893218444952597552008248952679386030201164945217000546746024227760649585513200320850014937170843311646085745554575763686731066631639507315100356371146533392654439838527882651773334843591684835971554669411064991175760217549421815457281218302317309436225825350786004785717990209993330540648477029509387181125930095674415555088498487184769228493871416532327339550609156407409245336273955675349566561908248479433310637350574087102976544643527066091936537264881698669769860918650567054213880550426588450741331997785049030565474223433667666380168839022581058116908448732320526407662649814435479518448510698552509694734649640564242750194354783064787384152816590684288161814601138381284718768355614252017512204438103196050050375673259025640255710457271769892685369639429274576345512877681832471667947469013782088676593817336218022537929069364300087130899270560120964899496585165530532263919841686301354806597419731225056886451770005680105556419038070229478272535658618487202468893455661616968704227720996205063715604690094207329031103941232263582422910655921844836281235926614424574766842606606427187380043267744796891958898762900109654693373853496626598161260169804068533767179064121398961506128688639345960643439970222677490881653297355047589759060505216943610274709828553558260652059666756037111245848258483423658727156255412281520664030464015162803232115374266551995207716383342425161161330439899519832724225200061654007021754159675145660455993314984683045910247163725696754066215409380040469955942544510344296597874842781714363613819286742703734489140615473646478832355165783443710657249328000311444736543466853942102653911007639001641573323470673424595521988066024266945772425958386727626234493919644671776904822744220091393457878024860826962424892474403877585560685036064695600400961542634887242498877885916613179294764485943192444263029180696421200191493604747570020349245161250744843114245865519252928901728452447897073195264476554074420809072700761208420126522197797454545546434526376222660059921987653168329680960446135154047870829430426054932242668690192964963540457297160319467548472786367384406067944201429925192310911429711542228774766363451747836466553356674949084092886481565063119594368706246421160121796402381519647739282704561229502230161566754466303431639527936878907559965046160973086512850921750180054613130111693482274381077718564120383002576023062854127456551244152368638561417773900986184402191796195263209578772356895142637010793707370428826879549081870519273690345148759176924779071429846636840725918314703154053695253758015258626041351780268895365045545353972481622054178492260352206712805408623794665654980568489603876990214470920784760145176125003375734175957605285282768291409403627036590660317455747060977362436802578299532001490341528194899396683156755819331035135257454509249831131361675813405107484461440880999172781065187329202350837060613599512026790074767532585964072103608886600744344813528595472511172523677099152179003009199501850779474686643906218883561106180321300569800395295517051955037843214925836445513489745927946163381550066795422040577283088616536504321040881189151305104271474889971603437312701572885983630240942758074145508702455892359978431097930747554347283310622588165894112088437142825083864718950440151329070849235399231556594984023231731019348309642563598927087654914219231344712450426950884647376397262803644096817185738469345651682714494750139867798665803988597148293251121439958587438409603972693911962647160132992303601850734940015853987904069453624246836307738315377303217748663389395177426812989630802932633663490329078528598984115890620925808590575814588530304342779443485649863290801804013543265986932312263389489594115693993828491492396737168128185998247394330618742354684982873155381934701261872942306293681150643980945619164794807507960962939318409142100361690865834694673089660175965209770766192448171571801583236413843976824524995645389788418164661486729849345792673946868263300844975302663787019321221345352834152952093634081025059159773581715112537181855394563988780672062908042992036108625595406379582001583481307691497555133167828404665933136305833265873439751717845524634856243080580607530700210057583177384091677855276708434318905904467373234025411655079534692057602658248892934599931097349168838247816532676265236142037952344373207305843547886310927128443049567746169080180757316919137846039638765487969083302820106477471325345887053080579978699638764821562289787041029886979133479154050943985871642893519507038148504131598655426178960680019016887249195069024079909735909889451351579304432838818729479739370813466177397772385631648902980184102589475651774055753515701842223377841659055756529140282663515457964689727263826435314550986724652415339052200824225904970201641194388312637707246792611996099294875810870230020553853890380342792715536948741837789367085401175736780505920846444574670072797316402267770065170084709095427589990131066424077603696343419131390990624018337945972644522001489461545167875710605163630024253599536037467163155101433256569851633141635871901586866758523638628747057540427042990411482891180841832413323205819656184572978579060724839989078059071238852872137392211328105067667582770543726910429962758569998106561483793130038479427381144649541979878928897508369404119801856897789786424088796405977969908457254598418403219495326132144511614404180795762046017783523105120197329636921100142081716848348265102879827377723646060492668699857917585118826515031636647996941233507597160517828581966535235480846646430872309813973836994585037453781382620434056265899253059788785163045884539223542172547781301756188200935909881047814328642091295842485284178258610267145444921943538604357460294522784163508006643309888755468397536537592469527160369295335670152600268617570946225922651850656125420261697803586271782382100755826246652139414504654807556110694989517516820923813801196259983887406330024989501299268360039481554466155426671176289920741034734524358562041493877431592851619845677888969422157237632042090124820700918145051275298393359810925191131455898008922848415366912875548517935867284983749388451937036697925299077993297544060888218361806516210025326808785846932428018709668508561782591904388535711424167929075459035346508311298893478889418672377244276573044767024044436280441141646328717602124889887271779430096253374770773295181556749231633219173921340339346921112366508666214387195136898378640716079435474207382811248100146731778804380022627104524568841197263701273554103963539974484482659974842704286186797398043953796419754913016040674179143626652080758806826689711693075159406624752445102077938900902238819132085235381307586232255458949036602022927467011737175540878578164299054208828671999869857320960034669600859876889708406700088461803683380180471594805057344065588030430187830716533988530823679257936558694770472873771574898099118944019179974224007391764857958738013866613358551327643654795542489843996589531024288810414062214816360072356276415978852450362214920652737947758812353158455087113949551588256730501263567276860733454244306297782112841621158901104864419233367043493279355568736014676544704099437519347752225638268003306812285468715081296653421553150335302160494696438213998437349076075074105004560354225731649190214564657535859779326678371055773068247558360581505614716354592812349059345008817012184640336410070643661690061573895349395951585288687101130440743784809591713084739801236034535926678309093977533059471034565315756490137994388133172432905840732997565111433723243916213259869015458435734542331845053572701839415904046824962128340151764435103396521566449349246799849524122843751220418223893871836268672874350221974431926528566182753618912519443515261921370198721731029846532673020558445514762140207327862531485671776925948097128675628351073290600689452404191622598445937774665224367782000520099018931464184163886868575893618823600628513250495932152223933412936834421343231760483063702343726216312615599713144895832307956489220375801008120884149881590852457339687566965000434621890019558123585792874126062202115881213508165013394595834756256514605230627852598053429629033754572057916684863735476356765234180666869040046003143794814345928279426215522121979754937421149877125432374338385027869112422878658596310060630156564782858633085040203404186999393668255907766275970556754620569635949663761267398507660154491666377621290394140157259378273237942623923130860936089816708068045842535399399843996051656656691559953863573275770940860799261504416610322111419239050492315531998125528466061051467033059999597417325349672422466457971874744099435194845952523621033395150877258529499095106289806556047270599100416747306066539592996583198160208046679159015894924153823101361963540697595222993506652903785534996375728056979367514978791317439164513179673140603314551824954773246573423838034081197426958575501932006791869821410105747903632092106302014656879187916838441017276464785936033054333582389230140562392974914909624258374152603951819767610392212675938530328706778365922477880580579888720814785888184908203584973812464931050379683830448416776522933988428858672684640405836427317647807691127255199319097855012103279455656876377253817472744441705128279937555452670669533378714299454625335709072877012662439460476376994455633910529132575040398536403622293967481894607358925823085037723835338275635723836998309220766821680640609799724429320808851631398149685532972086872794344049024793431099257525402927509419756431494088833309554940557833886783248936982505976621855420579605217242833593086432775402352347967372420131896802828502292172707384211649745544268238678718844398945608624513613056965266667161892469901827226513527775326847694373509137645571637441679361375626263642884151094029026240742483527614458256716637655971208257526987080436453706604111875911269985676834466843035654164046440754163109407491899673986963995209309099641449365077408167256864819612095908697373408265192441013187088063725334502483358365365837705512452055328557965458654937188932838608855706783579334881832330616684063170990043620514351906080240819651409154690032816386478091679518863792639879611135173756267452970912611386471751643951771061973264383697834921085363304138281605326327078225338322498792785961161777861868907851768527035066574267934355252803833134522768038091235700486692708993108865487024387661231464145540134666797050081597460182186648079218398810748656395147843059349083297470773818836475207911838237124731806496196379137176336679786740831715185035619164588866064586842661782192845309922765660367284262113725620600605681375472638286678616068738250396089201121403674519889886784300969592800757238613225662946616716489289875785888304019578850126417786353605974005637438548054861226635502245880302785678661791849707656573782063537715329470040003230742775657672601129658356672490744209337389634431820547613640928457567869694240154979274437822303116093875682050247232201287192158834186621689507256488604711491893760519073595256647538525201925834089007180295764785905398418445601520673608128590588513132115232510613626430657303131099406272722489930785821724999771973756685339749276726996165446143586753102951317925171001444573597620494323968836969555734872738112013451801064483828666014259981908120051598662500042199994099957363995167223555744115440431407246770388824362719487484126243382782316732246126740237777305562476483890712525883456261644441055682181935220292088713343793572442134964155840113209480574322930546627310097448515108440593389222960540245965527340304186656536765917540881616661418242251436196089305077765233629791299578892077592308684710372329590325356504431214503419829096862595409358086436935433922810630849511895218426741418987622783068085648074937363942613994310292790658709133170304034467358714474930953882134772560840212973335140516520584434028426626532082972967561654819422791302183224539754243581341021361115768154403417347796169787602853996493157318202215550343502435653985832978983699342775198805525307460735957397586486511799475343290508388321092129091657081966625062280373858812394874939876631476543694341221834751307301755382211805699157932171708087967449944217968332553545884618038602885008830880679699944826282990752333889698269764395461008357756913857917737645341685569669254797672795058403284022579838367054784732180277128957362980223174379813786434034591910913015194998123743151702217588862671192893540107373671581231918292858874461699299802187652450700872470452703720643570087412164117303873065739773250897093264911449539407498758880606348180081203013592027456916061506270546744489336953829295645895964001197653113291794073528217376856422768114159902413074112392101431217577686263982307943094792093928465759041796209278148092502351268181182279673736856740183234622230126725886173449674623761931067267081061992234865529206530537305219792425880400606962280523527870024103922689537458046242473118423008602587742182972466758149935965599501461614346872925664198266455346885286516868945250006647895963535138951911385719048259633970276061839001535794147463426791097946648558599007661470196730591670139204641398450149062855347005386445586044371026247630498214280974290430405832997207950822668220823156689672544701683375676844802153147680214559364727991464992554961166880594371139504324409944908891886444695487917134046990535889496988109273065498547938887761504403149634567853058982306886634595345512324740445156148134477968834354894243801849696962839742772653774373531459540182551567895775629735121046806645475770558351936058231442320210699840497425048549107713916534381177765624536321361111953917709238562746713534579300805231470299364041483484527108558563454793760775898117156243266662707513451350284929276611710577660209373593547275234170487130154817694459363150348741741139693308329376189634409955403697486433526280860237578866199410971935325663461133141512977846814476177430596555118127384795130977655622158959241961074241439697189793499687029251945571335098483123980483304578787188419346628081576474385386727028188161766255093330708963065202598703889479450010654154449133349648942029604518833080239827738394854220343038871364747314284326432354326541141737139924189906821847360796773844433281634813774609188425508884111432323058655713999004105376441129371982180915541773882504034323383529287535224389411416353761109878818033326636268319625615107569546900412501625489188371646438628444587354927171225929220106557571864381791345544241721285658602104364896368925753362174432828499602263462712264665191457949080686004764472792054152712293368490762071800061335409703170526841702947876270139419810947029552691352579671222427622382345102137817301537692599114283124475482841314785973751739257423997885810006941429540241392593911105650685034661144241076809916753287486058274036404848006788883399142309558656934482580384820692429077234283681930715820297433017126271576626551033909098979133847678275196076995852686403645973244711274706609006646476944374513791072477154059519128686515115508256731049991779860130648749833943764917595436843739893793390604332666742196074199525227006335033439765542783978071806576253852246111839492452458368110517513303935877946523774928908027140049592697890548192624466218040324050162895878114745556334512624324491427230736203264638054263797349457678652174728549009693147772161188059588269335276161616490809916358063471342912943616975836426889758656021142647759864297636848150042791741421819626628943134755918166595080372514872906412171750007031135341834556711038656356331649634035955246826429017913841218751562861655122795880701731191517986416079678435708169802803322479957287806892577138870507264308679531024656071103994435254425918009716707082723546198495411633290727189917479362961990957363462573987817670220238333560052374811391102040182142915917458998705461374452014338199752408894929057939021809198105170877879063436010181349865977462160712344640638994575662805668430259458137184671267114021154188824466711921630520232360855774543778031090355603502397892703673557820483889505066330398595565326177108714597482700782703012015059572020842157951421300817640565836311792822060646369008218487485857873271145546009682353443380667225226554581710057135697973548968511379157090744132879194811311826176256767510583281406487887415002881377599045080875621637409046181279382390024489778519219082697452353659557006726519389543526759221898503044509206711453418118840736767450121370817175404573672053909243883333107241827562528045146680738866509495327877494211091038296027719564732594401674095508849768588180420323006318200297537869212018424212398299620163473096191337901139069200701332748562440555262528217187963721226153512673985498850155938783651324895270398536901301160506438644341156012690176325325028819987391614900684208684771343292056811406115723877454628539920167577791045203336389258955398686137415488389033322970423049195020726882270536697755211639309463009239662864181467571726445869105090960995664177852121555652232777653040173957349238111378303584964738164534774773134001056983457117713505468870808139780645038605364265042137051765943497759149155023600198755463527201460927280911986014706269423309040081654188908463100358247199216605070391257125274220404612835847097458577714371960097018749093154220603571384388199874567238742158241730006531552761363531769221605180033932831915845189180230354920143906718802826002724667588829889983840610817641846250930524834395843175219874748449424413711441038721207678944837428969437666349536532661692141293955003968498805407469373411272725315269779655485065973322210329488589411353813392192336640173406413478273558799565187656522073851900469377457341347613529222230798140155179314343413560959085538044036464511691128585611102548822024499827432858405118016809125932402828138266538603317439176401248068443834526806892287534359857910606323281417050831246220173321471028172396865228520035462213006384418425055981785196336135803295657225327612318580181068845300999890233377607859324470934799768638567746063640448165127765328466742573149928498184548273047004359493888102037178330895132283019568406488480702803980767457466391084252255029774803204814876078077796881088692166911505465524432030991398326742192669764590891222689171371049747437420940260981589987541338572877945256509590673076570773275898133029983191889129141512346463043094637119777074216719914091800436132443071352477430454820187882741122181639679865991792247354935086276838198080220100743308385744636075604799667068933099943957609846121687237653513806829920653485556575454861732247544931935087656881277241431382357931615307550343639714110876632989058586573027140295695255022132860747061660539346829805698653865997656007517524349206954503311339238051687479047686687502014330956408156928010496742931568332563372935962475554102215147494240020345452021658497122383874954874146415356855287004149327469902485183754539566637574288911798526732537764550705447428166381083337968505058237664885770245685372121324202656639295397671157206017803126917158999177036497893533176976202052111017775138030694031235533458319336952071940822414058026634626157478627360642175964737409323035075491521560930456704421305132480681704948560251485232801995986352895068299227218855595066623527826545431315007826741043766912724283719819746097674715079724692873685106886056104678117644409499661814015937211424325314614885279704810712784566517574910924620478018411375037180891824338802775967810632562052226404691460509694556874667716859215140306330426973586092901688304217660745466016430455526520766792656350656858336863688287316744150013501997462525986581871958601284040856615842803208270092633903821336210041768462279986896120821234445265336625213882868159479639770869253912390393719745445544123970917529635549312665878276537452956299762265514226798013155715082741879629125692064181341233977365492154621784463783906549956310700430377337487135428862128499387155678769323112015936037973866172282038019183209215314976444125475475142868004397629764004176059291491438165417130775524300872227161788683998451220727397701948192022089037702413532663561625806954050377461768167450920975925834474579859335858271065152699776485589271214523798868139793332981976802546525719954002883954816874266128541216615138998739418728155028938829439338924874842416436375581566056125056302830373706210033169800639422608358507824987782900816847867388390407372252446548330544200383083454352801742765475855857849467166146144490469045426749658624240140267348315072424003799605851954217873536231315817015357769556047738262942047820251907819543226120690350939010813909917093206118953691248067157003126094765282374956446363056852299522295305069476088766109417761963469900819725217818172161073774026033234315059369851684718448469955722339352832738881514904001314685553131466900618382975651221198798862344239092214087370544809908102518824034481903105396444820120095941749092668310276293277944364161394519346716483541479706615433208993042204888581585235410936449196219612782007033243120585866494474192372628531145077356352221654853880741736076885992153986360600978773258617396489933918209228295246796397537723273738017414554859764400018621350275167156999302868939960250705955356629593189567004588690560579118895651150683415036913969443108495158973014183151854210568461791694577437509004118540639271448624905267178283314722115859244580095850475904432684320045654012510959457960440023784446917117402235945754837673658835041109984777064034371803088556174028650011201012141868331738913387252940501422643745883708571353853527593488352700426385000530311802315470817599780879581810726571406674432088683388240583262214879054344948170516277986411326190874201695579765946342855619404808762059522536690929984175820756055406859301092436853948197883617790724204408575963575855545351852041758352310099687294835148718578698543572876112257892917691760181364529184792659563830077488927432698442697625377546453624243445475186530127149655209599708581964693546420660565810718303809448030049584573383595475213649059339963129653563940190996794540829061563075756031747182800961022251974579629812181168082793418607581194666036021499232525713829635336813366154297564602073272638172499666042719138266040852009324145419197257177378861144107410059072205349428366928152853803662555141748683015632226553039329216295779096605467094906116880674707872044412057703056873566110687488883625663289701718649004862048888643944382716416499417119016403469341346788104892590454279078448781723883205089592471561225852494077356551636532165611729440589964745849570413204668974375579645366021456333929518007751623843155185860768085343688293547092443402721424068124756597155798886233287959587562244059923193845436298279497579486946702496002773291412974365418844351617810953546419179068505618799807718448316377487406298953087298163741948744850633750115088556683732495444336668084515208192585219140224365921630208117554325721615537766354501820815658711232357296512675964439420837688958469049658704332337539921438174804201647062036006440909310157509998251078308561329356488365903644062416925609166344864313466039541338412516184650794605332764812656857162172335010362915966672746444989949250736026942037952947035043220040285256735514215877726902707374487694056756848477969263491067860010091147439094448746446441126368739765008435796203799124766744541810061428375900871724855120752355620179315222125493611053179043595264213139317640077306221842593247643539665710483499713139666015691746130430237503191511692962236967715318268872800403050487054497123407725039702217246701702200964655168764730298954775524159158491112184522561567610959719958627979898724127841246134727374249696118331977581532452323417597073129054446980098518979722040397607621382606000151652286405812410805870036527638679086961946400348333963634811439849864686779031641437584331093046476155949200547288098521956328270823817299126972211545540682187458414072860716513832163402250020090366648975492247958395614030257641108463361758281126423884086220596550684578328874956907451193998795354472836669044594402548651792856921174832365686086284977078232147174766116566460502353490938472215347390359807752267361190398765160925917370585727019706703913670893825383880317637277762242908052513919758097598467424899825166093138103502708170245762345813245064768997370648361483656855257218183174048846880752110647561783845530911674118874961391924321313271899556902416937469400020165440731005627697611554296037015175936978687395051147988042913783650611973110727684078016014001314073776947592321743290660762163004486500148662206350314451253024387119907743314090937058499461438750130167724298691968037176120785982228662533645498867998100967953816372968067619985728821201901505757053629562562940470024640295958808006234182963344823016903807152698828396396056743435504926113822717730321155168455976092149847384870820522111913724879684403489097781322317882088568429015815774258645951484119276438941641361234210431748020789673200443367272290229796628524072458034838981440033198509268616923117649601603355956698198893459559499005680911777945796756870702006115748210040047602985582478317526784110864998332251963140337898398820083169520084972715702512772260154050484830202813049887196413311991163673969321959750227137184689463240758170690928493529913107571345333080929805071294296490655971750528858356268511841341260811538857738517389233881107169315818449781556776543118621306763924670831789826917074390942913138685882185908757393207822449371201217757196654777897731694318968832500299487542008857026749845692724616349060204581617041929071158663414767984353705107299141925180362169288485125360063140383021996895531556196171471193014658292993275209567971819956856521644013314730845478541658252094878269750544855521316566110191676146711454062833990578863979592906300478061309576221678120607836814511979757420377125526143291287237717248666175966984966685593539466620863371115558531968643997616710719626437999096045878105406071901200011181083166361643374387167446483216367303052713074188035286471175687313423023594657817265437551219258263509856799410108576406703883641750622794013122123277097463654468617376519492460937310402830033587048921235426205510994445988017492521772266350936628308409931563117491135459234683651992431291885290875064351289761560716187925929544950970929830102942910107678387044372971424813742338825471015957851946934917402283042582297408416944788291129371990407680038962198076291220587083368570561905241510741122398663548073558044981103816506016586077156689677401507787638760093085160980225448313357671246946106092232748429999183876961122270364865721067989092173439979306651044080565587512488448580480893960226884022502217725261595587822941344178783867633122002416310596269469149265829723457934895434976533534763500330904564097513267565398322524542556625222758988787515833688470207210869381706909562651471464738981401361393653162367035500485336202917734622990653255068164130933470276574011805276350244789213734630271767438847978175491151337762726598329298938437023208304109328228947014640262894219539750691951350401806744670362023701986581725844676761367960717565235070431070878599398983587692900507542014935230444032062837005404301655289413286614228840267618059140255350026218179542461226259495684604002914943458575348810883762296868040245779699460659795496606827561777514166772530009777864323872056853812018381703720630211391217333789065820886503483968089396508393797133274630890606614835941814356885704966342165128133309644608732797079874273628421452102932788667163727935445696134148587805090086268623096183200091052636308522109529416602449203927787580455911637969302070530832853402173997987937715612918703191928313550370927632933984854468018847062868340628605312920123888003056721479975436256566197450869610373508581148505847614631337666347390426041373494757468699013090752174842547503656748872081031892410383588156290168098856006940484767326754607868507003037875549044747552860966637682695990938189181459093267244656085221466743014926538109242230513306561407002946407702237915375414600482529801317031786222094069093464861027113096196488322660023899869894367322731336422037326388189215356746783220287059918485837287686243724125619306836690709295794635794452013250665833793335824234310025757549512434054101059816396041864876776049035488880386056911907217940976496355402082630326279125294145853921828842030293722846066346943337728922495555676428605265489209281328248950482423328785086447067502834405951740974603486149708678134915419375501087129241036154215136493786041629150302935822170978843859904678001729972431143922531578958700556613922363010678798329061151621104272883413382102305268807417399978441589741251816848154578358382397216091705295214796568165296189049029311185466845252869408904036094495146741858798504107803520054648018714972757805940173162024471828143685483431841892869741000159092397106170796715941981980229733505334196485280765966114621913172787061701030712208958589078354868725187654937465617735445551585166548988028848719771898675338865788753422510390850179490451523247821881796505868417559838630274948529322070659113563422523830265497032226091913655632833991575598687658769976866045623633142387554968077555299463386269972144161697256568609738250572130854558259830469400373330630228648761601196691015593258193519666625456471905928987659448753156226511994574349128660460204643702475664257657026688650543848948086391784002416189736909629690073036727786412745986396412760854260362922392130386159654359046262468006294563849339431061941010614050069453915970723490493746389208526212118748278696880549892790004214641944932535365392013562628232028406599086268446908728245075461218766887997617615886657985238688319333105348006475116737381882245641711645612910760542536910875190466374104871866293094995846276177260272674613624803015222002258426677879391981340010413992643755159555372441036340436837442351692226474575152381371640190357730832057826573996266078522003568442867766584957288788023652790762709185277867868372244621960602734281094074917940645974428029179580670770181716789951796155669671037483865842759688616616043534089927849609250218914874152947165101285136645886274225483183825807223994305007916959170719104270099083165469926828672463040369745092800097066199173508874471871853544326558964665829564492838039395369412240371876470787552861503287662904190142469644117767148348604609521066050416233995312325602067203522473392456376700023902648715202541723481199762343816248008676310041090157453520880312342523670923455102741869531747100331258810057322211209861921113301145466535332837436333810338407279335834557865104529183442138111546363803860430276532872238581544972026604689387854273262860250807937067682500817217326357144280909857699448568906482588798090702929071393488082852243078715472295533532897209759313983205049880600773768440376859726628850392232706595099952036759331223653984134356027474941334686287809013302384524925629390073078364904398808092473922704641816509350727816423919415438767260417392112478395074322187123709321710916358789353504509549871600519052863266346324013502903020554319692321310814531062493297922822887029555458249985447726305328984796508142669618972746162131090855237995856379214663067166032269986227689892210772721416208524749693516052603759128070128926661572529239343525442089229052024224877354802951258610357527323378684504928921999113061390008850926099297324917178867308647209447702958887959115975693080460912010586438772194853273866697402521567656224611274019185528201494672652260654074951170371544461202238395985774035820161721727578477027002077193681090963340147876140738889571838834978395240777369643556445721429524094560741279473827594467311017129557914414051599508158752655888639463644394277497894180818240383635363120314224248325587187199818857190962251783069844048311705904732299112521626981284353396970759394913168800461666959989338797358512179736632765268360147068866619695807614509998538384357530824032304191248990715213362885718865171458927443870081078501898915358687671147906119956634556714935638269554740311656411629845323058023812396903679376604180208336944449056900388973002853855331772807529639989479432182512537402692358283914367951551028903221166287176123631986929136846056100573292705562741245457036240157396402115732733671275626165269036311000043809027487700568249330689662735380190170393244211252459156820191185907845672702211206081325683591293237918885904927794527744348791662426303937434991274269724159520559362249226042784949132214276899229912171916900996526567949302383126288538787850695396718989725305482231220308874049044201179964605562514853378011348105268645410405377365585954711641453737952881323181508475795365856589165291200141354526053938697032801500885652936467462743959928365826047216880117849847610186072004438598774276597809305086237537621567764884515561773919164715199773532602077044019846435247831677334745012200221227552723414730520824264786792486530526134896543412752903760974275111346740406111112884233042098502212260573076059451797090607851186047134869835006626456710811193388301512200870843205976972439598981327704694455290642826581197091811913049297362832471080847109816810555683278796202358833721434822794794140971478471504365844773641787147645675197648778520055883421731905716528665137103900741733182978367410298594543249009402157565863567026197030960867444765607738182204090564003626947234692178586557389977631456147918145286106160335410435666737015150514996502055071318343700663195458406650326206835448133230347845232237977523181957047253300713287735405074989701628314212567305822405407298395416531187049993527770169083053524412198461783343132981219597000860816478474103377302128643157856455663890548781278525648226283026425607659936880872341586548261735050381428301126821566021411114717097908336149145786432887079723551901380040002383657146147495140400575270964853771930203969470101156276493448484435490584854353881977809691170617520934482662582865311884429578589527532875121486467286885804677868811205272306782141168662319613841677916221267506309330291403409023319667931145751729532365079194715543539432263405052639801134991214001160621382361747331139730835417950278605420564370915106796285321808602759756951836594304645683929309120116456260922087288184971821545932849694895766025457461097284117403817820056685849371753238982590712717763104976350268747084131144613364355286973856345291953018921212390653661985471859327331395218915976772124635287699398926557632734048954405209773376388702120348489972275836560626756761061600053303471789019379980947783172139405542814860720649848873353755339882957671445600595879273506697329884526812332183377216336902890999810762780788480139015603946249402992398190011367193056030444114423264822599385458613023470302354414028909978419048701847223878209695371580935594448229823281076891027511098033378422916355207269023806441805175948711855668339371621665347334885729220432856024925386410733454921694331672863755235482635864841155141846546923327650959825412561840631394849522688557636235731057741778125669463667993136332186918553706979340631523509876173862991214873351922607617178221478863392428113990876007666289582091862003030916210173803609326566629948132820129826529188448358228426843992649014837461963238659645710019240160093448526053156087697879568571512630613899769244859743107237281291518743370138691708393328328656693561588555825755563440391304119974141393510005860541746354038604425954595138698976496303492466477496465889738194158174365691726152036066513653841377332819103015310167217657007638567937822653743310746764697951911967029445068530272708739414903195623484301773389401332608472712984133923950167635816907505280290917119301823188792607278437491053572920669016081403004110304706064699799360103655957018212661376680752693652828976246237470362678604878129549121026852199168953501566519894450437342320833570720124590447764589816822457245260291203614265913137467286071323430635782394834987211865717987946597889692938636406687663047155600044875466671274166389375686643615289690506632475064687816402119403981986774941907107402995278142573240036224851813607646198780133590707960483001214155159106312580066019245919902871046821518052271282282785146965674221942398658303697765263539056498477987947500710144946835860037978764121014200842747440870183571883964430696595782220338297834159112408403408243470471327155978102086852742981745565385262994259585095430552759568421413255800392318285188218633106513653151758722426602662104576212447607318176090927297368458351338662176980316354521168916537395863476935414678579096977077754346741311480673145090125486189874864698254093657365245298152230139349607700970205868738008446325704253459045440403650375076891487575253739703644189751226722503969309505643687184426960269729111709518163831585405405486673020912534080257136901395105280168889330804056658623020142032236744556128198463792791404480196913611678030809216503493568151526248632051554083121724962073322052256328208740851236829952140235324221608214465815261659913213250719504540532004191389955044345795827213526518523452033605397700589047163502959503614806129947581927373563475620252418036019869801687263406791937714611438683636162102992388437946318754646879958281330838090017970265550245771349568012740829887397196478943530662694588657940881338050287321587163534589114704856667556331290998756276877446275067404405037627626824586970316534359718605247755703114793602856006389088498235857976185105504736086231697663801911461767145521805496960445451111537960844523344720048735851278587851465926443680788186137543392318031825969163063329950414193856847680354554397871858109705438516837530447371467120844219056472340767744412958785772188685264647485063183254141226837144189276527551220001360711595456385170983212670608750375304995282574767479116363842305421764157647669452197814795008566748980531221226623981893221764787298715399891954305525581788971728649364740805644809313597914578610882929313793525604553153038059660882214394313247800299127164137468156784152608444676133447308798917082180956543731157446345555680548681020996289388012973780776765808636593507173682146092976324747432121872149639818405690458836499045959585832592025545541748605793306345220658125129511643083835796172126318159645784413676382946106101014669235925642779541497476077361402971008796989740944692491448647242004083051434044459848368121181009117363462252287645104786852445659830341671935920364372597757229799846879550991197724222100100368222546483219560688676375324917362323613533585312249415069966132416479601362754846001287177675803245293933186290415075636770200309775542837434315262279190604936215372814526886498106851839535493888522809315937922544255469298622627033276191949009018465159551222695750651541281913596061117046059469780675980930836716489845542716164913240648856628030544682523891633972745439800911990949885768685309283228928617706360888071871725505482128473003455217221357854983977828607046806812576293611648432004859740991132492694712187776215047836432640675792103922338643190482680535188877408626626335255751427217802884334805490986476653214464771960261834223553234052245823352066173971787618194941391390911403042134193167536083419028714040364362308620907013041438170214528137310996540517066118997452411059208413049332569325173934266912129000272595296418078636781251541928005141728006055849588249485280805661389030013840343441093946522109365949830929262866512799861571081243174814313673824945716501003526610809204221022895190915378357897697744456247542401859522733418405701449789573561779229546041276705228402348771341369482182234525596716216086473902131142966192168949609535221929181640635099071031165580306785015143837402010184781187476514980875959659156693324408657857173610192041679255557046797980556398606459035052941799519134514560732075573200406606038833713336561093021229262973994243114650347544117866353196679163868436196957591777894585930676040161494661909708238423933497222293667568258347139456457799501699451093316055342727652584159651363544937584292263332610021235965929910767988911975401445690614356579061733582568785632314358393236844186508688923477082880146262060638328422469683248305326841491499588557986453208938787433005202700856207292335941948511218243798557128887516850996455442958515184521296655690449317763924146350960145657307501772576701883160690730131096426091076641235339028420078117981250523352785031904307030187050622447645129086963245030331705839276977013533326332468396878620820444521200519293721045867078277321332395067030538974097220553805877750763819260289676898915625092174970443931070376104387786084930429171891411471563132552278455219055953851400123814841446554192355752096385353536081391042821894611561882255842870733262191195563595174754867303022768551875333541133114562944259768005998470867740144087783988922504534277699101612583147977059897013844539736778443018165101135324907887066771972299074668371829944536946913182330384833559633283525626946229919183293271021361264502527328966546997532892504112735597216953813206802241868665028777144167077755108619085399188160967038034711772836495069991226137419177506379601320274294966758560965381160870767452679766024271443936605496817548096525926642830428455058384337757727462232658203093784178407072467915064409396388717572730636224462773845872332104851421650826394775994823670636704116045387574668347366559532967321246025822057649069536306946721091830095006266543836351085350571741263603065533073898039650178807723600099271554568498758815199283510450372913319724269806101474199683734660018840467969470721339893236749890058090339343573838038079920272629082221718004475313564586596682847124136395257146746496282830633617544340893519774602234151422117633094540158357358303310898844531809805778612437901412756826575277977116394355183374328434476052297884201682890256433508885777476146078762468267550668011110934926610111120391668067917119487575886919868003671409497553482115529565656157647375428231422445498970748601535114497284912817202662118493702478142381376548165489213511584611618357269964460454409115864644650085451122310008089821485514008518592126439584138426850971813485296757563683841165149663234706421410944812797874467379095494370718418425442315725868416229487835111220761698555934031494770152447908266662914647353604327962615895549059103618337866611259727307609414552312969095984977936779002283030163628800244932134950678167792486994252819472479787810952630613750716674463343613004665441898552739053243512087854638648252858080851850328690122733274403544478542313587459944343958527364037239967786014225118390584795626610480516388853063841823946232471576365054888363333606876591765403612612017957212366663155087494826920665118523461939891697696949441784461151027427160285000186848469232882152179804421509893532050734372930372904475475553838971155633766366035859651300177835179081001745532507116211495157803996590566777094816724368212489232900574546242919396648436715215228410895214890332796240256229832193007062911110728725801593972785098204038531191802843630753063451544811397350723819000481710934040000251460915103385891131810674560258321002345021169684165558683980253736188858571617235188254759160251619003145156891290397767668620696970757501416646511306740096656654791240565941939157633705051913959743220569395845368512448566776272795755342986789423574601339053732508224362287708536295962104063008244000789936982471841422666609881786429372117911781870800242091222051910343229501459257150346636583578911956848198868040730224228637828149573139196659840196083692135333696459026534309919037053137118524187293716888039427436452445097121666723757149569688025441744380170686587135891489400096925498815405050960265212166305059821379142478614388811743170997266490308425746191288860020472580852977182898517223123784492391246770494003920945937382630570889675305920834654135559321439364726894276084635293593224999387644963601711794674691081725755246633045732624274403214316581644268005709713725136813092508445165359540263283437269994176194479453513115582209597784739824534895529192879592179262074867269401881265541100353552693270983713407419405373901730029655741654160703516195286830897865260047565810508941570641645887007532647564116300034009676926338341067080221574938270177134110932157454097723692474521181482824271670877878222128008905509293536564314295090611909053734705565418544015051276100545168640646983946562431116016984621169072637630498630693648273482476779043871083526011515576723340670480444618434918730529312788085049169913014022983780329549837473138281900283300786827120956314781266875492855620071565524077458297652723188100060146176477910181854525343673992531512286644020172538343497276521383183046958956022145082927102536064513309260815153402715648632126272399337133163719699153122301132780459366722039732893924471149488396954766754393752485056900465764736209070307578649269322189102178451658842957507410008673938062257586771408043956723119434612233175823664245520731176914115563594973620907786634384659370409258517856593419513426156323788352252007979754639936032917605211539733302572920260465862115092614219449935077135140147767916158025651302015633060797944663190356294852863923157887093789014599744889824072036913926587256221136788481702207272613097242663742386660478156075360770631206840909063430278456216616207143824763782071705327932813946352399187579575941290754964113853417314334745360848638486386869727617837124540144261321424244604232890821339661066177194112007326794097254912427074311149366435516944636594811801802451434322680859600014096304087689948572342570343632674104938182297980161075077264372711906959992034008006375140742912856334089907458405925738468124196848806082972470011033560242206963316673314471554567014977422411040235508872689028683600243772762989361786343785908843891243885950043516018988521534707829919036644761561038690565044050292085437144793594960210439813297185636055898529770904002204936941521121116745276372510539784535857128834648906758898023618287489575682728132404343590536783941343018096953269145634505949094294683677933949151079804869141258771181257633050626858274000724403146581761319678896861338632548604069873804739224598142219496351193498739595281112308661336925457992952674060387495428943247478996082350011094223716802765393646215521215616462790156049346584340833623702355730842885205914217049562630278189061210915767059796900643151424446847532356138146786620450867976361101759470126144923525353304411057670097044170064575243648744262996619662363918426933734446330004486233331987622632815856861623643470217391650080223381912456474243893909511012094947522174642617239649887905595448759248487482288416147786312833262362380933841645639046611620586490176235187956090439263095225024503206152206334651968987131872459636719229678945847468291221918899012746140874829879383762896444331030494854394387497951587178927007112216372704124309675942746631067226100170788836046853998350658884847680175243803644543332610803056458099790720503526690022801457964273204294714709442058441680727740427347757854781538959680164396256568059830990647303691571059337614491048372842362610048947508192754152163970370273492873409451610186912398494341516451684973513903892827680765776287591132427667895768637740693174639082155208788421692995688716650621235314064677499646715000022005980797148633829330797179660762685369933550776464284510748075815645769834144975838443429988195486464524964146920466574705138819414368793130375573409451987696124802060772130697272777141606668069480329902375681163245293684066240632425006643951990797711185817055145618471789194158118005322131270084739846524507296861255733037554309470932233053654065785433040305173619493247320935928305030075734450218438985213173282732871982238429506301255625808705596953034667939097273340850139466726735115041368630908107823154271747275377934708347795040438886476466516081902198875613508368722131751983331124973222834988114812717800121785957960050407616711208753359237980782917446510568064035214837423405618979646219592733088178055359415610241947140359322461067067389463517487645713737238515744115121691976806650381011295473643909066513796073445359014524047851494105181364506614200083461244107568936295215364067734805981681607600771627642427194442213330849070581860178929949932975867752143115763965784865247425616931991054268343631254892211437840941362387661166074708447431270810408127850721251116706195296852817453134010487035062315211909437498093667783824038564569450340757234360671159935732239169630872402388537052569151770596607471738375766141727562861709503511958596251885712495920663268229373702573190815951749716969463321674808612662013172387812674785525235406223243953822714196151349949991301146097639180759646457225162470438033122352787420905069584894747810029993823998218232038947739751342042043873085951673841353239439263437391816090864162759934261910357991374470609033610674438672758654620224069993056977105429892741810993225221606842652640204038491645385305818428945981962801074565050655114851409249106368318137658751132436731000199596349003364503436867754059633634153710192650631433108638476099959596022660955080584713785511616812276073678163854566116468284702493327064492781340714429073295559338803940706460037485814694180040723050643812130155238708197321644677536114615997512760149531092319765004634784430782221114845584483493976655034485122063811692090763589762029195909246025770007752204237636785587055012134071854894422436809302843279785350146350341645622743799169717018470320803831994106921205870675966843096911944623635086672110950009748016946759253355829107530680753482384973340178733072554656523667992905648071113172331657110120789436771492504174703953951515910300486099381078262045447460714138882293812949115081118212144169033021865401594622848257214982951217849065842204655416657621198075509816436817906511556148229381286981755832015356516334876467978030220443748014464700165906985580820477799721764053989234047608744333714257502848096348679845685424892455795432283695600895738132255132442007923823493468852031752800898861485965959187441267925162820295432261462314554833431503166681196023009023229556262104365959576527791922082210035727428271563074847851530578792812226335287488796538949809749827567033964871387837325564587586249089691534387293234213982905303330083557949064695274569340746711058839169586778950684437083995015977360120713255423093993113092142267137041218784716685490457127863828422769721797646424743704338576623201473595267407637427330188323953276937763490656399976849482463022426780883251243947679206068829287553587813962309534313371019972994287644985042012447952265392182753885514865940562437429362533007950588561669214163606590648058240446624319801995425219651649096286284087901000997994306984753186058531655047255563655156191122782664832089392835921817900234178461924970489414605897537528456568710652980814466640454944770670864917783829697025811125139145318693515291718590247745643123757270548823611521665600561359015846743351907002794017733598301248167297470206062920483743173476670651596029666842842718194431411060005911797260842301770399261472534682467974362834681406357464896128036648301479195866683391678106658928175968935087020791681216113515981154105243073058446389359980182020917777126847871800514121240800488320658093922678460003117817655182931353587895376077135159785301645292505548164920230822244895091511390533514672516515600796413238279766664246763603305524181732440909269141577337151287028467156769148531946534008570007276151759353155574823242623334638695872065026602620063524528215792869845980513787792725086271449845874811825958816958135505675285874973002194018927322996303294812748752631345917757163512765317967275590265497885939508512284193018619835513754031672492111963602901090616265800652964843109597716202028960040399646982549565955692031418600999496298310769534920970747734415639215049555822015135981199791503816649667401196574410022772151447714979188928953668520374281589619065946472256646721265324208341109321962901153245404350848732684670288518593300672302805427085642790598506735349296561103294707197464308577302531282463177832576128976117313754966799511451938162609852559190234747680528698627491987872684775398827208830104197715996568161437013814703577959331750108876092714984368867863226840554079015789792109318462851306525091593076286470849898505403582127989448851208261140320340925514339912075105989832532550435257563832732863081297487716566866709232124129420537461677770418072387361654528176071117216036378587324643805408423627278847635888063165083887273176275264471237417284569716912343905797043841978024352071862800313531380724348730549345832248713782252491371958179527434936944862381572342653012084642929217504504634000155150777866098589379381894460357964371762117314578209074676550208027295067484309923240988365029968968489844291156105662264570079619734333972772270401504038139266808638057241682925238049713382994902330659956596565172159607954505533054405087976622848548804498079931443648820481865607802152560069372422523986043382326067925739583860449689118923033065819128687359564821440396498235298982280233236292715530566985637316685497815026760236199050349887833838541989202985057703604111246281720356033471884887201351186178925341020485846964133679994139571244410617263690897991899481954669202347322087280483710049565677802906758537341757160599623725964947880296512353414949228244693091078593588005672998733742591385841438047883072754505490328545188667353830176007106788066305361292530236593007989651419030363332616670173396140411946854980753544720115765432865401840270250323411004968661301165551995275395945111199359611267368791032841927136552383885400961932275681362427505807947507071910565222402789050295332618800908154900999014569951981122540654681517505305867925642070737174039706097619399927626521288554946385793130619003748364063319759652239958617506026127190387575114879719218737612113541100638825715985171535573079146087723720387761100995522679488059803900820556874555141999889821924994419068229293682286545302256076524851937022002654173797950561190097169235105162087971515977730434841935334958505852086040481792424929814920245189335048121036009289617751018558942131494719261746316073742561953620040565145467325007079477453814040972116466217785277511236276564596086229478435275479700224283814376052771293276758629097607276642464821146320138275687052298234201176724611751265470971977902456116144508867567111324998507624649806292257597341020139609129839666304423984731222520908819741996065098869812728173355970136047694093633485947423583899512552037640402939116229720946869739319745737064924961968802324863508929947185350071526300888575739387820640911257815636230003874309725290259440471805526106652553153156535246292103196255382887275046515575698065309375399097363331448351899051500422271712930951018827133229149455694398040788036657157747364403675726654033018123575962629098326247856476377477306011241265949419650930066942587773133269300475975633913588796537664305918446476761473023553374494603019866525525856492935203282647148065024002013841732200832269613101038973640716998974046763516579989121155463265704978840010518930570677857641542206333416874625457947017625724409534977716857385541187455975012691230916218790581480004822469171824726935216350246496847023231988361302770807152281418019471662554939805502281478517524220944241554863073593626523583514839318611811535586903796431056219088166423566195746510282822651895721049863789395175937659314667365649269535120382540086704746110743990214213369539160679482044807198830290152108670508475824697527916798145939465753782080341059823075977455181578796460916502331507435448759441260714002345150242996610918709223103489247464372913277251669844824225445633135311691974252385011584394039768477814774096688256295102878396893833385485961293337970108908809490044694286609006583373500168862704312135516104072763181417433849450167235174278719210366356715285686216146748653058583438446632867151337895181886095010372444915641951261920746735855668943704952836513008261324630694508287631740205940641400658218423087864654066436752235764789822396589249196864150019494267940717378034751878357007164925528492262335560818300868444444189374300912930993384724919663465560250442191260131973884716370285499813218190391792614143171482146710166225924610278371385533068315125717474307213230345219530832796422535411715483024785263563910535825475375383241525233197395224765579302671193877427015413758499102424748405411702208781143490698083291012241230618277089722405418003786799316702812397955284321717460039997529580732490227794916965605352935008308384806774291663158992458621302067553890866617567805303407417434191090491978550246828172857509130179142894720423926836381958059778502224517559257720032971648077019479951217847786696799730406710277918194855797949643358445297676703593460590534089249093425259525990509961481443015102708191003094608387105285448870918938553042148954883411472226832811492483599510771596945345721297784939811772560676316730566857171259694025700490149270860602720384686322144343750819878055647358757911972602638959033928366106825297141871712550098486850935293176941313589417229244999925511166166620830542799257693829843204555120171845039110293366814479615962763266293706138556855127046916321476435866948434408002799894504383905135303465206934360534191135582734780821626249700600051492938648574169898544663948172081500966922918631798669084865104313352760508436816185660467430399054944284222613678956033474790389701933184889428345432365869155767465359951453157461706605224335789580259453942475980072490494872894438765279863339895274746029709372388234758269263800239052078651936601789131522020664655211987018481050728032694074201561718708980144114717399852302978928128940057368392433224423484209979668942709353603335741745019192730765933740832660915842302611647658004802446392673313492322387424952768965603892331874435425310752723845852180047688069447567723698324121837251384408229058257408739875089356523366790816517587098895213653314361150303164418744736479304280800985693175324373243057306843200423281208652740065211349014073046556613459915324493096601972212236566320021779891778576871441420375717529851772401628834199495519498526382118120003289185527465024634216443750381632510964496652387549711720687944720454633669758484737317293545453279559311325981640198664640958717146422281642598472039626291918500826176665044261816082199913283268371812657795497518759105028740738204191692281601707446053706868363680398928269283838994739148862811969606660472127270876695637929385517996339073686776109476636009449060465959580408497426857287137254902610466825938758935926758233715642423733959723249931019682127599504064009272448354330156206009949150294602591446045463613684254967179650489804809130446782063330542479741261599944711201848702014920090105391270766191092860805073045883934155959597352002018995136045732706914706922965064886991110365426524865906604836731779527395879759203351357556502647684938451790640992343668003286222240460287882608069400346004802668850588078199990074174217445761781777413693755571600558414545708558257704190108132471323885029394545959539167634285315792171745795381523527133086435986004655171986728048012508996125831072227744825186276781990752441258916910705582133890301594628480880016002046761121110065058570299634161874715872211195581437112059305432743356083368865866117746067026633487137121015555912358857382102786123432416556753605330813606000520154785852662595178099170413697330119911120283079035499102117927201294383345571334128164122848629203625979723047010092788385557010216310895697616173697708584508984212459061811348911631404577346347797260202592876286514274171023915751987784494783642469134580468055029278449674511711820551869211567836670926200183270893685716978075392127687816139492838144379233865688203916204137008674737438469578503319979393315889154786688267180602465103465512334916130177040532509887894148985584153349453345641813500121106282190892686328342799305598574394958904495632064224286322197098684212660635078266383406773190330468631654840925362169091550419327047629021507385690476087717747262932004338834459431152699051692222241103178520851393476428122263787964081063460026908930071531682693998140676726705378432849544312687824937401704893697316918982147917131688493234227053444540064743480385226320718211976321613062818112217675753085628776504751210784990837716532098354672624069774784910627845228207085174895757829338498985273646574786283371921768760655637106446317969038044107020711650192781701671595121707226722254768869772367048240665825970362737768355803771078422019830808793556630035293611763846477657054782098907935296584103164886256260722102088753720379710872470311312949961058026614651885914843723977717507103002254111726363517704587099020763347173797934661327178716909833673432293756102841413267353417145430756501599426842592250876155272471988361296624496908264915496344380124463276567002472776759765221942398463045300975355776579846902403846094448354776945086901046326083994972680389565194983827969586849126678206058563734748126431903247716562793420503388456337996061475982347788877434386615354152754575987866924758822635449095144477072549549031033164066746647397417126536780460283456992163300060394667039752213941556824149476738337037462405271031854152872269656345020063110008295710415156506380121350223952759327540339492115489862103845019311198122703979990958457069141036240811992674667437575745912974153816958744708729877690324687604451283740905615752176114523462521350193441088484558114834970429478482154434999452915764235512364930180099789688802480694820109857433433763573535598093995818924150893858035953553401802755186791264076429947154911737028837050178786669520018186052853363387795109894369542742596425587814339392485285328966594087759948255493938281802562899604883909259333544471214230824720533566339532395559743390528325477209459494995607909327713676693647056485669191791145243121541925580484272726053020230588861553407286663655435002585072262517873021728557863343980869720100779724273923446755997709786647804054556912467363725281211714266726121044370159217343196994044042769807317354086450041261409822407290185674500605734029569175193971436221825788041768790523442753170938188490205449844424614765936378425717637794917188005260688648414349741806952161723193131122620351574710962884538270480104855190304744573570209546123809613853001892275791710846275011061131297655048269813034262467063732350487973397750464234691334046926301462935781031253726009518620880563332099074612121409066270702048767484686346979590110170928262655388767866922473315250771403485000203577221264753692413685564947992711517666463625316594119674847296147708129331001116148328229362564693294685510574685020765874168419221988000792831137265412881348214463985308804145387888564797544298575815276190975531134659171835380190764244319919824300517068507727331138472949231816907465006721842913631843564515494743056615032499051687825432269160253968221927336805751096498194356975749624155735395389394371942042140924969505670325627102143716089222043684496643550211570988410217595477094010671615406826338507236069209269768857468910571139340338089438315044670416741380167852445617796515986464020911500573339880253085269516179981048910472303444246937611053931271470690359791278738041990016777252028071783981114690617885667846889780568936378168405075300308912837245237703461033131595948159116075048604316252917446169835731862201146065158313065438110764061225563992201047650014157709113876979807579895963844995381675717178552782006094371905314286352398248672386431591183998591759969120368744475114142353814303092416175827110838822713637354435776775620861589899006379625873099708622026966445693816137659984666812096194063638367729038719749639860150904099296220522246219376750073266822213668675028019858834907212789822709280549221537824032571301401943663929324249655938084003717296817352781027023705244478258758188713164231764342426412474468000816066680936612023222031701875334806205154615186932845288054976291672494269685478756986507409817190237935170049145265372203082586445525189715797383376338752361384839314227888668615902872660969011636128693710488534627710912486826410619155525675125449954398903428981454006327524081331922326007729826463151517686354143595864025957751542219182073610326100894158165719784605325956214852043960674359149909451577793841897128295277996548125758065341530049702337347385620370517214339688954111565824833578747021368337408916717203006862185200096378113303021266842669635647839253846239984393169533094842140290331173976030726329995872496995416363681676968293639714694578180595333200090996277023040014065121389879900409680631206122534839097673989123576373005377611212613730549215869885948245605449054269377219534134428651033226415584045417066198343343935146881956736365752267625359767209706133268668850606252498751595833336837664958561918798686632071575393525482021224861969058847847664233762051801001820133543322828019182650476541142211715441704144089947215995275984815294405068226184117948347125102963512468759962409969545831918614231795895175130392866502531340150216788898517338176319813017441251699683437351329269975799546864331469273113937163469682640358014772623499793624488645034848544024525030383868997017224614189541309274882245791708523943110869099120902574767353221991251510887300399502891518594531662075489034327335515243937599267183369005677655050676100231901948473684879775457388132983752610334619546930613157486470031885762333158354277138249846592307433087278387563908464954312146119962181128254573441100986637198561823287293421289385828742404792217338181138632979927015680574066225008306621453935481779903260907161220977476577277560519796198115379241281564259549450832091531179729006085308076218990390698840215615656258922136729826775513754692462935792279786761976325560414578014037209429296845407471618503569855207365590672470371620173096520505449657782996561507007184282516272712326239652367992369582756022967585075284337575427616098898495604827869269250933569953425923032139549064371964468914958396496644178390459556622210371100015129591985622745816056322563444366089620347391163984589302127115977075282313802502651939338451110737979194032487504484153372227102247288259241045488001345027158886391705307320355877230354155749405415404660854988383504835666185797164222349154437690213913119036229980650009828560630115071120854336791694811869453678068399768539620978274774917324265590578879589073928859271374012572216524612632590259072189125234907393700050266526639220571383530417556173926358783094629658967223869658430563972658442109981112188042351698162498173016170576575248510513432567414894909902876360859036154893260937986216244070974653556010730658549695757166658666131591703446740422267038108206836207291851091496633823599014887871420483156728987431365594700893781807120096738602868897563218222024779166748815399270918624994969844898423100133495473190494967571711002309306901486253590369982498506460277572857836232753041721798255532772083397429813111152654020297380751503628330821436973047773029158505341648912402573382179455084254127514495476414180399295013784591597189183978096056928732186698324561823592958686340859935711438931089538463343307895778854709770643724298546211170735321406456489939994824964245870994345888751480353163983128022371231191231601655268874518793690767466414071005279857969943828286090161196314381003422450071858646770851083555098215425960652059379719546969606396132255338242973577167014571331343203047145013324427213582399587040091978569125040285829452106066513016456945251972579292369113506954785074730162140647219619331909605403167910713194555602979707433413731960582186901931329945654315736191779935789467972889047920975194290667908391132231412149063105408155595064804619882585372402298592106472794166849302567630033065833532955162522070178659588365792229545414436749801344114929834150398001664956401529607064733882356250619594165804119270292408969222027835096986649820675669121136842107533627780843062977268246793739130894207862708607410253422235199134647264929430585894986871364718430700378462926067983165378517622123358065744937756499550945673104989992126062378374907296046873567236797355513838047861934150515742355164390307945031037445309971404954697241312282872292609371250253823569322697674182363327094527279028582852523716189820949719360526124733358731293446396098643628363108613753348061552838988733533351441843242156938767860239709867963025851126567686748515335743699993858987311149401247796359413595930555463642461370551723909247579001743026431598672278433993264951302817474951288090526648916859362858654365380556411923995579532014777150815967817346070519591291169076789484267181236702422720938622890975245151786760072444363217681228161859971269248335833046682714506468698184158276486642589161924898369763456158865518233826232432311950316118369256419918192800069571063154592439101992883800621097198838735401596510879901046773854912520688032934267083120037889900890993087364214399206476967258700981114080884481919765193867613497154240508238010240039755358117355223541557136427177009125101666342241227928459394718504202993890116340947477869992103012483710704091446270233285306682455108953630767071184632628847950397638232649214295002330081487712807493459965151056418229481409224353058500112609862227028429889529562636623466077249675675155735178515235562600751595305454178096041959283344697506023319881175918609013189738678223413525909361020159270913781599521208253448805264369481674101111717029891100253990844660046229874090429727788018349091748305570012754105254513000054806999877275591180305142939017672708113464636342419637438865284611763140506301873427446663821536035718279344390506770480814177554893504346710274167306599613318991424092581337184042439055769293925335459272806314944774598998460578334835912009364757210470226163862772348876750250083605766732907325213566377538858866452213993489452789957854018134942234849942953882180800143001564807707136855740408794532998336300500788370366606706223923385275772303507113163436364425669433667948592870668880145874938845293602097627650454750073847986809650204215890888408876629397410302608801072354150101247076183317799739770950569588663213832995500743365770779496450902970071199553979069951690682696278121051321827709761906838743431030904442236006560197965731969908350206711634449850405496564905657664344997103003080989504783331221945495728328779166188793620696791905282484406023328207097375519846524272767644998254893854279773719753664592711237768695654006519693588163444012667529412052364854954284764511605737433596092037339965698479339341467512746191102599495839997049697237512705481400411413515160839235936357094741940594979211851212291490728870455793261400702778857672755966282749880034228886325203271295478743229423373943315401657812206556123910310562951803072006759674371858607207576273980617862056352434307560226589203652871491434433046511967387473978619937456148160358224974541832723448585298805175056381343014336524348291778150184411344116521199447334294012722745289041290954371350453580506811154828266666990063692059652588440842898830301615112945606061365256031821867256357000171600927255233802717459978579871934128316189018844079376999437482696414586284920198803605128331708498248153485832318484953299761616152469176267827757032212140657314587059273876984922118446050607041065746566648085015417489333955458468682157883307670168235974443434921884925348165820438103790249361716175230636318783936001233973697532991108119414568205072348477064216205499406550004926949090875279881893898438112715712434986754747658341193003760073815894472398872668522669741810437828824349892881835598521853223666772083318824099578068848230895443329966481223416001165825748490599366382206617756680848491203569595378256921726576381262967675318866674699648918872210576123149661156583184620517102035377013230618142491239358810472978970225668006697088355408968220886553857657246526306079027054408108678899674261226214523844555489292400436895156687622997499918075483689011865137058286966615800355605502648840052098268173280090034786153054206687532847471754827411293574970166807880377772964720194361876312128289881922000082823749605586036109242035258854055019018892558379517334347653772456528628815052631149545540816116140328560836463400628945939275848620532263801943103824304510716957838239966801605625933491125822896093008174927157133846452689857313401664201508570312975344500282338601656549417604172163913200842005393763371378199654973028938594945759518152567919754032899828863555267680577585279175575635823319483421031371339768327866365698967371694450358562694740769054603152051116576965253622364080149563828885697112103088014481226589213601030387029732309190891516954354669347275021404186229861822523633170306907967462735572279138403965052165033658980475346578874972660260427931045819557191602714274588723459429611776753575001943625586148496643341806887956159645687001958700801754965732623460370235345598738479002361183922190214683317983019000491226942390167729759801784266025986789179285844489947808079291876874018300958883836405948120569055270374800253824426455345350984979739976650069851543030468890838833882459331668003600019361195225037286871547490654249426116830245501449927315471123153526196642306759584238073941993643156347924690235644152267199605349369474292895803018541849457873643987858016393308479711775275963131882886248831683169446471357582911129402114079159316933354881675975064169918686519155639947471744867596756713468681912913605541504790268451871809829118995049004797673903161012999609407788372458038055808631950149769511539343516991779258736494294835076596651733310240160588622413294807203693488467275532096503615771705019138526086075757027145213097008987331231627805392279690401994050734151613289192723875321366498262118845636683186336617414749589998431219789338307943629014276918089366569080386732949543100912398234786468111652491946721715347650427909974424648047904194540968765545467674283742145891978914813377623194184738586636396347912110183222513469803395130276538788425780145749101309360995078391782070562695563391502578349231188877439464099743735457705655338226031783423527219337859801694249249674172923516236847697476440446891629480774525835192078025182100928493554649854908465173078360406782440480467956155014412501592236170153144735669102235388890440198874575208321581978565775419866391719342543122390507672896491929919432859403412018934678637746306247006375100920175082114861632823124708763506422130563799568208768434696317518375034155069946758679859001749839109715928703270129984000626266459512079653869024879112537580971546475592648111775807364246816892030311531030609807659554535834912277466566351205090641161555993437025855512249511918107770378526894860407430931823733813035832079654201406656218851936772353036419477338953190748541448794189162948422236428465295360883434474243927704589691741374016381250189877705359736530293583137420215049685082007278837440495407342592635974920611586620089746106403025809253325313709055217771592201165139892297815464488217524367724614178844061568703086156871897550524604397589495490576311847303388689870572969436234473173430462989562702715093153752850690087305288911485402071486206723556344999282139948320850614233239118538301412844898930682944007840155499679731482800791932657404060417317041656304365010699172608370656736069609270256387905907494061956430514445416003658076147508984864862605487718996791133145476031906819276177985681998799147722010693655991915012523847969198925005852071817441926290037081374767046475281312500085213801527967588541394604579675299618201407912509332719008213739402023914304311671674216777511597105511575411878421965587648785480896038543166757780615359392867605800025695142004114040562063446996958214540208184024880927763630184975011454196499407604592761528889104441418857908864677835909734135160777722347039298236429636812957109532686905982964935196424119589921910901614706366031916321217098495947461577952656540993211035955335769035081153649899717193287661277056527168182318707582850323009457184354661821133960336886237521342431017218703819797581402401739138392382661801269612784878744474766677113096561027536575786577373797167887289419145163400734909109492638010190698374752511585536956416338356505909187312346383072403762708264353992109781187778031881835547458021755280403680395246288903927666407172081736745640354867951634385835675301693639977922107429988559683024801685554069400376365232373262257151538212991408382010535903211387575323760120136900634823029128263070233588961285433182286445625900769283197479309128189906596178616706487572441885667587122237962771640343154697276162126967659434053391337945069533563891869901776276797544419177314417816896091183980962719664784314400628107987824825846479321832424900722013398199821498451628215654919972496425502139793313290506269549142725722957208956233875270442059932506686483339520534930511734620391476402876725503902413658193478079013728898475899160205283082857891269603605755035315953694791853840213255311994919999381143441989765258090544363446765508969643042455693490517860820167453781753832749558161597279513273259466903066287993210717135618948642375386888940056213734327002037215063015721680234037337566160428816763607625865581580372646196990933365346611133620818996815018599360991940302255962948998433858378082613694757244129405647018060739150414283167224487705459884935610761362615507975872689270791985658381308366422995841108372811119473875849864532734980049757351820471846745105433821386591982415237572984452115841388394408133365202952974072467739875663463782912359871195965875955472432648051909841556281699069280839620329935180643857046191060427343272326874201278888859330790476103170111940604499659019678590043265401879880468153115389947306048695776529273552207772558603209476663027256197679974724124978797109603700832434751318370913448708925514867110685274023041935141081066458092405955925600974846370540212574898794701393329097865625530827155120911508368627719616009896227244589313681677218083509125102704598981944644528192107828867184713547190806092149434785929347479454285191167393438399127827013947512332233125391412272998925598447179294055338106390305342031166705315392248269679303504793700667296310061765584807828612911609106926466470198978443982211931977614336931965695844618889198386074983065219431296613330971777135392741978053674960668164227918318546394381779823676442526289347122941525134237012600212670507940791654307770816614554249762777080802788910479473088529917041711678017580359751979725998522177298503439910971880282625385304468904675470750160788736465521904745867875101986649468058788185210193731812281790425441172376176630823680002834259953868800373596156078907448716999960973118922906501376091633625009154636861555500711950328671873005913628522400576386673148544167890846233882925976837894767001266207019754240654779343997487534294729935608231601040892243633459239498674211439769264706418009779223663645978052609607451763864076943880609114465150529298765517752164628163355375443014939274156661496099845171255934311247265894804577350405157309496121068971824355046560526186244710826979816553837879141615747766696332292390535171324496732636067502840869600539611301560092937233087689127444195959498042071638880875481155091865938801278938752932367387278433057048630122304662919443400631252067397341985352761436021312554708873332798402772419630271880475122620001620334154688415090129867998426629563392159922342205404629185390354312848776670588260305818182133219764974441003850599231234963069080857761033554750082263310763068859001263826387800164527662042817452333765045884929980829373638103751140662186973785975347671840031919884654217373579680017074426716287167173547449587864799587843250220379904650003196228812688766975469055020227483564509048356243228443196283098558169399958156866960302110771679235911714145619826451527740803397174259543654240854616603775534572135759836516900472079786649742393181287559175817576768379765167468599963847076585779054028965672470839942532104780238431619771950918608326093634530887540789732641904014519966040999691149048766705885729257875370543679594934317266407307323432241394710077125445589073786473790791400133564578985197840082768592718793344246608511970938350934602577205002139504531095482625689111598873895637602136992083095932887126276222084294039937275035691994327137838646686122611594274678572989834447911036209598755495957371861610458798520195726055001092985013894068438680497451243588796864774005232497514557419744200751093823873654550504472819143338221709549687229484285836137298131454556441431140298166940765172653562698331911785954146757678949748551794374201283688551611005539881882196565202002111331941450501836147161017868884755572891726819496687118792119539283437009011084417162870182410449846638133892695469178738572097621826046709494667359987573351826361822026201965388861809907826552826973194429640024693054008718149721212814467737780570783648304943074786850140680891764405590931389422115690022934401761838526052569920112661530447221197782251463576315263355853139402469985935852493394586490624581856017360203065588471243714258653159823875186733473859574240340903891805365481149021594577706092662052280087725698459078796658235179007296665825719893858406675095340260068606933596575654786880659245070929178807671295199261709479627113656458476877997969606819106689948152120449789535334619163208740605577525011522254417742194776113688480918456016281182542025870175714784115752351483509131115643331677555870813697684655754980483674066134751590697031955557053234115647090827346406955037187832042150762361034685147929474511683330718489614939363014744580443831265243669379381023837786059040794307270249823438945012669836017712258903938481425724979405459506650577489251077225719767734038491668023952716094837263640182914949717406327959324857806087872780624608166400064678436144918244286061915322124979171406964574506749800611044774381575584886695842874752619031613691897393281887116821081001701165350851447276030165861809288856089408431239525220062620964305018164645556786653847796540416772568690789686284552613013388273332900114850804451332172365637963138878522515734276975515827614296867625591790365185124270672600137682105213528240415493555475707351010044290359122666738926865986502992085507651500160798884339150092803444700177028930281111394880898041702355847932227408859330474988172259314915729605973413854926545748122450619199658217864145773132872083923079424349059712365351098384366869161991855793331178320925004070670937348736355279247804674478855398624567697154971674872851284996777202273255639978667455542089409201812899742155412161072197617068637773749841017116180847990571239392550278296325611328070348028430764438271937969841809150030327306005476262128776946459929095872344680375978410344934736553901256650131401455451447794907951378925406277156625164368158072690911417586308737558166221725350665430336769589207083475504239943793368488668164936005164424502305322965807404616818748523453043784097627770615950167952712548377550669967502194267736680518336625303884058771205347594504918049837042359049467213959512099971256693753567349732018241840101114826067574101013144345141032203691412089318283939884671739933227974296028087810619158319064735169180793433951069075322876175813556570416045718143718554905517827955550703462579155506849811979446690275491827462343551898002252458058473550821472087489637499501188444339692178189142652221140957374464542831215053197210864861142131762971638749896277503921774974647255037649076513918579740018719803893316038178951030592225683613307812468748848437382844368512464929851225741424366205581372874801978154573743623235846356865883643819486390126716477338209792369931590806839747934123715291987955923984300999614165302121344825755414887182467502966205235100792957512700697557333183503127215019972517918029895080200175712077895607749751405656072308057572796561340392973133595503734925906653452108253661522914122167980803005486358236577115735781674307681817688230921963088891899635016357040525247728083698462427114255384997287548465709250591820908897015033164875519685281687880484824798224366491050246845452008382664494406080091709359477261276119480712511972049805165023207953280540943747226220450072087447274130231253395803400573983650578056098537274376850419373143888088118714452138231838248449092320003241130769787736229043833487627525599887155771065607144621235858043406325126011638800977144638898793371362749127211809865895606036186043737588283815574802516604342232124326423811193532978441238899396642959114391722424944046675605602263506092336893818187922668800221708973750344702661903278406425278823219321766689130630963250312637757087527098150931283719445767442699511193345202719469468878311966824931802000205436151299845076653157423235727147370469522802958462588703349692987159094244279972227563092748492993343737582633395160463289333714042482774518263594663129747160745066435077826898819587451479723644778571200555644475686631309263229651185987929837274364145928390941345888208054030424259919129875359654354549562752089407841051692513701045506123973195756008177467364102530766963746002751449738051551968792724935967194977515406248143433086306110912343628785953199111700310124518459384623326935981227757259647962732725693106211720862043689309013989044348571514205837237423229401203225372892207278171653200778659430635414441458661231877217086349912448528655523907180142134650195003504151004930283337436205336222715332197126768223295719523920496860270431226734376453257992716688501009620688308596826339073816246273010352166721033328564957793140500278591212810982473278641092822536753258208034949051478772630054554134879880947699614365383118576386730882461165082888265695980410999226080176809517539010530504495966003355602424528774685014308516026526290584302197266061181506345192034475273311242449329963211873110893355705309434906236799310208587179987863585590882379964805457469212937931341240599851541907004893566559263902391595522470326629260724862387156086758808810463155283003850421512509925677077119234104554980616494736726635453037669274911973562900567716394782582290998644023729250192685100089649911060683861881158910076959404449901199282974121609824428401129608475356143217654483148879517272692825269969266219586137448880917076508022771595436432441372363951637329278894232950427956019911007375957923534918949975305987793606289093893655025042015615699576322569232452661425059174735325718235098917975335499285130631669658639541357646710071850367291180974606045151192097136924177843907444264534526740775687401107496371220985744469195549677108447188155043263476710129489777558337432126376676031595509668105120998100471810981316857655751477204371356094241540548895349591152066812918759165274351585384430515639398397655847861434713026673469268163562965196290017978617277361283493135240695193279815721387104558907235642782111519830823089165374940154159028089169393104095064547331563623330821989619839230137984303826844489528367732007558255583832227771730419481811257930779132602238789465374089477885788977014048663326755008519703803417322677873132023904584307413255914671074076814423981853888784599096551191439542132881021846169665321866136153144743053914311334032353974582911243615903040706809857501734455222987659779010490868685737560929565419234543924162168203074211471991445893628462705190700320202513774741765913004188388607178989871059703466576394105987358383796181953780428407009182604884947417578101724800631889923775466958361615380115608877915125807372755164636415781553931773411717536887242216362981658604159003850256721911234589831068516892068750803266572887793539911369643209787367604134565420594360329766015924617915815040689417083315766223937369714203778626534783365851555966715332484717659907547514227750360092578592371390109953603998888847409597023081593324041482557055894551435416329414081419930486970904538850458729861873184995233573174081515918023925145536351454178445177569069678683379413337812104357652391298843017142750737537932840243759752067694604658000056730780299711935901485519040425436310933989552989151113960164470955348407561801990706676664103953893279386036657349712519039338838538026967708191279943660752713826949630422475290021841365287165401903760368610078469099038564813056428392833234716053203397716618512527835208858357552851418039390743780974476489654421784497930876025556641286500920751274980435106095985193332831823957401472576287319157711949606389628279454741805445380828948036026205661371957924665615729908325699269435892679311506302192950106947957304649825337639733614275933305120490299463419642418136540904185578889365366997026910755693563953148756175040232087965846029751123007846935426762500032409775938464949845854364241083935961669267103862894170668224175607538691218490484683053963204964760991903353675914308684509078762816224602544297228533001209532432400593446074664189077853089461704995936466081673195549123509472884258803359988717459443081592547369335043863231034949745055114945973327177168264524667191590354605693633758758267830293631859275963312278410097892872262054586128726049764938279267969657818525849107262074506255157837102928472134811189364920710185709435125747077835910860498961009204787357834360192840517573399313824628025282415403232197905326204788398718056453927503385276714320335304973574704994599890578494741692987203333344936973812443850220896801359662237987778122517046082394192568276734812472144225353801048000323137712335133157808788723576208875070366050864574747349449898603395047658981481199886391800685869925848694848748814987107017343670199070445770100536503116389674807080684831704587135930951272467543394661060959679893680659088784569180652686472651882776421503764560660079655995462947355315411869299222180836553683254602417050596585052924458478453214143370815734944970153586835416314899388981113798175759805862154546592212548082590772647682371972098703408472284707877767834041449892132741505735913419267960051844694220022882143193471302846807475531357382704643483079953796463454247503379574420694713792313483276823488573892183173517892902045861266759976290916315498412203916520162746303871907020360906330318750720002570288245903453366944624022504862691199841522065062906632469011194999910828502333601868496836160153828533264021197559026268354326388720464537623809303693434386173720536194130734216139659391018899439584238164297816235926656964268704516825701525590423638609014086076719623634804747680655351824185236379779298599433229241253178165101805691093977582223564054255532518091776576390797337469850417386720552137202003158806820471320616209305369511624807090267971682606764328152870447553211445092857628794771869004946131077355709449782146866367681765112412935161926023515940618586486967371002746603251164022995338318411705656288373788260314637879141821064616363766452329649340954035127867561298238718635450656286562136204478872373093557720853368992639705403542053210689287953355477745712225457065518960080888288904235482513306286674140627121426409471159315282628042807309277361177692932821023233453622655210977910277055014835470737417953366430267083033808413330053282685553558359962778508036969182957109192421027521864569524269831553941964295983894774500513725064860153153512516111730176005303474478418198805885122407789951297176105953071272010992749102678644287116210530874467556195797954216464046199416836440202327808712713993933103176345537698426512615495298925414807155775361457245367655944189784977464016284791850698068100286712511382317305980325534189184697042561388850595696094299782112381873740383462631596575775783652716526314070860575286994708262890208269565822277136735885417411806488764125143611089503762631478245348223795889561267218792121859801248893506273715516426312989725807663035574106729242846918498206974305763038357138867518066328677305969224346631621573869427785281943795038264258628913316255759512017654339921761381318613300981035463770445160936214572199570222983396500259516814191319407721482570189103841962306413966872736232495365958953276716331281049210739207543850508839496467037950721614014654487104465445396147759900684158424949162322227156336382953990206900094547745979623736672564075519837021322710198952283470067468861968894586179457207074898344193011070059960033380610736720026432409262245759531711696887280773145788303623890114961422405907987720259441898739904984809775859845315553862184342435146982118747554846250521504628518137037352996244062680655780739987890925627935513945858112953827920048141553435145602985639161384503558593637846112672022194831550277106949065788728175751091629655446789688308159650338685844860267152635652950365027533785595561055230755017592907834837050062818853077944399665348654115648434132537292976807353006198915112851459732928260145098121358455628991291023982797098647681563524982668955295317756845926211967932874996684472097074920807441215202341612086886814877431408220161552772964971925993789698976272346851268454996799923974234079753666952472820562996179049590262703930051619019931300452584241777603101988337699183493973662223898850041246183154143762517687078023362333891205582484338327566898146565499099879563685980479017684965128504929919581940808099609001690045278349019396140162156612777563224832036313677679326498031060411877667880855493874748371928358546838776422003161832975072712927439852000445358065215212845772907344190470984956060544103340123451283208527431581372772052725728360280296794085978110607195451761757255449924302380336448533615303428607786633488802868463216892753259865705134790452492749082121750164824723543477832728142875240849528692991877225189065962458392898035838389005370339151084964042779282391595034239308792537635219376776574342948851308043318702381063866460188612957746038385031738735348397345579657455012029215533209402344700488678942243382529482109414697835210382161852398782997860417079930053065889084512186074486341318434852116964532288098942050413024872258560205931800279795348254151932236793492374284381093619869437911485663904735155749022424249740965795309414705222485018313544397617137200829376587800916527280878671330238387599973175673730702952069109385085658744939926867685296416283877370543304079487332268844412997960924038467781382594484775981280006504653758742440842076852709754938780865370715809442776698878452755432771715282711118206588216774759999018424635921439898556358295056511713445535110892920931816560977998735362711769908369010651590036033450096954121509120643221590174517089972176593447598295113258200780562017102766427589687382024933801970214160333291849542623911307507280174021023087722329874211788849890971785065961423014520767082903553951828240317760351428348391910448737250764181962491679932044068350607908377542681346395350425910986377692431913505670374412440197850862517820078748209261868995848466808799605537868131290287680308194543391791145095977840235641907701606909649437504352431747696259368128798561299099946748686658123953628504322571741460083486125390314987178094269383856816650583486595796096671689692852446765371727500025942075070051853749031849063392444044027724474733009118759522187321019119834802785219171670655902331810108799111732577230731861410582609099420897621297709132052661206615012016141435159284907350962451452689955315243999570366233738782157121191101948711473137555687372588674562692005553428464458740718903969219770863677085622864919431017671891396762701345608149823248232118548788464695546761539065233744363669859582812768023147759753261238911180800141840694253872453891227131725489132991500259501719077789985768964116714896520868481222380163939569744634071308740759654072609442134686553580235423414433700904105874458912706938918303400162606400733720335974929761522328210517265334116032645722307129025556931616185035938259224638523125265416523283784793747595425183401876963614852643289797373985249530105081573815944416942118616110659043853712200883760861875700661886250926146082723781516246682622145675237569073337970580128234255231694884251671217126303706982309024005466853400327696237744614423053470079811339114636907908950990797456568982269978227742992183420702221960036888460331508857011172934897248728392637492796224756112472976224266547841162247588061995532116786116864842883808744337707840392803481035249868485234839275502179124345811983450397598912376198136314380292622997367333066499403515688487925435772705925378891788508209065768573020588625094849670929232427488206976093921145620491285851190484030236071045009430766789524803785934194777801478596677078053267595682746731940780960952504898528875987051308309831921967533206154510595203875520736417998698113316829965854760023279612746325639544671677845155777291846849610045704629741712708719406837206975913011744164254317085236676375387416163959712955643409121241777686441872599661579638036257412548835696657337719156336491948994434172203356254486754485088838612522045833075439363665645211858169507225974310448303864613192072429610966371809830472345764664188484547248721322678329972133604734652485061666465317747936101235604276269002885675229834145153235666342315186218864195833819123143557558810983474408910973609829384341549466450755716205275108712210472267873533854499257421994979745772854444244232111810088714183907410328307557219219419133901235976020228313729658876285146111371770588496581348512621394869721491003974113674147044959993317199424894592880700116292943524237251095459299402765917480435559241316245691325515811283624575939693486822682349789139255218287886249221112965640047578308804119201398310585412352435391081123808834218252423866174243189404959105363483484248420936935536587293829632356706333961709180531792727075857845367434225371540776028920418434298290521535792211614340676801600991153689968894022314798190201379147740362248501960904601990178380139826361733336315443382913310723053657633445400296927750882691098403170587242720898856483710634071536954785590526710539451058405685446459577711138157153383850994514808737783811294974085467387136883042603986947349003976866919805221192027857277827956156407396455092059066394127062281301759569906878128673976680207331413646311071959004064885933458513701331008254111583363991727105312249942582747171610509853188507820297863797267915221000858766704648563166419598425755062379980067948771957577748739867194786564301237237006105554092968768660831212310574402156329799044968906084379728271819846644368061579231315333657348197127331012962410032730868339801464034339743775686630946241589175781974088897801666457306660901722947469234676928556490810255949933563504153477156241593114600942504814391934754058171772604140190395888148658834480782762103068718438474727795558650091694757941541575473003448201603135690343417755985053022301750707088264113603384239624447313724342078419618734863839824620444927682560060887188814565772085676514365258581832359107756247590174743640435651178031672270751337291217619955385350337664369371515640139280931274008067393770295650585503671958245133246186812702268154522143939101020348368200229943322190876149583846464843900198996791332857383329856141432870449990256672793808513927416150108050555763957467906927737582316053333100643096100053418778129298820782435455584794874227698483372615481043123004371823301724082479199087169646924016931793979111421729164368289669997030396331914038276837082398587258934524494336560784265141835374290344396506381466479446726928082956679976324939107413326760744443948234259762401886308726598628756279371604767161976128577420459337821321565995876411641502742208131555097126911398152376831905367111087922497681622826147198483150598141007426337166262514916658267956169436842611325711939276507930030724907422378815955546789470981910906460043024982089589795947431186143883788658036830610116567637846003521020537664300019604422543641425819394261790641016661286416925174276546093025940748136454817494334875056725354638715669581227834599264180941213592099742582866213366169515252138991130778472381905291209715065000567972518267144856686638821088451561849332507168948345546306259254999452047538473020667454999963921110814174671451553281244622436836802222122406835852099486079751001444950974578590607510397561897628584713645925942118108264381397562756220041897270311420133003489535137747855385528381776471581711960587803363011817009864992396947846901828645308726619349522739120328048929449800033057869979768628443919010349452429273067637346705078827497864564491533237473359934462545404128162723908025201025311464370575474287092863721905376913292171247167081201939586903805343122429044874036386368562590789982708574621330588421367289882810145241690898653251602047638257109592090946238318199857863358321352305370188546889853135741673465888162602578115695249246811693942102647920024284370400241418931816000858523253624493372703269280343779850886631154929579944172464779872466634316892335689097291432214896954982268830511687513909272114143637759092348148532089559869860078661518474350992468971811245255578621457206378030645199203392249900151644727607086421915001388505931829067864474628812315867983115282179785228438185747814883204938702776472340636849329313951522970657621600502498525123533145660672239553943512271917877580202367075071337354222367683509071041301084030163922598128629444829515494246538490679714796344733260910289613453487966443187960363161541574718321281382894622169353366635155396440224176596305618971279221333187897255291385309773786385945162514522820994115541641404431586487607618547035295286270527489524863452638097362055499094532729421836007196449724034426778582129034243158649472575243267571296134729166303966024421057450781962872755135250334322715159486880261537919290013907124244927748892728875644290397184788287761798329881013947863331201308193732703695969649889747759710924841490722110604378210289651186187197399244047275537918338877924653441242156563212993350582876339373466437909042391603962873353874806941320725845646749555836768066198518539996915118987061274553398737285838523550093486192207188359541467645369797663727537632366118038920865334441820293268860616894211871879271590297989972171865655632929293490330794145994865769662698639834385568753549880273911582679221310772820186472883514681694672094763281784738966650533764491757821782209012629764365729129800241295669192101249855135853845214201678222222247000586085363978873786209682834439277171229640853814705413739605622531656764589002938154045083309513560554096464755976143598622727433430152953513581085420898323544531283197691751336808285646442727761882214017351444135299888356552174080391657850951082824192514531963077678702471478701871460199485012651119510619238616743522499579113753382874976244241488699675966007491681170352192060976608509609042824570307231643389539226569891883975951482581827137634868533827230903977241569548926441498935276737099902730102387606020992753923688066656683926679321734598632602901359335538808367599768749264587871758563409496986636321479565770013576554360596271884109610532429245259047063557203362365352693677379980980651067291896139869361914545539561447006720072752177669305871039753874934092266588551373387530618020098826316147644507078083869750723797351679078689254162063379950209882239030799487268735579503258090781287566837295490859548517473130587120259364065303223595698510235914149976797104416028450569361619466781058861396848997816563288349102976283076742792982598870360834163729667512057170170343679329915834334235798968469533140918370720563909020106871695948349641782116754244612877766510831570028760920039178734814242140730053516226557110581412582449170772236480989144264153793435303829635829875422981664467615702157795356913643001708010574124275748840175141171672992539970837916055942512328239517475493284268551571352180848010430466383018358545654875954204858791327607416543004496377707279704592797942870265552245571510977155280198907840874472612791432932872801667182061561629028806207749177155134879763154706828266311378008237392932015920574370055552685240202313837224053787761493764822958521147698612032097005231995569074050040647392446491538397028150086374174372752964250436925293214485705128074550163869279489305999193558231244887716094486280462480541592054288199847217851086256281224607854807502372917546372183262393497633398652470033079315355392583587532125575357958038089965012184037032209951010406522618459156650975003845333171371454222113016262438670819021867872363077451271943363306704156414591976850908865097576803601036222671929145971973486973047885437811752499788861190089160922317535406288632534276788882818669598570444729575439736705238629313924564969391197385689793752823169415587688093442404230578101488129520832232181323363486851283213946121971587226762701188759900274424114736001695053993501759334977478005769901069428620262781441257250105129117407961349989211982246112369325678592335362687204733243537758508650931762970608911207957051060830589476326506616804084458324507595055588640645719215259197537704657418197244447091227415789832406111239102474048364018091697580230835140738250841833697981780247906886349607895789491817917893482274683907773084498715495348616563559976655194832417890833054005091091566332698941612894704404314940352318652726943989648766235946759006066814377216529418852556039590112257897483552184701082937051598622095192924708224987698075469455615296623810139712523116216270229595686152121343845954058903780607958375730443534216347747665995141096753492606510085941512965270605490847096303079266194162488042802828316422003764107473492995826144682977547559452354566921743697921766765510965849174607809190816321608344473394175617504320585929248350140534827304856869092888919620866195381411153979671899248074429210613496499120536904304136807099431623230198612416141600788625274677114328050291045940121616341877774050763271957322637957116897916897182338808998690841169949266609966871141059832977754279152002171236030761455864244274509226527396448583118200716400892415113339665160786424812943351140765612807787514138742760246920312447995977593802858175376644013889217651755522712589201225311179644276329892639079218905900292459039517904679794945403871764724119323825649362178437444804062906875767884678076986798966752643253848438608960447492400511930701061377705968595489423209104784316040927115057744815669492861899855516559791287336044841103911937290824819294810862402520451646091691239886058377572038870649742285803986164060458613371610360954860955949733698424735969324420550647224286174161446463439405502785604061299342803362298531289045450840204657348086721784475379956342529707070516027205218064165447475898405168843273818087508585102602055633705471845971820314788044047875817893109607476814782296055317859265546775742754551394442810874850968660569195957150451339188927551324780919770622140900986026530846911709110849157588805716474176830667220550689105685824876624909572137343554975838573584000233715739747181193991310742133546371048093073830999030087530537930671562215317230448820478298137079613903991974854390248461174702121655179870864195886459184753816494897298895002208535330876390931596012499367207379789827538137841485051986839797594758652104517485931423561727210884833473269759074338346547544693515632790281781426889335061850905721380587393533765627735726982661295883180110883241900107189588167898997396063255713524747021982621682625100640838466864265865287539148527847379718290123550831268770787540099067097550835652196670926801376976480641453394064790621169811768338718708432736063951061562444465001132657693831182231648838744530787836877491702902151743342701239698064241129502824294678785694772914189769739099653411060348668680586672714270753065846486793073349582402538722517691265125343105263743282770260043665503361792003622196297678983619275271786006228002546769377397764213644816182882288006292816408416823045872843222622891457040250196023465912252914273824555007838958927704116521524311742041653175069893930913284666703958139615863434295598679268822657071623441455860586495314363471121095907683668143525732023311976553226211796642135358777957682980678951590084604591099741144829981576017291878543879398571021217622179270461049791171623946430515853492050808820438974431258790331139648038549685388131692532407861505977347167796887176767134356807526579178958606987762684875379649893657265780623725032357777629859391056930246986811701269948736748415070988820096519394095685954392825182093324542690171388132042735266547506452569625559466621917675778770615537059024012883573594943053888466472435893045367912377752786731751927812696551535447473293839773966623254315568673470620725434562271844352442451064802424728289489934508436588899510753237301036559579291469463271202480393085739374813725176275583949160307338653967494166237983971497517219282353812243924592820806668313613069069734408032057955455881557690652621514841558315106293085780671817756199436029081814874067754184681403021714047685901616737480207313581193049261187420939666032610772077345459347171541878153667545889190324967286398877458417740577361011448523254853883064209233837392783580966806583868898924018858564340722463373264993327132699307200910478224707275744751938503377351145816799733544041667339864291533719198280777799270518035960181620900495729019856884163006166347666764103063268805018934146989345077604225957441591230108562880927162370087016579917591736306116277269068366060089638472661463637909469827192902081532098899420407754659776621632143463193381664539144949617569980898587096115353761979424122424016481083883832700214010245108937556913138263486796369794506451962809755000185924401292589612442767952170510987638525478984025968983803166826733807549809647311090718352294083506047111739089325012304991072600098463890443967045182745907214505440175793992158200729861830218971767787267488684843223600223050942965230449450603926832265865236289280291812530797071892743095844026338852223872568203806558539904703101223397408765590943515208117198501941100525461454876618080909267663198638971551855474102324880158430813133845428307793795015741776663342004540977366101261921952695839777383362155365369214509461884038196975802837343004559876613284334929345837511716670618317916315857858923497954977443915887525810204661240034049804993860877872145714106082300956645440665344330537081723627902637763204736854019540978064310258153840582948963597404639524121610020261458733909300921156625288747381427411673690670493815439656346507379539956347558388015544840326484655184509481615633320903847822957675867132092124899343883792993424769643831707592505246180702980490774249629829111255717285753429927141521965520739624415073299711122293489086719620404556850261464646110893036080650257946829356686489836158269615548842103352982702398665311823334439681656934249490180934400552338210584607583499467039799802362258320384718565151843786359654194690290548647725146498480712524057262420025110778245170504168425915819214031722129085859846565443395432524435477231231907386755190852002325889338983278155970039980207003503433500408101632709099748486504418724381781990966562777067114656830068174339508323644753207059911969171876744580194346910011652661182338414753954110944811983113895537383474561872527600334395738077714360113665129052485330544562198389667808240292318832438680464079062447885224029084275042429841099328602395980093661783632686057244791689886689673329229289828772522115693180580011298170221735432219645043055039831601891499446148763127440087485463731210980971897368413840021726092534808763435334529923187790903787427004266585154218797671867532331113248478414938328841863998212202375085309497600591278709944604059481099493715449635593298443747325511786161277926291670285421096004028591138869905509423383435520395374985246425888160311379078747394372818292770035093495256557903646542091923486084993783307871074345227479829361323327115226562492200053016366754943739883558343974587062310285510320774618068722937867829895991292685175831266616263855772593484419095083821209275374063174739563785429697804497346311433965466665599775773869787032447523073016808588483577234978453842176440050888281540798964890914742549186459757046258273056036143627811313052956269074385158041762572612670627370018973212433650354805037638425186036555924657602282605000684281981824915612811894423237508391710268529608030292536701939986728779523310130006998912723719944384116709788594750730971999878106504319763029293309345090067652062818338066226684594879928164838674460373962183386665140970520018721224164383568335291994514326608108537083888777067143690092462339138350178498366244368389792688463229310076211837514674949994742915810479377475733907180190534458931016902672954998977949664094842149737588226365504878177795491263485431806681480564610029905379501718165199912495545385491230388532993191189170596693322943327287215609360372866005906032106108159932465827768750075300660374407025232143024608312533940664901806470781718848905432482761165697188839606778492638801542518530302384818849768207028898542921698144288468913825141342035752824881395962504960508489147211416854649777055850426950070058679697680335958655881190937110712804858145315981932644042517477844106478662093273188621015583141041267401257352077955551576869282584384416248378987189092283797395637557412669130118738171021209145898337166773224132906799882990775833497897579445523640574629533018798515577088957937938520711477043950309579117649644563024959897972876801657105294472208596248193830124957382137879042081404538910611733434681236274201535269364508241398043559939926411958437389343401661150245377149410859997049527881898054982036040402152449397109934611077228427039668481617448047493225646748592337739612461761008109725539990054004713356550653268987389680913391361737026057213142790461384980405673622411520645371378211012938223301312769597837971689037736139972444829785687886247055908366287224526824756333151841000796957704856303115286785516052308874384276193311743720200947300886624276086029597192521468276554663733696027977699147525339738829746918415345411390907304668634361071342104168985676338793645565932086399935287957531797894283592337352849032617508434067918619862287118186546874591234471660960951356426983115545739368141566568749835476544363744161001889864066622467021394204293871856347681591009971175602742995219956168626300445891831597293872833408857733250069261563239415752817744073950389528604836872952599228476741480782695582930183832768576234025481459041309287698692939738064549564748585766134088811619123344188036917744803291105316336463347763156542384996500036686243033007856421279577903829812576233267177935136526111248732384058529734398425897836915296880106406705079201043849725823033053077723804272321638445803197122972138767709364119991394513726837389730573233206556178054106100978542688959981533699283457317195437064873406903181226030793380095974090743756829219427412302235873557156391929002362032000262452877036796883564621154576875546889915805933099793162003932231729256873586512586884739860344950966468769455831209233968116767638637486596726063604795082401432654732437381294686450660885590387146790336161411150182447623035160728120604544912886589049289697215179301298011694213919068307328760007073076158767763259189450502703101807484734157348516749416822045366315010915428810634440591094729565247574464098312594228607889990581946336831936324837501275892757269516343559119435125788469474855257433554901380841236672140341920403825819955493045866232836919368434245587015882916839418300407310530120199889478184529545460884848591266263983871370831184554391997535996132696069725317909629108549089954069960111993270874580218445671263695286559364149810919608937301243057935743942696128384641637640099115068166996092015988997276006589993176746811355116632802542514187964967484491686237918338853396156347088849488125076618227891751627696419047793730380740805625695641274882038589336337626688058600823841719727029295076190465577092285877990200318346758539430613701187746543132304826073676479353768244273511544852054485277594462058914049956837347843880172901506519189785183284269826920699227519188442029519014207974976289225397243581780692125765479529587948080256108355324558663956217261822364915902782786658126261443291939095264750523071386084749428700628636885311980477792402476012070996851706314920680839703824641201410023219935006286086244917583025813848098873386123165767744854189037672330048982627623608983198654665990354595651159680467789953074861231330888601931858113031323200217606223627722878104118357315828077090399022913825685635413640204525047226677733442580959356998639963666682088305049858181897819188081284671650254752120092327259931494041769961655062140463377327428679314256605171839424018679525953974747222126999022797821985066111742216899895183442863596130020806392983995811793673444171795429651398387490544078243712752450914392950030819753077082423270063116788573418003014382533899639499475571489448775371082211079761732385700794410247094092194677715082452855372425864987033431156581743752002511865664395751104294701704079245985631988687791851057712085409705190824236777089518267482559269667818402025581633316507231360133108829172057924262523203452438156410327548258504890718938429908430339132954969321126968495709949682752674990695678914512611819688914603560298756086032388692897233026299711502059889234476311484954831207260152039584691703976054843234361005361907774969994079302314915925057082134231995835921293843404010089072033298530583143335648709884396315060984999030142924526780915565024445151973541191680206780314998350735001475372264127692370017170566422763665422890437097729950197968128055476194538092242739798319770648409390875553447599328229018583867181967657740167154852136561792489708444412597613900357732515441823157057114752775074090376472795710851456961085644076406164046943545989748131598466768618029439612043557446136858178282018997320517278343684514475368049854234491720721015426567503433769911699559355333123785672691733208500497596698927593694678816052379334119431353682883668349874167775679912770872690845631593954354458398282449975899492864303072793013342037549727030748614961392433366601116731520816910485306172090585161329678141550042196137997545053686980518703864926341709539363271578337185875503622503956996592463481925924482340217632921678033542650039811657308612732417430626575464626353403779499997124901071525909781291974560759157194571285319261697404018734982783562614457523515072292834264930223340532182280068100839942145563853710213795554334995904351289474061953981097863216340688633822072656770708131772280711852030640499077370543264994656495256030038398498299060938529149763846571747925018403489272207634042923979441228213725600053601077038175810045107029213487378937876703518602352747037020682414219514918801386756032327584733307836138625643147248758653970334716504444988716094355471797946095444262206805388709044530196551784766970289393688464732743620656059543282500474068697097589652747427511271757513898154787797821871620335916037684522063510963080950246837890356124555733023780046614341083789566622907951766764839285233033253447047334786403000303681126169031259480896191268022895071497193008636708459302433684933960922773151359246790944758244167589200335324942602610311406256162385153492701010616781732712254465926847541256395599739103364782793603058664814139910306946470538581457189115822729196352914499082154596998645255741862688735563544265830720959005452767955141368824308752164802996734528792888756276014026674119130638127142928591953208937003722435436670610764385723346073022821514040210928523492173938986086057866379357895344137811583204415959619595352068148197412702633056179270144278688520356330030823092985570326736284264930079778998618374177210439468143837164514908585650467879976359377002468889837909146424589955141802256183268164019768576479339141921143987962984381064013770209200235093304976930682468415830826473496997171750478937621037717992924350411970424405130191437896465688425855001810528263497235830086624761211128873561667322702083977861501992925787615508055100964701791157048366592477763386391794945611542537722654724871153869917239600099839345117960925494047370199725809524262921704722614195753309883419638957147287783080704692668060374163798989346671859107582476114458374347826262526334483310130814253393784783398898142283597960023289281172070735235617349711099685538125680475379180246130196446898187794326480535643985540823771947821192620443931470793859526487758733737617484730663444849760747392964963707158144506047676747068306885035818704448605493464461536926023416723167907444176422808901508657915992544372535919038463349732699352904430527840601952497256723284190926909972218599077526324967540698728819463422863258781440109089529111344060697171188944432452207066365177506587294908372912121967089690629617025842182736060490053476018297268847285605843581809177900451510245423986055154301396957696741345117330581728853561226100985690671615979906219762596029651209702017228249077794702869974345131796645374892396058016444710355808751676678015258565052099453886504578275461041170440413293508045431415741732200791177144187146678124874084115741033731455308783008440907156042585002418443332126552714931331215965555429935517839071491607159038969850188582413860238454234308468829231367027822609439633782989028862535791290139346336650941005062529641864188466129325381550608646055740074504671984493563433443911338583785333119710163583289127391245910870903441194611593106950058715215015562044451439539047952164853875157997836241682064048993304208041061555803845409938746927802100978167860002310370473297896322435234254143299683968165249801283845610673416229937020374668330493031135889430766135457747713180699001283198100044484085248935256679195862423915415606841054518767871018233322273663712604363200269981263535651047974338792276833121674617591117484922014312301962063224842035802083320319962313652325082512876914409737666969055053151769578156782512284996777351187801705463671435767120202238442224183791857564693596254156269065363363219376471317921458010498143350273025459640899442145317046382016052126091865472051006899744836237853615047903220581438314470647647040246636824452000837998835669882297388633952234217020555713292947037548699953096662862053457960803620037013868909178191784969872763028668718412380477953743952503223459414430550946734420269817828354143143138005804415457667575531313813769495125677227957637530006726307810216823726518527096426941835338413166532589184783635136134819205351940954921997247751493965414361452141963755729519583491249053970517270992064005781712285314540159582947519135074006722931158839897337274654840906409781438710570176921815622912936543682079581608370077892047236359476881209104508950276413629406465145086122829605238966153522557831778063506959913611634996425318064398985997794838066144373616368328016979006664500083201621240628869101510424668237123668323427789450626785740889577696100946056159710257373704568554611411364455253780200888468764934599897229441316864627632096206058624297405709806792020480004391417572307544648382494609935815488872738819353787467678630937657495669063533948872418986872686883490018790520271889122155905104780254583258612181850295679331503388713413336751335616794500301010324309652412637212105477281962335477245986785609056923881389962834863843566524263566677971298730972759892348401601631050398725860410801360557284114881071975063432018181523781349001647266950967538223181795548933065708819839861678110407384017437841804534479845801589911250630695055771927622724846715027559987385688594628060113915183411281770349180229143219709401072628024006569363953231018738647835429407161908626202059573995660850281378854498627690890336828071589331353247299068203401633535492323486362711205625041208653601250653886818945997666652844670362846350407655757205818471971047816349731346788291422657626871385402215649057389652123016816164229942969121185788349721684330347601314334971075555069782729350334945477906585744517415216822590386935405700809728938914378492957537638682021916971362620116571496643805106994637583222353525467032500096506471708122442274320008390213811803167698832208041626912405555365375680714602015890492712528961513063605356965106026884068471317364233680121821139939127871140784211141776900805405336449035725236800300597561089087864426821196184827792024824449882829202215199762275624475226110524676744696713128446352431508471322092967128590374888918774839932487742828512648835905275617235061623544208282024361692040217440737923120311409532808890589662173473711102582520112513214278556446627604340895604779889771678981080509591463770404423484462973366307472761372485185913387862483374471757672153852269056801484175130392612711061714471196490640031413457037160472100376832008537897521361327157428761833150445982262964291995359226052836500576791934474558365378470196131472576130800107240791326329252855060653478771032858349757759712831545200192394510006085225126111026874531625333674390447810666068481857271038252913028600317111992430499544609484508693568409810680498526457277063665965036925732969953504027795687214853887232904200492287767802146170758744055854514075791539305216161159985956717087973327859641696429819377492346769382836257648857949487046121420811210593460838398899063845178383168091824811453954317235505282279932069197622800090143850634522883870966010429484471950925915504228955603702084096992897530046237756288740657244773185771193417789850548853915337173868340696046559535637403432496374822728061547375341802422051203776656029177311303343949712746806103777910133660190472489794135195053150656596155253878732196118278942061735921905873484499999779712173828537358847440012503611898958025692890490299896857665972458280901588052548532720175785149938900363097907459031226908659012635695343069440525277977147576739039949812590273006968238629502504370619617966577850145342670968959628801112541482823062277099973678329224694762762599261220251769451145440484789191626549375799302850583578726000594272024161386145385530476003554641430713572991852946968326165857313010609855986111163940064380232760681197396469089210696760135037326289972293273966883620071279990131277261474940472509151645673761418438495058042919219758973629735801731073089962382803872435126258266792190234493902186588667204242362701109096315388988291933270732851182528956073615420019384393413998441559152802192871410534836971744870427875818240066260452502105346928060867373946485185214540989811135074707358218959442701727190946892569302232356751545902718415473517123732394385260588975350949170985313976104354118543922198348976030427844674845582435983487836512802276448749174555048862216805141109557883067150897963862961930106594098383780603167437022924974558107101538952770060659137598198976087129787138700170719847183218820184203006783907410421783998496092538785273814707198592062077958495325625391927377158051511877628108570324254700662895750812147327669985816159794332586362727905520574633337003032745517578129668429454145407545207905902199364635870984087417090274345084887210369399817052740908564629166578161667012405458238831556131740044750631675600667851568557984565792482352438554166256758586964419884918181868596131635177993627003650771418927338660160328466493944561976374043768915853949473788394093493423105239822924002463569671930017298018005424056694952393731438379022590378332780116068445175310224109380703221923678331793848369903906150859728937971660903962388483693135620381575119049466791168826022247733612157136500911482141804283864251323609055900217948540867010990572948365847582078696490160883086299363074334356409845001867110900396844638296291938465863684907165410320806840502444946612202162960383271349389782458658442545344305414998335504790336020848168876047915205363517723049894468571596833819177531983809378768904243173359287585090560293268577434404015733538608258960097007564983196650914198995989512768153213723681787219678294094356107329280192546871653887895154012120412809437567571035441444982835141750578309475653702795885486957079691225695415414552904850622458602187994719574146383930724843678603048436335729489030995357000518927244359224137498161756423964537331307011960206716160631905679315801835931488841244500235013349989852263472370331830244448964134923821225227207676582941423568829086463413014518463639375605448616526610653358610915500064486966383111459391170367325409625501502689930955200848183660209825154632175487495375945843161387183577871021339736273080023032154053108642587567722288254687574661448006295015055216264300096698662402662145980101378768792503774202816006545017172784633208595048721642080816427486217782798777251198280026738675460209045214661252112276624385079449281829073236803546419751247961384357272004519331507685272590812665495037584269285644787720108514978977098386440985212563881615514541364725491872985557990606361663041135024100344223365579785839001406840829316540221866356858140737336374190279507739540245051893017862135565283743085983943366861493168093557632635047620468149643903434093866680575476614901086547909860171947383059982675676746886708562435945855063721739169118054580022827688584470964584255670308511865799854848986124864311017574969761870374641408215930206125190876443295730790393149568265103836040244757051582649237156624054429891455460897029547382438017556965046117331969115014347784716719727765974910818967889098811367172475505207100347279535486244018154726554596238399684533788657034866138029704176408673964427401717555803817492548350713857562929017041710578834011221735532730346673330428694000266341090705076367149413412916773083114956083221283441100628059896942242811240707137613643655616409035172010134510049324125137490014450488022395715772499354989723290362518555485545146366717413242853224721403032756575998707857263786666082790161129044621380900164294439509074320532432816873444364886598020768340860194190869889532285992858539297943023607814631073705098867875533041488046902650330234342231057012917126241434164247979222095888863820692825008024233348955866353465352608855413187055606791892171442401650974410747177676372352250628598942986119145025257936435835484178503445916481875508913470732103881123384426924209799026935802041331112798102701413908457674497107924006354735291717779775328878910025973004196443155744557693635245843016408073882859697049697809558772211762996913572095613806737925255631577659055068349245206581389582900622806601742764714018207772951084977202467198345589369925818516673926543263123091403802114902511056936645703454980924563513381443480595051170829668751481605233012203448839805267635055172519914099947962679793218541881927616152755120439643895653392883695905198322395507967918529356704221516255246306009860148486153256475506684443092231595299588093397153539456052891470751829433521847756759661096771605833737031518135806708797168365120786370509655401482803395010715549002464515611074042756692186634799055131076227838004727884237939609033198342882093579592066360160886679104109899037054701127240032610673486235756265079248441844258881234973999178244772701966967976316348880567316808226399890506027510979302057939535380119367232564676204900699896641446036852342570624127512748265536138299828010337334114238827196961308710933034120579318922488584110449566282878656054985587840145825255975840126664445157044573653156949302233517672302944708923674461358550890025687256685907989179651566944842441707431970686233426593353053506849474181215144488882106173401612009288424947705737565255347797613807121762540745641119653803433633167750030747954962343280962285959355486600288554474279169589497257267896291224324178382727580602335568843005749596356965064061792610881022566520493000315352059593209138409816453960039705552688629580035736858934143540170980206507008185967314214587961605645244644165130106991925463628253253307430381437904017914823711032800651104955960425575084642589069497403494177105518004853467942616637590972453283158587889753000217290012481371648307824474594848070514452103292423948386478044678020568163639275699239394806432382535648440635636233500744741712659831876163452988831331759103064246517125796256204100545547224210986281319396583682888186371359396730630358789384899024438310089996304820156396874178103238028306624299528510942770255364227778044955946687908012886769911993696127309223786526580097550979829760419259861708361329463196337519699971539517315444022544925236439882383229814503900935516104377888114979819809394896202035340779769539728704061104681679792454528984493180295150468167353775857185180869688815804808904911528765057336866429937606739173471223473506680374854895592555192829353580231333725940296365945407281187041115754127793626406464941827433177132226900266962908700953767526512690253722172823267081398000510276355457722215395417287611107264442899950713948961504262812212954430197855902278962661363293298899007853466038173473482446950122868564801087128435806259179220126930370018556863904635293522828842827316994059035587640016532467647438357129906279488276113252224294384391396884159243864563670182314033610899571152748853945896505207234593960446988858291234480674886040654452301055778669987793650907078375374557642437889895729165556157841216569780450261454699486779619985005584723691511960205317249770680719130721332307983934274865675995852774677982642432158745896516150474900695973206964494525761776868605217915578430755545389601566179781443734100631323708262076003412684971604203090846710425302353007343187863746582490445997691230081227306186927376962676318792211322811918763817832495465037264161521149386621863038478596359892095374928472826571694096620746237714845354692234324633362801800304858706859633041175660572523218095385726886420181551614030181027028020382630555058059874618519576081369540510429602645055083389298220217453785458112125533625232007184462041219371399927296494951726414136636307985905147955209107514853590554768563752580200688999341153856702781666319371386905336207683270391772542570830961779154965367287581697845866536794295309278870776588052015840692205986984225828682193686326833805543513616804434381241153243357835952075195756106208884556892376834005603959551306993399124322505659049720215088773474756734705375786044658260962335948106677969222389037058164862189130243766621630944174443318187665373373043517360382938006092812663543934934635125764674351697303893129943089549963585677559893972730815487543812702188218316797017762264920497004696497039776944818427681803041135335931288357194088257486325517834369357437760550557779854907370969588265138378501501563914872377274495650175838084603338847833401824958447188253835760639169978992280989679912428782908264514325356980773940708371001066839623133472841305511794445253514382415964296415078900913380505245114953133838532251350844849695897299488149355697969305995588177820418383926090714815866890928619078691791639781159416956389766627547803726633118203945346030615828611427712741933304188839385189753137808787306556628216929168598918959937112588886130960610740972235959687880459682486027345331350258395507295324345321984571299372876260361536731156395265864416442354165413185243198354873689817605186269571898113409598306523178247569519017139914325788085525264484364324124678596600127178989812410539018490748222892345944765655589294556308818515999305869614466505308921432526167396218188879249392971053941556519578418277981889150975657968634143098644605912525258924681588690856037129005023257529868224919987499353452896623067066390955074895318326548804031428184193739855881738201019412072940010252519527472017796020807150936969296929804731771677665972125068621367181891941659684878323733240427950842245545361500154624050900732120059287370037517650245199880545210780858775174353625690836426277059029780948342743065450945056498520650383643028582294580403523258918130579034403022223126088863250966218362219681641563470123243253021620396211101772532621751853604641601811214184982301911858749572098084575828409986066131057941149778663614826027328700064343557372834480797407531906288646291217787021637657957404935417772956677000068910086635159337724857349005347727167146895278759247469067239829380459326776862318748975252213436084968134491096939076420809027318657786769095535740171310939137835859547577802604786620149330833731637499348912053329790915707719664140142478168152146591941230871970895078495214497637645309888455024351963271047012987029696047597832875211456649896085018058134613044215034932676204446424686904939223647625837722826776181733784365194299895401899754201423224730394729200629610989361797686689464999724989502928952769697386272042706824787946225399977993148407167535335116186508656570083864204976881824960139812089744204177570204728828245288103511773236140988093351837774773632138957124158679081892682928566274836608773142243618920582411917220155478062195731554106129353331365519347731167775513395198523004123228585529824529407680135274938934326559068292969232284563550923789085833914096063138535562977097527890295395895521733194877536731138304139959470175255253051776899699681292390082900994039289283572272123205007938805261484267758003592601982937196949864071797611032621346160982770215157443568112866443556164850774210161034316798460174770647290513023111440390020643908599742306205066548967640156945378355602397785794939608519561510909331363895208508216067871172019113761582871476422381214223684655295069994677205963967337515566264484758656843481781864193405251089990265974192784739717451199055623412074273393426791074434405732615124486412211368315623416993880591066900255406522112019321959758973916603862752976605966254262969190271469575192069691442552294655217022443145680240237510910169585451449841439710338255311081024566877323001416108757419898839705312095697125583381890738265742025293833455337900916598794221037569944098871663740441425442744319369932822508341822659896248768062640514236058339429869343599614854535037202231725471595217584047600774320233532154478339531260257491521384269233322940752493969900545901344926848723464039997949308997065068381479094290196079665610353861622762419156986257080727800484729362176983426307505427772327938558229979776014257465407768653383334853890197811467518277961113552845401796679090948804968834118461486438340240132345404461665654657386981180979854750906212161646832649338025919856189654627775860642782697649992619886110630358713685426256344710359598865614606050077724538021321492816371710532591900197847973154760406252003562766201580018343513841971852832398550041887085555345426478004031246220809829106834821215139127605338788012085456949497096276757713100948661440390960533351123895620607770054827623155054653232410820334383923718986968886188688597968531857428919296052562209023943375767428867658204802561670203277355218195246468265401956630147547238188537837408328362822598067658404502796515556519006288482709905871885923307767352613304955484709021466663559240945103007729450968926412193743140738749768407236647179603708904999795982260001764773455061687240135960529066380036076643202329487611587969152684794844650460926290408264295574364756801193861029835257130629795982375710012271817615903753116702605969844805110681911053267064768083564042359966054285966259873050751578924230496708974505375073680200976660896684771939846399259232527995759220368324735577776824629931469566921505231256674677509513270854001971073127945502863407970308831683831821888494659212764387207198004152080141646309105191890001114977859479198314817225914948103439981452213817623419134881255328904018217657103913919221125303638229953294376369114392391030821895802856803089822263467916564866359630214990699182911499244860831749327866470578575916013389202851501006674361163848411704551468181746830122016594733904531615933764873603190774603789651531110279770883711970725175726304267301801966813985402274587003154374699337874184740942793921512626550035532861807060881333473162425465567179289890263405188795856001930562727201625706544398408147171264376333972846400805504374073126263489051314216562441678932857096410745343459699713824133494581612118029958264347730118290050865756331315488699285624016703107610768176206149501267082440550725648376629525353762551033349529450897074366142402535264241240403858586814981678623822421196846214680025079705868526534261025681023789108368887368166151144178165054389369437371980574591280494479516145386670546933264393993084887792661182815245950913418119541605610145912134065456089919889776780924005699333992421728661209769025543971323889406359865794221527636088344450445645319643112520564372068305021640732352468390744416173687981390601236349249864332816502717821656076129849970894368887130074624018895708773738410294609384166331038709381073102931125851101145350095052782003767989058022133320936670125967595021418979990736493604806340495525599359202781129541945298652626063816612306628524677395252802689624744359502066131625283388984706790943253050853014921861966279154627812968796097140862888643545902910380809377249153977638726002256736788259839539239827904290629603295626950969092994586555981109991031031548077154550093627935417448957139522107030461387479167076498279966883638216565023847955864834228421312794835716611252157919221611538019872722671048306246484282705856648464094386922568726826037942005870635107459741127367728038689784734334391528491385810048547029043399894553366641751361516723692231558941185302563165240051029153860996423306861632529344100235563313443702826331370974787608940580536295877619001829438121023531587201037464484273359349089819555873681923438734428768029041802860933600715893940757535209194126831779621298946370306078585293852355827414035332135275553106481988501711353494046057603513261560036489521387412973884576284621796978173016978747840775752295076810721129863857680197226694151556264461640646249402929635479012787441111304290450598359014115437428457718917304615606727811693304760048253394010685339079068987879711180433000527525617385745890319358108911480173659665812870138050888351998965357986909831837136308474520966950526064211343832407562498690158347118116327697576604641237827463752706513484063965265055881997893158572155720752626388051634232918619170869106472531757675425170990084543280744903111717087898656390209805231507571300288776079230354052407069063785671150315149836687424866146987226770031994591893301224841167453126409453108852790593136348365696640305364844164194530980039403613953625913565795129752494207176775805766761954965173173634944360784648390075793307468899239217839420991311693904672846662721147905271357032799635536720469713618145242863279802946420509670601155037194650693392775344703981095137906318027420731258764352224870806969906954214345986092395240833862812457374703115903696244569927729859758747380975869079512065216736769140477429477843118941631697134176200213962453660441092550130414428589689478983963073773352656237153586579715073528370114074803434252045721176728886114679605131967680961133262895325735699449803246920446131075677047715629894169031133374533939603325892906541795045825969570658200873249817215910632573578525621329626943654977695610852598267280137031024457646937504334834597885408645698396424932963567206103843597259026039459659248666081902368775773793802287057671820592972854751184677102157388890522005585306159210309858171594837639111938429910818241473086622822817896623936791879684032101772518598563179002623990221089374823860376263801404768521424074995303530313798712471741605416427428785106732675754552545096146280416054966926248908961502310376802799339696304263129550627434066014133444642858835955828403219788113259113648261583398957390044990651032654677983747696689573925983039650307745501840961328170853419119032126874717527097861496957990403785757553357639289118582637699573754371764272945750977650548986769813484720314162256406198103302658161423584993445366785267714797259881707374259291169520609407842804515625625313384027463855782166734867552727261207727315066772182652100555749719547078557097205366359998253954152857796240090998916073344172269528348531627311179007088119862733139577292820014155650579274836436391123439938570147913029543624149748166269453307769472176735483631669216470752573184291206440106496805505178087451924733208261778271539273702215693325640582547245758998787120111357898427830481940837108931278588514640679995196739268834291129535965267866038575975737991444928603858223625598383522632615755945574207649078439713245455488955161591805493741872483402962077149875488761872268895850537665486237690071722886979462709506127844583148349767695898842660227188234985879958231512419565416951973656430563097012449677058673427864694445349419138593103710116076772559343233157946872239792732972739219696931138363234238983200701392775483569322033666198332594614007565449203578577270382203860020720935375253055314693946582638943020156446158356364008442460453108915286149679219280814991960799248175768575262472514377973811666446075726871046505759673385881667176681162069998340760260650838670537732573035072660624297954949944862096477458242724357540159611648286525288174515578619548894503039369940533492332512772243907189355788705214211302667120845623914683392286918765194323806283660343439531811624720119218395172350158208842159645241910542197256689172003317203270332100707543762902933104950033423609678390650054054662172525319835148183863187955661533474343784735148130784365793128684350480783940074937977783966300902372985956628641056027180191903101492767116790673483309492777448944640618415085827212411122409102648393549533365988577900243889288701073199453386027232437119140662700328880881547786513860495458785002219247206372285293484562090599047844278715937533062139105986704580632116795530296174806609758442525794546201736228419950925814734654748651112501602817235440532605624991028477961240778625629583624377611846689925816869022055139372279950224589087537188540034305065950996915539026346273939970985363928547140945798390675524629359424729198765318830795209269973743697553927273102909579474010456165185157747232339102720105343853530841162697358660489113592098369536520710060138052139344853993877157902635462008049326644260941238091180796595774806214777861759535515119354282491682544582212484254938436103762614379662747237675650718456075949734157741807253320005083454478171785092880463475902816668916525603886471657419733412381718115281158873876911398549537660511138978508099306235344203011953191854880331461683134630258756834026541742222040336746581406829205615115249675186110672382973296344167012685450447422640323368481159563241188684002372018879066226263497154674022400350241701516176344863339562557190175254787181084757786893029495708730113474180924725195972977177287706459026567031231205865179239594908718585255990109219994535526964370339838597000278423480958918690337365447967099065442697103242717204608770010177741748582803958424196304384791546049170032327955858376575111450890760690746412608759544629116307130973958687658585603920724030854997029644505858167609284700941390719926069978294995432124523350720086531054819555011439147500588760847168644763938028286582606917431184864393747761939055260116715387933441118951754846780207686391272268484598437690501578586385856121522651456158641811734210191864453607717210908130047623771800997862589786362578592043809519423717106873066091035221824262945116315125411010979019855041656452318393548761771101970979164241273929003648903101502856853791729488697282931405853925935031795657446220355143282548109271677654696947919054758634185578263652607032916630036779131989787753094878152096304530048974637999344787464631877282179694201918052462059913498141792762855394840416790014893219433588575764157033405415503378008146096676276391670041218472142684693804761044306375090263566442558054815962767633916129940396767282948648212619087441945682930545541373118979888468667922021587186390180983346954181944618603958396491961735256101911823798994358543045538999799325781746474618443713286679304972804464970703979541678272675447187960123852816091250261038034680497008259873710774995527219947406487995831237442668592677650713332890442194632536749187049716059541631454703346261691702524045930551171058827630715819780640288578165078143000429167845486380624472914292666809213438060058374313223372551739027597730635985393743486238056179576538244021676932580015031541449040034218653683071798672280871388098665421538690696676297087627899937412585846113214814325675391155297233274601502997375913737469183834512821200236338881157342353838933539110233464574687020004965641751472760938116928880160616691352783484225191265428713324869245587417866026976902507074915084036777408013476291445726606354120265268878583856311053357911186183723686850459617714576654474096387647372556699187162786325744387969781954497472405659827709532213858644907675800163327489029191320358789019852467003571822264760250569374744702855755196419238922740078600315607927920429040410957322106215161265449922933825418262955046051974655834791795635708710977877364308352825533283277248838106794152615948474787736872724874893569759176119985356313575424502533176384976774515029471236413539818544427816901775157902933917521537616540762513312931832110200012102403135661143811936839429409824985007673801651862104372085066772100967065944908621835826835502244686095138378498747905582260701428413425410095413576443425547224805180063907552634933914042561531475004028070663219974227348126251269607774016795433833433351319520485616206945967262864576439330882854357457307311911163648812173065511338707934293011578661079170321856162948475939771972809039611108493405821855911111959391483124708347498890890173131643388459860126721398730843806953895521806801527573768491459489209103462445593242744773829241773416428710691228590218580350105663125204331270339224642079140028006901384061722414840454679367941643376058845878320344390005291857074075335440903397043028542989644458839180679769994111455870729518521458162832475618309617907816510755904682465538454372877844059148954318781828177072863748272617297565231045970798275057610183773738217516537681102932295811024039560728395455362577195308252368591093592690834458196700908871143442240774107318635236400153208664741597233627782413772120122346186605811777764195153737779159996219815902750350356360487678340481999798336803697231292883977501422325685769261261948132472064381115856284917773425328505292700124826777713637126543340274660107840242882919581974635886390757939232855961184663039058142044242086726081169381206539796630317297331533986040975693287694028401669193909861424900035398930880138886192522105498778017015272055904434327305082397454454950359869161208758894971834442859962804338450871007774342977925803325199044748683204279077671858356902182633557889792417206882995927138560314665734396753473986245660379674767300638205002549737689423291795773523327323555210920579701531389635054884749769444056219686212104217964295667507528022443958569244465640172677820629753168924286786262830581943900168953556496122823726981941389839444294059454880111901407771577190353304700376756227073976986149154469233327992786704896936332585487404117390111233851229954361180144645427251425641640933785164704467972771572320306020116182881408988496769800418887756107983686781427054536169104945518575696051206569336358008162039953644211809476639868192580933115508907266442486763522586649252228376666988915237957790252576741947526374475885067870554140486259756845465727542432365913583050853016534605716440853803576480654172249173750329290014960810920588147304445160982546746859575566452722381125439880820759610481151215244004684700000533788851689929915064318330056050668274671513829110723122496168456704521939712980660318815760293894786754489572672209952569424466840842925450435599338049168813634621762452325702065148323694934427448636115053076803821264370877070159061191701298878167121936468582019294915420387144641537720318012611947243944938976195224135520978460460456686911841572168423496484301027856452366805827270494104308164223254444627891939829770920338905661823846519476550021843401830676613846398046502124804313743498594898893290594372727644677171627035416168657286249916480134442899004107441290923541031936451789327352887284744984754420600301142484311105923723526321282275668036976098254647633551698329769859267686252416836346879958222467253710743999953287657317843780897210604672237522633599848740584937849173123900771056187212031645379399180463679455801628549079164063101897660837465383089454940850211931867060723624185677256905606315954074712032840592975575084840720198544323374817814041481094882589711193442449970534084938979870426327597751994000551230045166384845070543804729201219191146587239495729896030052028551031621361330084578412655905395073445634741579304446333737914651861728614543558918647622789054795378614217257092621527983815137151462816308410433833648673636537306517042392028692215168066511537781710376616776520235775187713017620464668609125802787448259849199930802661530850429698440297022559279360242736284351293645592189584133306775932108432049315249805672037016610463752807108954604339071442339863397807741949726296595982069066323547818560136844018536721938141021829841070761443270345912276158038362754548896950580602964913076771673500905601359237898324174368701210536120116464371034766160641898610161375968052672151910339943261404717327492160079203415171427608567366681954924302022884466059544454709825115198300851211678312852175182638054182723820264033988059926425407966470054495749033413266406000150350557007027346328979109824321077126959632012689682183981021644311114811119513811105486459023569382760358658478260033681751981905218355205841380124768668203537119270127323995378120669946103972393866966435422815985834782598973641707619076937114206196145368330874753076215555211330287469010783621088342210901293867788001525850428746217538997798148758168448232578618808955828068100717209465298193408707837581050703720175336952356877856858040677883705695599013910049934393702365777536355553087245360328946435049298730088047560891516642840423421423600118100930717144846264225666737337762822310749731224389652213447673510671353955570801393729267403980868572760160726802468018274421843338081112825542522160233952136452466396853584028131483733981320354191424748763606510834281775788127204221298505981002528665470535027710364852768718090080173647519416102591694726180628813534420892828450642253704592269484038057478531981459996393557297318424134191027478891910649163808830266284296836181489097858526293436933891487574007096418570936176135393273066954543256124804590231045523756452641979127557223634317433941540275200516690465226516022928177764803492459527142462712710801467817127168547291863790823874993657664933170779076139764164050935026718248088196453889568084818966826493360871020011061607634626828614897385305999108714681777309867326618817297748043868979735256122731918382350096667569132177446934489545652039615223289997513078058957881159642928451479848695558083750325777065290226962366606565852231973987224369641262159813891314372396568400882851948588729305715084059679076700707379078878366446772297318102572603421660351523307608894856563095759418074004863859255231486907274006858765126665037733322719390606136508349442821833195721849152361312311529507299093058193313197791810575358743005011401560798412193120107929279041285612790872741894600962970946739195516194286784950876127527032068039302913581313318809101829535101966812336895853138819828172209793596325619366923373993011069455685532544033084475873236031564714378218320945741518884146248487347186806660995792159649234220406796335555029566033136270071658904833745107965771122959434467514787644424038611215284382156187440967278140918066346080667166888471298257646010756598689675473965158129526768446493126263782359363394008251912318333750405724607770778567019617767680214570290674587659884658806321749894186848307478446444257532814706311615130218594829879654806275198625113068777662513001996398353210312123091777457961750899734757062356428472281501592319202875285916349049554110352898554297454712487976288654495949494425742831063572577427274160023995781186790069326399437790448505015306377342741351008267601961812031840548681548797526402965289460610794272075885456468247728702998724748895990369595173327224623631209263077458492219384000702176556737203824331779834618984241654615784801751880000825983278369831027257432098401029418050725510378303030852942188254420239387120295024101934230390496595174761300161377058862307954265667410445172311433782021861215424773825956685505590205530424787934779323308934808400162919481322660995592121412004395585738548969060671375946692868589115408831375885952054086758563437398782024209096465637991873322205468049815599955252503104876096056284401536109542840914883359093714771556485775990839166651506391566268464307745181032954750709853900617303742224010675034031953916318147908576107944326199377081822226392372623451215977023403151858774260335998696693799036145756085441625346633678294095108985947848499507151189808222129657023247068899808962493119217864663616476370396582952068438569567565869334690522198769332071419515140675732263526218713027332367938283940610670073500638297786456415255209891446204697756422017299549152845474426088043248093607805722537579305067983334213431239051746338127028991887124050240979789598312911257032087895769416416892553581337546717212514021873174934524334749119613271067394541541464084725416375473305009414219293350616658747303174459344762340049585159257929427154843643695884241943010161032573199142695086787589145494419877010974590572196729546694031635838326759592325988096025413459508110605002683427910256041295183526217686956245031786440771633914254604344504288336006122289498852877852644089498918866517042848894289560134270002837584999015502499118177455688092278102114562587006897399105468079607598321076293494760369501574366313229168915314009973662889195166507511619300298660804766492357465054066202928971904234522812184096496232016130839552374693102618389732268211619000764741205976850414404180601761909403626590713572013509040774128333680966720355634018281148960218639099366756781821314324047544563808284277196847297911353684256856860117710420562823950769559587764167053032403624178695487554396225260986747657809493224987384147768464373377722845567012345587739259133841776186050400508061802993243991035869252148900454493065570512446381140426583063899171667879200959084363428687915841651850883499840747684766530059604383205744252953274824952784042545471657653610547789393200373450702839668048440291032846268932762965267679413952133014755915203925469949775860456306195650798731381711310742418998508253412634647587482523958104551382953694479930400808724162221410101084033138053848281462079113449547340241747037364524018053672654552283414507320555240231369465062946952513161963329726751790367647246778004605014349404099619770832164513014482021846897859275832378359837207054756208890100778412610698887396166125813004523813847410110694110651238264382808303691820731847323690388985762163403044790760528176861994840057393181770088998319716057864565728668385081572987217114657346110971847129455787825038398874700167342884347480594489750318892635739479448528479869156903401329277229411927210137071528009249138125757629028905074280868952631402915230689674683741022383283602966414093031481800278581957239618360379321013515861273745385259579350891473480310492388168143321258522768922532291262652055758012553065536115318899320146779707700872512848311560462744751597143204549566175337603490081602550174040173824314463964596557787820721033518936975044449168725831155601306795942511251626289951160474568433380830281295427112729576956926179241005400213283039095805811063963729541920628134465138392417357446228448635693618779374896575098014311149920680085648350993260798055209853155966973510767364470008470468501701174099911362106251339476981590318451291003585482555253666219468631225548763143175128247345377877885277863150018244574257768840793829421194055992008708320901707822345459630262727988802350580093329336324179454678887486641556890327321732919176161550778147577919619014750790545763016885640630351575462405271509369926311947356611824969502971193438444610815226056195544912510551276230234670975179798194232982863876905650926454001552836933014343958880185146473153877293958837284222420610778471130767787334131109481335392220159269003892421543706656779721497248432953263523352292455645710364177120402032875940390592089461402306438435047067920171649811973427633970132389550787237103414493742237330242523587592567845615454148132005353282728112006853596724526976639955071834633123448419768163547813137614487537670365689614316786062370859265505156376236995583783585994493825251306285136785126950693371602747917479369753374541510155080370138393459407117060564974969323260958515447233861853126360048090831567916011123853043678827179025782999667975266251781684987955039996438026076028175640034916175835217038589661782452606445904779455123520883188714352218542917997442637562060505761017533333517218609424367632036204199630830543812430101612345021234192912943955935366641562610909558937636241565735138569149238759734395377291136046075582276966343288000804038833940240013053276730040413930702399824508990431078675198312112328965258079788622871919135330579738858012733921369208337888087139017774687690808758703822880819664831567875485297694204464155261136474810296559786070845094570270814853813630145385733488134770213735792967648788051805701220574261415969900484596673419329371944342938447359878010071654238703804988304743070839741453162660675407020511812266174792803607046600706920114408533940966439901523269191654472486830341848930125510945470148735244653760629447568572137088892281344757235637293075196046375445267322631516372504830773808179978721887485950420683857967677531524458419751816029233801851526020234436261288610293091402095656291825733004254068047565278890447656104533575211340842847846547231329547359802857310114549706852054985481122972734341188178312165894160507911471167247314750897998934903454454722695422941655213994583979654350654822388134244508033780052128357557096784487518572671688685304894027533130885011376937869959803133940730456963629101521546805990077227498090350629751705589260650764758193882693739385734009338227721293656978245674178279277368691923264499750207466233387604028006632608154312870078793752202117413792325698611200465010408949206609818101367766833974240786900481047758122018406253770867802127161361365024933891280099739550256320807271210405108253909741903070271686439345618823068870061043985715108216081915716552052328621029037976091856204193439919397211770445490816947045912163927784281726853535229193750315103782908564665877857976022711284168791212766390702476983959930909261532139400612382981359282557448437536565534800742131411806773171188825032831558956064467410349370980634844186020776834608500970696038436514497732192402685260009635084931473565513262176654434598409932588460783934436537495601258990937911601209318235747041182504915921376396487791752934488802921003425042106465825401634221789769793524735887320830679463241062270517473899762763867634172976906268068779344825738031296553154402920255297372607333456473743779565135764770469089673747674835960131636666709334522017089275999217428681844936641774921659234267829386001485235879348458899987168522034125375520624570571589138870908410128869611443200688622860887893039611884688328827172220718493432554273130279769039249862083286880364376308595574830619012450716136383877453246607003930722260450518057133049877278471558233669014892857772451541587158930080281441168607719571135686116655629367805039926165674925398070300714395147805263578444339523205360682050870388845353166388174737015834460168568939734732274319896547459880989284135088780303409793822721564549290313930832562239964837776720197224903226415422198601191060340011312246258355756396989819332236110899352430381953770569602847701471092145198096048693511793737271824248503757230930452416085004571354476264377544191630705031499930060856976479314909710174504887802334672103585548104042878181873312542468746857405036916932068393953219525112776492068174273510553309452944185850669365143561930269103044913822148113665349568067414234993359364254589918020026934498664618125901325070803749251588227704510862628763046349219451176544893968735352906762286182798807572403423475955600079521214988964156753682085910756199248515017226670479071821321222795928006525176385488189483681659989590458487034926481377827901878632208264665066226786797286200757569273385226751118274424687654221438723021351350580837835258528944022928702902661528517900038861889178883875787339877960735927016752858354745695491270624468275728129885863217790305491654894297949012861172326375053255516983221551313306925111510400322710955953880451555681663744794299237807261077453482233522607879055616191483864459448426588248558393128817636009375984207734171144790313027626176115192618991218376685702071858881886291001627102950379599906337543682434355126284141790937393894225909551438947941152715378234865868690022493876694649033061868812639090661760130047178346382810768837632568370041024641952902608497834315516999545931385437397949772085554292359321679571290023450541005481630331828643240806119734970307618386906930992277751322032440669087405545540627438573145742597374106241394566911659531794434094057208504418216169637661059373495976499262813643606930841540209049874700429260294917785387628772405921006641413950553269440596699027356510946929826126607357345833011880662579044701399393315286392467415760963620733682085597606668616317464348525956355876362156517986681845003533889503336535995141685001039458603836727531701116589488048185368179168671079987840893550437096138174803603731568314924572655601037468763772037918878063086856670674878098597078641856048420364144281190122927581897156108211643592707063671761477285333754181509388045287764440718690362290709555795891693328199667183249896182669162900572278419962642282686306305336078376985744812393573405663531102162517780786883966561735567014864741672110063788923318065721369849423539600478639713934160684375339087918283190943267792824778444159112372846884974904027532627478650408385539355639450476451130241102453347916404524434285803570056392675685947719467492323889178281519912738109226942363343732086253925744021655023736076958474028112344624137482996214577933888171192203912113749761544104183538224329061646242146076318108691925850103863500742463885919955386412192386796483670671599373458539523250553107112815557104077448311342647930588803919680562779948702263702079477426422311036224547815470414157802277642398976174347305945052376450773126744821795885214459814409310478676199815834141893986882667336968747558917389087801557864869925186297291033327541117976556492449276930147220594953861768305374172387391717774964040494460063422909493541949660908453500472341850200615537481107083194309528353435490240760939203505865462106813254147509448674303629057360722949247928074839370204580615761467244533447633573775528838130556147565795869261135476149926309139327469590370162920490019931930171586055951606311242592726692446171177805578133470070955964843911965529531653428314865284979524456490243793710170160063707042217065329727012054387382167219721189666936624014686064660614405604909134530635405337160315838404071198959969961011216533883383794449846025177174782147858008092639707249171972324843609547023458083512135707811782811698890452181660124154777188872379546414442071967725992699874131091560654152332354299213415036091360872763814365296600389231892337633036455550179481436757272903796969077604704050526812786199992143653368484956151065185516819278417468577062855090731953622476371391999275615046208305006003100188323437360393100063315675837764738645406411659751370902453336071169009805025014098396805502291806650605298017689146186331954456351366864104615734021755486294407524123673592713198344457264347270465081961119785314108957698875817933762741666736411352596674022423984346047695925932050854679591739714181285115587312511560373165526097719433300986559639076451025364749990286001680595137946647877949768898634893251709295696366108447778707393808291425580141439754331280923667724543772924062935120433515374841206079931157033366025530512517542399570919991217146294815821610882073758672454176415814883676250919820352821144304986652557959650145297944583250217635032224828970787863980651919818480915710314533550443858541129831254137738016653373101057289655774355232438525308975318431982994899372433324859680818673308391187764488214127199529305069873210703424468674113247737886228014899284408307599832833257824013683289363635891108865833956968999107344097351845837503879419515512015600279133748790276078722396526049434857322750671743712775623437520540667047727967286679285987178663328444619930705109100761335293382706126423071807259812182487692471005302627158697649904863016706712959845463877685761245110794213298332318968465075285588482741194202354174530751094710875918542104511893066781683870375646881769652057121502349680949592719926716978118874839551565904020401186264988087839367118947653597066545159973884853839624837555715516004652459896834885673769764011885155005266981168223493476691877321921835699805844847269371944157438289830566803642859096544196759928727719709049241642321825907362452377367816115452614153181074449879022051514823930801241897078583994238586616360217178243734746081933578836646517903263852981515206250957912417378695298178402227766005565486380987363999163722825246819204170269906934708094961611176928430780809814269065261905092807479976359918134504663113973676445201978126514365481201590426327227897964995501438884960697245574744044594962441658763143462462374359884838380703772081125227609516897991319220215968441426143316956858971841792020558076176562774723079935765772694973292271225712486285582097133359879410784840087485656060725972342553233937489009224655540617386546693440830268915790506137046196136611116797767598478804815967550370198591443928015080699295037262226631533088282844058615036352566609608681289369524761767979908794017681979229218073095582929275842500367876701011096487502991134469134298353657652945171860998856579392532985568505756105676361155226019052386593440692845553043561492641290078792726645889843299550670866270817894295046578283160603506163930951085155316051822037868720030094152927674399223041424035645956628952510234220007078253237300644392801867005571839307633090989038334997845284427760776968251306286204607101772630053654179038744958165445567010860028212674882004223259256094943582913121745231946988117784465148005220743079297924510707671255032762645428840852235144929996176579498269282119689572144967316366039196734646520442368622771868430746217053029378917518866134390067246290610495101408357048601489573675880136247444784433179183861482199781464942777797266757649988004253040710394147161543821067225428398953674692527915452977728420756026609423002484140359497579371143106899983469524036669666881503081302193562312427348894906894597477141602123938954488842885042511220753953804990737164082335644187109464729463275132539910731639223914484166859083259905654108644568622630947392515935593878220094986739513825465055071880405926064799606484645611815257110655331313355103461258442460022167082625592805714141226025894379681715737691205963861261863700446318025308424487389882170365964498229593305617635310191605888495711133612544916000142872298051693889224423447483116252599521123683838231870434427935096371839930468621595756213641249885217025841884703117739990309720172787322994675665668024540709488156069620469404835415409854212532477851097864348672755798607132640346166506491966909596926995857963724724464122144897258790268036059556893355799263508405108267555584810883063682412946386656955765154460884801754346107912891171148833278307189619035198366019295598512249178575727017065804709653364256497706168697698678723537236841183978016529807878171376613038133772195297581964988180569784479031441836096528224669684742885555109495104286313289479794808895321477461840527423114922975495734878417228384103088594791767908407350515440627746254008273730183391226877815545546643226835446317722926063135227772660298510942614669010430226747058286268810005368656809992302055957056865676770359474651797894396842221456026567568885516948423312195555424309005192221301915406811223718487463870946402397591804708971034124348562948854928320860826459571957173742616911552801150635278322439616098583067674329331406064398092107226063759174979457542701277104837564424974433705887748296612165880489104717402588291349924732112136300178680647821345952505601222716959535620884828779505966818569958293227904395639509279093156966205385183547700158996934841988893788084832116099399136338305638417292700959811887872037042884912054810474520983744351221995102330477492554450942986174870776385805966317727754106748694262600195612320232694965279000367158251678070240197253631005572823760426921778596520674861216014945405536904479394373158424526518544656562333057990877838373698467936995683229053276212245843473177911295016977906265355689971768689452991271598195087856048258692936296216825768202520287572788470799821101948680404614439769170639354542389481233637318015826537436132044385065965196771199448663942505139439735341350720822677932013257180670761617828821376160696939556892094798632565088801214479801168976653233869332826151435560957615662824243661244189848149066759693257829183191806273536913943179803268911260774816307301602817073823402781634348383645504080731691343066113201354298774740515721739681542938315258980492450297479956498588454742218794736016719732678799390891998759739593077580002216032724392412262084577484921862883365572720846676447611719335915823999882944465009316643309017738595401911193208191480691602653447153329913711914836966676336375554102797228710461687220781620198901632430587576752644649722442153211654660005392615175494947309637945266691165627906567849658328099954600436551214522213979168892098606005360014560961877690284512457604212844909249234004375516634049427099792437912141014804226046279603619747572783476974595310726955123141250427355679109279380307424723271892451910421382335736353879942573209363286978093457282732178864942736448631899512413968995552480648826196168033032778937836201282617989694037185913123603462635568934492794747720180941443793668873920502779042097852505102518492602316943125663028818224708404998044310984498849863793349256166242583334198019383256738429572291453231975824332840008405600642638728335204124647796841539935538247305395656489096615976496849696411917968295960648740234769224246693593614045317097828307140315361049503425613276316857954295927299565959003727780249062793424421174413798264417948161267955954363601118316006925956221725570879501891929249392863523335464716888082889817309338447639127656982941345253483576724933221210471962958105268320319141075135057912383959494805603145202656346044130958180901544568140007412184217985665662869315454463764218374389851701712546913617730948582202041531078342206286471678382486752540120897191698527639395207802890856795264288312963934406607071898878918417443522315316471131747261910281292645178373576835708397732232268160890544999497446193328429476885064653126815415366471450812277021198177207294161965398973633754449814122075414482638838647688699759094446954422942482726579098726335093022783410472166180650673755607456519176602804068902393831401039653943699414276363693102860734214573160797678484396104719160638100230821010051291871159744144968622216448649084670447967889149310068487634488715730964400320849265074475322213033177835387804180845266575487931994618175593306396985446150900954145595729129180891201540746291495584880852702859574278646271087931621180738760603766916052606790080283950760861638215811393600959713517867277228348880121783553599966244926792293878335780704087932558789057641133217707298939448296744919295029485978091455746418130661496372106515073345174610844097448375045238220557309295479587542677537561251067275690172064988662834029294473997590700566154893069803973476247733353462232322887018371009402221127794551824040170958374925686109545461101354515778038311057447106397941070727633390621568276324487322790691170333627153834293940445872523139441382728517949858639139495696762902120505473100924534241546278826765741079259458909193489026032378107578601894460157140185796812629589696854878736731411526381778669574446536123628194775291664168094868909099359830744428335502439605936585413960072662610789224455263392425783287140689009887385148953729746683929565592558753805039241681186776002149243966934288909147818656143695650349936955127960710771138861311846600450016726599446367386291015683599914307612481424456617760179065251347369823487688280541097209734251466555713051494630725966505031265463511240465345519536614074097843905772693626997013023868070220568281346745008759190770694768998477792831169233575290644432863888000376273352463879183403533839671721984211295455529253108478068855127795680923012223453886670908496455647733393221266534623627524619264959826648928906236956837390543676812940633168197878342866842775806678761865901405164422784652953322547480725719874375017688438713992380682763344956565398703932174994586466162513193482578319323067617806041742958846718526848540968456343043548075697194208280982608319662725894937538425473254656575566746917943929468003728465954054343694769599655075253392347240456054666878520914439355367830905185499483770162502132625238054437004232832932460328300603948909498895508722994528867128207560323882797757048540889062690140673898040697951135989845032262137492470252331099881373175040684248336592030224679398643889783741180734909704116548513105979430453724830001935427898426008603718869319183732992224138165013758340835293198767435627834047757701387906359668142247406629696236033695924902799989231968080152917389289641217797777018165292887437446860964042611078539953819704129541213449174449319763416379617853893512741186193414668946981390623462143520059376151563890664493154142356498770539574253607279852534342387514934381947994580319899316638362815092127905994118789826905491177458448079090015451769982999847958607262525332482963264676267204861741753376025897053308409302273871056611106981575608162841761569471710606469266807136162323088883423758445529816624626450091233367790080837030116791681873670476287202183436145269771863827344406742019528993911027494166726525436143841371663882185509726539688144895977281664470006664676955951126263629034882362980671150526874906349112764323941633569781194571085386776646869697359777989864854974554152668152956129650443641605864735619487163594791601631855060198204414786255692898749823348228274457798994457429855517182483848977320680441292860676841012357029914377077837658810041953212696156140549173391240444405362025605352121210319836136212562923013554117089227547367040688116678895625517450815708014035391478658625073421829201956015588385080843460440486078866035552535698827478525675796361350416388435143808086180975444990166353718850367818533564013239536572014850136145859192503989549151772025130454438760002040804791825104886670342748337480226875858056164949909612159835454377033096013409449506031712545943749974424875967087064285871518932975801531181268274732536021785810902909663919533399325568326804371390833201164871018750534232876280558541671883006354228570954321835185769292434382012827670134679362995755457103726484841556196357102903941752221020955416747802465424865502054773579546378274037553775272055755447271606532530952240144463802420535251080611177666634898750313516747071272580592359637444124640615320406293445242798014103689194587266575422719685146474197445292291523640867256685188019272617930992723920476398589969478113286114363419655026280010985978377857811384783208746913182462986275698189211599021605629538730873270171925747745828948869911662602659885952991421668571219118586120549084507367827136254530972786844175879446364059644730766789123553660106202014309754732211289171564748354746113149775904391486161462021660653058101501905164611151411690695472281429553109041943006546070695507214858267515570591185902556413734568050695887867948053084507588990448407017668467524880824399238005031780418909004286594010380016669803774594700689935474850810552405915205777993713114509324504631367770711505072346007019889559295310181702440546127354659364058457391070981110464265456975740755483588433169565333395265180011332582607082478007048074422065528309144270543103035622844778395875993979471750948432053299277517752898038114526439572619563677396146391894549579972550004897858384443592550005752096803087991144932754680225077242564676212795697530695383017268323966614790944327916470073422627157042698672878286027060378969443742947867589456361367896300999756778313398680325989386340185476942330214836279223982436863897053022636486767812021393382167637950475507183100085006045632375899458962911388485579239273590586274584866882386944599092641577491347811016319534938042866871163338887741701717802239560750370022779473944645297545182104166563581277764324030521835741969836667390696678096391451270863921066455048625237820552330913354433341685636275918658173640030897487619962982746845392491609286178064672583260665510424845100657126314634293741271380257291552415912424762666227498300774534666222089439913837645569850794368841882141576777909189445343695710378360601790385010285920383305663729557123290958526183886513854535194073866694058823828417597093910635778578585795761917960794795792127566073726253555754998614539004337269565676939184762563510709361109596975207444910126857742328131627660879425036492015815559705605166927415620696646072178755688410987576176763474221583414200491751648716488878732666920423771539730285435443188354697233071873278539545732401481152862148153838474677237225690971076035504036175344835150279683189042374741273051970040445060818553709470327584824506351082164448238794981563059714316067006203615291634908994461198087175863428246262883314962872527633433539196384483560253259627889439884145025699772712742038963691324270793486044177471005631633889775619593133639290681367925804433026974303907189858236602879285674536251528784164907305524265322289790991774782642362117965905428102021750420484466849041022254796868054330569059539535525745637495484676192892913095754329524154750316793500037629407633404238977385112449474708917739461839349383122722723405375078193890275754603798959061946577552212437787423723021468399673239793827530595770188591173362518988732981757488509525963912474170320728600791165139843214119318004866145192120774596814069868688914918551018846482617266363874902155975119019809278824119075345268117030096384479261537257655648257484850762617097363937630416109171323863509851996794326748655302692023403043793040485793675575957977744438266347312839649170086382262149153795516212543609877159993322380031442039822809640658086479235072948815514124098062543265818699679075570049311308084806025135284771325630451902183219749262347709598457520017221729092480087630156404567108320930733597387915621958204263395958101658911079930666207053544716741186612259177591076410900321894043965973628834938359868618264158069245389354912323996178417439042187361275436154720238828673999953396843590778269753302817539617743691307035273302908093817666285799931134108298394440289019696921815003637282152863479070770560276814968670560046773682250361796155307694396877419522201475191935546110481732231142948758601702128089503331458354345420598072016738534952861310643598973453967207963042291924140037211421428047702347270702190199298275855733339906676746107324487339710248419106263414621524731800041975341240967375797191581365783983305291280158669980291746419940478487756346436339689301448513209689001324704257537706513261536379184362764681040025980318176023662104729490179300939360887282163426987349325683769744805645930485176579423310249049955169345637185278343614557089147372137112333014444727336079453251568098857242280861206052030163220082480432551964833350307011969728638587137072007420689898388600663700503264134580615323805432709343605560315491366164532218683232329989299487362733753321557100267593446340454420506992984960061453255534620832804104724627151845635342553036345797005686197149204492656910040855589172231217387215778007255169227421973303075281569054839328157151567579526523111516817965318220368168714019903132633953505251001860030543405419285201699931915821717170178413155893686564218674536037891761259766522707671854456626152560121659686800346533619089562797282038350498062977844838451341664954273302306602544145340086367152690578797847609482433821851376833294457979880652679202188788964272032656569375104795791668619036119585235521554736814096002892783173001649579024420471302171232193452569166123249199873800534451247064971212461486973590140074827520782790948252934738483819516232414738780996299075099798958758085961578359656461202812824497015465778927908014060794183630465967741139113708764252932547766060144110225617413130811197166644981183471171587446070336280456864360470157924187467696129288835594732984579338887959630817390308947847504712506467880517289306100715521325726927471519122189760912705696878988374930155921367168322261171164879913869607933956528542923611752895127428266286297066314458877180834509512114211933040508125260747414982731991092923555082826689837441454883213948366694449472985913852918671092096834904165742580413386319762069774945438684911154460646465364290170316903100610142914341702970104946444011334290608099167681093922378364306796486924562506031702935866201536978922190869659144015654864464846810683146990753376793235762144572044122358644079808140355099087494913727278948279290683525297009681261349547247884089404623282684467662509390390975033750776729980912277397153285235888457121378473065186699550384070445532187683852445164431454839151917048307310542312684437060290072122786372515955154210157155125796229834220034430671714768037730204668205288058984095544163949964293705468224159259647136915892571706648771032611000787172465065662441274638009803906342116479463168410477815539348817713949569023879673509283307762050473054288443395869756576537553967888181028973149934471237701930970301749031322392602904331745718066323090183887672846652362211650507966335090300100785013570859605609894608973783207387823955499554051832909359301537346421031308580308940030474965650749105130563299621198260086178938040694421303507803055086636398840154961155093108759903533587312592146061802124333536804532704432913066958706870876120482425547130497123015541529702987066074582224053444853637904966866325976864297778320595499489319291526271636162964956500877806786023847450235234799397211714447377004668536778869519260168292107010913422893985888008951139104541778613294944351366603865845768237210448951901145252139409113019783428659284857905909692040829191220701048644387987593631442170080171835397323643337003037235919275406848310849140929968919157919889212479389872503753524123367855998221982348666897866987248438016588483528026473385658241550362322758051086008174611625003624796301344480737451714480190794512275514813010045725650604051377422204696108470853722186208287898442121778377555807901518151889206413927598919921330876265596985206901660311214522532315456249951989969499335085392283614591538516937262934989087600437432101134219729267874694049408470967497945602795593781316393088700182323477283146367096577388084492985832149156498146680062038817975907958809785524087435320922473747553116419536986465873777983797231335468675270158924438380532681678083650296573505785835978936305498983210875523714948853828504640388000982955908635661310324329315734498793333336047021340493219306460805054963739977818587253138337235294746254640622848130591175850065810968000531985644995607686467953463741427260140178272843349276863837058494910524639290538580947752037783790999936484342662841209162470803909766799822797176916872246897184198061029289822790190299403934888089810923817922940892423202904734526796634627447882622345019660109805723052486298457310901186723106136995266442988002312276909263681002354672277258309752251229795132590833452374903150268008245918481855681722785554510036554807908203015240711430343537543280593089195256098632142085044154707654442741923273410680879873774958061949652967444709330156021622809625204648536334049872833403775163979921253336344782220895750374024831322707761098602662354731659858853398548454605611843434623451390607698569195197497166708839216917185134355264491733681546531632820469002177445375443262737639922508537773994861436874507960156281054985505707225296082847507113508182654307296656623941075745357814470433297727025193561417201961997174253512760500922486398828363254194202444165251058188841437466681729317780459756549532893053099511365599139847839593765381857992293013020234070060249168403823114971911819606889157693117144694129630941292444177143238797084970032793280779492515849152207608806494873898936325905692101408729013080529948118651620922590116357287978151755907312319423087285864528375418337727668405532962639965691469654216898369991901704347104919760984241540398749054256980461006386034018401344372987382561585030136712115280891920976423604265901706195299091674531473901074660316195423877271006189098292747815063473064222693544364871982191195185119922756119546951035150712992217036297422043347596648043472903361263595513911218711554821014221731628925512626361431429506882602304218443501458168275088064113323111089774933675771481886133890310061958754520898209367603959153098422264316617348673286921314202485223002884400892622146482656398413595060757483521270043565558003961394842895359813237863104643079064492473366685932409173743895280571690792803287089942840317684529447254348656659589822624742683263851680978987486594856586604785129304735189323481596620836412561147227924270541005299773693412610829923345387204269437989558477248394170289425399477320923447418827061744415623896098122679343389425824774215771796622170777736754028320310937416858034386652113648790917149382130331346649813160266836374420151914907241038054821557802845425229142036546564642902220036043364246877597331574242051518372300320123976320534882069399646332143414088789105177210929835218662390982832605738892921003358615144470751325551223213704019631259093421982006764731413985934611654809876350858620997562668874506918163743608991870041098533923499169395913667448700199839116090164744326156080290370683447624798710803176893506596207725654401059163517087617528759742804986248975212282639064881706679715334635028003434889197114776730662965563096341357977031692945770741512790616607167372691073039487261370021761563214676990969740432885099836579655328033666323643258358402472409124855532199640872281799945723671637456003445075181761343040836813864050561449262253566512321062025720997393881918948981743160801115424831603195379431014822470423216846191688111167521907509709824806320345459516296659932621840840907637306001970829299852394323733649011576472066631394175789452524672866307328397004147232063978414395761147197380348665943683558484571115250855856502274993800263689543190480971590907503373718377128508391893172526239688943231381476560966480605048388264660470219274038733653248333741959568005509765441580769603901479145028692267132196010477110661542823953981381091415838985113659301898568411994769495827621346363220202490184256229628654453971075786833974749769917830825040336310449425345344039379752968216708372152085377577680586809659257280489911393204463443549421219016211846212665216418125160774562555517605000804177120271954689673996286812946453760204575841812681986381073472120916247178707568647013462864943911440988812468777812787763185075826278228444103809889805082503285063659319627242750521445602098278921034531584943368112899310772049561880869467073225653408227793543262351628040549280282956439965390277868229265612131366315879960840034314379102706010616959914015529974829398026642267882312921655231501248986442771770705260244839490058320268715955648093201656173464067723035804739896464243583037031680360658121778407790778310686653902005648712033393086285218671844325224339017627111027915627053990291024640621028413874540557686782908474141329735954998418418607671491072789216460842344914829895005629089530032116721100675837389459643035376160229633939031816523287307848592064317179049143874756961352866627453187243827680343893685045080799018806899671555778350690836889834656525354899404459651337991663947147790134217320187662528256083422464186274900016769092124612740517715385296528094557425552541368778533724567786588088980314379995523534864671822243332845261057028211599545613601413754606627285737354077694591537984598560331172179538787669915989196374546888134281394551761215714722063703475275378673918952519549859764726150119213144105213605591863616630080112351959469761106323635322163661367742056739889242046805766782041680204480904825332531622139248569170880491665320435348691659108523054401876411778649866851902395416618929791000072962257449594169513731586683787577264303197173743296694822432065680111691566894651053601198126328672301176157626769890563852573755686204187739011605710023052860114123885152027477977134246074905902531359768939666125733230145782904236677844800342281767132935277351787019431719362356717242589942070480905570640093055759905852165156519725301469061145185151538321837773456547437678776856780285833890748460429280981025336307649099070960128879854836832520909275442855931263606035428806961649054104726554518330901601960493799164631846622989394707943095926765907070984921524764346736011236879598036649190723825259581270172350868245354654893788818627214073845681507393348059508853635110694388314409133003802233213466181275540924839435122893471111751933281719318881441721436491762371278354005512197329613887671590356117368690044835376877966235390379492010528100973211635933300386226377967170001000150018008296230788149796026206595770139592644154054841226323174173287923147826729364635898363730558418087679439664556192916602928159593222625728076793228292724523098258282682284030481570959387003679668994581626532344211983266626839858758310493831168726605659536057814915291959920168056684539808421814328897719850841443629389411136838358617638262572390095425035272104244251627439185795636478585914472597001644413626447791231958377399546875583253159101269236457278364591273593885305759681069123404996148647867837188416188887392939094788310198375228391720734420337697343825139104854912773289910465039322707050713965643987626948083055382722198189823879743536150267527765021529532681792429309191025270602371040087026272078105610916928408997471910608892720225766810330962561339888180485431396964709901555837705370282026498973001984711783211249151381245838866425801081113790019167509139547078437749798368882767910363459002325077348563859411997448510013585462633832821611512036326741984253486809725135368806336711345763382955782060817524908869944242335999074903010392248577843941651485822514265988389003900204882969000484335084498259744704822469336424318450389867058578748096118448443188026105083254556604586653579736889568813812870808035652592260090797018721242396755741010969967494154810381339564269097138561811401225216720132309536967942675645802018823971126318618620497437719300359828752415376125061650568783716739520836419794510103670517834171761434368435947957051783339109507242384125141252841966312462045552017218146108141486768166237357760297676377312851416721573803574863720529119037201077967926755361324514056103724756253161801306335523599944141407011164200212501422203694602255575318457971002574263674348084411322662031958567734458056114087733153436963094209433349380644056447648309893877248510966167540555410620003945775683732421516287363592097675651702112116951707053155432628320252620213656087678868624993927934574157135070328835848819717068146487598729603512331529756352691073631747084823234865275154238765207874487725672484186362861429869397683447040667066480531770775236733811594317185080769116673610855575361306880707830509040386790881181210770072930754701135073474601862038073440144662114740757319948082911032686744170957605571697197822104366656262714008613580635346613762979287372038059795214573988340051732181681952728082703067197818866064691561365420394471177310250719779272947384004631457384527097290811685668406853560533530206086947156788395988215790355558410430318813577422166524908568447273401158796804703327651435542797978241575327073070885078201132496279617575237457188115529178850374674583464694381430804184114053418168606735485108245341121162034400951517406053752219052494588640013580254821679629376557223739723846617014827830530274303818050742726338947941921558454679676941299729347174928360144172357263269797837644095820782085518279779954335581690233898965072273649202297153361855558433682915686390565410140583997584775238894325942318921662866086088097212672860584770750944594303092424446082466875894093167182930410444194100812767441528536147689826697767215618698441427443864312484029620637047559112155257571314468717258855441526781377985568204913655202773273065533001987074987746415197957902076043234027984842247442719392038948132759652937066458279389139917826874200714252933247598386870001566150022758683775616569977850678402934298844285949010753231870879709180503473811815886218899201036272394555889625507374136937456729098587648529922857699187604912310763437451940633848568603334525195553676609312443653966314589000900442156329312057125729422487777956084768924615920881997165519090369151572985137130661651586857848227088873358632630574839350071004665857333475467752148369195641783428192209349822003599478504141210589243768732657836557940797416174336125455042459940605161619426432549134281991060475763017566757144477510811368208844231939370925936544808779857119203104227772868642776040336494648114036407065999889699398033550405851317650507369953814901684804582795096938851990247161876587473826257966507556033578309753941078818554023752726109330489778485777951868804330169991073298194925928497806984132240452505007009428696492857065455699162733194063980183737110619503574564737645352027542578758805649906951799661441657617437146397169434465187452392709151164420893160697189229840196883037720794883319555472660432495999689594420450384388936132972613894049903449531126864651762432103770856609087568828925017204923696973604700513842437552837178337084387968936282003360798288892173360734459072909229854115412787589664228434668651741820717287717047352085042157184069037960142532795097141701742544223426185423321632982241890653643071317241272171506286570841333322061334005974021876988465990745368221545944077292356731064813191832864207489855639333328009894256841454970418368046732079639611240724130693288043555854514408772829421724167105092312646639287755633785123730093031193529106532073573711379075432758896473038280608214383604175591722450932903291308285281841938166255778166277103483838170331993466265126740487195495216616536247996007727592577597786431332415509032486859242989124717981597553634039929311566949357049758809556513437101601593896053028019119469537156880023489770968024375239877873620037998378971448269197489875752013227208947011613550649453284228675060710748126234767449023477015621108284826301287411228145019868606128642592956511088238104553087843064829473415792741074965578997776908118132942303067498284119753222737106463021073718265340178380339676457741367065825378609707215018384837782950290359907809250611086028392912994153858669732926551269604138537287689375308493234958860896030109215023222163733975349676311812855877774012541185144544506742682770324612443264093948450441711536668649023337058820296863936195233157957085877985962607246226345818925504978285097079523240107665629390451512169550493217954924000917201646012518303001003249378869542399305200347172012404241894959463517524707456938786930517885629051069623450766034260927627518389551706245220316382319932774056421044060107683249859136260574875833576314051752193160922125671593460526916740998529997475019727666728257287553199358508320272592629470369568202720003735168749911559307544359182716103091602263827419276757776977351939504517156077762971211015600020535915184142463736740704557617664823510626459710179853121228306430813854096276789573561678220685324416223306746491441302220661163759999468068096959360550442679344017682116902115363643476836122240040404027734455785504038603411220677449304631123570142667930381522671746393410007197654625387704411562382800172596930539948115768031983816571754383396313342930447803609698493502429124515801896229908174795238158358730861234950606318160400018509937163470112569279187475853182610473925848561673663038744422998375738027667605005281456814116223282659994845879752064584245218258079470692140262635313312467246460756876932330460568574885278022136547858095878506502807240749679835994307919774979978017868874074499358824664413752426986167329336966946137039645257645205711177812636420787371572269690554964384087452754897704581322480614248695693041546013156462930955135799691088557302282299484554373243051519716135553448820291607559451158798943109120154956736748342218370337782960494036537242062078587492065642643377426790728057710834835579656698689088932589780390501491421461787483051493709474768313101263002386007107038081175161619678348371119022803840910554711507495943934556114875702033694253543297211744150563036306085557261221948254647064610967157761988416606391780633231354047589713013322951180135232737851920318013891966606505054608519479929262130341921933649682556335124105309072807384189791980513025774516015886655183250247034475397411105194391763364933780871703759557651881970493995525634965122876276983451418249650883917141927556347008309724103185396334209059649881533553825400965466666523595662598911654010011715579800934955519608136149060768985462857900763396685506105866393716241217346003227068577809810174272296346605582770748198689809777634034292363752731958833582252465124503696067468359298468382585161071064407807335597966475902861706117601229235678813413673472824407257252369034276914337942559875376203838046206017055190458776800829222551491593242973683485965448342090768876978511933297037232233358007649874829104812365303222390458302843766915326496455705308571082338227370092544450290451774535178419776503038249286940499917631326522658438703300062954366856631495423689264120741449249066976477398773558888488648172991094214086660987971535792068213626920859844883726565686234658416346727545633798348753530424349726082917939109010601210659674575144609073068019262927368625793816648409879600317851460396662638469680316324015040938041153485824333046495893883018059479755320954679486918962175399269946402529818655386329488909944528892385583221072776583019188782700286719719766986693189172612146077295431835139814774879723809353404266661505014510320498030721950287316000218966464471428500080124533000640145963131073945137371699312656885251430640121006373263766036400557557728020294136834589312542057906775589353233072327189935107380585650894155340728422763524830304374037108750700659820448832063071181272535037136570216727617325828716794126253644177733135578772148472510190238040134531565572262973336521593577538603643975557850729915520222717007589035968631022807462720570646070906210504517096247113673318639850168117348455121062839578307358497414215317932055893657650315853888327153532115120617330900122380573603177190319797449881067057840625288447256195278845273863575124018122031693705856132839209134076206027999345657728258571357125513578473329392493624358615325083994545382469760679911452082525903490804364739729128564566199867379504417098869828362936008792090527047753140688415363023421123778415904527035379947642783992136549982259490436796105201092183697882802617960994881498012575717329799279804158616377620543854057450619152527538608704663555316372357304973355748259376564383569285509160870243014458566374917702925056763729441794791464498098746144682890482070993579287457935924743071691278805306678270393299141581168537863568201473255303772791526206356221762169725959125346387189114806940452379605917914257621800433458767161706025683385136729461132784933786601104199152878976486996510666219256936282946758752028827113702712587269887130990244509239740175606378076794182227051264130524605552310892484944018786099133438786841159810463535344177392135622687026004804545165832576648615893273161536108893776261987147156668338741126145393087036491552481435831077910098070927097627878859509850103890359138833029817128629382511816574598377496991683781060246505576444042039769212683373284276636780373086978043722158197520843108387226567812455362499249940594446874784882455706465246909091021190161775616972153578299238029281388274265940067801988584722026339739970376693228159960184741396801248008412766115510823855560661599793671185420006509546517102607292678887720918339803887899468110344880580686796120095952833453444144123147911491307823746415915616967849324214982915348157217061707536504879165183364108323140598927559202148950868099200674628077529116865724444889854660671309624143171972761593108400229725122734764118514050373406063740303626006547924284034947021283515985990888416200767912231978487435525081985242937862720927955380238956443078014074245730862981028340743339631193245754153262866686643768614529460914320137865143845610645606312215419016185836135912629468970506461280568781565230046636881959581143542307304760956726227108732690736572152144205557876382184305343022225224229051371056644159317850425977850702930690718590750726990513950095612570035558812706841719990144524051529673932384751441038207492281619565340184381336813164988998699988131887994842120547198537472726375169741932855523487443683837656124319770900864908035285639455657851587026852586788703106995849201585327326426251494722477801844516362927466110578355978674292228250091756605471010818473422240394834605159361552866644785629193754333387017710514880241929705021071787875405189342082251334241875827222406369418021043784389557989331984028590330147921623915374056890607763738883440812276383562369462094604132016559249725413317673710930342040859169757184616347987175359256467376132261606352535667594112437477529119184154218468585020646581607513723573432020351551346069957404585500693869223696050345236209788399743051302407538563535874105819561035225151343458290842148301693822648483545719415602212672298853928246491832258034279721909175119354849111075829319823220427773120726841127804487543138375774458861849198340048083219746944623015562796364823578909224765463319888621174810934127676408238090014529734427229149901367709380130400954914164725171632396400943061218418672627593228512547487542316851024449220038093341378202205857455621456107430709760544465890902311632186902914789722698747658924245015004358052488682456843203186487510064696095408715981545031049141564622285105457042668786181102290205907667500193899112045593323841423178944351750883057538811149191170493547741499787047634300592462752754561580753982191328574585040298284014428406493197450749733020336341641577181987230545554187547820175439224248262523705550152021132426839364175224308837237697161465023881180787654323542922716761701855103943292517316050029646885364666582443822067673184481754686279331048947040311620311261507073178383763395648081413039209913914938683609964569664429636999093891282874342500564567045087387392285049008089383945907482586580986015629500442132770143536578140490887876577856042174765699565608454490833301826627809772458277605711384429807424147564189761484107392980322067712353059028432731369571610229371783702108653206434526552186906532626114501490298385180719625967083150008805963821893884992295190960190890920619203361430365531095227837960148697781736585598983651950174536235289327473965534529888058422379882490616058277735336331036666553890539976154152779753617627974742246986863696367841094841993027112406730111380338707093071451840971065643458499429721974350002593095834795410500566672271754295876411457078493180387205857314655077597415056080740828001906700733059709857567059990411663302331177135385498134784747376769397746574468729863430990769653942601360045672136482576706869285894964285997044690653984773452556963275064696853486269026625892738506810186417443703176671806721169814355800840245887285550028331618826359355601152789593035309890025524159956506351554017499248585082137031885555795142585671793202192946746073297584238464045292687967033722848702193001900078481694326877505742230963438992560448398676787447463883334873153495623680160056186725505010226235323819574082437275957845277114347768929069373726392702285786164341813532408222480863174333383117271722082784059205272254721317074682267717565473518486400236971598669679528862107163308131461914515760607703583141468455249376267779266851797086412616491673464011601234901434813168490577454515256523888383014413511535916657010974407482165609745911258140648258189721367450235779639496676210853032136829417612754962786071101922425243121086087113570891716371687111711411277229704599953017956433345444776757875488064858785900910698026639734981229079115626025327554228528799940014921779997939845403052111523054567162777954046965690074082877264876052249213972692187486797185020725835584124463401713570466087290453611877499966845972826673950980498151747159301091043044956924362984731741148957261013602965089941058567721411341349302150407293805053414110643866458018256775138404366088687823804880874668956302541071358518110483153440811946065784568690327786714206007364572396240849584408116930397091922312950541729335602811046226305248967780255504546440671888525266193886283548858821961773331852553395634243139584161027066912179267095704555327188023991097310537789838481916371487668635026418223462880534848499930549986934401935529509524493179247097841003317210533457657061361094140749259812104192090436095633732478650280133624734731708994860893786305295886058472517435712099710624093850706200963226374819299705747337569498857100205810778185628462774290711582203328733852964925103674599846074024612169462630143066855268762032632161488383118227720238626726888337724514355227926394728998657681552569008990839633969216955140624112779506342585341993353037929439578044033232048256332803908201682423693930921271378069648684839461393291129843532929236646436343943631029608766856491202012659102279187206845106851537014975422529145669436083711108275740717517387976541640354895619362941524505557846103116755207545507604982332481078158374359084819332470772070132515879727985691352141321289690590510753513384512695408623000228118126019258773822583982918233954087004748573481412777660751674522746923183095633417091576673218848899721324898727769647046318860127123261223849146112153611081847120040084887493970760539263645466193754362062802123575678428589496429124447038438754220260139676496870749445563611130533865471903290762780895683004021413184564625061837773483256665036243652405925359226665496960011564125589761571852065632370134440226284168850140840047961403983069928879856953316930277317038216354620726981510646765839206787819238163005107826713975985374066143009935889966080675532270539123619309463218375361040063566079783061333685954217863968738161269592844260315721429825133006765473505004343218872339452664554695597629192676306528636807747381761859801175388858705131995041261301328539288360955281619254531058584766609986437932260083309543147174613419694161560729645401813905296060850811926595486476330984167888929949820634762506631142550140247038988841571920928540942653018322027354506565352769959592320141520763612306114331128827202379415387523806939536906698332539290097625326855092142421521235109140679713638155239489226938188847796696167317272508320564035738573293009057236200396087003295488263410898090120930698621484900974329812343468301516745568651264405115854628796325676621673732932337709161331871974014545168467176263794314241524926736195232850863642344190845691072624487756600001883703553852192398073369674559821386296852505219589978048552207801111761114634276572292752669004386409160556599419213294978911279250402579938392544829864656585300423672450945593556707650972770535142861321203644017304958406803862117326950097523862994424596739920969714050716053968133008253953521476613967556439524038953494543382333862210640451922466150009640370839913160067211155173624075740615594445181875776237568998810509315360290896642362612873947926722412312184000797086784206678480239312622816140426338257096350401962927915416223924439382938690286470340257712148558391038802555481074313021760270972474437845799054659196623258263859954816248385510274321895197524646329614899688531268440708725144531584265234820362441276210395543070411559664972187096993054641886607320747189264849705234204464818800010818572559191590968496546082927185453332078726712487502818953683899941014383933692962375390252406414696795076935709925135024868822964365823595342550692148483436883257820016960624894398267389518735296239049334176138196522782567281359188703483639495179815717625485821912191084939600781683217813300249116418577539166323861376310458352551045425110972622967189039672417169740044542561698102924880220994938648689946765973444092575128446475590905815472498711762718615273267852282874329504501357000278565290460642205926560595182516156693446364531342707480227504245867934016053259641472918939218461017487370701396140515828793313708256693237480803705547968669809474727310745187614246630067113536010190311673002199047853509457873807276189955802366450757048246444718710751130479411694169332881380129000794596017823055774456234003356602827275007908264134446548909781928109697761731189666265110609076378928988625974764443012258185729452192699742225307996998482814996570917180462373713354027682385997510022624656281362081026058515251313737286294465528276643136367839707735672951451373648495889930193100125116408401159291346552110006725631864944883506534485025611788230878400740821222675043607609089375112065708279585782976226120177794415770076849262832032712711352551638392684780635492988527111019189919924520434245994144983813565570515020442402306500540946671949518938340145783789155833101639420156791973798880130083718130957057082348359426008518118112891277199614059939675740638611033882578566253356185575157163000296187141500355299096194609765712909217743701168191107688865849253962234373000228034639201385710974474984894067377421910186828381805699008602484321003653647931869270871195042116597329454362905132541233138778418987401083699509643524964546979826748552848783107526300223322635231179799880223568529368529901653647242810141983224221839739266906185770497439556729958595457896192761708008684897640885477028359174178428889433187570234551558815230116731317213081705779526934621002192476480668314323102752868624456395311480895075720830100774507718565714314649993419089612108462349088967337011626774949605781829459901607163113857708948361524192177822547616157682506812258646643329030397097383786743830505583352893821176960864603581256495437366619677274693062330198881513149993142407360376021642877998552494518137285786341507091270578615606371892487185971717268100041606249537440116164305132146784568415405729701972633820848512048160843314883769867939282719813740444724054893002515666462966816104495565665881255161772260276766690435313219841608986242838429240806751858130933409761244558613865302642623410848179119325712331290429626406510421337866189368054594305540261836747225424136316364044652489892999551647214145483207906993312097601916728671574126357815232694511277218969422057285916038006709653990001643214188215062616160807375895830269426293390275241357521870330121663328010944630812108669568325078411058448278126767895854846054783992737560152857709664058336081046842439969282952378093070345857496543329511484868862285219682703510575623485721109846132867574664621360034223829184239118876629147373328016313532482625684346511834881054206525717010750238166920946010196240505910488243851437698771309777790946045446674524653728481617230472470507586947823197962222100100742939169435255999735949189682556960733600126176368844018514849773780819645672934780142341413933312734550249759885355961102923274259088072315764909144058368785211446651881789451197211128319043498600718833733521749559355058500755503556064406610938483580772246483761643405608789819295475262957606271160770207228205212154372750851045460373163655494464766653099465193541339348545469595037429965227442116856625234731571748514579176633483347469043035628043339530957904689598564455002974320480374099101420736357069954120637052789196878536022774101672392057290538649042774059245233738299762103589110545182817899552963759817474555396591869889271498395538945685212722617312978524673194009329539598531731570771445261255851510607742559466811806673644310468488806433002969692578891964231078442764485516568957203757284633655900555066369610724828309605308514086044898429491430203767213640152659094431650679237867351715247599586183082491068400521237287087672440522731825292605458371552236088577146536567109693657398307095505442669971228327724374814510105561561281835603503808752681819716008246338522069626597098062458114184852998629330199650050799967190751429630855605032087916860995343688216386611942379261339781059935338265977891760358569018390539437364002119147995683893307326426789893182859091715457204039354633495625158377926528277336704128461853804361574726210487564975117998562431459799217822479546573698568896377995526752694591620796541331396834287687661261043164028071246671812785477075171652849098715224806253054461538542942273044720624525882575938874143810795236144636617843336899333156627691181866450686809296278488155049556506382047669708078293822790780986341487070087284809893131069302806062586273231009118105167821009973902876629697469769262658691595777867024187505559003908427727244480301530127705253483771350035499445293834080036625654084666592792719758414799878501493106165886126202106781279250763666364543206616991375515567926610783345709198864106960744656000108048699437166136912921913367124295426105756812585624642786762790789575477936078637514240789365245155284537573247364177521255472027358515335750757845366173753301320801968930667078532300677762195151028730462529386846174575815516144787044722293637174914058153404381578677705542016674916161433821218199468580853866185944894259099669716483019962040695680883213628699820714109672222972849540913233479907917962274383861582291718375344115660387556153233504314333109457780007438210448961271261634579734645050282989325523049339848083960914481342377403337787877785926556370952369241222172933548326630922108608280766640023000976012242024196515377965493690696649676015241253902247620982536554437046501458673316110762820535509046389561381153749520577958181982815372171137611897267711177867386331093726731289657938223462013427389030309745032042560307506623858647767864359555480077368825034908266801964411650678758731294470778356289229916908385054594223054371560770344516043621176558574391355793897295589781206552171440070787239348327570246269339770888421954289175609464988078438986470699343627284075035735578147033257215566186670056136639341504294645277132973260421450962329317081611414431266152091059028353478025348304477073771178784016647828378798331836632833567896214279071589937654863268614502786136578843010002503387225200467584317968346362785994975434068445665460846238430370878878760446173195629544740091019263104391972255019471012186580299605058924870522328168920637785158007734590432494427643602035101841335248888200008488835829810704138604311519642742547500658726263336357557729133252705314439667751767473327128867799641659352858214153160927379287651683091449498562444021607484420815858252970254818790500762336165485825952348853950149221579206332555579204853904749985715427694412305813248144202909579601993568670570673183530786140840958538914942967729240447107839682469719832376991363045982274351942078172219323587876053230318074485684390456402359353000578051105422049338125708187772834736336916715397026052162986210065528842053781447417384727862335086008328218635517528154431296332513214038912632947472674262349421107772456272549264363242020229448081685667473881994206617340183003692284464960335617152304726719399421097718367001198548027054613860040086364642654581044194300201732546212279689256403909989028110879463791090077127881918486284128139860686719211983213018350323677328618617920106232847921227627798691176794476676475576098116151403114966630854964177836855546303458114128011460959483928494906450433327503775853567466554235033203346976722880323528356009308359338363219476606617734535420225380225741380604811281543957895172559943445279331789802282106665359100299505842362247235559297193136267659529559295694149764655038913561051988860971721040901080171619100756451948782675416591234245419259304858816686251216488804626158175718355687841596906056930222796277560227694758321361298691438719920869267402110630059448962083143830091468877680683226159744553220023140650022749870636884426960414600636625000460622204770404077352717991777255137469290435484826382231235137104891558045837673917274710473831376996510059334351705263297314875155770217226893717344571760224359111691804009196251177216529585331372484534231365504708035309079545274856396196886234922239675249420578077404914098172803372328759475156914855345620575851083543090685652363734393373289766942916931355107666381821310402095344600310939308005754867874512528225875643930561580408367885655782409296328367608050125146860549696224473486966199315049326741587721847926615132859604168450415527939785487228362756146578731303040824269070962866130733162406824156459427269637808784645327438727535303010237100572582268525475850051361965593259339176917470795907813072999545381763546376184977555775115120916294547296237591799656898751010906697390332012248903562519802922927523571900472472538856372219969437401165191622415219825402990648439448433116494170494113594965977219961996464751758690189231753815765470684623492101503599191580635880085081649751355669196973462741207726268345996958655956641603939065618012849807480546930638161800722360117249672416075567397914991191794956895303529235738744865119816729140158587950456860257119323733720339854969652287672781012562906255216056898765462321440598658843794041477607852765743969165978224925743995382188491622625507964182492595853064584853495070586835225842977678633808677854835253086204934624343101516387593464584204440509289954745748583758137685998591989180650546501771921133960730472805300606716352793653428503535518571302993473149343908746728633083342019122777672410093171564987606465690035910018403488854817397835792533221662112589104952862916439515999102382564225944302822114158361401842683633390311114774534710137264618863654037795176432943089289328240696458613165878146041849060766840094523009261956800765268134638072140972742796265355898619077774132288750580233741817960655289671873500329061963208822803799245772969198514679504616138967763682469940562428684561634320471033976958729767019470949392920987719505871198329489706107763473325499911381053294474988513617728125798209217319142608947834320435240083289415646486954592447690768946830980950445666713650256529125752421077950172515193801013387370003676887431094524610494887075962638666439643372781676411414238562484346144628278148951116275053412169149131975458588519980382800726998982929203494661100828509885225810227773370470137846709611244375690269137543937763759738574406027412659089104690196260306074483259144669039323771104873140085708390530410580725396995648838660530580746556647412411074102074689218519471666165062791861381605888026738828070446765755833030160866623102131854716860891016063521308745311999734330411860118594522331970888519291209310469861309461998573292792735739279346785323927346426316533628717407525859638734671990846881619093892008859470613152185094185372159769920587842866027195713327193950347612000685127728310914919970094436954794935000799402088692417211588871802762240484611091571397057846082558298261015146257728337098382507896959666889378864857981305536928293448765461141598072244333085829328182712713324312364088522785035681607234043075255177647801976181148999046089127644025148473430657050091974941570497909825565618087800695102367445638627408899475189123588299196599579606908510577509638948770732229784547692533281264576073353905062054078025615623138307882448215867519714280262336933973476595395657675539753843783417157391915413152296952119867801864564752683274480738373303191782165675023373575759263019873063284449089758694888785140149243888678602222538655289534979007151020565208962204714064067655175871205179505891715506440135806368800633314979529658292813315440143419073486734931883634186017162703907224442871178450799455166566433600094579138465058602930078480162261136046976082683956684712241006567443552334427915594259438744275776159889108221746305271169646141249911701185143018569534104904177625820676899713750898669345170170334935329140665281358223865565900209276761806184678056584146700334446933746577964398492526925346017875541236516497148703407957253968486104466921662135995375565812999870425111847981705558641366588321447885459375852674744274107974476858982372883822988941817562689309169903536743544351931455217844971298086223027384221316382102341886904479112714175269733333998482107189221168223732336670117984721466477593932192506779651974457698633780096694959917080976568702078485117870497327137936626135462162217117649751384581401725155042804808715942434414746740958200176034769818914943659199206317696766347672773509131579856527568703632089524330377493210834850783507859110572739257815352318417619962757452886966771333108788407340205766521276208119942201559699821249794145012328971487884620892294801215121689673883131119992733244582842378874369515168904253872004504069789249242640015272594933533118340872570480506266769927411097397872949991090838215202848654171751936691261526390362448650777830773111290336398719074258909190917851012492952345213447050501591877504685379737758349165839497456670837398292448824852888924720538308324733659701542029969107734051837234049459226483552676992462984506982345253217543926984424908910622955878002925463469017021167109205441133959792846153381960513739298225286545054824343110134473940633071741979103610898788487306650552188548983552781473645485699231123902336984888307438667167746133093807371340679833894366841717527973362610974199198307974297403990613853044705432090101590239661335438025888647094334759201106332681346396357064369803404864813699980387109643995568952473061586438805337445887588127379809377348418001461479939415256470798451539065870799542335236637539642628802043066317086596846596332874710100371193841024909759002414902941899403401362333334830848611053737662659629648856780913445502402415347065245059374906754069744342871277584329417108872780484265065056773280816012160457160842840608338466082795426175483565150666877083790262158805300187847781377496880674393501528367615592942988913516776510771684923176334752965604445320166693110470284994557574695970710637904176770271886447322151568287936714334305954594983273147026846946785848334349922514419562291198681924611053930137444586282332206384606765581712654868009463402651786018618990992621923594590830222320009850279269284868895277898468261174080257995029211147559013971210027719131970873653265327012949525115002044200423642188513903726782321206945897517064711411737100278537821162471441267199383695009593733450437941741688186297745120089223322028553260217179307955286214605128504124705793954771220557294574042175825860397054671411060283502493948301034924106250731601515585941772159186354019397519657658571211643914118200482635872725342084916060889763618387647462349141073823053256497947792012185870172475121997538945108769226889071293412989300139122358301694536318925174944768149317131477548635004063328584104727972892761485988250076892892017961899738571553282986026850840853193696073589261287601043939738518267806372360932246509727762706944473093994429430689672129049435761130897731441941345762410867955283110779214689801523607609719297791212111842241225722916332879427299942599013232081220962014742310788827436449504860621857674676883754429790628993076349619813762501105917443029092786325537974513485685542746691909765773551972706828907136424734844320319748904604165801229025811749876325538163002898617622161985436050814258585969750676132090217140057698145890145394151411296966579392020474731394673277230573065366090855560752603615330633400192698687263445453819655835477499374389841408992465167091401057616755273754836729656918091578561599411485846873840023101784129749419534059961140517439610832099166674961305612228249265682223574984262299150789007670977938446461193774737079665467806156445784222323825370766583013685285137911754647041817020659354911579124171063075375654676808205386232681892977837853181050170698898175603546801473684701917211300572076967936197713259455542704733721504319814193167417238389367335123570632184975707717224044477818888736698187823884255907192861830080318182086036870333951451302316986174011390832802675772212085019767794887389390735539720146427428641800902404618878009865332545957547424051683232171135530817766324064453957201714450767163474752465498229826040466392096437509689366924121931252358006235481224461897086170154535173909693893649444303947060078016110478093393366013726684069801138175055035020282117015953185999244100463705059854359398771110692470205055479041158463016032777008836500905699308804709137542231143362212728702222427807081174916140922020167985367382369338446003438412033074474980658464962691471712501277763350754407669735381877368961950829713029939974771541237826376680698673463763789374965400553806206280705153406911427075964137753135893425374337705217159996582713272592749660178752197456438200787085342664230020359627393514133955797432441877171806199648344871566677945234081419782631698376708143545519126702731527268322034706815765302617026446703249189353440847709830943464384687134006357081112209062291292575269956661950302818920073612124120502766111789274786290118407958144424349238098233479718098721687666511331803583131605697565679493974969744582446054357969011346520020327668176566997801657390885200143048466857232604609560942984120152894567325207973270727169916434897912111566464371902087656814809778519655596552727394717863488507635097643965331302068864028773251379372376259047733440893437557151569008819232737453919295044367698467071193352429168665257546551510459369025204810216219359379122620453548910347099757322411265091556327354988227797610485874398005964000177113686085693946103747713913192387086689483929180265889402581350975991813597119836391775192864397906579982791688320028151016975312052194819087710452208508115423454970188754145214922475790118213818513168329718187325535059296834901859182922430326496888181035287686044106296006431486554219762853904667737809378124102957444028497553122464152530767812544496032199457336007642582451288918947492363015524092193838507384900643552592697808720560237104480532446182198861968884019308825148719008221551504403649960654249085224888071830858881128624211731109401065211980990664643538112557099781948127209746082380015380304744707044855876370981845580945705734476533184224289965051020760999955311723553136979403991368411997276623855683034824149184760783091712213174125835748692593739772500119860103686452903031555208195533534511833663079569185303511070486684940326728254886565193488411389277023243195286841952696095277881767051825425470332966934206186942772357919149112479952890999224073178349031454557040310649616381321739196203586988394372879220159881655455945262473884822540371439595842403565960063235065437146971002293098620008535233138040547735552073793203731710794401083071087378179069031436121929736032317011398118430686269465851655213606290712045689486352690452118842600269761996679072703873000646879934494103721511883893922385934264633221647982392814680188491445503456683215946533799278032939189493173117504443512764188108126303593415898565607112129846133705297736533498109777202299007766986868799035291588820654523958580591580533278562709779949414377175851747198129567318279177293842246184870621753522555168003172943166242845562930110820864379656943236853244732480843838273459850423710691594337456781762080971431204840989338968887122562091751397001571038331926699446336574058856037363288194748380763030382368155804999596684180719946839367378567189723650802587565309388964686912042694912904960658281208807679971503975855193465917627611404417610439852244277695458445396633861628582322183205347885522850007769445401397475418320117768721620318524302276234542813412980757034384041756631770345927548095047349403854216869616206941258450464737816636297067983777937468471870859421750148400502919713675492485011264332760162609590012867811240668227655983704861538104158901511175926223222290065474971194089344448488596259050156944391995973296153725212628806850531072611963815601281953165385569312975837144359014627066772994516381869397896446964957344206154549329815438706157081308518619287403229420114407384008080212561950788106496384604674454614095932452559835795477820749096473555258403917750520930091621696391636620807357769754071423588768678453333362036158087146686555102906658988054586066291973061652471406462406339258860164072764700400363213988867247127847060562708346005863674606065623010701599207922585026101903779684900504339288430966254850736561243772308614417417756918572556381838830658787113240396628653266947365927065544660526480475893177990696363512100380981315724139727257763518224052759223226513456631373066908204482185982750332893475410101374421056457936613835888846577717382200838957907794396558601991781065614103332618772302615488448801734926107763767813188127802491632335037280574030154402876893406091204695011714447943974990649582121631550265127135123044876929037166945247435518277156943149390656264250378847326639567230949323850908069910675288053233966975460237435056831144401303812606021483635594074516750802924938794473241344471546165120734827129610541650194999925054865631438392792023116547154663712442584698107287626119492071302626461946475740832862853085163586273738805525585335888670683472483582712972123592725401991802359116652244437638884252381431339381112651740530500466591420171106444116365690079937672309526162575336927068744117308391863999998522585196977874818463809079598163799409466837347060181092216150163367478557192238088004452513324129218975194871066223038158285556423748178003150154043989791801899121393366180017413018784908736503833385762988194498060415391327229212704472897082598353311473964982415571005436054141605571171548152850586206770282714674938666194612266800865479290613915312830630397886109736472504467038405046115759610522865680101978060487367465734711517006198185902246492338932778735975349145068535670511235058102029452379586748525219996953206405375116854213819102789223356210388073605241296166662152658327562262644887794749939011083705672095191454516827378485016519883664392934763195176346186444046718339992343720135620197479779356769006383806420392947680234768767295449046314644643480698804656609627728968786097651109516728852537375744000576045452056366465682896203945629921381077198216433697997473394037948855084768378487835557273597444576848773595186555935791554705134902256260130575883439299020054161309917438211874870965129889403909529827028928141850063884800119396021954805680034194022707082026077702248765112092870588308493851066176514015713793511168279799957699408610365298579844675715492917072853955536922153714176628871536860329633554186464624564809442428199046615123522106162047242755538035139152272527884127190904384414840565927783952407324276856571640468675998835287949301682465167011801230023711518314035679983759723152360421621388624635872474514020838990381323695883548883409140801111172749734441161137682047069409233151269608937315592338360255802958103469219027579868832866450399517082684904818480399098119069642261528282534411591120105268811824037037485256348119122848413302368244572282731331508651513394483941650082039542677490296407566371835157026726323040555852214920654727214905848314502717197466921773137326819583888122036883682903060773431285603539927315542220133208025693431715677410310424553214200221128481400901582107791375064861606007722490507324848089973614236479923943121024383676108168948903140783838511415581383176056104960802997495953072187178046534638833242710289834724774785339533975522347785339206910433063990058785862067667426276287115326012595151857364799786190790087220578739257235266199235128778134943051734880276247324261787038368761918851597075329393581249794077572026880960752486504774357566145608079228301765047218971700249533795870266685555894477024681630112442612569773416868168213922063946339639935530759226354495889690504242841154221486255657868962368605193257495004083999650148556399537460658999523227754258894901741862595805284802082838429085188643874702212329537821494537503126287795736665402678055914616519532063414273154482963349905051293862539490963254310288007114081935792513902263760908458932730436124605405625547125367993156141654354630984767225688070778864204170911368695670873993783438878863135593569498465171610695924913924126664214434775185508160513324041065839674865203183714108758600559173742275390887107594308832239608978212176101020386397480457475564454725374881977435411959673619497547497203508897302243887584023703143607787377005018976464648500874239702757315582750970544180026936005743538038238630715859125250042737084597238565690984970934397509770597641179570945638637635446566675937527356657034154054114574283536253347745320670091406691338910705091487505437345396744643468280275865531973722880789492896658539643532371251460065149855971228507231387744247316514229465651434953491833751413774334468582608128522690357337126759787644190829932882127615864878229130216090674841219562813371935430990735591682517978736297089628208046352787771603080567128214684546853183185470071497203999551237730820345565888239040551802682062165444748486513999561556884297722515119609436296489110114684211222780263888556614123611981597259801319361441427787921358184808364803897869108674255473672978229273890608232250399857832101585878276859829125289563719635811215324962064388969861115992323836273636171347589448710770535464067105644167892837352228286528274835779741825550245867486309292560193348581872195503642843741505426633352558353824976528164944587925864345279835286580223726020869844013265213136525545297749979594698820678702109851793435646322333714974356592683518040508976664506326131744338470434825428601019358204799714107965923776513956442132200986183582528020356020542160059588747086604587407138819354457116519418261721965881397487209430217509279260014328372789552764841946647683445955134106541840362454130087140494128879501272863240120095540257533291889499659426255710420382920255539863581877476201037972274929021990572456529826728091360084737023543589219133497969903042081361934090778804891830777349556944169097725817946542192968130690365391680280891395948118567422040594449451563516393232842941812771182536117526866461294944565716252232950893759691126106784775271109843782405477483786484752506920011667550309506226069128195664359896632232971236280390599853771921170114079952421913690209513660504095215513811763124620768922971686061480895805898335059079150790245612856754936720077196159217516319366659466248033494551322662165325118728590935398079213771743559482519134006644811642316461831778682410564214327427932348102107894734764501246063420771594093728666494992206346897324438044959467633280371790387674294768483669863634952742558252409990302636050216127824588987092622221409375591216576145215984493271484903830403092641712994268748746747940159865489828495971542936409970105222692103243409324473763675988919919939210491945184598277296831930118751830025871410172368217991265765528385934415429928756844922379319384640754762627752208768604614563949847241137626480887348306164881278489916362723108929697434632503292330028067517936927624955100289011709195363316101469669733029957908794756385860091173377218824676446443807440915983928292565100263153410013684119507699387334693929034704512737284080134844764071822363863516057784981429663405270125418459242513557428070240886016411056874199730620378283387441652643741368947228603913622190625532479888167269448266824769728990999026250629276482845877711330062201543729082990139357493670128863289158740195229307591502621596401661551562472600746671135039219360368426161633842616350428182142723817779776688925642622481867433727318179614228394626343031046614463373156341503709296401993902840735965197974123460079042869587748616291589026474850293647666863056358353548189282929439134760757137697709618715115601005291670598561420597933232777197702865930460873495794495670137801119306678205338418345132365066642101890551883928346560133116159151477607116357043431305717832426133771028690227762898699730223935313071653626537919619624772879243112028545850104817883499351839724577722938390391270623106800669323530193163968692229209884944992879149937279717031476301742929183955550313492331068495450940651677820968011703467635330660523154391932607528197957317633731407677801711412570263790982048894461389030438123516130661307540396434131430389274917903402060826221801598565512103821604886416688986848103667389507654831129087788410526453659447741387695383210898900507480648809649504125718665097748672205373331271653648867280668376422733783585146285818096807686651731473582629867550499359959073058183563565589495637519472245751579935914408323306924155175238001634530457881281092791685884669858976917400111675700935546119554351531732494886835254731014302461640408942477963491043750123773094064642487834506746113884777155953705092112400004717288271596123133065420642865582100779253524638205417839657713638908292670804771834031678247986654935745551464306630468042372912020475729306658643956748113537095851069217610189982453525428469970434177522379684708166505561124920122213258467003312423396416238465353687017885384274639745740245362413715021032097423226542058201926700444324309586427721428699459357611649643048106712948100053465387143701869194105998073015525811053934757015972661090144598902196437764559034598904328747178550070568007883810600164048940447336000133649560549941812783163919000018439133912808781974616255331707131516201132266520011334922012487114362765755988628891801495675454809295254327423895086456075013161550496975491426634714369057851102550523781488755159041367983592206228056255840320817887604172568882508831357683975024699719245608880840805785224451119588267431136420302773355037405558597664248181450191219858100393536296515741817725590289942671188436817127462046454018009414196630732000485741404456922250653350300057143763390410400537706949261330097161353080758775928925726090215783012476170489478879426725029881086963077552791347056162903572458548128436349633825347311922847647706959207607847973402253662669018360941304648978148511731411619720174570488625837652908998771204178744021121416600841324721142780104946823677304302092381081785092842474268989626447646894965981282342064633215012501158196025917032727552644713930551486312689873847635479334830966927320346514697289292471460424839583613589562889520942365614599900805974283304619019939981503472082904725066664706158711242855778127053551609654205762741384806359323376178833063598101500463308327944041265009758891152085133842127524751034823498320120243563151295599988926989320447913258525325657448847700828104897191003613754764909367698548302022397805890491451660483461616899034890646278445710390095068905465926150689788844710232006193201079087725738330515370685643952933363692006683344384347320544422022854592607971250403662682230364542390842226350726074022118880071748482506526849003560733307262762622470939934046797080306466797106086037386040467325168129348789938550680698155285102795686593238759603534605032292253446108365026802882559482647917091384027398936886181565876075329623026752037725211159053080999056624327360292346891298755823529675616285247364543589366074166133436586572327593175820292738385518333674777514097048236637664391144511789336918326731323093067211093166608401175475740256453591088997116521121086676626688777591624077615283660824700100641296363653237040265866769793499624333460595327386548531257041993317597548719603054276969028475766772507505647879329234321477634111553398844982555690381535512349734343851304281030036036367111333892583840070145200276264106265703308448389461815889766989283042042144199426343436976551576090905506904941882269407977447056271746472693283699144289479162787760887968249712934576711582680749338035024058049766188167337541615241186218878279905450247642997568613969399956579925978557052488192280088549191848244453725166425372771250559146808540142649135140608422624203696674273912924540530215653918627043847315188934593062608119784178383640062269952372839450476577729271850698908472294971869820546450384858229350382118037585845625149343654948625569989212895796865266770541689540616701952776211068324447283777139087847239419725462111806680148473946206778036894980272981282835102395998531696775525584239011595914012894352164671965777042377906540699990347369652027367287282343987278440840423577264588259556543298584633970155814764222545910620227557359368019431660978297299708370369625929815431557409665423632765572837532854486587058330348039772893782820398442962590250035352740484753987596861425263550242270918741068638766758680300769778074025945175841345575373597164648909883490991476812018035509813812089749382238430522955459503554102192240781973509270060894965206077927489863926340944205998181627717594263145928488986854446400660049486202267406083787909079811330283431758103004666068613976137747766977097216907392826927040910476326775461398900957403839568920743719625648556686520182748817440444684287217544133344293274051907194535038661223464317968157229376746360149220357525339533951563657744833495901737478335743479592382897761382242791432009589975221018002474306496471661054487830946165504755130643986403559744502302843437751589364502694722966272752138700018294041626006880963833767011623452877916529028291997394844221576067765320174676197322426185692078765147537246082345231487373685638333557606327765881040094424832189382389511960157685004660288454597820958317645580994525513775791593638794984381736798666114813691044648488563614626112841517978796941636896515540700544479668119803515177923079138097250897469067231363477869737532054137538658844824801676878093604416032318372043741618091673627552860353944003212052144830039301015335936798963771473885617894749181991867122544217856255229055939397056488599575240206056410412779158161498647395174821310467934295832859924203229096485242089756417161617181568857766754451964770275414094114822977860749896456509169986881599195332676546679147166690629147455957018429706793308413121200211491413745319690488425158248484432748214556060900338411010993065277044815644793972783934851967275274147297655805430745611367246418675514503899325633776189902896994720390953960661094677459780750321909309125890358801648272312123136528080842045272609689721209853588371047365132414855515588414156939125233659019258924793865257732791475045634384688939750151533090294821504487069749106860836078515222525505670497066213211112542935138007370825199218705775382974633647905082573281307564895499563246453880523016860247449925971761806009648391101460297523811588096589221254829549647840682492097636246041127106648382994902287239491558715777754198906029820733558331148965223853488453897988498032433674505146835779160232756443073139271460250099336250819487754108300283460655873094254586345461118387160701666676702912951294771155357294587721591118602371413005218339412395668889994624012400904045078440485228409306979246165615676144235351493550671543526404026309348504041998994452778295792259743460128036351016683600453383792231033039934520813229869952849057977477759936270952597086010522170396688317058573275550581702975282900501105460346416215146176861650109604023026334223397757630837177233508322991809957746244467920092728330710606601084143087393902043941595708446769336090193074989841881732695831137334047109816990718590088984612961311688707448076077073164815386762875574909173008322284467070426038624853796476822722865400466607069036404711155512756826683083977069326529250761137184712243174078961463733353709833161608438265952395321826648170956308640155012571183290710004312322006934104184932390833728702629991696184835028303159796978589755233449424343735459144281974523891750521823480816410552937952441770403888528786951940859163442964749340879044071781879478297852522462942746170669719320138223825050416687299759440852196530964795653904395933005164459564032730700443910903977419993796887606009605323014174682614030448047187944689615719205322372296696054572009222393046630179454058844166745077952361766402636017173451714281545136551328938613214853118106839280302909986423443633442755150353720150226729263096548504480591679156340584332668373808212846598082885847049148521793638511340466172842955340735999111175270700717428123755001771255093655452340292349585584320325639271495881106237647711982617561397942366221599260740838284275814986443602922642727786017896886961894613170514700465869754655228868562121786805621847551363414139199404083725269092733329430455482478319593160865448363185521658798229633795349850063087159927736020679947657506186376252437297377482153476991055944651214464020338738477015935383618198619111551982905834889357656783485053268482206370447747703079777844445809811420746835115213014835626513750068420860382465169027407564565347572878477815478284782281833676267351360134952163246532372723396986146640919560339123575107044694107521120534514515577005233129117068701698861368710705449083779965839923862933580224675139726751346289549826616202029928044271470556842601660658368034743117126613032869857538221941708026985131368299894985113983701887347709472829612398535880629605841122671065812362744271536110374100768591824191427186761453178830047861749141571068232293303984073961041799896751235376631141802543875401240785924440374372470081316347565999357978901415480745827688105962366593356045051446128472214651553246609343749705383769598248325053127241306145294113224113338874117525290231697934165586944868365510959486827375957737053186491283841460809874624365655438358488002823669817452317737525771078320622974818738713069461966142047120831238065915200329383472450646180886380944463784532807264828095346148314380445164903259696141568620683144289309259627072173766855152871668490405742680070033654426489135528691763647793982439227504204359267725912434050400617668222544608686190177884653242663919246623608412006782804324724353532816202004926254359314454919121757101503701370552424209784939960327751507578365507860084468291683456882286104178478898005567026000567505979749360406181531439685040762875269747816507417878398998428122014069256157878281703550363716591345346280723696897378128061939822368968055880413934008144629760119979594421095067870547160986773343685071426262610261119726234543438517720297939890681555773347962816115180690101810052693502982814369173535457666941200924402517063460643154624972188367691253996193141347266600604248037255569985965494227619267154204918815162010934421773238101622659451387567301339827334663734869788692608631715979618577027228047319889680765127767461586573800513657017739478849354068595237903125361771596439108853023667937538103968364241186429795837406188557936079197887144621158409077070452043269455233927930562919394925228072410161907412612974541074604431277815945742642568965816929505575812601301094358843616030251340410000574493479247856829503527298036907651600935793343877526001962588653040124966653437333141467895462235787267023787165967310301326137920563614124203794783778231526868901047314821518380670617209350644865418629024322033347023698596319710312857891875653143221093560503301436757060388263009784725103513381854942096398800130128346996914292274103397281321025478854334392856744657926691632235797655478104956724716438669637597164140579456557913486636955305211381076436568551935707373087302953314133009760446577062910578363290765920957332767022729996770237788422844832314089761703911553807482666551947002941548800120757204229143034353702541150630856080009656389318092856875607347379838372721969812902257230691992130514777506409595605192888836467096644015683866400778833908235099584453854604220762620505887386874313207206498739169848663180249243424666503188492048708406485129678596596053773458856833442104646148803253605745253524575673186442987395528117605690095174306365479090250131546458176123400313664503265435630461677964670403392208682813528985769564774092255767376443784596938628164460371175415963382343072963038755944839832319573686216666114649439474370025807409795805989583959024936648031981630903792915953321311205585792744497101505650170763236009607009700082806940632333000327572963771961384402572540115945812475918194998522858174249198580946475824174967695521458712448639062480590123886593466689731361687212643835746317922172429343773865871499780900881373295161323981675596242444012418931527987659726748899576936462134522592959598419229616578409531178187783968257626500140472293194206101385764275239363679914064012562403113315626654744332613595684821649364697001340060227274963939730311124696048182832173863556642211316043480722498505540860272104439984538740298468239692011900762701506053041010467127730741090401070141645741970894923261749654764731670257299123119237182868359042692846569788833952140157799127053082469322975766447398442345708068448593529592768831558545515992418632453661433637097979739920657397526913250657098810152358808670685146693347781904911408010867042402998080254691304037379717670210841413040419002012680011742472878998292635813567671179073573058963557634694213531006994167501909983074029672744821208306187124696354081939584655583709759000834654744158738922373777272028316741661723752201920655938388999945825374780706698608012990089463482155471385659341528699058796724821020682882513243933046729415028364683205085469646698038541327199936350400851231937953264582932007433259613256445725666531637036259889992505495208517305030412738325448277599465193173600863608395979534022706116902172728961012989543168172087688666345711820064955018146190402152928142207256650559097482928931135890943170734025357407341075088700735519149528363117180066848017937033363707452931929997654546303597623006175576189908233452284614202990217693872823068344021130270158076026476092239214390659907422584776294172757599842602780829073415526313318310464786482156018106722664815540463970670688984428491674513513218015080966857928869869261537356684680439167250812136860195786967467628200660174898300570077795224788823821136830657350775434256249389319194488576789993822199503103566575248096281857119448571459114247501932172782291037579969097439857528615406870077219805616204145741077306039139772707981366061766321317262154074167821587834364677972208527649727925015604981919165989621385838826056853561015381945730194045579769073093930481375567369147741726488605070480033061155366046429613670719343184248288500244364799845496721106129351979178762181590094398658524501439218031329936542146826718897425483751443636068565496218464387639241752987823081433692906625614877847249867223115185236577363779733556269822173493960638182526996605787915155351147812700693578231611702849646503779106322378477785822657778556465795417987820109091067452364304262152244257603072067416089204933344845933147264822561583600535718752314507357055028881108749458589493418333632813850217249524106120741202559115813344405047416164755198259013338505397408113898265085003469154764557349925785246562034433481411777811761769376990956872524141793728378487526109707263046646184720276385172561669838152388606717718334188026393847130767852374527522284381783614500899358012005572251645201945926783073272480898427985038704300923734159670062571968709120883895767677523641979475887191274402972996104533539995481023275688623379259869878135345751128127161556408578225222530387133644079116632703947724152131290941605233957580463638363313347717842847221522488728709743212776705449302655522543874295420378908632179674279419235260407789406565661570775320553492489390271699897032502451287094506980797667747370111587667605882033681102528631501821458746612634564411635976743506023602937102353597003441645122877671018800526654275045834887173910726186329290685923245239608327298853245736414263511787305719926829022787210146669661508174955754522303661439504683492149497182316496980982627135327338397623288153241146198398902535055077857496422362384466567095631664843051755635723238488635764406888080132626807990135017364882060159944621822490683640972659739270743776454666140041138714439042494499097436394240045417736361626158450313152582688998784366958428810076138761493468798186274187479520348067355311936825715819894024661054528391887030693387194322063316618178760379032893128802750461366472753828976003777036116314715538888701277381599365362604520163404176855018464309149872434074598606816799403642004536527123012521161669883042480082443384879193812492621972894856746287734375736743974231672025138524178836517061793417476059490387694884994972304184677401533400399286657809129562371702328108796238044027534276289366664797036198284055436185434836787372641962529556513472875168508592687445503970277248513020736212667272075493251407542412588548373315281132151196829922502814308385499852355891476187400672369818301071669178983673669191041261541000111567131260992309666518785002812798372704459987457544414611719250926918549035681705202053292398250207910237964375245851521779381120065900801111823145718707595880992291405185417767700099427867428651127962468091688150945108478118306697700082027435750724726552777386788154815162031327820461160155765617488721867882373868293605491436369139732648794655173296816146336310888478595859185350108308955708954621755480356343497436100251394175239685353996892969945585130800951464973237833492700567269947278739531660924582682995448994759249547218144209816467972777025390699187970376494542648885282003470076220145654296138319988554293405620128850999137508360752977930653744501701795978604005513767262025970261510271334117365528105552686130302010831165961441151497580098806151557327215573197879518963979560878948113861745079266113234694768050773066462369715901374415177878045623384475189461591914203772082790337589927520124585666452544293824571942505788538144346477003687805300423337447594568545772664470401555289782837308897476719132631757536407312620713854121956003470029142036244536559121464110444090870115889366379493241908868426532265129395351007308649305834652152606547000403945237314905392013553197982592320168198746282511233889240295844074291197583573846765673346172193376090377548900393030668364062589277806048996959244917970793130412257339129888052435864383896393259020681957563883224738770543102918791460429094156472838918804004762216443429520017061753973200099554050577514431813121863278161413401349073057358426350269771356517054818270895001629838460308515554948392102880566048624515176997784248020028459553150827402801422181655540179075282327194551754214942141507800332739756009628111401906939477420796942309272860492533726566594814391171535181273107908684469137411458736193218392285051421985225387171158665909950718266541524609415643422797912127528167560333743672645790421504732785327213023635474555531936069723771506270565272810658843146182240262252653815143909571155662664573144175797895459314378265756513906911247814359623708113737405838767216270290975814751448118678510710184990683224294919304878315974766975959826374315272269316167989208651459292252240662655568479557442484855099607880937235286650267643395581254497485937977422881695615620108619929439792671133534414909647604218264224644103748886312355992811077402378026878326729241661142052140775389134888909260900119698698332046573396163167709522691834768349047263045460194287892438513697071750832221682564623124509593997791834104572747856200315108124228887069278189636906112038610486053579718414494679329925744778797108871318130161523501827125232691928496828767106040137104166775348056232385791176153280172515394002056134839016520185006566994717374839139695517333363386855867352145264180934153808603636789879395922441228378314141246248318878210687800857106146013688814416683000332490694204299889517387860085732018132934287191533182586123598921454920839125435373575716424843988414966882630782891485343796385581301122491832584719772916283444803587010393242615061150340951057372106212887260133209462088054059688794394199383513922236879911013190684860423811722523302718824648538558340330859231735478063021978808062041780714166488019735359821631309359576106806618217918992597075974638933429768127117313016002736330656524460583373943661547308267437947230019795421278493854259374834017020913393048474619786567489130162806685609131971875613573783307263240839049041170949174880921325857688943187770440194898612350311892966884042895256916522246152366209762772682309377748914037651509194906676173887122824920162234061352177383504920011697457181640034081047525108194907329993273712598384973398493032986815686426734723648633725429090292559838711071562274103137665784699445159562831234126425841148553192771379121769623885371817258486889241093929727530854956000404497050631611939424771168211649081745194714963284176194772442767931541567619861703666394000892357922978329385344918366403040744815390035315312166536243851185003434199162953624734327847974085002357980268495444661994404304231753211839493979340686666405144148676838393067276535848642000218235390103623330151643601019320483902204696742391967068312729797305277780041247693526696678209194658435621467999053011580043425854244283313912443517660014229448048565227901588492005291168625430029588732904793558074320083581472608470057270143158627041177842373215282009054587516953077233990768611762998237256627672823330359409594680220355515088480367691205168229948284407987397581247598769214327887698778517533628804004486862842065054667644902579455196562148161921459737984215317700295839141709508526900982315373567131458531157614937237246512945541771427562453479067054246052538578197123277449347015940783278460365313457064384498232581533405084383616316411294153983426078197329358016137625696988992271918249205908701084408878452581791267553767898495044146617660066720297477814478184305916446456950612817071172354730090436569047526712775022755032082474848484728789925907882726594202166271220084412864398455992551434116906378451651676377827594207814780996630582376020601690776672625814403625862386053019448174922699792409335708558933732113265775029587834665001377167653789466667339052226355482423312763340019731416719813909806994962137453601307252993307260510366498968734605101643112971548185810770594651960125626602536891212241997379596494486496507823228060517290133422182255476171363641289269365225134130108114190976011814416609425519569015293462144605386681738940176850037413332747860602205474083156927520174622457928548799740972516074040814388976802759922281382233072784130344234783674292102146845998606216892808584324853347120587378548794773671073389434261830608369655972034572052996207901649192717224031238567255184046761567704444845961149149194438376686616541725307474410498904776447531793882362662527757192369934092216249836397901598075968927480997047277523451109572348024055497439734442900760986898525931312761396672774001315761842869898247214538112766120020243015436936825605935024667850772227246244847983083719716602059116099120921373484927686655574146731985881524656333240039564404574155007879282885195185756898910710894622578652829035480002536192095191586882816966487036647157096256817129449372322857442681080029469666484534819912106529415036241997618796304224211850195136752034406523203233997066457413300792262414346629473524031752946865737649446936357192885936590612770637702466449719231355812356947027767991481650418539144724398126272991554821366783487264916410005835385721024296319605155877234883971841213584170667585125080012286489141719733468717222479439632016915013118031016436521133332364413054448145089853147483265083416588832004649808075432722039326797702880952613462137023774052917374026994584817309800072670547993926247916813336928318059816814784066648482083566860374405761949880012989187598626398821220049861977889830407491918813609632612592706026858601923617871704040490736167318892049374402002734691405686140654139297249834748291725126783472336059231027999268293198016138656525524540932660085530324244288349411912928655607756312297385420212946575108571400920502513444515285154252726862713510782631118800596508833560225935557593478379852276754396752465819844676165028679364968660229676918076329748992904336967837046157172988559786200324576949428999831304253105301740789835073030613874681815971147060866759905384090791349428399931184494123234214620533242971868052981354527817933537841121904331484845524529577247806057970077143783656945975023046789305893328477787388275569331461262608601160353334287788067667865941028687391230955239966998577678150665469873361398718680431348770580049234983371724345696149910370581745352160995079310938970957978871086059001378310705103943058861920469456581435403796348779512422640871055427385171932039958684912531032024426396565186218908205877337245655145460727727875366049100359158866944319623055319185022314244278391098614631879249117611604280538919015822215659231669581232836003570027128800389839375222617463214045014594659564310938044607473159480553196663247013769117175581190300505066190371242826848386310900525516943740496520864551689823871157778162583142481778273950944471738158035101842022644062936365372386223257683869391843898969099786511851575709347363114532081251762468349967668727779055156705845550573882720489748564803528041905359410192337311688716531412075156138465361786840684911908869901684998418963358384222076742366575231951129043777711054766144122093791910099376147950898795185688897001431795787230333149349294062448913677828251477879346134031648382418084774991098447751902152826632245252118673178833872615541276106467585201765407477674513528198102157073103743110681252859590426361954186540542554723292751055602298138509016281367598114583142271975163331703610164073230541614739361198950947429554631816602837684918650635225389413622179897965490965655737730937693735176380329642534336484346308344921473324112402303100639915377257789441457151723189821325590389073558102382290122056156947616007244045485547693254083973822990768305192167258550268345559690204047577555668964353843614119905974239609221797287860057350457227914656223265943686123249196768252993060531109930472928981888017941105820106978386866394486366041100093287160599024605827275544575568759111333564408838764215299778189969523670669917580771782548652989336391290376109661637382505293634305420543994802111450294662341458710497792094393328908792572412997199801390588932723589768546958872412326595728549075153620427411725436413630589597784486330522664457175148722831044780118047962716038801524979576187937730719707932127760997066747700534078643222513957446689363683619914969133996978616946040443952230319046292117223725179106497373656139980068440313281314783181792449610359450974239922644335385226029724696089593984764405956174450794227068283840078238499514131973797433796322862082994601853924287927696818614196081595212132498533698902531430367762730600440781229517640405899482306773500895757253902168810804753159957826803461558316918926226695923455700963901607329512533846882314868189365177984628407665399326736756112450923386567076073730261733594537299063161749413023928507241523301244427571666132959785971885237892428941099084567415678358856066593172305839278198352647184920912797157291485287666086275596825007121101164171980201707984598905133199669933680187635608432902770722216056057096451539718259281399994011621977922586480285525924204495204068301580974012944961047950424262776274382920025899797177802467570784427268123840154997529158067804520781185754251345831515155131417145519793567319978929932948464357564874523106389513081090173691532918637504975189153725028854177045341648719700407951812260007485526516754445006861228142364532015049032653812479883560939770392786754642314903290260100613891887180300105682739705747549427970613552982781995665196934191009781557296092899592476423012081793684807529044802548972578828833943651826362272249956647655880027681510597074537740635253967212158430505928768915682551433066097990141308930229158997576500218917770434458061031472638282162797177121687685467132961864385023169176176904132363217026516838469556246987222914425294646990955023943274368036439878024690440512686620288039957756029025752967826170517634279772659785070179992598360549938522093005816326204799562777888996883517912862397368177903654289933764387279440924552342902165651400972329951783063205292975976464464996175628679121088498971349087148508858544580274264344663845628860731466856198077199932126363958448484006726818766489083643306710886087339106759652261429588426147450857928261033648333742846198660286724064959159834551359384320858910336248042991385845952961092851564355354878516272645464497973574926842795536292921066043025879016751466934186022633585747592204692088829844513404448841878786467203065894035075118149354042112236151426586078131320274697360972271904742052930618304932616366563243337060882703524355601983302225018516050504406904418937731216360586512226371995403844611907248878304865916911093590785019777345927774035487102208077769116358339637457936997641838668228822897583356682406376732798091551712273497118752676932734914063051723213719032672428475378589904104430662522923728046648357662207668869789316575233671253896806652350728806262144352278724011827752047431280020892961896273487500483797146379421488236839211693294501895202925055051446885127274531170663366006186628537697234433663676294218339057315872623465790365671198209642303478087733278193628515275876918819400597479153808058704614431200108084892914795806357525365592928123126688700967019364891987028979547390882359430403187351784980120677401824530493779048410326092659127046480685805687484435697306900532140158889548004833870602370695620499892941181540486058725561267201977232404188698796775736909021046502655876082255113504710142804980819382909715168434757979064142646907651695614595313869309058784756987527441687026309816744640947131088916461382472444755456954755134294806418203028592870045990807658817847087979667236244169874576452819063970347238605651506699171571902698821594545747975754953999687625417608391097223581636388116225669009272640119844044808824638841206603628593703072712615857768559483296499544277859414034400237606433094743128194270768978903673099690908720102132103385271050860440496356166082041701993944884734545952111086688559139079082991865370933574344091763669767712954971142153448531090372107439073083121712527775149296473302228635053761395468074352338086231052225721883293549311932680839358581782294585514514233339103107053488126956831572567370969138098194274204968472423870455020806228386537057891153800251394272392722565772185563012524859188984828329511870161519811325861769916506978943293842450599849192018507013716485498414404428119388375453030055771215929462483042544088714509000487874179325008522261907026406361519059548249094834998355100008792465713869126462631325789185981103551888026354561834333888033935381548863385622307434212175373791808554011810796066885667446380591558282899253842340997985176364218329932436545454947608917332955215844092888577987995432531144910329763583721418595275684767291119106268977926368794166503860887913585219808896747802220012926117205407303696700006575781247354065781591770463028780418504153176717665761150898822921186426672260554174528685971857687251804101465063832775083071589154364464008167571167034923543801148688633655577588800111133180709383324488570851274057274577787844616278347520488958224065938215904716561166037992322384800831619042738789844929758043285307817725233125205156665614964508554216434277566543340152113761339020780424020061537547628270875386328703844084690181594130321290835567523298094906466002185632078720800655586936336202041076023010417780268697189089398665784567792604600293999615233085874778370023091241433007579471411779448731041148742504794918657229905772859920504202028732076042950460691493869137897828367929359233664594112105790694013181125472564873625163187635501673447851918137433123808734887097497543221715772655273968408072308784156350733188531209468506814890105939726871180580225025339587365590881554793293040038844944385207891252505259847592895643194310000517802214020060383781420724099563048524104954115954665085692301813531618297606328766288210874421443852283139969791027760401735567805787056183050179685627527571179786808749965953262277575914430439916466936280969457015208187635144633993315614726831755865947635209527049390970484746064593408814998599714360658149523298760587444925635474142057006322033599663369111043837053935645284406861151448002841929045682677129421908043788724231313445228014368992987424242392878447453157945033740494787627085197212929190085634633181732514352898551122889615101635061889804622746575072061814680080590511859944616602459244088982727305979865976066037951751555640025993739093381641289984726541272360097136782660392936147099623083651554646668427888419094682750905093475584144023101600786041051379482932193322038408431258494905320124230192456835590250962291213829879243671438277406595880965752889821962887202919699352514783379481023983766690667075187107487803772388392935290878268507952522399336649113433482523427737618509008224225817688873723286158050131826133087945953729689173739316056058369030366094447230756326581538413963618009988024248324506428383391946277634316470612564550399656825583423820696101964653674800048881296518571485075793141841782954667508064056038504360941970180099802261214497624877010229526858066387494821641648110203612784458254865160619891023474308191354000854433305899869909946966881085078294726505100322381541295547500092110376238133830412599447312844275997480938411090451758999271605647392585168577884975365216962102698629070981438751807990001132896488233013776098335403213366411664368439130288534862389431894011860020459976400525402298383226676780389822426167690846456023791208036732537474892168394503000038441279808753120712548804758133297000673068373244299474705084881082905009879087915607225504993941085939628425991385420176596256579086186313442551193082100089763669410421069718063071822714254362256336250896287443220990181713741140707935020702235099261387182564903885152146920779145434829718800663949232896609733764474803431311755817213467595441586779375285919104576915704079529525418616615944275024444556342105272684941700389229302798157605160739165740551401451791775991594638689439181357916783271400232302238997605864397167132951295968785347393406476252349209940642690325049484941817157759443516842585428972202126219791729134453517497809009184243488660192663835730660753439344303302565346785877038734716592279230468205519697470407986472882904744375830188917234147666457927637753392302414340544004329372362286588149532546159278199704077234114565351959539992207739154425899398786109713832079279322088340365743741571630410978857253781377130364647100075047747775447661590987000531809307638759967478349729099379761547710398506947002430344236788286101884230340253263481113076199849793224992193999566861461480691082997036772808800447755878391359918377805401172351610720213184898810048194829390323620330006383512253438881253880706073733545095389349915357247787241013375192103243941849547116468904023839879363946850208021790491074689173580201563414643330691179737993386875022042868088398681492783866432600550357241099243145666118795087136259208910683038543934594061475699717848081232475045876335885064078335107064059454461397401600200409223596396888203554754861704843247538721737891440197730035574657598397593736381475315046160049415505035147575909918017564093444483006870101036656827761967617777568931879107005113300073360872367790914232499867108217949566387698610465432984504394455094431095135891314330344247608384259931200629897349183185664085664628238130232281679049202033352132853091241704602352204391488484991567224524322772669932585561175832846632310224565630859777259803990313525259974880749905024077682942799075398108577440989689302408192279865301399962050180461173975103864306360396295661239647367423409268816167111544349297495694807239411923853981730017907101200998374431346679817523310674936679284502632477599621602207981120134619920095337202566380109800101732811671669480939829985205729023386210303613858633178220057480580646975823426261005327190704840443530875401271723314049372515272933466718552919913188071945742131497285706779855806384220310543923899654299274963071884710694168445006766558713374329890255852067920438073562184919304524764992556777840354137855835656931120435889968223337154827078254826036597563904401180960337986900897187493998889154159186158404190896463276491607920199347289714562085972007824136720874489159271866839655539436815799739369309162069710988897207292231224079671003857958249135271098363448064429140938514900164267715667341498163567801260533544002530188922028017822737645547315728377340802901163026628848250101330552110546084739471937138317299053428071630033509114076096129551285771070931748619206763042035617543039892338073521284917414208197273517568676250428483468311911332444514473858691392414648665979303299211353298498740306100554989724430498334007620323865474327803056758705306869339927120638298583312757134567361190278398501919442779751299472950304351805807819283117536828100853094542178959683986713163895541719555097938773376312958668272004989055453560381113408802744483857654152843325451375034982221513053470596491362871910231025254327392769467617171821936213955948774164896480336062691841267942793346312196538085497139642638566855485255692562576317369803333641896522156295501148111565038733079615930425494619925867743902039974247410259960385166937453334104012467688295442498658555983077441109661536772536959169389500484667438553981331265192101560048473973597250627162037994476141723147753632796217270885733765239587557873056429491044224504629622010631728094033734328359652646270562124218398633840391265427152319387006700403475723645649160046301620754268384935885155400023597685238357694347549243964506949643509760311026702819499054222232300874807869245951650940605511669554226104472065297615699034452231459245247038353648503297685776121474580863689482431973033826308130950008567474893893228323365049109857603002882993389915795353180601609713625460119813918505471949173345500784940575391527231749285298416527684646748970795733827266068066990166329436771004849429549727779022534925066939962946545976114357768868469448642135447799285573607743603558699916627015442934375663811320056632684566446038929057400081831799833621896475900194197719431892198497458111895987230102779510531138017673442760554758341357536055579740531190170125534178473951320465152459302173597031290321989629933435452154370785903673076235720582247198244911391262823342780820496811108329009482799495116926407954100420902196043881742742267474782931699937169192521715145143199718440237144633484141751769842546107779138998296195682657599036923603240404047971452570044244927270252019736790328911070163934428251723848433049220200527476275604047791038394151944822652661605577200226468202515537477310662030191121113644691850352027007672485546790571132480295777493101543124618568230327591627975094155333460152535927797555301995339765368475929223365461516237220275509779211664038129302683281951027994013014470307992076656974062519287937179479862713749833364488308912281732905412266368766252958045723702563642241113230205912738022790851096515409210581271583354316377406861869188358871899735873100974218110926745976642096572648300277015309386802776911661771904736748009987045517650607916638143016346387785388994316736013025796055851470238445947178688189084990857038104244128751005253684896630157558597176504973180213417209022515104750112543127641756556790211308180550445479974175023025399994642551196290307211200675206531439538450031102435165356460003240411141543829999745960966299879023867196858862425433981169024363009195578577866915698430658765574914641488735898277954426483752338790823559325817646019178304713433846385504304658386879281911254576737091915350467110280935351940974851343349132985372179041734475358132149488946497979507832415622729347395392624061380442488478039390056371740571548978185965796792204549323416121749956617986369820454593349589030111040126391956279808636287642290534777851176866381889599231688749752829954276603250188311238926322902729171998109163533940741207870644608943079628037150772038637746490225457467239211201149655531235568157873317251839027488609660293475624484982760630236878727895491549833700976919726789039659162310789201069640551828796763685479652192550990570790541716027089332115166371206097227649873294778922513145166319135853936326138337024657273233939410507427934041905441584144640770259839920204134176144629006401664512793808046520065289862051117088702425292641418924521968467140409482877873413894800873522703690344077475115675722583696708095330839537928028385464522994124600139177882505126318011193229075751135782954899003001305053949934353966820657356981709987013580930976345323720846301544926536329115022201101156430158877387044858878442701333273438149080298296035782307121924847795964557117734022825604968298727245379901496171080824247856794518891670317147446327852854875184945129745168330302720743545606998879355367464691478744590210178961092811464179433619018703841288832442835566244951818602077476690472021925432517338971518631354499562236484498820520724577523973745150458901920657342637358850265955791857050510879807696626259398786935267556554632298865076549662840172806235036116366235874661077255686470333882173440623967869454286247230974674443600950706023226105970510840496972001378737688683695812168737447317729979168615560581600769753065480412175070049392686345599163499299265187471523455184440504963415694822088522962101748101024853013826863390754691080207094228051221449528562959848936579012098864479238249670634431514654914207560399604373779277349598363763916563212719912832715040146351507553633672335282207065823875224001169038658530082524968752223704120058768569090773326752620356780773733569214171057003748157851933233645042744808120828355867658502573181530778744823334352139593645809906248465440522577400090449611402932355822936255129566655722436301660382758171005779861093420289099677028670545284482165082939346789032621729234838253391707022918959119271513467837528296203673021817468102585760810425249643887291118795450463053970658345003705930323628947884738941115227865669917231090746324798142024410849740493114125788759568826461261652502818788246700551602528798009267095502872005924621551662826404135058110282600977146243605070875322145025513899689102682057748381188874875877275594245899258939054981456841423058857255750367244704450816637285865618650503391605757773396898605372411674126843879408065230067646303872655836411708972129759528911150296445654557535480059065995700843231293829981180581838195109588281216219140404679451135328357433948739280598168363909244581054555690847500299405325273966637296183819585391554343572940008557722396450436541517725632864217015908914221978615176982039819510328984905964332033209199810787272330575261865293577325380774953092841941481448646409877127727761987187080532914581897572290446158071529741737674097297863089351993756744088290755339759474578362183695404039805878303533001312424032681240537577598258920788887061863578796304900791143733638185467534849489615322186463204701904386349723066039616795361020074697039453961804945508637468312059762437211807569512938762757947263070176822202348033183066973298266257789860252970816299456036409239064191557143991169198293347340677183697353519284931055234852963825097722465421707271421526223796609640468783723667045206525009759281422712326771830583854387040294745964687063743648244351759122497926443726215691155890192713044587507241671994249093575079184251113176750122854809283964638254572660259948368983726957043830074523024957297865682475122746797950565224854646098868474537364503891242574238355383145073961675998199920870097335440690443922739929294646133900424136080827253127219640640108932097339025892588701336051356388056636738296922978422708200808280769527611202596432152813010742389623685869810827995060941178237537483417024456713347799191017173871342824151139207590149840856823213165028211985495312529484167527005409856442281732530583544369712317682950165885578575767769226210647561345401053896744681204179956682348115868008630281166275680514887538095388608416831267596670711720312159559745365686048144928292351696693720056309930787876835820864016091448769632941727037573617205226904526801554330137447478125001890025060289954720056251530493911535513693927640285104946983205831363367649838593197389673543950693742744533751877274121434511965833850830183995991113142770295923995207962263544022770356061017751993883332529934556297912037490061408729533666656536198936709167630922966361579551744516538696140000248239710445226044119163893226720745950191399849865304636374828109317150534003458463454760120423709353193870398054429327458990205969770371512350843016306284924663041471326006848935352535441088784737541314892219796689295362216915001680351668703112936782279977504826504573894277269613060229768687211437755979841587030030333394271761206024973677974671127427062599642650951539059939436546848728415124446220198005603239747438744868333182490671166387825920985623463965857144410956090852214486877806204644982677104120468449673659491165941752357271027596175205021140860846826149014553215725592019268872984993400149280521805181446119148680553825152964640088443259066156568426016584962081981521918497252526735810846269947470875788554638793483634761000156946270143987473292609323815052976138553392244277018486334418244664761590602530299551679142125133918201728963158330628641018530274107041926906987820892119075922710905588212792287870116492242570991341372745022252519302734889350624322336329763764917643044533655295058742606239412544241176397686662416143075667950327746028795835793136448169209535432309117628205704558073079275486306884362273689685920543989380031088241249267163752927703783932024053376056958689771405910285425206306373325610110381851558875834912988083664850385298718900016689203699288137328672347083396226917689465373964216185902088123753995740215963866674683440330833112204293722051090484459806961901155978416028366854135217875299903352858099093867623356134137121678902659729672912668363672318660914609132456189030235601637913789602165394921286537078379537975054797525814147691007970353928417652754587337681504116553036282010440806191300293974410765669502716726221359911463377231090218503704966252467388795385277887500206971340565114647097676676944388383108892928108639166627932921105781297946451165029918713627927437642601518052242206771838907086985358584505805573411872021990964587053110178664315523493679086742975702893210372499850508937432399854161618363944841997746650927691634956590886678872222547902090566715486879143205711681356479210118877530973001436009283612660815005691679213535054247920674719492706390105374415636040391285668602026513666926120468348893642240573159155582032527508117706711764912797250663826783679817765502500766627825718745849037065573423110665808451273677132050974391624919562945684445955848137981894383355349830677724139395389828070229400978052164212660157190811603208570834947293766612678695544129215431842844817928887203658268489652437670452061314744013671180546080762017970228296891796506900508805299496624893540178057341478044652097429442034335967459052574209579159389745415419460830542821162942627570715700238264502407296864046297625510273688512188345462521740793538483073793795709043308647864566525084786537860960184229189159563183216922530551491472025136861457937487312654857999674722878119804241667475672994882393912653979164412486551640537460120294739046931018191737658848878948463209849922971418206478891536837161794643993495773209956987069193810188160596753315845503599724773315449204240786720588938538433255896870882919461304052846774878968074647807514390365310029775372252545477076464966221507904369492098926628961894489196248536463941894815480494490132399035800055802066795203732484914365618827705052626224860502316591123963875269994458349885077351107136767665190700510774062044983351385714211539694382185087745122041117753809415784736431231227837606417091866560529710194378620939932696083914001007178909043612485584044368521011310038188707618271115483195415035182353433145607696093882050135056389534460193502047075295006371125700984183660367694372150601036578596253017879353137335154392415207784751066244274249894759850831444704201585038773268636043950088703717136857918838305142443364524314280503178638502676960816812883607172580758381311401860011597098694552446324287209683746975713594791811472021032879092391991947028835311825997733549678730472882431912546120325469066033450113617105529675238817433960443577223742476661327065608339040558570791633409380379607079006593757504367596332926394478326480042707175596112771100717590493142911397286054693574035283560112366757200307695202425282379366054515503729856632109528673832120597817967367038640981646143958687330081837329700202035127670118607999504706502729218687835706397845108862393002440493949557641976483604019892855182603967801184033528648566575555065686419709237592241674240829885927210509337354934025355045084277422326667275846088343612936494705541139164538864209252048008381786145727743713872807017066718546369222535243071469546753008500396354615565936489756956735036025487276623750501091315844608964757179501035496796111933548251233935840409250757170678609291027147720826929557359296355473490776297972594130584360585455124675760951117118914703123039061084143960062701204520684502462362370393183874467936890973413004080220180670754561482109925846649660132922639827591641815806460916401624739146420773577450154976476384159403491473702502297629692167711680351155635475168078568781045448238322959841476943721109516090371934036567487887403798463792432435365916945895533906907285742048130358128455950966786049402125506017403331690120588050084413092113946135904205755712121025784925296038677537726477880171614759289655692822649249662345262270547566612290325394028773862030257931961622835108752414800881674163964676192583893086192204805350933561657705751557654382665814719164115400584330883531875455014530189876749712491037176583644409802301935555809921203041351881319847275408845630721699473735921481995715981509255245661794716097985023330748307166240644778603090397423043453803317023488449005179712331792969722306621042284245774293286921926437546188632863670749341910103462351541661250416127243846485305773412240261411269483880492823702584759536100325894122932010423171572770730976956689279478589167728095190664651507934181562145494208509934491448946605764589997349399679718050506485937149512862969210028219326885937765558211434973634183678055318147548588578787211756643185706383032235606034638569346238866777507538655450835121283159759875925616229487398707667182759414917974494679151078226171014155315495697965579100426535262941406963787155556812250136346446195572105067024615540629834409926973919357907877753705347418761267544969907129460708313549681265170589475039279896234540134300133512392989734598736688069002642387110108815465172043657496400038618954090670281057501299192561155934905358412258060669866354777399218142094530605000257808037392617518800241231882395407698807060828794767819287890046444857901624733015311002401922617383576351344906088334663616734203761175390431567740107984253274151602532296805272866217289939851926350518051698588284682093156645891487102767070106281650065444842951985868343563376221301175852528464864404825939651604901072256517914295322001338290713721834615443242792237875259277449106774394012375390363706497960130818610879337847152718900749475901802493977525953773643104802587193190091237612193032009868792091550031743209887488326982584630428694894676982563309651109822107081301813664146351242446118145926399570574312128430430729682268955423031856547979824418431572351013210801489994273365592146219611161630172725447529566865043386822881044979278871390558095715402436111662038446509339010813628783993630084086699032481349633877326047460875399924957352830992364007666784463555262209894690109058886794398448224726651193729456892363295103332777259361733493197243666752329583075147032821862413178078221868086124693598288620252950024494449173510103902227610161212116147448954693080964490410337681740425228629789735263334050669668027278097751031862379820180681236115021079700907671519567393957274257817153596842278174137486867618556532930371943901449458425891303727009076818532942798779296784134996184508345994743399105784729834378752045707441543851083648932868487498333519937315445522060805994129731698437542726665761965254322761926036667647803600014659382092951968303252444278925029939672094104071807612628329901545116759721305553914417467257568111184302404919547057802147137789093805220798454012292268406444364514163740271337650154190199273685326715197155000989186771282379688352684925213945005873267011919114883654547302668167160157224563657311417370795629374007795587062247292054399400628323546787908696132112777535200166386469620745716526371279588985448091333450365416501349262795071693059881997224270560933069285760108057555286203283622373470120182973994477017196100351129827887272942226065958227546550249225113955937360422963669041912338974447073579026159938173733977881886176156266395032522542005761886764293891866499833072206545927752489198884106727665240186495661732671797304090107327879248730968728398019958902111352378965560289479500420029847100027747126715155545537226248632225510641775303466988977813926147010389441997414784882636876011049220538291419145366273809756884766692565174728096179125430812211666019179588354689805016347459484951992249767428439943162783304844690861976059769308815025407289075718351643395996829268599732680460138716619006288806225222689122416273379863548040697384964927867214764799231531665634391737733802879305204960386921304338068051356269799663164394992902895515843283766457727690341589713658235686828124945885425816938154580903931387409777868815468511836606302725008371704082532694875370084227315585672750978751540148320526137350411208915009207270714786674554920750602567132332572834654937546669575482165861876598735431678906469436952855524422157792607992862095640106697129834460250198151160730363931656807914200649716983700988794040642305218893617645454253527129796896273299941048130113385991869301790402914821320543491944406177601312573074881126689658041947507453059957713391780914452006456838352929300500018413174888988948347279722830965267775645684058869504796110523962388693667058972769133721169835668875563103937617913621201559989975648912379273474499019559505580126430752238545446848590391179588625540485174651467875745586742304478100205989060064325403259646812263581118482758617315274099048216373968189992232602686890609205143643180286018122671656143141203764721231854316276864983735033466251888156734091839719935912057569663854265285265787204303140766069394011646201682159449933184407778948855245605914446957696947585632966705906211395792505598935399987550099828317173612805921585994490224628861003805810343448018229894278134257853923252674414037019336487173425138565895075207350647296213003663916159340178552335733406333961535635174938300196770802447107482374120800225384210025450735155931106810939333926068955258018494457015186736831022715485245091091698892928431250792345366614030240221344094303737206350983429223277239836999891107825956836485549340052740746933576665556187881147053274316080129148605696369822061499840130728737164269931068103173526082217864161346948978262387184418427643597507699624615895420726331570006202239279175544767918111193885853163099057291898397573752183321978872688029216038598223687848921226071085274968479817875791313938358937027932120124725672942026273644370908169349413114841580788629966163132415677259699440547129127689212194736434453125833942806594892186333974628305979981921856497829471463999413542460853191392381066098900032034157909464567957051337108492695909358572745124199190536960175965168567667021710921603278770498808857730072716408654057149718630078326800375278742259666775256118457416544894762504593225950701355846052557645740450732797219315639736498029494728810958637001401841665368488139034419426196767472247871130672306716345636632705759476207572971117094874925756056081672686152175261131221764097898029421751984154335877364396889156401182830994147344943078520686798087189265694945252850741744621991247771226487626075949885555461769496408253142736233420313792908568303158965347650237282167740829043925667007399830825666316058307836526489235360632172549079991332279746274500978791444645538665008446751112954540904810819806433812600177324995886705194048360110537147618025348628382980480620125002549331396293895832272362455317111939819232407126233183107964082963388692903011995329957278220189251778899140593403798094222284601090267139257198347780130028323126442814676169138956770527843625159526109085975201113378169961177378833876389846838172274494100640174119027514189669741121503879178429555556034197819147586008354019353649476805420722366153227883900203384575533570883364634576598541901033710851576627112170974388208623230320433732311900660256475951029015799133986590566971122571977788565173815792741664984948719136549993529314009312076555294151024107515018183724286887760848050949229061386947514904982486128341013913443654144059644626787790007232097599829259437760404283354264743661084723632075217304908696235658147848459544268855263188536295698333166817593798687154454573281040596060540347349838195086309538797210934190033223776122540083193664616029255312889578781549392255462311180431806202789204835851259372529404098534426401122277095252677132042614788563496204928510398572895934151029545618379514795006794042174808431327249002913383853634972517319159847165608761640020467460559684685241472888223338886342170252781196807204206494857033224404527402742958892116434337424041795564629980178767566787453322049221564018184702393718125416276311996363439241518822763200807751035475145385065955180887160277944531212156945246032123739490488394022090746675231798154591506563508016442165880998746176569626632684630612678480346248237539081179513544284635759601341880511232379107266745795811810975347756015241809485127089586745657421365047327033105075172013305127316974769258574056642134983768627036533063451655444420957088548685839434820426517388677853802050281857578759875388435664384863990799827483041678166932093326810923564627161960717129293998144642982407641612710026227751690330311960311263130232691574693507840247173784912869005053332379361150701852905676095414046207171645351035120719525364677738514684607396245784146152886325379243186227247830660905398865179027186526546549871969057037061214653884275890037908803971941791120229955291146470059857468451854268883197825271895737012197979018796452247935655484960654055221410749637645634451116547140187080212099768837028953474452219486978919178391229773811042511911191687595434637318641130853229643729417768798078476925323752655719920559605943161516696551777093719527925414724884883575440840458881207418517882849262503166733074670620891468021940463569705922808096433354784925178510450419239546628733962817639719543632474119520102403281380433405785759273423013919744147695110415761247284860275384182262115958330357144806912189985974867592061968700686929382285492817571779281540727579143851068225146928020604152733257554630917339983471217510689433750620755234553281004945784759256619496825521612879027581663871547024787179140980927327948669186924064959565428868309887296890197812388648423605442290759275668744661470105562413109017557879954120957519336033291397219917582353755985917036734174765826328201234294967526837969318097103057014678889909188629266539699904879638923738761317170267861062594347998773961178801507335687212427542358835659483959821963554075731518669332879375995952707935717503738586776168663557673218503728461296015213560760812442245571614488471917688458107802335858507942661790652625681984625072614234344325405142988057438844512312083905722379887915524876862726843486463382926929438667703807378833624442681202498020207745752410461086504751783363793221964960972347021851397793327611366247121382822358617405410460421482493749300092477960719884714710162077882136167027286294879478566304001585757310468130925870463565108487723509740997907461551644617278617124093732262084769417651244678337478244752969369243627666239110796671773544879614498087521450857765213453730240250757802286512511104291847425576312356569862003200867968123512826086718269875510107435375078421185941540493149430048434084294037370159529546172545091770815742713520324647968080851608174069664287768664901889276085921157137411765680780439998590274418583207154354829453741916017412986762456976924570965385901235949194571400287901734259089886568463222069281573849122069203124224228027333832700847186055542188013609453520060287636359956928922615131890741597952566079430260623082600348020359197507461894774990085321011880466613353725273892132557253552091192946967965299670483986475408039570237429414394692502308309942935110763530600062584274884170907328494077983442349882063472863677578467456064180336290880242704221538576318147382131858305162119684094870159497372529481244047243477945983196289309150126854633505048275535793701793406993154531095347195678860838145780184753083126075261200598692384620723927509860241294877258979598112274425653509200573820011494358081073497897667079352480117311840423831499805605251397075507694737412684347812552309419692467163875532506119272863571237583554045996575868945995795438013621809942636933694310995849840137219326855740110466315976414218712072100592893845887227552746194075566359762585339371093743462685350894484472937913965352314428387737711590560419334599529418536342461587085531818828143782452960794169797505467869557803142361603802761228198153194617803871496309957847543436745564348140199231772342177225276258503536389722273062132511533354520221865136191489500806484163226077040447539173472598677023237876037706354074458155623169070534728753622504789642394649719152401050510814365539492529799707768004183560652198688427715902665778007877275525807262397859295091985226210846648508909726171922933987375528554197350464466926632924087238876719014678922039669633007359114864829626890707811038675986868160202953589619992552404461831628468045429683291888231816860387015324163986064059306596983492633334905446167415330906623213941384368897560064985777499759207834448283249192106804555553697667408651397926849188387803078904007834129849264499460973207742184352231989228439453013322876474333732289935287844616039585806293655132232478354842500898210515792573871046521496449531944817273828547251511582568763632396374940492337089622577145452514133926840695722633452308771170362515633391590832643312331775150627791567300488056954449786435329666314768710588425666652385686659123788318875263878724748737390351805637374435428632874414601720320454581283073182971614838103611303091083359726514650511432150047162426378011721171997574832280437676854800754376933933512115194268344905043593582507008534054888254175680807397519522215391768614451964736648144380800679206835634631812286808270622012336255912265607770748722628815112223862893654433030507310054259646974344612972668282682242603467513922328690526029743119946734997657264444587982415847502569924448612644668313982288790699158009900890586046907645586144910392028108526242110642023094469649713008296736074810140866937965860945254137284011271555243305962343531182174872079449528351348141388667411726317456955377483457789364846172780479806023525500910429119084105385909059521671233544275142019842916155841279324397299423891216275237878974202940670587106200985069462569715192286992978218239744946132738177110601057879096193637512201928494618358109233578231856244257323164439031777542729871029174219069086016882497650098232917407089912623686293714119270920087935820742951413374912447015921242470259162192964691453390891149140879506369471615288756970768129245248568455351900496083869153424648987743349298798484445293107402756568302398002413389967715564014321295915987204944243392018510909376604548709310050846752122623123313730403901222217345781378244773105928671744265987370749140997883217739446568329232700870242138469413477153982167458171880175837030654071094451715998519688917268163369985023857630778910990882600901453386722571481754909030954623989243048935599883644104155052685262933487313367071065354878242422929901319399040384993203529166394846884026037538388346530161486240230277682701317909371726780858860462887925274568641981150089132783146713566745955105051748374877402377639461918882244728324861172487948467382002033423814292521660692316550707974719249363404004208360274548994029108413587349067381251751680391941435735937755339376328588482638067730544826916280757087685216086746884240213899208794721733052713288517543881433802486653441063123276403971472253781355246314635362244189683239091624510737322684750968658380488849776059598629750100654094884943911192399740866707231388510569055832161473198385784076715303866689558846802826462817597042870389157944347212385621307471102366714931029526387163425314532465003477025891543687413484294039036955803575799508149898356808566856458910608057017318587203546128349112082317515824047926477925691927750441504794166904087314666479943179671237063499874971547550526000192415219577939418376790355126401603264767663127349136744238847605179389622151434543298540847351047857231682620420425211386596305169276800837205507847416554421896461089919069283322375551665817944579569815631696160299251418269159449633307886447576029905925398963650719339771489887470421836373639196982563667882187030728815241339090809199811888225887393940329725320866961222135246336670893137770187969712006873424997491880715785826000442064842853290736328910443769918967352495720566599019187528525224425629608425701888274569726033478398574804376679715280436030485000723183037565208986507904072304787886247103076945017485080234299157491283860515527254427014410724734710181287528762778541868481011644765497228426969402494642152913474932589975907966864797932779360982321509056232056324848001379284342112060821814301777929082819880356158786505486804241724790346157283810085066934759260005254842255223343551979168662184872623429354701838392225805261479891650560941728528094306960972877008987320378320632301238677285950356118023056414785066298523465426238793362321691768903680115424553016206725019314672307268437227222483297125014419597137648851465177753978147065251282812333093146914291308396341846697982451181476263534367147853597725735405020802762581399127592489540341672275141173883290052739674177360963896493750908032939625915364401396676781582932194397875251236103840731192378341866501833125654378834399875876593841449514903290615193090890690296913786276311956504066033215456126842991571897950609180899701672060970133273328806571532291284109160058457010820300404672079716551402324473554263424788544827440715797862622598189412344314212802052074685791811007628558571518943570670842149963765950245901579928619025483984752345472445898137513799951643108006573903145310918563140150857940507358244446065900672987171291108832059034750511696110554386707304121738472504314734883252170095648523390376890028213182615707460525200733322691379371204287809625146864775032646419154665378444969569056335807510588575311341389489700704430469169398003665010789632660546795492291018319603426151758464036378822781200952420428007689402724217193389217391883521353938060391048055306867763397309517702122458284295557217242604115081459960027022144970026512444380946159441161325767219100218994203286477729672529402190822848515899714439235719146236119909517710767282214234986191581072391615510971306306911777795712894733039305182990288533070733233398671400183367663440471897290271621950086043405938182408986410136374579515881839834253401120693002092231961998745084789726403357082223387517130795123431188063521186524493971450422306187503808223649316115873084773855455849521932149268660711201765657147820056475592287150617562760710617611230066002629308606512441095362696467543059199084785090410436393607314197715723609165217714038389555064890405720720843034603980080134476663661641704255417059697183968638098410656245864114763888435981020742836510625516934525842797591946883486845926484947964072498995613863178241720523308178107707138406746087416757926719370555544062076774543705209217057693534592962612919724062216831725236159084070001456133332123642041884896756567439762090482742731840865767458346465833786365679905547212784529253083600112388405589879129572383478512458120836200198417837933911371414573252617838426197621962021886549953636587274620118487725535593503196244374050587735432349127631630985019176553011655285381599965390267468102184900310172304418274719199463526523890204310256141244200205849241419941032505836399845240597650562944916404251958391806900780910599854457162836858679438120510180748095625687217327878864680056726133902265502227682724867662793099380433257260733947154140569788591622408253453099452829539357119660520261984591372163677731634514679974555778881394365051481982091356078823306662019164387284426554149194220685544000234499761805874741444337448707462197997649463363868033701969497231662040333241933233101529217518148467249374221935377453983783520456419905512649006480234577411530622815018519303536350497166529999104637571840644161852853985156713398198338321612974064810175343284875715521601811177079313136880007479715099523510555123481268737883526898623753970895323715890711691722320870149762026526290201519617703669280632604925221392958037868358476687662177410137215371718148540552638428821682188604491309070101460098361728732275904288049568433006290343916211901181856525500465090345037901055008228287129682146061819717970969454434808254681413281294976831291554539200913654769546081824424140955895150487242918575161145522506810219318189110559447902182485667799068804273267787802383724877761798814978806512783007975328823059238533971871173948230106917474624382111474681732670576487194861409352150832634907930549967954415383487108278839327956448207893802425042673775244793731900655556713916375590883370746789670521549188846838920226179190060382378265775712308220863699425544670118173406032798279024290720289161093692428598574884308216873526838880193950314837932740781998611987999879756814003945985135362851215376235967888851762755559012327771087785964014161351039003160270204734508246224532422251301801572485299595964555894780106040078099384585234591740289475729402559566203696975402261864307275837889535205976595300772228326088863184682840547006566485926256395448062136717464233989180019152341281763037646441252321764718400299262275862584284215250415052877547342307062220441317625050889814353381935451632096788810613226473282505076537258122248114367503022808231013227857521309056411501167905292812670298290702376174097711448166187926206184343369392941261998522624477323256560506038939084807844969250718793627848305591075940234328208418212876983535915628120960076789791075676572325776994191001432466451136577457177830319410142290062742168004421228784285330451389785929936787618602302610458232337447895383882441242535810489816521572318862311207295141713275653401110188187339677120655555700359271990676027369970540558736632347335597196531620338621277977412495997621948223024984239511816516554238648702357509535641949645178918624094864117615131286459272809349080142432558872537333929102987605216135719335972180292167081607052650344074279414030249335425928981582403285054811144054430535846258071454488902202818879769804408728549802379190104927266255016527699208609330352020931770079692444091604351919042959337681994769781729385412400590463092571828420307623702752281574107320510221320829351296433511522470415094752722186204102048796795215609670869419040366585699657252908973620728873099946099694316946192951415511053790410279209359980641719473829559473030639146491400578342567490233808036955144265631198010179392940854297407929517102532070787300771019436474995152852063922553056464375812192761830296075016290518012085463476679932962046043843308626445938054767477323385922537672072406792486895949550874967554427888278278266045877024672933091509170704098909571374170543138757002420863614903095019136692169322869494297145316768206444548399982427190850291174696314784069119981736139952991755361249803485749019847618669837881501961700763187571345732929934574404759681243678271203841688095278055356287723772118238002998868914905270621728420582210757081464806405470850847084839640792422544369176931275225284245540335021087613444807990141806608272665150185735451058762743855826715812143114655853159956186628957295617241147288884225175927777746295095043619849462237866598417170487616048146213028406432982408576068599178005846783234361352542426468859493075132721606235803600408934518827624584226499551307245613755460485408112449886960030153791479169194245134611461374630769671850579172838889395584640433210942536259555434467825949531166152106831661886607570004958678682340374923340451944766842380951775902887420112428772918644331059651830415378228658388234355678678824430942064099703217150846310588917054758161478631792038838929601201483101287853865667520927883613771208599888242645934918731966631938310616253317402603244397683489157305906662632726309278887921377433163775622745597955808728700141789203137802711078965265748784325565059856841558531756321411258657001440708542601089995103502973198358789461107380070352568241047769587215824038338023027495351870534802620629829755648408881288750693645675451210220848639090463880576321518440699376641710316898575746937143432374548733915993793250385356877468807387833413751289168071316626425938003327000691803038106765861729749298857958966077587424617932520110928565279090536435287327935748960301716550515707036310049211493352546533389977036773510987614868332441486995722088909576686997830664118533886939354609538499087893912396536808542788183447522003184192806964401597038194037849183926636439418823577072170630267089760826373221787869116450158456937954676338106228554580939029849976929282283372116925969827469093367603638053003521518859928422899550770311886924948396850562843011597205173726018809073526404587214365561841628484173734158144078599811773974954678911987683159379957312817144749686619124482992620186300006588786778259798461442001186724854802029019681173513704496313089664898805881438168938467204890288640292981033937020107114336742814474141733123998163240369642438499305105489511365218389064753142187968010878063543969343581399506170367972267191053858137963217982750888596273549705469283201236018877335923164196680654678169011939458873749240339943308175796808018839551448931533893799462556988577045762623392245039095318597849890569313942375890029616816150419814475774911848256451381770156376135178111059548043233134207171321700268558952071590493920454303183530198862867502225516221551346489648465624950593587304256614259021570216741193520363326941159892009702924162675915271178812815638374756836409670753628073959788360636281746857252467620071198427181589324796011629393351658195813079796012248685451196916562782536470376616970575385105945425272697133005678414931149704516734801763282511479337195212596177114235959812410329572220580045274019841420546615116363564426908372917646222293589679819867204366680596715844685453465946729584087293197703026770941055426588839958900391752746093954214806913776379202465276212736032771854731927622271309767444057909579506131168842857579617046447843214575829771832929273101405604179855042051499146202622842182615185107410180729398922608119422498876374678461813916513634044747346112809113104251630568544277688178370037085564573548384999459186977024765839349003084677334204173462768114037866862335445668034819935319979561001223657737517139245438237778725973106200610834610826400467839024176899690264105638412075975935543143071672049878974893980795559293075375259319054516040952110163339637819662710355576511358243188916039033352596939368871742546568914537251471905769041056684925990557220141424213205944782308791663875032494322899048753840476736202429261041003340426114829057274915845618743957496088787095818458025366299773313920172789004984096395936387392729345871841822020375712251194386695779232523834885209079461088346911665061055548473100869532626914946619946061599567376983896216153146890513402092744085302288576252414429211807669887722842402775433431534164186484824077976086420391419589619529121687805398651445532840862189435676898309249200829762861009333265108977439800631809713803639721450916358840555433136859465354104592755437875581320791761073343746445851448540150138871752765425035631215649723672061952671694549486632076985180274479671701303752535775787185826026349139161142809130693743908837835886723137803854181476108200416252197619134307507110296866199549344943952968225334416751583962866912695124071550928403149149811601861952837801259467471838639106211426392896889809438006352472556143045383327856821939040341022585637810002594725548252913142258924584405143815153161929248984467272550815911055463440128087382361314818417998562646667731047323195248797711114656887939200601935869996659920738440224419023677220249034206293100336832452605554833563287041243671320154009232293096577998394859640302473737188442620133132223903599324418304475110958273380595105111316299699431928261168640336077832521874491750386382173337444532647493011713437390324329434350188094660165984013972314603220891087774466900499257310590236739132448487254024001311191703875500651324575065380747481532044050571565470705581507566415106327578418816881790897070215618756659263241203461555281384885962915714554878568604242959488621019044828147026555276849818869083256164766236534199404804185579900028838217303431973055806372851197349581226792478850362559660860241487730187332118854284313414513301241675656549733869323666668110432912952843797117665745799360481541871330996167135191667095986682642375214513530057041827819185774483477802759886295460428855595294523922297500897426719216224672626239003890379606227227542050038884747180010441369427557878131896870942305338088329462386851772453598425809415014662416846440478887018551387338480679747899888432494865483563152561317785163541991769265458121690061106976224612226763132844545149440179678281864457578635076547727967948052449570014382020105797822163682026358958082278663676885547043667048691148249784704319410735071755806113713201817523401894033940477287337785712707542835442236421776119732001461040557004526917658543959707346585481918666949073070644431255885809983399293521875727730733493413762574678454712898602180935853206747431112626791739772418660606521549285072767848646129821189048955860491796319563785319160907787869397400680595151118963750103665215397327899083746553165464177746118740694896057400188391090828152370795861407189009249156613496532150983852123819169221360465219114204049947474917802306987466621672935710504172420065732189564044500154923500933441322456061999893910016257931079192608651935489464584939316728213975202473169027346994120167259460862741171039855683444684647550880971781056754066051571635835242721119061830191683974221062054025542198614110767914535890041462595225581243455363655220332071557855888956715741671139804153618215592979239375927553171519496865625977700466010357061900536353569892508009219170362984230923656101962514899289002558890363777984318033427194330340824146609828863676379170221948910704083686749000588290078428503348232867581392933787960822529619346890851138320044586941168429997807525239651008188907543967470115292468122306790167903098490994507866039671135532468022348079011270929219875853264644424490536508424424190475955935708350019125684232277346094623259527229793436234567009775113382009361572398706724238788754807793573368530661672102182764946097788270735416160156419578755240271756079929569786436763268730393317819671711187619128548420671697393163094827479835243316348349529678794333377411361674082898352465636654254258171586968817935446951565005559198643861902784840750385479383895343191955561973238007328223320282772116554226979377353889691982387622798139502648842571784930927560169408316818633855215894603243748814377710068937690548119307007915388541314923945382311609763099320107271197659913155516983960790077077515414013496990841468899374757420937599509869581375023042080419504795457582314544311073277800927717615038108966242287997469044983436285678744144336114199677974005692333268098586921595063665057594944861294801534635459539182011533932339892973371154324130998889972712531664337370973926162486736066684062456764781171457701829363828902206021586767831727076150229191836024959584862978555060975448367545599316201055205567433697040053013293955733736408987177138743552012605397731448627746949237932512184170109458527858438351843334525335501502083810056189929222166768096639746188771368029868421314875781789953880178450712958602839545373369866174390367202247239091503082374852657431694826056276561884814258656383099380227389068188829537071154763346883752614586591136672084094654424655091684536820638162322865620374369918146217463822974281480009466254784622324478683631638167279322976318877247643342749402470457048906866028203176541778658699848917816727420432783755326492042912548321151308726391104118598438731006891925682193057747792502736863089534428740259400390929830271082814926839996839930268594773771365306661957548322819017334396791955498739491124703887862859298139838762108354567600767854378912974418420245377468851149514534633948966947405794240025157679516801076863443554306335290144214866302373153908346314283715925666234944771659741965273566216344740932055627255095030841273223269286096998680033963072076084530977444652955504192438335809318089778687795463701335905225463248981145297010978002616453792532564082090305655764924736133608781854499584565221300513585389616208426676033027336973827447511235993558146243630497337558325272884571268696904270477089477175251635697121405779959622074597544972614445194605979085652369555431355367268087232521712551779850396780272866722436819817600660599874390259121430222404130779748036677715367450974801210297506793201719978314193691187647895633577328866572268257294017559658955282464694472942874079378880856615658008878063333084530171174734579482176198211672867366139652595329372425630011875936889259285803510283622517813192897458763971198004094737879401834089296653241038412631064210151132689120476590551022730320381611100514094970424966090989524763017881855047901266977343765356052639027730078605830795734451317464677143744004417548504605362170965678588818973045085496088439333603925385891470796582346996947915241237373078584739251423248224633313839194941712146577779412035011317984461853472473759835942550895921157455411603214415096406328431631160236185019662195741605945580911447353214049486505710555170905212696469480514397703127892157605125874099612508567318464965138594506167130899023483738083270123382887881608542067348555484030502602095665489092432135644243982291675225691647797109956135711194490693225109202809336433581800440271975695710911822268297659525707453829146206994818202971423022132754701818860484346521011573455447564849396212521885030930664499182611794435244861639607630660258994120867140321320609162776815548606644977615061930048654736699219258783012256055967126427924393570388605429385176693768771457015105188324719659837225685785736124528545469876609464769527047490740874040528828705174684651902573086232647944744731373246535703719533879564221699334170760568253176475835623570219582176001487136007923054370855112162611925489795327543417854135596598660356522967773388795784007951558814139660540840176842114650101889476603800263657738354253699501163566172035059397531228874806889895733259098496139413740626601046274228961938954156106543155648263164949420051824667425283753024474909595756185073766568698593668470271382234424677001763092915333443787645678386043134751376334160381361667490216438616840671361023376547013456547101423592291885716310053064449826626226005712547305825035190862919610930499570276889589577388331131323228765708455051161966123669609853375243945796808735359918030742511361280460882887679042106686837712332983842574677947067062077394407052348192257324817750791969951077242247057364041426506254659324993806109793086296234045541702841464465456948212035967328471298861721265388387126769596954413028629775648762324729390892580349017493293345347324653341086501272831268952729581852293540370314198479959817398225166911487351680845706540297548563855573114589852275387895156599539279206003956358068987947543579104035372325102456419669835310526671064618923575019942784967807470459584469804711522213404718531948875509091484940792793536520520377938282426707507626922266907068213581474638255552165266075199698714335662380435548785734357593941028003427700720955780979851331745401222811926266524431715483260652641747811753039433671729866293770518861175866519989851749963772838682584703949334616740893511878024795828785873812618270376940232874109360418311536032232795592228893164378861893730850941934525108491387958897563582486982595626881049306666671827741919608027908596005003913226272600742515689090348012933341133940724642783186641008305102784293930932375603086017457327193938211595875298789851719587831418457419941639930548016210059614115011225630630767312194096470644096741588770207778406935544276873344346465698175253292982362512182214449953552527232878444672277039579109656566504436504441891757697170970989842208286785456275522644886571122467932145928210406116717188753042573114717619921635096553533300919406877616742815261858500301160916032539099959374103034010429184235473867549372537995363333639427727300933538780712673176705438315946392004589176939552890853255796439781432410315647664173727811507197341072847386322792384971892422107288790329806828657680361195563078127747883868467110099231392990027707276405988469404739666797746437381639339264931217251102788738745208346875592440003718296526362911304031803757516299561406901809892531438430389892472595926325215577493080119769078498161155448052788662661606386496272157089449413107357833776994109796015617191228750819311346239125317696683895582007782464959415193317720782666707167026117023410947153736696328981678515776246925734576959723900578144720223442272852274143387601340829377165428690630625767131614417847664771670026109410296800348155823674817196591878604969812085720777370973124912401245733691968533430290294619636967715436210032410443191939177011591447050280307568728728898154672165183385963073784636825099979722520785544753423465769920238441214094744907396765120030255556718408743169624923222927917962684010799344182568723649785890880635199093741398383398712932666265796214983005971069948960564607084515160361603310211156941745658321630937092088732875448000026770009676554712872179092395952588947800588986367894758813786900819746094051192404834779215385357039576773464038732452735684331467836158739883559094928928622191680398769912652269918300933749644757641626669385047210904694915460816068611522006368219505321543791462369334074495028716381517207059736134945540405129544147985390765788728050365059481505411577192199399278082672891975806128492573675302115981855100259466991326435672734435298677007386694589540667694570898706456727267466213218257802711765518859034771910264089295622367453232255665456710962525689679069837713518908918239527047603749232456432339109433957144957659789489387571008955057958231295313287319278695967123515042302112998288482337284472925005852205887011317076617931974747121733738383203916418136276698489933296231062400677912323291749957102296231651439525822724974133530467963256085534695124116026244877828949571652591624115186547197935188752379593015293116548190729778702132818490687053780481878738610269571918215927998831725389378748747949312533259505889099624902987680906211516320202848115081477288316649111579139831844638609432249130735129017147235600826728768060112898043805481554198428957655561303762203394435866401277104543268286179674698163269352972739125315730242804098626647813269793412106571875824221338917819926624905349695242969331098812209088487385633227893926310515574079186122769764442156826522470504017425365531768740739398336939832814315462934759718515376545130882745494283955992848461741178130771571743851545471387164300090875918488885263815065521827192683078717919839148928455787723594383045958921915138323763962906903644344059276413878486195072597858716430983818416038201211669286719863450480894746523201292548136490129896771790438256283990566741426217852652513537215297578904481067970215676824786662746628641923249757769244294499556999573280470465984742857184267207623829869522003256302920028605860662035750665803472381347775744726894583366038780045172103741940811402515009299146526502103690513141632105039695992164989251626031330880217790359999783918953976787315567023181044365615222536288309687943663457705198470948406684309939766575535972793257599808087504620757498432775263396034155978726512449872441639342144729015124455103295122248621695384058819538529506481347896047701550544747729076168097661010870083333321978902367622777538407542377529886256361527852455398056990248542050846236895941745093490747776696621116947185656192277947808164369006799318264439046190837307857539644134600322769218508871166625982858153088037470578652069092420131340067014692977645319062571177239747589888135156513369233086931676034106836908405328601157135066089545653204362698671744492400139627414580411674543963584972141952257363026236388240873165275862901015592508565136572362085844789651257785151489986639390207881389177811108427030959852270573806179263657639426214658836010499460322898592982035201266342120066157078685891411849611243334259702249972736994109287262488087406859233364342699721392693065258330820889326549783764977936450755031375320512336208697579377804962633908553893006874090920283857160305687988102147803759355582943833653136092972519957249529234206208874923419769288778364662428455959120406207060276583556066136474491397525661988776093191477709854526238290293349126723112443193446393976715360814059999401055499852877451044162085403296274968439457148605856355581755177371919483228547408942285096768318360882608667954951334198581280445802739963779424367768723993360992309608558868662834636048112029617159517830205221442658024667915917888059100955848362179631725958757171785268145050668682118778177357455107778335911057165771236402684029899111574869016428788035891496264105330676102477485449015413594091993326723028013303569139529225989972921628665247157419969684413360414547103289590756299380989516007734225347007954899845753037909204245327358727937901930059852698178271710500717712761840906398606375250200015880408752532857730974755265285941314083119458047772916863513074597976932560478707816518064920009432951275624430050703028047094850880524726118348094899198194361927469377072150550656064862684230384468033996612613332544555941130115400292992296809913761950012577650838956594426191277733732805799546286743920048021648505629091567615748925700342867009452173864361782086393878165312698834861434736337530785401961189600062151492754003494615596955853252762163705167478881003153208948408562722088432638403560814506908570439286298821859535063614071129370592236699263614807840284981674875000870930853404696473084727060686402141006613854735575776245630236531787964139115477812388227790811909589164794659092098262357630888371746677445258524748175001055279453821957090474508139514858123952638710074079643576725171248103476990534263568677080396429901032966392009217566574829512214236406170286194067079344272931951291617917923619465653655378126265263668425449156666588209150519057047877514405686655405557518643675845325109569412657421044473148959908360056012585081965819301499949940232042090411392763821729280769028812674136548545760802527162197973291720130020725265469380808236062205564412825135438107027223164596759156008992701107278947157549145410968786400044361031777493709092286359890130618693877273019990055096355662663769925910441654021957376876101303499294169620602755013545711612256764667855675596510416413605241632726267693099030720832559115249433009453044636869303321992882098952153944419855695046673040804601031689853063762691572192747579968254040435597291725665890732167093632594618445060390781651147725538797617829449933930726191553320476605662007452488591298298863027466065938098160687015411749127803317912970385091948532630449441256728856224606084504957695858919326397658039389427260673465024231761605471073316021028809969522808827222105528471700733525308484805083100450687438804465755770984088682869520660844479741827237515266107543162530763232399496749700379057723539423370985028982326956623242977522234051948814386597536592192704988394718211671484100869518960659969776472115020571795639956615814485949253439415619341119248127183025865165177889969484759306219139575706152976632332676574723506638831052245959226638111050637426838583758535839449636953873707440381177054520596081795159821913095710603390783097704450590519533929745786992266299475771151616261135368499284012380324886509590495139636590340795407862144703287968388900638946701526727454554652365669778721593097107986220029359868421219061901924753230898743328983836715246524477486468966497722753882724600217030579317084451114816771392538053770411413366794066978357689393838751991738170562329151745826351388207799339385088861603934728405798491505064140536290039228221717055588061894163495047465912684414769163796097043595227594458246055319135756270422630386206067747459224089728096690272803379127679945275036840685029880677563552470184195136174319863337661136696932026201674329808934076668681172173659542917988367304331815747924758443331871119975992865098725510338440172234122588442080346215851316564404088118797930430321508439781191809101764823277170807119403838289607771824394389934813849169512122457190685580864073862764335319698572956471530515615101048625327181360083781109142963812879824898462689022130162249958899762277173725219984401513966984317787460300602742233641768250345344173575733189755600302800198053668952265266765501754971115362944718401221464102950038246681669817818343665915476172224000878084065276667912021868235502825901068270346844842095308600594926965590453724635520531231045723173272497213710242358776653822778088479742929054979112423281047629404991623944011805750798494536903984484236361427929249038470543148147584132805352955504585355591205886773788189914354493122079127785098128954192282342719099312666689502795435266843467893216470809594073984280486847822858954222774487840897466404828682799966434188954078376124770620654598722708148347291135951456559056448763455047488976048079547745017077530070526024844900647456252531345395996012248657447258756604962816523494865803268864984352096141716447068538216255875947939855666595582475501150534707214071217923057324366640364870201465188301819208785980054165325853941822777084946941999559218702189795714100737902910306906088102735041583108892205463773423205279458835745413926852015722425178918804059373786870904712076459329761630753382523312383958429541308920770129376488923684498314119862464052680177263418270721960120855895170868782138814554867517299989335658290298458299742697926804668660606699237907587298906711750359272444203095094681325175245389453450597485218638492085295411582498109892108619105682606920786091619807714005240175841438839682364252358098706020097931271166382246363921529484701981145380849828455968995892700076682133216865815720416938576093509330813436179476279397321726044217191691432566808372216865880606373718184372417198214183409488382057840399433907308804913495631408604055555587162623182878996122227085903760269230665623361330124682995266545473599597153494672029965944259136872606303253846858448718008986143042387670985125648366846764589528053705676549930067178043647535898278566180223874188583413066719463322458283395162101227559276131848545773698913916830655786962178064172728977250524240665129068204361884961154185981381485006226537421245205566279642622585612879980894660669651272760693879095671490137706995498022353948589332839604377931270374584782252733805359351954267343239247516725424308394735046169056797982752557447177226816784097679360028092426507550783370024583895618498284776670287854523376878859019060511293148792002886858225838044186356543795946595649876491484457322175040721584762002198910584910865896022736027092189916799863808810000496647377778935069646301429745774591319051501956981284970025318615522671971431982121672050815876916577187844390208964924624267884731644634696169383003103642276607031747570837121163551036265450168980362447894304818586350109094416240475841003877615471110957907281555751307543855401379655126890381112255909907668885951487064593960246330271307993405428696201959250837632964342530447925416512761079060036943324871106217819942867090142592431014344767853724607324221884539377633114660965090904853361189451012582840896604927548952100136093906251403097441657307320643876232181064540626677161889504303990945341521453266491046621591478983641280343251858304105566387461397291399163565923552061326545676306605670806447272590764904889914901826467130900982360145910370281282146631520003716820995988891777031129759750800292995011641867001540470442144027776563784795263019546175449416862781731605057224392402234375744629639139573912763740670527389945402012676353434014528480400899391508527528292681947146727912347642850188564913364800454946672076953121768748215963108622459644503566496390945227453671601985639320977805026647806893359918087993597051714978896247382175400542344122509220795936252495075149526904987299856480059527186211768997480215077833229435096056899367660002904943796746044938387764741532251834518536958371316200426803887002146043140247518403825761972731814676886812409120125111142489437705203089148366227690974835120763744962924787702720868769196938695286731967567722111057436176731366640409611664510265279484054649040995978216906478204852187675150313504036778743037051075116381841966569967252413969251375532633675403694491066124673162983358066968099399744080314789457258294503282845311061765344840702850674845098627843741347303670386304699684339117686381702663179966325410181272976853261750003994848427021739592675365952519904221563960743061531940538661574694150705849338478865540908756163073197963993486089740406183841421491456934086049151425080056841827567058835076154832820076409374871343301704163186667752574431641773839869162699115671862581993620038312563157444271517945205646505559380871719051524521174336046781415568499303360980664487132152936535140750359363724052698169396638001076902745941869105674790263719276609020869919297306385190627734016245252509462289882542954947910752905325884251376283040879142104104110768457475923096970345054422721022451486593950260539183631294669092321769901117540755433459186609450290768740650841397123936422707826666855387612864897696790325760749486641349698835105841865587897003483997987115067442984713097310001695354902096626478419392723422856856074309541521667570195345664370260324948021681590505556525152918180237046565700297211876710617653495131854012822709668847341417160963134734654653071920354302802350839034611329897603740976600951135850749445911805805465651826150154124870594030036617437106139452716423483990554344336921693829044853837206290156645274156643149163563033641193902382612052675837946436500006947654034981991154877134055623398903702625408608497155548447768805329328607966845796339306340958274518443850857256941275838434015365848091074252567826852010299914091667682402264713918013799121227782912651378050810654263031894187130220872856927596464898030326817979000822846152543861614363730103074804859885190472568814061590553745439027952929926245490752176414047247524429088308230799623657054413145340507829387777865077035416668004686059076602787487879522134768119952676080746524067034378172579747764245662437558688200255502799932740906825977752222312779054378963995810429935496967606967888008035433317226143580775246224961648448173543504580370503580592380996585287206755040073744621086360696840954341202433857104083937700456868826337839671376192861733283296548924632793823931490633585109739765105232988928648554942402952985569204589738685760019500771180652443314716487920070827058511007671549337904428201547639762496104017799578156061039698978709669701345296571632311932052078599121832999199014311120300416571423120274335424815744293770376615562360424030926377734890050261296820452465550234627119926645604051698241346538205518948532536503551829296019706196165114427707358948345772033421397370004193961977670008710286845436689695260223636384324641696234809434999304895459398199095832450710295622842810471719254027922542928344190432165257647486954133534079374025372408929832977783460298937905412121057862354571218504951331811495275861563950726243300052746375443817872452516703727173509327697938136336844389937314504153386947006136028543282374836375421224658495970714579353821877346567283297093399692386006265194574162714665792411521887653925592004677773255395508370529962265254925369857599309581767666739374118115104861266777429117688250902570613393331289205120355972113223494428391461696363668451635387494494979209643607865886399922840634502120468103570813540350167626856351524571781778342501107003381751786251704568306426373107498958302873230417047369086988241138158146140416912639986594341564594788700838752762978473145120561320518032848536768199119182600147183921955663924917656965804973398664972309949331887181842763990661343596785978862654849870141344065320795568000022992318017273689875763536143613073797354453683998486552596752964564083935878639737331430674948911050876144935830500596306366966046359293523918691484328729751397696021819824156188159627158770053371737400082918127249555308480593749655703031689886423187905837487470839413547387097041494249810431289928524304425111379538689335230260094953730619365603921627239102880376301507619143291209412703463137859827471823815615503736707440611254703194013998489002854703345808592304712810083620214866020045879681090141404807139977590823919777896323789810721897945950721156619529295250983904827859781856067500981471813615930619837005127602747071457362089341453411744162346533366645876207240524642853449571554070420893525744071753447994861444976918782813158921056556571937393965347480618551182601597919753026246385222367682073816430070512379274453788198546506164014439651399593104812381657538309521473503588184021818527653817263169348789344859799605036395951801950838761009526715241301495755166408092567761883568273603622128891608303638000210761161483547717381985880098202609644930920986685797461017307916521834593060323945108385558987146660695865210149738666048914198621997353631140854436948628099673879746503950979768183527801313667903112109415648726692233114803564938833279316443638803052725930244624253077772675166875124349458318305987848529978214172150873157311635619320661186483993337924979902765091735865057763939715846488696781636902416423760479856549364704155949876430397249226393665744420281549155031642698181108324013371291323046558802316900634696057106191581162261199564668329363978317057139713358358814951928358510531135948959520365943256006623841308235866087423023784377357711754914286884420060312168428963026642534960157171937713319411518947010376225913853681312002345628969613399335625781379667249282516798876862023341899940117248668161446590122039125741675852037597096731037765082118555126991078984444866154258815816858441876856637601163795728163211728581907811745841225228522568792151568138276540920633594183955960874067013277670084940035341947018899135709206121220319028900120087408470681841184982340764350124464413482407540197186689228244723353105455000440235162161995898444288896499763865784222384035142112845480930596249500677963599483951011870164510783389131412053379507647982820200892475630050584399991602441812735256122692955256686346616032948828323042555852078774721524500474352909384117719310541587398854068620050298487582356502532653900710639579373253385714853829161710875703590656970434500762608234912401907230123965017739533617045036665680719061988616702418651985497342654800401305889217896678746018091678953318032577978498832792687732419933942916318367373593456195979537924441383619071197144102849895008424120991718190508985487194959717288473324265013992930744459896692818194174485925243966196905538338810875387000937404934693665428048953628291890305672729198083688012739195312638961902446492774539616518012724550660601990598939924950991429490163822538374847282571413596520030826026913041112673159178543980069104604707143168951263165195392101779970164755213718775731090155549142732221573572403482339973229128413408246656378482518643287043614519003874276363915831254999804790603996906083427651464739476691516100709520377449538199316266765189232913979373686189063321037980132614305130115728078107672233379352204493371433363267464692026331607179443356179832622408558875230798260708595616104922052959456670034343610804019825634679508935460418778646580028780727123497391655094100893620419793846926718911866012222129922895516449352174143807081758056793222162121990185180469301496899718921310707699668012154470593859502077042867031142596892552151220573608006851675586426478738220416498599248580181752053780691037395469348205904219673764493198648135605516499709084191375514283204442752470210660742005733610395030836734365294916573216341147110255910245573953557444840865059213390048436169864388083489457255413833769072022235094670563754894200989973166032415986077734696343698884098649864679800538609687564785968820408007879495105145646224803701366372191038461884582481760082586419980894310332993282384800169857313877469466604502767116563549905602268473594964617292089655292792412711528580574892084676016448680162885133376780533873543940734554426366334473730116777406583850293737282520513200869216517172478835355675399075203243589993662435744819089311438443401081949225776460728942939708022047283308208116197983172037101319210693706834236160050803020844492644599671610842807309708813771316289802385372609999441327902821249222900352459296637182829009661289400908091264019830808492399440514458668186741901593768812453239148607210581635150800546544069896418197860187756015349339155972982957703386911196342666377854525176509132978306602907523765739212177160784271921858884370787802424760460905720699622356671525361013246310722421125457414266939026405627501557829633388516269145791509038492659610564159444993301528994110917290045463142191148213156049274911451228259567548977772122544641863421432645976130182393129144674155294889572813634961648300053318173519034661493267673226097044812927264507554683519910901855412984758533069716048534697291636880380748112943091850864656383312022735239474323113511355885749816273051041020225863416333163239222065795320694050457232507612089895828187682071412693481367745995806057579428724692770230350295425434213641258029401345946947250330015052842240802509911138517898611937653608527540150376312255611858748774570168952710433733773459285883879311883873253396739922465830427732337057846887455265143281674109285282741313914444738527909935341566475567757689309072733230916266029785037423179261698969491285271740107258980426650276766927103870717205613201071346264933759145411616424724336011655323574150219080421871696346360281106112906034424049289929049280975052104546480030827740778106835760389096249052044739677042885956090010348131947659365949777264244710722037131796659648186878785931442019471742969101195873638466154481375236756712987886521239946337215998657394801815241448909492788866852062542706530766658618427696483244181453061263362985448248714979257828319835019025367084020775190954657789283096925902075511734562430682672204976597434302583846545279951679542573559209897925743431536618451087432265063404771295249371148988882816536364174772248199016828576837362569265407258582990878632550868542631153168690489743351562740895422430800739386411341503542149573226353556829737258265393795234649987772520373666181572655679068908459056793180615011832400492712862033657224440349369094737372370711783772890231094862720185620287531056041540623926526744981613727311896101797406032426800624258054629730750027632159734651138121265449333030391381498034012004882131599014509479256787298706439472013062399400445813427362058676733732359987376762107156997577833587954001353777627340953671983658925332471020991000320664456611108085061654618814196724849335035571771472325249070132903388181175481602363922554350195721073913955064193506842429471095620623666159345299425060226053362206734806125798536643947336789224235402866851150745626388936596746492280608036910559338010987769469209941236195846977825321188209666672897610629192039733836633141747948940877922573752838187865042651373100137410512278292323232825476336509388713721797346667585807607226613495939566130603146273272215003015519651458563820032760434520420457484601931176468803123419263067382886360875451326597699646269329966791660651057463440188113020288701659854353222371554077564741474485399657922927488338795589597445771789151075613556197859050815952595461949381353004143452371902303893348003431017362813253299060267411105523851667580453997236212904391677489798173171466517462697687418070408351627333117381343417357433702882584874819872488655725844823496659798057870085111548444781672067131125079616328645855548848901966670866908760335037863419534227356543649310120854023556863842404839135636003338671661541036016530101368755029677097641890129498151743924822887137392656235371972120990948040751876880305983817227678475648533348637854591213465041422164804522967026292342286534508500963364558318295773274645041090531866497729898851614903847807552970690166694366427153958223479081841515613745580018817527063834717456181963255972985133682901426595096388573762424727669227319372507444387330317816437909201999778005741890244742072102812838453216411915168596654776540627718168409351124891724817234893793424645628309368163759979461906807718407817568627286931063638398483674207173929882824775189088690498102394545141477999965916698672493589925045123090886906552213211142705344278378380856891236081130627273922539290071117017087126020304896693338307494780380744076577121407486290890115930324453141189748667249487688870575309324910195109432996871844561039279036098795558492874230120292673457999288565265840688253048491690646361527898214405142801731824454118807029403806773016466410177882091765455233868507190368652134942858726569555801299030710630208061053218536328105322975686615997663890309206971655248806065289204424900404931316243410381582897371899192761996466605131692635991202877812434980868119387345223843067941929592149052601482557385545280943185030758203071236371182507285008139217186516032096906439848827323313305066230656967091973160414438598069184264355275538076104750044592698956905054862977047949970995694704559742167631144270290827163121983367469325164955185250864392979722260486758643405625935066954271884999834295302109334902765078574776934120138698929797884153232470523302477707081122413730353410871352101368223745779273908936818609530292360450425053656077413246883285617189869601565310547599309673088974767685621040471965645796892636171026927184015133753726755435253445795884971144889124142489483477114949092663932547900540694489727245785426588448673557172501469923635422620061048653035260992421361623293571802766751277809098013889814522065604862999404758875053225746215836765949553925292295271274768268876854373890965898976647866198951523882877941953860757675248451251680263771614201180102162515053821681765452900542041358719271320803168302497644910965047509442263556820992677707564673863766709228000383062730239915846211030799090481305025333306946990503702360447866686688628417468989697489916171025098831646640075698648301417038240813093528361953824715680761708408727652885377578735053159572388713177480027253312703141780885998619855001646534627836640307724744133480817288144665280245979977698463453142129299501753417611325374264906668255386997101351966651394544477008350749050757165474129162813793571552498947615388987539636378820686020680886038353683349526529105879968483409789051171992510777948359918289869153392624267259228972412078157065272862659477604625980424226067781101385805615167146958132865117782021324499884573925516586925275565156205819985496777623254503551527047402199705295441982516456235508631760177319528425533483444030427148219266749705157779926009887156675512214756746308207388321589814749676477163259931100046253530343044225963128806378225303251594016183485989228273874400736333708935067071759439881792861603844130886404833607732708557086309541035159879920611214065180859042649681060216543386368770967474027300368580723551436131115826019427645449302887692838682627391980699765242472861570023786214285420052586228722986490859542966482672818772853271304088809363721745550203169904039573164250898659895447649315478107104410146124326990128294458470697944289917145008527644895817776402540959279279753597785674513218261029070633607165186593104873409307696172343113857449206399442057867155462421887137651602923710639553790314391964754558081205269720261554078664883013307914877344799611600083471165535766189244046414386025118655064559207098498815012988443710058658358192975420248499041598179507784557090345563290497155813412346387070346536637384630692348866666182390878237597675885873134373915376809387605408981580485077223934649272200622587963582661548812049023990070301414167878019634109979241400028423201101884593019525672531605667790721538210881829525051074755662549435145120552264390602127638361680899194195025092060816080602526756561656394298947837765015434943259427397194688979613381605673511032028644645239848857548181612661381764750274316064833294002120842662698363970210874710620279621664545900344601680349215166719349796569710856688663646355634611933926068333968081983400170861947580407382538456880798505729774535213339480597231907433315749631140626385164451148673400266459178045806278778866291692084201937533571798399075973450399610086390369930811597409362510886279793482740721720267643017779386812530636882167680696706861025436157318928136562094036472436894214685006624316186964312002996940423014133983980615028794800957236666189451544924468107795080409371697335939632349553802514894730523486554929259115163167340017401788618384377752496477234759436206274764754249301399181645208549747255401132045106213576666051612540424469176487393436708630163035571223264927326479936909623997561215700375542583026933215377855653625039939492673145819400907958927383058864696055178141772526259320638033709558416707632508743616922308683437378216124208912646200454972376810647161725419431151547845179978769015553815214417505893263631889019971897926474230419021505110685655402647640468339362198820446078439553306124103115461471964125301110372676561264138624210239305682575047066629479892677060559905428606228677477058942942033456672305172700123581622614072644956716679073520236351611508428646311695324909972307279694205162968316864921574925884535381554539000498219070299614320486530418187574145325083026876689663810663741123324114420885547291053395427389035706455835624884624696109456123809872970928637778916367358547465203924483762830017970834743875287460912616879615978117649750722606524375055329171301486522858965008421093505372140419768148988430359813255610156074300184367420591301702653868034492547686687259918167076871623935107236880518723565012611069934052379214179166827131293544510067570656181371216328146916034924259461031827881553351679601852228832062109274393554665660831378868966288326416413641534321049881915441826116369771399893603434373363696304660742108158810395959788996392090116225218178713399114932975355643334844277288210184232274494966755238531875325387726957871557563549886113329876475322011819574204720981833282873972039187795856102671033245188724263526205098373163604033447500002511632465130140257818738724629495081129764651384293957320885910050079000927177794845060845245902419512199588920357106353630672844256738028510441360834186757634785004054156385422590417071466005718840051551690190269043210928862240194892349813225249171054232754097105156309661919935247606797069474954573726662861539559419938580973884618953753956512185042401759029837856562718939552805051694288809719492394953919277392900011850487000406952128730979870002413385704631033593993205060278028007523693882981507354641622348838559551729181235249417149479629465558707055345797124317672214309756770699839254429645313569373321889535196315986681326434747075928127570135711915093509748730752460333699919537824664395346496131772985374056216133137984807695441635432541968456611583732626467996609920546321197367945242567328799840008899465196497817524667774320941433660442942694535041481191025703085448357727491782767190084333335174562546809100828921691568048120396021799362118829479716858547008536976198316332263891092398479702748517963997908962130023526353594701122692781771384214330803197174947679564257175557215845987463499301247329316517737546807111309364264862444384715338912415057983771161193447050285867491527061885000529618034510228356141368840059928872123812409877557711911770520240720280285950950953320799223417833190044076045298155086280142954348808387331960038257042942528102054078539520441384681139990594916083169691549545048189716522639486347727292239913268091538900710364423122866220975935823512954341356339654419268024109720009838007585916115187665831045125003847637609959026851077469545260233449869941566205338459577211856730746714662109414473729558850492270248767104190969101661980839484428374115738449154340808020192305816545684863555917124674189449768335116930569377132753198400287888310871566728325750151441538105860227003993317523134701141778610393251166296717557698191770796339514883113764217202689769276100524217624273052353961303314596171960454738203695506598212233803800443768034881149885131734209871006968344852542112879061149781397869561309550032328618678295960495286257179401796747589312087036879176286433544554773569650587318226982492856371355322488366746196243563647254873444410035628121712148598127745385821292167862128155500794652344077025154981725739225553105651386507268631224665461160242560598276244713495779649237263882767890921305119698338338911792893556582262714106012886324178393456521060032190299799503799020984401692068715117304705796742902782547590680858989714407509769713769693061652493507330846832833801946242708393438833223574469180527278920232880027703760721116892344166488932946962570327437708348387476920713514148735003813253838829869922863133727161857529184017848190355793893784688926541432527779109590705514570280830691999055984454829592111743371808719614122106285962418201764167649636623764390641696197710051553689150887886354483923013875550607001377163327813352311918933645760175074156173490138546801124689819622047686417829118472776802097358392133486557064014472147728496227143307444454861212135767364880422008709592936264320243667894651023414904856652912147275591777801723418530070436784366369281809684502899375859662348053815233209717179566811920635762327095480132429143860940742887759797817011277837294742241750729347966634809161662060937517240324226511945627456143763449759656903099868218628819962994827648141504202655188478457221904694369365888124064773259263634972487178494599849907353494490661837769460858971014972723702640367702684248007553371719144456644632066074119360339725684067794504619239762913409887141510313012160179714036550182570938959679088291848728768546643144660035049331519180891684771346633890376929553662509554103598860239918198028383894133393681960866937472180618176034427386702351498124527422689781672716672754462085381848849934840326403415233711429451762300589329206599891705009062558316893789125962809109020102668052132104536932035416549962993039869666457857556143822586924828319714112824806102459758420904479335076949552790638335088158971357146236887772425573922082086906472080065291399935397659443623855745103717764536332876107352817590189843431711815204163186934411471896859082702434879190047952696244306030933158944443309598875875954129857954099437144060701816493926133501253487342301971493405594005952504303441168860846239981805911822416880702788571248088282511403072168631026964763545823240529223131232402714484861479559635581006756028545010879238154005220671557469613107281794258023691603540161251879070672386517985458107085493727606937755803610473835682571329304968269107867019623776249683078947818020702608308185023412691526663597316100013973502484624867659357739518768099650975192749638551086474530265443794417352139418964264121336731863773914658025083913925934112697731017492671535946681244174159880625171989105587747263865047475556116761850489370895321916731067794992123030407319946767060095919852274902969683644668623695388487108353632276889954024517676933465510502930155620899245276215881414947956760861978274289276557575104080027790613484901441045966560602718549051073844566000591577713414460831100235951904937800257298861778566679584965875247749985862968571426918034253118115761515545039456305016077606860059992101999216176526211164036760236842467551969265826321012566105103802910205171704899228094843510721794855305543565486769327429419998873153691752380927007374088521995754571966544704773385442348536807233535998578186132995482118768171549879228643485009675198569595076329059616791114506991316705601579023703193779805552882265373107839970303315079544858192222929820535064694478742070749750225729432692625562051418234358283934372408009145517037956364896340933643308448772703471990743944763804525329349099379328380345627857342486112339691149433065689243530007917018206310005595307647783895958464968753639165770825630630151099110631958214503394342270288603276975200147109921966968468052913725366813658273535052712891525920041719237592252769543192608974071276507291478705208743167174350450818080018049097216522484502032493073251985833736485823480641802480928254847007031970116493617386135989898419623599305171555645543216862196991601256124805668746353141112113219795269362755915288345381117657855214973311520290850490435557036135373675603780821702685234531316917359857137812246294827095980149109923128755432199647628413585361365025870762490265832039646272385310901453621601634563728299645885224452679967860253260183017576397074624708753226471046958624376843999507784167503050060908016494256148800712568798043525922241816810362258133122598059415611892450586800523182005440704968779372110398831587610092051884706801378238777881937268851885396692836966104498264376706498853463562513351337357243507978941269819506190193851348596278747022942807092135360140483439077698277326441881656703128227183792294207809343927799206117004828989363350318570993034721430576817315726564125823153975294466441076453103727862396868853569899457145105022477700998152090776190420790094323191075706927109649683790549056118344944823634664455199850254518477353754041243566542401759641201807691615863098778057231178225599163927365218760489231340277377454660701864296969554623745485230025972519856003956190362655619832214590453505666747657530451391077945865536461187860889490844230560500089346792471797027136855598869882116034338423590320008994255264067458990462242773664606122283432010103937460120827975620721497070158033647694952468094268048434693249636127719576854936156724792873115123773650676756961436077034416754334466660461118299489398135352452223803530300167246692977947320738404646601076193872808887181328093005399845395681596324919686700020285583078134609759945788231887532509603204368326349363914064927522364230171065936803861362302141355254676806054488153907252230460988298766408246411356958661525466950629205229970583251703848279327134758211481047226270573388867990119858879470720754141561359799676753791785605149868639038893212556219936542064174411627640089557985828170173482637243066449687827024489489416585718055198463950275429603031617026317097556885416300789851163794909261038841156824887093491625524718924025708048098226862120085819479692351745436647431018938173409989460255259783050361040156918313617460423815585309406014582046993089692863507017558909143638549567130504219558983938294014722120551642744232177422952877324936414097108924837064261492143345154532266354521442419281346303733188370792314579350315910864335762252983527226652696158381244757127072608615790705908868608022190339039384050895924312768202600965606056448408323839916944214460268153299333604063830194733185138147877342054895398924466612715913662660964827856720495476347612909763632560863444608200655664285130100760682039655105307763739543624925575856027397107770409781808712386519298124764706931372426754766798640766984266068155573300611685175228714646822563214573922982443056640638335952970848364641600645834677221872038174573911712945794219204150498839135213588173187122039566685222194720316053590368122215162643801545459382344189799198516122796792053292354063326762854543460614758406748264831097971585492325094436529442336917747829142821158006915256460083662823013543536936784996275465231426247360179882974084790970242089308173787115507052850682764809068539187006956647459498147249842463177203185872544918629287018812413321980682057084618656699791102128401674908482067539524670309405734824684534225893096840472454145237842668777272945016965354782837203201090419202357113998877061007184173205712776620218052554064241112908408755519934325323396217621100978336428712186780956766650652739177154496616233493676856716141910470037653051937609024352827068980105156156136221727603295388256531921359942783289473810584776591185291587143218276131880405502675449519822476233457004998055439063755074934379809546547519961473425437964514858867630473694121823418844912447753322210360628291299479034993116480637107080333337295110072176440100752097705905361098982410392488762074279327537092104853906728314792810239239150980650425580151998657455728946937571588677468105949254958879240098067426733559644549367033912032426920944697677791036286398350409791144852643624974298786535101560558708778403803020007600208267293917049618807500354873306147377851636486404149784040831673653890955232726710192467711928050716422651041261160651431210880847409494569978750560249911159664454052252743973218131087002588194105226931003464951307402511710388624669973940752144195505532503518851380492841830343681241912893880359673611953311663368156349647757109018715373750273374629316154561855827186742961969176751405861784203456924205767610348229292617929875026378014607134652173598437809614230821737852180007936851013816498466301811976369298408248052250100528883562067359064135553296076250297944212750270723456122557044807010566146110762100074499633389756412882654191497947117391240580670988923128671911416110724461960438824103737031281435912573958555052762728766911046418730301738569390432933339297156202637562791134386351958773728019265932020276196525043053346803786071432200361362100397811562298291213905135397899624932237590253413849994666146928153408900560873715234362826470387157470985545871957409792835148424705894988420025334528443062023586453314324700963404595289041820754328905287836163327084974055621836222901998769405447698292526657110225026217486617968578952516303447541824578038657061683656433606828809189124878314249395578722797398851767205995859903179318441140733817102197209754579053699852755174038143481668079614057504245998514779503633250191552225119893935812130066410718284788817637360216000254610528368496456321574597186716209888505986851212925579393748185082233646048418561546952053127712784076004948168748763056895803586713933909441672663917094727438127601057060571120537976672926413009876960907869408538330514488415081104861338634916425548025456285734904769841137560389562652068357879775700178508667040011357876422476494270859285176892387806636683575077492772923962962455162520317718759848579949002114738623110477788016487742255447592331901025068102278218774815169780334631680012100174891674269722631643911601486671070542870663239008971819848295638899321215242986678561357936506960851265987824738011393657469708016193696918563094207806072705029272106654175472694476587031645600092252760440017999462139405162406711144228980116364368448377690308921318403507448570956987723493797091371888680624424852046722740106400820007381520309089666550639335926076115243010092878878406073207657230916381097794888135712723434865494411342773654968401396846301274606935992748647784105212813208826543599378047117799498870264086412963516039585277496827760813082233722569642005352779148801038365057784465975291778286320531296335990630791656634872405486050940011219597836564628607020712765116185541654970051960847443549885244263162894084734389748481189161464741929427394713479004334191947806645939176993016786583518045070132304260434842372758445751729956500193330924562344229111836042078529639599751694462994923066398330325274945455356809295937682344446806177725262147152602500619533548066498695590424052964305079490522936587866489560300090620183023429952270209577502695271808069808573692547433106190634545754114046039447720328809258830107312954368989613716103092145286959951899437811372024944858874523694633013624161315949566550936127377005798473965666001533952945705188606415555288744892675216648188704627915511365494379996888565247165820772489828116133032805849018598055138955974858284835396516824846111236878506978371457629877055389137687576087137586754065694078172149682571302096681785664679415767920548638767661150241459389641158408226604365656103278732849422601459289348111013112777158199342087135582597399771778520170705374819398748460527419046994078103675316797671756103987634750340713682880272224754514793209705176378540032070192337588331162533159896504483214519602548942820893235458010354581320046139321824418049780322639349033058675962873153716526856430278133735391773144012797592257145434141287841179427842694656457209996122452973255879995091299097751774527030388743591131010553483241889984639665197691165483826616247691046645600921376046703510555545897352781805408508060157101670513080496872693604777047946352046092053194460973581088006987341928455857826454392939155407854386805067351227965923866920540907958338339944038127109787695493046365643689968776885207284484727851670946071651321360160565338007923806602693218471120477152347054883326958030024224168883136978386361672978044375015008024759043212729943881256020319316214732429178696922519356352100897473101106696867366384893031792379332632147463561149932559938978185868020812940449596938653587342405014506106752180327737751248730401431134956003674909106718229175827320932380051921438447329039088804695769526854670245186600606176001235702080193798052744386488313976246934531195774623102720153605827167356303643596334221725273176359853975163027652984139810232492454673256849413475186672702880096129038925015108242619005553809118001664423767940092178764144975613008039408547230433687918270353057912748514806901142768869580684789941405916316378760815211592300407149745051937165173048918087242958448644905660439260471796425894355483809406586309089741126298963384577241232202452354377040842653707849141943698219241276917728505057647602424188394518103114961706747942891680414967520858898239128406982193178594584884441219767908392177692009542181469180368599205669678092756798670647073683788982617790225480228874843408482973141897421076681873328886815471310240321131134097857530005508263871596261683859890782505699904288173925257637123858609427094234802534096505955605522519360939396736921298026773327549797381136580344119832540161242768620883093550295569541290137211212489320505929714930965385122567413222098274839742799577521941832908542499920334355889139540242724216208601099938853495699067712048312559983459398824344227114207499589071436450142120461042142193160853306217191502322308482304201634879377140699929511789220897777040723408624019382057199668080363780236431031091943823120167750944143911272560347217679502898365998148400572960812537433535252743863179880842971335080348441554720058775864515609734549361878874362394698672287188905517921080353058734670780675838157877179031057200604324696125024911677235177134799966170572982869979873248920715265120414653908217512005371670883894689626904864280065518177627632809788473467019109300091091354123265305878042339968445104727865736947359278811829966096447934259218518586659024746848364074150069467134131630267766858174297910319764998043683925356560288228745627007462009580292028394930845899226235096757679716154847351971571609017206949419249943275218734060051103012141943354388778782907688601209214334846244948394651079506772809032464723615126571731798286019110195064694728657827839438998239238487581919521334460254818319352968210404332595201555847551183657486012004640026441848374068266543748992851285701450695634039726128658429780380354132281876957562312415414310101933182130538694667127725756934940145138957335080028147511591168776201584767276213748635350633733160405897094957260910385320294335584075724454600217165376210826666445726769101916297304500393681688596977976119143363078060037808284028776781246609466466645638620947425509904045173871735038493348481522387443074260220636916222892767953115666406852992586424033814711341473569125481984331148908500174784252149189996438725525309446077303071567706275156900201995361955370731188057726448247051997771136787040675406152336402788315014514429535984331483047761757402076266027628808139021433993974824411945051675262995612962565954762027317961740096908623934194770025580928068686935115768078185993703412103475628033056358150580196730905484777916143992885945061728179054240545591212580428931580555520718668706473711253389636512866139764224454445758211620382956479850867100424644211480381329391823041054832942566947792418655956846036996385215162412275763265816966647421886659922887783409840038068904832826711808026328497241177337976391684184263458045911581752610302978749072608620539879100462178028153191549354637943736678896585896801654892635494342325413719415494684602103143946189469978396494272565976125793049280307413063985716278347068715216480007316112113030715870708208487681508152703655661416786131247558861792138654707477449004715872699566979688632272463537457310470334472346485146372124151792353039352856797850654318853468634151054291218814256836033974892455299787974837999500810050761451772908309792648821720270233303996215863919016899154553713336653614645488010655565712057950595768040815034117419442507032366628893015394942395094868609920423263435885380295814154132191425750407178684330652568665146663285908849351925345567366269505098356499864432993314798885216013075454869405681856981985085819159833583135206063541135897098968177793377306123460859448444728428920377639661714762575113872700631112726931671808032788990932686534341808274971954080579345324127142531448401742806800787897354581407256721074712313392572381647412362598430325877659497159985029196011421005525956328124402628176921925377123031531343820012354909293245793979943842176750096907436151020792374260106050369503418148526955924390415265057150761492363312056031673214215653660346041436474612200646119375226279310476696963635355967144324189921292451019273549279386272430173557899748129849947889429485122137005075663607692422217927037217578357946640489749110945157626175339580533609194240578660050377558585910558052368023038381955290696165166521464067410948630681946775139531103309860146769326175035509463427389533877417052508442598504227023806011523230106661274431901822552454413237779754892746346380108819424136186831480155840385932056864264243221711761856222665040867575936172216899333764582951080783978884544211189979738269316603117279841461474720127751227542307237609694622208495070240524078192105270534301711426019487070870438295959835709914747726661794604556785226650970850327567351110899314865070805891049322866290083090550860894941524069072606574083860550263920811976588943284462693309434388261986007746697462512755593278004339519227363907071233942678367640085479402175827550686447483074754846214166374672016941325388351240337515040926032898734161876829604880476927096481651022859528267600485506013687324491021859842941381007634056350182950447580768597999577412039857804063260078929251789795936828758273191746854160200361739951547253566273054217087875519427711339623464661469212686807421279235352230912759370891060176712306692906657148435564558368699691906750249725003667309645135916902886919237227359359546708444963176102215447237733418460470405156053135966791040897028588587113238823229790685291617992200633307095538687769708915236422669319737570805874574900094356220931177043593250318893143501648010956143172828971933118311383607655766133407346216002167914763375797900921575987118509824163368104577933151657607383781710084909083798630891998510093621122504636852785688115137606200198969923610523581207435240637845677208195910888990892311673934246734555319154695528228895859559958692330747366151381846533829113469720816936871150599766372230239210381824332650155656866606784588530389713114243829031956428102224724425637518433549362682808203210311146367559210091328846689712536129365153828020963226003800140495612379252595874829210451296160217872290472676124543479000155257253811224168830797580809722046300036719749468819454001861275241701050831337222174809551364161110439043423360773195099168479477430338660103124894088597398675276042156104368555000697925655994645410560522788488904607620224026411398367646236541786771339598156634416214988544060624837128063591361943575266226813333033927347499194312185752609169787840103396314463302890196157938116133259373936201999838065892364949185675318176825627846072875531776664163349815988494813381016224345958086952330426102454727569875376680973503058062430562076483444906479086843266149314961099505992126167791589809160892889739829378719433498364771131690071834741190049140462610299937610249800808675867379061075864669280023827056412489569525906952241440201470237967681234733177568073505902825216471360794197625160762624275091483201190011505366727464684686321970159993668550539849139583906516075907587949922894124098366824375339838637590672142905407781526567022542281534569124474388389877746496623699977844953524887575413777466922950855213955968789963167790689347903187119483030980368090563810922300600968800450239545863952544145358866994191753754854049210361849105795382155463617511989772854630807783674803942344868530473454269144742790841471050195574397215986255371333463535046289978104956565594721477202114788285410751848876671133706119056095075205072814915513771230360598796697516806039980816557292562221126607419571597493342813379559569330230791916674597023369270790411051821501634140766988837523389246981672747783181447192762365062380887825173789182989907707875696021169950527446649552586189697870343281342704168851577491491752550482830166871651896956423008169505174536845826905404216554494779234736436374094300115426163048984861473110256886336493031116866312865970241971270914028957675709725253959837698283694291544948040109836456201937692285160733162710419802214588048482926893526187863881916939169676202935863233742913887327068992414605648469389205062353707929380728381851912160653777673720631978084821917898420137704739641986381513107399799943174330346821216332603107099382946703361686286171964568000180725886345070651365389647255083914402315112223954938000205446720776004033132244758722491598628885030835726030697592916507908780213903392282611708976404303051745533818816074062424648794239702456461300650114740591630854255700385865086834845005511382657283833423184944350950720205119627024876588327815341911182133736053320725219817759781224773560354428343016794694857630026903747646825634545150956357101818490726031360141518012004817047593056903844468489531569642165201902570827249786960677882657024274795316543509411855452566237722422798938014440141714241427340854295989840770260443608708217003209587397497606109221660454571984812480366259802233156225757626587664755320939097780425992688440223057080956673742061572915181514912344418190874622930055449204819721522793869543140012108009599387624489981381380553445326534947090202349796145121698987812712173469654557631935082337361655999305436166312898902772410483068223355276034016334185150141413298981569619658616310146306011699994516326597837382508192371741164366083164580930700817538434678986302179562837550173807642461561828771480265162018994345872742573097666533004610655465548123292044953994099975636564090700980473847708834617225736124770296416759091778140994013177691079072304699041938120134462244008829394026612198057183430777955601381561478516029470438764259029030026068277250598354996033498049280898520395824402718597384858578850627460895557799043352200623011160883668810963032561032188433603380449400451560460131823842124547611209104629938250719704931072344457117968782622399249054860571798972737732154169331356653321816436081458728988351857396481587360382239782896951185794081616409310939328091200380160945120222267630523501601906014153504001978329132709856465998118026774434961320678170920517048467730437191992514769143728251076055447531432348472520448096366461206415074383135991170332758134650722673539615731761819687220605624094189608570719739483343107234668185854721726077514806945788444798983054473720556145585335047319993967722037789783317824384839164098660888868211119420291480643936152973439936524044725242314889463892833549073633468833248134575650899636574123099611802129455359588083911778052771861455937904544805601105348866272623464435940891594557031122866792198581916765749883011522678340541414516936601271352435090830502393007672793628047967617636488692957848077115872223491673292324149103197524446177106816573053049996333441720931064399502780513998083440905444599407595639433516245957802840602730847974176072778739846078627622013365547196166285584761721991918483929580947618782063058140178303196998604232361101219888064210976995534469478269668896677479503333508738106914327077868116281763321844570596236631680501881309796547225853039750809678313419288103317576951267591813832558749388308188604481058434314927123848926264009627801920685588575954785039433314220163392143604726220640744026699132032078386291561805679321845605096642733239751078691533302239946914152110818660414959130864459143886645761624224801156323872616050577277076745921050652405635454197169329931718122027143957567181936859794838864874651953211855533656785850653665274917701937039788601747827557048099192782785479675529348334323915211131013876587781096136825423851986612259095852463723371611331469422397991973941472599201133052059466882943735408485492303934724256858098615800554591880089533042354742625694997682842645009466356782776220226316688832674183916158176131093856755231168138875461982019870285038053745818239986340894011910672867430847461196973720645177044017049800883596259844181758201295884361370959861527634649057973243359268530562474895681031918729581212765527877336905137578593551989334188063279389832288365513787391840600958259136856500179747685811764811815815366146178884360212781804056066316239901007983496710743804618483258383697365113383638793295097409253898063735275715489314615974458382033897478360198778610941522390856145182211936119898925341854558844140715701169019260255245732409075358115190781365895363977416077754521874744629561241971009570528361011016585712942656610610357676266570691885596188288147294505150863332397614635107527537076008294080993051801705245178840571983910527682554202582356211277569086935574711736184611394322785565247237003293900741082344541550539981238730142261397596047601228586110131453436899815519145675755666782966458924189144250622034156264023985126209563514729525671286099617870115714227526785649482383812201946527749888766039450155816637531255411438385121296668069454845575539629455497529373457462578986507999193528619468351046141264160787576172507281268055070230076518867687666235480516340756790006747228311689413661478732782680353911708879615689106518529338609183941755518408621481637505232160552534826469640576165274725505462169487068691039028679908180143001252037693593497279895195321872526132937749623196543743118085213932449019548800107754162482078354076621323066998862780468395273412174629100542305719547979620571996932638513082529280008730243960299923382140285813532612231010102619433836275774106156887351734334458402172858332819244905998269940097105227065039738656737466898254694418296708311620301997892201615551400291209163735069243710312997474970638903910834390654703864947738357163815514003969702224809150233321368767655158837544512152224771642250603912465914033999246077100608067649018384602048188622690759843327185855960974731404384701302357798823792022963579812451240960925600751369468031911021541590814819560993184757858905107630399817278503884366477910297218016939522539348489439301466152143357413802997751002858225403698443189418891567472143375677823732471839226185243431817673508866776985688019747095113644745722065668567218493911189458167037015735036095520379584318073080535301916876718679744593356941409107497426160027241871876605376866800735141743097805662109224043606759124056134375872644357080788159091670698341572471165381657742796660921749125618055031593758727832424110036940341624558406049582877523487935679722713127297312362029198602201222598333982884844710124746123042411372883638640919814800668405749564677523339862127978348124823449419246347408952414089733495375160690098686210657250203767571723099082867933887502088087383105463318622387148309317742600706796247373468590748556424514161017360845572757692102511502607170196586940308007585442572030844913586369932414641373352891502149176069942563390594053559744192331863775885194287631867633025249861890770491995766968969446747268106457049083261453064318946497276621029530994232084924500836414056812774737148193005762075631063343942166787913501235148810038011437699162795859882559648156528529154622357944967821910976236366798989358301083482384473427364104933261088312337868647943683053831107863254272202779586783648588855968956837805401256652282981740987145778737385268899773316894986189593746964555497098014768169751333973635979531903787717379580583154387415003978629332021221065158740504368731421669924881118885532509782015640298376141827995695934929529739789990575378823243891265114382693346170222255714857854331014391173726750165463218611940790399788461854610731206528442785366973749037311952614489508112391813753266409142491927093471759314275257463334154644697788423477273618926401368291313233912793809719955030716076833310126271768503061167474318581401067881556606782149247900208341991571864738195059448027879128613346358439848825609962037656247508307614020235129288543460061822310292221344177826415428286504832188421993122951902976378903729792771493845186677285004712926492877819924497022169532444042750513102954823767876968998071129815602424092732696730037680467586021313543278062590223432673507106206073335975746569151206699585770350773082965879287640690406278053803982241763333128944162481517942488830152517753118705911859337794523147576124909036371685035784342593833046051970865586412827418868805598490843516904406474765794313923752687466047503838860636164547298650890079127875743420281953707848283558329955414989227464486900978215565904893839312811773632058475030914787942545702969388689340134733606219974197991104153867000118150460769098685685644971220929565208194703609100737834379122104955810472110681059664170575477341545814348220552216149313985425515933701520284142199074315495314227107892243701261257613529182745539156540819751864649165181636815181213075913690051231199293464269820191091625242394196444331548192975230550981732417588835446393388361804872085987094487527343004774814909445221686941249779312678340847465692805122439618958759800562444064700707071593145654982989612026760111923759976030690081979181708940419110880578260273628826265403716898344390556670945511682828600019577533994576866886623793736749636037334771566732638511201679714738986543540628889276406005446394155535059363112813725765637875173940025825761066786393604074350866509337910352216374949603506020880893595496060947915525913990471348420033899151716973561185681843525877018578981783194843268087376230150910394672846111000415390904052866207413883545719790516828290073554742351133971276850544020723490009470449679845076877955192801139824781628375992144753414699052476480478120568555132798441580129344073795995016745013500422979190398036884394943944111630474772702839669764827274764888581775314056905352502178899742859174234087100758448595890831237397596617506193311586395433986392896961490103310874510496921435001056347223125603145477676073262525487078959272375974588334314437338263235897348736732189918270594195407413637019018116869336907178822642988713931807321461498256106951350625397884738675305284483168039560388418740663326301273296332850984073257320031283251476878145939718845391469544182595343276789900654573529184276796660480349809902061213628328749975816147833649596130667900692323624223580221900756602551604965868000644763376395892432971768652092699288818739418876356537043415589993137896120716843663071343463002932688620516613037884426583687019644046996381485590327027961980445463716669658388374239131688122765070589639875691181460192221735527476466101692708109480164883991236212080020145317589371795230652880651436754648320219983403603528689939496452238420911159074800673132126307414842762596974009998319378755359906025640418892766351809909366545721510386810393547288271918518856267562226269368527846073690780711553863378808918721763927011714531394705917581524876654598985608986996742135940472235203847308348764051754101286624689982868341583485271194188040874053419730633344842039701566448519918386693823597489701253890686321399478084645837885102472436860958952568676442274260785533050204203260786083114912737293772569778694901019347505368662969088427788911482159587903699760998303700944376683024898299325008551789009780580197639341689246445484272980224252878945621540079153235939926025846896708100507585714294105142107208419691358769313180521892995318590888692991470558606589450197091065095700818844352808016277664318981875784529521064635881691935117844667330223713417334554000710685172317140007578205677301722425675000519857307767003654771845977896089016501510920040806452829653414488221360603283775107452514844237749403382927762068218657911168894152191525228623253804857025440023583835684696593688491092177510507954441036977106947218850722002295336746793991894546610676920374154640614244738409812309065043174972210051915726901342214500651121951769850249258759718714175272683789048802809901064724414847128216043075125762807357871182218264702333353438301718220950795630057663278074425702052545422481069349967982304308107682407246921238207109899817697364337821923029474565633025595270065065252261408275849786633676790330304114563382334350977086236280229396790292169708474273975372574162830878041222188373174574732300341687289485528058638880484190291136516045718621713628341955386886282603332775848479183502458038996039505428492453069072844687075392576315590899488173336690845185016189366186582775754936700283688901838668874895218242569916764024252371745711479428248405246294947063841755228668039137605332748343812743220581683289595345602861166656154440767559950165670162891426370784291639060540982453545672944862230047259221385507787459117484187614541692314340372851562465221303758233939909582719120870130261815455701604946316201868700007450327304925522639727310750337181803675345192179661040904764971878462646033306821504416152728874672219807677753875800757828499018329504870156666086950376321103556428840847442839104488309665120530491937354406830502467524630234448941794432214580885157871405066032335212764009401920772129481530034798255989651443845130990918801984103327172264859515174162927111133183357534668985214466647865845670372721325899275479785788000898186591729955881259534178373035500182980425015107343471344031412663872351088376806611366515214424032120329216916851606331509562835343705829409432261005437637450031595620617376564372730905690664020629537918434694029202540994287660025273155513645372839791036722068910992546260962196800365708919773066637645205997179919756433113278418770006568031671884197775715024563399498424503939599877533852540105596713515892214414600552473915585162166729320768836249514638913961465970021501659647959914461225892112790998399094939830174526288001796785460449015650874388171088109273801422923209714127886779730751844992020797243142952924803673362110219603109397707571059406589856377093465272045862737396464735209021176058770604718653895154361333528619356805493881432607293128922028719280056223945648526703898630779317973151213050719030095380452294673324009286739587809585824088868273713176461201196132783272913334763877184012687913666969341387890525172962406589253663465607349230212798516918056999228304655853821212125148783753334012438729504134543254952037082676696207317844926724501382414705398802252426013574363767040045842047121138639257804923153607760102778258382427484651898071528014124968989199287663073352544333120046204160480948462344961133624932988480079193327574039717025041575153910985982999565615317771117186483442863602142795685049624841703734172201999322679639484839368540392821307281898393457563201355743148295305314670533096036099340002965643536122802786238749009742670438511199479297197020873658014700165564069563718215643592802380500400082142543798771819785330963498796054665366576280365857906529396406038966473764183751102242859870999461812217186311904333649057138604834009303457223261833481374756388346701561519466478673522675113400874361900301166369492272145975861752420660036899561336756907015615708730142596353831725653654343126545841160838798955496423284998241314512215353296321853753119521266161200409303547987027742062554672431846360183250848931065034493819471940783089041236305367135196242998927153022052445006670116894550283923572302740802844289385333190468236005807620007793631282237775536854683571529523465904259359036751281900916695676720190941882621265749284436035881470213493273659442556896817943416225383001572489177291680664054389306819091668112485567700356898285062036489247166702189503308293388448289879566588068465440617023218310608889154626566729817284468333492357932449104770572170655056043377699155035707779815748308867368631040540145262792626194762829339354190802645020698206161501567372380246660547920142209920424466681191588023424116493217479742895136284671838496736482349478210305570712202175896835736443283545849459852887405782258239075932807721464218188069344391750654619252013554603619570320132061481166144532496502069100990524859585041443602795822574988998359152024369564441465529553355234524899907061966878670232741677363918034825074209878352712460128269148071074776926693147234129130873966593739171928093903133563899069543057281586883380096787026328134736427922604062065839533018504671657225546478722021571571352904362085660094432638532233641513938382404748150290779886744458330344373283963258801138304163598015735511735523681645608990928304780946985649951336681924844971294967705626459323484175948763578077806234902078389924538413821934258939504127161335803327596695708718174509041923014150372527359670616408009669415746274290994586391969184603152517832780520129274571498451673444245619844656041188500222496896293064577387832516521809986737128518522567395306857901928167655561298343391030005227009958367998969475490430450476896177575375191638409809770651518553002540253539607955081067497240818985492114294980377836315018251080217449010098560753731140523042380464701104107884068869783968808058510088818233988310617086048912130970745651415393003160225162720079172395286259110195429448347432419508245086673256384853473391346266549981923524939438900749917693158112096286776191655043328839858987073002623448330741276926190951048806221756431319140251043955414729395169433237920333913785155460227705909316595855387560630662621311775702163956561776498398869307795296035558083138943037869310672538318739654938988609471714219063851096417948207455589466124336059182457559005999024789617523302692103849300229424087101205708731574822715814534543494945078457665808334033822389120585325632206064930405937715658770742065539409504572676381337359166916803940412343563762469908848045558222798011192759448092221542495951904571472358364153969838485141340754322340700773051392808021104459035636824405347310898469569373300326397320599500052440345189054471674493664631627529576616715795544719693107574765726219982385293551437515752903474651159985985778426184245486902792536921080380228145826597576936550804471724935371378665888913246988220182276326566188382088566908585620871607898288271181443344370462991695785942188678583797013427407217488315668720684117146304452239413913590926199668075241905750403269546561942598258135085588555466518556013416418708079999943839626920415383779716484586286184032321471502169714827136169432375577588360540365680247006240842228893405785519908126740620435494872556441465966365523325009477973560196351265083134998325125820770370484038447375254524996602733652306668260065538872822088788716152121779951197972455763723362505390833443205626139669688820361826409815709205500258753049266703114256377924842517382898848892854572890655120175879488239194801025366821447588681464282249440230675955152924830122902877746983971979618097715974979954436649432142043554088983393534580525527886314672370556081036388283490784381341385078268479140407818225754897343109080054312913290873079724355963033994712161732728632948466730192698440676705471935377731693103569795673630926433253690817317895368252894521768303170638135615986187239367895224566994851508338032387868863610080521304525874745225974534001871076594829243366978264282016257152181601510439415416425513947132716263461844805047039776248040089814811591782912599109533804708468978688686620265196620797422412484699957820857867008946498134816459035088861744354622722996017531867201609304906290594068776305265633789868010627397692787449301573910229485136044893137803222406348305784682387339637853433595520890016958228449403161886844563317586817980846343769885745123733722194343175498750711381944779305971533998050450404959765438550907750545796291779623975346645012446289634427418165141698392466186859437127636237304577823234192407256396138102763054044372628439134978672786276609569596814607943400982668719179227175316442095634780808468483294094007635248557383847944207230473751212406984549219593574351516422687395712055427364370163258170070009496965252698929020846174767121565462181276725614200988543317841599438061947238015776874908059101028832975088491568765395452278266318489299755962416112137694070965711792913950730402388904094715147350518617468364227158286641210040839757075634786911717006377182073745312843805271907275008577162910457072930082889413009976307553606288020180738414217456162055406982145891321609281932050742334956468491059641687387930809430293054387925029255113471410179984390054006974923927419881137510928603010902853133181688390412145413229174004442380927201730747070720711513418254631352433762083642209590932934731667468759762649986996150367594719126721358863205664421398244312274040355497597424021876523011654066506285287104932152892507659382060343923160863040906223575792171957227606927385953637748392382906511724493303150491212990481110546362666957508253020667908115500491971929474596262159611981693743280185860595197296456540707472230639568210091857978501892849488601068114252188845641043989169784543102059832587752120950366600868607993537428531976301399983438195228383042862805306438378991248376076889052397413085838581399225806786643743419639537471989618972741323941888454366046396516459574613027869797979197118516313684358900235281704849323002646037782946584678116048686451533415339691319271189397445148380195593313855143205416704109173748262817656364470680197790918638017765274159533547857672949900451694492716392662036916793294344406974599403712532963378790818611383354030794540611627199286977155920828090198572615824973395915004956501350233776018665673224973553924806973794771381022322830267904805334443304622682181340785394140757062946961389338463158784516700042918961604772417840852536200892292531510608165996277823602273250404038284125545691498281149772519686223655847248741250116312583369409775597651901710482789579232530933791068754782047972871701543062899579973182794349144223611023669078542462527745224870599811377192240784962081951653458860989142759188342247582379778085440176802174452243603479698342298084241014745112174804424843308947388491416663158645808765110696370157854371784973886230581785805979426860768466902595713101359212402139745184799258248576203493874889601507103294061469585480534198167639922693383990585859451000514424912739316076834645950490356764758585279046905637347143557350613264980864523041977175457108585959579292964275224604039747545938342681234240404998724143271610521294143947072732462082079853986078277865807523978594308353567076641668115059453045526452938817725024645915717585689341919028653401254591999343151054901758290088444824801262927831739147706780640464649584589252428987539980613880168960857318990553120973430549837364835071975552522611946849620923428451293980722197646461929389519969200303084273921087215031212296074099983842580748321180109927313711229002946320811566203398637485724743515134475789112686620529748196482851486939807731233150557560674930770270173860873240630869343536808516422523353378574520771871482471098258227293974522076244024027002976286309015343880101002703006152511014023327978564696881958027918789671673471071510181804485712117761296626465795208562905124282428868372291221793058055934969173080197575207087647634512026938484129075489757098496467924266195239414402429275677863968899192201676090846434027282263082397009090549426744551745961014961608977541651871127825886434971672749805900740803034339522317834585990853286965400439466800785983734340954809827692357373334896055158967060299131594831467744179582204725199888697700700622559649877819592743018795210426537809169967213364634362429989092635117955240448386770238604166393474604280340135285060818618278944091540321868253533648483901752603381909543692942808713078039523852846881815153079183227861653215446583390625500089568591892343739332052355199651275934908415208496235487780698906720847878577665946703667458203327752324792354335173282354526933430627146111859021301122995333008924558856863385921684364578448979588457072693455581389004979395289542805476614308323025199963008428227765144447316302570933475998647220853266387325356575799607058032418432514691766377917561124172837450842077040958853771722015367059801007939110006833130949902263717868371566515883791772621687798128485929174152292100002108011202212961564334026645205917304094356525669579045744989094239273264010953376306116960231915787256927373344932994060772152116453673825119113364463153698004135970815445755772077344742137910919295293616696170651017916065674187916084668110252711022015766934574683640690941763917204876028905607296602811178744816848819307996477914851579711932331403658741979556598659392426314932084366163632641162922256170948483451426617713387240933067409090620180858306469196119054493868822139546372755018183178945698039106639393985603220475318476765459516410971577492756379239521077312034924950238378559770092918224412112572434504025599843856741167392000831982946008979147788824255998386276236948006061519201487198689742067351572040271212271776813009130753629995133995265031133467487277403473302427308794882509076304670263474035682141455211235974050635778212435687185780875973227076118975081302169726833654207764138393341401901412182029757966543858195554229955961063392911937494728551915699000343658318079579215116352823795891450450416892696192739047219414033016175272781245407571875187360195474931326189476393469641706443936370453971322586704344714610356619042112126777028665260918382879774842462285675919100235634597160222999073932042933005383728507178836088209695428585128020812904194514298569447170524477757322727036993375250170344094365360572035179998825777814362802636436252340008440657569854777565415705315669098981839846398647536866403025104255123747115922905783628089926165191448695523062842159721883433287715388252798031269585331110347468660258193083381793589916230430318997530623850172484528682400231283956797873460759211452010604812648587771853639225529538229294206012928877862019940834840830652307702120103159967418053104501071673053788039599907898937806052761996754479600459703055169258474740741597858235159374156046916668152602811933093457799570823516596812798864812026386682195036538148233048241932544794551044753683507100185888128240641567944324464633693626715918564540030880603181367936513044222180216282447781166459953845241840119636009175464276273274110791307205042779372202330981941269487143258997899570744211046341277101704347582744800681953580841326682101563103934390500416063664685623644204760245529496496501792677702632181567219074848420204086238241168355732340636149307689855951000173775338207866794835013882582017998697945492771229007563236012210048391996949363671046384228585118637355622920916268343919421656666457697876253649078002725454367816476723716496808541039319595812271206313331321625444250406405710681369394736320398433826261831207549372039562393795736615112292710247904901718504512406709945628757102591722811850808936277059964734567646109988716141631479930524037316279269628679633824742710593582307807972897071028014133974890930706436750654208290683949602778656958936445692248874012650224815754769044392016771823378816345000791763431585685499527738655579607638888700234471983848723944663335603128994684944086669225925168191132075557688152184099837647087784356650409259189553062480676537484302198930741310282195374546309050369765928488725244849114141248599973345720295677120011812693119372122474214511746118695471695924076744981694014482408786479348706601920375391046599800560022543212767927686186977481453547896863039696417884898486335663892021853226697702035299081584756641576489239914561994118162717022730033352051244074667126781347041733040939145284325667654025595191806094760674420316210664101894696633368964592394716160259443441894460094821505295444633693360911436745810872450199927109092746781366657922373593784221446444399585509926314274228891853657061897337749832631838016194917142917202081110226463896972458156095049091577665183554495659001112674742517373503501015045325050325518946013595114691187235885000339026601135717540654426663330255882345883267653905702448524010132163765697773774489965004859390122746100380134376547426208675602023844392177065108237699636268672151331486095924168229335202159362076211401259715298438427253516841717722020155436667660276589035762739622314780130042074740752705997481977062459986991923028519534120883792263726168618919136294769930784798523795140854121181336490280239943567126699225764620750310726709705901674446272699743701176450255469578003789909201398474632923741255549985402250151967629677430575107128243129163375750481085423534056170206977304604642590857359470077016832734108010774223183650022792003940144155321564391800955283953295265550778679084076766061072919733358054333697910991065934626555195973498587232734407359418436661327856667423582606572674772044012935167843117065846181571658822969649888745715862237567418493200747583283511877452602322438562187533566823809135250008228399973684167316165796699880551965328801713454754017067141297277379609636465410979674920138492905330743114613934434989846642710186228456572175686554882746096205702159155539272341131670621725255875840208397066890431189851528470451698333096632717318475900707158827373013347192109256245013998152876733235802150633702839310463392727337426978153668532251911691600570580862481333114299754811829649345789762400698060195618938235590956786365700257732658651694449214516265025750799486644772199953980742502361151680770764641299298409154914607812986433698848086690486442136338973781135489337555581281107460449449247635165890983861602696161749058311501307748119196595506017282853722341452410964590222921189221979938028509319528519979107095117251681512678057563615724176291915700113091258241489638832657973408175695116983904256839142471758744667119466497004808358517600657793569783096410411622174578731029844233381840812096792208173849186635535896460596684727788108441866184311762372714110740408677378393423562178783268379020609817111374951582395256526908431468537178658988678158853486794738831290313067727816863339731373644514508494087238910957946627670139333503822946812630826215381041025975671525030278553611462972296936531593521063002404711761346720331056097378441849123666915537367883541112160628370846361943640712164346444989013830308655348476049789686060286973754534144965688214318510149952309393999605414624462082868108926491421275252958132554310156854309153811128885267216467692411200447061732207885627216364436466659306355745221664751246179526277346714669555175199770229325934195037163276301764364282025416301469228586583499624126004114458854474266688340740228988895029110525330480706036550686536956595738531620552147323552618841741103186423267349889045719870388580304667091654797059258946839897279454433608912071596151160264973945776643977406617259203780329520181379776620660677834992098990660676492658826181566038685389938427895670280478163518582998451323049757376875177704034554386564714047304320821437750493813240070168432716057316966800096747210062193899518156533054443473860560263891046742341373260664366356456652861765022130131645596777094531332293173024434890679866158316425976856729734514900425480441448036603466724596497263717616915733054297149566893986583769595883682378643127234625390499394740449682650896336887590002912175904259504178435169008900262601748591021095822172976241723932046348951562431513793635640336033331264763102507134716694857710184884316266134048619188147840538100465075039690934082384983430251545294191601115019266552864245960951820979397403373799752162458473659508309137609977359240729052323376537685873662876285948602496285944298716775200684827922248624931361020342947201316070298108964525078107361093313313281406027214745637521794451897118303027593058813163971658762141801804785540071477431451405946412708151466921636609707165314735023444064708828883843719584909720783658715732541297203028042662310472335767447340016347017241238255230919899996349658395489821237197543183356687231916217829516806775538712995991022702962909196716888909737787087939824015229911878358038493492695349651993288690004415733476771398754806157401385165656224508541283370812863614897437903282528868219840511496172246306477889793153295648132058149224240349561353621730314677158788332652172289211627592757940041289528076290156166515122231356675744348709146185172400357360113741437425787651541568290694005391518529587042026626733203688120513776849337306011480167478175548589280805065186626080480327348228081769490200049283857190405658677523827773284508998567242702648662524525043655408079509633072192187807677880396001968756613416006281410010755725622472402364248894897717848646619313754256203936369506290205828238149575547749269789491127219803647817669151190872450869972669689460076155493099250240290010496788637221463530314008330618671603206586019650648521405087015836068055653849576415865453760387283707483061834247631645814018100882956507954640524939806696760254087856779579140792954096427237686631648994100402967247048462643499286815233639007178802431564190014898816558099220332182525194835257076402504259108038558051716140806974398557617184116551899043944336332687593924777544776313844785244501563642446903097177014050722745761526424784081720014965348799198102956842797102308528011571001842022509585903538315831201843318017890632728075704170062260920433147648234472034192538970973172330579077713029261443515722894041723969664616894779011216305314237356600443720802526010715883570928715022142454494975548670585661144327291249646106406001326126427382089646125541945729761714385075743979969154843844909462062463385438196477536671712926114298394594546705392494061880997353918026972905037202117705556352833931329940145702891787693759756679944678523433979554575710319128390466229001449877326705899932542977951849438169992550579204395830004851249224444740492413386705374323709684946159371969157352282160415077862370543917566216528356364728013585263203397491826098224992682109870177057833834058122389503327926487000283673889873946740995743932956635023359028471023444050719956422386827450000850007171777523037680376501667864987032706919314231072107911000219482808685371371526520264818460828472546313688730055474365557113085539508754334582772111586624207966954283410912625139256741822788369738292782740277932387464563269756679934409960132889537287117164551449341652123603619787282163032079383372208064406252854063736248313938064236723854035458942199425090938667873880895164636709107138736247339364840603349759623934373263034952385161681372364594629677324365297715142233940847519018345622914181998589774745807558686084144083929211064569879094791500954482414080272346299877662859371271763629314478535095114611140298196075903632672570693620571325809046358505032446029812159487309479953934476574161057991331522103939488788222506789079679272050929224864546551409530834305688268411110852066386239096960317389333896364299167081083651649686176131139241727328508542226142053994382989246968812016814822551557604786672360287710807491588207409927434777372930553007284140580908742909787155906071445600323778616384649634386880039831468378911132796326144380655868130442392190274113319301697579823972674821679363671719011101145439385060162367146587483057203927402211053517893844472350571203102057949824203738052553235989412816026135149936122669484055968218734516345773448695089017420058464655243924665627730693954810068139430430674099996662901456728417635896600550193841082454675340143183354631853549405373442432065883129261895149545920448093355289798369670199344458695651468062026071664025574922380497415175484581267289863519432001917480203822040189891730529064590034377237478218011532146353241349484424391090972443538728913253322466320292881789104619578315497818198753623286078859128577428942915440766003587673495154392107951958470064509105195219642399455982173293222163745354598476973871757534062641519716415557310078189374816987366223626388063531535096624434153423693351441634315388586067016291233122701321607588731825546273115662772153628216960963652047053981305830170660925510068658533046661739671990709330902640360765497609083421816243751937937884290971089804738980511125620904041865385708041222188023222247501005052427778519262797894027241797436332629677788800548120818952710636070894125285746774914185780387469110519844728794350401629937347539670724809438771421409699620432798104923558143960628613834654611061622783556187995358798694095306622991946134401735309677511369878057299236351348397258590289130861539706217057134119754896269376386493700076290808205327818530347115166160010350148713328759834242833547693159131507535596832031933568446127343073720764092203467847874073687151335095122917628907899458480016000793213298821635224135845879009409728416353846412177497805570072877419560960657490047092802525002942830704988018428563546468201489075990861424144114075914873540086592787016742724565910783134794603117618260529719780887984081172868220988791930976097386274260720973752914200976805421803335396838112081579661051109981061510273133011852785833559339394037111904606512707102184964163888742861170411138746607688327491941567932787267677534547140751327038517334829746253925055968091083155487793903140523832269525992705727758774007012937767091414838059939351242300073401579663890087707598698890129334680561825623874639468675843918389590576639633883551483650256098744848038471343919714779363527560832471488125184423100593003099029423553169546645731051271583884494949444317612389121008255259493854466753100934241982183273731949152557818521334991950793326369890265761410855767057051833121457646015198334240502713275223220306277613857287287575521193762077951514756182701833535645593326378826951544395843447709919096722483480516711745494831067051101466330321341216370411662834877670734403902927681869986626436818340455092934718191995759527071640524227871067854290539529478052626920868850397353488432688254116017561517045428443981929167923675540158411460562881377020472896458406829882269267295749721715369742794431680868874021750901570450088194241769336611023827750961611473982686457712069278054024837903890375303786103805268081681237663677587988817887387091954588699448837618773147287029484589817512081711547893636200426748346179228812072391787594979171925282480022529140459386786794670967227576016732120888191423441310555816462401951695223714577979913173103810832685948283384522477761673678724099100119722828577834643684505355217732009434518518173826326286297201341339312832132240024801943809582904110451391134449130590906032959690659046060769657316509506063584690053995653043587152097019238750842855359131243455373970320964145889419251672540463592272227802473537794547323562040092053122343389222927178550475952465185748434611792971089520601329544168658014215853838220789059762284243602572009301768286235144669732122533945375109215795500375447612384122781272985379247625891077448445772553082306730582558115173295390707847199602619847208675532271264969174072328728757729198495714469975819605017550989853710465857589374465713838662827709911808043378084649222081492307062470777191320726201796312999743613926948685139749894223483605829194663055968510482466806187521555697299686778529409442533015377246593455077018154078482938395560290357985436311274169420397322282850031028734817138534267502093547381388879439903099095381567192201102632275519364685634744006483445723165604315033122672572339953367741111184206705853130023777075112046945687638920350080904239801441993435931318918934171082647932131419587142306214137575846242873177059883627034805188268678356086699277403874449441079201136254588680654050288980999866869871261808927330143275621959348712018270091457765417076767029987409144790026869019762516102630714069037725451923987462944200605926897182261289465599621722721660191192289187875997353467897396398115660003442548488276288571016303031782837350080540832909287703866478172303748042690413030780230380124777068127277727552011608868989542601847829523148043462574307309283232020775574555583160288045081534782232892353988723904542998395567412430727962136070211099407639082757501471981457029085325178826954827141542855142526741166906221680139540206372697110556862382544155796954563967098800970321902469638273545928827068858394080340327210360816061332845377867059191381426184177705900966845409002631588593398791256144878606794732282241267759816282172135771849047861880869323052666534023811226282442576712008624135001707567025154516311853805705750349003090331706904418227559403301347469548165935336407516641984313262066225738273357768881282620423842157802975709307794524676242484274712823292582763939286306765699494510622876558396094318252807291241994284373052315048050420838190639527417553536396128096354491239868408322498495617415182090211366947722417345399603605145693624971658828380839182217884680414319061293364168289964686672939342790854194893158258184803026824457199002021886942829845684846729345228694628780264876947195142285149084024239615448012394455486721523973100148160325209058728671980707767998111034743675196860864998952574364711408220429417200919413783812960756323648914721235468460277672729270506015290646264354770482740723830002710953256506170743761893390252557486555769987268518340336659728117704730962265397309920861749850794131619501681011565608523166704979684763045856439144272311848835510501674062203258567777672594521620607528215225522366300192065323175928076226900906737025385133774183268963467363160912505461252134073254679921286039362579326939954207754909554185340828180468100761077361190719617984047800612488327417123568323428484941153932813008349628439457604812596888879847882836192970736526245684332363503618507485942397664313081881560635885723239306173386959485051393269616298967977894795461714601339069124042847828379039021608047494456109231599578134369890085227574363004346967393746800087459353739866670704318043855420627635665549569838107996944280560632793991415849615894952657675305595736112615149539201740520600415806700836997553615063584420025281209167625388387357032989584479213492717874418287589695636022071189105795080705093462970061232272167863004437789678067258457205565999677899279658097022715076380493112176609251782505614116910062072805364764189001847016233571417193296911822105512830497259583230782436799544804651749467441316048404692727923663012362518338271349438520083038199274486698872160840370906101080697151136482679310815303100647534312124930246285436756916497485811628441139223733696215380148317238324539067549547372937662211743066886330105644166321656192088738850764346818650530662913381161663034497021330782317933016385158030518059696920136401246414253098154728702415364026689653355538731871675934578948773932560861023475052168121376267447478870121096571212278818178338646233730449725053490936344940523870287591460197643074557164555372466658423800848740279707835968370659836048210215976434115939877267985620622005975847650851349492914451689710987789122515586343820955146524904387099921553197791413863880595346930983646570089688199342892335052352543365818790993581772903176185577732753681018259417948850340229432664339415569810392508446662308756153698283985489468542299224946615831756317618748710865478595013868953660905350059562935006825504753761184151011980700096525304357848930015786146842011753306300180553908026969125136559090705521133587131747763470506325603750737089069582166847102643530544920065796768866920717095618068594605810552608977817609914417207169963943574601270259620421119050277420572026058285495553882443709834855875535292457952039795681001658063537857383799065011384579536742496643483670771374322231686571970191502142889000328729875790295865242232454877481706706827960694537310123324882896041056308271887253156861854411852442914014939796662064395481037765591681355809849892435508455212263470668430953655578355980064472028217218255471812078907811750432825548006478046590774127428006549475731917692205958291428320566142649783361621967493498993827633376164925604256456915396448269521809857631559662582065701568670316660781019036263002363895467049158263783581141548176403440693579613751091054608024172745007687543530826376513477484255300850802393244407075771527616551791849653836545941399233612037487595243581546520710346621560906573086293202089626004686662263770576825011313851906397289378154760736600926658763759775961629094589385952376199845235778513562622849001969321247188719705424641612285878692478827142521821343234048438095083421194956867383818852910609438558367305570729290252477000975991308898886595733241422676377026245402093912306576930222013493219058049801720940845693932446369061022701961867196907794748194841869354545072715722161656543316630292441935835001017858396184155359068156719059125331197253249221923650169279851785132076449326569820663886417625093219131722126200833552128525741341317573089049874799528865033571216664028368598095102279318892015223906501300092522870342688033797055320652908741876552216967095718148090010391128323865876163888868178454162645696285885828386512660950085799402078043898686322993415062755326659006981506850550027922198836475820676278593338401685651139360446843284226415217423377251595477131923097728853844252050111890421751102240415482453801524715246355777874533056346959772900472712891570093680341673415874447986527298076238420151527663531539833111583087205462765280948722678392985876851855938711680875109120893789079966638772702829135475010327285632305087713082492971280733118146445575126141102597841184233740885542647886510873099895133730156708023539413001817445512586797946395447715356191698128239508496480796169383775883136614676578659501251036411150509304649738143154887505863594143633696126014025337626505331343999112891788446811153482669072894537824840903683729577810325108837444541195102343461747537303897540332998569204163249997304163951235764587097877255127075206120474713270290319105425654149285556609570932600028809834095733077070183505638706442488986273139374982225249591977837890193155563330142425143232275016817480304238679698347969793870329245966016262937462084326042657628349595024211896651601671685919236088686311457358260963850241949409478768920543569070131936101238900686815238563754399736017772851879870916180053943260705730065425640278998575107912028397819876409823036495442592663913092310392401383148895108323038562487638232361676877958128230817053395755451353635146684291579111041565918816821348901226768280584840659398529192419919876761264133631468562004388454952000589559226796802219548278829983432340586541845767478145144210768927257341486644273250368053168713564246388831544660226361040106365560269001191573843797179225893085259695565426603264107305489857428382271159147712266100507033590470893014661973082968136393907114267561834772700045332483741847830246794688133837420932127070117767705501578315006027002283190506881530717710896674001225260492367332376128609523150716677825216497815931023184406108715319978202274359525925051250600359664330831400862073657958034403757822588207601174689809525490731280246400256014463701334783148784947485653464509152715838960783257422849107160716022356469119788254743299932679500504036653647974018112324343193054826427117023952936364792344038574756665706793477742131167424417141624708545983197682187409558859943558843161195180597414244328952198070378164049494069408693275580740256214497341284189338176519421602200278815505108529012489080102088197216219667291100489765015073825784609618340161148334897484852214504716456359649140097563687798405722177010876892194836626070745368938447495531775246826940799410705099117250889817918420539910395592334088255797613983639516663463112240724596217394457858050093309009429370351869579750466985343361999655295277775510562279981410732779202822990640999421231129153447762494416967183712547615370183728562287372204104458916147788973530693928239173696116015703783250975126245149659732082278854668382236456577321357338467336461551797758110643298980594267561182194360566090825399002601652028737095971180025662367290938386365444617717048801103933049009374944938604224670679577927190768876661026408412247146974214142432873088617027915395592453281308601998713367694533325425022475674237935527313098536359292931794945855945036264155250325573003425744533590283003358195732954267481394788589948256645308844249457102474768348997487939678255770045096560328719093077954761621182394320327606816196262311536405842341492770287496040463727302371238606692817996832763377757255196589344873049296407983648847811002942077019382943174486590397254359650440703560809435151759509471878560671650011502372734748161941975519355284287565337829962412842003380197761688480713845186352073152232988850516290698876350192555650804487144832123002554082163409789096082554326505618829041203671165397020114138264963096252266984610127769353253404262379712086760842457595037945267142008915126358794916702517916231333664432405981309410308078215032231890796618379826205712308977849385290917779766384920946856903818760106416456810437578661690905809401756486289337809777769677031892490876066364851636964278860366031008794971789416951563076194404431513802115469013467336601519809872300143672113826910469164323120970002821719230794904463980507688092527472305116538247951157621504825787525343799644786120547525092280815773529712614531745656135515061192789120384856449141358327687272232029590738587063088775534116123202234996065398349891846111060833782228899505978684274656878800207267546783728052147172977174748479836034498104558553159076250728869279710042664490284407307616869716928768083045946610102591109751091687525500224941525037512570324567636075027106959313145824896242178203252204071323307878151749864418076479772077219433382800342828609196110773184414737333802516812342927409681321082165102662308206050134013050589672984529716541173725406084866540015813885671770130898093125384666486658028942453295339783721071008390708594372135348665330745862607783678039622516147177435365667588890412693628384414081919924065131158395100951521960831996584065257589644580808026439431053106765275115120475814360471395126110569073375195315253249547228035544755843554949191974403798395560775932629727867575113420469594201220112258350332729365807439554327629412866853631374743932271504470019345900564633234633422669059153112562764199741803695345395158270666114586311974280737264162851010202492313317882627274528052524058799706197721810088512229308027369913582452929945929514527632016936428912267727588873306117235215902834043413485060070485464239420407869777214632330386058429217779929299631757359896967823321898066928753481125875935218367613381843282762727733282435272407280126872705313240915258597037065052294016554089860463840733777898254081219792208376605216335191627149208024831186017449247392704590441383937420893810144457924807695775342717526297432339668532268450371885702732866183239306105132084881289230619302307979336187665866549811317625997041733400596504116920858851470332624067457028266523747721740529560013148122389119569602866627018114075405939526973736375001133811137431592807658153243429623315903789217785166093816149200265172963709090545668349362183875008476415672107175814762451426202187324103200504745913837294761300004377323567932321372180708943575720880475722513598714901433784323760942726737306895745553685161952746647699901467590933983928122401989408484783125749049968695209688745866594218206201170965995416504763117420190521218760211090091638745038677846206499621620108486439323979573318286833265822834129659189146519170034412762840836035366713530921793681212075120679221625600234939470670310413766026549130040944773580119524967219669518600183048493595608232310846586328054031292674404990603016095396557855262714808544313577883603981349768984652268515554339091392386621430801929812027773427269472856187185920010805019990020234849073836002218573497815999797710334266968943339674899038936229796213522280790236981909022104754659461233935787301493572768062003810257550304312977950003071988404891103343396182281738890538567918635431565381244303213273009052805056632308232135009049853997958721436875127605353620093643543037607583085479879629542634291107064876184601334401459114954710555300863885294292617404852228168039443813060922830591136695633589692565739583592558873402363813929629929969240076212084656223848192412394971127354437225062925076276386280061166289218062484871230360437432040030686111712613070754785590516955432074757620431879615945452965428190253442414723982680546290250986681136686200932549497931458795197965272243628154197120457722671058197888106602487305568901179175906261800647143816561143879492498565785020193532371264915421490602871015640372000149335484554784731239986473997717812749893696061414608280958595658049859252618585679560320100451842788644633876126744444784139404321023139549048706664814501702012563853482368733427799060337990119276898180015523902687214817548645496521291835495159434937031194954502427226176597979756677797033367361916371842666875254642230404167840551765136511425843849348303034464265029401601385214620304572109211787198751541049495208782836414504617617946018830365813073429627348988784729465205733045081959129930507668661357421555106910422269883354968406014267000210676067896786991770024422981406952288046361403803144134900362949024831527890326255010154523431832342979284304478857931230386883696886187287714160138540468146934853870170408322664017968934387445222321042543444334983180301648873791535564884546495552294163427740286732107423825379925077969711273919536803258207235187490185677020610996731282427720505336282795805398258005437699235740369221446097718381943069689722454083300596750163244476883504405745157357495522416568330831779096426182911936176130899421389751796590749770908593152727286442900609747426606675450525728961044054620869503563922826262199558399047649633558486258298049657790824690811296160238262572007917516255543975783041376930833054666745080854168603441583052838364899319006651500434617880027517777914133922855388938523818346437307091536070793576790253722408676482847922648886378176040757526199410110682925842687735005001427420364997486285203555057082383995456610549438850335632411346546640617228114603110310631294848114874738415652867234237187854773830522826013776830417770382526194981317218334369911222603954682099225576382601688090304050753584087902616474054948946901447121961482608567781713641915800176086611885685684764032936916551288558296920365160648188501043164352128587197270633555984647788283788950958173997623229684831761131252372658901459992681675557405543413025555102878104180695107275409008297394095136799916235773349243352303756464620610956681872437018834557622773386068508418555470429395892507458648088406111194926279354943470016110355186086113479933137331727474057258026850246810970466283724650471809939752501470433813666239219475045131973603373245874503507971593695107145868167081585920877782416855139293957758037483843949539066744096428830218488393835685139727530866470219768776892736700062181493619478588922088622266255614980142128176530982450875780492080196453964900460306320644961175507578281957672404301928330216571884522885008319374017175331179536051375450905152323500225166163527103979529053619424657713730420455691796250063812268307755901977526965053918624641799123761282408818821745889056642523115158087264239511792100290040310436674745274526637980348721081442610121040937573774703314829195662225765428469410413527500438173854087973458166527003883819777179428630309262031254250926434381553307958660935793705726064456908734570670840760884686585324077934506731723932242776919777296173316998727869876060347776556731204653187048546043502741120346206344253484325669132919303803571044473670620251413142913589802340641133586354125683215050540996695089045661288394677150748273131281960392960401459064584060686539184641109995438559126676113238390264133005582741187303021448564424414051462567252851553108643462321336179797984027619923990485910665061863290213948566975259866150197022132729947986571907855424155797612279446923847227722968109130966806548282295474165106890690581772091592736199835465925802715937421370339698295110437637202883385245381590370690143410460034893100346645563033071970376100502127530575729571538547257060854681026119613095054418923741397702709114438929660418577075622819471900237403406726253225825747668622113579267739468488084314242283314067480529129734004371440082630915016780398827584651381291200688261617276324491663825703770160654278872448928104824084713357747288648703560318996504254411162536391384005191523099621482209506105121893705426827540418981322999453097226837379923929361528543017842360076149912239750970961238061963982786491106305989565025280914081130869277502637927371710020737333729362328921815541504264935815834622404685153027716092706579668555241370081957241061112789771068613690164468118832998718882660198311439143203620270439241296033387535881667544820247541961885516441437436872799392201892594244721411094317217635053349060186951557217756282479126031385348199404749330607651760743981246939025362290879274641546135808898590679527123814114925412248864897787620330269906210548077704138313152853658773979291990069089634693182633784893807355422692870028242744989918927669030258292339104301219114474001768659399157027711507574799647473530388882407252930989095949344538372812474952850973738484854947586315942780759592429017502271431599508217431333288829996734108999950080429972922269043859206291971954271806923146238606471422327960446166813747209073943630146359139183717959352674471350035620029099861785538359505341142626154042573470545628000104766377362049014336242321141355282453989103259929140369916752755921554368620451286967019836880125918230035871417160075484142707032098913667708113034135403408346263912983893018368980837622761044231283006425047579975771035971520790548852861266096262395803269059441556581318403373838638005826352285241469863440085771009486651393856021375471738052236060731566462030853903863569983285221489103176014052082332098615512076761281869845228943887948920143466221446325678286147669191103976317172193272569868213860320308862475437434559855853342831317661670497454803823529211224352058264149601907891733617309422056949650047686202563131726633315306326835863491927644186523554004040696869891514268928162454183931153294585881802475994498044253387102199561864396998442202314986117228359808190866657087710724849730208380761785955393643206074401722024204323971659810528389945493198197791830665494184750946598162815358201924972865539655880047244778273737510959437200480063681169792001616456576022058536750631700160520232469398654415917656990947087321155959991470539062630436508049026102742072155204287483840195008604939561370977262940524970701685719608879345086334037645606839936445583266628313569055767186769182376003071853266490611871977098889716050424904050853491913443461111477160416515669616672861746503104635062463269927102634022484975100683958154533426489483333714290336643038954910117358686983942940218236503233835063592554329369336484392750084071227443441882542030512568084723148563363054513050689184239682219387929643291352273483997132403435093758724920381694490777819885272698619454387183518886418874002029848674785443778514156376172032232263762129071792965375302239528272532331790381218851670768394808203669447239801731006743963557080970140643678900333736941824722331870030721596012325554852368554000869675255831939494021409976814446372020654610187759574592824319352486707455890113764325178139023299487139125053588188415192632653308700989118209144735428229971356450673788974389257708204126201137962059824616913822140154075939735886767353622691066944642211475916623411712426277534642091526796268838832328113855819218668278724825841721959329183977500614141474604117142272326097406550004655172784874959213928264983592468624042733669916349100173296336943842049380197320476147962010809866355898801194361531193066647347683600845536074559569030699764054814014072822892184653966840018998883294676399570033921193670852357016159571488041516323745526451133051061414986801272417240930176708200421318806173312371957065912772997726168195502212779679413704809477272995304517649253503675063803128215726683550794199877494442641169501555767680626254772925813239945973608557843951758978384311557877360548676175912119079474168490900188760792448979190998353496904785647739835296495012944607173640817313376756721787025611130122345423462247300925627689804643842205042937342061593825119949904486873212847911003708892723057670149200399283897734395605209635788635834300425130139676121426155925936067236933578089650272292308949034793439008974179814336416982359808886995686127346222130703918317873662895581927031228408468072636969888193185935588125653199085260070123913251890832925364957266921083932469948969986360421038969710871966324687760956464509681118169692797804890107696280587713578542789128637932748507761130236806255029195290608452516708774288576164910627469066891972474157574060170525438044159428512238465866305120797988250900862262723541519681172927089379706715821817671814296886113348114323555909754379708936423461437070443106960021736874019987053280027858127691921188290822556265460337357470859398992717274237574061183280493708893956197103846962979582616677847114732750758549788212379099129229626380944746175809708657625461135673536758659053319437516838379996152504912065653468105261114018528446744250127563825703656173375946851511578344549451736829666343527507122003670601743572139633366944988591338567195879363495223547193777008732774623301783768193049133191257560121664992861293160114650624983667538689005271298187754629709587554413966238725386718809760866688771448454474817930574655390013426188016307977350892072229969417714213246157484878157380450563363826955420182424190834343885584292736978493028743692401527111006828732358159377201662436911830916859540110993928790540123933524940673847662421008248470290918000569805159890011860827580398531473836169330453463329983948453294038064811356926944277298803042867843328993171838241070105911039761514015433421911129640461131370694262078469210489611583455555671416087554090882206505259525526341865104459810118885150862193750593114291703557744836632123313890997767825215116393753730672412448893739174137368590255132268007346034298995418271527675065140478628659797114136089579089156460799587222238993958227250410709290387744816451524444367751929230426843736264637587224211513873537196067782577245719655562738420054647172321914417806346987017919154815813951358633912017299497794205994171460909069770957016168566171889599241681787099051121419130362821809140259155106232162894085519730396198989819891078902879532127269185804667198231048219782984763735386786903147446764224203218702915572020839964794861671141462376754720600503314976727297144926211966183347412907909508504198725753232518100135447358853993673030591179733908562618356668056579333633782489821526961174572253206589686431896026763747564498932058440455869569653856347463124245096551020469531153129138228646045453732598458820764160968371337573303909659083015646400210879901392613238947278560968084415098587631060947245443016218626721631622537886421822486115444611853326299605030560797724008423262548595200426593996204349018953245652236823026513556597919807261128617386337190540583178968451839706653255037000503159730507889080932329996014851026571033079394495507412712870847493965576387871308380370085805541956306379505836845284316489223492557889853979016220114364094745762575301497433855008680857624515734919563760563421963504532843689079862296978486439875989413398959982370782433361293871257670190801797110072821351769425392561540628794893753222049902530681267491463132152519081829764557965886726003677619324250505350857642325885297579510722158764390882380820880367193300399648018339647516947461795332454707363128116160216850205936058889825115358241362445823089798832363710969471543247627578664331359453914415371328979314838298613556884810288758966304257031863286935416173378468766502724481793686435068289274324594441157621539928562561208113941933360792586096483690560291053119494253743481930235022676602586300551047129693459619697040054982216900987957699327673087041552550330805115319007880322916195985508057703764130144029517616171263698553982054754138738869831488181174555044922106750999394725702701096935380465727436611924453656044097520534827859869324024844683992827974903090800888730750361058428108102774099839779064283683961838988368364735880222682380405074558611609415562636377849994204189861557729213641736758802894943370155102929221652661139739999008701255409988549526133045522092502188271927785850779928031822340374605692677337853775586773251092663124926768479360057477371510784973089750797600739123099563150342654591383503624432728538584699339292556107601455395011217909668775679672356839463119404488079129191563556844499813194977422433745606864234628143656215752193760862767644440015283179522403054653058788043344589749598346313218639316903694474455714753215509034554088899575357474087270591260232863868457995677663878023114379081468318479478469514412806230704277096092412045093944388811976686089287290133704943427177361148814545358186597076051011547627874936769096130752208445015486247279982614842227181487145085990086004817006909572624010301116120316696599435253368675509431236065656416855013586630920904830368260708539994484491099925288843630317333824620395531522525890576551197450420393821620593068507514381237103967310778739027782594736019692222873528373383610624390754993043347059560979397740317334201702673205182933714775590541261177235932375540358818560367549647275821845862779583965735756981007073995627355114010823814338511300617485742668511644294719579740350909731890998658748732366358006214899121544053853817044671018218230157948599600195944866112537014992100811868014698327857426558361406693958512659166849221872339473236090885501097458046325830846182230200203270568710824780474630717300815434666384982840775629969900969111600245242679043396100018279891512377217067166703673046299009678665550508390654716936848129704698846413997597151241012792851488159613946628604387643742943796481165506413083384003396238733379747368495206464262836794527922113880968780155706936945952410857208986379472639069440347824103438452152222074808194105229756822628827625976999735660262921564748502100006635977477924045337924341059379607695642173970990796192765065556901693640432229742583756550253660302690400317726803577632293603164139848693999511943230289449616473620824655581175601935939970741687585821287545084239346749527097662958607940353618308066957955425404074923633293265561122218892781986937763627338198441402445822766029600526894444269431134711064479047085207533571920615676775177326971302163617857777212710157548431249504909980169325790421079913336308294641927162907081651089680479453011695470826075852121878866116618871220460370623635553825857665928917243420644242015405449792752214764555001062388515424484099197732799844312263224928175418536105983616999527852768041466010754370405585628485202037015026059718133421069277782077925680223970006471724462448012080606729268802048224113293604170935713148907051277338842478975771268807635743045323295469620391531506826292071528194368536700274489300453768476945019135063801192647022172062358821505711773985750487793811527875826230556685035745525029781182748480714087729321661348550300812898979351707343554726991472975924023449292291882786945744191210152396209193981630506852706831947247890025470060306484971666563253857213974252530081939205479493825567153672804943683546261360796174571689197473143960645349312510656787335240653915179368279348821843687774812394945241436968834307810357127829974487230667753983089740819369470689292378875055845566038447161425090496383150761216524351131041327956283041668067097287154583132949055567221172525018220329582703983533414662407175226339435562095171691992938147870269493698086293760566966392651281050435142997017833477831180847607647168810241486222884350937374482487038480179569120851189272651040504070365503671700609496707696579040794188951294964953018481243133857808164005107066315774632257478381505095231838276650722058858389424729253087760094977775764299460142972974664409001131608295804265216696683384135233738537991911705578271184833533884452018023636243122444103021714434298209447969535112578331153342907688174290429630840732055066481057684803200560691805897648492316962423707007963872872436354283862096165570821943504285113797473314986837754532766160827030549023647180254913932699008489185575343578806427945812618463873225955612460820560282068005468476689526230005506257738214542829179629429523038669915861088954807043270393647356075415765060996558869354397830717981638558511755009140131631844745704342822649501884824918907471088713114724002795717971020158978411961934808742049379092784946534210174871579324344554705076150512712965330236623391968323213642499599300704234804553816916678769683269592799747028960588473604665107031523685198183686599031934806316375329131651439850271872808482860013308966595211213674183205298277556358051252041254397440493920526066690513871118191308317599338948868179386496149411417257739040519126031082337267949132255369318305618917338860678029233659505700327727321882840843827825580760655279053474240306757405548879227267652389865475874065732988464512033226917728679026571199021032093137620413579342621312231158756806568074067723328246189587634930931732642207967300052975147557722885653048997736394299921516334914286761998565965654612274728182495642346816810860465153129983727279498772185008019038773834113191602165068133314491534422975508353417455499198730220503824742362946264691829251258139908418116749871105714521890617970200206797805366088377701132873650022630802115062204209359016774693318586229782118984153438159582667245544302281120979605860252766041471195780070051526829642878465955370803656089357482931110425660883795120496712753638132355562437061831701226627228419712836450849965596589002622994533500684968686501024338338086013953194993037680469914822305571947951926992501122088274899029294535270257653275873309391645117197171437989859948003451976389998759970641279463255204199043431349556929982359846271949412441044040882064358523675713141641770349906544103670114245873611194187456219557561442434234813849984749018408355725978804121690038357209606990684612903619761582414626923580776049791297290177529904634591071819974463148917979477735949497666726372975391511616661592228429566946464749652148027664803278519038970872197844465023273863214125899520671822966504965897994975025836966682039381339983878947160124950077142656011701699205137051533224847018181387988101231911477128390895556944227042384884625753929715321517906220873328994096988824961708226752706016763364786588743531620949258757214853553728759646010296836501156163698443261489041468708990713798569936474239868724601676321872848013569018587266160916522577045406418847934778667191899399113222168476639654911713291665974654233111262796602354986453632485594739672611969414011793171129834527467697528991004003899597388559680604430296529809427874371587452538540553239748810380545764323495112395188505577186762064470382498849714378128295846426878220789076190653960593099759993796455386793328106168402516498798211263862521494897617556970767706819622172089586376831608163786818075341289470023006737741727248220909476245725415721923749494421392273434539961269936593667220030772639560665404897100033247810259198917111896774684105188635385492651642015182744031563713689491227294450414582566301177347483704780050257759464103814421248299054800373876014205757161812216061764273196796548534039751054404659384556332714297990967941964008288782104269410234945745447352630511956904299672006662838940909019956692561111074843205520310410071997629517246641450138938644637657807844853237859648814234479489290932517259804121955068012483054426340773778448879660788989005874508557747224014238113527663702381692672301729548152424733901732937861102005584238642923986513518047971180321841269720572080591488565955537426246267936516749075268060700303265616953737050334282600019625035339951949656703533577051816840709344943905735756959446593410242503510396649810042417630411367017199165082749674346786556336560948249864266208616326478329198343901626939408547267587171527551932359182439211128046225873724395892529442559455619003242183831212448378259022272346265875824139546152780683993905677502392303602707852557381789467008500962377190870388955909388316282797668393441837050392819412697957755123060081293672591098455203931621521860722504289052741596653062590321634747090631001759737635246784140810638506027436654539145488158785587766319787987859840838272191830287570658447590435266323605685489087800530007631119244237607713955925616224635429231506678703983344522172164784123955049772381884961682665677833372255341774132361026425864732378789702707616755461080241921069860938834277021333350504483607617494142947965294281292324430058020299652044145495542673883100982831440392412453690125864405282426554369743458239386622888527754573869054492493341108486592232952481078662037542537753868134748596528630623767030944829611680248470243471701858770921127514925864442722630150239510704281567422325701615258359897593459910588417599110184733474750928973264392087866040411634182539411784844772466645258746547533411435571666200545204407075673483078838966542996170648627549151161859185926209794012291434429816486804637737891885754563567486331971063415152375692953483060049962910389101471470337235830576111057973012711464194421795771901795014431022882872749037863302168175996207847924774424493952859863453694300074600009843209386209344949618342044002902196272906781064050057914282951379364055254502377415055942904798517941295582022265945554515664640112972376455904758206444510521508290928331847764421312296257970826571461993490530635846459569946431195354859889449730297906066329435949287110696023048210737067292003307924053130110899541042009810156488627962622743748080884284287626647363310238589880642569859149162706501886066251580467323563867628989899396305664021815435327348757828047967243262777673572793136128120703404386326844506309451631814557305310493342762679329813542516758344430341617942474568197938566353858999917551421181482822792627921283802806360776641918356763603702579700140201805183655560352376147304939516793269091127783490482027380675712581841874745659225024109919737730084091011347849431157835823074498458466329279748793086283622426713393200160524990313601538938537444069180863330066663672808007543738803446090343834849804603391432884765838883401652459208765450234754965507252591656929573656780221953219789805230177183592860613362939727824428812651058320814102821645814443468346701973308587149426504341262175979315959676481934190399991390804855991664932464946300500607629823865111507402562321756600367547173671486116885564425437428442329743750085106498204546114481648906769720440234662542451224784636489687862946983580238391897401260491495421960717188421587053000216119217045277217067226153349142635393745316442396085110089147873227623869301666856432302767943161801653701184351279731999851693533013687730148360374804728759059386726920205679055508982362402453158815403876939179442127487687242734613364153646820217687517299144997960543694809293178759014993838209036692515349882679512026658972241354449173118663199488286531396325855225101614037486427452513151338782941409743307331568027448231573829412426055370288097342597671057006244839093512160370144703807923717975781891897472940200570029188407779200289859532506184446829271756370946946657446718759684299789915187786300981190261968907247834642807331252334082738938499212585181602373562904478105943040757561925674669422857870288262561852168028390301560086493764616976532476196516931600301242472182926433964550194175226599362179110831152524138838488455650707730034745230150789877151406450307936432186819448081905697296556730983965515453944475697261908320952581734251462857271515287789853627271465384784171363399602093092155062857186551286383983898960147461821987439461792172915980547337486598022404864058895102914865972298020962841505619652000070083440070858003688410165600779494654979402677088374265780969344470285893326528187167804548345243047496715141930003832781200252769518491918820818786076659420283389959971787200615014434185782553579870694618756730716310473611712858477950902728220927561078202562888852498772131217672388580963427646624724535947317370693405464741455146426544711497845593544374162550826894343912820443709767357412704588478666303407980813434075152462876711743539290513709010092180358791789942203059450977895096127977315357264359881919653569725294800965213217967852816284396311766591103208925113692442923452655920116376571150033510059747081870366204574676700396088567867761355431834072501381606491960522360832739063559268315427681563426892375226385635255720355117124084302226913540202884909078474986427060441261701170502115926632541739170846130199040798944196388889541157705028077498663866031547243785182377005777378892643072851123915732405026415944077087225893568901641058210170733546741081662873320914604866720643323931228477521174416879757354817390333977151185020785396542850515981650268640580310347054954071625983590616492922600881150143392036821340186175051938047811517712340484452380707150454785189816292486240678361164371528223328478916913215143138360215659210521018435320498744350017488937663501476000519998029495282512822711763379558516816395866362362235223890379855800692481713600225476455794395530928976126939093672586016282541950502933447021695098752728192645966064963206648187008167106155430522770794217447631442102119954778348255845841336063175525092037468250075045253434876536270814763933315105030233265227879451662477721757837261667370484939204616775759335440616310481054534085184927206864019716195569233100421858768451131152079860196795559293141467122248325726689407306289593900444125953902218862582411248656801000207395873885966137676772788526670902166167174638062863913346855674635874452582546957204227710425910925162320999907002230359846799271899981324796341007142678597872136027471760933065488710329972353280899680651552396965649257980946276050755006759049080725303302900836702180757592449822815703244933636987930136988547945773042556985057047361273374295302725114771725734093582740130290569107149333280837743531293965524107830930371566081940089841248169077530476557564414049706998421293480130644873340882510638134205733354155527135832497269661756926534872807610066460558177062039275727853841721441459824398138412455584086549139336844546655295708764482500109550951185893139552343556635244294678137148736178443500921987514622917510642325199151694037150107288643055621826328767796402683952250811915365261884851193238461908405353092407954503976376535482380154937612312987510601292649833058700294400223521225990139928528113920522273054560737078773654555922208851525922253592343767879025347078933378043992337099213377572990998243474701187553547358672649685537023606303234991722422414795702114132280244931196461998643802166131777669932180312310764940958460441776564494935348954281808591762227173196500378752347740846375011699046588617930648707776919279274391715721847551487184502548435429505018339647646799143203953423507057913509014702493388301242058930699010420663405252181004512754923940525977075667408926570471294755990284160692924630670217695243127335769616082436352962658370432863936331096869563252704550783193376933322577947578136805123423715522249927268270456065751354435646660582802640262378249859514552924436992978793153398249917286986902121543351959862720605342385121043881576121671024057584552794733923089450397671358238828531861320472517562234515534078860409715128066669726439470803720698048197378505643736614810752484869736436637648980435988128178390952317082858679271969860276510355182421205713749670346704913815988593762875261780092958322430461186676113999005361013250845093048925598361498958771019339532424647633470551659428342995861010822968585106338889398355991916793608272219067321079656454527717450873644649175703982646465248236188235574967313582909175361728957582050586078298433543637623795497978336239471857332381635055427315225213835545660659201483446886660929559874760695605338192317880092800913633539485530400744249148888644936266038013573654330404448877378802962876971958772725524282905949490025657371162947452681034368637605297425905959600902288593376963757222755364333481150401621546343385047925537426721449674859013956562933449946500935638802070886037559783736442028258583036407878250920804909849393059482313919044275144145011182783096059579739613729401458873269454241518530943936448182316072796312887689009005493477876806198752452565813160770412725944428904282653943863883912602746038406337322295331241937055920280432085716031239646165143987872164476985499386624191054745839287913424305755237051134404877969208351602730770179980070218651278900590292345956105615292031891333482295384399540190329285737374697458350900781181467755360467960524897394402203114710893862948623500006384237198983596769677021881524762209160838179059842920516024852383068364369670108538294040350728979911823376722566411411376915713106201530666172793579631101581753163209235538962503413716471494582479522967778304424862918495779906021077655077275023258219953695715416906586281673316184311219362445232992137860680860649299641323727601717970400932999438370345695820037612503396786747788464766782207601415668810651907349581640806716485937759567773434185521510865160430648281372001937527496752509263592937822072096067553011739950852558575084609224098785745396458317703468040801657805329379168440098148734851164693713319918013881107133116822688419285268262444642136730884645944068933484926471754330242580580452303014330999950318070732873620017898644750733604198435915775723109146380198302827478861991972079062247005039159592017945382303863475292825666804430626720449465055297380258676316423455439002791886753119832479941156712305272453767402432155223549199932980076348769124386253141616284962704669771629201616070901175520535122883257754778323837154665095974297597627214763341440377050645224235923132883677617608901475637094621037720102990378353006296548543558106273787329323295466258098102484784105543087301119833715575321160411968698512536827868275138569243699968450499000726332670584781443081117240555307523772482754093805332444151252291913124716495671918073754899230280246045442449817761228345741893034748482758632372989955405948848499537693355491391901266915204282338147007090711912734278667925659679741993223633081583683784703507179703370432007969203785210810987439762760240691485478576865627171969482562120039773954063042960013257227059191569609776321708609662134036196154954624231626503103383243461798067066146284537566199958477355157983861463309706650490267097933954258966706042741761887553068630117663522533195274885011726754268810309415504195597503871516483384509650887208497115132362291451029624145723477774470529253780129623136936462126759221119644152324232745126760387677037341479475726424019298901420379233459876507538214028159297805903903482009793102581545934868332506833114942223715127057540621279695122180670388529289437745493907294025245116600060864853286183006285860816073199077026329960530051902142424800133396136801678027702761924398658724355721990988662068687336729629256146389887754801393857378198567503445882217144195698184905434010540149089777049919274968397293930560369391868601906640470521771140622247200309038279604772965779420037454681863521336387406087032953147414151821056696508712982180599034983993251443609352415756837812763120034679457577318916362623369911726706186789126840094043757572877618397001873448784726363580500190127946565109196480908406749679392517579857474609041901653935973369247553264294344168372332106919027128365284124875908146273202857549921612537686367278465805617014375875828750864959359471132393781414811415405886363846823113957616972628359356465097920281657027985522344950509422930344441173424830450297768704151480581379872481075867825951391871530777929404008521784461407945874486910104965106117165246928828883868191199142116811840399791285963844144344661082772168125838432893131240379265627642225018340692850788928202709960060205182581765521115016286982888160791260797373468959271852142599198565098385917685832474738894160721284257970562542873762856699256528537492224893400449965173049841321742796734028833994879960856793333794877325409991730488135289139421321846819810489261125889876372127461908701533736610401510740553726843513663407935679799776540306504722557418270250322384693367572841834807054780068015217478894205620265567048927961749635203651787421228717064451740951965577215107596355090185574124438823152706020615510309509389195048009471605585739385451594277445894147531853009068296746401348543654791403857754050162967938589879766127763000236150583844365399425267047970137943801449046792252807327808697411434218471384616294624884007659029790990293297995424756933963268406347942757691399306234523318875322226552915941956692058810812591588200430757655080055915166370874589370033811654473608791137435050966348342511370512603162294392036978777286292111372989063614973390041265928782673377770560521303154770188322804143626313611241893970809774140196327804161671038038696790624512956437299045857077663360885473340202045717176852771109103781339060601901829562663947627968950496514460187147041261239573456678672582361591558682039952455947105029031411272826012645977785007155949489161817779538567476922604316628924752597523730131374737176239145038701797365842849654556862088413633441810987038501477650232558011865798486233199709062838443469741960189877791171975531236249694394088061510651262671057238475879484239816609236892365534148308697757421112294462671049684038563619926621488686143194758838964294585190826743960900074178991216638232044870221392091439593511733124492762819965803557686621242800904460632149843427129957551295635452276368726491469728910231309344239427031232160925775985791191247557187190247277836524686575911879276015758177467770618621093884951954677797755849480425098201906824534703230644580452885919266611962993590127881620389558149243049106557722981660382739094886731642992390686646046772726726050294522700796285736851573754370781131115060918537616178439058635470162956783880423081724799664972911891128890922920897892386956419450781662088533514999896419021414242801196714470483077317085149472032640162501418312204809466322484081740140193065662000996277117834934157000706808497969886393647689772831754372259300504818322388900457045292178933790891924815610821103644278767225745724515457104421810437226752221953038111235793512494636133476767317586860033633407697351375318469511900570376840990696576215072665247536760808847128313023712542573874057375184664475358623533142178385570109247384328918023136288060879502262479199095601521365461294038962440058973534516846657198562555941590554908560814698495683692523657407648635627829331567520884701314781546175006852703235793448027330308591498850834569914693001351035205619704095065420251114056863475161929337456752436496328657448239480336924901427618587328187926128990333667007424680926755193640668214266654698694486874278486741182797907795002087297291260369729786792804164005732054147426929326824187611119863541619656977086040793965954238402466307843055425284776281302156601058347107354475227612627856460617546173690073840391653173990791788358554259526999309011999191115919735004143793728235668796100255708264747245323597069463504390618216482882478243051932647838656916550338998556752900613776990723737789938559137823774007577477563247427618270714214128652990819773323267320837950536948389686610194216896221939537173593478406694628017880313334032624783456079829755787745242385516450475622298241872420107800216109576761782825386392217752226917296620532877860298457064785790652379018160713492796516135672320075718010873005818677335674867066999097729288570777267506172851457740427218976664488589178475948267421807306644786516531828650151023661159634431693619097881345926724044506442545452892668508415221599188726325904819742672003547422305975721761186495894985684733808775366837879654034956335911539086207666633368326914237353976053131296796914033425199662293820214399944169974020370965364320244319047563808860834058211860769618780953413549714552298163682601667225375233220667736786279582382096068168241240770567234104673557098379404752261094591495443118383735668949435397619867585670444314230462016918660675470950384426529249280121313753266455782739942008814356982685816780445047324235856496178231427521263894492741059849233776692857906267478199643065697969524783614558594219038608228158882893355860097777912488569841372739417812732023342280152012188479049718785184963391195555443818886446735599505943123106722991996863419236991034379685912150782457966937092839694747721251676039093859599083214410012627748619424116279171543925355226200421207819802437312384597216531165617994272525441383027857425092931225780007908929197123558125102004600418966924508316188761330538078884537007164038420890953316046109531006937106059243135806534275423596907896628026174657036887134084032568746798544402938682823457693803522401859733054923109708997485900344639610706789515515520833821081601877607811847045730056373363886989824558805746824878603591603103511810163212237287731588220751803786354117295756317241725951509436962548463429700684443220765161347171065657224543000410982319918284815337091612739746648792998603002908159050923513322296387823532965009931072267049657041778530313720556436992548692145584988577547111256538789236771229991059661031356914323072005584496941882672963013728689404072490096160770143752651457614130041041610542166802849597678451459511801214806393744386395405944772537006900187145609772741209972658400781420476170329983418355619376174548926434616361732141562971952518267535708077329190722840228406117022056812966911211409509874792091467879263641674648672485715514340005384992848894177766623733676735273903725434738725089538496094303213827175484437276267547529541384218619636690492771601939071363381652100438771338920661144830991221595623259970808190079209491605021350705358149959384198127917094050905258599456477627277097881112470462610989670965149724169543815925472602076408068918177557961521377254004945118162169024888444401502056506590554529999678612595044601949004328424274825680986119901312632152877452778564397341684773955107944847529226310401381775323301096655222357847243508033976144403376408018832060941484395520675553847602761457574744701207661819453870162084276734192097283599205456520151984967481817588422165617006386393419192122366918262973347946966189022076493940437780308240439815642650964933026779272304326148043353117620926486992925999914156952940832870531343364405417033776857495768750352079136652656334156537769873898652165733287289340123576792483968720758644961536194544211376887868046100387747645511602130603005471670980634299453126930494713656516310631816741475733121690937532750935214298017630866125267222238398705790791258463674580487442197487108183937887722239145932988988564062807743210077918630463839709465468522498858996243634546818022436844126981876142257111754334653115843679895393117807294708291308992397438630644716089604960601216299769177550438097926435857261306841992622884999318967805312124567655272261426495124742505897463515434971495527698393290930566798179382767878261074840241140042615658639279215015679059113574623887922738556747473030447505803672505759075105600329371846013897743701500037547006584166822172870073357241758830635064865087833934108141708729755718956554711570224050667365869590569779111082807208858129371329417707519173640766104849385612988515380448353354700886408530568981504020227925066708082944867835464545958931377270821484550493123028479460534360627031655143869346789311307364865111315700782362261323539941482038503472281082571054469580386534536661664581196788588572194918562271910631820457340747521703947780932497131227235624100827958686565865314629425432589022245436822916405350373058745224356588569885733135993356797194720280079387392602161509433388486004653339273392224000797256153410881833875617484896391937597605321300173030021355548120996287278720166279065721876213753089795172157743210167101877923317553599336609648616123292972974455265067193711434874331767090222139276675371240821108977522099286486163449978414983241287879881153210116988076907014859970433162231997104157108031152882991388535847100591402631645998864747642722917710891321091718071709913735733762629215370587113971595165535621132369314067078503795869827969344893199185004136336649367374666711808537874773886916546341029992046799610239145017599591323877755550747846735920559593530603064336640138220264865091468850674956391140751576501721549892318901091828548472812416405045071467372660535092097651989987487304685877221770942619993511532800570362403120941923985391769938227836653262075423472745429327322410094239967627900068495521685891423412324338473630654987029924165395978968327635494370454445375342356171923947537940637805659525165760714595567321268510839014233398828021759938643827608875998629567751627053466852256308891595673997754291513943786705449925313129300791685652725417890045832936189292162170818381376171172526545407177519841240881965611173401600506125308536918222486381702806865702121671756278186675374279861829603465785448767786512805047353403983414022338221842604489914906886298783234488402286644889873019865097715813395100392423864192457888864603296189037334776164016585603959896423632303849829557146343625682972441012411307926401540384941906104954102308563875563549497401534285398278194128057669415435986625004115446793575596211987992603320329181421056905323355166075008660894872032816097173982273069830603258690179046873260472396732665035601760528095413028203826842248099589079731565859526614796647350176754237342775858516762848562471692979988885761877164221977898000819479151594608527319809266412076358163189174774571264369206062746184714724645310372872577265250881702867743786749976067745016013269374881719460242524553399288286418949770050834577875804607754259382692188340180393521406396165366770841094851274918555709390203941749866447561314162327501047256772229255602845822207800978064199870338390263258817046611891099269232312513608268230971776788300940234686809375003383530915144524071535725107824457983794156596729174172967276365905730674761756215339756692603571603696231528608943800688007262271953745219230257968823786594596643629547928803519898730107538730553221768669166173329123895783504258960475044167419433768072476643514060960315583022786666879307679468068740193800990798396235956240318110439305735484108642408618357886884651950664691153272934196463927773565560517150004667979915773606458394509807265331678914988502782365259505820339384297190247106662973831144853313975142282572632922196453229448701351285869014256552090781023196215892513675456811545307552227282738628677064591000904438174289472461723828637954783496533018482732317239663278740530769731031675801293847615032387275814530794092114578942035820695286076004763727636034863324172917773324423755070172450690696974686041316739092781382825304985857676893472160412618886827369351795554675880958947531401119059768281045987477202661313594535079325448458706389854063479976592242188318686150295166856214347768664257477623075557725696010843763224915523284983469620164519273158113686410523635001117118037112959384883215102034446363744079827385915088976403338933363070893971519101506416617413522644928195174148056903847323330651936909730688907933122103674644639461408888550761805753121645405284525871300360695766560027215903691199462448478693484716663596455820167021523509748295254804804821781593400950912814841423957261319751468220092475510144191763398944764818597606710796941079659115131507789069813883480752651428160080758862680754825737808848240392809257149572685656980505618193322559256609801578990981133374728773469264406504623441990067515785168088503944399877379148236960140675537302413776378733875229013185270347189667013101508140541766538641979008144777528064681282093440784768262723593652488959135022236814785952038883100986821124294610985316912942890179196549228213711093608181777653606598578457749124512634639597118529719329528702982725901845592452426014812853061825762326727820524004832090170986793735429958653484613225476352305612152940823153644194194778739707339535691975471845416030645838480340646685878890363745196210343240564823636348758033117550407088537863695373109908368648033616868775385989719842742736870656868318422778035686488630909806194446484775813215172574179438865752608101917082797478501509854501380342844218867031160428203529734696676921976573120608764517483743330851609940596704193590536053050340879554742833509168193245670094382330656504765695025751064851153483630911991560329182312129451148518519694162733404711399085631559612122160058085317802396474195183897054965607243647433070677817135660943670912228117749983450813389366540199397815752080696055005945519406164710562239751890840114637638066223983045154886864823545506624944803786575588387234615341888167956857194142047017716597064019408775921999562062866955444295091278253686050023233118405785750227184180320611073295314074422019516786722878276209129443072486964104942154952608798997053292727534897243263325183291038587035632550821169227099484991730389757044227837574929054549701309996517270039370336512651387147224201548253090937184044638151502947864289987919647750349720529071808616511121956734031966467432231535721279435088968558018484889427561006981508815857762925487976941379733349295488586122200795331775332151069082301986123901821626372058054977564496974114581044561596635321967426797679152206368833427352574498148862073701718709254813819694971675099351054298759338374964681507441690252777162074581583097621427807097598443922148458914020807154215570159094858134996263217490256387302689466430761488805414083425993726658969238505089914594200553339708932190374875636970736749585734062200136015430247822712731905404402568955083225354903448880997860735383180483677158694991456414379349385594370667529827535499232649118809986733919325887173539389478245922634888123021117337097820807194660205909532917525988239009135702027157730539353034635372468015848765755001593306228109196895596721190373074877753890140658429579345322853845012128133477635742302885737509877476640143699845870961137163585170959751031460420704692514040612193938685937837506429106580034339720234135552272213597453416104731740061378135176449505998643928695608395220467231599649496980529428461311426586705441634474101318421098690474969194751249550777874026437013906343372168361600051340955106619453840472513633954704930238427740508018452396059012205403637349092462830017156181901300768535204631693934655015396699769438152157343103733365659216008693005904363882786706281322894131497882878086503013954828860744946938027757311595969238603246238625295486204748059186913080104579065148192435855439382017055527194596255786156538055515052886584295740882521843354230010710784417650693608642334239643974685427751926865530145718596743025514375893905028903451376372407397906807786171892387506019661877265871479571751144802721366460661045692309939744860326823371680564890098241796139011701285924038252121315113211399990320644131762533943160175056445331179011841744333233347312046489041427611094341721072725641661872153213221677109704228152310089339690809893332759130929301718650886067918566151490509454140351512275811946813254251204878088977695184694471121526736549491757464955799558907893628673829237973648036502194782099029405344905607143413217710355737750597720599399836210925090870647787153334573460911070087679890284617148562386560357702576719240023190003283668748697386842310821697260220146328546834483458150939324918179531901254528311710757505619157879368089426717002597940204458440080401603293849302038379264469115969369584240081361253831978687742385652405969631201154234662044247372432232994664571410761006546290867175046404973091454070784961399106454321538678427129544372885254495781895581910706579690050488206535404301711988508848630092147175933063916949246856448513925451545937283353309080186212657877324260368597160947091658959417400252823496286064397039524206174726463132706160831010049283624910495435907921376195539527497487024255622345869785889867941250891274387790417772670684298007197826759103457417348505737241049648321541562119480251192612526736264846066607389835248332425419552989688448453958786877406901577349040124646666623519188591551716797877708699746017327562156255757946947746486867896769406390231753816227222289351683090953555656649804184594265921576579070282326392359176085557556215342322219515244519778274100795403180141378837592020641017005860264372087223217965505431410190231956821600072756747230165410020091363126983290930011432477742408397013142536167856051440731829162929740412142095829113831624880091017670853675993347180951461569420552182995044185292156232151656213627125756316560184841678589080279385524303407496506428413649345015864558490511696378797305037870863700777396669490595330397443633985944017607176853912273976025824110545989086988140598368706291812852688751117619999361599213291362317677909805974917986522429742141191559215449257881156279805269369999366394201855261457639439277390202336821819214746320547100169126686383525599188083872138125391334705540419157271988210392309857704388931663764418224089359962537446536579272211288864446709251006156066905749334794000328341293973271879081209107348649536300622792297149521523854231107752604985158330453826945106196622736457805979667756851581322905525720202078216445771473948826548041928653669501300492776231070198068483725619945906601850449685568627353152057470032614877157691294503965099634572669441010832125617140045472931936200882344376437975735760128340051266199565741305673506089641566977565951313943518848566602381349905103970710423092866121310523937123628638203303728631513115445806713126048538129070684598158855627235488055143812926607970031805423754154818030874109933765166958246359652620738800312623875892859226736608134727379871532710991221184527086001958586536353237326056911375792089221553343155994863027106159330536006705426517375180602637329239463911755232034010355430205324264088509398109373166423220894288122550069159513569023661243048931735670089366663156792510981679403836605931512027825647000668421522765871010538485911593026063080955259773659517500963529239087518303159084895966204098427268732893735159180972832857675891239624510957288921236304090449602259367706074790827572620528007109256653637694496983558977252885467140517119876246777192630162342675963321574059187555544303992208947221732424787572956012565664255633859148742728157594128733196548408868434740838671803684557369679207121160549395916080852455330441356607367108085884724985763236988245619948510400228369837025969880025161498199800399533130110394712581987382469649630463998425743496434514494780105738194917171890299689176979520553543486360165402009405338331900782001428934766217961793960257577867628310288378902006666638144628591269300756897584554929959125812010334288497785307897389795568442277019453672669922477871229896050897612925579666605128274113408656104215305191554557653781514088535165088428634344061518919785718166020483580346797140768372164514043416958123285810229503674578681334147281368950620861724659407417919413488974887290640569910299663194994021661737459558456922043209573139623180322901675334653244804745254906532834613824753888091241173032638198438561378879356703459231991258833562039996562041711242665260393485095115082380233211084375902827590038260593294541985077380239004952211007069278144919363865246852083032542508850419244803684049096695357666877509644596408836376101220533616692806608848876718223541192819965306560688646694850921503737745399282530534532027240247590010938530054735126374706815311243336896804354780778340640574062615780612122757881210501276633983893791065348116313987559348662675772826809337823688652365186768838197523755000539313190309226309447028476724997027601697425157150969994107904345221041217813758046816024382944887016213197974651169592639989131414178165377115391071624571438143699702472216990690225330747611004063052358303201190353329937290762755306865832060961013432341413230917523899648510550346199973648922819624144064555599151021387164103439792088796202016581265685451495486601216759346761392271690804379862102411525532580747025125054747334479815193743946079495402332221519963189179456194802760519905960129835809242622521890694050039054857055602383021616008640453252308885567312179648535132893471671304324551100690136290276760339522824982061929572670135566816591756474320387075411299065715510016219807076695148756419794971294573466774564015749915584175167828176814792578186803862901917043126842541612234696921450758881938080287664780146694069256535319206298383378327637256782339711415737898187610472410991074179768064633041039134830389121992297399709573276108630383679110915522627687784797538693455513633661381493421764467024859314056281035766526169626353434190162849295315931007136974538947011944883116295701006776784075927300290026352005680270727106582588160725358264571550969012349456864634950563890735173496181089867448889300199341972365842398525475108448375520026501174395833726812059806967102046492990857784426431999854286673617651530950833405446892309377497885596165471263069974761663223990547984628546998820942061010556467482120719434054194829163418495913096173551539352629971719688136352427930217293347254377686447792195438661761701663977074348530030554396898569350827397546819004477408094607255293754914236576363639909895555079199940669847677996140990500305484278014371019167334131086063171107113528755430209798910245967389279955460730892880980176357351313657204390574923066971143730319627766938627399757003466772381259766069083793335119714239261342908508570099182038878429563510046803940904607306403255044086185371853609931399913557619283981067202132199324325525902045532186272517119233318714112225112329477795997185190043300841871113785961702481488761288777572622137673939479759425999061870029439020137772690790428052195364013202806840943549429430886219156690541093295562738370495334095171602757605998513120691150213967385853072070595865235918870493465130341566458262265185585266860470085596879426517827236087028533648163813017414173877232510329380443308404287919182929423709874796402108280370852357879204520563419038435828639229208242904133798848645669859778773994706533049291558527679742081548528756145232284159879152280830424415998626409848599966899138440321260024842411763171227014663831429991076276466879027151837743008340257408792306274518377218658079693286351318235548349023834603089361094271045974845524872011314611576791634312074074775820272236303717476630575290003948121198012873522697584764318497813984526785988232115269203368776765451871038182369465836274406122598504825823181194139938403748742526573536515549759374805655712050271678768096923099426821834575361545454633131854383259949568241005790164168032319468803149124875538432527991180068386990278841023656306048490762467419587892858593548289319287348651130451101049374851738052357369894851385837477823601530025047598031117975805812794173365963688815872939733277735076967896915357817357949855640925826821075926102141750254377538739427687967990010628979252799355527206795114395325285088749330505824360686247395299962655465421358148449727133711244399309021452225902825675961943779318305661553841956428128210880578019915849726113637173564422931805788548747476157787855691586433190091311210864523759058547765061263586549777253670734627086850810584607349664105024327570381880670218182311843972482608399895574048122789815181550888607142883009537769208938877521556496770938287663852534083393911461417098042564971171384375070182725423028833686102394105404304013811891563415552135799748229253355644029987496100065322349736451490232634167349209845106936132166972208485193971373727370738328483051608992155366177245407547114403606135164316197758740806981830592616361647372176197723008279038867541211485909052232723112571624055722694984799969921277406863419122558966167215766736211198674295596959328948062775395298680769000204202923023137625713212248126494999310555346759253558865242430480741681574130508104430445590358018551767183311154624499577592437569156294200161179281043201886481221738387945922475431263478174436769446863010385129883363654357965531794117031616811342631769733639997983087009873042623112081384076813512122643882077367174805795805143819481862037093832646536799526115782380993213143238516966876343678900591346711766853630541173213453329671210042961015797789317926347703762662952266617071956231028362220206761083091761233213856116796879245127576449265104590555884908700584908534208847120423387441063565542926198548310537277343858843290746336970310287188231833498733188593131047513844329685373350962965119140282097235808473581616902921733414319760118454160527456629760928547547797728465757341159190254796131953815484139569239463027642284336884330106924147204289057440805252163686956264850223214580151611662707550569253359436522830645885530365705921104134665326358593898012893937158919060250637268974207080235558494743591153745615975831763076578786047629349095705297563100020416528221664836231358172605329261959136856237529565236065129291069002312433262964910026797397482090086293333228079289432318513420576257766467546747996536035697805345737410192067664568396431073588589966418289779240103942698457518420407943108311983590437772678736770578383230974960843465966783064842450396016696014695976650833937143831711020774359953110009422906001232349440505119200161604101503774257207156172182922116304357745492367869636510784414185749134010236321045275012364119576639704018200208392725318286515230986507009289723539644279647750930992174127564442364614280219108840761179321352151541746002513430999658983370774792203253054068816069854111411104630821430569356811930522496199254149758274571733588940509459426971801537118791279308887768457218763730078375329366535579205600163013578443779947487378792700843456067009869405274445371473625884591299411449348460138096934045265707266360522454605498980837135912982203210764234898850341588924263358702737706543908552386150976948009574437845008673574084241576449018617596159087703498018449428999070886796537004634203988118198402287165592793290135567429564762049701368500002536105874805650634563676326626803795416120324417628977066557956737353140292465474256744423392436641184599243212781898075912032886785460712904466785680739823894666462011100772123428050705977250461167646297194134771367316099321647774748124448888223312913074131470015271750722961536661987863480941054905704432035107333630591146403246798999414735611389566671859392984433624582733487302743304306964311778652336763714603502120466671300486534925015713196198643946565097212182107530522451091366566172882194209482115967694561514084987478448571632535671501816738925346183986897626242195553344023439813244891507900778171488543814019083251451154399533328136266276423618765089891780959072695780642836119498054618631397577551526322032769580636178798155842693421323173816455698292162054543812524273949674002670077357823473675314898844623462933732081819672446334339274440593202141440715149531850215789586945742320550281322097081425600083416402698972166012375880084244960911610924312785566996831555027956973013804127137775372775410555862152633574568088563075380776212445445006851749021033500788140148642236354560795271982490509455945599835398143195029766755487443826342177389528656534433229870016557810675654517417636328604960179346126885278302038971019431996401706510998638174869032384796187869533726869095762827403530522377654573549806140580216480671506384486820726039769514469331060117872153602107417794368276859979171495975432058339599447322523417447589101447860022221811716591484553436787633399820748707956789717819185067189170400070017072903275827781099322554890442903776964961721458684123740290813925142924595871406650959901762771910507328297326731501641520006087892726086837364566753756343322768415365012392615804025131342892522777919478391373692719173297656224094697304616615275078720135884588194379300364382315113565458774209994909238160075298599119895203801245616474662316438465138199364884424810591039967724380755174597583270787512387838418922187978591586468297853131161394341732023756856371136190138938146537580978385362909383950581038195587193379515608216825405468413255159920480774881020277070437039867914260345963369756303685814851055534996546593712070043378029820447522476252773614245302567952341248941850482084423353777125695879786046264057790829066371848629927387413712129347905382678814009352707090650671166166375379757041218781357903090999604100188627739128883256925486940606191323028672692360680326188200953104220862320228566868608537832940520744461417839746540854950328449104131690791663403296476941081580023646290355564268905367114620606039244161429726476353931512656279708281748939054431878457520820902552671516340990447075252345159173271877152979830259046469059074797603024194191708985659924708144070155108873224567156100763694728412460638589215419082292399132346264328296763301571125624847967585864974474316996845911414463027376204159882761131754583479130632718508684133795960491231414728249412069520751265102692831499313007892313440020217507987900776466976832177241186091915723313313508923861741007888875543663372664828355181222666751077122305660452885375398860027368960961104260673811472950778077624877275672400007288578798763137249635898665115233051634874915842770832524524067799362145935724107425333489307371478351550928230969639311187088263797523903494448093762142548310616274435839440183107394530805775769979656161894322642224075858575791949301010878250374242991574942827341964521818154837049802139457966843886185546158306072024028476084638176432010416331378494287344993956455603171342785021886518352895269216687244378240098610932885573678236288385407982578388320159009748295095304239044667508690305884418716160325778497144005856874816949649898686140040603581176310189639071892414791369720715170165932029928987793735297950205935889919875383036622287277463771879873401239891898139503924488042900429059546183960836849652432996019149161284204535709569757281928849297741747289234975225681997921230273821801636692647810851436895861742326480591445811024327271126187480415737474287948820637982976910883750882271801898048956924142236023669830367116583834948823746251285153326389322850590208706013439104209166074336369888630189178218472274404295000983068822313338475954378323414854148090426454016461887505855569512315333131342234656500025480703271271362171851042192623449405926862790828229563747761215701419763628799582083249903061589824998295697541520926436783209275135238911227832896904559981017867072252210924324189487710047680814942976900968978628084414564398015064685207936602303823973259739790205881371326893353985126649995824049728867545168824754825547388331395514053134777261878484615021627235544437854078321688565142336229386880295677668471076666726292897661083309985768815163594532934941854071283898867054358209467759025083248242461215261565619830767747658548568093677903351410249081420007643943612256758633441321493975520282948638766594776216016486935839701136486973022065769225514990337443823396096150579909898325326402855912340976829748629961628969655635868493727359916465979734601541682655913427851401870821871320806257564156326450275021586340261706626982447035947443165700593917766789660590617335144811952988312317249889557568977974532404447564898772512694053158267576516777950407403431924691739403652148926615523995616092383588153249287233946121347131293075617080739249639335134814225139623085067619259472980483712046806479140280013219018388051259950755920354480948682734062597510234353192712678994118752421814322962730683629861415749119078038083720798918312084587889042565077397160747766222033202435105042580963691563403887597007684733117388517985068023180679797314673011948505883907691840620973582624508975809119661599840110812960675781715704497399923961167224805378782217715424969763877981239196491789832204114925005920340346589866517240930620811338427054310224931202474343452819876176465343139026017235663094737212510676562483886740264187376903687632162979521711479203591406336690281043207225454691875110309973698124365832705837654837470436244293599763581171812621961298306157052985422709261938248532170858396914422844679749504422044860724172002783318997341567509109587763484365012548997306536953532841858989509731808418005310407460210862726313556101721492914493375610914808041168527753620088176503018461327356608964680966245382722752336236879059677275109374068657800097078585297060440520065740502885120723184331964709648095757328506044408949497201798315946920593470076859304570965409416664671550940820946294151632071056097279527467041614386870689244036367928540723595685623789124569649072113486809511185466639545582361991954380008343055718694108621069815926375061143462387852526707834267925487363978733202176676964898820547933489376782605546151965959266369539767643432639477998704542549619502940755309682296176738214622531875175538310435394794004330579471728727274944436957923288958778643207246373500429765775543567431349436338385995477522277076903567222470922402028018067068729150428483744637556444480972835681764643418886856581404737076914386595174810703612410336047464807759979720457202675751193231228346417997798706954472411983087206060218598210897642138106625442622307983680280030950441455849502725215417176906534500341463279535973623119486088285847472880262873784404119580648208920970138160217598652656531322773375219935303764773883164710947963044291147837079004373497685479859703253912554617044583819071533883181470148053191802843789048045257212049321279732047276734659829022906863855601221147990743468762710619643435381371496534735932839305334421183076929817319287605293691468619076936119433281399171665480170164011234354308611743997755342816510032344912618566083096422618970398842407569500895894127007326341044478361175576528885563812347988840714706328671130883886719896218311165538496909166023607961068627861562753734357618813152380674299125360453271148503101891479848981028666284056422094428875677390973535326672230663942986422317131486661502760126315828053453392417389011504798310699800986508811046990571248017964599106126665866805900802499000376726430435500500647385323854926382841060609870421212787772527130453933752672342295641384943206774106908213553430039710283744221442606829917370649679774317498097289640212691770707779115705010738251970468215526694748484337699119558969885559861403776244443603602179971574018363947319364819301562993347709807560924869333584989035433255211385553234498675943827303967952785072894341955583112391212731142236899817217418181746288224561484468087193239132963034411872402666312612014745899989614595767793755682345082787270321618866137845310361108373813361561967989051436939646794493670713305246656386576859030599894425052518188615093465043585184604631401663279259691563804728595936631941011621686180307567170020284490118894630698432567913465995195639572221479280536013123760068938374924365187290289143176257653623068376585942846684871553414535668817618532616563903834931709183920715047980461855337087316114316586166663191239073745738798491643486444861733694643682835323272169906943048635323774374680802566576171003022802722472172895987437579415803336197657716375730964649610034792159119795124362434147604332027622147926519357037053737010918287810163839843425684935646930624117702961735398480621111843901432508989000992202249998239110346691773927273939779152706021743386183858472721876054822088824018058074623177745791804192300118902400061466415153717882396821706626406693975480284906254724668513815758685910588421310018984083733657933426867061532597956757957016100899862973612084729387576643679774689085853773722127899052741376325184938668815902124596640200737574114192280674988149136615463098562793794939490032316488603875736364283839467275658725020438155628868692255496485748842025733348406547087969275126065699176635429722213033452405575818068985768747454541341453949715766561342363262957888108275546318000529330531526549322599871689581016932767953447848502414476551304138392701893791710016296035572339077380404238665656827245562168526720612871664390110799428336490322024828013704200816398162169505887350846326908951993328096957413414785137837684447523214888457338327359658861463598643076046059194466742682333028571976501313152620036839172832385023903866446108853462700285722207307871061061889217270567358543953640188376809981408966160809883158260373811910159308734179274501810425399856640169407454729386341247016243346937676232934503337137407506657452807831926576648049816909614824189488216123170495072421361159578919761917722782850272627689758046096861040899738998264386324978379475997199500744955100003989270712039912637082060865565607725251934922944125319561980591485462308792760336262243347683250560232218009469672059460458842173321086304625892099290254507757495252678853036528905404074640620937586697750318563006897226558744816852848946433502480870985496979865954777427939293227990935299740426445729968995764638150548879502703129237137338709035237239140081627961443996889146113182749661103964866450205557831236758036292107901540923459724566607056626435059346566035180882817764140967615069341949317839560436995947144207751924302087484942989010219364057369679719526413885377101602807129488419529248104999731005203891038088553283858782451523114457730660513944093949438593526734833854107821954312681928345088676785466897896736937008836687344542002099807179853741422668841979047030735549007910139459192740804374088438029914990884699851671370835250153989110844464756873465698181861486116062387004289724120540755611741573188144032188845310661328952519451267386448481390053831933629189785467728568781157391314331011996868594048442206858198699194791778595884917322442706482104681407954367879678625747837874049773988390472363240164463350750724823154393243277613159812504186677058069567338366213508902756832230347324725448088042850217900252650259664839668789050247056251743312861626641191852111278647010699339403766986490054360443643665198857119482623597853553588410064788669374767086115770321543747817612455772899392171403689718900601699891316094098510086085680604180194361656579934829453003145951134669083252389531444493600949824636909523133029538820629453524638111986018711425335173616222313089269535608874048175256330879212227666522398938015767945703103154502448845137444574981131707058405600188252754716269430389998052479143658689273504810990739696839576508136320294651414135824799624054555073443989644228660459333711419315971591934194896520260587286026747160924082204310955020360813598740839540133561099568800570436285052555980714467542577332267880688474882844753593890019180171757879848051966152831313141172377884476513334202636132409603278944787115506735953839114474552276675450184201782345978257090651677245334712302538775086564082070213857814973886639736793265777249801097123392130826729773205699999701192961191415173626074451218307887621745680034414936927471315294029088514515582429047125188119197944949619167680667968454202668530692761729259447811604860920426738880764823655762076472125265278190588368427459566337483528529306995369253409823565928594018268964745637583527550445937041598620770464364770215803929085832171944896893321762402237763858610217132640758391230242879318573763152487254028093224856520711554544703875845393320442423429375507970081066225557859460562723773749852219304777409449124239977383863001099324017927328820137843702577285813111748915846224671233288108604035559448802252694354013940935683062278806718636245288914164004210340250155695645377886797922675624542518911410042413720949783629958272422862237378654258900254910754969878817210899733328574512284803046750943412303821875823230423103493107131986126616383556147951285311824538362242659747040101262802247459742189730823332529877077219823315275960793504116535122402517331929394311315213792910657788910049322444240025293244305727792428693217700096518602397110335395854268306311399793158168129652735015614350259530933526812996349934252237762744189868004203846328726569133242951886303645682084605305927614389751671666870365355628741245873298578341077121641157493971428321252795537094286345329009904397887674393873129353648075014981219212548710284312071794623288252209776504155806849007713296059513741155912831472040142876864484007014235587221617573709794388608870898592773236682670622794567603368391124448210818502176655229139924538028287402758029758969268019993935769821566188724561991737953771957644363519249362044186872923832410257058154089553298487246960125132133312546947586141342972599011288991441687183665827216402993320078094012618668765056404638715512238259871738823132838258405744943450964238437763957343937096399755027254374866105844005970319829605200226350647190978080085881227050896259808692176012239076117242524488761976365297479294622867352075468526346101192682151618079615014070507072866717922703411466382432812347309820094181108534978633267620899348198300076918425057119050266824301939355362521158956033802317071242532937641862803899271290264884763265857071713230473772234557862196572255613996933852025718151992999974628941433837455075197624286632852671515878428372104397446042489224712407726632650206331241774576960813016208466244035560427951037035931300118687558181075628120135287412011795593262972784381893349291208952004491969229054471104816992216714188482936658631755848793521514582354153520522797110585871585211989478483552095981193765503480575733182564817432022052835818338754359254660444232589691371673061248453179951128440251836967613713467972474337474880110619253092774398905021540645535611205011181985425145939552478790420027426088879898427255807710771974569365800040027115685722082195409232153743373566435410460226814443432101731040561066744009317457057035230326409333327107443057922762912640908779595453596712695829421867829516911746562897544864551847502530371500045074517005480956509293118170572381801248742612568871722248891545424414162677287999622902031853572633505058554713018275429841372566402927121791455179059030256488862301847855838185039163741961311982346152645736546662400791836955242397632075266317222989216211799734886050918858179360018271587374463915567238736222675274051146081191045571779395126365908501381486869820692992793318417326045694450213991143748955630195991847650043037869874066849736584824592467860940855775148997274796449931382569644819065427589414319892433384456116701958154510465252720282158206878150704570289441684036383871215655447801423142934118462492102569755617416830442435325907049872265395809064913995087861796246595124417521108194660021536718125000147661851310895493517878459734327219323134505251530829022553908790287437497002073502598039921227928635060191022681902391832380202045311283482891364487503808683134513990817498848019911831556774910263318387238808671505265923919426285079748960034649670011936648528286958296750222484263657837382264914781266123845531946745563117884315182853759333646234491596359876627263457170349190737590116880995167429241689189709646371422404582592808551322983405733220961982446451494819697508997269535501541507890831005928351713109626932736434576603250262403421775607030306447881955640958985460086424810155989690864343099847798993400929098479880787501373227468043523524141581838689179576647297416201419459213663753159350776645212792679087330179068008856976520720509955721797486015112356792223863160626288305647120418876310324392637119254240046159531990925856258425367927301404552185211955459309244765226826987601183191782996405918667086441255252442483844177235409460052242985232906378788577252763463610662692395980211731100798650045051402783765659725705456521033229244725223136211466068061320932529402263169829470502306496303165137263969758109843698673128601110879540430195523796964087581513790096719599387223142307698657265282052126399849128680402150646049276040843382833550261201086661589683394368426450013269190640211515498865880187483856832333378340538489030641017267689041326369588032527010496939340939349677035742493675060116056412498314674621872629318558098885841121953790190379185234471426044324799126745978968674927250136156368126428178580378557726357926402983723987186588302588741122553436657536998822854363830834064846762014906839832636501011992820480586025727397402594419833390744799874686082372132713067987461609865177842632772228266079320523613071644858158711510653530215434794369048049734337125786740399693320439207910539932845334066266675213410378255600663772625144889781347406637822872772005362921022507857455191331997040050467256543054835235299911734251986714042444836981001725537265298981905212552321886327547593544650019820053320513988986984388388171143873264972215928231024009041483973636048731611449055605862331216743921368760439162695971583118017443076704968149093003093970278725694310504653847694746357935537137787371598958540497548699549243610737864237944786142061401939882441044586106317121566871677047041203939473933885425235723698638847040405840840157483727925334072707867136059291981799369037969148714433126571207673800401431266703324457742413781189303603667876699623117222295396894885116593713350433107263876253250667275696598305562526893321516948290753766341969893532920679367773584800551705220537876558106340278459094903327376032377476898605912323730266875309043933485696057508249215000763747000727100171741699751115591983599512623156249054648072875227518206275220200731790730928648813297251626428316405536362572938487238494463313819548612673295459950289983070210634572471861774037152475759787603437376070341179561089304680375005869306398332771817626088374874581002673968659624601949738226057875424760891090211996556774407032894948766257139450494161387375061288107505282830883593516633581413125969894365881344720900126635881289172705467669993223143198406230835971112601871403013254464956577836500966746764742769638881547307130699706306449863858181708813874294866491872627304015264228041752509179202055462388948220191275356036709722832578128632983353034679238511509821642830995904864304308751626361490609541598064131665615515741426104010900085182629624600938183425480373067433584290791924669258929764800107356634366484800231209435584358968239151917155805494744333795914999202918132872683413647135457230939949807810924210543155895386152921458439773316994924678976589253800666052658578831523925769017069425161581015812424124459613617444363368148787007018404801681067242057969867397317829923125653977411739356009708990741002380584364529535418481326144212359947531431822029595047600004568200613130196048947478042892256297008527355538015181598371953417479145852265955554638271919613355869099138658965761985179042559801774615033199038743432167365521717234318824370502169261941934839488171348597930894893288142587404190306699511911097347605885214204981257979598659835651869156462015092262038431489333196960725027471632063561278563806726986407410308264594540898692210999752378296957545683491820638650832539468763908998788734308593770571858148470362622615892303415354384008436522275997449488815114882630771594728481535870203816520352882022605956707705812904678927750356426034015731396179896086904865182784316640391450295272279235026258243420874383302686462452316000518971839331016776499088153824174352230615026338168493594953315089698827425912172628443539972246585741748603650417742117987080416735370387345090035577539022828192717282555400597971074871592059029340126812885192330434911643527535381569718109067628619093327299560877636136448655111050256709950635284229246117186911115875174875241631269226817035318241463504795196333751365006228773152062837783725311759844408728524200727558047837244857413445761261620033709322776281210764389416185786537002364475509537935818749551543804673894183028668581501568877615761298748603903628107605964936534513226976405192943634527641370000677238610708638238499909049410877195363257797970797455243004716346714562965593931794011641875112048494946019067898758864802687145582284819538098859996101746205664016023357766941224905178921113414444978438367139996244447707880220657875663350913773605666294898415985559729820871585428986814936782836110562688192842639374970147656832669061381710877825465921647773068880058715201453947450973446885095902900785776739819176384633059723404931094083516639976587601504946079409712820367150535415589593470150041587754627333292108731584993087295165100377437635147022699953910628111139169072214374758148905644695130161008237793146609158008812019681044450774987369594167691194039857500267243621287006377841486241527205737276452771195268066054948175595111215029616886362895128139237197768791659605714562958329641823797994909376792185356914607761556252527774014277243422238258631666920453725082538354706475406884729637201485652987195416259385427828275081278216461224988820708748172870217858796546847895365075491336795962383969908169914199548826941268864741981038036947575259993796747837901632483292079822926192465604258505318636966554850978174134365777833360162088491212077816792308702144189836376616158485829574243601768330326937851270798921281028254529310897673609963621508822724004390980420768278273264323000261404244151411451242178593214688924140985796105633879346502754507343852897093719734752423945210949485944687410752170353891173000584965390820811021222234613016546958997038590764501464622973505983574428679667330774344532743427529443450076535709419356788938276316099382215170390684724000303252204842087146619390098932617954021558544062901468707436656542123074705898565680640995948438405660603195524571780269127865042265151360677737300426181236721840044309191907717139484753200594635986882776942504009617238546854402752855116885048040684120727269163714205574057959373125007807919832284731152012833575300086403818462366517462238460262572182526533466791272794006434444164575170689315346884945649364239991454372157447656881301156099293538628092087171030350704374682064914091821217607972333358007289896326479691829602321495884748211521383932482122485148903054298872138259937528608451866426519192504551037748202548195539725554925484806379479439780907305545066417334304903861645274030052009065874243605443040323073472512935021614515441950906330001593564480022820545523595485460022274056157326750563454079313805888788819944745699054716355952454529661354323474634050813671629241046215324730578192282404843060767651784801105589774100088141416740084814375100328529209011666027317399393367774229964865985249341893693160278116818669091467540458464336693574230882719998793870320549391060701110890233378934765181529031169475070381744143383186933012555959545472269028652156224299053629038866694265098849183844870432770570050847980166947274425732434053080345368426399459388610196211362849245440133421754161902553298399728424586861916405305380181866351319758463249379852479575523647934999320372961559058057497918749254455865934140119501718763485701449410367462240348256573324012141671265096624824719471691416174977874917028541189669261412481975432223852535650989018212401276698903686575157641189337269657353320020449863329829450899509019913630473974609931227861272673478468027882856406446848715275493128168719015419994858846233594616317949200472141468343175031057425397548178974686130838886359170914509414983436380328020108880795699073545689531379956929483888570220189277750498254917067163627428796770612329835557260907723390134943594070845963334673220903127954882622238404740878698843244891210373940480497391479935854366453290610243692011631700281891848341452287755510053347560048050317762359008645805228560313900400196742246378070570686119436136740762561571089119042691770675720675251185283493155770203316452696066040212719954335543239893295445402117305330575772762745420051888905346192789121782937540724754262081426174775720372577717113928114004278003347818039202415516872021357961435739585693765614122515152207369169623460591774896464186930426045474560162237600992365113181392217405756174127283450052526493964461530362303632003699056831688205032306265350029954473995841646383951940711847659626566359333882017208782077654716156775714666470606857110324090836621275717234019960949325699589616633531652089454295445907223318090050123304856138047002282436196075843928826056078628302188133725510593435797145844156688488595366896356340536032521701904056552125908305921389546650623056868010411206628708540510007720444850693458641605420312430787089251851520036192894953220378398793990610669057127049706073865402198732947235149328491409966442538106302435687831001274788635424860573578893979246524843536276190872192656502652657578216624664519417273544654367779547752892421688156578854525902093889119842015079387497178805312158956870546609071475099469024227944961878670952473009275146996612799873794983304627002794270788976096665805745830583351042801672958932040259599871612077212709227022394107309134933462961004239720277140249195795129826263949935171742285345550551559318806465744538804495565554727668310608753851670474112580903015782880660824162660997176407760847292476693001418687354591234735674885261623852009096012616133179301783420100145487511582779690712801294521727630033178705759553616055573669054408108239827230597078380968694157325033274486985024813875227295220004314579726054056023040802366161800115827617802107014362254977209198001159509220244766622443074920545221225398683282545094047006572550900081296623727767125796938803984663078448569685011356965186493463224843025030476639538189035555066877919009032733768203222495961752308589630419405678059858223866325333416505394431612428657657185555049287038044716659994583411299524256855833345586755870754442181144988204616186065671118968020133205483580219231641237288022167870352406168108011147108011311368398222877473479496070352218853743619996344400387545259950140047861443253320199636161942864739767455909999615219017934429273070951017282650749290996346791479422637891803828625144812519999195780425639548267317473175519989059255129642186371142583643054434615922606879978843396280051823101424828646706213743815993280340472038068211616625123414550592663592821513967309414406648087507035506001332092171566275592296956541985762217296979224487426742931271697953620327589006079043814501953467920282143001898138898040038409375033353072450182496815151940521355253836913923752529823899801663686982723820852820928323802381730299431285372037837547360655268294844698708809437671173661502891737185521946901199248972961644950756954897184246347082335037876413857510512217632575468321781199334212252669462542311927451585650898072112896628701555059955522674699672600383481875077442890432644301621640977355815084946328880195064318870254593115503747548943505362191279792801922740026663849540548899909485601423820019215159529466993099505701892412994702220390994488581772507988912310508570094291970705306888937492582438737710600910982007111230052316315262852141889287001803145857264562578567948836673436593714281188076413334344672509133668239030462979751659801546882551473111934895969202965086421305990213758044482575245204832542758673960541822398955480295883138177975836351814945378563377078513065537950576075770935316901086134459724265365939897716610018230457223627129932668989703912627625290383081738200538498031677625008894675158614417983289599371914087056187057470299934432355863261969561808034138619536762784266806803997375576878948426495351492235557308089853914275082372235246274539923246579379514821246465703575663660678119591690777912559229725881072000915522915238662276721067200553689451553906117823641519417332742813340949065246167945299655252347146255314439249783992108897968887780963598743294565731780338507499634058830498922728559142375584932072849131346694503818346343221362773028566696369323620413326137384699255094953872526764229330106690111380185479898036491803492062955096145914272181515006706719777170128139392822871407947844832596660228504756545844284631938123217519634844206037637325983805128914365374284627084906402361054887094243007958748595801604882041274237535121040929131671620947197826846607735483034659002045761287282267462249124272954983518090485401049282941546852386118664872349757965559402597272032020799963687155113488245667904656244986293774312112366857032128618467875938433056975077202437423201187772808559016125598098156385213141533970153765287102316280215381431507292357433839029996504082950818824604976186918809131768547567278149354976637305497918401702530377396900381844270931446289413844631655616646610759251307276293227241247098657962800295512680164270981456044962044456258188168466764309863911817051289722607212417091830471305364192540522368631148437406966963548407787613733624574439609053285307311694615914153752747129269095754577494543736594491665287897322720589543244550233376225006467307579134993152903510046405610410846887117186858281223878909826745886628218050479396920437815563020486778255610395894215749101241635934877834562195242431242844595859807178414792677828733870572712348008374646231252546705215772201406827745669691404064119841210335447559998514216836895119913402697324770836041361981120470164191494120964193063309321301152298297283442909773233754207419107856499406095978961542177657874448482157216397143357956427615627438675375913546250641183253010632002805944231386386692410903237224522844414262068802810631701823728790449926789899501083337605481401474903451675186790119623861627164667041833351923720131689327936269484953594435267039871883185017382987745939782613309719171459090330505567883120447900667232093756095250050781510692070543998827687433936490879201281527208927544786420392508277700337385498041184662338530941570916795189659553842880337805943204578020541749850849640657824885702166690213741243091557330301477382890448382150779755074890037391090196894254723204453177879065360336751296041299430407412742481939132443707616018576952724403413789038485644739092568747779503029951996344096381174826294814908732450325938814859042357714162223423786706803664045469107312400347173797619815683269358182418692714301003764312705203118612761757735097684045428486733934923991858140299227594083862583211346016610866743877618231310808981321756710789760656782293967238498804735588337984862473799493672282196312075648124092802270914922832704925425587604266808715736119979768184779587111047410764578301441217650214304159048929172413494830539407637248751928534732467060592154372114911478447545421663955443725726479124417904881002868514305134379356355169467881827597870406398950218660924721551200720070533271650986346322653180478672069504848538964636391552612279248597301675796898568434603880781054415884153390217317622915949180723780210849860349393950580517243248969444010344894105879954367893858998962585800352865959804548175397001820500124914209858564622039960985327278849095748204082628089689913298096913587780614692269604855050749907481516399980044389433486095242151402854349208068269596538493953797586973819997430498885458042448928232328224648956195499406088526360664566792590593100751295763392274036130061461567215761633310411872567674610238728903980493575046900766846553903906202601749309601825168126003332288501344337412501834911705634548234983978187430097693463366011908933019697894799994412602995053705194000273948618069115813034898491588261076201791861483931817093432382246334949548775183680518827299585298544159575405209414338370919388898466412419373738014397620658703640315466045423135461039759592896850299353167160142053399088885368764062188439040719416183226455500296798681036256764204897454695073182115070282323650708809388814638054922774363406823053750738807995205715013137362917516406142877110009375196014104140097402274528053997628407037717594985970962877701191861047540496904641634018615339220035649365182574219595630000039950535470548432267413654835974718877564984008383197963582095184621836698601497059207650977954039993723792121902601430384130239624240953708688277046435166215928957157676043954417773044965094370636059095634624881489086296997143024257220241675962122572450586317466080116576442544660574314559848745874410601910225941609314386353362824450653293929658915428211949016429588978333986832270632185029297219972262204064240974326708440089446129302375299830285646840795066879855389892506384535816757946482277451683213016690372100623627659496441993300950424211936961792454728591561220799276470640835933062976664361137976950911874588563632760510950438489941186805710828974380106999318126110269602966820882352182093289022532307578240520782708638075666866278251706558001155864033659902242049953011146739603383025291679355963367652531360502896279105655432931745250298046740197772172851468537516610928489105048966624453874434285367693982210503354466872753421372490764221348415520710289050541616570968673288771452783209148647362226854349143820954573513039108566841536780294163538618272634093930272710017049765663333254438737160723326273380610833867807433521579506323647828876434815834705406609961480405050095135215407702931395949395134323640435766268340998117817955276004255767990427868968121927572882352176779504491686375949201748231196296405244875075745349950076390853891738525862580386425718343467659946821270302157174655127045999450759390013777945121190077783583106055314926820857170371935703437432006711195792044045977114381477564272310422617013759956980966429720761613269159584230103671873719602127449153895879140987694627889216440207436225148715050469549254377928743706730530305368211739931552408483097264579282982392331930336644090533744040466546998828754225015949165107847265128273035573459422184816744291070156716936011355668954719127663864551738087874544932816870318615010152003243744830868040139240666427062903277994685497095007540928138411213025994081835240045375141833668536780490588953003332383751460707807829524752792113306232669893842103545613556361355488751361901186954949806968427308217373627261237986597198533306931687971749791183413130444790211242720647196054388104029489515340402182859818448741348583887083778792979931177088061403097280683746405859552675269069255989445209688172558800191440661983641905309128164442918838126213044053277199646354436717949804593406671367286329992914050404656429427866741031142301137172835682948381014378361841598062991791054844629462086494264776897292306148910492499866679888815995683561131108239459570466446003575949647830411878909277543741278566386694365807528613304864430267526854703463036680940397930003551633396882014639729010016163444097476887328996858701604693115088691289252334665981538027366311228587399996254810934938338463922462660557283050403915662383545213333693210381379397131367020552611843204723579898527340686748910896221482293694129120956079631378000600358255521909934374331129480114629738689493134933941788384834462550445566136631170536997489073851419233383700871301162674164358146146542423897587006223713013916754591911503387380078844390537995367870536971166212750613595087660991757711969554422957028957195036841674266969531399402716262889874998213276359149159645051616122328367971140609629716159779725620120483715925483920930313848255309191175806990268274883799368592408554925341331132002103875460404171819900418172067487747584948794997570520183773088092517326066624313047869762647367418195820469582044953696034010996521600950493981345041581333580745432668863987639204061853382267344131997696673313636425979318761951561106135917423606406543651198781175491252114606821712289353000840796042092364345227251325323988046656557103657399868824493681554465638376312633471602518683305495718000517405135055287929337636966774955527308013414535071421407462585870536533835331874104608180805510212119423478682915232819947963103382792481128962958676743907476792197012516654344091182220476137301801278488631906726748371127159535538471205605891435785552103292845311014476866023201513727322365418478129902639153402213586425053437180555359398435001385890592976031495646145056711716391446242928934094198765940073290150376903941466935877129327156023016587038259808930320770736652619913438150125294869890051271432098816651892915662135884518456604242563903789089704170832695647863547121141503183712612964317326897124034426271091969503523531569045394547771643405159764634892987441598150598931225157924909094887389222106400718755510093849782176101757175526156961037995671807203620828601044451690469060013993881000942797509464862899477234595814747120221702090630134789226560095245809911230824017478467650946849990711402978764971254529822486611698746794457234630758428739588585460119430598667170834890472788371001841923543166948731922348339745127357817645304117082689447083133892768986023566621262825808268470431506557923997008842467840678534455575019075098765673827961602553419627361337384091513270469814279873359634781483378239261339169513320081767050992880983630874265975795059764841726867381132651480134194775059909710330278924469577024864164048809409192792011466699838218387320461425978596294382285352450356076601952397690338985074570682038875418187454445782252005479408430208632922317553686236931645134897342942998378844964622934109443241866073818055838393986899828831683951462342111798335795653104478768960518678123406698714128868623366352616549098220647466881386433404443476700476842666208200510371146349519659603391374156503087539517857148948870772226665177485944609303908385635368336015124122673913573147148501572625711185827667409792844146724468657221469462627144239039999404187755111463669452645888172388087904985944579752810257751303086051970351618198589304152707341568511528189417165734890182764188516393298817513910194190727795379813029108882099520515174753534048782939419327205331995363992656695887429893776647260661067214988415049928435876566975788650984324025340937206605665421586373758373970840154440673298217992884253494226619659712100863217378102516459624898473203021186172593520687091556371033957219046204925282123957294962452340786529873242474832010834311011554281520162468642261748114245974787621254934059222132225526844895573407118114099018840892371301322623847511533400395379686104699606211870445751183257741142927033393698229597583380770322678541315081226464681107171136589746328691109313946471342786346721192202056407959765377735443296047518212903053380334282618639603751443028804707242921886930599163731749517821082590549625905944884324876964767656882655899281123463766055034386057499297007087184607587305077597794403387899401872782030662046071565595276570160689849697336754911171833238974338206741020190715055767922867524622252511563725461170192365931954048813156463352859168331822253381353648434605170782475506842435974439828865252978325358972481422495044133403926981375773242659042332145106881527404385912198109965011944082325118207939778888757870754149229129721547351550889485135459420881380864052863986058325527051167907246347085375168681787300570556470482704881208737604772295182582490450536836282756563346606965748613424864348343013193743287755067118174548851109402710178331901073477000970442667743362236355419863013553560143208889167329370925759315596174506562057888954315115892152942909021586290951002792243520187788793950098107300586042633465296421147010790715600213672775232812248147288682449046270373590902241032186480741297341257183137684396149045617434964308317871249519904937500696408500172315383823508393731393746425118867408217129560766302631953151815204346515854846943191984439066311909086388114363234946776053573646597988307530537714281301366778847640502583077722270780337360374426219037873292227321913662932547742880632985878135673289169318326120530891767818166991071839425937964364250942783191452051429648336978923090569449308903235542049241989486260393113283382834532676602967049226449433961169380471824810757503147305133804291188336664502731567568936669551214973658818726709277811943127798321191284604773742416509660210297575375836125835329558376740336712822989676305514406139344244441075600008878810375092600065966529464148150333873430156982834729640777835866606427092527690883050014804568602418403034481019402651145180116387079425359353461437746764790276743179820831291596589149262641395825274053281323804628610674059566351790691494507964229183206597856543357940737306841976421672703452275061338152638084956586378783574574983606399987932536139700196542368074392829113053465661854057607828197595774684333544707216401958275864436773610133388590109071204678784298163207957084653241997400123186140531300023378789209104593680552567140668185103189359869065054053980179256816217673735566925234902769407623586885503439991236544017908223246643918349141430658208179544781346246102622366203490452126483211527822491263434316535634692371743991139745250483293640681347681544704417480482902029368615284664383448333660702543994680086229130037264926967006663568246970802020127459469871354101170228866115774888353278923181239292420975762046149667562377457715775991015952654425537535787797900790970453863516310796980702347645092327832050015962241368706698953692372441132325966318588126566952929020988071217267898904165231272582507527441308001639607768882758554144596537095110878750898840197262693936349273050539999957179099746583794491669068708562760923148408355882405631019163811079099298986551105207760959298244154738946916696976154252876703111191765182448983976555890321830632652701057876683762295596330569909481892522605544557709490690020993888266663241421944859749170750176685329539606076425326798252963768826209228983908703713380493119923112841641352595991974008084838622215531064027373294437599542159210170593591308845680307365016231586147594622147772293139634309078431129026050754491348342248713197026558238373059545464342287056961777141996670268043617372280603246064266312737485410192145405140889157012676422724705466695094650248857553080375505401113108717799032642520990047720420059198191951627090635341444226727705993782310896986107427898147131189143045563750831754373316404676263237340384163037493735106349706885021835187657638596389293008031536477435667649704444231539671150614501694790345301495778828192679478472431196339421827505919197509047935374395574719023629327541525761738501465910964233814396022483744771865309903401948326774085756327983672190876829331981622120471446922585944648375264993822132410507733879151785935188356902191772965016080730899655215468301471433389094023713704374798031199335376760890249917687453262285389161471980267800147719450814132458904566589275002495786395895136114710493097911495294804398872818650339985901059199211484842017117600860601990755137095355036692239094743586035556005426922688183856885512828214972386594983961507488670997331185523572676341030337818847415160562757030258603814565758489438837951619538696347826469798269553403761130671097777377217080392523652612340945926958531794242964305574439080479689805933850887381999093642767828224052677804923546393441523106603031339478478275074115106324246642411686938483452836067868471813579841062584214403897852226406604496061356792295765870619808310972518433544590503706761271987172470392946469711328882434176639457525387559773602288431191427471385944634335625121959005386635100191572714847654146176108062842618951596121156242430001528161112161393351040368403421181558017425677759953154418396706135907216823124132867149720441871132627860681870887741694653768916061854818867616987250846041958932491298558543068654898663980974794026923322621949740742135672337725742585900040963049672624788422233966099454861548100227772449138499226469416450624506808342640519031803774757873940344028569787118106056752821368370602753307955149388419387117770608229912702831055432493182576744010270340658565984881278071929622547082713880020744331943878948501425461225385108123250387872451709932946424395576088367957997294133494225964127953334533620660341608559270855031390141094352926343622178303158442808814367859780662378168959889253244320834078318796464155468454434463229532355697624360527445126903008779431426264461304677075037490463046070109824342928152165318348001229441020312954673396385660081279628614083662887800650604787718265165944848776626554038914115620990369409292869050167289815920668003584348627658213206270755602035138295677868505118671472668835156460443947809360821130272829480115093656084229621742732209919753872642295088103133633450292101184391396071892685731792584834084499630248596413216851396439518882295687213170962234933707941354305881142043527114640440140102482463441318436814799605544939844395581290856804727943739402923213171437039745333272928849844151719229683997476127596146580317154099284999530707074029025531450121767392323053677178276881660863428852401739594687201195070590302438089708960881933717899928416011542171132452846403089233691513669623529554574481482231360875172925160537414117372973769548682467627308420062520348325451315087769257628484637915273356654088129064156902945093041282325014348960590556185629795204605595239410036603802748305997747977166316736548633884372419410088574838128352252760589209494374574691509916381785176791981772994915486666902702865169923144008682233928467291671674446195134630722922015819291696397467173571927448178278481072843896197474257014615260401364408389966377779515020235338748454036222654248428885022487267235538289028686632358532283041677735872497178838717296627266438381935930170956881050889405242674954420670108900415387806049447380890327081510390441050094686671369267035421317854484895081552066050608202045403786239633401331659585146181547872853700784550269473350706367654368396587076866668271706663644501984151856156279360593823919807507082836814336544718296455683658116998013878648485359603473665605055842023028125876574218703878494312303294554727858025880562361029597928886544274499425376641766870464255437182715987905609058430878614745391648339473723829094894313848425877205396009782973523580939956157135447301098666581669909048193215186512876524317406888730644642713647870814422879564904707428319179156973499162233949203710575793760016727214156758676274994465850261450479868499832453626859924804771960004920128522519974123890994882011332087081612955155318152710486721199343300713057768194447724795843066826803951526286225061640970404788759432890055296649474683672639842453834988124576709198951260460619927343402505940313452563855628754188680908881887944157026883303816709584341384492424968928741878161910743915875894846245577577448111722795443490888842807918118566047974295222574234812965815178538880220706191275627285185376306589914258116826245227867708627894802228022924398627779507825985868904664427253409734283130165731688952570444396236486601275648541211956081035312293418584778432667607982106827778797045248307041281219677799049183743991928712486626337510911657742036315679224884738765183696498362941922933473353405826191938362152674821552571794301466132928243245675254756630697765734706227769040389725241369851340865750495217013395425211214017907322037145636935257858680382557390194079023797188222770580173225376241356147567949612371554174219724384169493492670246439680899736710127416463583654863379634122569378726572138258303287772099628045687148018569035024337844381281835513551130459654610792063324059796364232833304098585527080158223131107965045132465099852314589811713054228709435034640660216401958276294245019064735711015843826330848977007127247976395620725124064234791445696280819825551967601499849200334910973996048102449517925975216863457250639817670179621256300753023084505608311818575346086373551880373847849626473093645383328033621534353778835730966308444266809971692144550302548636663895220973899099864399291085549340917792814369208426863769880968224426272310978480755940815289512100289047739537006137935618478299754380556385826264806758235787550296047546434552296152031324824269479470441149921411444909920614484599844435417398574307242035140497131233243356929031237415243767533383170053361108126837898563142776549756599508431139821387714118708384058289651980665728562158031411888658074725490979352380556574137210818396248314525926359147414674462888804958093283128342860048494591710071148549995281820543368897677270640305469719736619377638729625247493108193569323814081007910637617740664165223647151705119381344814679894506524591884745820052873486484794800369773361244958744676941363725972257395398291033415737799788149340816990736147326131076761610996882849773926200442593761665185289009818513940920502433928488582883349018977108130118559671690529043588966905716244980410846714024200957324803543087735939698449823490140084533073685942761559657636323358374176940732160170382594110868066570616794436538173097062916783617099990545765342168157700912730818995879628917276572116138440344756550612287513801762177809261306386135522710558548958210290263410847688124586392532911218900982501740813386398810966326551631370392849009100205644677583370523478796468389884049174762743090292708470167624224251588905040521726198235623925307902307778292263078429413364820658160451471150418704326809509689581663110650103865068052010571417334028918507425091791797665746022524493035365042316756808961527311472270687848211523566141259917140577736969285005858237440361509735051438334161037792644463623561771784529992277163622606266172770483926219133421438654587090859707793497228736786913606692869079129433756655867423065531493785271811308160782222325662267323893529071867513862720818796508313753416338214792850384697025894438679016040149031858434786967139231639365034524614158231498103814166045663394531022592427659153995391722550099411140680157882736377112558199107878608930352881312585663798657273863690628432429489590306367309603117318308009686844117813050842688661358789287082046414555712656419450960814343864991378512329621240435173039496394327520974721374893642859444331549178930669665582155677380886370535444702522024640936330073138521623216316636307170727125180995069282002987171368723469598769977722223975040891473153117885145869551544898707416712965674330490515860018956470173560190080567561901914750947199556497577609684471055436877263156072379333127115342674916111033011120383397381904162335587339722516256669857553759088100989400666924574032133925783924509586756000567997785031085642969366835260646230976018987006006331217974335877218124121702611289133897721960790730307974625620124190074155248996847065151001819664301252621036419103320428213374867372076892025447336071952864680372465708671023614089209060027161608371098961385326168935126267631851304469888725154871472793736067419531211786207706787600953158764221244508005995040192250272227430756963349916809909444336113351333952919440269912746509309977405678325349591038551730559452239693874499522955987783387138572437833408368928920333050273415856413846237157562440381625105361097393116471872556289825042373602739351548716735429907219904215956551161810354733292554974663456422063301367225730518335751502530059542336850536365845472322876543340088138148488614963606352955511556511305090399125085435883481359291073238766507135088199355934084360884465871701578855835977349245868352907133783290367494263389262561959485313552383048540202843863326121719720830510743246233924269402985365943949196242266760260629390743769037753994963263660555716439591412076625430370450165841256451588859698997179476559980462662008264533216134829233372735940648499796015195928254275352801758277571581350327473348989891886727916558296602431484518571396053645684646682902052800410975323300779293909909369454932825241658598202941130836532769561069382690475450056975668843938227169903905792657999633498570777210647553919627170801909642380047875227361019009419025126062386144700265697298146879346290505100670069555464778815845954973938265680453741227276514690223466471020744982065835117879484168393938912114406768737314586343246495058982096594616584300991856260498522543118855136009023689328018692795868795194475757236898189646909136365522184823387032537630079784137078262363435132806793213584059354343623731214989179987522248147950770735136010561963578119266694244611404012793592705550385807798537013821466819439853376115335439476638024132097263367951346162523476740932509128060203819515358967122552895409858513287228964548916022201779245120648482694101352774679989738123523579237212164154611599019429283468562908412246184408543106204105017357872888560646666838373750785645774115366141548688969117710137939261979478905240802196622244149913548374320864748910223450962349456194138701441512283036485527241499487763591697842736184920303822269247922134909951387414215817090276423144555656853615132959277017267696679977098372515063019241515026609154995967010492661661745874284903705510367272086293715704961843000035118682533357081185444525008781710211555632171973108287408072682523427625880644330443118749420426765503431022028849126182044691696994725087161937864909252178145696550444265365336401026348121021957308303652775763398906871938005757118438434324867840697889292377763902192973785319894221527207644298419470318348033024401545761825075043881987571349422936871824290097015716937360325945586785873866797034467212189180943412116313148161012925232279311740892329118082778208059448625160606406558155709045372941819983882552018480245563339622748245306766206090471670999265641763484112766613877904586344605581770831062369219439064510714629066384866421461955940590250893756415862161141831907427957734726163778497332047829711090923194474713329492790920146391784826697005972960580743630012281652862668214422540649988459767514556760086538840643645363953344512019718548915478220682611893273010669458459776520169102156787441345683317644635927863231607697827199862128452530436494617398724487339621849260169846535260004747253297232450709023321687693626932491363635897422716671433514690702499370447973138058523336288814945287630752298925990992999774259142509700398378257629314959146611746127913049602115187768570611996434524634851474540170410689907313546467577696815403444429189242660731291056966993571216949567182950728232021350060361828447925150352823630711241457288568389834455426605545748470153009724603078299698084679637964248271721270176147747436894071094964736104269320392558303495940472766732754908543728022497809434974432606023370763530977180509774219956544295592492114885887311848847212786943764175052790417958600559827298013368828797598175019121534293781567033157879125592165504684299020580857216812533314236809546829566317796962895788159155324351928285879493208892142990805901017978025380210994406443256049020240296296300028724838889498419693372606076044803134601920358498040996601902053850293453918550849344061681633569743954812428132873116652546087757006094137307730755397888126514174469732995876330566081383953839264335163246905306059728270681351839819197134301169037981391349418279451361990760711600114358618469346455372839081938602190307705438804396074466383931648985939655485173085017711691525769001660230278167528581996939084747472720491008843355663198478047921344759170162080198622868630100847635877704001965930623457870407052329755142425541858871260798806534482692086516696396650797159645062608268114032011454552476887180503987783640998383348493196794634055389096454000293942466532786533147603147185334966557313282679762393946300909155232750662753222595787300534249379863772960965964808457938332865508923728293014716202926035822036320182081237305770581022189776994593554683132131035052019066988190914773425339047338588672237473848550382276920315603582259939332026122832832843531611148336498285372814236295009721082296430215613932265646667445773506106122603640782367546073576996671029897308139800762070343772366878582897738917663900362170038706458341442236543631482092602684961834924849742852622054863467541454688566926547158827693038415930979316106695258492645941906780907076137697421070808619114793830273145349670007610336442297516604311312578662850988666591122521290143268535323887774735921769820930425104748235947206409333862672102198864139884397670546143712166917387761717925930637811747968599663479166186289255849976576708081242030458232293267532353537423114506819548377735053179441627332292919222031755735804626887878064874170921220343880702051073787518338383546910716253179672806810782756333618497636371544310534415213283945263185961115517757447065918809081731747892587898891572454814063345496674324188317728024243186217308540698771000378232707060981301477138974165007357576651677853575596068206356021484170649820420036446684155991540855926362291281426967455744993456645008735777161329558549369116625832005707712278871106703387046602641804234309958391066033646367789676993037773606693551822406549178445897983535948264243282200940075727508197200561503193504865688091198012570389632281400018334953772604196477784693695533870926148512469483215614479409098254941648039666381534807586167688414614563378999324637954189562435205886716011698725670415672733894524097293957099705746199220103496290744209068702262514833249247809659530295355195511011494025668877136763844996961216577229008505606787588495615207763408353789279023865268748522575055825732503674281493927653217696419498105144001968337234617669030020041914596082221183763824122166695347108888660221765544527861262272663358037023504891418620111723346402857343400811259907936497911610865966970357060504301591802196131290162502676044815530029539597816087424616626543539634161658782983714629715440892570921495280390334465148150831363964485641270770313331221047758767395085236551725644663969712788580177045807545208207731360990647013111295930462482750020932028905830481441847556913609034145760541090035478007327040505989270219074210583020213564076070556611971093640045586795296847915147525079025057583491864945273532053105275137841339172802484941428719174327354200663246225426763921936413423668970427116332458926615395601268482702166218965233436804883529004856129405605007498815664256763858605652693921378046141131145675285775845675896884752986241698167656104939604327435288365045169021171272981756860999157589722648668198419921641921914330529799895694502308302085844371513043217245469944552704464182909356977683453143411262787313886601687099695360107871784384146316025326843457240787785241815556840975682908087928937887783146343396957028788379437475911228307327621278416988180923813183623333091631578215931923938976080985727645733960479126604405355404860358752959043773536647827515486455597250403235563357861960599954341469229665372022579184541447263291809927068040112615647376378521848218594289757247151277142321568592872623714580521429371339422840954945348217474820882124042340363400736881172426343317226896156488001073893092000795933713504639124001012607512306394508379930032353653133320610007677493285754028170152841558537346242070630970963521000281947965159287930769684507658618539493325565099379081077004539127129414948415247521119851801271798214538775831867491355865097606871038728839316118306489205913101671588968300474344277586143460194999992278467105823647988937395649632585044795007175811965825459329675199700079631441837770909241951803745831194615123702505519784779970866371460251996589377658633399494955225937590598225952036456108026468320439714462349526712665239906333971821615080919612659873183824761165230888561246083960291323033027192872396912833490957864781157791739132843324875308304644680644569181688690133302874421482091031861581837415079784547504436955859311429858778104757779174450498223524174998501357824544429438339491182218702816626677858971936742566345891543908464871363905837522503439710624445865874543583600606159449591292564540737004283608101151995404334038127480053525280730143432973055483453840905170067100801743241600299396191367276869104010152438424771886330840779492054953961616861786709688743686133356058050676862105339371759690379342136340782968029013064460634784874619688549694223684581776293468462618859763460986536353697698831771414692379534699288004068209107862183485345820574678396147919001479481508190907063795876025198725416835028842927245515648663876378165996141806483815113550939152837571174843022652780268951135498257311754696019834124245768365319424172771322620337361417893554400007085187736362666216726059554111260873229789266706969141396034672905329983045390023757516672868874925534302423633996037728301799114785106976606728550023613426852944521464173906005591588963694237636779981852140195215503860463477650183190510335461255866578503277192573151620703280909937918926972400445377577716743664250575983035477950081240416777293145875140978402841721555075732003169401318031822089207411461434075432280765263092290955663352355401438114190415593653862886586087940479982481774549884700237629607433210945078261956943194803337833148774078854290275703115889175043808954383562478945803167651484428521187293263881706182717388504093779680898502547842129624138964164546168189148148618863961645613074387916246406069524129319980477706372760364532083018792052384495309997749275765439912772425087238551403305187808017824878803680465250616965036375129290415691926117405191304066251656768329396567273924864337623075917304435435675053340051086182334103796257758240310024130431087546636558157982823872835070522352331270149775676146844406507754222008923211265860221511393792094047290494084286158885168014117831768492715184450398419874679426423421785403001745922121001342901810257394061922168461504376221677266992764675192160583492730025884048230760469807270135475195971758490078413791046613215553418042273553481833044006986095525639106896264234003409367307529691010887496573865031232303446484196581220894407025345304267434621555356333296444350330598375047367926583353394439255632191220792667462200745569462419594511955569085353257881598615874739140114544237748526020680419926015162500836212432036853029703718591428094885174539676099335785585520891495616630135969789552010199680700027520629236283543967749301103448653041674002710666652603460914468893863162965298417775780526331424726081805413644783298628003177786503341168745239275324048093174981542831677363959486065039347285703049776860570272698292955403421439967440761933394055334440879091175672263003476805158612952730298755664442756260784950788591906314327112436766308165998429622434814246948632768526448882053401555961995894502304666922008892641615497270741414817804676753453393638244027420049539934751593301284055037521468571650529993553831964047999397268212052921882638114707781480337874446284968882938721644067863633071671389514551725179500188722063482298468805581975206401635081701882774114882302491282926183380807567316161082523365224808316344859582015540166131502855129619360221322351008815682510517035542881780055574424226558757434035895081879401851589405513073784353675948685943183462394946544935009462088002280521897673147880276380124436625932985072638052700887085427054948346053194545958334663572343554563112246547734973946885001147995846666361294274421195203178653055876334216941290117036470274197210897806906743942905524276954406246452963104758580884044582293339008329203760857271235808978415045644129531966947268430077268638772670280424766720751543356574291039677665573958275991207292915669506705995935008327447768098379807298889373830761738952566421297871610880148151741745590175531861414089238739700356916569648086667305415481735700835528711591084111550730664308926559868274474767600194883390842673324064260930142783921220293752253036627861330493990975340051172892765454550032642710911842174872917770842685742277445206583717322634685929348243813709395552259187102916234285879533751551902613850406891629329891520581360785382126468310251779505291378388314222622843769292236675807979549085529763134422938166173720920490482230957801179751869637917055361556177652175231656492674945833428738777956510392025893634805735681321230474319599333798887653754742475381324511721011546116284797525335893866505164396955550093486520227611152128261946313783565318884443618876565297950383976800873938734569081926217076034855519968423937325043582373671434977667145056688493554707798962372878274047474387263369589755518145076546004995365693594444013563605116837855344353661790747446535599082324928070406104147855650923496796168037761663478578072734977524116499692810951334310852183609648635085237482399453902016427745049114662023356870537117411503301456403013037462263883742127033017462342929671421862459262748117147382086772636234800349489961795429270377411514022023878582208264544624119664598137489007193045832315094507770881109671212072675102493797463161217234691822295255090983875259754447844973390942140881928584997375064958690786223323747713079138894738225762664520532019046175439485214423434788620978329160277280629255659857884649794879792628819788813109821276830935465255479731546876288798879065581320252599936170954461658755079397987724744500700452352966820324029544850793368627012317288837429867783732909532446935238325236761166650782679492332392017592192513955703155143659283416572456361379802486085161626063757753673448547990597028564933882452395689984707752132837040569349301372001723343769700218625010420101006664542354034441998814920386518869818212852734070342832873632556890129674111531705164830219311532379857661248115877710475089612576663435300669706620293928981500743499608493838666665074882075904960182282863886823641705171022053418349482399252310545609330011810007545840582066656685400870077817961252300633064385541639426003929291235132989543201275292258077814682680507053862228950289584482994774896613652409127123526223683558448137905445958783803969069148120634509004358432839900208279708297441944314068918092009634201057876208077626187664320504478655321405904480887972332196183975363688193474436296157203747851425730987403955352942193991757680090792600737642396523128228100512900875273787072315340832667234456356548871458334493434676015979836875822467050797270798933933867457098572786460422313955233915297541881421533730603498320570957246043432365210030835420694278732891274033423187244187826008160237135727866442163944411232224625506905835383250814775589621059615866299526154340749897367167155130652634072152843490399353061012131469781527545460715662396719094286635623443680225250933342337425207818653246269675993504176739961872617745618160459116421596657704984623116927139240838961307780994202371071868722507071152311441633257887829126819200805249768920822330703451431028440950898874502820096884212943119511485397671941601426235665688236677089619965739118268231870237913356839276871894647998207753995834709419537494015274253276439510205046477191228563271682913918997964978455622494691312565501647383237031887868853807259385363971651433879416804782338461816702115823040159125803723478893211732119131700437301233321081405854427310808674345141819894610956645544976725643099272113351087944732263323926028535321863649919687014478737497956656520403705279469353767958640895288676659997766121643610025467984205731836816274397237105858055518844185340465108317570364659015742760208858193328661995969318033966819652964491647254834614684930867413681028533828873695259036573789297471053526312222850765756681077435074341510022315698486124119802700216050115610897887737368318762190474245100414271576505248237178006411792814794109734482344703460365654719496006607766326679408863123553037229021738334538324060415631902996619021870494403340913334356618395245408878843895714961332287468140578242527956388970192958213212631780279023573927573797141398053542981442307345456877207204639907854092648313898307688937717422029295165297226155687779471627320784675079224697599963331814179265975247605563622868510768053731161648433002319174092714568459843766703236018909392172990129053137551467869391617421543398668083844425326207014233920686525520306861965956524832972130577508028872743959938876173429446849352748268724867706935068232011995819848978421574027624270359105087528871936121101487076933354985775793204449449531646125230496734667159201992816921346996884887448865565719797008317500133149912906216909572969600418199148576229491412082980272224726524250609531689786314284513167120492607202434126292180404961830763288295819187159455365078659613759720045665333806659608403136863000242907681902376838615730912630055362180796247538602033182848357874159208430307964693634761346139677998795827650373647921866437986040649818935521245747245773501528386028025946785207125562133523450833331091672311417622906476525634939952341525320124628368836249533329353822496238027635363083790069401499028570548971931733609586804169475807917746431801065409914954069591091991194719663336470656464694706446674285381935892451726556300597900585794040006573409579828190435929003734274371561535735640801549702911161761544754952094320307103694822929435960463290142440984004950593582603759989785023932642453280368655755408443532362721646444888580856131472282450470816501290614575990585597297170886533315991123075547730653357829840586345016027008656019569922829414397378498730634995157780381990275125063936372740783078774306638263916095083880982910622927777611144000437879756050501835688202458524800004717211256814550267498063178787363899154797556735795714779258457743082039313873745502408873793765243961016594045259406332771269773154953678041851668999455132642191726372615221325746192138743893789606112698258638210177922946713216932482084565114488984021154958350054444577381349559124950798569669926919202784159758759280596607251397179942040024038279375616731074907045956006393108486188106522898662576189356371591372004126208548459223472127866014942905292904209899451592533626985184349695917528087015139418972776822752241069639208894347885224991535358039094509058731869994775480996477793701382433192222808063826749224158973800079990261087080296218458611781977569323452053532047587978096896629504498740372954151438516741169714691874514709821620208280646314167983530251612586145899119983705046540415092294831636753641803890701900704786329507380025631745607567589978622133272148754154130369578239620322139389782520028095151187031322781423734061763681958557851315044538394580452449554273592747769370206482353407804282734333873105895726840545329945926119658543502906164101956641735990878741004547734235864724756575091171175207358739640024184145283221398426277310928491636990327379012298819820965290300800238265752997851238604072274838337129347627282048174879494810366555911601618925187232305074628022429568487938078878193485952433430380531284320527162913864534832867742615949953587071059429792978243458924385684413776211887595661655827775545036348947938532962896638773633904444191624586715963308281623522854557298539867470566146519326827966016924953231761822887877537057502335186872153276927034365194123431438719566879951103848332705586985917309748492919587803475191551881060426525821006679075383345968595020579583435572776880188725829169787922760574050146896871198137646211881529262762341366792991561813659322282062103828364531827709909783255518105853578192070707847962074037721103376382704770794656220475147703879758550341543645027356998033668725843099264145693423450374298746549773404580371107527446144437878763595562544690710331555348256532694807183871440734799515495110677591572393741591131790978567618402928726887914463164027642210466284385658509322976189885752705845513740870994762186043946153251952075498441304206824720523901060201479899978366080522919822594141301388699100700514812676651714461284543274651492621091953233008944852127661866891819043033396353165192236961725015839658297383434584629859704887085376501388908136697165996255510185124453297374247391393171243416434365527776306772197327098069901514607194893588487895743596753005559770067254828646408399705424661471383997131999055248737110709509624215736609731650712226191623264471007577203093980988567985765023106162162241861552105781479974029135864518744567042093800828734806871045804786159109595162612730917517476612088432448323128532210661574157818867326749626104578763474911075054965525730544563259181474497788574294606907948914969895399454425949234916002659932260342132439249472804301014140123837908445994511833123992445362802224224162447669521676784855129562318961471411373183282982037896954427466558455196912624950629795758861618970922546870637393340014058301724563701776285278872831486112610731868275019078374713940000634350195439780350092998676303049799970931746133551130696050351425722035464939277284145435028490330655914833489234042949981819025080486263215380456212485005120711466042589763745237461912499990056020419308287968007738893584269725883231483214042322976354327982564943208572809940582764408662991698182993655397005204718331189943469230751188117978667364664649582934685368177192097110585778831850481392612389982036516211521494121086998582759302689177582943710513023580431065510274836283058506393537160096515742281613610079845460381556756581581350953025356809488251600242869774306131878622048156730178880688156134960591405596795382865269103336433441129231002160474936279622974378596340417487995977146743116316764960460189083056940948405074406382314912009567174899061700297715288327007663537688665641296881546013824824385213121671021780641601696080759175242871121304159148902803350061496249553971348987279117334404695944033470456931975644275065360685083751253450896509589884912300742151726461123338052129092209821252624533040951988508209123510879750871539700119417755219017420601851116206670929495294049441715336572645498096217633569654614706316648335972081295690533185155937412247750475421947790385981107777866391662344775052877460296411887837757164757134426520256353133598150210927136402211801056645524783819003305631026444882331951519137042623974295311908418550298617092458732583595891006378325113208723588982870334109630185278062395207646485402567253642105523977140221987707834853472137665663639906212788349116065001498548105870054661768508153970208894955212002779647049036684853894170570973377861224057425762681682576517672845603823461157123389905820730164550574571174496109133238041034558260253775250294326571839385973462516280841243936375275700116352379818158228259700348636832327919652961861108131586962592504005536772900849587214852218286949390167834810582556116023380957866529458152835835477051224117002989660580747289096996516951108477541662245199541115169374069597589157873216520134483814448125285962147615430212382118089935309313610541201281122745770777477642280889984571621918167350654227788037995260890711690122020246158075936089562121491828630907288208131907614034044286040758203980876539860892023052421473415335413788432189733383710478571011166627079528636838918317222904009247760849411677493616042058331131513498381656766672284757838003036245883718409940881500188465103515675130100215565445226210573475867059368603010352500575373067891032748924035842021232933670290382171735375200728322771380553760091025389306745723827329162495994114057252976895347608848082372713047646597408309972219765830949026057116949345340905245253055681972276154414982085476359336718420269737194599453085634227280009614951685629205748200487206893285409760229410524237223893851198961865173141124133747030491202658044355875221614111449344870992173029548923047286866194769793412240450939355373485266263034414166409848877262064004664104555774227476030816940380786524554903363684682462626583936573656853454742892821442867072940288525101536515191953894096655544131908089286582143873731801621597214480883629236876955966464283585945342076787691406060395232848196938294251625565475161028173349783560318473746279405745532298215676694875562558683970020278484871547215580273044987168026830583396676646777344443974839727023264028728155244797530752820718228906350871999716780850464966475887179573270411027298355660191914619037237903616625208614992979115196043706157633686231642731704821353101957406668273981529620961117648385541597447269158531645486407597256539681894057669147904703481077858518700652949590695849410086911502982023468313416077284666529440023095399074279466259755588710005089460718994093973151276272939254870067400545657640674293564403632032857827211193280171257926028226841127703272956831706154618181443894886962260586960355452533297773240284642474500052646979125043876537287546683810992986237566477549328845767627091279889006283156846400156128199331078872480446966316715375424345655668171975507066488566887564390973736753736236103876006307901334374090112670343635584803239043751012403437672886499483289268644268091146668474196595459648872788653724539966708944847836971421296345915114132124934621973150612770536062308867179759688957706419611967334667368558938049538050502417441012901849088008801054468384071528908584312098574526069771930119098320071371940901240460953584422398504637149224382352989132562517574639050817708624176387559436388698656419801704506502393822135749643534591126054986572238587426245847768015797643489580722881243211603109634318375272418740009653596583421850219510310908098194634781784872661143448747226066552416121644366864377668040012852850896562212296995261143810382535522910349508958275658389852474821408783477137828855321908066570601629293693691308214642342971701770939578071923456064363678903207244557024979526629325676738160555410529403631862555521886518009564057314088650157065715293003134775605774871599591465627998357111421121246960636830894709598726765844063056825596704041608539760018306718233193358343722080402279316000068569786424733488912120858494605839581261677346260115283088195293699236386017831670483787807370275998555288302261510562068272746763337972800705317561132943327106630026774863680062981679832293419259575391036304521885227805047281186338455221356054647513867046375803287888454371205875801716969563957113293916906919638837072460920692087009175409552245069458499860875308362507267582272232576162300239330995983218555850022735582961358595040229662134763812009471158151897007586117132923599408917564350229972859652897953368985897354087087022087949906437466309256228662696788097411629907862187449170004930623406009591973907504492997797674373352627601490383195841507979311243030864871179725469221434809812837829640283864201265672044988591597575750925414414281718907311994994801224528470163943893327336649905298423781900944140835647751035576149831114139417067212420640854963477178939243406749097951474427963595316560443461363777433810903035900680853174684144475696298696327145619509199407259262642085377788650693187793181552136976549750987251971886161451796398482198476564497172631393708804331178772200149956826907629913400360844831326573877890982272203370080826058913567331557608817126479269374464768194744451090093931424812291632082566914197856627909790965086127256321471674275999524549008811095524294862453819092995622149963934960386130259359974713111741459093499263924496599039787929419666510291241869588165194730210076941240040878016737399115596209982334739630045418892960433755466398699619075208575438996689470064750479098507434582942755906281571648986502392547357796659316678703154245906500306424687708548838605830993522335456050448066935072793662738414305986916095390820965975212958977797228480469666410259187533595672757196910414137448778777784480788259478812055128656100181434967400700095475195350359661435308788272298463763508695051337069113109557891566459408591632395442427835942473657431698868523834177505939965721677674735667904649374714828158228929210865112573772755825712762766399029590252656066203409766486765389320910542762277417537107285856013606749426277215860898030573672716312320360034576602203866051551674896434422126847308694832045655181674836300711978646730147693182563027332238811179809057017412671489418418853296473969492155746461071912883785169025688470525377115889129374612038964098267031167252382384427451054636125244555091661615895831506450844535911265668050947711185869565228426188029734346129725858480008223063048418205528844261964949783881270453171770596941117455298565577262864472367575418694528807255425350810757941934271032406157454930198730085650164149860259106006882376748458182797650962085188582075715123593516448361369927543243796912617590072971076729615534026280362587020899731839021504935324664303335685055083422984936187897774166447529209688640116320645037746318863723282075058723230662201285363613055013544155882167812702889114987647272636240427706571014780127566492300152550160683989208610363884974580046400943463709532644670416961626279056467486083188683005469055733258527857686979503090334764280115187098244144178059459591983632503616758368716584191765061279216610377514126086000318738003079603340763707957161445991198280980761522641298266321183559759949634549043788806666036873688632331572314801589325636779586150227386554036148111798486674454126010587192608634132436555327865442125158701870128258121700127033629485917474453175931385987358653695032812154328336695944014230046535956072529831315107182188858504118306634048261760758275542468930571318678998717524905433057656514670739344525658100945620062364924650939590601893616910865660421929850701068575823898001507531010627472168851243614921715389178312150367979688921402915431978592111282405928318583284027212576826060270885980376910210689327003754097907777640051047038322578216397707575219597552544132709637610493987511412376127618495301012007708532873580814038288977512686691870189704198450769088757446640194592865374564802275174297242638257254258252812260550302275302933736910087035858387101207540665777729989034353802747953167680593159689769196936639471777023236887254115187214150035834078876677876910114863659746643539148114873629671947387696102621600407864388236890173321146658092569792740129038137436893473622691199359261728535991127496639077953551471752771309691631702989751685688882372371787406595536505424910835226826796559898298571155999884068856725852003123351162823721946597863452446927597414973829107626372259578115080912139810752096271564704501913835351920823161167542326015605604709017206171917492593520314308481927133129311016388339553778816351712290736755120462816693411318794070530854220388930697224136644392890870799142400852425954140628307790641612511786404531105872815748246493426018435498491349972245895167730667244718357262769684120997834148228876677414037804040311870656346227843026053226992332457589193043159377515868215649989788622529246752055696434583388617585726135062941743034327303527024288984753754254455094428424117266336191395950831687495884656021637052404933043050835358654070255426308927577078404197256501821845757489505627061928162491985356796870161200054004713647521433816562755803354748703788580840871773487633277334607956889950498673832001577275833415788559795620928434159754390057681687766249345471389079131695931455460162527932480928538306469245417666981004842067276334614746256008015206747539702486817961465505236226437286129187129449037203621698104198983240893958248172259018378450533270277121267309159926727982673247331121424463721363532838484830063099297297127720576746679188806696906299398517621966670186783416421618699495428213311076987134729018264884652904614799425961011530868695359434876476667667106228514449139562752753828959718205861945668963417779866011172522038901802377930419730145506132600913570118905333703114866431012152914659180568783127230195031853953746190813490431285297108533915172228935058649641724284388818947438107223613139365778973120063554260209942044579264632544034226189375255387938936186886934885505251568894060323485194252036812634691526999518250667846857607522864331770159019645864531277032916868935156772119585643807169109915124468995109944756306814408601834463227216984143800954469650736060590496017847409724233634896852055053323934304313262502375091362387006767140773581569781105095585910847313445021875382689533049713609035759116392647707077844009811337853428413669890213697405356001127228155556940026685921072893926928927791930323833047390784450970896285601033018938825370830303079768737710449376045617812500057140102994932421358640773432945573044840845656248260501089543045958420023947285552769942804767511593486734461585814038813386584108598319528894909222983212883416493923841234478714138846770775309861936735578880213677021086342267358048888472384943563182351989905555748899203671907602584809614775044110135210081246291622885051259517764165179316893703052422262601223560579054788320991761617556277880643221906452462697294557999629662638880123235594900254380811240143461016285593515710165562701521655086137807799665302016001982887253345616819366839806966087152031978975125243402987886194733931794279376264744749773737230363662828206596733693157953233384799550573013749769914074133086523113125279765378500816795344231100129045284574648564904399118961155133953539285285182460922385812622145594877989034907991882101226213458084404243560457100653324149344823004529037428375869747049461258680128164763632858681902572158856351879780663728364241945503652564650724008833813673214562404478374427218194019051987989807917242083338156619418588147279143298683322245490861875102192795868880209676392131072118712005735452785056494423541406711194366893038797816709670323001024384162667818055851540820704365494002990545980903680794164162988651870628236239574511118768479559633772258942245639576766986620822508013401842538623954526484137067555273501720942190839053698598337918179231896212281594420900485865889243952710063441500337983347475626652997811941473521122582150538466389763178923038590978048573938683007497394552733289846164841801854405500445063795708921834587503286375845392400838937222983271972267144727108869398185747756823883031394936479627587006279857065086491801609884199006773419116479141421293837932275273021388000678706453690926206566849663706422955731467798223993467161884602372088274638481805219208494405125707403558615462691679978579252618297296549221890864014665147638221967929928811536816417005203581379095684647164339436878079392680285440268213249456106990176519491085488071981964150752449092277128044517308076537131802103408270998363899750922900361184739698049797795525990976714124850816815074196986761751214696787332834390857790568900979333406060626401878795337901874628202293067517093569553538611379452531696351842161524809983457589409623794353572260111162933049020329211043006082330812756495627981930659342824511804812289217165565195888403482190240816256886655940758302819204491845240631519057847751882414098694088462518558998375529889653628964791226043839543461431931452469991016028105322418820580202807147761104558441048836998750940596031422138468347622010731700941645638634026646848596628709147001876767518868736831102354099660184599466863086039719942144566546374961054109077875957838222538016362209169727892587040402983094607875805084021726491471911658484187511202544173878880625456874590697144418328650686142086408708560210777493314635366257075479054526092640190832975124015402914532420190305464123392652502561623357088043657576741097258868987087172947887227659842685367917888052140956944438234430590355923616246137973179939361617917305509061779753863032382765988635891983634360193727964350240588025045027842909842590704738333384723467405048579575886704022576340181993278351090130960320933841035170186101116881564458592794456019507114764800133880010684767561684803589096619786095439155854586245964281275890046412960097297621982992357350832701437101277429342836789126610768324244607528647787170095236671896217436438708723511152543554158396075381992839489345822082476761791579855999272655957553270521199688419543953705376427435224540007251917753809468912607641229001455549518595837187028721148726202860958097492234393886348301995576117075677284510870917504085984203337835175158097838678847529559526484689786388195743584379523698803927145461951448243404743654971431009067434431476895743507670123508997332924567313637583333270635596928457261948529304768015963631836397555156928823681284091406624874940118726667060929633574262711094189891444930469683646397162240331987470195424194277872450557768784211560575959175479189166145933245830486408277457046517076560304195577184205977627341108034953417939780576887092983199067864140806416175432448566748572592477758513844410634281356788780209446205192126116364123541293802133025267839034114963786306479147498087153290172486970940641553379819871843081904280140823951762522925689281335766973880588647242093717291937046563094920922006401313458113221834916903959178337090255054632882203489665032490018541801816034707213184507733067146222147853416160251435641360258426613148154208510844150249998774867769221644328857381345550182297306992835169058870839351510154798391020762046329459985358699388630971912545366731990470450641675442466408956303147899351744244797838172187516262601695050856921637490610398965156479988748582608980789796935961461885217278130780393018796292693565696679298306084535024897446743603016515463036945616317919088348618999640357832255850122857013699901652933026296007988471739356584155620930090803994638273494010153242250465359050661242030997261986438126882789172665425848211578362964000967045809304933909399831904376984297529640523248348870823378659863120769011186849753290656679860638851053982539290995080495092689930062175203560909795804852969894738923397595605365170826777260274031864739303438883182157515425313374408429314100148150066200961711830436110606538864373213486572221671030663508582758275138751710773824563597600719604151683363505932151083636932138570012675538143897429938080089335616220688211970231554299246655312402016503488808461046072785835586369523735084405165867547637934861770573885975247783610430021367893499118158318211765638528251717090853105194522576311380209011080818445676150031867905563533254571263120719158051299112564128998921419326406334111090450012999936325207355967882308696941439054643491870949249862637544367324276187373630520578673470827905079888008178352052152664614118872406187438176649724716263492214647133859541915678531639960212986470312898677214478047185480102185899758375728941876440764624053507345405721448832342554807470230527052217242363638162387240477422546405604352721036492088966504507391009833709646415734633169627307835584572159910263878433476134014599106217778495209721742931106432764529301519931028875702092710904597601018624289262759897666014232430380822416935304070786030592036486316144109131547148193728791557955219226386913673385292489550645485166698540177150683848475459249394201233911026291434332740589809853245586198339571836023312429679098871860796183548791447881893880880340531933597620972708509720837716736073229271769767080577379678241385738428898659053582350447770261766397756879789635557018132984221149317836592086359543028263893233091112901606596881658268205574719336462396322250952454560154971207612716420077186324330826243446519872911218777841248811157509101413847904223629351461695829199094220072975029485068625341462988950882029415283835716653489315701153814702085846209760207833327425010163560017616436601316753703192752280790068769040710736539273289355910538242371713183037313405206959715104728497359139685529993362429343856145692761710573637442036980298505537837068042318839050128130787757339810794961101814338276619239780926304010774392843444688796106459289100760931506947837460952637339286037365484145322710533321333906020032695162437619552947380884457892037676843660104829868954636881748430644027452002903785560605295953014272847912667029214563661133256392413010122267359873299623683750826049314904016097634269947073877695150365705617875479762162229273038018380553366333280996019573678220204110518859464276307419024496045993270970997730263474835411026476827254176471360943171760273204759219563120546549840690718368165361064267551682647784249736399984590902806550010410425059352534705375825968409141823016447666979650543698306013637608003564188218859855557867340308784675757566907380605716954944674212329878732069151929550774519240437997406277260846018968615366647106563518065722829555069863062739418021458459475016828325010195696516621882339465959268287861256767753162667352608246533554745315794245385756004307554415858768587469508271352952398326279615905564068946376690446141420203250039408763451457006433654213368674060603581649070513316951144385863977678288235000986811480740132661029194920635890763062593664153618588860482664655392401052003136750481055229155798268204394261750108837436573569190401968194330274954724771269871883703641610783426064427236407542013169331426012350579649991584159466184814904123232713295273628057261225150358976273854226191503509240960208218704950250712674807544640050615892940315966875746285910346884910023724610752485100903924017849627030115122586678529531809384705827902322980263787764842725274642357656577604889581271999108177770448496076454888882907401015744670551010794814766978006107089279154014987199305060298890033779669680319689793892897557286620710745694406707791682144499091746959381531336375011821545764553579159756427179093603936937472707366757490646586876238942935215235334571742453699496874843858857359214910005885807813659609089746942478175369788692430624204237544411352078019703187360875715883015178814520366389964364810800685834074390155301073950861933638623650259159206145216551529055882259243682297645228718459039950824176292423686327723434111423388716552054080910225764961023205741919431233355280232430610013257298582480455339138251553040108008333187825940901479613617484594624882821187504700827031805514341524510968014160819173637404150699650229348697953331877529090205017084991524590226602783831054285076401006167400928783785772578372123943195814547213948015383859070773055506544598960550489109030785274021188055943315126456440598589369711833909112587634592163413818451990991885781019596191079772893825817446262932329578218720726404495194566914213847122577474371036760775808818691858922971388563806025265857772904210909232632142260243102132912573273047961822983892354548423327062663962182350594367936779511509090552542214542091869206716233624101854618119206868817625091021932431566580246415639320441403659972288365351532993556653197006574932884016100968489439830064956440644605667493215537201150665065715054952054841812310985550259987486164072849569910094959177147697068179790154601369253240858914410640998507309628383167725650514421998561534003862183139251170159729813138518284967120164028644212497590491561358360988042518695003088758467192820944005089796760439190936203766353659978650596297518966971947804928099342182735172995337537034662594662692948484658963359779048069900901342265284774063402353442385690084210514777493092947399367557000243369631835435723677933303679000808461867432732618132202086321053140395191208810922081316639192790755047493959680289948203587982406833229427670696821966256722606720638007352842640333071630361903275045868120882528790483445687228321342927522618693984015701740590103135226624519014702008273784861723670900604055692097396766195246773467200841429372210362201298091124785351518818895404725032037017695974930764516392507699386117936463209445065287166667013994080819143030567597900618573016415679935076924067583218727144312150883412834834059533311125901557941619385411579089062233292359401127454199717079725281513830232814688211942204913333096990276881546473171066867073151655652229766497460386338057508020569822670597237237195609982297626610462177331342334504962352275486743099502833677696044363699079048371414275118382344604723411957076057235463469405370121709953624592188350688222994793442694306141521204332899606511645288805811538537535519213211683079520785904392903948955002285537381638198222477821684177001292370577099811507667481203431910796506056295038908190537842177687414605254904872320085697677979584627260520146139163348685147085417154770496568787313598900066803600207114421586642725830502220718105525216752832322855869721077920926230405680306049219069383850587211609943400283131899431345077500548709016350717685154612536231925007426864364301263849098963071610243826943468288559152508389689726745571598363466445056918373843908740184852263421569282087243892987982861287932726843159798752745800031839503665873668143622872806954349210791523311283789788054308851924729417593250760755990253719071604477885601646318417139063986002170659829046114096267301403402330119375039823094199730818813092376423899651248143102389674184333890998247092803634119313287749850818089717917505413520537621708574262829943719183347003610721661390094554013204790341057132290443267025041527246077281554737565553192002143048791059173301841387775367124076908065990517441822450566129024829727677523017637196675339871843564814162650128282458559712114389458668397023376141277626646962626796411373826626311060205787152210711221189807779957338948188859676238273729855542864558493077469942202786869515881700757476350051247779036823473920854551678559165517645423864531104964905306983867063898435527106067545436082295341732342679981913744268759290255530114916045255149139668211744979198505775245007202126164179699710716771762968525362578685046629818682500196143805193733826927902570058948913635427560978716691029911303239397941996628008745253500908614162002536510711449806325444138027786041399580647339794386515819044959920939434854414234031620562191640769459305247488292889053116641270402142123267984826074792360104362446806903178025411256596064937087747070454995714272891404775974436322632659653422102655218408871175691564349753313848370360599916368981315337169167549378234638390546085727068756116966819074052664413087811969386685400360101078406355750423543181241748404347131770877241897205575538135103708367776675994944121462852119112931807110275712275370480046524231162083840368557001023841580102219972676888643124440539712167435220564057042447734105319036722911882263935653071931218541624143448925450302174977191353816022166567708215722410260657524073917342372508848838795372267711120210976846744396837596262074239199220654596658060592876228570801181472919366999785707783964317061839846600915705016489860333304233623169883694928666136687824176460859551289562941104410064092186140445550301102543204431103872618725816251079397451283784198513315272811665362424529291380122362998639059762074386165938446361733089955460169378140448885851805148277970680281402069230541943451065994469591892421691273298202584117913232986840925556099781386896979082522670609232842777847778151827477191932672706231843004714396958023390384069612672192941586807168655701396080375234627212039490522577281559720124190601915355208708064259643800732908446827844864069369054467731317782148330665157961556876994405673749691463525510354282797535298852159236000560768151003995462682849127692827151319339044059595287643202501202440461500669339041854745528538531361623326517933868445412069247904084023840141289557591289408959233462716330480996740651094947135368405113942055985237178722560725754382278497825413305310554491776094409509744392477761372459359575288387095060684664567107831221161393644059579656154289758593531101889019269104049790936069708061717680761495710489582027864435614665144677646343091782285914948955605773550303574954828104386492454180868305988462084733973569068027180296951867833380327521634113674835114532317705625846518000509555234384061224777657822903415114694331412081945432727786284270609328397703611135190776143560897693938258291771992618757690154778623691696126470026062047703216417032647536095719736927952674516420062452804516531086148750026509196905929504001213961964812889320135613775342192642809629802918095936389309141851558614684383290601422554429667492248146722627681047338764707164191629579868845615151296670137681783898443480455376831951862147049947361454018043732753486167072656119681995853554547494408219886042115751946931137243555036002817888698358288954345407495555420991766822032119721547076744654965848578325131708032013762711244279650993749025104639166009220277440471821477353683604154337564866717681066667482794761325310713869250856670642172571973412521974917052235246676437455989362214096964118606463487881451835921744826100855281715356723197884211939194778935172306527172111247097163076739601494210335570006968085802060726753438687982826956228116066625840256909507366119369359447179224391633727331146772852139976463025113900027282013371642254973276822338198193579696858228292669503397325520132248378665226471394879018593780150440980876328694646397200951875348217792893293448029644711062779917493657724351158424548131395969699513548811004726804154181956154929067794299845344720932911184821344577522714233810546284106794001134237698112608426020288577765003025323383668715976542017779322582289645206520154728797020661764754917008700503573898344871631650301845606427628258763298800971461586374285905152995447324225750993727402483599313078010293951689814316567643696452889442264230124278124464990770280035120754442306977827479156084895172218323724030944460299335580821756156596275506491594503654012158667344790155364530885169513545104203485115943133012872713935555813971564672575911143896592571044592406850333674906730694150215974290701190910666085421182836919850846866629573525239432261715328373554567606700668064910324094267549178903566826587131276245184302198425180002969629640338295993409207817271014646697705127553735334826809088653287400319192472495782934635195971084926257803172780438732452361084010042801426298750891412743664362811561095738734834763827362817569228551817875076951735059963070395067591278703013434362306274889225238840986919830053001464897155401756142780675245478288020465838198133612957274565072405220007936704596020615823244865428739680402964931927917940793485402132453487907058475587460695630478737332702336427856413365524903949456385170080921314307505899902969360487029891383404105976055205492053030223258828804794631961488027929455436665804193405303762101745925636955302682786140600576790377133296132818237463177037957595986951562655176587993380962573180855894547243274126697964175229204083865088244110258953601650914253642943857458071483648919447474088598330956304591926776657903015668373379104282757035584558476429870223786724285716043660181301456485823013170835276593003368234392763859976112880005050546952950701282087536033404952288007666824701086759984492230466270489650040065666260667656577037135563699082167261525489288966959451440017659677652030004186705225834023035340307487155434325974783279748421963007637528519075857109113630244898208117643047948540629245055188695659590075583080236654952246196982444170046563443331184619783558676171054772858728668895808858784649623468148865850265917157089694452495928220147474750947975151973983778566347333935878972060430184686518560955324137243999046971714367540122836658182599745946368338408053858889668359365143106997841344321051327168403518136317990545992460957649012968742823798376992372660644335334188085324463691562684518274290717762741948501372607199555636566123839187129134220390273207554717330567948665513283856676755189711245477981221697496345921233447876825002325622282388970555371459975410168392973280912207393007704162660016292710413855735845402685014175527456684095403397346674892048058234738744263424927278982023630302562934956436142473924643874318647988368308632315565487342751217249446721631752541081250597103943116128458878503015166176409132884390300716859331300358223484640074793466916564005004620694937421894656341490694061369260119028651533910980124298024952345935598663519098400448223686423607534854370173574932300074171419432570777960947194454519324413163218090637880894680220550234010597661873713852941595200021001729118740951885967634867494605916571772943251043622562604310887230734297084377178022003407201939698677880352322050063699998194849123832601763258699817937691700596181252076936682900660316722046765941588839679033483933764647146714359440255989902264251679190123704793014598868301518207983133576576987032156445584724317471107729467407666056180304345856635883838239421595984051756170958055322457421749573220260845688888882369838895193770336331970893654095807952108705314038395252218810098140818208936276209956616176726982459700527541348207807529018326872828798418830689613919755584189624837567266133290641873038069088068363291858907742835961741845671051820113242536246485265649094680689662903309355354087474820469662986666955282851735048019774464234988304824514862506894770258973151613730320613802307832575619051276823197174726052506414551219232751902086749387301838288545773255767678654245734139966589814678477449157136257479267909443241979127861431760557099566346824063646112083825202080814110330669057651556011188728858490672713727435194071448599091336900384871420658832624831092449064756044557765557970326092913728953645033403094279451137424957428693431732792850203213186847102685246338130780405720469005917328057596890434277794135349041655215202602042476509984262404677481136371529016747529090062090732002439735228869022133208654843161336813371628515343634037679253996891838070792268569210286044512536647344088856571189323513857465798161614120532872565504277846612654453903303157226124695811109986410629390032896759387335304133461642923246105081957002881163149632937775097836845728648614026375870527363592596047943060208366165684029154925764408707718082662033178039307631553530366293314124147678678377335543773124694942874888849344788056712020133619001637565941002870480560115326296778945798385309483018959156803617426299363782749054582402325989558052264796629241896172564138332022058992734058525110771529779623802125869126938761279401574993596235523515067235612531291749897025614772137217849970888761388085754467878427172768476933238287957916405853325641417699873964689298271733427768802306893632416284235763218004051593393769219282504337099010262439581894066769281103312774003928780839467983878560470484135401819542865631434361166300717214733904855920070388172789592779312403725416199643790877222175107267934698806270409378201696969230211345556788910655600739395335550443251511176692353261740117531824007436308511290129469810856539835739389000140201257757333070945162201603830292048353735474628554415652161473586490468277817181285769973456445048980231348340327793452953354047059044908280925055075302397569320421651670044998646482020509657144861597237837182274081735907310879835969014819660994499096843424609623268563056893495392960820163453919651591251492003606530333496800758199454197021498989960203644365574560134513656969610701914254671277516327361397579422924082632852992236269791081103423206857209041225554807787483455338723241657939991588121348603129519610511001334941691619336922774164666722920449110147434466425147737729809099450640346116615736434711604786322994067509981580673002719522871682113308679361978462183370972435828002851477510015610577852940930209478130620282705238463869216963522967877060864723298826720447214099222350391412296963503180752032061728353334758014478704473783809280163838295619379363680165162432878133722593565015641160932120052631619987554538796324904392058142520039767407783784780376980132836262599751592907153599146398761717474335748683975221404169937015377142258316375326753424388533608495444628777651516577356338592136469019281288586941018805432920268992796334383924716564306930016275685536217816338140334667309513698675148397923828127092015309439644062057224188049169674309204662620621591802679931252877047860832392883032028937946650086221463217269399988485815320381378767714914885972169239251701298177284442645351348827251949265542765778345817772910846985664175547320369439109513797001507601442093728962137784264731633621433747256927921628781771696496283272951179437216527501471413807725622098672645558912623908096389669918399555571969515284561005781971111812696918950679775376850229153944523784148507817995509556776331104782322526298119496662656960362114247649955938725631256247306972830984765335156582035574824135372221765970744519153424503278787160791369366835505764138099972903642717485659358354864833766851281990068329691648967998462719335796644914944323521497663474293728692583340093334493851906687112904550167543187294659631750803657682677876530272601877520448979201434038706955443659979825286662039526029546112013511089293845985523408644547159540015939419954779890155531876270921426189048497640812269087649717276091496040134210208896912077761991605194629892977870990188806133003206606897082291576079858752878960778201329447353365108793204502065827887874572588820101072942231142598618466374358589780803192796961456048930463117409550342036713741763727138684819666135222624309109492226962986301176643980222468524332456123069948037430376865815430550756590490532472876031340601228245247513182957916142439760371609244268231526689647755470726348293069799836182058372325340242546678220635468528786305003822965154907744622672597907454210125419453580761477703160779915958687501879054575427785457101177858771937367783030777391998542730476354440056856545965216297090041719846673838111681601214039127623517755576950460751633645146687363068339877905888844036841353483780690288422787034182018764024660169752439364932726048748958337071586278914588130005634169720342570547878806679498130564852652253194658916495866378560019875425488301344337270922809609859631384852310068015145086702546202046164087976780056824734256791650824647785071774702147513899063976316131102820982882226064019305213730196067478635547842695625799540690682026234214091792364456890914383981221242742079794025418936356906078335127759150895136503480528653244520404276388699433875003055608840041936737305312850530509338838246381787468265095505956328565235759819850044283635398730989048530277162733003574798640951678280046957453683638786388435970140414175162770778631798055591755848409477347280391826822396965220528519403611739491862277973608736477180438897999647576949878815557767269755361141374058095796485154074900518832197460065413385070086314356972308314557327898668944062593331326893843132338849187264262052851687518991389608979689972040244927569282839570552144001886086489956552288485979836144127265886803651217951054250638814373375472557497914327603793381828450163415209363035966897046785452894414583182672975485288259712853271246055448771448732507329421703011907648734783015026402253206632905170462149671695637215384731678167037775034277856966045604806967594588453009599295128712732916064590460815757570480698614626545514622713303257972687362632033129914987084486451321628711085256598859184240578905118278405407470504744829020454919748719823894454879332903019599832533621630798190726539517453957635594931110097684955264823469989304879976940074953516498379895959989738956175990101675576729612392507272543762871594532265365545596185569974976981673498933500018555620640701915553408920559592301800014394522198225303849170280045109914864557040997753307385226075179641383418630143063665187241473377533739496853910740047239845156001859447739683048767889635806954910321508374180327061388710584939592159325840215018230205728015294832846295678738810325211825601974139844720681409342804308947494322537807159596739327310536394388732638443743825604987316430730926440511324161738027698689314544623968938750165946966559386448845682219268815340507643237655005444972570779218477391675946671144569681718596973540000999329646302660761372173679345914574879064153512748978712130667496622756195470020642210144980876670680354790125194289965461999574116288667961824162564771751087771053948070578856834058647936988393128983783363263630677050045120106770343391678672992153675513563772515498488205130621510529240091109361848331680744165264215094749915375047272421864220317902829318994744743244852298893058280064732480310545686953613561433306818489479553535054584980317304926230087336610539169600217712053139276580800746674687027963324079877444752870900321630439761590297481305342987626383679894784488636137265508790825518705261659314242802237390337599409594408085625459573421425580836374840747442436682990316197542023622359573955549046031659038433806818953949034105126893937545370702841575182241779928218274734448992971963002023177629166139379178980894146693059641385724863567557163890173563874455509784430003526888416737221655711435465180146110960886438959419260587586783207121718806422114966052889253082557876081279365871696785462382227938245312580118093685115029003610068718226822478358443432174297995750088135293972319090927170439671436419661874138264289282665464927630962672888549784224822076843656750232431805252203194403517642020900514749344131041037756219917395400560431548244361588117028818455455902367468723228903697691936271932362665170981643846925564984170899095524618294559322228030389849893146417895062109477314773380393758895115154268396185278838191940697574024379307262930627829086676392176775275643311201514628585032382125581016883468129366539562597635388948007314610864869172616685775623874695918815484663964946259601069983240921177069006743928600747165113628159420636612583379005668100267532226287679889277493620988685574663583371888138222165573379683627972900083578254489518868506004616519288071819820655449023083626293807527508898002699096934335990824541633227984281067772328291190475821377082415251960776283258190154124175050542024179053832166550054914401266688884958696061322561199599106164329355068561775305183118522759544875808773260398209266745736605174412229937167288830238458464075189717074657395942693653547819801004899408512198993174528581352893135442603383044843146181910842550298548313491820880685961808865693662273165373778636263378391813193746895535808306147765680068302981815127382838692004275922039044305288873397172758748256348531083845208412926550854960316609599446301925059154244565302378770653773398360238554356292869646982607153513899612665198245871540167611289394513725699758860996774111810874504597503975066592138265869465782460239495894724994874882908057864389291154468607151996419917405531119067131010301180142469528309726166501835397063652391430576758849311687588207878936072585836248160821438288960143628032680052995416856791159079373043909874528994907965868731380632680996154092912697778883674616750552395814560174518259454720731351123652232481832337480353644665230439503506379851084313246246194021179213648240752747127264483013984411316563310731053214939606944761863220335604035457423742050129313665371508992305296757981690070371768941977731869537562739483091460749209453194572495332311440783030476242708591857794752733403126407876387271968490750819682526059727019420445217700050025324041743777889418156851567416964499212652831482410537891003947600396154605334858189428801044369757986504632490326448768970072456639114839544897793107666039576749466209133856252092673041763034279523985355295739964015278325476702031443865824433021839163635813131769480320847383706335229710139492411259186070766407853282523081702266960113852365797021246442651087805595976491133842108982338924629630740585885653578594332478249717393875121406304976467318434923544895129631440367475754283298263258662480055749165723607600445430637221274859749931063376920781117216043867800606756899572942595622555001327637528653229095173132113990604647348449367467548967465364984918972150235782440315413496955055050193683809706577656915646832871499391797579603497381840115904647310980435713829627733604848873367187072734262966402709302809116035252834280787187434069930209263914914606660036036340577177061367988038972906953280305427683337919033322609894293478269023726129063293173850943044532000449256876188998313889047671352286846823799940489956998557655407052828611187602249513176891428029572542595343110368803195552641934671293940470329643231535943615992145023661738995568423759967773483570749672494765205101753099767559286989750871125012992212664645657832323070012703632230616475154581227641081974042836230593042033714967696315704968776112090137028628223306722499226711019411784698296877379793386803426524217988817014988718603674135847331897979306841053519029199217200630734445718600727162193457768894470740769435795271257717706914215179951951743131306408229522893331718764575706977579564948331397597888168085413648175721146717845165543668312195347035585778226808716936705736313561547111588732442823374080704174328093638394148956471971283035992402956189640277423334482122521986233732217365960126709076715157020174284103719578078605352505245882794461294100631348431504959946846333246048659731250547051194654150159200247221742101086145864337172952577472818643823860964849286895490984619815110765112548445736105411275759177894780120052844760067809364166255032745583679460153082575757464580975249053792624994196512001975465349562427632218599953341777695879181219484353726847883331425323320001474140359044611019609483793132644345769600598167107651506866363526713158208384844233105158684742600642553073517912462273334308488717603740978150672252141452788432158168437325336177726884683655055325699988724517498541580978184377780710629117120465881019194347478054834814119706332864514249049252294629213626742824300067788182354431293117027347780447838978181549798575971946207588549147506708587432748776975637495199773940536248970441465266710459272947808842273621429885159651158802989088349233469420299376373428549900727159921538518038825137981463598358648826001635314734217121089838258603195685144720023764902517106287400775138170628856192189129768708135367687680821035982351017721084201810020394910542475726244063183859787070355251583537242489186093083324440510894692905807010135546601494874365344782287964767364351989867051994051195418760912675111297406172792892043439230954270407469075763811733293040851000151106068562016509730901759911831988347858770228970285691400943129690823962722139889480124594785840217916318037354493168628788694013292054467392125948947979681694140614413422627899052998874609115219097939413049166897035650278115838033559430084701716446116613669407499038444759386394772925623508283647301828850338015792363196439255261515716329596177649132623998081299055860912410296129656178989964330420612077324164157078996407212973462307175609091061111616316429601254577507993716011142941082307713392870100622321248265697935021603258138309233553388864600972835006203564280355750502177512760932479851195204576878791402683557652010210743781949782677635076784186573413718565886983508072244074994451016859918723012629865242977018990567352494311474483531221757639927094536337929965469686309878835924159934199223974313693522370451765361023028228110939261617650655511767923950460195269188492170071354630168949959840588307784772506684010737644330640071617854056516119674273656004235449706519558055433904307052412583873142228953448142220171335017672610314346921277470689168473111153039489482488549783797845210845126170232710225941818187090812473905668251359886382963622871222219186261756705476058360806166598717171968122751244589544419765743337817037444717785241210717370060812472046711984021758214633395108865714082999926319997996453205837829287263952271738092953149832766149002724706165130232010063462798307837982337599332882120611947885640136137783637393549307142656782769764666206125478105672316941190585020826314028417039218834000299075944349339583441730722514813033378181703398177017185867912037102617416833295865695201277302726627668661003277023314466383994358670502483139194440845362208002487756236301612055324668744093551054737723397990269785170805294579080365980520225050278083798130722478275425880560864769953042513659185928956367990416054350384170373503780246612442912482350951699897709648450466067739187414653448689223748999540553107165792817793484891942113157124486108368009581408585096574190757530119126593070382447878984387105468222585305198393334291486769510643266043447946290156721050428704156181541510175483907896480444189766005913085118728462242021265752603586989022389738998970539122763971787793833307020274666912191087856486932350952163749904143996149857633691887722675496187690643872058938985967583026961456893615344155414913484114443483362469611631187125368009145841616997000446809587314762637264554506856024129770284814130320537564412806156351752713664843408925933141267499597435711025327624542872315815510242652867423143441590617383882370017703234435541400289849034184503127161908431834679307442949228884245415976577453973540932368253341508172642531245763983309889571513258270849121773741733596268100136261406103618270859675501571248067173177004597674929999192152425226029712641195832007762888300924886213424815945806298389675618991677713000773866142186299973397674791794258078194140703382925849618104779891256036254796907411937986668446221375486820636569774085133982481405833116065299930203980581644946891088833902732383080857695293059089592513878508284916740771205167590234216921326130477168351586660048302657935745412163193531247794700964847432131948135412658716784538942570414601547600421526053433808564040608044634846242568125810221693719271826501338452268023656970797349905045791705228590645841911605597222419078565593455111043574773378265978954069751086114176639558602712748149971297752049018237599723699674826634621297761495698604654546099542581572598219207924919918128375706219057715674130900176845189032039231008884259651832723412899251272551973295445791184926001791073121687201249433063119116448448531122296650793009290780235605371874930736490143784002831028021218126612274763455403364218331936011883892547587982033579759946346971429068671164892622798329627924450626052368516050163228614530182064397868428746279507626314545233021860270505343386170763458787951025031454691078168105016420484733708620149362185875478219274273765575839123815206233138176904502543704797126338328078755494094158745736139807169007647368624115563665526260579584553125182769630493522650144159402930448229433952609464962496206110163975374973896925898369176764335876375097149749524938681045407628629463215958070689770810582806136815574518159786374394919280383627988258624847136085154997601620781654456410223326869969104492591378808285170004389911560385942170174274949119962580431159389986669810621982883126345981464754528156741180727848414401257436667876536930362067256806840272877623331435518163039651839359956823037553225601076480057676661739636593325978730688273041806883500648650037408643398315509872701811683572866075111051867872151262118838200675835710739626041263627987488506726047975859605586837772466907825338525378949846749937403759478411335683098211809584192487813367023412832098430042224609488727484438364305990616774115888365177990722572168095582698698252261702209462311968144760723348882400279763450423809305114548445747054737005548960100722149564112697008536960683176779028275331894386883697308075449175318445102504664607007609154029936870417863680766569331822147772363897076061503943898934543413480802782474577995273084355385874314738480422801036332996555250234937267589173844166266591441478092928102510958963404177390942353111226138903298042566417082908048380016781936575853257982182129597888996910865859295460923654729031963366653590736572632513774649466534098456850180302468647380406274052999562708649582693178907626243502973562467007896081387864571571590942074857404269630439664701883232175877425928078925623873641281022320061575499142724640993355260472198385649381076772666407577508927082395006959422369147196887157827424380691006965129094109292728239634272956851466005054202273187773295420421686937243171651833404519684424196534213877279212409147591350478759497679406820320099762606306815251949310099496829035410344443693078224301081837413489958534032020532870961050290409882838910966577800657673116119193276770142725298507888328409107160516234692160875114116118467948154207352892267176505762869672268478769524743210868838982633437762630362750048595856219128038685519685747434676192791140061562027055043701938444391549688436709069247938612984520181483965293114408213663907798535554307019423828511217972135501565347357875207727644547562577407242627860797023970012481753985605881001273016279616142369162866862527035398188358674303503609323094877947065941837338091515815916467457733629380305054382993686492862586777377066433204654274956755585553537349469689707356662529941370722664981977182125259583778350716000959509594348996748575433798504840552798757626377653009314792803519209878982518476985091462083003991185376596824669545665973657492330934002850208919807467663247090853601262298038301694799933628806768202585924458078183339901225858505041575593545302073057269747499750309061466372418313831491485221925138257701916726685021788447020308587071083585306676175728597703015319358682752410542056008232480497996130940712201685443355669507117301878418778634499391745053292194146731189754651392517477110417663530312336614088123648997206484872620284926883340745858174774928913009075607378879812243408723927799608289588483118873146915735570821518681350525399122101755684951377991397231311154717915647845895324462002213977355717286961996083901708967722622978439304138050415755027029498595464278667565104123740511938522151514638519127391138307393199055310579889491552789842777620035479047696130539950155651612064500874744867178502801756080534857002738720811238157377791375806351917430837385169239975083749955380876833794491869805829400029689505236165647777627771763872545407808728815634189359058271372534825153251615122195930332324324545763722316514877129574693474511442964781218449572705747412354406275676024348135013253575229190080001508793332577495031543610110944261075380309904714193472177913894843095756318143463297062786835357436038173045942032242344868053650401950778768748250505704339733382449335571610755228922148492837822187201496348114721601328923249489088462908738038718542280607962976914688441734689208801516401409649554983107128335567524004574347606863628485129696808793163325187821731468093153960073945747646766505533554588619865157384676703605005127788724374541175853017946949190368441418293829941261150063497491197775350269212336220234063270818599199378397040431836467709422090577038773642723742201809468845917749586421072440464244580727389964276213971368048188447582443194827979910074319780289365753335997998802108807573276040275523659706896756552398701847544071794725294130767530810620778348755506172537025770659226716554117205909041938705554721177637798279688636576286326403005965541890987463827943237040046161118068439840115054048839709580279595655861883483906343808269631022524777782327164506241248676789741911409722073214063282971322129132923951679734869458749985664096208306618802813959768767807277837461978000452138168404381202815445537446714144168778614247431637052158333065617288679172798472910898697931588890439949932923361070197045059158470897314505065556321246804130627299515958234976992317637127824873872698218153432925273821847757841521157262286391198045840453985050243649561687062114150601102250081781275563651972351837738902920944364925675534272187481873678118958010562978800084797096254274272196020850155535604125548007471204375738299448716640414001909068768833846845687951475624197235543721763806322869666467568028330260111313921922407912925765206527036800918486953801219951489677941493261257649889754618189584211348274277868090046167218496743565350094804252327356028873503734575678789039033947862216934312740918883474856456878156646094173878396261987729136645320815378283088028812410459600907759945168032724109403400665455993355268109936291004094771462763380800859348090388238742737512842631544318581101374203182832203231839869886109446053994521836229814138458145384667613858831349723730161792610940766010058546547775586748199006599850607616247438234376061982399700044893474471804655558764380949243879462034254952080404245109343747355414604341295835826117153134078494873267115676741962570772510431245664782303081636067139544469268260294813196325706087240526080668564233951080536154364941346187034374153157906427193161002947727194554757634098176146024288350131401079677160005067265433466662391819441477289252155776606033021365457972978750432588379605342138776101707508811069859579742597448203788490107600109906570004390805045127340314659904598158250538311931312674125897749680596091118725848007470108681196547150753846141919129196172806829871294328960638677101996734068272090374541501753658735503816096908569939214203660702079461892787745976104044751221196256801988685272182903510075476075451876976740908435718676230262307327339314804404681623347423770827672925111414105116796102224175589830212826849475454096362363053194562554320755509667348892606191683400287409063201800999853728939940145976588051716545427686970349073227080323112109359641726348942411119395938137826364475084252014269168932715097503370794218661783098710510401819046546642623384448321340936466217596435841833304626906536051503203229770939390234054409303686414834748553701422849927843358558808154598366932786071980723186797782872742099508195296287246067189767006961901991985532682037511012363108734741898717830165490901915471143988892404667301104709846197452201295939354479896011567819934101763702659476984577389714439808084092945483054752122511443438382333672145785673266873946972054322661498833107323522528081825589144644401099433767457491301642368852370341008354930679248550295331670044122904599774182355556753513063089049555272066722338319219105606645921781736690165135330938539370461277246153788076617575443002195338000805746310156862575059480163898976398295382683013442455969598021096122626344574715497797049032694040335528781831816657798194549193199583985237977492240202640149967636672706043766687732642380716886781299268850172949533921273047878399852620930329813827687742503794900538280368260731946615371043893236681691790678624534416242379925243653149028502881323889260076614212194544753514767812725832196083301037677954959266535339929753926371533169823318108533230686904219421192775797270833108726181357214236776665025273211178145259437110557987968569763187062362581437994217099453265186187819215181659364751231448904965973924799062850294911753759274935198430583732599642918210420333852899718000139150399243392758821068954264339724404856752282087381840368123197294410043565525891114277114954907821944680074470861248092949360807306750563144024015198567806296248907255911656533139994511093156118562682449824989634834714035156562053980423764861058042645622600991380840158908919224613356686560374653687536394285448998120279926099707180649959738756224715439995909148785725651347920412178565696123144961813647678303990049789152079221463516185191473868105549576520097718155512007966891599703875315448392566471986469171312702133040577536915211922457036697364682250461684315960820544714204380836825992478517570988691574792439804218609017156522020943154769145837773507719572065393416327057077260227742117503219005801332786599718341988154084118255806456056423938666437201293478432635827620560267713027815241249094530692160868514119615731157251632575733075782014885579131207520235921988595790590991249158243633682141735563843046978342388144772371829677098768357373432923368111808567137423527184021186330917279586785123751338577540059484829816410387810241646287458579141569955055296036223570381002544354324502720931150789561966368431925686740339679036052896181982220645820322723637869430212507353786297664637192633506671954805852804920785341740563270663696759112638069930891870379352767199516808030315853578709275033757735361566790036744993521112538365237893780181312928261523686610573359694588547564923272744811321983420997831080459829056902820866578646055050109061774964326495106862993107152181571674354004477254416196644976993052103177323177015495136207382860750721209023090799163966649147308576965668998165116602369941336677278273768778101768186842109141080488808772947368362538999947129884059904594990280138244200600315503067883056345643566315304077946211898751132524433736189696307862906810541847419259274409228655723924217440060671344109806839187163600823349430903062499455901898944334832454050769907684196383354729628173078710896187533197113208064562723914524402608731469385525580363488099569231554115658856207002589364430285367571410860247818602090118116918672311949440323163118498689532573154069501246011656097929047373374967744409587767000919673278380780286702177722598436949889021877672279200584192305482654284723911554476588626489049017951884740348425310782357324606566022111049356619926845708566908450733563419063226002733571415603527469055230703587667036134266306198878330209592986648548336861677643869721376748784860057229050497540302746084906855002656043184478674893670985767273962152753941910535237393551472401198286598784626454997068602036629967335946183721392233170495455934532644226965337835349317628134663915253331928962840953877335526946670060337148470231249810098912824433693847995931460055607521045542694094244810719129789261488453639193494790955587102874063828810451206585730036024146875902403516666558065257029884117477357690982808421122402829174228292647192692705160362794241147539491655872655292140995894191342885662259023808838528810442989379396030653721675484265654575074903513722914974413583269363009693135503987571502304382508488507139445915319163876437148776820713282207777474467729100581122783201951172314181015508957343379885480722673914035821679331086162808187869043773878798429526594273748976643421454985179124113109602447214201860708248679310223217642666876870683403558251750578851873229727214006619870075759779430240722975328227697685909609021070517827990788090206922406918997057082529824671370926576471874297265666827288168338024850783910209029707187332573708322625137122719663066714218374962072068260727688323519862370741912554599275607251307514939948116206495701330184715491600958070613934875085772000737648600420467849872804308346067735254273773950126842075234163525651875859107971696292935538540785744858168144094877443575252881677141679674172176496348404792628553457240574860222311182100895530448479954087321254525443182114437820839141092554474404557134026728347814368278937599410809921608985074351435555767519301776407479253480934244322459584512459143665129811218835374678231770928318936254528265536642785527905826933732788782460212092707045364472483710424734008938547998946902702733993241414134611429760358537383619905956662932190873703705716572397700629817026649761636392839762843972410998326376850528196125954702807806880326281942703626770612599450978252530971437636565794182329578866923259307341379733207449081655536307236968235330657479337782491714677106211354737814493649310636191637635223921598528376660820727040828936307145393732888229085690193954791840397667965341873610069040197019687192149782434943890910120843879563338391029564730660451055073648303565423549643912763031882995082248769897537518514732879748595578510141290602898030489200174957415759334942379941829123115425484638581203436271657918665299869386866690387879269670886561091515791125242141838670548695290386223645371946243541674467677903384205011536769925781497526975395737385662019498554598381380880902898630159597410464932673468261571172309074191517506633470686283426847996069925186299363351976237173874733538929535047190552587953290965640878478748912554676509752232589613715556557733574156380197083161328348516454050563757190285064744592383907415871772895132099973278931815603056652503091686525192720243124414996283648179222636045956145959442787523841794728213178889569604787313008755190103789588450320262687262983484176622551603496637121795836876079835541640328480496975799262644400601573114853847788549450593943429797556262445831859602433777017069976971624622873813583600903682277847645910722276971269160435997410846950664730556772445240454793945328677562592433928417167376002975950874425952141244613975611655607631591793125404971179807282725657048594345103489375192906339864948200965786909147206968124433168294701821908327058234646759984083421879236415844410581282090678792638635094233187030960565854747581294766295131952922025305174558929105757903337155394791976669544447313225103952851614862762090021178874471317358129071590190537943307438796508112450347505542814507897693219840343963000284408171771108350467895999699447761038365237024711566029754305038416397138569869709007162428965475817305344297809349640969880772128237031277010565334709765607591898406634204230514468955799213287536191959242103254099143899162432702767003887858897633606286359026044608222463678000154403263700178927809021384947016418042963784464375807303770627967663097845545644308555912303686115768625091249253432853871877267086784188824594412149988098681966013779665626668113833772734295088158912843622586556170887393412281861488517534690433967729500219496446835924896533869082958711464506502614521140616409924967301329979570310240869892421147881413230974908835336515746403307421925134364582969436096119732686218293903435805963218726059623638107535542957762494347659702359991265204333153499777737513547531712205929338318740329857189121305100175642565801946646135361778914880089640361719328344666186724970866981994339612745061765482842613054900445807953901112546546615141357141435311192026583329464406102352551959311137081021193437724009943885565326950652979063263569120589531905661181955531161037263495079097528298503455320849204580089408255351822588812078606633333127950614108509885043246829176416592110696616392399417895974569232134855173939206356048997286007022160758824431645805102379137538916126363996359285107070942741660195058669139893090916065385590871534390031212275591600836025499178973590156706445582681346690760209598251566921194443305550093412125080789875191252893533950662621772407021017968658384842032373950731858819822901212402929132081179875854146997083353370761782219702481504175827312348769284897903416920506728551132657032080263482479287439189342270478699792787230423837724071644677956545145915646941176371390017355114696961634706469465414940588647760011925760790990731792380573092220168660934173285888331612001070800287711862224051458912835578522970466742362240059546070805689579813026545297467285218518950309435487324048422416631837644031570334078332550518111374171456089550939532107860513832773592364826150087298241683778147415340928018167351238060500303722261611328755852054997978162432199074732582872343339527228101311342506466545392287213251629208596068315826470024206780315240173523316917932622540911224498730922206728647529752391942498191009129467227515851459650585611032116550768065563515652677317866345390780221116637604245840958271163135927222226844160872986118689730787421147129817023050937387942320125728822662218404668048162803378852630045080275850332107938619892820369241371756504916558531874111600261754546599495003148057748822398532589096813720566013315326520880812670723408177727059441470803586531832819045501310924355582514407025601756490057526461830073777721268716823226996010578760836634373676887568270227060762826671600486742113881641233819395999544199296941185386714837650123482246995959285063813023688146813140431758139331095478494627377150477920452463744018759008209818944385726914132214964810649693810853051371452496751705121567845541241469473991399092085116374595529138907176579248146416673506757172121806993515114161347264693580292439176227732726281446316253567428110674364314692588618299495680366762079527221522358889111400033313581163027560609610165782900464846150710860574439532609382633761436503652656063707403854041192777444756266228637665491964553377181867311794643693972330015329481899055736483436950446658192576865847948538563322165265763348843988097380385438833629274847895262473037422579174308320868632315831947837075737303751985305427999885274529635570377401684078379449005245536267762145827530283349720544298946797411415924304050526941865645710496066566477435314360016485464445227457776315995407211976208414347691050868278278614861655747892089961128637843824070235272427771040864177067796841822315235363802284885795781461469276885119612381222110607096593407376920178874689362012830135351330494789906305073005905351902121399889942794263651503251718634166107747377322473925026705994391196512800549038752384822103057652704605055884944220049565960365803387882261736535552865705761781739839220997489473382762730183190943516472686030093722362363313663874601638425641238723999105709669155465346483608280170021756604165816995455251815194935288422551998543551602180511026498318935456106001367430890884187340225912466268690190189079905167382296716307648091550075633093200283493656310289648694604505971998766731115852348776873658647017252380119242452464921653376130723770439793456543063370672255122549484386973188328944025548226292520643489445588873269063075207139827247687463631544083309701273723283149286422777513823449027591075810329461841621211418251534624708840900441858782213325411763285312512448818879110039172991018283562250895986353153712682969083752105472192891761189201337587123306919200516294697647096985434095466939434425970273273527332428115812317924661799966638074927119277062406698637696493907904461329071009408917410530506115739604254296139270465941028286031071274291239595231988118524254760549717105937819619499932022474427772841063704167351103362319250673057258884163218801851654582382957775913651233153038860208669273686239039165930895547732321258189569289699891683455653288228078900970019154744852640232216924486779712550052760541014753803158461291938804079164354043573914473883320293350907935542471440286839567215717508355755622454981077611709776825345458666907874535409873116754908913672560219894034559886418662443429829950592745648346952790664060294376673670060673905820167769193677711523227292513058270077761364762606791035347109730135744167358070135475117613975085713762072815825399621363748481059678547749660385391052610963097481210826989406509527328169206638677984631791078365483102055650636124148296854070096004323711152574451371423367564142178446668925081177534330625926945840908194292540278957455576156286507650133783063179274181057173620300054869197956827667633425616514666749623143145631050511029338219419657134079910037358709720731522996122462107790901353572693040741362345426176333668284977505307278556612123867998466556128910359288389723185243323893570369115602213401311351515909260726596988786518944172826111876964055328421757967674336511507444284031421804989877453406166664106927693846460355413648011665527099465428977931777197887594540816417387478709836543520428199605642829540893136893352288796518850686851574429726801874337502101848233468409571478524491902684919006839143494089048702452726256614524858188948319381611535579972300763956360853907168943464463131427707341360451301663837020178687828599797583819643112208661828369283818707108085116182731789717881471001255678114853197833620645198844294244964569388167881587019539858248539000637630523773678059829949777111643419560858395845084280481777949839207182161412540761609712829932631142723442137043263387187589517808133112060548415245991120345321317091987394963639393728460136179118348495156051649063065433219090850143189354416513783184018280008670046104362205132903096877734312155194974951511307067680618632976424959658627990353571815100150775335485442387298523162541097408775316116551273501334968088372544949805088631879485958011444739985877082301910121456038399848456360351364455318197432634021752548067678227548286559700741051740656171589990491717809000997772962629131245298580740911682936798022817317043000511143436567085104679055073066313348498001374802336020709569562781972082651945962141396087348196367399947212035948047194626628353615316170752764669136288982833206715010879811365928916422512634774480438312952561442995566739527183283788028124873344307575016686579955180897449598780481935902084516966017087685136506934904631330478288327439986404588292009531900922017544629651989503958795602336685615544446963401735817665604043881623064380785037661152473007797277899086414511929126913570255801280632910667548111186468373162837917229500748877882311727503347491128570419061574553420002338458083658238953931881353455698471070598188055273374790360421543229929076519110263645450343099410107702050755562647215445729061921842763670400585850527254003271168115951927343301933056038424763892877449504794223938942434393044605126230187334185563170709935823235281368830182244534683248742033606689739441535382435289633691244182061137569857094427666037508240519224533132684525096252472543260188320674239918083860451291890210228475946280815291022030493985957381534513885066621680241963109144656045305592029552642966792755861057165166801898854788105704545912084618947660742063147609132590955085096309071316759963914147161893018945490263313127296935278022957919483902310742792236366151114089088340035957002705582094490931405231322931964668487595225939595618480408392443809720822367922980869732283816368993340327090084736715448047817467698542261015875675248093521118603292641503998511119642478199668970220720771968395662200532123943012048690353704272755836800536298146924166917854603899895408516859537605137316853877453325079766590172322559201087090437239181969082416016960925250686617146594832945250040948163552404177547977381768758242329183249040488065195239574591272350198613195276322433226469276946180319294282645030805160387453880752313770653639348717697257125416941797720662800324356291069919661879218240213917259211888202535931337179837377307267081933869225365299143791317091404978589524903760069052512476081668027989803396880005690266056657789019096184505426343424500761884333922282159235522144696671006268498968490993113814467162299384853571149911995500314326830500542722280156003657031954140712882998992707419390258344774399076720269979118328831091069039490416753640040264146206408573703919572026511981449972525466733918668020290941672066206043728002044374890458070722903576331475847506469653086759610484989352043017877087844435910179984388208807627232675752792611117277492663015421715850525129396365986941716766550649031589859994066180514133517222169524530711352251657702473176474761914283453850644383403105643517410594003475392141908227743400455325063207902448148639881469417039172488678218329500571386672913358195256248831521010808037540145130273405098639700954546927759447097716260683141712991280915718377369808133621085594186407832573558661032070432146018859516681953558575567156767536969673560445479393186204301404654468552545564344416366205415980249311113577360816320156148933126145548793343425480592570115311420957780460163334320080245565309064696611750002600483914897741028318388873445257167494405922270370066117962922862401722596776227475084072217627412097731279052615616700174028578290972496238892474480529560187116064362878453465401494915651052400916801420648902366697807947582397171594970444405086828207320292027443446921921227923407631428893692733915620413992667224821474141142536335202364647671590410470200864264435349832265730378190951675581690634346767884938719568242320127792406242617457388659963835479366937568889862641163785765089066026261666017881222985667760058098605861465851313159906401400503388040669975027964828155531492396874284409114270541275084287427573697557243083117154397576964153548687960816715428075443614995834129572982313466450674094650629118720784551640867884271703240222267609973494579495233581253445036687792842346707448899391455369150852676203150296473343650723249876339911385956486924220714997679233318454492363548834893867610897699298309221774694206263823823677114610643133310739957305286843357545483229298759469060742585624638510014866700484132401546908434903179663374419420909873765658363109742644333383290913662355762390946896160467407973359520941446147900027289250474002163457077675394768621723433569278608680880445587680988878776875072290885159111802280213319637043198516110471754815764925937429484732693000651725075700611816572947076776483140985714947084419220169306462180937174958458654698873806752879679635127344871925444188257160595828363315053193183719156353289674371524560944817030258117860738432867232357327645893301306437815261335948855245403332298388569273735371495125348245787231461018249152099255913182289605091636458071658895944540453277853846273422638367606420867703974612361053831656001297596694093610663114893684017366256012895155988572168715962982488990155034045114377541000448796378539820289020019001856259805758373238453158232586305845758709789528263101228319455038189824319202372054154948077973135175537576062814665968471462434162456310326220873741851345634943000862432948628876053918574259886528444226016057486916928175511021786958317385538583272530085113692190889489081228468028695314533179438763338841323383457567118600625652349710712418538635931365731291795106634814194722875796779344329912080225556282266476901346187651202557137625423743974980211066701573148649489240704003884579612213488316937957860072657707594938889111152205524807167104322497865912452185706962605524521847294710456751133542016028666711670222459992767307906887838432440157041175681900627755431140611199924987120706830348889512488473704970437040607805772441844326660490955393399835873573976000292093332942460551121989462349326789517852904554184925210552979324561742975392670501916902872136128766049957046590481728695930994675417625485173097693491689460456717290997111802153518984447274701651208022591841279806195698904211092687588360682772013072602187738425286282196585850419505695117277435997170513403254329894260167211613395113722768693554976861604895082457951604947484216757824118519154096030493361289840038502334249613819442066182751897930543785429681887000959352676913127786078531873941554503268323764939032450645129406481015059414564176514536118498744117305311481930083678873012080576498572495136797595666784273844667150565627153112494304649086250439107983063503482660744511655967007187018581301671089614576809171159760033065289325074762515754459347574958283875212141156270381243433661043169496050262000499480432627064838940992257503801793980720519321443053629072110102184252019685518507086656578832838356538063484697071541682863827781567993476741403084100176777110907876472489710911564994009700182690615219320434198570064423698020324751499808869377688209838361797267315389342087238156094322410011346126130010047618283031972480445858662231966059411912600602172874886560210429942723482811536335244848833532049572000141356575745892992837655730581961988318651641304947458526579088562686472361029464004966575327303773881209645037622004423758802121537811444499950046126052303996300165183092834359197259124172730227714203458162927964872492196149552621221617264827941020180239339253492406999466963102243719259564963914157273128868600202179617131949205679877650831693581171331403071118219148803669216447363080359229519138911556254238166494178065464146303122197079825450120461894838222954434254421455479126731622856423495023315814508997870326959083591639031911462999765558685943477097376632153586381878560291683942748945033348797866436857782834933849928194579881134620644986192361655225417953234953186824687254340175797790250822992989649642918690239038552935332501003214356231712082711692601892041208900216076506566703128778931045940013581165195513717491990262912015744422841584600085047865075663912558531129427286780643931260239609854286319330397339560195165731595441466567649995129191441221884531959265637350396228870620167984397714503663825166257382352385989762935781319611649697562643687752196570075918067983295676504313368003414993560889788571258071824008100481888466177437586219207807724221470478783724906750559286498493503562319527976709126707134561447788860027151527530768466583980307069990534237693189033150306439043842397696577878509092601183594073672556353599063778370695197739158752033253166642756975028002887816979109880720757625109092720560836838935677175928463332120484108518586964582211029219926355905988593932958743027675346790226872981392825617416714543730041583347887616526418404165475173801405573482618053661766619849081568439777598849863103286414709760581519882995081147296468344881352770052218281964398183884277837659960445855508237590108667693140300786520600200163542387013090463391348009249931042258623782567656495360169945371865923670134270000958671833751933837818818079246796053984841017250989823130509312949539194460518677730759937757676662166934558369193939776941480508037010819222810783840807824503067749285961720111472009354530580275708938027586396987628926694087373797330884254635688925934047340634731524219788393790708202336507348900279257100356265230577396933478363330448038592011035680619918261675634601923044883108576605698187816759520496733743134609554399573882558569115134503034151917084164938350872238401877680550924499868211064812440934644066597212126539193174092042189566607857441419244726844231587568915396196493442780038771844702772614155215560224098882369553433893746629044701084071708537417926381462927138620017686078089052947196735815235795309514417711350079616408043370667500974371229357757506677707498399394030025291625911241739867913368365075193724115973202979353067121133569669806026103658646905429186838297927627859291524713450589201590044120140410359527698531896498630747000057995709882254482094041888695638789803107173263704644919922529584131418701408783993710375032035485313178660501525474847084772896767725825033138164483203871305820955648320902533160970335257721961293828265252214174631190932081530768954465234758944020562173217254439222997778470796601076476922641498502175206847478922161783895754832198868478276636894637254892732950645511848547344569146291124904100771824327717086524217556023040320810404204546760418529084745639694458774374270349700892902778155089788536266201383753035084069906374780298055292528188261714161172805650497528526291670854699735664677063172537589643842315176885063823527989624210191665644769324898160260122725759552057364778272198588828561026462547261091503518071828305917117264606535824010575624903665616980785681042074085506290782387086789633889998549152823745064486587138494400207946148566824693733376463766271146825190848648715414662788720527293098289289593560121647897052956854340943517363261087760487961217245248785254929535535629203078314393169827176392840308025112570195388307509647092651900285004466605506363010539060289753003027097316395017001820625917618507266923611130760091293446002265936977803012974187081612680074113011344226399066519852290261951179029278907156560365331277772892310208810785851118840778135297420648127282454710137534788055062811499567695833664573454383344920728841974931232034853451536086162866436530084396412610601737389944146455801554275459406747822771839030553943524820119737171545550721484957955982094221681629610736417869528628763389949035823583942320832345992383630211477658260456471029100045078381917884730139304776956969141109236197651704200768878279311634251546251372655265815290052727984893178880663487786152316247042318747284774833991074835702042074012443505163524242207655831818678098019485672855042456428174556225506219929927237617748744265003391662284084527963426114325224295965919182964446283650321361657268993300337622996193788630181729014144667765427041690570671850892745098009177278717656686860928866787167910905052880703734520682154034468018134404493390200103445986205415821990531837060337749419391682131234513940125183862964433174226956823781782663553716810112528908034324624261444706171429196971649808457957275518587383960424449170651476700753600737244385487181775597537495779743703011928939599553139541323730360236921104735873762715454032407394998597586861575212012009920662829459801001664367400845520041229767015336733196851695849299701287783820700029543632250949578099137093829379362581266119609506662647576546895978078233434700827055269614434639762890421465325359776606816817666295192581506091776309839434301971712448562491825584216222491558266098974818184167878009572010837450645477653816311217569762741499901657748688903162929865501565735250019896133331161317522138200501832872592773783155963795078069481212379095462094929264509961267322113723021901578741189622405990805516080862040756202398096529097843424329909038608639725683695666882373003631447390167437645619451244958084628498874998628131463435204269741001199046246964806248223892436008052612936075860722767038591484569692182102778360532236394541789257198070792257164719859197430496751983090408771044700234943734922204188606310867203075259493651092470747858879063700349680496067573856433701879287529527526718786495162423988614532341315749454182930086776461571690787764537904724383945625541884467925152897591191357827976769715169843987794471450649974889815011780692391556086085812400815490641803399146015042768027145078810338063424851837801860768928542902369852449537299645371797567640127681672626926547433140782995242444840598375812792721691498896140743611202355484415928072563615103886638553947178163569702244758347122951999680896295470705825329082746030548636690299080655581581875276154765480864961476789637227385205181429519647835500992221682700464996068278857011662449380810297549990946554756871667159682731259759334927576244444550890304877050538508630830799065971785597770743630988707032340091457003672762966551653610468592733146169415664905392012409072840746629895487458468422146229834837961752960471655657440085639699829205557533595456122004317515978048326861990186532672390878042256148744336017324312542591466780165247863475365747192560073512450312432604136882683535983445014894991343826930580897684011854220836098340291148065901031987594215206088007288422937812952011431797020295509061269031257143981377521481715214097803000203289483168999766553009434687370518840641509297126607440463589616471758867696583772715228378787042495902236314973899973618966717187589298390914927415329047277889513927128454561074892912768994763688621300364055844230678112829051247885728250497887049826674846469510202136863436250839342570883872373461348482218397450261136914744326038857149033047433930714878063037750197727167630888456959640367292459731143162451125589130099442448318878613459745448749000659784227443522321598523561934465426597623596622340099501458799409062438779206047022523589537207200013800949679155006953042749909396297630042295155978000621381590671176879117479230769454238692197412704150899869147111231946995657122760749611749880524370433675081630965320473458452283943229711616877040102868056960558170659057141713267377393841661339949955804670399629523159880245373627918039836892126962279411513873331855646062648858343195717060973017164849006007567588279945395133032572465046263768892297398155321371780204370621746354063721507744996367944623424328529643909128104772927432935133600602853844616067836620503287895117058768532474721513044482740500435085762102736494025436752417573192248818960258159924254555713405235250071493991567048269091364086817138912825463106908272078411839548958685579563753408570710716126020947109274602730251800690999371438072840841104077424073741105034554897404761744060281467240267486266268438306249687700840411676009643670282808633296238736213713237137169911924405557404672201552560172308449453125581711864756016840686272859606022955512956360147524014306493119400395641687541772101459626342033329582965788300880946783231592326262852202656006680656636162069659751047434090890379203122114532418212153571045430304562885650005024515122902607615977457859212471237455803493167650523577234381287465185142527871750468018369892169177478562853435311234623363898829486556394783891378997287520980314741274269973772385103416098011049843902915121415451372195735855763382717564020014247083539334458834631244514327884193197875695587743008365530951643529432812472528022118040976411336003598573617693291907576043285559044385301290712595141200552041820758918350372344376876898028161276230220221275276122755790401614807471954707627587750766830296754903095106084013198543287530368771710963415922549701534241889036080091050919311618449893233099405494354708150230313758666017094331517266658429858897833063248918103966213890731540961238221265757637581561989335600207005994856294734191153971197511230387782025304108710620321068063616645139992575132842437472887855520534634079094090273107062827632673315822800357436230300955476576265211787548560273710837756386964534000177033852814305156588989343278540613043480236438417189197710077730345658441003017308655204325272926467002829907912431600298772089626639404868439506813923125564619820606943585194562433075060590360955237687213116550757342141117135069916331982326033035292945235199109483490860249996816211222054074610202587608801640944684163540037500902161363335950348298520467846854470873236704199801284148999807854790703278555274305062509405682842226695228178173441860818194966139580674738056820094720866110736554442200293011591822046647151472542976347542820726657700801822597180366559698514454809025266361698310499417428624531408087317381776375954120910143877468638186859669078576784220555267049723293080344419793532114124893991422899070139434551090964895392756417433283687508221382700280910182497323556733882074587832478297009335166994394580134018021246463106035091788887264784987652768811767808758709785946715603253450186618788818700847018412461112282336935762749622089655137948338152696449236764598921467254821645494744475661114268015628399585250435943474067275566265496438345994895345050325042763010293474680175732951251185021409841879640661536965673097249266819036020728010411910481201532744033663916214541839029597235693702377692281611494410418600387643809154198865486646098174212707550037273462492536250894948546480214437743593308302069809445143484282005591042333829924133332227690780564056716772606930880953662879197462250977989901773260371425456011620932902655842381922642521589060044457481646289447681064791012106335622032363976217857113524934324850029073771473448401885583499123457350913076420750965088206400397885625060361641973500329838702453630949108347775549121339173254364395517183434022079974932389231850316962332738612224907800133533113172027541614865775973533350606946287441016166585961652790982018370551853178105397002695690869802967224325319293472151746917832379231800645831149475879718019398436273635420055443580983037766091316967677449107727286553510044977506712821804736938458321853989193940008231272098145668906286414818293703461877484648750218302590656891033512642888896960226018610807584442971004729737017241336008648721362901017230281327865051867033784655649437091629041436087754779686491278017994380710162539840656754800510464064546999305434917626891693344584489281919969260398296056693316947827054793815884140686550764811342094691708130968554007038303412492534376303531953157694966853532581071696288855639379939948852999160635624809862339036488680144048934145030070061521907440825871749578976191195813357438516646182224297118846754622237447244789872061466032082726438590501865439832068675398458742117750081912905320393640555364216756458681519044420851709340314319084573943544726208799994160045046509712360766243958535822158273767760330060407112058780229375073612767099818954993817008889880928307518563298405980751252978592557953090294223331020196153680721288826101938822858214707791149377410664613293820568621000989487691416120167112273410165706558874860118658235975299518760373821504757882991581753004349908171891744720080434906020244610021677511146442317759634410950013037085628233309490355288324685062920208193360935474391340564035453660654755753010499831561705160253340542772915418343549280678880875944700045147731570048935266421039967083563961994540097432967472037623935617241591924809669514031469049268998412334264062567320232160868399162532104520096166846652695696063410044448323589623410733571758406527493133407564662575485063836283747843126032126111690649717639130477795718587900089849070378604792478996669841678364502119788775891391128661378404748332398269838018500896538392269565647667222432335213071243155992197186304220690003530918152003878225837229774437969511418593999750964348735079127602277967161143638694210618814341603132219272045742480821129832506640559728352224884843372816992885797927110165720362158350865799210758848940208247569951190085313570936276570095274819299903171449711668520998044018100821164444625491700452192786423974186515451267768131231987667259794766522268834179182215917882419885296975177921236280323546344949135679957523537499730699915699110222476831251529561275207130527780682065329686731121887286114637029885501433082412268212994025419819177048179786037457459418556511317388300040027847616243577270315210368900441262631452510354299144163229173680672743055444287455965645790279881038913497352692813216539740917035073054245995722726006126231857417266126920898211151107467991222763537734640070826618455498336446707456249205981352428170378150026421069118341600441712424970610919555352212203571107706368275785667654342111678670142997973659213190423821468124542886116032367251855334961113743847893140216860786353417518192585231079209885650492028663129388358958217306617911473666477633789279675106124713273761719030738609204529136243268292591637613463718301461011933435121257930807004310783507964827877382626995377262357588042077578384279809247444617942124104983174332494517242468682055596794325656853272911461065027392497877527976582934857882530950833709990524346282468330403698205099567229732501741974743112442653385104734538187278330219017872250792013115620251264738387076236278448132656961899823302198713142745564124216115820152318853204246694808167887709852815114376982229267224038894505926486392692071842054805592242617445447141434638984859010944185730715437349351924808086024512983208610641124672625708375934248381448319018156453378853734523515041947307839989597211336574768992018096328343465636290164806225323087590288640092143715042559491619990661729357293177805238734497197194797574568660288343770612506788028763897019240997632633131797811691010701448681751774798392468087607351598112427104461017184862742621684711699626954507545026890568212394139238587133910226197488595002519959554533554611381561937921819942031962844407981447044476354170466527409488475877926984072186775954185429460199512771734515045171032093579524604042489643760031850066878638597663082991253511309153154958832222012110142314922352599338332718438953137143703426153929874855379288738396064674003904518250505743548186879047253668197232544838529603971558831788192612019460536096733545982368982918865727321846183320675831773342249624819121657564113318244016922586417333018862172150970682325832490054048446578382762191596321074215721842862511589851467303288164149421026192614439123969931353951549515223790702957625943733973670764777447125195257792080608331490038887657270416819975003422280524001118986418069038071891171627541844590190562685611755041041082984268052433864880316419282713416493017027088474315044745607743779394951082230070975179825658430591820087904545920548350944616884575044799670329915328819113174625245629878835814363048924505013818331023058851460824321392881671697345777150058011219419891080126208256308206600618249665197502024577193808265937072317890477248123529208585702020268411496067065229810145903706855983191970684102341040584120121283608722813791873999555051891249185756557605356762899031500427282924361074507263622566690564675125865277781503167957338889078405112594369411272440426104661455335803011673798724768839652776271799327860745585500337012104456374787009096225612241454105037126058759896166382146799202201188129773449020888696262352068483164704317336120237951049012898196333614920986215738561447817972642108743328933596279182419769957692375743177311913416541810772528066285403006424607489853805025277111523944630103936049819156860552657561086889877421966185453852343556195505088459848646761997954845608408465660116216118202110408111598444251357005145830298257171775215006460667866928462524577123363019395713204698561777601101269463073767409145996080376038630107647802262574192072323711655890134326979826097552345327895891867941130335777018793427749392332627331485240305277233989688486011804936472699520794880970168440684533626407184693156012441632380186640884347215737385332984440247620306165034340264642612040701955223496989828090709122588504288574927702813914539839943080069786552682698718275316734243340946984135052339699866425704859033581366117297698716632092356193544572702627321210361119231910269340238752533531386653776223733395936948921609822506914543757128682652649180865704546069044100924557453967705165242401031921578565083894573166501414304152174617716788626083367720603570834562929157269560827781352557121455142026812068467574570193595526616680767071155151962657774760644255274246745321363021493402324278345254296890482646207449900846858601932802837877350121173796981091950310857094921864474324598780536654927295061675880970583052807802124315573101880013835132011150972589095385374909260763920258430329024547135885128720888484350422577386355403291939732175547263898109943506391417932049910209372289135994879085898701700104316337010279239893033093878102024696048801089970385241781438475055195480789450150004636131823358567194743556960567774428091992595790488018693999382155308921774347224467630983834608283854975672734414451155401542107749514964892512155731417315751570002777835103033199332061771194108751161620672475445200648007584120184478629474064022160874988649876975879929164792509206355859421240791231402730976237970071376682877982180467391436902461777830401028355445776668785093164808314676780878886820163121765156361056519218715449866658559880643234123397821146273650233227928448717341025690491335608556754256903490395694693339253886843285126265788094141242633132363723735183064210999310434437109830750076392562880138226117978344454586420422006806003675629015606947792927366250875967317053445656251150190839752422027090251260124812705691789283083918100902433553182218431649942552399580087797205189821774783314691312412085030237946080324411115262565419926845505163695078742531908294125806730768022581292735352777988536885512180797608774242261050154744045495477947281774478757978805689595363172021056207573684909143077699633314319040192421717819863613905502646382129164502812634282783513003341470776790255366888913563653465848008657519404488487010784877761773195483484692248266809598005580314615454119800701383746662253112917503011659380957374382456299230296284264889764717837952522213114855754594164077897454973933254100366372868185559921394320966123612741838464910517066053798848448956033970994704048240326507287399521226412521594089600911256879765809740372514701214814998242850966759468879699810933109493257260450814647050740394029616605971064317793232938193201982634795920222096327375071825149519548338041837350133981120790517668295337481838573416992703816078333646384821444481993419020459080920547418922103994272885546208960583685837275409404629855789533489143526721217234484898204468517902016007051353316669697545129197342591238648625312429919651751234142104675395509348697283771383743084171934521510991017666857392121983690096293045602705818375714701198268212511511840649755267896623711378087965760509660764174403680072240317890892850289209616996894223094843718756645931186126109244854789363904624731332191453714564174105958828436699871304720637419418701528206291512576875753081243280732887032490382565286877135240706221105075692136568199932134670421392604917572202464633799056758278795159813450264922706251894965001981812403481992193162135102135383025719022665707491801677760509597430122647503066772681942526682571024389445339478227637046902012748898497578626997479810700597174715225024247973745579930270331845604866674153170911284751438929766373242258695851409932914974265671442494659681360884857863361432419688109137016473339318918460273302714060697362554896147543489677855917666460423218960318796664134268445397488139050699424546909642424071762186513731402651243841107675255587018454696321612091243305258767413417629104827943651065310755802892878520617239842967042811429849934974908396000692765631705288186172528887924826517440846802506290305705545559523275107032509056525311394202534075499093130117927369024641670559893542757542897458231122944984453112021742101400475073785819815241102492339879948366308797152620708330486323549424690146668804233072415435193614130204521690678100209808679412108299890963781147657918603429615974065625384338531885112567931973907731841526573781956134399588876487544313114276430744657746523307542119087112004691613391445009170742682854473099488917108676160172698936622881155390342730110348414077319314236461815580641189842279161560943225542818550259481679615803266939681540856568872468061787333375632639125739878338396330233801012400006578622483851790561108204393955399318410027968146165601737056908326764461190857191966601448320598333712729440826848036506120930048424314373146088165609945130337191119182937989706146411421652667135453135866198372595648648699702103140814984224989911945623913381172993045719729719332297777152896003526578974783691284594590129223319428059091727064163691417772260204127125585565608558157463973993267941322439668406746569004615195319640860945244542285732113281505908254086273963248950200959733470515679174356357026348552408729173138543592636933239693784510488605707844730080782029006490812122549124036225858417207638205303311226587075156073635801023167869133455929621510259707272373618358270101181254290262173655710921312535019184675311012595193474734413052046198394776363597383786539295109403629089810167752433930084276171172145475292197309078634201883699413024423996515587304258242109958563112962231462875347382967858824702184045216518948878361462502253856725073968200894084991848325343636331175596783187951102781197520471729888192197348891052757836041859396516651430800878023918896825026768018919983088640901075211256225803395117292367982874492688857226600212569256071711741914319363750328059228690479582654591673676566342037056128924404210591294200992250709948514509240639768598227980538991210907564628044861698943979065415372334169801400460893245077719339467819338086148737240415973562803484693341335770257387359331627737514787773832177881806352234243046610936520235675022708781004274799590620135332003064403805465893170785236253203377691945749149689231960458196217336607487503451632351860404671607311545249987907179060184271696286466272419087366140609940082702069302435800711094712529755594119050140603888222978526469021890063537274518983948843813313145288850204669531753851257007966820330874945855553244343231018351388032386296259853150166838340780494293374069543630707582723257290094464562342506693344241095435360751068185144420831394135043178711931388232399009421415334802645611466975496856300494826854480581234345302610984849963676014021200153092238797729911744787579868451258229567037156677969235720311754984900380942608875920634290940628448186611656630988894232751939746148001135713643042884156239297746373083986504732821285305274234742518077111913422660674949756348093055217564482252583693681946557267918272373940264234166274346690516718824153868010753674814193608774864059669271759945448814524823837388346988036173233472257723627156850357282942146583824482687145161604578101173264167919974296506214311490712743090084273703920067507010040648478311259725573737377895249170894203158430157540036459675730250682035627369364417888863484200754437868470975984123681828454080451733133439371561153437714597827021416680788804723017343943478484835613600071232184180316548685754237602111370827887318866768043788685630937765948656413743028130526339687056095064602392379915455605270782974622513676203742005577133718246927551790486146606414874772728425783206413420828305763794120099108095162377062752794324625368941479390966360999999306714472238109241052467985012941284022754260299868787201105604889144774932689012257731562715780620670052484073149002774542366766173363284103254232926887834736705516612577326871637881211983713068533986461752074030191460756698836186786325070217408706534430018664480419980478016549916110799080741927462479477930919869380381970546196908153549070601948902130572628760424879455976768688450774429563318410073181461375404735264830146074038239343913712895356543721079365944832604490986167587320231989294560373770830008667516649768191512867874233920469707100791943582707525597053388227735858631830519228236997308287451514251244151128209069554617237692569746077191004210056005339850421684461268733941545759721706721952572097545828334202509472973430347007347028768217672179891024453176005269670149823909274733620342028481983416526887145958599096328562414106868644210138996153527470780790337809520835016533345222003495617830391172618314221836512286143793758970731969840507098982183656323692083112175746077237946427263889341774232622839642084453278277346128635220510680957715198376838996846895460885422817414358615225600066388775310125555082133673813071046378782602425324935422154796683683007056282897168620445651338155740560479335794392182758165796593596813459003996813036874898717142151880284106345496758170935032490027732736044409116691634128187521778389366452549782022831449033377135624956138158384164538949948624135470783370455750078307586539656326276632894216704447894314797187284713840527388363536105168619488919396255915144298897846967139610189998332035759352537281793551010726596876671821944091149854553106646178667326075914508383160781915834309102190009107687213576691630634036865513106122997261494752860861579280354003255584652021427798693777535895154155669928704039275187759492085209304228648332153716442759617995398823258897014329699173867003029361216740204639984173333740018409655051153120039679486509403622307176368851312594940816969627029701837793157778289377761251556392480216773767217191371279381426524622620417480451365534379252149149136026381469732287561432923690686438860081491698214420006209486534983718150683061849584706400123378751366818245505105737087913603755560082080550067533933321574195147840528235477924033493765870153804278718512333564912340038399365388251696824066840386735072079060562168584741380511164813936754996016140090254531279997478033132563177943342591114284062581375677095263362928725583899468548046663125092033373288813928590556714418732824875660571708806294667384720234136455585311952444823358702363932522342158960250970188273229368531208202521782013865035299027016939330675339003477420811466352330431288477418304436598051530643952573828341342719169058314910689329621320855195548472090734374132090230734904253225350484151733994657562908241776541795655493588573585720137661488175918137533686781900776598769101952095761084706435680036026111532937338619715166395558516512689750130795064302685206497660144822707044642012607415171548320146782915747304086779695195931285595571810834302963852984570519207613545930298343182165118744631195350364342113344759712837727871424879227418757366284640784605938162998427023689673463669212937709682330505385127723724581012367158387149094962412566544933357215692315846418436199714954431162809902185984464491816936717724091812744449297307195746247449819685679529133957033635624209482990591005922558925723417707365345689027270008386012441185539568442013185427324723163675382800118753337199470779489120219596305210536984096260339210486406700358881796389494787247276714431623067436458734992731108361209425969983870304074153477525176992193054465442145019755777321153614378490212570997073860222726408079870956005250490959290461553318251744491787224070381962545299477890297763116008563297624507569411227783401401912767330820124072217862280767842930734592535229196240530500376198727964679906809286170729840362165256928868751383954022155985662378325706104643401216935216529281191078562374436318172747297118401350087833175386599375845724857841263967994935422352955817566188964922110960066251285112949334103579349310618839901117224113830105745330077503423744887630551945445240230809023043185616023413558008859337966964248645534561166887245407141421165799767036743352757063657959306818858429693835352610893639432398552436688739776159643411892871618024318897597429926557757585003514066498768162861465225410508152584438598300498958759580670222854232746353855779089796863831922944616615826330752257902930723131068784050067144631915542503187362238354821284371165490995205121907539321185366340142737237636177489346725920526717445925234802314480898911298505918415801780541311435504571269723930439379360247983483602166792569682296626849440463158316367772254326267246276766425049997497431822727316161782101330144545088215494494135091475489846746744690566252412426253179310609231688824234924995570532057744687421166746106073418428411652938156225194722497310463059670215028463877758516460391344712942457848189561421958104127320209169300218301626341147298624195685529487437874162980144383388453526312663670889418736962047110647999828718400419769998552397804994026291198605872172975267735952817784885219287266492663203135657554445025473932798794405698886728291788590238657149797749682608314920739692644966547403811191476661744412549726158781787654825170584485712690456820917675006632574949158747141361461714254877751052766817994486813065505326357448466463273369279956467743111045132659994445264446506021889528972458276340893745778892090240520802188417252762426261709553258789168515305406894920580525571464161531816801513371799508307621112521623036276196866428274821558238857256936290343491810205784092439295615769437227474436337729773669520386565902846534371725882454633233118841990395666499184979470522786039168747906723886827541641351880194499606742363587144234461227502541398137479590878743118829952773408464576484698109443971030171344567337916588161311765049997857847859196149790246423686679391980654567669679063279232699537600614223969052376473135629905252846180618096367528596404463020992822905509952984429520281645816248987100949974225010537685412755549318961442517279301555423712694203330417043703258648632067651439552868371157039304345049305113578177190391496059723270310508376744790141140245491343820987088438561949119971879532086226426337568146317855532424514049450171947505761631254930026445910490457640065183083188939851041942839157054367153942780515074233811732041515043020214667538815581636182550028424589408558543572201886990243244538054581323819625779356204433569105041931937140512541632347920763222328021022692485016629531797199639060717274288250588184813814729609565634158178608504236277985922359973537080198703463132562802099403218283657109617365418877371882217218419554295091378860156696149152014229063093499568681280784054633832546873499887053523783665506040174743171575182520200169606173957278181270415671840247538790257524614769994288394574955839694040976601655043152935125698897257792896604725191033161132597795561562457661477815173126806304552264899711999248374289512742439708529080905604158315057995526078160030989233554427378762190501842622805026346031876107952282101545673233924664615074335876663644243049487193753696993398898292854047269448866211929216099241918093015150887310563138212477802594925219424826381630006007135266827267365837161761476827028349954028622022877724827912315770951557118442113669272570877180751599519611457285176513836745095679146962508984299782769643093920417646333164327245930669065282166740870494159341470952885691265100008313885518275397688934660585787219926700821382657723904126112091288335628442292798276998448354235368495474408502502743968997996509566312793668383049578254083153123967689883197370243101410473221442680239599869704902444258907153438692215634855893171752577182611770903849300988307118041927332864571393082863743998221755514024798440381360740292549964007063716377418477855899589043222130117481510971157982341439731224413493259888321073631325972684545683043010217572189311478904496277199746701730094456813706050675655416615531438662197299815769366160729349210983902704658359253022594573070342110566719826626091400030583841351923467867439829131151279412818241546628031581598226382667110220304314660058300472636659041540349755057166585874976453962497814966470461384562326444999464926352263509330892163879818349385605564492659850276007407824747474874333514517901383216734853303750309744180771453687531741044264417023122714303226901580875534988968789431639111671591125868524760613020949842465052943808506969500031974999250716750122500869669861757634053260242615325799330975664556777358666258483259456883790934135551749253287882031244598624200450315723620284052209178268053737961291724758662425661475487601593473664705843947211786781808972790588164363748676839039534572420422449849225246300417084257627303586781880486976412166597740646793354851303375801090321419612629992491122826124033206922476370636578666488476376437230734239809871328982180865152259120220801009378994510599909916754424907096886580342439012315007611338121130778221231956018938599686158584300741557076747236099179730623491975320622798898697462884530930497995144707805350607299237217543462246060638420909277032942832826241724042800089267706405499087262426745058150351630299000473948353382558597098803917763799702554827437534913953039813164101045555290057393130988199456744007384063774077991019751902601682868609134053345052832074126304205127040025748810364473393196824121686505884827434044384507285485914387411199090004106819936432373954821339316316275810183950536538874918758307283944895361019476212639045282804544708113743915541549843777077187975171336829595304429516226721364249120359898551789080959044458941609442429307550163792784052394669660938986662732525939366360746857032420636760936648275645130190818611519574605918778122002257614410232343134570184029027577975582635068405207115215015809361412098527087208484337418310931486136294893889695431908507721282091530555764433393100648224913081355597469543078042650203307233006779423089424997333669834582699569283211935787533175604829076052163017577613880614165097495608085748937144074675389084255923063980255296523889646133560198685524931033239226790453308426798132586708059155548420775215979016054238196065836354849967777345455886309533353990741412743978267344871768084199130902475311626120831795981168795388681076005841551756070848672407371106204168532786007563976233890075605573572340196107921914020114027012719862965881823560055866604513598824061341161113268176097686823198153358398873953328262035438097502897150010264535649942814145896463864333294541558725990096877871842606474332182971790987936984663866804235042099878549197196326785331481011220365745859630637388709445032919302381637273620342605109524427351280786973622733607323915878121320972620155755259777935157051713914317076499698069332438327259455239404752391084633804625020057539486363873218647144418115420606087644733755438281762843953963510144151078745791839191293854188736116318177432392765409401395663875535279352265520623151065034212364335610559625215939919579066339419045283600145811268464524551898413607149854084601233962174719607226855573819417821504926272738103184298931731458834571637202061156702233553258339006919730835289349335068532133414333873648867067746761240448212721142280427521407676905027710737909773699263481741941508378998133733886300180036492122985903618400478309206375325940371746338718325744311844662508531932713090973768366780639319356921370582073234509091275181658849562244955469981191000182995635491711576999903205227225241785745299530362427080659469813042728877173272943738956435883539449419046807606582783763118319327480982234609614201944624985953414839083300968709367733901488717620510914369430771550531104556817087225327608555116487204133290947086530274331465358683108220683577341652394399048507126413731819569135035194497864471189153725142249122077511080504918790042327507051250531927299989507091921491397732233455454577287540204368939513373618828711000440790484035033819483455627844051959609605981634307546944075951909832946343108767605734102083501157961618456291116786546755848753096027008075622977055592851365167093429742293184048188099963169135089390448668328578619189888580708062743236317963438137700823307974503991531065328988550051168579043315389168545729146082934958052813221549272260796360132797562689855872686330470026239247983560645168268329850671971967477740093739488927595394845569771608017855363308901986473674447226555353238152800916547878413697200869395153687068412732925094766145147852631705795874470051641751654263075774508398716123252586456436055081687086722962614234289816248454187121983231630019071441735400125298390762491079371800617016943458029705616600212748538413920210987330037031904721580464547503648925470977586479901539386001586807815166255012238872752760185469641631674974025890802821562738868213415432441440462132311234595368934468324177956798091529406546901899619352816420485654038148706887893508579521331364265961619491744895442928258237742161516262114628726176779399643279917141705852442616375970714009741612880620503932359462896918307432619928345743913034386187392171311845827967019831233720589692858823338463192975665992300545619577359646453482938725403446959857558846626851485537093785562599684310939872846075555772177369484652859180031569670425688301888063795752752601758762484258666734036357018254882569305093319510944266837927753054657457438009803566614407320030823400110656269124299332746447400012741180568237197789148792211906903361785196944748113928483361264487679262778496694317732915333661607749266709995427083162305166052207805327518932131044574487622523419945901449051689102767467432470868097454685312211781016535521863863300724436902444581791472756144700264825504540236026094229172796167584840259075386814359643186466780372790438070195043599621370617411279891264402041093333637402499398260791654195431688740302413470593330675274870454424166298698510240094358445836585693521851760295799921961538254829706319662777970443350965745149594927129452657909996556351268595349356380641765005912972943480712688301813110034902619620307927139465124371441256627523178455057841539876118210562555689158037104315417724000540312458218298337877329657283041636490621044925825627467594063547344886571620515072750258765903574818683653332366239693112969440523034412910133724641225924121884583260484303280450675610458133222476652078578165051212647908759077867594428232255071583278736591604222208653340392633282234656327120327580165718336459309147153582529695281696272034549065262679324801914601392494964475306945014638854902202660502402501135919448540962423592497886639056977076250827821935960467761288213279001464930853610698070505054471123400091552445583939611023963031835972970552319438431842534051219187164312805613651975110135432585413026611380828099140483265701980591859650666141635782321341985784021341581965513717558407638377349605201540757322093440643491909915000325839047550115032953939453043462876836194516285598322360772886862486041727558553184332619081213777956146440500002578521230158927528386764055675113169484798572377475516074164422300586620298307904741609613491068832621636417468362998929166075666526663123465496582431289932093047873031578265436072817095748416328077146452831674918331745807741112470442847857954911023390557059155276307144197676908291006608833295043477579332030845514767948361793181320012020797050986886402535582298891847841746777539177036739498329258006113043503585203074340316911000063485586269856712407869138772179059891487843375126968257445453752941041572856132807845743509467942494367666627820183065134116017445717630282373242668205386056862009109090307513156142323335120608139653273244444224929195565595930413730275263701641451923507743678930583643834778697805404703336745440579585161841004805192432916013118218850495731270395043659763176804535630422114207494984570110695376836594625393218601725234853831755820690070389142634610111045664540046935487276863745652556035811051126950153395203827080048873348876117177405592665692568762816599608198795998939462913699326592335935106140272684877817937802160073534755297284946706390959533810017461588240889815331163611824834015599365469220553965993857390467625364608231907715910075075101569635691513328642923010976471343926658050520691988260911457328119818010321534847258076910127635874960979948135217097285471656906724578491718138025921839704726291258286021978659356779456725078173954046837838858971109414492125366235715385214403774581936312917870033041146548698162949313990937516352904048887859858828033900199214579548859825711919035899274438238802390243077034958050208471590061079830829887702113490858045104942108848028305591037983923884214357377608403087665679406403269875894728760285819885604519620871796439454117654409187207746781677982024889574246296460193980178659840765305660193462440546010302804716196800073557510671378110157116356249095484022821669977051053831221865421758753141522463204973282498933862920550334678403813340755414225886735857935973477232371518404536271082517627319183853317687238281917216160779543714808722034264477573723187695818601593883687332415012106160795864934824603653251196254535874505398558280678557362514091400874451032546994107861635247869157148478074319272763489002040718521066354880419349339350275195645157267734930682183369480128623134195011779154898646454087631717874232896546060842820350500494473430451057224019241386114893226661618101680487163492912999487513476008040420116296769384400922585080709871990114449675313039992876217863029644165876779211225939951597362311360195935866753412910503218060894235768939073801986271422552989497889646041273503106103640464323343241394543108765833500697617923764524371902071876001373051138487304707377419896876152523675320247602879682940617459966813324836776933353275579555394916600053509922149166683323893323708361954155392980082520245315841061984433045201177605123381010638268729415378677802120983742639098666817769058409235387645795741898434137822278736600404071715005424603695983284512272392241696289156862199710464896922400487425289023654981619143330976513648923659890627155772390006792017779821131502228159078398315749675772548332254414769604868625896641511403421983801395625844789553735490704583341078246405091036058981595227251833777362880595631103208302321616585138390941731034495005284648876430550572410377426927023865557324171835002453733570430844716874297387060239907166768667567450007295683189460763954238737356276738790605302994675304371644656972653701170609868563131090215871283098388913929100633544867207766572618603131659143436946452836622948504018181820266117789805167146728334284966423548856162745028905483102740748496207615955875071242807085681074573373650810368888594178999998773799194830148843654936499043430760731122951506428875829845074837716970135645376042886579691240157081404922897508974043947922586517919596854527636643600189084251537834473349584968336403728737869066205948970221139428009908290966208419035298537196457388349599039871370748592532310428155748880247382289980072017668276298927302332374452711498002021591319985776894990401148808639851421642787666987430209650067731685032712037750127078115887602458473296954875774250519607466808298987316075216310417391121611485266418945378831489607235337279987650200030934566478531476731247174749300682162153802811022113360565732151015881805330047555381527938571154299399181452761858912244538095425339851332709468939620609843621320129944215730045673446614654677774298395593791368608418776419224125139757854845648386464097204260635004592415524479058538844867326420643481316007505188566622011822022897067980737127212778942493814590500971017534498850958904531845479753381810521714096877550302286947567514301849438511675235535996448555969072432463028150225895333502296355262014086654331025340686183934686849648178116069474759487533602989509727010935267467834326265599840485070803003674521884173137722402711476757421109491487488849896304463840223100540159964336880544196861840123475213696345790145016419055876382279610032779695253374523293154785864989785515112273246842739456775085437238029487586666929212864606836261521040388305747981670217359186602089949016414565949900543047983208704086630155966944306057121481863056722283497940287077256997631916933785233382202666200226912054411689273637532459913783936122299821472434085279213131469106019535904609215026944673893983641791126896358668927603343061969385693438056330311626316882230698296916669719650745563366650542167673647728878084734861709051244094285479350469442491008316246396535834585147166024465969467743109939630080246822828197263030962054885880728963359705863953421329906477868497932697678446838289545433277320323271915244810265625615064160993774852283714628238548880872080468303598383577586101551004057226360870652822552345048133809329161052006481958843855882340222908757155126777630914105086843961871330587931875998485587418670064851866261834365863483785834325855885262508260427428024026586310457747290413679122716494886163353442850434264656827092057107163730889114852357091554535897764735981868852358360275624466555145647725402643880825363459215313945271268505641413532506553040631096332585582416178608024503336075531335981886202135830992890263876708348185119366462884145519217542595213183542288903690106355430934691570608343295068890262221081319493138407291814174262003275611865676053213282735319449594186672492528050830863939619359927883072672828123946722499638645472963803564899887573750627157759433169062687259133467518292827886817154070986124459337165715738573184036678537068290892686430557909945211140857931075471041935447446035372434958337122893664050941303947547398301937620296937211180545899060611173519054916016513191020821709757528820244594309319081115292591400428818744915227969711266817808372703408247476413018059211168637309883228916031584698193732041137061463177631745512270241129188307649085412619838882460850593712188975018612477969983579564493390757690560662298955185673722206663584713994460416866325107795051196431375839492067997373557177013626382767025577691045570608991479341342638931948343285279944887670429141855141392462471495849295729392759030206501030569178830976461708946616990903183536574509133027560800393169780550163290450138359056595090049222646322140079802719877048617829960957110214105529725388041426746207956946183059035741754604683299808922986815244692722705112270235876128961768446353781968647376481342032997113235625475535327763758387068712666961376193348403934037493533525390578311428335943023247942375969818331851860122502362594771685742692396639799052255020798484287210798793278300670775645641691737943292809210882811781194360763687490116820494736284889171856530581685158479465821609567799562185185653642219476433266903287071536096420117509149296044860151787316672905285880209639196529604034549995009644905444551575594555297630157778684188677676795019260762151995111210047970357424590180244828427834539414638620374290032510442678143280805158290440469506856321631151477911458488886917443679367437626853005306603563862861662558814652668553654027581010625793232638675510398897781729861538612631149229905024876098182526424698752434526559366989062197595387636034643385799263624033770009488677901421626563123542527082389423857128312215647956186423183957771661728659996511770268969303332264045206158469194685543861301959938420410624489133904184922711179307250469875242975480993170664563008612506951688636986421238357864898735798047921589487147438037218629986109343640385935854810705463941777465513997274723209602978889930834802671500476292512689793250328299687820606964340356958192156621064656398592987045266057810791190588122885748780020688863032403321862413005330393774271972780639939965260067681770708952977245122964606164754191015976536981219990997328397035090857957646325215913986113274312715583331146279546250709285426303721277956302215577268198999284285673462420586312294673666154835296991457827044292181978408153767652222672088072154322562739479390712546215302147603306567627345296375268377456151806680464753450170958605469162698127357293618893038143726394791764593524171167483934922286792773320056212842416490640420194805697297983322363246018073054563882988901729292739934456799066318303946574059786547747565496347281471074947246322547930625803690127586469561078105335954109000420602818967862897119813836144301870649943410198850456147306375505079067601595016888368674145029873461417988510485243311553924174237695645798165892908960039189993739968414079630490104502517345760821916306546773110906744062191995146642620246033845854801648813964355255237647974631762537430167821538176094911523060218892668071934296583621252609774277190827120264325591960550809202484509689790470130872294523700432657931794827827873073428723965839986931193743779418032726127200846825063819959557990073338837175462654603882487058371919158501111016433227591734552765553898912245787408850566290868319494619170104970096730907457085219220151987093540516153469470480369018239225956330608950857815288814527350258825672582284934601108476403321403300024166331132155835190115637152585257493547686931618369731360226068945601506714094774126213515661866082510692705689309108615057522051625339343904558953760404374417772075937760065737514436287489161448026600143015362489689317697218646816938869948567209988832695694469675412832672145438699424831658008928740995836423016733041282661420003525149583858691887462066090542523250554865129332580905680347124143847227059880291710753873216792925551530866212423250417735911980226331800718558093422390472979779740871412942038255767086861124709392507158912594437199227080575940292763549793396682835680853528137193180603958816761529854770359127391062188792801431058165583033387511270412391171216678351198614760243354112158462277263487290345007320182550013476556960420056331733922862451767661146536235156651723435891767687088480106215868367323797238604161959679465743780145271564821100609444856280648422967437571587746857389054031803858554330388089778956085315483460289016881399835972063014581602278487779843826533519327064721017749447788214971940319483322923198221656192403087344525754122066577808157621163054031572710830685096159197855673713521976404257033804825486418088548451737854870401645495998749302062413821033684605762708659140100921058629179277493223823025005603382267832700439541253888602592411148832846033919312027011083825952379167820688512644704033328200199950054163222396655280848354288037819333855766639778779996519904676084790809253349313017631902389727659113078264863981856721645583656065269825552751509906036756861256079809513509631917261671310264927917605858423158753311529356493018951997648402170377323584835828864524443980267915584081520727419759602349283216596084350895889978493079227480634748370179396797588063427684723283623679392867507680792217127021745115026483545719720762748410521900105982480635817367631560466206988786964712661988098244790688889233041684970671185385561661999295942086025933258868664434953105598242372884773887539996792696599643756995345101900586179846388637999571111238369665915350214248205239755778061211454660708936791671023181142821531228694312865416421259310422486213386761749638131994308833838516556468895467320078430868205193966971437044229017809306894500668042578961865574521385402240254887625386247578492002791897887313094139543750699369985083580775049127864691356889992862560504756357644040139820840813951521366706935097555736473609741151498859444420185966784067250616175756717091436126425907191809537117331888997736931082316885310853194318445275307912732295432569059610412358485780049849998542338556332005428498271677347740604921565802904197866085029986256201732694100061901673364835424200833904798430192701353841865316482947513254427723386548846136964374291479684178532481429137606171474170171621422083625294779513758367880023865358841383456042343095872662074020538310814712969910804921727354251992736441635973154374467934630184436140670831763998234014942735526808774108421673282219370003121641250798633565474379759320592240932941980266938070013345896497925009942785321904158973411089327481423556988158484922555465938159352971667015404434137582751879186693969050853417279800988836326816392894609245698630933216236375637343232106689941490321493684670069778898059120807089448419621057551298719663845619281921240079538037737255038292058835772809494181704585835794327745531329439756782486742123436555505446507819727665183857200520604443853806268646030871921507388030892398461865954621275570349815865134569668274815582850848123224589637340313346088091588100358443285903110328460961134613598588922597396737472560410159551421643151194016670080189076008062682513062207016028849087968102080036409407433712008661040656684817769921220256955657208408099021449452889102960046784156050399316794504448694129040227873675210866991257744141321840377983433183873333947723269773805793223982274937252671218555213636839024549165875275484067485665866473035176465124672927810768295036762018045173196036504719597733397122851996829492372035472880694548608340309675580753036773716874225222211600519550967127046583862078321610378868854335744308075007638010839340024090624905228571135037304546196188066668989488097487022384674651203966980750724748950421107914385829345450740376674652359370014619383536611682689236380501784933177571338488386992626509999450344486242623818256825085933669413061889090690240290428293698359647090193728654258558231528861335315464546225632825804465474794301032674775175212514761959851982753714565208914083346755629081754889716860252684580948601720658849715112547462242075431296009491524390311827619389392878929921629887193167199278917137299645101512693820336318316936017915498361474562201903069163990503844688658932648365563745246555171138071563063081021046694594139061931607290540242039750852944211725564193208853958035006717895858024086706701323531743380080305215659764370008282194623598253684990939574588625520338097331820778330675348169919981698528714453867506016757670420757697516228313717765699881648619781364197670958679133996937255085905701161174306097154592561102331065582437643811347558023573039614625960010512653262544770966092983430575034558415687154231541123422980844908348433160027757150498915963589243929987741227569869701874897299395932475717523952629837608539650852100380254355081919747597681669218928565967401064279494838311806664143019773868416538955457205422595181114273633243559604698114700058195424259313519217063571473518059028184814405942076315572839772553688531022859765771730599229910634592409968827823450442868915113076265932766527983538759316096243024379382048602943073251317075208008011030697991781361828058798307161084755929196674321574500188503531183073128725508712463909803090329314779049182679301363081573392146694506078422113555824724218149058285246621546774428478750728503445116021594946834718741865644952756898895864931974938458474515580105209240547451595851639881714384141798506990758340648338271843839431252965808667048486820922535059355991558963698706875869146671050902224677703592343206775334144648345868530392316685288243257112816768700708806287810926758696152176808626246663584347420722861775852339800350007560449393307210061469368644399642599468723078050473249864082214788423688553292912720101714612342582955305434427798567984938642865155738314436058280175341135700271018337607668241238393610733772305399254046910730297271662045730817356264985475099803111993333635382694954993249873261352012091686236237363885154253668879557476738417249026523694982993356985402426776533568960215233676384562623654220506367313335309973488270359004982051683194594890550240457930790442565322344535153008202807715963643874990543568233707125480566328972441847311324710667520312998860402285567506485563267205415901780064203616100781479507034748258697042350220112973300251405681899957974667345955562619422298577099818209114797651955089373441776013434550759030416727743575443935423054788832569312268434477055745265613453708815402486961635671056763210679023984193366324075469960457505261599769118732841968175013781913109294490640496452251270630908287564185688858044014988992616829899717027872734144530458738934806246511165361991598783367699529194883863856768967304965046757443323537280450791392033567618269968079539670838714506292030364449500094621008019699733970028736353826383057299058184960497717750857964996276659948657489375117290586986380843308810151566504159964493592602212878828240796960812779836753996739080232373169075455255127866288230067541665962759840191997624959171244960646265119709689462105630597800929904534459539916573603636478152100314074193524434537502930733519840320085079696712933197932197246070268418954301467727950275814304912263525117079613385983032221569379125039968072257523017805995039550907400277303568948379500395303819626618492250099183940982737318123972860138144227553931047848316624441721430096657814501574802492135485746634709822983304464409461995573978425918477263313018067843766896889208793224851437544561942746949758851218839660983193600435556484055148642103435647007588196164039983831678418851381393625924155215826170308380192535485729988579379361409651568255424562619278871519094310749265995475340420281408398152737079696234231282206663793302960830198884507158365664084969694928048572075708150304383450488063010723429924438607811389260035645864633351356264853468096583675907042715042076568648406478098508539829096535371923351909441544090112921418823937809743240770731960914808649299305745929021020849123615642010114712438520871351272407474875592993077781652176715738320931112678783720037575455789517618702186468012292389493711158834661704943034097571104537965547146549191010191415746672115878965766033551565920021316595465678346011200558739907940683137633139109983610141849333642213493225992209402772100993683345502878600341385998761049274671198810871442884078709210775375501655611012642409495060869621716715135963565573154699079701516639860835262424113823553989685832955220615175419958201791181939224951511823685141221087814360044901390613722235609513481187048825264646007011214356358441589329863476102139713394055233167370333704696914715428147294884127286002676494999246053854882188996446195430190414542532089184712328627186999601346844307878204179247720992766405508187738615183968748758950419829584961895317733795922137768660553953368413959108385726378975931780454025544168134054871179681537034429100709918057820015982261223366034821835747077660947566147903160652501748446002863278033627528379272051776593687956672493630511821615310053646994758385239106875469492603349918950398721103697995708870452952967999877132769166197480196448693617298493276175527713967752098679706206666287280972060128966317786797422178058410100613475445914842842232008801678351913990956522048018915574579686352477876514933749230402242401473409838590102973336916709578423752507857677587132748000286638209118756144313679275383404746568378234682487799670035894746208023732101214540719464894675824457584458233540194731685013349210044420633963027572139139453421203146457416746407746168365778383525864209092855582979098275466549266173114576909404227426416106617258339737611775063419486827608598375746052876346035458354792228721551672620271448917165280687221873342976201752617492592434345131579664003732974044017669378242509110063455963354758247619814717974654345424743806679273431841514239650424060121349508435331429019066634953264917877876047229215116487476087352408389551143549093120804311984060432912592200474249632105831588445931436240391777692109070090776880896152546563255377051006986258568327488958527958221364290303062098729132414374975814651025547355681537049417911269448980776831978312403241187204490992387722829361862646763767346570128911934819869069201198478866582473604619687095467060376504888933182263715006353056435005303549796769536643416023083443438333075042496635332357720991265009771921645808257109243293949279893483505719245507417484747967919587539227301181508840547181607336628355993124807780216552438348947669135968417211021371945465523825172432376619839298456401865749378339306314225426019425093423901095558608571448965294806103369455762274662613600765960915627032114332738231844637486015226657737128997984631070707662571480836728746350367155190275694440967784347646942079108066947455976699512814861866387182516134019067766325188065247040371135046527799373601163981166885079289554440224089512196385806072756142926122171580297989828903490148731275387932655118064997526734422911611219789019690526743735493329497050231613734329599868700420759191509418167176451797205989653773356309837282690476078071664583395616708673672294459383491304435548999847370499592712690206477645786495348508457442150391151261857099433584709809396795785907900329285709585051137969752262986203886515432722762961165256558327582013035007094679175968353707940959798455314646480748571307312721115698892285078149657464942133234226923375281667402790369456787397017357357384966791287237842928299642044660553331069889662603321765949280384066528411396236799450773174860000202169652483405798686693749701509090294167800631014857027438999877997028175280364277987779102677328053550404192595104985669422474498030939558052331997288323687812694778175945453747001734348768399325565759490786855222956035871362391136106597691970904966275256304324445611690497305287442851062331036908890481036494503507894620502254121750910494765494169274711640719033045486434471904216029632692718607689071487043170392710705972311784649647341219276557034265277834516586157915953144260345999422628367835675129069436500066985438083020052577032923617734193183103084455408059095492802229921214577089600124581408461407890935356937429968693556702903901252994546613637450487442301579421813307721606047268850469569357402415384793406454785064708118547208506206596210513507684957429233683332437090198523537682866194174375588077314790040763268624504611446551401544174302710267792262831958828168209203592528371296077374741835199955767291036665838031323820290036328269992847380360252508019315982555071877506967371949631366204442706486892072818398351550309905364947402809782326850613752140105306609945805489274232445792224663776405284170269090175475683673765056256263304042758855779042148249531324780423444100264189750304763352217701796542763794719172539144550201520534328947095990839611888372932889098112188534196910636903343100233845861316840537069366175832669664447107376236947198557132640519170671452451566856202842037882159782481137235551179155465108524767794283368647758970913973910899000787395962592541743614546708693779039079240917288360025946131210768194750416674563752401309763428551403299762059369550534901977120371717522956812929316659814232868870000664771177707319206498212789392972114924641294087447713855452415181460281233109713574563123152459433454588824998916417423815074601545581780789810603097860338874958277482322954474547337912502994262509317125051149912308556431323633772567734257957748927172456396998812379677115869150981302436345919503673486672980179170349405119084551063890038579468106880070381713568023669067776912992578262553497200164676567386434655120426187767056300112622683652533046736133495545280480279328418927272318177140779805085764676049502748670177894481218474064281173701086757955688143285117110163926916294132630421482307046654543333060271044253850159536148748716894329103230365288530457965684885427300628462734291173448336206046905311941783081141266341455169485793115730608955436858031299268563026317688971140302558028536280873599068440537087871729831083251570521715751291290894149244135173032281100726486050051136694961549386948694541285802157182678953060245779970147761507147108395755200431696337268709887810850426606067354049337513905348916094543978937128080789857265288187495647969502719300902096633361843493317316735223672563897419968353255274630999480768084926324344325104904044256524640935318593077750215868654855153646893025338581701522918220321224521617594759283358038793628527088649282673587370935477618492047598054611179873083023528349489682926050727104010269537901600969708174409257379247020990108518757496208004715375121601957937325926634910677933401453853336501241186755342170694140628654586984344754751386600033843832700220002320564984457043915048541484344790321897563032901927911678870991909852122133889463571424693421556986662338840455735344530934904224146425804004498899460778836226708746905414462133129003581406730992697537398203376208541517569158213028992158457620299712645944464484827951288978800780335438997904708174385873260718282404686770188752208051362003750911620741796753865481190114170779927105904372098237466762593217987764009359205199997037442758055681327653992804511125222667173023161862307400783193881216087665088054532600780667572302986205107465178099806971163773710121523846690384754433285541232313458363678202486893543763062330271918666850169027157183414950094556302611944049056697040754592204626557661584565225804195511153920842107458757414064313864541675042604763205899723402191869279136705781761670123740829681873696519447264217583872529122171430816470496857720111282145336381555707291892793657297848115136329009405608464604169407181051129206832858108982806772547884232253451744672739215741141749988565719534773548805244515787614378146382561088187682696538026645190351447593388848449796971383924934249592843293056095611558978300928025993580987218949996398244731799626131592957871411093685046742532674919693978455762602502445793697414930773297157772231327754483934119883997448576554338408150185036827070491572359232183217516913426001252040400802453222442489959611847062580652393172392473818933755581573558552279027382407068713400022066586431555744529310925261577320683898613417607498180350445069483570212370865154034149041207727660658768153417949999999402090357138294162889890501823316287028097009117966532399573681540957828595161287272492292983763152826611173191331589183314946575200917968526169247031112304413262043545403848727128133583779748602458283105425234142167930809592359645267840491675606447984406745969490970329158448047331308773364695347082846104426105615608577489295091315565425150995949146572795647576119401051777061487645107010545583562879368558947994990388804239054426040700509883337592138781508467067164956932782082956676556337967509439809895091613331609427984254623201977273692691261087595494166630716179281109502000390010423993232180387141719815196438056577452662693707858472523722300352836854487719570476690074174877448914605698041192649942616293370973322928586567282059668022266147698213032861222714730386761526410139610395778134803747433234090933678345502975188838287979856206237547220684839828741602384660404776405392973496660193473307749225943014117818553881988010459885237693879839479942137573587968980494831343109505191658315860103671194384174706809855796216621542790445788646936474955697987581752237547120542636524871474064378742812589420254817430988348048782226547964733394996270079616057211523587420262862881509138054146552173718056240929235070172875932687328496780770629116008083951552445045997890591909442908639781822511859535010250507327720402395167337927462613300893313294121738255483355837831062072848141339366425486615527409647651355070207720813960512172924981466970243723685761898939257385897147173510949191484847556412085925033566974474289960570211501943049677595600069523296808428005531201274562106765605471760014075370737423075776927936976753073804790712751306459564071233112814798830675576377501140534372388763571353419795801230013552218378982532918821293161023976351142809212227938144102497536024606020695594591018543460351490176039626066706638861289312145254503902784660584422022411577489782242008710141391553725764165135212651391973842110992600801045117576722098093509262102774108903431919644943869436163382139576877902795324933013781308034563466794019193681268659282955490511165571868789883701517966786554540135301883782249884363051655056524245011482963945591728266119684787819050469066623698252841496568486834218327835241737845732831349918191793053044712798013229977479160418551155611664029746754339606071518673231470904262583487984264749471787837377531168690505866891886578551141336112403871684307367468383176409058456288570240339625323591351674886205876239490996334058266238188969979285633833496189128784054352325211989589476526258446708780735480220337523042287901044809752570955549690531069370764011953179059400697705223390196195807437286680597739825218025545151746242622686273478125760129481890236605875720897407113377503354106074026663956661921532840065656719686869720915152953077118133242833576898762210794823993982215332552641232985055299809283501377581289461997004989717907621914195254765919561377464780829011438630907081765810169074337394482739416023502829254309058426080259968967439658773330481710253175113518328357417597614111446437442815808051112935360536602943725916765090249024852347328541743012378829664990830471801284241942732486020550427413291529836507748588747602185595316461270019378877254532705227883057018090172209968359027512322735460410290912578509073975054900384438632417621489150661151684623467002298499071332065592758491166577403428121579046958900538130631597204136477626637799302627312870169807091267531291751417890709297019818790271444204655803417344524964328764458392283653353197791282298691054745406242162866624205915076345881570674178069169585851526522924685065978553696958236871670251600146683815662355074194554447548799638094284829171395133753708086184875593463856831870266883775172408301889635418406528374296278766382859115683285012983305105100778340275367928409610596242670692278477491422501793162405325884508210826402567075705720920191992802392008133741573427637188672078168122271362659745478680706389297797101350956541843145612553527493098786086153398952829009084303968828236856435714193068938750605612154606670136530671310766319756794808498014650339043205106870371504591303305744654099739890326287623139466416524161779647796999386057206703707887578046039751528582646564026196151555790362454174582900297171908199493017006121970347031054111315771053926684051315219052989791127443263372180663952350644393181304633308953781153901114504920557580710635739857348710819683854888833751430140966634354989508272869635341134242683842679134033239855285892732113793166380034352182779013933612592170805039571057698300445896806461861199144996605787297823382259140931858455351923069605885901480278213528989442361685488220560813211439488570753652392497227053952240643090732711457789897671742446185239563309835996348818066751183703097602799168710310106435073510593820359809016728663967298719758436131798866696483222983761220112724226417276882968304375293194936329997910892214592539023882552254581135658886538641054512203153998996869536072772857593700541905876970026686973312954695438137377501894555203958973281940201942445619694361552254140750681457777492493051725601753855433750880055265064453100357217661732675773158452870780790244095683147170689947145855621346943476411447096742521652626448010929617616655563309095693788525472539488520773084751792791643490287743060099320867908395148553527428896769493627618293823879721309921246677569963941021203195440575532755768764063913707745791845039830819603712903103890514521204862277643793496839987612252330729692003936122000032746434334665223229698545549408239991768651434225725546122871629887317764512653600393164260656148505831816178415684409526412018755492661232723439921073492044514815600568677382525710718362586436179228807414653145745975755320799896526298345907907794625091264826403885561193973048369902681830250499989778853057942542980084850700825342558718842128992576225884694063312730605947761825391930089080220100216460255898356206589074535778623787198970375154393846550185992139909243353905515742211530034446840918568676344498143458038733943196575498083303231574732940047556326346625368255639151281464285386473710214333672360612295702577563924082447319399997376013504033185385228255884807621155254283589209395090818516459771404275209227492056179019319926800013216393743969858884502246889014240294597197455206931107149138547752430986235035709497087749148086175095057535543760914316110459104232229349044957657275906495755542897222321325766818756993432450262223829133966922125986426634366530770154397266221248230076111426072555409810962520066169317513463250547737730307178532880899089342888208925248411940896162964529357838831118031371492196242640745645603490529556620160676544864216906497397038479463531538069014249167373591019875372388350988440166518504060216878470338663585040951816088191327666578373596872517631205647162522565551976042411228991637195480187977410836119445569562287090416374853575795113507808823463343698444012163132685048084013294455055331829239382982051723275190067443214026245378215706360221571290081684730270994762588281324164288688639746069794440188447123657369780919574591131241793919120560370570662780350074132963602776580347163965147702326390465828768171442239075790068706658789606781831784012730491714869255405158953945952943112903659265836209582496870387372617613069789138333732801189042352803128700461137594636814004372498546041132691475179237226066576007353965165666907961211361886446227483648859579514154308544061126897591215497770872190593836274359180428776191631469021640425328135515009325283335123814843608383870764840246763423113094498194052644411277108195359265461295269611486291530306050284562818114032443434319277189213021102281884678279790852070107641956146313042747832809377820334983593417396844711520916219717362740797079025175351021873987727354873626642980910136098354560758585838077921250605528391981823742676521589807114602932875070835907730095585348916041839543329784025347278395074484943885837288374568794974586145766674387035323596034939711155660956327543042024410739661498902041278050815447757860187234916971409600820270883092209762207349193212772399617266695262649828459169788535846598198259794724958968506573291176601229053173304434319211748162890911181117185848370155876991947872381777102194532945729412531256062310161995823563144071838238243957334353203490812334871333751808242114904938639228619669615833201084749601680263580046105410672061045950626927653667181733083101088436293880780001389657047858939009278580922768666381072288490906553048199930405819871666942350250272722461471763665777190215788932565596600740417376056143774509028641452586062200235098454931802247143031541611743764802497358985018953171852320301290759473036482067267556797524028051382048688421248897560551685216946877661953877722469615798279838706008458051172337555522929618440612433707089828297847149605754934771711878483201234357406699702298080634675430217719508679568516195544782898503808150973231198527000698793228876540177407440243932846900576880600495654722061429357676528453225872345396990337767524868090856756527383889578141634539213202196271689469301040073946876150308640751395864834609548076223220773308599872222562188251992471458954270559889389037798533001419855979678897729022375729798461789167555680527604312456401391226186120315557500908765871506665876617478148401372495466238406846170643653175115116914718755574514852874011954093979961057451528832186499357849920428290928367221047272011654837165253699056069935397502339539250469023924524176690867131265419608612090999302241423777735325103748853361467132770011724048316436072535983883517633238443327862494413765903575355349722846383870510025913512442950335658226193826399626405985508926392982495047743414889539198885355182565298463400191453554287925939622596271879704881553505662716079288416097004532704848389866377023876784667001625461923671008169706223883282761137991863760340251728608546834170697815180873906178434062896023964345092473490740977822189093159894442977196083013178162080481826241743934673345984122328710343235233095326943290232957256113082262423075050021674016441056709870950832672455099305048162266537765744059378333722354493305301277673738259590417245866879803542909594318468245054286244556022351636705853922963556981614935275227930619333998325686361815412445567334299498189391049106279210944864341795444692292812218720028794090047288848936557331006753475661758020878737253256261928958225623448200088034013832413098417003915638082685907724563087287940355453745954518233806579958120986399898189644902803198627528122666837380538855672568600538400719570903130481531565142370930030639299727488364861028166319366784940521506552319310811276568381163243793254654269132680581542196707285256568774537512536493691995275107662997023001110497598394916523310724119392671667749003802911300463255148374951639331183443024362695592876920136599927963001184685004007253856100940575155146296336939501341297446796725679865137236394249470862646250309037700291331147032950941103337941211141018700906902854850164664529879819313423199907754582312077483171766348221558443387823851235955526165042027216643198920752864106335848159081890100645093053423960514217960561061468545858284033877295899473426337253287913694858905831978335518081120053586164530180749030847382175566880251051696323776968762355017015158319421449715519863998994191228537042294565706700352625943817748875391267870307234542934710660016886030087989459655096287906030526530792606886104552215668337374929635318740523857222228313018932167463553167002916749721986217277105803091765312183843332957625376982888937314377694290327846571560134513406468953589153470601065732657638972559368914672690196684144694747426150222562450357973330454071271935027190217421545477983327289565272521808299216079405501946937230986529779497519223917267468059366857336323307492152210009030381100815629876052241190336239037336085781779612668089662015364203047691469386475242653965904621942551483034059857379244224808285233232446500727020378963323557386431165871035243726380700468054915322578774471780635698995326540118408123533122409295324061385805098777970482442961448959309240326560334239057449770243230381509449092957026370483962142184927931873258226686134210742392643688881237377085396253619592763133589529972832300155097961872218546193768522357246991737696725906535929444472765398252892713846143026795234369209507682533618547975964835752591409196162250836665087085436585588647316699587716420250984951630094703220085838410366886127691220984675763095897211697113066508127954585636087349754962200548298316794714556167654231757656134095992115900144093210074112327508381442274584814836621983645323732834132382362628217670563991989411482324585133296147074802011803465169750173269421035026124069205452959301861681247441558353398681610212333229736630777797724127493907795783593091200801800258820129317354109042403318599951732618702567751663852893682130702614362029991152776915945581450331181259631829675567703019506018376420522198865061508361946853897540964808805288446756044777981845752766591777071783710868383495358612397613945245820687124295972075662045618785601056093061320325884867404708127966617126082068313794720600623123760421931085071865985888327320551356560737848295756783970567447684370919203641700149596557111275802899915895216733850969165858151784724540217339846489896167291777480258619014589667915985493816814419738297875212180802075302342458709042538757549064051696411534397171494450191315412437728988313367781362884042900850456142839608616458321834430964987950477920678434277855103671341722424135187259422278904911137008734355484861116725723389423275089771144300968664016111112867095768518008958847355414632441314633978539397748790647662664333837436900048971090750875490648336423180616468917517439209200319578531090938084780805074479313092122696503692237443224382174820203137667554211515572733133008378428779546415393340601535008029122302434061663166244629405623967946560636017439482716480319932021143567362704037828276718078612408289536206772479267717103004546879502877385695794193732594742413926867495612518575904887359618986024582573249951267681930369705984175715917311795015597011451885618761641506453319982938112214079678528690619912884696250089221243684804326108550968678715814407607193261089098744755471243143087536313017060258318021511247757460880279153126223511321904079314705715070115984649151445250582328107202577544952772035476733287052335362143943071802035465642730563504979670350688055325691020206705279292314490691440450145703309434469747962495842435911154772533950187434807814933959256086109832751852318035407797881855784345918960535622494175837298149699441165176141708160002917577796045952131203802408338234923234406701460190270460904880086198286828007042516491091156875405605874819666509226723289091038845818008224416013536593633444555625403427487470296476455975880442050926929449380600694331720551475308150846672920281856037405595721285879246611194234733477139341114239010472095908899532884445056181945627715220193787759374458903102510083551019912544603168887406148764537250533389816639814287847867756947014804451491006400567052116207897611209968351555414286431401274933004463135719065213333692331460355511704669430015554126403131962243992175369640317824055139118690490465955601705799123412050206223818332869843793009051820193270658739279319695160737412223868711487717821548187615058637638027377097291382149870514424700430893491505764532757153111559291965806832998573408444875993668156802799513349854357202096234769792507619580451325952814230826692211341550239580897898890203912117043538224728391764284638740358928491049189344939513863102644888240614756163866088588761359698851936967442224404631898753457703711183015248652066257284796557459861244063406065394145386576220824950484764816667494355797168835933804512396583121625303239053225889454323824153159533558856723219062843858087343898188461974378444067157256273297027953160586736014321502772065426572027602858077227383076174251715281300283763149021892792734415912848619774674736202924828615336573363741599768878815670919910337696924421859821095674609735666587935626992855494206833370142679193808366663434799018965704428734804596361817926377379898394669464980714973056631630965800450203231795789233897420428395327072182550069010806841858759769432980241605984050688298599450678140765462693000455780737520852794283444476890608626250486552169037363184172911190813220837260216044968068417051198104486875792837895061487329120654573560827936102621386656610832373817706295526459542294109550402848285397901545566178428911596012656358422365729332192102524117123197500864836521066278450220145895706241139543522621312071919570061557093545668260631407542747751885352156293156225086778935559495392962098971639933408189227398261124314324645470378497119741216141567452348988952028380620462809797279339651509132837912980330006073326702301409397516596810393044440299636700123500340437978975031557285340305470463095663447271006338253432992196151604644025939252812697497794556612531039116523194179902498077421012878859158515130156210080995668872419370575654007238208288338281101205118093208110002270110318689020623482842754121374133661136363044477152089987735347861425632320185420303502637159838003136394896551767618884114231322990429465827217064501788051776549747658420386679018873177595933237472759984348226849061258826107442436378106739040394943352159914349118681445592871107659991183101449339168842379558606115438892940207713821300647670875056016778665733667974801005049804812817611143770100234781596535383131903802556904524430157720895040352294799549846897573442819734828611269950761008060048566174844486144332760721697264554901249369824829568519455163436570434793288405981914467434086987667238777138258461519298982745422184842746327440745684656977604458264349525499295463132655443623703282538542669588146963713492268694586701383421169264996242091469750392851980137831535783379296925100837857663155066642996522638031732608388306182469734862752730689826856083761879530454763091193401158156989212159808021205752371885547775422905789881324866716468083877468351697630801085151132897495556270804264136800518911267967343813185444083385941354387858105042002424225808346315055910057078450105503274849808221781503159271048613256247059562029844993925596089065534867725218402122558069666518108217974222119604468005567284015277583974234632074402343461206040693420419616672008593037871068710475340789125432679991642145225889199638750630369939012652263371878379323098674220748292439401484007218015885159132203847676474895714309895933297220711392211844204392111895937947917183783963138068446244174608382814633246310621479948699067049555741667237606741675668673316376532289352632391564506645127979312766870653168127955071553885999304572757290330781495070739735041782734674426130761291145047157481697170644950988581951268029756881840127077309008956961767334134463202642355447818546263401762901618382553760414733821025959190136538067907102689250128847037787291466012877532677672369221029817316967853603994570619681298992543885634495222574243677144596681542755134074816222783884652781517665770055896218991500025689954466807366922391167650115456586683885126891551921210765882937330161211282617755454121483655622216700788266395143728631730793575062456832748779774074137381806777496668045227944162234742831871732325401087234098594720005683381067475018524733080433506086675386482888568668266743222624465122731999986270079768643127999230969585175689167172146229042629383583452922713928675759692637211815373834510999462221951995920526708994300927624122012079751255764021148344464962673832127778288113274999657142372103947682158873419464647008297326004950621800417352591685746975373649469571689824844519755562378241297164486528435645046986702998724130319493898190770514143076760745576678220434883578896647139863609305053417455419182858594469780833301845709584758823881639380023093348310024760539938699973394152274502812626728030928529036599740653164411906437337991870263686145557510722057595998611992343173461734094881198485729158906130737483246256361337378613472152545931839375533026274805594278271691382785480957866517106551527124286645430095236058011855453011617768094806433908319661523148254976130840189784263506459571896837371855159502873577649969772784178208564985611444962671849639651877892214407452076644080807941706746954522902180405151984885604912176433788029626307889648563129446566728557087410141434121075848056120049401832831575148973003874067536695871287393990505911402192823338304307199722497967326359342893927136675999456126763087177899366168051613672584380785024185345984159869355276003212339387466730743564189525600428628544278427292309791888352713000112988498408496845060220924427789659798593344726945571241412595357187997688499160218838594451355112791525764281200136242647917260358779129343029578008745837475029190658829793094016794851576284730972904598028180797250730544384124056145750560404641284555520378814105900259728675221277450710314804429163099233258379316256735814906710664727028981404404642222139712651363410448263382316884554490192841492371899957919653008583027362007295907978871037993814432188079994426279301008812509483530482562998105786255031753513424343207428364162198911755164377092132792764293441356461207435309366703551474484327131690860717321451321309239504174810599131915929708255979401400071610470144543713281849883324392240654107886179240122638285904266253116534493435411097198578958394097902128988751232423529907122950527133790235469401995980097559189427808753109489432262418619579726608066805579922383934134189686897861621362555159417001747931561246854698428512144548715231281028532875726537455999749209882594697211775675630026015804034092982231951011069221005301224461757516016740121840106444244635717120754210401619253603499006622128138497689497793734055532667841161068521004479314992592625454532823349220584646599720268702093048632925857276057119109629771942106507413595385115895566015899388389496199770880326382643771336257146301256671751758816007337088657322867067755017177308336234815043302879595611297683988106289271166922864609710619029015847700865853829793626164117668097642130102365866450097549037082701928948052151729807314374060221890072486750324634815553363637328946715398166991912427360365279324550540749032185010303280958380118941665558619508934348536220328222542256430764704683719371502724763503457193583460570980714017204525684553498708840977958699471581769344859061605163986320540444812673048418550879919878645996071055761364550687509682742595587979197041949643295971701406217083861152340550597449749869509038098635659552267556676453847754768323869391091333473834720054632322812317745394766646409130978713419979537741139972631616599999291002890698647682650303216639403682571179706990925906631786558352651234310492072359393072249119591806415694644694279100485065287396315802175054095713164601450187438093991330741874787976261560534644750405359257324393026939395656519016193499728836643150168685011032477276664589768702150412432308440090268961639301053383741064046179626447954052279997076229054694220133314998072026188889131112554515375917559873555770583357777044337058173549363090853673361549351109894548741926513726802655199851894595297495545300671463352142054800693869801089286920204608555921706370574458365001952366160141753178238463084325094488846595559231484266232468026827331408813094318994616678762208152621982459771629407045880275200825769847261976540383385687059302856464295563482548160276801565314201458848181274985001120868962848202482884020438787597659589092326465268148860831746923605372843234094238285410650378674535531167815008940460405529732066226200650771702245651445123831040627562176139940118724376451672018897021690785952710326529408621180062725331966517593573526718238259427166729948620428724199026764791609966494740686761587045897350957960591701577748181133682555517673098084115499563447488645966158623457116659266643245409254574423086284219895877020720185492085968957629566198785691359059296843611338060224599732792529494150928767729836596397820647360878897857437471623571667778887004523829775194574520361077411549184700577058471667981198193504567265641708992964408299318929606831974161138137875995018507411462569577075535060467500847318950165130056474537728472001138738378105646692395201756539983619753922371059472696937578549392640299523710624433461608536092254488772188702188867861737520824822190619555599062625587735839982159159054451758370478315810054690594294936946265208755633278815616451060318763355300472554226023259235275486242827842424029037534530793015610866159677278219246546235045808490408168133713935326208478976022678507726809174335705723857201120204147780144555260925245105459152767626105848692844561734460018164054233520711598563712642401529126156998183024482620887883446643624807530149901356190871264226423180250118049148326873377432378861417661885746306182494951196947186268987163732172224982757840622457233821122469145150125969446173431967135925663316159176747072653801747868965663223133884044437835851578269788884235158843436180152881013740512216434094134242624792244305856662978859754195037340686910282180990107234135210824877948743936143756282689514691590286154808124494152898939265378743216148291372989757935846384696579055664682347828257557931019134121278592338028802660977755648171028802140309097951311574766595516513977130385984916966210663750627013341636380536519894493936149443869061769576090325888434891443885164547816183690146513428994987982185232412986748960891156580673338858358350339004972321767969426631687198070559914585237000731001222303359552562541953593066522586823590164115535706617674345655248748763776735225159215847291949582395440981866204815415375070691680036774011159591495652248954425244611919905840823144492544455185205551286884887356213130042347267561718286517433347437341970327058188436627620325869585441213582209912285030876240074352962119241544077300413940295248392621508954405844008903561921326019775248238665640574847310813944683484862802606789120724606321148907158896596330990223773500653422102078389758798464476285773379760390730596455679502773721453365223747381273543458942893972861232844070526121668691126446870571056088727180444279374464198087187983294315957240637891704496869102302522127359783072715427661654193938705854860421793542657170746235381662313309354180276388588253272655071709083182543586376227374864134644705766312982029299666849910002026383952775479319080708971655653557191798943502430089392795322605198593609346151720125903440473776617750567738514488988522885398444566582289466161625705538835457594358431472561909494918319714272172350630797876423871430568111199926878293899218624543606845026720965001996044435011927552313698034418592507618955638911276591662460629609298047220354231443023546786489845917640830058850422027412247408217797949076405395233941902957443169614428679251338017373098224431292633151270116750347212376599816352488052151310714982795900601870462198849796850650619751361249383076085037182598788746175848491089367223565057938076040578566700281298082431252192538594809802473226644529491903197550522589122538537802528346645283716666885943075532843901648841017303206401475514370676423187661515316145847494187997456789508333633726818030901280240729389182140789427704903241495647303013673379638414358738057598714168198637992541627221636296947653813758854170923768187236949395035574277326570606240078081143495046835780197338883489515381014680556553827733695085173854638178707976264962171018691637020736703538358508049334461710580621170164475510392951938301343758392508223559365508916708824930889301346494304140313352383274514887167032892861231613951412805847321471209883113372707911279721848687485894040895931205959104261382430587346731597339972071555273563489551178890030635937082974921620393181592851457411263708713176404478593613942405137332315804029040381639556651072101710383685325318013977063590096086394864305199287231872124288176373989483888820606987906686617863972447872507544453215477157747553509779799593374539972401506101948191483864347244978330991793072699831565090412961566215121547790036341373006275996558066889284738744367189862578177144328644409763786862193899851916874692420616473390516772603993581329093857169782414971688925049136322515634011405092081342855258940133635955259706026030765107657668190710615367669685441357802512014678376631281753592248450336247151325238736571122380021272331168359486999410413508867806549060191090366974998085529715901254207185228969734007098041468021341702708973702793672819970377706008154656250850447121876351859395544598251337324741533355000927475168181328925633118232809078314155098085867488399673097501427184606426108082146684231053117246653271221942964549324691387212202555294396184972346914183569204339257846080115586964105817792082740283231289481496110006441058064665627176088211497575768221435550185055215028574226531476869072207576783796252620941703468972521427413762354001642269258635993606726283200356704861792126658998488207485877456590905759501431724369025257022675611465941588809717973765455503577944425731484179948210975836162786303525376086924065816071574157506640630659303076105981227413754391753926959908293837383099545989223487733719691431166693103971197689215475233234118443426096970663842959436772783445795625316661479981859620162293319125842082470769895263379539349024982129315656994858035731456181542584731115676568223578160451325014846785876655839800856495142285274849590300045515208877227216579713082186893734015986314991778903497564338014570699858072714802178876326857673073575348069068856658172552635586648861869186985080103037861093816634865197997627755660941804243202412411001303166301104536864341007754413627604752306669829880541888090099069316497716212699516313787648879233283456770481829436615303315705142235928843273106311250310731062783774636245519596265910745436453929072770415070490476777573207316529984671489190785167109133571662608695748215594879210007050254686340124038513153426397444573231790549518812912857929295702143617708390270368763194561128360468282246425859462883940992364122936904665137977486517929744594179274632112809863898719804259968440888740495436686462812889602139285257252535799331445111107439912659509250352684091324235540325984706254013673423648238294017120768479155316687400801618052153413496899221998227568559094301391882605304689551061804151191123123346230544683974009206711758321253608594257449372989431203527521938917415735815446589667860538639639756849255777755299948594312120288087490554429641568491844328532453263635312015822284638523785969336136728281746855262462591159396312501742780148763434714603618735913766954178958430138432240311875277796265188506636319598013094844815648833829048560527304458391255064210190429766029950620209382541948050357640520846964917222876891036880830164260687031199542603282461517363843133946362702968345704135759014134728967521776980447554282757477630891844348427062903172086611244843544357233914978278118558820626938060079616521681760174622672778988388964315321514043601522833186045378098619469445658189979206272110847086542323100641913474117074492226773121451628892668495677432674282578219798693622739341846476366954980571372186567404650731063799658490725407037937616704235704775925690635052487069610240374007561947327197698602594286673092144986137065407755989591323359768781372669887032611898673164327464652898392580729596994350246622207146167402210663050986416065784458767245552650298489365143993009827323028859752940719839581347137965319365412265207325933898226989999252187569486332008439801300381026371565735588331734372381182536919715692144117131922845796985391514319663361106644410158541383546826449744620943151874074717664295899460312850706888653483750221927495240405196432962097736908452353628731393934888040634542493591545269722966366668608379749060815508540085182356613540878264815656569183342007330014822594120224623627220035945491502961439954376651756892989208437073050037928954241951468136203312314002212264679303007237652326582315872858475363745775471493709236492015520816024067422410550323058030627311068006581178316635208910044704628712542984137490173193296823025226421500791316532513164629587553851956986247929875911544139750681535013194425509285458056869127675682951231668436848151817599447954062108688607916141003180974376785574141502025201673349739231959668964385607377884113004132880852781798509621771095584425475084087061322137154844519436956978295752810778778093997466632926022959764417608601755524712594446970936241659878593687800751493679024792653943763972406553727268420906075089203678305858827835939228031653720095310965428353107305764970356934251837459962002086064724142316479755086178177688488418057510088151638679645667018545184101621373361815113800599903048352813713051550731329204835327079169607525788077581099859418039791966880643030436443161349626444298076872758529665135251059474257919129682688282695928236149241771285779172184048309463525107124746029096129507158190540637473247049849554225962162719089604963445557454778882097020950521757709842877218852946347315310291056626952377280962099870953169937181886604100179609452364366155156239080664223773360072570457855935771837110635930891936613649924894639857652752007186219504211801155974299165201199068090846707372750095550911184350983591808878896758898583205632146582004043505142518954117175594026246490770354857145239260973345300912493202485076182444912075269366728085955170923532855555086293927796751895480420301793008709014103831909800982102956721005049236408162169970534022461638890683072554131490590149763845406757396407884422362844397958649455181548489272115673825638961394295858375922817323941651080360181051901006535943560971817207918525463227715278308184878562945388872958796236104644505055286111505918706428161991725145896832249192952257555270874808136711840258344008625368177451422940741445878463175737991241368810283882745667949502525665778540478374768836888999841892620139585027243820607726573353181839556750175332188887482604308470839922113472480100744913040960477607320024583521651317680161252782540986707423803104218551871038736905791776844956248517009996347432014935028147354743585175324255809314315503604767757407786292941741107844315278345496901416894669923447770880822134667159142913768697893576116879126171396078692995695023902345581604850619507486015704984624119806113205702027748655097083157459643283099765476418789929957710667299406465388425809003112476439956132864797340787361697510755912666413927952984610166076004966811156400993010059502526816434118751220480029293197747697135024732744817823688675282261080359687439837988321161054647325881002635908881331357099307765239850759920688485487429718903286272269768936969691718778323643860923005326840137559421365050825795253295838984309705872940052427637059075507796105007458278673407078692952807134043580260160249915526234111427877723141965679522961888385255362578223628337010474249989821835719126498367549707760165407123347027342852525253940715480617336447752925565821765387024191428214256952528529384861114410844794287003502108335037124366433519195137277441485647861878379232353896387329679602590396524148192154879383598511576173842285791995984663744443240190674803879789095736969509785888711087529189827744471586673402190474094596128502636444722767563931860201512036480656996933455292957494688226183431506827661498227431174835889474212366076562273843763589468750761238178719395676106627479723558008719590236546595177932928658368396574401119734133586599545149686965119663170594198599491247199788417530421074814795309031413378628479660746803493446695339543299777657124131051417656512273760432019618741268010157754807061405551202558269460846873545106822340408553431826472824170186664012800746983071854028481456363110727706662217041364810743357905745472778020179067851122061519898842281632473022403208736364595590940637337663432364041962593079278559214460951075547956079765061585124268097624191678735191874915907815002968912095981954904908424145973260708833115273129957821571507768022386982439993917616224784725044731463120838823602580729923003783661936297001301044139926468723663781121007791391250375891108702825152456199359814579148762285893308853809266719526982871806427058138721798290828082116931378212848825224518065322213253014574119722399371320163431014083996710449557162583641400904941690549174064427273815243446813543090550118840331520782467727577543832437045285347976068088186894212214700837191163496185917058355629233282965917792187948577755066905219414547504811596331828710366589597091428333346969449408442108847710377673815638477469254394737361908273700211296166093340617303397288425125883050520780369953845205264256157440481537934200257465212947480405050891949492709494973064231500115564897448961510251541540783626942283830710133205640089303963075054030086266231875976434248747258373464053425981612622967758424670776296323960644330042295411831267433386388898605142028734723183369945393407891858216470500230788907033918603316250890376351839545011357214478938463122084418362564349661451038172251688537871403135133599098297608578974142388141022116371828678527444194630750165051077956315384923968765952093008347130743958313520271883787593367655796170054704146829130313056061329678191944443212592308784642121140019234669840034747236152893787696672947624313130806044500629634300676351015818295856270082783864348731246854583402004854504066717063943642635853599971806681401518053621075046119880726725464294735852111232456448854922409586011071185841294977272307433219306598932263314225648920663967644636168886823745801569668938677205516451062357535282174737529470008142768651581601957305805551195437953222344767108117197182122762812541251927454855536344490017376608850409585347227994213352797673827040719982461536406912378703476374046071882530880586241654565795767406169052294682796291090559068199171420187017866963395858632330980455123674876363978738186295202743158462818324005655546087104494097607565798029934612479723693058709527174546654501988469225306824289460982786061454669972065195348225590633398030595551725381630754839632501778518453677606858409721092420208491368280137967671546380702264715159257790141015913960356019291416314365440626457817990244749599982865130998387813418033602056728946397745956321585372522065783382531917082647373627108759367078235547640022415655658236630859261082655656326406866432658500708882829763064586929755037972845581174379577193150105244277413622121174400643886154400455638728400784020458776495255113374979575053787343855935506278942477008174521072926652801451028201195897080061508176875559814511363753906763451817291968494073060808537613339813814947736780745667461727702607250185778388805798527618361272552001850476507436501565561830908545439427666476434616247120129442541262194564090637504341141718051654637875341754836626843890036464725010132080804135011087954125918401400642579570302046904537634310659127487946706277954606751415310284928751686573095204528865942271372479048407611799140040338373153060302709423733184074868165147512357317200529409715001971741243306132618523114794172022235537866883683021210730888376159200890729520479802078549443383406439976897746788181379468311843848774642166186488967483672514148928042724014480807634157523598066040786582954391779700258030925831385798448757495247284171813141775648446758451441373063808892984788342258233419533720526585596516816927823358256657082251057059582249475057259486349449078955549858834957849095205103859342669539292468110657646072958991014674843463861532071520871488452787128559808522771121602152674140981381577520062722744447121673868404245209193421472408946318011047846692825649207558881350740192069173172958217527256086639930724003871545712228713249255893007669150157956194637003140669355705328278135391096712637670740297712956199651293280303882851153571768844583454763088789528570420769892990696103065213738540255460076492089081974775765068127587473121011078845734986672539344983631925123175452951216145919611323652279266731590051844257239974058630160319226544712071737883512009606788510065188111942921309778776567204585430044984770357993250977708326030105069119355967626461814473712793583900335314895207061158143252639605578498164056507445676434846642305706291768561088296710237765436040062037303629246793637220732345130110067890174127561144402450208843341817160447811474048512122626874456399733811431480672791757289280594157518802120078395112934163949369798070337156795184169003112746846399461095350567322493585767968002803275860025389174402525912064006105496496363718283860784339016454496385880995411202823403799320256451494444500952876127199823811011873969233824273081628005892050311407373464972837042056643476004106264294585194816679961738970286313421138995505127032045631922037997596286513030612058624990231606362030683753007617215505482779567703561511688977422952906511373945539041055166996024921185480796834106250724065476530630148557029100025412898762063735728831067250694687959565526747061102668949437906639297014105087007258136569705726671287863235123319861468765036151923772735728827048103588001239852928700704351683235706672856750056095491914546826575612884479518975386460617807184472824671672487031892274286293636379877060767516702391507575646959763589891088182498973840680357573221210821854042689387904301208546793056156596589606469469455023460111716515694299434454599456447535675999179202134501496821257681574694313684019386574167473756587873601989193964640793195504012336228882405278385166110245170620750278348638316276288183949651720168992732870040107723834362523091196177958569265111774800653681372311012021666424975764598711367230871616811571420804120078487770803847344918955932189480396463778407474425843559932348313408425952373857132843749052720270554431898567847572669119924298174437967537394923574730291549189980446472070839601845228593228042983290231972518457320585444275281826595760050361516861133101030987767142541440648150813157558807023858547849470750283336928246850607948775214995903869128396683670041965370899932265787203078922221143877885862156915811144683358936994115141144404144779036516503658411955213752288512407233108052388502228445432679315557679101513613551663483890602767991317165069516613561473322014892416649286217533319363418612608768254127717068301566355409743239913473845097827068280799669369686063338333046987390829212643410701399507209118547555421170372579678797353859004152262019340145152469376181098233291864103354755426044853594629543593744226262661508092685961981182324018128666109744211184797116977106351009758243285155194650789061402524556432821070834251839727486280752789436115844696250498305833631761947068354770307865005590762171712455026504057795330753411672748621891421821513811287494654124272715450816724691703404295237417812293116758380361560762195096133750877314593541038153989444320911308624616190208746153686634879637704892167069572251441459407905567382566403823576365882397228583266997962523268857656079601735664053465026994488437208897190648210515494935712283093156391610741543341526646250068616256120937236924412134726104048563373946469037451322252013210273442119731265429217356575855286031045751083203204524183624825111658035783658782335509721718102161350856164158785841607925291927247972473319894557212864021433479023227104057226597485101886308942537532631134847469107929155545078041831075069579385432330992393932389487890246948399434221867402115894554643254865826979506093394381033377452071361640691973484862315287611140054341566496107378358526883100097318963332711869263292712536160877537015858717687175550812227640152341984455848342383555790307423125852468602736772650962159233840849526104071654425052003926871151911210651442767263681842468442661264962201727498578786005366730905165052016721868753358564002271964384594776429621809495028521947883638193144683287533633365577171426616478060042645248962686129445185529089549771914235262518019550871833592680530076468327390024807617896167225410267549268957083123194956766461054880594821775024066174581848345047969747893812521747842282839076005802238439913454747663056538348257368298986761895868342976144078857064202722023393296057845189303213977570284430010399080956286206157592496121565502004710432078939672232183397644210062147268379486031427095722830211799883957461054411918475343237049211541143569924311859824331618924067466139121626927596173753354029390916672970207035182531799357383254567282361170085098481767875589293354997160683045034392588871462402527440152918659857330402061825136062501777682228335848198864733510078811669836294258984122796610106178570765976958904569213836543426047860432250265782703302266023796236610991347812331135597222977644473507368902853539646054847079902017436131122318387592725007596187208384716380666113547382668828769407944433012639382525627681647321154817859392513685421997579851256249790470458654539664747261013809766564988816267806201293239986197174972544968083407075261446736247714278207600106126736828658017133946331930170586235612246010040779489141763343029391276772264273087239872905316258835874849125323744857433920266494904172545694646377335284219896898033079110257173561550243235631381266354398716934542078784955553660265795494625414773382806583108024024281600896604154223771594285760475132835609169379800884991629981349344247419896554874429301866231163321467223631821883682171901884372755653932879600862014282124108941319832277101181961014252211077402800162355160835044716292374493943007100878435885618438420773833035713503874968482487695719968918974548573325777324959735268078243697616175305783124237615322273075833307246073331068205989724791388155161635237002887754640384694588108092310543964850664982605013770547029201503221368171378927095183069428242567905949204672793420163322070632855237468339069042370334165922314622956310837074703339913479701396161352509398431295418978419875589643141088000922227188664793128682500729838372394091395049803700053065684604083183621949336117549933718095358521356534753830420641286260115122884606367847637370343800600887819635538107353523149665845812978017942366576657040918878964718437400324805185261423374804226389745354894394740487679635858997037564057085365514941826400193264871466835216635224284908610356166009737832649778557080700334325265248710203121557274558151902559745358532596179063771220992122016778292719979137157215460789804192746238313808703315722392426106094537867329348969419201217867590984769579967742711105943649662079709135021763994495267742520069956715699373385097721682326953026021985341232264337846398952631769113733648968406732825337134997239599471387584927748910591642520932751857082563901628740744233556481808251193369339148620765296882781704267485879358876169382311344347450618414690952750913856042113583197932269871828931085877571275454483528743167014659348482561831378936658256257098672780162338276511369074284928290783951152808844762685081021540135116117070338278509543681247290662212192334673492619806660574172022503214501150052605684700155286842619471254945738305887039709799005744529070917549719643460658390027187499143169309419250567724956272950638861121089778684207975703266093170676264959678510431440863236727267689498783886089135812631784391742653716348522509793634084386547468544821300306910286066088220378538579425503173187508027956267325631040123896657638392954625020272172691572417422623505588685823943218942308492740717122671277300528800052851043163868209378006806338139929004877662272803377327116472142757119171893510375264286077742250963442924017856953670388470099959590738168431650037202225408104441357176785305379811178210436997481145343703691143931751179156687002586324474492917024146549820499289652337869806971459131438646102374698437679965337841784600951363273051121525471425906252511185100918467532678917396947238483048271040495291413979181267679780619695052729670189958041589183247033724647208337494589535528281786775271632236997734897602903189241922208065877384329223886263153013344107421636578070206992412903333186983220036424448562994674914110778922185199037150083147801740369414311299869970007583909669951607144425218698033226645437471394278337429591844736741854216137768754416743057587598650882327667411899721069534443939290203887716643837029386558983777415462051382510402988697780135439347681831748663388622161729577762318351297548347343649572988088291586399007319633251811297140168879358508892502296512103527165533831786124237276869408078111052949443798913638431094207118879137649613754477409337542270007270397850450370943212044950391841546869074723547161617443736681020302257588918206719410474325964354127172748402888508967636066982070752309055175236937447531606785651022760381880861552920197219623697721917893645383091836970069428055119201580580768067645435251758216393016826000068816402868120078368986563716223122838983925350997425757296811395789228981288583701736062740148182653664426181684466833817636951649269785995891395208978160318795479357519318412537746247218791187478033287773006858552040904552270037798360030315996620809524637802118674375662681925577370236112587289024891418461739476076895962125791408358149645681307607089798573638407574398001413861580575650763061092920694770299845130202909257672126930482315989150753649960214535802130440331286341535189683154988650440322215861292931475434596336733216114837691548761991941488895484963022479813648611575064697770894348855701097724618873825508345560679999226872882566957340289909749063733638350400356258830023137048407636548263573369373072428014326882038508300908168172060852742162319103184734789839374530837770759824382267005643316768356787761552811816772100467920124509400991076580235838462813263380915134784563547314780712333115424333951118590353537385272380425098929038577479651775363770365021392247309847819295686985437479788874157098261558823900702069201276973628327728528882501144748721866414238475100996021027036097732204922910111846757287706322082285431299576962393554620333261558227883073718400311994136869263471581100470127981391241178612033310335392064823492689138501661094625854656637867863478120360105676900579674698133253676229832033469785738968126865210077545151550650751815941545040344035900012138185204078839434327813546690578891149154174455457768171437278123330148079055356505623362149294405137834523301540279404012281129876062771408768230871671584368605320105214110775089419916998294141226485242603792266800857977731053282170373871217274096756329655289306279011932973518368561077141485692605075365544844880148901149026668618986117964710760957708983692801081527184191607423115630020786563091580829355573821013752303217576167912197230181595188084389705529553188485071461921383884054526088280051961855534681168963059609097573256918792901422853484926325669017017626921429962603219877195806581604018633720070685547082950223823268275860438387504529230929738882221460148480455817963608362852626984041534755449463992903837455531384270070584727579079921435321620234576579625045092223622988485259446623586010244787904064792694888878229664669595690778809620599461922681207833414929430336992455434838641192170465454349094745049045368799071337106829895956828688968657794658779116632623999230342571896313351180884217761580008900367056980927178294608093683899030144728915984220576874540202063854981785024988151629218568037770592482412006335247675520547953131860281750814770462271707319301642202949453917103587399498593887506667317666269407595852879841961768600452019207312149367842199063309380773604521498779522578570770950380170661683043895173244080242229448211206823729671025343527276019560970417662325881410293712555007117898464124997142457556725630558834028511093603206791895330313637522167151337020305286154218807497161313216550719408069376937758451286527784008855770803551984611056378432812367151715856503618483476397664151513821317858334616699622562952140067684406971185803434458149631429830265202059816919445969717185301706708042930246769002861354851232701500488203244273084168048039629027879614352965344427534453116578472705499199514676511394087390267360032774408683423089434305144173808058864763208254843813807009210044613570220334729743887379819188917677335406024341863916800492589532113035379056209537706050858598577110447884978833407044913178113962598411921437718689943081295720934357640990997916845054616219641080590167761872311312118088732924256642527816070446165892716129586813047816563823545188895757782721175049537849217952297816329237134013663114838392087351652483624889702951881798185669786264710493026889964884268958526881356917547268235697492159832910131126693413551389708462276926409379939805205469374739394320195061082174737588514122506695670303094754669017804430500339847411712346437563214405787026703744494946403743499447826240863487333536353868924493603388555631273931285899487484601729487883749558164850636920668971276710098596053216153636588085745976036338116472966267708835792120653521584471904364838571735756997629396207951504171214532850889049578971529550482501353394326877468854175256858708851632773950455457720861928937059288736541985416184986843355891955608993785191607363366279956088729467980140768786319843786152264270239441857951812236581470008086395613677415538311710653587878546553674627139867216500020241347222800545016304443924884906713498207712155766630797329528647200779084953553436408255739955375658974129313495706435422745244586037094890726107902480850069688566283253883880676507335887009988340910413501468233004740249357473781608163179945250508297225072277011968554188057730292671573377347372791368791105208936413596684189055408634451507641449269210445858881529393011248830682952300755778135742080572410467341814763954025295387342690652947560659616380515750537980136573130041086488392145422940192988956065138583576602553441260096522101183665884657529941064677582161351765368216177300333156070631046375151704344497153281607366749117854486491561037007356139192997492670778618940466948234852077302013534537295256970958187891324980174830244837760079607552766042798193624212530532953434922837976972967002670621965507500461376533625914164293429632112954007221773964633222264444703725596399790418170802059209216447451404420522880198879990867518477792133402043700798890652312440034998502737054220794478229991429512309389878589984159262342650672894059590851580860205182995194291205689313427650327773896910254246728279319039825737280573102830326704605315616971187327402524729001680063364741875987989474836772956670343307715804081535446432015714814373844809639191658540387806293705512455650938395078338664599607041480123439876166674874976282561299554925856834455674018722749227364286259018544077716743455543756073911749983298211756440581608518790414586440366955656181878154265313439188979283779136050569161215682247681047340271447773833976101860609079352946230082716896101371650629558862367951289322288754994417831836766315391955597892617602737659313634115148049047558399437544144070370032905802483842152765508263641159530696011588769545094476576721291273706581293048700659781452491924460049938779902292487839496124591183095131394696580060453027983905472448646364520589676344436061376544479017529998967496483207382540251686394324902208579289911349006184620176368623275832718823655596511777565261826115097508798736166244721960214219989334172053843807017318957179723059001271623804331925476060303186566920477537673112801458166893416675927831785821143818425110878529480736831033513492367957809189183009308831620316024018127877208679956356908363080580760076748707941445482403722408269001446868633266824587877843961519586522696743907571400168547294775825920144515648263411270649009252104762543475184745838427598144653579739099035800370391919208649694706158939959761687234238165983254618005232985361247989249851627771681091511499668769925140267572042910958335009267796720772328265619913708313153630212691277435783448314093578394945461145479161317941184400144545330594191391093036919788935467075049324436863356522554380332315132786669589637644834656569677286554866098924413843027793990472443498045649095732068186913258199650985312501356663163693348055380775573224678507556556068768456968710336228525597066287531238399314350465345272855019389665402312799185580724004853133083808210305540407666716764610275169084033209571878476434408895221645247163551141504477161384642097966025146786356196559916443558457329939273440431895257510491620295019415861906954808760288623105308622404913708224840622214404942296542390514990098005257841489835009078236232527609307992599872930379051518402326224833996218343816004639653220083799490966888508376499496162711471669758065830222895081426926173318593178707598395854660572165338137260523510600366374085758183498127243648463967646429333018097545770170177901033461669047729364262976147380515282532264712169717940157657451506074101141380943589372339292967065503413762661394391938719595190902060844218495024918531034596430115055261131813754082129730551974785204686295278630734847660333774517586896162479228577758480777654604823679264529951682400511922383698946553057911216057750989327095023886119358603336436588415319439059265333004480263126106007111569147297614646312769415096097409487841801394884757184971296789613232582610266807110968422775377270850902936954661676027839387142584931153616552319167259397144816313768583306612429357256298411556997593029758857526175035372718076606303556569731271088924363812717628178920188230224991599121587819679859517938519487500645402798710334032739266549137267611121691836813889855890215393182564485923385599282491920168226939042584967940214595674416841190771064087381051493253742258420066299607487150998110762184261990696529130902764542316846503410223785435071826071496063910205321963901456545211337538469170482455100488442150027090263849704001585307096521918659968761150833726136528241884058610150227766127236821292971897845009628445458954169160148598305325828431294260498434507130416776543287232755441725026463062880284682142153778156292172899301085955343873530707351549385566622356013595890261548710177470965978237148353301032244977319341347336888136469986222720783180643604167683744658421126615988258700774720531121953544017141158720864750105770709361385597798041583706626878692515233876307033689523017002304551565064162647937071795267742122397868318503077114496696066110793499146753411550861866877078919118859022365659861758288945116298832661058752832673276251579244555398566708848764113009294156641622526627266361700533763066167773591045321071194327536932412929102734456571353789372167948401289349251037869993008719101911894440228145287715198724905349984249745418034878164204486670711472385951742814541085598449878081132609402822293770602543613136618231769298422700316146310723848189386508471333242592112840485145447973739247284603750414920906913519167776614726049929995400809007066147088352932368428745478480466836229251762879385440546431040619422398526337033425982958679755799362293619574088569865967792084085093094008402753224623706774289323402918847640980903044212753997847918329054715351969807198809522647755834353999749419906851188956742480202326881703336292165934666194530667573414863848244475144297252174386179712973335563188397465936544419381518944089181008161871823154721297378198454704692784785307231840332892721770177238518023378489500135227412757442865207476548240633536255271410532032954379573441563145260777881684764350798841076866877345591133162601726016013464622455809324201855309538919827622277369653778369666332155261512849556541244040167479460241370308851981027673687991265601690642867098020528605145840236159459716116072391406938885080013133640882366166932794401536897577011236729632561130846129124041094159991907166633258908605844381387261083478914568454760272338258009302518134659538237180608258283305449711031877760577857476527927189412086199392087662989514878122818856198724336567673750254917326362688071105676565439339778859758656148088931736850196058155036557270275100295117723020675234880509018203431545820168388019226278285439647030497514474812636740341584700897072216190524517000063785957647338344776521382805736919087436011292581328163996733037764907226451589141088987420344357372363892039010662022904151824589476691152917443867686447629865205641069699298654543162113511269316904131691227294780462940685878204517119685062520882770476653159210528049808773982482521921640016194874500568308871578685723286717691800139129278025478747647021501802949081448921081514949212538956478966386994469015301795965414906990532120410452561786347681023117971361350877158447859138409836309750087379932266513617948121292288672375864627212978736442796727255588427073768078332939488154936848537740527861764125984857312131680531541068613972115607579086760708426223698210963319970571629939091212591381839681918044137305891484311061683001145697188718473130368080658173825104617168577488762789962612572482831068326211205450970675911714870446812365720009577715894079506805558161542451450781739559200125424097358974765219729397425456738446494797763888029798596840072473928573872185739488854988654910987871083029988179856941011723356802398924392339152680675530259293317029646008823473326715846690204344301074579814898845539703129751235174719829790901653982427569139434273795406589369272396102188461267767310056280581986066623270041478332424903552546965087758025948722931063168623133530722459254416368043516463338339748438982905005926546811044414239995437192168301322333348639876980601375975441404893548794891378110977508498955635729791658916926002625403485443073202360488709010987891036196219226843969831849972468858636951317683569321672698842424633540320692392167346034648900074923168573855685084204127330139201153162795725368284384752462359346519570209959719330650797443704668277511923705922639609453949875788235820054169540007691493434427847062827313001961063100400381031853221740956355192186485216585026572841613764785852014226907547976273828636254850666855586775801124695669152764053370538823341209718122310434960504666687991364819422749892801529062332483620244380515231687805212101714107677802076902773476647149578664861930938954005606720471655546628304829595364260405741022584124745657423240310859076465159342668273645020481831169572642068790145045568453740241735917427661398435868298712170317058312275454400847962250715183500091822531250647169140658443249088760488004164240146152853981557605409296773003140590709768682823649948898243583153546976318927041386049329819959794883830702826208383131914882439051494186071593460237569596062117964924395599697679537338221779929498193496292098558829423603076467414679221519291849127172556649873167363571190107487999388095290570672271758082457718751816836330361879037111172953486234188025424170780777710998500482232115851005339425291076777131988107035221127326541347798276415911832645195800058500961274655005744254666743290116454788986259838009545291903771505878511260593885609135275849750259032676899810684604347497795429108665916994323321488829802883897661774248366882717283964853128836650958566695440371385560544231042578672123990782612786452701465335421280090005397964949077761137831526683479151224162368642773573251747194973426868761850485996494206530703547635898949025198158093987018528960496392257141714736101230167582965995599281572745856048497499968317685250229324010515751647457381027053629432281034220969543559910939186016602428886336296186448468114560299872787337086925470187853821038896837089891371567453871268291079568521384631920952926340133821361230975275048682610640735464212240095410150406232060942119452256846618844000452943810000893633588947123991812809663857444446029338077650123156368069360473841689565884970188342577968536975970194208682273360784944572484897725932814193269033808703728245584933802383600393123882725360813727100768818984315619796321739135860972249034988880983230970591661687644880920557317165221614370345762948050023087931454177641619307578380972285132203188675851487692114662107103804987265868520929115222794921095504624528210871502917535462164099623441422098295618044762725015568828379397297739697806043742773872984593475294788951960520595088940484832760348646118078961194928218231853305614236626690781278487621825662719704633293754615292245453144255805305521041933889710598855035167516374744084833809170322208832553885301504965827876479683679022184405905270276867280193206253187775655091595028431727948494188475909838513364497658186059196616033581071833149410258242089086214477173423484550577999856503300800617229938495952980900053644799801790698701008912487734512087270841155812547021479760424163069786714964977252263186904393034139830355094387347896828797936617160301314940779179071676648888856844552634532511760442514587113855489298179910826682870416179656063726747850946504621390108022594380246935101406823286113406344004770925196578314406576221806816228377220739188737478698613091547110803107170853132880178930677859388499493084071388529165686939950217339192628423270972221218949839991836190816497497219352500251203148489606920837576607489363703321305183421485417356556723594333216541615381011528368372102566125831272410147871346946391725829492949484859553849529998554648894316031874527741633169292837452929245963896469726645201996535711387553185284880648135194079130181739870949583215466223647135508921296072928088547701184630940361735728141789534569173067552257236977084175458291507350246545027689021541721362531271698402720535403267602433362416581156921240478061563185349632741406837158302644015548927428108158256015619270438742364386183305104223752569622832990983645436878350073059920366655981374299080367451694078338767768849721626262574579852372344029672906058218423439211725758846561101858039165850852635380990559343889543054875109201971173782607879205614754334876535585536690456874632724321641565594241776684170602484673869174681794638391006532857794900036300903865365280576637405153562632198128923143446105015636978465600874856450590702102685742436038704890319935744864592180744614720577202578140061624319359657690509721001312358090855807232981039688292605543374629244706392113109458505836160227874331871886876979996286481265467816560769874596502904617040424336062504615414073971323380036628362420097186486306051405326028092080026890723062857388061736677895272367402737736684762663723508795520776914987105911956215036989763339222411650071276622740443665915328508063119390831307876512385518781532447487888030921708245027588973478573011334702431591056708452176220243609701722315958794820875966787086546720027496200796102206891558475331636202489070682496378155351283670094147914307462222551101482416775907305694500291467262097374706385393634977407673883085116516687069857186333319576272370193432934043859928294354667003440637235115339370476344614516862457424553214004845103507394568650224372308384334179558179572621368394566396783883785174821296605555831437325386739481305672214496674059106594765670831851119131800955143729230733735856278115663511082060753456176216653805510537727871541004554302442953596128106460710415335031542511698317022881357939777515918251116415044032321818661614810370662723540808195927326154162204182474658182553904811575360213656158763797319456930401259654507844027836201026712630515118973753475952939930634786839262732715003836197165180718823593542947559426976202893142058027524912552855922356982026076060042662113179507292542999249918509042003170434085456321586573099788369080997677604333275400524921343247798851347762828774395553683900745461075268159929924185300864571720020959341826920576195445888233176073938735674138122674093068931447981494072861126773972194809402299289741888002008005993223858821817956747172775871901797785119564625683624297728126988559140354352549253044415620295711261336974328967767308475437569170358826804800158255686690967744256614685360825895565669685502260207591715005782086369895459888547620880042475297558602988309319783091119817262384118816029868401392742557985012905519752050890110718575197383041501355440112357870406959916095398789403255563953147915661730002459582720183230266427642247787157780493052127935875774455735508868309424823914154579654348793506407426154372535820976376480590588453774580783305581557257462642833522634432191852367924464686982359741152739819407534905187872946840083219515831360622233238559665622682112548374092257150647936764464446286812260141998125604686654286313723786250293600111012321153467481947652772277240434763070064038120062645718809155390892996929511694179494626341937599822150996138830206372312071549639494592325965761632479273963248046252787777113502213794934190720412666947631052925502714907863084221919440804840400816282405833782117862864132147313634987485809587538216761938628055575174691554308909836568780594030680387080019035065429093853986915937521320847725940980822450169923662038808954329663633749466486303315758311248992308050015012759988601520979938207059533945724519994140693034118847632194720296473629942874816509332443401361145745270805857773139867150074798151546248108420397220206120714615783567219640549058734068438479250263531334028920133720992316925164505368338562307830226282768329365044964611293150480861908845898724115492564369815879542692341053138333506792675477844700997346221626200406678931190129532931189261597711038447200365812759997495086116143253897455045119293116475858078222828887363560441458749996978562834563465019897793685032658800422172399011882635552922703719291828418557695177113088113063251919537557026012050979893758632616916628031521253227436476857202387835763453112426040330450538762968574956600275710316277753536109646117662370235343484115396021709981331317502204459274515956356574388646501557892440998513533704381456276355311849604157155579105836738177298795797782948307116801070320143119788738444879016198569461859153243778172245151899686796368096385489462814958045627837508678267744575414037291518677695404879080049789339292590105532137240921770862774026380721685985694062034013572806611013547151445457370958146134880342011956471320125218717482477964400190836105881044546155530205848680372608778832978940165834432264971684692212600754214746795734358239089696558240049066699729957784149549919253654779480684633663225547054830439955921969318899512765815108643092133922664984641305576282366927553554101613291210065242921515778802671818252725570534152518044664407007706771922975565776297173704240511487906002695693656057349808327772097599483436470954926344226953561075604861877993873638851337084667466019164273229403078481166829282359921497610679965576339649792218469072239260389158550343522244726576037999960359952821447279855287468269455439898763434420739331850921855009928419291146905201279830846861319915543920564477297841035990293297943366420929047811994751238304140063428651133000166732697315477337882094444638468998631182457991716044161868807734196767831790930991585900322366561315297639704449542503955040519825364058469482877614036344385320447676297124596293081148355183480249396260676082038078911795558766212790153752479480883606372713602114666710050748915468099346476957797417773438965322820028734627402519435060433877780716483940083522408845347638513367518229582448903863785070862046725061392336861956781329206092466773299131785142149113501763856029733309703649294180718922968628023109700904596588299818914318274039811435509403814154048640823930844914769930103783044138875910193657286542793866835525055798448173869140151703248158876426428873389717688227536310364649041286652722711037424254775522056699744355377400528624835574300559141125312436908056767425347392654478962699761411506009176355790999396451895991761014357102659768142117358977548986487606125448923404021211100630348836957297028988029224422128480870289505199953024141925764674718513305160914128971354088718072992288585740236363658371244809596386127879099503512648000601220984692240368226021285811677876048472155074198105105449022804835713946344758451736375497628890288429492484424932649865459020642485180596499818865368283409526461639285240379912700085352040728984751838897742255791732360450298226200365918814452249207506711494861406309868999208356404438472353775681645623118085561780240657254335751470760231534686371754246381591270452067872024042979749811442127583801424487281907835945639608685283092891223465221688672059641240943825124494964085095584911601037150781328283633832348359391254005476590328320790264783310955005261014152097074727265666720299344788515039835879994991314903130224481123918241107179957012281308022765966341338481174341233678770659593730507690473061046412932903846768501268966977176862778730369973294619661185376278263453520093952747935463359087414185844633850073514670526616821013732760855648089211177499274640599138839931282903626780022720520619577574017452344712107392095864278297713249523941033530633427332400415136059717550674289536041399599061028233617556837375887463355099156465117415460121688206538548709908694030765819170186505805794608384387876928810931802489469347097163015543483821915060367627445760060777177058680926706383739648545999144406297833597468946160547783543861463959911119291919993030051672693843969250544054820931592924745100872629101136867879311598068984715489496495916270479934145604536850717909269758427591014086328773951365527195414939652173400903710207282446710836204447393626926461788327512593855729498787898715508870644049618198048459528408667056062851199229532129521478714464998647378516461851877316823667068829311536697772121261177945052484638855310337255702170040775726361714607172111801138420306534325061024877488410147746906274418728827810588043766023201195144801221576071511908687091767862466543281906208439115651377775879080720004712393358651371133379726600616564362894871487951146800670064751484272966123334248347219717583342952191291339106571691372454902751132232085788184670411061936935613505549921427995426922498700808230540765284650837027202679699733308138305794327031846736359489854754144841501948302859907181596672670003360844703017077505085827990218327923089043921660411505746339077436287826127283756106115561540003555074361301516417765969949643938926951545495877190587591167672049656130558759499604686998546430379103761304052697205493579461726949702499134895588472382555093522037096076588091945412158506106549463867165875004127054421419850831862392113508764364362730023301163054400024666994566932074492732228346599360628691967005455251509904791930370572293993356522049840591381698804104691266639952338600663660622083054660387679821291729626858127560722308790703501093229573838648925354102525123624518816843319919776282823301287129491881201818810346671742401077488897811568161577310073348135846569260697929804759175520296205739512140741827876182798863517015412824467832278811431955086801978121121270035368706108736940537784028723169435777082427047771563199497249664387277499661074994621186217366635249841800850251219345536242966686716796546205651819829779561636439247220442680057441026924729332008088579521224671167836035794044145822508765554953178998559978743630912352241868276492647688745464147458664783097696876329728341395766174357186620691078811970081203467871762073426038196537658381841150986144052115046602954229386084796124584091042276171424349573486524824558334022238777081692431011276810542235021734899458605958307276748731490994560268432979428243625013038532004393323252570464791872695431140120927051123853600449398802932898250759167089898573804782604208391767163291821177314748386761295166567263984871598318182485089637209792528829455826690945817309474634866087743737625287885887013372099351019798156695541946175237146144469364493151962901368165456126653214206581248277808475236750374681904783485535413100634134926409348602385249326091233153470452357345469783231113130159462049098429695899733241290729275186198306098869772677392684353699877617152819988171702322484491077245086424523776255320237303993782207728116790111013373440242948062109681433849011175295190801431327980504504533809869978134374422709010648127098349507547807010557399912895750568733647782913118153503157575357556208145517086922901456674421272471445785700470565848265152279429399010066810005184605010999001491318653251545669713612949653077993385340750475618782276597315065299217663390203792091597160389411932384004937542102276858059507058319813661378427825317466005045078464349008752057863374650925680080379402751748946153266065966874314746707437790390710118786128918237514812513581309978014896350963365480696226881431251513133725568705932107418874422738150795680079143645927554417575195913351663879785238557115300091724476788596121401013606137030977699461704157302703658496472692380191579089186238457826836062568467420002033384994700038028317524314906352915750093634870250231000887966353562056926783559887422477007107924495015875587206900931733759927055223700655744321123731780176358087370373955477780915609306787368093682479934244033113671592996838263397561061756633228716930383030351269924594502440591600064560958535585584778275342814371930702255162656572136306835764241684799835381130294448617351071933925810828303369682061798213463015093104054980458791515187913534577121852666584717413664689125440958556878775241057077387919290578655693316155838064627232451757119184295602451979098162920858901956083673823078075469906290021374603373626812139620368060747062726522385431006483336029321789439124043894857512964009242684620257633422965318405955256043189276965126761969955507971853451636252517225533697743941494971881303851690589137017443461416187961016582043751714813745922052213989193607207195084472048456479278273832188974249313323657903457672336456893949139473404062444830211798139980596891183826921853964633933563303189231682665487466871074777034338290288784364670337754239293830310563923375475760608105148984284132313214639225952759883144590713144005020564806514599026829563613844229466392282514395109373300180101510217504236382112430341475533337159261237254542173683413603739321636745077544899970023166750123661330380531481393840421169429442128498416928395890424086246689074589115595614655442483649282682807334261499558139219326406416289494439351354775718693676657651967024029737423758453849253117846839159726700606504082808735516854520261687512672415326315798866118102140096435027706986115971100779640838103886221792431748348551704705413147313717739805238323147288619144278668865954255374132966606693234843995919589020746001269810328639493140129247652783611506521629931057247083561584831752067429305189499708079479283040688741412919934422465061273934233365230091344741480516457654224569818806927030677278071317675751224585455863367709573235493630708295064273101335453732595718083833559084343315766721175690530634156037351817838192423870990657953374407742104598490081131494995954584938535733820225215326555138206363543298641697423585015198476398553658076984791431892869051043475887226682876629560483046992620679051120700942446489444541511614280219876197775526491676019270503184024326500610126520760879160094639826349126890909407992495974412903158239716600239471957592140587769084707114788766914923018566199295785920828839926450204279680754299136853877160248551721885060851530409231953103300216582368613957092990211359963493129127005886133481195473950588771896082039306777117753146184581424077052784268669498863642822379264285042988641541956998333264019747870548510820208943873042997901856971163412163730869467038835174578015582121316548685964842051185761918265696513229335117121269868102591224150886661605831120957251276514782535887454877705870667882326904177091104753262540927074588366855739076915501197134267155385907154810153589262442941697550521368124184312620394958178111488110184857031537439037402394117915976192231384764902072052165477080008843883626739148314541958903772627587646599855108835583362835985624402828748973212972158999859705160829550224174079207241837291796534563666623477336006093879426411255900415040178742149722167502352680294652296407107349142453610802956956243675132636189865185269712907316968941281238962102642152937900923835212615452562384488747337885966241002966180554261374863685339302599567475100146144081945282390307459430694574927160983396312315606108404650112059034569487612928896565824136649391312079693121291112399469037128659699562461819567713438426840254573931253817225615840457154277084843613798498998971038084575278436323919609800806307514360268616808173711901936376764407302992686357743454024623966409504758959521811332237474132961874160284371681892981175284352257754666295774438442731330492354337581754703918560439428715692008123305292076947025195022497466335468832722646983823056210266749515492859693929465959796193365005674551497636638491060631080902226381697673430271460969134017545045601721470837212459978611001905562347316704150199317734975042025875331194058585366982084177820719904125186552489775848548963634270270816074592510128602268267926647337536895141587272991964748754351934674488170520351801226786788003368573814771413468041424196155166626239971677272209545248711512757189933067990331856727013920439867697447204293790723907785782435153199081057137616154322655062272238147246213927385401437139314459501417613663459169436185163238832454007314859193985132408783742115554897197984405013366755835995710467559071445042304649455622647556053569588710833916446515754544969618916706101325490435456596857661997447566670710413836411835025906626735228464652073189909858496954244313734264040738916873856825222231022332026387002859314156854159213313725901410880895595940068891149126039402587822187472365347408703879694287869934072705683537974056761372877572836397761213011272864667171448579734498097112619318175253766281475470747583636098986337723604921037359866328389024628443859721999436192968547579771993938284121472736142427825523815992778120880438434989260666087713017031082263709761533557390677695370276569686871946478174979038845265572543619834307832678399942997489922748748515678394773661617714094886977872291786974269738171311888213077566421373773536284761614420929534082400886985430398095721749859581410175618087545160892219491078810747173032008905523661614613141275145883002475346528674443744952852081703994498440498138873424511250026460413111016753206397553295929623514575072585610875866843489199912186786793465415617390471593489820957059303421025945304210210888564381904978091120580846048187749956996015186959326510981496200844895632577542649709845266769691000147112982656041410633258768052441111268113293173613158396953401406779684503328502311889332896236238850040053930864145546092721345530984407059230824297144497196043789397014642907438977967588430620125633854576998018163974793514591963705484457158482792088653192563377400450817994021732959795156130392135725931917215460666554246095461187760231351685316941410520512837759158609624216859140140103864759828192220883414540572036766066069301459449916436652170982498570858591289732459595831861140474164900544136558986615931025310676877562909237342910398349014241754012513399753546879691871662647697167896431655145786391114353079236118420653596304275934889748353411590834080890806295557567687254637433855097166572452044401737065626903345242959134219900470388211918510287303003438405263914349618159260062171607469675218130446311445842329613510446735455622833030302650893607070810084128483302127687533571795178371059912472885022290223043008390717401918773291608833831649743903855545523879230175635440293438949161617151905405514857613278169387653444696455726311379396628593075379252301419805316205369407010020742785731716116042343656927426304838498878702351796465387336622070503100895455880891149286607730175280661262784883474604827085375674740056371713734043795091072897859101689324068439631033510430531308967309383534474358204094145381222124525762902866415224289746836405094982905430546065374889995405030333508947079605600980733487012877595311802013309617640696947016835241663381825057213531890508772346420223403687433056852588383778695330303078735486310788762500447956252599707423810991799342253473865053444322463631913790832916110706815258748775957186600988447261707258499565026947072308291424493685915505747723742130156719393235896353601424255381644638194447824358736587751301143612012205178320468475232659720421128686415184774485142104610244110506719907208554486968484178438906758149593913523925208537384945291028296137518432351580532390793000122041747647761115168720876580968286753359638484756861834603472247207988504894856103374607890105585682550589480110266362534214650807944138256701266399827443938498192239564421207053855582634589830510881724689849172615051713082061427009458195181581221654006486982519300553462707880534267941923841848271556534913221184135892309226935874529111389452146904617696083952587541858921896828163323763079764086772026081744121736750349230938939100532680009389677630363862992510961510888289923007702829935510327139562375380558482891939985866582077068429116126626170399228897410969074879607228041649673680416610149639351094057698628470209534861850091748944475490147329221300401613776955447825608217155203294499488213680852714812850736866272478615827142613037689055520618750801556509716668467273248802499569542391232935184457097144811405275124241174484350330831797149716098416683236665740184545086880110556327518180602556829073783741493773428925497195315263099547166418235974405544526746411700366261558924969596727325217931774635809512220149806130220936229910053367102519611158360841205301905586666434404757000166462740804404375700923891043287398755191423893418479679828809204928435126874623329107271958439337075273105521986929738435653070882696446761221238467899583358659400301576527215431411702265230848307607715133730117108327733987695747442944377877370540747002876395377686055725034091492634626158156703490000604722143881208693998171045310776793719835836396310112123254018082454364214533733456083084831971423749965808946664862753873242044560287384813027202579361282198076067458196665857885347286800411774652595603797782214464871606954531934982749164452665667665926157486208578960962219613681512227051455087762888420350673307551245440651760357147138081872581272731450268820953383879292127593779980383030180158670195520406589158576648679446326653742584853067682299179491910043967300020236131737413865293154586410861124020508954343673428620846675693463517420146506199669769457959457567064154433722859858013850994970634738924531872861851712915008038312201580718632554744301110591184671120198508098809103963739592542564042862981527549708115652782772365876030553167204500297752967602750605122323379148658541633775142950537208257610895188354175424899963275604838250983654121238882232739152907016232751745683311179408174375744764084190967271317243886306100174776566058771004464399711186898649637105909595471672421704062622334014384689154447615442358548944203898908804307999188610311778897878691097222219489637213506485266639137138758636998649695937541607497407917023543461610180748436004433824311831278735389901731808996041379474865534916227258301504618981223194067441292883368994294893466489751386419137001856596269033740781495966340417710510652012220872768083580490335822173913194331669144210087075393619510879091599610175782466204844136010027616934538621164335961168591728700662158234109537414659849209294356582416345360021140969252025175311010296452632444947405312374874958934055856518320657023063566630508636290621550754362081543201065365503557512334084183173397002171354812586380136882286935260780195316515444495001362185701040664236590446169372655535982935614969187094831798395034996385552603813127042515272438307062187908559810085839040382049064977358582615115318103822375667385284171189672794614742458493769781770349456248233116103661212716186341537948743504147789223516826096714799293707119054667186396096945788885115797453157049842578598070936020086378969139306758794806800507119982198368625075265330674093040015866874014430554152512654754164157285940531883543486130322397379008742629856355414257390567277464557284768863171729271364383532607568757901441962853200720991149702494009009775317270725752225608585192173993306446734625307445737409030975433213349081132437670911182934734876935725769979075190211306866208347756760408914055929696456351511765603223260552032461207613748757875807998312981849545405095256337944498973644595709328751047158902213533475925252752193767950483423772390599330249814032813167843776189441083591861828603572680122361485537942074404637083055095164788919633275049262410085026127726107459867665677628788708329993069228105427425527931779438856936966490043491595615167811038532818112381625885647711845350383617355298510316413302002754636412730247848939446624626280064038085065702775963759572699480350420000122499563300031213687544097681843104138780230920486337374167404051173396415600557006398850243081228179686988378555788880768626203577728623601109557657850245428548434824609782340940141314077218505825160631156511236596502036860619748648911219767870642930618522395958156138879808654581615417653477033005766956332058097503809736943316863846878969595765196942496472107664815878555523623575447848104314278801715451859403893088789704617391922615340037319655723567973904698132552765705767944675254868504929453742405846285156132695248094085786623183536499483680636146762188242149195726721617449454518656655002970334172527512916398803526706382785685597209238066242003522968095493513154664392275545318815866953973517722916437319680985676192819825156919348260880005042302726229660644814648202292391650687464953274462845577367969037650617487012741669246364518473985239200913045068154750323962840914503952446094866663465410123480878180476768494131172665197307788471393070886026671971359294653301614483989647070365581040741270955249244192992101853381522430784292919760350208305213270839757305858793009703242403505106724835986209984968759029475482996174806895649742552008906433997981995030138785017679177703730713134376648666674812788715465348882510185639965114459121717142997575491220501366449070441912582279076811528864868008199579130648400196889646408013503557689414663689698870688457177184363835339396436831123167910311090081249339930691987629366069996771867970166186548361326807022115459177138662762507058240635021750401092983365176859957442092933918411748418411946403757970949178775590092861947895200803703462939216825985410125394860907942062900503542659509025094544713828878524784676785078283312220122200929856568006882996852643890276226148527279856121356577196692411814855661185700978534508179831099618472392062240496601744931900085818238774943087723960392864859074453841440330489782378782717237275639868513479500833572488745401850878578380653092839592307567705486651510941588398999669529676898893767504149722187853391518611710128681857929885364847035581758299386633911635045427389378051461225166560927921226078611313929710710546530777578389244541195252846974929773075725429955800130489057660430807913337490588056762995427769790202788363724180357348749540690414919797172719597974657298238864848740865865931155001528294038763457462238007738669489407303422884296650540137236844475690109018181831768463445139912930409637078657590760030114360829857006801781597986477106063866544303123156080596781371213471359189323462609271341144841434178929173599468738702564539108487030307215417733722516030997934533775347191307023554942208257555450274362856216136919568137628300837758052641424921555683474125975246266626601202956819669581056483714593827181302222711493671806761000154039774154968115326526233238166071222704724142193321600824930383106731354865122473441208228155095592118872968020804821636805822528833441637415591368861207598157825631537028566086593468702311367158165242731191324962045297839037440794141864641116544213417856648114395860850768043836263291260336594839568545608585224670210953163848626249626731004005790333063738743706900622559416571916227292869049587231634254871692280440980773001781031366774959480509164439068012241246906877800650452445992144929280945694840315329119570867985746091053974230712615623801988645170003295339640551808784990643051571700537018870018530891407790895128279249237742429027948290093272532061090289659266662467183016165586323793895807361491590972051887375372361896475553080222691874038816608211022632548946802003396031919520361650950583914599332769909659844043442141744036541890746841657381748608873019012630090450190288121469347839652899327602142690314582329224675616627226833478747041258960218550133646097708647127545667380302223368992630355407628641617455811775939292478930691148861767212341755393265825742503269441751177077942556991013515458274257943267091359594600331685773712300236680600880324264884785705135671300967327289559110365963552508458729336685288475700472330398064173506212167324361032357430837631423983817626587030993715318745388420158395782553288270427130026755678441614014301478393128206091645244548875268243964199249004388530569238268859366424505498437730734490242415691335526955141725162858850444494396984502454155541650847649585897510222488429180210242861351813196368468515032584654431023082953431521444327439525261409801942568504402598455705461898091352563630028484320182001590227655594382718908908294234372697507555653692427743947719927254090901064787373581519546171968527574511509416116432881191350371446741150655827793850546385154479398282948609138938159949944696965960572534402294542708490344867838711250705007498401001524054517454004808147095396689476840832865420389025464637495006063639404769178966676888547820947399702646757962255126946979363183568160120243131924027674200818071411531625101310846473694176609120389750315465178685321677428202642926457037740501640428248211246750413925279968002397976074375896559732354356831854151945657331837551461829131661222657165001599715572833873129645145641946182408837086422108752575457083336911447138045501774695327927662164016995773872440146771977588521309677838286736517144711880056392388659582133315470693360436656729062371613558947099965950021374360997099324166795785793317893259479880664203980064366356963308600027074637983765264818373843571637414094012331534124015172486330293375008485716836423075533671056894986925657740542654299024902305531758918293448464503568919181111706808066416947441831372293410184437499099420302906709757546671662790445703719475643997476684779914950445179627898015801100522958768532428800148736018694579349998340503608593610805178630839441190104241296593973194975789735184022496946804562245818764292139338936547457922560530573890602141686989982638300910741917728303027704250735639406668432696765327666868782728413424644067476153201032764369792489583506092823312106229961845526929285588268659698605987118530833493568077610031895140044392162540689570923232450664436708089874225245172943997694658133384702539260045186592106774449179601895116538427219372415439909123762096148073126991946636682530012562051814846677677637493834656895874274286996496119863524582955697950763139115632171648110609153206470180757809351679285176793775841189524391061694041508448332697190995585477126970078842875963682856040788435440757573505772883038068811134893420645533938520175015093960079980614618494738960317861389193607555934667435141825691886710968517285152709505633642985496516879220307503538151481459539417182218021878230845373096192288793719813381543718893073567166369988414066247374911319251328402627839245013796820654176123163297741095261033830063582132387153548059050896663871431439578807399340082212189504332636947767632930689227892242140794910518736277259153978117291523979369798543813554575115472478419648987308767747207605998135442052101009468570189098875005937271315942797227762076835407996004137065854051114860478140964696651211895507001605364375717406881291151548552767013638654344514032652413307003465163265085849994697074001859245379032107232220794123475711282224010200463672484314364111991290340237776768400619066239642753081188321051258164569016468555484054966628922438474882981136535132029521846781998940823921566063352871255582139137182595839226007734048669640322524871203554923678413897727082114573009527365807324763425877311062349334827507375294758855597653434478471062489229232155890275658069127396647321334570269428727941892799370923330175996964493301271086890625154095925655486039185159282412393902619808212364300082518983203842595937905955428197916547674622419002834998842565012940532255071964564746674532037420771168542351568247733865784627011891473120068002444391249432382738003970721384809757752628283864544244213143043312689242711373816091043326655115113902545332858919366344095598019865349183666636689917292008340384539081287386617648128070820552665837629402208749077076487688774648481971573607889446484046048790741505584552379513024037536169156081883510131855786812873519092383482053572479883798783672219755916687856644065737078886985667577019203769565758725924879636626429911984209370342111563111211508521543972590171297642654988727251356002931436633384800693694336926464191592011782441478860172754948706668970731730181853204513332912489803893124079319922374290722578732416524140926896751481419955125990568774478503823056032213403535365579659921762101465156445187547443498469515843816790332708079809681576342869018998256391109689164913340536549381397985828645708941333340990252128222217059244492766679779605236384941416750338084712135271362975987923440928446737319090952124797370775921252029704223724516476673916620880035741798403242028946189020552110299360575224493893629991861385812438656324451484449532858862907169691277644293213840883353873730014045649762846824406040526329177885886260907857872577675917888843061553338381173671577530630566140564679303391342654158286757436844818605797859049658689712044499465160127298029961099734925681310915153557170900635410978201564125056525497885485011143194494364081757332321318032564993622718562832111759390164175931878669418357423319258365962361189118305456645757352909082762366532626627829948840126836438829967073371066677571700471604712181938504658322512145632670168989347959223500701667578307041277782516503248067474131541048524064836730932155294752446984405897494705386301798325416333334186114033738135344580468139189117472570933255194194467962824319001262034590521523916682624078798532573121562722174454836497059492149747665565678589010249856535828878918849792280646942358330665425205440605668580653914535131379711184518870495647453763467502816856601718081890221862510396285992861046721890918032951690786140553682113818385768862173315279177510716847328465002232273229653752701453840801484193320285584143628792771574799857211672488487018870452067106229884141632803678817849890053708145629633212298863770435192095629779078458547321572586122337990437484958964141815343154413198451601960143268626922653349495077019011283289301362206959160123570132595765935659477003600853905963157405639872155760713929887525445022647285277537548755836055044998361803438355263390680456057920559066972525599577158206574116186579718947294618843140364878591256221577107378152624604701532564824789963297975657322509945324358608497696980035283726021753140567247875351541596842586604554865843827260107496581133834810157778361417310768605458469834062175961741430368329956936010027985182353399263202263733482417351253472970690492938401095807206139559081011400089300981394804314037182008366298961335111062112501983643499959489747867164375194392533662348772487434510080588413763411717138980452846804642601264164456125632011850550905923249733368409914658747735489672613316379950379045280136846837549441919583952917434093949158602746662151573903780802316574429660735721670193750148021099388500567766347057902348386769178300235637583101246846202758767259581934741418487853884041782315528872449453590027538576643410966185413334827836865564874678285404362921149718434839152735924440537877735327709689128526009786266309808593595507439234991361351785738022916323977802034590792995532682367947662116161709291231696872082959155069810609139146433468344008302069551912896346557517246090295207558729290601026294414779663406822406275936793198192104683112182631029992247511707883519565838046627886801913862195484019793130043930985333140600102671971915929018805082437811559417183938138533710086056270377624358835009023744636543629477433296323126701641181391364800100663266016989778851106121850987566161987265686899964703351704286692018747385138678757260696017823727867551165522417094261371407140030688152492256503903393310813957249297505740587784740721512774509456568655668863095150768145074891364012466041221817786412669298811016898550672659771249676499623106603572782572120541523597318075410896844394946257531532491379643714736301858572971641022331676408382542005616266999602408878651628452351908771090186335321712896706858757169333574913641288897191133388520954042606945983606201232468402082835513347386040264513674336569317869168201937419337974487065636717485754101229355868336601831235779101879330155964699190922132710635987913129955335569317107239172999501940501416527073078669625321856438318681749250159761288493767847656482967199189091846737612827260097152943671562255173765656953911507699888311005718575414410005677051046217994583322699008063838654458727704457005842180845854217003862754554332267121791620065267768270682198342719263557166948396095969433428973641514035594878483525196474776347382767580666352508899115787841982015627128251580980981446387772145160298677684086066177974076036575721985625186411568232742817945735280846396320742774686289283459064071532064390215731929832558936710310731173780944490469077534583120118059903376004935099713755507048529194361657191011259059728840317723614956879234406490095101606700014684294079307890109238389702848432218425737713742812947954615159027198296119173331682635777748692841904182275786814729533011695300757172651529966355154303081507863235510796898031821351761563605111671752786818306813119511709584591102491325005557004319057544563675834326651819976940442402428538985695034239097032276635289576750113770909978447769165765735749518542454150021355801536816510517740105448713719045072351465768135822962556521694148399006761889356497351843696767465699516104083539272921383496489881146409735547919265512832274030154414043111365459333749615733823735268421038701123944311631513069397678815358535432478407696845895278441789540758880730282394322825606298370881003560927440583379323892917203306108781275940662694732641178183143764294376256640423419698514836572068983823097911258704017946917079509501738803651925486610904620174859619603942832646729429571066121481928844750671306931145238466832263430268972457741636462308138060396054522091475688868582992418113949858429725074757866224254752456888310050343640432022452281207743776410621176877826030065326240745052235481352593276294060746182905060722362403098428639641409031804333995862363560852114488040194245255536461529063370135513548084971148789981084727254637189372143036565823892485404000787364660433551325783619426412162364754196250219261143215212062573583990740005292625383655257317374300132257805763239325980224014487781023452089657596358827464417728319994098547538456111870849057526179418841825239891535127317397963739264634217368883703923316358502876595490893057963907166194386317499556409525789542676128053225066008811181055410251962285697939122846331724383254432405814322660654688230331864438910252047314821969667228410620474337945641040449526353378904708941216526583020556089895962016015888338573773456681217194158424731331650611060887331200060294415864796464002215439358396477603809004278098485302707477902145251900794775323573325271194780076863101731771293301644129772484808537688614100321504404308153172215672780956750054491311145752152518384000856660495823483351987165935571041569242773641999966028150777883424208896781005061261236619777201705636846304499726983319357182755725954529593389232079185997181655210785262057479344277107390858841912168525181908454944665702700570042970574548987929452320818022080132580130174656544033696668368602556573341181067407677984681421013093356213050853722987655133351183485052293575931481040823939219265269318243234679372186843605862283021128469911760489372562268302897766698885916211762353110787674685038751444647133766671896567544456947905827434187861398383107058949381334303676617830641329927468622525046240898328904251460162170299219525203703900720804586326321982410645101728149743297176403466769416499807063294705359678928447794548364738947554286054005311027771102590951606192675376260831925395724058219229669653944310025210890947134577221026559281927772042192390076285493153777840649245390999577264885720670314358785435457887352467438662855006994439503174384099325323064838072215554975180070855341930149179149353125337500854435933248201277818105412231583349558795546343313918658862152125497620238782997835781144336670264218211652748973736012770869903397562052785363501540670689561347288436968184232553297829008953810507339332554106837040735868733371264823447582954203308041710289430962988415072643484649096157809342591707881512985462113697781480600624398120988021491636934114295074280578686549185770489399692698402311001245702488378365820487246197280550978955014625688787495929595694368139613816097955079365535074329710277229797568655954672296325444585994092323511012164324791458785943484398280067596964578923913398042286462063005987090102300048003620410454825022839259790067799628981224414274999515153610418076341479149947638750229342907884269240424399290435312619975643372852269417599211301994426872435887941569454613531835417077288575101822321765388419381303309888525314156263244480059227919385211461136439932950072401230656235468115303232457897248302126353455253694169712401695504314688874176190112832829108409948566275454278187611949875233952176605447857722571085021677398743617923790854231085264402092080473350573454154297797866803181267482178627997307001933266324525100133604444732816151703351575554665302976405428856783950662288603501829027322630977701533335918679269373611801740274318258724190235694425384831122204857026372320914904069435481153243811710205034420500712351929801201922763246506869021825942774504075521210175439684373769950114263687274215982177383510832371979528808626702196780061883901306055718583712189909453315092057437006816305913406267095907188314311962088375302011040872816671138532503335306130810688219602456389454609479879047770360960111891263834616245667500568162244971967872729553484314662161870530847244203436390796605658954398296643389659831005278501333756759168368340438050464330915989055118651676239235283610119989853996326163830762744317371248971803724437305177515178966297756330916595608545297418758565428046232468702556377955190942150882796407941360794645097047711289179881563359333330089291974649022611723053128675797206912407404142526272038236845528224790853085931164347393702498993400900315541755335433278963314219133969328324988997864316607716260991372102650309785500512411860473247628081701779259572515204830980938433748435147690509867599579747922747645370888215334019112779661307037297506391703488515484338973316927497050003865257236518631390693005889195313907195748638520199214695416419810408414504822201074627023667794584292035102350074706895261475756194488060491479905689700799646013069787459518089167432000093210813012466422217574424599712741525081183150165540042739086869365304769416245119825333731422862939439327580945061387768481110347102235536992907727573808087656383306931725104167766433246935273667894005195479645858553546027164136876292470876854939898532854137616143918729754696730012258936573721121620680727899851131514519103185133235432085353103865032447740122456172687019397468772802063114078112782408926933869273423170371692866460788925975858221310899940969535478262587855228565390406753569512061852124411721501909694259914204977176661662788863932097619241839721079699282987561358354034974919174138960207627396137122623758744075210494799256967294075092700022140887664220753118865721847869485490455148626193758386905921785711505098908807172845725101370183966904604391056762489631251194426718105197612179208368063410148558128794698851998205374657811466567736500034410852144407026236253175916978070226711525223801665782654049719150078831351038824975606345169449758442337377980417139611433428114430254130223008293930609844282665931576880609281246699466283621595561420706745542823221404148341775386965709145308717045563293283172357193950878201156942430056613304457975368050492000602729576986865373428570526639656872443106192246762160997860399331772130496046435230289000199971592292081427790971511739352250420100786436211154458417694742361452168134831735958972873335166306379888635035128861855007862543345778704294810171283173360545717162252936096488166184211929201811199876125339066910295590179088622188766808385543655671637809897530500419483887293009858098951875894998966001629812968113210848060762851025340925329089643163151244806941441647926705114383182942004614008611888271033894089805939534566788322926831999994409529038653597059899413542624095469208095594058738093268532244870390435431178400690819560297478600247978561832683143176231587270053010151960588812728953974402316869044842225509372059903111402509989162617518183567565002599123829164221860253012941362573087851860493899409748877025408514144053880166003978562600031179082668805019559038427772498919171425750088780015770372970754971486756260636997439779943437469494574734283981567497322526993053632568929388739863132196257859274046141639857115288925681843283370117079590513710722137271491428955933561208633179422709231533898218009640015439508523255495433593350936315426806268244347551093476058621107225264199846965730469539946092623394895489185449208125988749830612838963643710607284562050097384960284657542009552158318065539226866530895491040798065866647108658855594624589340299731900049171702865278897239784488079961739671685831953585626104191757776459914670751756672273299948343766211022056951314249583835456947110042801409473299355300430474073004679142083786992377616864567052426129965551716958836779392327235287705459298060844424899398612251334483768592519612674339861655167878381741331314257258799525346257468196150821615668715588041072996720828713752552056312122930996435095043968334000072452839914697648509800245571168053434107446076857074080422678063012666255147908159787095729820293708322732935898029060259903067420597979364126502486730979002460304553399519087972908470043302090526239405741202279877134390378509949440957309312848569637530698968395282788822709015132167739320898613082492721714673291799186944207793601663337008186099242207537075849556736867207457273764746862688402480660765856200438772178398290539739296431412997610007735988844102695762068598649799468247775141002842170135234619992333659540957480216581546405051966888953378470801668367706000842758645063991366660840904696890137037918967135336529242269257863759069442385444304575736571113771753746108838394279345270791011250688357009259337936480569895561821010112069352730571880144311088120746768536178975788582447620455369874977457704691232502371582458328325857435620327769802998359242574481152055574174058322039216640048174790237088492112468290658693895700488023685687305196660257014767365906351842541417874449729114266319134797577923466484465870205143506849884815676644071930239179629826766939494003942215958232065916232250212614859904190846087788996038190742718614620288761520272327207542418331958185353473163270821029557787870166660823937722831064609614083378017783909751384649037878212184807721843656769076497402106971923689029798978179315288314396666825161839155824219954016866696150408148104764327702742253195906863390014562441599143571579359486694198864733410299110571427082790733492418376552532438618426053937332784508640257548279346548176055474250732898585977912155406710105073774252322097565684751040222778680119596063859979899529268213906357735830434434824652983464247381881743460917314172672534043627767998444645520962097782143397370192623093826367979232648371028851297050717943114889107371847668296535171178585562965493475638206174850314603836014608013087942703860633007526270262979447188255033936742553049090241740388168363788013669913671260809669495734086631774428016379360058589975908842424488732564274233338537350456251245157209234522416588996488514352962321722281557955076878761787122578611706109133013284359826276396911196515627605677637590057521104003201823989702795033838278362524620413964876902081231483703434475228331874721909316303239578695049797643232878824582339668316219053309180862612587760536143273283011209440885032163684444187059572976486987615481948411509225233461189308336536965374370337691998085230564649377172202378431482947870725326568627012732253023446601224645638003304368114303350583131479685875912817165460795566554324170116159989101678302088346761928119749467001252275055995924015256350832382533840830685769943363356954429627688381052614718381372568500757281793193998922575400659941578783538883665944339350813722006944197011775149141829379654103637463899818258104700059671285937417171695228895603052771400245958843283200472066294574190534537105388076808308428419935325949558078924194087881690510834466468365729421146805638860785628882581497584107472168753768056063011577026570443026024626498976435378659599265255518822850948105201260286794875698760350330451653714373612885788227749597801385412034294643656464204922686535034404899784564915023410803999585941433207713126846253757219373420818537553783631149739986274642356495666458605763670115917680890938544462146047994774425343760444585109044447443345462301492049518903188911155435207639594065552243680516493614903429435909806248821208402839915972373839598707568052918268089863620831134401903604642017604939316448758163287697248840410433718999476834553922841492907669121748344466379967106739084883857516356162550378767714312349454101511705769337358383827540127869612969394671108964378193375296993890711885452289509004237460279512556660341756362436189398649001550370544546532954359396059871167322866445147083434565252327582789810951228232897594884539190372415784073223807565147606685238070328068993832282265293761185629654110741219580631432907182888956713236474934337188503090124401670867188589499075412319888270554910586484309756818117432100223026653218019980528390850653891346709335394592765763424092359912389272211506156286177764190757640159712121895801139672017333889002936029438684580595843996549142983790949149896308501407931290430972653856107733920558123523396713326498823042188942557601099536341504861910021029933435969322679003248406816378389741123166389971895792267339269209395132305941959018957811087148325917212135789797028094803020333107484714429531192056748620222190377807166888790294637981583447213008889717699520881213831672074820615663069136311271771123746100456224981490112307202171920522205455021063936699336483032420322383791298615384253196369534243299721742723112338614983591176546454383223320809672865474781109883145696935272603070840307341068106001255913810324181225931518407573059797189037726142865378271587866724835460790831380242838780387350989226314210243724085312496345629337991744667035577447862386219788605846480739895258896838976119901179481427880428452535630369865144693015816210462578013734753553665354154911713619868208932646485295282469648054019965495204971692569464103369265890687035102895481347501130950796263606246748557412400136512210612586056900116122608771169503843604609640218078860038728837887149142909672782604067369423332626684101963185289515416387219431247108064229709568116627961396341524596011111166007724923358044833599327475042240093689011409653284616924059772260691402513351745937683691832420684123820441753049169840477127195174224693254292925102197672294793093586288943416337879344015469413196007195497210078566868763378889066811742745161716037703058554451752772556376509493695201280486998159669841710077414691134971070809635342901666065593603348514394975645592273720254080427515203873389998107149483828016407341809275241701248335162941987867251030070438978863790059434213216227103691530063492387712697528364453171408684422982412992696512260973787489759151933657781216184193374895222006980696369327031528754046974838646911511938056472504623342864724672783627721826767986967226811696673968855053887303556976998936051464927962813153049473601309213016443799178542316444751802627316508241594314765596866402402674532217114149233589233269324804915950496307507654153391969919802894532763884103789988735311204233699405009633384203154615024174101478568223767070305106558148760036628199255155200261869440626464641092759540116093434779293939382591191496255262674788795737147980760604031199593857460642404870494853476120471773494581744753587320690294419772766242989926810027450200494619526168651286327557060738437895909880980953614717008798572746907424533154891859036490563073428792780981388593096199584827221687447177914108442230184220367722382490647603273294818008379768652627490054764942264957623206176683518658951733414614479887477842396491579662159599229090206814651600897504650545310608145251361404587937703407441915063114257700713908580815780675474726252527465475800256327868202963477420676004113929139285418405120950255762359176766168637599280235282885354009943684745542954940248449142999276536567907287630039637551853943893368901768425565099244507233580293729623511780125288882100340148757049786940057105019901581962044559533933560359907888581634017182331383378565723975281864706777238163562187261994884872916807623719544365798428249175326207226891166667873040061651397352212829654315416936747766566981061790308868130823188964098508646771169650618554882261868810499394712968941394229166714327967751228296178619481623343091128545782870775140542778462851186427596779225880812546104828027358523427842364422292216104459049868854455951722410037387822069924947429849530354866489169480625150252868985036633148777053135970602015285519403608362100389254038776190333579609476055140252215137595575232925230213371986020983980251362404729469017131234329060057569815872996528285937892935514462825035423080806045623204090730095420050277635579939556354199658200581005365199108413494242096018058782841653277561801708467123229649983998233723552853386690589352542791674093140023614451930555344908358450096649481917270679258909237373404651303917952687831816348383623061099754618631076190840361873147916573398157753062944957937912419793926832922367676248677591645806188099052040870244822441100024953507226686867658509795830630375362158875002838750304984972314644384206603175707669114073539132943456977213330195159150018835775786733538146186422397948477251942278597467737417875766339405630929021024406227650367146776644786226180016697182626956416480515019383332208175099705394474887290357148797414863775403247479953155870111866659271502487586450915762175073479740447780890790357720367898059901737952846543888391379694617288217225004539679933735790418208914765207538908104220842074610335886380686311419456743440715145080998011530150472579846406724520461288592245771611113308066931763935319495569119011278529438898208931726434679069825820284910603177927137181544208920641897131538993951250610339852250731539214303118445950036486282243474387949232126122279027088744656150086296400485909716718731249571807746560214195037312638502866573800094730565159794600528827949116244133718885986601429467379161896277277991115111885593546127053382278315661447790286260167556326337223961278074743526204033065217890677319584919770842453870630202280045005788262859738301184672097813732262057477806232219360226372981014396033234442638989109001054603470678718609969952472042856550697190515413030103476528432025545884958536218907038312951981404659734261795710753635103600740600397515755252931999151547503241274741818369446479025664865931681565289815436462998888799958019310092420452252310154842764892335052620923596113139802202924094998769382339135425249477317473380520045255473892420294062185772810339415143994194019150342831979305959027975400915714965032328208372931649180122410907910471641986528344629972694413150563661138994963788814296116836532525151415291561972703090394148132164736664846699934450573098792628876686360388164991890321907680465352948316300175286927842999987183258538746872527984539839083083957645566211257633943559658740122616553831316649064760536192957537844238890670570743444956552693311815868375150970820085341636183880559536017624219757479470725484655385758373780210107404009683379232900747606605372105309995906184345926952736793101011115956622606960129359964702627723156923639813483658436975042612362086657738489375768597263622086717950227995634753166407643508845155710631150498735525113303243560239912763426735457574985946358857611090440727660581623499518719744072804317246901488932155248516248614081472400097572253104161573931162466815026950822831129736582372336399735591368326530916539893033422155273226743455837467564469881466951451555466570108358097532770919125403284253577992644425643675234842594513716836544677449995712947616458488844547512121517001315540404847771304388038870810687155887370321020881601739124945263666040146890599477002728738095656104542422004484188744051365914917771146094452532461962571267915719290283923205437710700279174397814625712077715637785397639335269460179264717314802369985684695796539712968259349384317773493612428172644076901743787262778388285556363355991760894621730483516919317138200021272157165701813359017573102106037097611113490141478749981583812993742714414272852682118505433633147447325203603391818400515921243793790628680447525553601226094313783013547120445959356035739052303382173810433291878728559459800688261069915736869414870426661690866563675986293967228525212004684632443772414476362760135906232411042155836409114491066295367848606415757745530430833366200850284160968685907711774803070734711730940214822055993329029072579513320513545111467516835966138305221749361631354120209638041398747408625709999646335140361113531269756950842940971856388488121905249970129132794967788295592447283980863466118078766425430038880588178676375193355399104782180827287712033671313839323146953723462055143666640425926485524384430956903044904110517762654806497475968515928263496678725307224067049610046085950775037779276852630157445181899634050391720745939842282964714162034065592471565070676074496989165088326410503431270341765893102514345840024881554014030985955926015755180155298550540586052185418951008191305997071422175855516355686677159831845698457276826866335478085666202482328001441386342001819567238078018789615414612122912531506021011359890861570022007108016525616260358508823623447384290431480367651704734516309072347412330633681971790886027220148043540961632634107848227048468350343317470440124416482714744188155801328344465859283241144902147690809422065682473295187146223130024807226249253354832875097830723551334003284919482610092536245000824316340169017095681030313760680703965637556080695989334818968233662841486212840731331446667131654139142485510467471505002820607682018210157070829467414922291231445636920147069710362118132974564164600729908239078829733799765427209735857969662940284575016994993097036996934373068227549637047460024411389106054271431109038641542285427692604877140685366683719546644971221085707702739878956765064404763173743064868433003711914548345884437927235178279600191017981365603861730881351459224469218249464981797941794579196227962256593834346659327917734566292029821706722133622720430210480963781600319840195196760793920622586540518124164278337202065757931151999093183321619416333805205758030835623025636121897973373068927338914858112959573338175049986182588348099887721119973607234755328128324923501659126808186318868752399257110528406369257186221549612599900442090490723748655354756438270535094746860275477944364739834369005428458310595950627312930867646232829675519311994398545763876278108428522565435081577986879538736485360307128112549295396311548101411714028969192205747553351861397117636406346645213932879868393625335415022922623080582275839654500583902584739297480657316740277204562099659676496076567400908350524617043775553103398434949225553932485325115166166515090044949787478759632783541601911804195140815405216099047897631706100772860041479478604521808929334425784500144323580568541042262042887545592761944276713692935446044400522645276586685606072196915601892503323218500977500709681225787200149880922711421852060711498217576246113538782103466192462948041975877180353830553905505669812290056859968059170337704561466665000875960259391483374392018749864471623549118414751791630160432165612961904193526145270035265905303304522144060777182984029821778072978546091008771345345899270317523775632396451396660490977253904873714157277841540286639038942126496603657642799861047727147846126495919074592045718778288427040963039026770398555084402677225797365015956655319185757230903929025200921279374294837560506212143800005721093725059160993698605767026193170275904453587444418762335333584234184374323193412958398344375067242341815108366046104051392596811624510543562455866846793226804718844082394646149251317897652631817433721241714436367757127558777930256469206069527304390920061654429754814430630209239540089319942184778454841711632124134715983729980780037944356204293265742911776311342422934435583799001206234678922955848085222645176125652925510070236314924645198712249536622039407108468960836020201276798226012710242494771031703615043228855501525927671927388826909670493535989262064312070827764974111095055813450508644600971241216492127816081205572425746882862917292531892205568857257136164644315585942672405961936463423438764522103582838843202546824169361102315076007840358092967399570159839279066102592787304525028342676580928929664328739149457210805444637425797830703646115822023981509483715170246750695197649580940177364710725664881875983301785940812522280580572729666477830277382524592970343341038522999924606264161033124350881582125259957693517911914386207355011801409470125118226272875608146002802025160014213501375280669239490135424743336547712567944954837575908150868578763063110864263862132500654271206136376539802008236352556149407561532116843542667422039679172345854214990916882524179956329689868838919370959207997632983172988042413505710060674227503074979433009182032813439712707499701916611971970329313500279762290107695173440719434120719092432879079055564211672887119655199171184966500295934968771142939089464307270033498606774175982523049821621130761671413326089962907035408881138632413657962162997056631840492440406649226973684566826943357043819322475775616679364774574462544192157528328631408101904163837479956108175357459731958229156453552598390181307537117411235957881770047835913674187856645718140569946600636886710223077621212999326559359019119245332776989797276738939087803492101272007008622983828911961813158969258919414208729080707864964478793202613349140460814953716923161295668348443755254097541636885694292380266829172031745945046917039967900745526864165794394479399636823965429423360763111836402255380244733287545576474916437919071105764416551194837794967530097689266695536502663859494253969103791581177409640150136855002738363171443730142298819119415641728487413224255960266303533955600790250994278560497560559686155522689253980537666470427344136480441138081097550601393564705140216544134030646278438861810901476404817575622045552762627164687412076804281712028094110095340274211151709364055721913459784832349593229920883874349928822423978653295550395705224138433874401045122958115605136184327052380621306152898281096256703829278221040962372373499271902439706280094987189760479770934200877003639655491885649805252140914906276592478225528919999081963463298299761150605072579906777205217555093890689134239379711977545460587566769170908436129244115764891014689199323870416656943950795553188351062194264026392842340504987381347168149031646642410857967703805808123285825206552231423102932728761003671197146891253742731999413786361818382439370889028435748542653885303545622002416625652672677841597970464052368723519395534562379089943862020658200012098808458966396403034254636790569999251244358763805484911682688824870046603433717009054160225225939799250916248125489178130498872451327056579732892036177739468421079044768295655700912296943307079560743455471482415991224550901021017713881527496806601728326386374749142926217105400862199536524748544041977529434043335525920512242178847846615438911619698510867318443560137841922883437060795710077390181931682977833085368446482946638883790033734902228952787832645055980663272637066753647932303064315445812567139265923674946910039063010573762191095512151250951644430385163541829885503816938164757723329429938720783992410218070705193540356406032362747659298768041551394252326163808779615175386888793990509178887942139511120855073064888253892711128851115348521124364924953939867745231274774632341900527127463447462943597625181326375309491135340671790116032700637358178220992957272727526855896992631219269148235821068514178991038101958333088952371687369253460790212742248572243755630467533000142887241712990915619861220302401118993252632265423987708438171869753758412591000351196879789977112497655397184796465249885653679865008593614638775988832196731645679380847015863277010791012379898809848153738662275298525864323424453202836469279059569608195021431299636540262411430459871202249426984805750571870377582639774411976331841005717568549284938628018135925143838687941590069688100894054777198599686010518093375823142514528717808727026398605162691141050360970214500415530368459561923121323396436454757352129559081198091785613473098153139462320285852198227295762790017478651205481665651168450859795915939291137865854157184640871053628024566906208117027441485710978343171407709699496430159645797545665754453520451590651062901686049042938337520230533982960686386901946160074856814427758473503541255377257107939181288963631578116223563933098531100521832312061948954884566157449139928885965699369547633850865343477961887286980051220249985759074373691656523818577933253230034318894713069136240778541148259207755723450421480743235275775145386710611239308957706057204420104749615393501491886163026368089089846462920015782411189390806948253598687686867605719536530248356626499590308095605469031896018281302292572008316513270466273988646993479832072332936696515228909143015266621519476020460041825295282532364044977190481183053825275216206393897808817474043244775682146218490292591797118047652024516440552919071053603491540232112293274836260300508275495097918953590511311902537950123902907616810436040858220406605804980869071661741073135292048687987377757467039914929508369764103385501896904028231912414424991371461258117298336337936712935516482885460346892980795112713417918073487601266873341082404379874805980805505392934702112713771424783546817302659994583008025971923299067682934412322632677996522149770264029969495828800702233882341061143965282992422115275106175565801883254467259856435285635664131356870584215293970404827055594684963111614707409211769032375301880386781936557441504931181130911811396604863424274188265034994843045703819518083038151795594859959818313764046752495152461799793968032621296674363076750007652195096760359951992044450798152522218157752665823983324792606155334205165355641921458076850702667755427700168340607905433586282010588856285376233269181860476562935443514087021697247938235277233593797185390544816900577131977422349969663288201837787263677904438511438351338687115666411088530768506567657806749388569151288392946208645131331549718173303825805055865013513961728941994083094673611392816313881380408943442455964593545768207606714372272856349338889224473503368347126109376609500296295826380755154285482496356376445578971619358526456157716052339837831779329136897475609838813002799861142102587783241276980065327112894455144854593771200807526359743911786502025012200125197707508563351268574103365965674049484950319005273086453053139697820955710825713199360604557168584676658829651635425039904395518096176394166107747905563231708171010630224685025313113988810318114071517737404865116575700190786005711408965854892071136536472516418601200002985060407231295417192979781229184987755657883022953236891893571357963568447057037055778586818412062644649820250204354668015044353250164014552744873378933133788344633846079896094211964726499032017697842136575330926421191333376605152025963429771933932332114667997264072873229012732060600033110309746062287855187055745467039342829102781275098837960559732749472017883607286860029185460614290398036063409535981661134137283523207051023601882780779281587221400780097462331107413594235996046601801626219456731487946958879429825364083732687971867023893409547958917792302063538690773301357525631650395837083686603226965540101283567034556702618201608542067031632477186496764517760166745469376044643309989775432766836147525068241485727999760803881835164542917808516069831474935851859911190147103503469284506960208241024634322275317645674510841354599372170833653228819556893438555173673952244776386772080364300147029642511574662749559338972781250253450465926255053867292152678068298290149165755864167623880239926095194643362287016275772442163181610591263115861195592715289707770234745376474967397045557159989910484962419652162169875781245003904827885935934992804021437770751484194466782564437414603672091316955966260662562150499784943514193577037550728681873840150461320095192206902257640838351212889742571743393621783158310951754333375935427961713560121936573292766545645852221086401244353196095337628249115203499118430760526233879704531799535328688774733873852834363632029242144473281578486393856926898227392674795614864129411630510906683644611802085058970713592960516950529164829474094948171842329234472553106322502850371026852319494140449380716816121250406083591552142334625995623280304729243703230341037965404497633873740835506650853326202872337101276670807909035898613679294871972674977409320487814922517970974810578455367475761066468885847362046433602174125362022046518074515934867363350102192571088801944000033557524210307645685949060751155369791372415124620462011814986388235119568330409885519934212374891609714981219803566926876130816596298305761244700746390604104709872135310642670136665824005180649801491082388485390122755250081557820439641792536651431771907572571087158574096764636096562792214294557916462553102911931273899392214464608902862432900763308818759780873083489121642356303440633080176353878946137404552245984126108208003222234080815879170047734267495201572130218008706480607755001252940450236027399184227123980520156847266849749006471980313892234858503806985527085217031618427522977348740987613780543317092053596647848055574388139096440858047328499652712355151862888158392838639519873637475974111345767878295364172975729973112596535374194882861626210210941876969813226832501858867348352430829603476682303016064838738023286770622816919563455946794833397018050138503796813947042715689749708830814505014555930939452681583948079358467161122323686298887268409066799531908464010370259463086357353195383072628193281260966782950826136334807119983945765316001600763410798172914446766351504953285511261154954535236464133047196540352802204453341302486733998842382730624140764285180298853167140536398533060964196422588767065587568304406459894621417238242951241886689869296322218711544806963829401476340417318580258454389927098596922598856604101191470353505270471198958194760720082639262051963367200154258132894228110737714419368140895951784835185594662520728332981603585979929170049556967219292048644995840071443887960974066697365195572220477060421139798520586096507328040477301115269932183448677290923303283659893636430652330091431950334153549656431702136765221107485929547521463278128220353821287469600401420503662616739862969170978014593588698391021447237834140870017168791548909554763151872043012600911040122778295150234380353139969785649086335289070234767424255546498384921931475233250631525910938009057254438718948765678182591564055578601025398961835049406436323660392950039116908860118575041494650504449336162646323667847031293393838161720920919135516369713520146498073531972859462383091342373755524886794119254831107353568496945067013601344224807692748006707736609837471149709930710421065383379549855042174518487687005004684105230384484709973929033818697857386032615037608529629324980555878686300712110054512384019170343776379564208561234436918674455600501909839233332833064604618574733460256195552943264035673978593563176653000883146270857668287404645533116326144746320587118481732159089534926989575009367300973498132630232881596998554171907408355171597542696866376595832723151512774289220057568809226844345422388680759710814343180132643323934506254341367318553775441699132421865956331285586697436539212117245098129055071863254103559823244699857404375862431574488881780473438519683941762664082557310066196725944235466518206176528650755438869128731394557391682398229667604084641428926814605574866074609313420424608203721829604447341247356943529053710381389949150751372748351229185428746236721407575083603023286863083916781393351509478151410198953653366244501290863595234084182080685087756215689280606893014768297250683575417402794023773690502943735997085024456150978533175595446918954355285534547414232500582184119036226486272206734542810695499977567234407427888818868576735528170288436744991980839219041951756580474922940549203293319480267702700020031871749116095653861992452789365254157364790247812929500752432821001518390046262498438540763882666461226366884318022475654431570863344010577340928610591483975385588324742223866880409728476170546197648167323148337479375216146572383647039772610980205316485546094709627856340640546215852335125025633673183750258723718743131351266470279069807053486257142055507675643073424490781193406976351110710014373694890115499172656648587416580002902405956203848510031226711375681502566846882808290627864419942096217132162476088494435337678289587127626946447207701935575967819701246156099511137675152860262198850156215321548712871824669825994361210467925223768714920885257197976244184834756452182638226685334462354159975522035399034652438615663794852847080257612743712935477531332795778079423469112429928871627267250424793964437743522130433865632940570893358855564211298541213001189413235519160386357839290985220031992602319268154850614068010698541992855144310437692615683362111172354942445594812726726724954674400969573283587120317097128893534779251058087769860470140814003237600990103493365574921121553533259284983115973246218194674002073257642615772910647201817949889663254557430986193259536404838699875406735039875421720104195755686491388729444337817615312583611299598060055320840848847710970653927032574870436095706346101270537461437922133773249586894327829565982253741819045891592747207220868826753945314199694812227783256282881903314109361398916243165566104033514531237121855768360588751563593396927726963261933295374603085307288641005646258662650293172626266544672827751355630713459847883992898733807818286665217996962371207101668971411613987541121216826826467960951910841158452774202905893891891346248948628016608997135849057062870529417741523233429749691584716549314238019303325643049346773836780851469826215129099155107385097314546141232197962684655597700645459983802056049313513734197711089616410407992626071661661026473590236475533069478155596615292988018301804701469431035684955888388725419390386665270072203763295123476142915244085020239174979766345958621784937633771850336427079968084320440448965607971403559278520117970941081740972088829653501897645371388037509029583706464668684607280165802124292568797492185150232899306769814549380875281258049009796051748501801734288406220736017296146291098466938156561044814707067075062220263848902210752467128465943269516167579150158446337632142789582307963739609311991713947263845452343301641158747702206966352412625059096759105700256617771255872766302054347985388378163005288317071614948292445903600780886129907001019288434193111681251540610710375880595352300711407109635858922986044692384234299609186997946594145749433711688436666928764812370579462753844701665935687144245309997475719419812429110758482870194297708874762763852000641048979788785652465925916957689517756284963078966295081582752971596066770614127448899183982885128189261069247902005240394023507006356437515863623845184456895704415312896047795492517595117328432184019687150488027280006466787666764594968773660499572189958069385672005761076670173680932187868836400387088037759544508751148903932518245679517752150960132505752474245424778886191120604337311952258487951264603455698500378443635396464884265848940895286099112590750755463100324731493736910683818424232084371090931356635682064419199877704396213610836544435975080241413679896540839357209857509915944515651237766375218512692685463725285697531069504801985402695349487725722437900722555654184907748825272266489872314222738928632501739647744059070140449868410720913392513512736795009174612716280601659206281323419622836326040982202753727562609173668635931434656244601118848672207728465913183570654089420908715925243104685325300931492740369306079120460056666497983243000135200230615689273073407297600678573131899812155255950204224663696120342880905189811083988366402929390418862453049475560990982832272933167208870198560481595278243320831254608628002610265591622753797427011141207083511452920443354330438699805104313493861785052253930704274981704341540311855011611076889097354781804300141986046344633547489966061597521846440246998411036330523389226211846333956582452088971570084772734158069295908032193234562809447029189186300028733824756035627202549423447362969787357407790783815956909736557789435349898627890139252441392997472043355186153884014700137239264050432413639437463684870615887295725475690243452140759132282353218945264840492501936239687454576944755566771967924006097248133301459992798150627534210497940061621538973223915636239688036725663762466517863695134103177277807477539118328951969099004412052318562241270030196770780913614515377570940761208335987986468952757553048891894988346467780747298610934632982168433219650018460385918028305465753121461784625888169001997195264291362624472683994886558741717409872816477306480404393532929128468166831849073401430178942988136690241234987682532849845803133014730698084867105993390583658364368857888150522520078603543445465636007172430197613859346386220746689647329864271606704289856241594446685193150662744943937992654645846477672179654395077386631455722739111902628799493671563258418486417868796340075822353871093982313766772026842154667814273183437655669886472337901775555731271624296027049124260408005629799634232049699996227995210438396290248621263809626932397934978514558644603852527384520081149043311577631723141742797090036815336473446825268317704550648530911699683842464342115482011662187328269941277892343857824188861234865378861254085158662058596415188287879195175591822499760689213331655448792243796040340031529473985934288735391036924319805106103544334544801531185204642504517660138280595616806781345378768841246706770962120026719231899435765276062898605162792695633313503044412500236504046328449973117076030840746091743260539043194391917822387442604988688881398107959163846780848161772000871861801287534230201263130607950953814518743476742124691448580384648604823384986281724689911527544830252532376717143206102018166443885891539374011626985402584608024968833002931321988154483767449753322798199679817005255312884051470142201939720575971891760694921370566462499632586327452646146115541108597014398990766236388637393824416520337611108967553772829238263618527781152578819758227107775912851203090940625172594138074415719996789143204327799071711354097100756468653842207583650564258323226955388561850004859817119465313368232945585889158467884451124209796109379497782740010726765914277369711446829645471002940857341980851855130512504668121423515543765074806744072407992676171631490403768960071995790329465412930966497125623435685821284534581952703882537831921939497344027222365940470671481456450343432024235194999009892233418236279862014098186429346911645123715636264078031056952484341327860705647289157578253530381186229431363132650603962672402111375998315085455634159319253944761569085510906234662820928229654257615182231935279357725346023147053545486299750632132119061216664659406425359989172588426572370320417037288894585202478287986096989187078377485578931398604728716182103128406697639092920203211950800812763826734609552050692676962030361069790592693369049151301369482037965972486946928040461088344916922709600298676395120024550984831066637153219573989383230590280431534647331753868386388381212942000873208502471587444516241362275430514604326193332739840881445740273020547045125700176270806965362581874536876129748245394634247273675862079370931749141950520757436591637942954529803966500313189075989418425384827216333995219514148016140919116161992742234677553667364542532757155001018103014050106272714802754352966260753499033069898995159693967808961120250163450872640123945082165218306930832636408095914393843233124268488675250675224467993129999603261668966931830593639982032455493544982339277157143418781935594430968227542723496352426661280170207196672268858330008135622992767758836627015936322658082770514501740012650552538182508531848754342494385807721186371298942999135962452178177195408924756269006584426638729619267543631316193076934436603215364227450583688110292615263510354136635879350509842657382520342755031854746060417600972848687700565105326167639911487745583347699548527492968157494236193206329170132809264962273198629424415319008518228703773553279238625993797672160624133153563284248953222074066322780952467978496552965228230317190406465418817019242915410910089749958568838124021919060438336911997963354196155169744902855761552549415893742205639958650523512423173727721370968865050774709779628347802257839638901594199573989454079332088831626283342843098824317830560156056121803805370888855021288475690937844273396753796804648592591816364208521978738120726408314144922107967143949667674999169582457553483658603332116250254891580899791483386330057715447221282729823828413940895444224758372185334363624137761502684307965490906375251920212017135127428789177788251359516402333161428362854947588376882338886839092423402294557048361814836400172421914392627855838096106991274326424449668421767206526461981595066944770490966459997154869292735616238183958770960019616717683809679736129732187275770966173382179455856783916334604406708270985944528866272366008287966810700100463865923443149654891722214593220383760909564643045042858039879913126362844940316410271424784314312224568021949317255923787439074956278967236909167298980047293672115665490454338708659019625591127141976406367637192562425073761624865880992761727089680964887230024249602495159485325548983234731814131279238426595925229968946690659548494770841921115861184851142921130010871889565650365287941921974934083367062698156975758991726592109930091897001551590382587546680464159730526973944005854851273781018502946275613040327062202758089962272680815178526640637670413138971854600440750670611190411857022494574275989098089535502658533034979700566311889416641370083573114820680007304420266273609936421992117844383058365002414830916749875793990880914785227208724241416949641489376614336954991978889868709790081775860883957002490166757131716538499968585933534246108708513044969671467819179671153577968301112068234569808704100721360643862112018845572682804199202408055010806821583641978772741018778632049636856452473102524188232312776459475766476093606194759439841987812003462355351553861706509110475777370373488340698706878395275715794516728390484620350872780055223919677196228646839780271489053535942737003828949509997466226011895827005404245523646664236454524195616879262953828281197154925151061243179490711344790161579126040096278164382805899362007082280496447075926272105498272615852960108711598040330799080114293414766163260729505798162842470353211308806057701926518841903623998400675943113931628229463336950217499657046626326875194289720642302729528516101079725711379979519192993475304848428151752056566464936118482534057620091469162586214058898160974420164474837747519936040143740113702847233687165278735774002623577358281077569044577960517213188580110125733426394049395060815755379570806368120120657219782059453281579977512103131230046371106976150179794183100964866370471708988465989009746544997031386769654016494497616419378311408884189263080019668508841998207856401166560477633763699135683955616446433166732340824834029591418469899815322868821453762811912725254553704776737870196043274844328919702340996099754981260571213145441429256957515651983911357417404702728839285702803819280378880151436946906567301564475305149201692475874087448530745661648448994308451356373748072152707424672035584917436476044628285653328480496701773912677797305595675119128040576111520443483604843755166117837397931558037940269180163775344696893585712848038367483860782232540342042050944746220585113419885876547894521850409654283948792205472534900032711059950133126621375194918986621108567656724548680522943857410920393903757646916241946619179385273736856654153792647305185261721272091689908784660230764431720334820849365160404721251178441965657043036988744573276068022018444382649218455269026243069691765792734891259339987425539056479781406394221046569415172243092876498720501704556186053418787269082220451954261440240032167280034098245034203664518775386064108990753884641377519364172746729375762196294579081935799516351940713530551077698175244883932855902906497968507351568705776699100584819242602898831496827653299075038139916501899295872824114065906953153169108084764585746409737103652706072780941703668366876077947673606094351274933348378661772681280939827510567224316433484746920731111182574435278217087996921519592385579790479392344367159619636940432069684550630269969233907179577289038270838901249683408835839337332720854508991441787947376937475668775548119875347533309619814291455892118492156973193410380311720317327972213859436817165638471115534531890602497349848724867176510939908000844545118607568882178864598426427992549702347455710960289231620840730272837647659401462342216127179738902570827049754256312991637672133115371689724396236344832847182695574420828917387173829999903278486332021065574606935499733919193740529103697853606151533779906954757681557451310258056928496692924037245379215972768098042624335961390768847269366404887441103049615571832407831554809616675555539487564652018019070028834578484789574163195868450516810373059775482034410419092796477354809621905703621366167271434148538132643811948936238037129294845053247490000695262730162740388330723233509406532919502926329774590311478719491154074235545427765305228543584996072465263554585662473175107111683166654405046801811057535993516745169105743529909482530274710907749748609731662594759901953603309511698352501842951220510017942096051675788452676483508772778519580621023811634637055621934836454816522663377449124985090530935909265563715705284286826212933045624304715102412492254766079349817127018744312182227751885608214532771952656621634530078892070079166818666329361676799794909117213514385391804288544599769134216964472786020415370810222144078502824424322978701657335429695776294487685214264407254332573714162012293291022817838239290052394849253837451179093100164292999623812342831017524678778728000156071092402029790760925611369574445099524808265235345811288288008312332654364171974943089462616943645387468078974379824989085953917527717441698431217047413333981367430081967104861747268587184752203807810737073789667188247185789597136201609820755076525764914069428791631177998247993997131830443733698442000431463337510282796333329878766643374362816064763028654542571162632026147566301597500564177409513261939796610520588743124298722498486891374517744711771093356161953492954722466072606961941389143734500051986115372988882524344123219878827229162071007535435031088959232507494327704312850687426703089012148837261711622410550694974033428757713452417293977125650201314790347294666780898587096917268058881276241400139814155572994625191716767013290707649737401652709518721834604390502195223006668730856384093611460828572286191317946282213785843428659267306523796738165201260661196577798845108686322172239601306709924780707937558086926868085381152053716237585705615989548845849008831748861646926735846511965541279583207981978283322762274018571499221650390207313912710914429566163367438957863295131660683853454515545729784279119678631200696719254105072290034641788794646532131731588951971614585853298863752551770752858104742015827516514233580638198898991041095278535197171209673581281620141058794780636898138661241113732979825679418186207854114044701426660726058745358110514735452758198721250856741679220410197108435002590790170992586090896549209273350873751194348210957001970220103283476227476102121417695133111066105714836346922559941494013638449099302765396759637444072019059517600392227924366401862186416286144528203175180281701684183863633041992005698662203501125410888842379990753892889600563677597714489848229276014398303659423835996138245714089457775035069274733564610778206332187235079140917596976967434264359312693421447122895690006020046329758543761169667053098168472486156377468433168015166437979816272333750735764854191483992418622581329700800618607307103900254732729295292675128157035895679426033480184299235888383833432061415436913303031834344974515181635177988382371199813607577255205292233956869966683364273072886112401707645539867651462131315411592399138465326683636728834314197834489899066862056782232746841651596615486952887812777155655911442850234075454200653012370831283082056272655116721161684529545273223271091341439070756493822027981626867369177525318513724616568686217194042055395583781856672281848985210893913719118733968139390266683085255085553478655133188078633175794335157630543366789539983663805096990140820573808981187440279817147826931938439184590622917603194383348838712715859920222908499688818403238515000573739056867645372888696072974043661577972472384343193334628857626365436274463607791605953616549584522887365324655825908887033497487759720446882350004877878946225794539637442843548332296878209541503956231902849661923615932370120799109285476886771068416820041672883749403550632292677479345284478635446933001126629886469598263768922737919360432399393469276676163465355181425192002396501919603514608423599718262096179853895643740984674604266675100499758152297815495883544659908571045185639254196474660236491275787126328349035607333188178045042417814077027594202075008025524176161332059011294445565129706866366790662430790165114233481992700826828449095155231744220826063877232534466491974676361841617708139122588050004706067321191744625026820577060877213139967321259175937639989301238197933125827377967389927108396726296555227836238030403405996152659462784750375266896522906836445263581984558815317526591220263121802718175782461973803637688462264189144474027669521050756876681851463959540781650679405469609197531289967202797237710498348661039179716943721348210852140722845813273801989636913004906665415437772953269480909294802970485621216142277222373959688507791051654472516563574552725325071506749906966111739633932508578317041459656645210958918891476870923183525721036524981393945851196773025688818590413800249430276767581929064193046169784085720499823357321679543734365658556904087623169403865775563122004320091491000799945789950231162756323757800884637446568369374069856559766905005785449182351458590723444569085814940240556828007816746376046977726417512239525361494466802410875680243634041666094081620948969356825324314860779064564778636901821784601547833180504401824579061989938125656409589986159419202301752416556816215690901141651230716962307189941129201442621540011292245830116566932311251193270356215898134289898989510680165577947186041495226978137402856497690647166385093555739871126387195163468530753351269681497954498627532039324753580326043871201116513346200921502433958015260806402836920623589585274752347380737626857159333229513690945083916510496061065843636516596312670392231095223555339986729559891422280612467499693921015030644881814165981183888763184229799681124399062621986204668692529388450887837826862161748556248096103980691653239373383585620028888603726844816435325398422880452014479819592425425392283750282485644032141034689651140017204719618954986005147242653314881551733168789935896787570091898373375101100360466687015131586424243652873648454836349517328202152909091832729949121089850862873247642811815395713485877935589476451114544297648261338478573997432318569996056754578861406642447294779416777905183636830112238769059815492847411941500902683638530532794078040297338435650344334557317117784472129909744532437515205638264786589146982408978451233077523978842923038324462183159552967918118846486479133898413846199715258962073080667262794325777383726520298016156504457898615325517258068306268457321883175771601817846798087610037267315687664070755183414731610387867151642403022118186617857030397054732579869529087732282117150956266957966471724405152031336447938160501766532683934489670096129231973280936847479104372274038328052368447562274680763172149471893633548193492833225437022925694826007303030525148827687792003912981670793197250228300455983369833757103581623851958967110843471373934093435822257561700157741132994585005103518632259749849932402040529344913463079820758379259379000508037280202789901409024105182474902552309900554474553602739623454797240885958661421622081188640645070655326076226093970162183345799795034639518627943729708596248599034699318700008336192503695974860899569242061691254969459516843364268105008727016940363865464444347581907066320038070090209874947759485630126287834387773306406336431125891019778712750393677334067914092547740147902751571231821770166875310407291374321433706089456191944318091058072822757218488350962935435392825989222692023682735905694182347999871546183377248750673757804052221123573130320038751457055594553339164491038618883988721035138110083428937023547852680338446216984094903942870622221936226534247108167237500439622595996645928393619199264773179108394874024002529396945468971640584183653823629681505480643098297677690287149442456670328418006277713380626073783502401075519168882456928598408781110890724902024464165612693250156761270419247062462052026130058251832088424307840774219570056264668362591253796991296175485914953569920281082900778483545956515574464111915920850759461134224139002895940884802667234727090682909174427826345347072558241579799285651066768725626375380225935126601204766838453442640756083536095167342503046826252080535673489928813083602073026530753077586330917791807343654276245813193724586937696976900503064308651656899269927958321802825500708577969622412306208253393761476388215351814394223140503355535652146026865980133297435574901774441290506374227577353023730250601677268589633036370536916560317226926172183959664377713788623021161253275091205862712508177901764603562209334419619495326591768162180579587743248185408935101964873708029569586489182564033770512817019085431183461851740436938421074248373165776345357952512777724833391413947092512468951976798492277173288703195770559780078276794053786982740757988139991351952005159544799445583793877623559588937778093905330593673949312598620833945381556156147905645879243649602209357261693480221083669071257054190955539462675939499633277815368778818854709556502591826185955727140482763753766832120877205308374396577541389516464385608611469700319305097679598029616454495453384549577098160929499611795527878273502798450323501867995641313667915710338471038396611459076997206973446556002597391359010250019332229338764464742530775132011286480180612915731262465782443174771675076484435450021446420741489922813033893254493710602402371607485779336383739729427983614804322652590067353275445698226261205857637744282371581649609770170257123472370518340039825280607111266508217555077889439090242030678738441957967052896688040105895204382618672883238844581701958940394520529105850794924170506325712454874408438248281733413802838054991562210773294463689026813094143050330206124526015256721642946008250571793777985940089886536471890843401813442363288143539759485530535136880403227983825291479895775914749326183972727849963734834582361194679676808266723716032872585774930480745593709514710720375654137854207796406679366118491218423208665559638281272558310761913584849548347298029572770508724784149596846176996937097965841228342787993871944503750083396883547984230534700001424248531924742597094117456890012016270738115928715508458652329333766863936803862549321280353926775341091476515587832261589661362127072234788789232285349860613434975793251804171568660844120922417897733873056187134158095114122879806234601644897747646434919724828079668567612753540689046963899246464098869583851513506251680444308393645727352003484671871606002566876628874780907002886652621146076091689264812146981477056983071868402171291464537369993823508402646718661502307318647124407010640083640808071160005773897130417744454197278277845712907176489350665738809380114886648583814816268518476463880941447869568977919786355249836018445047298023145885300339259221382245076396987671886896762635100605082152971031419325425092686159055736201751024284854525046739465893109474673879625552451839871251974524010190928133444479387732450768660778390092565263305901428312911704241892070016632568909690783440311937644948114081896131694070740894221555638007405443914423985522021293849531623467885613198284784756582036518852320308233141348836603558263066930261281203957173828213235183962328800044534070288138500824794849465903083053505695416343543395892013159114728096477059186133520796891983514443469558090559576320392078101760835941226420385298481373923039917739911210766168694665445053098110443971833987618723259665621494691560378500000641266084564361381958542924429731558229768860250689296664059943510213524129217190957069140170374967350431109815979604012056732329887474916457184692066171267739180479141391513277017047924282412502351829016831997052545127231946517238460580446728709486374065448242092796825959489018816650581008486070506883175074957033105237519428849318058523218829738455190431988472051781999495691649277241755523971984531621742845193492704460157767070250532290291902438286228145937967481223991071407556845693907837195392327779759796107894682525885154497209571860399124812374040817695165212734465992343859876502060996059310246492928991600406622396044665584838999629423661851431464158962000353009476543830359073532745206003590186083803573965211314313218340131165796953147620515731391956965396061873833124877217557805590387284189234090328522927150480211849921826990547956471540225575622918481924057505374761340402040574931432607727794987194151477720834513862209005915136211168844136268798607902016277473853911376069868188703970655477452144454680383525513371258985809447034494413886121897324121757078468314650305477157840875311545786008287696876063144273913304312124726448491668428343218262546098610811918997832691672437448730934279080207381471325241019632606249034103012931019682365906100266071884520336316891398048254982545645958547262759321619302433213393297304366325820891708396716732589499428947432952121514534341137856118092102850502539110491042269798397314193293132864140957046258549447635003899583017133646940544094678108695619464574827682781761554894733426054856509597396680093304375294914069361496552103597071990669037912553168186567977835836090506042490046941147370794569115659309768599834274413792113841521025629844107627033271491855019309459541501190834749376985656316685249407352541821634754954377392881404181288121752425312466635411699747394221833599574082593250497335425780856903978079068100374035619678859894474872531052345155734957246706368442245284247298330720617519101161857324872773729938983059630282853861283078056645709222675305551510242190405306476970037439552212539623454245347315780345013168398069850357382276066449723231370210429304862951856429184910717181816011440401606116745795154336956047000657600650914830444181148690925470753860845555627676559734839843277072696116126792625376347987875572962725096000851114895665629706841678042584950443947560695572523814188829248344923494529704911116799243620351582320383719741759507429027144716402463260156679097522946700455282877056704306019679858292801083711775149954473841984260998411645596351054974024570042592416526009527226502931652461883214116516022697800090965340968797290442174246199841033475666482050958533959469441250814569962411192375396640611762110358542693576703263786260664703087479666292072432728221943476138101637419939318981442620970238715900554802466495132302659482974348874211482419464413398966405154313957866277736015538776667987547698575868033659052480846199525366899564769687125951894168894644247349177510028316195937702728723686341936068050814206176281690256714489017448028253370941743680446981191232042321024737736597372745238083253935889907954712952820748217737246751304944659553501800393022701020406418188091500949202289956948054342709728898579459416308158588921099658672452074304118724743389471448866913893190712174248431271404701383472152783331252453286431120796397029355444847137182153984022572966239783595893737279618300875678822256800344372171167614721645044099663407385231927378079435613166003712236507185455965188807416494775926663335682215561628640159479603078746973425810470570409795344074488805819192922748633502360764410650102769305312303005078797412314190330897080886771012359776925441235563871882106374286327922489446427993960287007972879846188023380861290126366366947672876793547332470526476877462580790135625441525995115985268613837245856582886691420386882118913977879494890812110424479789069820323947034359108303659491968861052316152110876716005340819251829598796193778406748891019689421474964438594023283079382329068410204957877908576356462197861899728001925416253005902330604675941540022357172012807000255513520159863073898033553434396696485974288793550007356697639946371379595750575336337147373492848449000658343393404207626188562866182607922769643854153165432253793309876686073726507614194126822448884392423169539021543303484751513301627540213814112646958792009895482982650021005968081891474425797720712797848360990208097374562049311899865477747022004759563520823760726672042150601666497331080245313763629262919869131636999015801035615560671834659702201982413066862253983305838460371690311611520073969433578976598057811851654364443290056253570275556268054495447772188281360618318158717443484762161692332912871901130716302783234552963940877115259943262349373866018336600952087772893710322279351346715322940645972039997688007302389543938312309518220175306752190578874419957257574624754394164118578543471604747268290569905211561520099498213863732994424469581728355906934587348703843580961093032994306083413717524346044330206693659215778952217800867834467351643639472014963069973811406123850668048654782079765940411959916213315503487345126302487337809496013329012537476016422119195991665114155059523576500113793298167270773838543366029466440655487951878025900711085711378837582895517509836656735344085729982495108265581221481565001628013969284508951781644582822187033128889044406166636924988961862026323077200289933030447618317722205448920062222681642591532804653766012783075335490299814834935667781778364814044450392226468616765993105817520668199575631239804864243809773309354916004969539817804398749390944734304125087467921149990500744963873162063315129002626100729397009604517992400691314617328161467117878758749833041210475623932689932665223266497096424849493606685379328934387509986215606094127647774139119913387255829731553612699285042298934245057489372477056769378462009339099254513947619919777937229646432623066465098554691566107812969548624844899975918387072205244339377348025427089807962150777067458740586653327571448854111874167405469295957023089749058189084133348672679313821993691971955324716635269886270602927385740076458466558615854307264197727437185522543558888277422993257488403619203614074194749929717923730941596249488227326085600631860804422064613235145366803042505806187158569514335953874248044735609473887478618903015743431285189567535805611556016189916915305081983863566267701273018588748070201389032101412524256860990426994678862108873313580508429784893017390465505670674713205805747227509339674974312001180884326662267666329849280563357685946399023174819431447192831899704440485131713257651086372336913882097160503945612985546525821058961979348918546485146383314212205628596574711662904861755500523721028107873262784015626784681699659523065290704577145024301387638483342975233077459377390092118459069510256268863135239108884443386953132768561368387830169088649283293897606856061426786679239329007262412497127176040507860657590346858378758118082948019408291225910714561985128414440271040864280944457750913058386513683057677421352144549266215033320338170357872585327046202399405920639120420986180777976409048716773224358505301443669647946996131371969912201713522972769306093818146497608234705445442333227572874936588963909656854426483294189319063167844621632139284243359673564501449455341317584682881647699986627561866097724926711066084191802293772235285427782850982100634112427244724438578726620943981380238700268527926154251465775574210582160882902876967737319519702394506786521986663745120764867855198511530265783766953850004072372480985695166918616076364716414344038178327627384522237019332511691255738499760272255133776473307700243278621649183478496517955934239630773976443653324365356751208431812415792309269415935445594346305738491269217944593123231300575149478709149594285994046571992562418760728179752258796669114751270239882331607958104069221130567763415203967328992454680388986819794032275609227209920804920987219940005454160569835397667660324449564650491855557884504883389077152422840585643383346116163418454588613779562534936750947558559795512824655768525947300547093939742328175447345971887101701762145926743272693617342345159465796969075907684299360542553019090965757831565069536002225752050839294977225008997603862798944387722722435869877227493130136208403979005341576990371309130872844314136400653509014569656169351141638304190715648330259471061006389977699967599639552383037998316318112256438192868439879082268491957129997113346892939573130720081510920449572978419663180797011711377248800575159693662657084049978488458676680238614239667652771583768448814427712978432897855963598246392861257385697802176092857596616387000817985007841211223829652048050558881220978055137459169431939087199573765495513120658362082217590271332428775625716881349792739648923459056598371412702526928383150621809677386070823653438266322200308265834473107954670057138214310178379923932945787728730940187081097229883270340974627223120056655442707985915855203334179145329779789237910684885642990213387152937305607132290550884221956483551656127907779090161269367018059310141985930593219840165464601432142049434126415106842292377773159917292819740142613745388380576113302473406345417294107024666860452501677566896417485362446829117588371811113899941079764729505530807134362051478374890341511275490821140907676750323917690827491285489462933349865529679284827427550365320327787836223618325239484094184161030491766136890299320305875550633608715613431243914815757525783695551750666690326577471511983359552250162765737087837158937216466501576841513164495747779948029680779113178223684432830666630367787810366444522977960195765015800267579726637919627047170157390233848198675969741873224695751856782286622778232271073557176326937799546342432239683144156125508124005220266558011691735486426210418547906674785984984718850357594809864889710733793665012053050228632154867882685047440704340244212926921528478388041973586992125925653982706717783316727617818065982502291915377979759835218694396137012295216071600122888439236054628413577318223555912646243379389446212383714446011764180574073781627805854745952271940848426049173688293520698750624651516580133064223311438185411940733717527877976770911303433120001520532129656630054338769262659515253862483406382615316723692002340415190985462326964024588865780928681234933954028631959486562350418166883266876941534707777487185754242536420205711926190998189425669005271271227029649700562129980096785046106678448546197986972541158720321158061891997888273829163323509505206583121364126884545790296939243390068482342846523133892408006818718157798153073649010449739646497462988533331561241230257232464723902777600745281808379425214981979733146495286301562219368902486608344800844712286241057161384164135968408921009020995427261988457216704250060522220885571184309214628666410757241000890798374107029797341400302572826789762108112280576434644910375796472315217066565008543370069230390915127146628961973651633588091312211435253919906658413157063279001645249452516186172128444459601876181726072682704807234632103716989405428584848446205620899420129957160255568188961702079237735687954262563041768076028659387881978137145837913669107122742322398593072100972536751768123161962707166006975441596427361466570282034584058553952620315112983999207342286474044399350817901778313673062026209678264002716685584326965338720811523716777118419509931221942226755468532055374683002189787243639373334375021928116380063023592096475291718554761344976789742728750036477121516279405518467747798799000891601797892809258872586681935295935814160615444031413875105059318543992022234623558185533529940199727054961987816836076857344551472491993994821311516513891446463037109483222512978448299442516929215932640003525150443047429913951071066019819478723316420463044904409348625340412336746888001293992580324136385767900384008472358160256949195738020179707729937407058469829427018448399068485280318001967205100735371560439123335908777855026824544313722654962520620462653058798670586414653433510980695592973375513872355039482871374969876025222703324910192265674110187517481395091096433267953239681008685949122484808194621854170813593641591878136381202875789920110768670001280897130835615277866862154851972377593202861399037336700370274022829036158277334000676489974065883288047866599098116545455657292093177379797497591095747795382872172406381631584138276245220898765945752916751703015722822797337631113240480269314761802196977000814948385980921351575653515583780109420513341591543777476370458077720919513508545690239789998176669757974513856576482081240693430789547544540203578478639867314063626586468443620160297102646823648704570064349915192090722947225196890937829135398613718319664385494664958391992225476729625710846938533601095572543337969372045607679258139624273602584655348136762039967308974853915307093557545977020740778789097285824689849401723533437656969977184383755382126868275830929626971611083513809718763453642063110875493719897700614230247488605208124562559714840273580294884528231497337908711940066372182818849430486293832454695225519693717672977412125080464759099692772898941482857457018553283632633941193856786964851173903473650594076422329076902471352209653024059888178738668019023109377367477071444578038080567457590440467403498940335774170116174649423168686559591469681646348300284010276702430172170974872974478926924287901631702670113233145366307806064500556121980192044174724005717651817656800066731950270462998626773991702392085374144395450587002972167604356165719186378201648595272105493705091549297069865052692835039048466555942884020553984372781313623803342281661443001133395314637817416549663763555648845547452506351681322039451820145214377252491139725919675888479776614238324601006725905965508319240158402318223334841255068515401568336318509398485664282528713419463788879534951927272859959745433589838513964531423021465602001553714817851422343015880653522251792140662347510449167081973127951468274931315573803982852321350981697122679322308676042740494168051069166892304325933124404144038825292556073646054084555880127567452277531427273347933590136862381201186889078104780360760722964426419159516868717134865225442868500818609564390666085583310386619052615887600944675066166050028291010617620237178183134524783637500362183428874047764385331263042612070659488710293227606589296374142633811787859960944058842896263590031619503541520841509665548026567381329223174704661355473226444653755977339251395727999286096767890229858833651570829908857162615847620573120392150048303486524816415003663720643289736164503771867291977491598531586054998680646873474973423946036640674668509466761976092709401336189397367719990617529980828385105210433335092167943980440342986588316711616141398526534384649514606818429985544298135542404770502167423184223435440925463414861222021219745237235672282473243790501193052825716658871522721980604925272427335737170165673369427900668021494721189208295355480328413498628634345925768079174376745737304299645138145155626017965252881097314600459651633993093398701543552558490778192753283965715296147478833866595250244021731638487640536874283507184882288351236378324734043092439956558585325233943469967205723844886892378559636448285106268562927261180394054116800503842338633575623705721157286483066093567968169014739217315026006855652464709054926588047136449442295353771917491642878728829641659748085030746244170468935015357034041372345932043933561651849630367149945382434233497638782025571264411052564218932527080933695544996594307660201714295271543177789435466773543734082377133522713378326506476318413164825669151216314779544029569215633552130375175025562711800865318273665776745881498945183709795746946315445110086825886949934155123288254609915981383028209478789788697113800451767079834596319622743818427978472545674857915827539253361769900599891308742300180165678249748760842069903918700098146616039958696885817971210279522923848522595250545662442318944288894738672524147040173876675409894244052466739603818497474201575717476256598670444521670872185615124664215342060779063899049557039925281746125829887988297863608857231748658195763709500836229746866082214275644161022265844837767026909469958426107001462401505667330770503312822842149323413653007306708799362379088797920705598498607106945420091600611741446494971822664823459972812447649157553588018836677251786556259171021626344651251642947704413231439950600860535874099122080491465068587088069212383964875353275243681467091172092245338834697399505563340575708667149544147850825486641446390081748026728773814567725490751813950475808978550640921099971287997721657108585466882255717307698829328769717122960293739530253248762147583193908570660182153602004150731305476539470882682100182683059824944222996721025037933053025074111361338625524601987334321184944655539548470298881254056796500191086006227152826828820565096525399799077101546954681597334077646770119471757919599434502276466931011239840456492542445687264087369028631475696490396654328770285320212706110142319929074754646222307175632063813493969795574856021999080720311160483760956532189486887144067949427301945507522397026300944154078321652119905139687859956700052332727115037230503820445524845964693345408237271049098178974218692750319818391444967476237182383220548025666551537711633001397641299186141616122389119410523969494261821270843614723636523455723098398195078986877741521338847153945639381775262678190026970436189569660000384451774425076428417026084053039962445786609635665886203200495582009195380663763568656900409347411248450915291142849189193877486800503381462650575642673139785582931800525558401801110430439340351171796390596586388457744924722912886286201844228871036995863569871524779066019952721400471994779564245558781206995415713020965693881906130718611111137424439352626149792406340884901029141607190308956021340802853032006563828906469213131833289935375360506289151666761275455142822089671661569177155715643642429470012795446589833236283577397720115942576610378766508890602455313916955030747283895484413382685902699188864773695603849141562517119892446659015026221724080667790638970444676955215359165964767920444932034391530677680390090200174998781773551375219210856334119479112224052895531808187647408120718631542141153816910664992459236202889498561627776150738435438352334044328251066203845395643538232121631862430750772747822831138202523828817359296378509007452471274771400350562969780498276934559570593048831173680350119990791368690763273477777506198027322505809727584115223815266119411129722579717534868846006017621251218384056185315942702542553855696464605451183103437011842422456292808048482677050207515200214585277040806073272829660041445163296656618513245260701709304953496566634889752757319575915393830676091691687144249747861979824446012164940114749335080139697521393365502766958693258693880237489753580941886491620931955994052078026561535854740679148219608711428999032261165671886642564508721523495901751511603757439336985478371151104487895386150908020146714079366563935626265275215813445974582455102654751558878819490073348968431677071375596692219864963599045573944804452534391791982311991651868316345108011194356085910380600705052414048966364086563464366376730669645236228205312886712427032296785350643149860990632533084497120576085553189661209752379170754188369292056180614785758788037750581655871543662185524416740081564718326327306224420035370388459830321202652333661493373374115282944787796800401836045588903112333400746284329853836805043481210844299233963637461570402774127661321752306506092053071159806330395484921029162581053728174070452273279402844317717236042613947338870243852067612327751349145155127211133284992224580732914767351129952122272430914946349645501185719105357171021543769097633915534766833961179292054267337307048097281215206068606281264986651792731863705477706294786333463450409169615461675043627064517973767696942111302930558456216079551400560522613826295086304722007544383793030890016126270582384924581295654161545879522366923142133754313282242437436886534397558928554402553133523922145610895945836581265318124552023682728438569756735150491282732069140723979107445536925459457965340289620129269230484637519035700105087100733189214789792235424921819613159849248209692123543264416803039780330041134931697081359859175205415711065127973343827931531752987763743489744717340891363948021795905646734927042307810003248593331167282185546651631688629094477824161504776024161187485686505747849121874789348087644788368799501813128683744128549300365605994185528643396856076313444686046538794718920233559944015749669921047463365080859313067652221504318373497496070345019995080734222171913105293945297403128248510234736994835232887411618380718604846823382086228206935080021956260273447816374440933154951458693959297692000869228369880004215391039828747151696543034565550671155487001537646124515188053737618144386034109473320138159431546410245212866439440987956928818292904066897159975912873430528567144824687528756104264606226707573173836678293006241162415049116907466589287850209924128884356115562964448837165956805987422236845423530712034642340145620531345163266492240918046912683884665374633791741486796242738053021617868891480054267375666026810484656269783047768411123066751882679887585374669947664912844538947613460039053093147959528991232879552724990894331635845806177834176962742442808436398192690038897024458941915361366125042987043338405427241778324699834763187420952209678792723229979852372286705760658777286626369915264887021374523312181327537142657470834115486997943204085420717428121827780401682516693075357622410772730940306636635757429909740586080484125570024852301881128305453715531121318333183740033874257270818237751374880256641670956049983125958256027389517688944858680661911342556658593122966429119571550228666018557110651951085118642688482786518041307925228454169121680388178819530632523361545630589955421202090594256469527413001349908227692473065108747305832705373445714019781859711447936496343865864228098378509399264823994142522585752725092867877664075480329765617500515823580082154321959979366926582092693042031237618706329304935726692756711369194420698638176250853418996627634131610335915007062112556320904586018286565853625711603573247947532892022524486511797801504097396026475433788300005332773369825701736646615057085681644756974459468665416355653479538386146817720928721096606651278560160794820179041872208511007521558394498733911053127632804768708464633879787707138784441939548792131751169406301686546317708175955020316588170883330720006699356901433992494873374186568841638288760459453508225835966183142060089838170677194876205825695529868036840369949169515827167226532504038543999111848369558288332778500742496423882888844261737065181428547376703850311502508716691192387933949578620686139253135683134925198482933850988552364560839684293407628066028527922768957867041236599675579588695082771109539332993396312790452776633821720775981653513864642186650728350746507946199991631232610942618734413707713078206186216624352118866595501198256788040841105664814819015260055353288230166228198673631677501808155311128668332844859873941898495569956023653194208799872076615398825029366615704305915407786494357589871100477441353317667641032445795023145109287033817832273824110474390396358085524851644400260318325425913738539719615453898534503013384192252184308207751558530728038776396412899153160349818190990313442682627540721624888591329650391884074567291573621045163740911904709255254301620323925355469370738926468551476712522529272430141526339971105443142384340074447550652106011864814628685934675125386712534809758430292168480476844165225981666689416355467271130921261746474888745347724335072484461877105699536350088957227349981550990010183080256972759674098712735946886521854232191915048325089510224482273524250940889007188479284608278740843202488367462617219121014295705518053873011299954121650540021529538263466829570067530125539898845779703366797607724081294612798302628166025877743671881107611393649330237223081132302664327493587115086240940082579115463038481521052375301225876846498434925951019123001366901999173646750367424015138379430701283038444801541351758973187686115869065625261594101947695844575848606333263057571451857373903338020085451750358380880889360053232939530088471638887290713711224989683999883014599469863384381435057542961344736414930294980849751781059331096138245568099626583377886729848525856192477337416925400569533201808649789551850467480212454812594087245495292661674215846858049851127655652275141025714074957510842085637532746085936902535351371357812359912465381095825804492806930833617382236547008495338088422964924271268970977268416723243045496953889005055748989055886558711389547028292924000825635088540856170561508955138148254050468220147153919085672885927488366496877350356326402468955080252314327723067785038207077827155368137600466945886375322947222740856045678588241745996684451318853543660542821507771466686508572817407286053348727188008452843365822785946078764307856730565161378281499014128064887399014041078129504891544220938836565414426222597362577111656519864853831683869568126870877035929059629110650919947358196744228438674918390467392992287670267811036313579822747752294197239747916589939880483217051419016156073884691617518465772113410752931294257757297674853754103410805266708523750870726274329117852471651615131182926247203512037864442181117031839557231805736448055248145643132281440486180108894518277235075295586908917713700129893340466005011404866487192470276467968732882815220680228317487381464396419185023429886150318439949512171367883739910459120516567398310519126468884105834804522197643592139311948155076593898962137061614518039207558197206405031409374841730346224599402726334422978456213877843719165811770130864176440416522700414984833601153730827610295667133247324463470394658028174020379100153332620318126736617568231630764193109336295082428391228949144475503249284482292834336003084323507041410276126049857611973910488861938915130690182986168304524522070661450795475827571220598893386417351135972408871810387615273408118418488534812827175627933507167732851794578491114901346410193887181294236243528307071459973762657360050931151030459739235976659398391058175607816122613847413571141422610761318130796274539009673992640104427116354346041052115057270635434359427262650173533202915071018664897229826476849370049289930462290441189724083387522349972443649681333200777011762381099064300723391442460754801038866473498555545545622701054372647791750179602490332579472610174230094275084235134481706514674276409143834452906021023156818131299340337613565391738994534951136509427821377055115756487439614366783775934926179807880048573195572515061929815941731215870705392495337115159068251718332713540081889176583923400721182929882732297495545566335730218860534750590388599038457534400322418531303193027705088042489612452268023611638092250393178967139470324994209676134299209735918202094219457434258611052496688498760339667007174893637784017760812729187349977748354026413930340032634507520439361435834991313550399553254200371523439154901301619949046919963779495619188038111158833287834359712799545588289782270666364975690761923218357576105461414473628775862482387507123713458321019140800620426646593338552365272237989494128339719975184455166577500404286040295727566641455249266161629822910237862712525464773348304052979504279869496355947645177831004993491685906902818291733442133808157746910730250505436288149258729715976614579392899667012851282037812852960819237074367125281547504114078582068771899717443022254883998635450004994086619600570539186606769285056435548349962343137377245811624670820150898424063826278904103151817184890452120216594675605459350874877235894845772661292358678736291362065877782541681179084620279826110641266273976835785850768136032460229745309023091962356893010620606460561539779378893105558484129379678530171239812102183954315279397495876585676956402134134372739630742267417226617279746649914306422138281176159399213739619167855716055169219457364740578507660086504335022807050174673726767773750614645752637617290230720923440661937805073140171624586471618348833762330079067160238692029543687252309841226928770080345056664006415727004679154699418633781377036837371946982825892406548236556987844213388317436183346352860612405313328758348782521228597183199441955637808165244589327743196369490807768270014007586909932649702982325285049196875228768570785790558860001347302213861756920586276865517847791047674687420453250965078495544835764551169525035353394456976792995558874264446353567423713472669496230236112452686927377211825088137586914748773735443312022262848491863556025677321764134124441718469599192160795904305983375912194004744995595038666673993002642871061543580676228070768646329986442463800028868713166560602785956544554693248867010525727888702611674786918700029471086487858147524957069223841119335333847439102353494879380591731026676748926115114984382461052289046226101957693146105006849367746443657657237629098786006840340763100834413329343760393244476060738070137366954794898739195873536332294141387899834864658054318459937027615370281667568109755802121977826635935501252511696762590148950667121280059097845061277381832751804226146666916888513564248131987527952422347891135789724024101510606307607284738487231926927600298186372558828134516836149013784177136249627099102452071170333943370841113745346854642082626321108055420395706219804159135219202912509088338987833825108252463516327818848048023285907630504759249149371477743131489291006257915900096536857030898421497845755635580119145164564860371824207622015603219472463298042079807377469724856535479423893718719827338669537543787741924625308474716522847490550526673854405680912152604687638652113216663092719477977722181408058740044115119018686524965266521588166914088080793641103042554507210251886407445020974524664845375533845379941743724333323783586144159863946611540304168080745037327647700750624463619240619432526857494651308410451924512576777115791323601784774062092729478321342457183995024469070157924300095187296146959699676346676904920086073358716332248357259706372068252276640312570636073614683608842185726999602725742540782051306083372837064963221800346600500865334163285420134997096873974178401413565817945062754145949430010113434574369750810913389067533677230148727863390915783266750051790889456524142692892917137621988496746366126985511330419621517473246616532065726457801203720752835151554337132538574354877368357153998599705998353949372191326744587055958693099467080357010150479094873337094107253025339345027974810658629383968818079913141515227974997190822222033519596171024597193807649945292630890336093686578570413231001303445145687015820447797726460756513202204226456390114717426212636309460075269132803549473775259362892928737820971024075582252972762801269028939023938033417172375556674469947507918024338363784368970566257420560443267474692229906256376688501676694516608249793832592614497452775803392221859632360921679958913166373540247247283236080013441273260546077434357824560298123083050776375378803506988529808054842029204779843724627140172855910517135904018329208092946804479336325077447749869667424337590724775582909349864059694125585293074738289130313728222517090144130607709245613124211320775949243525164932405485637209362653662604748895662120712912459203559697896412053851491308183787530502675024709090119028227410612216663316652890126739261226675748159222104795488532079739326734121313447649024595974054576355731699879995874271268937028418986145391943650821364528225645020222236056786420222523878178307514332517147023390650057548322187094468646730855366580241048131604564062127391830198338836690371014227893454707538918944821341735969475273312169918397460940402525544125557097332412648179145023958612131959647663737826353335232190328873447340237991240360698540443781229009826112713629237935281539420292498357735223564546891544823370743547956709969856309450516991952309807640837323720785635930912080128834455340768918362714925418987077764359924081973914922079550099647907323496431184955216221846005809688107470230576668187110690923700058727066653418654846514546662033681980870845869418608792821987112392111358138492216654149790363557529245415741030874943033627262555754318600362855123446287566473569767802119261723797574095039916991745271665520891538508297353265292594783277775142224764394831667774729981931064229655324631637415757154641451632593314831922582435109076414038669269082581537144938542111340701733466131991331067986791218293107356185166973390550465493700005241780524264883544104947771202086914556177944428431092603217647305359035159932875992338535247210760733906357411491072327767647930230379186394639896044179631296565507779656273366558801372926531156518995684307683775542389444103230985807519642401896758894564116784322182182966986331998683536657949241273679372279178694093933262143930056930071979933158732517779210028847859741442033163096997497223447627830877282827294217191098398200329176856281492821691687326453663272801267984946708190441804083996580803084678740278372167936890290388547914867965986634187103928849249891374018341970827304674763051701403457473849838106311743187024769345297816123426400008439437179097752541793024626085837497113567770943099507385712626988025403991459702080467068780758607855179977798256441431383009170070802065059878238884127903833207785757184292258188763697920524527945635121754013577165959909108132509129394209202132583331256699326614902003472773947488554931314766101501970308857809167177175447300340666463410032707604179615432267707307299035860127641456059378154203634177285687734438303826447500935597596859023699975082396120510098241382537923167699917689174799514499895552058537103311623485875049433662953171181150097450285207325458526256567851946503788957298171233289356142610707201660106995911298792645182476103538555818518151867788807469199177165259742267857685333429009668562182258117264102985347232081721736724766865351961836076142491256187619560186123574650515013643248083436336650750353610923129897472827751175699357721635493157116205851377649168306500970886134929313496761947914705188793319478827020134194271845728459891977156924525386293994426561938749368100397834970283926511299636233537848743917416166725865489074047708885276430028082528426528964503192414647941380080850869936915534527128958292931489425250787930765330629120807455977335999732133848275622820637095369929759303097154089265549758245258825980320134011527913696308991032122395601388991935809793375204836787145899139880399428997675540290248379102139140486029337699070532257118023865675739526721092807369545784579812056211569546056206874408681846062717086911537347473454605933194093470888151321675570978808649028162496187811586917968084199516054957306146573044678324080061950573890229895073130629969108361466340915161139283786823516556812720910076895240027853687204623153885714561650257169635799099156253813168229121956360737861852949212870415503091181549849594340569083071191937023281498186361659702359477974734448127770568386389596975264023887588108852571003425622565473674243362065102272478433296498758397665751645650806893323806378887486090802332589596058099432828153746148380692754026235076412525874287229548696298878432391169331506124694780105656234561402838183694990253321938701299426134026911339171081711268021387886001824203846730945896991400651379833946111375822019470400284403086112809008290343038529991189666854807078308072034298241950481915287050803519766399264741781498109839649643700706143828778475168561338630986827229260803449687581662002129149896265054935930810074296868813583221187305000007155324495159813365598378298587083484947954205973819724919219828664487704847458360053792357017386062887273520599403202157649597394442790654201763746149734787226027279982568455424209259380998267423523946571950547465711785123792069672059945686281021071241179314170372493172970635289962207600722865233266323248392928629795539301492034222308219250577739276758335604639076229597072493464016382499149180493403039865859464806743071271924709499929111268817969832313644685908946129927188910187010858212814496377968877632088296187805263977548870264302613609150782936245878141776636102562960538692533951887004001141959256662014112118453226441720205126438255748375303618679861033373827671800125145728850745063082074693230109910042352257656412922865973992725302957139873471366807507605720083601261120321145511171273107560702095336449246623499138253246423333374822978810339187707757267094248059623358356817852557212512356097381559424592842288829131565359820332882287953310737690703792164692589611514401244253957570542404313421503955471444700173747497835332774701248125482152943002345205951195513297626561843359953315855870724595755335208335576104106373186681423940703775726921105235767149317970896669355054879806854794478020070368350949141724161323908350324999957648036325312927700126686723265688967079206644013540372036863375629630375076079813976319689442732139131145315365397085240498822286490204746844774005702610351028632393252181345618955843371582758219397633249544379550498768333842096235042477263102439995125298368190338074047630952115890778125234048841554438216956155429293327345620934506397557936998193402678026455610028904963005528585807178246823577188117190121120008527354334539764423615415619718236987429968426690475429008069077718798645445344150477414107375376641161984504797028007032574915524969144985549051265909739232304283962728697570666060348273904782914465799461942154233630605913020555365803679523206685923536936538367109681403016380014563497682611198713505360755744241200413326337645618589328552196652684988424134335029422264988506312963456169448635738801034390509541839788417882250337408919922640800247960824326425905470082332219129689671907649452495522222999631032846699793163606158070604533210463463601477275943590893757306699430423406200389440806570271205795020814962275894187864681126380724803091807619477480436777784952787163311883359263864656452958744918747741560964460336020742658016514883313708670778311407462485488348638728601315411661317373589722161874398498728808292651685318811923492179114622001228344845878611992850908827056912685799516637952265597021237753319349494816779018418186358979532853698690327030013310031234604614239142798165223803435204840753832582461952128637905695887653939067092879457201964311315765207100575571787598035152245268069484466862525504521524201471938547166687172210387741070902689799033703214595841021244035827128470356918176727198750127164078226454865268031150305034501753892387689053980904163216907489497293517482701423607487019578197496655045895254908589973873690227050729075353142050985185404268553737767675321308689266634985128456109715204441043081816203448309114452907950175185781158652115035010954072268916126764495437160970612311541695451359036609670852107186438154951717302073228976111327759312381430996700914008584938413440965211822100158019346871192644525896386557427061502166239446698386045970775943704456086971601305917896063480695583260813294477275060445451703175151704748956023812131654259755064466856120185919848595785975325134763663859102812307773284308488229392797697444536863474643107974422233714806047674985896571016015002127055818783831069844391659482998247350744675929442717180388213088100937459556547773251996517335177253289657285235663257861160354015125068967230280278414923031727341742438915027676084334051974286632666455970273788307263121728641787344445605217625614337520261625962737393299008835939998714316732410139907447700392551573475831866761344431681839234912800067983268145996653199158494206751654562523352737428089341194735190875785779086887761831262613663559999638800117723646064152010226545758720165618584710272901040256954115091151383371330706076847672746817208800772415358576535831634474000077761397161585651298751021310641937425431677043449227288670060106644446850350895263669047141050261280760984250172418531567733304143212770089568768439706418128980767274337807945515653226232196627702794658014400546846722641861489499985272237958653811722839702970703471080004631717970016411672039693269851671359840566869272422989035345133833463496266866771162235168904151723542150926789421134121888522364927430986064088591568837813181154824429391751982487530300531305566847060950970088823560201875687721057773095310883541779288156115843551397075036589229506412102676108708317626717612770082566341596312819172701442083354053199426511687862647087174046367193901655728358980103644154660892698585805864249550825607156109012255539699090321769104243948509383802597069247294497870858586153428225126010057494869269984003299164930547367766279776485546836966868879722944361243412785961888844382870497081189211318712428360322778755047073348418685856684201975425185832656084212802939987428122755222458423342509736708193566636927113286814020123822668978506241486887297487531884996510460982284035594513481517329779739515607591402212473320938486932333323112868796040697204584868833083893956003483364586347081539272914911340418605280047854345401992613041036846875094273353104293235667217267516864907738666235490827313898715727527150906410026802550430335577371244753931375027764314373998811772314476961165512894231237851598862623058977370926668879118524067529675154975089850366935928542595344571457056666234531645033306287038272482681107052397898837290692523006522089049670503807504942183167195176705750104689850234788734883788275116418513292523242593481176292248263666249111941394712010203744506972739223483506324272751379606919650251384728035583493833145607063542406359964198486681519400150979752882344734411410097747199301323910871255463738544286443219405236903108092130623468506154765540480926599228112247700021935418331133631041804378923793100888802973316918264873650098012260781719528195746756406928561615200811748433753572836743162436907912167818396555728327246189858993223944808926934482996816305447534182192263089815845525811860620887635946660196328575501902454962515328251098681470119357568675927508342697255970811824602117215585899716538970549471031714674839939455508302691124138662993976192214772527418203372497385415321846425705287576902798008872750596802192983818208080369965252293059904740883098596612387041820241643322014916388990353037328522414092148060924711533590228463478781494739042355539723388740775411833788652224785710808649597723039693473141156005728664238217955476830824110939801657332872447946936245530659527297059576509349223668741170872045195987911028453891711826964510831354732085208947927024661974057766942164864856861447800869005792853886968391080012721942263065293270282269307151910700953429375867538647946987792287271073333275385011899142377933195002746836967286167729523570373989698709776998503436711276999198325491887634460019387140750535793753770540838511737539491522642885329697862580316464540429194266798016244685862982847227610057794651379900884590862528181469588407939091648239549391347089629552148148580790425826904604511343689340356287291396485907452728221334396674757895505830210322411815866161158298604069983259217036963618851697938349383839436387373500591485710600582861739028482640768811171033367398399054518889940643967997108401820745159321109895490805980561144738699349868986169017700975548631089801553923003378673104899673581640463640586590247280225083119551563776038378865327055872890743915295453942455583177089358242029806193805056798419039585552720184540448005334973093691200851677379724028102402368310060811533270095292553243906361655507190742043990147931629482038938757436889127353667275316669326192031408223456904955397765055449167560581654197640526748196322183023342816519112291374685201866475691506090850497708213806433422832153809664969539580661080704866387022481624624338877982725695463736579989043577403017220747719379473784566990004413539596465246649163654251022185319333128790967554202604772649017506346434310287972876943901446681344023365305516985874585055934770239572254331876193209178913690497056991449313126689181923517174723262746199540277836296491373844379424797790385404536594904267007652979103148302727932659161710483973986867330438599659972370372896643813506254477966531125241042098875721945773054532042209472951404461736787364865908964805224331779998634992223402225036365201219150214869068770748649553199386587020436589109855300974652889412228600730654413810130592443926443693405019951734124345853323373216521608279844162409353109847053753299056619103422775026631928165864559765416211610332401230336358423645627752272710788354362887447182534464155812947461717246220609311615768030109275538859033904400009306954794903781157291530492844010202674308640002762544628626422083632717241856591906824874315464025065448808492150555249401050626161258048147025645266569997102842762705122917172855403042704511879886702856439057054803700193481508758236159810780260909597378664639132592269434809739842218231935332359161146868379856176442957691685145534896159857510980793252649484804718509151203276233925261252671992031247019134076367510000903097053482008032355053457223631660234579850215427380282287653323799781736495855486189878796552838250133891366703813073088652143819446749268841273217161803930088036464156248490554157502144467775569899100203833073899821083776309434589386242731375217209298288777117427004740745101613974090429990441786241511961405311525785385866977128732831998663851791457504583674655050655705667315212325970567538751532859115200898884704441144589015941391777949772500851497760553428985403140586088730031336876679277938325262603968057400724309128283658547828617609570678715267322151821841458110977271268753118463746183531543174398631817065769345137353281457417992850592118340004647606596023626768864241712265059489281935856616385667329476648925409954737675800401162305585677496115427069575210916652920062816123431277808564268122941640278424195702818396321279718798323688392048442700901565255056805295421434008938429515622019621906063421186723322723529308240719601928523515781692467293041946794739952142898768242835934766286934805659661153075877268393298664145334254674477308383857666117534204071657235898167878433017434483492386990447739727175126131256687262642616465974276437906882654077750564347115222208107743491021999056379568617848542209774832462689262596546235669386676932082026053918921947428227656749782113008089517260872245378030319724355603532388013930477526160103972914957542875046716957714571223044919328763547517197234009303882805464498240946852752458721011774683236516929928542866010080432243245829826758103418405829728271009570199854443373434664635292695302089791139880395049172607979523122234845451087503067469260807154665019049314050819366185257948836293894592449832389579737854400327837963145669428448960715313880773615551333814022567795605945603161157441878214164757565826456056239611591926491834283223704481196765960822738037274881410395987628810983240230053897055832319093830372402851890423578802995215109042099002073641623794522571178704414822830469151298068095136874258532665158759685322960053551287201638100660474310880352146454434854988169771041726928369449597091514553622254254752746375288854201745107889261175530484443756768422555236181017183244010986535149442739992715655696177339288598566716467292187616857431769145194783424954709716962660278088526579543166717679957342059312115019432242142453155150165848911612230611622689823997526945531653021512456531793837590715702284438907376063790397167928948644013039173817436462023448031530800222819544816189207987923296849890255651490515116300273376252689826724007797967929481006044540892613248065168372037193287596151198127092356469002665215281917281944388961100902159273404366833952438016031768035100905956837617760394224857456993212600755110922594937046881309087048791520916228648916082277139668083132742611431227898126453693896493422156537672152849903675087216163025383183130398779099828267738027842843494077401003751399871580496421086806555213369287153455842863855281567329914487577442483644483066359506126044079043747776947496564608805013997924783891209844950036225116706938839565835354184466064976778502651581202894094746602844497520740148526561412596184426641061617843629557903737156207363851055234656754962745100613543833306799168939213184616883039703456552394201927287709988894537020857544059981412969513890611314165836988714347306959657484535241522198619788338987813253151115351902315500129603372445309129525202646184357917940262235970866591032594444013651363594916697667860261942104691988178838884552668469586318720039511226914101020769210854773474882634916335838063867751486987937147828033999567127140287949219451910985241027710524058869138225768929684926208744827156585980734475267159697459458435626109151600794436161032346248988803532980584129252574909986352351471975374532397871925171112574147905890200054659154102673533485703398444928674741549860233564421118370507603409520277058517953034241848319101400359903127866354672672275128252947703946946019069355109861497917833747366594018901432795632906806212108512726082788885574918398579593418944179311791309607147328393512383496851014813627490928755008158274913076324720234697664106037393476386379487804779695651510673776452902968697584351926696745250931996807039690387314833364086405404389768516744190454816091163883737647785876789163871243852999738484647689872037227997377776463882787422370185241721785288632163912954555177058158469213236959309985893215355301660983036587122654159714595103422541953858254553385810019904418019224730276859410532158126747655671983314968886180336815737815728167622775413061110302457721874561950531466668841521612286782044686181043282146639094816326064768018336112445719851388758241437729974816158822143590744668920881393624888140441124528890564168873496581225676514295387421907834555346791345567463657398390693719655363469641290267055468101551367601308247530235679388990680920382098046057828830634294720971534931048584747011756874329003705638758785938012973081741584053580996750655542361265051943942280055484003654136558322623151929465317620225218701964197852399749228818207492056452161325390724670529037071834746732392999418662248634930861453526672258966651239042931699494618456762056104076038380125189431545662942620332427515758900862098512284072746951810604182488268024633024453521050811917822161187549210070484684780992897299765631342465771687940972905285869616214168848410591533481612221833588324674057128870926490843581370745635754297460790144258801491418571223582811915817227355487862597604038607613865457232801428331743779941957046912609758423550689183326133922164456824767200307878485839859123918821231941078124674809059592569418078882500149572662942410163768821250702121224454305183353027849810550067215065478697239879104141122896977974685955870150076155944746913973866698406561529193505628341709919700714584358799235619143884090616382575825103209601183189078856172969290828524764123853605642846491261741790638115706958544684647797505198035476355588151839906469268245069533939487827946486951253758677455994379809933270239825710482453358574489857447052963217158024220878763887447549694285577104037752067836464725992688549584225846130974029279963188139639207272246426882051049362639081065892267122041555331735506140583585241954122742419227687214179839711709485049372208865096777510128206155450123606577036195490561283764223770306688562639993073134460682641467156093964271518345867645157099941476027865141774066400114965048228864968164083792071114995991081441451826001721730156263263324162221069385202883234767270995633015890304233736710541392801563061538364483171106172036880686558318434214548552433967724496052408805617257555449165863003043950217103424257214121769478992368126914056040814385418003414394831957438754954610450215381596208579842039950256289748775886853284372214734778882680114308379060129845556268195926607833364163782300361854991310366931573293825280702245129852263321785660752830292068590025221895076235717611745023277576841506821265208310299009144502939408603718033517176138792565124142000627160759727700675099231996635528834056864574741032725954525652702206160492787479758784682753890451482704977061381908379297367422174718875875077681161105466857143269240404459933496357582527779246044362794874408681498048605760799880641451379845738926111395907782084889343988749047831555276450838642009835115107075097436186126509108643934647872416679802768026477574645448407270497121891419502644049221395882205313892334481359705961959329667729101024393017067937193024772313816439986121890242004766957918174227400017250211007671983477003469132195720271017713737889490152441369403583305183754959093613891229028288184607254602423661847827152787420303994088531282944250310394998605038747061662618179907314066579400121028560907874609572903772707906689960302347853354462971669892512345614855680622845404314801141556469649708686090868222915775431454433250581348964741295432960592637807849865887480127849689472395739737349533527309386422954965722352473110898417368238922624864700684408744051861692353085036108284331728432513898242809723374229726187215605011892270378776814342772780128003286256055665444025362384747573924945227346972119427242633051289949582880384478292937907148399229875922631722822588238362607001407058925871536510442939751043928474855612104156968709603608713979307180704076421193099413310033092971370290714963137729326103908469404447304269470769023200354815852515876701629133574943385843763473183331991069359854906568847550248498939429759725819053265281623161882618238857056000231256963698326345549181640546276047105465785962890061851654136034448245483633881084234237254937120894107474568430750417197523054603968520049339491743264537907932085440845525130325252043891064069927948325024063579247670318991169283368625554606557311533080567354477578125592217905776936666924716404732804745933143524773117850542605232764215834460629286074633641133257812122305904475954276908564855132848841613318494103426014410332015654641717363754339098939922185087197680521362965511177021749020686561159288075283562880709719492275701028724447729724925833383206481736650924646284263510012589516648064722568224534137454729161196569184082503972696790897274001344082885248186656404030073988135432911463556930832752253092941459824476824065369797987158582653702392798309873180496419921521122542162228857414329190330557281542561210894707289550017144081108587027114110250133422357984608480724433639402056831556591727425703604673460420068938884195770546740177168937882809548632173676117187255266011676078976562078695358886693827242633004329328237776163654631956774033151512834022756902693375371087571983439822712100989448954244174594176611891405768602455123405666921405424782936732067246500010574498475426693390362052597457318065087597688757054796277500930289124719318438256839633579769204092901223500861617081645593028320461418376866532847599620455667026391418936492833974049751544959555827969280130330901648852832557934804790126058968972789889224008323923406899379829088135141767188292300729200340171899931413543314517323325178221403800443796375998248626618076362881935524409001221477301873294489330533142287694951320378595145783570222784395840686940673221411382235559554554506157209954092659721935870514468866976695929092112072994037006411403768235273863189929095480877065290910791921790810377841284995394048487385714639009315865847062135188205905504840253233354234192928595148382179576531384562108202955369387179122396777910211967668863032308190933694034523163425252149078374229175774815102704662357327714625838999430380522421880047823749126036096334660125537022328310269885436228803477326457740357170683352850695627018405594689148018467008744755588229068940054777919227137995522847331508006995483903506567336373291287697905087214306673220490421459328256600760120937909676624354720684560701484419015094997565582966276479815400551182165604464984149504338644992794361481835473646559247451876607418229793857951154049338421188325161047283317518409246610862820511744569619108257921111685400529032530044498212972750792828332963000837487525150471582375323747296904395804162608722839798921953910616962224158577745818652711688786498907583267423554419681011196557800810044366813143814580834505168830782662224569490329339460116824378638183974619953925115231582669170173869826993147910345121762888626014701002244850246293688347899013840037458507998610729695055406176062406811111355909624243146566268376988782672646307247669840425249209022377762094188152928441530898622305090406756405956027775833370704429456399561305643316650170935777989918801483945935044731926191281211570192226006112234845712688184802337805228338015379164820497063599545837393498953017319211923999912926759729516458024524199103132109225660930006355171805308149044794380948502103706002087753990011816961746328149254845371813950137472908481474603750432862074639231409371220481322729112150740262996139052728284248602818414425749664780156400529880611568662107586183178355517216368505393763713874093613474606449601121884688670917558539037186358670655249518768649109812723730547822923201704302229620629212667006486211856679403362604891669255583471741458304153227022630146943086450073938312424833747487453341882060268083674340352972289725941864478654346415504695589417906735921606281904667021390798279102968712259653543650312225807694984505708566853164345993282168498953810853602322952246765582790632188208316305129649864237945158633069822557608140521663699460922069754633714579141740665387472456476010699605355177032933209489654075671014303531652656573572813489230479697826732980929806721995952414055164998703616531632687629626658833894378672532371266857197804475835102400235138399892532498679247383957949161335552073609923793978292163549430900668867320760555191252012296132526188683290247489250390251358879615056617329909903699369300300153871885942730226579640648101233371106728640630660354261785118140138045561937910548837851038630866455779787813317505711963389369611353166131265529483339046979427539228670220740669874412162240049461039878235223342207766420566727590786462173315520320096109173931955820382740887193115184082007016216119061885705329689829335484061568654962044298470999184537144200752482715264297815717768958627077916176835843439066772306962085580605767169599714567136382638314532306538232122407092459596350525870030528071821747340703240742335132834705927724788157693912002366299431749423304449136358001497133335190362087814492252138416164406694909423470865190728292064426239080133481323476616903194273450175401623837399617104597814326117424867841675899056901632490023551480168181087868665136068587893339653141879505811882733107016321868312225341088515951601835200143695571823459046442944840501608024205656613001469515159162068702413306120407322766708048053054556096330650501599755905956855188065543341649331889339013315068979575469189444096908229294653440256691937029762296950605102125280346832116764209177055059607985597854986664971164325934689150781688583784593134395402957524857503357062244590576293345083434406971208949605550775018358162838235368415838422032630705404968977874295216584604701001107982314137348418373635716446934043641161967212877705163696172868481040455804672251891177070058760929422957936310708908861180202580836296665856100302114382694635300843961633538719150535105337895830511191104743321654103861846225946196742211634438162872264695003416012638121193718091104318778009509367509373512829916197359927281329569157514787699643231184787653829155956577175507521945873518215681965148572567230716502263589852307672645953917120843615976753925883391868867839026551851109513976456167682170697924083539121959701782342698573953420359419127843996110341270308469538308341863419988336361595173394889703539692641032339324034920665900563059343317747869525303105509335378784943575997335085490058109024255215809633168771741160633569532375190634352770380108153382559288005463961966969120018440180333488782540261136244822316341213941316136306125390139940271540460488458622378223925097938565593832524357448599299917132118917534262776365087044128528612470063509689215264336262842012064995056934892283130893306136955002520487461780649169494676683990655266565156598989544026136419156225050372193250560098532271612238481726552707825774820308515014987523536299027850531219101517302415415252136358565668050663464926123241109678139596127997181112659677205585694072968847874321058143275287457264493667054081793450856181724768305984706414249462337035909963605947914702717253681692905919923307512290393343681254137533610554623617845021346829441893370274749122450719124482527616984174538174543432108570926895963574458138797709921804416623321296345362129136949412388667980052873033787724385811778182022567058668072605105160002788558877670576059723372233635733374238664917857346162419811383261968308203845233810959631706993312998092916605673194844059599731032697313643006759137325700296388725953757834024462845326754399818878086826056909334038176175482386641623382759969737579321261221277808802472479098367778858099320714222622930933118300106723522047735758453802742199940969893571720289631578183364978420820104223710917052310163627941111264987230968452807547635016725547674478431468841424041078770755878269610465613193164572879074572105854709703206508907846983090336525856856257370648644810550196024077849892276335269613467185340723808202878143732399186133126361596748215827936184668094137238794094518131175157847762180800050869440863375166777640983205377895276948765102597118223551341014442194226869151074861408019716171442201751770267145289098637704277498544223125100113993856140349336182976565682828042661738876733468883374631900859585269228883344029340234061895757714186982719477942974275506094465367902830664693783251198157399730655049078689690170213812234498133707535127293477325954212055964532317016838787811158622804305555797717803627119004893184197425514251943304187075104500123138531457937000667781976412892041007892891901175390088243141793511506239875914119045678496972848527965391905431949450250191058137402550256163119085381625117525490117917278291992999132479352007392504060544623105146871319276808657821831910468777223558504616322613247542994019549732307526471043314184327680318320971176168083038200645618795720053213624870149086307001166792077838188617006554592767245658687567732459234478867547553565805275330075335746967009940232180574126206904351368513189795328590439044042063896193761573554194804288919179348587423309786580759744898698607646827675418332852175454126485273088754766839349057872923710931716435465161448963992779931090351510553940459858191190358262462228270528887307098671605711901540294724583367886138728868950375231480017606416772493149942371849001487800870037002225951620247143973850969438206926557355820707718761931418538889286039579391746354741351845635691607297577359002498664559557113619423916082509673996387442721713404058060575699665635235738125664259956150768749273798002730876499088563638821805516264815073176753656959034666179434539992622771605851131051245941161401509522642770801263469495578371222194227055962705068282096591832312396327648017370420353919492021430967896404858366216345371670601920988175056041532914768973161835679713583737347441464867470749991574378980221348199722524394233628943756259009178982215024507243734630618821300711280160174196474079056623138945725738204008798406555159676541342869962940257955410623728735632743162854037856005454097725559869414771738802062037507762428076310651978330698065910046199141117242838361155525534521770830659190819966288261454971615791012258648843329311907905983555412766236907730468229062339653378749063975654010238022697546293147819309033905947208313141230581753126748328665967553423666832413818601446395175153827230847865643950750007572186318350209695483400033382905194275498492538228526643886562826717940285945730850564741091465448553648167251578849472965697542860042004253153231183343028913548555309048272981415262534157998145316788024601082206724523871424763761310405667745381792789144134062629864345180130458349139133080503975117061294474951542090184002933518819729033147073987433680457660176412144515738309944561175613943985659915938519435903482097558949960223149911763783544499335519762391367270067693252188328949822937916489144447591493340822417499411468386708074654224865202585862001265249183462691428396203148387723056750161842908522784072790858524314661386739620538504875298519512216017794302438208761295161940578961140575085957673625255470965678554344441752877864096042771681437526147765234117047582488260292912718373618910244863345821062766378235634958056880832196179362857697732809202929625423913661491679291606597287138462505891957811239985129513129695114229329906729986402694936827000579573100047941500539211887877063073746239340940539236198934070812781473637464994771957761597353265048474861486094477102652662118674902005140917344021227179325658368273121864238940067238743841681442199164772813772730827245114861068469841955273859581086903148982070107217110107224797197967896266715247825749626120811857251462815331114439049205522733621318679701077984930258743439990024404172082072307206737344531225745046437028799654890679498689189622059017949959737464709877312358168946949307285162306990356439407325951581785218927857947357892843986028309628069073265967995515966081736876391653087997956386267088611394716874997811935805884576876197129366503431048194928459951356125607545845027374546452386288434325704304457958992919234005641234761287514642726279664696710932220217893840823791833846171035511564555292386788206520068192977776971409987588456373518045379904830215586262174151277280475244959748774874970302253732139920054281197193846390458475063796320569940125364661292230639894720713317955333873859643123689406924671233690276292487034522729512469310795297600132759319322143967625677109673458644646639090164890956497999153644185876949878382980974798795737185446780265635225859458994911033954723903122470082777564435563242422532333974044801077541716934917129533409140779352553108214088915830903818078124742356253845385769950590395619251968816540174686847449397159764321265039949603959412111265481718608275427723793847462200557143731323098121136540821765661224518937900379434706213676516070548607329736405915202607752881962707738155458526983180405630855470653490624598913642950497760402637112927358667546453674143439104126692161286246699740446231537457992578925029474013717717319124942826145928398799883249743854709529271254521119693037035634409535598520111181459495583112835614024256013067344287968021617893332162257952501251765341836891216580629503994433066241221068823997445206213211036712052461191186368477995064448254526278416531522387082159701831954854152827191260114665888291096104969140053837343811814948327333125172943404556916408860553834758775414956084945656274725907834553878240315684542045875885036094040259382447732565397052323685487179278747051268869073887488411149617000810977868392902472422002571013123919058880970612874587202271278070090208309346293582052195610156582097168636759465197687611284327953676940791431544043160661489892557610928572893034954445491801485720324581421150390077156131853332368498973539681748160911737643696781220708472436365108109990981659629506112048422539623726374878554204423166306956041229706481678718488162444826642553536030222064519173498095494379904955202098005410843146334947736106720223304104748624398670729313701012354314218597587826363512441945605524927865314456202040445579055287299797883104150584200622120254540114272303348330148954266426706784288912876926244289000753180921703857015066561309324213662367702443201028072740197118192010119239869952982639346904536740036208713814881074875022058204513973962836223711117485474190106678190822191617756607112811261394059896675328421097031377729511995696559414046109583741465101893651430067328827538614924250959732633040856808461476878853943602637395526716006511344326993739597898675646959860618356849706881908499270176225979328872386116260892464941827371845414607785127234303228104246897505830967384647535954900033967804451173599371170209303899899879258809017163169788071812244158184622436409347026214154145847419279414477526490908328708705533004207873896011096172214281333474654104514601301092021503077653864403464388234423299265642568329223470968446174594449501945739054425028674210736271095607579360485286548195953752243239900327788309534816308726686533552884032270508131191197505674629756322236496481202484084690545343235313406115017753084183219939332531283051602628905398653988378599662820479484683470477017347727289115282747300704137747383462643679622359705135362198410690112208564261460235327885141773419318163709185617630613056985238034820574452157705628728122145651497186296303031095286418004087893309517175617388352667134582294278526824838477440589194548197314114825597856887897098458664897244273243688953226869276186460141761147366303583287921021143887140784025231460742890684738634387653228071940714050094758836001552022387597513424504894159434064573468523404182430902976317003732231919235345662369095670046025877755501936501127173845835728247053548011977019736755479219489529913845400323379337273173991441693321085163329004079390169839723074236503691700019363113393814107325034705947357117280423998764135491656567148231030682904830421621678179765348706336150134673145966889640009539111801843830884463248019675829246629089457943022399973677619636475072340260065696695813826589098100095979468753277913564552735469080496182343350124754819496338345752053299798320698106247594530627234767513391368293870970521600148950597108249315914597780715956516264907861227903060211350133278895709602700789345778619228197678925396785930715033424531125703247749367293063565133703118576907437857809138332782285800426299257977327649161934969350353993615501091683045150471584232264488607996049333374227053348783139593334088349975289511413724459201367775353874346541354820240246344649737636948354904644054679373586346966496022091375042438776944841322018454171807310014329523483588074761145323468383494807762866483368777522776529810647158928640260682192862270478471691068561419549357500481242560465813668318217676412993826521147006611600310837103014367051539986822102513833053380779150245834123314822197259549066992584225748561302730168720702183675783523106883895357639772291301380833835797168614991160582740084090500472539012377807401775499084234918556044028141476969389924629420656314869637442696476655591995737960897481141662847581836175612316388310001473197798416688052888304389334707011596918733793972793383150990014487475929813844143303305092391354425239322009268410596770607079938781629545854868771517873625308305438748779634903898732986317291061568937142886310130388085210467776375284731151744929866680858749654139045722589475053876631050276804547556468460587480988209356958632090181511398081667774890640826805677581093348507412950820221280481372256915232719207353807626984342267331584892691077866319181331467284774858358927879174081638693903054781424170464622570134099823048375365864473395747434400025797438491441800456467647914458487196225432500160139515736917072288134902035253730347805293078657312460435674851864025645885685217046820435576748130748434839775662916470259221495392121937380626044258668513372828089509449864740449878441302571704535690192652382050416758448947445736572390715584665919346591344369782244517216319934879493981769777093382410755881440598354630969970375855949027597011154076755561132356479958039913999317762074975470891475909443754777880427131363608396594713496077351410302297689487581075502011473997782984698118689048019389100847482238410236695969265509663556725240943316581443930683594537209963098124735111936447995726347069335157011114455183236144540376144842589551600850665526149837293775674157699588999722444882168395836780335725591421937699324329709020387425470218397150361149129993862419651196994952316074576149393218831981195165331067256694066645780178671206308833933084312163608358510826204078002335681726966585464264306472669397882722524415473840459591288196632350157280022346340844970915604866257553132648144814987034695023608645518287966906943855407679903985600106071289815165188307721403646467811796993338918546762316001228630616746678459330674434150750725862031159277264576426061479054918220919650410160708547968576898589878435449577387429195112059596950247785252341024801023929411648337544145341254104195214967515850940576380472328865663926073607626652415116561705733173391325231434099693245041633777420817802710980719476266230883343522320558356020591133150997525445940608563619576566278838557816673067503382197912510549538435060554315365193942790260583492278487161488634903849136651947964890097475112316423816725678739449672142095030014171730535536505503205774168734201350911191339092471079477671039423647202356494960490211852846570122186721249185406480925174080624912528914486978148386514955771891908918417224705494296149101371940607824060937661155729594644285518305842245823759933069726167530200477093494088750480107871926921509557291205064430920903947021570970937756085449466977116435474371526243504160825336920509409429510114509418424623121827189564853400268388211368808877583474966517919871685982528647596389317438611694893539760200253139943382315610183243471259200336586357269263289405912994927495095505724457731041620664042450431524133953006225937297466204118702357346048916527526148858200679185865703972099215660904391134836498208570541430941190224554046880152997941683010301420379457697746469793520533905274601227184281739270996640423279394110195493473557935483764962833938420170826280181145942985735293175541329480504189313338023379164653631963150210608099435673466687612952573814636859357015362587940572211631885839958516803476715042812043979598242184265196119310890138419719749120581410445884708950652218826302192930982447771141719601763520714596604020174932687672903601167691601247256249501234728928516168828571585239865063271385255848393926518973765987466690586782760011358724809648364066867386331227427804781233179702895148388042366991093529889050711852499521948510883667905637144307608502300586349549371190071063230168821890637439755999998873402544848529907046153911797931260724321657638960165725041895558092542008710869650358204366216584861930501969771070932658646102094994768090437289023482890252717446130281011566216288390407982938685674930949000477405081028483320245870275837957809578233769588409045518623779184626778169574133228588001396199432735674604412205131875421427215789380743919697326833399616985504873338086424823002683830560878829841564550073910132652433067501346058705175557418024947964910378364973664897246879573755180900781571226297336123591192082672973141917092357157560908565311876841405000070540160416972280132932409577237483259325614981018484303295586364217282672618812440348017647159921517850409857700216310439490792542225956439269572606586567649422132839317528053686272903260999527521504044090521274446859623533338051568036050869058470526942507979925598706544083919364198645003367710213978837138821789419870880910439184605843727976957502507181753958658356307354152740840040936087729275200436460519672142291890440377423475937333826659905849674854149390717645682667732688939074718020608673192021931945446436496390421813872775180119989662742394597438729930592710092225627025210600686611767623381953426374322918428430674634641423018835413263790572033219040096834375231928995304973999152046260844831216847959239306621105683006611419621534751924561271347044922847336943369713320591826594384034622076144701145825381391679758504597141312535628557414988038838191617029734067769724144753874949454400760522746638961830385373084515488323217472631725627383758278831557791247980136715390023449698555227621245550222053586626588895033242418942092789888381703110943782007843334758043550041018250173898239960587842991716779501257356402455985459382660557629201456248728579004921157995354274270798159861508709482119703984922489482900745583007385649607915984756463743019784469922534836121561157608990055627343916290001626558959710955802476274567741554996839554632542665256922399838184643282852812121912053608558194775192841878857674501409062524117313364599969197491729576263097629873658932836708062253095721438825385356077487996219212406994819766648121772546218983189778480551302333902245227194621341518164307626467684992961889420282821515987144158931712082912848839943064269174307317007869775574137228408172378016816756261435381456541335817766607960557389741347132201811626740863527983042874844506927104105402617661259947197278122341376189442309875253132813646299556330109918534191819806774644600632995706741853998286494660400905805480867845615594075844375584180130396632311819633241502881358329978225955684081415501162460076726538500508709342663732556691152394662561363363772215950238302664062735685144956572693524588139298837465554470414891287703713115452209775970085472106634661757124142591038813172249365327066360764349183528317282512624470268377491502639806603398748787779889310360004091282945464488336449030603702301368612267935375402144061197465164649002508416854096433264084349429960889966533705815269417959319464367740548325556763395728242157978838060892861868471181242366822391708346761544515046071544023219040869663948017122312889237942406399546482685075696443851615877506398203808747438483731012687099735390931813160564056197192509845229239780171979894069613888785790530689026979039387592273024440635967348603152103660906433979297967922249870767350635372037117312161741568928468558893925891538532005712752590963260268075436211687045421657189120538306685118598915168831458290834514449676109504300399929493107971313677868944110366245494647118486094561281087252444500169526721957329454206878918773666394157389786982030156043743694730888272768487791962352479736605437187264974415188753334910540879134797530975851921877525430238920039767976621512332797440996251831401610025312732716312157449746937254005007256113424750716008614578525827789639003567052447128931300526649431765807051151698617206867243139146245174454215052200659574266910329886322053889166561513316403197684143330976137626839689478957649821861337548733691235985812626619938192915820324748828289935619295251242772312461055232871509898819877409584224640264911855487821893362278994072382128263216246687180691970884520963912706988444055680492467504309330462801519859470037777931171089810947042571038605574576486370651803162160134286909784295277074985225780245088893245631640486571938349381045511417720815431075386225522341090764664222616631923705669903696136660237868557742764315631427801359556516094580100797366800270040302779798799931756721457419686879068007436864353863743574773998713211184956936552315559141076966656775427986824051017830225347126429958042101823591897717135542262222356816939818648595107137454948764474264128446086074028449148172190778706842174665619113915573568560857529717841598107033715578089899918904652976373566291512329133301415574685657952585362482500182469105962174096640355930497222736449269683390188210191298110133824033153446649340951539558286392482777088708818984395796245577543310854999829073454154435511734145006052057744948514871854125285975914997643344828352250617321426450926432652133597143652925183857638869011623430672593350093209800101241279651455868812683849602435421317441544370219738312492354999055026647542049208570789920507538752620827813817841708263159241391297855067323445784385674702900660112131085784820578780176379117317188551501324521836368043914494915014042064395080273469818970972118244247049843866168470286566370290552069957981962952125238586361335494991806840255114008839452468401647759862882335292460129547999960683044478927413675508127811087275769343099238501547903719459590818324237790386209552591519643100044253474012359257988940737753963223076942370351565659256830649367082192720153940969278827780545228637690546839562350294284339372142989887440053747586292644155237496395480467463876824901363219513310746461573869597770274817785216476378943794175521184087058596675524405428630088170694595651741945344876737000146341569587538435180306564450848623230353279392260059423273550777619168247091329318425921356445782910893478404661169714526037402324202108756672101437356009447347900277807533895279524925937005673481056885650608093105357448023732822262855452730147156058773270289617108547881475567083809297872418159913739714383750354984697812825896235377656302257294096701884594866900069107257384602645218182390617796592916781427016346234491694775580586095141434704265022508526724215038512979654958699489873118682858124981114586973850195274157194538288297466118822472762149505050757403638869375646727740026887516985284526519647071550393285478629616285767010613021120059776638892997706856280237902619241711257425079966652634002018882336234834649999218484733853985959744873780014486509350094434919437824570582172676439679885370642323015229398840578642705640154246608333364954963456969508464728323049392836448761451275860997662514323018430467409554001083124030495921768989870035386693687191812369310415278222656976410565513043250302646326578389318715698196994068755347516179436659925567915430471665953089455418177123506470041419406345868525687821899743378568622636226713010843674240058065657911321784470652012504340776028039022143798296594499608595898247924699627838708924864923990754748549786236875478252358087090809772837556627800655385166088234587021426024973296143475848223493651824041245836828516297649706897139711853613455997887038733846336594983845714834771931901143791005597334230599291965675121380278909360896217650567190378593767261977387988605198224712124486279086703277143757311095103699279764330631549671272776985155805373987797096286551525808200080422439998768532206966514423118096186766476377586176369559462461187133577139667972307751562490631754855725241949013281048902453203380327148129567059021265338491070423841439719421701184443201570369428600921508505818570100452313119091838208224196544905621642164765713063123348635964432831868893221141676104797983055695249441746461648640339190563479998097483021784228006847054629843671065613154105571610665029149776061090409468266654674230109139127834681242442616118661409808275261423745696107420992960462860712965663015912803612070679092342761661259579380570825030840704661478598922055165695157841232954977059201903178537973486384717782731364229010233002475690149499281125500885583090377634660021467843698340430618096784863399583693212994877969951762525026346429000930495546695795982243358241264213246877335648854021779969299357710374743106221842789123336712924302874784317794479703820790283284288922437807832646075655764880370363267264779306094124391460294010181675951131102129339011449054476115603679363085988213251985814046188636293128321153261086795317758602684115080109241269818467992174230876757494927282120603457589471219431157747336151792984414512523222889170575797469186972323741874545063846687350938559873544049618285033106790396326817441547795240671574135814303621640499690063598982735110571983312428755016766783919480594867361573966817161330362257070727739355355272093795826878237892343508693080281299610449840349288668780741014421850847917265371278982472297782716279311213204238245623369860549003472656971374786176376993324344888923321944089631239044945805769018663326171899863257088999442862829282654504962529855268238264068260933570734443375989082678812482832818879635418263530186637758165032470202171527282354261649365988900246900028184767781500800134066210737879870109028564491185370203382285581599534065568084569394360701565920774696373257485774280130837442576648437176254096639130841613176845864947755558062241155658303466684560299282851819205685558137852381116710829651757148746216285250012007170802701967243342096267999355996729864077195835726712104226641197085214606978081821695761706167017274236115859123082915299148450283667997961884178579623251813342326686111978414586304569443031202426086398232785836928571655401686465353331556455689245061836083401798155005514167914524187218781062202042694602928747958958443795314499652257815698034280240047673312627792774387432044866619237459245907486712043119225990746069928033251272254318585228502653454514231946471442901680900647066458558286502034572519237967823773293731286383741392513632044504852870121487172835154075047782831956399272555178196578137296863342426203223113619342072432869691526739950395681762786847859127132718045452874982946848607420010812405857070852895725708745952863269516993279818192049765931822676282850034677970492630559554323936732962649044647980438536949780692588918557070544976543005725924234897558266835740224026625004426946456904852598490741781323815530772914999104239675668257667513209234825032196995604881041559475687095870887714360848923208502412306163279301387329542946409944196327140655512273965304876041514628803330003906629984983520449019380879335176862045474114962397139008747811140432742563544829655070054243090825591369776189568750377274978393385581647767553885716849081395216627731077626133808790871022805522273457121369298573847943848826626889490931314008810043267777710798733727224455353915816847057422715846674843150170700460182066588504586884925086257163055636632372078450750622585262568414212414907558300249907298521497292202230013759392150817680875621626277629932259289314219148124622217958604150939373680187851184039361608360396514056882065592749585721928104445475974067687581874771987936537401979795629676386498069352954752103755932720818257809070682665527768410993463253071527171783533450966568798934766745133442640698687425504759262881514005837559157421792110158691271447586918842008259034747009664656187094841688180915286277977002073513328071434577215206748040170797054330388480638010878790879151918992257667713179202503108251984899326907329975646155479727795478790688784097754157410179693701097317170972899862892719729618224104079197149525118217529506101971691359690282864433361897849749284175401545184324652425721115600459434493592672579343131531786489916549858064568050294933519741687662305187391266943720939562562478479901310357825263699519156435056418851161226087651719858193946653570104027120359752943338752139780095189108767892555979153510442725980761630445420236231686137824368175505282485695981208372969131269325798870363316259311709387322803989978966582859697693848738446567656027884946525056757906611008747424991136686011508512523284886662097199861243765685235729610788681490914527476228128559222131927597273599185792238662579365729759370334209833827027763115158529542901620459060506371023926690468475225562299674524648485515586736993872577263370834585721952728600380517241229325909788332895453706653518118586573071184790960186806856400043024220439688392741836211599090559971932928441896089769419258366310010343555734382238741200161817477799188596081129321352098991103713511522871668496531047235182810520535093273778114503033126038582576012939005313097315690224789718625752405614255235969157896464207030367278529314612682350488986162824013620001775865010812536552856533202941725734460104904412530601212378030503590374072989607191584634417438415677486948269630062945781560309527494335441156423575769596650727998792596097994890329839979042347249017842535534765859226429933602902563923301091391560278247998870725390393303714789169413864405640514814027262563846847886950513000199881796598194600658053874280402222787595972628766193361323591860014692795738930892400988445817081346210549540701013780678443480428640379272900349892619680597569291742245753659431407742271514586104388574085685304793950454679426111977862682188797849100077305399195628477837862820741910750040920524546740353485508472151006132226785088495290801944942424922014142171851875526236688423500643740996179903656001403869790175372880815853551335840619625258048309454275056731655813214919312475272918541867610291275990098326525001679462555609210157719461668994485230415155678120245472343866254390011843864800171515099282310934865489712199059912693602125802592620164411988285315195640115045434763429649158523976117183860681124070100926971592325970537297676450715614593417052184358119421601810554165900833237040831568869946194762975401384515033728439741229064117033343457971252183632960789162873716349463695892131701372714170998052430038117263068778608485856970785094291928394537847720505920814721956858551778880449052358724941234556481489454167555989125727909176635621984933238300942920814740393343801575968262987387286987151900917389158245059857471653702747655253352795258324173333067881070578720557547611138862542647834333504365040213315769003244062532780513306469012360236170105051266435866510193389235663379451209977734963694061184134462647296376047030823923504658373915631038757483996128772805542460851101420792340292065746059323242783966556719063459753343801043869115495150666434451869637786057807995986126745036385097311077094712945404978739327625914614232304114842268049842156715616569703474530584444446679179725232414239061289929735505481822777541544850329053993566588878671113781951753992276412188393428336559772919883023830210567991004557326944548875991908335798144337475252003257506604134691163289639515587368488804607938644072583230289410068881673752832819252178860055324084870244278026262430273454467548068788433272377409245671835450586115724712121059806216526036043815833949107280550278812282050906607074573783112477556267434513470523263532210313006814676613141452295278675548998874355746692834794789962426723182681682645343930577560377801215881843090054959612501814874753822512782443899154095452051675870733752758508800298172950478434412314491896426365333332725558470196899308814221784732774636904359698107821993271412061617301469148534306979221909699362811139707291764810398279252299162026289633405874933463477715300172677257172904679565220973918650100856833424855834380884936045319563197078221837747111971314612609432319046412381409738078768298073553202970068923449301661776736094366153871387031119281999857586212231535830610684739032808839863743601904634624601387314381248925713985506764430439579994687767793013975276613802986060025443996271617571754072224069140206400215495982958195677978292674162567249085145364779719977579349252887660320935146571170423194983089782632765335965390968907881285900817275679447666438098353142174563086549895247397290031257983316508467649491833734767031501837832859011526905512694010096868517060843544123283777992380195314883072382798182575004835989587093754830799978597647516030262654657501136903074075229719753093188250995416933540335438421204492100138363040720052881585954505078882258171842104872491240202476857237148655147904721823504096750386127989877816546145276788190717345528242814306951714390727256717565757606961663808526649931911534204108435552813872214255058221258623554932414335714087057132160076833730083327123679517629966647286005354409517383027256322102862937383668535001385977693242106433277792527394392634810908102411924832916678945442903349880428413438656964144860850132670136263028686154975231984859806100176733317125183735257759655925215547680153330980271517030449266674669774974151036146199737276898233846798355765529849853579529220393103718867543838387106715246653351109281128275528153226348141167443652420174414193393894037029983620730092013491263620274841504983080970582877550391495944631263020793685837579540194432208226012671250388461312618245974585482109411424089126041611356228567636465019349372078038227985050615492918328855502484198902500497100829477564669697743515970052159407640560177396165774278842179432081285479697164433604681193198567714003934690629914178699180036646265255899747067639394321004239938938857486214624387156854994490860225016925608648492027649401628634246375945828429016291354076939595300362957236680185337030656581411223331584550755135308312454272223432172577934105362237053896181265064553323280540019202861069840797256300644574614818076976519696995680342351584299225508587490914290154805536371337432199250722498254538142249010410499465166681054461760868175389720173710495074917263234336215917881295963000677753623410056326755300030531546403505573038987420030246576502632939091343426125688040820078658180174493530614555198551476233849930055600281190075621339533074154003916461491900874284033968564156090462532971514710674023533774361523092736607807567843730689297924774903065682983790729054247972605709121486963555952602258695532588319858065830379823286044823814836770071245626782219633156518263131648732761473133050810400753452331038999929113784754101906383312266536153517283105909214928091168538705199681487860023707037708929577338762743193207293130443471136365500176299377378415165517997284025783857962360673505674758027421557188769501760867292861345516795886858438262227165190645285076256881496190430538784504408969956756887028653019736248351510850712644287102169863027032420312344618192124332995498584649549369211999856080954106162907361153268680610824186785477250227119189504253356631638586486908743891897127332042924859453317692101823375650222488140154859619274684387271159629632030791286116772410224782821215080491782676702729866182375173154148819017650904330444177200372546233948083950843030091979395987759541730880796048328739474866544007087805401760950404388258207981105118133078927284791187851828102253133873970634276456716713847991335468349108939708291916783263025914370293583444450784604442847757760606732203385826206277121600123803198280254748183649755541978737544979184658162668541626379774696504301694995139201553274320218250387809392612446642093607711804807637908179048903554109567831550230196800840997753245145220737019043278499431630076581359980898988422656057490185609063886481151735521027034205143090981563650822150530352667848376936154594446204459279808958053908108100441427471858202664956343315194180727039551082079173236102172483957773527418617552514027280420364220723341025171276596090716885041352827699673410854959905597005253410342368431013634434580865112183920929463741880811054847564315924062838508108285100336322943689443293619760157217609413880594921787457577108081646637842177687371579436015968528240478816321766321399459687026280160981441184315451103129041505014911726057958738484910546372755896724188865095627457692649630919431235888339321388336406103300512940344887817153816334643491968072538304375083492843630453956052651472578468605198309074260628441269403943002137535936058632619528339285606308462110583530961762867248378934716589012477359894167139205772116481242231518102591631836030735829681905326296668566393373373778877560157944356018300117964293036963634751311771229399058722501827796563239502310857035558231820005509930069055092840067580849720035967662345614325324280610941206303121750494756477964121574147384148828795138774331070890887058045646091085522007419253883698228216060417026479708440122525460897292047142542845642763540393688824396972115276335015803641078771978106209224236876505284427094304917867719609529919849806295520790471833855843702673265164150969631444616467041811255727374977235229624274237464473350555389110380616810668723719451915662758105740632260242664981032494474666097397583016933723640080254089719288314767015572406425501020350750398076640652521380632793801905520635301670842198868991556088121477502092930644798033658688335678528259063138779968484372498794113486111740617420547608979381699648588503540525101434356239258715155902528922597147095356159498747519135688680576522804243658999355256880697323474656114905388442795611647042038625626858655990929103333576155657873900626746719510997174277878072389473137561499354158528515982829018881659498237994251277263749063702694839015163746199452847653116116699811827545183787485874571823705777110608546234616625367134227413626242475212324747639879927964607877502790382287151734220704993701471960868917033369573488027879670590709351611566887839034754785048825429293736103919915678602245523442988148692472520869131957030406798293400390582008218954399386199152795478230003913802965709848177633119511745538718694143997335335884426316147406405213984022983592860766183457309504826618074608951119223659385811899577393286006642257325492185947540876645358505989181245347970211490805418236298013840219227357909096369081933755520063424743720363861785947408788422365870963950168699971441187055111163652145174853221560406601901304027286181569598397094768439748563057966397779612209848433079068098430012807756370661782180021970207889727895188062426559030164606053702361355938883204243632401430431241158328171434739765884689495934144161226624837525995583446515183629143989268767676745016749470036616940512041153366866689103884304569965568413766439457699089371035328123789769474424899077453364557903858916243159218688820202558782563474413404234915480372782481104103966412252929897458085207892988801226375960766269286748582831582374709458669118793904654937263175442064715915190523822935621324238636485616654413881558750908196629558377738707122191145276154315294430245908535201513004481467341490765649424105148968014164248590821904827541149587431223882193230024525924578975706077660193458562726886582910123496337381544072750701516894824605720524492799566279517561885768675325773656387095433243201209337918594626023537915132274451464994330854527074770196645540251406723126655322894014569552670337503999395873502278256996410528983766060532853187238953132040206660560741516412944379616344655978860083676914106075306762634401128190320352679824560329135533035728100216522844565705595938315086900378654718775204271492508825335422509836010394326845498579246139866514003189121175439310570482084268851303156209431420240320012338629443363100666853855072616127747028380854922917086114029619040445728103040674703399024922089149410407788495159017431033465265636549568923886084933654988991179010134373978864683251647736745147701214807443024457326350227624695806869388117974974790906555620136952251755092956382918755151802735816837734720778342035427368079854172019359760029429865889680052686097515101787223081240814875304048750708344969181310039852685313923904433204072816413852624240139915711849570765732888524279288125893680055332137535946656013731540364226181931207928539976255914005141267536289251558584174326424590025821350958995416445666509914448846666176525998791061985024564278337981284134206028098254748047534299438465054527523835522071080592510875793341358010732622836805711244526719284907185603976314000121258685910118185200719666254535705384290000455208940253801020784426771853702452891507856618624932553284406436446722076158525445048426274811332985537136134227882493244046183634096794676928650776453110797947335436037137593876007671817393186933242928578834558179690582396868682838473370367333573501091193926290341572280305195756711993719773343146619052182524465795681657763596176227719869757951683850971581666245820123082012209840031730300388961195718228961776975067732840450663721320974876404524825238465436024064439837019714671681331204336540477286797430587095905763938133879373414992248979203220659108894319600331993824181970937397083312524871991998772227366831081398236790611275895870155821734381700901915906520584600830607803463134878625628631027144571105362731751092790772783349966408082026892358329228647267181270768292386887851138479472268523366711200050886476804376543997019045339286404647376865638228829855776587320241676125582031617903266081291906730594479791855113965947051439283014672505910292268247182419328884468291969037788863964744095908734074551475758538256336381560973972371782360143970541221480319998703869984738753435303979398041771043238874374568467551170530146724252414680415344143346551699984721816689601977385857969607674256426223055193739441576582718570635157867320264508365495846458514095338349036109585927838141094760001249653778504379317722335055545608481116670059021026839881348860902286375245398783603135529079816345625309598948199422747654422843175443526616388696527884396957505008490576803179438671159597616310443176090126022881308276283369953080256229397569161885069424061630038227212235116386233197312383616363730926791338538251389025809330931588357696487999974059139209589924390219097837968500167269152186641734442387213693873859855998452144663997145419254628161441260088927749551451124080248014497429646965620634504030824835911910299451213948106645955755731529698838398241002080301544836428574597556307168403969295121386980586556202631447641110284663034691353342700785292455028257561770302847150957529427161697155456234629814258082797087138505438285050275241630653061843634643706814475445478952591280182844366698715028751172599795366559584181581978700364434793085278941745888212232270170752132765537470783444680422419867835109763145820290392749252432813134999002164087103560760311107201461053523377972229884573494805467786957408947183180915443289512622558499457462287355761928620980451766358946410340041142024663102554899903629625018934621041503637822170327363538351046841096818582321426595046099946516045898110875268005807874556678623829834617041580310013460277559739214752170095434558547945164344192416890392064697661613373090850484986182813768957829758538398471349039292801980038333392768127029500683408744229681179555083117642969409038502616691863746408985710290518555758055890766265443124356973745619225743510423262010753146385559031086608169007225081198679415157701453093207105477783254452837605853155150729868984261097563951575514536656854193040871741893838021540147571800918842192521713944732348540014716180580502409590278074834788598861284514486044347841542569407674669943313064473644984752323325438115082681884597112468037965466792986035045634231021752638666824278967083727939992021923241747292386128265966579882751986702795663129233851145646088363161703392947135741098704370583828724711248639091075294284719036917238407357282728763889034544245631339953978212958691084923871326916021052975812820597404678108507752672480045202695840349812331378963502256787199714257518682848708679506391326091422355953628068509035259539577282493130294259072062654868231030027151718522311294042803407903755151167428201272963001195840532367532691241633922048704617411640220282466872706763941408611456018412587385246012489756675283359451619351066646672474213124324155255237292339251271371865363093617937084007128871477138593748193013936884862530519399609205257949444049758550770732101180626847719558442335221586987464108488346676980007230012542506923586918774703028036032757141052565394204688243632227525828237406998116330013345779078248529373923870461707794022416336741403505856669828211395194453809659283151094314317786216355054317000903782476161265964680525053021454653931886225331849592816874262183841686812906283081411352221657395386913784704394481265894350145340030789269978241300654640775216907389418799475174981562703994818920969310076685526090503692254653245322357795520714615544727882641771380161805833183669227769489826939032770539983278727498619052662976993080541216193233733967014457204116092353803355569824342649963022732624807787865906753852269855909959092182934631764258516814566492631022290459285934330501976874897377888616966567463249616865709458337362171923375957560780407317577418036884779862862962652874264380872232368039218866206293228937404685190210457429457412507854998965445415643272248518418137586412742704238289414433417581921287618945150105123898775105729179256907959819682536441492294656590441175604124559323639465255520876011623263073563742945117359769111573414055086592306469127731393927099426362497770794027736819417810001413569599653677559506850381205547229921293864262599139094847026246661925266725844067849178753170980535823456494354549231753450787903279910723453558552726199536842266481536187813549334103324459497359620025225031580399011484559368831093394698431515675510581096030860658225692658914729194756061663011689879265209549412367652164340074682173934048046682379949914556975320384660069739179291701195953353898462139735997899232289596684039612634827984257516145138713150154899264304182753797552513467391885426219327780071204776319604037582319783875052861897642637345561949528818043999415269539320646960767488598807948852859357993785370238869110334312165958375950194636814443154618888070345005434826542400185230869946946958285979154184956195210358728110009250575520466984597704744627246663222832005034485160803151415081934775909915692742756360584540675639388926227333155281990669349382021070036271446555473029817893893833224238200257545855373818515373153140357927460322961830393538863110612851816889444153675849662652211644891922196337270165947220873119752481201036837250169291903515018295818474306386431925451432647925668814870574440132973354832123181739909455012822263444120632660339563086547656793383041881887833050730176098820910630303288522693760989761636963744256197881457333080555564366032474382448075755759454364180039243316490070805832716796359081020842450143307136443081401507942788545345532143109469785169123316327715545466224517826538494260650879427972749004376818358423384110342495473617479012102693657882064755000605919678512313789945868506288950507527232528844472938656511299824862711675327832720393738100503512011654027936352917384792550901714412195864769004673615187009095931943128921235582506562714897747433504151275722538510033542473773047752205480014363433103070691136652742808485032772516462420249773461002669641853972751206504552792131746542384091144502878167625212580839095029512973355186539419364174963706742185311708046991996298345248465861423665813731391435585600555659230804014852256107795223864234061632451378036639101462247142216598933894619470845876380095562132741813920803262971984378509712930656883851270225962801758840196787988961195464149983657523385887439211718966510013706615797044581560385150610238774380849569039046281705063284549581067824902603932734217766338304947963858118957974911869423335449236345782891512672037374073871383742469479802267258527593849644097966361091112917528237966538583551757051424631918084708924252547205618648776311316925130151602321587234705242410948380505419029718856369391946833200706206513730636290717672042622558184418700690980977932873421136588975488361725709158943693725854745146456291048664368570342146661877927214741542140233211528991214057224535772761447988091456079437974210431844645772928324707754648958981876652307423170261523291132125524230608405317341772975536462235619656489491167082576413187214990561615678989699417582636998954053581623203830423452179025930351941323753519976094003268931991190456765028905246952973925064612082697371534406172848794161442270230256139722279872483341287551835127330697002340179302986185064217550568292969790639942991259884692708921935828068350417024588027067095612845539338908389236603477310167454220569493648045500601533200453505036253686289529580883206932504076676996156752108547431896348386307572183050555017715594753419549453734540807449003024920851507070769668412864450098363832547458683788146036686059942725112048638517572150289305923962339705577692487007449156228834289053113121260458101927101925836615278962850480897665425703167490631180327222016053397737165757510618229826958142375861621509312095168748619947440289340413263772773965735732648310032460149542503060576945505090428460435881826324529761825114145415458494891132026410349028002846193264762983245696370498039569543791619529997791530882498162392893948652909661277965364438227930841104906424566481598043080335990093658820599556339497859571783686935182146165012405767067217313663559198443910977895811648838388682370093303420870993242983684199404234563633130162208651408067528295698020093513256339551720208525846958352797267023407409918794599471950580020577783382798581982921024436667890426269003473106364970839757280007323409061609354006509929242298004318764420086463161421566480456023218394370416828435595373042976037423522338854215159291896821739702147561118090945680436098458294381416019316681259774239412895586784565552966290838364048011110664788994985957875582620574136108318835984549016857855887633177513205775614154881810877683831426559312159125854903779090651469860268265984100076830131254424137353293504055959364840210885000637375494417349897532960187643432240950061905738230852549278152388546518755312030256355782310206662925363712588359226030997224995441532634526985550562978567186949195288866406265905429524159130113461664177304458226870163372160741533870620556257445992621784138613725299317140236241987420148367135404036312293575097163514194216439968023814220848054868768418162175396080141073516642609193416937972508937429417701137465916001930043529636825248409737171304384684640769460519708890016442799760611810255982958631075222435776940111451810632662403481217785897952322941004357633021094778197646445424114382048784694700085594971241613383197055217575115739715199682091053560624527271843152751617629577698028536322262036076837990461801534247892606053589015427388429522710478644399500305157635026718015145359945427631724237284778904332072494851503515728703985462764303353541477351558312752250513348962426602734096997625545590360029306968609618563617588246675882101236623702122290266462907724108238831469162013130616983322117097033679598458284738338176401557320383937859583889411711669795788946768648397412600629595267701817350078903426031570381045175112393717850030832310922466874202101229448773686475822587984840070431664998124193955740328755104320456847235424587837310888808667532675264495180392346172983418156005463757019374747564714016220164105822835139324650422094804211503169989966255295648501325170068513078695080751666053634354552531356131300153300727055625969306831468638105330156257213429699974711626146696076057354381679081426568725162123674228375299896947373118609885802206954760957652337923429597346022607209372254960202572447213885611001945274316654026403513825164988160968240436962727832822524665621352457840876263346836759067153637044852128684789766327331973961806432229831076120367859019494234907415400072503439300474512673755950536142066662961694294042346809661163857615814484274225945039706085248958950802619373117197813866432815052343336949403711798551765484955821814262973681686425541777585396780021365788948281715879059372229542620303038616843684109302490958579937611388015563354007527468148926438386704151127987453777122898566171972956694105382171869472232024562866647911369910943066679053002708509866641077896359414577066584559330499358440302502844774814092295656541026190579220236263945861793790073698052388220464062471064702625895567296236803166455912038458885316701644423873244576335775337868205612535905724795554042281277520744559921473085661120366656384466812009810028293793545668818849420063083035545927808169565389857660303833728545587648850294643441565878264758834184744270299053864304511235453768444499113851119045487321950247085375167465121672831242338739371013058101580466340671857920267378987475029185793277601948332138062185144677722119429092702990968611364420087266757034274001662570750919501721197888419097710586934460769052098313369270008459975303759558468507140228413869170197942899433878793182020807643798655312347162996162792373426144597755920833686958689754242358701961331798546875054355062668576075986454564408759118060846450000626386894368902920489467635095540188688108343974055824943560516167388325228489363308772215504268148509609978292064183936453741742662906291025078338454092774953174626630626267893446633418507662272023003005798262821435942848616653250395213258812214430257318715334066485443555282767009360619027851633828679712499283104166689087995945584849566597743324109374423867678550573853048376778250198627810067589017027501507799320916093980543597484847408976559975300860553314489243837482659726657558958925061861271342387442169727837872527891026794529217403907856619822243392659925206133941349729889054952187102595741639810401474095914596795206806954768691728041317487745263610538041834881205962449916460143138119330317120345528736821037883599129829907397171920441540610519652299016624158114385843359653379216718341684625103089832200299341867533479385277683503683630059729179293950638509275458026192659006880810200423301602573238114345110279062808141827864289061890135638287565205922695666432279578866617565176293795516749636198315466087423577312560494220353695082830680088017441952613592631113918089677273469603144515644151176210126780303874731557212727731304895410346432021817825154306823369561326458609592821808093060035699360362035013784314095515365754903270433791385855500394744489677582228360506821163634118677443949641299625268293775874511210060532753640262822266085453828784231260887629434053181461633754698780443644001188251607909033801931561637531084818084625120061119434158598286270366582767762312866030358074552405615090661156519468078640283065649879005254413925773139340007382628633397203201447170713870697267005153019613835955164362195267199968243987859066308312511626599094848356899466300927315086113487349488844992673358055763621667041944252805118323091108919108916026387865507150790209210235048023814139175278009563130127537003240249852036489944602267940695666232871730205402537461837488637872779805094419736543081592208836906240865937717783258502806196214414494161765303778528896757591127030141602821778342024897428227255144455498139440628177531434871079056055270381054114558477468881959456882993385865896627121463150302272189962110696293762162966993067754943376489941689274637829694725275946845443650501597562656724741772647567253892354432804324196317532793814274888585895186172052446439078923667785325030609292842848724965283515182532937800876116499467257648688294471429917293564910971827806209814839405630431342722863198362210775925423667060983504909866757272466503987429172821695777127177950271329879767747214471706796514783405418313403755516610880254702669553560486591988148595068150396928054641359370197274291578433315921040122224550943700424037621770754879749397860546992720230960051522407512839219821576487359520592381767894481628029533059493666012525989123686494964723021512022458280731370555714296955348756762219349631095342462218687080825146915325546651832760762273592377904147045335032802077424002300044252938833012927393665907044177183164908401419019305563303902934547792902391555833630055490619681299178184844549114952496360051136530759226077288689162226173106365801950214053221758434040551303908282123992524663632946125981305977039117689941247735646882644465886995123340623667531075903640993131594280086228538161733239560087756424824074434427651076967021977224569505146121814700988365138010677107312613627755863375849183183819889622035204246519576124379525369531209705824415980463347033737947680532900664614329499035027808568961878352019466553938290144928947616476975622702691115356767462136390243563875569431134667591915167613031775565043262266598849195142324917620668616136802039341265552070205315224091375905270116052165945346618994710653987929173430104278189216569077197527140227930358437730177259583434493778086848375051022633604477205405241739120710125162790185564605044210855645990990878668484342020491521022444296457630145872732069218018049339746023685310886570916235279519727051070331311612688218156455712890797591912201332978180695209021664522478178523729253500790015417756287772472389586449326239030355806193968792616238563236720085000389115831578290955897320236181508935144935153023161763789922713925183834309244927206275073862482293097693078985704811290282595323226479300654803718089573355827403203451610779242798932617731217379350474316678251260569388475645149102085697215336947178648619792718219174017871543577807237072017792672335244482981110529681017360917032802284509634211043807514284999499174294613924907732246963792742380967879164210641291853098637176327999518170842579615544720327884218490001895512239092350434484608344890101768268231948949394024494628406637351085514011808787844113851154443937617846288606950942658056056621810870560496440899736646007552312259672166348443881250342440749825716097916331976984916177558303888626872874994320349751749565480099925588364228181794055729972145798503374930553928584510463913148785597309434078762653654302049323129974268449721467871614160954595674056169631647229102088859164457394443402298211763544339830690315362990775817415709762182146782839488447758326627935663041026664543936452438786699084683059788922564129129913187058841556286558147893638171961173199896062729521067508375328239310830530318972206463268292683038054089951989659095474115477288499076493045296041402608518658058653356324412176385901993582802320665216694580304680085003943783687491446487959633788865481815132272241773553648784098899228796694156559107341322488468946374902468571284393824177430617164834388651867934574736522163357401713873218208861902092623833829974262374997627185554117554523528699093414688946163666465430808106653407257593629650087127701673662498233564896848052416164525981638772360507323037536537515675593023392041224564850420973368277242844579095070628554214660561230797740100510319057618926215768599974471579675235462133312093908839824590863886936983427292236636377215388127311261025127150205792193549706929571738528530286675801077514759787992288617572116703677382613569569009209195846555026251878310266317370532746380911528324176467753684429618450534547553156413614491896033402742237595079985899411747185216314497719862442177553149939768964756960864634368458513620770252716626089271334724482522867794384101097998726048074527979921947408632836088884954319148731369637985315534482017546293277302431957209378067711795877863062577102146117607070385437102042670428592750484012395063638424772963733190433122330803021398728778368690085096525917690534746143206732775044674346406046833054788500024889051791611922564973151188662927012204301365965196046505792040870911899111833514716448154979941742482757093654057227471638921299469956350186653863284901450888453181784770881446484994948712925430473341312720498696198080204966311067344369693233982588924439261291010771445152969700145933364135292945873095116289805018041031715100684978832193895115765135639486018172819966377088642439830832721382027376829744687216923062834887229931141965122788013550850471421968946644260484870875717927555969701834647761693183339646356353110766543838242482035221972340787918998068324147477753568605923344688039130501581989513315200420483083589732618401091673331568668548426101735227117203531137005409826030449537598231023363289234573432780963971127292507653249949899314857151484574248867114055863175205504973410354790296785417846777231809582964199926868839445176334282947292356175558247161737772837508142037034152049299022897846970180124921798308026100858939410927082988067767635676676201783806000298695946455053564338892863750888758540498346002230398623044762068271730954238918934391148345408092866252326498446424636908903010049003641950257559583797731485293773573861679529390052545917210949835370855754901462203617744335672405973839795623643187436112135856229906516929368983881779814244993269752023758056206560189337388007274611649374292434362368169053496961887511647392361777280981772341118832392820640408455229776455738413197545248991601414183991033149222022453042650965890964485214055287615731101340683422333628930051530089293545093295902691144236356356304076947961697430610737257366271134264496735958326497603868324294678988142052706802947450574642975379612262419406213525139030471203688600647864507085176019935743657248094435961500899572136646545368049706956085786410359757914877525699548161273480589281917974636940749746126451426971658794382644898775650919267627660227774473593635831824693664032066928278449281619533779042073184992783366607366160525368327100478749961389899082212809510231260727925527994862645292449646164023204862001225804306843358659532956759030697236200019390576382120674271561583892130905816578887113577002993055045961893397420109520617007753104227986848585278960791163119232784762190038911660535017482853291114974811278695339267488031544756195979606237665488051471986734332141890716245638355413040752101667144026698520994639221510098814894125279304611797677302874444951827995689159802338543990501547129222688169651378263974208177735374474445235034947819646253181000865901342746190204991168622600619447115545162170181173513312872894830075499107022450932541223852521606159352178936785483598187289877644895494405848231500536884139175756807030004516595812882773544562067285105935299407658236403164466127463295931057138336143272236534570194675705107415870042921376402133637496937172664513048932309255574638639937232864923445418072814644805416846872767156787822638274562221506824112663538828072042615322563590106137631916786763579155218329373578093875942890434515404660026767031047516864591884699767009001031367097779805779710478021582814990920883547523404043060881173222559607504398816302149631503523404611950315223690744108192338851126870772590916080902639064978986819000118301327834368087202050257335126798725772742642665515778325948332283762391167504988728731140432381107693746800737257898524855688258215808556171897953691663001481963790508928282771540412205591938660304891197961582137345598647624016915557275188813975646179945509870112836770512337708701416125624377782264332027459554319505403337856715480066674300008134166666271592976269913008700742154557239708153331255900330692074862836122621127289775993669118915127929033757836391949937736290879230579977852408297202283491248385514727303183554966993262836800977627879852233519628986238588146016822465862267827447948428008561696315443007606637250077306257088241204178365253104811850287419720156041304512161683682108844159394741770387644605625405064124745858305466484245294366042586735918844999311355977802514216818603102684015236532093392727492216634982007806112760667102011560477050277432731001766073517777037623194031526918391916643570951434409028372809629319070764205988893855704509349285054121900778835449334941904743610122697900969218836384838537453065597210665111178791741604763234610950785572497268331289768131831325475241023939703272690077329789355982456359191718482766074602392526164342361043221298276771854486912994332857553473942467588967417995305906798711793439486069567856522669445756455202083569253408008750246867449467919658564693252728229862848503338613814593077536580882912539272707932280888819011840108846241796762700544726935848366850850731917611860154318633229729179293120150432157291567304686410904587000633328614359830760260481418776319755458951622200190328887077620151729630076767380206779183421889746618508752528352199115201258051159079036454540440204822093860906515968581696615880537401690584482399546962070975488258138748099364846503094068074057891081526354880272113142718935525080327422174908892060653659384095015283273960953161696469944202719567166868609702115785004508921048030001996555131682463428122125749961966855200298764432452011102822242630125239776687019132436692304917052154868532124621785196081929767040216357939707654792042551249687415374912646693709868637170139029211670237454043490139734067074687709991833488805022573463125633721807992411081153103833627229353992260355638355031914765314780328584908947658670878837597230639206371223437238575593787299293093278605393295147255336742693431104693874644970747001673845607972312832196421714753641903964640800694348751216239328453871241438381391614618357748741895896895229195481036276898254213625427222217112616967899425752241819185184918928670873045004935059959182142063137991191047836347180689209126767018133851340544396298521321057499088841145437272437197246438383878143388384653207086627200564313645141390647598776728959009518471838933544893314265104024685304669974885952444900562183348269323782795576158158138627191950840412957238890533721236863933210210970066455098830047830661960561223368929558970074663654182415327749453774302805167587542416093434330311291241721006636829621645401058913120880422107590278949559139132282979136437895907063319000195389385623313973094283159832807184779131071126061582434143173310931825148466521519229684483941017360624222489863940500153243197852478591829278916178634482826812604296503649467177535114165096696038704596308899929809258847964575472821378919122523529852829510328163587571179953554212859738909894799656658678592224210869314778230354612595696253048088476157087847491536410597886042462843451782465581860709888515565319463107939898151695844922907730298880120848091795151104968201481491419494353917374710956396603292200370822163488891414087301633411500815315530265907515365303488057902195031817173612577577158970610403203337402041168667272721002107508744575649461758366627309961217347701080600375545960633347970899904644483882140374232402331028613939158445238859960300336069925510235210821552050390809543495901676321167951351338733006148926928216510041695889465835698881113929116610212849373068200402459609481130121589783653968478878254750933589243371487615590697259265350415507653832844294689198682041751933082151747966743812108663611475215305848057889902065228176785384682275707760268392309583626736490903257871524963243619398347474712920645900429090541698779767051500876233558130247659588181163914582710561463986922151863274042727684782353274009984354707518306110251757926830118660515236056298419999761150608140763142427432596533461662655086128824178738209598999406602458761245528586494702189754481027813161039640772317930792343229022210841467636183341256218735425677703713107959021262488893880198008857650248669204864033216237424537256247026338129750324269129898673719452871787480115068981132250659185304242592164053644958323746778702530284393852156673929525440082425664592352826596022885262723626077569560962953544475236440879919571680812400902069323609991292584505930736872123941607300417394173185491841825526256936480077189356010876649631143758832663024271074838327441647561920505954516944205625876216671876071796743054434734933140412710688168334512548232964552794160505505989107707860957492240579663618962743328212315324905116606378851409691098462524010999093667099369132795776949773821904191013093155158784815069605871524617220225580577342691036844936261309354346393542399950741424414967053059172156008340696225056925211873805360925646491616642548705894481734160037584592324048098579067566049575296613330240708565021838235488444327244792479275845101470128864867452047466621925085058764153571496661571147095067252398408608582152402551998724715568823679800507730747950479863021089241381192255141429032868096817204144784505722636983603836196695261268844574057203787462568291189028928037287367333632202966862053798781403357764414634314956754864325548283717645555711510414671448048728997339895055855958673448874442807467673055618240580796653903961179770710266517479956104680532164836326536356668264331310622256588734192844337756900600671554251237718524547180269419666974381659066410275600864066549726584871276604441252611384868819194922448122975988937939189657509034383273956490005177217388463447391452296697214968081235829120450821934506495838545467541206067783956905627243567101892582987511277088522214263636451786869527101774458605831435309644183697323270775938132670663000474914473618534631845144890285281770924128889592132874264720899810304123130508548470260421908682353430900532886405163750367164756460869702724112662592002157382851831019897160232790541616809759294414257818759945512254050704060880450149449176165839168528694705059928545327078157363177755933207135977257381330125758024118130426142056800973673245052750476859945180917918166160440139294759606572533463695660325644107370983900817036337143609411942769762611157451751395260649235649458803370359600910291460611071965925376648751437512752883598333063635881563737350568202451875050181043388629584615360479137564776611146873477860836049694692341832048697027256032326351808599771790206263909732188899705606968364288638107028988808648564128478041395311605148111081618111294511908009296704821829947369073862834036883949131685637391836224608641136013307711440094171861721626549695641842861462525917124956576278758163335770269499929209608557702073726493815710917454464047781673849428234076430160910699657111698939095789794462765538009538538118426416647624472326618106927009390602069863948656517138008556429617399938749190507465363570796448972601075016180114704138799346037911589485126935677647680061961692673718707642935965073961592107482292726615116723187083339892905045378038646547932437650088822325290881366384886739883483352010276774464511761784483624176657362532917647701951540167455727374059225793957440494851925302352099186612419020874029594530887540497848205533429375882254833385744505730596382327436645881246865313742411913569818384403485283384390364759953131580187122960938681481612760632871528493438890456430409694825668776397406017678383426836609782373536805042448052232843997281558541538404137511952449847177966167444597431771589434085142769882413605822080310909252712258623143671518686581522677180806809672621428024913847932821402844693360164282894157379421271541155601445512470571583418728868921834363962195863589392836011626858517162352313159297387501378676259693292629684528370865275296784454740006204935408339269510287225411628484624933296266721973761439381267227808352745897061797917975856567088832637175836825079019728579542754203197963099752527526421268118572358638573169013679290918696875331321435053794234695397528790930275463259545717546064343668401101529234282401254711852653868398561332428313739783718072748088915450205404081618703968217452809837548846794933784005573155227604216676746654385622004830473613691355600653719293156378003979553034634493157372882409287399832181577730971828861233776149080829967933289584025897993651205739965673804484030849911148431214518876261051892301769344526912453877562276213446869279587985105118293075632898634468102184054672033807760656134411430254608187834073032930314128815981092264451994250711209962541136088486684102891326506683476516133247069830630176504578718065609571810000081351400555111680822247512485045798224444305032235707001128071671219274233437845334427115758480507961035853858133932163987109850854319371311656080366604585503407349975739943923297145956636579311276436096309652359666074758169894124178690930512642538264849145745845715812797372305697540631790986924712604760311527154045548673416165406784946422809996962552018458957082942504129813988354891146916826275422672863260998849509397125671865065829258806705942372032209896337599817773886207586060354755145471088806461666432435464960991727563337395012397831457458957370927956942913495028193844202393788687550192135265032975484688296141685363914581151821552624930176474198453151019571270169972092269481521578233125370725075412692556137467364111946064625560647785188382505760634054775731848594375005191658126020106458202863822654882937904811607576350748995904583918284996769544926652259150511543650927881152406207126709869204706509516454084852825960801462355051291425390424422193811584505292344337842376631054207994041358313997008434620935695517340436312488729653331610635258294285658356007545826068583896927660304484938273181031256848998569126489504327961729114763187661186529586650200763014454925603597489697476834715136050056895830797050390057339270643801318776450298178185007723160825939879063174103001799771594860282316150276969978222720562411122788552849011748611769682387361114703058493210153825199732733386375172845236742027453077933801175068559477122685277864821599330286144219833917663523529632655699668923725010436684246455744241249886066864898590200509709729771957335130654315592885275240912167244971345203503004574538225563317116780544047280034208256968987199908943363502726808239218411440692733449973227314978497702832043908358457249386822378943035408303861082962526321167414089513400190712789381659462663644163506109291559873435965072832369523446454146987253546094939857256682653508995182064380881329179986016799096509377721169703905779929898055334405894996779003205455885632358245325288775188077507420152942855809884614293814970926367605745169133152009884080785786354770949054394040371447506374067317132141878246458065830021916775265437006269925485008757803972058739497559175802693790237837024507553564183309041593585468965248594781827124396819386404917676790182965896083168896596382808820551399699928045654363883895811552629941124729407282500177298745784000831855832285011404300728194625060208745544818040287234766128490269200580123046360111412868735773125699286842515163269110050608198462904168466119913092189723218657508216139071152628714890016856462278352210536624619032262478792517245523395862802605029428526460461733461895157326670025132295759539008408774942017324602613827104153812208587377427167117320868402020890493669479993902943336360797554681909402127701621665155973862898444258733633428388187413141733615686606747568068403386979240662777703909138613940635196813870071509372703876510611979917089359970378262236431587600959577405721135400187931961176259515158194897131462290726592259725512673182929800391252592349499741522187267431797715495955792689590526147198885543107622995952058921143988906284906004240223907618129536462469847843660279102395759940287534372690549615409573902201250999319053849089913120068034393858650868884118754900577267236634925111266946056085772187305124198799675632995222716637799028987610042973207649581381217778178949091216784978415416665463807024304752244631925609311215756295887546318841764487216089154549592751109538947726845670369284747038554998794154106912007989105672565596970616838755150491146897266163282249255529924948779355286523194368936622306884564414293849259375301612904103448578900528551929553857911445330737404007776097438466918102924951159655538306112845070103456601962626145481280860604916980235325893261792177658427011438441632225775829993057377855743883055154437944894146934767556169168033042456235717109738065585741577014195201721549319917026555260138370851076232124400665304871954896316819385357842726501030729083040098202948990114229346868790073283163661646313044822147919756127721169263248293504175564570589894502776620014134411881835086202366202623260774033233911297530373322137203365958543015698414139839647735196250257648104309565772680171129761616994408595002656359696851832229051410355568666922528773464444186097825546224028920456937685403251184293517226177970926733195516968413840926668133950652251941342308503787814041208760357753181123846886381811691761172630167449484352959332917397133286570739378511419676939407358403666689207059716759413245423158701024657970917353924923559421234992127625635319762325814064663945095599842011489994350021049823663156435612166924005750899981236324580870532417282388705141456555411786438752891393124688649794852112507462390915148016984246942241225306263753073122263998679974799485910011768408795050477781195941671841475393396153895162310671230205282156999114591175819868261873196692396024595459440891334340061554695247293684152489931480696574696156741915132034061248155133722370571665972045033752103956986618120975446456016657438180311236459292046608002889832387267468553889261154926962934734012988083934645730605738141271614226404168392777141271411959209300318971000525612551968955934672372576911859930588828023578966096985644291641813823831147226559962334970166670025732481700096710704917124677412791503491607825235160075633039165694445908672461579726448786814293033453852888033594458323612550453642818298926600328763470429866395764026228530567440367165087658770368880231618926972010984088476090445297141552447008134509029952387379464898259328216577336555551540454518234508898973653338346594831664039515108608667570540777017839131831631994288038769918619738894216789597158910445044867394793295035390716104262157546182093839444857816970015024718417041912513943656026828149115842822322197050375371923369493373619326735068189085489099233365443232876210453609606704164395330186527531545982270133107943285156647551742988097707833238485610811661831512432699594816524802819597852828236684932825947431591937586214178673623356352223140258173117767524368540470842183935047132246768164735601367967013271439970037946987791556932532557476465848771851543612096905068194471302264227765749227299056924546209250860790103990475489125332360854101900906971161436140330972817709935575683593378719375665823330561258798165752263322642548911083639250671110686114141211975578252738847248251945062948329592586210336307393349389253567095804815917925528798015703901042004254972798020874631267583036407785499380442625370390331070102965557439176330001497269011185673446639953975659373365396173340957027377901942377403154801274180191377269426993031588155758360504881201444845232241016984466883972298413357261463344686081897864385770153460942306995164235303574261095804839138296399439968784881815742158208423445325236771689655471037244655828410411307501852016646714582045933297736375292782305937596648286607471643409930405164705470314394163497559380939052503869999877130260800578724794567699468037151712371438728240468259547940599164161893263712867233246854040243305309267448515429745249249914599016363754851534802011417087110039079934830829479248614450997704911250081531049921043387420347626247843878539628059882817939584347237114467832075682766772095405705302216993514473168685386223965353103257068218138496373674056404911311111317273023994525184228855545091308271362597986506829288549788607675883664126131413610468141804701934004895941898417590278652385582198769593893151671459412658560413066638338941351022522097944022320331057873705095815022730095684982397829897275062179221805160691672396341021308071405067349576484074539036215755558744939094819017348679298854898904926053367506245963848840890280542412882769932369536245609125857386330714894088991661500611179618959064932165015903257128197718825227601491060217980965345347424544016328757045956837743182238928026157463998643126961419070935009768466134454209005591138817506437298924771728349646570110726308975843402683539978614158184867643720236112484608458626986516487916819754332117224317672567625714097513208377795396539806607468628714249653146400001233040221112411152985028982424835218006846793644573147735321914508136126560324789087547606951352376947300454835341103337159061806528304017331412855257092448704578936466419972910763319169426288175786949348830401419823109714768107156334092654274972700581167573629008011346699400551321132983292989644895740992468910347845313905295399202960630546002192296561424118145717937190980761468847282488823259779740363284376155231099307404379207209353649904132915762687211087394464562335730906881937662423201387288063268017412717321868602251326480118059972625843679870705396917689670878069798090162261145251937201803873464322830576121122344793721961782937210844585927622046475847323321195183939982526523703695126356199270058368124280204855168055438784612421349114052919427295917517245423852155300450258504505404926856036778815114078881518414904046593974742954731420926493091811599864943481967237692395341364879763591515323942917234719310433550157019136262229916101384533135926711197056928960888255643287207261658331296663263826093801827119928667157730814838110493740132350059894281369503260350712239483472344622939539769169791204569556478805460249084840755848213822635234881370421181453530475095488320621672296085407522490473925120873193258045652972196799850424360644152687285956919756383806428896661775357879663769638921363374709695715244948757261136882819126188248642434201265009367741499950514911728402797502710674776466401664145001885355352161121082184487680554402013508595627124366996842873376667112685922991208928085647874201940104166561774733420861999679175472591914989487849644319069984557344127397355210496782829870150130114015300364620879013271073402597992746041970924247547287036073116557984076956676093474244959988266974444001242415909143602402670297507466044631180343074653157948135205589068330006664927005163426063405518482691697964331091166101542581537575895769615864770306720823871578829541089847283647499035939625693362862892183906567084439237869336094832392432122667199578120683942440251907329440309171769232480367422274737798594443911404709646972280684795021580720628576581809554511116396246291760651292822012133572515442675614661931539525591488072091249368211614351129703768883928754823530463564477991100543692480945863239308337821483947836335062547392019379665720033439815206188955368507643352526564624480833880223298055613583239906529127672385651912750463524763756549662345060172698191101206687973972042609997171908316502146709933774460871226921552462879582383365722327373159296398147056986052768736043230302078616447029586455492430853736293477156375658189048892768488472475595407702426549117992119701433032416006392043832221618279210077122094423449405824585887588943970376959965039019351871067160752599575919321427754891118202944981597534633805595345889084206889509692013292564752747059772031226694719185940669700302767968645025279263045574287926725775155521060257572954350171384213469700573116509878512547494021661533992181060742859392432055969473387530722638403343454758158182929751973618839989442269067240660234316064561752662305629538403016256827440755354084177173140675376183936826424922809201695047691553070731827592964995100516949791161281689418032986817773346694200489163594981042898048328273696361278562346682236103573095460515102359828015855762499200980437414142612010737088689808862589903121691013509016234211356679141109661337329542364613939174356673341672727333598522415985979074353463524276921664279693325334950058976740499554671049575117157134301018802351366018358915544259227538064010755212536598106752570841596413656958479399536414740869011982373143931563514607061347417760662894298245406968708336058963497720577281944242480074643753138843272667233378052212055551885587272757927926113872365687597302251596846116209899957224129428610476102410728765197507384741837848257433169680436949825007727129900967069418617777232500738323004383177820599818221503570644230995300740727165265013080892994930571450897772918198895762999789587971136240119779205653059741949013093808807410431196046786987370958771669838496192460665011399148619680874667778403020712146342326709468251805106626403556654584773236398885409081096627947010861950193585178350151016400567112333172677219218311119848079136219131555035029518687623224587715331993851512965441066140471609399963191027902875510191969618864099633396400763565190148187765635597923238210699918641058931759593398438811463656004622011644982048810099832278680625682734452758812416315290844366209409281888307916457381694585050124445202532910296733093768957378990834136238615843452483154602614792795479379528860970111275845820173308196107013146841086455956460317974520497770284430441081590913977810733370050957281382129504489111043899082479708275287462920555331910982706147927537699642135877474762594759423557304110444881785822167094250497998535687738603374323417508448187543285203769209827102837272976596665832460813494021696485065161398580057179642240625716981799865520900248985932536505391551508793670697811867211429717608221484275454536162421917000997332649373982508393913112338696648392874849322328001237755296682043801370346814204711994310094205318105372053427063952422972739767446003132387542986069411639291689626914528679352094714357744225810662949195394454105305470198504140701724383402752481131556574934253873827499077565197301938055034910492224251059457512238179710314708508532814469004896779475537941998710375189879139215602371369044306664784720103885427438906983266373626168790526487611497824565394764257986704359718884782360505319864106788761046460358179530674403216674077789014304780930542592548342699530251142155384830339686437621065600498696585518718716121534629196245496103487772224450470685814183291870586705062865510377172214922656793590542332042391672147001066688097632660332834761034068956936148302769718520635017914559400183767434557121796151905646361790650464497627553902172049620265370154846336362522727881712422676968332099193139678846237587920928759949739438504460981825942178697824069350771748218470763351677895651747225196867675518836745194696153602536924381378607385312587086614225569013765002967356967930726444959782007933354331814941377471936829415238582490569581089987465591547290413170503515593892782834939988148698880057638420049126176570890546375592673157274351842433090647862666564453261707101822367242777602418414053689842565674398980846322691971447657462474892290818318813825216739971725892807975225625062949535463700047174836227980088977028680169173064306947035953197903960182568477528499696222351857215590073362315850232947455785706941884007729038891519935047336202065425314247753786191506893209157897531314968663961874765659059767350652431116884061945446507639092354127497549756645406910818287105348973210897909289053774575113970466471574145370171501042382128099758319489799534611212432571379876721851053116238848522910661159621257354621934595173619861866973303650257232510945434448297988563432760049740392644030062485567570538151760714390846024186842771011800716230093819943812391410314630041599180955698849568321983513334801594411895257517246790191659881440775399246194467398985433361930310438458226217934757228028382145242844640706991181082030610215492170648475236672032575920537264868181225984279858106514167866576592195699249740574756918811796198368513204717772447434250313667149835968592775021415650317349564254883942500123806279025648480383399730029672113044869557896548624342881428741081940229291120394133659694055553773634287613014896766200833427492095065667459103435278098968472376193456062295897723522560647947714901717822797601366421071728126221746519810094721173513019191840848450009564399632708622918072127074264108929028135972416564614323331155454662574957864891030458311707531742185027961664515197648559694219881908264921483599327855376922501795849538839665316026008183079309748217851425595598415310548420574671584416642342316600522081960645165001173985626119635466687891960560384379086176926654873310887723492388494664201150216220666672614008345673859620867438646031029551142806616603742774500681200589715258247183817664307997234878703947187748254553784914305199972201027385837167739954730927520791078524250996450590142932927471721639317854677053185540057791446619603871109367581014544470916740056266523591605601555870640340959483279546832837652073107467879272352455247728982024528690350025911002063158810273991215071936452892802321871321989778702368141573967963288078235980902273315626137022111844937782810813574793176704415630482806836135259626833173680933549240744061121863508557164328106175912240868781585356272554751423505527155621780498165944149128248835129940055506988508611142925622268314660080945929761494449384501271363662730990053996032662011240250363149820831062479028457854635580717778937500491981577914449346549971531088722358566851468883269060045216556159016927800106773975844306555499080651288115011745729198632032594614017176231718988199720514412936615183147136929690210376639665525073695160675778125972938629179815901940722110403440411697966272030049645581140203490840401143067392466992465934766588483957044503270008219888594891565620172291969050889048529628256421423832682237041509935169694926099903513115888663744827421105148716981609646825814756605165964071646040734460511551267288014752574929246366534164927698130955528560153662689147401279479747494742539296293865646276586451850678113261263129122109691369816903025541480351392061196427695530056048350234938429435223736074653743216029248600292734575970119703126466697828005541803125881005011837241191966208935349214133232171610140796508292247757453002488693495508394778309229250953192859510223586720681451426439176545769097547075737197434067047929232893030176481935606489727802360736502416576097198041391828745916749585698596325555474787145215075337495844647468403085048706573395762024314984118393604481793082837901860028712802664154477740849241605645869410724820709780249261169301834374539329807254656018326114559856321272181530857076076409257616417488799349427194642512328010752866506262364147852041506243326022782451303572579086178680532269521284393929506223940504443457053482993744946006459637147809877144018481093532148565859900667363132714928353611533708624270488212231714343178306990501405505678359891970578447002273748815525031056189659330219331251077136320610898642773968733848849261027360391989231657316151961539349076030980425373799178478799210927635468113332977182594179840387168239207676539722591677945037983384937562299451115111580948684129866147744713410946117417592310526586998952952016868291231207620715014335111784488240729160429373670637433881123028331587081083822044931987720633118663922362696599559358159794753122238549434783387618800055129963243013033708038912783606368082787147940958343009232043603398736896595551001340084057109275342745070427570314970464506977486115817183615842259963233705896488656364536485171473747244440260485007166272905691772834327803901319601925623105927727295628335997594778899058237126641467575142469039665892762574956988902451055173917851099001254790571133909389630585423858534917431085895596237854809021747964727535158050559282477393415229876805378877862982791640925661936123297237621867179745930148650999308411238954876468476747973445121427628873638359805305184815097881585166969717098517351534971950185754147236926114760978654043553632072904365174979400141247736372554798901569409999302405972500182497694767116281216595923100909750977764610481997851613868115694327875429586615270505081014551455287298971317545197797867699975733482549038098757513738094475532042211330919262134212176799218797174611134301279633079841271410948355644769590402620895029487621801806598575220201330669431001810755597125231148594326504337963116362938761965984167918330465946056592422722080199482010932079817014631159325412515966942859608947347280352722479910113106446262589207302131440047051498517149066372582917601323365536269713843223176675706151179049492214948669839978840127882139887135912495790463927149660362216787760953882416840313107017304908840210387472093797713088695717626759789699423616326261082652480941631523919857127249955166799733974910064384360220333359861234653651544247514592238656716763250314632081160965429032299227781362682038270418545573358332429943212796297264397502600007754595761897177996154066082779758466434288356461438861539917507417030976229909174546147021323198002643600356296648772416358565946111713645488303505626231369696201899206131352366527924284159136399650532446081339371277881759409174499198028525795525492408699997093004295113580634719582713707228965685672883167879151773696972969686123289883138782084466531036928921630920762414059032235378097686257738846505622758691127363187608602676640287246337396916708717236982783938954060392752792041204114559820383298954894796250433178440081824971784493518483319703398287492634895850188698324175026731252532403945568340905618989638091270948140954564216809879230936048664983582640101408437490526220432273945381182533594239494941301730650794454022473732425013682404868904503252845862813703421986924368315030548596128138537793664147926255944110448330303488036538268749858923941276977520454897043533601770996545183920008890261846158201668683952282218586540055202891032692111406392188255387975333259681349044729179442195264660674187087597391530831922819389691784358027279435524252089238005189429984933584021198503240863575727519125429262251153330906685364426416049776960267388478680909621826945878923332031482189699122516624923651876908222717284761608852860763391266584763591364012359244994374083808876229002278728581032948442087758864878448622886670984867399899140039662105308936664608604229707500611057919168016737169455419488431609839577986662365537071576642586496367493076572354949563724459135507768959390983264913419800739288214646665192134385582230919276966409430283419203000572387210915788656377685180573149169218292390049960027522021887321649730901388378447881560342558867442389567277963766867320538575008336871908491477325369682794162013060496838148107955507308750810761494836906665886530920335301266558760218484999341438692622732583081158932627988326481491803495546270691737727899366099527500911550493359599542624769399307758131833639701352937673685562577583382778835531444099228518021191450407643341587403815381137626072357758355914964463222603193780216370222409589683860955742748742967765813803161434703103526836669971719527767534009336099261927521598462259041594999848936003068278570496326056729721149790407860191232505220103236782801623338186268854349064351863477606082636937370893862678482838803429890491868983717215444632034333536760043387022425224058544534768779581971813521502684054359768438862981187276583953949019953185118452198955570941549879517343303275102712072157866860256689608377677306255978526785638772199832365336905449226324283831466976242702048631256273900074412436982904086272828360177950763215686930613330280455366509908476725920319990042864520552937922826240509149178046960665423518470929269918687334912662346486275234191989750464718533208387812357054156380447214560441366417017214116863726403094443758567925202503523517697750599373134428059184137814845286997583789163857066286788674417002921757064448965293873729948028507619652013876410137743625329100970608746654852118861982265284325040712479721793358467446202132110088722556616892010051437934340883809235886848895983718668598764339401231976820985145868880200755495710128705112943223894379089435706394693833407236810267688552352118787716011387174242761900897961674308821751683973994638135583051022175215345663887207723883331030900501347990189176943374179868669634659497018562949226668315789466530955712585628868790359624044772664839009241600493370379081336593346477771087550702582837136846484971000023842486829036975811755333827048702658147331600851573484115508143774181318319138669086347927576442181764207379925170318971953454637661848531955980478992306094239702323347544633148043737486080692329657891850357786577899992242268150130153289475907290510948841641436951809761102861718332096728333387656944697782806115015909281473312850757615930855506244798501567492922034949688843735943187592989212609051906332943793820865015845269718742910981193282295437333702646253498468446594840346584489014332928722529390559287898587840866853884297277154271150695165415161397187287414334957058999830972000418953631284489927694916212297910184470012227535303933655002916481737837623921821395218674036458065594033526952180844394403021093889853395736776135902417002831419302360993342555373847477215761752504730352305199371167820437845078900891799914551023624356187382146716661102232307076012271498957725815280962863217782910708478311670015270974388507367739750691634237610546756215864969591150667392604666353450597288248506331469373436698580120341610366164769373268882365005955389586275189569884039580241682988932904390915789089967856055361259942174784284316093343213145926465128506839778839436501814494752630909390632212169403842298714417387424397234348307802470739686714105531865450866119792819663414986788021415919578696192668587210879359642454681019321087825230004455713013350680978149315686879339348400279270068799369999137155906544451161919888294020927233560213094678812509705597458173050035171581527445891669389221821444230199297909255961015511470568526990739171930778188037578221472659165912476284905235899320933714843074052047147753878802362058653502314712851035141176146280767325571614447846472733671993191992929926661915458814410958713822328289519842117316405032181687419003525751085587258257588426440505820819290651792061830587143373737811629311112855995735675384235815163037242724418384693332365943514876440763105587114316543252208584853659911128496135121481006104928903521431406297052927515343354469073547093427537277476636689048215409194035509033605539554121676875649685503468111829879229653392131472185133056334507395603225345656705565874329355206535023442252463584628906091927962794849413965326268119839273850356049113340615434040928897343365543406121695180538765214256351084293048332800290242615477843712924059122856906420836256503452950869607692048871521045357559822373491750284449123171517059212751452959827682984637794328189729505831381715479319100015021951468769998711180309672255149800068134861299312766421841721159259733608574108138477357268297292492977347093002986667034115323000665585827337246992741741787497363673908560212194268959085078242634317724439649389716387457581156668435497573962937359122400508350815893717134169213141370766817071013790496032600735933331048022487929693563000348648181547008670781490260290589444268425670622418628932809970575544198033488981228421252291428324888245017566733854148054969029498651068645127669412591131630652500857309249740649546821480068397815967485711815705511232321423923558133136074129591786460638922153602904146257580797027635571812001820795892966533465465569721209656470530849333823321777499592911606505579380623752147000449410300710254905846200361172072009885343892210511047278610339889185669131279303419433969944610808418033487140687377454119201369782343354560786244869230736200534299408375263632261182149163628826690595891349819290118805526700755061241738458412607978052721150034839957935151577569245366638596847216710508215706263833638614410202299282119315889796845242044326172945151901572799141895806320123024975388851856265347940088176640899389498019548187134642463376628212277011680418942276616542986397589724406389008641395077492616886771832907690452606636632400574089678136556095443131396350024428665523520581757437562503855644727325849224068146176501305294898572983741130859412765779181854313275693418328165416770224476099532436207324762637971190803479800554627142674675039033339672348142821630691533626774917307370670754488806195613436173953280059163850408020513955688419462803002589339096432026282033150118456638509311676669341035024575741469821671887132866023122942350249002701496383271982130507098047823171005085295698079424178983977146201065929831330230617014124088327732412971593650417658051812177411604988780578832878011740099004449283620594630802728483045331706665488098883619678748303692514149596394489840993239296376094884211724279900014834984517542654484245226041397532963821229580381027039092535089651019461200109889415498975784818066195760068672052700591769021241562428539149511745755078776489202405579094158814683188758447956988036124075255959138424724553256872484939043542745909436027960680689212248931868326821024393018367161474622371801170298721287446176071014148100594060461498592348629901050341079717574327222336438931955361550022525010615505025774074268830521781375718424800996090170335352812813764928940057342946962757946866836820859061769775997241773352111507777739443946090195909715598971170067338000740411777287378011314777147852083699615002906105224511783709595122157473808982583478211485713656970164935525624346985611505405197538406440118615799863665259694300161160026149284202365906690349873988696956254484781422616894464943591132677121875704880505065799285461597661200000670113153964237415933950134929775139159037424819989922427577084837670478065255249565428279331553759691502351939580694659245994983008769267172088015669189887302040187842431400094678557211554404072815999738974410653987730265903520613882904902176258451793353384099314815742736683507792245355680152069585492942954739935457552953131171838192271915159102802877725929088025423634530898649361895729867573719682953857434763339364187824730028292079199064530090212387508819792047726758600236482599267563103825930042005552274099223525611377671255865550496902232306580843421428605225914561270614369002831901424308150751092677176720962615762222230125416772681127500431015004420550828237976209396410755362637177074004117033555571874013444356341040243006232515392542727133153024937560532770221115461671971798418435202227711411543039764191747265709580349992231149683845281336455781739966491804939584699267646985595181874210281721043217036269235605445436157148109619486054288534330378916281691242184497839118367273702713639580589478426426023255162021778756397394948484970505609122993041909686887369769628773404310744193075380756985822795295456414485701669648116771392636882722856940558364489650041031790812011495556118893504349246526094644731979228660069863580429865041681931553113914196196779986933807759754857102752157633409042576128536786447487359521896120336484666675886055854904111694293332762055760766339123395548215942421730994734555491356399934014127701387664098975752512271572187926839214254965792736543013349217453663625005290844001562713854377451428222556726459487787391484768091170445481461482234257027758080859437671859104071297333100473839687453520955174321008741979847421915763337441740998345386232984031980102196426150314919126497850612046434957663661893338753938232629597692636956190809898463674125999352677488530341412522362786495302509511566995810632539666225127096319729375950326874562033072432366664496889619038926516059027609753833415026596212389322228174992110657808902494500269157654143975338358397009402423059783740876914349730323765831826354375405071507229304093333522447159843655155506148927821206092100306332116143887548246381102774519725922434258706032270862244822744060885041800967910368665165230448954829917721033713268871256022801940621431397311732810035456008053033988340693916483158172326259914660586977248468116141320938429335549701284502692813662784518049899381137731157411586110670201167524223209296107859139251326983247906813374491184443904962691292781183986709361103424029986065946038669445699024196806153971490673750060321881623486324783160267285354809170581497130699732747481931966054261004114425131207913700400323143821141818509243616868232647821033541436892590454487702137828202141192797714524653303867984786349271204469970484149041689005282070979069482105948366050374838090962134995336694713504953417224343619867968795900754981184760047883089111733405554281700577704346063134203946328767759629276281731062017417623444746058303899753255929844533476502938726447160241178729428761021680641272688517721313450956306059938420370616322463849781524855404471467663886596089767913445194402791933923139133880248176439182098039468061471263715108948800671801111402921037438169444178650405450115515282157466490170749122413555949858275861236708042288160792103492538234224338752768439885803386470128799954820891286606058860688580050164462875227458571022411450746250715350982040547370511341351130150934768181176233987426873088899928973059325614669036907683579549803658989365206847967486385142380819266661913209100326389519337107407142462088702092326278405548634049241031229229869355678685185017466171946277200571022320718925634750160626435074954611080774518957398894711394112038920093888631013777615659744986051590702088561682317154452411596228342565586316094804950713985464295853309858660889376358583715126159005162848197670763343261803059317497137924955528973672177182327087720032991715741567171253875284214523349512363510364386692566019771796551968579898732130746567360496003727543800583001384471885029022748794828515702142275132530476798402479841633044501940906065469386980605131260439426472090187514534482280952954463143928517456293127156282839608642002666361490675895088684076397993168986360571083454131029582561515689571494211251111540394743876638864432469589707273934289025369664505472991581617209125303579214127124043092313903423669029146295267154623689734471256708625853284212973702497478018958381765468911567873273994967349780533256433654581471926483489160747155756225638239956774788677483430465855742225697004178542823980142827277943762452903585926324970154063900075654452025879653684254192712619589320397667497137006783477618778777282363075457582547803739277765325116726526907847910741044860496698054934126929975716972629341558202501647607666085854216083138315191191851588806721605306921164076131742680777449085494366127265668603837114259192999222274449830297102538946264217014357556342642494057575355828598543846526584791563707958233924822458892985597733671942495387717506396029718888914771712032561240183376868455177928224679324726293073043438070067632113019659892027775244567073504981981998261898312259260257145660638145391386442218495703001275746976385936252979186861969560254772015941949529361459235230157802035559118623075552586493945233556851245492830040191997896809386697814046247012872993722581305644234229802542049290789404456272520436275083280106181291147885743913245485260507910633813448166281463398724175111595275699487991464206299353931037747748755470725275987194638700260324667170454175558438907089489467757361806699250126354292271301633164193746807550201518517570607477722052541728307880253741153292845474165183785753928520963964885911524225392465935133392184736068166216270038192622876073964027880797423540929031677411883980412111624856992990546098808449789018936969230810360644291958472778895261313716374259091454580813898961578103793913049698683263807227005747778267970752744616760893236998646810930349785840796297433540457297899593796408724341720021503725601903128716403521110292228393547919700993527800143915236666409669657952964897610881585242353237367779100178564324517539003577342306969742232298704737248150117712821756456345095582261569795610279576675827622479989567225019844810363062574561493812189830760297298535875585255875867372202212713594138303714577017175094369650108613135149446668071445139181488420746853551625801937137842949003618043579255974394322928645202854045609083569265340863419373633493897324332937132995845091515023510147872668834850677006571037298117686779909229244891232147092792870383410473243905081730406036156877198431716889209069473683633398434320881064789406899967319512942483188361787624922676745800292101596728687340228847078305701592434487827070333588918302112909008796094582386843962917155641904118119205938833349427762165660696262243532418555042853982420678041149820798023069172748786113656523372064831131560896765948539393330467394639052643375015303548942731610124888859602800433513446162304167787061763932148398770001277878434259131337287221631325184114903269816752138208786289601682330094592745235550255207313112192152658967354421412309086998983000466112284189084365642764996570902681231885344684159517206973000529310909027095311384252111868299012331844291151867274212331123593033070460170015423376029966723381155548144462578039122338090508314844339906917495996605191659103740923102673086456995982744712751010659349018153000436723733322398257582588700583079314021569114256976602200547054087096675036072290882656685870452635404440446074863154114854688472608607761399807345634225867978745682093944096888504887431833244094134516289868752110870604197906509259933541914028407353271930703414700789450552371969016132380258893964560120928895200131976046734929256900178067022425612372112093523719624985798740847018018308796402145520470778135640291556141787154920536037280926883134947922272813376698121493362139580909492078123607315529247797265279117725745863676571818613384649694373511755279441698501403288299392005496892975906961526919188412283578012902007944489815097783792854548599930767569127372521471952801323238090303099133456133404553580608192528018010342894712009771600550739304149581940350182669016625033413707906291634111730915853044306420793301041518152914383211638363225464776513656014047485121631115534858738481791768710024635238945123774058059259894074205220211030926621832593186307515060121244577014425161572673966639982085698006470105310583376060159496556863449694510780481022333957633241356726341341355817558949428825829808917395086910023109335259625685875421249869838663193603588149791472717889619796613662047139079774169822478449848895309310793727859170042842446802657792597184401977299215091577209532718522878405035160446751575360902790769108550616454166821957384671087711084423106878096822326392201631912864592851252529917344906232490130650238953589134190986326553595893127891849317439860121353048366980437733225408550971915296625198594333278762403871689351851304139877677736156287804800559655100331761418527654516962801081948861848386735843532841606211348379330216849554758705408001697330037460766787393630154433293433919322402620869940554212890921971393004060992366123729914678633231596832203636081690545515975010386096650228082537367518562640599210198301204457928302559250030788184359899275410874799220468184885044212623647390384661180563932393815038264157142976022836018807601231589294792837278071671195065074341306360971721552854317157831745285184688947003039214673951814514446141074068687413113216323535033856889837042651646476148701006728327186818690543641939169933949858411199478929247203377893203780613809510607564989932069451892615641044979087777672541948195963319967518406903003882989934492698758048416844422512386555632960977766707607978587079131174240591884131007269024555318216875231307886977975259381200282319084983415792965196329212315329613708286789885934583043263001636710352649063983998688362956139083428574014166396647849356219654593625096480735630240395773522468462840225156564230794189952415506035187106761526129644501946343227385139855903736082969291550872259850918618769814112409365211734109183595685881083655125937057905954147308006044823945248423102904649626758217835749734486496800599773977285949851776695302354143247783185323614392336344742603657975353622385590117480680269041537193313725463994094578911504530637683758884228982187565452297523969243411835154700715010548815686999159243771537326882886840138534409534334304893194514879004076151222051916197592060638648773775933721299306333738002051802518019909910987663842213835893829296616714534944615036328444787415113594225965404056939185142381635935021399788357148757597000005377009569820643527871802944961928157926915520184947428191883251969001654582425307143734910090181614233075408896668478298695115983059611579701557373139314384700661315969082455572066583490675422384591146736670823789086197237914417796740012784669151083739927920736797213810494440520886049210037548744109618791941726053501696624912666850376881711573123348729488287723234359856015535478808718142387041594404547674967444640600190690073063130561610984367941377644060023983513674626989993850137667425877210801488104413383568497502497749336188608482308098080114600474906337290793039834652240426767039963432493302215644028824925217509163341956225213682201736483864469416156266675610779977552485432048751936966742865948071695978725658564422780359693420910780348632125273908427135575225290369651066285860598058086206581637546075687611315858074766031436311227925599919428866711106532265350654464483543894735865190879657658585827453182866589784472687302419655371239862560692398729780455091587597565618717474624735547468658500675589965373386042746264090347983666111417211467313004449299953400825655434849073595785724899794217348777816019739184827332702174071253903425122563430064455543268676532611863027835066532865463554609693001719789582145488264168321537761650437657580241719083880982637331525329509865167820404021273019012326704230804930397153632893100348869194190678828239464446097947658555026258434955747142787942465508225866903107553848322639341407398244147832617972167973545063783130436851644748865870329522228365053766984014527763916083491455137336435935302556451200694842895655735415931525265133222841679837326946919352338706659357192344537157201830256084384657281705473217998472435454108740129215035294703684564877368727576692233583385117671844331038410154289381365935627444427832829278310260805595961946213851821315603737085272008084597185851934253988427488073514563822931104548403504062118570927821154429311649643944961171197666674305131899862406929217778345482237908886701261081609062810973434401324152757879218561932707843578177305473474845797204683035699689776943860274679329387838797547217902818812498877435466194446421124889079504430053763264368012731681854274201397194174284706891828766620622492790977066208860255622955333987751976408198433186291893557397735677999442501688786540737382301415075820687749526004674761581539336877944961237609513669804740733145311944701465052585553455613767627191341507566192729922830947971608801819964475960134727751622515272708893916362742757415848740436456407346268638576716511220599086943414062359589813527546291256320795636896149938271404251723788350705616366777100288041304460196632219118657817164104751210248026270979856681807699055242608526484268173946596509689268439467282088734187784111761409066110861072662938266202145984444100418599350399640179308007293234466623094045353112853569353662190146037828880220790838307453330219244218437148993003706558617565306190228697100808309997025955569317618504818419933505976766680207282426507409597536951654709425463934437862491544916809940833889811893190774690724027455351604297538031612098842461182293385080605996000524900388018100415213280490836518518503181928569060456903004694532872738391908344780416773491251882641852800100457589148683467934362279957808928617634990452279739261599130549169344344085485703688321573894117817288091628120634875019139371935869247943217698260596770915512116149569347747096021499015018583377571943076511555822295302807329104294389648516226963770763739263414555641131188877031972170523212545905500532685026336671994052003956445392304849591492951430061480702390446070592380047731279130749115991736752266720307775717081955139454836418321655683981446988865696017895365008301435365338085920921375161512090297605884995913973932270642600579464943676791025340399597706485118993982746785869927044414283296346173478342058880085019204164622869200706081326617990230046351205317133048087359861614040084995817043134141528535623983511031810993401025836731107882245956934917447997852510795926630014787783924718979454425134451373980773517380861048243279683021881355291349693641787782407910345542652626873818070703890839947733503934164493302334833266098394329798553874527646656134947790464300754209807883334339500113705045413910819613269717584230384801724946729033848239741406240390553246487692476179374453941816090183955082148112697127061120156403012577569260373310057833728282078964085179929283363417088778769323299938669840239967998273771880974599831861567165049934653970787166397301769964608529932003648756167691863818204509202940349278657042207926788093972940070237150104443512766196526859860614931501750554147450039476965070213848586019054507076795178934466503333414817900705601430366410099063342354694880912188566702734050330210799798129950868539027026517059597443697156756802300345187117491621968816652563612905316409930041943021861936786698449563743281695690870902912742703525914510614761100838014538218029478807448409650122538536143462492159799539375396020762457443419680157836965277961070173258882974197472741448522413554723245136574197349536445053285202341245687905714322627590287327724513254300464408834397559458991082831936291524533932440615739795102253323152689233040865746408870649707851212653098085216906782958498809217138563416981377177505620163594676594896212858327803312772077985929780007146188144682550070165076266711349128366849264677170048653779795435239394245583707470248293465844340324638833097345331147987337364006055884589147207531763524300574217021770021329828277229008798794731798450599062728937982083326744828737034163896261781938971108259063389915308678505218175321111758197232017234850017648930606814600514923805763073275339953098047811164323158637750890570487941278841746285562606725773009255539098709325006463577575873764191769804755936045794381341329157290806553394491587297237889350164770422494950377873864858540655685931619252146782191175303200626482871817031879181877690092865707934902847710768786335830578150620309568481949899546136131153761200380284756274988884144892441947765447375862162361028081762250955408589905875596922956292785488332271870572659984814036779558477339574034132316539901414030461839960398977921023005314629796770316773091428068645295509362551921251269352109310426086365389496942534262108369239529813893917679409874051891929982064189143865600315180488143439459387819114745749019061188285912454833505694473643663412396505714441512927255483894385498559407158467013172783008756042569449390405807485437385984573389341523811714809279618522445834793761045314258839640323883532393378399561364818031723344637329076254160367133980966105306101495642147609446965345976999590874245185992749818208410765272897948629144077269598586227875434235634609241402912900954348976016752396076798578059526135634774607706306661872762014041671829004802618920165750757910873927279367413182699666923355590071845584314673614207163623902109396844906281656087386947045014837506051760979248124787551312278485054776878939400259386822712640676453655343276073467239438484330966705049684453785108987500563116860286796623075609329257012418761735349918375606204623692266083883084209894158635132400102477496299160684720412951043847931699329805123596657702814816059345878597705213228305886645951882431964236174169997334596622063255725781379530952885770901481679451596860516792386236442725992626223602484218923370686195748578148133062408243111278235316534128287898294931965934670906209648185488759312115110896396947197936424207450619213877346872416204376196531620686956409572361372317505816162514500422196935539127523839100992830569327899907289047801346756984715891050829979582080610002456633792524619977108284666502865064739852482357680002890128636203477415191454064240632896924651304477249988286120519347558296334037842035937434377853878340951237170194007445013962431842059757497401248994309639394766261503440301002783442889541281637757526756746926587502551816635092338535209579499974415359379692088510598499154057258477046996204120732799206372630273390541950935183107691128108399817087079018558681564919177749264515930359198792681577855168129126931184455131009903148194822104804498081229920847769715210414655962652083276512648279808970114737963827408392324026477788027496061207621929134215305723095659885479316674726676792531389525608136976755839146706972676847039074603732421000699495162186358392104252055877822959463259775810619220214497601693668179448034013833575723879135466965914809266385456313399692641010209617919488105275505266361390502898890599588664139837722142633104653277036089447572644023050117034060388964134939840637607485412346092336421174892206346851645865960995880621321934600994287673508888079664314239973917741257350460580092084380899051865728240210479053844990126453441120998094978500609336720737352285674196537546031885126982534510530669556535670359685184227366345917999778416516672980321432716203333407898743880048956938520166249715585878128401112409367860377488608764965537666810230434898338780247922502575255391624433721582991645613767380475451706064262880318489824016239005691873599023400351438657128432047267704440726040644375263788381135732149195867568445895699172872523612556459439021149502215696871266351227808050891636529314208072560077597395317760842323059580126377625709978406781597059453543444583232509739326241083619573716189210725458341391953206665966589892015224203885769447455051984443346863025183822177118901052219901664759019572740388756918711634063940812695758744144646390498302278980225227382468455377992292528370897483476280663547205993789228962658389177433742587788912520789181853215600175505917779208488128037280859946173825811452644025001897889255592184379490766298415760349642141087021014599860047970940741181926611921633888510488380545453520182736752699828229535951040735200674263064202028750629584234218485125762032914060368138989258822108573388068820805648124632377187953491867216097706431495457902940330715625684165326596035539814830169504264553092664612830760847099082235557205974215224323745849046865027757017269093151055616083655951100711017883214974376001341651944409423354126593034672702524768451798580446025130745886333046520169263638615268346754496341572846110281347134213668261221177078269053318850306927311563160553421799974951707451739902330299874704588661561910804491247558562825777531303744069568166757265240101514751727627217850437240299306785165095112139015884646227118970071041131198933785851263124430120327763949589784310777250769790592970220931827843652089362644705193829605744887255620843793599321568422488072048621993054933779414985969243106301362715964304936438540300205068665999500460531895797031183219709605922947557026623361227640324410469040336911814628826707053520630490459219314879550295034157163990467680703866004501518547943740403733463161911838180471795703550290082849494866783079221109557473245171030420175880479786500766763683539579599660228194381619436745398262438124878146432200677331956483529033266363771288914888582414215473041423314182984658086764991115848944730848391379146846498609419197296958303567362237519761054888594733118364275442956205787611000506671078972186379825906309479723823944664768682460001252629877531426790870615577184048149767889068794122513315938235716600045384540037584484471162501023162403658046694790021878013786622320624404809581349075069138334022480730628120968278831300455800172742254717671289525022503966599557754711684926535812562777148945526723103271081761910603849043202443446837734294686060139192664889880994269426351082234568448969009443606342424614067554409865985892990135873851675466761391295338069856914128644382527191193670717140949870340520390494354563100019939963604059925475675270412212667663094329361519047508737019270864322848189475882318108759503689901974974897076530055478113317085341469504570130057192587488459892755102337761983877210422479835409865981903336028065492209729354341312113280962440728569991066279003660029141411614287165231008819600176818409451745185732045512204543417795877445480470119705527304877768675512367936249679600366422422055112409282895333500181531356325467178044408480194916205267977388350378223865687554737483061002493293120273840950214621122645936544070897992311180863203485080647566277168947912151534762748235089814013177448694017725946832033699069145998397576814197864828745368869167596400330081841977433972522707676843999645297613616892090128235743367518471560239991348490137772995530948021887952212672271872505208843856193755356084674480728824438301319663288843034975041967840404371950830843304475416547631105872192554763193968486985595883434618982133267288531671208949059878303579938042078796993509471669270487444909441473985196429035844712331994241703745364895872926375693085823209490782229499706857561154907815646758069680476920348422523156778483124690712126917851319425718720205446147780010105816151198467188008964788593174828283317244552517652693524106279893263982731099525832423715634115721998039619425048664982591374292239836267608177518396470684992198150165582977552877132780440298407652960735808558006662426361048151779685937794014331774863847685833173421948830295330037228608114559835698574463381301881480277541939224055577571551218625549070815636428791157380686498611588900492702900769356859720686361937842508347936754296835782571277841850723973912114029720634665445321159779933338453136142161877600448196194046309910608166183831239040630534011686374022639162078902534678006682540289646492964792591483194645088932288872646461011090550328759411221533424636718056241421628158975655661368410186674998515879120212284608732750155572552995544355654350972573908317517807263145319530840339670927673992663866948282588562624230064860934663364773617567710162119329985979723707409615421507462714112200831117189130435863398240764056520080907704849484247684700224527201671964646113578698311367748254825908124184167074745887889805279890903817016606917150990706765266989383140662913945224398109355482413301398617711470413167690426852644017549180284410506728300192276241417151957628514815102397062167536125973471634036519472015054470181257326749973940802612250620986251513511000074770008195696558054721028870128484698890945784941612857026448072258904108890225921282444556131446858406101811965638497521972295286040515265290057012892420325176354964313220577016239941195329819361000658569367916374568954929176383346582095426199981091391144589009260193879723985536007691007616131002432686719296311225369583132281912472346543949145151478558301921223874053750320538445753795499535842949308890709371765034165832302055393470835021819888451549081000799712942575703559036688195701519575421786853246506663837294506784530903819878955478688812053767135205834199109498944071970412419413929512552623356320264607928980039291316088586710478038395768834549321525134116825094784910455705654139264781615144737461405902423036149558165710608235925269721256873144795936872108820037279965531015459085111576009244688488912639942560581215690833991843853190131773175947694386083602881636654359620001947775195365109615646307112431861077934421642451168507857165044688957087166841806654779961964716692769993672660814604331944695686206675589833317111791768342756019564768186023941607877377296956994397901123537069704185354716941349715043379644640067967836771101157540779967466109916604883507790775073316061151070385574830581100121133691958050536504281780307046824218985587775283013421265262282301555291121704723908207897063461347181501860408808062163202878921392022779029721270457790612850851541358709402439525121035834322155174892809630677913462588750493168237432986887912828933024951143789395136640112160020493404626844676378628255096024502368778906142285832048625302418873907330229452605395150193990300002492795526229768689621174442263804169585368545565725631641153727622688684077921196811325716292321449634737723170466200478729997852799236337899371481572100355555555974475582283160461763166799063184786179953150706942991415826494369924874698414944501590650053936084026513544204136969499797700490097710979833629897823318893187119883599909776850379461333002056376968442539346093732860994083725293146937387746412629792845721278254091975224728438388352845596547751847808315270712055662927853251750715303672396501943814185870661985154634052573386989693844819405613131751296605214029824673280473605891023110157254211548968431530213814185137202971413655984604491471752130197540335817685662111882131760581096666196877287017629171994394741631192182763403510789095119590502490801616728093685981701679349913156254696438248222862895471026383896513794924125500456969967710718320614951132250517643744720640076297252124344893555240267605249385405980755048746894831987488986388155764168374139649531747106814995261472512508183136484464223277479966301134702654877108858979867455483658033501991959470844536899113822392987141776368664312294717679784144679998466370492264989391184808559743919795681075271954396067913151876527636686573231290190355996685283844901758399010139047791337076854634263800022065096546729876600658389749389589353196916053855141672933011486503970067765184515142872173869464984451536069137755915165209640195729918638452051320659777185971771681727602832976138664282060358929222743069150441201588193239677742507550980041031825244046118028390934887342070236856738291624247501138446946428018522045371014906365081357609861476998299399654402641287980517529366350759949071645003104267242934809163941500387923622179211607397562244218587652195310618287403241652121711817132981254641269490485391057765278235264538102321018800134151257204856590398975655445086784862347774160383413605629934190728427931697883694251392752427435185501327001182465883349435308300378966356944584661826714808539951501312817914557773070611048060017642444386336256155361259406999253731100043892414825417011975547533842489583436148458382686658689561552097101121251997518830867085310983973953758589045602978224381907246875427187301218058917593570742357639350863117915999838955049509432328587011168559914419049803997371471315325580699432461730625092345696633066346037898430605562262468077657626467122482878132633814499341192072353379600967847806210089264358878548871120483431665627098553626518899019414367943652401926380258698539115168483682610996904498668073495230155234377230895810669229368805390237485108199089566065745018822507699551193185220520964944667759390988053800265135606631025114663521507011796711534740605568417858394482160746036560233179940954550679801726349305960046641300604005714188199337188339340753789334227029596751322271677551126370871382068734336813079289594358007288316507316879247046259344430172530035928043821342827145080086433359852068915574642828225647123781541450079641923504012564293116989266005154563699334409136588788452738323664132677223146977051970498215430340187469034050274186038947230031745534907911457106151449744204755497797249497717198490359664755229048507749949405106180703747066422955367368078261034542824394097226248778988543953488982327023251503030412473676775130134888271516422158291353770844255377038120747563392999426016427782305202728570692696760606048066343962079785654505313861851711780616895587560706365204040873569198603623343464434193594552341183084640662760244986164363923416790163967555218254070322679793862580390837519738866857067374924083697469574177086043629650978273370680564862061090578257672032925821093115667049091576632269012976931273760340444076990906044935755508132728618228694318114026040233217093221782146641334967438669622932874203578337042709122959677894981425248132468307708566259492412402754545498414687706607984760706906655109528001777665873353545994079735233802784260036291699391271087554310940831891153457565638315995594739438432513472950194794909587468488112923659126367464593120102855247054253165828781786087292924975484873785285227720965164487409127815387054993282623669386930645032802298475607451933252846150609880316316151375230245373172773150939871147787835739749420377077515091823541561226504641253376022349621703738945739405006675187692789678048167383421298858135161813983086105500548772449413333781701232714122407376843892573618916945628994198815958513831221436884943955045927904153693862784188839107498092514286377172290844482223746636915931473774355382131217465593094359309296111136188675413440023918964647253163597127517770607725448005941558023887109411889923785103566859805407213597495378592319142009513738691744937125097048995971606470476099940934501703057960650903455729214747824943347923494312859221839135168716459907851648239962867954227671161158097905665678553145761234011535085760147039458925866065713544381501359725162078206474488236891777168797696127169324609842814893490382702330829454142245702824184933998026207260663118563443019415847770121404306387527300846915798680272970411822801258537787958914940804891074239972550611942204522443215233627240690603464281100244810863735118133286438620639258546398233478133760135750692024163186370163132298541029295690878667148814043440360855005588913830708853749281620805737888424976931781202546873819770569444388204361800099709984879175043004434070035280214639515728389626102041100038482863769578268980094936185278790056327689750215645714948345511458261789491063697837918728622943863465368330946908099749726528669699302701893613775395264965016746743991960361989193328495852027452310233808526804977015441201047927368241220594414944890999377886464507872619018128152819939692300698145404701322653654979372397636189571005313754342890596931387208711902663060416778866777505545271456660228918867785013160400878075912401033758940853959831891220911704577558048085075473472801933457430312334135089770563844610947404209172860871430780673838267876319924789138336961455055684633263340492660092563052897055731053753818444760442568982144073389394503225750783836525033456072313897639540561158095648163998707927291398420588434008079461394161467485505180601956532570432467046002911938629890304222732197708232172670843413580182017308805450265047774653658369438408544457555764220114318159758020747274603709447546987517713505871181956581076429099124934867881761056408734100094423993957626339689842464213523915843904593697284219298715758331015502025576473644574871566542278180237750360823208520605576623374353004059071905195672504686953363284524570964035247429186402635084539125668563069164235567437800559978933440918606199513470343333327851696165455867413606452272337821396533988169396030304417194051890775476166062438020281354339527727236011876837577965371958355828078516333151418026338996027165478244447261750024469317764409303430375837757193522500472467152955465391815869449025748080779275213365877863420921448688835073015537479588405216518672100573954423183058568857004474172859609120468123001658950073483346151106911624309619503160378198573184052077563114018058591406729191718775110596094922201634472546095899360421742308189952431276105170708448601426084794028223372003780559774945502273959110573587101579548075035104647375207176443518252455826731111428796623595852599574642730758341703382771333921325394028787066366270358873769844649478139425502010764763388544441489845875425186257819976222104028503453620039155749604611546558914863563267156384902665059828697608186580246403565534000257361381871303384061379405079847478956078787402879468267181963139492903418899820601660041015412703763377264042272328602322717356339390766067585621144342417252771260829101721795704502332902724473247218029108568498589749116140773133906272792902887449984994600680135573072329781192004665397771811433338435952550345927209226389827945195266834502290491860147712837447726693893168021088394194379502700021272071703519039469087656145966251260207289209803975484738443844264443197061425695464098836295334450054704929699871053768342266459822903211385167616639532410815056322754992449290163352797484651096128509480952983835894584256248858893979758239135272793796879378837042621034276123886949957840874341068271692509454647384366140170141172542318925420088675897888097710978621273221303664568412825800871094508463967791507310768532418629585741373745194873135226658377830308356173372908684809669262934056067093101846124487717510197223851917507455057314598361040241492127556359362055977103643514791872570574039481087660818199076665455665907364214000630664152551717918143274361198333664067251880785838368815348598412228255396656938577587540091633246502424038540929619308226236884847903805928463496858790007390522465645760384385350354853982007098820466086136082958842788096866712732727898530223855491782988434424111270016065286615457746787973319912860642112394217110888031926756954959812110719507792097643129057923353253169681343821917640291074863549075661510794398632758709571806320308958824067610575313892472441180273007094932331045154818820587720303265800705453141150743777684041948528694135783928139502722374191486274311693988023507919072648366523278143992008176392110265083301612151084542693514701476087411569509887452938525229772209091359604076611112925117480621275887477581611787793634326282558684199607235353399429723458747077959301582402082280264720590205468409413776847543929670278064471799525957028435595684324990661996866020673816696037967857790658437038214239262257261444270397084170386648486477769365722841013429922528724167034123913091144166600666774812503547137642783672051776721266655063240993275242177723054006193273218460476924695627895893949973564365373045611682480552023232995848768819347968183051809261636236709884082235711833497377516889355365637372819064826563990375470110264558624853987764989797384800231973029471309217771706741167747255843531372435620268591546975440657362798940543919886712430824869892952666883720666927383511881066903094452327489577190100437862259080714621327969993480387287704694321789879486666086907647702529050618778829684535500244100205451022157141862476493683623885818329304400847182193198654442895602274613644638399249170660860516541674163075071966367362795208232714165187866476021809414035347640891892536477379353164660854280469735137274066118402950900096769079868572247416512949911018836000769429137359671624735835204835540034528752589004221540199624810730408088930816825311337493937882473751431544168354758343778108953685728962478193461793375228487877317301292525803886867830114958357978509381794762050579377482688553952849083808833770887581190556219054289811510113492671820935141707883133673275725917374832091896197735141255880226643505002479785530611359255938781684183116189339022211909262903356722742350183543963144277802547681472979009137416745304256161014320028668669735028005144727474298245691370435840618856146483758962438319098473710221373687886699685135611456511718043112076457552559069637695628946332597115170291003261748254733446813772971778894475505086199330728216268562591433437220227218691944769802127432968011809953787185550899094415548154661026210051859557507905143348989381808988583828378860523378854920839977120461666154889011900962815122586207823939629396460193249182732604643957738947576055387551885552809500836371986750952847253305180345126266749478275773076242616673444887534285360429987919386408128670632529446155197522890826307967536659968489192882047763239786657785056105723086217216777863677283766196389851616092326879385948068425467658386355372242347338813129895377351657635456122535314818250376863978972507247523151161226256809835349284104585823513193978934747668519694888486608433969136319719486751402113121155432967709528216948063974471610512466729868433767650203389423974870808355642065952365306146293838970152029732841594127893447693171559604176553991874921538348289771042879132291863357307522112504616384806235960258479107302671511924898413766762143152181004214697211675373402434591712751537099797418217227468766131040267794672345580297824421551619739657641361950381595631620297958848132729816003135683279589274164664332126929921412087643449674655404336833066004742696342676184761547493368942093285073858537553349055692015608830073073595193935812505548336046991143114994939436346818303813740336801642454908805332251042988165401727899041539920513637071252462467380275437505982448923845189495068098687055938736327623233163020238208769800302816620696721563939388668643007204449924224630108466096483314797823394879242504592457582893184488919286935027957080902391337431278403311521786485297606804306893854901430604427442379922159792146734580097085496645098651301966011088737133119364839934104529490888825113864910429343280204723267538280389446665312478891262435466493352911809467608938062348109518599446039184292046269930126535605370884730727410563585631197797228262964848008981572250156153364511576475270338412857966529764718536903345928443736813473051245211499257221739908659779364707310071702887860859557827738792148743899456334401401178800346836522596325069868316542875394106314609261125800129647813490949442625854646523572176483530792669999878103312420407924890580778010882821012418988756003645516175097832333655931414671494789934711110366268625083074702785496001959323630384698983886939706691772486692180938694319220095413604100160338142040200008955910905321330966895750392885011503622788140003686545434930794398476634421695159651533665365248228894201427147398880785543561363455580122191027997824890590223627050339003112069712039044253784545883835245701043488707915637075254075056641949603488488958479063230284948397611080621708912929309571106969418601536732959377447497495333086514562984684107060881403647284838485975022686866436539980094172491102936890529078029573900397924027241512500875545581488464866527753922291274325517926060605157698191567747133991955032493747681899629075342430680576530848049854589415458640400794984906740342621664400479954208869596159150984069573860227661281954156154102621561233005192979571352627270494442854312234063034790595577447952814510701513956662957838591858903513514837161345526047884767107539095728272147434747445716140854157983142449189537425407260296344090912455321221846263502837111567647770067879164052853644177897129885464027099119387971657090877640555491238336321512860976619650923074013762521079364031400093270239698490509856538271171215893929740384625873493816812650143961871091667135440561627424837625729315863154684353587035280036021754282997611069645415349421296913043356890273476704541629865432710536984603776212116557749040093665179235542611557270412874644430261225241054519874106461920320831043209955849369607839766139158643616124276062590151153577880078311697824856643669103256603685246165150178561340203559451618048394877092232654939145116748471885487191634348933965141074545869963633389815537455107803789112728321564721828036935000030971740326118250920106225693271404321767954322332332911633767268893053022822686599015018914248743527612809324304781967752239852508837290213073879903393756221390177924629319988540975799504403306661353480843885913520898095112839358337647937469651189951433894950466589028293315762589632992763535519282261067109204107020870169097459623372491224547329175516676809199992127498101774298754639494576893460406669118894819006941952184175130565696383527448827207360179639252412536206590868594839726074768216868722747899111832771851451445361857598262246318824412613682718305641293136704002571491800037022605551165526510744080228304563563683297437560723617927134005608572389692575351914681853388011077854294700852336633143114135303923796384350031059584100752508744894967373225861623763062788957391388768500085816550617891505036362703090236490607944682667769938820857030144707467318718117452511406490684363763726319120754972563363382506987699642623194300923617704201923245431670510721037764694270885930973844061296529935694712039356400653179341267155676258699780068588800740581088055080820065012717124129834927840735509956375847549576295529934309915220248360442033866260175174845683575690053478398498366992281765801089899174541529949836916943957098772107134415483524263515084054043989182922207208903207358471016380061367013946457059532066652674717451979817018755876805962830251788718499500439319996811831526739389108922442913438561454941794001966805954916378270049388400062832398569768965362147736694245644776333630622756259152415690427570870602636585429628929469560304438591811244316745987593696942686955416792053015179731605864027053890372684014426783970117907644828549783598324874206880582806844078315639445226369081420416936351095918380919718747399795257000705806788930041654311843671635964983601315978586832984289418176692152561743233612602021206157504941636415525035392422938892959441262126047051866294211648465550790058909846758868495174963428939270384711283997279596407923547351050092974149629022830198856174501179420318397454470581541949325084020037584121193228634549941175795780386839682401223061118070481861792971589411149307542188564842311658478879995950735934652851970301867301482817902202062311157351205758361122467096627836382207529573107540803647379302487985595066858076896299817630144366395782452038987483012621217790819980995349559776335634019345679134770731040805021638762493571069398034225851836782017681442958418871325565145100429039243244771888616297583034449192860686096674507491213052574670292321415719843635326191816810916933837930132417959293288398167156147677532041008946170934454969026134961769945118455875288622707530316275745033346145136369440613078178708573585959657823419086608166531372988841966022822806301325639362005754722058929670967766056289145959884288371369320605400825450551609114644851857540810215763384185573758490145054988176163556094563758825746251857063673699050476751523153606788994227636394711813102651625805632744168495151033584951799268243041356685065921409512514939304749181571782429556719932299136669292134728180076084070798404728773420872656719752840529192467782163403312874921918033884058725953632698274552645646063610547970694884062637980400818128252181732845421814602977172304221423184530322209043653615690950757300805543971192771197755181336569178333098606876736021283366988793970125705126767965017602601621469765290357615439262842458967850840192734427197744832950068419792135711658281281246499195477317103850294823718957624280632413039909266886294898207099947345186561205343344958055124991774748834834902192599056983139020415172858541254224076535851000263297416416249446365702932446536551918479683313228421414468398998309871380344055703751106929564009664049693276482110827591855301953007776723399376912419150430572855515852341105748400008248914161571672573177402021223521180808768102384111093494025975303377144952722540289662271033569134333118942158789810074427101309100028297566490901117970784648135620441699282773346556585401500201267341315772848687965608789007435931524804306580951167196673587503472528061209964605404245190404286012053860792675221150011276057155526169311273565566732146904816321394801965451952751543751906226105726454849168986894494639267132732923485098899582862340868068133677123759328243287786829832559709708029593912529765668032913017584585228319558933095971265592247262297947270455499488113531977141621010819624200998150912650719089218336337969502328815126261429561147651359207444621361049511849604938461241038355666799804234932279788265653082275319665626623494191392545294997548763263441019542712965731375443894909442641678761831918190284000579040113272202914349224624297571042417436361373080450554939530915329086427504578203027033449047442140811305362944903564265881944222852038365007403948719205121272638412903888796927950473910797967404324966550244123377130096181822042310724815609638038630259623927224346324598245278641018723635436788287591568157357000289515787943407558747491910744862284407839056598145419793242910936386987265193798157133871306259352688488739472655693693404301322112545046286229224292343319399255243153551281483455795322277087423617094101206689879351636807515779851055215167590925105438044822658625493816104544619928285660944729393646204818484790644468789961554847271210601201982684255407489625397317853526517005456542676293691715195353147027754155810599347232901360451440831052633094057234149986772983615656738381650437188154910787427760922844942342948541975976564085620488619217664015554977400317274312106993888456433988255483695086581128344302036106015471060288606955902917852262386582642593372426531091397454971293802740796316310354016830795664332640898626232133090899976524688945946440357702415575532382020344453926267516144928146082330416612690313919704148352907285537239904319582916664544184703046974325159902415515149911458943500195768828098081975976401356938176509234891631496469964306881662909578312710466419556474572157391217683453899626926993574073097201036902033813313020935843426993724796765656529757476375769701843060473576242725967698306856409387408069424676268357351858505235043088145445772589673575540595618828248504613570975928389230936988779713607366844653606180124389253988605743325563384079623303154390881286714475855107044697057258844944478491344969978049607159468153667485993426834481216805528867762773199252806821043273391756922877775808630696454785220303579218244467732028707246959962770143165606140656575601367530255517930297267186440974090617980236249463995667887650848013820690508350250774771455259531214160546131724638608319442514080303756903234011062170771900673875228029512079808542325514382447595084832344800835797989325123313107047446646235293758341088380014046973540785707399665625403701111242788827990434248394375321766282402751271053127381770829017830671761608627222751213941327733835946211384781925208600360748557255465240385682920397989385339037750637016759487068006135026737173902740704756581435934084461152682932069256575087382455495300178371919514393625751323776897914937510828512584698978678633059667909354725598552132153280700458240935380482191049967822390348580869936590630280588355570461268843003363419787251366007908542090050605597998809703843274624355601527678577284920534601033848661570014447879439519282483570663800483008226234389291710191586960607772735095554610020206867265846483776014810245215394130464169811291363252984965906178504242169931476659521285322468052013166580674321231698810034170325014224835274998917128967896140103668744551287461598541078995006397592812444463429746160118343977961594274009082151417000023692932243558605636878285087662811944356654579169189797888893320548631599789418148392547702165883540302657833382563526808956242636676727721602121320689266940633314310694157558683225668729230362538133586567626639222320468474182352243649182678382393902197512623379276151221998324574724183473818893285630687019281006729887911022271372642114539619435496587967692009400356291785317943335773856307461465311726876863696365899290754321356050651400053042267250212506155632262270164727079419742112879684138876421692047128468791218734911439908997005081001245605123919562530276281402531088208138951739490175961535824983930911396741067079535674864560907989636148168606627280260885545127253608111323940089134861020214872177186841393527986368474602110609755739244051983107011158859764837876806334721488275596822422095358453373696442404668633224611431475800456253197111615168358178751837761865323541467641666153101017960995632524150194777249914343538659405601020508289228194256337286509299462337998646133791652574556552672368943807394710405109537802036116906442342174934720298575715714830728768639853779438311675165771937136290216127453759076995575294274838456603561542758374057557658640584081056194718776607041279058279902776026128463609713546348683840899049488706844868218360232439667635839921800389821906390685362023358943161506039974024674169420093456084375719294962362134714936657871705157884669125495425714488042415474454140740809874498251969889401194505030443658935023520744041106072674021798347308633079614451363801015800101735150380706316021643043671331429133108542994406565453052057418048000598074996770027636634214497328835484280007136891831037474238401134618461076151331460925193781773204560052277040285507975602542798740476616026670096704390248041531462160266110460162203015940410077837681442849408751793992437666387172245656065189770947425174060520844763045280820976315439582441371752550245788227838276105054404087021543906740727083337652936087011374156034062869271783824241267771825595313558641740179930615467334106893088164078669135903999573657296803568991370803842224583320339379287715704160056851345919422946366910051108175171979039036826361146699058587453592405465241031113909399026828842356324331755356266177757876870047247350472721091104280644757403365627051368666905748534768645255704946090652647402759637206019741911144553205589733225585653373306323595069447548337272486688419028465870314543933065766562417553668046749474548331104709981474070663142176053010677356332551554826733540431376237778621734445800314627993367289544305390181946458575990393236225337279780758862622774097000529105379304283039381978678448897301186611224677391838613963844951670993227989286271096871409621679779498351735176307236707028500275975013439942485877550065134916373505652918248600801828041507048188870543414982014213509747548147975467580646726945976348441614110838664504665031381159508600956794600997401770479868913838199338336470295998628022522321147074073459532416847048721473634218301629506113787831532240312901996747957063477904435685804366898723432801967381011767897941986910383086779371776874328725226017251755066257115118530975786706084471322685918719754772561040029411242642861688517670867702173064345886805439026724371623825984025140104337135004707902679809074057298553146508509958059857594917389074120730598231509608133822599609811775285196457177652095837005473299538172248828726655573902627863138423391587971582622117126344773074476078334601847158655382185982223386972994172029897903583463284857113597575824923902750187920251845324045337741698171143352823453910383513472134537358811949951826018623580593230332057702698594689889757840707291658771539646772335307292547937275104025581648835961815711386299375423845245274617079661124148579608960767102949825988648833600075249027518748698506733544994075243572475024158209445745563281809426062053814570417041054489508852902818627994105072134296424974910403499408888690406152374600156722783076108991961517648662824601959301836649695646727916511421596538263770031928697028522238502979521321121190472618631606471957437271463966710069552442762934456427193934167873272062367909504351597833010880821652785871426154022424096443632985141735160282171691675931194369553899296577539952661807262389515341382445164918217536888782435758540930058527315479821660718033588416402734941357224862565358513988761479447874014563969532440625341667089099407418687756347330192098579494000042334645770754455877005321426148801088945673381587815047603683342847901332370868857492198906372416971285293540979409045881063943870000547358695389630932574205351191381475903172144874399938030174684241235304612955288195237405772447162691858411897568571374803518605522868113913329618010894613661928155311834207531188148780953368263635780071106819011979047307708997918845443764577820916058591745879358679794237320112326324898011400482807621978929355439079765467653516930891762691190957412380533667633140229569035095020777381298270502530771134069855969743681653035397889892243314879111765275370683881937544808906769338280939602619262503640946550701907635733181623298966094926705736997291288121226137485421128401668471454768062889386767619186267729575903985915440044309448214589820012560121842881902491157646089663719244620062768574860681961768478976715582426866558730528278459305320566828605462571672535994997888026086343854268646656193336270592762411460719802777182601453595228387822097333083073093116316705091298574635974930731463710032490174909313191263003308995842168462304810630403530962136734608884049571826701685816660184440096357330153819139934383287628323692936918981582935505635110599959111860225055830398743995381017204859023304370229688614804670941074531815285392045109777081630273054006963132767356080718302302032910746239146113300317978213922452247729968691962704852577237113231342123386822758465972393132396958455430493710316771581757296157537386557648575513770649880626510326457026408513087900247930357187150453778708566391336742383766033055404816311011468089882888325416417313277599653007721926824072038056346399846478324443410885965507328397925025812254903834310877485475841715775593714711428932805349684456910174616852374504265389846826897061460688853265152181413393765256378899073053570569935790505574070239185009485891634384601730184307065265603587725153951165200921265933571554055576111719399777423189039169283006959311600067903024064081103733015560599972351200978662913761268463742962625508640551210063209715396093090002010427634531031472648010690671085443851940482814594516583067524320482389593818126741544219933944500300249078477994063092061119953574040259046738883083801565326257744123926639062448906195357781500585318141895301343998834546439549232334678610703032200929634893951882802397775326482484915227526200015263163014122271077436961271264214227985822615990338156136848509979068350550765816428841870221499362807674467268898066473889790146286288136526892871046393055282289880295022475196919520597904302812510917283670912181857372021262495257466340087137937106986205544150161212928720941039711919489981821891413377093069932522699571652860135746938661479260645914569981366975750860748789314681733771635524243402062408094811548357078330997829316093649288763761350864747037165078825684701388104011847540491540641436424809958166759969689619463548053923360072670304712267395122211498627970871832703802541396973869993140289176559713496522047298997600872910826338814485778999626345385573576746904904992129848063521718090838857865535170077996527916871890144277562085242665779760942166931867312302378677373726470010157393172932504744310008029883425571395343894481079372424509517838579049352203758447675126755464865593359097317069529668737625002811665886931321586442517992884734506525292594182607376772923868898725114942998165564354002001842736384795915368621391642791272245474417105962503037985852400073508293143910843398715984752910941358933913560226568537545504962792407270386398211432369228084707277025219728746114719054280322992849680738933607874305265244672129892691604501027828701327919035013440716221042771285207820687340934166794207914063271876945338485798610872393943643130131570438646605726592382876937953214569072431071269693456137720209894092897786625885119484793545617531111782611644207718395704564117977521458366646408181339530196690832133706503087240874746152855618183742388559204997281658499094270832863090485918353486184739737480447634399782249568926153105526092396846876450886351391133764719883154338980724058557004406072337713626730359801812750272852871982607745200178011815284357241016983798968762640626604641903604849861765770592637984577852990308057690981963272793483439137671552337053876453075838025450852593852176931456631212023390543168575428068334540894718583810377352947273591203360465287334423826672359122082703224222168787550944946827640630351493714076706879245263472578985912924143777414753878330930358759910427299095923940400710844129474862628878782830300100513618069091152168357649263591810878894781960072624834420913985436719675244662047096585256003024221589418107725142602564176160514520817074759955033731684499381063215592951607011489338968780229814645150607901960594333771212735363585655944291587558189818960790964916819549817959249176496086946441768322814161088281450911000149858251723103365409972962979307813255353808311479536709810876987630567257676592009850064612129362603084106083822321277272629060744810347095034981941066198959803745790606464096117843300500420376250849217516212862048327260108589053608682843545118967267135765016488997716976166484097588106209666192437818201718018990972788364359931156126293887884048125169734153284899154649810864944192142395043832325015542730446098009252594210234984150799039286586077626854176257429020448942760709401534703924878509888573605936545511275103346055059256303233912137395168153162648292409155172075131127222930127626757320364642138344859532954692979750874418122164256210756431969606193363434075770129901808705561453061308584769991065277727584752543252621556480383436113398816777370001616869635032933334703872201200667034849593456973325809252553223008115060162436868550299778288310835166003112300722490500351156119379829487498940733399626985571317358065417867400968853385377616056841710906886531980711964236117646385773800493782945060983585003528833106501732258759314428901771161206362911160499937052324441305846738884487177660708496005447835029254322064648993110351025669066417549506637916060442236021521952093372612524407464674276841688295006727265651618039767824371136600551308958554199181381279968475717611495217437893112461858669268830645252243173480860922733258804418326000276212409781472426554738944944643587311155462040152666352184562261573588388416503825024155621878475628232043423686459937269669562190314703440959264479878595032738296595367698370515121741493791367517867947347241687833783875612040890057023927643963361638949696587567328694542721456580936026073996575880551589791144419282951710632790529310261124902146335627464815015380963347266422171810851977490668028822755645439442538366390153575833593578044448189115741092386990928202189536751965929821975861423838024145541680577899946088008199901834655031875335720988158140065276220987806527110588558193454010054758235815383150466481465856592740257344470538522724003106221734199679428490859820202370926455119319703951249314731603375393930002243438036820805713539656881060770002895780705401156044783022922849541168337012818553135341769072848889082773154824313634050896946048166580014956211439135890731096693888508000191285427503730217265011455489078898855882164960372931950812276533607864025766907539351034001312631153928022924351019006707826625885850021435738835275860173325713138633510126145944744859502004777328046620254880503468608791996814258211715076055423733647435762391868922268966521816374627072948471215682331389406452801519402408836405180381751920596474886184984092406254208565799341880296481699383216205147607503623518819101558196568695120096739451957912018384566465465530146514250970405110118831919576988180774795498258926011676818861616025272393315098395883281732199920134747449401848012764703890928494103608752474551092011963106999720327359987000695429075883445600492002692168011093017704102650259414766335030987284940180561084539277042620784588920483399690442917539169983887851684262544647656959416088646351466367151197900702579212293154876708297817462407819080822650817118721272542303920178387657937529581183023273883051296061634547348445215127646059780733010208269420750643173909121698027751466660699317881336887976967663003206641779683257820202695230465513471945241131901542697675734127925796377725424208735358252765773564347829321041190707622138583685919879383831723400891945198573078844294762251960882983188117291662003770648463682394228882838229545301625792259186070681524577951800231450749970780940189200699911515980997180845864121413922279072659316737781055952651734331638394659515356115796483957985816321096448631495099688192463074134880482349177618185136274991252685182915587634244284854549503060993754639464620309918093317702467270255178363721259335033332684595574286277757182505655860175195303529268469101714615223199782852678407159043181148535225799809012869201415766927761073830327368679015477374005673702722727048064699064856348585722654541874454601492246748143096987037734664183008824342819780726822703377925266407480435885589083878986417902111322002962150139587865093508676859659494014462238393130702097719788972445698252354595386257572321714407637460430928558177609774642304730888100629197006696220954408577797164477041800940843385932954044159218939064323894049568806238679132226012618322936954406179248404696795502283014021068586927446633838281121866836645751944936049123656764789825651404139870912065324558284829125708201170279094193871429761019803006823753263804042380281126142096763863868214726336292719888044559665786039540183644351443988460412126007658141621189580807433945267700547534247778405387862214768873868916275506253989966934987588972121953669000210132978640092620074753489552909212701950559191733389133178837493975127161084286851547897854835584502348372386507696506103372934419152975037518270217204718296027585410576013648576672167081216486653553773550844846539362553861545952917635933123587459053026579013874869475919635239034272690155098539060968164768522430263739277930641876220049739126750531312975508843024894440442116900261603082122512210595692019483914454696149110059246934062624411658606255287614740472707948743866503313815675241604269788286010023229684668381324030529314847480821608585766011676096764397689126888432063394159241166029125035388569607994336314852844959313223483023054519482766727316462517230946052629972152204924761131531361295284066763080000774474076512645715256959398423572251784842119000329948883664003079001010898668212199345681624989003526774300760500398180021818242088463845199355392532649219280237649249704090382445464597671918868776557619349995712063184386692126481147905415252146908086696408975575209005852453466792654611162750746436963199523718165119938747012899817984606320011864420535109180503662043288877026095776145840072343227539603475015167780176004804173068456225241515691678309676712765497288652946441797904666786446699870801004911327965162542272901093246626694385860908147470688206948109988316853346922077076070381019698997203237046179326578835454056175334271462756857980432927779425705646004453624301164515732187213495542395772870325056133186610270430154430212742098365725783989506503980183851904630723237145735961389837794607414922377441050084509317670271747115863246061006332595938371634555581835225346302439011480130662181718168625605432339809583794980055278177427788492376008356155683074656519386861453630775095662249988011123357237401072684904241055326961510323583711463843222878130840059784704270385733735478507129325990933464088538360432724702889060840946823448281507467873225484017478397639555679104931040571468210478906577433029542593073411222597544227263924797073479737902447276164995387224482568171138402615366976960970298475541923047457190578218925882219336069796915287185808313247979903030902877422612500605878983033853061800195656482370759322501430823401423559081770380214651860181357209793437251343041688431628513033932481270676181985042115065046780342449692566621385412248001501871545283567176244613396761708979043876970909488390626913432392181655627602751696394828839194729558310929632013394382879858208646742565603309478103604931333691776491938176658521677149934698678874407556033630830409758529930457455598855495401819878004116704824189123032398775546738214493515191215858109568799144846335117238090558380904967413107333135230988931715713822876673429224866156289037250140693775072365660179120295718621556955547050668169092819198015571966373705574293152914381090605438465916668005275159503847387728679377794380211571152968502942132727803290597427724746719967291252914055788846702792831512745287622399815980259537169162194645085240272686878633852572574570224404500307949289249706855960540084055430905838040949995369128069946297136733872093540041135830590309970791282404853996982676305087172458390595133419157100525761281654082871372014648735014722534487313247580970027306658406408997769258737338596762516967605485850121108318546498706618122651208585525408477347329839815572774044202728822230403259113246399818033803148999656174468551090597439275648001070630558581320792507172244910093228815131042747035886423200739485573254453835350799768799587376270932670674441980645844146291919259294775145612142607544640534574712504156293540921742345967763480424730330948522066543777878400071193953320064762642913661655802763948760223370189171897875554753942663031332718826348511671786762934770375060404969844924492706484561890187131558422656422535404044090420828108874109566203095355687301189408055575772157837443474100798506863920817397569367148158428115476086013903697283994887982079540305403995095287670786105288082675683409877682391667346587210671155730692733242313354021212501313209720777067883652161161369459112094790082574873949334814756028703651959596453668421678551803297644632538576667613168746033471593401350926564358605875584788385798649519772771569784029884250311790853954228757465363583357218624948679695936972105755015183943887862881786095122747192817383337545648131820650552721202383247835855075203463633866726985695028625991528278074145333232674294442724028926923486995362478162937171571032021451948204285830001103590427828668337163160992743864951582232101858328013978467423912412753106708455957451796218563559713973079546945884519012718172934135942179736924757352687745084844532294371489990229756060735763454552413001782595450680542414709436898561086583196641004517869927266390510463705214436475877037843120776782798468545014933394766412117817506376252096882859484982599605861693923472705021940084948346122727510842813375758903558145697554268971284864671097739909430021285303553502968703154880392120118617774537261594533331325916112201675199141162479579005898326888408303780747891434103172596510219676376296684894366375543854393397131887558785549129825339355436333123950531731127434668072338693961915971094975493953562979407473793342591464319643888785867006835858683925077250271389699044803698346003796337857015732647700488745807816742299698585605759967717074165685501177065281173541347641078992549272152394046165963876466814853189046697684842963681757517665681421783568242501575105306305268521665098772390407245545021163421453388676762215982210790402986623303319493675157457983620027580649174012056213516708330445501547243785082562162300902644396501077224100670623581116707028760790125768112839861905976851559506458617142892022518271983084076629504054133598962480112010849589883736936758375350723303123811480493005748643807026553315311203359445114802520504671937436785216921602495267128547773309720337608798077350027557487027972641120502334379802436770625165320044245080964886689493146337035540982239297520620980991337523564344060827694905774784757489757196925297295615566467105175209820077985261468182840440439330777162131721876457688624782537456729319812806301481429517706997887871090985478654061446955264489055722592347276760632459841792169031825890357975812169426008416517130451240625322781942340977634285568194017396630607791741161787404198209425130174144325112807440994731668594015708232133029411763368854521011011814467514960289735605237565514931891770586913838816309701476236987493990805021832239525554988867464124816541904221663335903182701584948638901670915994669819076761287871358071540368842677580605906614512920664887015980306571758973849479801352079680143473721066868822407068856198823502126380454222367941105338535461789690647895098387167080752082675821367187725162374145366067701821419000865694129489772449536399199279691007658251836565196770037987755858353476729682872328157886430001225553026668123562115841944226288345228103857532652816138273352759924093764668002575616054420485268309672686298384628284809482281142606128319388981792598433241661152485344506478201928506090937496770840086102574601150303892946598559179507844987602711125431550762728105812757562752670405285824291229653960716084837875744618339994691887306945474274734224592330910175838329312552731610134404620672713178049982411483111062063243463583227922376180479216649626389492906287487993888484544750581554288077480174129382760771219156539259929388038710556650772072478080167625253217331261314226967144209338407693410110606607331288766770682633552639708874115115760661126688873334763029762950069449429138485376086062767525263239517084373477376032410033876699656715841413300619472487682736226990944577926647879366069914390351175277966143721748032317369935819119306417206271120191220400192754691964491678953391360113574333184880769474005811774939603625245032001589852008343174418685958055384551313322132066489236495974856008180902921582418947161060021636395249008112361409704803116102341211174703616250493814249454237364360625600486992513228813825957764243527141746367223629074730019131513083752153266515791931402443829755990470221953219431282091070153954420792541943309003272985505124611138466310505489257512481352335893308256503395756087435652903237264837068699578408589253875396106008435643979398447431202185103333909265410616798262841115424756820703167725691295813398850051789340455504736293294202005761103337135510727245242053932254240050221937250630827295330351156327831768259942525312549537812279025207162262010780008380816034610463862225519005349528001270375609853277926818206330184276121107932938123012766767867099619622188896593857673333781890029692947665603805722562840125174777468158407454646266373623623380996428610715060867589857666671286413442645662425729288011192057794254031170084963654822107772223860700114664897844171258288380151193601575320152371460023958669364194820752329104460543527200177135086146449763670749877333640725365122071995740020085072978329236914072042845996458451675727154852065734658194414903255829146673098766357190503995421599540924079764595506346884287614480032571126214363814579124417503805852142014807419432265071575515194172695619475843215830699645096701418346449422190457267471451666136069925070323082096386175608894663484833016756381468989951322484673565798512509785987042879395441551898951977850632348579512890864254122208637137087108351153188844892377517437356911885160681167547107077352344683648187092454737981195639011769878099346525075273268709371199475363331411120375745050407571192324026842827159654656801814180076928737540859202709198409625083253742256743730654009885101741724202759438710873217993026627665556832981606491130685823846788123773185132042967873133532257688392850831387247095751275623761648373339409359578079702296608518740774159647637412181687331595436737549145578131237124091467819205915258554848645808958739707685518547078025262357632932173790234606435540765592330166145575817010198799562483246626262854530986788193003976039601581728576197261082672285561679596751524688376281090548441518337401945309104226605062134670234461406025263204485885175006037340618229075197663709149358353339689881158721668088392260827483529116186636646001215806205177350271871820976662088438039870446301957149442840151821611921604143934260813832264968426694698854887777926660196734522548386071382237540021085157682635172232805469695923832969167192463752335355017992548510169479810919729626210623318011383572354771332953931989696682242356724848421368855054461902675608251425696866967743323296896478052351124226960874003307790906593709465177960605902340041062397747455462891825596013278399464812946361747777157309939377363479588390704451672472224935006551621787611800869157777932335304115664314998982416019727519526463849952302343391097148105560039627687658071207081859454103984567370583788739240322566431159037292023255488923244341284382012714371589845609824072525053462055205351410375932864566003252675764252876921286628984660428920371022345273186457615304647952154489144449538046220871773748143732029741493254004572832138674716997785427136734646226455572960569282128889245232185080005020403724141142659800482016587229388690860453630401079580908275147638456126684300897682796140205647389226886497704030220004393435797359854273396040753006045473982077352130661891314075821876887061106443268436599733092052817597923941480114444126174531119363881283257243272919201498143875494859237892746244107693582967012067160689928250495208485781658204759490944983240296487682290122103690009715117853508274254965406359933856789843615198205226915818882586300123585065966389562324083078181812546793321074868604623615610038805741026092086661063064863148094816338248348263028621771249570481749218668106585288765224196667187244975723423853620070709947452228029448752780669754453929424426331208923553361876117793771835276134197685579671044783426589191462509869688400713310264044941604075406441108288833517012945102898332828981626439532312604200257199462677637162558983348673128152705606579285322805134717267264140921718634163218117519756679646165822128389839361034275914104723661362491392943974405514136516195016300534947244856294471847954501390453296079721458047913972499590318925771456013638098108491485722127502931499153047554452295781873721277646265354434526539210549958185639018405942613560915611574287165781467501663537253126169887734196534240894203795887492970061413965097093126668352498643641540511473795887248023481693371457323344660160980145619589205741897702223430971307277257394991909806387874487245468117204479915513971375380545920103102211570464220096859866172127724718723277711682168263981850173874584814011636165576314544418305050048438847550045773078558246381353004559157214319889833407291923624669204946528574529007194943077867991465371562657329087867903842494996359367733491578544002262432326363299411746153979548899703095765788476641278362540730462006370092714236782088886494749520167592255236746033908800843445081182495350315812993244744955042852648894058726427309271353914732452983102393953626878823048317031084513048572384000305426736067774587617731867919095278636772377149428550537823394069017001251921302761222545817681803258280181524228360022279815096292296380665208885309997617002520610637308493195307411760026337390311785739830549754930014900263350091980561773036689302191868443061349425995383641576018628698472989095401243283534910772375687253981190104055044756885660649850705365289135724248595921360059018649083128145483580887077066777183802805590289516304424960621986368639432391886593463693432425753655481004838533001404744111452778045605462923259313695416969931172984678818209460084150010508468688587621949018488653746964406341525059342147031003597459738589538613999920826024651746573810244689593772337359476109733776103256810884101678374258805258296279272296621478882913935522215191423267673813840178021336188244500927262813947565554436746552015499408521844688470976246828865250049204925442314977321691226350664545451741005116144229428370504747132031338999772272491734682080149388047131607348089542023057069739690512497187694684826431113624220483155502163756875642340784244101464204016640204044448805901808820015971450494784804008899640446897545082325816306618149843919035298643130266061928666360436303580532872239977508821625046088500811925418609733155514980180971990721774546897117571988489518446627828050828788325950322900367772525439187071134281588630911200003050513476293091913396811745964207150278349876965557867977887244707334735386043477317783572365875150792533992653798459703487292463308787916694950417010076776589228625474451682831362474418527557101547007348058094864797637754906021312092285982305657790466297134491662296574285056392188623366571618866886880160994272543667688525176060108923507501275187039503794721287163733860823268340221721227866599742905164090327983811704697507284369808015982743141416166571789341152407965375563188631045722651702445224801484335239501243981547447483224176443966698803550734293716625137427087171378345914509401000259795228422751433634164051305293914053043816407801489006567691512464730137793110099991148950274325313430443020772333003202711579627030078509106639798177880151274613640690879182540515566583003708048100805631938279492989093652332326821054091518442649774823681391929704878645464643346778669086412185930033082987522831846545392984871697026347908195565409893004124854697870245815549318782408389103741103655338420679266892022793057493369203867802835835670348935415976980866815976496871988575448820622805747501492923089963870245858233038638525992001291793194722381874080834866898605398386816432683723231445645665329266328460832787990325702303942898596784869956079434787441348372749132675168045716877902031422433938406981514307102161809944575426225568500623746694979158017391746243411801779514879538853667792186564016789287114931399992106837080088404112959163864389120690351637672912100499137055088477961475778073214171541253262274183638797018002672845052723164433615341189773288386627684581169024076297948002593313874602957589268585420564769378798848886762247930926626613046939767842494114638611371377434651490150714141446062299534776941465012271629901053485097536892056999600015152002959444335757690711108380860838008994109427926705699361977977042704317608985146211329227146828403458240574938858682215714899570390931564434946731092426028094358829210035786173423252178378285512369997333059391373067278460947172299392664512271244994146119580512625896120539360985842339647457872996315273894266453364791612150180318957152556465007505997575244822353785301801402512196704367830219809280146594224022405866563903786929715066143988289746851424571317406848831253393614004886082833250417781235339961380396822416585608544712648079276832358039645009218167155877711338921382349896377959149907485682585528761448349061043232034250104705140791642988386353954360336343902923879545159474183860274653220395954224469214371955045163362748348943147292180670838491624023458850793516753873789349928357530375270336055169739307703130151657125266878026092546801930167284901784574918478931428792192058564816561387057138492837460206496478724401500236113049584384612373729006153459481010058984832553517808428041674620724395566394875119324103682339659909738877787523083839390895125982293544031171561041541846124174433929877220073575931487961224074370929638874799440928818348002043437264831760406117112360316184080416987355932289381692781000560753992011136321894470778552538317227351572043056213944364952237907757458719331943382184879599539762154765415487076511840778666644221848611402033886358709787393604241952484966663646553325217200543988912807949954456969816041507992353399111701544806541028193155818007092895866139654298941482332360511475960287170647821689541901647769580256507146122041324829977579240263426637526101011875119612207661963756882100033928919300733934335986736345983047581632751469555764234319262139469268590691067159114362969229097388471353924664982469939404193785369136425342696113567070625192498249603570694679098365363669360945510311030970640705107871650650310740980124937449334934342023691233197056331658178330059922413504841004597961849466146921806404911618962482883682068238021635357159470679281549134823873369668201983830131982043163263178240069186999109289290250366317859716622678533108596688811698607213182439100677314729959953338953820227830354815174902114342106145720252382710508890483198677693062324735198940441498577373130862774987188342341826899989071877585855360458702693204075223024579340634284595011930404955430467464566334662944420487074058115262343274985967408814301694247174409972431928773681960687436798527853376340703981363304024614543924205415823173049083506423408719899760475128176496545619463165668005847944644746872536705855635286619469822322666831644629685873060146193970211209094002387288698603484545173433715620939653248978270408157716227059585598287260155761413942427790125643318714092640616266565481590011728171672200798237419743238616699086230935081572614853775644127312009411629602205374380718682434806504944828042912003371232347718271845023510119081867792114216310539586042543726929131162932442380445408062946080460139110751029096738365566397573122258565989058001346393393714671656890482856657462708317581419598474610224484834915578008816832731266233919605168530541897816105334792539645871700910761118976279589831798877571576029538215655700697320141805696909500592082903902710364624430549623450995199472230121307194998320950413426018578794901383667040053505028232801910652790340847810557361764524545246736770817727010611702426201305287585947562227310779661437502206468551394860503940709503771285135278730380265743362429630450999900689152144131431060889247415130905474187909333206451508120221571268772202023496980094917460988203435843929594931101372271813167653240760318447921504248867759197356804748440238568236676847632848794322366489669839230538064813092847210746272461896981717207034782930369586948224934458842968607319198518789956963086667239567797684418738489182028062053277845028084098385179270650963678573532121129444581009869723859343529486779483299805131237540775802086871522141775144286582575911074245755304191650296289798396026300285688063555870266512489568204405000711489040989128002830973819027665753081330142841669846449286685040247643151391594249502707828819283872524543075387892558422888108977867294801459044734017786782147548222233531157944883967345595839674065097988073910696340772360254302959873360847129909916333357279612998593876301822803858336190746258363434882812201411335125821888912673486587780330732901853883262014860935400794193184699529436695863380130696040705040836776872303260381332291919649283393766485192072757724115964054960785279628050741447893998154175493147438968791912075541988189593493170506605916467046667317289307089764896387609047067666090504019599851736295946708130493931357676010353955289902283207599187835751171413879629480890893603468419849775426370870076686736610504250803913502528586671770668686243089732975380212310986545444640888237331207630110097270062009441879082420648710399342845653511319509945991154137392548768391355739931880365753141944658222693595018416414175210168751867836891685154891367632115000132196597160747272445579961761403784886013458509245674232529855860965857148939789933064092963899403740266846713075531184616832735522834040561284371278713150139435721747047819714779746205440544642616005539267141422524423180802857284478325759918242992122299799988977517854029485871373637029496171743950815950720981961267609196880537905236600037707848561936199176751333358379800573409350130353199896994965758934912098252468414810231048243955245032158891181984026874454847940125442027453962839196800190215203538095107499158445012998229925095540181222798212986158946014296328355542484456469320162191217080761504076152633547222342023386031793760498232727022535614355947099011748898294657687945548125893360855913023357047597479102536711344788634195203880175618561641771580427182034990501099232675070571141189103896137118845582408785121322073038930971270527608100182245098461758753216961232426386149451153718267222864705452187200592334873220367896024979155605639899332938471022592143161114189705940990264637832391506412656673939836531855066187884276671649697406073228292367475425463364741390896853673947060192754420648848350611480203698477921280297556987084784707845407512732246152740574177568411243425610306332046987964662217614580430813459431919396238307530961508057761810050812537498781453906226210682467340358591354653297484036665613603368348415342396713224800311643596783795412554630397806030987421437903462638760996197516165744263436548598087893418141280032060195640021208460351547783761625198525899329317504993342274554610798805748082623407364711846204311018060059455071601908833881622350282079186200587364941630901605633656846060925565931131057808005668170522817224766387224971107426435603087386642418318541065985716787322056969181281769471578509665446543776132892053079873062477178761917439969178903223120627680158851271207067358690653789593304122257517580267964596987201595947228547656154012882523318351364711039641609333362268801758174676934932789495343500224437778868465290518546869874332557834027505536573840994883142872984111281561896774191649708249040778052710219950043358157876251011134787745825696324275883644836732232896531163483501006754705666627103478278769102011671442280033789532344886002039589435126241774872097371257691457439468891423759255725853871308355495689510634271067001701151822582422240444978800427979184326291475625849426260908880601327416615585821411701207393686559401552977062711804564371783902759736378031888566870872933324883207390191892701438237452442610272298451402983090545296113147450192646148614853135680151970251791738933954322136051714730955392476849316593019453871685554304504927983840900674415997723053078582331274301411030678835733105230338421901158809219152335389088045317229934701325727173859787431082281162878181944839418315588060413737321322654552390491444712482044021821037728189310858537505528263004907033091709786506083977630528532890980078903260332781526690155188838468955297811214191776682383788464204830677899238378957621232631730372165646696485741070627889694547605379284202973647238243519672198200657055739748231767932447027215502970463341893396870336381025583269167259340737803646811411787214551116847586187553346600377742488490607491956012440138768863270978863243258100462530953631922913581010158544932468759544241847660356829348554204492338737489819679186369671034668506443240559547349381892738220755613533575420629221977090266443272948783262920156010541588582803364974726033249899005467102302010838669393752599366520912532327246618231406197377495205441994272646592436237080837055524902515410275492592474235495398264734046187687521570477607940448256332509144587224891932926501753365121076918660193440348429461853788510791261896589180048511771715627647908031008186620001898173873900064628536387087032663733436785769917966052695176938795101057491914937116094595375508483429714352016537679035458882130450533222762247054662044697940087763326605572459229272092842261614172756985877766792511483739978774139254128023380646260605846559854869759058184965940122126666914111662111932977661407210060388395529128771981959938171809819938556453715698718717176602913935300390404871785738899441626280047832706089588558061447962129702462183085408541205950739067424403572911484172387052560933373585286433839657229864911314702393404655644098350066616716261948713686831054965757716579441560379219515256887554456815011059212963300126578288611462652013720291743604997945803493492733290368730412296268970613490508438058485337725322054778956697789777362350490370218675691315778446734547834701410398603233624466744857461378662633740942872826728229871104118828500516680942179364456359547733652635707312433618601865616486598788207522919908998887628724099612469512767491918264071878634978251261050332901395142412346424717019269112952299354093959695707627584508466882307243033768994851367389565735480836465713616778164287724347474508993958306177232866952351967971859083540494778259194987807469777144737768802520287279140845648569367675547016887730634653372254993972899665854396725549423077584427682138788288021158759673522368049862258345457038343533832730732673132783079064252076867758903772234209854792839114185473156673063065450432399826888937088033275046568222077213234452710693709721247724947761857906673681295581603555478190877778900153367476764967968248838311868916788697665671647134990573711356213686596362296055265944424140233016522053152336093166829045258545420843669224976680547979902428862414212895966886908091195918766390086488171025421740805291366176843888225686372677979777707881575834191483276560773790317175647885961406023567317583625177898980785139470532817535780034988441375337331636487980992870327466553380719063400457117713033318461793188190241014338039529292304336334141035891301732153464608028409640308433374908042931583294925274392999459564143381182326688246160170930895089267657013772187153070555718800252231011220187140201895691034874577335315937162138468549255321213878707915006886714613128022000096457015147078379953371193260626303270717982095209087354349573289786670045678892533830320205474192120137603664523308708090367644571560517447638409296387668030381604223359499140205978258902610506259959163322722753395271051590843880057558256548948519721033326961327967176253146865372727942000422438802003935879346535584615381859868511334381533888371840827718198322764023366834108149055995410980559274093312637114850953950948173791964775456356254157392059840481589618304793096697465097638779850477454134062653028637973359686143945396769293292199354945225539074314213850066111882868309260553879407209402140795331759894061938020046323121130264599659432193075792349219579808281864633663592885837832573585240152692051465669937300362836055635818121244012372887817155038439629657836265850518183881713950338719448601844443234448372201181347653421373096330831473560190360439672116138221536803115489150261664959087301977353073955097754730225383686901598177670982905607261781622884812847566432193255677707236139240987770126010067247028154437569595871623517909332353409504698574892725869228565872211646716059206674100857237581582148986601050583732691927960636957383210996613884927317949728407444823123925716512390869713960514241993024866238246735629764741333679411579052941203405128012873735603453761997201086739905202250064624526931294114044904349051715868730974322190793848068781377057064270678220755461960889016895053805272519090438708909451056424444803833604796451535148258172641480640312764444294617096412441811760508390895643652785682719255724496972487928962451136071227851689583732212691749290205553007910792621689343014898813988411229462472464289580417158471444113697974964592904693539016233510109755319904533588612806186399505577477028483417937144512439681824510130076868487001084408476659730599886787467149052834871148590779649508261173218419576654343519751870029330109812768138486714120677599145369253697051331959610900807065117670913025688780590614739072339159792714610162852226603249652739309834045873191817051797383787754989923000861201778771260710354732624815352824032965975707856539632138312848450544140588175532158435058114160467085950838755770636733943354308685865795934931737244894508635154871072645861459941736310126594579674181692704298216520405847847470326736526258033728103607656938128457723485616793998743718795939555683414373660225033798447657838288644082302018615245427143164280647619319999388039764558842314905993773205812402559413879612141702413461018342331205721351838247151527458803453650336725611185876063101428812585521173446675844878840070266572229276988249992632153151038711144709890204908259735315517728342584962284193073541267884701919430199949968213761389314431023045884198093114086245114059731800631659026996139901357434177337811076503566686318680096466383774110238269985306269296265577228234994339477793105309937609966974264569539418265495235130213642309572555023901074482810575666002206408482733779122226379779014115083862606128702970524972905214889138464504650898636936098299281598960573166561523891425713126373203085266009817065769065957345436730441108084909537230512586309797848087877940972725930387341408053049836947659223584010513321331274973122212797365661112319378761669934954969473308405985798635207894623284553060458580187850227449156268976954118927470487759992239559305855541928542937070788777272580647843332561509615607242087111449173399641564737668903193487019886268637975421604316445258712387502525490135690564145200430749047363236730908451810854214163940703258070258400729071276878973349379811902006816075682016708298336198398943691916410505608296412256327469180237084224789785566055754172183765170408165131542329022971513306940081613611786830934645811346241801952748850351235946779335275777738147961207180064764176105429665087214550588972741915496120042059259199761770053974042831955703744172484223703115130181947378332128763611431063212387134702256881615943449239055807100260175625267634521029339345945663694344148992912883775548326566369307814627275430227340741496775103616839229964760970745106442257904517898108557052765834249598579763417436353868803574919627029903467895251898489248946485795692801651062547006761803335604901070033243321610545991202236660700492432119484070772509768416824236913088095859443998388753004858887970018900211134202857631206580343511959933190385688014731442641838906822386520454729640967821397733230838312985679649506076868909357363604075193934802182017955576387599213360069397818001767036798587347908408969607244516231209062932245420571252053109268474734753194202990212063748532209824379830281791323732178732333199315769944630856934176828328161477762022800358868280733034473531665135259198872243118141326907676476125190210698576430192466026701598370095107032039671124635641483321130728621486866199326616641735090246118442596331783974361703793095209894614301003873327985075505406040430483530557694681730503427043334217583422756312075567633555855779919040798488536809539523420842128009582677176624817215502713304554941803799343168535040966660464485763259243777369530933436133332347580312642768832816910388903666057433112233545504704518049166823919199715532678477236405166305430820949779843841858242752707593875756989433679476356751063315516938376128765395945437005645293927153822280129159386012724493040411059513858288018487668108119715060644853535721528871678966441740443452059806389084600728735742159821489320990095356508392231133532601149730217264500809410194640645742232239074429101702547106670988002048628429366256604961154760457064622529929864237834401388526779560680145166804135561606135888072371953595725663255617254259150286477038642525591149743465269618896725871172391449008461583427158775194269739979923601416505473054212470600272194837463790418320398420084497449518672972766676935322533802982777246509778919243786736007687060748796780277645734479773016882229118817073088764167098610868384729751713830606967116107731087137107072442118748445617433061645243377638894529976562175000210439022523154484165362822563359114786724321949914501370782492980591065162645273741409003497276516042607032743762979221767830090739755341110583285975032027099006547205310826810019530426177773644955414400009488239192575419259036204572779436853930731013614247160965145449837530280806327857281030467530687380797908734844947246456677404684491230129530631387419781555072509783645192695846864546878892457146253923642091043324632107551806703553969731674708995851522022279343946085908507922520876320288841942081538914265974207034691982559930716719695853789975479961820162735179341653339351997529867793987119478162217346067208972683877774506438562835269492822365179240523683796021443604836578395168454436953957312621157076260601794739144034476720610235394270889082801948646818092977270937966985332445845270322277432125001688141977583072563830893707019430632287928034627796633969466654207837465989638872738955271933013132408753845304436338658969461215468649536353593434356053172544204099413680511140242485118222134538178274751771465702760498288982185876630135545541534799836576256156016706566823716502249942962185563084526565267160893796416382508639990223304841327712586187256361035380365330358426912083226934410614881473622189732268576956736080426724399819423887337109017072188559148774320966030460838429474803134798567453045352734060501413939965267509093094037809633304273221221650560939541042906764693866788866918894883251603003053351916496032471779154222926213181627559990999954206189649978520936227905306593121571849538099034654671001683767495559392468872623930288497360816424299697198521044578128817221043550543749581695004941523725570942263730511467934265351312770433391950340006417104927416484388491760780538433110577716713643958549464819626691811538007358653763496609297279825944637144322197208778832717759963153927793962307595378755900436213016438133411572274772191986940443367706355537924331135309107958220263933047211760642550862230531399382354446266952365108561558278446958580883206203315447699821186162746383100434935974856049705103547813602237014085659614826441195509820379721675323332850935413326302576622250628627525386712056684421307239852906959836372055140435538273206773998177101171380903945449122406766578614672079887255362601677387553037385902520725091421944099148886575425596422015530674690077584567690191116457748284196594699647591384463935171256567678775622317105049622739887092420160864119363302339876205350199556742803672658088585008763433777865527100371418588967440922693752188709297934362201977359068722841005510889735463888954643937700209235359423344027572248154293182284897607189504617151820190141296120226425145491273215650498278921329239192494630948808795886243282721062274666991483900143281107058224598157748567447095562951593132381170481848833903569118734793918054251035590721389854758285504063075176227408148534108236544511859577440849184228740315280574930798981509656963851407649928941042864816688809934766561651014180603178910504684333441589184970686611187549054614680536202428949528927172032319015342297526285520981128724254475619293938239642920895693456677306445405016649781098166244344008464399789045086507324528703442057259465443711508056169175817520403957171546661685245928014938681253532825643142869847789966416220562118138309067616770586518295279082056773798187951416679509113336594704773733096305010274559910627481384939120981440763146186912295513269559748913288253602696043361013931772377210017298421109580236386277910233496284256193675155680519334757137649534977989702887218204811623526440958148794493902737017792094641823925103482083625523996673057386881733080361358769317611542170686574903402167784016966762507422378810269939503554962209153789643825839760046318996707408161536563971250739134371270016089631757022528899912255281404398394064462209088837812130239506249877696444032351011835441987852598677329871114381350304375151852310940912340925847368112527179312914399668080030062180381030837053036409696585675501507994457433952841757668784222615901139756415655382003203717469002808083296491817965559503975430263606213218246478790294609290353665007815276189184890515826362936385461539603610354449701854063021561948729975874576264540933706000131604175207655241802704468315051978957572799261430307277654759524238626640211030374747283553226224287241542918274951688455954380888776980274702902378291017910241019087055503030577197674443874445337326143695369433582997631079498363810421526519582610079103137714756709934372958411005735581072896038622769988680788421814455913880818828050099355179356706695929877088221757371598661577488738305066414827990278000271599598619901756391330009095711013542144866860800259940362527272478760991195422734661971538728436845905027960778289993995314155597234737887152958202901044971216306456058234797264826765502711617706567170008450187557733878001392198760453074796600125993691747284801766511525402235441391332327201921278366629560467142472833474087085184199983733317376203802717222321937024178609700244051608618352598633831212424577866318637518696755700064674402647640084399753610105544331007290691744577033529462712713716129847416776151194735949753973073658136620749286532494134259583536534212699484714187584772393837031977057542700081100590491235198495993930578146561906029569435552034750203184435505564376518067817341528974393340618896339303747282120551192629815550429161716442346649694569518465759565280278952754250386643380429905466627941135565180166511865655603182327984582514354460068931737745901489601543718425664767877244857213460649707537044282879302242148060512298840043746855662209714492784257979069504961019370471136522661469406536790351599007215525599473229711786328309647559621794468543666123986502191798415714426367416802438541233523819842263952231727680820719352546165206286038614687808227422414062893316404942006433117785617364800329580731453796053892182233615234479904419602105898179566537045899954587582697403785749730944657540001281728362980355422668052668308701348244051364042625875776949407026148201665157982264413669070647410449192433681983600765212602638464292459269079751472015073974444318112331862828189272855072610753057439917466869992764513891355365779279542931277848270138946116939319461197296955384440612016553999446888905564385047356026879832594255384157699646551796569360147167863225390025968209446545624799290429933427622739332405998740342581338123590522885899272823208442799219274336140201813747087602408954630196947615280707348960492913160841856993045412440298003957227267729169546542266601315666107314084008006984154692438637750933939588724358901222967801299584660720989954928671493742945207349409136042914085846105608760919567864388852109345964077163688403747671756938412236828940931180411649002340762079805051128770444070070173685567062532423040841028569255969980429125125780202077582081068023647387467124372549282671449352624791652168922516511376371779443154933998410316120925741199993575079897718955490625555288366652907775892497619078966538843074416206319681499319203377264362454001485279493272161871042857203234916133984119650958320809075992008967258236122160302629542547221366364441789220956064040740934350614079901431667055831978316567741205887338065002761455735295458995435002610965509579713571690023826950187345092849656374158053893202017609561739361797625600410931174737200053935553592006406123370145609661580310551107776993404020487880449806564611766694008790191266160862532026778250149267646536361350778317709900309614927229761310999839810638036113017255868523001066722658381337224859118567938257057498831365048773238956280996117556830616405707530445009199550027060241926825065986333269061454036540875311130340005086837851418895539265929791231506222389144383185971122888936367038319531039361589091325631340640962294665855563929352003223383570401540763627197272307868170125976032269131126348898060534155480018629204163966777982699564118860424200013590316550650521393853808307544059997167710640432548808832017702088782064975863914475744755262795096028753486911664625311273342462537404988950655566133744288682655465128533131970474479547298312729785659843601251716186280912215785372015750099866209664902030228995821835401814937785100837884526814239409186653083207431655506645479989003292454638789036847437889835469833703330935224968793289866218986701474590371049220611346692719555501107617846166187116378970824867597122731728812035353629287107535229362234465801221266049759289922152550262054512373456075308899001164179563385495301099151879806814534083536670829443368407597127906535762427696634978415585030336784501401554716894495851641222447634590210816905733347196702437272190301026485542538778735630255308706391403326087715738454561007743409226198262768817092091135479980999834658974900628818259536514955254260857289791793891470398386073597909999726297057498394614495634008049042733172583758917133847572934522021634129537462263298435194341391834859655639272619008879993126466619368132607212246388809667147357780853155730156612351523342174065760857719926623751536367422816987223397686678156963863759456487080402542934518762263872089433234269925683799693551237048166776795290668604516298669082656046430854402430831744554626414173636948714195005553082261873187010746115269188952536572665743038071850897373721447559542719142450969993438869624083721878369646025558914040389661105584596947959479364811299766519608111328260350283498993534648943870168242521327910912348010168295409873349258832758731491820162667242668441745559122780125618535437436165107346477889399150544605785860395601403489651329159308600405448256269182472076696091649104949671559441278611684800463710848619253166218703535789749079939742165652594122587883844494530425639041092672946551335837304764550426927942201088199138745837829348583886743359026858396463771617219866307666465909242578980718740984440685080165726743419279421731126524078201485033554946593552839651795779853381131671023997234608521381479638568914876532039674703533820150934433087492109790234644059574598532613467118042664611941055825465652034774862133376702454218735576409402907332863226570766468992658023889627036708665156778346144001148912552796583870879020986503361582740651222677506006928592150882715513173117364754906093700012522545100644413689436137344147736439375041235848890228736400587570235800454285824722534067748748814793243882515175904118673464594058780981639743214412528420743605909572185961265504193191059645256037906424797626992469365184222335426059019301901361597779195445615054620686769696193972573006063278930559242392086382237380966705020491913062089462641489667734080050666166113659341794317208410867185366732702996865626223457669327132260597683725631482232260250601859190227842184867330545380421347960502007710011553315006580413825958485803680006321264492955318363488554196166213683790176072746756223333851604384242332774959913751342175964928074908465025649072892614318387619062631420687014672052776378299042083704120454523432196919057978451578380827309143901180228925942367945488434965741715552608620329252694058288184431252242350180471429979080900298233008531158205390297275364496203196559894485498123028241579636460617812909791130539519849680233889873092891677219639364658207222013897281904337038404466042605728302825749480627880668018318224126501223929568066587742184345983699921463406045878765067168689265278784410732600122880645584486038822740231731396089670918424902480255880952444975401423161954467929722827807211249737660169913407590447354474002100373115464703106327841648726048892713316881463110229905305433698469887542804817333587580240619113274409813726427524207578815955758236122809860519763389928306371682667804898721891848103681121797394061467863260983335858363699865027016125791643243826940360377903080809130971057493622697580857404035472737266600658463563225673263464278437222487231498146067451828940454036714279125446844891727297267401053923738356191853276863226819116312945675700704271091414677749477224867918020680648328487773894022909812329214170131443388812954023030792650025925782757924524320299423380240860563019440184297257374353572229638948979904537151584107712007433619088434437810152554437145617806685595145330875147437821680408846373954197831548520879673641173787638072026083712510477489372455497867952430973494850444022364659190736959732284400827532996807097230334118471736471496238738425258532651810071142740356501717968056395296924032583719487722869801845544662303942341460278967253491439105777915645504721102925353447223472684401065857990959872802107465741043084639275416176382548634692126117064696432107447306838789275105574526761737787927333760031476092862443843905104587135573295988167232951643669007888518374745152501739823197271717967673341673254747123547671053498245065388290318707682550584069173891620986729903737213852843389020111631823162014557793331470233292181883915353246378137616533476439837144419589662748029582533251656068809691005591811094346798903897416245298923541083904337977510354309141358876058481770188829931407253898914449686769341421555588767867657409658278798976799744071029014723653364977780859854838095014401134499315365165702268769408321155705716662793772814247978506638406542481981105929107722086816110994858926829834231615908417698801231852865305896360684860977178318631325256737061953693327331758539649341156140850225274201547805711890065068492735957699786473560717128475912068759101766046177070986969727370349661089631864984446598171907843642614891198698973744811899524286161203037117594416724854476530710396939419395943327372703626347059372432223936411865207862489945103881238650971644104643173976427585522618360665430567828906887344310218195470387293271528628424986484482901989780184692237872949157671065386821353566364632706227048334420445538022710589602318396315157773193724985944664667466164098749750486285430787739086901823555444440386173103268872401354055688925205306334544789282912801337417416477391327339816302012000702959498524182743846836713490365945783112642414361204990906625097284807269354888823598867423750741730944551615442977312458810557716663560350942756719716083444295221081349268067515269992352990390733227005820287619592528137474143221696910542066007515989442467759665049884255280672042790167891343541221186680312820984929847597290437158614186496964003124220698804968977526245383243807163634594359181236780123279379610535420108335377515584371034479943610863257197519638155001090188644563955139941795043670960117219732713262187428028861927957155513961872901690332736255194532591974996406771529492884771667580524523927878863286051006401094989496833959872454719385251142407468877300953911702001537355253217456931200106381262700462087370662332194741066915626717734436963401903890373120729711672033737480155817592488140951337660811944832229793169781809317756736747184243900178841733475776887578239537835450206533073599312913818720194334860698667881443749285462689497341766925720901708340388255655681994610158763908720873788903352361403838757166570094530987377938319256204127883337629026980810190952810575196530330574759307781202899144575369100139296823362654588388589278257715679760612983372214175497113247182106775517442138908958526843990074034390365264219167212334725795087419826847487201440200125333626169725170551216510649837551179440330215139082637147871855953034692939241459082900376957395476599379292098269497689585980767930789462082261215030288378407604450608096119307975625505264381955236394122466019254091454820199175700743900507825071337760508487585850877852497734642839810405621078590833812909830383526708839536942747503572395930698537381326407968373864287950494302157806315160003457730094494191048934724944788998788732813975801712752167421142260633949763833680687400116269202570682074546335011494091676982943538663468687171945997757790744163179792594398078789205370575360796087248509475350260227360377273348489073283830197544144933884970892528753627645148633963659449864254215423726298773740262527734776832276186117737357178170802924689393423748059210111791287614946992024320155029947370227385849624369747502070531228314075615502017627459017255423177991112881975204741202353772967022208038399555661894759944269243489977039640925799581157487692279929580884479093830149831140039610943867110370528181612291491242414954500756175021848892008627882165626363431886607786458133724740318478926681509860282455789311429651532139896180478354743315140031485259459393033523139946232030071754222848066110745134706680883286153417052074660111043647671213800143390426580034188599633261492689875413615320864686343744271866310000236663720923415162767480028962179829042737665886437934290852504989764381009738899712554961057263372493592613478409299665154141442820298735425071296585820670580906922577394181501224785482490443308794169077901738716820660798346708407529057026337974147489338362008699175449336502586823499710258668938623550797423519064783064138494377300620387361757218801085192720279147574046139006616073009481814786457375115117643704431591466911452906235985898993894925832888577084698152381010698420927655769485400888393851766265994013117022103317995903546395241245486276395337471438797806607409438324088903283710918845417017171426606898326430671660350162704819132693299310075236648314048572724149616850414007508398547733501564674603798198350102536229828838335802442912888241332957554467605676661659358401366601519685587984035587464265679908555977431859577349708098328449748933434016611195759740833520107339237561379767759983265078080484245418623081177856554672786914622960794966882690896045449229268455206084832558632980454915899586330509487286330971129084846975496003604202040067363998415648427708923275527917784868441518741631788163716823025706321481125271747696048942079969559560230089522602428963670386228181000425578012120343305312457048741543604849302634702989112448021223867108552948691871043471427116325957141776544845386197282735574955909422922261348150373395548266878060298393429465375272577623975886251199424037810847654523254010529756880791069671792489592634702287770761198130081299885833658287004177517389547618548352164622982738796069781363808135129876353230678646117060319227474025673629169513528338424832508640941376100933874062833569730696257710791634889804599986828200246850520834293416130695995054032551611683693173692728797906778483701290229618163262352734484659782911684197326887842481058103117054062625546707309390187396445979565046834101707139977116954389541263181938436882167050136195428499539126899959288672698567377192492565802784223886156249082856164707734213518266448745268584184737811985811318556405293004519180407978442202034302566488710209775698147765480535530887066612878363781227844625166270194139366366899472160818393740744386305969800770993379639763595027618574646212226132751169992494879803997389710677834632226749342100408130805518201516705402476461228621099823176163084187750953029356019887684721487130282472636266163191833881337118456224431000727621843252404880517118727380572659992343477690154856349111739419559019410809793811752509371887664934726574033341006186205948429456349743513257673130717027578967638776876544530043543194873798371332059861259229311808256330470681167668035716005303926050632337254741838067735563247772435450743247888921670941895751667149422468032476086063150935555321296141840273891533457362847296005570166365929820127681089001579601427081701508464805933746302243993973931184416491543202786495446940547209374014739341904673410674974719131099617438159049883888609294979796758142804898628809429452577294701722678397483840046603304528804921523790222660857456096837316559788307584213660368203741864991437494796399011218995128322064994103953148593201966061093549616683201432153693465276069912542162969964558185640950646455652035651832078626307480730321560990906640345411337087744218229600896122523613585820012515403228457020253559113736576708446714484122771618159637900207742841239658589001384165888589325546320959261230936044217881748220948313945309642370370937390451606427110870338643536071432845886190419524804444820012598314348625676603494475692108644353305669791686531874553726612073808667782976089222501488746311099456731041126020403830775960574338727746232727608341356413680985235511399663218169243502690738916975286189666944381373544253845116693652733340917139408827528502635719197814707683212269657514345168581267215457442721769389184200305422576978294398053841284950963249901316569992565660779920938556434657088939164240224714178141930069319238113551738748010787045053361718149059959442640489898226044735045320514430438474712389998406294849521331679218094165016748817469046537784351429887494049116875244616525181697774469172804808930429551905152579534871474751681720925687566549645011169049014286058206386049442214370260473353909156200363996010038576431829058933368297393174883186561190670285607852192304525226001664086681843319223465034702646173624765354742121039094581523466187477666894717735236829358101003691120069223829413002508799884864251499821749032397691329980576129008313790339971161811810424910384190904143484651409659356032515122419433584085611314482063347974822136389387512809104420385332965632244103541233500058160942283275010905786245351841056391964177961922583943306607671768055268648268915261206695039995071532657281488184589694518883889974830163656818431112218005546560904256478429239464696564727638761887014248330275076161155527484574245227700158202663184992113670027085592557905626318989717405301765872547763381632632641738436443264688487928466031722066026218566485043722730842583692818278380892462772749501410504053970125852964945114788072886281671774483027598907512959473786198764221243061639035422614260353883248626965326494968063985762623558636920774970679662519950343927325144567766079606167329152505828447205812951383477712029879764809048386493932047317240435894354615820332204736944483943151677411298482318318428139394083814561790412929636750562800197318996394438569219456891258120960568362371955338956758075982541724646014304616705001196294363478131127208814711347103624373094406863489129312707625901011722059222653970531088943785399368494622321939210833807788238367978588583385014238862781874492477892347513341947667129567250376991198898042452601267292425319464642708790852874821304240881326998408478538541655012446647261748062395426893002505714774991793595914510984752805638510714998434859871345717843051705508379729220747408307457014085715122965381076226260314687686275663286989557625079259810860523492103494998842710983814614379228973441812067411054304885876701192837112876454246917955859893002373062502666865301054573417668978032943407885449860814015183220492664432034947056368900278116565083539442339860372166704613005887129624496469884721533795949104718061443744049789028198700952842813243892983597258835792883994999299002641193435338280413972379403675746229833357993489599649375836960143501109845644696016243214966079777955214876885388547499610663207356867906380227878919410397413959743096244252456204282719376974962684705296584538239367798014862173471352036082413979075492834770726015353582212662227688275090117647267581404680610057693976397531799860791236283240313779967465880641058146130328906386336002022478532646618307395375107927223944616694885482263983060759600819333091028999221463955939287639653531153618347072958769582805230567210779778115500948461580460297702106701128998255905578096953038794732990917047918904418854415427926983091560311029716041737828826772376145823255169355440187962104246900410188103107721268540294924243179356825288103015239399355814874095861630043056333800642631003397094269219678710467935179286708729565370637831811232643409721695337727564347821632374877530169764054581138856156482321328018081721964256721421954104824276376157075042173528143658669617244797913225551086434346974409868493176405981402808735912048802935571663987795122587571034214016052318570665686896263129982854637238578909301242333024799354710265591621731589996529384150120847395217140203403001582733435392883010534742322275140830943278832641746560568962167092998548342062750493047703541893177178256677762106661020686419675221702678296768845681438242136979323771724393293715598254879947734377774508374620091832726460567366765129892991628351676336367038180017777982665842309220074204365700462532199040656930599005180128847916735197986190831095990465818451133264291528489386614950891527940957338186913741354460936787985124144620450693850665092123966486922391374267956022523964273209880754328700962012373779560759872049299248986818631806915422900728097608219094226438445403316462157446405741873600597012780168535358933034873232082149849355165137784322752698342135400688847991333280846243018889746323424990412858947001324366738386906050753489542282582834248009386787191024580973510362459641222565032717854040352181916141799193628222592797031790444814242148777599879222879842826418403352111054846983071092122584458905525763461653321248928261944369077806675890403916335188378171775217971542473298237413697379635493975526243578967277786138237945343795092405308658934280928119876481442717800193609753435787851783653520893663967520299270662451924274305351345820684372626600452557939608407620297825988569504584418037076309458859926275714024879894674775398732120415483296187072682686812607224564894003703126955609696491964345848807912512985048669395424244821529706368116057081839968280799183677026776007285162249685842558618917773957242496000356775598883485801576232121513038732877622662900353362221980978211165056098993671909381230933739792950288964748889908894186138169426322318174627793125781252689769328146485962166123498173097352409344279209379831679430706931247988384292757288767688142170322649584650854978611546512369379995897030574652056500153514874503559169926620819773192018196249788783510027691152772685346748356948087999847867674637009838729916538373297947065398285843756181668835892718187931589743262238278916871950887911566518987393345537262716134493264998084691576990929785351399854499227811816414333559467226113116125273315721703488448631683376608030099895980161716229824127286116527894519084647767795585621241137309253636631478199713771222564698208391489503746281713476857130530259126328025118010752314280963230193533697318648977291801643777103142243069194463515612017153410982881845241938406573121086950476630314740071871947917302357180482453529758179864301040774167040304919504664400550274040071916555671932882304742573832911164108475540963562500837766286691405371738717602996384581591664737997508529611769042971007212220732964905010907494772721487306346963057387192307948053795679687645656867012111816840381059928597634911054919700624773476903914317185084670839942696998470359159123881158048442754327328955088794338032585047174539378262526754094280338179700621103357368935629402919198890111373944371846275780404203251461080025025915543474626116488921141106920231852745372169472366065298372748371186593857685906045932299303265099268510568804842382851932841592312038030533176834019098324899004272237919300137277780060663008377263354110038389721702007072244413940867050237571693238358436920351666262093651401353544466132407600191320768228884528826877622582089368784572287299751840413329934666520495258338120685468937886764662481065292682447828709249246005411455735015320579865809310019560990249302617487015940107958545273387870964601220047483849492239129807140371169899309265418280049681625586180412178783698438226782170483704843323773656344415825446514873342328898032363214735871648313725673275257287070682294742727022586484332140193220022675265343674003624503913720947929281973201768450201448094392699108326566950575437460318241164962735722590556745107222441476711439863568250970903109005652198820451431443919549772271963578129050940938851486998425585898662244028943342151632654354153992281566734321801566444713960883857282132679364228663386951416468718555634540100990338288139841789183290478483859121977322963565972727499283794337607141965588551713365210159184454183661651395011947656285938594120913571898006147179630898028105184315795118106844966718253393161281469107588572073364011718000475061148789690489775273026298109301223700604878830396543523087869368591796109015026381389542834970036272735770024843589077862171725548361660697456283061370813925578463294412851726122802848695258602129278281737284337371615900115031520872873667269964183527014212917422348906372281681753489262011620040785837335490101905077807838451740175782844830002548158536138604121672355843892169940774413778613759575749478411033127762494472651604240549578288829078404672073616454844349845896931341436112800470738732024424000234544405611812823298808991817076988111744514069506806577013793442257517398513544498711054822167544864570969895409079795554097372217343515340443904571854923493890302875724349606107242351450310330215308490045884749999912221159788190770031203145069583508269750715012504762734010239793573230060113982078170953035196163372109445762000665177115821917918792240403418868189602261564997874259969760544807168540762799023678561773953067347192283002814751551645990090786037383132158509902104355264400023907335420267503185319620991235565416966416471158426033262191440511682613224824091916565105008535035417741815099593464633553296563635319264860607711131160868758137764336516173822523315661058384497964086404865479731058618820786267794737642623219113377779159937760863203065084615406055251286405925153717574602739739632925603944685581324255223915779044214080128140786258580560635852995982071867682229991560926680337087247656398684998693485616572292813801075856239003569706845468538559276264477665090005165603772823278757521694018518919713133601553566810122091906760038718612616080960516971842348163748400283018112694688828107318368094390440244032362982664653618644185116985425562661319844541792127439979736989352066358592230652897253516367681959403745015844151285964307632214961867841673448616045381760646457057682919931057563848034040287930888401782221528517968019828561513590590185909032536207618724062212995383602476087840026273814450832379681050540791061218515875935729537047115049632203470819901753869018244696320211993956519040351480833254048067125309923721019515717365387373773049973781630211448365105905634128925413515572579471116562030318138412170251757234823374258252691734526935067607149148059519425564183740981139247206093219534718712321329727848425738545542680393010631302237092215125616243793292359273261949438193509301576674535868009087604940744033602383957655674297986469555954419842509579771211334433809168130644019890617511394279147569726758105844814119850329974675285523249949891463973399733549528839505500473304307569900774175876289768123527991005719694562438623833240495641408844021126743101686438649215299398538326483106388843512168327385139987942333961959123180188699938688091106517338183357208327261567290535567120897565953025182377822621570719237526344965520598182734634317234856357162249412709636112679554831818193981246115690859292890764346751281978715366276454962226268600452313849825996106518916240314988237937483518132595492131460725052254592429579832864119660117632684135082349433906491112748053973279886816152703576926537443183122260317147761230908544710556142854053887853364906779190980935129388731940991099287244737362469154648553505413594239849119886899972598798258905296737806546353652154989082411942067760129229086528271571922256116665898721753942645987204805850882495377498424642814991863811348830307977659126386762789600976049242431868861633613657260196775746500949622520704448765429571039116798169691067813667734654253810513728943065152802287693992589811141819575114244753559109025050869066314427987774889630226353138301013211412368991233170358978953835429061901517609164186060240825406083559073098127171784301167925051280671524183062760102693233127868201496995889854581999999373445261043312248311083897321868607485297625812232982165161248692902156227569177414944701480819732546528669499543364997643150456588254950099991505445688791002571311346393940294826535825840164738724120893380443260765054115800435249784822767246367625100308748245286543448674214876294029532556188837361646107362293600669651114663086728567994688523905814202301204804264274905846136248911426595394881728509499127271778548298872885126590068551502005263770386676051006991448426007886742209849577472637488826587655265870493977964081446459183544212457565124051737805060510705560041480673477293002994290338913290983935020004693349308078069039076993356873739392555990563638232803050189383881127390713140162631728649711267135937038346903252387824387222744100304119699937580090797845367897752102337718392103572621024661272051425942207600393983062697228674598122460613456238958013638133931205851866514373018099287250300463512629946966030843932970859246030284198379438360866305047146300512775599854252740858929440004632449526697166424940782411264210239426794144987321554385234370981220891883360374386347664658711191561238121223729692431618738745992425176022123332599343903923163937169178071181799020901925538811561996270337756085149806493114499991854864412914808413927654235479207651705783896548560856758583239278113245902364392053472015315180513145181096749562506178290279929859544028167643326883745170583390950317469584421181847926091617922067942558699742766993785869650493794218086840913137237600876839201045368696430014235072550434501056138758442524758496138328390780925835172954507985716181840073230018384436508387149509555554357669637800643482046226099531301908760188948399324737884095290378634842831206650085743272316871540284275818963851771508185743098440930380453219659573892658208625930511697820372273559116006011798155777215340608701110080908739505601269613519729506598327106453629805478486782172457290347237547839968702421924062687081612006349255146578645314804625242002705361984578919890617821356430709903185925727808278281982250350181495018188406400613153130935784285567310110059450225139717464695562241585746207227507234037295989309509668075519467834313613553899759907628025569147800304133670586938089873796870851924211354316106038731655134474950744403611941846019607079726425385931410594273500089359287941395280225997333651870150078301253236118777972894583813707374451087391205459808484510498874176809185226463168577292431576719409755215230814730730448104941953128497890546868488678268478868021036612655583993258737409296991630457298232847668393681518550728623976223417410769480294624462282020645200343729999801013182963240486467396676232783077389756779406638089446736614513534430238845558222522133164509839615192971773975596531992342669868415207791324880053391424338127850073025146160899232919059453880472848115267649954272722729911626218937100341303992354242764409764288886619369930333499021748223428960884482870174445713048874688463770898978088227430818211812573144319204574927466927378745341621708612077872230862847968712978787333062507704950250090883374380169813404186889701263308019948018707465755672596915770200852742638586802622385100462081831772082672854595213533500603675979417567034956764617442396427837696889512966941379677319825697046773928080036562285799198910080945044099381292666434288560505466275037251805667710257995066731651071993948688689275763444192321235550710790214978720504636899622871342269310896399664773889296437182384677486047970831255326665423339550873951219898778968608593268944555421801689177585761111097143108494862146960891340991963115017016820431938969571688339433594071018663034409937915805498828295617049037762255438519671355752192962037326587250344110992553809947678950548615500316263079268672949645089696530432861343009028180287076439524336615794788106301632606887817585493975144203121197104677339154875042224467844244004600415999386548070264820417516138985158615931905326881995722984688611483645732865883363431076487638985309617905476379673895536006295238392586366239853838520310355451006712001809894139923727720473655427368668597127850208269965748605207161476557437914347140996138318150427822930420115491495893291532010188439504359912773757307781666501759579783783876576718440647378458869028165065631214016162416604022146348577761294892039684298896094027646368349162332731108280996504205668796373446720855669413175036135644544505509023027706458697219518471474822329628769490231650944270489886989333233914658792100821081223893010187264344374176889447506989057700535968467781967149340517492612290483500772311310129956464958152531025841582690083553714199484367325577462107397161781681688931161235785169605564539972413527434843660150040433994015318913349090557500932126641638948010961782305417911654151473968049668722898095208691742484678304114175654979480562884698907816624237735591972042784672671794056371713867751020832935001553245409016049610527723136716735539691376349961459196418412256594063208627341593409201775611307749129249746124598358160310146579787093968024950592106092883459285311608727612779826745192508548721243058327528892779250348216571800764048246690770833520020118981621188090166941446736291516077149732729323987166118689052686063057040288370202556532851729050831858398912071087203174410636017602035586708834926756312014906659680223990824277747422359530242593948736331669927419767849919980917344544722682757321605326001125192645649657529365604336713628414906658143383834076824614264946737225062592131556325939215406277479557510668630963698781693125188953897146180155520694470274998325056114932137179649077218045949045917347024249270592870983411558350635907707959201392279856056129578255326178121070837294344998555742743652145260185288845096098600870939421486091788483809137944705588613590088460301007118104728498948887882778938905156507098526681989247304972411264793078518763283714915045060355029361168044814375034992347621329669114243837092768842302144727419713418720357670322033185852815878744623189417107261648645439463578161017362853052104024672765856529647669876456989743983646621982635405864517865262733718076737783856932930074184739916438712093401431213422610985418934519538467058908033595102254609636786066306949348729247135981173973115407448660008232886338984039157408935119091064642412027765188133832021138495592814077791371328981017228013774626820876462005417102459821134626876983988452491174725360610084790348651687228851056124342860077866333145317038754325991938123299609005237504242805862011032692208590956616373492285359601212354930850707227888553863616744038784011948172184336694488383542037210138770033041078868391468611135657248907805811743833481568217435797951805377386890208110905917529605251084789858813147579237824461655326237017005047854001308258120795478637324446211261624353756919422371488816965614759520694743710248458739636678652414654535153542684438087926372764268913544337631177686593239499740987459670202123053141714235137663913336558608799866205002168923718941024756182520157990305328693564305922977594066773101635111737957334464536777868479471243189323241269176933994552756872254891990073657763951930923476337021952703007959142421969788626657627894625265446713339542685616982066473977773520814210774243135611309545203027036510205213164850030711043218053466449341253889482022594870646013459387645593483249450252935954490607017212890355537106512431365367988087155706057338577930825040418023691617003006732474782255573504697764659261338227451507527608865868015963955862513453375095307040470769649698797731425027250713708469046897492706926925599157053022131167643332854690790517534634069258021824240995157234617533811038932719267770770755724444817018766711944214151843800092293048130561793627781429935800161994322943887859183615752999579655219675904927780739761084950618731167614129973057926405324722337395788940510030189002757762442468073997262844198577956001684116533122004381232509037031612365808904457962727552386459452057884938973530275229906106825263249561953883328678898147773694644219388066691680557717503143573610527874675572957226922898628050658869160700213804560152128077237430678916660591289787228876989744199939254083552487844019837573692167501577048082204757895420267151462450373821639262674723872755731997667453622032923999872495465549489448327097504914546595560386712297472228411259403832153980866536014617891191775437611409735809108061529650630726812050328387599942854095627499324373158071540871384626732124720644775295301837838559303664019139902083724464708294019982740608773669742132582612736807202345004284755603539047003445403436848778415913387422333258908939755268601387487438843743087358243172298184262217978481719619681526105449917190394700816141995421983834178661248942649671708527860315174975212171536644760292950847571757470797198268157983139841253013652049179196330288855699871958865436325311474292429397161074553530735208011006230417218132020449300998018901809059625515040205273695744000687449060324569629020763620524125751311467425513956346752188839590751188534091284300660527753400014586168140228667136871065528415100582519766000650645625139486330979569679945108617208238493954245196808848479052831309834305538762395387298473652986541201275814385687595396923655838053010331276990068634361766783125862153310893600503236767458034455562628787902110062849217137149083044522117378843820012253825013291130693540206891336831235286800810143333357768758019397725874173264175975926978295894050805986427411342837388920832905873212435805849298590518190252471618354643616784555672064078311746133312961027430575450169533134226927770709601036633826828134232370251962579179557038752227484050182828900897031250468592676940053720670214323615527694108373126824896970827352949935833006286040581328425217449245722614741183594914747963873094271111838683813617495979580321939357247307544745194821779335767868011158321073308075575147069646131287931812102153650614761312368224111482918123796675676397983082281692367785245505679702224612190587067117846765894731078255276896095074781764874344308168670577286168930948049183161430979046677547764822817916192020238814667371675992363850135754607721699510955200380534382159408978584074217633946374272192540676724113541109468003777065522778108874902282008871945274743718271954797784060725483744118196021104395738516963334709976445869687261578392339066503670564250543483323319310424931998603875698693125745574645676695602969048915001224492740640509990322868857836357277079569932376637440855720591858066772679137261357266619736662806306166595441348438031891009051305858805575719828001653479090124722507972281244626817892373884539116186574327448640266804340018505426731171794796953766361913175991604443981595362349052263843642370567968039137546915123696791513121890808034722056717962538234866501864881723990329342982783800563439861695461684832636878327959499931025270846203013554422650009547528734684548347469177714983246034043386401260366293408897101003050586294921628646651805167837942355243516227985157916936927481497926762883735561864111219111081311001282314548234542912762980900717830082733607552803752685045546453175697184504182598182212541489501850922565068599142404803824286524341923518797974517301919194033950092831669761950801574234934066301913173273059909095683146785725362662681646940439330606181218742585480392753336848270420418495439630355240892953518951981222110856156584207639136617851884001705568599275118198062343288469317449573273381462136795328060512504580553216171156495854856879944320955451623126481448186536023464839148336276284886518620819190850264199816781223526213843948292997459880185517369684383980408598527214342598637180910251818303494586643424540053584075049388470984185855672089637876574691222133192590992918179604924161459308888499152950229768175376994120226995992714220514885016783077534462666170331584539247967779702895467086309669354795312634569494578779016187800393334914466076695410658718321781240231749274301350486290726290377837149789277356726164562284811324612788200121331634215640523773026828049780943705589360626063058242859898181885523673598032422966885675160346132116918546651795956209174645117119839363575423043414609892405040884144546585249442088765985776352822979176170927649855071423398132929917425363268255547727174681043577406839121629362503486269226769889623585672538428615599607733451211919789525386896389058505989667881597736890331277332033889491910512374980258345290651281483567830151493480740116628726702940048837312467616526834420746822043956283474285269606043159195707069274308008394989799891439272497749302042383218981473677475427018339405774949832939407674632195871306609383062423784913251880790893108247175417212759364467442206478369382287351264836035294548267167016976547509438243434586821439097588828028189879052473634165514888717653852802102022357478016814677672777892984224515620885791926413209356907444479032162491957212480821676169781869352851654262573410179399346261528760934394066717786303590466557254353979243123979869802113389869206746449672777426474525138636054037311486771982962522636723101681349234055178982732626465010672936092011242650711758822384320577565839731086218517577585208956156688648197867089505308136652425916063168796947300879981596472805696672311602989030445668882261105651233151024062540248745635970686233294314405861552135913427709001232961278871774400212648366614222912819075161552273397602014901179531300626477614965677395227222961230698364129895485219996031325468658471247108024535837149884245582394199833633357173278772573245066453575172315143526648591022299947238604707183182786465129404155401706041156958366916517326897977340489867746411212339142613642837022677650413790810577669954014077962930468347926991753706526476417363094682361472143301412299434057233305433373897500019712175062293127463682437348687892016652456268128833784931596963634345321502928589695523590861819413494577177073353511907322120021314342760866348643594870729913089021806961458261240432157322185199575756253589530542290990500278438015123972053981337119775318945697209381299012400553637868416101036655352238046079712399668681452112607079227600991809803410755316457060727621371356385797386573520157043549407198728766979480153914762133101060765913524384808632301924149396931084155684427120681082368959181802789959124013909130828870069255501059737098636090867792638473367020823470425754674948456996059266839281748691450482140353928467141657383328664190754063599160882391907388293623609374323237990779586655926661655462394784525946285834248508087534051141049182685424770618821228222551168649490687104507799341632073154129136730909711855516448862606379699200944868748239666611306565995417104268464780169464824128040840797292671692921039789400801373038929719211905271625251327706403193493244857039869163556854125908344213867695572251120819441331687621877571318199823217054929678323624415103597318624039279709374275369627762109415857876487080227881021629883399308500367742436213353027833918582754672139083017993648136620388438638205650295122588884933609247526947059117194918862318216150094418631400374522620753814989815373079432288205435716057945696781835147361780884330122164471270680111818211507759076875149641874466441452971217134559123304852320142224345598558293467755836906805298936039114401994742583795398520095748749538356589406700324286449505657165401911266466352819738501979650411262145968521320986929956450717567505714762136287683578813113420120159427447929391111986944834735074504506126283147334608524294912438286826444784722860460118206253920200390076112530068072556022202726107432168183814723492405334182605452149606590608552541267887167134053975954588372671990539724994775475859325299398757121501477193874480891597344455352080394080981350119688738256637213858981361373152539978401946792908318559606472775319311855480943536250742206762074641998981826310440381060480813144193023932455063975713810975370327187036981373459208657221271370994800107525135290295715532346941632678233556756742622928646609355581619676099496929804361255409388461449188793680964684128762062358379723863570524876590510074940723411635119612395999543389819418434193640740948944234702119919160597155343151052803237166376171799479752843336824166904558093627111847864608172325898807304921962657919651517926196705737018329076661153684023242660438864265793102420702669165714257929097228430507006320759395915737021287467228055347144920885312810655385243570570569775300135445969030780340948078275866135369557463018718424425871247760220446159928284871056439507895687180518743794340925786797202415844434977181520902646935310593144750184754629724666402867679997857547560490306413523239160918023474950691976073732367446256020336346016119519268410197165471128961799656324610147502476358503300864491016180251962610871620330001114992334666846484879525037308713408169511667285069931110638740980774436491321730435359631641428539059805702985315957019124818619596744025958223913609069718999004264318602351444880246300761561951140804685747362456152483169102739832408553789718855188050132319600131414308298978377652339497755235285024386929262816667879995065501065421322795251818133159181822906629468760679385331005022555820619019215670682260855158601286173677137602953523914045032909325513358410449092450676433621601976706524465940794497174923577296229103389335377055148259902021411975423744560170174486388020484857979934831156918092046127075861853616454431193400104526468074214895588835030406381624354837647260062815431499988370154694953887774100296931706515802838924342659231614132509187468198436182283863560848211375920109227824996447478591121596658035814543581541471864162931685617801184397019253247736902666026782761419526210222978737469863416693428008190907823172209677190774658688806256725042451139783847105589304909888334273767287892811381143843652203544891288643291165800111889352668519301770987466445497117077572616778046357713244212088505505123667982673440660643354434575325674643271711105458193628034585118397770216757205783516290243580407181179968786125248314453734846377629987426710036699826927890643312232050420575430737605320377771641589740011633063245073238663922044450659394993770223150907426662425391707731687402181517269614256156014546117670731581529956499909842064199405086316392813458125692367992113633780749574130331600717311493646222075137141916065321621328043404452449265915245563534835558979343765278676212140670413096972137425660651283075620920560219393469834973601738415658984779748027525753718132064474838670735653668776155406106649073903617056665821386621886246913622250704303563140834354520679109986234874749402076294495326532523280795644679727589911220975623660429620078415913778956021429514420152408668020833221473460621342103729269445402896346936432044489477448839060949731621147158082349800963825147985283888440488623026396106147461130706379317602770196629653037718729850947095656943191136370623751617444896260654557259312833648145185480861493520957203611016331789051721395669549298472481507183903908706893517319583121604665477272205504235629308810447871846211075833023192475866228240478193089904377807067102420443229016695320690709423456513286199473208974807526630583944930302270904657513874324736978015097396317210434033951319248731454680912980110016010067321197368094170415932561789013718927688776313057262228803550530976481092311178687056006207584821692398723294304880323860420644311165579249485473187676341395232402463587901473723242655819894639146697157975079354716738760790311089530058816592988105585538397767846924913939826056294943678287110768476019430453821525193396045467972790878954678357920862211376967392024109262163717736206455438657811165517932913150078408573985843322572898135782027816031014860672446200515549934669356804973328921215406567401542565108342223144054716792554566730609216058609413411635541970398823389601805835080017150618056612478980980621046916939029940731119952177795567799999328930074837278082044379119379922200566660994481757225369286321317501249365528850480880546007940674306796310997775337184915786336445846098640281804748443654814633537593727583665210409367575079492245784196233001953476279169806233467669840726451111222592480296702210341869312236041743838653068116595043646441994715190350425160045095810145949087895252592893160550336937941607850572996498303570595468521637700581705958249724775305305389677713871908176827406947802597403957286294864101217311722221655374878545629860640972979441165413688530523521223083054621241511573871875759302330116873083765882481404113765770127446457651906854837611113455025025857910399832515125304857902429187977203535948877447557493189890096006162110399645486819006708748139359175184963724036309083584901412014574408306236916089805247029154538306362298511552048395121617611693770593605236158861559915418985834064952071685099126190337999365015754746166150305670650468706742611215823298808290151773700730725216085099398565701285889401026190918492486098082316108555368147147090829904880929040110852579247817310075312565970237510930055036847676373848601500231033855532575171309037937544899802443860044663789644086019432710756244163845219281960450065079858987211933353309149401340570911353237829638242646935576621648073017960150785840626104933441892632305989675953417035292237567584939717432990719088861342153908644067983914211769090581504340313648059515479810643076982082206595290362298199055132039754817184060324409238988616020516313088969612284959571549692768385864612595353260912421241762798832923567643624176814971276718998440596489657072182035972975204906865330955966977653689699521917813855439584746243884257968322596154858929833493441539853486178334435994071543922980382809692262288339431715906810926050747872905293818464251584322621452931441734287743663866105194312348259591630683446984123172586725820431050233562351983304236603779161764673954772357036090487171508319670039565875337430763595498040967673661086596208217931765230892940337268317538833778926592320008695825805635760379848966886327331853017758383208832571361570130943168999159733085344997403990973202375202275578101014572653123079492605073568688688908788888971235829492545798291508762975939461335200867104850275394873619653149248911707107771646463788082226989416339056936437830685537556627667507411423463640854802955136644516311992402641076361309954861431233699294146907114409453670769423570681512049899486303635576708358922260299369576253006442976136895113814596797180268196382332842905689190974078735284273809737729997673494915606416151041299204298618420498166481073048904098892918080785494338751778101569203957513102622762566179894606585399570728178896066276442577274270361685953228388182073449164671224658033074581938890107235019011815085198474134557270546685072877010492976087766813015292573179391594693257711485938171229323664503715928829578592454572374287065563894939083215831831553051483668377142578970449977996381832772726545953958464980019364190826320837952072275895913952267811726519436478556375550888089907815937521978811399860757971472944627586570032776254660348079161130298510967881308864518172639645421225900229402825853527644316580071189662787212936130122537463006382204065942380162598159441089155734496467049374964700959966674931529116368484062218131605513943352144764069717110446148748757320258792096392647299030063157056657520611336937666189870052695837969325881298757713596119951237116400229533645180992093630177444573246289906435773885095852409415289254093836750759576239893477845588032387158263527172025598039675564645072087104434332509576146468112820969783283087619963023412667172114404807060094032486340760349397035142408174640320481910228552980489911959543482272522436453545621975533073420217176581198227140523093697394779430416029149993180831410243513906836554227751754980114902888930101884794452262687063043232169375918856995263997557331535105047934994131499969183715209682970012073966435687399105101732657116945039519586048644270011556020147209632519789486339259816974868582158797531606108651071552613708239527283259046797833384444838408630993839903979527623224506192427773584148751600497748042575706173368244410068610843336168845531025216980256865585524768649398024742685055142983833930874702846876431669907692696434726642348768029783118846774944494015870685098179836400573109243477828199193582577355260385145688814211383121870512345406438730004006226152806845968521853886320288823558830197141130270825117261197187406591745984427761723355549111249831390710640878582156339583162234348539107134075690021495443313350851841098104151885607117512768266391231578766248996030919674042599781893227016496415438396804700681325875494809490123943406770303352832621974187303397177429150484531990092267352986810537658776445653188367456077456902056716324022911911872623848416046433053024620740675496529314739954086767199956746000699813139290730025262408680024663825741943013979638326205739805404296828560211579459300664659378957039010124628242562352038241601036245214453076915786560384814461416618514786376326909532812329765133099464898091599218087304659631618291502863413829108447260540070791220599206581076272687489261609871466594456583231604120343720723078122412194642768104360980210407463698647804399260199788736509591826195331411703490592818620848970041634402395500179298980103461290353935942425132627534324867009430308625752767934353988384186385022498732072316959159938205944588259232406292250840759049318338072345212616733599677916812690382596619889507585755053749485338165826899951007967165309395071215640617270237678604507906535731142257766758451263110802096290696155668131003731154073283269165928364983575614160223834933530384014136586665863499638897584685109031315926553039641167586024921630504557366040956269934236477156839198606782852507961891738309542446270004570471115696282536971785178781165024456561684100974656237262613029411870090102028541567079153675138153848395154843715270998491331510822527069552527639944701523364996610233953009990463467104978053696481735679422210320926030413733970903342424835287794275786165656352367705152775674683357005448763911304132470808720250655991816367474986785696089352186380372873581320178278426495265953402522587322537149140914633971929515308738357299628167194839517124355342377671213086142282358295622265991047081556108297467663974364499093784530199190109971083205575225081207676413110683043074970874835034837969680814257262736789866439207480842201402629657081896599000325853277164164501240792776179815562679717768441798736364532219011676318928625457018095333335951305103880150864038299063961638608303572786243681617134444738254084414057824888725695878714842030047539897966708855362127920723255264653458916344638075240464274553172197340333903579915190775744060948681562064415119519392250538694087735566960959403330555728064773434629498907922960249193515001133840653738506524993411131643876689683580927460062287544831082711445757949259767023914562100160133845031986957959309095622382874470043431581755649267934072901419124322708395331724878184028606835712342662192869738150228368054065436426129769006323945376075343382734617781583048320545571241737322170097427113227387143966488241094485591937815476602921889297076253355881022216911824081388781030773961427880017323953470150143576097180993466830802970340074032636103615355749962996917113882321888375667961160973904814117472398403130640193474829205947370142895262128130141697493559162522530585512634189812874008251770093461839018637084221304907385424520663244290080124988840789409981374441448872513141699086259517947400415661182349937353853834623119313233769107979951393117063327782070696245362648171408500435189552327618782868917640246393023282582124454673061142123899943823792835733873299160458131578025197883941985822840727082895561113387251794374486896661324648847708226063168203180163059240589918986189992313019052992937333661375511275231190158866402018050067072121428874940109083976833758027739809100425418023704398989430258638159324585239168962965135024861689861078128594817171195486111535296727048435303969818948179410466482064799249845709484567042547154595189039992377959430278485872958174001755886026765767714224643310078297757273680567221542040822065609768965589599926840908459129127332672352330459623303839100299124999729771330681434506746991927760539571254435107025813414320167252839204951396204508031811368636234852203075481413036342579247138534375253378603913096681212616125306718134874389910200176917403328656580945840668921010019764993914415859233890791971495158962771272393492178979948829286297444114860835128371715566152360699145406898248359053463064255157819313992087736879275239548450607692343416392515510716813542610660802609143109808002053033926271859814090078320825584976095232961834067946895618636689263566917534667346024182829213885706450687532166254163512260457311966460638301129707609281438981256082339888233872934632659041688393707774622321927319803802021000872997681145963933748077631234368813511509326691543823707083676362989603026756149234295770148894894283635137846605127813334373508166130690156063987239829415613491716525423746637292198369633747175086788005594146162065121037813036118861589345590153691678296884398369525405802448862892607762765008152776950673654102523458499037501606411037809901963066375784322233711052970472398621461525133194212197922037357436174368216729510915951097518247034933586650901656773647235081475207555996297554308041207076693723264498675836393180512275128236867132341790009561034668691788240781517812487808812371689641592202380217649916318199504329707174022820924886358327014900844610141283122152398452066061879697514728622826051169546737259062836125092828518661533037767788189893050473727979653555617210654121272065155365995137963599734617898059646637975326393448519012886348136153061179708122890383707849834292409672967293977001605474311434534953693799377056367941137894886666294033146287750308857389057997049035884708022440662696636430985751484861347644049176470394532452372711709313915920524794758447116067751437902865161081422979588280878560256657984744694044461595049431866189687812182839646424908242887542124406959419394805526600268461977610818738379072807864169942363005492512054113298961652428924935115436789284556682972989305622236696535637568469010809920833102457310868027550969508125201676316471939510271420724019737584111752854019421705450538492542289293147835648847386899049489802698363694108159844605367972387887989685534207314318072090130539159041378832882018434567537156188114874630684888510583827168216786185208112987845341399791609593768498075950735471291761105697309774149816119825913519396437549245915255734618573791636183561906329378868919433584626406225377274151054811562000782012097804133919423927785729103355338207310427260992396768993059126295281881799851185031595623043584787265261277627339703451340791873252362915503062646346696927164758309550277180510415769261444841879696598212598817169742875464692145110723756145151888294304892478141377255697439587827223221883330874697571694021644185079351698765217909933120877412179209365604377799009784509894885678782298277605713628614725061044615643345869492056724039758874210799056597359218418965344151375157600874259455973112343539858488033370216094722891099875980736307368293026740207939320817269987635624319942908133820590197040071117356980861154764965750448725872460133937057568605905512645684690994480251117369729271013255312095948988322644431514536425422914748670298475643266058344244857006770465301468402013059703334788448061513084511011197750798121288398381976710692745856770258814606792134253957040396618889723061419048291786604185399366173161283485233318791733632543463560433853536837781513092025196187773873611016868464680996187123249242337007210333080214978216456760426688341778498210366232600572048872825201197476957191973623312997326148288885940827099828029584271423282687266159961415511239619643292978196103548483371489915121236129584680573052078042004482149778180791641054897217431329686160831973582836840587855046793130910967090928922143137093834492606963221239623400847320393737261581978483702850164666827959587244274861155973424570021933571247708848890658664579385387781424726111199542988181030108182069844472976026802463881630674811895191602376390633065710900530161430984946171543741718149513989666680043503388784292347236426626780776194143371759514727340611489130008921576811654167532039396726413039387151093466507524896616556337593177783975662546975668697978659877771190421667430050506755565073531217861742241128948641458845813407366350527105284052179143594444073428130563711191329019299633947146376843893595859422798708520759094000739377703461801150485592444345472289358570381636399851489764705524193987947411266582203099529938831059431791486359678000778885038639918254760879275152475586947602277830119635380439390708820443829759191791312076353967883327416012108616194135530954814412556892114175851038769044895935580889609207556874102340097796201933639418878365276523399457742120463826158811074206071051152440336440794925752821746612314167470458337889550427237286397936353223318966230212537687381463905650627838847651835453881211907635374402898229691409330478450994458238493284568754336251617897997156498614366348533467465164388360511419311693226942414057289850810994156485154424522146692525080926886650959923065641885315781194276653362966476592631308034734304826212612737337063222933711805257579778180996327975551412131451362277452986765526273306479633642137918021853261401056733315397798347444877019096164305064680529855150192916118718627619595590326386031381494911276109431072435812899851808768360981896671886614626007482325200013627120079972405782474613011532259235405300499388855955767077751230831960230961924740181715375412553611864775233361643437245658147720708004358016850418739316862911530931436956890528407142726023419811529401447215426509824535540091078520887549857072392833412517525736358171628096042574164717947700057852952637559997708943357819526757321705215421148557053583422028577209208932690992308863880128969649072899856187409868561413755840850354615230860940935038387480712889144532868587282157941598017240108772346995865747465969874428424713396281391443593806085096121371215390260960442290644170491895836810375219396517432910189296480150092865220548314126686365820835887115997081377736941174218175600900931386040359173368402511885944517567911601609960935805024853963430107510051990048245487789084877549347839729058949490612854601617896265968960742504296066955544981182294109636691748707771388450262332199248873906317086245371112043327180684557748734679052953921713303654521076830646951110009298584417004263868611929659084151104368449443821132491847523689954277135362416734819613717497821450127392800936569641697901658685233262202454265873193647555693435375281422853083694892330988775010155725678487095204068443921687279111582781936741527161513441366583759270980546054818951087117441692458429141475099432365046539754635918790817249780943568730890439224926941306731702774952080415710025202543777590360233211275180289511942329467432238526226803676628623111940290332281803471265298076991713448441343994599469634213650147048458458453015790076094767267817777514397214712835879548740590918301815160376828067718605150864723570785674746310412128784684155799838237663595178477342824932160101444869953158956441471218908570885370246613063570998198300218026367755931524524577566492760971152487221776938775504813004370549873461074891015505674936098711662888424797640918907693520971587164793601348464489619654279130722108503580742806769729683978144238537092013939040802703571985937021138666064694744232092814176432327806556171482428797837235378290546470085772274903123766540680300772897880254294571855410902306427955291258611691026491790564578091116226932199966309345503801881581387019789956551529700255584464490905139965820435449638333148437230931584836030215186753124631639141853543361089950512563444837874452811208823563093630028377303219858329262590068704715432853902904625550876775022315806226164843544361083527945597085469647421559306570166648264874745324217577117737830651920092527941337736718231935826727510885744963301102452352314955806702892769299103809484920491048176429660726377729925611637472065282513861582062548617162266825092622010041162963924393669848295241097082758122885357023078858475453752355574404129531833777651799787813327933759509336268732824072153068850893316740881548946580992870244904252260484945691480805048592808516530068007736456397643986115683161859603376709168359579515207514149895497734605970961367117162767410817694627222350074225097342800583692761875576710057372615879123455417851844582454806469417922725635332348333884952788011090247974660874136833353799822397758469051959480574458466763763247061020980029061243271706788243222528476056782847113160943068005337236460205988160925660457608567143131410125346637500422536946913727442076399982954954939504505775182270126054612762614376997742046242945907218269921619205007455854566686209749880855165915341132470403420208234526596985585786489573583433430385605644500760032168941455269730761580687298345914674570240848386112358760028470679166986269459049792044604685051489346351484020610188931504417559929362597428766567711165940574417847012975608173526609594739593835592092839437724287932047242711659478821722536808645189113559064185313918306403999007796664355512411792693322260321947040093449419594242402415140633214959045807633816092076954799108268456961099544422373962145476856897354809955535067203145019071456123066385380866512403352168520889402256568830310989430458971492128973908998059811124662436611027195812385212781559640401845855773840686043635637440954371419687882337465641464403087217400218713832317255424923078545776771054817563061501909457504554772998218332330418639522190771499364591020041423262300544553335051745400255230320331099449238731328912795156333268352789405186311655721546866826440133363707311995560561381273923385274986344725549594903944127961129203919064598270224101863672411672479117236683423064806234528958230973568518292769640852324904775855074395879104385617544258065515911880495769366768478801834118524371809592116645028682703117154886113243940526005063021398049018948549388550709830582013290220885027454905836363198742082211706133416207765533077650008431103364478541393440951953018193302800820384484286986069160363078601687276432810628525870694460984945150059437789048859820076408517791214804599876504242998572889389937264962379345305073702377833144356171044391301511639653800978914016056720208678229564501724542031435591593456754372589162932715597059756333014450350937194488491992508283053132034597071747228905908669190021396800160344107028848432102708838965624897352724872908665916723580640196517781999857275871576166861436471148392927888757724017942558133026193728433597444253074881729976637496821699842988278859930807639942703412909397745895320235395958461194106206258688786361585338848312665373993120099547243304775233830197860728034364627618630160069880942811269238286115730565237513076173852557156120457698215367072847471030603224180088040754254377792417695022262235091391242654489090834925144209546581459620476682501091230288730360804392993265319972757583568354954863521042896697242026727580577598859145862118945269934138432067521184374514971168982662513753791695198259621926780059755371894456550729654969667829732836100226054770459340927907497979210183133373921023665192801374134676813953355814263351171881866446027062316974873307928784491603694020055106432502544209184222778388932674127436417312294160401355436665470083929081195656427908179896351567504229525772182065039041725368222366376014615531146954527029190208730522016575151583258111021305532544449025290246579354021159962889144895222372312991374003753713359992634472801359259645835770046421633910463129255223184845936189124763862859952939821662402048473815118641140949161764922908589480558786785738392117132231761365323146569134033394516088106924704708606479133805510401358675439116539770871859254199681398830964398882215860990611709140475345271512592116194588682377755210146990447518110894043188269422677206144204827536055520366999414734462753863598378184941737896762509619510214399923353983994915456986768669693204939174855402370131871747430467787553419421388957161919040986542230187293344969038396323985626780722085299203574724441592494464043110541466453731704599056509010634834091311079707155934939832217498808719736135475990601919061170980605523844144080635363491578225901450453370999935972801595590858113388900210701880221269596043007197443483827466831644807781678616519183992542931271283044943515127679183834274138454029378337538139864699765087969113454806632994398912432057687631758040411627099119084434141448091438437978132494641567108686483688868212236457924599737894521142235297296389442299191548662382354348930453503458522252817152158581576369487189134955483035932856120882019168141414215717542615649124016696321356047317374073133181994489659012003587125359824646985751650822132226889875031423328990654530759532680204844445339964960651203110803688631302167791394878507398501779782289453317262321499043137983980290764377485202810834306291157725059508126762419979420338127048957418365614898790601666317779916640674533900962247027780235500793328915500887160696426549643381244985143721210433145205720303144635590041426234180659418640688617459169408937218986213646990960031608093006134958204417179817086608485312670591577102278193519191172177492350641514854028016953404133846013492703695509779451485245828244374031224954490451248809373461039193349564388900199848917978675098833714970630243921624297040716056703460164290639518326331309595517607712791341209018402607705047603138646332903597159177483941715937671732243978278664785696029839452984678370755305515297815760982362831818046435780949768086499186586746699595350848292874604216936049727550993129096478734468111115758645452300016635874207783774376484092792938217118768781538810193845795489998908307577828036166235017927185889211005859920913162185840789662765484805235086710564372840924981769443032979370268550013074344444694804574586377914344661666846814652309276437755739984213530753312278862258635955446637854785677694807797331011931400660984594950164332247674814383721955423304792818223395887923311305482038589006556550557519031853386246726224648633871527716374482333951190176498031342234996157225841504703355289088282657997594941202716385456887347381730667456957826176127927316498701173240371529213165548937018724319302003339328753323719812123133662751276106106658943315183838953126788747430224366419030379519928041488273725308586102089794774537641127244746061605791691443852682445574599792542748669208947345024634128803274601393756550061336459617946822139249681422133827611717939941029494941272773425435216970031516070860708792632601177646746442604256239309802713681779303114968222680193482463288007790800296770020779318810226111583809829065127862511793145117592270472620916227429159712059489957014232501802426261100631803510725487135866764496593592075312523377700034493176294077616430844097090799588524594793344232129764427425908305424102522197018810461506790687950045058274556364473550983369055425152767049637583149034082820515587739714311446720236225405200385973759404726668753059573220792607656143711583609049905887701684578327788033244332074556319206041515390756821782490805884710954953070770543002075687337474983610833918113075567732559593633368812417312899232480721616790784943721522107291013061218396310320258928003215230633018114762635207194870351042561498803203898247275071661974979925402765167242624403241027235531707490146682485066460584828613559455965727870085336544307352444091328664714701249917987753127482333703291661308266611649857885176759949289725234459176447997853250396576335352185748076497724597552391783088816055536001873249121553776394951979407617015626477767403581873487858772620611233134820886437368140770068614996314110339217694411676547808014126638977628694351022035753517475122999628710415535064267350376614356314895008583318902927134720225488627302329179487676663246201848026675580478549823528585756926679973600610955013355822431063262272852989815661060121311515684969040195868334819236735154633952738714080249212130201713864011227118341585946437879248003766107782138642375919733507653821678519846138997449494251619349949447014053461636011565858650006350467834749571297318522236061159312998941245303209175106974942123874017557095856219732246006808205047124333233273790747948454632101313964380046779228411910195848224466853216748875552407309363269690342233909850069022861158779098461070572388350010773639950648618215783720733306350669186018324486660871658472591792510177235723637299383758026418689412426725160876101923502673268619786394720142100637514510624914727448260518869339975199701135891601775259495074363329285577569331391473619357748724918834765023225978267099916686508256401888006870190224844189184734999683253811086945811090222759574810158643742122493129163690652832441998918796172077962699352022834756242803735596505221511116672845057475386313257961168940305098570267322867205471074096611892582477510697434347062536281382116204443385321094724889126735060971532825281791682281628617121993317481207245372719683082968598023863324267153985549210179727713304057094000136010452487574818313227153575713563393560980983104607676106235132032020378229171920112492181823932295973407241094072624972653548876118662303609897017502307513881351203471175404528014399113946239690327262897829007963855047291825029199041642054250633621022958908296766694040039294173479863559274539173483605485303028501117616507353576463450887591018431330951628808883941412835365468907164360898315721454456810201770553525572022052378378569835659813425726443132410805632916906134433188234372355173841215090362550686004770527890786844036473442528033488271993846193101545886624186687135587966134214759657695055460080758665560576881589045674103181350330818678022197140517804071003687681155302808592717262879840368157159016139390620895839236734977818190990886094463866220178169300673467741875456640122426698214547597401184982935344657786105782371179649486672493551137414152469623039980319073818962876252021769432181229810630931478714486123929811891934562680266047496128902967277430011830034080056241715951568621755746258170918028704846075077059110721450091784113248937947968602092536910876069356953835887438630840596819600184706374870203573370356945897064065095120879863727192783976986475897720433149162461189038645656965315552374735661050119135619705331166991029869899682046283166399273869514239950821396017612464480145736867809656254180161812387627670039391667883497623721469122736225086321193982354741228010906878794546824593387982078225256767970995456173921348698586501361154525266479628819668584901245205478380569017501396953728567960045089122846037304059254129303461808632181528145341102498164483899682069463173891435760444087025389369505962676898404809603495838085896621637507579566615926556922213730439692736264183323675477312365516277441629993182964033035134860692231100127013147022612190509587650487677075452657717733754309183451890843196605329324603215450959393657481063343049101358885123714729409058872091320488343382754176962736777382753239079740700160792294727793858632488207459534231204336282506264151664879452223074263244663396594288693121036982330500460007988105827712836467081226042308374498598300209107504786315050400753703517795654918969168776304295745665895165552880084864934968647680762971197595041312230003732429164387956094527583364432841686955461521437657553938239173816719416542936686386562325460184108694827124719504561108115278816494498335408695872960087783412861794570646223214928869433486830586941937304843047239393996604274570562632512181393010580248266297337850008281586034118601343235602602833735309834590073100440250991802937181782133584795833749057812265389750815454879418740535095907731409964025287487140811419085062850361038341641288577034753015537805270119277565458401702029238327633972265738354201107707395648405412173187724301288267340070221492271807123980142954383969208027757565905136809962877712147189425655321389539335874405189826827031348171873139270260055167465053194490062138352393673174237886973204562798833641310353680322723060028831173400056973203166561622580848802592881424600543002960340175994763020301425979384324470212241753187579500480599675837708129035922262136324556374772559139422785211684833869145059660123664685638382061571431809360905986483450739840537256093042136780725656641060980160173257300410767820257104758754454865182554814726796863823147173998420340494309724542147367910780587354622340748870463219491750871437585128217599075595021352542009377792215175472392006742299399530249833701741522167331882560720787104285726790096250391183886805243866919695686899834241487237266254686011312346686717260284358745954816639516344409769275127795072639567383792813196152515623493976362353765860561156388551546589519274663497039576696901514469989472266365714855208229081813309788436411916204627937713444955751179682535127284441255915829225136399926558702582048653664599079727595482791408716680117784072355678080736543087799329582508885986811743447434561800334995088346545175048008182539039211205809255864952244233164729737558248643631642995786300003184856922901757223586840852397821119634166817823548140448194918489757653979202006368709849935695513644446346191406759985049687238508832447957730258667453901024582421703115099041987374099630660987159175485236818280429923375229464185115978379313991017096208038290799649257007412403878455897835938017015855592150436923895187341218074650638579021616555427605684840268518497173008684771027682763137479883821087072415512103747063600409461919897554108142028359885569232442883668576766850087161810399335721688057018851294340164310142446467516377879118804457741662697260880488709167760715244309783909513764172196303466861397188285257221698524993044308933469182706497157178021654123097313698632772131732911669013309011883304089492431291622098422247404124676871039389066849816497506161830346634338877819493022085284626908958115576986517535653429541678963937194186715424546148463126654093044227261965849155845542018375931104014561280108704610682670064190157711144664973559454358193412315981960294551002560104375157600078240429695539762307755952768989691834186167634310537286110704690412172710484793815118357890595680228133608356858493855551779141228251746785231181250750612629843898581066190289580737300014927737568319647749319804015174901837249368179485809821991848901920659391352599758905624251490234176006555318404640421339643130286553647769518143082090517634301662982292280447898977759359564406737032412392568493845746486843462642332206376684552292397217677929168167497864829739262499767903576215909292046183700171722809631200724123672869726469656145559763557847925096693050679510656262088834323472151334817133660119096855110614757163327150942426207511031842209710211223328930539906845967250152825038633840835321196963452103068228423824303619471229308311365984621365569951552224533554557205394748443377206116300471026916996997177050374355408139979164740939145810253344920108601120608161346931160309107421740527825817985159312045859659856000073286262216390398381147076727554661356381806776964779108613980507055246723680572741609013144953088791777418895990680816933401938447927716322502485101977784910962514625437676536394622079041580163743465424907048939650863160797870627717181575526359517324294425127623820728224691292681071665848130064141266872090888236651649193486249031219116556104404243827585100980902598238075733085111578312520187964837366482189878866824944607495422625829534277042163978650575243273295243630978231718498395573506470912517985985820701289851671870304366387906583581916203441778596877046907157824530904152646858008065563916371711572850052129433101175287416822338443700455838010649255164421728574908695782631900527323078611934550765856038432011635173411323969632385384726273674035196622536579331755751109340773041507982766678576343358853337250616333565713290104054151724170368392717222732399309160829634600756861628853791509056359706510487598248531259053366236751888132238152970138797268013848902279610336798474189919597499193923962647178503999473876101082384499748404214782838163275666689195598999834203793510877445481861267660391076823379694302800944609752703615849635569000382040877578914591354045509027991495984931998126309421160514754383482047428029453497910025712898343552232811860033306295575914035590133384998816019364190388646725145088300242231593610490721970195724754981404209359515957551062906749382223196594606910044911534521870080914837755506607423161205949719851706432989747413778770555077406418334897499442285674784975304593207035627463335842922928277522943904346533644939645757425741133622523870439554369265778791414023982149163605571831330884270824822484124202968094184774049952762156269676566411577078001337806620129688095776264139788331800582184666594580582531799612366310358489399297148569975892067189963884717667040157640936135537118964343786602601034707157039452256331802649567161605697269580436313752223086962783862311924910997383593862669010685947072798796814771783582834215627290143048702993989969940162976507461025417571775366269899225078343122201251611725819951341145701701953273897231813148506453272810260661693044818973655729536688177727535440211133458417903856947606337653358778987943297345899267118912584476407698122847598787261481774081920666414616720769628032572112006432715349732435456858444295211861715219340909138788147511381439917728674033012568749658833597399232708284357665647581630040863332808017128008831509253674042011369620353337385355806753982545815515754226850455136216141256116290023082768977382846635727540804961335772426176496933481283003763666269479838617763926179200064076947579656111079486412422914281032139233578347889050557508838357059379199030740896664867874645094054006267103562780627247306169711768704119097244035332974739431522737294838567795949413547479760323563468668787316678599145542537094761047385599884304051265357267484185559288128126522473383727358186468017920027629481947760082639357357521507714885750309520238687226889553521260026679276493893614246570612312963725433797820797839759831712808232980948628763793333836785786748059169919525971366568344969129181297280223603501630111489012429276428259172558093816752032293977013679287469409827731009379575570082023175729964107418762818769437212546717588874826988300522520971234356189413414178781355147129580327701297781070453288405789208762691400446485244905040196804858620327481390754394638649361518666625999202182194690685464056801808181419767235808857036404796874601552694758989514589955424897592759223860115294927686124469216947740297571910061045561805425286138217743259810099418710629034061540124715605100124104729805343283501933152025224095085406862378239771505555612680111972537846025150171526812884428538868101545710042771265804457251190519989501613490284653537641153561535270180014774897710758390891133681163743105208946847803514456022850486612271720688769580933993396014198862772885481491937872372627601684242800500157196947111103982106309381834724817969773612091826643702545813668844868952097387413048338389801181692559234367266089008880362828370559180066403821454529055745734182827752412507471654699923556578044944513967234061861114428904949950026409650138809737672605091343104843602919781340527816331025130011283612717287163775531476142161456750473234741803067927762556268632936891529203935354723522034597721394963315881324112537253869013425162428268066402203216414777081399611101926448948229981953057937362772455984457255858517100810798344930512264779792123488874848065856485012885035219346573900083341144245095028492596880921441070811988185480222407339716007490848617086045782818108889531005304739213681461594974965318155082977192757735400651322982636152437356988725903370683893997307375894259362111990934985228811377138648100327691566108818935098672068452509377335837202692651488745228069301805345660980968687969074134300788321546622580120616444024816186146055410933071473908953612787819758330054624044217087833619521786867138260486624645778072135876666700018454875236358922506969347367331443477421276008255846811889490198870348109481042025448873031676206909900981915987503816771664434935514042795088416572303006780727055702667036221415890202980811023235667244445290875349670853020184497108632351155427401584789555966529524006748007499019870924120306320448760855237787371545871457413889090690225283620297681485744825927612249358088055679823076129226914607263866100143190098759373112056039276281751186582222678754041413620771828986235060191054656566345942277346965159521764900084606889560278358875915760809834033659895888999782939908577134742060498001201287832250305408965291326570140931470332392335775680445866629920319572817436385329744719465722835945029733296302916483535422916998256297840301144534400371525109834074780714940081222169588329982314452687848286547508363096960474523076468979337495873088945017058378677733082652173450467545839433127110964094031760210585580175746703695373221561750598497267516403600487368750912891738102881012348639810833237709051590915273111102068598482332418238112609781305286715038560814164029905833940589076438711144016027412418921812797080834112906194621715529135148874134471610457612277354197518827549897539599565779254337986754362504673626238447460709449846139742462191725160008419207848301813710175691496505033324219326807088518827636039436296381665661279113935654857374503612936004154223944117552404020383395486241688908480843582856434628099686634303412551556550327852554920992770271435976225098367791808948632047604997841583646945439969637079125183099764815130132493378942483874973253020233419543096449668540093469135851592524273791862433125553628572544298885538844219707293945308812854109969381092599093947216676396582533464943742820052214081464306614220709083748145263161304825704219944001989238718297768268447963693805986918470272712973861747488044455391446403237030361574373106029086060225041656974928337854974081599277163405482932797990543327845856820940039754568848417563542189775451611836859329864446618793890072295600456309335621747293731829646849029722940751846966918590361281663939085275741274065052315048862581823837834757873506302365232782666793842110653032050318452152039832851958552090709969395655356817638252274138655314677929383176355018643180443310283084986492790172857366032033449664544772673355754954122150492072777551599427994784452818965846879124671032106147948020700990045431308472070707540928420655730462924210390231863549907753864176126143735898804697056130521081336908557550710705908506104082124962398234938340367514210281601236245268962458700016321510212042099794366833111233393657627140962500630709328853354710124236660464182459420208617804933835923469616428859077686623260119005213349805450237414239990205209512387392964850431050046295187240034168440162945770210333780356110744212100654633540808235916684294707904413462747234954025083157796678155582164544155378108286041198447581367492530672642236217110573881141333742007867009685180654835712498546577051466558837906427526777549296977759133866176442354187829404162797618275974176724006076038298968844023262969775070844375829069533426068575436768486124696284285372107867285315632814366577302521425578486890066106347763431459400307147184414940029317325738855389910698172984536399348066638142654814134749099834225235612656648800190396316862948746488139733725855581800360057143057009709443810486100353548499094383902764242702425928680760959614767529919936504910930603783861918736529263711700884627443903291304974480926879433981977013647076003757307506192838029208027311753146535264536729874900700105792343711670321470839606030411726765500884827836941798681322111642435746949374119561591417760075393294444367574720430053972133244241787190847102986384281361970387785854464784049910742237598949236616848563062189596630157872614973987890935504475899816196971208865590728548716758020894615926023632565770531317073900386287093203614171705611380906474608240907696009704986865379639404753788759674095509991748357626010811149784721624772927802074385180015800193611946658286865810963226961654744623870385548788709801573413591067685467458163105108238850358666959256908729017881920822766809978075467846802009108513340628136926811671523591774038713696259044815004691039724862496950470663701677923984348830755772185838572947761972792944808924441077124658202867681411396858053373029369425417106457558901343033971581534615704778163990556867914135930366816626366749655630835097092789420168972162955598454321761031912961803076548107573163183241902708416330690878026253285321544552897928784972713074333053456608941314578147067863960724447970560770529461104582696087024084694464983551132127838114168330963377842968129145508983002701033401261336191273240411627479192934192303178671393816757256096106236301115960337669913696822545619594448233176369709386112797986501107011395685763545771347442335339485225653363015860724532314647710400816031025631040115684633929144299637123046667143439581033122386937490202853244152984940153249817529678462209049915211453583105563872558102892858638416755502145977220921517284542035123308473112746857084759735908049542583071073763248272939901372775372516374974657154482413899767091827304959757587167761459017942665955339149477787672023343364684077410064642498738610037328441988241865732098129823611169065924189636911499390169154193886431031708710971784251288411783640396724857976462088091392914793151744281069708260802382910954166918086077325132095826242021519531713722677796379886882483553882539720726352146760919842130085120989547989981910447776912736893516595125978530260118988662037740342304378541509973170690263004386281837120694244724334463834233017499977256363687546942576563663059277088385990356884613535824269911044836559500353059263279347814787017061367260410987019285424478505439360619061522832245987256990052619792334339890284248426697828283294546857881652565794673245737692433960811381169372606677576844120186543642244126018730776697793174725008969553897088828502544907451919729483047215167310508869115846445280626393733800777862971788760497384014264178998339408154610472953990934153713668504598027666875215948863387129518234627836542475273261022592379897108692289938403644678479000644726612136609123169688181073347598718005601042475931327459336902809964063864807587504044799467723544446999345454230006859344128112672757488385792275432322831152123335853322090782793784521308680349199268699100573112517451968244623189512779834256559279759242412039546399737441906330687435689366272303711455948859801254743362564931750506904659730235486085579312174681039570004084318644480464138562827347429469554274881392616490583016865699377037876511783173325339069888201956924847250827079931443036221653052788939407280680306441225230567592764859347976828699366337255070997109222466911727120492492830366744382693222661848304920335401191640734268920147733525642845321838939524287794884534845970334988599403008189344008260368491440460411695704511299863465049887701738770125179456686711739473751332358964053550378125687820849979430363817378007825301416377706643351534463507601915942814149409279764530946652727546796754331201131867974990151227094244417335627206347317627025917540371504766434206956068356686059304978127897993935847054045031472381169194440350518623012206533786227652423549939548400101678349723220358892889187648754209362815529668836351060291539905760147686738073697766178939098651632375114122612463915940355916987641981730319674751149309608758344131750523387478996353735626608335231854798827653965137766196062010025560734027959985982854983004664231679835381984818293912667536143250980073954662101307202931938349056664429267691628285011649812156654760240744394822736875996548312815750744088503625572035225024428091459688911430624372109910711748591254210241751908518714016954514942121758151984724262204059585636800934232548886622371572154633406786309625879027196794073001278024859054699130767267397518533829097425596069752410368877713719300328939836462557587109291893452175460712421435526613094844819025395657192103960476291603654768496960009375993744675553587987973142073896271668260718184081513094319269065570728919324038097283944160045393193321141499846102774823692958722325247542640006483467956432586582952181256718585485129018744560218188299342503825163917023266276866076771477291509473078777701316780554315199956350286179310392950124292101752609529985067610976597341516472242609025302397878483578130253740156169303900508997901049622193992251762769077946015663989144008547038500106999669154218693705427828467424885297483786740442506719152048974819185351276520837532089280865806283436728813254568161156615542832768501687709829677025554634437299666125236238141556317273910126035200310206648454592653030857360707973382582059707926075562126473828065199372511397326085201823980953627143899431522799327041093282567138370096643514135450582151186620890012244872617853944689672690667661910806026581681056715047739404453791183046718915405187077811405846109691521093229819493678683977987460338293670882151703085325307650313083280177076796729532427371698340007127579248587252800241873470680057299677280984954263029182133343875980632504638971411312048004242381010315097921622294670622731112857770838349882767040535138491179992545241329220139737145404240526940640110031913032468067107620168152644376822149375453836405450184284376114301582620153653739530176876745633088629903334983829348465418138931055347731682806120766676351378493506616755977860927136906663861416198353937933128852000903108263084419350501922748722009033335910602537993719378640864187081448668291143703085423365156698443578098288172320205002387270681423265034030692829865480279134526087239240150837576201152832788114127445749577790479236385476474588572208842921321432326047395841043454400820323510523332628261581529194909829419664675617683493906192444492685502031511722964937343326448872536389072494882761766317895118470143046629178272597735095111626068748653910951137022486220354593680147829278392291939708640058326914542868451036717829742986195648891287041074208833522306878783187425121184197260440815421756252264372542611077231126826335404997646528929582343866274567455060466861963479502617629519329337999135401518526491132989846175900356464255279422368182919788367304812374820134538545819924406123556594748088805580265105099026581703669076625326739500252775908543847335096882039123685580859702714941472790704165611034847028187337457121536992751138052984290795125417685355357767954972818163348695149897384130967280347194728934964187740965164262658240834592525257067252994452184328545265146648275392310777797411258399673660548608350347800399808304924036528200146823953229019435594484092819999628205298105202055985919793872542182238573288117700997762566542036899013519398388596317107870538565629853710871234416991325992358953856369653850612513943423295257355727628028278569538923799797683136630639169670796442780290983530982880043079062684963052606715029929345761507276305383353489111233953652631548048768479469115703086279291189884105658987996755036574288532050415356339979728186160252083798257989138562613659752892002926042159000625073900346976123752620355619469255602848831666679660723396098793916096565365369710644106775939099629769153290484272173072959169714537618068247466337301936226634032146410275648096498178927332558803196759724995376172896170581839728614606247402878155456080517079431423728874090282057044965916665999704884818919936036964616656623334449204095441265810531604711112807093562347040071430355661239146190646320943305991466918791128764370006867119645144650680691170400316611422598846082950742932287255158102881106824990358088388027174676275514941450103953703446325516544107606818714809715367432107403766576117059676135935299897577488202781964272461303753256405334158200795515790499047842092086808597261175042200410302905739970150940578404540407754505893151595682036849079960699037820672062967998608655730781006455209078976687064216449924544463534379618192395781490415336809649520505086254291728419214867533144250658921983451375736205763798225080308666042076359765039621379234363079740215931304494514719302890612497727274819924818561744697432381046365308901716070402437408595164709196616933480380273832349891720213710062796870535917798729001359301493509716728925923001852805331076685318392992232396643300403743844038016089973998426375859191842048436481880983375962488108608377185145383106306928046879905665471575498864442043992174991108758331872816605037703200065397503339924341250806508483859252053387171767143846719320451025938381938125995236502058700485840819328398353520374938784255272492022090124486324846005717532628478521532164823865179850337718094800647291003997933788223712385245855643204878383328424708333044444023151541557284499417422251477005148051757997771719265989395135129186281326146033513043584474120640145274520895066648812688127189229946173435491276954828039228944561939141600911389311723157672504144743524958130170706546458528646643134536325329326314901839853742650243026669325240143336816568657048941715563825132856386830352805027445466238646122047019271268358197417277480952070746202970525326157697526898198535061840427150386229703959079964843225368294337021993767276002411765496697979368376253539326491015981494688075587795367063718476592708538279935278077693303878380559016683026512139162782134826112178112444685263137178770124067567169332566208252470407147881380719233877647411229043297450797587571592267795609159215786898926659968372238987183458895200237516651656650979621059404252438261138651283135416686744638755898927468108349913209279791065933118187451029064417240831069879142548231102222631134770739989271672083463684857562350153657570579362397598581245611957627894559255666040649791597758441702305645742723000566983801843907195273086821214747434900569970665222618570398165697565115402254198757307672623608704794028822916944755784403623425977674304394743831392645635044453293232404707690725818733968190510687807681304656781474903806785303444451412202098804195646481156662515441848847548914527179274601987686781823200336951772815981581070373442038444513224523891466228355061687166929656495334965791817735443021080391774395487307515643332848038352716090980832202671902449810731715107132826032813731347785833574794770358981355329758669900716144755779945710588310986129701213622459852352342635158705878432821045984193608096022954016708257101531952501639342626320214606775976384605303194820891767876355575300283341876245405412656064593962856377860941608023613098142629847133062293097549636983327713584714712074161703129160543803662723280317473709281410533466248963813738780311922823560905117397374682151589378563716107048684295889452216013932114882915309070165595353849125778163061925172015423217514253236442171863883099505257627216777865328732393267638303665837737825459439606531874134687422284967343298434929579917037404191466854267039994081929214081618852771206976390016713274103140827338169190629302228844639507133425690683580394336963807264377426560092654082676340655577776999454286489592752632474852006614222403444260358370669359300830822972733025693309528172791459204664201063279221209481361922006410394531239656463716275556617541482438390234350438300043473805445968199979122861399246144995330150492429158670859386714682528674472014845044051628014563139871196724502825685175745090318129662925360117489608922366314302141413811027221556188045940265883357348976472114657049541972559699072405637252459769491303969044056885047067237943296021475720531160590648088267241204807824456862303794132825876142339618745158996058093664123355788386070922132168558327692361927452537766180849772028150694344951036409104707342009881462549863539163254909529319913949447800034288737345652827233414604884110897357834059468095713681267364309613284004374724529782411977916149707068334184817904617316545847679471103884036939060611268306501746399682281558821714964594581051970341451364472538135882910979019956003466794557597082496067771872792628227471690898044093240187371294162800511981289556004460821811205171071922126755835353977223647770018299053928447600794642952852004517217426330635792639378100329919567635537744244098722081394240507928904748074654998766346048566643338959622341581311243030047836512150285274365814953253935063751572342087735919259912012319844697265964881800395633663283616656146544754540159495517542750833379269351467550221121029758087070533593304232518376623211106788317355359688135958059927897754631852324152543448586173270335148148109042988193596057900720479497157119728298224417846461004965333351719604565295901105078364515761637846093223555528419754077528277443986118609764036881915318878917443342001691897024404277531771753430202293821948303090928858781625545381368644410958049856805313342711956679436319855479604760211687047877881045041324560693918013366867837707638041932409383338183694362928941722237696278625995055372051491216618790651975013082635718651963682412120012067993464403271978940872395713890011665218546938400534847099382816594213541763000648498295934666855604088430360758486152339500034892873643481676354957207627536492545180349794159380185357563341073385256724458889694435816452146963458031629929579093395417187560742404962461331182615532508578828242898969533697426570534140357444708353442748306454624037266343779023931787335090307950192997720632369958077727174829480359569345261803257590418034197428800424425114925111366170720476965829610137386790415560019999175937046707371017020853397746009737455962695139775800901872516227566096349811865116698502959705102194266438623015326076019499894748459329480749105386713079205007021781872876805659638698754275710366039389051836487978728059492678062315400075835611030822910429335027331738943730496485907572416996167839637650435989408373383824610965491215009560627740517601021557426288413556208449442028856578662434555670363699413646336964686525547860400625005487080095915521030301193408957037119771592229047745529495173455137197314136519996663389841873589359001297279531462987467427457211348700336107740028826473077352939444465924316347605372342284956044091321265348082641568190689112066173907330434957747608883698316498312154421133232735103966252015137655346107495075771660310198716367347626351718110704197893659030142274351244176915060248561392617921429289398657344333134075530724614127297102456188028613853741473799935099736366950754931403838902778892625598647474793196967646000882939959828693241470884222082634064256005137304697376895317790949496061493062864682253406063851836486655570999320114987944128451682868158089133235045036060164208760393421042629903991551487969004641573431196459313568105283291673636551272821971175973131166637447343559840234626137311951361489589003164828155074345294519243977288134156807581852321537431547828489123629534837648287883928680773339248854162965976494129362861232130970653670806720354022178355108981130225756257922979616262275319902973143786794107645329967635490567406903327978679991422337907821613414087664014577155477770526873213184628701005630711692443223272853734231500773176685711832631009512980424663258522839005744810695901341865749616827477548728634424872853911372593862663112164134198177227358010374153464142628701141290346177767525446811021146214181616230854727623001724957467630503945626338829493854706200186249076808471149773370750197245236611074591990046784066980518476336451168099362783312403197714662592478832020467453173798383066819421152829641788739150221222877615055469546007039515585989648067733251193695956451827871480081653250092868262924662527775861564517559388001491694772507007871057308097176915090474009984843427316656426568549610794916022325564454549113787187431129163259263321447425999311304313770014338916994748861096278862808026267427375410072730361654970738798357717243665407364792879331212229191134753548767434486229157023762870705429934025879348547482675990427284510905496085252364470305597401687644299514684390651451273277529973590512786156965744257518448140964853264165632303374409716387511063871059234576668496457561487463846279012089615888648270724173414390029118481117514152781098020163721601401949887478440683563022255380623897150805303427849418339720941606815652384776479149397404812629370331234297495051737280498967336346140638287551699813623857615857817354785968257159282562002247441860067925955472480038290082576053727010941470531374391357826898115585898157725817947071008303896959350359833359678152181378612160682056126849893240680898702917929015961497342819552317941542018178446164284624055324676189865537859641115809282708226412698799248402010591292605136704484897092529359534025991954651248731916247663233822395957339676844493766026409700402465337241946663611237614356378535757004219058069982327443324516312947631599782257127863960341969928326299756092046609170742376408458715270536515444869494708521859577613446784050198528009373079202224023410651361882296213129567808687811046008027052133685501016893724818947071822734696958093376582553258782648764170146599785358206830778791064289448520899113352287068410955265486165021300720159233366329786626514927228885617544634086220372912946271207038708765281299384602983037576668987089940135734426798108135120708998679526404550464105511242055476761956529884706440953640780398764752556870215871007510707404402465187359154034829437130030507179269716852652083517576949446355171179386751571423716486035990848354461317616739577414776835614697767564687422346768674005251129665578736939566646801498189258979278886291886757958158956423672038580887656036729034429546865700416988710439036339400955628122214541944321655465294519553803237064398874279648126339477091782417988545109089263077602682854204081400660027706580417792214334752498574046778036915757933108701929321951719117309045567060144663185366424273746218922113319016476987622938746801495662869667827752825410954343086258998600464638428678377638153802958803149911918082678063978621095315814345144033927507323806870293571484400205905136167679426954537349200823610345167333462368187166010787834800699941899747035909129412097172689830581178489329502568988403580897834799471366051336487950743940910985702491985351446823340446192548097385299070963354970514486867234559917668415216833179490628572759455767684934356517442043414992452793770414326149124166890636031098071618310527233636194909371724327515926403049658492812850076938376294120419062839387971746474083107448922791901349083587898902082346576074885308264173456242182968567447293549934650407630404778023632795076955730863458811957340016429040136278582520853012384046397267187871456607505349874115310697983054676427581949816252903455821581367653619557166207756607583550271298685383946056355906541312116839266144728847406255122051819825230258076123558756069305453673058815048650547471016561458367397880197040859435031207116189974462980475927779645623758315633642216985452942937210216179863722821642075913855869942904714611387804184740639657239090880263523135093577840140449283160691278458806037506349071846722810475587376660297994760708280294491185631133146488939546537361805755025458042505400317387406394437731183406415434001662949785669295417171718964122709116410704952664178200383741745683156247188471828804516460532158444925862406058390168622109024755621064093562158178803167095582720091172532284811051149965132332067489184028121719572561512779934036530332838539684681809296015269583283609650960395309903051913024153721975045999329729757547880198708873428305425426413476995359561261941208256461619375570367759595402634775752944326589175813128793246072517114549831615636948959400057928486535973683864701158452112937367209687514061705011295174369179354578992257658603305336611035944008956908681507246336996288760604023444351595530987418602611539602885869368364092421487074286617568198419354997979090843449191484428281551634105011080373482704882835858964608095610593046298171500018733313254546388225346937396776865981582123003997389295162096907101694349045829193038265870383315435154395893796046716738487610249276348375776141652279948182115375541160881361127838625668996861278221200887646172585100983817633581444968285626030052713787179106689636773234774676314129972748074149567315175576250650656057089285647123968856123144819592772795802472042176041343487739457147879628430939047663388632108154229553831676275330877199166677007138030276855891611179920355360109304745712353068483270270075666033250218166615524638848182849853845815981215045455022341601273742703777214963486709625319962833366015014182852017455368177479012426540812304329148273757226280300946045348253594946898160915088597610548141372538377729433816603815507171116935907549101588189100230103352517484339832515420691619431351655935765195333051395882997131375476787883183566897130064596924546486498730567508265820501859583430423075333395944891545993200706211705928132729022996181116988868275399408928721433112377384414559890650172887509315093041699834528219867636175404740770066279721286695042738010456146641692247668381551200108778493637956301985352906964337254146463840246785497273025877195355309159115848001105484146892215291829257351106758904337647491804003432693342041385625605632922094639967863721562884519848754860364513673186681863688958486727446533842932226453434438913332617328010124937344597096835146558430219662936603194479211610741316410140360868614351712186593643529352143278588709694977724224988623224482991868181603865389109422770586192690688633336602829805493040807392274527074236012772518126063492863287602111234337647539035317549864790953826282097605408065097165764105622426447977964389525155947396049082374731914607070025783827248856658181281518935486736307854996280911350714281448220500017078305681052338803692431283942900363287587445020148843686431232874404304226942180096628514727168631635299720759830482845567968380600166367263944218516201291819479554575554631880516260159334260961325831321293960192626329801810180438764947723859227113274560075855618930092415902877751995171306189321428809866175552700390764503266792325726109677985536707977917269665187285203372630795202362338113031518897794840970745616181000536008238284217433380391282352108366885756169098116647602951787118907761259671355847537244262081782276517502881980939155431098091079868564398601079569336668508264480083242391656521191549602130440189673699041871002215305622838954884480802292465752035402830299999042149738788191735466619456751839421460196936474963958294987754125402399303699351529338239764533033816807565454376168086655257838153793105999431555793665344933878691570238095538692010675356033974660952746803429524736967134563188672793808050823028435578970630972443523019260781962984335705364594247804872121977508014156900482670395335534794362342720128141827249107286407532152632033787559995800196801165910313796423564865342391318220316002825776111833527030484547829557443854934062402621278740425364628392471756602704647666386233616943492912476867895797684549926659523107101664141816355601622919512580037465886127116057057755712825454201105672513809053096848264724918005024821208390708348288314297937461415277924530279566681455268981000476087486770804011868422292433149074665045695941932396854213603291531481622479779866811236086610541487780443296825597916990563149859989450775849880005403588695854141822814573970486071800393051251849062312987695946150738623584612052328023872835605099950935549885467300596826708045894167975748923455307132460685807099071752932422787082735478980340560262251007305500364251786233115666012665625997665060132932607254335322323593654648934053518833228170262268466098393743791458067799220874891467973067447175921409107036210237746785747978119909925362165011785047631169971088200838330207394814994819260484458738055088414675612844928893798390974275971946762633627293866086092478337113922171273863248067473643554747232291838903426070643244534905822531043820934362108083922835091619791640143806817067680063224670861233153876022468208126674493588722597528773435292470111904739078980321627841788052710905087573983129679351771778032262312900048670023964979468944138836477824266212474274260625826169881122359159288837343624612464953743369174404879448092778933132983040435710984949991588140400397409529388360048507242828097298701570418984906658439014627862191205602336145588072906383361392900747939999563384928466755960962987048537069259331983209767888246613052399699325681075891144244525669796443061098977823306237718536169810667248113490709103844857425478123450204637322433181752149671068718775719847141566061365869090280565010403063815351519230143764961959414949816016441815099878012023292992241394690200029775937880277627174161263489904976177397749122464676790898773138847980134214097769135587331873135613459136192401853267528049571862537777024992346751941355673675302261323757023446018629392010178791041928708773555956267535219693250686216655874740818764687426228682221381469390784537106439448534444782448416076779675267560184545258677907748843867329246086942870125398190596699396803109434500863752983027709640051325842389543503834591276588820904178716188461828531111414977215254660696490880325496977584880091924366541280154892971837103540757452538263011477461828119401807150306727469266953176591695543250970107541975786972174787030208177124625672429478072773243374020627125609898978844734825024578108843902991248730827904863068942690246586446689623340143859260545940637399128876505274328121503820940422552386354052197991453487464494798841739858662779823752030111168669989322514361469460000189248003839578867476550323503217872301046687022360480708843940368347252180165043058275907349380554059288592783438033265313771749313669132524986442366380736599339447750427699926275071872719297085228639672694417103354418927674398316096350150249366219389804647381106722229526604480656457388729028127031603727802631656432692004587253919382362739347612904555011411376852900165756526704114155928456868513714129482101693318437965988108810786560178445814842317627489749830684363957295348639284082144917916719821368892828280386752388809096010051786425989137927842267534865478283053604345538556816943782650998437632051718199966180354805614621511386416605435663939031137520818659815150338033690075598724217277410580434428318554177978456328780132084042572430864843706884872177826046111526959788280678960774898541505333881106445979736139228908561594823089846753327649316288789786130295738518878515907814004374565433454685883414277047042591836847057748789358693267784000809095180920759215390721640210927315138850174764044963710570174433143137990212073777511842865040674556210676803682667904609945789007334304919719278862842061742563345051518910917344919971065168338525103117218542242005571094116392883535598276860365943461586302997303963385183455697248640108675051743001953888836309102681117850165725067071616360539133766879314408258568353158362401389307685645295094880527024162014735095225896868042908724068053837853086304391377154455751034492153587681166080319294737570948194738861393007583953132795195486767768888647927162276135609051832936924722731129376749537308813713629054866786994572800007064437639895198513209276530929502254564320809645208814663924298642342599589768411432353747919366685651749441945670429031120308269339090635896837435517849860550068150576723351384941733452568485514762166798945811904771002787394648648343150213948358796178587126453490320396972129019843050910459047034867315213133192557507554272142710984638474870051627478543411255579660268750461645011804243253116848948845737106992614604214316087682124570343458639080499036410100529940515532853259305820128152391431803492303331779113764358882525437407610926965626134536717044704336471263137480071269619707018180584117486953089347715639027745442963629391762676888051613868390317629262372372920106094774050442691904961849827657843850227998110244750335082120772752808497674940318279772865679179271819815581397798388764358169635394282085260377974345153283174494824741803280460702492226624160150306344694321774308006524243645623255781309016017590492517406471670871696147648987857639940442435891156767435769645339562212618001808107737220947288725246345963887682787757903557679146619158619217910079716198642980359545711632834936425590963300226586615349740123596055523507403787809716804370518746183469746294267309173324837181544707264184879222324960329762802050931942575212075793220866140020285810401263892459016840375849776833913957004008629623139818334898503848147852695620968464305947395853811887490936787678644475698378852631662347919287352191377840989079562524774672284337993751891042992191225770618515972946168937466213468853527360317810152189839126332208187313459102551633776729382370434902436293997023492774187010173191093972118720178523836666554097599205031077137407726638902927358130271361948911623485118932449416100001588889220332222166191121846141818691007697219467747064747626809515855167163743381632228637627618131944460347057432056751865435268537772087149847097553460939269200565873811182170132242349961435502409536081176041746259239110868979759478169657237371541385660667045872806359986104219260964892859457157957961186374556947354894170732125049758330689583036281866859809393983363484944982650721750056414666498782268912073156503800993900158341993723378709008665556451372994012079084793670456323865155785386649276215368633867770609031468498996466562782433390663206699225449210396397577969886839395772482988496896075115889902294318811986739465495132482240710849351330172030954956956426660911676478191986429254316762429717279214015793579755801210814934839574145118125747193826940811522266313449543273350256125423280771932392651443489557490663828790411258197119398000184374134606639241893885360031967232407894586507231959168935721469158827941747159262345195077330589122443129922299024392490414579225697544524142941003798281727332983393091175578926747811194720772160513027468696167147649145053473326630956177967995809587029547739981833826512890473167093624261071743914004823616177406485671535105859800733822117429831915750629210164104879362529564081724753716198286809754330330400407500330111082676822183681809055746018359697429695345078737041849486413225988838057955083010751163667917605375785887492382973047624031226763858102912515173599085502959830895552419401048057535098181327458311191911616770279823397841894782228627892996533680392608451025724786889763792079291145743425624836668462616166388823671639195043105959700435664145555471259021451099473138976052052872930994638946528394361922066961536365957883494691479368502572491917108754104297254447901235249262411729852536987513502241729996316558446749031714742765478061385801847279915264701460074508130163547583476701722022511349448799381723759114182084875158990238289104415202982366081552818232121535750306518433968594529362598248398662821881070192367429055572412952264156742844518970984463941453692807379394632875540916568202301669334994196544796579957292957309461060432789604484959907394634684708739148859076521122409386472896388987404276760280195608919463696814605212436536691337775523525340427964732175416176018367868117222282747627471604951557897898182390423199858318876244534119693316202766004405498373225799020431395052599865047236317785436800826048900265922504545925893514590915876970454863586004613234596505520049626600748606653088291559671657179478678960098552475952664262082353674860896898926289198513716086498182721759375230438205291689743409444682803837189711723280376475725113414188538678297158975895496057829947731734211717323257516148569448096622821507547325614344673855109264704666583602836746991198346543529343300753229946239455099415467513012489813054824627202244969369933312596921914366510573415463424915193479430286534087174192970809107706495566872006423559797669032998990316572728625836248598564383985283953781269107574473485134524521993891459920051932524709402578412948364412665309271685847210997706320427429675792075291994580306312553980737564940059562245076097167992441090609044790654258789776185519059045585284057223500378346047204039450936972505805552568173464355433296712993397989851311260965251995219925239621344877963759686755947028165047330092622224324572195670733244804420905997046606459649292553192336871990627207246010182466155954437257008953641689785172063238346023098122929564201752722319489752868790786619540458240906215214564391308645472381562627849955695318440786069706837592921073337213978453836585963898680124731493452335287956242862178488927799158247136411533121551235806996586949580378446685575614037189957461433466410708029196662152282504069155165786981939422065166340341122505420616014486759590933933290193623888043236587499412486143314423184251718385131823940106141994613915067623774674943636203708867478529994794780012626938175440603681712059027548902183012918013770129021180525827726454914858185690430122070534663089991881555289216854695047763608716010927527546367065629696866210447392312704494388708410266608664129485903887554166504518276131773146223046162652338911206042888675077048704676266545182492023758885492591686461239380295642903513835451967009035471917327228691024932613664653799153243882215460090152795889998889028106395371553368154299988568540885757474014332917833094918004589942817580845841458656379210731636653597193611682850964886629560024503080447176245577012548743541691359173454230990673866023451373789827721244550068728845336257934026449921773757633506769973774016337427662251024315762367786163097668450884878025737821501890105376765872551660158967079116336858164153123774624543467329237411230845249261868621324988095970765763651668729755029525708600056398164829870677223809412323282143806467156375017429892921761405722062737051901623259102758046092335239068772766262245971377130453283993877716078313333788874441757055373248129219076860967680540900223784209762589473496325462525960025357319189246610900244099985208789575773250313731530385056912018851980009007417060165375234744538676857254715206094880118324187159057599883410350047089217312342909689420630232185039831845914093636712359346727792228712156436410599019162190342061580086093511979483469996855589468366292535183550734865345615013648360534035230701977570219013121346931544064468986450674691908568329836981820899736858442665961379050002209199652704661927400867686045665745414102633271729650114424137216224892048099612066871306507379445661779338788495270840973621895146883277802433682454327576547330843770383618809961629421668608316340160289582944676415207555663789070460083208389957080496368147147745358405914223446668798809229617385635843300034243600604695960246973372570819403153029075869311463346722941539817407138949759754844786996996961654786810028883773834110916996060603642256665294630275867207408584446221827280691392784817585998742999400650017240902264920916079906412021369045119477512064603792575706126883347504850849783765316075338645708692964818914791592371320512455079544098814928372768861093005210304738716282318796389416669229721934858014605713042202824317716915898058111413553977260383631180727685996159169430721750181308294905262298150871258517926461003515687072470337052154353349805848147307585073299119519822017084897376025652449518826943163776698180700379417792544394660990316983293663843218468586812642625012572730626133643301525363441791000952665955126092965366939745681298279313059018134298203425402980755733906070403399186616419961784939844764514456767760678978233056480320102759595282202648436536671496501784818292155539127725971622021789426886734274596822014637092747684330333659244470965482899391771261535495916439489524524474888178552869976479583041299874570473998720911949855662072433357705310681912688033652265668582389269872568952095923484946715768244611772737966086869053439353501341916274661164249962564851286698785108680467185644700338926157167279616465444739407005408861190797130496544753392654013187564113567712921401242168127297287920717311232567732324604009174752729662045923325843928738336227739731002087649564309115725029112106651692875279904024630786352455246183566363404020510256846647931462944279142574953358120467732459212272624396886253841346393990054403662512358190734894094014605624631093385418307201035414450768918502309079310006684629634868864020894339417077880577683351846687040736186254747929224521346400638648792221183412639646106949002583421043533573089808470719355130043718041687781393957682639654572833590021825927539433672406468143990716818020073257529200300305178828273961681764639446611093836001790712771220077448796430728339276678833702104988954132303863508321882438761263166841010463795761345624713733487812026930206841929221293471128374543344490583070145867240527476256475363929727878267459337227758955671716168313169137238284259889150780509043907702090892732028882909048958620086204668518447846956230538377057435584369476585988749614330179422442735001824224820906014957866165928720871943084565461398922277065288696592778161509098551533598311619461032406773549516362572545024276947162872276390862591650981428152958726241502016898083795473913047116083180868314399180012845962611551851292768986827078900329988634860838438282987902610868125062876974231924671577367014540219119915009957749383668805889434581122664522481059955791562041763049956825449484997525582119739935065877642224379700156719078864968665131393165417586209074386738233757955651092234522427624750426729977949916406722379818359245175322196350853023097940957136159369464801671492319897774312124162245939609628579255323649722496301135824915524925614917916326564624125622950982904747895389703465160921347726981577334659436659604069876675957893448636370272207401776383058506342664975489909430726253562427227457038522862220065461205459897254334888757753245598298800571781050002531464139801389773856063178752679590530474910084012956933383266123095511943087953042298641533333475927923862416226399078817220593532512197419120820930957909553954039783810811737490657494684540071153487787462275882820033191909950461608402227726947423568121290981706784868908038395906856596176017888388646111972998491224755345576345751279575344367194807466030102793518527105369799745370677048966195454195585374403230007697370767428148791855603903089955303096860735013818494867645330804791417926668351151249440897895921057189390324362991594453441321602968152393203864709668196374799847968422525008727681134083479140372436848306539596975733855749222887668882194963900755208400287970134287109086216907762967710858884168273161755413370067727053623988193449164582264886629200442918379613344715883769297547350016009340933025339097018639265329295222510906273994845701813359383680467635230780553344917509076253369340242106875021225448107354583301044543069751332792901336589595287381847868682320190232546236317252935787733955417949770388974112761153655851677290753014565966179728068923728774274188768036556343334264881659609579807634383136268209929341391870311410913934838649673178199835606988115012717340542242135696201862886485435673339755047163948178606027372740681958173283481599050047930201940405885525018549831456329822304332374125323299757549117041729863470377453575770762515476294032299477431708012195811216685735473124802322794471591073281864691089776446913316415131684208130225147439832599360140096914206202356106440873910230492369457805725961254542779435319234075105881390744837860527199802775099565599686124365969911993185496231958736696500213974832577008251311051054603100028686488965464629895911772402212518774253061888366325146590111047053206786511626690389263949671187226161991990855133592469310080138723540102537175455632858037914301885401724240212272116393689631313775091559164841317597540793640324855872131021095721672224091876756375907946956973215594720975096910777121132620078682635116484838866860925978873030855168725115315497653800891744993256682138052179244274026104953589142181974849312151387506084200429238077020875872095731899779817403951821698872201647909072346608381777929471909813856604456616937697724976214129977784272927880898408617105178065129932820159934414101351631801114942248785347281721910112312103841136840411627731804498770802834258071191103439951873480452808821974875977780544430993258948375658836920952545922991204676074715963807571739794920868874730499865510306581204372075804902756694545569238588300825809462187066306015575059211974258505225662648702727971707108200682833249579158403157036325637535754195163193328833146472554367818736907773366587296645681123218921027286446812612685422403990538750532762608002654243531968676084447780569316249561210704269929723815649714111390694177627727456642608212096923515708826862060130470513912523280321890507883771209292589000232504105526030440936645461368074807453988463070696412448634497890018973290429046131575790420159712739686076896085305931894002074081466354783642735554720131174901056177075842485794639276190192351095484826180494639441688775998706648030488170146393149433829293850841165228279263021588738956765132940622845477116753592434227290420183377484757913904204947631827129104354678107063003819122176897653073969638887634105859662714225626222686536217307754811908180373962782003074774363939288620377845830772202000710766414974025522233738441676327665539975027716769966150422431656404683780015984703312449144304350555676949594696989234000462277422058308363369857796050696559664085936810069876646159022106903393317402452151998730495950068420903309512644504232883061727888874901995316168911565449373418476233543476158589153203854903618482401779132145663715856180230612586752842196057536831797265130633823703700217496888101336795267388632830602862019216662907675423553572139453166567026058446928525995749806155102196939415539542830568494770784941404494961733837592500425684786292902585509753768779697426799358539523440557299840091669047223768557148696590311000230781666550903445237708337035761762672750985411608016613969668281031818128054425390045679508106347731297774731510550184836723111776187273607750598665126258989407120855546836927137415345685592739013581816794936930631557933901031758182022384990827971752675476468371513270930082517698703792297540615308358623444275354604071863112035827548441443360416143452870753422547898403961053392718838508348777584903955631666589540660217659592277917842112989697603767597306206340707902038938925326296282316878012296056673885317874823415187656808395649904836438014135445107149849492383400148489011701508301344763848580733254910981014603933766511797511460545467625232795505681401465738505995397184745703427995130520925022236774264336034497313093050505189438639444987015896836979554854203376239136443824982820658234259700729436124988280243407344264851147338880572076449278184870112693936617426322137107223382749439414532223927096238685507543146635989941398194557225433080323946215331681198925957586516557410758799300522728707438272875927046205301888507572448137771748608156974144441478814357105442251060610112463863890662056631885304628850953491119788798915273909449332194540547206836708196158341731982019123538426276886333171498788082400566670919020801366517585103291751114062803741387885055925217026955066497068897576612738786858722169698774169889208749506845040990126124928977868849356544392618388704117185305026144025502967102177586234744902490243022786187181264534079829049914211294776808591913408352501426672866546400700381716326668214397141392011842603227801952437538001758327504286533592024180199904069924618875645239112436205477192980232180316809852565299785998941898837706682245683463807583407480043710579438279117859576467007477302803517198017909790124124523029403030859985608042756607269837552298501344455568341362082047302842558208397477978867192518833134618535076692204675929681057605376975517217340553055480867168021691113494137531412281215481683912547473278083688165091981693089135459858489436742265626835898346781145717077230207226381301916324211846538542300004978201083753294050358081197519769699019563936193373314967931736992717275759446405554802347919894835793137467070515446263822969976522035465301159313911836227025533351646013429932076788271570183125183982180156545616115558924963976539015300409519641153663352697394818913802945324071543571839738892792876105990353418768190807754046758699655111915683570210694620292804791476269057597846867251635150540375911333240306475216539051507789704564972380422598323028847125380918908036550151880852190352287293147093804753613183792989886314037103346609871482739554591844989097357905739843485437066731037292243162705837062760370351577304381027731280297741236974484081416035925160228449285958673665809213937555001672624620663730096051229290895067075163321074278767818184480935176912707593599037638160323227284238582845114775748271638946489378642036863220846956376816597836022825829968815811804218910042995006084900403025032078253125101949620234445069128293981396522268540929595168135299771936111060699576910311931811901961462017309143778585182061990736124418503493445239943890662895296664906458456216890258499159755694555102732241439541707135946019855855851922193603366721396186271017282113214769336347470176751742434498601799422948322805630927821104118295157002046609773574769612792341030298989389181732445908394174535867841279672306508600447279017714603743353978216357368544576944669931524650123150861495946147539487492945742628788150266336170010198241840429754656040000951703083405391403312699586627166882062684930375209071130446095986735986509111448457028112339281036043555164819207965530302980465231726592279892133298342274381503633033504357900545043833072427208412718003752300300005709905433431874189272343013556438266767911572386318509648852142486298971931780112463008025882686945854156670722314862302959695139352189899078794055046436899138746449809145913125091714512534112992816418056751869579779926806918179079893959542951584140758562924455346793493563847782238649918946102260593661562526710278845370923502406041994996041395922539186355082056124327598359111295924267545536234045460838300429520499322841117288359986838944381563670788069014574734707472254630714573515873650326651260429136894131578073664312476746280568447681009967509123484828633654038844045951049873172688472821021399978777460878926495872770137910910735342599743229124595826257607559385104383090251916565232903567060385147037081887422595109794975687051776459307309185363999193625657042427934983258147222140080327253016945591013020487032452003750785777155844846310603119669147782047641935309822168470366070988097603994106008899794998039027779840418373849166518020907449130193393271297665414985978398634554241878925893811217908463337334286147677585399879663562937265078163871552028593500136315801804224799960846406949875918962087402153143284710192704318380077071326684675047978045687974244241192113158367830014836950290611410040378482208387288688465871298018056129566513455107830141219646642382794237450520855692279378587931722519399221911969281613167976348508322859868578271812276097922839183347932718481710075480192022057078302654527520366353833595034633424668520484541714965887460363508806481049402665376591549538452920930922169685299591388823687462297655290689335841184162882881536887197351750139256195645160270790919474347816633471938663912939536517590106239046815599264720044172969204231022395907630845382089045839958533002182116385970232943322663207981560021251588790635453812341431724101208991321733349097174261122078071142361179151617934564193870043403080784901303132920063741107564912034411713795542155503974237053654134963929291999927981151818336278914461556074644705365759544511675063030656204702434151338005573255682247705413340085263013981563714511450480803608780830476046212929089384190253548023903535529250166395638167366328042336695485580857986974402433609600851121178781223304491719210891353241874605996010264182327301936754005788072458047976290617485166476197671599539344446625805518846222656864964816791853999934101589684400656350110954139830779614111403176070383416998129968201766415548095823036130757258200289390047432448296546726059254412419952109209137517211572014958527561672116794663594105370312839574811540005778406544094951222888406563491471179889151751473870448429903769863588490592009173407576776202995589813319708813037239533836355011899367509062392762977050500465040315091304945116847013804847324333355655067785554072322149871905540951365453338822288033514599282466226781964160738274775888541193208432108429579980619358996411865597376256187331270745224036700700554084108900026299885328110606808230311889947982059837226007902170940104789876967145857803505049982725210678741787457857698669678062896642346020671271159165398858159547349923418866204060358889859795647044949360871616117225022153737066888993785007306038069028263206844723083016056334141443938230405237233773645038967901488270391896020399449951039867029542193915114654309388936893601417180427132657956981386211457050116509594908726236145412101456396635737477364895909506344142291791751077558952554471674957900909048431196351001946181141139797373658698565999977327575674411181720830938066289747406107761488686896775607769590912787189684334616127065763376329295395803354944707708431606224348168158383951214231732536951691747944132190034140249645323457140528189873758052804492408515643021393716144456720015405845825706819581293786995662183477098720167339759216081760929428746624920276932836034453914701138999576120645725579726677173272431052911950155215475016317555920414338963746954907276218810152607891316786021987812448799832284840299762705863652306504264022067302382056095220932641778499040470279655319261334238080181902430308431657448814725611399268539985791537178080181932492324604165344722948666952665156652418404630925516143694755549337885624681679171766680304009878198922814382500922223986425654086712077663673203866539148297735152470577126815379217849730370555164612951684861148415401336908125641907070392588592841228324705987042620073059573130127539375680665035376993194261685018950997746660621222803954942380928900616573501991498567436077149141383128390419226216675558727985924094438296176712789105336874573429797076462300096863205792572292153139517941410959468081929005165373294140578198243289011918700788140237754943016567202250009078712421102330078409158230958209325376139951102036685164608580034076624621759811157106308037571671656564005583133303137032195625534241863189088781437910794120203543893839709042854899811479259146011907826317320970110074071691819336630250267733363256485992772171713922482544563491853822089121909638403267092283988915229582842019482129005699715608512999487121796954710194289267352697599032005656821501940177851870542916599045832767347989787024752963744491355231008402927830885148592246666742505688504435249891241454270628523657745966369392824019757316349136504364445980236250889846433660328921457423920671382536190784655716781036580345171794479224113066538379943068511026091140775713940470624704933422276730341619664720330237706598176780532305679192805293291892540318302740469725280729457144616846471813857186754317152052377653678693979411027767709628342218164733008921186792111504702284145459654561839466590699976416037794674800662894159339860326880293272299233239049599981061696187691277258571048079315796206794449506282108236349819389044873667277737120121968035394900350175993632034536995491283766140316663012758522215079100045733127153424398138107491712251654732806237014980840343259875705318725519902451647057888473601433762480103899069609692158395895911362669520103774203221850556078461335271363412610007386736944623215703075955645326713404356014483956135792891638744990598746400176511462368387896197116275153656041920615410137499120601155750876653970175429627284303956895992172313537107361262308432470403005350867766464261723512077637718229451076483944681979715821583668140383008537749015883165553409455014256031951765230213687987296200673215476649975580249211774880115103710039051771085015280320880019737689509350306002935376252052497126893594504704682185089291094369246072143509420203578964468885892912814297582158046536874857465208092057624960763421754639311801492266597070306927694924895867415427464468035968500614236874280841985001100745895605115954293185116208828338291591570217470390852054160185553088533530922050326614414322782027606354132517922187483520606792567167515183894557598620146433031365269674600026605502586411304071746423372729889825110271635120828457812661176320594667653124637624140515075718036084581594232014700284533896003148241936760023375869436909957266215418576163188439710375571091836740855895920761997589201122864918931043045823984356583589413336066591028195611091204102351830629665840839008278645901280645410039633347851519512981453900572022985716778180393123661273831742524995083971208080398033771232738118718200976979409965003531731603034422435968280493318973786958237963693070722212457120764211179574712941366805932432422858907509368418151415015532952450228746344080518510117998288501797400005969047175279730673498512868537140720262042681069287115425676710812012317205771422850431571621315573669598665898819004616602137674514189072887741785874093893998725778962486103113472960031802940769864276735583585412138319094592518049482676066348358760781152978655833989491449977617271211899415835324864125676234501668202698042433782018963997730011765886549139758632310090675418329924461647988587012135624682524888394769780021139930567891826168083508613694984210010771056482740828057559755183714754227632785622364006434973376050594738047016702182309536503129487602765128022579328448468204047189950211226086614709324268098414268872891325753660249110504873991522138939313393178339844754450469118584615841912100505403810627075519085278167871554181140706006550704166924684203129687099710410703756496787516205574723428994948596583719621001908082562324702182985131645291202713316086166148289209757121385043223317169984478727576574217848892088437842419153843027279443922789639294863435290313436852472177018997829775263130583971987794065403121202657105791033780042639493875475958919375202434861365036483739338806948384095511694069153490973133631682255009094170588263544549315995785317319855723371874038743853125796892508086432259514741671151036755873557776920927179249056962148116201200584420479278633057920231230344295172200915561192965710774753535850621574163350750642611516712164271031283921534859848570280866225449649318180786658577087482993009830941294575456267681713313428455190742517515543527679664783076874030050326357537308662565348329603220508947055497002213973655171042156381523227397129902924560268500368617890630183629825996060380198482365374698194582478013748955414201692142941690149486373535449334009543191880371269551379924858728328383710926271309259135379337175360163548138728704700892998111179827215681002746097760556541790181022057681061104247308735341574695588010404514546252290019425966056380646725438818665602880815876691433875127100550480924663345668859083227597947682063533141026967217288296015595125007240563292277462278061702481229459530836402088031240163763456499771767354450542019436348581230452296262718105910191222831700781203917499646304637987560431593155239171280179677516528726925800368043015813341899750602855509646948181747535547849746784231053190631779001697895857159714654074643572659803851254728938128714068929534016296627762362561681360326886157612176537535393841262702079526702138649101881275700149973664425241853519495108954910258745920817683238053358491544534318902557132676834007092748279873367052655616994580951304101931246457892786296933721615600660684356842085308543950749225290707941000301794607971343560538642504590954190038250100015268944425975032485257518895704531008093633260760093345122967100728526069227585837958695659501839408641854371200594199480817243552835186860128313808353697612623349433719881489595311695759574346405728894484226907691820017972493083510863448217687174468962096800529676660013857159850839913794208822686661225975585399469782510169823483822154966383999539017492167942974788610353503547872378258885806631616184824530533829097086513171565676949667298078362635283360320535042108272098663574558328232747443442105884561907807876418066364259491704565357107734471934112365532944656455456970499937461926080285771028427080669807423230356212680489674189861463264685733458742901583717149675556582230970591117446333772510571952163223511381910469906621850703060471555772620006163820597307456243006206798718868995883833378745976690632119539080661717653767957521858679594381586163280855579607175199979272477616822018915446735291135018740085804239519517349047551365805969419685255823768059479491920369227325274545038000243365882490643710106380505684106538426581786558103293252623650944485297383607034985091181009637025345637224333372875575454322477491730781777917843479563004051730577869447504549005717248596028854487300980264961532845529541010145295065977930649970879595253920136648927750511310965624669728780833710018980799726485015764406965805480323190606698616716219799867693082223719423967983891269251215082061442104494493280243581217539563001300489404054734206789093928021033286336197161588468514059298833498233182602044050942636642190083437105309271627469448454984012515819191579292305607636235296080263201884083290888497410479147211860246725639677278516439718969844663603862198993381546631795311747165899188430159175905937086095900315668157651572185883974585479765934886146567570871509579799941219126909181511009758173073458642310468375833184236449991498593902195875937719141253691007330715751349570503469712384568433287017252003637288857910791274320539315830563745610995437324350667258710856750760539409048078328121353793149067174075997784573921983664253307030805609875764141229835825680177695076310018971380746309598669948610548672372833913944432569685970085780086777052949715695233152340719004874363395340437334140507722681732766452725442887771329185808735099983929503006875338030694414084285326903494260089319841556688021648527571630908069570477934033613106721425060662076593369999358866218846834752479999135967142883507616019594469518080429951375133375699504671960804735508473210374160344723428209970306178026673720231046146384806813175207264903063314510889926830203170330189468880436697769075797519125440762309408146488163929387319570834767691840566470513623227726275801727843730477351315079047858010952864804112452737343967388897591546111350912054728638602628449267054215214935012570838636995058244135521828574442212881690840801491553889304334430154129919067416685892470115198198372227208774143289659644640473133154922743958648582055495243579467737059477021298374624663797873439156005765619548051675018314418751233326172300327310864139353106627537197219807356572632664480816808284000002895575694799126371924336615961779436780775506222783490474290515298034438974392580656052130175454800919484093361882970495465837789506240521394038999898585793826946070141632709399155777520095136546947498224355704339491175272701418248907437529574904236351458034943560667611725798554050376957266579474747698911083360923310910572000704848432437083465055996992582788056353942884735951767936254397059603318865910806086535156568259221873175505733581076085192601383549971413965952119296568822080656011548473509048091734604523393419966846466864270505170132979220339664323055787890300236333040817751164148926525804584746588564321268935038398127566059538321092276278931918360689074417959350793699277133415462799875383058194238102866122165575413275871262231707691943008176329704573290574279717417519415413869463804468434557904210098408545734983335892470025814224969025928851943160423464111664734019461597365468414680528728027037095247683941703198072109028709706711189282076429244473259459272191768940839135234442365139086816976779286834528382589655996202603007562289928902952140539898249518162716620601617354222077995072545899299984148675716591500743757186851152485197602861456855586269795988847282974832422247545094610800606651570960395549655021417105060557739604998265900611816932143553487822273251673772835335778868471305442531182326393502126270671347410796418754475710348106309812600732655778581471639185686679342611074441464753201736978735665273440207881090263437210327248048689517403580227512352170157256064538227166576135878729007582076043368970082548891866061040183572657212378916712327465414139865332938333182217392483819677112721808275306212548323886683360870867167178911393390292623103915331067546050058705699277699070206710725429392431021430209247961352959131398039638018275195456368228186739215853891588118801766315324120433110851757752684685922499105786140672783763454299821708925086192582285455791824254197644070710301991579189237550271558357926318294674884317831832866545653289657252254920647513925200132051022712493662404012351763469462234072877106264466679570091059168928799269749973487404089180585762134575241143793393032693510217951945794626255503630823319796604647345550557680989372742755328096210955850921114404502305660366159883169803849915534628904620999034755118029454554457096841252632595164126661722681994293879352884495991598545169826471092086589069184580841386699862601265622472072258694733143754643222489203753289678549919994484181420252106776197653272125952925566370908124375603378455852300033746609774535685705745764774369911558788107774434718615340487945545309838116279366846734109455757278830287332941091693198917628630787545574829921592561791041500449952770722244094064834721375119531594031755406595921330001785741096074995824937208368558176563562733086552846508684819902620912254448633038581550538976302836051328012170815833615128563502779566588465356010308499020460676080548454571520724364215413054029315662877015665015828724978885723206835986342350008612374786985118562048816604042664581309955588770113178222495570120056239035848862340916601346798827325280300350757614238861769911152855967349949707081967462979086642077484146546691649209186141613884188957008494903672225078584274381935857662381995010573328622720312271004091562642190036605714246345729349067905169069277705524138084725942214565621379517572256545759802252778756799986640315332355412607166119639583786804997505187898780947493338313903808247404225740380025194815529482092725097678290150850842126909940758654158196647102600039015271104302784354819183184776731568682012637859251608494190017921114945145242489754071085511866876186426403314950975924770100671152386258243776372517564847014823414495583317518032577261192953406278542901333304471787959122762698047529528271277243343550754047362925349843363028330817573919070277669214736827667215104187410299313894342819844868417608736082060679468421171526257420892448826684288477494136389427910285264469358056611228833008430364344859384347997071435496532257523082626078375779964327576850443093708484586292984226992563013392831126717023783372483632171829326984415510067835996186392241067859131911598573548490937200973333677919244613950711164671444092817094508671857352874348533720752933391050370883045789428108421153670302468310570126923190844582937275944099084146671490365171624937134109761558599995504245293223609360608205868606206586484317793634090497880713351700396929901687170479213569573946875003943281072730416741916378082097811444915790444681331370550067046273111459158329591569645267794328052508828587280120549393391217747616435808306608947083839768777992612893151339236680227629557414699218081782556533117823374191892561991118467174936780932862620223303068941769079434159471328060259126085625193129559844626934324005335181623711660648674925417005084051073778021389317086673281166644113628406821332012675125758360996057182928201975059058041814886801325976523991494389423108036074564295300649940217596946532410936505853951900108921730953484385279103186763650591367060154369203988026091526384575865438192729111885547189999678993179948913524548912274741531140009715826615658449019102360292419060253849828346099090561025231677869466560740619761516377654120703779890288138465483696322014309967302262823170565836064615877277169141565597588178927392972430863761589605353070379504444168348999687582621142401831261391553733499389028167603819472707535422928569354121323319990502009885694564303933460860156770280531359401182476332081526499657109677924045641598703504536087371257988207755784105617488028697013778828656743596986109781384122880049967381824484665789568297910479445629935157287991742752932166336506401474541470280961207292824054092659473422785208729079164517775709543342972506877373924767131047866060887376982872899337370515433463538022238856641163619091203164677012716722441092581789253109826262586276724862845265282447439243962292044615852128436623564194207480668553298065959091289300589988900884115461414121967812278680994741632374685512807224510610708137947193690448611452398253618239854403071520625753490998247148164439542271416538488393415593572165771241124674771486944091210770077825070603525242138493398114716658425391300327241387254479637378674331490074056644717183260567339102630026764955566405402837307811042583080368607041071981508415249305968085554049944596760323616893271599519757686548739689072646934904968210221843457057409969896227244609394923789728782269602837577259090570060590459166245996431001097293101691517674543634955440590086932644506394594125556639492753852605376595568552960537929464218223074853057048871735853734354560739373868472739664316150677821537170206595809911651752358006371904944522369240418806075818352180436318361481067375252164319067951933464349215370738109447573259916298280477681076862135270596693642108961217605625490907977604162584973322105460689270844450038486779661155763074301034797724582636527820674132593610936438159422983303221539061858933900713219929954028219304551766463327307853182064653419569375428558421937341263215032187091183557726587681830696925914403763483016672327139249372775077620808113072838223061541960158787600126787708841157205749415528330918619619167390324487354989584335888997646021434062262480611492015436142588213015386326638271571466674300614026202205152643847627869985897655192911612880323146738440775713009792742086520057239581610132029378705938396118964866257187253452975728959570305745993777050505160508252961041999121912795703394137911767544257849068866170881716126124237366396954809051146524146115922308350390164151276562436922436710172692658742693214817064453465745957802983557810152629209522614962519959768586494317007602665401373231092882315413725301517025811081584799421999126091686143145222361270292754242305299311408977610284824334589141093050937724260422035340702559696445677424839555148729230156925214579385002971047612934218833128801356722420637760030076383687153469348379218959465626057172319835573772154018122801382731106972987560271173364310175336547988155911675282278274881384468109865469598402533294066301638431465906011345289828561720527730242566962987128406145502472485255502386779661436093645406057069904476249247391391627024952023867558136511496038770655509267945232117117151756445006834770720768387635830773219218488161785943691954332320587832768595976081632956974817241380889070282367249017511992386328018795091387757492010613287603888076498373606459844396514589188445453248146951294376025865966451521966060238800962970236000273339635767190457436494029434665864735510930510349980259528962353654795808496663872102442555681631481417089392973085745873675707647574952680756850560425124707920284733469913198263567654234917265303322451818922554156367775598495038100954071214443932940184506378443555543570312987824040149820749299764609465547560201161759031810083781700922352248303940076917506263284355927732194119269219569623662801247640786612661512526925570060971016807162445774761104244965862552345012733864469164948503316118879206783037162328559212895696297534097357393129363000329485819070674184170331853627602520117909968863903339101751008216994565300878222357787747549795756936787945564105747328760895328546334907778914710325912393099575514572037739462983586316106223090284134723628547546709907290965655835086057212291497989007535116341023142851344985344980894404480773850364048406658246923300145529382511159622655271924308592920105427307656047786357380939329942548491903935528884507612608017028890070565333919326378901715109804584915574040467235546462383786093335560385158486400047879042802532046623856782216483995388117446235540652857177339992950503223432622528210720357220576678973182228997052171920834043284232587210282420617379347324512463246742211431912828557324865719827126806742528408362805006588808644857411349058427865326063984662326905649888598259399555521075928716039666344519553499183558482516441810746088895691282622875286817311932498077227741183930014007159593094414454067721127945165770470647870504417321066777197202972073287363065094701882635726445664564111205591215676175211352158881699870895218363176395120450548756766370021753678578452333644398829429999975621952240177332108762164009076656124806421291736889198992486829992035609455006459887986842035742740357407675537521777945592846288738235900585014522680107220410503234942616346303964947015754754895435267929863848003053971199743717779739984969997680233228002849720537553395570715942445643883148937931953951190614663866622609725468051988051852981242940112810454435752073916747943266832514264002942766918202397253224264558598633103542356612426507869038496920840538389210567271628296296890689172775776571246414677687736364242910687641544911096845366886431674175862843860647190684181025838386251629361878088526841498812718595501420368916775204957910239715184279986941936803907354410826628099079246235991847855781648676708817089042776705400650222547973625586012015465216284351823882269343636704600155810781155003109840942663441131327430051789994888451174323706942583686164430279166526007014801836524405895708361813420199524626342805028696551952826336338826111964143519518578208973199700072249026372046276550217958185546192916960156054333096306483570304700335699986475455529202658447139204420585511507160206254545392819251207305941298346266951020774882011461237445142739033863434369510899452673019578197584989348373868860702779181208887877484325023424808878522080773906409817934125992846273828269427109738214562501225700742848079663514280256336595315555348779430987538489452130346948006002706910076053144363531870146211593193913961324164644216314648987089635261809412128207326973450271637787251512193757390157108110079482724340852244975734133843725297054915441095223524245592275440753105525304005692058075352052811459135641787480738052719555294730602487204250012007820238515562207924574545830019986631914658265667135250731706388909566235865956816181256426184215539422770834194622646445611033481665968548388700969577326491281794690409182007663891961248956501627216940436779752256685190575460865713920983006781513078505530572810373366034111222643964493350168797529742567922784664319723489672787215367316245564471309066151083520070298764131949344089256325477177045437731618695300773460592134093624505890621381320796042338379220970424550145789248021355435513862513259083484198248199629828156232850489376930384296354487325062886013241425281650788489154174702365345980580095481142056512824222825719860119444385964955865912092952863129747583355884918136816900492224706567959773466834632431315953390811481934301252007671992404275103954510648768523752755123854395948338370791174768068850391572101523587209133681009318131103974362639173957078696824050416856243440492159512742268174358599817884677296616178453723267398536417364689481546172085946980635269004192080480036553227655244682973473415197284606765670210930971440745704235916992282110332241759202841328039033561439884653453865495181271010304142868546465633630707617230766009879247558829096354578249833071626707184270198314362698029290789491335382849371209994559006685426643923464138299862817818016726740486644162060837115800937119141708926941360406423132156083811673515148280792131253337091520043965289064966446864633709207485654301754038943275431902678359832050848030076329250420025268388673484172526876808466386160277466946544755080480854797930572640808145875328263450256238834601338507690569115796574182680772586511520076847090665530957605053186906014385612698967957800955887107602315872718144862855565995680193611373499625487126799098552156153477011762504370904831968797545360829485243095898792742728795924196847678423972964226139938433120399428934847941894659127038970041128279957753789980670935173284944344556302642605345736965144686422717361255340931268347794587004914425700458654980602810200357763608281501968309506411925891718075240988234801804320453004921487727543760915230093985284981835492851371189732162227439118467962961301661329908688417523363627947117815205726914956673030602462887608126922392812381894914236156672276596413412965022573824733618086450579060267283548910330841676061426080838413010596520597445198876452181007773026997843522247839662794353171337970302474228901429898789730318397622265358485340468006272195516882048856399749203752404963371036037288948804592548910067409075279605279371314711909694794191958103036874058041095999912090054308505712373051655685845881015142727238186194426216635954688388492060777894974788402031403826012512509481720355333441454355730750864528014411974955802651244908053290535994251804191157764383414975859225811592607471539829445505544048742150052820957996161380210627917708518367318077466430381739190623693092887446882292734492652403168096518075767923382618884105138117519816364011599404532632108819359963415888160285145367449397599579310253078566159137304581450814525112762721143426364377706217119421095375673500775712089353465129123072760397135150448351370329916726234537306130449367927045052952790664097932144233573346288779536836901491604545259182291715725628303473848228283094243305574488256039581369648937697448771550744615395114444178598632063405854977003576024545010349428581649378356134171481316140074236645514198540866125236314013746085509126466496278690191883925972098897453520160057957481441546689097278920201599002840432867957438072488688320437774656929903841920142040461499066912344396922098725636095343317376373648437073455896999919324437628666110293618295730086388815481113027879307378692353765058786393168426576113990201574515194038174979709682781736579658289542613729637969006709017502498929163461294026890469001898794848508699619281489781055150181529417025060728953427322905877846557397503044997127886066397077100245299525503530012732216521838115362386148134175536088957590276449265097574121437422094815598475361479702854180294043210079747939549781272348590455155902201886518072417271857251193130304458293153696952992691787828125766921267955672521274402253625928572399865904689697547593298765585156439746352719401555701969566843621684395602933385374039576774740673838709253972367285501896098931065532963345566378253140642862481464150708333755917519998327696806093625282841524536427790421747630244975844608751275611101406539771193489305816481624410382020705637536578994619476405456306932449144858296909499425702256193334125223902191149070004126465655004689151957845969564824423399736008086096180469836282167153603642962564070729281215497930279824710075605358064100215932849909572535075474982542812592525354391944349933594694478809836384741841862435371255955738933209307716472770484979701304176771632146692865548576360296113467447570928605048392547400942446883992725930301223330312026217935655572643149101194510154229352275771597649562463147038988152402588737536396997442790345102170632997349338623431843442235983655985792749113093902216717582054764025867247195618118295229895957518062490399803735432980942878429591731669818008161825238798958661876197120173168314554509728573643797496555346525206026094805652285224885763241419777543343823302960552294136536856685031866496546541832978426735233504775738987182329495263964901709499077504615088056302723742564654608812125147169227506965309169378988179370678629990398481322197031962803958480414455987082479312975119794558392594594677529341335536429728709089395960767029301219328789410840800243105242561816977896595885509580103550699762158637143231929992674912841059565636470598718875969406409727551394022552033691013815663734039591295337541458246711353016140331298493926931016151068703594311744425886927681677175371416866809479688308870781301087014364256931118928753635849814612923423093554286861593585141419483708280035435103297423396789012225921643534541498443384328125744674852785723084242462247820095120621884318177784203962599744859314821348874385153673513596153203985134905310702782848994624720132069106137655183185570146918419073825222185140853956189140006412117329654528822281719903632501669105800060282900784079870707563808417691624213102216775870134945088609973991715599137728624821535957633980359187922297183637083129817953760942675975977027487205788912827126818646955465149580147119649989272540346208643827149542047097049457076511400195981514143092180804958482802311966296852611527080091731047415937789871310877145251864505727399464502201904261847961447166495541072721269417495464843458092161230289621154340410906112817965674207491950891917900502210654630441324232574611582284974870526263188870161361368041762730945887530875308117749000528136527174010606545105650195112349427883818219040979499774993901245558462411018899945004505421311899752987372673022693864809026330828082431185847405922568206130916081102532134877934454349817183254394066499538885378180748711891464472643853655128204666515713334708701298802348952176857321116538636921658369699885517467725888931956197573597587446018610525434491199529948792974795416760050026467601646793159833411069571333030757919825608640867143859489427398169721641713026791250052194460177025363859971011857910369572051036145403956492230621321967499655842261925540483535013632655600797982287958284961272203299273491571267496104985949216080007087433577646370566667154977750839205184460518611649207767578621901421919599247837788926597235965689793701841850326504815322052566575641373585948713901247560840688507556156775735829247214463394822669303484217397316121915602301800827267493673538572357146231071077499508012679925228873335504581156198806299886560003667415872471609633848176568214383405716689474169764119964877135405231770825893967566617601227257600066349642845048564032056643520165713563546248448085774779085214910940152419504685301571010197926727421565583375087262205031001702591169240389181525120551896151467117295669711489828915423243138426259590675096069931102874242244513719051388534447764286597692239108832587875374363786417253745261378965361987495231171693796569219288294380274081168081502356703204153790723320938658084269625192948257806940128468152905446492823529571733533243367759517230017821431121389613989398647183422128271237322706557621131029077087728573905853798753025685194332860078782974622580412293572059104376980257227305090606544239439035215412956652529688678244556426778076729635890779943096487763242035715499619182887806017549458002818678631986920247388074787998482985447894690464913301602294778724633832999382456829724220165660077083103554092874047739077319803436913648631297750693469324361689497813824036379398393412316317954745103860789449103147291103980303768394519583783052562497607634276544580225975947673881886125700394751190591345153168123815200302708801559581900139314576380718305554284831744132386377934646323225994311159878356377282639334847839379817845283918317442138129958001383593904601013354890666003726267558001299647929230132336892379382601146666837130383977634835193034817323621839226775303544441527875267249632777112100719757351982611085452593694105764003537607928614038031001506676644072085102571374092014649108205763909955678325387943128748346728635560883802088969794138444306543979653204262429537333597252345833384445211783147176824589680572735683360620769009050674488772557384011623688953923840899602518849008443699509461818522284775453251430817679463441767882390264463258569069246337047522744252099758283226146834601938189461253609177275897642175126887732721908021306572159376860621955160607700730142451766752850655026991589669428466610805296560413960767938908787994726383340524996303359878701414848373269673188827789257021423784790395824216743882169676532658464349496455267842104982646093744072716042821729277109527967340590023775141619653000323253378203560476706571403647874379617839611312298509758152166952646060123508334469842692014596095528267793508591081538921594523646065188357344644806979837490917108427022074731896445921054641485336997760651644964266938717554052524713504296985376851070599877485604712800607331224987462687553344772281387871633193058905376008288060773091655166777529472028043986112664893290014508617100713626917964178503086152620714955761988263968975655183016859031745430290887572176542636646014276691495105493884552233329572121736230020586439791241565755350219730866643435378527390636626788166772747873280101617340983401387956636463596018790358511521549077245507946423644961206474206000123743327311827023811391237556824737671066402387619390789530614675685316208489631393055998820225913992713341011741334538363895012986659042903543265801756139879750508952651198568405288075023540133426496311496485660571181757768925826432395413529343729826651091655418714945703320865509980418651492602453709157544779140495666360779915607603426384565391822063012860501308116711969670635007727440139494682431071687426061426154846990117075682080439670707188428255149574317500870995322382861266108231533613891380144325280566200702637931055809942011832787618934773689054551035046303316808466335398653421635580461153907667434552746493681376823189150887131372703646074725418631882694026931083864357300657322399570440361061186175797960993803490020404132577490622222621798320708278431813797383203856284022508661883197948772349471127311877120360027410027413721661226795705799193996660428753242353250321938459791804971557135971460578873280467487055443046831682915304073476113605681342943794094498320822693511384192583986929667668835854975362027982120036668512978165136149497922299573106892300518791651912176376676012944361944206345821137805370101532597587161648621908827056036969705466496161697281250072946282749781603959538111581122919711555363888138898851318414651790069413192515442382257846977799131297783851285043511953051223816953832015608495459102037110322395426429457593890235391849137550221816988082493546866418557216208334974991506108543681256486307064098422700025789677634508039678729717747282088521133717351215728948144089647656678802264533393288835340112785067210452760943031587528081789183478462954438626974680915059919686939273368286582548478701349115336894749640069992942714500853298752240941201705373552223840130592588016443012252498332314513899531931829900783862793958585152362014803824651690111202756622443259986071841446520912201502610048681998991056809189576709353488206056738494726036223844162442184300131249824476783132553577251402578962920307826150761133605748441226859661044967839341685388311834171449184066151862432483583999042232208326649754047889205369572927287031438026413218151465194692903386278558544825167553748996944359322769312263274889009779326402115209660903002555756056943253346247460668629722858432929689155459713733440542790579013340084395971613325323110003101439567987610085452440484183023705789940783514529711916063284685388675341445750615394771896614494623665565812585266981641182986882643275264463989376394678793330511596240287440414078541777848887930473418729630727127950510242092839791895589016116474670066821574874197990550175842825739671648547158741420422790141408202902485360680537771750488299223753857624210137531396747181924299145607258429563731294523854740375609254524210051598088269164295971026559279852874913586256277499309663578744404577113797546758874876081471842814351517140449389045912735500473126677207674641086265957923629339583025164477872063637033930890446209446007560127592429794491243199253340056466887378370654929146586644988957166091661259493908853705913472380973402303229035716294904835288797847426186848981140774396502866190131563154280699830115584838785920593265066029147195672655579326524241339023987825923870764708093033546937028090584779456910651541402459514758108119464543204418297277775597648099842250051862757117492695417164783349389863816990354127262259633895453712556626900743789054743920200111980784516833120233312933356653939334224955280350576259612021450034417950130691122863981970921030012870882450790811799598345285109194057002095971455286160814999909421651095817102621330493590129212671266656436291218151314668788155777032419419625503678588256579297014418335803564848555035742803156353323004216346487841654471496650679591375093789369337818066972167123374703135678285162949570700441952642460881786547000401498721585352975685316731929659800100895174108260339955304914593882749174563318809332915826571366277698356971263774405399311928186512338163826390102420687343371852849369058189642638451125807803808029788937980264103472317289482511064123409613882734018029612587298032971367224757714522942038170743311375049156669018100437777602856368153155378066325277565485130143663844839970795838104748168557728136685626337099639511096643954756153057690814598499413325232511613090218087676346694856869754294213573729474800724188254313868440904511755094993370293721585400116390616777068841398680496699251101201714690706014162562363456155180942581485452271789472969103380712039139314227680672072292350492440388371700381938537979579306938550854127750450244614753978806197339986035263128736703553406698795449231617221782685501071934359285585190385521837837268063067728713938657053484536967969730665354088085096838663059275845715752785320880981330771291844428974940154958625335361825463877679264422903235076350067017377540051044350639063714154572547056017205129997678760192418328551965973654696036293932343386630481936179181593880360935721735955021482603943105004534132587182731031073603995825024036065078415312112416369131171410671520605016559631317342973564639009730840093625634410374465576199511591781520086374950049116702412884384234339780710465313305111179452166887547490747834493753909498502680224593923318417935744520046031151179748464675517125857209735546062966853365822275840866152972110699069896599243239417408170655349429817917772843112343590046958453780144974983920353045167163272850124694233031452344665089536776362214819186649223716716306232411871453250361280247470854972932360359003228508418842097254674236515087579969042562349536127752463007572473441604177276518806739541036896907390851369965923410540782118174116102144129393989629247829937587630669872907986457111508855191708426259513065698914077696015098827197354143197141708326012422903872981680449238872447132564619390011445998069303642672254016089724362300979329982064136208846844051944470012906359733457997010165042623992501875942469546023367859530796065965603296869023758191522136859735857655792812908376851319586682788144907437685353925609522528637354171026541797936906006205262010993347701243571855500464288877607609814800808802050618312831638219399771045588688251753767644115862291888238790018573883494944486007128623444329139643655144403434804068066716235235516898600571077742383691002887544127513130163773501337229938986170078055754847938743206835305574542915560506925862367958224133909051325766078101511073534978140293631243922663618417034766296867054633754366200894370795766779541653561632617264678167196256922732942706203255418358909143682855546078912000464838177846161604440017318623754989681388436148658434425021951688972627374594530899846023837597217659898261851519524498948282111638167938544304399824126002873610621038300236585416423974437237698544986721572922705911641324629396524487370151720553991105957225228187487994825671475483697740081294959599436684872071992588851881727509815242498825952847643356393044761175304044551719324950075698527225519511618690416188352163612690970638997913011042171117673521931226767772420081385101761530135769034665124039443932919061059470191663255209049045769804591041675103191379391322368757636556595419000569528341946871883833559707265189694293928470172823160415417468147731396858096126577596373145834817082984362105064372657870867298144106025950566971538001204421515229690275701145364096466965906787975796626620570944272361031403096003050641774514454451974990492272755952459184735303250012599545137002227317573368437667427081838346852920762207887655646323954677038333240145659095622786675471729822859949893293871140201863011179914090407534632600970185362481676622461299130869879788547098527568994254392698483589505953604968302200985287812429809442945012662412433593064948330904967311961840383465356154023389216881250029657318062764059432337148498886118354409436965131444758286861662397353289150920780998286473261340261204074136014120506812652866230470314889878954521685277924564916907589646569030846902124075719467794969705089835794156452657006016382749222527162409698136649176702159465719616604597740170598619644599749251717870788719833893363246182432775395648717579970107571127555610427850290300502890358250895339686787418705019566611754236948128073164460286664797619986699560537050168276685148497509777985809268946249051855096113701650308747857015042080959069072173898414645959170781319736695817698731076297799455024748913681853340295236489309771784803589087468379800714059537550913917123293642258261152104326285556829031919777414933953764849321305226518954705191011544733077665040672631727458668173819936525800224755852595535200015155596820303538029077798873957194042121725023313290710482798609539064181933314566058964299564703149961348133643894105619512170923523465627771430552542068592076435197267826410874994981230269170042409324735433471344667113690961727258918759707359845878658922666565594578805905560695913053521942288472239749839233825441404820613465962007337996944635278275443708754329478226719548292451197390949881777838808460419468781749174982170681752483090381169617183286815701189500167952712129494663389478731580340439096856032254945339882812144391927533280916199555247112854035473870626958998156172232838594473802304497308607157058745039596366173804757768654688928308981212775134318769610282840205269815485834539417492722382504434045186578701411431445069006506611569553599168278609307094616099045171162279683007980529803891155068999451908202260645642137060495687625517417774304667033021253077871303587828250022215711473065857092741047596631119510730465209886541376780237495201161500751002525661973808148460389166182923765743523507127737964539962139146313538250388088744099607258377323183132698322456720877800637533887030076523383791418131017026561386320911633432096018230001185378259550432732019583608567460425144062769825809277802993235353813480181313080486118948558013444212429723489486364300145604177519571626996878934785484803506328017828853240928608757810121751786278581353087073498948965397431397819524211490580010695723491573881077251999569897303711664402074166220264169220136619125273549056066069137672082939887819262667137798384232020182435216203728295910592188700593234533218236913244810070667200474297487759668498993681397502918507472625539217954058242116030285613604236051244158413816578323591347289580549073315146399709340495291694669026871490398933043893804671731077191200008440986406095463461182799602500006457372530701599257323422337364527999787770685659487232050313271847232329428832911763815119904356908135917999047485051155614248402959548691013861777776303550817909983144865971838893125784772772050815104058465624916063319448457253627094657094609449183543918761523820553698604102881144084995116362182479573518995548739820022230565223723464141094686000936192019654030481611733771021193013206467842627123184205908397344825857461633077916556877847977228940373877291653521679655286620053806044343945413367476878144074795885999413769666898363441970293907802188515741461085152231707198567179807105908982205087288886995737369591379827922345494165976949421453896869266893302531544051154990267005950843597445354265938957103003135442967356492544482780652762998021672207798149669875721333787946281977084310401665918445144801732653084647567721881458890807262735165805489556793387785551618558341555584528905915807648149039235917380945548051730524708555681322975936713216218820484501197656196042099513179961450530039421410278121741680206518893663002017518486469256025700710253888788525507940023345023855249180109192970520665939857947957051365867887358021068137555792086366372527287590674702470029057375173197328812469769980696574562214421045279182127197462040038372426256395750090598087366978329281534131909130590910286980141375540287670366360467909596685971581996046516154000489994508633834627066518344621073259457112987830714588200625123991167498015374186572150504671675802704772766889661165699383874431222935844815528422063906405024754362068543365928748830495926406381637903503750567756893132037125287945718973608918393028915701896538020826306632072805693168109955151922283616648073668507361208020849351969587498945746480272647318065405494307916933129193095837522998119851152244367816745563466919114656325802686132462399807313762690456873426302906222272520526476649943473663215307347469537007579867848433099945334343493880687660843730098396969772273749319672059886985517493826416472956025871573619937428225689061037288861753486333830762498570536258079472446733616055956194212760432231840358241111812751193832518350042543270027782181787822988863235281021787532114799941772980674351218748217940950329329290968402023022760414018440661945822234101744020728016174680057964354246934326148638073606971411712280760870388267873938134462055781954522864379916869340433763850809467956412712089442035157562755404753032410393978208711367201001729270345657177285294740804198915204461976197599273033695519777283829017230129922341176672526546153823317339020464780442917664592087442283887348187585123483744088190492667827075676953047583656579918949044303735855603377437275991649641644833621389718938036133572541938556597654745596994392222759129553663012187846978339246397237546509466400012729423733945040285927923984828402330669550691170036395112753588611066925978267030897847533561002009925033694603569423595480633730209295136029716096277315597341311807588775118391855989937583362652433618972850910956536171371126719710030438414254102219886920381746618841883872148880897512135555901176168910033604492223200035621345642320803898046113256283933656422269928456692125310002463153390897396702033074431996165105822703808649441513901206089164951406944797945089984636994029427801679273833256020782494256176856676552447640325037331043517402104821885866618591265186948988000582505498120178220178273009678771601806690986065346285472284352693830252226293860964964470397253395015349576714292920006299641124392029840026238639728405421496961746282150774691184272937583593840919556315328771974501195984660828284721340517738262262121498120378129587631335134473495059685466818780164766332972651761553459608045580254160154875086507872917452953775506886186135693087816372009462007089960539356489213901359809491205648044535011669025131442265247610165985560722091921861542049933749716365856523098507577226430646878188937945606239526074400712353814468109366568973988210862578562908921723122493773952184890417316076103877499441368952686876680730156294214757812201244947134269073318799968428558676853152066970075373780579606298281524426087725469136451696136019883775040237919959868098464314120992448918337856470455553154429621796373298629999544673038897877786124992881720829947384439373771312935652009343900920970589559204467101489779487799844138536839349037607383879494926625311045035346932734906682564636408712602528447411644491786264320697664512571286196171845864193820438421282901235259811363307106698895138305108796720981456174821675272046265864873119738444833288510113727470357578109280132176368968495934034559454514901958240601599806340180125888720708481216249038420700774715031149734356768123461416208006685348826845277980637336425628051571885324192417824403293545362174113827240451853137692531862529102851283033177627422583289669194364922066816533192642367377891920706138202683149231235229316229241391723084509485662565596100008878350341157486677797018754530127338966633906849582612053074418847691491248749379714901217448555783860564671313967640524476058489345722308444438673348946010319303221263625095061413354405764222384814586865948946622024458223957736660647411205462435168820786200275934447069821876157216633352328356865483229241012596041951365466697343194861748381856438613820078810574023397368842190805324618211300122778065789894811409618939609614540163041008826583470001955870678851163631351462461321292370692209862996750072528132321625377677357962486803337694513949211191637131686142289173864621772692311971811922268379695840006265554509997116046814950358728361002222124471216613222934403953098773193151134613778222132071173996607857080942028679720692587765874164031789060818484948281601760651460614740896766185851142665474192674595081607102363382352625631276037075344318487049585298949068496142681515184884102959274751324443212413055624213785633907275046762594948184245194385604447664258876879636644537745202266487425619081235221377973853456353705721505607698700896656773088242167550902119483910499876308451505674265721881745810288852920004716051559683185527895453857109337576700037650621868676712098541119495217988175362645050091678289590287586157100847237173435692140547561681971473897690284000198268113252367738790919462654624414641696779164525247317261711949891818810852293805280233634160729357006699898428528214092451673713810786332283235681317086003384974705222367719898252034888979489577616722814557521209784893477501574281313801960180387977800466128062283228181627528157076917509453760579004773984748868641962570777224071824718937732467968742824166807282096949083847721129432631077197746579149494847009736885976256916532116002537178377836123986090548886353942981458806735324540968557169576844234246267539638205454074126990324406637990373011175956841539831901010715667753244770036816705273527903662901174070396580268023228305030033220303086008044371864422534480927831987486521710560861869164480868394396633286044221835925278905784400665717713524051214812052033087046911422143108501764166413204275055390593645537308652278870591279086268025165024690749177261371137337726373460709189827833154889547993377135422372842176441009878471634896092881865644500010722354247458801897023137172138302990762457466836361641583135462681063239380814456348890341842841203903746245663549938996480855502079991012313827786858370204946451708070802046314204692801777571910471319106683249055571376968134150440925289995947305650637368548718254287781716909915680014549922716606436679350201963493997411613133552752130921845172733479552971645170607553863644529673203629208301556125354833470928214576899025844198335039338707671911631257860001648927961417576620290284594535906322841787414758873925777866395422659492117262139183717450853537935207605168082895546307097953078518168742654589546024156013239216146992616095803293559770278678062982270807491431247564649826230599112022758088920078988115759365447803381032003004769546384775284750757569530573502145642316899643744148994202776190983312359151702648539136859553605276766313029773719949535427046444031403195000146247068858415786920657756701055896788152421492987909038862793308592721696282235176505606752200305488467061974176082960187073490360936185484365614945248519579773709216045832007906491013906387264095685165014186446786005616918984239542795594288003803044602763505885801214086368261743968379451557134788211122967260960180349873581666584652482217874545046195014514377163880878041375456024786411845840254448063350672222189893031954628084309753733199893649373876590422202918019309425567125313957404710475692319516247087794127154108409085925552043498099708209096002329740275952696605239454403292587008511922172363078886773194795177991926565521459187192697014398807059383823597123464734930387240192380335227165871801378485713369832407334572588555191684310852313865560330341210017743650155942468985365361892886775722795034345218654380480688272868021154905845344875764708964761799802913871392438132733799753639119842146125118474060981551209235643528348900241750906193558142637735692312592955669241816609715013193985702604107300940737370992215913335642746051715402441630217273958028963001721604344224540826862808096778953852281104712531136500820650657952935409715386594285206897912453194922335964106300059817421217791514968815905091212345808708869480242877825352164567904233941794772854438302838211871763663159657743099541331451085215788275690558625950802710451032078330507788741394683446247433776060966809619338130337370268832712902871083926187404030179447186180200418522344876313023685950607919512446719701762431226082136001234140006786564189577936660467482235827239576246529639333440419078629054305617150362919817250437341342124543128883975033305353740452468504766204156638583115205742443079050247118673433186445980190839302690044431527835326539288453728972510932647926624616109916869980372769508591794605856933157911171172280523804113339585570744643668371613700229984846333632596049779926220560493639108716344510408550660532193534073097173120160115138729692394334164804715836919434969373967129536232006635310884014080780095402281602044739103296638335815289025294359316716728683300487108008790527117444895259237751202498573887642395071554074778430341547832891472088408661214340082409685087655450124060360463771394515474605090255831911040434214611336394813715175517212613827745715864814258570145365666231388410616930540529667507155452514007312965408739339836190544866080282051493201231179689944275322210620907364665240702570376400394436447556050602990765935488579351138610617712318947044790509741780586538512392905848827205369256637094213716474271038979044195787127194935318739825820963003825799981282144600944021128560737165761566390805593343114614608057662146258498397843987835158470832591653857684644715250649676264901147814830713466597028029081238348312827221466069972462348940832257090091375292014116169152789131028131871986727918236604816824012614426005124379091695569046668979252811184272939752628995624802403396640872076947775356706588351929072859707192439765148680490905414775779183899942364192446150344136191375887111568529582399102857975317718042463225439484091142083939893394154624337127480898172939990607513662996712778931188341905026314555882749896218711726005452865895373830044885847086753415423441737749176351070107608942217288861736991567570859425789612129292049398253691659139090573144575096220420442862390561269444599765660975905687772897003575283699300079252354419501758414609578723413051043506680964876691978490552251728489930273115687024280082238718430999791441497046451973270084525782224636591038905277157580197096352504743401708964336321174313707885515701483640996099359218149987396888869066698344900928310630817415782415594741687570528671876985744026003077905290603770215958694636656768283507670564351681638569240291883202244751684650997123889243185499463858694149256328409292701288651968369179320206405396729123813301271140919054348192790153426988976299760398303061437278396139287065328661335077708363897469001023355992918772995726138727019286821689218802430179962686393735777797645162258471672106891415223334404781987119251638803183067965830536733914503660336685389897193719991093336270420242430579676077134511135795309214055814405519637192452347221520420691838068752003580092713679613897717057893579188082879502665475349467392444638224649760962096074264459452064680832427390627164561165606581980788649730665267743350541769688951935181034220208792006805960489960985041970400826692235103107847218405921304462396664335523186047720847359486815008222679422947655002541710186489924915412241730836420490816706782714754728108894451087109330978951549893906037380338783742953201584574418111068295201541626028497297234751593896121230417663032189144237035279627041667952159052203848182608902930697962694243279099496618203799594592434893624317684425972560827705416632423383694153842348706905374725400688126866303589613475166203614958726272832816165462378413392231684381744352420845061626710001318487486512857200818692358960033542224526546873218551990619269607163104078359290621177719578944043035943223638987236458379481260505454332390368221606456489708283117178841329511191743438126654775072847559194192242109138182506983324815942660821715949060507348473380500546400331416580761941604337460998566510361327887170746264637144182716146128860121438108642793305985138438379097781176960298338302594692301975416893104081657515443708263650316646041414145016839414216018463802874748993542770913451126912419639361729151086331304684556230429173770238155782617745873114315609619948019836991608127275408134377956558187918552371002568912109732963711631459150862996374653543119847896893846011512842326233035816549055919964037117622880803906009528450975860378777628647356452553730806722973717210243846371034591864443819254730971528367273723846698448382342949355561674039803543753601628393207397853230469282646500481528397637433386839363220302762054932748702052407844842856188983400668244657088032527113458124859629244959548177961021221125789697457526815277194022046622853651672461408287483915013680591947820168884861996289436573368070296324560320083010310679865900212378753369147412765662822863870792353496886598056549721178454290035231352637469204838623460315152001270970102906664455604381454591352796326192055543852651930202787333542235552531840198549148134036856795406573358193768887660251498608347771904586462777431994754299848850234974372866331932204524583049230696842151192649424715978505897061377793803990011632188676650279544583191843003786270388486788266698839592885261555850626000420855599099144437863327413742465171778086780976031920151740516375618678538465071369610737695792477330142459405167068581949823654463463083575352827782674331499322327251333183706676922217118399067710956677442631788715902308420650420793926072335582360538605914781057103193820496211726151708214912038131044642850888277971621032320372841082816841536126220605329024302361369035571317493718867044912239761886884210813386365028700786005591742322259649032204964741536871877099642572657398118814204331062322859686818263255465599896883275745359293843744386069195207298666789119526395955990227905268702355892521046706321591311210563977700974987037246705763656949537543583501391241580222290309505227363743629915841307680884619341205563505960539922263689705784598486123582446800188361641807772797515439143807627847109850444625932450020862377406827322095250489848284834264682001248577156639499241478079990785792975828800629942958165371146807314697014461254676174281844170795753896024636998036583117530759345295737841937966901009640482079845795732388773705278444227190357548299253143168737159466867107510399782906695477675496708287418698245786785200114612925625072935448234034299262519758171295948256451961498393848096252085965629898041679685228194952329077018058225118739182121745025912421142648438711753222648443315527207856429084569438437544667071393956366081650272730857495851463134196951271427552906665340845893080682620293818337646209271480873131398265957156147844298985877620190005294448278442257564489800286800285927810678220750212860739623010648230994696678253317770432985197654343900299921073487777169847949550590412456751732756855447653153509630398151251147261699877240654141567806528635854717663799226542760680761916650819479176787194302480560233617527870861141789062647368749351740020623136256635082163752071066686042623278449509710330380208993872433118194740314739613196459794355119429567856530211511536530360823461929929676542328711914043182225774694626766342285977835248970136677446706295466682417446325142553544492589923246327182469911542143259787318528136361846152076389504612693153986891596794604082571633471789811102766787750586339434223779549596082866648071839341591649661355013326880062089109737396010460709514310758491599172214278146391920277694560552692839206819858089456521790071249038527175577695418230506539453943748026737221497717531584845030568294363230613451354288646944047461507658110891780295136902305353970545880323392297082258085830784129049842055307676595738810340810636180484297888140530145390956917650073859885471176059944057929601602815039972479457014013635224611693916078597344362440734330708892223620912316326188075335513030045060254811220335047445724517891102509069827891879291871959035525570190239712740974811558760762398217429624166805710277159188770993558378047750303688175061460604548758167825005198876536795346095220427581882891340242360717304732718961908680483294088598308380931255984496677952408699107007579431374156804750381224758696102288419934142199811425927044734431350120239395901855175213566424980734687135275286391678635401875439840689932374734261786003398054444554376339064666030295624991281289737994478032316810712868460341844521584905936046105446401342849700425427125830531235615775564384524879954809415791307130071028084723418769005063218838259187282438371834281033534725611847485857097950261586130474543389891144701403316895753423841659700163106848029682288581616862438500311618872405658376901416475502395964706233830025084997625392640458051723202356181751036367350266937872375107129136005590566256418807984830604780578551441229808946514893721697462178071230767412674822448565653977331128855238029123375807872733788245493856120021869717723504798800261285033933954404294161663350836673915586681394362139448669034919221127794378949287899859642819359008668518839193066527305171037231053669254932535597020755060397986833232237633787688460580145806827884425664567902666079394783694378277666845050125259036911328598888673022463615197279662522695092015002876447544342078480444769434436022168615991514215652740490562149994610969879788096665336397611475201050615680446913000506004926016854873558322126496040954168988389341737609446811838283355546532849237576475489964265272852597721643422649470977378912031531240781678860934178064091712619787073722945987805026020458043117822949682659317390387358778572254044276567245788181699178923555817635438231433943543812618854555977152646623097460563703003901837415935689876718279942526537229989352799479157934204999734994892083046726928322012072117701194680083794103833927321913773406991385464112680993127337499646707859633424348053910138502252474946668518614767845517529795099054742774221621636583742677136361671190660273527478172833663618226922039645282383868956479340884229434519945377433708653908407176907805916486706099897827645565705940105819834821503486931604385751937695108933568077252491208851215985369500476928150234633749279326512563592851250432742166165414265071996834406401968519388926002245701870266550081550806901603289961135544352371858520113870045892513742675439532045995322414518761028761710945837177242987942316501933659934963766339834187590372807858427269621831940869346669672999222356203360154872183027956698494718452539718965014615558661852801935612369206881999961892726744640951713246203646764233587535471158615604947837915173114862753617990427092169163590392358746522883104817521496179479920802171207054231600007870244711540085847316856075117545989642679264679196484990996913061095810193596796836435539503153422228850670177058015727460535100097674690568712622507094829471982404948566361531845243563174587176538267011700832634498897161784897995662203487164011529306697432380325923062578032599730980256690216044100606409344088912409040999693271027026484027899431626840095070165450397726391935551009680069763210752790730539356157092460953604197323270782671580630457708690462762077015223999795748881491842052104769259015021906649308829173200284606498769123564098349976650762255407821767227556904191984000796616818221792102535191566626351040042764348553273549041395375383103055443804477203785895731254450295230161576785280554161089968714492709878599833487427357265594001112318491933168682015261199908702349874551926911985880273966280885809438902597998075951545123154281287261425959038775869083638949084199793608482075803055449159662143885032241040256616585803265681419952723835428759176661151947447973983881831806377646848850537080990564726393749576430119059374044777652550940953559738816044010802762792029457295695898689842230136515899149843049364057515659659833247003489477420674347463342117001099451636534193908369188740092502579563348463227811743919946687193578729888306506294531568032311758608033705984542624535271529567951401963865449628778114978888137152048206247560742118354169947904312236365616109306406539080274507247378051865244099294254813379000171935244635738064971766516847407155680567402809313248431591720939541297906011148398790245770538586253027199123406951262583495068747210340814354093413144697000146933754837056604879207196101164253269926938152168744417108443771413624113551982703164887257268125601496652255793989380319014120996540918364934033865621147196977404778649131290005136976523475751080384333467087584605557496324865480348334037942333389826767371574587465732184050402157602470855297639855844755674765590869978282786154847396465660252577094653064646578432678340941080945232574896701445916837113901507568785666864832638704897356464221614251170850546847799134693516601319449079266303291774210817561404071158944975669636198708165475074433961725849562908271628381886049128932933777611729841503267138854289055924394835767851321635918681089884568597776370648185102809804307363194883062109370012773969602655236772315258232249776000301310892087270111249058368399967582355270241075641313155604489047073783731069344395502864344578110812666827202294749223950866339935841133053294925134232731281083058048698203932016288155434559128956022258216414591705249787634247380811192959815813387284962329991212788473141085526058451384376719710696940087148966424291733676217514941490261816989606127553604605111843320818815439054245187247362868205365969242635649433789714435871459869018990727215333856019453967751906915677034473619126336199662950844581292394421849485042746668009495523758053968483402308302192236031719866879359719834185689471592732015092467636565794778930971529377530427366940134206311176715329081273301782663712383380130611368105244109313657136302229426555407987176760402274629068724722979246028180387684854499365322765583544857003542704107121292961905942561036315820653106084944667044336419171451824378521078594659229453407467689478158654568759756053109935616611224849174632184289373872642866117417937811739450899279327579500002985068504129380561717028578408009970257062985525182784589016879536829066840118742956768834772588423196483975861575254282236202974914380283214594509087422861231643871955872588927173100981871308979891236126473733014276275832628548492816943334249239011113705351493755408835125216728939718840703904012976608941833470976002532493856922529676552476733862898661257512260197663743318929148376025887475347825480700624005588618769079098370361012928622025413095401610481742559697451121852445563907246723771994527430478040990377053894496903165557484839701796568339016855832836494229991612342617888171323117542637574172796127719682853352831858641717392553053942047952720115713527714795541271220205078583269828996219951369913340438227527590527801641599989885207160156712395895813136710932172793290220055426896861787680387262255973907328911059361744566682390056983454660934202515793189521176799788919840990919359203155324346463258883219551110266442185345596095646828827085131420738040338864492177506181227791975895961326149243777027954107538753045369970341647637303237360107911997806820509793512225766302734090544116655248914675444164283036052233219654543693569567191707212066719645829527829740932456124165632488356027062989188102550630386988125345586030236959610099576198877592221777080088378677465783638107655386995733395745901758111642322733832353567606759305683769274525009450232205533336001278165540616005254847146514522241060379810846776255903574574635408350549796339757101126499938784616887959720987954215102652388812813825888620319944539687837006508034637743232680058991438149719099158815306754229861954710036106269142569409723079977701246709518227951302608815841366657692815741346816893829280583200786019468470771162349417565840429082548052017615535864924827838106104549240016981563220194296360230144492325582707550849721872366333784040704462976158097929436890297599615371426702343275084338005690976567934887916908350759985930357283656629039722551602392994237435877266467038944022122170437610311166845594445401154198011144066980359040595362057414455047497580215460847205429281415936422793241912905099574245615693207396578242273543601267938225543132532196793404207954319833345115202330202125792836129727613811566856564788824594071907927425493331795723944054014415720127852605102966324735486532744757512957729128128304241187951881840909392864229013887598382468808308887649910637904940140877731291529603706368120765691423008657043453713807952762049632293098653820854459685678978608431105426960536384126393304030580441022939524026681033004392318103533103086912086172728046551216794608910507570734078122562065366311362854475778329381876460687769123597291920815475743437272802508590999950862951121458334579506104259262594412899080022739338889280277989617422126130419344918338724941109580149236819429637633665776989023017595081277409852949734167577397305712736623150603361157835738455828984462454969012286155681334945282572890952878868125441464502786061898676329705523089117215265786214708499414081079618532710408334427899670052178628546244607721459455400529960266788872980629648908505913680163255412478503789832260493963200859936164558997843959075223372493353985103279326856159363914278592033400473590912710331203637477813585876489547637558988404871536991355208047756931483943165249750113477797280585185057209727281517583391915729119219469448189842481181226621540244467590736361323882864263532936265675334722437474701862908690451299188534228231607245303355956505386693762661891916930435077595240932944033485575176464232278940281668342508080923684803942038997838510904482982508285366989803455068523538102647963799768990047801836528571403869703947565328436429008346095495812841567436555773631632945332152767040603429814415496683856871249870362173036596697021631969066854421519128560947613692930776793989806649667405982433721067449294822290133224488133354626524451138707455162469486084211210052738293425610418243522873081719428833159929167096894731525705066357219086952071544893432024098822619658615201831431533621875862631808833137682160866941137535879099253821969956544986913521703382783527696744028503017619270952890833796828297160398565024807032652692712171251775290364624296037370203301227239599443777822690501408687952349237929991853910092782753013341686841338176416125289710515846390050835456063510738547763264845644563007261364510419151252849815183581213887697876560740570317107378318490347827622864920208559288836754802298473908058082264970192256872311863840693663395906558595222447375101117131148009557872249780831355175681533209853153681801901750744073927203232132279070760050678258559411692637302023790437553925965340028881090434519645628404910186697695732900069167296486645721969504469479893034659598383856066831068744612479190796475040988403318150446060822730377737643387423061900691445152925198538472412546005508741977823233530201703720714688465765840923660794257989675529843878029775302845839191408781694646115814677971502620303163928055152891833435215278602639234181267247855250963101867005959192712239894106939225728243051948178629724932148766639335439077951950790674294982416203074442594477165889117066852712927960585114260279916556238452804730947875993696918807619401999338871815201582572565913719632677461956239603364145521314765148721298772292895418598526238728792830505576159622725855997653132071226310428998164743534632353388523876947981183223110218104627648828375019718776238657727105903252618547279880760311929064151094254657378087339071698808335979818868202283034076898483825309571131274352250525833292464524296598483962060592367017172588069105203069945965695871050004564905426732063677675747789042833287554232419281159435951174441954670680068040469443540915636444974785724140901362480600304081112024801338524930516526570110520666517192504248566460984087659163012278358321390494350510640485679706255465061248430810010095875561097102814445236138998126558444412584072761530391943759945644118787519159309879026038445510960005244714374898535316895639779529486204407982066505000875955205797313081093378828908555983870290642115472404353052148473151869382053888974425119516107064856621911864366363734345114850455516568362486066792249453591403669455837503969677366941668445591028263490087337452200510098679852457630365326182349139304486430781686435453912269728809806510157079149108823084064321009197209364233296733939689014103984829473267129306803707687334120513499502221555782104752036208891118875431375687435584576738992995239375883130688116833514887286311759892096659735085329898950185668393305218392484856806755114012477660850997267984176764889759121317991447055357817915802640665765258859676309684574009263830265036494441855192177172071101946231845546960992457651733815075911792403766777817492255747411377507492495665099334230546169634293264357132110888443144062099644045365517373145126556934123275291544237325369476465070716585040412789094820392905240942981143160586885646334402953364594258919112633509561342358098118675537340744995839240750633212459840310106825886021495117268924495719818594129592706346895252717599480898534148809343606726059233820108079812517839230765847006956622260099343524100512604264238991350535635089252861232742498777483414270195336072164805353949056154486553496461892893265617178579032639612869806772409871855392268620043174082225241863379534567118787661783986860418951815041861064199804022182088013084955201481965414555946070261581755141000481133651251928121318705421586583286946631895804175776003399433009655912404384350036416691830666765540825129974624200030454081595467997013272483133055190073467925807357888468770764140161900273387596035704919353542808802145070127518050373028325018256456084524300114098234129090137184982094530507818575915014787760343109648202280296583093475048012526295488227048928663367368787119330662273005810703945975500952516458902790855512887242007209326232526309790528125848328558794647558818946834730140241899925182292611062629587099907688740575673038968772215092882161372546214972687170475441804098327505699534508451834006533093083242233570475022952441790740432192309430906183190179662057861030130358211889120671714739057391569111039884656469423144337161470339238939427571994595630908910185108336422649241641201571986474983113148116883216919261071018048861601819741385962116594151827689583246848767110766768997887614003988232946244447612584410672136020865396387059112517079524018104771357925229275937016851666287525985703195279680194008439438348999893744306548873885390860670658844357988610181249328343432488848822298365311900224374190230281758821106632126554998340316929927153636835716480590567996083566188060034571369438365920423548456652994172174406419812016288648687868083480725025918533981385612156267197655527875164382706893797151912821863734610787669554247093381780189098753976197006923858005750445254106006300871097191159324093662742008501745788983985856630644447186349427823175625264123385666757973671232541866987956390592821186192311146552968041482903533809152697977034008497556363602928560143734480079030394194134097419469429562713680882281214902174224943760805654078228841973130095395916295230641105488209642317555319389887461564163383367273438068560902444841876235760083311866330981821003543050702342564905191509087801671573312112189355432319960209371307369789502933023030100949057345765785319959839145505947680583227505572934143389315743628057100205506025999967650386141599962274689575413399678972194879058633156862288857442776017333854704231521185429554179313604484406340245291373120758194301183241253803834641956232217725924110072613312879862093711872215194042522899286184582666477941236106268375398489831022221342681939693378435702906113479103750829903884518981851417457896257109853293189368926010260737536962613624407081762958174342471573684017363183828411417773034261537321528112569791232872823802240308083117259826711170704160395054887179818013309510100185777624748316518158104181956794607552303004195443905278175032847429434071395480198246498981473994483350089499727423445340093292149765050537314219005655410763349282591354043145971456010489950067134431406710188722081434167534496171816032209507498050351506536636229893576876144566229646576457361377347205453419406763296937333675431977761839140495671728731751896329470836316610356953292505689808756406922717179072213275084606962259856013777400133711162602751994088928662299523875275103834007514131168467303377974530192928803940463811973519640687224492319161107275381219651812258334056944651789421182767875902575343694341911498690011339428841913940913260596721709812217095353649061333230433268991851089356564595861520270041955560278387068243583268517787909361322030325239577604828448455923701371971617027351227540078500606423657813928158704404852070791008503613233454357566970616535654912630350383598302454681550511190387410371693232518013933514993236287174648780176617745180865073298158690043970897205994641599533225155803424455371594304508033088939844862685670540428875186212600316029667837501433894936441134980960345863064522717274950859558046883852818885285543390808580384018647584945072104118589708162273346259384172653280977457234245416507410663186692260333047258884643922453347714751094775744931397629679313247831745553525932539120853750922509987484207046291610280608408728313261051351499904924321799870064355177853060082478006728135947161545812039813179355429323928718174821035041222583502931258639969659388448020231357569835527730187314021067356127850864127228606414797937561273227570908113283482689854495623986297146745881893238220309743796357399474690164252832146076288480022442461006792602941805028700708323748536379455506545546142243984209246170388236331174408513780941140645428209959531354880290140743845013097984089339000735965257727354196520701247129584480098822776093349158902058522090199769723601037174657920781024827398756040997002979197510551423493880843079716613947999828330984688666689379331548547618311105020569483110227132513803659352490474551785566480244989305877116025013102977527732193961192762944145536256737862254060724357132829801346765459439748882558716106489890745871065494024085629865782666333267512648632393525275807032074264968047632245318205809391315720396933601964890039535014666846223022047690489732244749445740077551517593984846282234723057154941350182336003656323613404186438805762226040461796642642286906148077544162979867866441189767231840606516024454193594522949799072596395267561394347401863888800035279833374875878681929108138593701964164943690713146958123858353484049828446539142852499045898359431757511692962220746206082895223441357317241839905471092514235096884464725600136754947215557764768598793716155779707828125507200579106771826588091487824119988787282554051833548905177322221067044828128228751696218321493909227470190945153775898142235597553660368794649482810181975096844684528321907903244534315036612496013068822995847913383600446215142876502851093212530925110658090890294259108037810120735237301478296189115998422839690151307853594787212099799688502663505416312415169540163825882759964110833433944897207764281281680937779216154070311752982477888711944019281786754748402810041298909960824741393283392866049741095663820307100566067311899730859624426949073928217910814680178769112727940299748954717571943509421235375566778765823284910092582497547316206061239330032714264911594705981483854004808490664661663596676484308090254649033953985201210822667555890867197340994414867837759629547184720500836333379227794357858884285853314505453162773174846883796811612155114571340182429063358821341080971275459751517286883460880682106765951603937279157808765711728976105353210828021696186331717842441390102404038846678585156713247932070967270555218964857086666983349155457434033044600838512998641167638572452120049710061453787705467910319672129197373020019686869628271197428115172436225793839161440514453444298106484968682849286478894617961707397186390598211976591749965622503767931299342906762821399551629717600001602768427578010723537282720366079111901863640696655919070722317322842616976601815641184897839162596673793296948111690415882829603734906655787026815233943291375369900351753091241528858422279209426538186534242448149253360673045855259606655471776041662823782702767180397593810009494913792700532649593640364720712453237670022459580817639450056744161677200104390475655029720588147224875702264897674801856104292066630545889485276960662222427524437351335800780740237225910730537557548118621404530199695884438181232806891687590651727918115921343522883552225804584018613587975402564388315382595712931154862131670526706066507382816000678882735929239687662977022388090042837618600543619052028299973650332319255438594404595167789018894344963900837493066679503763365584134577907439863398793316013470584221110665221283105326340822323175930235222267378258029563471819323539226504241876058248619313680643417347424183950102020991804894973009700259280692345083334057933680003250047319378908052988153224293846112886573030398308519291233484514937529730483125945005850776552779158302277480492777526713484047904892710161793485120149361597466736772501396147573401126570218709009162034522951822875003100281317658924140480041585767026954627488103697314555464304571781542573812111656077384529276751401551326470246937643699318634277493799156026439090942333980864538321696932277677956126175642628232298836763559933038986271077806817878491326552833699137477704311152674847547446824680718162724037483733051669303359817584394416502956742502185220191143504425517964981508592438013035051104474790786634413278842038649495307426707036808089645521356003832589192775896994090535920469537117059630129874956193234863932866786747998407397516626723773504161013427845401211045948900748455752447593709854997754933903817658284303436253843107229851905955836130671192673029071412119241749733686034597200322326436796813040482128216501967655652827149702952307394967315689225254414757785435265031286701869811695094775122380345119472780103654831564210114375105877243590453008162473638986204077013260004862229034008984351728734177923977476611706302810044970270895652832814669708459979506598098967974610320925213533691774235859608489445211709365513952755923900450800030782914704904688088452748219720891073593370585508355154481147548845932162649157054880621551638815045891575172803190621677635167227716797979749930534348151360889354944513300688776191058535543345931320997471622971553709737492055445934567915344946067358977928528629891611312334525873560188270835161784876314087301282631317120437484916167126330101690326874893046685022581460613772283482803724968995387488744676364347350121366246231212843408925122989626402431672855079466062770058950599273576990013422225541495492638385186539668561641689962939032609790857690552451750437761659859652467984781611409057668395037848832021021774360135347800722104054362849012579868349881276387901902051858409100417402690809786422180227110484204781073794852277117511407773673770309732611848008620824575166211083677010839513578571357856175624966025441167081925882142016872430447067625336452238501876418956275280280115981280096558435323394627163593466503262737693490075242852257223899527021623910319019401151529713727891171009049865117403261377157057416337057300163253632551863598981838389466549218304561541515763592839958373373007723923124673734622726410708133511610604236926608082972383515935876644386370004019321433784356558467603152720311424721468011185256863381305487098352655767568706820225738192724676224256423750348882734289391603805179886050213665870656054488942970880956116278974733227291440878029688987996489982815898346753351224326757329109360250749153450812613921206842106200965202426641404196922034607182487046008714961876919024945605658517634637446224669398901947571289220341598366683511338670155796542243107063855562019831484536465353126244922246335807743829542194502783553712148127108884998652250083879824462201413351883087880456201927156007186416040684297324710873041086083070901200466455281208918674415268557527909596896521623938726554468771415278232215261142026928528022854581553915130097592466174734814880273626874134053047422854992332114485889796183441868708967568888315264761289710764074754573710573199612735376198770455724977163168047420293850043912333231289848610838845367329507024556574632941409288961384668492634284980740198632528684513672289712144779045570576458863503777384863634033023619348133415868482664999421552462102726842256661590344389130264069683478803013973767962751964209927387902640042971795499903559413369226218241268806250144486081625383012048429169583728682971648457752498306392244970874907995481803903389307111505907264144957637323025574598458891288670439162133588639025842131005694872811136787921147001425606427395678760915804267824272069932004556375325326425687360615389849800772918091149681593655939563712643506420573933751498818026052561674240561176021228130048077593856936940499199617851311527181601987146662469344395933356374475474296434794156107552274855522514147237177293814196187221058440549843842149609916271844622243126352331767982880522262419110231484106188735064561750230626635203706636351858718341038319062835121498444225271782720548383993207475561274746454602225341070524407427905711128973869630555185113359133832955826296711678273661898861663407298706936296562311371169326519840258664571834343164001604106885118864524416554434219152164890474511038105677933332936031669078510090027569131879120967555588600710697556446602812159690031991195643837724724510726227613123710567340591485401586353573248221536634365965573839534696875082067739743335800901302235629130936612002900907737918361321770725611308269291327646012366815220016115011629354906392745122591776354797154403941272700360518896845364678631055371469705312195632353584612426688136173265080126180634508897945405709170630297143664627572668856792471158238147364015278762735226345117486141182065378028826183682555965818822589756441267734522468720040986058083306000111006030818527053758878089666942751549674097036143633573324045613538513459526799259004511416433488009296285499388738972356536288237407897473535578408713724681665131887656887003321282663928021797916665535789729288976855386661528135293635839173744796842830458643758133994543431968279786538704941908056628986299345588684577146541378338855055382105129157403972741633332044545418004195183680568603994713025923418896077734395067806051193114004283859438384891292089080720275049903463412559668755349663746663515714310939551448866870716599358433056563814000660281836066477430166717585738022590698603816628058366629646443826971477492101799801287777588010451626028261429483587064938055011229107843671017709554306761526680446358983614799642712174874354592727166970641184651778370277298357653456340064139422950803176112815163248154214765504211853049716056370141636216352136817161825031160754544180975565793064567925332638625203008395519230578741859572292736285178461313282638778716166265923052062307407329342508648672345163975223384367114453920659727502882584823307800898651148857568482409778245359189014955885444484385411238453984636465280192344560952446582070080824638654033780679631837660620251165547503591870806212183880204870076841087948908056602237686654402041264014059322587430376982057238829003286986667610562100457313289582283736343321811556097772206740953583349727692173342294099430318385037002420129444780814359271727186141687082137035727878363623451758097066046934488993944992092542282770444046219721914130166444624684527838289586540889258727871112175653691276970430356184843928357121755796014938078517199089333022525490290660541050810690785941309365040107594095114535737410255494862867902409074036175106503195816346528387484051549189630576116789638040482893890499352356362857375367050364174735371138362620229793321838818974376263729067762442934660364993563610459114528455598500887828520631780218959703249444814107762096140073715544764322717430294843633211107409511369125579702611112067026505342642129852020935394725304950567918014558139978233089998397397463927530406361841065428527415385476551549434395499896792657168723975829982034384628974914611171410663862742739792333427798701790601558975138081284462140208981262265677758407489917734575644808154762362009029209124808493935502077890317386108918379164789102265791387628719573766901974415614913896816772403372781466847710475083644258247706375606168159688544484214367172532981012526303044944459455200936207299800553528929769545351369685111819342081538508276057732926398963162100619534521642932016534733793770072079157734283558321948846086917215799018718853269517927120983430029459018594765174324279197622988055972547982353710529558816986514741799306188115320115580481725645043306281254403504612445247568256258123210532081737860069147363718240477552825864715312852892816891588965007255056111597408275308165653943372915599383089867227195678702453642994676679840965143042215924236214368064502149363804043665914111603248472405781510582300792779084707881385734959320447508272529837010139871495537650246994358364022477887860753253320567712023793701788627501441338966336896497100127069316731140569682422311124057315606234348990829451138393953279646698810116933041305144835088172465756678303663304342373274356013784191450343198955203722834540811258716526376051563512164282078768746033643502061414677261936568461870293647482430394565736764266857202569059946335607408236364628269504838980731109580089332215326137996786877134871781604044051091194423965043808200618690136419490616493066207042938027776205460926823440064262623801455618814677707620511869127663583178013502931165750812921142374314248059041388159063826820476208814878034830834311957767246249329334257801539695904925359922030146601157946187531245966302737696891492794769061972764933249604012755517332656743539594236347393375606230814548468442794046140057600047380790787404348881472257912416536425542855728563350505698646510775095252166246763203273329420234079900900074488922470071120562349531816985428377602620128876551212718692300378059396934896385638657476134017212556457850208145914924312973536480326806896082026408418269214677472407895551979926108119190560221032809104976093196972121299151848536319162549199363259342993035331269015611139122897162548465521898779877881223568167130512466554330906993926708862663159948644489949762459792504735749956281982158242664282248920823198449853050156728608358621391240890457882393269112007331038334485516506315445113783975299045265206986758778884246876546422591132744574026395803737273780336338033625785419734506401655968734192182082869238354681600504330987625056466745693177199296830422378749692214287082933056654740521266257512570507996902543545736134312741502289755306467862782607890022629231867805945199468787949727257899394357878880365163181206144534010200779928532328439743051966351348653982294669988540403381349541944207575381493610831226349035503462907844723096121139092317279246005355605009954001739523257974293113556682273512171135371231993128404712298346798543346646701311762974994434089311935005166943043658411042541208837100068307709272519145985903402576307762368908184355194638367482278842499143599480430909617965785979094623802274525856096518399854950557813347315522018590632140443252254820282867448611070233929782328541789612643339476417364541093962563091188898007460361980640400907415700104891431272650767397917377495824096924812272542336715251835129655301565890775757898657676959831490195094684065344852406227892044445404690615492026046860935974176815536697792520374164187251580633132594324089863452496172814396572795455810121217086206053461113289699691496751726826476445516747047532603985484530915457964701292512258232879370856360278475627636293761916979458948711352251751311551222534885436277982551975417331077059135207500850907166594916703756346110874228705995894860291465906970965670097206028164432019535000208907789758775736800562644075277489196906168651095796895987478138186260120480919984505817925545608361321379289863463723140056396466483773920842803870874129691762003926544631735314552469809241448573951923334786317728435587230651091412610378034449286995031186415981762240028669562099691991259216898198062189242080334930293557813983222673599484338666363220128891731407810747174500087548369562743017200492147035330635982546461418328801523055545901016670867600545222348301437968192612540343520558907131223824949408090426323174456830214359785910594453334708492316409572874038316057327516066066325316375181936431482932625045596599707555407679168217422316347222274167716730728432599295292848397220185162931991132539711384254677490405451315448809481700899147238146333321706618157253935816799312756823426060307889453020556189999751442588158477586576712517922037636091622532959721793028671949479720182678706510108192009043800075509170375701246048316577605319380687759308684066423319877092615584637873242537763246744600366282376260017503438719459823094413200168766774305780711893102860758421239130433102480640710365505517205781616584975739182114299541131325630369361837329712055165125460098522885456404854423996744847870086788091517982712027086567296748470425915072187881297872797331512491354889405342356003726618967176452391064886658716045143748374894897719891151219090618912305533852562563197835948910055705936337687296772454928219590832589276167831882110104965279992869302544350458712629545551612749517706633704159965342100321686746729509371653980225288871833638788996494596814877948833811716743118119796007927431906929831591510286279439551556057649391776826679211095227043079239325088942021904195205411824530402172653259851272579810560450402315972440371761338845458477745789351083161727205259499982833870189929217032180178682250824518374177028736454991056195488670053206474747598402493974336213101943636693162448284605904129786455302492533128836258907395700762003176725399111217807952658850989548130761715108513489606424993417150240320750773936719514188874342310419371473789063730132506121044259370423746195402875092282868186250805330582403037962752374930823826726121565174345307536283753948611049364996258837530535795671114088177924004554483945110663752060390427786403416802987233345439935149871617046024837603276926775111629824055217981221059225032730472497025839094064593033291258156450877628217650891360527053674733602760082716977842023782497363188113818860643013010437267652776779693659205599265091032738185834087214659216621761829561794781783757475970640998932115230518792882602175944048184215834715439553909760012487832664547154651977251711877268467265045826990132557847268142872446221840307433926641389451323268150380119693046561277577496593050732158689022243413329014629083231071191722794578987765090243487513811738965125849353030171452382034560257083257798244531945344400038408944546443696162728623964368804270716339242109187118295393909638624567658280976975790326778202279390622827643947659183849853840434540779395370612386783639959690097612477480194406173038067170205741148279531255614694419215001375743457239626760254605613943756542457428372267185457855895343573534936566884777120922600880452263555342789506172309801646603245493100448195851764937397909696124653485768573837929215450442679674000219602388948921742552628511488219453065411761135890745325807543934038069507674122133966360478267371553505279802366237162511784710127148422631826088928577324958863140128214400331736003643096918922386159455979972952361684743317325507506811740474026170957280954404564294806985894290290568982668386745818270088641385472085796923914761539481228534686591976373878552346051245015809066803192178975300012747125180572845068303765865495020227139753029828715273056735240613599097736165688385670978283051704181959160341781748372259122155208873234197598868581227860023570319660194330509127308989028908259771387783986577240927534364704187481897615709429325740394500057917489072726313836834432017841178408363420972934884632417344825626943514489120304594635300988073552086071007092185893025743395515345957030652023343705936580908867085663411496705703716628827685138683890457914211852714262490607149566305084484965419535205003766686144628785338021563899815181787420944323933856571931587784798308086571514026165507995191714392642240509894130249798760776640265878904637180277373779208761676394318777558211486627952089370731487188022511643456972567487814926545223218303496547365363716567039502010155975954561942311614472192922859097614717594525928353402919431054444905947755979596967239472032699618363887539872917896050229877141261424138557660836790789713866348354438875731702899406478408507728637538808185726202704047721068713574479640576412398055029635149589480295889069031751241762225541102915781430108834373069340342516748733262975691161257710578090066899772445388738395102941713572196337761086580144531485223417673806450254839573017274559986125972542902239677938807719681205453970730616700214325275355061329014518412209973424059603775731004088032384082897046360634436600064912383040254706197987539025311176872815197525525477344596600042048141086320299980400003539468168310626363493370395902761829018416245944210339201936189445080787945705790384776209916095908990717590263723005454402175277963103857506250098305391796822739453262237611144947000895539281507143080197893943767927153659175272627020010454612273200557003220981826538124840376829086407890261264978517363517043173520532556255871365911652015509599780522046223954843597588944893285171912978747735202047490823235061715779005773582495888855807805295321630891798673793625881436178032845779357773649632187435800939703272169790001725664442004229063042675098241198281389901386620006184877697385609801932116429317122001452063767528175396556142253143478307981931206228341476346001719718432448125418291758222805825447137003594218805441070507213869663315454582947324707359525306217756029954426545798122888178138998822694895520823589823967302149592408885423708515177984364764647386932438227316122686023752333047922713557072774742460846946209705872398527835972741164082045918240696212989937007047045298705192978686320492272418118865982345954742350177466344231139523664253420554095961086605086566305311757757628695639400160256730666640017521528875594063900222736839018987104624172179041116709160485035587391888544758173121708800173568913857299094326458511979926396101802885482656347636994545328903083045364559560092760594153265575429002734473779890585448034286414582877025160222529608772526157144197550874597052971780116391629414146575999444780456720154822866580880890075247151263005377270291339875247103068972318092437718908571352977421407407165830085986792955448407727175762804382523775781209642308706456632405733383685607081447500798782548501562628340161380788599807236401960747555456481659794359103344252109002196007869328790265829557477074311884840910560889631476820354970973722501290905050213734871502434061009917923907668561407872533627503101014429853567614485427790327092194967715675170374098338534547984831966233697643918173820005044408469089369796150704637007271310724590329992263987487366347474528326155464851182916553368607376551047461559213892759420945052008229305975674106006974605289760502482443833138941327392813446702307218599742005909200279530270772423527184513710749682235808390327556110916385361670157892228794707444034895881833068385909878955173250481398488501999414807398083209730110537307763166937521122565936130622833359363221841170132631541104366478773168962177258279823700482649712548285280531853510863152301158723000695810294495298518329640210079433978697192472747145524776348302770699028362825321410041448362077222472638792029019360606181300183650473344136516652909700707764097683479581632351974236685918138068054560363142120727549704562382927443299215935728843498219757823149998139519940561001418434078552833127054954301268268398610606784812308852872864457622890680409489322513058029306057882160717722530823379506240375790006981818434581626012803203021952083876474131703269894600746949541743296121022737575412955146320676779268686899629160463790330787637708339900730921104867676723250846604522588652478385551793869315892279774255295446181334458023812139756133100279354847717714110363751094227313334902213853046625291720735938915502503853009683165242389288492841548328719208012833428279294194462490336143362566257489311733365543249090883611483381010102986418422000282286038980271198875885882155534592120173277755287576216740940682255780615370951912793982926218292478401234816916963596104297919059381203373816330416485504368765798872407396624889370257051354998958188817427457867335010309589509625165509945617024079866180687009083952272947583492512085747074378395340395349819560600551172538003806079506475500151881268060854208102082655756020604785165014483048314635428510343437068058142766370165731180032989617919115226944125453421029135180797135606231414283131573338727901603767482826494494048334998687815817374902189950635870637257176789991234436022266514444628951827344548862099188759120798557101869950972696800723285658861983083706362469456417271048658293514730869351276052490144933442659348500198878758230238830964106625419032112700667520540822432193350964563807220096260997365251982414691205753503760517276193132109154813888926806731388639242892541688092810317781980214792243200209756569190630033119530567252153495707637313143329424827391593131774794964238224884550445973270044572597209087245513162580443841645722530746008824225319691819805416121053165229697868641553079343066881164467550645271627743802438619899364390990692908445092593861197010892405150111931721938403353365732946431843160226720987514553982120340098369238809442304512814337555535818534004163741582904152084478646521890270309391159912895023804267532817715828514687529375279445186422041881509020825919301826643859008196002855086889526847849942646685561632742621193668270455758104539261684024744998140174082650719154566851322440690346124914858290415447109010397829936842732717708753333672335178441107087808735282165357127402287591817769934117558648003116024276531585613737800297984956940378767598014866928157756566365725920943696139856944014444673428215443855388151918185377734514760613670045012301293062955170031554209411815601260736199859884468745612762522192103900215778951663707183467018749115419286623823423067003975360986052438088609335841239729008673517105591129270429884068062730876115552032904199854796821317764666203703425755502792415708742749853771391550923847059691292480695631964308412986609678310001148814751161812883301479833630256133835950151454976000908281180974055316465372619330260562678446280874115477396487298277709264047993278852478371379010007207179429359788571808115397519079439055866826555885736761555698357434531541523033626275507588347800824497560813796970318184361680865260455906796312485443566909272858069236066644604353948933494120948965150234779508192901185823619113076329931146102785482636093957748371580218419134089122278512160305218126048794609113929666070285274333831029994697957021258345220707186588595956394630280754095941593723174133173688110330378818832961359698486490794131346215469892695233365728257021021860437312680679664678201100857904423345506106116448223003736927451222755890962331426878616848453860219739356833413052720383465541390456614277654251543294073752554392490100762840666279563162646386397198680860889472006478945610969326609179670824686846742661638674768530631727617201707463313921667782553807722498524947492096250737776737681425491555824209833844465421564266301764864446922261962829716763991488263437705993694454440296764067472811769738506521825031749310295450022235226806315533828547942160363248107706186902389866101027903465582005199446644837204330383710903459860631327531290468273597135188743898461985646425930122595038355441024065145245924170185452669230755671372439554270398257384859029673896829443216082663749694432255711739976077477112604170030888783797057565418644024713152864646513262970692838860415609615258756182557909024942218146249543102421379377924644474400986047751444016217477727029110556482980895213357563445806978717627929492499126487242881541385010217505571869055390728724408502561259324807807821184026613888780234822854741829462536571968157902019452549340776141151894608702150095149261171247126010226023028011934444392892496817200807132554027798240551725754195475556137535892502245966339913323369335228374177109695976462650983743421517295788762303274129589181508356549880484214735363213792143954328199794775952648466876412405389848489783754385083140055279648809762218331699684252588782584183605842040235970493106449079569228292592356254261925372125448536130251100752245803590908845989632952575636975941569305528554774448237458050927562865827630688873658298193918962444549108061120337029899019694198594307156219150430602432932569045647933870874229195498803326469661099427072302449591854416554492194231477755197752528466503590031877448166840330614368123818800128053250847724845178410525056029982777423171862071138138375357370630365660525630318355582078536609149639679448444233003535711861889047229755581035352260314870603736310313544803427111735164995606459194260052898528279360532352888588315655363473555197527180530904371921233592188788670634439347930746012594770600247310332064860656447512175957959792340625585296159903186347609317375790632025828759096756683112431148809578709323043504533067802958538584799328130636555018833685951268926592274049660289460876261972145191968012804264228397829608392040930028347174096363533548739485224168228622540766030321298507680392991983707113997412964160882484553516366012780143008146108326973988572940509927863053330806233768974087367515297016485140019964593866471149193723505724891406583595851550225989694330621049613499232616921645810394364498894725835641539619495990531396248962378614051463161448227003942317879811988154263191529579876904888191702714032171776529423379768530607337372832236562864438917797628369037807097479415368853424017496738862021875233089197050587942141659900675704844100787881725099762209380038005233861072500279259584161850123446492930399220750117484928846426969659478297271766115623923505529205446752298835153676793186004253717577877926332983557888478021323066028510074827078631384180707135232830009630526599256183852387068327908549193192924041373121621847503387058464975587504432186434716585143968285067632741737477211967421009363854732785985857624957747909491242008260232169801076662828283562371401676796664240546771161935039297071552377152128194129957122500933212034257730445922121724303248808375089599280101212095399159390878882690573345965240228697363452984445808517627193722903711638027335324618335485979353575450934658306442426441097987508208816989818915529812735650425445204134708987094301036922487425117407463516598803850888154526074518459630429014342713883831792325612949471696130746614862691999750117169069417252343874332447285530513117088494428295037103504053873979949484999511880402819749359162973249782677279845909259414592499325467850877445499966578669162876257391322353355742516142968561332726401598827644525000271191940959174023800732644741630098046156792763194808839183940514039648428079747327401942456368090770460646075596798964440449807699021858005861046183086412701259890015419682870658870334472084752835575633525201902833933602740793399473901805931204887440232540246605645207351521949502342634071479516553539094470783468349538416700633579885719696277108158313423631232707472080980090274476662133419847323382245847394788968741794013014168576528524071226770684758175009033798197117210034631523522001892312809329330092229939165647828283870931907105265635769808511371199509645702927980101858909034136617857606613809735848609931475513041504333689639382459658974848209249816878201662496584545950875642448423722609530761566044796304428698655504913624125209491898293429301412323221597722283386982356529895430819334780425167093537493745992285856064274014399871580941945739981452378962288344916579291088098413706825904476247333882657292704359206889800119442026736854421146619113177802680293646512099288748891666334139982999542608995282368858936999367841280310454413293663733095946447399669412124220664285461264953997683316195314538219034702506350431437516141077788528344723397836016394837016339276973593831589245333532764400918827688884557343541049684663558541647616084013629208012187665443437341836806773383254615256203721757489743903477644661188561496027850273054417469625092641530153299898014744199587868370414544768614815904188265135622420223680042127608742391067924611760343818871886993704403126762065754985630307724768228829939584341447270247296199477837543927321606095793816024192447349480742908246349146762595889559422325402003638173697823270599346900526005221159823591343333126566502782073155166100043095704842624818976883603189404873715463156272971122449203157649624433619530496581126719712199493325260960918872749668061194558712019236900584451614761573844975915803399803185476216446981610732918955520217790681581919128459527330983489366549587435218861302049801040708533638169420606544870226255200330019516281529609469548677182087250787854609922563168649607684058083757401213773144501939185326238019331578655353527066234849606366437007992978295145644919835466440603890371341843878242662242347973649862245906622776435114555744366684434211719059397996577353388001565365623519244863554611101770324419340768693620575593878769323974740546282915871318181364312101477660991069219068609632321764330167471859816098105079680091055980708418278379517372176221348955347006670124945653440912935252456620396782109687191323629827027972479817458103088205326851788811349560484948753003554087197064700062508809934107729135981048390026254411024306016371313131823835913483217674543925891784358688012695267966114042373194830571412264656052129204971418531609945345675145226821560108609371631633330040520809624644845211133347457339737527899608280947395709076204364257868109859509775653090573155134002299670908685158071156716758393804522981618498643613823431814129576361477859316902253549509591109691748078311022808981582784591421187232065597044928003464666548950955136916970330267569917738650305190464117948622369967196038987320719303817830909625855848462921719096996179791967404947875590638882058970417710118515115614320744091503743559974864482448744563790536451117835681148112289356575684888284371961403983821808716432762803865031636041378276332989198962730044788241909224763373886988253819185982697125975856487209697822659498430159362874104064899841605160213938507625853280159239266614038896409886058696279919952247972301198670147728823281364576252953052385452704774670136665227337351269168288651532761637325401761578099735010386312981523336185272037809805312315936564871654984129935259376172714373913773900845919896986860739231425790756476058432258283888874563872109716531024596046073660546478903894107805406930321424641603229999721311772306001315784659416049783679841540068324764855098545214148428054320804441359191719635783685169943515800495895670850123767915306612952652351167802896550477647437809789202250137635843829291928954083623772739235081211291789425494782706111675729763908628080278855967631264735194833981972463826030049554730937888426729939352978687727216366120818248507104357175898775738603591649645761100508496687432187070705722733850157593919908148314710686748037772714542993904125403860803962869088115218701387138252246461949486913834476436838729043891226120949662125979107869568341722093165800964383334906068867482701736174910289169612606744190431903449682855061505012247029375872330620561278358263156468411475730183106930504289592829750161796536027862351638313776528967662864366575905619873714299927329000909754162743766788700525947269596521771854462209630716481402262443244079215078252958758167212281296298952846668391646813730068648287355854581034580937962890380636091154224535697280283950770324963618652764802758985245102463509221142707997079044948745732430165216051944369277470711618115983865292782079712722726133654316664638270634132263742651819843414031431755710313567693912711312900769732775824169380906277627286578213895549713175813135092374353433706946439209205952408991594721407486709559998770351663775971887480824725358210681900869239998301125443084877296752601635839702287398823825947596609679681111264736158757734075722784823503795924157502585627294132495725425568215327689010783067618334963712694543219025420700471461993473776604915482545327280287339286519377224035180165237986149843484780523778579382592095033726852142395623547430323017031604484101111258241950438521097970537204690420819206220731562057458425520510506743140680158342815800458781707717754075819254354647515192416131772458009776245568425672985698519450977674842744757202672295201171221402316863382540837703185387596378728663986290231419473611415150113433769085282498712065276144039765180696379941634690670985747324983845741858546635040060698471132091010880221677686525095412134002696281337537543577536537453132384127242192208531216795490519568296488230447066384046721804371156061867170790981376554023426801402769959373797888600754130988184952024047735414254924511174662197952765689299660305718698061125441788547117826720123011536045035219629528679296097567514916527921323683672964801565450999585786622975573722303628769370235905429481584618663770239210598514007787419087418814008687157101834000503532754751255027452234526108589361502609517702722820700750594752048865141841419178700813388906036143518945834361250687658723981828155830326340395275020121255252615139844176858251864724694793963820884760066430579901642762032534092546192939893584189318111630153028451278086040671214740462455777942021832318131858469934056140540401143522368951765426929416877283094849048969516778261999547447145326115566112227183965088946562624235559666851150389371769952290329934365553970372873029409175109444459227892670754708779124792186032472724163894578781538241340589615847033586351306016453369799267217370819485704437519311240178075624391049138794835887068880482701964902256473217733892135186199407648351461106631947827535282770525242783946321397128009036570633058476000577195960277994226272683271097255262229472085326348227948774334678214500443609105314866018659194326774654907002170467424294469714224975550681070111752318775152219498055774220218424205486624627020958151148016619059479615925738036650016188372786957660718544108289758667189985676931977057021088962511366951588425269090492720577004050758830861428766451158611735914209314515609816759813928064596148308300202673704070580862577154351650747433464857009331701994901023394453505292744822622091600335165566795816342314702502050638176294389152453310294519570927889557698093850422172825040225305743813826149029507846061543622698909407389071051257752524159440783061672514403555577739526822305911757131916846803115501800820219737229803262588168278857601970352891910498005489558082389877243136936851138788998176278752295929040320816544955797090981190044204692232302390115268545183519103917407932534644818242272112443378742497994964387740733606199873143691795701336025286656922575666922549213239975667319804351729849890060853276974435105514725669209529029838367124279900896743420300422947012532307930977034073803885548761358077939382407844719582175034074524448716518461212488442308806284620184986613690200863278370838633225580541245984797975068629323255592847640319505706112791017227599620636697937344373660058282763999757547227284327981839981834022287216274598737772218896145396150126574999511720905925866310196604310543880637971070582116432343028402142932977408288167053588986439110827282398107528212663271441487353749294967553548270881301180315096596402234374935919138201317716546112852960954933279804027129451600440890296136954766275644969607717396513096671219237718290724974693029072847694479708660930959164081936447277331584757943716731874261158683454315046674919683839181610864887552579772363479925306064955920739562027692476260228536463751812761875236019819993760733029704496423931679985215550675492793085242436278891594603768903210892294939808774449832804056360965241221761913872925346166363911493047394914761460739498277106184571767962852888176300713997337828953078709073258117816448178591787182365718741707025822711378304323612704431026617451339131278487402235489498530969511064326337535032143704660630470823691631230977725123531792119975317816357384977960476819449715707428251833451277860502000388851137052075557180689528863200024192840632480649478655251060284970373285199365486768903800431870306512808188853765897658819238048412803312705691773182302685109277578734820151568503502100996955463866258356717813853074351521881523938221876305066614191522189309836302935875483979398039428864562240905418535540112232304542549246937584136068109083514468975897535192249477402034787067310793554949111313655968721277061597220270498150823968324722785012810880288619825543227580547625956154153399198590154685440457555623086327922005347853105986008264860544193828018768258546286708983269198345638435489697228139298687942218396117290035269746956276919265205796772027462449650613160876040425951896397268727987145925580512912769012636121616619418601186480392778172021375598007679045291015759662592759590160367788189180194756909845344502039327572389685861299002847120595453916371930866216084384294347006922245859731448462686116664960386636690788909444659952808250139277146474141448737191118443467172677972506288863821240938432598263116085541783752490462543103289971218575296898766551861035169921292330803986796887445111035452706285964701798877751832246364107102980152840250008173468116302120686540323971558915301842724161570802343541802368390636631176801882181399812131279975971348714976831934596605787068451820307944721074701944604079634843062190670608903454146147611136971748316905185091506899147181904014408501324975313740776763805945044667789206532663665626859520611471838545081890265895262916017205267868370147626432780484326143287629484175137843982615776354849760799546366269411837794676368678956710997110085865814946280726793994844337691157262165483031110070804691533662619913589689738720851967967807353084567872195261259617445599453671115973024893793337242471536164737691694008155174134680123489314023015599202571293785358913426726213334576905494864798019663030234981178599275250867187975769247544100772650114204690907850018389089594628668820253286381760315822863295949698920715273859548873265375432198569691993909634906165945579308936396852265426530787461307723256684436875669828675760344723074396675206927213601602991927081452633823784815367043618738929385722264293891905693037969373407494564483873952041587963155496256036539303166620536068745817488362068876586781652319622766646581686322052401366751426709915835120137791611432983498251353295767282024512548695344386020280099465990241163049131943661526233869721948927665972436288031280180268232161542752767153645527093136324473316472510707592237988872737103195879495634739922408799193163213063214043943259679546658051668929403460597890355246246984411395922306384807699558755544465242816458395335284679141903450322415378481095128049473258730059235646149291485439738169619275409939644040938204794246130769550379621834126658280987531937480916715546969984675337551317700989728444655621269503803475640422135539896729766600173253149614324091808898015989913954019169749786608311915627639794170517728909445856297923999721000912734858248130711640420938165119415197665092984323329163209181979555455535718154789237711254124592409078950392387215183843191292240530026759932392479438543117007442267086565179668229213750166330948658671344548931676298461948431260301525442666926636610715230407351763937937979087752581822335445070377506476321214096450353279544580512922972797692496017681460903865191501362311725995963447090091385352594680155626097236272397780826455913472367027214360803149759480583610654963962580967482186877678851091235437476790946374217486749862930724783404790659431956856512261789068597282458167519610576759678656811941226866766058641968694854153351434443515838433324208450835209937469814138824986757007984774718608297108745615906151790169210519337400413075446836935626945075271999571366018878133173728896271557054007419306599262405863755953932497459857098431423184481400829956397624292175799751336612733661565041639949689545378015626633853017369082927673669561352962637722701820172268371753762271990228379701125921341710718683632709347436380767517061765606813562274859619885090653327312014597418985963550352442597657629869086720691928749995577955874970893566398294056457099299207324001734470888227562364915665808424131209396182250118280197839635763934115553913870471041417594835021691988181316421610495071725355281395769895767587129559275689928643831262657004897590264931461623885344956261791300290160621036097204240360936191694007130059021581334284091420948317344868618823829669557061106936608456925142453939912206453043348692485063196500746492046293748108720374531237243293338882927985410507116866482108310187445650986750003096089333244563113481103986860143510278473623987046497241144318103953565865495449734526755663983410493342870487175503911325504173578973114621502871933885559625298893944277596541683923174601965500861090216170983030966083566156849730449707065215732646491624119514786536361803518038215825599629448027245790192113167857670143470016089091526959146842439021648092932298119548848013030974563865089003464647041130086008359974649429221091579292548498994616521909690293065654204834848921699157969761508039133217691655653593906013367778197721957482541518822012918589476813679149279039957392196558333194483602050369914030781332897497373228773308068180974519507645163540136475511768485437666894902334833908828788836483871409602896969539188927234744056729799824734039503475929387555611731450898416372649171449783555544227698791172042812474123327291356807885296807085584446826347590657362051542742115308338960053148869322043630816573176195838450553159772977285869848658672556268945657528223010625477445650985610629672593852186218516091023009537151441839576313412192493665697074538315027219164177663252904304953087604767468280313045890402070542774059866942737218815385601403244059747995309607532613459438797563607646134220193960851221005370362086245033489767021514556216710032823092371343536855564267134719849930175288931883529341342630875560397455044117684714764338716470305076493945457769585025555783125554722964885514088403053102538866407940034028371994415784858305474943827282895079209660098168279309486902520623997581711135724239520018703688131113297101819796795464794864732369302734288291363591892508765674116766089310927633248129509468755838716339334623097225464688808157483821391966277538074470178560767366643840371616969657199432691375341086625096766130295055348492696383109026606137804078949503980751107809155007835848871737413023240511608442662753380276844878131762421040879488251937246732337813761974631015295991952745757788343193719047635887994024610686214541487561194645869986005570085156293239897642003431520788942454925753160720368165095329295053713743245185422393602840083475013299679677033723264466126909716708179321683287120920108601985768369742115644819620578404126268324994225996541383321044659762113728985737426770117870087941602437688648746856200382546000664450573875687532642621839373129135449151160405190317324388891100326728436682464465312385707054046701671095616961658450615192783369505292965420788408204856212205662622141680981695947603722380942516761452026133437808921086087434465678944962338728948280928426388794901941762434305850343398107705325957887473175761749060702768877439239148379655878717101361651510132354824010666251176492937874652579338469151595191880501979254325529806346540346821932118573867661411598481751411396311262776040418824398387809739623860666901327099474059908193271505083654236356413913755341239434386633479459247799102897309865833361037487583950634327630337801561889344845945161351308101844017191091809988582916792107736838570657779296587020916409635641121123496812416893648116276270865013761760077263436633444218719047003870058942898257343900301939715589499482486247182840683398944175509974628305053370790994915460414162769746253738166617041661794339928288149451661283960240597339895454554487642348239325369241809144082334059915161790860938011250082730900275152908741182329342304413425581107947309954876940311495854347671286782233346251619985438649583188966676401888876695281857550099749621096348735599725812160399481671856931300775822549273464771289102016485708159732875507594598571856872875949917880842732208318853383168948052217848250554263339004565806976202025069121098223186184761043446959763760478937593277860662937648144286304596194232907375520700157941794981637879320542444280940338537422627845880288417072983621323764136590110677309954707013540484381083776013984391705901885426372597305954668732048324988308231794216400831861914179310061140608298683565908212791633048938936872567410658069003296895346059343804914520718959705663055143410607130907001774816748318177032131759223001529840292793653079354597691897288994846789271292682060681338457225008577631908349952114974585712470781134049635596883723733074359879069375641185751379622184045921752653594757148730193075111714801706253876920878977178360240042432235342907605264563920801843605798388700945298882634903000701901592422199111298657790565333890868521868863093129813861777780079912560762465157378326703305368170537057202997445596420669230761424306096189483578447004320828928573633980592993142425054443265360676940139345684356432491098029271902328225925620331481521789311609816938264054458274163353585501090418718404997637302054334970018412732396277175695183886453107871208623045258861662979185456392228966891491201593609924764368412133621602278410059091631567071103843218144574508066885865742913174946150172849864131838285497918996746388651130659046013148396578080253275171325338251541833920427726540150082822128253828936559270263567028609527694301350405437833034773859975300188226913467773721237363522132837155592616547228534102556478466920128756212754045798881087924510936900894588965313415196601099631839102945571731236347243467294779312588637551582545548140744455157730274622858901431461475835418700607685964490312234868653068038293125290019840733606554226489034370804230860758927120748957478853909129773070387993125700213549995743396960646819855086224734445142082933643815879860826670006286831466976451324000251577434845990485258998252350663101115857234556140113072475604667051935132128946593108715613462120736552788283874265579655059686356210776716732270236702176466807840116461317032455526882889072287810135345050257359683678435891441245077927902687518013055394541819552105625675472575089320176271194222901155915776658557720076478344731156622007884438055130794824017343447816985425076375087798487221367313919223529610321032945202104149018538010330630047158880698335946690458915280478606207337149106473661527953276132291024449649998162219805957557227233267717743949404542316592701741076804846705907074846943422150451803712615935163458638604441827748295335807967051892591547540304973685621972710544150428651012436431075174377388374888163503103524221576481109608537431158709801419660885167902578630429434759259636317286432084557911891129421244270930263073576499561063714065094274984547324148303670084522672289723550847111910974567820257405092910680081654602246370410794804097553507391473542559188165575894722203350078173921955026935769688366629794566746911479993552682613308291962710627987176000804310268093114928160749939776333011911703989744558573212977552277050810035958405508166182167123236132842708551599637174512232513700278098428095052286031898806489318403427896181445828374142876221682818225208696296415928750272044097780680396518069050715877373247488318482952088119813084256725766434201012598990797969122645224686301131805854825331466836379955060220088047250691661546835191550395985152927270608464018234274847675733533387391737479635838540362940363852817647170262227052236667655483413816852180495256183354704269580670936224284938032283418196241636311490695556999162213732127359429744700584642173446049142898524300839734933018158850657013921309911487824044604818690227748486706015141971715204979360033693336344575835067119650387762643639302259985528708724588736090720631303747496695012265192049993292682830406158814252545962045285345017585379383637802818641712850187419978755091410538140035494854351747262330373286468756765708737064611739448243672712913772692121651054049963365208658786375108285240631865742217272326096010037356042721956887503703947496925030168243520904258145123393908297253170170732519906668702782114859808934057725953261099359933490025911599138391245811531810403659894969945596908747503643053660837767213037909692458146882570355888213230417497386768613824939339978556388213494406921469616830045012435241816446162502187712971940586323294968169662882816400319636123765844360807832489613520938516248140902174444368702935222280018867450094079733593730178750363121596064331396456998243097589164689006137897383647464161152574676965430770604550846062118502134719482329717131926468644047357096180615385256301573324320293173330939764832152429429063113471220613725844154794181498289316798247701859354787835199048650555994940657406122736081611186223593882061881014147804518685851435893253473780029692130779434252135574929820719579979332767572207086875458352087000862881790694083189257837919286278017546808043377648522829586645897088680590326638558917352177323762725435396780623750954128074457768487285996915149572722917036179110682141078038439113488377793370710771872754794647995709213722865600535873805296439657266340637928885497396405098319502412771031131322564341399405791448556859466386496447686706186284702517278819702354499467346396604664744203758376933555040510832403910725101368190071694519582859024618251214281129094733604826318594693192589833570627795468493463812445964635229208461644820940451794756235471946133344397695881693738576288069639245125621644040401672833785974309131715312556829891937502236421079320153031934026738473867760780587420124700718310452749268315211437700995573533200589314083627137547020140595411396883866861748627883207108854375307790439076144993557498083207654684068716419206736998112658165253075958217697792537120754893279093445531828377854338112914161308312414353964291290009679224943065425599904860108065562108601353012781015583088711884304839118730220082557809705332993308808247366452640858091120954913722072202024342295313960844791623540791130992667330056012725799413729079858076644733326477786788627330315807264442809072436801050918403519611865854900398094143997596625623457477720903098956073365623686699608741638891403278581511183323493154559780374928313023086126895909521665111128224988973670669967698921352281778493310425487390545956399224190326423506925183156674113395745591483438633494370264527174179392247951565254134763830602756930876735516944824355065796845760644120668694146056769014396003940111658155523847872962132722897189484756437563038194211772839089170614762178844397057276466198978762226174501476544714225672298871740245089784238214854365661520671714400481195134387238799381775933859887672133382289418504659494335573663078431611391244766845456155272786336128094372021519921345046338263085201517353413279016546441797565469307632469354547880135319237549700613315700936272250186204205004383171611244833817381914735789993246682488818180927191731302705933271337990430766482349648276865537464647955916758063326063129816914899024275728678218131029887730459859489405812859296504909300591011988080056063196328193337267146875091072746874805592470539411076655337432686080802765735848071691903157395496395579704930063752779608107102298971930276680624085287293712341088545066265147834544537524613444163923611044399131495402754663590849785244843882773790185355175878498977812506214577919394923821207214616604438520318815632892321207083110301998262862420876605612708755318258393488693196379780679399847556079373661780804757320463892799558365590046800867558727237075331819914585735191662345619321951510572402467522044963617511872824671841923982340601549579599634939510359081627737816259573766973541268557569143944191757976860379118896453731834175477672834809733415259166295778515964858112132053015441698389038130271531716221016412150765315360669402278049134325536417657430158086632257696296602276669120678497031242098870766301170124644423031914595453439364068474279914400878945486928229202146500979006724542894206715245612919929539675565340974925193302326735045140978487696323771931537123199879836474636078383570954798297566448230284752859142218282861240126140796079701011124741682031063303888825055169292025607145092454726895843108332885536018949216969384361969085145193688710681879484290158445939644298834404479387316107260098949149798085780142838068029270341863075477226022249289950098229385802539241979895367065312873071521860066115358878037109471015663843962229119275539972452466386409415392531518157297972247614687135128882505344065812752787262667143360161190077684297525878277689930471977702351915054177680859052110007926958000476157539726984796613099220419571525356252142235993013327705107740966702242950892101571227803874548323591906163560687397515277420584673417432420625209089067127821922139096274852736890195966967759843586585901683689210355018328445057398324149621232131639977671480335687947891657094988503159659820880643895507920412502057606318830741985979835268004969912640138077518224341628784610615092324332113089519868705949633428231724300516480747928594221305749257271487592773240934581034503097781995821981496808351658977359555265243081060300764007721752988835270092874394436519586180266372711755235850402160545286066957622828699281268735708138888124716621236634440869217719216004020266289148731356712639455817686076793697051505864502602052427404425566098511315308312507092348247257724164986899973736790174912827532681109179757241893390989509323918178191142686671519037439728692819698413035779748882135873457785368250279555244962784812118288728754164803098041088482156325432064101410028188249404094066082709538728530664765496299566214422287780061209895411117082775004806268684007631536959960500644185765732530037854719069397424135883527616567327372792748112922608287317518148903534695029053150809157058868255685512687337527323918660955287895911870538939493877196064648002848000274904657620937103774714347707891315343369568473281029360354330667490510969346372737892137089408973472017461015108246856464339938864107182674396955861943713555673594722612754514093043990861355964777866179111258596264646805059547994791088500824178354690056567006698338923341436650208537206364352421951374556501892473932319681528725600746183287250084104016617310688072544173076940976420946460024409082844923890548769047670278753411834471267323298931592384540705380092725498082716840487783423296081389953225462163640523508033933347152071282634528355528912585751054096105775206315024096841342833157865653499690216364164895811615967534036309824524048208635483582222846097796674107321076350488500918384152412791803787784490859373181528086637692169642920703432802468810737651809877918829434534536888984841375233567471537511737446422080028827620881232575941994903173490689313971024302247502789706684940839618851231514010171231137706304561899786602594800730045488167862556945711435225448802466443410321751452594128649514529053378281097185167969199805740830293485723970274392867747570240127628265943459228916294522193786082866486830632524860816030628123056234727103775088692273829377162462328639770281540679967667838627360389584425251363556712613120705632763334118657576252457429738367052870745389499427045472972223177714756578755882148835517908205241065914655048820580510165713448529781128678886374489181933454760666220283237150226831104977935782764334596600980311346090640211309962204170513255662584281261275059718547261105330529044903200049995683661701539311438629607237579827370940907313769675278338770527496476394792340188382593066545802215742023405138583133029556282393764288550040195711402105942695534557090996323364359594369641040986057127429697994471548005889430744160859554634316902372312918540837531156358522892134936570095481357453495537819866474038618290043764374799536797247088275761828713552628489994599892949527317529823681502628903718218340241119099651844175500056918370270787230078452099383773457954635216055410787593588184268695543084002378736083818495450660425124980937937372925291789314802129679611351932475645724714789443376346901001807926838602072187739599244977595768150640952775223361443213489187093042807444381310072456757090323414501741739567729454120596891449419070107161374970438984706228418176755083327594380583513359524173926742316788053781860162856812760208191976469097920758183379284283596136884114434252187438607572331385863226399830231628124792551483137719343121204169318745244162675757273988765684222001098109966572951598594633033534240764111832797571843097598980405349500600735028078398841924799049691380197967073672123437073770876285746524613146453242286311963263299531499512212019149308435405077499944865884612859790225061894446631267461879627157958879820674380261035597322236640357217746707828446077210897707573568137633048009989518052563117989229082984770871904411200446129251431527548891204269220620970737429846142112860878515243933974660806715333696140180378873281826522491173423874560957873711417769352036341323111205544441276872353092351964900033197052519388766223606439991042320429611253284440903584554648299206130686314408139060500777407831828539364722248149645866776690394884699515557518447553694173753457715104657630940819570536954300020313111985300597690023139272925069732142101878550622773547344491300975232001932285319683887345684040760859432899395692310166540812546631080507105128128388300941516646814052727377754645343098656497490159883228006841995872556570637883822739032010056297803767778430978250508190624428643101347847717863147640224840944443188665660019755321415402693528100635463768612759779693901227122659379607520373707421736175438808642988458074037843755342192073546776357365090733084974528865396222335482816985170179441090221342990802843407581747133031705662425149123851405285348482239905535484553875543886867098674959482373443352802012165318616283947289574342930874760712641447506370879955599007261309576504362963278971865376365037675664098994192026180744328813169510086752988098756840439651614579449264562666396448190146182753125498852700527676662626196517383094545761762072287044321109531235562272521085064241503687435372052299918417262992723428619451443522844239457070789024684382198494594819005535789526840969575364211231782834473596292703419320886397640256605462401449767861896776477404778071806241513154640977933031378488575160505750979410641516772398189211965937491417786291633987458446386784857307724943832470205107141622800374105104044634063738535703442348327769628250220111952631356238243368939605542600635693332460187677478569594810959359060856469085080288458540506834905390965818859008824305850093244859744453634248121507134436580686606609440959568173564301986759377322540679566541364152574053373400027461431371792381389659959318996610435848857305017569009886353874297655639902372452161673092353771474721017635660874366439231951620792568515925986106669661401087783489301230639774464929691092842196564285194970711256244855869972715436844693317480402239246122952408964962686510077146873399771722249130066406526433994582339446032441053406566036962255812918088999760982015755917201303449159655167768805269210138613535573111385002955039934174419376121657059862098285962280580002659241141334761785046087347228578201609544155351497971760955371067800839908168850732737886430870633207036234225094013674035713400021918234048664677825958247752641694331009854224510598160139322261001129148552853439165578900350895844842103015753490888921410669697022822020440352813962455265956423880078241981795116957429722707026042013698214261104883459591358650399226402366362391990136843506904956975871916236001358110439865747158770976143310078254871041595647366886237698620644745329644800852522847535253945594422745278520271836420915854838964664767146984910236267257655582861713582302085943303094228998933466670244285246940334550583246282407344414186294313095421286044075422284380955527786435649049088346594047368102865581584942991203298663811671250038760020669176954230312651918925529651535743537822400425594218357077259811126996943575671887532066627404067836780678563555152415410708968383903314882728557085556665988191155102620246032206955771374665074270792954159052348983661418515527012980806797092204950733788109172452632233573759679074816813181857452170504948083582152055457365963483007459022312449198903679979551497729720362479696608827604176914520180086531255652885827982431254140945832540833134513040962606779511928723955426971244035336537800258103825764945774100769840566165540372481378759977954287219390476190667647922131481126469908285785739770653881102140012801631631875123702424262483426888809962817358979698214040901092747435518625452366140751366423573088286594396178259672753916594480123024473023997498628919414735799661930570285709840656594298456784405918355740699342650235347269736538478679405703156966281599909485888157197421594863109785859917460488640526383053535325756589121508965291174251567408781672754306761623496139623957355372704185926645385341616438079713828423342843834321688556663804268282421679617818488260651192870879171629575461702460613260295317935418902245709019735022616866095506593989597210448397078476486869244783405685938675250777048239503211201004430088407529717988976009840931349934455742897028186418120844466208108001664776922677759378235739180916575860676866507329696545413469270458717382271344208783010522688698443223007312915879587997363388157189577477706300127512878823578320064304316205534389253958928433650452338924247617596141572889829675248674958847294877258255687205906026373950849488951384668587253618678066842389496073390631651696907919365046917811807804304930475549782416508870707908402860099894762591753309584289778875257684202606321065427290652181021665828481033518776259485220464585286552329366258856306536076172872423345552281536547218729735278030533614332412570755866335362482571965723814044715873870913200549156764335505491144347362498033099661066515494527791019171973426365167220682858585140033299211470659182607472388066156023853585883917955451594469684410170995020811589079723164535815572540539031844061383232198595326623409253898546182498554092458717337066130190822427511076349349593125070328065560755241294146796032493470782921606649132464316179032973697017517185578597259864518180338139974519989469711988916844587457642945442800710851878757430442831662668203722494856493360730681131066596273967764773228850047826710675523465172774432024203205507827413428686816425555573965865135543852605307818064628509455376618321714534194629452989127661465251253510690160510539550206535274858580183979769463063706832318829910910460027805697708251999422280759190686078183994673741254998231820151769218443877294380669359218583528281923166602320669294154790813953734295024977191910162558701597158084023633194626556936880857100293358663321481447347813911824880212656577672004301956298303813290109888446646559087728352866837015335628201630568230698765927774752596276244896602591194946260653066219806198724957010255673322654821497855428616630337598971605342474101735024959180953388725986589467195835752667899832763987434362937005710862433612705062649593381881060294304868274214942879869946484705103961665900163528403515066038459985307731188502709149026424809153525349533528760828882354430692397978270855768361814701739044432247507735827966535060566107700380679083985224187279687406188325150313494811928945717060018423913526888913250380586616650878382863451984269136949426301615537454911883869149588357439824368880353512223627428651203743865111320920677446753911535781605790564296138760480103661066956040950925256685794571996644317472718690564170035381642477253014979876804611499206575351540358888786259217297773942361839022988876375614373897148090181484545908971572563557088722142976251011599629914057781097948470307645153616111781711873661824930150749464206630442293226297279641344104813768162902963313149596705704505127916483123888815343444822170482583806344198272140300507754795510855495473234162440132954170190041687559335609924193640519599963590544083618278719134398411893692823642976021525091830713063945983157498627099463921806958326445596731999490578485349287986312559723519438807356761525101049990745190543666238197172223801991183065229192347710060975965095637837534258542294102310963293013930282861115991072217557049689027600932850709057714482815371291182031148240195149294017957482728762813175034576433844234613363592357687027182803634517966980955620899835107942682905033219535332253584056437201629443902314717049334679879017731108286966261960266110985979474183806714771321976657673116906017983805569376604052488841113932928834780526713177965439270356978235071763277816916130524632931853356584520845816080891540839093892699251760154667103837582847569248607919114855906655538000772622408209084010741856688703634380077119716169448179211238537338482612639596706569528388310418982889552802307099901227369181946367287064550504567094564315506261723800850912088480764551544310825983056879291588050587372858936517127598925199046495704510086998910387571158089302974077823124413623824713241800141676851090199045545729878183498745400425133326862099361352461641968889404878695499355019509887281274883995834930581944436184357946951956094126392143376624570507384899440657968792704923189405978075227015441581826955743414224506073836428566322021784903542499747408267875666604249844093540936694267708139195475737558913223465766275561610482820532910128351911037388007416596249176081458009106786442414777885638795527731260017943204538179539281553608606421820920531748756103761945401689391681868098111217218198442560876109784453013258433396680270448166501251062928688125868293031357828539721818281284172287341615825028667142041871735874561135627886841801638651908666356528761186837916503485706919329765569033734659903873911305264852140694575481942007043542292365816433694239879580506857833441413120586325847456658765813483073325660862907298472146658906910934627747340899440317031779793364115059030056195809958881242805232519489086042284832795719371733620229123034535365996165068081014915143091749514744639705697709510424537157057402580837192667936389136786957736628757999257895371184234763743139762684517399269016639395801880488227706959195890718926628230522690478690624374605903427423740433435299221949132845422103131797945183743584392146299842579246695951794595523222352284951559409630614079790695633645589559839978127226991249508696434201962154791381432959015176426125597830907433752614851870277508325111956507111952876601349799291748598548722575482851864377521071513019966020571331466028307292877154738483114476092022641853983833623362067135806601456710569345891335409399149187542569695453341812064034343852783212862140885273612055243580718685600153544612279801276427982370014668814042646532678940508565877526074462350164667714009763259342750721569566267146205913263657715436966372052872183812082256595098723650856356411421546904273807491487650588769009385083835020400095815899852105896432614154900954440140069597894049219565339315493568550967435406368695575290802270923301188927897626773488373416721739818067411697417137698138892645783179485582951965239843848342817193480673259249928137373444365983085532133838956444881666873759657622455881965482709528870078861671514224847380117611833461208862789670709204555214065228910715249415704561560566598998703623336309591534575226090408565079791681063736542124142401087432248745381856495067944930652199145665848563126812481566835627359427118415754069304376980535606581424689952931042891867054717749070267308454652848164128361571307130616403504085281963835285250951010466918641349974432216894583119438237029028873437542608131644692871025709239587575950067266665308588960651667954801755579944587884854502322041794630267743599383752578601542915334469097046132553429871267060449171381083107353478320434514993890189923857020448424577328513066411420102480565397294773115618788219403313782835163622074898288363453852846740556303470239922204583248510517632477683512629361820512576440936950595396648988258487019446225306795248474674363815380995841307760214948465566108717339974412572057598272831082864108912477388285657507308845976246132922895500167749655305746609596186486138050496642267365607976533219229883630000032942945581365116027133712014422970473327839066846888914996385016079469974603983887745601428590024815502892744579199471366759803455809208283288086073612513450655988732011740516473302944948325678558197717694011710827770823330990374536629583572434318399662516736997709313458743417704006704434573992712867034251083795486984420271889437721643195266284590450367328919538441602087679922221158940794927837536731084496951336497140158106002868152456831303274798214977668190434490194584293432969205785934451424905574897482121637079466401860991870594105642806668127049458232257344544392819940236358959597041625282604527647965767255679469431394311878668188560734119330404010106773276239931930208950089912240632361344653080584539764868187208640847287270266703704622344379733532737343712493782338377488752993907344610849153306885084152580036433449034555386308687401167036394733280466256023643832393010072100105531638339818981582752045777854476767596015873537185110829028629862559329611045342414994845870966647449434387813893065745618059499500940512806207853248678155214961098595242869974190607329532472647297659479493921656770242080137216383056796480988605134979047759096632157937851270201134909360421541644356627394596525152338800496486437898347008865170295908445992970380674160295799642543529061795858768729172316679100161410633668578920725571575030353123035448252865467050582927440527427499201790690279716457116055252055750036924006494709449375186902010459528804686736928546940027589773423365556970359876377080401292421443748779295882708039354977622074005052272643545417669916517122069288300974789267104850555770024635549283175017259757413432611874052473002533256880717677365269965461774844357604897752576460397789503288634088628224914167387001235508431033486924006619483036574006230874428346265605355759939615771041046462251603034598564730684380648955737790244491964039022201914847909616782717188949385499748185967277612194148328681258765324623073958647379430801037207182709767032999806587361299748856462191854987941665675473481991717552861609628715220907235612498357409045461772050341099043733071512610729665143990270794368722630000075148361254312748784499330134312469390758105049788044955733687997074559162192926282742162943970018800865112070931586780108443168984939988252193864982324193017332049398839659792185873157887263842731901056493702559318858904828184233346403193263086786450460642925807003602317342652481219319946670234119441849209975371324977352071839831039074019993555288679306204729967097128372598788734416148387422060420795910715792439031246523772781780131034845104825434039168118370666834900947548738829056739370988022079977999974042077446639319268394968397839238884470389772273743242480127479362985099527060707319035310934343415927276382329328733754896643184663940052905397539291482211670697203247487952838017840114769077819564991522636830871116527957882363604897702360151215607014258594174896508450052584583767718721836850493952728565847589954039488542949147059634892218279420160819171860305122404142429503565051751701635708526970980699884702498535044187578942679904914267194102134755497563841184586740888401448715942619983771173751440541461675951061611815350722047826059637661675976041088757289974199048250549769396151013540376443452532286193393468779487672483897240198084705207103588078741322499979984317359213441948710940423272291408166017932111399927348629456972989714417465903365677706524800334139527962147075026012869315404065504576387836886604016007414316098293889107236880568406426180286302566972275040725584406166267267199848046191221153509039783846182229216528997229683895293524131179228054593578143257020826777517235727821324818577925249639882975630573249322202150722474863208135953739929669143221551509783029981405586455826074268695785720129456825190284486910502583961648866924673403242373337501846447086337196980954769268048913774875696224432088324702153514001444265969158606121309384314241019547208710204505820698943236767338354593527301851510963036116792771968770256671337908627338272316267436656686091891471505570344998994068398367543664013697455598818419929950263896300315029800840255345105246912657987925099694906718441490522602215904396845914321948967910841091845562857892143390264129214245317385666295149317829910907546050064298958985550989849521822770328970921468790540432991105526356748017999851999726915981535078269133087891225538018270562781927124405469385759644336702308004857461181641980691038733971731203604850114431716182217428089527547169335872133806551542115540907129694339864097464275254446024305998358035754482255838071943336065867635925289493340090023162651173469130441585842080609693489259207403758297943362814726822400253939141028659367680882141669951217670281422067254881353996109811626588765980816611281217650581483589393400025004835740840948857044094601134102114504069559104592036422645272741967484870512522925713739370769870604732111181137434144684050592471638984440318962272638391946739950337874197739838078390749234626631138820583811834717332757866160935801644428635720976804625491200497428268340933221487183315465634633404289298894742898058160508397365166586157167820281508912200803545951373540970234333009697997847441784205753292066040654944698656578872693762577229620978241445307144481982273764440887993278238278314218901617887570533227462547323424871351055160755953702062093223521459462952052781793334080978941723251934590633015208424556549064897027108753888470735776196943323876115249226349492553028941981988320099358176298096487107247235572530630356983974575800244154122289708289571566046520688644633479608512596323327372124750205226234977866311150299964764515216789256936035192616241339071705107882496908886598362742851954850242803986360059753617840665018814564985103401333413241713426387795736250860510362667391812245113479069305583095928942528335935373853429663525541578516594259077594231506322108190194366305416786811488110509769667509613606437247892359408085855566298468216012711002241666899536209405909642104016950146572720678712657665155451125662287425032938754572212448324495253665048586350495594676926050365506393369400472183011445833035117365484564090354935067869188261781242577335933985054868269329508240276602415534632249825903744063068268071511648243682295461436357645875246368826165065547498564973152476861550038940875200642742558493460499148166130825584937125496610092016237090727178595830992656611292621627054750611305989931367883496149883271319807753979828076925661793619948912288663958934991532573660525035004404158923737481650570987864459281575322186390378412266655403824111839693578045817901071090119876804626830728701215297008513457677333637343379346418295551186203005581069268016512543983435912200135602509083585950936802185848311637695579855662653472286471551923941955070707647764804080166074338292850291112217656033342451356844250400443983894307621662479077602437735051707035255731049162343461445564941291167977114231476493690032967746422140420100463324392594702702966251344809952876074030551068107217753557291430808763632313149338411153885508157202156975918333781565872239454942111763879191348147084413970319684619359280980486527270767202471052936670013003442344859822039943380887654492398167893754991780842593391645464121269464355329139096749460732667669292866575287129892935575511066354239113358344593994304755522328960349390378294761023460834185893038017532584047914376528511952089167079799232046222925907148582797804352915169577187203497682040825238390977879511064555285417893806103236149366556065168077338119253751078692205905200987948164859905453152128337003249982727983868096422942204999991538709861788309504980144077361053775188474409959653888634632449212516752192872936281538322423309265476334956724432291476513087225848430279066856116252109463758593277214716779529586142992153403477907470568177569629108904241715140035411987919385903744867408922400941657457421443697615881121565136617216907401868940529921494816912959207336295972866009591231523756037949245177086525801136082172658685471705144818106732241764067005542863057727311103585104259388080783601291811514427682365019190713187351927327825045763813552398688380871133537381652947617390822070993819326988335712583055001203810500634466659941318778577773984269505052748756024274888893453056517988996958635141048521338036599209845983440387533041582657687677497428980019646913352262819385689979340294429770163855512086868973696098246856095122486400304635425074681965742498145366024604764483568578419746719799383087917351370998097518875638255994115718807000148337040024581837770393059895845044543375990674300024113082825148763409762180903930774163206667095721539200776883260285050251703597168574374647205307156577859562761738124521268396964565991898890637914188199265793781567712609606762758930669439897297945043111029293207850122298638592932398225870642197417151557721407677591905071551471941334191995515949939475264014888866455587657493516710994980979184065033007306445755762042472238364260660687890886409035728459722875497739482671385328204172075326386170351672475912210649076472426258244248169723556537644857618767598622789405982479607226099272438406655516446238731317666902692502205253171123457462967202458659847347911055337267339199302103193605403580318883634022174487547619686009638770589528215449208447923772643673589681819224403944273507626757908382937148815330308700602889415088586200217687518384884333138225439368464381263743220165367453108490601499309711908932379292802449842035308345835452441356423553220908890050801658858695191678549346021315912210404498853579120149639060222228252791576520402415757477649313596497281208569379026531654493393665854858240126398758971903419342251183251370611232959187810747905908371279694184997654581755965598687220124861792007710900755853181150088904187556378815548483284811930347621042199158217509001987055215768405517337866146477609070297891342397370547095004156851570210957308361728029584921137274360281889469070079598441889077249229178289909803686589437173088136687995988465397361656633006891918677339670997530320295508044531513879777609617901579358012736561068378619316967962508424799487840227245242361389688304203831983704926594899840587210287530349020847795787166052040290358221890549488745029857817276496255709212023290121133024446213635656254076149647262193385782430356981935294419017587870811082949255388806535204613068013197726879603557125298596028299911951690779977390579771173963262371487918936469334670369018453289123420439583473273999020789616217839819929513635051423669089037847158707105984867697603187800610236544828127873213212281820438868571358156056718676436798275697765247796486743401781199469982501148582671417126668715157255536524845044446601658071212516069266538765436743993400971820681912807600809140867677542583768419638693695308678183265360962776777702525039932490866436915329177458245246237097495506622794532962681159994158435358212375524280959728324277196894279149437052207602535257598395767318696200495072367347986825689067168244404501591656344921220630710759990343352693647136555201540296786789364602710110147415419600451259603243698569548974263694576148500497159997807088354908046366559266561271369046580590421609216068197913705353706854606067318279896675927538050430441831377499072558448210647959509695728536180087917558436165090749174554892907710797362069317620482387575819044711888498559327774803066398943041674780546619759237548009701962914867936826901558181940821504808812019977745903288972698404485110278197185724759126481126411327806823537723203257683379964942564173230810535773940049548290640723649118622890922156488061067392808727307986602820996157867887172224513621893043435266004580915382138767220640156260503869612002235465673567986407505763799990441199239682249093227025155982087334558392827086452187114858283381969234254397767608538054547649057833734514828206913280235341547344653210183085635394939517947039820149432307912237747115148756326704504898268893719342288577882940987736390782752839435195960999218940215602328483548076385723206381824034025580610668807398399189115707018166897322934242176482343635943236993821510390313410105282120010606288829992957388386949728210584813772580063653884696261105297035914573048837108651139203551844313278604915748584353359169851718965411347859689260174512386825434232275618772832779644799126527355589499285146807804803750809342616309138357927929819319828582241792950868831490718435106636922648742103516108984427340697458359119767257631358711023357302536729489393444945596843476434499961534195704353798049017761331257726931305999680084161776429766925420332917831715961095880420880247584556324433873036290648625852046948876102706406867724010807685366644564609022222243674542519389334523449356716764440811143969936414009268045294080766252525865082734726712313537311625490267310291147265014903188305194612456387010693165740251416005600136726339907527801175033061120465276678726453519508049972650228592389802210876249648521456054238273366460244050588215832955886284592312119949972179210095019511836605123135069493030203840809129899453284449545431727507526715575017108492028940718211307946108924504207907929095633616219597209929572238353080756736303399776723040315954181966345646294958114787377364556838039524802758481368064042502241943184761569476530164304828729766458432790506854230062678412377108815840919968704695955948518450360491173142097653377104974414072461540291163574808958278107660897115185124948342228748201255591901426308825210888736498745935952431645832871050803839098410313043698993040077788730953607657675173145155490119140497102126351219504436212364410430804476441312383386491230706535126618393698542062415982661700464275216766006860176114518063312312466157712742225260271640484843759257518347960015743332310797280161337090108801510678744192282394339191199950087210406847818559380716410801857494098108295805921407812133321850047873110867689472652943573276884010648759990485334515100009139970433884251501973129832949682058055156838714244194112888202980310208094694048105736798604113013987924908527593563997697212051992454940712407186236784034271683083317647260429552102836628999732459622850819640860368031210743424228946054771288699937538347086152549149296250514346945711769559403739651014975813154291996196356835919014608687285667423228208260100733104426578078742229767811518426648923493513716355960010097551543777865112897799808261211213376577795941188473485421482684913329035651480500245819961576272143080827455556991443637921404209087461528433239795367507814921803532110533202907662810159177140655395237164850947478970058566896813971250437451527743740259506043712802311277404595873390235339558886108585265479906477670525126061001561179491969584010459578728033727639527171845303836800747795065482727189405422518323867561141884156714144500088384598578276810850117360435634621730824000817386940525270269089610818146052706562068401908694297421418590312281849545953271708931577373763619556336176731270305453919945361512884939236313140788270094697937558351252583084625009689576794895652777552421774366286054511489692054816085203943308172181020501001065909716969556157886147810296284281095169148675632106884729114193656796918304041701961913440088075889950251353798997701946384999958401731944571584815712185048839580068120826778082935171416789214703179088802762423096473137095984888815282470370157043638564242389754481506950171992659876775892317651713448584088725430429223085763452424165332302111378460871940868562247605665883782783611930220545884911333853420205077758118433152516225522283700803830338267341328692837802684930862064081723113531368723065372083940729724340110133291470838374390423930639458445137257085888798309845122360318228597266478221772899366919837415144089010795755517730451429639023901212191955717125224403844989669718854433945128239406866945249500065010590213566880834142454532951488603014181591603273038913745344290790201964275935091904631091233710246322418934932396938477655133790489392577467333845893206270120277335260499686516998824748921065974046190506743392528889120981330392202951516620660739889872495767493844810539220396658457164676350739729572220569685299866640132235913524751002334021976470480460304459071766200293208512053791126160551654564992086757517793233112075371861587295446346359202136601948065313422680799783334432673865246173236811595949306925399713638810339950298156392228738017106996043607966641845740559238674166197676768793731190085149950768891425346309351303966966794158059571669972405098882828763163073755505086183140058834957536563842006624463686509838087710010618735494086891406479757851453832734701894611746151367676591752969133645610156545687827415530993760454775083319262231301726915874142246095423116680641859204142867904638269797866591190270650452427500023332364101442020493838392740617929145618292757465778103309543708168048774197436048486167658655901426741990203841038068381866138552110866852228022420404154382317395276499005540498244036423652086906014168275258245387684157697540632161478362207682490815633223335048729731191119521392304450612221045915410289330316823727973530471213135395295280093607867977096470786804708458594793583312674069022308141276786537274759270486695196454388212048641025301498745937064888376779433717958980977507151402492531642984564005292928049944089387308958000912202139019633685509607854595743772134744348078259022632922673647958298839448896132822802048661004163071974567553154593577645034149023674806023003585544979853440518548617480943346967101399816436016279273969376744419687288263171701386857358856055860333072823363206457353383492293831131022582314834318474901597758283018404752891159297490396144376390906146792240770608915590237067051800185435726778287598630466535529265201291153721832468699701956676221537821731867774673130176329708760295842899849557028412919733791409343119245000076016305163706802297076072338879158747306596000805419118763291342958832156762811977651574809757065694101714246809594371071422273265363611976298569910242607128485497927483301748046343414370244756960135386835915117861679068770172154371025390209303124424670088096767109584468119775033421408649278769386161000955179915201206232042697806470259364011520028848559456878071277131492153302358794697943877611712097361967660527500472087282329220722127442195169082953027361841236096857074836277703760213234053985463898150546396671818259654358920060137171468733182426968513534492960263714571327655892088615182769991354052811749777947937605284080685698419600404872910233449285841918524879812441120016138832904562078405003324839821889564083593396198485912948890367332034703293597431836794088000200399700916086634600175246585215473520827550116006952486345987385574623151011719608451843375403658936145021634646120261115170132101644132171458805637383486065338278671055334084113002963224068892766391176777113406845849806527556331099467584823893386680760174621582409828544304655818597606183476262893562806765816677116278477780160730959783669749209202743034053057290985237190037938087033653915802112127601249553589633534722852609135735820466684568535453781984993773862039562699910143593619858553784864892386639121126201125481228514153615071460450459532183684062346137436086457964187907733075783303561703974796492921799507801204591534481768133521877603508234943100517545843249554648962169127318274249137837131695999311059177273969470160118028872960788405482938343412798385671047786419632440219535195454542683536346974608215212950849232007624321713330593225529064685830640242759498960067933642097270260838630030287122311581594418834900740513316466831113850417179191010152186545934886036179970866390028873676903096791654721188735940950853010256947803976613774610149638413409273181270825088588752059573141602673041294414165103081698582668292246596030104095489512979739821080238170593403065984066122158249013030791181517259658179790440899396254133715640762213784909905755211424880062947783698775738866737136688665891991990211048506664879150090384285734753808364985785237076139496002349552162498208917192815740204819477685720459219900936587064193846003236858697877756072384562433025131768111841638116779257432111160042508530704229446293245589421381717274985435934274326382838695124081563926827977352067821879181308103149491687629563924490368071349198226850517879136471505897925919681084200202424533517429680834052133918718064702779696940968489169129555102951425457002568883936621589862917190590064199630697244053603507460997607481052309750751100139167726008972004512474334193816356299947212827625516172941815014876871266385024152416791856237455009493566453229368445896724515937100367019075464925396969925025150596381966744079201853556069090222646950311861009334737585534093798160699806381131203076163478559472912315974902619225165110295813755628131520876404829621064168949601348493963870854047959990642879751465761081051766749931933028256550853129043316480226983673470590772970786052840965500507919705815641355935808393016473573603729651479220466728570804605002924722921653468033631300127912839895371714584664256269577870032890464208332279076316585546990629395190661659620584658072722353050007102700970465270386960257253963194428962021245556868591736875223614405704914192466342173158618086170224974012336052912492078369119464525933802699368920426797737004703967570399588270350869343530222512103172697851623561102420229005459928267224752522282837251993059449965617902797602835333170225710570740215439264615876878732861433895411357720144335315805138131693118072192767230514445001986168208157589272963415324707899435163896581323033589361258612850190123031344522013204510790324757936392387270787424707627479588287296310352246512702101574603089392347549294038751104137907836282126603803961183698994022379705321307444521960700890141228793501744627640761660446528895275618036204460865936015143932695457464909912125012772243839691778719466854076270254122900882454983578329215706131825543654444224097623249953976166194145106074313766395553277561827856585055573226193655499126956209904401565480973855287440779669534943996511313331398112119134420773720903792089198086233769743822090042672740970546140162730352352241642743472662129508441584667458100387928133959597497530111866016928757308733674187523875126668531686949238692619174170146647040024959989436297487075169478950940936097129576963532766431539190113011987712830532227849950952362836063670503468322523826083791345669767447516564079106688889028846993766343168453121298262883453171052664901445070699529709860091175710598653358318024093256853493669862156977349419815154828923002384158944880092168889006633127992391067690128721660216614805843015007658621017277007220628938180696656878111656703625242561481027300224517539578535656923919090040216500967967082669665863554214790256771589725241733980244542245910446495477892487591434669955523099624924689588692157363151160469837680488715062925741317029625981444525858477384622651435667839609131659754216649179288328178448975021381673661538389403881410186065513643958014646434274202508462240650650971838708023655821720469351133508753773880593411584266712146841986089581914577503301585555511379779370482856065269143293645148943202807187900090177917460875478533390173753939785561543035591689066136675021683756372012520798353839917453597627944435035375446852820768341512705721175437423049491675771748205434384694741812832247697922849189837586776023040720181795795875231460441942296068748841400999109001818022390923808558127543586029622543541838950479193188122291568033394415321493329821957946861537455451206276947655385031551351264515173356953144522452621721326440202790416119051146714088211779061616321400731242723999886603636429597487554306298177023497298850196874045185860791153349712896207498698946110868491384682942486194440384366511427062116613195128313058800219085582567273721607881969984572391068076584759480173790382785642059926149395627766836335026945874352973007487105253462419475394060090524566803320847688916341902031357810145936643534680277541281405028124486397802135404879283716460328397833298320699204136341486917396277545748317818398477951124381995822231415041419365456963157693844976097174415777573273297348133614314973631463324862556234584209917649952850589213035418034475569832389199961142219434490666844978004366234432193037851712823143816898130380463633764369129535493299700264810701286645510196733221672660359488613224055957155766122389607598649027070496172016158213570479068868264012292286785938173491018574221333220509413532542478251833395556706576942838495374689089449816171749541159883973586243866980639926170782156003350698459748789871337376173274452435624089589094201519775503315115183210605207154219588824733532738989864749354162949773669295574246937399129980091945629618074143139000373304385887520268418179355217884379367339707989487154675576081988728131002618693252378654476093718058418957214159184826121848938276367415869378579795705109466569547675881132130814905318941915616988923406187597241388530500469841650707972156048708004041359132729761101291351619355597483822495654510813571236973839229114818149089308058712042638470801448548260016440489065477235824347223976090090395795284532317408915128596443479596679506517930532126252838551431476708035261055768884585935851535740713748452040131444900302136609007917772705049183282944745624600348594903210534707223010014496060312699100837939254162534302146522521233848697163877182849814525721200554390358098285036608520954601317654037921826517911575264784989078275182740142953269039978804076488082896745656402369486449525532893122882233361491093068720745550040402478495715654324997874569249193248866819327794375030015432268806309416552992551164954782836384604745432848017003544088331213583679781049210599635091300358127165209247444483713270120946095302865848963432812557272883317298040825512771285104027126021252591183788234611400263158966140961393347142868292834817269263063016855858197959169532520478265729077181826900815052422900587915269196109314618583712004058601389634957002932560242657534940501042299929500223291773608683751114952287724685786935055032993809338064221902354505471410350539870229338079190011930066111516513589076715869985926127345681407596910196762381970662887789278768895072701594038287854586285839186204814803621575535617741736458083883024757897238479536504225800737498280201098187014246742501218070877196109256150662061925141985315814389410899822283129937079231970670262202776491116912049257602038758048536891050893211959998352119683494976266060433513793818238614351573259045033806621893656773145403269389658672646023653250094247648951023536461544825716990928085937701592746194520939985271417771254363912330240562254168848570800838369692439799836437304717460158573104730438907442567372912339437431608482629418762775463531256816915120580128491978478367446792387114471767223138462123144470110737739438244049987674039549535120927240362413142883699996920470532652310480486555476000529796672679734203645314492797621120111439536851737718047523973253888793798194155421260861102720381081579234514903130681872145717111365581486332558135403651478681739876778382009795961326452797660237374399927469173416564334608437337362578543649336017671138762422451240737931641514724815582079937628438039103612775774485491401610313325580353163853527247143498287989461001786386290059781101500991566953902645962071613413424611913463210505176818481324439187696272913043296048665757889801734972902174363433489510453711299158195610503478140316099860749938488577357761918633753180116419662080520286908311468333680513896172057447626069310557647292178285846592009354782662261875999219490340087348036333633227488357594007406334165409885063399417767451643865995826655680935982720100870710747097072006070928033172915987062113719178510153443714255827306186963708124353554156381275182376286831186339299847043333429485189422567192117853836249502042309075981849312063776543565272653400663844575827922459612274643569226627676721153264851480465082481009886488601206365083778982792183581463318790792106165945573250046113255607854501545071028083649430474033597631781953369786572457138923087395662112690374034182599311427694149093539235239841244965875605457776888723394016238099231807295035348912935825728037856018594205147375089064968535661033900204721677876217100064671757998991429544207204665774571075794294334396902808270936501880749870504929613691577965614450204988738869835826105481184518198036492558409261612516274094325986196585874951404428482101365364196635371060557216281446669523888427631326320706727675780983698942589574520836048326898806003868597934812902045324596942952015393815634798925916575312944650743691823839531864349048075813344600062733942511625774215572016885215263684658389012582746275340750063656927738397372234102253931077719123273517868449538548326237113238465939800848483780717939424437641402961062502244008278131559094479681925254555862996562206411402392940448147165285539247825966413993517241908529707647488770215948763897462878467051977378460442461443830370021768531636131252946294581170849510526647763338391138477033799474946302204658428546709881371558790901399894217472611877803617150235738849830523431216258063871412458419530853833266140874672350528511149499599784701748679440870256938688639625844114449057180445550375233913518025055241417547408252503571347295172414539805111027904803603329296762165868198814326436006707358729882225046252675409702005539017096786271809167019759486221563125659599889141850513826857732135532291578216704407318280981532553063530603013028931735949675258957084168416695641559024943774293152902467857813522330256771337231422346287104530041921927958684126802171694749805926314615406269956711096602221930058925566146162618816569920645018136003510334601973825072909603074948411050916656456127874281372970197841452480160708018946339674925186310597167394890721281439747430601572029563623718417053201571372111628484708156122005142547419323263572331067780939604550390425799145621533203703670996526077265254383075605054441822707720111891908796792077074422875345866591010038571862509547167191506405986375039862312550308316726168347400221902024173703521573364995759527230551281445114958868172284930342863944790803790613820677184447391795459700112583969627970220764693790065176817669863267554945901398797609976633404046154339816797365116621850417400048075225417340733739013074892217279871341960275308031919756477011481151751515777231052381415036946017633213844641196752413320590498317891616287306607046017891171067916931325330681037348517083630960852553959065749556537051610477168324007225110202464338398123299448967634845822379697330063995809243812722679600011228066967473951072726846846675750733950479781059937963486849014324533027158913369220244724915391943929596023158832880727846160571358261241012126851127884953041947028414340576371686629139768663596697365402879442791319901548969205971232816857013024615372974463165155998270458059439824947564821324701337730880246666346372511710561568969567870436732112022907340337061796458253588415635755094169392264330031438396199017817606073677535486848419303393381193766146914672135786010585876934492073176360558030328702383295194501417246195405854062543631337032453273318014996435217126408262898391194306261511604029119585135673474896136641598516576382011125642794665009191743100591997805872211310945139881756785314136284116201519212315843125609320141891617015101048443308000921801220598818996729431901485525257602231962431552637357773559842093857190697434181467627165410042186275854659437989115086406676883788188030459540126493413847202877132151444826889962758643422216069519599108469130122526516816280074552103652769312427171528531781001914184069216739006942207970039241413653071279616973412788932168149773036890442319781624623384953332096923252001428954547975155565866013449765610383625527165566005031030425823570979123280845517262684669963280477344871110835566298340789370848832092524904425846253114400394714114064446326235283772043183776197443770993015643114503932619859553237364400962863310662718923444293387371880017840199125387334089857891349345424247200859523753237300233159611495019205052538322260253129761552831897390863217397848941265381850427941852376383808856243635050799299678019094306732102759283996753125133513537110122419133576676773659028609142437188476421164343661307890522422213748024837738497320479480144027772461024472303720903750039205629072454133491194237786439475266645909708705054542728779143357450235957603067115588615400158337391830149809231105512602202866125512196417420090427835843363386524380806211483686143199485616490592910483316039403390841690461261579046625181391101364167342234755530670477070648778537577134232297860789656922712309228210403521489041846248763576968129418196182154749841704379593852077653487397873503886206965268292141219446658863657346013139113853972672646243140887367998613540070405271933583229292923841286475413718378747310457598458154198256852020781049101479099178078686117244443650144978708612900375651519545219286443750504428873785536473933632337313834635574999792214073511053646931575095303925341449644076502866744043755668278702773378058606522944954257894898796063609491844535764810170370055116349852189587777388656142271541352136160600240132815977921582136224351746929284021031772267188427380833250282814201517324745683676274213112488021986675533853438248973619696557655057566880196104424665077917535678270591247817814855815161765654069936106544499654733901681614789654862765643587288334182354836311384194754780395215185513616305330955355293717105539592347850255066439826210073455595927471978890634535703544005494684353148257080315430108300252554720911194429503150977326978162403727402427923369025496302803472208545048202398270687410487495545597831637099792828967613430749987975617489859114200048326164274040986426031304909145406427021441365227343244391645762410738455017919738579315430324452418004214122674872485221531052597732730678893422614140922331093366611563698913598694739083565845817130918836475310006567032639096291634066042346664127904912439425020766601485101527479942157731374877234087190475766337367145256821152130649285013276715146777655225028598379409170506221043706470642851888991404046763095986680650328669553263436487931281177984417073515888509874925660379575854624778735800758004728147751457784997788596096322315305788076562059907188978372255850181294871004532843932072740353555121791735229826396891834635218332165667906295969647246155802618828633074633172993770890118028416675294836567598689695412222996820280687491357483321619691147542032153669725112445345095354302335435287815203877801107300137023901257049054480028335123088741267531245726421465883974228503136011956508796816779347362206630870623629251629616281980999617340729024464586438321437527780007824121484709986949670582612368263790716090502081826002095799552201958429265146491841352681479236718462675655215579163312213311474753948517236204567892483011853745956264091558919479193163941908573890569345128556727826812996789773956657142147998528318788947547631829053405602925701084106622381123832142351599672284532424934554850685650927146941655521774989086692189302393175812619309005870775645074080211273731060331130768037153367908833181695802743561673641371767762247508608132736739987102237497204981989808423565503507221347896759744374525101230174669866794184279259810134390218888287272552273653629804908702187651715704149482114218950899322624603619371064548439990585021939827173457106264828214024583908545723132498285450775887642434175572755518555175524103035996988890017651313339616717134112220406587409904129294577946509362768472528353473992094697863652021286228150975454988334056488027594154655612248812772531393822662675960513495793175967088600070986262809023598058551838985281577644915987908517874831514187565320085946277126319840154995137332914310160146018037184672596082879548199816772892874321084539147935747328045601042166928473511863523548641899419104670873422175124584518850939065843957290429277846625839476897646977255511567101539159588934646820010281161813700786948926909163240206534133881164548533941136715966542698488960573784303634810115846458610518631406998838353265738950326615175074515129083100700688911432599973929010770716959547628073495315458066349025247269644722329066616412577995331455182846010258664407992201701515182574431023608020806794261167938050197164596374391205870251147872385413889965492741406009339965327173135207564228401497455291601518384261270337509263577582403039091355496403430458765652866529490798878249262625643507851034924458862028159984502256902758867388781150625873620728169294316161602896238427681426283151142913926193472923334119918349388412025590204142813608712767526235013489012985432824778156480609809369517158274601340052249491267905825555319982768155678020784737914581014961367875002468724199987390036709928550216305841531749733745256384634961771928579327216334308127965211309060416122100319409844112164766405964946430528616532923177977097594141406421742130208182022274326312610845699460669871332811766426073547121196242452152327050031307002517177082618057968565722386000890772575546138544008582861764458362362830708201940275111098980699908778680173902440688904527055041360076146778530513752774118387753038503130561942167553576300068345503604584686466169745519498693873339852119552514665599097959412800556655912083512436937056097025383613377891460885948874593928829326180954351046442402642937880376543585411757345393611681729570255894080660427875411459688867367209249551301798194665536091115433883549094718826222676481807419921010433396164145506009518271380853491700987253921037686778958074170525723578358127273499235530852110423897973577430374113651657535693340192933314226573876270744066867254248666840771703679418108439071983577968690028473105744137265212251223250763184657579526150770262815559559983151608564662646416132325283804937687565246883312706039301701904639287668335725968431722847086694239717713989670285479010036374304312497394095937426686046048879051616353443868587836643064149385602326842277183010838475586210503434702877873647694664008911788468199538636252960423911340535616114316836673089690262565531723863371288113104092176859599400406099713029008048559489534402100114511335542071999211769225287731360521507800913688482173402548934980818495153130387501263456196431502460979881284648430400424001894454212358120699009266913558398571239752099306799870421410522958166192145047803906699806163851004180623774064178443025747370835867569071641833866919793309514578196519952380131032324200076812184093113220656020574578593013599461057646643735711740764940852471208509069174503514998094248800985329520334494473340446122963473624645756012583641982780565327919557981543100459186832208825148419950125511280751242079538666808385741110879417045604593702206928219376262870689299210019302836106740159772817101089945721281703406275771623855598339409005723030746397648444046841418166388267280781195934426071182994067094548629823374070405807630713954188291885860074372005483198032449493858250825793080307902358859573704734205297952479169864527799095500283476207004209065949583403154828547063632080522024778916995536028575292551554005756218944594047042984428833012400292901267898885442587499736554275662722813648250651191277472613221407717024939033987205095147279253130267746149067111920963809414555966232380541836269987292113502190148796299839457642526014055735313379349391899849501684240069201007846745675026779506837891579149945582267594020962775180011327119077803913947521397746499737932865204140883961256503988570928194935492747435850617161346287100576822642365669375958466266735190955292628773539697309611428183448483528025069431632751419971165201240962797476923267749719513548420017203177644650777551770187465586398860010677303670202363179787344702502807186620813461290024796345282544804263372813575400455714792492068536089979423983221348277455162224471164630320058177134587805628752318852253709007765167979897177185980211868290889005961994072349172009711750950822215798408304928511344672966509805580047501173073678585332948633663083629268756813506188360532489004594852333262398385625365336579678505851316071325923310724716823250503740169106297656687519885170019441492297944809632682326969887778335157233200640918853271580898834643075226355627927457852131097253584890498338585475390824406195904845641628771984187612330163816653401284099911895400954053212153174289394597485233607084966724697188703975450366009122949876252388664785851425463557678320444111548495559393896542176548189204251906916043525855078729744328993109007486784693340355750303279684143139569166018472437310288288327339711199289794051835571830631232864658304968037172751796999270753893926101509539499437384128323518213721549825095009417133047883284015449238576218029769879593831237971491182407439218871296854846399018746308476510718264485899675483596430767611372804893374679620284931561107962065006204934307449180267967866347952759630906627421518371304055796056935672705789368369549102622372321647382223670073945043855815457055512408857723568438257387674918214032884437225697175805778889734441998819734763400399678281812784195012337903531514236288590436339478726042513649159607387094529157186323415630883070521650229825271801933857794324559743583594349609067165333155004926631050718769693518125651648909289978329984347327119324138878436414513797884250816121724691448191225420289656905957631279672106619028394741983758461838328220155126285947693515148226093198790952056495137313361491576495524589595719625145206730877827303900077240084012823223172985731692294348625139450077445352297403386640981319393410536576622652740899879995309201249726405057972412550128797526084667269447168655912163224942042583154812874184799414170543733631402716673119473318453153607475843948860306489734303697757379998288014207019812262561180077300210207269577206523360545095165285844065052466026220285264049690597676196777369849677962596883467999240133032345636547201618768472633393092828206796085870161679425291133008151698356993950524865497457364276769731546016816301991101246626532823208625228214503514405018606538998908630070572630632343061960270598497675644582770979851299929024732970387681123457862467713041720981236349801256809864966583227326781158747295010444343590159977205271448979267785517485298808271636949472854052585354037601151162391119416737960146788208815603514433175702009680075224651283334449337757119646355824334468944286624948414464191194168641753612982689871124185319531861579185608182417263429112940415725637517248023814852626470382663378966564282857418738473800453436266923657959219480954441204822870194520323881483385943165782770637718020300479803749182982723452426762174580098649379483938079758231910174947059991005393857317895446836532595276259805945093906110990243134550592373739292411322058530381762322173372014538401228703718430311331402782572833652098083485599380299020176405758944898439054508313291750787569539121364965541872991794643340316018575759364741390654910438225043355159250750048877644784023246104001284272022371749493054796069109051137405432511280459684863407593609875500532961375408868862126950738956066696987299699347908049350953974442129084348000322036226216938327790071146363960874882103580814968366770328504997261836232196100165102469231746797748885581051935559106556189583217166654131055091729679949151945965293046184035531093163580653206836024817659928312452444193320656977140791945338875669541133043702087574888117385234017612784491835558634994355033422217411586913447639549077914977637456818962575213389911841519456342348638224241006577865751537368951918434325215907913486943129087792768363793081610337251710771986247117147469356313968332412567192322318093277529022379463682958258607317023838084566674608646685383302250767675421223559233690058280014438819653721450281982433429343707363774725155947986163338954884123849373970942885391766849378544910008315514266830646038964400360144851636225892531860433298017101174947262272539894626539194277615174079480204027260469937709324186108338365846642733030079952050431365755526581423748218647546181666675413630721926049714513773204517085350007357071431419933058630064231640436734115814016428526910881541874193692602382336645366727132698677961450620226634359720512086436752026207842704065461203445117817173671540386359403579242774285846110446721590256796742026463978830878321581683266910567303372562402966785826866255972318549164301259400948109131097567789874428378100360210460355016498049884434592610480235547799164491750292936806368611978953503265384735190698322822666154358384174665962178864142650264803554427133835087482972793583406633866265234521482058601853239636306823611255163893191115722008362130745521829645636723642698156879380852918007269774294966421273192131987664389400401180782075613655386283028590216862441017652644165992917764570174351745767873510880108197574721537975088689580051585594876963804000154742087405834014266927838857087132358595549120573045150196489880029179662785097031239898217085648384199585762130577403198087984660970470401244350722191388530137626086992759078059093959057383128128777165021101064508180947732945127073780463237056855988458515732261001533904293881525713256250948041792575745846902032370315206167546282810325279287651950509098305415860963568143291139544570428442528191737247996168193470355002342344464798629076734754966632001041586296017036428741240411081259405929250427445324688794065808482788500901509016435860123683543941549010717051266247177098809102045776173134486679448169585223924914110261829337143613529395543491118557097720589867782884576054937882312024991587424376501315374735304945416500713693430098304086244439953923005202123045784233243556341883907719952285701667413186988646372572612362798914567504058360876757184566013159578098373249917147052466601884015441537927019036587732542423517078989697760207099593757733605900865703403143222169129971358739635042611620059726122362964447527778905870272829844209520346948348596289554430830836866423973752941552130839047988425802601063969165735755385237821378088713685265179805513659902270816208136411333880129003268802251854578363957169746573642907946753189655437098785610573778521670024112952665308150511045342824058448269155370349169159912744648035811656275330218809127938138111082070230547780025903128474434715217329755214676560320698256352106170573762668249621455645577723270972051142306291685661698790809053331738089225487194684597850727806036274391339277200254658841934274313541008095449056392031251412520959834750309344109795040132183866458398569487727133594867259127834278416203260806594692286371650893995101998460708481739852588059010149463784504157466025632276291877784905728817740349954960213091353350506599579784004068840132314229693179362727296300942754470888268473383345472464596036367162159072443313481466301075623537307869785027158996207479216075282384253927878790561454681737757186572722924084282864932981259813022533425519938301925871725326148382776829798161431928546824451195026673853434015945363801606007323202943643586040111906376168703826058216929470244448198070377674312723711307399493026494284114947555739335832987906633553062544079397886612849295577637846169056968229576408960731042289321221531635899543820173542419506748538119441066671102054025152495535490097799356986888645249385148361758417065058890681142519164829007841709531223390361635373125154063908092527176183903376217998050958030650297557468793018863455021536712038427845965093107826521799203132680664071368830656726409721702543567412841259881465244416740965080371807330915686613450277877549260485655332476380946054856652734053174445963954546169720154647549017942307883957987318161254656053850013348331903956257081085233263722041829317313825248322447081049340211920912317821225413442108294289781223759556790027621959238441900181586880754878832353545601075573873679752750357596790625603405980918232454811801585434110811341282173109554925090621775096436774462941085969039413575580397893206637251472790095824067855027724485310373951211457861111910188755014699729601070804646492079453163710762730002118379519792580614675876560195450899991520576089667667178520467946756066911780879791401496739678369082864614443217347066626456255130738383171933273686400932169880625177444120886182210361730497508098369706712088507300558279107224117995758077719432506394572723480691604943795027731832441277178555523196391742831774190355549862907933214255524745732023544314647171713003322379661522934695185260187538508950340255634707912771140559014965103848565462055081760944059674625539189470057954934879547089698217583006654341968285254248300878269050772576631132942598461427812848140478878704767324173625602559916008369136656830378580541687333999734770475298661515412707450832895241224035872246213038654277976871664048896808270519044753220911794649863948196434967556275080000178909733619037358552303086966584311055868624410288995126388590570895774632193309989168910932141530610866041289239031612830479744437909052218089427588444448178770892632849708023506709999514315582643728763373354521364472310869578571556467522276476736499723580490283775372441137070545809811961640433991151678628585412489870612691332230689971503378046216327586735727086031638598844057603568620567620704568421170880415315768714395637403126101774493779897281658391583044474827938740655154617607444430865408142005796645906042459063231204255848476507121374702536569653475899770302201994556122313883562686264070799942840184687774774382677454539730897813504374002203165554679248907998253833007591762900661799624924635133472556015081167446814375508594430112224025947394297802751519091563499462308040297483226831192014070874754028808404027623779174886696952650310523802072845661944830744666922373229412296314888836863715024814907013187173558365646108167269971031204716905529565665810292282434520632547738411854478623623297491366057815312513204101098984953861128790578327845571986962958893463883283604224652835201113025189955902082915310323645921746103293164391139834697952510285008647959665033577543867682884255512247209149530206877296033364681732412055772518931877731005473779106924228125308386320747529778856453471865896698521766271326243766584056848476632890013451467458936686562824835222662878143751815222089280786181935395722800237421333839254080648011874761927593020849379347782367817131870842440423493799293816265566268240850032544564661965777709459119123278409043969683995824432563877147674977850354028423924645441256622139361147580171460660723624274354822843022198913875934022094116760826662774377286375619883911521425803310237512550845122275859661879448581428735909256498378733909971986100062553754808760794309130156023287642623160226183853794548017178895692807747968628770931818112985899271721874944537003500707852868661837184988172495544139744342286449672581373709961788505692300726086508623209874888995889557905373594613927401276791352969477566669857970224303011109913488264316080095242596635841851304931609698423101959532271271749778246389066093984184715736650500677000805098894693615980892246636871866897381462141413280954148275444202713375532629752439852367224462868739728646585408958680609030687340393803411755378240668838993273475484709756972892425014062359865555248429171009746750155046290492574549282849335150149555765882838773218842918935847278963421326883388641151116347021951395495408394599643452454290550460048611388619267550659351793556502488854627423095704848786451852362891470788664772753676264281683976145071546578879927655392918893799763622495090459183929428689764230402149217289053736107500200833621374174620697809381265921039420338452298958630826078986330503198643867180431960085383435343444284814837509131688524910971275608823668282463310632687314654079102067216032151598633654422717759576366927749837740582255908587216452235492217915297858454018328640849158270729580759340721489213153989845973901256702579029318591903619518920431287499741805017486128966181250240621648224934119855561854713296697374783780728665067328999348435162662155229027980545767177480650459203972045607753912097981995746190733790484470794374914718973706420566771771425232267050425537168588625411929125514047930808876689039494776950423162037363656166532965423706424107314853258047878565254407979911047664241654489534702993680769750667290224645750169731261002053802236545571136036829420228956747099256604542377973651247089278135304809199798203295576612697520296165252286950830581462231417292296294229079434476062671895299534655425855254195655202719284938891136486504491006876458444059626274922062568825810313845392055737696465073916277544908063693462785576115790608816626828503982994813747774702930012118386012611068461315557774652359985894298684746265610117054575803221760667734822452315960794427035440926023624229958688223814370103046291501878856497143989623720152543721393491822445328443842877973983854918457860837253485421178491374953407655415092747132542210848744221030378125355618829451375528581003622578893885602424825396615331273073893123793137071565012336945737710653406849290860280597224098557716231236529164196854623276455924806347287556612858159309874581472171927506879917012252433511990108954420981971029254469592340836932555826570110635232643742141072497644617814613460085575515298045902787926477999952114530406029549024017061722748520057220055434886539615002808375559253859489831589939131183219121131098644746756682392614327604679339640267133515886281682131045163336809643839847761396617038025327449050190777611867164483091564784326444902639420332812744563922450923209605507793921051810179197724421411470230922806063190278368411404419910574052916611402361867917738375513711770469621523704164049121462626886036033244639659995494802844632265924255580061388629118850245941613761490840650376242116996173642020412029167879631128054971360597005059258143099484187441087156703848138544067464959590651416749041367649376259905045605638353584469811102300708021622310103835450873645432192920180860655888916001696956334239399997817482016117423798557764350835003816978574716448736218455557070105195804039606766739429230743577446787214839754258271904018169772044308737307480414427694922317504608392279543719529712724823801521172626764064096688130936875795339959358099618791135616055954669950705842070918079888146969105505301354299748167131752616670871269984840178200312914780172994231391804216950788388648115629947138632727404523259745572730488178997021164036511062266922859651130842710923780238733911283957340076392512597195857839857967114233397183851709060634714303916014384781317434141522673396988926521053983611234383375201502567017959007312939792574741329274091448973505774910121498412536233982607440052035876299434436478025104303929137155375418801139586246632277977186081080721741924953405500979177974535393347079794019668853663151509514878182450892727352436480491334711681269341444102622512953458629932766745454305283862297860448514396108635446869684060246962597930084429148662784849652678853297637745071410443985046406305149600765237685246094312403431089142793421199609027389020129298028351810077106392070587446259347555288864634964639410865278689206140720376233814153950337010470536074983873657148050976702485877629420404062809356057232657384112545457393107561919033893467057541916718345944249228255842552470110631188986268346444980290831106936315074607043059844355038233374359692738993525122531873006497976392258062393129737639880503996258241114751825244629656727172827828125726466752918575025208477448979300706558296565960405611896376642401554383932638545018059794943578225489501591331328797532489433851303744646699187053052843396365328205267066894803470257708340729203660672106981031141048921337138961067128274215864711919485058913147637217305893821227080185584957406469013261418634879836445388089032158049262978818625956893705151683302378462013638745679552495534795387594309164314652276421902033601789300366560945044291252663966803807101723940999104689614039309237640733063744683149643318851092480402117493208995591030823990790321839929786906856052959278301609202798508252560295677198495005010373149410872496601331365236241516146502153859257029159946283082822248952281551073864076643467064511094671840471488210238089956594539516464649883880504971635882180272433906661977798367215063721240370931360375281835367241694962364105494912369621345693685503660960481063516075425092999540524475140348079703084089866257276027639087275578856931375302634847247335159779757456407145103974385073834566803287150481094798469791486459701754092884845125224344496045428456011496300056136466760985546838534162694283412421596742768247870459002018960434393881393964733420667063123489773550339936942262671765522511873979174434597268125439472741310111474679947383001505859265728334561804751362994110093889979163998951668668704726315751295859663495637675617788410270949117177260417621838386643489160829387734879933895369896930923071515306908405502480875581062210026562348512496111499396695450246707648209252512838923881089934832537697032356807680062429804387763403229725118931564326316192648019572130255659821852847835393571622225443254403616928320582483315432593509233632556263303207142453608045209031173418302885216514238811534394807298398775608900304085476513907588056127914550920797906819407686076350038762793845271633052810315977267907514121153621997562944498033816673763909785657455075187974187789613228367255184595178363592231489099749268097761270819741210430903494475225842902222588769592798614930701016915077207780326148160390656273262653974353728081998965043374317813372067806931183777197339204189463734631235570293021001901169699735246199195507032910196416162667481867050793386289205306852043006890315639846558429569333673271583164596776304068876728289174601961152174168305649817786744561789277029702561185827761157406079336171388346280904126386385845578388101621512052666789767676924857932320477161463913329355461707844190642743388845947685985186116184662032295460717396480530673378121876802332011742150321220697701533542817476233776512055000343631594407576096221647811197875143944532311512463490140809953259585341195028898856025501418056823983982083772652058449079999940516470768924132345498766534563065533124718892219504942520089127357942482405095556166786543317817978454856377856045715235028616173416643858974546063322207666066151828472292529998674565759414258269008914880556420480414885368405813513819437407719909800814603363673323409091368258803525567211757603586985753817304055123330425094723346173661727208725943573035946448685299639732210902231552884030252755165650685054937217947194184596332108654811313070315484517066156841815688237318536587666556382240103276213108441775650373676474860589396330067087065684798588394151383120892502116894215585963795701728519962065539689568018808272270116766897202327859260458081447495086257193569262823922033325760294550699077386599921051828625080699706641942708110095933563789289599676819715131176010689051695291440978362138971019601459197649104429816348997719507485756221438440050747660593810148643351745545425470786281875570132074472937436401853107405388738792924406425659317201321753629464748656498646258288950317441668133215283803223959683654303286355255091049925321982612038376888569504477255766999699149789056809423064130606910313619104654199461920885234317635147354094465829064464502235483310757272125907527598301481779838988090228854348870050543939961593991932493999828595332848028963352208475333015799078451473133475739688749785624934192692527438091076359426898190892215999252278972519847083862612468187811926330624315415304232229743825872550037341550584552935641629320511145075590260864911208164432525955972070076663973879666885258535994877070008093405692673302165273324464316105770287962088031094995891429342815535312832314577179892265100825699239541682994399775120262655430113805356931475340274269296805791199182835041758218350833073717808999762023010278218383738483997866244562563046191815094286759491546304013218924827876724598635280829390335596083746742275260632727527965910677744192221434894925479354590363295062533189614981097858725010227911549248695826760886510262230964906032657594557092922400237291018711127488361623688567043107153125119027769910125755148944273888035395622380430358635179106108459063807660175978133945688503003696928605415127856633382992211405746780335938868336511437868575149200035309732869479329903128202260840644428523096044535855588552436303214314920540112501827862548489542098829827864752638300041830915459337081545569298235789604632628568259074602172499157233950823171162591284736888394628792098394461682803758864823106079716706991874584365484390467151542266304765693297717691434704117293747948169002600647202974186907557614627629377165352299469783895219985814522673688708816409737293353513844569970677409960340234393319057788084394196619960024906987203577344205478968649703057359227383318046282683858105808177808469372314540899507815918735190866619837850751540562384526574219704918188065643635514273944258209908825245682623585031937470637768682810820538458565593931080511756859762412421637559007117345597845239925900472994482981655254401432390961393755859030314698231184854262077407476926819388011077163162992536320841281521592339103601756410814101205796600435961355376020210001981693804058444719326298389807228216283984472505735309388029546432671689620478657298240600456039340723506005942473330712570394129128736372822463543470754417096188179746163186576686176199008215344824186543910219275726822710378898917335524687673381628335764734855517710042286033826235670559242391523850707613024298898263471735884749295368382086253444750175736844948652958259184741073362564576587813078428675209201510523729870034537474455865448833135553260642575390400156882532771365010433884378010770319839739260699425879511210593615072670700729407445741549547501871574742100445602669516861502225749999583396533803177450339310486156099146519355932867091990368673522292272879010220477976878646129251123601512456030061073260443518860173673575627881102634992889762975051224591049180399658699513204414691798528466054263883839175020919827943207919142372486730997318004454997911194038731498410407984348983104490734001665947297279383774013886300998096662270583829548915756771857941135126081788777310138965468150681988598954393432855629399466639452651980654047912121370725421954224814418454694261828436104571236808385130259711652502524459436056895503600031627857259216804948223303345847804672857644748892718060788120795741070722587429312186305583402950060965607378731282762586625564251074749028451492716021328478438806104372616854127597718784997797467139823715155197794085275169756113136222761919959771466458222930244627492313847389491261286056557734996472912027429223373135373349734237536462383588754213066430879652545308769911660472205898548623487195494060537682404663985519247990882072103564638120258515358519782260767478846284107125683969390024843950498127489455744272839424755914790223175065854227792305034000017230836571139589548511104881595657814113193039961497486598705376028809289195870109622931035552122772709690909129486841683829000520835342693168409111508889280207202830544035661730701927846068465430357535828554512414706711824653332860490060768856775153605805728835499494859706705935728647581782460475164929685008176438380008277405271148813313788623630816325467784803647154440777483703099209815386415420666412835771959774337088186499404528461278706827350080833901818418839742672892559590596667373150985035006118693157884241757213993321541601379868095601298792159684841477064345638505729417412816807002449105299689556290655781983541453728666917979394622128718458978711919173339882414124418117040937105600081465977907033653195399354057550129745801807488348391390846206679336539010673261952095897052098879524427067376638129447119040137888829577607843116040017161009994262351512766533446932046832046222535571294531884201372900026409162236396366359859940936510327683493242629431221633879071201420101067626447153098971253920833192586112277458290873649716740055963905108028197910048902791621790156258074625809227855811835063899928339242269019293974319076978706414770758597299272413444489208621866021249713259843123448998360699109677177016007839255077484082575270785831274322615073393814464758137890335958436000697555124152226049384995621504661782447226662272292766639237162816821216239366836787763934827038905410317780537308894375750297594533089431619086156270405971036309555775555145864205260628646280611543072482525363149130746179261411578496888333104623608880841002725977848257417388806124987227155996472683457179768385077077446241725054250327950789699487273348868539096264279319786212334609992813104007851899881752024755024169580393757612227806020171196224103676992756665246819705733589665578063474010002009367755559419719211492230568461407430932914638192818363510782834688401552954468288473806971821703580059827042010786362252482271039809243497051696387592041117623147759552980598052468071112146816565347967809244729174154555006525514351286453312309156315921593721188443044509343352261571324067589910021709568514229277684450756801431559033802688511157791812079886463502188531852818757646301532696672935508689149090027583287535445203696767157016987491869284277942968637372101691200088788796415473767711698901410168944273529119539128633503336966940588446052276603001007238571323427994407617858189436592013007835978059065052116810372539489583932762800728772708183620368443528622638998431368230465854251076543030836314765196095104336486644306229216687780481435397448018095061433113205948328167159268395354188895520509836091665661390874864497065461301641142524871464496131547237217176491448063640537111658638287460230226101447281209222940350604235300524600982287133080154286313562320261321512836180591293875426215591404540153605373069089051803258981647370730057160340106917666440719069441956173360945382833970310321044374856693142351616979700376508655258217526217124737252602469919515755573756440575172414800832212351311306821498131207866983464654046627458774992160207641867356423215917902976984557888571376821777387336671487241607761649241530015963809978971724326727311645377974091476965938296972001121631500134522538529961990266252604762514098072312813205152405138090048060581479074117120907221186483794315079008926431274122029535600428128223300435041149462381883122485969777306370347028085210915252134447753772432253979602482548652703417876459548591436366985571936707447977421492742227540572854675246178553202241370376996319925304873018218987419531348753618715575464242439501707632939549424237885623901834096212562164331174373482685816724360834727049932888063541788156195709303277836911444241885451977407654988407511696470014220582458886564284637732091895960329824714241909218367312321724112791950464947501340537403252688385643007138618544370107520069893662890979988192024573361632015519119134614430833782980540908719747110959429002234772158371228199541637740754996552402484172167009543592811079169234380003237398653514891354423347331879852035353926415953454451809781232003135506066491709661043294353373493643773779835535185544416105536801279776089278473534362845982817060448346942966029879639145703053013791695871654860046356074366400679384834856667719061107490226173011941399650863698387336068276843660905918125318652649084783816378755859245413230886471851285893769693623224111015348964924306183553265978618161838720089764509657357916887889003426793948112757824764247260954502661259574978430880563799015773699882503363640827699955417699481202222849342031562493318584610641322215343671521414506919752608876206130338289252068813611364838274364317818712950348589140223310337788506943813780533839412272162452598405534779668164847567067700044598047885097570530016917513295683445642937030751931590570164969453881697184692340966935435725300938198176721475056242015922649002435034563561819743037895526704502172084551251377205896648401934909469906610731669481630885730861129065786640140995142148881363238989478003415549493229395221120781932697295534060395679021964975063677141504129416056474967437498830979092072854786330100316606420896244673115286056446241186682254369655195397146353818072313332362386982107167130143786675702323843967389918609483563994618680704650882609142209653204557721483331264207239393371610647650645714110816820261762931488658946393796780157130598378888785108770745835053709769757491579183299284470208655094216413692508913576194645817893773455058819146423273102904067778068032480600130044120691781641259432293113961809269221701996338018863587537239522529540576030172141401113976625769044406610643075384544583515888490053033928546387626717031498723434394970847134282803856530882725469292940453181571280496766921458011291744015670786389487414506350932521847279534190370580793059006477958174901442725232542173988272123416663032837748296638232524889800414008516483226146336170311971981211934943760672116342385281772155375694528217831271575015023267841266130269524106107353633062885070233441685870238512982516528368040882042566070932468548681301949489630191235414753057589497835923409356207905730148229272551068964778781572459791459038416533794641509092375818026963627659318723273975977465806116010811122501061089734207352678337160127910444462894015072182551847042809041872877228855541535863460172000842509545414844951330360502330506156555133593931482333013962903090773439584662067521308201157510639427001568478372772565759551261041120660108461217449345001960559723904906381758516827413083823675440534771436713533015954123007246159593925614636353113016144251694754266239428996763998788875928479965388942754390801493079677235551896096908945879876141782474976474072766105527725210047459241083151763358419439704387472806770607406223948204536923235830812602005835349957353629061789735036397038640198873804508221249462962261223089793650079121340321775733877856329102409578476116023507590215877676801475095718859808076524486934951267121975986435488792984184336249134613624720641335176882114771251189061288867070102592665086801944583861795203806841367951368553415870838962172079816787796448821558543952703599143582885571905707364468123994817897821006817886421513137787136495251549035779488348023605940931060765178632970738399963352619225938494889601525599675963966179378791438404828540421087417992477900540345315882117447935128335022736959395270816697593302389999551009979146244120727234452762459805521823341393689515531146918314209508391088110483711588227245065263427154053705327178487168377348886746628613813667597341172121579484222721748456880858023232546286399230765851115260089142340290204993946365021552025659781634137051042066512095027173833385457701004519260759707761073811075622190479294130942135085163750865964894055900379219441895383357863065295190056057684402648161891922914566384181444074197807884497966642740666569712522921971100555131273101232066992771571324341841606228166563030402037834454616340777991745459669747048567855563538892671270955644370096135204547075251015043776201408854793662432650558335311428201909835711883273155387416971974511358154820330253480788408124620993601913407973570849019905121883014371654529115455128776119221322460445317233476874128108705993482271578893671667667995955309312748540132839250413088300685315121267993135400476111188913241320306286309848556896271961434938825305590970222377404625712025267615929872107782653679489585635783248914140149475469703211084343444137926631557631286379692326210954413272076278828570364796904400338843060960242455809698768045047217837863992922145534680232898338041728665440444368536996270802599606131920039265208195771310744633872788678367678887796432239898554132777269066011152906512017595376435513977647301813172413253344404162770879020748463190460099596488023957743055421634184700080500234656677427712859530869745151502833976290393290236064709231242978486359785118038723499074364023102597180846332324528002250852959084792099904996254855220311495220125592659791861281698492163471346602301636159218188183613066581962799751201113634738227055783196815140967733189678077773932638996115573792509510482538850925628135796520693946572209789927953862943879103592971337264006870006356303730277903753443836694650978812117249156510036086844751363203626714684911935280530431385019687983246772949174661515873656219879464693232463639363230901070221883441179766440492341218578139240823296954282023841562237498088768492231041585182645665623926152417696669834099721374591616175857735451517134867175302941002429639095122005713824517754714433440948374393887742589966708373806346369028855680048321392187808126348161142473412635943140154211686374341360280061340574025553501140112553039774189340196714454218695864143002505312129710935035512063014657471896704580087175835795968358642045708260152514485380696604635434294784530856789165267112688583120212350530007563880633299998531283080734312183843170162469870116377536599009604194869294306182488412854304007897778851670507579384382666743166279268291603377231646985667558681319400496425341510819629106747572206325350768327868854721253501923881682451936594763257548157593353198712972916067659254368925833914725484407307339684794991646131825943891921638599630911831949160763546151870225835439682981374932326756526462389886427819710496642606096841834533637807558353326856779829721796777461580871460962179000757436904020061260140025321880079448873459711927500579228825830599472419987848103783943478249908961109002859713875349530863975558069995525405207130387847440234482790324857110792699018076470398254376471737561221961313633003130055921971640560397031388096304514395713423910776350024236492471758327366002611838200994236133509624762428700165109912484052754340157479487709287050001688291211058843568233317330973821200685906843619926502824643364528786738977078886916884923440413119067511348077249186455421255831250776993624749112617070010306545837356114374121938487088447026651583585176887637301847763321373611799349119971142441983827910026936894773486476348849537371533456922606238036341808860908868913339184288012540016298490259913512821506926054510921102221018183425675597357204876149938520123306613120801136251669691733045021014846860934172515073678877477011644307982357381681990107408928738924026696826433333954686776764632494380190184937079546191565462866403469294956588412232000340089035057030573848434304491761345125699832018913807909509228425275776750983424590169220589079199846166710078159711895485754818282777810364110020815691585811847646285683474086943550502020539668369743921503023899904637809265219767375841185349409967587801425895931794511649197158825975266582438916653942493804749065745077814427510045765583524394578599434772397024578854476167148031384389001918462709583291957976992232201626555273445089871971801610419472753420979258218789877085290136254276033285557241130441792487489477654598296318061893048433940847007643176691519242121890052358920034300951044841564977658208156124772314664440499003379427604585690894568072291210893786542086094727713660365210236042557471620748847338605977631603991512543568986352191692035223435476096909642491457694101403831877618028525291325048843763975961265929843975863106908767614777713224002199234271087813038415385090456699225044117862229902396210509763402682507614290728979104252616869442121735451414063512119309866567929094523969948086305473771977515405453239219392780040490068586265261858413581869484493276745004220674596655394574232203623432854193615344080617274758468890040943178636297833190707415890877079673515614654092047677028560065138571035859751288489776446629758207751840577495787257712652509098001679426314943028716126179166571918760847767240417641714227453714119580825102010616488719612925601362229041822249836448468183120769520018101650913947746858128056898825062651542771277851310670108012192316223324529643036354150399354364872682826730257172948254184958476502923147450668805438167558231810750093627968073086780758202433681459465568507896174266189755530685465862849564541695037836551735030568492768726131066942932605167672930521490585079916542861125051895589572768994054540916293036415894242294405716875182002011057143330193093579611469651400201049486049696050101184631402949874483657697538540071647293670242162853469133508839795289030611209424426211662027325213194343081750813858697542050123050155318605066163069963179853386270014720710362122033615744345183351264909905511587533420115215611904905557047700606684437086739221935942109729938738466893454733522112443597620657321731776742608822356049768054687276991691260759547809577848045239603453954392708228345050228510142514117207283641043258316128142805566771610831751066845525275289369024617627163798915772627145180724664872092293605826476765774151835369481164247276025259135568808008568800332140133093324302578871288141116958185174652986691017989579905426305696858614744063362496764888455075419931259832683668685883770776185862529028867777898631826408437079732630636514662354209759471514160584770616208078436935215220202089975510645874907446150818246229899553737706894445376739285197442477854449400798479339109476356527813190466907594564032868004015270246635372503218321691372852938781408748808352806812536990262293699911768729097924726121878653852622757060444228501827342945072309750815832024259046668958632906389042557280336361442547243992331243131314381736716182262471447106493480370350347754515471577262596539487016713797627170998890213293246734686882334553368902054550543002243673644551376284774912053338142026425324353735487219293943633719433933427839078084876646636096129605517186046006021820113798744575105749255211782762241278842829542344760414229191010785723082898879248440785503821452361843059865337472805241547035951235527211432577725604209550892622005757884003647506101737510568344771171032012628251282915923238075381656517704215054569505249487459718001971960073012216309478258679427398728875819552515658390941650012080325630147705195222421953434850849572144403666713249322931692555307857077990827550389971470561775070909143414807866046503125740492797746355671761786904608762999578419360595666767757412185632601702460597104319886647171545434059985825661425375608437186021059860032154054757735137247031399086626500902309485763611417665589132537814901242079342772866028156000397169967768757466066035780838817017066206250310359760659876868830043124468860578729039935843581250571178689037712496445965259317289807938783535994675590112548248386876227483576066450096477819790742750120148057461370659978167292617864491096414622647655942147047037617060577355687086204714338044865704773241746087625172748016777266820821554540265591699172803534319146302868771470398660783546319589352306671021225271176902651151855426927738892361481208564224430491072340084936497175980296389493764022670847714237034030374539919502557290826045561894787368816443417771482097084889257861385376526514907671602977503908731738247118905920576421014294129742221188063424871053048421428576163476529115985028360870197511768273076073480881274643701102103902222085956498487322729923569056343455110703722393633426551288034436444627583994744909775858164199392212253386666710521750977945993216651933649010848417103650532412370048052349700715355964401808507376768527245577515746492702259141776213123675346511455515704066189872988379439063422938522368981046952622979148416108008235211460207637496157065578910733470630815497077285509665920220237872811958787353601436698802792713199106511296005831967326912735582752407629782228658756363575425252881722534557706155821610184540859720056876039763517139307123668448056341594367008798470536757685491266684585258327996590999696560263320783616319576528396673095331566012886652653587984693626650181304990001319489643993614426756909329761134012695434567717145481943768055882501581412689275776856626159459262166299619948957144024377758716589331771940746424703549698045827257268834413322256146853962453833811558726210725376962559874018537377723448461704432673537424731196267140161535435334685567563111403111591753222960095687249615284243045010591083468831117871438721602142834892666733776609903451932736002715551700582945574705430729253821903445381511596136655173864275342167823728671297808118571539912589353592506045636195102663664132613880843312017964564735359390188942085950452299513698410555318095818521577135685210968579270993894222497348121330430781826023285747849231055439958759249191535945268636246016493580741249443121497762283224822506395246893947628846878744845195129764358505514353969611871949533248337355318000738692042426180526387013350384854539236160318409392471605635669864596026557917344001960944501693573931761135815803677235226424065672605596550812452211914232215613764868686780866520054818887507765288482902784377022629006521562116279632657546367190962848491584289755229010911630331494248500082997216679931231939439485343437193464914896610290557416024816084939189182705021706773377848063299577138550158814189075194072495182584865545666740449233825410553604140961389947554839802288768767778927680437052918064748582045141258107441636220232959149991403821129202636938063857452582117965741132091548753689564893390966667492793210699783514748282531424849828781804545027917093426622596586522063877575306831166455003259602903649558030230496525959521614382687392370890785660113513062263023467870588367590089181305763530100289544240591030761151503225963160221657238127743680147154245554299160395568824239239868418693830949830267419796887632830111236409368996924472983832032947768116926275909265992067663907222426057470685290783969416075541720564937389404377964102135386696833710167729741437459485433810801650295756442994446665069662966452191932761981455931217119018856229818889100384953419684095031198896221854133286552964954082537859179610574621113353416786970986001287264393983161233518681946141894092212358105975313699057937874367213445304949434893880960892715515304691859022631576601432428161249345519931558037033445535036214991924195679178245965479742767158011247705345629273546670574388196853849590484886734871799734676685536957928298708738504425317429315431339578647062380532684341228237442299778195215565681750621343474660880702786659412695067494666119530020036130766655972470320754269151523033111676071617730481647483050928216990773393328012126118450922960311165159102525485682058613465798679811245251298625979544611593473221386083125296232622524742624293472861921914952795639517831133966201108560475840885811276686213022844235775758010090338062894923066727775578249354346112300411909148598825458072777127460599626015320883457648205715829797799511337365293644157273821978843482187746793565799525743020631141865364018961530132793266764386771194202474072894406665898302814737905572057701221990856161239580403309541282145777364094775776613354745107175686377514698511100466423039923421608459042325729187085392724329746297436216122635619592758851855443041262878003159399652953721527206219739768285504736218363504297990810334421424802737148400908398510550946008371411464076483503357582067358465212658710371296019497515277908728502166658513738409482506284424900924159076682251260796692243632061844939225484581801179409104119103139419251064097990117047843150191410087723531412144905075865114733084516971372215478042365897784522845527682856095943004876173389022046568824281091755995401495301016841631943913684576790365837438834442219352235568709654048778203169871682066244399557683977203698030491997926400953840516987005459243962071340060691685080962603232975061320415379327078102804947472569838899710175738477708436808007360601659464416889323900396802212182956470566685930765169823432321656969548490571566963293196294623330123666832888894518874074124603040714996390542028827131241969335364789942752511757532018652968973134751285631221107409730408410330735179658559567608961080144670933679752052344861368427599241956560614839094595526097555375536938752438788516926385630791616412086235458676376425423285384326489404868223929946616858720350034282416456025077556678915789849446478522433417384387361462959183412791969161529601789237710321098908684812159254710827334929031232902518358257199189379532105458271322869750899385642912823539197363622013034459023127869638393810174559606303480041305448647817545138042974598206398832349296710649353849845541787533221101365044926172642012580113718147897834216549996551332656092573264665785663145624999371611641729718015700138194186810581698193547841885549178400380206802668252060353459312578695243474212584130841662553784750924996554750170015239655562151966228564315080284132637959329368468652911387668464920070390077547886656680116349746638142695265356024063736768867321761069778215983514114916620338753572347859540955101231488630863153462849236219546566958498045390685654448574048495473945982729148705002201206063169644423720973166288122675775366905819691266939013302346652036807186500150269909061545905155555229797531389730671458151633976521831228399163069046438730954615954655583946839193100705972215943012867920775316727482524919428594909191360275365278507766825094504614973294946724080715213036217411935035460652305532415317098310081297200058852861878634882991880921917254799102163601751857081907634058440865966527647767055814093955103770374262360100920260899707238731394343736317733784634352876242274710866660632651601219106154922042508881482039859758553152306632881980741537917677549182224081082676734547337211367010832954474733115362590389618658658757505127486924291381682930622374514613512496217300063191412695428924327813974384628450040960081201265674066209049465754927471463711965753047958932830851575407743458620774621747439874873270287716295229204967404047677690410263375551332595716880426328741979298315474862759945018205668183030775027527300477746542004738129545801264796396229482199049419061705843036423152864450082448269950666926836366148879139220041720680554222954185784951978992103690299290140277237507647803182168131425602489985995005525317159291025027314243280797220046682291559791416781338412746347586909235553571850045203266064736253488810259701370322029491750285353161781080123720521464416352957948941264677803698861790950839639146366308196890824426982436725008823632757340441532422878712841661363857465374767178493083696692897487899136754677026346896881320268765947328154549742086653146054709263165002220002759524958369450417008768097917263619807433548882951953997120778464707412410797949381867151373932218308163317466243972105521642037792961714821439054881291192893131072027620827541724761975280411252511521335173866868716571101950967942314756490834191078717827609545035032359786821318144842989106632751664682200974413400034981918346288308682103874254568862796667760482428332803887682817501459267042570633379405087149476528128222291066297549381508399847783364331919610057204486906030631736700995756713393310825024535647585559832619983867815635657290433597725017142079172962611117750923499892312121061609655488742048462472994632985682658081617331119217172941580463551498913555549353127637662014204761397376195921775473973524960766922245381472930813776858887802915909901745002150633577395803851599480565540027369121200534409659967541544958634599446689209935284544358822872823384047432927176774633248801457285414716634634245623850827442703343892092120446405166880960405172462898996740790072933956015695561149005724728739255183524838244871246442684211710585311599861709262771625645950257311050403712445060225645447224312537394250542756907086763464939058581947342255319795449973056309412539088294942615628687615189485576124744110924681262576422552307104078183484934969711829079416683889048587432065804413958932539186038824784918781811467761125065694947035364866041695502323832624180120816868937090473217813106596288954292217110079268644349656528780658569246782390819329593071644196134749169712186584174924244315732179797343570512855787540082072465840286860106302786583771182838924314716865531958162486248188921997700103863415785278150376743324432948429901004172279278097963046748811899459907935022519575443972741306263488910036794023730621660829941960006028051905456272170131414894639881159711192634126111755025467114306893462295603410919158920558804119867542100385578115904691873588865418746519229693513805897291885876967042454318002202747227897169520076114066810446017832504605713799304816237228136683560068974362212651302260902302442934540900398723668564118284343550423326645375975769499870102512460325811480617132497824992721770359417459200161284887380450911917653837681483645266869704350011977919127969717354032127702241733237675629794340863143530816224452811782980390334087018230577185824473335046091472091805587470960789576523453875242128566484708129611261934053356217731663341496975804530468573294571989048400695092296759729212722474747478745057237852878601433251701612870800742155654460187956680492980793851852894411184307390420139636493159683152575683906841092610870640457823727307370290883430479638170945725457918440153824878538872348972570026466986967313864389895282258485990117920382026115086200607721456238893648039873784423195135841668043068607865258696440280779131760759890793931817020068717024376173057955723782747315019753271165622120726893080898883311143488514823443318692512238133295396276667703942014458355088606487490683131224491901186732286790632404174281664116986861113912624955991802479589001334598636786949383587523633131529893160739342843137904551571108414876601043224863100798325586545069528189657761400118539159873700185712418382647886735270821059567205522695980938633714436934570842424424819924098072288475923194971464991046227349318557165586369397131119629085910579291009173409669666165524489569516276807748019693126781525419666535043002683989089081653651350363720170464945753929262354249727620420861691317692199590433407739414624183266926919768307112635190280108608655906465388851804537390689943958121647472039158800369847323371958526825047251704548270338444890503185571218517958588661333386709240613025028688122318298047508969790115051949223445256007518238085272571664121085415292296058410341153982095388557101909844573552359078506099174081824200764340830136533289008141151297574709081783983245531612686239696515746480160982268837689043713671042826389556965412462288221593289931368908169741613032908459384495434563028192846386773396661403438055010500290454911367362173777985431545424848314062791009325381586023145196333769192191812193693761498411843896674809102931221812403708394578398505293821486351374430376507897549931167753460136458661171384387799374938677067173541050206979093075742640454220948888448889655879053121058802545991479207394927396990371126479327134624941537385644977656104930225167950617606113576688773140822229638013838752259418587541788227992764994554073017956316326567145294565085752909976736278089589777393606931751483828212554994654845846424618377163511587793875638712910194203512102919049393771652909122231680172462952786096424918389739860365805908852175721383408058981462071164949829914588064306083599706054715641223633866636449030903071996906511903110160594675109300867118851600786662583358073839087851899881148452297186399207535436007516476414427694749695547931547763854271899527152214922014525725892224651238101027836534503133341224076123324042221805112759882411259013380732565045224688085151881971437157538054717540651038173896489967923324513471661179484711293693285195444743799203552373356472604315183491940516929977941679847054562946850346243783072149508066220485116316120605326725655067630655253325632371732737174515723339997758883490259419198503121288836856671865476535856313142665756598727818127426307786660097681004153109115203353295755066076992901978196596572163155171139001384200374500651672696179696756128585657157824533619905602949043451675790602334451743977838299565525437046129769592642850073612365133235382785450292948075369868535925166634792964037595302867484618930735257563317219539997324206880228173102488460144235394111470045241238074575136104080761419168570543712222045822940688503935049984468284070015245055903094364098095908391818783004072245374938544907413735766274034441020637022653163278013213991356734984266442467908705765780008965652076010584466930876746047614784300646759176013480092702197229171242125893705439428003345388229231612104070632079194984595063041405486991160836980665123808740987986867420936655905179518551345010158264189059655125617114794200268140181603295755749861110154334119987863521420435421370630201596993973264797213542860301453369576524824959055013371564781438025392891023122100874494035774791270036572476173144442043391053695168153304407417497015346018121681973012336578572354712311242961902896869677583023807289324945221475278965344206747649365171308373382223209222923308253411181318354017370545137478742225055996566490805431595743156901696596881866436863125723605071155788527983359596676283586338483025640374116439756041560959884187716260028205213924034986298432884291043393138892164672561445979383888175916046819509924731353575217792059855824638912903269464801351425646026389641454734617174922517737026043203747737154260796676865616266319366452451432759664026506086414906158907356201118108008424585534071983615022481886573272719700561444336764041359764001860041621305811308547387201779504700501311808083471410577860240971289290667907891053585092948677743222717246078924353697431787325162022894076748755647803483765059390030954710849748460497726825552498100382599023913613757285308703967578282274163037297974190910399422031138935907478209116205830585779013076359471909496717536355986242825781496446777195409786816146946784186097350748211421970115320045779862707277925056003940298143038283348318318000959063040038865517745078746976808290656050966022948859224548380827820875118838187268834702604638051009458751209611419278237327977082294609207850005619525273985445155303801780341731766391429932191706896978991787623906237325918725655250622823209757099155511625197796605211086217781769203371112126973321564631504816235666034961378193873545138173335889524297322386306485799910752337925179769066258922084542383974325492633968385439535160983616584784869045874034079710705231746099550888888959226790763646477325829307135830932660823546927276728731070428007138227593365795421862852911175110775754652926075153819134671057536191974464440069995710596272583935640791261284462951874063116390281970806065958800091393468427221062293016299343154949607447911048382339017166331339884089325313419040316591282016764485082711637989766520968342649584424461574147348339193578702594475705149274140146292457228773985121521406927102031508698297378169230114180220419480915627956620320221454289669876787151864108179441321056329591446267836924436931447257231060239429996803962326324150010543758286177413892590398228397207496156249552948568424342226499932988222825785546845823579777097674581923805397142402610309668792374277447022078094736029965271078609270495708041818758841795381960539054953247303442418530146626731756767682198903025273923380392875142661003541686138111454370200527226975951729025935349960634285404124807158642395199858804347765842851469389284177388900366070521283268572458692596352923487020029510928724595921946157068865342711412207220624232568690896324496253415983006895817710054091575741258692121491743389260915897055669734656868008493104102243015898658059168795893321864246376511761243474283926354326542420570207661835194691916711257735874493720492202510215504423784267929094659564953559646904528949283271846426214479933697500358466055753612621762240030555658693825044982357921489463315144650877113802789002346027437643973472491667616341615705087041215530997849677222635919833902608844780484642688747558199252752153170547573586411251080895263563894008311278509522971575432312860830914559835227626986415977056777604833245339705395879012010880788902090278528006808556040772626037000600484824096377968525523371987809194920704133637158534925809213060460907209788326303587982698419179771261408069395113326178905335790439025403854250076259752058080788439694441379065079129227760343396988595316034033647179499004127059069253712564735107628023428383976835747222864975780642180712516725241537203152519404425399534601262372925298084836272303978015803123580105921839627218982627852212880067790658883449182504259671094076369143393192804052674993498714249101025292375905542338990038137889844922267742994617856371913546253062462235227473532195395853609532601253656231211600508335637127378694479217684944481868019450080623266643558224767586263113594646628747060574562196687094532049721888120411974872462839660638895378017911115812832726819527011960429441541140382759381869263368505054788182406933131942234956649794474072202948987452854487300875808829322910954344241658245396497422574767230712566160772890979586970729690279916871402744881155178430118231883302275474546289761689706836538277071461290308038814825170086662496173427608433257684387363251486476437147409820762874765209854782282258584366013753623223789837223547737072972171409215422408829236650096235461727042357144694705314134050482914929610813850685727027092141835939063677662369555697651736914476910591391204361635008756064369185376072820501679202630585959116345228136486364823586127437220587038163355461578962207456888186758950041677601826959546722487313992706460365899805476954501945453015253750137291060809894281988071720466782863182656752949652236683744767221624538989832822509186175517487952992375664522630243729508961524657479968024336434265317157404467437019196209362029576099025079243670092854131388396166208445054655650721255893938249767508999147932762408102099386776785305060928484878257111222024786758272400909933526294162393533549587336385359247642676512754602493357017814497922459670854994649783632228705679263735656507744512447794261169936755777441926317753562912840071409447903763590580481329740427605614806092927894432301746618511572245579498391161357294032142935791587003621059486156482875032394834565621737467155990382433666180736135258455485218308814967788895163935071446625424506826066462834991189832116499790090512427700744719624307082377423893205856534549940551534985425202050365474745007460162917126734980205342226205282297544125696998025896283381184301081676369435042654690176446837915896933539796165841166558066554295483124756809660360827070233126263630448053156743791286483362379736181976361742001409337411548467763637029120307046792671725515637066526993091217096668698567031808079568734114739749394826158805006840590096028494027973490871839740866821439197468939141658433244662632154136088567389238499057844127143981877726012797621184288367690465292358954477716011124362214834718516952534796950269375165098079534272863518578190004794998439761391299977576281266325787729458833412835646108342434818737276691163462812657268828887320986917658119924957737221477809799248067683863320567399968923941807078255772256652687042229104883348238029024279825270801778742888400661611205626601617387782317491766285299453075586925230498355424720890517761772024492197557088883355499769099163735462565159750818225134454688381717738638082444657476963694387654986277684675773646477006669264443565569281237000705865642476108766327714950973157274845356581783450810437598479702881478727400789898178942039402667998641120048912102792017250943862474452831742392683671439824915972728788486586930080388549313727194513948995084295683571644355677779655063972979634518777591010804039759775215709949894191747943110319522184764458066368478022938623511954085775395265561187069955160356929391604760600928539443479420595862719976578775638250030837433134783398968963159819269558617028451959540191776085920743707560741701773946607049532521344863788425195118339644853992454708152702819531242696122883360013872524903811098724770072115008621896420611880547095390978526698367683334679290935777097335154809594012767251582146307884568471939087650801352500652489717043864998906927843040761366699992088669657393338363587925345956451911370271321583851729388812427285217137327816500280873668311655274070780563569371725441574196755493534003306177552163481833622299988894703551108187568029010361108877261364489697755571650711782827356823824277238256542417618764993358268067331926301804650965925949723169284167239680893290827865124237179292583701170221531251112314447664815000759441677360081424433477583439804198191591898670106775095982779935966927969193161209163159796652482414303486296875458935270714962159066299330291880660368599870722941937217376959103671046066877366631668003565652585989575254251665532906397620315611079583989596364520554994201257398925192957881592780702946858609915900503422229555906205518426431495854334553340519476580429589026505207846082868470885901711911857685687377935994648581891360193287908580241389483227051325365286987145768655296326797107316936189297300519034397912479439598465139482637863133530019292874325944142685578665875428261242118330929817981454750684205279638261362673529293252748576691014050584149612345427473769158986748710154337085800505495712807373052265388900821186578609021919131665233293755989277472517597978281183097937974045337816327515837653830909206725986264062735257633213906592146138142049170302708527320820068175174471005558368089870104460938647702438605810743256257810326910156780597279570507386713356891768658551059347781498780105197090151938043224522245464069305041884819924661394496257665689752297377058030304073838410525099882186669313122318700912109876735561793698011146897255436758862331463556518551134418234586454295673531330856497702276935634824824431244743105423114081734866154084538502911492453366576759109004706191290568522652168569632162974107177974105615803188210912858383965013739467777175025135239220866889015319703391437753231036925994043715539134727273241490633297283674564537939574130982005530489090311109062107951720616643239451418733562638108448436117930765130916895473156007964345577665701333748095061913923707053011592418756227150257070711264804801852773693933984863755507818609949150105710170166138437743241633367991471013754998719631343185708940826704400359258816335403444073168004695488001426942147997734151891627052137316239555381723578720316521243115489007362853530256823681093085424145675506859686572241565314184808009916618978182030470351898745413745762439024088616121567930428648672545040808320890753340454626523965314814698435065608524953233589924242876563339293987464468583711503111417958794450763803143601115165534350647178547222958872998785237118941056401824964726362037774551911036037912297772967753483071635778623920300572480684801969645896809855779438108237483590517125104791468105274223206797429535949241901548272583242002319844142505051156781887185174165936999564188381567894727306974383396112789762636738722864870008742383070384456583978068593783378696629044242914948264799540266359068507377167192241054518742455441037958586613335926026636167905354803254241957957972521396638156161750257838221124345320233761940903016470742187100523655643141382502623374070046392721134104128626443700182366057791837565413343627853194188877294312807172375910966798212565512118954958301288663415062734658220339276932939754091985908368528556505923315843417769795574461171882066871732955374300399458309114274713218036681690141041259052502606259692124434226630888339250449405272484698867530607933311711529142441836116149896237211828138862794080156835090169846739177463669136111972010590100394867494945763693373168755379951349552631834537241274924116238317242228577988788701811183437545433426491214580725590291240858060851298925847127189122735454508280326467133267934112217741927726868860838683770761748485266445892410803340770267389678043546922212787244557207328960627178886889295665156323963663037450832525749265528816891305918271335786941051538211591264853878405542685902303911576286421354792276949983152192483669857390458610997670145685632148475425934603266266535750193143785678708590512900913461817066798563942324770222041533773273259139310988522353847601504363454741769558571600929766526727012117540850226178132056710415659040740134635011988245814231987484479702541839992101795294574235875055906649228423706695495406487616157628102200051645500404703379445829893361810105733359228552085605859922510724295602225755192686447256082445338006968439334080085661468828032020151074321992391397397800888518651730570833807395239092741905065462387811312526638684480090607305261779557436343955948029823440266084325308095664275882137468802421294078291313339578325027094430674836800231367523653064157054954242976646844709705107896973361079080269752119916068182510405757314575866680944437801851506671366886128503370643459955235108520665041155099871178587917037229075169377295919114372703914054379450095720902050125578160094603059581330377481241970960835209476682020718419955381482220396334756745074600308531928273814589922177161943269765338573518627900116241899046484807501070413180204329188742078989961141150555487466083224751733880533352631056936437418416220891982032881189492617388637506862848226117434689656575253465867701649646641306707583489739246132735425302455466807819979052389839554381858161712052177930546460323030404896864337111985857358972428019392537011729116233738209532603661617039375314744143735335474419093714232740379011436937001442981281046633723381099727818811167764297233194806416048799281432925557912725074988109706344332976462328841449055991090601458407472588071631756610715099379058941630660614696211079825060957555663879610762926746811012125555161858200489898714678231578034542181061078371986466570396075856910799486378495616185161643009541373729364018866159122383022977660075944593673230583838070384115553340919445323980516948902510059157624731253781456389359151578901165426525048774800249578255398684240519348552677567895775115964738385261047964584772616729738868016845753178729641714319018702346572612946855171391285206544708777069361076971195212505054878588124871003826838023239331633351154277888541153907887149003591598882071479384609111095397622084355880529221533284148635658643291220723958452069108506072528606316241023348286448237848583078267789550296720835090121212559676550238884463444466031947240385465957806545060531794650631340696444157457932268352387343338323754785182844060697784981207369378910499485014997620480295678939782397267332116292214003981676513120915340892367821483087172130730939311331205096039548051575696318195885998323569399783904312998877441438144594887878455349638440789820410476772199419614032346533057959055796767096153480768740819615694696855662870536689786404140270685219259735486863978488728997316043649735514230674856760379661691406354780034636764702557934824602831341154393552773422600640163787884721569879750977892170915733312083997884477088428155838551403360791950577456306130600113564986354994334828851169651041831252249873678058880314775744431431266307829189834760613234024427282493019292604427940680264980695712176771376999226716028558085757776574119406662795366670559952619331495755070804940309196033601650804193652729392972428235080418015303328753414981876194752884637904892946757714179593031600426260853476934260045465423241020476305268776381218741428174818794200199911107070755898897700140021569225227364031230080282211262882129666091734799091333785054692421992161645945008855619185340723152450606407042339895951892341411886927329369799336232672834181071794423440458889305426722342880518331976644141041169447971052927003664849301425644881982704064610662832076049343813010509079005294134787519722935141568913567633830753676328713177516790169410724039787453010847469442826720445735579433756017346869530910830585090302201294515257713290209611512152669779179819825464234905069008518345430623132242750935041526360380840376776848270015479211135610398795306149980375781933541850115324783993176792647951092784172433896813346911369820645889369017428386458144512953315180915017627310648046327490338525448727506554322384917959089544443994537239930149966340775921001166038448067522650139167532523908153706022552936835609244398012265008104816847162269556329385604654938434083273842770116066557080333056677127855545155713972501466817474829153147789946212495469610455346483994838076533828608367560780546543819892594875688758730358389810658341850299756156889227338603479025539669491096414301010774022550344008605244940354071585481805607392175590813291688725434681648301742294019920599279866405167697764533249668676760204063448022683301779299437968538443823886536777095117026448548847574671159203467145115586614620915799224607434863777584290288894682791023659176225367512898679011624588265147740477554996088015572082663129682566870670815948537699194525107702970028814817958269016623626072797082971796145889699556073013864336078077854766800198798838299583756997105771263045792682701229667141830370954344764196243512660054657909035960363091352764099783158343399338672335723026154047935159658290652482374945108756927211470722609360391832332869056841782456841190890002525680187936986369419529184195459794400667709386031957808452243387627575364522073251683053500256289475362815201595951029365045545594670622047693527418212399825153711242406425434215694165481624954777912785458382834916289453442210077745568401750057295320872446528593556671737506491086104191327496287406807651443129666301974560087559728722486686918503979314312588900888598866003499005162198487467256675250629099824380984828217749012121270217640181618144028316979674265646954564446929852398313292010570902414863276383457825855763586086105507745233007700116214532487189181289594385956536701690823520630045026418264057440793647564935760843148705820712224778780511605713766221551227423035270733676861318573541255062704138780871839583087225771825857801493284220959972301124702167210556088103729814449219594537762429315569473987408905934520174006454241521196562030179449821671259923079370438616231023374444467427537927497255218330209650333664999647556507717967226799855748104229443118736709734005409855632138784293215407885995652777748932721197723589058606292733324656185984779434164458735965571643049071111786893230465585394115897779894285513540870690843307587367890174446269952200938102104824247971608077961679117846009927544595377237614659674411948262397588711894252527663979247036846368931319061512790368011165421299781106106358252828529248081674507693798812826554521306469753582981997251965231000428829478705468253717004428768740909019170883273427605498616404040298168273748614681416715824549591393655770644775750200830973342812941015256033277251299134410824196910741160154374099107542183297373496121092183389357499113350056698825612142885326034538112469651118543909549418596248896589029762093637401466675232284448664111362935025183760652062779992433039892510100019718115355019265936449315400205556632003051507876333684527966914499336880100684459096549891142199560567895003128439889461051788805632543135914859595933801528671856671473956845251845332402349074266066711817689726175264945652167355444703692255335317126196419596397667436746726401966232362303680065846031074693864697550471866734978302015414670194439219408143189866828650093511979631746071839771960890888701669727118024155893228613800942901174903650405822751782267028555603134770893617555827563397974461681935803523503122352188699047336995327326473112001456899718359309367247055430935520067510267976237936505001368574476865593202310569243403052837503494817723023007695997070991845471371559894194615380048150864389481293177884794771387112487356539854952431484875416762856860230911497405786238383624488130997797031569956469264914824872793339502160195402940621604061489307918256965865711341051057221518801808255846701493956428097795618619283504901463024931518569756279952337218221894451131520320530525959342522018247988741992668236901216796167867268730025845423114083646073763450375691090317419027809952549861434221104721014013418011351583936944874262416846033257839558398268160434630363518913726768659088206429167182748728936753783578633030255323315784559412973026760837365427868652118561200655553531738670779853920421244597951260661734325498098899413188628987607840983373490522303202812971748770911290711127821869481403059382044698198182391959792224203538222881577697459971538380746270470736937072444330313024716076591048061894536017536853237122384665789087130770815576597895106632883268795249507241086740527566410030789460146928475000236924654230141318399726090991316776393696379303566292234665068439800871545435786932675925170129888308641886992849140582270429492194713065143117586928571831954655991552457693889394285344617695640141706708758496665630703875793796785532111675676818699425151287331319245451807168476917441733203374842293699457442998852480554087192397178250288817078871623206301780798698626316811526922510594233773164348580528745633359730047820681372250211224175017369194390458217485190397176439417040282856737153609313661631935173719113957970917020463072159365060783708362243514802947585312632034859821791942629631129713819497341731266949204543471307404163819691842287231696900611682461448379085101933371775045342083447266682818365684659006816893758582084734268857304386950059343365674115893322195780062965518252347236381670220036179064149881545351311801919861875340284951037255128777136765206491194948550399793948616729577856036824998704144835758560260385952796176341490430470119058117096296387261190580132578754778231322186135737231398987313852275424195771970053362205410501018351244220357295436373297822711872186944517990365481352517284664400882186304618490955848378401128715569074291879164288105263514315776120884667901399056591282080706059320839944605158820537602077056108537717190086334295197207777598932258392055628818226668513798129366239185836539219310116483146714817609334104736288895678847576622257892205796714238369045673128126870630328790847606834803416463418577345973720759370934887663176854461214397176133625426375782092311280333428365329664445979658694654148550422382916826624181268918561185531241571903863429781509027494076805922057537996054182973190324221233122177555791985136466248806198079217372512185599285761427632477688387080116721809845519522198463392158373709192491459833298593056125491123528610336524082814600724350774478264456288965298202051520718916840148358767650418180935089041151697518195816998535804857255412711877141147188848986298921575364480502040275837479980196588128782077056114433577301708118425866117051753814354899730947196187501199527187323684718529765020095506043193862213663231915048127497049598799194835096476746563811111926412935717642355343533242402888351728401380502667706436978768096130023604678392576147878818292087953873326136699116934800332736747070620329730708032728212666979175411763920895050281711401735931634388537281444494266244126308168238193323453255138508515900278909125679302248620639493581529319013011286330829363244378106467505389555253156894510043672183104582801229602091212336443605369857529883769177749645956429022096082221082489485868556604048308609141260691003204908126877963517290942406667145740651057832542439335823109905849317023954416668410316786835915581729355647653426161898283746073865714183904999109200976994257998176882518070509766049491241638405940991870486261013450013794460906574803593904076737886032695871025361927089031020643153945698723534118234543996844827000095087873128460272119672018434516967955553062689188062192770325611163407377338596583285267476757331887541050283644068648742486558929211341893596280146289355937473384286288299712762841679239311713104492155645678570801711274565079526198605414614693628424932925049199929552791077673744638635755985975967201155797985659445952587122656965649375176924165549431412164370747534790757413943197172965481554024664027914299401838493749728011815596815343169316132705979156940253789386144328005246763030564909885394006269182635667594510047704088090197987976158300056310977099079587446424733467289827595822926154357260547063180400711791154755157880401061952538660594464348085035846554577020481873446364170022113648623580159717988631623951551321841610992949912558478474184808805881880187699158286820404183364673389467031077859654592706895509462155851533474880961415777843425818168496581587503362249017074816304906853488645079682214947889314803483158473954000827116556449197499317590261064719662690990220610556175809225780048799078071305315131273926269921309430517794006792303052481269069432334078785767041206253187759073108569953624480961638782756012002801136953253474396311710203295468048134403164424150999801142637824500799790327933776203460378995498291024966994275003654106614722002142271151985150514513686881746846733809037924547349305407014528116665020144837306306394876733224491382558130952264780215077200065617959335229358311288668774854077565144154268908497788585835081055908007664565302934598787624176756227896894853610451081795040339914656679898048164352840414266407806534065638214762551189758747175587450447176464395891802263329636748486752444707901245561413164626483689507108154531591216659880230710312761983211842738530455340819834036549301109695773050901060220199950402218708289585499730960260321878755659003719310399129348871261331611882180324590318626845716823260917580309544832102091182753825236920648713697885888769112135077450520185212697258686092631614089141131800493117948162966080802271811436815647883027515437456280419232619936142887977899919791103922464313615837001121377333347324500987418113582724138560907429392529553553620015778675064678368245371011388412279418298521971544525226618004403443555971115965009603911583865285799958444106881057272088068481717754905737244301594340390452785437641609766766600173848073524074938463492558006554792483307460904154902704999105371480719018973993113545438025888168363121718697944739505620253543421877821791359408580515309066901776899228093330523436385276273387528660511477474128799747063035111938059619236577510345001243519627895803000992858461651560708659766022179994289005880830730021160240743816513433331927826386976989828954351569201928260229570632947944671889257479976749898350848888865318072566987942016224306801203115982544680830252881806841908090618199916987252578319007356644698834310170679975188990436835081979126539289680371496563460404798770521502486242735616757760696813082510447606869876833605952912121829928423693131617884591980944668138691492123064492306017529170885024716379089315928781104383852497500995632147165576186556401188761628133681038907624596559451232407246478040359366509326055324801535704010302493977462843288142767443119380960889084544016337308312933436785541129022453251291377623005345661664070081468976021572353574529090864434180554932956424920685152269416981248042314116919254418316026359821818131623359081254757843510768571705030837818044514094098674467109400072733458109170254819080025632270982580561543087125799621816744041925930945099062657125218806574959380652508250327656235771470755743298905355892471926664320296349491150635920778493862267962185957402327652805477956891687514719114529552721058587670601926699791599856362028126211947094228461508086374178968636975018827622123995111208019622711819028416910198180254367474902784116903521818162372986417235080255295503359595289026302741028635757793641504023633923756897228258726000313111743635143663708787600226734854699344005486444557156437374555518402133330414127326831454923338734848540179192314802266536914567564855164899994406804331288717778558924276409996466544921608759935118102928758725189286556363190481114961392584961663915381854265713054035156940714327202557273341315461004086069968050482955946709907756801552218026719653227670988177195017941117040087737884523399742762088265493275185593305528356084951273857545559197130541939560362748428394099904721755594934739955037999372838736270486664149863272422621436411165526055463244815700333269021860922502798901464813196817137326590148171853982330958418808446918674834961325723933463792984266635326071805220892242077598196052190102882252475724219249929189867196374423435738131121928802547085504333794401247144180109048594137439468180436267390700158728933845260348310969516189492934490735755155799718259256741693132125889701405244078280622019597641455031271719733142380244402165558200493157283619196885567815063374800965656274624884771644934945630780893073690809262287036568607683628502248385621980567458380522786419987087982312065466742984204765677008074392253735468726871468768660347348011194965963241083035831983956477341223155577730055130484919459922907511740684368204731760150733899012164757199141930208242511640090094709226860266855198128736298304787814998704048672801788358291491077350566382598956156355702819039435920218197650322523864988722491164256144873762657683715866254192787206384612031539639776091644489575827457587154528503185217336378303557255214338929837522253677958814202009448450487657772654969564032320999886494833168814091711467742098947287620425010626921044403438079294618448923307912916592901203366422193410141877646293711849719527860675197702671628356899151716346210088531853660618804418729492896401205228126303127561232086362496204261060033216102992749220321938473361065437636605832997831778733800118071584383058065574795928237410991053975978775751322433909264139873818446050761865275446697295359023129286353915781859890002387341955436195637316782218590723835695439257909221769913997159405562044367304731045637914554787703928066127195402365724251825640328782907121596600026613214453210279449971770192374717109530849463322973739542328566540234250434594546180532869295573774357043659523076777225781632885748735024106918793032233818802143613168987257702821255546012268236194492987956453097695215626859124374837955750748116165095384323137123320796734351020463561836006249097763949435700767511457785865187010059398257999033625009006177553047894052192173452877744037317249930294269163815826325872605664644959427022932407750323381248238258811914097014213643127978225757064461207437523872822146498511174857384493233816891795851463274889233631945433775359077203734922601340350603095630648596383356659174269794819993002372587732533250339759309068565873152336077090044873023102992765174823183280191984842523173300281065999446156030103323878245196206664527333828173464642509000518969598946138079555121925218962585259460548276663446139734711110399257896204054784488084995344153134313838594899480754286825758947450928995512694777630707664485681212523914507133073696821093392278104193270119731172104765589319889177737760305006991849492626776469705552863187097984799917252407876054529031601580387417303955997993486206760654381370894984081633700149447591547970420616251676227952062876350365895690324104842406154442690691340906266886974518768037135099281207585039734074482268196344949554391404818517370702390779866355665863757278170408615813217494689770356260321333249570791892479280536970063394725043442091347278426360601200950787211841783284956495377000347200719403346847104188979382312631976645524979490817384406493867607535848201207571945768934377552662718522274067355195028796815795184169409766384818080128736752529234506376739343278464675225245608302831955647028062081694867262508798922771039017333836968347680055798124890088858389275210657158285627711613223554542843067316483973424384516827307696585258945995278957141771525328904217913956633015409818588241015617690032637380320548078980247160521888343856576377214950293132400092575779113866452579222824268342906152993198480625124983281884328556518217065821624194231462316046318806797885180917077037094138919458674360612668658512586185138724163179422439496171010993256536741507885267981345792560347550616182754026424815021850066888455783713831040696325028841281281417720946778824964688209659641587591837582916292638789933819518577109593167410645095835240257109382459300273099346342285090169371217806897982395102473802901025939551569517408197203527857839883071402321472822502652805563713406615842481359191382570480283423135229828269933705909642300489534269674618790529447179765744875817408482310011558669235779827094348999012035485297500381557182317471633529724909433598551479760776479437547899865870166224613868314323805647579600807858402688632540051297483872341154427399858409692494815420325958002617408838567591213505952049511266360675394427666812483281307429942763118099303037100538439089359017141815200048679218384605917306114180564761986692314330996152232180567901217237475225469422769614707365967929606830793336192481733115761329457627268958029829432986054551774587642197798349416389335713980078563158802975136572121028127458040725562918493881569295340145000985937154935388818364462020776553525234228135291042887490459548369419244051445308826263932991171029547293049708173096772621062781678255000221515370549803146397605984628161095588757837181167586887658503940721894013879831043151318558529082027081775059323303040901141266959349403546462915647511942633388152725801723759998718103616952662628440636412823926887364957457625926130075462508927334073651167672241834663984767946564981210761158496246486052364171432752608940779122247671933548558172501792767184262734937693457077865862608117920365900113419488193402422539693743316355028238075635076265263795898986534869240469596518591338555640499272423943866956813031304111430864675681694373425177021908369743306047582057831262407070483015938811480688750590351444626860386795379705805652695663054237498558148087709543945894500074190251560170919255632792799743504895834532118018756928350036955504613863768568064172032643033805173541640102921034472233404550776357013418733563765731671422471615497374562564362773159336715726963633000544420414353120216620546480823657557989219352408746695268189234992950635550038085890613741566080105139017058593516244810495875283787607931814865711871643623113613860376691331891315080683608856694904005194572392955653153454775607850320381093967089362596941480780826458158723954568440598362455860104767638271090486940328532267376739180272278996929965373827176413246882686751385850330449647960210550905997320436401251235972501822795270995710474101799720224119274532912472590759404108868568472782491422809231511065105309464540011510772285337912113637247209257026952193697941225454549623504684359033789665982952595647924418639835598037116362351748309727932849152415851684109906953485172710099331443301911745216853045950484751942598974506813144921346042847269171329627332159389887005353141337702006407142863258662379580483960791921245413953033863518096238107642685747152908449621614295219070193128519024369170200559332680606163438860810304739616321687653588470822988251963503992543598749639351194587500601699968521979384764575684929936906063779320319975919835727924428977107046679924772621825341814705879863208984001501926222007484313973128233575895507491441314744083141559962795514522715014497618282918090119560629906465955435305369993399819929709957515767648983652790991349491543771586784092703232073050986596315565535396468505690017619066889306732798097193925315359688474221886914139480097907393346239204191327999062181209236502763633454287412874003032040177808256950368746858288891600159419925112485492209127874286605131232657138230516006871035891162129947428474959268034827893239641827327876910495212449881135489165619301957330419101062062270947525676857656991407603137922975670432155864338801491892094561522115513863365140919593996485573875249841096027334860002402605639657094941499206153518380135603698120932787513145415359195118842930707261131979816373736665429698038234396972422706304490723518679948867110075453622675971645486742023159850958087211864726987985835569622108033645685284184665210368887311268899067998739269104774164467805525519383010074486970570456422902545702205404947352725844977222307578515306153419761204300781243144429106460822688285469925356097613824423300896832567129075288707337645628871589520995105455242482908462934567996630431924039620709994945855058866011006016227770832741238789198812704775126757566265065374654356172873643165985635547560748437240437614492051730012319753384251107588455273280813553643129924322882817176792868520587285827694569927473712558614630893099751631758612590038942910354728611243595733289699340822280357613501597913570728070849442850056341717591727377660934049970589819156811790047818443466055326632479074639599430714975678353254951044417627826776648890462128909098122005623948631164346656738178152144225759975671332578867029798945869843147666598292365435658196490622663274742512580826505036751602689792483859483972427124957687138754265452738803184443647748705423904133291324738814749046793131464086355071787105097175002371502418437909056923821431385075258839843816193710777874318712055836330018642920408953144564986200756504063663775752157624255572961380822997767901558716399473432353213571111978266089780211373596271822458346096004786519587707159180247511191786335998509927162594213087974620290792694150369150247337883058026632148853980485232331192889100428882199455489162321378563953975831089146016936646692155183211755218252853332043169288466186642234178893989737389627796744103513559162450263255948079579278816511075985152559339083658929352724125061400598153653830390464953465228758382847146758918875274219352096306044099102646659029089696433217588011073555646189453970894001851160742406666484905756882432454766477018396994766329783785853865376156267431607981654613217434833903968932373892905788063318393542923080992058288160530856027995729466701247789640048498624251231158962737606526442251470796471564211711801264636499282338786040172984950423577244675088439116637312849311958957225518951768049242919867332759693716041987330715919734232813666381192073593301701850415898134516702246338312772793377623791925492982711542113167874873249808597872727952827624263685365347140356604881385482600037613038098545989827012656535250114083493729642455726632099893181028092342237715965475251356901990583216148900308630622929703539987981443406883017583833420498282448935319283321087029553328722221659361874578210015411677980089191661037181071650449039900616786557004230833198770656889793852660148415663251538263104497006581006869853944870002143448403341196669740904973943730687355218826419249017296415120424771215928547387758482355117960128397571185601283955049703407823984724706986845907580412303649702032069778354706692071613366730712029038812862785202862155827012113644561861094164103042329953913091512769778105030256116425345293511394802739777000856802984226994815912124843563826987668014182264439864773270317860868435768155839723057384204993899221326819180727048915775053687408739407640031311231170647535268405854117530316945291851202378069397063689615890812237152592368334542858067926789369251226824750624884495063665869336965666030690522860718258981723673014304041551104564551042778275955618577761451258637881862242771349697535232922855216766379919802574470035706876042914125520570561759687735502564381677608851771908497777467778248375870737117848313069275305738026940710082620517220151763583820552146179864596273025908103047373855867339963547880031761025727199658056111435540439126901267007698963106800011861434512980010155696167154330289159088680553959779316465681419681433394058695463536644911108934853293367110777832527772015729261299371326318275017465354696041052294828560044379364556468900626826996939149397944577491528418304923130681335606734330286035241470914655452697181340830135503785936373517248946913253245641054726792512739779145231885459249228661274104666523760512665292361039501362490420470156238661699583628496620146128023066906498151301376522386608255514582738382679520252201683891906881891518766405282261555298510731831973363658895790428033815765506084829928611722870566510910833148431445139187898461455045147291443522532470667767249297602378483049738845262305576938210948627555725117818209513294377810433336659480970855391205873729903392851468128231918051860752766442717336611971378374730052681511342061326545293099218138619363923466521665263498385374397660307778424018382290404381402267073230419770672672042914674830683288520040553185843353091061186627482345703549780612608943632943521681357669993771102873347390772373122505844903581803498910984932942022670279593529664024865697842189177471871746111169410778343959345965813962034926550389942399775208905941158078528584241918264486045710240851484596738603168185066140101230732057810521446792560158825862545364912851436770700153213445086340199832976636880621413352572167190851778200809909912073225896169200324119085760338745019766597408619801888985819645599211688476208301600491737767121865808851062049231507370415211521145117363159284960203755586566690955016425847108058733104910057158136108273996157652193562902725858712967574207745180596078949594003201980858446460829740793683676790548391899083463290887783924411923386657253386926707408117013977119187067494662833984136051849144243342408315854390040681675658162657038827404048549597318263361748369758151816109283762294435396508425601565791282822537566050189638035489551229014834180788682697562503747333540941845075923597837578651695222768846723383768948259299147703110089649716767644243116365239305386482344172307709889132221288623636064339074203433041051784333027512375411727216604802214105668383389961147774923593179998532316804685438985959796309700307032604965697993478644125341332534944195331433837991102888569550834057413087716554112801194500997321270696992791003961631168645300450006396683567430734560200660041841324742875019313059058418400491384322362675392930924788698895778187460128970621586279862693185373042727463094619139298488182858639401796353503706867839146797996598544459350168334732761380138565912874926715450497800328911521571028108720048236693479322270178988041996438111395590156689803559748442743142549267426977247183696620470913396550084537905590025604479747772191975959899954093884414014650383144696926782846422944678049536546956101265639109820659177307910454667394737240846797992751630585509482030075624435691058629566104248018516613367092631302949622872110382878302713415809694549814119921464559295991573516472870942225521500184767634620642863589456334552479621751234312166068823797741471046297549307906810194067349804694773923044239904203488502647911569496448214727249645618140497994502836279871016540709598425328944081802032499597908336230129498202779282248130531871847833555346649795130353441188969596843361914372286652480549896135240680167520575465279732380346401188926936623298226575557079129361063827937562289373716489486792634991298834600616364522930502015558723247758226421866818493967149390828591432699763592853845780026871883975283160041988838878111407267703115290446637590028066171879001332446852844069160152250372128463801676988781280738600524814492725946038856784942306061210270828149807600095279193494296297740524369549274133410037543128642146597047921367008761921319521606991024687447816494940029735639198344543632943562020462949864688421850277856603161350081198063965809277772496335493609174844187221943854811573367749524602170560343911475680308767583788710918196073645359167098751201045150523571011821307152442796746321368932058343361803056027090463537057565322676037755788303920679392195721727714477734710553509412111269282733853412456964472166434949532263826516902803426644341067672581297078487656830458412702823335604327438225478348502214604469596362576950935239294830024776328395662895847905404752160551506801736975675869925050617802321057684780356630956121935760023417224672101039473373893335180784028296623297146621828210625337560308643691635973262629873437517132644989719657686297643664813073293819164852729362694133372742994116063031828757873004539668178287971096168719299620203476196017917548890590713930784553998215401774707923212769387658370785718137209873431476193751385087895595602308616457954471952305452732994409208732693458174053848701009991603417997911701363914916639492952489858016437917761566103845733260529011903306705040213544423171618798171937438584133215051191911935562965397172149053433920614835064421641421613913889501404142784580009972071277817234626691613299083134184522652621567819195550534538899912373394379323743379976937198213339432526910443223168360736863266364897707300429607009383696067313492083011366565086069234171273060187974471475596020710218398477469388565834507831546353663075781289775164692062286161020192742175760094537009353839557172433884250070164236617484443829629257845149912293271381135833332794024990489674247784872245447046421411619061329100589580365798878976947507966864643735645342523009861525614929632500923364232733983822006009509034438712407152194232872694589165063633197114717288284278832706094261729528757849343264522060545153691199309848731493407795099014883435274156441474975375895942635833209020403806695856220429623538029702333292679534290941443486176979786101763711728369473376281527968892790153749098228043694586695160475310794069556223260034065860873183514257949288324338252622797681006543373526779655912409760346779774317433573011707487504544931351413988162289981570801726048407156944109225625190036681034617745745172619380447173244688681914080767325373267811643541969120551191728548189071963882898313817433510795034618187185874834040834208978912839421444114072468953835483649294005437536421525527654712159623250343709069043172961651374163814219778212308573908922760234427611694192845746705482281161365929607191272760915897688408718183632448229029604652307053192846218477333040732865308547640161947709314609173607684456258361831629290022633280700270191198832814320841481659470449392628511490535150927109192743616664560311709927327868597862776184699595066551180743673789705964429429760621835115417834810183275849891237750062904020170941784635902018574456744380942590261715383278049346767953138608071743848845621719166569452190457938231927526240765706170190471062505596088663832095487229189288270941883609061920281749273144132256509222452707000651148531845949226672709886852888491835252977795707757724093736696703208970423665515064569692585991676851534899321250257954829210872616524358110517218695207325116488743608417125179501936103141598653279564827407956669925291762874806291806149083307874763615188340900772173629571178554512233796325503148845101034190812011810062633604807105993516835342089648548619720457556260481232221703986203205993411969846388681160782057659607859754235434386164807684607740504427988843579550500618619876688084969788657095928422612099658418810175773380091960400661795955722211832257216222666274574159833759907168986573590487801956593088302799803191728289470608239486541702027300105487311742375892706132739845363076971849015664488730198077131774445397384029801179961805185696596380937862525318409377136162969736970166937750582141715947681154782588376621371233325773917777258444169262643196224465483642609202972769881572544743095459667513356286876226621294338498395982709241586218661785100650614063676948976547648335647569163433648771716335672688886023989753856298896773974908854898326544898271140667221316778502934589822292901033768041511011177998319641563638046000480204342661511472202435908784614777900123832553483336772848686106896374342394902281422238585928172338815323277740610635978031144354471445705447111525912034046330367551164554874870575523602745887055015127288724239216828916225124789657604782150657736281593399021671311193504829547412726414034566554598333921078652580072307665456611842290377306650674296337383260287371534501224104261472603273892821738523825700755901898048127782592180965434608554364706358510288168453826263115543116462777189821316532112081047960541778705113253723410418134331704942184547261271175640903306937047879462012074010047341572449480121674454701974488566098669977967328051514735714774727620489511213900075497260644472440647153848891987223281030915118801591893458700903779118638934291179639238681896878520141238125132044946637339380845092305372528235052735718445736874269820369674782559738197515281362517889475247120385531560623214416067582787191093743713421881648830281052737490829925425531942560808749766289446065723009322860951012130865912429620304451329052670472174697093683825407006369382836183066380679265009040249493937649376402961005222378502355020383615474032468915215049960875248827552056752730038436247507566496961565521679976383073692312039189548696299246128023526281720930630881896227769349754071021389733215825645960923267084618219557825542196142471802663270593639372673505067024870174714514644179861149385994832307801896882763024698168707510807333403066022592350669643263881745036735286262629860605024914210272183609425838940575210633195151514864361121626216742136706427120913066500216171612496564426819028213074796880888551797433288721422953373679735076133046292314239692847733676230983830265840640925209764504614765978272500018969065835777597310098129040331825713061800888861935634570974423094268399906392984912936532202329648453655005420679531406964823429457056564954691368028024410206529179527807509487861438313213574523239074423745741525372326126872582843114355646931900058571263970117057031301031755968510864040003251446532025791467166370631664903046428039197129756728454727784507145308166102446904457166831091213395207371429468581884214111432224483626855784253725204879787238297376362350496360212152936056350001138344170076191953965906013291854132997819360193271061380788289131301319721404464173581125335954197163772266051982660009016595034289313424800000688370451951519815799522243476400908251390418695586307661860805586835796588697347876046935868290835051715153807010789266061382901168738537695016902661539522374289794003650079145789620814242786197802622001846207581956583304111946453743671003835936453312142169710510142102588781559979206293701576166150882898715918417264730435647644641504867403105376960392969220782766395887987259395053083027811393694491712928556079254017313747315255828862767217904479844650462720894074996855543315465313516887443936042290116568962073894681191339604443316206450721484633403860291102144456921026818614895400452774336151749368566370459707802696676110450606635995300767605250682542225367484006288325232863400481399219062640514685199676336677563115941021809042931732937081087851310951078444334485348688847862960742211493515199622896341813343380868686547871521920972953448756833579204210588174617568910379811829259345572252636226360289709037739859799518739433874294181098774446443547893873814733247159343737638494676115822696034119434592503859789351581291479123106635768478635604664333350810849104376259458704166443644768874378283921673912926518537362531232562165967214535104888699130924262942540339222663721738882963289620379481512957987842663513106567536796424029559039129127812913127974077834016555882579582258937377538799056573697577890624504629439795356233516974009542359133303098261372436067357197838766516992464709119316606927181328872403326499244640127835663290222038358092593702519587640791287387397105839980664382203003076668601648587478728932105932372384526748507457708776038884532355980781128803570889409258777356398238006540818136216118468145394322973235678244970774888980225138530106187209553279166848319477397022595839850495968129780029397470247832782686215026831715145821957816304139172048256393407011051622128609067077010606615440746740577448814513557948812112246619310745690755979349710816647625438216740213539530380682404237716892964420214834808045787676260040291270484031193675025951310266703172834237269087129483079821148829848963645962942924653657774203713523880841772669297119973958238348339329747132684444611223365231627760380709432781597741334301057881862885586235343831648457010191181493201511470110220434725516899474853974708454140034049854574145340061911856982441419534352263841554463644969704617453232500114276655516707446164489344452647374822926894200379680675597961322335345197649037153810929813176891473782309911352153019068831813287863423832116399552573040737972474044722677326394678174632741271049483880473275730459635068020243278654349987341178732132556171443389187180975867471055303698694991740515855926787763830357019374322756654426020529829921707176333374745087984394962193905195248606574614991146141233551776649198463665276571885282913733971389597353497031857599798123272969541423755134478741412585767587561922045677938468305712871039569370532232843027885065278334573264325443568825771853193308384840853608160233408594596538175967254483886086554690585718777869752319614080230716964945328627782200639950891219171994167597018275195854616138053552354026673496703107269905051951927102320934867331615635013664641252395017291424741508029538028472868323571085777229855195954956352037098427978474096147080872189177147559195158611189866758930314419119725971997610589735303119733395914023637446398496422296380027656524097658647370069529326059520945465521995205960258210416796956066778456908382918041680242247606626010210512599771690149996746899164488825074246475258300543132195667556416088222908791414089959899550559665515636466583473072339349268359770907941682328375807238558627011005650369855618461196866138801832475174675755245663659332963919766962911263045301122658351162043524123468460921373490374703312046023848757614106506796112850067411450753346086525445071754919497036357472155619724111085403429964322849921072314262026750238174311961324403599754886185765540633121404488237999174585908019792543223067804797359221232515034739927047342179621697991873053959301324957585471697425476137892738674599431715919165367929604229626274270474582093891894929971626761674413049488377394885217155611481735524573243379466434736844495151570906757178877286713565875423833188683949973858316961117653854360265818904649093415186220494039008177568949022881823682377948885971129482230710684927882897664247426724479711884385029547922414850509569364741089925123194777603371157748408063290518176866603801023926184209165710743426695576963296776175536709857161293802151896736814640321113112616423986126688429601984976818779314852606592481495091548387532983039895963802947329133652396592774211368030575428955907944793759913064844431136592419084430801154728153342546215771362217777806910273407602790866285294105362701330628383054855857843922154336681489471556191018165559149911024470533581363627646412427361840614540422758152112841474268165178757478092709082173173937616110133672811634660524083880657506173126633779254534523817775786226392296715202211544911852626655957649364425564844583441547388719482926487572864452604098094488220470389912164974365518576074500559819018946968130015984196905679576229858266577306173788535194538364761478653316692944101065803980184515528547045011269009229609571059609859618746068477493663720229266963324287863066703694510944228027091274109967160462073641653241311937966411332225460925184848124218419997019598477477937305694021073930514184550129950953974370007878568297186328473296489031341100793905204633767541842455346681763798007035356962331922551257930393934891112885011649103320710557166993964396916469519696412991559488370052301813493812492768292240183412158658668620858899064482401529016098617068857553188796060121654128160144857144012712466885175342119918164265900137625525562043704868494106868581402218737339356498581607165168585647324231018137828938300436976073916361958378344318557188695027604709032741543042493950682451467337729676925638128848166955043841250732603698922790220799605682337246358153283197547050028160569528105257772966498360727506544984269907531675759284723759199742197182368722979055143422772262813274624997451614290578384878057725904640982198467834747301492329943142941460964357675410346193093853543331648415904082905854926027006833744268011455966671469174330155870353088225813315599834565415557323176554349979592929754572457854315418856977785984839278624473352871208733979356965863921975946844188655989763060536218319023440841764789245408067784570799332588205509371486802310100387612061613955459256962363547073916776179435383619332102880046489994483233886403195068655910714996748835338536809826241583607882463364882321104382289860574628986841065263310265589087462267818979352908240363312735885501949457628663033618430794043512370385186055356233443400592767331637338346692982534276826908930290320798476634966731141138780784768869123198612392952046568650551879412669025311683471664232672404567593079566272009430414866809706312670068551705984504967493123930236756998465273706770604942632915911539389024973827634212346565014718087618450092583247588849118012034430046332262848155911437631897691120078636120296842054597410555013295635414447552188519071708310039486416321330588367478047478206874000581752888701549370731779262501344735435509537519618783100633231805612332316982085161385335216388880915033030058807144648784610734648741647244769886201718504612665794253804740563573591169240891978187583950667199513571282434513943153035618558612180259171680070291636438700330413197100436496071146158566920509191409671768664139637224406608413072423577527898502731084125013262943712481058652095832767705340147616682798331981115768123729036175527119525806517909388706627381972699249773948267752340481407742154927440123693653680508335250509333753193877815197678465574466632052575558440947531781696498368838961564778055930028070812066750848527364140090768215400659194961364093373423021013129517776990431724597706481518735578825189752199526093177178826972693841883359552339182832800334000501924396574659964776241790785674809476689162973425038280183672815899941016772690735877719113287240535722409408877596934668750838395076951936428139111951687090884481430660937723521975520971605399529129831161075208783459954316320088475342258844295217021351693466072853214945051006039109581676194621114069777578217333324606909124664480711876722579447855590535148564017681935013757272970561048789417571342396870426726866967091412449524260905828660720378679393019336430176851546300410629018238011073154932531851673983466090524261840214040597092842071756426586251131325566337351538531014528933014936925993425913545614580350755267900546992956994933398322998008002878724791013438618304627547065416663454908410616142412284939961113522887358717290930892580328543082580659383525692956458316669027900902993711974765411675067780198978646827465118264629201065937378668506039339561998196553724051846987494052656569185640788055870775124167477614176653475786473414371302349342150629310118269783729972960630486413374552908070941731669540643547495936723122844377731450228258271535710924018971890601220564301434682724925438317321911787203853210997864332187362864696595107588182192916331382022111212220401076101683332896230148787502707915389524844242718096762499862931704794929117564226629554365552776908067569310219382731186888442783236037810244815892281543931115743536071762841207377545814622478803574252324018346945936432980340397488019289437724677994946118745319750360601347274434631572218426071566686498661273174078062120248829354588795368023493585651215750308230648278912681127874776789782437032347358918000043390187022938302230819500261133848886825979195754018633414197699169047937519925204631535482455219862419678241326898708687738778833425304282512244709948699159500466378408206937434498587182404605025876441604637698302854532140231047203218613209126388320381958696556599884666648282826970246665834495375541984689254065541026551423207663789413675137891083098403633628420776720332082356564506248476293635492110847077608412124219913200986156932078279279836048667701341923612541775038380135591371382393991051455289054499365631817351118692103963456826341868377623375454768064500844952939912723355832291274356846797415765171243117877361244989995666410974109597392307859898591455911996550108026672487807637074277225484248615038946297127873677729900682719771358610781240462862649090293882911001637702723415745318664419587247991605712647512060520191054391262608521917728318295719131285023455345691492860813420549012585288762148636687672125250121215833548105268046577392706434371203858642538569541933958665896564615550808381440814041602769248087621411186095475740739394665058563626263125204835468804154808177915993673125190927200119414530662786786607482647236322472647810244874110697100128586398172909883154076175779152669552994458039426826609426711229795642113112219271246696105497220349676050451890528778637778560733385754267952348040224958606387156456277169020294247150951129546164928249061000343985712668860090105694636404057548315099833394536465171353074709817635719960045442571126211693284701034095667516754975898395620207806502712954265837561182230113942231271508599980286726731767107975671741444837752436274759373270534911482637610228693262395072378048908323781343038262363391919422707333260184474192238336254282074466918001901655914482678926260064369801167628522764274941699081071727307821111044560357699053262667643350094969236946147227408946137623092479314661050060478391877262747041806173283589245077235914850659536440055673807567781529873079984496464826123664620017689823631515612785359128659890599103709708204362988329684131091216216312198974207868559053496370498313000082575472958129719046586190789085670254413522607711692619297846310421036610296483161798793412613846157219043619676293527290700196502412215397125507484856280587985369050173815977570286176669042947144400218758691879993920132274278326200313170271142622198499955823374268791670384917698115120616002355510434983210271859377134075815668358718761366240922381883700019307354030146730456028224087651378491974562796960360139403206890534403363674968328494577153007323091246310016284962153169580440379156350054473638932820699976229465964241174540557115873293668680035858635592234975067395185374940486041190699599333978149011105482885658646330729052238200691738235058296494207748184202061677436574349589185064663717767591964535128490413952953018803623195183760532243160251843322149266704274261018297881774205363245506783018264740024854299511193802427818990534238843406782197671177173487828831415270803473142000305062749966058211997622075272285553883791953664872455144210427459567976118007660498626803637550664634370819040900174636009410232395593326592047634312350166235547122277709297414589435537371329265272136707540165375820721359378656449977729935522666088384027167708324667189028638207423795257230318317633907019157990411884792213477670704468685195510531330352237953315555224512516226651216731581929344991442551228221384488342558987734033203937816471594745619342673217237383410988401309981781475120287885804391168613538071594741655620631554502654757939139719077651908097966369493804437109617749045972517598159146951541722256681822469155506527733409865940057678353769873613187722313279460692894720507790726349385291753983750688986115799206922021621522869851870458452844915855340553920280376362821837180615211283152717739054062275044236048850135908043421927269428352266414478114483308683215219034598954399414226387761797339005225183766850356625105871859547745386058174306566382036126366089312594289420565759846762017530896601237785220738910041585440039928232036590037482325021892299085084588524423277261650889794446113605398793302642539895187251479559976471148057014849639555900018050615095061068945228023973704290230430358794512811420501136994249221356016669675375689996978718088002737472779196783742312146444366556523162321986616159424092274170937700657921604293239880616948818469835990408998345240470818085889871220496503768021351374337991713577012337517909774491015305430611986633681010870757044169311360028335025432903972761600097073630494267272237418605014248734470494281155505590580364730667577235334498101344764902808315829596061654843551253053518368708125299785985645915479013197052305291497964383542982842074214730883256547845390529800179514282274044281692694925500371313488144849967548302313554162621991693340690525119813750112878528328127101306989253317126431522582931733321384753487159726787255298945520635240199040002906592818050225994082050052761429913753413037458116883618525949322148168866002785878328827213473631790218661744240954847324959406399845371844307054181576316160694408890633763023498379583704804154097100839370712367684129599355303896993063433020678214506568292543605203486488410393846086586719237092308688319411579731940022564815751787723854839852553656274734338424962075517442472522507444422566807829192028154842022747373670877483894242764876737793001489766386843483710432725251574531758170119950069706955568874946902528908803529858564191600565334852620467346733692765100832906049512086787685550413408376928977654766431387294724053522095693463935554834559674752976551544458904936375904780440725458027550787211009894848817005377239406505911953392227203387803007781411573496179252507034260837577137817698961344400293250875888365152834753926893754897032349101374796687433269051664187066835861237139372868414589638654657722026505741761836834122877415964346117535002767742900046234781160997226318524270502190893190358931221352179281257999100512931275550965217016954702345556122799261988311545149837075903271853572227081125844189422179740008653874614968329584591945265248347176544514880997945983170894028505356941454026574085883551463582782937930989202233792530088450631038610939278649668894809519064557857590767843973655116732049698795329268793125398562948478624328722909487881847296769597099073220794452154732522415266700981257612691330017223554312096457382153631740945877211371067541851820511596863991391778932281753236437378287015264771913531183870265732197179116013482030485770811127483832950327964471822061302302524450768456424621918826809849280653812718254859376788721040708052296796367179241941756266691694442033271551335265357044416648288745657148780977425558463958105076240599803085375886838412622823273816408095083904340383339408493132941577694438727677024818370173424775343048946862368060893969888244518900787183690245388479458802482791802353868151169689833837817876909533282718205134775352569712163327606754273337900717433412589162508017088042668650964574932096963277938553347087683316196158616858325339528441800708778223458107758466764416958998462106793655167139221412700461297698661532019018060720533871240643653450397722527570940730201004747233901436599606997392030620252629993528013597169771522847012794667107025253186417076280056888869213693945216331820155791431511254385213302523795232542368931853721141446717819010040129297071127163400000078299525730554630374244543130303720524122328637310208710637087918865828570970437452883875485572767565555758351473530727665806525585032461266048738464213553454049956048104643013676717241259305989214515366790146180428230296811867749654176956476193045792872706708877167881461952859931750908603809331763066724243504503905827507893888869734030260688328623400088047937455349249928128503903955915060703778503537198026824742402149674832397933389804993639714711785822844982096453429296637781689489817742252660753854013114150867913093700024641186736905873923780161585490325014913932448614303478296940689245981064340540979214709419718753470322749563195542180874746982159322615386534863908923925054208791380621997921727851983933415819532782180154509859160524135063268274765418877768785103001761762523737036551289965324770801709817661991372490540243638739968212712324678383875974509327258254508169297481942340545012178882108484102020320287496885721132304887799894694845551461643699783568862135806170042897048000923892855806547288842989809754369215928624358665971341607416206036222361364616999142051726165268822569749810984615058720023435358000757052773053172307512634277951149451022293927189970267705772114399691380027687863407881282532716606471971526818994962695537971673849337815101137003512028583718135653535857586882103786366794815682231996326151765378973287222120207810954352273331093631573524729544915672734235766957935420215817972515980459657165832295946774013606194701467249591350429345143411710966969577319678313508961839392690411216919761358188808846818967204769702886340628282164853870895352805044728776743201916650070198232049332138292815857785929078544948045163359063475562866780970375096396411694559627413521029809260712544953121266188592723132847539263587228856610905675761251477848930839529787287079426094345022729956501526301404763452054445832624182333250322083873302538883124189602850877609920170933912868180406962558106216311788342402407281108828809084849881360962764836941443991297823838620317590531726605466922736525440072013354986436208856828931161946407746701553805863625141937477280857060612577808214022752030512447784166294859916960404600853669908317185544419939443124075823313694535766464140438390447226174457652570900719785095774986714077410641470150859654369807443847908548251948890888149440185186187029741289213338481493819935477050474982995655066801373431150527826788302819905079011992561613220014755325680427796286113708282724979749552485958277249449892548059245477350045154331133291865481645612015063854868856133276171702687405411786175151800255365842733398925505134158026397234346939904546207378667911740574710037483930061687888833340616175909476922775898050186237285105500051056978306495442812203745508039786839058102190096367433118587772734615023404743273724463166352340402334004985254586437103659894690781980617870512948786581608993062658423940259258931083842145921156200509986352429551677607779622152220771481854030183265712338227696436388598393833596893378971891686389173131156428806670913706529189710272564460381939764172116147706084430576803226699905849159324133965095775674409389046812091748066574945301003722873500293149572050337534591439268646806554197344290264539473437774217090463156406775535267504587875558950820389878444686369700222255332777361885834468361569599666351672396759531243793624961346940815696394804803566724543945879221920380299837637540857610270748384778315830301509675063197821308387026896780729859456903363763676927673752827432848612367727058501844122552845366245092508408468685521871997304140950799661491657969842982671425513764696093267786797206040636089947494792615370931306865255534719601919899224255555896448350583514095156753861340767122367904405285353045084854544297058397221201292489585568854815555726514183414681943440361905703138435854096111808298284658014870752568072042331691148057939733782504664893777904005389556567206773220471930464021630763938809354603800821841023944494126387137598868421311635978608614117918193337105846878076634711583007430923879245378645245016488591493943445709048173673986134560617349398977097207244542813936367290792147697971327276946722522165245565602569929349486947940817953320442112477517190020094478961307526994501589329999965204168871362165443966069006883234987761528774191021763024514351085507705479568850940244286788034439900260274734550040868050012108093533910858046380217507312678515078539820602477425860215805641007482431369281327687806598266438069833861839586409737021164252033933532155889194078000332274021114400285906522935250958681365669976678846004993363040510541307924016931918854993547392427343598379161837300907461716649342689291391871665048104052133554660442029605618002757120568757450896348749288190419226161355679672457199429893219126430727438380310780114347981274365083674788506178586043109239011714927632949048089854019318829395423965142317002398143034156941111430092026334715332156388684187634556602035181315790096619830862456278269028021603239123988730693921939640970632899099669166693214116460158838647600205250510599685450393654560627765107688296365456456611447562618850980741549934849814804895540024902585632434885243636603896337671263091399792200616816857816553393547548096050942189333960896931977876637306373932504558545327211223897322585999934487611815742903421313280660248855316516855442222659842104508369815638048585034859672534435411594715394135685545948740506540432400275100487986667266903110867621558074613832304090615430855176149578918071921878080185344753291924232900374527454261175033794161792703140812602260303195744644326914099862810010234794777466514011207884360783477544958635375501475795963645739009561764572097454675268744470314193307092578298839693827433602826951389396235572430267681321223584168283283775544501708849844479719269705265059315995945959089790681403075903107290405501528666614827031821040640301239516642956001298359704392933660682081206160404995727218542044773652784959464149703883023453471391087779716785843577216773591885084043568050023182571706438650936947054018974614097425771433107981361471457754846462813599191197959716901812491259689713194489011794054588161022178219435065696424194943364613728202759424565018743429265407973234869495805449993031114628446445194618351090915159393160699041813232776868919194579393477329363523514319826673006482765933942829439407342932319897992928078760827385776734245446331742231891069033939796244022614789269614342958303034092897424855004069812854537228367484939626027294611861116232371392403485610165906857367120020038750012708419034087720968539387558959120042002742775074626696427664281715522872343836230169947095841238377433973906026776046874541270957601159824302783359917051886501846676433692121672143795970586053735116449499629855782267194766324659378822275654560810176263720911132186288354309342366216834089701777847600008292514502259431242073004161625990131968252715810051268407703693884267763910627294388229002333377123817031504943027473298311003190542574788677236914602017411692777528054915354410921637636786483740392841345708585103049438407912828509590955604104505747030085058326761827667220953777373730038993829813408212242786388918002518415382697129154950459070367440190869526368329311956816338644026460259668626342158420641356573384167704937853037069822210149475109802293149026152553210998932486809059858565713088652049864098071071752701572215704794175250129768981238325877218206806497200661484392146236620837164647021613148169538138601097603708348478730588718432253236256314775176895701991288719055482584579174259598363334595663043586048642897366098215858779572021880919635485387253702764639029722616700609211991158889262514693901672257048953216620891105800416620885089951957181520611462801165805717336408108724512471542563071449534770717675446396229569357659267925808272939461737079890400971040099991173199007363417409700909391411300992743904204301389802003513820275144010535143358568366301181829090752926701369879590219135412488345451377114709194500746774246713724934783751052384772817372839749264354298284625564847269773114573816264060122037086995938944737698986572008523279205023237548939117229064764311913104400727629710061437177228232168731499978571082638713709674286543986735687323126138139535262580125445125401618415309204256395329029141567694678089149463834140057495787237588308849096081042289145858811574222550266628464071808816408398150825585584512507160454796319795223869958095030410364829658082280518316808061891424234063533814766421233649749705051206463138899406767536164243673207738145923970462711968138267092275878191632442480086934804688968546926075443931524557480277847355173730437170884969886802380552539533125789790418582665212295839633429960770308129316709095656169577986587196804635423287148680890213861145059958778813733000082371228388533211386718717215112465924196362429900565789640367989846701584741385273218741504522837152573283844123669202416994855263454785125007896040963366153521172290140387916917639410850432043152594156456731461180347778600002260444221968780921100737770884938205660238983044486179572897998722721470235711704887706625748969611198752753105051961584679852489837820442886416574491146675252667429854214883705132436348889120493418465153680661780322604219235783890870568887733313908817767803522124972057210755654626478130951709894767932395932981544580451667088427943853966362580515179006201418453438348381554756612432504990734429014491140234446511004304823966406762674516084147634386496796246529607737667434097532134529467202221738683926331611357866835151335351688683081826407738917349526640883768222224717903618258630825731541477675592229624829178290371217909810147024055787433069221739058828659738156167264754841724005604313207163007610251711697586057464326312752530216731444385276555180288641513147385564710752629750817879748049238421898083451042723493370537976099063860980122922315338677454971502781403331698533379249061245346272264919021159046535791486922052250032420360607845806353542793529790895189900465162576977308099485640865559858388128608417074225878664884286166663204730436857024932673548145799798583486689524977342806428487905512596426680052243749570811715318028907370139609985454919699757132338725112116186324984171096346736370373514882530571216174232342979674652845772430207328319836900296108813431354473635486179520451373283031144403857390061661409548267358407462093772491622365259608758053942128936093362567724073105542396158712763097681056183457029212247596622324619469161375339319025798750072693244197530487536023427676814728728851946363710969452754503037785376919701313468379996178466534649234164102501016688233812501120590637674976539927178463589435170211911199763960435708912003520328883569823794836549859737894518179669143610363707975607914265200536641457482774212551028861759856996518892793366869936688014057353520085723797266016700109002692106748931400008257869839642296651917913603998476941325380264507391818701690119915207790109298270630383608567193277157830801657774454699962894499075245824503473192676401895583571655293008605250623551905007426954578811414602926404902749733917235367101065419485020048026704950137538826063192004252931428106425354796383944039748209469586894494510006377677451036774125300064642103518976526095900974649457571392939039759356357298676734140228416711245868909101525261345910515500013108375033826694402889921668369412745249432160638128695985847993785494776185086493041742005392372233374780271450435667309924359679543442031968920802129208446022165472780783804579166832986465754063011749962770927964598713769060964016038673240089898080139361310559453759558611808618591103464234898911095929589228027513237278722561216410833857367443275371736074953611143526088690223853351334739046142710595447925229775354095780440386118206243432097505595024025864346041723825134410670010309526200931042527254460991348090898392879110588187496774836632351947351276411650356350178865292214812206695264923477931169255298408812274635453520746966302769569243963481510608014697396107027088041318630343230699542048710887111394315400244455552887712747082228414698530841563260189901147992618662583460324710911097861436065588567630837572883005923232477866285203424596676354235975652542562793206281775255526007329943886247120148985161523407807551204540355771343976656486095121486376585863094156542120039251369498758544054925548558544620835909267452392311355733959870455346198024718670969427180913626419243247426221973564343409436460433195658064698004227839195645828755575841775690140062121514049343326254527263733512213911948863211537271915575865515141187084018252268694605729318640937006733606753229318309687353355800226021017819577031457262661907243774556201024119806944978673123834230571544749861203621314920239071277100282790221701444735741637802836722463289578726103483669641216341253117432989752385904386995590422889035978325148488742237663414168117377423455688130790109154755620535368987579957843879080575787406340853550861074633168246112186939927595631742621640300498026322748410446665530847521741325648533334235327694072033023375634796287068872970710244360722132187690963240074833651489770457704715784059981387725645736662249531438152081505144137139316559512523975996384133452974849667424759307046885158787840366304635716453206893760739994632731038837894072836067190016839054436698570891305883178723810278060148665013723376003676460597878103436004463584560161158920242175918240811921553624703509584582507850121343378677176196458630383181563361899450286765344672222941226077847422911064634811975401503033181987225767364135942861524983106346051993274162609477972091876046698794899572574790706815816857679756528197238176423187320849053479537037772778810312324347285169069552674787857517380124203224470926945243499904612078152542124872548925176109289955510607058061358704598584264004501508127559731182742576901021851977579114909432965048671180349785762138231022221754367494473464149603529804613921212270047823933624233985185553576702720004044598938002189510359657047492976019514234318719603580471095379972340596363798647545586767755818162545545131731215602781283896907302369031841415880529345197273066254435390496643138433318991874080345718348220048328831443123845697809757008254718656107956620621109055911163743287862752662520464275425708331234725697388968794154536723852725526955252014486743073278980832375982872308476801837841927266499752889252957311642372080389307983574618788219406972671530174936839086384211220885323616503529884330763919450542839602033016488274485422848458093564509286102118714755499524991321362795752668296460813564314267145559855736815170841934335323322125969308449689201110107297066962858069072757631600761693278200781328794800473481288768295037095333251692648388231319179100181927067170328414814732695208000286026525841874687875969480445121480719871678390826322008881597507313704000152060913076582258779826449448394577076010876881211387574222344250930496286132270486609672228941034893285982015742629390952053876193524220760618670273334005890663307300950216775786782927226662926747614378311549821488337265084912937819340289482325247866308784083841715505053093430795283944910963583253737939935000538151450742223648859211914576783734699729040751892848603739970274859637048824573995068175538818268355729647804898500248784554763584620351600606143704993888736335294655238704712706776145152865347256169754510718977876828028024559153935387532844392656678332268843720094708019587095818587549617612686654027304759682121444224462659175431987204985738752980211329347915633573863651783395701768443134675507687228376060069148366839191199022561461714741829776253863491794042210457459019779220345143889161866116273285982651935804873206858784685699162905335929037957823122796951993038571682500284069981699028871312684526507326514570500042475782279219366404008679792707956606943505013827638607737874141575078576318133449427596312215410384902095424282536502375723213246361621760834160248185187650844382302846405471754269839886412165952865826690243875099274709435565516127551538024642639879655115222371656602991454088147403788090053662224881718220566346995619348645953717728254670293675130422788021987234322118196645170434663334068476500062898285653512251828171274742330680620759497520177647032283404499869231257261214786047118378231735826203786091210306957173556823220657043731182886251021400161129294060503775160491873503104330734172015913480907772698925705242337544308023557611617036326384986639977472193097470331293683108216942671766302051914393459353762310145046728668465730034361477291615160263448006225623495276701663559764386568632075279212151987840626835872524723754656685535605234403886379176312854111314177347715174073301208129750154523837233839151679535370666285718859035707523548684162734722297125653545088671138999188504701864712563853144096383391194516487122746700946085725342693083133272143228534965134582896038339928509174713186937037560446547317378530286041533482408276151513005917334836811962042617823537871854602938990739195725851492557615249276934966569905428504719090509926502718528511652375557443922860991927293435201363411904077306906926072112553505045584732835527665979800696896281426729787496586251802452788674641094082032478325110850728294071662483303609396623550197793497660767300997786311830713965250487332491510412027789806430550380015729177751536099488506400755318318254896830554935467340805958811939771125813993489084591355597409247062940523760767792202344196831413507939737500256099433557439765078027739265400064035853516823465357654015826001649290460170338147920156285772819570185197589267900834900442834774145451982940914772910736930904371680945613121189358918109007147468784642564598559460396897940716915168408091679836911413893698209081128795032205431312711805527994335168578233996741020480476660587258527640071056140319796790663268612427922968619472056323649643470968413578959426131822757284198236897923009245419259941906141950622313669442212383237350327362958237789921867602013374960494935111975935066713817066938609030366310949013738774908843965781316854884620392431146530025858894163876980507446948054116471989711256057760794301531766013959321772264549384616850283742540654003450643551972337694943865769333292467000818796422261246494680638186188496298317874504010422386704799586414022767836781167081423931790152095749688465770035737832534014969133826221389926769143385326367629803731623961878043123218781437201590077525212747767014749955026725644073907677594766595917644599576700316243525480005468014538361428293807061047016178798820533775055131948481768011994874769837934942737509499095738861610695134750281086009032049756477388161970027007252051796087919183859049970999323195835275371277990580846045990693346834128492376099557481651869735080786700942906956961238264323339254834246752390833001401578290970702350135780851928638674649941675650073360131548336598211821231485676119732174096693054733691644140487088728590025596541478387355491303667080579263188713071275806866813425853329134731155100092783747828413692967233804887465582638220478081985937932511700024696197794080750291333074957549803937298818079220642124144494862422693522395410688518095009765929394074660736599392370391226568069005623471670611751012385274258596995133417302112926763789624393125702187230030699099648117665830360311274660379502062423617216160272013181449562772152515037259280765600223558309441373090642700562184419723600306850202990521063759861294620246964896127485360383542509408099654240110659913724022668617265985152420154827140876324172996366931275920559778153084719247008712652173841501672415043894984308334188097798512635124764717341108494540256286345192360628394323004611266153019055917285512780582424971068534127895149557450212884368271569706991098074208488169541628267025443432922179901566101070375834467475231839211180013988320407701419627199291496593787215143532417953906790624391168411812147946872159159829835489212715946463088425978474715740310275400386994535694919639648883275199342754632758052459317218591958640518993960581899875646267844856307101217751919071658862052782441897723214017127341471540080361617387568793483449296188165979182618892539821136861077512191753355493816272758811476305916272421798422186401767091318173263818716451439017869269765738122516853207057997818994971732323523487967721630738670013311902040101179764248746798273930086537753664561262958805333644153126560916023332976335232569780394296862588975430812242739183781363931263813258141689051995285341952962112865825736419966295453770331748096140741092461677454075956429181728145533450301833457242529116716137129492796109757913253892553996127703486949264142092992892582989737613701498358028779318332009138576267176127817492143847914928735819749318163765132914814294158841652529697566669931023715707390886925881292879386889187129543246353363580980398537674079797933656151761360188852584213779122851840904240917715304104286569564292759923011252482384461731210858181284539133850038116407735349142568356087393248498179588102813451132180752965603189457615873370002671854536607130603200948102068554094137870686879756115182126196586519801640297163268484993435572021692147675446842810494118243104217791081342909335744998558522376579832988416099386881848988188722480169774750565931443863108193715316944745100376613178483975183497191469817489210813660524251586086299700111944129956797643400759744638756582363663335033769844858788333385780877138548138725669127711929231500428851816858772480837725523435324708658110352613930046612112900957712338997352129493910018306302976875718078937256211379519010717088464178580917507882316117534501250832783968890712919064203214403268263864871381827150786348083282398959228216246712562221238207030689099400476202354743026657589607653593768606454275931296957146101211694821748231932306751272936795791210048488713030262322859102144763971105893922001110663999227775535524845663314071223579903774183638467149473572332206497655401979700542362325008065906637478785509558476669303515826081070943806313285551710597362918813222360955999900113075241408071329244845970875972113151320287179007351187249027316428229118520047385128043683185248730812557060404383199369388572891750916954631621647369658038621387898039368444850028104004286879789143718607224927593258446505741737100993133057246788943722821243945134784691889030185398509649117451066026847212061758227442050454575800967660272098119823451249391208739098441164807470678645962977953304756405489131184669011370364903767935290962181097657839096653097551988595593151583187257264779291160299155154815322947056232603955686954336139627706839668140733397005496939837252520595806649639778809675286888601620027747403918057700493591569604191213197072419142946874340438189093443801762652374924716152484078660873610497682610395949663459230716711992537783712583312572126691872722428469423072899917904518783278375504721488882748882564297707290463762246412447331130073850812748167726215620841421919683510988529986447021557701195350492382503827670334479251935616235535082892436550641468705401527178698540063398317607416900325349134944862464205090740154423314161829464518783686220237670913823909929842677313660581473843973642370172485120970839590903312505710069492377281344266295881789248555556174828871706159441143734116063403579708479465681606220340991796210480912720918135767504603390942582226656596757766952967618701845121133149436177771394687685021384202213611677860090385674693358222597306023625816628554803573587371094495678215931200440834032422703184093400669562828086437343834246455688452711102307135786863163949579748764301879740587453766751688391145063203814975999866214862832195646010466100011048169643133237046914186817179830593338815648992415421349039255016799612776348400680163283830900839666131332045195716064386008403533139775639546063244850493290849263635843474228794747874444540560123933809146528759653734694376924047686749432611032183942869530049094638370440333283363928592778372941989640280077822211485286986717360412616381477872300124774612320341428209771321444017975005314612477366681658063985984615073239254807952810950537766687108399911916271495525672595651219620711850743698773855663976008784384112345774805472259060116290984180168318175106307894698779803397485739466962586005753924487358759323961774792719959367140724827194650583543506121248821056920062526304513221879424119991103379529451186137130811189365316704961622297463132562164321839268218547805925935049243851521530554165755529755671894068517849280269472022299686042976633602533954831878688464503468196981595466701892569558255102559064773238546734804890022611627867874567803204210768698720405758170263794076384356819788617120273131771432342472200475818446229470908349888966963900879843903530231568719956301036658522323237913127469587266321658527531593139929001326618041155007402931163738296493831033770612890300793554867157291741579250272544393119835271537312466713676048910131690440719454177810802288341777136230121935419712621082823103737047796119940710009778507983093133436259736063869388152412783468015557111726357890372030098397945048222641170779025128924785053907050953740178204264420202631143141700264966196854872089349888668101442758660244748880711441280608430487630285785310421626542514982422934685647005139122108109816053549042398136303040835346022235905613188824342701253236829858930063752916358923586484463562625679896128085255393341438895667867770892711749804850623867249393569134923954002810359207024106431085824705207947269103722831712562022402174886130233718584969046812165126402579230945954785022558115638090470939932985417448137248953157871882171270220696997781882915181533118544575972782507539139029625935825465646542578684620240374864099081694303522099993017221130441716933810840244096991338018542793614453267536558594741525475034405639752313459301853092270163994896641035050024971216061237672360787079579678040840246485788223100684196746254793073344115415870547430429995838404050007009669948602509095595818282142528168437873168974712385494126415681341722052543080376665295517883269427073028134904104059428207718291989518754981215685244308939829380987571297911092008442551971798172275892659527177573208795279473902934192679344681845311355174559708609985560340410810469012509271183979317546090094274676837297153518596348504379915422894306680077728027461748453230873451121214415398318914278980357614312504240723214805338545311497138333536882289759384377701957828064680580747615070262871910131346728185365060212120372741143491775422709689311194715203460086452903652096858196974553705922586223838319749602548883584474007457291324434172476880362957448892352905155559982979304910421360785776551236741391836956949192350626329139417915015891679900785883413620637165256756578191675170122541267091267619135410548794439935653846422918359306199740757535092111613690121550653440012624705588348291625030569248470940898700516080195161667337221768784009553181022309189371288665462817764375369173568556052150110928353925551268306565346531758580651150521027078883774204928911960262670116246438128254581817841650655011191806433464421139813590672215869813342805151645060873308953398616559149172189667466385117459805933381500307614247645696548901648936415938037830520994843638882264312897198571871791915289205513044630892168190307622441593405135166601908450275531119329419472928423547941350941896167596066370469887772083046263354831539270844068687595448901538912719604266204578911728225174317036034882619774459242610177999594356867490711226306938496027730648809606539418079704771924909533468529801551479512831041651241551374069925078612339671331932257567700472528475123884759380070121649510386996929012615997413164077083705782124360491810066499501705840931215977612281082341725583543075728175038457241360730459395936863472693830021160111378164950950057939970395127488526681850326373984148582455721409402354375531707166924102102596486852353167025309715277983492957463884280071277249840986131460009966077209928287468985978702294065639036230667904791444228809287701664876476575858732492162671992947859400712271641304100816551638205456019180502944668468864243399213116578047023693251419766554757317005775607515377384858992602741989366924325480693015771382058415857200285516515854662710617156614856598011745430060446273363980718517080801676252916081317971933099887271505901112450376823586556380824515042475830953540394372967648449623966203902971446081626893609235693022740506675195802265699121926096289050558425246825563728942073802243096309826782121940181848408007326083002206190880995029429946167691730485507982183129489538911014709477714539313744503985002750244942436686052039070195536634999617154117831266643551560205351149973716632687670894470937265739305051992984826548316120120937549587063356262058549674483395222136727220176577160196492040195511173142223445434769239800439774620094846605561937627278279013946136689343530368834472898928053452500357776510362484072614022826915229313882012416675824260194860805069124173311891975565179951031977064856624023997003881554397694322126090092400858803917459024715876597238751420525023999650598220950588321010051031855272247784152258212077315517756844613112061774434770671561438625348683963692713210336013373822371182323983425233804984950273257824433452038441691220343971401073940386644908763708106963250717517524037197739588815710984146570987490246344447199461466206358204598829618860736436607216656125523816312693019662649755017866138004511142867080572601375528887323636568761446751243207445940064506566216727939591380815900973588228646286478442976346323608727343769072609645721249361282526496535079016870637655322765374135903828477353556658947304604075126989835032978089874976010894202860268659141813700282979696421943586426726423437232266661960912025182183236310249830579637074000886175526709539344994856800892900976773565654152843610827830578811919588071600610413325485197220065151588506253583451441240181828881865009382128373526314017814609276196115478752607655032521492500130218887318781041118620361223490697822105450428676780332435287231721511630195030001309672412166984930935945134850732169788801611010177379558003690915282799248210098110812575345491389139078099047890684939092420420185166902188404371707737769718510576521505269729212827361924989516775612302560265879240273608435913380564175592260680657010425031610639730449991499668093810561580590164162844831114835244267506836423940879497366389775185121259093884427533899567140666152839168707476010813642912778722151108734185640811371751849295837103631973216519257215383251772629217272326218119033165936775751401036072116308435975752874330022186585020099446691965082198249882473732394703029949899106085975513598224069489755740737916048274493463505879479552342764195094525109335876879518244731124647229375199065187445075072563120931238384538696468312104232257038859911584244933593355304723709787552869476347556969055245255022621010716333871643931972580960328693789963815346791251719741468585255262314016471137822828947287496539050801185508531685701294795939245282664559439715831029442883162131164942722605881942007124690681484690922849389039182693218293946629256376641929286605426641120050166203047729278498801500655293784612000507191286507128861019749366254431247346208141615273713380313877568050149150610437905652046873735129985933018203152507087708229180538244681772427708803264797385199912044634349211659303771781260795312216677220221461774120707309959589191560784332652322115740234755073944443572762581704311229950572147441320798111860027923622904817368589256050352703523777122539772797057911235857077353463115889323208134098801604818264725225803472386135536913836085834577726822128280775691078366453890077714802872146248981230192255998758102108690020952841144087584225401586635855776860620738643358788094568336231834262334987204662984075374568235339186033516084337530355384991229747305494426325702202177539183961190630006658615426661879111413468188215023488552878515666432910097721721358017377033342360822611686909324065325652706676715410912210509404410766074500669023337860036331830336520215367630969769381787454485706626720136226149297788366928817646298124442737478194694325352571094401677611621717520438431216441263716400568872895449364572777699432807412338156815544460716661396934575913906068765546738829169273191046876282909905098401465146611434666487391207569265016246075613017315502025166843082440404238026791996819491535213229024860947136774216970467585775363413543961105170327103608417196571118546925787626460358018657417285430848566333718360867952647915575183609611795987012065784689205905644274041503377398964449555754962800344850629292195803351741875494773410231035750061267744251394576114839785577403637387394638207561183154623139816793934950525328203659638281426208760467528387105849571401378937601690505456817137867495145293305423684016501596439247115777005901684311638419393061383866876946260314273428742565962058623619037575948833292247882158673784123905957226786130336052643140780532758110571687828031741208843346786925737997892404296369569535880447061503701155551716297290267162539465443719002697310750891494926289460479494024697927690740224075607002701722306649995412393170683708557480355502332372444183984916156208874742506751601052966386962215628326208062233070691041917985537256422184655843843183256211762131074553875689906776259007800527260898793480780061031611908018061198425890429285927393399729981170868248093614482805280023368337776897326189158762395220471109392761873693579246849166502439782211144155750770042926815210127509044722626902521274632147347809008359118525895141385466303440093421368148526454728535996330263541335188595687901130842624594127445678854840791585007109301500766283307183442393302172370077892575209987733810170247175638176580696771433703320066419720262428741025499116159175766356710890492999136211238387433146474881772447468190676063352380516555609181518226418563552414900239143230531989200958183806575738003299754354885623132683174654282283233910834899657304087593739438629158550009607903261173438538124783833108336879414576425379242345324464165667480548888069203006003045207571019377605719720800054476841442911996800046221562497413195466799654646367426725442158046956912995386099561353091839429917381835149837109463549344654534893967147128128180817875459146111736493752660568327014755846355535207479323135724909955659283210585226636244764418281203638218152211633358469563299529157017107043091826209678037409053259859403254609307086271640918676595904856364862963510351687869035807493448544084560330873502532987971670427163928213782445643287302898675982795830917186319938721876712610616558328653227741775939274233950344268739373549320683367889585261417344098950641322292435144264744005256021748138264645001292576291363187799980327575590077520514538716643940710381353379771250334694332156537699213373436523292324941035898894671243893581961970313065833266700755731079086799611145588386084422471004428834114652408270577950341146231445840170714349848555573711051561100555673299502265128313239500732749194500530211847534802689466009372092648873479722277819463044474782300508604334662381593791357703936324190194109691400311308794767974751828906850938212041081006485295182688522815743415170429597852067212667709046938266685343786463074176105518323044517193755511817875276885510054194322343569070321149423815716014515830943979367472067740757385442150229824967977363175670940344714769648990695658963975500674486711117460163094020079375847416029313175927661807430442253488117473182812095735116946441389831475645046292306084111824053437829436399117703201300504279681465220354954062529346475318390616752618845613109204573054633372051715975372141807838498228850651540390551878984346835187745280281008303357088018957317443218030018702258805119474774939119066344617341798874033811168215627754437838421943281389321930027313279189217379626202871143388706548979353484894700790970486087742893962313028115717312144694485017426840492426284935154119765552515882311946902034003651930943131810582239553794834872109981406465402498137509512719841995562380547181907145738116557398963058342348058064274105621732163306883195999143542950985300674557476847845883889153009017805871885820746272151824918264139654789812961587664809169288463444158230454860069071715510077630337467968362532666041293019396387003107941344080343744039808540890527769878147040561355389398602767090250286498838765691505073217675544107262473990099726322132528285826112892112067096418775136917625636945745748454585526785597238748553483632944519776806931063620703241775041902502175786864084433180287616225746443396102475558940640286670021027478273302735181365915062431866715482761596756757979499991620673872305128935201563594308678642544161969954776234822134489284013045381003146914733331278537463826532272277192509617293071826659803920870199336338262529569470989887742948079438171099242924268579882835324324132810998362373646336144876554921666651504053132835013419269694156865557938198223080369869784828209678002293471660859598055626781955349568982272039216453372440391516657526265198098517360142523201316269924080147528932130589806259869292000989669558829774008617557287937368541593740181551405776638798452082177291687035068688876306266452081407378005259068840636939813163839355806098412381892914588730114245440435010858651803196455365554901948206850822776251825567749747182518955907409287027568588986496445737031616681072615277020896898378936766903695599073022623020803923762406260187359591208827485827728320075180036831641985425281245285593114806967895424332865316711749474449989354438565232352067057827583272789888475118934818634116174039677708199499748156896095301858591173132867302275217940469329278423043109367295800176081421682595847559349158094611076337954895463093779568303572009701100714199123539223342762416094454140685941478794181905559876853539199688082341916697509783632308969503665710426950260452095250026200049597901832423458346406818960699369640896724270366786642781753892108735144670431924085971811284801653207897570952701758638831271227106081310964968914123033288592058903570322448783975607516160740395031336408529355321893234315800751777387561558991987206612137535458629973702882612436944641708751518642130469658560305810535921459821917529026708346375616471119163969003647498738895250191872385624373388686885234626774188746046716503505857666816954157045170344025062068072363073888612404962851175628489611855666046501672468820879517367866223287399734184498564307580601931310726872116657105538804000746359854368751393718988900247290058946668022841526212582675716177106424672708155470186997986558259415921626115355738946276082109071730489647391846803021054528130204250234313405943106922600245716228723343472263707343851365211735254350344195138512878428765910036920539256372647115560923030191937454212707044519625981293120234829241123342174960116521833662661000609446148071172017331091171877563930445568865069244725491644135432814060761484928375337393147650047964100597902604639206981695278409915113711020128590799953794452004562965237531811441097118086331362942649085152620376762192285997264955110397750912133492780954431633674464142119522226770066944173361626273585639577141972310265628753970308299155717769662410055433426072199881022762503525431958842722303284308819233677237454527539853618655466026570340164444136884578453263064111875509880492539718393367378085320434946984484746585573960285853479270491452801864723152814931144886539265774500881073804851418009747614221493639787324320402881943943935085356718264579879834910976267774315271164131158776433101743292465434530210409817413560536262153228754184440920644381339102249250118212217178492286849661824728196880501284513233945651755579069653570267043656232308169031889202185852131155826202884782659933168422749599226792683434250913059635111675635212751429141237077427889175259890509314878325923981517150546415087478529150200795362425070562387714472930750303492732067128071751974963881896173934526596833826468667517335719495481023363052189788295487755450087873937033905078967424662923045757905634194688159560497072923814358298215166118640241857369954557314035115440390463906797572981072650644422633179507289364224222975067297391472383535619296711257846883184547873638108453167172604964619882480549085040026345054838135284315921342280966783794754965066135127471305666913513722668045260308914010336145397060489104250815324706870452076950930549685107843341147063394506015630453898979277707574729548912064804591130902346916820608533007561344333246419190539304619275004724327979437746314595865829411294872289262825283278147745791959286648118974307464322515372317152488229573594745136573069380052208449017079419098868726237309912376837329287063051864740497119609198723818731825929462204474094680914130890864632510069947191684494656582023584329720796924213561989237563520508194733523624531603795307604060199569102841550484334682750455405412974349047868053629113779039844285642828789574933645576459872885355515924282621063053360792505780971354580103470646847718240335259147793976666826671522641153159990975255782108300973351356664635069338051360794845458906236432245065358252182488739280834348348401500034317269232821015618874547280552756616958946486768213103712310945836041774438492524353499555942205411677872006403569146504888912096621562139465098818869540245724678120247088869981182621109586603104469834044389839465654513794983712296928669559505143036114209478555952775679062414754723323052303144648767467910947260697065588433054245099904784602659944231165654514561859813953653978845013185876637137570359196393412191507019060265675883061400676404317082497555689620151502183821548591589965639652282486982126762557049097256529345057575048466190146265910083068684809020288328022916500592109858890965345105849029061702465695113369034967972970417394425112526883004887463172312569222421390011976428472840867146777685870611400772145737491730170334844250390967747679786736901448656001449244050344859877035589291930088207121076424890522114813729720944701264542363276485856368844853546448120073325962197048548735476006055275137524206536996173446813374020259120803724566244801960712081137477120127867818398016698694646123928209388413479463746800756638490231929791332390206968319728566304668554089797951293993108423703204421053068899943245938066057115777222397043822703983956419377659041460129487259238928884783433428739093957567861424898014053309194043410209714937673094957244882585092390681559848987318018994809356939559205512925909258588283877188631795918859208803227666679553800141150892783236883832366993843370014009333489826310880707280574329457446856722761568986817471372426031548841509116299739573226249499477627160849581988342889772107070350879321672686867583128099076858255576602930156579446652296900647710503207526665067501593696906414284331624140184133012462530629208027680210427143137000923736299404004207897100745236382170999496641261987564890478168334002684095031360313297574771016099312184983489492688084393155650770528729722778381295525517202916429942959555950137112347059747307584051614579109058782271119555978802585637607979978132561340256522032034570251329573860129035801024607446822394052161926839503321860345007919110072635542421407761109301810776565128158037772419057856090722952183720719568341383309231642751721437164986354380142156522233557359402998939524978038100766362229654713992167103100330168858872038534702224065379398349649438459021879320673518470887183718186428996793177065280481415172131337493145864411685063614014053774083901854645903714370699390786572655036684142727506869146281898463636410836042971793478595592077054815040461629461730501890441083814058875172877410346367500748769889446779337530407622885781634461715501309963731481559419419451710142256026562270863422543897755384889136266972158269228184800392585657252031312543058543292819629506033522150747155451509007906953586304080983990544477706856689835934706550814408438217848055508679108539346802405365198825048068242916207436570044201397519679596721511244483031841249911833892367511925116132169941004663733558610080359179353465661821108194085153141471089776212533919171135478202258646248698760295766452329469931731152989450973791587130917272160348561405514542057275500488951912549776598251331622087375772280842537350066073860474423674882360104236968653678657641170878407183141163274590567519674492675338979004045548307101435369632427034582939171408697466133228181616207732273345962068078399888576645862659349002188627862610326498519709180153933085905475077476469099268665382643640971369961019704510864481345720262175426144961618975571152959384994684079313778946189712896634687609375971035404841161589245091252078750777934228764879730934201510149299949652533202479124965203435179546592066072434126647352571244545534427137442127245522358385671108081869961693466588113792964773548079632105437559008289008514848221378152704083068385955506930079834143297579394254751632308400764979994111422697162798674905923766058263301949488097603985309809881174674850543159907065436220099310019818129200233614724833322134382354360348659348917075986885186932346802889715612449374437126011382797425150935611190761777950219640671091832003291479895621391533000631409543885260437462225395310895156563118218472022213521560510840501763024497611914833477116843718770457246050808988317685038037633542373330977632900528246381161464962223654302098028967056142836530089919414709278954232014616890836654032116614902333519790016915718365360276628082338996151845819306129158855428166456110868699235888610751119783547381487545548679974039204757824412348859990995514009643809432684659709263808196374193058852207296323305308678203124134281362041169061297060745096736470458384813753426274382962288884572427783583954558211795006005646745435998314167792291255306033471626628090327927554444744916172316251148015209715304873541667971092798392620649380401423984442581623941720190494300907186585184574287881075257844127406360659552383965670751975895512329493361172102305392965783896767991008025682472580262304607081349984885601796193080615677826304635366029796788152144492953944704542360737954981598417763972123314550850257935210089825343077165004189863836120491087858187923081453303978632468934406793408659649317190659738328335996185949632991265775532899636152860556803142312236628367451992650658046636112315547082655409914965526584340179542881744618644441630599196920538851377943948838229737308641323737579751395603395085215346410584967678993852774152376396927896592310472644941723861072622524872669214983965951844502213847101857152217225364556689156024989181448156229464866457430401729116625430962783760869120400738387147898781058498446225436833877239058143215277504603917168197741723292297005006945554750410225343709058724874034606779901293906607213009108453192352464174192787641436992182075305712116429148543044281386799874207312558101744906424459968003242702292194119891661906243942315261032653395494672482485788295982823452428247895234346183315974145746100239505715433194090664019867137122239231200468720105265988011518347251990613373594766664573845068206085464704556806036198886412801671751763405980091514130305070319202262478311353148621234073828841781949152135645096254743438839385239916390574321948370335959464385489257465447259875880035998321246422466350108414260841755990467428142625314505302024524287056219163443408855263387972558554902806098877527153244475322854443190713527360406537468032543089393657195717334271812835114077065787508450533504784269582673895970803230153295757912934962709326119826092983146710339157440389204949691448187686582352444856330983348630241679216613481499497177178765017338830587066472347557298211396624529737487867765886535870102223279489421746362775649742971560021158580953534496639521833957854924477741273696048615486320616740077837644172398262485863593178104915466743948818173708363577340517911153795853898135977100671402101762454089021572246021659620054575552928216280335482220219342918350508666573140873297345409432230834881172420582737758659976490554227412279701341746519119568525344126217267996999614759013783583496409514053679165705414355872942156841923632146427267953567383493561108867126538185395999028063971565790804585246329342981803760457477124440019386437016396136534821682551499723012078410940728144160687599564838428703609318715616394339656029307360336486526551922329391268617103654014868746806918338431536306118125806657653714345061686561839445055971275123318960997110696045052635378435350411989878231561772895911774394684880573032113706758276183376713810495816119476639731931524513796247052855531722340830625016337870187456488109953502668953525369296009591540275805498489421694317821911976367262785265934692149468761540560130420500546152297047798864574754768621032627570112347417051017395043352928276018692812886980567620229634167176430961088167391214234866763794778759088502845812813955689239787733940527317174289337325304758350335870495129800107960804965747560536617614050917292260713082933783285464559958159302302925581489078580175134323001019972029366731054697538468548517495327803023319324379559755827269302168584358342852787719516964580953747340448397202119103121231476813539263426861650796316812304952601712318115310260379937344846261137187652660182226140817001220017885912283335503568902947420787056788121459719656431378741149870978266251148900901989392672157488653476982212635005046875882040829206862300409066160958650485087632992653720478357685908040472304248471749605698876537197463343640168123169531845259025696150540146051897464130192440512168962560044999392907157675944667235197339698482533517869774841206679076895298162839656861257663618284563921535004953697988444651458270707993895623784409354731110186529196985513963241866969978505582048116547734026448516990078452825684749293671180794712022125771687207951893958883074663416645457321401980225741465590532892161821606157419621695756436936129817385181553008714747650551963955729878977136426099363737646767316906762002524532039423488525379273091830111924582168802786244212010177720161342901025944144264947369049669570490006843571418680114191467350743711361744259102211348454789370619527452084367710034681135195171302226604426325956167648038318873440562975610383524795378173253616517142512039543754771236802919748500090731082816835250971028338509561777424044505531411596190205443110241742587380522875142720382232756235632669012310663554017183360150142902545204619889850408459568952109848870891116615444024355555453518245548795476097948151037835319894152483854761658002876133904106872533872775576210884968685326499540449827066270959762563486752554043098034063139788637588449939509963328170815656735975909638350037574950853446629303818765236612099828558291549545045873658968703971945839656966246534298779141401848550399169160664368144232709478010920521252556872110428633701533869392402643234637577036491372052551824396760111126349529781301817693652972368099393181781159407927271880299508574413469670310041505828173414952710464789434642398973180528847094625530897354991218667239918997071566451942382329950733668672569866086086299769342241134229309230842947632482652262464401662979784030326106568006764952035429504393078054518966739784796520168490453712192126650485474764153177826451226169826868483888384758552865610811914093476610180254181321918560528639540532715588204490210650246941928604409628064169528856297380200237897448537677220554090931294861670262162989453709422175408604914733555445932116019812420341507218965605694219380707769016596296555118926886628800067370932108337355335391208461413868122840586804326143385724561905084394607359415965167433468037114591179438849121290021595218934920176518510976466108818535946676633237071852253413695659020465767173829064317109688955952848717196130945502492040038351027781890503190668184076599002847183800085508597299765954803553801752237106866444266625778166091780188683753402311573500409577732688685690519310186033732048921548996410546638943205513468481293656879894168530466213621425360848351239850744645314209280661248325613114308647966604590168844318035856423359284378228456701179900453038031902233106331548135739375289524808862897680964537779301049140248638379949156983501846359440620737694944945351109913356351789655829688992812795728207044638364321638122616942043995795963148484730609179455250095887869002547290310974017455248183343180101680516727332386417331412476187595746872234138699411667837590766890919049936519832235398405074379745195309363942571414460043880785356190204269606771432409027198078089321604346216780959997882424208527736780429190128118763274441856466939435059187077886983672652277014516340070805730975192196336725844586882735156819769502762108276495533832459242950824838471934129580799106483775738355671878850071972293011049994054060365963254888115229821281903990753492837827790578555615450199828465408593522977103794249945054510263620358527399840644820905343423665356814312560699229643348240154814626488607423461749505598033651809730418960973606631087770843361224565979803545376324163241117278022192987259529590281206513155885292683241942317532919228150990542979061892822068900834169337117894931526803094479257296339813789542060815791214980937868763032579367787412272114581954219695759121915358751431717140100892144917523306619867189258012808757635172309215818092222114791821902860952034907041431275421999040549351861547888733622304238766345942666252963103424315556503209636460749076977997271801376443761079664378041762189465724543260610073007138586077511798504415623470634188981131333929852775858544067164038451239569530550652740475580312856879236855387061482442663744956743356345944962031877735451285912368715429083135038218586061703618885548404515795980165008302064755839026917493228347400174874238084774605243686505220707776672613444707348019664839409856707033020146377350791363471753423061686938285072062738184517225066236572727312809949487459650031981796364843998122070221057463503687278951351278195968695425848915274451885879522607974721415269999835114110537800710794978015071905888641024371731886008323610501405217373202877629745554131951093193489964097291514713670371422966635584763183904981155168457701544684084405469501701723264100374427059373767368063710146559602183439722885469172731889863588352163339492813676806774334159035837561814500596582215434690280920522101977472984747434151598619750632213545504997291693249149536704853481213847139397398013176321513252642827247079560864825070726539053247874005523491549812732868774022926677528911215228873633817785895956906024190022227455007136566355855820180382889071819289060264390897628954976345784692992887728863794090734669419772984661070479026054544515673214666466878234215410483774056106064430299168578087312442563308634031492377127595491267012337430078233520787683209806974865259273934154249380833363488976006121032882227698862744273269651211407286312400299074946857399880544126384503200868254526924691020667942146437508436104070745640868578189414805524220691778003243984614394871130200166119386008021348520519076989703697608485398917820998911756328660094101920462955942439370741679964868980734076106465451864064657736214181599347350501429475586645943169848596083282229549497331176186932579282302315051316604082213123991094499682949592370188724140248393485268531173613722168661291395477439621980167470458168953574994217231035023652667662437979324497115863768415380201464833044427886923365915196270468656368808600948234126082102582422939610145031237929986049559386782353152548692991956672764307566068559606949161092809390042772444215915150008958733034314298332745895929258064876771828358978455567529759463647827952634455061184432350163323061694514585451879532630824337113922476287656828554010103066733832686722482690555764744463742275249179323512465529226008087904000069695499255921842823659400664334109731393798651379673189799501298145230549310376001257200079624330205803975665671229459625329380577971007577149525201407969582884015435839869247921580301601459276448100398228958768594163023183612491905025690145193385393491109516373743699980303242314997069669065920731075849112265822473761722172182881848789606967607384673853975481963339150387536345017770395470931258467947468423739516719889193020306966344312211332422081701634083163965634218341874042962211169168249075685992188801955508539506077879515890398472910951326808957523381829330565290749347430555634634727564961868479785837493335034950081446045431431223376102549374507379886903854005310174172215201173481428487163548218570893031521742480416020682217754570448232100715283541216071173446823334993918552329827728347956174045173124989143244524517329706459003473028747475099608437548826180128832812711983539649107356780096731712429528005941889774199953486327772777190299010087503808461189291723560764854024789026075759655299946230561859983723007871737449604192355364582019493269773672198733628457178515333954224474690448916086966532205954236620439452041842596236899234750344652492089404827218214667547104197076003690602175611255665129675937509722168357179568034001311508311476008846066592646609011779021780210427484892491585680778286647170349548605407917032016644731271697541223624027978381294771295633988585660197048433826568661965992432250897317586561020228735425750170499779844856396050793730896212599494355741228257460131015383607039620064863167039464826632587906563226530590570404351495659618521183908127093557219322213444468714384485899279042449025390989994752750350065481031689535222466652858071555746244984062446654631062614438939160279488718002450822836790775999487144826763251093548916118804205024953647299690471913914027414421641671006561122559998843076616999760187940070465463399673230197980045285139686131261858600553974898405188343189526456771189616776689525180057845923474416616223764364382928294930639457225705459833301358043388128706803754336921946228120476960309716681296446431667489224156601178870617906280610293591542288493912171238106320002047056489066181697668507996763477384998183123310169716115193632120683006531421472004371754348064991431746546518625920852609872789187527144183425078422116157340648572954731537399120707625617687199852473586733908653381931462963728403230842134785151669012690468806043478472929138153720164610462294280153136969911603497076290952548212638145610389679176411537525476571940361458791232063222467131429356542492780395457184214573301180461263623282457494438090480732292851915558351356202647911178813401479242973889205807012446582914813077523171916515303852581153551169327781360410825749454145431058778237169631845779978392238707703190953077850911078346948323168204228322681972407432624885800621185446622584168726312047155108372298080103143271221760297997649697767443376157686578520348116024687950631698649358204917469921792069566613679141424692286283817724050699977440510701400309463668635998017563034268891841703700588865110046783498066836986903777037624865679517350714912457743202489672185724522433207360033078290306057104710970310160705966083980873270246457288101754978739348972616130834831049858510741249670914407493799496733669229496456987785798062579942804686830419295601141391959906306710367203209324892281331829169644086135370324605258637621909507010481878380815447257355005616140156600519850646222737509983139897360342957477246316951362337137591678679415434831918635358196177103114053676702538582440171362251397428447760997427496586506408247343403322457266119003681142296533174547781051128672053182830059894284525989760419514810176207434874204476049071521868962231032652081135205260534178720420797675215322681212992759576079547449676509903238523056002445297205297817410546461626024740220129964798557020850984803696893057873210198124175553879676265830725718506454974359311982369464776360500062983680497186048242470948714756712864845064237708119809093714792133996365513908118919371069901315154495470453963676543283653947710580184447973877703546018780944371608683501688008652178315818416082484180149755077006139858343617697406584272989471200519024699201442394651755626331806386443756082139701033676090404278505583484996635263601252970166941202063518359988270037122485293568202206706140755945090707693447498493159417071089334121710152907425916926695618228649787766090818237936222049780517396866817315563123472519630130907983802105295691504923755575975797035926416562737896710192069678679541907546009340598606567035740597465853168320363870955782102668225704899410355960325301186489472845833939949164797969857441661383051110982214254750713341468263903522917236201721705810929945734096477381315663330596225523984499217244584552298966720633374695786936265627983709828907861076077160958057580760318216275537811623441829165665713671918447566036142040745575287654491092182241516272027716085887506571154251495677803718179240380770734325383269642521978782945027551659175499766063323195954461621872742224146026177162203913510807753932580987066140672625675782744917414447096803986621952343076801717850049767180293164821069010903220834408595886383811920065977839312498383355912928558841778419289465992625089247737956469265710115659462099559100389904258463062685693950075609892057124425726371707062619191370888828855147198403628180429568970247328642402756948072401150938955917203940773750620875307613172982925337005002070181725479306082370391695532849726452622673544061231211382614912497403213168101244342076593264203051644042815873030701677907375543599989038221398303441710025163618438941889087841455052373507792348717417997511783623302805878102889949038015874854575512793361091891554316585016198405539221464803997803518386574473571018757162442320587262909914246646564447241499669929873515556970049939300727702080409413454375428028684554083326393771976213646542535896729267631084928757080206109613143541558988309450132842822205678469663553559633081231753519949040744061683637001911025163772177190559930474095921456263537809453216206254391838395247308678746850734909500641186271019343807733965589258779033249685397323140572916930637760745057806236042280001190628180442724135064967122864880053122444902207797523724895807988574913649585090536048756843624978986200468902823810983213824073515891850503612607579026255713051671196226601663173741583920640860618295929405080323723873550407316511084451866626990581279173041750296492107819896236148269872556975661900561954160927323952722618490233061031282549399058509223610624016538762342384373526464646474321625515932095598457561138016887238026018911594700267001160166441545158426569172744707718253900125187824358551063759076060320931080221479149843624158400489605079839321910585693372452581915773689609224043319246848709027251436679505459418621604840862731484058780062474388335831156110016231184881485133626491487230111177189646964216365466257341659235503173244992488530183545006234875847981930400840816664218559874943357733678920708536250216701549967504782483358204434682568474269883696515856867773163547704947683363253650984863018897576248058446099754888771588026441536971814440096728328238025557136476759358224075200867856883416016600788125244133105731597035414213194387062703047755085710418034716580134894863931934903602964460465711578299310944915029834036480505450095078660040883515160458020335642286816442355792989705198220841965683743001798402278826903099783008980537193181952744969769789736823414626537863274500314315963904728033558321798131101278489288144456401707331409741892319643767505374056183450520911895363536679352225124353726970093494413599516045755539706995793185177013334165519348821648110955448464403799710441188825909000838025237380643045805511812322175580394398920714667895067434474931417120308548235235935123997753003089903903306258137003634741879125037583580415285799496493849413449304885431034506475658486100608391745346512991195169376551859444544717392288023383857210167527708091491525465634617661667865364033953493226560960371716611162434209838808220045145630156914958874970300986081437599984253875593862520154661740215561133365674701103866636570829593028936900477638200157896706739113950513738484513748759649932436416558034458397507373705762910939557173287932557708032544562231448915296734997582206215573097817927816558557855789108013355277729931952905048380482083355407157375104877787124863431092199541201527675689837625040197211047790880905342514657819314698606124476821078497637153624447989719322091202013917224309340383418284191194072058391142654684762039025691143225623937845175499745409137878397235145029941533682836091491743037961759736938906068025057589066332133687049218293533146780607644289416643081660002461168027298586866124576428908877301397111292680641829157372915876366836599517348469145085861803802620284519597099205990086952287642329824586451146543943573417225184137415139357273617712122009190799861798292177135473373956167753728299657557674573647151223010589880165103787975220307920031283280794709552208839871175879917752998665989844662280960724722953036347193295640076357578379607478418545445313427600489316261887891549102545545312271524878978150454257960021299415206529313099499921861471774603160312559414455133431437909296907557541989396217334112435107721320529469717687879446306920583396310663881205224773302295960440505884987749327212702168479930355755594013852713938553554912327777931903959002004453831620213362653968711386730852521716619276998331791386379054673703902656506494439196674202417295145848452169141361009821806138273901504685688520940014649585465556529335284812877415242657501705429223609180721382492792907090923681615238910510184837664031621207362036987770609564449279536671286204597487830867176545246843628782110645955686983184792384066511254393223437874019261651260901812690416581440081831987803225769318946202562163417243550219040119470069280521648847737566963674669354554252038602756108923740172952137723280442484014721119654447460275200218968525642602385374055702912237093093824811124279520449929886436260986320706531939466339508041466165735546628924574991483597355111586429986516542042199889371042393213870369130536070040554097013548506579100502923032500709855926932403329209856950364990374863448035454638167631971299503273509893421680787716336646482384322818197560773711220198445588410098558583667820948677566359327247626700540552878026204874507294891439464362647308734643902909526806026805750895183826371675432859852079760291520830089080630551768794055605892897429926217074612809848793936116098269667990640652985118432705254613308627201991449623826013816346431135626354174439528967253949762771847879192317778504434353153309918722281210332149638835517908432381170992195670336277438088859735997076362385611829828628574124700595196328531656326357679094607914533905536274905304066907196468209507537780837378195544896158777731392335275088949847915524951611208163139151378266081084857531554959805398952510232005109815518398814552273012087416690687206429694666107518136237893047284152165128571107171805386239462286227637163198716863055329428150029638532433967591333940673149942678187042129267056501382978514030052949472046872674726983784875030778718984777477127436784035142685166015313400310837915659693357750425967413824432572914204837248594635358512989901889831888455214191873390899742953785758549402449725696995825758207937708910085762652794369588214564609525305062189405159083918383241860335850440719389820621200723721586089643174312976638729882094692450313890887792477747403600637475231568686687112763331885465794218502435937469151138837715395112356539091525367628849027303469730667881946869955494631448146637159848081166373439177972105769414163469667519236763049891890744946284422650619001726856854473422655360740330869246799834026917404229610756266918352877507962397172232318018155967379599584730574696062824916791963667516600853856572460055184621070780404735029261670765229029993706455907420137709041886968828995997713780897578350146984295531072713880026514489405765150407023331780760084371051627766012031074338173025787960314891724569543368878172411203405879552888748479005873915988463847613143737096926383250678096830246270740459221521046053576334535212244836142885891256499730768458164630549469157468639537942512139275845525566650209229721601620370708947455769202609519895354197696095541420825819475588910137747869591887695001039584796696919985998950148728962494153763278432392866974790683747501967305850487739193692499396083504496719665378033996684692353528633873886033127769045965823450383376845704285543727642558412224532388948826102521437889355578652187872196374640484473993228029099667999331788021511519097824383405204516322113563415191933932598313376129480764106080038025152735459490509004995044897896445070818361930493336250266996980103493017706508164088416556584725328393659799022379265656027515017858397102336302818278068554453772228441379625697487511742668040745601141551339221141576074907311770234803013635092061115255782993134576302683232659747912309597890721810640876800013478530899078973024610344890086900598800674335894269578370773863349350055572766944518534613650491550892633728709027890120913955340540219855102708841478434692016229746666928036494308033042159458017359987503631686881346410737521894538196598824639252851794700537211792637055148394998644726623180910839465633423930609719302137703790393076024313542522613776948140291612969934447752658022102797377041991165386657259036065481595162642103638973726126442777657035401844559788006045812461276460836872790761203218754806933341523493048017400314197532382970816490674924533983170149707204700257301466583758312295133659499123799665766490341979050912188863883084569252093513409271087739358566483742389618271566444799609017055858224302423072438252529040052345237794251003393178560793341753700281345277734001480962594285157416473718076633055294100907301523181600947141770725013237903106217002003169084984141988927547777882616168084307250073711505085759062853056805442122107342546274151316741391698252527668594776393658825858423287829873772193142497843728194039639578168428670528353259810651659749764833899103196140126715296839842791172817473975070434271227204035843644898927529223061411568824902237731755302903238143496726198066680670084542951051607080285947436832970286759063427295294584773142919433722168767032915524115132548775293615057124949937129510538196065452274110780842269544769478915610822659494553903003726503428374881368815044684079925561875243222584643898684609933550747092913801995259101301868967906149033676431574798037190873428760952472506124140048094139396012172021698752049900553791033697107609350031745104471211201142918014585290538180081874125881932346646271713956126349755878541902806752940101050398828263837239196747165548019159839524528516864991587410443004692209892691356698412694881316747378118056485072787851780466878072826975515540770450633640874961532364573196993360538727646525284450735010915136428011305785433332274950167478818601058443559489000667262267130162202405543011336326492580233410083614833618557834310340198338430621779438327790238570937205360713852743224318914212378004025133188027896978846450719860134969034164576015293025917627153242113978755525308500283749546960709702607311679752705759421590638762111043058861498763838061456671211593450113210075368205844197652795231793282050782672954599505329072582611954884151695563201056053018018365267518718650493607690303833217851930959869869118006593155638353757417280858546643547417008996704759800453870002995941304670181589504827413215026306655367326941727927095539596458537556046791248779526494130171630786601308204399919311473963761563191208977125979442409036521213507887809653818171630241565826710727244112021429139529748012108591678091683825930090822228130832267871986097204510977676707019367658694093070946307294473993380544440577783857790514454484352761542726732507271805810598973629965058445110464560349340426657453806544660862206773125935895869337722720048252369518832435953555804750502871351893605031553407791574083960340377527551703384774549009518271534424869356813367837839686930804406973774398063486326877687516589902476724682287704733007530305433178696833963359296344162816861082895749090821400957638616133412124064087411457904673865193429991846713466805356274084013766136600520071089517023175696638926279393643780926904738079077104008713969388605269444592230106797182899073687898578921304838216365741651988031858858172665557426030716458804347328756367908940805430415596911818689601162592867951685504643989343411727379610974849533724848437104968732206057242615985014943285631346515518838669909512189462215357077485706004852186780035065714821024574135848859034712736668949010929988441015553126878999014577090307528951680411904094948621030809034102805371799952832218639166318753255828559852451235004746449777795848351890954247386180211277897825782020130069057062463915647447796991475288782210657372277639992059808662951836420906096965212941105814578938987556634785278785152370782079852508969225866433346970156074038594203065386280212448298507943958007451659187187588194224632191801649259558364675331238991809478295024963422613018552370653525824851674649554613153638577454114661842523349251210626595315241869105476002290398543486718499695496885514333751591895004370610922553737423444661349712583151392582259100667521981147492721329853107516569598730472342175085833410818485697566585961232174808673358597165073203886205092543040837533315135263235985593906111956742720336510421252188769705007687542127748372048907423611674172576775048158686732429837488677426177494805843711900077563653477142789800674892601035668360833774651413824204158246018613006695592919599810468619143745151777666204908041775668255733419447246720432673209539499402895269270401241164465944260939094283915770883297693825670585571608842196204604210609903599231609982638940286954937190508540837401084496942223602041370972964068230651720964297240761557730035786388107700991474963122736147534848718020955305018592800809614740148307829191441949418696089710658540375637605972892936130858098722115681453882126315720558712519684242257678398404084451185952928927667541406254997140217777782571318697085149890524864653021602418504553821280749394349876490305518555730836245106117538152223622487531947405427395566274925827232392700713533889460791610484717786178546490769538394320632783363377222375433338333667420221359747575189133216014266193305286818719586179591454452295514616802107429924288330125150939144786182511805499810252790153191380325009176472487181837065321541676342286284646141956714616264942342014020358126209297417341973964272592061955335472353873148974292921651994586453018892829416348517834580724612721655164724684574702023756894144015077871475012676399909561494439691515899603674015961003834974348741924077726282228743162919109643073533576264631941262212714042507845840961438832532485185465714161113468397740568529179720637352134892966580042333044990044218300987095719571164184109946426199357031792704163540373476667778780394028123121383365897209972045961876473720474390557707069989364359699487285437835923176112059087336450643895891316864295273739304524950670857608737093566541420904928422053259416775399789352504882826050699619436684830115839277435064774800732351975684560079596807577352483452675682124881323759304183350853293420106125167123781112996223168870986210774832395445966131573281559112576823620471050131249166163549312899728483035786035569297723310919308378523165541878652753463824115682171485904325235745382777847840104249788270803412113144843910280771097641298263740133901682438805293160390972082575573312166177483645622137448525885949715834632155145851750327671158974755435159588879028583175282308026007371294087123198342925943308764537817308386727419009324323676463178051475109560231025505238205886769185071067920090674570146981376857979234702710383124462922337082425853370072633601000034850038642396540604246420810877709189616627450093230275983775035042482149549561677826190564120375772172797976325432149214465849377902483193816067457614340971019848048707224120540230726669181680804334352405797183403503908241577234150046134644459933753710060123001238343797097792679960082042437578829037813658441365080901829016384582471393542132277648538544007153086040499840975452285312572824968979478519208634838928345224925964310529060589255414724204248941910314520358988328520705402268379900878516304128911226628412355773010141152683678598250267712116961688763966311915479637196556258790702822045073125255422677563525880520985712485227384806212103404702758107397079765830178375338725921640426931176143607682926652703723553866381613379049231132409637225453618186888380692494742882838433690969911138799682179207542872671502245429209804823071021857138778951212092466869184637435548233258515695242502232883610725860800881428785797580636073157275196367161757176100802104054429687332227078107481218452238867739885307317165566476187749506249449820590849130981780407039204812551543401991064558452835984449517441251589466882467895342406459091086229864000299614167339170476920664604616853244529371026794777391283611087569624712506215802608311140835781986390998851715702143155841266136409564216180580276122673614494707156524170838774042901198740629682894756032893834421187963112325401932837442927927247376833032376893155483350580376428766146368744949399386535347868568404068151333929511524132830455560370069550326156499381217567181224968080589133898891581697836749936488045445705670412621472682974481103563352068355471127163300211963692481730538887210661517006019539518480688401715405882506624638278831319922504073426688845561573367036892102086673399966376001210308396390626641002717027770697973469269974123971940328029028413055517334765782548486372514850029384897414975076364273943547742179666128307627227253995915258156464526901907395583159484578930858619174987810217745506699517758702002435054309792520853936428141514282455831825137977581495133500119038245171935871782657617304233195825320076369203747085206160403453904443692555555779727404992024766880978771498767214995188157741112019024288907572143226401073462964767641525390383219522976779332797800196763942145975836891427597390009925485538820021502661216332587558844294960187760074445940513360259180873251005268547301293272149972596801840400890542649023544541347634403032411456796536731446104463861692876671817562979032072381155535016503083082616752968836858344510054408087478579319547448563252973736366673511878742101806588701050214870793381080257681435427144977934908890987927565085965046932872426789500526072938962360646257344544553795432416839493859273417897187492849580247491355087899996120538177215918369454897551308443928775257072597996058473259957373911664767786820489676184073408544301923631576598607525238329303713054065107532074470718434400255358755386138417958617094916702263080116435315414974195555976234932989111002058320936189924882202845661838434612285716748315885929322167768829478518797279637932143503915717361769668041074350872044802075750988621498733438132566647842830135857376334769684767454913634455426171903878345531689452421868837535973405241472691838021347430940034517885717421220925975684018263454852948166368298337675741819704834160958188016272435732535439421811722782539060647208548041032096713948491254828052798649031113452801098995914448673625850172211761719403946009796318666198279760319511635246315323722531948027299221440469247617099182471680651866888635076435968454711998191712334818760056987386896003134929645872851026330576661816386799016137162722719687985577902584770226016682110048924293404454144042456413298349915870952484426109690772289137401053998376520152488017860971197999953842206892541640205675945846967401814959591562491716269386553037790323846900061858827839210212864571711388287892404884865755751965520190543712181270562442053908558393754672745350408348431897327146220834013322658495700239992881325830592813560496672926928178951553107758700846102921538981551850478113704848511454350401223096026959718391792896827642226699026729703820949464162578488965905407847719926814228494899180650579162595041047992802119706550653221367323807188030297971445611345789591504476579613370635596017063125018930065893374966670739538736418077688448376297469734381919346434805681735543838088073069062273829920728960874521767274641044546144284186448680389196041398067285699356786803331214711227305548213819560772180815778535788847717524585124347562864512635943104723061463751458001204115404496032055878981065114240425816526060990685926295185891234903273861904635546977013345641717795313287030932490424705994423936795699802615818294347877946575874564582020670559894224967067090554748750640175266405405730210302740064763226990759504671213657203862617337780647769671018211664850634556525530124049028428579393260298599387910374667959601095640171620124160286649902546902659128207690375185936036888289898886674614035205899684007532540866109041288004241389999411579087645039124881111880987053044218835918956746466121300925844180742543783784877045100084884500116406761442902376038412216325208614240295264006730757754744262820247142906852004752159002732867668567763033275496144254739970200779261820498653275052958785010639557245650019000603783324332572420855869550594111533280441721560067056772495801232885545608222144767141973097337439466397904977025763150632521121290639574029869499756403118592496686082899385256580618678490583669422161356092581829966619665205866168734949009435754001307379112763605099822230353932159725432829390111020896796319578080200945476583427802553098788105534919970003628020631555003906229289609578968118060042771528523606058434573007241843803653898552698835287608821231675721407666679151853042093235685887279374473668936006726954277027636801730945255743779830320670023499702299592102512174521563632476870404103825553544969786852723012982156945239994656791735639053709072395332398545878565526757733820747647794031672507563882254426095034526984210290476814939386068996215564513360884356442209568070318811051448612690976056758250612670003573431276164637603240357173982667770558165238692212840371513607590277802136568770390672848721698078719102223729206130570910523389789949780893610745353135965525822089592727922411896679153045381682131725238380671982170461913279558713048443829807101037806026195555655113156503863191258394217648108105499592273181930670154493699115973255641740115793399009446126370516135971428680556404423542265172174360275396520825928622736696399143436815530722738528642493742191783625884340647060211359600626294060412775806727884877811935024200033050892891093566657473430009412611881085505089062647281575024539866037011298149415944170255916412650215149891503439202924124461555907734049150876937587147544710447393895540964490893148018974529953303433136588139200167390709122146822184253662180388422671620939928865480075790754744902987920937665494030265749356136108879336154016840815389696768070770262469388990482105557133648267780529682277089637190852426011467802691695774901096837886528011198900238971313166781122697988913002222013365067047386408110359431684796573775345739067995477883412083235131670035655997717208748811832456395338316274762855844540084137929074331613886273059697369137762811970894884394529575872815556258447389381370182673124814535534204002824284097891889462980048947309561306734546095258315377283947342637201395329876316985014222796803507200069826058275235225988952000568410051106501258603496723093060708693227571919804926757469417922433417159598168228823480936582713852299697685872134667106795424163936672261951809746565228083117931403467455270994520710047525855311538473351616831181083819113646652922643864210148870375729597700693919044442685265557977944855505597775821763734386302985323576472009086113896064509654017362543484745997523578551786002493048824272197603019808712123982398831376748494614899682014055620399442641498971542433548969368839161361987695173890991594882075470136672274423551636012305290119203678211015137560209111116403535005877835876716651810073103125109560510201237789727761466620944050250805630119488682285898166720062549666186519438081670963540946441825344987271091363076772679905103303973794355415453636252925713086342451968815974424148987155899283927958310090215508722892920525759638020605623613123441637670514242946652523026905294070468737198015810971191254183129889553269979171526152351914675814774488106703192020166517546290667317634509514189333859016312485124025371261649444543069918094643065991523404294605316241708178089772512274563276014734177491164242048636102078654054420601540524667778598342381428609160698154445493635744122540043883653792433030824047309023129879669108193343426325237847902351374409785614754614425768566153656344982591894015535542581116936093413707247773848730531925481566997199686242729411711938200517010223538627872535606934175523052007110011794300989453076302866947593461743394062209781675027930027521055893182309827071725642047243402616077980949862281245871511216004904977981620490873126543072262445777689011789706491499673301755008009935149910552229275986047933116395939411461776591245620942170132801960653275556235236670595985008607766884122645971533868964220754396467642090555315229519365534604587500324490089846815075053468224575107790176225828947810626695614385577529139925705677989370366502299228147833784527446725227212227990666763127758762322656530259944762264705682466985993779249727384876734308860981171194100327236023443217873265445311350076831200983797272636959726954688050081085375531917598562480290209152205833289173881714114589525218227767642078823580403547576382047052633780575758860727617382348944028255204944910240481406105567960404205258830245662965621414891085130709556068227771508718711236787447744781470707909926809192084395024535111662782548633487795750817130035189803850464965623062398469379417303498171519656982702786981491829646392411485075858365342015332153134477222700392854057911494764439764759877722029754532784750750926958189999646488011190835943549467377611281558910806102179599768097625751833305495471232131267248713199843505444682993808704541617750438329573868078007705885997371848817996136687787228605093403531665487890695896448387820330129028413487470557110248364483369789468163999448892174861527431853586465130414073739638457533030940583331387286321278807575789928822937321356034071193143842667479133828631533413038388672457059123065708362049362723340108962679177747900501661077729510956405479576516273623431052759337365646378829481563773787908543683390426597522786669461548766168470003511149851502303799339321388421465812980543524505805871162382305777892587104187445274589308235812451501156707801006726012998580096904041488307762532574832204441228945269757134816789468853804501167173097904194294111226190610582249312975319081291844631745596383858813720978599917483341485022252554418019549213936269368339887988724824786746649465047739726458179076612262009089464411345554421848823192067137718378406354809440437227834024097212347422130719148773578452782494016723296635059985589354063835131680341950365642602909704950057293069013846823791921336311050860869698487371601874653460942387086053442262944836683207525575327337381705762909003217485150418411609600911164788285722668884988750594570725303415884371280672693946500122817341358841123364231774465379408512813867238744446809755422803493960637140497337012803511658836096545691288972245865857246490005396835058624398052795912312191162202213105471660110366616015961948452194659111915211644463615014327730189172135415607080986465992578177917976252581701485942503154931193557155168072174557901389635906034957423557681124451916788352151221766460379900672641615406316370897533176794781088430088176884943387160788122099518574179550397825888154357882456898820080547959271235157101042172723109491487532378103106037770726328548018170632714618205321971881907691413455634425787217492734313610629174208283646727738327810821746019006655073559993986263791929984349173206357684220652321349996788174067167697880586415099857465163753411050758594182352564451946284902842879323435254363501576832581460873264472519641155243961329327711403569422523078236880254721616335010382725014763470060983468642550426444352969464501077733007873267421884273780606704491905067890650742564516727111723192257436515901074364339266519386508754603803892766329794611066080781071521692429892218447054256556036311582807705906555473387348242782818487764423919136752769725636216598889989266785940867835235822505220298286276504877138811102349449707597856257775671314610198762040206814414518554889383159820672663659653156657938701397728432005155389193559545940762496075762797454547042900559382919971646742187369795098133864408379173943147527041773123312611831625752563382018118180180242833154946387171739067780764460890995310300911584705116875858211948982887856242343231102597301044354106325174296849627696235945617189332177988927108430493890358731693125411648608401853601049075935143836144549468649864123675089089922073857236190209932353823989883200112462053469602572809230252794662084219246339034433422795529325281888208272880562954718787957037622815899080132771508793806149014523093059051379585516250846195660342758060473214458691193552428978230018295028586507283729090742473190119409199069813011190580712575886496617875903176202409485946509015436295671653799302407366723280197320087540372084410737491658941930494798850096097151519484925439367594242420363753697873142628613198398189616601291326695267536726102820695014505622243374960119440527340469487316514594358171899607158392526894731526138775658652159157233169863185656483009150783251970731992122710251486789771823524315191825904911334873530496030776732207968230844000687891561387996600226881868837952737157855228109909773004306620271951228034860893825359753767262894338927041588341292993224180446639008709185512837360232806966246517679286765533312424171781088512288311240590279299422387463324810216219042352190756030636109952304630481796126820014927327793202472687137614973553429116841914520708107894279295285556273439132090332956077300471557236879354060912196787744764335276890694513081452533959644276935296277120235787248163804676462810150084760757797775456421206111563955591445867898474692625091165694197012170968599791872539312853077304035667741835009594772006941446789982358030759456726787997969013805212640023851750684557324450814099165650477414946961282934390536870407137876444954262582241066006919399657674684132595395117190738763199564880215529909838498782991552319127608482403008883074101841436120894123316737931514821346959800347717232349356342564692763932423707748675269911577183649740476780852439623430739149482930206462343130768611407738382073903657165560079497651516360853924891982423184027406827992973517867844836900335582893239277145542530577256828115928652777260133116056405714810611495823051876752665405307969823766082619920305579740295902586979947745013443600130282152509428802733064462637346785275653197951188508461800641545612817287029460312161394148425788693865557807019801544939988641079991436372845839933011380156700691728294200867292494906056408434121260480113349258670338714415125736276568462439114112568008867602618675594886903201259574617014694656544571857853494994041928439777199059773100480326117184344278580330911153230089276100837571764227400094865200009732995449696891308222996029596440316037370103490075040472900216657009824300799526468515529482939579056921595915232194845895461170576931915183833666270641496758898608977189584432714706823859367742765665046825533776016043229489826366465871980500160753816508032494153220321685184010301385308648313875681130878048274447038196214849846001751698187480265422743797752790637673835895236607155888929659021485887404149057121210953088485101074468109619068754475787116945357310520383652768035078322542998616104434290505619855758051340828112779017641777703562041496772200503714964835377551963872617771439526412076556172223278633042380197031530690934145964814808237085728232606406713834192741681368364243202557779833437351028375548638065226340846106603243929660508789009400294791434275918144604096229652228846616917416433713881918687921352158377068219415736102020560759157315177693965975099905063404681181951907718744534887304556357452069217989765538157185678154936845633707163719314221126884675933639120535226826326055810965794755681029162655392844956269024883668209095121500324802835799911989816238565980181856564298125438362584267445741973699312982991326835245428807015425381641554980385248123860407562895462274317156791410910479345450286365252855738498348403876395730907696288135596178079770251873339443031758997268141994758757182318213092071888546078441362671123316642941498371832389809230919764292808795232699920289116923058522514875234934507867447136202578358936902383439582788875213198866271733699103064992713070092889148684948641194621825800094731170384151628416455869437812198481711689283382531375541001094347470109967409879745028731962012278725048033643688564071402842025641924953668204966626895755315783499545264750656252015005394312694063614983177750922497593748984537631981484394363916576364957034487227070894741898852571848266326755802085498952794289877845199748179131607153081692222945330040018250593525568612797864370107767857324778840423330774172496360718917290978980364387238996141956727582041684061808089968330496297345375487323616951452521000720852921942101221066940935146698915913658152806532719643523777583357246515592264265544339303996236209470109910495816538019907702625752880188117231686398643730531748877362851440405207583767350612736877617252076752088913894110522211383225973631247580654265452779771996636036587637355516420277878287795074622756555342118587687574524064664219752075592822930048875999833571987895607219445043598072520681788645760980542171878554017801300824858873736779994553988477145979336760155510424538393771112454020838200837338488943449617989183108790366261122638009847294987439002642921180075313586550769708403777327365699500108913652859509524052622712222424150585260063208558769953131394751119674255157807316281664821640917683209304263551638916621718831747241313470397925685144154343621702883875963689074880470440649682630881796139095182771819107150245133142185056278856522491709721717333134654329038725838654612923206870704545198753664742295068992469867189146887913933748584063607359546756379428784366096877348950453903795407894721457023000682589096348200679304720416666915788643610124935331196839257985489595143323775429484349189445529261489450367251564154499800465154349285266858693145683937627857867562165105661501140394907972057590142956231860194315366300259057728071618434338334706167864127142396547779662930980654876896406251425307818089150678128820482772851485601072038877524401115839641848587665777559949017746387233575407611551496561955662507393403001840430175551040630113129326411828747130090428515115364203811704633687696127069465622804724295064322224871360705474824152398154741517341153680238669776473370881570992147616302454624330806742235537916164256918205292888922849956689900222521965911484597917489984411699878982976668308253170282561894786657615962456922131553492887814341858604330021286076521048992165041913776404566243095754724466930763586011679685652706507939800653637671745619843278123641365015923514421567647318428009384356603098277207771551471481735503730757173323932316022504048963471857647637672393671960078674241378659757963085722890813528040213660730528833598000212241891598276952574965598105792120890026374929076571209896026667415403000233656819508657724186764080561503673904594757811534487196214781710635924701594263030747336273054608713377170806633431047442480185915468516846742212978295181452686464772712997228590500707150784804277091713041255395032538046810765569398680665617830744926265726722173740200790563330226186425361820153114206670686552413622250449293505374221664070969887744301049047264426166731377372587459098061330491390845847777604175075250039835781565201351107724592130377319217173770246945144263949514364374551510159981367917447292373167042228617052238468989199847041065632238493994940275250080160490313315000942787419851903783576811630856830444698282665678895213631046043284321428957339534369307116201383296131482237928729831371980351692472984270185815687791223201268072729638959777474291468071189107243578966570477511063778855376775016220164659437116197785655631307103698643273154527235853293930926391538938317737596008749878947289965477714742294906178480422131465242584915531637451140749244181541253733065651237467818948551478425688642117326328089425934304953419175864936410571285089826305869808852173573494874373852505828451459342674720273601316990233449148753227589760969193798842571262036562451633466034222449281073029526456776392749788622185030887423032193849368635848542433274597922719517519737439594731003190445339677141451056165104958418369680549124657083762122157265083295216057278478706312149633364143153808567594039668564860712643735077547445029447442649066643095004400815446375749349948311525690479115229997399829061963580379023795563743777694529566648698263719302427963744955679900516799763536762312752273373365197194570819623824096506618206703668249251185891911525806976051535292495360304999880606705351121215527294061032525279147184953270801126737851660216090177193243350864028658077360599934355488790502233123489983679300050897361002271053529755746630363371946808420431331606722438059494327960452041035057321986711905704740142027543249271361045419962543802376215267347473779936309334607243905724945318079808080665578103198324714212377946131611231725336523047817757217440745657706960589964851828525642193325399507663239920149718848443436510209017735147466931015933891484496176730475073231759963633644453683090575324376943900176299508584086361002491625805191016763832312481637419065146952527433727815572836039748196055975772107283087327423348501199137198040690938045041534233749199024121901610879920779179892140584976342339241760771009363252747998566453430771453909150438887799334893280961667023539523667525006634545280570522331014758604085570698873956294005892660077210774959548493632405674384281866928754102010808265249613881390009588096332965557124678420225216047388285271483567514875216621569194126576838158755015622411710484444463679683427970504759273308971733741576093403715945054498623275834822968258944864227888786289121689321239511282609618842229107327310727471137644585942404958287753276545453718681288897301844995945342208296744548747953527347942520888140412002594881815732148920342911426259985503438781773864399751496637776174307250305795379114790890704210418145323423172335644786867470869458679853097840495980199125038242131237292824699191057045622936406489730722874240389517179113465321181501396366982019939062586121461543158208605335709275842662201423797355819148204491801784777613267331440566671950300634485820207121525499448978505584283955543853742663091240961057788912472223123976879579265802025274348475964195703216588988585163068033462964744176239582780951229621154168674122447451559114121185174993896822970446794274324164696456363300010206433927319027978076306007794840218452905567546643423533899187864296769104187017955018947926680369866387345360353133918489184818704958782975343620480880301029540497268117791404743161908776535516906540501969985076399913378776246687957338303359624484512020920810828185662231357132176399170263011415154859833473872132198978223966129990760488033624645552083596823256042014133168210812593539345100914393200821194734318091668125518523178743885356534654700044408491061685767131200835242458532870383653019547915257477600558272070920195132801169955255456061617592876503989255981710059130330835068764172695749769431954177937673232036003378327168013907230249256339111213251894302080336333791939179189396239485412515060682076732924471552928467685905560239577653841593116918353049673315323177917536991853166378753892409058341030521831103286777106199258145686768466241918797909388153563246562661635310227026080288666106463938511990056652175459872071555021544091646966684359807780066438581571975259189384446209467065709407742279588064886748092779317810535403530365878118641456559608224441585251656341005273906352566728119382187452175651374981073632114568753124289167094350505364857804172790602623892966740294312314955960051425265009697572436161389621055087423292051226092774442068988882455646083390484493315491970820742208843789690674171857583463529404472375187866608474017875107935149276088596793598803099560198738498861411981114567418342898445832889856970842549596694281298265605962136964282921660248243632551594074813782694305335047027283856340933846944330841726023900336480482876082578534668155107443071412837394677197867481661993827515648137807361146789061233302376129045620661819414191990683888697216323375907109094328523825938331349415197922070801476664189196647541158853585777150660769232764920334938309022705497993289267683458468885643591683780463626258339120863595983957757069266981754483234971393509184688006699898795407359643942035120857574945956745133361705762733676441752857005063093457018715086150799658322907454513172345554372398577106212557343905440723891838746467574602088010065909513473441298391379770152459524367639884140693530868219276748043693323095672346870538400434349496542243556882623828485562535794940840385131345188481277632938543426803367790540487828192739815825891889457853980670413009328501306701128339522974841332542485293921683666645735226810934501690591624631571465297573467865873965638667303278283517932309578964682146557740357809940952818437077521040940145909210888897741362524647235408712295782715723129311663871064773904324602421082512663418450505258232576301829475761314994798460597895269837265223590112811501322194863796361783150645172965998333907091304749759700034962191042072067201535464590803703082515649141363256941809538247077544334629538207266951379620429378320358981234319388127225609224816263612023632650656602931460584084520609060859984741152738165427213338010755489470861781357162142051966621216971789868157363307944490388190726493846785024725873077961259917825932870662728553006575584891546429572367958673341039433312323508968309650411092234662075868217545833629644951973268451035288251341409765543563478300438116582336342972630285972464167625495890494013880075373944537047682981534228233927529779928994366384478028485596748782908714444276404209663429570016835233098020280000817296696284412479640192209960693857721652887623405610146867672991825203968956371296518464793400391062756880502645349427129910578278537141521245252936660270135174967580842369692605582017868288855628457417532735327618115420401069114073748131513480712938293207710852063872541400604074857605947164679424263158588882483178698530137265668983076155863297283512391777105799691253184274271642617912416547180564447370630295581640696125356238253401580760776701830208797481999174492839184804445385869695225686812204432220592821021113001132122182436891700104339092883220012606360765808242134146692792888950773155848869544077583796893038674821285358641365910885405038487109484305121297576525482563147826147780642993624742512540819659984220120052219572232032611632856878784617715543601536466345769127068022879905674377863603157449345213584484122929333442966207799070435482606559066009323032589314754311133106817220402112104614806571055636308076364736594815747744182464151693943004575013218528761369470320445496928032948745690935185784738868405774081264942826543771553146550503976502696455466902949307679315500727754446323280347955208598334512589828273230456355925091866674549744780325881865486650633674128858395482943922358949483045476889791254981454370670518200003144283024889974538641702870287022081452484255629008972066562170882866186631824181406375028379677561136382946450546284285551218939515258542334282958017214327846477335230538582112426550073960378818516538023958170845094918001573444543036093356000399212258373911157715589138413010201026391831990611905791997999304576881034543666750004266840441934956011553756430789013199488633555091868917870660543615617213687218145782924721752085284191255510686288639187221239709406003972156340485798969174198828877318416909387809253754529450839751543367005528331995898877537696947357083620422626247085189179063302489130866656026995559155992033315906214089385911915035881362205914052962597117605226233105187454950194474271027188938125537238656294204513219699843454526075805852429484931493744392187775867464818404696698584488681189085201088994167408410195270317854683799941456152224176934940955209595985683830245602865828275985199986357315354599136968342599799066566997059569863719856707395722168980767923885284935344017375109523996806171333008831708178188207539623994135378633796310559547844873021295478614378760931808804596242724250153970921127701564738072412914679469372030412011515454803632462512048036655064890568051615489669968887067363398933446006856755444581143846848089875595286958320151524048432078199021332410205375298876030485885096626250707447784349686173421115060200932887603488878018384183392743706677473305820920289082485243048101006528386302515177232652046244346864683026517003211336542012379050488749956083955784488504400663582428180270987074960538174887586687440000517902555816731091505126063811819347529360375640490695056762666686242621411754359852570020995144612182349778881952461611336539698610309326237938289171280138984838944493029206474061853903179340014284440518061786730057453347044510663627821636680952590410243246976861711335411417057382483691546655305551622371163182175261353624838755759807099625416817645209957917765848318346914197351987778266256146637294612202788039431289839946536966592475742899148307460336448578213947760369850880478049662637931434258025508414817309330952579599726506529463194710796550206499363328681312822581519790336289832962071022731572157691183255790912485807370396655615937488943846377601190323213085939915981887527778884523519558359532771215150597725832885511953835794697086323602567051548874617650631617830998592842040005419085302801334285113385358781817686000476661658335281467375181515198592669945953735344953534005478389420815236735885189429386893678343407487534913706236382493304124464921493731326530238958095958686041163657047920657152121892938662842495959720664789130964187176415726619986408184437989795889777036324499469884999044729610742468528975689639731479643113050774301990916179053409891894505758603222689276272021995193355806348526459574144312445071819368227863193641212144898398259813985127385035964354597719594296478844604528986666937763018912918403019935166317454186702517357621685187555220780083696986855898457843357109314673026701816194604247101668531481482232326228836367772643719855166377719938276766203417889105771826875758664922169775251501944275155041092819144036907271501213207044484969210249628942130609112686891197667419948619039792435840264256176553174006513231567805712129639660728205525353440377079062769307985573547793584669594103173008195521298075211472664201128683408689404976229678209441608902590334665148329380106485713891840035558107821919423426204199479288376791961725258553107237430161439428043229520402204718865220093312689468767800238875763105534421375157426787947261244584549822508293350864873407919383767463449859021494613258445740066613181702327394765957398722786406952141145888796177385173222373462784818990878853644008654536396464122889336852314285004830555307459128410529106285102466987723661096154331428756604502096470500332785055141883462665387385271994810266148608251252569939443257701013784759363039393256570518138259065765008579942270548367519293437390783035745650531227649442465614509386811381498058704234176350455249680653538958048172874623287364293669326458151501495575658769872776394341029272450466977424385048021763049206553983685914579616968514165351446329595250403244190255658124367909958562968608109107453321830100411390645140351288610886808230117275923230696559053307473690260449469854897018723384448983902062801523133981360263223994183440814805799701192130286042917563027016686931625936497511363375675110227931470907699820340620652538867324885513738872487484591838024515114593394231759286861651075327308073680354524976248372570905566861013215526981103657277590372045838631172729175140755630639997480328407955061637500730045829414865247801456283609831828520123712671772091154026220930543106306816644645998377866974513434882937114068089347387643461549898142259479744308547776438577798254039898171460207019142317552998860260165077842408573514241608292223959609302470344721465144489438666435726803279343405165699718221245416946315345650104311707250983349095204239454950375063593503057400732027838373243491576635821656748358511286666536336242395941056479202186010643611656556866282216902779184464350647909594667709424537941804842523326059516824531898412213202938118597330905644416155783540925571390335416672245794638489706451775672032916326354717836281824067371004266028335507718918863120694550400056755404546974114513900901811652773984624844639693772337715647947502780637853610449171677381629790392059946527468228659502552681939089898544545899429219560649374068131391802485494152391999811334085304582345710828003423002261175118318976880881819959149966074400682035244472062196597284469788460457885691701240366829028231189002600334600062394254943677836969455643275904711554464913709252285127698130643962963284700250107891723702419868383800205674664564754880249121096306507215570041587392815018612983852099985193390022654929342610606577989967501698584182181405519876209027179336379762905357375881457247708097219941244001620834084471999520102425260454507748274772290114408019545397144117075022704420037978265693519589911874049435480707826634659269235013668568280918350401657939251267733374126932022612598125702933653388103532208741108551104599035990188593795985277239112747590338424148829248359830723923416084579913470774268531164324847718009772940606682919596014050450723366656746422651125368480146336161950961271301704224120277542181675778765813640550038823313284959919840493435894376248889818830619891669981804622293004929234800444416177181257570224865584229066095577063031807445353216034646848709763504540415100555275984450704205314298444571008659175977672302078284888571664227415144563945212254214269380154978077037808545849784751749797290745566406913944944820594902757512783567553084237439457858228502453191521010255130816638135389964333108648752122683718508670040488714341936613124648793335166335495038064971281594725905112640049330479609662385345899202085552127871046490937781273365284512938798230474883992730807439495944847312160893035171801050638290779696807587046980993025971089069038598786710361993216673836683730719022454219844803061024703320575133903301254068976048993331471362044771305072463549033524223995202440401806042342711936805602431450265833321657691641381986721480180963559221536196304923377882884000632850014264191565981700713096229239344282258664943485999533004564713601279747934743963334477647318740299323480970160040363634793882477864159851769846324099691248462860928145291499551888896393023060888611947104679219019831134409259092113886562665017222400629128490096723235310190327589526637133341130626744823686304454911298109766233401928046887837067320016120315904819097802540308295583795058707922959493609371678749492512969861070923621357683506046356716678984310156002432209288601700171337952947453931987579510744094317671822368767904600111807113888633656067486999113274916515049701709092637294631846582131432881602528150800854428238329988229952552146404373701585942164673194063237733048404992919939311631948528677145024876439788980684705938938054298764483737591475458629763375497281592486153926574296218248816070251685393819751948032427909348207719085945821714396081101644836557765000690523628111819469306171899210241052727940876468555685027916972063979219625525611232387397331026711146809812725272121835156647615128408651844140088358780571915380975954041621050697280651510210165171511405736227925723767883581774002321712636774744330886301993564025253423810695078047504173498374359309737872374613974414906735504808502474466526463640270130959875463092904173877539454116411007099290517042267525745410921106988207238243263863141854362208720714443268409102304251305091955360959229188441416322902115061873924482134794689967778698633574489485839678017223913282733498149309096866269027329116742006537639839857715559049305158289744139258254260298901395087668335152524500428491038946143646264263334343662886905964538138764918551679197360437435457292499251076845414299321229823187109352913897321603085253025556845386539886066676461829835100230479384193194950044680939903190418831381957982974896881220199006532229143328066931144354861235049961223699090398413859826972636834537089375529380659314675117712091338090408634233996651580114180493223979752270403636118484666093627634119785761523086292350780146896592756419804911448395247123873075048099912004470592705932290798439804095151383650354379576651096485296257278744255853637832158371871174190327239491036872945716343455062465666370007424118678090068909621984354797585861930068759313420165100377212232927078074291580439773699467592314669012537452895522237425546116276336651377246657082958638276049834140664727366278774083618837539893234581214949553751626908426789243500965692938159542749958283436309254831383513481597248385743597503222297659233030107420268992369001109509480787585590360594009020340613062680377725774016966382639621535753761869789962179518115645423336990328492867405125236598596232372689195248275554873667724327498937810454395019136408134016597782846179896998387407591129626376594388692744682215918178910040628459509530366936952427074585681346417768895625365793942160503532795186592683541431527749801638918682753951091882885504011684738701659970200699068739745744058770051773583726222271792178868296301258278073125537238883661804512577802028212936773733173094125355835304410566791962406822310503945825042498906476432473346398310693361306460316236415917500290942638065063167962175584589687326836293725533122585361286699433912230433852313584825712652673276643533484140870886735408580615556999561060084789033498340607155571857299259399771984052627432333263514661436076756094431970256515655103096050217256479920689716986155185103050841981321465467726111144074547459441766441337346759070172856582594491285536137016603574910874288211607370981529032191101104134963930598045194932283999779884528707120130081925539626208504858758422275048991527710620867015103502235552702503584629682314766453867725346620310239941953787894662925902674158691949587298471564842424666405901874859811359001317614888723599515461916256264530040989120878458371442584129045037846088203640194950395005466859759962527594890248312524322689838923372323397614276676339861357201064650585140496314286881751580785612144069170820699775027045697661688633033724608681499043875829817768898019190851180952910325597244218097628288375368117803071948303816208872816471552802013849129939905663329142246497844097073456427713895071976109235874264588477991731747852731745701147663613021633612859337666012574188247709251828510806101451431220953685778773635283380394401720718636329981663890859106858993107043097593493205721373357796318163293926839899451448977215885423232318342346300546339972357671897323537522629335930116401331311468117445873195111416855669403968358721816471639674898544205092027557769579727478160115878530895944097138145807196103620267427026749263318884591503948988299061390615087834451277514772019479196167650281830070231172956741092766092632035154249953885407768537902789670936615418085827359785227579135785259715845510054378993818083398505889711998983697296160995589361643352107160215998039239685108058282329148664144891767009234825252234101090179636739493318703183609312758026355276420518285596829713735678307783530286033648954231207596978061795993662223002797698522563466144761772451813910828492605149294043249860784758243466176524367170381517073944087762088872021157629826354649375254370584802283971833286665979572613193495777154754160136143775307045206718296139222207360330231618058447965090565337367852222317975594242063879815797562890035471965529181577301522512269337260054703036803029279240508919662446397217077006855516706711333657897315184092855852118672652343622738096064229912317667630273792541506211897074357771823689130509109469427076100211835921834792336934218364106070964965527239925335479620456390704601764837958140201969311117169750725331843051719066191641808348704482499456121428203544480743630492371437497122266461275667434467644213434195946171129675121196138223823733371787718681500404957324290804656947917443061864253984004885786272330878259331039992150849352898625300866502674944901421282489227078523541062925345401872480862867133165543608188128535758484779725748918890955897517771302919468724557879582845260865668680131819873249612141982908862822081871610729548299766159577288982442946385395258624489676509846612536786808145706726139829451959422561421342483000135331322387824836911611822733034991147848487627111784233357629407632690625899197359032595458824823562080083026342819507652762940900867072801319259952387568735633845476349389205628785156610352921856661861469950279582400489414607011083543773314408584442434710449280383625647941259526618666008527295014160027028937701828592878932263198978996265061162167189010500788658450575190943417490495145142354810579280251658274791735324297707705956353794326804992366455300015504237294711258535090008867490451623918333091157162817154251785459595938740994423793650874276479724839360605320159377402297172949554351336460065312884767372739273231576781866087092085040801902305715483646801429313413249913669192246431187936437010102804249816335381426343593694880369190724163588264724759137882362601049310021077905030427722078459284332313027123414075105158671650579938846966164785468254167038672284364788608323983854948359191376442777166597099746825967408805184265705992036032855229096584629152925239441206477572245726229869027910518388065096579163986118272344666394262889723127410870340771411202307727543311009773533414829521279492335088886215853806841040666576604740262655048470579792007839933349282174178413837166955094479015614452792738515773605623008404774502154380544209695820863553158247956760058808610324785752351829685676536332054479893944131768698371820129247239428468525886967381609066465595005187621030022578737977181873713739879004644114734271246007417716033843139259147443022440434071178945917712097013949899577231024357012025200192944654100843728661583897937931845988061223676460985628367167753391238728418779548705261105418041094536122172759244868235880020540049557276590047302198878969420382714955830091263952883050886337462878665609525166860436771610400183693744525193229306714287535398636583305538548445573820104501322908721405776234228762280312004995314578133469024317824424513142342359769814299134064134276546511228193399911600845654003015080399637537890839315280628128496273547372930810236852100766224802937482505602410813905018716856169854660189869709969410107720034313535698191079469182525416376646671787046123631075663602413815742482653038670416870857468059043951226365597485929256458421911274549434896710633718109095778047513207856396939505722739375669817356736695572129411049349806674953392330047566224620126836042625514115950921544608844535538941042499028488134920663529924152297464838833124118545867828237586071617331893376918963712579100362458999180579485245255049386483774833530356112859868725641948441986279377733615726375687981017970834952408195747314927730562272272361140151991314251650400518754163947784604452512714066233619913871116783327044224768782584480838494726055088291852269485804133299993852544754895112509655090625445530489239132744607907057231655903065430171257417071731520007789453402162935836958880085189475382975606898347809794741308075895712104477947752421703894735963827184806843319463711684384289982786313975133797578014021661359671962787125005300043624699850476375436433567258983868246975783243277654091900662094782981072827261016241802155382059978359209492473558678764019193523615130340519247076052792646954965934148525455056959824192183774350656388961657723572620936262224639929617997681154014117026815402350704761084162164354837487718185252200918270056500741517358691051459129933003834158698090721827172781206668428863267687695385457925174687891932284167461686272337284913448336740155609018157108952080362631415689241032839132534606623332384788064415197299633748469739312652479716048542538979327950645806808666555437807904336881303968967226897736729012705226681919063790497531834643504289482644467800058638345090490501236486897716353501749601864467195912532024594321411640379126874325447263683304209203930738038031921202170375040359870172060159319530605618867010336829561123679572881331125810418659387429782620664872315138246758750072974970534407834911115633755431390661152402322168273699489154913131609938081754869896467330048785288477629964484122394477830745554250316975143431406395480855183677301715804371283662519143628957337723196744941399714723839602664598139867335532980415377140408409998532537201756196551936710496868235359335690000063103092939327914206769891735931135687460279940088738403019885617113834831060209826065762589008601555977362020816575407771342573286206348649743706811568793495070337755857110519420181810552686479950165180422102535307754103963749052133335391755793307685083128924210857466107252078131259848479125365331897854467442242148779833057116264239573537071033940707061586393164748532324537258043865349592160279099214199503990619683688015629996203950107956562216240908165734616628368954561428239178049569971293963605876160135246162737785783932804044820244997414197877909552706337455071353198974008959421992070373624329048551803817031947331661574474632965465999771176589121690219024966409327219786088943072017708197694894965038294586747915310857353357721616277643017553062358095029270148624427481526604523232784509144490805080872424243390608685985084375524255562923936602528470565157377082019390235636047161162844163820426779911882482306599302381078446497806166658332167776804198299343632437272814729358313774437456402789634829818910656390730793177406957362785686652693644023609171087374668551261181727070931850844736242357558090615907592555914285902001690674264180152544216109320155192705819535471710763751753653369543124136324904751305556083726540440882585159411909205289887918614697358792877865161540511565487788005634906466112091075105928197340076310005749663848520112626347518481591712659463318524935784799678247832436239358345466405160230600156424100262701011457086567155496151398873143748891215815583721458785338814673845239822655727148053429393933266289072403935573571667009952388457281200957283002242317970775462493379559176289075218542218831939326550725230096700631774302995121145138378876976479088416960540470559971295212081872351338087044719727861992776295824825312515103437844598246337909903596118856175565974988188242032454183646562551866723772049199817885305278033871885267042468092516179934166374205261221216439245004048111655305452470233406131645491211737700482779992755241648785148020878483020664346693144250858674117532601171562400798218792920768151709564020256603666685890075775894643054850823694374352384262066695219299148000564914274227499375964290808513569900386125701257957160376416137805610064892818000610930164528649899870806092137374586311637284056732436263578132632304089124664584754679765116371668101616908129643451786416119819732502471827923949227129595627029985458489257161373360835588569943831111865268202211852108233361272179116843329047448465515574318738784542077124569468310823356101193615093304895223029421826692357443157244513602570951358871854572588797994488046410387087927950960862337983895895132342321308809405640844690308834147925898723638263601586637820088311182491600400361806941938350217569361233722201989344384757154445834142753085764055944386777388335017267484580393725154855407999634644629335439166825483221806619911780755724149037602684643941800987273617366365288650587238144036020322648884168680700283373074883159585797130299038827084925942351498699613926944909660288874874115400696494547203314645487220371483599645869050490765155347508537013116032517319017480412167453077014120728529467011293769773291927242718366850983961300899749551335935484835063005930723736502888875932104066500581790218579562840582436222216258829343717908945314503773112523187573819633970073310897649528050883855869242054130237628581329799130800596746362957101808151884643714058899679211428510365273065048209591642778786291571989738265812849502391981548466677554507594892853676137097753673368425601293193926944969080496628236662460253239776701678364210972113265969740443075204040636171989315907825071414460662016935095165725967359751664960040317602359701726697250746594205143511961898714330341111164349796430771118220185389767633729335759776435501615030200833462198679446225399884462642979793294976593231983180812921617855497962891510748968340667970857621672088885061993497000958423501486503214114999726375828971105815992866733169786140983024595067669516672559607168875472663462956691731898783053388320281961939951085039864623360936542549620082692823208160126813911693354434028207002370384780359004793870480985429613240480470115888720832135457469298378885997249216259285354054611130724930026093070256852355592297759777666835572626942156201106583175930017646893811861456088104170762061299222459865008238929679512391158839462590053702561391600493222904420915108332491412521859979021570588368678944542072238610400316081156347408903892365092828903396197535224225418315777582239268982153697677385579004711074245752022268732150619706627428663905722825219248894346878179575483676103345901631109850892437541252084529732511026941304854777175219684339257955875408286094237251926771812253040220456818099750444876374612474226299756363271232543199081187584779776637153052954008235037745218312278039005336959187152904148141401895962949464492027653163278697180682841199416404494056865082528536519235302847265044846753129353558354728007998069759132724536319826631876047807436407386823379363825990829361807750880651231313858520516766632853353434827305565548477414579162153498152731460973785127844264512760138375431744896364376097088512803231353179495407360806832698621430949672095617301703807581070908620072443252537518717909859105437791454743334716775492957548647270774118588793917538104023923128318165149880915186785918231813850453716308990521622931225010308993161537637557696953195686689207126289375698932651586591059077649143434036081256332384755271586320563424171764739123139894013182532675823812462791304648775941451443182424626325323601917803310086648556263896162054869381217633819797303787825231203398846366384417183229346025890874077661571399365324475231211058145513200881698490607037773484363189798105852435222842628231943932983302923569705295165739481103304486935008362996187553173457407896663422552362541624564371511959828946826208828489935501734828407473620896658566079372939541012007186400229213481736812102370069341142375767784296716731277281761894091371101618164128534506327939974376259777220260269631189400103043861897620073501544911014940376024121363994426890202674066563211914131343806155353010988587195455888684608057308010296314661123732134215053055545059315769533863189099898902924491825659704575291494397071671238581376087573647311581616891154830661009843133884821369025109593185647265671705065058044737942623912329383985744044275779036461462204666714396139407964710680647876050449407680712823838796278598760275784962430429249453644202537969719584122430649041347700306682632975478325946076183660153562228397256597752234697782405387622240820569956474784413594066559521973876502616273602874230825703340266509455324025088384456257591208347605937330853140343511523977552645249568026176768128130630054576514780917376052714551757937430190665373748966178083901693690666932563179258209000520354765604364745759473104880824293196845039445415358367486422650377219886970297088109756398042907783696855591108280440995064579034811554716775040056689604470931139934478185205256702147728063117922505852407375475525231366532063128377322125157649204694476359200305007696433691396734887193731838883426669791271176258444138512974333237499336407563211214279465103867028862949765153061139141237538411567149981705640944227576758945564119938890847828087327765935705063933266895694034468844944898879923486130854717346022447130369313615520157104280346318472505599756298335252066916555392589843766789873465214458839112715495265171900885774793405460124817503170516385079902608644074550944121595565956271680568558422019296210615685535718698061675648854063260733233367969838002244271249015428428325281189410871160521823851778114787748440959390205542225114175344372084471453915910609923502069699927167352254913871698526788496156584498915818214617755160402716327981703437251025466338056176029907804604356023978412571370224040401698599249588697393850845062897007908455101615803453714842840144683696540790600120881771938409785040056277321588740239894898404285415242476340458911505697249724140858126387799033024787000052703610482691234359487729293946797259065955536798774833625400711578445684821232201096968641536031157419478534146293974513781980664973367953148451630885076044606672395665405955652818332643122991133796751318203746329737768348389498782513155371312145067885146874246307071847775747261480060258875728994540874348249817098632441574787612521899128978691767709447455477580462017913719715191838802734935355962679132177317218845737776925901458797700177398112867538676966885465120129343549800259797888272005564893120029029261029955669870152467021127675480232012212003660561671645511616746054181881163917740065633711300499255425865137540068020393497251975991931263548524586966004177026099279182458911396338870569689791709077968481603107581785676014408735924248915766474510862141297053962520495944578029804132858346608595482082100164918997625874860696556267454927272671928583932343968736508422194760910546707099204905686583704163806218496539297601589305619543624796076094837982605052251610945332362394208927281867845724616859329857337193254851781263163598445561307855195600053510153918730646756265043594092400032515610308355350762235195044957813350544843362702546636229187250035128136327967855925892900569139445230260146089411748329530619724353142427908095728416115475827329133854695021733451784591371923571057960075214831525912786220380543938171337504482006983879084499574447254636333834458785738676883837313470518723927897269457662847033371812579243561498202295467922878567861314625084505958832496125045818673166654144303763934419783110209510696357600908968282057307859259083817747732571078220874338409125482522629645378574009373490184840712853838649099961009272406786567288912327713748563591994241060755001472497158724636353405279579990008860624682247861111226359468434025562871098827419611906575405294790754007733041854491943110916676144684278560837951084962946765651507975233999566464186891945876489515262071021773432807171057502150946368026861530297843869889529151377113683146698320965736800758603517561746639782090120960437725948800070156243293199210397745691911534054898075281172423803648088884350551262077816725061798414712028563656454766919105029102045433454865539741628647514954329501411091605010596338088234196359309682784938649682331348666287930680862284457240883518997871768793966490691603017973293163767589759792738472924252061090346399316720961497474093090056567353215309033261191758198428833869365370671826175241006882669828455857839523845257254499837159722437309370527743609902688477777736483403724104271795846566476240675660399669904332039183692815868879046947090221798067573046518812373693523417544216967961500231109365099709265284862813009236342590125615010090832182855531107319175316276752679402818113003931249059206771218856936953686637821527858126341699440387266920327922643785960175829847524251227655951175698334840566414491945795414366654818237285212278816693436533478745831424108218533130082018627918441411847429034119659159519418522868225125917829430879537849812922677352552426961454124149304178627610327069921295384394474300804548640963210424397715661675172184220379349571515084904947787149432746207199819370227335282859880749306360992992920926636481695118979636987130715338871981885899534575801100413402896367761607127424409140928456561093915207598431290705751668044475445139791685935389769316760807227922206974324748610772996546434032675941483792137368311148610436984972315646025816304856705592192212537499293841881420395468361945091909344294509758247908755475242573194853062870462978087752778803611656579725049305373319864334182484202669518941943320878507531314159438297532254955465878111920452240747069608473948525117465404772453252785155530129897809895579599021204488688207476444527766620604651063448571864768173499179820141781541226058267873186206869888605955029727466526810926102064365608602986063580711680440661798568860942230945966456360705905587671149168448317143611359457709576657906469766362971197897890517089964870826072597746998099827775459282928834142044118625532862065808129944053098174445483477027508672935458826170774471583955316945528453208998154584251372035037599265326839537979448479056663150165222653354459223136932729061832021916942138609323367110974294278759685605532704550050848218708842175170855005915204402155339541942760143151071184581709945937575948677830062036334289671478001799320296637863569283304193039139626763784595967433638690050363301279517103354092897625405042358970521256746086850705673430517699362300721895193602215870172697595446921977761365888872489575930261845963731817730109401058571746866409661557288018923263189235111643644711391826288608375874002301344187963928309884327702297097023016028720332709896354900169856055859797247337706281299659428877590266446576220245958518310777775368252153821132285354193397055982091572207839183312347282183184024153028443321870064878940739858983540682867920816591592404972168404293298038700439256227961532828183568677611444629560292255474760962930239853031372100135374293779592994915216372067575565407278321781561562983164498094133431322531318811782220009889177948920752446655187709231616925146758410762499351191681130378852204114024672526907933138627364725456739833636631228527657663601209542109054830515556185713477444636491857993287144212450193540934055977649155357246648059378883825609273543588087603646118922190086679033807106542200687147376456089570343652551313849738158370893775953448127219922809349236515788243187291359750604995102274210538459630473918502798743742802057056768683125528610155572041739519705135522787108131346623955834347671146702193841812187692659316971258243005856330162737010563270152065302809848791127345160593212177274828954436305470182206242509754074082269196187481468406347421121951778117287325426539873477294059303932928341937934161360865307598703379338458381249611936913935665556177313009441588586994905960224223656956101973442851291332641112696650630519664059208805059279947736648220033258982420400462118095185219918234737636750438925689081656625281582501400310888685254329722876859742574030400618097466363536970896038944610596674415729375927884956097950328226894025682542922089299363977521534095257504034486190595212630184865782993375885919337306885240435107592802797169720716584845545656557399945557689277946454949506056531073687981707907342407702082207165608001855329060795383358361097455494930934130445786897828005073419223667821699476456186966988477075746292963954478069173353870536978303414414878783704719239909301906998476022340833722387712046800851976687832631904484293061410404785216799553850286989301685772763920249297033612752590641345541293334585573466354851741442088398546185734126200308198834125691418652648248118128755423104439765719057733850874174449127487153228928031654404071444024828849445959457626278749592518595488969808330267856703165504050247402647567674408354266733648250130925862919064924787426103513572667972167406790328281899497623585755720012161532654396644258545169965839010829312354346628563567088087774782142617477819514513536055127110599545656973298028801820481499174891756690725889915425829264400438515214590103260242575537124797167710778310481145916833054248908910593443821091924772438281973536708423519516197845806288242801915298251151400932528213596768553644750572830268554172508046661164672369693973449093576368403705385495153350000108648849559617688040506640574354638177185969509089592859374311043853944795647772555509757261150708393910819339738908439520182886537810350942666277282341095246108316884772149053948890246257381010229792556700818511813754689910093405121689501892249256478258714686331305539470225988301817250755491951887334640094092466875733438136847326601139921071119375192214464609257607959683652767763950320064988043673150992527425678576520941015583581497782086255410098116488396646215624156117834767047188268491008655988609777773057902447638689882971476263315989660580819111034495883900826373009366031808472826748022756147907170502766438939239588605706284972726871423368879116778881974593797094479328660038841218327846737789771292668031800950334584987511994397734559179332406381434285004002608155267536691758355529516190571580194110860036336386659799584836354029983823372267748279618965011875842567725898872796048049900233004445869852631070782516397928130866594779085943393509040481410082303566915554231046304096631713160072866455278897306125888639573665253040743864861025123554197988493628192238246399428115430528063547065009378174784332976171831366450586655948161484349137839141661053196264722047397730715328368580618539653306404387190735004870769406035980752693188893039428696475173565110022080535938952744593384317604793284898946247994368272430891996812179514279108118538526790656908820296502771364976253464091218408731215436612004950269743423183175969631539515513966272418485977581840271550266062044027882053745336090122187339688868196821365992204787864199058792786713312852376569233766783894373245443936661900569183112746515434240120913772201180420699236826431563543903617170584314740728548219830139873499175155744208299609948367750295418237253766394958974619361912564484803349612397829217587318604875667658487909813677285776734683371274500937711174153003801764633069173183792135806766421387953130628353627364336245588078463689318923354656342641164092042711534152614265511132546687712465864580636979108153798019091789573961914907263999528547127147506860684106242190236709940690949561187019696321576305373300202756745757603303044971719470884404137627854445183914804734331452515796713939185022012188525456022214756812147853622025962794403467437041265008282626905225393617102245402534141336321407089963466852923957478182843413716059705063708645949383567983915787261063008995273146631640460282782368720922325321039560465075005476745936100221311440349076474087677102263478839160000693767448015331788616988567931274853360748507699387699643751972323043666390867019882072155944084987116301116606097251703984521136588594389125844002420725118783606145609555708872706860663285915560025163876779876172034944573049892904096292520863233464256677445087597459847714790992341470529304064292406212839136808551944809047676082274089011259695852436695246841329754416620550408317206358909506839467277312374720845108493492197526312359344151388594458934072159104158930770592834424486988692969718201225339254617031498260716999681392913193664811016353120190577625416038919027619681022433145337523902640356288924314047310864656344824618661219253485735318325468237393452187161639096670957730710007193759704552266791325725569178167819042035114842183967625272150556130895940394524515937994394029292342590410426265875606004423992025477399850980551972926210454786991932084843283126018960636618371244128909369229967889913900121056359866701370051910610572506184787033076424701283690216330443043217088819637063221121709488937649947897876516349398023232024449354684876160076166380360449209964662700542249571607712111946397886988279575459692357246643043724686066942231255854238162056641788991267067921261063754146011438747556326375568661927685858605280273572925830056579973801344981049156019530424122378323601371791893825270435077629667342577596615779397229032364750973142773541779437329502659962223045809405538307550366312353537191546701865565559720401657262127437490583619145160113065717270524882532550632570130328196629620231135011028627185326078305107190610960482258093211199909761890248936191716506048949768555511128357458782668061928971504176600803647666524148886646360802051276606333632877125187766523250562764148751556012773625754729601043626530681835208023150251494917019761155701510734821833337611728379165222905684870330263551806696591447467009138406809592213780425032501996593897640735805565830608921661238693818034923709302126482432477692348742069742750540189016257678074642154577316315167233628487719468269547462453149009322819291756570581072389269132472314039875415983685571012943093515584592458579590096229227034315579150389682976411146364955817179442830884147850622241818943681635184912546256379417727416752569313243086576473415599296454397285655412793111963475097573827651393249598590217110071840430606069738021226991606135969515876311129904160678994991165787956859134498142774469907699171250789204030223173253252541947498061263765585441852640503741292927498034338668491717258409605045802355396535197156836006278228515590079876118142611689847924941506514840008279467520889585981283959255794486453836170376794094215966319568560093974735944650574808740338139147264250832276046590891832962668112724097265473187787214128360132609394913521815418777980714950668447483191676199022129882645204584132754046258953346717876746303752469087420363601543536126242996405260494858538690982839381361898392277490649601145954150122441265189006632169559434394976352056840062522134165531183565218050479089531212471207216032599424325655493600286085039530465726852382958443601639511996844544082161740358196121776754668256918046952015364405258307818328912180656716965640733240332890474769736404000763773678105638314627029421770390489671904049372256582241956081520318964096322488029841693334139002045258144518104746506557552612954783658017862527794192697944206642031323481315177354082121763368976136554946955473146088645725216545835539660552397316474904816646204076764979517631818652713730213456728748771458725860062945839437517025678016413789368212516980478190325908483682870011291422486159124164919125362464969816034389380849302241248315673865158370248836790533992069609532319333175089125213930588294844672631128500627636784066502509362606881582061928068865239643397407312658606051211367298190129647214309285855022014279681711275456953637470308881239219776049529089360339584410694671499326847942639950778606628759890205895523441213328130731690346722061636856024881230049863909292170300695574725405663132894565139906531763722676310587228450537320249031265437409010663051106626930025110318521241187879885601139117241568421717937825136279365962744659123694478892120995129142148975580888899984692736278751542905525488189616338620618045505177140872964226393421238533553707977510934588416818401754760136847508432482029840062727024633927226642825479513203562729023122963288980471674928801700528379252977843307754740771814452015046308466245830545012106468561716686048860396102134018678579288092376027017160807173767467349927504529127190591954862663226480711609539476288783521980373421821823685246821726558608142611704718840244601687353109309096800233440748387198245203050982014897175997398582001254534212844716204826729959344584254461473173198119181603821178273918566365349378344210863667742650208385569916807630386765745236506074235587346097863873586442724922869686712284766931391608981588412332993594545391187185865087616189948124072606020003231672458117620029159885793713435574743715109285399426908004221513309928138406391624204473103498978132488278006135627173762885233307702011984895267126173542808865463073561124814017794172793368342179493205370766349823379733307628422228596693329456857814234422549290795401309056210625514973370344358487577158079089817889513722749849078602854431131001581961033796217742075109592314304358874474791593749362951188009784430984979918933450520839260899537775729706932372275504805754658455312660770247500794829231630518634219038690480383529759322804850651058174646757950200351601710436555055662414153266231514763707872742038812069972460557079161406990899520547782689447404441306037401109935757049516964059776683897437627245692559425926378923095549816474461146464208968261155782533952030844681272018305099471998060310367380053769965269871887236721804290286014065993751639351015899488774242089985356689833512267468548594921120257492921788321531678965369371681287979796967016790033776648876149441157557017676598383557178254595577588520894516654695213520501611774241443293811755601849083508607266487251538923336941518771461427056655999805901138628068528819272820209929937632966439427238192714115901343675569631418131219869337821731417360593395326924860862448288307675776928631026141639250566948406592076665771911064522077101217205687268109318390421024014831304814015922334082874176029292463107209550906116366215129918089276083092888371336630855120148619608971710159755251561280286341537147247934770088847131229714929650324366610375416734059058076733854737913801573518386086257181889047176182311985174841774040623553099020150384584505975541931774517222452091578117667397665353918878710110835407680431471773823874227550403335710607366964814291749327940799534565057888674775703044063780734982262306626822498078076960566336162663498437677126401361909833146392675191982796583302769258239314169675657122118327362091191383576979406459555223239582163496930324426016143125176943026140621173001830243881013579877027927291773544498039902162703292477768181160856922595887812919428230034379546388436802268557501264552208282468863075594032519046709397335348487962345382512543643078471112830695275225339347437847074889017669349854809176930333611895062484804208713501281006266964543009872717940545260341695941397931381078015586917485657078625548110487870935463122863568174707218847584739113510844043529868989322711840022818877932137746980729936018889219260586914839534111480496031321054790155089120837023730349351062695775690397574839565732360951382202774358387813541409570417168208620453513006864618195082078518642450264427783911472634742102526149381565942286098062619936985854390524275993865286571367088841354153748571662662421871494390705560026692026113807462114435420184227802619633697582840006539999497206587519088969878847695533930279522666171245033342220059395678042108464238900625852676190199033569157720002480628606104194323553882358705976706677637460955040566463564738583059178817031081812522244527649845404560443467462769221246614892787865049074417596314495182252067131864989797005735463438003562799096054487314625209857270858686769793053973118741916731456849626071805083378920476801770352947709756209415581582690276871025969424574176956255716189545051498634135251568366571363248794965686375730544183772606162017906097853316016061349594732658121922940107429752971686640475873362430229911270978190765325254892389559224586262163439616903800236540908748689950596290179192860505101944111076943121137524927834558354421454712948861057547929513730973771617284024406248289673028212305288207284289223025516512094583515567043190317490814902666631967129750937891473365559077191089572170580083525974601508562083375032286827459208999531641577906901762259290308272156013451920143077978460349587036255284949337006576591701494279460702148346018168991386488389437184400157527775675333094034929105283957945039985854548573918710355050613650366702439527386627306231862822239714525579413846117726340915653155527302420167264292368945892372092302486879128673814722292316933548979871128454522244356374584953430889778222185003152880366414394176265758251727607703421484277714510167731940910192519115348700262570834738842427154320674795294982858301608412503768021854717993504489915069813057556973664000332095528587490162556958219519462666667439348765801609230515106152579961891350619032298041746645813357936640945497878528701130997965621813197913147094850226063836632669900931341858342186507016766910876808650325965665135717068487847465385959579327314383279574272999362035856713189741499874902011568265145415895939813229599189948076745531720232575457589827636439346393482851975834781659392250163239231108620543639462936544806673951159915104011957922731814146860937463027926962852922546105691329778824798977142006484998693804459652883408445509199058692309095899256894507220987169855790013856068732989664824583721210173370078998969474800233120142405356097167142796223052177851583927842512395425305359101491603007649503234826271514232991471436404177475557943297549716320418205560438090433609069564188332020352033543606109105167309895110441422233389741091084301572675217080141693936992159624634090919264558318994953416462466887450078922117070726924633612451890853917144229528899045825315826477763163074923657288843103539582633782393099185364966389698435703154337941319123528492827820205407857345994680879955829430242874110458402508317882372164685539840597511598393300313564246375069020904557052063803266348289577082263087700334965110792072718939466533091368138089103273858946382216075086611744017384452154514441819747538996358038354513771372615881341854301900454174665184191073558637094439728567047509470248686991752292118579307514172267511674575130740687974077030973846786941144004489114391893765195559881802753466435348072039219033887174828093817535625936335558041903266336547095682743857642006170295201200130127048510981282741777643506194922708470587714008877048735319763602910432473230071075949914709880630912782007466122859268319985182862483097100280978577518818248914544495477278079252097301571482720926019130926000041600049066212175176582087770298598024657883949918154000585160265530983660584891364534392173968219270032649244014705073079780820734713307277905764906857215690915629437002083185189568222034359825588147214083884594925666641884890168910414539754505509709953428506249525614503587827368534225080657040086401347955700292107982219539895505999195714386107856714831358431578893585134793370163303993376411532024218022548613292389828658473052636352547381449696579272171601665773654825187719542053928896113902755389832541503920550062571584796694369761349804398361294206738872423476002249027372430104893910803647210288951049824223617347568362974048219394433598024285708461047368235956764746885391743155839855437548555863674384875613103953739034922770228075655884680298702872158726248391747471054739737092096609345263947455216267093793389208279378343033198633324650407870427393248638891605432450978428955320439257865056721695842887812459279655027948539402658828758002665745392077679014595677074556879256389294984518567902906889120447027087051052951064752102834743988599347157308111455291308567493797091748349757291950807816599109351316244264624070444753964948351862867770073618292271187630836184438372960542828758022526561740192068111115126397707196148875646766193998967562604811807815012846808151588145022660486328287574554834473675421089309388382681363437127905537412187775012076082868881827781363555377520582263946376413433701932261562649398147813091547449473074415274025864308615724258703133331205994285023023075293950743591446762101662070365023342913460910829746828800518907388682909130034235504133852191843118610573439130019381940558307856575758750857490221393400104076541576282505755409340283920953485829457020615866959949947823423467833832902554395627371626186379785024297034560049936106673520981802935828985329660447516547998899694614548521896112146685106195239445980493742578765217022025434126961111674173216345926547440668453631324726125298627572284026088690005628740792435495054742570157692445746130176486986016668841130464658875250081074091466968965866712595999509815497418530473741388222320778129043500420884722427573572260696874784819743522998999419812892789041273697199838562157980578870513147524791984915336833823833411273144748817008398255366268922392509179259648213752167980661020747455342272246409392492698546396900692630456202824834081891922694438280572160035076847894811000842944482668159114327635419786758326976951993371257250139893120932547099400975242339219971807287890528522994371437820586229192872268996286661387704565000663232794515035401209847105400196716076881027810970225981526863560737441869766786809341458735461316403537174721678276589600653129485700389653995100277807049086199533588610777303304634771963686136737914169575127812108747682436816916133339517901830385447150173394881637677750652915660592858536825093844818346094650117351852682124683184570348158983804485031791148431105360726763802206996264726108892840417187548562092408071552816301521982439385813801769098406203897381311348912282890393051682607008092320304091965570092892236020585653161264741195778476733000869959835966932561417188315024370326419581789374218966326285393586746560176569877294273226282786010584193299589288842990551881938210615551583804291079031259108666020529754297837080580601263571539561819405899513292247166748795467783405990126529036186728307354174444826907164987411238239853556618090650469368962267742837860254395574406349539932043845804235154684446912565954008105387924068293964450940309597896925323661073571123242094200746748534086223481545842044982787468044376650544620385259961317335404001772197500826794472273823693167823768237361338465393294703387136317796883774585168966847514872298084982008997983050991405223103213431801448324362435230869775292243180083021787801034194859580524639685312965031334017006262539734988110229952177879821884466206495772863673359178358467803373254922470435656518055518193237947112838999303658597370625207047510500339927698804552254445242856656674327001389045971489549227524433934537729803520000372956072885535188149803728903896505957925500620787721284161678243395028141357636937412965376396348831730919410213982456166381792998851354511128594819584598317723025984154332885141513080519602582537920034017714559405060556872132206759013086553912121106700328966278776429044189627748741752458140028032694179989846516310376417895094436192799994866152185462234360057917330425391939982483585561975009326185363894798615047304504789902960726450267363228300725844120761856104116902130830551425274313446328936903623791956540510096641057937385680562415889716123083456582134661196672935425037690231985710839827264886235461429264073286275872535079342107544842164002649543738053773282273229220479177473537362018589036995479695679369863214392911558709782345828242855029977995328403234199502815982763138478713189923642744442977145648639033679349025291685140955943730265096520415355983558976628488640525421494011716296675352643496377356800330622625210716378450332293615047191280112485722035064022707988606584387857775728896914343782127411760069504101022836218485445017266923750210644055626012686804870888080384054450221852407907001108125139762885039488565574623193506618437884029397039788553855176152943487072335658571816881760014017304654488655005678753194355097638569865453831460496601311431136462483861391107093088232017039998837735578091586293930089916885745506156923015482526366512225017751154671577455139440206310292628105694565221693537192629923570218414495358056090493541339337729242314735516595995516557494825734903932028827504219175860888580233634883134898280599610955779594573772770142696724885213950720467197033531756483375172772836693605377261877639668060252005650167083507657659532903643938297827681440287122401480611523806149501737603725941714475823944535277612740848236098378439823470751945663191885745349540262764689043417872182903159428039119846960576631767470672797446679601688928877158660806957594694569261304266868505392487426512809008909150669926028619884958087409074300572595122206390699091203151087422756516731649307963316928775103348633623424367413162854489982467540505459697620826146995549391849196357401291664350761197235873828104486035404898072986978484912360248915588913006480743995970488859632510037255854063528895503533384412106640671520447580747913859580497398376467289983847546826002137617320243636114628230250704804012738654103543815987524095354623534299975445797196869934588652726045687471008558422570882439016740920034879538906709125704576654720079440429840096929949054763493144249324541230430599463668655455216632285798936533082276104754830664504207590603057406046554680871792167345037518900958190466343912828205022817683368802517981853571484341672110516232748975343065248626728109010602381584681256981189655770989180201151321556090308022077413176699432674761073766607827887292129238467404413007908868252988400657915183679361157843783493770057026297659241632737743729438406053804964681508879875876167926176669248819125982854047073720375409111324082019229923177576854710199624749926144019843022972251719653809578526018361687770820726729399296952914799485736018099231745451878685863232268816346564193273600878529687311344812997694701531273508689442467779590179893237600028952370200302516694358139753566486651554368939288106427060283457535333656374894809299855415071664898739064822006906332804168614144954985061136137341310538856315152773613811708862947560135010204693405779095429531369577848751793634109963643882371402732823935588296883880835253910087628737549721316376469496543086397938592141609289661114447391638636574314812087652225436198190882157922752007840535590651929409857350201450066145883059469147991097915141046928364699436544042968163670793635568681726189666769125311535044709338105483680927583314111662076583311677873843611307968207307749025666343089996179006441105415865867995637972661065891110771715562136434421146498912355797973307606607602833615075777566364916707625224558117670311719972229867970849313080853092314135051548245223713027654740385856930715106097129385448191064180326873700679875095870121217037848927772509838762073323740732879339803954522599163312900041233336877685588900839404630524337868218647908238343342477604069406988356907221856951063256940882639588631789544594791996896247932115987990479878304983561867684634074740768119837518819619624654905320046629121352355465758813991739830306110176203229299062326662378946549419674297588226503782582470898996206791740583367156002937545324098935494489429378288878472596102220156532569594423530473048327731141584384350778104659705697206611218456142135716547761242145542086083148235126258522680642753757659852717381986521578203146255758083447595518418342782135015285857325572568740442805178089026080080153795073226132835102036501775437508360814313089398898784776697853360715994919840000820203263753566363307871598199362201252528229554094369172784158287966906989105784728364172199528995725521815524939816122550979105426770176223596788721131342799504376024118520279344179978692634260790561283392568656554623810168042015382440163477741723843502292862094089145131453840494649941941244789131419976679559584884408644215290251202300083086867629659580452080627016245664446985615679405553830341446796771828859914954960041542685315382898758495693187226689597960252352568763763593164090645003199134712460107319406118666759246917180441139439530310633329333960471801844988192696369845106452696182844223664518922661998182122061547128666811654866103680130736516411111272009419003305632512436464783563778923329915530277026438924967457542323745594693639296426573470940288803968097814276697276836409586079951972962468535797723565296502819052627965995362297194273763864749422731694841172622186885081832976203752098895142258121044018249313678371053832795895736696185815742235016979207801471017407669727162283571103313731812859786770446963481824427857034177109864653889789638251498710142337724446866870330317643987989729408291431790571189797188903450107770023353377734433626824934590768264160491999180494297356048033917544463292343602729533051593768949971634291233583073208975574019612527205086196209671584687226717545873768793631459065887732145195282124348995215234034329269352387820515738158435089329048998732024851707245819403553007377753708653919886520895766335619205175745725203722486701454407908246960587471179528262034803929044887710604936309911360466158356152423094675493115010379488078489598542196655624019976715339873930430832078743396836354833964467425233938345374272211780531502465593953106614146538392258241955352384413701653203628166667662052226563758342113799293692385257509544989432880247645802555922605746590025623053116021157236735107407003371214681215406773991044689487441365370715409735983986255814440407718007502409270435718807917382725836742301238357556959522681176986402199324496465834641230452573288075216497436914244806789293639746663169136914755254255839333334970738035599759959620396236728393918008657162399808430600132243590248398294805154753465454113850342269486166902390307555833733785119501407945438274112031510936356652528676549813394804847039115512130809430505305424649342037573611775366808238510165818219146967121235324146545030559985362608447319685976164958356404878589226457536673546443080681223857603289776724574776244844824338089512289057394383169589238916114391075714504077021383395626608346389996059074326173885639058807125620958169981662863416720360120776703577156709641330546255633186942910469376611473568762537462897675782672073848275691807293023755712493082035383045265852552153441041342249961581013643719706819709193501144356675537641917506821403090253388672600781658858129357629008168028719798372786711550245806486145136160112412221768008039543764492594886419380031387454575853326460495390324374131436640138669484788385347953061487627977329340996955088144612782321586456492580052272816311003039914503493647621481433645295644401783295591830428607999439025741380079122135470211353688828218535258024784786765400193053427348827882224488260335470345831666549801079863494852045660464818340254887248949399492895339092280788315995663570421426708451398947158561171695849698231320005598307651870172299963181681135998823342860902038299613588094585880619630434362629255309644143593128736196193240896532722585436271056604051306442660133971645332682613001665259463717220889794496713893208221784738984350531297799180018429119672285681620466247547072827263457036389468579682377698004598349190648176948996837928929674972852257410617384439725273140720046006728995104317879965419408454161714362611852217144705423395670456964708039175311961447924740982503248414282711670223425979355960013861377482238207692245134993964560174954638190572966895669337346460186808450076225328447993392075849791416335939879901013259034766776722179394526417199727830231458158629644856626376344862631711450385182477846711938780581805997959808142777758902974664316835633710641635233389181185399458938107711798895299302290545964955334115071891102952302739576847765244499266136747152192927429080774794236520228173300328792489035935410178545981419291992535837564511622846520591291473242487888455541957064835156188165336817314654778489734344675749453394581627792399776453172232618179413861034568781009676215198835599828775287567548415986034631692634572551914677913874824903310714750949366442293873717817033407689154486545704591948350000851088035962199732415755707531920851821570569366216555057306058575766972440780438276771173769224717785094318785519370418055012041898608093993556440578950110027503981074271119022576397690029491668314675645467176411976694186947226235430323963337996676996543343444137230412952819988587672220807281576761570783210724696540829823050522111060286950076278923930983261688243011919463635265110993039379498190607239106097352418859096236138580854593584740484531407611932785625901368691033983073448518561127255183175629039252987316212693222057327969005410477011895742936756502066073910704818419448704330661221602551777005853187679336355057802687180288182219949983121365064533113301766792096725333195263113288449634385473099230927329999959036886551774115234530279891181249903587804814415434247935484547911154997581527921535249811743068381843354847421783762462535253192841083007492112972373651842638667536383434305880337069425420856285355904224842197544086811838997122173696692997754684309711350647660451043235000879134268464674041011532765043039480481336977184596812641816740750104005967302996359639416915768648577392668965896575352440647071225338130067705793559579356133492290094443346875176462085804614035332474177418135628898398263359185370569673686853219066233440371700407310385123730809460419487822123930713974357963466414925263187412952302657998380439358925122468322361397716171463696375973812096069511548538711994176613251200676743623299631861580749433575103164305947129891487950879198380685313022295363404510222972358304568287882396910725354493756664476588973128964522324846049855836609142291930672177223796187311051625191766536697745685144367820213184478700215369714807933332999643797207723272886084023080221266290964755471534111323064519463296377498202887034414761991578191230214672649208653908409692949671120134271087508841135529573153243687054456209135650919295404665548792042836597087213336062446334899942741075203424902762761215444385654311198519833017324447560571447759206077614130845389107793169655036878006458786306820386007852292743172469256936259983696371560652454224730728792829140581710820711797448004498570780690031308398151283961117322786771146541059391630249841112213954436208673554323135921646512807629474341902319424216332606003317615766983232735081707152441690854469102776557344531457729785250757970423297404214191308422008325587007733121156104439149004704611722173185400427340286366370640843231824262981380352482288120535778231567267120352240147161114919508758387618626573216206135268328942586554821221055174453685165809883472862317586675932676706869385965617554407650387400615541028605492852899046965800330705507466319626767055463989510587131804140499105043454147256697762072705720582547651955749533286582587758573764911632016733246085308390018166840622986628619535794236825001707844184213565843099998140187864323340307857719325089785153563084739696826745966860349786075445520377970904225779270814153730695202679265324270098277661672582498948170476160000704892274776048501300381779759575132461403083708315843785532259852690930843694697568805130303747129570053085438275074077718195202831062329770863264968545169098446787028351334008275140999394038608653270715309658698573029125841525815907461775039898465006710640109018219298937391194603064300299249735881060364976523766567099267957345753932462656600939083754025201928160712733273308875632858391929878281043377987491668120003604154385290139546549049329817837505061022234705686808184571583365491607168613374824544544663291949678503357863172100362547546140858501508566341989706530058366959950828409206722592515233399114881462865937611778711694770605375909053865839837123687417155979346993295802122849438843237662002678385252969349017154160071768884643673190053126765687941482842485308773980252995718403055028473319553819989249679227121220029513681320255836004459711982319969169571337530909181470553284340895172688333115854099550073298304093981720775168781778449838484168525587510821775426949228619176719106291947542904096150724245953954895239652473252284849049527873809283672771904032214042866939509414841419925346248343484032600485557234916414355146205767019899147374516670492360878353120226200796501402487863007652612842874059385420441201891576544983145562388541599139024540650209795443387880019644134647871643701273178496623107063587967583162707943007421399364971782784655533977994435321186894174171177731836578152284819810662210135147784910856858411874805225719586658617447955539152467163147098002587527223756013560072846779457015744919467578520719813921664330171307308324419653461697449621499315290724288557461884206337772750252959573278684700461280430580566911315518213776059160565183000110442114249391794216419741078865149043939312258775977391569399073101770289837043690210661876072165189649709801293140906243588305424841905840552518415578895294940948672409621651340809409212447701701260560505277821797779556792231689958174972604139949053380687116355177644846554809776902431840649676690594531683510344820127511062498992162249813962469438022164257159019944894553961577860455071326453187936284282685732173684562178272888179224019734245107149537967397419968376118166057812218123136545579050422721940545421163674336779200737311201784032176953883929063536878461465824032329148613248987731038650134280427693673206103023454968640716784372992503796880265980213242774349344833806560766854234005308887328914768006648569117664801939483637318080739743349210165656094671187458283766990172051939792920184898130131438588030509478300271897997077120781846536688687614704115023069929893104085863997346415700856679820717390033240259674568382360515649466588201182091503105591793826661131146240634028721549082605961479481108283451993186232788124936715848972359431945158971928668185771937670427973641039987396755829504282009691946580101548307218956128093741120409313319645241545700436225612908156162196983851798864751220203422016014586392770905665275376608714595781681259915979947796465755753119236552592431218164298278575982127073502898473604296025090960174921209531753180502558451281224107152217281060973792571348960286246563282694938035535663012789942104772812797393429296981751721215471749109217556661321844793511552576956438476482716353107351634020688342082731170316549483989112340020288041336164943698931126854895264379879084490767375969958997560657549936548469723700904140634296576169976184421214722527025181003853505397228915604706051429260337674102115297939699137243295350518143024707554930554550084781613173242580842686542784214621250657973047611627002772549750348308730394114161288984130406343580063878959003776498480478155629169520555078431057219985407853272821983676570842060620878855018309900017745635636132961331959159928006055927075369702592486330602312153931885052465433194023867242318298699966575835072689898482881584709492042239135657353096064458617449018969839301558688706143559866640107261844128178469239401670111688813570841860770502081637310216157992524781035013840032714901296291595306400210450664242103819989568941142755248105646838905609782833529167503480583144830705933243564541479846534738345697514804210262341362494980917727475533504789798530220930407899416475401855287286500353830973569983646338300743111805471867777662635630597569451632417249152319765252809941456676186849271722163723735735712600714277392637408187296393413382156293250972424993932028790332582942245045402282021531898437138560165059523124963479250248207763642878460530646298130122979609051748273846271611351586691633452588866875570051569898395326727069243655406510562089483561004661935354678897547495900442809540095279133645508429290882131946657027935027217970137189336958105118722934170166177752458785182404506090473654447220280412955464520702323918665070521311979544677833114788451412209072795696012822092608135245343277685327730344105086254254515770686536155797814948766331458051964299373262867164555032728325042202052610971960945572971743643474431643572155108610922868206660034338741062665066733874563153727230033335940703870705951067515388014976806149739423945133350571421275676472016028490106598426042130143196567685408711339266609257774734397399310609898318606080678838663304766436402672181081027417671048317813768679994400989147521933894324541214111953156563997809347458176177712068634011885503439586340657175064540434349410618967149726205425440713213973657991648963975238777299371176245429675942401035706856728693050266937797642616477272759351783562897543129812760008092142206665648549132408705499692199109379574454228526704625659216543049168777981518815964307207382495901508254984206254931351271764824105968331127914713547273423819361885612761512513959900643903350100619830010329431507335964701155625497294807203307616446627053152003625035319435247253834919674252486283467432754634912590599016051213264581045489951006675096283282145404194764686133907986860345028018394939454137003870832305943700533898166810650012719819543574188375278217734795032558856459961970394339766637511625473978098456388154122198415752465157710672096004326277804988606773607234550957096465472179553567582960439771312625712443751660297908095399339549476264469591538822320657185800394647677229139806055791286138579574970225355070668001047228560721913011587301646620074937912621277448623577633175510416726308666259092338129596905193852471632000937757003280268458778902439212400008721054301924804123133157570137566598717323510744093601021988553670807089270153002187394022937822238597443803882711576845858165343862211113255584550761878447029584343805963458186165173029261706334104568180067717047991997466696423005482421596810747031667863351457008021980838221729052792864465611058872138828875867969264706450294628215070441393078884528056582887576713681354612880804262284497509946108446439819001693962058310596910218394237827370230094070200117053318005923053832738788806267600051015610514208338524997538377354965930978181578322196510468356145064305065559899192188155479995158367766355949313779176946931900744559971049324276025983272089016253614737363762564786276054375834402477422149207558231816058733818833147463865511054067670088387531444228487714446373280511714729572119757646512638028417214065221533624098679516657142798226580759030925458199772548158817486878160912516418088934476284744316692407884245155350310482448460111033921099920437957490010081939626642965321057920331584173900384881589854577166341616457285349921194744534703117374223089454908236687319725756579520516466646557113111235346964563571269605276892552805100146749470238798740334108946274492961273691623194680465647698996247022952052292385340087535371884744494526499767090303104498235782390394924791109201033571016864252201424330299235496735290262739149092747052087118551561580982537798837578297213092191743661284690398055234118760712463164394835109109801027460980598969646051742863643845096672361309167075589823395925254358834238184126416673686157006385189765068798847942121374756196722622215513612541540885168313645082414822476591457564044283826166077138934793502002942265664849322850334176748800890736723418790033932159991290700129549473730356294743462799881878491871278713036437758064605669509068642947051879673631928131462875849262941932908484154901652928768318524833254607315818051286855527090748794432302257873170651223907998946815172280862738140456131332575215537564315930802691904838822537343430535767446597430559379616822830829274038702873508151452557057233194233500579794028831150627204943256318976237940611851443533566676141246806352598520385197325085660286346680102756836510888937931134116043248926053490211954824614212537066231011157763070620273810685206694968009833278376943659686723566437170876916518462431591851213725525517899096549792691606001287310854506720223757925614594715320360213940844792779240289877263205296597180331500449603728395530579367129501725079964760168744562032188925825810965851805642793026240067855319032329410490276982371523316336379336872231684935984321264326370847347532688018231289974104495840715477678060600348388223097997055698815069295712702201244913262820153229851878801101406758060895963593484390247359040164137559712021084564803779945831964448085724341977098197255852734767267593775207278669773606800605235120902071020745944021452356884856097467113725504436999776617698854966970614004905771388403594696586980990105608453081594849155374537652497054780740795437298332996678856199223004459046473613703778144115334250388353604330526269197590484156860138421558605632741376747686698834766186752630999029207086203029603685100178075745488858745974566697450951311278463856846123864496698320237819725652823886277485352199798835469801855564327609838178206869038559316477552237853807674847998219237706544229320088379881445983977205405391305275941659323058353849945127116187265195762912595544783432443728740650696770456685449120983099036372225643685029293777385464397778745051596972534522038555775628673790830564450436014450343162737181683252850136567183422715361932697705598465006600247701573429418036568632995164791691081090097207342815171004266700512918598702414131723014230655019760537482012331494565167401643862943983768317071550276127739717152196738196194914093599796810023059785825727905891694850339855311046288532141528934705115685505821105406885982881634411749460870949336052847582747550999225793181435866127967073101743609259894917131337299101852745870929636341448224840784386408014937682609791076421311391008027772785504827236651780813110462127954425210257863263084443707884076879773893853686753143120743649777743341245562879214603390868061366625439196565144555423026330504721479912090084261925228214355507114417976539029885425634716371841426093767978065301157795876370258610297484407560400383252139101006299611922983747833242157628734991138329337770217402568019782521146672580607350197289537535520463704985159386050799285458368204077459417636672167299461566111866608057996057815961952607658040010753811951622058990952566788825138335372969748889297206931042818317509119329218014819081210146234689263382407950781007653778612018970029882948490982483375238367299353795576140697637138288163287115152137202391010630746445074920711131211934629488294847845794622176850015020024317063250745445444630299105697748176465705609811199886855912412465812390503326005624417640604120458589813592438498673409308577044343159400967238245880143288567358902315280602683591432034435090588758227856735136957673120402767748469127841442916493772684003888065607453957667343876315031602848668881577282696289665785447498797274544534885971013835735091551672598988538436890442888203232616684117548067839092178973614228005187341403982796253222210018691936310597723641390952936407086846366130692964743195438990826417877259633686470995478980184495940809670335754497865402193142248988768658666708191253633565838694143802010812486590637041633851653333412779518891914837006153975916937246516243455028198124213707716198822452259390571199929729248297283836140910775266492604437615313842324086902596168112248930600221220788001156359689637584124158149873153789772399935158660636414017374599426854741742198502975915355636478384878689280330555493073538863363117094427234767112006182494722752139400262706377733614910995801115738660941258151493613995192646513165662722644995141998675214131104081575645116506165826676332514691477292328994918202585983159445966627708744092865445984242767799745834190818747822023572086279712526380184744700937260821173575256306877533285724123808748379439366862522608465465147225189709158867045571383112731308422965564719177718955426854859394605839735423449598297051040393407535219757045330517558454291830659829686310985053079641780065902170029857475075266004965447337205292878971201060448057429557632513923227603019542815784317595053183984078261297317727805447008724775080387718204038069444503737064899068958733522244276408782765637715851942731424178189720676864046260957092003038778954037988515151385680091541802059585779539831795961757314059591981487587628038701094289573580110516054341208811070677849625899536909824653283896003950081576208415086619126993930571680868710627928612167930965538282210903926383595825590685043634969477508966645080228439182828810431957619423554658767787918179041820394903113333223499957766232961769201574234898683551221428332898847181690587864325255085043060660800226082055223248885187991593905981933515754629796107658995735135543800692299261202253442756634887971144751785039306468992646757128016621410088179978794368399168825091828703956696049877395560841430377366268499490200610308841492322443249674139663608479311392833258262892863843968409121600382622670034135706423888313443294422784079754412462232740140243445937750172835459575000695088157894895340661192976354960302584067912083042346963458247462289299312554795282388800848785215587054986484621193338301972658599442201556858943656968773826465761566718329841660048671960164004407283762389093928758239341970250662740540987990510186530899450307441931006460384536392051999349294274353608567754887836942969770312744224753151285652038683980310193489065088201447772451613046520724566678116503727856973458176665643030195928392581580189672509720600599886719589739839967724983797998407450602937979550945926263118635599230575157632073029082573610679568040516137776045622879147903558894919996913465219900334413241510525409647961948913973993099410759624525878628581011278527460973987085948607818141076065941596946226700047020630092862757061627941090219546394023520940695355960407909261216202958281487229831625290546117921588101968880900121821416297825913963815257822840904156522727310057897910774937463257027353594630194255453013675785733103295290809785729420519796166257410906415075333260289027809743411410539860238960761348119681752515861313610046884978056239069657875318912388170418604405815760339950255137029472810782798662362441327902445098925134610634739178193207598530758581365658076783043794603151073524417305067894713570334934191646666982534371561766916084709793013161917522258287287977171305549574275758314072140720546884673614582984677043786222755191160912620673973043809042674256663429200409317673399964530544955229380113070229915681750614103283077703503711628363993962740270952870073575608734364391946440413557681751402604103299302565974699163947817098092623877793331372235659058785006102458930476378296829238909945494726220938594320462165378213812633801790416579756099610135471190868874128906890493941046632175667783303221924044741258588619063614640081920664554634274599707106445043063318294933535047348417570137304809036215006464634640028164380218489948028420390972245479813361668715969246941318929715223556353461838383070297143283509101244966028973699711688957052602704702986560154855621476085873489688898445842147692309346758307244856161722716337494095065894217148849231284554458423382266860562515777547780114914037835895457793819237938611921966493650073022037606617161869049317732146811563970148697059499077838011110035193701907796535241959450211453063219237226690778997363947361255248114815001992186236638483134844834595407385879396397749197471442024436108337411247868578736364075611554245524914397567754479878249902756318710195312143970808301502838921351235842199986754578535477861579877738392262319135707293382803703604094083982582733430229297290765440646390338579046196295118553400460586869425318947494147811705071347964654514699377994683064105656675370010105080231228500934137233989565289114144362493813856987784068626503214699526461550981240878170410938606172542717661096922850618334448942071940252804841048275025363639135463922450644189654555013635961846532067663622490095581513650965569268213836167484935760332017224747715487750530654509024903107475573835136359304596496217333113709260616187384057938049835115677687980814832723272676810925691799059555092502012697361160250442959971064341629177364007255744505529481247077907765620002578505691909093619871544958942590658500990410332056905292861755224844924228557702785369443576436798402252995619071414391852152979517240091967761465914036342488858173358417564396534261308762686786800277892136251588651028007240238575889230552380723164775317191205204529333669109462818354754371372016457905877940953916940727721268395957192841131539161330223176979325894937316052199396620462504026225463045680126024952833037610995988634845510324008318350013458536744961555611285105794530597649952510097347149497695564960156663180425385347147911137972500194364766516121564917782671738838527868899071145494705738738261460502267354565708478088312066320550861473551228701226628256414986715704093741538461390032847642311786018201210414277610305253286679539931065088565392109271394831501989641697173008501958961230514359989290667058991491210522276292400586546606127280340831560424038226012266708373696580794644667945863627563087872480038537808583271764314339728740487848166271932208401341789947400540369611327867236253174450895670594216704949399116659694860735998353805442169712446248908930429272764858761591712757897798067397616396984757120088398768090787767888176297964103884636712466924801222430757079894507146617810739966611428745036604422737996572213410180536049561471696824116684635245692865398802846044266375880460940867161116430629714534095159845192281913625338497206774980684262916705861753446435668052611737298022863367011156717680431916665991009689546499541174303449616286755970472338521349951452809652439246131015247439854007592030315040611276100116229292572796997938292357533792066856633920379709247197026104680506543728358548783245982704478634018171000727273292865791244152666647235452103533577506497124271042020987577839657891152087521265982312919814058915121379214249004071847427982386408713099149462488462613326194554606786590064360874984240669737978623754106924990126582286211589763410164413554297256711035322601976092296856618085344348592921130447844813051339856627097496841757677087327150831693121329828571565688633946897742399158596319001534960012969947864749971406450356859671254345851548585728227460753567492367610159923019830144029436127693491182861850630857408807289831655989361574340179996378910716772478786942234465795620114217294250772854384015191372213945087161508744261773401901335018172239588456976662320800731015914587279198125768565997945003863401345701201112019699555027716582733104956277409928643489134838575662393876221531581303009412882696410306083796228124158822959719068349077371323294776183274553500439646370379700865536558341376873822745772882777916011465605060030694597853321824980543209245650714909944194613778077888198860111167746237230822961791465835816596491132438727488184951794111211343206399795066881205940138973991646224353657656957708633847808666494208154880903464964961512338085572575672355630109589459558844005175118431821741266060858115238581690799129748490578065886209296998796025325531861537907735181650429926283212773000506387677993554995010885284081287925037765926905560455965356266885866594305637890349873163221054581943452918548588400304664023277670980639257458202327369188799746398627625619013093263848032231393992901788943898010994538826634086991100031860022203421715783396211282316319501178811467597150317823890681788727675858399484355953922053540350098834670386741497091650781904925041977789818095642199442414633191044495193318131337625122594123642941236109290815475056331875167724024793713918668336144522250728710230520060982718660556665048620762495000020100824211174760587683765295681373697876404393076914871598467003030539086866228070324842663930062447950698178739378471949421440859045115051373807498285643925118475997311021228889054499701954680066710680398667395844942732966642450735448414064402324528215008584130217065674103668382388751716651586948668007602653063387042111619796413898163412978584852454120466965187464776736291591076099771478869617531310755745897853019305505844363491918633467605227308079504066057817437791994488815345372422476304692556121023862090341848285053079106104043772279149273238948964941709960442364022859986912723783878811735544231540353575635381197911247071518476008206550346782038153057942639597047998641369546663413189176631115711031131425156958521641732961421028004387266229646729264771979482244762716679794453815888453832779014152202204235685444553350252528034848879209083807491606839011886325200303647607915793086143158670646888202313475248430840001416631975300087702535683992747759698506220023335416506292774947606161586764543955241315479090378239214419112155776967799462242953414237719386105586072943072614657958530552220765787564607168189880186741484200542836351695508481564221431094576075090812168736106030390433876945428707027617249308404555475331621027301005068387291858707651645144500926674976231549974079748862950642186648684781574974764928598006262214305069294396548242254944058660260556311163956194581268040921607451603659622643196403483391946587271602154102385327379834923226019956132275609171765797437062853163241221485731864484419491388693569342472487429297393022689318608997693945482013093315953862458948234709678600748758512833330510814512347078811320000525098324753812687484167799374652458982611860115357147409911996802540094138259736068914133526002927906001627056303230096847285956678888569208261871873128790599343642032303057569332502281807597670211788938391421127318349878755879865756588059459964334859155156892507823989818060335395379577191849815557807357044634230000538557943795399568762611469300429542603897514619143661255941462489821572575811142022097532979575348270118361383619925961161938975675311069061600455923782946297447369907289290453613990856787341296648697440243011809496282395648295362020394316914240552999378420214512586779907175738871652132104340832887857461844173999415008556912579064010106486148317508709760234424956145489890902895746549726800140142325507088590064794512846975742220283547247116587180634461930651126627716821783496783654897543144323527951492916349054855476009836887358244343319468163132900527863858547403130359320563857470731089505239257565311178831023561902050712659219429395319659653228133697115680158988289009318399935995438408574285655266638725871282613112738461728495170669127319420415934141109179637864911818241217309067559468495296742780166316931743331089956513312458053806418093531078510657376886156876503480588584995591255493190935320600890061108828600429965957898189539176091743749893275469288717389966010478936979888209087068685986594093506149349201555139362577701657354216265853976631311632395235941661649373062715612286928384448043326290571151774802482176540712841138460836335779621993074631018478195500365156820678729054281040266014104063212441289610734478501314701270730070676373637461995518347367559964380566984623455223008769498805547634043454582555539167930153256647793334100271927715105722464179936990557513699365871444770960765621584803588223620584421586221220287395814755174935659961764474064230264205134986721510005665481332027616142703087321516275014635948371933961963878586371121135381549024311525556784281843063584497353593672928276426967522269832699957781056800908668163517285101711853451431783034647136354186752987698487545513385163088128005871388862382489815178557087818675198281378491080613124177346752520568221151747159656344923969225834457035683096124440900952572185532582646081990873572168135401096311673721900545695783593444166306311426808151380025446241612741177821482168060157162395593721178456181657235199258741817510352866179092322942042579168137002337543515598741906787359018918103933032820820256117502261608192438478799415116281043092103766111751851380440486568307468465108379072501590435679573472801756810568266862252845455861738446817434076857734157068818904333747479369670603176093831802368997017016888904929317801517400847507305467338294982393312998893060013684699804458760580910638749720584422148487088560796232059430905161601656798628914636626366435900026879922612935219539537973906377881541664827702536439207226922413869794263304287686229280011356642461368911932532097828321540600785678892484730498051321332056626996641910040451991213019768192810121134412918799816219733634137776400649505693196728583576007088766064829006048018083708703533688032699116023016401991794381756320263142692616866715361965173054819214412372998935565474408195344414838035838279847902942401507910819773941081815757832653633866018167748954730694474097917667485651613142658623548369018705886045626620376228728912472342048470887892787260184301549811714600015157166524036216617319627167377921302619185409454401416109953743687773145042758204342829816952542391063104261504638746531313034616750936079460723928679273892213091666794996822684683693561707907223932161745774044671507925304581988105836264962824706642268175055682256431535970250715858473784458021772684603087059912786000766748098415001995442504786048090076358374173284034422460331966409339453772326847541922506866371442082060761081295934859574983321668450098383588849449978414575073574383647199627973178748939533802386605739055977038729988306431090737266505737303312636971113679300990610280016579423316942430787555439392373522319985278233761937777967112710689262053056632043348573512723466000220597970404917545663776129627406636923677412599555092192892170878310260481957385570240283257902513122051773259201330477938514957554022436366478256474226999889054298218982273638469468344745805603781433614537093579103759499280605503843622780727455689981346821482081142622042689019956855338741442398306621592607194288399402484100798296946461712219331213461456447558640807871682987302555100713464655912555728756439178956603929327372427843374236854365847277730325425307573247005041648452480035808622451414281683233745391024676512602802427210015618656259248541694754175373658735712257934291816587451481871996023853693394669859103251419241130224076831352728137124651058586702216576390328455015984674605031023251586377857357303497620817229027699161157496708742450012158550352829539074060952571615278382241473159106386918803485363697579750867287248525007683606773203466242752569042777590662047693778870534709345959088934138621510837000620997142014707597624844186170797420794147623013884194757233053781385536408537649177144444673145972167388636063023044046375866574973539363527392150520433400700262454613926007934371669868016992064705691092326020902729331601272761871391107557002133433291640633534794400700783011363081993491349629497397505891253473184788403942900276105450295883432079120884761514843989237504774897761642410392653932865011622772246162988636507573321421807029047147419685033734624776040440275390064412384795321973473426336791705437098966815767321562620721110646799401863624440228802391905391783983392460915831764439739784876195856545896756024907252987511620302182633497126456542973264422852002380283308671442937685739603827502907714411426171615825010540677356187904058715491956683666026926093189047347886037044565676569106550997722909656948728718718340296809550419361736300826705366409142166578217747704065447507089273282901205364197475948508652183397568781151334650250708703130565427249303850566210009190170376744104737358581179663355100399933872540132274567465106290098651358455040490373490646256135197680644989435951901830536258623724999284215746795936447549166153760614761017665471989220773615622794676904112808806055095408237243536461610017209736129017006924869150179976082484186973104365541835314040789246797007940689847505494472753485684682487614648466613509045884697871322729775947349317491400475498161298830495261473772837160984383331120560279851844897142154722644658786664100268185552049801004226200156636425498009246988283823166450531392023526632028524070312928824696247898651144459469824735506959708735119328669509858240087123823512852907943417574299635800262053649671210850463345021793406137030361306094009883886222260004504450683640227543964002701963683202954032974613166381659706770029856616599139384928390216342678202050040186675431511828184764934968487686586279189325629182438107717182381401279436291927470045429463336849540150755894640126950863618115041168865690173200017364161027396517129006064871375223074554142247229640986068799811201569024208131926440080627963531969395294320331577227749534754121303231583721298254532994332338088455533930148527043835532553379575502448514704616476416991587974625056738788360910017690821418859856552232783966535677631802069166867021358534589427586714786974619292902389199426927370970362179258248631255209422033385183221618487488191127500832226795939730507625199534788738332357244739018816789491035609040032849618551960601095962888346284915332631154318117865861128704497170543670400411989068952638484373752686235301645695183856329669462029043802960206738186773947533082770633729265376937970806863689961418969391970807485596503772010867257019981707676255992123249904989782096208280266897905206852729047709150583761778618694508620476439934418162279549863405696731494496556461430076832484614804918865869265014086372530060067969901011585584252387259509085421772824455191245599833052247671027699723356662150232728468579380025287877519994975857208419093188356436442639392784841646988278373082233814878962051472225583235109202331592787382779066052283027784429597229274164870954844031077577659536416980662866022651179186661737010858145253600367852608305549322899722128120085011056464545724538600454162416596760608388749310348732006820691282896627798027008152585428015518098822737523283132386836072486235118529544523203465624298811592054152276200976594425075739425432897894366460977323295480320341930210105605630708000750058771566521173874077658330715263965851596216894950345071774034907707968741004255907484680631216764509084811598462214575144214470031917363750029221335643822641266285215642404436440184788751303325965284856723560296955310271437359891048710134616123725641308451081741870838402361947270116875078845315411571202223975061548660094564297013015717695830805457909074976359814741912809125244462787915826264203728308741392142092378984931944488589384153673999811300025071860804596610424617218957761585523342972180543976459367094804109190544545722040240837945693856801496361029411265472356247490685220783432841520301466439069635477680991512111245901511701345395129683726291433073754084829020419760248087159487429230695707214577684236034427241925711854239363937919938206865732635610815943785872896595298126163713173250751623678255954885536725541868704598015951739866727569250661667102731935945418967700782759060591807738391463255029265764237814180095333310364584038519878544857667124956891244369789693639187791614142006206857693748635932851656187179387701163950971383776418485411538372358062113402812498549907314762020192436508474768394015051156877677598425221826556586396292499025784973636150228346499986720209681777341927537455829971221136048375370651437392744063578522721794634022434011802759770459101940770281931055148621737746262514472714557526648842830308279129713532803478951133808451289237493900258596215029255201034365773421733770280793707655939318595764965877638923269658297853771642635277630371864314779277590723119395429286964506951399901261138057970216158857617049688794042815146457665257398231367674832721661287369774715338167467208331456808092259834025362118751100908218326846970412996343710720743495818199514837355934386481956883871721923857889353101939067782133555637502241685385355112432096053428109583224858375085562726523756464769217567567235849541955410588983796853630620522670832670141621732415250845759406752803675005209764296217000919899017179874473850976923901846304090338085784775183629567544562495497432911007871429254438378677835743396389729469777467500059636675050800253686613147952870608969338101514655154185076733389295362758371362424494062616015086015407286672114404585226556687279098459286771269429522227602285939853778352027066044421616485272028680144432891443429337041008511636928048844202710272595093981430174976991454741938774519482992099502813437622230804253779567914929115591653652793529183925049481190578671224764535050320838754975548702071128447332027363096086248279350835649932543186699777923512918310198524853989202780499272822340861110795378062056782176964463296194907885482013891706692870410327531326750046275191348917760265011987926817290265874028189828503775831760693004691382779019810100748311590795334465461597853992395504837349718080226305093124383988767599294513057617528605545295600907588862249086857730467911495029413746511686878811763392415308006062931184471789465965902365322057169711908934097159483358480006265146896592396546519016627011647571765517057003838081883388656412915753973774491437013276346235709828609381111599765649589924572275828689044094938727438907638530517853218012671202683145816478721367677937991019884416937429150697050475876443635811030599356990206406111235384504150565492530280402368571813893485326853511466544964941601019156630371791251504931132445254641987365495431263139760116015067651337994880509668101964084578945063577387987431815043598656103884508411201586249479855163127119458439612545143884421128931404737471729721364061350551308055439124255748398587963857801429719404474616375297372144172203158831596478314511356990912587683157297043766252456297651441948146761371606973173657563324720624659509119501251061665065281076665468097849476589196009024173017890826542595814460037328849611317400399714288676835809400020233189649541742841572045535103849515168167696556223738671772599807798616446646200213076644635016118384035731268244886660856273583455892303924562174497122414408608987358863879529305835023651480442016595930794120509536111242712846262704310186541233593675475059501501903299257227742278877899505793668083294595911947072850143348761424776354803806147820972164493511165892970904963263805846031135132442280430247324684017068765467147074658872384267443771409184744889172390711371737587726636639067726195331900718269436704741197891023787089225422327243924538627825612832976866083294120719849773234796610745174437522773439525735697980786158372570830014077146380692967065688557153416068935786441632768467615237185442570684082410348984731820421449756810380929373268721337620521497473327224806009639283035281135652779501761802461232946569401008953890824619971404698042966903079376370828543960750419162574784346372889541026844868138424479746997430076941148699689892538267641112664877058250880754040479166522332060783931176969404627616933396551193817949732854386490964564657440077604162020261296741478476450065808125921266245940778932106555126903926903336468223466944019051969210994042892982623376231240177034095400395865629171141776285720475712330933853401376101493667274810943622782402761505803056722167741255026244371040874969801500148726976128160999802114646230320713854113263868830460766198186189588839611563346137894014634668947665120582100283098896513839891266377321621497500765699172246517299248055216585166926490786407219587021056068346070462098295860786980533953897257691178091695957410787201411320190871247902700360044975625417043810540320963912934658994586049586796278685067206350785977021632389427955419291679043597138920320417450246315061944490683030654913909487372133211359398676508925419558027417646751232091875399298760450937984071457763994861521208052964136134497569190624541592895913518387841904056752345864800234036253327364045359728246285990556182374874907996173276358603367854938532507112431316876223503263617073030930187193589394726659356133481174268356824223456121037751806970277386059716376994751872813311755111729755128341344515127830933045322969776866087570047730054864491433169808153368653615140324858058976562815267439040386097733308014653192890269157822800888296443943047898585991502683091844822787807204370357408109483791227661446077371716320284934870903752728067022962738758908089646781140735596797745824412726378724202190907945577051233170053633458695962729292103854665398452079460625925600517046817412958413426184072352805619995114438184712936157793535066345351819247398544308619636060810282402836285032675707797621956555626632950290005674883405895640282568793700227820075510229516662216688151338836175639896086679692057920353795050367919633021786497011244046736602481010181872790209548120461515310103028422055084073001124788830828218819326134758219325218072905150876559583454984683935424917113176834530152589525893497444719479083655084100690147854867222185106881522323351195687130904420148990633928048523142577556435846489659839448180280580243536225001380623124611921196393020265670079827045185315573972536023531698824914770400617780009443605344276156487361117458229670044537292215920837826155870609936188836787799346169395598892079349910392740804543843419837173229143593123865836816434334841459649684382006853507414009501360600185715849078805126806192984769274770073709228047740324547697015430345224414288877114713490897806134707804396915305997812256061448252058720696809327544187414984792911326769323957041083557336074606496338551103930405260865773378100470131713029877154095075432055482564999310653179751640254804354268153486847909933492146193883147216302461816480954052005775348411723957779987293537676197803011985159119860306928568776854214525086424597671377260408871647651533764162853461833697262425207951092432109775022166531765902724896829448167029622023261206700633842116516623218204999424206547557215011152612706892841762992542748456733694232595558922038036273977786827804223340860816977310551809480528514002859087100063332555952324529680843567034406317121716624548939314798653151037237247857172835135672985664861346680719912327050126384303339812125138423212384539928670508573653075378048633470548197424076910191727413436061483025777044237825127358562778143017360039664351139481541700408101198294810178499841007589848179593383064765972099667309243423095833995012497664767681460138711184233923061119817292201110898855495997747987489257183749001608370938599212538470968314085856625848589233798443171068117127108389568830617210975636303035893727198553180746069741194961177473638902530143553539825245499780850486178003488270543850430033868889371022692276865842872138636637648782074867189997265127265166242634183562613173364186228182773009233362295836344943355024764041051802459245294701791177076020917359887158613018311134612770889049912970552824703199505630858205791499832761531586784901718470070363001096140691658141202349131415579269648538063523553849237946923238474731764359807406623469326273637574462255301643401021653928199830051002539074892525787232616490522634095155179458206540300233700667136323050765369845629234472131786263085805984300497446798149003594976375183597683415635023818990504858278021376348646542071765521018991011958891221510554544832041278505137575334537020034527693417326903507459181932788209083059136841547072899253406442064416627578430214113211833440693569369539336045408933878712295658767780148480493970093496820361488374111930760145793851469595554663366174057053049934338408999250433810721366967002801073264254360236709194984835368778836510396116352075655353541298902439979615991658700701835307726472970819587821664901769324608716075219490954979225214680189377266941304612156044768892887254228966870183916947958150545428623233064993668356114342432276618495864410951199665803697324049802282629298634715016857865703795238370273768254251175068301198705877832538446003542155108241251745561311918759614683266752770086929896061831095351103976705322451414614347533463268198349735742808797663458979561266460661136887665834988828796088585098668663838530456071037465395939654797150735551796747889493409047750197238328112317216909256282496421437548378400592295714067896340431188235882124990905916605660174019732472843372698709635606332847167802692984938452012578077267882674927517519928310476546243404806390322219946812444432165016302670660095593076118993263273856372697093549223972750445344514813440232098724872468231603611929438141220218078625391760314628183405857454304952889650745999607050693022312304656655724059507363696861749197161643892255308336657234355746594987534695015782181436184595485028120021161817512530928404925585879206687191992032993479620246519254921231790964804078616006157156611672726116522854114918178585058384578077960316512101227303162549675692919738596293776048665085658627891577723509030442367862105334643881997454128679621625131096262364123268922806448478940147529101601376012443442402759546781365409036573170464646103675983437827769328808632592774989634211785849725492663075219121375964560404378877264112922835228730707874456747237732949916521630616610119667897880745089646824470894482458729753360472272977492414974679639719787742330128986347873003474207740600456870973922199206826648417333625142057725455817510757551468039945823062768118412658261341315929331660161678007677614002100440642535169817341226978738226275893354621074420808620445610970821383514672567619420367924528643262981822661269674127868604401841851424714954017065689895283352542629886821686579152315755152533244528406732442557689265591791316691757063359081225968553583883549822751575012027602164084309144894588492896591371110781892133488450848318655012537070098770317947493404180096432429714689226773474794369338504727943068414059758414976561221627428309295534140030292106867247736163159346658792510828201354647497611429206674527670178895600310345717434379504992776851345641499075157445418505897292191722794260350390979555558869455638652196121503815536334856840232001809569507789001970809965923607984055893718761848032193002810963278067851555445292774509677559849605186652298025584266337142742381208453200765390499252681485698880821157327385134886239694159032587661205353088465871167139696396978550225032366718655858039831224259854668915732098570438641389276347386000932971203685017171106748943407918983028832053979629315746117302463588277808563044902032925113819895265100944623214093648833743304819913558456276638569419615779461377636500185501405313708947632552278719233165727356293231254869843374763938882617541330621936877471513134312558102078481144300904450697748323882277988840780450592751052031159329528826381336415051266081593747094028573166331059529763716975364545231737688115181433819472407562795840103169033633105375866979682125367033572930752370999608555409753426147367194544248441094954865646871180198416347977371888480705497626313396318309208674839901451097164977808563584589606121242077996523938927197774438680959730284327789229495218769443927756853398973281729627784330712869323151832337153485366069802072982899727262871643855289513020266982821964549544305240782053286627931728627034375312343863601448055715799659294147754470366541163028769997570239069644794731452544376735950983937688422374595700708090857179068733854724843281392699158429882261454012948451480594759601793050536718226138774714105724056327725511443546474186712375551300091860772386826629275260575192669119772991028297065107847206338331607016067472135841876190074086227150888270842957045281614447984755070063538105582608681514700322062660709968923719402738290503314717377345976441684890062536968150898231100155221633571638089423241642460446096608558319194713528318192527480392858544162047256454509834183555435791761954818765797730667738895993336374004699339202784960547867871916856287593707339888363020993951425421806231121398778741794896553743773960605858306614278088351197677944248467932347352906998385294414973817759021617737744173662199909212198003070212279569340541792230379208778563452192497662668133485453969985407346349620607253239303132675347925669902211556470760737311554944510192218688231891153876792887468828312277152287044678743804294133028485681902360958563772193950190247855977424694974303080315329927201588653568380030129303045036332325990039309912401776374710621246119657933024386231661691436284632801465727779839243547216066092471505452237015759278632932474190286559259612437092514545416394696613624075454893473350828064740621079123341294309734767505940655965844482954306541428638907450512968589413654362100625394906664765152693425286267930114739072286829926906655509730059412140739305431316865843674612142035513354516853252262467782039718495220907608023007421527860778067396404866701202052218451848829081801279630049720883664762711548915298899777413850657027051218308522092392873210080496510603285878740249574152235340444223145812696924369123427142719187413336894540806538934179053392950943440808781330161199431737226663937153365414775202959553502087826075310588529118503210494856999061676224438102892148159754180016686322369128636572445291428963550421420078369661541164364281691286399630727667598060921011621728140680622747699450579271127853637607358118448131568931849523646073665468925268104296194957358010453361231292750745319221345518063394730859045635368387373173384462467519605411921538839271090589135953021047326485770878482776799116274085187988796749618039234641204582164698009233126940437025471575050971346793223863153390780976570351965948736019215309360550830886062601163055668313625005192473223363681777254742076721247454926450408681820460380415978411064072427833791477762820807855741230205496899599547689382166077189084543274576506073183295077983547845143013799817989071736990736548118659047374074212044863698416496856690648712907842128290031077643689642758376666120244035336590401466543234564248768236827142451537825012618830388534905280799787182757349056565338985052839838324498439975737043651514132256326218522019368923733853044619273148657932771156857436880373291564217781653540490405239834814412842656543409638104978991371179632477491558996254006338987407329307379060398208413180873866152418757238947490717312908338228240744585741530838393658083990827544098289993060944996912250261395613814734960834601584259447271473946680443835342935384358720619839388948068189696138225145204082877117242557470563695163073483818503608347289921941614141296453255099145041617205882226694958943502630306052078415498617436055841460432783751601120142415495815392582575987680910099767924253583647466993017478304873011289730198241196484772562491934187023274270812014308268019495732212215225955770965025047541097824497912106650766330145353598259668404458229211028917991859278162602069241457311419398510706115793497102147167350718321251505936837124904444892637378648892711806670780437046124418127761799032308376719623962945766050618593104191635525360241695636052001394366619749153603633782292817335337069530669424489080116234313743671075822099494972845135130670045307183734659255307310583118426082026137812651846243934867668665502682294454365285373093049777419470068739885730903751284425050216367055126373127950967186283371175133796665487777723073551529885178134815249860720498288154316439610590858477875876993047653065685103196974155088731869177447620476743565660864423186295148612240026770924092803500869185032577161099695638048690068223419343093961508655992796275572972756782803761400050253353794910444093980285480556934114192614342520394317469893498183491981995009430780811285549101546587494100276699771178950263344959856801323080923540444445612365322037553937110084343932028233433029206159190590222777188039841843302148250626045443092789816852148464116136658199917201597248192910492040639764627223325324157498608952909885550235390633865398297162263227540246706045611178078393610618577647920127489322277885149059301343197725840645519417931255958222475218910123669595601967570508614353080677914326019301968010015020103583382072754549361124759863273476063410421276984915689655315336136503277164622638827047245225577951629140986697693317842320548109295581731388154030019957297318673263598964640041740518538597052313360771219960131417770131282439250336630240972708432606636153642656455807229426366477900835121333005896757598405956227537038452761045344505140581182691073008946557931277565839117460906118584691433922904179801295275015908314211711316554851450376785444982597379787795030035815609318745614281942168864518955611845129383782394735498659220105517634604771517939338770120405424059898855436441661854841076694727276442970740202003987187436745344488690585363098792233614431248212289493166885128615379457506408733260200403623982046563931359394854209698233439100532268259914748100116283882079810081381245326587093220113259472407569550766943089417339424501851063427074819953060287763636023038119338654082898997637269392606778488632146754402943863971882442877366360295968698230667452937895245832754138916852036362113671110908350600682609512630584387259092945921392153330415684210134218315699626924887600457326212490571462774902680204896935175807541107632685830276221468041842832332067723447398827667039266543982978006518171576458586643307305984125882935248944902334708635184553626775955022952137520369735396160480965591927732549947699857374259437186693021006839982221846974147093752982012048255209733735035622196275027938085890674470312791290267990457074785927795092155176784655139723925294717883849310623476125237732469193605940013051762992013937561972946454958658386239840416419264102481529278040879379169974100029197793225636197538270655829469788411518243972991864310032326555277163190288800128833204759587945262888759687474504739643018340656417555955492248215913652332844404807722880288257945757966441326326267995702236326288353547864668382295041588048571594056211853026440428380480615230006948834248513225822965556808727464250812995709450495769269823306070576426476498919723242874769160301864881793084363284663364169795684103161543381164432533221368142347247553285324539179994779686242216744578659344994359540755812620842802691191685955291664074057052377019776559068232170234452850425759225372156532208768282488488565728053297560575683794863655761642004035949854619632461112702407728482928485717880035668744980004733921942274906026408163067778386544535703966524402874276895116359513162846973342065948417723304848101332409039410364996763217724529705953777124280236162724169834072770327097048364644421363803253463147024565472809529878967731628251233854077698269773181709746631802171250300016422450811641369134763795266905039692318866277507342522164133753092512011237738092906467689888682256958215735500004168375359144096256160407493204467864389189451599598537789684464026583393946242748221951898718586433089481698768263736072551138452404307481923801759106002569755318813410266336057182744363384836758709885494174626827955423755099657586992334826909532464413408882416819979921278305330572138037987366742159854978258360340465924179781734058655137884223217365306925464109841728002859683235916821784837342157711946347758461237943523538755730485900910873040683568853100586024168988545938273172135277080054776890849746010627670204324328254731582975230132650914145524457243899903331493318045959876446646608909291183271472587574936098850853174729647669698987282117711637053464517080831913879373339488880757857567044239120939661709533619034144652852732191321062206654710542387282885711399327800064735815222927069239167215570948560099584387832711228052351743444236285792682100266869276076086728646809092367303369454641073660290786903022570575138666626878225355332747076653138385001807262923646220128176104951595483298736257470422737873584390295160907042092020862001200161966837134203147561131887447977726816745674685965562357132099900335325920511744307547824238807702402007469073833842909179825850572316609519142429158984083213183874600529312634554006787757991608159876347418503491411252895164091312631791529625010109096832363651972561188975985611855107877828198559340368330126012249490656963224695278329495485845857091223512734899881848297872805291291579810429349020706301686976279452520739564059401373900036971890043631577052718078052290877901719905489343694496445060661447907117580625861778295338143207954691553658066050189635286605944069617203386049508260367282285284315828377848445398475752798060447525192824406551144603078174558528457574462943826340219019365956328201367113047444685631340039301091472746656131091978682634355376833303975320152085260622239522330356014892920764081932109484339205590457532782343419991767070271945790275305154642306642898116995224656601477168554943312891268523947125447171722805091687937469360344637411577160458434993354115109910578857720680732459890225781495045461106933015450057830241763532274483281669881045723364172892638847531456680168321528394234279785001868945480365657420728282543540563790493524900565712122828552295429200400280105607681058486794490900708568135865704977614524430030382518063654300079726207633558685089569901837989908212817753425465957417486538222013419766554673180094025392565693954073112582420685916237236562273952815496016170882540329630149750720818137472993714660089944148006064898792938703636878325786935613606485356303392494508647591790144163280172799235795194533097759997908011607887900830424634004201924843445693566841412089520131507140303764903881833663595566969019937728309605589636806893036424952995158960887248039571515868169609322687842786845370616202310154114001246447198307059949971601636779113839985540382572274469644317925534513040154612620702751566466995207816025948506311264920731061931210822377858528330610417620521829122280669153768744281070043197246716317235876975667208530860540170489665150586857430067697316053942742044588240683369467984881717646257545974694685108237080383508338276305434528447548507536784547661568464229292582345263358943504274518434745350788495658280030148330967984663709910911793412998519080688231306798902742652848795055225544481396108285128300167361807313577911768612196804116958941348935678725587350450509277270738871467978244668773520126614288439206794038046882697607577257070755709851730944364092380832371298274601994465060483470446111429721653001197064234365332649431478275340597850059846621606223340623827746470760739452491643995951283740124122294680452215527836006260005859318814399270506341696091973389819806357754100993085341616490424578508337296839998597969466537904376056504487452598860564216015579655002689655603560294827764155083019374016415332426667547053423580040793885259493347925242058362909307500790991579496012015257693197483562829855526762334122831910448888897108168620212293017212508513606686304976683667577460623660459121847564130868532457465777795642612197585317418610024692379134063701924639124244135933615352463721620655943713120891278668349752522598764770652810366876184357731113874988133102763013237005457470049795950685323229546123394491469014724131787506877510643868882534602195347475245499227222218775045142543966025951117921828084024391623136938894920699042403906777355316099924156457087553592344962965407083141692951832096571087360713470415422738992692427267919026890006239337496793662256664822172025058100788677979551414112771678420253023326746604189874674937613867135370931052797179393332758588535116782164917169614283382463555472194111893912760587951563173448439846915875919426486273081758897587432449164925680501781303396866320002494418492328025506320288551618559488634247239019344542628809983023304472203770464346055866556490523882108707814857958017312734004132212497706161032580113723240922300486182723966361560887587367105166625330058320781958309215235152267074891784661165072894070237525842557787116813788862478401147790171772228922035705711698335754966541277592592073698897986974831342951526189027779727726849842828447085820263491461692516694854458482777132859283813770135227504340126277735319783575004490180204868438790930160769452158187480461692229395197811134681950114710757322971096726141814790615235783229858645942461145156138133081823753513699754640228553421283377867515214228809779453670810396313779749418639482828198524151327096724100600728095153892130325233112002980905089033616744785573764346721667375799959045149273553315811797182556297815176170138648036365272361974244961870835371495503187540076380590379074760203962981078726784919509827722108911070874614969871130675735863306192615586832259232105513105120149742734561801481016085332572769608644754502308548446562679612901194101328305769194946502920651979319795772361230001169691412078013716846613241894367181950801214889240050378661771395960725976294565559329670962045249931488091009700216553984983599861749576601311552335490602699126641959635953051273896587526147246183868678498745070585222772822208301551157494745337195633466034146109465623544642779928221961247395904110925661062348363947357405176855542902012270052934116358944271713072221121211089907999260954095017929532838613513606018560503210911416224002857939660956323171444764167930260369404680696314612561638529279739775415390834357375400074176226053010772622594444440715622128544589065455084939773882091304566796727753976908880065683021969156146619474769684213948843071490925663228880529389575076287653315781949147590793978998450700098806646416067611798972837213621992548949764803734605405378753828386106426565734204265035027333096199547459761175859743572592420007420412145852598039316435432484615641487724615626420761017022948577423320764894382237370444080429487725358268684419438638696217807973440993550619198191194807425471180068056287133300993641955709784814330988741189099627322088683146856586036198883900350970850262154932733420012728066761546673636566010515328370128485466430231275456080124244351353187687449021742060851497577773772667447195044528692333856937947509382429476281037743947856074562175407110565805103882352022205712510912021142435480171398350723879002983803148416847802749019258019626903130594664069979005590855840981580212186922252297968219448088221787798391942365276992747368054295127220526422901134580938093774094025714445471509073657048278314181285530393593942500073759519868003160338939681481984716896467470399128621370900875597843520305701953211107398984639075768699707725789388131354646070673962692885187013542648478019089370875614345881050462195681426720231040062620056064209972883366027485840101951759255707123857473086112818557032395093102970131829624167982914846886085128450725011556380302492923541182415409570025474046591943327883024338033897189806904540963691991110571424653527084421786145681794740138713131605807204764019416369837177589645526499921975895605925872555612652246285585942197151817307932769077790211124419164850537710948380367027000967640034257226359555626240683916414665760116575955064622964331155473400148041897715912668016229174875749116843326761639077477969101365484897738132926020411598121217241785817813129251546157779178606357235245975091703130564101498766029561906680739092153290576083411834431070492545205922365169855687965529081439605252582829753484708268817312409038551457718021667151476299681002889812573521597816753306364663689841948874521977384336716075189951286665716648727359139751714396024983080053844486425339167044733203690611043810149569512926055989970706176373542231185321678260601601358598209938437169002402852913169449369051614968773789332848627968304128179696747291548461928394970825730869545498291036920463648805741119382819732075556341583622030073999265949746653266719285779565130456699323531152372187707884702407720289706235089531230258923486886068114860527176681934391475157940777424077102875233321524669145219693603754807636022073095021047674546153907249426892736402151289780205129421141423329078977434461528437226324902709304262331589868259635451498552509768040243097721729507725512932664670796760651894441682202439006988812689972523683034971168597317317600909166459900190632095871042807726671903224052990836629879041007679585262186550677437594080889672082194606232179939995536838618283500131668876566464654647873936112340388225759670067193945808801716218492288177401128084447381403808033837113680689704614421952579057233112652312305558805700217740003329643437989195501006638925394607036278724036547322800695144526788694817985327346806582334105812512137496707024104016552951493772592562332193370430489625658058040650528886507712456465957227141067541232601904422606237159534349456270423330881189041327542626517436390625947186519470737321391801298252425114024167112506739708158378566208397573949248967873142302655316249399796984705942180461079606932743651132533259986457460378033662926432788375101716679762579060820213591052470192837938158946354021065865367242065399122921967810141804005042033655979846385633015396237604346463714207349881456406956648018850229390524496676291630331432687452247120854397145857227330344813820184616010639403511735202796582599064604782876203659026913470822361167673866372152739064539007433956941329471416261052745258761104403913858323574431396861324988106761550191451338051553755374052902778890826582336859375825527473719748140797984954979857757342183811557888443762725095701999094036296542322017178449074459137722168794575002689869023883830985552340031497909620954351953250638858010697283605692394389969904973850109567377254293651937277306704830637662833513288775711272511547685857752901227037886346901267383934429406045335828263280199854298840238850432095263050152050043646162432782960495693675580937664456056898980576927014351573010074795151303885395755299799218842743599894649037367608428612580244931832296331891936724172412572212340013141926497537210927545650871023085716249633957141946491721765579567596401258638146576862661848531552419510163180116127234838886843688030181539644334085219761756771589317406227290318864628584128739281909096542478490467863792564070192353179280132737717117158405957136409762141574252035741843117847427111878901895730225579282024548157384700338549897171865031330116554308841345456782973971106450671912213453257058702863446819192544734083681512545115773365620394710821401261584007564506002102652145136343173026850015104415425221429927987645185446816888717182499904138503416295392611148451882788024528586620947567524526908870715336099189983084938548551293920990952504285369735616714456529590945256483002137930649451514178579151931337305717706319499243398877358089709137744987325407586534684267072389083133784603139537208848076763286702112949490839490765992254386078896406880752360387184587336844624678405076249754232462775292762630931899944358345893134072942805751097021692384824665465761422586241686628277565299448708571441924470861585741555364151472533228297481128290332595742699784034824494697203213927688416739022572415974299584683436771153884271241002288233331802942956713707077929820735410472966457472018495187403683596404753155115584147934145216861153512309739141125453737541878300177325667983024066615516183758064841543764281863184685078557018213659108979918253590910115545184335169175497311545079980143800498847936466281062260961895822592911275380938271634854243401607331511618634465539414520166681602578533562121493577031470983025992273785018479886080142134165932062349793871481730004708228685742272867877197444945818758673951816652438762882966538659546249928747257103895924521621147598456645189554950429109526940690711889177611824813493870172184230390877062061210492056170667339085712685465788627422274132279603898656465543791938733115766556014606464309508431591565740695586035666754277829736863783380708626996031370006341247179208137974063303915571048449255597034614585790618298012268626870938590548624558893768185921624025584794910855280870578021219419760330054133892686179573236255604113208225418960708266420685645595048610537357047531471607197241218429519746614540040373843698575782068790382936367236654948634817235522984922141247911305212136470000924462589866063022460161474731911441094216848537555290233438638519801479177807735546784558277379316527823169953423598688883861873165522812614458709771778690921210261750440621706338610657655922152259129683878818318839615928507500213149757614056266079285805758493192788711367372308425085215063032433475332771841320091572816894671682453288605152589229992535431365640600840887397829011927521735031718730331163124218923267940257945129964908583105412178667445550206419177792206421826159200690997807340391661903351323496455502166758173586464778146407205172225054724642086615968949200893360284912686762980062943270461783990271912121431186423325774174951191204219349782050015731034262933645921827052621763541168011953995926359838918046272875908948908094017659490903159909755438157431396946217546733531557310623458245150113372171429755456655566710356309550457151126255373468780332066338739927237883078754046869306147847793518596133741405700220596221058572563209778593639333897582374357728850221171396706457701196984774102969392900924275780896512266580411569804771715144722153051811804427177843242013123055802326393036442645605283669731491107535711070065908867999374819706417990597381050474205931557201575496980456949901013787894560204536139174084659236018772037349055395815780525794960821049229202858602253265441707911404413143640109321469305664165679664136163750155498000982287989523606360404643040515864106201027121558082248996922990234550865189611123133342636689109909019201632956717619266607946746830365406511072326380162779260185000246415187728363374625091996793519485462638863478537963712522035678725660790796232256688401943048001213642238130795473444205136824339388431665451215156696260163360861754474693525978574387770091310868147641490214828832142384027143232698635174911988646802164510831667126121555252359162459602275272258549079453552619545544679994848098549872379847028110200140086210262723189800790433040902489275278943252121831910116881322379133947361855967860731821168141722658274188147528258112860899045677111789754376500018460255686174455536403689334698162147224636407846284767986497618911798131996426770752272624229594521864440248877823847607718945699398488213973735104805444770177430976597045706960054316828446357653876403203343661949303818159429728940928971735148306855495034513149234717224930771261288998616743650570378048515657772144150592296849364264232036043769808173827985432578151385956573022683789163040852743869671975968463965514389191426755725348883505163069580669519420682086749799220495010766724942540355108517626096479145999939002131907570314564515089299656927826452102723030904487282198066624972157703234479803423998513021604067364377716638803786119530118299533010468530248743020309377973593001061197381334519888871872820516874332022686172420659026464202265105391075013804597865019083041629114576745390894431405482516294743685195746696767164985696126727132493959751850246669127580433139019785455778848903156430467951044964536972578285647235975183502993828975779588967561825776143403155051914285325472328571646749201146232605736356392252927203538694139677528312459422314821626577360810518720485027722488680554837138926034356822101112478224245163847488254522137634514072893705747859221342523787999137539197274446953165393038003262789050344688606784920697260754669453247090974061316969278768543643016220039664001359130016906166678939166236998055290877466417984252085069923273836997229690519953782632434913276871126827235335041396838866766770608707822598326845115478346469745767669687470778560222993135342547505936652761863490272815954347225518916255230438726019034731398577513252266273783696764501149056034912517934871887870060220709161744761616367151145760678210288896517452675906976358339577396208151622233615539762630974910878574980887899963162906609428255672880652263032213399697522284023388655393617489668482165934553043267641209276454348771660147828684269994080587397638441145011021414050187601864133726565575828742676445749573076065512690801393170624274886284140949562610811116101017196151787473423141219310859607526195726722323161327111753803242483319958576355109024397203216961457851462498746907435612968630060465839790167228671810590262592477286078651694281413141931631616731170603785841298767731957102494705591852220350732290759482122791562858726992604566969146331953051616676169499716201100444180777909441166998594480481853696726135863613028849300384435454088237656972405081196666217444944518041341446291423224448843192028410449624264300086956182174375474614898572774211226495368674695532179123352015277782165041315635278339505179967212136063982454151694235312366861624333059154118032724417751796355848149216320319924962791152668043655096873533540187944255387893128166650108330731246368982100356355390422776017191303492839915285429759704105577294120890506665173219375409860837886534235618004464149300832170250345787733671433225116608775646397000526238730119055603223706144454093145646011183570945379482165052486953141561074034765647477829463323842071139914673537663805991140887373167083649768866152110476904281800099667649283269905324607819809994756925448914490866310713124636945892447867419395484745973489550957420773585791974519873691071365487989147908042538943163522561768776085756060911370012710572494233913544437589233989837151634986873201489215134916079019762334939160717175545400581423858462903327076649517187303500878931511618008206835606087577249041428322798856851264767095757974907089518805522743215841546567880900507331419605018733830901088598692615405106398079550179995112749293605265391370165658614310316517067696345233227303503518605339069033840455352965631084198791865563246491848588071860671222751352705917225376769651202442388405139833563343449811102951676881320619703932641017524744435115794269260673653828083932531468467376575040593902668358817198267499916071271054134878251018228484216065577063298777366625416547825399905765910549379658285972275536684069721159606141958248247232070638701253810398956456984545242047824683069987260265532637538502417504197058774396240661245639806141562746026140475278629253363924440577386994715822645583984503737631255426176715833281845281400291334092755880567017866090713945942644264723366927779185179844406989976319036192639034598728566759862014781285092468856672486066130067821712777625235232857978231932786534090850545895135771668316475950710468937898912349569149641305172306307594027565893794789391763402581396281020166793454445731227480204654267605601818917791625390827731061809066324582489327535286232944121086628166174869619286885530196223276185898034642960779443308702260801347303240832610968423418163068930830066969702140204270891189739576029032619659023907094251521812533936583222323731635689414504208057678767795851240899391033928082493329408941463878364129614282625792493669036217133522134103144987879189847544713505095755705089885176943760918547045680164758975511872118240539350144817746555310999650615470301371715507689223784676229864108118611113398266967852869403926485939144852207992956264706509430351071270542837736429753477068871417819169053488084594006101351009846916725203074733844111137774843955605736787808679098785293848813667049937341383154437565780332064936226536071730302181092293285501357528335113387065005980690729701028180654089263186080437921928211686424743053286050439568296233470804125238115141045698185941524521294138340454688766092225063719559700402549373010182660349528334038812773133253722204430865847520158377300657393735637817533809726974981622594026001158961670349973712911700679509733144872146452734604977672078061785874897322126902107299296553750762589969405855095785067237842109253000526852167823563198435228938881953400660930944376278416014254081791621040947781407421638303470929086874415682144222969047209587909783177405817302985734386710162826705523020694018745040727889805103123932499234666331541543117768372451260094591776067184733280119333402762573233303864628286893385974746102536306733259770140771242603151134953921334184346523156581055635078616125127261655705254999928371259569086738997054230058516724548812577114669468310668232815596860495871663468085118214021216263717710327382214338322293305930195094606304599817132061648735372575443884740466071966185863344438561291452570940228599693521641117909469154082699692494909796742786436723397147278379629162485927899855394205781825350712937471011172898209727468471267330145528699181138361080873921850077572287446476688770416824130829691501409798643759140337943314526484861966285981025184865347725816354334634559036356697296235276996111235335997909085679101347828729851385907768635150396187785041165674470245553153453939328335051824834869929342144639294554334485874718791285080775505214795810907424181434916252006290622422913230604549800630705092260444086815153225121446819757779480551063812166789059280751349850848724901217890066149071727918883526926773875971866621070708033205680359017805201725816362779033627111176929034183034959325143741533570014543480142594794271442556211834240541522429975750334519522089981641751611875952658395311145740558310522790774607347977135516597607663631707742224139095544896268301205514098487761677770912232292486167488107822123549606783539799561753121071633930423592528460921246163205041005994130064854299932946664970474778300548859994233454292496067666945010117436748779389696137443915204082653461166318865475124195576729302159887262292017761165186242937844747956686666351953225964373867723534051888279832010038843271700146461271869781800611239143269840956249349495718881693729742800189068825614594498620446395625954008486640591669238823327660100176851430848854971714561471646798963006898056305936235205908038524224077209227771098707323526154777185354310547354889064079139782600389707579563397689251856105625841838048928463710757283721922977416117430080271967503985648896268424823846991249116338794392457341219682735380325728284764813833328595760867822970229619755674079922324689359810330364719904184361696209167140744109117984405303593100966342744238627863357923844413523402581764769162997465213621088457389363333614697142539801049825993612431528293650011107430540700927189423479501293759557707675512569413493987940991369305108381045395430853513171939414235858601080280958631433126484413947276822252642337519173655374238942873829538457860312482660591306151982670378603115825370449061460822807646356769442380774144081573459693718466548881498904725800978515570847331416842122630205705342478388929300128154505693403913561210949064107421662904735226956087992146695539976437932579522143675184520753686165610749266135346446413510064944022232946513463620575773708409123759847362695956370242112492951290079593786192611632205048190632137134296691624956003031223689660298760921802587023620090339668574212527446773996126142056052177799795812999836826313531242238327621957290215363150148693501657269798668954008086952788952516306487684298904060900701831283257032245967287487510528359641854954458216907394333016265457724776756915478201083031578929410413145941537748014946334540866838994561574244397125114689119064590147036314128029626302375171495185941656826397926154865699233567447291117165038296626626421878520889621669134189568993824463823132260188756609687676013886069791137953294473140251250176952133636939389493802117429064551243176089777030598357816562662209169742374926229069910012376063860468019043233802130390409549214366071652230302114033227967296576661679301866005334737705733573290651632210946172328072080638697468938161954197664697622949761362313435766649150533632332949553131031329515001316802766309509373593569324124198007354577185857121002339641938715436337599484917593563792426248578771352100928371819077699723567617166918536790213679518998967208079219757568875920949298150314375963084803246710901928555906496294386285975553993004006975511676482997020991256246165628340265843421812259523843205845512141273956041659367005145415961357809711937487724997687156315900115697925628502602962700529010172451388821552692817770571564281771280001976785281356208580131162067236830494101707400912442397974220948943323499076495025400655827049927746579632576016955249176149792651381599402712869700275303221137264569047752327476123952601693870251398095260131139730737709029967447896394889016255647651209005730292960288798366168784651436760788177609604477390292717252453380665480211880244171024714168609055878795689699531674768668559286708204635110744630279658689994975330120688783508335096215275795836520343555254137306094416934348681611879638131610639718841612928439959097456459696337745772959483666113144542096945565537589046815031072828229587715375317147009073665986890760339034521329513458313746457138524350483466087858467081555559611516667368536085957894110091278205175065503113054237974927737808727134548223303626925399596812942414577415160191683552932948692670358293587403596116350523858595318574247850986283095976961166611453865837369708013910521298554328738424205612371554312208440563685263828316932105094667421303606535092229253002677640693422326682784908371105489447247851664909514696789795950873607908402332637042477433362563103374516110386389958116426055391855517299580068009367459999678365163454506361143888170915382729417073046385623972722159855681837043575884851509893749140105799715637450922029639269974853052834098020206204445694966174531221869340146066410009721555193319659761067047670065405025292325517931960799133737632293667344524564781259839397738301754625431618645151381395065382751704572075007348957653964502920891899044816000364582720366994139866653354644657054611436201440007116434078008131767654343343962657482987901142659704297880771713300581819487400955858222301410235499678319897421520708666872527332057560622306216885398430033054454981023088511328090807033315679837098140491065487238492613216078686469624414854674747751512103058465229639928602152130029834963403784989677248208280528165031893164196088622958551173293640229131441133979281128530482274387897839775162090333126952141559494002408563604974416991403550809692788033500513592964734104768454417583208128643516275367714150198588344284506415175881631670297318121122520540201573543709775856862124639364290262489060559321401702703869727403739325881740500436595010011811886741226474796144534228181918780331142229893844877078145143546070154860382154983000099512404420998814099769627473418785459219866083583013320447489805601049508801602262537576736185135140624411773649882706699891192437324826017619070668244618735035856743078669710047661152831900477348788923647066157814685350394594099308600689642391224354069267067902704752360845710015622269292980190456131490680383939971297769547602506021647706006141200834586405706981093907238667760499995511111359025760130009184879896291687302556551224066436631472388758116744506597402418125409082201478988105806031739453767110173597333671343837255966804671025189042511486653694338142555942924953440348914246596437901601797175958769328910948695388316134249043945827231482294060455462882088877876122024024661811306036424280246300677555735008280301067061784791600604150336301210087459774183510991190669275962653752933486916216780318956822409068836507567351739353416001116360257251785190797594019616395673447373051983657281833452365989449059781989630752009328173532892864915450730125534518570276437031893828480482153843786235723672213214067749833980171313070633449230996573765082028795890319277864143238994523494358824080059772886119645654479631828780637673162989788957910593868303242109856664990978228865640606211921356938215956263890325111515266255301296983892966361087214497245673870531835441882182524122742890459317248684342951277185381678334113363183296291335425000664645899091756998508963218694917149981334100871879017538741397709510776766780746279360832817181069995917317022373926534338513295118055646027632664379305407939267634608670012873556717912275357627990395424290121718307289283122173416823467168672305374554573078332739260423244634493087425087299806614170208999137153745996056105064299635783210097673893765250096264833100565574108249242216385947836730743544460888671781396184509470708390828747246830127979192643747465404190753966828981835767707772522220188314246122115629402162053033524385925766704544116687966099576151330491055012825778183063823375228488824970350011602442179841406048250155525737156393106104083352893287031219008927031040553403862834740272429191261442631535880895817837907016448875348602138218778250740784424830102235675973679967914836182838782659373042177025906183132322658129613377311302633410751639096637208671193545199260276123010183473927441245014810470470820103552809025524181505116309719275100649665193942501363785524063728144364787114627836462077719980919837732829825889507490893294494371857205919796417395145835191432175285694790709449692841426466417866486043898519874435504474137488261576807733648269521381527794679353320692700878872192525356866198579647303135974421027261063536693433244665819998260381012266889527696996863756996740630346482491993433049149673160939128809022066234007751852411893736237646551339809675698239994202210980245974576123908900234612212640173992171499995013605264106655149257116434814742615557420268448576418854550851728444357015050544109438605902552784960560962146436380788416285472816218711536673921477161415624452083981079209400306016043745259035835820211447855419248312483798122541987471478693092604564614238230344316496948525778275120810294633660594652536246742327135593413365848469641088100025963022433839646862981039159695370343778813219920317106706204597620722189658829220319620601721789717513922582590720197036238977591193004351624846998461158481115965433090153486296078119688579297944980588611147712099327648005881259341648682884699438255285193599047703350003054899101785539786708677129440170249775122201010853348996453874455088741307135890861089209658195472142697981586375717023679438118303173224517556306790175891850629838843700549107996044519872996948464502744854780158556776630793284977322930853210804552715264519273053419046699230156830077886583922942078649998816315197291815677124318964488564383405825878312487552065006767967216120992975233633986535486974497981811787740727218575281451612645772819580630611647861022967598016515949140552798439755619699661654505147325837210422810493651293680104440288720738889949194285021783768424916983541060180833266067602394081168783863832114540954887494487494592772093615586347001724064180354450579817372327262377886765314402822697206304222149362332942753254409934722921580977743871487401805446839136866666546295862408378203001768483920064070885057641822370983939920954634041784644544173827221336573708540984862126954027498468988748361165643432952962760902592827992902343747236591576958883049887197608394171493794064211450542535154250805121605544832056934736727434150319823487592622212541733096118842121674718919994849117192313498372197574359406177802278616357910844073997891054948815239051482624427265864052584785296404393645714074358020901123450157843530354921851754048543776929124970699311504735755426388100965676941969191568231726903316754179183445794279453717205914980412665849043692276815634252229640309701616907222386301650025628474744351898229052247299027633071734022820244821882909962825992391363306532891612321785744546577213093442665206429096324896660228782437347322710939533854192594582318667514244548678338332373703595098797255185036980584950200632071326169564600694791540733274858024961163618325427129559737876165423773538708144934106577186880387306614682461501935467800553813777959921221617160579909576167996931591023219432984645440062182087101278641711637576107135870894949682387804847540100030913044261299768710169690389526197620732873874666865359378741549900698252013255663388891474524415651189265576609932529958803241175966032462790429381815670608357615722979880555040595106246064927002252189045111650790062294588035451848122236256514798900000847872729824716897619515890293701659466446288189135593027138421980017121150049843608849202703848007395219574524543049172919343314923136930522247665131674812526766426415656069173191685026122869977788864680400526459165844040912660786001831853910092475424617750077744664166971520332088340221670721994637934533622586842184486104066848064779346123870248394778640234191636515131943997115904795538038569192355014740132034182094571197105349941703970705458675641760716879651410747074518508875150233736748045551131585804824698584880186926813449732886790333621474067213367528820428541900093374275565229027134436514440364938664677120213726309955434648134682240135502759130178597731777792370289638124896478367048154597111939424691349121292997442495326883271609582485406998607858203990290400100859514250854036591088742355441207554256416905361462909804566664587462935912733786248922701296334034137391331111006847735321005488931282121015533295773193262403172130092442322573661793183728821858032198781273432294646671892387139480748009824935309129733094549859173485710419806354436155546058455759857903353430735618215893296881894519433869101534776722495609335901154950451032224395659255624201556162905920468422226138768691492218892018640589127586618419324960899133069842875213878415908650382381452694098213641885669571523733018868233556077571192589507965133333547244395464366238527574036582298694927131710157612326743089080649749404884571476981191592658756741170866181173660858118975288734181820829876750206316143103150891671746400214440263601387944658603935550947153109394168259064241656940561877997223625173429471578100492906719696576993036435604680616610088771615025762633509645998829456589090530877979256140506520672322774008692464918882138405041421131789050717003233373315387891595612638990289870618143213439851396721814316242071914615094761706325035595584370361441677538786756265180138603559760075808196179082789531792431014508944858366651524281214548308466255690645121257988125169670952525623751473128189690779297677476598242646350200059020697623801244216071333911637708301932360924907156760001583499354097253321146316417416789113625999057455648336026077412804997056810104785788833010835425886886377670980373902798423014641924835734917668170291150252280981790023287834827570116823746612229543501859971234590623288991696603595054525003520699356541742819062414060888306159550772915677973127488961248454585986084530788811368414048020748313062011223401620445394749755463378915603997489818414869403540572467188558665992218489588302691921820101599570958049529847732499855174146277379756126899828868032980181212782644906929737968363086953966887178651085307238201034108895534708629543041446239537026770314157681221642331380666288330472658124635336522458497021664635499107207020474587300059731442234473296931662957714801237377579980695626089689723447687248241359228950210378290770051046594935269446632884642137432739088198023484527295536900185949142587386258228051723698267929935435514134505942721603113251867264986891377960477744850243057865280786111346319293697308975202788290371048100008355260777005801567748507019548628324500137218157810390619020384999423391273656875958531928140784876664188261423342064382838097959290721002449507340502732267010147055654418292449607167864937241214388134766643586122371159226488150065284243566900180816638375373526797426482640573235639015398575718596761794290702234261836544643152699530281038324011130011009832443357156997073422506836594194879460225618625223508736019116095575049672899179715181289104270142201305791295658211833579253560692628326458118055916184087279660470945450636575985559640718100417057779122377180673731300092198318130882082470188632192806388987909468438766782760246681517919569222120169501196236777982733370063207240454952894502733076200006260910496678641382293292282322014435029389499162527699873446089119869278221791425321787502872364274991914040154974757286159577950502491308062119637234394734780941123502399491590985223424949916291664693235710196393570995188407315263578008335697126571056579652895419344930966557649906049488985064594063519167411782244996835438899524777804244267462702502396700159264208312333063283913364107300213328626143145489692809991067198780805917928292864119700590422858994774600648310452493520790566761926253836895115067064644032288978888953166835456440662016092185214721778692377722373993837906363571684107519884224541888736907270858273806518365767886140043145614961051462618773811634663358079241172933143314770088030316515460364618479615574688236630020316957848168889331513981715167255693691691897612214329197137980031219010598758720737942788541490710768367953206695065643945835163151480769083342156828530648241834178056561862774930067757331017730508548575688130870264371622946201852971547161529961829208003827356175669571101672402023147963282182814476390860524472235277138582846518853570997528675801391518240248687238420536325690828010072715555504012000648378784627154156076519172593280071508183977325575330257310908041135696373409987675563552526790749136092273469167166889558405226418861834968352169658354340999962567747437910176253337229376734431475181772089378966720563404518139339758062826880083722220472961007831555771155172908494077204103719408985940757248207593839670181164590759904415003731957284014929258723021346734494203730577495594425620121599392840814768787338543526453258695998028504088777822986517898079825333427797804063560042712106730319238984657130511259835512175879446244498630129731611751456361216070330853008401123919832016117376792475577509994605505698379478304379930256140945321997651008499820979032684827486110945438643767661036812189276715050484376203134486541498133507154078711459578051733326855672661952340886178560059357184184764071784868442071457120922684446751784839982722795364778590701546735032743684294306078969866577159775098235813658673568044999089674194511813667740086876271664301694609112707941652510323276534644449865107370434186570303306920332051746297751584197519869637444510500090338682692593271697901373904872026154600637618947218105736913135136946620183349463591201817086570540656516874557121639620017453507864398899067406684075435033889712848633176501777094876880085044529015077330482915106312924162249907093947741874987230145522224224769010411686184343311192917753114603022683341596081285900238027103075668300044491995124978243535620755654236857056918577553269223740017365643879757588921275665810706255774814821964782294334084976650489147208711668365957574347217733956665505464340107564328140108546386491705370618652426928768546645734579336132239420497239738761805640133021098227546107805582502397777864426318453500921500062338411658088637665852789251397511923857021770732523989914205568632786778254070700317314304657385820063668314162518704628093374822242107999023041761147177156032683994019405643980900285600801487094314803154074168404752233498096060995532908172537683419192820883658983330579735119832117612352454027784654467888596728512954302967601173484539238020595831875760675652421813634253219532975329903471551943152628769014990169862545005265870795764208966338610310340426639140659095067379537439809584063390819508895920679876404062377819642934387323398152692950213185082729972435866876217540132398299058409669893764837129291410705112898697211113136033472117467628725357227481135176477572676670179286781855771222458061940553665433014776105677118905539901588288648734087856084055645057641607372978478487106023935685809659060487158964825113426375152935465340714992127299605604436593414226514225090918439917650051188453103149229590607248681610912399762512293343011114584974420467497301770469287539226142894774695239906236214071024582222109980868926852059492089216221512185398327056605652997970499582883363063486091174428160494786399002975574562541706306474827399374596426936163471966757013957668708630212479852320592777657316702939202976524217176396126608568665545449336997027307950859384596411650674660913998402357438705178310689366163936594539085726301177130452335333651756495557885915320276353377333243833367443598633089608028188211818109521777657139948856049838608657628450031193813049013329677361241813923460135876968149324360994915550003512369584417606050982421233040950313120212611650767539110417535593805074236715584946289182125337317213098732714544892165329049772543027794845933059569510496585945157116349830188003050078029649505234639695242955984192749854246774224992881997677500480784435440416784565403344096512179618714444279386417482949003723162855824152865945569600721054991379791685284451537755090310412915182099636138522604270274062448687542870754625717872973348846541468485251756954937426721402619744788098145024423196037959649275935491435238866820144347635591513512740397772076628283892956115313164968768491216711420109486655450007909921471785574431758586903144068356950536929646056025974452991144270202761813817570139185864839552833119366417218328069741074422646468832579111337299972298679900583538568849334548910993795121785380578152045849634733352587811519351797863266248462981798319791748228109952912764701506698758306319135325549139915884849933674612038867002610539010644643111434489607489291480247096008256638812284953250428789709306782892159616632650443249302459533780008282173665448629367623390105075563024409984903026687962314888190383759478112090805324582962315061964551074538538421530654856289282498992769889606809844863846525741719159788605977313016952282371300769401465861258621999520625917787684674036453412478939289413949563790035122095096294462708489208637875906064413081221297798873845667409148819546960945091613364025802176836142090620792079746000675403039245281620218826327772946879968180989544861501119706211540748256131881331229893953852940812770594916207295949442733410589024507798405899747071649291800727991002761788449544545992494745089497607025968140155260923480710528713033567733602269367640072105498609595678051268877729806348020791498445238991790088041885419547779847503793664333791683321847473091318358900790007367003009408757104039256604136831038099746458999600152372885541357755452027336076285040338177045047266177246678902452367560380078838831817629504919186507717442972356728942287184619967053721070915332099159527129409633994634013910988067269004903137361193908095022552721389858880551812064440991313285050113253098988398750691957547236204244992838782880290722289732911763539254391018633533861790251703979747085423891175789395699111664333842906185404216738011397119956508382022931524261032053995343337934790570962644747496757341024363042592243510725309755710898243706546111336479223557935896921709449782159905351180377712361473164863468495377930144368225565034048452266108994370780385175583995991066953333625712520630686721900030846685925640514365384764505023543600815985390820715076701796053791614861783620149333367462217302445226611343133543992120172927143999790883370303029321343897065024153752132389300304181187004815634133764469790750001903665885769330888080790109108115950888514554038657694339751919313785612798186990536917039392022448229799434083475372689851596430061886598262711935698553103436012270877569702894964447162852746024287786153858643221911822247948746387531399547550979277170893581432086058428083054804178275954429880817149846284608258984247368830599855769376728968579824350366194172829570796747810376612577130961677736721851959988537920170330016583334345884907247499758914905575829557960050055813189446293561111333595184885311391070612234831926178438798324747592552262977563238207307396238035912889225262992386455800005746463377652366015124697006266172724897435579554193503533138499125599138471031278256272552062328601788556730188882547529637535310014594171322581667770279981501151462988674187383137485554938525788056383856796946196639476636960625726625701626399689774446886655529682112249868295703072214294080273509615685105441489719315589653999417517971830548664201105002389905993610994846117163404569932527300475387545626504641685193810167354884934613072296106656377052896649002071021703873099199468531974895971060067596272105523249035226387911403427324420579403402381614230978994425514563722172852153310561637737418362408117973189907347302998168324634867099966204627063468808469588998381183538728675639251840324588764636281894847997018878885803525165921082369780190881352172018043811503744439963976265147680560433202687192832771276893625862833614631707866774907257879103929415723191219287414914955686992732549622593494997844957740140982934599693181357791994981054213520562547048822360130519078909343109971721039756282373679054499309548902132282211125048829067709159941676847279442920747689871284307312095948649351660676998171953080418424994631708172559618738827790739211730906345759275214334579168648520681100874452812997979381791963088842049430167273893598390854960100320015709235498176035475705493282368856233364287290815802722038663667494144871296495948165747309879243107418240046835723844900322070445430998657384046517474511692367895755306233975519898774177517120291681922388388613419192013952808003734522224056912519998157631105780245043941409228683777545302963224979063118602565314797623816420259962977643579932890078470216509312183469305830128022262143219543677132928624593942164447364738357203398513723164762871374233364829255104598497371948264913663238194938781948274018663540127498704872208376505583254506658827085677449112983164079306482889575718996269555247731198268140133617069087906023792851375834115495522301299176939048386837124945911809148113938100164392848040605245174303804634869076367940275624720648632602754177653309132613708731324850192685205421034870692667359516882835844579823040035350259579963049170723511315120468779767030791894415734293334973975186033126743142960352826720349472790617599869746060904353569296526129932058217308010950283653416173952357676306737481763841719828221802564951535975547370511604000912021303449486800761881488312883172412195382228808111734189976586686714307206648572720858027698977628437480846228663767880540479956644096250808281821920925558962714391006338016481154464956082162014364598616988375383039217989876793266922688405019607630714225516772058200476389617206597059682843475836116353465687799838624973325160790666191178589518735029971826589199272592041423734672835035897921377695198106437382298502254877865661253184297550368956476107657133223629510735096946311011485594305444550889478920917906954569911188664015309177311297555030214421372247019577042951216361917787842783219125166532510661354466831892079032444678912858931639213673466337023953262814298668263456854274209798083050947176144344724053609393887226559030562418903570592320115091520245402533349256324479133314545151619292646534406274281514248311746515948638509658651883155264938290960543087679381236972943741751643118299172656222195351219972555619855403967347397517107293685278356537722958820609858432591742030984067360683685914650992404554563481705274094503865684439270558138201889156136087975171230202998827539269498760455376437642399301066638470751993748858182140843437992898419059767234036769910996358440921685088458279187849907508674150624554596711852616807744027005923602210550141937308536811518919240083989090038971707526783929179656991490360490974800283113853312285797905010157930955019441354943396020710937710728721865607459493745869289927125781762169384773761389344467256220623427782479573251265948527743969908746233168479364992093418684845626518293095579556288207375674886043739610222727917484744022321118024204359084871250690106479882273402564130718352701857104222953279002192186610183625194010876325155269810511631812991048620021175584751948622726216759817260969390507653764903197901642853398187810393667105792142600389777832093858957706286384304153156772037727767676051219467416808859656955779801788718398163346713609660369645512100428966922832678285146251517981733280226984121230071785265092183421084066016684650223265316190547968202840411152837519725152248487363726696089472464662665821932181781938741391597729399172101774106115536787686657672979133646978134634866012798507145971905784000468912310249603854595225002045470257675759476628325001895268584477534602109435400335715140801861917760525627577664547255702553908429275623155795670868556646660785801538418080735097148929408404718543104289237412712938066105454814046519440739273129447974785043277579168820132648315794843899850548569359497756536503676950570928886167505723249522518011360034731991917412168411533620580241969669349620665678391728197012063422297175716681668865023310326388722129484803059522536011087302932779789661419085992963329083059001179712646018765076340373919374241311842802206788368273729736136140798667581586932823813364397711977538231983280847370363054481054431222055461559039112500478425078667707419506263437980227523186643519866537571286459684894522526457144852464945385766879391722339810743626509459776736509295781054065295952793834048513892081896468553750489315111271685563515907716665120263389974766994097161909154040821595825586789673176461162775674411103372065945402372525935704581236446201554641252088189274872295159253272726236131328054451689491834754145754744032625408908266439107535278947972294763422609979215809193331531919643424572419562255551903846631143991286823296087299148938777058021583933472401406601878854514851257155077168961647055613107534832459670000790247520514025504979638455550184663657228007753597667083186087912008301834641997655111489414178285711187687422144001341640422277491366251042737779692261901691161886430482258006229488266404234836648639733856363464929793886712004980152238845960747686601524522524167479734795980815189766921173722654307880577457581603799832650775883847615840469734431243968996832400096435221509898299786299336099967151107008854936687324200523275199298206222176191391392248654781051873935321379987431627072241585735030772941586439389908993508845571721103987248604496305682821647863296635593207511054304412659091589604722521240881952949121359363904534374136954171271756035526286009593883850251893972025696590894748882153490057234347419259238537475494860788224678626452205411656819282853489400130663317526793656942305225868760183465621174354425121989841951866913863207653780464163707996275191494283393241416036433459908080098776624817450511481916937539506652364200423809522377222644911270537596972513932300438236920298399342105504592277907097910600785825174677488212028585083786742020236077701613326075192479928048347878922482084543179595272634844375619563570499492672967536586124901092605139528051580527567679077779920774348569856844099995171838387919892120558494899730423758546938308803150723373651950308504109070270996913145268833888984705608051073045179402345188475341064235700865290654893133519275952429910962389742429205397006752905555432462838853942702489450559509028475552686823373239731073764326683524501708296636315980747538997023542162475460763372296087096671875557941204627721601060327636253116983497673601298980764934430591097966562144852539707674906948051011709291884544265152682912088674984625718859517289071131849919282418681809503292116655996432071982600238184326902649345688565421326381084385279618587245129345923948318432138274515336192125151757418974672724464689191534758871141221489515862660573992630443150438423350521924142526711903088927151347242310963952934066257287905353889588443513843299819710292659420251759724862149621776021468610389930847911299551661873535611867688413339156034019710187044299987943754418381202127958369653185288128803834567935062447922878443993889417008368487150726801976190273061299274749988444860310445261884750052600608327425011945687951821627829360240005520918518377369615487930009084336113164594150936516013748611748482279926970778939435897367051200657862976298688097853015804096031724024026697961687166358792254504987964113393366714792557947236470731657380966939040188290248719268608792395904795821848920553146393765738905572288719005733901463398420161990441917748357813629393325602594845189603120455556071251701808753483800065339579251935015115561313402768757009110722264602267093787251640709347840520708640449544207632542712961622194033941191488749244577480071465792712898502480994364772899977504308946092731364928852001434845818488298610549879368924760768940177508112625454444332996136712110356407845633474290086716913596826247475859833800353116538108753872188072482369416856163189189175039045180587324100708897017848435334478268408368025860006845254099740202032667900401049048507626816999190793070919992828188838667724678793120593975083802647892697859404101339282953149431066596864783250654937374510167759270289580804494928728222536979828331607574904017531993412727025576663608892989904115956229727715355344077942786885636653604342082381607491635264570388947281107497735252631856599231220046386175996117284651975036846661081310551311766074778792368274101587820750700285139782372022466513599501883552817998955315950129784511037524901222526209773245173408757558504805905407074564914947469661260743624328781492954847325847985540705607999607579320941766709151890792509635893937471369601327282305170766414976044883393893692236296527994013293866933624134418542403397516296758112587236230164009898475889609622940810258469041345824811111877169627845029092987765054785196125821233984767132057742315003928643503984636356149116070988042102991717716724480250632917806797032294155681414736593784832828919737408137752919868892219453751179162118576617082560193517106238299752255627188305814247455568233226020660079371771681130468460567760129297140695860889843774306713350058592585276383010075560102563295876739669029419723431385598809486802995030712239642402949060688183759172813428408731325985711843821774628634072942318118197501505194045463418531458778706547030014128356097991200735682454169267575932864255630589437813970685402792303166496698973852559073925612669961900427743690938124154810290294161501634734971305642628125565798651639633866350169450270811335503310310141438800303892197083097996475262255003072792608082854457192864633482976345724304828981479338494795687165690138640431246790057496071276139883453998917602878445313111831921277960411255032855922824257331884636135364233675701189655778881713117278696423081836031021576318028694752067396622474174220324068088483906018568601239594216366986441264489980485951574517411023018841786782236647600552916689409783258845489726586250536175907983633699859772100180347051207377594729443148997740540797989030817234618365153914943697060317309192512631230137525639898666992153814082300468734217980380325616662708286966438651146325121828697856863223516650328551051928278318231034337909805995307572760603553050909134635418404509029860948549298145805136207460963279168854543888232466290158512915324484025440121861546675425829394271061709608480453351764459097603407588283080844849617934670521911437626773496924362743136706961677976580002553946425286555780924368410257127580626267969844654226452646430653911299902716785268659542667261545068259652706980424011624662920738917344955207881454045269811407438337163810554523528912988930752446458374176883405843602378341940358899380657479132419449961590783939580538217013250079434425374628388975365886454913973195373194432779804115172828566277364154484533915479515280600279325673028145094328912899766095364563092360374766881961341574059313469668434296845826655676894820157149891343280855430885906126995827605981309863498261621083275945289985582654002498184639092103671979068608088640382117699818833493358502616542505242420781922468751561232044766333932714551301657532820588350344279294772020962666971996425875863035631569492288088355009987730448062996538456814309508945826233186503363967008043982572944939226762139743626366188954090168764564390452066267162694034034338251038629081507434567979147339747640493679329602895993468367110858231276841686063651114706883312359119728102922661618907321007898912906829149706862536657357419868828124307570406867936590534226725549123595250803949614509289737076998796244028832316733197816911437732729021498097076108903461005371072977131245327125361605296386103921587660142455595741424205595920079149879725841056707963938062820486676594351949544653377741124655491771450390518511115341453132888150460192045796148862015897341787146735847882573121541470217415748668636841717832145455047038586693099152175229846828942293462581674554767204342573719469968151516631216132969535174926173693832085342490839440497501833157261858135441693639892942720749892796521929082096237084170491459006184519379813985533478452405464086323286061020081784951929638514773994171553018637725611039095474630446127115530835928025583679230821280244951805460086283008583792423696308654595410026972847245710003221322740418429887622476014215280000881748821404279613205793500369771463139852500629369402826033068039821606907545322622943129465087822250654919182130014560206922552643760486443874083056881004875179194466982343456892238600819988197732110881745997390696826973331759386554708723606090028462929649301785624022744124275675870396115043455870919398828924401449163415410918582956123752992942155944666555812771350339975855927812403065444207333266817466818192456666879593585092756333721036995218110939974145314245549001910220843964926348267595432281596227809854190734899934168692658731345740026865046858348813063847287807359707566386329021004039186087275130630024908050101360670510370516062082191765730249214292188539852723993484954973912545357040673229726226232033487743301397647444464527778833878649025165822845626713989643717424415429316113228137354063377926861398014856206805974195696419733868281743856161808937653838683521404545531382059865834709356175785004515872330835184701261235298752965079409207813050525606380311238046131361632479962106979906842010979229152350302709433445952582424767953715157447116637002656655705681160761702919077345326359416407621057726223800795717631337031957553013621334931009663671582004157507126383071729884207096412375915257362986521943092984023807739797242553316030539911793440521809554612908060948930868095905481976916486822109788193047253332847088772144297299534444549420751815966896189036737393147013726116589076156052861121788801630403872381879569372498185415058443433363625178025000132578924711034549081338204634373740519253426009772410499808090942427857414714942039850126972263690804640023243171128604628879559914410539508991080298999793626214982435233081372333823310153827021247567325746537360537497986928464661975705974871923113871873881969279976744363612640949785962107219648539412611856978511180071537167370406104298775552200040149426396207796570086940816073687982857775386576969572435999843741521894826557086446114291331961485154711860196546955263948639376039324934480627865613003479345256182765497295969444840275699554717145964934610023441687830376165548193868882802586787512327125559336740174199013541176657387415571412937139048451316208083698710778111749911168266921563635111501236838592997013369850056960168303851700078128575115671999326201672558656562817124879813338434250039729883103089376234132577384565501522169742509329022217112699064292694109697752372741402622751167107087029831463473935189249762523359671394148348586133014093905113110551092313382233220201349999197266430813187494892500441193906202805475143227952182412516443787084319515861912883436665216888305660977550974712809180052720846287709620234160358232094232245235918081797903867426082349508653800757433285481971342490704917367207033722128420242147293858617544515430585474585966115790447968533586032074519678085773741717046807852123411673678044821465308168651674508561695213213381579015848931722795712270405860013793752754801774205806659787734967467994162382758424790570384725931305604948149408174357654800172829331317487806490634781205423138652492211617066485940531084732672410052985864885542191418902994637312476453288112088094931537449745891821459707693250897955898740949862069294183800239009623183384181523257417938277362142079204844567567563832878058697827054365480817205011330355484720543673498222380091049360097946078187541076983300913044447668864418350191388771020397165199589038987906772883653591034904202275684253087095628157202965826949253519440501660476216313974214407548961385268082245340332684491491796898364223201459164022112860392899157447358735801484922815961085643318850273335426311377780219084944847277004246786834647189675973302492911069622596642562800960309097854555657669503428829297714039025861121765030878029114714489711583905636586885192380356615879524125931533420557196577786048961202579706080411077733918256593514981934974442490659682924808560946452034348438697454867037276248920798030543996258261035158363391763655209493523303919223495739350689661990774009870716998051630055986655081788792704582068100085466753585243938783798242045967520820533672512368022359817968803382069476809379524541684534654135375789397955625251158211409717106819547535372849096154161599764675504469233460141103230851012116340752064454105545795029090400770137665108618681181934861765070047773810139999634290572083649999770765718437787560648701787999267189549362862651404107513185111061199771762440404765628695711966503835798051208762059043153937630430740430292575240346987393693196718794168356000692251186562228324435556616400066023447737989793779939396609030045135553774965882833630020947929963627231754585083502930003845101393833740911550322759444771225689242771303723340989278083071459790808993746648694672148855099084094844349765204285645928027406128183621306204887093346912952707634274957340976320519536549104462938896462293144532281003585869013037676500460726761876333422417100717638938905482140225061193503980314317233555828180346393770672757551207021165699791924909420588122806728694985746212512192490877210830902634964365780331170024867659023004533780858413543227905113065239211989494588321533660141095664744889127378009429731157135789846567317224918436836688320850765571819601210903769241458262029444876795898131166004726669317856226399000864175302367577828018507962140857253990989693765740498306741346395826894426813055012491178747689735708698598575198479884457470994676346295492452391849270887892851044230893852742531004727816108854956495843756594952306199871825904908023170918823604054473626786359008086261037742341776211914227575035611546192259761246727151275673404359088595927511206509745311616286836279845785621643020498272810729232629686555694659875407597270663164272923325030660854521571549928234159208152369619299618800521404291886115931618340844887853157944181352022954302375597141027124386671428794757880473222789940237089323364800040677942513898004683407328287396638097417909943936051281370748352653145592427409996979135311747782387757238594834651277264311983652513480009052682791876315909806364087145874898278523482181774978059623806393730484756075689561569152322896626477669567537666789080608373473412848409800937160551058140112585407482242466666982048780556082437269177930359968344090570867868239240519131883797153671460081185809235202692105655167477466278801754579695653592621154064293983368424842169722212503088535024627854565654303967790270582061264644117845247389542095570903651420067854726679818248304825579827614386936824973024764614431254454724792828923021189744541876159279590982020596667683480106255006702303084581444114714859863103104173231163439119398983842085559175197481186493323067325142571650431262728865195778374395557703890462690215595474452504539851098139132643775480879017303327683263773263233944745958511226665750312087815446467339278340176365945226915063500422317177631615315223887738281624353438897811668342947862947931075411510664292820733073113650501619799032346562862642188935700184457803616470643790293296478838372185747072481845173512619019225452199324022290379060760895523508647278445545660594759309689389839882952547772783979703935956329448636005162615207151310420158768456773411023837666847393452383548994177057234086499116265034328625833159867610465438085048663753189208343291145811988157624783223916620605189664439405301440322533697930373224386642163256676917305295555018906774684966868190027991241785069319449716875953844769273437917946468925621486470988420953485671847457083842299117818578654864389798914559848323220167180915376837831493175737369935277601291474979132038956143095545617202596676855259970820355726380725462597313360852598456281621482946701889774632111821209906135492571672707621304512160999909937258932060029252399714775079497939533375302583982670460010888036982540906512653106307649077716822475248909631661507098896883621558924456100014252067440816823428025392290537690138913947255886363284689229479998474660712643851946819568019973916341070110632079649183287449637069767919520780640705444297012776023527419923671105705616649841544236880113914902016705923813195610471415160136588776437809299480402107907066288404067504547557723634195877594886058879134454455735647109367674038551828828801560655097241862009381594049416015354909033412974328879263298892422313870362733295131403553886060104219437318278752376752376446411301923410710087458137932256681780209826217789626005728776407463350531711478522779907247350775671869892281439856114056573274492548478734778498714508784720547482870223364231772529283887786488082887527997307246442681105040469740815206618995515801635604484331824778464283483922108245943993466491093204192388845845206991042692217544995574789547895416102246678467909436989660100024051353982548471467699122663358839025451367397922535083302903753672641860471171480396525592534909322212795337795980028761802964811454043827009212970657619339125342413985462103369376469688726745176974559428372671583957284759129230219142587729816760100856895394885756001164344133305110112171255821022884402978132544059219805346758170647168410266133076462423748871287609731285699963079967764388990412613051619907978534375191996059996008877856659307612771348024760335273260697624990660631829276886487612333171340952823067911506230370660550788389914613798972038684366317810525167471147091007030427104998234795737156607118479770032161158599031221246119433951872303066651772067810911773644905088234167777352359147177174088491515721908450642478240528719368708380178203924671292644789167530097609474758814465070792918744385255214052720875369564880394583844210831198433837167300089336776625479440107878473620735157233597816573791479981945643498351531153471673183555785409973417935767512448898592069683739192679033519013009953800323177548971868999557380855458397167850365882643805038973186593208587007939865042086062482810114170595960384012351717949227404838039221916838042566358982044083432688066071800757571555161335196666489043870479471550468749655150616650161578924614453865162623007595974087602956425282630165471780270385308897200265389208760902733161836004469535359081330607376604884984483920127235009321133618582360297513928841032274313899203081196284936210042273752193415889248996595436889390432297717868382301265174185037289717680569766118415785721800961049833670838902059656500500776306639215921374966194278406014365439972687871484968032464010466839446482860032267579460793249396722424134338340361085152434876499735925751058333533770271360979037403609322901154853827991012830068054350449554143092470438572612218531813238114782919337863310807800384892210979364668985904440123366367455598941585531433242231407311230120153626953580118454959854199426961549994699640406384432815495212851573849703532949126929216767828851114796702998016748173242356082753959911385545280040855549163859609539001403778541949259842119327972438387785114313429778701441070474055885319381594848863226348978253131980022332562125523479518550578976333639754628418240714223005567172188022784993697931171019251893059237259803974672378761723673004228777608741813924907315433926451255045005390951774203799518779232822868791887278496188868428107472652352900847957470854954013700676204163042783078437762559457832785493392761092237766872207525473959481566744230579300289497244518698088273519428258184560028647876840253459274341614837873417397953332376119387914232613845776649656658618051380748933190887275300394304036488311832558269329544863699322315063590390566061373884892579010842936430932584912416407398452746613443942318618563334661053776244139586257549064971520268605538426628996326324549336692222228494560600556059080887101202772551745984307507632752451604504348062430621485056639605172582237176041180598061716582681032159566241604337892931323650076040041162275115139235694978480328943148309642629376591993737017871670118007723853484640703334139730597015883234988336961317974915289797558428509089946106940670092176996992732485106129530767084692515398663717398982542630267649724261106445558273421886103902083162767659455085419716308428387201840008250531719245992670850385020929397258489903550188299573724155109279986506947295117481304629602367038034272637080416276005215593796657881201382140775039168845005202633894932142161251753980676795921994488237414724711049545627174340626266872861665026211016885858966939698300455362514736990916026271073455765225518104370893673754704871800560060288713342298400103142888255600389717570740373574466756880376053338582910636983731829914500145468476403372398576290237731384156038896149036015497267390540952893008556506807496221083201673854307968397055809707624954174375801824170241528266415356455215252461247054979800858938140426481515169843995991644129082984024539998627583959121639688349091086636026606480046731829531940995583039788872851824136756465010683197448488034765201171081463567601633507325304670446615766622319668769564604962127938889126015294872798945634745800536194750506428240777463310233900079569694844367341127389762021520494501818090005957204291052538991635495995703074150621791319992897025747954298603860728405852923455459654646282180027394695282884515234892809626799252269522440032410780057449086521887201878260346799486202116557946330977329895753782737945993086257385032101206151216583226124891124915625145464729299696787426495158316428256189215800609110369870700212631871442173903366188505656666393734685252259518099472381909766010020472556948145358541033204282372583302022079465151483938437740165105226825979088270941768044619330444574105292435550150274240047879410055437662447726395454929176446082620084438405943966278025225353854990149215106535986759605016325133919618528332041052975619551348418301217963693726655490166366473649043825722551644161248408041558846127380661192048250079167603095837525095338113406618582618289934856107150859937534877094580588355427069973421716333212393871332046079154451053268266277775450798530191150910642545377896427075160855233093049476646743182165896484278600526767811133062641154029612988757042403196899582388209260113972473499198798521059040418343980322743753275151957053463454890318132986345247996886432899791386025310350720165688414838006064291514611825792346425315890756191155837294784893751678721934605675577302101275316115322630810790928658471353752825975920341710034223448926701259729069967742189997535262983820287689292914029630237579008595189238836175602293458795954659707451255672253299658691814913643753367705446029884919385296953806207182112994906227392925370052357101043861487818669874669147626954550650032959780126155040588721092851416653317549841829947884931556776451954925598877938373733291253457963930564049037185286539235592933872996788161972947876943999914488480662407957802472106798799950664549487108233477010437306567850318054344849067990599718700164756900506226386592297004925060956564345715089575914264657358729132576619065687236801558141114162060511749024876463954877312686083157732261758475761903744941391355084824993778019176753595198162942821416190272623870159078565474664849194857064217412842718693574201275050621558733642958099414884167502602847485237585163026524919356275917470804255454277081187403566381820702291936008790484373859262556582722570870844335877967859227612651111788473619743784488684863511959602812281802488811465659627199415561655711148088902786859267003884900343604772518463909968052389895906922169536199941245552943918067081673301131185834027290888327511145548901787710326939731640528399526867252826259959438558769990306742161175777594404120699081210680630108533860371885855999882682139400680780855141602112476143534044167255889920528512992550591348105628110797222425807094663976411842954215983596622508992406418718055816737021006490760241635772849656946379865779563667108341986791695789052621174321688716263390924841185913650963136096091925284519230226563169213914335759054058638564527680228744083664948738299088419312052130181847323869429753118428084291935276549530413954723573236109622033275757608249720781372771067359724675371883048221491900861198365939493149383499218362935684610027272577449149421452549718253445232162584951015729681616019502070189732642075158391597393769279296170914152863285357397399254144553155339884132320279120020632495683445398283609194076609370812927294763956599705980042191941532898754495072138220553793565675512932640095879997738342783436642445277441740170537483481562879167262602520300519940208363268910312810580215969708305741633390961596772283910535892436326827251294746057098627500048138848071925766835916321829907704852550760891501964798757208391272463704278301879411543953246079901661840030209161797670660729241336677085716891931969648788480822223301226660376886684061611252957307560232935979856527138828693774046824195161266615909936929683056362846288983585468842338195846812694657953026667100874757345819713300526596043932561299928326202260586922111868523770991916970817422113683373220403903696739250004489732113967718214054740008549422209876403641337939910165339979415740187035849006883313900173200412646885255948164964277352493784351197935814186484772369095924525033591560665917808707412495016853316700506736989919373325622396541870512271084339956870614655784837009409268160548853475244864082202783618913940961507112015513427658383949224739874001766859366107534643789397357324168477112016814345169114549559830266053761967624177616523602891033185835901384504454697721027551923621829056903002950271307340638187837306126523039672821376936048234776455093955714070225022720677840495042955001759892212479028649279951789075292409765244291242120931127012210919547966578258253592739100422654199968204703072766409617844204664985273586925384174775984901499745067002394010375524091378825719693029262501318466185277592648771501017111302499902915108934107281480882845419116521407568984548193421228245473663008924287307610610328655900085225265894458277465371608391880395614056301280893417170695227670321350550489463243068710435391117423294415141885889286758351730196140817287755612621726404419189373820789476686875877159509823278855593097278282970726147890405017606640254736101351762931622556358514651460957990361264455493892799047241607114784092099880225873177542375794299460917755039235763475779402931301367208509425974816178854152841517165944799541020640619920369816272023810522079557227498160469048634921565709359028680172659519948584450501296716003034841353556759982861704572880739097372563837448470651107932379464338487961098544573537044146101495163402419696927591637505946807092360459798866451426018278258790595373725912779404808190817576306633912083147813836391319564884877660918609461719199109369929023477162279997061374224794085751982544188701612995223217185186522659818307296994468043940477563190462067377120250470071065178083744694214407178684360174171227011602550192621552880654228924963373753117741294992232865002983916485759727017190001204654537490838151314362896656587958541444513688185057198833044345073275074770665891603486967650698937934242819115546042010836993399049932264221250912471172050421484233449641220664743654003273309256882002058596520035891885210930521299242993488891288624383567808614412264655418359355582796036069599586300067818068171571256479523045773690732219261032990959835696368939621204443618878634406198872987519840123196912255426866839333357530552099871028056199859284845511733342414036474068935530461120273960944236951682343397822901480603073526920839395572433347815344656527728804066536316915464480898656262480768296256025395554541614066362617089029948321580552589303488701374178036192123636356825146234085619966871103072458987976455111241942465617240228885240739072731964476883055736615237869594703303394229941181002268161234015500601985418702435320139581984825765940132532298360169863341686116751757057642491702399721349710094742118113348216395587815457484102724887190016917807942029939381609823170447005265969808001048613479955105048275790242700283551060701858620247610239688068050615552545651836420118515584414636022625789404571405075776844277748191881739959527743976379014023746685113787486007433008846701579767910247310849198901072362530137428276582167533862537542111467111045421806049324251327945871805114101668797354574880142916400882134526465631109023138778077690769225733830775316324329886174344912550873237372362487406970863722080591753933112348150054946977431311802793546271071197416457657004834280522115661085524095230591541116138641927020889080527706192345887569831237478556787498016628509650775169728843500504021379158009277306469348030457471131462568620426074832974061385658827631207691644781868218330410889511161315659065939263208267179761970738266134614270100097921452823206603049314238369991719464489342617203292396361094316754740114081214166345988795715686702928665480899341422753588521256674803852414974363565339455563949812369415137792484884230875103580683320707099582706315051039763467096516246516555314219808616157187003201121995467984697384500064111072866478139185824339661683477317532351845550920496390343082734544866363556110977088533685200600071438213722905016504611529086565477666856482745402868549083649940587348066517104854221263813461708146514856896423477666149984783770593346465070808594103181004880068202811647990847050833085825681583730909662813296475924589300623444968915527591839365739449068699781073292372091782894216050919456408287311922844077681507511380690171351565047203567058658965602848509770882647601546553907046699432382536619246611798487943874949057486534289998263775731897840342824683108334624343252179716537068779365788554719166860279454652586237369777967584535381238059613011567069066034521549652848831986194346485324198687148064630153725312523423855468440021448099572299495390377211485803337302430305661973920883793631639209829983104471128252306047874287266281079120140312416796114335694200629886567611010898750708102459051041742985228992698215782643472472549048613086722541723372473519754858220386168452681370104764328493376127122913258946079544495714219526403342630063853799495866608643175564405216983656672618300571770968977447770578229306213131851745623990320584048657207103073274851126326253393069074264816365105272728800940870397845254404237245713688742388454824080156775115348777978093941876523855963967836786410005916443890759720614114903351120020801145265184703366931116972550845582055681592084993467017214080749109746301240467158548891914754150545657129491745692860576206997299809535503026406195092533327296065465227223704485568385365821900060262169830166203644738942175206945405641292101769095738000242750358269819311096510606231580633177909139999520783401407721153443386474797520922808492045800242999158240718825140494852604289525305631841954720795455626649462033345544438746642397116548429556831530745890474821241902137091609662415806004751034378655694675451276734527444291569904586869064650384515073998381424316688870887343934381861866814191401754165366315437746607994767105478707743807114721468448243157527990771131993698823634390768204768225520870907768233713940645265204014741641701451097280460673642473870879482137740108333425500209203256274455089671148103119077171047368755126754337481858205304469977394152655766353123637488902591864725736529379915432715089141281724856612451149165229345593034114466767743285472748324131896622274104898233333290359142291821341552564447020116988489219053259465611767383891270445994847759077230895537960865528068313103188198820305539760483820547294860395419203433984935404791731926145869090105352318634943345298081310695179151492714208296563751062142725616810899906001772931517747813474134625590214042228838984832142556123183053239108856419701824852470951799089706248826614459629663635855249498548783770896829319798496255260513135088731856263267138924729142191526662160999974616676763546960286545409442700036589155384884797131952028085757595618427373759783388555715704821635490748496158864014888190083631193543809435364193662655881790998459517883520426764398245768064232110269822760076338942856560830832475500786020797039319179555772145439207916484524044404429492026298579895088546843836185630307435014190861304441633232223270882622501758390153925957635896203288390679758990004361170584540282945077909141021914333671066540762163592829383779847280539255962792560884864809272907020214852544928656466149255428674878232132157583878101417845021766792609396192337799270861957391896135320260559358355428318475198364399926537398961719406965969536558962813173100653021235747639890005720785047365845096823360703895596090425493598452061028109578499136388791351402441940360001227139843580126806516982741253203407519769320687690723425131124681378602199677704007968709877619228246048050707384020580277658752105134184172786990609592150601354109663024937464940577547583471394005677562357700689098253305014971047288552535877272431660116723098360591174310959596820395562285537794124212121122721785512899061494436376415669382960119863783053707139986282928800147172862226864601403691972230553714135851567791128031462934666590617107954282885098978022320095589871704031787120016562465723155802123009648703203781646726079490072210870018973835060988256085442240337926762695152178312229333001031420430998434626633801375840465192205800204671079763056227783975617626274392353430231097985704831781967115072328729624321523421642413376399265198067038547678366765040835062158294808238909376948997393546346245849033741939179155117694197879945597036446058571236425419006079805583742947273494242659913537560403049630621946689329705554414124947312421597891104964754355933687967628390934045814052931975541348618029387803768564089232907612006573121106464574204860897618504286037839356475667549737493382939939091558415795230525674343906091078547676408068964795551918276501352477948956720261178399181074875121961273621255151209130926207344100949172809928281540877762831967945953833626431147140374493673902958926792038711599998398538386989953584686994749061361516613191150416245511864343462120851743529520968096155509689333779384242734644049763312819011489121214543686417092222707336543555854893281981888284239184343696490090231174931537878312930253073668934100104201346281490096352745656911765331951705214298642434360140588248539535227562119158404883064934943420049280789908693386336840290228738285463783187486054743437106794215566690709378491865597447069790157106910819381597988313528793565163171273546627134801145794983373056407672981487982233138064256525723263662971587603000658745593158480230575727317276790061579480122898556619940607508426982576701906034093894731000976773076943172774438048349883301424466160186663229063909529883335078059202165556840975468877720805203931852562600362085499055396435635945689246618658063213034084967645814383315892619772066095157445634929361267906134128956074262702770035953668314594180325259436455208869946726480084091320085565562151151319810230634106655623318997387847103893161978766117106093075283741902315277595961538771944446668596792727008912397229044214622362106870416646639215058719552956649020896921355291566271147325307372097426020273678587387360840766912292509466516784952257747816867173320425484360640828056352656343204850123395680826763322872643179284763493120821211698452661646898871468617906321829373095551137647938162668578384026685163630707937189600398933192804024213594451248330840336302746344860244006901411535080441055528541628758518845512773836749888654813569144249823772553636987887749492394133291188372010805215244998842656361044186955117659191827352577985673427372906944147534551056804682893659998379900837626936930406855238429001800731999623119671341627161396586342637625956414972913172955274119757905524856738389468200297234425651682125928641839102570967992930785111283227396240758631344126266810022704402136993584319006263687138839659602863086343698744010358882841404223469665443084223313002950551454435026229708508021742194843866983126769173763186419967553198033587012621481902877374392609745774370564750073160876391771605348009394059856233489350305619915904679096929999719739694063120224343566354679017087882683725775828523355271856839324545461835373466005617231934000554116186777944576455875068965315690411766616760575132688016887208802306415832013511518227522220232272474740004552656548155520220973329958493562274540636287605684422252324515600672622388655755724156575570367754426492144133096105281611155556180408908088845201625170523053854671036398723904842531977384559430041392378969424866060733454067267627796036582105076465942139390825526176826452306451501124115620614384566716413158105329990706944340660731869610280151321032489242500221664967095834086420963485757197164400281115007933234170646412554458287111699574841729268442107598217203395793405083603495754631630453369615863932831808510270960847524078039067062903866615417504367931117843640560322155568820908966383288433964750747552661664635547634734913465882334651286068712299548341859843689677253424656047924063147282802568787996024185056481284247329083942872826270233504094467890719997557671509136627073973682532713978848382682910357401896238261087786071508405851378930325849702998250834316756892734115581455738947061089502791763916043903356579303267923234125407344887485725916733804003187910311146745913141460394890557877804603712301061266687663231781958172334881394112227641772268260617075168795514512516825379481847813303868816111817225311727531647631729881461082962185495082833868292286207158153353188760610264695055445129236514881790804595289878010027573026106193202587416293486589832495853081717821351654150532288902039770805615797564176831801901730083680361078015415200322071258157826164977187684559848221631902978126141355092370661424300991628869535787400776154901607400038156923824486981214676059106534698855146664737785990052321044608000487821071027853797035197770713237307643374926311478537500862728836382052528161085317280912700601451895631816364999024057850774752084986504386960383009020167461174320026147663851942109383772342769743403175022346088863808105095514144493474156300191288797460018095719081254960242547685321052561029017320070774961755906297472885713951335609501794163089860030079500439496776483637476302835966392270925657517239965060498095139945029801392969364811959362120330468932682192850723750173612012891135016095377635667379905061698889544150731828409487537061902450980678263671579137022288454440853720342345321728468813259260588147294793906420719846799440961221901058017418952126715628938272472635681664076391485898792186095805660233620481553519889919069033634648169729483410212521659627543365083684279276266275594299233421875564795757046698805035764169827238259643525295842618238927744233657002357343633562492945740949204092960515686035603576083281887214886916882227613833224382744129912644856794183218440714992075637993732909097589106277821148501607310743566825087384755482248655843585546834133216124256381990877052518417876712196181323369769145848288568855618500061516242316564488490919115564795914057510958404513353210493974658021899042954962388156405034682953809042354296686759137830205261033443208116311953057583573230454848911738331978164918847600633449684880468356827135806307232344112673158541801545029852736705299512582859050736579898690756203658910843460232216163808885963028587296697594910626831125135210572463029257491659171666772238387743935867057877743107418764792182869089032327173187001364231478308642737940026276012052843878646262793044177764699248527566163998379142014946582022806564476171211076243428108890413542202653611244871910085671102084156953097622046574801539000439324437682919214570863509008780547624100447848637100063457270196062341122568037066813390205928107729497252142011841556425252409958642573831431213629565981206875790632121159130569615339862058406728479324895916946819355460698633459663803345749487524012364511550319541630784137601356693056296073712214083366956058141613440537733836752980581135194095212876480604092384057320632810422714858066174609280091701523045821504112814346776155431267083920095589564292036478143391216126667016337641441158033400282950411452734757547920753148186660889133746332396119083957399199795337171222798924255067627409511457406727073417090894148511484858298378596685421041222067035674416660462118410146506432869293657120334066906665085380736744124830879197055550766855144973176656204681716609001741411302370416042984386991212379880551092496595625752090406239135152997786318821038818334078916469240036998475331713002209447386402228714494400016300386656651690255691783828225002315061424628784020927462435981551708230457161206597035491338563271017070195794546984839305636077853614861886943926718367280320479243703425312630381586410639764616630381989788691375064748004994274575536006628903241409082244556959084900422717095304707737987379152207661882958782142859624057824547428331661817917161103477260953593211429952124266379831014159952191530188070137344011811045828387740321134410337681862572089701938217771449476513011002354386673716101443395375919439092199619062055504283988146277727480682102387171693795133823114730369344527220303921018917357779580476558784732191121589033515872452369785890685006086344170958181393274335245623460107704226086487934854232371816555388909527888132499677358980965348225111535847820247376895715549478345390080515697247141421977442845062319067494449388994899273810070676410122124100371764097272237761920271127844625152822068116117646780482660451113546160626153939855020798551476514555689452382615912566508170645529103236106610522912190839254047343346194523146273325840442707229529263493860807207548373603997669166852129967388632314671214083883648171988040300167813882462057749402783068432465828653002580698917991380983209081541567363806917051958854694450537555113170173240193595360236158859723857535567789932840737895280419458554354337116486209588067264977987987987358967751377881049343014115243091715630676219486705579266666853959017716056279363978133883160648326253445060829272926198083774412399508318383055681715858256142465386489369104686687198639617914446715167089445989521177646913441744948152881766143237532993941319331943838569358287575616982167377505335170968430992029314599875226090453351627971985966964671593454250227557316680285211004196672244496090491769170233904421236319715268969617725138602181186023323781959209331483111254511871355392600316838554264542024054319092133774130170330275322862985380286394592849861172730115229410882302150509258920776045261537317893148887776156185197390047047060682104574150484061770006290289970427496457546740844926828586334189400325283769149099321037940043018717710698064119594295811391502494652870384503688012205414183399557418351728273517932973317607584710082843208591330093587678049218526689538913692145031196824199676487093378373621025574011779870761965244204671551832634865335747661125712795700635653075828794352606984514436350715720926326820041420594421131145053870262627083160548896545875636006988437943735834787035399127021990600476213477923445845859346677769716234369397745339797132144383877070757924028762803471896462376771121583317016938401525701787723397246074666004859341152056609319602682516065404318609068369500448116043152615481063696485479898064586551611701943613121155270536601044707985847305322586543441915065381759497986817784379496886973141837252517654540842745774510524521747667672960912466135575508751756818635492109219615876473185039830845067678244650080320849103334997253106032288530810184397293513793059933931743930756629545834452854355362363604653653014439312572207913642864686749584500759091542699244548033229069982139566981885191890689899948510034567903136899236137067472079799724315293961599440694833139301696415727811621086310473390038548068900591748292619615138920043118125559485474999526937140423258772707033647454601569698523631278704297393506832158667313905873456769727863226705071230190028154912939214403481597835361689224231642332196229871681199001693253721467655455807354695865491131756523100634802570724702203765875694843044583178362944177846386052900136230670819321300295738453186817580002295127066486669652757750488370041947203012634514746927579500610841664440035554772818494829530816729231259840726579918028516770435456619131441085933970445947797969083579792074132223146110200830232431806532707923993249454964057028636124649097990956737955891740820975841703418671720076294937615856787581019770636346859621697089297614351149522040429862383742751273041431927792353616236480064703973799601487983485753407712980959515702335475770518436805370788245614764269115239259737250182505060347950941587406463191619771131268149492430016962568164915448098488773512111456941731899365850593720120997681979229065646002072521158414258565086633978268232084584935169617643114485711920013600092225486997989231199367653660336865527982391980785029504719522880233318641751827263098117436900330765124629226033860001039029524414438103969603645291480443909812658923937076189777213316803972015947931249606455769756488329756905110850819053305494713030379989319196485946472476402133037730832300390935083912756682955656022502131251226506411645720913724951007336889308538557559960255654094663521434217672353359675245624022066231631770838557903728823381859248827133455499831071862520086638842523200380284725776172816082611317512857692399058021899659442205015677636334920519601406659693922674598712908295693580587933402380090170952979670749147847454742595374557857998649493293442989166864831301645482981748647691972216875663221393302981078596586082170341607838841964861083837123660795171860686410791665583227008122008076858508685128135478193156253416919331780227163979176574100096499914567139389118180883616402380202940505539578571349506555891181001999302752884613196430997780136121057764925171644982407191381497520453878346909616480451304630980163135998839369642707321542460750040530535001233845639628893840319105864857428078860546892997903970337220053013836480082675978155572286232514176682957865464151100370243518355643075016030090809288899300655101687610064827227182153594536372851597317205566910544521284980272282108496376274030692693205133736954226579998332766231929258654334852859854814018418472382595320737927060298424673454616895585852171300210647409052185926758391819463526820258710534163184829127082721649629518058366975830727986127842551197197969617202015552331325337264363708196333218564933346329670584309613409284236153086037473451461072926211284574441001344126365944439879425445457393462234580129082132013525847413446066821546070309161891566984130041227976221382178985969911159438820751605987555049254481262259341868674522182492322254717727984901480292917888914655411303039452330862030350405725698223537507421402403234374266364151869542551712143635847115967474521237140795713884609501690855944561091854970759768732095391995548888931266535844585769657971527727105446710087145569961450186107840219645899649038701168279678944924142402116394992670443210740284049717277586203566151230911230092791230548094072048737972685828840829203244850593501457044291950147236866217473407149946497700349254591896244304036239383952311348410809520958501714977447304693564658013243215562086180511189631958196328944790723075838623216109905972162339785833841247571995925285015237575828069845096415001017125334211669529661848312182470563426757278793307318777624952155067888022851655467283507924289443001524053513623921096949481350896476620446889629212603464894424023956462472546543598611646429648792393973530813133203330209122159001180211505589739722648065871344240667862224750317221186562634809508394845892911487406945546456005755627216983335564985912748664199004354130995761007708015161403160990456226167074931563252871038606790669363205417045556659673739820581378199767386794454194196393830726676509365722753547776389373368220456717691445521685085058125944348005628144734204833975707853048742317101373045107319798873557158509531296095903079834175455095333628619501602545947409591234456252963205059865800534504515700876580361189954263149143920508005862546682992026052630366354686644960763752954011831703603469427568951185242501061420167444025502377513614996384326851785086893888930868116083496921833448768261840121451445224710294504003653693829699425601605497676226263867896867838010118277256799590113605665715251682535968247085703570475488276781785947926431826614678872038280992713752096581945171117903795429342577430263441156212755989906019228788962178237925536572527506205870675806902873154842454842758319582150183257534795838432364301991542723089925407607310615748917147455459908708651177580117449932379478159344676041361016502918001621886899677021352397593634188778183271018928753199607991606767617310989377595280262683933291822188041733792401100894228068020650965858717248153875005517697833204953391465825520598166382343581888399438719847079805040960196038470134736505080972820943648636236505766569927116912859043447380465535385045808764324141509396504663779169034807484386137192537164916646320175538748052169988202778844577333901348199342812856310066264253789429205610798854048007595586482170143497806832561695521644921066061749736917961140807445005058745549845871103862216711794338541181603946593902247644331333812627174041889979643682633936366924503267913660261159608644870718579298102898543224309258685576999832077549953056556684315675806105602118513017359924079162762377959168201689322115798064800056093657836290256422065209605314143026749016923749076896483499969764907712793994296073743725372857406338349293554788827444606389360035771663628550002906285274824658287252259269662906565865374721611467908903394747570375178295999446573231537615720225152761963646668897502594592923502555748368716206207939139867682341133665601579639926342812622830162294691883700763084884626110665165600806493032252920141518185601114272395352087353890782244020869029093572971741797867466095549308388172542786927292388063124483421833212661843957919679428428899490833673437254936548908426375311017427102282777173668263364906612264251399509911862151931402729713775495226867672747853041501229402181251310020789139299280420948309838919741928982481773939525657081441719342808257168963327449155824312620197706569501138029511799157426494958146495141366454684783091839640474884440464375178896688599265439153768397385726103016732589072626173749528673801392311970071375196083925552371773505964267817777943458283218153064430458971189092482455193779633091496104323524189723675930698210755779799473170757840873673027477146562285840416717257947411933308553303638731362191439167527969504785716056188356152522793242329946562936966596751082440581602456379629049384415904112925559970540945614979498212159118924321535021928849005542498551590780569882979942651581720554355232036925423338724637255298091679135597443480764459309253134046720659540432674937829288390397344068941064928962533965363518091870940824544390274300957348686650021626840250497677944572844348238793575479511786734346348541815304471582616525116931447584172834228030126233234625274802055118163910824202464382713362697631685012489097857036983809428856689029662718906785794454397882695660455607675385696320862642897066766455744760757160312381987971262293223039721552575476004898898961202564549930709236799407610331790754814533921520655948042920013387740274063462976626027497385070809410514893042804777111661159289036471589812203342145711272380038239763406090693597851118724345286484741339855950079999505325019706126222766617583220060841162244469651101415678747471636368935192674317570796393434869710404500435588398616684288866652916755527742702600813000484498913038605142889023347747533602755801048333197117453349880499078538714901746607125303866213525815511071719144628969063182064894419589649438645903156906466985095961853936896911847348949552370383726034842997970020000463855878576569240581838586021003544000982959342267897240713475053248073128088231423085467186616072279145538644427038796478407466476805299704599032978231231653700061542652770068722198281119035015843387972016007121732113960278458878795471116142753463515913229015312900941904379728751075445902479957105225629837911914661141243897097210129710659252711438524624595720001289477663013578792247571703942204186777388621776610159129828380966648531909672893908812008294121870165916344944280596138054006562253936603845359036746458438768038507390328379832904082210232934837843243913073491247439472406706306423724487792599096155251436343219674133108599107348486613330937578101811237311610875137681958194311037035389125005906439469667766422004196849783657676567567046526783248497337175333237779806386596928629089646624707869250244931057147459284047189400251502877424802865625290132400039571685082925069452152170190228099598869974104631922484181275736653934790979454395216966677298202512067938223813106517359514611995852027316642265730714238136474057909087818418772507324201058566572267162551915034212873744460023043987736227267714917410505494831997718766435471365016439803691175140798156820286267605907733562806707994074561825113261047940178568842998506973056736876536458912069654548007133031155341103159370474134843213486358287684546877236285802364535690944362059923146461377936455963379394289521630712009123759963403270091797862515859104941340201657553704657650101684150730739524631771162131672186678108246560954470531697108466533519189792315937347141181106757272932514568909974308127337088059826987214923189254836608365039637612405232876914163733578331177837644240360616257201158728183904275027630105228437212719084295344236604726109400898082351586054387714316097203377304605255641239548509533679669703032730389280067228657793673279499337364349372205193113023104551392071144341108456550462367220329784420404980476478930549752062206185610908924528593889076623371539805094333795039747521155166100517711779450419036258407552906540578297347476319032495746980774279376031815291056640063698213473394118922088936092575811635479287730834837995145142539025677988948828372643056200343420672315746595135462280582234437692198359233564426749545371557598087793823445906113038882771033540124120302290757308435985011854282819853194698483557529279527968363518316760859903026701330106803020133183442466960705050529283247107789379363896920757698002107010652247600309272575004101326172805974761987602107342419544308397085637119523492690911619541582363686808417925813361669210574663703462156439078209353360586137508843621651567490633508759065919422108562367918262636744764573954920430982381571053436116834819654846622471842143191547786490737248623198338461365507800762936240547407854148554574748022728743877074049136197998588538657699021340024467280788876954308561365766766763939759059827654875238221761585794111481721085009884239800651649997272162271062497925512535118715077900435394383824717281910073142261794903808428865016281996454178259685783716812473652733525565325400940895713323082628823516656149548659588838425418304125626462576486385379937735693326268468633155206854601756031210375366823740289646227609100667335394985015837061384857287088513987622960650954661971279003131096534039541747424177677509382030330541471569130293004431845799506566794889601508753940569273870720508954265855167620904547774139870494385408958238566531782546048766048688012363497286118014365745118829866043835077518627246781375842539100341314182695117082308141970970029882758106290554285796063863313797810091473366202282130358741704849539474195111588103028463842031827436160902981278634153677922506709444335612702577480691418776278773617144530656786222396067941220924932891685667235968011398831090174918639926155544946000848430161084580800142285765649959434341589480376056210930647439456079140824712164137934266460220079277634628532926209934310314432660309891302320124313814145369663624662167227002732281650967748329789771164134047346074765877493585197941230753336972541831653523541892042829256904140180964319468234851257980469265737762697459464077518706601374581235036247907669908193184793836357618920305047777015829303989017090828640654115329638611896871721247997664388735307873612040406350557707107115402300124615596188755443435703723952159584871346813093371240732795615261559600758608728066766333640666065278739779263317720865128449156797465095113533124005879632835372039471358130241546688236364124674015570121273379028574603035495064282713731536059876563338954004474078064417091979703250046207904376476026374587609820684319836430654385800519504059039656214491746204008031672598267565653931951171111749241225918013101986453023686127773539492887861226035858171731980771829224823202116520802309656381517685005468873844330918879363445562732411370355437159209302152464710707824759753543231596555159867592205518733289324190175270587156027423803446929015460327424771687731041275637741701135946573621265119804857037354861452893623446902742242423878482444891956005997543637599659458470032720264596572995056605092629233214646250175606030293443405179366907334423581103738658981374569753740964860616877544159526914739590870025513960792142501366997391330017410541842609939346043207162910537421590762987785623217011226919870819335705890674132538269302650736289170169527916668021334074416909711936190796449664500935353637152497242971393765574302013722314414100761205651482137205675597646139668241364296432666792292725330080419311069764187799230673405853005582186735015292588048844301702318920793423400781833470861965172720656824454984742631314627624436042709765978573751263703711560082765591359902694857179778558327078482577488702115504944903256236382181886342358684277790091069893693554606279242174639679172527102006127302450610419125333015627349840905037290268017684609296243234833114677059260802238534081348505727763705999104293917097624891987887881577224712881624535469678336749006217377313228840549697806527694355025219468228787629181779054455716646067646770806982973843995458290922460930248069676726212980089672305083146233120978190020478978546834637359396847168924575221878746151060605201972215159649124459454781803923454918117666339023956839358176457017386198340042810256504614687377590827752440084785404492115821088655097810735028611765348747039139540524840494652541859884324266590472613513041617115427149180087625792158530599266843582540501036846639286079153667254722176590735524600913001324738244892625058511582982279255062013787383880656775871597516751948357330792615599355672067882216208212773771126577381455281117672140116133125602259812127853542117582544708942102653578777041345989053427906671107806430224376106437813131833931019961925026588033752212016275893458947881667226545410028183010675783754643715903583295313010325162343815137610522177217638474731871586917548949387560814082424902490599018217971135953346251180211491114502791168639083556371146991019876612038956783199055098299767239007492758047420102476835946161236160262409717417422331226198690500796790028094458980250847826307576063684193022287203987109016947128170214093140448028002117216745259746000158390448311847543860148578293987211366560644628883453502157897463471546778108423246719671019217704958271114985175205924934943941078161634728331479137209666047151518809284986887905498247498818313406047924608278396593199636274216199296872491754213217872472108914495553010244257393774199390065938012785304230356074610546344763476291363415932507199579416885736395870137056866482572064039114173386132243174580593865050060117804502330133064184685480042502647695769793021932909569696734649497300248079093129278091584143685026358244902424033023656099946393822109776683672926650647640689614725857473090287524942509731729623944094344345876373904673924290702016386058684715764928269594137676940890934875251763899776348004189317238328971093978404921897594541388213163096991228030298578347630281700091672547030159310934897608905290224019691971757491284795170541971529338347243552774746272729500335187692555432843415453228929209656149294125968049206420385184799184426031316966380904574863852748401586938778394097151274669018892348829331374535913727837342223342657359480798754516192231015168389221623395154362304689397992872779941085279955655071566783106716518846970719953432748767065614531367761449677292635006854780994891535046294031469313507570187179758188494971951753498131345627995348128811062982499533807137145333607406994284142195667348084271560779962647121262881437127125692230695801213866677215681075480487309968965053449171077704232670455589658903467686428000558206726879346007066366746225257100396716250586400786451474219943105115139634978344692901604226056423267052084373081888267088575369531459558898443578340244092310745486192625014480970526690707543514166899544466131315448817852250479932290825212280797217496492495474671394199623610258941479912138808257816188094223886205535047402840799621392685283170789544788072730295770224126855543812121316173686659777070479374188089842950888074058612224398309120431505716803021980426665090103508280365400567643800767630454951461599938162366991280575570863665734416387448961818046590077090155747378513011294789736760619374618465832136097119740201789009015159420253302788754246211593803795654384454050205644131338634241921470670342564406252673764010635768421831045832495277480911204742922693033107454601454078650036363924769398381968665851133640195487561004430638701891361441192751395848770390135281884216707906795702141442675483620205699861150599799497784810117720419613247808848437937895218322625305114612598710188385561773086985418300449691708326338290143728260152853338810648903552862470384535758011671214902153670758596208950859587114111656062239996767067041870383972030509783438510004781150836035022527079433603994657735882193892057341309372127983035089437520766497727893268317757889286834115441403430856300751972739610898472210803988927137342499912246174417495236093197277341490817305114162545495264125635732941522489896322808140465190054374085554246440117200973065939011986624664018546284802411218742296610360000168607739045888019509170112914140762597218632307809655533103770951594652689229609211168759000454921558466992113614029295912242621704173799585491824236635551414363930832253113891399138894639017131831250684896114308484057094152759844690039311486772355143912460650939697403731676184076277005074031320928625826187395748697481509482822489873991898344142313931888241016240789990923170688110696147213633065500949408927869552081590184777005756615028587758498415409197440874261507689561040947452634127034125048042444800112411482563532340555599254218666262628150413734638960868758432021275462760214627940575125302080789514983033346348283410923744832219710827411712353160586305616294036452515862173781018734861585388276562978781345837294953779003935617603873377499538656393955787678198238577195024466355431325757006185845580649627032365691266443324263448329400173825946548519467471309075464028802021757597546615901809549027013646804918066917644709990843341749200240234027438166910741539309124500077786531452803539724713809620255716997258087188372653323810135124504258644018151611617562490636787214476127223853762129670263575360834347466266951131163601389430553476867782051642183911105608450053806697455237446761562030864037913892506473964602841843572665017084177021792686062934947835474083474472532591044956892300639145425544752304623701045288506799957539834586843102348833112291697836531108954031338355111105547600815331381572714851530994146897953759286523101789221734996793572553136078546316822983191111573197790001065253404945789453771282183657207762412954026032411193075882680574194466149883741572684524108247720038935965400234775365859236834738311369045918973672452553801047915319885843847144726256767686234988944837342737588621292137383697596370663107587376850890338642494693456060337648473325686258780776974417480372592773454909155798903241139642042559817415128041178950189610169182803350260577326723079051104566377592279617617728909185424827390593409442361778806026368280554185436170055728632184469726569035540705531891456071606033040610553344938927692060168708174249607992978865646896856880215062304811825107099363783758373688440137614624348614895681225195710909181193791861314468845733679317810945596369828687720464073999402414548232119832144987228830774793445594589798934627966106061302462988379426749406603120876072319876862689362400588826718786206164248140149776180593443190934672094679702370529525960285984652580998171444734261726294987358626603749109075198341688410290597165315956129473394034576876774796109364034708657182214962325145975232608453749373983504565417701425652781127312297347773435579600206267711080184677808209725539917419698580952052528554005209435331291381537833998949464153986281831486721649899565535777412219385876410113957301035824739550583290671309430301302689125829520409937910770124330218384248325446685835284779871445401180341320979066935214118826879485765068602853782469702983007037213048053632465599357529789901522526040026596066940298749845319157608250750673569773829389265774555153866954807969798412274362957015175023686153835084758451936682934725173038521595116482727420206988561057041202499453848427395051626504741635197567739138519304970667379284535676559936588566784395160264493688355995881635825968571059818262878900521333540803944650061561887203762537472262190029969568997343408624873171206292016793109621807497434070263343310965637024846907523579674573473765491336805852528410999302221977261753400340548517063005907130573044476779538496869431640633728478767702692686626136487157323242739108968391106109718897339650234288272805890947182148727561594038435146680326259167361569990818529403090890248806954620089976446183203622491136123059246479818434487301523071196150340555890562415605447625206814024312353505684506798302476029646058569384543609524460447590072146608548945090692679857306551939250435033755362922493449551923487652723061981018972137045291164402411460421913476178605932722176638648319633048425989894214008791453140389492526801075828711957499823708946334680968250658252928066437919833642746990561310357990605804966238016979640763185292779905588835599799762097650895059122920283036549482321234741773581492828421022469758168632314810911645233480795112246600309205042241823899276263793011452886590267706306436641906661295861104764380694917050294395764555467713366641827203208223018657160741150067882213414866961224788644190989518911216573612132516535000826206225761000067823690962555927931339166091471633794606804763458945524785717401839999483280235135405103996702697339370895187624909005064223471712251851670153049244117265625244119675581441239906725299445797482044188682304503025737788662723315931906823719598611438727773015161175391298101730399293585020371861063276477994652151612484887775194474266216973214491959802517841246144336706030494781270900563983664075382758875001269215552548741480356300291825069899679955770045556039959396370368081914234818863570944199653588534597870562260940539336885076699696309557196454637208401252574765020885761327889902520890180120315905206364052780734176029585910754788791963541176207846291440113119499375564319704673778158505741368041196502640436759388123659011533961999108918895697780879057578209071484542124895075881178057885107582702347047772979785677038035989682314609301732010461768323771202526567903611886224077262142735874578834476294594203003258021129583299270725354662877756601409140679054445636880758473524473901732125590191123765382512968094436743522304908301310194626068653220585072012973251706785089144331164335975093871117045693290332665958564389719948512674641298260442341924149141215671384208162262944296072556822217709505086339363417755752508785024693891512782085348195050268319995701525295557079160226561051628113751148441694445512653840641703266810238582731044195925313075094774204716378864860651113892375843875917294349357025296311197855305967663179348927348694462212738101271094103598015170422479317048315879775909773533062151174211565259369420593924666102091145843731252535064451477955198951485486615322323889799833687437120890818421552509480254590910862286528716712229507468213052987353664010280822875993315592906195428539127605836601423326383852895479790994691432108686805928794945845427076654872472479815467083530759574635541063950894146300146672020116329804465102277461019626813528907952188316284619348564546687535017469946147309013299108918567101816560032298930053206843097302310964703625836003235097067793018119333505628122571283536659194920871913248539453541536880205130918280992095030550683106670761151706242052572145672940327482280529552980320507510144490854698593062943176675195653291989263049009859060379146498147101956965236635609675461825538089692895971392619250207742379263945831669193613121920069246753489766327337649052897708091495873746850657532750021439123215923806517215277959220877911382774050290251287613922755226600952410322016795147213459024951300389433748100421818104790801710594871466382157498476326683239048866860824852532556767868673576385030121948971163547843835554905190446728919893747519676028099872286109708264260134428726026907231775502540560474842286958680964048773400420994308818346287135333565155325150663436975488356879110760353010310801300575914680588387530982200209007613155426661320492053118294255097201169162955608501406739404695389879889421363633551172161891207185366492822015067892077981150107997116524846812493664607474368841913363858903458352807160917013983888672644610473481457695895554072987795425758415450232561763269285764048661324424651663770616208484945990485127771466396930662604489549463215502960678463020698107550319234678655795595487745576196747387869491265389036755977303270922467313805051695115285018356249471230409677499572589883408293897438406511839602005342186419301681616485537430645525024426347754879385340816600844876040223670143342000255757595487486283410370557067992584464961870260786835605556277628879960385315743471393463252654321202237625942592564209222006392495092604627264130698856092119801818537324413284289061027498089741725956994364167347182018369113992281835898101232542381710889450898532081034724578017752560524267554612482987559516158246923592887318142573443517028833028680207133175393453762609483005985960403357024465148231000096483083596593496202830846493483118134078250651025921524635995113415989257410952718316627355942472836330130471768052047640355572625580173614335172270895042743902034704987197708462896994998860021017518797105704941576973195333627744431342140149277644560431714166441262762364857133540641135372168077161968937923643781260258536139178030513228211477128799888897062635417842629719371936595409052445970746651766023466695928370623345734566520800851363967497787954984967296603997946820514727430750270149867866746823808546054461081739955796218108661005436845313765995438609720194288430053008523180943072905195617903535517180363586034191681045865419317949110630058228829006001843147244795146565044788219567436959767597162847584448821887729341183892870281605536485084620667137105776675573918499736775514427303606818166418146150246397656913728653621600227210088857001574371241688839116752661879137162316409789690612619929121004184540536250224178336337780138113152394953525541877330190516724091116298025055513628166476492638558346049311743510404792158322899024688849275260236761111338673363106226273340251733401490426454187440063410045798938390973128099494733446462358778211424491897491401843017071265266563504684370097460085746316964822979801273023041485027579559481513561975962739181601124786055266639198755912153542894701908292227308658131870052951485498099037717291928037872277380678005074626954664983289283014546251169217437070758228745039148898085973008676602866798079735376710647983996486142723537735941103168530106253964656769878423294697270411252193147514847821736706069575181153964307592585062210707489645841958786114629433101901066024939849048394749464694233390312594626998587607465557944564140256949557174662612283248387746860211246698434834385611203184606828850288283365455414513191543845092531241776087311953792307666291347356010322464035782908155052246771326783328103080719961412220922737073390223549067752681022496684033114273856995558687337534694686201978235631502780047584892645094083240278412684262409082333698909795894944669110032909215270003598765127871198019244701349700354029380754247722545356558064942735675058530757086711613821983950808466042714493561443750434044877951738164268904837391752152006478753027878580116298083527521286349354432343786759706125207325628476542032246995314988097217425849226725384911063084032769459484131184763673821100822528086496139221248949505141662642882129173139166157677898311131521369745348273713732841819525955562308516239492052060705841038740672276880514356090185001697511614369843494034665114806025773247484184606897311936017981573154807747330267237803222526998681671297636675654067662603263304965741757964850901421795412726708387026354788295601143742266373507420594747924867900286218326017523922725588727874742671508517715764820353303185096934318809537674750124434449221374272938706817516834236790286351164013357040317799749654794499031227038104503762585662098672060449266322203487583164705860964785869261010899304008356076939810167430739216398764879286941716350995934729596739677018257340888171440223212134315797763299877831752700204859065362162148935591178801044117365010037412606511574436616114015749338548463192394804595162214841906795645012189126623664478485283873764695816722532909996198324685411344239967762564170266377190830544322776137445459010903857094353513260640005465848049335281252768232538450932419498225608499417926172148760513420050069668690960541104468853737585985270413294939732760828452668739723243427847716429700482815008819453001840356299844232261199179947517074862866298740893976132726006157209799044596817478961701901634220157801755656031568422147477210022294774624725444480133255294875682514038026085665353335589005123020948735964154222711930113338733421676309662230065638700347163702126472339464754240688939275354311162565418583141966516819010832587589525119631138190553384671991369142073671896711553692276411585760856932718820526376571566672282056660712806923884587066586997756614921369793913400306424603676455147560546696152796966142410437873547081771633618722713256566535009840702880946733688612910457581436088232201087690388270700845460597451824692457671236834652902059595826066681252188206999492490534746500747743129006107517778430862223018245109434232432450641521057400726807483346043123204404710912488747426528847764373532541908339401827388672783816758986525389587421745885296571651753804243388130115962947399005953611949261127631881560954698095879128944234756661148611284705625873550859626195651234135126908291406712471842275584675479868396460341630636373865582863174338756958595741631216344438508432149650079618237459920326551563624240189945138929065441214320999871109980342933817855172589378141418435223099487249541697267704002215686217829668203481469396601651780690089931129240645926238588637618340007031658600306425495099712795981794270515808306386320485836588451639763913296808769954955357902486011307936056558447421702429260901416770577188314806583600644806818316152709804880445562188767972397887213487040920822183185095300234661155660662894846522665602692489248562984939050456137105192939913954417453442529082361244074071798906421328214529942710145304012311300139982148487216900165213359205096793545134834664159769567553462136947845192914973942398835878358730027656247814255638065337897824751180367243089100284570383398810352979946728788155203226516432667992754690095487208777768803971981426446836742083351708431020486376086436112056476299239618509781921246480182870457896915132718484174903262494864884136075887685191921150978665230388998742221949417406044999111926738552243052034239851395766641945943163812116009608982109835039774309396494055162831526016486323966349214525824239120237898387216707784881791388345778078058728235899973444783023584089001876100337478807922056471544500492704585559148521806568226473408920759380575101598545073943272781976240191944359436412667669572551441883391012014655310514086174839748825650660954843338984371258510025524721403176356826097280909126100052907504275392774507573611525682109910515250222473920574220908111611173123606260147341209788460186986177905980242210148817339412699730226625138483865611920114925661086666513262935615016531445976826346017777058997916448201932827344047936439134676259334721928557986218422569509778244522173865401356418311999808610058217622598997553688276613912398969222141050525749800678000890350972899554311434711222847224934891849850051087573508118255846200295080929301777958369102133467406540048326438353850889869822044706481431341800423537705983293444332878437022600829492430399115864354117394366307171224105467577690346198724173391459335981786530803216325924415694090552736629604592246292798195819303003265688349741718846643867802191485176745264833939318394390168396232601604312556132922481771356817585348433533854416689354118962205676503895342998736054222441681589671428197325898975701623942325035532589819750285359873006500412623495094599635210184810415093895343613967117996565323719659869697112222014571426478344536096554438462173018060611773135216927676533484953077385921771879351824175542148300558798069640867860300669939349516261058477732250296097766022047735460034172955825875803982273855630951352945025671513056420873437137597899800982412627780495638555677264229377897067530831490278898426602681501183636358688910313600719927818754678348549559870248725501067929596215242725697235836675957190593870997092956821747849611671750747831258104394280560555935084769388796500675129117759329419748505030933705235881318162230071216726897586540690648016423144359754172646953753525035378638647262251563568825921835529149264181988029904646888487344403474795439723280809687782309058323629927433973170825651166846306378581634481111857997084351365394119698872413736687013645778654354298455422280773201324294414457071900512245474276766201430498002400712739369761133075033877914473926903978176908057709685212472254916538896699702799560195075506792618512550781030765669554400362565292181819343858516526536594760747569008832182316548922082252609232309654500105869522622817566970719752805330278696300877057638790268611941639999704086485701472396056911347500356799895784798059834265798137548608026487028349381689283471670846247181389794364045375181403257635637571772455278037759446998680493362061665284709249222359366096739052032102879915083010529286072713943918308140337645688824727828055088287929533599852817281529169284891467236021940554163603173771683785337699060580075995645771625809944308205391000869313597754179043603447149174873404332257884161537442314321656926254416841116423317337777568482574477500983813913224857652541128671669925111887158651699546570396246700846333556710844929025278704384210918293776535470339027488243918098240885066757740741725655294562598334951418605735729011997375740473332733802388141036223634210438130715174632908383288700928140045390895082937771135058660229812091492436194954589546891570959061176264679273945012753479114833498045963665910711087686759794497533955861318772959817793897975260881469952257329891228443579649002697214940474417761970582259723362645440409565838773371604028638049717472332232629767246804983594844616573198747671471812307519679988712157949539313517223510427700808172946686803451695498260849565246935595148555913614147167261847801585444656107132620511447247272410093847288645736421760126779387624924869967513451581093937971075491770433482026174504227590692530970813601315303955506438989541407213532443279598346786276404402700535333538505936715757192893226627342681422362561983093527308297808945237679925368927573017598684059397068576241573912854803846271383710554241378157136771773148696597589223163745727604772614445752200951872593677693393248526373039218312057380801571510039963449866023888424882954302623400164610311472036360550897428821216889278663294922763945689076528314630192916490835644214396101885985200849805363034244631501964804063132120752892300247286260066033523778178550674974377998143061839156486965845202399452141757392413135894636631325441989663000289578486453572328280028119405475127101016469809877935580246392653663027618827765461446842350436525016795836545054106202154653610669697713038430646120071878075801807736745078040453058937573472449649352139600392912756034162393261054941180159414546393223526644741883196120324040577322839924452509031561831017515124973207856425243918045323723654835675887539272519603533784064747759044945541532489846867532710726229887938330636361896985108507876625130836648890086763019262378792717462928314315243211600576883708267633410020463621163889799003678777719494385824991907565046157294137644965884283619575763876639072813302305315845772972546743827197100519209237472369353841436766408263824373616232466121810455827451140760085749300665783577755429298539469211778534298580622408307066206606364785838729730973309327245728689847048478583089895368422826790619349101320553906461913944969823479543540532245832236874953808821707240798594185855521031135105525564775975233671931658857192696483516252090189027610730872782475312299269695834827845175121348997846872272805103574530858215859754260988782470596395925980490238849419116258197589076014646245871356259087767588950428000637116537877483448866357098259135296302556181415038997103067541895023333987727499962890421734561205376057881254069080277041841643333829092653923518614291139065755282830370295230477674014842507025915687608551950911787363251713746855067015843310791859897224910158927865143539980332995456221745029063629047459610406766362276039912822159874954673750210984958072414493664444343606216586502707894151304031723396948722878344226392476236896545323135573226334704288329113386890418043419404216955503764661410442330888311067672699592950278178639877532402916265105407546808472743898504981219758542435717883017346812814476913603488715742043325981739296912890339617810476758387467748116336742415499221318510763609792440389838518015728573351466924841801312280496938040727288925854705841217093022620096457557593522790378978849225025157049092697879750409005600848918282257152873958701558052914095223463549655780637747377074347396818871220958748310088384319299287608650893541521002070359225901188967291367242977634372836925148757045944518983111265740528974416499958980888489029216993557604358500505153564472467871853026783350771931385849859188593506298398743171179238717084436426817517240647002392369184726170240479350374316270518118133267428614954767221309100978211367776726397045202001885500601884999801035294514248017995565834136064928229203984618168338102864096971276840617626161073317430605542539924923673376637530118064306060376390368885947649027438142822790792786009580258297998167063546969946152424270624259623589207234168306696050415982848159396235595716290757104686187604417385547213442981858702156839827554078148742798050902657055758313120620316520722172849872144706247431100465632453849088828558266157232934856318422918324712281551473264136451576073108487690943739211108762984147090417523744916976089752559451927293591126487295273413701334354819501468513787812059602094651406744293429617424823310014794986034534160424517317859429495370230000343618762058646084364685898116016650785755035708101172733818322873372780583013168696222046076758383820184069816777133891984984291278265608130492855402922096314720638241745814308420201834808666452909980945047520588029734975982170475382123137284020594898372215779075984147898875652759932789595545978600879314994791543663431093086244152590960437132377651606505640868845814745417214260969646445611670309366764237552830251985564327749087454512170867428515373795040536300551843560963184562126383923605789551606532366228852582061566197423064768354406751290838306098332263847769600521065663329724348082960289532775487507555685269792466843602545984593086941893329151838082814597971866680822965043468417560918647010542449309190035625410190062063156532181551496822491330666839330342825412800739475439262569139819211292841459646107856929223823724456106672223629677115268477591039544991333195255579652934359180059145747018093745618726291243495676035248397855840698068718994297522782760061347256677477354869901838827162624006232337875623546541567233477476557106216319724766185404673179158730381575223070851926308323221044296216164479797355177938196232945738000076261877413208733090760902742247104411760633616339230591158772015582644676853992944860331682882776175410648648605085703621235551967624635705778591705566379421280833979244026512880988146177766821101007469984338455084947872157612356957256217230747738532000125345443560548369778855070404714823644229039936872999656250470016929222359048365451779681024783673828732882656220291148195164224780734480281994978910150098086229027062829193199846222878340208065077941211973449491138327214646631799825843932852142920937703661149950863405084876918428461908203832041844640123444565597586605147040127315384237161683051388662931013118681562145374789531316431338121053422497767822911987938235269770043344412188492092434690568048136065630616180548414461081854663751617294289597537874529042581372644993165943217163768049487781291311482659759791671484709906713358650050842411871860595177046810048458212216074649322811094669705472397728270234368062838630470570390934395920435543717560417359670197810217778363745155641821757929675209723127244578566482872561015054171427004524321900554577954336898851408374013920471510845380975572582147122904115969734808216014149537723309746950313609617209694231333675631932515678401325461671859521459059899785039350853006120104440647377529511057055985746403482565443623989919636025084611944229247787134922939623262232804325460781473816156507724107631853255236920456793033476016990732141194449157935131834440028166412715549238712106744474799395439392197409580510028636152469001650557435063650064478846136948075500311597249210320791715939694863564331162506117157052667421483525936759421113096364280105665888467202565668239763924486274580518140095732692119351374985302338698000920584350035762358049636876953147896356293367553828984358578653328984177319627534206746315776504253581167352805519342247615631385087008585699195432062599634730870413509758489876618372582350979626439860596119207682690882215951425264523841763708305028754687517972378373948719580538492776449031808489437375459030746000172402967301553651564645993353075210673737070904602263818187222009220572179282087073733383335036182812162719026053994631564051743431180799803024329445956893549757123014012213339210798211567331018007015403969585985613286995085268016941377486888106085556442586790123708709614679361192992259635753985367256155982973058695289572530292393963317043401194339559336979905817886336413667075863596258098954772398843079566978123522368526251465838893046165909842797884103440452259010817312555812968078839174634886928713166965829486698860244862744801609319432573369457764349956242540985845010835239418751504126678912608754846887631866322212185934398416732572747084183222791797762598628467366016077576075857046692569583080587319543033551126814990128671761031352934723551585387500365578342029522803011567093139275302363046114450221094165445310380688496126667952476929345903266377511439300287876283259277090461614950257980048578910399516461753674253179560739500575867237043475876181938431633816194146756667184150499784208520088077834069339672134508116924151414728695190701923364626380892282443429967171361799114685093892428586306555196326530725990100788466940680303572350285041787679466191216260417980460663281666589607248574364659162760742448376940545072239110218207319371814354352671845640872718044417547260384508921936243167381206648134548400092522528237891049590690769661141777601239699640028054515418143352160325901712906782524342053681257099986789211350289919523734378054665751277368394254156677964066932860778843471294742195713092100773743817636975699075508212597534875271350902652639066640635226374303505902064207580988765065819172699611783722455334079446120552188553653046753623645696108960447394476339966345946473489628462355391066685191603455009445019961250263398744858734002734208307360215900937311021315648319750748338330868527079872557216633082628207972408570457359353470878588545555984978285945441321509768877539862761539234380911401898780223483487243659625079773641453020550223951430476322327663250751072140799521804614287001717022011054073942541814787670303605475454134465503286772382310306058068267283185817232186349127714160589995645826878085475651238107138841391936577215424916418790802057815392462383344924740147096310048788345185785448174291754859948227169185387578210992723284525693846179619594629958315807479328264169612650742567475504502122746306379607028150067126662028153180737679137830705501608080355105546719345670748087805812132845222170751198941836657899213244588356150601151738576875089543676245480775862703065488667109292865540220189132579027413508710523756763580611638907733848148904706627330873050755538189800263253267739445835385167488618561234644346576235130886366700418533369152480861416760705765723403927414763653196970367430530649572658909543718991861221468888453642366595146110138898581511159316099389515619062204753642110735013472725583235119330505277596025052836044382631129152976151043650686579576982147974076461154660386502646355561530440297954467076571845729708785720007273940216656344085323470203096193775267380464916763490296460045840122620958532107277804380000182489380472815506977501190836497479027274301991341841577693458349731623866961723411399645192302853615084720750990730278572737869487873063928819444180322824798104710145338791414510764076671853795119256966785775357503509829297039002195410469409431727198830382175552989441946453473552766798181817549353304459787849727269867907387833862431359909148128091511051102311621870523483275242898823082412390400321566333107027093496263297974269769456643677201777284193743315099372187147307036786119996883269038935786837410495600213502826918924164127912624460964764375321032190999297160416412920599656321836121654830076324680206066235550339330686766079335624881073677383075205126257933138854385966292982113971977127413679964084093482565780564137457840472509294134448358213176191848168405117310889363482448403581579972018353324555120251248114175585061282965095956568455932591336229743202522807365616522347855039123217818097371392147944394218065758905338363239067472507805041056415320870116369269276548401732683667343637226513408871657591250833626440721052889391832318798124382128644957929013081023678469804099468960805707258919870164985165598008647474352787411097559244173797215833128309262109241927349464799165096697998557102895028226981711997599032660345524636686477962945277152999267230994929194216585463065174182312710313336770191933510242120696707336767674284497441068691934003463184069874507667574022523238542804969896250910471519354245136576110876766933412311898224948015049198536021892984130675170452017158429867209345980330262249675289664413307977063706769571579949932976905978834749830128545161108573755535495599920272661060373339531883147251089656930917952427460549428206670290438217870540859818000155208187979719414696968361435260162623342341288740197735888354409010437719847265214713919646736138065364183005519146240968295713886860872553605104446033140929054769853352500969057646540333102144157135344468777400343364527828946440137830413936077800276766573708449791562839010903446230195545261387769203801595755648057607101614618222068942578257863177139153436961120202024648065959184991390081762055804449251841865196401786573288451150379398365991849772274490770236196491455004488668674961313151676407082364853370324250539499159684414631077602923599762268532102837800742965854252373587860680950685139088555855069594871635436078760870775285974513859848166920455977450258055165022231958584361934588466475325232658163116082240177886625169377946691417474733863690638156147053885395126577015961784754579827743112955236399081093133633277472029292871642745279757104334185462672410047249449001206331798948290793036792587281395316935215238897487509013808138362970866556976125459895294046717461709553485781485255209358498105496397791427066066031947567025158717173642283722927488586230339224872133172421473504645232846874667483179544051965359646087896214266732401310641070152162794832979101097304423905468422214411820263112853998533367023346334325276693486633371827093134609975746682858174611104013016371664086009932837591157379335675761016838129608090221432873932507961985499670746542076938737937113857924061587735783131393732422437501517665346247068766098707774026664510815514781960555358024774802080466504676735266907983706114167954182239623022174006758545338801603407212417841136693576195822662515988108577061746622945936731116158822436044131060260788083694522983122746808158782099925090595416331320542131972891679327039994028158658191612603839796017972264093592290683220902847610085235361218099727009805383476203866542027920763771300494174168919055917069312501456185112686724382453593596586076687782128898318967880568798126481778795639766536117119842871614194228812259236254791558195638780757602220442101183756251524570508060073542966681524600214424830842088257347094696040801684170036102248889641280223006544304507136410519945174889328709663946236938330053835143201866002817910891108471921232699875219772337910958892191805436283439667807953764228049122700379424436771410286131162567869549897078454798654899965249370582926888017285867083118382030114794419612360344643961086628314421377415545764053898207235223734396636498175901229396301882686986455544419358153655877019514646336676943208901779900433459195074097085170208333412673786340165073547857026063910881511649703055983813964610784587338497176388660877245628974603329639416122791110177130949034025908806004512885326490777862503694131316992780260701447858420876214860549163762151626335361755641612704002241054280868047485770144911084270142349007358944932901217996039650469997395684218289381643971957161814791251789428443962815980621616359491044211909748974746585151017580137542352068981335479643881118822619778060074178395786861628926438293387467931450331073526150896354180513167792720394345540990981374243696602370065038428192271558062884987891325876624005960961888273252857209701293852491691936396676970587391078111085688848516880260202342227385092270632811964092205183713413029475178469919138845077089554555242003764379515543902827684862344277302150712126642735998179445116795063210617148308540179837835137652090520689950647291039905233941600477894129265751969811830219898224938058648720992995165228245422756748122810665537781301835747225717739573813035332623391090916277827801553630469506401738177644118117109914966170394932369320627393596221012008703121245658393480672784548132141945257471894871358441401933139270590209906266127124152499773232889128899324003276915777219972588104413653981406859694161178264700794338672369965169955661434805399061920336187111702312573066691176206694454861556820962686635195238325864472673410695050893684605673720767585847543143007800152019435580596233147730496904412509561515786050874647326826806637521005752487833080864341518191878706143377943183939707018088729515739423188796362564342764936471834473972951031508554210891571058652865820654494855286700214307423072150435695361152573352208597486170687407158903139539138430817540363907098150633825739037520770099831896168293316830935184536199958181356427204704523351144374040975821769100582594010338316189383652392434896263276616384578634214444025536076491843877227184818979047415309141585296289394368168458702869632559189518004486103840760447115524326305250444734636238564941223887587159090909303034811644807086595863068213484944474257534645600165761400432215281318418561254642514405077240031629864913440471450083721857723860747322536377057927556080534025649082305426183348325085095463367641088257530765676602180834013162462172859312475885863695527693713549614508209730592087242866982671130011438969636985821908362805192760173071344794782521756186933886495762325492253364798340476937287354947374233620455848076503853634958736253180723564312988021643363098332014769095442650018315726556849454538204094148807186110350277813909558013746434918278998625612336597630955723919756338775257287106173573621074421291350545558646193624220480169826499887388378107869848992622399201311589080156136568562781395259292212385027493479990331751259325941545052826134677752347990389203230351350427451285385196415828379719810142320850626025769250476337203318215230401881923833984994853880826736853219567347187404271637663129076006744442861159040008097184782496248387979830767756515336784263194455218462204578676510475104336517671748838344103707663885154087473464387587856052857518408764795878235244077812528274326766423627235927903494242696240837707155559214288301331690423015026646766632059040079694064830627517300208806440122285373626565867843906758655614782892119552399809170371648350873205450576609101012970199438327998261174531436921464554978064913386657646918634966853499725258080117319889768724863244912130587795740259142074231964156700796138368277484050414701307653008931636712529200974866339748864801529257812482652398957504083224095274862887204001206212861629004479856970444423527923055411027616004817253062227605884898217289629815014657213970375236072252455288917918544893207841031395773083736776974552486973234784707517346804516408697200490117887562161919050339733046961048059162723520064647935413760931649028989741787409052269481936684147911675317716651911586876406144739761853166739497785905952408043776985504513551160230615465253295349606813622376519001248897232597438989008519888937709589145488994164543774616202010092595882532807000185591156613723848843285624676661631276183271786410419047399184794149702436052589028750348626468438953182005779502390778743335723676470230827647434236518042707851843320721509287592124289141245956783742412218500684433328757280421037964705653029998932114013864050350849835289740945134392716582572208416958145197834175161864764175068185127270234880882342181615004432967751292138251954541243015883121183689221592398002238911020376039141964769805096091725990559677535566914089323274317009727443058088107856024423839458016189830437230843883791259557340927081541796566251663212033343379911130693223456290461588603789086448740873869112177762828524722835955134103767206298810363627217533211142120257417524314208334358636922539903803132391887256785854150552536175575382062871535529752407461084317963168326293161000720372990470608122157176963630218648711936008533366098635107749213970651000190249504128706775523092744613581693070114838319902654365538496541785620977693138302537821787532645196542570034851222685865872921426988263755640459299405809943941104335142059011001649123854261547545866400352161247037284204201837668172393956815632981165901139265769182798330477931082933461781606015405814901878186830069921941089566736705349553336740560222487855154411689666458936130403523924053840897442707599543549418837488312711415283240215382954937383850788613004169141903030236894536151134139390731039165357337797746357359042781586028717567880386005555260624007241797747932369918001648376668295423049357126233874476312624431673461850244424060060350708273915151443110367878850883878982022340506291058338271119501402639661912126835154849118288542660681209498655461771233662740778708686953004593883314046396366089227457461986842428339455329285805532991100330729401167497607636099344155457894861994950402526489646658953667335898786497593716300517661475302987781389394432083746870864091398783054838624980067451023573829940412279774183007992450226421066017247986042633367723931095856444488169307784082899143307033418826614078013550058154867243198971639340346646843901954055957232094283755149377086877523544037352769246702011925626322042942312961738571549178115386550517284404044481371776131804893126209474410274226645537360824336534391583573174502812423963153694902369900064724699950807327137551596486798692319342855506831550943284185481624279924554542430295593748037380444618606226879907544385221408957966416614256881169035308466384846333551855653040763921867157507502951085317511724062440069486895335921079672698608518114184745558328660556569766326163367424469089477663944142369748983472320592010056896365391380198254604642949195852762744986667434302748298778258113820898477838662762589228864577278447031807695072615330760839014785252858396811470188656977000897118166293156593127462690665293680946200491921608016236496053583204884481318354442069429225724507841577474463396532482759279328676051688337242412882017193591048086039565597180158674229719742747679934371027481549425595541087646748653021907928513126983740508229063816860531010085933844438103823506120921673768656612006635217672094037516898702800451137965132015289224503321238423631439838984629366687296152947424023175648608901648884486491407591843859252358811290805644411074163757206102089576512790417323463584979764211244421545078365344167087671923660108266637387293302995766759289255899024117812634180092003974844908273351020478199879893762754469166311135805046813000718980472139168125930296244621007296619721399390121911535263028986500762810881557840802585558413773493870442636764356963988081421962337457552194857410418826043946020059887069093587878500163615436358215960378068038475106834436856736439500873474933310545244966694436383919712415256825697860793158055862490662206926673898285496177549994316687255065773593037661631657206851527267119398161535264621481528388817746598790820097016429801622220884426609585403328520716749957963492849509076692403946054580485504338713712163198295714960207801799417597352591151996108543421473242375085523250949238720663530518997978741313340162466489466973681920783946788694419105922315606231647629964577539896654793255941260002172879871157819831722259602560472804976964117981727884721199002627953988747770973463817337337717276889873667792350666147058254075716245455077532037671760826984681731426366210036203274938471664515539058927314682984687768212577605971990886539591479494126941841772688168453389646277707821581621010351990985436779526453298761818862470100498890461213578277331851503434218288251839601615528476299067328953274468628875489811456296460939176518549659666479603169721254930506426168027776957283156165262071826148936973697716593434532688452491224764957733684221498741429818018796115004649384076849619111035722129713596787646010119943189594357604904049975036021368119779250731764214095881575102394475264767098619513862408548578797181151356502320115483201057001037418653192057788039332672833360737904060220156238023890923688734933131454397514070064581081431034133459363994997752728180479539850338231814556381102928716804524865466903085948799051259107542180285055407793164651627938734817981684052692615176769390053900091513321558739874889960886163245918477739257999889980225758923398142745278401903420130107849845325471175360619470846539294210492599087228352790395396011418513039866835046876771773319636143014568401974104269769090514733681576286801039691877574651572096017727345643558249666721134352570515927960455937582688681031072113844333397079356272724490972400561472917559509787412851119537491595526681401391643150558903612564922318434427449495558449672791604618246037792193963940517904647633243452129795613358751675250526949262493265778528629146650414250936965223638608631267616490482022343691931087581814080131892137248117169887831785038079855347099464973794209036009433782419830052861721480846739156149544153922158702290545651297864709992576279353338803247273975972072482769013640309511229793461079365287132219179028048639837823945504739617636278904934633352568587734696996237760994365355364929211936553810674522241857962958901848599118074883350801827774452412296418150535190844305287777200428277742570315500352208152528229866470039919178822994107309277438387888259158252276868941101497688466432103827682427083201669980058102571794038985724571123752321755654437827505045588939611809151640527451579992651266889515412815900751867316718474322665911329766921986754065625601955001063109131721278605374485252471479642980342798745728302715129783112476037532247635507665913333583669250830927714147352959445180116190856724773719714306491488115296246787679226016189399723888441259958524930421912981194073075519813993435503578351762092066566985839015231151803285997211246137817304538606855093362718334311159929067683828843395397374779647508799403870987028544921800118329286785350217743094382903142643075845580783019875538753608508691778294537265559383207079264024598001544530247973964612944641954797417222053584371272608447590666385600233819177660771594940488300506276175940936592905181255549230929175654686309819008992598647193714630661144987575142047823335902275714970916584864079366698410599004518052585803426461666782513268302206893029450217093606352272617273974252345540125669432129300615745042630072924488417762554528334461678295602711915153934913092644009865301661363231447848727860047468290785222670281208894631251469744545340088973755690795670624071724091011317838468033017055335554837010954769512245035757323392484178761427352771803496733947499912446381443738393794833380489198241470610833135444980797676832003824935735670812984968180217096897881621598470523436464194049309322359236312883908917644041811414650384628430131247097263844977661202116887737634796404033542205654490418378964887973237336589203053693185372708517093168841729469602527132598630155434805650843768190550122322900677953230287343948162135855857756682663345438350873862390012494937163474785786741112198877800998178533997040901052867910440777624734725387203616953103257069209415973509081888718684257424112073365537581136505840936024674980635817086920948721471164490856088465248245702341479451744733630732103405816737171722976937823298828029176686834900582592943114145912395766288022520718014856902450858161026807447019693691929226383459986756885474564905557017440504356254056893690198428410786919069268230388090643577685795169811386463752014826838687112069842906441359032996305360824411601986832724772485437799275940127720340683114716717997406627965091859759451971551204134988791383382915492367351786511140750508484796474911089753031191824799520658090420203207632944005713183745203593828137355464876991704735008028837857178729260482390293982395105418234798653203483688166415706611380427832011689834829046187759561449874829382207674570061420136841627903648416151400604287801174423050832389761073149349317984333945073498474300331012415109679389136064905543278487846391065373337971283833312281800754892462159574915246191129613999038614038267132401634273500119173857374192549776974715947007673308980125782996701403018814821870627789738802262493585826799267307886010124410532970073077737547577811178748928211951375512563659599970297211624585523797994036677466772509845353967407172626214561507386032059829253302466797865452738531043377568589780194668806323508907548647906595555965457679946331082556899428522652777389804167527304947834601959421995223513557543158257525269333254127647143435722076763205028981390813479574252832574006715905956974311971851023792142968472073695251328418103951715875031908674952739263691843608947885238439284654414921071714367798294350029274393397891626453793153109880183521663349719202817593295424175416346309937707089048535217135102610733452278870121294567092469154031739743270572180659754399259493483016786481651926681571212551532795642889038474743336457807608368330919191821408661959430004958595806681758525101222004671027091063006283863114094740688772655640823529172919885240253200183188276849117787442965304625841153516228893403606546057836083150016431208369432763551460177656458451801997083418579999320099741792861681459874239848183054600370031559897972025499522327331474029702310402640799233978519260909716407904238632828311044653227315640750232696558476972839734716417712556872440421366889922192338136179364997444512390668128696417813237862080434965784888627177447288534829582870007752500276483786801596200281579210604104347073492170172084609437879163228496380610101793312830739603060997127909568938143949045409537232913530326069892629555065191209188429875056972705572975511624461078653888610476254091954048650931878790696895278812226273419117169738683848451808839764047212636357396132718849082860279861208633084349564607449186677490364056160154016344998547454248788376635695111135437854213672282359530658766374127472281181529955280159474143878483386745194434424022878348062320475964730574295872146324648347785834667326106549282361994249754001777189270705034555486884238955918221811552665248139989083328216781727743551240144342428328554795235383731311594384801962246809721141458970744952256355114477710786525171084292359112422202790868610603695699275330051751149804691553349320858647332297107160534638997818861227668642235705059216036325759713654571462433458368288691382747011097784671964360033736370127757576146423910162674613661736987225019980141460328960171150888172784205922689975435615030780231572316174588034364218037203158383499437054909882814199609225568277608037941221696723380014768729800492312925896350773541875956128714519484814995291046600084961722910713206709062366244100648193515318760883744036664809922272371658739468377380497968314115762393196456743823099422207812483467721156071912777044927815007014345439125445230348718496209668119315331321226660161843387813430041336426333216193055104131053072291576733927252973488183497116484929087043667166920117967776692713885177150609276038779931915255799689854203154054599027444114582697238402327719244845145649933531137482403185517785636119509882818872471218319288046413356553569015243698486150810894249282154760101305829042147962539897693674850481243509311620949031177055970623308192252475866457601173018889823561223820717308935923740778042532699074119439021376150460666600208349325112130277460294953114224779364418244166672659982194391167926958409139030752721810509646049586762979879336070521196869212648524926226768869570411910975537363383856579902137488681155029145450770066804309740130782085479144881543723079798352352288199695471115550048651581464691043405820606367104339511326740886799056520654327620275989427565305416888120260771321053732463873812128545801072572806303365643015421140992986656802360107899707063398601069728593882640664992033904333208791284493843153540033559278990196362504091468384723326764729674097326842470860652528799629904561038137883562272173391413538132078880121225582328833703539991776524299359718380891184014988019554897418666067978545377344444172861744571641173892779110360829960626401239696325615799923844763580939496220934349514289920246595832878409620346780655246053394695843958274535487822038783453928549881102010407422152825608894947176975880137984438652041459771563576957020579766884044019377158287938266786356932735080128632041166928210909381216186301922768041342494106504973561908169870310756012997383231862861882645282142747540641016834344341223200360433076853192055857165223608146418885610412709333284385372695990272768814390101408382579957274570260366589818237464116774268765636251865243880047759920716455837419883098277655491130867336318073301053763062550448050483404588410655300496429743656148434803930223637563959537406221166601872594133228366831393582306467399047085084022993679238202826940981493359801030864757237630830367824982967917806631165763753523420110341719188266649427619811878336974457579814881507294801461265023549816805610343161803053396821834210586446740021288831355429197643655145459911552084368543652178704982904310207909878585669664249170583648914352188645207966152377188399982718919348803715864325886212165782068174166199620475064435818721707529729021044602679908968636286846974843442930973590825106953588910213576262865896116735553947990615136116485485201983485614932930509025521058538041622726558161078384450991509654797789974660691224204160037749012657582973196863470746161006721056364472770144566822127557907445936840187411033842931392446215986610978511779339988974981916244329986530022605641102054813362483389895097610221868609403692984521165046756255486473525553813559041307969644229157347701308000292998212361256348804195476226719579922018247812336460600741712956066349525039693230223880465577688749710495339634097726163369955632727741499063905780895160583129568730449105799349017358767027382937281322188008240834759716110135448276949797323750148353536886593253231661560858190332592653020702025294209232458267719366494741114399308503201377626960487903410717159842746317980619006536854346675356400787416206392028570606024059490373039427937518488090511882175207439647725951264311450775434539417713209809341228884306244843860072407283056226175696819928214049548245400492805979865385388737175027329629885083788626025772239378193694830566348075946145882229696487317431709792535107995562809128469416206901870887359582717249643956028946695869105450935432021608046106482294160023891433411355663969860599779934990178015124929390686048956814127474322776652003730336746688502938625924205131179756455173069942319333798156693373767987401970567465729402529581161604403489005633147901304310891986972255113281637967039631397594725498365349076069896009173482581255101219721310071141752004266434315509561216855296954025707831105098019103236553296434072088399313307893174121697103923440045728242602819446211865129620063168881078634242370893789581649549177728755300569476716337096736492779737393084469918029458932496020125464683102005290941001462433115535310399998512211458964735928756643674562863377605017285592943554132091668432572532673388809590985123376221933891027128043295250782749471743851876858162232002468693869702118829492651278121315370779182521113613664069697655524644768893583960411454834495087766538244131928152127267792731211326771773888878609407575496268750846979495600620603219698574164999097577654875297515222932743194695329666732239107013093928633689144147020426387001664841333570694552288878072712866718998064816696393559508602435648528039615384069600682423768072864474553422069929739787812603903391084597461805971646487779184612411456070794755701174097888619096930057662147310162984478927473438873595573270081223882768103521692794912170080638883589326849070278847201126861799230197951745706835271786884987128236404010402991064332361742992617962104352686304758705324826165306317173257556561748149251187687124934975524671565798616081419133670486889963484037134908171151345041303699078624416289539837939697908411045537375867332474013084730748121035838069472040795935346755933839469740113251694030856184583543154440449951524751439749369664156620885135210657038984166853782066664564846599273099920362749231861880871735189045192408294662615542679758471392918927597840128847052587360064751925962816660492007247866074012376779472437251087467458039265971800031567133757884869461044042347784422355623704183101665604730455269611296312978344940497554490875742325241972538903655199122133107221720573447511439844851860568599476764560376965139831863480843384484812051886753769762656629739930233514519189128621175906779768936912758040420414320390493279516536993632356649944008502663609236835825717682699785580399082350893588221557884710432359079243987614631175587076513182440545385425386331336909927518865214788226040570877884778891586347268527322960483131511220783240134343324687651647978139755822546303232454249877497855773857489116381044099456917635162857354502727295788950113734898709037015364048264382998268981144404002902921081794764501790866108193463144456826580110754803333575023813211907864872227405464315258501800282281307418176658690756762627576881290151116831360652205427381709061908381225634741135826488654836538730259128883732367937893293488087746735307232778628905059922527382361910601584410276128501552610616310595127635106189147331141894573696914551664062640691046313999901566123996516553926441454730674281121489219993468146511369504953460468524221567833578358267093186775462632686736980916804163776308894329786169865562035134651437574125540690861124041782847026577144445434422639984000512834483493361184920938339280229404121323667961545400329272145843032507158368620765279918879981738205618283121317257161773850685236252828416436442847462501155277800897047295374059149419215280601373600447487848889795314060375733121837756222223025218766415311663339773049120350456015074856431322549938360804140022283311101151069384471885677514399343833252397429999823087239767623030066889882957032277940597595892518010624012230542972664788672045740597862952878297331566490228330306078416655212466173991578259874496031068343042759488180993559589960916208481261131563140362201074382943218519042729155320469984995934905765072870175312255293516748541431845081825887158373366633771544047505335772230083711952632330611186437216909115626092249218137882822161415726636092825259491953157397424824194332266847801293508231085622799757631568446389026828668590771790509934343796461820074585153437997804336473500895924587768215826706930182072077034913686154878797585746717956606395876384099626385037527975719118110972100898368617659016064559819988956492425738131081057787778005958348638080038521233107774146086874399906192537366141641644429786924492412357640187969803394015897163366487120181829268148128540001017246972152425264515941353083018722358191244699057333255894804240769055552624628382411102757005397149952132704064045898291985248245795701494803460099694326124388695809353514946997542119154820898735135385849463786591261850311097094766831272715640171226910140700989969741591552005280475955525327725452313850608890506132212371803135808686374359377036266139671246654906801993628573183792915406976097859428459370514978064348975558162800748911813385449860185854291821894370905698985105077001259851216834379931965428643300041593760046712426911039176056232574952122579811185021269303574492526681145112279127136882159231185900505314897228815139977809018780047432713131927608177490227390065099009259760387053204639740577599954738471433358408425709825521752381342345802259819609720632346154562390151212382222112987993944805829614396961806031705582447325592438490972972031489742617917825134074746899193776914671178227635871519808800378886220272834749202668638705631454663017160990850144446596717720616836059340155613483756689718336698522187924172070010166625295100583827906805680036766972355496656855439959765608684313258576437730166740077256949598294817183120707184765368094902234885022434375653819912074494688999604188292643311799687094768701696697210674510769694315279241767797137511466332517187753238888918845015465906983129396778449188763709539046667421166421742877837547689219934846755746443278909432407495476674400021605144717958658428786130685349522865680532484752474820560568713758120630834990941321339072098810246058742339867970573794754733329965312453518813255482040394716050533818225168708992507955629376372119961709768793430549882325219603163331187103914522286410366082546432313584161880746397112852106841677833453948315216927588074199135081236496862080538237941991297881128331165652609457426385653029857242259798384037082774428041756642066621935449752049525221444927200266142774089609605008526948565958893608671835438194406592769927363284838820598825323109669227269857732720517498072867395389685583746410562285361426912752552779869231314470794693584223463214275494260046092569809355075518034606026590925982320771884077630469795981662839983682073384984012006336090405039550460466065339290782559664956943057781240331850848488075814483989806649101467673939855689202834912569640935671476439797478707922595754817478686371717101344410178497527554035225809705869321726424993153168352945650451466761061065669727751563313583978889960688763266330427018572034565923874197688110206982590789181742934494474703269915696538983604027267199502316678891299997585349654485177455294373275681682613726734203770628927926426364574111157147409421296034610231217688067139441277198327124803330713370315055524783808218798837214234317103469947537254031739382103815032095725920524128203535868756019534061994618570396546742744134311194060394386751516066114119813629792201874172480390645365865967827500440961374051861246583917419398956620139493798742394382067973230863014181748415143923241491126136531519129054958341504262128128961081121113247484222502263380462611604694557510955574061546486193944273331496904521531055525691994998222380312136682675509433083352543183459636965543711838697239723333853145558245824899922808300236224117641122078630568808913846599976130939023877275272379969700912987697227971331825677752982966943026197320709367996252637188190911437107047324933912619750650240594784070468460370222414138415847522649475179864540908860388969357588038917311942216702032891265150909512867239759894868429124334705270719576317067852392607475943948205708276132121633135356871278825927034403752232143241435947959536678258809000781330052822176434291941197260755470783373779324567829638994630900506181165231636829142429301168674532841652470661252123170408087206976646459794055421478852831688982271902441392338766858762062657819850206637005032982287254673531154326170505384320633127158059241902635933426047830887919176760053390655380560576647471658490380023822549209747775520916264343190869150908307731110701213891238155878863188067886289692471398173097779024008182540570743756336612548327877286532599494304508641865352999633593758291035874466410956551274641882930265427041439251891444003140148152639436343357286543192723722723212391608873513770220595905504294499289196327044723893250251618929460015165486838923016833063505952602925929540812157764539827451970587993915654271934755137841856339059877851438471856259822186467120638575861649898691739694115708452866356459195365741911632656757061984850263150494930348711302179194218687703836655116968081424171864982064600044998597966018599514510222759041901094367093946005331237355124641529199335640959265285552091163180473257015771024023810997873036541283828268511773795066201823535621168513465889840308656805427877816915663699700381860012524391254941575601162085961270629204810607564300982429028490918325091286527127839957817394343288771688083272260959711230793414904295463361073400527356130783908780868480403339336059550680447467032913813561375192452130966507430497049892300441162331032808567497779349912527875080336959962488956806502222085474508432073810460881122088741611270224908747905085393605031124309534368514346734904800052342765266754265187781483445850572387484307807017695597148045665955682578669090592223548358918476081176235043316090774471824720889369066037907408809398269415545618677376649383610077794351047045564085407601991142200782310102359392091235191833321597324026693087478676219392963034007224058887004589797830100214790891017236878859101290127309998757958264013517436987911739853934794411505615649043809429940073859854379051141379455835665799972157253298334781249203145058646160502481151735260168362396996050218962200514369677444619105249038864654275786932048527633270807419187971883692875446357554726873759121679885714301159810330417049980125576644207436309141619386741339407945658276043406963983381149043869330690394537497183617484315526831009648044176019593516393336266292177094881642083054016855875819417089384516058516716187263167792502145067630153134874571552124139045034174065747803295434352206056680982714813052066448797964919163039291781310513457695286104189686554351662869803136748321319479880490878533344324739291259520740738326554815950623710076223288843033341072083366326883923207451579527658710471585883739722434639783758469480112201652319558542898417620105704338322171816229008463218223042301865995115622153556189013585627882998634571935646813623052459043162823683083342573286518233951775681863274677666546758243156503521524912643964168332871913945239791692557841649695730855920836364637107144779786059058306848748661085162158508424586154210830045752361926600292172986231516767478373702653652241988302913428808835918635090425918036137138626269513299661528258407629929577881998658917326119389798983223077892456463799990826443844626432415268552831084593656836060927783925601538798408649036274354971868630272736735328981976052883853811551051425678772821445559315397548270669513569483030786660909331190784276318218076391888467102237607397208935584080564656851334984606965989796262248751158178410709175395162895460905277037762522954430199780029357715388735789272464521784971850466632065616386984659270448562775132239767119215476860796257289891140001568797031157180797495930021711883175217428804942543326411088694065380331832216131465889771085746909716509393908690368169192860598221984139070922933332973127862298605001697728356991715874260671511108592038889397100105364433340838628211835974915606230412279690604239752975023045693181952457666678847298566398688921584012306147047611187024401291459526449470259419309144216922041387270949087508432012308000898629543720286406118842995851031832545510309517247749047834669778692981054018198501681191433893866235280136780961587439063930786129048731699525757427551271974181008981431536886031920234017923456842563893199396657812208200841047494500317727414234448087957907122883203782466094239144434557192890777436985082075175437767735392446607962570149872239291325142151561053845284282647706816241918874969448183164002484274161764191434508436077924281884690398941801228406758613977072843803758797615503796265175827684336437657458039886922222636640629540707811790465503946528380519322375317957345357127696309162852126942938409223365391655674848363356117525072869873086717558165062659752844859031729044076305217748350455721984646387843297056492533390818935320849875479993810633069047360243387102995372642154191122243496948286265852471689690588238030364137147962153238368692229796663144660433410444980725155518138505885328391597674432366540542320420859450955493706099473564834332010433570348561369598513588870712756711235220356307655157621536472594145323984043302929862520972387355187270414856713931334596576711836759671279109181020566196516981030469593199631433381251026487070594622523408508966013060429474475418776517391903562660339058364859600551072224990336231283168710413529994016776262193696769890294806601432641932582174691140622691825223264408742891839385269331014451836319783784731177342137493251272463857013075277239484706095804091606353883715211059559515750224285193652901817236123797411909824731322680352252129061082453273452106610063750283646460066539952116429629477754867966676006229463815608696785941685539698667668179108311247713055259028981729050117517321998831340699311390215604109774097813369375373617311111984513608050873993743631596024141776768796282584246711456878191060299116467468150683206526274725360954210720729246708073846286322870166369234031915814739579809574918344967590095277910484890509967464493840436261919908425255371289464269477053955263787384742719971353726125203006111925880014666468595671931874484505637400483478173820191553980655135219261893986495829345953143160848686444385313698286976042071436319624148514152250790877023659541392022590648304579306987115584520524906353868885008101483645629918234418541656866675254630987448522506801961761877967098036351053965199476061515247908322095799786329795568645217533873076796708757451382078500837416615242290772026831827960195479994530907328342176132877693923596048120829158337366995263823944055360965169767605725734987100676777722237778815700694391069041530109544258773650996741350043866735470366819292394772655540751261767807424502228377717582445882895106429861120153205298258640223002057915230504919922692302072521954485622472994206151258445803791587844245373515991681926692674158755807619346376672799395079675143600077685254625949195062478149335327184487696671957858963655712608304541871562503438440327334966089121267692033420974204649500219421927637785328943475527795656847588636172958058236911283727463005139876011454581817886559294909379303623329904770751679841759274939059942232112587686100247463227031565516004607368546282943494261319200443921755015160366570356610187349953821893561712828380547591206121933396630906516639144950260357531714006778878186662949999219359400445857155467647442782487789987704310561860511383097180142427320190428394488441789530365064668690558055717594950424906067620858009443373808144038046047333252778994833616196433436412092568487855331602539334120163076405446244355850997693086981732847119336779482856589390028742125729920411864423485771251867103905626966952293946211529420381003474469177586254841347529946620987778460841675070340912535654211681453234095897855671280250390896481772981206535863521499946938245360190607185368891495870901134830331398558112191065046393938030366509924807141147547211785795172577240428824594020519373256717139934229700761279147351130217721309954585230214840043824857200567591660122608790709198063738167512072001566939742471132642387771241788458969762481619505620241538998507010030827224263978962464073294793058710542565440936308170975915416404124303301315847458053868265307589144600302039755887324231653511259983825703073881230267059690550145875079221178812194852267006403777571061571956654176814064216382980154879813682094447019896084253306465171724529495686522552064498412444835959931059327194055572655615166225355473736613783108854298492928676667105369134018269735242283798695293430113426127952426696303158853241367812008758248458799509437907015249749206517581024960262420301846198048156659992290291117449849661763318911908898112945146281651425924589595208940827503276862988626562497807005241246416077701405380609980135533093941642334941006035264813043133658854032745147671785238009214749403067227653809424165560238669894838787233868261946596908003784412067806759996746083607491081321667331684488988399503479417706902669184547267270961005790943230057758247178052052986466599969036097621143025978565430396995176502108145802723685634344431874876563521883896432702027366463081571038652483826740003893771228190662658373369498322805900179315661053062796479526791522036645105099546497926965823180008183732940337090400992191188399793454037228001031712724819964834405168988685445454208018005284588244663644658939630279010616244846815545773702005061801174626975433442563992441396168903661259464220062776239017488404990037826872094297031893428112670934148005311714043289484399822510981891515707489424078854375490855930857770781206875423738575869509333514400023437241438070445844040103428973918316864191351035951345769118198560135857425383141151002864789475027337845809065930086636064964776846777975266294986589564767172373018184916211795158459778058013333291433070259009597867411791673549790226887247191345628390490310322536307548951206259099047367000197231563744194883828795102104259677535797102312551876240639222694491151715799255807742847411428539334715489668305600318132887335120005300632126441079730353802289425416168541789252328226412085493518919395190750139480942477935649733883595035623261292537311869787316270173121064858945824580624987928517635375344453178781155955182373688160929566721558556024131217662878914800465738340781119660749629360397497176769832404009483348846822099085234525375162617152428962469243980851886341938192991091139451460926247526250897029759095195478950309916500146025800254197302931976707450255406822002741078202266334071622369389850778006621545837442582363282486578587391061941709860409091683642866632969008690473568769385722239651276235047465554069968464598507583839594490896162194944663420017434118244350106324901261035132959451924788266704131966598404804683516930850466372496503940524157945230331214261197056748622645061590939703475214521203994811005389248927203558252376153087758139572642072688624589759032050422248014056671188549770631208849223553024655468277649309362255696088518712320985347393275398878372091568321622915536083610091626445788987925361249855220317743137637836887833646916077715178355493891110542128526978217166105891386772933432279183211997295782404960683835107626116480363321104175012976412730075299520865169593973729214388392686599979256749462642428276851447736555416642083120936536493023508874467903941872438852353817337377087958182656719599876027081831882618501790576071020892083861544614674893317207423095798652005268565029359195735955498336601544799207833732966510314823159854646624841860772588957625107220290451945315829427119164440314456287881534743966415102012978539601591696238134272710118511252549824590570722187482276415358296467255792373455485205686212822476220731616573022798594422298910644380372122332964278927597956722949852664747861240388605811365072632745351990033531044830022894635661002192094043382048840670399831002951197500863812109435706356839581401569420524073084808219943268142224432499170573747203322220787561122277124463179150066256295022696430473349201013773662237984108453073996370205890331320252571249024571747220895134999814791844322079995767879757271427616557626664650528980969059872172677885538465854956792796804740604798872548630672404743765848450630566142833303894126248160561400900004672603852510577480514134347947427635113525694851109611389184797522573180745568309487181678302938034259344416232173734437001576060367862046447733055115895137670655086577864742871148570228199378216892684142341334264224355890014123171573997213326518511459053620200249069646274818782733979130759896872208178896366222182117868342800568420558634639107045205689268174385076268645692751017987652125055269539897031120425249014165123540085943046227835873229209921222369532119387926665956632603718565224057987557970817326838681844776889964359532154079197499066028938615187717319062269219318064899799902933713906222619907460777861976623801801182224782335190542435980821777952412730909648839902423666238899519415775080997641479940857534020711999194258238451861646873244561371861336656756851373364874246023340603755113979296956112605551588053209722493685494380618170299852115975668861399020457936163927196995828561898922623121078701963365157885309399126394431331043989677764126807027524574788786077881219463584589540654360446174725607253690770322242329976017024717535991645663318601729520578170319589593112833467297588660232404931551361484487114214575457943094967213184380872605284857582057502162810419558036456657571122330741354670043114625312386255680940287106981711872578080717210685162139535864440173137881131795199480942365920592525530612396400417173667906408543724233334705733667017258939079102695844807855280867588715234848951279636812766279928594110927217387885243464945688938851788449422661249977416917877291787342416138944844836290844863365116762022554223997781530171235632664152675869742758920869776699580784462849879682931697730191091651283553320104984456750622640439990136532758242761775837634440176370848370719668663256830702237413074763677871653045296045200786598686078421722690097653396915412053282573731686835305526673710265616512945342428765863900564642774830530338378764692192413766827649538941939234467576643198990872843919865378012895447153912513660514788115206483713664645749095535183448476013116210055708219708039277562235674763533924136557926376711746620737644821339748811133463131557337369680853658023764600797017880044333301090521338547183732581085505705451992526267253648103518774322614813689503567745568848254317101347771042021102382930952892810138323517691403055830551641118986650372519722390302739351838326337860117479652707306680733369417172263835417171439746862253304706398688998926887990563639659900495960256846295734658527165964420164107018512587807318163182469658895874320655007097168195324342369068480379234521844640433944978946771489259099591458313729691862718632409002353443866988917626117226914439178507343799920035883229593005537694079207966327043981429195371779566170656732801495856215080765605651148821026688563255584227974834784961593306704697851711019801452093039310787689500738982057826147155438672105820028373811872494031768275499699523561961381756168991488933858058775074869128821296509880225293875285261278577875427678752557793686948186593733544323590278304432795067204976256129514494493484193412338312067309718864493406888654185954791749858571917714110502371879959309241752215533917638971782020545345306200541644322497414095672527854263301870465910174486797396327014729933654329286340183462278669226441341585977027562541071608284273876015727754765338014735405545345222955537139776860419894818690257442930781963827014788722432574793975704531409809509596268659860991887620638391427017230803414452258742642401470787001064642737597688717041127792950158645134700390887787318856912340310830351525779367294259464593383183742993954816391097195502283843107694760347570835608928888458518330004025296067706729191150044904606989662761397893255231017467585298885319482694519636599469052468857132668776197770414653507715876500692497196239131809242458178533797231046374621155713388952536567132825412550624302734733685361350892311554360908895625274173266794604551242951218486797719431439889309892054782603085308367369156138288453129657647645659571805438861604602389590786036326498995904816430781399320815590547712833758063077301533491172310236006364996415258250777693568133400444703627294880582653480373847130527240213328071706215183743962611616884280469638791149144832006741737732349505163522355462981823898729429974398087487851825906728712289827529508774960697629444790691605641994970646240372175786642671154689762034707929749741739499587972373564392613621330998317097814082292030622460414953568076029342528356397816916332035789629869710923541003133213283667287307316104383234135021604213633335738876148381138809781951669691875721680216259835887331415972308076442271245185226590540369651772984824634753887509326005043491696281117777198139201173706843504367474646937286363767684837182785749949286222550712830967551155871698393151121825546822326469165975598320735111349569735310752224231371852308127395755449891949942451584132432691170317597924639771731430076608014312047887083001565148239799722057138885880854471076968081404509223726223155371002064681327886507829643272169264979616920976953627874855613779335956915797884736420417463663151999608507025197339262677692677072243022866909960779576120886580624774292958266945092677155552532451784810089584761698305111589864671108049929698828574903953018747119731992584033299334927680552144729082045286219419685989349019600355254455326180664879123945642175327077398971254886206085198146947847745227431061300391466744845061794468057666057715426627683357357784871832780291242932507420341770132717227619420151055804847163170988911184582758693064237823969070507626116058324506051409218343347269530192677941660240098105247020652356702895049909805397104507913660789180305010813563099380691094234819704018911068514434974067570913101783051065767815257270034492044809044302580413842618796438020526133656595756866182251024929736241808331701565499107822760054319052011234476558469041054130259103066948280552750242797977881213633233599722460197672708216072103107330764845030018849827565880110040834000401224027553078431639482987323090058299885004121515400782987133430242258591897207385355897806668764874796143760533180188144891302727470837501440576002311924732535980989870831953731110750587689744633746032417208307767505909409952123997502957699759252053196007222605706331330091946075561733895805352024389223765959720089853348013536875879761041350952963881727219824291215681653437109533574480311501728507888575963910102179499437919023833197680958331166275522599107234417639885978695162127657737714912093602295801956699205414610334386520254606355355888345231786307755960243907213628771196806991978816149040022232336045222713738482434000929455569643626465665711718473243428140566937185139664662788322654107207736579526373697412540587107907502706328445010016282801026176129835185636354329280827948356274130173242472666498318926846695483604266560080685613493946457454309144196360196105808211457635602770994393001231179546477646241496941907029088722103049040187333507626432801963417345166245090920747688552798309385245025394622098697648970935633533260441071110940166096236808897297090296409521921370815579987406570966501255309801522045252261799875411408957241904995117287373682625521631076287772635334147079001873872922058044065615819706584207280398027998522366800702198338603225038436978680703004707781619992378083219757370864431266856089918594874687130554357078527495420894121379404248873636092631457932090646658011792533695379471232714615789627735256084274345005435299817232993231897103185984465437758537325173297293288529869858501942143919099440682019218038187705477178451591018636482754507897661828574464552396462603174005090400352557733884707727730985123424394270269762974656965314039411343049459924733687285201290254074303315779105502304228283083299510385447347552046871374450482517165336570836354983471565733319585770330289019697945480285820466960674611675408175222971297510989072402442822360459539616115143909498756443537019613841548222079607676168959284838751459975143214195879315605821446587099341555654050580625568468754277208834557216104508601243442483831283235840385805255861411057343758489272497520067191740220197397070767189702969125032234368635056330795575247791327153815095131763373343719922462232890058506378768903870914189748846059996134722160882571811741240854431687904861925872533706461114703765052906512212452934832541079012861039926400628049228009090741031204453721428686718944302212588208787581131233328096897166557965003085643990499644971182490923742096725643838666277241285137777713653031636217270115522107289673650621664401559627633666618168603720141012824113530965224692968006295279198652523917904090693600192314936763902879787918478517378848821409523217754146820577553625963035490423763947780791403015569154683468590391510910604151952805602289805945060680078823675364438143159751205185463346454225232153869558358313667853818701236481187968805995660105906251446708933490959219987417658226397567473711501359300400950206689169993697091969661055969313013517934439495257821745862458087381238617920125624041672656425049599822218426256786913410663600367426092903415766711250136967621291256008373731250178524097055904876365465405420560514079355232452978104827316488664586642284750559004593960305579746275013529490524873243932416298638042346522759371561325579393614847983351387368420809777294645293185832738322651521744292567399920366745135610460756002704182674188378353636144751509047612675792679714499193402149548741951571446350795480961869075929228590709350673807613520080982871701240824136596097662949063134457175029967317443433191533770863751963488603888241888951577417065982868056074129541650281266626492677425153206751462739524006238277496594807724237304691362975784090597875460873954471773374556487953275775635877094656368070596212649997362656495053000025191896354643147086193502628809214936921286411053466284630761847531986324919727542562681247405518292113087230859337777911960053003516632379044945020662093812901798868285175145570546741784306794965140898851856726331178140864647919419612347824380167059005834487530316713129585792983243546005814003756060922682936663905279720746862689381534120283285119542688930238092262778762334263271724277036797780256834895164823026316896984246469138826855424003059129962343757138333345735818187428686905705977196171988111232916141056321106350931176623257179188332093431849749539189632108282010545101460198843159741260030976094822857512283039838038250255452050532511269116220010576634424854421847698674474238724094763531224067073095006579311625626356182875033452265556761142689163514489258263899739877374129200761279797025721216804263089307208195453797608550456091147923561125169831155157380102726116798235678741601347357540011836673731490195951340286614906199578955040882300392887101313762006983000090250169651075662428944531359207114833633709708473760355644292348560317339251063886909995829240269177923451968676671119101536898748896066634139899521146131297394374095321938980629119383429048322488773350258659270444016486551385230269249922725510132845688755865018711590469332361494367529067281303950995138497276287139629350688106778959766571990726974133225758249783605400208196223712502344084160580471276193063278430968982340583052494760096091350932528101328391976845979908400180450638598020276931581169327353072378735330961838880912283650564549645112144265495525417575105307898265531644437946960731168934359056395609070585273682061560347663819538017408158548087762395245817000014599113533711531729558038505222042159422006150062715528067041320012521490646437562587338979041222957983795581771855291781539898846589130289618164578833578832263450794139877286286963532063905892439908644819892813643897242438828082646090552885402706234612215051711327955952182900941198253730145852613357112205194158498117180896359658638373165287591621420382667904243810217233291790782353315378026833531372707670767449909778184398384110841278504072768041655435109280102795377385436055590204648770441547790125529132420754979588676334807442926734822150236255151362051175601346098463869397643866252661117816864092968491247353085551160255033904293965334841808391641564796675784501142535222863624152999035861243100024868148781318217621221127548688500983597451508679882747041486273078219871690665198761725496957658027726808232779077541417291207723945090410700157610834635185449841000488605238549090955580880047928708899527689837347312229344865959225080683426713120980479824174458284219696295997129561293110365300215993426351474963238629750014398734954227725147694219292461460403421286364632346272128788645900143657791206569741620789078358105030582153763315734413151911971535247716766204969131534523143915590409705218586899054856897390052060991242406487594924758387052536782404877776681314589020225060740305769305258886838335761230352719295751920066078521821786468703847768365700701181408089450311416418052857504696940983042949068169231314038660079302650837836800951932003291327454532854154255333577886722547793740220853723487536942874593846980302557603056486970348429810236707225349889472445225949404694975293013532206670220015143848013727553735790071051410803082543967712510103595555240242594167331533284122634236409987559210833854384287593835267632280215685478850071439395536974671764275186276058187513689555911683351648937169480275456350873339919574996223918891468969735207251628468549325334133774856485580057770333255719752483650634214660769816286156958489550013286700680253973488282643818261519753054721036453539856575116456544792382261352951318402261751195004324714139965520231995160089711043698277442050725504461351351502495932995018266371610336706601014884178167275273057580138539988831358528203749419531091127022412647955006115161246387240872727217483308157971863205271073617205173628139147641552677402256806295957369184045263675381828463832117605742710602369331785172492417916427971812975110388945798169718041007340898232967270373550606555638537770306309444288268091458196419832033707627620242973913709297944651412099321256025475753144935955987848311565421207982196443095216117911455425751172477315017397723135323468955047111403095541794160230354668845075479371309276224203547896392439650638871398971764668164289965819905781799864152343073963860289455356749623706292174703550301970298767122189256035992634807726945674073993157294004524751537198687996843126861839004624526869743873607328670888257799668149081263431856382817664494293391131383059785230869034307345467668459292894393474328302433981863559191972202468818479302301680111294782772643561767436969091088055810187138934424773145829677704860402098072700378674932307605842405980018604505391988764154823817029696549760333650780618193934942233217730696339858463964690961718842318545953814830745097848521796536220065649816890522237710077149567028410474757410715477604914243168044761161191634956225380810237648404984178448199840835631461896306671343739409490588283981980485150736922053497480975827718511642401600476109004129359665369337965780210471618336440826494549228611340839009969501339700880363220190114601490029852028571804676819898275744140372132929812376230781552468381074217922553498967123739957874663392552066259604671178084079982617639806827366011226336569339529266482614421367920440788477468790239755978660504603461458136426832429440929984854051316337890886011885415794054050169665062402964053446940341494645002362293117515610466378603283236657424720047923153072480851197403694051347117308369907704623474747913944276705813390706057220756331764761097063349209049429224558771749323132784501847442115427154856026400159641385609104549778323388942448630599306336408727869426968771881920181197426947809112431587824995429146368553120160583419649345498939712871155193830715425097553714402511814410012354563624927460226752787580502994346214772103877575230237373010831813468664592359623873953719579061322371643219380499621330042228640701723726662304888674171652827364956400377094511746672884043949484988794669247168460861754610297800580384523910347596763034814445970720695629737237732093963421743415071868769430198242066905232246605272469388925407613844802135962170235696672621988808090369423908066110264073518053655163791766637015012046916068810778837294848338079504941220666705616037155823018477003488583981822444340634722764283735321518391687255837486423279109381021909175064362615368351007011273670081162753593821604158175917863755457243568051708614554729629269286158176800500220114838984222251363971695975153801204945477940911750065976103540045659737574851055158615492977610375810662367508382027186218115854479747346658521600622377203332273072597069945622051906097716245365805087455278884821453940457821982494775242834367790581928226284581628887270441833734036295511476113338937301406336707058356709891441574594145765119069370767111636920633506908243817971887771661483662628506785824610407240891001244629264218282526532392746777204286242760004725403835376417178798229290180941950399042745242297576557467989550925764436902141103276259464627987543172364564369296062801607365677282863058346358319498847057184933267587138164823791614793667122206454854217091365058661406608722795338723250065049889320707079371711011067988081204937186525424981725753768599533645702158218478078111229699541851619737922021508235177985200588366751105183198388785875462590026025572511573707482963710884102668276572899268684733131845704837651672208918105993992863730097737022099373333323791947713870776190349153304199163488229072137784228438651140816418006386023207184879056204257088426730138949897371445881643410063275641818933038648986938869356984495430469422771629942203980905036469580527756777021059001235504867431292304621776972759416638873158713573220161456115952670686638439581248563145818857324264169698156638641368899006866765283530636537852311134096987027830648373343156440449680218313572336412069607927328763023473972510334264664809099352453269940085071051899514642993830897759747150237932806080562150484046324951047717299313596434352127294686060353520409730502684368537441031746155047616851840106553620014023879196882215444876677755931962559009417427052788018197962449224595895987193587461288102615414839329698595527333854604998681774427596146176183916193446691875682676533806790068088964274633910744562021361222536195112122991790309045852665757240234759793646586405274650723676373805089978709270945444541695311725421859885605491983638595072700725657268250503657996633552293145030640127041212981501706615453871905989530750650623320602413004462070489816892321438126604228449458661547259797899686763134437700666156147480881995912645175945743706574243432083058672652616561422443531319817007634511410764900640795404502113289190736005781698990155775379725018028164988901041688477429007697025795705119780333141276126824275984182542214439494015072541261884174334301790056433563585667110350546509669982881747330104282639260444326580298825361055418276234399991499376749431425769857803464859795438133594231174040130777675136978222140307531087351455324210990565779024946312907875208995265061371388212056065694697300271079450076830815895497760441804867248321603188116237124948576460747960539838914699266929680703207896375596504817047837930987206521535570723359002894514963427948038831121228626563536196241701577558458258346258339283073720288333612899232964214673328212490656544533400328437308986583333538177672099048608130616155868658164570192738194255351602901297794193608411167178718974641401394522126532834391216360837261672264705836288240527725967317922965220243165540152612070596613892189997916190213937659083371595375043994951421148579395480353775151506354807687390290412342940630952499540025680274007372651776975130230642961253534569690702805930181018271893256213406299959232884258828083088814755789716203838351145226780821325313797262373870343171428666857390781131447071357521551537612497453203480509308154088884759920767377728094048366815637203193806582297250305838476724771685619228831718227826579047760491374527918411851849568638873903488100878316182541625713760877274488617992202203835918500863029480216982918772589997064104349446764724208253375683474894854151341107863313471809919292440642274310292413609383401426960622584009747846757980579023591778653342667767703908139452407181118374757910450821326125195570070041015814582365703386286087630506541183005016085660165198429600392738281863335240187854722437932605735979058829262589344139945092335135523797539062763604218434916571649929405330655872787381885134152429183779644482274836554464104247262635665678567201432255783295769571946400240355445109697791341351599293837479086359248059640641654705145758544085660764902144753132232004533878853036354175271342137146711066444313414724785227113089759283264635007843478161944527110674415030886562035180618497867568711591393624222458163890220533367423397692276421589442584134305959849273948037769904611537020921078991346329033508087605481944601259826242964160143647707813398933120708402533306429743537469460671409796184197223442201446832168840033985526951373329673374129167160654109050326740007950244241684428290599212929525941170516810401994739972040772835736508593714348987767273817081198155413407922202556553778594677960874325753366411059776204023341426865334732927426211536330249589571552461830516788205662520744439139402680428359093703140943829688082763577375389425086044437780950990794152217141666074650807376765988873380720863377910960811607366348211265547092769501819436009778016511155025414177083915068040706239051294799517324528939849168799667842442123391021183254343156533503979231571443481398226182202474211384600090969640826403957300795623731880442633890339283210717189004589297658680886112975746981056836099515371422183789557549411250099184150234415516778507448279502182918019719670558740771393482591014920679236940554436657545466344649274902885017191911369450639994510674646303877417988149910507208949301588091323535040370706142718233621887183201263206715415577086339740149068571472788299025971500045962045839957393349656961264861883348224759544031795868000617910374840216151412826526051883202962649994721975677213173167057903990597628024236399035373805678499834886375061241391850807696814103875267387833777023842706177208077882463940551404452197774995146673993527833676906254878813849904204920926101833684924391457670330908856792666162078147720148621299088646362728338813916753260716249873069494428799436846447951001854691062606697027331611394581790284908143694697451134896714893879843704867878813187050051854644661646740293758590464553489390829855404084389756342687385448340112691029476086219116437660820631767918372521156132211349403096636975073442955612406095098296560350554049926002883713785574780751035071277526001835390602069996040355950249433133691429611276838951430675657122396452528689774087549716041339449546696664609963608726093609049206433845699302557339935228128705713112801424684532178116009453176281977536023580962487009668659727391337990520579869643447038861554999444343026708232659529376335676550153500683444954707704665754736502224615503399312596817791611279816499321689807129812799057271665289143711071359267355840675108158545791064998861249877346651213672391142111993191010819292824992683487510226634912003493078834368815921845738744552648995138825162192337823312978312276420009554650126183023660124365745798836154107977923563561765487501438498530990791737409912865982947208356018605559326337513026371455233919543003267021353209806587056528110523419578008812378183894868452361453724671679670308669192718412030513668525285881182503192532514182819711625106966085957682624375980751215057393819419074795970074034227176840893772653841821896053967380079405767500360050833075796358836353645482616155477062942695834952100077801624653825892222132346639051309535020936881321820805491697527049456609642732726551740213366263474002512987053145235645558548532861553865099087074727874967344573945208201358324146031880335491472412913275592323002929312568804627710730431032778169950239358858095984392501910694465862745523392985689950108954550595730833797696248054618552007184265396045204450993956468804477844919843896902173333315324721003756321342216784424614145568705559181427932323805767051026129002564576337578196641315336857278586834204399428220205239389923086642380839337053729584060069476109435616349650235750329673141001811530981853583022788918876941633172341266587877997992232031169161218058470812484036460913619182691993225668226212688149304554151685031766968370056406075974564608888155878393333661789332601044395187977650814573120628220721166173715037442483060805415727443541100146094174366410150656848433929841440521505837073210914580782788878982270861395865553993124617105017191461645613247755179244514879439035943284132780196347591387415788876430552665064077145391644310396552610996739143134365018409839598444876136621398652685897131089491458435513115014176815455431393312337075091965014450531151064952081487568607499226568617108073000272607919955396307151945847934420470553520070113168241230269074330497519724819786958491212631446348482864124204585618789965288749143135693169615346127785209392263027429654458499107270161908205142290044965736010541775059409697248296671202053773091488886415750089806526477200030895257135585553848054942833264817456891854989952438718106084774973421213571022522186394774984936293557173626690871218773583617179876663002980234955146750779162528713889601942026289980862316835557732661338015985817754792094857786172274557476657545649460668427867682510347306665967727172152764842381935162537084687993814577347876294243909050253112329876265291460942837418670920276039749692791667556166638477506920056974133532025385243186027941160280143699327064546086338709658549076361892133644267922159703759557720363534200474961172104793303416049500212811558443344745640927825724253629062678536512564926706149064796530385629459037739356120173653199971293097018198777973827061798478320958577507474835032736907394206781225351028375028682766006993819082909033548953248091430122467944685628840294393277492821101902029027581842500746561606348008795878081939010510880807570198125590508376323729784589024620986837460318089386607895920547262309517600157816468943303356358373636288858441841393299883788363066654817647976440876701414674892758513716499614994206510756254863438921120648866677830461032022383989711603221691388067659416589402104907380474318021687152209244911428613344163545003004801817128874587202463388144296762396748240878667284249852120215133119846997464917246255467522049057336580804844414549486501062151587516378537969021508399185246623523765934659352863480975681495582330107482994236411890761908221111017626009938680233629448571025458633231088192576542351145496986534703055687685223442901727086512892875202128947401699233141265224644278420597298557994594911050645331305685617291696503313122566655629810923405424158980428820237924476711529711526647518180259273079676391519405468440118334180334279580327175712656520457741435824201121724271458837819573963310322484099538405884625095269676711406888043352816385592567474223938693840777616361719804077304297587345962417077898291240490679188356511280657135628017472406380473771507244547467518923294622506996411601787626647917600639422800972158281814631207130604861850259237467184059265569603968288063898291380067769238049300420208590846113913603824582800659905965082159480406362033541429158734687123933171979823173881387394967732305214792739335783846315387250153011287851700428649748744474404249947309276779259760893866467130462169188308088346375885739010523307707594140453013243324382518622404659381477222508376172753761289905172570692693995568574032722644125898503035935989679551224310305400024673035435264404848216036521278271706240972934770440130303873022041388615771379485922485403393370930811882846790991206424299408983636398038374452779258205789582022207756519287226046652680718017928645481658294391429689781061089908233293463177017037948527365603128963468951642710289905619904917379385641229903488920530360614318934808186509468174268496790466897928823502485188029309316527950624274678490970946300216586055941713160457283952126972086899647101030384137806231334106164633915581561317068206091012110521713751277737688689416266637879712484996020828880069163835431070406738274461242633401080033176949353565143490699659750194230970486337740454181397828348940920173553359333233567571420361748949779334167166928390982862940546758838229848797033396082051550006522277477276668102959048641437964270954029423001919679681077803009784359233247015508825809088753171921848636270087469385845929158493624115847268897237271228441686788165861768997955397511197584442225056669379590593018254912771340748822050643854631370240123555033350838113291616655635870675208800624083623758082759848075492366365065786478174509278047926202041710699811764384918049027695559826654031904624720213186620771141097694745392515563069214296854936937051091768357942405849873543280938503852182911898143582284310799238894592226140408544046369581319688424055810112030615388823854218773936718112201541338652846137183195467996320356771924893799452003137273593684153657489533807427456369404605666677527048771171535347313944332491258418031964862911591284836604539699262368384953513761325843897441203508001695162359152112071005458938168665325002797921128591889383048437213870599294050432971786742423778078122918626187296165520202558005441983017357866772548032085065240544864579095678920938242473346652701322367103857338920100341532551705518573650320711607366094665916585057600447956240890427380555343355705134803175771616748092071196003154990394558794970082211846201211580361253588644184362997459504445182843673659805367901730486678583788150254997927000579447524547591590252626262007942134894564479496648088133402843633598672111816260979006661125251462047397658284708226590743267216325672962897872198086017657055206329468841537396557151144141694433508629637771247217023028028791261806817364107301986736406021690392335925447568394808583495383845091449183410001482199456786493138773292357652239170194238077769468064274265599119195068055978818109779399343623711408288313827041998891061208988323099471096065054375695990256453970549594629643646733359412864754731237035637656414775991199603587479308081904239997251670441658208330021438292036769698745115756098288352781804113900168023808794723270790842722227177886966540762888302019739738391362820355531419534870338771141283530813682841355367650667228196296482700160154493549482204976014234587456242225928800687643461947987929860217314321671058105196740415140673455203280737681556790076192321555039002949032507765091424445840725916943584307427526044323159797261365222595601163315523468157403349717164005197067507421574552587907466266729749864918031651678398630604274116874063553689296876857313581908128091810368418999043935186581973529937543982501161970442313286682161040314877707100605347311300428223013056979320082905294262176028106502041640449121970346254291690484178545420556067568996566832886681076355295315097193979406713409345711353379367298052742954044820450531404887754739865463643408691633528086502612931623283677208331717324449640792349057809316161888877229443521951307127381938113819601668228299992146866957506383625693589246980668358185825164137822826165934303585811500264789921059815923824761835444150814695997567831984871118141359521296496454854888452028617522813121295690415601729172935680592570319633543048576332290379862316484504582108748949890600741502871328563507363260746403571141791181834104391371102099468331895557101858632105988051188280222745614290103151841098607592136011619822406383292951160954860187940212173498341768637574689919477338746741907042417268242492026293683049475801103757308295548996494809770901161726119468159414211345068535394659297808968114693156292488153910269981127436842053638460410196188107624338515294356534344267080012538526254195268522220821734099335589249542797313519076517249789849107488123537396266887156526077523608761913194422886361085069509860821521721327151651204179570526964691111888695386211632955490040552998489941864798498879429556206484131307735814479453149532298382068629185524287712948659593912170204452502684280034446933193814826920259255286773395132811335877083266926403455452167789558086714628941287829436034952738440045554972420121541229924119687208106911646607588771843704421600788724410855280120431996730383385747209864506928363644084978835862003275875937858901275219915839998546610178094908905085643777135292310510983949086080686261133691925696640480829838578403231468938726174903376983340229333592149418544462447278168484906581050752151345445219232270206991228965275995828676659014191260901318613555272479291450362558546809844287567158810790443341225638255926926080188626178087691878597257559648831151503529973787641047327292479910240382703183195847082470862586375130915000116209942785976188304723002205829070399205577483912582680335167098632406458343020559994867620242812589978152094594076262371467699307483502698004959026212151444099011212424931904810364547996428334016345959310928031170018330081683649286338006115419064390255159587119903342730196501716184777209789632486291614056242620920294418090268951953767808958591207131103095384966346677173322663801942629546622774853679998374416597364410052159091158709587839577564627448677519227773191062674303864039283080544258985224193844735095377380255135133357447207624835275891397513113144112781786230602395024289167134687653654646817288287730031598101251274884149615835194016528459763186435299550878345496377629470698783620131435951725107744493231930201494045205385102613448733913027182754258329662966029687024534014050037744433883659656636812081449490661256918198563285402468842021847335972507417266869691663338634303467580227160109405814846075785991898751631376039028823071566853368954105611982555861014236898494715646466683102205233282470369041143220503430695438922636390027725264824341588585457668744784217807483951980883599082168168820189266430309507203884624945870726270068851550245728958249180907556863671889386786001784077446066433226938703109115697650439222474061289290190398785421508328469405441180165803174176426375305178983427468119917114621033902025595025022076849835130947590249739243209021282858100387354965425274496211758468699420684449995303093570834546610002956874889384983349759224751187335656903310704286319080978380994383527235671503323958797922702610194028074063394608539969850045410642884549356103588226953364295222159404288042006511745975912068512887453907659241793366168755540740055894479097375284782953201298409348124712840315248396484794546579754081882811423337525117270646437481983896983411721158348872153756718567905221919138024062121166128036971213894102397647919995153633618799314760152765415691274628606805839282603352840045292097696651883808383144065598025440519434462640748437164502002465011958882649708811599520072923089243317945552675359442554568940226703370290501134966528161602789798989250795659839372377686585005087566048289068504257861432384353087581680726978174092483350237667421704287329236640698511238994013455897398964609070365916438414146457426978308334995019835306767435366216482625432717614416742668800514680775519560998332776269148854262094751102681607629937858210110794047855704861814285584641491549515713926390709801537300516625492973420105533358378383130035803726829653364628474787398564283763619080812015586605732300657915028377701785481412445221040601272020821194069287909930492768410120247410787934329544438843224495131973731459767607143514537828400915392022327950201474728420292837827126151998805171416430381244727911078697326132720934088777989456153159057790615016470802067695315945062449619944044317935486244571833718953350300003014834205872596830350352192464597408972506282670881421806449335042259337385633939520854687413585005337768672142684697420652830303597729514965562263515135493927629039341830540402195081943511263340607003911192874827169140422515604906107851693961680688377181216589632320245917987233086791543328290539506829556103373530454392909849835615578839610367449232369860619063475575932134604061886873002728810338809197512183929393098354817539530727118253885512573552233186031733018449315928992530952423031270797464040242273224645311449614666103124800234873986916123336154295198815823295114213211617401056758402395822832639020244307164589748485347353841349569913165722030344448811100484282252206083440254196828069089625928177434061453721342690347690833456740448148095369078084236804128596005594315729432730628416500512389394899115574261414441613403278020192219309935046382878804213612812116852244508708231015379036892423817212305073046958155776268039664807046746595877766131697976921032467627311137966150711878534614752593011278834910348374421359891814573182604504433995617648343120107757597742706572940014852316123266683531593274300721474480568331464206597073744622324304869379227997234326118675314555147661267049147238930998667604086408247790138251359618157200651833594847217507424838621251698430044789882300386144854827100569284172326517585958326169133349305065513367992650465038520957548658297768884481458085443850189725575716982052454407136040271406539692741240087839395501617736529197484590461440033490481013604879568643257955542499552412642837955079496767962884606960279779211318328067183055146269356660557968547169940904550864172158148102686650797190311615633554905002720366358294943099000226261187165588180384039756507662943389723944776672689339830577896354949229945152155532442572674853166435647275552759628346731535061052135953101969389493915821313749528339474696053437514949192233644023187288351018933330361951328879141371178051537234835073078026922894905615384759574528230265780705797905835206460167754309919528801111432430275851501790146188280811447349543592138942175588946332605768161569381810990451321381189031245814133621346141396607133104623192559988071761166333301767879963914696052799192561690108280259742514000549288577992262300596319915579598452660107125036541167985701651267153635509990137248068922746660894258270095383779204547447582545194384275973984542583548560868839788652350557714456561446791814676386253832356101029461138170009692230940665486054848796983615214796465813506784718788749481210438593747255145950850767161500059334856870434225636731067911690757084008448207109711146120555854012836130073643556656054604280067503324588316863543475285628145233478465783212638757494632909951594929751998399414361136067446641108800085389729290918102538202472825596317963222281201871517935271808702890625982346088738974484176741727424504230507269140066798350938695003595266288559152439923535895781955615327362399276766342413521184710711930421525012643366523329464762169946053130977644711485256838921903795663612694986572490988056751406396581376738404355020324261876112674205553509503068718540152011901845285928900520798194416295794717042516592148091835254323243509557831770025216817804456132718088084242239813937667763366445153876512045740906976432709340589182242182874415939725188258542077227066492434309066752631711752779019209774643351621953526446525021633087459659381820578163005932553414898927384349651866831442255431597381948221509152012595768536914895665776521438355774195707284119835834920737090054357054527865559847093549269555846386502598804334486672719403301861941065364258232155739894472365625586456297007960647630815484007039322036499760007885518311088519566322607232621782610372061810600418465829462522834782403055046312655464337340742547798343373552348823296061716194751535368595976569188465419402727521735486448648300519161750739040366506891737470398452399447334896181165770308544383600061651901734927537553621443710918879947450292934845733365908363601239684537355771082726365328004028655742085054033285585771172707179509353983314881212431323202289395400582146087179511734988473557815900001133536327600504208924618687181333802982670606245507722956140800803896129727730180591675260056878342026240859840785176191025429479428199536162707539151239780695625900444222842562362221677013361111877606855973308250163496949058688111732824495259885645426439594195286037714032992270600927698235168869720919427250129036394064588163443977502497040631848289639774307718911635301112409022918889768298449768859205721728851204211628422445229985538559188948451318501808373935498076072938784682413117708490933064262646694402506922778200407323839086254768650340755189006473629121608062797495589524587664559904903783150072931945452561227561050272676034557363325462840819000220200527365392594296270381667026090878729619211962173435331848853634913332575166596456785234714088631578507246244276378857342705124213062237702162175441879194431139946938314424513346093706687731946658550612624133254927251387195389332800981135317231819997004149539658915039016746539215399173719920696002385820481448380907745483992535703108199036412565367572234745986740158122022292842293766932279467561673774810566153845367955356368743978448118651695131702204361296568351882856195622272599529860348568461676507042799075726907874936635453549905611717486672052872384232685487802241265499655368890519086654771460682096742800550578563889922885972354709094673451799998691294196867202931024366899514247820342725904092346215641084192257035060245743012209565954264866350306879843220007207823860534789954990585143614297972657220403244231782627011912142677357364321994610999952862952340485705756301052858061529157747340105187203031500213354617146710158790484421295028934277684281474992791480714004661230164140178472226272971492609500714804981753293594832767046267276137474220664292251814445260122959982225247706395627491985402409171996816274150040773214286032826706063059491918542106055306974872242942118335958582061052722790675768087755871123999628884134469058764741264117191500568091536007122383267866374019182740779139601304437451122744120582592864119978816093115568912631594983261444150149282667100879502122745596066477361656731500406392790040740453918575043910941435693610495602326153941179170643882569612811570918099923051850318363532801631517972682553741201645547814432496257594180290147521351996865783502515020185726387392281633730737310885534899178926707704236185367277686094008287928562842977827546076900211006128914881776297970455274679957302635499689903994247407496445630986895393879900547047944660005275725325511897265197872487773515267663721697185297318383143811116108668032795277688304051716291017737627476687175794227082509374276062270328682589705600804072216602552825902048357155674307060551216226651063055928139660497829067073517672619376760127282724420541213066247982565715033630322136027621084714664350697237323285202329185378042648428085710090221589854145529688193640648301802803651933929001325520520258435316378898770448208904827742336293159553312379220162704795754323445190912045410834223751506971638470546338825387021384194345167978027685487170360042212294759858182341805242576708304845642867188283299493955701809340081749693198294266840543823886409769297739810280528912216524564256541547191724401693717675198361775624552730495445636088598539328633103811553792813821915188497999588842137642205843918499341086563862449897676822035264597689012727280774977008235499991859076215551478613397680552823796308132226341014188638259898085620341544398357479502632398733584846689378022163169664114130912415888980457630677156342814853796603000309295334712174821115284110359718352780891979183865582079513522743474449221751719927660350927688187250416048848513646043573827983048407333553380413571712326004789648904226395795966197889980761739971207528156716695886905201178515744355141099594197347113679772956868329427776961290399449562129006738309850004363576116343565603538391774617009291305156788488938686857324141309980924998387455077090306421055671441186170622202324143706359429017770551805241218164475349316559045897513674014018236309698098765674673431467023680164093462910721202052387104782423236755380756426364620025702959721813288188146859883573983732270234247416134039191994649117940235908794256750488428379691374520533986478374125131868374641909118802854090960887212101872421487127579255658001052392660262406563601898667690084641410681668057859195185150551378419745308497649078451973917898068454348876909709222686342668241959085577861934219067319433978117514281166073238947137123416792867314357905351034190889864471364749810963078719434413094687885341214751410086167611783545208396714434062541383597908377752744540069724685969297723271678624035409655675682777709330948929807486981628317852320468256298749925627510906075701454899635156216363817782815463220098821685000207192244625754789084155885298734443602747761016561228636267120876934937763334521356690955234994583347666591005304478259394637302893241530201974106095201427370041335451440896722668489910977458916129599057387144221448009909980060900358185453206130578072026528165754466623374703852420477947801331242263743614984463137520468866835094758127018549585661014557632958662763588196993615806221360186578439241944463312714841596089468070114739949691435671921012141386302783639203061641183952854889579606577896593080071483819142597511841345231612772254837797987604847876945404249682390044852844116380262990290008392411040175978011066383350030505759206680292103628496957313926731456509584525929459994059854279932201933255459167420413306502741295297933062601041905748006819751772455260911274189649425206333068868381049835585675922001404256196242751991009137592661609545657913862560321233307455274018872992381552941894840587006181048788112884327169896374742870560417710222128681284099364159559901334041219993704284246486574281925304026425570277391176961673144740086453339741603503629256919696174633591526869829015361251834372428027020542711737818199500842601608023136387985393246710579422784900591287683418328255852639201585971492505004486969482772904778571954236652100073197436464025256264870727749849705329645071302939730805684635120220613038841299960304422504156162764701806149284361125605891965555115372599939224038507986546867018429641265770038412607507961515100871943548636869308316036006243659696978138411458606307367313939213389806427447723823779118878391913853282725290884104184340691857225224546775989177848589440482416190848062721861468956645567215711283532629178870596501309510155530197023606044866636900079618259791478939774870664115258563514003316925363549355765156309903809970480878167159553434076343166991148046507235985664589444383537632997199169988306920141642653150464670052472008586001836848036785458726841840504091434528933490144904619439791541215265386068069818336784969162939542220847864611473501020121310565813320176424578520463386159514915097848508920038674325730167458237498438479441593919835588470746127974729828301630244181178246627716339912077376214429483937160484255266912504451157340096257283047156983923333025881617037130752249401448252088446705022534423586430174257642264468008315689029299175410099476086750439384587671611695877592955840169220140904293725990641344344818831642165886229456178002917240407680621635102446637565762276565426587351443267295647836463425819740986792241884841994634233252124550802017181479839115927546338557126777999225802999012178301172743520075642260284035806324130073524237239870730834082444128289112700719874416005927291712578936574167222327165965726255093856142179386892547105419867643207631979172049841758598415906747577182226961299585799062753558783561649741532639831610166260762496549658891766679673230825747129394931247163217222209882258516081821492325274573377661031401085994949035508730118354493276543563528344642853020437491310839644729589455179263122012883000057875551206690782790149291151825195437375188492039195079379944438671880133592701803303371026849098108220710366207474037315054780942868945882384527182278397701300724413577573620886208024977303688028959672306421050358701410625540476501245632420530411261525511865966028293941979990649783391190562107488288602642688386212435321703514024276102110807403855827860498790729892433694185428379751985097854283460830421373521097056548005741081457668722935588551366822355305302063231209663175657561206041082766070229271928310625299930831633924262691852259211437748892563036867617368986004883992778042171573807460272780889367006701563668623335758390926839568657705738227532977014932190620199358856354878215476911446842869761995652499973115175425828351829364761847597341186133308705730241720097679255339646974994172125031158145241186258366672814332692771428157631173414066466764425057400774914770049552100847121727878506409455351421042569790650634725024571630430756140769797730396307384428425441337338398526633926794681729612533344862363075443020243190635862075521611514054640665973983057171615351675724848521826538727305439562428985004475246302229765178916956954140707909731942768167371643185297675316484769409800939888704332634013781410837062819979628904317642994036255112408973993100604208672627929127324494314661055317989582599608949570904371760086025183039490569143945243092726719297110741398280466301181371261756027689908029333626984419781567001733458223731884107688223132494076298551871267979013928340059775559680782198656470839079828297846348332315128284367576672948878320286094532581378718093197693347659955723385058770311941486901182917494589574346143920857106214867996896869446311366193402956422747049205634705544714211757766533490576472111123029588874882003900036185317397977911979463300888412489486965371973875651469488718627692086275275498811379829936532749654451858900413993224404070346289390642846130791669449076710554687355582432300377210493646135486006304406812062927116642269800552270290652312516064802060822035380180488683688891253607595715841394667761258775847419134109127055129530664018364462758051343301672552547579073389479355782537792276963126360417533413211667332571883554538326713683620317456573085396108565904745134192084335857489101453093809831975162409058247263204612335833449741888559694084770092019659302973713203132707044058094326406538861304048829264041499236350787737626332699320187873525698503327333600522152601371269733771564448230464966023646438863678523145875133270255682804269185374277595314914422017932874820367721829840707433302280580508877171186556419012065966378546426210312025950256887213147132021947205473561785140332790649609756592499119540681099272631959112034531398764989519793823569538093416960395775381715843360952720364764349512650914985031708966208656401462533919316993755120921812149210803849552814841153251439531757945361544366107790515739424541943378936490441725626074412939827515930424001858926673548639460346439907885150943904634870887412547991288389447800120070085908254156541195447749414262243560197056927637999741320671556046338547320156436354911980666182980391610528484227074932167646566901232835317174859799835968127696977367644318871853773533412328070972825287617394573371355848641499879540739626585800591834226288115470918135386002361204425091114037192498402991327842013539462792776307731732831627207788136969568761099752407674476351351536373917759946159022137541807809645416920473139631914688114996293895869712666623515415615063024239839569125770114391104782589722321090480395985718558936044252353736604352713242947295336707951347799113009460880936465777103288337800582620571040908692618311006101735920980491355074178931199486821882669565251450476292986335246411153034940080670443791177736274725114010373957389619531409614291093863021509157374497496840382519669291774362328557870830282232144729470242781113956865051635252665441205022323174589986209872258525793285999411512750139306056845472562031766292315869564544432929314455849416418746869567834563889688100021866000067303116989083965823237833185383570614859566773022823264432777238143954014601078582918801331142616912983176016605970068511954932610644241108000285713800879343949508183235072066753093672418746145805843486164492604048158295113579482586954009345739665875886959769861447413244034041897291422820625488241571634676471265870646313280100740287088555657671827008063141716577008085193011762757818175551313871714314240420578033604106160990903673752469469606054350431784360812330313668235853436770911305155308078008587317377582641108397908883649045008003001892437822085493537914219145255990376979303952030922631462937299851749584274314051523048282730793046444803842583747025796117180034416112063587980551447347380092399379429451754899937621538639791775331016718635697204325524948033141986365772664455463075098852209821846658856579858693178094574265771834682814685868471531315907605880115833375015234601563919711768760134395388725362982156228020304766341658172250686320232585387069396406365111359378461323734567965375828638302645810474786788825932082281848362519549867314526599381523782784256588829287414739258055430842523525165326851996727767485840776927396802931690635680793830165190989071100589201748239127346268188037252577605290250460723934266131597679743563929978103643403553836567326706047650826541212147584845446847313534464401381230571627854074481975138329348445164645225239917479108725597530899882292851424722757258422868726272244536738017252010779957180299870817805071496277471837843619924677097645578762040103549061002696401803150450961190709608042804944199683996582488067586745778319128219526337092362941732716816018630082342856492946760694302838751111897082113267084378213434217475133779291758862485306061309993283599646860129927266618796125816759417246899410983104267290095871185382455844129920756767582931545853132279306854274043890072587613628647361306056930558824319857153087615879233043676760185974425536144561910379819736998261769071909186082887898974363809835644337000284656431019387832101417526353353375298050868150734220563316661775142911496147943967900267339811124784763774921166024815210757445993325455867293127073193011654902806650485269919841300579584585726115380894570708571375473084950593597334634548927392277519162187591236989856309844324563144111368124103662459214824346115214533097994538282457467462150753354752568747474706064867678295477142680118145549185376462963873170206613931459843248160144050719354774572390674074306013402088950181544053949286302357790161716344535803724150161754662156823310679475907087391717428043482683038362353256563827357387038316494395696718593352465555207126415289628494100181247912317843775048431798917139508674940571372535539196574218213232880371105253097051803906250334207309521019835859965354146723874315113748409393753034025973927429463263257732241021734501684001846701052055560021320512918367878817901914795811078735218894854705007615338216377246478893103828662512803114921950165936271776504708635679225487251028042776137304048374667332777289670873260211227725207485463340580161897480936280816990313996953264967632915798778895123065282575316505550447209550463274583680659744757538902387924629958488699645239963008943018396590854004580116183054362791875530352205121503533766173702998565325660502663365139847737495372167650166991338142849417442364543672419513096220456490578099425813741277591392839239227500498125548514528210105263965294066657271196863726529630532524477510257705431305553540430573930890403561873281810308857619654196395239430573044395916260762344130333004206373904062110086188850886445167614371024909817658808758376286812884575322365753002835027502152529757879437712530205807872896691775802215646428305849036739262137282171777919133747129637449808765480039235714365951220025761363580227452889498414149124471836508103183052403588148843516221090236862802395149834435277098470598715409170716330253432094504912863464819929988910930184209743498709700885490947017632361788667870173142593297560743741624885395419361227399169935792562437733868613805243048454802131068641041473020821884296412615410543498536817651221324661652590935012872256702056152622296515781015711443647937327571035951535883287492431143012417728298705148003585097692572801194918042390785122556787340083397358544811503048180753846707898996652319186951455514539218584951971892952556566300554056057563453056127363183003796927522588164517321746025693889585900231361138592528265227447086686969849379660569927965050932161466517304601022694592853734291706348721965719245357601915477331394361904390789950710942687927900741253229366868018169494598297949941945130308219781903274237885835800712943146785526711662358349504047496114212316171926495612758918001842519918371080747871142994661445112826534328059843033778392040175625935152056668481689730139446733122688261438860985445261477663892174116974123720734408627113221214093588846107047020606641760717595043775859090146374913139905858066441370210797677006680061544406778313945931440931939971954445782948381026343139503926841735748910062233403932909027303156168057967616854492223178660878889684760284899034774928593847051563203309274555981798846589683751827170359832243621576675650819501598194051808567739350049204159136577717660315972345468719526940859254264370832512051060778353946407915255882077497093660981971846724890966949646544690461335936184128188001031418574434078973724883413850022725389335137711749806280572614165323494329315470328603126449283534952523984864074725449659583586130600513566540374069726854853877146593725534634401385511594771414838074461130664865543150700960075563032060875019604691236718109803384199938129406360254317584568754931828239049224030273292427610679740711518533239581272025901950409006220965745344814767073554928019192400916936444827544693456320758111391241145887294235142530939221859218812588592548231357672894108433299520682580864062779966801847138587707553123907686743841875660097263728124615639158428449643711926686751558868891521801490394182692411217210628351859835221574940108725963828912727333694903868283348458587274728484582660161265475806643568127407165626799529691093334602184366554856819843321757106926728049067582942636025948235597089148356913891700414877070336110745306891909318505853412750921624069842709711159494514659979686416326695309676439307481653634676428449784011396663749481307163951876444973997993135456187010844084771653972940357299924789116304537515328747908128081569813982487004891390931328446678950483437626041376925973022654625594329172482773541611639962857042963748134887264668374609947537728451278232854480901636460717108984687386635451263631786005560110491995857955328275502672874867733174498988904093639032596689688957664116650211821752906479496136352989216540829361242418195904752937863901970822199871996993104948609038167512651332209092286845910695712322164387768216216619340198110243716054140848599086472791551445973839988706551844808038252750780370747432429368101723269198816489073736381424549828047922569606581898216647101859182176930517887694830444468450941250563398219412087404471924195901904481015386923454903674436206807484106827301171677875518431250527033841241822903727505155360650793017214315993608844857093784393146764894957355216057602511439372699848337781195909078392139720836920047812382393447052440409713294418763423883877605467848911907144941586143959423571898251499159793339366947135912029790802264745985714841498014073445315298296914263342518019885462664792749300119195530381475438637158735753819531038912078943137497487040779366707782395723708860914553776100043201093152728805857855070326955689387677165602650854588133311600999317666672554790773140918745435323623477777137843169990182682704929895028287598617846483477299368373799921216442197980139490605609704162153193151314593669591631696079928803779697829476451320375215168015924096916267754532312080473095064886265827816573073016608767167140431107861924881805211551579533434907527934954368912315076437610377223764892500014823542078241709816480121176365260214288740734679535135525896436836909006014405216072673471334502678851240759865518204276199461642099950433672446335521641062046343195350050206428236875422638653304915193873156123103337495640331390516228978037077903240162855447706002355574592506326153103905315531458869415803310032354469847432502476068778709384758847436450404552134611450902643019495470274750872261436236485565747922951426646411108190378096691147789224385848224074810662264126419497103777862946473816494372975444600562428372684654787734285307511062394244389805365084755211425047100599111343258168820087608462485428625138779742575045585282086239145092661540815087743727125630261150989077757913685895775231975521819767778595788696211074830069899701168657515743539946671729696139841139291549273254931403163483124453569169087780807592951707690644693844872620961278070298930712937759853388833820288761968540157608261056984515820893243697149178134258488026770496048819485384061379617656000742436279539161015739370189255504984916848582803404361220891701476982031030352201774345315098521003361199558970546291605296756595263202183322279805749499883043827979016524149395128637082673510874150279954450269888331880764795159463343134144935866950898932167973613810363557273508792345425970602787466250126596041815314322364596354240779384165215722152045235060609940857375294530058266376570172880370177568603207165776065277898522164325103061245917806115413044545419922520112180132744106453076911012512577557140099856554384768158154667236766599976280723064086944532011664853099169170898801228711502536268043965084092130217475285579109225132050495514473935096475401820392076994973900725784368104762414975261098667086475602175476624291070165128113812740974300842290007259812030207751988393334477475898360849014562311423299184656250066404427357928399237632930782653492497130318928763768899523934716680361447917168149366076042496565062171749183994399154115139439966482994173431606851005072181111559434142365212914507764077308535562731063023421640078134750912488551905405756057833138003296576075936313448148869943591899431105328475225384208730238806931503097347969594630177826382744559558339242397861263562927774195058535343887948087425701873718368242259112948155523604028984460913980491598366894410446609147119345852727508693864537413199129024575308169192027368629431270956734323875248588276158669361411497467980605081016107787764702595270359117634308450605870297883096778711402870802666581670559272175913028420324071624644607076522967579128766371465767523572937221207466827320916447200588673980331770122353837388752354289689928057524354285698802677005693070691851221536220082737959754368942455702996922647835655603213631401263140319216318605241530051383187084389502776148814115984888760387355654038498284488782224153366511052468244398489060169491047830020637837350181867160368481875999770885518521904756892258376211872682414766298975905214588492104874287214380361091609458557049306987056296270560880452242506658238559051392645849905597515989718812903665190105956099980764899370404583818041738931826550747277000860019069657077934408701091401486425313659958493147490684711144246729728154560078423896182322759916152557078082071079698764622549005278498161235651959921617604119095154683680747472486735193933446768666354403538733714951291277134903584384003881410317624389218386522932672836030762313710059822121212305024175990533879931339396810880569254881976070938627829367205946407722963703827133987839299871269125385865044227016058884551223129974325147708362019259057868288125551732078993576740569088361592170786465826574960890390184686339631857709090928046527575582838690220525210565590983371663547021395528193904086368639331804957033992700657046661559694777124222820231207194327236071233295623122303809235443718635455286444796168832878018597056255253166479108850138864092028489942461878452261297493610724122125745490194348593102080023739242854378348765154917771933208319598973009717573514414613347611568474199191599214980427713581966417368890972297861630857609270548417907140609350996580392416859662540717528588066424748350099037933953814256357492349994973808555462221863489400972131686631567518871149958769688451510036421225709572460532453032836464429081245360662255397886527821978750273049680427504481066183778611015198769478289237158390766639265123205607503959031204031037925803905279646873333658109449854572208720822917003467901379965344059416634555378121993705748833097837207388075227747156517886953252704886449479482769403202666219603789010596616800458960459227557318079626835564473957589068420255178119666483658155523625906570551853890361146127267093293781323670483851557800330153578975678840562533259632323554280168186231629679985377925059084146782965646458450943472936351085873035007537424705432903823988157036033136056650157859920684115383947841130393762878849187849926441389601344162223973046172080891706022065122101208112695371522615676956950982696404174830833082504134858576348734941723368242900220054801337697861881520330235114992380799548967674513097032485525617082344771163441245811779787060756064428063562175047068503853678982762592498836439253808438459119884767843536980827921593846255990535910989235283173801434345731504019302879692803266661344601051003584268317487633001478318313823715389659504398508691972026295968265527810243322294775940548936350540171651719515848192203441967287500560421680958752265312105874173090075935015669717614497634076484821597285507215395616542169502460789459088726547509375302271629760318249446027037264073095352917984193414950147516401650507245953894261255322813702294944818775938280604308557937274480238794637828466654038074243246836153747984878563580733152466760129632663408520477017281157441133778441598500351680634887731958879327938158067572245327446155199014803436526866839312953565983787281662393483102093789788140020815406722458404502209035639668469165967654530309123999360565938568975039705990387005222757614552644980782368272762687405672579857698366390495210410607917112658686988394604764780450462888921079219726951958101582050851119615898913997203413451966114956133262544081694305739530738954946659694880584865736063395664672453566887489534060070724850365135315758874576741616267972041844931840546584634883684698808765844574862702887247482208779576337822523036349273269446198161594284838484920170756108048787105163529283738700380941614017883189163919593418605936723320000443712771235552523155606250422967026746231664937579300831339772836316972711109499097810198223965261453443441462390052367775281923013367263454646987213527648678385212172991762897719884058580843476389248424948879974978447346241542243823117752255659850928055738112441912860292175609067729450474197619980385135278257416595983499003309086538986351119520604971113416188792615429801148804361095531484776559595657811894353671698388831794110255454784912265603903275521382302744872536068454702555277522005854290507750570710863758004262811114544081472552950469004037375452111548453890730514802952857595045386024418452765683963553326766053991478932281657249206292375575642742333941499408760392741681705176651113677909983391599038347669728492035202102368382514163188642242497813953772462361445822160122268971674173104915095904486029097823731145761080913191596376433474408235340813921854477462035870395076042163688072162994187359353993767043491099977322046845613426463507018170152509766953974552482083828386148314426745668728204800572081097039963400148068033922062725642764511025349430849080577529782676991623846956999327118325684450550888054929287434301449531729112727833851764622160792722391229288467072696148989438507368267849433168650438811663574494997527477284676904283322753167526100896376074441470382670710049236691549589300673921468001098507494688921082810992756865154338403005682365258865113417165691851750567367155641933784065415318629018708944800636341862626304149215033227295210873670291300628800175136422193926946635502908628012017682252176415745664347674757710753160611273128535480056985166857232144361435452313313429301777202284921612016308770595866215584610401416605744783083741054830052704352295822943633167882559811600966902500796414515408409010898481667093786245176819990977887929800493898201751794404564155295661392506421028351935417682969011267471802629924859766516423723602738671130283446232437622329003412580879404291343952669964481285625488928185805722431487714116123917333157131612946136059145386862627752247438836058751254152469179268246927514521627785096547001092409687488658187065680273156746138898734243430466305134660115309991731033947883590295563391500419400619358155197227454306407248442051161479531528805321746424481418780079558656508402119530720427254254152346725189147899326364538222033640837346362843244922827241763916535627751809420266475029085755663793628197976582516789060863175949223102510732075613795297421295645109208302251486005659192378004883101207984692068049158934212403579072423828331505575443062428365084830096956593597089317790482292613356684297060277231885707715266944390330201295639958225643261243287722138387816739418199409580281475661509390731365513550750403565743800812139336728548421053907105242922322209863916871912121195938738221764226645553096572712026489954061229590244085683876927586673764928122687470119868983416814051163229923101176927235133430800830801284482667454243860838593193149242061864537598284672499046110175720961721964269910255783671156332626091512229938155875683238224036007772380705170123735471682345412360001373486372247849647924736328767961379850186741217847376636443324400410954574235767553187388630028054467143107444223792000576186200277111365401107980198669277742169433885115425211868537881331920065375808587305207225754188393585558172908391814280572599287673417428963520121726498160866538421613436955150482168161392314400769510220600758803310441638822860002897837674542318636398670868841099481746835619652151144057811407615454579034156322150969112341624921098624094202495139228735954790946915634829083091290352603003828829067120671852534745066354830127001638351439870577936711745178213075184482575412239831376613857302966927438702525094776832121736755731276519429890609620625975559042772918866163267995805875643193161995508777388302769199596858478041661850653314169275549143269316053075382071300632679038449361947915259050401121872030857393180255960136102177353299024780466366114801422011182093920366367181358087409149985267446489091787165318029567498667421762015029728963247930365298247248333417491522382396558159483299584401150423717991302267082082360400792382116330217475732928513875000308799089503681097608162031346353569405567995045357202482414205174983312249064028087873142664343782625776997758868519773474456057204506509479591906735015565287950465730351213878662002067773648753482729218010059440326255816072069247202931538599546877123821078304632714895136822758172585532428294960544428340705067169831032118914864005275927105658165944974900660971962300925226946751503092240627765500944946262958074421690272607542747712469550925876838992139328246679637190294845503973070608651759904573228676006026904473884659889474581359290173114098308497870540472146368428262871969462796532742671387193057495212488265615293979722353944438695698820065638118850443488253859816968245252731583801532662073746471171553317373658709631695793254755881736466660917770115117956953761925699021529388864470788002850265233410317399567933553992028488981600033035422723458188729700279147043539493196873751065874531625619285625933322411295104594605686861955397355927034046518603838317913405798588466801795096300196009678501637472735669512682290662464742065878905044035139103427384845679280831746634483162131215611164910291544813017993569657729640311044716557596322528226769189780195247114739340882808133395072042351926402989011726083452027489743133034439361544876813071770663219553988470371504278284985701886841198703538594299342669974018661487124521114975849589393192701826896299995752242573749236883378830192907335583328067305788425428273589715274694532655735592641637976090486379236456766393774585486669139051370706942663704867103960432342480964263264916813051250674931134250057647389201428901425264484447751710221959638788513257150902271939506023908868431809029788838636370690344350726491448707620952682470803363378126723587223883702029966353527197188934405966838365922379334378665719490372918745141096477475422333978405215175864727624445659276136451081254124723291669144464764028580613669956774921345049783993636957356868092489173966716798877170309026415377737425970880142462927297815027279881610007688408459147562399490831893578542217442966069463975419053028270128793024128664415282382056591686990330452100134830116365561929676674086281748456284653661776774450795174983377933201036636717488292956551920291063892909888380483803219027305386056996217388179202454194351745042769230180978887502632191378095616462249671105844174325984693245679282061936190266080571988251847255093426485796832744600970836104817218089958275172778984428368951490012179714011883013747691942284426886299953969552648253851308281142325142783447151702217529713463038230246926357205442036349217216648744872822875988610736562319110811070903040857827384792573256187645189798495326798857512000442454918172384724847556545831751935609050689480468532829295619912424594657511701745773106129781347768712260907003095512615099736238458587903266369705610465207052209638624153392866170931113095625895000521067466030861247717311199000733568541615190441280416308073183143228457211722501624970833326579059446853308024629265287961600741255640711864654327801317772198981519626525365437428809822413864111803002640004903439953124188884381314638997045702780263682694743639217579620771946273520538730662479723533901265932024450155832065367120013374473457103529292706829393355417877857260891624826540874686947413653966599613549555264130534989185550285224002070137514853041634708613573049450908415743506175712900988333913246519977461780207848522843408490101650659261329160042031239116610873979832635822341790441377900145474281343976932532733045394623471366242346851532200387551257324705452859031320821168569855661168568983798905813161544537300355776346396365239244566649785974346457028868464274098514182642572333588770034501299301256528331305493199498114038369750782006500039356846602646188937525918101955470395297230972431533212676188662301975520661227907892239914900578048847890754309707712943697069455227267991763362623515683078142485245916619531326628679085208176886862235000008643085468007225719297757798851988115713858509622376081159900423856173168424317903505810853460266870783021619895691333888977992415576158889621574499388501112313552838132654502973357809607636474950258349319050524163456927144852406195578540038775163778234453068327753325151992653901542911260701079836913505674815490333067962781053643999993922637645216176185432013161330646580410605807063066260893549176153611303495462133308461487757877077038690715890842532291437821554453141629515815433677427036597568591753570680435965140165017957849255830144359583121051322336563522317734739074385272975476183278808342665531435338884084145704863619261905486235633494041718390509306340054962828794033618690738359824115743224465979217737639944915989632687542132309727173897713264225853616567578536494482518274777366039129289718851505272074269493430946431464711531824841706825060993694608817116520572255986045002805405494007787798847909694057807640382561528908793053338466199889197652019431231884158009487176754545509395095878088732446962877162130112926494559244937114707811922348687099416074872574171070322400399970289699237185293195287964634860067640672443894381309863258296746217500866098441632144436828271247952980517574130463776851383927401304881700106485422778979875324026713891087036819293743388830157063553432944425447358603282484216307117780694210057713927656488724621301467812563636357813461222204510338713220389430884570314856544696510024475664851583472817673494071507105925382617283480700510695464968582437741532312686374874497447234355258546667441115328678252625886508286956421948283139131741125169347523459248183149077076802085204195838242492447776953232227766494258998930554448705498464943622465219634715786816002328636492539848071066341369404705084863317019777752401281567065162024186627284286624649638268850611417074287160237680703875742731424589471600159929527953346022406158320436542969597339919181029450880513692550681915779613174535161936626363348050277339065813636061187773850316734241185344042694725641506483297027345460223851061540406061384269806864468325059888474568624115474336925591693738405783506497945452363344802283521162800928153202548568597979424992187483529553132265976947696668408665824401863957758991938564240736236128402666963636294272647545645491693160344226306255752298820315940567236009857582815926108288639732934708767130684885322738798591068528571380019105050252184901154949170154159490176287483616154779147577301671361153993154873293398279561662283681808613287079160020102247257419412428602113349881177937545680960580485750630332877753342648374860976191930666868489234882737028403540091992564844532989254769764180786247280583629851519352272085813358444730131123606567635067156450320846369169583362502590133179129513622098038755386646005236639756906566396565900660599725797498385207876956852782668586545622276092164262458116639240725758384746233219923939474559301443562871387339746371845424037102267702695919490395606052320505972061166541488283825837077671331717751274321271907772301199657872616920174347926682262442746639849310693939470760002783224098712452993675161870690724976528200118114096804370786611366757833509034359832623505949966011147592870646355219998463852996445276705107797926127089477645881015398571642559138522533708124621564403052061773721165220114267299008521809037007760592490565661875107959835366730683128691659622176729186922563060241845637254946101667345078438574110941755337289053710069991925662639133772588560637630729820145006215750809931252595139010302341929580936324839590289532209901874562523608253972772005606726318253800679233766672753454284296541702813442361917700742375758593729102362043959254894861322311373139704375522146929020851020563636677026577418503299006103923750382809974682541914787859373081309495796584114060156712629583946219165786656664528188045413243406425886931980796429226190434181918396044284043746790405984065125361937745785168815765184927820829449383813972344569350352769927139015038878751438535255468581383761914097538653890735851007528889349010280687544188685497873122587271484989250905755232136392881440787744810855373396285000010072431602906952038478137139556837486592871039800991264799900720057211271056703558582309918539883617316876456914783764161031498021841400854998553283248329088615762570643173324255867271900392646734698677175741830024294720297954628077601034392651215831902737267546311476228984668988491844295945749098879955975480208514710265289222541476939441018686395859523551644481224381895309406475230114181346695820769375526161365931128983400381662957351651076377298651700828950224126641935908433941074211391742557099674526421837062636606299462427462049444153011612118309220931711350448921812976028965588401057939327091951839123232495688130721781265959424565123874105382736760659588109982221057083912747940082306255615967060708455676768649245765593219966296551107123123376880318638504995259736024245951708491157658975249668475934767456517349989881297951974010986748309623603308280827184464335810901872457633524373952803826074542999732980012832939255594800133960771870485240755253171956353505820776229398160271831674539306133327918067326165001250728979985257469685389117703386615154891234235930658963963661999555554768651552718707301783228741466828095492563612500944448425329444444099711153037505246980072064906564897064831317560990027040186080583981992493845107221767000870889195082720948382950690988249877372653219544859308580351418167313961259275679472115996167281500460581383799848981271879610183244146020572114992985338565202084995511049349240093549998500936771264205546417057217846829056169422039261694735401900137544699091972313824954388435854197283410806344778293077097293539866148069429134653356416373773000302957460988034528524336071297875469979391477053235846788670201867079838562011432608299727314876017048292864922784346587097227232991288975044393327371582541654282344707145933529062255303934997297488104630876866994855348954561840944165884635231962795252210558661497439734307784485388287552386476193765892737159628994800449146565497025246594828836289951837930071672578363831017504445302164745229213616219598693103926840329474369247497343186065478521658965041399846867205843134475490799345900540520410019415678927973378957121415399419116963262861494630586394991902497624826779671631814460157773129190090322637493371859018775910224276177213144714872142487276094832127842235883675783119794467196443317127824676022612575911597248799701497053077706546410968215275159952785414741795104893706895982948553795701537567324971501793869635553517402892955084836991910284544743790356904644988865623201025034167478613324907010378224140292125093458362788607145627615407195667908907246912924312085604771328846737026459634673277007216366047217283501716230736141481385392886337298283245953091937905635383107081047937111069349121521448561548456107946495413706347862730037450759196056457344673961695828753056989574289668913450145904758954047738799595484137694959390077839352349347313682313240299003077089906247187007874899736818034734917113642869808069469175678483247318305011526775975892682047685212563523545587346720058885792496515947614462377434238263971345607025557465441598969419276556842947913584396417619525685917317643738564425088051357913126137991100381165719182062948820138087265515227941172058075470752103473617778735897875545479400239825413179251532257803953911957625926974139503198310745974688253834900509342734819316155000926401897255408180839387825208112832175150838381610245082239050211674394041165026907552675235212507171879416257332687199408943391639942052199950082820299551685018599304686325711607602351303943490829835771425641852064517289813091875148205443611097558397601812832258467331527272080685762252474304819801466014601688085519098378555610811841657050479941179991754838770515271166242406950638080192228142266882105758900683776024231754842099880736811945254773956664301450182583634546221746292073405775368494289770822727330261626294716882107947652349515511637361643397613293753180979072292797784526356601239016840182721501274719520299334241755139912102840576852165222493157356531000406445724023744067591289295312225311582166734102018785350310205723124660419821398566467879683292193575823773329252823751193565521732938829809416249618999445940777235804983455553257901326681947568958958934714671295832208414633435098180771358641237245533375625531601895047467876214357807499753823816680608514459949565097984004172761093426529897686016603475341242318147006802087954373463053705251887642903462077318944485968764085817153782331391988826262916539403422936439883123061325155362641243654858868640916676351593609085199503692967165214254191100142242292578510843721375486047968855860824339699107402369953062095338413285669015782847473104350067134773009927333515279595266573883577732207524373512376153009868388063471440493919163665573181922851944868202153617809819850861425106841530394274224243177596632114735242569813578716629485565551192928622526985350346873213614534885803823793404452354215080725261787818864847616057188479311550103373923820454582854104714231040243032746874239300267088938911862355589189983886990483212531165785075737061878659318741706766843158505402130651966206052677319421454746329124242118084020900216682334426885285183222136645709334965459471050455259826499540037131016710760101984225135907549110470964566908488675187684414026965965593888403454973294456684329455108981244733351764438069949612059040156284122887936426938112255045202161311688175362450201156579446404295681675135920123894822539352794270698098661297441531592048466476145880853866493573353795087216400867463552309622287735503815412565462986335557462349293910913166043686665639363624026740603645384857877413626027363472480931360415090518263789731787964587933704184015183884969897626024046948987639794976479532055295660407019992721256590439379845232293233608073661062793529046004260612624282443265656853430654584010323565961911399812180089474145921038928931223034251705942286324115725106568317149425488631049457774692637681420847050978814484954351738779454283432938419678422202090962133999452267541532020499999320019572623476023471232009169044454636125325700933291205672002379349092271864317759521829532801764336384535549481706235029108993350147683505164723386891175161840239231757890124710067639408617732067481173879686434157722529632025701455157655805033647944685474998197158525896313584839793645366926399858569004422999700081232138151304644712985670953878695181018443851947272060708426655821763852749718577916573858003975723603258311902290440261152623685186099460892089727551514275042970441101098652891970426175663041104731378378379533254757126526836598764905533924091752294662333319889020254457777023839624728796659697588651059588899878711967781105771446688993116032670942755725725036083330284680625361455405990206197701259745497992775188243769222894277062001349281138559114923780530630830554186043346579589287948262700085712822897766355498801640299674211655075131705978992015692741253559592203287521492129014148125621914597024097951123389581064158591240324386358153935813049721147755758099954713755466073219989437469656195771764685581512686263548800427977686020453356586522078213194153200411623310975742918878271875965862018017190509916973008000955616392113456811193921659948553894842710159424494947403151527751301413175094299818085864460764991276275004498963144407394273191996080045659167720288623378679797855773018017707436853407404129666556849464342513781776124387517788512625834037478169584418073771692673072754296016940222845220541990807696815223088515548774408515089352784072297326639980180071138475590951170057212804531792512577251391488613307476077411204119333774089537023476912695228258203850650061269005283158718288360750095129890351327333313050715176178289312657311110404839337298597342054042601175825690890853686461180462247900423441679104724539776107383025292412136693919119556289262010316889852351489072046204064017566896332060435198706568493445243188001235541212243174151746244142523793322630842803972215664661862909781529094752695977399765219308807265946227341026431729550870368730200452500279340424230743253764128948206501838873808453406069216880611077904657268200838591675432520979350006847264494619036413011512965383568484446224046329823626381391466454955203060207696349500933563924071518440203782480278251032543867470475036151498929640332963332757872524403095240322920041311958899538226886345937743609096155701545897613978933289179102007511622076639417234646358271046345690256301409200330918187189874141770777552511426952691972352500468410940734015206440809168439292360610205699509214523464823007499435509711795600342400905157796834006224346664245267257422169221645544150861147968124215142721337566766503594378900193618197301951008600662954269005188714213455931636381322122443329808673647282202568851466758103138781959826164923413842122033228454865195031506145918697854097072697857333809354961190567828257698583160058539517070964731583706313055861585660212853002893596417633204331300451598105147944069274339539157885593619476021770880673522902114451749138600672543958644077758526233193234695858844586442302354575158942858015592116766561961826276061624235607742219943468997805510171057214054312360904322640342289813087812229428611856897972342743053464510462735977608137174238554673552493531110688380520067110699202955224389778320778590802100393416671239175831970279316802377260171946615629763103351831760795700050643201566197391271585610439944933355202791513571365781377565695371618785436916168618034381693994581233176471425583314260713355995375529342634166529859971410209446919189392308015346704059372950977271954815084709522543138158276253453867875892332774447714828277973367446385432883287201835340963789681029494214952559132170431594220525071621228640809454933215978660022414503689881226599650736814505295962032932871254117581608461432718495786684942252593922155144097171005518653073540324213279952553390229728907827138087919771844315326101997270682742215716024435780868761929792610306965901384779216125804281605094427578967983086121120367204143790964618175636070348769431390019139311911484189112428646155451890244166316264026137343072957356339238695254609828906257340615524119804814843369100694157288539327908963753309795951345643886817626599178242967234079173646310861879701633820539187861275969987515790490089102193020731214190292365205905138000103772226115551311116839126755984293835777893112504374270343626757423215781711383313104883816586645033653168521530058653536964290574498312301358139402957915768858030280853153097857988228285053749235864363405502069098061770537429269919769373128988176469158598864979702820266791741109762441727412515005127836869333441425838919508670339355320957075865594203287273706544345222775323212191597877706752974430063826776210964421128594504585694097072741541722732537072624027491410231426922511752502987967278766727568947305418171535545428323018078320098207011377755254520466557068900149741148945944891823493224333487628231097473521069966057434429364604678253727744220106710878427435325671819883758999108936988572366051233914152597153186549699107085254180524182879094543474885585693186373293340237078865221221837155106033212546872976207391574922266339048051265957672008912559701012412455602726035463706220903852838129422477862395459018332515759533671389808434209854558485133663347361606800001361178503006861146483219970713212599380610879495939866895416495264618162412003950128868150615465697529629667253287164825778323581434621272187876007069749333962838029750192932623026445678240914737210281865183748483236708420908040149622760960352220184045129443601408845642731421230094450512287601852180657142507930002323817275069950783547681834737736625908254771954795349820878328776875490582974545984135170297399553273779012043556051556863967950468768383443494307591618112444592738353601081743198222235283698010712372643194333562205628760060863986640690291091627877652585195873798892658520074589029982777320071013371259238966466128407351160726284664397372716911413094243032951703461223214395072049679265314398706297582937796730145381971831624358467108258054826833159515884066575241906729473158695918341515742849819742607594541421098470322918682340917111907965068918938344352219535192358347126311396535485587121745206385760183475862797211134321983492577137813177346100171992467637117041367759585723829023324151823409047520651347025238423585918810428315761987496589928665414400321647921306102002702834056325694919400044547630602340623443626428087338265059017362604593180478928266272663141737941557416862821141737516308502124636941873156287276017514817678699777071553344908981896297490727583502887912647860970540645318873352438153176214394142257975312779083496028362725009700844517217654407560008484460411739222152948425376798753284388426330506865470020794270214455501225343320681368210955901647642915504870629361407819981096611564164756163969523343650583484612678880343068087741569907971264822812925315851303242606039468968361854056550851523986226905014850097728803313001841045121194481911897076990503238529614787198343020872430427418095438141386152141224663996512065626883371792504844225764624222556063624564063664729276927173413521692725423176398980917100416219503998924736642116876986816362248567327006934107705215298867796232183630897723982582995535152662340664182176616126327700146763653557170697461633190856445948901737615482159100053419569666630049092116110162583847400697827569663017521780751745382809977060420422356627690293370251575001929939552165600516608873197967691519337121675365965540312747474872968034553272014785765943365905932937755379623840304984738410299374807313775470511534324993014078760918164541166468327557690668458044063795548121592415282956891921986641585105707248373011369991096926050171989571287312773587642628425423775769276057173228935382965235938390400693755101848055503096884282080085977193549270767614387902900604018928400938796624530578715630814014609727382679052119959762140376532234085393985175401951338417794034579318825537151035320222171114806964810514177558890021044399250114364626855864965509237336228416327177645572438891547263486842758344324639421681314788903217585995784958903156764768522267138409223654909561766019992060261627111066460336690226755320163545070970996859721546577283023500790066760663805665756720274491024514106530445481844059267708198742627076264441941049536023697870642485023842531880397845626120723458758178165627986721543313811421232772037968240446985894707534640112808247083484636748587802946184722918547752179693613186007657694179774187144055761837434488056490177060568945426228556694972894643036197907023864743168569738136917410501909651654360742169298950056875177489746664632377004431021762650898374903012135582979538700412037106884378285736501475424463356215707318523988402183868416872444237770094792650617677146783487020225371243890812541334635888796198001149830396188946199758186188528400243324482019586048118647732816505706327149279254799963188460719640665820293058467005470296691368831525858056416295029906067609381043781636166426655806611436978908294435788220590928471682870500507001120926146409215374254277181252037381504169414426860694942741572415364854534206082666996585224675740926199253530685373554319032360519001668816513210008016383291533511880287474124788804884273819689369425571543773755469355473380777557876580970719357419779735301624327731829306238802913462766597393690328990809690281451468636272718551957998090441748855840324562266735334037341437434216778666859728418224018099000316666842684427360785808547014946683452164544995467341751339646204684806162876295438511743918309185109264974546112176199432202618570069691819462900890136647910021886739376427421700347420462410015813969680651456688126250563026408692297100914692984697173973800741634958376411990461941838712007330287509984275459675168447722355555176388792476327766535427357312646680502881963135741603661397329040968544209286065674840034254741664769610634305310059798466176462066482290670504564105213269902649203131592411644388885360199158619980192262452218301197795601754498512022730506159003847989550587420530900230616416867865686358286539946967636876106048696414963978925659590016223739745936744637327973776491650298425832348994148444221363887969583259892976096472063453570889604490859429710256173033433547440332627674654573677515942116545484945357033069916230680939450122279468783711735558977496594607386688964722911456509129465400434960897198083694418357971858548919608475293918855460829663469296840154274395899488361489558103420222576056135699463221070342854349643442141846800623098980150158424003634631825508916082443438077758788237695297048847679313152262517314066355318548599299279512883503542864938040502068018123280323527638021990400257643729688872247603936125922374969968362350332711664330549685918800780252645673831462047371773175881839892861958890853568851465361563166907673742992355147572953147867719151274543284481872234726655680829421116900899031762292107515337225835640258349241890190092226925959771099981543845654827591641829950623959901932027733665202509354361693315274200502084707028158158300434882054419730406925063334651513065233713524661387520029992012423914198294281949022757600076780240405273278950820504602516709120352610352988144606278801273968603186074052164849818635271248433116306023180608130152212205896716620530182402619987260693003256006507640677645326299534573008054699118840261949727425574503558212672699091021761230464544923533659719583429229640951284778494943005466741358293854986846423074680558400458791269518076536575845247655597734807524489924378587012317341631078474821959630460957804095939835495282975525932603152120692029020029530009522220033370117095327877328825066880511946642502177180207609711708738583068193180043502177128682109233510326906511788965968594547850325472477840523900833647063172255839470390222218134268413681871471327692604288438395004093894967990225703776504046914796392633282463083337007656296099340033657511215135281234544946545695429419044650242818878658199177892693955004278138200027175324060388337917194202795009645547636581068837518506401523405238412103486669058559386055075018664598444037642429040774575018542219672230006946877936872751771908790707694006497246590933995701327273227898547945921943161202046196443812854606972645476027372854302267836593741197344057983671441544539110222758757604225027671477544951561826198770676668154966855525294650418263873462895043997282106037520625245636095583745981112983706945951380217108072405907142584594751500746657165158575173156681327834586088629495071315200900568524574140319063393048974314367240508792865781057040802886594870696995442153218534146363455507908244545405622325737497457022662351568090405566949870431288502833081046453632483767548389178661348216642946737547909161673696989732838681167026892133438199302017128798466983779759050067165705615164329673392604828758707145288072047432022350595452051224711996088280775582471037669145748048928855261159668321752843958777863861115996796638565783545836486289158611531877416860687633180234243767641855813934188660114219705890121422465534363394782042798612631924439099048163336541711561339001354416978594228094859277606020433730287023000711380750418730180367632046765697753392654517747701619151189364102706583025101570596443584800905897084624005981156915790764163339871659731827497055330695065760994729408347501403044505579173870240391025185287707753734439558153590194153913379765578484765565055774772469674879706188635432633686162753323503522300140083071655377780427324595731232295360482605243858254645683324571850148514634885932216571136481100452948018330914445588756220207463261217949495920882094369658783960087165498795481712625483481650803242178762527055180692590202388746119518175816117438845727744329994027104520976560192086344125989748571779553717611221248713608944790696636561055107207146448546914554291071596752452404547660291184159928339374080048124596117737648648203600794382764118532482631148174805584248879803180435633670570980610340965539019140958263282521261556562951334506919050492408577522622121854747231888576281011280520580676313459220440647033757326044772901260097716371227384069024544073684194018105619675065550364831374961938548699059009683215390148813312268229409562790344700071028535736147696838678420953550468812538865306028434705185589115962148084120364661971995888275656072738687148568847527558108770488142925316230527931585488381693003610991022603453074552785011070307269598890659068990432897348347453902676247543516128513579217487803273803728627211982704665975797472191930428269944628617595862956082778224452165211155566403411029297147819495765528391031303236626755535428016186719144084876075133868548070905668979585970398501170576129899652246918887094191675761117495317384458952750193811013852334483014449390063891299175127744541870054189737488899114939422874052272556323716557197196918336081815940859055361379365498535503008462149381343575644279757257748901309882927348126693679058717318170449412734622779326226243622063728663007972203475915338598323059426426601820635938684479972416009397067801101220369509674516621946139885047435976727607141144866345747344631323298418403996234568925222621052963435890426458080698464153841476133036744074331697626357377540431156710102537591601386844551219164478479647142397473230510893617488308910517188994329640163424541120256072522387419777463300828720299629033210260911048645618752368158648870324441614940127530757579875973018611205021968127875965262727092672519362961683041323590910951534281217176799533181391076231685247661786920084223932330755839078758093803488221701812111422030821248411954649687617976564768740152418749174737184040805236399809848895388339733277481522173616053114528210854197937598649426340603118993764873022022241747691971352807031317635013646011106705692114030460187198079794461257668527698814907630229866758196921692256400200894414046296891443717940593703302389697821614698535753484245362452736776725068841363079283746847320422963421881856172262980180411283749780865280373219113127842141729590313101322610838064769190346006259894559662590365945495111613822705291405248323542106608754573887945970967322139705852534016429182637147448677532024938490308737781596033036724576453773057614866950674912958608889332189446203089077860249285214449543165265528527587816119931499009892116170194561032026502495852262044158175225081107275564455587394724111330505463648403067658491269235448084678656843263059959922446259529833521045252428861718617768552394392548062091063704365225640824596141789961485050307781132700916099860620722752053087791494256111422907887170673096342552330718070678428887570099675348535118490408227133237160821677492152742679803432614722496026028694303561281719512630710276389054884640496252643933357729180367656916536258433165007301566023686998967493024183719866842791968933748051461195640687602229380294640334689923811615845442545651473265722987811489975464860043394601944875286483551961401841164189954309977945694444157267235719157153378283042964933420230375508359750595133459217235827231120463150291935227975691479480097931891623230837796899729943830373658164988166180835420294603667084166425109743702956013589222189747418738583504508517304929973200691697388729624381254862083366722319889540139707827480169750021023546725334668578006737997033718238314759182973656384288951685848489750705496103273184208741661701887801012591427708847684344070304332312157148839460611824433064410737780446797693572318595116970104934978268091457609550806606755147130410170818800028917703157524215861183625176166514699057467305410686635939638732918318781037053815940479932745640496732641065790226900160688870923005654204128018152821176936637404417399380139242304520612395083502032785231898747789773598463618163841891488855519593761073471907934637322406822342009645554808224080063391107573726686365326485369699176502001760305076842105782920784993525966725299059451197972137197595808608054958179474367797978316598976548049929075789752376272565819276029808710002428113675607543557202657937189106146713658254581352991900341471646811106457296733971721254750769013337183726033819859698484375017867739921632083798440358872342935346752165914599340507403809689831199301603490329814971911839149205282027192748481161871897588845634704277500735303875331289656375415413132826172293213805215725010497331781194332832284900379504116238741516772907506084920089231500429558451461681344650526487127452650395525923771359853424616692888094555281367635889248370880168146510020052802935167090964204123259677477853179621146373781238067406718418779755223079025023967319432227176721103461591520856679808442140792629089669004999228939624473797286057669344021929097908641323179658001186035297704217190506494723971102522269112983062211723964719964228450684801789385512492783184676316357996315534320992703022217050091134441130628089895597364486073543254311511565417200939291297904529421129306426793769690046455063882955458049910638771493929506695669463040887352792705224960439827759099718585890207677789418968951560559310061885471982712047580256577212135551006564565880017159794840426124439638099112001395032861025060489029534945614628622962522337472637912917872663955080052512993265392215448428138241938414917660876289452975641011682934231942316050406151862434666610551370500492436131301975058437547638768454531094791332998469735829495734115752575090928866392715204798563439331842925059586766220257725725484201740464373754584557900797121552205709396007042800475542711689911319348106948393295942970545327447257542374499975140371897938250993903849060144194732511034311250114585497976688518162763053991041046358342054055699588549147705550406800844343863981566478942801443772098931578758179647440323259977008771402225341270788779776387685188271144121644563474674942169192410937861435969404457381622016082338218029283253075255138639002097033868246804832960278911440748124022770767353712668000576874853907786476471058054710332708760237219414112889863154696163823125919969850343157430575958935123173962600939159281777627311249309403395068742149014482961848359484483699196591395784769971566220260012335838063596491497424537441268986050076354030578668275068036502886475716365148010761664047316786472729790043737500363448073381951225336936926999916837489941964341828339312499236777122645424712043922618888931833615360408012828177638501813410012971756442285810766013091250612766609346802315432673163602222763931311979984896973398848506225058955460681442021770509765523484860968176529039646779005172093678985006677523778134187293932431250498206864923844952807735247699680940566424527579045014885293936322265904618267199393551337613786072342154962756575005142821828254596338179500305341495966948596909183593125622681325731740001934528839289602924212485459202756997010694349436420938466404104904171219806374180738117622252059841153415939320798764098289111200005169629246847622964670850416510586265450465667480423579759475098175299747826629803751125291152959846397215690217761419470128570276394303887076617970926549665323810092045308617521894303683615946916944672162215751435772983269278063141939710868146281697260645112363181211595934132136240212563158996742471563720187008087160755480514742778834586403514975638561166264709137402548934456970699900472857125631502900876560433069526277759898450010418234856212624730611982130895348434078517573465397947199845797475540691196867341856075643678585357678039532816780003293248665862334508820600423838910829329894822059394968970132659553465299377378009484711413343093638457187276202355911916656926226788124228984963949569649495899446668499323365213100371247503141533622686903009287225083308040352059304871225623510191001777216893556177798261158459807475648805343357090080352945179510702637468641086440977547330973495947852497787137323403496066106763458482267152214247203809328613812663682535776981163218315586298911474458323328925713743250658708313125964787483187806371609585238236736069501936056376378554778582918635317649589959664935902818090222217632442977874311755400153616099561426460541688727756203081674672339687018102318877408237575255932077606386514567758819919728480501349143080112640415387466258982956866667427200392693287526448034391615918878743310687463433188468315672593010021905434049803771592379791017139391351356450001167318191626569020272032278600848636676038978667178332751637181810413927829454446008846768802383789304796158644342227189758249300022776459871046706406611637148667793726186679184197724843864424339910768274025735464328794561285831765114339795253371323912757345688711541209551396557202052941786678932051066311196966267626140954880947321681538003775973818118087367969051070648038555183951499719647435937408810873084997661577955101237104528843103231965542417408718504598256391633871031807933229417836061798597245650158888398593128398992312758832742799503462084594281967877793137108327711708945481011210852747869809268309865955558507535874956058747207421445346559237682346999924044886669663238875610461377998588874690573108017030885961761153663918211601471756388542103480107682365605961362742369858672883868558430212521866882717798543941903025247216364073668639500023678532889246116813876863361888231611246489057608057055122618990283160282481229261170004714908576303609780553699239250473950738509624855493759028665963814804755598582993845371448586915634378918837331829703193695610058061624421853182367668866610168960885458134684614284649874090784455736976242956674521847573862828530045412056931324521688910020594045952316912144273600367432150538287098952757129667879921397307409046299021467693883842343209915680634842664326396674545004643455670416986737519579496521063395798772375897563407720142587539881990933998712166215083800163481074999973185847515569913876713467188692359826159545763057285308752500049863113793270846656157107138400437879051249019006788963638569489638653077584235602004328637349351165167230753361294914400081986429673857174187382395393420820268454437143782049543408551488892280312590078943438606575713560062009063819559103309915199741021254413262101478768113896360132929275042411809735722175698252354804559590613179911048547587866938735077209206167051204349846496724045388674015051201833545755284549562742562584624735184604147527864947868573882845612556352015616917806020908626866480606284786771547368118692515209680164892790118625080492807124122547162516613971179210065113886841551659662704551647046303655025876842526971199683715317670480604113628769183834527009276153818887423859289180143342048949383533214792949341005124122768783247830346671854846041793549385780977117059321413337588025429753621192340341144042911469477910503655918965330242867016401437712054090163729318544790517912223323402089110034151847775021884850393637476797086597210460452993085136197731556832747487831941646403599192517436222763328979540434956245746796186197775643563269289011800464046302693985288793022224181980609885441140202467167810296279121373072582434995568593487052413376236008815778370099118571035877786169528860312596021418340212152293982177209152868954372204088521418759391177484550911128910478947883633991519280549054288844509759782808080014427219656043926693200013744172499284231443320433158617808570568111190633246572721617837347666459274967125641074540548216876745828795966884915767962049084253982966272559783299229683106816453936634747343027315148840140824511929444308944145576254248240721217345561569311944641161737526113508255440369812880622311693373713583361009553288350696763876861369911013482893781150045081249568707091173528088467945694305194650369153598966385654639200480446831610901140365491739027451788854178897212938909629232295417863428571104358266789891060111337049906878628636400332291393154516792159606597790152954707594595161533088000723142219362482788325841573635541750168415166823143752885284451432681307408295456067938993165764017729127596654860340484651141544519324858075585617352932097711044429993344855062658032755726214678347085440962651923760029651150953293491805011739366401438631753041341599881353926458488467301918416851328576986536093250129124819573700897374230429052223616092056936421931797839068601654150998380194055519409609392270566510091760209430770399734381943178827233090975577142282902431809585220911023048188201673312097480013296442378393489905583690760935574148159773209210861218914285464722180987432612372854877949461163113082317287135293120704636310998238419563110740472136491927973097790840409688379444044319562241422896549419559587588849317300938533085440187254900016292839645692529984074526363906074217142449113639388498047707899880891515814951741636411180967302173547918131521429100101048486340245961168575391964231585325785263552303521701014031172138420276988686292006619848748734446858085833485001974102794076218570589736080771039372053797965311076574654816931367116810857712057426098922746955073937863469223567252734609755299291373909738481116025930122311597220708739694965250836802162304632548251006503749605783838164568057761403247152709918975876239838520642080592587714580248818492872167653152473600274952031493342366624858687092014714094982410220005124043273423648246577462722719387092907332723595344845559996716540835341393455194684191085011896150404977993320212784348222836038933719846905200375093821976863333039689366364924389965300029668435758436554676859078118213930154803271236087169143769802648316097414678673346776039077420966697844939056130328278715428015820083860885910562381517969736164483622122353909636778645901705043303547338424001859877721836604067659728817688270713715267405265037142588776843807250911131325460233614240296841143943567063626659624036901190961422153299211242126473630723794153137634351132534455342029465870763394435991771980160570144340829031543718463130009796636055949258044677266054953501675890783708857922513949518272007578533636901606340532715196259165968546957825008875282700688389411662064075061531913161541686878516874555609525221263952029354211690855485301013371419548577233736407174681122701322769905949928606641823637093599473641994190120042864286267004977414534186327898033136177286905363318812263140842196516182725874714706407110120954257629128475209616066559801190837939766368627298079341628522679285022545057978117317419297493580230412057826643662409968105028471088100327886376077331639875326250430673884029550728116845318984436525533975962333904752581517318218082253377900866026187809342209220599884123001966071864919059006338953179870894169042869351431370860391037758475445573058122478384590581681323922713094261774313260369025749380111371829877986876383638741946133422894145211413542274269448918018183488876454745426828094224076006412595152567279673548214955118682085016508084088878062758566170736907344023638380642201205094413125271431267977196527631182086986495592402776928341211968195198244193777603254706196323612349312408283706090005518267246403646328928704306887440832974906132757008761256333479766819292179190589415818414001177493006454612481378764154624020771119755306820769777142571033553465251819172473197456484722448874628696659874980757941299263241966042088205087603416183868119158049747571147785127988832482971808591473594239491472064474893413578601840111803750967800803018045829491461188482298295617501164514438340645232803851802714347919661025253258548760797187653018066307560640159438257130132154722057091272792371034836563732064685853035475615564602345172314176311807408983981224098987685885768017275765407956556525816311896526332378418863940515452622748426575018046556393719677688915509588278938260862303763345463913722409950705821040771964587633228734655200550189607718482080404073965568474941794691748182555360594403849933739438919996483524100205230719267239859968226611714831230771785680536087497366531661347289288969448698280313554148334066909808744305187333430708631887797759585801658578934984470318203803123761202116438797190631156304211948555126553155611170004093978269760558341114059984416125772429275402669259522615586843460570316300261375549055181404616134337277257470338492181052492684374302784798649932736811927380178075500642619122651412423963768376723085904422941379740900771356886219254449190501352784089283815271368771316853734578501860506225573663434818662958689489485418079380891184361677296180314289982755887044010149495159461371522488785822596567056324376670537466519555399663586134814605493822438669673439594102844113369382136475426290355011305315709849770838400095095449808104126148435754552393416026857036734614715963386068363736811871287330848945560603478787812982422183906930471974575795065807704186435795435541373365984190775170930711271615901973741032771088556211781145977387076367800712243802354552235649670915617116496672464236228539162769672424195065173197612706363915773510538711273443496260262111936095414777337841233188209117262089224669254271730574755141494820883421768791553629025820759580616237857045772969310988529787489324557391444429406593163665318764637769371233037794106215479043539354305581224762679632269930000305495806693864608307648220262617894012883080509710792253003663205552370328543942845884642239595942142626041014078305990764992454874683480308407761346856760922494570233771785079905290970341247891770489140153261723672183094080580649995132798124093567185090486335879794569360375059277274764237655056817387969644469955713512607596183035310249017896558178184353150125912378431016478555778260732734768512746251647508551350229115383279786469122183023090603208714706568988161994596221205124655739290625101334122855454855896462230717538701848327695656191540572610991041692718967661050339125701978668198542686921119116412607906036522848956448290737734380451197135278607728802020324890387069611126155402071014792463079412465769024023679230666136497014748899209681252153583596503579283141613022308319523242560333950939709467139253341980832965753498590994508083901864442049662836062745252294272615302814085089584797062422394199156474995470494346072056620473322990149854845184417993843284056088866452625778021160101561007569647550150750396066586311272790858670463803728866663491621043209697703386905637014163560298354499088992987800853993342957891069336171868479541460598475909476077384426305630718251194129966684923136212412520442112479613790181702609578880640942818119425017347134416644355768479139087875001839878465401761832690367814884174313864152808985990665652936783649270287860619458615619565814062084783643841936241946784570251868117863282347917405198402457054945533567675313297799531955263550222163066290885748754780795359635094446922414666907337565236935180134685891367090413150213190630392763533133174078377074366827466515462327021263750005584117187079772023835839902392506751195400035672013551782842163621611510965266953621732613289219873709206217601290146053895961688154765199811399436017160573193741487145179775101775449799707212358255268963030427140594715062579028727423801300521526789758351925715336625439005376249897652647656762123209319460438451095047859992887208222834934816510404944269157823016911869738354165317349748648134441166475601622590856846611044398611724473356911755148737896803495674170004108881218661858492718295598166911785493464930621036163968399297993189857435237484686945452411404542020632232578771341986457135120123762262570870314386704597527289223776093452341669294607376337496292736012049839486844822893520151342742861104013376038788816529333759722396101308205653553229200633337774483585137361201716660247832931474115949647159925413330375118013892216179726568312922612676520460808063691108807463734956114574825441205513986706687694768064884257395908815121012006892591321214244741236620143270882328659335678230105323199114771304027090009927939724605145317714922534468932342743297338035960400607576711289010057368532409959428823524990108701096586541452470748314929676828921201794559712236975550293823758316504168536872345384609638984292634090073638892156895738853084425207901794755555001300294908644188260277251664688693030243943479756717772077357662192390861881037579972463738937888118682824210511914095817498692314406196361026036908573770305748562626783979469435566040089610417719533268483193007682229371770921651400593896441448416261455163588269109837821176387138892703078196443836269710237855549910008729424009943880815536162535780735339824317947150736939250979064969326407018071219799987191288758296883986126463324483138678252527024792950066743577305458545494852320627018403809326722319661279492440923592989808654579525770116005456111716656495572276920865491256274274725014984741013636140554055073726550984627355591287930378437771372049623160715575066131876751176579688158069193585696090671894959714346774081327372067767560916543703960135744933961888365704063924175525182717244806446456255031506441606897355868782920290448875703145074222395327152724514836458120623895096783533722683337142767978640316716217945747202142045697785957583634436008964911022616367237238917510141762681108756825700151509918793772537627446914208881298576006141241202318910433513171239416135458551388793930092950041998590986629252953551617865345388178948156570627653972475909643971303607864020515446037297035493389593884405010128162808580759122811869040469233691120603448831963385968899349787110090959895760390689334956327735473703538023385221388076233459218144887491685125275468698486994323230728838438995197415508384292161488863283518805456322669847451358459151864543112356719038969744422707963455817340571266496113754235686666237210349148814032546761637284083835427887943109080282682974588665426928413154475419103972913458547148344749107508449835340738428054754598205144130548044872601778022486459709148809509511379218024455183495799499556508576878739199234001024166332526082108144452745310008979338241989507359936633946906712939416542592189197878280184121736843955296536929438679677751201824047946099151558720659339931126083333283126886760770974929834087431306920307807881074589338564950244152504873405693464249142741191040889879588925322028168570686779144121942452866304828431096229713102835845323640419475048238171789873276531969379514211422072593680034742443405035412967755719395003556975538959386679368685877041877585319002526132570124164963097068711670013520162339305716992372761284764316733185986897672277355727078332264863852825132275027051660411818563406146932127377444714489390112776436628060499225282452034176952419276676646534020695891624773391481249751423164507044939623724592905508327480072401795905435455050435436520708144440521012201044231494700179710955949369924622872731153990727483984856369843725072916465437715533154129800717534703285898985531469440712831446897456671412877167481405199300671283328374415659701133042275943521466172172040446744339910130669259723449347915229357026272624692925770259352298701017717773338541107760097491727712251724849655189994985858268832479213125909004695460743302798567680442105855802189844386357578289813561184172694842562252326714205742725332646164784030796342184483057168748577960296676362996510602456978983677098708163731745453445757637141329522130201573638856982632326608592167049716657975700838403924305517333822832096621933495577834456527975184530104880162292993509591385101193009769891657920932044639556193062254613772685410917666689205090822331808580728039631934272223175821000476825240217113764626026669189718195599731606873281129572431828561812172343571942249492777610078102169595191371676951117507662742978592436878286469203321215525191433119860820171089051933874958781190601581713917475329328507364633209665295503238632299954190099334143207768693085147753457549188089360854265893835944956719335620094218708485163348282196738637667630820107346128718146251746068799238319920321369877577808315821118602565466123361130553972788812108563279406194391223973404236070082623191643095381847892713579344544454593890093070900405679694070706597053750393193566509620483436013029308642687199753118465716820736145839444936658781121337719782313249125734640623317805767384383948987675443484475896752801740375546711238502107619790961179889435281442248072090843384099036013878130919866456844878770397455089068640580957691702510914036917822366348272697652893940429518285396461977408709180234477695226802091749225335617418698646329348855911813048966977420135365423659232850894285767240850327665761279159098543254603119749128458118521627629498402254842304301868959045929762445897369627346257463801978017663857162797077853845315618640335163684969668187237379559914266666066875775228570776981436522794900669333575211073362025288742753709347004016327243155532988638089778607209422912705798483680769612750029228185522722939031567002323442846296090423912474616521579029938668871212434587472121895787801994645707936360861369461348536340145492919158783374065580657568196324933075729607556391401186013049490933818342301707084012775448324127934390695638068323949176768356036651299113664022488648202421407184934695588015357958960390607540398119509951939470572259322787792833286656424454768360696873459664882956192966666298994974361898487673865550720624827027021807119302091286449409702567578411954054557917674932212983379389717576848205866103523697590554251459181552783180215746165779582545209062890949051157510526221091228022447123582118504209794634993509689616080137258546616517204076645246128883459046410996589572014229157286642510955947823873314046134593794541903597561649814371592282287296134709720916026955490724409750322612264879286738476277895876302216931075652807913938250467276868544878073010509311795934718670243029001790270700943272905628414686415112102592293756533979022770299397632511438927406727571325081985169990256316017616866466017864643884241309537727347945658036572753310884403826644288878430189526079646241155615376403282816894702735530446310064643211807460842199922796890849598698657092441031553284345994700513608563511297478833289740852216629968338102819810534947540228999224428959826718325454960234017581275677259145668507512659559973808369465102421409612045190995165717713509155552010621858437664488649070149414314830730217456922263767875402944591061068088372363594572556167321617258935059816656619423541396164474628117536039454403131993127218456881350584808157086097309687849592305365665676037136250836867078245577477846859623524049201858131776482970259551338271992331334748727363380816073660684586741247010726145614078933651689949566760167841913481232446420105888844555064139492635123468303888865261278358962678675126201186451549468530581768513763718305644366192087300604109884478203937515106296306188010149631017209449554692680647715301421408069099093068157998279174214685731005802525150580581747207594832562734512302787044834679824804771490470504236056791553028580652087339411794074821125601522170045148117208967362034527884180551176925414581344830819332056744422365306472646140831769916727812406471059947599855922140532993818713334132646154131235146607621959244669267826397946661877002277659326064822639155954704467402619250358844400948436372270092140443970342379010583877690585988070094440927098440094738154179422957712280247656863023656645179467525511182473530251053753971945182768151060780262296791661823284713441191995487586254336301015747934585561953590968517508337161182091641749677546542889177394659964496000198101071521915163723304698990391149425409915525096653879795133388684327463990783556686764033824003649601932200987487301451521193532888128044765603190963114403306721483103973216752756790041221006183453564215399317422618424004703538637046901940408276659731520771984520752445641407612272331861979021078882020329294104943522521121655834452156621229301583463317219425428747447823093194761645371694071941116821860160016084771209473298486618382615319870312893638327474279470468893488941971559156661152459702342501178892399761236798231711024623501757900318658152668743904655860683337738365202707168418341820299880960187091093433592931154397783376875297392317110377776335759620246035828766776076869570156274508267049376703104160414848416949290296552071747984694395962916010868610531614311250328186583491922761543243092550573396194513122918680886899170345587875537280338876561885029282194842809362230864673558105996888760463036763935384131307384270239849721563529366810029996109861273483087512773461411538087682342299896691770424470812890453376414826311865245631616284355616953551984602802401937871513053459528430071523163969359043436205775956371977053028644815440838651343979690859227559504080349355813296558944325308438989913761156174561349181028990560378004736269960423489696213100623758791355272221780512205946117956701352731096852313693464271600854943106460381585704373979263859568454425981337905284275453141302699602801970185034142043821402752345548095083330224208957075994786721256854385505043635450884663986370166034685332932200886156029978392134108763006080310734683868375292947235033536192596140299546670483058558588746566328948202627056450782767975978224358309656449131026373915375432447477970760932808814203394328125400243935941843598828280244817589805046260307585585469526710690909748298240608010939884596125542934116974901709771889880415429386519003981053177696710942472159277983534400774879413783635285257988416719103345754829702051748154909782047349315550587578989412642444129327994115463535574420715915995810107926381770222254258347030866815107505700279705521165868898431751063871169288280674013772249319098931489321779965944026924902484597605282842997135446703219387673770135429176355465616126876812614934242996327480501801207185085672313959542036757448229406143397523531206450960118626664145272205021960018292536629195567194044276608840014340006675275500567612592963246911811818466355019615543216744627965537485131296317911640989243222567370779622809044100212003501598257920478977660925658586236462109029860875730855525904565570251057313448568778025917492182273520629587457549458490192324969306287800444355110047984014003671240553009900287655169112337199328639300234342081100398274298534625386057355419997500279666183958429815134586801338202114118621060075686542329469455556993336629299269269959086492623613866885479708676505873745669994320067948753430826853596978910508490274630472820162684416928277522272687938997153270005544195042197546764322858044553673216370490998724709615259843473731127809967543665240408386305443378884048445085584718348198094204941502094514473708250128945261083189664489661218195178211915927121967652536007252534235423191909667147580224065897889523606949928554075297273191812367394052603016997510012094986330093581985543966256261473327060028990388880068219124195487882866783782674460395071409121098691157235569274505325137910243418334659647205995575882388517732493126638228786437044936435085322548079178633847055839076406695416903069016151753662636208587405339024008806421111323611827259612348581956712024871208482332485364366296300269651047879904028314749621043659527498806305927668150875069937705334327863805616897381509509330392189194037067190126006009874358999578401041174678766251625919440021927384189013629691096116401648699791570380258707638101581613934061809981189194560847929230672126315280820306946765529195290083715217572325158401631852236220457693496644746583662581114242283042035263175190101478272909358435846894992902674758307315667868538842691367279225639565697468481281810008449013996676406246199799411606818071394778707539077320685421877459416863736841000323031772528265963730006482721046349485414081781798932703345626155671620726090158032952050062130257683163527514460834968069247976799479392815357733959515979722188634681155803123763640698579070145580558969517447851307241639675053679169616867050167437325679056369299786412717646288563635700108734635373830728304491659323889486972822126268300391634951897645913470769753986726155548239501139681674020259362885550806654122016010237068903527007744698075116046242822414120218354337805475256769518285764039633669037505876524316414817001277124944704070538380075144500986776309614619938781002823387816003871859283420376470080138254781091394951609697912304129183459200335266802036094826120581836066738255716335748864887975684564695392215851236336349390194025919286684701688808632191694276750936506197314774711417258631327291697413352406540810782566684967374153778235150343579745109881021050004571594579226734602050601076569135301119459284180813688237076311997349625023329745328589356309392730063888842155438066596186217436453617277971410493646701965247420246965761098020064548483231539699084305970864274725569832336953890170054115260234755132706468187846494909920057553622545806313707289497339087355769696658426505155251592568468076125437268700319724530527227192794938127378020391753081647776785150781837289211794586118139932035463863421604086790949048483591544034191380456168687266150670665434364867623100842774134101230152031242257590554809424894967144067625500043615191271955853226453089538830913822573090678579084910657471599864783511060038846785271171388358073151168791731575045079891634497289806644690249529668717874693665363132147574664803696877563241021339736529972778993943688087062444376363065290339838128735781539389032866968157448660514157543606347716538135185809214196147970823662619225871910926468235545013862278469171015796415527332661911711885237731102512494134305894614442349206574464790226198413894253976910980282090848097078108310844729218118543571631059495032375172529877700852542045757510402986787118712919090558694043793983850202664964429149584763224622191348238250959394309535915236408404504577003282136488480511057394014330278195681834926068752301799199394235109634396933240522465657929915347743659538935132644675568349128267643673847478006941944574291072642359815704326528097049083318686197942657595524203547569956359603642968607187208629769422338071614510166406598248580512154882196515108753273471014495567319055702188335190532745785694240982058725505655371205506579150657397574147616011757631667527409870461408327227574597963359966874179373230283648524375633266634473361732650551165608647366381667026131164262012684068134989378951917958694337535365564684764154073311351974560152457821838603640294819824061256178038429185460348316668077744825819107777688165512400987377604745031408356922360525800681848181629406844886647137117121835882412055395842154233966158338790067842243866111721808467765648801633076326336768622019074104836749029412343501973529053699301385429632984716684725338366439973752779113702535294918093139498881208984925408347690000412278931533487391726840027720553104927207371019963579179689811679852364435174108859164784481173019900991159027908934799522731049196934070163381163199914976624217664473583023915765432969322750157207704703082307125109014327168718461268580823385565706210272418483332369305422201215605763304403754812478187558018854548573998041312759003301818851828495227710378125174735690720176407254530189147621167631481028842390467864669782452527339092511727352947935895161332642729267217102741657921170263703539487262848090583686031029130428150759512833568525649571815965413686799544027590253177534154916906911917170738291180375531422929458341635218995630314294688237178164739044736988991087969119142516156573523500886349852269511226601823028292470472130441812484735332360204209391682967569193278294201918005028029233947193223456456614119205332376979257801445791516612093809461987725689044438796154267205101539793435603683853472675794478657986251880063482275889628973156506375738750372568979678511062247585987179968430652015391660735050457421626297526597654358531762679934541352916462493703103773415674708155006637063175059412760305780211142198596317805441032543229840826153508038746556029825569333702980766007692737619712983865847469198341617644291494547515996947115425059675023545001556603341793558608654115287199392551181677309694500539269813718855333996899605739414265587406938977283785892626064562442664496368886286509048017527685904120368874991439851301341504386215756029251468124826009897782590000672094229261137393165700894148930504555090649288635424262916152862384387727678035340124175462430635190234052519549049035005301293844914192119519276582093099958737460944982834125037764697076274224379645544406195089268562096009089840053855437695104647854681848061144424713185232851696785568360769970325564415227389678220803563761774312537297402633198673190490519991339682245669033998902607388166756890632315707558398961608275950713714035187103559793463710976186081585734227754111424112083272309817449141235974197189889758881698123986885682535808690460442138952331704803461533651331679245726537787748172020919547979079437900446500282665011867011073667232322252473540644901769821502153860663366068690909443575046516797184458800879215205606864187877830046262947821125938011803662937790141134186697143386732602957452128150266438245677563147221343943253576558815850815927352789740928014221424830424418345540539226214464349980853235806036400824502526884624392584154530983908463616129526595499457049947168799341260962862770807127807459879785297460640250902041333826261046394105287452446593176321566205907529176422878714418588856784116327660197032336919962812993646653263367710764323439866030578381602467361791044197557928765695765989824943214627940121283648155272006950021051161762516002938878535751853296388410306714198809619252987603328904030737439205042772263232327722434470980702494637711012126877905115025420949898508178832283108278052069442450004264587764214586515537803697049779508219121424553171142340349216950068025807322570297800435177853601207043551776442586871115692894233222529365972804309308733429086318970705627427489787636088818377169524269204978977850065388314300629877127652634999643321617111938338243502027379651171402871707313265150710687723446077207943879216479868492203655899535228240790067297521621281150977322858551271124043916576215135590525183445248841343611851467515692191278649859460997121735855144430342229057040860323872004930104439752947204548613590075032070624162223320343992051420753752516272376436650838806105043822366806322668864524352395960018648229311874969900113448558984702753491507935578797290592035008949014457550859302710554146960487235042386305054767462355775491755154481717394260454919568779732466754789517839858551781908010480818793653123162153276532194181698183610427056633919788022636084157852241361070773159585212025437387856462197523449950388852221105790415249450813010724206469372457736806304656769886373248797626006435149531036801087409794886612807019200133257896041472977498290590449101962483630762310725960916386360011035163841381799492518567633368125910727907053253528386294898666158768183728262403192695604429795591356069890148716923461709865095624793801731682897690285792996996351480480224460657859493190036585467480523910151798566673337438577279213406228908526350247644624056457035733661527947236064377075084977432945860585289239360749060061777491621508004803026631734268603526852229768994525119907893619021707017070516893691298351144551675182481375189241188105913928210027357280585123145804986431941891838861653511913526573499249102237336584549856673573153592576215934553129169394135644138426374041445490370379966518084494955100948175006214375677282529696508981507674964225307325729519222582185050534798419321730624992475749034370330067560081475395842990067693199218011068384560867047310105536824441575458628519516999535371372916088977415946408959019657511612571215885160646903721970041590619492829655088572855084433525958410624429417012652086013260075035008715531825864847933517994606277747185074082666471654189690379171446572615939942424921206682322170570388795098633735036046879367801484399071382104208904180565828294147227029103932950731784079227452002520376836523167604443011619142004742323084846302215321230568074967234737521810253529940890286915406337339657086744952664816981357029818004139601166390204826995301673061313984555518448933441220506511891438317017070283052339016199341619729145365433010672180201872333806065521570585308361738241136679311364916706739244274246566529722109050477902241936793549512980446416583837757321107587363469861335758416399863930150251188407732629188340186594599295448323031360628877003955222808951027563976275635651686540287637804193218419901539785675605781779135629480198481585256371768677510451452859405573744331713576263489473667984049521677254077745204849901763500737910242252107995321885195653124866874791050853093227624007262101513406634969687613088533515959527937261865886910308214553325891448533024967345436093232475510977363293686032936929339182723164743784493515462444913206580443480631479213931456392481860370691601531350356954012719521975221709347721326093035095372123248232286226773425222487828948213050013225751200049897940110445405299434014976383361851598746283885146824535821562730036265338566261887455601046879705380535228331469782364265597539339981159869604547236972649804386532984779871912783646100791714287901353051749618389008113763760479368208465256729801949397923938184633661085621562694725848202295056568983008294007876463192714249375944935507647590593037922613331804700297009279768243004526059632910028805610684123322424013074760214125235004424853366378597935800691272081136451333201951380317291472412816553636682889722395745865546861003056381783725195960659330425462992395583841394610179632057932390865055829128881028013699652400872483874548929662540399105316393947435384530115872747582845293545660139903587195606057929589489278256665142793153178528841029789826662960156682285887778404591777139254170415707061167024399814945439138173994186425520295123235515816020693770707785875889148900510519941913508460775933577765334665294965986621350268738702348468752499264482896341401911720242815011489996008463588955930309061314082578200957960626089729746715391347943320282539384789259039424403214699707571226890373697442844081584551098596865441008558293394777825610403770975182429828921232856367200642048598277677715108689502364608790143734147070817863001574494336637069556514360228032311666036211957689351426422409304754798858622171389734794112241582246288295061848251837137836505885718270716398288500554087838379651778285929418105547420554011565302670016645877743315754970265543431261198015712527262459585105103389278405073108275049444758664467839221059909742334198534993386376294113001011525606771174797348588481097374874503340362284105330915065549935014700968794731147199356102300849543249365174734935167439670289556332499888793014870931373032389915787441035252751577002979289310370168549273725333094007724692987696689102109189355876274866531055362331893544286613968212975442722133509899826739173507732181272480990989876465027224073008110438955684882582016439830109902930953383167418188346638216567610610247754425646866670535517821756044016440293306030247109034097839291931028970667219130034676672889265964419758951869923575550367222572010651605001331752603754678870791313615647182285841957128376662121753745639889667955935686226836704564931686757777320475189061288906298257443850256160966396557172427142495590290680681007893622924985077303963862644541272053119656125912319344206239759714408455586418051327911691360854625428751358869999540784870763171994279448420505170935016254971120913620219849220193612282983368345117114292634120584935539545093528989850709445907414136910239641943074279273549709177800925179215868133288764528614728549439507931683377869850205426962386223658070370211395958673638100039061769422494744970674413979123946960920508592294972162263579655990345081992586669209042696840532311875993647264165975642930413986594056749674190500565112255169067240199303114395849436825915589416885926872914561507128584767215138039036946757855796673388393466875100106697338521038900779482393628708573300869048291421896714459624071830643053970719849288835925367484880070226469047192296134935398804353287643648336042015587756185462874595488639956051213140601429607275842512844670897295726459363407371173054086335901261153661055329610772842858089607147831155403634005318927573787840375276080832206027266236373668819514830632652586812073186087078573951907220936575532451124606122606920045034486121715034536755457392831981646928284006350879104667700145784378907543926885927907222384197151793953706712135570827014789784839087731938893191852182652428283057814964609850772949671543915429157714168536662619628359412607802095632491735455918030528228363278412498785087672100825200500852913066583146240967459845020174870205833643114147471339221687372618056543262070729480891271767217544082503669723798151728834207612798319539443175510775763455891758730525437320655263987260312334180258437836387100545291292223626630336256349493529022285013763226541664478183000345440945430792016575784970855101790662369087957739736547036902975673945415668033872061651808450860796441321864373260637268452936912254081585824473353491117361342938119953629933832872395102860296305979473222158123517936521776099192385248153024426234668305457598628154535060283063194444668606432579444896570548020960809236156981219656634195188797461701408803445125201676196015623790537884372182301547939063841953046448753786595658812905211553983599728001239070443476202027699965754411474002527774406154758762404232028213665074888645492460985919509199425638266305261981571405119553719065773102761327457091164266598686183113707627512381733428646091163887366550653729296487443766017356373028827253804909301707934085909901057627966542457127072696515733633198615548588616463469597993093638727829827035866950053317056774213102864252981623192150234085625028836043982708432991319416162407194286343630562680851769775252624105956893567629846777068739196221658666222493480013279597636964463492262296149253703241093202245768439264426338370440954940503008948318360753964602698644318132577603398843002052999463388750376325828597548774041199930542680739414934977959032155513796823301463138995379531307964140262811954988203268161888460336708786284010668951228046047479667859079357463054848410355590540614889427357846779414979506452968200046768683022711553236088867264654341254528963319392567813351243239518646173869562864114038488628705380632920588789729818017706571419688567594565155315201957367160970316661767502849605475314199193101146881377032980862430127766660990981077212202103337621704798938988667934673058557575984741406077586907526033706328881534506839342770931785501370374633318226143582463622598613762035666981891383272893281443210085458475624532809477908202787785238133062602409048774650664327542146148448646124056644695165201273586041482635586416401051947624289561116862835167322738873657544434040746889459121152688982157124471083698559593438325198770927456709592946173613482234508011550882292221466937935989031808952926967755726471549380879123919435068311874142291806014719908254866694448826356913992615152671952621855217600614016116500155689668053494297839136005506955336758726374256241126998866202650670122845450863358327105364646153100310676603841649679968017834340990067151132667892510496744303322050756155259839141038474570039412804513020403734351027044919074683128953100718558214906620857111812390662366267902310598098169110676489310674655730320255877169809600295316651889528360609567422228251442879399640723405321978990111218229110927090428457982712807992010001937125299175693382339519124586420619354077401439565792923649214052718026818480268053197208826832343635932640296033337733129411340244665898990664250972133058825891762313756217138162658694609114422095144111872075936357001532517994825267549887021727043311167170046526343871821062061890570975439563107859447626600259640197228596161335150886277133828113549825521514744136782055846240677585506241946243657057348349570618212378479183536959953435448894198114818340669110126120775298887415273356951371212951838304207984233710980185984308974292677247299479745071784923310017623757496545184808051874772894322339102179440615907746934437830815924537828146232896790074495251361872569669443465717540941450818527938927544535995620514380955471971605430391127597864460189436134703451943513482336839892818514490512806742422435829690601320390101883857860472589326513713093700020486240240323244118412171356324489457863451918849722568358427911945736170021069938462910914605198774106185468769671871010246378641761909151977626759006782703042165681374779058414719033968899764560966834166615574103184718727988776261704193768479929733085367451833414169788684431166143543462983404564058257581841355117573158480836098972407777788105363690062870871490419415132508365622693795537545287049597252091469827660884309210632018246123242353184446492177572603732475952523613324923198627426872024789777487076187820826607119344230467704694509414638235195577207534075135369781206065122869615126297788657969683525770242652063804829401248513954271201701835767965422629494692856294558081656298505607759053624159051253061570684134058537681799964442736360852684326521295549171934697343653537955572141507505797746931515369242790266981952802126579324349950658458488542947752644426816376486844655166156948302903543408408478964149115851119606105836217167552819820890936453960579905733498850603411716437020090877490165738528157608722906634927556250690767932521419180531170854725373020440833416175094287785022436382908424373768408884171806857271410594610088506641755179474429152856633469991003573654517520819990284177115006199475297832007605378394730964955239667466454041011684273966678957685679612045293115146829031707011736676886654515747683551209693955673399566435355609021484238817010513385485294474820801412569860413503553150471279314413256905871331483590964541027930939659412267220959864574535548166877247953454257208776253303269514953668701761671982685912866294381377165038514578088236122297636916227777079153812044344872879429478948860326119244357814627799515125829399245694845256102315525630633962607914153101782413891490057055256209205312328084302740042816972444799448411235500463602337977725087663921771140114909584553700224092161721842656862124086291725212184329150404224725148902142358222077645560391655230945860516573562212135049342209614359454949073364250186348803090057800275705005801475847424498252363242936043056059909943446726133502917890544816367060636526992001083248500349161765452766792708770921163551379863387881315633990084369201407576581137972564383127416397747103428857052783325907766417714366246229649369605767932435007640578517912509422974220345971388114841950343206123858471919057192382938476524773095915298843623315423842158949597267751978629370354233926497326422015930521908771307287214060677993776506545750686286020202597542362290853002920613003493626767535676999975702005135561009695624201948455646384423282358925485299000061433950836997732742064294996592890623780306969796534808560032758822668434686885015407714136970549673291854596208573070237853393921272164936891333830064851978286420139146658279000928882074385440494081650133024275856485410770853662565776846609874921672168872369016672151313805217695192906034713999459626784148449718998058395595623143721371865457703971558086983344833237657556921212993199801307720508380976396054333115606461803936815511029353613059318925822297134006300866096190034324892834465653468271418420290354001750924684423802113671099875915816556466967211860541235870941185648669254071944819208908709053355865126037937847877756157394119580026725374024935194724329757894641666344414894673701761157051823875557918857107102753783519247972887227792586067501025255567085095348020553444384044600407494662207420965238043877415615759119314121956899097080113350269355084354112194908955451826749943091540681883618459716924004289556698956180937895214375566246149258349275345573473126775942127898266183302572895232943636394412608794729604651710075266543109655086158425743039232382613077126778739274575379714364543609372377092275105684080743908895752029299283054575304645941349853898600127555558123737817384111564589985581121432023614194711197388628135525539868520987773867217694125572268019508666900034107845152103234000691270537309377218080470458372047419770298758981893256590758938375136497234489285678301353783329458986793651006666662287552618372238247553783865375201671558150154046051250415669596551634456753716906823222549072608219212257882010709894040638642377978926696815370573702901883834190652559592125324200157306560402024014507024283503802902546030667726162396662223460521679876280192853361275336286609911658401634938902080426032019001339031691726343872128945419462941579356805149941276396611788236914744882207031988054979757181377322130940038345308471008861962290142322829087980623990098106072186259410661186801705357351381009023307732707132851190981487318746711112626463147520903801540848092219072783965465692079973041954370506061704118591509496843630364649846845454966524892480032973767517412284780625280850010736719880683646880923593312010909401896212883002561492840791551242541031169040255293924136342546191264498528072425860203894034909785217833353840267928058727363461373382969730604919042775053507116270939565237699975744476689269238128490594665320306230155815665632255791897783461371058798722283824127432093740252051976131592200726837610305689176627452519151669957034707938460839254719728344542028627524768780291595977157605997623166946229893980434149070206965939462113038479753754160908541147999437920958478177931031084677950348833707685923813040525109156398514495611946964644337939431058870959912436034639473029862462842075947912576776025262407993704816670696734844812494874072160875787411012041013913864763766392091036061196035879707869742971146912871758249071453138635706972420622894471194325336109031462937449817459436609017059119899259576450604911677750348833629577175639397954468254395388466138962056733858895441798519967916196910594076215263227653464907633471537592310926135686386060093698712502973531712768491883429554285224826255033509596084528687056423180211796476100882267354675485434103909680400867641964209083831849679325605165400797117347283984465682542834779896795534952066121927184317481752871085388662083690740364157512272452641079441150373411712545801624460056557841915695968943478693817638028192171934036570364382722051716000089306297210790422459056829465502860684418555138634292935746430739169371275071183792557612464987403695875020883053072082348247859365929114757826319585767080066287163417464683657947816047605741637511015722154746591103910695165093929469945716154824009419177365368027259281093912962251417649205795821554083675079300780766326527157825938339184509285159051352233311661464925343195412596822197920539141646781202909181421563688816065095075988243851790490953453864283505421842894575069234332602876350558820191534855730481244814221072639462464409726850081195259520854263834603436850636795928571787737426429124551324707761920709171600747071591207645904795844653286383023932347410701913139195559961889050524657037863082695472202313330207074150211297255404728682932456816234174580047809206751079790486415505129702195105256832285935697180919088775647283343500866861826096737140430576353354342701043508749161356220871929584704409599777001386506135037131400911034500379705551623996444569227932810987036409740804719184880705272942134291302151358281357515037033461341532863255633357643148069439409434905584535937212770214758551236664890669926125600349845704807498837248353740923928661774382190703424308679123943327623193118216950328761920165564416295115305071209600696923141098261240795669142113788450683514350632480528460865329184716891174319591668066188799129542808468969403215967875018345036704647215474378020816089456744405549733696569586058844951879876391195946522730659338614724176590771915981880625111072655686895764750759433800898877893745906370206260303382254432150259352753313435426590112111569725163688848173142844451325578563068120908555502378029685797389151405677321396420931161743279674087871026428402776123815548161898998895112442203186737987188262167236956755135239021530457343864349211639878247245014523044317531339303412755514798727558247753460589876747929166276758757692360126334872726369899474460270504598939129626829277779339631251228278586503791891721946330714084175267719297266350543862098209415641960453889781354456243899583295630118053689891551794922019003429437424082516477889868830026124579672025101751909165074221425515444989425017288499928837763632040836596183606994941046981675397272096090924055212788474207983875040597365810698038857797724587193377830963955915612137989774023007051071864940241293671437483846909822479467185764278409121120820289067553813602303040530619111431090220190763634885739129077613330956105252385046319579916094644070228969578520831495448347021926759284560918532820471555654017100313687756861648476200923210323310707716493575728519958823332278629872239784877486526213268513592053838285748961715304544371522741060311360986962031499662496062142949053061260686242514495668109837053191745531164599758631510627492491198789046140312002336451603626001765013070847567917069270258050051493229417538919613143859468335183065871869506568187687485513949832318406258601116841449655117473228929480486986062691873621490244756319845240912458577329529347841734402003856388184697885337511920068888635791293318493130879286797961228502924677673320996154353588436280707864031541811141166351324352814235935472449253812998939293729167721137890025194969600165380178489559600618139517547547223093366274080020440485316895863618403507287365313166274829870705708404789708757375941235392386767745065295642045602840548118816399004881050059569519783651586903886185400184414357566366845759838258047286723534711210462715658710912808182527883106518361475636614498743680878141730437708352438420227903124408883605601973969326235075484249401212340586605904707982508171438671666138439168399897575320883306751500632343262330031803364599097069904331276358580150445937284598972918493428828557880915778360284964983995782531591805661666509660401467908468470755145398165749019308648545435376252210074861359933451838654665036939627697211293505780419059344705641598732367354152979368152787515027505914324450285993328324341396251330555566163394250823391196117035752422706354239181059856789732408802455221908486995206900571459460852554226155683015874135287593662351169351354352103533983742080428816290201384763110385648003853681455175927138535696249818266634377036724437097870560787595019576971630600996705562709805231601694558983712515700855222099777227652306840690290925959089861062523808098593652339416630638669284330273161419626938851445666893455293792075116554888822564237536548670471142350334932981586157714317903264914765764677328301715487682182796143442756608989590635371244574057623914315104907389828599962494139881449466779795296641918910067181248924735282037248589277480492135771830299029491667147857844585131873106044411098370650889342303225020455177947318152034426805183077579046248544377663659268363086176746820184241235320052348798987790220331879186388723316118526916440130258168778433548719107908151677994266976982931575734615852355274500566116417072176594176891747790907542849368709413755058196228682451378507902552476853787456736355926034786833381648437423994797864531129084898535177702581774055145157991586850305928746219931967309491606628877545170591443518055654595758606260864668089805089166320527749346338399256132426649209565729572660482538746828012486605260870848032981241286789380112057371654477553993047842518567610878221977362611091268984647344847342428127973778493693359933535088095786422115899885497573039044869626014456994222869181861278986774638482769976263705579515438591708227829377567619001941079194876570730492617961864292782037759198848090164861116848790542545853116713247179031572989097557965119473135436591951988063455471857379904827153773188309907034780459398602439617509440819292246534910001177988697129817325617641691694899313295589676746867772077103536679783904250401670165289650660983488909702586570408439387966712289975233594572419249396784107805398345755018694701560801080654579506258349134812661278598370295951340099305880961649031529194387075811111078954366102047220295630013747701483402671885615130339232454119577457853977731014007700796186944168481649184237901237089914233089926429981164337066549291363896779072412398655928625955269765666121560326609709401996403364120917043632793674419313116357956839962785116968112120359416034374406977578903080870590581103204227699971026901192610892276651724994627047796536710046608178713752864641988156615386896563331806023835768379419480751313156228316399132569199657389489173380227954124455666429962711497361004132794920587902420971523734966391969895178138211727920292420382336508367292370661809138215696183897915633928187104077676676300864599477194560548002755107356839337853040535922085652112471263959331037542620449331908763196070798476843099234874379584302375061327232134697967466224889453385008712301377250399001539091733219391534076426538025996404923427374323022660912718448263339273734354882983622427368264865096589719185480650814875834197551573322847532837739543016061296613995042218872164202792002451863061645583232846012485442886209710735626319406809920060005596906637983955747631557533705632454936052374916628367416076114622969323479490257984602885904096080793518364841277220704404735018865064870058894781728988364872521354454339333482758696950892857190965293510290631890943259309635323356360479478262412797644827654336162649695866194412759382657111902896916787367714160504550710111447525615881718783583278740219334491012961630277331580282233522511064734423874104311504919179773233329925950417386559755590367706852180209083830308219064576412765370892180885143450776340597493189444254781789459818469807832140024566448689981350540786679929726708727983869115998948031720525205193881063680974543912217950900278352699259829461457417004063599059429814530406973472065821332890482045512225643456845986478189456866223649916168810071922516192782948802616985604347588038796353266004338175695096050689903424010915190568656402251158127064573366197685766225966886804787113092584363971663416880682059540769162942701704673769590867025754718261428431178252639636616977618756631945585348657498793697538940798599067599878315851260101364294498767049364729422853483498598346729498038918017921518494255125724786063728716302771626497013136066320143987342798836801937822904589272087017724716816424673088283649776972646221099543351800447796283028967486421805104686629639486401503019318269168068271219494975724268504458782476035372353843476653169907933447359299008546204402481708865475054173094582372594472234280958712354463349249007102039099766449269690708145670914506993910041882838059814266092627462742255365173423052040632322272352093905897265095076340604178312613164385169592863183507073556474027910115468369625312684025622413665679719091678263719332683028395912994834992359052522758883285985777535980469366862374091845608914453432985078301498975038341985326022628108727738037495828854615463859961551940252798292183255066604229991688775013050834286026893745393584658684651251067708650454716871237390558147845388305881937478487934843304916131677796865567101751341300266237955819587297206589446916003626208606420561360528109094212536670304788512390803672798263053850232620264935894548334710753075149979282622224508557596687567252343647343656774888860974930441207380164737232914157512274681902829280979095982477688729393051579351106142416588650369703778154667499487246248899350375660573899865108284418289830711378441350977046687728112814407351692222289170241713982234973773907215811018083044839195633175686570288919409886479410383643603043569309912835469214018430874668149267237383291048308560541504025249683901479675296447315796758117885517374781942621098849725209162988335443371039910710318972492751500791101324708014734949680674003868374755797957073995472324981604969075238904994848566649933009361827365131357850240072945248551253804835876655697768782423591016272321431244404033442300047392897096378858248092811072775314830208316884765514053602322693428310918975072224097987480330034689284318517764642600454215424075664457612440886391429068861730401381297605239079335643083103408551122415142345272076473693679352745099559219729505664385720339036859091377505345667996934825055916546361890596471820374016506634182007306513402738373389725911054863966369597453682110872474734217930047543216789724641782025742093702638713866194185178977919535093612190956719877545933764120671544871348002256076322291086057831602877322780632245497606616662699764536744064013234941474595139150961158615627363406191914827434974531489788091929796196002609886214619764260721453285915558695413204827838575962075381219792582119222655013909406660920580652632609223578292550090660402621905435604782392354465507722595034097723189345774656933978408748284671172225464671014437333813347512191159119705267713607163559215853164339300134937369523696407827836810028631879848603194888373332846830788848604487269334694077617499507430261316167959670254656184899707762292308291305476823437212500400201690674466072515783204623991515072876037367666696897822621106447251803251401004404956377711474877174070294331798849076594461057474251705990365554488394481426172627340271600897321308947006211289347309613236638525423485731164409367260311094447014014047315626544563762055911252957663580945078851643808702624118242433103924359791811032023316393000765676584682177892664692614169417693167257985802361206251426527554263433249324116392956386202533814914913739469906394511982915000814550045901023954315684060517126517782255223745110195500016937085666601521244788642889354225897075319917496001517649696930231399563800633730603833099405601082961690080839981466544740403345777093022008649578634843886590717995807833161912396733965051635997117946974352416105231603602556357422028311642328920202459021001678858080625940292428591355739694123157312959669796036537821394757725724511120178217603098920966433139309981542510823938259029718030214168030952021305836027692513981909090651179489865986187294023201831359380304688429495423762691515429869339164326611491859205472311919574897047132717645618602137337235411641891715162218061181562701323273803510291606952511481778523419940986768841009974756584192893075439747514773420009287662371718998730152668877335278832213496867407446097554819589109198819757407456381784145372889725516241609926418183643198748449516631056194086699387542644871212461006096764227190953861902984851021614653688909971477439494053184808222445553718584838674082704521888204959024757748503008626298698015019859040967264144223970781816932969708684126032101352230903190087450975929360415306646959014243543956266610139339541763879245185855812350904120242788270017189255468047986551461412347184152573693605331671228168612832174125211843784178495953916601633144620488538760797190705233489784993020327953066250035998554990455836926696122691226901944883408749712152920743088402175689543790176248790250527720510217103422145409795171915366340861423325269435625634705560707178443770414779320015388285617403563455121919108186603638049086786659760884397715502356924548156558266195709277216711124804579704100380617096497384623986134823669146412313522775022294085052757762674505769402512614019132546815243064078900598912326110715031377737092007553350709239259768762061846536533732722503408303422709625315478227745047459865383406053513113871309257180903912497344584072987177084794777131426746405572274219338097900372293015933644284401538780741294790457859929426287205264461295322927763037851544889413923825496723166473073792913068202377461079228816821112258357888983612591156967085283783302797827984428261579338137233198148935678822054965518964977552293610989542742160121245865675756832482678006896520161077471324999799449738653277846698967283687610366755862771037741643679179192709487479415194784530057432710592326415461877942778512441962035211445435022834445245040095599809768618994605485021363617009964385896045314900693801675595436112948055583873429710655790095515240068742206308230056968600887461583619643054351786744859228610854933904122549901340920737776183087642467734772720674033098043412636180798732490677322715544920502392769664149204448935739523173362093434794885563977650627501270332053328653291652244479238090915603919069755544641140315792513838695340172824544206305164480685777744173505351217886578601096551599732182111894359298610452046812863716738425841299199439034226715396112278931893693372510485773616299875754150531478184364263341416351814510370805033406087651685247192622562212519068021866298087552833179225899834420582744364909197039646360881748467796741247734010104989885194452100227406408975696650108963466953632585633371452719859667776009028400664095427865244910205408174789249494412968951240791138575996522737340924261103456653595501102232523345220124061030076456257230358968235169792033002821573015995234122712677303258891208604528538933453945337695974621918834079883788067476489502947635297671123005329007517396025482442291914743744273571679017963385851916041401457496185634463482671317991801897267602911429921257369489150504507922882340720114035888967837242234352198606620321430413436287644324898580217759328010398664556742235960831218301458718022603979559116682577113391165895340991815621562567396236074340345427430909840596968561884054988480559768573615958022926635434000336830153235535930044567615745383609859177897004836245146861631203139713223349107747644244295151209138582611220853811603493103609560699417844451644422425133677121095634222827383899953683628076137217601543275092520842890573154829107358644295145165941920526966389635476962362242761434108613239745891216815112703938743479178954003472232130157540117006963215419703033528262310386936948674030440839028659056827370104512437172355187975202722229838228619055889415103527402759928780488868310673660600229112762529362432262914974757457440686843040734373786248040133838235745945377604544227618090282622302088478271404673648460435287042864590963397233128275446529957215118776880870467476816532703372775930661396100074070780570908674478300743637477810571870707973051010362481907258859475566264917687644667890288969566579735501841538230269231882256191903741693939230898096465980646379650488528016348417678588355744263056154681353896288139596457321281046341652912363810396673728137696206840312567464678864718661334531439928364078486848842164823032397615032641041817586706239612061359268251205591843833620092049927786861495524816231153691713046001221185047329449387584917163143844487351067821299754475232729345198148434007674081365085546725000205414922019646694824648907613504663770852333448257116971565903918657239374895776287825845053513671821525127794391084211652768936133130904116980432529503291740671586857940910482762911646165509179456151631065589522062238588620553633684796760910404645832570145567960575092979811584242822154201124860784887345821467320757493031928525594259541208623421152594158026999887518572897514049140495188390773299064537409988287365983946181504149239265416632233215324013022741008666188062614795251015049956835276841836780650599144723967521672574374667001581681529836081307546629506557338481565193398665520074593819984315980038821363665958181119526685127053509418845065035086725667655661696463756743025033419968036407294504969889470139763205199323760331306807293449391618502736560474707361887200658561419413063839009765530310244398927691861183633090599456362296954932831583432024815660604775094942855223649386559613019881816707823589948841012186763346151202908915646236801385197585299529380642191306070742375543757262738571010382567287902226282872268263455750990630202176289230363244923595161758552668192221436015263023989695429047538181918081620543048230188439377356239573482381224123968762565122939935603322079491730307542150781511738846688183146099540268057145058609712846436036601911575895769722462057794990772078759274936455757020103545201937307715539885944683020311558470914105011035399568318066683817965219147779508493695470594895072286455779786672448577281980559044361272225931036693752091006679828428561397254315363015250008448259024329483343918952217876637869528922433163387650306427605945369258870056310914525407974886018914715469470419002500660128806530257540003488745692755878406367339632393744408111152231865684257137188208433955181590229883458929579911136458726234941191073656197806196689375231029323477131241549634274970125318252040385419053495308716167026192077384146174290853580068916732499007303496499868149058189842535480489399136974842965589775470642810017169856931017450763338820372432061403105567223606131845100386731379738106976714417370187249802906402416439870133850910703641207304567637357665322355212527942102114664963108820653339630179748854965492038576469279509433036559972832458989545081637083214806093209834868754230585333290028764369717013980683175914643177923449788138944015887391753604249274051230642352490160257917960717702661459836386701485693890432608871124446340667323138656157101505213885642715527983140266142553114033520585669982844454773157790533581795718492842496283811535684408208938554605492884017111842217076205934277792854885087584517555422657723162243834955612921042099831921911937891437767129446861544438044733189537601031629918454873057048938722195663978139252299145967877310709146558838677594176133145767709064122804670530038301555754343791239753473498976104112885259808555858163345328313461758573902193793190889068602205103313952742326663489323663812089800101957422243044392399912115574426928225739034736404521793186388962244739932659200291777090018706065521585490505089382897371474314971663963985421823689484892801127792166132150087647419491895797081890521884481570642037574479977135894231536662755219708931684186776031023253242199251014261837929198176935517123913179223004205501676416663991170796602210927456271617426840347537097066933995679061198665418765031138588280021299178428621503160398549094929727790371078579947857360618789063066761378335425887125249794332002319619274949624977339327960700466316839088640634857025316771684017116809873981332147063737846049843538396523981541470185118313691771199203690589706284979589850685522806665327168688073906887355048652371083537189933355798688713150218636196531196269768839869928204400190051149317471410057468487888891549723269826383696594714193805322654178341973140469349726961398457380566898652901867706148049820680801096468992935099212794971635628671054139408374466868094243774608548134826382505458340516523307504922710938969750171920889483797624077660893852306998916285918845102653737220144191480552589552936660943600669673879536039656282425539460016468780580730181179668622982863991543684923449769902896440176512021718201921174125081868465793134698421919558421871586225018663984217796677611040791669879620559189495732316568340913073637369546594708037200358470018261779668497307474557666859404885500203258160070551951721970250796887441560598072063696042254985411102659728888665215020159660788320731310859951172916657995098837489441531416464138393491887417150447445332327148032085669142510704380926903388152122170833798119145644432659366348397113324438420969540844730952347006975734643672173813449993743146755686190260312973624237687559827014352934738143326687434201955309311264857902192255359513822630678754441161491906792019727726820285404318906655142928690213497832478115330488156314648926622389668625625548353789560756426917500434957106689296818273705547098771088852478249176799972084954883447666744125566262066426304961532726865614835130429364480339165268299476890283373305680769705721019823677100207322983843199540432504584476935042595943515529280738365548735132035804613425823744293088365908148199201974704754805571204590474647621692552067225809531251996991020321228025283418885972500364233984648476050131193525951789753737710252572655168500698458710798149372995046210813000905330045236225714347737952217249062811780262859884315855679370062523873727170497684950003980194456279260577224963811208547134306068946582370282198418108908694616955200266016078213056916190889970470689693671357076292578874613391509711693235925393199634587105732882050728146514796943753037322805074730046908721522252702250373028945367411277003947885986566912809201716070643162839025790510157325982748797541646414448157892039515531499913115998423114433110258009756578534470271012207306425576414019352701290389774902743334655250064846494860472571146320323812189008894033203454025646545864080746730755086698469586490114076531266491220764570403205829324308540940569092459713462113961569861483610271038995100235109594280663102254640471955321942488537216189568009325434369928796722027471907473123022950797948010689688928743027793979983647677792222800404195184658397678823639864139228666055231672120409582668474224125065994960201289806499229258453160511179985934372087945214745589941959162079911612415347916559974183565640886177338323224545586966556793834083647108064683725596542447435509339581038710075557500661288937880036275577077812752093233265854799235075061253804687124308595730385405045112192073032505499851409459351118110526668524710162324103679819941743323177240035649635586492403519083556931555354367589293772646348410452461678190940974027901936758175367825361421823106729404206311018652951235442484002889311382342788657315609792238771873722121363375201777068168206516867687829009497588026434869511043479357191759587725570250208514280879683567902655527015105865989079991996709685951086785625702775741087996769456948419455607443119011834508561525241434937449843835038872255637972912474994883123413220549501290383675265611912807858720841175655003260649939919888800250364447495506724156747928894681218643607598861530467361852749779720295600062336638312094942337626526737751933685847910373748406143472424551412500746089816441278832567311861275779836044456628050991776243227805336100726852586259882625819776504458312749086481966010748211338732669503477370582903755067606262190866356861376123536764759918731948619510533686213794094488676390661330956737754329344009227101366559966199591344749786383863494800897678181481889209144349201669780066742704331610754862401987499575966333680198744180617977219425792847953400736169963815567675313214891888045573722849393594846255044137783199680660868943512592640260031484617878164789579901544388588737622462073967324419861909552478502445007650499822640356454639865754041738478740004102282928818587561144154204073178435639233805041927167918266441107458333666055750792866302649898241743491736576900873587141082366119653401641497133217252717562385292967651097451998995950483713549128730820273285030812866076828653076985634404306776813852935056686501987296814074529121018135991914352421611306522021667763878978162648212187935673496631931811758067703717260240611437835029847073749102053577028734261616119665437616850021110166307824738713472669528747178105705028687329094691629565196513464983137046362249933135050067358562752832796182177985760200531222647546346088035922248426688293825316733960532861388085272682080928009681441410809476544124552458870061380966804350592803144423250383458793361992426619238038606399400267884172249233277574330911062809125112108703000410510676978219900425381393644588818972762079117869336344910483622059402725514749532005300700424861328134750181575398305722442370476010955557358954844136243603370582955268123724515290709728476775240890315714461901200089139414367400767139501937676961624695557757173799168761089335638177631963740007220956390547910254101867794800990489505154086581475557334064145722370718200283829438831509304901605444701134265475411851675884434084228803519610902142433226891450938954337072545500880922832489386022712855786226676523716837060899972472523739256258279121851158483324249147169943996863137338500733208472582809201992051203018926325563027386195829717591190695675064074635567415424158286729025587719012327940918757634642501443703880760445502029236913937465951420991889557781480721703797195192769574724518926789181709349461982196943142516613072932288819228551216251804363050349839471943790177639349402599283013583522135539927251436334696584331589236800473295117525791549710694057473593684028977589020416656660780596428817463316406771819264078219498904794669016122417223103128380536767099565670022541269182441133165213428670220090242419288839742213895852702194883767600705753086963062411085103954259888271130776425664512907174213755150574277759636431135824711156099022400663432749458475981700490917917917941835697759000299046527517984128782794097041290222869597414574741933734411964343208069045598284272829427625123654452876418521474032398247108535524209681571940761308034604238267515202626469487474490782085111478093694491851033243339729693679059561864231667445094796102612019867605042368431307381688740986966071405964910709573092623547131934234921698936043729424230169756036823621778782082953845265235863773596605003803153068297632833473422813339039707672329097702447415977437284487959771885844487019749514647548447478974963630509505834913485941240518389855196673759702612109323084760751003487714473175020003655478234720682787916496152267262933919462850149216764484811659258855447075471998121372646946628039738209870860001099310041159344583548891788641358134137787712158241723773021768467250403096384022456134777759994779030298352219696094799727062155479310387545214900173697797893174659237017615927486735039767849974075220722205960797773150016648635173847710170836257064906357311275648028568457590118093475404263845306512786736021850477805920468277921456955022818774333790283438513555309232832034940876388633064370276141331564782662299156241536962291242825805007020233832648901171456875767034004966367697532676474136682082493069358539148788563230540638198892598579447644870737892752000400796710766478048112589022426367879819604237990788110640831007905219712786737651452950025434499038059744372126318300582136851402088193816411416405193849645381969905507524902789424771394258074087628026857218824754068560512981613224513812491749360907188924331374109447984081381100261345347853620484044379834988331066944388098000597816465996242036080992090980893568541857782263749516976068576729255713612506858267187594398141648216806044044714412456056444495925069250644771204464431526265294543022468628443885756569822829360451192946995751806551614769881411170904532422005209990536662591919132854091422791534387715048184269080229358080218715564778650713204498776090157314862360998311710930950067063954235094480486689359629910893083753280202678913787958190491362241158685635220110408000192188001686580205144711683193523370329776730001487093191331513424803752094426960783127264890050370531236908120988942165138093259915501815376652420054692885834050157895068482496592707058964071170068304497316663610151191132126159624255905487448234431729421545553227056288490159543845643338511705316030244683081219627782032968301700824173372221536590387688499091657409262380434390065688302656341538494652988419190034928074877605900887347371653616656001093952812124884440934760499005947365619614706715619782861203952951367445814799151213165389035175461276642250218604833087640466027275140299170486252383485733385643114217011218748480903215822837739984190877374289975855399657625544798192303381869729104911114704989089281742506355535242582091420315209604271546172883183778127843730841790360982744423571670259464840765854056606626007421147334904130854660025559849254826769611289316442800838919537355452167659188544735694399215715885161290981255501731751478970013172826644892322611372192611542799115052276342693708752067302696453740054927954996275792493454214296307216953197857075471609036355731311061008460770145870461501148231380434988331955021818514771740070331362098800822909155394700131362233312028370422250414945144082468202982302415295431975399245871634163493874157292048547951396844446003453208858900324571173185530758491858650006051457054954596505972363461089833702586168600826467188719263562833911679473696105734420724225739463490480365835124416407508051164703230972298714536764015146927569192525656402071517520742547970309517793949333717461081160161299562268832245067085141209228823225104583294951764893134375852388762241323068886400283521329645696162391058194233029630848232385094290640136912624383305894581421079069196357470875426854034449546725737236426423713235466438629307868117427695511542883203707852903917733400085252255148757488090160314052425651124055922369406881650157421485642795199225300663061615392278660000123341416821809893916996063872894068713603079525803323633725019666705989212904679096079632896715771236971968581124304085899443206884234779323601962953405604907002626954764422264480968509474636456963349423813002097136384174737524196309818634927123553615744203225769507103277530648007861470111286675936050297531296253853603487161683558946440862948066977757810734614120761917773052355366188616471613411303413539557637770134106442777091387082556905015194767107745482659466406938148185012398608057200876095759562698996352031329153565001292612563491400951186173903264012691800314656495004177763170029089063866120998550291337589241163986782546272827586162508863788864775723149552369037308237749495054510684069650775230365622003248477336158468799746274085651402958490811981995650919103102375157305207096771641370317796906708015836462702470061572216308856443851244894557830172026099267089679784093086256148255192976346461966673247547375009682157463548558490281902988262022869552804300705702871189188545507857546362617239112565938760136248166237605514761463956701626722385982828522228537193905008697238978764701242485903644983713796356412386649187658019666843469756317936008154700636154913928613892276423497162978809908771320160632871458544126006020689691030319313351862153922228631176766323707060668215441991642734114814311320903828203714390426947722314807920517165652091517898138919028933033719928799543531154646420529096014678890134750834393290791743583907923814156891118648821916120662359268773093165081378106817702364285538075619653108018004014954319170298983683520096896232747512024320960967427770606578406649271168036453350289357047173216371940344133229935726660649684260347252389801927219047170560762073689950316154591040626870721870663877002112366111806983364242812602080822201594956731748817394602254522889310721582634467661978801110684138948388494109667191208792020153683942358059034549965341171811925277661360052721636401074720606637248151379311572741402877411345621831793566473642455968924189699912331363367445804096712547263530114386061364680266370836184698741136971318542124986890506384866070649276704869347199473705429362981717857924107606555319681470184591095311955866294513627933026798728313567010283747379838517165803995156733628381613863798493587476216906113479583023556137803969549388276008592476779706303501350330259492838158629938309393301543866901151480262573022377992299137483067290305934238183917707863177524073496267475710564197542023885081019508234851894442786521889814933437795288233351013987333657976076282516461157959539867257960967521389665649153843815890985725206690279023665661669805738543040597322345193044506535447765086238721402379654468327178850714072846982063156135483464070201626817546260601303820157847894787914789512838314885944833293736215893474920802897303979336218783319154051829804703034242628368734852547012443250923616550533786134594941680122830662448247566375208102471218306611388364523036217176961229414412119375673339601588604340859323303381029438508268711585650264921247067922802793202324273813062027653303900209152961936697032762679121054178249706833245894501528584403645992118369469510041984280768930945191686430586209018792995351626262187442189834959420435170302941449103890201577028535593969782363391315216850491028484347259350758835464466697792823115782034816199560714613964357443181426289658297226147933495889232619575940056719673836094232789300717011902745592884779550571727222233125292925799628818023677808796115281997802460165135636493322440205957859628308210165120213141949505407127757726048786027447113836418452982947422706240515538638592772074909353460371680871909088091366951559763776004786909830403796628850329042163531677676285041879607812888460580542244552046561070715553800897884053377007087441685137609050453538856459448998214889257369559046516951686119936072315955149968988119736820770064573016425578280468341651440150720172400144934849383462570924806722474817320634543232031100199838171638033492176873492239472628750837169203371613923413274681291340517745755457665091487537602395437427875361339926513199928051485307226418602900140609978266438392708274929943984337416658145661991902929422989503253189315717953131423967492299349293437138200931484005987618546008560994039721345674252009524398466629454593564426387752524099839192770226426124026847703384540839415230444593503834864270708986739619817548800108521401073580260791422492695341210690796081557897745435100559296336249765957549181399658012669724317746403466905672274360591439578610515862048258007684985528943241956586206943102539045796623236582543380312757770840389377612497813564615530678611058152237734483589354091563863603389180381012907469501797546776949981868977664216628238593425317182438759862384580322028946148972152024608416550313333720975623468501614071068480247774102759634123180096534068878506991493919550496479694325595606104490504463470395527343148032075847532663297751928240377550310520584232540566149401626643634010612831127421585874769798589799820840966732376735098317816501457405794261340700129860736037632047636165551398288402746640289267031469599766304360547713346411544108318288417830413257758812566821906005919334164193353847989307810292024527279704606012866381902368871310570240086847232352188697881679219667242341807084216949915211049429017092062021854008865775802218182425678368796983530213210951752062183862568663546112756561856366852029809142335343710070897499273110277465633564266372388726045255918555697013890069206611459029990327820926753975879830828192649821682338501881005072175230141738636457092854938431689864626310740517885640138117931354731062791528698705357116609980704661085086131837931577886401693340336694345124729605662066178271328545584994697509572598188215293915851002885781031997762892339800054434439496883012358080715649109166592175168981881763190983141157435978335546902675347977546654459553832588364309562015529629723302287679570579304994633970973647496813861393546199913154923790543941314076725809687720319741963571346544614201193967889200132811118315099356307692535238024890087542521765690474971330406641132376732701185427303553992919870404393688169868099358461838300950449835747894456188414782232912529587764436275948541768139936904574441646654518033324908654886564694565726369278487919089269020762663431118794888492825430440452401472124265287852406235416835414955421111448196230317254186000095031682429332733239797320927721994723266589194870063889004021752064422522487101775393756544670592133553693282816135653500659489819283450314972274818045309476635739134024971586838922697726005283773880641505199790534410391757757985463202562770028224115970824386577347856212806296874088916577987796481566090549674363561535332015388818950001457491543341403520030835710846288044546877677412100998906787860444243721796762229011998843436460475313691462889274397099126623473238477473136342443059786663243035362555200098643420187719325655487193829797865153611109378442359045002160308915883017053595201052158390488712890140346596014400640123393861923724668941095593476710509405219357061768710628785640764622021389875869502125572823128136136333160505211584742951759130830056228859451406254822022440707331549962176593012979213810213457567190862386346349604435052607861925458415589470522155846243429791646619978579501930398058826150003327890613262179224710924940858206189940885771230593360168810615192634183021150065379550312525500062886089698820648624283708385795775326991021291664744511331095556158351106377485373976716870626217165526670542627410014445353456407534227009136062151965288765868478598132725747589267217385300654005337229662210405283932459557412359652198327309933326911582133521843468489496401555445806041639018881935566631870300819918193367805547875408690843878873721985689340575813488306010713216899091182837320069907175134704044656080136855150412978279688255429443771979491374824060927449726033927286291539977099218613275807948468060148062468826447594660491474169216229515247888165165420795247647325195600801495339264406504020026582196944873564186638786062659142329281507674515661579852182921250206419060273709020329477103027264627275997445112419862043845104201805889975282168964501005981038723272783995035687218882950900526086283791220916724593054260846674964269502535313697539909758784239820256939990974070460270179917220723483818316672169276624321364383310745572722377873126271582866583270951614418045629149277912115897084118727145600911487266142211856475005157674215440431638176433080100878348584016718524027964119086663105254825761963278512011550178670363022730437291880970204009819353899520991331385483993435739832404389826133599994458881525547629322862096054365261800027475510035451836661343608466838133400400638464803431648435770544888710752360141832112181115632041469454443116298690626719751067233524106991712390099383958208965683529321616991116693900562612419265845213323175803614050889743639523295549134116276236746120409342566911564416033289704836981585015988438183705683767804864935838691249933502307795047707346084719597698754348981773567333972422712874720617624211122206563910089320531303232324593281889487228907210384023470288242308821539402326515870439675700091723353109500654146854195140330179801277528103654886392070676203087428858925237145571864818322193234941355343922973746562612003870678306077422079362324133592634292835140069734476328130562852001404546409738967912090566745491862694870731368103124071047210834133463037361815929714575461094198551791742397409930857301111749319682054379906272565210225869526579671693439273181485467369607903600390868307202799322107568124969254450458529516236710650369586884868979684532865524449592158502918639961297217833762701970826853404352253753268780436731592866066530872394334573362538464597217415570985150629017650782533138271098238654376044950977098484125347035879656352399737243091997169595885215052819550947171258251519428517010690684182354850634713799268052880309287454880635085190489370587864970737192242707885854764454542980834546490336953400968585450074044555773286973988230485209487687963481928551258259248746420744721516975457465410556004939458386961650969173144555797518991314644460620470552355987179362197808934478014130674847244674273764760111441679999461621183045329442483194617541180970592125618834512512785203482358355338121678216858875975480368782496743001258554325018763938806353982742523334334587811326940331500754980861020623970381328384160435825301215433724800150600767736456551584701588164790650882847570460145880857344938946690225984049234556379477464804584325994948331565991103062987115555216710061109384640894416290442540360695533654299654817405086377344929855479701156512272436491881657710833128306192226390066206616853215747411254478318112126127141757411327074324401082323506456337199246361456416566279754253407632555266734927587551413008392460921794069320305075972493283297436648575271316234219466057508609654488159159775994927483145604716752017959536812077249087270714902736333891044360976675189140131117863893465924499899261592071652708323206968824334928826114455705218365536015125898159937647378420682461057713231664022377515541511908598637428895205690629094594199100703258449489710911085507652142043699015185425562232690379346193336574201804628796107878227945864752346704392088585033482714599265164353697298906737356263382524936356882671779456376261195093316500917614214264525523646338673290413223634569873451321249915554643265045010979264901695867289499248066349804040288702749794393839478417896853802462279427520408492644147311235138959684138590431077821994488222491228501464924125583499732259078234450729256976568414899590005127816531590047600017472387269054351972746536582081285689714310976370210363152349703564417105692117334148325402797885137908699347726915909714032258687537837202404041330883683193562292274806652309234130816230498728092485110590225445789591861821036620057964981874831867908252003334059227837132868309566251969275637189910883864801590606573762339037379780112509383805483460659516302490055619628378866156326422291423030283388683075449945858024882649582664606468659417710662776578700269230768555906200620843484284059991453865101707600715708715603977336673128152157445256208026836811918875243584509035200795545654697284971851606518903855134867106405895750905633645807877164942285333393364805790365415724453030970061615841599621857213649536054825783348876945545543562046480628930063459503973929402493780955741311194806818614998146947578958304510133047141726661123965345852875018668017509892034207348128769526965155031828353415970414933502227895383589321058815339445799500907803781491988094896395297802398618477858792445609040922302640599837828370070470642901637497543104008954748846952668835214653409785135534511020494601415533297892854029131851033213409610304552226457997804297434442947990952554907910929401009463938356867889424659276162988133458210731340426111584943515980970937043815293402671313627393299990119980817767917932788697086754364361709600002823633118738033560123303235900172367282448624356301553208544968164291578575019605156891233771992085703453303638528285190444836275502006910033811644589943075689233098996495931650687933807010278373292468503749574785634521946837300944173526822298321115394262778693588360340918553471975938207757641702568703484545228087040414594923299060483622458859573709143076134926870340612598338020629591409054270502396743273359588486205527377766024853484573226443092804399624140183188268929759777810241046416162594413462939477003446224852280814485571615828981896131851402657996950903188238092536287192795680898728241297756109205441671818946989298226081029475522946378049078868865832633589510316285572178558065566370286572033115547558899490542202598012518072169241071281505090326259254065624056803702884574136528861659130026480370350687002098898496645967354615157914487971674297239301849898275683727234476632142872250562570568085743937488624039756051608251328360215470356709370498826745262905746993624051423803691498516603377677106556996569648040460020556135529017523873054141507857554846111224500130988498191235528425394134507829627888118553279374287697340715564838768075479990603676670413980156141980222380323853684885782711092588108604346721931438404288293644369780016228050937849956493512553107938294796964907091212439505068358359964990310525228542039930780561969884658438575766123970779464110644545448578066989294240499804102750647037491804816034421667380759334128918033446100014303790645998844365066506893375982834948242645985202094677996043553084402015842479908765694942414376462198166988865512526156114291055238801860366461360506769628316308262926154462944723523352347978841539080513355178945917145480461528879160355420389829755710882864033066550587422782615402694877008167816520750084437117667451047975457051791498569176077773116595922731753527561991246241943786150804787515279502087268492020426402405960135366902429608257852051039408571134132403191088652684232282588831859744177887876837008188620226983742397439970979715055893819024427916357364882189185798146394132695576741698154009476294261837016451193105164510571329513992165244859853379595573572005559672478707391178828095331373048882506183481832294525783012733552975102359656707679046660998917634005976907743688229402915355184074500083401289952234961823277198448655472754949919898277492835982647151410864234472341247524757671116803457147769642199640830182722077973391192062918823545611045183780312529477382091707107067433587912107397989109283893861328212092374906766727451229790149081945703855154966023317652325540268188676476738727768282578960138676182229490833091050033427031626736459394726311675075591396251421156627577346931824946278461417376963451169699701985535375365589216669614981080197642542662753296737118283499436768261778307441476411092508733264373481314845622683226686724642040616205868667045942662172757047909372428462565851513535400193208646135246790355811802827781953973911959981326642415230325620981846112641046400996807261194150719538637339522101304139371499634185315654613265647771895850000055140126647288860400506971215682350974045174451416762659932261267304640304893863014684098200311906421379816937287202796320845004381177841298373109782906975434393070969040351175887498799105363807086436260938828718287078498105125393656755326525547634670307657688438725643526921011862955119769990101794290089439536927193750551420554765703401262018888200260389544914416427877055583323502449541277355980649811327058344104554885204830723910953822866667183663244781196820117102413422817356682287888486999446542672178016705127158487527363189203856276692469040910232997736311179341802737955942953630071946096308902124900653066065403422500851649786405395912619402938692265187088099354714658473444671677506138090749002977954385300242236218595167916744293376455037399730426933247439164523816575862886153953982402465639171055200115333325529365090941566913903069226924892891593872873037524664948534359056572972475911647836992162745170476045867499921524991131144512954667778993051037008414983856393766500723698584760154759221945005919764564208686408647333559894483407825684261041799539616948286582556570529689526479679340315812949341214466727440363799049946945105598921599161335093447562856649525439562324801244018736499551678342745897953524734158423749017284846245948705244174699942826565032615545090375515966310369332945201666284925748581066431647794857181278481164244501426530891630860761572649217348100648241065132385864185485133946305204919351136485955536826307633428849590205488731015489544975026122502841288852944716058674061977364461341870170595551174922261421308878936706573444401904370071346266029311756718695513964338145235208179806210912445238221167178426849673158775972612768795623838084852953644277193577268443315553292392910175401925891394930928690708663731399334625170238687612696079488277792589830775951251469143562459806328197583062484948490315447521188547551748970558817650897019408691977450341022009310477785650392787934484100295530401392699417124513070406954429131830327844032922339577989651473919858803318463385567362614554335589478392408411543135246886298055740804221990743587240867093549121811507428734450046256148092248111111505449526259738106370354211938723374205869847002383815505053622306648498129097249270562009366486488232095125976138851154182646361481073593136110155958047048653147167525169550551751011415615249890827294927465528199928522142101061403404606090597172115056379367508287147392383633754811904911419754076362122624033532241795276528635710628725492970374522896533468686470571182714891497926324147822382270876622372135659104573532257590043995697308656654031449520465867069738629927795115480797331080488676809511939013240768349878040816074845518746514686807156268048643057786158710314522542487251451004062210559537263665380388876735860866069578419775694661586468527655977260036026535379202046177728116037979615380610837974325687476874829522617095366150953665857928180867547256975692163577985500765672137277902919858802791004646643063878811106837790192280035043253813163409359392971769822392969147291753658732974289603866940446658357407334040328745074407687390984004622021195561574162997780655953575765595973592888474725134948274790719975726012790453285434374036907547906889497844864426443537487596833643087613191545704652566671554617233511201931670342442535707244356814971112615148560227429666202141876452801831436924652311908570666510398486607824732394998231108765305521245595296663119652044472332555059027427098141307475786883980270346491030738113138430983486060502390445799596583215503772391178361710590710423318092153441031178060165018489681085199972812375757861384036712706760646088367403878833730174035971170731037041954251880985875320245261023348867463226358721820470903314141196062881878962517531380211762291502283282529746781028904974398890291440189915995792603905288048854637862525325597940422716676462381718437454219848908905437651060084775270504207151723063798893828592049861334692323552853976088391464042599117179253243974249324221569739332472401060128178676654634768260530046846032724594617537348151610818798653244263844635713402020964266624804800237592691618563971703721609920481992456736131807350942219967763370780726585940853464155868486172981546962406726665160671265755704509756133777567185363024977043724042040905215612135780026033980204012975702971001745371247152615571656482290684793870390276168071102093442412186752703434805961389245715133898417618656025988751714144379125785784936966109895955622014365072054348049665690446262339402335273458886378090959814446372157290204964101901044742029409738318242852591916885988214873504925479181032428979904060965783639989440195974978622904965611301339375950715938095943514354038963735290003402811533053616286893388999582772078309738533555631923262783220979279589146270989985109155946187042208758792511568702939809891795099112882092678451339803201375267318583284728716570611519542062775488496335193825597160638909350053411715368302834797434916753386000472988528584731359531215828976525440514286347735790838242067279990064248469365017933389426336027944956862284945031268734989282601137215605220496235640301160701005939629441437837661315602976634315517486448795993740219576616229823681168406894765927853527308882552364825508756851229249905246638808949089270575102185625787162957768753725104444831434389709023121767263114942303802134718168519031236468162286867231594323444429920087369709743919814051284564181123684600529480870960208422246246857814434946553294630914351437952584836933089533537887297954261411681229673007575216236351010739938791101520391300484477765925655642373566872239279098400484075883690023872942817487627576388749861757257836819544973578409714136059933316143599180976782056260624562790257583846512548190160846664847587733113539715016309021535600194351422485321222518193927005259782134030237055873581895675366706575084657109921177393180522116159987468726462890924892577836798692225986364665792879145229068750774706567718146174387826723054722875319382804982179619259045960163620128784977333727971098422065542994782275822352415531223828972983333545329379073661541327855705096415406248477052958888229735448065281690791797686145831038842859774504300819311938858564017250449153328365652925660815065746308230983083968029285956055049331625294296648864994740311953874833443109292473157157156389943117607032566622665808691720993127928054444038299608806182014864441378305711314561470487554391629593006004453378675287299587941782524669843319249643082112675411548330486666316384966310007559706244510123841577046969407190036790108870648048886617701879205808320946269982250533569334821998884909559393492669022968751299615373305112418830066920568056772463514489317177464518045891673076709903830465269328440340530753665759986083121511750388744395237053855022416545597513900218334726363086730066187853056492814591006231112572494593902709592417718981787157854356006496376933901276804064148223443636477600747164815552674159082891401350574771734431948552187805375725499421071413256800924657873403147080017016203521210132369337742834047279689525565242342565415065544159079095215370330955147648582485392379928170324584674936183851405494939886412611743801591791698988410145264757710739393321416383934765138464330882338037887933316052567734698282642393067553783657075567795266539266461856615504225193401195255181600541155867653762411542035400402858524406280574876930511782094853576959408963165783075413884917135214754206041786402960488913184210046968637346129869423220640645637628223961935373409306481625287192159793705827305141529144993061124145014455134746015415974273130553723077357579233715478306260593740291570596656147091413781888754116000545318352557034824853820107500032183890173111233821492510004979053134493384114188591103881413709645211543965677009946955324260526740890169530827602342271511016637139018870428977295021100218515827055144871864988298495027713315926357469262560805890265900751430455864297673808763100739661097481113330300094558354626549398297963431843637791300606290505753245794495054268877487480043878735052814978680183083051384520779963566345835135322982710541389037393874942061790117585784078718571479944298261968226694145633478031827428250112268969781754904411307127066157169562558889172450238748470901120194112106728798616446292754063850450853913308416340541653085621536582506638849199307545308626445854726325826577069137258009532721754405400878307916924805558158620519372825092534369340718947007552574184219771463695507872278437702334487628264618185103584569988135579006098450816517904783711310278192727810027478679136185998303200103678839797561446953408729723261193841476357388617631648775359382105181821647641883733840156068297853065920817574187586390285449542192778256442405639181416452811428531428037356353543322796946140420443306792511329699916410052566272458707915384095518467404240841366995694031970424201774056661992303801104362910784195862046090694225765949882874706224714175021369971368811615470173817817713223311806543573281785810490866073759025427689884263285166922948747202866390408472547554037840411415611064645727252773283066722169559261083419946744367792224632724776622249646920677085724682004131827849684793624156679154657017463248441002977556776485348075228490320030517602626906055807374459259164054090923414494854320389280707533684232341728712633996665553429105256699914061369611922815105019949345181132950725560525494943449389606987064136942747641172433342570763944676550474449036636674133103891936759395210431160040503562271606247020095704621229228726786975051389825547251012234697507980768067973793627690593616838515328285027264189697345308861753724741970246655588794773527917596045180076943168922422100864907854180549787533716085037260206764601534965436057884903219300401416905802558696368413754522926667327825355801750393659343883875824536331416921358066463330013671619999571089405562928876164184978248617920376310536315470825203696326094353385557408485274463523468196947190881879324567976924823169800694639938344288419007336561039629236757032267235533448449885561585853510005500736196840648859025480392359960331001688618618195436327796988871213022760727883741378500192546307880959240250283356840407371266164730140683923940676161972497182943775169152308216884842349874282324187985477379801798707334115595013687830137305235350860396019330757568656918362056048143803187737205605673756728384468391914568531670996491820564787124180066216969829786008548246888101510116355946536448230364472294966071372716189999874454180882697661457111390374631185736297100091512353062116579755643633001660988114980591162326009658572242755033793675109246934055449490547749325643159265519856464328599880704766667721549490916678055726323220084658252599506879138020279989506114973754760239595105452827897382595391828233012764399332045134055154251784296608791537500102049701449657920793434326977591771222172417289133398267061121095519969140852673323649554188916013282495856129316621169278770673574211352608891151815715561464305842821443270558415599581156468742641878754720471044726335596540048198511569806651092925277303603236103324546073176565860190305215375326255178301786541092708543858939971045354541409394217812411988057535138688472160100702553582132093326874291738328656374301601785187043653050688303454057399275772307444732714135078449778983164641663377772326724433647315889027098407480463701254310249206052017605171857484545140295769689702453492813373408625478359782922387073783864078975839162449757009901585916534767595067873762804075029387555840887027323880914376474062713157545001926240209063959020131852698412633610150905946350283694155214828240828856047857001023843222734266652448571012513740445073778868829934419984826797538751904299722280723393989984152494207572086576561802805110153810498545958336285277401476300712028944182340783364833548400680580408790332823328865236419411090889902408504722939390976214038272886636098919527501843469839187992539920982993429538999395106892955333633885363850144859743145255528614327247643610718660419211543905449427020771436161751432553338459105049241491679570636477052275622762568955043425183637244587942277312636172643309311092854082414104744839082324319105690128959525172680523688395687328631706001572082884920361707407178113624834948952335086488012011670282457482075974504361654406124924037683044637924987822164611505203650722002784800295086944761414960493980132392263906191784988244501138114761305863995388559006132530070339142922220421152448110077850949536620813745908315360205168958128986557483642346748290451031075344584882914930471294273396804643768102211349696589545122583774634107984143972485283514654122206905299951690740008336058514770131499338645399246855265555894361691585462052557376188891111828004726730572752677223100952226437752085109746218728910446419730453016019075755447191433464468681446828587156292230609820343395592240645442165362601485458956446637731700316585937814495270292708612293109849540435720578375817149319948236984689055392225110301770445555619904315726449474974054494655313694935928906123290544294433752734011810940927567949809720269843744043872504035471290850573493998536121841977916374157404225523412691662442762893529872972699077589354072204994787794166997886772983452387091098619717753542424693609393567964551872793587694546598260200231136777267035975247997612725627464503342408632870698125905410951037989877904215053002449980211199640300176718855954058795762050634116041337942897869196014013493519166392155668594867548560533289173070787771150325619681111340130401414154706789850052294633659140865524345900936183612059599185053598215343364250387918533664414465221971783729349813675657137691340377900239419326855580389099679002822237484281603246950721077060096023537098198654676443378401593268304855117617308715352730487263400815817224786973920603226807239135964612243034120270629948062773451514954353749909887644720878242586794197055246005698829874570759681706177506591910049642582945691776573330425398052077784105672616164373298832554883465625227944253946428220145239399265892485624014653157956702474435221641208202464036759082309540674744898616668236492746460720676230581333909400919728639201876935071483462452884962602436645181430710127043056295757638957126459513632286360577124977338106682320533459481136930669353476887865524383410359268957740117945082321382289590115957976386396826843692972501429451618402571195367480166880707188205664389002531107679842577422806030550573607202721973756744287377264747714126786195714547486756152908678622790334311970289143561003094626138872963144665750716583992783262083327458387291648795111094472012415900821029839270794523784131691263538956090051086849978519470228223740728862326882021673699264485580463161836171179822805157158675653776519116230951149805896958186452600995986942207192278098064358732591398400726380021296637763411427429613954562707096275489330178009831905029106767538125849702659519065980227675775659613322585674754454683742758680189648345457811953200765623374499774497161753758444004038556902058358092999120012565375435407824512278051166081993208972976187732766600820145294258030446027205032059928081727348588841566191691645545256398007618607494585888450100040594559042329556145512066405191154955652974841939174690019415243832205710707842836148871843861593451895145639917796319491949119069786155691361077548192350974739270461014256940788735962454735577204511603366959765047899010425135706000475109413457901097739539991182426116272249834001395871900373557171731913894622839283221283831152999086779910257703051855853251265792288699284110260872078917242970532984369859246058239797415445699362838651238562612974771706665537500976173432378489662294620863506634024063229653012767025558979388201532162529610942440349110616432543520855603101780106363632326447192209281206645721941120542522400108435367996651064848746412046946671732820094304984645488013826623941298062288213751972479314552309243491849528409981009323631168593330405140316395176059369776721503159557471069461684844079721461155213068201719662423840389267352898389204142566094769439580565529797023558932190632258761796653711882129029440092283646733175714827208074916623678993537258536568551673945385056345571205285588725540107074835248586792618697799508459402079010375470332566763919736280570109322196608525611321118126854324649892104369850547765619021151236321016392837176317603428365035698757426101586395047183852942274851648860492937357306957238560974435321276278085405171076682462104352520524661361611420499041971552506767309550609095212304393596319878985762915421352041843436924379569634376967054433233993494490181890487676199316535933551901786842597954044657310362967609459752294563449771736670215800947620716656390687176019856157004069435463603960348678500484441883994686351579211197605061493641361951554679910113292824683723766041799120033744311873354792663348380746610765843937196908817631977998730951474297585000063786716343488533050321107782580563971752893386814397625004584424916048762176170299129381900991239885870064630026179728554865137359238616533632641380609361703900625464360858521762956240105988365935159586255727551920356271292370526537129126467007750533581065686725501326776477099113223851425329022284474244912398695378197611107596803675331442094493679157736435971641352094356435133336082047665363143915898962808609498375197155576657404471227301506898876284317969199340600382366222328363901278217116198027235967780621202193901766045232044938426477880128490931372188579006344179641340810223418892633509811982421482455161605000698581602722997869520032433177762278648797107038938447821961006756977514808223658665068604697122955607647803652253266017737801920848001377517315701879737053257211413821666712611359603753964685827851499577840852247936267213796349742906051885109885938719596979348148996467977708191915880530184941020740673681934479762297982979788890087783062500368093083746218249906217802508641179432682476357230919317448533258112405900060791203498733159231222144285899715509840740250805891132098718669296317374162627268429960188979742263197580825453965579076294760953401126100883869123490552933936366516627334292127612685280894470812851493353684039248150735856070281188967157574739293623662083737812354977546695841652454404937347897730011522104261881043263382334172512773242995748634001758395801571237383467711873757740110533000739202315566332172237820715972283605662626212835455298413526150950789523221500651513393518425824037015318853839226932248853924388613228040620549236645237271051103316587662919189632081540608527980302619768664490897016871464677612896967391086458592173772743394153064370046403035859204408296450389538791034484644158661823081192650666615439497557321059690498465073869396166445635756311430288624402535731204377118352057931102946190586243815258661938998436193430903723571214638783664126585960893807803678823374624412353798034996055017667929549283963348930290923326832791819545182557469477044718765312906655372860792283544168824235756637846585762717044882329255463760838101701489274531408682317959945926476808412154971176328503296566623516940126055667272107966034888355668699188582146645938284711153541325620562262010770088348488079545608838366837114775089393127005272581969156457351423765663734825815938516131747326121605824249839444653394736762503233579996002877390091780347928875945580873382642547640813496711146104048496542435611791504404744645103569333338189108616161693457877147395659120418630138004255127970796830449201066740546108930081796094446335436162994912251532901376892479051062491555104170819918867844515220279085780096275419441032504902922553006738904968960854596573034556289022203246033191791916169259092022103228795727468358442665560646469760847355907821778733547407214638222725655317598614132222582978280756882706984331599344751371255271941346269664682670673780472871870702679598218194060119974822591015292222793271050057431697749795097491943484841485980056943951862363478412996669156298480430234983493866518266246832928312805684769002949732960890773087411383922287172875058992887302198633344104707364553388525731170147503191560857798133460054029967731624513083595141207417822087034873943650823295204908192095150952557318292639264833702197647547988345085864604834193219710707907532859766218719306136141375723864289638470059196342418583410385990102856041308199088968536072533549010936866291269159851255492147679422320968520949377882298730098664908092573302482755242183216581815195204325237107855141866810514906255952982963751251016227501537190831180038016644252021555504158363308728745329616263865640061753767214537106561605829059649695480200140521719834237078745687982100208034881451230984905614025095601484440501639640406167228881774544175994303740118528019474014769332357820458993015398996134054673000395026220637562595238323928291376838776445894099977466213866884750815050649667510155384980178959272648836739426668557199126730680203030028788048552681243973802149134288125047118608636731423371287926352853780962511234358042522002244820331045151505185416710963377501623454834627396140752497707044365800136427900390201028843464759229102353322689734956659935113281017297693676549780103735800580313042961358804928015792838029506067110189245394552091933768041997906812900370358378905459770457587276096546721295600057720004474402132760028782070990200049660220364421499084934542878264859456919917438182009431728931137868035474359227304806304108486541459830844583668007976817031912869631717984116885426521937121345138947171629709832694382485220025135691345787256641684079348428120193643594613358116101864686094999779128987571739952661424648923163487512406235816191718229215263470779250061115977482939148504014761199733893811261916362938564356813321012405635758906182851543569518908010344543228848885408739836017715138416625541789678824904995985995671756454590631150612908124656690081789668820669649429902421906888499871578209113299199701062619332020257215946496930453153538992159179231194080672908594696210950985116122614250553321092077008526644663981652159361752789455447591724896785708331342964697234996018184258448724568528931047328304775324731876773365090284061507301346822357382697603558934063136937052159881093431550167956037169806203319055157366048355380927080472338751014997329194847883218642499701710862039822365171940747431099331715583389534532756118855954018243314869922557037151250916539506075544733212681278034465244349240954790406901164470248257489676261396502137929237100297015073765303439829800681513124561230363259968776665076289910084951357636530453839350895955521123561836261306350927674498089863210031827866094271754607908206924884004999949630592661278887941084159483050359975008555457337808107386671482522432389942359527279430731583861062962196482937767127185398773064411503327845919103270703340462557139583606136784501589132687690534413946074960674799948901511733743586138861880727948181755271854190240311153785313016768667305901259738323632567668486745056965623884058977136470135523210322417002267034777079618008563055219983306836309446859920146330485374480202060812545767721583914835193166924975163036526257014423410874338462203364105024274737350181786096899589492488572877578792747115166616084912503890467393797619321880156467210033645809971675804200075559143818386287319483742662878897444676074531091265879892906297477984900901603894379105503906809722949956280041420316986133999215090279063102456006260328553994205541673304653150613259700577522045921070180710491899601703584666641145589479779614927914846127730772165784889174470594403823327612728356526297701898511947530491770218414561059831077617247799321419786592292158884007731958504843377268111094482702231624396949324956158277357321275053315445839818638555859960071375866857342927715472242658781941568482657063972511557502446154826481079871864174259066639758033955615199800555650960506514345524705019889075088765356891269967181401343565548301991318984160693668397487994139057265278487280488411481225373312918549476405778965823112101741061402897590854718344959858272984741825866511065265053766238736678283926137933116057976943423274226579724819224935831595581137589646199123436224404191719649666043622510145271727545371661898143563310545100232616163053706733837486235792709076200847767598567796043178659649442463471849780914109666239194588696687865709330521418544353741057475848839130673556981801352601845108384453159804990898638855284467781239161740207997179925499602925001725936156779234107013182765411497094443621822584931074902035175752155532506733408140868214355660080170232605579797856439370409296818593566721489945418792547082871963194165293366679994890375007402651932786467166242167864073169013109949828455282974313982205943679407094353093649432923613584640210844909743782241773759576426704690211537403854907101976375518952296673936490407097684447421155042592484149073230312014255823702572682260992985579692692726591056265138221341569393636417620242908620724502108579480044888320970688053627781919903341041425191364894475515220494181007096416554078609090569532675732780456225708395802638384178799804482997063517844165392695363778245404550053646845897152613376596089887196091932877603550445384337587979028297077793068486715494101107592523921906226482295679771811872759205701775372656856716816615781144647516178173548956641180939150104620795360776381762724268667064560531039273655942134668630032965346278507621744575133477422256793219284163116851326066614732327592051864637390326022480002136567710593284232588439306845948460311798626614696841885661530467701732672309449977521313441098298626088179630689385425949776521116893670220701171686533944778662722777876835815916781140690859902502703165302920820037631417958699059975669422566064438214510550928288809840784987702441512103616036144845039284527695907071255910035465776023174542962308063254749643581711492967115035387484846414849501095109781122919956351464642681507830003261042332204863458191039082773946914469676857908284168535242070653401606592075348615666639968870835860417902952326327341110871866403941277119953267173126847673384928235267078970594837945306051114441463645767619356080361206913186144801943414628182238378043964972433000559899464663516766485090262198906556114826190556804713241004347279718106422262408472376792798132938641326516733470428904100229231961873785289897993865491963642250274413335285104646373471658436969100478592739226617942856298746314058758647210084941581159465446216794115725337763867068537783278337630198962867299194150362810552460577156900700280407331812527575148152631312851096111317123120008385796280198686259430795243878210429882052040036913317637167851874372419978811644722528870812154020783121736211884700027339503980560896989883697457171774859880850054081441294947331962072360602139629553984657571091092357849774696592651898518967786050012435098989871141990843837707129109487462989886447879669492049672305277247916376452506560387571897259568031346916449528698570175860141154883402119308589803222044307891669251432913442934357368885803978924340696448628767849481690739163547936610911478819764831403227389692045089844443876060437447574844344854810478708316498356837570405005382981230126695214046832935724037470948865171970333139546325317666908225160227961956824414265578894203175633404052161178211115030881553592453074611550257211578681360271487830445502526527797712133292686506685351786981907909949658538087517337970677431601092833077014231654751551261946486560959908207179769066245107270100066740154026459477949397802459481376441387642555599305705942810458998684692524907760791280773578608323981364766960463313071362449233660330833189872782505687063261021042213696995581528244564991652996362798666012640304860415599592598527755334648583170593176287387719075753221918535951878957909105853777262198687663269209405385393588732500624668880558355293771508471529059240759119798971678697620427481795335677715774693302137037576334650794182233452481673186046310942795354269527109983557814043469065550367542449753524137814951904366950739203404244747936548517553632577499753308992205331828378809793983648669758310366944852457434266443717279757176874247908544364603502098227167442966824935408348098712192186834203952860005989008542032805963713946510590775232041373335054505355600146469613693458978676676747798833340999191834389289233183181946594795051049736707903279114222844130010026044590572463296551158114283826059515156331032887529954348776277538648878884476324564219659838674784290385939107480141984058378838717183007187038049397781775049764788054671806432708309845135586596361076173654229568409125588770416851818069305975071863736645045830279973612455969072492261250178997320521928872777608050663890472367815069547846291400710882552159422496378105529134557218143184872007039713300324864003873789035278576297063830137940628623213049337831752083535775372639771635323501081314455255656777570503862638968888602500450761484424582965692208436444837621454965951284666044465427092421551588543643142161212989940163217073745394168734422099875346362290847319237208990755147921334514282093315757776048000410679593498033453854500758674523307099655322295399925442079549136230765243394986593896498320461033525465244871049089345078722653301949252371149742605126930656820007846578827086048080323445106207559061658312700318432662063488646544969679318513427147619098081785252972078949278139622450845003753268338646177811036277021389285396829725781167148961993927481550118518004651632374603146976651341624858961288114912123969185408649971214789020088974272821872089431619222075685387165525686056923895810961560426751606638775118729571231198924221227957110889056668902574974266415171571556784944053338881986002311062994847527264475766597990429793266310493270803623564067994651179579330377762041758755133471464977394445077283566368120273947757399073025317684757299234340883501342764891466461965751361375769164330214504498303327744579879771853299955205265079143244091196063088329019799861463696179348517666569562972603347027482119234342537147986539330396647638639338659749431445573296032367566547357047140922374739037760194791000317574168671897583181242214955271515762678049407550547123152735944949608075809364141629402586744792271982283151103872924393587364536790243377419812959873876062191728930039533811756610988533276226173096636534774057300830949923699518185996405967043797536028870291754852280123580752069388798932198919322290322235309977292940487007528116775093409010573162597180536875379765938325860856265381256437633012391218210859349118663793975791976097010680434241609636019524005271926758785862589289359672112113637763342962824702481373877377150224332005144631638335785672463831459503997069533282932097677686296062215903814663424823013386022576937541838705404750381774668524014771735682896075394022328731535517830539811282016594738235124380772903894325337485864495965479566094782945597184023633671741723607502586502815362103842357017768099253589211497229860590636060729758625969439971851177537295225613114700371801437733900852373086961138532107867680650112125866752569563683288283538816347405871599852266317974428973533918935578258602007687519845297267634239555468074491297733863403091680304951775990848138939336513452401773013035795701371816115343910058945938905310868661528633092974142304122945532536610922226911602429305161195433818023730055645796617181555939421338543777962751224318920563648603800647957506742404971686742359898869538856607360781923291830983864954790144564284088498085182664042720867481841122668591700451954669754941661627143919151450640711436379090171920854016751406391404658825611924667503262610254256640351455282979037042421437346200409884176918256937147548940127792680761243770233842328361004054244644373690072807195157264315079750964871431975502041364736792896144471844177890512768071307702538300908698002965589005780783465796575949954836381208896148859096288172840351374281486673435826599069405975695452498757682337380121661704023182830869115708831026565810233822013555917804035040962131177821411759386758599260829808455395455925288772885795854579073626672020547367201709160742769249081438043141326254582078092144632066953301211438668055838066588557924516324112015520084941754190331421049001151034130246793876970712842504556135160455166091443162686783271659116194752417591708669006448377167376753682187673379303115319449701081628098266267248697395160080168284615430025746369504419219853159151216848709786780204687840115939388910769020171276847452588657854610162349450734233449591086383877523174490896352231601796294673595310693179825646771626837808787994612113334070881802976349757750792974329135942079375988806299890022726728978115052255867754280653427514541997786263092068712718433429675431223465473640625451524105109463884406030821558065734571979257917217740616822580814219528672340753482478831562805705937759110974233249579175247523662494395020655842346073949034839709682640402998972590789114752240900401575718902683868009251860410445000321589660377019400972115805958737840847343927385699011568110461205365070042200772277894081204352817838792858487027358586512084725017985082986858628822426122679357442060405829385334009793522288064565330361650048796086121359836635807593216356735900322471886213454944767867107661052442060266472851942803318932129069947814775221003900030077284580273711872824720247507021723673292469815935326448101407783839243554756034225184446658317061679169546021677297099229503603603342937915448054538659130568961634177684384848718611591646819783819025933230625114022384666782287964994540053037388737897644236432881675403187275646370769823356015017660376679477455646976988601843781029997002980269878413399876053211285306338708271486643490980076640232524662802098378768592657065629225045586136160253526150700330691641202125503691418531586795302054824615926167962804712457191162301088506500167289849540369993265599157622307492442314023419139927143391427363024852098734712590962665474404375069043654985935938011851336662311539814827141936178500792896306619263959495915618517559431238655919301795712910303091298527483015199274103972829722204345721968124384536091115164469994424804938316597017418038122575143809673410656554462101962934686250318919512043792812555041336489575458547996277438274442763938054790716303695259746385324894071837559892046484052567594012396422809582643670011601124909504182306887081051720166696327573932130940580733244656896266377324180132073799159889907837501351285164882091294994496636436624047304617125406303514208655605196619831985813867940680870021863047289205098004277911507504251622357086167420087988913215389142024193822933731477584641796375937656595799763052326867381103347843312480867704910374349344937786284304311415806612560785643660979440738086305029386964409956473710218106088774803873841246782294518424896353175032529531524092246991695841140762688174639899952112975811885415913004694265230390663660764482202946119365232234581924172480156818087987093501985901952844808938373570749710803508285076458277091332335316027070321841171229100436070583369626004091655873902578744738795898322607057042184387152209925256917737387273117528334494704181594690633375972773512140210511949009203389743169175014924034008555140009635435254438674775979528233523052745992231197192132284191190108925269454524399402761561939611541110391392665259484428228229712235483586083716647317440806149804486993624818793652938564824329318766684616701469668124967320419197716837203994446326602669963948634987353643915251906353130094912194692529906819941944663013636208810265716647667386122626800501519346508706199145853339277931776652131247891391259419902004089675242706099485555538659541435171623249718001328762441663325902551435133427954382322021827497766179464448258088999684235897701198774096662917400957450439808200125728710061544225728286066030051512387765489750642616949548302654151690298050442333770259544173066308074750219447876853245715396183114660935623707940894781016374624725583090934510776897914391395962776830004233962512866881924212420511785171077850881725118990308551148571194189920135616035715929349079202708072062168819659541984677625324779834957124215422126315371264998497378407751496428361830163214037622474120163971228529635072423221349754854598050681712748289198543569321288255734045925157342880242279781013853876896989511567703121192730137637455389360915085617450430708188132305455745548340928017092541657590735994500311710643056020150500659278282468681598691621732251219161939712531851502859653580826206676727416084125790840533379555286519446322768518038666746524181628065500447981090700437681545880589286855461022155332460160791984537533830116013112365358412395880595620465812659531845288211642536026481188881036049252067288994898708567521570249045537222909791863469761593538839009152825694465413890979146677282412310679069241353244934301896828308130396075137062653049666347534999615470697796910674921576687595535362383521590312241608443164467500802638318349842236547309242778404806733726732126102210349688430456010395343659469780638463356039143952146033783771780869894688100067641417245857623019915221665329252040529076059309935643324755553075001583465160633711671506397465319558317944405023555466290221042317836842066937548808686479410947530645872835453708602372688469244424220006551223624414694729272356309151863563016862372665418460778729731853345411140529236063744006596538118264823196062079790985499397144577114905159929960331353238921957609021321572990065704711346636576224275029717492791729623237583555850505699082656259989878118569083646511901212069535218714748930745604384574172674541711329919664232119402821037259211034308897460491737554120786142981921981254562215568688826987646324236048008922934836076940972396465450801926633599625401875453176271970660097400577826488532465531224640298023954304928203125445344168376497911042262590624652651104393259240283088164914959014258935316038256401956703001715568689228705184306126157058151952764016777663288261509440870919021337372512684037950282837942550485231073925838253462448590427472284646142294567678664718763855503169469614848711143841815212979851317518669124025800418729080061788963753065396290281735899955041467568040058229658946605471134612889025742651526738482516629107070081922142005647440244404215026221871134635953321102513590146549764936264032558693970360596529946243044036368115319351896575472488443022393569221917853195336993130147934422784680909882429128486702858583119350544334695509336147095660463492246701648025850017147178337807991262536082078952066367158790582405721892599202119727528094416662910270216537591549362428124898735860712431385203265246496888514644439816311776873483090425370489127501910885590932094804841620534410098149745947809190956229792956925164619049968165357861166574849790663371880140280278992076361595311115424199480233868998922595210313924295256105303437605367486668290328302870298214866498866847684249527683672979525868832099125310294287468235324167776953062632277892715509188260810901191098578259894330508185012218402057272456209790141097824654680320982243827350962573805535903734176804256376872409009944194290569257994319313295301463430544110492730575957123089743001351597624616847639217082405726492214616108211002828222870897437952564329645269494420364371525232190601952950557802610974717660832897497721283886064256327128787526793247819787022313110833695823576546184980357300000806427148082611940950148276630405112018859293699403218906540910493685162050272156556386455698420049142323335515504026505935377307395929919943825836398124084198282170242188978637911057895146271430875022215436888898493427258798698457055126759003970814395142720324146991586914805892146352962176145121442988891156561838382308286948010745973616929410652869196928772513993861018926950132636875401821551218942564246567883246463065035524073451700576307834641369415780054599541367796773729653788412678280980481962833845032225423958490340673045192890100092039091644541346327591819143319075710535446255773832588824994347497881365502054871541913835031461674788807769024908611284084666602690550188849126251268147469208447201348667218498066593987991849247175017323027509279636116881302489990872463946443298453862406919456260062818270861340638078587504779994346425154293419584033160353764160275200433319946239053231623121224295087786803665853963805302312932184769169963772105968606052879122385918378546344666065124273010016594176960617255942544372139558324551531979366488634989195186237657612622073074699355319222418649550320630419873615445181107651768899604173998454957979793155072483323246334446745412106534939134398846451586898923866902876222969955793810586007879551996372208874312366386206758100955163430768492249756205874041136482940475879367431574208878679407974799800670146942219344419498604496192875944993076763286254297264697777833660070788525183597560756689470243746594627545172689590679898542111273887575087558824893881157413075420233331246280333398359247928811215007842779097293539158410383500793421649869168508879258030823776962994157444864006265959581541148169098825564496073829143370799800021721605581955385259614334905376256129040545140012022468391584333783663512113787163631121199107939161139501325549223098824859623724418157984054709665291616567862340746814990578583256218412038317567300471588133007633800953631557184620709268695200761770881733736991170582224980965896286079383040483025102350863536466193395369261602503320567224662749700948930807371563274378550753164076961485652247076053390983096624893374756291799716742836046552966659824184891727655718556836228366358923137213420172876752357974082857293880308241776312636450193374095082738369340612710494930596656944776589736744034311226124222128522561630221210934506899283336433978911745096572637877594398405141695900944051663655155133927885299109106708450811986155437822845952014281854729738833613811209684133854375867827155140101314681580796891499795867315942206287298127862711765580308321087747842244953606955086984420140875938921058210830734312680804855062094862554926584123686995556091981754127752934236995651664070228295366788908523269978188768715679659006079572588980254088380853703379592711531124718057861347594908933267836982028760600998822948061631068541035382707620873879743813799392491479679276860833973701261193904799579613008364793845579933021503995516822147503660969623829299990714488145117783267815137043743918293213022399668023687874157199809708433981043387860724211176220625015006479308641703123029771262122647720463961533687292902880532723310392591170918437148751694789583480637547719796763679879532652870454781861338510897480807159857293375585649439806907868643489305712188931517499871312294031445086807251200349183276008740339234797732674831981245644103813407205875127961220374974209772332006612580457513896833130623767673740760610767202159430272953775300325745155344238808986388927637414635587688347717151005628256900387447159289959671248442253144659348829719513369898356999803453916760353668621876044408994437298124167277827680382612131159168654164994580007497963450220624044694797138365657938886332737151015109847629402268017369289484844009317247894219169689523529827408558257817128411570312328799889150481853354088152700787689262582990820033984379336448326089575168909504920117039049685156242991069187385543473018349561993509180366474262632557193108177400527012936961596668316111580778849279732566271494648691405667628553547723472995026618801907660697690056833706220841490956137062588279137309004989619702706806953381485880276792400307113388490080423439700756192698958662539723960062403811874869667283519259423362788421618076648974280445245049557144253476981979084150013345406196852961442138192671216576934902717768484503347162375537246787467456538245640471249347937066082356962349587503618055864542952161101271925499811416907126131708523354474654008510728403688009828643563957610378515775224502258542524499006727295197540876819387928397754633453722636577647247611468830653509972020522657497076580062932755677177069836013925167177893546725950238892142815223545023012487063195681149087690608174386231634773848495625297517105909977706804587899442952462692619788120935683690372099708387621356444479065700390478400612184333944696834479151345651465931890022084735441345831546720697647205249397660082594700659011374874332850720053747771701397563715891158661541674481643830905223941841811100306713642735166179197621983950351449256092099231951385227749523195575395080186051941760965842203601015429600769551067101944081604437089783178005214382238494023821851786205570819207878235975598863107415886464454215116076633969311851967785663104764431552598192958752000046319310687953436679933029827365103873596763206755242146556879913242417920424879445553767688332116087899036797299946758414680080186869529744233127659047614631728614496045363030845208223061556950354841863677326921249189481678131167582246855600733376916654500638582053583771231995561813125563462145272197337273098405197550334161606875264342721295159639243603367930088132218389079299767674872858397976049583821778945010639464467132197955839551753052630701591774202545117806739461227761560073391322577497882529606660800762334842745186993119499027994729641552811037890113772768515341578724490289954045019402564021639819684664941702455317775419431757651068481803936153843826824187738758743700766239274438442094803237572847734282981948075445204447552998257522314429898252577249905413207824933582710641566386612190114475574255219775683958573521512759427966704987110055139703424014169488507030836269182104738662986487473991191762065801082707728962563934180364735210903546698912162330282310795501688933680473991575383296770959836472120649144331074593073630889514552808343119705419157471519613265738360397175445637629939975182317581705422872171867849092334410397124749171475296358100403372398641303473123632567266583497684196101176923358301512138876858342531454356862107904245057439060810271476820324344242949549850217666134883717938826075984034552740232528395864352439197107619279859514837023942290173521496727659916260178834007390100442738289091547420503843871079013060351153223381258910004836600942381177643888390728331219970445185359250388491719733057166764255790196205694535166892277660267248237742569444449622658097737262189761281118573192908920289314731018625260760670332032912836890527952842957005236732064968912738910210690014721689265371046594132779236026405561879283494000462779983790645149448625134951621403463690229335000596667018681411999252414454331204901801292064757943596142065118050167880561257782781206606320007124456051573634369603358357915633926222858046523937422136432383307820701730447461820443491614479857111049117116383579708151447348300457299681273530646887761052161582054838657036916389811508359689435551017496343963670335522502365600600948736906936081739756884285891869592095638439425581174887737215788672143352134021270871417912495418306217201189788486820529578163813384118595403644249388171901331387647543816335317859340175701921976887669958147360517748767909484458121375864054436722330637943859356163538253526564022578040490473113157726042562468307236968306003763191737679874445453105505136716639692944806401604494400961666187945471860118281529219679086592294137643269910348108371135320105207786041159258455249506797868875553460700840055488166851443878386497616626836196670084158201861889290215929062651482959853365987807932674013072243393702747855625588966269016041268760096528576804959265337792928624075804056536391218178721883581910188970916922860778312633602264785983532881992742430151339126143863493081264499570307668661880485436911849627188860659920411815914964574859444689345993841109222670829921272182231454050211031507466692438725097800232887607890074012693512534620512548832077795842494586445277230504372865776879521749191283086103712567339116508556966994994762045443492157772788801108259201796176204323792889713445416974701258349791204939193373598113340234486910721349826856983943761594768547972178421866661671368299851541923170273211353230190863111392435542550860475076973741827891122965388266963482319018916221806667536597529435954350609407109942430066391555626366291116912989268535904046268429309390957701044859814768473940680255253045566186880372925993452901423924283579452127020952497377752887901690769752817831496217695092555845054434391584597182658968383737925092991233427454307306271753522112433295778548958560290194232720831825704415796655239267507102600572537671150096546307270874310028362173608642137744627124948511541550501066505770335267755714978819430257078073935214433313522524040880257671464770487543546207122278969880061938594623692370171714760250249757247840763370167790839153833702439076739246917008192847628577429852538756376259292445350928398706762042117244415976007249513194902671910233949043496845535062677462627278551291552061574639403215334819481894342342652946196122278076881906742775294395777829228216535230660511771654184241695593686585459739353993938276290939018516857790520032304361679311847397324437523981405964253986158815160547880796788130137986397303356411270032222526578834537503972820032086904601514254838176400830569311766018722983565119309820646752287114692777967700056605786798598122709462464398002489728018932048521197730433899675097929991768382872498156746087874825004322330735820676373640633504897918402102867332279077689815872948322674648675833066971988450457634274091729984965634304179291379247918910091015137652877930239335223961894337711532572676593155575717623155183037777051913148222890524090736830962850794143496753487332217664860895773668344362614618612451088949759322397886642790887008817375587588325750165005649289168321326309091408252933520295767973205878462124951771713786063030781198038609384563001354957776683291784361277957365598381406686382987593732142229932828102705511570110483399056669701891303654800400320617741623234313277000407366756753532596931872364770427776576718672898070386312071896175506436631385257993015424078016116490652098176108137929658979037225655997331144107203267113577243117606334569913801756060950726142863387759025632369727574532904436218283032002492340013696159036398307945476368329876473216113729735638976339131111524384819890041655583069014704321696667737216154693816813394682277108770038756327813784603153194645442849067369720885102852072467491754801779007242883240532008143438331958711715675877264858964354303232092968067356645607982164058523792305152317399648008307372241934065947465586059804187871970254704913669962855956928310405679998883810186665019043187452412590844194069019305804549629504595973837405190772985823482597856538215517833633100323182826950131166283258554445614538491132606209628320070658321586703424356050088857547545236532415707068748180222503709270620391699846774013169476004089427287283057339310850085562943816482473575724751306569379831856332768240271784469990469282736360062418686581818748210622887433515638715282666321494717585391862048649035040448778627194387936011870192361859528458832912406828218217841991966541917498487218501086322520835379540894524221480014399507103518676611676915532654327431295469887254124417064013082856428300070057009488845592755007297421691907869480613581822637096730443418696375144393788904129495253715584535182960814550776659411189190799482475148977114370395623213442315787146370785508678400763861962572409724671677637080409662334610479944726317224678192802732728910819331222421568828769919549352328727004391628879978386004949457343233149975992840002966535123197269680083273442577572802416500554186350178722242966109136565084063767445229208586540819826757535823038326740683774742828732334656279609098377063144175537252910287112729834616958946412919916121477079717888883063804827510977870542128652715789972278848505827657865164110657508230019138028082631161660854078386079618612038491462962452836094170617876478104456821480707165582725857670275153099675814160749338833074642632333255753356156723460489807539667824303085738730841773558955962900648901489619944633843017418475111003312463772629750340506052743379143082871208244306866617071787165753355854198807977446902117584252492718273357716716827936465200716691508588912206773104074452102565882405676894643530905005251775214567916593894744622526674192582294928387541302956929996539406005448306949449065598765546358517996216778187868840617332811131869725846278638728533336161377072023505228776260741264908734715528265859034678712965850493165813359498290215387151113501144853867340650430333729145115045245046704397825161232252637400218321452928602869049486269113351312284911068890994032111475370133147647008462535678011293298930212803656748952340995306348692565379633444904922741328081859777446618460500960288864058815770489419359735544906939020173299680696788879780405069976018210345335275574061044111547463166016131689615244057067555005214442246790283960819032037163979197209596417775379724833664455666202990501152145071897928399940433881762123603771551130640856916730156070494436311119737440903949589346624094355228323166616889490865320924214771208692301511033256544700481121680444180242432121324520285134590284998912774801853252701018723769077674561564419341451487849558596704144871470775570898062619661418015639748448856615654401388753757815190284164982855739189441196827408151434448412717087477122503432007327475339753501286053343153027031008842810894374745776166300374306473574653917536028087328568067052662147595349595109466732260366584075016293235972027915120751330057034964370900827395273039823933977121197710844825591702147617780473645119072900443753431541154819398642922636961526294629914409382516414092884761657744632312091880570560481336713939478538797458730420256328709552347856884662892530472893586099963816371483236670006532112190436353620943268027728374762503520702969374679385560333997330810276658696082925713654420699592554223786834552781904853080806111376665006582851527467201238734306368471193644073048675425303260269751913464970480478193839008893142686984740542360536994524342934195943986768245868301973409970927529788725497966006758517927741705725536539215714075056502181622252997569360132979163997656805884716188199588010948154599784848209972091667574490932536648738144368543531167102331087737335352649514565000422405333331338622564103481434354928433618005421502269223440893838554532215805054342579179983843714605292208296940185846100078680658340187993116912288758512180563591351773914922140668167326697744398722079500684530792119988575542336914810761118001903161527950320848633860438481725939990850487583313947597606361275035639619755122025694594104444352727082746130813173740512151875629760995858008484281920421258883892177229436421511129792774115570262992936593309829396029910472711324674745925475245948355540244443362703442427690708532799679120433157044914199298346968695531678555423196867667100055901505343640544666462228782378175077040451549932025977770169185005976396038827652537066249630972855792556119350222446449596511231568097072702559077718203430296150749306047642820574382330707101366331475142084935517422411819275641227677492328470541446513839103135011890519221412211056221951720287594441829238300603028824575548559774115231592963085891493250597265575667347729275190847863557559850833850754861108728499318972190004403046163747463373457720641974096674237601968610606894350195266898681552541492408718266679724012196593855671967367547140642957237861098381648134943483771559271010256950199062020220700484066223364611490512833121952819977929988589655793976322376875608313504355051087338826052416552077795579758747743813012672798384500929714544440588746609471175790002597489026105683785097224504804191666959363662970535842894425262880801519080182246919484630071300518895756044411463493226000050728236090813065391447250177637930440640650678077134091757208787533545661319621901961305696662964633451694134517165150411107821514876975852828770511684371541551025664386690621072951718209570626789021209599919618049883846958844231608312785872466796329014312016239639233881893575669352911544419855666501921884752245213832630354551162968548851097938502509736071457386510471079195847663767697699408557082061409230011904620093360874120498398619851895108669945358708158352064082536938386222065653037872844318269273992928260055386074524825374603071656231034593908899436127821280202187559781340643360553097060129712250142015825251368054989782694159612725752461137919028203340980826986302030745809150912243216195200986413096850601223724625829706954655712431729412372630459935991636410586646048645453985926502892629463086548240445887456650393017015175382964951223559034934120383523434754561098588219775546766457900992470049116130650626982606870933074536212744056591619763944423476982917296695731792828364139747896583537921124637697850690672051982924063646808857422105667006671650530156368779789220525706726780560179043080363383638104395990061709958580492975155628961081627364858288654594239872326474194007472341803894824412687216744367068550120197944327147343259714997701493258844901572828818753190580102746878746817358148888364769959924279250387963430338846211430258885011585619273990175242038105340216074386843717484294420404877288490441151901682779714276158969228877621398697073806267294236713032361752069083845894163534209007194532881161767623843128340880747084827243003994674664049325286564579756856278963681631769318371713682773358199459065306764411780188350983853861815226923423015857318820480507245279149689874526858502841474413231407210998817068223968183415872015960949284214338228526122627333844000714997013290030026058170325228110224466362268035016785399068947506419754571166450699077313162291389922752239898490607645735087008749571584290344708117679006896803565874722776793255755800241043918246290030691124286671374457297022360686047830423047339827171256340811675810978753676476879289119035019523929490185855330971129054493202575046282216481801464157461259898438016590523846668687439403247485814584726684768680058547496529876903055543250432332698922813951588304443725889483939059382280145590448247960436485339258058798659169899502333831230656954519234719979528760077708824121043134553484879507694528568772954737445854658122026076489504982495140848932193829075930986136350853931644893593589960127740174122632701464160775052706604793172077168949148860054698454082350353131443171145911756600197882802436521092298243417092994515051485781459636361819211997591654480169636925949573961345105458432596812917454862484745361952235340150116153238929007429582071460113240784999750356518808054366869536430110707942473404645582625754957952985285263963743060833528417259661374000852073339839264772387083398486294095986860306117703072246899063455425053633935434177904725372292026861092300862417831472147648313802245523161782137589224097389472958950314369372955386396616707518958595928784417174589042886861555798716353546396904537874206413221240032941933469398827420792340698467411569016000132708303736996893690029208713235870115517947342615128633809890018524984440804260886357808793187150786964340036257656268687983796773341359238709156948528441618961735904787271119491403368581586869690082419687633508505451536900548987828647368881104757749685305922903513933045677708022914564996363713833552115851055615353609973423933224694693258054395332361231172568532770172976012444120851890348572689952685640920019349517643253941833666417841227389138927759165989999406314708426640938807777146491398977941423369678373107061227026339533546749412988934721026538890980192613609188331426715085694287157687886506521932022321647456855606518226407544975273624985553256859367147997490759763842795358458000887460093058978917696033780502381569641504421466171310983401661119741424664939832173351627822031428077078520794953630381569594980901286705230045697581933805734995071655201437915024243638300208846095398194110681579503676951561840183754645644430439996556723043539447651174580005548128177150069815936489737143564793379575744489745817908528439651827123961355063369892159992173394548333204546808696836045410392587604259511119134794336966743287121870954631782429163955336008687197723631660151923990975438845632340578080900736575142288096978771268318449105056459282572894138126122968977142232324499836361728179925538371161611042731595498567605549108169384701759559721832657796983353587008558292588969094517513036711187819238738560112493215802417521972073334679741318207947724477905607909488023277863282148963632889833680592242878463039787049641795909076993168732283834743496827139938266146731160128591184440134279774420034413298985594429286704963915366950880212909824510463200555183391952543355611638797357346372715696450202236090030303496414561554115716069754286827616232835511712148074628922620869360514936378193074379818671221623153519251967865283601919283612392900624279201114205462403204726571107819528454660066508805268840863739561113157342551532164339633256350872055623657985276048903584837260493846978246897716738107900873773875268196469315849018371999105802287394129504231095983493638681893154300956864583561134832653410847515734132352520684320812269242354758009144295788402075488875004714383370022125123597308771777853464230213643840337296559000548207061530877598603885018548303231098812757534635117548792225455770722958016767627872033597210021503755152837645203399018841994316889392250277950019165789457503364920657553308772820167913656749288607702001307609609322401987559450043797045759147269659345501619432297363287577642204671980825967366651733896420544562228610633689434936975751609443479787449630733450207447945466820144743102533835274981133731047610647729000868978791977231561145883522268401524597964915484505223099101836794530478924322852514377886347861576602815514054809951664522148359738473696021524867955700515302692613508044060532216408908219444247664779564828560643278846474286566602646475228669293027059996363480423997779216362872514431953435062060195265910676370997080917565078750653420240553245530020901770737290143713013806481275587021898845910478411910685165000582716082490087456068124524833917791223479380356556238101818277658143519068213566813679091934837269615312510504247415041599955925000874407903491312624697592521281563434844793220358770882994668977383315093372214916621174864624376337668812389750493159116434298832636324369946412299165083325488974723479724816290599708072457369570174035290325061680100000378907279872773783847262613695223685674066679939948712238494092245187139393050418193519147991510526642015574411340224397658674682156971108339525384006331139909733729504216862792824277519301729873842877525602083703724708897359539015008933232677871606440602115569614453193886440329707919230849286104543370441885796451943441577623988331916115479125888579946314517958029121379600607875324206429019490108758484972985999245979877269014323315650033781272924703276577746937955137122938237768525973701961255665670670145434621385199176633269356298995981292258863439326264801173715248320186254276727867258502471963764070881269982546490480650730299466711904784683736108402712168022289557695513574808717546040824181173080099836456778822985427377845170440892818975446673764386067601633868495437449515133324695473638316899166407330085602214380942119192389156657975303022723698561986890004983372384178181860503874396326327063613840459671635437751253248530946588126766322729595304546099323173960210816809441635918574629739753467878021684814867768602353170970464988113671091284060055208586096752767135725224532722995581152269234113830040401608753343864594922290021417651320133365809450147933823083318405508762900876306401725161276321195702454179151866738912442654269429487157414955341878135217034086691232654680877438832483907792599308031601965462157303731301365342326577298396045699007953166616434074213923708521869275704018441689015094283372958597924531363719536042655410017017825195853542518766380320693682813095091645723310098415645161500185023931072157089043078645906855724034324208119293259206187056716747809889540219400790264695060314688737763299870074862651441795355770639070173820881359815370242281842121280404412281056757207661486474211327859711564311471459886559133948832822518397754406742339542123149998425812888323666653045842277084064321283026243670603482830299813079560286802391454366949878070062987669443011752271836102451984196592501127216682195246331824860118895715765249903833178381612385276802275700660614340073507756243251598579949034170191990504300852137233132968222128452348954370687717471909954214814422512689278402988725919654886341132550179521965139182641090208363097167232406143390640366518711378114512072158594260212047181165657540116910564407512689173894590054487255239598374827390467034476444689332668699272979339192035880152067873667446521616274028283761478180098074541036361920080289244378402763011141548592343770043928548456869654491432005490583465635045375268720436885185259420235292565933447586909090012363800873675284025984313216904155628501083569570222888178464476926278372707574204925678152484930886547616557462456213738791543622062317927854455567370129270882368771812489404769570795373000780610660073280733903329545970640511048247221606849428767729346635038789236935366554706264077520708233792265528822263881888458476997925273990542870510686020425105450377780988545761663142859165193046681595309810801630919652369548607192871557543607638296015505694257347088077812794437200613612012105774089001820727234575502268661974587834722748084145698840252648420826432410923829097255723185684260611949535687040873231985262907405545476795648935716249203890923358256276561767973564124034409555751096214238191977482503276909353800569084923968997168308015624701104107493030047149106228919486403465629304635837592046334702239488704182900822750900204812869431264901080863179122723102002941829563599489621099665172069683864572834274801887139750721561698125128348597316530918646706185575162679831209998053862773871467310047150528879015873096104594859184735323082743921930644853538998597808032105163778667846307055111224940130792863131449879463313080198482136359077943787993206710598458728317081526778390439950511911513504207052184818042245367341130698894147847619998719212813773089696654840289966967092360138061833257892348384387360237153706134118380161068290140576450078827291340869672588057748512637283023236645704206406713541698489719389219857414882165916304271658946443481694092819444132324371402675120082438264481014818179932226949205096571024186139270306480893475010819566891661703196147294324909837863853888875333025990781535466972332433207115741692071458865004798663536711183648874680202712873980952070708428280264581703921344422057729774029323627006261844835314514197909904405099351985549643233364654202418756701124770599477381586154146402668268642790227880008107516655858461996047369138195553172501499888637387119377367505990132002169276955670415282383113161633301551885041817691281192665886699170138101787005392798432389109275159352881572092820594813437453754279467961719611756468582038916310690080703464606885165700950707883115635678549672311733944047554550395011692490463115087696728640064733498116314604938347885442595149123760737911634206708108575168203091879308055443364407479761496481875314063030039607307116189284394096913877911655304535712044871269844721646839711533544438392453027310490013122217732043490672884053217318440202219564253204903254540395690957101446872517042439605712934341891261821666822195958255910860004035324702787499678573609335953565669176111943880116656589187147987417588241866729965715915463390304344672123784846856120805755085660688789258091122747340886146148087841229954150108556454089252122859539498618888969376575323421086111079080186671759387098832602442508797107093830503635570437390331326555348403063501246295765540142085259811457047356027608605277495368214429041142457197850666327263504963994598591122526206914541276097752611961768273346723792856157791009480005238565174332159166401387996291535575679185733943710668993458327189069065489603980242735475014037684386852279763342933740671400868001818440074915886337549885047692924250825872329986919296266463788785064066820867049725606144572530135918628381255462681223336892921889246174351489817722773850791624901274958075560284677147187648995611901027109608052831436438706757778245933126661364802237486884058261382855737468863412195749288234517918123588608334405767798507129999603880557119159253964693493677432787092015747426998338535140431313455425551095318757845782839836559165294445684182473082380271003871361263788537152818172129951043760828348233076270476055940645519110740658568109900251509458519198381218166561654699302655332887830327992478698386075224123463629088242075862713462115705105064096295614977653715616708964179929358552621631647153675752857923095381039304435921770116375329172043894523207828645628847297506872950907805413900270931794579759316842410938631455033350468709391212236165225149556850946166018142766155659332055064741777613304096416356646748132498401942978289893212572891642581902866372494489585038616482043710692136272277399083185441160105208691134965708021106603841066784386375592387150577130642790151637784574997346517624949245987339575097686919586253841824011731288793741561461428818233222903673314560517632887566798492148551347642020723113481290176329285770776154096554215622830253791851733145813923710820957258693314326926759924337875379900432655914594300207097857715599530586311339165752064793531950173149298928737638647731552289871418070950164396251768167635776206142472957592095337739169193087401906254426838049076887212057563085252914339163982825972155954229439081664555355733630421182857308438061867346519727133337738704588764303788181930301124143340837633860980059164138070253085642918480787551812202771462805606992107190100545849673767565183249402428013551033696860804455086446008835685742750073799007763567146663797367847743691508533456941377432966286580201525397458928044317331059650571679707510251536555685170703760662981842051080716075918170686339933097148115172263633732464492893732516788627900392000918918158427647136967943245368714424527067609041081120829485643737882834060075697864803832231047034843748217450383135124774927418407863826002847773528794610444048792343837183185752436014625037467475503728383611884315259143782119481563177222487045574691201920030360419256492056460667299885308253200477587583939921606635177370715759813350254321138743290132142490378066988935960833344785549798965767844391988334491322855010554499964421591187398711747421437005052764398268239173568535500795289293763184478542638372842434854847481033362042229123846367596900742069736698825944650172825529797347152563514406104772626783667093744437219750857578027861290791613900317659055799601297551387605511824493715350071453056732547882174903705868488581410796026029603599138496125666072955268267544627989645292066702642502458687977535973400303406970726917292870441406878560510734701923572703391049228533046132484609303803948322286542036236466265315381324358098815775892452059203192166246376300921271955791812052018155783164313647254008656185629866125003370280768117685208957877263215826229215720255943665661006234179284289148779844132324955940202894077006735468515260923782281901504220667815514128533511369160858100246489133638265626533690878221067096295754859988685454848870420094771702911474918741833560044297766905789748415387466754079906633803606054160145606531618803979308091211465320016514104742968947223481744436354659006219913289208529109031088377800499232932459617345360599762279074863035674003925488180094215826030749654314355670392725085709323675828341933361006932963719179543120315734211978162063591478155424885859905506439491179385016775272770533747752468362197846962550072986650561455013616699957994032251740591086229602387495245430307824437674587863377278099359755243548507282833972069318765434658288075032982182579104463236841691066511970875048531562610273352838828429746383958068371872260905280879076017562279434510492098787999656135406653708974500199045069087817216533563436348338709835187537928590964252582902753348664979203837310226867888143575853416317148460048375848550399070227905907156009204468182317863364249722101603594112879276638261214024572448995411607387025105118787336027909394447050827881657393314311542168412169112332109194847672608504258845970332055125754464742838390148784198957697290596063140474359813151985117994085028647288307834727762830141363943649889243018921460188547228222615165654774565199396387036675018931897861575670061691227123805510578436480017755288177770047408064125974452616104307653378257530562016789482105425126591689354060080749826763648434009117838517014270758420155527966270853270541254101006101600038586705424541910264763927118245220783543094484630747440583718090526078600030576225852205133800087078042299352253211346600654058788731385945779022349410368797674229180375716421487465731594908920117435580566814191794207866412184150278877276202299030220987381050275044106839703517923190102072126343665729240064056006317086973155206672248478869655564156158314247812529915456895411595794912752659375888654023284863571451660684096288543011925640974667346086415251395435115691523653741506205478636901558389487240551500708607196585997536408382260846909604576658724730561839373078361604466225458177439641859145548518624180327452409760994317030432764379083779099832399566398325438142910936820910776149109069640927420269555876816793910407118777007551360949707241279910656285222872701125089510263517242063707985817060909154126660746249539175686049436938944563935968174232032567881852813445712220817769816810860544692530512051272547530909500132866813930288269218366818637796381427521694920451857306822654286705077559115658088969639524179058696419501655696251945773175443662013894871584987092687693842455342946380140411572982548710033789807944905355430377010747163548869282836937602927182182868303402321551101481536664227352280278870606266143047234613093232503749967108044748911280515489078647174278104882303073008059670341679659464423761447976589100247538346492575415515894227679508013437988511412752146692460734258162479562380442424092689659189059379493714733877311117647137187039402646781136529919474822407297428506433491417534270424588296138444645325852459623509085243256347340621781802134478861797166902668222317889203171182675766473530268732044830614484084587216530995267725840123689461391421296354729901172013041346262729762930717534567426955840130663806475516680886771680884077868692138561957047750816234887005104881879946683726387695743784159929067384455067633811277227547345959794221057003197838575143321209140281686456425655632665562440404529941341617808898019157873458106338691147743676161521323648769005510633011711949906882466005858464191141137587203651496939099782872297608577846295411236722839806184253146991506407240851496547845101689737958580306069385969803635658750578005823365236354478895913944765455134470770111794914792563441736653277421703142608196208611815766010160770257343402854970823426418700269284806995982517490042059062893283373741643996585518492600230371979402700700644470461544499955097238596766028040366216848728901569385167598160635239869004181748128361092421315107127308611463765067036762410872834174593827838564516496319171799380415697619920191805675411824726214158510400098359977740262367940931725682276889586158290921262829149273569925146176848544305345445888311405462745027985860619427765171030938156390196437979040062721081076329365294853784279036523974811897656149909075563929495338514491679277998342333545690039664098725369870769606840197966426305063840017885847421565398296412556507325487459395652228927140085015845228543989736134394506883280731304281506095881663737133027897843336902537371840458103393275747574955883468765421535021058637698110702878972582546388197238105374721459032546746959673485543442920883533138301882755135728543574041354633178520099462577672252513058404596343487868599832823154407975371219192983280591443354949317301539605112226373122943717757056271999017091188409967587393755063663109500756089724602337137007739185057454681356077534539839221318047025587676703175635297346407815484348823318175190328455618923049581238818701256230191864140032760034794708683917061058051971680772867681018859314005925923343881300917430529001797174091870575528369519436329968241548733943572028391291864063969979482212678368831553430207653569915413341114504688236037477751606635397419278960767001674021116236101044865276202908068202882952002424788946649603501129032810026800342148701028109725112464281457226067480521542536494466821881452481397903341447988063968127392603061041955722445418787115096440296753329735480945903419171090243352580233878501740433767235482076129249228252659918166567722656469433485108942597630481496970798408330802475324219145887470079963832184827953734729322742774820459324681034776936867550839106858708998314582135200662884446809631118485049794943765762531732463118424302136741464310287753832426046692531266862507167535269082565517514920365776182000802716856172569325483964929828458800433565190557363720992566412596235634608180371325277331156927576069006918792396644649473266923516646107992150307861818541783766325163657621173906917529103214374431501058462741500233920547123692037537264070672699499001872281111327654847990883764044340905860936411841345702825104946571327124203226255833573898209361505527749839196321275628237149458206640982517520614352242536915215194527779886550025450456340577343698915094837463318397383698930397267882771514824614738644281992966909313402909677334485849181109311569848344007071074099615862095283431745234467511075721999359510226219055938836629239734153045281812040167859144438568712534173285825854376310167352980508236537225628989523927615631921813999501185534959496785235343454702564911194135991399276459500090066059925945072922177210177550444155684611778124693961205954837208778227121760590601209051400992542638659994156585497940624668496874256136902940214622837578029308961260763158812434864806562428497576658616383673812155948726408094646264192790325544388649626812038028211553608213318186871267569520342968079581653590054864896167442915998577048461427594293194648365854279413866247337947753360285689336303464046304986175188244296633444317360787352071432312610967418606450369098047216295885974757901707386670423817264372441496911875704634197074076863878042373670740729483586055372984620099533009672309878321931790228266969303645444048387484321496060309292634431723597496087977567760323389733160571479177828310924042274585769124286111177160511473105998015980915388238065264872724237718630176756186885512932493006318413906363604378327581810399756377953175338017654521042648521030511429710223222421388808647664792152038085383546991964299248623695578130953726349256274418478437554168698022317478708245476169002999541036126931943598347194585470680648311713998401220803035684731579992546736692687315971845581515228439277933853797839361200087667335137270020428303906086371809525574713033165781783107624082768642508998188213999851118044807654247485143961222746687961862456239035590074091223094597645301859125259415829219591415036413293424803618813029707250089480912049661886466624355484634908747980513749529296499855055056172332955398528224410519779140484412593708550750571467258375563036381172977948384902298877612707841860492241701265134432808252572931500387029015904886136880511051340075751343061845814469332260571800618825785621840340509301464192169629168088937303876401052977792368936816161039837341441204491938797774429891467470810657779791139547742407043960715372145027647618694462910045598021061916493519201367060764246527426036266970893242624562930208376965162012126479848381692581324566710989134715140218820899197657901637044562029924666341165075958486088773628240867531757918435526245750730288439685176103515975609690011270108893921848245648243408568919385429735210260140527132909821324317891637271493349162948925537970933968022929871298902345992403411013871334011295391646795880607208610901886999148510311189066672828970455859690662967271351787670833525660970107782519125022515574492205158912349499120535638145199108313836079299413252025447239144796940185418797021537445750533901415634087261563024898976121379528723301193138784867010102575525520121132943317454718825942023336505950872745406278036707742349307755926192556554496166944662786907221907187499201561959384016651078138579499879582488926625836407013293335738768233752014813464266700997241388997241340150000301274093699034342276763630506422210156375079500263900424424251997397106228592172915286367796281380237001124068847203377929249964844807134801676241255361437125793087288723317322439472039817020916737005821781660451689811081340841982859266884535915420634511377470924330375526768998683473126998556586852490685068485624210962420313625914708491783144802443016012460956733449006887325103674063330761875209275985914710180835850359383028717299286805519080749478209896039086495926621970089945962337437520504981039506507506486527975879859079846315554591144853032317566307928880928842322728511832225239380074684171702991780480445236000107007174373296832131427241627512718770211854880489225725152869331408548285332350235496802752678870163055817954260275701883847606156918116640016876073957821529924263870411043423853538514810402316347578641084617980476883051878727824819353767039636971572904968633188863390740557749470382819787016412447606025338705211741353659995934910791224265486600758319056587974076218965833410413857708825945247356249483414115587101843824948047189027176359875497737364465639037742642505522690224477703237759005227084758791080241875311877943360816732841438542921254922171961885597309133109146412724589441503612951426857433977010771806541836376503426926897831714701732902194207413521375724401087004218661590099787368106846612962756547995213884482772569346811959742780674788076839357761755803930478439039901766089826534512047474880634448422839854378627688735029601288546393685815210644883091943384974936508735384451625638844527129806514701463979119316908392392490638912277424272616311130511302658903034696707705153205085322619937382179086568396619432587548977431563484775368258385802583873898476311922314386549252170724955399127542217821070133547097294840649010565231255656178554914703527202024752902416039373043088651735063161938209525996103052494179534720681332331305483612712781487662366250038799574806201001808789185731967742847701443199594745890782843852547033316808038400771101937446053737183868453757673005484831369522372191684730887241075526850359621927020050553101543924397243206811835553761746758853385061210208286891759802873338191733434904879535269522195399238359495997590078202060053880239206004807338422775312588321616092489738657412507808219835397797935146218013345404190954008245885443608888128076075478497854989942883634590018643182905327866351888020851632077380284171302234437093717982916622261729682569326578380405373846508226992955403545455354633576696100208942934566126286793200103627606515310186488515992794987508477067700857817400486705407674944501171232424839942021885777449414287108756642967821016070493223754616128839578242055861039926040565844500988436759975675623665473042490208171912545173352628316143087219285092215197362689300088119947724583761106614993305757225077823201791724668495525855174281016146665396034088060609783581043575039535565534438594468267286375137784936763077254109780944369948562611691077608948251953873846410352743254431728994766599477556033950011234783051230773863103481439086895499472802277021735815536821590378615096096345016402884518999294645492110163067149183116848653256197686444824130782770641827048298802135362656122083143329696930220397787882249848129513540643712942429995546404983783224137645073522048544378046728528014864497264002992474095841197319391354181189322204166357236336397284221554094217884780539117626194581156950126537993205438933714486878556865002408031755528617562136121904061248422589579882352400325978202070842290841837299675592815784109232960268606774059943831406234731059435283063469959169858065758339586897612787873447539770111300380188445368623999812735099620767519030358255926891530341568971121133813524003589683443516507540598464897007435053597475188314263695810290272172917236352384157692650902114205090825167218760084912796278489216345380410108367027453632716730341222950716668260163260298081901716112573528910151489070603232163366518292205710843777726604517317066800460510784324999272967258385533826004556130602958072474001018287160030555368739898343415858460487024594809406696734561631250762353891160724624699782999517595074196069968795226015845689757171224619554858554450159732166924884649051357398538869391571630921313488530524304316054276964267404334464211304047760486526003569711912576424642937281933878606189070171388264531213931614744195920870837021748071497143169442128248076720943502990427838763080435228540006712295783246340815646674241940842708447729708838331335271769126736300756204644462072265882229407937336631035924382347423590154646341145066814518611583855698340308336458340820275689655663142687661115839367068748246088426381361120570182931473726507972714563722246825998000846343810233702429140223810092286509730092259239982413978775555678220029512084045189841440382386625318110826896198925674728082558762394417469802100165159403769923475132148253890925939294943641040054380734784477197037060717526480852213717779919480086445411926485271769502343280823595733494130169176545473887027064394425870142636506776928340762310219205743151557670892297779452456577176366625076132830413687304688298630184465370707406782864720330312998506606919115928439756738955593469743142125193905506557038707503715755724090678255184936615478201377939965645673927562720086383102640518481431680067295117575848069447782867220057877716802503232823987906478255928215729576149710453517887112829291150624296006818769562243778874464304823296266796314902049485022214916215658562745291353031319459193937715294161151072985248032883838679565073930384711325274721652772093825002607251155157486089830815236704105204743014558955640624077569080969370251605148991361522090801531382529157880387675227560655654542060868224676386272453459749617765963646133912182149005022783867827025830678807926323278031168475715384601156466805172629288648461465378000670263547452151480340606276823250887776352530713885271597076325983303689428814058814500619103561777137389921465753386677695043498310228778562001221701664540923908980487121339172599678805817684293463329414397540244147685252432651624581896613589759669340260581009253206487033734122651503516662083571626398444086717980794800640700302588918912218233135561049637236173933726630661019237057188143994352740275204232927154646074461189261793135712556874749823197346610025406575074744040880633287260630637975403379925635069651360426070359237860834805001486945165636986526926692898708512141847936356284249572510243822317332090489695477506526092967228873734742722959225476327022724946645433543054512295394155877948203324575593855223124383170581664559622972559054389786457000324482171204858274655525179647630141741988665005013440778010562908457548968779506803831159333425171489574393205444373517933506357947093149595604137629078649815546803142360903408453963668734409310226984892894709747491343483407473820272263193530645107139325106752057467406333076362630006968044732770006147421222983918855115842082348357399877851245986509109578001258999204061984557340746832430712714597411867063355704758748383670364345112761748682735702537593005229637819556706632231340707240964549682866250407135333196247461475167404034373078070946908183361747408581595121395134011370560434384960725294427370687089475232241922601153514617327021952637815509067015718511258231716873511913079006981085182348003132518093983567849964111924260397069946441115879384839230963912236003114853195351596507010211427583917404788529261955070211122918809750483600211042495732967415131020271652913829443423945231980586420088898602277611090908511318382599025084794097599620718007962745745906883532671769080552036239342795974176088133457233035082741775408869687137551626257987492618854336425146737497953257558603639240359849355869694249719425329036380365622356622485944683715547921823234903618862368894569786821932247838281096059187385769077067061550505334973123109160284623121582493117479235877667855708146585142600412559413248422742972964161556354306343640277929898341067522181165033550018512744666917124653505753549273663752864554880510092343771134416349014642880656968663193161852330552652225009640309663989560515327787454285957694784747723163231694571077592085659426068780135528894928270030259666898583055451413025874614969506394598711762635701055519530861545458562058976097756946344556564216407192536849563747544150657360304123795328559023919324463625593688929957847116152060767179082385905959286074160876991557859291094932471730432638139016323782050260404789994198763724502541612493694979051188855513748302710196284964322712633638889528484858394049250397772437236939961735504822451644828160625051197726873833647668738992655943748484298410409713488077701785975817975283252208254580270419582026305771352808854800116367964523012661656130565227268066796933477820914866747113064999699659308116502953388895237563879310340151927937632704355299729649705215099366768848358530318714963107837450511159752501244471615128621293433513076012399076035838167021652730533959945001147596436275797113461922062076860466009439542334601414120209212132408871651986263886129610125804138353212878675515622310554300573649089379915111775332472238252341483045592441101843031040857819351600945453840826140192836228901386846057258450263675698720779865243846362896028649140653587014963519409514091944810608252309494179382720297191757570663956307003293543198908333011373407193413013727135343322115629021568597355117981127249385863889898222826957517609229046137931742257419507814820744154865668433093463158998926552375172148315416007779200572195326693849784613659160217920421160892787859871345389754790403826593452538149837263132626050449034479063357796347920599378934216018341744245926786925207742004663333222648338466286305636419516011021012441736099208636402615336485302505984240517939562894339969552907682860710563764239866858355330995924451422012472183576079994352492100230479770334469748044618546039152386891800168376486341136247119569565474571699760735851485327595579750131523156024147194228844358965803746984876219514650266180378967236968636709782681678757206768509011823921701008006243769724849528164574345349530938748797033634252730793858755295358813421123634767561691677748205042139782167243144449039152398798845187933495083416502147048956857997446926243705906187295592661142809013789747342119473572344926498393380668600279431349230313522573406540262105837356452792015413489368261549862705000287907386163256295509279576261477165037863032496102015061561471004123147114530361305718745693383006110829933923377624016046362714244828098317074107735794641102391204629734307285295196231994656470999208058341399427020174489783011468340265014276119972914217154724963424483352361484539099574769160972639487243093311741069263338810719574802859088022546723244364214850010339823310600124857467274046330323730899693649748985123964448983097829138729278609698035933142492835444811323756420976951862981620404776753497486938248276870354723893403992663701172158757465977177791558664280300431111736279499346190467253206744680730438948652469643846015225351010430298252891613173753253920869868203356215256586797960193328131632556249882650954732533748521071207312678916597837007291542865197054251355597662330939312633733115933871413699936949191868532783292456483981416434688845508354443195067923579788225441829324040943818642463396204291440656643332642243457901231777566026622374741858920260033973628684567434790191284782303356472007686517380508666527989685114866742929674249233353602861532076377389376068284029906991324309548774851899778701793345994737203757090313517949059497058362105708748010113532750744126718502851541195604996656033919900204849212774509153128574074989223331181663483085418162074878608357636056473090139419869377148366238355068193350025328307194114351508208418386028492333999475980521039913924211327973399005394212482887144675865598284379973706355569524855459346840623014756594689749099609808934059280139337978377758924797776489230549703474625454797536945211089660116707751146191022504402165881836228763340296009822311726214499388959014519211297805177097797503388499379484761258944563614905338877625213423804709748774644591309235789084061564116917458365524005510959620251854243172702795390986828796915803210994356591537158441255248255435720409621053525188159454854112876541905061240275479387485066435375068367771889625128379844349480120624431951047028165072426121644823586099815395440603963621546850081865086158298326652489768907075794129027675889040964562739116676621693315045104568220551569489141646950760542818028951572317678743840265774378815909779455923304676996172841691299753362147668098615896472630598877716456574164664507673232613873612623164136410204517794101328956716443855885404784582001514856785047071598403709516264497489064637503337631560169120475223088448468983280010896265899545143968601678531332330521866301504044581411002078651701959749446564174453720384389780721897534460696989419070369472096976078154187183662902490930548171684349237009260897836127110689564787843515329074650619098318205470462334080966936889597082602033587407395905914621686727122523009809535748444444012151774881833364499911429130613902076196854917413069919873399334083357406711148671526998055958415350167644450340586885650857757123548346757040633507283505480439037584582391053438029574737916664876112788710535343249378522037958142082738343111518061840745205748704022781486245723199909388120584173136531387188762284900708079135899927684530716565887379236777512771099563269512429262981558912931755264293356094904280774881054727348380998410327931133954271014757971823228755421880133152993776518911126952689672687723042263656827367416409240543886484349157590562895071640262860981213192693830706776684455026153439940313210981710337712506721081780295497832113029251248360387681125618593321516396651917346009556545084583651359068786544014749343032332115384795740070255973339822801120691918029128583058462568403074774780763525653246295207149885111301330791931377823895142862870661656843790705770119184937250787838992509724177545546728804823469306291737219000983538219302731022042381665495269046439969767776670682977226595558308418836293310778717915044125078298589081399785690607065347263907390031752746847626718021322711446381861092985801860586554266865882729739799388986645103842619286941096349444509930869133362762188997157700227556678321557821845734897579427421605728910657661133490265042114197346205200233061413090584519355653312851092950125643609722124220227505759887474416118844064130091768199897730347397586658262514652588798784464495068611672167891671139003352324572984309859639215930674643333772718048514676863808749619625464265093531042979148883606069226382990832618556327133665225992005348642697078523607487286594130042613594005410863269929780117759962154231945479296174487862715417222075107979518775111193330387625847731515245578822668848400514866760178326622905043254659875866282549501662404019943260943151367559190283387032312268269663679595892784778399967839006930313885743264416169894654849999647074140939804304597656141465452760592478651583949919045272210031140137756554444819116855688919127371690645467846020050290132126074646225580329946151590856850147852160554569598861360751176513871141569995215212219655264360494046632291493524589308211797197155063810493499654038476256643186655576096873366440536765360690698342197582113944247620842483300128959737541295524218431111197820585448915759065559373035959077111624851454505178375994053949220679870108629708630031939396659288004631696342009809631767085184942522452518150858551474243353721981510475270140829597041364033977360310552642144479746592675735162336158083479961949247822497053811794600397902684328839982281659700169739001704276155255357276596849581621673201073800412742290385400089447068916174423461452871822471468656408464618917848812434872078339975958369313739435073988946144872336355832415807209421418222788738772700131871537988405732793545013377973594574111408440902333721736323501254334568074442594570346776970224336138499250615655387147130372322010241099532810027579581797857848175001624207559048369534215408788230678668175030422155084715317954942943304674497130550642221543764396130537871130975938173998730368411587874267151418129394253707893344592858253346744351117585538554817370138067531126236104256952674499804767948746558136677571244997730098499003414759216766444729394607413202781755282092381876522872215901929827438658116962807870282882219852868888881006924267055578620515613391546799487404752475332675410535309980414892732369344955862706243161545983183505257742394342941666547829026106041339523701748149338453224812292841289492665012921667643135781829769444918242255033659293260682929057470762440182288703828624258414544171480327433125519372203297111258542491975828393912771302858803952483201890506157927990951440531151524938716147685237334113404025979110092112942682690247334420905148091747279075251647789388410825384363149043530822028013996674072033029194105849380700927469170617795576001232696788895365671317505379285860720923883714305282258956485022361045745660160847945938514371769185253892656122347721728531463329790257024856490069811998143877385659348124390854877381948349003738536798990997573217246046744931926919623072656848510903464485841450454411795499772127898982433790113437841643008043426263571539822179238979391683105548224158157692569098219539123407614760289515672293970472276585346613816281626350070628157897639947169107874643970358869152959473736602161410177966806278147084882525963355210090575509452959282859209042076524874119856123988479432592122040832569566169689796415541467494381166438196712820127769169056084031472650885301307337387337374900392409790548819595937764693235806461386332261453967031497108694639742536640789604088991829596236816491893717322450622228966044345533993677870069712939223531669236326391053339271583636295459236746768586673349619925363061642667565409717688705898487793440283966458773043749366802107389254228505598094359676940410955105135113061806819389829354243572698204343442424891221790292191697451743867278220214149277626793079564643721789204083802299766224047205737958472278442912269506829002397197855051625823668234372124262247147011284699450107062341125026192861242507447381633799302138271174577943922276734033390439785330588069064939043478539552487991997291017795190512270870048433403892954308864135705039109694901105097627667770976229621521062519123320216368775741685929983995468218831319637018625590960019964674741086614457902610598953734422485122147717965573079011175514453376142743564255720151266840376902908123326013947457641662633233265644656551596306163778825867957146730635661652201424808586651642388175359431391548983160668672903952322278961566223086541695057765257824225251742652419709084157084963115180310195916522494039140017914552626429292529066420269702291165101888765421919456110962973536599229412409665666963657701157940329199746887868946020262040641332635624079997920233320604524914588318496008734649001017782012925981563649812115468223369622552208821520942681637364426962933689775815087883711230967957712519838138699680515991224575129313919159690058261524421585503919729984822233665798145557170244155924138006789095202924958089918311931917320472568476175539110495431573162397491617304335208459012477276856655199072537760602768923261303396220759931550417803823404912299387444713203080337925253879066138734649680271969974500589537556503666863126087793557328598030550800042341628634146139716175633130823749070575135002988348455160871772201319525217480196101031152213579711196675918991812919232379224682466540000743973490312238691264077743779136047065886755005435182729519051205910103300868569501113098967427407014759120724583856951705750250223696167315752661966189565187185909014096271228635386056027574979029516398942684863645825617872931944843952631383046427113701245335060753284921901795531660673012186507766994755487866035873659241221683486201714414092559616783511166108765579700758256445816288557035351164891283889735433155060228886505086001790545604451883665628481711430114352883923415976383137386113773158114672491083069016309974592668918870620310237160148772602136709666318095683085688952736172129017991700636285472947810540903423403863321980412636304615261597898466654771192083303359965252312888709217997445775100365063334407526432894863720312104829219366124595269394113020692319185882823854725309207047082531028146777536741975928153323674614167487667445712810083858388682235653433828159952838405257320609024093222938274756565533174993294043246669502910508260661757900982683741629382324927379840463903092806224672183233973850852522739617248637368371568356541158902364476954087396746941301658578702389419700094923139833507873780184253647683849074862841297539398553210079248898913978959380508259031350504624527692245034564743737105471880693967940652740796358625283327765279846564448003316953326653273317414714680806570951443063231358869543565793474508098936921267658681701478917743587232630037119492815708841038625134134033928034710991372862894880713311818149265865743591065497136321588119176304830380877712515602051053273745422985159000079863761209558069574860487451361681307471829304111995306121949670955199969367548736079350169698655131513631114620032724898847455028224561635948659928473600833334944814876623500871462746709726481304251089645704119209632115637758553303107438854788691698815785784628777520248794232133774122906359801314712704630253240112032383132605326932571995291983514865949498746349675430367250123766675824356677602175073877503564638339893352414511364164855893231325480993391183810925532757237798160996896227804106977770619085945996360955516471749206938255607720774633121146891397182281310759204223491515203877807739131595846303582078623978004649580705746148708237644559487436866883357397959247609009365601442706571959805672841307799856887825056985320359116730536876910416077257095734708253099617043776700102053080274975145455125804916169165077963575354052142860135266951863039227034548435608146428049381670982168274054205238542051793270119936896850356138671463888224115427171915723758015607247149980561734319418516777136917233112580671116714114758787212723649619842114731135619842085848044613714514752164363782216373893772034083559298158110783874561214823093149037710898298218073849684551558478302479236970395403283517260366931639121266334866353083311905872385357043967271416133202655494716142670435209301739282631455180536399265724543321494790419497894775539595694738296088010034509298079858323118422994528736037042906229889285329644078354101689015478431064272743034313903615944156165685691582527038236163840691717067137817597184469118168930528949103224955450121167233974012336953655768692326997880527386518335988775739573576628343860410957343075065690721809893370437607466185534034738713671317660680709440629042458865827229241449506915591418716554443763060564223588495390753154473157129977211116735987346825278461070179648142250796274285860344615368809053901529278494114399111791056345248405629400454558970114067894470658184072952283195403930480645343059758738670972360342046410058410019888429037807587299530917590467759035821463326900421466033073094167297525466960633899770142606822415483028635299476126138987194350500253037082642776848292285739135029463009995022135621501277916362213457642720927408241476023814852975055257908066569839595025131205379641172623430615065080359005792800332396761389510689140158276048114371777809805099376482074034904413662822569941519595269294967856323233460882169428995308018532024414285395654841007037388792529269146171507745820775985071644664762668125291528004422631054353788323581645159261660280690965774274767051814629941129052401505372617347195193686219233915440895401507501006566631148064701604138083171327966727531220418620469031880963658087508983573871096053675437091440749152044672182306452273591980702680074946376492123711061295148509993752607923214671147386971316540052160300720587983965380666589426235737725503164778164566320480915513501493037523408174544269767240634769266351596649310179209824816604147572594739343859955859460097474715866283057970385190859816212022201014653489335370756963907963074440325463335594743469564174158266367022089785038869867866764370362882433045121489659280631860846660310337922622243526050193744052173694424487007371687755488472027244596693879205091316185735206124308223211432280842328310838976369363231368208254238273004321930741642623645135791741257173665121656747945254769151325027893039525558091841177933763905711194457270710335775975160611143061747132666930589725156594939129630461447851948307915830780960638670749509471438634240989983038629554236466213294091223147537197166609375690443559867097217406620285515873564565891762878045750526067434497972046956001563720381254347295517831595638846591694278137461056235557708994249466104608817836878860974638972589725204018939857947521296381263055408405045885192973680700669515328234654628017587349468869153647719049069883431957480635178491846359062419838165512547353191174367671842817518142901278203778653377848534934151580368863712186074849129504149044748633140653484511369746354445708418595490524070984524328969513933161809766218142350322341014270629511759073338959274347019008801814189115070929368351359147343528126927987846344012093649155658819184121645122516729596663832089030166288279567298245500997162233898686102853002112884688379606120106229957021282120896210604656511847651136962581737576846283387702103305470806590030208451546533171215730049790744079448099412856822743674414961334141605446335267632844863603156476640020304565494454773116269298828891977690861732370537461977307327443395535357004549075849279643972738767680810275271746879734963189283955410438578490568181391190805488848752036379701810554582439123525401209900129871623599572878050836857799861566985162249464509965012847855613954872855609901052918032822643422469100941166131877263333607690500676224163503037437875528824859727343420496440318014616413325792267020134117443628299681806617208420150753905930460860816019175674015684198635548304089378343894292060690347719704898074706329075011298466326187317552361181316715030206861636039798051740733018610344803408023840852406141256485024968553098896204558303074299571141803092018912009574642882895727099503246728592515311591340895969018044452513112719399022917080635536045845460338670221998496761733128032369375921293265014625786359696096353992087660206613193804439090913384146818319209623037313935635295190478863221561968104570923572370523257046538738232335346132187439976023591926987345300694719788947698051602474760695888607827238537556777955263538194231649108565747871104371688813331097748457662349226009219060169899500096511253693356759888191773986117446526191458228326404511118571532957225008866662622223525150073030211350344164868851633527637273264844282236308737946026260954717579787560625414742399268229128717213475136927222408533303650914940670348119216807475049439499994814598360265451278230045175347016580529286026642216308320864802972655280056195959138349187427266734191043461224019719616336183830508834655199454187392664234474097050885686596965980148954787292980096001821645985728684695401330252401248426857262861680380417803371101570681873043320992701790200438197627568414099152829666878095748649366441868714920512290002860610374652962683347471731391529520625511114922139876551009375666751458300677690981964279230942887536407836622524522311311984566497478904596219858119436979230856029403083793023902664712431627739113709866455929352937017932014245728577196675329900977284483986700769633505340711542135183305790624593991291275857827608627871290039575388657049469325306307294536998197449915372303880759720264538765296723795897179252593572069817827251074893995823136600011089065936130581522625889883822667541119938428550250772473713401688519211488559102857215404212037878700280433806313449542248729711420076551733769250023024025006684709006897677695307283727110484385887798708841492013111487012690753881821504823173133736072683434837880752402616800898002424874368300988580540941886966314618341994675348858166219654609311298700155051338955839792961750419155833682692990071224289390985204478031228096266843016590545411443050167699103696496451456684011543760383516792770524701787168838092981981327898737872960222200237106081944619245926438141359251507891887725848309636921186452623659338081534253739610270467620013260562632361956182268061269426239317885700062660408000872321915272242275026084246665241523776364620784870771588947542656219361900293690484107161467553232361284368975846675292507427754701815011412227351200700387533086372316231848159358959594656568312722478185810324961012881600322549177145569237404214026718001947013523972067087635308848241008574884568977647361731197728506251435200001457412477761389263386040299439938957388796700471514490615036203291522493046328681355787336785627206704855776165140994831676825508436497292993180789552148972532859871399681421255376391882818846753043279672000528439201883017556903645747712473642774096312074258234384515479101190703843667469099930615196869011301622234711227367207494967318766829039219302030607286870399287150082880661085163199238483349841242927370132378895322989862457852241269283772952851037234640031105626294403415276881210398382146587146884253120660195218378430838981672556780618791379457928378558463698367285798535904774474784508104070418382645913437990360571640970644860201980444922950097416254179839753727667370073026868781519562586434373112485095697817817676401216520774678092591062102482192428409528086515145708578949096757657887147888508947398966469040814694952911396412170665561259302741429863258688758298873665642260474332248732226565295928423048048279888012483919621232186169914809374391661767179474128688036851004767820800912694199753275272476183725125797636047621703240631518146798303357331738936159964607077302572914922267964565789527492605565063486266699623249239992807979276037681979298599989188693341681117183618099035280982339844692608192011732569418631140026944912970472929096221336494235752541360442588269469437357323082829553520137017343571727465243641590822541896259864292831490298906730756352758378896982631339051238499530877110147659334160763593459893332474090714721013237794066510330617451166637581598169871186074802209316530713167845270501912520274167825958841932962846248885103232452610086908131509782054209241719450090970785278800566131081353200084034750158230647122811447815881374384449259810322826111393667248413298791800120980893760362908759866183069046717231607084665356528545631379870367219552444016996380024127646114572698609449623561656386194966943463262640891041134442287588464158160912705188298877503600986978179609706904557473163008087473688138235211772141821949115889013435032878156361372727248654529098833280502309067402250853315968798161535887437580327815089593299948030853117290695702763376892383774798611356483043769388979845001262488687392056855463550602763589626140814085803504053125670314106338730827428809179567993590622993321500462540726508939642075470650393361535716460191452057485685726377032149894628202274849384223804811751214444393390276570533142444073380637112706873942378346195631456988704727490007672089060507022171393770106861846378754900224508899441800756272546809972342769141079119756064527297334288060509394122429126628153622993945085412712177443149530685956802193928351756858987076515029330772613890778832345839899898010868347866744754096865587759511679536720222224935906748416133963492793013906656434848437087571097750199200385143239987375415302900944706966241824811323281898033085867892033883360886272568635068757353199647413128494757900623374912956427425240032510458560641266776530056364265500461969143772324010139182411026429646824944649097907782357496191052547288891248001915937161780438595421213786244231534435966955187894697934118279317895724085264464040495133698819259315608306236658404233558911479895854575852827541861656447477529589433907563838297966841377504811114688007270478968078798271449099101864307311112807740495425325445628815696787678084529619058487109348553130404252973373558279916078641506402754303715326445341228238768843669257104545086406874302824366742019429431516678370749995769717828818173866365807797821002752296152334526583338893115486102052406239239751927601535925165606021628758489545366104593774591256224648899477721589353988131858895237429324654386553793978254648162852635985645880823308211509277900799410894697754161863493824841166993292751595012333454582435762843231211636147722770449275742200268320354790693292674692866061918581832422116133279237833861429194017112633694631483254222821041971734423783847696842699269744721307670956105863245426916062903138239828086701185152630389669717058647375860854629193140303621269574362931153947545540494977161485130731724578763224309785807846036456242511814082791277641067109030507744474254518764995640070347780205650550365870036758787374714531600141510849849053498387205341047870575580086394731637368640400630248747103501189300969865632712483255600406743829954542211716792419993324436602980097569499986227867847349293755603538917936339378325146330197743505858343655206648165556001513446306065846649758869571968851032291747939561437952684277427852823566912896489257277957052526801535560969057635459959733953621785742184427370029266867033807161379002750437794278503456669200678735599561778635857004768465013937372675125393511007455083271613659463439333886230959632172695510759315378391831070035304344781498795775128221331591178385963940752428292285561986470115288359312365830919934869486782649306691602075672137371763008252202548488078858535790299663219052235496613824308206169121854886559074257018386432282418418697305343897101321630978760459185126086260727326690429440761339423301905344853555567621460638386893645780577800829195971865260040395782586980419526882905045816133199606628537067988800777614219542106617216440115698611959307191762688509779791547738603212966580497806513204100344918315643975350676447399330237717922223690159379921805337780140738677741798031176598949295963244040216479240638521575530885399400419507926311121603604464265592025951753608151513198635991102631113794790082344958187847639734977678575889980731336017631116799918862258584544185727500807613637685563386494926547246075015218509906903153050286500883956528547032439763013380317049280259785264280369008038956570616815684460918622745584866548538378814410067812133177438805627192958797823671138490959521583169947562808035254698238504975601925819223248166222867898940148696634728907306870559261975948750859128383384331489644789231792604489111600391528323757968422081162766463934189951835383283405775700344821347822978027501667372609158912766460391708432869379142872386937990417233710686402534481630344579817330851711043440882850815104539925930569607347434390184358693176969857255857601192285261813705055734625188520804738517725089025370113564573649793751973330827544768546549298143140601743001512903751533424838011055968832441264637605035808045197471425672685723804578987174220132832180075878103860264591770225827365782607421850139175969618557469972953954316913597700049468770314333522579748677272319975300047250853967000089215609933464754447868634908606829358136950970980718129751978234656105497614883099803950237240678346549733016642714063450690963139839779309956933303614389270050106455586071657890947318006632574671635435366878156035345150752906071413082196368070645514543274275749744636810694545080164236227926822295639421723888895801996176745532281627994147115205012921769448009371331451568262759150339562952873079417251594125028587386207716785502546944584335143081512988069461323621941810236986665860436495666222386642732098963509481777840275568830740893614857753389526974463738888205475818936424290463113686389951049941345755139115582873893190694633491999528273347744587823789291366295640013773856867953354322976607225490916353658241720843179853457462987778523203505128521985135410605260584913499442626137862872219292965259499679491709571400339259130794739529468415186321437103285436586280039877483301292695578042053543248750512012314884211775226141591624555417327993048391955303905398218054796197459452944340740155377341063241009790212238353559149181953390479461716774646596109524289967787688234350872075445893437599580593269930177231738234639601429198226360536477091946257905328210985716186042678279665699943333987689106807462312068914262062884862647909871608666943401552353590620961685316722109792984830847664652931897178865215761977461380541858951909745594822678059656038508963230767120363318330210667619014062231813237440152182932177106920573218241037293762078110247005924262594702537047290907738150404989348865277960633500198325332413317765884911381172811614175128742245800399091242646463645284564580143322632902559893047424461573005099038732538767719451096518910423268736659833167536678816803189566637200088626122454277442819216455931805131514191351038681063811491792564082114903050008776114758977612097500163136373245157644528680994598457124910094379685007928302016327920976431922567011494630844861312059410560205295551068345959635847600657675331036084752952448043245093010869536811782100976901653730000070933450933086374837387172084347291814229104194099868937388020720960310298367470962070630135956036632580297391118106091067171602638690602159822996001431797034761191293749111605896504178809604426769424660170814574312977014086206642643970368280180263625609971616682105227565497190512534868952661797555471318027337148451889305442944631366281273643756543764565350908901034637184187370801315520222781013295687812455049007472925407364825016735272736198778134143124823523807622674855408247791837380687520761779370174175048424389472642350006131346767841070829978274855634292991933644629119399658881977728683079874585591531108592989559247632325040285754825013123357792814000602613851763397315471536203102329988072203696870297842126104155445570113379443607380175504501318392107613557632705903806377001451422415595930704553538944337558680916383787419579732529745825884137852212438602811639663060891198053592806883858413144627166703937379430387882489989963507514500587175730088241252757773918669940650988497033105536471309928247631444469012116967903140547738661370672709059885491301428829297506215108688498116981855210645640451919324939124750887110076185096112582163920336005836903929547740308201725484372016292916515348691919151289377212737201021296325013922369558548096483426791870787055817143457180485266227316487197370117421347109796226281071757897728927638824191029366975338329516567077331713731962168967978200525749686496109165022708895261857721893551302797764472084081091989251990273067283151947315553651819601666840557945345095045446747194918046102868541609817088191118762017059710445913413216454228680434429290751752790246477532747881618254428349452772075477733698712256302603800415237466004430012369579439538210746265707069016946667506393000027650274971118535158619936917267052624898349714437013135114500905259758309456599478116441045564394834550623624391335422922430904679674153948867862668706050331749769888690322891484948146125098324411812468080195296868445722490397018605414872629122195923704105165792653046871688931599591035963552972590883715159011103953249943065161453827076801828161097351231135105518247794887707255921430154388371528922101020740120841318633799629713634984541750066953289279053731826167152784481514800919919311636019343835733661167546991490025183087147772469883074100026807303831305286048126214666211339195819199777783036440573507169449684551195461289745221432134027372626450786462819950682306929227201471205534973435188306021839090145701212906685422029882465620304257031479317441336128917579117904997969137997131433340184555601226322621806278105397236368899124664431567063666583177301622596933599650303955412446640259472877412117667043028809322850054527162377691627354424489733199205290403536535395447535179061444764207922668050813183578345079122706773432118872883360786729658234400292189985151338462703826615669019076929194134727221770262683736123333031865952607051905731971154173031792837699925801472352754890357188447125758818012788381374526210425802678619450244128839145815846313435588700701080521986464602200977675113600840064250930955314718887657891253318482179788726573513201425087548842966519280604481433306204842764791758470633150561125972253987384569228305498474193593206936319040808839173894553705757829389500917978431919101505823770146766410187629920831237612032004276585449614195986867762261032223420579691242955423575165123345279017031349900703329424809107845269421545995117632519083240766751891918745464172016693830251203251615350142650569974274691709273738933470919935770907975321904785233521609113322260305461631242626328779970307446919453500605497159695725171523810644621907948812672081804278537382406684759080084030916073579211158900534620572315937280597089558435457531638633502389892729317980350685187541013168113078322465176190263573037730548182798869254327464617470755321796707617662479164409389817276399697723237150012238470405546508145315691889438490389178949682106392700225099002738312049494506138174289535939866311875550230150504260955160744356668573224356016187901791679492218439793773264965240726523302762468596145342607453218487840949602408951172852888108247194131333168098699020317691213336714299375237540678464744955229348038699695465817115331106427283814197235107902329258429896308007805088903073725703161735075804690875640541327215532501780376161972809581951545538874532221861578418648885306058624366751442176715690857522710537401909894173175790798764357651593686329373658753692987798645420551498856144696640161341360675474836558063324860926722595136820099346132059981429930805938059006776872059427057139725423032263961863030958596374423462337171987919968172876005427086877433877013808519851070073320514242962275218171688767633917530037836543730534429375581216997499919630517883329591463042277828517449171334905786898739125590490999567155146243026078823086681076014699886491245195594966538914434728849922246114090573915188080548510091838088488358340251563992253860314800956747891602972814718948907060216604355079464659483583402622176562034744476182581246118813360571516580734004504559210246261238081929677410760437377784840606233343983163546412971120782793528794448993566246877394441448596070185511941742343816854466690740923457645320608029610477457773196797746180129408496301454071342708779505303896594227893508284875275716090229926784940363719787159760039832701204580142705432701018341459408449565417801045630116179757107121885722452470969113439766489820260658342972304255319451491753130857575572250464496146020952673483827073483783501970512365961693728086501383067009039781132951571072701603359883120087641472883061688637902644977311429648306287539363697148256305600138657274562959505734298843258195505088864333218793270691127717530655012185699950587883677934636683777630742243728634902264721761572144386627400516421829057253554486703224138767858709627728060222980798346860619163552680400120437478690987143583303921663112287734147187598888357674816748185131145037920433661049172688755308418873006038132356447314716936281228192842700686278968157065591761969173738774245742196954460914820640563463120602337464585387235718587880264746343209772229266881113642652723418807940220388888347662685945566871638810934232553220799216856981161991106815804879334945760916052985823535561960646091952085484779959757462449229647154367596960796130572164985746226154738992045460570787477508370346312491303485732459439122744997177257854078798343027624580613393432557846837972509676291915714264327700316542028932309061950209706073435327690578204625003532580622268775251547392886897389376390289624715734950204175409394339437427636693844697271390025750742419417953785062699789311195782591007900602066717506144851806913282516340743633016383781381744082525083134073666180488234011322188012942064976172581944553094455635488154429646121160404578910823050568885159185973652752035522864552759839059197468182597321621571913233184091870890133852800321010487174118507147071432390722034883109191450765612554356098064759571634995837563869677193891151076189878003164837541155794495815218729190957373118367231695544166139463469819389720104526385802805747765086286648996668958179800297430962783681522087475920032429680865298808255612665326504679194087485601612142691214753224850161858809875994221979788089431711260139157111440108462338875773930276178873929108293804429881822189805502719464219446379426617149746132129156765639240009814231519981413101441844775672740069381569063086073510045444640764441138861987531611989976260796488954539551622805212571274508603994492574145697925947312240798360332484029702710607735251706078509761773162161871121037961546332358458269590060632037327010132127629004206204008858003132025329122542898311039741175700376887805868896452815758058464168315801508952462816528340897524119699493479078178566054200076915038677485179659411965746128590881833388456327656622328822147515541091585580728029757123911257024469871980687409438187520539396777140583133811806737506455943437822367976092491066921325988573129292266870705375057923283307840708894842993739053670684289762257506283600771145990256665775224186125912310209889451820949012840934848117311729094812772633979143629233618021847782500661989978035178820794741040645987772616509127354302226091876235542650624458152155892844530328454466096303627384313020021176391387025809843345122508242664437507624017688260445137109070357994534474555836651381526742351445027351769678124996341709092970382597275564310881510687636636927114903727784399817021301123034077793192810814373998297764986895945513099465334912971771218280471947947843046830245895509139852978902889763971009236448982618851833306930744807883450053315645888688009074117239443031355523700017817850335605281688862462369084190347103371692602590435951193922075518962375937846136172714561836759641253212795718781789252165734789429629433853293341429437762963588827892014941915754072989149880498731726421476227568734376940089402329572307993505709962467974531402611505181364781094022351061060881885261951060508567804112376868919588916828983860510765224771187503563264513299600025389044604118957826634683652271262345654453726773169478526058573335587689348339437002287887316763689355218207132365916403315686682659045976466390074907438777503836090887735772668882947637899070958690028400122247676371758030515050434550712739122101479595963380276560306339614874816899908063418390269285202902554287111334104253341300630273933311508069302351811629224795203975902138176286733356939872215342846559744621561808314507097511307029142397837830311983801133681138630688596805798665894212005266102605250081539668089485463376267205988065042225562225688387418048662131687420035109560530291318283875546507656302404818521889152006563272612402801222828126467460890998645829838580992379359491781265110643006540408854949919572368084971031674961651818978023882105996477928880274529858186237457429608650282669939672996823420112716923483013683255496811161880714948647781644919956603499137190262348368533405427495054981898039362769512230784625529982210684712201944702293453710531993080010074247549400955892059091639515143457570787110907475872236900926291184217025581697297874798665006954863178786606894386013167664622210978426224014490988873808102635628671978177217953030381701398336732596539666057870225859142947455441794969575647705868233932097458150713878407470687181079266453704881671112940436332774255716667087049058361021758497235006302281418923559205365525741189907149888158523361363407382619217291123907772692754832357357412996193182398995532618774324083999594716190282203922674708199324708718652883939776006907514262162725730005823411214389851667205390511221253581156088179922490848861434708499138400250272017849297913715448847358914143004202227983193316160860101368654816630599695218625400398115566035949148490827236428010958979255506787403213676753752325211495921021327904364292746958157235998942081535351957797846976265297408696447551364310197404136832375227109368453822288705436527311748591512552231221642302721977510361723021360976213216826251935310648447074937977952703091657842803581035807899010435156966010950272037861667762366001102351613938918200716031135417129751782066238351703766874823864627366515855724269934676049485621037557033366612265038027537618049333789968657473740504379907138154640021517775990336505869815145268673311261375763489864104283585703490298683779055054520196552686166860642057622406321569948566577793621028061908708323705941594933275256492720269638042528697831891762557555859956614881441204082679949556847024986251962045448026203294628113059821876544424369560014911658750112117528946524974036140818092054504431751347078569475758015284918303642604690475948326780779121546200067771924774685189095431886215616714677534304123789020438234434218139804594979975028036218486905127823866044461406220602402456225844422843734120930016999808412429688271625265325452908149442518778632696883625658850500828499354051558086886189006521549140020580861465024770732319677673098051757012207011899821828814649949657374942486364112989973570765479610896093794419747209785459112886537574693938968407677178704611474977326918379968346824640205925131124191520532199799333469753326175440760169801928779932482604920675108619115674396675383883328528965910583621552525884539866554400192068552952204521094021519520911110655732909511353172870238815637516230301644813924522830630352659740659349987915815527875358927188907807618052682018831791502008294012077950275082190568456394254490526668808615921733715012801713485068924388070345547378551439608720342859362053314322493695245905684904144381431346424215539949780382709435630646118004789743293254459044160317171233470020799583811755826119824640928522036129510261820601052632632026756507587149199299253303270338503193538655249898754271546529379450823559887041052892333936620713938086652646384136713123302577728766778085573339764064452110288203153147415861413690313839013842348504228513361656883144358646426913519618526334498831370857069867138361361744502209920303077113508549837272241028608165008092253323909302752655155293604007790312318270602504196373130158270733553455051813177085116878520447220053013209749518252438756910974826502413630645403007293822816225202325491021048065533950790181628418479255213016396665469521361951840920286277214920674196372717072191073982804501403361799139708898232246697244017797675866821362631507891873846221170198726901970290021260539031934533273761454982291000657439730968741595075488437414653112476780756650438617178895410762849412433794147102463291877607481612708408519573826278828243588644276293339888973737451131915401511389993654925182635902495457618112702858984251950579970585266831564088153251590977900508895284039459295411997025851789150993716556374551349663447835865059677955155045420749371910603754712785260030774945536164667752007378316051881354548407024510766484301587620336493031393281460249042496851797063036924197034630756608249102020442234560888823256088941975774578699290577072564011338125836009159193498080083350010197643963802660745819525890572968065160304228428048597566975338653474800838028582344212617071231152120224866833898038281500729197942736468252746566227544276532412522328540783512931292394229701245791420073084181474099357052419129184980745161188830259964054389352031777215827434112825476733572325247216310450690332514854479878576099294421529643814268175039132165017899836455679581882560306342836566474589272326040267592107202068662147023125335868977880953633678231522513222434787233841524438944410105204397897318735026836101166320774963105345532943450270530433284803070982986449614701267410919105445528183433925144902905247834317606622741600884299898514293462330431118122342949078204135705905701686799695453855166350160282115651173371069698359626617244170662027779162884118749492564549546681691666392889144342335015383373403652328491871360360424502937861142415603584963030115493763262830908354595791260651161109281495052513797721250601556280180178987626393511778723189694282623310446665800859945011910305247564838081396971621592317084023864580823729519486764815541621303593165368992189774444890884061674036205435363960369253456436604429297824350600273083369564696073453531731918831947776517715648564848632976953465469633329553822049372956523725251589315071885682781099876204376850835713349125520293993105120867788947055503344737841371071619385094513351732755835732744105621953398295737773530279277495331255795344215120565879572810006895092880359778767073934897232841987185572212965609989386808581314552162712601726118401548794996845424490471955551349272455077915649327621449217163497121491201913109322157230945065073772253829661558667033668692600569409270449481176853093400979539841663637778172060649242781266378013083420346842731548373052705027763054900863038989479004994719101193466717060282226842692983099557988649617164520282471068100412568218777614875642655237585857452925267476602130715855701348129855987240202525119163481249350417015271896766654276471420818049850625410968221255727201796905378413089416352146992806148675849517163569759514981426565984656515211718266879252106810952149959478116434833407039104927053211251924960809791543800495476438652795943024230296784052593459887451993811425221495092003535423140881469853165608581957891301406414415088774234512244124451535761767020724417534749108057560432384091459083407958728800535061897432278151920144262418963273526080873614260052632791881136755225314316144554383518103959237977811561248689160668592226169885601180056740856091036861797446709842355379633524487453319550900580556633117613788661372001949652133710432289694000513951916338170773530916121018996993262127300703139027122411896275146201878934597406353403363187538417633558936532336503467334776570924125332302255116572408103560732135946764932590522846133220241883486862798199863835025933959225904724450247316622028457144824481033702388336634356194960624473799514766181407294655298091527984920372950160885801411425892341961992285430145441437741217084766918799719996876713859152483562251379891842310321306337907473517414319246251097461825626594999226809810543027370755476392476143876536500639499028589623039989083957226643821490191100568623603120289859498789896042667221590526156279122279960483908439515764038625861134677374761171127314048662820844554196024393439517996994457469295087434173752002466947630579254086454856301365519654907588116344952714562948350993821457110187513102802079036775743594902790468189069225729415574098471475248178436398830588879716637192854294004972258415473256096940822401297620862623043680428618279083778416366440559544074835493488809730840840780779451305751629622749022410026775525454411394553029046388485301514045900239024877042628916204472978142568123186705214750618989404440584909490586847103421723045757907248130832305170206184034138072977032117856774090520849325620696604807398819686838195490572286241118580464148588904687672800634116026904297138849257237565188248273949698910385238719799181544838226831874872459487497231195597486048094103938876496023953131186632620431776639489872322132554304006772046057176030327710435309487318248789788654201122872355902548741083817200816960466720104914356267302710028111212011309696892373687127200491748616435536959516347500287233511572586846357160894485608942234831676656276667557480264307767826460172004453433406734466314835564749658384518458975906464395832859453031002619196607520265851089862833141802989683999782083572433814422782572266672914963894512405013909498482240378937846513914385093034059378011090537435897768465490254521939297052448861910957623581314868277498730538517044044315219761000765723546670277990814496271588317237762300766470015211846163546315742643224134257359574199042516288279794423529512667317408571711582717772893551408616923708769635165265843019493076636162898547863012902524254967469080551742169888706048126874235073961230124823576682169954216667104706472213557518162679476050117597123440796876825738671868191950152469377235798328905039520325941692878957858014913835594072194170728348973119471810502316410187002328514298737736275564745581844215505317029696727088230420990487776923238562486156085575969836119328228872557857445908325399770198634718893190914847050266074329344206107312535325241989833599947387249797767222232868359715675563788380939401662046197658320643726897774211045679869688480913585788611709316431184986598835321688186892778158145520299654197552736531993458858790568617314248422990658816790499324956221258826392955699778607244937745978783992041383646421251043314905108166372343673722191119574809100527556129304434028640821877480734838708771613198308081464732666066842356070833286078616104966056274003993598468125542003468756881903109232994424951356232401497319139590458956754663114854454910399354383475731803523080012919774852189568614762081913684535559348057117902775436634726707101378474953477038519656854113311649860476684415677180723687923049071909511065646233175411231370126531271657498414263073004564660321094850592363965545173907735922512095479924286879620757932678765486335489600524675843657831706805085749757479415694432338202335925873019140180160221475775209473249652423363285945085949425834770849276760460311479605418968391739248871913189054081886206301136317059953886045618377013963700561382641035091158604299106358803271692157326793635936116440713245810075221179774026542502810350144871983880886774048686695831077860211314140395930209425041197651288574429795201592494756479580963061167459617969334809387030324759011000800489649421159403154588816996348180844019220895687618124181371724017434201295038238406323858341980620549890815122156576876144728543013876121510253966856930629527587638702673848775983730829772567149753189857099755996647882498164832949103053590132163543379216790416256308633946830454185591830915010933152801010261058448102938320104053191952432399502415397445566839268240090384482916008896669988649395164365415573673415054334761516079897254407971117759716314133339107406797441561532264152290528137316885617102206412602005901980032350123320606492062879474955829285983705594917374200199485197739519452243608656805506779542456907016559824051368291637743040540937476046530188614396284605443080478818772973620170690943383367644283767839480661121686630065813984766154264418376459525467041194296975000996633697856080193066993755626720090630232847259330541560687788240776587344074284559697951299037298025587350106495628308702210516754747237946522477930591459949285291648613251716765744641980991539829303994740372061160732339710562642866796451623685389244217035184905807701487227314049890309711434042714753942598145715855125828027412571412220229152941647169397143839969467250887742831874246414370181970814351085004232723245801903190175809687370642327150486031058376775757198992874162707532376211442392223445154958458768770187046540176952123793028397902015656298887597711564022906256040704455429954355169331098524916247995409112177166005666381764129546059295622404629821174561157728371002866059904753521614026325665096190632540385166063304407086658387221131119974105657369873662739201639737363342300304181921570859582055749711285968046655556437045328610565524352129516273977585386467056557595825910792391656907239933022693050404697923574251415569942955154115754988315866437925355039784615164187661495491980678495687806686711711012387730461354386396867925494055199435879272180791852728049772982769536965970526070366563645123026632283189962497094761408976158451871822132101728690967791606323507876824709949457857461497876439186462628527523667462822712864407082010569717558886400761043948255778315552799605577644945877995413069868527794437807964264046927366601130431724247407522852852887844922580308175775743332267703276610167862350837672418599836154626925870995816095851308514909398982498331124840198692901053522703262533087368401270585489943474795892024064524977310675113186608257061100428325742310648943985002400243817222956868501001856349139388374748249767832663342724660472756268157113568830268035480418596680134491067002589540488735466975822446989858355748628491777128660906237240333438340479739972899599420821976456146553338195718172378329042798737638573947118905583495292789022928456618668598338346322863375347178711056102344652522525416703174988275897262041030812349613726822518850246160979233278931605965843015914949626430064633988194677449865803544458429319085231301593143381142610524802600310139252087990781085525846482458776981829005039988669373635498974676271832665543314075772075786982162858789550828711271740370963542589778305947440287053809948476870484861345364419875709272288070217507486732857873804749567832610074808059460040176217344246353040024792940693609171741868553568560995684878674975387608262135277995809727130937954064891997905252396085629574312390025691276094556920607001078925094566247108775466819882476771180934463933551600987873148653490167037125947492989526216243740063732731248448921992773795673160355009531454498987815637602923695197302328974358383554747253866616070591420280740757037543910338113998728210703968678870489367052596954255371313855966804087564378015433956733777950375646316410943513363246819618869970700668809747812004306772712098604735399632392921002227231741695229973310230197122426300063009266439754836938823015997545883237456436977571453937101732412494250666081675186263837583968866952965913550833729918535471882768720214333614515218944349612691078136299298932604215575265784291833271225686506875956068294988393123297076995824879982043851094214146955163153331202886322673596210338181498543621576192343121330034560157050908581597293370712350146816104809745932427759118450767572041958255586182687574315099081476453240213911723452874967594497504075232794237855797108230005301551881198336959160675781519906565692960943284354911750741965831058952782766858618030607754048665279166114854798092213836737939056970519057371306887097549555903462150514289639815403377393207935737403851154461597343201424731977336115912473218698412827345135131057296938733527052984674335125620437840720806079846813936464082105803554359156430017702896098147543915598054042106752789523044245325124308203201269264602671033601981400470108546868291850148163691484907102607458581721853536714333213766468207153942301335729518519794974545114773594563921259477258197364464162927209306060773408775175052812118604451949555895552017475247618614356507530207016091096994843583785641347570952723416456968000387562750479701456264971938200203268593139010471791574262193422093986761171152415025057515343472965531948180077314964159808737093501278694094460879503734009426124731210328195407936274645326734007761504728503604162425870724099692119390903987929895046615419239484320792426910201108010604296476324701072905843629576926475388009083706495356759897128161367482189572051251293546289724990165827793683219214913013076533590888884206436196716668453087969914781802980141908115104328260569468884437660278001579106232245451740983579598305778000799272021204164031047697063889612979725148739924870456309241328240908711418499065406476660342933205706921647187207557603751575706087084847943568670642581345745860806267474543059800170454346366458801812152094965626178883814301226451373881630869513462222934508887558721729093548474025904286300351974738399086945120256460032696498255064896214753736496428327173433358269791432158302297191332544014137158787662974683438784311706814078118352655449966400888843459332470075231954540595646579199981436539012686139239326563051265685800857522252864634528684930187040226806546310378938595795648007622064111776820207826396844457053694166348730336280683123722307513342944870960929214951093755579085022265591602121117966790338933877647406040412884672894105309563158309586077753279357749895276931016307290100058329330350116333300259871187297283458911867845607117349867088229513091630353006339780209694683699049841108756853009261321163738821956663908673135383442580616471216471402566118240707946688632961077648691236916363023629384751382908850571336464248304739667548640514714314061859497542138494522654182521461367489964178317542205749429952008553220497953885697952431025157618480822758309165286150691839304125148625277608240168698859673937099204603457182408860740595888497044241711015033457811589590775454774712696980301045240566536942549008658572787076718102083727159749856428782773328625952947832214813543395668651581028734477715330901522461479531778827315361884844239026777175069556370779339094766056160771090672121759379514089038707543159264981485630650790162683316790396396937097350817168562979878523715130533144570456772023364885547747553138695940679673116337016761681239871762439811356509336286657272604870200889951973471032518700852103049832159147525666308525141873648143189617874583574268564256873559503087257319728845630836826930755174176330372175669079951464540321052538014993152296298061997293106021024380615072846939469857263599090730403636311752509555093719539932268962750438391563364784072875201486084562447466875500082464999818255793343059427091331753513184549277074336092866623538886254745643608705272718788470055531323051405042410055712494225831991318763729369974892105270725856978358268343832698955086661250188344278551090684663378326143611060069714611148151364930491627105757475937433446935072372296963424594535266711498578154799982137211537016139624231312483821845385354400750645949805636472419806520674586034019638277421363333208707034679828064297619591937788054922649528748385343052793490813633531574776783292520369769248678030678245649286765278606894628893674060453980286007953128367097578570678009444334101704095374667258458878829319151772533470197115639717728813237483130215613424768730601255004565004684927286882109641241940614862940565120675011372743906769252928655828975493446536866038847388740245663857279603605788468760828574749738024976609553812933451980512320969114454850631917649095716512220863251745490365653769871829748686218264074635452940637577113654698005623453716827289201005556908116697186903523593249409257549987270794646888123976562040958449300330384669738539736504284390414708234109512105372303865499165237835855663760702180483306089215315455308666197574878720463167368630081804924429188349837823756074138111153735051146718945561127176459661306813882280956362800052428520096930764822284940996918723118065551080706924523193508011840335292169938566552657827234450575188371706685444741959243870297734266001356726311029629008480628479184556368538813633477151183338533603822202609476095911423693121203322590443673071821698683007406522961752244479021567120965179666292528742237665734362959165481068522420729078792581816223301152296114462659363327117514965197365257965060761667938307226208262501290400924895508373642556388803823978921807320168600724140745094508548511120556767623838663435423449058421700422283487728712847508386892744380566566230751482349316708874690416548197104529383983906644222515039900524308727121838906358412267657977872511308787094174079945893501693176839293231998212091523245647147250026071600762038874718169604039867444611110971309517927691124903632059389977490498927201907669733177081067355846975037368949263852283585432687173391112659312392551598850350219337936651103769875379669505309423889675755362807010559090066455584318883864208644498197835758486838670312850020276065769948320189464846769401313831044869050606895637875390128372680286657611105666984516194630219892236687676605945739127628098595547740076152725253123172438808931183522879867865652154563426742575209194962384127693375059338171284985038770978522181346439926272718980327481167855094251341822175586644743127326159440413417210080896976819821321215040565890439948494206533389735449597750242976296646710668103522924829415517789781447110841552062569437557900916944078982664385339484936376813721387016842014458987449582042744316749395681912918488116556968006590426506997996035608474408037476517548859414574058845648156302619030423237285682688494836391584361669061426146050133245801441027499642033500339457835235838889269279005182068364404926316931505410624151170881736778964627961209484079024265100361978650236445035157604065121786157889694257581666988246815894073159563594395269243051378632186004524121785601361888589719047597657675921831663726127396600875225288933671593264218559382424857367916435501952070860040600532816554192853993300753815049583272030145601653501600097086405474358822643591941108277175323612031761966985603668215057225286592097818847404767327905004007312281004491145361131344091410803202021011675403527024043316258170314730949134595828056743218911422490098862058970453833220908557590859795001155115285947121116427059198235630123569698793037666243950760588047204220044173356214500391414554205774135795529337012363524466059253275264312524128474099047530263352085465519357436016086450003274755873332694607472436211073183002695068826838572157117562652148737139457853113967829922556629417099433802736740560413997481468621124848354350508771577064192066614175413559216330727026247992512537827766322279352866457077787390370679674334885646897319294181381381050744236962538725827040755774850654927821174532846140374450237920308344552838511971275938307292547910085458828525935614049157927359084623691376163849037571304068129779029043833814469228164269530679008050267513188969019883147421872745152695646881197886782418775983752146296234976561980497886952616958517373695710071160440846014326621855485842176527375692463247954498227190887724256945669035480581104672683021117782018535618766446072968069631982500033158706343525317247134190134519796421132428193575913298068984581252607773913442542141164057924959517558121947863550703707203186891817616919731029377702481140518870013506948510091532620993515285575942523906927772783222480401176682920976395029411410341601864209841877877501929785041292511701902646602906697705687925753966146999290352003848104064490872345803495416575699529362341378957864771248351631196188641248807906346707698557683284705650976708715374012325907736347924516264967758981579916568086853941553734469780349253624711211868493576748047906779830268675459164182343015106146121482939435062428064241742407160433268855083100597902090301056492071456945214772538242361902496250360609065198814011615322301645764720009063910358363370022257662596260677922180179764403229988924843314906122284602033650905003449347196603251597703275816961990548569129555782613902387411147168852613999391664599536503135430350833963545052204129497856870202908123530941914816538392988571394763006744780318693395244376199896607017697989246816159687134977982875127238405811174436153985205784886600706674260454662018540256162354898159686148668426733198708162092520568575235449095992152887486006333841868711694758417960834155643401893053021992146015096446226328342806909847491182295955023877057126604068752097507292617841252542401324565789725305740395861373030963043125238944100924196706181275160276947145272716846857725871577592454387532138846684187110875875936458059806659279728074137196692901617308102073569294268119962437292634775922233775094098093488145432675345496517827302784034714499402570387968818014746933310363174705318712090503390821233058393153957420850190695782816949715614987415529443886342328248867056522879227477273790319456090319583828009021814308477195565184587819715698661558600955009586785918363512878679113039870005950566799630962192476798511335435406911810588733722145962331709026596181506695777076696549373373819290730955826204567599528504561787151255660702553800995248192132776648151573116083929597625083271029809632030798905618738425679025874508139475643637476935055222729159071128046971658509709673553012956220545544983817575580281713469081312498124501408991723505113149654976484575462512010878283053444714897947516115386284823125434042190349547809419364384058721389709436475166065573881358087733237920984824147412800202940730370208842081176909084382299161340812254291179196177711963983790715400724453546237096320359544765361935777839247918200203438362682634790466444579350620054598256930084450533096177770840423882077239084491745504678972218713946204227287413389380311033223212122438505023048079044306871718417491180515649232096063898802076780037651573665896406149076252549246127324466092350893466872989379016909605047623591694655294668712770625613233295671807907797728157560236770074108621561046225489514301775093903442010475203547983053389262340992276214894236902869098650916665547797955896810173320670404050824126636208623102756177229227183581981657440782935015904916884191621523030751041795698975262783130756553621304573144168029041537239094560378076821051806522965080227757823063943027284385543100506583252432717204569250865445209567789746440437739488523181815985051358968634171839723289313516663395297631335617242437528311527214031233341306863320560328023543053428525298868573671739188572540774340405712822772014224635389483845987160512026933769945804802894309786671197803534413200489560042998373102598224742391503553707100790502237212165522269694275823531497102928074710597220127209970800419774018972180954737534761854535542114789819288558784313992227926887180177988197121452512626050563399999343221694514436170243907063126995189500708725280455849483146743166827573310220241412014482590646637337936928456597673818239031246385684615921439185576427101972980952387374558455814419722160390908357533401155861779304079754860965360802376877060912686640396255003927543522287099154840515881213435902652700151473863366788275014223502938321275361130277676610113019046770896670248348677422472796616162308930187077799130435102577879236893218736846364045191744188431231139793156578945488587718205268828968005724254308017437717918787138491793201593569608514188856727239914136821469482328734289889342969032321857324527737116302487685357763471024064931947594056588354242685212207162186557245157840201230818062076920980249812994940466583094710773063403929962200668324379591574254171282763306276232681753900354932982559555454257148101584846412043668111321042447659848230079933115268786132757968063462948512647960127008626264132831672529289256947567841169436239812287741778546968244548001734411276290734084345885829841496461967190096391742802814149645721926989491027135003784654925472818058128292108886778917400536137828482311301044987197193064852685458128054526717257477058944013219946925636420418166386221208880143863507786746375527739426326620935778958195573073193042488343025437104252867372928298411707270932738994408183631647183754506787429479716380438106364738253790592241861346132619578934760696127250055705153232311190433775490840137161279096770325339017491164704287126132241439046990041671951937452845925196268371172225443124353259941372048323318184666195557380464770456452434067202893921809277475163098710436772519408885041183678849436232780507520600308926419122058046977237115854416160805205438354803429858550690736207852413746008369798633838680784813864134098225203214352446177165289843208331682776209755838298613398894871281023802435171244326894704045792381600811227517765882874659979774602464045382796231034561528230576748428037946347472154754227666631616286383454951477301681890929082901712896036578800618313137102489256885857347640492515521759702974632648862656923152536331213381154898870073845841965381893034435499575524535605251266763925812043089626243281135100666258119019544929461452223917117253069381077353804307677598383429000702859115110678477562242676825199163845511395478990777437202658818591545404872342492928748460070918166225522810917546030320473171283045190753556900559405893979128895322891371905903449217196495781808280299856311304477044187311069268907342624740383416374227189860979197547183984323644346698865563825021448771881917954753112314471102048569425153473227848374759840110591224335051637701503114373238531012839237785382006160126415427976818037678636969753611548207079711100819367941892819988441494014890183931647267316046346123481045332194943699899043464440443699147643147529519564553313225728514245418267088828107487964142305670118790882221260794465454144664233054428005129913931115971186222524557151322910093669952218726553819231812378210137424670899186966699418866052873450645592215842179672548283699388382279620705084394379544852376082634159961974545327703281969567403254329481215066057826001653034849641265818137484446674293768328830730274764164642102290604343724289905318047434310104783694539328234579993685888297188671844448826294219295089447561494589435482844874726635036310349996452551121541484757758124319803952642937466899125127556695184618991865546123430685433154417822941686905833511393109536980587863733505430248961462810738006266928091282686464525770330455860751086644246572069045819588240954498826480121288465967626207913586215562744147526077380606959967229365703330779650526419462899952758609160698586472876563347446722212333678157245105119539052200765248980710300737723051868251032826503545154230304559278567762149297778905175370963215418448218936970135795261191894549872859049556654951689124003097264294373900890723564670569393086504877307691747626264455573242465813071988934938713837249512882195286941219997407634741668352642838377472194067024529970912628652041057266615597978727725861286179530748472142825826371872458335323492907870148371567560710976188169536973543990751537357050879676006952016016995597253131911919111410172660025530232489948953524094006752603447109833424740637114231807957236767004651507199724498029917560335140315818784735740304961600461616931573937598080023370996663697798897893355179483123192724590177101988284235474617972750186185316890045952799542549519744964606403701479250272572727818493647618432049034544737907723023180905211821075241918683543685757585492067907422390790566191419473915273306467635087489061006895638217367266261344818681639321446692142078441011467677199743679750516300088174203220452451705043601986662613506849770051648567506692353478166274154869030943741413926941942930254613967514628978589497714437602434192689435717571505972751866516648652084672591731598072552023318631112681506838391800416744441691317866353321105556204662759080450117502123903931209438716371917867567813485961586649661099386424757060547957492818480208303393154016969844344961546498103460964789062049216905117707028809133975628582237458489083958823580012995663150710909067495575393326360090940096446312973598829428616462305951513647926290135299519279855260936326026701883632189975962061741976020641431251598290609775660141914327679634411351223528538494064495368661462419118386324387127243969564133639862602390550267849925334010541663857775040321577674463598021938024954421269671045130299119943050120101506124314890785391564995185509288015016196432717933971642963337522298826760742259183284993510605674388325923289625321999564876605802113630928781984653082689777242241781672127062361569899424826878702942537318656713315839902677684648007958283111415657351843336127365662721556161729094044189748356220744197745753247527052775348580666495748274233069029422492063682835009027926317526020571417490350233604661113343816636137042404179748433780239409508706828569303840139446653048208406320410466526162621940635334774475523488628316931397912935966040513658836019754376029753577355107622083251481198545636261267047545348751418265325088547254874450221602962592253565924812057825309008018753485528916147083108418999768931033137382343305223625751070508612004167919572463232126539879063819173297946009989113111562523061433277019313551583931897385522890122818850923016715895161098823196107696211269230044584108572153570203708350328086220807501384928156289748492333658300440656470593252478493841926378809882754781009544528078872955808154409044214512493400059727629858004721282099425011111634617753750284600912526500552356505984633273606546933061199827813551963246633524004436424963247550798962625678858774923576514132786835514396252059812158723491993532170240839803209725976526685351220348035780677875577441544984772963172634968253820898480228653472141461761809652258148689755537951862511625941506420854311262721782480994529030603304757765019860478021906154917556138932599494663656121529858416185655352111048112957437510154696927283049353960537754608947420870154398712838049553866180334361915226926882324026259585875515338977389351103144959100569601097477999878993725610601616029037973804128660048139436271841404788713249141705625443921989544050347747915095394034548052240016760080155126604250548032113522302988027588907591736633695635381958529169820766836921740433931615910731514513453519730546057306319248483624793398065937164665535701176388549899047352209530356401417152892291910999690620923119427067829061272960806660165848008468962712787833951190794978840651935048459053240348191523898644475903907654426078086770602762344506683273017605199433527097550981174983455185858796540527293496965271476070750688523444160338721041849194362323050922928568769690163924157895154040576511895291769579094662947899566183694117046401268575135225071257330258867805017760678922463368728538120007261825935886975118480472222187473256461959196061009306280963875003051914429775970969877423886695037663981396427608019816549691978435695900558884508954428575722369631618788483815161058880597957380526013886504566682706092501802149872162087351972059955035112385544502277605815161634209091375079037084589863523052682004293021939436529817753446803999367776981299901632384622676638022143582827622689728138097875762252298609696836699796604785648065381773494793407726126161210122300224571018451379123805197091916732816327856513962366263376776400908825673073682062354115928828485902228962072824445565479520758311197229390343282382304637963248002560977447626006831124779349815096365708234567215294114177364374050524746363665371982079027707288001494654188561981058912096679032194583877221659308024487679392158253369541244110196811898351065357073363827776296925854844975257877492388054026175457369098894326507728417712324118014229596886946519594263467222752951380656684119993299194419831206800877463886313415489390470864617036057029948574825285269586970006094648449811043053561382397898898086638436204432519925064263173621471817903956451654257327501715505749661995240394584292452207013766980749270609405661723181977318127635120506653750352959701891867448611867881010259252633182550890413300136071044552391979803152700468193916704981655135401935213301308405688064513942073372675460850670876610139220711472266140741362791667060581091489264182988908350471384381385533301923201112881786032894892441305731057585052296352862087326186662152243647454222979559884449852603390373792860078694291078653824426822400064427811148386273986875498820543209356190558961407355331727510884799491167715889843967847839451566808792891530520947192416286567795655592697036272007147078212097603174452687796092493584562371525722843714675801380010862091362042589437471865069197399079926920715871477271085384348761240504527581287912198452608986681488459046437523005315198322658502874618016547147461533177166457553658181526186483554959603293661966977781166341947744179641261438529630899214202254673767834270328303979222842152747306035769465196225682166251725695362735878650583096072638226555434718345912392647051732079786033440948049608016029881508749407320347392817790029201034768899638823943328211582925408130080600490840383152343552389342450522050471005053232928227023220949367354351657642405120032328987962984161549006927262246757171210680580605567976344234978100145034750863285532800917096752632591410157430170231489827174814398775207244715473242355900122429268541906758934018125443548861761430980048512014769036296537529506197956718578252331391273188784596269609249255562592706353623210361452988748550483501612202484095584604794747096787200440637887094195894175506797156451063443200739976078542675759449132995959178492363718185057451650212525054288511236601432893270768268881880825639555345461469780137863626628085331976092803797572475886944735323496157163113650564599118050608738095358011713520080898878812581673417027827963964662424412148934712664570172799024668335528369048225565760635466410497690634811901375054140765238269941750593502570444609264210511561075371133223992706290095924947413897081466635352200306339426816332942201762832894558873778811219612295091820242757139818757280893982082160814895196481631331627063741191160847636272362397343455647531905277706987855078389903908168884772489830727793384243632116079746382112993969811064936530655345989846009967529230181467438438955689109563742915171567353970665071862756681838063316346576363786746739275761675152275479487182536949273765401614228446631519384590503276191611625764674839162443796756644425573644432172129169416466321244200487631451205977920321866480027486391000555810168790961079188621803512499612916827915030839767650664710605570664891814264994679188733261389404287534697212279920171047134631881610057925648591836806492815472202108085187649719087399789841220203620589383005972721370904696665756846815288522951941008584748534062922407711746234511638860359739690391334344570877289983556459148495191268108929710773918612965717573404467988043412958831936572912264106192045063093196134956625800848543591107596791643918389247282602370815268951681047953806178567263534477215944735364063969101196880114070391317148664607876183415390414646808140344650710008928507440485891694256344858135311364076297173229420371936547951672664477133217111635824876623470802535544850285774263019037521559736708960940941772485320570558978945405064055415348490295751345335545737424563207870663351535509687673309019105152118642526993643619160849609086038112425509966959112850875396689237599619700033023260661799161484638724828214771150061693826562495227609789036953634808257659901600915548105446449399038982794855199733603727085700045523489381096929680265610806443399292628144836484668591523615980171759110664866441887612854210387609271861507163989369841031674821800864542007739997908013596033461320421166584066306063175127737529899360606009964038356467653881412957580536181259265268598517645330467113213511946724837366211272754040724561885021312635319248169074240937904279910204652162824118705016789083225558753553820959714882809183057658018058280918606336947889423791951950798897722553901834724321646805215337747872933104209061552052490511195624899919219403091235310534973926447056035052353928562799244864007948702439560424201240184060990228644735820584732855817190028839268635165283426054309960790819181136436603496514934199029801721378683632194350411016260009260329288069204345605404180587601838807309436717045213033187929919328650142919386717706281735367872810066240079574040334610747096904134759238896585201964418157764586426950733015627823522238370788395295190581990114499214129633375298879699164602935749798291072154326252058365025793156935155160113167544610294355673285256753918743955594501193929005818648117781411481578949782553802809514659890482449184124880303327345257352757428250581295369283934100186736284763864358618526722106726984289486908870570799358560810224354877063038636840627611724353115177552034942194608067880437983992033434680666381676795223143006398883872029821958425387611349634134824255074775863474420131504877262075592312186542866557928300814798138341961971074707578856255059330004505877059084339420337163630636260551876074506279367154664460167849712475799195831923820422911823237820349094556321220980064113178374891315922626661138259040022949522893496912737236167291249295304273576172924629077074703307332310303525660032430004259241974536279518457858129496156543864388772207963570900287333105879561928132966476634112631349062170633112488361975627686777002022834665860804808441969913722349726335482703516508209278531911338665930677162174808216475080315013086927661918837461954145780593461377206037320771847880083588137185359167353882977270914576890166491714439466825435330932741538266867622178025693928439543133314708051443251036792686572832719320918400806214814518074003410974554350021269665001294978970088654409661948555107485557325625632864285359271111975572001772747079768096965925590745456207531086438284180329665086908032954380839331969507580011169251488982678231527682976394991661934359698354774945161285623823164974216154128346717260878990023043461970719701954933647337609597368949330510195302356955229199936430200699609345864555609681610331018416054385781019225114918790546704247118675401825642091607789441799810332673878141679430417762094110909007530681216084771223624659228583921758498887403221065133033855196394648668009087241610979944428937964249228963145460572231593064906058759368575730253449235864123520734288849051113430624906764172846550787787120914442576839822515704098803692104819933582253841890425280217952272638739367925660790659648216003902085939580069127372405164012016093388640843274886887861424960182258419776009380948041163960576111881247547685576495668083669688668330506645823504494220610532385432876601203339671470712740236413257762813387968224950172972087120012527126527390392574029672416235994960114831090872190270666270921707145770582658296104484914803391233594162139929532725212244492544302068904204097732552323112424985815396051249904753264605500971342313703908962547665447751759211576327955921111402113029123723833336354058591982927939519708215101784517037998219075847868768890435457426653520229901694136005278164472734548725752749980741547675781535652722067041970971446176116381937716752525310830282102415474296627295403658946547169032023596733718875021133176374232857352847331682814595045155358219134810387124075315309816478736128635289524597908807389167107184723528315677685788130784452781929748167357731644324107110428684013716895366188647610326611087743872572686252543706144564641146109823768910384068858316157131579536621882027877029520156000448188288094949458295161922585888275312323118035969300146610822223115968740812590194093013215666000291703116657669573742634771263483989866553093768413469254523691349879276365910106280162513838110935952007029393961592543831746934303441580944986356560068635824744135945598406383467616682172432731749629395115844166790846908994094551987179961999886484249809570681064731085357457919312602181252807555841411794912448319847504734034388998566632334360589957783562604348328786954706226452052589713586299745367924450598944448185388502482673773152137863276862736831083484237587936529864036269652257952805669670026258835209355614398242633728561023310765019142155095237070435412134429115093426914320404648788130669219972547379364254987676678385669144139018305886733754249020298529536537109506701943760218958866857530117843699900463395419998418267689229588451030106972621317764530726851243338162427417817100047493422131637269596024448934091297523325928425600529724975106220887613393774893067027190632947567875985507231651403540206897957342861237605230011968446037993327451947123180612502972903160953841657599275935175423554422024527060524577718974911375885757957877557740311907407495517467850106661707878817275589343492862797952474724389018879603111842434557331011011906016448936297090629797584780534269455260341240503195228404705394881436927024906884263935372529405323648726917737924948353577900831381747682303902118543932525546520243046752899195553203471149082419176339221601082786197634601908868263220554470238536754393853818089506023272796893152272041191111014922145140728518123109658496750265591898776690106755154970207501658373369990065478406039022553715765000948393197196573476026501200698692496980144150892203208137715816176944394543564072235008812078081122015891513326501916878715043746169654265252509164292858952400534949805172044255015545256361860067166477876470126361952263693794173319423348802373582253760158112466978177396725628082907765370959310847412417035336828337313935308741783270848685265452696062697497751555730539043614137173380900520147923388259303851304727259915471222488549646659441374541310255669868042776403795172120500551863586509304772713635507967906490722832817386454166722086226905693232173729803141104737191609154480889384276073974628559770192172519624043316619844491499953162412626118830815773497494964401309586242760859133273814237016942315496309153366001808346730757907132524995223167515512180487063927829555838720811833859394152968510285667035720666083953457293613258236925876859151831166638325819353950087817042927908621521122033859976455749667733742616522806116290246406790770521365793371628492333886490864237218564661190200464180082523896158815986734628891063942282567364339350908824251109436976146476051262153383578197338229034686925916537490524135324261160364382993362018362727019031611191618477598847148053039484597301516692836936557540163613255060263825487171652145709426556193853297691472736888775965488022928003932777028419801092242280770362226383419322678008177901006123367931369529574529054794912036608554901426046797814990716262696641026802905187066379059983868610012208067155764523251592575276696629116463209982900236535605066506052575529463755151100252835939091138920379151741611742258808494544600476389673731660624674206857894686304830397286478617080672221350929711175843547121792819685439541902476595818060958930983635448079284835002420714999081315253951533322527205339521200070145853598255035795064163347254788116952384570734644472148242078866531881096292409792013965003373122339978782179509234174171192178720398197032957937723455177099399178855525833200569302712381503407305304073159523171513635030504667607919859015147300621691454156845443602804366836643233204303619350061504801535364444172784001266684265726378923536829784469202059231525512016316399439540265824488415119814286810422535398512876656786045373676999154899184505745364968103311222924513737076476982724156878890411581392537395829107649152249384475951087885185878525485650680815899732299745437207375873601429486676314444662451129391019272262136660524537791006810706751306639004727123472225722508960690587803512131102256708410630259961164188491188181541196536029869173439994442748934298072938726818162398525510434093144644191847821374298011161861767760467518315283102252465992714246009456927716746938758637243207565947550992964944504659190289302771374489711806481900450108074503812085216372956305675382057742183213491311500836405793838153471302756046935245346368756602515247603517819449527549672450516408148219413045676629120706580908398245793810639974284101470757777344794829534326731948132732046373413385335416898891754311975318457084724827377075628473113446728203411706167092051509732063445230328628273087351582668789380081637471039046316823314710969938299374619527046444884615719220592113331322300464880558613382937920113615113221528626444006957892842825469192581266259921846610593684830836688067710465711052082544789400164529887547749278592252774810210318106390113476812654061566608261695018017875275909239521943973022313836094163294120495892362911009245506696913435722260758357843332012276314465836491661585113262114024643575943537442609492175551372694444837386993783021280925627842489999173493321210128600289782279619595245437741328247980962751194439457057316826701334490757684609095513889081100463753851456382182273467220200497375902576071269224361420298366585595311280227446391761851152636634292932179473039086424218342061009613267527561016914933316916790486945946721139156743355556671993602859276157284563527928011610277591079661205614963472027901769883801981998277133065852206354287990897158959743447637744322546340404331868580503187980039572419950995798678953701119234177801086632760158815518595745928316234247447957527865828727334047711915059518633058292067016080514257898043979145615645153866900660694844597579026823040997991403619060591234068055716700694069542658602476755451625005686215864514956127569798170366602219272102414221646703462993745783895061936555175261218730093330233565871040196347351245084655769555330277860276706577132739880362124052319066358364033844087960580268625836453676775049254288904711648092722893266020541850715075083458263087541758193793354414931524174596928927534391686625594323703415776197819901193203716853748616440625267820968117702818256155670828636992526286250266042591951780313742803940562784747933174220777329396699577673376503631512729517804911983633917596598159183229302032027435205864778243386343541165899622998974898650322056976176686697836658703482760265856828997817883916343226362174893415259926686048566126910884765181717125072397327792523106005855922668442291954085050558650805029234004438024479009058853657333758551333068753552427133729933731945650188914151824882384358851217472281317883296426850632981309705692879414490544696051810843752571618953893636572463183254165323789023074673858154227296732242446775099265270713745686497304859503618414060869631040464020203779458506717952609961316912006655995728133831049666555715347138071123475736868446909396614164209295983563758041396784715718506904804831865383662938272932384960926883430009878156762792220344089731254950958807617785360677385375623302683082748134360824788435249647353397385002286909456938709903733849605719476392991956584609824230401872690399235963454873736565349537413642463607572822670209694367897485833657307004070340323892464266331599117347646746539540164618980704981385464095156774604660888969950301709686423378560424643828677960265764284316041450009011018303880878342188640344923002172610548705788794243947885357775673194797450035179796328078051615946043602702620954951535434439036239111656667906965785375433116599954589438059651684774310744967741791035524727145222980016713335478275389854904085308350420832607132457956847983074209139021308056502651659330157661185378167801929233916918482528881335093371891139467636392284554243927827118138730279467942360524734792738214120803402460663189522438036656462116450508401592405050205198511796858458489440561140840995118430096248031807648211940012074682995455120499879558216257260870152502348435395891945075374754820883593463080185030599407196224803817017866378926481398597571548992380651388225313823735721951726673892265064435600810677541170733638645391280840169629929095161057985070509264364588696477746741811949872578749219795030790471756482531066631722548342663150649387971102702202259269952072978092836497575634735079270988466116336668306643026209861385668859313776852271921266497661138463487992461127504473714746314356623553328429447337599285909051814057992864990645393422112502148352839314705152933966527513356603229264274799139997151362695547171199982823910798325977143866289763974107186078141189183371100938737704029567986611403806019004494026720211920981793608051639586408471888236682459605182526905657511846665269198388177777792450991265922219515656344738244961124323192326497435432227893725897746620332151629697539192882887616812203325744657023405980869729578601419151845165707457944869834383146515054255880519960861874342103048367312251571108508136442521553503095686530113473215539728963774595453157533182204565156828699819195986540477119697158703565573717920705066046703384648258160182750668916889296849116591007237673028774462370314084588023726781350344912791248933014234102228769448660293165778313775053241873435332983884319998993541898138850972745735969477880773236907678109959286882062209162978701621126999585475205891796936397793077731581321254957288607876750541022243675976155648205451989815830408270138545174055912550117061426436960177170646167401135618507723020281097512186440969862597819950531416368387249238372950837289055151901548101320354055958184797873003312096378425405724734872930292515224252985101322779742742632323984351331159597307861949090381231332474854993994210263543704111957172429096878698703318163697797398454842239898138999817296672278413723820109281196484651345360719225173854341461947403851509626357178415919947626192468360240196849845400690179232202431012257821895385200559240330345581066593254698794656226083809258645062336212599054855538423423625153185700600797572935299194944576811105487891618253810760098561794932672552863414324272902708951972119510757172644897736165524478756211542673910587789644818813313656100471380938999359440729471938373353249906574926166536478826688117336791979361909895514482248159941133936037047452559251444114088341297420333551667163167228045403957623758917175245478392442707299744104948662339372018729523815868499668428719374164591340210562347276358635226362632355235009528518043635786870614087608065761676322092835223207645573354500702967668584534193628402232363479130337917964598257794623449296309397979355910878724610475776779804369645530575640077628537422428494517433454374673839866122202673555132353912181320844943261584896903598618468166618948385515735162868079640790985320533379910219009794680937011826503297545468804224049169969285235423145434024356144776469960408954412041444764766976880413563340229199781609993690991328593481393177136749750576597826777314927276755286635786578913696811074536888970915780212166646377588379425899313117889175222275368594929091204533208189110747042618717168510500787508214564840127354614290143434789469331181670310643149716156193627558531030396336806829637079898300410016224840688059761414725801148147132382843956109714354841375299066499562087833592688744545837431950671951986118783182249418693605087499526875424583656108886539768363146759491169479899239357710574374309549730946578267838939910656848048375335058987306330365819395791619815264635875455276435004807736339138580691436502338243373558723438378284188834410325438734291304168779469682946563945018648689663032009551182592268754560801983294505794211416775010216076340407531297623431977238542792062885257056307064297092167863813088166281288041922665644095528916983565086272829826274437795181333302368080764494242922640517776824758962000799311337352764720411790702208301112935562812507347834284857848860784178756649263003676812052258854405070905513135059040704662832546412166612647893311789984709522323909976184152600475065053666741134428377146909156431915906436933277264065383753800378368414359310313545996756721747864801486709155888315171477377444560599167360232181153913590605646454002050893814204645435707897281204326560594267799897959886173715476272678008959929837658924179747410553185236911206615022228370958531312040674673802408968800475836704019136120500125909543041642839219059541861630532462138121717900720755122356916710381996730588986714915531200160471998648906742253331633216305146429736508331989752352069971111471997937316925631117126006883674136440713933033582870190513730801979759177347120458445904491110547668832911038341939731560800531803529897089089015873710737444273236980900661785544189644684037975006916976936013785215030319339400681402466582188937589078283357098225209070761306489158878827560868754024098711582689376711536448943224139628703098185845229185168015289735596094557553734760806758634079323404823302250951189032413707607454760438389844609210819395599729343484242473168292442905511842010108319053800886849867382449746161500342817362142273168033255438478035456789326876084580190918491444628101156090744089210353155726879418753480986512542723091687312257054846592160939225073451456702127676243534142990279295744854691400584853214887102481502444039088146404743743177580614029208902223483483241847311302154730453799663406581184469690209465238249351476912247467563826504548725042663136167234768944491949645866386635149404060103986029418493930205547495522649180264473790120073365465275096093441081482977040145846858330281840210223227784542303735893981407304119802522418387406344290586760253056365148690221134902173735424806042905989730616948124192599826426088066041991195813840250148085505121681666534638040743761821761731993894822729235264824977057162639964812458879981215157059281336322797146367616297220771623285933912495946152852220931060426281110077050077847258433442380229351684361502891659982637922033699561386531933725245612402184469973380626898487513370805697365985188067090874223403055032804474804054003969154082086159953948625703827779760998557567676594226864533455976120231137077218822060662751609035305896951910791662763497578821702621552366125716652306580290222002110454719555510036760215504959486451517859942167232946107787970558073378349048084139955681931518349266415672197085361400173641715838240853186545423345861667088688487229579256682837327254458172819507502540935823054121669473192207363435274976266362097229715455115961114846698241855356029450901884177973319628877680438333239270577796160035994798440815100482597994979117986434140976913113503551842187957865118173711640316647326328289065501163643269401768949954311420583749681928102995394476963800526822686636947217387677573803537089992973812249415561204597787531625763390065538086400085146219199815673332520526194746547261250549249611615819136042287692067242526513398838780446692492800586132905864361296553900019880711004870679808805906362793319292865899082965460854268898171824549428806251480702099486681950445566546931636273302018644748448666678666780228021888618423906671643347977591834887727552545859540650746777835103906959037080104104732257038926745159809105169372040088643083817429688458880196543499747755120475607441118219267626123545684848491611561297997452296581445229214688257399422064798126765317343165867760385431468400477734858562024702230119156144393289350963718491853901972417186639020130561148988316297105707379841046195142565077591650709370516532902893892387581478372687720019320487636823468646202190662954193480774962916335009760556953854623888342173845771829461281697278497628095733158795173329888526553849521095072635052900840905468120135119400695804496202640461498500785211388414093616476054059243909368871609767026689752306818249894198874141918613356179260223830148160534421370250303109456169617477463016374215645666755939577167516357186552143814509821767425181519693711641471312285165979122546881599747635272638550827067112367731656717955589040354358351001378074660510361960994030812902331164555796830048726907922981269248670494950193516177532405249222469751910777699457308053114125811252371023790020115912885238704087930574698486887605989072530633342605945262421761070057638244155331615098796198988464487803108056827602806541054840532113281794305275844746859157176124962819495001903159840681811293139570354106193240105578334780262271017906841139766766757179171744193218367862088803025736183931809407904513234739410310009386812773199718598716771529892079873487737300448518143936406238359326874307485880688517403600124969718451584026148616988384090983154353682677336339104843357058820635734717326180880233290619471418566720597297777978771386675058503223487677417317384952809791705470917073374961126801110078335878524759736720140846184747691400397453853414899124477673751379394121401598174751189655427380308636098378323482469554750336530263806848923587917736511030818910070467902757952900444772224903902080801355632992414080732054757702676471027534877021960885814288859219850231510919849740634226844668962875707516884345767852946635634962748564028060898873775180942565538829037053339380711682215393824147408112097250333399754185079163723586823193981907434222468747288230454489229064564544451367464800017445482268275075008965247583174297892615201360123727174198590810732447879469675826249569853469669457880023008132210140442257884552803744509011631385920167124645813123835268260842473800279326053794290527883274908250116908090505527377205087502034677847581803442897582664344758162051262047433329582450132869980678223627596832380242712438107436664458854927607216435097709094806269115413252966422387059836577853614023286795874160513877702407203926223577971178815749396158526236850011850311100124040497515399468438556499626798720557264972359749592579138098786583500448165138828118402441113596232398066528044020084944851200897471817133260201249471725858054555355211410970009888113703256830074468916244489319676298247756983123980328899209739318383291602301068249861030638388288506762512321435499017171490488508236259521479052147057020429686448259254098475190463492595933387886357104540673509832338340866836533961355333103281223031922052836977843628309300766383111061079540255267524612057252433597368864978595626169014117955800036246765549474337365025760811359235711043823189327413488717404342147772169563397060467129195160878560598627928642075532285498023543269728324486640178197260965507798485447013436009101392348848996938451755661500449491377292438848436428900482567787654579901130447387408949532609091654833535810526692595106812746086093451495663167318933506410264732835827834112727690272723723512043772635877606566024253379684687780577414883719971058874237293973453564585146428657609149984365751254079120086854577941968820387400248462459936630931740245149772704390089603661427184202754462092212657013497979501951690587722655614994030801696667178262974745474027202433300630409900965751243522266925613089492360510324326360474375108248939876489264039248599728223372238055733142838072722573026695601067230312808941842377397674037133102188429924064150043998210350893491551849342499767293416407682918853509045580133110470386764111045094833516985909884764837557748665570492371805649663795673542107001777011262266626590338710787604244960753358025541327937330177875180575066276873265430687820070120434536055853920065507830515893488661353539181031813705271608780215491767548936920511441101123196533083394753054941112540940434148144949501198295459998912368372589614164153822156625587110342297081303503020574462787891825047046978732800290043052181174700265128240001707830948381475258327680578348909977011193580631108311152467338886745045431103162306917669513401543097806131458373564126083181671984505510702277179957989754360497336539318490877061024106777705514894373507721251106392249770886357552747505226247931926278743922114570758828461213674672198570183022522498082290012902820335670558120033791473452355860456777133879503786862630892986337597317842452257747393099215421315868996200980483653074457318763721145250310458033673492579233259959708488022715751512133419475746600826651325400997583960966188352907440417074965840618008640502204313150088751474860634678004998382301614430180354639700148908070270049151877305567838329636319022050541345550364712810453511885277593372635063476455079447188263345081456404235103653074805865566455340588836393870621350502707759025199217751184041083499040926366235126446523388714036170592866924777427106619174368282141335107700137994492165603782611987942524455566501413238273958704263652997710338669349969244626432536310340360471064252451999013492277059271178004422727507564364443063217040067252455158431105862222017722791111625000841808996583484464104149945285702695752744855329639646612314875259315661723122695371409444752232282095013531299649087787978427823244410579657219738855041664352223029270137008291276952048410053155593851741665814531429319814882698888311805272912569899277237505324571618909046740439957566060874394020223295142486141658733814648009692993806729116575026567283974412619353872894082896390567757836144182124833405249721637712458354718566819900275408192062217810506738358706036735473224359697596198794062881821657740058586801330845599387696650574181285342015434177716671391450224473546109224849085470078723724461843401786203387735182103074899914671678194243813265097272365568663566709476136659726890200277091607056967910347699991882056828054477290232643497239158478536328660705289030513457015896868749132040381158187687554905616002213299734829373373733172664838306428682317272886821167314927902324684699977203871480636596336695384928119121974247060324742883842207659461135332756858417466801511608198611124625300637278222848484878765103092397669066039757521167246143270833084774965130683041380390412889277401378887032066028468237878527824795218341721812299479604687159763182263135357123808738154139278406666373007643586399625496337789797929791366286529710596194467965237877095871745909603319245315655852868131363366971230093689962400638085013825436085813048307194297385206795429465667999462531256483986577534049389097869106375946168239631540130219327584231929670022017491630205735655762713213753980667776005891247293422228725001353452523941253244256774752082485210311352584378849626010001249621627872983602188783605778475926628189484891344528644625730523595539626442822825375493507912975178970004076660508038610664310152109760657629143712214997144609170550417134184993470501521505634756543688898723173018115036878395315444816437143250989635221772370839906498669624374878423539984862554721432166296644035414719621171348819089449788501444009860046839261603681041660701932765672488789329543036682167565434883747165548417648249620998729192967650660774961595582439627762417091220421024524892454193893483229199038789371956801289163952555932224141281643923777546137794668192905248986071574398828196235571482767528040490572414857620719425941525399745955969932040740657858452918345255954036587144184690320274382072304533026495470609312867750613762083430676002178379622179319504835709879047992990159906858399785041404485892090529168316154546000823657031514201163418297244438307838785331305157250250610643010947927589079809080968163729480837114017679474837710081283437640107910080481660406107057487575205349886870904046501585530025217796161506058381141732061347663584751851098186284953327892856659456887893619103979339939021219912087104294222666107478689521059465940767287535996718192504279904328733586976944984404759553100856309687718421759333535761016414515890072267845544561059451766127034323836641689749690408068745869818126277013409980136494195405115588986823241875883252640493335322557602732802085899186043163181179164898782788148328835112507236036665204014951707388183017520086093711734691536841059019651826648218666119944167856644578495424834165897261433333219244490374503251370889695072874436372576719967075782365544111359407683562994526251250807765965198863431276693683230825504776203685331588028866829044953992540175829585900488629299468730585099292459982755722910564771842037312845305739401445200319377821297143664560362670076426816739363067094625895269928110797524544285814222659790415517409402829264069781456536195093173257241383293722611749047191338095884637726555268119295091925570519209549319900481423463226297263519468267830764672561482858088368698295419615674944944849113091493077985701794461391378776991288771273171673216209163565977012505811799121767402254505003115584311963009926029915817410809850126590652710329500068806169431907201952832679442321590970030068653439490404684542334114983974881554159061925812686330178828956969692858380375983738044236685621214640459477075704838097180813666755230570515610373019359998934013152538750624253509269763938651208015081149031687363722256608529997692326887679988502717829207856769571289289111118658539856747930182701813821698962688599873565914212392708915136346308980464127680494340495803206549930964817111876809347053277095638880597019119057178702296901180492470872618351180287733429659275391652907981976487489682761023489883290589339841699537064933979557012342267701365769680273160328986533192561178695938796006415634712032456389361460465544321340936083156376727088772989783024931250303658377220962855003463764435126021842977944373690273371623897726878623169469700009255474552578398952840736507431209326964571448075197355512715722402461419060657164359025292060062491437548724100360782589927101930935654788904584932561553807774350013211951690042907382941023471727448913827878009074619885643134744295394240820819106800258878922709374505629801089004673355120978022977909143020751716575516429433878382588373009145353567529065131255819026242265765208062083081666587266545199791905641940761132950649187707921063283443342614367823840725892521143990232949230186634517195754223646732730557928743061934476683234732086986633727561055775452415854138676496271625710725077073074222999330186892710499644879631087553113083228027048804885061361882363205633020006333634255070483385630071917964811049366408083092512559992173222798424788815789252175624517157114966313960941333209790344947613926124248920389988318957421559257074205293117983874400214629968356978814330069473953178315643500831469569945702063577886549733137267065888694360702277727351889978527492371210521663875807361890001002334489388580384436815303268120451738198309329631839020626274525579731710621446217959644856605122429866138482781607453985615531281029267186248867347175663008530907372481909374439564292045748417206119770147268812006118289991002808113600768171234388828311430988149491236088612848838657835678880644477617289026641074488354163293266487192300161049145450093983896596764550100093767668430448766441551934226795367000097581422524440477908934365028992105055692782857524205862599834917823485457660141957645611323300994513998535267121139245861615650625181452884827172838135763786169697858035641670687612382699861941912441813674092981131192645398526747137074454891773925847104844346205252225768073005122956012318236981487499548703790095977686759386956667330566318782471141540054270498006405395841288197325819145413532653797976236415615292568125805340728543651210770928623003079772635447074307758719498315413098920028819176898657401675818018577905174002696711845006120364903815709856135681836867284979874701129199521987600543727746483067513874312432038596905318325614104326115814611857401701833292793476238862222063755711600708289355865652997645290944926322557835741866055886183228802051654380229049671802141796754291385098102116228314823184060418925356753300775563392567890039947386282960090339735581786417955860729386446604977291313379439915518785640318578454209113599995267515220295303018007935398324353312220325020785253516581591418610030200017197186498494438578058718165230433439101990078258096652529613306557052052288793346909698934321363135407987581398373655999897831796270912023998322412189606380150421776853085011911865946587492257506120106147186642709788900864696553580811137037572515629991058913281785867560254804363665585163685517320648543447930157787109000229636803675601437593333505679667702459338268777406171633001935207597133046338657694315683307965063452565544796010507756958992478266405965275195406496414247734939816209553464781259535211604711970724952719752503181383882784759490124409054117688188284725188419912637705435610662694764474961234493584311794059388046958568900986581165357662910600692685579429651450096061274766565548149092126369521052040171325757632489138245694226317605230241748644302064572035152005499719536747150958833355408628251725867564625904631386128903871739005550162375666358716439223503732491388821429093682096068743505742745508655278544963108191606571430403442908064467324087818315402164490856035238838787295940953145559508647633596386113067226290356882862793364642675084253091323934457602102768104440907805796678659707502646971621383227627645895954498499869964167470770132674685695836051872848409561966063064899188903235816954257063836069826831226093140466010841400060569905884807242490376169228223268969678118074952467675234732519575480033004928573016739681220411006816286834426972849534210326984851587186480139546400539717490142463006025248123848141409494994712121235003081875382675222014441595543117031721857472747976599454141328742404826078862066032509429222767583154463834471448103059616718915860157079286903959949890726015845936234624299378570012137388380039665662479171154166507478771090528730796319067025634834563272547422512530279482317838262000702672986770430312452127710073676610733564880266120467901346682876679409570880532894469581832045954451534191597244821902174366797391528974852247076692519283005978510015439472307511914424442335671565949546125514786981575348873800832695721381051479793635036139107724986919089273957648167895493016691953559749563284342919679364589695109015835087560130509724430715098787014171899248640144724675959283700344908907208012367510667735578177779711049837229762384712166726533517738552486809813560515304076202888913233907014015010036645190108306376645233594906725526815688651295935105430353115092980624511420757334077973325101141614628605963193093001956748164186531931695964949788145920623062065341209147528865688167838654708790586490216710870809224042562090574112753583205563870270306251320206149030221481895627083965708426164746537201261601005874648817792924785246382381410324115677954880239008641984040510807319299255610338765701210524271906059437108726472073719488668821577790777082087154965643067166083244492138255174547227048305868192261287969571537763403194858547474876261107505898616948495216902798098305649770527119549876973800769682630897925288556548279714777000206856189002099673432397670181591503485331236353233784531491644367930350769135244991739315148504964835799257260965170028958428730196617458242677513281146654149698648080596650800822442316323360434708224317586845015278611386217457673326704548987931994675019444227007948003903152193622788730177096566212676751157017504301376847237807770964431249372250403723840976599027193358239567268269590857791380102864854014842507195586851030254197382303806344128719614434912311740553435404716939049332793185142449116839968464831061446300889027404110303369022255560444373158931890452237508757534539151279067527041980406801581687316532112669521173274087251675212544142851748047217440263954208916687959961774324295263971752543583191393871960947012688414102822646337853893206318898142277160564489976811207167801762318072041468850732338636213747188577891356449123771183586927086523558430380587717412144229034771736920321472694830940638134072531363133254504134302175259166039568056056094870541207850490094685144869135177142920619718309498085960971829288047464154998357243351525764900479144093306598155844848426491796322975687954716808676762633551476880406731563496601608202689826201362084579025146903688304850462850523073276836590465282291920869554814689344854283663045064796941349837310646792709538174704965134149388666313635856652079685865475339358940083968220749200881310929223900076693152297759371831799912516144185137634199817379556984722439266716839828921679588983432524003240855397237276466069950374197272818688231825800331636458107947643020069742194548127261009735715425538848943440952574014609167824941028271990536233346548259160059171371887449785358710981476549002954573646839737556278245509710399973474332873135953447972752535379615361891372187423573020473045781713877253008929601383578526679132445447386028404684576511778956585183760456707684396745277492184660178087717641733535475356757372796481596483702289775381591803411661945074939584439547391885518921717272024308902813233656796730414051016146005070711442065328619778992214302517123719557176061039857411464134996705505668870614974625605288219816433207382834930799671973246891055274434712933820420625194207431455654017881281634911435286250044798555867936911774696964590075238287189229478699306313046303596748909186397734918566706592457276060030531342104632666526034389215495710748112928557596024275563699211183660424691785665219056327906158010335797755674556306020292448185662434879893798479730810797114277961230069415269028065715386952535980340056353364972458884245029989969863450807459105958969476839667024014452141843532803790810584446113415109396338600091569257011893106311134017589083397713303270744619229226643606676302159176335198562442868935393980158755181309673631531109857021077904655540712328645087772584413557838832166926045120256741602075086534852774131882266900627176826926941632670490549231140944889815339503117398808078292238674333767579720571937923569994530878982382653697578786542527881720771733535494439541080653691425295258299018687567513775810944265984536033847165358824574802772983665456955901201002389621425607090383893099176435627033189279665181063047530103928297006883180718844976689864914699825420956292062843590557350597660016827866362086640590839243962553352453700919990208012401952932391488627244891549309736286857389067636928631481871526511112296835233351287831008343803216202634760326763011651404766604856398448950176750726357297638706688126945880616007232626189658693564577279779857199584102826317059348082945133955673679818484908787592469729580780428319563306680543066552953839576015822990681702519958059145491104476132375607104472785953921930013253289354793400567735826127917672295007871358149190466769956346126686980295802013244724012015557843016125378174363649978278922137754331253866211592214826126043604359270827325769761586679997467310917761578844584003825287263804103360662438457721411105099559912318565026316051428826386601886609319374753759156292715460154011860089329486595819665710267558710748915170284300330650635540171403446453556563221021517214681098856616063223896304082237445850877305040364674103137234327779332198257392584253816335710437960981748670253205302851896945028057497637995375261938850027918726522377775901028077732303688561332750374668096682921235748727633426920905555412762112627260325372248734183190129666484943522315994239880539443535690843874949763405923528945835728972644407534353901038307392794432254601280265648938247334442035794896699645510956940859750682900615937819661764937823872745020245453757398161758031883384740009580198135966356553060452346925728182241630567017329855727277395342088058421698482300983028171463222531742770564155139418641182965968904932646587308734489087168163617658893656012537891933078619678051281462439430934986087872120715286282834675028056029239180996765093045721072699226973303867574708790850554043636279275812438926252844694082196081436296461041584866016466571107980129878678207147934441555121250524283535949631243067595317173884129903813272436192039190717011561752415761037379173395471274265440898899208525103826113172126353531047064009498946138930655361104260126833254329057528029235992904081211272595514861641749158876669266063264663281988565527307715442671746650652016084876558621582239025006786657932022349708924628707550290995141434497322313261388273599886746903628421986690974936458803006607223121960858073200035198086096546532961362391832053395392226527028059974299470814132294481903051925329440004985648766891614769585687526264583503460912463238781605196351198327284945641855215323987619893132085778178785503781004748675472714197792256308823301972918830085364499436098406057506206280912221097189550648207345329054642558566178110003715330941885359128629431494385091813842349157749068082590387235450660847731082213023650712420568002469216268436179241994530353248297062799899905552725571569781784232971606416408823340022939364588364371190241373536187781960065755152417049645288720142469988024864681062233185151555754565520486455851784167271610501299979088319160052951185250104710325097143933897993451584400925912950222814917435676481312443294462894518110195632531049437621469392658443738655206622994457582122649129235104434609798287789621403234730791717723740724531839457148440152881615071393979139975207503361720491574280476251070654445087596606292233771632502351395550040447887462684255170762023822419398646198150037229187926748279420377299573132991187110076020476836297530190059193566577583679180595250185796074393507374658303698006353332185625377307279895097745012385439415206244376097390716042887981606100694847752539067877626058758671648235648057093842605405183875120937374143280321192741373495159163579968387628111241801010856943576230645615254927760596358591589598265386059805220849554340173946602724492595183202562606513698968317258212382477504401317328317303851676465904578368865046697732861072663037844445983677534562324916106331387390341412088061347846083162528095179647712212804943031203388702616841660484298846398126106656227019973816577249912865578380134371504895296615884171308785305995302730373710142132304315630328344130027934257481453356878056006849341481400977276292634262604178325103313042690280258090978421562547550279844494552854842712415090472969520496131699664181130755268517102600301785486342937833431194239836189700488230329532470465067314643418959819343633648437313970070489939177783282925032449330087415483759340345612431578783287363001417531119248123918731021936021990850822521982705752221109410563183981700502269084246501918333057828481756165976061221512579684233736149663816801684453111329172647214094937368806543582466694573125406638523084377335104165066622866728458629231526094987436006257497408946359157376259266931987968321825768825932605260791969188536949879035363016336143398603206094209987977692672339515599819875452571318084110022590395843923103789162981589279712461849574526780726741200815194314875619252643172124240480874580377593566971216251542666739004042805339855588728695081264473656154943288340134053682646482724304756534542937291235602172278399071979740724480404634473288644474569528382196494664908357777115968506763861616115283615429425242299668750816302084011558966631864875891785714547957997102046639408825766001414165651911292731186749484985754719234516845207699389613043795811617881412655518466664287764323896767810117912831362527626697279368686313749812778340418846502535464627481686525887083713307657549863507241109336456234833184489404855131987529627233822694679408065832158892548825399765815357294666523541964837171657750780630331220266989209786013864736248912930086967475786510511435691867114104804315994312284105449399118589967847209078386778996244153311954914926493960262267172581123090743688924651681999322154040049176423996522101791630064685402306350311338811694157656048083668592043094110659681874155424586040883819134899267652716829196948474439930688744185819684931515466692314123226169648117317349045141341507776366618095555241783663253849089568787238652697518285415628008487555131862371590658369223165103530628949329301843413316742654904489431611463427752951442667863391969943517169921488221706262199683999421103834100235866432062626519664899878808647458578981913415368973769447207043321104993982739555088998100671263494472324123336695262665140839623809281696018311967683667666768849109171560940491395945014863144023510617702532718767784682753402237854781752540923922871179829259391669174230488873106209823110451058790707648527745036645629937045823061797457588199343393731749094525283746481721567387795436380413438470762291997885774517118663592101101882182137721784261029579032105373204356632392987184964333580572103082712417468952203870608192856739241132786703734855768332052903275035021775388395414137473061993072920221245050844748546606893230765725451426127345729846092488910850487258386398515768565969562029241943626272508090076458499869605670543973341922171206490218859866432926479387270243880931624810506184168198401345847244925811129420375769997209828118299357822048634406449305954728052356429697254012652432611677003546184708853884382892040915209764657109201267519544236856543013226316723094106810289500042937016353627733954934482087485025099315513045491564015972226678117956398290463915208805458297175487223644920365335026939987207679076694151640444245179617877673056276073486559936541244291902034844137404781248085513667294743183680897838988099289112906876296113650729185955845137269243402641553142559579041389986816725712129353051415739714585433053575484716539097784811302679214038523545569941867517200156328131072443897783092775266770423460808460391627620148358150503646035988737790279049271079475414635087550196217455418727774812497547650414038109221098541519907560138765575955118852602443784750962464064432691955847994331682809235190190755157987412897768863136860863289724418658252776381889123498843132376737056092881676846013950603640774691353754860508058220570244746250808993986359005671775682007315303672543492848452845981926278359672245391887151741087604752950985593352093323001537731893899778741776350900700916952491587570061875027956747280973901408542461721082043832213726298284069934348791193978234788101068720795850451925470335483469835409754959325991526294401348166682054874652724414041324803726158047206345642591591328473368739013441120020371499908681926069619303532902813226329117106812958932672679567405714781875723182723572811076452422397094070504419933829831192687032848791670190089369917739517599225610175277455474308420367958657110720707389672039860276264715318379150331913281649780141395128950637163121416865836538905005576266032485918762053310888661165660032821572111684527378298451128028336036258693021415933211589623119952143797572687602393881736356613966627180997519415401767115859310909861236235558840689403304062728383392901024089033719258132443125999050488056767683990858451036058752699622002791273043956487147767637428848483786802047668154181122795073927963632309914043052157460734705766480936327524959147601855949055214598336432999497229630260240008848173824093594065896799309942569303520705972773519289536420014352851575645602880005538071912912166919394047691071999075578491245681270860633303245494632828781856657810685115656085645500498942605459753765169462103346589520244873361168074016090052928766492903038591522697016370700130769931971879163715323644808104770745791649992637861024651830394013184065895267637078744827777742998322513327672010205944998931948223138781532339165632633009572115532458394224979011491101435133724276068869908314760502945617180614956409279387578630088245582220977409851121743004171821843818639144502756439306058086396005281241023766732540619956398286023566502161553877004560982437321264102374486772675920172976094564525848257818493283176256751483017374525488277660449854562504384202358892001975934842229355665454706607770344844075391172671577205704725459476053130482955723442972973920244152225729110061113760923707568846398629407318353463411635003685059691069497599172359665332069831218552849811978600490793954281850815603184634705817798310103141035507393856486606480791737360744372406526383772914474769562016490624660558443654449617845189543606368382601469800666207914809685966437656210482300561030832169801116582990500132114661945934857302021197909544997033774013774159689987439088960217831727472883885339971976781911298937536224942432814128342012521173496911484170543634765038208122758586843389149915428178541677393527716638590113881121944534445374354408279243441492221824702941696186596218475480355037221437389320655548137620787550758359036014270014502168335096979351390177443538861172957576152727846040514820991050917049315443840945376534388357218994538235756203731176236842207933193415494744276443527965483584603802039752177983695026607840989408989539408661141338644689636069861450130012720287419583606215229288421116885390595942742992353467807305265867891527820056619560249694993243797014802415755192307730957163681717629702544009725732790729176877927239249050665173560804377166084908652057572186448431694954287230936683289178047188381266370956938020027010118344214636792855657324271442070195593121509576343741671328657991040866035667653323912736844960199087104722110788065521248267500785532443864639866674802757503998255733547227039050223585476117952369470645445688650496717680585842267594371118543916662188139891911152447451376579563589349421555980456954050016843630602118648558441944866978008871503473770863863712015171807063043517139791917929820457945257729835334411811740849065866858034382499725486673491233008371293989218699387733207906953085055742375180124590642821928186002168917474784568387455003112928707862741847049286589169155770751481362616824103063888201730299979101133639385716149793751957191445008779404076627798193790965350543030059850331409857279020295761768875421531045337196061715517835546432099063548471581065505541324168781932139762711644705508138261603062160721577889002992485136190752715960356229739613218029529476252973103954614842679619704170433871348348243685356051942437463287915717976268487058085417553247067856885022227330489550460161431498717227713892762837224687185214646949122159812550255418914263908760202878713453742308373830115407234470233134647108906063078625736174738274867207059892106505709676774919080079264495499009514931185418426159876564068173817043208205111388712063589055423358133923163807557428300720779856279593171619978297462076532126173015630898721833147289632115237932841908893568111843444794434277644674562376090453765601223730253735702303778816726233045921662848872732064074300982666941146058826724452224301494342456975795942845433112687005230460732321649724435039189911171765468224852163354102124621071751834588326174899178101661725955100045586352159043101376196119117856677986709278908396621849017022687832900692676714825540019856945539778351385803228854488398382432511789781033597087136959507547934403283584047225701423843257013732699295727818970913375792735305556308033696252597507098173931761642018120636391668327985529643195803973947279689762182085521627095630693566476852625097523346581990077431462408368994732752831261260569896426737096180005873196609475026845010602005603320698729596134280295818662886203107067608961786981856687640245685371516846297972907426274668498341034722463477973368063494198679729816340316549500853194304551853816291560313339636820355091279106804334722877865343037573166377808342673119432164352350421193041013335848007200788661330259994655958220921325774519411331100420231012503753628045503708306078340645701679854828886647769660610346401093700411952256804550831600827748179654288645509493512112560474576944534878148666409991223222055090152954226320036809180074661140299384313484949569193404187192789668244926773001015434509952415670371498986199197294497678277374367440834914318040844298568958575011469856125389166720976288745019068283900978121430075712695586707917303389102120736959096762064251499080940766725538689924575559069283811594192398627142589511626516140264924480301624645961015202641238316411147695109979188468869574666651874181117888770001886669828636883126868390186732287650488095169500299671162223583209191254182719546266156659270120472908740572778614575030174598274816448108734397329695920862570728358344071360365880323746214273198796432088690746753293029770046276645309826120750804935207020642167812377564797944600288059277317308395443573754021153916391174259642600755641195131044450377474288972172398527971134165452194270950141434953433071259310609456238713840628289286194734930039013515867393558208528815706435248819011616935714082171540840431047405242292767267479413906137423290279959443063739401608571065552177769469185468412161374302653018910535615835979307345370118287381795560407181989077642766392567299374745347810445780424064235710984361271949660302953400957324391394462190063731127765476110523411822993360628212080442521999013389381448745559790996365275159640394068261569321387405340137510616719071575903491588582684110172172038517285453917626742946085177626614111530870176838307529124434412144809341451658545061815189988449395968637402852375630467910581327423299074418738554618765073320723413946695907931865990884416242518225181420904524226666040326718198650606584707445270661548255531493597180697435931533685526894349204253039177834389394495157275368686158132859735518178159786971911337144048064429106409226911587740935453488264035452432349091423614839777588106156589391901209701466564040267491181579129712047220626612416192911779463877304605960624794507875434507481023475866727418036310847104233530875837656939716984295443437720711134446303650889271757731264382187341271081708417630816896853520700938503975325497064398311946286419483153906835237577704689519732903118770562240679288254467330632285656491042057439574808590528165340774865517587603127240785302388821904802293772992136166158140230756217491405429386348480807987030594450385334543077620289971718777140518617330349091735509910596604502481746609026036414836572973923153364923161743941801480790105274961573636323741152958680580090160456792741605540050980472860678040981806802383114363584224730228779796247749645761820251399036918868673079239527131057510577604448852389562646893763061346247900693415086996585090481168290339021776453897020487810048554590561558201640968408851727820987145830803928564390803616946489226459638209585718142185558767817474532492344334742949503402073958792780030993883081657073978586968925369788145037672559202713340876954294183636112815693429047715368035238787512760023792169184614689962207447709478522602029676808359224945735373188927857253160620644489768687043908726534292914715449863640785341625178324356635436722485963862522461849238094606764626034585876600071874482637343879054451864508060606573580455190739208773751574533534263974883393785726126365681280873845258024955533560404780743754965644539747609144651288805785631303042455773072332154908499591043380382104578644343159873173668090227536827627048199614240442574902461532495279045436282651582957233832311429342944182328511122239945572732312201987391207087458211387347741763777411202416364763436431244207659475257475464793751749145801916359284799476388233872299572021463758227417714358779440143432983212590016727163736459527206187343103242165819375577816587442876459567854035270906931128821739895161297443546516820484323201639609787892255364404612461557945552001847107167038007617989205115550351243147823823360632974462448574191753470680062281322026251795103230542638583656632889141641347887028069381103607862660176193970251490017729677392742712927251971366658615066975177229854611208077324524899446641394055879516193306619936255877692047251941048311675950391830978548929057611552200547742433442229416559525419783698444236548056630534481549950506096028081698970373127975035098219753310250276087138737282088968166009373392816923273391469672958883796816085084486401324234572443952619039907422723670457574942305164377788917187781065760560205709723187131185013873743139757491914253814749454691926843884876754582064473976219483940606248288765611395727254231635591748595961466547327025933691673761029344797624428191233845096229036664820024968164927553077019347029571279823890566802722770518157762806007324328881581529463188645878316219104314271871583811915181273651742913258658233732349161155636026946259488809716466689506205039243911975922220648001978752610638880588516852357010885937299893222817394449510451707591891131478180480835493378252219833593203911914469845375779614885375273678173794217226178767963627683585118478979015753302244634852579088851142916635518376073908496623202590670078964089698205653077694718638402310425618057906500367548847674725656028987822955206987880377191204952936473801015344230822461645346809318482226736382695616159780814006376923357879815974496832304628021823636636098813248643509884269285118231460926117504132495217212345978375323039890960120370351697128490403497238239884734610980553806608413833420757906440141382727286299830725801759350103874743335921634568631098634930293155609301084393327636115640058036333887471656405464467466742522347229110206983534271748798836919436423581208273786238603528873810615869228663801967816422011642763891852732182999545333890281855451686931919202804151861233169155094293872918328570320601848843936259034057159819697289380862108756097940333482188986221659155858115205233267568989529443075921587950756268775208905035970770726825610554701171194630764636600057244894976910744516524144586218581648442595519720107012909749808330513202206803217278723477447455487575957240117609649057935268502136535545261711933334025562507606410660065713307401440834731172705733048117293513367681111990666456089708353053920752425904685048511770091989999942749671111259150503361634736204978612115055620273670377231127528877743462166998241702070097862577134236114226982827004296868043649803114760309146470831457196829551138324584062319018438956462089322790254102580338017548790717099208053454292324376787499818623169937350914410512953407210305189319614923404327905172373443040035771594486574095465599301541089539441184492997071849611689564170226099426883592015262424335491913829164171480513440757063657910381117481207376854733532151303011776925468594721866096527122173367409502194424539612243181105425616384622980424306640465907629254289973339331356832724467715290898370612188940083333745004374804575279057717771698698320445162633412677727122221997196889809194926666548578657740812423427957471378622994150680434658603802273369494421694596933011953474861637592004845127681857352893274027647861075018553218914168985678404721282072357533324006358731679054429287292252517913512367601702988554852454075078651784087615493487741440543302042968609398138954119942751476226805907853268786511160890220322492919980389745640905872414902118200677784433525328630717162774219532370012696408385857080800623726238743831734038608438430987507695623678907844106839792341263005212758222556323110489604956407661479812428542095882095590541209260353858278862047965234833833632595231529448651471317530832411281216165182878829533467502089534673174295716567629652858258632289914624152764229790143664621331596751498153233083817067919625467145259945603431674260053057358860256054662838568401190707808884100992148251656157537670543565537645026467836913929141840806576957153413348151095607201550441847962272150306422988522754391424819172810649860374670581682819152895964910153753796103790078890370414073640981384090204146806059960173099672178343343638339807428335199434719164445698847879808928468652050382066425465142756608363080410843154331867283778698782344459894949880999614349903955567368318826435734948542825378321794625231473604085266880177433081309319566800371405296770080911278844188944688138785751473558964887910547316051358331751069805268838979724805005499133757998686836321794365070514503139797473252512370129911485551613832806352985383844367372262853685907464156816928412554826586728493389816190188531848564422254214299314679597826666582041103769580514087255259395004446248242885366877846544727094953839406452424132733428143615014784664287035801139705492514590287344916830251763207037857080003221759518792812954167164962971806197169263547180785013161248034037168880417093224414132854376827885307544169970789420882569049992185769268930771707808618556711808442204329552299139324212998816502276684760890111152010258896903786766796225376095942782926573267393176501701283444665916983435722838390945925972362148502425573745905131328089180373059808380284974938983157478384083363649439803239000340822103392556172063652844078919448151584588572640014339244093716407609750860084833303007210275323258579383441698321843068331228827804526887359924071375609260372194067744403443090340164565866826447023438802823831947957382127563429407796076867528025845227308547130386598074256694437946583673813970027258533185092840900277181823764939097620461573064089233001116629129212054090674612135511319853746608521241336848694874027839084987522619007728046743332708751784207176604904836861288604190991704204926872261929718874125860188758331742282014664495445538074995731953154633769145152391698110464702241619102988210075141437310327024760826737154780471551240358610611424499805236098575094321903799063522728324545912342320816028658378059495918387545623075561300690160748180690936628512720710016856922505232941376891930799500322723079835327887777633418649366656364302367960683311244447559433385017351670891921736749574351042083659918850093182909918439780715910073652580572137726824043597333682851615635734759589613255378547766828012833571735874104200327842256329455723617068303806278767695417542874504417185578959126019586355211655384626191073711331381279267389635561194062090937018332499294498894151694711298848290480000132138081633706249639408970512941133778455884596949545581471248391195828235890080002017718204458503464307268703275751715529346495262913780442522683667027344357692340238453938252940298775886377521230248261297217169600378818665512627496163324931566980504022883465655632975883847016246001203553687593667075827787792471394953183247307182109608785991310784886184794060017773460442259353501684093378443172951455394525882348287931133744216345803322986113268099278290456793724594705821780812414798800716276449972197968633680926105010055722863049349752973392844331753580508606619321202785423314971281339097771760180055259326450405558424649356897664819734515061706627129031112082707024867768798336637481465844846510422181617278703655354011535637189726617630827839507504240785653813558190696487266970841628445055705719181110250519564977124583369304920276385067933782391431670660967728995185908890710648608244669295619847513284204759678350242492996672148453078692893883329079002177285489754142931489895261148490088817298780947999096753092135289926938853688844470555087413659742280175092870888705840764939294115836498977253512586321479449008361637257887296109343336122700931002827908253718379607993468787335127547307352625723742111095954724726428986298486897395673208508354109967866301955225857939735088484147164096101458571653663244532602308904419501685727432961684874003007878192275059371099170904990628516688751434163713841295944272672438033772307535737667809662696815532034023240341686715724949372781404497223939812468656055698035204444251123579955079765639137274364378837534095448666265921394288350887608043407755635381808374331074275391872193799455800685875824363456280271688005305177936406410044810908745435537837515125070386266622102321603345558089828328680131296805939719887421955001183500330906547881142059009489790589506413114840197403896326616838839005161041708285812005438524178185902473954100766578560705096047528206857791766521626460623853614977530569402504728042134353240325263602749596255191366418434113293378490127822636370763359977405252140336843339803227693292802716020154710320994584350022151445192050222806205731728490398720684419907481743254698139789515077476701922070827441153435882589802887599713040999977314097801013734024987991355053455563740030199205313912908986437837833577796437966783587058542032239393865270112535786841193065034244826208952854510035071814489083507341225335090187546893358366836517813612221218952241417732978018086792304385676119028073853938742527820543241479391906286279635622126505111399099103598463473369707060206033310084224989519066950889935963817281485469036541725345749641328603712391357675631123247002888300630971255649202223452371022978386350265761457744515252452618649856451463786039831751629219202298701383519993808125840171994835947263932511638704122873379757927099390767214351637757736546095395147840060538246861902659791258970867186778434579125290153731175010118974395992289731975333138658238688101048569851124222795350293728938691561091100983908503689118380799438185794653539935578709114058563339788514371286909390092590566452303135147068780858583928430451215947858065122374683321012549056487896669682320953398632224566383233598855505840071604757746851058471259205684976428021432629037436277157955059523647819812900603824235570762957028330304460340809024513428012007944011376537209805892357437902196389966857252642895194924800427822979441305582939985975080723462236520680235436911231142812970143169777141629025744447588296510913567544455244154822678884155414455325282956106176228697882771774866703782972929428542198418742717824729673796339640987553022742281894901250741659590139937724267153077108227416614654011301380037610024066062856090419410971461483565171388451641633626334971264276696255701648790524397268936582332369396524722857408677517744569243829587537043952653757524479095233613335652186215216207476569416630517088903771903598711092548471242205865708607289245226013903769075465105824219737819720701646891479295642603366139660388022297742140524233731467550767933153279810685785020155048046807365877581776473012242252790613802501126502215839805086107731141587051259189792247553167063428596227892692174442172119335225791651022170747883524916636039148371812794270365878795837467266776758882839991858761614987424648518068120077372465330511955461835372532400641816530745467461033554268125192772296486412243415026379280579988738792947701155775688944743514656654188180643190645378528846352251221279114629708475081434095023501194115077472027470453209412714395082513129711919274082026293326161446464689679216386264531367132756586424335833453948466443531880130633360762852284249493271924164651067289422325219283980059632693361944320503842619986499439369049039682281073004009334057408424148035159816379740057392630385996180685692214471670324484462645124648942193812135174779797209940736667136178837136754539402916215784405771392698621629311918921160972571188359402303021694721390831380834696511753246869002885891152185141178681205447333569610696945938217245069875020821779039153956010585519330947001327711975831815512703678073797879088251154759499894229687026068012803754292315691595436456714934973590933238893445693756304636148230856609685778538819684158816685855087445961981674519866935539409363530364579357293077808755679324787127260942179809610078154517186773516793105324641877780501241564646788963225639134833532902479592142889262741456713411482034639768840615309282897426088240107169607853473314440528513384326542792121395533575197691271071293228904305493876852827780460414232090689919923847247316412366769089720642407567192697249601935822448588433976591748539807287751241825438823218134516528030780829846360473618117273492422416146893010449818302248292663862307497125704964787009659246152245808581001382758416263191764879935644271719425594020296620118462071139008500500785954939566576474171592914557238253731287106012997691363113592249281036956201570973031078133857124422001504973136180848593617597475472686457240386908045125037297692293697794380448017381050342963757904029607099916320262807065707585454945314772559676667678915545754225094621668125398249368752719962340444596234312771943301047349650784156134735498922379772468879010960458042837891719250353885318871456715548168017631508337896798877722838112749910311420932013229299932699644521340745219987115642785268520404049778110931905726831654093214270961312315037767368440317468081017246177792097103488634209651438298412122152182224150883069618485201243865109595168593297582608329413642027871943997055083545832343316230816446462500240754114987898911570418987545085692189105776979904902735101256003030732757206861008724614329693562240346322515152134572768971939678280427120234194770887186035681305408355580629222487248642530306535367886801904520674048158326218822647345609005230452290816813105262136712383710474672450313543654531237563484722044156686313278001283477259653351182713565414680594451443054986559853415941976363357495145838053793857641098337356008488464628062657885328911304649942256201029179507289964785594272043153410453819856420267352317877421170341061754652997413002016997407641938880229290287692923143713990644641104501906094344678416826915889299450765389188860100726264916103765408740068080032576982768194070627963542862980036694777678565723299773741368420933132482649959632787065858470505440332134487369881494045518420643097691004110329962183512615638585266572344518316083626037414984148299311988052696776344076604970638037995034776749356841810915933074249861567732558707679083747513013403108544680259713929788682616195796056096809386107897829359466528151936527697090136493130373950260525198248681791898818607876131552199557776405928239760850621737478983192254505129190051193202131539983353354495789647234585643828384547962380217571314413912717256866985949198265786838988743136931389470887903170483143005659029823236872816420134216645095062334039725001436073984897516293579472558615310658051501639799422467593034995733110774043981127104948941846888536277404787233196425490137726168350422797860220044106159049285342895921278878548166244915248277067801525207405069955838620901196543045990041203704204733232912301267967407946760790361005171084009498394045429448809514788987145722688340114886235533200343200113244820744286171481898678769496335913212877113288038665163108500173902065858259053295081662247236299331731069854961570836720310781121990545316065198183334748479198272407258544986647692509168056388454210961512568237681784830173847669765499608266527342380549465387718727266227487523556646572826526258767343887895959984873626419984161434436772756209660559189928663810592520242645921690704140812732048576642763085739179321796121677523574934343180154760149953414124633886132361540446310596625825263780903550796452219840245040144564414510519729478538345511909331478015145616535978509358911080356622720293015743366426236098495416295875530478745986162292698837974048616660685237703057818903364284178583948742670408637418953238045308667574876878006759471507878812730020533096713721593470822558754205773918010876874866642077080048215498581998750390338533150536330046798497196446418838186581248259615484535760700933454227714663944405633277017719174547040958197902753977037096062535978203191871327684550317681686638360630314107436586310522886298286950755481553046208080958463474491981293917073977584508591168456130345613989663111627162414901417275960387895301410901191994055841017524635696523011643930481093750210377239381724530865888077797458203476430070134088479713323168904317951479186884322846977887844137785822144172625562798085099291682796489140417904130999230386755699542523829791687340389779210814601685498730791782845902391552743511157306961087383809960214941607382784735248512328952793838113703979906367927281470745407594844458495303357788882142750394868879435914632285797689217078559911815961855560334867800206397080810445877958790638780967717159009837333556367569336078009504496032757572777167438711133268412944669896797586928679840009373299117936169827680239575248068957550801312171688211091894231148414084335430552031465331393870933907540705044537073353879364079609387808524062041738982815698818509803022695425534542073226182287948908582074773156544338375840946850551890076991513766137381372843158120689893654200110663966898736503127606011285078670193814827982247274335960432698072063626855347006596905403493444984491172100999769414602253890007206849391531637565932403607709409973937631547222578117472494229477669060866558328738687439826045717780155649391646199329480417507498860846934561438135067336571829623126084436420232880914274100167322820311926286939558774653264271052523322107707848991494583023593199238892809921328302688788162775054552650521576926830766355227972097835847806217779581721314660553159839071436746700258382226924770885739583518826233031136124423259858952224855894598588855698445466548931185414694353709642960421773065669715019507333703124446612270882134416709482296151457274299935866069734360262617934496169183557168976239550374293259326340597104140261494382358300879381581672076891803516624242192227033593314264332440778897119755309500516557245628199295828811727509005667119060297352955678870345239138209843571686199878239080868404263658804520582772846286416719502437709453689482387666741568100212495882377851396318166587867254430487852525319187044902560488878041846692054714937902064248251656408095183635469992815158646270978545851371047999996204401117850264153131648376635676023428210171163344554680985915604202508854314238548350087947465566365230915504732377746109679433514055424138631014509376283366828067333284681145535892289137348441650662724995437210301385085266561082999294870747636893064821685727129618137286188262839292872114052371805477562461643927977471549186808053924594219676663812437436983513882967728111432654602159073009538283135172835606010097753882128528689008365085386089569227589241941534658778910042609879317557771597634609530994128131702217071547429827828056733758697465677707963125562197938280670958148718188085294028614278591941093318824686781436859332986166845156114942706649882091676846819201289374139942984621733724067573136126301425966098653839662071917959067066742121817793769910135688527958473757218943467850947343392189723140048200137945628942978230318675048375258699738555051191524469372850244625083449651919805913179214873633628725101752270944444229527546564286155793495398280679792690711100581156974197492495928458581544216535319186761512169987048373816321392435093064710133371745411571724538286115608274249432813087878541433862189258278732303447955604600648295454874844841208760128418749357937615472350546985465722367038876577233519353125219835986222856246696850596469136813134148653562616129068718817747239798139284069087750854603981795826300124375624020900612210859621813799181526725798070830903204204822863506891183779716438592722127069282917156342111031644947531508114270507568721085109027620640472253888416859527842203299249986960426887304784094611382249917967069793630336157881850200354817795982024123129323155376418026049340740386313247027599909875789026419505458592905121766548734227929126856109256381977213847951287597497652367423344262592288445893635363140635314979634585409459469069941319739221274772045922577521550813380772856217161784322541739412583206032458723372909640041254684499248367621219203946070232552821426903729199196486884223954474510237834671897962585380897684846245134522557425087278081277647965678903829297156412414542758362640571062072056228151602397253761571307203670557943883072006860036017060442639887248020121931911528194692454914556123392383384776746131784485734232635960336896762207336440564638032089640882253171800324195865109414295944179694174848843033789455431417498535143778374539106934700943058446749838931062977352480276828341240749954180975741337766497820265146966200357242251884542312810684098530993589616785071196402793959181856212299079826289683113975959599656602921965809998590794560495103334053847602498833977419699713925353627901246248289808137431136002226161767103626629970476091718866631464213071878027691207867974007244829227643059688087858466798625688480201354013819877530693804400715579161701409344883332997252605496141356310737135831016113830250900248331751876137283667528595390478634763399762102980154440651841790991234870147728550153672014331526143855392586346370055829636572073082269168607268666000837896668570822383590508824083288576367979772321841910899003903333754729986528205257010126825843799748116300964408238506083971183335579552956309698188574904175132108804786558962445868142467226716518428179716672707145542692616673821312684596992440905673460337179938663222201907266763555102200453507196850970758817465729668229668952814818692479802356803323569895198676441725025645163683206747799175407154457493218338888905648607990981538023972719637978080395522044138928085505978200714505470602767283230376900541793047481846002275239605646639826026861492495770148698520273729384483243730312163590894679691028220801203090056746187113266769711794270113135552482501128779573805015690174208120815159595105788768938588540620179356720936326424557099543372944256535439251708347784908410081949398613151782963475541387186268537010435029843296401245200070483071699552990936061445374656441926038347872646949363179847911978281721235259069769144973601154704653431021968303218286630561120712753602890923948624630590402061280481439719106268171613529147283662300926247087998489500632612448179689495649945126199680290959167829370959930593198069120022994164582473331620747813919523595906760321430425311539303290835277651241986987681975594555672937984871561965831567261082165682637128260273842984168629355726168036629405456566745492831809711152806097451119302891094266893314862722020185327670834724022438909708398916436500861959688720074418473268564369041712489255922971414826778289971681475781151113185523320002669841091638600094594136924627336269822343497422960897944479708088288068823748590851658147032993935864704397018599413521292998384631203520046399166712317094200384359530841188216235441490546131051711373971941371032820736683201254652298950815057980086557980475098863913562379114405385589513093225772440140690734717698107156197077212812503719210667165188571129718819246391673989965584767405311532188965544319017234366173841155797762143309674995922267033691067025991602139116689967017404955698042761445863524543560765174073678254486727285740890759516678780624464672244734124195214878572615219279079673238447976766147176846010564849079248276828794677779425209793775673210787741699068632817462697113006929131075297948779018816575946664204908420745370911191347524489791293238011640246908144135816759191162707055460577456420184476821825372914261602884144771182689031677781039374142368538344448556265731638833486128014697437866726462199945899120660769842111345871999453102310456175724627098371314097128324491440133002758152054128604638406942125443073676541467852225776896801016114518027753825096132765991895329152067170091608680929495162593818999329526717255995265466874063780437573503447070970826516402763425520751064133021274381027874378229288260862778239891916456172887495636550304699560453003189800591937241393612839047742453138302899570729407862187280279111362005511381945219151272217743252038327953839748805947093701418135248835186748733651729559286625086312943558448697458063493812448016186493054628623512889233016129678768997955713866799975445007884511579415671251377803827692460485502636801901562598788420918969146549203851851877090012043464298680493279266924550362086532106543343181727576069074171235053776838408460036557096676351053299974537994177944423803848401721959280462880679441921635734628713823835103925177520195893812558495969636612213753473191372038757091099168756734704106241041578934366782729751879952979700379527187788438147781530920745455514277545680211228408074157114504179525276516358025584393958773224786311430878423148839296712471325208330284887404509487479366190575076997522711461814136870546345026621053661502948900515990868364086299815796537746546971820985313050490303929865318717109364643115428872219148427289621705038432150135325677583559238782581459008246029669984762727905899652248916498810430669375563512428986394190723310078695877275939539659234247315711487975506194662811127694085158169762114461989692505491748327468171215381776716518236972666242388502075600780539498256247904853726371072938246475835498236737975159654072841961030987377130165169625838420667212175442326569261632160199572128510670587020664108540840387224516195190656322892822963815122027416688561428841282124808663619315807924189317885677796743858472946891979617070884484387821973259710758933891842945130620661498100771380245817583893660890770161455770859715917796254340278713490789776976969140169560587892186249186652466774558129600274353447501844955291461560436647791173729461931245469298960817000570114582482698501972288204452565879334943473844560167744751709611811752208163671088387975433149441931030869727606685866659637618392835799302344433241811581612432911478627170792217768982439118106142113333586146551891881574914190366345580106765340945137546542776267336579720659128428573609938194206408900667453273695823448247481801866921478077670980006182232505289968751566405253553869761550715990371104762967640540354608674367695588497778025060176430298960981908135637085757445523060261792062758560128279192815965628501802744640471761307555172675088052195988557405312610953501773119390149128863758249034395136954779627694216869430278223236852223136213145489778786433670914817183508959910114856275328750274116563787825423798152163946282891083879138982424671592143345296274092394360616901545284948531278006387664483250270176549544772491502272990896933624876825603926959470182310823283639746337286177225612779528486940677967130897327602532537839630309935714337512478326258365435561804304267309883699922419400854113699466188339191046045603511617079992283225615927232220521170442586623776214729592694314770675411972390791598138813435129740268483079691711074017541570477612114985454416338151877200305012247566218252825146672718537551116404969559665777276390722080049269261984697848263485649151273921411067103680018370613874244369457848757716906157026232566909503905114551818332155909500804495168077150858930768639498974626327790664842557642891213571902818155826357895674186708283559492784055807144643082223312436469913614996832570494283509983989629994211772358571301839250465338622047287809001804670639370631050864371833868623762297455852023940530081120980255587436935128410375821119623071182586152420686280464981625952588085694476613608022517220804717041413466952428525619110532725071740430048185136452904885722959488915354676724638152512455463923363619095719588734402267670846002967927554792548717615807782460239790220745591885943425387647241538317603916824363141264320613156802432168329214073081876973190014374198465428538592112509762327142176656040450466593554954267317170424835411794690709927578842420384865542173065709428814962474128192699948473997667185624342651039166627499586922690386022286048682253786978463794333122946521169305399419382677410913249762002553678170938869164862357923473788912509325776433540547320337659914329166704995826502965571994690599687625285017962283243183487683976876370768750681926915730708232949873034959105047393846755501911354359879075862561236793767391010356774777432503601807303429438046096008547406871013495279780566183587580969192138698149854246320010984967700659962685853007542869506156544674269332636848484112931327774796896043844471468950165481302255497857329997406690288273098257474341081886739649356131517712658337892839355143482695575855395524949328276836181923205727931855519701755037610941780146087921857605011729189738236543411395258126429691085272630109075341587545703991835412217577763303658939459903253328415181289953984292518937173280068942953743131461917764048899947733504730594225550630567165375767505895601012926727001352974369567732242754533011307205689786439514406728840723225121185626722550423959371245376314922564570363155576031759268145582270047930979049176428478382865831898460902296114444244292102199271521824122182354223947526543193641164362040438609868311924860358007894783950000984271380713546909323705494247648479451665898296794207480399554430916139140404899019568555793661157103287012645003911497378247531489888147358969545548517673201747085707807565879770353388797710707591639290263519995011470716321100772561711721537237436104471425748550249212904321043102170910245814046723071500427242000134681261189125129381009952606080061555029222757937765651280196308464303894722671361179598882653394453417902118793507638981810237874969426664214960645555482288987631738513930078960664169343768523439418436267918298219334769840851069903629596731606547597902897230786014479399674632659285889381943238921610988881584403446063594845722781110657418603307963926346732335667713463658452381563171421920554097865229949781047789382651335772380221627463756754899759459576147097641294235888815371892239683801212448840436592726218792895887702979145523481881232408014611598172471191120765301411759792620526740939755841651617660774994726165060223051245274726739168437738339077342060822286838876080538816115472853993064196807077963346222349717212397346255733618008083199185598471384828253994243848457042676163420405169128210485565275651136883151445040391555955690197544039945900045321384741741007295561181234443803224365373670634158181997161267313946167793261047763045140081823777402205418722559395784096311771968461972278960121042571910040452679876714765343992874967142215879749635123468707251408484379067975618536440337948949980137399892996031255713540126935573748385582601191512686945101289120092629222429030418206482579783843770743534454681451326305052001357227121445409368565133942390855888750479819174651323003247547255350558266749094186253142658457225777372337207813613372036389290179931322408446771298487033293145248585202199195233941093946515104835702863734495147101502971541961156956136538300449618927275422297570145283319257849654245764965963405017383566960139250526688830412684089295169600119156729876688592491144302949141849338218332935835515590322173081227716977681719799964713914430613432951853479355808020549318078499942632616556234110475902728083906230562636407593968392652512000348597661776030747112482654893025022639698669318419845073976077215383053396586961861361296384746829947172935500697698707709978969498548331796703097660188297330919888364260662626274153695205081121306292240894933681685218820723172920989509120031042919740358759617438577078405977493544782901932402445952844782553354196757284296693710897333205894740272193320326013734891811178757751690668838684233055787167388657622927800170473984687878522305816039712233177864432925292625411603742337237126781208422218428836467573111737163761871242053151656602193972649015132049335932553091687695824890360330666413810251799709275785096921748527914190938317961993858757161395444810322655692748665111581868434884624938221046975287853620397925452783659106316349573848842416958304178775613486947715903489222799323101515320025297039591319933986311747516613961544333618384283607538230887927257021747592028208069443297659071157614025748449367459227751933255490880129176152099425725341048168493975295448846171978567990597961554973216615730778925232178965884720218147822121113359841419660122064807219270349287114533132706596008115343069806042182808325150486286593944545271908475397316823275743770461419391794613802906108451636156626621217674201795175360447700189047712259938916982472828339144574890525558050522250037824757241349125474213634662005101299667530353683489553605820998070354014293822090355563036184281810346069093570299509331392619961052403400042924694207606257787131124079902302624483147179559784096296614622738853813304350402179619285688748783995328819047708629383780429116359321660294082781331330541719728982127034136727001821077172184353400275002732550216856160106293452491716299918390009459022659247535962598287425550899010685297255062937163197048416240440817097116778809683916041019484736088224251857839319684611604916744697111494670495651611735362410608577283917662138003464474664340240754427441554333045940183634549497677180221941099045675763895485958942048789385064526791502358809863006980678700645141575213307815562323815460525336777805162078455964918072648794933195938272171976641737629102183928848477585183067602090868326705209734144552004745638126609894845284230001002570468963551889946778596022116738694701776293487536093984599567760191264823141621710840290819054943613759871712252043745746789077308130831316687158526250555208132654765636263796749616509897220079346562652758335715199697499577671714085367419546079585689010154973061618988137265666327788385024336763145604013468623011208900280113331273253505032459149798878106557493891582685194469047802003553766119014395844467222118286659430331818012438975878115286859323396602204797005469509806286174833283437973619658042770712543451994313389065719055366361009415982851238763981940683282316566525470562840870186605347031132502260066352747573328819043359970355027882736787517216429368077785830617012142751480534776315105686584152006415920185393768563458487284388657697051661580352427965982779082501698092860283066267210967418577267977054653535745565469437102418187737843707094052050603736415466902569856764943846771451365031379000871113146370223443120168135292747510221312087596473703000539679332735020924292473336596980722911656585856129968425197177517488933759489560930852834599264622195382029923846461079809188957393004990252535202172150528332348640115314973757340778156932855401914725259040998838342817228344146015983153994667633078603592579296366201739268406681021028695449753035614683605977795564552633440341971221270307864010927613823732284345783817046205475712927767314694312379659905168052085700573061870452682022360069248408286798044808512909276286304208063001464546018207160955735412237529354715454609553038149286373852445883833147205236662227888258538211118261155339823078246673195296850849333867872400912632686583517321754165167372575241707764457101320851283110206118189629730468401408130219459601664811053042524930335805536375965878114139931961287705272584576139708730606668449666717299691591421641563629662567458696515281996910295015274951194686663685714210332001953675876913228538141966749100648789419933779918078534480121654756514477401313966166349743050381007513604679623010735438509881613986197105742112452377310212653163477581826880709429957863092772834636062956957003440862333725926348977615848652268089789637428505590232054630827348385908302300253250004432636891815289200735205329351784507886519253279097381513667314061188023589199400896454924967322048538122705190833699330467196046790496735915176415578014091767614050256140217714778318578994756281189494763173407176160947824079749361978262551251264471769586202841547374413880858331470114987099391583286216919562820912322274859387737977263611493568342876454426337338744253478000991044828501691960415193574172723617984321664179953986105284898038316588540736627853045228441814786196701439193686316900203008467324969684527962837186658779804367239442021711448803083309901236844550973764368050079194947024785547296203794117189560896899866172238961128776974927648286195644361131674916926101892415487764174973192708520116056692341897218290702864160041271791273729456935971139957921078298543466200035058593046872544924084344666193188944973418821718602757585200575328231659323899080473993708229909142586003634370661770034483532567949705307735221617281269800208978874627960386335133649043890041238590450319627345042399624625074836374922055979573997420656930685231715160118030959202963515276318064795180196108052878299602569697795386571737572992505305892297349638508140651381616385726228650266541982637216441144039478571742480161684336011815102107411145794686985445686509333983543463958400069345602330644415314679709824976513447389541942540982039928068595302226420769901325898353339826601745566757345107378558937320181817401987968283943141190792558042748621510652471403345708618262736442416572227617373975851310984666568812653670674059722213786579867955515593748205465244774494565839315828825819743346885610871600960142209541785333052182125462931483610014740516485259056584404507951409795518728923398394981422135165969043143625542873215409658263857132532551174802666048434624342133597814619287539234053058934672373649312163679101691506259089271433361043432425545408279008306648407778374171381108124275295493612896042069087078469478201076491903841109671023893537434279954057753950744927402237678722509899107995916124330204607040699721889955448821477207584672704786367303529937051726766090237727247948327008723181220196805612889395800146110866104598089910543178800557999744604888346962024834575837660755204379187214941133626872852268197998730301486373591137650352224569202923529229011924718997675467959319380415701526247326316690266607764685455764750625991597739613687391440137142882337336065455903531567063289138105863753694222987215680221423000677181747133083116577555712856622882099331971455126975657712255311125276932852286569582631365905662743058907680531073727931943432993498011280013300533301259437497055467101021431419384727316344714516918966133199772404489765873918546458572867179083660332976142760202660168707515664741573707414051706648407314046406410932623983406885180391323555616783322089005785318127621362375776846765404055125643896842081219915733101184565392278949228019347488153397622755787674626646813996266608498451127360515401344631022277740314644052202812419624342474365357995477553417400777326002046785748493948679584339287121331509369043388338679861914345326129671436987798261645178614106734004755899947867746266625196000182195205508244097684704851960015739591436825551044049925166461780828798845067340746736568724198034172000427639114583177204572798898899075354519831179181755512706812746713336078498615511860033688509745395354896226000785182772492237289212368907189915605604364177207213441970945302848115676276539243732591944679510566150844713017885109101447316016195813725975295771202325587296446916013813954022434947950989153428070808320049536262069255196493527535993811840089245071809794447711595455176732685035778297487637059225457686938084650209990286797930815640573305601103850386588244653844730886844593873161243474598756532935230221428738947272163662398727872119189087381053806919274658659774318713828703829881313383205206354338546339846484155625747435663193152769793840175343355683444434406991475214580280843980059754078157493047278681012685611973910527932103246213436248574369258790660903044333140547339470303699148706126286004428284410024213020470643421372847942091404878335502699349351785050577484460860582141417754430934917516359911316591106884476644019311709857415873311315416066214365995141754628161257109617040843572915771903196831836917159444419890421158327377854105947852870118080714121876345337347927636708478189705953893262906311764818003405939242326074155598002127801723986008001499431285153252605354851716037698395965347355986265983677585552141516982401451174036292607351718338089674239183787952335421699078232481714347229140843426638538539159871171740488165499950255451290494294118241999237967878549491573773798600533321049358034582595099288149096636108358715765873619410395650405404419901003252858189607187977436080112814394284689348131219136565880321760384447464222777890210831258687038966032682627683099810810351320150760213174068411385613060763717971801910884984928479414499538593381274459340446749912187620905485658453929675453848503825564776324430039966287667247741490673699495670971202461856805956049032502152357289595535887006640357073538917145831488209251532322603885542210578950692917185479891849719615532134322097247575939121025320451645919785548675257267905068014611689133373117464734689766363032673520117604039597776189244792036780204286722963340486668642657102962026890065067118029164484549707806249826106791564346867301078808869263772824953003286734613150207261044654614926292620782051448143000010318354199019381424629410371101979419174871149062172714463816302264271503981365737111825802995720139562522128651306929668249008982990897920904147225434515801135787905042096417602986192579471812764598104098877552756491259867922106969225803152753065463248891122835377080098694545705864185776624420730626299647157447864901668210127104941178136806047225894651868734727849410202227068032499104816534939159810200568882706817643216050821175291774626357442412085659328470597878853021055647732940960128479074511046405259706499370860782687853600399422669805194923445086602262291126701187532393082700345584341256441364623124803938739397639907329875437516286997026335552604354261572552549684676136862476033276010849084433053323382982584014925476420059901867004545893298868901623625572633670773207114101892785619073875601620850635673020821368264321271064266276002724779117557196862058275493941692060553701214971352347829502631265529079846317533220923974483081683362507228597904237200983215889413377443059385101525587305680300757650447296640520377118646650064195460717165061333190164311579161058011355249276815972456358420138630498298770684785375693607775091751711692578917628628528430870698180367357221664502865542405903129439679191431616831071312659291071670913992661315833002422061774205564845105853471907395995023261866172303133369663429564455813688542444529254513438885475573305264662048836855173295224247123003670282354472771579523469341684829128119405521294747011956564801453237582044137548301961588870272659686985998746730840380689209090543134755596119980175411805269256861767650221853749184656768415355832439928391181483820356605673337103499901177032772131792216810642490284927060456518357945946770511511206478203721229654748908590119525598270122834620444726772523222278843577304249807361821011230886209905594067120112593430721435544082495235777490746202959595497457070507791000956462127236841622392067736551700280304820731984216043789494688934745062200853015494472991198879868664001567703300082253892885991630872203235673947160924085330891295380591832186153899293926979747465551722856406704337496139505406875664235154864371312203507615249617046510649361928754595854888627756455816763246854482534213267336423595971904507539600195778356606586293618672318443411331441450474065655210824957308644731981117410446893401332238237236287814277682257407444425326509432571401301001649041308856143152764990642269518425066595947432210883071166007524262120120806562091837249147512656603101114652326109788334800502649476927240799765291356607720122417950715939520052826094603732185554324636353203220622085709846397849105005441443482061786527703818625124199510033205078906491424899335465169916477739204145586768183478100099636030927257107223038272763009742847786022886597015261511750362350906879530588925239710431650327185725618408392724141917889159525362958504415499516660191824042950329789096417422363935134506614285675016675844977101445028008159142172935095621819764126693157857243889162880228158371875459432421011989817447488633030859007043364918236355001523148736365757200726153973845304306128205109231642155416138542406465500083529473430735707693940532240273415333363172158704723428843467092203552758759639612860182997994691990411896040561484858004229730088872357484466982242894456041111523976495812130658280607262175993924241485338707178924322605958919881941585627559635495492357303616074504694764864505495104631035628040324236247268679462604571074068011173737909918095646160569030733042701314775591520144562142866842543657885417629870373830877392914296560420822034487927022250258060897625172824272262367416559218895559643486461955399905043575240603762425155682221982801438979110161586922791672907889735817034365646648533242704679349809387117261027570778277839552110836224571546634426264978620237123213934230449699815519215459177881455185182061496531887804010361609057993699220153580549440824092583021240379897641096147834978819006842839387879546513844829829805908185582650370302876968254429344025568438141446539183455742751859267372338884450801323320382207847244021402555158807026113559721260532097121355904526488670765049868008116770930378649683123157286964148356636050422557978612609596571746473487417526942559839159804208952333967631584466984000539220160363437623831381190628678219266685515609068370808982881949408453059424931604030893653022324812535178744335054837616490158704566791794601024998161632846998391221331792209489949748230219968582493472430559313218336035696855039755500033561504771193219435938123997466181564858325745439244723124685495074719974245671251910359399694953389915627810971067209899263028445497141151125835124386017646846902078152867273927244804484405648434154582441087005761483061918895496022336550635856220630535087909586424076540853429819611999367966501444329557187956964305320075240472890549047253439274413849609549874164216347848649926006393948807226615334219055841786150091634638918824057801553292486716011419791931385794595412723877304918994938859360382940468604215922563214371844225929996893556896489229638504303524995214160469146742138259730167486546817577026279920553460953515558826177451888518268011488815851751308676892662262185811048903224309277677471999961756477422247561365229897023166571370389328460729764388612114147308230902746458980955500261539114968160171342980265502134403531426740452175763706874438065987028229540614560790451992358593406266392779287248617364550892711662219156812903734754013719519009471177775464454413297936247100379906170197557806122608593723022114419392387231185550268463029108610775867721412452272956149518302075866064731268438853321347331621099919396400168469423192826806519726313153602536180441275958421756284738423963754673368229236046463859997104375160700309383699540828456975070845704086950659197560603854541207200107315065122709296548251380139265381959745417750480537621952598024443021501209797947831189667577076719839181334027913376093281304128327553774615339047110550333008082710106441503117218356393793240318960161545028040897794977572485441693659550488743130581733389937310249500238453209821183867388252815562246118483757964782284659813092884874495448512137665791851613746949461306405260048026449864142750310987297701042707545153778707416813857701914024566471755929563870938429268460723424413920938867160918564992268033102064970800923410988811077583350651770888716602614720522515943729435285441572153835960642900718236058251627832805948209206475318935933678527787858088476607167453865268024857374844759867181208424881344847921330213415811864454183893539986109335091916666236498835556606715697849508581799631037086845556504902875628334336244264801561359994027681240132945418238453997952664183442721330139369004663342827150305528978474708643977846554306037815095278629725270566911224629453816626292832860052723229718918006520260402959186348903867038214579175111175325030127961445118581839156720826123247569367047042988401558236272997544893054706654547023380300804302444832459404262903622975857358659934467775563187474430307355218606521910236389309601148052765829329310565051832313441259811881033751663682920821351369205322838851475474300915259732076550935334736686974820975908412522607932675046862615925843845407138822651341655361463861810305720764279589727456883249798840625414037899906280437934874003407217095926040597807711080678538918975650626372617818655238151376954901956184792662226062407101993003712402617239214307008026846317204679895815276396391090034458291145457458139398381466642272067382602144073653477511631239665706414256712636084543844544371114183772997057862997739560216843490281663902849418424244156894264463947405486785190322505671430223630805093881017229696591470860033446801701206893641914047538780707820265063153062062684572390552028875099485486041728930235277795955504148666792407699780077716139586117508692580446191637207266707660781665455927765441995758022650852960917174767056619347412062019647172186322292074967466298457059350210901215123291816779880504049596223077677404331434597880382007141024810191114980689622424083822544870487228747284931667080392802441491173209933330845046764900595662187982729843446026923975875819707085496419670173076305782103110757455962265016871814044075693342647071762146020435657541404075021638315091300657569076751149645012777104177008822997034962436164704870438152676365570957327096602449189306543791462437006840773638506432679696206930572092089307062994664731663115904025465960742471543617035706536618005140048919444221356509813313179618333780386816337713289676644234284397854711076287417739057504468885777607166053506897372856345732341047991695208924239066578704976788817485618334246855708384027735631735043456156312274679174474957348289992443598206997661816738358600951473119953999916404105157894194728524342483997497810660723720486986235125464680500691852052412274738274126882764346226329461279340867375101533702163444816396628155902132719534711281169330236592011660309468992965343561871923728856277560756892952567169841839298259631530378821389231383805385429047682302130528345887044247848876144902456169770279010615347347498742977580908674854078076874768741807147785159177215588983889737560504718472428329293427540102634942234573522702413050275313172259767091348054895423853756135076784074773189062612735177303636783781073484739345638022189737429540716690465836115446089339555704609585130613741074993867384927621558902034380017951325759189255695930207932308648225110776305388381667118286658444060046870641703266664273641293711256360869875833225345743709220208519985669776779783229496372474484686487515014802232222630690809183038285587636735798520223189227326253860421469922500750368110280698462034928251330679609271908949293351874119557755745836958718702298137969116414607227978113822361582290595238709196246378902136422872863060161937481938392486135268478499817172949533653688242809640246380538821037120798623379033569075365925782052146705252894613748289005171952177075075042166376043642424995698716149178625536760606303134878688014611823449302098325882332126494556435719153159740801401555908306784810524427238658942545435078168145122541004772161114650650228512095738315133843579114670175605190300099650586815894042926651393248298386132192938654933419629318937974440635607524281805826909895455144630802133158337933175589103933774345874953207872742871579844351597830794147298732762740803290363560168855732274804605706129242211794014304636070507894949320922904215043489224400363469309461368351091423400120862292180717923706064643100099702748668447685573803456017671426620620692475988183548474457162179846567420556540083163053937990665423318790062968329326358934583695165388304050564593215328398785432245278888412596988611747258698761843181373596379233510691914182994304416447064567610283056169860482645117158921425971350738618577077917996119457690859849261459493698594967057148677101727861006788415861962588899469694848486532642259083043255351042623578419166278089581979581248115440488326226155242876848109744783329522355544308666263005766621998535348330497826468752212434843906536472467596064275331355399444571865057868628655839928083624855152195016885609286599908443609537447904702162072359521829014202699369703216536418956295447011420600391173461748345514922807509545989800257938119354633855285841402533050557075214226818591841847988509128773971386057676148891619212106951686941843674237320689736644735879244153508233691502661277480870362295956718934839894425755527024221736164124184524990698310811318357576408066055319436528172192684833499628206173131904391645691183043551648819158067899188690356158965308715583533250473093312094233134767811796577107614401654757993864939443294497098215915183410961467790071207137465068955555258663706065588575655242189815935528865176109180025923151566342913686929678478816810239936742654158881707375624289103419513823611991519507386939533346090334468119792311533766945173019565667209033758223749667431943534684435849046936329239027662508938738784380850974946877568109183871878361494169311482700679400393512742674377868603419001453410255411243143006778195180057886806973078565452947340742985091574559742070372743180805087630152267793196422518799498066672632474069025390674296998766796652913758455723632802747830045731410695405524510673498747278150534703471928575383268208762377036785934039919601973886006758963876281503232610985945196724481551036312339517746821508300605734582673974196094944730589850286412262788856870707249254283757901918549075257077018631120014756895465918509463119545599898982640649400502777767472880681457121915190660844397653461023064291912236564169001388418978122302469726922308998892568336501621656865348755346716915816859329186726636475879845438364648591943694862439709672216215469165553574233894206516692831354563780128528783762426706625264604649585942702839871867723333440870734664386605622070446895524112140636368506055192566127452096393098005576298684283195553068535939339305114644826889069473481377329115185193939665997334354895395912110362255451381873508314974512071850860435535821045872213083184437864618111078072413179662664972733812759047888999411249696387016248700555528082845366590757155867453536674614040090590895623524645540812135379053429844331658728743268397490186616909232543995294918240773456642256933229923743041643774633258047589664489644621759970326109880499978535442877913587981575798720605646074565163122207843160905121061025572958951034319461141350567788188144179324876787737919920636880737472970430497174735930106820496168750392641447304049755001544681519832204705572095917550795443275177406136094313118227967978369433369495572963088620910334669956693396961370816876622907535604097206314793206074108054253851198725399541422797695042277067648390665760266895857345749900337335478689191881633294629568576491791202343875880156054906852852088836056986029242746852193798675485087648104569630501956485721884364407203082639570088560157725106063895506021398382581306192494833674837942361304608229478625566228595817457049963937957686391527577366615263257001110204304896176261665933005027814181636555815056921113439589262700933605872681899848356765067066662468120433361538797447984133481235050138178004817894531718757973218379666322366805426503557337099410455943282812163807001318993313764971136868087920137917639825472563616041546155660190103136831352700206538150953776503430387793366891526097547198959453969248061218217429859601966094328030621087481913482233574996573939131547414597576633981188003612469310189626881438499798001786529987669663117706028680313101446430668318231217873477441885781960932147132928240917363676448244967698661030001723980607020081992597388685958824207906378113066256153700785646592906128952524535341568783321314751122658192490724882558615796129511474807115407715034505756048447741236864890602158231771085207479995421446088801031342380335367782965671432523616273043205299214221514744529027018088303546959636360548020200016924951537205801044303800304089655979596980285400019196954175793896266151577490245376864257505910083460588783003427864231986466643607658918926095103092065064199158889973614542231654842857609758149930487706534816906024558953341324795515422172428624561000585683149001396728725319076504264961583350719600901597854806457450578695227374352089664245783244738333177957491181730473668603896331935970190857242156896173150521858383287667264521536657159843918033201897213314932496034083511634180402706415270616548192057244923160743835038570061554277935493535926085859234594277533097115994686380905788020258250299713046771318926449053861070962934228009188461759954164520536676178756091238939648665587767208971293204857520705556920774003661803428098485533740198637047877894418432739096073704011696843514167831670702791421180085962564894688478771987612809996238985678168906743414554064162238151916423855296407597966283120921577580889993847892500595886803654127864576355734012719072195861656984261432719861858100304549438520773849399003526832102377408481731702850542336863940598960919270552627222487900635987383184790901302306888083482720620191320149744665558645020835020227052394830476282475788684501835908290434713143232832784835029952694137941133137604364636246809172515748343337861969649866709994024438899402423159342539757127951174389838857671394561446769011018446492205322179354990365756826679342896622301386492487605528914671768619991859128189762644161308200455001567704733452577619961574053955253259977423204942572733477183689189605804648470570255658657044789777430108680681613599161095171087574362040271695276799183147422756431302926260386628950625946267247675395179683206948914022076026905621851214092487071806080392216810984995066919301937617372795603838822432613786608005489429754065261815472219171732749801559837670745610574552909058957768632426380703225879311354464954641371421349077080791644031516943168902818009491404528863290337702955407665782062704394278807724025944696607788358451300120082829036946442412665363685086006244964120881111623118508314037764453285933705713462257115294743534140448361450165435154896191255149018221262710606691363711086656070322501627618611372690054440179069009704372312474996374608900590607617730384338968993098614633472136833293451965495826911456370514566285487000384707173026157125807935245126516559617256998563530854903117775077293181533228782860004660630070182033453284515934662087425760492078171792190993264163175445394610573267560176207095312221631264841652936495717119244017874780347475066437033437352083215284944252874090559569074478765524584732555759191358640237901147556623147298435446930877911410625686798907612043158166372870220968638656789307434307460005898754008539102720161284952585112299384226769138820172298103971438936637962639508935610846500866460567262286189620717459084908074282538260345957386350641911646565934230679926992135504006933298522085906376215313710355929975742965986770624238361806903174842189484106969249606392195032102866814688215674938786739192366583703035756758916644972391724963586634543821161429706073003378885653538334140461383562436718885381172737009383934363499457314302720375109605164268620255709311737125163157739064922107402454917801387049059238526356730101273163193305954873129666787281803494130250789658435343425236265885926928679970402186635181073262491273187644575263614465791692837258464629395940757094396389334166606983944515511149174225055399692645833470061931727350620950304448732392058768837161726273067891259009524553632058742732162196430628934489427744366126149820989519577716075708657159470146186741577724165186863106727175545464543757471030911682335697963560360428849360781074896188789129816977098976271245279265911896153607526831229931181971001755430059536143483825254298701587570792453515874439606122826376392599142016001627368493125537191364034778352388287023393431853894198629436009751652875962135093262274251474228025729289752418246948243562452254591033231693401509545930614579234808805640870567289604413272619704814641590664526171039785728700545265266993619369253222819243749683381612722499634669145780557625684770326647631253862078386479326497987527531102774824964519586013313126656941540703194997714724035319077253247063669065397735634573868686096640824659603449182236814916686757087566981131326740521288360617631485550518724125714971126742555216950493979931845850452163979699779649204604516908947147036288955313499070096933632337838966196704599971299296642440215442865388379597409055227829215216104508409705559663632677037545060688742829705730920211240295197564920928394799807271551523331938499883808652103456572292487626715300647387368827366642334659615417201975053897425794488526025190934156739195011211831685624504818075909146850748742481000736684127502920977285874015875319656014869184137927841880208910826998475956434810913382096365298971542319314140881596946327257321199799900648507324551295785076900133541205252005249387325295070721321155834655550597750148430789886620163325678463750545946338640928562988933630599670658272097499965295925980419060865866456715106077262130179997015261694739015426941296651654083790906016351202263026436404397656386042731632098215886754316296157663597643335306797191564260596359821870433831235154022419677745835583921293575379544945836752281869188007230770427032469775630606677702090959344352351745027759683714977560873669283447012063395599217871538047379048090908738833611561537169627634758299554093557928170761388225173063174335448790182535771951681195535207184626941796758109052664369644852003842707806472397413688136150933495517146914924951951359360912342366728286300786469110833450564356512714971768749671275943194764987102901574076831837282058149880121435117501805214448685871736084216339937601460190579907903852990510151416205753277211395187101053666350457613365051878462219851335364532936622113953528593631313199722047104414746697622345755385235287038885161685909870696226619595656779935389948692067793368661151926477604193740374592691504985110428280753506494223928204806041730740089289315566027126786155635993933091223076288847931840669530899143655720317323136574164633872186790719092425011158179173848544789425515439514853916837476331645607622610021421898228615079261900449298450532932622599134317331332642158556745034119205572251390151737059054160890312766281811290404198928699936410990644626751059647386048118248706333783954661403203093041118222778215480165207515434119893764937326272483161859188201561157136324150158667620513328034114407312629398447878678934918410024180716236327871056931746352594988522319807208134574283817919535106629631047943477383036939373983145764634920087593777942786358259198508757932410487916920574684238854856894653864018781304758661858634013004135243025377314831541943415401748099911098803890273759157750227269180166938264876392124671173670043042007800656774327951318112344162009209887216981380744201081803500777217193518327482097630461717468082914648542949126873409730284479326722029521160529577817383347621427384280882306599099252927393143831243635204881941934331225086121025806016357900212051708116386558001683631384964635568571927506131724115764779097371162145155212320350866569442509651192138283657695944959913121222743196111574576870338207492584763716059642887571905152273730182600655652940569257834539397941805074153189351922842454600773017519630106158833533308486796861171996307941296639975822436854418223982816277151687802579615675803109323213307408695254528282352523749354173208690797692716204367868242410287644836341871676691590470023410296392176184506648124239149930082030918928584174708015269021828947207441771283620653332468553820949523093811685288965061511412065922430932502591965647801170652647862720138278097131854050810597150246408571275097041073860026667766786162709951859278888496948922818827400573830234655922600370582517956016315733825214510258664842640882871139545933756027889846900994139792277465637465441277841928859057646326931805057337034621853868183245353515992480682561053111071526083697528037472798857899738123747890798403563380244337157623734192051983184811201924927307405948486106253743960391029517778515604723671555953515475351370079604816269998217652535053506224778652057210412085946675335095365603146743704467767758025116327579169736721928345415492727170644708204799120321526229842524252762149542418138819125027079100786466962093415517828884035141052629120890440554820525139489753753555506439674339441154223179334446050088181644999946838297839752208770930437118127272310700794015106246502153320918070927985151413241836539160739637538372386903118126782593129177339070479281474280980977137112844761086813052447419423888824318698045343425072209433302279749793374445528877579226782322741582576335140965533067766772730704908859919834919979560419918384244658454121408307190612248075190880757605501827834947311828038826010993551643376165899689645055274494771118984429876927004386065013443976312841345778056681353423785541830438850293722707142811531234596750072182350316889245208449400136541973771744090854026981507836811269669614444565546263194110074309476237296738375987191985162507000183457853470413062359698660032546183588702083202735301016897600388901921045915613076965734782271584788970819978499154321224580743246127760808638155780243080106365726662870042681464793302202863736499068652263153466534723734663520551932409201656530056439371157484822932180153821012118321017292144203464619786320557030511645534637708627618346712430981630323123172904734278278989428684121316450116139987357254280817522082824101306818378191786363221928464825654799813234084682412476903918515564902124744059537866433238339638610421749811778190392970987609336657573824150062667268409712305456696392748736429986860143775977738505065813016729330126753766206756434085199019601952800338513917090945790372048207500824968006114401458844121712459368770313151553458458734323446303311564025108608921413956217051313019427834428000002361197373254017908680761069792357311147054982831708926718453667345897771601725411303874026706487832195103268564026717844685099547722888316962434474817075439864627320972761265646695743693488950012921653697349533229810812212479521618448606798741502833038604802433936401881849102177952331018612458680370248373645498482947997244962643230191952599759801502657841639027461128583946056264622471720251147322870503192933474368351739128977561240917429333472446775180845520920263897132369813206821202450571135700949027242157070972670098082337978872442064166277504289740103042107694854918988779034089599695478948388034184995446299200953824290734434784430780951419055290492631990075902612808687016680619950747603210556260869166347418470822008559888814625054226891953339776477000428441158640387189056971886852666409460555871449199714959141048429364211728212129509928307853309868012587388716406593991872636741349741997355434007022218704332204667008878407504776231262330495475440971815016539822337017383269803214877800823906859500611470361375564809735273102672928912876963458926070079241336468144889903010841711614588430385773558613093655920415275618918013044207860400525534415882756278447770547516120313571510550197213622476857248400085322396487096884349829781522455869293882953450879794134033949415573669363963969426540803569489418359287282237718717361231628645313513148480530105293695657953187783173701166053025664092770068608020304947824325697181355871132766711511194248896775015824143501422594309173716697175082376232518516619385063142617470951100653754237910669334770711640973357942824415863514702704528856426857609503014567960284956998331670069369230424349919539508234171954897357737001934458751825576285677105261885270103004423252321456321025473872024344454394502049407388057109658748924097194070672656509040058183590039655429957741579182370211691856779040665619082989519562104275872900711533489003328038489828564958892530497465932621038694434791836857745274763280295263476572425649952162788999689158446221014941437117728101364328405460114538602781174793133247942014794960667710439541103109227837465756573503168608734155955325582066821329771925622778465502308598377173307732621666171530619804644158668039743001828145428260807230970425033812703089520327907993638461378301690128933107151233280812567768789073229781254081864707604491678163899515096382981430986465895818861785130237188875494338897660300502950646858720100350312600024918218394396204466117017963994469236236398344367437378848776263547902352901331056155390850736475560506956529308501720649172227342549981928483032062953015625994017094005747145958876009396395230792969938873928423079542019074780977206069933851389754190304125416863594807450341478795635635555491293682252035774732747663649291323372948232678875127471955899899689357112752647105645723910882691321492684909120061511200847478114027240321804902059638545836691047084964221885231139281165033490483376809329531945855502406528284821906489473117822672755340378114727463081934170359047524589247937214748531521213793511338735321566833097000381865657460730348506658318363446986563602349974644470641661357955695087841698649310521592681943481949801299160255333852103709684631452935393347143467442173572016585535293105090222689812292142099916595264718229193224910499529584393435580715674126202270478423634053973059733318036669031569603632356092000266648821422178688830190480381662060641850931471935020558079202890570170841415759682454968794450879109511779615328238931564823295508376715781131089752526327320756696372186886126148717439119037502987515016498822917107337625094150103657947785924435557875544295495765145278244628604163411365071092722578978610547034601968715889762933082559089241976706220646834382836731021346865752810674925857353238232251667152532844683475744384603710452900625148446692029091398131839173420704350860953115783351459539422351084639089085659865349652906923770254822645243675043615969965071159559437076409223780927193065615801530625255199883571732454373770861269738341357284829215550460097215466738859636862344578373208412779314700966472695232870951971274432887936194007742342815026991106640287422175025121443098674391172090003821974365265260933387443690179632142307073999597738120459209250364138890194489531819063109233421201459015882770715962207951032233510854586873639640158564481397092012798861970195437373067715866072389421959704410020252087531377660596153701797839978770745820665585149173291385167833829645727094397832632681010876865241996319798010880530396459384435863882712740121111550160807272054850326851653903523784985906557100003169470896513645124344846721216443503934226185200530551472004899773389979990629382248146128188827227133435950749727656110230162932640305220136814945010609240406165472160469975972632214355386773674331514432902516380790987355827442700245516038763914046000167433569095473136977130845918575000394318597200838599562904148660532542145624528353585490298489267974882602308775326111546805749251456234230712167958437673598677080099369360887311585893532250159203627390737516950754845427342630259244143442089977731620665029369079436617277332538051697490922583374832502862029354587476890009637289877812311443545497954560389529494046541883827854050306591736494916236430602849072048394700014035316631839323843944331543915650309861165190764319705865207445258422890678207196667452487464705228469850073537083068140078237344867861453398435990728187321969557711612155427146367174804027146465775963885439926540627959438768463711129612761697127086098689602357350638723788321646832010145037057282306842907432198006894263227316022383509512988056828762345376803301941042135409026852723098519264382080677490980242353275081163347953457979744732544748699846446861653084390654812690264919651387304079092000521382984243700754687970092381530459479899191422844198438549574715370097149460858745476926147227391054720552122220462929428826284935289890862198524184398921882992037200305571770763439901007466752176737249791632124798706867815398631340694382983775823682944318793049434248872634512635542940895444237599122720037887039452373131212072384078496602533252889477056114950441016105338724295080499380013097956166732657304563687821044190821694878214283992607418228158630576664061371118753713240988929547911425777125352798145748416579621137777691256173258202413997839694186806782809919533875432955391146016436375541904693549079716484640617862901888213110056603159240858702654988714104526578104556464519274191844108130273998773117635656215854650785093333184845619530888741778224112786829523593131851061748246637266733164531553982895124015354396301530425523117733283269302809222369431371853801286047646689277206114302691220726476703230964942756419778498157607810890792892926473997922495367793159036896874154973623692970119488519361746948305781131068858600890686473288390667953971076910753686497692396476831133814015833740183347655180821563405376096992707954102738191110640916580715958390041181531678257768178547716506251470116263634781815930268853263886903760222043511145176072177598532233767260986887199648847129192174995495300652327199315758767085552604241544362215919989942697273545166328931480187073127123068284805882130157109936621522684745416853615467165341949783003589824566339371427913487654891114427701959403277015942034983758582045796634576839212536079069795118950274108907241704313510317149342765991999779339708920976718565438616118938748166970222404307441095987905331316547410828350003359592445471586241637921333713681395449473788939629631001729191615689848562736847239226771279329018664309396705651163050407391073623963340757020389170065344014975062597405211949496911249571231620204130485592960432222363256045734562602721732731948759255814520323095667754613212724572591982852152627401352645769475023289729676778203874166211293685101802342954569623859110932339845917405148978328199447580760049346243704698760782088756797465597366979760350134225143214609606851582312387371165664857288985057648423671577631786892999363612290016995047031695393085929243201959925097195689758934982162192838329058390042098207305593215023455080898162497241161714125861008375173644573247672661562035684118970661189571761012923976069239110111936675646832842608254197249651595899508788906987857893512032355237202867718221905891342348321590133281648147025732157415986759243051555207414090889981415945812449069157495890902699957340751850897750673793086304011730257240243626100442074495482142004201677084314471228350859277630116050700445260871924473269471529101747011713344219120540605523284831432077745508201952068155389635859140932963879544826095704231252501297143321949886089502794120358047944146557666049608194430319115880204997093398705321457320455904675516925562617128430834718997933498467114953339747818366972308799252045328154460971629901435635505228315441850388570684209146668755781416040851110112752177637835351355901273080049628721577001980859495853862720804398671370581197434223813585539777996580196811505615504430921803627737574999745499617965182349389430859365498912553938830273530989019446296616982142667007065397347608929906426133361711974520567856496094399619835243193220035380764079617515646358284551761394040657939548764077240995636411492168927801819435913191180221308747219579389154479484381231480031967190762385419349313624100722183060578238034139332309617557552250518277243930025630293860535894427392948773198194727683147886745677158625495613935664853751024359425221419695997796555812289833438702962100031923511178665114645137975718656022093433344023507860476012409754463865710845399765712536227665139066918636663268583429849642297222490944411170077822436991306445120415477583596857756009611327535958116411369030158260996644473997517423687565330835401336534113931569726635299509449533093827548846550997541849352418161040276098101745825472181073264126764832462507754953222346511087204297620553063811812361348698447694955875276232525743487453854721504347343959719601136988994993313811946689022983765340103032131646237594913786124847844935685054162912185317486642058539068935127745283671256035651250269187134497616880021708848013645289139786001213708223925010999547137470811396368582299080479353122991799661665368984015216571153740241664214359607300603458465162200027664327134348981809092582806151971201899667254459529893175153040300937777910533651556614925874912498078124853964644767951338704379463534570687823111134604289142993870272739777374816777855775039337182916508203620593927499684404935500687619427995320398265562418287248964158969559259673306394515623815233972353744889812041873797914727591241520328200001392365595238340071238149890560315669235597083455292624017660587355321837731969297701377101098261418343857874200278762415190937717151479413702930504633744890453873532284787994800610842315438690595227514061548089971842533596591746887817894548823551841227605615421288412547009717713444958924542336028668655018436475888951996060416090014994130963969487200367619474924767919232993991726160338924776125563665318253908160624550865584870442776141079613468432957669753183869754555578557053757275414830770163442823711717732257431859688728488108057756771102974383861443439619307032096205055420688310533099854975558566913264524505315776891265895493100282637282559628932893552665579765715453309775208198316433803724701521735011040209472684056166932670607411998573669005188938570586123541436335060353708487467179984079085169686274082202751351739685601650032041000161284228588997513710199156330448369542488361798362531917928591547269949064528623025593229623612661670304899505620726540941770788918007854435925900349488122127926580753107242932281242108684306092837624089225759814393402090044585437605772201048815315669827635704705054231479250466190149783240020150133306157250717361557441090335905229912348913578080669584682577646679572319558131260501091746907914493924159917939678005318518127370049725079919008095898392221055961989561681736957902368931072711992845906423012015466923596319868160125937775895833073960750852490844446442356377187073491010389058824294823737741908957804915142164197307145786277556793662325432723093289341656505170464134685068500432042610890262639197494313369870591424849743957897358619395380476738628769321805671827860151357524157870282745081615645788765598299335249280140487452303297934565284259178225879311337283220703447293231705292615118955022782789658428727682309401747707323798736847942022595966418697087408848330613413942017281775476294158157711887235788065808916620486012447957866163472561987071484009761519804233657695060679793646973400011851732520639608025659936903994435349052385374525081854813865569653091911849981735123404332518126106992439919205978801397034120578732150286383160786512481096122957524116918870635862186563518711505365846022198961393898235694815333108220243637861521412252673350744227884265897245365591787000970233769821474792529972866954096969311443969389315862012434616497832000153727906706660989058000699078289759358262256669069057305454006558431343780213559596895677166504312535578358085597493666869239003575536807717030378714935322067973323901735614699762301696456813259257650542746112961861839866477845796717124021191937097868678851297274759655567530835487398235041501794167680285243425948255531110601236251798044587814641781872334495455571067301623441458757016022058434314873622226725759964498438493870369164247797088037964650317200574929568307899081366694571480402570108030637627619878431806918982373603432121923602542820019691590037174740171179719215257183013911674524081291462026159323910290115377481612632256782018152298962233404088436649981915125464736009575610909577875229015054579739523817581025896257225776185767062975849418904341436006441684569320712391144582591198332193357295983077043514558353862058518434008814782325196117711009512749560961344797930524135718176251160781752684379925922673859619373416226025247899238351287091501998180636232390880349946049628964754056354825370225910024059326397207336867044456554442902090821485360799900248282090488908194299393977776065025570519972473135796923976812154119243482236139655823560518098010170314912294472651992312096228127106623846269875345092967563457369667388243177515627134757430358410695836648551877099319760799865038962315394663790736005962817187814595481399328697392904555500887832399036509819182821768236243241364109641683076090074751531586584108065676836138404438319882313520107685519772517230530668184953957017647095432202286054443277965641586639930241385621355551947393297263838990330257487286741399222832228433621501279000706324969014939334876086230047945567868921434105699508833528416180448656787579081924467096941700031200091214199872831861155455806192806808100809916955100302518509661878889878134532456137710204092421568213413979083065108827935428350255431946758093535380888527638051496554006707149974892207486178700142494366460198409801578012367274854958367496674371262273622969707986961641297673991038416160114129635474856040545616928050604538686259544732624820822544556691127389924673808945550983978060697076237297847175886911267018705014043395012767820523643118430464365819067282529260409081655038418489227898430246051538102809073289154123261512957338177002483297039424067037765506959711458157871307885010989864315334809964744272907144014141182356641107410818935146397484459634175680181643080547964552380463933958281635518934055298332906380897954814150263343900750863599055006777423233085087713287272019313081157869789983044874976514456244012922097766573488608184484339349933634867327508708175229560622069001623841846734755385256968415857789576043763374624872718108648344412645191552296751631772472026537849195220237890019544303622959165020289302300002736838608692032327947190999135129118811378797768794715151519023049971512565009623560302840742424692468711025740971908863069684122530308561223828058373552144575166695418148354403400682844772146294425901078425708010076449002677333476970306704956020249093585815305886264908052477200827589001956717333956890463743997835954947427185984760003747919556513915107601002431780344425676933024736247856821111157719890775344432356895188474214492541820527656089385842596203684786823299668299004657218578608303497167221036024104647805395788898553082158940057048718479085068843208472710938881515657052837085126956471637286831180019038086578706939894401276159332194466109745782584603844445969555356725916384515017516140758210792036554182099039430578397359378376520158404875867809226034174672928111836641831333808245733490173481400930601075686210263606988412987562512881232946437649668354524475920434620573584090434865665011936482349509281674368716918062128154436011932828751360878619549959015265191481795444243384007366093617629752910129237340956358040567569006036155335795038800801405958742107350237505729081830504057654792750756911700449781391672994705498202623391584206974000675214306229848303796408254553572528830029458135567964420243042545256651894814391664887638086318926991816745934191030646887675840867661255821335923739682717277125378570003879996057713216322261417485394511026766731742145694066222232851582081213859380196271490958049805814142384876872500242234363021520477408275823470089763773833886359728082883695317208115758524707880128329828302908803551894272108609598047349105278968482712063992249753153188631097737715032066930548073725975032157712982233299805883204993283591831633282504575140313197002272985084114052892937348129417182299461666642383653402194607703945695020494876691843744047012399937798522733159807541606500183088776812298471982309996509226423450253165045749295607264980920529094091935404499237584106405156437822384375290733253402737303174472636284775217792287402893348171580023677717287587524148683846375099391954943621172551865587223482881287918650024757504459409749086762181023580974734222218272715658410125967949541778030017940222489707216806029630440804067633048961229295129225408712373571043501665023475698124785255668619164748133995557681907738190083668288359027689101256986417267716975996701742061889991985603688482461283773026445154020781462924807938684732220198349903974957657668470126816808379753686588599802448074535785113578433105804478770446335872357922814394424345948583739987447105037801927459993490445245637827678302338851608138288382493294842703859449096428682883901642613321984591223425258739765297198827224225607567424517022177219020500588574658957493829427985193000454015297987423150480152512979145973438365414517456759465221013770284753506968393061979845858908970751795617656087659522149985294751915066542810942272732294315397264605404951795135139195486016962442097158663519758914967359161062098397768581349264531526995027108502670240618166483840906435453116190724037800408352566277751227668445860372215575993881779766614551381385114203448947974936704028962948685918099306525994432421770375700754258294311989882089666946832744927310851226136552503289732674959338607231914593144595083025116493447972901738543535170747657834977254184031414841781064755078937734884937961920902235833011063411507876716165734422588231086598166440886221090762009824303134121453958991527762666654915563611349355424878075838846580262893714316588841409128241736506811101565690565217375445783661887214310234096232488412102934020762554723324360761286195222036407584692683183154661024099703621337313516685529399478949739857612507615983650764240881160455590195276287445943612090642791258342061231038004402764108233237607659192528738834764738131193092837169155043285325783653460419625551244490582747498032718821568741621800696475511289356667536573637965208478454425062487395443095156970049223612815546608768927513248185684890219663098487955816372559618525074795619573959431808553274092863903861988682445688519540510599610382437046040759888499807289197895302612795035082529168694341938522142493677236070713075190930064066090272409294654365548153172223958202455925339276293992700404356534989296780792087495288096988080808083539078561700487128907308940986552232901157895439925130192511448516433045994159433323054148146090787794316682289918407783703184370638423248756762475963402387142876249871795452563955248901786281945437542984684127210768564239532177219690843052562810297827717527965291695105141115105846943990700149317243678462872822901410640264048102031414461345522870920150796725669248495648845745187179951244817831114769997424290354129485325311176932322196640548938797320917314107012008470082813448512222491453899349033490288912348354205366471521594963250391711883610688145930645199743764105379051042782386643178193931293258754200270500285088342422082629573612096027129298650720983011917216559720391198209890874479652260245488603228171139866110466449479185486495357272841192981768890682618284029620816225791565777884011545395354480012140596027125221713905830049368800575590812193709463553560334315614741208083841071234181985543258475868570652953890538912487358969754688632663566142852134095159287037132501662155068250384566934130285727851556985835332898371141066414124562688957791286372938124137720783451619745273889505434637349491036122672255882337884839790359904014117458722478439589676843214038050177282588423932926764330174810303006984622068619503567367813680563249627263093784724529813220451904531371412104076790459495241833776908372369691020595234877296681064060438325149273321029394073268266864453745398428275726738479756393000973975103115504155344280557223851001902034170865029293829088187987657640469400243046359017383067368756911961793663989864949266568335816209457354305020051047210802824696460127030443176608271132855213943995683758268330721608270110682843063621241954347761008303383665815411796929067810654915890600210394269911838960937317655126075942813338552408899322538089674326711430625919614120407352088319991265501968483523263903342543686399264199674070962761970167316493513424737244729898486552008357653986405436059946044675644031291419207989661887067616507673306299022438614274811736260722515804660883652634417078815417443752019391916756795963628418919554540507584703492854474397143042266132836587551583256649564221250714283629442220909450962594033367639882230704606543355444624821557879826755671332048997026522228083266670978010881885989789703410413695030704032481550421260068445901471731783214962243819497203640002391822100248091772080944917205545952243297989797782090043418308701182650700790880041574562466634301968342058959928037703634434848100057192476074775852376946078745885224428728055692107618163761735154876875896496127588262485186586061925546822865179757447802328178848378267420006529630200651551718081945708132100586506504704944325959413573235690798902220538642625522011519078961110330719030215302986794261632243617718339271536577788067286703130316206672510355118266358053594771755158888998186927215588710147543089092092537125416078011441975496424165977051370318708260024088276711503017594943478570747517789443103019427181042864654478782421232690181844683808407631049261673911890780257177981425635959925775971084362143911321346476145997956322505291081034556457006921422619539572826342846160882037766338085429748922778529001395435630305640482486621686434851790931730493206030291672797318903305863432934342721824340647362639814677248080064181138716089654335677781227178034929414246737581415166843278638533148670404167775718253100581826123360701239029688801282436620356860625408062172083250736643617031952509929379404398832934124475774911582543935353735602766880547415756138348705881869924433990335706174722935032635692289504360304075794923670497197898015166552523019003101875286802528543471010037145469200842371291626033239368114316775478582825745763773983780522054689276724742455717207058999443470361579672210107943915973061142528268488040847473170462057101990751311978990777231056919048712400512831342099604401050793268038762474318691265161466955588720259629689461176965258789479417224941581583960972683169970412485915112885002733070807523654789777084067712907841461710915769365414094020459399356034222284796656028061213389661106373584787857141321346134803568285198059423098263126925682812656959663177230454865867444774197241431150047434317573436462297550960887716498699794223873214510392828410671052143821428066341341953089798549358913346280541487100272435222351424645352032310832965593724271220876549905159452617131596068415711626021649366872401585807397798959002117069275967647380320904194088172007332239749195916695846542253451607198737147996300491984113997002227813665475842323422618050074910322895972980042218167918755660300084032450452415428965794711759633848349934274674118117304668929645837369891310929177627914776285000356740473262421893913498985028425813015622463362202357125023589221183666459020195693433187551412849316753013527772390477652724871637492474764992506038527787120340905637199938033772058339472756545805682355955361842696445336132324569810469840182933318430177373522055584413325894401957405084329667411878969945800833029927819958412742019311411010851776688782487162653101728732326497067994504846406647212316413795363571558561548947643109815660206596633908502687791960359688825847911264054718661203297380536377705467092657233628358209656270511058270018381456458405856604374488616297767407637930388956292522664311221688727615812198663736824409739954911295331586873561118759280342934623859417238327888751870712759383782422210001902438302706409027810668952942492360531907307112051268686418041484058335186815822677080037288161229877608936488487300106497007224541266204227898124311634978028047817460122157981374134109209342775371388464361120858018765008710558318105882290946627367812245197954014444372778678014049240772729936343695329329978004489501135713067536389655166057942033570350996507231762666986812907965548071162019057993159272397140762012289917732125853333366826572458566054935001193361219191705928274773967932472147765625784498199918702245994106635162353690070529967909945385282296092577215537765940874979324237765447850785652335020086342731776913697879222039431074726907814264083518948207587918088796571383491032591501099562482897318376834273552444902813535300581424659168331218900234279056865030086000377515667460047729110483168967561650640439914969230143481794275306469326547979222945031622680844862741147937008253015054824254760035943222893862238425607342791220534421283863414086246174319861500416764743382440955445883289076255523416442761801377574615671908977810203008786534050818391477918646402520250065740649044206376686139122882376396943759565101352528518315735739357027495326915181269168593481125575898780171176735369326935407671769713002183609643287137935528629150607626295898253406452931253201077157355505938465572617684690864986141197751714861882608978012561360885718848022543545181312642281573288358108034837823476433691279124722861659115594402896638166506163835683252142215695356557748910177812073131101359723255147622578681663955775543480833942399755210309318370321956227315438692520557607060069879774756202950123061719821873982250635122573426199795963938198024738935464768427393918480308742347254828046706571790467243763081512975493265691541542828779048789618601210293214456336862823974002595406848895000179897166007410064690990890161667167841547957675412568650173742352429967691714296325666409297339870930737737817244786884330695653885619466872005667642858779578433271763309065855552504145814677174131429220400870748823859613167293258058172252953981530439864469585822687864828616344814509745282711576352801765224603934099640507346886482459230049808970159365885704826749518068163899745204461437857727729231413396823824111758337648866109121280700249455810934527817337089628929566475758352558883763021161684517120745900755187784836764690033430317023985134934178607766173493346386629563850879418374324527437993320350182321563874327949094648698531978089019097009783605804049274424691658052695079615522172274141432541085384705080902206286124907357191914013388015955924099495417601018325259840164803719370908856296489005728647542597108674049267828850990867049551580322027508814822590905427490826688472471644957845182531384851083712474306236414695015276879118564990863021202664324341340078129583955274578791633129011839573793463728844105777201778459116107974663012524533929689700821447686531687328770084091809807747120765023385611552660953535057445725769957171337321703625030781158815625297760312144497042141536039074651747689202009201512138887724511649599787256689418241950596251604650114290333275694377903354185303839436481801051748974701076696565634330162424744086912170341518084936636337887068559579409587520253693534891676923606569167493945600276389809270000909382220677597227771812523677563390155713588641566577602364737330744670725554034520348601555890728391933545261998774684783166951030000386046457261033337253001897707820498227466889299425976986883363008202303676587821800446362173464002727455079267802530971189336548051386408175975031030086919894603997141191663315345329014157865021729454591863487272702089119777878435689070273253504949773524745047251764889256937922720334229482119993976300189236774627393449658704524116688576476934518583640528757220867644726121369073534872289304491346030635567595833054294530086021541481355259064650321827405783534451859179118709205954892070414274371717553982215918413072384619538997417096812893789554551548567597752883100938190705891676150669879506159514794509152994440182414921600781456117777941067736915221399632550084036145311912048262117500833557199300675256194556476197318911877905817045502725267836267941061876852902939997422978000004312933084835281423722416751243390268177868223111039873330924245658468820927163273294215670895243675272683060088963185479036119382050429504937931409509047470420595828368425172048393319675580128005491630760202045157902153355594880173836373937581027756573325530120859454757946881620322355007828236616956432415411246046041654510186429870455716998889122807721554029325957805513722389969445292905693993978768093709212070349596415267316482529183710086978618618269590735181945007164493255140578888558681993297820867750044617191752089443028651982219285867040382846869251315382551403530841207016332473043302689924966583007747275086756129755551814400193006169518046942943385031870407004949312119472161919271138687878506838687783731218103539002834370570746435325419162940933049387940220127912176916592407938102213796417300356993550819987321952403972524726457695134810276991734580413529391827094793038627656136476508277916468914392723204226098229955135584677792799308493279678933499399081915847944758715950952469409544685490058084875222418650800201753838523315533527501700301453510384000425226372909765346306690416596506918252855389826787936283940256168794973065567669085718584146417202381019690437324091322859124580048966566462637596809862569354022563293531293095634944076030694805124679738296651228261415066568805335523131211955755024705994305960562583179283489251590659590650216866554587828539580115209891318801597480698364578003523633083588727724334773536057289159062019698424994804762819088943386259700996249666735379858580714819068721497303800349625652467062377916443832916697961535664328316080546827587801781229155815199043558363545048734666564537366562785181995773442916949914059074395166259521976451088391773813185445733772812087757953828152006292151179109119143597591567695191088040667475372124441104098189923961487253554409828282119166196535384436581958257907757023971183045001521405595754380439618488653329892375033663332026143910151764211564774128202410030329633364518606663276927980462934444537867818599299283595786341491362753342801226438547131586484095373458970087113042661202012328286161525887844270038083634611284539203575611084969694567067227512267397101641913248746452096408099070974181204877235456741357139984584756865803107563206823301952015567030482007485058680514702520225050247634068910391904021991110199790774314565030369463329303152271567318098516683900224329124530285287756856388031369845894256064434996756670163122531095203893183939485927098336087362785321117074188351301595352590409164417083589143477480292224573876269969535950450149613179911854074847296376950669313419229762763149781242225198622983149732506932447759399839842226238221454531202204393048397738425001324553135481184082130923268538000279948139996114632917408305111689596789095033686171132379792564126009954819963215993208927096196237212579518890045821643101927645127009973291660906134864594646717494891204495339456437743056658964798120343807128262851017522791513625412691961732728763521984721050281894991193600753187870031164959423465182353780918241240453916967813883041167858086043470459709043265565357902562370455733225598225765943351009095124898451444531678656381055918763585773019416318033915591826335906317032078518966378120217444348588365198964997646526465065169412235965727890295508953524639533228709712545334354391055295105358597113801131536747916596996784803740339274817061591423834097556206702575534199103235467109916247911189386637058145567740741527199343422649004303768406248647319177602663101146908864235895074053005973620838783309619670754454473747906078246628516964027007127079847432606760164830698593435131097266615825887777304268169595267075715357362450830923402584256817822995715295118052819148919271924592441385636013274301107096378132604669725078280703562322102105002810270680697130158188286397787972051055763590290936063200402552429898921325342082805953487837636589822264768034217763575612682464054798866886797901073527385276924376571030681207540446817657822740827783367391359791306609340390871615728925815163770694981029942710511287366879424174327754271196852761733782407471679085239062086009233811720757789397287205752435086726359859683530719366385989814938962201086146723205742569144947080012075749863731202661561843826486616212035356583755665267734285030339123060324351294268813897202645688370052032546942351213530840084591844531200849638012992533900802102349058409937511561120506632404583813123982353843736726995417373340839284851803406352559359956129196280813037193982543659473479753435165599867600416087842345971313153346941194569144750354449973038498311743508044414130774778527921720798470710490911845048510157383448061072159096546871873027800610947417285885351008837682088553092391735561057993711265508235184448422952515828876836134216789985150444793077959438726398756864591956640813309442699078160214775758094407643861959901860807491915180967358983838605382043634331597382470408458918701256482983786270187490967967559323103027694028828485646891043009888397991327951921751978046359382860916001287498245162631653306533322630643326598921597933727001288247326727672755746408125313722569478842403149730903411328219217502177343831890192568702119872607191976965064549745983488339517660857883559641552873739145818434137430891969588038712264629298265961384076869746818829966525397623157964351654867981609848413321626130374017131526455375073344945658444334454507540366212690880159262695750107314885846274096232361581840207426785577319832101409663637000485948473178128279701418799796195575124281000917615727834583793984055480235468212037376319946101825078366113899720105981696634615420339649094043114791617104217474772884326047991030929529009485377856324618366048724066569709857297271987746362803117101975420012381262291101622917512994504093315666806791890567523000308634277366091502354319544613510408870121274684660532547659530853996607548384613826655288688816455132859846892734971614633289412858352662319576556075575821157224535435351059582465188844172207166457558211282492676215412757610806340601500456530077630771467026271152816022327681710338744479151242728931141879607918091710144266344582132453376047506357838372303533380611965848441785731329849806435132391580698180302296922442629422021268540492647083492664612177919566005664252710864998752836248277193838244525721917463733515382903409073514238710368502923641395693258083872138659598101353101115012122907109470701031818971077926725732949879589551204188953358079831370627445390597537048130479807563336214321577931023027447580185837362548146797755677891226218096374812036914114388618456665106986390252075232376529796466330764553342143555421492968012254151561203994021749064866487175296474395394481483188234830080441568767821154119066988041201533860976464599039620442140851089464300814517934215219862305353388332042973450969233128498840293422457194341472082777675271700522943088979276022129688813816766695064718317540378429490213108552369640590633338478013311740283630056044941466842206614599230144967752127402877550095336746759432111941552222094140210781160422144217047087225764983133496923967279735549111270754141792826316259626790323439157498131842897299912210145634345705687321565834425250230245190068081555314799464752937038276862410810440894935933723001776000427167805238597455296639411289436766909728914297624603725736624011667383506601847230874960790635380121994357168032826392979900367374031681447923122876513715733187644650764206430271074775031659921388617536319336060690001273963688424763502371027232824580206326581036007053374025846366291798839780976143108887112783963455912841759334254101201235718188291413245373127348674296867459009006722266829147932173741108240712392282487666077384634829672940397610351163799812294512022289394315002391770139970997318903379886310282886007793588928041977662279959743992554966553851952159529512882489431295368207695892672035780817802243015500176656937827676818919322357898296277602879185918191336698435201624296761832619440083470598554753089562786764787015717365003984374250343848597169651061649127683095705746993474656879190377044237589131784704063616833854798844158141496441654093133345624372745591501883276247724519449122182855240852600305828488558869561473332113766609880342521394615448223262125740109558159485105127314517230668111452766697603798173836952630180739746616904738808210951630890218582038339767747738742462107125948461532285711826507822458394842369473055211813210533525925271187242008946815861029577470025732905549989075083847132703053519319141719386285004661961624885573961656712585246336059343888629587685887523958312393262706017047096439654001171901452844999149315602419259296262383363220292199624305196183060561591449371533025155439306320994937956350036930598636121178578617579018139614099536595294724503188886632353367366829697834923816808460537271135827480358779363127382940663966050694943253706618023927395701963008588260385262614854180028523782001467486557255362506452649223682615417831887429139651531586099043014548003483518518081571741030573446608893087411639638845635269207144245287835974749885977231080821405860184387072024082458645197618013737006484061689409807656800597659257441451565754252720531742721697022617959717319299299595976219343525278683439467097981595615536847654160068994431672066303270205723397141894962911653032662674843948172841609296960182063016386033282959686641821156015123303133136245189547530340971424818652494252808077507775149306169577398997599705499036318443497584952806853084197726321638082843827962813559658019887743850716988765394912895451364054891856429210720418906210051591261991956352065055371252249536583131007766176406015790417527409799670330556390615337966593893699655230718615360714098726813160268589998264100114558250515976631546991753669259445145633601928024983527952705051352389413946733907311077459173516309796870568561599779173084190287666501831320694778687584284050895308235550447292028192068423254447602738950439519456350825132848576335112277613933980023964057787821020395982118001397585758160463026939065494430443337470494586395443433529267249156955602744125801628168585604041440892381368869431776598950442950451967904764407079089966285451324767219888710032138010097815054723576760144961366806367022446224570358968777583930707667588048321454727274743338971263265834939505643416447076629067349964162585186935606074169223151216249761361153549989120654161452644769943986416444857214488534783536290126112522328786455873021760165776874817493783356656397976082082367623910262985295213756749807570085468039133128500013538492926315527808507245163305269795062201717396173836827342958106010490881117452225185067298407913162124754338455954250559967393696725691711874284822287451305113725806735537630714827414648954563851784417890654229617800061837128013501023398296715534138022326639311378019924306529722871065780882447252030692118960741776238584253373754264362453240659787612471376937439427931751701791500134054356553197720031492833723660804551339593951786640959573668544179146215311254391131912773891024555753068074848485879291359617230691909485852952783948025072394787632354521502076107435377386785554066241974810940318094247549942226216592958837833261386309008542383961221306189790994285360794099614488549547596579097186057453371479799285567901861009885959657541764230836984162258315843506598229445436293737747465006494711549193930157257926473935177879605885546297776623694522524020242534253649275673046409150153553582813840650774460712548907981960343059422203527246491404555003823049754961265963062836256232217279303281559399606518115158888302635585543300838692153718691631974520796358769171291529728158104696937633397311086959511443102525825636674416609522345940499396188210947689100949998277703998561808905015811240597897407517287527562207853454140910109161866784495673679913105046103823689423559475382131142316409440277139171108631386258848610780663037101131042240499780203918931828796251821105683342107433259942315630970442251957399324956218109000748307545732193245132825176193794195924937632754398269884817008199756963629001512515279262424591556185141505479645440573538813626280048827784626918372254085792203387601406026519567824504428358987725330575253191416413064947455036971896344639002177484734775804630222162349855803853403783629519292646024561506091863134332045884911009362129610782711945079246941630000196810916067250073325977332310946897532366419064864723567505944720496602743584238834122167399094626790753453548791336731146611925479494662833253223873575919523874140550977684805146482989948180274990012761071152419548872312001544850423608722576140422869027489725469593228450881537208181372255905226220984654380576195714892375848106774414925374723806391361856348724199459343404600942622730879474486900173003191813700520019634101918434973807156299316528071220676432456375283008447057963534938991368949528985860774132013669041904306704915931963863225548044514009831262199654233667665351639646318610768103599089890943909745802116848801058929140240643870470808637838748518709295180895804095416526490693783685859491831609696397508714999158225860097988889402004576859616577811103353522802516540534607503757956828703390947260460253947887402134874028645992838695798624280601568682888179891647076052425891254048913756051879885788322265034969561987750802066227574001597507721665228320891465000721967323635942871469659470945113684822047332066722669980790533245028054278243390422719502815920670186466920691145496782138647013722073532778795550828067050290674688213868162753095604492275910164253233061633417668315484959089974331407309775212512565049537914161734107440840090845839060017870247244579621557579325512091990925248359670928574843971612810520549460704701163780251520157588675352501792624534534777273563046474989713473443889893849743978025527337785560304266880700818550722950793095445796893456628830644712444359045144936658106654347796132943489449891190940649203810504210727185969699056162898609587128469961388848722177272135312568632164943349220718742148393759386136793315940253301813733612133369749760929861937241121238323422721224460244636449097966803803679766599249236727566110693227033553903831287632114509735280486804517031016919069011003274968335578809452360587781139111446558600868449028155669281295223796842472919806541305268441247941764582098533645070719512772002225216876117613955629756116119112928975178763934370357039945414125424119378466630006819182490422922708695073774409473788082484232121989969899724390797128324484034983914021776715989372345106167273712653621890102915975632457542221572194252082222522206968188186290367464240768424147372011338860603144233658143773464990040021598867017546048839175863972227712129923410979096218708757308162909676401331888278828265580520995958692939692372355223991513591888437423637896978183156786174220812566109488434614584107596908507097114691236777359361581127514768994684236535493166276679489544830931775998075382385310967281259437360691696625625940901616151828473321901486923206389606079508400412500483504983336772182806032153189065078574894543346572798673075365773035865644609279843666763473460160724704358145119523793648440164247304772701303051038757278230258782606049581198489146202314383387699358126375766477328475033322544043950426802880946732520252304210427875967033919233823716989288981370998483609970653873573753246570095372124762927423018049458290017835086228573443816900486215742457245014706964255797786327772693770852556996961609939495988336901133292744716522870483874375967569006904309895674138713080751836582247879734807130966180897083786985923798130302961371330251595850901388051097041550270146221834537486208771910714391638828126379331320991715948550543367350276499535948735688077917177874785888509091509058512060343589421507787102850611368349459133143659121622420296523143773354645471379631281444219136890092588047382889173415398466654503386043834878317271502068898639124846146187474681064576401983607179106147377055703639935100505060076635370055552939413848823222608280339107870380783426558584455553868031566618663922367114488843152169422540989010061325810799498287917092619106687830413380469074493313938461053696339652967349569254506555335513757282123148063145667915579658796088216130262315532083867464821014476653148709517957134457650938628038513107283272915607279569438312105265977113607710884991063452499893498795568162449072708447608774759902189163536877334515556613287993697874530884059935342351762130878609567713136955017792781316643017968726338263799504018779806820896813685131181991151504724889337575466980663601068671900396283638229242545115033851285857052120139530876674855182156575827676454526692117651888107105164555749006378330274455120723928712659587991293007514725715410039561403591499957383008979315862911082340205723623595054288363826914836458234417270913380046148849563923097472125206258926514400308429895140997478473963409378100236545473349157783845990781019821294259671317643765234561782384050527756222073469559430297760516220064721775661704370302500013971901003194884467433997410975012136264132394413950814062697731886671893651114601200394786134795458534065226872374618215166268800077857215173727811811304270127182425188537647711820542149904675463047841400010041449097763805104269255658901209975415522369072579290493175456767435897549539034974257423715855531916862771678869685081017883865979528670123880534849184447187682546742003750633897675583774579551268749480155554106234696731084161128423163978663225400019615040115034254038755568848075217762525652128755479122859143228224732243296316360689877943224680050278118209955051287833566450422145463331706228127013453120785275740687898873832896885806224177113825693654932585784652843523170305932180536515254042867769467894983599458348777290473833159727689976316438260544784702592681529840975863127039521467195676976759752220147061306686005684168254043641499936425114628167116752325470990443415312052984619611071855133927062097669974629550971447451447357031917128366944433915534993993552144299373258966312228528619341689572520333072558740065739335498696237292003208272859699425981157110373601452473119479986478047392898421634482551060184889161376399312074868533719103147807387876733553384183005565933207946107049832221410459689385176710870254265117033497367817820424370134094845764604143815075153924846875827851358451770924627915757587460163139475196969032600401025778446500728428857190607638496294981818253879145113066504993650684100690103181468130302675965990623645311878111335043919378186335541468312214513618036284827857490521268401506101844945926780239472937632746769989147576610724379339098203147402844563314280818044193701814228629711763000723275927049627550854847121088408752803236289581694467591495220909993143472186602864836128692533216675698119558801283190666296415256049221706101777624883874169823488595044433010647923969734402215638455427878612726121782346990828235855328125006160342026586379613182823150683725026230810492302630839050305517344282999272204715798309772559692655381667088973118227824008019864007468122314887004944285619869375180826125629754043062066677552202491693755273251563006061955389237901999496815745777582524712196264374523066332882489188553563328604560123899937018930488415474921672054092088478179916516465986052285103407440573826654122908590080322838988880296549661737152540081357367496783406042332269023905985807451785682799073301540431388743066458934753122952743535802431375148177236083317437562251985482103746795583356074555397745252101753741916793838442290078715616748459859436285631627143914867362278424831136194593827070544270456559739307048633105715944956342298866085575088115823931951658925550223585481993518977625380530698846516766927208940705224697478955892712615791871419792543947504805901398238784332180316455586025663375830285980237242639731402549308835808256014117575024189188524392818274662056677697402137023058351835098219496970386910683830066283602615747695461460915834917395649208825307610766490112294975376576419018502564448563443046248288760292111265574090980300187221505561037817333939334719071701562900987186084852562506310224393532746327215735406361899564680911918045374933922130079110975815040339048919845563115536469565472344413658442776781561444223024777343887382961537564526629200341220878538603492627935842273318344611587205952863166317611376631200716986679574478164110502240547153256832217245642348044494822035764699177885590784207185818731129702211011787646460205672315631399656467815706366400583815670445366419848462033525884505087944601490784112818990302400598853826367764793345987441875809883167879757324825019216843162940244671327253801719057189676639543083737880621590136093799104180813115784863922919319613798449268197121972276970314149613238911081417385630806196218619351591754951272329850454206221908953182183497084360748902569261318973599718078866440523718173908604522184777007965153627338097551458432964507003941771820942179219830731000532528238982570691247750164500024722670363370850124500156762675421516787232044337935178281523907564663661406644473535408249293116422021356164095678900975012046320244284322692704867910689936695363101418846129344955399976367035540311302198335873623818855777217056498674688119593703144917904264653751023468470880236546475806725888243360702584991033570316719707969174475306866462282157177592658869104096848722684193286891749166064412576445295827302771510920672885789186829483112588242083720177464548242656155550984671278192968850287031156644458504753899908628109295452738580472825242229868078618146468362724864981140845129701725169695363425268677757662763825132717603022257286089343228223525509538253817309513407699974603639896406999441004498702184593428090792492072551604754776698455056144319860785759576413565326912263527364737825776019227423352840353616777952859856411850562257306472496558614424654833939898118584220764313317853895917233536732577760026373021314646406831161536171224624084539356844525577367682067455385745621985411826321248631979284986903059654319671383590671885084126013193294525166656528565118733825331248870741804418846450814918607492700605021717273688785150565405370022958035327559432156441707214664023262428662269205918584431432744809660855162678021026550323178320667106007640444251514093029787218424705986219640004361026853185589130837491447004020746946020111429952191477163645464182594566328224442603283742771812453336272819798275713066205597624454021971202695938935005242495593268423218000510352138029520721311328352529825174988993025249994276922362449977727047649583311116890847350593300231037465564519112077364246197481128628234022075753747563695625919190213571769831258130309470183066191282291605120440792874185770399023525883895326957918327580772600372112962582603256776015222958211062196972542086181743605250945191516993662685974962339409878285371542605211383556747785134447393799845339796644245659546571733886681481950913279003587304224471209635562001602836215672000558665077976231431993252129329292565815180120570708423881107709845158684004430550724110180109827227906295328986031496191577183883453248423881485574819492299451972495086162682610773025883484175545338504612524630246253860759513513314288388336759730861828198689124983180706233297415202314661207919138466511257967666884512965132906836582440250622201426555359855638353131874176283445325188286895281509561828197296175274606632253748383884887813574722065896882324236726508043467271697435832632026391570076505524737984076174987945620543321169121788925486849341872071482483876373334982410747778299253835911341013280392606484130437339065940269352773903834551853034148130964188360066671258671320519266044761773286874521230046344798685606912901087061581291075872278913924576291011352189025103574401413463666862840332276876524834260212181646053298211482325253937421815926198028378428214158064990793043205231061591119019454540385910342286527214194296950496846736760465678428847812520403501330501601799929434280932891460058214054098576492979762959676611050220108459349133007734297839907593850730990574887419583681778021157548082059181412767502300818152234301588905474412887528332493543727102074450356325986537024777867816929822725473328855683062501331956514029334762630896334253391725019138681015861846437071230293876986086826435020506909924756942239917590056392230478782104790391474249264314785298964995202325048805254531936955093614671944379764460537607849015910385797704849938435470105239305806866078971523173462333490720182546112020338317954824092530719307431621046930557260683799279952978843165125564637797163166588636032134492397896567371306252021564432741922659513577715694189698966123874781750691200216003441868635436102884916464486543690905773177472791697716469194547867729043430072696180023014592821549981702156461521268965810322406105834664912453439457408542078124256068119363363755418699588646152712245549206435997163266675564404518317976515134810406742138176394638958558588143748529075698738474459484307864304784399928315801075265364269442674276315514302860174215415756603851142848837326828098557911701244281746080208010364120152637245087872850694800801962932829299020168202625935489235799163947837184817341300534760545865113207838414602843185587738556043255667363484983075144704429946624933219883789323460826238830729940883484950785059347642626632510099839565147426554993556645484624548268229731555313353402227234045199954787632926011249449708431521557076230542521567831842818938993029241500488378435896512330490053642352406621207048103122432488112552034050891173487432010144700913314979659933345159119131568477854882739706891139889232356460738609633403224683050844790277626093446694018519105015421272752980860227868199284892084388450677088688270598699435044455688041329192883966122649746465213722720832073382790653371293035581025270179548123121197221109807430038508661666800021082155676814273386751505244224184057530947625063789593346216773012374696909462709920662810026750720064834456241299037216688673623572219498368844940149359496824454884222484714233174227322481569594876203860883635975823482991039379785384047004428312426402659212304127713257135880170597070476785172230408459564150726945882777845459191730551621817509135916184382423056262736022627106478490238506287825816285055761686987428123218724993364222953067141041748166419263978870794580403837178240765593681419727151283929083154550178413741332193993691682125649026437588481762209939800877035804691199418376312842184185396332647065067711695540394632594070075517183596648860171428379160259556833253193263095411270272509536142808791319474113414663244225872812890673062874553346537761391072992044121407185981892876014960795129697391805175590331103962101302638639845262374705914095040884770171918319295379734212282271404396368732445443066179905028703109212263709237956211124030798285348805246504742709206373587521128632416709933851274909673469542495271272905655316790566741891389741933695198531903032221160445043217662423024515285543156338807388111443696859749285615788267592759157135797571970675515440487516869045363299798451758404530415134972923960037684680535307428229215154472519716376996567086033401173982223456936582696212860413212335506720407715233220805136079301636604490508815896103325519166543485768537032668402420090167558598454749488356225907413759448677235568397595406669598883143972180848076848660898786169857972942674001670856878399728631698023571857771885535120448150206875177125708986160006640371972522554229532108605794081325090871470182181450157533473361844814921066478897462884763592301664134133280495510016235886209725739955803565784446486077751702678081074741678319236235044255839702277502758283249055104051635145208496267073747960902996032781130959466463983780664325267948332874564831079226256860571390132894610637548269294587151726984611665271428224734283355909416973836710547956861383077600875715883236026290989522403576410589951587319932178519261668626948487404537536950417822084859214147613390832242006898189646329912849157800388964252886228326311010352807741967736105487531857084499625648608492147476921889251446523398987057060694149782455494108471894108057739647762485091878777884772666914783997921458784975087626872264021479503273444653952882089383998655748676798364909706448322078896228049344366420104079096434838869937200375440039474326571662624557476494923240834322449373071979621315717759659173680492927228154512887149505944924780097611076503285606272775071214600724884056202419835952269570098987770865185421992521447373198691178469004630971810168944156408703508689931424601127235195303862372706305297472512192012782731326203361457394472137808396862999461163061729263671838242340248312721360535868409129892548348136984901821833963935060744606354518579074674846355327093211682761869341996825554209618762331736705114823690567792860566437408497096567752569126404504729235396581459831122532089374313241113097221721539941387010245056537505471328239162603103130641522248939334899536643190930114935391367481786640626478914982444959046842548941566536459398775566036167263294949153490707779269362547917744616521139346601938392263922484890572494058208286290487787203986800802408582885861033138433362327141867275152684514973277975915187338403290970747831407340054729903499827039579158470745276506013540683303441516751766903406716973782659003234599154951076679212243808602346769631809866673940219820815891037575004038569360994211617853057527069331122077369237655527505850839792363009192070526008552783770472649965281627392786366826776677453062952360868679054105835736558385592321316565228947525198734563349167000303815033774946524237297871306760632733438452305203704617019248657721134613939542715238680853253508197618740059640355837638483824046749894498220497253292826664055835196283974856069043468950814621757608373305977820663107715649484928041816450150017287909719515419170927813437701511901854013071017981242682976210453002102071427192831786916351696915827288130490849855771831170054064986589124666385338543724016581440352067832805696631796376293044121237018016199795433384533145081850871041593856466634416730714835018393707890408152066326942124514158948344751831956255328130063476624629027015563765404415458247893398648564723694483414666228057218973059466895036487388986758561811385031731593576032141760321323870486270351436216706097413635309635470621359485042859215097802907124586369308468438114703928899082453903725462257538908968821441380690438389608240301045993990337390097288189417416987772420113526670146821044390790510354168299651472785877425020052486859870850424459928642846490697143721611911786198495731174685798161245352699871233933919267500966265833072058370036811381871489874111485136596375144321287988966787133196727166446274060838487039696242816064708388390595301500560083962937727069331134072232641635825108645248403459195075602396221910757340073928387447556317588783510235306914044558688270149311613350019883653513600889307051332606163624503667957458734224988588115751173597314825680196477667572209151352604394492243224340198929245644806655715130983358470138950221985965935525354031270903600675226999744120691983040098699987741813159292771889468018595361659448873976609886781696137647596404504917087542397760532576808875691913480493886360417739860177378854343316741009931501667317713032344392969151447738540278696260869664110243710987582130827048900339016709677707657689447083096084833556622981543410926320174256045089790517564586476270078369276967318122099666818382532119475150595223366040732972133467256168860470284389077190234690066775343413266710283891852947776167912305411026073943674179491553262542351987897653184008674043351811008873965850102479922085894448631145565604075530023126485745288910030888820236114869910717160459481718258072984084693418309708217111576024333758758420618466222622839482445715151029179945757052886198611988936585657421816467438630782377653428476993659672688834894655463507267336810826871238397574765385675828640413005282505656511811066798996085014741661137128455416735900652536229100246688637401828708761509447203974827669554570000729486363758397150700659078120042589703269851637621882848880406825928562623564466550869948049226885679858635218259433826680493404537768967795486634194169580649450278202406928235603056658505828700847554003125085305684260001787127598686190744310805537411087720363566581059552454100801535481347353335163402458574774732370344616589266453835244875669320211174165651380530581181424240101801057744630917695649444887184730534275587700594700478935707812553793114780927440027394874839996244572896910216430386048216123191035535549380881072581627627351899809428126937156584803511675147801429672571487358921600150293977687138058578666839349854154547950801075229076197368934029710545485606466550576632484212633870836457373574986432493678766940042248619673940722792043187078122722774968380626370504042473606855071111263998852269066827327751382699639281003220624458357793278506822945733881740769039762690392706421953764844440528926742048487469234181281823138013564889094100383439099791068749217330196491058347163458094065528078552262872367726718221806457247354617988248141353053610868608988829673598653976357075244743588770513814998363691729450418141431709356543215244923715808586045013519805225382087633241908638326358404936056287643475421573961581710932257797798884051326686668164041589684874612976201961613731231269431870235297228040563294773337577717850202203644799250524017244681460133072400869171390837737676803259965714586805658740129051689850072938997573115022030364830726120717421500333223222610404647190108708531012420385150115338366421569874282116659805443722234880826938882973751431978786469294488947416189021565570547203091984323310586302084708189788277800871381468706465721892197812736612019223741600512198704232703875580092048243325277183050329889271420044134825980923270932350825255977703987604923840152687179908167712092358682678641515275775478684357182209184312133526593700423555725671298408651868386396153037727330186231201644261797651643057388600976652116251827824476975644960751864825328527140733746111548641495285385819305861971226499964787754516836988062539781913935850786718388778886969290437888505394249535202441322171541071458065418332378169697957091600231057608980045069176299609442637752575447867918489927096663174908027499712330570494554287708376520231504936205875071632809442103160206733078194957393316297778149116530209167395369195199519548709924709370258226215372683285333602055337263836030888716615091446900285418603680513260188923298674317041009875508396435874683043186406569982979426110202853076291141079432570073534805750482863967026563990745059664826060513106388228389454056258031392246148356860472325217113317006075663559399494114535744444679449442661416007663623456243255981782297298210907712729474741541575691025083682328714866680159939823636048909022325869190406813732604703993951841357991623235052865537900998090417683981675217099390794742903546054254826020233829252239793044370111169192178426004981528171166504807783111204081578426703906965075199282599027388307028924223244069361051708842381128827796343444853563325222920728140038121307098324496209680278725515206224412126203662570964903236288881317929626356580079431682637472625263772166800341962445657478934443160548430530225052405492486599120330240160917504525790327765361452846656258883032646630423298755838989877667835944112011330999964999494058940551675510091717068400436041903079722263478199503574739029634711707538005906439631415564016267930282944016214236851024704879291656776089119519268746519868242207263048472193515033128897902307793801948521030626123863993397581394581308589123022397966578292038329277487023450951132794199395179457017864588522735108769830946079569165913919259391079874585598807811185438759260546487622707452307892036780179374678409128660192729108204699785434753787685988878781109764622799754615697217269049048495055643696519739114800325029879086466801061630131318386592616975147955311745680194745660014544809774595984622478704614790836715953871676900121128340579779543559834893808157802729245425121737280240012808119657177816511478003339959862983380635466964304988145637385574044993394733197441599506503285683543761076206973760011041706886082262092562179269737837759489740258412878334991081919485600853828726107932104460594425110886798119369257155100343170342333905745388647688585630684679963155123170535043823322867493923949478961942837172296301745664334269217438060062725234232593988643703843560862922642762345085074140972488236761594517815029046080234782923497680517309754696618716966071452488702107162057580392342378994214209460798772722741106445997552557217512999128983939332749741860917520470908510334480679731113629727546260304439215303069341669514069221494744663909563985861083174787989783472975880471619085958252932253890181272331356132837462802767619632756056304324856237222766272173432658995054430570747255618139693295363917988437892074780712738179684902411016717131434787747784477562687051561441425947726521070836977393711358647543622935166991327615748241278275805497227308178752677359304197762739318492071461064326223295192320632058320549497915985731726583869451736133724528683216172277285776863117274034149237742604106654047984168051375296612550797173633178074654805128169110523924660240623344514415612652729917500853203209928254782676937684833545900952663141394179181905888829556304601858579411047558305175707823025258832457185642885894401794930891725569985079156946779699980207296596035186486415518559993960520489126354992612808253813880435012391104173887351947125907232865529401203777146450613101847461111413383750278833344338375787191090591622653909157565133996528668046068530534280524604460182566962260833539562160062713795371961746161872812251016571806642526767616105414337024007816797879833645085837511086491746503306275140027274430005634732056707561056006775953153558740461470008400582918407049689631350055374352196368423629980283912489688523342525350424064349655652427009655760747375483094973137831589619684354563186573432283852070152690298775562314827855579461486000249546707670135709704373416237091509190898231987801131093450402915924779599593234836204604037438180815696405998773266401593649041636560269359029222052849077718682294637425367216936360519532466064543663334659038059878602537064983910497834266659643274232757109141433563391353004992114926457663899330919313226359673706240884303072171709339938757958302004822658607959561234177047731282569859577673717734402964622529580457413404265226181880990249778601407945607735595027770871203043885419108322753704055867044587208365940147616330461189155797611394528667458582060750514178007614992957163446165091890728156997279492451778289557171579564014814950458405729831204505942135395843698991027808194423185855498859519679595721622075705748745622220367515345572035253223255331319320354219827766978333589917714577289961185870813749096556370280512483812730971272370405784234849339646558208187339494583171042881885953904900268679530587649942995463301151133370415311655466871470092353183382923142700054043282198228630426535107405112685084063276917973986583568327060228900348256400727659832552466860633877367622099449615320971259785007229090388700788458593453709902789390814431674429675029674818371689711931584468685281613477177434451227452236947176748145938938704630454452246073142747006874625590177625483159780713104394517966102509845299061651359570354188677153083135856613050337861582831027887227992846661977961663551299565195141495278663804046858665336349553288806267769948527406738665248257750318351695194809553437984926466662929918885525698922705945085929468187096868627576811542476640198490177060238642143808599192336406519035737045620555465887260676382629296225625469929815449489792541306463761232125091563366899912047313705708934317997140772116419662785398086650402621355502830454214086175050326386805110672014664775095700133167036167796190211440633023522830422860726953039833897939320712617684891887347603061345010264517533671611999911103352689324017968089441571261257629474572017698038750823653047827490070844505337290885808424184522898721641281769024503139619186327303363530566443454002258770652383702453581244878018552073253711853062408722987125231025844661846683287473948434264807845562418862238902672955553086599803850654816968360702248772152454923570434892522228948952698720618207820102971658650775172491935801390183554273187087258542554995411212777738940901741151004722298554664942367760319130714101296571332119877844592405184745413136360707298040660953224301804017383556174530424347491399251137992932176185435735323332546504266185175134149432414925775732164217075653869582332895490467692557529820694667227850606098944502160984357125421030530838076352496062302339521886543059727286978933279918558521278985209443749614723808767042553874856464487143202472808229462245700105827138375005825076653633227225918581778088893733697117287969229056450588162880150254266395217597706626842623266726885564866722001362526932915942985652205176113275028017337336315184126691908837510382792584452032228288494764775044290166047456770594819478507083978946138583297249579380633588009481865975861934908350059332394354424850398230494782467473040730380981540763275145305408497216592801408250918981324116168064056495841679070228380151208596271736305444147582792949177534638704168423001609071197255871056660058911953528121035137402527294902149589848159449878342981142561880048122482145129184570845993911303311292861061055901017165542584950711471351782228762141771820277042709129998164937477016179186224302968137510336717981874077750542775768794857141432646998685867272489600795482370092179202705670557836580406904611592597571157418064810139092978360582018969317500493777852653458159972642112619660447341974122426559452835046971389475833464939146724350046024402547241471494225813668684361621147479825071440237337029584649330210161341575445694980032920593690538995253318751158018068087017554014814923038797808055334345501780219582053937287705777466779588866691452459183290073752431037929110407955483778529215507800591053155955925979029786186138090900676891423102927410480240706377022942364599258130027045335394435608127055867300239811821107816920909699203762536555803012022423640893733736957270147497745718789863487486161114248215226272696643197249405925240755272981515222002357070577330620094286765065264908061811280627609551096616619347228561875261494778447896598344605624468066873486815180613129619076211936121962822539227018581152623351348292334077355738838067025527271010903830428360893454736010627575333964942721813680143368711501860825048986061340026161491754976463308637485306338598360573171328405540364664619538029486216188918600506654273794007173321397706567293327807404837723091523716716100189196104823929621327201697400302869380839496157071875505135025587864901694821314142242760640638180925170762697809151680678376483229434868317894505644603670215233789766433638050906924070588267274739150637156715934261289810025711559766585849904473046770994332991823179487930544749143414319744004263546647033481395953627361815120387759220642688983136520046715559506305163433293833264340194378795345235067169953516860717962216943997030565614699710764153961137064496669306550337422911672829214324956099101947188202195328409490953981438068726647360077512157490934051922782819833971997319993501661211773413462956425240905217601344637413812180935458320793954007432463324809320599996019224283980348657694836471393997700937886080248079231383455204064931277424296942541258346398651506273391256581558824318382482702634486940532261014037270912089020068429643812495088507979825939184066637608903510775134710912480743553460453723192602495117490638750980516688388730060696830087715804450486666581925548101185781126287888084791821641489012912735013165001332744296355318903806960563505517773321510637181673081962335678826288249316013366946528579011267461105212543801319956909589654260538298996372549905971555101590875395060301679293969550826729485513337884376964970880540273778249399267535982974077243816025226058711477520015976682405056814165322056867497397257031340772947605468062350296437526732577958189355103608340183620658825579280842725576211809362595894170996435811403316753496618848540751107739492676388819231954949478238255526248021904787577359015568851267033943914714156069538780940454251229195155863904302997392096591255362609718042058015013066078983289859530943606877086140146707724522513381033087673444145773238414109189487442948813428233605279630989997277716768881532369228540192376680083923734408463562995928195556308214732418040560749240137979262138307830273385292468825387377877861943435642814870645670026933026355054389836948135567558291264091046262443090438234196194347892707112778195096214010388824071881856316995138496654874006920460473914324616436856476048370459766379350928289129494305740416254378215455818714779127426769320277420160811277058581379123020516993142104960980877303123238873486571427388680133333475641661590304871131265409710226238287946866976355815051534586516734629441963685780246907024132432673364971110751046029122687468663676095011131541635841445383332210791350137258312573350011651708443458106414773450209362850675466986268037794850888509881371636033519576266047959609074461966442731192296045100198770322474950369965479224726464907544976461795827906123979111070715973012975892858668190450318361900871344174039697541136050072337636457444807163000234427829174270086399124349192393640062070308077825294030810322956282204917889514124242482520254128170127190434173570798291519484431416691215489896664109488688859718411615159265325811423568396194556243054618276595706739607161440271071502683489914086549370910835413826851644998189835808912776380563492691938661391204916152654972249180064073658679064749925701786939130676888761423808922340771864698033286568900113198631123185307510101564836148683477141377768009599830061654016037101496556174732221092966902949408459551180400061685354394809067856250867536247258171828139878333920313995073346209433744766406121796706116845902728059736546983801413417685791083916593565904801265153631751485635859367883687349300986871953817004315635729404567235069288752461957560060030626142068163082950813460468036156158278144995615842977551355375436813014126052738296743395320908642974999915083779280502066172878236922431269382493138160957559065391168378469689860911241982296607517383290019048156031831336601419304097004571395980782604926095859297638366897686855679504656677516051786836401037655046375183178193843864131163493005633264517911419067502881993209223571204859524564820504282960510698269808437870142473340815367517686743043713947926594690545082861638149657148796367589470646434478651832499717189484765203836458207149285200065552911582923155724047936670029118672369330122890785261190752353608664274857286844551377223464097805353735852420964183674862306475857495833421190681807673728284228540115347197181394330008130999997719745281613739005347201553214130993356850047544463885206130691966146707255408366992803314022932643333689054843427266322391249109184220394052612634719941393212605999854568004490158868356071790165460547509121200353512521824467821327188012590970118862568964224035429880228871684527801236508403003126058961032629945446316268537990039736647029326258104736056958715197629485248482722853824247926457685160848028798095345533087487397003484157823740054822849886634644580377180381340630388349008927070851930720754936676378058104343902572865797037739102207583891416777135768809382313596922646466062398273747002688498356962737723831038701180605272905038533981788495383020915464278168616057528412469717344018352735469272240722196387164450464990274021555090256146624057022726721540288134647740340295797718258843887520095586157094199418486170312399636084082674761552483430468475430534447866781359892944400708817773352395007529252534349360916902596240521695703872803566998915287312630738546628679596914455542130325150746315151483005232510620705082683715434985433482961111460462042523600117150086811794098750546581849716553017612655588636448369582105864571525697405467175818899050075041813796863615492327785495328233262386560265700392638796941393998610382802119183935208056424055579982002804640471160416209472177290300194297919031794269805478110013693279150339801610538435578102744451925158105441113211974010195996426843740566440059204197921076650681354099998508244951498712437293019901396562530361488331523406543612177862683613670242859852525773823268682365172106038108934740492691667564148178558518422576107268917493211351117958516443560091661615660178806449100099941555587582458659296298556622913954788020374287114896882423848797100499321835460578786764175971589703691603435490713902307260341632329056220166380227693329128517958740948993902970930155715616263394221692807796582416140786517781706510525783788439959061554708547885051694051397171655960381912973452661767024251963572693430729574626685495955766556747644707376072593644494722827907204821880638208935626592960803422893211473914340569568952284388429101405287836658933350203240997755858393939840498953515539781638348897871121330988296020693372877638721203957492101697369803732363188951619745652292187456904309071315873864147656669365821093823028599061518041942202129377118851517071946691781533448374233785558482070180377822206990393197583433978319517111345476516433487029240085749292692213360460155750347084372605570604344192525891610614897889211538548028245277551671923850572334010037861427845818220690829053837967837072488787993601963115950171122074931709287243757948438783869576342369261674125640162710735522863285204734557657758005141982945687210446138725123028057863879094487642174579827930083946031316678775503082341982969873933128740934077771867510833870759092617062789991461595062008775980498396156724571940117236231385974021241917125321942015446364908063265831434411438955081703082302341987368409560737613796363883825112031381871077096622859710175724846018012045685435178468239080740488167453653793089753585253436048479157134856644989390652736857572268221041485068954557541476986291194004788966112914592577302273943387399168142478382697168391565326615776387847879089580081325480692782855669765864641100408728661956871044669431078128041076619107915313710431055742050390496901933393984989566401759753750167716406823046414558340196698661360321556064475803170696746752149224670999574373142070678559718595321250801119191547756079856702909415408699896236880461506026005324114038410862565965934157905471858621785794787805398709367090369444439310564561403451832643568543110988644573195125786314359895364165750509454671681019971155638212549750824295286558640235247877833721193927608996177552001856062888625501645796874477124441268617895758530557486996367842115507082026862555814434949367418064956745734748788390216495720004825049415987709189047942279387562142125428877870913992320759737916818736418699536890947432196848588644500055846014437028422349319653338050084842899696026177563552116177169499356264727111477865141353282349058018261432398171936207328465861531975672795405297788781843456241687039475158443011111086318401152503229244979118221560206451891879913995743212611611644753570158380823460401892921600345878724832459825963665399897512287697031599935131167339786726020281901770638788441221043866184166069243888977542799939400843342120888144078280174164325379063571287706746873989303956013755563584736404328695864524492462376383164050278853336277355224971565020773276671408682757885430836749866978940185373205505588565768372228106863064353957723991773496603887285022538864952213600511731760290366735573208686394812517170424693488217235447046622869110867547649749726028420794079924582225558422339728399456372377402721396995160172040627241080064126574554481581311331526087735638286659129624204468241704313767046986710000157403815692602918337420326003490390998690952149962305914142641772521808743473107184659382518763034189310916606400739922223539865413452907910229469669651363973197284933075186078745544792487824931414559001457163016377153084069037896838595081173462585405723036902288614111857856560365075122782257562877206644336754334523947110855502598741403185891988814328273086122138976811089828064991116795712767991167071468703152320481824673409383493455855741197070326261503107617524408339164250651380393061447751453492077902036222803237524088610145251991729882597256044558565880085107748473314360227231016679855423797008452346792727521373623425026597045375643510670169312604197061125153672715485979456705228805208425481034894901779230355794322859660841374950507397250778870908413607702576749961700123583168786390528974918836947646055592169789767562155415037815496455570888801900040919857558333752788464936592069263438834977891773321960131225698410575603541101129501355222185732293594543744890996736649561497614258345078840597310983683259677268801404220599375866117042550052077729216549105471810403787134108895577179106274901023032712956457873018563584088882424748439002318975202599015357963243183062575456229892086283045861384431716766544021751349589124564043034150950733626099971746982889988737033071904029416945446685133607728539051677301307083975444984710008750423016050606491355992427292204583079033879788251644854553964088898613082001391427921999049582075073550282075375004297455785064278822411586625842722198809123502066826107276994997147312115133697927783802771603428917224747338579537721415932588266773085236760783659889745980040228964452098663617320509156409337702305410825601872992362849158915628549902466159256116288263123564139664275976005163248245142970438987066077907272291152538108083447965139976876081701423711484075257575789994379514653315708926658776835312881368217660803498174530101782886153170982945799286463903515800539485771598313656539253667424355524376868006120127378724783693818122393631138250536629191607030275088513769337265244731092069903964243499129786709541903654217003192798826901393301893059129140260551400524713940642920693914160861485148941517707202268895858495775693308152206923242380223541247556468191964269414313817344308467991327144184715619538893574511845547683078912158556091911634404747659189443809420492578395843622726120781861766455923468025582795339081903600982611121102231540146296398389030243239993992642195441670944125962260141106634846794694092719848491872255932213657979508478330413958612903243386292186751020743954812099541438985447464413560570298150991988184160953128963776766552434060740756821852073908219181778750755236079016911257356418525333696058865576322183857574883124073639477442413025957290210177690080162633306810124414832172198374160553471830978073903156468350772777752752857555184033443652294327865052033872630750417789536777030506719887182690992775544633140629010645774800775010811647831206748251988312593718454311946083459638809144367239966214636377039596882225423074942032676259694866122607972506645610902711217556880910576966116240478381343021049234930591729800087826915525313398576073327178126576014484950253161437942754869383579784005249272433182847316256357827416206726375281883902675440062468803179555721243655838946593299189345716606149776290935021049011993584755733892392679987172212916902775124964870531867578416737377593227253970220745148339730389210148020728137002576873114359191359819719756271294136853498257920460874343938541175615706851644763529063547280150753148755590969294131256543239036343188215153185483917791933696142655124878714493318496412530114052272721929797998494669231776503194647384028819006311193684622935769952018251333762711706220333773395171895607621895879775588025779918277804558107523629668359963703033061409539681399141398197715663799129997457986109802196379660405223614398670733211122917224149236125728677739025525048106449830129721129295731506933721288624739402570522443162078197627438275121119309717452606434834786015301378632169507965515748644772097980495414777185680602325139446370523989867352905514925600350706886598283601460807141182527168441632198563550909584873877333447886548559449435120544931489147884034136977514950595932324945493711795475566460398747189445816074231520044176641672409077745132955544679970782962862791075017128068635846464903131148740560200303347840479134027711298237824917838501216786331479438947076744273203463805700065290521678918801977342982809293723635434151999508464698970475644189200923695881341762694664757132934210190872660611741970441326095440498563773338233149208279798422999958214771693995685522621161243091082732331978069646142665793063415575859497477961756079891929632908612791563091849204687424147711589678024236079517715372020472218461162279650818923958990945214720733459628312423905097614236770118562370848670694552670873766549405674418836878129345046985455965783205914730976101855143300837827075276024384413345833755881680411321407265094907479868541022198284988450224622893903985059142982832869404471132215702001745683979663716205524761702368642756289792933237775045994071240742001142352867515501050877235988076589298332461135832378775726719217934739962616817408463836887658773996491161258067122366994611855708974090956268815521009306372689487090783570357685994505517039515489323789582329301055655333864962967393536568506593604554263622793323870221893315513306765510903493412547312594974312071777643322902671414136397759194397780834652733968858434615477371296498633310577533720479300985096178034566726309791678274160841624711977824523032611518401889162320426253421703959818525839044059551365750770142157442477420114266200799286550693638267905485354799817507894492908574523298884697399891716735260332940916876161183554912753209298451492042733543156563555377501995112092700855109629783341247369218764868747447306204814232119199232909573676444295052028282028192120439348304093886882365779348048797411263926654412681090684303565734422211899475246091444927337283324408253590101878452476567487957604873578534691125597724789882530416156567188724425227058031005205286648238638680398276043509542365590222692174933484738158190924311477628942594606427288277406717131776036044438462286473324851710288712948050250152502467397755177600690989919227560468572495833955013643162253104906447423696862023753470382903612812863251998243655874469417134919248798073771227477828225176652239523748323212043414207371076643566580302853635696237448262298439226733453234077312053692850215540693473630647284778413269180129959724006740779664244345662299499041702785293840269343612680253424821093095177502447932002144760349527169838303565956607015326952835537695495071810504385042140544789863686508049018554889150687097755408946370987889839174538371296000230130847443807255253531660331654768808853234274734194774993969112417022194679452552452993023655067856964796359394449682048153932034681401467839101912246809693085680811461772673396392787888235238864904449324631082772089689131387869645029326012814379153898292620634830304919020166842664687398710727589218201833281685203672090990487740991612597723774731830504920938427981739212684171420000564212368369227305782984959066416325398804140406589464865574549441197497986209839156204634084339125349205479527565625363564039479629423661853158777138371976858451926768698520645492806101972944665966461707419978874653381366456332880030481777861008306500085642765062145459783519248909002554524356887980924543775499281940586964470308446546286544903907987883715170659261509125409803945474343307388169120539951767390522012153869651097934121548011964464019761045597348020896261337188827636919815173860027629698737395281066814726081984617549459016983145652501716454873472073708796192600873787514757657330376147870003905359174706489299109892005485687106667539135287299146781328941934356282616058167319304425600152341239910631272829107777838408457820844595603208360134761752820183138554527592995015855582075746160440379206373322212731007558630398568091978589063166223181278276605097393978600674749451613434913867482568153132965236879723904674330253991550437575182759567965446834234219741312281652896986675564712812182792414788297852733481438655189300385661434946663018125708029148162808891246169438138448309943060470870015460109956662966721121463578811506571336980167569090550028226219328994162114276207100865115690668624240303754613426613015624664687665449601144909552553485451690777872904438022092700302178917243939029547894883873597922504547024578132296102716327376197690203120302361788817777058978844871292721786676817980479597722221752380028701172681575892604748176101260468493718942450197807779938106561815678872521426676562865019658723148277740462326555013834529704593088245728017993576339208230945856329946474039853309605930789864560322529792699119180312816541919939209847432494500069084864967203467474658338797288481284968323603601041227888484012245020251331238822630688526541770457018478631407226772093790938683679422366165416980386685135994571425103478478521274136135567656873074026960842418776828731246494717290573143871728462803854353289770192688928441473064606292433514202829406031991477537576204803428467066165407933280848663711578613783468845075819324425684391475776364117890336304179126848271733435676534826352922931096258186840609485350190980497181680336839822080334695079378581284367681598306699374810808351739829569022393335122195132282897668848678266980358942495148627401576443860848870696342134967857127278920437897941179871996473387635688096202112941299290281030625668432761671676613664489454656339832376550865913695524628843760941970089164533513181276176982728845905510346704928212534657716437443131815151330297807088647050415867643063924238444139883081933099746955611859642742737425459284030957235347766010915197086225214644891649652921096465969773822380430823040599005603998798920457475148761129807519746796422097510928004253322827460806637854896033926982998255467076909686724449312839609664503662279332902239282866113676056121646618551948088570481515496872940031535051936222859527059088690654484954819059568762787924537544023358925419381288995835374441076182029710529888680015273108746799958839875846800409424479871664900358905851940022675534372023993509166386099633207399122888614303408249746147785772542361175977526067119554609965312184805225417300614237696671202706084988700600785877242576142773300954088154547550403877095123907478431603101575579120465821380484722354778130758905768441385808088506848281247508125204945258469923876769126745117592590543127052645499945651178126294188833039853127692200315164270939824518168381507988705043337433051021412679824872166479385457478345222278324497053603279892789350906281240949282214673366792878144096789592531308302652341074649112432272976639399754618172912587969726013580669160277490654516442318535264978864076943278997579658263287762706931323342928032797788643437590443391018261907824021684777195996906428252740903786112527773454438273409613366861834489182038446176434910599073506433437381908135681006529006003242245414447499076469435364620254198409082381854145851264096628399640884035165349034733317248895364276494677737571039192515240378524752391846490233212559041174817118717362764592045090411862421751147509393572807629528407848038410232185490191895513901620412349970460744815929920851449604919850368575205643250657208719058541742951355024293536705100744635145940654638298451526025033696044141007143229200067140813824234551807550168748781567945810843971853618342429186956958028290887254047480781990880768703769070123088254541999395303494308060223901586146523575023563578295000293147527362201926465783748936162617127489391469311086976433861858947196029435392406153953475830751710130967688082921865114313837621147657360278857565164068920712284725120542612011147366664131529772812933878765294848230033144009656022150344551540163210704548292198904969986978540453010696190667405646034498526870754468479774583543455557804463569664969150427842739380753617826959171966952243794118434614673677492155602376422409222397470468220492016467614958119952230303055966790463574482216729018420717172530681451756804014719959948869916943465667946620062695404394397863212478052219410406865100849204714421837772909816633717835673130267045210118715823208736054795633574552943332598004273457037947757133227843622079141573496705963781888847815022881628692987690383316743804989915345223190216466749134311257792687835749226298890075413602067847821795995249646532660358241148317667232574337813114668896842845152200159451084390754952403802246692792861260146179325581218122384139117796260877549270630052786710958023490728670967808883677235601377352643700431563760060728013304165304577930604519496967816924015139445882407076461442313431121205966776896832049790178317399170383386162081709583889192949002776189996521822377061592576813149291238691652617406606307367047908822516812703953959161360940425225548392400225966395722821141674820195408432452268917537797805741749444389676451822695848947843995648882138429025996907580309436487737005714777829166617000188236608740473163061850213623891493568811649627860431163989647438521713432880439052842881193056104893929956434535273580847354209780954966137949708525428873914836930360834147906391352101297460664064370445534929627413648497183173282455144949762559510374610502815769855294741859783093127894227122587065501770492892737898878389551300040634903311505884748383218974868901819914764061160128816876198450493081903856254033183319261010198485045040441633057898505362380359979292007996188587565852248309640856253753340792736982632153544434184086674343880099948800491469755519284479142679850329454541327785735356631252396607304051621513384418007536880200752361559829581121166229237723492794389341285167407839124425478713605013052818716580208331787952031318191294783867605956739064954200904864027156280403927665712944856868877330749006046602984265781856629624503409627590495439861064538174536657648839788754736579784777227531087024929880021168497504679068347292241671843470519458912188268147104064080264896853013329837352507107654919040404434435987153470940211634585178141313623357101788214212644105501918882428729391790771324084323452474548768982828265102333261428449027671521030687647884967104716618518109480380289962741786386702190785218882448950011687732459727510291960897086219982358390513656605716264164538637241775048629706214599333596035765626151257817060796625545726467287618170048188790699976452651949071035208505834479916251333645824920021793483959087265558591140711165096779431538450035283504811792323611531007400334975191950564056428657208885492135311378427989956522675285740900959739984064283641636130606455222089304729175647194298196615439281158847077063979629902132134670859868911988881179479167332000085459480816610115125875420311088111746732746104431099592638947398906090517674405156008985322713433984165666026089844687033213888527401802913004573119629971143787833423253987393558839527181200085528556202933672561489642211131407744765533393484920506096170529158678660269095086511436630585088574626234081018439539901206267060521097784289645202154243120854479068576899489892534030415884829949412990054986748425741219825780927710732489429854086835102430476813583738027648504812004098638789012022646006847810135685860400721760467873470606625162200929423443427062599558560730808776954320464486149422114918025288774992333073366183796429596329657687996920665735648870822687037044507039315070853784100629556203026229748852348505299471407675339350780586047237425634910780533678133292397935322561908397716384614190447530966845318470698442662576073076006712564043365472787665009761175100727885096286369527212748540287403396337055372768639692761401483553925519199117829287507910220341646322039949034020182242489999836777590120051180770965979550175879211333444356076595340455799422315076710992185732991457543874424610238638422221485908602049206012081963492253326927433590048164454803793117986809600775212095988289336180598418558123587399008601926006168372322988583349733987871562962140542011942369941521768262584930088043624432433768009174937142769993213374470023313158845540850642974140503198842816533521264410289487347447019897310496462949842852765711014226886699522425804868640262145203327729091638089318369553282641173897556775254999209084211987900661686977886316427524545683842063341305423992576235578808005435792374362597377964842282904511355393044381339015430610158742800709726591655142326428373697783184874926301362638971580472490891423469777593058173825499569403719298193572511402378745067161853765356719360842829660840815066271776152481035796644808565297345794932843262015494923260511368493821912056433255181524506988898257587431252242829783584733567294094336481780538326928639662327962830251532697909440976235699529247091245918592697392550469666569375792058822384495468261909489786536258600325282281814870368373816691704857691114974357217667806417599049644128284836194070687909937698205936512465247709866772982917577274985631478680795538886965327137077423749768022559365396283629043262707053155065016777863766607597089437768637080806311074480867268881152503015647048549196968792696749311108661721564991661152105481300912918078927024425092428533262462069734257757659249832145782848531675528469014154440312808515344610207068980598465678095065881599550472783775936565932193309732762052710045414904017380707823805116529978037378681202853184078172051796676160613068213820906110227730502894818082391164864602724901651536347575528199034185978517196928564840786438600195888656132931256302221768882285854974669356277122385963468945179483240200732782604484372028909457856035491172665125382584592366877111098776388547936646931635922385067656961852522480742895116774842205307584066981347719331386801139879243989181045118843515272255227752894649440558015999874273379963804854253383117496925929941662799195028019231319517084419705815095749516583415809583426833873228253087195975738630123593217176877097503025560635247799892536717178365258224681540151213842400194485795897326286207505091012924783200017676887370061527863700821938711473778707773125037465937420742033151703226655016878952683877325631149760596782169187212656672159867375790845265090270782682782012198437508677100785941274673970271776443913182419600602196237643246280190389950909551381686444891956255415054066681968191429567011034485014319093868680086131317551432944862052026218540135833727523912448251324372930096123301486481295778457696496119148499593189787964706395461748626426403634549917139449400287871316134656372284424072579717985474878641504961007266183070277537368139852221301895780817931051485315203967655548768194278150415605317888477210546826250437945801677781862511569502522116127350170803295885613392860462345472677072821345914141846201784373563189992961561678796723590301652779417481308452092342901318771727530355298840382125127117773177438704139330644882179724069464138942294010291822630363473123586215185705358837025566540269992673995083489601660871850920537491305794717554995341394857642289848405074079322504480859973585841147216149714721759581935791755739092724516801477303731439110224255180333822526970185712797316389053412615817330024126101832310736486976229071246120941053912381727908540583863144427669358433036797097425129708672887889129087283889398557933208454645591883618632651422401411514305476900923407597325187678445129208353974627568111664631354086768669458163560845597699091551497539697751308026451573281460255229413888109330701452198530202265098081684148438821242239776090475267947047967776369876742249609885601739984444952657790172782572005358372315409819943970537446481132454068936934256504651043779257318751914726943873052582039983743418526297408000373834566030264351443562982242219936519622586922920534178553092051508395266352401938756264698934955270000734227506333797233283432509065067543523363540804332978330318586580472338829617652394933834988408737562992111762652062847306726349315520619348508728005247448942024542357236067693581864736815308904864763843288200227631628876134668020590937061736759477176608270245695091458769342710399221058817976231606663815401802875247625736713007911331872628066800338412275742688132532242476478387180518093008374763435121847306183805578254257383296174343786503601578736190402343472891946876725763011942615035387141311397372509573855910437092042729129752735705282287122549763358808872886214022695673105822335969915013060360878060391675133199613414448771290430894654810352455999714375716327382158267471721704767189228999153160707205704929947970234400659832101028593921410027942214441659726982909647631694672418231268170094520234931550598469349361058756413013505917635960014629449612106670743713727800425351833320309709839414521414466996059809062461492529653693020395788205522516467218575194408342595957643404950990981653166090839950646292084064670452056010597032481319013039268430003971108488221317447391079210653227919914455530774694589748831765089353279550325694719056055704928378677478059486746084957130341651421866996976967795942482922596050336987124572192096212158833995435037135797497897452517056052726560370117572817040053077275134080129216068779926351609192584426594065207901746388354680251983770172933977261086763759159234488845045049677172360369000946756146954566338572351672717350632026471658756572095020122109929135134071014281408099769339281136311580253090781487735870791173584352313707241513336265019907207410317886370263143245859952020447489483080287590881945063096923099058086972808678994849939947832587599291700691648819554164830509959207485721038284673330480555856448732585224030610261603759137156338342871982319618168085902502368070590232237259566090560923294785934273438312346105494247489199063863615157363919711701257990429066378649013884517431485146812270271489689787969218498295934273311838684431610831991681291028813666386447864712679701574108078461992135649126843801468486888614222470949666270122132097960776484837734251883155066196929856902199890953144643529422121031128649537765274903610088564525373577447654519214129857404641835563535610239926166873669111270006971280035454112681963105762149309321471058705791939331578894968731191254424228710177958264370781058729156128154708787567623986236993146592525118719892962491402532961408761755770611975576008041156240494339680692212742257015804613123541456694917481287757144020089921852057588661704026904752871708752194934225110963331679277829845420651519992729929104225825855849775412619309616434912947811285688546225293832020775830192903261625404231824117498771568766421312747574028261663598557350178509222283150701996165662983354973936339644361622684615110109613289943404043745263931884470701214837334375813388770860417878012022448016622544698794796273783322105409673117768868542794115153739267752565966108487945198616723587590880067335930484576737755386774336867247678275048643959273056643054282071570902930355858907771973235174696445359058670231507235099019088826658313462548255734309448764892940240950605003986980275441127157901089342463617391906064319293278546865023127041174754189519853367279580940474344721099150924751514503303672199260378541691844415554514258659444917892038336437398738543001120568095220429220022182197021120553784368618990774031072693189957998730630631637914947163903542913839743809919284693247441926496517203332041561132274728220696310921870919134342964493775850522941096019701930053379359074154698815125046939288438030707346070961009815793703878718993530688597455033687466076143692336242686046157001929808458163349069385055311908251231906497743191625666218557255791545589621087176008863223991367961275048681369857602818529466102200136292777324139435564975229341104452156970128954394231987490814833387259857216628644613773635862201237086311407129354983724022842237535826246114556624632835794801565461477032461602798029244371265467225600345263601940479693246206462581194203874773733902986510661559299794572413415928230290648482059002037856153221407460580584607316430038236829314555028046707110865809170441087880711421007052342253723918964961989721254976442037874819594054574590555360021820992365339336970895159118711534150356687385431518773766000971263742870043385536423511197593624693576310163733033308185709995212631419366596467054758259255940661045454689945013757681399843779444602546543079629617934879089214892285301156023163875264263674325728851813715271682549108618221661896617451290907666946719364079059901131041311967851162882856484218001274748254687512547193609110703194271413068711016507500596681113795192833892694808578199458299740265168175567241416872886499919897177968131331120090926087102477071969800986129524139538806938571711529119809874762627883251845388668372951955394988614975201040461109781984008992210546887539415911029665088242797343785756791124521503423132065681276743752820692764199787269308668999274593760772634375381767873881926853929517137147340507983603427868318415386121644794210670847130079472895172391389705171069134448246873617225324089167691911471726370434180137192214231322291708882401291127456887307130652238735084755287313936826441175631252214578298427730691397471425576049267521527993512863028993310804404685454813536453357332932909074344375018371149244212763499941115734488174007054367420987442544738177980601939952045117528512609281476785475901906927456544037663502029438218436247539333468654250598491101561048798547591763706284905681118324249672932822765079071128566565170486746941063533270540708493493748043744287070371337614376428256237669572587895679927486825488442513145799872622935087510575079114447075320547161424805845189843615799156609655891390735937781007258814962979515226276737191556000832337802145947810564778010991902182469235942046258422331745724660257710157660196865403890399952317486526637912323901997411223125567056927151328811681874522168490444390656278704440435800683355137978030566790295299613808063080336153803879914359932966248771519086094860441337093942317147284946751789865663724943857879211513922676096191294415192661734172205692740634986221409285211206046498920312062294809364529917122917557015486155827164843340300519582443368086939363764933368016008612917845480559100967369249718892284775416641094500362266261380475049028816286546160437886162472539525106183472635421201754247581950004155859219551613783994465081186174802792720257536596239582194629384751170332234699945356268136208674412236649800713578157733219023158543747818892644047491235799925828495365813243826792193833131399017936283370090334255748281023596273191776274630867607934946287483787637254781526376060129558959339206905166090390457471292723486758484418780465247397554060641237886240165373326497591704676533690779936302189217439038514299329665208258557817251790971939316404867679690095888443712468216492262947293829988961927014480472634979273070690747222471916832124772640512153269194591464452274910777931512631218302564275529190350688726407667526007219783853468272600963569535054798093335381089539581083325732649492021119626850411981275605672446283338087817231378059367962335554682243102103784049549384675009363919308221849723589965881862102178126558693744351644183830757119275269428733440204913319920215656383088744312063846788288858759140138931506528185456931690828558665307072673900895572263336129555325871736199702846451158900037028686604276027129451893914069962372396476186935040420410822346751444130165790390656593673435470044463937180847585396832405128207186406629455858557747996560021605283288541475914349994762208664822320649140882282427154909345821154298630245773299047191555551932948747986981444809449978635336813408425432920344978041408366687238951779269596583288216408698590918124124515747944453279245525387215621177280368850648394543707976788722726870483071103075668629571707013580454356831786993817790473438612018788390461067219953172438484825834958026022415537219959981689739049516007774088827954092002996897370931872105499789852291323679542755642038300122815288821119048438064954061357831606191560026563048153966524473382164968907507293866645493734220501400997177168406713180385187597099978995560091517293504345086703170204443507683005113298674154954563368916828894944374332110609922144255518413373931582718975062181758518127512461699291159690823579215455953100578095192601362419347658722933954605078407642246460749608070872678150713953857640645100493621571147271420310516701773769557298669413379507825616904189889445305491535538272625688210210636885106168580682188592889532424022178957726738533563997338747873163225970341751596162000041581294734313819130885431212695807698814725693890257522774044725120104024219047470874056449454361415881332259498862313977381197390428003218589373068744800040083920575016962778626628506879992738463880299296756569326995746054744236407640452129905352610499824494150128791887611213720115404858108291016060490843377277791148322619475924399784645614459605965053477823831765853419725967800919160362203666977404666080814697993826607889755952711521670031556674399074502914341262805304786425318031659326313103703267038594436846551359917475987804568428900725300204329959619410179745982978279803686744911900596040369677717765614511317179787140972222464481944660915972471377174214377061860943476172025181371775228672535687763274327262880684606496126364872667571243187444166231484003574266431870922923069482780468375477057217979941469986363345736480084060415958720169487909693289858270716640050559328166476495248209014442450352986535193846655283024209634826305708254187886478532035855403469503717932396274019726128272981561410506676638176295194730032531905642751461983937526326007438691086408140776577135006064836450272748258473281859582750862454905188690906046688285839522579285814386877860312436176847104854843256237854990124621651491883812362717663131667757203883748480789079020457827300940370937582046240466264993367527159056336018517729854739615439184094594216114522761387457393108595604907461091193207062736882680663580656060737930156581667234505021487098317706961054621255799944349389506130769149281113489002958958931617092697064617261698811004735736040594201690703485394407710947480093243399578313273679160597136277904702894574807638213758089372689562834083472360027586093680549360372597338664774810299932774361283633773435238256505655287522860491402762767357533614460711532763649196973621201263652773863387062869823528300297978590096273238156480804943739882005488840266699427049020277928498658311254792147201343979450883007113253713718929745840538168637758089340418806189954092263691470734218841411096869833205431612082329067066228005087211056934844343081846738438386883594375936958544275516614569202139239928553924414740813214945102406743022616124103336355846831976471514071575334507541532093180707632172069904133729200774855317760801549143551518620395446338591621848663181958117832014924456152535655798130097207029283919403353452794979481866121469990493098597713411883387958378793547090680404996539056010467803800641117776100058813308704235142942226406505614324693905639023814713698460109173099223139649240694364182198307513572911988135074719307163510146484907202528667999078912539392956154475007054869602906368896113276231174996205234470155944680881317990186622808964627389156057634171903888674498201243514848190275432260607357779937963751852314716513952256905660375686791609914618479831020690696394613982723238661745722100722083234386693500712326131040491690374956810461214400126071238630359341598404057197370154374692012203137722446738880201794589760989724727048651736388223689627075708187452306328205023714754522014967592541989021015196969990375368530981542947318392800052753465294599169475969664607492502391948606593585755079355173345913060887058181702394010152696161816540275666809351675139818166821507808609026749554723363411251439426980142197122990267164102206259159306574440723526625000786606825232183648984608014992594289746704871296895307746892316922762109721144002831025896347201301656549088970775948825219998941103185768087859507776883905799826582510833473236827151134451589988293552637019148063944762162238634457067240810060704715194520360194765763476474156038719856726659095788229680277389771264185839188965996728530924453013548434812779998088279302555425545996856781711231392941752291859178408374872061170830549051484139739817311946182363023956286044105647723940059739643508222114094698441234392052885780277671802890266756712968147620164553576313308450850549116896884634836020126520113303805050112026734547618494579082858060508433661273557007752515429887454688872254290524488987855264973397896311775276588620655534653700492673659830258287774419189925264260544487170938127757863774071137142513983508673619303246590450715738582676204045466030050368365109839653762408648993019752489895423578621718342395946163357120938703830120188064312941929798043631821281308382562805312355977652748020355744649222786812055795942755331449882033620859294453384891824841768785099342596317941033114851428066370502574236406317858559243097723502006260741763457335508657570836713061949002705192522652089375185669258862012844694188733083356382116296906515787518648922566835607912059623108649031481221505881192313988349503868154940846962607203979967036883801404121143855242578266065664085938870141183071871593097818547951379672635610459002412196300405218705954558878988878357152023188016099318044701937241749297859574081161197442788442054927933101876669125954613143091757379643734310758245892149219911951169772896380504029116411202214591175171051149459369443230113455837975900290439514209482108241738643672792394912952068302948861169493581693296665112846009494435788451069022413137116635935132217312662091669601617939415433792687823076194085341530771093102672330875721092192176440152462832859502451171475121026067731061186283818361967441793011774026693017706579519258576862354745574847043849312071259885474630947013525469647886542447861495823901458806815764021374491266505277860890335004579488853086698549212641282716989459250314234853013466519442415846175508422303985486566937171963351973483210181409056370998112360750110100294468922749421060549521888257970190755011463918878079654571280287286117170965176803589650795864509208204621432079701671246245965073143498495207953231866942715718106522077759914485521470130732701533339617631556882382858472287581822345178948363446742056718162402241964764015928360098406122348838481928350412661282040165037898593251453470186895525902924943011360888108950089244397083046136023976748431095132153637185209551325786722305640133150566463940362971585605960857554725558154364307397414150434736547410834877002717747907464386591623568489873375770167182533795947299083296045827684479411276209457994911476259218980900672859910919491052132689607139662445909532962043669966084996736235504527448792117815119437008264903943655209084603989495339612587486849260156549964534260195219033791239845591673821223485021945147034769706032136826176065367872722492169544133234385269057384560833418269067211952899336779784996452634034623639782059819165793988920312071409229519574822619637016032047766689226070883253830644104208378153998418779216820806389903256290796040748714214416925904913153837709951919353031076569501284962796970287431121798135292121331672642751414787131623833906119828618227658816241631313455540999404918854847119096390961658693546425905670005060234200769571128143676115761398334014143741435152182249250358006048775248145167255365782245586961715692600897598637053214037457016896939502398850768205362201531731393700846807560478363898210666834445612921618555781439728425422529319861364430989821480058449552716084306108501375505470536836431569202985425035780559243280367684781481692963853072715825594598416505267715434168492599007944592959359509123731320079569322056697241148784604896473698057674050392790304240953555852104308262364701606806866540848528575622388726824803248664970930388816501739444492464576667543437189222399990868167992114936824037410583640678737024908364725896126708180478707933994175202645905941355229822986978832181034159168800008754572789440155513949798611997621889731783475407578670787649075309783646555063075868441277702263756385962088543661113605800650550564846782497018276276976288637486633977297443695415796244835755629687868861047180856151370584713442642764450720262215918588733256625736468711724827253210762084091557571379054655038617282857755185664939220423964956753313609352762125665473092162348539931060828483040718607455743397082724472701676692349067002498723546406053585702845470847704496430394692483487896113745132230375998204028068167514743813441614152771566706390708016299891972486473031661136754698701823396792044368669349986496621324878066583926653257827166723825025102301524877618588859639653169907602040852164681794705793987051073420860017425861554644286435828538845146473052895531573940825994608202600534217414054093237272503717437461415321603305912937676024817302837698664104682617471158183587432600748071836795301558302441471041851578039457658441398241781123739434924276046512797555301316609652897327229357164454563831120830700300747792638382768514422355737315992085690576550193319102458887254845017299584520685776142394786306410060755436740524293702259716393591441111771184926669621415350608990306203916541617883281316876758273748590142595245923384018649319036924789361032985442948480371871001856579354473398046307933498653275863475162119011143061093764225690051102717451592207829274637753463434496291589342193895323719038590068721606519329255420865729890141023566909584966189863302290996100800018661710414452630133102043842694179585179740206546507569342525717692438904099272011496841139245432966472654667156919020771821985622518978701949835979262057396041207638914507765736714979627198618296884397725343448358180357906622518701234956060907778854890117280255477781352171435683564191386459182743183859686335859147343413714762165439087922649814271070637079539783862465066815044620358971183949803987205558292124016104986162194182093854346061699331451603397885116823936112148531242660028321493259126853885968564389286789244483509799081260299285768292310483251933272239677549961463395532941102843465814192024581646782424827620597949778845079307078554284312396297770725001297871324633669764945133463956500652855408292842814377421864806961779942652912051534691690132005025140858466095233155820030307284206615515638398091229899465893225746302972063855873668954721866060790002393297209424827882699357623532216281921509219542063278937014339689085337867626361404089917457210397906048122839710996722640977546077810122462209545893597506634080129417704948029087119962253967474604946583237957754714196873227420098565726447920872008081977255077209436483859729140178526967187668363382596238731257188003022911488292091311862843940628714398479093019024941796112965237991480764122505840110159234615411094849785595502459042993766378163195585082961207501840467567573576216516922743463475730035118094384389579733469798823899566733416881314002704023770352157632981428401658503507947985826778001554763103166217264995232841543269769192386840378990786090261000851409482009403819664942518235818756856196320217768786019333733854692197532751614712062503982303637197040334838407860202843347242288918995064841903820782717507151984836215022802966888595817058990981515726245508524107233878357018673176020917392598292439430745719011109741536036399612954381201411756198440267298951349857818206210725671006317233037214096175531309453989774091384074878982224177163893198239002910936028313894596622662456330806169289413029688214679705519479320071711882360154772794542227086939150198723982124355220296067838296991179247191174056350429052575709259695103610539960500863225297450030313967817548840079633528396582464132905306819773282918767490425452954722724038684681165149877885819865108760823047973966390701612892233347772721140438381031098600771575936341939371376950192352700774312070925117548802676713686857829350515347038752456116308871279547426957787019673755412042529444482097241436200009631492886924346911880245318270962693500980421940260665427085735736495305356885723267422771004682930418005792861387743889115663031563658580372970880238363373322402785711431936458012015364857916295167419024589615979857800219920150730415032026094415737027904068786392874882491353136090951324978142880293273728524272247211978589412947197024280514299597251380742514749091502989748618443169673441184618286949054293791096447540252203965374899349286768344985816333043091702043841911047135584141561611809512833605934478615617821753194484050347955259197303101361582324736175450483400623025652410239956292160332853488543312629262189995790406299666842648491690572993036071246848126631836147531892318727702223119748391348581865928499314843286172897950058222181515018903537816959036805858751124076705901524604424921590044617840182619426831286997680712495660071344926533144330030047359002749795984405458687222017732523246057631740290414278841457092234877754323499917086612087695774098779120052306011496743893660387026734157582032729929839686186455921737288896147757395714894918601914145926637827966751464363593428848507671693118671677762450884568263253069776933757520462755887919067563472532993205792842385288232676388413449341235979875134707125977287088377519812033059488461135089417638271910964859859258073308863584989098090056442107891639787285900756161850517378294347210704081190168436857085286748555974856282673563704858618048030168861234316039850202402142323849840334176765578020256510715199805624706663948261578853055728344948579836022295504326335828376180288536691869176756868377958310317707175043077259532368704631671462200270039572343441313835197990469403142017599416366476764852277696816316021285209778520421537886856939362418452926413050195241424854463258454970242482126698738611029837000070119684814695516979950342588133279723109637221682382012746990383235612859059068846447738579209794792419404703045166492979491847636168974843243373445519111302007871397607246476297601523086948591192101399965343357894221372912743087195660582359460878674151157279465734799733653777890059109544886216063778043061676101030063768277761087241327708510413055850578028029713894636508110851877709051704610182530917964534206946896490192823580226239873085060847459026931017246296567067268689670684995378211049857415589453536802738323584872512996736210208449651209780509995584447549161986020272751686394646706561106485871198918598860119939256808348841067008544584749639029245079127251549960623744244626185709805844863380520937340852532400235895842522880830040396978478283587923986399165933089606740450272883037139026248748491557598258196653919637135239914691680568366885730480249743069103039591914360959834864037014701318351941421626194029544932279979656115458928079813830352925264501512335663738003876560450641576343479011106725552310023530916648649310683495170821409710740604887759801741754140746922833396823067828210271478378189803557787606471564759038944695570891486712295171049621163511763742522695301731987460678770152159067443643213019372890260903811870121132726451435352145144063160431433632513880376382418720379029817552813835684374935656301158209561521996069863533171943148348326823341075314326088018592031815128562005540816947968040346494636661556382338977347016343700836401167082002399357293632232059376719819797850529536440475512413705996316857087503915139083752365417402898426571581431727084387609458090370203485155770902726051983246832014999998566496684240754209430396447200816787695781112762668379401717429499357406860850404460022031392417700032290590424070349920454145766404913278031378695103003635009785244431634506592018499021649076451329429813543248106922500792784823623889066603119917595878334976477248837416693002193910769314916378480308734406134307615587206393817543261953490886906696231955118201470295559399285641131331020527687156653970393995900166674432641595658653456508056159164937959494918101303332750007799002242540238791769586051280983660170175303086089252923199666471860393788003360886801399554115990901480944432646701104870662212486125804233925535131818264441409289242352706254110884289270628355985695872344911713576568604102843976295675138292609896502290897148897837916849503885253959589154141116020370269017071406831827044932315362175144936277784843797301581680854923424530245001922653590124703263487410095799385472006964577958361338092010837829407447413494062897071353005926710353365941308443749799186599710360569909725948374233336925992787957955759165079165183594392499543754994104737239059382708849769510115004118343836190038082764694643020247046937949045779170012983624384130227513699113542397971739397922148922991454461043406207790534441615947702536974051101914533691712587632930594294344510502162834129339785308823983539133652672733695939099626194030631823463812711661320828954734570506988969049962597030180880895824269634041223293545214600156617946305714050196505150716026985426050794348651396375875921643589307655090950048974978989233498089570245853795404421560607526771328306661132947841233071748435537519692316209675674703605142870871705112263218521429376285933450857554649442040995875738410791969153324185040857105211429243501827527188999536187049651054461900857763999108660463928572756792546019273342024427006868355154501786850254964544864239297495157568011045334927921220891338791573806418103521706464441820847987875682072759483658644781094285658208002492652865001142559982959052795912012707720835632117900864122530231716634828088974210953273012207406265005121267268795941545268146338210269839540330197557758573617727962395804414544049610668717567157979241253186279036015246258563645199918457899024354249369266834445531108201751937845501284467537431425098262420163840071085281262143005299812132999304871205494060476843506718337105250257412629936501559506783234663385706274840457846393032470891245365517935392129346498560208565890811899257547156427110964115476480209728624004518592602921211447932637882271897110407788261751988540375226501188461549505896430106966532331957666891688608082796594156868163428394973690707221013046557084410196001652066652099813800770491422193418956330426465602896375828702491834334665634054355274786363176946322746205836679989437260671458683665905035001087389704558821193864900035828215250409685798851529203482861218141497903384583673231260069074884940112248868267093996855995617481578500408297677618090977044763047805367574069212348524404263359755491981430395845738652406764239288511785157171955216527656561170786508817682837284461243156258855178077955310525588032347964833309797175545489281095081819050263018151336459204662622397455276411882265384850865922807521244590010051514971084952203963640155057888292798191505598689395633118166346062600915398227313920759551082759325107446503416086088402743752542162687416727866570292153514702741963684091921219619329864784153514261684975744548600955691035892811173800565550849080554849942401471761402374430215010591866798262562444080212687137105324312016225815395987335029555560051723279607802309454407219551867590308698619865914420316495761770942201363895520056003762816377339813506588312930704660914989292191943532700549024911275466813700190382796824557880468949336236196604697326009470041924216121460466802711083920734145300688131545334449295044489246464894110332054105881680588208697417161179597959170513466833368121300046324912729336678211572387899092534539381908891699476527226078053045464334630108639891888507999033903509679413285893502096761469238248836243283640135418104416457483191126487646668894089271533151590266056592758646562475596720766304620642331975905375472048351601810759096030956745139890147485265864192571089777527002197452960807784559082889019677234968525728485152176674085087307303651232951014367168057900434476567250429867590918415082284889852569712766908901024865080014743841443575698447455593008828443192386938778373747448720080790596609717991834638786702655468221504508192376196308464283045787092080159406811791133413945672136219881712722911853414116089618206900995741611652214191544068658854666004877618321974168771583213372345934429968577818180791571160232217782564290421214121959298454811047051946108915000051820364575960983770974286415574157396330267797313006966723291854735592772442434804418506687018630095671492506715209334425631471838721312711190884842702167052252218377915129895702827492487732838096303243968996786478434650978523659684604995132836682495834665860596410194789501252774752724417853499746226707372533283346196051956128256284522189533392606574602425830122812461083032857164609395800005153207208031748404589692155846200823596413578051219141585084752416805252521940803472849088217599808633398266282630461505022566914082079399702002839086007956117341377304430726698996893257150300678705514343424768199223026742999516726358676582812393512911875286104481031123378501536439385340236679802715525956199725090390491659896900261113364483517323511226530192106465492036842229009800577451633734911642116969474779159207748013077903876114466764292741629081885108163467509989218284137030350357239240276664310181424509581511656795742975473379065865584505754976898443295774008752943562562175059588085907855447178635697848457251937716115526008354614270190898947621850649397554857979854092857360559046117916431760574123022722303536343602950826061319671097243593137078095090527442255208861955800267029958044225849597003568068699127865057718238854189045298351651483349198734058830506575897904605676331848261297955301857738522170272564963657269898982256469301352004911861682764521597040690739405581630586572695678220478424315014553306076970003965119278590790967387923994745145338409564146354941858564102000996936295829370202330915411879156961057114475485675799204299784654178153315316761079554456733317049011386177000816592213706607288777914432621030821539481201086844395151112470263069175287081047269253585020265692366204923319630016282978067968495514355835866990753914605711547187014480826696546207684134637400402362873282014392356233706698144283058988174773787757864103846340230823120926982948757959483050705212206522034104841393169497856735286864888603874713210740044096283272644926713527490079145436229226591649342925487413631458942555997089208258501848652242779290592168691969281760964355421201132294789505246591510378001022748580959342345614539449339162402646622607302040719221213781589289682293016737263167326482535330473475995175478387085016894114133165666372264369466077816535528967248081031213256971806784554838367110764192644774019678401513979942449475097711993272609935073754090623681055642755718438838140970560882634326124440981847598555153788752987374962283061557909040173044965587994068808170076531652650458992220621909723448903789104693060008942541939594470789734007920534239925609326263168671138834795729160047929270935123055994384172079627196207404615265535632403673660430196237138007672884785547791655066122392820343038506211851863504569493755214444381346928376612540374525041918381348133002903864893596671654133539293113791776286874033172412635689669998018917819509553729768604124445523063230226162091600374070202599264644180739470086050503616000443373658329839333168338673453215605143538392987425148038819190914573447164549334917192472988558287013682883008837944263991814091323355208761550965344664977472400331470854947205727608281266999859969127228624181563639794240347846343913268883896551855258348624002918495021670126833211833455810991332669000273644067477269431700231907388103938659767760812028781856170129040176420699642726978145134142132186849862806941045321081904845836924928126303304328080900431625659673120286951874954633640278321487245446715742160897653485842672135434554027037603814751137610830299919611784271646259200641438338928696374677748283696931308191576707034405947158431124582101313284490563832707987148411130515187936564623969174722660197737900676160048901779195974733796562219825260895900127492660814137435167856632128567357264086866062080047098756538709250860667071233489358582711459267281519634103203751601220995333070880227772750759015560213248923817506913149791012627350422640700827733891054031101952009082985295130296409883094320184653824299782952802401811917333791129567799818777782520031839570632971188796987487089330919319553340700491026929365835059313562845193478598419561484025532323441252357819383732676306349269962878082840507890548044079254865294564999654108472119060617442471499223683779377183078883344334605529763776653860055876145183000952296441724090302205049017635202508108046758906738056217865163285101446996942285122891839614675902244306007553980192467642055939693613570780783703152540337801362377571422805509319037077579170803683223074692651309832135357726751723472559079948786414509903565883037055323512437426107313087062054546686277719248331046555343849457712390615709726392650735269505555132524615142839777062844243085638371175847971616229632897276776950155497553330255569656232794649044995451146989885912333197721166627117256562618495706945522942585518820858370432410033676355612178587867591754968622052325305320269232343766986188137923100462217910861139322794962113222684095313050905337772709291068812714830133350525690025791908758982174608363572147480682848220146605961369683727917442052514002527835029034878663313210906502095581563047469295848790522887456167914742704065576766632896105445470644922167953131703807363477349009771583063244881103407993752345188977505819206395646929799281021376858590862699292304039414152752229735982165359021997814072212744545814628910279105790535024850705409762698535637803554282153039786227718321484273117309537394857222570215055896769029352789299165443038534397256742221385839107392438128996674764321335873976913847414438886603472263763792164108692794411427530258839539367839842273829241842729328130950925943781922866309570820061470106824352547532865336457990162758736222909375958769382451419384644189461603435259268867884877048907294546462206236618981085909786422500845329454407348354764586281145786707569236239336778579572525638283361166036372169543932498320894853879878510747007362640904742462747099624101718497675542873722769213567303162402105043591334422290506217605156715672823903844418314465819157898838192913405730966135050438255314213554038641535668364676119840716237828274118648489282151117095787382897958148393436081999451657898640181437299199393046737622004568118430516524902900988403433664795604948138812324830787026366218192590293799577917162740491681415541486411124073780705218647932104998435362778437735157830463283371128380219612985407770772733676508151932499310364176567157252779707305858880016614791644074312418828388564254177857402979033294100468324040064806994392711749019639809768960280551459844940330316927972740977970795003739489922838129638317413557386547672117462285165375272001752370061268663387089254288536828107529850782621124975532252470255213579941284212435556255426845889381858037244680838956898543900020436667615370803878263333293387084596580374024524256316569999258922321206416892413160705659638202249007773620823016068429322702812165836925090342628281311328930963284745336451689360039802235401624498274460015186794289103028229196792394716576120698374618504233139202212743775963215917972204807034830111627364000037652951079294491594242714717193597790040159789667087651271393814163009571122510335741164092808530885708995834076418869499706862156942377810008329112849856720142696285055613185997532941123861252856788437031270346545597353685893010782877166248381499839729840048665548032852986183579389316528845912500268051209578250707405598519413834184967908423684190431425907231179670920421594869644093790589500363418159470278475760576733984992151802720128085959058345249545501382352849361671279962978082534616260435976312474014699961489236196473868525540270612166880714422793747590388938786839858682027467860223830356076887545530928992941844201517005229158714593722390793085718392076081579026487239655073629903649456673499182753788487194728105150973092872861212708172576238456075802944869633533560002989732933484292670968097640189962872566868406966701888501580871436028507536724616260741769104984661192409795994914678813411752250884611200794628525466117937356941333677635322027853300242409483410937679879422153263841082329341167560944378748184306882308198222471296654473032918284922402495961799244430211328029322343225361434656936636178215448142897684746770178270750449991738015692099391761172517902243513738473900708901931709694924039164637615082238779454192334148430952309799923165243912398620031266593178137209365202442001751376846693346175883296606754650273206716649665879517372486941981666751221953363319333370843732090721822528378694045915767207317226419575532504160449489863404867377840529095788172951405686235523090559295355492314349300629486281900478684184213127332441864404558252692946214596984721835028335473214891067862183087829725577278899430990147257804978817605164239597659015542310341866298464789252950062796616415250047804815949760762221441022240189599771709860863877937087340976270221211489555826299178102204420350357272727832566808292399423966345076864190928201666914125320365313109810351490654479825372508606443956198350375985417963674282107220520460192110425036286376297405361030479666491405268467016199223123186318514733101471221901489791836675192759068366648546467854842204139792764903264355133837157475679899745948797652970961391077348834961692545633759884634933707858853985994900760459609956142876278322041303149254382346042035019396160576508921955740661258514005737210107377926886710738235378535878978350911060644439023339640232671387821109330625246870380790862905310438715279573818149222354785342551873442087346286285633316367514949001362902871446472422215163921042485159143503868060255016353628300768303386936057289502886517509382460295512029320265827259623038318830893384625457456923870558654218602444017433925668606018937529478844893717708086447174400121491252402827419895139111202315121865623667346950077020162014492739078069107133423808277139097076314434315818691628536110709192284823487569298593573313938412330086886611459459423825155619583322317335139779480240272379342266783927546002692544785466353686529241175941716853892952621355540409538242181779522495450685767108411422326572273421341238607119725439580626177338454195875672383184711915901055160815791934931298240183262622384975229030415104812823419256354010531545836959848155171714083102846776086824069515957091648986990382595614210719943064224705879697636655114705256106512821895486437316528820771896880978300953283261822351311076820062111841980169871046156925311966434710356620189279040177014044572625469619823254388336541046785160131916984446307610583087734947837154734559110789042571009854623944911481793457371945737025295445757907615056573771888624972318462910713941893363633866547403019379778947505074285291566148568787518709206205901621412240917936019275741143985137047931496059431717825152324335301095062822426854355952135607513553702078625091053389240729369852052061713684822040265587323663181291692430178392819529681046289521771337896648626778600728266645378985670031595670491919464640660801940706199531111655711067528191125881989520488747867334689859767603125619057248055631979575754865740123282964274265389948010061133540351573023705291607462182426787840509822802648975671006135068572626649229647547309172143078620919520534133740195774611026316279406268757486925159529536295210160482195269387182471775598522065779540539867813110668630482227114871994773452808329690044758998881044866967178661957278265251119786796343565812043020757763818939888269730217624545807041234326545525953980815742911469750632025635350273773394762595898217012191139270811263155972651430458607731032295118894527808994551070186733224701078536489837310622715412984439974082432403043389208625809259265902145929769442799721444266474413059456056981951201966025978244962625387416656622140521612598911291408618814212232026011849210057287914293600930221665099430780353075610295083376375317207706716417554317885220023331562513706811298228811320886783986306720652424841136965872804029662988596503378988128384141390628773062970916406316078823160554889565315094637610830918722321913782079328474205134407794345767127755364530065881721295955459295382196270305914131331530449813303197162479366968048656143407185414891134114423173519594404783487910584553680049759367951125981588537029400909852028372931679646107383738722929296103428602853215724368463551722960529644802984296967312236023967647413272634027695083336530251944894347301894350456361426144271102623563140327488549943168404940288178437747535459411152578256421152623729266031514087125313073929156079955711854289192334996893212099718748319479447461986501569151997771840036469942289161715639478542653014533293236750018387914704556832799873274698796924408070377317423265097047518569536979283421921315288802659097254874359751174062417210710576804664856869886102055573517827154011814885784590153655910428040432150007235263701168386597139875342968308875664868629373461824044754264579807189232224005807480401025896073293656894818053165363479079994572876663608773880668575330100351011778245906939644251738557207120722491415059014052059493238458101735476641799578638711962274199908627433818760725108171427792229087951421943614599371181847839938693248547775917528022315618360496025922494902251486098713160596232141786280636015262986053861048776509073889165508567000556916537792699589577705999518483238266786878672764810956383965345487498439840349677968119676077929626817201858709357112002840342682045947848956669442482842010503866878281773874051938873366382684522975406078349968712572272661210895759581774677554340328781478584217553113530703639645629125698252226729912273572335296840707888995015352628466332788962478723825445338627756356739244266227652790180203276901957826725390695489709777260024876966642975278367301060417427103444019975579315071831459588235681064491877187442573228505641527229335139959845126702822052064501968519584020620369366273873951940515532598202535673292868944820054725830217983338505021488080597910741559428192778777171195349027274361136455837490602904650862454916843617681553033117783273063446023687497567823726290269707677330300161705726829152266804510853941064652428840307237106673048925364478306901847710442645723528855736520633390435602499417791286044519607521388979347477286132923121382370710710068258561460353735946488196219741914860174954174011667486244983163846797960382121882797820060681589606946676151412905954457641648496231689820377744257856879095815436914904680745886698335812870155248050307280343135241268601457259117108461608985491430457041058579639540300012657048975709144587507375916448492433925021945038524965053133893903974392558238717214509360611870489121922789067021123053505239047725306105594353347028028743072972066057759249043374002864913533939304215446063650878400568714469018585449705024185180827991214720269236769605501912197728277072977722822830698959349755938672555083029397040083060058337387922553319343428334128080349299095887761643085398130380423815732012451756074629834540555144385912381541582487905062345968713693897654598512709318299887183959136462379252900593753790522116664427042923051850680064405483615847983283476305078436338389194683125729399766636712996941127845266211943296679417564500463947524212725017923642641829855871600804024276310625082462677195353634920180991338008264544815874946663967634192339949269358786871010048802314421263376928674007269360629887943547159930617998234866866141383878348956511270390161534053998623161003027770218236946127508200759208535754116201351587735577556832023084126928746565872465679493212832093364760219372117899764072864124832811367661979077565910078930182433501925267859330387169609217804702018016252995242132486402629978659316955541383298628725307273996912471657882244647502374302900024910855218812846385205099683406536319197567709256568972189180997113395670911291721018293825381415782224726828209810900797499431059129138715190092258748429126802302432253297331869055349610322704127953884584327319299349607051655802303717459001048738175346515584447328081235051947326784133324271742238037743425435169926181194178997545791065296142529821682232464316726106974888077159199060531551245647629505406118481660749140740785460167080052996927586932606413255295999262208162427777495990948982945514327903681714289356571156741715437420390174404869309275483742893572204525176214590918451889251898871859655485377139711200709305048583633025625569369473336582213909807614565824815944077199192144729587466630559802094331030127552286695397224172949653039366391340105846009129186521188944577971086186950685535152062610317923359554937148678794997992286708824546471102259708757347540341794796130180466887519119415643868311787469924530775385176021400167337163532566500123909918121486824022856324304219707572582734952066165641910022993825645548203978462551473785475244404228561439434242942589476930780959166296874954998070229852106834756508184256458674551622380919417887895469885019881682773101438091336689316213467611548867679825407900872524271048203137238313429237893906734289623900372224516095353515193108258886607794209292777504188705014452526212025241926076979018216015376643104171540739012793199102397894588249799801980057546480352161595225812352246911844090104170264168960436126384741254245845578370347682113658964603906517409242558572212883644980429850644214481157949443589990715617640598637243074410295599357585483910066002503785937674818660219930642299382537949924840470998308610126437744169743994092871595893856689183309392228277000896370064121540834068535419973725993015239265813152951618349249287697967384471956088099393402764631808235257684471994499131561992460417894383292604799229204299481004200878183658574882594638914862573377520820671578825920626944144629266721977521688659913861949726183731838950155549732060964563515786725183470940391845350367081278105928776522466339452678845398325932036054235044338495208691849139116653133896648801674721086883186430962744676096626770410245064911788306170581783770880014824583559544037868416471575831479194050416414553713361949898189448963460682221049486311160506552708992346269653822114183436055433791372831259111517843391019037028374742708972546494685261899543137046776724378567142441258203822207570887364442430223632490624208461157913845581229906677499706028033836062420167933009348085539255072647123557986166677189345018417101959669649883968869378022532869701374743520750067068393882430249446342811127446271852295003366745310995206846094374847706958126617544141905291511065161059750876654202229822917899838235704029407778868440539364698360215471613267580794397468387713082554760530132408216828754578675589580648197623206905792533613330800913299722630569974068317154331698143505433611466137435655131925796259407518812731487491326088678971010213539344453892423940778452751650029207213354928180580422193081319878739883639633694635162460259034975968464405297325530843887148687420808080112893573708127087530154583643870101376761430907634294219122230070749475155153231875445944689056085084361195683816958934213008111500058393909519374074131271252301849175639090139900457337245149260157854915290596653439919094253929212344893559431328196621539937270277715144881367346845822878814578344727170723222993570819148788707658986337269538900017215598670827091287114518073235226055024011863558956073839021244688193251951104351363379343568672594552598423328744313576217921465427882565320470447756752825728006012665159326290610249210124631973908139268296259425248186637680094683963958166388571358795850133424958682144432513599677781577790587020349694650231346779511706077798901714063722927877038755026476982086752466886775099692461107072831492884965769079958697315653516980966798276350365689670061929518593651972377365082034572558547139260913224349097694046099145603704840845200811690889695985122805647707656933354540292579862365864337666524406349440914997109992942656880494860772081673550074493797186052637528843289427086455856010251723206688677036106834588182893583387174283145712703100395085196528148674775423323441875613833124332087454108958924237899550408107295128995578155474109623603103220919794633359241183924910228807186162670240543812428433273236659228942989418958021218068742521122480724181364417092545725030064533361055377855488060862788055679225765318791550959545935475897444558571104234710642847995482701152376501626674134362692339829442859313832472770243465479627757078813427416469974985425648115657864337367796940575983377978952265176941418071974850082259509207447610308349692857217970348862554651241061409900753838081490475456278559903866412247466417371801104802389048103829650171260248766694452045435650080320075420133330286771596058359642725566365820934137477456638245102603471421100359119930855876707927181837827611699795515360456547072925488116891488916572170822977177897135411837154537768123481910569480469105913881930037657118553034918739443042159109041358952461601641426974824821720273975083610920914065094717345966443190023832732179777595346784614704166184181203419398027567706312318589980161747115212728616509752382269653089950034513311418549695558312464369259849433748821256933178351485954196990211806732358659795755304018178486619557985782721992415966809757441138651613410382658394462157196073341553934007109344552760991436626225582283716417009470031016127883722630364690678148093452714580793924903611471949695055938951547580479484667436072313349336991526985872311208128192014504226035666187255887064036384923829844311714217306537834079976532465732917852885005333644274619611752433730889882415372897222260984130560570568242660765935641946975945519112681397252745313166594348304734813338798748529348560929866047419317627698661012096828971368822006618986714713977673345222583151562952007699266343705740156703009913691558439903613767185689742627979795190231653622532720277038262583067469761279527425367627226316417514276298259784959000038482428443364268194459007473167515654203450469682196184152421741273864327566281072030664800194420372174997080282887772839855348614769744753990440790533764446044739722390245652985627950922837283066420273047225925616752309581555304244364162458369126846726609785276684779530947807319449264485321265866587170922989006389138193787520553985247687516081409419620138968495619613166112047141679402133419452490859024411751063150999504709763753842703464130308981850331184638233383533965849304807242756893222027884018236345820809224747705090285369247850333634536015846318626960720900743455830034591886624924384011560384814381860450038402298746105407299028686819445516951068613398668464627013697809315414467997113150924626146238882249989486920018592805867639997379264471121334366593601914899090715843875745075581641953263882101676899155665180698015576595479121357324683002730083565342929573509165400478051654375014590421977754388908220895885095519197845891025382204560650100079416229552398227222729733260211983770102126394677898902897457790497196688856737588055871574852598441873350947058925380511392326876102893531870441344904713594719899988513233905928513115378570776360587707591177485539941299036554954851152906792955332098786149338041931449074365171612298909856618780399044102945413076501048060030459014372272654689773894832161252985504978606644296137408453269040277247726755264730886883111080481434720158473883125755581196501535181207126202856064442293362368696061301392767337221817626302996591294794553009898490627110641354856308456655901760970235499624104141014761838468734528818879193692956827628373540941424454983269056027797802074973120864133074599168948268208120777744810140269164846914870285720867949094296392710417638803962380069595271379424766071543331683811067439740011418384504704487717452874134441224116681262946319725395350895105330151384093282908546521862000374844456956825467903174483842323542277853210631207861210427432329990168188332547738063362376583821018567925821043543787356586888903055703746861928484739052317250024841903825620587502148847593389933888010230554283561206265661233088547222902073379936044384118972000534572847199744113399193385278420212603872022427868422352692569717556787312785567025212177328725512255142378594371860001405222142373677375334826729779841213092716969042062543229507688879870349499381389610099629430668233261240859285589948681198390468852961570587651412393462812080555460470554753401593691002213672115319039804915664210479978646902110969569462501996980401424905598033236802929015898647640480059712355726686366813335533188220230679444253395402203792151218721369722581721909180646335344870409073083681009228152958365868684834140698838303678909577006472606157809414894640114275676847373940598368953214456030196348688091067756175047676659477455696483632429584483942613176220479454259807915813356382994577424966058875917670513933884297184727915494044762796152410347738505845906542655613823896931998097312391749093442765605678547284551952887078209405689910761636275428612880018789998679053451116158822345380540580214003584324131427456014110471504645822577167704436976985734244780561035460693844748132716351109350618584622936066483803596336512497612905240836046121273610757228182955408945532960587228996913578022772042133078232208988168101611232860426679003594454192562674557019776416904807290642031343291590013044770710725211288830630055683072664345208021149168381076390690978980929504287853726031709868493674551555428343810122205105914955408485172249391951664114666697739567615435140285489010687085483797903367075265561830817043459810978552979892497289948008346300547899801464810654377018695715641513240911220818753550507709693996223475712956924922995004898450478237292477463032595386653288696514056334966220664621971919853596106195920228669882358106200560364299312304927759957502001076687694764443740433363767421950420174417648250841485890536691478308655725348896916321408151297381305231446667892521067195309176017399652476381840628427656072341023106921173899817225587154866382593859447445955725594281769034941985694756439414685495730252204634141996366528154711424693411606569769023772606764834448738871916001595865671111767915296676680467311141847187332622212428939865032260364512719685743287707712577356217245544551375018621778387494941753576018592828554635357774347082093560027244323863224981171531330346354283444799037005805813330327333268977144913029220950204052080734851527921718259620280433472310571285675459498254365422714176430439140322111830940830224592025905536651900035407541880443452790289291729696074042489851632589349350624127070184134231401968427623807190934729783189836838413830345210752125764267180413102192725073592350875893937703705509304173542803860729205092953161981794353770595874907091524845314907230863813510661041036258435008341722118461134358895264865975712820315557320512838321412771693189125657012128574144091649294272273335898448630666385521705125135725613759732501877637163355798430289703966577804518279247706246758509047316722966351487495730620992132192209106080867387259268427903356657018614324658602162692208280860396352673617666863839551079751568018043732402717116795433576089793168364599919515238556231851495009262271674983332775924077837461928511936306700840831782328446793410303757580580510052665328064583052533077023880438297797747837517777203860353215590348053830350701143862067437407791121891202228561842521123402045387950887647990723354951110421495803882196049142648695920240717115780494250780502042601673680477786115165935145825556993263865620750086460525386851362846818539165115427998119146792277750677542903249773625298181792415639752501770657195972884086623861555868499556542234173696711891319579848596337486066068306090415006169297176937350674539639901511417198023240346284437432653968716471522589461062657671966233414789103819601174747240414676657164899516766028324824470119506733938453243470812402358853020335193930695284655225655872036185543530193424284185161890765023023035508811912280079229887355059055009954586428747701413299754983707290376743950907755166593959850142419431165135927646162917886909052987055508278192750153124570439131166765398111995866079635362649598761922003859059238355806188979726822387344071664938320391544584423544255443352870503855908545829766241542437026755913107786725423795516988896695738815895681671187958738323234664309767890024467262401041536016786892666203899668004750070136979041599353605966878851566030889685265229886125806290888579042503322717200113704555780569061562164492014946539268300960156050677330405068621425726614973807098977088692404184247146181715594764826183658871838208202553391141463843421642927760690220794356496962770399584201990129873345458972056856670807057133958662996878748955315383400428942949080281813903092621303124412412657998194268286454532086928935941299205687783164989440309095423599430313060029632188634103444074421155444723650311552799073631331730963623293214917457786697531298290780784796543359074187080108041458035277544392797569593238323186549188341855217598405969097293152115925765667454590840382314308117132850258815613532854833413168888267813404577036780539890417270158704360847793105540223048866918943886562182856463240946818778469878172065071162407910700148383764925003165294950157560526380346165351574806527304922182343964354722152225436195220962391246584604886437456909714118672647083709697441608096772725827535127402549646597497766867614023622689230044535719889011050584479483358024753738382493236396631494645588636562992208546501014080762650595298427142217851023229205948646610389775889456721281658585866724105649130981004427364675198606443036024331686222282344914469790675500357382351702133459258539191913107360531901057919496846330004496023702808934181399918874193127342376249335410421976188910448373475789312969065164102487055860837980554304459231286841666608746856276435382666106977220603376253553970325093000122032481105917653128493209855131119565157917419536365759984644663553702934583507015269247890622099687838947417816425204688524165932216394447751951888274163206969938572808028691866145376053874830140995763891658316826754743878084490099088865827100594061521256804199648871511788333183315686212270235860678792281442214664750031285825198414238533057689105428605503858193274630044934365169297395414190082055497066837342353441014960752155544959654113896968291214936632155345567247746206081111602649166830920427018998685271131431787928376194211602474622458436632981274073934553203469078808908614490772354395650676408559233982848107533140606537193288426574719029516518994857932403380237972528287515437149089733120822539481635905563805246569335826094192307410067130997335891968589561932232458228737285235977516657985398410170194220014107799066889369548394016847683495534493202266461845223457892441261891681968344328474543866445706523540820782145308071733140257051095162394241292589518336651390641911936598475590514657423879882954103995181380397902116160276375340168941041320982327059378949917578812272747215111575028145628376610655426106357136976324248202370902862584108099846642165657573022688649211075084614932439049570117406766383565723497938820583577095389823080280922090472411057532206182698311238975285041141412179627575991851477329305304992014141222228867832623946833062996881559505381190660610903016114023741551473676592930548835913555143560282697509861657551855768422489819043477125259758565917769895257866328609240196338968585362330012003330394170585740581611993852196432710741943923940193752773246555448375509471416451219516087447087908582471167447022048443687812360163351477247786607390726338886301224353606766824718598306022793641660225007749764501973441016569513718271836916155682634654402397211825036921507811641317714789955916348300331300332058836607696645548204631931317014001419428347842766133062615774507232333719008849075916591117671389961729150356115692521221764388157456103770026058995240227729523685494428304489509019484174480777075240600965543727136923991932304801335401771389804230552545681368531541807373583333926488392228166564246142081344692424367818394847491173980642384177230623313341344102542812001548830143204147327236285137706205987923071051852723617513559373490688051400553196120892957433307209855390396543169666470580897016739590336167947604714063799588395790267116735082891565604695616964531029499511323968273943121011861468326347818900140175715141660607895643025095220946968522320591002151425564575582897509065179277307876805642138533324213320297930217572904603634294458350069809134603018725138430603297963247075792607738395843177057397005257299162511051776640976219686715818592340064154147529844688121159915176138263074910083846570297759706696079181839200154412837383311877644768249692744601584606456627165873629737121788865411992467760070400204537470512015964416167847339104355016214541535915353771268830418718708205800148392496547513844192484780026302035616383269052071878141732151753484449825831349794258755789006569365673442626095552719761328080130373143938130778813076997139201355581072903065567532948196802754592033784582915289079894138066796141069682507835328592940325450778721365768020384412068738147206579210665245354454267689497229701028070947214239940999052757849388221084929171072695625917417639477375347406660451873857744723720203883072256974781228320904480474217058340053128403417624225432632781428415579579899299461984144890789640982753607661124564588322982405540929184565411394337409667149991104334757148333391744933216064223127232968251596187612740807744079084916327778081014511476531669163482084062252964360689722488987187815142626070394869254856539793579018039739649451725999488283273149603169714906824814663874534464615714806022006648370611622315212324005313817872719433231429270291746608260723700209437447164416158755134914856764288881536971493773917282508371328295978722228191590930239278738909112776151987971185518255081907854281557649373288098533775544557875896758794012171935283752234900134691961816839286069699303193140339971466263958155814399788811420674407289480435374195740052472559648209711809726457084036199412885872760314630424351334672152747207490595214918716645615114743283448502059786485928203682583995613662444498704798232050386926961111112335087336680731300590857839710331636466834520757357810786516182212235639520805010592193676241347814027866579803843638595748295947495059722742421719684468686629840194966661303186708196325076022702224402787053619666908564177130816813511183329864008383912117981739023859352718953976864147974354409812975766389476184375331922927314451592906355852162404779944983819394085163390454485372794530025054400032765580268325081628030919395336550350931579256621363088793197152789968021425908344126673451907946034501459094448467846154435985797907021898753756646709519137531233235172005749439437724159408066039883259013431212211416869068497802967461963487111657969671368152625521048478243316332408515817677001453776948802945665728032636350820531847076540504350361753799235867730091032091936003817534740126721240191857579811842032129599778383737068991506233249817407641794569893222170752830675709209717002024299475480781378037109661257182351683856592504247492181683218577932064572908882081730774566602090135460274284594162713830683093102977241536444628004298755956638360104787284984313882341280015313816067725177568856653113399454568439634057802167647483168773480508902067712082476633311074086161855663757671977282103061567426289790414597600917821136916100786283695512481746738878065449356942520799607558301958804887416428584845145632973220023318944514625116452649253167088620971498353180000499832372447123189626416407390834075882139762649462975246064886042296895915853884463446129916976988971020058809836237092684755415191012352828117025410200741536922442633817443394725367657760089043215432914606641432874279232449771693160373581038932962199729898280896920927216077059393313416633326680632025122937013296171930856423267489806320469299600743052461023144439030033224575103310766722937721040366191738526762750722445516646578269104771530223181600715406162253476371215021342391996158148466951767599664786555308869212414383184539906933383749638074201060766059048743202799222979872527910388708437140184585683121147035862861689758526932488459822748968448864759978092173818422186198805277484749560217536127816002489743648802155111078911372474668089035438528424340496142502010213520629622848823931926172923820398399738807755807551301084883466980501274867968052181642079609826295664944912263054919777873051493665433453082865848206249769550314215355270688296357105607041767179880882033088120777778202845336828676281286182387656807748428158938886612716997314915040285381865528452924108054542259738918416708879266487058177192764700016067304138226507185689960737859264593056106940573363094476908717730857890089828437444906242777583200491726691561197732437951829542165429558404281098887584883568994465449256069994745102408498868625039423265785289778375063886221356512547031065344365621546165745953878493755833281365577407627776073109587950324033695225315880206687161360837803828867491315986196818682641256567347774596952964012700309516178210048375456886194588708205499251697020609421290285455294921835376987029402059819063070956211377479789494619752392083765128177552668774353980027876914029822845306450105347208462814508066704595947611241637159773792636246240801308030533454862248366724481381810108952346599517807100903031466328545110801743439953697916458636424821554607018710826877625923731648371960177215824421634220168211670042866463767006664169022490123585332812477986690377981451997076876562067513008215514037156764688227287004275969609505114227883181958447199205087754914150082380855285373163621274609945727190144869192755037607686265300187095517332111415644179013031844533336579303388530224075044113678058816983399732852529541990244618473466047278920601732164465254358692190754380563358754916563603863127440222756040267937202268857514489650728661634846237413111339337224849055351716854784024115744333966314780407804309507613166791881308074580445364464781528611667463274054452317435995128145589902908495766997445458838839784293504617787405168973609542819460690791316843982700574492416032960065808254277755743486900585505802577876240271547416128809544956109723061536107874266370768457171001863647588322307038181837196937647971249899048240806894269791793094248513394551552363406991939575308439880655385704142152308467840228201850931461340342226327674750659362277758464307057889024552585854493068557313523018608155629429451894084022670913743991957615606771898177345479651426224792369841917325774911242903818156120315703615792388377209721424767172666393160600948285234219157611302482375226241223238827509515041639249689173933663313844654248517458949976417813200230586042539192259127809822058548168446832666418099356782636998700119948849341427798114444792076064500619427544373769767379858438407045288298506063791525969888763744657362296103752865659377067848664343207396764083919782970507375351274771968126084683448874524153643657950546374698496657875681585281879834730311788189122788104353679409460143182507352960953854069073287549197170439536293297673826692502169410196487349671701692920529694998124954078658452360406667029115273173873557864908309220279212298067968708084690903467543548292699568851941796205057096587370544732440965720018688661188313690839410947680942692430383244620278407149171469347317050015715235220126019522826920776795820550469053994253841656605731711634408831553213380402009691632411192159750419484641568842256201653858203249205493884734540202987320215544766312232659702192787915335396024686373893731447905934274759180553982493299295914754385616351706611763350615452120429705717188890781456541135262078946865590804721736809876184006276148323335853042308150209837643467491613007147807329476971979525468384508465192366182123223424193339411862207777122462346763665156722248206317768232579358334073533749216399915363622135994473806132682413382110975126622639684466485078522271365920793036184590160358348608734942911177073532550105815006578586589208481748849337534992641165707565554429960855125320370172458635739241051669105071235718448292834269968950128516032032291608619894097008729066214951587359062936422473599492888737044250759556049366636893408503672662524714229741762281976389155225420076578311855627573596467000717905846012302333936601654387643059871727530376334839238567761564223766347121833156655120581556253926489210686397021654994921590329486649631383156604097723201702149960484998604634597683551396591762197952472470261724393819887207711652062526639724706113882445723738428737258790155193270822023843743962344794410461867464567820470676783931422714721808302840873149540717546510843460189789228130004146975668946908465989619384012327782427331604281062922559219940829644895579952268912798400667488649151586890810772111976976819221080154826381090729022805060172974981343268447025974072875142091657078805147435489603153866338176360209789566472729478579539587806733257688220910302995812780953238966967085210195067361113054177159730482821830268433651518971896921581580285888433657353337569095269522010177825750195227874189533021248074039638226773970458120180219532801689501454416739723280757162649514871577098513743687598868569441430262265480700936459396016820630316595987565027504545723897635103093917625553377846380514534505538382857171552928871272940935542734524896197855296633687768418572498666853892584472470262537780165365084824891069143949147346969767314423930859807571075356362561066223291456162399949109736380459795730328040263150916985335502074638985407821040926411981858585942614782490471582447501115397664312397424459005895090048480809705305509055931400617043395991229483899570700852432092363959278985791892996887799105266093067890025474740928216713548688376492415149703741666692906800695536740585731969587241713789017668511995404468649336888581343549225241901599447831741477751935340330603300036087538352988053435864060482543078780568883562072433943050830528948593054525253221733557857144140506057545453899096389497798740544738142735507115686860183707010435234003225459961221798477718699411225848577287579125462947780483436536756995081056422650193715491122072660372214225569140545460985378309197579588603500936072210709827564919709515477042146124223294302620800830871965469843913122606605149708784123409865643626792138800865111363967759451103588328709158738224288230628345427633031402877963743811900749629724208907891289870178853216928871993640739548763937524983453446148080147006176984393650518540973832766166408534555823591424414645724545264782870317360697349651042084189186578285643234978246661343602929633115076118196353615140886049212583323308948587331164796625542479675777835076856316167121011135454382771906680636669220311545652985501115139224285829906076382549529040502600001553836778834244939756863983838088205914940696546562135660883381412206762105400139047253788625059381571425443799135101874189878856930758666594170570111286925845220087803817099019197284756399099652737018828693765177002456829507660356851261391333550819379000543938292216519797152508090764161348579229095343970806201602107120181966180581570844610740742957985681418783764662534196312219725581019758627352027244761299792576871209984383789348769427077312740126591901494910006565447754461958642208424231167709267265018865481165158843061967021308902316873052937609819399219987901883619083221656289581334896212503512837684151153390500856478106296016224493185959793186759198664278897330757402521569836233315223699992806727189385654278740685204673267670693240201739682550685051903144875496424132949219546251135319897878514387138213613532196617495677651484639470937248600910017026664395764542510321371594461210855464464787844680979723177819888988838915790929571515189654883604363611964873833192736620737724440663257477489176131328159872946033305587247943032094613128837385236022928482576970145929157071333325159299060121050343382227387931410150628819075854715766316791838691063824158635119118421491855586999266129934616893853865077851524036194081346919314165521353216540905236538283333475325411168275381721714650528658757305122486477672771860253441182292847716113321585051256484435379643865819251524073011922103118917608833006989764842022394216179074085619119762743613631510435132697629749908975240493647181384620236834344695240088050208464687876983915392958086397348542356909341298967451552551583879819908386131857098575879329475664836649445286474967799219466302865457060225858888096233599604398240361855927667968383359966386366548378254369772501629830036019043313100696165693054177692567549584273939970205326585684996824802911343061180962254607904939680228922606019250499014438094922557612986481305243560494694023857135844703710393884405921459536764341801488199134901453079194222142513692468207201492579469348665777351885834414622744851244649981480822032656319873136254931116188359712936211649947596852343148230708664943022572015194170936330871075751399046743374709465679714150215989804506748853245049064834944258265114521455630055348422771188755926947692943583876651637561009531519194798004410677750222066081715461003432675335979111066730127848166514598378933452880232224074071595606405478689308005224072250298816693226386279317439077066848572057467091336278382628835513035026833459077301833363818389757916340204726695582652814281326977066234391413950680921797371966728590882055192409001566650112894339963736162859763736258240809727905009163012036856575676983749996730876126663804339517639397699553160841245199714227577299439407831267459459530766236306604017434511560365883905904687526357143151887085105356198327409195206650565406134166064287034658706901705141401812875822985108817038192672741561130280704250361857061207992922657404336033478031730779572560977937535144781032986093933886428748893291509271200880922507964396462180148257416082940634179586919091098594601911016030462548136638869911356482880020863540719748510274667430941707048432594947027292728067911547527639649532229162514225834439506563106504487199689206996410996676332624817421956885215272043775732220213557612495786103523327750996045153782487018257746341712891846252532349302148088161753256431372255117267660887960898637692026959650018950182615153799563566425644635356679191611239425114197059656708236101745757866577231225128313632931171483370214684429903106704184378871162569812860963485580400078764234138286996066929469431139521594788420188571667795774166556616715169900123040526997742040921051994358104230589415866804276057832503542444572525017722444425675123655316482213167503463441383256323314018596345491785528205410546532525771574160193415326366790790809638311123351300089362677823530445558185769946011029311051731767105890034198986282421531470120487983050352460177069567552542062632011193833674443240836489748876019333788743671515502508015491440557691659303688331245000104806720578733169995687613647245363423164737614892041039503679338986968526190423975855922433163339190653486819014202101090208963150254514063794380527214721688966919306916260005151940224770550087846632984618317667929167083965333532945684982865454810044625700573889632562999731358330632568031597105730144161221409209158227264223331353793894243322810238752431204607664911094168263006125644772171975738850557641347292261600180486768928656168245090823564882117845006768626982951340425681082485106102798112723518141666260905104563707494695216388704549851944419108506861501940665103617440702872579416333085390026361187371462994452560787281643253419972829447491813316278344846072233322735919156085989658657831541730818055295970337314388151308874158040383911205053431827946194664150978096725745360599836690233577351959634384562486846110806581359243806224989001735817367576830127236102610546392313402964822829013746829059715385944026091081895122740840981739113532934572542212353780648863319455509406668520904943001882265804518719551322441316614334211352796905168660047690511847433997310903933835158242450926569638942356389329960253169546252935254191049045690493890569351289336313458188822745886152406286617633156525195239438819835424719906183844100922892702277991235345071065302551913576721402881597328795955720295156320235714885806948269567191250847775442557420082695462032390627969150463138850272596020845601421753576660936238177504260040988237731127219625169570091160748731585015973225806087036424812323531097034387415404016208801342436678555992628108734588998844805268058805445649598478979569234373638711797303103531992457245310838535042501069443809447029048753011082481707408520304475091951308009583760177718333307623721973045804056678231496783897473342175052847857229197909998487428923053610454337013240773717295565457563213509377456392445593540946443273585057793589156542569742108032060750411091805271546641781700711554452388052485859952417204008891852760263469517152572026472517604098280104206927331624948726039136171600878246144784217161589730335547686220533372492788516037726932035991192819556505255066826825810972863661358904224670302280679832806854151939995892779792282795395553972181843362520903495463904475163914179767338362442620116492735221587747550105177024956205659902264716887367670318823948728191802288313353203754221107916324981560386300782111238499413598314309852774283090230419025311578285729901502285914783987353243984422042866109697132934659987254503177964505664122691757928941136981498637698224879126855879061942531105728349769453204288062471314932766460429923858883239862222505879529194547775432699844859632148660964296196197301856330189545318756813688398751980677708179538009406561629276937824732396773253063624359959981428261135330701467376300703230450575964603825996892378462799000381965001087580606361740477446641180995521328468071826871098164538741286705463643464148815335858471890842063551289217470818402373714940254252187571746011119157482212251453997983771167012809944957545489054273123079915722381129813968246340843249272241287815506791155937689540933349755906849175070814776807350095040656971922762116164333261084063918231525517387590626841712077089565832894175557627178650044193777634624694022361242228019529958441428286789462814274248156111168884087942034227262911100957688548299625162593839562967876282135248057270748852944069561491094411681433792161900691941545519634852366797152038523937230687429974194540824555571590694935401931494590283292728410740086709080390994855691687750571747032296523716944039014595448325865523485601549180479766733620949559664502449775240548993495529767682775267824232151467615987245712790088890396519907487011436195880357434143462527455556471683073863118663420390254430869789258929183809040112436157253119013312509003908111752793396287057981398351495134456373315438384306663778429720151890818878357475267906394219242901746930489832198683879139813797404980128303475090779104668842649437033937357786929459700285889325009484324496877942907395987895334086028085553643279437687447202619743525252827699032593170562261047429187257252242942201867399052704136019801491905935331767281327747560872961759180794867112376727606616890795936269101836844500717656501465735759528821533337411557461887718040640260133495071392808848591797062188584713940823117126875672328707174491661441818032469693124979641410958745729980121935819925627669772199336224478990787660739494997827702605684782025891585832881203107000901034901219926970688652324810689606667457039588181326627280018406458303232328573565669970273298931336238633036138480230069733455665404035592294137363424578972041564487550655722474981062698596593834134832064724643016947122697527077263483084368268397500107349017408578642290261624272359627046028256617954712752144228843940529930106390567288300934114730175556285581955891014067241327972574151430488618795674725398346506849627622439692581177417233081187848344625359822408457076731262244522459630202797348188797305155882000428592300600110006011625141682363698836221265727679672018459510085454345346039289824170210112456913081634688221851205805739487911834563518070685299480514552831288175191989364599790299467882858618102901561727046126771650011894045556222239776359142945949350998119822754396138139366163945854418759473955546492022315187680937224275202391094614160716028571823491247501982646941272313128869993557596044040731995512580600837549592765285604260385143988525904613837088966651571763454518066709503917645042284829413847450372767571361317000963507554079926268823318206361144212092806200558240190654365114661190747468369786239644141621979664304823411676140580934431155206360702943130942020161372008233856559018094305592723932737747152374458646818928277211170035973053159040532680824908596816132793211355620051246917068895617961179230052271555293430460589012377910680073022995362521442910287254964717228320059861817442384745896206002433536457570765370856160529247169745809035086542606733827709442988009133925442811384412428085486843583220187901119014953944075501952871264139711800267120860273912330441518160214219223469551472092900307004250994904293378122458059974104846283313152582826422611566288592007546411232172347582487823126661914055961187518362043729797396867944708424794951474221231114294870134544203059502030843759970409857823840869126569812142486822698188850781804447131803296956475694395790868698509816294116129021494140979364555591480695871635051194632456247821339515601076415821726208515630666842554100718589250669297019038705676841623996230142093232093126781070778369455999014902011222632777518469424928041880378487694265416421562756812916384193013502744484406043232832818020984931771868653354344048719282626935038990744255388369091848630211546735936293444366206281482752385625556414854665870249483382612921822152966933029302137268695219042484117328908137457629543935758780037460046605872452110297487483303896272998751358852537640902624703665384776429671939129449407384638371954664229627978038270189188572960055140637521380778009331449076797268274991567410761644925302816953053160574431620304081091720134007910223896661026794462277138698792126628549074443317861544388503282578480496684176767392401348720889315391796466721083668957884123137754962613446405546640873026408353620122499299919667304577610305985639175841686427326445329814045727733843136584575717887464338326249015381469743214220354219454508695444662913514824573747930523262494362976311653378334214720901624955005883557494358420590741630716081681422319276539514418498965841894364503155546260223912802817693001124351912826089196689233344221000597514408493515934092257634023555642644168829711995938453471675644007188465627756288884636357905144512010105186385496968189691125550220719146670940896271919527794051235918077584982504553242635508892281229659690511817153460510162530611121080737644675548381386087525606875875077732137832058556454455557688206204280149566094501886205040910817554571376340849935280414665373414223487421753041089897745227799469964770311557117602884274096838787093878277072350700702864890739542263455189862683644042147332211072044398382883538714669836569964532067757560426756807858562047702682437989198410864053632452730265049041160869522587720848093447267815091823696488109212691515237823845403344511868897262051127097442092421427807820511625780960443930089222978724406011933882739949356796740569673449266656392024991840348953866511567295537154655480762602327853111783893875629256064040998324486582418087915809513596980751888477623757158275289897670264706818535915976394359239387365683990163212474295401241879463081980805204403178385745631340948912799337447760855891316660278634633262290297403085296251250092882494744066887494048608194366380594293230329105631229610142453297835684613295231250079611239860644198591427525325688868698937432896070729441234631190281937302897604338321951422994402620160164999561917951442496221319117424478698763225560141732283149391165811725537101862325041955778193212436220303365782940292273305697370466370588550260621791273592209759918359760546337838461538884780130582207236090958703281845386560950717659804127147263148354299647562323738674614721972216063130277181142627207784779960033712881840952220044223382303558311817794616070155592540977280845870944586354992806287042727156642619127780511747223872351453065063134416180350189347826018452310566584820535343919485720730258467894074339739665260955799932385359998229079238028140285120019283295657423092816172064768752011713400127566150258153111321608330940971570190127710783378644909898921151575920316863153571862440656912027432096027971396245355112061349960050050094519367259544036445244363631239458413717856543667126944207262866983219020981645543009744648259053119846056285482977947945052473143649610087039413273599378907205588415501968591673879708158963706728938625418551943757280457116804979466686680305516117681198783468562019418175855333605976482242281367472886152094864630541337775726071796415636459225010717935120833741184439782967702438860905780250466810128775723335394929600672068967595049583448015003338593868674608590491308031352048936595769747404973653489732417436334716401697189428279742371461620920318791075964826969137676568532111140755474838224146051749816821775839921064261855508745959876701585889050445841075630099408035414720783062092166355375962282778537088798354561299105338979807578658873093611807715579982489983301452175930277925171883033901797764984991235916809953096624908740277000455375026384878924713435868742433296500119297752589342404766934871574611262107951718754430392263689988068986460767895965199207110155739256921735231038364863502847910363076400082415858824985623817869312513868531335948309724972090815870120870923337218202190408400306774094408626048748428972066299054033585452809780706458841696547788605854294679269647455292147474374835930272133744011421550757746423372108709870041302298809454848687033678958909715495157836765127748439464213293662259878079578199584281484693904897439643948391707940288169130072664544284234954641001857122080823347358201263924053066748849039219573256945231676443617066764279253602918308385417184738294734947625084484061935700851370793896653670827266217150072751887231530706522730464101061486479684894188998910708774273548594834577655665227965758654821626237088679357394517911404442531949769932327883081263937602622526407694059852374175983276038389659255484825004692652178885210141245155085795509931465755950439144227939487219393104054725180866954756230607326302908440780786076561941069257081886552814693938081716220260761489458566725126313763777288774720166212891738404448910290842853231879888348077980440571889698046050808632085937181859114616010995225273020155073353042957201429153089697744752111983701208669397322283781969551081430626500016740748921121024422188412126782994271644670268523082712729253485043329949801557747325198455056540739939423164303118389625005504427381112106090734396204030166786760996502401883297499232450646193286738395362056589706884077237041349139740879473684529837407689721857845963225988610347111984220686784679163620300389721887292900480389398197405991425538053742728144464989991901330308011476164722817186299480677503484556317169493765036541022452105407510688586363329497611316967817060213543085016089304152220532282949988940115284839788040898043732863406579720692908647645329405759839552768714631627026994225090611118763691222602129614080668290368728272698275020809463127313464157411930373756297233255042294348634382754061042247158916443216074371076582583805571450959700724131379016996879225421720065537845722312857637819201038834595642209704431911004309543298043393321067853214896517044344672657971957967781079146646786777754083219138127882255614714154308379922292840216000111232398461085834713686525959880325770351807759544236997805523066934356701963543635384317847681299424009182369973581282285368290931145472330685414278235902220227098684106730029272772525929257034936209590376180343454871455414328883032093044232694187017912100383191370203197820906400404093150716649204744993994669567460832950991496524765059048959141882053271840189961948551723821418533888148934538019114036276168310340628052486075290959836932555650484941940626375898427738379831774279637665478439517957612712788874320981732716428545467515179471752750164123887942881250054583245369233097129082249305261085570540572092490806146537316432519530238712897603483944227044691574496809056870587223045628721532456884579578191400119737441189469587871310966997892802389688637711903251085032603759626004913951203960647973572817330416992848880202719830755454215042455985692250077129861739529272539016178770260954936584193417828593075136752899477593231181723399402048316474548455121418562316793267377342131355045519848562964748068793253338224695290480296829313721015027029681075556451747819386643131922316787965099276240632058839418564812615740560912207604598174102635624352311962809269994881813126743909571844701565771144224497962027253954776090202604959952963973179063730914197360980168529421001246984365877222072416407104439634998208222438765763679931148083313350662527360741464547076335715457281397410195194784581579299383341102415346378952567311500797537946616817497748550515961583494680904207776404173499811939817104538751846232085565466337702047253518978259742826050955314450072746979820359759629707433366610343310185726986026008556175416662315023155968047386029259221013345304260722621807712581935085610839508516241532945020589188013813926082176094577678867763259422103891593259402758095344452936810684937333360999453894276146002773224741791165327542205618130976763149694418818280805489613334741558523674776914288121702526501127318546481227762934827055423672574033336867320382178298934887051432549511473421971376994646787625554352813075242713975950688555802747242427745736172072470441938437853793162321644255674578502253660439034948113192201410792395110542965977192526685417901161173449724717245885824831236704963250338841329157199035419168277697995772355845021955202617960524621376940085952794088823661509366422051015935999368085489809459424594692481840471564650736403698043014573126108572053749773395803097401556694162225325921840933755331955792282881401802500573253108971738238125399459215046727369274166680370267265467999243174333650536729663237321399756174983818228742008935759130750068569096023442852262801647335228324830138887366429689408975694639415450585140867009257846108068880220419109523522953904985508540131192312330769175010490094390953072138938189763878660228706096938601071004449804388904125624711781194106670496369766789544421022059574811402846599501059317056205988005574530293588797343804768124336503050738913386061866594105197545249019822456285183864325821635391332179641011443388006216437855400606095042513675767097433331043378007894309340251601942036865731124371507357749134481428609115450721155573131190051272200738208801493797237088797707937856335450919136294067897723236108738615569373181403429267341476342852981843773874828094906530276421348109277107032251062319679450992134392592814015823569371716162478279079295311577009410911874145751673376254053414099623662222358660109490233286303645757282284925535619594233548068570643175578683570937664685887811016107634552013827659260560703629803434329865252330140633649230256016453612626516684527516178230951395611988712251254817841671171824668735676343603984759750460932422343467869387377990805697747622109331458088795896486886223511352994652958470931718890401660849887713321116725038755869307579172528676424408082684778499909409069574840478338830599079063734236028483452132175525576551036294522366344268394969780111678851102028935474921081332770321483346017249121029847782368834335789157759380613029357198745519610871351770748737334221193435316414037787367953522530554582007113851862392169669617094693873872865245497937517568871152801777773612848839144648141236424431345713535370021173215692304930585188666392053667110516747485902704460473133688918303189582293307053383707207617825690426748433264011138795088322590755280574697626070598121336166063181071655598804992827842444190401204245656337352587215496668451217513653502149513178192234393516486216130487163716985787784108802144947546288598260416234592185209903394619811059854915308415455008106176364094414539061837785243124005286343047213276026148900886428305118495094728198999677740310656133918489108181299377288249565182883470557739481205633105154459470887821396034565185542230509047196255625475474075067076980194782547877626078601201912180298278393795103871266327929880640807527152854910175682287077225439055809100263531154214428187191091702448426372100872743000689298988110123893804485255149690661327745240119544034095993679127672434561717583480640643798942082193562668023145100130121861027315454469799291147024729146771214741221198556121736310808429041456754993758406366785161823101768421177326577947829533246303360772724812174616866363855361957550328623425872509073327121479760252594104135033217896156659461639896908977650513850351183792461990570254582605597175341599424513972501586292114884052809306700067086139985245848210355919214399734537926896557916230065204181526247124560533589382261060173391515986951725066133937266946177375594739762526731331113866067907813055498963838631944763115848387601895935284019231626544857751993490405148124472161617763509322129611142456637157446551455698051999469241182681432356799075805249769920948013873392661522533882984825365996613518905706114569890707823486116329955377148856615373915853461302251297942549331001389307298630980511134037926976608058870486128022969835288643351929041700425401260057289155804508904654053057028272059436045816799866834514451026746803361547723684334655053654764999972763600302375245747445281087857878885492146486300594033714066488871752971585755070799455794420816567312991574696971729898143149674996240955190480891132768415500707270207230764078195738865626946636651609695647075315590135228707436541442249102848097699951175898227661697389435837273471225757189715026555349894775066110074588462755407992866934534751966445524061542185653682586603294274295245295567909688691668098930218893162553490936609783886849038452890642882980504666782492309287646570410153484941638411320696810568568026151510387978885557218659428069902927104473828192691672685075749846670254769679051523939492113208443888761157741858481340934892140258209161581551873536196301001452359363955550164827562551483915796081478033762045111103620013726843844240581936666645767562393497656988090943831152905526677701967308525473305010235475345947696917147061811952898620470930516491955352812653745515684313098825085936085385572470107197731842372638934532651380274513186469372365940151918802865541511094755457919268661720916969627824238822653236405947993955518101668627968420730231003571306755428980177285696850348718137865822552900891799509507925661162947815250101362124471102911805691010538782990589069259738304005098503547011201085281886316031317534705937285224407671926888602132281748733653859631358886844512592379928521603908424062977987711660103220847018238596907489735834961250514682431720326828748244577910153437242751494784243046380073813924307916767038788009993406098393416334995059354943663892041537881499775685731056914683309587426678972873344675498977719792827733432122881873474500720541826465925809893913707500884605242171257865190691281831708434194368893664886725299932508965547370579450152274658588046196258442479398622002230277539805589039168788066592191262785651119254622438449245396169930514361310816875740357418883052173825533909370986847709316601408517182003416182310026540392281846964540980059158580533376078311359268478382865765280786383525429790036450873959976014323160691507943580364033430466361998818368034096247399759435128116754990729431350908092617012008733512351542839509442181593343797265438838540132467885129972079691904437560517988243686157318180315882763969752861817702960720591299343038607074661043316642145294350381773489005245395636940243759705095208868575232364528237434943938580065235872337355831987826489652039558969224831492407202424295982049405820673247999009561815354753911616913714780344426937893885425359690451756816289767233522960462413493605079617410973212742879145323444186103933084092977283346414567738107033765677101695083535776182764141817787369102843107657028298328576981594043135036799023031747508811032959134730820480480924670388149617368919076663441181639047814728483134064171409960424358114354765460408614633800742010908578291057056112859916183597302680766038964904671908819021224623138096554581836077446166912841765789315501340735678837758255018020509485119463191892328116042034881331261770628463123429457435981181900797346851090434975921262562162864990526304646533227808775194503058486128258428591499612673914763115056460858666603046251868773654945009329305769506423224991868848430920613306550801160930457937774524034819660064953666038893766490360732322749574135962577919609949914868272653544009902822965426757819997237238919304335943556258084810366232203322815423280605383196476065217868860496789330604921329849502148580291959290989750002197934884870896597635419014831694677899828466329934990964334239971815435062241122485033524047488756862381040998647621466429813023442228393267886279540689380751952122186045058983689112065894293631205305696884771477269647724451298756565227604468842672010313548388514539756494612576061728348935971601437615812266057261776898656280285801143487828940775398375264394253077573601773508918700405963703843667117654040957601950364470164575787771425344426281504770104436839852236897354990554992560450416863049964566417329033987853643735513445559874430815672216664596185776086417711089020050830525162180979213879767120925895287065698960029341843070323655966373949728809210580271750766902987220944513852464123186215007013024946201274487776882508768933791669240254489235855081771127898531794031933880700095439567701087819643093627189502224323818589427594502294412168497676238185140515392383980228630773402478074038804593598999053756982520702932747470877348799714830999338656928717970228905182397307515617947475339771782056831394540611002544908594316812530009546740982982375285074900303816959133544023806523537085787076981979707233985138417540184830780607260470376127025882348300852041067838979564000425507259995095201995441355590948026039088247917447735370861849802630581175537861571718828183831115507722389626840044228226900818981289082829599121479603172797331646792215026939594816757865680098392875459835331665843215286702448536227016622881180329503019325143710920241215383575079397976664695066490956367643504947430726851827781235006680766151262051054992877586776193246421172997964668625763958502118090740757885679289169157325710005987331880322443218784844874349356024814179422068201197961941484660329789756902274645159977053832397209495057420988919110734732228426355934168747331242852522748097745540147981437108253501997341680927417089730940495612621812769130369767357994146136410198499217812908626236738429586898719425317467550029573289412951014116997920422285384610467643000718727183229347960222871949898578760084391462484610690143128341843489736605960267006118896049271464406611686227007149550021177919717308605064737724327162399138335674804643410070430931213214102917421678184774107430831939605350732304768851402866679477351609059351661931381344050763048299290104178650917309271418344861359818888137051262099186436255944525355034604587675187274266593130270598032550731485496613732327019078592463333705421893209772849357831307752494724731223992899223071549599928276925970909802261315682378451082480613026738161235616026360705646624249252246078255947528395020926102103333782080593556814184758702971523959053942091126855859465714615767938446674919537475585101661010097736966871764198999953356757806296579157263117016194922993464939689802656414203170553830319110453639704225442000961579784051707877063782875483428751138164154831563082064049680618974204591542640881148795806962420561632393888492422432143948441970841799727911751807325135367509655754113064030534256308078500671370941447788359983391425495957161032957276535923755500625635951788718760384484274353091340460017574875631885597984722586206968846873982414917302996978505668579145617755465017222572568098156654664536630517073943973386642428939273549865735557913100179624888569689609929253171097666529767392154569478785428024125903301181541175125421022278093919792784912372284355645587574014815439655651734535240348589929393559957818033510732206559439295634271598002798805426170790370860981046989727326565128140076577543058281857071462443215783698261758246347240053774566592575802404496429240205461578032448605210594716980329171629431070327412788337992119779217465967525730382857536045939357302873060729590062654621470657570993909790324843758057176356050571208195029785947405281127108511573785123954200586331720856018237385943418724769640098489304632089527375863840002091786557987225677791804619410258042661119440448206886437230491589400902003477908840567213565201333461023526816472687573992825215693518020450607118097446585044572719206831312510184539611951854591485363092051326386770131241404297023113603013321958631880666904862072179290657302350356378082137179485008806895320040746235622503037262455664103464820973657343946586488307214299439265758035946722662906498433166394884432299288099475756805311430838023898198733196733284957535138680783038108298053437162647372335082723416792766160984648341036451013259578499225712158745397707666138509093901005121160761119022360330461456740298056470291498543409422025582320167019446668051108452765398403760976637212438855348647587167850479642994657954175044620600115730878938240709827928666706387053092197294184301867673141739174213013703387061981387034608522486112016601012642866217945093362949691677501422589778459530075084418455274508967928257813737800749796491577783528774036400607771441523417259108578484102478477795862662047747111698499709448740197043922486501153822694621741310410876820643111578603223486963017794955915960203736129967269113099307949329194059445238593549003345725213656097576831054882824721343287427437688810650982526796267372192378377100591271778631359948234580123134362046230000018679731476626689495141483139467796813635868781918800248781185601102833639877636552542834320389035425799575601832128962944756867445699784556954183079534222513928459852812081163541823927023241151836639710790912666251828194220055969999931218896927640151337808396852234538935600400736479906221469321964957952130006052949898531282478079056580962805840796349882672237655654147544293952409130682597514855472541040848829928344768255591625269250405063311999864779597998239637401851433824602459743067779558258778009340342945349800957167744629868450624901919562468497309400955580661241657327212885478057516427774792874139028738313819849756448418601636961382179425835533138939843661734332892379086308231099144024977590642770605244416338036607459336992494447486269268170392770421436020201396945140893286341274205835197960291898118257208607526380326294738840828809684771048978945749798516177774933573473359981408843220889148991965532070659176518250179378214573052601697348191210141869336688823706445875580972396109332885031296631166221168812786711766673416840989018039212354899146942357065660876274109960813544106390691463236738476403520283312265214727480403374947074924447428185854636203966595730279593289650862515687050727931177713278328633019627917876200229905447722121290323065252871669519560814989287644121805667848943132645338241641918163492104494638647065958571204989918092727555722160034305250367909928276034420150579076848174503841024503895947774259689914408652856572887925846523345657050021203901659514420471482958784404113585890877101641745082833250476840852419003837517071137775279381911973714841603311319749739435690834247206205662191943772365121826345696350786169395903247941868014781129268476464036076656076095550430368436384205499055340128388884165028305586544881685957344792303255156458356440059303099136821984299599982282415700650652615857756527189965019273018957251997446354427204455726765151481768182651062673308334532597434482096199062583330601689161403235577698228585652132221735523719183037614912279914529068760028358140988505227091865043619029194662801401717389541127954870350130280806859658849388971561030191439342322654791795980273032204433773178723750612009602814506032028993350982869207518853225303063745632934428777434962782229305411313887209955864720022657018001070795223636399589139920824324251757421380744734149689733754178018825061232231888591560051811287521911753720758566766115516996644190701547804852710270656387281824521636917566214491869214064125883610186729630061618448467036666141398491947469972645265216924378716283269576802447138684942363827830426275103346898823733647008602385178232218513661318497484628432064091921967583752516711472084475564827596138399849239745934403468691140438920779729945769014794210414530386135726980179226743003260653001209877385065524971422178834869706648305481377481256229005874004078313134812371281670122765452612839855544493405168825266115626735468946458477678783859165232450419107581667879954882655972598537194428332548184626024517313284309082508224627544319258536907861182683578318478550098944183908822183937319030633190537886549553958947692473057029352545101199910735977104778776229416126876265730344956207894527728811917916272516065498110287257240927982833111262476533680923422156872869353114740608736819532402571705913935864720225396573387872714357145704291634419652159452071560055532009220835479180428574216676447463036659040952928769805696223665410311976929384820681266802915680990419885063128851450226164279387555802986731129837401972690875283017461067719310917772720213099070286656133600221602103966617676013821514254471711522910668218982372285005586866729354891693845085020865077675265319262340686420467265566815227744091340168641453312720437117494912594824814149316534713087091873180820016016998575286476011364682659955606718624427512519122072947998409537395316201260229391413088326402960551132360167084249400679388647820509973732189820386337178551854567371183730372619664841393089494611911465495375514788508529688071812418106323771461870782475501855293153129430932939877009823429320885569762986832423239499670949370981560475771088677379996986985411135846612542539007244263888712369418465542432458265593128170204501765882648199094473755354511376105022110232424253997742723324335461845695652617075008331794208583233583267929401660638662643233679251494086557696327105631489295916393421712714879689516424537622690864142806598008209991358479750189862232889986713901579673901219769797473834920608584482407857349305444991895000864533833107247117318067086379833521638141450876005691246283513481024087296046897626876436690063294155110798876568742623029769764890190238872534183810121779620552305793660579871066536659237751552934982577091708076187377324835796861105757597735233965982369476691809572701189922783676736516180593244815356299934566757093817306055583322742160243387633827236933958813273873841287136657328564175184869756994110261696163082660961029954521128342139188861978177579023881888556797545998369950934592674832856385984510604348398234692479054981370228299446070429479737002068264072758968221843989776812785605540879330686783346703892262871990874943607902606498259975371481986031806581424813956798111647173363856232486654956867431966443956766270017895660440654399713213175849587305019119922985224858981634445811146719441588332536944508671167990895802084303123853551023691709449841530270676522087097144907695267277598740756170209291713831259418244584498677718594445320427147548282416142425460463322303973837994525285685655493604455336922533637506109450288400864016881496361476595351906537881864261190868123376515480794876951461782970671209054842820931991372668227919161770660254194230408442852309524156928558659998347988685342518456957241779102452941791389460938721265381972358970771563014122839610380226550380947690292295536674128644058664224812501801728196080225611528677530404158214629433580351920094347431257791384933438774158618227346092996120206190510439476173768980755563139914928791375499777680445527114417624281617961406890627121357940866894783484139069296082495250292155631933885754287116974857825663969746354305476770892981508606265874981366993668137248725041139641865554907533321746871192562569767778286830663705298539664739455634637969244277427884727490468426732550081848415594679370405525711594677504775794223665483810704447293043813644794362745079209162859671951407199690709579239613998956642564223338409872550556363847139887868453462213139251852759609555049923007003452698325697094141217226043162934399772994136008662775995024318646723889483964928784995731692727054382118163694928943493487912779360146756286636849060890945424383892725939248097566948064467949589161253697725262922490174747271343853766309730391575635673505673022711742242383942463105021906588233611455564779231103402050678617335235038818832581810505954356894412273689628332302263640753902696771826963266985825202834605194862761580327978052386786441880306766297798613799347547111681776758727235660223688249142025189220172334127720665655246761514802575608746563169490535522543373852511730217300198328133465663346245690155256909703554845206325639224258640332207826052477581260193570433094126226673504781788956875260029408972823422680814381631948004522905601518171651655737758442285825594993891457064091070927974068968666605685759251997739032986535832688589229500628467133481994077995116783789342166596350301048317946792327714292256686220105033774704845917722552592665126306234554804184980695516276052804672483477385930137186322464052076411594619005266026220275852050819061914015652905218854459168952950086115902989490079868856168572916989847281215954406034051362945220706241414867968246650490384115691623386926784168014089519108395239811027242145374683846082530072198155162677509374917610502052627037836324729673119024579953095797863937562805179892634012770894599764537163296322427558089771360044583127224999946645926219173986204845964918090038377164603661694868679994735826411849423345391897981346087420295348847871237200830108594767723660230165645720406892810133901472230588964538060673483920248644935242583070827495108659984400634322277329071208407558860984889629938421399122025472316271605107785924574014231899521691169745712012403979982341459804800624285424819942982585063234548932577335157297418968044391495738027978774846693319000292417863375568609019594848736228113960302857348454368864627043450814727235224943315711720565974044854145588011275134110494900260497340914149132637831836659945453320305435549197976332266372164709846469702191104693272206584794774193886454453815230101506687672037182778679149417961861292223465562036140728078680399552539541630970008828276476555489509100148140673072265439880216242065480383830234213511259658863823556776646148459858138115204740006676369470074081868905039780836010868377970106947745377091193507314644493463816130547973283792092476382591288821974416285042116136196134313159051410172575709938511890950151002366663090259572516800547816363434944692957531575632555217663296195289091212801061113344570846655506696052845986512315838193745148631080469717240527218857472140496491904807469471283424978875894181904128749637561699128013976384497099387305144916537132216312994196156503356982429623089733926438237512023213679619854757570924973041072963090925252236319786657664412520316459967026833009955619682571929169885923597820528409488873079032446703195464358552055229869012105542345174813786210484073358470353916739591203556389445998464286712821995147019890890216534806121638872098335625168662780344001488077697895989833702245651580036806866288861029234684172414547464294386632112790629791314157490475902600479827823228441211906608276657367251187225961440818239465601109654077909186741379721566802612774376114114476942242472816334256444059634082897353507988523415714356169306431756375810694477468555869308924277529773006640943628251609967252576794821346394431165596709543058424435135192539125812619625116885028987232385210869959631528987761634075891804065017761271683333093529825157709010033368011636370991393543096214405203655165005996662175530544947171726742321882803962560821415748775317685861814674031478025025222689798148183023353896876298596322888413148441738498779673990288049152841086136794230149108780284428074968785176918884122360650495511047377051852872802608406206698122067711391457569112302353924334553558082952185695305040867448286248504106777292028675080262391129247398354380367182484782426500881076399916342920896824850746303107149645498096274760568575942500018641081105835057878674944122020841274433524973065012769839846711044052848898734849084798113917178934025965660871791501783522422732779415176893693614285422844617046561185257855607028234840402881497039695322246093959543435278026331586732327641073542154931913826654358828527510886412367370678907372502086691457242361572323082723710569579232655326651364497429464293077918185823546833559926579473234167667233502665453437379444666256407677084323721839354014265641752878102337167740795898592394847194194347800259663453004645071018703246411594322574305852193866496656295406312880101769163175284167340884635665480283616922917583722501156843559701695907084572351824763808786532736319860977686237280797243246560471641022374215946157543224479511947498413956575728089888042108351925854949805495746641212289081923011467811966850207775053316804912541695670303547977621322174315438712112093801461092240325905566083904253153988461044733745390135711905978957523108594842855455862766687578985730704265215914718752392899692663758537429579223503159347516091079471390434728130980456897722329561887703293660322356116101378663959421587476230138342253572525125993523234259915101277303227771553855355891490664765710374091341557703321357217869451024803476527112440203918056797270432572049925264835592392683542419279411660983731528757811597800427684805909002057993368485866058326437614498557445900782183841592302722334345092366110393246271318532875041111142084553925792284800838311459299970467672770690363322092156849753479014757409671303721464492859776900573080462184277088575072302355622163133707277957654345650259102592364589780310015009652205781778707335930963639265263558441324974189499131969679857290222528885119863704188768554201820469766393552605270382373131245672055718967888385100200158181726412375153298486706877225707923547597773996266108434008498738112130417993234824538949672718712997516235119063000070159375947134856205406210763996702109915281763210081403821473880882122662797962441996601011336493798190646670704651367998869825589732489635024775316065603879708480120590039466321634181439711566600935912758935313719910704837692478440629449222582876737806504951874716693597773879868476135194473746555390787588653699159353966073991557819146916305508044629149486330040149588263584549043197965884296984944301153865695621356224265754517671135687249692365684324625493720874760030363234529237525506289127594412058355927825520717864213844543559191407476746581045003916231940743519452986941888200226275168358916070195393022025915656162708785436593094039509292647952186771013756214427411047414104327960795387057150456100040610302583175077724519256153595161891375681734393394429784015188401115526293277207321640918390781686041873930342803169789901889870026641922150476931759493647260927187087684143957435649570210449204379727592895194897899134156199176771892990838653716587122555685594365924631419564910540745873413616632005922946628876596314420376089469307990518971158725033797345280267439590432554992926439002459768413271031914785213459660461861410526416243253407874017934586841370148055418990018346784369316545731796068525671353359409869028276473176334020955779525093620996597127530619723751479574952063505078140321684586133944388580139183393544464732679362587514351370052175755780801556578462553143044823588169350113363305835114509044543064478006707534138094211661819211386390035678479034576900871643033871393258674341679286238537902630163329972200383198560052269275494067436907458297721876393980660981374701033525169342863626016016347076306824043487316644860263127002971152470917610362779438271646192979710763908711166257527525044109503561981785398982642868928652042247105917741471742623513038156595657191910564573665012680779560808502876499873677562851400828821554812974770331091456173937875544818570575563610849636763939344051316709769660294678312557165180600460177680683138453636721787979648107247194431089214710236073026732254456112733493175600519319804737418285910532896903954882283948747248594996824033422588466576804917446080710879032894967489616687972974507129269141213134420704541273573541234158141219014098151682264246102798982064641257084754481872555781693068918432133311422335119921422627032373330712275339841055116119628927356922420560265926138913986061548349944319007711048585675913031113828827094507051775982098519381889130399234689157682580113757546526088345299383191375181959729524012366293791790056009451209964980233490362383320726074221923454614273238880885000984622199252996735239848337858973998291537441561444229052119751861935282298138932297924528376076371370753164511297045401697171763945560482711577748889309906882205565018983944151420488706109856450195029899160932446190702732374578178263592235661289479476199368603342942093820137341115658564563075445197518096612045596624498259004821054406372473696488213803865154862267331962937237446968833793439040658633529932119924569882246896852832847378545149158915892039183452110548753429184058444330251969560911102823097580943041212414252908123688802051506059419455464911756711312006927134376571385394406360256283523848167435877028477298767553452995277483435210547434372424231459149978852353061641675510749785488776326909768037985680828849183076959723945427665736701805859058409165615423472239236337235190692638353595117575798787572613167243548348892794111004181364476897413568600101627875061288031893640944817901141220319224068330309101334773104945425119212018074591310224841785714517094546161495366446991371447233986238470440482721077112169382533303529304523452723825148798150669676174316025439988917483731673338533442603758645029933459354700797345685850702698306584909077841908046833894296304045460980384544877652961783388682178454755852587605163164302842149075241698506354491456694842379609217466925572264554458762454472847940037760264916761620694708708687239876373744893230696468834678073357561105976615245355650605002906308511128128670534561544686109830087498240372272532711800926226786688698242608552935845402586425621542162292536436540390731238949924601564044935486536086030287013645023801669648838879719520129686696807162650609577735576573877965368806684044073624369087325445721531362080603563481284933538385934851658546721370663148752950945289764898704799930441360852312970056735910209279885594516965397202205932843690391310920420547983589015566302890792587691463186690604386678290642878786536208773926625677929728099109711488437082974250817990141670310352925378464611384368435920330355075278973339655170881883260323263789113306853404086962801647503981721060751288582963713965773704595619498691259823056741453750196025429924896323724310742558231908662788394326521185965410485272109166168288325032511261946401743182447980865586579609563656514445231765593291729827385270259536258598400905165175378484162229582307378052542618939726845056763381566530517852752494876958430651244272829490790141794659003489100629727216336038425134966697630978458399863171395460132429629685494512700356365820697630280252461326066195502919165435248788670120641930470863188706312266015191106796989765841826543553334869404054358579838424538420412622955099548111130835147293750203628256653276504022406446500193645494990147405165690405995876147155295503835114360583981663533387068371948160463402338865070416371234236733618577522049723517800834040799185420052857823617191504923710919645568792753069952037951774640025628112937919917526275597659377084544932384273166424469089840880318347689525009558276538935268335769264732671538784935765794359025160704036749712494901233303013887488065566472922527464156408537696393253028422956802179456928494826206509559431165452970870334755761410498658416452883551012091187599255185261640247229784294470282558413658098730671004982665237377983509945049008441687049196602803341097372243081911219292781042234017402339351280169108675566261004468144677052010210769409865265947174406381664368872143904035042597009503693547198568518789542530305985876511872868219074193250887777097089472769632317447294669939359215307680019357574557824880659756280334778493740336725734053717885932648046401634999531348196990349405374430775204000892029781690212107131161731193315208741357262441271301035941897334959367194759087099778698594859755478257999364748649034336126485241474193966897817937698075524152784412296529521443308810355590906185865234521921928511914033552960028656247215326075156199364929979784174956757357699054440980477359990602108229458572029040264378440607535843280929488359923946979972308801688426145519996858915370179803470798265945725485028327156126328429575480367217857249871017107042488303831625230658633423982773315058525306861528121788358515498085364777502177657924939285638672214104153979496034309765662424572037303038687674228471016230125275696374333925376227790874987965607936132923045229882664805004267092810354861940862202244423795966510164255712509034124283180832897104934590525380261783572932137825651012610812459487826225552063951900134637814936299017769690572992986601941710357044130175989064703360274807389947167852924159184875256105250263354825942657838438536649433179036044219029913611780258569603629006494362240387639296138589681208297944854690156738720801560554530942442260330173272050539787928142039052401331408227984432605169281141895424918920788924158728670890249393528484668426133480486937353178126380385352734388731247400926656199705096686514137561972082205546711625393911953148566719090430746412984752026842394817052583731257667929635631135465370297959749105587599603762167125870827657480144741174397734966684779177248299573038838465912884285094521815089393727016487186880650867192618665682641240002304307824779448332591165147654143400538085703427421643371236194949383509659630734401425724212226949245057111622247910570449117188116592619569951284680041633648587052818620603909746611514383351471014129410020328904405385463671791195278740042242575220846528518615659275881695925795135062233096134872611168999041097689368485059527383778761589271490717928888209755726412870641137429634609856680301819630631306119964184916742904375939747258882923959774630574098629751313558280355672287682149079635956073784271340893002244649080132259524087591240179090909654451063382564420478208657749591447134040075932367240050265357188339671555247753840145566756960695549738718715870039736786395372630774149301074754551553654657575028328540683680339441840815074584428164124275801133584437586813519937859923323195430393787466624731510892103540136422373462710814022230319438992323768204439762318240732405192742631894294352792804133239502864990680800614139425336624323637457812648079893033658375983573692046051586140743699923560385193882974790458480217111013018645387689254701412260099397188033374288649422959661484950287468557313444149952723658429127473841493757111918852791913945692265258492111118887939711440077758711262554419901629332602669008273489361922588278522938947257725907184175937451779185157549624382650499140343602658254026060949566542823133162126130939424502805244804317719719406580311807597684260056653177074513548312852153844772564020381896337039948232476495700372734867879795032162013072415712255272246335836701570454861642925580716312121259261664277739159888165619215169946208103588536128944066114734046760787560461579144967465820527614590751472683868990574692616449106087459906116070847788524395817913119208994034421847817632556462017594658191040586722916444400931236400365620737657806863892193804243164430915337672189219863381465907505042184057270462128991218203643221749590576459660160075651031209003429722128690937545471387167732999365406385908934482469216000067161568839259094139549741898177643332076321268246446400649593511660184059715863743516921213411516682920146304786450669456519206063313214295566644294938642226198457002173120704117265118371667010814497681413017169277904276955382138254051421289960528440825582552426829839819068984762799239051482947262521346680690699827416319644399936446142434632719396591690736535277272545637655123117002501764860629998114191505183325065075937242787434608473891814199294284280400480337423594820789122799324289514420063888672706152689726233636843408225921354512459880868306637225180592562486345020555228932408996739351569441177824828715322778702451088414030226271541977871406467104108006689762193738691907511142241194999767809941138518321969303749143843353455251613626860519376517426335546492141777347059678271153012118604850878543503159707668382058005960430973379902375762868846089959868386864245824549730413378431193635545297059412716061540173993039894983675202394880158098735670032530846580924823938587912782235162573475332247240031243763737733337497380524128807119200253870669008836033628208763947491835446703583462652424976578576227291649055338580014509753718676248114276958534882451925818112290270960821611022598097545554440083519731016377780082172198056801061574836304907164265378117661722154276118317180433494722203453933234446714339587044080133399160951880956674872094586909276455471643051535212948250932349773829535868281238333722891007857533915387360520388449671119849798266595186712960535106934747954173472860003361669861585496247547636426971630834450489541136140673772460702157072403528727314984447926115061784953075781297233269183532648311930297215941691710110064973641600804977880346048186518211294235939189531571718821692221788937196847487406005172893282242559362518509423285212326974141795867883307229435877826052909105597963177010654361418017449373915945548548769768086158626544689680191944293922282578734837452869130745267579761213875141280505748226496977449180783249723897579749056263050520126474478847217521699869618699423524506191056989025647690327728823461063170326129099256645046133824644392443486510743081347799352446415750529160885150243323236577532639890593380192457737454094764866739831191919482183140907042793571437503218945703432867584143807859506050005730100969548230653220841770911759916529111009698852126957856553114530212597199559727519137511086444999175416154901973871218007979273132579593097953990843404977190814834103039662858601689606719840300888882329826200434684835047346359846281511158488387816378110131673588018721111700943983553328084371852230446339570477898754889420878367093181556536015976324994223757464604319273821096842699453481458100702367619874341480176786228768411176346770081409848359861101266677475417303385125585528473111204707102543526764278897869685680584623586799118711797346960425170842154008775164267140805801298153017692875476580392579647430207429663436044650756177462718976206998740530525453856196544637921568008408928480914362693246539355317991551637559049305482284991257851066907566755000985854091875061123801394933510076354519073084293303547827703217703941631125016338555315516936236490350787376971767197768812932229185269570993152045083879154051509294382229543871395535438599077182575292299270002445096022218096873793106204271172810422461819735872857891522323451185527600120010986255097870351222068449616406855216057048116939216200405054609388974504539958662017682729898889295083615744250001560534610737702614045219493955117967623272848374252175653480339038153953298947237683597357459625804264695545797563049931275772257612628688668769081259954785003874954131927967630352107764594060799619277012799490340286424712793351010939808516990114875147754297664252538663626448836622543390106747606632103806789760322262418381983369423761111865373293897389634800349784833028966825078335935084242797664631582807514499662694567977873299615095919210695980319827539957053125878695343731959398347070633009535026432806500239825959406748684146136229926685000830708640559096011749202391737400915460858836844541803628146576047860315176687845727943496305751183425767680029582101098001713723770031402145012957064907281727300192141643330773348604093087810535180729028048278721991345128105425080615608296421086279916956323631442280295787289601758696075185734996813576467437700393214274635053107314816115084579553929322579201394178541974017364268351300430649034852435086905649199011561955693151035836868302691011309163250066872397583854194350006183392774438336095971824850922571933691855380786977748385406221349589392440222710262192459559248027482484564583205410425287611954531058262501997244168582977451767292865697672354411870120854931576268095138888078161595424922577800819364132714271591250799899487586412025843285431211886371267587202352370328478584857028404420925082648251366051314808048946624633691837055279745541528461204126352410886674209498508361225097297195277470068754672558159165471998299734867067082773213055966589239842828061329884345334040791962427753895711339143158529883641032278269995492561647861724352423110288467645671466246013137203524608840061304089431243504862241199017196903514929678635803345129127709715699060094244096095568025170601392825461828892789758749501320205197968148815357431577558089969565768745159343578202069250593323134014145172100270049405247184591778965722422699912882711968245122779000571135472195829282727556256326778550718113005816482905213668313577541752166088019971772889799280985679797042729092168410593355226004930508160066108548507039379466851808987746376515230856728891665040388499308429551780125730606312021093434747585151396163897083052730945741778834031485445060401912930691137683174617219613166750832679459994745751058310506438100981040221376515758583748089106311458016711785772836891944365279795759460576793489842435985542535137551605621768473364474802523342994048920700526573622313726434462328283661451806694079395963755410051488562700058237077636001671133708205375260758335374429415844726648669774636043288847352461031619499132741134477694061146633306266688852884902618574236903061244448330770374088477338507751070612050827409410037222074673528541977960825766450446260692296286740971701084011389461109138013029639139679790563877235845844827983116968012964708367507566569515668796638885158206181687213263956859828832061993886102996823973903061361147169997034171089315046315381758933691016188411346956425698686094543939987046788344888639852454821822559255421599567801681303178356880675473353375002459206336002270248535871305234810554275873746464237271738511860241569132097939830034306321064718396395785583286881546606093076077790357981974853379234980781504444104899972974431848393643337046350907648280406122559784694552320384876843279579398808688072229625089907217591985457796455350372176090924832518913056884041267687118468593631378641064038568300491022923406666863738352549477841489988628717881540416110507901838887030035194273212847756753060315543466707689323686855395963718034901035692307466906941720469973190241186381935514731773318391768424687540387751830872079772165978520345305702453183374745370433815221797816487604096534268142097125932476384507028076929051254740853034737325912202733713144422369237937969759181002673443610124153845900103614987987984842656372635252314970150350947925644001716879639935995877613412025363731299835693479942638765360774284890743372519732975438738219798115388399486941259112194283504301231092813458066267387043490799963861665671853951266427210886356423685640886329407501112305068621452967636995225294053194346455083170451629233500047801805198444541657690711401423279466503462888165641185322024808843059366297641797402526114356431110458521337051696985384134652146585008909821022458330233428906860354659671451755077207363102183096739467755875070962146569885215640672907231743814677922548076609242246636388288406656548766233078550865693363901028830203583468998418001842536025707577045439369366027040322680968908361075330927695890919403594220158727279685704241115760247068183888327182802417430658811434677579749617183421392204981789822540228191557757370196470684496428638804662723610061361405037298128658188524905842707862499915503104796325385185329017548632323387653829219635548304090653432475061958939387976991801039341167018963403953213013747108947338218038025086017455891022356911697853579836027094106044559540594670013071322250386143869777423137768524615623404324644977007913345778604236745706988366247434939728454596335107716479166319973278960081166837473516919589286165170539989397778584275605096254087463103255657896209866751373004050925738800229426153650376181707352425555944415737453037344869063717139071450470457482919251078055295916394005375754124975093067098584608104420377356644752462282936466886848143831855445670335972931635141433414476242691623471956820794857112882670041712890675099681080247285807611938397158308802299438633363034745455515224734971831489861577265409785785162908888674236783177491024519601624375709098382688010037372584647834558373782806324857975521411579250256810703470372389625893846096611209489388628472492663911155944478360987270623405735296929918129056165906095247278718390920910724821688670747345650172036341428425580099957022752233491881862898232218076199269876173691020264491939930230920584377556752437745312761268795526785007866619853373333006692854889035434848574470182603160639750056969791101120607944967390288342237685265403770951766469461470242943677264593355835036311134787891156547129068012914239846640465429687012215941865147655430677316916920868803968085097508586595358849353378885334356264946766654161774299712115677529203254671072549418927603814573303415316675963033952118751193567377018900919157664708451281039314793785400687659271069291730846665759318047582803545610149171625749192188264037057167355135056998144024591812606115078397974294973441158997710777270849391163168987527984088927056922912714269733155554597871649022739754595009993982616227848443362050569397272207647184690431812475723712360396318313359975413367628383900000907572929475339851770736474228210723119252890835386431644990751073336608762206900564567434359484359099685685356079746851211443281390410616695707730800909190803479781243804477406207472400208459792217524155825478111877787166894878527248860607306038289263670894654569075784177009777905645578744755939382072103032055499961194205973035745958236178932045958679649228346122993148032747860054981974668802334008961556326465843119693151794537202248406624998346158553402414791629326003495525899410220100187430441682219764676189085555676786792062515534199339626964858832591659750301476842335049189179400327345342769787529237301131670163129815090724498773761590064656747315452789746549745032664540514573153801051603430339598809221758514977491118442334584823356426188090622841686815101059578485757700763665636633369812177589703148624170852299112719901230118040228377332892073808769772411188408996736059345280652605141606629091591316770614056123204735111522309321009648154983998251707603427037354709319463474667155127186221615499925624353943737585524419651257716399665273888875790198737819190231662278183570117847487689673225918097018641981019375460079493618155740456786198757894650305783683071798532034186479064663966328727091620428485838088256943749468469848521011739633765594941907300286202026007533337660876288923485549568164918337905394758048842973312872275038089024349828285647476682342512327746086439243915271784021129969299642808674454356119905069991785210898477506946113717765358071872806576520954175802636546964488687142559434838352882481397531258264481152450041994510687089440166500063881842258106576659295405176352684018831171578580246644643458552948929230475537893429030402345696689317787714605520086671994385838721925481577455493193532109406592528124840355529193756130005774999686132138080359531705169191167315941166170064545454824931648201806499407114624226758914895430621419949490012727301112345583837008303251693133184953315889300622587121315314011662353233742585601838414889407463986414219739850684027469214571044278470749218426687047279098739061836396322257448503710449165292115610145501517550299545406716827178654228169779774395735598952937007604007348343525584871140985781246052668315998916283581542292501187464404564467440513443408924069335670511043619765462149219679669790445337345142082139039150990171442311831122296423311358879148991957962647678674924571692879254929285035895751760088109038224308305736027856075045806712526656001158512055291597284719859183970872426253841069363164138111287289277607398425434903085532913221635991081184042192179483137736705216317194107287033199900734764393137755713816026407239429551226081004832132962888636559331728700275817287644545945737853239637548502755523463836167384895980215444562597966654984024955684977043566150004852490590576669475359541346103628973874196621935632891043707156066483090199729864950880382236772679754055545711474759667536540128204428281175290214448016178834557616033971626268784560325452824903174110984968467356977175097470221330780195679648991427679416760857379026659652757539831256314110572991445105498126108930163198536993291235765064195105559073205134945915171880596133830201123924991554936602702516421815074546515240870708621918981800313193689662764419678403703883454545303787248544639414091594142614119744521831032906490762855110139719759049506366158271250688321099189417990590425293132657074505484652888393899246054486733649807433217821291626422121886272728935267460335505785693934559915664464012151062819498139592713803290094119544397900321245982478902504330660519211468355741357969004000141284936868520114231314640209397649777534307975586523579840778719415878471222610361246491020142142995678329960363330019893580121245580682310555846285455469109347217406259506546620629080488749274353768776258507749018387882578892751931487299587236286291129426339389748624446326053765744418720176426140367877794188920537924358894733564053367963963923733362905389488766840471641489555078804955551823977540298014811859717449474744484215698586949030350392053200128076079197744177179922606654075331378799144526310228801960673738478538613016029051603456439372308605385482254655080717493806923950709944222154758486470059595526113871346389271431880311484158283774522634839494201233057672353426733992185840713581860745812954815618491754911767597085775599271849865836158764943033810259230063758526557274339199916066140189832985137351126644745034183744081632466394180447628850505255042999002258782595741676553440600240690949556490462003541438566733203798410152237700912367264281610106528938817143890702572658425856661372976450564770454593758609528925742168610308048456057367874367463674679129680584404846123730727704440742758789492427034487478486407765293330438448647095110959982273182646320930140020503819066602881523568377392375711154949655105199841513272253599273718341752761137090756377460193868578380186619969035534612899609085163745497070683774498665659599761496450678219452944043254307499440460517425301374831469796923484421782630588487025397480706864784729890939095858616312200261025300571859093216914345467583413651729440556580984888790507908603093650277073900199055638113248336319414396661664965843124747210779672364438745541035199102077663810401348828591285590670844833594479321465399959409624994962438373749177687381913229716897706479710902407611892953319891446583669146469417729251238582712204186849938902953650471843978972609264555723615599244985864856563795198771305585934574138838070301005080401790629378289036833101626807280495170208216224008161435394962737781128297033315690232418509059210158571106436997689703255118274095012097843141159647779911227688338270837174884170581406753869814313612478347813309800879640022465432946330433864991108239297479657289721749271478480425111367711133298813326377734022656659971614353491970680929416925024690700626573522446946294689654189442290032147156170308971924111247194814639779326085107326297191511574419916991102851939514969023806353037242437642806811017063585102364345538122863811002495080369557532523296774961629729824411984603096015302228414523757724904150159032469053729456532520420350979575455435088157088231982271711832272989380371545243961015441183625123789700178674538852301723274158624246323178796202303660926402027792691698389102272746783280575946314785419654825386146510511309861022718632987299962564939721432560372199714514181469051851357064238848147248309132889000905894617826311607751889389618749747878606355292061834623159210943708352288979027790125949749166685039370105431021464087375212355521247092269573981119789309873609222561027793431009794703527268608390445429768599774936816693298451038545970860021993671659003948263280602778849724084540087642520708240851781819435954825056314551921269280741575483566447707848464410624369698525079300051303236477541863414236021727689769426046297519643690398745741758992581223709311281724985636666463863565926847815296925107316294883780043293148837542068879531572091882820378164897049349659764601093251730557788918051192225355906188652385942993905902234912124212348244937928357114317266058563478725998364500359477316639335012264772045825150512978944405132811567578811428094402801660312491529849295133678535269506400853781016127458544852355843674586351460731183583156077337812408220013312914825553144814493293801263927535640955956270069112221703419734885113250980680372054357461154997523590162416353137645752021925440493923723460662534797906024115578027531391989947714895777710641060810978035894136739127658583655417442463848284892430583859602333351501725793675547447487331800030559011252034205806247196158648318685347419091203884005557813871675269234651361736613413916637643656125842728258323655273335192300530753452046666167323302054923082584755575203358094107816251503438325593845560491691024789257243728770818258595101131804546712441078419594925626585836368290172987967338844887764594155335555456227855729912797436305165408782126476711801618805055133572124624616069556709858490451776738518334339430649571601220931401490640894701542960747272500142177800875372590055450845697889197767719198029346208297744623656380234242195286205607381590628282445602383267743581823410022847357188640930135300585060995478519228143793434981540820599355371392635698325688710167457670716266891642549779970326746412110078703579019780754169885018717162106868856412498723513324594477502222473742434920240355648055056414006204347922472694044873856569567410160017522332774454211160965805156555586193656303038396681746840467337451134553933850725844401517732376552214212844767853146611005045352451877016734516528441841527828453634831168316317171719214370785244875136184078796666410920723704000331432545410217753551072140037898961346749052656794947870453721199724086072181136761834420494690144610027576588746030567225741820499593723539424941822341225568170473374535545214042906750870619133305920856562081177192954710300998688828334394324820352571638492629958553780617863629280702918704695014114980954611915378564411259371498760626741405710096753906437648776145785600492378564839462063035490498050128693475313344229642421808194235433196278639271494761141913766302336102065277497168872480650154036407001095588475751486022935019073005427316417541976610822944813729717169344536208335496670550757847582883916372049958023201808813775977891088911355671149721022375660363821604479429819787914820607582337550822566472306425950557265677093644126079722057255580937942785465068913993126773672691605376812254393337177758972133153592049636404853534724852748598813847707012733869549154547437758995183497192065018346977987210196375169719073258245793855947033812836739945957170714410022068075053207650657586162360487635341374043635499604581548413564217006260732276924785358898063144864450112260967791025105661411307053839112501665478035917214864433525474248493965180383844927574278833675864169750227764599352196621010640114241475154113703682200147905521228378591868517170098927705555112239171334181693473112430027637971696811491771014569056474667430298036752917550112831131815301670598244002800776104517976571923372572601684828708651392833770641664432954690927805810893168534517195610578698214356341561089614826235922642754871872340119554467871109836746993774130756717203276448115258843484594320301227019685403361130094166058718707228369799842378095936007157928733731492158122738944927459070776748923570688289067938555728545490461248331940848683858938338801265586030224404799863118954007502281752640981001077640224069943090304777579637247058904262603554487011677451182506301429624235039559066530449312334196453637584739341660230021677306913958731199495905622192469302474196804167128654074206639259743424146713513907539863394378596753062192708136629788085708055142670250077015370777667042129817293790801119578251284375488099809164710165747326986588195406086505519143348191284244286716859269770644316728065185926170961056957542467761359064730409978254655402118203596705585759730658212857160011726988019701918152683681933955798244590454713387909484449130296773629890333427069732456723869087280613595826918193308449931291414795476597596648238861941069990100566355464575393190719856455671723322897569151243671587171764636884236696593054649107219066511124963264380084790072128959183003072055134603535630349855267401273013909541383327099224147500873592655410539102880192414853671455467466328382440218772568859638279215252086054249028795336804451948137586338964341203746949475126170338086588337708574320841617787992390356179858326122962542489683088218865346977632508120994611537586382664107776945740075924685628422307459057394143246353897805405782052854086806277194350989607805646633675352386520240496875330374435283986433713391849799869053469742255642859664820408578776308641424206338687605862717115533647691314858002336357950697054147149254077518033182783980511889144654557748349896302288494435819087595967227204668386818629518862520667006982149397117906624212482634911227301402043447322368377665964395772290771130511924752901988887184280181723916876344746030725927342255979888380874165943617219200713371110985658676069130011776968709929839793123242639244131954254792511555460409507577882589988494985163799966156360077352020255716490420889751746985168290279790182922267218933437215787774111627623952986141826504108020082861252720522885721262937117095537376153722289124973253117350611264759485331753366103018979382277038937273198401482384754254837660864774517342122404409107558617443489912762668989610849126060601206356587125841587377290165667841338752500289249634228529973214156547469580135130788356057257341358074264501001643022465367357430028379119975688395055179377280338353252793451480577309856729584143090838572559118468611406401568264777150963590952948786494321047509291824031700203171107225232464999284359560482838868030942730928502708202572039040575527774144213561499291522167478371684105524768378928288568778721026443139993428726552553501636461314724890397174839107214092804661102183578704716992762588592332853339512352331017788872428459104042903491188887791224821531895115490063932327806848288012622156805307862859730371276464165312523849126422273709773947251044161940433236426336045542256789285139806135646012023903617890210260293577162345191260022127571923987047591420737211622076581486451050809504536304532667328456798571667388653470354311851095557136126970054091409943426827869212098077996731467094412239494927940051338881622359498419179605325308155698096147542259418437514503176278247426035960087277456087637512389070782300078239682796124050411928371022696404948081639094843164457438489683114136839675607586010183477004622438864892083772391315057050885102488722899203652227544162966874033893659410739400548468866220066510114001468136629541291666550996822901579226265803394225177988893346384155277668674937950500319489940171801496739183668189977405286011880190152605011805710485991110735187045797089474808121862436861529610610972316668279004593041748909442756333276810549293968680321713529318208635101384101365695427625605918761691455640337953120772017109913355329555708138274275955488596491807470408210499378683526969490628373531286066654397533608831838174539742632346818066918274124379270436088173537110406399641484935238513434037486544724553592545332565174870487759276051466015851028636481917257982370822336220065465217220187329332398827536167154951392249257655169155642650838374849507670589582764417654549509766192240088519506230369757655015080942378577800603477350145774100942674873591200395614255840023345226802140546212615616711637505764630480749464262867434139597879681853397684815147310818152646843920104157031749015654604794106221601918567098683464837311172762176007791874099449899895303231429447379928319933912569782103946071251169292543447216848358759393045731689327218634519866543429513972115778185320356955772473204576029101614007089150447920967996046577633274893331296902097192560701293322809024448407483254078405924549163550048276696559618893788406961682869285510222242459094905272187134411927901702088821171875254126418603794173301986177158171965313911148839283002473971878906403371936118198158675432663292246948743017204011187350474557165010946139306607306023578769384552976129621897915093027980290196360769958419063089391048548837982351013875476527067537323701912613564263487747861215545218459355050908648120618520640841665721375913596471737650382011775955803940019798248185943937204860748679835867693540276403938706184621807428403742431228451714529371557892652228603656310451667181925123050439384685196413542837950071814067880687973777832991059748811921066822959860577694605697478320005436279474769180893208553667451354637465289060996778555907521409571565435000305603966464518466706522120249536987373730122923941097072973491779779367082585845589324473742346462145653559211437142891978781583105745939756351524403262851188118964549483869378393607048886034326957208433551137511573453252551721450457158358525313558937334954271638250043787777226216676527649481900443456860269540020657591413207083173582242805446964321784511076125846465736248804878171147083547565746382540569938845862404673672600664013993323932814711655102432020745957909241126745880291600993601453321362625102693384040811853006302109790944969675278445634026542990091130803784517609291450573766661005748518001061547801085666921522376269135365763187864625269136529015666959195770955884218686619151533101702574257181178569173514049017787495325055308596610848033823767801917216512231073154745794041157669808113858402534538262432939207838404193960635217049333401923464429013342727760883916056192332250606713387116598107281986789743881266200608992968082643770483492090171052804396387116568615577035522742484871557191680721817834397704257386128570461367918129023448245674593467949513424628229486300336021702236790066751182450045791130572181999193736268423413686150206357901620912317457778868038474702383002072853981788443382704058898997008015457944932390544205357227379112003308488414372416400317964936377435294231166505343550468988150606532484852523959266721584649624307930293829584146993750613258837085838481850293903677175596462395325503198460227924829130068124147565209829724360652462377819964000804308119834492335773665700293668943665344475014783739931908266467482538709999056133687347218788624857580932549103032890256767740879107870107335703167921879064905827493893303368491411832716384802007467523425201873134698814022891767435998802676704306185889461906822579923290035638591598283972268787774765252377899084396657416714220587853673221328219625385073614670459159026995521421609248511148984463327517409361044542910142737699777752785470227228483218731486704796669382891657981205536939518217367690710197906885250167334635910023856122839585173522503865953869252365920980601614916265753379589845341222524007434433942897218434382318578061646680808989262447460621446259756739223178139558549032103522820678986206957702975126326854469467993781948024138853279763836096276368016694959429119548405249598026050036614842539939901172768639401612560905285844302977831772274684459803935875955338472275865751233852733753923619218821781856668496579369052743551038029673880375300043130404050584359532065834833054210358563212427998050003173001616028440237363540599362657886697858254639600549551057339460594918783551108025733512420900664227904991898477933143782093253355672373249671920678563807717512304365773406831745948349221660505992853561662721767777957141858370931673230005643483117707183108631986385976191480319917690273553303090420427029988986874348863539315014308801006956964909849315502171750416741629974022315427418685421086133962756634346001819442921451448911032577142347030815854289573365108482245392281706092294893920899172703780999892256696281927400433195028452036551115558038586189284863870727651282467042924658142022137434741570618633345101747733120062672954987340556905656233315047259816529949513567475587475906381613068245931061674802715344540412190034687876403891613307721392424424928493786380233330873843910983321220468113146195235966363574166262430447742895758463181648170461718093863785653929695560883020620334825837830892530133128350612856021226874056609692830251068636254198800706580544347182563529890885544719293792995882080344587413392600909555048396669358686885252022788525338655229676027034020289308901516330036260790738048738844489506655327800341715337662285781332819280755680235967671801993921546217385767770795573699085620007918020795733802123118822294100714140499082681168895234640900544754311140924578323080720992376744138853043826779087750723167638782222636712245489630293909707757341155410544419572752173697491582033107328574103890346817372474972353020297193728788086797073121851136051190963080169521795102248188067365992017157546303214795696213045792630833222801340591393435265154649553961164053067665611886022858528140535308255030798407893419310553876482700170040774778048084318258219999484163712417045452664458941865903824882645565715373178460473192490204813840089711248980105936685803830046961957773754567169182488474376034185263612576094015533651833058586010410815522265206573605947191207692905327730723011561927489035593442082447647350755846032400116317608321077337931850073569688472338238085188082307246496305073488428308570999886665405417187720454075388244514010721115640213489048425594761713029276530330320962119415037457228698999040321611281684001155062620014853102035015098843119663937247258178049406086052315866980110698408459354482256641054032605162918315011156335106730356342157661251813788877295324743617854920372527686341878870311094819898575441781938516200453799356089193425179828240870643532841388255955919381074094162254677666989254906434554831881579018672521120944258621434920623456401300405185470539714944641936611245134068641693696099427941240017352248005017530487430604463869566044084257330132478459974347641806637584295765717865881970006461356424022071316503279993067499412120635778887441645114561655482121871873915597769049156293422788819883847968894897118498939367203220823244867464659085935839212417771861898249777305782617922807470596580006297095299183031904637686343785966138410716448317542751760964039885220352535060936930480720152331592088667615212373734320864555056156713869888924470826549686662809692942977851043853557535826818507996085484490454471948361002214468926758796394121548732877286856016752544040089380268820057779532704422596839889290098867444982321560631980780576500198784662359500030259252050610898305109810888443820582767918824877397533872663047381681097695548215928382771201027656276643242184200259823993723148057061325259177867225250537561039892292737668444352912364104299070438187094371283343404689228487318884257428026199328437428348800096849548082719062672429921635996851909187743611429689846532949960424914014461710126739572123724039599551472747585201953225828574431638152612281704299557791999794922198376231354441146756779023120169978806487874693889460854056263246844408578679446527879274924780623843450400734332766351676097171538676680777614752305952733470334621806058292710342811134185908154458573131197397728233057829357339286624591279298783219210433303159931417605485273973116760884742041602139444182097961295807730683583294294278020396736750573656979942544765547951272716100904344814985604044263249648799131452965099099330433598552770737359388604701178575713868129756036269300871703686209030790804463114366134154211344885368724081187531792955398054151155504938930466677205813060991499507919449634506875064243052817796375861100926644384499732169310219670106185053897692335447519861896854336297859393338153200895371089036307254544756433734033219398773257242981846432276698796670376375204346829219332184280184615917140280460592642647707913477381053554674371982876933999811090103741478506029257110257852569973661233326132555960163715765045173283418844064415989822155787858638680285505628020611613488414894594097344352790305069004647468010442269542200671036076766830296525140546763629287569050144014010837899187541363953707428519734246513470857111285802658439710326522743456828036430525553213208161132864818102106297618961361366529658697074520936246268087912160934613500319014878909515480281625806963714807155265731466540177682252077453076337902082958777523434578974642213438774093796557874074164196345774042950511672093904118649984653301801429263223262612836324801691342242545122803320645678045455635841790920532272533331265517384965547423246742175175704058829899554039768939848880767426588732564319603681803455131025786030579970942882704060578230382420275439427781178374158766474687199000435439689785727182427683445970985904242328154362479355067727218391433221723326425747756846254618391704864520446589386341751798415825716732358404197671172517913163990805671703437897879424695209621289044405226959762738801673665892896557225500008203774553318701081325728614571091116127253777031076579774705543824055515706123929807906074770386334090684926410866399621866414415563717628184078476764066540056146644595840130359022835769881389928815277224726419610855498994026158767051033919737892867378763165717294178567582485656270575386448278776055805787635990706804046826790440628317211214779081687822983046634944956136410807469477381982699330496059787578472501182697787813046501224105647988751140897384066009027191935823833239520666894085876767267307605285289910915994927967188881292585888170225798935541725665518710179139516801926370545495737045179918564722812920799915334944545644810149533542853125724811513652648677334036162663213434551946110093562724101096863546494510694193462678280213850247333680032858206510627145073719938556435385702270165196568862963576425950313867670050314386506565775377876004460013246013731083058347416359813059386982293255535709738303721637648760708279283556809589582536958499559248833127640331739821508457405251570837103650323273396360785413193452458145610451414739122895649455867451851508964877608547191588871288264737590821048085356617310137249285964783376799192876866522886150345078461265145777592774867832319011872516259300008683107794166004079369242964581048125362150492372488959031957452596304489211674614389112786979046294519190830155920133717582383756629155405531453383401457459437856335000301871101413606923300049565450915783460937573940066631405621859143493659042659596542722317728124849964317630909153452218451230987228481622379307922206299079869061930681891838467489296874702926078762617383050585326672606736822378885211349605902099675503443747569401332798027591627913890699763007759358516466240976607658808497174179126264719375123110725577373441621642746444857788097725581679309455379700959906042516577433795887378513031770022148443706619417667271941596587710841866516106680208313975606470220996455067399067275430727145710826589328056897196959584397491883916585935906611825072527024209650585486185136247593860135704561746217664279308123250984577703462519837534500243839787561308057132960127261390905704128495992858898584910389396456713261887916506655026280350562734016018915513651973897436785054851763853679884266148434281263874416653202318314135896186717636883847051214116356007650051939016775165340425770727866787087834358262889180352554656938831035193676518566062632103231951033751547476457771896065606337913591451090028541167758792266902532006254076096217472465273268435132240294287982621255527582831438539648053524193805045487755151229713138678283883456283323173046360617956596722239145345289434266058784503944267097652104187813985867379971719304704669840133726884705697161430055719445504745937033293629556199679573186035830127184182047504431709291014802500972080564568741984853136681108388066707332442582854215329307589145415309550684266855758854261767888471577712746704531014398662964878483608192118392510515716806706660644189582398361709537733674385371502284457434247336975544003951346055123068434519936799488436931969417566428539361878086150978861938762083713930109372350167221723427770285213806147217080898128845070976504176317689547495039164294949969062511195270004860849965484953545786700608922849311930500626035598634120917052734318833082482251675028681949578538769856717408388457947527905619677334081573507751270445071277155642956408322680908856586311032896114520566055459161682765111182471738138629221135151355273387364653690632545604497495340964160414836308901192238670065195373243816604240299328552806916827308123670066972507889649094132498827586465613839204700358940351186082084962095634783006541330662008249594189197196110706510629714792895964528563468757818828870694334324725516412347819228560524653112382092457565918417778278954904082604924991499184344546529442419708693461751702834313424216361557604505459431996137145674109201550485210144101692855450671338224228076268747803730494113426723772060266511110067928580711699192198245538655228273079017078696304444348319054259568823512813407043341715390655238073886988071760640593514748383268505263630809900602326826416394901150944127693602473237474631156535969094986073638030474467054530103679846266198332582816027676119002173453557769990873451176572662755116660796529344902859384406406317249975167742467286715374184856427182818719050719181112856193749481391025029496975592321613679444099870636520181082917999471915928757052052111377104591347424698833911027856836017627689008092918503217093346264368343234135588551377798597273523974410120310202624409721993461435961926293458950546915573088586800121572013543195776402761184523810732738086003788223149366459991851094783596191665536829580462657847702314873319691545694222784966007268418512366693198146944042101360832000292898186395045445397793238580307911547325609224189462359260377442070474027225900791561257733791664206417648966171222203460490123490114187046662050770022115103168830074074220609065080649095664245562485776550904178173100613985428546003307952495484952525849612815798166077969661624941543106968327772535102394994387917642897545333944036647660816947634406411533387589303039111656488953545169886061658103964962102311765251347861020250544509142123809919778110669761237987179485732208314712284692248701537600665089896433344921899078974176198736796797305531962792016145829966119039826644049656579892124301076418545978463050242304688946130628773790548287667519074632781381579517509560072343015255333251169882256988848650722682363213116908772017746312905581930015296175830653032159471906946568670650609333983358454006911665634271649580058014793593534634014859593159515557629583816134687209409101606193720219466645201664073376275343970802937343047026195217588129834875194587747991793137353606323265639626434588544625654770417425900488725125055563478597306296436146918907023542864012613139269495490436491522915900083024600920415606435260174870665189522746747318063808185080885415095362976851077011755267958190990394666013210476867012281186429942786978152674818776288108257078831091242709550088017710231390713563600526788271939432769085893658267066851273925830516202489657773236959874896815781679630169997044644798888898769821150443730324475763793572195342062516300650217446199296947013012643000394151607442539423460883037017167989376432554574815084548636523986081301056830977411507645149397426737364594996734030598675851743341886966914497961252797429770859466248313425291008264266832594367902311039210817930077323599867850678807630188366854559742605225489915378639905279473961940057612876993085430635466916465358831327369892108309644031713887457406536700677722427391900338322822776933388858843071211063199035067208219937505330198699456927578556821956018346364396818751855393494867989546184916288422187383038567863589372868682522394659936825018023550961643688525553510962337006500934901021933100702182484660636990884126674169801519967958301777964234496917812812045335022550903020118361853017949988152593784703521745436899972499236384739151247946280949086613980762987214037588507247973528384804318856036571419665094621585471383792495950964979264600630079485334281537813426803361274112614464839139304848953226772605620113786104930180442148178883792837320317177359770931526162437723247145597299214245641813980762464431777083407318637491875602399549507356477245971971902311434430521609329535140645752209052225955578007506648034571887424629526213884143966958715941657695525107851917717935772806138405032352015775734262421211375755510601592633341698699455997224523382014926237944046078525971678783617306071008650822948224616867984977129399411896616402472277081197462800114306956495481877174965528963642810715148583433505786125399505642782542359204700916294600834774244492767259850519373234196869584663196598042713766432274286538841403223782541745469380091076569432694852021112656539196517294505339127669374451724423844447547869842724254398272612301914569051175137431061493766867326351273702542539126167093417151471002195663633672584222282511530486266182667909581514877945880190547214254315337227388075214275512868081388512781858235929307270556303378178542295248853378539534106517232574373478377323998150659057325093312957051667085127567287026072692095928480187646854836553772516754244457882902402188918329375658729196198897093160904041525948602570717875538379274172485489227186840219045692309720560670497178393940597939452980887805789637771995688939233974765367078090082411857543042296105414571261202546192862861165990389107639306088178876068001109450509692129302646095616464044076695148615869533183963286738893627349290042762722493032931725360447959787038184884740556947801200813292767669448454763545815084290756499165915675255445013786554535093935506250847582309025227138397312031099965308463251216390670302097032756838692342906698006992667314556721882937158085593720841134219951056476400423154619317307325882021733721052477904367817734436585904729017188846396699397061317459442012963404669239465136703756438034310132774406510588735640054564475966735987789812509341618251100876902607586158999734842151855428047546080703084864244791153352795805431170945318629324329688580419670403226874469789389961778632077880397005617598414240476168207951135640151100425431569832314763151441970908963746130122659739479202350608778815831267686379655824071188930049445698161558314789542439275205923043689713011396222346658814055017147018512811114697133835724431449078405557666020844256279437773140884930300650077530548787239240299707885599855010364939059685217525588538853363978940276156257301959799902603573509152489920927297894439057944818464051341547407586957735754900017577042749185380909511411580297508604950511591903637634363141207034383393210572729267124609765127640583301388793236170523485041263304990823158726714285205806955837996568968516198534359014717024092691524024532140241352949136321047479997759449259818608665901962343136747549263097268898084976703932085796909605773232267872601039495884734983929606999246068731586350511768909621365185737152243386900322185024801223134012099192152953244810701038144565123950672043412556270740534690142196044553685751082572691737784535945098126062910159025769854445386260830809344847250219529762495778162943122294194261536770849248682883071772110197914610978153429504194395385738174576889053533945980031393851716039440841770458612991891931245127163415975768084716281087525659278302288834189980269481683959622471178641651301883636539636886913345089393117994586276554182251453551017635769633703810792498694815239375652789774657374813621139813146568517967781017153299529899125505488112850790793623818486614649155799938911134738514805196635464382721588685277009369940513116911538679076174607294934997958084421931773409313398294658693430311057320798684488934256034707662000817309250660150854703772692583533069456814529355551216102753221985972937565581316773350248195529925536559014547725036661300304830074735059986757090145297708011171904843534225283478974193252117830266424314803867311413643495482157834294568321015815166616427143969888501079254049898345850683943022825553641829122471235554025022429321739956056542738071792145416384806330075282896652195089245300068060594661467380183658787804854979850848468591383440595056160709939616134229868179275997103009672070742871252354005750515283921387378022232283218546142272015714010278602600298857573520409137429040163145306529124510956458692259257412903946545917347443198841317832997127406489052744487155395410646569047199577993192162598177699740247304681310528665493721084093714023688214817543385121854904621040482620072878724779125904706027323336331865741837831774336821561762588475929420719682710059492899237571282229574748364570584558211801551377944726398603588460642416188487833268360802934198235284423258715772413349921687467369065556083017118149797760051509177843009471765168796983434081423778202104307398282772217299520273524083365429409577657711534022515534275292512109714126371436482356756482099062798603398873015592133177149101516628405841797590729335610449497768272856589798301101664929048111503355070115815146599364000072077034006029665527504754245091572474124288188595493508244407674983981199207011393019046360603815754974373757115543094912734338817328371590021870640415824834785915876580015247829980896267589394863661390887780178031787096313641991134661110930148135467568910239169734171638613010499000562567297608644154601735148583512656395869612533363263761518559091088900117267434202657725711508809641938736744686112050500275920844178041918734659300371824819202545140902775120706884327200528117250702390404100421451632726225739240282996912289208337431028143088775107228468084081686894221536854484666427945759074964279095922681045912498157147372608593365932617029100451859336533091690753986531385738962971274836485542627464006229818575939465416889951859644166535088538596830998771005950469636242498423065857386645643003856343697857392977044285531300562440141958686462553831229471073729545070455553238252627720674390242886899148008915888634176864581796736876903378823643807271888375804709976148782717023947685903627191462647854586707143324770644478525034693912326259992898458989911674606285008035572396366114482892859656274952984309066696074121615968390842272045583646281432898092251019903636752499043570397802075769162112488011053713271248177498694589529788006324623637313883813384952568564296165628500698754942184136176285938895113458682435431948349083848932193343766406247031900139991953038667618021234017451572763119157247835432318508954962382724015830857466477169983651626647920809753283545466425954486837246520269735080859148723575835747239493147725823281655723929487492273863208641020173527613119061654860957913343539381376641543816151956923707242413264637806947206164335453493935432481555696582837228600713881713440248904065757346597135188949538537570874080417080844164152997520414225773294954556899627117206978416514740660786728111473291980901349373267415764915394158182361607172617496073804677657067920387449216315019934820598620780754667301163334771610600047074361480295563632441595519867381355152140676774999648281821521667417209774395711899536868865432673477925784246364244946802571468678775428800642633708254357970518182898098800077387347443241204561678636892430128659728194908715820820790562273615777105648841626041615187008852610712022523529198802386325378522917247325169953516799480481876984556397950635096079038687655400848472518802146099484626874779855186958060061028142528499107357288609072066788236376681365891895971212313487241934015857339106576340893482227659171830469886427689277095769435913327978410069342763465269928785369405739266558977372035286096928611412960838219339569999526454863593156898411327283722906212654537234743038538787776513015522411160907943229975923418166269772726351623371493451459283845142103974088156308305966991324380416478508929295726227894176317309927209905092906734207265470125954518503309436301874416508294192176420098295288889332013265221583886735445339608983432578085831438301934620846085285129998235356318721882406737503950005166410987630984982119814652772289027112133503118973082574592128520726482436555471610444875347051466788395451978487027448671890687332768364008102994984025256097032788202342096787996408771407636982906474679001287994310543223455713326729516825841488651920082436781064206619204654118328163853495232947616051426413433999490036919619402266594722678640302810986719899486218267087315867501693665491411870632147984336047477586614990943106729746821800582980100057907784321333853238773896925832072017341515867017466816262070804627725912475289336157441020410811780290954578712876178453733068051055136260867246173968603094785683500621730081111308588055720424888688962096719076189521360619091228494835439559782407820561741798599468365082894911907745025307525596611722573625441876944921541075907140386498604309193941718310667081907161022458595193652665671625375535398226550048994639590322066082677604888172492628944546087620713732945636927680968581829127055043114394053556625462371377638994373127486671799538555811218912783582169846773919292403840528638739376590543998251484369609570808553490764839180207884374126659916699682420102147365832102995123620808475358528417684191987007561141759778071199556070118322352170122359023571052489805094722371940478669940543334554427682903404986995323624482728556198735848410092393608695062899962931157475574386889458674451942996159167871926546516351245493202190569188333583707956162655796533813293185010118149026357016376063507439199531655686443985888343551380224883508230754869783838656934598384852980321809042396115144145237275776432382085083678289107204725838437117201349418048809050916642725744514359217803887926190912182912431590167403467896653217627919222752053612806548864631312192631337960428235501023557768915849078867907102712395348653674064391869539139007061740190703967379858184685206468200712674025067076592161363482628198244726208658076755014014863376374209596792342291743925013846734667636252023261744540869397882898402147506030792529542979894466846490846091235814475859665221526973706451786037213916583692033074207264284626050227775872523348267577785099898935222138471141065550643876796366042790301122597299806251446135173361145089184930991083744852316852188907844625180388468786424219597499460064304435386875631500877392177957084437525956732618677478159076212850545223756975576950505462610942619567930470326435187737603879116671773393278063692416112483591990874641371489148723412728053995627894378256220806150767786719259448358001519297823587637364340609447565472628560197263413915489622388246890248083850453343314621459962022405971682228264276184966937715608233695320583481810278765290233608015291496412496533213536641413627186820795708735656686994677180971114226812909299814102847846547414565451545026665794563309724955409013905443541173942337348577410651691129085388867662643861849211996460488044051309381943856568763442772795162784423379304989669917133586119794379740979708317653812623458436801081029977617503294558280425299493729032989661330630308398642733512533125938620242913257411887202582854344826653651336145333766491049501165277300436154234639270483439570909913331515681201921779864362088419540679352214645342856953086898681101873685494026101088511329266516750335833111061842040848673030526270106152266567268335918271541287843980058579734599328292007918168329314268171945543311621858854813192025032697441006279609327268340478516504016467636123273350390646015874609208202004525789858222996947858354018385935550218897334126972520993934779672007114076110798642361517115214359229764499370963754481921167720227568931079170731146258425304245460915747577057612582920152770444282894439733272267735363909312094883743181770905052865932497346918663254802000906680063585648620723491543471598373656341277950098377124998392533386588755477978982815155994527005158766148271599943076952815615506906482476092934375432206156417198740671375779952286866876223793710166050626081637946337606639855525003312357080825889749450462001249753180568129453472282851751535373849940429457967772827718752480434412046977809032477565956223830116269695620021408683877996948389336099602471138833329467741607515514780278226719913839595665144979605971415817184280941900224839772765144558291532040649852723057453946229601592695606867787341048253948630016178089706554595789994711974265355181044533940599240480285760339801293797462401234332914253748575341105592950441917368496135722783375836966066935038413673179767049126416367419824705970170887598426720947768695023081220137278107382855084328333210310060699624163742737457045038532037708686701718938546768313187686631036030764482417427236021878841646119821193113560337696575916694421283121165984243286194579676468195351053544668318602069965147560018257585886274414079135730364321300334675261735374838602859848756229665653234388022482913502659566782771073181147159056025049147065082013505790628507339091730248949257250387576498213117389211934585669587961424448462222855906700161664265023918101772879613713747197390784559830909011689601070722166960287793530749772343083861053064822046278663353651071895942487147321139998664232377635353903654477517116356613455866606398926359943582836080676641380115773114221028641681517936727595407834808527478540469564854448119587284332975960474483515815770160561041948709865547968333139803268312011731023587892067708565459984534267481372393647340612180579302632144551091987385460511762615695538867921537574658300245177004347687116666831413555472188850547814548833425953776169250850853265692062292553998961364957039376078217742333389399697199371739300885867239257697332529572156014166660009386596662299688693559346943984465673162986037605029432115174332674895024948125958488021638447953501284453188573501281846931336215124273193470863992598037964859259091011767024902617626866778644732426634704886731602959905192474050703130512634881542964604976652219434947003160662616187578388287614531260613657394038700169126033738304249774717811519998571780833864339961426495241436620414706833047671856741776033718301969992346177871348632286017629633046295835421155597518531774734300142569187358073345486387470626398855799033642230011355774836310484408910419634668980288272575823451603904079143218269914298989032351078166230025728902946822093146230024387530518036131161242545679184385860324870603287404748122593683006337123805313051617000401462885138248754565897284207176830448350410499231949962760032838889874093714388862740165785728705426685486963168572917760890093712268531953762432925717787625216696844361394237589308547466635445879861913046820778302835953106473637707692904440879997582927816007238535312310095316683006730513693843710630707840338733296368393424041089513319520346578070679658531253983181783726561849809543857406211636020010027814935293917245455582533189826619959052199582647382574874908106466940932642879410216831561772123066136431038352432137888081777627548620748918467748973084149870695794826003488948153921175237644451755364569095237254158041627867306638312318568897076253484481012834193076839430131528680440797422457492886465882504681186610640642685637482803878807882201412991030794047603231522795682441862379817547428610425126393831803764441213756914765248294845836191729486886745842677408896671216684271022463250294977871622074058155865117118043673957389931535303641751817455196431077941980108543191072591472463150176349756380300860600268483398190590922238083717394653135363366056158200272928222345198520537706845635985141561989356651476611932395015163131221350432058358621031393681928032375268134547783807540182211732688484017519712990274493281018635558599513129022783560415686186704937811794089364348507986457762328912107327309678318939088346619356707500976347049412666307262916267271141608276635713427222029043610031346548472327212102546178505995702440704877512535842908434206525721132188931587405061136006541737887313479705602697153981014941090749069237159809604750593055548277304810059405668421628138409853705964524256245273842125674984514351626804603093990306918069731378812994899735449941145741956815996399133020654938269339857906774235016317248931568674872723253539688935288406955154088841653361717121402663771253976817141118012495833804601698719722797049586949336748985783292855731063677264162988135916624184103503872532270721691812791402537102444794674775488138511902265299107574182888353949021739072732772992349861370032786545409169267170915196926926500116346496787686727723021564567586537800706519681613481139162769742930961951213298241110193809403459284486569589774851750319507382104487930906022122487681568994672454268736116345653388842575667143953773591972083232981846537086658364409673365098236343293124149826659107352986079194299460055096599200128249320153393889114482559584666164800241668018060263886357556136280511071855430838232962631324569417759284509106500154095856425112837715888798041215554616434231244664216708416784708478382132091988729016128615174517895242837990358986585020397420248673328903087985687188517429774024518955149004410147245989411781944360705313499771178707448744339933230895486713444423251328950862638321365338723639885899648059348041557978230821149565375709596165244197361985041873766872424310963161391490878569899686347951330204848689864169671790708371299638703162844849614816481038210891656710492006305819767573814285878624039046241829305318153726118130698891931430322539349920518717849146849704281860672095121643343768615251340077511289014491742555463939068177012085281335321487490559550611092747497390649065833787699260981508246789645184419286465213706733009784607823401922034140131168938333095428336681726008320628135764678370478570343373152124737708464932236360677600734424592695546294327787221192842236252353400237382093533932191459803962735892588433755087802641389111035303193113317199427359671517462034192056306270139983404360753835413080036266628821589180105578690696880002383650722467332053453438058624273795888170555387188241713463754657295156530307021641793914272901601876734681132189956733921852096384563939145669606132911490626933679409529454140750718436079488398822666973848275714989349492479358629534414949449161885927331868038756637672247104027370602002809283563781794389675011484020084491465846319608067894899101390665243343750199859840285801771585973745267283292645542683844407756883352534088386138083255948833324316306178292481717774375010248695521532731458298985930496239819224387338547579706002783526491902688406555641693574789924412799337950211018601016949736483521762289754245371647710179201339715008495363392209388420307966227157109472481541994646639519806203377907334695558802613565079063955606684215824908982860399306073303575423073398629812982163041533324679143415762956462720257713704038346755388896568464648676473959152278136662827325343325184465923958575716671380570447212885722519044879856289912218899433474382267478159336469090542379434623115879826120436437554865330971698982415568616434986004645564396670833078704162095125590363526642830842418419401843569540997922541592960856208150555383668267716093332263401756093254375525664907053502048865288336186679563536404016172220873321725501235534513128854933270770360382231010813258289874180263745921646871894106879531183863904699693324121423617159634653965503662676122281259645113361640341914443283563898432710173277664267555787945042510461463593588854418200683055467862857347385863730302644713665563183743385506509243582628683856321091121846407373504686892606431426372226534914467607517017112059018440711114637325781562593697466988012016597052769537225850143414419637671339494399877003528032321105871483364660095856291011104696884846710327418633018429645835272658612778929343255374527906986896274937522745561482875844298011779433365826114430545666226452147830639533800013086809973386996681273095782406937926120353230555588903646575306756010174647250663808041937359501309944708866980055122044367996944883188159576824947552764861108628708636338933281152613050262235099826480318237652288201323809353339243947136808005482761944787275953963712370820086215521660460276815080910731508463758894511709609126306420711399245406525083662384988258186499494644410424961037558533646860107323888591464138069687811413311639111515799429906827247038199260048733876016537712038764225771576579895430296996804533703540728877477475070205689275266483005632752850113861956917202144419644296162520650062807446353583244489672357724730676926896816885756662633948005451723636554318832364797153072851435798722908947076533502593154265126789975631565744527215346866847780909633547644775360504328096485613226659600031117004340666236366732448561625484455099243741100389186128086893078714416010008266685275647107162798620360023006866026461112124949499409399491805575570167427330329084678305207513127080226646192436671229526968885482151334949033270405820728323904722065363844603559015178786734469198925311016558306043366592596813673689394558508304969747753722107902865622790013070921933529795640183158937726174624773333437740360737574313036933787116487799703156162266572921405062627648275181835111804532717901805190157874574735694823999567937268073695726180670188558656658732229786985780993660758973847894613085509701058643835548988560994042704258772582661315539747653665243875952973174603547372766868466356833062266831900086888054665209357680361561438137445904581573425840226107084734934294213850538556875842844623333420265977697548267714441188757254875716228250203257146630402663656495337206878876946360588076394425193334163801181936620756708352610104746523449420055976906707114415670826567485007605124179093241782734347109733443683701890005212051653196882731897030121413370936029487497996257441509963855960590269147988973563276714490123198536751945238456150727023268402978806430274114242613538040532613571221538009908685225566442495082725904460368003572602300815675038879225025264105714781288238749575272998793054613217257198707469348130699824835766706011154465410624991457020449171592260363072037222527768730654833054298873428909042033127506139291301159599549946848830191957495786843809659118503832912830907535474122818443516953058822367304796699693561743880067759734857336628470125169711500696952559886275116943064410656871187958806712803580081600778441036138874931988205267309206052476883750763706570650881986647955817681309419406980707099641196558926493501248220716141200686024826925313306873157650042154822874930055470590409228244448528652218987911967818452831459658928014297644533583798124874943658685949464003514943690989171500605346981845915371936518637509452905855445725623344677470798296041506076157404103001011655554749469304531431050734270205385958757081981849211725006159884563525637092936971237706575219395491114152458700080905442640828230145552877088223515029868675357821828075634505691896075414457910341504895133118332578665420201208152325338265609796920557516505566016758797137935395479541354234179884032087013092515614903968151010606794319719245255397656348399062588951814880532419023875855581077676997032920010471574128224414198699575299476263827095514915138529244793857347336454353614432664714991684791294190926533133048321447296555014132202624375570750792951775606557686635694819633189083549290563321612232762460759315985531796992705551658988692326078860355467186824130965132456874054405727942520022600546918311979717661124503940030129319869404646348078238338213508882490108854117625951026647927955337416111833531305397059832004184014447519935564611318107206676605888240626888439109130024765775143355358604385659306886793455669505253572244769802793117944088413609967905948685263407318645087033584993061778259429787168702232796748947841388220959508449913162514448112155469368222626823052738001907540803515587052494858265570149516498649212422929633370929097778056878467984289032126191500995192886764182435410965572746656303287022034503525559889643053658717171155973675548880797987587455384350940750263014471267833221441212598616391915774295921053716937705662073725411716624268139826978560897716140181134050740833377925916130784553592840515280413071671238831490124800930159298112831193926750093085054748675206597215885927899874311239005152853927625141339394218457057967670055155532312128858294290663635671352050585535121052018763986911485016985078270829163873764932184846021503792536918854989426954001753896509896166563312052102028739890901743387198926427792191171822955349541340996968033436090997386658242884873833812181233610015806239116537534417742013499555060335962297738776934688911287427244846072369983043616551090758877812517747389495945410371328422879451185016454892317210129131876302281678431228655721151998319459474736142407578241226900005640361608816404702777547788097402955920615366158921799300534756731154777369203508121224264544808688089742721343629655267395813040611256728729806767094165040803662891501901369922992012007577488660471184596984060857409518166094995287037396046850757788570790680047944694619453483091173502884187236396578807208889559069507282294283657650678809594352403796250160191235869490260962875799115644304308342317951799341989462723545394806439280165308133356548595766613550570332030378942673921600312335586548841133670484803383534016218964771200200433243864468778841929217177886378845357456871293427397545832714279130847556519773733854134777984689165893579594334290445417993733032946940125841274438643104807096525090392585183732409278608913541859878026372431468950693720639079895997305328573060710943042823885469015321825682619304486244818669392500230985426527723388311690738870071472403679243602595502740691775226272838379766499920190422260902924901191171639030232014519890840343481477456444476029275508312992937486579329496278160149185372439280951147943546222407118294810822294002466203916986083513331621848192423216000798030894195176009725266409812653645307386857249339257660938862440784028338757007888964113124298356091120176071808651946609158971664765222854950775517379690366805438051313151022485439266694320519409142266468099160042772761616359037966119464546442230886847862251411813102090682274714648188996331029378565640072779571164306041164465784175849341790577095724700330450124350652237442507479567803384799335448485078559383917997319462722299981375067136325134824511757595611344725859895160305812826681644845611348607152288831395410762011584605393415082132861252690170214140673548406237315547490885784395551868844390392916902697699493111084615692045868742890828665030183327291001679265021164452631484178599895943950747738905303598020202222790834724839271482767920708951797086932280601449814663306821126239790750458104683375631661932733359778628389382136099343456512754595302375861807575679104132159780518239786486141695890249275658868636276344029737274928292827745292752643006596905841168744581097726672515653057098039847191920641075012192837726391564206013032386934961183791088055589840136160085015680110765768400497831553778892668007763216309325532127398642142540393403735667838055743645043685078217275035069972403299730214719724075806056206439485573591287192327101445518964067304254858939686434132055123789597510234149296671265681193608934235158864244571285157968407291771318011843360411356999931955950299283978310941178953501405476503781313793315887785816198833729113977613535185360868170654468689585767782175434026952035512068185552072352141013725088113818383145433456031871826643987425788832574199497704916833298259070119226272068064988686376909464687037717674847164991359568410147566890870048819981906657835891970008907378484805977104434081220509587460414538708005169326280361691677807764842228962576259343122418611464730358490958744168700245235941972811012810150141253853858918969887930303119818093034344426482177287472941204339590192932139769475241546520029620765521771694715682888895315177523736452404707559395727103992833165273901620641778860502763966118524615194781684306234819230711029209478966453520662866967954962677648162833378292775961125904870786185817678361924080678905599402021391028185597137459247454979055230160334426483854314151065993855909072112779474548312529566644696193162379266051128616439509889167612046517026916303111723378174621787513088212799149296503685829972772644630082048073884468202905943725307241540886022280884248625722427682513107273344462609311560579403571009728473142126433934618130306338090515915380378435563519991221414545883154195176422338138027340483949453624933580062213908873392865925450642026530020722831632596177170231266556321902130406483777686601941094540057726345734467270924355883458995221271939859297523832625129661610790022110706453929516231365852115845286420200125926547671306540324396778963210657050026577191867197199151537723013140855431200308945539308539888354230085776691491059373094940673734853417979382300019790190361392277035914860864399065917814926422418278122755937101964635816099140000596239208170824302059951306915481417543283382178580046214509929199064149807802814902859910054067760045269154522532447965263804801063660909115204537195356871462687641403963842395783516709553581304924226818264250795849003098777338171008841885008183083318315223582396200637453223688895607025566691915768815711720106340177702629558483453649583447140877653762752144227023194460559864566529171384601288667377820752893640330954252372712493978382427703619904504336687883783601049261870741000966869156162149042751596305300381225365889862080696232618787191144796830868773737995921374965467895290219519528588476418455868532094895334761870567973756541506107337918840271651824895874954062806618798348599511253534588526409524068647515480974460005908085171596911944522759244136650468348683511311963356306897577962786603888099206301347538348271422573994427403460529024537534255169306686469786637911191545524187263296339603377023285835989763500109670119228982101268985194800816237989157087376684546782705080277108278391184599481013160410142260535458776418408556575341906452282667605191979248104870067700865514420637118733739538435979743973465646922756493544105504291368481333915326328352241381907664052703010681664465295089007369646680214392352381396864264142855923561670296327889068868379230274444176312006880529322788373586502900824027370538182075491119725264257072891800258003511721315484980187370475719077216889037305664957341536947038264462274182544085472865316307343994844720939729740459301143854194358701091388803034035904793729820673116256440269517451603214839649425050465902531125963387252774653089063719991769013700628996939074999876190826730957099490982636650346434277178387017833104778782512779621800852088007253609163079013055155363522781232516187379829680373185200973953591684645755733659176100074504752210853144691415488523349585532366306900491710449876692765531316895927912651560911351453460167343367441319359361735622648185001885938218119362718577129444477449861805025166250047196821705254103400060359039012446978210551172983983034273019807918721945087811954904745518493331640154897645067247126791933437397140697700626419480410317771225957113007500450571980824213169069406070334292098612381120509487334288761827527014448651824044579920994410143162636749544189573718358381623647327242972109684936982138487481337331250077914968291813531242020860727845780175962222628931123710121511458981708593472205568809690739313119017018658968613841959329330847794222370729135480061297733469687668239853932521393061933039423428860164250981339222467443545086308100760983481752446316529198338567992698729076322727652870230995807424263138146755694503048582840494664932954897469035625586146950700609250997549146349072407064993309446836280483301041571698968871991378527279806110647185183301579317101806740726263421486705938565533179618522463620860341471737671630245239188964895641689082245210001032864654960177158388001151909390801148408967695670716730089326016996623052707863154020933335098410552185039704629090388311653366152188846468906393124023805229128825484490842864190806205006070007156179561680957537957543030334900037334074045652667205758973543343713713918623441355942937206466375422695389770950498027518189239520807402825648822744054632252599991210352976929129780480803132428825032621637812402494255047291640156860866555714693309840700485340481502672453543921809745961927432854580830845641274657906453563926015490136366743427962563095898990357295215751589961149036254962718903833096670863485169129621819416310896789482421824691609813555668126947555287549597222430013246885771190734873507364376342973729961229504156018283641231945493879676756887121487496110536403913012600105464585677336123874015802737149232096820988104778194994066177196380316516301140233213549615099009450264820285801944369460391882677717680515632327414625598591363538956130580938173091577384656403932849878696186254339130728217037157183152787418295961493768688906755733614401942578842239994196774895804567177191780409112940289875560624456836830363534722414177909386230352204371246279671801135099316491311834723872706696820817964075187415865747248400280569684657916988019419947814624278649640447060051554814820438619313050291552605094033277741718124948504797614772755032029194169242063145395331716566978074369215737058568959685091714190753291330865923486937852127988708512890723252379931235869591889458636898095534776785186962043956693239279229348677025769086743121213729198457302159527458729820973031737308031268463776747970114185069040752736179523422203708276623265960247592474956995381475307800611958271211594044907970054824361978590522828662018210124634718030264319486270616501874116832891507680838363176181126386460724660974502208848360670950483237274148674291682239433391577347666639773668560518700940402355665014220360181205585431449940358421348836827294098145651042906748486689808301305540454950423921681274122658164411568560231056720963791645700587170268852419836685512333901739767115714272335675952217600235569851192331209421802886228542361791595006202557946844812662902810611226975237764017319679871750161173240991728057377216457252520011693313681323436148808089122557004853214162027090149446895022854003251242896450565713926053794291674877748473137743338066096860301519588812506323998085149461437964983532860632070505882672701858446548509996641068007295149443489565144041589200467443891279248270444621299210166900824156935800646032358937030792582254370391765021338199612572902602323734267825143243473631433336962528754712204377790197565439428029207571263774789111965609175757638161035514164643471832226854527247987020488001925555044109116744187935216724385633762178009531253073283853255413959551624871312814613602563941722991408638479066191762363387288293437930234043199804419597332576165204776876600166484385231792122421368963364669487652314631991428419771259481912208788947964674867936127825572406460246858808162984720952939258904211648375781592568054019493246142454216935208499711433447217322799276828115531139966410401786079291239093615295505231539884776226201821989672898948953316594899509339630054625035777630034539786659742585850146616156717578097041595559796732722276238248623077886848034267201187132347462544764115011668945208748094145279372002828416017651088261324359368316074176337080580899254328912924204658283350170818273360792693835050440997821060652673701821865296118129603907388800957171649732515232955825647675053510705727737026836576937041024180449991780040161231254843622053097411715650537441944545747351913923845005760234526003522681909761176976702849832661882157195601075641424587032192237888367351311617582346242693957582476014182906012118183746898417101533263901188217987536090232285439940122523910258838987025234408871541508463813255213416009823039481809535092372593408930281087634412282247971931058740259775333757326393416669921783394747536062807856500380675281141721350317884062728743452509092510206628191215701407023375211936138020085642941383193855634772590184619181350680279009634770354546384873364822970833896279035664405971188555899548277242181348893317629770369918700794327307516948831380481026579849663443487964139410156350600440689466080622236521741365146414451066704366616167102697805070365128249063463866338472405019307535531208721354387237956127393832167474215318523740620714192124927932787776401649486213126845723508322264594042506186658787255303537016138899325186012632384957236238056663504062923843935449628838694102222557887936692662312313441177123473436987373004396828656019934222873633010438667186284011207380749735506173378404362345669783257597722786663442578568579704172660251486966322126759837137446173242288198431514990928760154781957043278603642812519202955064867254822310047128044584091636429707022412588978353211155316107881381823194061280071124929677526529891344909699330818942593730925908687269135547430832285160285339662508722328370480244874368978783058812859419379197475786188330709621259932874771520643300602822067965689215993852905786025347318735969550526018943068719272272519843865352403196217731590613797292957880632954977945585613394578640167166254399116901032992165455119998537914102063690135459701453322323183225268849776579464960731365543555500090144918992923376665234035960176983061317535075516152838286528567210710329703295351337481568584073300264583214001955392288304178377541577946114344528600047146848857175705615053974341898764163942642530894829781175372909729421987914905902833559296752582765274040498955412077146893487980396550314118712305632683162146352093343823841031312434853918422820182403711095466119129945647307124262800690839407276845395511985540672684426261660989100508307316642038624841937547504319545548790983501397634134579245186925211463773050539082864055396760736507640670448524910184660762001686282712266988617199332501497811180091260888552426332269960383733631986915007077378108085587829757605037134856539139269211731527904136499655167141338802813730941981349633463677833502489942027371324029968467578084182771781288681274528956166939505855819246513211970793693953104222890120835450601880359410236823682075571313221123490989470903952625181877049978186235813494359523261814351772677153126615311996783569496495421601395753914989799721151660401778208422231275391147261493327418082454844066480189361891777132483763709409175343562121009927309651539218471840308805612215804666472834428414554723202608956448439430241998358975918669019347527641800785810366775783846774334862926653135501345961827651894988552872309295102438073605948623524911164028864584746079843896931744377757033024945886117343838982557726048182999801074634706908905449336131691780162351398655931436983432664538575814864408851603469422970194078785813967655079365803640967251364463807611013643015706857065143138786826846833221756966317163049490029689349513131183352886867386304250475267333492735793024912699395554376763089417714792878585570308737655348590258005702822096943302078327007436357098762402126189709817532789011847185721546760310674256873322998083136603033826392395975765505028254941984108719504749059315697130985230606389276772749237670377701365858146097757330762588570255111328066799227859147679541479166626002223378923497795698952738124516595572188761957810649118902982347872325674472780856217297465355871463152722271162289060345460375198141707127656024814108835160953674705484323631079485978676582916089095568857558323738504099852170568009020735618482422239944577974779326739043107761314865163528409289035043229572736709695687728227709825678302884728048796861279910123392566096433225849710547058260584739471535069985452109650517924594958328888392121238299931263300675624000970497521376980454055728481669898302267344614946195630208662474222376106697064456655729624142815147498371445836324632253009803914190869786245704155475642659517601129848515177426241607986280193453082437565585738323351945351714612519257443090508073501385626977266594260571266028978462183532227733989892786224073386684870184372612053053503624703988105911269508899300098400931113083912458374441603493771261842525336998116119900587948629986669426362557245391142993022545953602257414268611108064641700444963250540173519057331978717991940098976730092003322276191776374056204685342933749796553621354935099162529750464079159228161165020852822308448097089842028451231385629385427937012303372312612088307454930553842871992159389912127102944905681218789831489831396711983424982847601840684770392641776557116149817599735059436484744321585516312646277204196688887590600075579915144087941190976430834720140752658002157042585218051617554733659793277870409412086175498310889380482766997164287201814634840881148777163669553329715558141212690982259587670325447047724003367041790442178411329369094045621433178914166523043476506171232767350024317256299536204937910867535925092181418939281930947887089461832158011451956656513695529758084285260329731736835279031884765339062871811392359479940782425467170532366994122986510574167691205661535217172892630359588013550117771236034743907174302142468038893204585854450318228920495451093851497838587040850480750792721360045751278716295214573925515078308110837116964690892263742334358134294376404499070538957874952586308461815496458480714695704430169083142571855940106388433972324743446300527801803895056131224251511164392505321166850186269042325913231183499616966764681752309980958705820654252005340656835365871170933642962109535177896671588705917170527235429169123493512366679504634086564704874966475172648440566772690031536798129705544210176649960761789069236079720536165930374080769945098399531112531180937878094079854470195776412049568309164233672636438309438742724143815091041777758176359066859008494409514901859696284238832014353484333182861290877003632005091896338962673184669227128630507351726796586018064751747504164712965986523436642322569285418450209071986634489154767693220763083490872574503483925546839721383308568915622353554357647200949614210181679464778220702120772687141955274016724274493421379153435312976423897913269235324378532664452452642891690255434548909132095701163688934389171354129174885648449364437915743512642834911101527701710043521747685627411528930282457271045252309097581381044609494394731034380948203151925432248328835851068035546465486701311085880346571818333269612578474638706675486618298746794264383626678569027744611509909471437445782243073368017854916392341971056695567323999638144221608936410691216118152651609039382472981705858736993224333040651831552377544857166522302889436164883257562141851726036734507472615610353552267299043082439323590117164736706960256778589483616399417811930363069891273256620236958379555079017816660002874832117461155803455046140408293432390686540412356958874607420591365407902519590917525596547550977089655990287747787644481430272882523774882297885548261340417134595683891012747564079527826030220329270796793964161498587259411553572277683143766799495055340714998343107601309452132708077053637241665976965519223594539326992115088457870069928847254018073839282387530807605909033223625639126791362936554138340359434341776768181117077783784480978503402204476905097259080247162973734230602982065206694788628336288086184962927195198799387879702368793129136964121520476510604600113021221383293243546369657404738000351417131102480678462993912189606048505442280870633841145807975192094736734854073541561555356782986219640379715823851641829084792853587160363234144544170330132851741645549856515026193275512863585314179668675630125637785581805564235059453362554051696004903477573195359162267488202757661218096359188248309713484494647516480096212349109300605282979176209387369674993176013728141291562406267318407275641193162865327282599256021870041738284901350322484110903638127957792958188744781382620977991131771272028473182176830673517637552277689017969189820896517742754602764536993679642724139514098980291078778831232000736519249738449528373125686779843075566262848407611360182635673702774245561334754674560253121608180935603900863185179034927276319727343296143083626416250279997886081763419527522923628916106048323367075520341126242392865472910611611923061167337145658812886462206895090094921136562629101010616185658228411863356404761077492278630118443358951551783114254716591260452113512462005415550782370853128812310379981006325304049918943915780095987802318720319124186497713316475885515645330800536877054779271299969912707355522598959211990436576390281361607131095064211553933484472224662683985354901870620612968298695447946772830640364878388417395170452092021634219424615921624707612579450236326066494826101787469884176755207737807885676995046316511400561227175527313941607778191195730517684603928708887877888393103496941857595293127697515697775812209913914904933357217785088556962534158764014739852653591923533913486374119571228300902327061427439615956150005287193309388552916017958907455025825218428245231007414494063240046966981772222491915488873872525320109980981520482915114889297822387170794538133233280738077754129599939292916930326478831252954045938756787924268857613761417863920214705271118726448339633984562007883803666958565785983035102782701287502374691775685445308301671111943610114948881582436446652759629908625018067802072151014719354866836784869138254026345906101426516742126620187254802030466857924087163502104990293137596204194051123078498316918144296772449150798390717076380394327333833497777046175916444661047491223730493176671985007269605891963563673074698293500796719161511595233020017327365252043382084437775622488113780106030078800678715090490025770271857735514289563171936373185920604312784548582262084112132522191616253458591552796603590803742971986563925176319558143381659256801257177923799805023485626021516052308071209284482551875752116732853585534518771381078286845592109342573793585529860489649248343498198859601760978741105235709446949876350537897012581728458227031889889603725532818650483661058237514852981058761015571648676703382092951548915413675122993086515918201392881134063558546301745969750554037320873901699923293111746143963837397480697675361326102878122295482200229270496622960972128234110985745196585999584762339232914216575423211397502619961171151117789137612686730537940708888892045683360197743643780135461841519808658971970039524758809879038794677522094715039189314093948372878504000036505879937999813881977461145775422505504505282720931998845794734514951144241834222187520126069807104723576316704151162104756248910115849098564981525046974532672788246744690459940278664730696954542161677034103514693167737347929227946912680998363701642235360001695793361152845649977400814915670314634271961809715433133020541879015853993677469867861275018088821891736764927192740281088392028601285403113696958121379607239498437856583817110576342216727358268444378552318381206832480531180969222462267163711137659842821650450724722953195044410001794366974124244477931044168314802739913458728847405208553165950136971122230754040149309962065536333390602628735149654322246350275954641976753962032947130360714138055771698796279099835537064640033804142924997747923678006414198193397310178864767883682995481579205996212679628303915339101517613988330981871917514533514123577001410902865531987937243684411675219376423536718442004052599828963345425098163391184803608263781808180138926660172354043751999355981308289780522273054462687828573481382766869158934830218027290457929230717720422391224125324533257570860433308965425019050804655204089052198590432651364798863738144522553969260184194497098148323284058105095320374588727570745115609133676878071259096475737539999670734443192887594729526041257364848668839743524609038599504458287076037284193001833914560929891609054985948951683023648605967312380261644491583359467885908056966247386845303127875067092589974101918688865525587733118398549384009831491459364527752378488046274598140661149296739098612358353987912045226247294837802806287170456009068680025755577819603811381696776878339544910799823331756954549639637127487977309369708833815407432889015723901998506109416139108099547549492142488453035906031536989813735248549368365908595037510077725220837219471750697044589797748892311260477301381862017886011846719195103853018981985645924745026302114176895836507576811004229559778739797345287818776108894911820913097588194355095604898563364853248210269303941573728976771125891980853734636863054225193325869961219972144661499409252711027592836383155476508499225614176452826838539081229840353374831274990292089307483388105599556206659615843731494363600149711319230775846006208557599796361437929835093332382671219496605167237461513744398693484096182593398683891830675589186947867400731566185027906983322189806296705871308322878335331914976850467789625941926074585271575940216134780013228352305369889970535939872913326573570340485006724473169793857162843080260513956374340164008921221612365510268229935262005891052160160331890050290565445558935473033050505942911506667226726866199156172391022208749920772437985776549466830169123695058533594815521782356001258262083947630960478114299710574296592618107969178519101590026893920615230066435279486511445189034821887292126015335058431040887645663800345095943006837205641042921403111782259566012734651744609933174273790681390463683843999757238880384104742963592877807815841262959082290491252163335988946768218304739496757629338584484463287160563830272244301259318756602808575640186617806819766710377940669479523506710131034835133146932181874213541842233685243076001419946447016019552629641606338355612746957591127954237413645356512470624965084505013074412224687816631974938376374404710202550138460517965007869676594829860196585387521104095982602613068445896266163727389544399740817974140737683902075053847597811614141675075364568273434746264848846863803090477954836005160527948051939985566099299526940760467321537403825605571952748576811967915348164153955824637667870167547208986557693314563099829795714759818878168058448103784595345858012820826612839194228000600633949087058156328938035396873524386055788060588307552930752553227690713910365110126487363849949117623692754443488955799131339725937463528025899007779557253891392014940061853823010001455518350995440778405975251191710190815742885172639959726944211973888908645437984763127077545642202081722000855808462245772666989352771244348263127823234884114597372108152351402416812829695029126596236886902617232772219703798270608045144125997696323188924369457642351184016306614318981522745654634316082371074032919562867884164917002124800002097072116372355824487692174405645818839535891358676473667745198924588978657716332397390565124507130176202410625156726605691830432581695454965236695690259063251879786785530293875135893206502897704858011665236291718749915924799807344974598638601424546280705334382753908747889526502641152365702494698198092108552997278001686199978916822204675763789065226427997891449835031290132152567881130231474619968118455687268375822850580848669201847367873488594593855276392142853676075808845811568647029734245897492267574831030724767476166201942017749051413521266079357451638520934534692525235608834614340571220175532614066900235699019383075848079432244379283386928983969591699122599323122182726919050132105970162977046217147580814650562342771469864878815715305063768463461884273384944411318453158410670039866721417724071239519918840514531164262048417911086218382202592311028144777037924711318020000781573837098178652943853321637585502471065814628835294035683216649991661702443377736153549779352651864742835748418929509306980718117482754366396950702516161261740311181734671129908626960442869666704041100713521246931376554735170626255570291006644282751881330386038847813291191075554195566786217563446005304803228363648720895186311487010330143659722289387817132540689694976255010980794417889217482280096406168054325680383116607296156918389282346047066115502067298532772042871732912208846417501669253837857969087868987017318598246644842604569825134883696031183956224086689344560220812405541516266870203151540136764330120815077929994469351207359183275484617947285632162117593966703065103691376247108264140427750823398476069583944646092872368035086211646856078862976154214338273427527375349151228621777317548739965156009939904494983490721129024680155335317401414309731535688145886489805326293551459103672932280533722818744308461956419260982210604893827335393721294273873962696320237679976731977745355467292393261209948490026626594425539209568622066624795980904382085948193720888772212473459883839187392916035199400388566383009205170404526949439806117431526733299724946252665132070717376116196692089890098012851559986829697550592019272635871008142273114149908501537916705554466938668097141417372050602137687935328861985323705415475121956861669826733268324112301990126083107313174222313504648122091542033115399320782067935885693343609799129864512356922117102489102259886017424622016459054688720190923921088532681160457259577856106950268321801805264130468096351092914805309165587800731572304437034003765802020860242391728080674034222551249778218060173262098138551952755195581778003945206603945087139887516003919642252082602914212802531625440939048473963365460858824965146243758219919078510947353330401128252286381229190432039471463481689341263835747515437702720493921791959437847721424072545169498729111920300572037069491646620175534509367222309563902563515064729557687050819147658152725432164417179696136374584745255019387590887680470677285583886030886182131202589229893676349835404036162080189525555440334099860992759064565619684890727491029742190344025034502814099035082523479442674110215308101746294007661018338226058295851179259169742804633240480691019412372884938915846439421566021040945823629466460877670935402167674191564941407663526891865593479853067540166050280648791825073224479337750435556473953280648960297709177331816977755074641419357690110850177108589278965435052868407344107398207127188656476967963828755155713496037523622626605087726179984772620113115448703939419156593503540786022649783791661223052409739123752708216050546810351613478521835097175695037208929318722399627968846697370649040298174245720371752205038310107953665558321426831060290878930619633994898195669789785912105349999743155347363599666311787505615882399970877533484564304279954533291366214222951510694112276598951580960202088898601613840848590476042923000220166418206935475255159410477328596492331003156138185915403320800628308296731346059035135206716800863735215100223661905467590855045759992111067780396122613886321251944879049896636585978936001168502292261416698648866653729353324512752948051887589005966634928949197339179760689988299628182999210582005653492160451247417370717909983577930541496866394128968567270140535409942271745482148708924219050581883354771343602738063139613079998065142335650586944154459081550438440758271739014698469904434970018903477988763646681490742076260928101125364360914564155712516194418116655819476534300447156439360136469340819645791602803451076468758827149348398530040655010287773248033756813832881279161589524975241923655612813090126535495833123425758527698072826199842485778646197463513019831157738424149403041096908538660746070405551684903472314407940939464989326167136343120018864354310050478268107387105164905269518233923293656783991384486200164588021692717032361576291037905440076557874369880351230354113999008304579054275074291317606834684671019113401945272714478099157209409659523354734180378302390526979351547005435479839515806035065217037726326501863891655622169689642326156934872735122255743834562109407377865453632300997216053298483588572552553541994158483637814291121952730744923509137435040341741113360962565868047635106301154024932012501602702607357962464130484379061986366899421700211055707052685494052970078029416621647042379783648067072868376701037071212636599702632956607065016980163701677075428454330266947249070912137264722157710245821558128124845281484893372791813674677004902396634376814307968380923634054512955272642755039441496006066604318670668874798322128548234968348146212789713662154602144451241020418113241034787823643973171120291744110813822497624527048041389065095706141317560943971498629672937755330763161849528158817325666308423365823586245008896979683950685200225605800876821338413843398447942932713325438357081292897844898442043587297542334277454314688602622987257519778061642035361463057316717272754694785515529933428014316034665023681815909190246442381036291359944524467028297599478101081450495542693000297930640521595115453630795905599546004470915761438528385395972581272291163809126520652103584334989319928660931402845805904335225904660755681227446735188325519914115176690414574784285461500106685650448880071108363960627241992649566580512871538284192947746957994666851696607099780678297323641423134794923642414066516248098344420740276525800254629879157805793425875046624753359571913012557762239593293040995780567479975208308890254528942837661866307980619946355880788288065896033247670669459366668145805840555841469730635847397312052967032477361081852018436157218889789365821718397810856325890100923558458000701073029941108113647441862269820071063656317047289784468439729640525966218678601686425765661821191910933839129592008586767422383415230351425456610570262561614727898490324351348232758428498907992534845407286806169376074868694915311827554038986874769421121882107560070604413093909372838178184180555311066466436212283264727172402492242673944677953551486153237726566438186899960024065036166954023841016609695091955621929817914833886944864465545496447401915671912592535318497372751042956568987062834379076311904710950081456316721656134784309800779211762164469734126835490347323378120063927435530720385395747957534367076896327794439649732839702686206051572001092283579798530693353985834782370779740032323847133625439346352575117329157266028998480267788592952441444950886801769347140512552654274363236257661094650918031383464564690044502951279368932700357227921160110938075451720228556180526382880356013528821936931440191032239742859610596390256013988189115780362370383693291984118296457312876890349785733851773884036611863895445583018618381631702512458984279026221845924383013281237149880957123088947831423946385361554106652400114211439065700753867826995825401149996274460808293598132690865466659133420861294366434103007559012408618910640870513625130287993669421191013131156134714988905131072845080766726169240337322927425730930964554441891075508743249538873937894913707583563524323061745578069980311331050307309755917599440752880843864076264268935914440302791309895501300940702193435298713840778233688968967455854391883121988102801247981010411022212281404636627042770596861578793399811360101430969515822253744747367087924111444949040098574281990144511672362664150001223877040492299473860872276047817209297915565574080784462129155348697639088979349559874384839422603433628402418242430770104917796329352677274203301901716735683410627192677162411745624915412197164527687522336879648892784538865120183034695204993127486614759917454497242553348382762838520593566916718421925822115967709188372965709169504301417963285316287767999014435500860984649868705450036066322601162375923699496878760172300404926203060824910313353675272152715464545108403820170816443832458606017103848446881922727569992359957051205796754485085565443541686263734207584161861103448709469884410753455130610229296017839055851181469032346726133893024038962469062472651174928420653792736787556015087160703491045474462792418153684221231385377755581857717285997568726870117682901729756747002325698180654725812866545542509493492569040563829663093056321133821635510021744137412979790937793020380835505566053895196114723794052736725490506334434268809971424917193575589932605117972738890944938253180429879004176539408613977727212857932214561387397484957046748548947059231975500828187662044367172933343870847144311447215308091828569321798602643977794362198987340943958181662397316601248231023104926753243228692423056622113991774663433364539251459251303899230962892570310430274628684999210380808674589159120614891216263100824086239187050079571251126695932639558633825018782180495156947619373214707219649189306186288561780250867876409286207637822108980335742633164704076918139011590474075772896216610372093563647077258379164039666967453850325358547833255503814604505378254666693929607320945502153239525796383894828745415157788847576592190464218435890735124755554110251953015167774405921418988335632795200429160159685823802265448674351470697341604708418710076112843289247892670060235671027495496096963068849931430833112799042046678789767682393514029622216335320133645923982388077000996746086090830860451798392345466250080306216510892024403392368629048856090601618004719703627984641279329476328467697953134692083184961582377655303912543141171683871898402823045630855483680568231566209577637484310950339583627297235026104036947723900971093326212015864584385562374417645232506512756381347236925024353215710251950114121066011933053158486993652588982171115548564198493263728164924479544925774518226226200044032130400042916095493510781292487902177735755049372440817255257730600200294191591464178436799902470198116835591308301476057605720608016545529376727841808954404615702697652458654084576213138445267729070164572356771136189366728527042763322477206085957531364919369961394194013960259971876915434746999837597169545156934926112409876795190387496214741042927568098998640150107426767696771334434047635932526018103361824560777123406024476399278370592279380364137740433538354366894998194560697247741185026778669505393002679782699221242180589813965901653354143291907942544861342503483127949295902247951080696458926521799099401857815764027727661040303210601107332523869369697690712905302862290971492046319794667340201050375207555293268448223769097447280252109870550213106444142330636459978634302950804245089188557253755925071189439401137170176571276727583528967255354423645554799365277961734984690588527614236582701575728299731699566200870290323143977216281139107721735929359047593955303056713531876624940052143902741982775935685499134440036513836794839033368651964744518529516316326659486609341254763187627102829107810286963927685255134558223420860283994414300733327243940920147540199876972073766138645067892150505303509299999884482205222961766155411029080575552478430918128602590630343773038994550591786939736576373950930216921726050510187468417730766014013740912430428963904298182590191304673452999872619044908821700438044290360245743968017404650586877216506927947815976843254465289255664470335055014810535344186053616853842193917626146313615725211195895466977797402773206847666570228375261882302867881999533051687061496011010490034970618919527395772832041877756865952411404107586036993616624956283757393918383443325295636625990976259855211313144627090649334076986229939673097224948292346384098547586381690070505550404863374212741358907353802462315621969291026181335819149022688063832360586992684492091380161429104087088881120574683101153471570528095498103072679454961989674559433631640403001965229423289076125194197028861096127965663620034625942301649260014651499707705996297885274578748148516958750939587545511764204086753503619407106647178891666207526683851961530479576878652030008810322988641144833995745312725876200882181500211860380956907699714699431354998548838827990601422349048119404548981014039398181701870892565648776572569750942655906587372683821298921631490462358485275681275211077531693615257734805209264967183391011915099971048690029075088120565425159888114269713509418798901533342513559744044300864386632083852256385661274201975102704807526780524137450704833877814516899591030273039350911212029766469465494580682333814906776216065601756313401239864778586379856204065268288118455878581701627925566735371912131788600631290284059329078091251066875227467897615861002871527892602432322735134923215331378240997894824793784278479153408719923270468025821692127029655397020829037274922951477042349225449535144887814307055808309730914308918245638356763785434262236536193239129445137112012524031344855088854549979315763229155258157333384501074130981311318215272589729993777364466074350149765437814656391939708876896306847151253191758562605936264900205736009576953320258088438340271984635122057951590760617970477727291363351427604129086756599828894426880978043075742847478198200585928318030148017154129462253776528102137089101429620439055585265199431387357066468577419574658038610047658381577703262861739286557512637192568913419435542705972522621021910055416565167153693439422879584502585765408519542221192088353590232037476358945120299885392964611953280268068214386963114310740747894292373187904370411609828042153727156105179568226232283633424851561458249709361519223506871880136519553275766163199651569026372012829165617189549884521173117352176966086198669129141518007940658035532088370285477409991882755631644047001107565034174768267425110817692611265717751695527785747154057567311620571685038228585614744657198372599245100689077736817762861617309466019640135800590714820891596123358336887946789984666345783301177815701526715695914495133217877471898052760380156136218560114037494401100698584396279887746238737954874364923065586120829965536881357135349460731789580883694210983535610088693689008854652097787673785736051897187514307319687726417051865752364735184600913535942751132607974657116105069782242402021190007235369813756064737906343640203833486600133537081024346088746238998507479959508126191334352212580965126425352591508311080426283771611736598862721183463400957387727297864714351617130949129185648652273842459301643130951729726875275511212891440868490615746293132631000976811726780316273737978219578619120418868848410160139586009085968820682589604708593831739528922077492360578916851229470297062070981173009594443518455842150679632483742936644462168824604241944025505225263113303727021461638069456772173695647988127556605470158120591655181445504292650448427873901804740014198535544993054029426264010751914938203246632789560415325440383948365121710819004537332735649040367523382199306198312427503513837309081348964994556666213142635441779301115017241079338503112665196344261862402853362522736272219163725780857878536582491772900535782511458801802923148457947958629145450520667528155489646581589507205455715701208796915368661008595517360994925449462452114144280258531246565214689949057822358532998033532470877087708383878889128867741135921841511001409524314403826273036596826762814546769231705873804160969295022776022138299167633688921832151581192449879995871399090225770521237329757963398147092577068862621800400734286952135473670728616630323504149787771686688637897019199935857342129888586154255602317509017004520817449922138601473935750507676401357283775387594340328645861003264551657246080372670254416785070233535779383553818547055411642962145486716953656690081734005525379162475136683142219681877213705129183625564164921049275424255125520755024801529514063925017221037302842912461249633704427526882761563107014304450722240495312333461536331533808264542434566855850317333272341899634321795317033603100372649481575180046009020698814096710418935167487300380828766572214399081039892565319098017596113625060246082511782178324488224659378448317860752105650458362525509770496154382360947801980926511228507680930255602449812914932106081201962140775806918406316757291285157859189121588328193784698679057174761081656834862490371822440467001695526155415131573107179903884754371331883801113971964418894841425675627425445929407542592909147860163508572798838588813004153215142004309804449962340684353155537797109934640876191746097162444004205422594032407656943379551536202719489721240682908143687609619397517309794626761147584832205565282352121983811463352548435480959492440473597476651438019553454821578590657638347846350010761278498255167752964639399704482339215135310435364929685517909857913698027030080224655537240008165638982061233265217136954107734273478125212080812508641105152812695804299733613413635339285316789108889708753844563091436124032158018392971481658108880458590348488920421937957348805639299146727921335635460494673984320367834097515006436834538859031168346473559415188396184752879036154073235381765161271309217020131338677084477327626511912131118594356894791798634429679665376123129269165780277344186798675346246503398348756691157732531909903537666827451529582421949529641577298139056768390947820337816755290044006487362018854869583048305848519779827189425814293251565839429304586881866078978264977423534550091472333264578507913861825063707726173659819943923585116670630091128888004565801136382563923663561975235851205611891665622000822589899893627446588716692312613175084116183561739630088144806481975109929249123280461883371099651586735411706850792807147026653108350515482828976488477518863060773856316909432189079696714268790922426000414130938836780304544050632703387099770347102581070007273210949032970002848265214536716298085737290111699864347573807532175763113237002676730785729115884841886161476228725936808760858695447068767310518467460929998785653921187354608487440640005610445145771423067783669360816922970883248398554642760253569435223129271369888098527090358390645685152884352694476780516290252466954714854883185882955287284546980338141911651696714145752313970447136499610361241136427956548940707992761322385287560001417105709863610334450414884252731911063816881462253037191016850312770386030112430411022505849821139757698734691938208109720954269454892554112919797094606402356189350744170176456854728465500339847615442680887257634206170138147408884255259744817588611560814973997293639127730675484945045525329130358325042029290918535455819404178187199289852186529229893244181846579348917523519590309762266009648512221690416984068319186361485555113013869590818978723807802478934362942306197518701257885014183815385995704122223649774753569886065647076790639698004686632043949549997327978648530577271600572590077922356442391181729867364803790581519148551885610479133867836490740887256144606831875712209290886516532058174542175213467761222226494575456052129541344114282589038031655373294733026687624693336554847897715713574478162632665837937168866415114079314807965511034161105662233852969920090887763834316554601951686286309572866437138789652243753530044572442672225255082016170525962139761716667130178727070251286378682215593823603068075368330732112950260132098250645553120473802737872488915441351428237972649306681411206099929390969273694939501052763225879644218487795846854929893977221942633714679339702568491004659078782049192465513408111442842576613500689012354695196877119808651638510838456159228159797116514091535542247075253226527859996436648835749840545665640274677900271551955201983436908886937260329904917361622389666269256527802603280745120497993222127243686947296415849134773940194737069446488526053982849690866124335869081791620435631676394370758533361106717582578243351455111171658719729763022896816258632128583037668634310169490149991774526888270163366130021366004219747130199112001650050288458308625256887460099462882634918105275613003677728431985090302484292259268175697430055906792297107987648006371250207119160487844706817325800306747577149989975674370722692088947875232090696938130933127142049410987532309250642139432115464427623563855816320511335435008226111463375832931307010866070413630140718359483219202637374344869033110133168721763599618127234156634546629396063566551895320375625347534739604889035225592100315771632744270702830829331820880888946351940039949453640043413740399656915095127029415533592992517243346806858560991025942259641368352369391523775844639793338327763516079955542078473104300205163064483956293048478323427284288082599809074874063780675303922852959182667967308210506789247576369178946644967177877173802712447277620031623829990401430279684786648826805882794967395931721927437407469898155670037216918547017761774515660210452585897063267038268192666458961666877700920920159017751677114600609873752136691842202229649117193140445985079317137111136342713334928518789287447663004858253900979966732018092684357938689858315425535674334208068009512161155076104650268665400930583898671989295534006061032963959233130076432498399195010086763269251478500319743247765253165427398106625691915308202551756301686887424708075874866409006337417587566135243516591298735961079270663697288012742732984878787452667322847608778984268680023985869319995234849208444621663461759268122886286365141995859810311488941894576881837988126300905490953318928090359210882254843573905546749543093391727590151346581528916207438339268428208970322107943749109600619858780479529349986831846968861954130522463670811052297767920419863237266288968626634301148353133017192290641746062727211099222897663611875692096625654351680229955547990641164137735273446876423498223713948885651165188647572726967782993857386213810215348773716561214649772731713382636798919147732090371758996056703564742252672564191365069797304444619666520259822458254061265147446984945537884770169125890002497215461114277403343463095049208320441615552736287049931264348377221527315420582549915053343957406223769471529686662244356737970837040830409343514525057359816358488133541110663922897055761479890704969501029224117266344381424776167035979501762785889571540502105953916336732920499611415368058219962375053495106782981790979574433963961989577152042096326041890348247286950183775216506529791782492751755112187618209174953627206811027906309457064076938139974393300018263551261295223126331612738721308813937323332244495289453342928089681865544225297836432109311524223374235645613350746754584318250213852788985627726970427000425701539698577706906077783334843174756562303017875932101977933415892848046742402557949070757748586618490622006259071362087337716715215178266097587626196358611097439928884063162757307457560432665348621775721003172114296222694358072564531584417463093338311391764074619945536170980088110910274772596940945148635073939387313389389777841741668452709812741555597072369169447222824543018633209585190769010036000191390573415249830298982238596459532798514266924118868049769151781488316859784239991148707897035158739360861993076337696453519275196499212704827401952764244629484989890695490456941173862184875988804739917271616136090864718666111117544588205739161422086673798990058535580974188844574540592220612875294742569350832291666453468972303922912265242597161717044634232681852963651110311849701921125424727658075749544685676712465501025186970050297321593410238772430124623973610467205720426339416720258176258670085576871720084885358267678590017493170161807394320398860102818928930214576894225295031936507051104577666505572589855944430823908057137304660661495131033209838972533896001598141308298536503448944132748988869544967723684583791002033158836392352113619079392365069871627828548041772414879140496369692541830611979798681414918768118615879604844482725687028833096844310990125290968606142390340764125881468250015866470929943280340094070235314183102489717393628593045844059201351934332126429720793613674728014513605944392225468686156915853681660951019379129653776178808293630791272847388488488311363085076971877243024608563739706804015067018827139822650132126808590068910285932694395269897186752827119276638025863741072156505849405705713998935273422125709063659269296442754252730771217684668358419140382532422061040687814213909067751118241018296965053198203812549249471828806692449172987235093630409490131196603901298914558340962660750739018199526067650641749056749594787810977184747387449645810006418255174049558526299631042210840860759394348234897403493439151035366462249734718648394949774817516825131076694890096832684838526073418698543890939713861706940805072969350455832123245211270078456292486769850349591694600672184753105991942767969787680705458963764280326493490129322843655953276256542655478403913137860113269574901259410484872639930564218805691361153534496757744137571732757856306315003422557104551295536219845431795895241082112454475667175819536833162082483473240663871106334345171052889295292027368481190516980217022045656836768051947187782456730616230195512887517935424506978321419067435277383074812452394440352154687936823077635452018188057437037225801792751402249833119712752101631955152271379495913534617324565134751224628988349115945068249196319108112515118122481030922779750732312605323239798372119633013307414039630875549735512299179931589496591141967358486406428213494061033025878578534192938237950177161991955315024679479780910663301938579317525834317400606351525231961858126210134271431963184981938830785741649243228475440094932607076698355095778309720632879149071087196531200252995397887408489580467403210025263412632072863159009274100578446810060382250138287186189731997087496587527608565928474740554049250180008883588770036868874014191038881525052980384402599893590030031928801322880382127176587487906719823794172083534165025293438644340056732671436884150345603033703001936636006001036423097191435007925016270266972778215251896057684636253825593881700517242449822467224727519886949762189337622416372781828097318392141121777691909668738791578977609995436596510470600933308957988223399529829519724691728552762527396513219470921094398384050810777220434178485059069576607060610348258524424235122528684900812617575855181050482113141992495626405230624057025594991236923233754861804374141152209239295098054997047001803766841708557184834267858603965158402007337372047177215406300473106329784000955067843844355221617174364650041559673049369284660961390418494823179506323517217386507818031230569995080697152424783376350014050137141613430902984208161706397644723590783722367295794881333307843132362549617848234684553028102738974585811747944168337951837045580829525551904758896462184240181629014271571597293623051766339300867890681231760174038020254213764233916268444485764976657152826132405641281394309713917609939157916401129656112430924783292915180206197547706614165500614413824392827504505301504930678004597819372700116233228926140173773533389576595815938316797691968092003512066533974417197634064013705608098501884437004773098378071732988751395599818616590917835982379610294285980905347040246106864524732719437431807949720377980485694324191378556999737200381000803563104638995413194274039116569636733844883368905620997628441294277312890238226655636924328668282563728814946537495847459295973138960783311151139711778695482574275013057489274929701818435334871704288759519600476960244733181932833114432664679973002053150610436529377539161577339639159011869896554986231477184884887764679839466117328272869108479105822294773825407018069204576330282151915606699204211335179796086981416815068701415977410852277597043498130122850502491338533447697427495890572376384429968384716115510119462454924101717490148416663656817175577816503558700795282265412263027764028520798544204000612477632291286872904288895149634700025410401934164166854621116787625760575599815181762342029468847726848371903803900283355932030061915458036275545814607825868687911968249236482844796400774003174095673365001028806491901438872118783559887856551527691072114138005053372793589389155822550136444610485888424621315803994148782519166493301447558343541383995311161881893325350333745179075499877107740642788026307531661232405398797403307568854008686993924366140893263571513679088400988623767627408473837844656808181013688652830485873760566791423680456205531496513702823954589902612651995235316182242309640949636254491451537826777892463756180252275082332636399077022455594943282563530485716671591479250160764852751029995152325424052511970779787713724759986468498966100031776018385296608571741549314710465676553038466912239147196947337938491839306179294512435796957374286487750132639670950691399643990006586709779030222579827037833185656883856861028576886118355301653843114762873027158678662769813757926957304875611982853922102276388668108388177818655269006789785606375061386120635820095511818982834636030606734710231245418671291730281017783235146968379571223711158154403740185398584821606395590822125517486950127587099118940303327354914321894877248521050821153735994391169797689099866784009072413708023032167612239630912815185945640043811333275004350499464692737081451160633939183841364173424260289621342885049729883440221113620466050168257480581279644179873623478970029005470455469807818494577136275433780253015372385636701795323360309812748606130442281075355507499254350352671387537493068098680510477561820712383100167477425361902150747400107285165676185631080666357445629070883178374873172284436325856595801095895236761524309947397372571014573184478664024285859158286650662855750420018735766261566875756815695638160241894639120033602071936499824912505765559039201035248228934865948372281203727196644831657385510176200702040605165777923252419606201046658443975868178620021513523242198891671012214922440712522959122862684768266717573060554651968315737441182509431871863712389015119915953697181885196006624998797888615508142154086209474992853968810711345631272263113771907792712194091590468405546106444019996096752159709905480247928465877652127866996332267016436781667904094609576618838534057317393267491417871315705631703815404670285318289795577665961884767498463938036019332216550879678460020273075551002868105603721788376041561989341580423437655403771872520975569159073919065228682237471171705026724825830060844354419171443112194266341420691971375737088764214533510455505003430349791778607946952243147507577566964379131248874376299994621911121086053071317091577488187023173973417475439092304557765705807520761938751474433733630638398254936377331444146880200471532109594050026533291966758065972974680372034700304133874177346616485735994459936776315095727817207407313185952459172384642153707628250092927453410648638004639939796886601506202075655372874885132223199357221162213844629497200842963552635515713282030842070597251544204816474177938518063070649734799668603436691696471123788536160747892667760202149180045054692295514351727055953399951309808037806384895610857056709759878877081995601270566033799450930677293502505227748987992527935793640220102482537828250538934554403576901369040388598667479947328103776514629916417058821539129681929881545706268115727552344078523037150476543643801976684342166299853181625285149577796904586284161250328663855818030196722634360213809818568151527187479631937861545559661202396191564969774204991700155840221613141840176109205133938029035504185174786576192298505674135827879354237907386259099062967455495119466538335090098524806189798290948817845722898917228156421003623564116130198471464054197531853297900463026795612216738539573913732837549200556093952575490777445070356929757422824158897501025192215920201837288023914764726405102945980857922557277905423914824951241798717150524419770612293506923552950199567836117389831157017558940251921613795293959596890160293236962479494640749046761245086584265791183691591383014748205941153932341480895966555055306993127286128049980556750364542582970346319947299995089088956178167006449708908869449144043404577980848463255761794556777238927883486994888491208140822176519285074180841441233877337710288645554364246712214007838091599680722117009283721933290778872471544956704617875136467540600171877710273296417477903006212848362839015359865848225376804578744745901891064953793514687163021077987554877674668149558613518459744170417512300557692667461256224712610562096295793901316873195703454223644891208173364664154802406525677420864514541021298922225740283753273789062283028399326587192068343211003601893926539557114191471811735721367904409949964585035479922102688818733595054577681665825322976341745025481542711958007400542593462702777820962393501090822669361671505316046979221013836932814628902406753272088143743037703940409132924774081088051449754560878469670390537333217993961406912461661099957785880711533231180139842594748831783224123661822785921918399523433751700580590278316218108065816629914462636211339682539023620159774245423865803830819145597127097723318243465081525037009339978167221894485040525665507815343052600661024828085708800420951788468368589321666342880171897185290694102252876994501599640724846980046697170038143437686951315840538667131327118333319564305421289729630983810280363327765164796302424235073364001610327531914754145665282072403197154787367928188001187225559099464478997511048159751791391680767865102064766237199960453118328004311117816477757024715256800084359214629489468482740713065033641036777717724560677818809613423930094701766262762081854492155820610839923273840301167158787644270651232424385307104952564027075984774516726351702108430054966528618938902130097645446583840895106756517701584228681214638704012493830240130785688554803574410612638081568394944559860096337299811218103674114182121319027242579625868471584092421899945102247802080092864103663856893394317641829634868461395709992664259175693452670675956439267317405805049703913791906795642248749119944831408919521862107207610916897102043046644630754234607269315673604089481659376029386888689759428967272044738452975088946259957894206927021810611259239954437979917499503599028420545045508920974192644067947665008217179699545838627451612494777820905404565217650981480851744877514051986599537633414048232225553143127042280085776364801132417390876421860246271293959547365574242317629848810897809164615947763472698812352815566765163013542774140913597309311881000331617128062277776065256872196944800260727984404938614489497719322952473165709561107583875254848137672041590249706032047346915963952620445595788759482868851709493194375040222797549001964394628398753068840607440080443338004533364821758152769218371917929556640301255025186565180243292544619135540256012322963056315042555386314028485823865790117337325417558884245827866496947726232218424079631577029593208851156931742066372920892108960430353610051412336329058054480318694683395120972656925053080418512160133209369229723256781207376863785967569822601552971840107805693924758710974408049516163219164306094814092227109630638596325764716183294202666543234394566041758305733177736210877557994150883611626113017544229086072885301948948996402896058105449002747240558950342910796945411318785691048032055024600783091207779387392397355571579158416994258444705283025860294155215859078183663007076602146162193185515740783912007981318929372824420983696657048600535821172975124906315073767088605966799342137477930563891204438603416437535391251439492794419008486007643044283080996489347019735218202893014832317817639134133279236002853390322819385755379183117150269128242381416304025653322650396404154108441613844539006768621927888903563287198100879504823227648395855927067305749889158788602745865906352227618048478694685490946450686081905731254120745304663805385688655193217094295469378652545927127533567244055287523473015858569032252172742854771955306120294159765196900356277365911222698937448126378990196587193120896480505472138057368253319536813410630655834600014997124460635636616572387113677582864959021789721274028735659204849479149269926378936925421302166829606592182981770389226222012713758647554384956775043937125497495781330994614591269939115025416614137033528154329887454312339860577375203043139769997636496501058772201092982626590334654525170011981569902655637889226930532544514877855104624530656272864863926588770000680725814173519156903123753769733078502399276284341202855289031855974911884270092584572924983011328465721539227677587948343554633662713622087927965076023242628388785809959270009045829148926657178171073533846120700315690956986427237981959379642844042487994888441512004629808021747615659817969520844861138696306954879099738059816434438358800186585064699193540459783081584440258111410555475059831321009976566473485045973253627155021792232698916379378655884644316413663869406974167917903603193183887625950977017949045437315672499242016024474605987749539606030117692496378683030837163614154089798669690277258430716777762294665164685334921503919103317292884135834096124180006597981205713346582935719058626859568077473256511101288624666822853919066863278568290534029648470508240132708646957985723537021721983026268286960636792346826751905695270182847007210036357210915234346354974942596629820977672828973187923028766258960453680748945602527029654881479605651335690128061104372155895283224820375443337844046471036678797485859630702958152057500129624262005244618544311454490506172663265282626019366077047626713708876517248567339754336295271688513576435494817355810695135228083311664109325458250374299496239817198681369309651419451670118320272018755053650503103730370821377242524875076142047750686210415123094797886514742278704962021711137134448743053028472161960353466903336150580202150679665811060716737431118194428998703316858018844472743430404569194672901336554726761788431967176039161205172436868587850255687188978944510137973328484753356635713336196122062664731287172517053816848009579530386686932636404787388127263400804021266328440730983011347816996793634302767059554089635239052081587098771080590272774633813128096038767038191212091081148376002146842004962660370362178457708249079427684810746719254242976061616817989596263317129590687574762066864124782016084218568961635390994941478114035114047745028445098045257681419681456763663531468841859476900811769555455987757202396726404672095032168003981705709367532794664070047466125803405964990274028523142109203951515869399688425704591538047243708227173747535035737277318313227732797541326561635479334077999404114006293426176007122321220032136069525739528017840965813505013623196759391107958540125006019698162527095585623001336946245049150505422947989317981743717999231449216915514441882945382052341906045826706515415907863998786875000253240765937138875212805033222778271944140307806555272121240101769396153771108651188062559072655080143055922317558648514067520110359235924720844309614029068473532673411774603839138762031703647432244040145905122095263143532554444781354977804639870947758524297212808681549682161450863375892010854380622192785687171934679778533072922960796762511658949005608126410718351466278544692723171532612967055761582447102082927002985820235019157632269050212132515243324234536044371371723739784121791096398593652379769661747366863183775237480229611770125754984423761884830805749391099260917084021704481928634493452677518126563295088881631823427083704131326280118443250745882618152200183824796486615162992714884762674233645886750327271641730349181057748848960807297766367031720893824447814020909094076771224170321909874974737660819725786612877134668638150685886234913733912975193773198753275254975395809796121436611187273601550119966568680145077551890159572323735276732614803122535560538876944763065205827415049655613193277495455841842624716530154582706371743575155660998923910424867440221484341910022429134315840644809816700588353948127423586433784758932180243863795826555526366359166713314841701026168253577109772606727417131227767003883928188327412616169405291412012106064563480484238167823125777937853644443761187928345101076611673900114352661535631747479113430196095539299405257795994673649977671393449707340538421200326559369668353752122143911845299326576262895189994527216445061495182457986668815145979091443429155766025160070265854775273710586131798055109170936111126543310877604413708633436811596435926649419940111164422646924121094118398359850078130538119458671114457820710580659343088257323938412624428095483782146500064741292383145231037491505621351218703235511398238026928435179339089705012152106182257389045387778983458249642097085341542378626017703331979382539999877825953990675159230254253651470359102119710863133755181340974630563768195536319446988708234445164430247386159175420161583523569524392488428879630578565196794355218630072137925851195242398211704604396511621431629390198859522310711853089886903781090186457915121535610716658297128903682651484791402785695357051325668580617972603194563001737538048698727521355789937408838627238664601063744843861966653267093267298153269794486677331842217238948044091534462509954205140512675399761705996365075629219777347125981624873427890431870757888917310040114770351537387178375188897420544007516623751917240515188496930288268720383162465283071295065737267206120292226967368827365761018124823143322259655188630069317898936509099221856761383976864602299840532337225963502493840955163825271915886320729300468136613668964709389046302150735150338861593944568628864593044006824798176233951988441878699504147618824501094594087052073425988490901635191300478332815997776740468630252681837866755908893082056891978077319083049086186747456119088166672521516249914292997899835809810535002537634164204069445816918291251822907807752171007644196062907780418542933926476065608422331272279586435154359359804033404384237256423536958191925930967820866700876893975917575170211961712136607886903192247536103024016199199126524880230459606269037225904508020413899787766453483315686363201193982900712973191247034325509689575066674790501585715189077246609135017460006612043724063217425017927415065825672073607431372309942123356941026463903584388002463122287247024947921888445579530925217963595977305482978124533645015342878091527161192192993213966772711803696227486314259164706919743430538424311512125743417636622210012692154613022293192916279443341602895558510681269762524721094082042506243121855706255041097570156969622129567671993737492643476812182682163510357369590259077051732782044733222701448442321702967082713567509894446319591842332389518442364045121019905189766843864546691011167035103301189916633524736398637667452854296876790427416542913711231775744961139553148652501454040736666911319198067312831555809418299129850697731384093042938143742234492559368069161532661204288831085193012711036012727296245182218223143205896748777013139450476980670196248463373364650564770956124823246083966271368433935139570739951609688570079430474989756046453313145362156797094312146629247862536012536156889135349428383273671828955847993709128418304151688027595497454243803057168884088308710971273118000895423499202608237594352462466106781896174370925378779407318310057050510123212231149757199746936115083859212443403126076783154081948920888801561202120692220637627076930700227302894445656741152765774275842999208803867003523332427669667866247900552667986755663571900295242018238565481407399109306355150985425888759680714506526590782308868953794968264204869235457694677729035936140726433226626280043488110105099980459144050823755145098843420448661643107125410167462823848896133962559698034868340402167268858678788370067376147094332019401210973890912058618596932108139767936878630809252382116948464069126322703879983454588695887554516018275737279408569400602273094872787421248541391748698099607649386923428826601414255612335267762336644092382606934464806730247095507051472717196795557080749338168905959439014108328769553429247997329398194739081427165877587832567864790974753706221256210883920759576923010247570614293953355222024149952618973695416232513670999546813403969602812786953701390106570510203916836290745412679185519679056481101149187193496368079424950968823878689697354926213410395078372427875095046949037844400000268185320911201485973237367569266141328991036116952138209050342513887580723894193360976075121912308118824547476398766763063290799217540780077392612661733978469499132939075303278446436794775977398990515418483878858710732926312078079595708891489342989517862656968476464157155782469526462463830517284194872705193334660258752235844283910683209091981420046260324743914063868730586316502936595705691584004052024172894451658779792215868960541431527968163400241403019138798157285301878096334240564433510015884530895942666120538981833490119965798348671738843525649491533462393003734461708571658485169104627232761948298846744680073780759740493650525298776804247914558969703334773615407984200511831562343267743997277597963539958982519911000651147498027340565137952796694109584961784447368433606824835327131429887372008809589268247846950980583082746857769494220225306265866464281675975888242279204592806933081773570760710952558258710789725049394893860670229760447513596108025698075575640696992459223691222933607318174356976012382730178975741178752489993798415278385976350000578748311801511448395795949156853891461739827062958683088543947468652343302346815718867423536947859218912977762675640178910810671232855295781640785586170736528464927726008700804527880514499281261654966901476965596137342691317804620532574759864715165889253263914440185165447649714127470739263591293657738430401273595537881601913847808972216748226781440617175944144223520434280406219676895227242543788479961901454370877437444951292852720494324698993871578356003246085770622548060376323997021378719507427003179610247246572571256640562281676662821760197924738142863555491802652457394893987237493302155474920174361323315277338349390722656977838642202779793901099690465446313862182302380757828819422076467772389840617903308150551747036817516633116754455675090760626897598085232902207213195155874481511739134085339022053867588884027699723708180504852814285251030987313691629179971166216037013431479352322148241179222021129232535242697897922404035110040793777374853056869730042286166188494638309466908568737558681067184119624923931212477788109939174878687948019750670618627385476215386514363520617525495214813394913598942644225504808561795856614804801914630114442284305217623153875221606708450636999945418976561437254384995294047208399903132270206965063930814938540292594582833993618025159544365268296286560243568580312344157110597744467715203020245169717255486200573394084287281175693824096587107461501678657506220515824200013067350760563736137013972961353421904625249692876553246359657973399671214203649729280766117808538445591347930703126144091454526045559427809881137327834532843849819011932608249251976155762592403919767056646847172444427865869520389225000701223344732816390578849998873591453794309687443381742251287856299234449938981490370320187385567652982833264514886349019213785278246616993734662095962643541540448341661088956692176373941180406041564795730907828594346178822427519376123246028294071743144843462457766429968128240254457142448149595909933702235177008824212098414226499184395718646882879235193344769066822962325488592849756220204826630259332731357654701676757445475568243500522265484935785844743395008334983461126991845391640653800404680697353473233538977102330181105217177467016610143644966055584320595108652446471387804902918337173201896781904060565644398542655664602546108098439501307447508183163850835659876790682691904924877572567499889222256119186470376306073460462523847428002174947440459877324305034271628178393083477611030046978549500148570838171737549059474448549925557691851014529897842625091851775536020827886038902209451479034356603082557549529988872299196967450458719900702792963281424048794262393052313703773228005266897178681889659133580178141687057057490389442459118244102010611799391552058254506513663706106476304028353374350389807629130869911440671309224205389051193209565727954460783361126795387661301306163425188664050641615175810808918234902343682825168641548793310061724508367154297004146308228221663866854314226265366665678217663693983878388985277990775907548480584674477562656186813170560411403874481737182965902190015684704316747110567106436426896079057131236037813926813311793253181589198611045427644943680283737136649960621797813774404831243901963857845557517054949012334444535043122201708540544609606494082934656883973306277143369753755666524139018250224323551570337296598027293763844333432374165285815908953267571656950108893256015808391997900942129384358339650850874039851850272974740207061475273702136335273012459199789320491653430466143216441689299531775919222483305207744409744956539133989094247575067120842208583640370242631839921722441022888641759214659245368299498171748966199221588225235996573014845016576176750926624953139904241893445154708290033539741403071686552038212732429810391490915054231335758034538412875331015617349043398598595317353176784054523848564327954845016856793371034489174902542208242810481646106485827229514945749252285687060448541434754738861871689482436376891218205007324823846100119721975766674536950060033432034620647584014272357675691727836826501632013658201351923554868689822364479635065601483602177025741115736805770356803249844834926726930778258597611637824218618977778052929206990312036647862081728483413207923638915419755533399394977650439408330207548081583035087976668093490685568620559940358014642649361370605186720020243741430649629355114780066889695782981211361406562580091922482873882936929830564998082570485991491410193594051751163210866131174785131661805518486237148380407508967422624597007459562791221621731720958603282180161887276149846075795294791509053784726807710976526485324659746650751364440087786751192577771047374218820486710209139116755284177103278984140639757465731477404322342973600205940684059803480595786819681699873559965254585982942187806125689178086362056270050608752451155351244253502624851374312903799118538512408286015102735692565206131207733543786542459346946111622616211109221214289616986341558830970301792122818380746410966471301448040979678023270116292095334805370250240234454081785259326398740069959088604279100985929960904569461566482955430445477948961005198966279905354067946348772756636745372951871309639681132457024269650374129316160027345955584850042390084523195792651037943656576006048571532221026539763748843604902002468997917364857022772475232627767569001732345751211920223298478356337551973328989622036621948032368407977594098468336937978496205340430229143550605323693745277837407472316997538255442139174065254261607373526268070995337707829508599627342383302284539322128060180524231838296431815379892243346916736736841000730940299421221025115331589772771149267837934724647036871692533723883518700520536529782872485914274303852417828490701766617483990925839585525152486082366673016298690697967719079664736392297914768174004309826978394631546054532207916003011505759421639610573986161388689890487986633821636060977102084274041082990734461709668841219717852482805152552148681759253637720117104441363666563850239244137315765327630329364270079701278230381117371100775898563342144184724614444868331057643536463654118745210134166648748604867413941788786268572185223084647939526742852658125175135058734705419671955718304853275275690236066488488784335476205226717948414529866376764595141677045211048267869864413367739663999922566179834332396102681565449998277036956193581754814199132033895961422710802793822964579068125124829434424857060794601817156909301554258651219240680703631875743862797774035731417215365890718567768734570992491778276502824782120748448286850448040022848596690370384038278102278992161557264925423701310057724973490317360854004525333462047121248883883641368672941331045508613099312191020073038466705268469756153514099742154214016724517787129473777509814210462700334977086500286396097710924150724527911340133086031923950045574317101145148247586416685682284189026743221052227876964410727484839632780407649984731932139910927625424586096598245139911095974105279553539130396989485984530207911548612468684877907039583394651429113200644308879654083505230784516086064504102883181626401396666882527912945551909842722306166312976129532526147785573304342894839424311072386527577778459429049710852426530147373272470256000964178574913294800539492221929891886259736701415222538378954067845828044521450040810720532769829217223789047560274391640147970851252772773883657007177852541217698260145835746629092173690800601034795875387244192558412308672491710476652111704494628849207283979720732783468042170696056594246490953494231932566060465697373295655797809957281472176643394136965864875162741473886681013788547434199145272867951458459545027474665224762850839160268008769434841430892922639804438202875681239175385461567072732330285103230963629464961369324283621012949971754259605777618737521304757689321182505478230046023175641934041831581699897391034528037189685403416532665378573470082329143114511880664181605202682131118682308797204095276884646971994742978092856885766321314925469021132780058711401085384962662454806313642079998214776924701748919623019001149490065318118170785010787704416248626803503392663545941356698605130324257550026697096453985948585847795484716852369885874792815620982778882261922147906977014151731266439818689102678893785267541042015090136896564579497881876712636053947873213261284482989970671985206844420830515459205226640814595059709984674112930845321395145797090516909450227737094466015350131978002477614776776523146922157693933177202595452724005876962499085842095955246821146994666553579952679256738114274928965424130119532421549217879157135672231349256272262262387246420932742616006040085656599612531383058101542254173350667251720653878298058136196856099556706144345279273766167210946929243909360455375981947266371128501414000331591256887989992406909845146873755928506468004978854331923838158572975530607675162655398029175298429983070015987671879386140621918498665375369320555473843986756036063964369630813509028810764640985966137032360274312383626071912353248877938294034801121451469093371459816516284844411625452772478693929525925620946220040337198178466995904253020255496383297753282618359873394850359257709743383314876880074236490446757999004910479782628809701851210526956060254421721051818357897970238970965121879620537354171776693857497315733216308711394653870047549682092830625612041570312558808823667484689363995584470143736429208178020968704860281706801565204601964842120551362692499836049399471799582960978821081234897550115039345135547434677451737424524875653485748362525710115474967830514077050351720374857351954550014742399966091390922056681910118920616365272763345469162050920750103329052484909736562123311273349890489190996857255280996649645681113867028706198501845920292373713518606642275509431313366368891748087871935515711028377461715754428272175148337491266797925640930549280029099190374839366916951947403184998502415168177153367805232372986778301464260423656019952287173808857198541105522185112084289358981510465684009874978309447221259418679091432788074225404981238213449087583011137304074524116719834839479784968193719922022742263030415204814990949869711931273139711990739998687812857366736303615934533126319886155910420354062281089180816009855923588255998022121632285845502719061280833756440274006773191484667780102361546417451717276118106231050451878134211917036298905463748860156039293676965658366216237709457335983031098070585225951080181550243953183554833388321880181196563898686399742885659393899839692431366909818478641962082889691602423470761178079593531531104105353445637250395953193537925646338229312307902199888082772445708905446723526568355437678891590628730286926348933750840924511929677215436403572654561272092045655197186565214259608956464671240949646709137353260048300094216481748870789822350862479414411051460744332740993352862455883200208526152888807269355602830314145745226274476008041549496066519760492087651659987989079271649247264102657727974366146915126132303624295704454071620483339978215742047779147281238035645639117696763110390656588588687953016160928075903136649527614736047008089543002474480752040059377712227673226493517534519357453691563484952147812268887297297445908638964498399465855285525172111629740730476430810650056768302063276358938709979415379768111356342162805351838472128223981788868102819403901426969225384170933540840017045448942042858176271812289845777293524765644153990402149677915004458000722466072049108824670855792453729932990665381666003116160839962396915249932770672924126557103051297599770701967158639848695109864385608439761796912298155809302906915476265303817517809923673152051732112961377243674008209729847859698615769454308417506095216287068748589000330545848704205003899183535278519345876713509376138783306765001902661144024957331729748008739479745820102500280477052325564639085199818937287401024011433723561066588886792111946351972744932588935777032983225050786628436496630020516728507718013749277096334260075913145484965061846675955136652994125025487952323013618761105741386543363245132423765913613761924360219049926387665139420437979234759204634431367549030433781391739050256509639249418730671821858481940935258474343603825645283725520401518042187182096692538376224828528329893920580834610887325148518000851091758094849034781056676029130549037542890434715942829658139397940667309375009211194229468386760103400579726316567390839539136670970651329987951224906718083045824556564686179544077372034723948677904461180660711406551382974621469282354410978422158084461993034582635950426097965038066209589759229941014317046013027532828457344889366942095498224480366147575518372553271013135347891235534080597417662469598671756886971742138191427002367694885449856012268718126585169618558573403891270924525594080074460675391143733462189623786711382307529426485350587036040470310103975406562659925783637392356812813382105039395018857395002777386219770113354016619338730353910132643762609010353222250424088266419835258786835655434902088947865281653717998823325374620401516259907524730763715173225640801617061454240607484565545798202171324586087519157716752612068884434364906797872006708175103799571831065608620836354631203956537361098129192548148278013881990261819670585922286166789370211849443082771637069249304071721144840300397708475824247382805989120069848404736080832460236820043977927869330143399862631213612683472679830625244571046694910663059355216284993987198859134607013749323669480114805016016099360648183092443690956065490403542637551125111281836180789795047292732994751556607266581271350139527310107175499993722874108998238681364037442835253979900332160611565871349107725390501272914473432279547946818015058699230483674457282538916551507149843340971903139087334863072773185864797059944649259708459117059949500167858818599697678118408681865051228354829679183805854700980228773616755486857746244001419891956175075308575968979980179003527292387696287860206895318300646053626109592574873131311828527155358753535796550451730972854629895961409134232343994507354788632195297015105676453197260914746795303335925381656923221304303538716446380337598222552241778533913129305948081559773545294544954224254690368545314242709106537057934140541225433460310690260261198430247454331595587226026450208600443357452979827812113539002607383848340269089609038699905644820035402524209276633116531408571070492727900330281595745616874913903039838419379698981499680460864011612185717103457064164852102760318059442574785791127367788404117559015694740860972931683875800741585920245610222715070395585444385249427830275705108236741334898085508990528555440524809248464784278350973475909436556282142763838085035704653554874495378908896583872463025683608719946369364161703613325577420934755513160134798600804468831934740940571773079404358489351642996219928565176470225205138721791357683907048522932045211136447526959699601740052679716361440924019446799293793354011356135006605620249314999005842579187158199097339988681073832886366232823851233140940836778510368633601625743030485490426229137807060106140421272660834463837489452924791499493306390833744482621912229530615591542212530588328693223218638253950435409240613360713257395906065433840037514538440733567748359364862442154402602304048034742447032042937928604886410980675049693844757069799484816161874913075759771005367543012272777158449810743877202260139341249305815825309302720414455164951029085620383503118717758751612674282382334769190918698723079800592993329108392798420066811544753806938044548650045216424229951533374205880017338307645902602845962158372921454208490705180792181519856892029582057430224832793937481301578358343303828359961251483893381924191402214410831456675808986118006578551088044859106771449059053540897745799671581335530895525849123538031984731713289606969071291800672314828614215652869789130661819283328480855549051797720803609904114301220313999979860520048056572407177282265617802959641270007897720963211986238268485333647432050693294543796444986813969505446718377071975504401405294150871009456744551495649990399011328817707385977289399920087617308966399395707998795338272684442711367593641552285526842567442834120431268261745954983841764322408641674351085427201769050335352268115540519639747055234462170791248573454871562990374532687187469003579989715980697214319707879126046142159174236432280726930724099198093986139477496084611466204279407593622673535474422473014967209282865475974925621632515348171676916515905891576917041361691525264247885012369795161252241274131233531590685581361144928553590874513359159796405316907999827983658244965708644323645929000080514077009047154291113806777069080706210058481760109882672330420452364099666503432548328174360653116063755607692268362629941266068344228427773496103865102224232769249397436938448098552961002219963949059138375630716446548655527851523594496272000982406204309824913139560202080088661179712877356448369514810715877753120756459396118487043595296091229315773818971171414069496581584209794911127278576060402104698934642566452892966480003611137670241509692146531970260997111906177566048656471320715375958165162797831333413868288385326002427128980750154264213391764123794812104842321053788486464297777687949663060993702098521714334589522026021664607082986020762442259183099756506685812584641864587930060047111055917642617906103879552322449164255514461169959154317747539792338866527606417202437753108260895753098591497612145967922728167738564003110005358954595963699667698730423459938720534834117392712105335523656874731793240619623102893581871916674352962190221646718698712925581361887593439853922023791677569131549842159817109159104522806840238673268592614234464535837983782716205289253741712289470593733818029804616708147806770096526528177094909364912315460284028084149128868252714561242337774066709269006647850888359309016575798600059854548067320781957758461798066525094411740517371392618900784477967372696357089032573906728019758348146019554214899307157492089124811200747981218222666141758567581664885853856112990601707874616946346654026669505247304416691882053502609704298186038548628377352773896952262103590501927004343897664354715984509492638371733280237332787877171427509139585028754333190043182562324645574073546392756567072422046023401446420927180525882793920968416496781023357209785148518371390657157088220656219960109642474421870171364978909516177768992534285423492962142074694336240098417680669119451555173755722970146418636124585297252059748943091403789296221320159787798776097056776746158233479160540245076883141975093653719810947193836582519118594548731437912411884332282034285528490032017043900378939198080901695739892622235866805773128830615035219984600112680923588035215129519361513787633903695827757574849234018548109343731668332980193834404451982027541658816558108797598700056973916279112658388430424907965712533081415935072251290683559841403961614167338808904791051672153376452274368403792298248764852051498587243933995120389530085300810675075554025608722270907206442729758237224156112535214489074361012823854916764556019460357136218963459905426298353887222455410725249066392007360303366983879170787085659734011705324658242292492576406756344747657316690496404040210189532344051877952706759352577079665421642109093986034388913312295223808067320692179416761720406876194887191459727996595310662495273852557789437502602465679865949443812088822113580351091457832271245540841902678903466364374849953530298890038435302911297747065843679015024537975017863053092827826468260228819755123112243869784477235184406848035456325375692605956293028257077815419059494408603343430402604625619491515114083345326866171715578156658815744831706340976883590383024600108548016699012550908790706872625083615501016601249647863966417086902088693635707377961401820217937600348832592278080671228131090032660574011335355221883102916771762078370952891284521245804797562000533070342736836818446005868856058670027483744424319362333160909435950273119311000015206852404625115529191270201253620097396848386506001990457204058396831801545426393585424988305697108860820678302001268591435165010355601005814210160973397433729181223252557917611785831097413938967702754198560024706745035566868086738888492644826171213997436528482794270363362294346171305940395112404596564665226434141146596512821208184850559186661386930984472601576498515696418356489003341877898972368183885929530384541734301413038460376815031772505111152929757005736270584340453117953894822659892366031872714517362885357449089500996281071411378609242075276978289730343653468038092211913493021809748154024236680573349575565642871703582832000321109452202403094079130546300286199409779634191871520415625557920994612337120750226381719044224369251684242121659239308627902808572019524275237853902571017737822403403396656119102070231980058195922710928499474966617952322684979811982531272627222386955453819946697496534423113312880519108765934324230548069440816313761969644838342695030547715283109301459143133160625848983392876315617605888855861515854260828265252478567123568613494780213383750997441657047075895119847837148148304354015597021695302274007903425114845130674398910194152680743276990046630180971972161370400413512827647158879038580889117566079258609593841884195406765142768763555620197624071547313404478817200115306703088843235952587080630029432686683818479830854405079835101116493444418792452413619884640768490047816863174171321680983345110833073215003955140434353656444335833199556660420279136638136681785549528757272844275747578667994132140582242270743328222018029717772840594733405036059052700121767981754647806807402372938892543787037438210695419019178022445331754535053965600161278406963735038468479619949115582066988757150990146905704790285329974912004940323097616500681365755735882734093723968803357177868222766878999885237801351582393176995987401421809121631596238886777567353592292484420287507817462468055350369258138489493586858225230362365453350629263786863725080604820325716106943640122188117421869346134431239235702172071414885031362071134337285156793373762443058630860885988014036292852496341514293487636962916428950312796876781779851267763507570741477937902382440417492734940838938216368149454853070340307478692086524373308902104670895916742250278474793813127899487968993277551713102629105206555690931162904040649804066062014337610316554183536331925999581571349104720150189476146260510631290958393160477468968568549218935605335910104040870817030341950786567740369651033905826056649289894259039251566966124498879479113237705108644714518429867684781948713604024731010958616737118063741249752157547609269441758894498562885734226566524912264966557597623431344284905104797159423137631690040214295594050764676400291093299699400388458156292107004027615990977419610967990753848204045370847135008899952972500621135988941391767368634805512777308437654792124503700717759319900381244971344773852830456384690337080051409397405440480445624798943313425619180221537023277330703744866200502225720454700588156349841695146899752127833694120229459746255955259372921056145239452255614996003442209200657012703261240792263255264980852149120468556784981536820356801929088141453169418087383550482666248292005350953592161562037874656933929282865127529636038979452869766754390663129106151578980028238718674517923783544501726601037601542699661341754243151276382867544345821828632100643811824431035661569530155606737645303059933944530485234855741460969423418116714388135804188830134802725842756248545336421157094413190191632854548794724278979814374448788790627050974081308569490360861436699827488744552449222458531651668079257555593814942042357544260071704250700445907641942247081537973510603310354880418140330555560625213755430643816740917469088349959367661081703883656802860206114577597207794683176079811958078538220270398291942242088055309058141735161898306174490905756081806096141178947218738829906789788467621292478608709344135370554713894200058955125842569115771586255975105560114624494326385318147593458169568019427970160353298347514640408044178468794031793320219565259042002545238148190281128854525731550746052828044711486937497868514578819356348773009118246790626739371019248021857985395385233538534075645885588807466090665451340909474813363680756177216232894626684993215523956561511942408795528136380411375401911545723876575768625890749853362804032193841954268829603585202087273084353336327321328578643529296396923848535880412891919704961600401716004716942617488834252212460634442475661392306145030667615558797704314305697495646213420508794658004405937081184987710369964690765312957002572444556234286208695274585656815206806701508750947381897706581842073423061774065127667934686790237194166511028439949794072663398370548793415622100437251148644883047335651288463518505840249033280401332922922127447630220223444128152646045454106730335838981220556950455400478485534530078476996969290339922169232228522465122059295350788680540561367175641675018347088621189591845035133646299905885227985376164186771967295729136726399271886007430479636150583516697940887345854432493104323189260953708332904940640761236176460320873173841798384907754165448383440255290348888610805270749063308132274989692163314264075646679436205883693524286714710191299899274482490196779398788088029343116082463217195650589804432487033583149833983768949324688535402698993930456018372556513060411408827118686549660369888007863236978408003830968629397691793066807638749521902562456167788664371151638377577043577287941374894448655460218616010823351529597942190532603601307097200873741492588094752965413813315643030803324841446765581764837606702129763091664674975856307187522997487294014692682080269252176743893040442863960460970323185118290589015158915591691877272180719646961525185344539432138567681453826507628413727780429802282421924957156656495077045218747268613214085568883693262222789630584087692546211520542075537198308986104597935986649499015105218901090283324759000122763802670089497964522734585868429868155569337848006615815399167281034151588965980101287025365883051266326521417400313270379459793639076713294687340471234238016194181509268327988927409445200436233389039701685878603030069022290889375058819000440218889002995334588294988559883840197958272388266213582145863284615481145189845332937496682768249691834749907673127674729487688113908488375385669562392384200591185810881158812743883821747618472502947683829663036790072752736222135301323453180118542619925975527854237545501023336185377028050479063428960881272207946794492389157428949510065327808862868728463626067838406240018991634592224697238549464141184505433845030910558509852041910732812673634672754951965398119794108761636805450372296546135723098388308557513547966214177439441548011368351180148179921171747386749191994100652317607615274751794831037382952849889781490778899130795483628364677590414828778695281986735126356028988462751376612851482334842471628037296125317733908924741971642023650215967015486064168954100810327071511641314783493097306329227271203185949880446879635882833640171391720245933839879349764703334129824256371436165255126350148822948116421922341697511326594171291066355223425567151144933235194766494209018063483785973026502401899374270660385482728622638782846364930226777441632406995844454246879217627499848076212909458368145294173953519705923430784069654007343750538650951699629415368513328134659676876483157946600087186896792500588169751923519124871497540984762277756839501310550959643375485440712859062389098383299354964965746741146824500935981618708445636155569239498433941030152983186389545630149958227149109067623998375099933398158618821708559313468064727990823160055425549712823907052516769937964766920242657469029141623403552029708344779544025432387131478352407695794448603769571660032669916935126871486690347071775167354847707513290633519155379481747406102838950057029120839457108699052969171745047587781025034603865592261605210827369840318723881835491302607891778863162476028151614479897659099365822421543545736439320586695705268962827841312541278501353022946350269749988829403970718588451859154712217303756885527254644821179560706031010189558864083130160540501836114768792468612230523800800589796909127067396041613123921532413579243150009424794737414587454214896509270563255360245044976096500635595629635101149401829866989427423762520782197620147936693310534459528661435286950710176769329575401704816136195455268347217022919542930759363989540120128134854374867125530435265704382630636386419247568506977682787023592164318746796565318762016559300409443086507986343896560271408573491765622416910703840122522956043499872620296618554455203104902403314364613440980065905984401248749573157295699161034475658490219161367852896965642527304298288548275697874195716173648676793262155630052333710326737809622548466963441448402134727062798376006251482789443346296864645500807767205039369697279049461440197671735256357715706024289879375625773612702878376315338747726175646686799302591350027485143246498032718690354216753720144217108510034553986836644813516890534583574780302983175727347701195934272951391026409458960932299190731992500229421971231669937064742016945721443967246613557457988684592253605179759363094026998349590167700215692955010767428201451719415696961925005773480546379840975676953241710540796732533443656095718838880762397169567887712273112875495178869619227572919398125237757881909303984644808647201558623824762585185236248566215652738716516213280417230343510981533877717332998673887976610579047986811439385983605079293165663699588185852594323291189641195062278173842306068113892564089570141104224352916307858356968474514528963725720272145176299130659411914882111224611502907877972160040968099076355939030799304037904394348225455316892665457731826621863143011125974593610526773826073976317594120678655785754983244926709611120389184206464076289500275341923391087208571366421820859503753445821709715557017775462256610186943653706604352463607596948887638870400471144888782149923575163407967797712549815694872069431564193553853944484911456879608485553280588830354038764183047377581485576900172729409901544437930253894216423204669125685493430227664429862648319686986190570436818692030171387417152607356037892838721054659646854670518034147711987269509544886221316551343142777602376329846521936787902324163725621918083859232228305789253826634542088612465953666212720545134911382383778405021104033563044323547011941278982482834364043663381517046330176830605074252057677201385872912443618989044356656462340894105296695303851769078603083881101893586791405121957733833634097134948559337777888360131629007544032325586480708833267352331079421573694039386071611019422193698229281150986475898816758743743831106287238657234129232739940927431903411249534987181786850974066559520312524390198359025164741098895722620995913837255128676271092071986941172491565989606380868119626373762843164414419014785055442022466725452700983675893083172076672132251038234315240463897183799433402084347357802131656668657792018786751484983884783406265150912299030972084488935956201125694551484394125522942476788763517631278199726878969090032689186122604778934643150142522200249599519962466733411530685776726696573422790340902697825054965147932799845777172066165209623274375796516414299049368732800541552928896471965099397497958739129191143400934412446535715922209730970609720930014941751127809026662739414734010652346911923520355986903164511217200633508174487078776905296793787320388528062918524542264282981532003290661526885612716194604041017900509103832980291587373343374011556150156792434760667480676856950407886729359492799493926105291541940395217940325035717789831157155169635694036736143746408656232804287896633717392017895918616505037964270342332259993834094335235426353848061229729534300579243799313972344370261954554649299510699937980665306385743299831400899053366551043644420321882833617785554501272747769682527968798657932084471963066505959872587891852194178364386797357274541787589774498467963400064827614252220385754910850838246511827954084000358933193963582797839918022082758630065599528167123074185685074958641582390174711920952950836583661842489599766948280894584103621103017922593191145798238892895089135440562816531042146149283662227642875920507891264649313293830810104026443379527546146946403600973315960155239222874288670922134675871001441642966308206442895030077207042147161995113731458771867270410253053235583546667641995643550743380833412136133592364015177775633614044639699720544529360380769150559250926962856992608010421166506808611693991929011302302261053584965303817698145324126741163227466345005476284309114331518686541906223526740524465275734157198493602201865033253044715656551046003750516329239193053066328803943726287978877832168318748458747091774594010248127026521206941762838902157807405979193592173698114632143840529899688867942033355117089565267171405449006232698306685050368218206261995477100056465784201707645331433465213537120300300479736783838397227778559647600757037399179179005035189928361499507725600775005761139234268267335756262065299025195701258912504583810784324825105412729220763858295960709638507763560712675096960128386853055441043700770321525476490626923059209450274164333605319824080682318956379610242963050075755003878931989257148229657273323162521389149948766257608248662354097074562937864800701159336306497791518609229383962119853072283362139894510741073246523862177835411234151132236329128568759400205086676673197824658849857814495499874284844643914074762799688072762746447555131177446222421405290442274693651099236928960414683139335168938948769224867501711672009950250396470532273264622522668897841981602146340390425649514844633562602916497204431606173197771287391864006562696694263433816259784524189910601626560040679264493774895075754503667344296948350211017525809976762187233023925518352994158936582560472398472555892226313132777564516885848468183465792241774705133559682393596234119160702653780626062624128664655188692515091009263272171566913661660611887163478297294675278155727282237206764868527879494103926728294404600956554907374625928274211006521495974789599609089798783440494381645119760618797344579991726661121480291103831497355174374583713647624604095055460266051835025389972503986145266516788554398910512162143142784370224333683357592264870675476234801749439738444069052099472758571769808910978240430832622702584783708918828530098014375305949838020275372471658563298378642453292265883815796835973872526295837955577682589609452587594751769961081836550123607118876408090085189275030336439664979917240077736388866484269389328069591570904674933025828844372893232839607205788997646036340557332568846178366577471006755300013684930375827640109604967626175342363077859937215265119078233304855830025069156317871601256830801350134035803651674185184138196877257205586249580921324808696373666786905876440095536358276490083209945221004843081646893027411994740235344700669673896076317837792435681012282395719751473798077523656266824943970885520473090714036486449292462984493456680968251651013440123561348388888635216245519222082927887742911158816162524148191375849931437043925216740814294695472165642306948571720215627591032109359254774720317034693953638284651034223814549210954377538154008867621627106040153053757874907091345225822434663021881629947444167755595386049739166953212502117923099623727597419188130315086793141697679098400054378849158833651428699148239084566349517194479683174227326805148494257081629766138026072294457070024996026254450221613468529420613462320239058001029802702763285763237752046413372215067479252367035387048442732568837117457593261551773007489367823234097059467816242744185253262592670638808451304701647224998235442538081691969460411189171940597742220568726913872688225206704222508238156433734937023357212629272403017939123391629026259962334195532494790022523279112243599575418937764183943332317237401676126309224986416767707220955506193230129414749456329387744083315070432555650608177071778796158285472908505192264385333183891096016461240488552354961752304362831007205679645597661197591570221984311660006455567185031157379354222051744992256559854497449935139287267819149745550109677839179159573066275264545479192572509079087890548265508137669789491020119202508534972713712810893430882601067392188198973745221523390462589986110787639203609990829410977171989739514751737889967317769295245634914157535911146119374175831858416463678460593604146495140697827809186714902793055265448470263212488636667855159136495284271774196474661283824491103021057909523054485330825235687783142181400763468616736932207406507317767664579306353426153590425527655461698722526555972212663368253950688581885685828718448234230157686578911978122651554585023023374865000427749658816518905624986571415095408955141600332487035361366384752890682300937054974374046222531849673834027396658283098598362403153737647069512657144500709850885267361498267904891374545218284191047129735962185294097058905903875514151285834452448468712122922941128377788100097737962739955172145754933574924641499064993119464697782197399266155024833507744436506023228240098466781410270296141041655166410352152223546286266418522992505538736770797101564556719595415905523557205604759608014528665679520599486897575590873730836618851927157305676015390751298639727952899415965576610837999980387745469384316464225508645612389718797733548355749595351840369074404060915089907883949724571820552834036434057776896520973474771823392214786038275508353101620856976453802723510678144113325776550436523277672880237718084022174117002058331588158436555431926768233063144773626907712774705623911731853135390182016095061721359602307543394860192876343364160064600266021382754086130519506337397542306238455812852023569585114491349295489060939490312846834709689677526813827003829947695355298364243939785578657971507798498782932923235702738725794381023027004275600263202722851038247229581964633772291910879033398666670290932514797405599405859482665496261191988110968071479045134346321666470833380226558073480156692990390866220746789236567028349080374520684382629638389007728663314975387148633369447291068349196028781646680786591124924918125787516919795986710765430362121678351825477955058460330586288826782407021071665511375987545062008415417369303647845443199494170284973190215900269302849724809726780073037938683800021544181929874469558451566099758987612538071403732434653090079423613931684262642532919070261117130556307896685248483661841856214153099660231315751777528349330390359707134950902698368743812456960345279088698144637640482121594447170706215537380901059858922507276619538518907582702413196267233443779351855642306848988361632810729318775490929705934310470967262988433679771356615342775154524759483252313778316171871120764402632947603355376941253418777947423226060573110361969513264890657629773905531187620347885900714845970949874760136357342848042266430824805539932988947049906878488452352499902302680514984663799878339936222991475880497886377369456698380321830831644101002585795059987114015736854007179284683960519923679480471774877397984144236798785770580191175274166233974286195982023144021419523966483279318489853099039133481457962601250411987095928306515410868098150432298646929816820727362580737909736557130705891120146168679478536053616189044986138131976166768054749188161559317855999366585024019783587508411402417228414507830898653634769964117693621001775843441061921932440170635616007971707936673178177824954281853650486311868734154076677240418796724948024740774350390542873247770139511922583453568529356851522867885101992433122708310316823649059487871708372422437926153473176587071245595719495789206312246151583330076566180872472180382964598039510536661917059888106323860990202257968569439854126353271890237471771903035430929794763450958241837385322748660163764920641208830493228252530726446789564899078705043529080629379141201605664937681444912276805820186445053791586776265232843583916382782082755907228367136555141791611689550262710295197470906206691753649966727376518732544540508510223269712214006453798453333768045368933827487520445451932383525742868791292789571872322946048120120040822877290132076005751146710781851524016764111483866496708098120346490951471995675883689743831177970513303302655904325969147680661685335483606703501040116204273903606892934741745547325505746047584442303651723921559083375981276342863280174696126147374716229007026363136416992631911988033871120023919611179649318042418683072239940362955104078028863303399221095967795577471204142169492774521157940374365273790311704837256086615258712585693760956455125909167261169410323403793770466476689396990127921888397116352503129252764570135756118344364292096933826060307274942040123407460804144209153938698553033024907134340727569982053292548979702658144877075452218991727964968641733175872266944845321455225235899891377047414844936927283587608452051786953194352061049968992287651053834016031614725990160498995722766723368548188875154750846662673804150910641801886082969254665118962619021981011548231785724938958318458490839327419791640401753446681644707733895572307029175431761129604094077608728513193990121656462964428762046548549853299946900229114379079329404381518401329228322360970849701715401670387481697303623513611818712832841933571156652725943828086861757680499154698191384410697132010403215795413316010697538060749756209591711770223925485281347231269572904408471670624760058157008688966388557567694866340472477700021093442739971279751042720602182522483637348192875800579423578164188410072690693891947082828702502529287115195536948172040956359131805057515018158807208638616145634430717263247198237730731026388330927301524307250988090990114098392306932890535657811362055479482838875215671852677481843474132332144489639446758211147698122856219998026454463713208384912730978508088438280074132366005206705493388268337845149932402274199895623702395233085925460511730821305569223702419551147070971365529504427503062606899973662034636755679872456211210210138167519064623830025639131197155190015106881692150530725613315284994862840685235286442276735338458228240644163599831172791600940306010523681891104037016157430681167554862295992519389685995912253800763139776909567438543580319642959034232819205710398232195645663476883241958996348976460099791617528198108601159342749236873813668101022485896555219850850484341271927883355542244925336700639417283387396348549222868533931827782440068559189613080020950843748684427118988787624624068126255780298217809618276098939187507933226394643585408204499288531154522063201027214417997705017817059715862197312641620269428757540561812907537259247655485007708156720941590276416653990444877278139796712275588612493411380540635305911034894779971348588179148068322004646787610714022193291571240135722148439148955782033429485248481023094623136833049715400940097291149645545917317623071342497848746862625827692066214783244158945459753784394066548780657387160430853882097796308788237730175764742866649131521649663936674094672426657175712117722591194360616451054309259999658646010288943103377416587635953519211099414254339340983769497809606798721210735275637629704683513831745715679284537167510045501427790494469278762433660552643469611354584562395156191884951472277592768101121726501301250267746028262228969421258099263853969555114895400964181580036078144526083116519032661679451629737153889048977661523480729733150957466766806518872505884611003169171871143749727189098042053536535810095892784358191147469261147656565485244163259951332730433222593322006250682678871558387227224119652623452127600329030145530377655810201714374056619968536045070448522445484426554228383818913730825277544940427908168826905484061339019572625778610104267708460361496020192241289519564048386220494138121801527065303264476373261579156006729434485509780914588889726096928056048100824557963754204446112735713168125193754072798947346618997830747971895125483634443441657423317616540257612613994862778549373312874250052623259556052034071376690137887443827636556356445495581847325511533203683354566713216249688342994911532136748941539156223681392331304404509840370954596951578207132140797933409999782863295676882921755682647842032325579444104371834100605654640751606907166051710072527501963886632011315588794469830943576091394306324627333981735828518068137717540895314661814600240298994131239775239674177498655833297012587136181356265422980144089422988001831027213015968927470807430599076869064462245223129567632689323359568323894237722059256682193449871356703600880441590547223627557392904007008663238874731650232668065927965363618368867185703757594179610751360048147257379303968878779061591309536286721162481140022254215904539956912693689033541844903603000018799962849431473749269180312954172985446428404220477257918890636221090921888822673609957468117624744187426254364061347764389045267002342335058551116007478079851151765582259431759236008208385787443289021407062501438360975715172059781582810676127407233514179523527760325022022022539632414567579986125353305829350406193287980184715890160925350914917040225761041893706147558046361921106700005951402709600564447149852735657316750992069991988904929021141273545971135025529605887671626821832147966569820208200402920892877379650068462762348837209519911321745487505120639623735490077168329123861009838720273868999769175804988241376413107903846862295638482655692242835858793289990879925436890461777930522537527396509071213789252060573005952723795887738652240686770487077370622686305961395340079537570221428882290432477391449527393698783099494398604481867805899218023378416645031448031089745585826162288665307569457021915346895476743079665514552166464238239587323494827143257535768665187411622510208995301804190828840257086073708369467891437888693944672462380590259029764890095245487107877680962131233857986811273747789366003246291020944455108436595692085177692694206643521674809038873286472961605245863534687265084785669796615268677932807922190349365668229592455266734546661971873532853628504682088248876912672612104545308869706875071956428900146807654560817245195229316629345698016855811963780118314380673033665469761551829354300674626873021269537660268038905407097882883509804476099850819661318777997873814740915336969583386255008626112665821716432842292495811451050785432837610683944109891671478756676034404820611211601374412901122862728611542110101846551289734219389684008494869960117914349668904439190777338710123372465325920240357092480503738432063440768163207513902414924782112775636536190833765149921887226667476402995286857762916376246390560311512444958427428547405752378955704088922003793916019761651637162250578848169000748508998019722940212090375317631502963596176337338540548550144897003259203947597721361799471045643579043489013437937447299945773143036624328936234779994970068240819078953027350092919492676382903794378521545019825971814799801305151473618843330088183112479411375829289209171572923099098329822699091856906785125897482026375794640803010404982444702147997308311013392662614861243034493217572237482092177374694207540236216644652209445876371301124562884459196573666916919624244089167788065314290722174834413574160360312062287942517536406015739595993399460680163147484384890759872370573547047536911254160242494313909017646765854509224882594802966820957001270771242207756603016562597732003523244749386929822888782464937251042235128878453188936125869358105627690337029910920295077499868894320056651260745406741862952625011164227749405571455260218920240371903771063001033031995361677822882537862847340083590939046835294863405862078670850819029416690664109786685325565662275848226038735249036143477822069508355427423472495988299975997973715057181390703275373526146817887818222940058210814492352063355167601468195984588437734010922365011766509655057299537197535029530599257674132069152380467052481442239305722394108267842376738138522948620642926387266760852198534254542525263091666817921339448317096653963463090536398134785143765063622991873422531497409533435708862760569823209820962216817968966119004599156544191599166811759936123378776065376414014623465680813518604370601471771941968813680748744060194210818526080439133663794035679517886535799583341009861533277410788584916247712828827573373989887018671725352223446357037383707250249084235082856813273068685019746367162831425412229926100816635596408205842846409945652172522908851372888490125807893339109413416886700178059467854502195629767635892027693825664617689968358201836713344476983824595968681340493412929682463440800849213789962405011221267078980704093491668009235180388320957430307633830775228955664256436866030487395280926206316534342923435542205266122594079906246947948380655972489191964639561838440069922962763295852018990145520211430967652763398405805692177574078740558483056741597770368004583130520970520760809798070638568043638225747488479877470784431235567290412556336326878290765265352061897147922911248169216706071406267783083277354918378255838328645101363414725094269590700926893836185141560163872564983164304608669178931131376599429177713100800209224211864195136186168993351903067457840475474363164365273972846739171217503520730602113999752507059616924334633044568996964005549746108466414392348717295633131320289157297538647612967401869303985708550652534774840139559904199660020546626324386870616316631418060465562585926140009931806287705698266036162414260000329623691668150934511063829726250631302265744034699241422639464333374396667724068229021897822838635078656902809630463194748684546019000925784353082167749375907480847159289855718559860968426373368085434064402039328503722013372565091559950296481161382969403902013269148660280030263525524243799788456338573588724737473324986440626656356883180057417577936726919491511343710406681189729388293832152796851852541335049570545680220273733475393334558127710156029242517522715756284219359408189858881752583956085047705537169402500663146010438762941614036893315340186030387324118711729387832295015156577327740223465486080207136560535304774113486743426500096104733216485879842155175209520517655773026681281222199103216879454579367002758451144585075337702319339109819430790796013861220333916580521336581011494117190726536621724684177959354984292954293029289322080032719376391422846497724966370866124401851371167610082223576743512414578335329450948233439069837550225579866515423783110007720530121364836165158257485741319755969100200064633946083053187377632302979211357529219060595535734279389756137728464688499879809860190467261220321694513885375943981970833171528000539662557687986443208324522026698152104974455950175238450620040525516222949605143500259383357835015026571083089187902991489690593106546833293355770530584872056139842513336942252722690154497056566670376429416835378269824641544666517408887419451649368532010895118748559054522648835864283091325977079342428560076230172195928742608425983628316216232805529566422132213498881831282758287544019127475869314777080616680930105136878873812910464051395012805313983978108767745625844103217665870113405254226910157296785577896070663667744957263488313181983243135216215230900042521003630438411664047007103133570978275478015169108025640379942233370458661001987665453111741293413251820840187342540797005066608646882649637936301717508202013877634058609854146131418062387259041008206916486683531554674100986460312192050776809169942486115153518544137819320183305573851814885177101642353526313858294851986887406904322123164738172638025429217892552728915632640124541097474037814522388025434778380200398655769026013845438931841364254960366946201548598640949473752588218352473180546004234577623156209621693958639443512571622082437694536723267922887634295315451805965200799301075326272671855849155124872163426279033214928558305716759039859290514416338759617833274672661411956103112960189405713632202617289920730016475573473344945057645195864581060927321796260463096326307274070841866473787934219080642804916440356617446385346621824932920624351578690809602807305672577539032039143611660447241934865145186484437359338618055176984823121414132625511199855049176036464876193651416359117921685544261954029557659744747252477752545248697522377065067932101474053801608593190082804815356370554105401111235268960358679406300926272079550552669181673442237525964465998173031850090476531338330128999884965290675128122666183279724687480258309430782107257141132791382098054423746056760817316089206361783290294963517893175206973463621711516460819049801509154850960975436257098380020090018705518555260795742618819326632538232703318615926270709926634712222981879175711757604386082500200881858598411235380224111135043311874026675986115573898037796045481983734738887643162196859296007357909570144891815020203990326604235195889559361417827302444643047474641109090122231320497760565557822770462076544998703877463160179750441363129740299376912147353714795122007876490385981187649524748896710288157659719361811455156260862482630625591778383626788652071477533862582773088335368944436178295909143641696961238073181477579201273010044189009085181889838378008946019740448892549266671438196899556231448682055117975736011366754215167725194242412788835001704864509498621916657740654404930454356908352704032645377187405221453041507159496154933786994314891155733686582706112892940638431647596455963985380217441584900523005338545051878248805169427450081160375689105196915054549446848042019108805332973624782049270466073875426507184008577564783997113577858931798458818218256610543847559557339694979711074614390697687708373274939606095220287078411266245197526622279823542751639409047755316031292797450420214379964221197785477586964603882363509609698336840703862123050496452998567121143625545984956275084606713379313861541550432359924651908772901216254123070019014033641685602532356818568911555344781861532405758236450414858532615096854762754009602112529068302516636568610497501435620566718183851643774152641664731782022294930243356820865311133048703304066814457540871652718674442131144337573463554576998723651388760304256713264723999354544712586332930730260213349206716020283991410939905893516572881656040764293295423717485941362135761829969965453293615588464364311322201224893123418562291960586823803282155316204874372297181423881280700526321294964454256820821629691986923471618241541553875344241123071195501116197115534335174321580161499707535897226303450049223430137750857154759741439166486908259178022888168770583726654471799436301435943288596052819721187113020700188870542546855067092468510922331433304023603424709724008109354520356466104053492909491374740969789482981978053896072570585244407036234930734329699365015825978986943281721928369436168365680154087049077830145819362651461728787599923531543283766411092646399166071034500852426034212667359952429750506135150742636742350920586129247637650182308691604467775334177233015172624072594211619832947036305884140858481349421157792062341611268131238777165121140677678825101364567267330317699426673051641596312624028334283594103900602836927682462638860638314797269736126519686880983396959426783721667211855942381566074661262300661396552257459780487991444564334392493243635239588040980621713925432844474037044112471948585664517311156010285265365945213802941074363501279442196111213919737593448598075875816626061940925776818383706677311897013190267792795101841063472437321494952726830963983300003031212677245268712915804793087118058914486567640172898736008853267601123916481881544831692357004061542895500295818725990219261108979043938656355300887943281875181750291990931394821850937522321279750257381280409040343951446042510791372972414744438650131761362150348275782268065633406029611472488757698660410800582262802617410015422666389470223692858918725669211840846079149345261480826978392773669548562185011643535920064251506302599541472730069335350133076388449577106062094538601490050242235315952993338140973629309151427900660857444567158639723762323218742646643160547137166322108313724130401929387622343967157098721099782053107594987173901478473890969646811908104175793574771320040042261645837660288938915270763518925087356858581441344725689255334645075738424049398609135777458275021312146790839842878322910139130121084955191517326915198368149988811465086217374672161266488978709898358412723817243980310364404718094055489169925855862095778753233532861202446866082289468986421699463414071886464397375219763621071442168278791665273737067113363772571001001979189555483498969894862724647835507208524165753258100896125187260741726677174423882878179743530342396157437073529522789357853222007286474653792538159721701063746572558342663346666212878926027846296009377670141558844569330096359216016189915363185302831381788453008673352591394486008609065096780098022054772211489271456778315906107220424645186249029582879345284875109387390733511771342958531808910784575790135515705982637872929491294858927612252660730636922087063822052240147013765404086240229551859101144894630695819215089849681308419609488115062368779900398461388069512373460042575015624735435665348506523149780414134950108040055856361347447757569146436910171536491301584356394635503564846227456405452347860188737331971917537641660893158787328889186767203840367114147655237898218126199483362282899700576303346067044172301584980770938359591565328490702682393796329796745702020120613966372400588323457988994655534363661974550404970011918875027650635905591399367372026560294683297384076267837430317205692237958295920751039157783606779834130442501009454608628767683424202646543518346734502937668233783198320813329261391668815024894871910154591490679169233260983921548016214958630574161557629627022539852510275765198067014336083140219861389440380320068998782794899786466125682231192995079285258264449756430385303268940371771044864917553085573602688893477501607129870224690797218157113869892088360172786723167796487085937932637673171866740683957512123937427319495715594794750848723879490999893711904673364470679648101554251720074544888466237263554098622209785597929900664773715244337282604182045849185821378981460825555713968401382049432912800026584312696860836086572748989539173506771724762521860115170418901492021555720086415402204186689857152786185498728921750050572732083029569569571611470310993358480955481082626436300101818035382447795533127355482501750142149131601784094398843817389814205390794688720290338968172610015152082031385509519205939152679295068132511181043290167970313847284780089081237629038518608633133784076338527796640598031182561285546047511319925266299273918534219586201117912479004037775100058369154178571172645183317258917913110739863596779667542790135429777040770887995692965637884729099234801597612214210553112028168201025330769645258738175295336623269671605761970511750503533331812898261013263728562030679289469986289980646861171111780863874064293960491927237400224538709724849270113781274960314774761508878559626296672504895793857011732541387178308431317379172199313877861623502055075099930927567702957957060638539457755039160602655109784044198384976909390807319073876997802868858264216969642673033929415145253339499206124742341437227001127768398709636778146802604468446470870457011654302867295221301712284731178828244920892165686769359278876230009067742948549094801926155705074898754501886668425010458332543162109850133550587240414792894295034505745993352214057380512556035804885921410644386404099325508046087741188246280341150566755723591366538553424325486399638655669448298728587101907118166762319540861771123902723567273400647294600205194219854714093076996086377197103930907739323467227615307295896316502838285026878851866300734700265575678890430230111188916872148613670487211700939776739541974269251772606509741419675976582836394502206661086900524510054851403293263563428127822826755251942628110356669588903590488190453740712922041304410958816212803737318646021175375456991650577785752082665961249827357541026272518634302305745412090892121875642402071669290937172780253748097108761681332140620676045360611082527876137227494720943667767447551790148652608640812208031871312986350832577949645545978999986126308863332208807763282580194669241327022278070330671053191819676669922318852511644069359332495592075697654951822330633852840084818266923020062659664479622838286184778297877045943212171876347940576349574879068444176105602465850884696608249591126346249177430823638957862900714733781433006117452378289993776143185972131436566699853291686326864630639653880311302588957419074949403481505231161337301301112215088395488400688745517967087100489630581178477513261631932516789358621868664564748771208322619899835379302169246564123436228085142391796799152329326843799178272183467978094680094659320014957093618350591686437885836360102577691529876701868819446040500453867592014325955584588478056245864056704355949524219314861326698088022293244690784664232809257068020847867746265947696138173064944553035255916088483051384439280085229020026419281683699607679380363855356462853874595191744139554575883502369494648895381300386073070396908812862256018900524462734075483526155233886240779831803526154386778518200496611455167696492621126138271754882750940601100306251706338996874451670486000399550651289106845809421361261932668000997662279051580865311997951257104550430271782711034930473993612334025695260961371499653180063202365230054817316540412969001747377792760587517181344724888111298614737202242979229543285830451290704380761402843534127451081066348235414523731337144982333244682005635872436643302545274895817028097977993277027169186198724775488332574278994495218043888634589295351101093449768132437196500927317595656855885601731881140767956332217659336527043220705675311850121067503464364429309356587581560503590196990274227933484394529795028661830015287804761816523522270720189376368635182305414233754878652757616085332590711659142103186550996035477752885968298266384381769409115609650259350878110394642702803400099225256878636876488841182660442857734000455812238329873522242902107083666390536259462049581116346798606088976674003394700422288722353305256889026597163929336215249244028139231047523740020945821965763185081882563501193033544306097172429593748514959341271876460741710059761087399390557971362250816598978351095645349295670596849361444222833283640728344533872957572353312418809598061070195340880939430933799525465470994346320648604897076473458705330346309784772125013682878633965049090148895191060794530459371899544230720985774716403017297322457902670626168567992215437220658633925819290728204411904211106582661791403789139958327088043858388289227492790654706633956248385927672086670521107004881854671048504507901038317052228952328610444340508942784079062586757477971645832537070337745072320140148962172248136862603535782825423098717153895861060964716483616502651528939046096788970713496321308355856165342232928335940640711817594534952984823532153084367950132923151400891607652147472602475539660298009712648434408206452351428884097822155798748863076830434624256403910602430448576289661831010975132774610400523859289854416472661955227299233492387232478800933883470472318253049134350993285810980525943132674075425109674399620403791939773771351798453787861755644034935093938633731108482760380357736607307077372627068143983988355532458689772246390145560305096108754537693693907417489183254685934266403004897935561122195666618258155452348795671167762600831375641783746982417129916255353675847966896095958611998040087633317965060647553193874364377355243172548943930753811937879039241821824142107758231056226417075195561327105571241998997526257937671605019225979693656309466800478025571128435864952408107350339668267251478536347361401409007156887535164901225426061970709689143367821604141751300743594655747343391457039174539474590573905876816365229818787580847612221918208985784294098065312777116286955079662680794916887688657968690529701653154894256544795452951997326712418326982017754054472172351119905774580856808659224378931690026506772248102581255004410421979943811925427939356798231824900489244850366068459867254029360837107857152689777589333357091212718169476056357050125313321861933743031199449864129142871199456215522829811234557437657918878707504306913545216778982533696974227624101782028539490105588606981817169848524081777614049395486096953006418923743285511550538104040584488251756424962107127766411171935220172205192882833278346147807907488865118645844241554676313167766821594983902923628940670426674335494381343734804249100704094563627854929969863538544226274419532583842170399632723589385706626479725531941551970821562302862476691503536648191828296845885419978606238806853270322000494587607572179836584728202980300555484605201117131165290769317071032782298980367132407575815135717443749452573530933951105614155569127589044558657698677890823756801812473733472797792548121335700032881870394917832040171958776571257961148071718532906140042073312107255128971073079638643281286858241471535880953404461911113174000607582712856268555659354027439633273196714629289748642068012940966915462604987879253327885351812151166107407619542377214043145540002278833813502801240691175729267257978987370656325745972360896662828907699420601263148771302416931322746708481856308350577922421883935217101175821405076438356366137326254747572493030688450469294688686113020162995413263728090420897526413687724768059214396404552641597188131626031597555662593400611556224032354984462738069919576484148657572181152509942053863158232020020550505629107518488150581978708276435371439250118934820377168999199930880267773185149865701507670572120572807354422705595699944962673288198629171138398153673393102021478166399782274610987185632977880153015345739446687799997909697269263048959794279592360766105199952534105578962770807487078928197113797408939816901024210898061286670825449216966101922045239646045428493423587776077224054678249882841064629082556795485803043299202712968676872371963313237005914137639045088539951101012531159849664233879864537172902118458211861191797525620743113004094712965595551582729181592092552007583661512314603793403975293165793199713639030192837230897975345173177100156751323553493328643826891426206375629771693952191673214380537011151565412412344059061396851819195475765179890562352252381340315517109974911813634578445902337488184033446672822891101256254605314995001833647493587966681843988232322709757577135625524789680847426937451634951717821183735170078589091461777396088542873855269281009386044297533235427076324078324968400114279786731271992414455557182402288797284601806486001467438857902916009369489203048419123955166340407584400645371641992856540638101003046118885227647902476323881066495541831732925217315807192626674713476351011871284356057497806932575154998042516791911274923826974502593195128696911502692054217635452608276256857283012256970850324924645858573166447848184320639511561547982435365922616242482885685775682921631431549356223050765646887838156878052622444751814178864155985363286573562865205947705374767117636401454828708854030437750404426191047119495007907008628423139625043313101092307104681785643164126194006449689768952594192648505604814930121485472562532837516094236736072161839721030786160730045091422130662881402718896485009758459253456115895126275903699484947413766790279085169923767218176271350205856686221347955979188173057865077541480373335794625885067099796144786705464148840229805100242299428808517950330312599705471386890758517786082205695655029832307513224586820436075161483487084247267060519316581834191737192974071321335997330823886984850642763030738964380674842598785943386509527812581018459459961021869046991208863712093972558024496380188947988266923406010896741704286599769937293571033587348042002061674400522569278733101402857112101662022126911034567632208999154014693403652956678538182763151350505577845917492785686904030779461436014035995423586897775211981324005569205079685080816509980578641405311833436531928101001280469697979058365655165220971431483706749468237907702089989771355396276049222984148454201507101140508176044828654846482503971607035624748678933970256453547590773609642237146526602819182542596716031498046162573658292268454049116388810563799476244427936760142951253961887166643496495588079373892359868533716723403032013238530099244205987603257115246950728032854835767163307515091480724676007267252705237304899131179816158392186885033427256040080434131276341557043321537041882805435007673513253826304050782336699554605918293856612304222975603518149181825131243445354404431594060838098829089787149316932595408580269403025032319995072455153336046307034412865084494181562604327275037940637725914675428921870017612328532804398144743643849108550310836612507918807457377915862671758040365079084837302441761792562965353907041503512046711590155924969983563268847452540666517715798023405781263491515972488756891696412518522835886591389760159704144656142978359117877949015199437565232854448578201314497031413788324684992555017053114765195966886891927501015095496528507114178803064035103823106333009739229861527818037335637116367154063712348371851599459249197727502251018878992302024948833146485720327522290213658460191218351252180957963768619197210260107462956385247441392480377473009197609293293437649367420055051251160179796935011135392247896561627241832208723920700133236715736516158761463179112801396770819185427162181582407833348984814411347088278570686597412417024289009546858841652236843314679357466223563025834078819967068971881426275230608759610375583615934167590517353628215727830591782460919395580867620723813738739216494620175184401169223776803624331020595599263257866563678126214918119139849961283158278641674360409693384405563767764519364066905305657888798112087069982847546036267698612103264886077558875675947470122111378815122872934179813158327625364771762013608640348474482797957445916159768312618307741929819022504164456236852247277760815831704407607007273700340646375268106946939403571169488012302538786615504002476445767444818326811643493883653960150756197244012556028063190049192540983403820775971792750000250919859393178747036868241503675359322367179192439350121710390466603266349362704454551039896187616506505615193989372631039350441153464743686110364603732988533468974662789782222712293909600227552626577087247133086021304959198994523758875360519963414668341745404173523365975435657881440573457238130931251733654465462547612604747947562959386312723541325680552737005937967588786229706900742926623000098601191236253346423492898359215638758997580252888376648604185181619146956434966296886991836810254889868407423406801796427470018075976685461651221933606806906631458439136400888108018525771248222539999490374954956929288465868829186983719269485518202953680599371791633024422691719432047185626320433104746061856703180883904779409006451882977581929284540721578145584428479299908473527603093288161737494028027286688492274691223751880266897081520968568429802056868366746755459288927857221823320475070640416337896302891520506523339164977104558093492840468797147434511258680886700613407125452854463964088356538020837169217906044063424873296597482903495401615048954983954492303333178059931292328115275257323595604963921392810548065491860035379762141215569473450026293547599533154619928944542905554588576596829832307770195135610161523098362242166856515410130715877676884285928018305290231836419380367408441822355045751184161460653764525013638528648135020206412757393889927324453950003793275226604236346659191513839287713096433892663950075486979584437225625521840794271770944255232132897324562946314476704361466442739882002198980307995705070659190020622169014639438573903364174248733851591754475234355112339218267785316140233323630841283329996003848690552299556422170427158895060405643505336259583099199341828719645917219200154144977014309747382126602573852456277939415354602300924260570292987090475369511985514148806113045525298775541354714478994512980350709909771333016752604327310577321896915672467489962257990397598054095225465099929719949844074462373680962756321233422062826870736108436222339654579092999960089377314486061629239356116912728312935379007341314939911325097788569784048116521771612863499777760684219286759691368395560271445765477451801997647551930794352769156255014420807773495845356578824680628098341764493834762388111523539786882662897026887723226022442473634689997805542645755202164631103977573288157182049836452815946262829895763293654701749199325544384442818014659578272887060628787950579316868598289206648808958918275031194125307736921921499993518805712201325048986111167821954686486518420635073355064615112096559298734348557318565407344463754096398749879222731350468423979617029966002589127345144033453213257881078781704776545388061987378617288771293470536849116641985124066164915064869668062292971240950668892525651356107333501123720544501994435127771768038392072820830666438981071514983733152280579980587276203567389040336240697393345311072822280743819866739748587097006516438451749168065712093442239188022376564126044832552389828954768520781963863332581396439183740316721146673005319496813585573712385812896692255427987178439368888397200612825014386050788084313360099608329748419099151507619162921434949508825310564333753652576219275389672246364039108024805825376428925975995155614335380494457196010080715255323933409805195974738269729713113865878227583210362615085355379520646884815672607034942755725243421605746657546753183793018873632474408553252931771952548028004844806502103798140691672004472795532828275927274990283329043524546357485658760124849809942042900565589009014834801521038247020127139544929590252208884334609967555153498973560533209553953519344046537314584616320655511407420255131108576819259609559452237169891656418131619518672589633805822133436107233093071591064715892710125375007345865677095942962261245977051886067693580698703826118884556225698277629932994584381266678508912406674134506048039073047416606879681815322412806109666611059943837065255079308109320426200598621092707551769394403476730382218940057115147823344193231775326303742222689803264101390874698785702413794600221860824488700499739335840525054741964219170697359229847258443859980705366876103662408607743227782238504794415002082716800077396667315604092608484024540030763661353433052660874037612891858830742082823839798275482238635484589790206971466688524006718638104952114881693217442911278477375695662915825690995704130243037539546188219447763426623128774752082529334664232138551667127175731743212820346527750876818128966102547956062157223173190166906866105996790477255436066799158986539782628083506365486318061446446274403484960098141156730228715012677951766364618219797419231544680327867794214001183980816315785450697175699836214127054268185667140834039882704250160814722364300900139337078243611526239809432254409654672850369642134478172454518606848286170356327645015841301847780678416071968339146705386935963336407318728069267557810802982512637178132906984190001379914412051946673633614221084921173339718931717279684817897379481656696584815618768994214882032240505243915365698721217619124675971910204406300244189153289783822804992026421260991579005652787288562856114473657203206217637276073757481735500508077136358362454020073303559019656212349840410207105106826723945361641593073452146183608838513390527515626065862649508572848085095140499744300440560135444040001465187452495109886122622133924975410303563954369440568427220405020891149380846937336837440166345411228053635333058679982972340727786211369142425991939858637494300586978954218407647997203053280122743417148843457163259015054616004436607347576660104221629572887214620330350506610240316933898324592257762968673111013555657274589062118482535420052625072403556761577307379875163743661707878651586041582400602789072634985632476302913393278917461191249239706946996418296556002868216195669200705503044504137572760179050702553174887972637405263504525050877605959454363114301883981867737787875575723257214426343303423053603522747662172898925292104292825202600853419297574631692047717977357012937563505754926492611551846243871886188713213798704336902108384157760012845232145342607198118267206932436418809779511731171106099421172909238515664319969973056259193837269970169181151714528513695603966104210200259017097061407563934163080133064551531075759211219127301161874087769932926508086058052101659691596948823221943197384314659396321607428741238034256732592092611126587890972317963025434557111005268398524646006175748799294986373530671251483252355895411239691555417455275712894660760677294930664125546993164910570943475298809834889845454508667589962178250437681752775848189737866791997622746530438434407356609497804432307539848743963878733808159966965997641209812194133665670513858113861173624541765678107974458651892692178717891477639481890543492715522831117101454697364438483831225250887441672762397728993678081335865950405198253653243051751629934407762726748969329660279483199704108496722108712599729006976613331800500328732819245835149465618423313918626414253572093868431192718651282750510245197448275487091631679819673595688747940230567955891834028348012407332517143187154383795888824401871533642831119889480704053146064720026122552372955884637345097268598501685638391944876120178570970386778840992339238823218100383871787139369633471697166557126188829208410807844816424136198386899101427314844335490664548674276887618379702466733996349872929791380072662544628818740631504952144164830820967609286397228331607961766080870928265859769170535284633583563050699406582338893574416066471398047957215982133761028201929723123078562473651349170162041537843953272858569116483413646942893322810507671029784608236443023974861911422534937874331695487889732097498276988035349645783980999686291885558672076178843270344318673700428171046506021935890550772063808523515235190338598148991982672388596168284301402013414289189810351679403454768530034861771264312587462223758279713054145655767841462207423581971083590339529752854146913329789882595990836581910757954911334595098830616730040808529020296757197027072041295548197686657774179217860726500502002839354693386263439666951282565625679748458500843264487418364411415153417559826934335843046645238875936017961138626844258104969804989111107414596006828617657339310256249356062349671849464607720883931513389312164738922198285028538338881818463157118187200898592985732879285502879390682048735166756430902641584864608574663045885792853660710110828869485938271788336959963664796619915253609626123669578257267616440859187219677244345384167195431500124861265669876753993670032744244022329163791026244630219290795520892378133427093451636286330167009781127353996201827923571961681324718503925960563323289649828199217390884183974608194885830034060076743836755541701031448260725074949488703706516716047278996035140918741907501468326152952551552575409504020892952828655664585499952079703327397913314444817358321093097874267799100082344429931505778591029120585749475344034394880919872480829484445626897446165832276811435806560534152801868364913388118732174896883667265323446761183792909142400282056088968133546771804641272941291447709422481549193744585665187014207584727622900666001446564007240075440613201929035911818383914637220335277156958501097607409706605882817348585991951250351533238953929010396207534130623075489447106073738360819215830135309160236521784523502718201229935200332558867146189687515227984247643927312368336011595153127827790053423464366021613112783166505276374271306340250857353567929456864284710084263838205266846527757945786040506351358022274315853720676344385998275317197362418602007226055113587197993715469143727290356887094450021619085068321354378774252050595684373568551255181055428915244930845910941616668463680520479280923125423471279646205420812721887915136812668500261187431335064433626104740782568573841217536772014861002252628942030348183184702280175816496742691536273158789410103231772932959880269560169950644973178415365508739876632446695776924487271730390823865701581023786645994066773681648224452448093464640543817461252542190586163952013137890776221028923429743622878276873505257261531559330151449120254295563879103771516818082784392577976531850369730509338218537920866662445363110606864646892535014077173232418498527741144445108027590956663896556148994583536540904558161701965464543239487378559338000177681870853549773717911558129613307420465498996254282940479915513068725340908458831279637391554346593929695861609744589127903140612981390043536639082908650628155965452386455831482156562594954625145167956310556252659974910941960007927689037803120620378367305511015514610009716968403053517400994265037820089907898989229195868812216223834726254776272340580966385078635780151169381798764287023579575696771772556437884651894704464477218459230328266087368712629622167208169473441554627980510326288823337766537149005345409785218145080167071961179354191854120956143429217688418374965604547658911429320126736601814659243424742004394496054409807326819232565014192728323575307404045139478719163673430797742944728614353872890192637185433609666259005057397350632529982793877032947576706078774014630773782862308347538040924677490263495826026952300376072828027680015195432107201298086923137199446082057554977774242435226310085516523660612485376318242332078911872058759553522510087694762014414420955189675068837064851483658665602295874497301366791318996536230836738242898113924431846973427431980638571733703760199547402799171895884250798919742216697892170214356813600872800265488333813852697885296155082854568792535151447637681451580395250263079632423515512232088164091373647190965554433196481261011040686471626908976989029074399574889663490305490443298780148726571646440663032178570294977033312662540170171115417385928897905398495739101300048119372251493123883601000171983780233585933331805044191023402762625263293295410095348413546025638299612384251568076014555108998422571910129641854575165145249932581469096865011780556837097566999921424002619529304584521049193365594062610328564987555263922083063170147190892903601885799954773914896519885846849559266800758502179696556174916930216046018815903170539016113815304274842084355263162387154643800178318454757938288349026776187653525503692914339114712606973084528540002240902496270865601793060377524615218197716744353532624973400000713721610625433281875798860658493675797195691550037029966217547135336298263410348124363410639172391408093251043340747008674642675861873554164081089748053779447461320765558675801364165002537127361989560795602516755545073171922248693854158189296081720754093101490724333894508957586901208912497436823685222631748904190718455442240457933166516822777119794091826652944609455096208068943368516265613289263320387941669489462408419374088432412241700112780302650720568714223142719613064530195539289350703669278427066813568108104386854365997129579315395007439689306154282688195427385096156989864654786946770949619588361345062048602100346660227232725305620066417059086509891052517612916538069311026344011309923414191547715941801696315527194190253327443202311496249593800660738981413222200396674064572108890114827498996671186873898663722797913423997994827949320507190094654127234104735615752283114891989319489634308688362869663584790610566074503843788588262424824714057235794512062440566381382713652725156103096229566347053760361557056972527909040990836474877686841284993916757215354602645847913784626463942411127793855459694294479102933689311784704925014122031807234783742419629139874575866776190128448598889465775266802646014523858963759526173074096151178330816768646454511236699868054909094107410059919742505063224454311606354290611769898645102929178408865044030727377689336437621639470606622726849063874362852600281369087979253626403303389206605967567918100501225482840120092864063337544374605190840099548394802404243741438373933723316199976157097536751607168649283864573611114048212485812382748294724593828927524444916695862534885470722353210705481427376832227436594315952276805139457243082185907237038070377924090258524408710195264970809376093380698624383318525447056463525212406580987520290530853430268514551658521875568078325343342629179820425253444107400302942476962022660787950885937204153427163600942042649760841891620094776823883499109801912695332094662500870719197597656834340424696372346709746170673107291369549185563447612637861124195605257303217854822345048805370971299124418201966688427074480212676155835421788047988818448274458550554678085523961988227959651595144512221562940022715414022084942001381897144419666021733727497730469900949152395010340369904293101604896428044445531308326488915452219799061199518793803282602073554918053057586971649873875436528149072998772450806677402072949547550215929628730192181468925316903718923482158124659871165861560839087377857221534328960557126088609431713983505850674950655972762922587669406287217270061357098656307881217695583847859993601335260638236573888109387223731402664048647347151900808301073195024365441518644978247978536709810677186737967818783032595838198824088714953558492348521759538050794776762331567263433484806025029485222271612881266923273401972406109174232324517476567361454846153433619353813857641487609746153247234178165031498045509153312822565896421889557146550041951797479569064368612694234417121471657018596340467557323277502825055881144405116423633142106519420981056040227521512635445443728906394067184087401525340304389255610685547437889173277165181369301068937253195828849830587789110597673660038537218983678158778333845869465814202141955148049003711300882703966247161001968661945490801672210775186050816235584460809067617070450953688314623252763120720785650965643686178848128153764368065453616684635964553408296983581573937530005321573485981423128086187441624222280193151577707574586944840913554156089534267142439785975620293129957658171853653833620677898147649013979985534660598748135300621276418577358730508786163992478896689020440667566056634302305430549664691203611684645910632785537001973395525572306079481631583090465203029847418151261591742542878032818532949772067210375297223787388438535003503682359224560631144434383372741671112600993516370617457333454356703807442061074560575401091640843707290866471665745294402004211184972558843157983384473913710726323042136661336510937313360016774181856087612932117515146947954730542020749009300459746413825328283529393655381825840662076479718102986930930928563950254940157710712721539654408646108230238794660784537528202457041452999939704574907772633761102940543722873407077362400879527631322334294227572049088332392026676890703870338239500764844015372472519065661500744012520571572559263256728024544335118587364389189175234977056986361047477266730388080756583838776041179001696184481823614491179875966079769657279313653173297735873796468300228619563441320689044543465442358387251952283280005057977104818846068458880815756320354908272282639741791512309331499730265749304963641171165442683739037152781344337992689077165106687215579446249096037061574867608781687547172938905459137105152314805466851937433758651450423219164047641815169680643664744741875210015161433937629118435479738965906576606151830217647816268064145342373669992371478823115865335929612972571092510336553930625088245650701440022716168812526518265202683197894661938217205968847079902491002606090309864979376811098145015028668776213134500314322068340725197988619791455936366039495302666580481687226503433229530225822884314508228429891502931290355525303554173844361139775511379595763158331005381199654088894752797105512369123918099922416846057271554808367607679580182793350923069499920606270408518198759690603716862951126878349173004077334265720793462325433614565844414425655195102143808986618700613694191575829945308391504229700416356830461189395611614205273174415758782913341165484272756587994473176932606705866393672253469088937983854004596523109365779415972159556154830695125946732073451163038184333499340931569237761625946635994144616072756635811279367381271399430893112297408139659051339653551888734463801696893369664624507456656254195910358199034838532178759467621735957580925506352695584410110930240367249620686467312308668582577046868556139739127337236424248536090727199426092797836484107198058141646040366210842742591060414701766301168081958393110544826554893223693213418090484274692272972786853321445288493231188505160548131733320478597367882238311048892370902436899039074308397719661676707271810636719062143916191785698134058472618985765724117733524415576493093506385863060944595457631019096460384109843137240672716526814568745299246995532801302468559731544862632925532656286073952646924579875525193824101985933764324385398206950785652331996726177033835804075435668320158456329263269460987325436240012659291574528876701604776195289027300824965031764597484866839017593762741840221893632494935423299599881081339747402059772539835223820196264641038196150801507323440662736801199389383930411210508517057590972706987918365165153576524182991600001744231346428700292702740223098415392140160507696895633400419827689304063625372617170563282326696353983693947402457692257930807626542093527409667294338385987628223782320279490053829562139380364122270308623405974851089862807423107825912846120802723178116654113721802160569791385961195388962176707296240813405074865264498033075361799508767927702204100444581648078623002120934531363308545886083037277165185230352457421964497345980679360346177441418856024014659446701328985478858134288807987294944259980014600062028586714909700530266984904069003018619135100571915787370848264238547368746697247766937343644641091410092426212216264443892895207008777245103789546114538191161444147790885856714756178852838700978385706051100411797101293150253918611952863494433166209921345432680198333836692904633226338961430664067356772038117031031780874449977209650727036310854262957773249613783522445168649553904998470393086929427754597252325349793271887575869070440198361980293518534474386521450931631107998874538882810018732486689156598417450846755103293650856872491908875498565022987981523483997817330636878427700895926983099144393343002210009631535662969446590694133659180694697706229036382487956765872423351217450680979035736592397887546147518186599931078842916795860443356479626887561214246246990087772053192574731638679745650415688581435011970523974904999598311083944783407016716584193560735912308440873089431062985648259322707665926483266146901250308676942438620086342528518653943495378837678852479499167957987456587195109300820087132643355078001610553463207487594160462477856447972301194986342529677469865480017353523997359736302228282700628973000752960947269616233927189021224969708934684083556116391589191829162278988153632820524518959640439431090314068659485157859560853880364808212374573020830505844527713353971886347595032146329261048683639713663424701575087583380171934824976465936531206790854485494977372649341841242618900307022108055230965731928472523802924497192047121791805446231404804985539285817339945150034643601231514806869722624153727422982727172229807629664483040864070110755037402290291810453916018023284095500957137604697656988400271373567901021480011318448559361963088865641385597889303123865180472765531790089848872160998317951504564096333763376061782656589654455749299169726782860408348005185902039614577677305039340740397679630145619176547044938240092699660595192137146545602089457614676642308248376990285174345736806764426784606713624555582546284053637192225253984929118564477794945059418284621487415951029191421844505113699333110377885144112644163734399320727414467928808119778498813653926600929806193435088035223276191454954475454779725553497547113894665162338185037560468142198196065232482976137466970075550598472219417032885216798261345215952530054004204644476178143455304647941714963123302935734933531916863500911138279289806454526907622336157200447819273992262597869052240032830763741690101375537111884273748709225480518414608145698251394180801004727543422341397442191898386434205219068439140700719706577018656075480690830435700824484123687916909690330452646247353263283138202785575428828341815687030471040858154963400063610674722049912496366763052468111454606700248312077477423933665900265027617023416978535076826698875128394591928596167021736125806864379647274750008174579906522934522350621749563200011322261824236622375729913651245500559912897750622384123522123752107585496025023424577223943431977793645806210658864867818634087714366008785104899303111123844454293393108793930193936413960897989384432448784029050867740183281006623294811175857423570012260709828598665175101031678021123881477931052408207878555954979170692270209893723238985488740366898295907622560171304670480444008359719130850325955312989390412526598795505712376307328138465515906940051550153503289791706117735624189313783011216533730991690212010763381939856910253448393413260747175137908017758378663329686214671396550865794472611864654839612143087590680901404412064270562239862989179102424332215715444871070466350368199767604488882813111999969808442722898647588977932617728419939982894877198394638714043325111228692548232308008266543936741622738039933211855107462579174560368013659660818555919869646557334828099637527264102294119864168784723930575757411044349328699909055671112218311248025236666825219232603753230830600527992031615275248325026270986582178971996117917446154081506111749881799145799094348201573562565201616325685084758031238442552902204829254511966007379476826925403595981933942317891798506189782785452691548544519237399496517377254155991883401972208166553140590546606339386371378374206863326906097257683726135017332628209650139061060897587160712065138645996195017790202716200386475992237503112650648874356951251197567003907027205386069532514753235601920350304415943611837557804723988532947714164727733704077732495290748354962420164253856979045127772629118167201676369041998225333823742683054845577890909403704035663955761642600266096623570425876176934524985869067597705169851668119473507625414185703015310816945373129004493999947235447594820278137756771580921459665368006451640289360747143140442562101347296517450861984358410303837559353640213861680425147482499608354273604619330126354673288923506915142021941966619800904584444039767455207139301161723279380529834810675062308631736063987085948807919193727854277368469915529806883532636115592000484297361468097192424178243677321364044006002662997850599462933446271285268043526225704312409767495104562621497297175090798262980810858855422860494263741490494951739183194157029169230681999323963961910428028895042291316643276305459062643193868079278266255730132985180314607559965507191857895911289747902689860491743165234421763259010273795866747329896733521686813076267478456481007217507817250812580889354111329706816980737655831453426248314463589736464514555705543947016513802401777897376279799294264571419801886640616240348220607032166750804890016187583487232488752793962230067507699346193249694157207174958068142763761401743417168090559509255655091605271482739798451832675743270890233758855076121030796565547083780250816400895332022343460286804651452491109665635052544621732192770188711681794628469568664093726078035358306035715927905165307135883727898779220571876810446809492887700216605676237105868149476196476198659924234639523625443281305844381408623095154459998693817312153401657384223902588514234126569579493529746107517444872085082772835982598055683707843891281882207826218493113207941178390819466049729578760374718717919290916147938179082298580725482604357559328882958974056815562564322605345182046121363448382834673830910930304730936238447667002481294372879245239852145262359854669018790135702047056352587020179590400075515717778701811810981536795751850541850472676250822862492680886103820145171065514129333606525304057581101797966746328792111776318365028419849984539423548849992808158616867329711738021078467224415126670054804798126867766721735749141678343499399973622596981828444454005296621525362951084434118200198651349197647431355461725075307797304138333380689167696647173122744228252586579605837790587646161070868529290470729468619297142861523815249420814034768444193307670707396893879344138923911563866753557236155867673422365519883488675763805446496271481221876658056458330725559330194338728394897503874316004138010013888707014450204857707518001220565466893852476919497805920366939871179155391230673035994340617219147577120067662359689797522028788839011855729913423845235204678824188531175857824958394385902447831342662743766241437254360661522457872497307736180118296271568626706676052544815833202313183469978333091464640322247451452727029693410486389757629397329893256855411451842381777269575227412296814789824424044886364092251682939762535888986967956194740559608673989781109778691946992358175365053705702525416836944851940538895226627610374322603874710255026175800633732189786841243338962021432141351800690064460505623543797138060983384536047860889833421079562106325477212424519923248386464024517317615330813822007836369270179246085362754185732695708548952261014028547063948342229091182887903957514863655201689978920697661299460984168328575095965392306858573545952277078082465159623243727113288271444898261313766031823868904489242572375727722383406469107950046624637680386057572017109442251703554722037400380537130926950285026411161237767226752143767767146111838557243440994534303907757241897584568562240623462516218811807221240313871684964524924922343333383477776801598904864492300385105053830368339030326338011198889366298524482892468889257041539632897509016324058836235483506284116234202810899376242654591588811296981497514779538991680175462245419713878912548098527913004252512737571594050602296355578463784073877893076924051210075541613793645583132326575052527215490855028358426040463365779773627803116725943891273217847303941745761580126918324302460085564674813198746931694673211583662664211173110620189477785265761167689688381408294961036652924848198264452438817357922619962668107405964533232424927770948027287477412874700921821258323498977267317907558448668884126057105870937448633342409837505093414171672931892043835651329437168629559768802495786715623146922435559002131986635133642732937173159734790537281423900759803423995241225004816601279095527800399308238040095564806797630656123341430379546834702812295461361015071020261534582060808678493817159897175015921775852352713124289918449347283707843350108229466016713366254274843665958907145537164723133066495263799266944576869045101280865239832164811109366556616790146225469786544337566148245053893271668342877890172949239284106127359199421530520207414973847872492513985340682622516058556062436420244979650115393068711008770232954049006135971239993240995951639150482484377452824598926777151587116059194596853428753467421439659084956395493806280316393395749348475276345759498177963765964775594929645583424725881845664941856090897823422967493375735254508638584257147698326558707463030367386536199911089019985795844498553068652197436830389583461553427920432231477794493543174777437209513427803991378160766883528205791170571700575918503360706176907933420660949723532163980907818945300965711795881472431947894066771648342615361743791797646272532469057175449004986070687060087119780767670483985009222758740708889006749607366871766098763213340398765425113271259979769792844463742093202486392599068884105140250871438555213677468198332295246155732324305792257478652250929649925674213189994097354814676607819326038910209055545054109576657221683258776333403623888761700072628554442117652246170592215892159973818988173700621025222398409411309039143128072144526123484784424580122290186042327604920555830989767064652931950438427044031733450723309871060243594589003678318553317125609528905083697181553399129588427126833866884291858357420343568398991907618763353482176317058871983028797595470577965914162556868658495622178638994474169035335621670199607183449757533899953781558347708489470755924129805558866120220834691897997978412491386676576929025846118886207082608237793774120036959420387050850359936720459647250154501936299185430806607606886014326871889222860035711729906092032473227529333634720839238395993105732369494120658480882768720391174258583742270283540240058202720423672082002318224636249493036931968660447922065095632946915814010862027421987677603390419019288801187586013726454698610446066723100079871300289410603338407777317355475840284326296646342203648955129558142663144484569331545822100389323218313765204725439366718524840094278591034458411362869868624860357764912422151977200625441189114373680760918186478714836920081820974772662547445050647635886248387301584840935863859549766271055053861187531091305268803787606210618379067658775791009781176292397640811901595632769958320006977717220725952666891567827531066365837781829644480097545202492680147626557479637428262885496858363934792647491279938522874872288199493989784688443282240771376253832903135769450970892172580893262239640454821523366814873796608118153321430889076543613955774153085157133461127462854370984300777078304993865516341756681819873859479458051365759514498468043688551565780496706144429895948863415801689391546021554064022798897629437617386215613830868690816581161875975850278554886176745509519545406953151638623322439141630764998021176694132704246724212481132451421587262038687146368244716144898029748502246924604241125764319552140055230369637633990876241116292289045987456176382387033517527990752491853446686748245365828067347136521346627025874286025640415781704384827141403510229139929682815488721370756706205703800574567023334666560547239167132049874431355083532640534303891023152771695581985293614819892119947289248552066562600723524038937324740460998824914774401121706304738607190297365700433965280458025036718466877805440358228510499450624660933054087566175597059748169282036684795805307041612032678833721030771091553784073770560822007249137308567057303691761950200335938492062968605373580332015270495536556681510506616357029927763403734978578356628735630553262808318369600988368000229882389533010848625572921793955080658561257216264863799714908479635823595913439610533575929375349910892926027379095776385958337044135979726545490835154609938134464013899460934159732287050225580136673397545117760213764750058783980249022665371476494828960782864694439898760445883058833412579061812158636663269144026412894221934387013212991650205723716932795499120155007820787421407098951371553569300245509052811126209122178079209191499296010239346823904823379731475337543435940959449212079767241232483717700466698831337065845250634979410894694858549845243108320255910622037174163996223563320828448178515696705616490735437442352035674264198823137218474000965493023091926115713388393088279910924771039289658227589867789820598660919506247496285655718866973963219557973760686076715362881240444936443080056726106551064168103412890961966466430900164365833832688755314423247314551604353061174674357565543559142090307701809014132636420160642917535391681968955177016080668061012815628901757299714164493472151947308319668452459275232916884833401622441759851105907290867316687895406549051062574163103340448519955961564636386982531842216377106963512418650838822523785795841895101564106719153504603331739446270829665291665485995772788777657105854950057820943734374145102909161945023431110751067472677330733728169852995493725468480945877357607086881595071167859565712099771206881704458273775812432260239836809111456809878540267485192042265272269948504265544760610866107172435602520894114512111718630224556962346129650305169276087575541123256243697435830091959784759086356994790641671744899174584566404589693816134511750915743570869729527222086782235797578788815876880571717701754291745461899716437696489418324976362691831274635689011549188672331325206534332776448182583515933683639724282759644067194589858075377621812657087018454080220610925597814924694602603648382117626859238303224787634559099941695867798260390079555468725954080937401164037886809993944924914884916714437115796698615683125936085144792993567957316779919681281316654678826167804180117677689031972869702582273588319557361919441956594762564545324484229045943734899346211289635283021034126438931243844948522004148621830363246367782606951853036914555821150257878843309231405006140047624677545764080496447669334302175325604222571433166280479085298508971740118803391504584954723430850263025489025388989955913706950443220790301983936291104653038027756102659204885861725080826045197512970496973079852883776886264170395089736637571571791781688312353877369863501333343410871763575261578115886021590162375481226226451783785548804286780049386305634546247286906518079078711287161936923007339258415261163711517834197442716715783297890960140359417300989531047813100767387248729769232819313143724630893562491339241060581586477343959808988450372934572033578785064281289309768275539328508080687008864140738373588941589061924271931720195136837015003149539204835270982498700092018874596667583263509236166291728633104086676707856517263653414874669450732484576918495161011377235646386122277014493802525961436463812432834870796519585960536923478566796836542620255167296476024048009370671779141087281100893593819992400101509148176287820690339239874805820306430116940178000354485368727967060326431450717339090121418029900688307509965770368232842683867631909727566197329642773607531311842975926980714127034644615146965598541687803758820453353795383451927173079469334126033727801435680130485292052768033644276092807146681463795855576381898788241582485093741088504305942838518723179127453747286599532876873950364131221074442338137779413665006790245002308061307882946316588936435760888863102852048581928524556737824531778922337350791080789690657743757958013839202487183258478292128261002610159674837235514479606828054262372675208771469155682274662876025708839306751177945365177026441560794954894014742512647357972171990088243023726097269038297522765154029080714887426812934034099428968185916163003634070461130079872284572518500191238916094307175309493121889226236464343851888187155313788680225812513506746541594368650533574124065549932408587281315527991024740172263941490117722627262118010191673492864169609584283334400470010730750108895965483470200149030042119867539422677255135381967777121124788448568854821763070201108668552468038173104886470573621951680430577558119375745387013345324407212529830235359830370851966822865760032912712071103482750669364263231152923603020393762466416267255147989320226058813893769321820230149320094266523280483844306193909762136368287831156157137585582529933558320971786968053625376138314767828697288375340260554219621808321481739986960349202368494131073901708989064570398579310298167163873881792208163627572008746238300467617620336195785121329061533397345658522205713657846654310421482917726582952886902587262084248034227778257429068581211665530464269714841805554301666300579054669886476675214123176218629141886223604646024073907715296920279559911031555165055699233570520792981689152163325688950631029944184241045569018593413059212955903133335395715041294868963834043058411404459664156807998866584146003676628315155736627346626252633103001523435005455905546005295581956103775332381161885049859991867741081037193273556142545035263757842573572934965912587143388340603552534039935817532927087396797819106593566639914317096013151536936629423442223795653396042287858089518404592468579550041964478492613332016272998285401579865126729236147347236100052250888468381146126002203008990814174259250196657469200875694374920828590542692793896068759425793282668845169401999256932788841175965919267009612990115228297798703585445294315232540410863236044180646306060000445144978943348305117962000498184989815720663555764754601369979087235110707649008949433583226372766663389106818986849325980744943749737233061706804755324477938723363436971221682571715581313019181163114423417454189089655460003257640745968036409576533698687186989374200604779431573046451573165355169005867544708440658734303680048347979425737549338516333871700249475493115798485775987975394009404730299266676507731469979075718229768086315543409130338629824694435563570505823038437124478904180404251588272568877190010432681970068648922748599673898233410673282310562929654758241757764951487740653796575089102570443875824040461731066911517728998397667804213046437576788415983902751903827971090610172340680506340188693852591952567362355119311937558286890597572640586319409591000504463107309179936459326499045675971134986505174669576774114613403272058653214264054922544299881879536404928945330183642017726131951720085411803873276807421988266557251445119066227116601540501706487656418348363526037217595378813762496840798358003428116323530348842627180904102286886363155249004746871486397699580022373899678148131466267966620873784998081901860673361137491143476983528212055082490149173888542412833166224404255600078707671376192115903153843778792648998860823951835652246630742420861761910731849461794618401616761637819777588386971793356697695450825167664845314928244341502468566267157799626707992351854599076708551823261535325809948225928168727463605196587235853721622318303271149973449016625742441518882290216101215633930485101513886532535752792084852123955944124026683078776742764529737916803309419540490528858879780276630627185045417973383617158235559547700982434016539353011095666165207364539156545109468989715081803472296095528742122648209169671292173130876464858634296319278647688377426155397420305914437015301901096466954042009806878120142459104904896099977391722254697541898257615893401725355057883817588944015367329866826807820254051120425003355187618885124064150238453882384793902198287363932140710701041278438631910995692209695595797898011727003553497890757191697789844724399917119079405796631632392177818611217023195792815683639138987021547016290292719972797729157678029274092191867534552541186811087522648436570233201876352995250980138502413496410137639293302998451823691062924020222136503442210325365406230334273693007437855050647636603679301749362850582163767808451011740441836375613225753167426941935896651243965999139078145069932682002769029034182690747780014230209331541070560912006412401392768907756154001778186664270344400335994942618839773376559644445726118946169170595882505762360215926076197780763604723660841428036730933535403930337822572784731337760904751857520196125737296778948743577875122021483732417812464691658679947530433240018982897826565169048602729138704040833308030255205159496715821182579023391627437617395037876227463579050348771843959453205363345070799452327856500932200624506456578738608153130598398819005569221195538707489675104073487454707744017534716680149245045368404424441288414081903933799636376949534920294203353095132673678505889426241667909082437022325485729866613664043658885679511149722311149109659024129569143316233346251321912428401786102900154466743642288805182932580833206111231776550719882332733468460935858191272537398090856553421574757430665207400017418224641652078738319814507951792971407573904814801144408298113402744552234633816088142714279289764432791900978170087682839273822171400428520557609115229699338531602484461410964178264221854003079867512387753133682845980212250659063494963901892001515057936370169623295160029660409428581126331518057008713392588596779573007569443804747931429819684481535136409324415430052970276373038332444223648341773331391807166765462068365215313994831830253177780251247367414340351906174423160001880526239233875423152674975516958712817104604328288793100595025613901261270867674781255228803122553289979390119010863839778482909648633026033115584019982824517383202087154133578098646363529707900064571546972410053675783368119623437313914973795299280982156200194525390196694594633355046454980649929025485326197548614628434327893643311565923684740540127471509574468880125186444923829993526382681027906022985171625460312686111167605950748573966728400522340995035605861900258975380749042222307350166596109794721516704772062526428886669758596593932912213870969741679741379309840946647207847418948175981332283401773101186889607321969195911192510965368656002245500712756976012058237293340679219412327605249630574525520589921772946802251658514623331279819833604521709198992133626200967605711465687247591032626838947138326745128496340559800526787128775888801927260048264203312814918872589434898783711058232719803675438887034697612215203434099027971560984833846311529043311973263583048334371847200157209168121890101680831531866773791816586365029272786530519264423948175810655473473138347964833328027268911331529375349669867308852559830889817179545067998980583421967424620094912059169055846363835527412624472170611107857664478113769630497637174914674864972955012808694026764427676993402350235323088605777789174103356500932257135650796183136936301652186263700950024454484478305540781285324909395531359542248480874558737239324326003607969539330675811330673315557816733764598711461476233845555830958784915543119050354159130176853791144203590978124803882171517915897633621683120329568491862917741405232222458279413083500170871441917807697185326250209578074071368913870829790993618734507177949140259229259361455391480628686001485182019396520811683605679038129879322424946991576667332925512701420035328813586975108473845312097319102219193800771068364219983746709864042836724262877200803050660972232387266135431608009111061350880193443179703005241501373102285764422011829369724085171262140962940817687373386295010004812289559790349524471652015448627434166143354086960059644943309996195119592124836172071045690571992860330302629314136447542294999301294855314090610967497892757279259683745180251801115665748872491934538976452546126662001196622470308732663243408297564348271181425575971791712091269013265548081024859156949197650907892231213755900015334683359423937440578090446951630205605933852270663002297741245010400823328852325004688252954309780630818183107162919474004778909462283669751768764153622863228050279843265861815728839695768110158262335100266493198108498533269493734481949412799877524401659405710344819444293731295185393028605799025763081114782213509105371986387694755777704338553181211711225526946410918352442652544231336568648349291731324858595006967280849231728036077107231120508895039108280436772105551850037524405999823176336896543077441672563885457959471942741432385636227397756821015051911138864451185501947830710200407606479568257114149378189132542681535344309720650663809059518240778561363412238507371749018430003446221431401296790389151492596726452306742078123607224910747415246298084135533788373952188578325523755137588106054430721644856917594120504553135941853303110929645227702810583737667915277793607837580661945966567567969058070795006601746285949915018475971260725903785398463103577553635660650029383969833974769354992474881122726266063865471557433251769774379820480916373972648648863569386692066435234561550309694363554621060660032205830961880625726950741227016238546391968595496580640566241665855181551610114509013779571089395522967913522780143236160952127683726582725407344928684409447337351915159421410069917472955492104229502505539901867918978548940486283014564864857221767287281289880789052403950204095299688467532837102101648401238927276111362815927769772152754056979367599112356828063085094314093694811343139796800460786198129461939259974932040284130746948748496300813598466418112951221196903672618957758048367270218580131481185653284129660274859572167715043766663870780239713046785374265095461468965311844426241661658186110993551094267127771179879302388048188288025564946532720888779340256668009839773052735433723667308339801801438121707956389075178592741712691287340107416378574142428116405997478030528804678798021728036990662110093233617949014939480710960343236685442711865787823034185770895974440498421886562934929989988189177548559696481623429400261077029887116892421816790387826435567797056323535566731303512696518179211945191455540305607817227551008547553098906327860026885331419100258808090611441263755346418643202594724372470736058742751023329020603336569043012273082012062084799576456210965645614222990865612970175073607132384711784009048761769508681815461358414915863760124888525884896576143417670664940380820648213686814212808242837437336569612459458089587051722956392410387158298408643689789530631705924531327523566869069099189230948708147665328140493573183895713987712772120144283864902419557999320972306011397245028753439363210018723006003630045247370415556791611158596833054217804650931785804140795961829808531116790585408013393847259129586540955872850473384447325132913796862923684457964623728133341711355758820501193204375654614043746504875229026410474052828766184992474966152294562003468091339352708744587180547416927393113089427177966498677144743346338230078315641003533724516336912074743437978189345791545190332061250447864271387890360620701358090891694832119903805335500958062925361064226117935242324990992073519468173282833666944602556955312868733584579851251283516977440659712520256258262591414810321431725166806306799131337980505853240628912530754680600114278926620345733213541522555239907283322306246499498377876280350128713179764516124718709604285301009830177137461245303378540395593203889282556063761635047505515329444458084153365631928748048378569510464533822717459000618106012835939396661231673763662701043807813251382897586734396551192470344405444481129268648039508106164041474498626806443332208987514385199047574351520364724417406543897600338677830731557770262167802266080766090143234028387594543761189470745893732660177087762868681346713069510604368069449808608305642290298804237701916295445923475065506262611586790304333447109312774069173799232876504778598900001473707356095607993859502042369106698770480145237731928493904234579951881303188558567142740427771502485883765417073347668725101380312147593207448861028841563853831011254480604667918864185349622173225370578194573965974448434492010567610369709925001589899822172175045370232560494194045520296210172285625464350431739613491433667952333574646831824033625270554020210655202617035879173672218678811648879529399963338426407758210575924836967000704898234984141341758131209592290452625675606131373020939250738245183755317704092224686013670640253276494539105629763137946418703800327535066436176758330695633131224631225855117587696806164620551142028283464661582752679626224582030363234609482802769066134567001184779456890874214222388269989805983643289938553737227370657384917492419249232093749120284495354723710375426848720202785070416707825080531600277449714336463797760547643659934960905265856136085124285166245289608234366873791435461845733975352273201467677626682623952015341793871832132853991589669411672139365563630816792042392493198358286187244196120568327967877976449120024828228351899815339973197871724766540860777622423804494188531426228581669212701129249140019655689348307891923814905144990852095954601090189003016059706075910333335704226989706878455853843335094979158337676359777477183043399876641363262268462467388281158385733840996925988208506180520392520667642337412130124897107216572814847382187910957239457400698170562160188004385945417693585454789227716697346203216505834419730021903547384826642676586936279243274064065712873638821750076220174490057554914551778025973276086496457568342831596806665173200491542186613287474196234128865847227535320604127939086435008706513074249425471372580819033159248204234753218046633329180630713895123367318298519362022301623087015098208548747370940914523391752786989345225133485027485657462731300183856316480944461400527144744891365994068675695792913385149995477071171626174911294430238295461568671323100206982378760544788854228470123433461633968045235090721324365629941554860047377335466900429947723437714084354196736765518653291817332220225931784498936528959936533169150367075801237959511686730027456173368400237483422796351380930824218397215676237119464304599969601503565427347388881280244265828846929602517779088958036777046319600620618565619334375586608082701499130070691313248798387882476113676746364583916387643357465295920145324729853532131928756265814578949661547279188565174525099551082954237842698355332865705127825769650463614710211596428789726117450940683998811283009545928622440968129913584230401728500846197105349863623904751763145786805615495939259027377363834584899903797937535233776034296319597279683016143351093135294173786249334196143029520847985562363287171102985652065851786355529666912355962089420017229416515912262061004791842412994618883811025394200571855303373035210816978411442544758627061478246248626688315283034372880965956712425749107660108133197291400401632446298556256598319136677085620376726536676986979127202919764938906737144758517709515000927812584216973470521409855443728615636581329313101771611165019488446899073403520492892226158313675198975627973939026768260142004903109204404751066648854631044255290992795000563908846369616397800981212395444134161261845541100509493680719109305676101833914465237601804875661388105117332738238522549291908225663391804237466924733505561002343423014568553001031026945312966185111022146374773294518491937513901278915861715575255472057907061490211325916595580335492491981503539921644517780919930698162202213762315985089550629365909891832217380763843867073615600049290130722153739962106482513692543215650099693273650634808777157690303160171325402646481769391478870428171727657816371692003956396251564596961446369923909303346891041205831237218576559522065991521833132205882640177064738395740096499152064020054511159355331323351210516268246199490880329850029793471471501122005070858860092931594473660206093910363230756904460404154963449675252510323979740222777622413625243159703085860468073932144731939545625843740416484454269505479785949028096016968746042737876640076625498500047001132242598861206539836381305323318829661746497372117602611327772701772095601574165627164037577612145848298635593145182170636592383684208358209486611344531695964245035351646263650399726309416314036708358849785315366601632515271885389725653419053259628961638710446382137790711335789976779342961399458202798703954470523638578264931186373459368927223542802717503129984227460258984776753392644232849854260973894109544964667442140428702022400638073280659085377419743805447486099397195096419375802165309054645605547598156190134578043447208439821175471590928039146712433134549616183054318796630097503840524496473091596251068789846995755808253861881682370521829850181786800528148851134277713487707288345327305453293003325784858164256107652116476748269762799025395382988688429012286854777149945239924684999220794192485626263457389016413344588962370194595177393345190194133114262874800997264867278575637323966310499015106113617783637761081761044463197860936030459684677719058700172683446164010918806742235409607302912672730351114737915177312190678977523645936762459080725335412578472491989577373546503292017084724013738632943989624368268218189641531535386155106861368537717904229808176247282404204084142748472678193875478487293539321912389189224150046957763661383006872364064708036475674374283481821044659077965702224925594107155738627682298780551626594640511087953855385587140591385164436167979770766113340809972626958515388384695342551197533307044541198219320370098731744650482443176409442594003794546506785434635356106961744327021661690715865095016794619464852499762620720647129441543542688811891310070882040721709247534311239601349737949657830588705984995186047195629976607949178502368695912931426551991296474665610324454429931896720248625424618188054186877663499190496728717475655598600856868347987772928427241470238765185937047659541315348928956913182936623365267702807970102871491006851622656809701349580750551496274009735273143146932203934573645191453082205355308240997531758848399471443717845868850429272462923404665692725021765741326633677216916916602649956173007327514771443394378408875464147105743624619551235003778459774123273393955108991476258471316034966914164669268743819879300219456971105098334704751201169823168752843806566871348704113977817262168593907711631678990601045591412172237367252317484364465526117389974677465352768395016446289365047800750777886720292660648110287833881773003647914307840113150060501362656636161222972148936082191027760129036707941155748981111658852327625057484497653485343532995739787992000711546863706109327407786236930748527653314198225606749698509271491871520731406299492504107205779634821392285100921664854551065800269484844720769320552432076519219896868948064362601876063615790669099841739966073583738394613015424410069953987390170821985336001214228285435882553336270484180742443392876278482720964130565601361641704506570158786294289947942997795094902971389849652188691882027473455477416929552688482505978477486491147034248864136249877616925957025280506340004317941103632240801386798781434897124153772984450856678894853607448629792265211511037033164764162120722614683740191517147339551828957001309078330067441060573094833590576991994796575091040942990340645214998848000345378162580867346387505996298524743591647093889596979129554690583342049660537160078542666557700237179082645142572561274269423448474946303967038542073482597698038151314100489243391444141646622652539114607795627664045323860736799132268425386574154990884971991366237349369417934594247541578837801113074729642777595315312514308346654482761612602851150805797545205837261715199687390989522551768671740259600708428507115245730416170871623768454349917654375890400437536534496792111252865446440415374825944215379279923543864482510078794775159262694071619616935876646310165984491865599644501568229104613520930950274341253733100484593259995495048942807178113655926834632601898689988082744528434835397597796587486538707581511766986813464202631274158825381201863505979039663256963098704022543540232472751155704561820729672432992612672378569535861132151212458034382687246714371290923745212414071594027885753100306446260947957402676098522807235724365548191218623527261255626906287275138881032672292556571093281132548990046095280317213557568571207329961367447873153321994912385247751159300526235326897525153835265425712798527552593267234002926301610114871304002676568107996056301922103039371372579172260535242152395300795209411347228140375568194131409854216980106436894079573901736213064490761738794120349680919462832749958214259369880970553929548422700837811046305321683445112675479420258937741531707532639718821326589658592473090072139049407859072458235556906274063837938977219785592001850854697978833408062216005635849932455970362948307069501280147866194946490898147303192536038427570356283396260244778255828094720902763683518497571945585287148525600460033657948230961217122814709597125738284244784412302540824243694399434534169632723252594619785763788697975967684517763799097873602745353222794082264987213252524307254462246384501787602726442632761409402632199489222414402607861769372451758182219194357753885313162403831629449787270547545239934122407717193694950472055596337364445255617117574908202838899028297385236425513946285185908227761482399350653901684045646130412726504620274035034106517648541543132911340107114375440800385867286303621749289976321828752311957532473673518601224969246363523866407399722034496879047450142565757229318997029841969804806670271662391442063908445235193405574406380455034122232128487095814946121874816403634481054620329955846197767208772510495020933538443877735986360890769855848442847236689973635527355458112381499503670951075910863046826424776506151386441539717601622950663635049415069623395307646945372556755390362473201299751378232038500651231256273135218679572505477499532987602331987410055219058856970509811159929829937686672928224968039605708996577239941010488998881894461082204712301894939506165164836665078255719029789372476419795058310258336055180528697738508552003402566245464211656069511999160030250078354154402596135380674168798274262520601796494782943696580823137759956827026613777444372948585092363160415340498027944320975594794106270065809175474094687578589659321315383120579200028586647035800544265036118097357670611855238063107007047589872268844110765289785167230920307355865822287761998063668285327066274216560639584400895362403011066348144810022256966544854455379002551518894635192194467519811852230476397050028073286782353046167115667613651933748077503741363768382875332659609647337186486650388106101951654832030986165315180231047008807868283346872047861643289413770677425256507416050937041005653986820054910205083568621788280449041295377805817195086244544525383938237705762444040896509956165736230071580748132730930628182925033358607949622885302196464901872907064325817438945989556167136149924979204106954224561742542518794683859510776245540312902558184453768553914400419138537588755763288321812497970519765185765405934746503936180247666372180854782269794221106044477208279957642402423328691718579342220487845031410809630798893855786486507931919614365780499009039242171733849097004738034234722326608506437652108164986727689890023322418866299708629084595506704486460129095588259321536769782003060243395111134809696951786563794591289949444064119378109367168615360416133455596048606397902673040162801271253170215822451982989117894820508743766533909971519991895284216917958414009761496966976239808044157038666266235710461620468716670746148027849246111138270901343720849733580650989921515238876212665358769863676257631249100698151826423714758054511655301519148438141841088216070796531392943844193307005034850303555586547654732208878183060056634794898647904157916375076329229539920464967390838741571069748359306003718367523161008172750564747634590154608513422910773107040452659069301016926132112950097587133651435911246225113161912339440821594651032284564871771654530530675278357267060632616752206141434628611953660801525042855050875104222994183426449640845655849582251153864452376210735700128163821343920269102636620798060027954693497169507682414924729891043657158721895085297916625274203405138871008608575248289557617482257621274687425600275235186651591161882760261209195181437828908722889416747905037970498202349417898042867010128155018856455064799803777299739156680115942426995427729948225749180321015001848512301637491367187895299518371695454588270429796713818765001659315554115181561477785063476821784188338261691033465244182128896609930162043330007305742570364428745984497784970521583462265349423494482554849175459026326965021093274893013451522384251948074434227544688838790201895923979701132835439991348572804521151499531284934303670635026860750842650055742133598370083231339101732057269555678010762139310870513620985918829097299510330134845356822396385215955180687920935012262052200493453226797183947110329990982324974150475311666975794166726675290766846809858525569089987521758933672306790109401577203168669380159263275409504263869989679993005940421513713878188642817604230460031204884086651846404301595974575583801048232165690966650030733733168032774012378981351094631701958859502479814640586815650518087857319594571065721403283158107196327761990857525803678434584518096731806617910576233495214887110923430409212050713651080379880368785755861572891601542012620640763200878168460533160315724517443623049574846987478561929924677148147722019346445005851940169640477429111481458434330825577137085241408298145729084508814749077375119565849449857144858175883694238794762347438116091497938994303678706567505178566695576602697143653122197315206408027895032648110664521134413099486521323674989760361943960210947618945988735599831902810563333095641536169208867905543026031572200474814791641496434077603875224562164384345590431322769921696598081946116154385983139213728490242904786968242614451702750778658863942434916398333660907971413168387296344382307511547094150257688238172665335937904006499003379589171893084903326869702729008973303701621073686842689162721738589186394309529271056344324394526984579374613685690323834776086817058755402432656230442234598925658599739459886069724454750918608794333767429098810707584206442686901163599776891592460914621680910804997061014170629255474092852063671630937376940981273494570072783528646778230638786005012296050053105376471244658860867733552910052739497233925509975936314028065387964644913691838065501728902002468120379345508353035232607751180729052103887289461771255080014568093953220786409757268171151089613414378046373182230597012737373252919007796120968221626959054351891494380602105685394523253017270959970056287055861382131121081248946569304620682406469589863802027911584655412339977356896343671518024006061698146169350937292606222710303932435745340678127422150611725084043544399990072627150281685517791725359636937105717379654424654860359522200799206357375373131229248351544359112119968771303204776370258176844729146155067176965947053086485156447302702093732154308762653906570497598680381695895759452255431204958575802862622093118486889215365045983112306263077118008819374135755398338747115615200045517582499787577309225752083150066423525774443025047478944387492133938392380015314851275536720649463225203413928312457551096476514925159649803038211188967461257774655923806818975927134214193505891089392835015827797276634531824207843846593424876064285519372822995273355430363273226654332519334407220448333217847651224561640286258582821855758397391674216940874291975433050280542975626063708263562369662420310042869676986528306351834624766159889527360981835708590379327054965835016685628435751452233081672488313358173915286757306537738179320141348442493968211818791379427460028846566775966875132353628910808032484192913033479657114599347913568927955176653949400361254290446555752198817504592403698746816663136848290786675981903459644490874245487094436347614922485447508238469982037899653108162234952803089590585088278683065418879994404555089733173570648778750389711773115139680625121675367148356541606822964165943772496216787494544948362914621483783560904975368622154050130065180654294521617838949536093400686009864278909444059480882884550557639068763476544290074770514908882942314565926952800059424077887841198954765379685915994186313599321128971837425592164397904090746571013015331387436159519427131014589503315249717307708410986992885119159519640273685829438170622281921417579383273058367035998860464840287679482984856798973683116938167755331264163426453670576990833738410114545378668754134346020928029961427685970675790419701424853165729088811344045207560888557259845319698016927554773796819701031285045094986876254644811263779271852292479452645347807216553010608050891534366595377542341707115220077739028155578028180809786447968942235404830976179842611279658196669659747948180531934507411792086003754503645965072352063872093407638378161912306924344023176043499084905316550084242330163597856284326236445420198620020609291565222320307898396366807968917815780891047444590948181529728431172440516213875406912754930484818985339614626889077189346901624207074761353580389407555371118657540238642912648203198278469410207608332830328165331164035841294845423278086172600632316779627388475992153505658681521246432324409221200211664640768651322242901276489718234392545744421752777358325333869352886950198631991359902027586855400507551412310856103586825454318428250450404153191831995271651428325039949292933902714891868094706209366795593036020115653018664199248458608760925241879193505050076338316950294976046444554567695435992107491953761240711502996109424318378108346670925427244123911581671060420144502850639577372565009755566618329446796811549172079237588247847194779585944523209894064504592068928760027875841732246598037319519439648236126842759953962747263065213312646198274608301812468388915644121959029399518014466871242888385395607128135485508664193802868870672396813264729965381910447683665631687748579542238941955002955176812751611822091740153690455928479083992414683272644261764099379702687987190210869689640520634063451389792129073115894868154510325378457206643846239751883004756292346970107524068441268099354712130772900001611897134642113759119366337574618283377421491718296208609183202179725404984610277143265266315854501167918807202671483929111614853968393732889527461154548202468059599833527808096247513267529189569049517192075215988167272459918124063648547484643547696982175226750473282591046195433926717219596630549568942263396437773039832869647300889721303142881359350378132217640357015608863016729745464256259123394952953115666372590429107964681566809119458983702670690658099059091519155234010544670295291098760179484776410283361948270294230294322810207718916336480784850480241460792862594950823472793407719756778517417652079732232098374264670211968958505926404211796741775332720510407495946144736778647207656397515251537620462478133979710993602260429289588792642713629248597405262477617656790192922935530417107494949143080615060835857547699510983048715826504521897647843215600134418824987939004024232208884694300831090379696282511562271715424722129585186805262191127619808331994681887915138691854288303247137186384408275989411462971493737925126814211041577905133703391141246514371604858642019115844576852983963161376366345766414355354846747832785341042300804683132238962306988440676893219993531498115387682629844965413210053347499231568147052495471650283184550420587091788767367127225173436000440563052618190868577538454778600061182346491830509911921492186614611170384841064222367361071568785190202619652721189068679315497146316875729795720309513562691838633349253555265280001578496909736289969969453702377612902431204398199243581068012882167575189334612898778498166827245867341204404825673576449346813679343998304087086101646327202899752354970248172120640898615363578509507248146671511667670468629236406723919699080281277984015613904790937020259402600320875917535389703367708758572063463777979103132955325417225504880502056569816640970186941596063078889872804274073156120697133297275118605654927048662911269775991748916093656489809923829514489435472790636196484848072653933551665914217914769058094593968835860090060170459127208516951749853311060187622362325341942787560989344054147082634732247407382541368691968624723114081362865412770157885039542409782378446579129636476670827473681247879893748244964639189754824201702199040589879865124833557518418284106263338996097020618135451190630107540219543787265750300644939389476978054889843762172684766235109321803596066971764484428727913980864083631714870662764281219251478052539862008725209621031439471257283916041423713454155694047034239178105273233497452816516793685382825750241681947099849944563758132207735391799652016560050855766427767352019845628450001294242902057749466350627013116745218216004267248207453369065431090507188351492739365970377163009786167276342955039340856188117480162073068395135609002155161037568881889016073199866422892733078362355980337153262632935450667122010672026668207372282278492023960537095221628752567602109147303925459884288625829931998897442266041281773262589414112962924053867011940915855590639277244747574129706053654866053031634650423365900280518472276483719061958787655666794837653119286385699923119378603758831304543834899086848782698773695652284805961348448900439624977011495209311611762516888678188497802476289975404291094280302811329604708349826071162614219690795512612344604596447850772451402704671669666829172746332100569662075373249585914229715285999527950470639145898054845235795913756723996126458646077200939954347968109165755141663071095909449494744509759504794725288071367205286528124538273525503535669886512232112492640996297149299324096321477860257228553149893580376517330589410557757499371632193819420610129336805589447194235280324454845731886148128141094043303633443309834152223296785288758712536837974511211856427684855959869465630464526709083659572655095566697066068473982518362283806544927130124256435430634677152259574433155023383517468537262063461718351583563468624865960855041319790277700745350308143931658955821595125462427632229004253761562905543888608238048740047528050358191503033254223033492638159455656790629833314948367286658523969040595139794784115694434835243215091942362516771919815937979652449264658935233408201581676075047838837329570830447289722532763812775107429292591326464002003569280254154874317488793925893098054308996953396254702150668135121697128552490094028474478736818602598509615342305580950710945936943573518640964101700357077614178208598313030707912321065356739329590812515329151627562342118020221303507139079029510780329636790444481613120903770400750415662520207108659584931649545481409865694057636541083071067387468234982177111123174403196867374090844543814978613308967088842983685098444511580880302493346409500354211768857348981433216097978393210506060746445123440952254434298844607328712080446080369616897614606096062348953915333713470261345201861524750807140590017484654999307861737141397910873896867216840733098105199437134152305764100057110422042012050096805326270854220916268746652961931546877144873927859258596540208394990740114342454133375517583739116506965864949155942619721438219164763760531654801468893311734269479321321360628733855656009446390510946935394757208321879573620448180639889060958281429706943028557080230651239350321595939801741112457094734241361345582282481062022720372660958128544983426749158423316823414245707643469102317901316056510745780597114862094676784167909955505563565344571125077190834859706841089805246397540223598476907568120890739926741070226194260604876522591551997438932137839000604580524727458578739724116528576707183855202348741711153597044629148792682255139509892144960171471425702956578833285703161462657912291981333963477724283204279573291561513995689982116169787996928552658513997436482943650800172268305495693165857501416689413184793933708389224623802230626628452544184418449049423043416251082008311631663547756176603393887781394408479553649359170854385531338776133035404580146962197002807004272163450690339593106162413829562512795260470731120056222472633713683539173442004947721714907094780725611512403051415057119253596963057211437083449005550997071073875354573382309035958568491833728075194825000160654574820989747803716424691982846316410899282753927754576358049555276410329520079823407311097627746170149469837293275510757676582793136914193006519435322662470334170392714331195618466149318338082353667574850676237521917235870352477475951632164871382613749282856881897241834927296707219177060462220566410966061941477747280801802166991380846106469754363131592499895634377422325133608230276691826192949443543589231700128522388750055947630917205039531139722373502895754114263378371648011966286126600117384035044485110463933398389472256189607852864631036540622625800014734889353645248014165306459713239256654505905353120485505238615123981789304676498181328446745370629456524172183159562637402149033091896360588694319825510195439128037355702122655356303554479283654981129996636489817392191339197906565076973948483907025457124961347975010706830207567510386988352124428338612789803220938880358537694780286574289823861012376332042357567315434355082054670818227270658222561744654343883378431927758793479631090229032374686122643660165087256902841706050142112366092623793062199361096659350953996313587828120349081873510995723337863531722696464945269947679993055596994548674162428000284885981164944017427427419977068265475651096717298034208611316032947189636000049508155056549005808597195321291417519770724021803662396046305713695255936842451058029680943239016083337276770926305932075755365964507841345642291105058852277387818656579682922198216633319454349292787895266127759401867745615937404230278989770087667359279574941515065475854998010001710134104353889069191485020599613114717791234318112325476624831189884524098483711702687147020813506104912821951280775483832389426441205897803553765251489574754476364389565667343575576401319955939571094723747173793664055982234475699964622624874072067072734947133984735258635364540769470933737939239407208316942177673363652779291468385707709632125628834763902248574971802086398667378228361156965442947809754695567371244672355117134490403612406795370057929221815868964422176350860717455288883345543786778903088422604986122404609324627460168814002439226558198872459702479401433088422207071802204365534724433140016540844775882917086146143144232682740143084453328094595449227857858741882918946070053774430963023092190802328289687932688607240421872380813162822806547875641095422536687938955781990703199767168458614133551963709225553239449437883896028126489701486528786014879619158521506045010051713811988078873308765793458142976875686180571178659852672330186445564402692739320664124875622296746570980340944159595337924929553336390162097606559558717144989891938695083282102037468098353104784405410708202858871916652783290823144444471753214080759422103679090794021832731622023546504163182394093953727057618941727680218344994551980928896100155438843224131964775533296666470398323278608554670565639699807841967343461831172145880761653203875349655593111579093584052959020809169921902393505991779422237591065958722691939840193739253943230219841724281969385120348192272044238345049468465767845866283352700113613564933082755460361483037486785675321158394587894511727695926306572655489188293408879885017181998390204195289010418015710964978446909180902954421556623372895611668289205804584290678335582633409520123890179137541357201606295495705177118244379022096790993809604691241806288668010313984288310556565435748775048042361217751692436420823504923115577312837102584840215343473900553211576395326003357057215644671414921665297682049514918468036121009311158959981286447096615529728110185578171229684947240827581225908713954609433037855715302040416936883433434804289960861804807522631160447994618908236871351087086635392711300003975401032035235030894699341358019621228601181579561358862456554334077151647409975941627772461080503852424407622165270818936556637116813544260894651803125209398523390257042482536770320865107226335536929260880732078581218467533490387232387177487283366091957869680108373701656933531439042191397714000482364143718433384290939917531324617127368322299645854954311238855342768498399041110467203613912422268642151895267952318954802382376395907734571094534063961039814169135824981994856412742793210771162144015629611660856372134049318243004408866275925144172225141725928158059629612249004143743490785758955000521136388076387082342026052896063583046077842780771948254048294356000587202552948463863205921760651446280621478719728415590357903306175964827312405311329498809468567473632718258623868409965217605735100327450530003674008719369946222763842593009261946145008628687497322386024689979084643441944162090799119342875047184295795617965857977097269733467319189775263967315724751201066387636394462904315357158043735720003577982221270976632176746007769212012141362312509718719396856982602226908445245952792084265965951767387916755154502250326418027504182782969294194151969019142429839482516295949380315934451907841453050138776217466651232132970948461399650979054739536454388824115737279567037307593690081305016955531924743365340592400345761518491015038028203254306598675123855861558055272476752640213482578583532749100962954424180190571239358687669892247761570394685698141782914412734124905645279091375828943322103640759303571241812625350423989825656487169757904614772833028132670373896172667535605591187202001652618928439980002259934073384876441270076827341084038722377442549448168252454540259069912470634416651711275573958165225213654068014281171412568897945996660633837921527819708330704952022578043294966750214761891931890999632390131442875948156823745335309012895790935786834779137678771471964659219619717456821323353231953782963065731042889949842534485856779123389238162404111523943843825275449625866349439480714041898581412050986441609956034340602691596894744571637640672237599600774718099009125332688141615661237857554897193022271072821056708282722832712788707855181816578412325077857455902015856457542920932756239014133081044200782808118944760385269963659223537170085574567853389614784620363667365504069513935141718439881512417561744054461440030182578951098709607247258416645286200147261674811723944408571920134543647760077451789260916681282577947400208113505438523119147832381694477936879539104183682390647580930365352209484431401705596558413034996612276320996339995080215910015244232031212943026350694495768248163487893960091760626025837374154271251923729323832818073173604711253455717657895575949092714776361362736797956319879215069822642828329384556863676437827046703151309694688924331803757486064935534430171834035049357240777253115533814617776465701447245554905698111884464624853795812906339861472629122394126201279067980937820271019994701247256633998084634686687167856698418485792589818347741113233077434538541521390124777339532373763947760922581614354455020957670217193675371560111818150019723581532905493482975205684558489779462196046329825364543479155235688253139691174380044379997636567720415128191938698452686068399734709871094487977178483793430532678175256536994734118747955424538491400361268769000609305918550412273048310575214689552778735546812615189780334814574639315125841261784066940729834038004743390655472465211212334792350281963018967099612638664029051925269638542314107796751785085369198155884524415319298583574881492175888539800342285848670745024723311315870536510142405093790397569387871365184586703512844448264236502158905385591858619818234525215936933280882613363000559436220262852870292543117370014515629265469901881687568918170441650895113303961775263253282491509204312771668376381562017774655123364811999152548265559130642664461893757062457261115579035407986142928085131934918597910340654648006650085184285797636686919265660814832718762531786299526431177662492479739010356995516177739844660045500817226493072568326790101638361815360674133343361315544372956039495925503343865589218792496691358368862909193556777305624725647233025442317852458785200085384064162909280248238356076853202373743479432756378565279461540428143477522996190828454744255291737432951456020436210426628009799327908840295197311052663385007420641212012423576615160325687807565694572217599300659471615565051292859977626465599063625065787151509313047105165344047557708374093899927656087111942568681413109739589140659165672596511000859178775052545402264806443660974625755844806593226483303476158999460417202537668166155984260108703167984001270634805059698842638248211488634790554989673547299094122876418431705916238579104322968627569385789937136958376831664605996533075624053615304766648327930308184185421318148603575815738205726939206975971504873195043101206529079486193360896317541353750383761887076536798718325148608857243120727082137962240478441630784975511942233064403754694077706175922986739083986407579234180445578008189761794915551521885654180844397621933205788576843961129194829685540770844019621076575385470336677595152212747763257627544062632109895038221579897390819525976908199319937322167835170169290393617388903336345884278878083113701852594729820431248570515451124161406055421157199305221265159624966164235281468534468209014854815531318500288081500647322163638549012290840250851313737322546629360990086265097325928019864298345444034315996886372089581707280476187824506358547613318389559144501071634879575368903918071256757274268952074140818139259670133975250839594180873075306852271138648029874635736776523656933748871417486933675889514510440343124532912722176384516782659128733369386679069645178920544407480037627283332103162375473168069538514385019741382575114853905538478732733814785506973517423480495563340205850528502590133158662875632281712093184771148054256878267371431657226631435736043988436439375007597847214510895051653881436491230495599187181339883539397386194080612914614601250370593927271252390243502458045159605649772500734782119476028255075972856337939920851292603151376763812191269079603091658393844810279679927323404566166450811150887980664188964421192495865155138639208038750773338750879251668444415009104472090880998775252776186631690704747746443745856262473361098353702975575097378207183913375237720225896006297952104091627157799630637346310823320990299890828838880613847833030261852404485937488486428271659458199837443260065677300928481581746103922102722176816201476455217901381278883748791571229084948326347851540502159199262348010458907760906329589043920702315247287011768471870826238045524564739714212992502767573762588290345140560168283487313357593176880625044621234764184958893880727496088059527302013258543439258362184429677128957425198343723803099164289202120223979478671760349604158856764881407188109316437774753909354818602070443215983523078616296555500744528742563814235465289166171705352708408803856978487246556052570804283791434310302060935288137876387058695701563849471936009564872092222970945644961939849471663309413398200402529213769625514429936775399819330026913367960409488639244381083096972318520607041103859599174331096190958662088368423769547613701241011662151400026860910570502153031723343146895604930031735707726620982790239846778283886352989859000451152585068226856674085754336776975181184959992356418797552189420893958262732877182735779799028994594357290963462103078763426088816078014304257341610167500599750718760345702619875054016273050448546372449399235440637304293901766920429255301218283660250603051836951884110336978523528223208732257338538952949851930870517996909346801298853124567877901576914196103198415404054469264801936389782373045071257183125007366076244546286574687088364611928157978755236812443239767348768546489493384419916081180481009316544216537967189844800842034701485445356731044221226228049390239481707964956557588178100726783365060808460035638177538995277302613154772838084143565113504030379311011460431113323954720037004739610894041640245343660022650702033196300723740846351935691453952467179841397505656633692387348914069532134536030316117869873741863557405761435983493565738717566171933387432759136322635524355740144014093341043842408411834068983270934280954961690697934677965135888169207323098875081777554610047094577771134951558204643162941252296677550910046773055204093881126722594841382863146707559191140124915917576580882434063084081962300638220528091601394583670964707945845213278053952227847967431520761311717662125144517748883255321166675700848392351367352316797852018003595972129631717223819237634075471457600492634910421965420101981301533693354671205398115917422752790935090347460074419115060631111198849184012263643607090784090619687413038947375679774334277439473798805257140168809864626409724512884639090858777606334873559909422748819182131813453539954770741368172303538495069029035059922010739968759943092740261951492810504785657361442570753315027841910021033931482658134477610242968540745027946486667888311739282661014648409646206869084865539103653226896562480811764500418976544908707279891693151302920286628617115524819390298855355029756048012526345849462584656355952774206432401223519808550746595632052094133941063918823285838667477412733071775839337654400182575638363506268634803423008865822391070958178818642210409779781567255248645998137962000956311675836874077254455861096609357357143965699438930886712965387141406895442581881532519400780247446184779305143669113993450043400163577794375784203594553872489425524564575689150989813909063467677586303390642061716571153008261123330285395804654088253293024629898812074531320312759446168941885675751116627932360568337136287366958188520586359221574513636042373593513025449313766348829476846900405408091756999187309139580881639655738043137765332727098455019798965615072453908444759082813388585843732295992606382707560530016300451813372034851609565502095709227855402317710739746759376744946504619047833688778728252847652037193058037332497311010146374053454421148274874869911913822153333162466394109044622413127234143589269542212939818119960123992730752997086906010308211574422818854409647227735698167199399099710385911795637889563745505853523226215007094882298613706869184627043133224689436385247367991171761903798309880035147905535793553793350245875453162875970901186934909579104674561624943466717723283547209328604340699976518827369996115899909951627521667974157988616439193742965160087198171907284055378770405734026849767718632033314012400360960064298312752628158872235902062357780996741191537356916933512514337427500865766962408637972465155842874743476137872683968171180656230073906678576799005324741351645711833760916560287210950452794151618412278769850284678560879576836953925739276134031460552403878825599073600333988367061491928763875665727742859684148762877546089410129240161235289878916046344199251370734156052009433682893597987358572427267097530147114873163346459289602902853839526842009751730346960863729865044518312365262789518565736650461110650919705095626945839841198083750142731697212055159505518594349139290453734985586947717842878290134055356138884711213633459283952714066411845568407463267247500349342515402736464337359597306140175268935189279663062622022895824617027212015276030941893886024702435233077317178914393722947165789167784024588055688103807109801217366868882677187124713042770457119932136627848150682631326614696020354859354542995518973653559482031990785690904439308595853441667693584289330850524126355697028503902026391832288139725952278191574883774551265707126935657113028491180734652552813193080462269328161981876643016410818473115566056015947332819442914620397485880597889752292652182124136942424990445088732638889035397978743402289329538052455174286805409162999172424490011275834526084522913060501788312485074854099400893584569508977929756285866946404995366259520276439491550710046533054961930461921493229747163663041006695946995190044994789900517017941867249304917652998660322304318999874411366428443642054179846831283156140010157244091633533978767092996194598840814259787180842579734440119915129470942822693089338708855574774315647572691383721873275297579604420000044270211231606810658297572009473299278300190579960004862650477641138504076939500350370874270388765182873577786805938593120334912874600531162325063191298026129539394344235464049933709196176433373108593618777279472930378661039622942901338829878845018468233994015116980330481955330790135996104053809732747795278509674693206378661951701813447267690861202606413931774980948966161983936027230015609314956260803121696765513325540755987009016646919140833934838393011716254252534436495447179965754703672038614446313954449997521288878496969345542741140200997400931180357184148234756481623020692866613444030884150926103369526104211974373860846224979474560750951034873257353408092573712422921082581370886860469685075513179776238480548564157225325578537098059008845259694696029110241249525400346942256606858272025678110825621266020574992767765683793544424122728614388896203158099762085262263888898059964609284770551192115543986343560801505893426133839035439812717344871108591132349226797917465542644498230365694624902964568523476359928504817401244749811600317287744414937149235181702979282747863635947691826553510016600179164218366982519139690336661545930271814051813156413299183730959969695899699523173468582963325860760826709610365426887346412206216087363423882694568753668480349142376214738636562192668230420192007885369924325422433004931620907860895341131337445810669509377655285809511134070890332961975776520723034727598399011396840958898403349291402039590258490935746581449920451485009937758234795872901513290947786600124549268418305712306696446034301372751096276203833956304050644460423042048471061498343075421796316027005344260675223196504109165593904374758397604353356198460780089781033760039497054237850808835760192654291296054268158950288454206880192412672170761164530549023579345042893266535565707394900673222160639059343470237272049071402464446421202138825223327961666639422174225326624116836381324526504483399795964646350706582854875016926344501708141650931648454123184973573784949012203694283795446804235776999290149867279628928069003664670001317714066544052957881745687974815032089664542597774055670360946792126896774959774791445697497429917693141154669171721059193467586970647666778851538783246104812462995356315497982939443608667381530187490643962108732691007286416725364685583571143238626607670689367703978512936828378580942792722881874328623101131208262064857556629628685768360691356015918827984828217490362142349725910198771426793534733070636007909814456787820953809697878327813330708645999904384064929958244665134804073755355039270675080256280598130065941455848298777851687805051117440423241852220156464077172384151721544601839923573805217791366791012873243536063388603153879150672311145637764693244176299737444699977871817984844113353950142008296854336543371738350588894342517891259627648871066459241542939750803875162997698755536024592429196602457783155003580121956132218139740144155819356877898487666567646755979974094105846097873067886207807633866580566729336420729166578113404796948864094638431429290477606583837705511522314256977897591110310832973143305889481158000475006932738009052084092247699748172956345066812538358428817544338217264467371750935121326102967423283009175838079828698173182631928155932229221251806729973608005315840149218589635742682059303607439102692414013080305906806650715904359429104183034236209233268540564836748194817223985457203180164440138149772383306416452433328680496074065478318444780445055661821334450881033576801950306777344557510251973099068634379814500718090771118597897303170722194105531592517822523816184780210093389564318523108430047796833569306219708063216485737674721892835584832169613134069909264048493606944145653039938332135320241501374140549801910294896225927139605775014697744996590276215591964138451430734534800316462691966775460883185330993117891787492580296288073733320120989264418086777212188849210519814439773090379559478076462480583655539926988222251406350644405330573490443946064690770589423714323469711371684633213251429855059070060684934284902465098271415389959532436090831283545161126766467035402208472982376880750735514784925412772181454914510881422226737144028694405296681304063068390900119258950264493552164120644660264807537307264349743456626991420212016556771883800456912461307546925197798303425593419450497820228032282023561880921603234089786597631350315646379053743608178024491761660226308773343229770018355068802317823707541784358410322152753054443671076389784202021280330153664794393653327451578522446573461128572609163499219018262726540031566386235323636335941201281861011815414502591857259560854373939163848951908815496280601525739322464682379189332613181622843510442391516391098352394698099304617166288262880694000432809283138574957009601130691311907238719168587983746489133282048013449094391758716537445366257830652236325591886414798913011155815428403480121672556286825066383367354655708635688003698709545857073914922021479401005132743008759169913473970711860075029782293253197988742451001339398570900695253791420650781488682148023677601839195811307171100605679147061778671272504791235449283668803050871316895009617280612426523610956361683243555451104757539005053879050963791973879863359754126524644064459592093358176401317664527894217249400110529277004236884873465653787828013657438964906146933559322495997575597604553396673051173173580330334086169965552597691932324715253455939510875937934275005791720573857417068059250148348211568237547842056336093621510742991100580812758990418323245179727218654085182194950844049709447214314984419948468438395276298513672103268389998785631592162879999508291025413630182542475846309672674174092425744608003483827905636729514824640777311331247030049470248919405602633903441262159405718497207442833120736346909260794150818319346945087959124286445803089481829477089854691296024805299119892004084136759566079432869648377352645466747982702649856617669577339673402947893874002958951776837950535975613254686618531633498530195744954790826579225977866887666199940150749481322677845175387777717871608865093805798056987375747952737109727326778448476537558353578633712666675367528139759051223530596687748296873314443529684130222320991057401982455614677563694165098715205972077286086299256323786480087622523565958855923176913687305598329047013263226447371334192003180927067590424649789101256330458132824828155469160762068395514424306736742828189633927095169850934421863550540984184329916121249554203085477763263081828247504847711433782308770389517281065601077797871625172952576900708123421332476505810705072234637133142785957396105246473703295140103108905374722394927992203153793950424964446942257017481700401767157632326802472957600185392320556016578107433026967862506977067728336759083232167973275143293329749193105786090077592106584607070854647276638878070250430672081608630110657229744024626601519766421564493969042414088781600338415610467060637278622084568786724410265682457465941043857010474387824405615499595779311298399069254876120342372871444380940882613475491262382593603088001215908897302794668301287673175513040666389391478100897151523047484582746497566995092766276672644106429187721844163284124113790525465937652224739531294785067175867332388562283145991365574164713775345029578941698186819073971768866305099256394666891480560200445457044720876367558920433551460655066668962844707965043813341046001175534571447670121044536967197473849157998685872858936348266476939155535760938504828950353664041545668656356080060937567482111702514266882575319072052438873484477957745676373927187706953470563513975041485616206250583778738968075029611633505169984920736015005712154881157678679315481927294582523337458701784692105920618336156084496411156843023230346560221015446531266626193160154739342358194949454859442346390055679422007602524128972195422930090697892668547651264211001981836436085222038790484055310424877749080887665451362213815364848277404448066074568834046024392991516831611921649862342899357287210269761776263744532808569652862202504018966158865922451476957774594767105436409463858840433979104044349899134197966992166869374115589532968220183282339101581937239118574601184068510298484439472301067001682078731902347352631760482093828851733366840126613870783534840618488232958857975462375558660844696247114800021987434600172613789823661741741580412839664080068051548763578700428062196121742120060539349494953889436998303476395957604975259579360179497818736947982179844478433998684846914973003034355733096779338272170443644069809472206846012131499142747256448874196217173784357413609273670859438027571912415731319501576307734676805992166079868593380217309351502919437197450669994231863682962013570507466126539396047033910513747451666474128315755438574763626584143779901672431024839338989298737303745215012492508323724637931691986585269009724723896102189046865777825926724285604443632109742764437689904465007180513288522538861889391627653737111523564967460512960844969198385021827742900754447393564442004932994196015277677552742748654818622847411237903171393827009107120670987409846458417279581007564290551618574510686017088241978289991880161570488962834456533584209256074054244740006077683348569070345767526821229132611915600490089055298487224966666753550852794378752382991101790409557237366164079380238708868291475373755209688796163967216146962306383176202157788321823590336469989250773998655292121190109879498026049417093646017391643161444852209828622948960710558204915570295867392078104013203821740198628600809308870857132316659785286689014696003008218241210049100187149126550136352208412111745934923317604439334898245660832594402993113914004219004881247400413913091055454026004386962073260745539037564374707183380754971193276041861754055571569791424396234504704473076462562623762820056631656805912726803109533126127110715388873692278813975796168034776342906195196755277960898328767361143238628006929523588025120593267030830726333061273402402062482363819013970264246566075213291420218899711547177288862897939861298839054864682185936982066510020781795297177866609474978789198891809535472679718372617663975823658825344486826278276385936860927306203623589170199724990983580937115817032321978816232979827954899002358690271043478724372519866366168500889082529753915905351317439374588685862430667683487917552271500685402202212471815710023594348747934779403648795018727414590534106523104616101064899829578629632413059477018508751755925735790497403858266777314746460326170416253494307472382754360683262482043636745102079116107116259024188948465235656718738925704589025953092211425999647936877051298871149856960930512659979646596460541648620830054868944335466571679702782489162566767349728331187738775858783033736933557976891055168956761941416310951668045611961643307717970482067255421963509744145790044072839462023818350577858682187202619592839466984572038143337877339705583973393660731786836752571607252638227809922776275702856438855205113781898555373638036831153001838452712087692694327108611979570874632339137849969497841045071418559644480601912157374561267058990489677934948575275049185782166845299407742672449027344184259279803555761815795834449833878517001593634044840973202613933865828451018215679404885040074754454536301586056135123911301085606464491296747683174011267690873077363795265367960415551563397512408290977187595170894820485155083121464064708156646654852108121306327403671815227858751274565993389962676532622978535937327358513064494071539523971837745912312970368756363321197397918752214921875317857297703478453529946553175228449971936166158181705095313651884019033695481860712301065754034191725995968826582129435182894800300624474018042197912213385292793959688491951770830496759119820670132286814349492096245261486924127598140986131328007921457070112051175703347900117817353192680993546719467186684931928631920261080643603200349179746521165071014226146709741685066365217620108664876117538245970465940301643963556998462144757839127959983364235705626184147732068436633330254407249425428954898204732879912984042146987694414107408084465669820868425382155232372746509840314340878076528937834057253538055726553877396324357970517887966530578748715692449463362529558866587830145323363487796072284197509515353922044622391042958388308511783372849801043062670935509535577982275559282310216646028618562558324031032145599376171320417878496270095630495047405021236204075486425481260771742842295368523654340875402904181356432858076322934162927018920308079341548325637733839413042390819545339911676861669402848812982205307533758950405822495828290725118404481602733612074020840823755207321752813439322847881838582614051857191766168297248852588590396656144822113090404089783874723452029354493655614061050179197632389594358377105072512436157954150381686053793396244149296809366666684247229758257855536637593138229655213164544888851969890909344166634092469465854902611138832549366101221703393872575690222615594665798090368635639774323926383470824486690182552005925496340750519361948458157123503322617268647277879040517127240534251961483275584052355052335944663995977524283060702150273782649249811623731650506122916909876267916284733727520865901023018481445193186783951740791686314826745879788726920018625225189856210137359242449108455231250257407245312176018989036997608350292345397903906871290400107567970941509365137680003022225008077963000122952983993932556237274430371688755025525137172704716908903623835370762092623559273064925201389670213800262073217533982655139144049132826580213258338906544254822216183026642671042296417046811619529405935231733360114799096063137245378182522821378748962487879075884658588831097209780450743322462117297001147295706378977699326351098918374345531162295969330668357256542092634588891714415016686256332766651722887919744354031779256790237804330699624000237117779836707056068614649857021457526607041020542994808097220987584220253497684291616446883739998809354261836268913322580404575709250830626731357319997208609019180988769292479519122868412131768314467568503671127127935957182522681338838816700933704348644471427337470648434003804411683441460817201162702552809065016435222881848552486981178613023795963421187929668586500392166573794887698806132983522554214435776253308203178384227541610097829926236640039259642844819194003009906850253754205579334674544119010615721743049064568850642367772541627560834913515859136259224872961343110596367991353297722846628039495164195245505893044786660827701421675991193943318965388648306417515099559871532013648050572154448807007809027147219403630147197429312250186169233524873594685731401804283299279701904651304834675589977911579120791773298492960130289463767114522757912719797302654469865665937855382545407309921102427444253791023937633158892104544457075829316933341756446254313005807495510813462540995348044898758937764176981573182402162854009674024594284693478718605603952282868657562721186331971309140358263519269291122292837115181948012139910791420833431029538648292109344801623942064732804427740481174038043758785778610194100654527245453538505731052164555677294557481194603394400281333473805190692387698879120099895013801692633034159352265397591358396691758183850474103318314877616660822400182091771617569787008811346280467023066383162385193183913212361470102730129542140004556207187274982692622694272407265521654242055012260450181660538504266110990883970244653236465728731501709740041752111662879744374475353512529853484459674033612836028170867827437186419509927122732006286699815553165388955962966318434782608503263916445039977005788699055204071649500883503541027504231629804946657349147355880393910112616727939739576166440328562920429292673460450764186991670837731814000303397414523482169392029283408104775533392653269692322797823012821570079650049508954702401956895886441878069657215057805551465493386809975790146024806850436103565719851626910310781774787761523178110786684675337163892375321881043089281871376878072131025355134837257627994209070585475516776181307370935474323141953018919522822430960232341375845418154479673416369439535056251750177927716857452568633942647412214553251341981887267980927819121725763072731740483499223645360514489158192989325615759746489166982327709986333775421470704726476650331699233973934137877706733137259924547122408483702451892544425164283599082372194697091257163910261127563536607647222368069974713698850179823963075057469024797699333575688919223156699557262382018596528204338901180529463144185616564550156541231639646292920231284467981660162521266979302191799768042672492184055211317306999721064878690896320382759868279325575448751290120160207029599883710751091299847709615714187925226851041153519930284232877075917874328274102938517551675702496981224142039339468445722312305202372211214332883868466436745905068036857851345242982796348329295892411050846802203230945735848980044061969933754211524274844279686983218982698585298600643623020813379314623005302920708544911525795542079871431827571111320941799992883562538675280439536773519846383769494242486307200234329015643367390771758293624868322960389231902245500933327390053510275702871040597434347306310299029698988085005745594079771857462141087918973430749233579407688544808580542096038200408769451548080586156817770974377460879766048372409208863187933117854155668362455370869137076668090354592753439377666883751725359315801262239914700078845478339751684817777717612369623615299641779683178283193298839058181380976601078020796549494821059565923851933229615633953108315906306509825701860483701313808579630663588195904042891182091643628136259466736575928851678877498233314058502437257905876636249710332328273505409249398484425447471782875556994938370267555388535507218545146120592911544144665414847257979175343199188324190067846498615302164524598126393672637656434954125128949503019147392616555750311063180360541866241684370260457917912124668689854311792762201870121693408731600512283270046940252011107410390472333622495062230965617541278743858522714766289290818506146432687177008673057672794003972832089771529220662953529534107888752213432503773518983748339855202928977509050381276975377082328809448552904484063407548872650026314285496951626052166652740344527438278897836411556694206548067263026702502920468288585971734029667923436202697060366708942989874645671146925605009572848705219410932743639818729429377189455413644252110990728560590097879414516863734118464218992509699859876119080998985027239159217744498665576916045415704470961360605026896993261915512653179684431129431883719682283417363253730716796058984583621326030694859623132137113035680592926727010562132793379612186998529602243000512353823625137880700984864783156730749632059698590456796870546425482731198734941852150938219037585640714514704117365394798781209049222285070563629665835481080316785367959760525643961795578659306455484280686091212513565015733361667599638577776922366370709963815819092915756859584173391889510065931305659151050839220162464749079700467907042013127294622343067071563676185720811157336177343503888997247094388292179410700614985753163802441649483770685598041636253933511469862145748662764210121711996593455824966520044079493762611162300881127143165061723676325074792191795680675876871048936120388198587965671558160568259432857456053320832503296966376106080034376422794832648585141165884243712894675513502613893275406606205364023224768863460334558168890781154421795124232083893354550940300334116566935722905072807884916303924386783822724912827313061334608245185041960912261228670062549152389908515301033473764037213820015170569555164659620761258799038908065701105616898504380848686229246905907096005206052268743061005011717397420655945078535636491897030502613115027006102865189399143147879445633470510771995024520932345748076520474584000626044497628624597723742267130857456042603737722391680831218965892235264375002556184655916903865798334320641729250156801126938111068292268005082310852377273145670787394663494642934948833990092890504901787436836094372582662775612133902340916561796069703930346026368580476095281428900477273536064209939869966179622723559368712515287142801928648694258555208142703571272268249840086333491499659858854240968298395101376694688579397673903825922904514132377999277399250820043558681750064717513545643655945440824494956524603293454278889998300299308180478528056356485413406864329815655891777047299570061127184146928937056105503445120505558400686612016743024112621142076308202086391091604750757912473747125836268611974176588790888743412723566545421164228273818250997118803612869852496519052923473420556723224160321229039243441017141739821236642499917704256900224314449762997840560632977030713982078060348379246766029469168474278633277542295826680203531773508207497625269447023489638003298071610577322813331181950020083960879832143995475489214575919183134511156330944442548640050728425235819741447067267987373456799977704386172536374254522946120191229472481671657476289520592268676474340399463150917719390040672049927375112819013284362108116197422959686632389498609619715611625041768774807753503434296332786001888108302887756658704923441637053909206238031567967584923918317326182855780250377298196827179195857412264523187028524084970603146778611793344346429806467731235004102929874314006172370082814286783556849672880073819948919679961854159400669222269217447645867537023306152461191350875777163731189627024574461856121523636875678981501912657495938883731653508386342182268050627363188203684047695418353670001246487675948741686155890815541615428063256596288614046793520051709777051421704006215601447481334274974458354464669248603203508964671813664129804948786266818464986562922154025235276726698686081793280378349124145118789370577808846949877284897178821992404077247003254214450897004362466901207210334436738685689132331912888955463612513026448850158027145112171658495043514533194465070262217147754399054152325281991617482806241603135286513802003718329888319415582200920750891529173057040543011864657446368246794659053025321333094658756230155016429894239069612695124101377699365590444338584451880711263744586011824258605542816052487933620316548385394738625427214142942835262370220825478463456556714525085552721364828831211704359085305642042932542604642352793799030331410186628515662393215082799859877245401496415575275700675195768633831165783406136787053019613786033554654475052482490993570521684066458738904839967723205809615936300041041760254368358898525648029799999551085234488581720262712249453356070387735580593398511018381053621118020630760153091473641644242360471109200983419864422516890270525013596840072011635947207467405225350402581062421383080132575140560778320529981705048243417646323542086480269504615263717361506044823205364804156938821890421438029684034701516085276797081667968202720212321514385970320796772304208366466297239676034775948843710107954320006289557630850950937877867842532729293021930655935340544764559915762765916852161240396398380611223581841476802512371045445495543022965904697418496604964619817460677371684992910931487550898105966423702596464743197633450511862979707219474757707435888792660972124877871174174270780930368768256789480123315120764221745383586180948231629100396689328616187276797682683028265562999172634063736931047060702237924343741591422855899809337809693048213106958462997613677576628754180496926161657621029282888743195246573471716211566676104442854669022283432701970182111972475202755952594741511042391577822877749137762637359335637824690934707491752221369975127629982069388272067334206680733895739665641517976976162263175014368181545426580987949502515012631709076975147523209019104892327816420281077385728393460679422577866802331132252982685768248749978034185783877274722192879125288355115509667798962575824520759564890240329886980800435391240990322996154291012642837297760255967434192640589339235157492320092239245360635279387224454061623149618144305696429724446956269442229963903720571177702018684605815182742664074292690509087659024715267067712663653171147921859166941337512141747585497727803915341205087779073019053680496672323409024308728961722023190504685513594771998716316025068574771686397462016666600631945990074753151690982982911202130682556077201052956994490109901898345789252570792841764137195771710125545758877103636547528876663258314109536424645126267148798234600516201350559133346928183066104702976630746141024693081985821971070319327028548871925440659232728596925085061336158630386393571385008402589659408902191345913950898622738663001024917570569132559273613756555374402761429455320700223192041332484478549726546132569590617343579570083103811856721550325794512728095075214571898671744946384170967010227590781398233365693939939740966465709231527128471519005837237203190849194151030176722174365655858660334393858700410344707877992526840030110138865562032804791815633218773826388590808657740443487885923287309197139841901011764277582738696636646666828691738543877618545693450042313116115126312918903632730651095059721252206257754535690672778642819741169659000251646962198758033117721136020043650682766227644308488546052943149896285450848330081247818359849013961089381790001150903663886891020980747437518863784064337812842478304305138834378050884714570990204569396854014331014018047147427867953596792408539011311857834740144319999760223514366389511926178423060162611548528710928479005664180436458959264622757921516448379983226338482256437745752174858700700794357624489805389956328692098632912071765443244872647669388947203220285307275053906152901419043140638018338144478774749602620958520440187753119812815736047192516124946217303889639567558584775310264339685300564879714873762943776071498614335659830585001417727852459669985136277427238294261538413611553652260523022322224337786509737622761603337123266520423387701077914025260271820883516730915086749361672663197586288186913799636999614467497577504276387668289928834861010761348095559291894345279930160583160905465590301479371680792775387435436402271801537807069573714567865466790190443397133589874822837502119627359760352946216875014657599682709087585429940623985263798033931094661616908473092607778339156527450469881182413176876720365645341756935328491580605673261879743356940399731662698961282310250718795876941309520583700235538262697545144389778964595545880951791299997441136430717886061566339269256530029166574245599555312609158893088026983003625629183603458298637914654727973614325672752449719228702649006638442989400682383756510378250015846400748167997889795823449162787420113048769374245768646484637489932214399228343233821269171396827887964127129029615101749228103883940993412950613941373187345459874143485112328481464533766374504778377039471351585912311966752624830624931731999367409592332277511223579762303132972571157104553655771209844173129517557535517977596399523401687143722250520849039259558547198711733793943492482001416629131776570808656761496873105186679206878569196322877688366997706335784752560355009212493146172917163678880967430496447229266570603345566944283155411377672154871244404822674181806373379822183725548236476910997751863641527616734276879136915673840271347057700042797702155601629361751869172657209904348699600416988532003689028908105203595924700423321783518694697246025367012994789682205436723586293605352430762684190327061218365210975583991762210321260921312797273960624237186990557720555160104085882871448399610178202989705719495277201673984131939163494489044024620400628686676474239463288414525444348541987151057882860140703197180822803979281764220086894191220349333093380727448411440299323167699790535989481317512469010255822050577743252617307660263184959983871826591770014519222893583662790861083389983018857500374323746847942358250627746932650382443015316484077829301351835063615222715304687824746027042266829195327581245524772378906989168508807309658381133442277983388378180107445127388399125254706079754457142072956012984062384862444943294341717146345650090069837210321988425244217934907327835217781799913580451604500733523458883584325471282254578964240674876249123875639756616246717484379737042338306355229927300063889481372664641975999663372150832186190615690510983143816574470767667761916212259104637613900936649384700222596706510435733727309614786940643903491441977636412965580102556232142363805986019983283727769589287739619429844164060449328038179716589808605822958894616901433952240325949608188779471812433729931664892551992635048066157185084736070460798570223342392334203062078364700714007565663296580327799192455431787140187748839358629535060661176236699730438831871345913473479617807176739056389605613136796116727246214382049107822666542443648763182639830759325757619476499089081734449979545115226774983065412589975536483833425519962828517957890953743054774970651080707858917683403845775616894210101231551524615086627269948796150723330395723413384334974377624368967802265118308065563977875671754834851821207221419163253666719674049654117158642800018316220310790087254693953041548035298581517937810327069250041122436201678000764642663129410231300267528598251162733896605143495619090143931993846928531211560182944634302108244242777470194090550062525812013705361015682137661650472166645165932833372360038389712580679708252353593680294057697313721611301118971836763263984746138123061942339211145247486123071443743735478143178214784760576398827771519338499958841211771228450933358079350116073008210648227380156625999299881898599193897082869990282364710497942631600925252123926326603831492946576262812958788870974238745982860060885324647627667363625891084277046887856334866620091997862092330953279884428245973087627026631134569093261242852158491349522752919894646958447162056656704752130585106736497722670775363167255980839719541592885379461119687023619005049837976765240127312912103446510970999163829316387143992117102743458439243856859270531187510628239251968928101486517300143100177010680639007371271494510119719406237131791729640575190163447877643614489046854550330311466135050582647791386089204999294523513958732000359114248127579061458895939318444472430695405567631560304429299735775381770736809616234361905303563910257192223268388953741478622975996284774289860891605669728441013829035904382543403347366786060767676890195818677566937425969370911185190208121806680296574569015000796771964199982463252461542484456158601164039379512512346414719427824936501089725123446618429902668557509953201990354053782502175150531155542988801862516900870069032666502892282272708899852846176130446375392978853894526713917793490318554173067802484350367267002927516382642858643275305363051671678851022697297714417597674878272849951765047621080345128720187814984522872074337978132285736484823584324967963059363150626070758920870968101792511669898600685367170965448179637698763388497748351040846333895379152030730020128691577657433869661212978636433374472266647233697022148143957527493051568709041658892459474579111017902667346830732414719178282681793510879962284279884336274312350718842141142242990560785532415461099260904656048100228645761793523949675419601600983473327111613148163625689072947387856340422572390232812848031180034431038285541127010428565147285778908833122347744903078924204026242811696705363636357436706365605042087030024112496995175274480697508737510378768889534510217392335108197822326347164174179304027678063370686616688428777984198490520689600547371367209477939158783065319928929488126924366061771419923851935736621504213432869873017350524657110158610964135147236460973849795703179722105796530300032117757441330194394410882334178294275709140856154249831972374665388257235314846923785396817555502870963679186920763301917567789199930228926258745770098831544756555300355121475775381059755683245899765964174021645525462083212872930021337940121097515344280336338172792203687982389168633593044277290108001850091658021218004769268847995376015955777436525758358196255002818284627999159170309396165231912900528629830954352954831937531838330375453380059854655276355100296729100242896228338002496029775384522393000044030323308715226994742707497676365805370392388493927021765623237566968500636267088435675192890377468195785845061327133624743547679432226754192129080062781892940040783778327847180264406268498622357305668986418968857344361676008231399306255703044949173987182292791285664077923115743795801310957116234183785649668155348666512806967051434015100596294715527716037857855058488591937831432590166492810638113742214080053138993555526932597791263804430917476451398383496018092882862274734419147443658653168105094168809413741020562688071848693891319562230755901178707268117236590147828179568589413718336508252023439372006160296693996072725992455371320201721578312129997275709639335204302483636909336450177194750444435788411480693074394045637832023622852613092984066063691734759256076539927532350814656390812456079421466667925046104549073643364757100104320093990975166832957683698623092169681146190137886161655038542152879257140511825153770072402226345041011538096994000734158990592377754507785109971433609440040816037477140201196637513946489559170593563098166613008774183131945346465867004158052865296856234958347361738774364191501225014140174704123949897711034683715490406136093708622727399582744822771287248914658130963068948068807414259283392652655520808428055027586024498492165076385233971324811193358079817646029587795371357171324533110300828203435851913186248906853129313874062114664490596690563251911055103495239565038194800430287702129748309908576892574567632789875747100253713991337442728227164898480293843132721344688262399973060252593084175271624280309577865384492228986998231421490881803136800152828378029563328541949567702655975107244429959570219901487066557799838579937929665718363344762026583300148000540211688079210539480627184644361727336090803992569876945412188709618768324044490616876052582376985996448830336683674458962607297611046962559126879885574247224841880621756785695591167067416915016714091776099251389045395475691198212531295952059064280877035783266617393588145442059235393603712379984747221816794261285244589770315387107083455130551751558438969023549341493365830674529001405730887633116667175682984931588747808037965767249115618109765136959923350198699217323044195755889352397889952893505174480533607104225016001720888406155818217508787982575437262248633510867705904172098228369470036470855667199529075413035659438020758701067047382720919531208028243721487969829315695381791793255088625209875126260456755908977034745878640949855822640546862506633643870239029615355479411308200892591230556482047029457109032091576039047974502507099652352642734925019267934828696079037344490587851832722576179807896840435343209142908009782850267650450212410972512150805022502316042932781339315183451506926129722198116361873521856215593544680306077142514939166407599060356304009613911509862959371956638258583790269143447344132820983139078248064695547435012495725498310724369735050709540113441152414350054363503692822779691834539561934517391384000548262305284513338523477781401874311020536976530089314979192822729718635743132446210192907406945793878464511353957577512845662236854650231774553988506733016765614349252477960862031238806577812740757221230682992437990312796587743403609736855560777699580959187874706952452808073206422383196704174795853256888104200202763086998938503787988350811281402104602429570104660572302039335053407805121379484316928704210653059078670837267737923375898681545456868134517421316702767747077495072394528418801113116418678694206792950579547408966969623871428886116314926231008266408531805778449010937280277503153195050706438663600660406884469139467585555242222883712121302637538650999533038664824088992394008222159115543267832023331314749201659901417480551227288586507097499944135675730604294449882014786193653128384229797809153352833039317678936403293460430895550021746402268248842590158313303126788143187838467854104967072210259631702086256105897210115896113550427115633398019991799089098426934932622558950667832828962159778206429377535622966892367883889719619787546070613541805783251731324044065304911442025653284430030265028151689440822491708446946851279486823693489874154456375759651705738161029794477570884379832873623439295304346530402826318437104612176239247684538561164350884863576765741364591116008580621595078765413527684185843889118175344237254842674173874146939439948841165331632913843772377295323888330834674773502028059629280700772204286655315125197313416760452067608032638187542342207220648267116564022892840161980721000539763400354280797133216990526710454130827700656219321226887912212937057326984634797089274209002601191231386582597537955674439945130933457643568043786762896952598515613265625984233809660530581058634285849684948920020081432571507707006454429268744812949835637014846017713186265966331165894469579990043291277945449338505582384996448532040268197768781808497654116103949081812990087485744039256178963979528911499894218903573885969213800172819261891334223869353271339061231972884178907469072431673979665515448890497960727715707431480784555410274808048053092458465673262335621070146895006475370639411728275048320922977316672373122720583511970203062271263735579468567573474710759513122882869033994169922925189099874871564016894823293076243166951315314047828306051015518838164702352761803752307571525392437097199435007495620501397254871576512833260446089140340293768609157111192120375731526595905076419605199635979174524534957184603530833612659075957331412286088674189272562882133208835906717296439633580488782502350759332142285358997352635502741223321673833339518863938287699987559514636368798781569419013808391424727516782638349300410782087000536394907958459146567110413110254442638108184207021228036505683759057703873671134544426575808900003880852146888561836888809904987578411101448637093166260294648635460845087123619291252641483687502072981988661453143728493153300215587810805109923238638764242410716619357307800290532502462812451016560061204281824778388219230811784923545340645987730208763814170489680642699883701113431968917033628380795375828375290566687425800199415994626463796140219718682960423163256506896336942893561562074596703706004352907085647169106762947762188874749484227495282750181311096747772644915758732799668355445139146092598987293907868574756181956326200529445457184971434328459470057583379195659745834823496716827062621648431172514794755938103160829025565351088899219374468456943568051572916977385759048874709930043004179194359396935631749510535439702531173914701471629726046283871920161570343956576853140553756403340938463743997687835091767811003785225380680866239030750170345908581568015715513200920339269370291086436496443913972090451711158257483104056408583361131869614887382032610919034580996166785874660623984403349980910778571540391449524098510365567429894637237143863996966107160143280564463231216159682012859811110127339649648506389149547040424967923595412916638319815611386213506617095099772205328940598950761693505617304122131493600118276159359543660411356685892494902767012133855528403756147807444736002400326875796003750524147349609214332629121467002210621196643388629977119062827423672943344757691149586665080539018409487215028525196356546041134825105614360768271462043609755652527086957467075020941352443153602298633832197171765940746258787240676272226040906311612963777645529712433976277979238178169135309009557663152547067292760063034271203237076276867893149514889554692514751163661857769368681928819589110706472738684078794666031824861894915802665571582061939811903724503283961496095512156732105668050466342084025995614848965676648156119945839264350544882997513909618992158092624728103931089910677567459357375916480162845926331164214151923357028540743759778343990203308376737862414987079280654669344428760131307419740926603139868503143470794223333179934261545402083480438078641389513220006437916057822465172663013000088583698758090162214291393212467353891793142808016975431395304425955889520666332687925492855090156543008814697733612065908356794203168669714909310642059020374049460834522267531088645484694508211206139762975658701957456132389121208774489435726280189088167934049988738680559344966974351330823286297892956641269850243278295740721128565915484434112098945682791590633168275546599657886983800849698717186339968418465809747005287932716036347911683805642345544018447348041803263338339047968394680805403734114531066139495626904805615280940560626838045236452036453121974944737560205430658773357013095066797212224438246466524560661296535555846575236307082180994634363103388210047229583414366770213578810361554099883622097822678402446382397193875427613168103034645907823402664200104119713766732605416580904185633893272090211005931979716007520227536184287562579043622020133105565896408285303030249254778882967206142286060962682066585534583885097981162373804269323917051312430706768680774588041130424584627204545404100141791636187210895709720699291903006547499384966274883095983221086704247431299896132291078338526290001164483781059483564721435871815979083847529117167617785819945538319600998237097773085102996700629891049237631814552885405660353719866939893963501919123307569430068596748302630008783603050625743680925830242074664139749808406314448168920915901320293255254577979896458053149706032455435286826855954273276759800219144032274569928475243999934224892242485373989320817608272931129430797475709728385156399465099990081252717668332175496646480050192575613142332920696963167934831042799023652191901483590054299711366283460824777006047739578312790252181065096804052816904500849873905070781492842905184064208213459471630043435148646652376132133334632706755787819263040429819685292694464444930594972954550565815484974583915530768724808713208021509632190542270111888257323154432927599636841649017682643287535131746014452492385951431487907733951885390430820687566834524983696100393845859475421667075916657696799340369915062210051428440310529671663611185294652796689221028184824694478966257103372182256632006053877909114746232868741256876489355293115069473085039778737779007981489975100585473251590733621349733205967225334391199981794963948172090661424452216618352644441133916865503529655867279287915798179802150590589422690217397763530875248550708153978504676379994783689231421677828423265356165141170361325109814236472625579876833144208087402169480031023505208279660123092252797718683878437995101211527626005040014762565979817518034772999434637635195233633529140427569468465105841644718238357261354897173538790985460907144998572924159774123037109229528715190983614523575279530480140985275209514066943433408686590609123767444817375295076602141763252904052560965351413347112640450421494365133743171134220114285674529393738130561903460294619743994261551543954423932552805167462554787300189442619699519856045967667056059195975567262264014708332772226374063680291054261101813229188448632525438587683138200033763112276033832855459231128765727038932070516705828022082323766432431024357283368142604198978406800755290225747432152186060888223709951795916177893650359747166441498177302757508965304161156085892574104007654224780089876989164353127770968613511403905563171949787806739228393570625788495144795866692776148743471684008598780767364726117782096440042655439061652765395438600643525539025200638197364207188338739149449614591951358875038050249712546567712442762025136958799611579369706166544877855999860479786918671694065074633616292376356834501274298500385620737320496718108579321836492011228144402092423001197949065006799124125753796087828509894819276467776701954208079866304332396409299029323243066508278687184476744605966024468434060143785598372549618576520716108648441074860894447089778870288749340877635463010244353663128454674818811580121036855374239738130978716945469922651717716285226563750087506626937085806024523282737654928403035948464969158289725002730276950717032238140082335024962524434945764256615955206052813553803635179362949853417556377750489847290728796939622108669810899324898828745380712742269234480058354226683826296305668731113667351118489774148128685377782742809797813036598155059120461687861291019792789902901856294301533367874352393173815585378493071372441776049225631555363350027296163138029520994414428387416275204656365703576145174104816421639589184428730981324847065492103993642306132428413946073587053422713479362826350179540363576678568967424509571052578130947653725968085865111940162148089484220180951700068592773636749847691993645113601799775121779343180932767228898555842882206947809317448870849063555101098736217226602150651602808131492506677903075549315609376738613649925103263073906259629960996620913630301746953130725685477669418722961066182991771683444845244554226826277136534544537378549486626640520258453654874062109019728870314814679837953080594458668739682897661156551126607695749096409225409735631674458902602558058790475760480770635486359160992170442453403324319997190169185295181857797519973510277958177730600558169039772210756244793087493553842316920367813587894789896273812416111155447057584663970781428565049384391334434047284040329888019026311960053102487764690967044998715398846678546071291146788920864762420118918425236853220008478356558677371789239972407017664306810518153892875999515552496513489745221341471822997138236356385103261175158858317732623744722682559094537098512067300852295285204931536668150425256536878102689074401742046446245773235886024486782788557828118576255355811662710676201660555571016791973539905096319424141897298041479584944625880822358626402568621319411188873901413657733878988912940366535370759903709217044009853912802667699122682489725744758197169128334117933825576930992927663523917037596852379316384297779946098875267995530039668585025580232048605896629787321097052605458870302215945819990172783071081248754537259445239895955324243438192985602137567047926659604910971668719838878411072378195311199065833944726274792180107235248215034719145023110623276462299891184965896079069730537406220573542324601419924262461563580433932865930792338359385790895360550006706409855060476194258958613864560587661760383553207763867234613348048004001111175522034299802809416195356680995362907560014542248828348790166792723195263821554565359879684497053905949181294633876028687738019591199767877788204879036949470600197791959131394196204917402000849435250828050958263877429147246241968979668139221805978940077573606226122769155897436345861452980801967685170365896848465400044044653490481378727735394838348676810752539525175699545487864097157105687349294841392092993375617283717543689337304937900646987686272502808276385092847378387708584675618802382745445573737295401279391564754448598386221254661864477937972492061761734202631725900078289002197189526777224749174975953925161695634636239113090708492265719223863865861781203610390652607563757758346175721802975291346633877849879742840232077821828864806907450976234348049066829032331197453009799530661856382851495885054280194182587486837654509360198600759768427437959060622746813551901817453069471453825019653353147327802154297074992611624717417369222647915855808391609251755407163216474302629372203998666497998972220615745865376038386793446367709092275825876814168936575249846872163892875609665544425327726525871325848861838713942852484411799851370642584029082148912970105974609181539623659950835967042788832944213958977374302065452331994455407193637249055078091261804190509389996323912358817037972391197524212521095054675175632654777268155307266208510048888529908583515464538371326657694632744766013533887849610839065617790179039113327681368059810295091147264462142311356694904633878973133923497220604929618257973864382383217224025954718716512658609817351137166630196131014279798307383268284740954039574046980571886091441882217522424207499977793754731811905580642611969274225675228113536872896911470933106148177120780349792122692651144072049859140422216368666490643891816526202076813778713455750101870881608916052097806853078004186505621406304349458912622933759703669267187902987765381192664936010854387659005771043711226328856220452005547588443932812644531764869792440319726756430738807721706928262754922261256092214941710778799455584813887547453282891236463215135068818226209292659800554960700528375383781592967311751989973757488080967553571737247073622527107128979690076063826961802102497453622711325324424054546170307606645815415729295819680553800847205265521952650872564830237784294866425536371267595675450941491294883881915633513750983740103002020410633830942552242302948942919446627262226477855175859418025625708646850034067324977152767735289930661760703652989556372782121246455245234322238525726713267838472275504783617200449933532565951299764917096555994670693239022794224805958127814648317150335655852945473325654329266186283377067151697689910744510376504186903793556864755722702927382809256651951146191141287175406821766613564369364101526543854861670942411076102411603892779508757573708547922010555325182499089416372976363303592324480580351023381521133185073416097986477763308237023592955366782827866916026982284483844180351347143744113514500037679745522507281291491670050682577689045396873804012598002198316010815618005929834821013628262597639801145225287924277469843379268978719271459944068187411196655756980875023822579590767152500187968469797098772504880224687622217211227189855965976532019033136962096140898216668853454957377378327720881393564700270240929170178408795441085221992680351856493388200544997283700987900371125111188512107591568741904573065433097912763616993225773222265384552756488875418221037688607165816182149682787948311666815582058053697257624254906334249090640290171777163528656339051991192668064874726452961591038729350348300032806299162104550531914187746374425072697611888942027836033773308915279520535500446985115493148717635501414781661912236605583582771889030322158638517180153252755625057107231783026265677576514346418368934046758888751178773653634871058368005731814910895673305785505999344725796391482962867174782880534434176364640774296373177449675503147481960585481847446274138787573289939211701009870331415989778687004121826829654454304407248445011843200531722661356467461884621504995852210614898055663097248061628827602347214662831308363047714031845948136778378165616377274338979984324310344251074611866305238465016167997096338264563318642362757903588437737568941871460427914079445039949635835777822379132724353848525175261102698523302211812088785148337128703212475442165964489407024915853989448284272876674411126412887797355865965864142672586670031008373050490949106086671920969494786046550373578524373736990037971588699602740707628723530841397253199522915821518914174913765872288670419936800339962092860375908261575706566711056896265043578138729489815817750230817487357119455869858822733986973289945289462722512326676400766716574561553983272375395768660863192905053968201532661078172655325776452950901417997379721963767216784849543382175195875376048832739488379050329118285954501021381940676842927417033492592989941983303882141533279353072094799774130440227060583138769864464806535508168297803355815336859306187838275011782712958947107627276144294135553449633794202084898898750091452527961345913829662579592775978625397464543947498375256572539630889860879653285352844140601452021616876640812929412965923300694667343616778777401723330444884757368976229467756069277463471979500310701773074720487271382137948486346693798962496114969471600849701003057148699651443396269548867739963038146322302598254876182184077761808911586505885055240727231774172184715715990609713958327352097380580698260288118802860033557347938445825524464852743159463781740179766030351612219398588676142408139135763880194496231567317237768724619310106787623104338438724687161816695450400372921393947015419158610811648587829330774425751969715920471849283733009877311593237135404312783849532140023399956298212787951050060609615532445373435456282938498192480335541597292661247115267467073484030007853452838886332551612924972632809079704787266992288600644057689953635298867715422768513996850666145578098243837129871134739990850417893562817934343202737691177973223545904814329938970498638791830504994032733762225741013300917712986241504386805802034465586933085163505690189108572050944540252281721951867953603696678238721529711164394123998092318616744416457398502455436447021779620132248606193826525296009274878443221956148747977834302905531010663811740336726587827489303048328789614314525122014930513019025238238446434109495910630642091041276325166816738507153859223412532611607471087992470843700364225086076678773461010603501415438050027550201771583711747380896020411763735984651803703672817182641395317708473066517989909567696750550404771210322433394662767184022061243649935340807723367617945827329955136684824385752917256862955264105802202827137613841630258680546379448496536208742862355036299049631689536973757504538564757397983865512203343957298857940828028444838133507999450797169780064299555095578465690845580445578699543881990383583083805445100105450598637098861055304265487547052480852780015451258984292112096032732817159412517242698810670273354930757715934270096501812269584935567218813226764917054193983205798543757785314212724925304112359422720180205368771402682670882359305913962663930702000883990398491614260480453945954911469649170755099193959401249725974449575448371691659364626616039236251321563787193794580755686048946089497705161845295238422747931120212519240807293787208047685121059644475056470029096205432696734443908644842353342720891223725314949568685300241244587998193213922918322628031055907333291043805670429536498786656555485386798423003064649363891434133668061056197115277236255018831041899040807109344613141752526219957265833581846715906341797443682430166687655695674439827242062079098595370677167154139035841317540723163112662396111890606431552154836682676892559816928997963235245639305373893252742623187669570821462198287922849695546432888691292978838557192917408621129229756515061113576565227254926021556553783987799306641374874651588908560392998585550667488293284666007893196598951903326589564392114342876154425996958086979374482449173966644724597798111901519096719979694962602485956114480897476868856968422525554945808367285319951947142453575981703685473419087256094861165634643270793443964175941296595720444800566140188848884194432245774878547084349567754380948728483416462072055892117072365458781725249327393817464475616810068548637594523050312256591446093435273180011759039759419264803409703463824142294022237909561326415145909971371031111220757271767267671043617239042196265544489263842458290390213048515180936113340241496157622717040432393442387722709621284192622578098319506196805604524989764579133250557619063396757279415617222927902652070396125715128036762123685457666685801429875460399103044484894590108923242974372548679692812136644892034968766835025392198575232225012611432588403943776049030640280868114664610517360775063489687574974381663440760155882459607863653766193232161105664600859672659844400971731068692481634526835981334931127062576969081978368344529647285077792590335019899463696730784411943081216598963113010864890851048100115939293160338316553603835092656661438189797799952646676525492628509325620287246244878456750137690119362389392383268133273552610765774233111888879312158816249927340017906129891585944396660487454657155365409195680827012543010369281867222859482909193421305728340879240250919983154508691743743228023665087812343365402159919990320242749354746578174185633898369580420260410034781963275128087672315479293965557439411968463006536872710060497511788769069186319840960918174281772451870271044196364408431218972078109501696003807479753372775781285094077780815947825334245802199483911682622702879942626961468180415979941285501526559079626948308510850641844954384158512456002182205732718132073772605733392110858793792193304423491010499482133880167834162153626654212936869288372050787683795088899323847433824816538399435630332033196549479805708353520816774906166338853211715927530462273285962933775758534559202099706297167528332436746775229228558712230683708606411692628283121146876211747924969177824467783263723616840933448181158582710993045850961507236443596829267810770546018904230303454831010893476325302518681137858535614561758626346217788620966006738261489607763654131425250800444217044638873918871414147155490517618861461536855925149857799835318470419775886455984076476630541116175415593546746964577474397308863766721419166307832660291953081619873433318963363809585692401969126118884239710021354930028545583599978831223184832900016284033107152989910367582678941232182778939073440744263528039874962454808517555220429710305817197427220098957883665365939719441875061218676323150156198884794929813919245411388191976331501923214134155968843535285412725267367439772725556566753895172994038653423043565325424994039474241973288429673937367479807111223284434943460833137900967039578335857838926088170933211005850142604429543250301627977734652755020458783365228505561246871705970133440834882638584576616516817745134495859240951508332388563263866843807770085850555422283282648888319587085974432336012875510879241219897742550395256409372767620315509312803484063937538800354972715199634626029849040201870084117663408403554008711853597169117255960170349456131681243617233694862007213340846034429800019641601016118986244536151740349556354587894629300737774092187593984765063392214306163609954598397883500195566501822205298343481634180146601042087260967997930967709621258937536978451946743763225467778067663476808956996844035814611535052653430715606661209693461494183908771236813924482246472201279667575746906495100815901430876205952906534625735186727251432013394764127613234704269602936304551925301291768790058303091480979572803347597636006647867175305400474329490650309388616797448604945968195280718869332588936313185075600047507463252776658935096544356135739394211947858272415895618287821499880394426825175829686511098690626180826958360928777643176211092128999422820947717669200923129709910837539666123864460702936632269220358822458234104305158444717296176534924106218752026492358059207186131976693304781949477459381767342007100757682286649971100048550642044303597987107439719906366850585808909514463356992682203375492665309723337230524755614204422631904518790710168171022054791614966276772273213646591270074632870318811922066889994049297308794730801868133978804530178863792649915321400240095016371176584294537644842645417841160796339763833084536516581125099349209693213385828202319266444760033398448960748137766363756017108476719958847859182006096551216375857339462705480841942968946263209562946091705327917964042315474915656198873492440954846320873873891013425474017158364151364347129249324425123550332854782183857784578678085729769553938660534371893756645448160229472916036731650015623878943260931541475956211912777734786469628510351221060070590785375996168563148306931209580692084439786661193080786307476085104422449975055841569638207479096592351389258853110660975805860401653338611327330914327013246284807328396228400134909462781897621620897782575155540932642877376630695104089734616679300102386649650189494817263398109143231070868532526431770334258476199956461051141888547589589040918303052463334240999744139379924344192478215638072716071713374536932986315344612822212713994893103758480013272129024903646945824200563135911252471720560230856324108027245589310941513265113585612821276150107240980146991625959199890974641431791883046604745120839611053594265860676765190123673619454500016969903433395188286597721081192572753753013323015211075603944644664677685079879029035444087495905714585638451776635357475129590454356169934843750064574644216959851463092327899243743156237098887075086975403289328277645692879522309442138060034670780770544461657762546696764257836723716990079831489244881165252835007536124395251538145274157737891056575036517312912966214496589333268177687522510363820237862188257141866905330267052340473805739925079256776333421580924149861615354947388504002629760989043320202913412516832553540451167398242354906784033848866242358777214298545727270727695453618685498429990834936772694111300618022019290864961630555433232600770179458861672931375307219730363203197696946713360478558797712589223007872840919834232056716362974676151201354044035829777998721617695865322106140665557610955400303662340506284406244997680963221017203289748048856235060750120828897623274228527621742837657238025619085419942119535374108029868743830109720477060561879331996631805239946927148264195790147775293752587240207220947892862685152625459348359301327797669519996407557356850604245799112181577408374859259157732114618919299834524643709963715135005355071300671900255631788388850438260444857609494947834405675812412665754575620257577418464162633012795465799474396436429697108944250112078906488477459924501952580786139687764104980029206242064798295569637418851265323832127277584340341571424257958312502432927510342178494330460030257875913670274633585076959801719418720321185111899261103991786558236883731119823138995762029220675109283649097419193753806269077145364881399255276403465662203208016330616503283827475107377647767873236302287700790656486639684913680793199876040778627325064046950333782877145571584674040875720788579476473685204998611084241329822832630004742984416769522139485749220430341735257702444095665213958727183596231855504272649372435639915340940153484553078144027331187471180556022705652720333100308932638129522526129768169199239830164372430105885711855833048654283869046400097794622459619022612184059722143271084291222374664657251253263419704111511588831519225187969603989358310027667574990959813766895026811908579060945354393742244000998828973937902213025623589761238773476550116642305091276705310964101803149636490682369931614446966580993390809574383826380155934801964192600209452410165149379455311747168962189967400559109620965290721034853900188788878045442231176382897882365575553769426109501033010373725350315538617621173943491646047721886476207116168893886917487913567320576345837583255331491814896277450338842877440286301705871953422803683414529583022568019389935750938219763943227185585726387699757352387829322919091400578545489018784463237461205754788353118246286427277272377260438891851639298414635230223556987555435517595493457337717058049391440571557716747296864875433786321527343822990398505074401048916716989638335327200537926060437459152354698780587383350417586560286558108935401769734731628053511320311977205831727654032772229584882606067539626716928168070184647297304420979095031980554187715695852261918049828795398510165837090137542218740788725650015182560929680616409517269709658640871891244184777163352084630898044201561299103302071791468278290757683099123182151295189422073686662706152502923191187825846060842972787438758715807961948282620215946614488514994101831357642105578173674228934056326828252465540451432903737697745988455232876518662462196646796262800295769812388244758244128355234257340799011088464413098578819248150583983337657406664533230775065629648302313082790236967635524242436997831951765266119739023665681134208907405756039697072451686053628482571352406734038891101827331215105034688181863910723508079599349171211157392100508324566149442339087695708967086689621982551861777742055814420575530533846309800180662024925145659689817792203921090099130392177824036499418366129312621087556759025769561258505469990958679005929669838055562266240188793868557901915156296006385828030835752733980904226826921012848700772048986356450717909968563329497087989975160429297232926421898915070872732643325472703435116924243044878400543126707554123091592271637276191900502189594964633619491401176915947121064968617914470834491218679837309341395807337616837750399121939782977809272336104625316708373599547389906974353472340725147656642367258242804549844348374838834614902910150761649837233827225733607913798216010141210244243540788397930129567636660632742472815303368708366922780108129337692346085937604483363075812780524809501277223615825032412295762245853596656088026511801455248532084464603389225628366026393101211185771600300292961963235446988178410362677749500555335742829642651596958090952329556194518791902779763959171347271497393207579204590176416450779499108922512762305599381987711393311290272885048052268014883760161773750383305426078262234351894522988062652681599989356647708116038427294760356869288856477200368201731529125336669799779333055519025015093561863357581796973808763454728044556854975681411785137322781497955962145730913176404502815354705922135154110270365981963041014595258074064019008731554752555512152680195957358620283551146644271050156944490546558914541528527266157676186585124245318439702257275209207353037336427542525613112538979456778291603429116669458310669545463226413318656480935233967537253053808622053938113319076886147315882561332142691314136704214798484542762799129908168433909026176213647963466301978668127684558196474630260311499969072289574591661872467350751473763331882365231374428041586843935636492307154333312459815642274826945483999668558377788630081867061764131565266191868730103660219513509454695426091126643438608349437155197602874880651627751667270637038895172453309930754166655387183453226337419207890757965783974074912904043144781512289250532065933305447896601851731400679625325868080852329760800402744628627518050514205376512339936629586265946828197086110760335494942132348256899765439833979508617421985679017319599158604315117238280786689456846510340675825097914027825820156173764267129770729172403285519577026001492223066110522007999786293636439236175531452825331577395565330735044580303281092906128825318989716394789053968523712648011061479277968068999711458861823436175350424013630736988436926569283540760224815074371971104526521593751803207225474350796368588377045810373771541118720632211295844294627170980430080833225137097927863076380688619526197424779475789932047656891829532283010741842928285165674288511952503603249976224540883106608052474796715346081825130193233453378468856640615685230031644748087371981588030004796748771677446164987741198733909614533488995740491166721785877750713899161355452733302289377749555872366237798396684890245970151529853257081047304354287375872472577624648297895944729574205573331470776344880463102533298268336402067081560014817742927729350338375864638897359928873092616852487690466299794295950554223823691976072309079662506260222120390620202150923530168139863143611630889077169599133005625279699195143930200125857107924500232536722023397045826035942463952690419006530878323068810665376629516325822164667954986118762253174515773266999066779461481397849674741635608935105108095141822443287790996326056957326459844458004603301198164541793686188063078101564028865062899343487419631360137793920313971137699047260882692879810038137641548072460249342717744754963360359857692274204409514193457762641679410553756754270429857397528067359636824914597157529090562692997141640311498516683417929883669260588347760857471385449490172230358822708867368795966676326552485116643891421082202523717706040691244417784752622147723211961461197580128561754935344964179208847600032269598757089240343062853786264787123004423033839625889199224818887802098224837444154164972693631559748551792665160885232593560488583586250706501270555911464052577733355221215768690207615909619250810435994121200122093407274936927503673136907687642466561479296884383713743474601024348596099753919818022963914265634938965188127528886219959883676561205839933080119044439242568946152335663241652725786871189763548551061311106515629952534585981806122046479247102647948188739560661624689515255403786769696316780433459382429529492809334525801469801475378544061426947534261891216802127406329753434584540170506645538919270816228177916972711623902625452214866939359345049904220565292739230713926764276172258348148127892018579301316646961391657597176140148600415167309399158399206345052085363775568794272358211422699165345471182991156228101637554001644979938513385738971948802621729684686837475055971895055594446201786030211290012901095610527012292449936742151298836539959508000550871352777382386279282647564945264105214503690835285727980171155503606709892048508182547355131732411861683619999922662417244806332628844811094260305379368050754250555575698515311479366017150503364807557106988210373295905570191237001222743486887367613877110899519991052078528010569789700795812331168380203570482051377657573501080359204357513163482779477508277469585043147474081071762418736520461132988363111220626710524351591339590646620765659619710826684854760613004604250124325081920037855241922712938175213664160179796922706613661319435744734427979243016847282274490217808768678053097035401417562846386770776459471371481566468279869345767961863524997967268151705853769143742999338743270256728130285273763960621584307141594157148235893771295338669291256460542622000656591358565842957022898459341354990168671022383513145364468845292736858120055681053199985450375457659556184918360180939250681488143655217314496777506566482728875670996451948355478905651941732397220890165406424872900986166230918950934930083210938223519835699574124788051376174298353225457236325698669566058795492982432564637015010161661237496346378264389870388204712416311172644083505992394976151040948810201628539606780999023478402549071391455438499170902548075928888033938589858795569201569518998579434537441863632680914269757291718207426599061652821936098308136792518517893321742324185281753787352029807494517153946685922767701538677318721475820733366892120586599192762012869245785415459448748333225698500798788755964983529484957449495013604784265879865533429908796463223054981252568958036896325430674114293354801422302830316793767377766969531750477783476073643380028098934167769742552398508706018782138182034225013667532005839975282850212361020296290748086625803164001677877550408257083170771015075989536924631309680210067158817119870041845089961162705787810965363313977722119757139514346669641367586037212539464758309926104310311045341445519724089402103861329814562336671365043798660710447500202383228247893780770832895929840486943139367288773321970715599159539697437587910876033208023406527002473683519507163112465387599274485041788010309771918398072779174604960196087914218028968815094882284259708827865434797251412075158118220670341656966181303665040531466913692331156234356329363282332171131247231591586948774782897655991355787709985468479324366332626988211358554177249470430931135074182993521171094848835022629716400092071886330742054116906765101445894738103532231819239343055637021162008867614916615216244205434646021269885185687843708901661306245563713865176118937310900481173999309031931621882411293198323847398137803292720251458153471181844335699733161258424384694447682154655914599848897934004754365215410395058189777013075808219765369976362318170894521617732253955276621426329019220900601061587404564869512849454666201141900540539408881896135175549326665474342817963485999282810502619339828419588102442354924643008503452956729435584713021106131524773255407497547044537662473842862644395429591661571632861535276026168748304010026650957940311152262247007594488909762429450153171705961257187695645360167677075559485736766002754111017135234373056993350300467796895616141360144338568369539758334271625828083243356907638119276300220389103463352375042269432546262895875627623257632110796970009046288236916551167671751521433700410188895220670224059936924097278626512601935999351307970561041030528471593311246054186566041536113360159310463740581261717856895474586897124774387358229421202321812796972412656706366251614439352015591745494890205030483670909955474570313434340473964090596182820817849549088378205326465021629671283766198634295400107526567206123844574065191434341099584543563684310990527495968246854628577584050410280648261939576217943657481017937386259070891790163543748062660548221375910122718031943977698925057599666799706090003401249580581751260290725043223223796988318682959449298514842850494436895810436254540806305159071680454531986012870775610237535749452701150858312491936142169719204061835148389119422049011377849068499412776792332890161473954315043971155635065252096586004145754993045769892561031023515439961282660799767807012577291057434862015918928801982546182463973923101180410308966591890070344989162455963181968222771042257707751184722556969380033138441169534650643144253896067256847100418575590651235502955738465128844279263093946583288560225090544172373580149157649051225692333931638799916521935515610880799788489172472892288888292203565484372353571804629257640807543449049295211386200453670882578563789698493977537134040916258448942446067254445684932245100992558285170973254510782587268831941271249229478191257166941637512123132065385223981430098477454127046482425116041920488482387298235507948216533235170969260928544258661169823354229295797863010094609257428553163631011273127527207241519692220209362948072999821966946556410985819658756499390001347076683059842246522192487061391023743803676431302356910463917342549810348950640312229222739342222485298801945483388649111786789528001191804134897704353139461646002305630547205275143477435784185624557451458131926848767324914463375813259606686384844518992624393661069703938211905090125459161702864472912192198877275176868446699368623179514384983814134857730632742157110042012539693681722062804589953458956298381187374304132755609676956414613616204053172960700198844089904814345159684949569876830666509886003686928840738208388758478954194871390847147146030229354858422243033858961573128175594107434076263783708216523612559428610129893652523903136390227761133274448300016625596112870354219300704041335201480661123773916734271980827510673093987405546049670708982535499134021816339947747635658470819981404832324515404221264781455916327316321331860309732962695245311386690483983852501897298652433600207091543909568667210561967337802871512904732143393321009796072714793012292374519535942499480483701753068910622248391658028710520695439439515303790564946114898360075505038324236956389890100439357001215671442852652269834677261392415518390526075714500357557273054106390528661858895711985537230413459247904212310547647650276080198498082973537358880383335886711987467037256787846871544582372803807277701628447265645694506739224691137874604792241059344249141464460843047747041456593719138067424629821774794476455218909597805476810418418435768558303502690777527666925474000388983406336727041507339314669702983635746892567826146448074436620310908044209247085157713956315563335873149925316399428508782394431346030630956322005203723200792819969980936916815107317521667280653275552491898314432628805536250770439432367560352062901452479352441279584356859159284932127271504749337486881752630719606734385316461210708098820621585839056238536614418785518863146024090449776419475911953836606079146053196928827966347767861955122085691689950698371370477225943081248398543190550135970007881720757019822601924527172585993130796574373381023799572119206730533631770962416778653662073742889112393588202919855515590850354318036333690247148204889845831065763952230870724850136347750061515431589504087672040336030016171827739904166244245126714053401329278859911174093759992089928478152075948787673512556464730943980859552220171366328059124288066565352064735666090685998557398873160883174573665339144684561462574216916693832043374596201390079902536594162584924547608122703556564905665336921909043056192461907565060829667356120849160136624891257117126659730577762183738081086055580755896281118692658063560900246760774882015858326354609847076543517306398531983515057632534069442814743444392119922551027171760447800571600339542634853081719289903189645066671216157820742065358506742877198401722528146344999410149297232975835133731030608156843218349089370995839222132178908228732890817138881164104247999697382750931326889201948973178705943024644854069668649081416002860177721875075221972156260567741124653897205507216507574873739424412093180557032218710993849048727681827061265468821498878453794370314147204932215493221034768690977365150552473615689188035807623861462752087542320934805264910682470809546592185228941503446015520319165920421132378460944431695332710668134517218774273812224251627412577445111002489426436301124476031952204287385397765669229168917905042641286413411035411285905524341302839112070614381478060809661183289193939367017880265196886725962216959060635881287528630614857995076027440975604318478308464939010951716152375682479009621017023819918258071756181986078983939323589443308002599935905459156856367383981876907910925537067659065229768586171993970690889044181752342574671606599786694776045745210393796089309648661293729092577676139115106103126457087999624268228641406007047925822911038807707565011777696279031590154532708140035692193397883211360251232761252775580259955850171669265328103027766685759860166301572509867477832901507642254828874603270527547588211594362544184908136491229909122554843881783303167001748359586532306704323765472961434326407081196768528440549646857294522218963113341083645441398333344567341990263201527326784701796828277028961629434370533340516004404474359288978171781838544726844810152649409394718307813041256659088159774705631152603787524267176232534046690776132223292659135182245363181656151197316533458247407261541033078667277507875274906501935229892256839158052846259531120424208650472281104506171127780342141457487527588603858786388008696803641887571060697813633256055668878380781643321200375450423428636265477877129205009228062828504868871469256321952965302835241964172118890359110404410638971712567862461351371861017160942572687172112332863977478967658759498092358597706600830443772669603083823092181125465935216876747548344980801964949428988909262949410091238909475071211981838423074537381089481172679706444681716609691817543781091574889282927541697552789904153104599811480202578904501242066897077090431210421220592867461789268290126216373703833660169813541090677715185082152668359695861910606822246543591983513739391819707574459622845309958004067820243220633483349237802873809851825060315281162474599929464867257089536577886506846337628764706209684499960279663387566980855312499081285684383507848139578121890362433773548940154586393146722903527658645496611168423803115071859920582712571138005450526878661908374378173545304089345878908019986447108332228685418927168476074750537998653819574904837935406705681916078028243599583821717587270307084132478014268856766809966112706017030847790781724886650726122722443414930486380068243593091651177193526655764655448607583419853412817396584255622239742276644237276648601218438888500258710857821853870792073436321212838813230128542613037609937651103464912282145556855866764186662432736540568094584562796335702602373778185473761189002249868998657955190280453265660049429878881832546309040130237026665827005747947916451859112126044700036989269111869361402375421126802951783196601382706924955571928724134242575135653850463497252022557540305394823821733563679161509684929451092965106506551549672014508826362377653319135986792203755010282789452142224516125010255553470882645919570551568391000746141447172468028398350453758676224571412739272398140202991957721239698525348525559183690925942542845495355099826064187442202532087384690147668183041560853289572414755486132898791567242028937999893662992883804682955492555655471943569483425844166194752822876120037703137085015250612317551180275907269755364660216143379884069424918223997545785877653108244812039811850531363648043030371478254710739394874706000019940186567178212830511028816016114433598266270766206567666571198757414369360660364537791394732179103757485028240757906519434178876440325334917113233865806425319598476423107498209017325194814213252749928197312715689323663369069007129543673260266935142957315929245103611155490513077262223159633833079720664095881418745226600592727201456681049977982996771383620857578781225135915590627239100509774638014095965008682025061344672931582451857146491875624286848416138226138052125923086289365764728361142600442555170733852896648943096548000491747789100708484724158581236012295312278248552686012075081336864820755108821850996236725433166823001983526043590900260658709313924542369891854672492476347809882348948340561242592538955876225217505631068169518059369306561708981798281123360267192028694121369687442514970202537206852984634433512681366150284098561193393924708739617140550966754466363239003256460719824100847354111426331159157910789336730756885247571814371723618973028841220766065107583555063685854384161945207861299107093162724312945858001031071390081614402655690308707746097721528952119896618760612096084730411329685813944362090553804928603161569447927263717644609011831585022139456140765138283379730885213621255397817387508288232571205102213703530444113258159094643398369813634978205991890641349277623849950268429004212762278444713078665592281695576383633397496923092005310681567968174500298388047736110834032946902191917783613335916601997234505987739111731611167886278133089674659311935198950655417272214443900479062799556361845077523228037903583775236258439898555028805764989535849584071659014934679122173516195020676261188613596311966913421752132404889156870743822347410156043374105283354766167357246784198283842693922424653301878590578950965347337395237931461655810640869386199618536867214159940116252717727763646299519393348431300913865712228306546614120936812578157488898592557705002711429910803657093571058395071673273126747685327885049182308065540601106071519298516623771000146862430317469282567909737911926999591824290331515101566278677099133850545926660692852263867828016802380238155978092624142481416913810296539297636955599144711635615989900181931422556838805906915619263374779869316373064078880167173325850929872016359830716498850278139864095924507276572026796819539490606404290881526921341261182380218362456587810818649047295225951710297283423993790778796365662216133794994906717250065964084394900156101282467053593528383643641868372564040790672053962003999730736016626676949422471944580701322656657593440723627194364258637667891201914170023829434425849924750472757384799878523490437682995169047535623635701863150246608550119006235558583684189850889699110603603544002880014325992545863268101815701294612622564318431357097155170167951227978957782485648234884064042885701742939887375926403431356967818189356993975827991351739588844363083585434916289004408032966503988615768988236111563012834998255867117991069947735371403611201789191619704966807193536626194077717963582500720176624711054317500766193898708007283242832468228243654308360730695868332600212659842795642487333243846091357271783438996919618387300751758358620910649437463360892070158348658285305784320145298260588842770924541808978166613081580095153135885339705548152503864619149112581531547424319263000311043936865967667086590314425040168397650036253315612910357756877833180677483026753121677517904414376118554471654166820818668594572500076009037142918969896044928618674107337802133455915522330549483112372020087698063468992418488047008809427038302571024530617896340079283692177571946547220960071504676513965245581349951614104251365466560181825230168219664927033651029339757523446589902441553309368876459704235157399708691250401029477830513410517466547408153651850687569714630847745513507390348387222168097947476828175435468223069537532201036865419705198859062606115136639188076426797194687655689630638312523061636653663830406633106175904195369275676749538001483464494602820982957083648795623670951723956509838369137618473543787345343382496162628195885569635104066781819099125358159304026194435902568027007671600557367854191585732765460370017383417981669119397839202387668765157234992105723428808125677865545101067003432960448077056840594947378925114872789559025588443199460593103127036306406432351130651701525027061560372378671448334515750670988284910104812019976454503750295905292779758144745360128089597271275917923471861228554710995483128914399056140112954741351002563037045852156461597562100429268481145283421925532430512811495941925137807185663804047059704960349024877228645484522076981801553367105290474585517154264032988224682597667975403005755476033691475782470759648666893360693362091939879317070749555851398683917629794063772149098995546933172957619356893839083454187493307744524150346238439009839110737196117473758094617208476564281526363830966774100114285980085271759677635968165705815962535665366344880536896470255913520076450838510829540739701501675816225570098654887977544381832331662494261711113052347472624780717109765365108361000568244357196797798783964480011611237980891611352634669804977320655722404619397410667934182474248843952804287528581613211854136016981890866751324767302421755291453574476888956889805809448811049838161735859840736897208511726918805624489157127436176500034890075245258655431620204615727052450422112825801010517694769072522050124897701764970044639703906639305749985852750649262958153125999428147189692321221984864052966964657468406325307819440477744522538961503229781308553586971648745673338581178314036543187211008817797512417804943924732273046793266119114716395843698866081335590425916341320737383788389510401844743002196625062315326828009555720020614012812573940348678625736735708307464547532774231616452009710556987820046081736930851962705190822007240865627267198624126604443348273377082472594757996548473442511561381045761353992495779092861627191502519924662473161562390387684311067052361846135268948882542147690894020157747130981939683065940546357649060258308843611397526289596270834210335248060088829698519501502594640583193217780429729278062069270520027535539987315445248448094605061572495485426851665595399066659535614159775754426738027073218983833704477038116058460700413219455393902995661480721111056638307011656458443859419629686241289352094302606730081560309451743335154667463980976619180923298992643495974733808909593038482152841119460716467452585929856527588702107629713734833929747043077859955082006808582195546002594023597560900243612966656882721158503350429439514936393391215178110404098602649279435786193011350553493002844462072217108942296975824444029186313983142749551269074148428232902634357861277389281018136890642352884686724775977875004345141710671143229553090544124441326494550132832019321829733599313671653601780314222284850349372827289573260584339319115621135300841656279957248727895102362447203941689703542285345975348952568480818329828719923571786248453537710185005332071098838099188127081871671214888201484530341554782033527809298532464262023660773484105835279939426648656507186989240981177194836175835328456205357377477808087093372826351014881944251030838054066286621228533844403397101193221070375487022258920559023976833341047199896873824831032226011698472846375067806560676658586250047196409006756963007510433828567212901004361934996579331482382468241048879733833824985891382202615333594285561200662264131592614079641578379588095682332460315181599998553522381145888820740720487511502964447827136469901269986101857069310759764826209491802268883264474721526345759349014704932005947694863977879420360975178152942534569054874184336927129325350863026595616402522896689138529566411249818210380765725237357179238727194492553727119903873365130616785587325783730579957994840434282888228686967329728725833952022663709839716768906645459206952529576361773140670594797460544331627534093487154230869851992178316109819727779151428641600621313662262036177543747217474597368635443145033354137588954029425574349298032930676602752467697374555991925085105607801944994583723054678383108636918331583224610725322065854251927101766537207159444781760962699927530792120587608267203112486083969573236105426936660588681086814911396514877743053578010419780190754381804888026139035009476860971614624737612364489206302437350396071392517583359267826316402253750345722680929890562205703524537458160041464185710402874167974216498289456546601596366052738242325382007769447371168572600126904015801300668951617208301450978538245291778728710139617652066243040073067002819231740600169066383629878267621695020373623824207045969441460698492486628630325181407220627926273632707965343030582197350755091901182062975727194821908425194220932663458078193250521161998386203629829062560150024929295217913690588441799080254249923791276952283113305735649893559032420708455056134021068073157989989272512565946461480290081986393826487683996206492352645129951854308037699446786091702938097758595458574034302309752469285738605114235954605116081854968425445110846267678160716936052062838433244518602165386555894967510625982447373814793193264649994913513189952029760218260903280593980490626566926383695728438692349376639440708262308646741103112138993808058187594544046995378773985708690446551564253472888778644499218581246323859373165239383196825664796512320115936452163549206588787800215760995756447711799144555773431986472558113304156380700291218077763674148049845358074148998042179703532783217461167208069467322767582002154232000595500252213904923257332744265282227443895193672574421521243077608647945534088688200439042245599073208150900956435575703077480798230333790502274467454075456786028103525438114528627697807279134504187145819956035038398195433909912535150662476483669469119030408786568662786097461138505542097965523220663480492799643365135391996478222277801010152014720477126892712864328223533961290618256535682833754383160463755991596724693399392013576906836637173469216575949784563678837996267464284688368136718969090359121982817324495182840992362064304665084592424614086268190036362606310440132939724892478049597760598884344191066624479986650327259465356037489784790840954772276429753479419202761625366867951197389004769225617347704180549414937115215784130717765003754228174134710134431561364467302873996099468208563715582798435445656718829387614102597419507889797189160838093260633473554221238504298145764146176104862260968401709966365687448156397761562907617758172641628259231417697348549141745151356774142940772982508249769968132603155116867247096290304636420648453922573325408770620384638693902530534770669869650417621080858473664566157051885985898548105873674147996890579135308226585205581856469503315117660844109264891220067238251044415347946002758003131730230373722111699958508119055331327815673044606996681306940324824747421662521835409554585456271141521219509602187972267707402399359600625457367702020824178008017373456468431560714544364461173361689100408718568316418386827135669961299309667052009973092208183667093935107960636824942840138581157328988710966907989630322751510062060432511822726144505165462286088460695559731585089805447606768579909862335695724805057294953454120596718921691750056261391443422504605895537702185567835454868095186412052952003468654635309943035049708240576002487482004728746911989666852363977460638513612288237827064263699938159860361575822067892785071534427526222416279485895776269744305588994563970563878613829637128627967433464584468807920900905796533647885045727959993138284766993542303638588055818626276131664613366918262959454059698320716793596172062691720198653646110106862510066329573618889747198228361886751535722858513929933465400214635678319824519087594520811066057653823673706206295736271265690336805728609424124853698757746014915276446026825959758512908236104670267061517064332384422911515535892862767954301587697121426067784114848905318148822955262834785334072346501390469778315018469324610993794731994065601818704742795918414824796173909863477744860553574870976831980944823411490457878222517987398496422870582881908925364558982485040359014915391074902413736023442453744916660571412034285271735998585842167666551530167356551265767659707655527449160069249247637304682117697584703432867651412303545464014041586147622187620181067911582840040579044709028147702330123906266182580839947845573108632161524750850893928425067607513496511754262633163291401331102503144489052171717253493114542155622763594132840684133036342449173498055068454555041560859605205513346728452323417799341810413472178042808827344941745638695873079474707371076882804432772000337444714177774418118283351189484334919728337129910119660854989349557849697457621555868202119904024459713184547145810264247031190314507021223623696806779792059985922304404542371607688089243149756769733096817018048665227175898888546769612890168160096585686794934685946198476683820181329874084295209734698465960543531617622873579590269362667008245735560241412290162250337537155194596850261176298599766733812242928063048201005691743653246060518534341444342937027278940805224879773360183246972875003627929894970739789240881755591167914846212264873632728767303904478009156115307839768506520932172802456966650037844269434096534119705392684097312895376614592076830783362883335123203316890636318438426992946714838031886014342183848277787486088799202200584890307442784551472128553233800818497921228355387569184509251141124686946875984497693457946609384619520384830998517536629992174477924282574394775328171121476627865095248672729360639525874224995118855797151882821517449003835910369189490430303169468922395177839520673617891123727430420356788085699929946997535022082386226578022168647944407095490664271445418094223937503396415356433636152945607667580752036674833836473573203742715945031556257161588449984287881951069132501756263888842051509462891369287666208396839235397134352127726216467243917373127737753496934995626251245614393707778533166616128017122425075399850230025310601009885222829675952736277851553559655010435567505148982090581331401020569825545199592476330073313061075660163986485350797961765674754218823916030595851197834648545713058361025533259689241792279912561039753752341220660362030050432030107424843431878196797112861522652296327718507542295157388518647458845765232327842198179954599662280466226428454475333092027014597601257925455016102946936418304386256199027251508160272850480505157897527044951090456725020411735772124269217908020395055864796857996121740344036008572453652803827374842335616111688554988710300136690899366672525253932302923381154260069435747360670723564760497975635544684448880673811797409650476504087366084375780771897104815883223377764204226275663136274744780267241710290398897546149167210840920828849173363464172150962704535037752177961628396106363395664395247367123581459262165298395877309651550648422915896561613912539888762310261807441356605754080526869165678347114010017733961928871484902033646140118201129599785146640402247649187631226786465431039239850457777641628128482391597300862745057224782206495945763731033820565986313628212029049284740214824829297039196220787655445887140188457418896893098142617008873083878944635423717736331171822010589101572296208068798036359100553052204052064146283516405164248149565741806872809041732477859653451986991150609513214892266291142731121154730817582360113554901290245581029986558998363010652629154868502330170641500916428473296888854664247743013041741336314649799151386366169075951504516695108940196874238327519548376666755169417394802141457772985675225866434869121840858440735673589732521527936584009297831460800287284009690418510704517982443115777174715094788025208182897679356959915046442891123828982153379328443234088081339841674952160837398390037762685766575821865233702663090614357015965432706109875662573831053867279899345760540940888299910818689490008298474060898820411467804078768679577411919444816286380710188299499543303535240714649265272641893604526380891225801611176896536583202144654459036381117653850603350451795326551962946696256103481287594623912177069517436571717198134494671255133296781086541177373005441224696945003666286446110101740835262029322113851490159405985345201072516247991947347662485908193383024013138862570817726010283678822695609497884953252136369405848510021183249635221574629437735898066133331019142365264888426055515900464234574277885627749154769213416229303837279916263796933624056504696848989497521626252448219196934034962230715798434408879512576711379536947890473763181782714312859193619623827489483404555749249414989140732445725954691722000782961704870829186360724124292986505559719111961970158440460685718169337393340926554328186745079966081242682781991250178949627526108002772116795230349987727635245265060212960815107669217647548860391452396919905973169467917896660104591180547449463358733983569716202759541287590693491591529070543838350391368928952220804008057125167129802661177842735766337525860084147577687996056222264747700455140399473500083266126703222356309831375024811941045351115606837310318898198448533571679141083041948172209873944394692111824041848205536567417738842605760486692497534845630887530636411162898129800386653724852811022206057114366923014017993817408096512675054822126726369874931824521399746414294029699526099838416997636103398222061282289909748615476938349614251149836918683819800748849941578387266742416290893317299057945551616997549572331400258762665933803304666776192941984590446312148160572104598410180657833772060959946788731573547044205925083497915157451352790752523071514771041910707675130745225136167957480360828741493590261178588845780338411505122280596562800735031115567072303699863907475213567221135586023549688861109464271572197275674092111934675160422034185580916226127924022150675709024762966959250525596660929707128668972451938274114771615009400093120389703330800229140699711847906690565013704630362538840868986056354358425074543950161552564386217081044879101653768234794206369625950307973701669886183204674459736770995673879617987821140982405282967015035608564884377550708172844322328747423279548173222834079010454576543370908472893334153919444022614611601269501766987499494994556405973619236879504270835639971215306858840255829943907200473891325264992936742597497902418320214925556907111077569836494105061771346833768481814360042875903225524905097166442519716446565856511343470919490771382385989025615584177149490127291216866005403156094996128543314457530977201686943526703824155686021832423011080339278885465035403381707691257164204399460960383250997986062960840836781713628357338930848020470930459950427870278239043354736998753572761173323021438765566853020812601890136355357223542747185390479351636765236355094643423764048603146173674890393098772088567853762180582299879825382635009036776719193078118526982933164792231492553683232098396946314898237585921584046946616068454734384512608572161116549443313818000835283713865583063272085833237550855222942912620624086509432891242563681730922826884490020638339865114265528728023133197256133299651714476784085570352710467619615765490148053190717119291048166709894461219447968802710588150693956866589595652496154382118513768400612618534909483097008956826267781762845974167329266237649535836938316508455666394939226508195699113833870378978420090962618540426252381788800982119786661480694934153913953688302435446360825312968452207181202802707316938755216028852480908691189764095528185682366521102689638439334408837395935804282158103817083151101616291019511253619569296183658357451905478339865214909208716044342226184547043919555155584828014853381577875516387799569046698486542499519577893263966867495740876375846096090134055138345856458859474755355637500816101925364986282390969690458406482462749499853437230677778512719392809382529760697356576102237052502610160661657351072722489671507773124625677786918030348352713311182061991670990549499192719036777658209867334981735414208804328011811757873839595341544665309111275694467329596403284090235383754210019226307907941809135238009403995875723280771571041854500997359282063964144277028198381175824015335963632109098742543044013550696252281430136687161504008661540805143064782051303303963640079426242320590230288279563723855425510138440152194360027414022930657938070909120186476451599091959450270961615598465812551210004788178468056957408265340570463549250712678017811834805283165343605674861242966721248810972155512812480729143221087987223593397701846525388372192523710252619157714577453962169431425032478710244612639351861648039396629526064066475519982996061458512280423634495379985404344933172763180720902550988141908705952343482433503304686657374778161063132290355066140227936516289122427743740634443189886030801401183972910385841407289301226088891732107721680852553228418697287283840586977910621844365120988184835538169766438492301230289111720273576568013555268542399173717874606728657773455702230853254407418644679093253354515060333814207722617273238986566122273906267150962423220863733650699327261310707670891388094883159498192606336433697194087806846949992837417010014780701366668432223434803326947918657316964446912660826238230583194692915624342220476773177544506392902913256205648409303654298030717493402760559480052196642575989545503349100075800157982581615489142762921886849637267080129665407576167493844595656280940422048730745571761550897740442054608609022555920608460407935131117828696023711634679018091317111421139494180310637904343515504855294339109574407389081759494782029763586157107789841480795371806294928393976218429138575812402715791686747780667767400545234576579924704463725439167557005990001588064258268319732603804936075764337911140890594072962991645729539469777500523610538768100735968264559479548414675457349050416266379907152068696366066117957541965764555220671105912337381678980511259653716677577884269081575166258507021267128605469535408442928225942618311380435185308194603794727584750181861916313067765585708480173449242505467219988989123323364160274395670168000453653375309887056542886828814874589296640136619480747553530968457243705254133316784219191530606646951140852999581131482610639420695210687044804974480127772852934326421359453707655865168377091010956141246135299538314728286201928080689722724633857988356968149403278632492331059581894145181160003597123643931732524011496347270864698033222095470317922027803779808014602565245421427047137654074058190155148690322886574854575391916347583856363034369285287019129777277014891772260596257831753088717569254134099928104802982119991652838421324203939890367271601133951441163797791199566484203082047510137984223937261468740091730925476587864712744874622654347264260100702609005358695108944549946913962612235298517895526904861586400656999611974366523532136610179548124512780548820890648843648340701322025810899314513230469760495970500247020567942742607779727839868496603656080671454407985633871805528341169394028542889075104393291443915181484506671925802002073133847802625299956162033882061220565701982015323499825856037274280600741725432555638222768490964995135609881155249101779734069300910062291296327951249918043293375613244642293372799490101349130756216766376856393558012038856177294298305968570249727045157590909138990720531194308459015332514610487645767653751417086781532330481137035649104914978512803366726241636582625773956915667123751143577750397652054852119969529954058456299701556264376851177796820599548234495657367737361127621595849021764223527932931327372544437599189727980330574521584521748062348634694453364075556366241660705193913795386246933013615134997673020343851472501216148353551230682301435316194579046261916317563057351017468316973805035462516076535388650813992115514356650241737038972133935279722353415437868181420535361610669223604926184940232854472841611478614310197425460205654117218106156058191245098183784042136457032370607395823617518931170486922800254320586949090784938185983332034992412316543957875188575852829173091001986497836989878557404451798973013205762295305016836418444589283719224784857968821497719116253239805858032639910185277681818759960535418424881134659260529025087561610344457633341679579677228996441064322690590814011882907751738151898418253481328139913990670632890044039087208758865030287086308716395745610214441129070208968427103680359757167903429138239578030018843615820178721405100343040424729701033505420904619755209412385211767611982043955205144741786461072651037517085051363653530603851314921875010972664277946225810804995631411716901209863179121969520707428904717906997090130053165829052420095427935457458854693152402528278383183392214915238919362923130963309532199613852673815101663057269471829977842265751715308290263377211482890086874117395735772999557478233618985154388422061856756019508769022707512153910993354756627797467642463227211840102516935550563732984593480486172415831682252379969959747081551278568745431438183947103751098101982017424669014926273454264996097652601007711358445181291117437028498149846631470100375757115131535009679199169093071895347640469347176197445974250093292542069865867298323183859053833899136723067543626102981034397251856240411728177166682233732913173516430494257457961446997385006500362118014143539562532753612102426961075145260566801057871518463398965823335693152486389282080000128403182247786038347086206887670074572749284900547905921714503472868258725030639401840885226630517859214037745600999443033552447124463290495819938160103478887157017710865590374501822334417864395213152232786405429027910070337559240376181629374096127319639550579531489902599484729664824394944519644092945947753909703577047186359165453475276792509765390125341267476261296268199671252462334810648596124600378564831743558027461451841942505805252091241102695415107993590296558887441637800111653560767962857775802487582538209071176210509667250024319022878878422898615620487229269439989628432793681223138569542109150927516518480893177635051681418960534815017046900168964341874757891610749699412115870170421216216199644159423875055071920804981937111798532699063353028305939952292291516681361025073403638300487527210955806900373505068338388925360188141216725055411035240198690006975544924009122103171352924924437345781077635568461511641814968089913887800202360790443863404356932366985006939053049879237902717296434590272595684570167080719704612848780001140660667126920081335077350678437212342638988186559007990371579634990917352331338806639777766488966733920831950720044891858348891769642933724179111705401156711178217406900607463182536306017435796357222248626927056703629692760078393335116574368733915010069369130323623311122746132284131482496327997881952825500530817359181619307312712458247654332639720615204277432082867506265126608039322382624057789482167727312674550925847802506752790495094646835260267940774249383131150010297809355016225082552892940415925942385423469821594983810360855898466087210385219537373836152496835205928215876921309323234388563773142771499570436728435409324195867883082197187476350608020206100955469671042546256370831213121825370223662719302554791799460169439137229993550614051334281157556498225653328241436894963127203155561705205833677995131287586827651192256620664065540743504994783682295743774218565935597111711386799240858448687005056797965722986566260545463113680485802977141676098432751100793290481595012443316999754605482839000757660995170120696071591655164395848324459293586339874213838197435570216536535724106744050060353574259213974069053531997453933628602979940115063902101381607083365296759334008750010757587922433654117611750751161810454510185333349325982443796666284364150233782984076578771308186160306437449705005866650419723638061088732552166666337648348231820051679184647751365147572312873768322756767817004616095576821913091040566795440729984070144920300022625493763503179801905367815252966103255190392499334427093658728100013066820048690347096506881294150341348529993397968985100938682369153411306957014407056068318454260101663573947253743289859982662721937420845303762023245391100104349199601596117881285583705125518196362306998103111522316029953724563578615115170449332588745006420242304541939408562603654869406266206796024564351293771000283415089309526824530943055072917802267958201739345029409399847237468786036701298453613484792705685611936769451900229983688575250681984323283899010805824947680457792613626889504095971050967038224289225848967882311686199996069886749856361300603355736432768904843370638489196870287278110891296163276311812147250838348023506183574288365634410292321871174691915944403276754221600557518291167649304495377380159521430145130265312213085863689868196168038172867976961413496394801438438260713142236808711363451965240951783926490920138551216560688422634789239333378608761344911382579124381492703022506481480841003803197611954610905769280131258793322557595787791724653685735950070164558826637545472543405965872992829890257637035654108282888248547604780750017138474105500585086711949323569224598573444575816746640147427448896210324840696722206949154365937252788259113242318526279102126827464799774263632701277721488851994111589196674107495485946048173546339571801730413344118759290060752743152948387447862115432081451735600287237733234467127638799087157151176949683407737442849545427874633401918857413884999250990856774078721990754741738994366778180433311352516916450842405547909644125376582976522011855719872104108110329377045206196956834882949631564370235656793239248985648984544776987834493950397862514536594225360558087482760956838665135003703338498356851073517514140569575447678034670914577527172466020986625022826821405320882770295977247483063659382681242454893827654072853541742302433934582489160354980583974625112491995239350380602670690169688487183962406057680307982658578413635023223617740586176702404630806864364258775932308483112009549288703817608281352215086990144770109531824302462529374615127364057249671965939423409377375153452053188339274573938202985411881576887263062258177228217979910108954904781865285850150551933798388696557864741242190501837160409991842577370740787524319458754054635311662068890787566594878746233662563775702730228584748376986970286384540851901447133164717995190619925208068340850453057221020994454531137656543248204867189644568751417817018191925818695891448248586775775771098770669108977076663151399061824016898692690693618996104966021960209497813576087400573843296348450113863722776135484974701576429009907480411975114264690881791863529181152888619211432254962508200432937241909484709735167331382382918730589321922717208606007427102296988751794852413073326362404854692861657887702847477273407396007032021044449157537504515489307876411011113082835559313517684822400511550648063391871885491360799673997283745541646755297948879567030831146259681151717389189456334995696356220278500523925134979560232446431168056602149699668215311140829551267960108132322126553060720423016460512907395730597178154677625291943088014952285923615250957583824750050919666964833353446542574011156769772499166894114447684579854912874989506540573215885680840218886915593633288669860214057072838611555225083962529110013952081029951103842123722305060473696104335383745998992491200760861069534724725705170564836634765685704095909117114750610686513710750580687881319222874468770594373482854480253034731417837353941326651115461002211050473589033294166270361203667828640265622843660266294615530452503358071280160233815085513686925246364796382589964847449173117275203625101568925471919055585456286082573150066756188214658069220001355586989783349154652892829248807664696951648134478190086293250457774412025077386324831198819020017204001145203486669667629636206090921063823142499426914208046437015011453865608302474394897206401934790415014164130642157931820328559021637801827580095387740627516942107575979506072299498131881441440769404710542256657426804136608328159113878482708310688754236816118179284345831528690991461775471323528470845136258001839536788917783056130438483332481035706241723679073882108430381979571837611142604753137778415975368550409041931960513112882028353437541394973414367150045655270803806820342457191908764023969613826614518071513195162728379225479320437721940017926848925594432944555355190111005187060783963412343339180248767463776167887853676317344991662797963602481648891098672055867243547895589354052504046783374588882879272211282217676674014619215311803137849586452826744466969424116557002213783563579475114236440789634100148200760327188250092038027248396817954897297632453580104190634878820235451050482485374944668976185362369244304019210251808863851827711461845287753636725580146139053160311057973806241005081874229327876866243311802892131654523911825852549464427958239967607010323739373966386431482667477301201517436174755740286879898501951323337287193210433944068221689735878541756400190977206275397346972779263156393802890474382712791267547241955567596058954074259889358656228377248827965458619265696954631594746709207954449513006500717147998301815645280570567151839153062291149700827529559168643611626796425895905942602030084816429902728389467204017162013443409462360335288945861599076548440347208434215633352263665476688290266456488429359981570536564180572114075414573033822269167507255104043336796304132457934791059316315478160462383788507897509316463832833248174349619829624433957102686772181539109076388731821994799130287415612848950299472250485466160783585343368981321675776426340434875026353066600844776520792246292449652985516754981740994463419139714710059361073524025083190229022383987706527987719341901747424402049674909819771633435577791298733045020359476226599015132959288317700696488218552494651350714619545648477349139619775390520742399973863594599032497350229776812761780469688341750444664428121604504768331334618124534987871495873638012441202989449490933804362655409916835571161001497997186791051890553732311057096722717530008416804551475894062997419370081145541305212518411412777213164154717525025092446348247155683763853668971544185601292394266216810357955929129209353989339325108944380799749810621978940823113002890234546186377191902299222166606177808363324222267213438822428251100673760316204018887967323096069616670982705886939493139279055076124364872741259725235234426117654060250231229599101873327664553358597376807859942654509834302589899807757020504274623649806185370359027573151147714908240327559284899010941103783101144565750551783090374182843490352487353732674991578504470410964153630335884423266307515687289661136017024441613022128723833509034466489470906993932756811748956948728676873826214953619902462015649327982675465464561999235466102621146800847519710198036319835316822737459141325979323993594494672576877993827014856641948223729135292272315856424574078981448061384380099418790872491191823941091847817246254012798929378118700318024976834530482670853180525619489745124569885031180073736060615417041131447434272511671606055258725499552016949436928961034546120537337756464019586551746142031636016000621184234318354255464558520104001024170587624631212158430846058977293801353770145298266608660637400677338433638003475087107699320601202457150463616239913974119063364636767717395803542923127162021868358744472826297021980607247965191979866354341656066804073783962474405985222689985691951416855531597647253521523351158888966074827858100420815016703889071721661756798001693317516718106979161242857597641189529053224890111169655573040037701316461596700462380937332752359306816709681421476624988982238704225400176944340737959868042433508545867494253461458115712001707172170664005975628528304055016010321685135217290791549949155036863197516048492791913578431758961458358976320131463512866481968999947876011732141417197146595110546267585056670103593217966577368098258341132261624520311318778278410634682018319836085145871341925176961130490046385167132627099329772886625637644996128200070511336109024310275713618453005008234399715540982799102107183968938270437157522771060635750872359599411944952814519589793496366445179761631978277044725884514878543966679638320802084605646193299152089748248771120402462905035833879035617389928750003826124500872135931930491884217767621644998441100700965464676786794351294405075795654476340535262984344893720089866762506412202566184869979585821955656683864856022000656088690897407650025760060196504597002706768645581722517648097938880665438296309262677573122155261948073578875560655882022197452772221034478884799773231329925137414045540001679460655380816508538961274108399043586321152634974905329756747529690132592470868032522137362434668857824782322801314271682147762471117757929319114835534394271325517995514491907389799977982153916040096578332613226494001561640084435603859807238529012173005269489470150002465632204637304320171661986781271405154572798446793765625265678037043492404361642293225955413072304153515258764898089581471195324009638556720083225338471384737510555494398932922220775967594576234580136623947341413166329152274023564811094345381359416936512122631502848968025114509509439513677613051527702200419706386825268574020875842556620460464803578988065839229788044741537457751261103679891972176444829711143421408018111927347845687919818966767335853810572515085795213997386060189427722097857067129960567233581168498117095875238114939252078525946378343277634399267454248229253855231322411056874362663325186400392423351187520950112985481901273792629218871477376500373940204049522535398641893711324098387326204251728528196011946706094668821853199653922881303491860505189083713169223774462232000730750000325399709831962890211198315201934951018908237175298052099892512376027113863008077148190044011936765551075680220781790667660739656800547451784984373789198453530349810942107004527556175471848803609909675880124316978035024282688163762927549624523372662634941136357453278406616367594222285385911189652823120496777766861032298919716795734943247501688761356224201114015874672741916526615959573898032832679910686328075544527491327035007806300893117280492971383474424848301644536420024463870959076030771930266161880199467874322689899817841363557473466065118796334246842241714495687789507197633981515717652033714816404310632078310305568455119713224866213706240307403417104116666060853811965847512117891543153254180170944654119929226045861640221334355637282337132234121997072508580771149223713404506178398918277355850196466612888258818443580797280775209252096930752469011592340468272767393954121946700657207677236304848196913806714153277631616636565417598590790658833958670987440681248930249202652126776824213566973245447662636005408582633306726465029245174862104384106262011017611815849166699917340871035526812819215371405071721601300396070878351693292551858123296255138666455419125920981217949854979690816061914422181179530657357846763686583685718305822386061468285020219986691823626736369214066154316422410865952077720484469908679892480312198919354589483784851268847689100675253723729047888310043991833561280516170610288092242557037566617727715233161143842549970486758427896201484005532875759198572984402684061058000472604807338170098182095914118399709953386199612953209080040840790331240061511572342733227101277646796658595279164253251374433303777140494986432577670316507719027530013810109251582622985814614690036141915781075918131477915267545370576476532174971635527639560468406566296350708122718794574473673238719058435432170939802992266179908349992085701936860283297120457983716428727323110202998190994135725825454648358415761775872850940838998330214545417546176109610923856272363156432268439465833121730334104391092051226942496921127987202539559753873547499912866327080598157188521007830114909383083181327706912140157506671300333499021003722710360811629650744590806616739713734765382849620635157803820294701370038473472145443253840488757532375594570142211523645229187562430392822158506428163415383136855507802610059670551056715592114523742553880614344947453728103326571656089433939280668383293737347780452328086445797384345138455019134612069976262147295625826904087490442232683808924346087350578116587045715565621221389209568103776380517455945347994923519455613643645548794623815751085249277597649257180471935198576469717215717804860063531174816214073193921698940546754918207810837977297148719910278228655437370669762906645202994610861943849149387773501589050214968008255542037901692980056786606417510708494466618356980356670316895559352077951577927961175793494682734869986592373686786352037841626338440338820718320420141466083358160205255398380499548847685555697231975996052091649860426644522297029055882974986820164680121070974708078425770942537641386286610396174527773560501622618337128044720174614695743205373211157666031003600184072589100134400595209695788909773286616625193323924843997121510016694517571704456904286347489958236803191615979463477065747461752223805508606325699385186451154097390030910803415976380616262359866018089003653631032435708581254030039620479528037476831271302484300195568934556644553787404267766425608030829893489877161559965756584037899269894916433097313625888419906408482113794166763518090194163925886335155145830079270792702221881674465579898746080257516547140617254059086778862072690046538814567180904068086506943281355121826312938847159145918336063924223404845657386383610293783058136532193520540586408277892844989443994082808712449237100211474432364516108381061161953597419386709070503487639147195592230778000308264545447238032007142049588625554768344202436048554302056682924343071767297940449285022995163800092044269885802289929821322379399528732545722058623625344190287578823590378624573035385565441929921281837457117054262931546283563957718260658240860339155592861859605477163282610588016987196499009157478937812056876319420031202687353598409511228230819968963478032250525963666039336319958779613842596763976989297288808714878024428657447783592872251991674216839867157129379381884502930631550278600726760193283532862108277560454488191233092539806048115183329478189300766454882371512615468307952450997024832614546410026438112946343556089740928542695550880927935311865686185700557370909960768149152218054875333390695801387016387554422088834282336689990529527166199166689478606794386924696730944778305305726086068077830879027484487347288697002701678924564286775776494357373283917565907796745689518394472260250257835114116898008462680713782849084624938860013359401886728911887722457100968935306183173844594638086721788336870030705913940248697844082848038397819482431632836824235672082703431283599432099934332090922419121554076533440934116187733074822586795415408322152668326639564822798012745695870174473218585628543657612163022683011191202179657123600235036255217623304613113873072157112439326262510765715749653317329116062057930381179681347593874574593701280427543779836195695293636265717737872224161084199412684857539800451493090265155212257878515300698777029329492976271058014199271214487112577919276156255600806132655515076372135142088352700939399980209454094453624770066245656181699773973284578194957409200772740811617316674400690968899858184076321404268011140825308494632646857210973211547146035996059910275936191034183772241045785877693701305887183348939468762844787124932458293032332349376290325352009888278019852342398186059527107733978346529248403651348315214966575906928471244838290971042001416775674847822277698406166137595232777614049410519436513316817991038609815954891247258307017868565537107897260986423671217240738594886829005429270243267018756558280560238666358646054896142083311516784633709040918174152604287579358859522247401044545338048489863103457066296908005506400845191284347386500620678024095533127218021982114114456973270823150290839849329520964622398384987645934191014431436947931820780752264476221306029385113329582079726636057380893940297667737548496379582176630759914987322978827933661969696603314686843655190647009288424488470718212187866950347051705367253148930181766355412706536785906922916730963359501175049210725968609891093731787958919022890622948925127950881305716198650815294181595963736805899394414776757748728361328766612077281091193061966443543660586616342376212165974094976968787528272222693200393020578932818793782163294333604121790972604143660205398824096498963990772632033773034626146470715503599186375218337930169543489184798552557290061142885913680346417565582726029108864992298638315605601576350891939671388433843704002133849250210067313784296925722806027426046704042503095540571337295349207370250275332603981290759776643180508724032891193101097284606683812581535420238122957341020245761204983913998644582388217553234035460572398879275801333363708124219119200204626026274739279630066103813592108931184898282080437085495898886033827251497941922254219320916404947219444375041370845752041994338429771118809884688832396902841026958193518734684571047213198433745604268001793619182135307721354206724016620769289184523987439427438323274625235373898710198729725946858425270982642234046512105866148255809997376117132618957123630794631513113793183238912597837234420769135737420520266745320655795848581013986878314562885904597185768515225134214398725250284469151621716679570925226851863149713865715998859112288823898447645381262629032300250612450904452490694035639253700451788379207231677915150954746863300708415000945770545197864047198369134285414921988543800327319146128496937796183769419065269246299152351798364571963633099187947092184625252785233587154653166851519032670690707615053401369645296360399708020009496823019488700292471112248581327594545120255270278136686829260090019447624036821606509322490871791105691075351483545636183464804194091307777909350050917407814823980122537852883991044087058249239584947353626429934536189574066561239014976859838779211268844550203836799604010022352490607445199844829198737093461424421783208241669766748292950504248651580514371297096384259242589051115764203232822913487107683676296540427757477160029746090617105166449081192781111426439604636247998156660605823600980107185097840661192118496809343096209040939096890648974345231949818437499231706868019266791660346899666910224047780205693159595001453602420019116190511543632157190336906861501082479839691550925950162424114521948976120411373918688850330814863267666664053699135393272891424735108252257308380762702717207701850844823693571096238746099511314398737601936054798872211034387440926108176609915117508365322185644188525639569871534122206363619450305318660770311753142524021409183065879957629117526547217495918076839381217785229426198571596618182271859795945018489290600456059336562845051083833446158086784581724977116046357413675493714998318581913471677146302294446398731842186380145962027950325414462519930472426893467723649136193711346448617777603374457671078128091840167874888533223936470318444346197477389360530000356856099980234178086762710790061448390542692862181818729657045891053742599276537168065606528590941672077256006670679127015023122705968262298493906065865194199621283370182181214777079457288700160317411429669939404153374657105348766821450596774054446505427924252038631187174958675931329328668799087270002732520646471387569591431236165649668212259923574456123101781065640224978377879484639590799498215208059348304714179578218065600426717265005184791345133364587083370451934288505368236251938357064842367928818618674789337276869069959338593077710731015689595198007426483042545459717689344781057126880939045032023351473011149543358625924486443158752487564461481098340450113910982439305624388694449066000255487996441287049879454289075644008880516737406226929556538463940919473739208231003767712787205116716209885663825449617210655701276313058233374044099730018177165406603883581807264689864677643330602686437909876932112633976247895367157857741333437021636599603627999266898940337689251738631833083868429161774621474339877361674500118270380253240164082127726368086714284600229164887400906489272027201787498004446412102978876077968072378654071816574383492384805263685214481611283106937998086033062879274155499011746839395153818792229218296894158931343840000958516624687931151106956501510059168886390068642021066181071922228886328703888746379367875210573905333884505629286057060064024238955219142772745112396952688276130443826402178016554288646774412930170289796375181060172423810650181180441437982182377913890112585058264629633633406189867446285466611673110833008209361333809223486909365517454102986917550130830690806101934166017666267028942260794231768016713505504460643372420201194255166655600888789085194299161599719798163755436658757935190257970972904351642498119624419486511563609793306806723310275988622576501584757191662995418725663261505918157256022939141545027569397598072606114168344554062625776200094567802095116133859431006527293041770184383416979217008795214606289633397239706404371063823208754487642195778488413689138693850002947037866855777067253948829329715736996278619560360157657844704020790531528534056627708852413965316775644389410783647826677181071368161530521462070683198578458542975936741330586624393617839811332596163124093746982260004728040291578356295793239808414915541677934536969085428156761135063398324672853521545919769265143333302763713150668732915019681332793307090720536591971571988578598894160434012637421702170516585930095200554595789671730265121694371051263261607833482435398510392347256243205246141998655808062416017063417361345566771256966893900080811056253112111482165673395808501050444242911620224052943829455146477373915476784516657090322300029278394187364172029967890231145522814824720617260295372278864321037261208208327828441020497897076389357331620967139075405978908293207887369966315085220785272132163458134007668620791667105658296554719711126741911746040223003796330085962574343415146167639187631467167571161245951535302450078379340415136202673271014645803232017339065859816044909477172628983784144856823462429913251161203289936818362575128139608746101090644225720108835896536204451082825440248117812212474407729288760285551739137175194645179766506542584528005742676444514542442123430597852128522418611740573142977471241728919152263019142870605077625776053317762833347582627205381752853069818232978234028637063028522425065241773146680393238329091088113793314081121796152893324601976330841223126088086849045058761464812949552816685243207563621283014139058058736883651862771583101823681695106533778657785223109051035904627094436189257986683922060658249671025164026574628589890114883366215692164993613308695991535751813963266236564611995991495235358683090299080976095072226358568999387840069230002317440450801784727909303228332072328377913443245936943282422308014288347998043736197554616643781539285993954529231883640321699139068227310067844562467633757805409281954835569199177632890936446718176056566986955851045420378227246002515669932336585663709808702123734825162677580769156609117935428855480686864819380523904884955325987512221726848666589658036869473551723142836540928970058486373932678382252534228345183516515293329878351947268117024886668937016684121802723791828690515072346254222334925203446891853629455069929740958114181533529069150905942448151145831568725795791827070442831776489050593727918853425478881983962770479685555249599965956782091725477766863185546420347136971619069394662797321617444472344890025979887138689059892176949588458162929149666486144043828324720649169703782009680097585983071119909331027027081226952704133368329361507997555960926311926986666744032770330179455855040875977620001131777260297228810301796635376420936910690642909041354426708690112051591934561213627066044995322179195436476477460715290520692233215551963550560035201673975529581378177669167061547929971469101957217623740913129798377769764432976526805564678553312146402529368196743157783395791120667676404167715204945163594508056906930623201526949446971388677112256174011330379459300974434111353880302708848182382056348382499378195876958472777502487430746305478862728003016062554977871682037941652465058942813613728864850627802984686848795803009024533771183934515299326157033489041117663938736466403878571111284231914048551851894939609154680865367427073878776081240172117046325684425206939983394103607013235582442364312363944254036143447955027942294846067432877583701463849748257046051437296966760164154395795157760175048936486856998030367196560057618624481310736781356577029801815712902909559115772854079116225847247665772857192112998559777402437998138808907980783171111418167335400305898455574603662190753806363508597455696687081602093634084726425628406828452839003040064996538447077959787951390175137504512719312861645785273871973748547318054832472674511832388668591469602351217792254814998102097444188000953813745702500694071625294912447539188623670225946752838658913689291213187368995914044450824761459745273427294539792436814646806153077024214492071360830579802700795680831692223800508494438384985186139572682891790841396364339377868023827676870458773220755549849861788145001154918235430920821276353147447868501783098204262971328916679606047422190795399709556268683392672019524187443822457375199768085076647855252337949458201157315129841993398438968622024323963364599959866888389443204373575939313512944901075643145227255778375679216499371472960613447585978577608680721971590905707440488636567189471988694143874526717490810286145684589390112665700877700816883073052628499717147321135122778048438911640449012844767751054830594947497345691720785580181206802609231792674622830569413831160111596166862296122881034649658247685977413533945743218029815278076208234249995466710892578700455547502005663540741235089596406048530182727188580859043523406770570498418295882122070122956833126087072819335408769069194146109574098268635533506028255241148354302774909227638796299306327660978710812005564679116039048170753751372973378483168508217029484007416001939066436692009917700717336728301659620895591914102255513940288230780778781275501426376576868328421801427607864698716513888658825501983193776867476458278178995152502120798016832553868726677856483912868192824694962636840169668225059260306417185783506995444787649005396674908283379880620069908443897146446803998950263022196663258050037367493403542107500825662651149822134078648574263995606807898350058740690612020100756773632718514777388383337834139064556553848974529216496295290521473396551796542664549988079659682152729467977366427999464478568092596456350992314617275194908544845738334336186881002026754215203530465792514720666260239979908193751991591908922161853697045976460425332059920799325033897859062596101526883288054452643316658538670047237367442094970117221597484020862978701977212593571158162238781965271578078871787607015492811721879734019302406423278472570360339710450510425595780032542597696074843312744907722423570169336276255838533343860594839348265765315318575556625718422280721453714779592500816357402774822751693762370366684215168156145533703108636414836106306882526992140138420163226234277796326933798235761995441933091971477478102075821630878035940291961870294197667390969647685677507478477117923431492176165453600515820369283808999644243279678894793187766106816077421937306094984824660833360311068918635542338079234037250014735622098925842446930133873873667991117951611948440489874263401923774245440330339138216032670817174148378793095789546176989300884657885971136160489023722011589073503429885847264587236652343038582986938925521971413639194785717286387664230680016398937282208845276945291671876524831280852024636835432701404920306354147150031739913257096312298216491501502617946267633505874914317925167243749984752538321280139322362075806083232323696263402358185358074698118833609817926959565249883123481229665979633659452625635300134862189339313649662550798554476086553385293286918627879574976356876777098962555192082401809153962394762535871021892398418587017121236482077337810697679541390465294172014749259783802315590063083224808973478865151817205463289991205082914392396763318412410501421469894972218063488435173167850734927891706811803876316823997285294697030990753129959745636609168908428225056116416946710162689048743675143196433459481459734084226648661437435470741331184195015923987527208244667322423218732911563001699661444688813681432977611771754995157026060128699571829819487847984861848894477298718469613922124782855656318446782814022665907360042953347488645457763242287359358057838841847122066756134337957135344385342827267955147382615861612212834629926370765098320551065673260999414857928663876096753782896448371256901044584848876750963596737895468113985507818774247198361048854081827609934731022564721382775178430031599702497399939802990432102219230793718041134381895299909259628431635639909475902578336613454965648395794668017581920733644598564105367385044200813719683681767721194536974578446111958385485535479341137127966717870374796033718791524257383598827744048311075525520654912713632482386724969955966213462503229680549519386492961710727558834228092057700915387251097575069341981607967195713715469259044451939273601833888000676408277229694508300423166395506288293412325531633910928200196143029738482874704072614008859190608722819899291249092866151106986236265519003223206210843802610037503899895091899973165206578679753140449354417097743652929548369154326603002772924668791138147224459566530646347628241428504292245931797528344496705502381972474412746381864312202909217889688524265697493589295469195222593907971619230530263655480736402445481214538614130873095044046894626405792862265240168930348911336625837958296425678377226442996367039991311680674595847721296995676930676525217852776379520862169056035184334378932105788136385131972331606836975548729939745928516038236435229682383896437934011207451508165373339784545283796522561374194253295655110616087000189965726312929974391197837119703343485369722383591874083795727282102928015478748619141410732526501304699720859532082082982539751064976435231254731589079181755196510935429221853919425985572099200741058766386718851127472408043562065303558639996469411149871451712499050031218115067584469753689577750892432802964170935439423501333171925904515452781078698164805115428589953277688652231217917910248251860627847306964659307557623456295376971454772066433724228340794981132900199759294494390637359509868235540331601447507288167941515522638168385218046031214704862674795790534955435648657816059158048781759562765765396256009451848927734592196218868377017102466120020505574431821594913026485162683324966693751426333116575702548454708665689158025240004015574796956126603413646597914193966571991876525074682794794808930784193788763213871991212685118604239824037350095442605629654085538076215998293927663078385375705122271026099106173714634838285287959100905704975657293958954744717832703872439883588462939110415385781262287916530651811004694944143711665026903251026583624385862062587330464782088351767014975556752347375359402605116525320170628155695852777021360986747368212519426064725184923078925528926315765123802082916796028601152196088250047907011094550202506291533963229422800198245610176223665546982793863422484928158826559478096579463780453697980344035802379825245015120291319703637075378301689940876667683230674930284156185091202948855427811907205268765667673312941897555960567490913276183907275264537514775132166423382188290655173649844210020717230926765404831054039231845075006092932789858396358757837733008724453578354947768581971308341976294154856825032165167066911788664400400841549141393858854622359619493988304394701309079733896765683288223191644991247047153055557710982646766975737071563184503559772520960560007726339009446694880283393423677357451503260006732779023508226034977791529348908219426357016737038638161227287522203983131080122704629715732733298113892202095069463818559308248868366474087799646288772368426544587005120604080946059894419104599060920243732089071586057357444148608637796399425630336097760671584508384167655389251968277830955648699964791281170655137554777074682729329008223382988913411204647704745912955087643607119335538196244437120102548783988576408480434312544084269841905974150615644262330782721627557211009360319421197386400198102551562831214121272883691971471946836434450069847456189754793398187404370102407059766696306905032748735106577244077671684253416024755408453457663689371897096550319451343639398612671968229907089386821680562962669718281493118221299866053932318743178694947934458734795114552105827787012702011631942620753606323902176228949794965395425835035258450254267799585728649698843112981707749087773112918710806124509577686511473183586583060319274740819214965762770254564319393510429730034883866690261887291317026751541186422770852443396424074335906780136898260640386888046345037107030865970757162613383313938028218899372315367347378921655037900676102132333975875205127750050723298139273922884090520869085959811346239445168581277918956079790111394426048362310359420145153399840746858748475056265589730872533482014154710363684123413712614957415582793117717271483208190908681467220925988375458664904121768817103265838183296421292113964486411412532932504930721393986079088914610351973483675314042133335852045525806471456814622447231386927226723925057954807194646310257409556224174778878204928143805365127765196057172836292618316733679365289544406382142677280408033321714129239853622459853578811439702856207796399334384955208749222198929453707712207468011250358520487477055278001851675481238364754399977209527302291234909304446200521727285931002437624375680505403103870658045592043133651670979467027038672178622363904440148294554159988437145341979600513774793225928445523348093049602231790343584909565481790230548806726559561414477817414897013432192264251566292897282603907735514042551377008345742729107265800802187795161115321868520939484244267321563449609219796200220674602961706516416613331763927172348091466869800060310372052800446834422821632900841086486129120895752388487251758014748107213444499727334827047307013000193766711008370314363216816011686288931475533653826841327513805429070317227699304103593927204460119974187334176325981631144881330281261542168199329854628100789838771082691779831748029302845067275098536831074248280725401990673646817788931339194066768241252256614492500897410953241958052115683686787729446457048844114091191785957305927541726610284475983023144890889654495138917936559094767057668682264944470045565767897528548047806967322572722873304898236257212814243988543455279838521607497536429258028395887053678940376943653719439671796624765737872334444100556775303603755436816626061415930721588943221106153458471131089106791400505458038280527418266024386270048370246449322043936968345901565893224914990714899648822195534981734916004554412594001001790650354694334335005773545524297488365638223097345986851232415191970478454587782114803644752584409606014558862515920819644705629564551591952568288652955911397941641204789883546375209576086447688248560934974185747221301481643864599648942062764514568464573244150371994058326435156893717029864018440469779475886176806190888856635374845579585722590702075283736629085043715575487612675203031960114709076057009079779148771769737611388969313679511812343435419715768477030128158594728048603889236381957735697708645090861571732283138263622369049057099636713439673104383817722338439497459232795245456249477644705065163917229760703038907816037802379185505617933742637500382656328390785189108278044601688959199047954383837743055656736628709389566138946203604385501638976408786664962500671981712218197363262216454487070877122029398354334477603266191180612695080417313272733925326297439284756749022839514009140327673707835271441995368150491876088615285799203223401605806564058021310690347654667224181856818521416271177646159964992518997238321614711375602854170729773827854858458991928278836081070150874315415378187205446333870221049478177414284037455713165282419311723921914795574108911062264518498065918249383146834926016228594135372780293848616866438290371301570295714799858799854166213852038922533277343625434855338464962995290072704495699357254565737931342419902367225188104186747323375767183097171493949540480268893423304454796803622708309466430290871588963425252057897376267429327377833860121572913602648262589186751528938562439055706838602709152490971460614695404425366472710045908243167631366640282727605727331360005900317702320467570666482427159595046821655137915443678409703683339325170430142938474169612801059832948942947768925951712321684670386351154354015096780415078918854500155527526998062947096943146268900304859106113624719360507414149028545540860201159005848958367312924667233298874778815982496664881994709950621522037669788886971114835653747013543714149592551819060998428270808981478767548369654671947362364609945104293785993602288917756497990330458022535304793417455327640324526778772528380568260594592810214468303219491931762339203731447190339837396843988357177095367281624384727745576432395879146364828092747481131347641170272321026262241289187018906034568265571135643100891883390265771863424524102100616608688195876371368450849644493028254922992913863759712844024226634132062777600827054331853746026351266630870421730061271628849756027654495942997151472688806969485003476600385719926674586191116709516992599455212209032959277396452576126428390691488023740488560275146310038570931060892444514653678109905035131101281487108088238244841291289502532380770070665174954796713539214356986376496265668111444079389324586292632691150580949322138287153745802126974052687327637104503271572666358154450461135697953175751647338595411865186608278405692931772323223011393472845657225257545344605477060035136906961740338741239400090554976785158473964555946255895241552407910479741624105654402828289711524937317581833852695660519644074602902063434366579986430376490429121147736475998048672477884664873889190508105779815752307007580882296642788767971914140166389240981763076377317488119727536542061748864782686017047109949781026295192908113950674966844768293695349149565177504282197414327595421127811702736177193183605601175825625217764619039653922315261370549165442054693218040327194806005956692973838971405952616505103976331587730971979573054182131220188954628819529093711288904097113445698493499156664642665756817966634806526219875829492362532880772488503695321585032449299481779063005669310871382978797056406774412891714396060976669384004312946955357287955609935268909209859352181810442384294741019991007940079272125704619251622125393545596506002832535094660600378101739006662426848047175815429491401681882738874011102515006071634595497702069446009207430925455462306861620865098083295717554947766239514609227911274524720886118340731338602838782685867088606205668955085003873767129131141843778781410908023692681140062246322098399335403151562188514120503780670023527910140327024580939080721918909603310226775746512870344104293050797774664957424333070553366235355028886833003514145819382365016046290672124661579249194860165166311886863649171666162403815425633130621591817420155451502010029146502966426784072234995754502347005515754386103166575583397083443238954767332703722371448380388954563789304998770744744478043883070297297771446865620445408626820649523171073023295682303732825194530916892400816473690630177942684559113700882159497677487479109878249196064175794762804961923696484416978459271870759736713482757115866595332650831339094309732897238465857597646341874800851194613278809344018024151974035869840814522628969058858705075695140872861582935298480650061987906034603398101332654875865228952928218400469888523060046005403737577692356785777114553236750642364896623313581653008818583747497314733598907913842816342718280074138781272645457129729453137229878699134666674564387175130046387133120124764449263615078893970710122959467878363238714097226839124171356906991281787902874303912907543695295820371731352687265053685227374449552601806550253528527023841219126088744447682155870668098487223278850751891998894965964314659468569037724760094214324621670648067749976844430103019963952302363971155534962505352528375766840364953200661205830690456308955759044327177694879851599887946870563924576742861307165091936284652024469173846910624437288955181862670333565168414464469068897951446214897440429207584787758157722230201677296169521697641413666127971737112222240412378529852001825753383491796283536568032868290643537794133045281094726616798553163128366903690067566361225189339501552606276341358282375430692331606349392044451202665415540125374329831755113969408321312479057374921546956789727081621548262753388694986338588176653844929362155402769925453558094561190320661791276614736623930305636490612591368960811917268546663217943132747453174862598328893867116523195045520072054722213137823433285128081367461888066280438917087957411493697367022098202131371574480180809981763142487453848458461450946507672309503338741781943538165397559609276845827424172377693510521526957365848774294118877126226385882435093227010006358165549765763292230209900812860364592480925072753541780554357283216583669178331149978662706677836664391561869236908228277379504213333079533649393903460662302536957369676748060955978188006567265344675060695109315429930674822167058774269952537585101342457060963318362602511675162839595110771995910215292885089670975543298643871626098836077412224452254355104998937763906986311561984827935022656888774048768093012538157416811521030029984107044652741091801251020745628555155454225168270202417285756323171279294643272150268567616127342443886699050814592788805139493057820834533046097550820509561839565074299173775058313954081850316173140692427083103387448568260913457946222327568795941013423575367064724752827424143970776992790746860602878339355981108361395814069138309789833042058258152353211087126840841030087239431023153476091320999940481098798446252408470195019242523055353504361854220353871578511041716557047236196378322013601801252439100846452153189294249868612273659329545634449736852118668920996759728369911135766518886250316964791873246733059176921476881587956498720204036648292501581925303841654631121617729782418072685134313389510922395946147862505314156795251627666783754826103896543596290851817690618997818407839893381376973726400235597949001318794823317162893479867407619438258101248928686547012992433092560510409283311661289362706834936376717858441038203512302168909002399834647567027213101030026398261876848148884337664687930339276859630355686884813845971833039176692693858372476379653239272841070681050435354765487424734184683575713697049502019783064115871326501130415073170557448296081251985684340899072068200219905610678540035054862968842859634864007557524316133729893379947402832977648378057077020950884070813261035066498438851295310482684233196579405063206464822336766866906025987059310131049625459093191821618264303041028371564775864880514844641198578857014373877197840519026905064350070562565829440806152593588778634833177576676122207849784345898806920749464178089351660027893477995928992242866580518132252455191379850881238582021202429527429958874641364201243135951160208143237969686648983251815962531332643545721558464571406606268014200303595423583285682143064273527571164385256927837454771828809603286724739167760201891203420157454935996143599006102334412211413603298740290281949598015992888892661740161133500305644424040838833514507174288492068435087584590044589559811339858976026152486979616089048643420989504271130283010591140074883405157649537631029018553087393696654036857326708811070464015026771130962446656198743916687232465536625241681140884128884506536515588269289461221845589405648512505795569844379895696346819920733411679394959319230440163918043166475662625420731423160905109805682951979762830755106742240764871478537263485134670077662823849410084488051085399579149819812060769815310401354617328532788538062296705966939761708972314449536744927939615421825398327296371903292385985822354673350193831598984277078714635645575046933874097073410138477365575843198835683180771473076761370017779000320154504222850397157041843425944604519603696731267401063442835287151578550831742828149618163034636186505517529224999550423365205104126425619752328042636859370744060891949403028106630965111017626824521791109989954076930164938699530196054528894525872105211315994890296723181300550939882754282247547443407231905421322599036752533782144577545847575691617499273655201457253095566774006191101397782786863513861833404260680311183861785674023912027220858225713585872054804704626086885255000855675931323743765028953991546664099176847811457348294705499929907159349589500422998057969627525566394460865719747878143357903829831644707687715471098686524439760194315346847845283561653168575993291210402453921966006380509434462362927215261956451008191277926705028308847364087540058957492616810643641438963209859978553258315319177825358066073659649418835090473559286830277136248435375228037254327319892441182771067657700281728776773362324358789799546782676487364646226233279044018703020076019638094492237783567699089287504206543488883828260045207750857653722360909623220911039500683141495152139604736976070814691932511849834982424118521727627359799705663657328472099544619426423568039579511431380233068582918045142844956115915799354697460523305049808757881823384740239780264437239236284464200440028615250241527336197142395500469590987538782577736532840257888497101532209026013198591407053913554470155038377877335605647319138381338185391250972265681348636141879304090706079794955988981110489801398505526324197675888123599866058635116145163405416804418558956690958087656199020773009221902159054185768109136963295904367205251560958155493879207794026064636980419214529005029075807915920469509185113814411908408821204978349054309881842824496761606251089633563225067401822811955876252009139924236169890731054783849714300904287644209495295554569011277965772182300249453338285973066867182395915118550924997738385412037376372158297608272175942485699413136281412735995238905858436568445364209723773049919712491032712450578662749657244013998915737908199375403761060296803975177948231072367449456199524134124455899991884175920564022482448869906785236793506473376282284612588917733553346072573537361329495184758477002173010194324647249856965814876718614921036181163616516627438954896483417416352717582911426704256654600559009784555665737484077443489509421251280083793718756287935331970772032175959872407051066583121191456465875140057205995833015357051418149869624841753440180533211163708219437795841036710390557769117532307500125185496307363124380388150840521666093958031082164988494310456687778079599516326087530551068630917898798627728349512582979098923272041895335177709433098969798163380206280450119221528588217295919133600217412217686776799720717462845190949670801209769592673018368324985623267371941476752153560458031358607771242859778578960891009063333047438761324167444361435922502691969294333303309358671885517718189849373523041290405258345441665697306476178540093814013102667016000981487381142970868105238289850151269867849845639757414084762452951102891669089240885828744282577307500024523516900594773490397492295768157088243671374560191748659027558951557024428447833542848506748454795389961239214292106773576357503797073925151567025177920323830009507096629336073130636106784642661863050189603537750861283084889813332623027475828418974688622880336937372538456138193119506409457217002570972071657910398130373101062572606455297032008742520333002938698067601121855455604573873610072621734584439706624386260190035190349235191788159218289073427907887002294830760439720045856044951083189451855468940363953726003438847376788891457360926892397600467435336404808733939212435141227712054831919022436756230208312216845925433141643708150430896914533004934083683760094593575455014434728673620972055259799891787836329638081753486988867861702802141708588263515912306714918065225995510230101122482346395762383535937117702252394420804544632644694327814030538062486872696625631212539253182409711406838029414160097418211145461848370480210195011107445172109065294879976325377326289454177295870778800328341278278616755455972435715328559287104004756013759417192570118352431983923764043574818844352653308739360495392119459066631370964882810868098149379805051977651647188747535574578361851511681803803896874953789905068419407612864475771949638190042403922042771318650731109628044788100423655599037740368890103663323084623523805430187815176319162871514680097567799489595286473927933576703021014709032001471397888537405882348458196309856480444847487235634455501934842411390919558453575034143640942947590686733196470333264910095363132114478472511362034666563674885490820832961233941963415187056071198295023244733819525831130828425002672310979266888352109897167526632531780325334830405351636175049873902359375042526306524196934470150338243536511616612018909862838134971455428184826913672022596817333791146227842311033170622254408157065675802020784505100605434851396566085705354158630641115305626577160759502858995237314686974870593171543862313748345731218770871674148907440616659599512673742799949917701957550741575315848171443373469590299753994798465280606327264797089471721777197923037765654992022255317205584462726496150732508737941528062652220697484827124406263035838186154052625457331054229126994043697738415891761191998067782685214820319212277155295095662153401461638743871152147094792634404962701138546448923436584064491352766663750868354942519753740295277485939401392690192579206107315376029198738309685429188933725954547146044477260971175265562048221845090243258377712385002855715827005762906278000210591367907017886582496421314565592666426040557892217358249022506646337003898863325428657419121430878834396184515067476543147085968322065336809531472469672210604648771666768041802953102772989440415133139518215719906415208681017817735399471728404052209992912641358792841121763264566687469534698272990941880817967317003644325234173545772173064511621497754083601484169320967636683752040934548376731035401337383028507849910765177425291536019222578924663098916499380429234151753374798146896892740694275837293790233078783333222485122094759146011328870191528664816514605266580186592295290195254387479024149648120980868009477160609105669795290746138344112310613452587058781483602080554498351936984668458833041977840099949293120655759274376171979765178153818488156228501079914557973987820558215037645359377990819857733747647858927325371001559164719919807526622927672330192467103045592103210191196357856168141280600648317896230548095672577597353866786705607233685351665097512942899557955725810433904359374606915912680219470460082086964067214882291454372312552343256822507080345323067961988797764723131704137396348503498133293706227614584899251235502358884645835598724872970811279700020734161446160117956379276383996160223382110545135140444920635525351165228036124768422985495845974508423139080476535257008181704281929612855953938634722656192056823925396488888047606992378681789258501312126745353146355823660682930317154177357869081738371281353868584434257484861608405645368415824948028072590336635733514566676685531177433766467416985936693243806277058060218112778103498810645332043244180937951936820482542057975557883926997297544469893263860226671734540500621498362894592722200587947041023562662673612962097855589703881997033571563768520386419660783851291044940674001202089258602567772348211903209425473730628110442067291367344706442147655938257375903759739386012030130582729515803404782511234112092126683015912039317260482984159473918244578460746688938302183067767187625409924417793456938888211668460265451313568144382104703724190458719106294110993549458979461726255047574075826927553349687810654716135626880570273547675583826583615217393915129871615145571685257613294137730444824231459085142433083003905029216263351096452685104941836538287653686565400488357902549951087212432831480821366119806985997384771893120639998918335455482353105731231150052825490648234017138904205780605729740010627327867546862942816219118020952059680573180033370190186314801749094161328331748047607492745058304001850439806988177343197622347894788317292208506253817901947201773528451692415177735786475516892712347598851778007616875081376996055054138076076487077475803413770208142122384672516550784717471760704083868121782763513235809994793717299392557654994058275096604908352610500920822528166029042215216029066231999438300528240721920101802244072857440559959298191652270467873575251838483566084858390033471850751409797215697685623465723586849212522002709987095663859577277589419238998654771852042042244283275085773159412170704583011262150418575998732127857305215780829571539700043872774934894555336893968981198519162155892558650959555228049084408621918068046320739897218266027539137855437038288582829968050792290795998428956789520952834948859939700321675587470648085178966239062639377451490134963199303939475373555078494352299133851427510567473470875853543125183212638022356433661448347740142234011286901353208168295347229002408180981839865569054322330086726364313134504746890020908916825989585956378760223487325282074221829273846866433856688259192743592286889287566305826636567008696115878649863319971827254410187368386752744396252639035206491556662389474286698706047562225608740147174888083450272957020316404499894513743198579097562366695330926726015541151053419158957956109691223998213138399909977819744725199162313680686830633101812184189295259313968234175360984219860162676471051192339470241474397139757831114025172296522189384965691805166037591343808530711397656420983067395757535452362703535657224976836458221529612375078024063696156629075852141065083107372430197595230512550149441371635981142836988745102544046474596429690681832422047392418859764363567482451675844786394668394723571315338489261175509328818308655051570658552135562423442836643298237143888284128585802450060815650723511405810924400441425289137018721404827169479284074259095403026382542094060835848454588691402425134379792968051508933771060169060819224127739235049445073275968070285724018538257678519474608686150457614283023928562771901768539023496013118759932302068691813657840253859600968128424604218468596315582403293414229293111896906677467972546021589993148115609456682251672397120398751022865275266083161306546612692159934651060564313526000875455703731857360177448724310312363417688916895790267915781375804203498570607640332942751928579987061800728761693860287608382242083046979206235583195293464252331088824399672455128837562984577849579507630985415971421879363428319436208288317232343995840925491030876522066432521737746856399612116187242252566319830949247791910752334266317509694609705137578092592643915056517015735364913676721112505471981043333509515148773307057198516339601797451898822252486650761564192017254243802815284349131318166290152203213859693157289467439998155779963185940667751418327810348909231760069143557162004310792607304290000000377983401038916418232653449089550698561508169199010398382073692677697243412442660668202923407880254569229745739754705901545253199545163283508581249288012480310272634847044711376202682385336407901132613181982684438447416498772948850085761842751209799994230175502618729465791170089309227374943516497808286891445021909886903028707735689784111279764924151938417886750205635179136586014412333683326273758111069554923196053467867801692852116570586001271466765442055301175766256706574919519907480545432822451822319795688878918125887876795528469834140565977897099038736600202068786825010881523821229649664393153459284037824493573040185882961980488317997471224015169789982431602469294143479108147815380976021319624570609492512448781962992497724516703783868836128419371023814885773917985365496679219142597496217512609178563834528837898457390287685767794707809361027082393557918860320907278140125756927494054260058157119024939702231259766042302735970375325266279598154441909701873946694360100673775507988245369169566724569580639088529581081392725457018564157769148210246502435879735217436864729554976734525608957819229449022180938137298350960881034544264378732473373748632089589380278343625826170174438496453035763703098107627199304424659768442950709625316571687084842672950517649502890330891705254213859549347772951097845362225998170244190121259897693120279321922699349066023830350966654386351566672263180359406501672623821038998564812668160417093670530082063488252683608651728010804664308480119789953579546324652200405918782370077431821483478509001986938924038710727139073411546039106120735413366736266057295922337557113649289019837295281928541938167468655814121973898422350803478561717730503771727416978240947776595210851694140002711233830202539770488954691097505670759975245846131595379507859507188295982370617571035292827710320625742854532171770139278460505094771578555278426788979180969469365820282506644798078099546334375313305995441897952140920622931286243019042077770131350406387443758232005669476658052255638098002472901471290434118607430883903850112242137448297464795607063304067288986576795859378851954224364211490838741736301315104955694926502227999219997355472810201120960960715154854414395455125996110596106148778413693107023170698365000448585520616387871290192484419279681421658528002389537961245519028437658859943470984055898540011395191623400295778906858129873712903479449948787586241850419937275133178238479218168673774788897064046403285965451590115660801326651837550263659124314577946179323462284250825890847700833189870343504136465706945735883872094124713291531925211133567406059905162085736113902244061221526162547593443811739968981739908679114399877681648782646004111078449454788059112214951469615176860371488002189433222894196469540918299947974009538941887862226287012834799044057886933424655852637164395820505620266120980144148856608576364240667443131044783164198352349860924085242423706597202819603320153937312154253967157858213880779967925218985538490550695775255731408330985397813142388381742300781940716854384831115672569132668010941351141632559792154660828796005076748811696460568962720154115600476437291026664211783811978302790505084010538096595610625569566343145695548505881665613189971720256094659418935342977936540668134210725015370601000335596109100976601007065468724104013273898072769769718341987433909909107819372503107032274933839813347403470873041503921684282343691578255245149490721452729329037888256249348178762108476702861936957100606057722426319206181700859063743666602781040430998285922829941005663471871621283086729349759899391858593222734579404430498236141067713106153435907628476068973181271036386626904622393207392225012899078732426493641896180136336103609739493818330571618503250454120118886191118302918965125623567507875406980570198070605438753212012912152316617560690571268460359532602621549647472238794494553234193686945876107691107447364993394864681386733083041371910856817471878957059712071226176999041524355013225112952910373316361428274577203965523432385076705298983807279869007621348380548615946459410053201308174893700574054626602369242723408639937243802959482379166903155961631676826450828517660145416935815355314286083058427578545644851223349263595879971683584876801399421160086304673914890064373266725370061692554567246757157863706436048609780886267885672383530507371217995571881004853392247456825310609662409734422285663425894270079610758799136736812570304251850591497319896448683726514874613337822020665358252789242298392411863950665109637315602469922152070227701057910647198648170607806342087521341326959407284025831739660706149430672152252458340805254535243972121547579968407729338839958585342643166275823191943753226090894489360583047249871126443176040927764680363839376418504981795590839248411056780731583341283846921366620319694753117345119764594163698230403679936799696672540728085895608170110792644695918478028020041242918380764100072910544010802153354095602062158825283635992810380844727569937467526249023921583831756052882846908434212017734265673540793416743120847320576295371439475179190409527816792467782533012500228408197853131136021431233536324510165687668246320783023839670372154057358870759712410621920904598562404630734273791039226544693890497495798425848725672736316965804159629117391435055020392410049757182891230772301554312251824014560482986766974874757973399079015292877205671964535635889469478858449890229162994376015719172134280313491460723996266338070178543218457644762062475534103763157124066553432853073599939272376612434114500368624090734761201790697289900280236541955944222647918120584507064119665007577297165408664424858949795512811784137284613438119839110699412976220122006952602827290074182533164273253317221220537209392655748551787823031798916825747618911932536386504595988054549159532680488417606686917995291042825550338738208502552833565495266905886494853221928405181245884643442393957089016809635278877650469912583349807663038115619776051388425289619518498188945595485278057166299728038797144259806951609483735064135223948561553394794306187546678926620129042121880192079835850041244869693085501121162609704144285434937780427194392636199246871243411799820848087360440277672912167760024969646040587637999301250371957869911898033849431758978780978713026487690502552378557742171489398073935973165784617781172912466268307566818062270464640432511132498185732101599838265536279204571466600151192031286122850481586667164754586267375522620715430380452404940819477271906071306947281666723135225668091698677981570694208664748882899679493808934898262351936997176782930761611336995104940376618979461247507604958919309912317388257556280549882925152423856699291911730167597254907752210782765256987053032372257376084860501864398851443779432038696016114835277556735616144685332959715072489005254519992793084101112926104957260080412722532589259198701755149336631627242472291484967277113141798762065719951907133210375667144911299865569934431239422862525449090412014789075135425544797776184241173984275940390582913294877906287162366374709424033076912190675796941024136007997110915976005520008131340433436364791661065895460591948843535493548408626478805143715370009189209953362543461942573088496044100734611771962665669155970061956442354986003115783060187087734800689370661169530350950145083673537511159835356257264440388446661196902970883045763482796476788828028546887844697274637518384712175132696719026940355915893502085005570848254286414408613478701397207755936026715608579481743838185345593013540631008095927051713744848286900389679768069756274385555139611550343530035245231676299906330002942913162648237804340194635835985180129158313846753491214545994071141166403036196159628363701149203424391730744934849858359907587561545978538415277454698892896364195037345843151846481967179646837161146201793168116396513916821189605684154252380645108461010346600015179376312725747104836534023856110749210180031959531788384808930877071252540255120507294592115462754204645236891638429123491289118704914315588419197246349250064772408275393403881926253014898457891730557612226717479404940665255539578927362616920364536549788921961840779743650345542102940212973586642278315123305686950356199534727777775408264290919820969072011434201197099146125537996581578760712830726845026692931862088341924712079804693743373690725178817305515240635444459095367129660099224467096846109099949296541883219481342212567664214881234168812699426274435383508082914076896191381849434430298153104404111555561222676839147711694213325362209820641339130754002330141863368380742581893957672444511436857461261726443380169214265763741289562468890234359477539599054998838570681344338281458273520912196806481926616002605617756439223329379286373252091024107457956267655277143604598998802825026373451262828286620793198329727384330853205076333158328949867725766629485725132901677927109556454019614908611066158124033632310545268012670420448803257297995055967650269080434072461004211350174183368853741311381125024597363710928282211809076540534959390006329537641685704691298676801714296128015038038569319296476953873147493951411141146769541099795331052197569773922581897936285626663944138583059871209474363034676556518117988986442095631201958431917287933979808693716479834227657082094063183422823036376799094207007985429155630198242580988328584832332373311128774945936161067267956957825140304696371656731319981589107165202205730376783326583745637820373793408998829765959205523308353341499310307084033689299351125569601941008332910180678761640822884849963554672859542813664660054279139007544361591527910323486300783865819498721935873316050503738469860590799267272752858908838327261819498301879313696242676179977265548968895189071114863840133809143867136253440530042026656745798373371808780110974920735683322455436217494186502194772295957935188543434193377451943303542571912227444679041385706485938268643302140991006446826144255299372283987292422452182379805258640108536146192726668645116098803488066298157926420899588619251861314951289406010097547793121967290826721206551683865458625450220318496597819262372419267675065543017525025289310529996969867151572867803564360058757395264921101425008082654271362764956730378314637587369362993413439940564264570164791762321079692002585623509676906199423650221712361498304294160043432317068016389291216995974784878789347446019316151378677835775566239072501977210006477389161131928393088547435551305738089544649566275489850324399871594437951845851955900237650810211376907977943900896236054126908301930756449370304380402791253935366137644563431242898771499938959527424312832821470224180534253535976580766686070421768270111429448860219542197650488010621475865061428137871889638608228934118306349407306098179780480883526523707125854557978891844671747544152978594836604975913469868688995531223824028770909526552385686795952699636263831116471452466520691616920550059736841221202644318471840422839867981844706108813982780490182728580997198050590492930804115922994304108311355417211221829056284327826204128456044949019151492186130873248245342699053130066037442640033668373495461051931193851606372121706686240866816936027364802070497697535179144540161235714872173007303556907606758928209099957781909771364405365593440648205444126222787732341282861419761555545243722972825979370042759946161377811093329478230185797425792806280490024904027377620218823021848727458088276248688210014914050009715049892793095911169112442126999399094476144980877134908104465227608782141792565415617461605432824825101172194709801294256783626794734643821667145033740797395534546091669955411488939485949108132172864975425055214853937647359384040526089629098199148557565117603738864092061225490032336799521234156099982133468191645273487104647429208482858272513404174014431242896185439920472190080642734933420439272459616134364076007674298170160263708326325219660054225466976917286919926629206349736389663034005099632628047744348626985325735127660436970416195010770824699119452068522235533773781009665553334747654376271148892297069542015289476682078937502878434081724188699195933992800749608662054791972251063659540285673473813492671304465178823771244616617129739780480383539944028635105063526866821733348499412261562579732993681806624154872459480632422118255244727286964129923143843340490668979217283870654080956325837913727540346631133719646450217850388505286512479043898600771401531819256499875964667561955313382135313327799932261651171927927733456756273802991053724370338741615748310799411806298316692851132737928446878774334230988780038435374734806506662724462355358030134829886039824282751018440981383947667853222333489518347246923016765708501635118596503209591016618375252246165141784476481209392162931894430562394527151167641236592881523644950227777701308804198213156269804171735683536046765857109743808946166773102980705348872062014579751593468685184933219784523718070803161793484984738741119877373560531658161127113934970599082398580424016648601998909827858521888390202215706057924618765093444155629349000577303744422377890330412556134979623143365478721480305292078315853965663921657261904528505547254184278942339374466477650845881219576511805214737218216159809574424706969034096951721826493217336809278589980109912695596716225966592680243048486426928837212103526969090418784062195419705029146578709738202391390038642933777130620224404984373191688135008983333244822307948208347541731379647704317947394739155514284080247091965378746628527597310970762742405859212033019678232289624355863341415391754301257110407977668082437445160038700539776031547671287965032438906906501072093300566470618796543604726267941305637431806992405265035366016145293360280972418001163830581241519563027034945850346088136381283413323602285165309097032938901859716853016357743120107148201752017772958262691231050170416663761843002214409556348927654002895994380100276881869790694218429066231428105917506706451795251164819243505686561690360739800010649291278085425217717334173004889270242776716246588045500630273034365957738627019305723646516256697094940545672730910050032297591665840113482407045314251730841830493253222217287261529830687535468976051482014154916747971471928883196391782953831421877916221096422183449299503280654371099165318230952169828102290278813511349534101233883001340696659325952910689105653544890998752372795241072584012159659618572842763072766591238937468103823651223898543726533098865123353795434012177952378180158311070809407654950158679533011713183066986516044343552154592795435341529144450769485105172555296568739436373609820928855544950488583712054571626040252513623207313028263732829605018076363360696407556275278010786189342821794975948886721771625127224611358025818543739740445757309074275555731035162537376007713961197562968476869075467162088451836651695555708423828675580861431776785756106488317352594458478878770314112374043240161215187998186516515538086287222905744740571290264200283458091106402266305771659435405953516829884821290013745890755701712581596281552981303978907831780773451175550168106145095586519276121721302052058804199621513488598142090359222325073390118443169188421525629033466885042235342444149397092214176279887919622395948361666210167854031527878198133325110938345787145342360181120326414739386730668454880692222815058161042199147010040248642064516988362910446124407185265764370678356579224392061081239705498112408062028965216502043027299074179816242537767819308154498350073352841627776751751738418265558565466167048385351681268907758314149389800664788422365288418925021707179853693335175235282197021194738847772209637451959846566993695153561393844428318734089263244181021568699340779070084635709882789394800239859357851900441772397979746857760007375771801349389595242033915489693624783055422905907615395688901987479666898024791058578089760261807622762345049379233879949628811310629065743969594017396374832529227422898750975624301158547862752189617422824072131716439829033282423109217736573774512542272683829736651136743724276575826051510298297966104593470641735739690944582868999062863636121177898324443636202763637057533231315401746263253992708545771720777137588813271915925668138816026377157791240312843604572572892531863757895997213400181688247275415351891923641377450330241216435044518798029227079083325575676214398354885347463459424597073745841943027985751925787300855870399159080808658444495567552523946348903245484722500881540939967678465077461439875180044082239792202833005713125368341276958028463983491045848750104130052832345072701041759637210998202539074846963246911658543668589362080561492254509381720190507537074799389675805107821340301907413774736086815617061094575579206910316521681824375237431402076945329380339817023365845684066552033146962881889298994570839442752070801491886180531446551333134079984701382985650852395497570881115133433144033769644217533922798886208467760329424687951502052983738550464602750998832268896772985777637518850431833254902388023409829193647702470385079649320188107151869543810295093779087290964493537242088012009444919621733613096298597857320165437799506176571044448707430262027619951402825132854850692633555150822605178312612190935857386399114974349789007228319719917227565907595474966842733642300430403200553532028050456455965565866725133030292165361466609750791132899863313913710544092405692394831132391001032262548706262162426721484705877090838740612762539076633735989753688097535032263147140983201529806939327622278513687390120190587419556775743412982823753545279740315853863029177878749689437246810906370137543065855940660969001643491136062502581938235573514077045823548628871726497524395708500332841559805696729658531533158097624985767004999569349656683650011717117103715614715108474763430037509179829892543642964579053834086073488035416896693082984398770182427642736400936744205334613584072993173106729671896357483748009597524384829714130828766045112124803727242785197776527820849494855120363743215694905211155406523470325230926767960220520053454820692229683088290666339950432449725264947290389523809184928203508397879175032967120984910125302624580044182570832622482109348076083602579063422897310273186388735276194031049202607394200906977685115295400314797268771566702076742015947975646632075098542868323345907629987059887638764386457515488869958616645328095996109718307044191400098490070374250255408906989883780817070347538901882316271425790008043628771176307975540861723138043460293648502223308357665450196629982351024071614819230199534589948037320496526934914672201917174243299824749853867597992496824546702779952322204350668150860125434351425050683854368018883078342626288448682707009927871500181795122275629482602553367132769084741970761949820873492695084887465920473755010733984310347818821226965094616544612458701412156268750344051139757144046081109806930498980338056425006622300720192899540257942439951580104806218979650680937593875767249410588103856556990763735949346161484165492380330777554308266700955587000476370568157613629602278382155733091634950411564767901346416423192159871436594087661318832467080283373115799087908718039688593626334357085500648510863556502485453058909725435759383503247718160371092548401139284263040584982973331371322373497070864068946634082629763197705926183617479818955406037951049018933786818376391217219542588417573343262566908476900373206856877976740137422181288083818910687188327269568124710463143264106103437722533128726942644111867271981445078514410205528931820254082176244148492138149098039482925363366750472269541971276383163721338114142185341784091026360820592153674492007020626772717328702550543197346674446951913782118699754015566655076541905120093433072316291551746800191175122722569787971195350488584442335532067520896232336042816566097022793818288775214752393726607211505601252901640995212707064626929913659855123589906092431805096933509365740708251668015123598213119129383656122931393302770035572242410598258450062999526840228962931225157178937713726044644158476608271710434389305788856518336456730077551716624513369655132355571502177391502651784664714942631224508521136796696070524928988839756208266207994271766278688976037610017320202126791544277783327895494543979386083305141016414796234901551517103692397360308203127029369868955680939388467431757987865284056661621060230009276660690701337705697022057874213030711981114305248727315329799729043946935887843709536685883307248179523323470648244837569844955475583874546936212438239642565582937357268703119958793802360073387341035842705737313202281153396913606338439507011119962166036372590443155074687590776926819395708672439958524738422045866546916310481500369867563583662506630126883362226351507857638999424808954924872783250157660234990160632451856676877123553206013656754417179584009377883951801321134174055267139727102563230523879410009671083646100120315671843098985070271257093769006471043384114792303271962013173118202464533264593020638966322538673835800889200399446490683209463792432208025745409302452001488270975075893202221906802212840168335950025490281882946636052129169408175332779491158309105974176633855953570900012458778752754917764958884105097898572068646539285666073355270443766901527916015609519443648436143227032113346329688929079414895065622530918650271441843152904662818522502786020959556376654739578905581091936430378085729971054711200639089578397109711662577858605359833369047243063190770978696336830925304240092593480978222572424079318600627065711352807517631282913301776382314935025655141085192711733314577757839115315440762850838874227437322490875899841938803452264033442361643970925961575092950500938615956381101671123010569799366736885297617308570751151096827414732524378402463171096201661354963245195416017304724940289774555463347794188812013206917886261557804952382806343450823491529236956146733931116708647681884806391091659894656673549262831792978197725807800117012011691660789489876937583683480926763263957098873318784630735216340283813456601764841998825378164107775897332116330858606374691508156418391684706228132330495670648210973013518813741505699314422061285971601546697769276388136494631071718218379115304999411926880197903423971590083316548220183402156389415032105244742643324346011527283126524657728914655652362247523606394956977630809178818422274358789116734620027026683732091998069236167834242759018432360258021706199913116355957449851765832805238172472208532253197476561835573566751008999249546662970973688705735937335184640506548385793046482234105251432658639787524678100488443372555269367380205530087029479335740966717158739877720690754515405922992417753728238855597101322136997708985631496375819624998087870665732274466565353292333815167380811319848082036410882155400466820999620004611820245059236308769111770755814998491837521204499067698365661718983066107898193195046137340624906261790010764666119961540611075554395707570929418004351469081888875592468656027630927854191267720242575370635407640571114572564355156001516185231550534386509273702556745589946061154836994729461525971396629705018740710670131798554631679895793148371358460966404149424604614362824923057793916467595474191824138190243373599423017747671675758230793764093814393931733375293149087443810776619748952516659130387506206284003953562102030201207630606434330158915010970747705649558688006310341591344379820774377674458993826709468792494495796249734362089991283275792449583347154070097809293623061654421369764868552416817044612634069963602739433696496039578370684056231269496447193380348295825970209596196844639694006318044247358605412745482716017055438467646615789655564387082158062262215213904442191160174573132643383893788893535918992381320478248289494990954309278663176471446800272576303516278527823233810690242237523778567116737255343061796529635914890492303275872795629619879736196541146704044967781155982542493421272821813503514024851074457580040004593628344289954329184274342437297421555225711958210096222410751530398475200098908284476986339288843206808202220071827296014033022538325123473881278543649142329626265670880200693210447208389081663062321804242063583582919700896099430507829224499296513779013341956932993080417855676463728561814030139843144855115466854045167002076535359752685029071116690056835121540233667250466558003975908273527803447967064684855667137771407007006818740974460506709390212520850206488984060258394659590358655631194300740667929228868454151325514296233322282678095704271038017977452520143042973411994825851940684555431413441317684743412687348306747268340775616784031498651560501010934202732807882336652844822359873665924963993267965020706830251950033365983425997411654736835358198312739697552480725891943882592965271190971878816413711798595422668618895158098894853641279981972176770811391202325201720170468522818705275734788150819813489743380386366791655281770539182101714873624822278881604818533668575882488097998008705693113918649367366735492813297574457749502512763208201889567549293616806247300585128963765821382562871013840034219373406719352179619422575270615639292543252573604066807718818303230858288927955857448229899004576942640114271407421587207655125350657364768748305372320095653638696853646827190016090135380170270909979605537392250005280989168990944225728887046384164425896667903287123119141668802763662640551416044887291367139685692035076390486559600537298239292972764605828281156091799635303496204586589929631031778614845298940569857809269804280799867306501276201496405001598118006828157895456892079115469147054095248122402520717519321708533388216914085949696526281115742077098838498877783345528560982011914141744956056600505667567345915659401326712635602998080184626782495391352737152695572956716963516989562903961192616046806533092081893276208844226376818101388029759773619067034531677260744444921541856520378211183032975959687534116884457429212907061011442163029359912901504908408711759968742391414122210502387469528028178475820650037839685280333682047755373952336643004124201699269401865429423647274411143207813742450679150973328230041111515686344340357413523236434213638072869638945226976262560853078120663317438989877308837173333321667620591331446820086038283598606669827074152029388227322368932472719412067202151380602274878237701842217822113434726470033405398691989943542167097579880698641351236299190311475997669725763511129581636582517302988885816969421393837033918111149584456940381330377572366296319793223612292842573581612503031589018666051393091242514689077294025677227875371993470276529625277261219085124586292534769266071584941244008402395019172294059375376956430043290145663497154925409404132702461723352264473606293811347326174000112393806028323067935884086989390341426726342099820294808686866609973939551485150533724477304300838932875605853191081651997924265038940379004982360948252461838407470268651304468130295726909034915866944967753457558309501587889630991279816669682932718780127688293199502558126817837728309844029996892913943631338384779160809172656652132310503790723971602835758886565185445587711941287555604551081217212972250630427192739714410280446839684413513018455984849673008482387159531884647875477526568506028183231582717992453613869158587964948393866302069361400230254430588168543039847109116527701923989800267726539044076480054871007950694483123280507481878398037865608315679893945617350779187011294304916020015693638791355358539329066675914384679891499002233993267842189038783632095018414087989646425242928922407010792442627680379749474128417665791311874302346456636149986987110687533621130794912327170708533351770602683389070280539182511725576134529646579053313267128673654221142218445455303318592704591253149851569251173064823593434014123777757583831804999344017522942945054097482288533825542632172701733910853889070568713285909222181430767490142663770205324418050473763456302310295540808690492584493654471685899537537606377377074650639066683423190142927310407666905482106000860949292176922553273753400112154729000329040097414839130128337820196745552925024705112528586455424244534394468087669316106594008078913444726812452131569703364918912702014545140705932682606652238313758052929474386044416035429126633747612404759330369796250156575417635449002541341725300043996718393556901180991108537676276312530795670577552076030852763911820852954325238037824419820369920902006787552399165762825184652718345256691958035385146484160581876188672726729292042221935009636631707249058567741739489014939019337822317398756268225245868602893800209984388286677173646576245435821310470749673045154998358474446365443895897980558853671447092784366333196099765247974511191547794066195523746855273852106022510638575406616579628557387205769335074110392263295416718324881769136525731128356191346731307647949073576174318155348334975325020406556430146230338114527578174087653742904148258309906308450648327619933901474793152964081090475105070610719008166854143316119730641775927991569168668418193340986210403534683616891733467235764062089590364682617340095460383491362186432160102573878866220448114204004488470859686826781070662288497185023037705225906918439504101389036191676962434191803852231928299651843304316887380598859551661893891169076526678041395416785572402660668341618609427681254200036181336230392938338937195227126623980453770714804022808446472073128291819076554157529116944170457589710042911336625922610709054736945407524419209867581068740060952330905737740253872508558343784762032313183075387189059632414607852514107761428667110412038546447247483610859504087601457456027490800734870654421515227388845395107058367513361275375672158446006070023755758612951757305150150910600033168243266005466984595431871250991203674172924380056516870635385032077105569030055928748083505371515652659221511537936567781900120173435438420985076494753099975525715849178270701547534200975956555715743461196789287168848076160068655630289638059502810000923478798278521933163392216184749102634367748354613431125550692215552348807481538940756288537514080011215930293243921766192939355155388985694045419316911315094731359360899868956781399916331535910410475351134656865623099226519609390938843674470833773085027160920848657374034947917963939420383363590797769021414648216268894127781244269934520594097765809193851180562758985983152889498510069697991476614114631082246390285311575042441884977670001723036005438483677153893610693233756463708881273971419132060847612878514366572539860599114428862950336310174185966287895433067405478057585792864988933099568204524581901841907796244816917531790750441382360279645600186991073370310261200908648917339797173643369297886692430559242721531636103012541547892439787719956604320679902142493733706554984696072410196916940227746618844847421369241452368354789029776604772210563059993665894911943721861208420979051732803556270074848709896093626669432126310908741607339557359671390259677900274456733808305607355974603800573994331377138095405840048765948518331130259003887690940160039191272919397934893464494649188039166651036042904548258547674796366469789688786893956302909158461337929384025611771123540146585766166435354340527694963960708445649332581066848738790297656533298372108349702917909373303631888779372483530019894473523580317569849962242845610340234087877339468945106140702958286299834669537645365660310661849742825211788563779583318963348834036562573537343213113614379594793508461677735480611896910137775857778067365056638974369452204304897012458644249406926548684664260563526739168287659353891597445448690111589585332390021846755012168506119066577999847033229131780260549625409126265635469832629761867890204192352334218360261139113200125248721526039892642169924813703144065829277930265285500679944481793826564545328286337325020177017875991182192427483641448063652908465941629848971535780052930894304607633581576066305856249631201193374530010793590821297928245725722997863950280334360979545014355327884158765608512513970744644715336317413015075275016341019870905304979927380958185148605836345411209678461198368888970111599819343028866655713761689631380064227556641354605484897470761121554734717909968405485969210385933822278341369931694891716687990556759390446903185393128943653427579463864203740044065687421489832431916450593826722903300977716838808325336405920732967302185115440750619614119998152229381032416799484534685959146248517766742534714038456327873832381642153709339789505325903695994762723101434300860314196456335623637051258497306465060349911482455172460259186880556600159214511105469136740051366175986502828605148597755535549674887327677251649566677404146063293778216254271424783829074623714063824925415345319779679136934991058236874300134671799805569483365812769987928393937519104944275159604745267455994967674872345615235942795495712824996241810449915310258899552756217894881848730715823605626229145669141861600958043480986292918711446924438696645791892322927683999792366152437289786073595621235444343934943753683651310276150189841845130340409647398034620370772398492075604043814347570808743148348995111975235168045803471892085997081085597573184621317315743848534082124384407055278007285366015633055659083080950499563097307795638225646326900895630990423591068151421960734121385585558419187852122547420209336954684007606264584874792658721627295956849877166463780326687297743766109149413126761808631445804329294983242907966728044141090884377174556843128224429190312307202744304059700584876190676551857239969161150598533193299150678201517415013931376349895786344024548119772630716983593723348098905856283507820816541225972002451761326684060485498824446291207736405012347084925833063085887531306150207406879974370800557567841785030567247962013231274904224034226101838792956044726195073677198267117165318116369696450813854072159105799329764806834707327039639893088145218527553230611309509366096602531974075626679059851950285761554620463620838392493604792795747616852023284020230638274733324161585215033908411631644221584951844642299108088279882528071703964100715577134814699465284049193035537159652828540847529279521246893314005366738661300859289095571513683341540122945039978472143738064120065230316095484345893131853802883656224276796628278438249847250027543492382523371306708965942794313399721934208984916910782233733034749011843319323663041210002138341804910634865302208627062133147265763322143680189885703630961300248901691670052451948307079524039935007753434592768808211421593676173101501340278513561615440699510207826132217424450449455498881116845418215110240958190011292491930696111408781136897115349759973001671654267099029935573022542649655682239391545608921315176988784212241579633720114552577004370259984741983119487951085350989852534598850691177157525016151853237917078570607326766841652910098304204085225260678017295473840486307621825044263098145974283998742632859998706068473861377581444136611541000152591317673965026602550741948143962719027356548253805223648409948658434054801484912530757869695401286031850164254213401273678389172729594814078677720394404754213853316263591208123237962525615350952254501643169806442676407188113569169996615443252930739913800911118669819267438441540616647965146373479169998169479202975887192807222990110323367569291659426398835676699223475906163590830594781651098526260908553838314329960314007251751154343717423783482921219713221990919881176754432078481135602273162330247149062647669811115818829670870270106577071000919462367612043886385357499567501038441190789190135962618963203333030512514598467947048874001576325346888208775535517684495783318802642189276022843985811017686002621030715929877760863183005425171702160804290896125525474689171188791995035063240688955149470866403760859885592955899031698985249270709003976981123996435016736919225781852735655592762589169868776474391739359764185162058611555809620878951227857100109840197718388095958310446091425960140010385793931200574580026323825646094783178275214945762048344689987656066290812666522435731861414662323203432306105572248783116086622668679800435793865430522604933667591784539766094236156435943836975554429798550189847212231531063499955608581618701995416274421921176554454710152565099962469680597778950089896874568582121218551015310098255292653996577015135058878670513553275200164019863306885311965715712342962258242272711781057425582783368914855561364574328870666757916557730996376731029093540573372575565875338808162313040584429004897061149659375649974669162250547304218954638058660151078010081396151511158786403598109812933227996709860747939603096451652078361274945681562633039497990575053738436534416080179906213263645721601101063506046634945103131059271545948058486175764455992244178579598267260266426414036233533204452832451477758800685169191085663392316051366571535669678699015639871234971561985604893520281412634865983945200672121074875036351236901405011602183899503161513893826899228821324819261799869895132916039031523701527889245656703897215959603771042884010265489276028676953212518052667526655619554594043631784398783981805346554841058256290541166777397463503234735015330795291135124349076150617249367341416121355096160765673591563511311320957052474170724899935634674703459240301239260583515059180876961111729397336059606640213084657469902019437020596367256894206561245735167973375486802952295774525248420225906771998403293984550021058019399650640555354743242285277653132208988780447393700324836407824725513487102393986616037729647781887299661793007142411072058760255777906098571263146059580034188313106956816693378234942679682230043254333809694897376105045413103647924049191044442494339357507051686975428261577994988660461107039137257000827295279133815383637459917463467571435556725679692810368709691638571112948917521141559500420339847116261374153107124203017336453936389807753238001725074985357900891231172092687453711964104685329564053133375199970356547565440216179992612999492346261856308025716186322520859027106694719837538555408726842239889509696014338854024902209158551464949682143110190465239258262731885348768579275885201588992870042494310646884291598903761244378698016319303496950601348707240635753951085664555207641467216743561627413740718854574488282307055045710242010110706465872437702192794798902032951050215891575293908620212981981354837747330900412668057917343172093549808642885520242710454187145064348441812113574175842416048499771846282458543809580602752273097650466839416248562940790538443482678409367164083373503186558725836367325188388444036455345698842326011951331870877405599540309274616773102781758848986874832314491701913399506479889937286216648213829407123003480118349246347176687080553191442795606399992849400436503098106957548968196873386805441644680688476101523205800941923439216263963071809536660343499031591106057666414492117051682772807838590309516617810346607638117040791920034927192787811551641288705654603215011436253820863615663783343078529046122465004059341581862320942691739432556174201701384217301215109382841678632692256263361221787294807022271926478860351986201260210530342984558783510697135366218097636902930417901633962057121825398832229998406017395106124857603766975406778573235655154605094992775737727546267823117783846733347003377066954398837301136902308958931248288112648989912518329126252158608923162351223613998310476472179418327151887360917540251151469083172700245558042042904250647439182821009164740919251144016401154609533569024187107545638127408470678933195175805631500077561585508467559633041208308223491662597533533783955947143863016518511086874119497736100090558094646975798104467462365248122026487057785581833638692377101856381213353262123868293236908057071360558718587055736978366573896954926871997316337968160823548468164739572099153150287181389946922192536917368764676866342586087484329003534908105925661594692540613585927732786002961059665385849909160596569751745339774613306900976616211358712556351732539585039930549017233015240354479236889888272025095541896503015023377348514127228089522697280492839121526878201278373593785719250302193143350981988293949197373839692061273909024846749096406555059231632034482453861037479148555002684471697241368350731646435473264836002059638496082864431366266405070370502324805893055752655881310238756284913722683829455427633037796910489306100645013042947542469930456652500224969582250905305343884779578165762997904843550612656481903353973620194406380084189224465380352827272498019955693891261802021699557606512646115785299731270349231059031179257929787514548421829806770618993537191522985328790176050864938899837764227153685282199667105137750151309273775793198582198837001311355757209488654385946646321705519800614031892048496354239423823443631049109163098302892578228070356075479649762492276014391468988638400765230234030600040097678012490446962389852919892221214153536930123421294124551513646887219649201645486025047225396566917102377887199652315515726374625741668541222806330789864608956666403952424157449527103458564417220090025726089266019437407708465295851151474352768866373271976171256581308943674187953623677541034675290787705374553130530751730166508293268932951992227884181192346044134524546561626909116632253617753129916914110038485224667345518843549782771051997937493820278991706421629112043781209765192804410553294735985864285168018720053972527335392358817644694652340839700170654077251688447384940795515137836968340017675642028530348290897322274962699522978887006342474644989702902482932519859017685134436273766961415168447328850533949020110414252040816905408537284230869778160858156427483525321288378214129762220087353112380605660448043492738136367665816345989243041224655455666540364893097933646088750608204298394971112813335758942115000287780639995796126631555429952345960641068538628444097145113398289370841401633409488333099061930174709239544913827994808406339938911327151520906725016084359268523087975463401975227953736227780348466825331409621462404122651587737677874174602034129311165532846940665725134273720395449406538756550255096641061440298573434952285011141362170104140051983557238903771737906173702352617857916904609566322026688826095036250222409160604610284351187809078789612969003880397271303667248048569723373405601607912795252741973552966724360385147351754098864544051732802713501593539967938296611496464109546526450276363436493956889877954791706978337005881179546503210852790365895228551077180594149014185211756315556919629739036384580478309515365989961637888132413555492054434915122733174522502095152816474947653032892395945587549264825138697120904932409929193694255640447204257305806450516674989517177599015304336878663593823800895274224402280084910451307838197364447383154416311678162610888261625655308629028525835453131978635640452045899445109495296433114020486404641443752187759058955129551962063055242512404704065277104088630215448715641619469631825641034228707525752509424722508391731908357276140219217550994985764344290954077730772472044977203145015128923256763850488998630773182770955740491029575502096330388240545724208629439935075012824616297772071257622372879562846739803033398829567613552054060323664110654072193221955534857679852150971760702381121503613636979275700568373188899073206473637588635997343345269863099151426947345360976290654143030515113308070319621448966442225528314357444289980876259252851097770705824303430252951799102730755372476865066110404708757615334288974501223208079173143314156697106000500827653687724166253437611236469240777083582656114202360874029791984014700140992652580651128785032938214969888013572613004223794619044263820782649467361306268809590670957120908221542718782431905472350395997498793146947718100233201120937736801911472700043821149994859924042037612919555712938757011050939258392594218106077482396990647964084919033390994292530670278700516991201979906617086183399141553872509983832864289969772229462557487955887074919755985804980038411299777939369951578210171226314553814419695108567274419152431871652667923454549326840479619905609400240220443102636081720173307353418318230389513689854384270896675766872250086533696926291084924839371912503606890464300937194499595247946625359220479173476345056568898749709521619559014825748541756139538158258602309473190761505641495795279114642280579760543231185921037922150968281492825076145079127316107403056227290067447963577692274671903781746510711787897078577969009336446128640477397302756958411645424957811980330270914494857071318957001544821223032128587680731931975926279769713509848442679804899727009398835628494880548024004556360459001439158063906001006496179925218544830278152463664201808479030934115847235900007297517872306080942756179447132284356339110316886865986380272384881571517638928330376192610363167340454254927503685386111515505693507132799974098226410858393360368184744480021444036788617651149307141642402655315440557944124608181803948510629914660692996761693010839223229599171299824607231675255278053022127695039937472473821409160632727028327047072586648486678221109241590068681423862914651622593808147048553346304090963920774286240179241226934004818023657714643354170997321078494622585399370571186715971522151751696053245804417647504702441436454465926928650813280882935530813359747347650344827444739848091080148361727849024019685828910361598997160801349826880371003824257514069197700206967569417134536225379826275376314066250717913295391489909895789521975992500532711972420450370147875299464961613861107587444924818793800423014673921998826643388691579774835979526815801262144648005049695662595549780304332508299193786751948606262575011999023153387307038438051823824049950292426085400236605020216091184289561879216591120433247015362236705087737995356250117263671928029017261046759660460661985202985633831254874456852729307240796277582640766697060381793282422270031766965475997510416887046116170246948499918910906589195950949910837506883205698241990810924551286704492873690645485695384617949191131634926838631592125313070100643019649340084427734099905297852653000854570884738760600050549286247986485478815913757695810265685135761575577381905098730496051938679785613999919591653765859898699992047749828982672109018536678036793009953865959003198081460721454797177672374837159233089825436434131372221804110562471083222416437399017740175260676448393970040682675168628764569607575891552663713707422872111136920953654312550198772693736222393458757078448183404013366563305779182239665098847372589790770810517776757497597848488651238979735981497545633513645222435561777102899997204040755529827737226204959571821052737324503628508637166401443609697308237864745582192071098037612398102364825597295141083243680029410064822095848229645164890960176128924187751998635448068078916334221105666832956391394458953733964670993454156550405601844704740642980054377454606814407375346541305660987951229902904873909381728983969591770226655491207569765334087027577994931971313432280293704993498097080617400259473498481404791256814802290471950248287307986550836334657249585788628817127163094727527775353951848433197948437712604419834012015267405755385802838219140949283963368945770736089680597302008652738316425649168783194234979747744558599465698761696579673551394116349289243325442508821983243438560051014729468488789838437857500965555081753695971172658431371347622239586786673048074660066767959393937016542561120560038753846155502899293390378170651715188191791274325438371129233857544067740087729912648593597065943018711122744668917444897600963310804672955131712572306860889929131981047161650319068454261489239137089388040069567551925697063728246052466166025485350951456098233173797487488898213282037043494384672496816558203229521958620633257267680915571542008054830246072194488867636073722904210728905706021542838389350335443855265003346519621410017209253272658756742456287520318495252359105723758500118764956792569591135491153262243309293441662736219700234769837909817399777024040402064930859631141450425954641481035569227475621219791604586324464653920668859193684291745175665635473366405012537088618105996081647987130480403770071726694924860438106293713060504675441977735795340100897325102559706912886483076670628058667390411487469383347532000737060178136184808263023775228866891192037862805184395207167941543264902741051590265572373162216329040612705001569092005253996765102696236237359572564051502341952723414399794086552855531967667219935037452645151132411007654344868425587523958889972301774968384858083340947606513126024417640455817137995088383609409999346045124992979491251608461797998395400298850409788920462451474453949478430438054513114167199908528604369748861197324044356312495904027281265026886436768857162386404122917740994623456988003364248067632714019040919449135905533420613933372213170876560275195445658167553205848867527357936201238347228098551518397129839274765621907042347754956676829020483651759265439403142974046499241102553046122319598369437631302835330945612611587796966411924724805760219405449370851976173090182738760615205467358838537728274362226718216629855925079798350813988455557559173222827967506192867075020595192120401225586497404779722615697912958331876501439903822480321353294866280554773010739508259447247933842149501207494126751583706064666580797965467508073798190177681163336273223268518768893458195645310712023476809526582304852399288498333453285866528522991951017074026949765701624762801448954891538033322274259396954511964686899487169189909301274292715378409075353295805667432897629125151433185932997467142902013470760655148904794647653494495042702492795205763091873361017978113465753286162900760077699950683193451675069661940451279134032259973110478731612439106397132628305051051169604590343624336306207530896002656720708619077657448760024420251766301409534683906836271801303763453814378872909018626638368471058517844223241348502515777324375211784361681658466979257316223539778465060286653615546851803201418007810465651906174904777981229777428396646429818834533896247599198477722693363208181642752762630466122263753075899904330044783910990018501650497072451849349166182984781269570454288597514169397813703360878977375313314490211463159508496441648172593437598487904341051641373834473421052290914768114806854274647172073819106789264811560323118315926453533386905120159545833698471933160499019464216190339139422231502767866261465432115302635910749559274591850175002575506955321466067815305683950699847944876793378961482680247318126131117747211208678627353291717066846554084921184100084727762454907928414743692559214713821968122310603270426701201688085373359289528189348308479640449492477461793755349666432758342097495618595171667935696420178619772669811880226068247187677065858497898512333590136867942491408957521396383179146754636902949332213328873266639017389077388787848938325555721557422237349907155049540550619447641434090984052214162148236897142420865124609246957032844952037908261765170305823853110269598512661070419308968907680463528415298647936140038354182685183955950808705725623733397021933808901991767045238688218379694041952015539054463042509202159738302200738357466817926961537702118549551176467208060992298912273811603229862452122036337505588772024961370803255144586666531732695362712884295274811153233623769135361114303081851322449931490402496070730644067920505249050974508681487015656433036697442875258826168778355114547178017066333133795307258496546745056861649453453472646948464901063267970862073322356578572243148131268864627367542386059017415269324293701797309374670448977738983889127010810171221465565244247144692370551223156016942027424730938257699878203440775434812257433053031186740122804255256227809270759410744305093916596926716023707231972749231130641841501089758477986046446027852038175366006855041017522425094453480713144595503130220126854104085920576304680568847376649890266851051316635103412238641489745012863914758678888568087339902665585233443631883158184446243044318401505708514432132885396384493358556385300923094186126223849107584536472128842059738915585254373570039249282693757646472697288769006245031544296298561961735687611522211393061102790922957877236705305197071316015686594398756868157928200397207167536372201039398680834937581642610609169845406972901807380669076974504063559622169219691363264301090902049548532759001482112643905763077076745781514174421465404006509642029640174508657161790408114196394252370081920944585312139567223238762780244518464232052105819653541698328346308475787449383384373178510540438938296642440878079775964051809683079834879369912811849288778202959504933749356148562301226222563755747156242005660507843511527995235734522225464174752825128921717270009407279979479183185667691778589702293802349908864718974102805459615677394483817722322702634030372230064968820997400924766316554718711867995731152660151962339234884339311429875225395596545973484992397558761583509738187183916815732748260123721409053661387327479424280300587666599100227233133385615548444458656469281252332532366504291269419928313306419454466125318845750187630925464910499315954470358101551918394630313517541201886013777910600932628622109523269190432646448310325498877391331667921124834264938312885759757456554925239726414823372350875410750212159950068633643917930561932140757418607124678171277323628896054379885411169116991236885153063031093540438998711569369131568883105254196703896423185969285534966200782460195829265530298841483706969371475093120942227315372765537356200029068663646108070305188091762215381096493616625025340008242825733378736192051614493561869876988610068033281413080091856999200942641727987800524491721019421325740018888880919218912971351427547198473125663939665709666616459774084076401404188663696148455672581221994258841980036859278756525023859742271222026009931647841793156811600878113398652817393561661057993072792823161248720784250092190562106825965043084236424330249191075295041813902552931702297183034315601121348810568725841191034502961593089864603902490783970691066304284595090701815009031472098142890258376432007331036392143201223476655763214289556290615914093590335015779177053276018657365273485719262723915899069195098856997285108537029900810805502650698242892582009263833097425064200440428399544085783725891012603350449633715935080684237528624643051255980620212135069599196951287032198035833670486418713889676765799553877699407154734735412240553671460356086922989542247374052951305240083182490181467064894234959765897672345126612800802803978808372517699104276944300633538351528131569370092219174889902358379206013313012398863983915895940634449658839154321394473002607382777009100538626763945589203363100556326459135285755384473290547150258323932709732249621495204025341972068951122372184237205615288229438406643899415066733911655408898578681780582741873480834833841177047901043043098695205675053764631102055161767466556396824684482733177234937925780203387714291720469716620988041324246673986549272891286288172762569631300665024054619972104438987759615254011635271786665753172484580109926463347103676345486587104280615834565813902735449082309708452913663272965256673908894849521849726493802851029151530505999895415613338835739946708008717514170455868517058727147600799154443034811623350131224842944763539904952167127819495972062134449036257143320384325072697911894862896002719455114457547100899698453961617040611954082850045864787961706757377985628404821764135262311627785464635409545606510020762339706599287689038475521232900042113549970293446130473151494274527075179466818908513479629946744684112622601900392536234069093357735081838782380078165233363848138323027716071714935585053221416066138572496153501484122284707188830156155255184925249655352211579644835059451166028074824298596482072741794421828365615201042421406212445306568144149961050782923131819063763362829968323690524449509599605726952837177149432768907161097177178031419622859975901241295803220922252898228822924996358234046166552934679082254816578019056585607332247746452665413271109389904988522659239812814667667856130714982333858149654666289716410713687410998851099086129530402422505063668725341277308771246905913452827830721418690924799312541149954621764406687425063358360495725422756257769520399062220821204650764984260747249392740813175338746721456292538656070553944142359497506775815770836124025762741343577409275199941551667367998580711446307708437400271163358484886824686754775669550709742947820231643846476019088536215887525006596202563593004322156372311032664580508030752986151921251959539275416763475418282224645069095375254609734463748987026791629693080802351702322413595125983451785158638861786135395906953494564864372596962600792596616195132296963651275541449898216277839103182717860158235995486787845028269362633953051477528953683716702568201802629874122754267295172306853924774933301602556148211873967027834371139455655176207346495701641626836061033822285403717652903398131642706274289321655600078330600417143863833007068946589859092587166178716472602583922183537187092302977871932418799402847299289683435630671426334483330192685691755601870162276436786483647904788629195408534852575535055671455308122415033761917729899730988731873595089140069382663923049578308874838604912141056212234269533520843562942567951546826600318961081613941858041842951000049230251921575051373106644631943099894819103565891301797695469980190823183457877426865048393794227210826474435047072596377783195213068787943842792169427466593625312863041494617807532793196505849656904488467504234484560663735228917604370027280237966816659930154722136466991417542615295842133510154381663286513668957301062120637117402058163271078844247557706827967516404356856900575230723770144828269420845827199520993276998755483248527266749309352056482523542699155346065087569453336067853786055559306945707217686727353177836017383392549363095017560371762847341360943381599530557837127781257296621489397145114342018295325044982757750705427977626547868651938239565553628648282578250141275876889552505380836193352796657596805598535730345856485991512434067547952487789942518331981576033252070682723427504158465739090526338166796220562246715260894844232831970619808260075009490442823898986102961943351424215572287186133628795808268077564798991488316031732740130470065580519355245732205028497555221910690044313407255486174504362398184226144098900285580896291752538357616345654180461107549140700367956836985213102805307374756134486312930195960902545502820258143250544681127163117146162679223588315046561006072196881621005515220087641660862505345094902740969792605082838100112141189441246688053207293177921343088859113909046051692522920109093941489974591055020312205676474226931472506920115746226508802879016054122421187686775153258764049601078128723885901027818874207514059626846258271981720519545907580870137215777315009552759318111404558767595757733161048147489548355224552589338672324464003562931804358679763169683685281885321407359115374705259717041417567102118657822204669233483086158839402220632698609137896830873827152039364103494398423731741251891313739834113389313400787004711427672115720041282594066046505528305492784855943217482127005700173510660716518289903000303336229662709762030469088829775562977751894480482770980076849039610820913095239459684494338320558167079351505616160017380559207787450726218590867945575817198521440116896681836519563107349601325746985340693576595892614409914711506963142521634822750123957069413361056006762855844138428746141989771690482610631564449673825206616432882564699932539302225703740802248694598265011125978376213482954559175739261936397454092359252783465822165002804768261490109526747566783281709175550091171752786038980981730228303557820792906812140283758914961090638114691559425981866008548166175335670107885445105181325923194651855215726972972262280334008766304567514509815306661299741720702749571305260242398976701690876818241052732783649923735616372401061243179301258132872641329504386498762066529520374872926043722393979853224142350467368223331134030458785412025093137583756162852349475286535555806820924124802979005174642160760096642156300037399045589604272528607628886277643795043662212117076570530333391977299171971073248472626597733326106790858627594484260459391268519291678537203544792779463684904247536263932531757019516010837413223942243767372023584422268263440305859563648363166749721052820211393996914994269708864147722103623279897993946084015770256496874564120627076082345948332741404783552033313441913360389521214542963208982550448844104057170822541645606978966270812312785325639208360414561578886312850923323377187417183774780711110691737826518013837996682797520651296951757045693430161805730051042055075792125168644802729854295431817198488076266106339438321628577007084760930483444307551820242744629320309935957472946744451575386008019371684753556679197327973238206335441738120184824323780389516157662302003692509529296680374944729320706791445970166378614106682165779498739423467086978186515508512618867640790528458245888145798147054148514091781454755335356876225136395152560854777401707909088694083735265378052562334400064152373526936421141968555994228798330663397781478780092797821819442634204959591827261415954126817915528599980147842208218274905451600277928344378767138817614284157397250868801138997158251384522662611805022562770727216116032615736525230767777452291757505146725468579258134939573746355792995206916438726019557515876130949612403718257469423069892382371862082337478061450201689268858365227519778688501415118880892645421516960274699706581840948932604605388020937756253271750296272789834474103633339375446821128003365054871249378608692079115051516367105315935214390695839691866783794859560157964632473850467991785600909087408671120850134724409870470853856460341520747780764734348819296330760993021978517849840970497075340843796093825546024706559127663676812728953252940947639007708623352070279988080028695152830068129454501801367557837202925981879799869746304124147854762712278501702538882909260273278115409541838697019436386659592750345209405051438762293197135180285204632125727398322170723692945753751212623481987774305149096846211990880488653376029942541538768131584622334067755812046108209105723267958365802228738454065048067508479500515919577428008248193957167337274638358488640134475881721540710613046715098128087724178393089835464487461880134457942427691618794568193087202716610327648836497056024129471134594313036637584224935155888431708143605087709415116895366412334697527898968323922140246815406975100845250354720370330781704818114959017888311797237105498305486823071680226953378429450632307468625489714554396321267286906502471238679757065156157512220367098262893289334607497814951366987258950501997174127423508475641384850385827800553077785640515179166881813741631679238037696461802209095503035762016378373089799072554962566296581805875551288670486723549820270386435315735812750107829875581891595957874392326845652681216434095162567196077148668654696546078335522765454166099444829416205559232474892916707568834532329810863092497717071391822279317101057940347149141298679914424936578930246373688989597078907499598969908791323450670356140028478588894517209168164203745766630550347351169547425237053130205492181000141163611695747834573865153336836032762594601048561037093340205886500852836537183327578332917242472528787569416996149896060729496687280543676667702968780459929405285395876509251433025935797981651083216889399217697495865209783788866055059566778461157577636379020945495582495162255026852572611043678331297943519537786659410542023266415412694531524331144156379264845077827186138255554128136661830489901139171328982427970941668097522331768667942443980895639248724986702710076183161818211261310293570860019311154022162945248044923172873415500636067474698713231069668862225838696961978202632304235273978554877744607009894245706054097949748561035025196343422287913817103907473994395489932039942390281753956051690178454821568465579839153290548470735629509534878059633726193622255386536975961607278950623481945494787310692749774293463694383314475273222339890569422062602422511916442050258408033985423011120318650845250411391988979970824861435614946444173784191344097397729382260679861005035216259351531097167897404821851091826083629295524064398686332254916243639105810022345596358496414958417324241948243110544656732107516173121104014515844823537717348285209358140633819658608179600403955844736407458894430591102449983696599929082249000440117665724362921380782915751687331159642468825223192948579667101395324637839842146943262397337043323695786763349037898530817410575268120006863785776784230522875045723760276513731316128910139048134101546329550681746293371861029397062066178588495724005815017061548238700293275398535491651573417464091191998016265491655038181904651870039103058371788144665005704804293016766983569530350882135120240288070427220304443553439661237742578199904893157643188118349406501814913741787011928067474012512385548541247148570890127251221673319024805379987300195894015596020435639187441581356844572718003400697493487849092908696366270120556552538224238027103323632082434002514798527198561075835120718902393100472956421585580238087596118048852919415889614713435998062265843597237700282326131164798628062937162797443931760218607712927460073344435911925085963090632696135534987185115455338899787291753632884160966518149081704155087164203250073969663616179166582533604999981168553226703122700540323657033743843726976884895475334554735476516283480685734780608641488320268707766079856507373017323943573708984231531280841472343382996496186677758792726041029334003738291760435757632129777330329366376809178439494700721485380024502394826574865843561381263274954935993884119737510954252774652171357707270591944704530097755247381024130485953260927869472604087102533621860215015501625966003538329645286454812709143701895039745767029256380953301809243663407138301266546779468803812507815999891690457102481498555747911697381312278985866899310824204708309364619562626448392105325816308434581323801245840909119196396880471099945675421722965840588673379058891176634297945517889788872077244836967490248256759456123470385805281043298547466429509636712586957298742750949335367845927752941323809483961589802452288387175697209574259254565374650900900229371112208961626630756339949737214828284024886895755517019535032585609270637577522943865015500378129739976741792922696425004192738626212146619118339937008734109178978778451917123618069565226597884827805242335859910537195381319347230513365690359266259530491689769622681745255833402713175675257410936595114182103349701627894419610206995092669998477625887553356302587078698651251841870148295647937943005898984617230178509656478167322920383812268762185572405285216267600866230097881155948938962260491986841530563925007129962024294723637255021424175823162639875206924215192160833211865076081459669291457027752522857287450025630100790932475897248357422885226381717935437717757427611960007390031622818673373256415288532525925765542881472254028940860080617455166776581809743218433325336536642438880805879085747904802011988410076008444587824378087702833940067260898049885273428371768711762726266317793766696185431304684164065758437931700146561073651176599182861729118973557020204528908336517089267358846042578554207856023242554747711852468004175266428378492437298956668728568529821553096418600471016073700834849356786971471181132021124155041532826481104166202145155258910566745449654492002460228003234233751899971238789184416935253317128002117352737368124199304891851973540237746805284401553991626582151503229932974035392297587238605844599388995157124176420433173326732119997075022539900295622271840718262320022590356593260374426144430145809647015211553417233613389689789662360199120932935973940080878071048118049054497504446896590937852111290122807989734002005876622397631457793408558008849938974617791535863549169450596732549082045648160853536880990946032161186710259325917796837728865542666827252679935123293433853379540893618527856089103950110983777214418732680761584738682923300385687231049962646271229771035409303705176327108667170534424144190902039189913589111207791456680111741698420121902082110815917274770205979518379220012758269425665029023299097064501492201904675893256476992875573653286437030249290480816079806543868172629916818613136916385975564346629493034324325509631407046888673743469601201307295593351461497424938647025602642325296316692778508993805600057576500118630758981833255503392417892682396049490880562969293659044889801406866195890195516782676726461513746951689918753336004447607682922960228473841349597078881880778006354304289310963672270981694811915446734874039125089648157786455494358744318848378908434645467191643228073998332401951868666569136434338507299869936269972549714122457868639905311751868844135707613149139728918292501651548305344385019601895826714202631056051294330350669743295563556342942324119241787906302395815145102441767108279553125155052462837327570679070257022814453655882692892582725551676177693657627947980701696892295434469019125443409761840203852880045340638920439702470608908409289286672064600482127176246195397029700385249270152750744844976228553633858730587369898573273359086977082823035611724129578499257627491071927623718161471173537561836551989388467269668624331689185074520140275509018594785612680812085309203087179658190644621334462722888926451021702499431832189017672879318127586732847460445265919525393050716738524159274417736920912755945517677699536728673416505572050463749957556607934631738533243200008518467304373504108277001946425449474920864074832169235991166702581378529424448837749202361667627743124515489386647375740553619173778610668582819295192981141258595799227811900510797337727599617250863587259374067803161120581479005676179499148909983307893819049131628082194469696894203907762753856391311597451834793801527587383519905681149918143726983016665390812599932204943376990174006761766974833317761781765430387937083539842471863287060073771981348088545584798271576063961509910479663935949578361987145966179865911353710691534744765322048228965685302367654655695367722675278653450844915978031278892527564126714024248750138927241801749379029230208961883885019776677510757293173488703324889456295121063383156489730613268451613654036046244780028445632527859126431834981450720683330454501454702107489312399952452447663176595172271754541651302489153261261148372003515374423931976827141768585701098709447915453719104488592833860795214697365714754949017374951297880041744340900520072376724650636254836618851545552291455081445629396413235388951912320153820464433720668664821922419998175887780001867870925224905160387979395798464323150231359535923367411145969361917067165929616106928127105197706915813865424533497993181510005127750156031596260813915014715158700107760872087392388082053381734797231403980821868858349295252902192044690421328693275438904912770469099023671433164637006998391550127682570282085997195317525148556585116800415134411403363845918991683835783293907720230886735338255144297706013417333866978790078574439210267877166183607906350526000800416179741984978445430236130837020597537560276146933269940722695503789205150357780515502118607603249012171210933286094495987254884670474242737398757289939951860749612721051461535374748614580804959260123079674338826489954690211253014139796412626252591902503978473204759839703176803620669263356827909315720786657304881665856720495190269590194248991659414518221813745627675639465379793629151085033485771668614467100859545555889310704453708274449111751454666959726673311548145782235733387465819915922575001136236627815295906343652499362394523917274932703716109064377820668332019480411903519226718390345884298691115347450803433128627382687268039152213399015057925387940496369309498164633909538715124321032003243735457216818866919914331503082408554018265271852085509945616520143021682392440920624854381767061296080013828248983476545388064878383826814352516674978657973435425759264352129551355594381469014761100688618934000173807613545333122043745063791738186074141979326535700941461974540938504676126636575300503512283041956449446564582490714413602574390363928755610541318002671658867325963597669936006630455432125460542845746117242982340775381711721843176350551980396108020321613352676944064482426841218340667867678236779733097429337203924143578810887414154163501820250444061534466411899130304033471515887887615303906400890752959103045976973724541317108602517881162046164369318958785193489025342734188021157349643269760727201410330994592962755116081534220284016803342942087270081814606091717771508362970008947136558906590029999495700834834389066137865071001322798016298327824998423947112876339151409279362695785318199897320128511663768956556609890204909691167142339635380417251705108480283985035095787229555891071115728450790420603176538483251828728623378049018640360136428355295091742516636191000579193388994680623512042565762603996490919031147455997384557590783588884349106168466262226989119389005072389114082488390209021054792319791388532419708586715930060021357240424476555726020366530174079362461318685230804693693266495534478854755890376388403007384420345731662264662184706420589170545139052563153453703986953092744029365601464547569844998399252272335915684309670521555455345230388123055094009265346689037440723460586936817085891579783323781699252140511001344373679529998757069840892272860483868353941170364396214799987782252552560433649039141375316577657409474986199076276872427704378869770538934632243574738043126161961578092696926980200663842261154666555369876048334741429790931013169846168830630555660994443967229407357298901025772372712331174316314470746260627798627533608486723449953926576557596918646364667917854472527465840961760190151240629849092510531649730837949030721609426030735091117613278916180395898825311098936066497583244941947164407601615444228923052532823896094281527760564493457899415750500602912439709459841595943216849957260937555512808270225626197541865701213272082311494485945502679075623395622438700507906492699186774191825756668332032587017498299840668546340822862819213186989831890764623054605817622433497255720592362968628744029534632452450293149327604299987271236062931063042162003283509386622655408687161997749085701058523521945425124166648481458362995877259572048815143950072556650088715026795468439609098671480684859315883790711991136725077095254333904014906649352636570279929048222581373836209607968128219532943117483491395675518569157471146426610987018666773141963298293041755113279699757285996959243276484361078169365553281284865630685033135090593339327487815891439925657015574907829904749906054294317887954415044910724650481037031527412803242516462470170455386789883593185550965380124656465515623077313811496442473022435084912711402629665681247933605749737685605185079626081236177207906262875166014745392379681302769698891752278712716336906196449936927728010472384943957667504130719431346207248068668396068730767897230537085966561150701400994312047691791748081423599850440540152502902707192661090883735511789750124111474307936641220483982470600559141050912515349282543300923371900589601287220266013881301508754198612351200048972064970051944987383882556659591058562951684160336068169304051302916236954527782175304746397979326945646838588477000491290210728234355284794770326378499752474904455291667224687664361758695386560064288003630419435032431150178306538955474908843977925667976439750538776005314060996156878897747139614884219815056023962512956856514010057908414577024274182361440373911863033761271393421079222638056577232203244618578249021423402994284098181977979496083094981743236622402934680562285394528325451328690200639447483373521619856144914377293173299903130143779015230555886060908166779953148641988475991977713282633882172216912853680369349534488646929390342108436128271706928639295787042542815592667994864377728487890250365690848463915150050815690418707904484421406691914429582990314586355976738131226641323697895353067114203625463749599457470522800248517897641155193326384002658621936945261521045945302079333135587852370999107321494185000336714274182047151352994528739370220538173848686173994874154141084414195925009812448164481521711148661632270984021020137782603194420904760140225275078840366334124407552786021460887360161058333937671389065968511348875697755949448152897525494454592494215164140643349807668737567763177480369963520678650489139605085165163972909280882258363812831750407411550633045369965004315036503334386363792989065980911441571031289048182638392744106753031325642117110155688561779865927029505745355275318058728422551915946341778512034062810398090914852832951477131817849086424918876148070414516992928075754155148162003605687675839142604167094910012721699060828435813410197204294887411351026671103416784578573655687050424519631420465178962261904060014411717245284164022093374114187471926930983845827503344018662957953038270097042594033029651927781905694739934168939891884367415195334165194544338677292529714266944926796828065910019714179719976877651341845527849300113909669567667916419589848850538121237044323860160816166541303801432387472408048544485943037434893280788924544702536107186574582241510698925468401583752438333324396185314376804046887835138852175619026439826053725055645700043255611968707872988836980476182554259601290088244928529852093015153836577594929786510410830486259728881648249569376920496912718943330844744950567318333937444683924665268978273610422114629452531531407138965949649854809005694935057217428793439967396153417542842256771307845079472711798553630055595839059895162054706380065565647726681217477175065102253393500797566014393454052283832255592223817253566089268838619082159856851867711972664543086365227821895305770032332810723715754784358773830066209100699368885315940685637568583729659020807398159966552021160955091777313217583848470834155124837502495167646134735114841853702679592949082423148225258183450039080584385037459533909823549561438557270803304492941253852809900251142522386052397045031540553357906551698474314641954464234434321644148887344279951789997030975203909497330222807621463369005733897176762155092062752636356432158690309854972936038306261998915435693697614607786245446496286917314376461191587142717965989858722103264797797828759936841101174159677678312713234242108322457942974731409774389201615478436922856529805283548433905395846139451851408298596384624545815981567780358006586768726341707203392033867949737463103651295046390025871362553575797532394666076148967696158291871971997681859987623181890988819710094251921954701797832437541308179957745045911430384016697747035808882958897387659174726094575998574816089145214183328999765404241879589025688867462380479272840524335996903206979723021556384298698288781845204676008687128046138618467277216455715056258561860729143624671036695271397847902263273072043827427814641609336283003167434545518398598059829064543889886585028748745023940369490948679071738046867209732215409465783776804785038576845162984571926392005491236999432330057014944227391013873942991724711827895046612729614824647007065160083165793218547346187743729609356065862222022094582508845151361170803668081480795300556006124001894396136529682229897065418819414994449836741495296915763577398519744186275456203301240143494629947382516141140078900532405819395935562764205850127528853085238033502916280500530060336473675806648125388638778888830499575911348720943515057916716640000148969696726872554803342727301677466579661375935156216736039862538354356383972749878545720106869744252758098123558949677131356467593163499029635252371418618400840639353570687904019789328258363038828959600902349071816704903145638715977695401016171281725389962220938222616362928968139406988696294354738294023382581721835619629945352632045680429448552763555726609515831373251425373112838339146172049277419599853246800849439562648277105739805970173241213541154132460688386608830457705962591934337354930293588901291360566565246880810633271901585142537176258529117018541354018573344332469686107625652783552162331672203501804942696621255263540305004373775369508344258853888677705723794360810787331779052943760886224027517066457866193785009880220317977681435983298444242198721355271193522098468588877735378376757614251349433869184389164169297136607870255166928979375214512396565645409862399362647652453626535021823958509266889909488807142798602615690464477107140431876873169282440322659856269211983069983280347580289219454824640058612794735832862408250827986347875423199476418655323748451764530465127266445645911070151026773163634035800467242273797443184570795276164377683304560203413664656389209433630480911626011649849254593936201375752128178564447918423457883396313102262098097051605800369177062698886008860335411449551074234163666280489012662802880750820951097803053725901554067733751314124360380396392907247930325319908055609441567729018868539886352757162587578535459526252586755629628973475097180760101181933056366568110131039403997954432980612884508101243704538048949918487808252175550785662269884525480817334949182377860665942060435480385014663032034429601269457739327104872500835120692382964513720409175864005801213177831356100074344085867066483383575016245164871093230386074821248632728453488922990510496306052889753048912010854353675412187822296485420812662397709318280494728035865816916097109087185039907543837924953116466214954034907391658277043065049650575771537892347655488531447140139803020884740309923737367209800068593154394758391593822475123822531797745585856907628890363373315488676215367774257436957068642474078320059713646766092190507766940972511721907983671358946624441410500034776202981778734848910937527636507262615370465296772165767040408312307936387256721865611628645067790344393617246216229368056265267342957718494923771284101076392797986569702518205526934177151431335969592107587331558064085043698165461841148111903138594199480637809459495132527842910678342742165064712306638750068506414293071703712205776103607070415266022459751211397369577652921058611838919069816561162479765564383246988548496413592211220502984284239992471315524339663690154518748736829542064379766671725930091458921791735781490160795856705522411255747665166064780596356769452765981641665232048932157360276713627161414467867975837929425092891238697598648225761149492757419980776128671329643361204254022030018043488467036569601733953371716323937289395622647481202317181353724658836315700541401222470100183751026699766169021638592701561036001311552340588934791069767315461740164966894227410907934683194699161428238921436438992503892095541502114042246196099577026227533731582947885277917562059480387849889312756226877223916313287638548971337069760847311512479989758537775627658735171531190569789223836415160112783122972669910138089860088375908718195658055894195571027968678754193252892932553949958978152274743058637449411362673367011134267818684773455501320580513089529454513795745234032716745956151923672976189914377796937904586815315902404976134501130926615936351256808078168706956134844412880135554056359297194979675328511757954539283838372519159906743721294595830824670492541672986459229847138669974979158350710916101106067462766350699564775024920526609732215135091868353997233810426944215097426882984859497904360591015212350155136730972379659957505128208211109684573136031434249612938086022392899935912464849800785930605928052312586696668014945389025882230427999008085241816285779158498764789564915920159664141426300305114613330382116453797333563929859318090288735933720641604560861293216229064512844851209296837524567421687855318480177473012126483900395506185752443182555381880263199427107043671020049980931737754207637081014353075789855787552287400088917337234267371312015400619311762623918897166384055185047679343881221436742149170888035144984665913363332043709142175146177617373083502186799369885404501099922844629661874601478147007692180988026466193933894252350759222936393468638030957729638580283881081822394944302836477100428316582435521657048912784625388236037407623219345292732335450058525674853772043624013455954731973458374268047279604581072178295946507837701521324681936976844262110647548265485126350081435763781007035796631942224906750465588505320370892878719730912307140502732389034861673893050137030946454540922384838577303883005170976140202321708391884043688585095221680868005289318640319266893781195922302836016631134323162951435451049311827579181024027887634425239560315758334488888579904792446061532146747050159918166237327755724863121274828548193223366909899861464103098732539189277804353979045378637321981614498108178694565602924101647132729654185008903160268771694526610528327394621607982586927230391049344969932964269459948810468871044418298349548196204935668309173649191172210455942508235228523453172871937916673833386606836801785838604690416607379998743908223301538614501292500325330455633778429349152941192341581753452504939960947389846350619003682243262167545415751788435293095870046839221790596950493633786929489064157711892479555277847620763647690359724992556370424761119201973799308143491060996849217058537575554025115187938567938325651884633608668211281454762651527938172425288721311668548989831355571588514012307866963652934491663473273860363343112231963455148533009871925988764645515660594387664079423056059579154291423630861378502665633709874565041235981460498383912599571365438279638372916707886857295531829547078425411541044939428737465883800840399385119831482051397681305721397119014783588651826654827911931970941060869431205143206833048096778892257030573193911175359845497425365708200541967769819156307464211422501478780043547306808498279828638993029225429217780547041479095644368129295048708331261457897455089833688521291307842219360570217189215072469449882354635549681966402982226624721492175065206437920694599783599460598255754419790591608072725527834405603805460136037010033421673534073893084497511686430503491734943664756431284830535650771494468828659832736999002555240614391470863468784255583953143049750116572113958876561484605511326859861987962807635414976225638478365184084749148695482152078116381707613832250664401157259679653858251275033647048018894715444874588014287148686076438553738103664584279679347127602223070739233187043086044534294720072200397155857312676061742488953881687117844640244422131724957218625225564197623900914012856595692344811403141456502783231365161913109647481380482529016720472569890133587063624914517458817713468417789819044955836965987613364382402538796745332812770709959882520475723624635768840242262908582788273089352195385838731787343703179388191200506019262365788933813730414616946544430110408304923905712483650680090954674744702390892006880269190650731944650697310716273567192305646025159923325498235319419707581912734400070901976277065575593125907897560626493480214944443177331404686206753144033433662843085160260420088665809666333956997738403011663030146056367676702258305528258142228612282032941016500637965826960973187991960018729827886946050644341129245333131617116048823986616905554907206895157390303328262762969685913178036868333417802612828398650513502601865735673701841012136205710576835490604993810541277832528285770832097193565749367070515341166352673296554461559097064337093209332801772096119427808106348075458285822848578875199517001431133420013465499673258599905760575612643819185418866635304769105979749189573088220627533260636240021519108382983774862572565956793644231741162021166053272813416779959048824962933383584232632348909974029870436290902130592018724227865453378228493057074739442439282711591954666938594617709780262437752428652855470124632855292437733983330417606340377541341615409321261758533060038211702161289016914580438236138929557513820481463527931133008191395782933518645949608175970920861436501355784971642399021370384818405816382645257834166476040504226039858860979654930736985704521446756186035429046675658186044694084317903859517111838707488488242019849103035585051754443886096222828005208037301490103882759045834281771649819405386934290854409114214404207056002635383120946395193124637887120409552442251109606457985826579475582820429210578255160155854088584884964752983457054629800031123704418044895833515696256823068480294123615222488029054748327392449973326314011237923108827532099649958659049471254248849609877447929788214755676412840692008779169879500009225337160359435090331769947894607722524415661276444384863324357302065420350197536678014109507694638232713088248860598119680626124356403446801135063209859872451193796976643317762207229890830671357298483913068993851854956497101170975778605317915463157458977182015943332504482483312534344524903139592246828942563597830446310823744569281547679312480051034924039001896336605121932627853654064225758434824628013202905415005675715188939608588287563349672881980663724929886950601741792497832771747735127517841872245380482191540985798004485500113683427764869840409130104240719590122684768660265153673024048112500510459156954838866414010616007189559547611256247742833490217439938535423050316021440003002854808328148249804486918207728007128277882456693076996134441400033108203392094923348766301011469751204680822422986410174687052120536213788386074193232329018031845084923653715471681194268287944097660689323645187282429355636883088275835106847097493532980058632504695311165062321556975318672270323161857961552116109042696091438421020222444824677546207508868018469453709059780061478064458689317248496735220809311264398208796446827003688419180881100644808006948581960615742350480270558773829632577097320276718784526291626617957693028464725044090977727245585857884198035498891741860715778926633935244361765769262413500414145134422673338085013230756725571120784513777170902208205434672849211409124664118028721730064938337042365819281824971823600250399264144672447289811403631673648897122006943532496870501061714272329543676452839842897929842743770833211594175970443684402449944799842850091133339021484347486872450407128434360913888031767131776811515305970477350733466429419932998068140761376376578229726058347284148979786249338253747188403461685481757203882524599169691948596704384995739931119083326638303787195057060498634992266191413795186380971348953338007939000332409624460900010984876750138155751120285217646103771064443662056134525296792184960083006636008565438500169415405862517499997861237486795513453676279112314949920851085823722981681580325984179459269533671017478007564012809747418713176063828345172141358507235366362674970898987273435569586833691133264922634334035278337616408259218370539551743806696961296336409485046195834680524713688342494272721718164784983653398486995684958879217060702980896218264119673915712918282326361666648729643756663054681651316022028266550981389381107168817260808978615954600130198055988142979132986613478163915343270489779709091617471516140412602050161390314640970307938171006556193000211892641488424124336741998019967836665423976833809420500355885516332993417978838088593584153868476202637467264281053520274230047485394262119023928218733403882279811585307254934138231872387512264391945607158472160486669931597830810572050975283109212746312002468950613572530018269866172341469582435728766785369552471036981558847816796190421106765349629975069473235955035780503192683991706400289129593343058752588663437349283169084675162525212953377046510403903262372346483057312604929026445787955011317976905045690691061896273400008135412141518312602675737428652513517038098268250051856810201634215809981143079637287702102653579228914109454441279144576212991937085090987068812783094194274930120913551679768017712069860549618218280024523910164052472415187397934578100480264887386822216178424155985249067704824778264741753778534386178075324209548040601555411785141480984231347258267089823357660914731222945085845096686633655531766356770111127344627405767820834535115690299574240262611315268819716971829435981517727817348135346060287820001136702000695391242529191584849417468852232434425013809594345554563941195462811085698664858383105770953484663023594846447475506220388959199567810046134104559075280476430334303000328366716091235395865179058976889402043448616091923474742059475817656096436452782529537183983038297514616453164145442899816278813451650315194533320465781214629414430567893644439959322517430154632759875529680788447873863851547332909406302756560014952343116611583849586066048376730786855819866939594496421964840634770289998077249287957303942290189601254290740703696246436741208283133929301469622507883213700370853884444425758169763636769029585504292629257287074945744903798923938846670550549907854671958123872401088326567493007890784497030200842841384815224174921859485971266184263376764018871796463730601376548352856319564816016333687110457623274506622037981298826977144916527588458685920525214000104373085655796627002625291626572208112549630425491182848325734045914274100728905575066586705504141124098537158824130047986570570060242994826967121952602690978828135476210809446083902764031102754129756986058028274673308532513796951494477947277991918358910962387622101882138320300080992809100679172762942215349686012630834872533464977746305295417419342502587107119353767974293943638577426788577889999366807549730199939293942023642386176945093374518755878895637647304061066464560042651493593408195141991319625914422552488072540504164256407502895555994002771528593357029793233157394858390879832210620842811951596048099845816357141820230654953781522377292047022218610359748715623016533740116484853317811230110931474321657595111240481155369355023233235301888159433231373127817239464520216034148788345341675790710825976983965817359322212086372660292253005470435152378535379012820199228678165481585883632714663333711650320570046904372054389624210163167783694563762400515489840465609998146611919236947668527545364327469865312551770348989469972021869813548539941331824318800812410768829040834213002255204128956013163432805829345393151406238328692509289744443790610333007661157398972789503861358482787521296196394705756528787911119799930182909542670634879115577720849328283963938423018404107587121635182406739864779563562348753499532067622303139182433041388410938677814420896829134393531332098863852271022338749936982847553397122632510379631222340537552998989530495110097735690954681508978873150773328101250576492241204893020742504611837095974160368393690534986197192899682005218214746759371963925248743463899507309004925254578283538798048140683374153109986454773203396121632317540222777720981671585358323310114345208703805366895517455546975592019195465282664753792626351135208260083119954137471970362119796886992288941431783028933996289513681394032671016429007552493764152261770943734292038505352286166343653901878630588262130571801938963537678919493561261846834271300759842136648516489314717928703618903542693308811252003004083176990001872292890703832197331575418745732810922313855235265470590679062028352415488762407500282336863249538067158582572061864042911124002292010355270938788286465322500504415069387476161475108876520105669644009798968599940007198464796452593008599604670932967362814025765038716629367145825112167752857062426343413933260516465734796186251758926509146351479286737532727696979854321679768766970829503061331529657618527650037453498222909246162241180690047041497310336830917550610115669830441917264289190534547728834904930183024337643755557714698115691731216086672085054241909014665368005641540879988470089950156326780026234069870053126697963132035281451812862542624043794038112384285794184753578743205499710176308809364274824083794228758782821343213954449353876162698859865750391383655652182600869785010523857719392158269219922867210986185113477995423533273204528450123723801634216164059207763886963334023655741722654868981210849033161007474915125743575989641846539854469626695293361424644770319423346747532303886193259374037225729570207417962374751432116966060970073994532068317528917296157675230723173971170253695857844292104160228602977570046059355121609699857940372735429914233709759356346651802608649311678865286186943465225417497496957477482772338162916008426142226264455033396650599805210915571425784705222384263601803860154543707810227436866027824534535237942121909516571594283812936919612835366667970035860064544721372515683212462771817219378928882529583998767676725398692078132045063050830366166349572101318323263399142255131496611113118921111239339249362547461219052873559706278711656041618964866275469333301045659801977722684264508208524752436390601427291584166299513853338284370212291026577979431073608753216832692299011177859014338489174523386773961448579896112821039740884215872839527855683501210292798778508366568898313545465282907428271471179540498775083013474146623450363464194196747318435061523240631618736198165981326146854339500396134406818371546693435387698433954376268450612357539137412175988449537660507579962684769759580945761303778238961840829539426589149400155935236425772925699938801304560556698042915468578351196451710304603253657156841824247299548242705987292960426429386813384462908990803177088643512323775065943022246110871147287123460123598570680935149215589707002985827387649789108801813706783258986864700301155514939733826078687359329989008204745087103137524175752700237696264358489369106544569013144931199179459256771720053551860550775235986936178057699086567058577675069743273534699367343811107993051522374531277028617495514372035552625397013373996342148315544394474061847305037896216522019834886619127707631587753174535866133183222711167725420681468721191058170949496350647798818282252252681049955820257315509584356265919502561203679649940971550562075617598580601757128916508690495444017059986318580493682690563581874435255721811772520357102370829241251116260535803967811692368845690801813825134547548117246288355059251500354332300254871564627584195981727499105182926466266224843855913584512396169136668499571296674986779750932680786150517012958341654855408218730942067040914701502373534064867055207151025282198556515460926288642318822004158555357080679912558633412167413322157726102892732632159444104878496671377641695350136392120114169108239995514276340279469101702341821158381706169111445122325313385944849138804336983017287074947669042481735968050246713273255458823985541615228272519334035761665359518068916255660654860578085245462477408618441773223198369771515178411119662652484094051844103169416966171196482432828402898495393143352283694598881319670895444954634116296217918662365805469411160931344868183290871888935349963068358012865491364002998670596522313958183420467203896530907176941076133289958745788529477186165098092601942927825137022731852973572778426078675409926199599758067347826664554936613733380084939772859122379254138987615218394032301309032998869392020017316305203785216008079105205244266428704040603115608356098134547757206354152703092206746713836329428877294994011476671184931713050769091867261958117319201713083032085522263276180700958021759518019198852780946866068450894732333381784179745766428883884919947593740506671840384382786285508630698620658011488575330542973094087122446457580410933337624353891091374832006218947524654477218699619224944687452294017844134831169407271450173848192383530298423891512281592268557411909910236350791243161256809251108292524489237568494431903267756422550899534548121820622274070958973461110163054607063596903440419336683458936426826149277399071790708107984394961426895173676670426929153496521693709157129045929622503767798016433371408721824242280687416537827695295217317886878905308345788791470874919803296509004971922103944253949495173492606837323292419492157760697478901667637317584721942441260321241483866582891778980498701438889750535034475145006793792793282654643309825041408827041496956582208526884292527367798410867457351034666727547819466128907488538403040468926281411620968306463624594154176727944122816666441902628284914169042611398196875465199367589886243215234478722530871971437670334617044431403020951039689487482859666620040250268244076734976286670177362422323102657269900055717969251766044582428770297457012212650701715995192041846016395434218415298162955427949162150809816580624234854105069419104801292107012961134740142875107442956956480254749260630441621526453468665539032793087277934162430568766387016737218928962004755995801979596255811072764287357381066147478297971019999874767708752150952239415628247166438253635278647597182822629706214016888531272816407335648262115358207597596199276478482418744961724726350377364720829060222389248777720499956592469718289815127436556829038920307997003846132654155995028873247434261319335910500337145313372534586964101289260992037783307889643256398661142362239186831397904781420455553921344375595636226247380925623313358830999507332244880847445618996360005262567261371169470488772695337593025838881940286920491599951028591690242708729319978088196002888279823739084660476750486871333052881216666052620154634496634048084038728845617461535727976685307192203944144063794926742684169677344164212920422287289928095514486536961332082404125687499012774083439306728951731090779480161801282963598520587851993842249562466129529471279388486980096499705867470492735534824578286469274603776897422041697895158974708818004788979628582253425989266811269898042586297092189715511862198720183411077046291473691526601204674208541793931229321898970453491140890116724207053680795984539541265785241872127635116609895953135551597990733468065205070937822476999145656445885059184223834274577976046459286029632002917671667590087008208339629142207355990731923882178555210002407329825453107776527003565643737750752153418429674718368770016063757836966958901789660493383307173622113945877254699788816125494555197400012774887221739612987095920854011103979819877384828239963210109157474673441894634620132135759174894841303863213693615454545370143024436043010126979593860092395373512025019881694200901746636639013163742902555941267430258167766950636114158577584585346545360751599282821226063493624134392486802160482647693655105977474292955652625549867080810004083177689765681625415096857472507651828677505191272567350502128368490227369386992355534574772229782571042072874809740299192473053389741316803114900353149923699704780806839703529861423743431757722160633914133040637045314282717957854725826543682197939174660634272415897017811982367624842063458373571684316728648579648924585580792833787344824999064056527126622710602051821683065996552092022696643904408358222762255922021024386070988884123680952863611589686864629288463019259449200427479958495114809500488935631226812102460349122916602270662662173737733241818889555255318123184224217708521151219462843153176841500144676628094427453747545848123750137107189528044962724391397767683434756433486273959428979723219182183608479459748585172874630872540399142777998604136929663647006254259165803176049830041157284887119637113271764652982597979733464432477933760918219089458863229783047989073273335480736476805723384673471028107515564138835772215143438753169129187646482463251824023986821404254411816742343561471636201245386716137444709425142984980487773301139610095875374253580222705492279070219676613688849731558305202356336066699568703652596033369223391299420414103276341764139125989495413242329991529563953783937967407128910194921866246303228051381577514782780228113106020726620684629110909188757781264706135529822654669865505688176356192415940254949612804694376203240493840644382404096383440993206233024105815930136055410962693105483970850057980669644754825867403153901390072303036101227876462527604613355932765345621667146642173549949224611944760210581790654802115016479352452127372696882241547275180644768617629266737101388039600501105465560903206722646616850815087968952895857297636614342804412787393751518633407755064480869104820057509949677586909452142205831926473327019941263685943649184024621498948677474168733894391791273979596416575884176268865296716138590744988800026668097560867076724269625994720449710798814938225164451480961243841419529503440937133507602618951773686692033141572451465426877777004506308299158245559148596493607508878271210989992828760533180064975190804891997956617228625860562324207899741993197827694915374979592530401765937393268354615758763861711869466396175684278526640221580977766901777906099967603156534985825492214029790582319256475865442912587903599851593173158334106514510640486609389630777132176541663846018252379336161405753948243162593390905774094261957578768004353172195503001200861735749645387286591174995770736870810621907257869016712739810960847532247659141097122688027014987027426367065615834406497413369019374650129600192611740780511541486977013994151556863829721139471826081849236337541154114304417850374340663910570114224338165310749276428388510932107622135595427478181714605487186858445412697675902027130001049256982621599649466172563586560048324035566004472308246906270218969358860244821188079523677323650075657449807660967791695987048004613424916286508990680385262955802737916926045436533301807958804344440152477270039315198164296039577515555949805677310174195566687567262964674671863050083740503692472080910977992512263183028207708114884447658715871692102003456903813094629562531202740443695189500575938951745561319570420805918400048560728068660522367617010750837169258990413181453957383525050711452375023796619475376267759960198327809616053374659123290635726435430576007886870676630231741249251851909224047904580182591409065250285795423761652475619761023125571755462952250185112590413778905500094275905896495174715308657952546645713466058951406623886369531148599109501696031307229843637442779473435705950727910314502684912216798491172309884264955253526082663789215770368136016093385844890451579554933664555186133294173416433881968978918354020459361825474819111858499613818562716581046153554986047896604566223831212084521157219381306135584409217353353074921983038273594397148649336997235134907485110136282438264903882261183441738261585034951257606053862003041485149500934083779629480415222201928294191923838628001265766713858569377028670376186686461358008183131946889399467662655430447951125417642978437169935200192187174741656256874138368514768674695479443038699927619248819916003439586652546511527719524622060943218726893891035504994241263007760328742284576886319812412755877642363219827586743946082609615488858283419953541174722222104646346068313384410301219160616375028390527747220179391282298605329319098483037655443081617519176945445931508188862835063848422202291020102886614865619663550047296658725866476400607531571572703577343206910054221895315400594087331656996634668292773064324135175092355502583317488169656665481305898834985421926231422285481035432298533649976636617186621334882991615527809862510619482616776277985684331705847759270800952232723500178202876579339864743399717877246921066012901269851172490744961002014908924484816772500858159094938094499201589219282240451014921482542695189192075735610356182891793598699266109318183132868901451717952527940916262376279821584384180295129074723589409973330214381832957090639108885803666730993979898621711251432959215536563294587385429300163709995968629186661948897711396183811634455454562383782197765394551497080701628442589701734491316063967495109315098441050219778896242450723906819692985697813647615100021566796179160047002574309347320582979998281013346862054597552315765825520352463821234554581808100354617301925636199563202545304647711696181883182842454158891427371841968430822078447502797993410654301469083335309642519386821583671811385902326787363637953031010272300161955789937789143549709238539808562190314364793121275999779404316356931653198256280983206624149052851475574871837171772938478857425928499560686026187687191173194276068380503850683254849803704319916359432866462990126716397098959091414071236666350507019258904717068194559242765311750211099487381207180370754232140110992025630565795159647107154100396759337460046431152170530158738165846193460865903396411730868514651553073737573286871908052500730947083692322832822318257632297171242705848493817154287190331746322487211791272932434833790084323984539684147939673918189768708156614781683114901268308258369747604746285001900947022886060406565494254051722574689090583073167868863749699603826355867835536235784951517043866054685719476652449164800461673301473718252461328631733826507042751586003512354633305323162155633512417371260285527197393299714063873943381920265966376168739090482968600351622739297166526857322620546438155254753255648740744248892921751341050774881515715958271009158141606538555920796863359775331927182995094009465157419113720032304292713310226356691901083976404808520921074331518741414522055023363818049583993153184936548125608366558222943626963882754843877427782291086418247825985681119070365689182992682293024765270522465231486523289228818987884957121024154535638013700853091271210376255177656025914374814501969783017503741554970295999223015699454367042039229358843514477925131297409101069059557018559125084340959604161426859831126557493830400121119868676229838826580481284204968881446629030444789012156413574858687448974351717847222855679533708178117034169635602419238012596324800428687220755308153980694510702780970698995128954225922649023982504035890951054225265930924022331778632285666062682151560530073512051077041538778568422925648057432128526908363805818926796781796639739896056750417152235270404538201192880620849933474976934379171240667858056952913983821778514870576656922644934605671383922817742176316731395666821758714966964270124987448764049354256641689659720468919220036590616992181100701563617176490960468619918273844702092116444666590534878691155943401237440287075763995126053743125035921452030322041340396765275583157553800593554777170201891475659724314286026014146953344651313191935483854105844047230649860358337371978614569757324084480347320046362240566312553469173253366780117130318056138088080020980828201931496439544539241562362062047931881481927025224743571683432450912951086686160407708964250401080641013097003792014656384532375493900745271810794725717330108626034000269218817331186154074926318566411630903843685850442025406675568492495342270468400274947919630116883865036001936529919354157171861471501556859276215103215386631683715975346783402948116103537157501635010033711124324170605753117683541417316605124826619681636299542410265369833262354363163064615948554753721031452931551733727526841946210147384003634405862328685377194980976471319420328219418656214780054853270155190274199942170770807922098980943980841803913206127544313349333074814932161872903104814205736412739656820292110123891626858324996172314213875620658548225995160220529366207214139029751960858735623313744044297679720275202920189654702115029745583033602714862827245062938628905451686599826806676019505003016726300400355351971500660802485483583966533491865247891326857238159762485189378570268243970721132296629917773931979239810904764296371497935739950571755790626864416555597520849984925839722690065686570118929505281372170598048903591822979766416485897321336331116247563044655181631460536928490514592187345785023811271717255578341610857139503549326228204414047458234682863548362521889000463636603423250351956642335348161529233514754794113230871100843496145345817178432822056287994285525495521253562491530168917908969374452599976475904240560051818177996981738915726553946160349266504367284517353427012306321917549082106816936774303645275547500452003663382334556498998547103702412447915870576448407887921696343476211836033230784764041284268928951481984394538689405259766426420330375477212211388791612720141680864124444161568488264541288107933519755558095666225689371894577302896391983215870521276431586923339207830805560769104835572677640388694023624671392968138015517610744222044345159406340720937541965980688074982611133643241407824744766936868668804090500213316723503541595149041565242495654118551360227192861874393794347484265161579627105270340053159336013338208395598368232147879259988397668110758179449141354177426536608443140513070586502884875570421203355581888264405942239585672244711360849447205118138477461021375000830533686602184999820573450963992417630085145627615251495308412766038393321589734357791024748297114468966885073611953154193636324287842367486839258117662707809814380897578645154310055130610099775423658826642117101756808546287122102277806534093361020891942002267259229927760227498855238470273992818398818013982472863248038082967075883570467254019842868115802392902037965718382438474371017207839405019393400842046165969219329109228619944272669230667822900806713906718519171777447915972653126487576221434310689882229665076529972147794591036578976827573118906156275516548179014238086797943968386215831867725497395021372091269957689049641136909470899132468750680094983194519019293478727709332207154889518751224191182283211194208948885919796907289770987002367976887585899317620720398936983605419669313005080203015095746364968081839016392140348010135842134115730475977639358916746046460201560378530625408431792466860584836836137057412886050402651990015706380752453064727283164369023956610384074954138166789261114139067665049036654406285023917478372289776194492980335616960288479924573489535320221339326282811412166629000295272791596307834401345253619514663608530430369464643339022881591316714120784980978987419889816156188507283928297469261808200017461073548800186182006721416268425782759576421592023252270143158404190377648402535926209800832654001417047712005705382351919251066802826805782055383467231604754012778871799552952576321901066121779840157704853598827148671744429803230675009827361994214175477641937194096093355144864198101148419822829573100104671576696965643767305853117423971955397722969422942206699576700793955667442037239481468657074252738070481390941608376551185459287892036528800530208528944272628265078725982125144933011933263959500933801106302955832961735789331365333879048430251025869184118546448093676938403263185569961582304384723034913621862646263139728646639014157568888696880347493910116959999921773024993283048141566539835900282231883004434197209936363979548014929141095257710383986071570399903510716329911421873577604665523619888325302023586319090057802784024993836202431389302675425064645849214754812318232331185424862203236006812410630623258901515448086387550606499429548095922038863477139971246621235703393804340344942017880186902901518316359317562897601787957781187704063617124544251088165235930431644208092451080193839402182996255705316382730479694643002133323069008919719550125188125429067979692271828766482945207168671162216401820797648355049466377086050729999748586854192456769136936906074686032754733561411908462472502768621170242226925377455207384091318461366576773965945190970295966090906834460258666658595674445237263873234238411915759194740918853069127041592278968357264955494670239856601127915333425056937269901339701842075438411739243299059837048286310654837207340638401915379543726708395582621427097371194297198742701594468590726711252011124709219956801495363227582395136140986727470127827512799490007830647530879793226048594209158224176800828277550592263234030865478629937363371380003412441106831319546958631640284268791659862899719537808005321652836955113629210581237810063342983954708299895072889645104408911136373396159089620217640089068962705444761136630227559364649559268173113100982342809887881721883092407635495422552750886047834112325096029115274850768195092730748775901020043184800954971924464482853957943391863071665751439607035424416634131940107458153444120796777946483793398845264241922572458845894096034360898522151588520294829907771820098818645708121682542255620132998921413615662925950478411862274033744491737274013628201834567232988016339066948961977580330455686954942704902885655359752215709550827228515799644580528006937060689616287985532849524590246627777011874533855271227748976439404340656808738840133407604815136345027521793304215070833423474425177147568370562367932684527061652701190523247436761222436722307072620400564317578397998089464446270597197043859282016092570615337017534431772988345495233340158419143733933391494379699751404488660542203693968290651081689487722469956882961808183929552233247925308892107347950376876107658825652393632351157201450603823000140345124641070707278125152844483764052128081509336695919627264926758715764443416033651742077296796773317198290235838369063205466880186130559506954543679326393287124362343627187355106570151968431273275461546360528145346468791636502846904409406554283345312633865465613476238662761356705849663761476332761685126018395284007315298903252305386013255014490093901407042932731259845512080956463597122164835722735663297877823238580382254885691184599360527886064438181876362948405179918574244962687642763727839150048408507629395752186593479784985805836659217904211614592460981513533428317711665786990748164263303428539458853954273912365062807695186728068727394787978279852605797304083901057971782699298856451531342317710067108666245946685496810651875120936657456492043821233222372309053583961595612635120663286148063273820495621923535583384679484900894947047126984198730331104537780918071962398591189188374625502942951751913249012503771261554124980241736728425614534542926228644298784570405966655424659684537187368928799644982660146481658518519764811050143569497671640378930804412698097557106809657090914265466630253052081751398954728958373444031188938413095555234035118852189778265298756749638645805830270598429909319763179691145622880066249064211618640328015795316232652218117883604077619058034168355022728398545943343263502370724854526509639783011047215113507381054496250982335700502978539827384430435981882231592589472533236156027531352717930213687195080905034458932342082093328243238075386944514334462491710183489343932850073750783967313375028844620993926215404686806774335915787356217615674342827867588528624151904469094061470753660236713584252119808801255064930970925805423286162395581120524842379928971306064250843056672873646400236756356786620180871283862561626137527091637032592943427786948657143410105866214968031839730617599841310383982361241493780519067950496931135313279551131107640257150210337349602997031085107516518651092642339735832300713000311958950818685917718227597418202204035783024589955742391792232981324584683663122079548465679478107259437349147141334643165511503329940425460121219557399923011380186767423150299793076829781563015195504124562107491281647754477618512652624224462333179175866674479776011773688984532564981911972168412134893189834536313869986339159971068091830505929514280398793426156747130837604116516956734097130666325828617652179593749693085280866495059763834785375797434694491404139492678274745298054382605085557459040400503770779287544826629971509112857248104652747651400937228160628565970028994882738119978510398191804165808722757508587920126919127953002231616313400463697231572789088887247190147937360600638636977940688048733729997044791281509009890939719250741621569215637792083769516777452768525090176423137683545956188362167900276756598523223813865264459004969377373488871042183822548745659937431021086065971832802482864464816943205361000427550318907423010225723455589946732305080471815268495304948798432157636865749408154389661844035648334167680846350893128705363247821814146055915348446412833965917649079945261557335866695660008725078825137167292901408289741928043669727094799116334310669871379801467772293854001305543382142976450287362880069637843283491158743062061680775765228353196164445834186399176352688381476247015884317409084547855827696611923253389873791116772877801804070306632944582411227894754758152847316992468009293641198367382099518810052224413299704782004711943078592301973435053843854077263966603362579345951338963829924734874911878766687252650571630151135532031785874284853822210589096431685182727837231539149912545306194728642129410943716972507582675156244737511271027586542596856748225107040722720187182400493882880954328650976152876486123635833965596807851371332993413615148363766601674719449943051764372004107401011776626933811974988343674154362980637329144381816357716522619220799455419583778511542612665200942552068999819523750228218101013337395970986963867612636315431354068800886201601304624836321662780490004770538549123556926320635446198207142735980075177280413584766357548006092217795912067317208618766865476479178735555476104880909474144668396307332373088582581237834691035316978681497377126672860102837037963312026574825546728015508336578478639785899795673234380971459772923018546714368558620752648809021232864460276353879022271222469748865724604313535360457183484996697091628280947460149974307040450974308824890034916496642072787194649847814510176642929717849487832518763379677190322074635270421216800871532581190537935291992300283024495220221616577586656439351720797289319191652406512615046220111681751862344392027629334290922214931311393080721789641172313977922622582520763596366209123679368226051598168586287617302717853117668369281766204852433354135734838163873873950421035790598331546536429177192159967486746274383755461039545017936801002595567167090903767662769172078110497524498419395676154099650968018704122736296012620795688484612827917764055679306773526915059047158660295927044130270738637500006227482620296943657558086214064389298170007780240030988343669325701368745156873125445666503547581377213328004183581497663630552049049761728725577724546210920472558179353903366968318478824950519143419385104325609813987466612507524205265275630427714536709757507803644740461373153155505551470056905523743251048816554653549670138376489764082896729626950065388849957794123708822732166547344098455180076123937368795842752286944013074674031917700044491185733858776661038186486585948157641467453091346432737219376520146625281180286560177566068638364886032093192122808391211412762853809468474013692657737262274985483317006534293084834656756824615058635532387873486406549331485450058787377196924277738702438233545039303173981154009862956551272319504498877047367692732073155352683198959428389804662260347620097651336323014201005023755902154602435859688513992076679294379210528397837845260356788687325961402821885143124137727367163929089544415148478839955143264420461530218910144075969728797010668829086657514757124932859198441646591457438121289681814368604139736530670608459283022501205483553174333821914220263942522194505944205869366866864232921842450473783080841935809877707121345196936179798012039787623322014236624173570218709813927021009843609331064009147072159787258085556268488800577536771437255473165411238677920133264005807555481551437140716890466067019116850978976364328190427970879920734015222080571102196229112517822772861297781098054930757549721315234164723692310220236328077542567975315279789857186716382280041861512057491186344858732029663456031547886304684478789992602682161884030948718598943927668955399199382095561721839168464161325259605110242213150891160427266143287457932736650356298040434408951396367242558606735039664958897821119642326817429331893568057766755823879468730377458365258925160962288457570112428298123351446576978867422380967539944244875226730366967232851686172542294926950232532192285913585713081239481519868740223152551540602216536672429309106803236963221163293734566129398402865183145526710318133989618229525787646587658685561565969658921668828474353203290281478116856120724375050525865512879673164786616149482277484809872572545396871454840359756385247352213552255284068069172293801678721684194555614400970181780656884742399508068183958448491984236807337193001774082010501809129516874421256753501178514751478497399236650776767153315158594155089695868008615881379932713559994359418610580159879502831291019148635730111543173617286137494531161366155558926316414145123827631447269637080635659454703058871579880229333432158229475048984102799063750212655500500615688168585391157336379256549904236260667156939844624422005630001840961274046688547176779434955247091352576172346594544737680884095836309479884348108561086410234601958130331438887385916018741273335184800752888854290052203037180527712245743465207180798120898466601955693701023793648657424540652222510898453635363244130420980588576105811440210318735575324195377329403245025900497411254485902302592812656098112959912339998748315772293119097959916878201028006342106509215343198416415621869071650938157741486170936322411084882356752558468394695235255131784997630848504629984363811235011142933569050792340034882333065973569459449146933131635736482511143594355990196647392778170369364554454612081967346945305114892119391382218002000680696577384071322408159684110651534187546193845001949368077698683497848885367006277700294376690634242987294428889642543291158236696783447452317966030506562895327771611534247340806570235122232039007532488871069816536815811605299156805859845909220300191203387247283562705211554878037265027702234983887909007507645961592590363895777404261847520455999386273772313153956176820031765486766861828841336188133509537582579952858249013696090559488138359328383076891484335818497144787448669251648897698454543260764368987693077482255371339777931614015867559422570048879230328654328733930852234289195066111027284885323460964634624509878379491224566808688042212767261175485225250938435208416974700639934627687183660447242940543790951315661311277535393529666048088621883278445784298950379065486399736682413447294807966701652383440700133864376990339163504432656928820621218697926305470631621006771208445693043790249397172504068034319884635209326421282992656969637360546018716371934315167347081751730323442453721301967508837066783577001544695131789998700648001994416251259064998967386644642089510007377421182492688782889620773166330735015164197520027966256407340759293195010412446345936770981861134899339807887767372653964483446514056261761256977231645101518390548850723778114070725417173680421674067496962266740175484291535845652427739997198706158383528559400432069858992532727813944640168158234287223646958207122990190941089898097754521865595952126101025476274825347663022921358957273668057988502841752192594903764033660401459564330616189980377532797360871147035501279962412616933174264239841680272118803518483832966946945766092411277306745301777631450468080194638482625625251790955340671478882600223705716185786259977413530085360899343073155358890476140861262458134826966936243796907001918976317061446347317736494738855207391976930232835911970605636356855137681375841467253400582214444420429860908197651388614514952223592374499718537404601593842544748365739155103118323423195357759838099864628796504965981529704286799517631849226713647386288562121628680750178776648622444918467096962732784075086308755173354536742448712467046581028338300662940106016651243818339631447386463020672707149644083301239121779209706276042567012015870513177141339542430586132332595032312906346780923795768996592041373724483119963439083935438624529917615610571463332308997967866491452726154467802737501997240450147213968202930611650826063001889166526823350102499346355402526362556055472465710445801158720257025345231462921795044774427208893107423952867745279409943078248888787620507677856393845121580133017191237139775991119208849983506357245156477131043745220736506711689851271774259333963703636057865289463823582859583877172784535931114151109550389519769986758524727087716046244199855979353559393852706345514150019071054033966670714597783847388746609730467450655149236222430110942234599971772157095064297486344709516665065573095415489889257898035470953335965380561710086034699926270709749924689306730672368502411380895368182945751335049801657602649802523633569810083778476316357837457760257649090969694865874923866828087684796103251420866131106095553912457716671188519310308358240864137328931405774298716592193326579197632311332324817421248385599093675658830473045718007076838597477973204689741285469975119473104882368930681530708047439920714675483565330010388550508048653503677684218970032596109740129733880781068335259137018457856145924179059497254280079033804716203493383066672160133650848898290647176298504764090806216930259178923064454484361501552429744416368366281094821153882659118610961181365140863089572560113638311117962195419072208030688260005854009184595275200980524558117612535714283102467953092925652961372331907223302151689431687068181682832283385897891898058646370691893338714134449245935713526313918766551497447003737462970716279456593315768667003877157152301307411985370239435489264993555346590582731195487433325849772774350455632087962596230680573390978031894540140356586337910763323771448301101895143079937013923289712040961720668168063125784380685121625401521234107124190077359989062104578765068477318802012048241895553844771837327419025465362798282554945054919223425139807340629625738726171317710129317590892616071193267628434459756061447396556326346241420431545043645676554115919087418800754936765916271524149062095167749708323858229592226914877473282080558707892117027811296994418120089441711622624929938143889381677198367468603886597329582718273766687121111317217824473565064928071795713490077889197448468312025182068551722314990207337582491534553301187102394205929478369283094672466606153795647801650847356468021357538208548409105479846217397351386733833079854792782916485136098157150894574975266771509195035026289052894631846822036655926430175716075219804863310873143856492736135659129691924168011896500260326696076316828424749198452824937286073445862527759209792764770677369188939369984438088625961097676769651658485464007626987267831450157776488350773222469418958486854513763815482167626883451099174201383359378273455894336635880133423999804381919281640326234084275296918481829575051926776607402995157883655171477709754484220682872945407641055926648317934474950605469757535619594555310140384055187909165341738568258383613977932503618184348251641149840972844718638682895351753202861232409739603830442550019058589351761237195142608794188178012011451627437700921308235830779980238682922511798652405073491876599634463138697312046694693267280466212512751192208643181348274118513716684654681733338266080153048949318967372379717384093254238267653561707082840404475683135167431904981195868107402185503383605445378144940592349333012426766676356825821511556294902469556284389983937697253979032000155671386434724090717059977510074853677152318359967027674639999886397098814551616873423834952969283972756276025232164902034031884852273175988680165644656840062066561471692465076406200503444903923060168726217415011658073538036955782196708444170544160490980089378485041116073698398542430491385179106628558151815127736920306108475729810271419344666691280049286964914153131066901254370068587836709769708442522171230657217710577769135448039592995497795716498725113902946236898186561620393470796484856648305054573181871584043811688489019086671462240260406701069714760421542467664926813189308251468093952411235274182571367271333470489026862606633421927125181527149033361639330346790129060614996128878311682149035381996942862576307757801610810655675260904961260912975326285135137251783013922939262999949405928978615299869904824893747156267420356302354363233606900955638201973994265474204089454799204432161625191272285614594417025442734272745712074888986308995845770706016963401558722782395618086610083114300429950700673076308378615358104192116791786280596614268601152449035149879253782146137181192138142257473499884873874542729879548759557755915506627993027447943331395341488771466238907394461082776132728648536517307365095896554363969363995667258639640955697354911931039892275771356523862277581091954405619528478837695083187071433020035294343771645292895622238941399053548053142722203841687075123758259572162264844644489359828446450037001148724010971883826471403326188828449041399296695672381201776857825269475156564582990161844471539057833396333938734561781583638818883470937472194974479502688910025410296120808482783936297529344877930111180808861214750824459979653269529714729457724388173960831370448116943235954271929251898873648444450886508383913462386292542022486737720909923990310149532634299991215615767370442022436966422820734510744665932461832559059087552257979869435609286083575606199266290056702282310893607123603005405423281650288239871169306656085135689330744855421525434809795394458969029840407430379930137808240356159810270269947219389076094656101534627253885845172231054800048428872183686921253583001309837214533760184633395863448785229258813105696686020843422193266690256638883436735661076868097929811111981060747361071367123429916637417292189703992103768219339917768310707420615447676209983405068551053384795428485362763701006834728587062395590389385543406943973038730710574517901058502108508937377333558593868368758984928445625875986394612642202919440170726813383571455062761493490018807600168762886842519399168800318632955581285668771331946930614612914350617290971437667328784380836408661848378209663270464997312754357853032779268844988269171934323545573684517224373870585100435117930880330056264363400729024501821368594233594017069281190803309331927557959265843674961691317731979755057415350156724169419296644066014827524048593246060957447288590723412906886415191570614334900242399456060907078230089573432644260284807437854820721113666810737884256735498264101286835967618821755820564096109451295756889754893017438102796034384311255890587891001944382108294088352921076960437856721481293110325216100514046327639214449923826375863388870069624105643621032795236216524137477310803373429177978234733003633168676952602352735652794647445407397727272459618481478405346003226655722260840551598969173707553165837192166027160619748351984207955681061299708051951258671414264236768047631110200518916087364717583601637069114836783339895261678305554810679564679112909803893579484953856955912989541245429797183025753540656715917035583398257604672881899141762418383016878110850954280268842017152972822351459622430106922143593517048476036131980787253075533392480318679923208355989214820860084881645486792239614957324629644919338630948678551871006415879283674597113222970912990608140723315262051607155884327129938715334938660428963834242584652784442446780253661898286796844584929579196949127540177045157591497020124882442457804812218971947236051096425878038348714351405935338139981649525380819804012343901060494897580634919137492835285567171670203653980322073713329868072289957276870296563899108873605013247373945670606135082919704300697075609088418062239650096744199424510194619356485649934291608822738882031945291127945233682068326710143296028641201303175062697655726836078826080845459477856905102382932693903217159738840354953045879322040675721314119160204115539494244587522577277002988877719413207280173526209093409805257892566958324126173360390784681567290772021047895227036758751972186908141645345695352940864497390548268194137788839502319536650048281077491070468138245152381586606708053925636806723716029276037499517479890922259072587542445914550954870043331921862440673615452949658189339365759315846062966019525771848989007007901614518360184890681664670181593501781016233489097593464130056597955729879415630167669348398492413695209741322838483733568270708339048769287122991204597610602138838892170194739922368087915343521169295820053973869520299022701746418827264567743891545584193797058619917059453243872817727538863722651662455020824079841651883338674504270740578289723930454001958859722460913650172864624068651410515340960269893396078025383918589758751357036547406056365194108919365093880036872870771245680764174640227206634053832402426881357286966263489877312146724833297378183387832407170241686484978805532639994411964410542946607867300251124449455187735092820505070203578457563598739128923249801871930195212614605546688279556181837302894804097973112396737499186006531916364696175248891521000756819357472310969053413682249872846550940125892539310872480973800542738987090202023849938641068777901445372938276958034705850525910403475451823683715452439578766842550982501489511934127045515809617337407345868837370299443405719333105172687179101819498982589738021646318818399923261347546508194350478546849679229189557558320466152983268458223496989063627344310855853477216766532018085658177072509743844866520780598755185602518305024826597850979646036852449425506909388604844775559084276455989134001707383681811672554892287561837054897760537684833130034980056327309983508345033569051536335967641513709875672824514301757601772752182508740472100307507893812062490336757768123857421959447254229736387130353463159663297988007326975835921752486935690342952780398497120195450140012745607353160596597869418053419416177510790461754004184609903057502472184884023492340581832440066878009990705955849484878660318732404977514714275110399206703561651168731067768627327593665046001088842463243035991867913460899651098501058897782623781111577302327242303694484343704504359149572332220789262014157366441709181623185215370690194564514059115967102124868037188634738071163104731139311364357808925448746187246518076506701057356713427380787280666124342105755629963632124707467699163642802254354471727069872958945630369897246028267481198321620319412612117350193398335746478812135850927714754363800823970872532759160201570669457156994590622833435269075947309191989862001339609316669885063464506872109227425499063347625664497986331994546647909661680310915968016721360239371525167711580037899352651923065131610071094921237491689978893670148635955535552403946423699398994679073670788491891957486925662734974068190291413768540234878796846126014667151297665278268692642817113140551223853894867660903189834440478603602176537141585302245933599362887440912011731243974678456935026901771996705917354195084524487376268285053268525835065158041703903692531445066021537073118747665804605727799669930831013075388661130202916016974031572757514348193657206361349281490869134771900247966784645016638946895232318427460737090838510786165437810769620233124923329851258355845250608062010588851854773236435940635642677523605088533078312031376340423365030900094091551837603419791505451436160643672799967019186670958703630366743989263300106283408522987044239690493273196710373534351245363146065218714072094486859270483144473267237177162687596538978390062746752932948531483409817962314692307430400918557616129308398215369278396781400140151680101802995870373982893313755064906225085336300740191809293535051415927572119096520826057883799216553484084101828210584111156928900395278609856749874597024704504710410641500683610213669683800561188820011239456081192362233217143223597256835822216198824667582545042634537922158875884177611211387933990826452351778845003530989924586835884732593453400485931297581296969329750870568069641070374759829811968192096138612275935059857442351917964949821824319856789805836130124566845348037961280050323524623969222383888514738934701777333496439607859796563499881758179834755092196708959075682741787030866207696144320050774127601512220976741426517421443770937091146055929024918124808619893652736436126353493866351910129821759981788126721776166867319503169326262498521287178172866248712558399092253938410935961671385777226023826720200273102808042620616779293064341367242072522206634043929971854508633810452314025178853546333971531611361509458491879102431312077136175008927388726757602857839575279676236387669870203678069931553324964630449110629646002386966303522138344476981285751579707212430926281320205960396364550218683061535036127938686521309022774514212021033996385742992840678574884987482504207847913471746936097851749525667666501007090432975992762941314206547061520642513231356672336262868225827502387470799600945571774314275607722621176111599516733633299973697942893357066869226518764083545056512891785944485271016234116449722369449184273383445377554207079824603443840162221366061083527935425428442769230214855021755963596878415433232651770889222545171285846857092260179646168696624433222145248084353934707516404628294053832538991786105200829051329363135042303959270654963396074526360087675158308493078190422666831881732194456284651509451461980711412309497430021448666656496943207204269292360336066259784067784764788497815700131318642811237878153107165482872633279210445212795086765427669087558697330098501956383581371438850362658183281290573117433928174800677894925531919039810242157468968745959877456583068639814874126532170331445826454024668682863929326322498986549121873779449007710061738493582240141814834599240027513970232219483920034485492344596174803970964686294234677449670129587957606657880417229761635136103184157787109215973736717770559317700826850123901276700004757379261074412939513121032759594353448928174564933732024725418789128205180654485264243550506684978268704435354642577998928749065520127751588773549652355468539210638361717734763743260407361586546558684207702855115691414900464946566400000421442141759172174916477210139666158197731155871239759733411834289791617455475054878252163742500748563773678863345111969196774836776391076196701460018981756684467524083697931991305607034075687845581619016227894622864887609086063936629543403443063253027044202347731886522321682859699980136213648878197401386457398568227418322499475172974645943553644623369347839108248223533499932705559581868071393907521300807301090413728914606548689413777332899556690118278239223600676187867394673326589037719526866369251171941068775959336750329249029227679394590519251926883330505708387560377259833782020280996402607194323003469022159681357465097290017088839847413218281216202491051523625711933801499156913709013487425383628228160690897598787782925464363327122641938845244034259418296069020770366754998032646735958319416017073703989566275921881003942927972604553527792211629873916292258189779432336836676676489043916232877829459349500630722678715486742644656141431465514562409520589107351490327070763473637527919976157436136101991389784352712221715965706993792639833901360964448524180867069850786969766045098966757075452463714680763041488236278870489656951380089486567983772320597645448397207702102213388452627968800922235242529503978354904942166727214614846833597659512775464513338086392635775082307775219063939803567697391610074683684623300226306557049344784962097403966581881187723419362790459426506093123190430971241913081000781123305267568212477286568009462496207307504392300299622624055777247209414703492264179007120223413607925194089847843592997479321973007774734899835986325728828885641105669164670487344793386100796035550305242994088147424504186677380441316962325660605809262610587748202992415128625667243253488689775114037266122465990065822989660040925765990181257403100832749164550910896609667603905359446101532181367643602442305294427740526695613112247026099384688420557070849659875732946531589398396313888263227930265995180619699624455147020181368197581839842479132428807283601967182992660988893884034351692584591827234823734148106877976938553702860358437818892849413238904174209514999277947104535790590482758419533077139812420682277069625875586235821219186949789561888287716865336523709677056845327569610987259251504425630619316580184346115543308770779159409404725485724129380220233043816672601732926552210934878012347806793372376429827642405022136126976158971808060608136545455941579920816316935064930459614805281730909677433731672602215550230217102397514915836297564902868394359999834295086307424638381515435382071936964226654549497156706052899110453064493952820341866469384825376266435721990159252571069951142777682945997303742721925816037718695450062683171447657561952605988106364737016842976211533108841838896822235964710828514463863205911584560362323011292263108689887987446291723673930442582342973471552817293228805124872092414562874636388353876548947132957731153400732354070124420690292216466297810618656121090055503179772878623090050479899374976220297615489876988967265459278843033345448075213497705219465813695700595249292370376712601219849290443514458859803011294943461804618854589406447642031076702498051839441965357900333899680218929947344676750083658839385310559283085605416527313617518707134278681984643891086576425922065411573605529454566903057323124628423988537307836090844129678066018907619717429666019756374547839477410283428910519247885436353521857863432495821026640056757737840830960704958400964234243987186266192260692325983422706758874025670098878470497486031521140759320801057866586641690486298275739987187728130152146124496766196298172921562146127642402079304169174810155092215415863486131108510821461687456246651518645304289377852626872685332531813026287750005145019188155609633223177925141382780343124199623214613369167321726990195640360687124881851812429073169638311000744036506081768940426392237103888992534354018194674723384609253094442551634319074709681899634939026007238520655938128775272288795419017512608447780378613733121962795229855642344676960181327760365887575798839090152936593215294598614128718690962695040257346978208301627927407278762009433739202188356101440601096737449839190276094136636541193366198644025672481172907307606434827858497690677647202983818871497994419777563589544540823433885495561920690973532881887496067048120350011321465863266435229532876803569790854929393333207032375369245333160109045299034880433587215034424616927220101362012157362308216920070085950157483265217940259027447175695737829327897054949693330597658487079741430056945988812031611901254991537793016151323033672862673886371373760474851734754338356294816209482346840980585423130932315176582326545606355938863898956086496340201024339732909982424410899420095900502424791245807659466411120027492307241946819490782215043805392939773316169476211791663297852868125297160550337761451794010116254697296589353251921543507319243110157259446177155028420455015696782745114988425737881278133801435569910662241597895492067053408501418090941135563963464487752375956638525696872537358108509429120443781362579664679131097886965380614190218624366742940128380191176642445280212526770444809501246918565550074418421455737740961444068151356039810994150143934497996620442572808725209729240010388127139255107926721873953157177889417658706561662211193524978303375806521615736864586084286098080195498463289364397901431608355035345352545623861478037231024593895780783194963743130419599633264084825879388979799737576286100562374249884852833933750902191122673789191499178332157371760466114251163700437826563664528294606508607351945866858545830275236313478213654893215147742689797937276106138548006370282801792205889515539174619518869207265116992533088973772362250549174597492394906486208212538961806586770520777056884066834609366518212172501576531199726524139252713156838403260869149708230539730033780668947044583213731597110933047596803308837617339964987734490973000300939513561904368794483172466731800104411958094275569237970585766606187476845627063750049765726804951965789237253276297899350267595687727849223735556248171489268200086478298261417347881665198979518528183215542280350743009135377683033225190693109252122026605800321245593667086830232149125164929505358988294296809616974255886043626127321033714343444549470172183920495666993484051516746022121437739600433170810998114591891998951866378653652131689544016470883905127506188635022990565855349381386671805266792948346308425748047767265488044476764534765862626832695114785707162522282982367260421347723296425656115713868880082125421497559230324221732344383920621370063189184360540158455819801338636018197982189830149993277170727612965378224911117567386693717833910950432927061030685509085872160809261475213938041335882935685291596247457824752745449488197427113041582595040858685420170655769388068339634971011117789597092682874352003353011642899502340587846805347332085386428965674793970969615192477019481942448010599479517172364549303163145933343288002131828751397068957752865238830061514320483906866483137177151261352769558848784083973753794986806216727844771864844493804164925096781904502119194984307417274548868195608070642559824530475820677758303619317670335425402959832051226953682534673368638291864759507086903864363786581794489783709581159460015541542941766312774519990639027144779047095541007000237240212556633026621712672598939298481912377365466857475858795140262628701213623091387324899614499610154453129513184447980168459041875401232140810723224443748368048030462292623691686024085964235600100351813272864981623936536478708534910048786291703254119441584029799570786543345901375479155140091043792518025484081449889303643348961730120636947084175461482283373716743434423687000868413995681933501068748215919696166566919175196324026723726843962207220592849455984609989326329613800378615174601120977361840073777427955100606599953395640162358958096836656770457989387109730736705628486154028133331106853711519424979899603083289665575474261215689693053779252969649785182354523473092069493955831635251611158384497175094411025095159505211982477460733239065436556097573471109886539592388647898260500586743454619717478672925432604487405630619415100614947099871075535624799938732317146988159468759394648685715439543743972061528082901087049683147666073205575163399065425615364999252472459675766300195546141032914897142670612654153678006087345252840148711160988972454972386878143926727077685386404607385272548387043861435010154638425508833289236068312742359489806805877539403021020010432657172847830979000790047180190551368184790665912797085751544842825371754433092030130137404456548541756110071174596571943961937699184896034469678253299644618204299223179866780039795316431008333980562742435194672774325426510506174109292754575146297870956426218680050721266138841734838866387894796574689510550133941722513841633439962112084058404723051930443372316514267421083004792313584818025454659441580404978300689065194831562047167812558480483547783482470372187452065970087839077875459487310536553251444344123350213273462989574070436860659350374198432433674943148211037218980259157006165681685980781602059099956596820897059129256572508398171500077671204069408593468110128208678455791595783306993169376745612763239865329506104968566534663118386327392362114574670460526522849044409784782869453888804493646203703843669915877224367365566397612638171303646640788839724795268065622838961152734654344376999848444519686554741140902235222569179760353940673780392642822205613673724108629648545212275815223574937571707837585097199992544168150173206863156207135300589455818605172944091965265808681795885898834299504280637445615881029687219715060930459349471277154269152389206665819119005137252167004491387275138289871278760014769546662688731493526778323887534346946012995360788483948484183453427119532107171092700169718235339414807998471573956113277196528975780073573945605572212280394904423320664851073222631552261505597311222472652615871946122856713866239014572770769589369179423020868280182921385317410176000724239257252015294826545509946772146056496257986000341386060943384447013933439622334736702934019593092805572320525975884303087595451713515105958410974145502745109561403335837528811967930265290880669764095720601895256373858312795517124107026773170296071582528750369026025115022049943492338951322305530818787298917894931311369213797980817232766651504606576204903643505985326625718332978978299199144899537453821199982070653101635295192264343802687190101417492942358291463851606602487848471831805629900823480466698238081327861118126966983958218910212138102789455111233646081391871070211299273873371925102418196329709368911875442465845632213269508838158354486991809026850522224899547026942815038592658256782189266164912103905585070801517931466258832327998865541905212239682369436551297088813952465983270368387697995296979901952369242478886379487798708563257956078136800163036354734450510448892591941914441805918518144480694969336346371472652446958536228980431337267311432449544831791594529135858176690603650546858682269919871750442768758294628076889634782551503362086036864318167324300280070654770780200604781235583018799006609619187235290296307052593197090897054252286735078470593301369558654906127475530780012432173664516577735248179622831801557718669641835884770394961759288387138048324086448512876863228164194066035377407550712346246134748908114375755028868192374457034083829128727168315668069414319309263707798930777601954846458295166431529950178902382897147344756118951002170670702722286194184703808514683547495330392554432067132688159337138183060040735718251928152483992794480645491649319342079618945965557905464309737960526448242475600420352758873001179991344037703424522058173995007226582361271511956659632769769542054229408583840011703877087296557681702412995880864034956997294788216201176409768149682512611281839512600301797756188860939533708609118265200707963656141609659477046985382456281045580349975848539403205133568132590666371201480143348109466892794407169401061001967051931682950862005975311319692835362069528536103190334706877408226385657262953645025514746154459244024806094817235779189825338031367109446170719627028463732475576672544516075909350326153224314631432612142603941073375700315613769544056688910912059328590749728593802138489884403027506468099255093881551851341199978077931886921479339721039022300877161537808428795071742183662140373911369743487896050716686551100827324245438899368138528555821430591082317273068786763821212273525585806783956726506625526881274902786047440514612169087710662809036426753257393768258006700043859314584468338951658610072009321972338815973281556850702756615345116200049299181124636844159300003959786895664467254010123169836579174303514654348747628893674565077810729888646476508181214025051146329673412380527955485074654260574157750351262711652457612827518177816256784628783402420200003637381877600286408056164999800843436804757497879409430831705120847025632271487621165710050885920575598134489367497700230266623500307255028802276846395458589591898439627398391522049739962121601107585253562457004712930110318956769378541391216787044620580009751391565448448679570190525434624338987398056938994601573863807723920964816116734751195591438734316411224540865045381302339566863234355630087260486639177541069820281272536728747041240526867285400487092389257792039599631592394330745963798769244672726647512668635838638456847563379206463322893489512273235971724777932344443566578303237194798376518419153421559010227669686800283021650895086474590390842502338143082079557670037564836340206127869423053791501366158234971140151476387192363206518208919545137980803585585222644074202433567627400365183414058730710997509047655469676067597985018642966444038226058414474224658014521754959243399778295685897254976486040045448798267211177873281885516654552568213650659451433015548863202310819784078320063798953454778914031127406396826460287082967720795006099372922631070337088415934215869815720794506884809135436380516191656914174506711089425599195460882474930296524797703945957903414389168517266283549626667221073429882454926036698417197679220531334741936514545524639570809767577476660687150376255984529715211938512401121252522685452951009105043252208459736474061034823690480180397915604983860645620423545231065133507530392048742115138806459313310925145569517830241495360245441765846117274244366655265717126252113236491606426112931976582248072311044566678416628293840479849677120744017492424037212638533157721271141767598276224856011500952405274535428158216716667703412588993308992548436885205685950043029799340708630631819223473498347404803551089449968426045906190370453122118317954470268357751728287880448861579561330409734300122344755682758740451926940778508360152567131200166766701701133549151611863320373184425864499227007844797196865691704805285068965894174372705956387000340127214235572819425096458540491572899459707941499931825224181535745901499901852113718875007022937588230965983309196816050311076566073347003347857627541487510436348112972649093948731925932762178559099072548070093965482053410161244337899676223751688609422174083172409122329037375255304462240787982732596860259642144103801168214242028041915248412622881269441669679807541658797627880428947849704807359987468156925800816481738723059203843622958279627965211048162429015112409407893308109271664984327499818425587704134132534371578702474367410517197246711514338278091587801833622939506686822680533180523932015548892555410281897765328014775139154970258245934615651224387125792248160583362373064032948599217310580622706441603087039304308864090058902213252861838943990397154424324907417113712230164370860025067534249327654079780086628754212729824301862051027442700305594312973142408669975863287961618498013650452673388526113616050341233751377767872105570061002925080950423734409302672442703539630459914848476981535854935523461700836391192035598723635681220474047419068386067479529562278271146746874909552071117850116769118564134430519299762144754431254291255831661468727482792115198255316165742988981103072571657276763755389269841839358625760028794861049175944987884472717006119700767871318124239933608743060275462443229618295176420676814225250087836591213801441469511410651837181631530705787025338377721900124366788666818118711954757214192227708886071420748334821446717469064946046448770865268015502028298222888188544847046200099806676943330700707967334038892013941316985645419890051123676066654098989118722739458664370428345602944406897581469476009828570513357715536550661159791151296164994267786640395974987800769501881283293300350184051125052326417035726539642071163350706195741464926004326211288404832454656895148005011681927092357340802883713130655730932569601759470212525034059983399503544324993118035915968475670285433005302840095332138728379979973782262379301348450657924500791984875774369364364233920681652729022568763866757567205931751791126335082987993430985076831512184717486900179926157994838811152460455008362382067678854889701644098468803597495874164132919570985732476613726316057388176754587601413633970473339994573574745744134834459541864088834700571331503898969283510640405718969112403612366398665053521628902987330970320030479598067594421408241385313594414249871462857441735575225137370224113507523659818847576010883595947586336109107231662106393818951621651086849090984918492327684112788789185735225917202550044896229578820714784442922457958265444242285236913281879971351637704121909179954805119033733610244078354813487781876779021887121081628845651094552893561599194448679879462133355330784875551764701892026966716008647075993901179712631383678163887131973050046579505412225394678552180582662083017203286069066120018995974454253219351867253377809159075865081017003831292002587426976257384147258113188617454182391358037477890496041059544242184892657514480533366157258684259621686325601058474827400314428803150782294291336970481399274189272080228414864264026973508544641616842765572484566565758260265196239444316971695512172371421071452829306745616359037839004477270455400264501990721905627425374891914042913443611363083623701394616282250130627996633820387969788030963319369164594021666336359879993573490998946905180311639444567988643688262126140510731419704366408792588132333397753767027056576946048718620552678786316281374614721699960991551742068704896640741369625377559217941748140746240825283896351260667091252493235214274768399391252482146252762773577555803447218264041764602700378257548509652349991792519099458138612610788083166482408825357909971968572975980804757853418140168590444242922781417852161742278619979398732937266060107003886076901349116777973505335061016429273096032012837395115434319254488148667660663822109522553079723644743096965923028285063628631747410475674695677525752666391443071096218862180694170600535955800217810651745194655732545723902108266340211503926737999994303711428811664818914589637185903590978703142549514525373438175708727116942597575009858036367223020803816553083975482620176318699863745305409401118450606186631707698692631451976466848179747000501203678729485559868725302022209419646131226604489758311338695496946370126992912774140282606884652125932513030055779314170043021772858298675590315210198357846986347285853013273307571923495389143005485172834422683987050892738264824184178312176445527059225515418905265345356224112873800800418506400953872708646689646920281172066035454229854694532032487354151591407629671681947134377128369030886701119406550854333613672905734821595404404494889846079203265439878447504750195768976544909116604887966550116925012180075311583921944078663634566861324397528838060606524782058232522558634315006417304070367322041395457693933765522770682342835230049134000166495510814464548315761161735328142069488697097331433383086174322163171440178118395694024692575874002801418611758477556542176346531031974343869717692330506307352868979092321274094082708689798824693427175524079090244140661779398590004432305951267905655027219919640356620474125343598445617323814229043101747844627496056887395462761124588896102020356037501811653708173406612182986338687071778975902270698514968217028668270384667058658126499208310772752808392562997559948466144926837874135958311847842946379629992080827636680575454266456789092872678680743843916791060370306163931236674789204543941691970165018526583351115052804298927418931112086208930608909293388654913907945029197929446953197226291528007666251881644989903920638228451591631225437791487095719223070376163342899782511092700974256076728056174737610051989672987887409446779374641651109993774673532208589055753980768017686808418184937759711921004643800613389175674653495056727095759385855668692186167012985057401333738243586271782811272793074952735377356892875067625800170426265231932070355860933900199470060609219414344094698487429492274221765295341912666232653693995405724879776430204769310493806291515663478599378406141094300227759583844711630946095504706389958480344950518544346399456364050533859130810391451705692454958158365781271805372107203864113815589088256672654402886538480834795539710872819756991892108183998899313467414744461130099717386434298393715665676131960152926992118875853774011083661991723808858104863328620265595634693324399378078820032254495161248060906498940198918231821726765139928408261147188426657358856008127577626578141595935142663738666631248897958265338089184554973154723721675587205504661015897255991448855517036469964370082719931646016365673237921136069382172216937414098685897168351552668592241323355647400737239054903038715583294103610532197134392478537423479109165997664689850229351962802226275551520930122119154399537429004941644357431967475957850151238634102612611759785650011796810182371918471757132623412807220850384658329423734087474370164732271787289815011022017204993357169901954329846288700242283233694246880968361205217010506488117699877005534034454780323069673008076769561938123195455856693267671408601777882947848961865292418755409530172558472343297484967506607701107270631246392871519978369005387990275666296181569657832471372533503641730220750420642453073413249289793977943139658990424995685803890427321603467485487310347149387199771518790538394690877969779952600814198707219400438644094685731850325598914315410360251197772878458513645750537853573113854598028313203230408022512308424180995829995996515383908726866462375513040335175052076847339553888224479460138771397124239792754113444278083223590563733472763152389010796738424107151054883426582351191836616163522411075706150270945919131628916822420014034622636011133270493350484719729506022122053749055818560837320493420655355920285901099189448258866772514474220324382257554615844357717070523326911975021043756408762020680069154415632156950942481677399417624416250191885584732218112141423537326608317338734517755796904435031992207490720527475541135065770956578364876048352079385539248092895260834199667481113495780833056200227020361865404998209317122380231822728435802008877465413684456082354174102976372791553281478731354347377624014083900607576461426063421551259344627821487039597711459213624855173858298425707813094042618477852382607794244370696943788660159473330259251871851429009460486871096932428824051853833721515098425833272890145573021039256035824463215566353181840231465096813617233450092651021023913398692050909800271589593483503698566525759844949583373444991785783195978074662784343784616448443608699267211502786388416771327929250461928108551470471531995275423515030525820326537531429710228669747738001545104603541582452571639893957675397617270826755848820446711980822531277527409200914467655101198610040749516925125133676836270561735585508799298246328537158894555758628564249006304434176405944048932648329099358820160094733854657706738084149895030002238386806864521593659826646715536001155135586958608249177791686767191431453780755356797921450984451198168944089823702887302130704962468764286160654385940914416884037648743789791218812614235010396127750374159246693502251382779992740681121193621968956602554739572892550958447852877910132530605204752415351703716649030592207784284702613424625972109336243796800536705028968112732344588798069847924715018319341406275896296193099987823470854771514739731330637473502405858581736093486336474382225736026934706767896688521151541226805937548938445071735940197759016920211270662740366411072790603181685291031727167676524724921117701849064944622076446724434221392918961155057146627486660080295941191338698420104075967915833964724566467201455318448480365512177762872623806525970232621354225995578262482836962757024222776790258537329825600513627556334421128180152227007911035612164845421343597212106356241389500551888276606036582524393177267346034587119759991029096702690378558552161385609440859963011539151105893159886163588955028880569701899327332490918877083569570833805812642182596575060411308795974749734625625052274461919680182582880467629340565652489912549675483818289486233918096069781955399473108919350494962842457723336904046760136479349395692044821603733211094577320371137171950761603818101760494440182891301054198307806422556858259010039560077207615297341053480862715356197527597235445645437685973197886474352668143601730853368741611974103151994841767662092042515254542425731285748033702421126240038639836191801705186898226486813271662169372466738771304587798032809259679719832981091197047988160503991902819590769148496109840018135792667409234607370693465362754232362768160835945465200291739359152777324796789787454119354106958820087448189141610239287420939036102644452234706134862493570466339996771929046250041485523415516863504819392485084293206247261029745623760549909429799478226330922734097182703477849457395948597640723957374252371343517656483262851610588015395245173820429545338261522138952105049043743665695562119011144331158893841153182574091184975572305730268793791906717628146194183636651576209409198576529114431496749832632584169395567778937638668886912733907370261011145483935291337314136026589972248669829898160196796212155161611007813044427836324413862022912522875220145279147861976037765924657397283230866440661690298935860644506060055893294955689699179059707355769348865002004799361526815344054825353257770209086571515019784567770803256810351549132762619987915250213795581443242110072377214596183596406879240596379155638141974717622306582935829687337525775144218608712009583252499945406981010535761024262347580252581929474322701686207009577928669733053433408749329781719907559621539636227314645873226271139651843555717209840042755532191526492618217805421025248287561053025802373269518902234500646209190044581575942472900371251182677171418773419470333471488199233006487717689145512233112859021551996908119733000918492064463091687177694859258894419830728358025865016932164573846640670792897507496736937613556318477431916175118432258390267949688872782221666645153855063586185862123587897433028425049669200041138399608487725902765878718379928924989397132344964455814362066826529869998734215613414252954820625139667253490106121360593322593461452589098849672884632625787535686418986462945576283964625947120189149774058102090131727884092393472931135049020176089726907284480005092580395543232204847400911265826854225647725096047022396725135950554378407736050416304130069381776565222849955622879807203171728050893601392988337868286845193102548381306042384765217119772624142415310349717775856315941887683708373265120429491645193514724510629858229789544338945175354184941674084487777775131360332465767552645361889895528588043766991054374781622565217501198916433973546517890822276399043997024969290242584226231881994024733924267629515087022389726684808277973687894919330798493949152889895654445714918607111010145868676575065846840565470803788517398626885046754378638306310583495677479201606975098295285386175141136297246370341194830681725449150206986567400145678549021759480447491879809881640700728861439900600765751254993021656565213161156571381158753766608905750690132257308531620789597442964964218408422645556467298468502358576853411884346243329536056525636495075314642086515087839814600044614290901007469464975209467837835670884223327558342317639974135681945477797370552368241276186033750068175481714176174249451489353178262987502271128680873013112047214800280803017920282224591907879078424300179224258352560284877338327708950393997118658700618107624219621803117963516619287407719367833184309530561908013226818906776163312764092764967848113025091221184392642896365525948512148246178665212009583039482634225727377206953092279337259159814264668495446343192590878762368502525024448183043705511242245483867323846994596549204080910253595247762731296199325542465732027084792193214445183587664390818583556465486630594229159140560503603671982319535051409543014405695137952926797771205272264540543134805850490828297333829158108965356965824668637329197995275205239661302981488994477717588683685645354207539704723832455413712986999807791632969440578737605951437213203895287825726386179984871587064228111869016184021892266422997717019661039301210627444844721452287207906710064558695262164340225914575022802741512487208418619977520091193152883546834946200273833258156597940282847064069666633962029643625532539326995313371042999600067687857436525909242702638384269934933178376523175741244939196814522564755800169205273403203778581393499594702897010765493627451055363020832429478826188269004821967585622355917982055586936717345350958416585045054916663832300517638817652057427239703799639996678412321361235827146363498814390240877679889472673567367376055652295328288468376098876267454037791211560356738372123374232406888029089203566174936480878926237228749290989058203321641059687915137548811284762432252162077771291669860753369960435893510670839170176704129702337525924555827234068748290449990556338935847177732860144796821501779815345516024910406834978037258755192977919375904801137948651322241460604348753863322788531693203805681294608785427038040838746721759390975280682689650289966377375787963615262640893716207394240299962135054435212874113779997356630648890871983069773193362806279913767101732114216900090542809500717713470662310143446685987722212651644194768074601374838516201336551143024728491025729079604410354370707578488599251433968312137636231412518307273076958698269079288263548385739518197412418358566800530793272499550029943145974089440473845641722096930925476151962420396240719087980626116021337806642009100562635111614896570107716977602424180410163450269924161836464367725450862967072840133195758084011731519551757278516441961787837238907803437532369023510752964483782854450474878544019329943481200295299329811325347761045934105264332753465062193510269478431835055186701232793468360630783551577497833534853908706757792197572456330021273161009793267457774625227039143616268768403659288592659325503546521859516170067758022264643621830508903986051057391288408113898910465473365110964806280794739324078477427019487164894539771127690742440101274973728926597331380300674198620701954374775988889764081496906807025631987283710834136177884168705879966039956370594023622976815519611237488192784016503719562554664080612963969921115740429613123869869315069932866173876010185499676537907327458107569688017981195019793416215367365107118834059883862901764306240214063125559172207680185017529119692442776718394772256980980909278333151396383396143534822724192893810068007625807900558359096350626735414909454491529672953276272021716061852142449896493987871897739076541175187850966251037814072246184526762159940868117260932947929449157312064021467772667037310769821874446291826600429742618596615226229730536918966262815232608946185809646173608272487976381748066858331267196326131236131343422393694250665221740760301063460327867879357373395941941926203647551592121087529376796595447491653721650388906334544458064866507900035098006856413500913326644410856824461220464649442678207163372466803532084806329289961766333339425042935000588095481483149641829349364197503935550916980438017976322436799855995077179459821982647645048656359625468045428824714757275175640518020976318682772119927503522618426871823676497538948523119880384571892341811662781427788911510635758602760478173533138095948756400609958751167065561584142994493369162176764955654208430431747298611418473370355134838555144821198299671853414296467094298477734995533077904792823512316375701654903444615664315111666092176448126611337071788012501135855112755893761983617828418926805701837580513021862433631388462547780671686063192404666302931426687301174515550682176485098439859642265774243878106331000919949365561727989970721824263304166131650018445463433939179405621089429430991613211098599815014945617294131661607722378530925297454232179006854137534966993861124486564612883391976012289322854366746204904687024144895074135787400297748661999167287656404312058512911476825699430931792577043203055577649072510855102108633262215932979909704701846121437452462160238099046968496652301887485871424105708195606870839297250775196273784154772195495704436916075504146183945603936696370865810235015034978061577786875521411861308335231117748041158416776586730336210891374488164799694666607384258565099785993654054970520455091008173202564176114459414612443121877936542740208147449791981556445824413355733275774641866059651346216160015552441271529878113117409033638832465867856682675415400901509877696965048862118204652309845226340487382507886625833644775646798661334008186697260389691549156696128763821899738595076585202827817608973202082069135562587639418098779704385179412148978028876422555644410190614583321450033354668055182692868076942047782268323391610629878875991548748845419104723267680372933003148973277355977778452955020708729965485353810066003521670071796481629975684487522059947410054293965897046292532603619869480553531879966777834753900762554624079072307840978529104233097004793249576920326242781143349485063978477571926301736482821107854231010754971432908230251185670890243674312482902019017604294441343949081151000037672331568095785407430780774343947170782206705534071793143674941582024862855944231596576476264791089233304844409988508026598169458221667897581344212230788140471603633450318606989691617655567473622787519629724181354895282695002875181963347663705637849466814595220348584770978646635525012265181059077590884654368392892645529846351766972691409742417578774078026154679909196735912223193048968696988172846192542575196976838675103405901874449777846505682959277579936509949205631901460994869312057654200176750453471782223841816136496985465167484897426932496119371290147585628980764217320530090643843555706178816186253428859032412151602414751389017948752144107448756780684406061692987906121553749295347509466611814229873601224220641440514810952162132037227666031603560766328573529466599950770811978330992553829097794184514975213106117579546068813154723676179708095234827324237022521341704023669960146666852853903832939985759829828115280414307193929654087527629275005433886081654978768555355983201018071077309680132198159911399845108110010141513428435733742518009633213943935495495706245213860577053558911600170834298707741622386918999710581736440827827071532661273318022029564674038237407148452629942021706153196541567265088647810410789428053009877241980802183417117002786247260239235912496662429742786931297656141342320395898214709002938289577680889584062450938047856124368390655268529476193837953041455382577652020576738385308730216384582025591232728218434112203205926715399243107751244526321856322670810299860415757098577305851075472140063193835227803749558565025192919451369467457266004118751025295192656704073803571108494786479789970579017639449995646101304141899082032747236784668200331199151378938318643461816062627938755792900983042225439557940976563548676863879712472090478331834460916027719389388285952734638162392343031015570081763720045582096643648411239562257905206926804613812843681297144220497310825475584270570741063558074704630612264710458480165335819496754752734406176001365883928724325607859087631223714857568478896960984119706210659840656707956094672757478216370011443835669124558794635804776171486343015413080176203871299569584066280812195579261181963406062996080096247721163949392050582012043613780527240523973608160541088463946522626923432989051040677126159192966231231785809041278693814162923530953696837237265774772399791313527002063247710676113480987182914032663077759409446249972886771900180163050682413409941595027587809795425302332977269054977988156314516586193012715201607347053536719799847362823519134900985085920709747199074034171433545011438429324301134731656857040199571228498998874656172589997253264728652677134523672337692351094970697486038445177286052885970227575218315680490478581554642203072578558840985224191448110861160068494593334954224667555893857944815083716186967046821707925664143545504763643192217127210399846066133166035254840595089490026237719041749274676870915020649075802195730325401869651722871684893934751944401682613204308683094430299731497978846397655405445416030380654309680547944533196694413965587374564802776176746558876619190854233174926593029142257378816756937540331764290681206537956831091647973281923054797176822976258336763944048836832165650898842172552815032421728917694244777961893672730717747236481842664000705036207619647883091148479878391133254314661623084296975324302951815801821390008459499057923035147472868729943903854717502434374870309447525946578963683303670668809075197689018225181420386697697439730516285387112023088244885549188767452169878842718427952090256773622137471735097648583567341455165700455317200217545629165941649734472999149524630084511160467859846859837385956702541506225824457150677837214486816276356793773594820862692721540113668724034561277169622698946571050574723061667605339628465449994272035348961019948396716895062750171871575107950300530002381744730675454860069396575137969189738896092428305878032655799037549703138670953744723952542821938941653530518520582118716447982367023757739894253323723210017030994463781242763010199041797588033558615957596648234060057214251474441263170400420702754752267527138523313146354355391562650811823318927156169858236019491221089798755739776667961426307558968190529869226962746177347487048418570401315898511671580030854233469675553766133739048407104227885951327629926251044819699442881628980676449494595138113390321970635666092716787063505790455274024462706495421271541649396016825670828139052739080849257536227256390414289570615978939604111592239009856766840609567112860370324325022280736644201740569637921737721909958592334012916485606164537555392218831266142080088460638123390151728458168646180211819722793517850714542504253157003903016611955920792532541731150209637566976622117422425963922308236435691592668524756440277571832049089457007052260794332897635267648842385905619354213473937623102907959532811859336899627405619820806659331977922142448254245170328605689358909796904090823655695216634990144164610746037074741567278180248473083258676384594485344211913625933139826814246550774782841003065380131907398900823244815031467333269480124354768120182190123673385654690804209898964291612744787558474587192022399509316458991624673788944105218946089660114968956309161835428368979887465678102212839841767761265506277005348062972918607478503127640084215890238183432509228956205000301538824478088131594166923990812879103620904718696036406988783267068811282328620419790549906768577357014133938298444649884815402187413552048672619232035304404517010323645268997778546809672412994517651294398754917328617812045930459615709143898591934339788865130909019416346746923381446157823573378420159672408448144308972859145965330856413082107420326068398755144240891368847038744932382664060513234561945628723343882497634326179406094481587417873550868992105774619675522153930504309737754401944312350958096943250415783124742636034031445220235996046131266377762474942966585760945948132552209466212622755613893151186534925787839290929195209010494298243142643026565991813551598869951717388866631032130544766996939955834861354309463687162280439448776522593033753178252666407219478510092971363154692453573117715779877563865678530407145259489290826740242058683923599545100718315505205144279385477595332058173549548924632739515793518071048879107713656832823597027507842024008684734688357072246990044994365474696766319266495575891644339821501214979089904940856841065829516035791416200891220869094700911371387047021526496671944221614348863899306125209600167082044382045603091410028050683530913639591164205226756653956307816213343503116703972269841588284432010287917067135384623910439440457739027397094413907992608030901234287087535675006603007905605591387419846008062420907864090856443916784631080300556630816408454217371838978966549883466675976587288017288720391863346285115501716039365423748994624364340390600878932232638116289924277533457153656312861828780906507361257664767843778064308804782431368711017618697734417362669264003315608263145686728840473497300494104412658145401641474306678242758875304399920510770794597427634668952234663435868803751113989142594761908155302304288721139043082247862543718794318231940763835455550247167580774921145065542385527751655472579417932113923324682018584846907617861337267214645716516994202146221623360464884811969309419776345070216053115832539222023051177746204615335645305375969864580257389196938079198739246093000881378014175042946330731480309518612654371468623480257646759447682920790487228091338381847930822531550218941429030904745817379232816666633559908410361664774666202348910714623157986679042879539039186010648962283987780075335100552213724196974258595200975520349574311776541040144874671268441559928591276696637165692938734130765799591612919457186858436472695747131642545826050252002368412938466588632552862637588306145630629711923619297581388934561948057375914503151001325478315635006587000219953246966580418092242031606256514923519756966187415811754983609867488370026557023040212088744758421877230263609780276627325821612264190295318934249807784677626034621947008425677919181022948320173591530500098644784195205457774505421693430178565037023936543603156550660826809306148364567875250373356181147026766300189263024935836934427392525201881352839987400528229519914597327337226563308104832441839128391950812461375827458683273181619750252571031066880478615677709266717760530046989758744030792518134258047869037054828034249491024221611076908849882534111545663869618069778768677448843948731088603172608608179589925277732989838461275821124230067390018564953204016441848474304898228992439488808585975516448648716208784703883047287457385808103983285794682720769546320029457203170651333565688298786826873581907775834345528852520498728568631800980662905925517282124303295348713137721853952497230955177441789249585268679187124079529860761881957865486953776310865716996751652955634277614389464841438279370327736031875760489637822941118413967131028848239632952040362124920183306295184194329239821237161508939232263925915024200689191374811222732628249320570639309400610753467608324060821831216403817281609124558146054217969674325581434821566203444048427251747984304285172823736586034710982987277069460765301103384640466913271113105948871902288447942093268959843734333327233904595033810988979168803518839780438695462070450870036186826120575865928778485567497437027070834177844568141907285163890487105714384828815825034408889424564692807212032586180129964271941903706786888000064157797642373454146935948303625138715406445413899382047240759310074385012903792658740420803565199951257024564813246122305971950056618494886674909882714018614847216846174729927970238826054842315769028020414031891406672186622517374569550228640124922492047927623999945799130722437853121949650731729927399451739828225929936765772140585915430776018572632283957156663641891333097974903570338621588770874012450191404130561473783949541493693083530761708344041125266791552809626317028859183988026082746763308165456604433472911508757163061765198407179200905868429767388341771811600010717126252178742846897554870061879173189983965918742719478285466174970855110189687394771179895826534155226676560963419921662594400996189246546409925522622958251602856113303691032171325122426746173557537646816496797530587201169092520564163756966843676160774311295781575517920982838338212944859603563410283108573628260726483084938676425733838630845601673412713088892588998485295692846084548724710197220611476160780465310128258324539459930202643687938432568729883805032882954723603391377120667216768222218099917304024251744879692330493763540738395722475649518524055991820203057995287661086204208736722302790604497408726247416414381571988397137877902123596285181138178376574978190298174398072841872426634752705050605110910799484335980563614254888746642301650374417874392299211402757339444890422623796288086891144870615837664873272888505509112442797842764582756444922501870922928925034487506784332184747192821241263587425376157146137601487656579999889055729121209789520122652955043896138707307652387899398537608321703597194078947093696361127675204382476792204888979380572357555205399389834757151953552342672807811030021646631242610247760448503212585147882994947031706740837911002978728372653039371815634713941239427084181568940071903625174976709409185945936261737229100934825179980612915278523195819945169226749678705662370859940241705241176167608146960006703609274829351977287067127315779381167941740853297169832351094678934742209242119439383905480823146631641136772502328172237407096668717322295266031930217820798439658887477698015502600536809792561839638877282903914840040846686476750836530249562668708767233396465066341376126808757451438348886755583699824974367771206600497216308638207367679553885694434593019352812599470503794185879386622454541823815034820364173319464878917325993679483303228345240581417422917928959072422072225533185567784863597200534569432215388565996880234480254739148341423470190932212740109438682363939336667025910957913886568079985106427329903976820381849798149348319045415217056792660804370827341254545801418669331070238007404742239186429051168808779477498857518500404778478988396784713855768042298107514207610474955332780124225633277178185505393943182918191904367202403382023313227139360289440417451083407581408939014226477612014131405484602515837928688566372586921768182113560869205332801625218398389347807663794373197052572297372372257171851363655749178500824783703461073730597194274837562885791307191052254060307182338856273248471061826045437823206555264241990870698321812124866718727002857322055191886033212762208845266631077450864498477290330440197929126165322179537058903694344557817499625688091426313054213239201462801255050666340841699985677014571018266701562234908291769187187710027231223089868605767833754009899262389327130470036567705947879488997659861986238437212590660842942205441589636721567427703624407455845155417459491580388691982211772868698454666745121782581868566648387070341613487594436416495913135139841215157540357543698628923315871876951050082953819796250322142744175617699009681682993609824671057585960201209110636117019853465617110333133467340719449134860639067471901282402085421982879303661948789495234916891265237410403697704522946888295279928541482932662045207530548320956330820046350980838330353727918935118913881642284924296487355435054395366664937906047101079722358467979011722750336435436611092481605257132983458329102067016156364271025067359229734702793132132987359246008663214527725566877512068132017408905093975645202533483590185928363123185058120794976929845494605393860198176037621917212383756023156285757057946423686899052356778118701351635133092579198617167586961963996393660469424652069896261958662053750887779637799503632226189553256712394380672281028762420862918086991067592976120952827638209265915795543227177066906885458693604454640846633292521664206909521018847548885137081416190747880146766730975007271453829760901600168052766705473039577783818375330507629212064545038831794085087952205305062758036300882887875435579907935858403382380007784675233039634094994810412921556766056721369057671559022738879899581149763165777172577879351014005460059060625777220163337116050881157961891748883112880909757541757858978294176828672928153922086838707503314921259709320855199699937400656016652934766550595533444884951716899618340936257248559186840010696185173344437943191885840549903226054338782691316803227953277597479870234237987245598361190120005168431556691677324778636900548398059565503349458798320927250042953807491325310977545932814451107044001719214102208309013945802184217017461311864842060468351804595280241451119094038470579445713284784431515530613664303001168731504689251995733294613999069175822315754051322488868935414478104648859124519303755519565427326030738569913850605071480714625447464442295513714675851651924622185150677457966642835746622171990877028651164262518547818091715720882737962481599286245384543560624625970645536825238768060123951965380349747303558355200238139575133673052298512641097123974090823604743817867532895184014416472250325545957687857854687436157255191413253970033620405033507708434272464577314534962208985376897379720181785549509347161967180884617778978015441729794902964422441263806483001672220973770293369508096479239534154511712211477322195203438783360195543481487422832245689103440076077977652364763063523117820605362557892549919672692081286899282304303430798285631400142076372041340578741615855630843341436607603939579723288370773845280866195865867612222098754750502402512481953764969379393694069496875117366834171521757854445099308972092895864727366068283423131951151072208271960691319417447291677706479867829435536846789067940998679783291063720077459780845428644027886938011542994483973782264281328100380198720232893920871500749675208703363458140148489030033669349916618258657914195820004033554540417081931554322617188480918437015353579706856495720802603299494527265623086559995705480697009441204821742038359377967092751555826180967156016383114563749182470024242721923277757492597277527925324433250531384099762877777357632880025585714294733229372797278981812006688936149927511557733856997185476949940782050049205421078536245733123235228215368104412593204310632412823362876079963179253112412136684660414475764362541220515261499575533793099920026250525915356923451315055649429956599902780126267122850424821416521173406918826604304033996258962591755948346757346585840618772554260385983942576761816383910140844557608269664303914184190236392536307688337353705057285173434001315371119937013413243492160830958771981263361256703154049667825485417495857587985555850185491475024170690123518345460555327013568459521986088258445393409286870802930558533924075934691955923116107312096822721960776190963265237372477712083910050758816164339650190671527815087277621736118938801686837645777925476356757658349437335584253463059117273035979464919432444611898367500058150053154235397864332105807825783227829426792504725437171574591199402274117028531313031152497970976184253231063999538014322967519903982211678727105185729495317971066042941382507344903674495655679835027816213449023333467287429923069552522773432427034887133414595302281333861429581158469958253776286589756627895651241423869340017416201861218929142720497552965769515295256325543103622031064962282350227621966441230391532855483201288110372648093715876699403376216583172634218339701644975201178490627576247379758433726440243316600417098568414394202989609576486402140990653350181237512960327874521357688239479752063664828742592214002153225728376882577683685612397337616438606096090813998227503452086382555122522213075438448372256258203786530288934794250052981430677794342726429451395063893712202891039117254831496230408678202618185134434017824119582160624687649878644204123135504873825976712188222716901838325300783023478500568134505129341164816705458070119919810237452105917991410239494884896484786229811352968958700096193162183560552041661760632547619659997751066815258904442362352867532055542191275285070310521908533653591722974697313659472783290517886144417808867274633749320225069087846811405345949744371668931411740655799360748736608064211426333227716578966545415184635575146861601860360769716588817846247575814769311859814515341677061143654444491765489089567269750708611810116434498668645284238858403497423541247328841338022433936558967226387231553225066566735899903405202963201698240588664246054634734067087728819500902158466879242887711440006516247968169106856582238628350915288006977010196866922002485309605457751333769346798704410723971984977307723091959774841906235198562653856205471959576801889716407636991524583448326670641360144507061229956631758914260553035900059470992636039951885424627513635437593094869444348386239773084154178653301815400351239089365672971173696411110132767079073298143934086228071186321292654421081703146267613990659716096327258416400393409567031338009658424396261213906644550343089610662040806346226647932534663567097299923131289322149738084748317283931374649818275113550249636019790333241050320405616117107437594292390790104428355501649439122217573691108316644578038668924494962598547302015793537021049931752720829643561283776874539622603656440988805643435375375615423814323588574596154063998424848313522020030777976805508483996361562619782694724519236478814529538382713305389496262452955544804326536019279058856551427281054900397831703873143006089129953556486909313968262177089704502348960558515727859286333147886230451229041870134381800812723443818243009419495869254567593844080210945607110595718445877969723436813209396020590394135714551132108180795730648805241463863029191555827468584345699143190945695890489596061122660666978595994418132810731538449627358279421548351996290092330252102473510265398425878119947287437138179325065681356546561818590440301800282403397875166661005713316878796152283548488899240015754191518094210235480884453873134363709828016633297061109790837734709562765658124779639456377807719180897967192362421264023352923212488656778888267039879589207533279040663142114862829075479611843711274183450602679166904032834112571486576411488172195190157516201154422847263844951976180978479623914975285104811194474143655993356699886051771297333982034362799524823592895400050554293592932672121435322771430469126355182158041447489151640948106441181436791396029736940205291131681447796825465901425727168167613500085537488807802642355231809823087983718234631648833820906160024113056327359994560698499565645790056962216230943825426729912636945543757725476964724940627583600113723515428973158168472556003430733960382962945879725614074100872690520427282184462945225555332713990323442291573797022501321886417414071768086967377960751623873745493208015550016123976088063894219287005548651667567475058587217067611346638092198217175248558315588775510415799694321077651152401293152759415444348817764927193720244288464809730279343261606210445927264698269178928664383153171591759166024069719471785799462166908202552604866341866694107709093312620406927170184778548448310327818708219882419635810239587280464406888864275790433651187074860037689054249287634182083212116676742570615534922695843681930629726752291456550966821838744618916950725106818625566821453516244513677007673658198141133061250008033483723221170151103207441003744918217403650791717836389398620024106076430407945503345161825083214284022131016207169345439248266887966947548129100703161285687771095175946295158946980351789655403750267444114415924992370179460152124128282216214922466506342920491017905241169420415691849308327214497588623697406585607513858334115073200321014835718498885412931642486530889620063195905320219148854619472824521963468477441613105205433943225340216875873724964586434778091152411101817404505584736509927456580884605601038594356543423055602147454615116505133405468978217523657378241496702179638380641126863069588984685547381423493394038126483322593898341323468903796216487506473755500545602201854379045487905882225579070433549080920514670726793433726366669769020976925940666124401728275369020751987051737424771087711193854043507493958954448922603577485230224784173318291991522771998732975789596256316205897213305257248331354250294661694224951473901924851361251325854653651169624840594047419336746307389689901259175893517085803256352234306778798833567608184093912337588042064519635634539993107531446108992506330641077181427653226646110851875513540149355722707573070920116073207732099223253114823618367129836945327871487559665938704734716935686722876653597923507533876637685096066672575171236151062827834594682104719322058612402605905027036580871160363498852245273774793928587957849369644106168993246159134551635274726750347391016424795964447603263464448823639044809057415389976923575692234504543639427229388446469093419782600679827934565237710874665909327403924561367534346467775535925512387779873854754251963838086294127279278983173242489358245751117991875006348717755860762688874731021501995114118442318213514909123691227016072518640716120389081854242403660761132968707231761081458720374776782387930625880578638432280055313051748524208281387963375232992461807912303425784633772275100097401398894258544330832797230306541812726890545345461459493396204900166009071794589481589378555905066889774179848219596657440004098212515920347652616892257078055808686702565292166587329549045415242635690099693714173269640860344594234290756885598937251482637923652163678268878627038044828265327995937546668914889002663434024321788376529757043910879851157037579833053884629892268099225102360525956403450224093844889859646594668018405738915126690702117930168582726947635953002650595117034289306346238106084792339818098006603662087233411269797108915273980600598666496014579110511346958276414446400331924990643482469850163992981537566684118381962219703810175136911069152110685999600688013214290602866047036687271854565559343761694440729975784411979790011378727414014687723844322582190822566151702252761352359201195055481416161649945512191819807752757404146676490049197973600056718997483639629762001684917376610220002830777444289353404208217775509182637492487144095372145850017762338145406024035999794240030269504252623699789164090137792835452185558412598866519556637992969153829024408969833589158385049615269498189149665786319950936289906977656039251884546519722507598152270279268078989769863579566324546394175319385291671484225491144101420893872443438456133735454882002550023266564540702993587904936851830335103001810415266836576016486400107234448706546591399870658437270692403223079715596452882154446629045406526038882845787647816178871665945064676611561493881489021504248490922373717744188899002675362516529453265348394087889401369437219056544783324327981832800710389623999746809592716934139787005204545618964547925757846999563941532627332515181425783300329472679060788614966031511648644700602674908810596011509405241680673353795956351227395251707614022817548715006078940349300847046924042096512518080072087212119653705405721093326299789015531754943389424659279791567520095715098761476391722988516936757092690806492833022609364680172810116058342924116087527411031632650036890516178586700014550240839197899032218748214692592641618362057357488903515858467140412083211551363920027874236167701217344855999709892153692020625452062844245091201275308418221194171451707203560602972329249002536725594068921574629375955164174138633645218032468819497112523189010288439791184705936829009994949357487456706199016994434349195769807137764927685856239961494017663696666929101898320228508189988371847427934052340949552996750190863770617237673477787175594123686496608731896749835659206096061966288026054640154792552190032179066743345600547042481816300611050991804392676986248038479542825021376768645434419574266667360158299895629800956099666125137082138904226910223237399849988635309162904797054349540681129413966205603111483072656830069489943255456352256486225277023510231865588332669060673145566737384743314024915109022260264179445740007967932308713531602073102110446032560927099639732285548342103765445053879324852975920691268832962656421091215876850623194929223607698040251476777670807122627985812878950004988570174175715170649944749776025195824866847019569490690292268870700810275504954702624680289075079559698084575688742069003693766480956205957768197417860007695846297182094979048130939740661082139434507425073757631742027293117389279488990505307155793405787562488390432095100896479175947295703899542100257365277373070649284008059746342726095258039537872797239162084469669674378946403790535452063478951820290276481974783757812531803489951506110487591720711017610733062810246906168345910740697375540842479823550677766610795602925376827536483148124558250977660840352040710404817515708158376502108921099991322674657038235418651006905263588596671172323293691566835602682542624618272293507789692534338890052987992840766673200037565146324470475040447846581329385915722280571920585043083084771592735652248215538723203238097637283474681402880066314930377813374162413947271462939076598593660452911462623395582459978736096036095849396928612909121385954892004427092415721036975021031270686798437690247049031254346839947684948616467203134953094729551357718205743078621157911680321445486651902511400954495969242138332380830330986605125293222818484685927783697093978719234318050518467960999153597916706621764543702327254759792956411805160050252456526838495492477015006904333069111154968426657376736609526040783747939400976893830356818780139329984036465661459397391164979444161183455465752717681932563740292177434445948874658180402407271632876803182183405919211566737980630228276160201745326727005896198375936534816218135916946816323392491544046444695331905271034760905106081737378394190617209589769430650101050211486170340696998521015346159498931488418734765305996046857846803042847888695627707778104443935729255067437485527902992263798402365006165976067898019016232935433643072715532352966864514754836619426855141481139681885938802635319825256042100923992151434125920607241748440027377197153867587534380850639892747594228055884468982943180131958953156569300661309088765496908512948642206826053949565047801638363507555196331779513738403852692922056204301412754186573367778714600550636785162436322682304959768246101856913568552768659961270057922247736883577410371082762922563349274654934868204820768072118828784861470135979865675330976146133705556941923226774223960305891363830374710485456756718437719076476518216825222749793250038161755640629326727328200060817933784503122454506949346899420506256710264277692782777148337811206394760416093519303439011361049613002132745290817893481735379559137411869502691835450436445731813797847627132603260065876971057053449511368322167746591737287349088138079543764484330874727111624837682360518597274909945692766279034078880985341819949842378236914530604845997825007450770045574960679662408121028183403261887630119995624724814105471681345775532449726378927976347502409951403901844429729760693233743849269289023463794809043832940235223456184072312140709030160945537995057557510730174223713959824527421635543568499173654994266362587776581996502631486001461681126704503350637835470449784165256556404420804124684556122014403579326600230591024858891372370888499380737477375616686884824940765549162934068701838738203362798022646209984194807960092798541973961894410746672426317589247881576984340079294972331011672436842653644677533824026809135452503848019854951266780186947994387513736567479917014719604790467167671675828767352115388453194780431784518002484126840068027242376010734706122230987145730930471406316329146845573733363396169785796690101633396007294450289353717881851490632153615941287294527652031908433579672191678252598709765039984399947656840464180720734396510538405110360199916644528987503492954931934900681809108284145221243097825380278348260327667466399326031154370318330801409865569253970468287907006207840158433692868953192155217054539399762279622596961679984374256936615122492965935320226547277614536828034395153710218830243126317333922346692813952526592528426014148513597398902962859013291883806224057851202711790586856427762645600456668512321810561586424112938528170553001724860668027508746657385745547828793833625109386117731015656169917306883299384982736169676762817087449104604046380703690907179478084596376889516922915466898554472212250770974167204959803997879576399184743628285415488028195973936305522161675827952519413928203278688873606583724516184471439843145073059613880506794861945954541492823713937357206992334408880234525766622424014869272433574788900666989488507573443011856180136727716179967574475203614665327871306656458886293191078136705102571641469406491958542870695757227822867891792932200114291525218027686447128686192433965917699355194872955377821449312200309133209034244948758614516896575206611991519805347123550100971098349693632350342805116306171146997745059997975933959778561221543600860498136460732747798282293687606947743742437503390773522291903455195053827554646148246874970297292126570093653002276557804578943071965232821150836419524223136704508771735220855365001415144557238740222728094182495692812495620412739816223703252515297862784959928530351614793179581387217997570083621932903777516917902909485602458837824037935892861417131018763774070885829847005721373936124876215084465370366727575040698582074213445237768594331224470906901728715110092959775604558804925956354876632043566646338122400356738744819238053158182557632050766002947710673956077538336675518067740900941131443993602099460553776888860243408547991651183959196650773206917971832639844735715272291062517218731811304587155649347312761167152960715000357629657716131340011020124018439521266885637849494076761896793182049794084172206874091220512299296855815983387941858831591443887308596423604420889815377739498855071412851288218513767148678056475376726648786974177420207809645873805617701679273674405719346971490774246627425673918967685867518474625110785749200609762938952283775658049269713558221705768401398304537178655768036080996859373753254388601811967061518841908792297888714972552019151218140349251087115469427273114181474998350029864475690068268364128248394012750566679351167837563948100308212612683279181458092855823626851544149146008960106013978705600942754077697028528908553400558317040961553696296455030501379982479194029733576465089858028260820618275449300418491494370857955707157277222341784846239046750406134470861620368368093240721630245603166729542828188595008253337921710334467845916001649330073242290214974129679291405832472371227306688039451746805282519281701546781921704850458815558480028840514103860123823881412897953959458519450063378526582464887932323419303893462661245888075501480931350724051365676536953709925290571399438493382380996781733752790927670071526811325613132749267120160477478119453863527090821393025129929022407691595665230817315859129264701227100481666894748873819643101938770917554208617123479344515009988631539406246818698953493413547244569615077306628053403131474040188135934822735859371049118109290294272335935256143152884383558237822301447011352280499085510541195980777190144781144419229554711888652613641401770754372051556724413052565709801922734937501643060540835618419117339612126867527738654328527084882350423589123727532585306261693354258382574210138054653737562269404218841495457766357479807023905141095188566148342401399135076071903722288232354556384836755756246234745280878737203277817552160207408702237788421056298448431403700380715344007741430201413276444416589251706541752073993639858299285278399941065780933885970687852452953644397918291826083768721945095729388567509654644746185178599501853916901604783746275726114540608483123427222319751892998366953566874870473964958017741099733691759312091924111408586255531852407711304535250180435780945327056904954602963806789779375089416907443924010060308751917461418392423149133160382188262912896124579651204341965678796701555188698299494451384114116649681609435642091274641101714820620276977046379647352430151807402005822451445548399515778979267302443675641795749260950565141679996750149500986117014165167678203887699032656048738218180984023734887933962718107248141548099713909774544659328469026651073851962185839124423023596399104874090233671675226797959520770618941577494330357636741090549632411342737933176571514985524274357188895837445014929222491917616758444511892455224797581845053916130011146861310629729307442145774378324262283464098912791473700685571157875874742824537768253380628426303798724908717329939663876638653953757400612186058121200690910065010320833815613152474583743745597345830797698693782402472704077388414166765197103782736900845481511609380445523408155431600975529152618526306913172578563988269026776510524124326404389499559847335693427702799218845041961352447926228768609917308891308322181540125215572628689020277843543235575862814811031094314052072818210885712725221888744542641932563253409937215484960829588977801989462670039280220234373159609802639139921023853847983649060662936440305904963961735752468198192558265410262887427842285740765319711170315237216270652367728858922814771214525794736766257500238668669260249356370835542156963704362555466038493809905213465676480819830884881974973420373246040553070291792312117476498819381880564256249019255239322055948909042973106765902311100746007572972478421360155680175403745542445948979200920698819853314693359018470065619955688869983590567478673948869063963222090600718491299757861960995536346953669494700614425827378058585831446816980511662898610471099473141949876040158691723981301954414468750636981974190909323795277775546041498803926084464227436275970840876563886898079590343626732742811987318638553776241640589114016148714420475821120190574334693853120844443171192354007529341808791560228323669941429216844890866997563415489240569054195363327968024442629969827745068585606477161525028050996466019565859958724005359818500231982968603265198389266223750265799158359792877499780019892020128462336385066948060633920136254022753449038443610662355680021341883072882552914804306549916936471244168441225638344982602017729828856811218438177511392330288388892181738500440008292277457313492094392306118961526930472279845612325835931361168183253801669442488009438226354603057439717759626562475452316616715615881921864700401368855982499059395942985542113706858439229852197489076389154847574701254473474684903454228843075428447570655834031465643371115800890375733040114560664750487099134644146540770636731381739673154171894876729790972932135843744039478150600709023087290513329367493201182506588294906022636185419212787157995099222033108878154376462061664150799193723795458202732863513678031393116670183443274070205939732538384080718080197159979596520574576453058650870520208546080667223712696652817798720125128224298071325726831837037034073378061644370767640040180964217363713670684601370710326665671167600449168765768326324319371554759740578163577477656712436018152864221974678526256037682879575898517199530679758602784277295832281601475947381578316464126324555024604342757278617206900971765906639000565134272556036323917764942303844435846207235419349003907032308709588578725872586019377053508515062767709610488439839920591084551358148141616723666796010250216576982172515469807720696300020110456551963903650677215050356367702210129505906439837003370486110329837047812893290476132833523562094184268984093625580343724023872091331894405361307878722964311109795050976813327506234269909295731912660630308620845390733292971734195307913355400015711451586515624755169818724278457653120384455697064489126945459847399287036212832338580366328647869810040824414837092850361703237762982488473635951623985192015794708327604322676644294436550910411505935508444940605967249432111988027762176600844053174875423403890657941072239417204874321759475130577270561215863459351547652004685123738176340048526809687198021592954566113759015270899379130896587640264469960998728915482401682757346646808426838296823637305973029935019661939877423325201597950041201280327784129456300940331886034108162034688890166582504136318780211580091814842646591024131592596887755270179895879567112619941497915346492020668816872657610738579805815984703592319909954306612514468340388769991296897539730053614375874440087746867159541719813667147324372122282191485735282668940312606976652248534451697625207138630049357718791260226480904721575461800227410544538773056012828947558856282711264816812329476369380340492786042473138879241211126109541274605331607357799445966609421948885248537276316461151127221980620278761012476789920808594173579401266534473049063675169985743012310057056833496659536554210397867945984794216373236955675220519854779466650356712207977816314166636955072296108720844096756529467998509616227560449849557005137405030319952138924157632346889063108398308205103433411570132860188261977181060190624109146622517999894783403331803654235429869637419577838715169473118061653068619365375791735473528600750487874413424156073572192217083351596835141318401459271865392976819577087839245975948535686522360062630436230994002824095450873592500885846255016946228093248599029672942005555760660036194553034292181242805330946695178091114053951808175436754990899442285210638593448343390254071682095056871000312738608770555224209052470932287042366760415902159279956363342663608321681697189956783715143798774964968180110034058318853783452233639567608922408465293129152324355647707189739563402826384005397897298776674868296889368188088760542062229201040520277239289637963070754580698715627324003046066268699234102501004007039403616303584282789169138540656484776261286422182465601486009834212383688182924885721039806899544219249697477851825962940839753007035049245334558995805856450436133443764205902118032926812263058234017957800072039387855505032706071751532839462635883118885615419998716495387926264234064684437909794821102981418088790256606421112658806318300273855694218408932199171803485383429489039686803223884717819381786932792311182228820950152632397415930975076485842024437592027361346380346213594021978251764897300360625018839500721192048323990373627761046263996536508561107811223403451497308168593915455543762629114903664912801417418908687890947016912212035114743710473570253361888899979074480747269901906922617687456568654042744908622719574642776182406414189127966153655251811876757116195660956719791510809768799649584044021997616118382708087079793439923930026116561985944734097450925768711200013369589050004771570174247983402948694294681635753692093865437709940121126610150814617291035909098699305696312451871324176486774483812180475513450040602938262772897396674420512305449480738305028747102497389455805160750405489194779658686063286702586449057414815022620116892447949192365218910035647055267405189962967159534381164160799026842915740884037678672947024648535678556712562874073738252890186025540067101498561250071395186896051399457553039974959498932050793719476371181088553581722353366171823815082538279909994072551417949454075322381817622916531990474015647577235644417992994974678060707926233143153250583805713713542206283936588466989219288407535719922877972989975823173678029791270907183302411113453531361787300503106393200661050984004554909196148132734189951292927066776372163627206315743090758760996865504329494365320807741892594331703599185257427207495934955578582721474818004390965042127635494999764887690304999957785824276402310951299373072436887216804385207245459153266185869287754514948443768875297066264015660807782265368826863817652283105291912768801165639856993663621226879227074475555213444607681405552189691768691045956783585586992268139006457034478477799330210437731288570888904850948254247373318992260585029338769751906777153755489562525944576748494642764773799398209380751706021501925630791328161356829999420053943611198925707933207461158940557007319440138482707957136516439959070258929936680103732662512085319186307219658328845106381701344825219997540006190085028344031355072823179101425793559499462710851610100930249863349006983278934737677839391482029441120392834682681478532753104420621061664207766897983226755526639402822127096970407216331292582828745453320328788386386377929414252092785753783386205663023615755802116895506304857021117690073661436178493872502900578062201066100000284673503012279841865149556605302123604313283057089665528063553724869285937964062035027221377350471746668989475948912245961608535793048528100148457204741250693458226729313814025644180920878276128218219725465169072420925288606141575950521530552682070574225790373697763293994364682361357537467950855642563771009865352295555723188953572691163681645046952521142904409981013371432186559003579606753432424542802687547208250701080446938300845453423655175955084159791841521434999766421671320615642940604957453529015277269905354921878166320286400829574195683524113494860395865572096530022302690689084758167035711523498007417082263841816320168975070898926464781242616555993034077286843851279020050757301982824391662528413946610661842443957537973082338336195165730928010770902362604848659121884296421259713250781379073480023886824916732567306273288112520082275605975281450535977136867525913178228999891220189454910659007248365139353965229003244141624599160580649407637585557571562535633401206818152272227495324678811511459357541576718982040605899177035805448148413443134855178928779919600072584942434664275045665386240961286127794223089144505538658939804357526474914702050563528018856261502107484691452070502031991338330037538781368068526359796899447012210661092516529261783451081858333398057900410096562915082764588913694850156833970713264681295923090304364615531212879871320005893882612431647240414086875849838487756451492049552699546884979293308569406986059713869312843598635839839425893234200328873047759400997825702608018110407635304862507938618802057959923758301625292427682665087502707847876440015735455149970206981722959458091693779796752729876076022822885117270368850724295472668933711244087198450172185774326670347715384073887669159301238514600649687052363457699973761912347517431241690911522602699425344885299150272082153999175839641439648405812903559459636553047606938235942268425657924781320305226163600043774460279454837504920319841380245372533673300252351341561549384774033376520035712114205164255095823038658376145864583194419296574877545885130715772705527180527821028203208017629682743765082738171920074390386252361041170553167281656178798129619037582351837567126902920447294591852437435208373674646509705153666763307551513585080049833581639867830131987983734584596091615069404966753876852710639929762008229462763357993133238870868395671680901866423689609772958997822159040200255391020148780664737014812632634899603611993707324292388741523174508664585107899625454859623099992151135323238982217863217851396320681944636878776295528182288205557448208758184436706182891006898900734234487586829076403393275316022698770860857958495354840793679080703241510586925266571839416896894844908303269704738663311244724594280795333123509453721180871749292304451773025368688516473321334377546484503321593817086767552121026054936871619767151915086326674129096748837322848788667369616446546683915351819487800956052737979672029823235346049069587255161168815979924727339453416255950595581522880680026390470790879432449054693956182026265853871867410723061993512768820794708855382194786757702449309500085811520747374462075029793251817537387815422120531632647852868227091655169245050063923208723875916437388946827766736856159248143295543802858546554174789816835641938519538143141499804525599309321660996776664725700657717255327512522244312885139237506390964267443180099095793494552575190703731459836177536198994945099482124682914951217012782319668639953627577912931987945039823252386175246499357631953713134101026840027491979345595727992946134633518460929391271364730367179633738419396308439091895210197050113048459619184170533104355133487874869300275038068828220854096719533497212379014297135156817797869516684943879815054821325863498799446805237701089336659863095642891499348366733366095318413232590062386133686089018261477612055156070308252444143278858030246155689935243340279146815069611928408546428854301231507327886684787373870218156195993712162631736262646007620715076264203653375911291113917822681122162838129926761305629797048155984035932335450441175963290969209500376684985933345722028742204027055009272424046270509276181673906775417823812792794097608616663881093417056396948680660485217589909438857910229047762391428957116055926640757246587973756824181028586015993091507429743524268854513903538757587985791525373335948867560868622834555394064133242488839823812297863917052916407187469212182480351841370255534833595415437928643131271530792157122108748519690631409864228341174091406855916359013440043396339020918127664088473825047589268282054761934379059743960862214596502798952479558391329451129765552945405864354266259873459406491866958150911681439369427818399619944911317897994339279957100494943361746720888286906079501977597265024936174680366648075102260070704724629370572358363568658098871608856779149312641721935930201317346142501356678237091951763173474667431573667170483777332301076550008242579893493186932513633246385686046516413190331401150539805320177638865831478438361481197633362892475466394960831322820516892516667559759411427388603181399190417749141891414386990558251897778069637795060323239333413963197603304416313365305135950941135403049194631344451285519815617033183714473104883571346998321339595819134744445588142145756699129661724218728932084825265035603803985705702261168377308479908049501388348437807740852995360245868653376550190659980193387543152770505131269670803199100322672830800904139730928444230701974909604073285282995352646470802564032788866791252119626939946035087665049275227511237794963100002109147747533604713351454329550788642395506515680405226261121575957149954778917076095015492861577893651682605075058888100177907746322045538902035081715811009793281870702186812151017612688485705472725122383412979981082490584542347529171574070979598579886994585135109008085488000815307992538478073445398445033736737510078920008621232115097229519702718470868357320464666792590621928563850652286357854761000642369945422608167945362256461872506417487449540910490353160579323839414999555171751744684475442169602777586558822294735606163344567596240568970309658419719292895088788540715688382613235517083449281337408627949339617652538089269578454549937831040318446518331298897560495198981214224994271737208363252646932869880860569473824789186503254534938731097921326089737339985066584641135556896670736736001969906369816680785756684603818132989236946949540144840604364667688855841433315228594710195208305685658740935449273961327103127722257692276609901206802481515288819276581806925797372041088408502198741028088190327081042293794964873253933755583050157125506540399910580637603465734027998735664754611368428724442452449039846103509085224231168444392494416685702105669387214083650194605939189696121320704491620775099948965096875004806881169834645386741310368469985674030487272361411929594959635051229992215895665056969493154983254492219349465715665210956872787121795876430345522674201819057660230938504652072737526102474465050741321060932046416516702101316146697535027424723082437972389179273977002300721910810218269743166064836839242006093939673891985991264880563976374739842301485238089678468201891513832154440688625200985295983387010073903735952118443308986656326356829082532714253485851315130209057002036621640971214489154540220720240195888887778103729885968390926534502601781654035754614970916646878010442973549576879929259208856392992484624946933914526635497446610942442768895290808315981987725616555184262823907261997022556484267077761173250028027297926864447873126929563088607528271578054524658255003834342112466911259723108664724831924087340856133012539200421538684911687238856032445111809969400751307898962500430118874724288506780942641529287502330863929602824884927746986598694414125267325080017711457352368962354197313588958490619375687152924994714476374630407174679302802396750313355713944084022719282283359764118323089404386974145396352265411950273323051203020133754883126886388511998448560512615013191149646898367067126577162962687499099141819263159515307800000017270665556794013281257733508958583495480300263279837424455067478633566922936633849805130153155776285751449995634721251100888318777725979849199934935968578034211732976726873225663927828404456316986691346938885973050878118293893562783581540150827586229035262803811768448909967565319086352022175912407866147198368355002661064912142947377399182111312900404450284376045577050843147512496734909968056968106463283337592178481565938949502260253831848007471350857639490611667390764598656119021737399657340244261770720623923020758469525397049968734399068733174555505486248300337966792840763436183285447697876768083353221642763575509243937948063723883034203627863898050768537630972608680026246637001232609302884388638813840663374560138128320648974982644961350333315389414493445083274606514540570916118804296235071214948054698026263854269491873354480477423560438943343110136709600912172726781265001486579081549626500083589653548365565058843224110888822312691182449145381945237571929896253411796322628427938055910970601708183061228886169488171799933717043048350187264088111981564173974574781376965932756978180316985738364459485624577013838611931752306229393984796894426382886288992053613490821654981572261021281696695748378414086313757562330092123565891701080770086894478882290344628004512999005148534436560964782039510930692935592887889076534950909180449697103650837363579920963450020020657449196885039401046777931310400995391915179782161178434846814436310759632886752388849778671147668344663879040716252003029696205498048492549045422601740038566352259922903666869162950675439258510229657932645114284283466291263416721592880563703372503711102521913467730244310205044717943448905581529857623516485986504612209056922319877414852536022299692868874972052941580570246142941454514723857827816019171762185681749951768838027035652228626322033941830965010697801945012163111163037224090748426069142844778754412988938776528717734957998251482155122600940140373290160050586165857295835072206909345014812151538398056636076182819296002235586363779734633440311613240219289257629987847666504763826217890986665927061467656358500083089832441257393010281791767763906339567481729039445197618889322244946509207992962155528422361493357638130990129032261858556050914080542515796403116136587938219374112001840039726246019791884670344747112985685041372914539616838662925225243483565385497660113200159199120351328092244899192377554313309970670726903039671647010574875294805232033911827122480058090091369805006883729205974510015830256585542419657605210789321274049331627148081393710670592098948156553748825044564941112250036878596826144499659748428575770625719932384039508109547119692802450056594425448126035098476396222222191727920302052548927585628375608127835923582805150958827401374366493746875962135287341526397872614833222956252711007358027493007508405379641464559768865635859762516345810454470036181672342750242877758612323596808735653145652096079923572664837671181574101947834159008631818538420548965279460513762143298241260171601747834173039876607625307667834008856714973590635517948512927082090741205248300202573830873583389832855189224114359564300301452068157551783338202768158308867454313135085086113328053081774937847873509723719550283784213759570115679973502495543756215682923363899759168158275167942688733587781388106587262218484898337915290351477775446746587023011488778726588983012087496070992345614699582698520376998942914812740139024122587676423109672475368366990797251855598530721617750461441127648200353062982285519020479839824609236445273373599502525517584930583136215420354151037044886319617868154780496478352042958438724545036406976787328705671709297807075493520213911023255400885770315229994876983398522833805117402544238402432362628715279867327158450823160988507974537103143588455976581325750747321287702233705514365203375093453766507591513020253895670910878496426398184133601572623912425078012705046551681443826700587172687205936865828408904921690733651950566289165379429661813755964247264484982433494876131752085951884229805184073659087278403918366802617308080143459979540089987064868432720754035141314503862795651985774048266097820633751664905284266286433231847438539495730854212169043005534514408035675966194879001599128830607911577052685096269521980826010154448556277861065176176998576033178055039409822992413935737652420708241020239069097952929910362496303380940507705878231205686775395573640700172101290828263311603439949500362221634601177135015089388754287439075345080568714188964173754238323430560190832194786110532006336327646610348334006415841177733408502713983040489225141286487992775073667547089856337231487080936903012999418502543046777333991851758806822234473752711209690121260699892610942911490923938285930357212455724039379642168519063380681478563822670161896548694806955815948514736387475803613298139306580488116429513780967984500683020329415831437519560774529390971961235780249015312527672758211370557500458050117300532852896115807793058807375927182165058509236399501258061058136974559112076765595909994668611816552345111135476799315305513389376751837718997825139084089121403608472956278390956070514331753074857605231113101500943911089550005949288357072697909216497038055610380016930464942792891772337395407768991393304280390319272551308194274281774572131669497407017821309629485374202377462678005722216963358783492405841430602618753973570824213982036275983646402806485472167403043935538680621812276248508963158169016680285135112681660603122831569155242490599328515765029621821940773120727468559696172885377084954710468993227465178890312570679801636121066742405001219929167289262259618237661200185988681405265399494544246881946357916519862493968695160565727151443058723903045918949355120801299886313890344987720996595364571716771078635562126765640935728194656841455296184693173331023244655939008915307795116478914720004491899873105147366094098715967763794625825737309268095424067377735751663336467732614396775978348550153051502393135878366803653797535288091248047298629444479123583978777299249584508636561429096647679748769674010798677906547980938028329645150022408352881491061363804789496831887595536444016526342345712343594188546076532565038032903797916018506827156900937446096187083321246116181390786922594694189331295560289441262998059760668344118847819371669716751149706830532582587596373544522656925800283644038446817712481380979780540987964335909768517242837857193507874642931797300640501407403851783301135544658339101609501340278543020356347751611760276346189690760230273459853656456924586511352492228886340370295445438354740299103788789792195913839904544543445995947359977470952925781249821406846704233754971742777465395597658548183607274059337167683110793484963961830028358476877420795413137804769378468507209323071165536649478590262331778697408598113445879137959696425831161472555825335083070573096190802173883250181323535961915364872498489853649931075376953473321406194384493242870255730527738475394034353664424618592683205574193983688735604983622409262377707738784201872445371734383187917672736396937377342852352339166212012876875866405497301579217290467847110458320706241172755751561167459502079748776297622583880944246953680097027692974295183802965231303397674581599927569198075502631637254404611198197929687952083107736006805127238816524867206651716706165193546988637507890226993808557666709042141848556521290043806051408382012063422489866576054950249621108870689565631474613441400234188576633608990410663104473091646342148573114801891292131910844003050622272003971273200919006667112214389937973186084818131571387975023517548070695092960532634215863793355712565242411893315235399544726176653580763805367165678658983134734886954407198981260160342461588425560582079432308709103972637700732392450768261412180096316481564153076526442596501406436433048172202616210785279385992023957466005844539159373158879643006716778363910689503149222410634160167783614845068827604088205963380340465065137611546066619136230058179145213035351606201982139011593112061265071032610062834258302298447561225375084492320837981691418397453955433396071058992665179544174431879870783814725872508337604979154145923939400806063029366780804185151274814738706971695918774650256453341375460168337228015734242997677762863352233045107768992015988149868190194151289350193145403087042456534929925502622905057614613807439412779756826548814788313790284304689434614602566866074877097942828748642721296667980845176375572619568646633994933709608239716979901617871780673554658553345363169588819840253196739024169992796215688014104999261312247941451850012448397903778083661955763888614353663949573265524947662145669740938684273478496418766437709514695249764262292729561735620291849322374725786283475634311468726217070817149793881840760782790482260692316080435057903501965524575032783010140034693308655851475199446403653827008762519445520566349327189008726205806127946683790723325620247962974893786417946533346028843919892034351851328320753265920776271101261179585416377322903189678285099416593451030230855542841220915512422685956132264346575567137617833750359937402267476218779322694538627923851493493363902688333511071309167394197220342479781201237322335486620166158616276723452850596921859641979164271806561505371432661763326740197233225558191017116182456846822885527114772669972117056517569566801744841775570705233819903467954382828888011661495673839867503937448640137861541158408147939062031251928420696346734245717042612285236957983745627500608930848786689201424468650011637753378738169334964505695715983398475013461762122686607227682460396663424283339501333002314240988221179674709060217531750148583746442310823254730851433833155280711525164577438815892641347721108218962999516322591148649084127946377902360607844815980593179139483705070673412201198694825795323242553920387560666892734790834141506617759179706935494998331845184173567083127559010609181880643828905572811834220857908484925090677642036386276398226461630334989826204692730607033537290461940896194961010429598681947585808634781210512501175369301108521656402404839774897577680858611944905871573746807973196857533733530038202452501914522029530667993922945907499513825879587735342708740009488484658865121755158832281262017534858760826570451681066315279499545050769384882378444750553685850050686886991739278149443976680522201060770409416043111243351723560365468038539919959897751579234117303584886114558893454949617687305710253173936021699928611033785610661856048808496858971590922403003431720052815140647907260724323068028804429578956668957335951565703774773745423992641954710309195705430961730742559409104154645567964780869079010215090188472596705053862238802439141730416388813994734726093416422351095941864034909475084837267416089288682594886845943046815418658951262959748812420867218116166427303610728551355690901138076636008100032392775089572952007343704929941434303197837948678159187401278697205035795228462702310668332669067026131925333585930690528731138272095841841476279878626996577359295237107090700512036862922055542380473051643737051298061746744528425045790396928823948055005906447639992293997821798073252739482179716741083541279561476875474714252553979465102281164660743415776096076281753218985933331321897732877397562601907552184722149524053376818168135028506161939129103168166887268685307664307076871774057751357354748857077323490799761253659191910590794399516552762583351153380401294921002805151408434290784285882978582779758369321137467626318209927510005536606835201494410681729928695085024773968291366273465136851317110471615726029284339028840525045408277414296020162549949271587002212270093090199772641965329093191926315906889426388973373342057431902372969386815281754231181196706397971217123411078349146146645991865894073293754582849963296706328469932304079728567931223421646782824588944651959897299163395153819328398508358535470589493850903388160348541479100379270394775815741115894709276595719108006974014183483641696521414398822761247894725907706851199784306128912229241757383033555144797330336659389988180455184409848719974196332978870751404137310989262479597623652779542345062602445801814943357692765572276900650432178149974797984789373494793799342206150053185747413363649986621157747455225401171118542543699499505556754455054544510426992945512018792984978996709188392369294443751758778963371816141999262878117998365045125936529595895723810387694761525191656970059094217026426522283223768692622829808132018757536352876991707245753524443185685054616278394776914119027131145827721404757348468405972501809726714848767761055340367867255241041088649457937281144807647182481735050512347776128237439397442315429126390333844441711049206581245854297152162630013763124692614328865203001371449223022592220990845946492400664115376193883529220722227536990936763489220041236662357810423412095508343659835108859176512632060312840268609088007171459203847428043416815317789495349452806876101679138880688303511471252714215891311794070959940215205173048868350194789978364042337049271037735391844262774663044917726050153192734809764602317729094152153084754205176329553368442813049297805306292110733845114911973243140306552053171449823605538180325575928700285199887174531500564249136265865543191982545550051878198710636828626342978145162057828241224432959484103148419557466290187294618777768942825559386881402489157034728614778396689324613370090495818445541975594498423514312950606007465473716494828757672039358489603836615957201726293379579980164838346024304767522712073921890447903955907829412046742632714801751976578529622132520780685560325368583562041405843552973403955512674937632081024656322724112004072825472836519780391657071444111053393889166075495612356198657816735875862644972949696841054375312391177156882626741318256163556637040088369007665631853654929714264465954860603757523680818023748804683753795191805408068193222847233570657162908547967748930038610445665605662926890096023694297830617442914764203077681880398757889816720047572940422362743552873184693766599600176474155030581457878335459842259495455656065190204518108115677806557184901964179312226685996236462891774600427353848285684197177543027776438530701074604237787866174667411098735369190876358673173075556822569169955543098155583924751329167842926137773358052603454777099523777468933698487124236918689939488110587136242478063311513140667572079946482818221821994902445874013677717476360328635431023237509811858856041144686356384942351297210321499030267243234705776213341033440446025845173002589954972997201331948798053298465764170313547782270876495426974132297276547081388933735397971700705844801527590737141351899490595196110533798842742283229815160607729371591368459572070955028812151049771292883664255870490088187855327302885040671306940213188057076443179211887789086845751230143260075377162708503187042018079273511599062465919911210494318564154647815901995994344661033225132468940615064806357139534034337070246262223870071673464466947668151166669628325557469120636274169523224215480915608920517371052788751307816991445239707308132537744968633254131713335560501714971889957852973236869457481568243266092428011972496476441628125855126683515375112937376200855639886613429943010508602785119125541476697888982407688262533348219401946010600684049039587825704453325648490261929032396948991208904760392397361491347306542014617646841386513904507838763945495619422074402307260339985163561918607930241281883947169881518582666867267722391340659165101797938668169766865418229013916055012945397988709534729945031833922964998747856122226523594698558008457234952123338395555532431368329754345207104184128531679526328489783213141745496673550242964182068449994043925139893038775181031963285064764485452778068860149153076260934538099410294158782555149231048231497316886225939974499873267970817001869659159250126016114685602209813634989447005550889408771794588307559029792176413793140809975156587191238587405064224247684965870850617154666817739490742527046639958012365171224996236151531208936585794894878471577146612812221478765635366811865390398257477543574887242503754551950225661143713442931349894563671632042242246348185134313502738466995821521802483151881963271412788083710687824104135891561684130350127009309311721553219791936600755724579131427764436780137848691863945816235422344258271950920870149357625861333200065654078241258800056761483649521986115407839175373198035356188093033725567076643450451348703683174495143589216834515798933835972971452932757197173960307555121903077006940172840988954185063945616988989502020803662704865606703418860353493724566332427835089869704873653652811284629498070165367316942019577813899125841193018531612323321004667414633365597113497947523484874754742850991141673961796126036850865876697582453639763374415985246265880316653760050441913043759547980467354153351720136927086121210484013225830000746347195667479630247809362841568957427191256162540391713992656304827487438830315646884966836556700812074139944437587476478207226952771083145634643520367395226990815949644782211792224974037929469878052123523031461083148654128052069616953600163102047384484507546338987084659937308533954150303200821294703969945876472811364859658641438755795022820691776079441427876235848947449826574294333778704334273709940346333299175170641075806291955889429987976881385376910540001963630637090673731807863545527302138889578090193685955464420815075204134376352499875364930785833234032907289195924836063772042635350985270575665501889350224580151671025680767217459718638654036868528689163942281308978400152651717268021936279152629684907786555738305833062294295129463674254853225726110022744595700506659066825659722036353206587846649731081401402614509321925893814263324986378203873761453054791559389792872925786574748481329930275419948524823072878512183691399316750644216055648636379512306796852487009519766500986397295906551971648392230948567044106419757968182788747881592459581253199194701195399111665427038533602196368167037703102957547301155197590416773255088800460762093910258524678688121780553298726619870281836135304854862586753662073343661552797786202985924598465172827558708349736344500166524231559618052179870821597903969879554155361744292090735499100135867358916766069127906456593353741412673207362388647840570959700984541212563590811814079974838974211427629365513442048798722982423792618314208988204062519260719172152348051788801601336983006710826512828180784919244489361557942273277675156618143773911270834601493588982564022789191102298730426063192265628828766622470408883425772822305247495131025842518130377969312031373473769573916479789511328428183651910054794119527908327876784819923247546697965445145802021095116406885639665437748597054507200742467408770725633211412819664894728112605746715674335207469863872851832279921804423717181417372155405912773710054910939964606194417517602252407520172420384707028324023120312918535586537686287977860776140840386507444698530556130291543195672819711302848897811770753417165101526480948932708471985331377314449425359934811434034096934755199403154391852907156775204082087950343584642206719512141943564467230709393622984775600943892096500622938034278806026782597760574272239540034736117946753094265994083287002613398549146653759709707016338361722669116000237737561064312573190597862276000515978587363710249193404060882127568610129319710605131529096958019302837369884036222329245231764731146229985182136411461466237533483354718363770682107170055652615426462021402982282479468557382717093286426454833336664445158429774201274433381473866477246478472414662240343775948852048981203144469177949239638367059204882459966581289592857482086802797523437490487115050428471909723752719310193337416520316613071717862358817843856587503368900459513944826411281209675887563725216867310108208978552503218092221376159053565312125819495602380213030923915043877383719332698079929808668273016159437448309564037342237459963391438906477962226326686180456328488677581348622489062769321068650097102632974600301185079397841709509577064204672854980330836798573759719026809977596475222053055980529634782282712825027302738338418882337986583219593394450305302649813285422050891917192189746457433188501234842963202767733212444518381603355223044998273089198448880092169966797500043629382350777812641413760398457236711113983747650921890260508782723679895175266969814889322351151265369432182421043826348718951819780240085081985216486474760886349714566685272190179036575952680501635786029413120979798399165852769080208547898764306163843042644156988168857199919949458946572567880783022259002165272713591582260942327357787464375476591635141985135875846307475696662589136842564777586630678363056055830261778846567075192066735615622269077577176501466560691624742878180484184406543220727763651872887213157778921236498429494855934752661580245423304620987001995684973510806678593304896554106106372104931556231803728842118033647576783895456339433362996469922889034495435349002849892633314624124725530131698916749099090935053489507755023161040595622413772877525288930943486412602872372023797552534486370381473814300247059635518488563757810876456325645863661531825213423578598058076233861930057810711159422949373254719347892977189446567892063189049636128335111580093431694083419788628763796271612535349309952387254150432772021515747048918602964502687221865135837741558448122792654218040442261577144629908816571840227765698788205180433294757402174888987244071795689375392618213642155240299114270722090401247288795908996663176232703905363801023434473243655417268388585884090318109522938577020584504536295512838453840002520857184851033704868602393726229987672200657929601054623647019806912470617732676051092895325452374609385846231041968600187860933499733313965259820623578470806931014567759812283611938572923736480950659233348295888543415210451059702645372052378732903552515614729333313584476731031131763812386192641049460559673888906553514338217341680143794234025892153750617493920625439084598223005320999923565165181945112278605036749636735712114887942006153148776355014884264572884330396504683268122124186463500937973256469211027902611406610394241833088631709562423787348048581889080202797035855105787179008416750068100994555371224943591400373506096926875298317157113348822498703587169616660369881946776306236151066812654821015104076915526922419357945623964272134188333710522808276668123800519084048589743918026961494067064766273393146850050552686322067371795217832870857776364545134240641153173920755347728509693687419798078685133629558940075179074207818188909712122659446130551177929582063421735715057084307311230956242243661975064339239416718844632706796862547072783288790577896578038162539600135314321915905455683396338824845369391168671724367587576804535549424713473800536525488217386938259801629690982999515305207788753318593652940759644832122178380038416301128865680235924695107387828606899615993858087567530410463307070211247407728445803514304657099402750934150824611029215087088592918646759935902697272585346156339905528586549631678311162335809828956899013338132669335676961998496807369251716377793801957466543576268210094280231988499638873584979712097051964058579501646964630321800527608742861984383835034691717932715751768075066133170465946421242853747817783583621405264710604535976591160878191749883390330666020669550134256968026454136895747955924228934753402248943181856175877951351916140177255987857242781293455093439251883890965004294163185037741710141998035077107041389723711210146996343432441061553456691973864234467925376611107356428738561304430611985152945466245321977910746338404522062575138180575318713586515698503739906725979544449028046015913688682308143332756029769831102261330660104936304723385215132975802517000449389734307509766061907799136210945300741332684454417353734851231649615026771996879308979333917596314658922245592908228581716823809610040893511815062638386848215629380691097400439269659473493729482079825807161591421203495569894778592731544713209646815959694005659936086784823326120000024897203776997989180742196387792431602667765714096083866279151618138194107934357536726379475346734856677706045755894049716024064508166791844118918286815456693158952636936180133885906978326092510133317667651304923125087717735894508519383551684520625972471665671504548531064431634669741764786012803303394110090097172452750997766199474317953012846196027077536560734689357321137546285289399926347697510068226973266162760262277507344530889883845045797239731666639203124773082413369943724059580446075814591363087917723377634485171468427431255070437105575751485524202437357360362771899761094348812010968512116588220757928400280571641499718546204914631316592334218153221844153458925927509132061239145861707598338471293632137105077652081539227366617463780008043905621212203052945290508737834399258285251638785368404615234793319597421891630367069780008582857254583727524629805808050825379680231920989139568491040088492890137737863554320006100531914974227674291974591681938022215907393063655466844422937920341813510825214553713148791484071960980929856530047815269070174806904288792322610422860863277810450866926174305921772484844007810661262453123115774967148805539741680073109579693147547184764398012057805585937611044090865983678559748085467918569392236953333651428011988880311559490364256578463774059927713323350298910582141939189416056265062418334122611110475272739128778728245355777981078205831156747167377248991676894253517809030707474430165551214149426729482581760567131967617246326905965491452978216217804146189021799270862952751225151449973338001922989656078594445745802559945242417691138164370679207235192353282391846909272120067330226022046104606513735471222266902901309255889927310323112370822260086278051400233198440303409121601530659975887953398861961703354948802618942479106380343858757178453798911554285184896185692715472115967398546985443367427389735645344043900731588874302946245386024611865939480613859322365528761972274505779165539119073766609209848095300322592175638889899343186691018250969831377656336289000055666463765331448989427420495191707886626361030833809655916278747609591089401105285858575039936868827934287280787800218034807148253880186002161916059964958825619383464021221431215872504195925053987829777486595336241285275963344551249030015374574234200177287665958266346254522148809624205336970220269209821253147137666958956053021175163685603384886144347991852402695449544727552919372964590584246103198217982359394895144516468063901942479753117961787196891733739216265937002254190695086822371836100341744826121046887280381752064198063716001414880337181027831733381726649128084327077865135146793643293286791044284752438388824510319947308647032109332252124011034827982147837133572561589792610153155915160096499723368052598194282527447453327242917757841500941349526340995125634005079051642214159038371749038157235687278573328339505196534143220587400616341970935307795906686022943573510304677384258024338841722157146437316705810065423067031129393970184937311268628101144228615198130646574924974501161408927259565748573017893683076394319154507944896274241826634555159943543112758424418453256186037724343332790985636865021509209212293731074076797207045916316567997283669305145130126782196548173603028084308565877957884843493715484170428247060037079359782539638939261086750166208697650550675153926350239915241585984555126603364189287345309121700546058869222247785233545466819198499034706038536961152424858459367747078588273371170281469567085584957103063350313935370861503426727990593759043082070024824141633761958725625364540612525168948662725792713059596109664032852375771333597340294990924073289023764470153482939073453710579732878292735066415803212958302691175366769950524532116571680841982601508381525372589016765939078928023736238702858011968399432845236988482112528421701191835673746504489449876742002103468423517496386159925265552733407971878426389603636506250935038608110943936258490255310887888150692567368677709958028191510049049551108657807652302096009931734022232494412087405628510014815185209939067774572639229392366759853984698308607681976013219214702109726257190751567237259490926831097991670586007811962963382934721950971434609933490595724416525314330887814724134071291440871369973111014020913146552880361008328598139037696538083129626578352621374369665664787637523855592538794891167559190828380409116740787682182663931379790898741478692875730673427630294505810294398121435670357196541310992150032307959760325285330644724220555672102665187105418856495548146766336333184204406253928871856774843673786325458989591780589498313224501854793612138773865403434908490044784157103305779936255440700714013657576040687496332143225740245205284608489479312123078616916696024176677708378371183786071924372338372193144007776307466662265726195218832029084845521963998518734544138931556835583572642006637391976835978345550931392247518917948165650778339412001182105741535269075622374722371167869134828031132321151942164840358612201379719033118541567175113452818155423149992210150670576581835239435013794596340568921014856710020525585372359418432937832163537491873888733121818361791909283828443529447179181334644624275826272494524445782504767612544624594136531889506724452829496338553579423701150712684435051851186742877232498768531454055731871661384116493190535762569985876072277337618726821441120407363592448137313537949246686099540221823882229571887790069259826997929044205376506355391280273427483361877637149595402937797822573608891302702980309290304922362148980300727837082268258772155751593260608828643369833462806528420287508608617257000430224045024378225229366474679387987435006469214036132397903207839945367251620586861564265383686860548951088620730510707061691917705478765641242606802248873086372072594736368688607098971118210478331383731209166445847966939426381568630617810487545304022773713949247112315807004829908470016169535389794291840208612061278559159693763288991253230206687049363195330414187055065568788676150547930574018622624198691431224220595896293792884292662042248742714852487085289629442082456814260860185610866993551905306003803736177924708710410213130621611345641702114068285509245477376505010618064207848600109976855527652958505522844333802537171516114843762182213638596008085747392918791540640259362441929912435215191830049575299693593907410720874251395199243490063543871182022418088478503859095178927211170541464294804507886253373952931832864442671778752145859042969815535872424340003741848213004940394020660517858590893643042612988866904505765537077475137769437328740868961980943377381562265127422859688189087738844503991039088285273483772446582394549130474865732289977655974267428105756517516058581862884365147126739363966738002162427529448284553015571142809916806686507368113210430787569115149456751149398832174872906146229512153656960122660313270551218640770247080634258521275596491625808030989315711350986753877830196029772555034099304878384857572766786184970305299282570272847886002851191237575765159432549463564643570468456397711573261825622987108710145853404529399453282381797610324062372100092453233757122399723102290580509129387131754125678167268274762143269632233653729166070046692465507704838140638204346620435763838995765042981784220530560864139328040870364778395284524155961276921421485051591474710207719655552185251037631229885264640272091685785063548214534251295002809052633794703175946932065499743487172002564964328090966207874161032429799505424417824122326833347656896338355601750350610747854843981800575674823429802035571011011674611168769874992448929463210236518034191706871271573084453160205562079370206682527969254170402733700130758933402037267019749521665611566135109176257278720142468416826661050280953584356618521711932662538261584002188217822468821076099836460493394790369844828208294146010238396348523763323653472083764076106174679523270864135068567706950699019603750017401385760381828346034567908948756154230310135822726407606748034462550771133774939027613563367415677230638214174703393547688353037108275123064785851706168531266255561182082663302358957715145415561100408755065515064178689011625707339580244183463760957105448125362504152822536479104456122322208583268553913361024391091740811083277015103194143472351406079064989284086304561486830179372352400798010745504375999622239665869685758136109499810444926015383513476142709690792236615670264268251146039178218431459189639757875204167121971209346837493431617539617041588825456142190897576174649385401978038106632012125256578215094612606483787023104589539276799699154947096072400509728805636075422028949023492510556671072754252004590553061764451889624928355625934278279758041622592368640246280718537294196287993552679486467907366896754825982393736128527216783861540207471779871924678967653390348385006202859777551719675106598599307642900664502347157964768135410571771694099118095350649733785026214560244000517001701613510883595135118899142090541865517308661206914889004660159141546191602035252067789162724489628478330879260825161307551407443287278200458516489555762295120708578600096186309015528481809772453843492088418565632466855933100233657355657942499566525673723680615096133678392126204720502872568096069835814787129779820156853391510866580516399812111386553638399645918900957514323856731082688214440115126646614773437985594462840277969076413466055505488347553073098805122923692551852075503486260069117194785675103655119992260322383029469004321236398905159747969881568455030947643341945024591453990300719499898828157349501399089044004882313567916107724493407091505901633439541435830291038597353187998152220696835397849290624164376019116378996949470860714374406685222253950754914155899230341936328752082153230254561180652230176063549606840967014310202911436717025166508121416312560448409754380212204429076128514567757393686564444753276339146084957437769611472047269552007576893468601157489259863263043260798033259812845206569243574902317205532197046103670817960363348798486986676975160402382929289811013367761961009911785948564623516515814272885880357371687926566173890394646376000516459665744905652742800055711228263313544610705562240962715342693233324822025901629796379907102949865222419938287556701724659551721278262269908832118151553602879672198832602649591379578311003733508856675330440248100525252457334945856458328858324440791046303311215960246735996964668454188519486312367530559925244565331226241740700416672631465364031203776555625328521789381319934831085782104366658535704060571673044604322495115913245395077471726355346541080244695049684990209126325017471892833842502131071412102937788248305304468260932390417578849599252893001242029855890551516648504123825348254792498217250586354684407300718236493239663223695704209357994659787294845257252170225185606196034063066621599780107877158652013371824193510129743356144119252645709416644050088911423478177150413794081856424839720332708628666192834022819120440604575469178774484221893346191022098572264690606040464467212644416467105775955011770718738568187513674588059098881800102143901108539112932477717265127239348776802157538178358643456342111414699677910972809593268206597558729535746064662290328392344081504713550172347463388108346298915365106298936711389838246169948196812901027271124854538392394765396993599574590804874671671983660860680586309991153792767878868948242792402308691251624949476608844920511517239377508239490115274215440614300731085502771206125663007270252822136447023636153157775776580813233021105090597185946360358958289831314151913016427008324757980573444907577402782341435135206749045771734255749031856678233024251307653663772223415177832998446791175740360873346847150837206667604998687722251653423612561596064594980214241211989927214495678519260144996474650503525534673129452971055057670445492922201806192725858089149943688302417605323574127196258156657887764494379935750155778119192281371394248492098753285795212085888365248553479076196714489195659501037953470948862846595703435024843775320636987399074975192341459460844905850944791639665461958045854753070764969977761636579913048930102591627669253774628385988468491297044887567129405228161795139381532038545699186974284937271286955300438942601531182471051709042888583843199689944323010630826812443094929010190357549342037741210944153582046658091057033495830949571539204133641770969043387043423441094973443333202580983963233219996231147391248235546266230766591724842723402299180993568574070171059233216512182135954492605121814518272956096503858666030724020343205604632591825192126328439241847906488884092605871253075727447938905246471816436771132560289729408579891313465900819296626750630098159768018974391801412350417677500236920907769939738374502291901065771432761597715751933634805310493840991919050566194862413641924336754581959795766560230940501214910114531727513818128950449320555226835860302229834760036009828671194704879576413538792841940486015113898111060996189766513156625439424241229930161179484440432116696743109927523272471532403560791737459815111057371310844978420231170556942439367497196507162450774658176344152490533419205201917820626411654000013496100477873480994802566253762563499849279133255867706335314584099338519036602047869747368529303721291424922439164786741579846038548672461450164573042512874130548714936425501984104661725008289786715137053191226345310558922237682473293367976193166737886686816527082634269419541073870300166971905699980472064952122555711027903780460573545687310222849077331395558533229702585329576679286577512539745399372528336748740475111047890038177654024677806051306607583662360566577337142629359672500816454036179723043092792564172983227814336574236875201484679279664855569537584736549652118854635008606162328497420727729943036350968612774545285581521859485999700858138707982206565243368213198624395255396125977807486384771289941753505945395903405037032793701738101499140133188029141425737654416858304668728279372532842036233930387030540358575992827572024594438666765551725236802129490436303109109444351246400367922429405668217136625259175045738073325460596293984067717022691618970939610984605376760365838760596749723213057279920368096980523141562822648139912553287401026401365966003917114899378782205388017896949139731276226317292439852377843425906717540426896782983198082616615337305228987985296552529203281613408980308943129383270584622732123891904633619125753084258519530545638511625348264163989053977189908740721397170464382949202524305057549134112372999082250787234504464504256689366627524430809667961829726353999123930131669492925185677401334290791722493944076652453740592942950590485707055869603247056498490583127659694136903433313846927888523431461046512664494211443167649163153886247698147391367794076887795111794579332826277644816001130295374648429630220447210301552486028746784046969157279187589294364215393194374352927909024527322941668888781433032250373670252990088839427836069001097156534481316073615349184110067607911712167538639089895475412301677418054220897709484911609339309500299884804882133639214719973024932393038858655977290644791074765356256355202062215751947419641944771832299889876135327324196180532079598299315192101650601256050604198654262539552352916391744790737515915775168460919372378603559103327192797891743321017703612525663773916349690422408475009337056943459093596449348414353774904578345118910014708885761563830760195339381277898644321575500683966796394528673310917981140071035863007163102796573259435852498886687839220533307327211567465791552940579589471844558589419009242651142551890547755929545801480699897287521839434167732496025824149423918241672063612083585918275746718328331512932978004471291059571187546206921803406686862250035028277561706827415222104647997348700359488778973853584955917264940354835264602103590793213640352033797880574883792440756069072092070015028210126493830925294701783486433298355153935857451977385314983076674035723850608538298965848532479799423430316783166478535197764372717370227576829503861755319820835223653127090619145201485571576879570078388056544297963346308853912909196634971520988471554663796461134500066515851880266468421200217073969621609624713401035625930100641346641475895099987345067568601331812606619664083240468931490756956385206965326482426735541566069297660208733851619865185390971335282856524656349639592173296916718973690736618862856861199337210239793502293038793902041520643405985987197592661894217723366130125183941521937817913070982164766580293276804864988829328762814117095382175384138289543377644084091055929742416949823662586333775945104896475011425384167592215109512840653179397533601972189185770165771305782839279606371667697952483336244965661721013418469859380050439338552898391090283352956542332580698941434417185379990228542848095890157085425266463109185171898407805689811157100859244252072169504365086208732648203778813796851393588563584631218366296257144266798542891933085082782292694579708212226251965396250880805191687033289478356158698454876253778972126619933830086279712734425646924687185481381203719424991462035422989368656036734703168462297174576801904314828273416196615201232039926036009575830305309879762869017291081136135632474933443934521981340953446355148331060679594178061151169353675503021430389741957407879067574809108745082496375355392991674620071332680421571160416991260621449640927548204224268370494807950336801743355182552527380412228059927082649352708902450280351265845485226486425041610532604691870229543752867860671840258453583016756636813223907556422241852796185093860424371900270095835952818720597721868900650675478620844277815482974931961968968859167042837744707710326978369973721393281933339769735088612434449204596572951185449962641058333794696986649818804801988688212674617777790930544345289433885589561151111953155771050362150316403002119294718992000337970487118010072046769757093798692397593241641231940715150448013611430247736390566896375360607151487245936722054836429553535954002311079934700862371401702875268585594913479048071814109253036425455764784764568258697543835315446364597851190026700994759904628998979155908945069212850123808316971497184675237297055411932364197488419717447992065611579709640986514853968311479096752596641366717878248792971910543153937094531827072280605940290659855531689042961918374258564047805456878199290391698133678514491334653166461045046767513496798412501581559775985139556694627832580209806954569611969200213909901505671075522140172225600585752579647027487421799836070229211905513558263851172207592906461548384145406216549821773017055965196093902975752963767567633479865934747965791847383501344379050942716799595788521647116049275979498528459889038569865482307904588256992319377589937141416682466125561448085055850395303137967219453328609560950003669634126849271389884848650606710564160937025836280637977895726141440646180721892433330919113368500076301455486066424059884367204028246532870261311827495300606856527956301265475267367402480840205798546368513536869246442927873022084757254118387685325685832898648073175611375811367605185397143512580236025645562892311101473889622612427820236658120158136772335885027173165861112619589482131417890243407709894294714352693013228070381411130188316792920981599375435806849121971362377832775402945835730669177048554341549925982574391938723973064036555942564090149439230115051066300767054013149259239960704123701430380819879882901904151500763041707230440840687139191055729212361304975970819117810488401782480209697142171494766775200831483043446590145608417617072370667255427085360686721251606619500486529019578979531123529643429012862754631155682077616487297313792372883856693510448371958391442969431206083029704034961961482027201899500833989746838552224586858942388941054841272810776005155457019934911461977102481295491283643266185001691791517971628736569527819113081714981404657326998125333954009527724485985333667749139262915144950174444633939219557006391127930832607732036579101992946838847351142830305379637977816740332089180901781465482246251616376606517808621858850651409130695359278634376158562707101210379322893448422817869067213035374020367331745061006170071219068220691435692347743116411848050762132164650423039789338058955165415354528962878909038424685198880871339553835321745340439504794093381635186427410254687590246734422513944962460028179929249345751418751250291715602538290330192069995955363649490467579373802592997985449844837280504013544295723465264639352456501750609618391672904853304283562569677944604816969911129172219827553027628934877191322308183587693178018451438925720149179785236825349538992690299485723639718243966289387896692097114322873763180705843114592487360078920967436482303156359126860829624112697161466739235617737706267267008430837245857184789453482208866432555988226385323906088957818182548866983901469558854371553041142156898462374507979009955162216858351329570015560955822301017037008057661493662710153727707136074924848568632604966366564001710390338514276222962755688707144643924801151148206865157425506780180034634746227822284784779098829186850859604114211457559930857214922352549605074026958190825234469008626929576753677762706514081599416331784110617316608092573618310988739784859859673534567846001306863981201785637724582450249147884194236686261878820011386975737305887012122708521299421341939850793187510590079121789735706503323167327574823469001603405299542735881096734887961004632298759083682187855878690226433153475558712898911799108596731220622581233436334373547771587621027886578951162041375340179796120219391736407109733724883276969628995764618071635804984683348911392884816401107243954289616410723937793676821876546335634094197812777931829722392434829250524250646222218127325538550450365006103300223417632439278373393774584887587392151129096522557540689034869063535058767117935931369111805615535498912084386459708759141619058321762680646724118525113479899342674868603195406015455084187441448869811657492084925387299759689150576207324069000054099518601657248332557800349313087433142173574321372662566384309544649024597480062007177384552431187740442782240898994679318830023757631033643558367291200240320388262813077604880072394274679819705312733822838251159700052654448100210703901066572765819556257447978391700992083955867419249606923644456609029619315570460623203599145574922120168896157171851492419943644895866045661059711751512581205319436743074588680657424545819581437935018195872788926032155160767818004509666659742278900211186141910158110445521044416491321501711877290909077004076856687388623185765597607609299056020407715355588288812732259693289297092743829112675653360019756609218114348381807702649787737750406354975293224333333401252327613371129982447250597065451304132187513598609317360502209723141436096480331130787750089354686525343523904414311343166143835535810765150621281150051338334589678167255536519251024145751059364102825689543357170331471172314384372903909217364553909305003829997960227385894199640420598045470833654327332305233761739304434200052391514367182380980948242164214603804120451782088941633051344560290517618549870952047094274177231308352008341381892495283378601972631440222074319496148454595459949972536176203968714882347391049554268825603982565140346182793275647127147241658478974698090163374367051956330944576134732526866720651630700815502925742312107044268225186009771951922051348110067533234432549319859862065002070090789574284831100436254254222608911455419371611669999545041447095701002604439925051919944364858290032001931957564005164645799821880302006786297294194846175911610383070226473880613915097895915984938316833231775521684251783196004511060601647965088671218789246144291326061836330962688135842673949951104981111101941851351082279304864930115371148284845551143161333852831762432529329704161003094051801379454484441750421544235243167263899682372581272604864018353503728960555893737818036406169670973153785998442528905418676459320559435808656007973148236383524781486037993972935748051386311289911132405463038473301317603906612894642140860601563931442576592504333768754249350506460177973282394265645755152168627625771182118708819409762567806685425005767552421983167479922977438282485091985514635251341935303176796051206556299435066949479275851527568036897547337084907432380912305471831309539888962734684167694228868856511451728213187628011147673064991019141445666090521395189607224045698974991676574247204609245277297133117074231536810977355760817748232252037509663473422339075871267699264198598486285778056207823232528507545449311199148910909469267225140440527091400630408704304298709399131834959633432454676199185184664621099299570521743088255942277629529156652905782937121171800886284491382179572221866399920373282341726082763181494680341734878651236163728705064200283481851242725514469272288267813562397001497066351812415823346312082960881312427757305053783096205000574567343269075316013145694543355367287863573429042897741890044516958846195660116667842616954432407738594543923560460949057356838184931043712885610048890928759133754106339183358080239292227182669341367304682681166018180222454949233880149501335488563212347529316804911105558685120622589707043826222690188236771157745654209381858213055513533057164880634767774547088022551514989871986107153799965375013474773990617761996076680614732720543286972860762945059936032032847669986733981402492837072508956785145090551858063935419272514558186496925531287438859689970891988114266118261080434059683519273202719356667595544443160629262437444885407645813513279939966135249998320917425745384027502147244143036794343145257981732351454662825222821633675879170271222106027181090964870311049472385290962990554830435623018782997305576592095849738142205373239891288463907410565193493156940358682496722152269557562159725058106745529418383408302599927373982981383603364104765673649305850874317139825674798562211608034028102732392816748262300918323664972620661986740466741005440342635065843195649902770639831308320588270659811748690305752279763788008940337966819200221815196752025928433829942365098057038859071565693447834597566403115778396979789291882891633346672639800297398077169058132139706596052442589304031321540702083145457441945825261056626098295412927669273223824174205898593018945780558043280563683202570662399930135259315503977202942347638657243426609993440085597432142766915224518466788658062173073495695191934145865075185137380754383597155139293657984001925675440642665427153902325439884030013629745236530892902207235208661432248747267115010712485696710980500666467890614493606968980173052083977937558889705394565104158025802038182417468400378068345185007089716042482505933863383586814799478441339305906037840927766609004288153125332258641818620921888961438162531793094733678295656530455383892135869260667914633120263905599152033494745885591473749225867348649721318973930105642022210134829022038811099164385772287509898803578009524676888486875410888728404305915267126431986224771192694977653914203471430522123703096982339174086780795159831280118185553833033781024347571267835733184016096794388010791742366471437841970546095728346790322076723749672674863059496492942194075261652139065820971097983399778815193903823020369615216618532893840559507256604708643416574897461439109515404994203453554397108355086630597052246693490415099311750089638055558360089339763553171296662752578092801782145340132198426193873466257777539792122354461345476981217323816943455640158486476619817661732719969727566521820177744166229205822550222929810997354496600856484348661096459155019433736376796104621069815902305580977257055744098715492548370641731667616104119726220331443793630815147766411231553808475194258530181434061392238343246032832425717264122075107664630864083954241963311867444708876259584547350453226562965345243637290966880909607548942104600867100241930011041296653568542274538243016109214335280815647380436125431109954777109314820629960577839275001089459262562282547816065113703946397753782103117192025754583057838709210894286283473177974475348817046074188879710777448996621282389347239065524807995190899072371199152152209078410936907356775560745950867327602899679221124693982329735568498933290641448011951741081682250492183429730526473969569728248192375665057968300417798362436497913993030877345422041786889078048924458600394129255134109701896495118623306345289033273513550243282919665870414882841627060220073384896029695561958364734357032331194235465662614304239246305649946469583434945053907617337011125427248489595462659407313355878974947149927638317309430310459414246912673732538144166820104491480449272874168348569468241882096062489307279298520485385820616392633535690153794683298768829292237054780033488176556661922693495316145846429477951086851758131927697990629652716768872491887681795737386996661059634047989366400768336455791928925791197090806313783315263250164512300203853942640048279322130001129607326424450378021550446104922714570126780192002035932749157449566577981534785050436449141743580285883442174294012272723121696441281938428908255808272514800737249696126876907329623840562030766280430937836879197327408423591567221197893266825745554369291127952254375823696079693104194745249655410436162326172468981180379807257239071616662938103607115096466227229939154760932406392437997311451257164913170565676831252439703617856307418282652745103644226052250539221716836216753994034138040384470302493024441940831932335876556028702819245762220376779441434690420931828154920320715581111555860815460376427969038684511250885385180924685712555674763637893072078055446492789931698419180590080899427414409160265748009563838499870928959558827524898511659261089900987856640529865846790481837538056792219147318332895755538351264391015217870962048793358071311380313971683499051100617029017746730034623412815725869724194041733022993789955137522397522094732753351026254993562409067705766990317909083619450283736382634292799029840903944471805376579407717879110106517943951796489706527123725176101103757513586767341781689142121702750057125341105138262687475026402131468931488187388883700748485564950870019655099708163129048627875369066727557250956858119623590285335303726342253444129262116737678128297756507993000029362445541545844339204912888003213870859845001579045502394067387675751102883056636209919230914592847699061468164742515320086404348675704799756401818226046028350884327405190977347614326035444321247180480524821767163970848679555900292047524896855664232883295893023299548688849056111647818845616485431737483386698946548443402595388193531107288616036048984674871193528273525050987757026170161272462817480324385371887146099752773727887204600131464833024068934760502252970683659518439238039911818067002149239326711739070683577888775846101257423832632521459166419889117345188944955126579738435334877414176796310635757490031863707686471552655760689242545309116554861217731064976974367683192164509707905599612114800659449167371819631268928306649961015319859251351880571943862699065203794274588185963897064836418638723734487112620209141194354931837150745857079649116576236695893580651416835715318494610962775764345348869720559847243789529717454482606299993249711268926321149353662721924882794445877140900319758975608653370726215761078780760059112188240985066145791308629053616008228458410685298812595955558415026423078046608865283180251870354630638245959464474465851719936488406608060601984849857087459733942444864860295780379649479578038506626243149238274608816823303523154651706022738886565104715272691649950058692749795531881965235470927303868929950864194498953537043329258450634041314306841154338995034253387585061964401601007855742264144292219109872851871822224770934790557997752407761417944446941083744267158885527549354084608854563128312149725348910310109305393585248278286403691050379918595023006088766446231190613872301009513896916483714329029119276550994564247774909005659312099208156877970010049024833842437690448502511052006979795266235753578790790242564958324562561828195765543476205127127898554236925965442940822273492478598277004397212789543775720440924203439820244030659498022118802626321393988650264951588502221079825024426590706032952346260224522687392983247208892691554961596939085611920674978743263805647871118344010796010508344251595777515484907427062964828644523456087483947082264186520345228499541985779478083126713110442191240279356837203535293062770692862029051183443462374839079876819219620021544469220508235010865133057018341870190391638981976329888257779427376866566338421922870459770966919988851074969976776048862251308813957195485733491099248150443900155311899240973199009904488829420782960565379584955050270222115617342477153756039358698666576888459035543634581239135690580705786815631628716038561346205824932937611780216423436777746748668425133338130186964137850429989585211768741054337050359293056845648697112305334290998737877889398941288962682646296062253892586347547832514838284356043162131299508811495534231848569210498288579993704411617664825402011717392891295894155700496388171038734622569662092097223734885518194081071888548284579238520236323863030332803367267260429854776660846606738704317269042479372193012588394624147442386390493798992821283635886701382579812219441106589438887680325808239692267870162332898924402404375028427205074553416539869730798172418649668545765144163874133427519851008084036968653536145964078988685908019102190568318086501416114267647372420027891368977028772229479726465092859736765557676713888965183309015858034434693976172844334565001485750804689992670185774960317438904528260702819433994833097092710866966173253163903819942275066874287228844771440283240406233600070924812118382253806444607071466935033843496300310193700173440310707161464669916788889336410014663826276351914534783405013470135273941981631162341870679176840577108171191609207150757099994541665237734181153625517852604159628921626341848019034190938309701061188308162240801741385685973685365364021611555679671764526003480216220977826459302296085482594819074931306098049646307598118927216014769014826073963151680881950383652440064704522720735203764702509803317692069028374849798565100477763190275016313074445223486479784738064978849469014679322370628841960244340659353985990227231872189949982890462934047982194630426758108247558357125746705360632817651771701527872433939620319171228533596358436171811982556083821146126892975069813777144262936504314164630895985872826596895354686659962413936059804378779482261162348416362367184018361347760468494570557832250681394594048767965841160297602783298229700273795285743768085497956503502727708351775255406930673051169896401520183692263835316982891222786551112994720199079363362008775057892210315672058272914273721177874396430393998046928738947223394253700922303894469457746983405927883862516103709303939166567908049300880494994712029966830070048128535119220407462096347267926153607078335765360245126746743036332197873212356240002597511279631392891571304969089852234790690078956845326487813199351061839340428210234837991116219316073177448641052004293900347263094560473269208354642814161902367634962708952261534426141195313346150033096628335165109407605537514386663367134781174223032880891607146284812010425533954640020310320732749883005120923464378027792591469037061400047987383016141639710815234931026897411724974637661931658406460324781567614613462702740082284713104027119701330429307698725668763660132777394436185902254960008307541369628534548901801595603843732995847294100851473626006980156418255926795538057891770915093541206494632241595622865172421147814968949977278710221723971946707124147819558309281492279178073800394676183922093982244017071921617461010501306440711837109592389538656082489445164964714933598777853575142186050133724486525832842427214915687772970912881763335885550733066953075091660740551398639594985207182960812000516839165799550162365832792543386604493145640408094373191432322635588325774060339754491423630881556510632982591430172287533755491664099417960342819505963256698083358359385687191480764338201996734360351911607001974968704091887642129466644541610193760449419149070436628984492225809771168221827428365146283482883494694460266888739882141101789138660010512499049530609522518182063942209827156460403998330883459529349927560443738381239073213869272074904071751430771785103971728189850358234736605652775070775810828545407271247728654690810117364968729377679821327299439198025284403986512209292854378759430301459244446440268820904312960813498793759242472509630650121862105747939857158841006123848614692602069323788644965855902979010329308438137117068795687663210836185567675010552552189593155764938151202811070023491447052792997550951166539161950002357746923911808496556085406123470116232494423949130996038148141572115128165797067056650466016598062919253656230358664236661480471833787716349015325439832010277112142944698611711173090966118710760164372452157822769806533690039181915221236288011453071407370145579969874882283401512596936160001124438057208027591696681322715060151320602718270786199635996342685131861984736083347578398229185098204308529653389121628605367711281294558899903101409137085015290924510807947158310358854579030383736980717907299781514347098838304886412709932077327942003262766553135819393949884245116353539655709483225193335565485428379414586662761139738844422038215520461752765836853582891870905855073411009002718462551237660867077837234067101666700985562121598745461327460961505987346435333145889091833611524596255232075060361570042089320031686780193514762422897437067867566683580113201287624052497864211401879068741873585465929186164935064171033786596080521015648891066081012275503734362413545174275013493066098961118056794193331352541182945630775441084142260595775310030683410726095739909177366181075684851994305853718814830607996540005039677810737749207321833668052924955599342767831707692147412560210312846990729696824823909817096087194596480835861429994698612823516155867366030341208753936771860781082185749077191586189991734453004827139227286484112536451062516052960153327638848330965948611684231666802189086858034162623456041640717628012838813127402558634520323323804434837752540992384901019486902641698304502531874389577658272608075386102905721872084939229353519236669113834367105983222752869279645987795403956154120562720715888451322724849470413271940778053857408466717789131260938841879236991208957650634111167287364702990652624454203873692532480050106896141770926221063997587083631179489756634093391442774567809273508936401308799949001192797359159326596777097015156892885545613887853234715495948664882333185917218355221275324258112819903019158605297916112855954546401917861390721275670818272100059747205482228197620431434552899238326253138267522732528962205012614904047086131387908230695581596379130584749668034104160868960743159446871445532304241817374047775975963687878662968139546892758047120378764426805714702768192033908450179093250414280828656204588457962854876961274790197779587411222051120274875331744119831144914620896900590127596232217649511507809549208733442409673505404464678154492818886346804286383193424349006454730796116532268996970902550638726150492055448364423700210728918035000137363924819886953176793886313877936789359567263454084540983158068997745142803657316406358797437066388672261079168794640484035665760017692743250342672669215840218667614336187669798502193912917783173290704307569424369335792910532121422204679941716825632330361350255167171370787813504348266588015600071616224449033152037409331439583929780499770041941158936794416912468302485271711103697162114544270789736283303733338124320623932938017687441409744163097513608010912656237694424594831455724770294257708604044848323461509451383987150673461344483128850226106011509935328939153923334397033915735503883812793072037682774360146360065941009471537865119667046966963656931706268018668228286714663365566333672702629024406507717636723249223772154085013713474461508554370902967919267387920635387634804369951544372377034174583007857462146553010394975484437953492391956627646814981351121190293203096633079333060568291900714916636739654665327650984061539712230815089577139466800376947268594690667262454227111017850601913151200959145188301548369397346114604641289119287634307131692668168447084422363691409708216863753255483435489842009491178251559588478316800222966007385900410906367813670537475531284660221070146813845305112503406509191212528442254006767796799587637450816746693763007381296072095912371834382383289982934585927723084623528926604940514742082222836644315939835840627695147255260346081507850125608627869414989275922393079798677819430523492052685242958337430852046580318854928300106969591261386814601403893319477010019031630111207740076209591167964481601401566368809078999308258550517115526097435607383996303151873966583707195822712413435858548124936214147898003192293288120146801392895192156392163431373971460166616889163899059419885050330603810252148575477534724507483750730883269891680776208945417718819000464750452903023281157883224071739424195633657587225545859228502756792129472188982678843369506740575254979073455913728029209724653314632058675384443744869797887423215346850551722409507098986351455842911467414498347990182677774387837188525372586683625251917427042250795441424629433726969841111248599364947136652549526646027747415304326685226743536563801356795657289618828196510131595935168754720407349085614162916876081453079021460397534600669039231406195276373749899093298792684130162841389614832014027894466801352928766298717739822652165211924134511337530525573397839020059957251525498881488192321742998739916946332118553992359380570311447811790403978743324503617190985700073946526683009962520316256516174782935206605031037131481860352104777643443710642126663870618297770706863624397342663973292841607282908148731462947312831361200619410969326029446014220536909342796808522310214029162010370640157126095659418637611274068428740353017532757418082566820316944900587847014587376585292428643859218809454595934476499740674524940884910101195135454425332404313917367562831213784098040470738408639453460083206132177570609896221991703434301727317888321111239991792590696481177563094549205021108073910393843609980590472510944886572071220244410307469126273110671617871497383743981169549968778795960680601262373136202524387485263917789204651379422606219682340562385156590126177133802344209426860939028518317895601312214506537903728949149068251949603090197007737708221560507327618951726556900913051035046618437176832251464989354119635246158313688089708600557197380733834382455727170221126417389617306344540280929957937627174608166872577282814673432137253869957076884006410240884681504915852629222707510499075105637874188581371773225673503528468910789815554412149378783113296859809653859502923854539910288431559091691359203668879289178496591657488666442419842641877229909156145172550953491610736236174195084343940416434578080911225420267557946492870274015435563594292757827051385600249531042062297614480663972748357743942543967863407496148207567954496540816546046696637875764602320755847703361627812884526152562721062122888241503116558772101316204133356960606754578179974818138330931983812961181955310307090233829917022665284033267241674848131974744533393201999506095252703670249033404545227234856854556875886177297742411300424651515055311667457482806112167519346663469760155954357146628325194508365258289268581066790869774386588633765234582814846251513215084635640765560302269089088706086216831088897419217975043340680819550545190089086391138725400089221955731499965203921748209861972053654863236599018822535564496901417730444431797460678028528305231003294041367753409433381713421192010182994839534707781387241087575716749590671564888656915479997970579102684315807892597131542558072626877639521335944350259030689612520972636072418859625762434909222781352827593756304853277245072010487443222396121852129153663913764938318349012067427372386120799747415431225790266380642422540108824468861318081619639443366491409710608269721141426906877426621031200992090855304389756266126125580541038537233462623062092181798929352698250202669884232522580494636400290340175938319325527051275744121571950550070739247498009697263754728741065572406372493280678281231541098967763789040345078287880920153743145873841012589713136833660445453224782405178336528558698467820703856370905141202468136160285652592273354214188546990633623641574246598944670576404877546909888330105377741569848030244177114479359608773498949334770756630410697084342236476525873919786380587283189384403884285886746179696119466856209001431157647629531708758452137015999892145663589062520451743632982837469125369473921232736998401829863558331145319946840725132047831192798663752826522158227722894551892951149743314417430605357959045660150214662361470757164180562849782055925733594535621406366890713976554699882825076661620849084001395394090412590532140228727573834800431823449158843868810841145282039229373123237145035728997127601423100697847251002199668082499451023492314377317031869338609904686915412704341628281914941470456847535230440450792646069866492174326252715130903694164472891840503325007002170582039080922963202474512231169575908117521538609961229712636364109749280420727765563272943184876042327294997863945660114609636559091548861748251089413158658687743272601201357673357398004552272918535662169754404274229480301851572926482379688709556414344147932692158758678864509894154580946074053962328441331104900938958221721567781622806935256183930202280467128275338314610845299725795827516213467563265659206314411130893678808886923048573213124570380888723146613914319645436308238881368041316256934733573877186322407601403550349532022498112959758017300646679155028798581558579843268491068785929223162495836815256986908105999491559454975479616624609724854165728785562584308430296905789309522520511277480487986037883507452320594712483425487800971251117765665520559778868237450951849188019929966321142148885389844965962664236329975145977046875463802217309091023734347905014977144948145862805495121035120143491325958945304639082311017466255016416685234384968809071098081043022373184244379263467172097345356468714123883829396349705227878063607090014027060668081768780700905897864726127122919598341969060207841006454504272185968069721134957575219962194172008054988924730205535416613132496977906295653162965984103642621548572385338883356902869896212755415645083195699771160471856530970949670070120754739217839434638414467368389679021181995125035152516316386018681481196919533563063499663905956924033586759217934310414500210467488770272463760952431403953404089463741846467403685122154945328703269570143947476703264011746728919852277685361321132912280982974143959730780737728892841949400915105814982627124665444512506397986561042779517421231821437131284402914900016615251947177372389702638121458327517317497166621900067812990726096297753892774094001080537828388899753104796518361431417815460421973936135167478259520098784629240781892689172926744397559100630160534065891255967201825877495785439160572127781489251180762824606591248399857396368372981504551849051988269695528267207652829339109354322919998407228385814032704166956232029423753724267578898302297512410088887930434147839279838458409585004158873842374267262073949227423432339096424993086354466005173127851336007370505008183018188862890863712075059470149523609629351584422162131569147110559328026314833136094006621334485775318495458642199295393049956183013955482678604360304621974641252208731214858358645501037587643517226648193439509966998511004654174641901700838876087700182329502669399323714494458885993913437088326562343478140227057325902188847879849459891716251252527042691952082329734056435717491055516319116358946935118213282549740624458822499652864092240287951086345328440825133307318265788337350495781712289963630255395364192303077243971045255073289955457596344585819180161913200004685240041066086988624354386792306217652225592678017922516644812476067612213732422509180451929556774315569954744864506932117020247950543325269510274926310244147923850653713290045006780822458996667091911912349142709246930753208522622505904541065096224524957993288748077987369203816059837513619224569141738912415391709586938796537061962104348844587710101057935488938599113859501636728005482777741485880903335305983842678495003624024572595800660603568441085627657770485122761202466816860990672222195976191214880565488960440636579855670427413257794486834702792120635915667687259549990439145846004689430581971466819842034715396242505106317267288072234343297950805210343861546322345546640218919703412330623779159041568634765424996981937221240525030073487301443588675944404981819429238376282300571836311312590804234651714388226204929542473209442009734442170001403958770311362418555932677276342996687948981555510770644682703323689790342981425706180504760259600965008114271147165557787616581451240105813278034271835897995486183530233008776664680906948580120320634162369819635706852298838449265146401638818518400342130516117696548897785023322144884538006640573970263670996350658318162042305027635880498141720676439996901124937612493681294229813305920769727894878618151865039326175650607198695017643435658915645213680808117784157457094128532482251482444468890037123304179267535638695965147362783104522621560338914153600670544062829718012422103230811906540302294601698297442701035785383425610296931179571793731003904231999166741558526073177854840964261584822214031561201890987575323669280649624429862678268151596008043352052041238937241909426545373516737144200621564650853449996990582522425273796520051253391328475491650178436931908342967114531099682522130788044040521800859786329930163656280003524080885041995757476245555181244019070647985594282660277730644980893452094310623581236490207040323504198610358402726328410284633129038647134885760979983548643372025391416997954648881809379395124652270797640469654118408606833867654333124443206206978816927249954513825121917840799194797486853609055366981236843589838285857407471453539393193472494765023625264535532954067460953555532109819221515626773519224986083806450036304587439127683213089668652306577431116643146413970228799405696744254077753786929375778262771305205957259658515981066590424461393046242811782547354380836024068721215626173455763230947868797396795547370793583004291523081617416334398619124403991699619896812897756839293185588804286473790774951267503288841193646620484688776821797918192114919267714728415045197137253072215867460742983190126297758061524436555885997371485311967545768725453662657239554091389573564874308052337438520650102136725911839628277540929526580394967035616152609033014596872684475099871190806271175504259058970074736735300615637149289476070040530932676829556504377504817850860259256819882473772353572490649042171006085983750062309055894140773743819215312392243054227033180314862314805676038299205424148856624654772854283912508580075757807134564472534543126931287436133265358570900557192547708665308874109643946013919026208889983970675496923265437663664642496572586550847535563606282673688269300993232026572878758025707680095876612571539205155751548080236720110227924180365107274876462317792003250918655177528783974070913369972626668424878413631269470403811124256986093714017809429667842171868410551923904281945749270960075915384449990278906494092502772682807572824716538763529270611465879919084330845461520850070342871164652399767606566452917306493648847590680157974371323708560845451500551367662389241168180448865803343760032784466530394002672658099243984409945815503670515064303819189971069927393104942262514027052788498917548123117851796798473615884590747496808694074256912033995788275898476438941407885780440519570786564885577689793550706923348580204387818417277305523349396801299246438623859592208874989752505093461792955674696423170708352866131285541820554810948798813749946391435358584191436860384673405066302043516231822844628210304702028943333063805907912232113828043620969582148889228068608799514581882104720046100303831890444110651574181156218377325202119177216085911676536641723343314692185948947538928859346336425862259410011945856492451352697592096123087491108779526950600347387008616027518632680855305941121716758434680736773838471978264489369364987090308569043395824581674322140661365980811930747948376399427140039501849126549673947609081730789605673465587637553126312226477479129718148545211907007324950037824163762233804737101134201416361039022939889839236133246659859852863114417754352989744567143365009115064736480803189977908211761489294830866594832106276355086727487836578734271122067437613205613434220867746976402973828068510710367842807434289425864943383797864860620485758895163838470505023871436150553869364764420805761929114088611433370126499263835809630198148067301267376430384550017960887053927289976130841595453556305014118222502829767279978861903664531562733797153971114053322833364047599474452452772151773446116099018631986538820654038487370084684046485780687342554538367747499096318974940026851082234486129805893066980187432034747084547598979804073626216741370331757402712791772557436550340913847321761452192061976607231020315600197125066989161052141039534988123433966820027490693411222087578554740735279842246135535251144394624180031767796222346373035983234107690492288963894147117668351306902820843344902997780932001690722513188043167560481602020301787978945986169709809054695483674903802823852564024858660838303552344157879608382868401084737799141577953238901838081040378784522142824487209701574485511783237646424845067767885425641689027249629209174806339637002067161423180015557939205359501720747793758740352511725111792432141481566689082152253303609667790573967888775197724050770500139727290260861966555414419454170704591616001434015838077990390437007004948771313322118042975853312959116237171575994676858791088565624678593006140683686895217513324816519036477509771048512946259308654372031568054431442787180307538469828074583056330108298822213684030042017649354481373655726317749011786852717288929063526067744424990256511839762554338138748041345048505717126040551279962268114825282842587059062975271959585093141276339157516983453345060530223964619515029776434187378561569937432262983995125500612963622401642985495562931063125609064906563042717448116303538705838191958483805306695747497339699035297163353148153696312656071888918644662859523802534515326706372017716207938068009284703135256133753781093719854533140450262326104214314382754062101734305392894895701806629242856566927981426540223223946341665607273212226029074511230390669263598640531813638224441153432586462954698044469691155191692790889820650037771053336894621585786048311634795759696362114242234405011753139748514575862537932091743035071245702491003157218531032928972081754536070623448132670200948867281285992751920631840514996433675525185432634283036782973084129181979176116511862500904170563711233629396457927618985097052439675496775160817929138410828916247771396677033465067926905435360752582465052704875869725909699514960626603401593429007893697767858652985403694703496160029079436811103848036468232739450696572279401481720412202438512899054259203900292254313496041966750489399339882922020218324346703500347849400912314724325929571492364472639593116628741512703854215852805394898438844569430588975930240195194750000906318902707198103941737606042354350571593141998177864701093117565115013764499048961338851909887287406619152663028300784477468293440624155013757049938456993721330630082367117133018839813666506659589592674926639961730480372385922288857513046998693210163581539653281314596193330114388328813589143117165163645486276113787640835610617328589703840261052032403342674882949243532536433082531965913294698689626686231864964467287819316414934032730922759600147395359385157816581010974984517734986909285544371070094773189084428761902308675802786860073982992052520728155870429543532196591698614721511139491984394489496603726870753710094568971927512924642379150193881275768802692148850048141737583182475125024155545241620122027592490478389151849769275457649699866344032755200251976483907184775242803529693372905616269866797336338610579068383192499617252979772748416943094228219863731620950932753870941142092047210074972463056536449286677353726666170511525146835294557967666043882832465407766637843506242900641676830688561719465553683786140789629532283918982349487320626325288700867216394173864342430878690266208947617047591585976163059438454184473660570420571830669756439427583920183844506858835075898429739398653300009591194202946458582940799879962499680708716852048191439808011873618421197637261648103990025088746401881552498693126868402645964201502675541900818825326731254698297782116470382213843056681715026186610773304463279857755045802103124392737935238331271473522087702601946183047278205626905139763482793693227621488715456814261427700029326776508798661042788387674591462121318595099670602772741130378714631648326002890013827581076689407237102008910795624377136061530328201000226586877831575205972932874897138287087670061694564658961206631253351180558434787365125757174418022567568379596851135462179256256107100365017443679869265440198547282680972815120187331782893516043463010690869474989247802590590830151132363390305069549103384411904392768972956790506432991117157647016923879245265877988896940413606086103896965847483656762059158845221405657230222941173898720570857619095562132032323793488161896159828472206153484647364733740343120466845891172322188723951873431113321528763572339518321395594507884218983732216311528593770372398091780933946096085850408371486728371744248919478606224620177783942446628108288009614362912091950820243167992171333521064479245217272957000444687201056877798321923124795574635769266257385184501360520377253457017499639592009900593096523111288683868363410602139967066611730353202748475897505424093317613091135069013797370384179069686470414707757449391980648056794762020348303556150266699431545429187944586483639798158447581153931256149545511978680822536984898668554636078201119306584255658323488022958884098494418760320845402143656347813760058778610008103536593252187051099630437700941039499716316653137858240568642790913270049589722429421339141725649542065802488859743531063305490151745863507647605351543944517134055351366004920814304580943981885319251434774463682061444923773338666347490869972623270855034882533545548428807362673794750557769531231688046541284741354377215914074484217357052797850136737978674458205657755293327746730948271511478681720092493174230721897966796308857667396220201516877704304987547151333654990255293912483473341173680510484054224551599168920230290004084853029609388891232042115889654625703798023459696876778951880954798567588188876264123672506409191261977551586867169602981018481016150536143856174084945979629857706833659960816304813633907581802238770339002122872844528774421304566562547407685811381334109537967066142035651321190446163872116440407047481528736076017541472929324531935381432106575981480679595853878159505443665179637781271551427226812493467828749715723600998448662664689092712982680631932573991280761678211473867989016053893409485979467366385771024023944985661781738591930386095268012282667540353214599909741635245359633845605675313235559740581553602753633007823442236683247471204668213476827284798511360622460913015224917302189131499383275913899704340589999843295516172492294153577029147758771044494017178413201250111025354590414018005959450093576886398274262191988265332368796871203858926937764657377837617557389673796585838870329726324888275326857907876320008520588179699250220141076717485196743034607445815689399415010217694275435080526232756228791471958203590517783844103152322802756903467014218326182848955436211982341162322503891671616817647329573502846562763955491996365126239333962223758946598126846108459097879435366148409309501221477342214366854193339351095920241904305838067391530526930570750386905407549285036526716656067019028143647283914577701626248609996927683134576361056564090864578151156975783528635433834294691522189458691717273750712439298115933650858247687516350778373551813968446421869168850343301399714555855362655398386899964524158787360067717839938953276599856636000340604461630527032731981215207170087488134763191592257467066382519551789224499883168114491193941752207459694798240059660221064849983069455909665787256129363903472261473551048827372096815134455981643821513848554285676576969438644281279745222208720451677659355374843242322221361078068374228442915137391801515159173626526853821840319724414623060780592978554953203265007699454367738635997681514223156383879649623010193428645764794348756619489426764395711537079183598299712639706156580228174658218289635446377953095172660580772758953931074630165787329739449554238307658092954934833929992426597454201350940467863989864458327655162952015447271247765016420213756544125340925148487389264374923429645450707141356524492977676168399657279790406685284794770936162983635956720028994616695751021629619866714278196450018176572214035236382061017475961321611045512069432696465935619566846874153772748347334177418130040313396565124112718375026114418667791536233296735587513025204776715789920265707091292159173818142510213066967599491189508153341140899700107193361237728216560935457725834760611648021049411647423669361928431350548576896568209442918736948028720678065995375129538383959035650477046812817362149727911514822476230759394126656560333582832956402024639309105414028728359269317356784780613602784817758619195832941742217220294469982198553302335848991980187038029289473583751482941273292967271720964402199298218124904389546748431244200773224750398267211676034788798636673116945360132430970746200301728756257963669447229146041093979477407083091966218612271337435125688776665596016650742794031888491316907100747762054267429777400841478632698433802770910049524333971302140356783277093269690342727534052997154950064871411991597874641517751336862152313352499962410371598918738472496541846901045583325702500317460852512661316042356764418141621786453838885853315090551938730203813212805411671433296485799383584660433663772438538116947045189434581143223476344091826944260734030090520552981338318169706159244729773276712086407091777892065396448147738853302530136629568594351221175536271991192796373300496931915008835158769413204003028982675311764617175920169085878689224613113549926029295402710529079691222465607762153065041359772961836469457661519503775021941817106203164334005123681928658377213590474381681352080605052877025958585287343924215301384589249138159492589543236627355134352006966311058538498758017552891871284893151078326926575337587993290506311649336462638796470928313450759927066314948143265611597600810438834765930167411586170922891231778394235821101539220585265649363516597792746512438082830220176250090473039421008906383232156531513582168815505691625488808598051112692165414773046321725799242013899388200341380684187798209563714077356923451078906580673299423933100115004249057706622314422257300976377952261706750084150247032396304082068666839451777083370599139771968836573160314793485615474115618532596593142712192906510729919764931129088184999570571310398913235675290418678747436193474921799225904412732175187101984795279969462180592769951041522707605781478750700765510592673327851228789360951087221219535989165270309045308609392491286045864110975207457026505793958983533409765308910372159606235486464221223075464042372718333591340517579438449335765417371461336851494665559625290904043630038857872056067646606581064791972549212886056418039138785393486571520721433815248997593626482370330502782322042518774848668133490193296987035431274678068243851916212970468001037002680430369213620738625109473941165047800136147827393306491619995901601196175741056635631410350809413070752767069371712675407330846045707093716600320163798299921965100609741956328309839419443158826543268672378655215052700397579162790650974765600065473658072281045919701081080233093685827473660079415003967639360906981338366955616112292791028517353224286670808017126028694877290218237485763412505151043513869121695578692819728037462038141865003046421076678267229665762315787081020918882663163412141260548760401586649295255574447016608768855585270271930810488114678155827101040325966003513281066560127021843298098255302967649659894754182743743726016918982993902879157744078238244340638376347655519257449682807738441795438257749169892118403614609205553684410250108791584549458705955914089394738559209133561360072669921610619950279183535612831452356810666344588115821739094707030650505744175932969364341189783445904778811755010012767184484166831014250527483190729233534613982123740603864262328162946689587050974374388112028552705856073512385169602483439531046769595408231792945257361048903972728444421366859829241879578847842752305466616692107962066888773928295372668601621724683635544852654110328902272894576768545419607462393456172696974670430918919204327497028507470147353120537015266519082606948867396462726408031231196518760231409476104212622650556396930710187974395280508624964990653341545861986086025653761214164724035355647301486154627182881314076740947020871854995538649395810075397457658942928208166030354462052987318317323620124111628162196252050811181609318578803987166827487238775825979733694071141309243189929920831657481688391826773396449695665817523272168030578892788382359884801037387335960363431977745225253638885549602310660292627445293093750217280352970238833699607675974716114284299646875740423904479926798485906063989032084615922942413341166952768828674212261547297998131429401576019148286672556328919923924159669616617217042233558809044199367749168007077287138515407204542169145293053089651996987132790497390692825684672319323451118575286560552277175796553317939334780430421526806006903923186317154212922654721470196187804370640165424458503372864834238006818094961683472090636949076769198214804173275574221753573647751924601795761779712986970082422993980920487868665803367997191483245473269927319472997738584047409040608106844509917997640306921125556528312066996590181625140441589809561415394925877178630783163876280097773178421118226323503635855614114536016379922756362798214642586720096172714611918128451378538893459552116930411459853882975284158513572746292252993362689336520578480848953167986444013333728798851165294068238914744950894180308124408184733349669572004048343209525429418379448960967512792603107956597189359933936985315287328598720700127073603150466890213196649213913226494261927081356434371527511840764303495909792251000279303288429470756165652062148983693627037935815396526359818975872566715935049553311842032702073321047851199122924663708630454087280007286346952434370251155082150333658041695120839609079017092675979882240922686495551371961966972925479859217037844606330742362976809806249326598461675903519351845689910545706751169457674690229507478709451150303635844012123070135478544909879133333839283921174774724171885565643918119007910898911623651752488182223583933876714469838324053245564054455233648915081245562510505719747025199730908913099378755811265071987831369555441110757252490924868836400525889084864848280005397403809485118505998455472047532904634060476649541657112006790686088800984532765089434420080421182768414876891843806088643373617389130274653271934154438003155645500146813789481596624380240660850211191469433401583786891185754046471941784462998659098052443988359208720072869717434122201916015740283343347979877118372401377496756994915772609934201957219010868750423326809996945886406542294980587314450393005546208343888249369283661904687558142582293501732106411491053527062382884862955469519610617156155192153590816588696646331731821375471920993790210026598647628898360719666500757281867852869633342933282025904512385732790581302421053881506350849840447814911749863579440291570543340311587854042728869966842484633758219121187780857195373710098293440363102120576002704080410476495257781083607982518895655987544969150980497805228011617478310147728571997606647934144293656140901030928899988624527887122450362298349562270580268165839722115006598108009298851417296860705824391104366801673991639521929605625405781305535271404083004292642996782839448057263154516734244428079001961727800719400515254168502039591930284701629881536187284962235807337399519424736591336692836092856972508097982988500518856813772343967291896820295032506699671064305825336077290147744096714376472966395394839106578009300881481253486066866947600431610449360790230645911482151869940999279547400188444072023391544552450593726821043289055687845494989213415872817154996876177969259629732305495747249804122622996454525417320578931959967983788124102459213311302544084708812249401378127416028703648790794506495260418569931056474436183433628377057169480210091083877468104940072355144471313738228011072155470922169457634679111411942846978989974782261886855008098653648560250683933270486085783060484861585024762454509655020981128512791916838842064306903237567735693592846914618493837849269643630865961184337519893092025007272775027493091157935613883350927841636218932376405552862410546362740039886013772363386832940288954052375088303637637026545535089186572085258703938241471460115376247975487502186386888031247593473714324063361787487580622166531211824629535830105873723534855522233022936624097805637210315000601964434760627690182491558489785833494313050230416701673057570852912787199439868191082232262190732464806689659794114397539869129419051402835799794842351248041926149372274813588897473024230559579717477696593591802810523552030817117362789966199915212221956986869268881555162649146951854787600127215349519118019628173297435954340330404276570504817604247438042896770696441595992680783700741375491195251272549240298320544127315086183999017658298576195784649043028876737732101172703804720827269602368972517877568507423482463031687284601560977566026201339623025318632902052526291531584194978705025236392076164253948986528811203726204203903045999088408194799571412523701017465200858986038126200875195194540636240141378162202971898658456858749023351049529024384136399008950910394810757260334848116582089786941063464427995318046293302944063690688136541003088738702163069345495973861326994113291639611201562472241477104013814353031274455669902495531474173363793939639497429876789097308974463252851874664968350083885463567567202419446312660686696006719260121100784718056165748314190355383371982286953238681215667248759509716019612257259609179982575849543522070164310883354337397700430976831144339666160035874625409403545266530276800804900359417453128214259254852729837860200122348494796564070584993012106067709539340751785492831538068509720707135306193643627601128043971012511387789538993274483375837135860346584280037388074072920913821868909862718078072092718739522576880888016569691590247363546723506314095596083630030684173307237788283360376554211176514210199113930735618108277456270590844156058137265692930278112821247252217699236172359481735145290209555068154374983194859753944577367838999425911208791225748539621366077216732994470917209190907081169949077734156310280805379043952489433056308037435039111921639059600832884175645262354692280330660549885259077058959544607665243477914162985885607033426430830981089643946712357467073306967222002577143747447292025010550741302520471593645184616753901718120883048030202101374192184506627014019209600398760788421394233832813827566857415076796585357143779272967750012568360390902635373145650486296366971105543284329522940717312260748871781586416428660854674622786551093431196824739411620751771380803790657462128969076794902204945067918863482143843401406314488636039795759389585805235934330616483686720851120422291693017663263840409486462290445013992606455262383886473092003529288871318939929239425936609960291482379951189064266857574089505312091698601952210515683952532009449029480347581706723126677373482564109848982890545638700603632310879683436612905279668044840271260113947453819245751929956623546042388443191506387338526063610766167612553844175882107693201731943396033269009717999679304403341677524399233084723984945233818360872881561344641994290506204841114237173275447018416657751970514089675860377126342801043858292361485577707870382233124199371970914933538841831834741445960778177564789932851069539165467820218613646963161523375205267449812266362870283691588215708080592827984224461589305449070307836067393116573212286511023900112401279624606004490085084746894056060881876414127087910070853872223646388077721799758767317062939249655966156919133673019105618762247387849192293066490299874015053566200726731757201604559888053095247406552373997509216348975531848419151170477014119282886405487766024531521006217535726675015543546470582279238500177117840229310714147138016717895909386122811762928926562688470964521376240330287127711431227720817731006328665681676752914317194505299603087781077844037282571954813520167160014306412304488956960822442067773073207289054834666765810409775315319997132941968047515432736709728526049650150764510131739831105881509259176429336360697150520630678872833950063892857114389824507303398880296140469463862554336047244007001452976307559983877747594585477660299626424466404361386581758211568617665893558310183283989135934038903634178321860676012388778700132911172947164192444455394369561191817983824682958772078796209780267862275129715697934296158797923146655606125472366813751335176814340308162583573417206751925489770234994899424256891549643302598551260857224871537920339937715141963735951575564748888406847233707703849708899609596784688621384471123233470975646220023713400911687038821178698563333892216639386680126407220696035001035974137472410703129096711161307536391974498653873380271447897825639965541683688270643593539952695529465575341723424198198041595542257091085833126532959322013035660597858047123231335691623860870169545739530308065100572531211341624794361301965232814546508655723330265353653371982790314262461461723193036840560830447578269250278929160286292882785461798383011561938844488033226121112134124730483840487464675148557041664506157047861422288070580395463217881621479025351814280856778226855800160698874108058680132588273991285497811620088639570737017740579090076896171220403660583021142407521316360896438161473470065973727136026539912900926018794024649641946716059395114333824205863450020690893719975741229076367790763246014241408255861078222860959447725901845412345350861060417500213634109558447935880034101061531390239594259304030187476883491924058898813178062316074586635247581465210658990532046861631248018857710680770426092402733781641503674533370833524673922562262262434697642781867474295049032644288238033916904908342796984613030448006827266472476767872632617938342656954950814556163785059457851595994035143875412517383859768317759642187859849561835440130196108807235089544367788699798765230946598950802782844707230592013744432150676170790172256511266056630181149890022518566286467724851783611750903489955017735611962763077921368874816129543942894366430550395045235456224661174629698711151155912064350065041192418840377745215356240507936155207922540299504493091145245095393702947954325779628785185886048626439052792930810482587317632931770151832674426168909845159547682228860607648639306378098468375152313744975693170460305446353759867061380133939316543830073516998045821498910799206181395468942187066310868807683878192806222638496541210377194293949104913419234148948741463341712300230638073178708762723313258475172361412287888159970686763625200480974820796827453524235322478100818747562388774017327548701170718042990434414767264426816097139608368661997472635417436582282247633219764855408254945802835178912466372363153342298281823881980038643792751233274860049856355450879231498563277976377311417357755495144186754682694047930988390837215035310530262573085995835237971783137117597588049607314077605457402716172097911755838178793365562639703971812372592148619620375991890009229999085318445867680143727799649597169440673937522100739021466403441881371598944090572946886241196282057881708986097181357135763190216853471341609124661572578476100382351946229289170537693084519847563829701968496930875343900341538260368375707014544960879797915168362798319846468089814623568405268028674205150424341476658527932873383330222853860569261475332490195653015878178125713066547782983286116763947090664839798959746973243937848039537546490348324451178028116467629491048298133409924316483313713211004357837417204813915463301981197143985311317708601983310809059198763280497530347417454303400381284236148323135040329240985107690227249879519892891955687393578623685837275526701234838944782725892419593047995730130408583779711755223095552692554363695769933665711677899416673812315243527383250609387992367234963668029930315797669073333204202674877702362845508625092985681002050000519961149178785797752646539171059061172290424217815302599296699679562864445261725923479861738210373453975654556325945453440747713330568137579662375825129104798924813112153747590889814126925352090512698413424249268425282196407721608266278070988852177576032678597477181429094336395455794651857339964253344301339432740910934861893761504523743359163116214233623196127157714787478628482027082827393857537799902668078381368927914790765601318225435730092613325752583122263100309008087088627450628965496613377890676246598096776605545637189805428249159974672026127612541926635259367588270583232155634149004387453796768111145170855166628402898265967179617556417699508573879898704728027364190971409970223648261555147466526991599054474080421498824373622432296120518501014180596654868210712648383312311651670035477163873219069911307029641425640809093003857423674673416215895463118235575531827304105886134658860745003282308747746781188694281793485233938493213628958039181842946741451366961060489337058781041188807417357602551771370539188394638552406614788606332561929222697558429233012417672807345035478462611721454157272816537017754414126502204558695680913733664331955890636611270237900203495138445367109717516925674341670669588687584391524170598009490302162862094242038955486613084450230294615117038786951925036156136228170275590553001256173648249393307707970853488560448816258978347842024429250537216750490746430232183818164909169674966967241934221538574927997277502487776736338245120194891449902856949932489964919974069731147631465189949714510532967968981962898565272126876798088264320055180908174724085475509956657527715477397599789668455018184364524472798037190374938121295728025824910736319131034341991388885362324687261694587134558664493360311547592586398975952260044738709526740330738720981532311654609347065224490170801856824499177365645230237356033409280471227560464551983133072818468670588113419102927505617790177194742818447986742522001543215284818968103870821096422535792805204354649734699611794520237123903739226238290257943524829859031769825780501075911356714721220371625972478719571077064302410551910598244354613845828610785090627965203951101120138254997288810219217281851035646412020978090361315722190504003577502800497997184060640227483698404725680478491887546212269904738604902412351702615393876705950770423119551503171228470964682941728220621574038198923762925818777666492240532261485722337296145830466562326107388966445054695271367547050285988683330512444365951880638106124357930577755199886527775418300472632038360497143069310598587145809524783976679307860597373673613455542407378264893006970865278238846370960963369339433520827067620242865749595401572086920401116259663108609707665342380591596085413366386108833625898332068638081544041340061167135704735864936766769037403902319897390511772917628720825671261375198260986711909209315763972952790176324129289627703861038249829951927571867215523656984955270841967377304892759230507223687506227906789618529274320864917738979654777836927979248113568137788657797102188930234045938450002231373553988682697150885596356573237297613094783905519193569291777033660686152007165982585691124399564577190011991388792519671174541494035676234150077790665454168538652179342966015432436237476310110989559015355153964893717728672687909031331626090378214940846417628112379235738542834048148764059166143488987920812827401944599443663522262435281520044371790201623573018097444255993868105326179469552393071522169913029579629230258229872440897760304470725728988731433738694308335578132789986792531446620295410202520061506529151742755347325262529015924865766763961968010007546672719622965993624423027788978021091946775648876540488044061724654666562289598712981704396669474215758191170635536358547265986564860635602140000920740622683490171599468733988908477114993818359335993023165597676616029494938802546030663860042817784906370919236056312952087548453465632284889883558421488042475853436241727047412851006566168081055745704474031032347652602093151197983880739076662782720161812816812433743749692520736236897777131673747779311932968133184670962851034639785783913061159909699732182060482601268597226134160684547522222361857526249166241090439680437726646571904391834450122244110062229848995929773336814421751555123758899454830064289780496966001106519491547293877942870466515508776193240026687993757064618457992927366872731285582838316496087191900238089881160285710076784206918154432400477932771756772811492665082958790758973843450741240057298387272176538340819034276060784524180232078873106234957391437318695653718773601879875675069845081061340292204045001576074784324022865716735494613464132511917105245316758715296921685208994104723862368274992006558538967310629376225864764351324702683729875811660356864538037580013094193126817503549600935368615200688499270942606408053619544134241349833832934942037011610950458567037129158181162864553889244438667061189783718852275262668191464317851898110343785300887221619207705500761795577307827860015289295844659160729568731165946234901666003965336124924299701206795506780556505003261397767121836256919657199662020021035314593945177945690106045994590275421674284947263063436981188862497928995206632313894324753377215197625801185914321144966837871520526588735766726308736852098312459379811310766565953766126872953700976583442112872970506781982253909350523879088545201986917601646533095195240022245777401169011639516845512088020563467589565576260308325227981813308638927077488243463073971121055274716130356951828133992488256360899094850540144431641644806258449247460502957069667200785746581730640482582627202972726412112494340634535306265346725016974047504670939637464539819130886930323304584328890851955444589944339509985160389216234298805442357007171034442323762042953996073428658108677214027696643634726557396136182400671398706503391325396515928214741908268542596856002354149944887353948202968524726098381685719257316508407356164930413624433372820298463410708837535711542359717847337710915258850656876917156828959325001383981585314117637371095351545053759015795196244484725666237243459076811207352535327513833743128314980202682399504621867857963746734268564988372446315699538021802900305090779221158356289728286102392928562576637334512224565066538575173814975952206568704691332544448191982040264129308629402448369183020669573625266477703345197864550052535057405740245630601508918031732907803315573731956418948136229836820750923171530971835122826761039499429752596015178479629020309248266094294087515071791420853796461599853429687690784672555153706237230835310916109698076700919908433271071621507351749300941718694007629953404016713008157551037868101774152777498034455237909233557984684162111722235601045791124534376216656797009851253916322209755278055373380405047174260511318887810102855530648901978957517825801265687858695066601977354729746656523077599530384210822762157974389175493202676675495099645157430927420055063181065937426601630134567502448512724102233312329322420499707992686035028968044409506041098946975300997605800683723226080664734583011066598624756071309591380736312915472660828906643031079258718840770540806096605190636840685729933435685671378737680155239639493964266812059997047066089663570684139347188136002865868260103326972359909499138821667734471778074185584918976937797914253586039005066964593602713061119848797579305323207945275463645477066874569812502974264194601580302659474144943022066437664235130269637250217222741957716697355051402812604439057252906285592173863093151682133593178168460177533588437145999578178176815591845579008175440105426639084357674011927861817945419145396211240716253920736648604333802116216060117957143467855429746731830943406229078817584114699442643662398876068024903460299874869246232148593267196027901552116048409152083064473095286847327576068447610171452545495900514156752998685049771560442800191732200341635218615663501670867785858186357003489813163396938006579116549141670006384391234122076431824358333833537237667967184611968428258976730672685989527281764613179498313850000953764613585781786906679762667035154117460697685091117337455577465576102954454077037399104163210580404229149609046807344041254223845204028138950848350176755659667072731331735115304096495151149552838484939337926453604944235038893525108328499652128830766454253356830283411064120355509646053216987027840077809535826943251285460249938949326095102874614793706277944760850754598879824894912580379705366416488212340788154993408726101902308243221730077474232964773317253742196364531544654233913805717027385111720184386236904822655213238234758744100554194321540464621329754426045921568936216400273793025620994720442084586716517149819234174460421500228298031697292983985450388858375152394532071470691802742735724201617201432139277458498367168048781110719613273966260783500974948599082379330331373929668570812667666572226299620517426852507361907970252840597731900465504287314716720078037565603142021365262720654277465527638816739537140368605572763063028096536157010318882992352987179815831533232170603945116469971180090204905344548108222785733221936911110661046098585729640593052062994802724076847613509862823949732839294503151705983764253541661516123195282899166495870492685042387366770276897260520200188923561398833404721825303433377106934547317832680134697913460354694657816856302737225136573157206050683865986684155165812705431231028427241556733681181152347756200930902043542586211553791062140546837447532174647524933171960758563878771119094096225007561676608272011865999981641361981514031760211601449528498385004431616060901533900682271375411050531457448173473383827097385335390065867484160737998319525427152336281808176935620744281844953209480831923071860246624351941603080932534472612124833057664951927100962055463740068610771021339968691725216530694901327866900329451754060700306803453480963147336637554278537937527335236487862436288095167578731302374632166116302717535966938404427564772248214209057873013759147749116096533633652404867466509169315067723939283470824506453450639927457953940647477009371763240723617055216221763100933808597356814488730922308145719123721605654415852712788118659291540658010466989261039656499433533310117687477525090190205097738382191952680157440586837284369548527819245195950641979972474030858464963487076629137366950119985470879590844859820319576191306671681753404651521687239732298698936761597384768705218427274091986361046408949158546279757844246391777505601244361172625060548113364226914234041947188165060261361026926643334971561137383058828612132535565955573715225082504331678801924343457640380815935523886614974917770101350807757172441750710287380616953082151675217868412710583741745363334295753601407535549771077874085521654811154684259828180342646912008074709930386502021066492532592317426024709456297411998391836378330356337005543831682576959000065423603450742355227827046273842180543748124732036269197291142119758057406681307134660004559386079616012616142577694456471734902167952972355356367712125928044622089465499856676290141467914495996364508207410427369827800693012802618891715415952789735262724323517333363584417473234289399818782908284925596893262961738016082744142111574940922999918985003066669574014808668283942260121652920465822287929587501854156615830372567728216496631117393903047555037565365615217075674223564546190730884850083636361371601984496422689920453044039352007046285036090474879862399063411875102933503219163923078861326415099690755671469702419187675559345292297329557167059873624588812013871586314329399498457233474162215831446544788840661214525990346165122964911101109289043139652935066033600161434491230024396256333569544992194634480950094604684901669645165575336143619757552044154138232865829504612658847279561949220624736004611318719170552547352788695591467733649938808953905468457533403343450441820152195121230523291097727745645457577461218382893246898556955844282800701987753617335318056697282364989181860477914625829862610046711447485445193749275828804126790017827046529218183251169729675614117301887894083425051804231270284952985349232781687320949155291388491257461782941104568528887544047511564151527504637185008581510503764675857077729175836369791836660438520499684427297917992937173209539487179355846006738624541973380671247014392634881768120387001900431324241298464213276053034162597334680271336562577452098122148390936137215928478135910777508434727244725374849486206687729806196984012529311132937897875040517541671186092397572059095772270028873220510465581006814308096047326943650044098392126516113779828891291694950310662759838966669452686724022016613514013520924647297377238311200491345998448417604985330420885233851920661068837518484378233561929384322896980540442679086818823746813774188206559619789839328500974648980172474083079170308158639054020351603109762226117178875815271578018014325351526021948255859274437394539573376459204904691990556517785951487393688103768992062584625006117097395259358466067503032965955704524805788844465265342854753017490029170485617587968470570239480134414585213173307025528709679370315655327500176621330812874331067143524624687132355215296261995128708385275150095461371788878357924223760925348711214932911248480282937062003451477689736878235656268225045527402108954589262313756903207621498408174891132311276582672192349045518480373681218849775052761260680709897318316632128415065274058179424223702650090970730795838702560154333016344842143414075426615399037432884004078058254051844360820697252496940135946816964200643214289611771383264325564916610240438163731424486423604630665890379102602451550559003138109933618740018971542668175680406671126206328188333193737865673980863532486474661844250745629783411939647618015693074698049558893879275157392856580825487512954901273932692526170462730413927688110102834555092801922750949187621021398506035402634972112336661233000836517893435184698253587810921695039561626992088099918066134278272924210190563141673462734486702722592944655921117691983187678804646460772151565521843229874978892249646312771355983530433097485165504877683966015103596735691311984678132024482319711562460142581819549927718548562553829765258754672712940771968746354757913907553562962944990311854334634922929273634663192682197719879819217070515828270879586137263020481821265036293422653060794343566128853949911197733309786799452153062056042733205088865651137397346403027350519390512225205184213771560084813950680127364864772245082009973771586657046930552210236434270960587130007010570085381853839231115923349389344959677639819046197478180254927962416085285639566221860889593372760787437063536677047664450261284798998434719686937079088698339736098869055309154405764619035235706277328052462569625437137699033458666813748533284472249341069232241045101173136033114324698790202460182971388470068796707217179131295393604719835720630649863161555986415862004545623734151942750308147954174305400104562337083204261067059272145478644254741365485426975989368268276167488612512303261550239225326079981398834723731257238819043539717292380283961652812861142709604402378463521258469322412210423419302408578051640922718718974975178917753656414695144752074739016034932660668386662429300515486027403714078168842937826684665983254563464785074593379075126235121347832290529322411788671529080092315301838707469410090609023839503034917938329029970319306474342894717691207724322901460874645794199355065357098887822572967017534417269048496349895569182079969181028123605729947213902437358194431974560806073712124904735443991744440729078999350607273580794656030254031316557726045875265788647198453769743739053381339713335449174608179976968134078450379057719212568292286369507599357523077562491733860351380283965283016667483895906364198678609876630122333061974173255231533292332278968291091399249984794537548299419378452692847965903016467321903459503228405435837614454803712214638923138417787649099988217712912111784073737090192166430329804834832763070722669743134674178938310517538061764672615382261570411392560481205543850233373766127773535852930024902124268655629469032819662888277073293496357420080920490273954983931173678889735654255155642669930774320085821918649382610665406609571225494657361983974771751750794189317446331860188831498986321997490606760532956736954581046312613319626520714176340279994114924075567563487253943601593257857024009906156307979195631058624973330654524753696355766849618582590268573996259692796476937270162690319301516995183937357964983069712461316968095869498950598002801301018941734906456865394761783972044308455952546238274053176982299739526347670530319047234165201961218558517625306097728641631901196809676871361381105338175258725057207909723967033397075357797246269784568653179227975666312828883677733853444899793987448638262065575975108816360311841490837361553978248660457629428572295600152617191814297818047118690292628583112533866229706668631495795485931920987006023368408096975629936523001713355857354367791592915890993993376135132555566612683467016716742410848387631125551233006332096889507759736697652195498393026967251959152661179007238766780715568314466552615062222839279598085001265804875943347966921913989719039688679050016768275745090536615041010928606803265884504687351360894455815822385840143566486653606399417435578095094244382099179965226472371222745330904356793401561671502720990487477846519175218907556635620429539464834166249684561813393312207158704806004460228404850666088423626399455046058838819038171310911112855783756575762437345257754437538137287617247541078746597036461409698451606235277192135207071303791904608198039763490498305780779598844714182514053813575157196253979494521201650891414053843412541164472078338559069302531728092654460169713595592308661013864388852742039695483504046486152987018379161431806851150274894820098168006028986755695012905939111301287250536243806584156341246438719375569057027873646356879506158998289671278128759036683593271106061759040544201157579201679607181918819036171016618895456765270223839150828165058909867271603738758684844534338497019844724463750477028509059634831669128508686502151059158639015614654030700723704067742849919954334835018355787395683464993734929056970456122182238281518416700696924915355113547735373990383644608935667917212976892530346106294502450734811313790794783075588974831428415088535745682883682368432708967786878234730630910552663358490312822098642211322905931162988568735004033237171748163938743272975172856946784011760027725460024761295569575628378125264576026282053849355183256635539702528090434498134567744859206985704176235128862259341257252091036183434832251234790642547247337238339588975281041924851919301263502747771368581964142325651258740731019364780510344962795287481118212373021177498263039694199418565943412381770425166492713268187833099642584758406732071123167631369267499787460058322474007012445328409654985015315960036091153284397921582137259798337162653339768314797893215214299500451429174028789426597505655930759350754065655907771628884846681929404682377514146395187301581928667881760473652430663792935109729256054557740564402434848837726635977223714847235979252371237711356096717123368874953744145716193780510238141675007412302882488193234434572509027860824311823383582064245363377777788518147276965287269407149376371522033633658604301041160360547242001568682270534181142911428599671263745523666743685803239742041568510276324616261422440144893961837876997098939116172897315572151149717827766906749256714031144868477252631819038184829357626064039818665133792935497217775818867547702872846505809461062756473055540323082354374859170409829906817933836394157226464121371106839456611910614474255745216334696641910474500702605979376462945053992487296841617735475518720487076825966250005183144101430368955436404069461600820391299938496081086693241754771276116230558362472296730560499220743573229806610867109396456559924362453000499773213219614355349789239146380472023353572279908857849007532610133732050265854624715308731925757921043546344404150740691065309738179337268082143628901938584470447517172566603991808177044652777143575161445400777486335786555293671382027984225629423180036531228424123979827811223081452686654407428481460020596870242536617859374974707436732653808741385685131408072324546303166840617308732755662516815871777812660751271366225316915411933554314841128680736515403961891700369787193297553170396967892736793060896636584092293990348397474424934875552998193947308527395798430496363476965850016501780333187331951995354671631391228740704212808154649100053826355679207773702989542931124294417109822559977036743516305294206500292177468485207663408711760384116412022430982129996283925422268318170741747801791263788667825507731119488526838124639023888548688692529866388910275382187158287864003406390355003597277621711145095316360805583513978894750262839485751838674035888715618756902729722818996372077794913315555291677434073154070015182936320293842027393574466828910225185440051231248826581362688253713927177348521000001280866015800616157760371801014968728996592148240912157755419869069540425292143669773971265023319077507399850757661536168080909457400580155991749697443406272338328598767762131026988729028263540742794840608472603179162437943694399722716161908591843863218787390612439006422905935013458459984883696598202477773639387792821599607378604645454667805648677546204240213681417280157234923828751489416360859811547360563363503790965676907781423874755515696177544090246072305853919372388788705315926573374201461551983774687520446855259597978430129288779667806167905446874485238854863121724963711887052455926578710159023275503063149224349707426152674167214724929000955150236278006576159117293577584612895534245754526330418980219672463523463288401779541492286069322940493252492390740016713294703358251414071248241732347048641727574656812821929308928847683965059976122018898133383408393691683210785288889765862268481554372266878660900745293539792148736413244473483162352387305561367297500420443624308610321974345166941406479161226093202671223240613196296789136920649951276427787017084761724479154518983033060237207388080588844494993163667568043448975916334050176482554955971359636978783062755936690358529646719634485986501126867448720219543084485124006628364014258397608611475479686981218773426506824501634680279878559957315355055091856970650364841882939451030926974049662311550645253404216302245688328968719725495830513430156932008221285697195389766628689346361144567708545552465424430670483290305746026025152359744130766218534150707137845547573782179855185503498337790161109388608555210254953349473744586847439573539243241550486051948949887853458897951106884400772224123345143793308222171301200196990066918766177651826564439057641103198895293176600414819968295340823936436111912252029927311502170252646042905519491158838654211412121251471562456680346275192096124791637165590753273813111976003126892103304777781573915313994001488414096819631137443295305323648260257128791359611065370306500987175127215199379547085486326494746518098490259187604629813608012471367169229765411697986600274479299154237130028304886592750526066230213012548660769881431074203109638706024411791261627075466541770267481473390665585849256199730527739734555246585659653206454856973319508903584734175863781777305837848617234059219695574272526504511038839262529307236863197348957640693620338939531322383402687246707956562276892448380169225173880512472597380030710450211397719471444421038482724204630478891414216005115477339065092370839811957606105015338061293517388924307876232190441650606044288162546069901704526675744053544514157493629304981081796321494331953579130339263878179156141671413198671620139897168387359231481907841922237982606939565891620146853005032815411159926160233725278286506055919538822492553997803817377063635313378036808931128717108358260032741529225715834662642506342046713555244570484433163852596616286147232690105823241557154941053008319433708875346487649504251347031079593557662418597337941529591060431935511082456328907623749543581991213356972439933070030354435066690954970257949649983296742247673742106898625555885866510514840474867322205119318820465664100070953865047241547030917399186218265535554722369970112739984508174069709012271277892443692647269147522022469087440066914762474117136968147558136645360706921907225042742477323626800481602444826314198183771494992839184701205777169131175660369689197844710403931519354903703955686627065395875784197218988687628142211515042471898081605121427269871860834401490439385021799567829789940639157093962144296989186497159649754062571843656187413977087809945821153317952163123279289638146524609428999878188966648371683592196787977554047337907070908914087760274582538200075741773859421885776899469258702681889859581128696859377034937427741379289671586671659749659596892317721853204942580053724589791757410773586404986632467244850847505183690598418590829501919930203270048599729843857600600337461585905453847094850050690799810927788567656900198647493446859652738819324424044855364229571580399802772111956520052124879329651741207386614304013184924448016805007663679316316691968039215562848205337518628361986493062932511646562866031763995845592611741573285319757291953581661091876169792411512557988121605599429655046131925430866957764831629028291348652215168653392736223182137750051238155882675308192858263541467748551337640945536987993611422087740935249294744109801868100370081688249152261384171822673355894954413776503142704570884197385439057866643909831907479570296149560582302088270609536197495713202303162635336778243063373741210689692218627497146501902669574891362699815922815534909901264033802789606670702993432854503299106100180430894592698782461855243772662037998170754607862470709724345643911641970596816576824943003288414522511396209274010759567788500034940446100722146562174678454553891883519403832562076212729006864473425303955164934293028923480849697306244770237236032149452164419199786776639920716580854364952752277696052451351536862781170380456738736142013131346001464017030873073880556169866906897503184526971886826394925869053245477866900713630588238680940406028061957109951655307516816290353095342659817892460521801319749000105663449635644030974316849543202126204074558159905992975676046615242884163724564918605745545109566384405141631766294227758890724911708546750037128734530204943155601359533460132288958405227925980540419914823035610857571755337770637635047471495644739612786814048456230772168095448946906682382229054823066129147159172817583317480593930350996485076453222356185410874249900010352291665171138768933686468549715117269067746361076786751127543502267727229587913803244859791295817881091415675277251657254357764224679231628990260815783740079772842364848256572189494884956059242745791764303008236667779349608559306143589607640275417589049879950229262799179063273685957637538655621536329035923182269316697195316569912905948308210659353616292745784503114270831780112807958227186314489494694924160880729266992614073118297224776577113292519020831667844438349824248046094365657627059381750239624498666583895271053389736310073010464861558734404038893590355561303533875622744957233774545343750118446314677446812956846107910321665025640905801567694434075125326411057832506987895049356764682218848252932087571696533247663000397850417817548258886728449939766016049093888796468536991809692603109044910814068590229981341472951211203795268833910641632977564050027700904850095771430674280900258542233643807636970032870660950387001522655109566773113468841482566231450489675460851268104632593675453674184960711774728668242646643793470489405089421375499531403091284760638312152263719402169409358954096752096868043354143345264005573228755506359572963295575761874107628508845481452945229044574445556031033252096921023200033448339221762682594655495035587177453560313288827163339326909329740217806610391555727957111999942617780592316994607228298650198829934555483909386122148210767677062282273559571371577426893381622382638017542055945896119440505223713569118577613455708196435732371797999680330548068707521797601478643799003419285774236976448537394712077694509262821724589852474102301532958483276203293883572478037785220010645857764762843836975535528498523002119021580029167320566241635082742108402569739980471250587612088056001783660479935509488052375250264367277710667605089513489602450610910945157170975287192025207086570896340309380542797461827573616962242409535457035395736356175151534855481885787634613701927490831667214161718379062320368861857945575336996206424535943982093752990440732930470256043370646934046126008693141775221994031153090072648433106629682913445130710774885985516698800951326580468995580380264326839275944406520780471536564825495618544065129382353552865083928581617204319846615534529420414359214578147309028261810474863817208029902952854822006771726801700894085095461249237439941117033979330270839262016909621678629510535881011563031513855070411645960953660224310254459476554814840830178188319725005384555849912806483334576619136918892092354417124372913853207053051794004108136493229089231360295022528508849674931139654854216001380062500431324418136404726770064031602967487449172474765807557531050562372341869064461673774847301767691257779943769069592244898502740272946525814992080024366871303538337017674328271576994000281426340766085951578422490826923186577765801434833759344083985273085591723751095166141580819215613708176908654481462552186351186309622680690679953714351632785216594354123347123675023463666679703865573013623600973214210336231349847154017783751646351973493221145417101326928269480190487438945963665081675067790696124914763099631352454329817524070968147192441416198000076781298289369701997858691499750522065039913337030645911802288651366355384169551062011388982311488068040243510693784942045910151583440466646797816043717997284820660142274410233949992803517404201087349892748728177002669201384492805648946733216963562285005394970930937075298291858157764860682353081980981576636893082148246551915350682792997732467669020254327496091025026267816959213771946083906173862585551873403424117373628272586628837641954498720311660460468436068190123665462606154516040667727105578155591549858181315713347959962306110055455824641779293620136309958246886856989432533326398079717275792800632856122662165729145713008869243606538700787343419105627343237054054593879822493977847799897903360595486003961878322414320351257469194593007797352074659780232324674058982090194886725759970751816627520991929982313164495690269009509976209517534274146121675998501333201424303452160828604740129346381247792882534872026330653780006856673627409687089962124559224225510387631185240158356189792999263762646796196352469083863862264929273561588193214929349544679535699742894160748293559336907702318449429607143861595627879929314693326453133174281491243441029257639264571635715180156928089927670057947508220557002471826584353690895927195263587418354510351582858057770301943162406699275418084985721846073964989049373931151699230217540254100780823213219285706332776572564374357803499165098657134903713759206244237540684632170354723359344297559371292837921046833664078933056561039029814095327132812992430952109889135250442019643620615529315922158692979928206619325317210244940677551342764805473083979646611281346303866012352555942179051608421817512343675329969762780668561165401568078619005485198845410833360366975309920227690395268859589612013748714415716430386680728101063039245436499872789276887754573628432372230565550971279924562622510949983679237491051514005495450607021631942053497991181174331153821694297512035398820883429522377174590637928971868735857581624959330335681719963869804667274894323593252172912663148484510685413828135792566255102179465120307716050054168652163809328296192782836879422591645272752011741521671739750928987994176600933973317196024430319906925041201248785608063422534073540327900002049185542053329070647325231138552607653308987917574295718776508219068231548256808845550456585778909891911741421185825053137933971869346804511834293697789646771526195083708059876909530998351320996355853375844210047701193023439921405548583116080202812426100882032944496929564076113333551966837013037287989868995354179594806712091749059151166594492757386199863205752976270370626615543118860495943467920910035011499479378214116911391057539267348742430388580290309435554763690066145436968302755524172706084360131646676914911604328936145762432880920976535378857503194946945855283446314423953346757529900145155642916416385061668656555892655928767694127092755695085483671733598315213053326546818223743622209732254850839183314081925003813578165721025183291583199296117574767451478210228883932493252506522149959261514294957079354247557693801026701821921453422568434286968255581904718343145011381562643095816123355669824306365044499646235908166683426968174131001540394116282146333963700393758964417524272348467947038690318564997029948399012374328214655120036959060621801694159441557337910842776414209363634589900526177867706985105723219940918860034865558520478796517924600223250180526949102747014826804443479447343345036876662163811178531719654648353798356449746373880955482791788167102797045946956490439498711425468953260707625605613750494806762883403742072417523360478315721191586467394212106098044562012919291025604948078038783370584789579513141905595086161573730329355233257192821110031471984584080444126615697056635517421852693039228311736327126998169527708875238328234948054113199423852464222046848706308157843997352645303752707793706041876597194012175333739835028153396907878913387336886868534566469794051563249747246440315623094025564604911071548089047454974580145266234932984734450394729846276960772730568954639566742315248787801824514272445755047405264600988022507258163530218918137105669658641873338171391164374996471323608712381058153428870158869440811798432386411695078164504837595426260284855731445976086470278887589493917037469091746064792507631342789503233030822287367039282524467425853982717800354215546913715780842446992516198042266703427327492093126346528833956085061484318647551257930290030724994918621373476060997920671083507311349068246878237287505353721007704672682219970724851390342310671223219190415711431954818458843562503614328461681332391134401099919223786405217195499006517445276263515125701012868303586733032739214239809269162441314582000375529281413578658684305891202215062880733474749297874485082644574114697253621138270935497660841949672657441799343550744993540225292448493800022367181572433057968454054686010335671038741203063334362183176491407612890611403089806107212954509890829991662769026804749284814636445531545945113761634818158404232598632346468944562605849479727415273714057019826321360495573075804630595521039816584497088848900340722415729428682949445553791494083675409581357098492361696028559194342490426453224233163488627671280583578688151310106773397197424016943341707777824034220780242852161501052435883495291401606876118002402429490586153216288722553739305204983926871831311506996463165344068209990315968424979447304883511808574520051219925222582475941593188288594908157181967554905740585820812162425787273600077724938634091925981220982945668727751905935090239772905467640689902086277154189109810559756676631406090723803337035056799821622803833245489445802347672196686550917935962058123699447780775181557697101333632956851683595704854170600775380951820242729820335150044161047516505758440585996119264986437061169530400940916772016451627625207407453425802615724474916527024970108187174423902705221854495088897636031487594535365245031378295912003588694669787265096264458176449813992421511779450945130563542279311038337413591998606920972251195936722183833791613995025381979873913332775539678353049570810145591225181518679280477367464255564428843172427759492886821658152607696017087984020478759784837476622848523009901286533516590680561192035319549512952872724077337470731392546767139073811663788765181994613409308571461821405056969903141477023580798890711262486276564405304959336529196705330589697434083287046752777413633594031958044172312451232125843598767306602103201614904996864055207594795617189398845398553014459570444523306179422413953469898432924379160920856059842231489166811371557442381630363177414546308283408130144274373373355679855016038324994411599167894292976253297767836566272118006998525343232727759008869728559878122414564857739040573926661064577314109171590935461630769378598935815823304681913251385334755316932798609797882825298019844986510226991018882485927250356595796375427266101235294605846384434772503945372491818475797240833438004305018769205705276210693721510330013997233454021308759948671416672735020879664764886300186074292532776100929652649756769479192539773626926135260653576029055787942750878584963154027818523275082658926597861363535977460236298019477185691459645732031426448144648578597004304696225188995886375324731729815137665495071846229384715141093194704072253527555361905671963518755918609262282601812634319342804457001436433491192329908011631510386256335850662582283806014781856454397333871375818979182371095026832363196313163277371088274995234445545710230987135838867991373073725409288394466830264701287136060675480785307283641139511095149907860448326664743586901561784036657371177605875159931691665033791130793257822605009124527567260707143485222198135073561037710953099061292114348537296432897857639595678782339589372995993663330560214082645876052313850136304592508543653405825418997821300199921925401465553439923387958999578377109543396864123051186395659078385917170228460645438534979861734732519793909715125105628212386904891680472484110700665059162734778020548705800780273779192039407797707519678468196829659429828313802794556792864040878475194195862555282962247433085641030082489542887807948053483582174460206889182054793840944504234678090072313926054041027438356305166193376159399946810492304849976788539823520691865720848724023769636743772129520724659500598051742986973580363384680882673501883975721215865153608570493614859478890872040524065206695129019068306062745367100069283736535688151619553293062769997204514658179321640975826174388840883126193135304783347648236527931636310772640089622495743680626406102989088619034500860240350021576639102734206804584975906556356339422049093735132708578145202804580881507194119514061216400096258555950639845373916566931147432143022541027318869124448547166224954281659066629508414995395965604341187188256197871146258504239404410515262690056969729626618083022262075468971357529800540540985398345271487277957157180248081237959960153493533727113579171045525633505245346508993929441261498476130059477981086364770785085949869992959708567474235204908189788488581589292678287006989990364404703145493754924540969475091499111665581946831709756586444239806054963817099370735021881729710650164094525936707670803893249493649340565152914555248815004301153273333129100478982941708581842196203508859832205933986501906209033587198450297547898679664762234000460218408943155082441496130564191915907536853370573206467194753457059512096551833618524554564396095803592502405739162038282179002818934499963373347826247646321277109126355016563248028040605449356542522439362925283750039723115841659249797891505682462200698455146916914773415335547025535264491964709656857119552184901166655089225324415459865135178388011773253990598968846359436204238081869282918599307941854621390924199531399751808601549741351562356698612631102807325901499482316926921568395260820093187206431633347679983770482344145810001381547958512795777170425096124454329896499283743021619343614925327231244323033136124995998903059595924107494466922961481534242749354112601123436121707883159537973381139510946341823988057260560766186968951251685613238832518127088918018649468039383938463201426877283568648731983533155870578369151063586163122405605590381698869223334507803736869188127896046042471840344366627950638001534996347532684963030052762059374162600302579913420146892437043767331285755378091127090198069096642299362221898542408230377667498070240633508379609800545391264061830985615688656735323837387628752249254159533242669526574925208533845707840149091994032876564876814035145628049530437723576613076115348155550828444419558544817143606235582287608201348480476768661188479950703652006480786699712655041701241848258662866533352124734576338984621154779008275206222549409809924201234746283607042142643146915754054910130507371859308386633682921076303793632507937762641400852127431701111478758689492867412269047487631478273159632914028827308076502236878587610239998045519359134018001279785094214068427969596360332672798731674506981749421134361965318430167344635475494354018262786459226240619302495860326108752655763215684615575110519828826730394058380294309267016461402314321927988427401327345425793880691151393196429542508503470921434657111542835389210575116253441752578215456292483418205724025972411538686793675054971064739956094399045309056170601885860455118954866991522159952522829477673938446924483544726561483496393319238578795795951969996608836676435983492366137848492580957859992745712047469253169101651555388398619928164506214774207012493337757153876108981886658869275425771497278410580030011918292934808881249145518326751894673305936996911909950677331921183556327871274397707717079614530475180824187092613490348298272734174987199357969241334985321155148091033531902672640077756285482598937917284436661540666456485777898815131753317396764785496418901817686825133058129896574222989766404412013520496676009758651755119695999392034473830070245464992071395559221227491705478225225686148716179451177633195423168745621490673550990150383848265420168662861362285808615233354980280332462554243276715775779720595452792126199418553822164728753294019784031591414495532811922594886514315780351581859031932751269469727789415312390003563583077336984000430272228976040345667448611981151648266270908048796753735527137686604765642910233986266588307326663758545438791223697642916019467809554956268633884244059869619280093068111340963729948187281915463167929463633869241600470260111959488114834115828498013269230882894155520470657350703790043721775720053730830559685463761261476924952055727761220386770260158379471373361309760874693450585155634653772535568696397646184151926024880516544904257444547632601601618975557926246041648436490744032258505611986785648861110403896842407742861588109436332985971411967063008890709510899426552605864260869846164497064511038464456821692959288322840142393917678329008494099603435484533098537632142536884098520759909799730367822529610416420745974511860148905422693670713788653975206270941532325986327530371430298500066991099560871512622261247296471131970183194428707109348872988439616743728081962609164717601794756928593918969082721752371760853539256598357722620343654648749584569722731542574317504590890765749533699863143828939016065401500814651215747019332330566666174977180419682159452006090989384825742384902386812325938678839357453216083705828201818463186067065428631996855638074007414261514932632893669771051638076750366659324229177439276292980122098498362965875787111245497950923448149524342686635791384120071829909470569250778414250920445410803470798036507180343221377602974783226532449322580923357863858848339918450640237435525185042027130485885699634887372868667875697768011751769609527556416101988952951692143711020289008723173344693889259483334821778493387695756431869791730719262114429346002428887928035834715778594623980418142764864321979597669513642391676560125893615390223600235974630757842747356057322290712016777049017424256776625415338267371953576980602782083709482790447219538821851704408040736110234630473229745058057597338122232056793420150936896800106457601370074866576249655974361237830760608557215872428381675279944088517265464659968023004631271154793903662397563475290010544816706767596116597792263029867713543433026362534731290673887259779183345584370974772471085990669823907781016297505600533960353203758308878320451174904754629027250623565146454251436924376354695758466439159447757687857977333473926500588987793449635860142876467153050922543789925109791722202258091926531829659336129996127116866705935124199073875159688428314700909779592346864467058902519561819783130302427512905228642231532129452802591443193059150246214208350025086135503668111509913569181806381257035966356129432235385342995370244367137619981161702598688241592297527797200779539527117717903848901984145493668684441047335649767092226542716371788891226295930559277998472461963654248969997379438587285136161822353661585097648993470844442428611640617948249083902172152212157726823441354643955991297478505094695579115094770612506587418546404571336480292540744084670571231286447587177042237493110925470602032418321965212363092191939153713263595260194991876597336013069254036551067390178710759597283293040783293854442221622764276226585740789595474340867773204551114406419777091155230715428101332759220346957032995942499362462790695959421048477635121860809249456704044868528791032326256452086022157073709051934763421468759472729256326990039833211143261094200684046365353992204837096728361282888844806687973473325421196932893905843740030620256582749500630856637997438625291903692378850273641799223146721110923693232344633264214174349707549010977419195887843733984979223598776016302059094535467801611062787128559602366432849720494042893501693369306877703974882242790726316201748956023482128264198529628678604916308343378808315256898136866504067341232645557938873817093137569201029237569937546148217816618579320504108657890917757009022420907099769749329103505714305989562938213993035267618547612045503182404141434847121086160016098517327154070615414758515131637873248768156057336328425860407912330402997070309761234181157641040133427652042369012686803007221132309821150458344593005977853624590845907608459054160964634759636226489241995639388012479808559342836907593346306543881194616659511500759668336429293501441582678173379492794313906313658186446638026273968737521866069761684267768219107956779817439314550474840892965055008339057485222443666223744944259104486226817997732519238965355366780647396678535849306758448426452091532622010452152031767832071990944588363340047878841845031363106639228937185560777652107425804144674528237165305587674875582909805917444850895836147420010318576395103384144196210287359359230048747182224881361771178929090301483588708304491422487756184102399123940089066242765121048180337661716185003668494923953177244887260561157532293216815524567608962316037408997053729045396281075974995331437565443247180811977053139009465630007151840073679075065840152554948052587650035045498582035883434337421081474046601853526410219689810131688282315315699428979847532864410813214851476818079348728369142629558038484753023662237444278815510611155583258708272704881317877487227749282648731393056086743035266403025798122222823107738897118510141041784458032953034949594309536786757196951908481750694010368282073647096280666657563872314535410713766650190595482665104388202335002179394227463497939763319605329670839899776467349537416980878657501669770521715051442779264174687523033199660103040884893748464590212835179763467847230431321078285679629328871511350142840555038200996752619809408596851870253994426689816795575448429396345154066315085397187297071740505676312104426308346681229343951995465355284063970679905735979917942781831533522717026052027744481061896771169072308187150169730739699997811123347340370725642577758040748466916787222794321444943667481046472560674788997901551956264572587930765479969033914739491731099966363932227922734258745944093542019027318747357535532819361049499035882538387531237099043212531279196266380153741313875342745991804517601375727074707361729773370012355483605872527156790597231716987651285675016507152219013760211144298798699480586986453945679321680957431628675149000116589128298979176885285657855591548092859881712507829279850831601990040416395798921022630328991108442071122211710890572652857165641032607325018405567811667073436696881539884428659654178019579237230846114771016150826336277717698230385568666845569918706991148723232562571198307877413942296766820360123176883848292044693497925674995575241323155208132257947304017420466793543247221280960031125270430979681800788288449893453863365668628221205288650728568686567383273986922398689248880037704507203913139413800417688298911027064582139861849970078925270064753138444730475731142658922515976795430261574364429215365707555628102255573011043096245714174549420705482187852663417407084941843612472846250852348295027812877530950971774337419470747739067670322518394616208700954787702850239353425838300010073297498606418160956198332671196565757131788931055669732016148172816574008900476948811159493149270212432680827385939684518788747310632034306713567519921704821330428970380241616390306308966745193201831124051716497950404197453038582212723790075902405957475361661976117205595636902768324680016783515257620424301636944108018578458697283391942458403470349860179725513997912909528772675138500031466187506109185394246188388340925745474145460875486138049232288875132158118658255325446768720153104497738062529651726815417796153183083649925107812149457482638613337655688675676907885483499072366381069829596411889116535728065342105937707722831210531154562288150124594454875128589587066874816958443702989523149249790522940368801804921513938724976771129705920443305026900370083823976697456180152347425930427811720832658004170231346471532709617710741845017990419152905190428815625973837796321503641798335992590727423859653150820827800401815980202894711028178875598364977236095907383694123184449218111519960316267327188848085775467120198736035450445537270108868994972511841846430664388166790002599359065796763951019042190440699442657394488629783132098176909681724782500681109443395955488497176914485715241002942673991645158797935452993063757544929850253745433291981813290234284048218412832938403998199155380911780363519864313731426674824289059148643550506724363923994220599276813266588898511913628458475907484322801040655805498750628922433343887814186070999626628112952321935431347535388145282028266728752870604027577896655840913122947007599274904589038479756331247273050615813760119858743226122603618330879862131885933305633864518810598144602735056891983443584794320278857024645662548498738412751273978670139029538364536952534806870810612212647394762255876106620901988172099590345661966363652057318293299826802531919784711156075802916445903341410370041443081054037546734695882282729364746956178070915636445289926027114291174396258528678490100978778418475190985241155025822544211222520223452131771939820569802021762845783698497824008347042269835742213068918624848752989937809537901333634541689267490002361584773149519385775170446580588999285478792356886333969773339993899161849568490803901925640094348612214989104740584872777866888526116648294768438490165115136537726873580864777240848817343460806668891964527277070827659474819101951577092002769262421272990096393459028524363695085690623621002899061934903911090275076103820605455858413387426185672994192938443337413294285689543638258054165194519078777818842627151592371877772263605409789225740986382591665642837618273959058243494383394921317038563919851573298837124998879647546353598854224249436027575435042800848545057892920254251940350103670195767751874433151430032804848161820805239260211074414338687701500638854293474397877902160042470242294114722405326921414220423997510978274956207818576506680162287091511615372413882871305249055384521214346321466262683650944946767917617248478994482226681146875784952758558768170996463563183514768048326344158233893799832500146948270309489704944049374935011005799830042149897500985664683450909452828377978243179090690038239959412691437764785603892399602698575931215751071332201891729558543564787986006818353708786742856489380015744930937060174418353370199553223474612382016623006405266468015396409396199085623800346007459619410243129310366277534025911270805415439295743662649881646405171916555456700712372850358238647975926429912741158434584327356581723636784793133389217190924508288979431681015268632712006711804533825469684607579410982886860659691113361523503280753855934813012916542849019067185544950139084657678814144164805563012557844701626800611374459599054745492581003342404962649456206628477901941395058730567927346389136262076897563551374492782846948429448970039209070120416877813259718863250873505067002906693752914296617248980939573263697341296473733275903913356601954616144207068185560443857632142950227373009188895909555711928556429006962755757136572463023741368774461914570911866165878118753325089139252810575329787855392620705210349534203373780424702288741085449963739549946008319630096862816538585152757870009323697302252044545838904272840872701584988736645346885559825851299421969328130711807141364335993214101942708444717758688205541140964071331377134440259398887089815302600691351316111258282532785258489029262986334567239469920816788936079813900751879940701566047617760272845672934738261658805865616660213619645315277153697462098780389940403549466093939695515682622484197792279415925022279857366110196975684149098320476899443567578377467138892145404317760951677813521212127541196038611192327213678526536103338510926049970130478587075996940294267993762662684188727760479824436210740044682642212559869114656086114790792645916923503075835259425037026255172838332659781824817019731690015214367017254883732089176749165706674409839240442095393647712775531791986194151652771108732218080903889909468589093640529461532469666456569883238374174963893064645798805696659969577576767798806900066707923796317070422809771501730634796999922813503344070681880812875558513312756483843842684152449763141900750533228734994489688082581827285317230708425844055369140859534028419547474306137745338062711214838318567276890422855432606914167362136799536379098040087474793528057974006986941581872550554926189188840626229412303744136267231974421566477760647833132193293069535106730578370979833251228735683031744280775070809698449205065797241756901006712596817509722623990012767269798306956005800265662080858236827202392794911108707077498649683703783958864173156923764309284122939690053968030521308261804516692533795632125863379276147452029833000766279144801415215669063063934804851528907761195351561149986501226197827373306696623131808811769539807014465600727644389894742809237469921675376521115767162998809500520650109833592163931946193710822302945977584235920129093047399215386483927850668869924636118704223282964668479007415745055003452526999361531687382302155503629771299686518520498082749260256608484758891243168987521395418102751237188277534741136216556289227129170493480427815276736768414980541755223428903870307702191392481039838322755359626523064006239710977295349843831104000785357049290810286205971621324927205208420159784216462308258714946314103087094222062523882394206191830585212694298759444624873502082959289565076736168452888051153803920129696267223167942693145501514196343706394629271988066079096997975153848087130971331918361329963089722341605456092317318249375063729725373786273009119186087966536634889450823635883756049784630492165862160050125172587748234232675927640898072930547777732645942205200363615089607068446491355277591533228344981357979729563497723812483201358240945946621264060500062225869638058290759341803921066137320625973780365403820525859184190820032310645813979350530485972952899080369856497893292794308151841590530083695497576057347023173718811556460500993577079541097830839110511100830079096622510212990718513301283001607307844835720958823366230810248941432715212205029548931969363985061122143382258471607490612996432792979305353802792336713979489024144554645528104715513735058719196379727920051604315753012451400716391239060182773816860969970267441552695866601681212846593544600467663928263281377437169283888977475671488519432545756533088845656925089831959001910000272500510481770670706899064977025176289898908542132325408759839951883359966773689481511066203670902970607724043625166870832897345561524604317619496341815591774912240842857192243598652128898160088440562172346535542018292216658505607184278662632562981965945213779631414149427439666957448145359033545635665404290475621420723652059742908440962407367772058740083316851129215656796110261420348195291170203789558238270139576623424499116151485121425791613271346400150248323260642862053346567044518123093231103483600905465474242978256953563390104557020689740427629384013674250102547358814977254422685727914226841788801628120213211342031325047494104081450451380361753446659836316328000169713747425919457429387711068023247644137625342614041409775089965966316389008085395756226034694491608331016130805999291094359904631534422689827266193935820001973321620171896359545561713498082195584475996214572709317278262610561544057252780593019963020651122332803499521428165118351070530019121342886441820569370274361551821200190313387111780937393245793001431383672106591762687468978460698691362951025282834714495405111799158082202020872038702290556013438544116699532698919296229838356594493503635028069277600677666292464209542465661296417097030002593958612549904574072395173704526339794864873221741580623453369935948915778941744122385049347009569598923837730481337446946889945230668284286822994630514681986316414186325034215591400994923769160139715524158655794925571071643155565998153505429446298330942696729727547923981755380828298410877863806443577995769704424046157468100992661456990454993188367080108809401991662568267963639096074416933500103166404212404298519795488121375655445158392790802359235794784548384655232528575157829387789818627451461160519003702610679677637216133719374588242388198841359798593334322491690710868387604045394671615280646159563213494224532707186729129033104109635996368852536011005637240764666655507477295391155850004882357687857037699665433976163206957236985703344738336077525806473003793335283960910818927046290879173434106106794687768774750820433669816738203833066568832816015954463973003750017154200208224285378810274175956496319847526862994190520686638407641658219351495932616447066283778087714240594375009305860598869042750064173898805249536057011371548057610563310297069506539966834956426101607316202783185335690900209799974284194652993060485267516637357561821979050175173410796500908349125082740902154631759665029757205185859185580866874874492040723020489990389505196500796336617645178332782434479951049017265728049177196368954664062015949367949154402435990871809918971484620323486755468695976665627704722897143076132196038567522384023634744669304663867791407972568936819161163923127964672502292138186668006475533258271621930291063934430476773091104616002884653338628238566799157171651004920082688943669686366038983565213165625854988604091611419937334718999708846107152451052508354600724632829948819619964870488954982482863920040551289154142174011341869865165546263249326416003208945294685729785974341713191147634042578235915805994582558187905838157936269169352081119027395540552966879787539426774826515168106266016838818204959200028320022075698244669672686836677303856629621410486773521937398943369126482743080411915789784566612268067246115129389300730015147232743403502492525363079148726353095998839356541136331534280080324490778001298696051788033404121022663030372516226850394295470952324385751859446646886049117160796087661759465163479338141295910408518827262402988259978951316688395955894443325916614930924194377023024692515943095414531880125866404396132570418777593810410361996012798203352402277506872098726360026646968211979768602200498378300474560033472446700231839250008213178761933089833027128039434469765072367916621036134985304621860706014201500868506440871949959907929323565140017012892810296163970449569994331488086648399968698979720636150395259519817372360755733647069771825577744431219158665442638977339982982929403792011777582118021547696731263600683325871521313984555323915188493521114235959138654117086901769828726704824359138743220499962549261499619943242799444181949081541211753675627232092069615416311094288377136248430507817334744814994732062884321644329644009676873363168185927488149606954409509921661763461095054175917208529702509808507784093330834182788409197591539113046711567820236387081034268945066450677713990040107556304745617355672046519574277257001399767014985092192244994934091918698662157608722112234623069911010723500808238823435759669987436310328645603283825986337706663435647359597482684706605971516090125746505539192629389903782330436158943938527286695014432174989687844360052445802794221406443459016298480537940741627468986888061298314844753816629922851742421184760988850934625238936327629382286875004634683459400242565947826480165474994820935256786991030576552665757877577241939689200111072137309503368836224145120304108993028532009609782549734139155684943382523689491389457118785240645542786865433972622666427315269526376828554753082780753307939401890824677381824568879122025663014037985843600794379581359437944271590253258734582862907341415829784850701719436900301745033218230863352543711518691252675153357351931547270275648780269603097141796754044776683237423919225106132752006096522926337828437193902679098885294237556061915383651532391959201499879863985906653000704735940631664727625873616641000236391572595767194900403590929129454554197201492240495478042421693338191955285041813645269030550236890357987311309447099794155339704534025859238143297008586048569358166930536569677673440383559944905017431617527677891344176718972954931745592780491555448480060514920493154012295616806124550251265728192278793766823587383892103572346737208373828608110875411660138041554982444449622360405474977464508405680939382335611292486727470286647543317862984214520615550841259728097002475910154547395284283108657525733306944773582722585934850281854430840634228891765244080948842503720678637769437141131418822461640374128845647502557737280982876687004754678302526803546510247460150238340550368548348861539873676122074470411946252427636765300748565663943531684271010764564173802192502952564502508762360632412396344477415082185907309676773764116749311848494461432834055446787913710259114390194000767857167450486269435718880354951055923835295429134970187995083856567972041428030459675587571387006566857256837073375227917418730434709852830484850881740333879774468294827184659960904895018022983710031963810095422573549532210801407959804903264694579672207874137727515460283344208938930978070844812270760294742988683542893720789685149653738185423544876249683894815091838416690448323841362825110287165793547581526879961525217134072085621057616920877611356843766692464985023294250517753079886302734516838341863511668298580514361574410256507807392832425902374031691061356358693613709729487907490889390259735109232617581639975077421554346364042326323604279213251475004058835369958012091192819496713256821506040611040589232095311654662018529806232661613459008874512958299676328746880148066517562939141917821436174263313529176579452411324621997610958023802620011838217204492037490929799541442224584342864655237671434416221300138948899884023881331293094581555014257258612653557699795329148211438113438235628871150997686861362675812090536974966287630840659949666502210202215202956147025924684280259353287598954009265008229050851777196700724342070670838228496808591338529947066859761052005553751276894891472382159643503818730861582027050135122419142729789515999711134744812280456841264575666123759861429583523356627600107024091752973324617365285352982063264966669957884056401883770723185545221115286408380215226902541843069879321371893370754522668785702630893884704577147708752060977439465221739618082029793640260128748095040065928651247922652635408330117758314238390285583455479951656053008393595671565276873869185671798901352970054995193407925250067663239513612157880870505548616251420422947682277281075222972945691974553197825241757221922775360543916109543088944175018052448532937193543008980255258352335971734625868971298991756319160575884138561444911478607070201641762952961162889816935992936874325264896669990998693978523916829802076097658447069607270101451056194876969242087597056159091455318867439458793087737305892352613180447405294448558658412098417389837405949954167078666067242021742203256688349236651733407486946529158596999902930987689988392632729000871503433486161890910964780342087645930465593268571315376692175571593686014784713912873451287086982326149501155281623647481052354313842779277602085011418759205174143189958486889476692232580177120472446927290413133044097259277228161202773167158895311985207959918209385018945540719424249998604469612564007621684010406977178528352857918656921989641583497118463291229922782599460414665827675543284443870442468417421220813387672185007760703139428777196523272739056053847671506902390404168319259029342016027763195567649737170881180785880550384239644304075669625936821429956754083119616098151118514800656365086451769386645355851949590917999034904236212307335009774359268501816346245368327118805795567873429107930866973950014484464631137608595976598028268872648839900207604194253993253180270718816064880883595080429726315743153495335003667325856421919946901483184572158461159137997598458485261700723264025646127188885492426366225651555002911426767950866989939339041897867162029961139822806844840754567427446777999751893658976619677456380032680186277171361183616506533078064596498836576521232960470058969198996688829812200667160316796693198113141346695695874678946212517810164939950526543649656613639325969296305765783256186277447810862284590427765076022257585856959856115334725782213677070520407350066476865155164252215501116316793547388970173338127608738239679813110252386021691284745731426914913700502046010239042882671075714780909117210695640904863234824010512626870854132707217863429209067858047485152632764572934270194865328007343908196045413973338071055440127209201097551142041495781301350069818187095976584972354468637315640684755990502566122774774090918774166447483531778452219096927075057382450708632133290373520619718513172062665698972165966121423616205997836135809791827792081661176047358242244018021588282123279972001910377609634010668758982480042647801264154114494758090524283661355443833898469766888266193681896350662245467417425811199367870984733896048875772711129705919519327820751959942945788373505556893315257737568846920092631197080790899341319987932607646094056820210530082851258625826154872208115243057222398242686394117515930674295450231833900558710897618504145116875020248696853010925296161857799282250871564339036876002700228020651242283500130644812974675877516395074029965853442743940629508463303232769524813863019716993708055201374302184027064516241045703076774670992748118184130483806401882511957845605426386994926420310405258363502641942005546868330814405612184580429372324123159380418941979971405444763286911215652863861204741156772430202982692207748609457836506463984858203186383011903982113089557670788101422875537665329525154157000208117726230297126732410021567602730973028771252356098500636700305519003072076332204346413450234964164074111554587506105980822843434047834429860155904790961409600077655099598865627576006754678861263479046749760445761125951944693219887602393917206759719596435282375535276139073869016229444256935148950657132464155818392755228445182628225439598271618695085570976748353749888834886075024450266453334284645974237944373759241206845745208667653797698224645684378961534604080976633947132245510093612176807053037506997245063900299437160579488665240470930034102147887860897581803784400207443265943654972281050212165902055660467622410957301848261001890900256054738105932460756068214832306223425001013998587915897281219064739965113152109379889909237957611127100865677547539567308695272403704072950711401482427495180643498910647512964558040023679748825001338613188480093512224965362152782463610485947918765493904349538569225657999110357683985171616756880099788431732734126915576061877938524454297556796311487129757275466631887454816948132033285090714704126538251984023288106336043084908792096800411687455511449102118869049159873750434844939337456325387516535380388783484832076860874756606844026020191292074073105444294922608872090983900871253759507265932245115272565196607777000489544464494349661911353976019049204938707609961354381860256631312238429912784111430177560305928797003392387596205186986068433196825262566498636766153051570112671034131555982937921780772514416232502033527780982909521602246822701970806656383737373727807367284921435084066839256744251223207847936879285435755052324580139978004607077300766898784119545169645363859270384777887260561688688973824128558939864138955695949169406526738276892284896984827191867601224232975744835534036005663823387604587073537108956027981501072075426359890175419578049325526132928778263498653525383361383957689134701940128816218744682477487912280818728738079794503583577206213371081607891585389369137331732542982363933107882648372567370100366083927818420959972262743480777880029120739969430055520216693775851930627655541326892330138802067383566175832789306099567496602368571360280783007987583941744576678799680355082899722191357397402646750054106285675478510726365160418000484492301844398136332962616862044630233742273124708482282672048893825414701339816458285665786015956991843500860097852685916080442116204689055675084293788746198864461060455985716538038389750860584782778090659168751523997965114928573351038308653157943730479568793795455683362547107108931279898288297957278436715346287364923176096033117748920761491015596361052681185847367638900807036219598553136083478959444087708652032326187449288363714153129721524669558755284075469867425925162281048008195206754608536417127081549052525532142133636044928702989468752143872466869439762236564571959364689198015046682774382001906280098310055917326002600906619676028550458434487905207272680738335537992736092168014490191778681183907025894142021965606583557401312631202248096706336226424369877168424095944445747506671149874042879100846092774990872666062088161839046729087735328233064560911135554368752001153827715988274873344118702242970326965697470610228393708001424170676865689075333588550713515049111086768118804943136390431909025087767573888595534305707317205467352009300802122661776896174479045620824661952180489769692300287194047698255593883773716302164456752255407008295213216031931747778189344890790564239008547123313282415700551419856738495113105173005134683816260923409451768207494996908237214754032862206244041406539940863228115381581419693684799968417322668989851089320882630021171238749544823141426937243091294897152463735493639116536251287403714296743401445518659656652670880819480100590615431824875839583308692100833001374793937376437520203909012087794082137673092085695979083591898434639819802724482291928371324007065752970563843365684723515634940094583316924519540652630172058472166252870537527861151445227497881363121641862858855438983284982601004966523201096319275587478451615391589489922571996377124357025587053960970082980733850774840407620609667666062222705882487443124221044265469080678634509446027660094086633197497104296826662640529224137015846971420854809661066482400692212114986326748719492078990430125683877027797926138940073833402478080207769343688329436980019833131137777914508909292718028553520445947448787489659071671383859385302155082283170064567892603230607361987348018083009806822436441828296754300248726398136699350588145452576927639370897371403765601941312320281467760181870436230646028267767651125335004438109250907582124128257586229101310782841106439124062055905097951285385239276476799476325018284503496236487033433129693984509182578620538104096907571816344962842624951597280246900759040053627595224205099197628699871140187274210494269046851517805416701790292835575355537565866820044112290654601837080908241237458408811254350304213010108978758729855221598375644102855120545872899004772306212775466552701882597951219035044447349502742199856109844483416222724209750925518875225917372782272696710213655005922290445707864513661554217518153094818512330466826920613655386529180146447149014659748757140522302261630288040218801143518970082745042267896089768814960973026915038998314832670112420255681396178146646232467768013152339290537376111184809309522691366015865549542516739723706409815217175142855662958764222985478313284063555558706002507408398483301349708872385151197918641968500363939869376085674038512328359337527488549101692912260460800197033194576839313019985642634159742685132154315725297578441619304238248746787162235564579814291124885551126377600262212070354881763631363604358256782677427471106083403156549400388888641329060230016390223631025006015358789152416584428243792783134617630133518573438374716960973441576024499705474074047876431620712155781927642979866905612866193954228784234151248722293329721687568644113470954468001883425010823398642727665163314678821363075890066048286048133504916987366319273485848309833701124048289041716689348057840464609489791219640375664941585216319760628684230665594531292900807094902544590480406037426079143247638514316370076506848420362906245730361636905067287811639809603600459296546442134172430784499083459012960842029111984066187859662297985180920377451060684661361334809293120384030177999069432908807092115702872733227987147001322686339935599660868083557360734457829427086174917802185697232723833596278419523921408513222643787704793510216680604370876715929435959433840301188655080383477110221071143614108555530876735716095448639504191599950168300277984551494597856590235569451386853156303484731608509327117787011033550702335913671574092180179963712303010104682163558642399049726591951280178459693401140502539468394691979485761756222727026552339842317248698666868182627661099038761733468497010804440425738825069345155275847294754765583474530239244717381493968520062152360999983833360849163683697895245529984679026117901583514107155412039816254949840766313890448713051909693288765491463188510756524066685815509444234855477787343758299611444643603120401965859660423212243999956048362563542749071475238570781517117299167905257082701634611718459993749549726155343213694003930927201381511880652790816862664450197226299406209065095435784639789262923209059654473810528384597972074885411787820668526481344921382543195982182146838466599322050460647433586487829528021006204909459469466853343206428863664142097656331827497794559215995034720757562401939729279806498121107450428908536547804509696735352414899176674117278385488775471016768046267591013874300377327141286555781679015438039576891836616734743761628900969326891069012740253361747134305349132008834524303601877272271240750291415980505908479222028122515434615751921250358084747751318567344957837528817581944613992107409954202249022099880390994930272037831185814121441724742945921018051008174377675001585399691606760064013387627024323028589467456802453079048043714406439326596324945750514771748761957404087226908580673812534374119503558014229990794545927276150125881273983614001760071856522561336541404982603645059002920580634881438392558831947669376214733049137118267603467223316536463268041955302780226290032780548495169261095460319721377583900874566001251238194754234324172940008755498366695072635191494685987061137536619766812271524812299616500209368685686716470247246844284382523013262984337823860730417777171370251600051435840205369375945305112577965916032765048927762276805169331759432386533574921929676290290205256995146306854011766304174667937865499160800269608751062724556555272108223905144956267405542357625359635514690139563206737224307685056664619257094127648210410499987730937270232800598958596656344615249193514719507545286537189829658968765699714953823762762960250944163102419770599929430480779943303783664891471781593467512475048094629103319671765817305597487992045476265633437958145027821390161038081824913202556856580119305565764457654413006726558282649767954954232954083039946464448821958739371759157499943596050413334144230683342670620129634372260124531028667342897707002439120649716159224613535166424531985517910787353663611754298826409648694625819049101822408577981568070714973034709271259430394252350441823937033618385823791902430654516948832687038535430707584081510889010461025585614640919869995750707856392356598422488947042826517658245016105786386370667502051611728677832746228789455849136358004053716712511894558423312705601908378217778205150575281831825787578235892847338118471224096094225616035301332619684138061316469416415722608169349299861971456676969666761154769377379198955909373866068833524505408860690913224527092494452719119006203433205696138688343114984140218322039108502977151620516096226014348066614576114451005650412211876447173554792709571464016787369103906818807304185536331513612598434358781597684147084361906124201081971983550687722709508007845021449051263334429566166471389043233023741454800865296572188234955951347204918393061094950207109669889935072146317076854970096234883376353562885200231477701893165230092437218942977662312781194604815739478878726509797919422857350620232831078035536567896700099663472585423858657730209233699164477708193639341977800913003273299896690674760860770035751456160139789506076408677235811736909188258174882013264423717416295946968826270596748429495920314113670060058561391540595148332249326823867893786073469756762121702927115585677175213956897298766359067231879137311697982538630163336881668839690130307589195631214140071127091795764391732744815091777848538740830102612169907622839980276574102341895008859325497851321645426232793282546711003595443576264741234024126294270187743727142843993352969577308847980132858577548469274632160492733630424636553346667025614599189609414562189098173800230273138138953640727942825548433070077484471072095081331200923819505415434169483115071197368440997626133112309191123459984387159347190753702499264256179941697331042724154618772914561005933051845002539852632135294836952542397546842988515377338614157063640587071729786822047873265645579909673859636119548476693089942634532921344394410744215211120722393418044684513157705856106287985812511302157595267125948509745446581784580141210707889007168941088186778898809316451625632434696518019227704818314344661114363604177279456632669351802862462238107594194137539341156591465370234131787833198631116432902692616589569810152223844598489775615212408415047923243935818989100899760992702675675745179279577697040787672698802413115558416985225897742163372440542766419801571666315045486213489877765607064273487927369062127776260271991407820054818384911527736018359914371331461763713864534112665509385785989658381470803870278776168141104490048103140713214994447007298936472577039307614555858001119775106174811554354121379999287624071734170512106911580606853801929375415065502954936631701221084986689395966599667331470797342498335171078718065045613696914968148934773850111019704092327083914204073054761590482407155343913414326830255780387430351806175286250838650142704041053845837679395604128771121465248484116072680289633303210269405036616400755537230444525193739509743409648952584064680206884075644760815031097386432215435536091194972078650877969792857694720609036235717076552234596222814758853440250564885387101254146633559263207148785571959619657627876756731411638030951979821028267431952981338983095521293659840502983089319074675509425079225744932877913456300742732854664462362500918054176271274437300787309885948927617932523479785464372916124036104705097162072389816965873302477537522217361545336323958711962755661957148610281720748098550990631813951007479405067442058370892946165347904696906567523766361148485220979937501384848303025879933352402877839709073140132671097738849034636029073023835680999317968200624228955230765810649730479950319541608871415041602165399665991654750738622573108063754476473781600315850308013801992214440177188866058203654749206442213602314460662926855627061257714745662478768678404137986859833382789207121889122909429453866482223831372061274746141688358159632111017927136937044165201090489730127244728006217244436196993119673816552536899818522901742546729786366782230789511526687960448694220359909148040437766308530749970313669263845624889171236184098633100455381704155060221545376737690182690249221529709085798363386231017603296894952259464142500895444427566061626158483066723413060043232605064316493781679514297892411333270115670583815172734154602731154934785238596813429125400393641253593316364644719713557285410377485620228070392207866311636735335427153310361289854282341665190811975114201287640288020807896632675549082480079937764882195697103553053451363266079492642232612583196411532317141525648210457549880794042771381617945827998363756137007977017158453834305866232244592376663082036359752260420989936254207839972619760364893775944610597161379823070787403821811905644685025506055921438008888706412607602322608403732789542489421315942158022903054429128494063188206451749896128461128833452482653956529706701305166889014740227690650469243310867392079377720743586833196152508330145480161284549715250827880014113567241418761166421521961999836092307162454885050122771781626859408786284111967950531371320698389226101003510468555517923733938577819672569866200106328659179891444408801588529022847294702963821980269176612341486110327335185212177591130980385639931352038874635558746171861265423766086363247192178469384368548205876668297405048942411835731167143444991826604690983811488127879538145306316561436364902213037397552171810976022635288937782907738181430255904342779426605321439163833729166592863770400301177876570929551819207455276400842114927716502409597120229545739509476842209869830673683669463925091312358748225837031809035665250419362129526836726815270374258408671385344837074994256111584801555823500154754053962596828882187418033806718519730346227729318228120150707424701264148462893523633017977226541843682732107450801639380619666741657814661251578798175563145464181055123671497009442464045143334878041397387675349981584900271648547043449044157057896281286331619634972792061742945773523846367546236509915930826691887232042511200023157052483087731811505790244323672089568459503541474542550435108253252030727747442672680602482282264913911536022919685941377864607277345459741323900275680772805775808006683740398982594767209615618983133785730993282221981212865318181493302325608179516334319063304944775259477152997397805544551367236087245585065015975417179606537156790968298596163996073122555177591674122184503618693217148251142196045412471718342568773359554938709966907304955237448840654409848050347351381414385367602930500648090717252831282398410484826494868423373186516559783147166725491996473863078030557563832528705876612222999580330469426810027331890722726043070268715199672254335870959867351867656504896289285937629696422159351001783274229282558127285373323149982989919991946008326708966393259820470149207267187686035556501070289079693649053199984289930590462506509858876524795933296624312518918104389615626701354938149838380384143297377125267674759922021927385487631098096879862816529660043564757434419825358715444617825813340935802921428347057267422792481158379612035999582393877931608697531740965530310460456160996387123069069675654459100452111267694060569983186912089115433584572719312535003462217585344144182212890432157991462785022369226208172401976944522143296059410607357117352283553126242982418778505372441160081351683891943266091525182563383303541387935957280995428730661845319271850637188964999124842626379831461884310440350897458342170763172299950094956098091212209689985732708344764033033740965659262170362642355265034325520334951325026769077838147818818784075883149542584521477938699513939221060221147181887504428169727636181912249823832670769275476463885769412209582529774554130691424675013138823527465201438194356459083450248377225873863641851040893570592507464346277257462694340932998248743422027032262355142947107794529504722871846128605231363840367767204490432511676080503966040454176820631730867132761391099710631212953375046217369744023457596490912240131027164650571371571654816027709744599506530063688366742205341945296333805623114602120876382283866397754777504612632081548885143478396623302684554784559892855997347060661858130203137507678846578079958402207422375309636384749724909178884700038727462084735414355171738895951842081925534281783838404410914757911020272064758251203351325478513356417563489850633900484055215460384360478102963610423753816825045115967119744809574218896223661186684632288969897856325619223822605169887705676833822085338152920019351054946299980779640233243952959657285620594402803273023076354781467469208178448661305732000406309876040985766819273262708808702348032426212653552549936909440239909559010138454278634861953773179282243722098016716467359565449587157762449999276793080499081100487497457065905755651416609755699528503187122042215756793287713141509018285221584204834081570568481078670483208843787840501779773112501986566624109724409177170279318600777877238191498446687135020840916312306432740823099103823578028703402523239932284213906931799871510263083481779239841426492523701430093742257810029655301433222130892080986377550386252320149238605521416413630541677383713843428965912552529319095817031287475000184845696546866208926141619061549960948501925823649327077521881100462861040027509704002347942304835084114830601116681406396355758185736391792589474332633621936489775777107313390693505406711682736926653761049393648352561273966463282853157740248611032841307854231773019890847901137883876295389230999876623203710330232880659420939429575660474000282031578688098023229808671245847668978622079945747181605643644774329302403417835330796857844409448406736752993855896489942900176088042652639030424400184314074274685171175211746199433667106509039542184502150151884020312024910041632145162857871381618206131298593431147214891756663851990126458242260728786349086182939675701185025707142748958227668760790034589797255261616339399732208897432041639548439523407845114314319007528343731566990582910428351160970374421118736730586438123803162623620671444355948481222373006895817721590231495313219056166457807269622400698715391640415888303928305921783083095940576792083897088754469425750943385360079463323815581822235458415304394669946664533140917023673739956224377989421178899091296114351819432068130119989516498837200173902216544494998865842389089743795225971753020477649815698254605753524178173604626328731278402970483958057102785042833777727130325710521663243554762897546539919199554945419068366590060859094255476644663157048019526802828724511570050308300207899570813216238147764516366680867289409379321297250395651222219927287130056307046542504893462438812053937790188594240744909241111587452108803798729806700393769766171554840809331581156876990884775274132543262141677761370000421922616431174739292129266599888543082328478350769392214736751726686214082480860759307234133868597495674019134903434725013136276329414528925281953687559422744178006943532300305814340736224115273408513478265214339543549600759161798664615180872806101201153003480242567539142359370446883622762612861332555651033761765246689001850702654934603103812270657930104924146157585279571715483872253095333177068165820293274172422083091579252888314204964336627970348107333429125883469049375187111450089441211126201513028146485609075975998983434413846361282793797091104038080117118654387934044788801439851901203797139608386366464638197026307363088722954934982697759581237068485022545179443938706975321139356142331769674904809728735473558626243806602934597787674815326454139352272563653192812816810401571931457722880618661007052407712710026063670476998578992171744806504241800224889551168762271386850649025769530569446636264146125412796869825541379205952335703758710474243104029302301400236054250173199070656901901306519509654755375903564012360899231947318439010564209162977597211577753640260257954452799401723520222418493789311132486388343568961001539572401582229482756019274653318287919929805474028344506769463103617882351379994785088091833513326546548334140312013286531915907885311644600737801351931835598761458061052287944056256829965634275141428694653431436675391507984345385076191112422955158062867260025795773056826045087514650466736613731905805834645417576538942011907286298511762737817695607667190133038985514460713728048200592460749760783513653550355950835529420248318041822918955506149158862326682205483391665217244801987025009260029676184244492659168766513747967329925159618235830968367233171853742342711991185016946119710202861620209132271858118515452697509624814832783194359938276123569196024866544520132254599578820944621862165350847177925209957508687772808452085848797201447779169922026044148256982025836092277184021571651548090437438408632188599263133537036157336815277471304564803195252322555862772560739737270506618332493399461921445760150445957150856490407127298953130899073929758003134056295717148977194169810684518725116442470330274437009912068784704861339866387996700649731902046615073300707654854558017791142942555415165410458300354297073205801873618723432178294115798067558234553782307101274113514381275504020989016603030179176646986908940597747051490976228207207797816845622896622390290629324571401449904587390022674926906468530646321785073857294193175684183045749369323220460801053039713127350989970616864760233034511357445315134155243695113770668396178274200837023387473635769727988905126587472091998131363659939610155962505450626320660674954674943606314094698029279408291631802259145085942927301124986159153079064415154875035608798937421619980679405848758482950890982642050714261710007720311113236245891292326866539897837347368921671131390878187428756939838843144058788901038962871478371271550772161823532787081423994567378528519587688499025546094356455724649397467543410850055880718471836177906206190327660952069598349927820014921606427851729121773886850660288406028791800521886138066405191950533600998099284563267224774947196125404819589066972130706899249932097484904888116730871955131378291151306138171029862651990554927134357013751072867550212357552239975039900178583672312676944805500774843257212176439826068451522523920589712089094672982323433393218358389782983526681496386219605305427712910637931609471528379737274938518358348221757263207135913240893882977499009127137247217355266602754994139951620495445670707829570320646784571118609947487729361450422957651215511959704575464976517362239225914474454316321365164012863282192503460158852340719294732163704437260960744667183138197014331898097752580033109346083561531801045507111083543221739626415895169199241394887450394866482756194335850784206402575198437735383015283437299241912513198274443879663154902350619607101711105899325106250137472608537036161086000659989382686734785368093158875872772899064795754094316051585097836661597601086133658185543799434905697021508633243135959523970125629583463830611038647473505497511413925607376920623807817830894696512659417693759718654911772109998475201369725977219118755069166367716909203313409474426187218450232328615491211620236627252764154795039613409492034802322100588205275265933718229342831507183189351044485005161174930291864300037215160604862335966631117065076360057424250111605818370552278313552336215567081512313414794140514123821099838101261931740430353429298919417483592762151730926633226331457964137340304313787008639380439187779293102071556496090241154846370047688390903301855849346473596692267747794821928018354758036943728600505492222875230298899645710402547221859723673360363108528702952983546401018947041685639375155766438581369378928151809524984755957017783533124487983395235905041256026893247932837810048136040358993059025546458032888526712654722247443123955716698770655046819568664926792206685080710904080861640847563003948324866070817611923408286333100140109417943584173930472885510926472945760003248886498964448325495741052455024525260226035558238176325662245166856784075638326284997963050490113605846640030264151296621808092885457831424770188982068845644830839104374465916658547911993810310434876385233148707009371619553906318907090231227202768401953804505592245189191220866114690498690947571456934833199752166248946762186967026907085063288319707981865838739686061139389736315623000105737376465917118249572638897836130035708744585294855840913956665823080429908507821975903336755739351046400922355132321259629162330308067446271624170710728159045134886705404927712561900008592430526368070092568998845869902278400156923088153539228471742953487507513169528133842297226305840498281182798893875680094823293448701661501820636734449829151288735296253979383352480547224680060224192842687573098424010129807507723639099115706240167727810721790749338957815015596219473381814295842776808558443189814039275556021768467227668981898307939005043057035219358445098171345720617023124209132489305491097962070790327882580942416325983360321619625339265224314386505952959722598870788242824495917860474103153932524286956065902257270686096874534006620226795066604372111361414444164041125198074463877624751492344662600289335229261497831580466477591632935367235167004363233444313227750139753249054215591173035187744866912582885907428428205796377720131466839186879443693891691569111541221329762791758524243315305725795179843461517169644041090445738974106115063734350117364035005178473779785421878699656650733954535478902352149722586021791815522672364506046728263270724381701667159638522784306579389501414900587418051568603384689693638644011048842691435862892451467218404941676905427361985523674698690937844741579426679112904465843517270794121697270587995538649388858134654253065595346008111816134006644211309545911623860655237883616783728322218677255578170760855778430251952960612259062593871526189354872142811665194896074193248273854028548826126037799797804580396729116416562877434588368109514097189717221038714923315268156685720769432371472759050403279477834024221146175104483823846679257184854608495573155262807414454914236767571411528274862290909226151857030913026278297910828317160792600361700034275700051998478972242185803853052181550828022075948106126241193231955306566648014739217799614441667350543366437305797019510413566981143780935684559056191443078155113070768434185758597271935899195509119790012224532156524400488368287809545361502175650240648472669164228525158773298998807455830578450081235662032278645511524732978187611573858016286686142326010633982178047105156223704251653664772782480605558484126373358018634778517620386485248235221995484197544287980094247632563736148317589714759988087392372836816292191333805264718606765107642910581968624472192835192040673976249905581101560732606399043732407667786025109162461990016729893505901909169503610570491500605200640076021322809144016240571924647262940964482749818145252977176347306791384189401696740417117552413441537113215452836605969759407170198116158596479065759238041046685152636944276309146264582882118186463293854055436506417720825626130701801028019275658402034189816128176554783247483242629618666198967043527456448536338074670107935417209455020273016677478572449716439805331455231505843336942725812921745571764994054251409085384905389071778646226264203989205802161631599707896659128225071497439652866912114169470710767921110652843323910903269312822232330021458239005413923625713619719173764860913085554232738450981346553838620201667819242825850631660739757273829092013982402944388319996928128880211442581829989199786369624306109049098328982990325117394234377130216990910378101065333708332704531094503096246848829897212285533122537135024607176247241485928602685692662401228695783225431667053066272895252805155307447130672769420556369158065533187516042093283213344617137386814217054943080513062581439263558475903647163202555440345766108584359769150997326241826249246666466655900910180656198656583394993091208015928805207167608775227150944759549712274843110523472687295762701565352890439952955456592531986487638340913578896688759296413919537544168434975550155301519409467505184285702061437665434019400106748580329163320815837315053286718340117762573441866530192010889285392148220257240139637046152888652726978397233958351130297416676957309265760073343245899095981343538333954907075544450366180331006832846011633322812600433900973442004620163727910222637248218497028803582824444933954175413453259005360339873274685629204614405056222147864882941067927124765459901705027936709213773069881277825891932864649241630619291389843067946062659309093348476149686829387118307840684703203043976677097113853876700155591777576076381729999250624629237737194671891925007010030038226351450573379655550873537790138058447908470168612704281925198278533899163785077763810887010166006822189837006354158686349849620476686657833066732843605918555847509730470560246387816654394650402044872856533199380900586724266676848670425417569511227661112757166328523099819894945085486081425862149686816802749922394805420618487895436732898549677338213840878043480654980851050032573701626209711246219389734986369422632477376890156800094767760264780947874847347711288187231037278983663348847572974178311110834678541115658730812569337711423825656953869136126370705565200540177317437116113855302987201969751508431648750590208735293869097897127618439885156072716377267905659601596046656905986616016432159846673507337344458290515911542668023883827953947411106912298117373422781575668540378837992111842755131594803874678723373525041141207049407621609267233379411210353298525330784532122674736111172402498115620700118991957487321817325380710099934515724558540666237578195496097225250535170246485706913820322327575661356243992111349345628339251043908058582858094936547048041601255786893319210691981365849935333754247152863779221841851961193193864036906159173196694420270569726850229400175201927058500091670705135575868653812475640663491781400964009681767220937531822007078220254601891693522594383268984189107732760677170459295042182250161066273461852685870591042410186930035678993361975069999342485215547581985072405215728766984457493109549252866942416999215347967747527648325365403469545201416979956817376412961815852384270599656599721106008710469881191300598654494566737548456242364371223524647126156020592893472443189000443349419743997179205573258229016860326750365129778503740372066011441128826890946569167070389243456016017696892389142367343322025832672300321310626176826901683248607914998101079059830895049026874083279921718028901701043698218291176697346241190604707914063348304260652782437518115467638629582472787197641251896961269172143099368271751329990630503996332799164226443547542566126179033674101690116625659721034303796263752803310022694155148327178089223980661840234403917043274672771458508522701804068798339138327517906257803501612082795311356230874582486933406503735869366293644503938908815409162329371953614545449962992323829846678441933994963884554852359938974902090246743695996848108606357086592066661224111228792964120691273591301440231033889373463301539032153860297518597059531831863799678144034299343805225165455619784465393042562969289127476773786908929406802193508702640329359312768717207501298893640279372348368163974524228752076275020386589839723084737567202107079996455805449418848325649324492469076319568212170314650301331829442984761185605161478852442679680645194054533918144241690198617008123217872583014703379112194481579990388533228145384351105927857457263728011367484704241539475603932848276627238464902426134652932745719444430772581328698164616557046313602638123655953824608900282499275216946685191328278406338025267117174693623144281932862702854170353902486213880995998589490003920902884188442810163029055293068988614442027332742511230754467411421209217738557205807661803523795900547228001153196344615876674843631602849829063179735187259099528581429254850818999750303554789815321703550538988233548368317960813319229427562004133540002611834338405053891798649635775095962944750665128550010105736610749831981994378894103543563458782150672846279719206732149247389741933533460939909594461178024766690972398855065926459899787185991217588280842715389166552076104209024323063453464616917620251517823940360638765928479778810225726579216363253507015874939391184484112854582260554784306624527803937256195193749286403029974493374850523350367704040947996435551149643940049561293697315771833917845639464685825022273360500323812665525989232567151212682838509324548115600317299763201748400486996728829363940829642682711029816145984523051727250745303282045808663570446206373452209682840537761758914813261807068176124840984902446160583712832621612362427041602542000680802628244805184358746742181019177371576492898587285538184996550560826171812311160013988928359249629765195540056411502365290160680373908573102071390787060397218731098468892200466762329716117327501237149237238078672053497729767992319708776846549910172009677745195142929153377934180327305818930922007305571250126102154457211357418504909110078109876614005554981692166307079216615210475957339466320094514555203628564356666779381831031287419549056221781464436867035395851931129479705389057655090963029094390269517490497148213361512403774694570750667466192383726604309937393073318158637368018397547093403754747179897444778364370840111833187572896736762150800211323268895062925572983116618079042142845883535533732770453718202455580577287165051018980085509909470660829343109824818065549681881974589693678919291634053437163545188861627294044157366817839698872217946072008075654850917558135025101775520019961188639633343348245974081467222600368399290487288892675317975722564666801771332347631787619168783229759866531971199438613662531531246037690114684163838025973425471112705746163644106462527236372186616906792099668907849136302720421880744315022767753878074599546941160529231648394549872893517819483264907471152323560515109670820035332634761350952085488586449233631043982435092144201254402059366154575157066119326874260270924766654553541689756836084630221921878472675778207995012405070405914115590461682775249271592687018435900803187285992455327050113078879671104899842444758210872380108913389901194060030458255876518112885834197401582891936289338006486783720675319185744204298737792509575121304392582997032096385128206103544172364743866352772438546033169300015947079901416836048385739794708715763193457331464457900263758476537946050704612404071211866833471102162082706051443387023204587196295702293556818620384338508508474398378883306466120559487035848630258190012080212500446165573975603904595297941955033258658613695012943119257864817615056195040894040287353214561490806147680690446575343022319597825233286188683338621132435666299340087112935308527045710033804917498483083859560989669758188209415363800179633812712517408363024477745338361501121386452149113919443609739569956201593658176058215994995848907179514304701099393265171540430029714243516032711132439592182306465276082598916606479277265744960478248078153337167537745057814429446822460588275389596885433344944501643536691156805547586793238958390237675636196641966779585501628746593199635181367701220175131598947800506908702188696467137014054502823525003555260752263128949702008392038114978409285581353903078270336842959875175191986866097515754581396636413015729243735584466940157373842676694183946738698682573142569964512106811673345696712293323652589513181098266004749619697519118192351560826625657717448826137815080804636489712836274349509870256606901211236244375950521520644601208984651285411841983875707289982508536436208697950148026131958374951788954275133360855386654438185187581347915846515465445146666198684610160692836446056578982537532652347232719890195993630447790887208050007294731065624082573829629465540747853264136748024556724835690183231413771669840489465005824923414692003656687306897936699566729621469670604000337477930690368007000556496274238437586140417767996073611641905209535180099326900996567512056413102757742490938835969218234419673170125253253378936451437117340652568585016932942808718417051791064363531576291879311277333279714204608519721628233745729366534478758234570553716824499518456803193733979091519366753758397555988795563157151415839468227508357519598784902534721631456878803152276127291688644298977307968405297666171885364073707178364439548466524686057910473154954846372171173020189970179981749652817119195803080662421926119112981044315847239658839597980976910272637155869448398868314085346463809366988670075643577401055705250679872724061302122640750000190265147958337848155116205880999727811469386412058535075452896534226126438768034802892412687644665236416887889838176085746060259686003476424465479192639439675427159430075770076715793370752295389745191678352247037694303816445871723348662739984705490490977372146137064242039580098098819328900024284800092302645536663394168684396713441348467379754086671151379702818827906069461926469240742195720772908430341578433009704196673278508553468736187944406339134852032226160329106690750628674362865322830669233737265890961455382477835232777201965979509827069877680234320512991941759666262585520043854325645756714895616310831902744057308398190915450826357147498956372652653645126602132261874747932046637447367857135859283270300638336055597466655697502161941076128851152516091645661694851148848082901766507238101511754853246516957395626668484898638772444933391144218051414755772149420018728858458121856942290068634785085911978907563530769515193338459203887764117837528828466911666846667082928942335911778249811650293965976206492329971718383465653426778379854521039837954134790243835647515698924999637019627173407270253930875600796737829367660858231927464749420305338067773368617278829427403366673818774619670354595984576568271138958896963212214722146694474904946414338338711100096560563304732674115077484141622048392049198474709404967654872183864479613543580884539669227215995814845303955909012977985413247372895345474644031799775933550627230118039891228108033259360273136186361599408703617494631081835658744302203290846115788033866027370603610317245957581016242059596132526968886371722005152630983179566977656454593063485209687622912739088490259491448020129711914986901436495337555560229160404659770731123604114016050473237648028142426014100367370903861580334225698883649962932111904158529725314028015738565278977340640554327547452668231472208677163719260909103815410240513742362523890289030201996350685260371127239929469210186315580949901491825166847118221773398984167403968565153832484079897362145407385944247111240022452557511417919685102135686245566645883254018027708906579847511311452455922420739738215730079641724355233502258278355841628620793700879963662070113691740580960855729425182753598328684328084865947630526744070131187895618280202417614014971174206093099810751002033605030727326434520168104778748640652127369843890919417938562091474375225707960919505149211929970299993418266028371646332434995009098141503151861177498593734816873498747538973041298475898346743189774644056868877658992622486278730631463690018863747312377308703557605231908851301137184424084206602364158019878909947166786584089243803207176148717688630968020069845037638403766535534872978897980018001419049764759126692183342354728757907283672596656049768121502650864386567290469036932984969682875408039582374987317784718258751364095710753992242550811198860132773146841673478509770833792797428700020715413835486585737087194551649437520116978202328510763765084302685245112041115664466590757299349494313578152957708161667518385391634040971693102120562040516224439332736510289088251166035063775657621766414897504329398998529312223089851922023680645614249215137868804104256229042261813962762516402762977101003443447373374032736016686248559481614450091016516250146328368170116168535258164270031797314093403161386951920519083510201622878706715941350559766964234907523891197357794978698039125441436708637668404198051493790997816235825038514396222363894198741896349533320149006390319493402807943592121680293998028161925700622149811304215723426552806332221225558234952274571758663625091033826985051427302881899096312787518804154216704394131683585150193501213240392671747291165637275568242032051568465506177677526071177851178143689182825696540919013568946364777878718097728736719357845764065629204453447654229343147737943057401189481008720080540626588913566674976362533047342637124875641747902587178485008386645729729191509990687438807595937014607802166202518224457111897731477156071704656448077714446625283525189632055910409995417942345911632226181967894518602869999603343951605704101780824310169107543253734965619249329997926368818922532918298516744821051427711542076225028701736477141057982615496425869321438213022183327928104306296285934991607724290957198775849994765910402604947085758796470976042955134953617254317608087003918417182603084505533755969983378256439235315584345935212831209186221700627295075226015410906137145550410622063062222455165558827904238627680095716773906891878876780499098381392787704596096215667103306565467277207285420092070719092476379519427586584775268052230849266817989909951511957512502088715514443356752373141305984872601698701499291085840497976611785094422618569027632778107332945331651749198359351847278303316211474714825984939994819274299312427208433169746728117518289336056890595889379157188416940229851355382892136343552994741683651346810182474916683183860085813585589639711472138316158419865939778774874271092526765131536468015406763765806404172523724486880119247977071368315986824055959291622064006996370364829575935300975035278498739319439173500162392672232191124036321930797517735296294079458842930957511306347016425978713167458868077215073154263148378779157223441296994411128003668974020403745291697928781593655737028109965321539564835845921546027045812466100670582032257520698211559680223133450082459116734306736405762594155174086054160455970111834031569837229707730759072930886278215933943381841681951861135122037365607187664479600523859807264254754307201640992273708036728723457631120246043792031467050910558811268596446519447521886288722022511715683697539137742250524625921095684128702994710190046900007539995613716280112047530666025582967916752958443218310929197992234904262228537153247697323317861643388545377518042231511473207930331524235625507146997828571221616098322964768427239717615119281089722080676174479810064578542556549347070925797975537780647378163695980973129721248602362722880610651404488420377112657966941387900838941627184227277202245791566375735202731991020156060637521596134836013887857663933518607389405361201117312263101753205101709347260430869334184453766772584875808979192208039246211999835144228836567238487632227861446398388228195283331553562027570971856585257032960042612676715013795103806481126914903750200334537558699991989348392071486724793532874662890103505056902324747719213664701014203808988954628569457184891326780055533313819356336098557117757486442281129103689831344887106020307383558163507964666608632647727081547987449893961407042936093881006228694925344497332740353356692925322257242974054524762582532801657839154224860936968516701434776863790922315398730485835741374879911949238729856680227808427632279534990132223395795562373036714871797381690364297723307333317354331186567876439402832675556094164352953289629548321917964991717363621216611119321504009266704248202653914456631734299660578143195827999715527462717025182922959717181880505991885374863300351627437560273585985011340217851832128516648993614935457384666855690896911061787011212309221258902915224450610782106770187205339019490777486386081689146331351393212529287180944072773580403153245854213320994870430725031692514578231266590247626756718852298136939662588244715490716241550648970607718248374452073814901617982325858332812579320713920148322221978011173767039782248387674211684990722186996968749056340988781563703313416763566992584601588652649895769240921639339249737870970991919112896291497289377874665036426089643560752549380402239050240793024312873408343530473089616141780840960749011918531618932863011728659515384065840155557009643165921206561033205968319330961389069856272842241157205412811172019930223121174915206773000319709155689057583118738897247171228733111891529630149227244818896890556830500912049211015319594059766333278304337933470128001902313527143820518189253271762967073694022642243300549874223095167320713568277794360872687933007987639054911522975713653369615246280428658940158896336653185453871279280837076577497489872204344890670295991793422184674913974472825888284962767489053445102543017918994512745638116083553595407011658268079845559765744685997104484064962134177828462339051740867258326693880575155997325429868826566311472757811553328648998498594457917283412337552398086425969169456431867112822587725518923994168035234823971449481471807585214986537669862129875663142055458078506468381345852560664677086946379886687068525885888842041325754983304181238854525349805874350683949793641188920782298407882698289450372018901155262670803792799077225283873937508092904331896157115304562878423772154169008038663176738876846301535454740483699553011757479548034035231364361027077592369037244395961383872650994781179625097041940834829871268506870637211171169895951106995927385028869023866494405988520834857930744200510772085895412951929826226637570345230463338404928731923906238702722934516798116839666027137399241940959632749958074762244016057028801297693320386023717852481090823359999845224313044028579832051831309342015625830220365360709673394243711022631296233448309626045240479941076481865623435042530722976023253919085902148355979964824447123566958853162115720678922435575604933704976481153605388747331826508531995001868747531524270187705408149778427890591842523343207090452083592940310340175547071373019084289200637828120290165683078526693960886535180589681957585541818057570266410584326653316057030340203794356019898066919365976577293612151745555842906806812571218839783343974308353583203481029024213595622332161944905359876306171500274917497898828516060922035523157568318885171193389240659148168992176815817241642611640068067688710391247420878978596209523388091584959603436603486808361560620675951133923577494357524279176666349639702174698200628882467421793093651272417540739565000946965091595678702622515494701563402130265483330231130980024446790593557026692419254710518029003099011070115694166686612788966098495078293903774457764939479213938477872018279524352698618858401050833271212352149473344130822189221508981186511962596007161053668831487117817955915864682427599066583230457722263657932366178578024369042084129462718928028868815399977222720267503735300215068581232474845138940446126478649161556644102050102712163592833650737409687510487001775191538807779215577189677427379895329137178259120203192508763044385877055422253969391275017806366376695261061271176621637299942466206481061709469734001347689126807465086551794550460744364940068664537714944165200536108665264881612970282988356365544983327319920330701358702843534028477823070884287151465852460947229233515189994416683798174762727838676112875040079689533509899962222467674212532999790054357186969821835335527468204099001140662056194932067390886166139653479067882445385820470405491979503574120467108570437549678199295048724917715707454952448642029905963985937908023137476656110907885450717254025001521731865839160645298040182890199330218925435529889605685711961788055453497777112431598810113808700962299412700719337597689370790522218111336757239640823229493436517476626864254327554603824529188861151856645401300799474077844855703933871580725872397014953125596182529267564230754799164716392072834659614720442845283410851936578546594408388922747402903559826788959860176503001468621248696252198018001336972971787824037599969443322813060173776708509292563081879701255180801222360257110907861682216849078462220737660360968279360348945774189411415393554606322211122713237743729329543927424967894077108737351150846841751117550093956742974357526713673884835154330014696266495181853119714301671172365614248415125841479345706265907990206395828883633325502222839078325982177156145773184355735263744020976891283100162647521371340428558067848766623895871758427898960605224332619617814016923546963109310834787324242919785428387855690516702792078791536161008638392249873255672713533663509314929953617821888101305578708908132796171051727193710814907221518562277120760402265015814926344474156490999834438981242833990803317040102367615238122706754236172934945303158370487282257653058632212416571330273804316178800273342511117429375059743514260422769032509722398510155877857843893387999024812487994754799085484413432250136832374936510951938243512453393811557358543991309884550849752478673291043877663439111645773292379002328807186997146134956759843406826421991178944660171368078363449834916670690217657575177381491305023195575117433765456829972655352914130845384852736210663631550353899364612592181021756585447265939214362206956530834141228614941557147784232077238988824854277714357794247693229448289574615503582958067679694871815723791694782137873135427198201812378920106899862065868004306406762326397408891075094766559642432926470598941979385600949801924708991664410920714213339813150155240286035359223327006581716750632049763584690634455176099651758915832911451843502302002544277229337452739674027623060510369104121079959458155585490177763373862410364385788973934483383950291704476728010469423636264484587240968596403388900205466676840010017835275427335481816635825900244011660638089322570606898217442741301504654819437724228606111841277120111998930123235171994904187648671681636182770210745283120990359267634568692312823716452805162644984560324619715818017328727874765741260247532978218879947220223961526396738339096950214368475872913604781001864952261477968171933541604111177568094371862850814759448300651270583545415406098669784098740252395837073708799002486093585347259428451278873888045269687380838657153055536031422980266513614774218777134748224266852833337598027797588537617449185637789732816795416074530440213672052960549985096944742907070298111538749320415647638952569495685813703273853422839327519155680488178114102239709549352286275853702928202178289175204512225654905763051825939368724128074851693687019416090414372121025877001427466697879231715700944373546755705550566314859250924792959710740327397454571050166898859244013692616104815316480540569002857918124468598444535026603109770885544691767691746099534916166804753847788900128040473124204478468768390489847964177568370136703373681078672886946343184440068302130789893204326919194675735065886104372542953248930869615052287181612472309031607426400897432653260059621833703560824124332667950007883406222442921144404300031565445049628102977477302536277456122188789806016070853892663547178303274661682534174341152068984556743367358486773034538489275566242202571826370278543365126725294355081797249516291903711285114968222797580816845870475313782747718366246503684150192677655950367946042451202698038628792454237855322065988626098373308574636015407931676512057669389483225915045766850841999597779091472722198457799845290593333232966077951484620244957743562933260014547218640258127388113196010491185000686479769811140863826586097471980735114168621136474755595742417586165652554782806633590222493009029702469401262887865200410026048507747078958200547415982134985576937935403230314343511905899391636811072589351730171433166472107330766384429353538453560968662076852126313621663503011731122553327860586141739692628583662337815039211933052930429512232321021632471372707666051584000194300663945879216949999395136314474333216416032576742705187284746192016788519443410865041499521638291328156130944147476896972649085483480591674823428408057083141745183806082984015877458600252977918988067091077228088184511979120535361689496269788652577774708199249828850219319824864331722267066425920044200705523121004059002914555970393687121487572314500909842067083427232310257057600917652843002078709095800955314615136105700438127819832189639050114449301194021780723323265210671097208243034085956834171945591810080555250887812786958120373316943532720016707642282414696209689357496974362781049145043721799799047207222261746555824443529940843498846451869915066895390102601534748875661384891339927257538117295517207512242870360667375964422272395490999313115447064833536217932971644162758987669531054768982683814308061242546078892661438836390116753815118944632576120364325304595509348432414831033198642918350486095749475328685093567619298088520418852205395979051858728040957374703433375340575705208232198253194322922360366003309235829084856834299488433124247909417083828624915468996510444640467879624098213405834041229516010682634873052177247923097907903094403334809966342300333707716724785165927685420482555317670703234452974329933575104652073342402478719502356792670809977122377693876965186963625867418497081114310351052616911085291361552584425506193372452834686379021354476185951825974229003025019943458626534113370425665762600274338821207925566028122585097984088456238838682756613265451077196482383872872645522748199265538480209360221904452608833476913201990254887228316915495001140013689987633231151341701315013398295781018655817098076411507171730467673917353147945420893503697503013732386815440540400685492691891487819676947952497486635137268263499211766264891117237830910705113793069176301398313146676796583090734390379290441696198135603504922528841579301786812073511977842324267125221335653660596376797072625552247251419203991250012478662544783012804199939158948638009302703894729839231215655575016992202087523107293905334294620552237875197254813542340693210181431747702536487239310262318210461147731266185771409567957786951787300185108394125931757581289598600725834761568066557230599662273284488825931992684494059468127044610583861577462481637353608854215802825974158782877111091759608013217235100897162616108074071650968819049977120043605098384755050339666492744470367494118684883194391465131181975973430109330192084106176667732924199114640086398560561765085248222934414386458591542741283720700941811473453236809249251149368520186995192885515027215721726018277862223904054525530221337197125713139722869671850993476978526805546497457034586976533076821917790607776123194208163254510659645265120766567392091943775834024821500455174574547884369346087024230111888083591027455005068427844198121273286723682955100535398981288657718587283992504073045363243053218056390136367807302431070321001918880739197090718197083575951373852515165058357149219146692617275688809358815738983548760591985033106213996343499474700432586659181782271466475770132010945353714852242413957657368943321314027902392124062516337671464992669576643082737805083211862797337528400975215546429711195174133444746477999920118170522774966908706374802585249960290538909961385777001701327465268030826425448280602123403061795704817958662721768623960637308485035204171022406928490208601221731798450378854935187082694790226496267254951795444586314763519159214546105093041557955761533148706864451441500493692523051677910364922517660835832875480346490834612935932608195111084225318123955023708034453953623976099092487598059859318979552634578751701006510842045399343659880279699983416758451338904756373099106652554437233654210946846800127568239797248466392084129707194447163760358089608263317795303654447577632179361412342545214025134266003301044396282444547618353831209030785660299903424872368067668997588028733027110093959447430713385449664289733063719011628324852969637690323116019548199991131182241313153558844524133021202001261546557657004884943028408523590169652266894121003454348173169661188334991813505971259599501460037994001063974413067344949837970051738448803161768597710236803108221538258695645787300925815286023176460630409364425628274065537867284611759166120335620192020819510054870973147880519257770467147968616813495179670723350008171749136462491962242733951405515590760346765231735160919462774433342082513744778058116199672951051557366497964848445795301004247728598908558815659560561856432146833415759626792431337615941406691208253666003414718078120168027329931513829007400813108006818305269871700319559280560836483568689584032189636448459014456267847250621273112665286504759538749898380451576951655437925494908377796039594336298725264444822929734910160655873564128683550111487609401689499463038973236282352608732105527550613189288006788697056325629591550604767279489389208441057819467189067158383685548237046714545106091904755886091648326886610933082204068275762697681367268704911424136980830115105441690070161118502748572936193753751474816655720727464132587091096877255555874799114850782752324651031547406059856737036116824982718285651678067406951147290775828875613505662566761916235362024309440971208461759425305718923560130091704652292370972769247310244056152034471047092049901553601260028671523740608989628323256963655811135349031639698347974672835659552474685289687489430810910933824659759709506175517409201898300697530905241177397523439015982285839784846083115068205009413618007222781953357761352485988275040273714463868609844985388908515365703293711007071957030275236750899748678775903968772733667826620756545789035118047494431440169111777309481627527177068436309528103918441886447702228823276923943804928546450908641899719523590472799400347799138637025059259249313476472023789622037713857669172899476440640465728516238072308191972704029776223275983647863033639750244285096539339617124907589331251988970391022236917995019822955178863844416878131073742220810385084752641028247654025191599658174688126653727851112509844357247175497622255157163952352530506502782696497743931433013842162060087395953733902713569052905069742704565076593652703773146898594373617232179556628554371212600774626809146571344653664654986222395006609455186062838142947581652191299134311605126078797746245457980818868858238262389317231452529339092910273364686688923831848928929768764286797985116800065611682712179654106890421825372805379673440024560667101355435936047633174790935889907638441097667976406247460480851752877272498531764505339038672571094048065477493450759507000075503609462938876081863909182556775753587092735716260859252418531849705085283100775022095555797757115276807687348205069917176444475499177760972512400122003702317550525455258774811356515997192579091556600472688676072087229447616011997814442730175526538584535165933560556899691656652388491676215834319659210193640178764379315304764720580276723860209251839086984864299193765249742537516536279489578414507616582106840731541334415622985368252364695031806420736148005356219636871182754701638789674826123278990358726515311063754385592159548789291586489556934609953453209777798363821942109740476290437916224335658513892733273014453352259650810608096467106775004733603109521207715788368533212389367379070882208315862886077762852729360859965891088229751881598783733525291926289201833402007683058375861960825357493412972249546626760711435316229410494152283019747540480522803504713729034720875545766863627962057990427100135226964047788305950501965730989897035698954649709567677216124065294781929268196224698552294570629929735828071900646780192663768164582716598511438223674469241161057292224546714055988521905621930360638535192135695828973837541150636347299930033711250674416743268018987176862989536474781948310504333385948588870405893650354296283653895994092201149458757099907175044656814405465565931896794918696087919882568819737081828908773965152503340956539540060539265537649802811140793343360510525439699613040439194984610763520664229958493603653535216281240975475823920849046360768871349791933440644678286493589124176111076645709431337771042708363667581069239526399137388340289867224339713072988638945777501012645032899990006700990806415866993647323369491444947371328127937638148630439462530596181122004648476478253887564893730850785448683947157992011593491099763535999858131329784107204208051164876969717123093022983304787913474016216998886820837899870946359934921063682844105193358932710431374770078493416783225720063921126080246116852313236035297111115364453826029208591484345697241491070062436015618661705483425023920970634325235595695660435811531894403501215797039544847669525395563287016082990811809376047762727714781737509693007668092199525068298708908676114780690092978138692365455907135267931047763269327457742684491283528117339360757206980560079234398951144018026645951650131907258932188702855860636699480598547957697487126590985346175981222916882428879550917625191218773360955916402720670558099495678632614773181259792850621064765944764839008524825911059034383364752803342469302999026484511859126015401076417299713250695975588834619949169809599531776994415682433234932835776079787768738928809622426591014990677221663635869320480456842734909786206005216968666939446271654722637747038998766129090930246571232712913793382419420137198818420175392116617385935883013924558959182618803554149077040051668539524552444421566410466016666771210685883002669645882035191295840661765538436809447060414309953042171130705162062971590712007667458381320651818549193424163489289184763671733201725542194747434606992688346695536027983211079931631866908767385807610282482463672152711922086391963228800873850061977607467975503882606643245285797260961053414219747422688453420310894085947831284643036694647516387820034061193092790907098594531434686600218776229260205573819846903962093523406313176439925256608373600107397282773871516740760798384211187739804465367786800407914892253707192520437967885737113606413686002515355682553158415809600540860584159858783176185257420405765433732434214340460018961200379114227332432557369121823167847576282719907936357491112887332870586741842006457785276548585313843802107181337865907893302010089819789871110988722699160844055151473500527442228091848897996268334371218394052633466876883372514234148160156749185617261713708100133262090543359193258975940048622162185443831063382897902708930536739746339476187499446112827864038890660733975789980340472367626916072680621578589099664886230599012620313288432032853107823700519166233516985936489995646034632395814562345463274840336557592581204413785115587834145308192595102208035191085673425515641239615022605519058035413224702354119855900449420219821664132720189568619698602056740997951961127211559382458654323868573627267440881755077068788049368010968922173243780384147798417696890587432434730390783499486053196791468573269256222914824662725676489561574537966101203844118771795357273549986063599901559658124550322437653905614817388694882143186922750060295444386736820062728964444809957735948774410832984839872670282846420062594104883964821905913521288440089239930633965831955408717022968844116275773230910182798967049403837599954752881895789966373424893174637170354323591778630731772439387131137025124633244809567928511232545997685053524707554196699336378419436467317295026601944272705717877807340637993093978060088083269099047245394352561525053621802573681723080766301822991408608261048396884361265926052731511278543975552539135564288898200093053754077993683238628150802951067508794305534180178949841831264584343376626680206091775147681786307926844291212573588134020950826635050495018537710863748430909204460035627841831413937234106950586919107832498009571018098028251675099108482124555013263095294247738305106569838301789896451155492742399823060254359086814919294335667696109781931150583618987323501549250666390852124022923613350346300869664742020505539361252413695253421356018737898245143654883597201118145119084687534929226023718353497085864752596474677178231496277687512575117566498665567665038023383341684220847654800454216079310056093320821987131515097002183851923216344510429990812022431538577406564315997005367342478456517986513023463368564789740104112986933396686857623924214527066496213107681035499419496839921525424672844935993510406876906530414417439243359972120904402948828105193996630828424871961650251168704822565784025289688150596390947328258788960799509203035420907665082397051693451007838191194853868195491754940713367814097596105575357630245534098631092599761520830524961581257474357955085575821964607105344731812400961295971466269837554477646566363541723540915377327212416437398087878312192285849040099523525288685180236538392068083881435351418162420617131689444056225226026815494665447119058066686204002576989360374200573690420330132721451105415555626942302756242862875447902901142798311803080692177091873908529754898739551496280353405794383351256182045517279664779818114866932654777261939538792293059966589861882048347409602945666332605553885812458226481444285305290470793508544226452536031124043175011548185974690547111774982966622771757095916423792627496000809573911894690930856883074350685342088962825518259021796190692489043226339270046121991989017372277028971566730950702667687131921423164427480391923022021475363902663583595627282108222487376422240680622722151035501597955747637019333002677559345065146167012352437107786537782850678825072409379081076703417396303958581153369221508214100612402594414972151770882939479429075445941708059485743536647276379634292515086186573195897548305228425276850073780826697971082988875711384435090092990405419487381002965712730054824992227966175741705306795468181987284563628713174490262967589931846904992745829474812558011862893176371019540967257907718598091385776409009027352101262146057289870864182978707361989425431503650125708130822381963799665479420759773998016054740262587773387002199909802537827221057673646529182443978243423870403764076166520993352866597856842379653767771419348049950348887562602536219238938776882337975190402099997578632376860257507316340081239395849323136728073736339690074483954486317393326611326523901063860160273628958315406878338123762899757708213072029741869592060716342878243824881630036863195292219224044407301831470708111079390670824719015874749406036301279853033615945469025149028336935285939835488130949798904843579425733759945841924469510372579410256875828219724303520959391269082464336343564790112638863919703766976721674711105499924504304824620903043558552245955761652646595853115067745496630066869285722998476842778096541519720659565907158019787015830463616454249544149802759808602226384874599156564334375139010679006984723268636979127874070839118424226694685088737849102094921022222528497035035026092308494816968603654544646783673936212746883102425991403521063471554842642772342419867502156326353705985908716135331389913340514238364878630636463468256792364070086824268145585613762408098864379000113319531591762207037665540893748993112699128253265725976336855307262810449012989314004214757119907664826594890815716688354584973608425842258238801164924825568065258174525941131012275103000701630531061869183459045808990709547857051882413539091252347452999187653903717002370851171231942386082431817200042785625342177164241662002885738518414070072084668799374096817881785432078524789122356745988383372374282793810269405980128474737013119824113943001957921699061897535315446887209415783791090955280502575905186578454743144783125117606367339545682278426302157112608872830519182743079265972146662789580186331581823459815967925925477094128985858821395823063011648266026016808114127273035420642674261948864164983973377329644208950220622032187910816267887774040053166452638931128636543208400430843399178182155000939993778582423387927041343649307980518336234879854729269135430651100520762410600269899815944342588427291003447558833997747208303735040110015811269876790598422060364861079145292308207295229385348075080311203416339771392008924032564725003655407676384791352656477043108060272387209693578075863954853259998668915532479708160640967251214788686005394293537292402225908677020457740382913808849858263057531643582704545834632325123468338504525416575342600008704198913995204498879146362477924045296934168899164819647526790743902945144568907340147486908919696813162820135755715694753701837432503400656340186671939799925155300404926499225177552766256350080777429807504205688867962342492451467054752920417024277307574991735561401951021362780935910811531976143774291720856678362588128221335979308693229884557133214867042026916779335360286276315678063162356430505942894267326697802574299680033240206411881368481996357100951698416151988825522574701275746311490307524260843722971107277620097750270997414125772329835401538072155887514170689436941036952556572095261041275152152052440277565359845884130311890039906952917823032792929854015378062562254210253038085903734193187796659014704155530644228414112673362571546142514133723040867532978241332362836867910476925488215799986933839340117479380713463948665219639245619855181250999714268656049175951479075970570985989748088716639662225672323322163670101339006238358928665090404092753301462581843672428507251995145965659121119657772691614286604875545860896445467453877257792882283066379903062591123639002348875672381641659567072657766957173124533235746688465366024648968763116106999594470554642763260604630664598202510485906039017204380930578683480376776084807814496172145768104042348324822732148963883318859517087193135385896714107709855667973726670520885812450373479792118822059329777841513577389086573944120508390134384560028718270186624608607813431988607504565944899275079415484374371185871505147363746242551836602383727419686968402607627129334835164659485295682455862008738289952957937254414401499077513507965784710727741764393936383400164401096561453794371647382944354306026259964400377592625522277111200516066161001785800434222409455689337592244650428897552882151530594473169845830885296891634958995016255491095170773957644299373999323320633660105126491191195922685993147454202932738156647599081880956466418140017240831497263777259531601946651493677847752253412011550569299008396147459457778337118071919776494573926502974234142327724689952552774383104979404151181367793061004469473320001396637803266796764030497742872408877713349873265263653928181736749726814104564457493884868186330892332076135665024627774141729276416033894834060866609839406404597924949881562430361834843779252857072382226460116492013574361597390362984480496176607008824119482743163080480999203933948192205464944850279794951772479226364712090900013545195449218641587657873151206948461795982814679496061282080690966232466724921864374911800650468048924697725338780173463749152306344660845564234419192356299287982169216525095915270143655821396186610799424730514440697052860632554857207980980733961808105675519759528002776626573670793800574758311799763012751471208579649594982508595106150216973074332912657633644071280753569214546326180750283967330761286449079483169141684367974581941948389955706415788459063199745758430749726659216171143866467264745407681591203070364489010520420537121115561441090315037871262614990564442820833447289843165000712419663920118144020762174425889777563526272954174630509859652548115708896825111607401390852612190634093446161183568923049044955005942250775477358362119327272492398924395637667898513835214879422121928403045422697537182551139816643358512856503423093597379790602487897175488056046702593207945372116897609159974963278676423850675997549952623931477019077461327876629897043896637616152655151189731395749909574719247237396060593776759309617989051526815558054733002367902826800817331134007051407023569234939187427196404369392219554588461672135174777973236024986115230643306665340681721710958658817154083666205305723895449466369872432903131976038258154641273410621168640898716268794804748874009030427040347440885707841357192664490096745367689859983914479500470305895675969307293567558575938251991991507379791057009380925569525499356810849644242018982868687818246841350848919071600179309472918649528727901540222807328332932057479792714706740433324640169981327776308819025147981970794907800176361769686364236054095975536611041942112705810798279248330760420754836651487678840018518507426125516820010690098160188342923846137426762583303095478204252903659120827897223711861332763211669052648443681412119893213720647584151582557258575129488627050406429153884320220521512761077047693223985525353512712716306038877053284348008196392135842314783833262679093671143364473758925893062913136064439262992834140412556417377983988344298002681463781731588230155334737322848801395671676002432250487581443951499236995027693547527336146266930992498858963684012761529276414567247691967364625968812439794381484733406852195133306601169606171017677472779111070968326636681782756406209750652536998525358136693773080824104023866060715511259120210173292263212265522596571799411345136355259697426888625017801883648461080094597121182148497227075947680830719172419187784414383171349715755537713145600619052493269901683133919005344415695535493865349033268399280119494849831713830007112723939822317056340987058627827895622234803802968807386895803067245975635715806234751109402860691340850956128248454395329631875534447021041347776452843450659360608090312836266407165380141027591438051704780173435980049717404507383406393071600108481038050609163311877341021274545532189600131731152558054981738938108594893396801816094903268081259716679828454121090839485882046759640677486035782318943736032974499073324420009024361078960749237498150237837395734776541417213853182136558738241395421672294123277810816349927335807743919761801616307023718596588919733440867986311135297583619546365054200777870471406574652675518279390980695225751163970221960150790190537598484613283557544009028721120818792313987371757181943275805364351129376510918538778934789375169907875841776115831277237270305314988534950666955612368054858475493032164369799655702811651317951778038608531841647775816282985160013861470135796374941769282271273835377080447811596711416884185910105405967524898247666920412614508833184357480842324423984806683011018026815919923091279847288966157468339404079782309001037509570254165816699749585857372338135919326684935453272967455546128094340032439449917546627356485850034183866025043146935754110799573215927223542677987694442105747961130853579449795813932126173152482645239318264468382184946544948678970692158774969045406113512007865625107637397729997389401333629184758597591281795827464763967781333607758557368094959298175211109367234893240351284274053622929239491452883200260359038780904214866600851839006846946687435092983085629843420902682213636224616727663344973389814150044143021747255557701622358220349722117250189936469735481608798576881543004900759882279416144843814485957191898790737034646950065674296063437873839757401074325696224141947781794721104409256651936712385802713744631568071011958941155445241055629921809756214135818957925447339187703014128226460557862853522899536269366062053893216828571036623433521354300742094530317190388497764643020646456261097256704441547845233515231663094730170719445978079606009324673823539116247209639895475362697789956576442166267744787401826390238548372441644607960077600184256443593421805459969881718879732126686428472938427436350608109615376321181466933547653139292775584188642290958623814683124325577322956994769905797918850519301170623984948242246163479869796264612426698634551220199635914262305886672721362608290607447622701954094325457974994271722508526034901679401619096802447258026385728826483847814611996259536380026977667163533536085950684362102230134118599544926932795554902887341364159620794714167999377493611031807173878157868521838889580651345350399229940392089802528905677978068057891297229862733572147465038451108268538345030560865197433856430697899237465059078740874642737061963080170691962472880431737772526640629521350473946749815287077524958887071689728405280744582323807156701064365488517592890209676265545681990355983261225266124148642813205704066559923004720597243817920914077528105487109584636833059525526266548329719573666248858891019544293200081761726379695924684424111152318413062846856647391905767486706767244172167895332091014173490809932176901801341434687574275156261856601116435142518340750705042596367120645642233967002052018672147339539536643812632863180850643288150033748990191908113609651818701950791719215144849801387262874859208368811653812589931129940789995550006933233770325641396103942679644936557167274782843933231691882266472214159634465323647791208963765304407418894095363168786798462822017534596496616590380035283859050426103152048832861939789574865004505027883317697882168293250657062945757152918543251379244390893084764612352666203569387213977450566510836815673058301520369514880842513373804288958237304147871784507327854340420787943502807667685015222499475597272407329354294657643005947198068185668333790233540568849146006879366923115759149474528277408796575550081113182644688025580227633081491913939489112042671397656553559455848796329800610617876997512708938390073261392017166634259286379212142622882635011421990350889162778161357710441745325618781002915021769477037342352178803571045867727213341599921310036927523519310709557587837056499104283002493524458192066609125281313480051425129682460217312848798624990855132566447802111431263086667751109974830886062611641602348403751876994592378442679698004094187709393659730821099617690236972411483982598830340405710337115177372972280260460539994130139515866344831727046713317431411589778004300829611565459854120494954037630441214622791293891045077529102712003814437840952043118110214391665643202845535496813253070459504981405531541036759889411656815413057333196600239326564110540078092040535396691866109343304775018371491750110029294907713357632025290336981861996522176744171590342724305345060535393191553141994223589435846102207165105333898887091979005811154017457176069989974930115730161640001175651024968140451701435398790116691432114746853481304727721257471794514012649400951209767943314671082223270302673918145848632137859270445642740561368260626213804927752982776301310364634015066176902403019644589213053570655020517855108613141741988212489388894061465936401726635509215816384749314027805881418861738958223953103753469364460311492518025735683888979345429714138790165634392928695548919735067047323739482087692956715126079719520057368396307422352515247496397610747340125893015922606225457422779339349267984467617745553377625414078311096694456438634524385809308846832214263677255110030252054608949018847356583753462915242242668356312747665779868323839883279485044319185104084651728859265113497830477082304970156143176225571149249258556830768990579673089906752939260617037822467316251771491119981672541641868434116105093479365605803501727761662548274989116606277277209869106357058845959911991111364962253859788597990002061396505759927820662898414687587813843582234367772211377223947226636347166865115916865061840186873646745064078988822005816390336083969364642066994959043711546135359924814402932738957487389646689804251385275386292391586110290877340215220550133412099052935533380258766302068146929267679760089014185775852687597825447364868535607704465933915409801687021029721851236678752326446522158162004442664819555998482197224350747526296990983300202561520392324577653217323135278128385642344747785798533648648086640060564694949744480903868384460270505118253765630626408297572758284429764911569320313560757490799229425657207206520744077225245418988124767085061476101231511359359640375700366576551875526278307503195890734195494834662691435796180680919246634036623644334152138380666742950907425216989498187781637199025438928830610329918614029727532447322409277767815368583928416778576030116549080535222418264211714868139782777574111511423225623402335994848065189804956323111730662175860389781856977390291047150258907832782679461555373049959611897072832088298098681030796903782670276866148017428779531951198910460995651167040355796114148326456117920534869219828488321283179505923945128205641599974488878613734193994698457811557221462307725693766664644103742416595414258750400345291792633550091510843540383314283035478647139439930706780031806968709249126066040359066582378563098745984881010205194398590301065995548284682331545595353324240085901286465986645912623965927279551067651608929406803354221613090877048537799189838964228669433963339194745684052671746074518583628583691406487218157036767997554557061729249229478262398769102945528038578291858902914142216461099764706459197576167212737689084904635014692064939186405169300249332939687754553152973585969611353969130826034873176700820519576034047896309708174548629933016188923777676551725468714064008463506640887730741868740282520743943353482007856570298982561258024986466882179371940450909149888769563704850621006978173956176458860366190260189386317121426203872951942491704802959155571973493104468384851851490182728283223381933562860612942003213145714178936653402881425947841130786680261701901269306320321322852857700331312413704961679451083894061649030432934797710573308890340596834441663259947220958591342096847089114652875677098760500696401743470217008109850940503674892239108435438479110267014698803216310601008413114390724151501062471856386414550938132229314880247689182816451349984449630743954000906143597615805793736428371825496697158657821036628469404807596810211150308455421034789408846370450031737076447492977259448924000021196184936896559230602234049805699541261392981823747417309736225507758371547410683862755037381298987181457548973462752448059124471872186632718165385510124584620922227877899261574798188574108188939815531866495477509525439107380659154702553404975210936056040787557562609912017087830872992309359955326470119473073996152541485890136642006556149716176429281619618597621058016286943018709639235892063194676373453317476162584249889368728164740684511990386359370164151885986002213941455857857957694836635163659872196194475767173981087544134633892900447626840831847025938226844611424118063078247007605159526659540056246003654210111015988275904090870930373816111414789015636390986650605538975772654676708879908325006822820912934876130436100116089017124124824625054646361828018938812638250604306391095225201263587272316974087971449357026841170298946847187563983447444803587345192149280232269224416502834747543491710669303402198076738052213627001231410033380889193721576004665322900020801378611914296570335259232625903582042462019216718645506751395719301680634705524527475346119278003108003636761892201109660228605886154838858029806621445809983668226409603003741755258461316626762572342083800797818602300411118610222830400223712875997293517201005445884414249354337093864438043055327775493046969511801776836081355360395415026930611638026864530530288724892722257020442063658744583538257647655146195241392385962925571265092369861560252311261356136628546920541054591677423144204093661990085423655507618381951975614460998181334121284618802445042480153655914040014960231180934328045182226331415799473632185208908080262356805307513296558290238237603619588099689442556466216555788598230224232527876954511270968925148464558858112266554272902357031452880094623220555726033923167296424067321906971380831989576606236384468867503897338951400233313525913359615805592749040079840694850478027549872862114530645204311533896831070374787455896387700969127529562366122115562944109760951608169657905274427206336221950596736672470448024553912044048264819002247861445988401305327745088057936446519925108562865236451178322083531768126539920513836243443693877722198196071070007547994098806587831841721397915197428785605046094725831255162891723718606506422438166384240658644270512403953260313385910857588929633745742462099682237493274984947963809810402283397015410940703806672853303530718647535645565685514480130206289686006251184937810049457690392731071481567847356852333014887887840790296168373697205873982498918522578408299339564524951303826993441422087959813253285948821392711028730399401726508551554043793331453044942051591641572430260675769867813439244341541571473309573393099822625096172273905377838187923402257058876989644679162836660032051642565821331437532272931025114356731112960806632710561161987464900592928373623714119120316527121531728938711930392773857005038634611063807103950272319893491251260735890166431157847331947587821784406926015141149618588202608788186758226256282579549425236990642241082162121091937271191184952944844039472007020908544992567920472451190219368932977206814690566831443165603228877271787130303962251992570183879740226826841989695847291117284472499762800689009637315748267654657345087402659975439829167087900238967418052595348647380605428459811840533413948156800933007562813283944986168244311147749536848430661214677263037527589627251841152450323882644790976926365474537601452607011161753106977165045232201136406690851469771271545372119279026598209125889085246028062625011938657540738619659110007389815120640694449989322715355075802208282143897082027845043273790052628931634962304403724547178661841033399732879826867257699271247475474592824182927864798548604396106212018443551604284515982485081012378102509050820543313734813944936587624946321714135553013118286820073655126834830661023228450800143496229647290003886819411859596148025759481473529437607062590279065138114285123451230129817837295562147725926899363723834018897408948091513312389832421792689453729474566881364743979054059233216531971949695051014212076247660341720455199938109316959310563897919179069594057272315192486243949095114195417073655718698240526067239432508520673727677250006878384803963789642127288468779200378222276770532302304550816690396427424898087624850409334048113429807927527665551474767713961423705849476593301405268626468156073025573520037062422001952386075168204741451294802001226663255222485084505941232383340540378756716084049816755353166599167572546175926258260344412372285671508791807664377866279539320122961822120377261043836977632467156012179827325520915241423045022149457068767125220639064831170246897246154356977872274503480928525745951828581606507734363539606786620355963365024387353501993559192448752629839594078926713775487975923574733512141651344717722846226420155724429194519363437218123717231994713242663658626140580183850672852524847183091208202179535221014500991044391116400659374535355848721667569483439098737424502208575642084266005294260367963300442222525582364142924799010851360146067468418670836040324513273578638978454111871502200431906127429329134916416007661189473691491330012863240410504572234413008253665177153699716823639463633988842675013479364731950014750262843018568355124148236130937258090510061366033274783510581388278876464953799156982818330003814345509387962241860088136797880258876026068571708377994873589220653077210686253672091101931217938896491487332809636482415426449530510182465600670226017073522426799206931710212713540973781274912324581698158699699848412579299775770001770795130088447289536315879736745710776036641272892159800392243042656561186769899113371137566231733544305390379488806817647836153345892645660432923243971944978076385892127877772990192793788885794556915663208935062181661663198455140867928717181386133408190657708786973205073889367985921301245547264970768634836278543910286695969165662487344000615103100508009016541634954030554592493026859191116699966777986133923651774747393466361469956450047695027242565701889945875810596350625267121814227001690086258664767214000732494010544337062508074199006695547249967840364320142504994114719578016931508606669555576957460053787870046276717990829867759854269305940538459256227274246564484864498757908538598606798760983995482689066099396598244487269446188501626673793879715023083945942227590237226401605593511938543170113983691726683086651227087491704007305164693428751207778425471436873335515429404250207081492968935655942138981531473751141673356183287420435776440111002043903624534565587089536898693709170007166587707918568710233363330278763085344346968105056822545551526090017120412355565381869118576981737674482459005864669624348976338908063452870181225100349587648198501416194451683626572131358204259254618540247641156893477583802555824970874667257372681515557444734058697913614101160779817020588400568094252895589558796836854776859096738672513805863706817474801636861577238511054878457911289872674426735156124575747313889646669110674182712025597099020074301090319077388398146811422048195196234573481678425710169464909616974131258310552882913839500236629494760738512989416281612675219736013416685181678299951014819436040472663452587541864098013539731673100102606444984179616041942970933223013015797635471834251727949120112004690923138066866535691614890822088344136959890867778949678035313232528054272475868724079734885441590974125954804757640035436898182430311687847246686578012275826562582255431047913646163851106762051051386437453776393219551692665118054361305372544244955187762830244517212764920821268555792147916921994135952695489297874463870195647332034047728854413346932118213265026083880199876177075015088942859570386323565161234725625170364174253699390623775651174282557192870519366113761197535587853755343454088182825865423744539286395578342583527361150171951354314637635919776376549959759003436170641011155237155128585897642013057799427532999478571554432639879613327798292813364348269547935946106483190227843497268451010093715582438516406401653836522846194601292186895570698303024393313078742696853113766732353582360002690257721272003501164005882273764842318409975903593903320696070507475843815819995282641264000239446667755650648084779506418552447839386004466434013840920593217087683772288730412763244867496316806783729614426863408764089115585609803591817301716288858503091157005661933327546465799880912918606321723173335056668188823697198002467686377368548431703890328919663824119559956461222794905850794963850476765300834484058502134399736058706528277595069947103347031317598908105227280365953277618486781844777993014775562163616256147307032914742710151838342907678331241274445988494392716965354433209954678611877709424904725929230905827195756372505097957799480934397399812180727026762523522910568982986449723046600721113407863243566418786265167013802992938061602985798657565005425202287485722788993069448172965186163930123917303937340025927866687155925882159941083210797560296995444526558310990491582658304349373835405375686803333327770828165659241318684272744406925145218631121128029971966779293064602148803170956484177156277954333687255148195758064897279058113600950032020562693235606639344171582144322264475992667118921859964808895434598346590799884644116818324758467222818812593829323353518155018866128266029793249050260745788766600843016904493610629814123840612602846335681605715926714191230088195121082263755329364039872652886901388428325140827903019509486261938123204039351353525155225805085544073869157890184680220903239035514638485670446166527105126825493811756942528582812142303718922760977662391425303753889752135050541099853740740396617294336170424279869319561595451512171503668020920244688545939628760330816912911623318702127406744934434301460043963729629092986302961086703039255022617622636837202266458379265396486893270849633159776661933067837121185945654276614625747047510640033446526069471487433686719370352690420694069528936667589782290692427827504540381970854165128139683225032206407704393011336938209880907206521690301357152841241120306003735230382724328118728004151027898653326194812142518258170669431956634954304977087912348055062051900228866013552091448987419277765748317878904703196239572764424681062321321403289171500747777959376055150597494338503791480402677452105614447682366323490814834752140431212617654038064456207381649799775932911004933353817281975081439568585096002102537083250923356372958973058858450849620008416695420814599685035348267413513391029683045967885066911543923446108085997469617489295502383714260304182072759579261569579555225566613361580325909169876619835947277016333475374301999222744107115016235449653375783427516505380597087664452352407500428551377708486458625862496875157246864804813406531520694591504000029379935812530697864484126049165721458532493900696587302065955260110363822424678564712892667706681932669660611530268783282300072578812115246951767595515464447695186460899948015064313568442924735553001910480196715786349204786750612389805536572537112455914636879988866117994864469248381025037447248470479499776679794180176416760125416281652782381880497890426764585042095771264490457567427976423088427703764056413053677083653640767693881841606207538380322747351524703361039433428881065121274542379502320230168817448673518773567005993148321657712614162723685836485751914035525210374792500227642957055703403909236303866521708400728013858593370322717763406881440731150196281422663921977270827518720829112804147206164288300007495096929835861331355159396209204177943993978398296037698457486206798812603087892051594349131396289125949718071751152950970522194123639304067586335776857363889436353169121142399337552139881701241331921903406432091464486279721655891399165889586349143841833281622023408685233574780568581691980510641603177333179583128009548097827747774578939526252702258267898724029449212197429316347371508698909967272901308381126798997896360459720506054776460392833135508603512045779482926650218257917151108800708071686285945319924400097813197093772541774603773208056758781859718990029595290131149090691163292624884827754161323167858126738382607333505887309466866941119670742654592923873870872905949618098550096443724861249852150232138979670975928755896204013056809946584875505348701697232672345746741145267795179359952320301384136110702085216802476631064105614324711013606541704432628178806147500191491872162614206625698643317308020389235281036106148798562870520131569261992700598302679332915918843218333553846365142188366011306719954592552573290308854617017635306067760008091539923675752068219144148199783478148786948934589615579528894530831640599268784592620836750667453860325104485996818009015738948222476546231833675062535768198610849611790075660843844717035736759536674333996040684444454277335114487980148874690145429128323868025340394083594233523120591103307806179135849595602233412419939781708500065811204337883592126638705918930616861250498943353428161342919150112325498187996212592227748899670601319646103481054081108649326521754106016602451179456317430891978301800472090251888922142183149913506283697151715065438103387621594017565553079293422419804006494727956583323235359737309945128917084030088351270497680345493290318728306745484184635110226397450864257633159229945690562632371777887645394145024827787563828621050278351428944612471236812107418015113253233758205895838849560125478514745557475329932970743588903871741703263375143381860873515144854528820140475467137728725354672171122717714804013117474082651750415597699197046009518182983691617272657248887287961852850618558416634414609845647188473123270949068355863255951767648774195080087938187815930992570308436293018950785520986340444739109312106979821858466215675058471028521636354079110442351105240777677730029912640603648085931711721401971590112377240570165213521000340975133815120323955350394458858117628003084100990890162612795912746762030758839532519889604891580621793777555246547537998921755814040734610727039274717525023136996201065312684780257212251468065738870605344880335132413521944704171329356468103562693325795169254738225647169790860859950128444828932523929976081619402952884329358043999725416475210066863491675492387109075762297849852316075139923230415342415731326454126046556928222072845202195288676234260394792199638133335719554865067468861585953247556472651887827344285421840315200949539844877072252729706170705796880503421578689558654458034313881768694831531992228046475386919970212066917232618796762264411078447062691881971235556229446044185536874222280121209074405502973905462729330186035607359685533478241218112495741825058797798545617694273373198758565058262459360165643636437256836766094945001996100085824391111491474241790410751678763660500778377914853485304532688503384095005366876765279614104149684005203417696917274716088421676432377922917700305340056913237972737892462204152050571915512694826027944996825899944485420238882634796408708342370953277446059372871665699214519703948340282197122912504159605341413607249390001939355997077060551384574987862218034106720423749890351488218368314005946138555480872276589295766190040790635008683957054434736764762986219323546001407447727359454041456563703389891839564700917796010409610744038522261523992601369732450276774733095376363013212317753702722250053015278674067703013087145050886559259159898730680879504838221007400499607736266402989540023221241194017541363783559097382956048535177963139589643244646610010789346585925596180946116764269986591441813036410307782988844306962917734329792894577550930958025540387845187691970922709025408477619733674458405808206587368850454328699112747171828945904035489790054178313592334901947604150098254473326093893735811442558724555903521469396500059796482456399178185202134698073912139337244543032821921155826514684499777986783542567916630173400433107701337449076240195012916318383280578926608009497926626223820166468558687844865259224259001507662526104337293588257286430408008350558629696409641863401829598743477488401782555049563867250552047021021358639662776535385529591548648463792732695374476680762538843720716758327320117283873324510287649348352917666132236680313353303517198302231371668901240484456728443265654572319332419768240985474244974102026798326959590226365905172799337770315652527697229373903317992641477654219568011550348926831928979371749077498743673043337838523619961177232841822128703613724175101644825522310845513921958717188021640364669781444706474855779098680072403617876587516897583185407356865300724897106888137065179689703154758676716446477793055905865888777957332500358355336734376771309753927271250324235735540763524383969464504930736577390094444079251034669099810212825709789003859881617332103679319908413457589093067943173981864983816699379586092701695816552977556960571079082544241353528868309224192734967487092269738348404696157708748793929328691951490766794566724389215322171553137972174742011446158584242108938180493512645907694837404243337275377220196600761244548631454212783499614459832163187704042517822530835985245873299935131599124255056395760429760495978129045336830291163744308804619144415483294790954878755833850932888298092066008271647761848903341283338360893308021647131749209272119307930909749641928828934414669684211067022496814785003857927871909908137891993884598635129968935936537978883477064025660808277646225146555045323448703013881981190145513845391016216477912965429957914983603166892969194941802034722175606944865102393451407148340172706564765905700329864979297622580103801857287238153731003743726296045577912620623634636793829492536658942024354973178915151786496615054630450903781781485193244086609794831423604863942581176338998545681906854891482193963859532308666888913406058894086526911237396806382643639920436745605690100050298004546064877283014679686782399602567066361323529588416842241897041623050852965914287763318150680896456297752482035731546312314220322477399660846294648522474612659646322025853107245580642397144064816148972060139063924755646638304168556314799525978829870166072942501578912888470882339222126568471402220010451892724190845393553799565451992546644446705897085366977878994819269217474276190528214524365214698803104101978449467202566640009596907280967112478005318842273699750758068208776597120402702184838164886990142838347143556350670255815504039452337866048188454047953288710775882394911801964306700578285276868626897001978723462804079245454062455643332583081294868229663035706336084385598537841107830316662910678568517675976482165993132092377393335476844073025629032047359286445728295451316969675010322994781360623387548724512170449283758846246459394520579478071895784828531921549301171540082964226495539948903551848873579228347368056037682784460646856942804145912496683524996366479780157692230883311361465241946719482254957787632181851684295477373902032682344016779535495165287905591884068012172625965856771954416993156923238832713343122521571467184054280344885344664262290681913686791395352590843697119127103326873683900793403601410115426673258006801345410323612945418256777440739813848046806450199710865874060795432482202897711889345730633081707000464665949102173427753173054700487917391900078314503499162189364147812929431095042836101993935454250696486888638896487438477086926264908422027627824286889050689404815079395701326337945165135873706573417415919292215660354182897752514919410897284424703337542017730712683742551950569161471509145314680991531673467441076555126546146040291838742297896759605524891264213073649668869519775209033835194141066943758820519433453860101326660611091867632345757976260004817696350891346287379064070919553960639751548420491780974757578047438220060585001791623381985889721985410336818488709351421235095925748976983996665614752267816881242923905308633658978210884220537272869693645617446289999629181692861770333656561676857504940832811140690887903158259320874108307425038198217386745029123629909159873866663537814585695271517509347158609393888127560918726035860058292579020472568323182195982199198404073141089343642448185386543669222813245600702188580099591127319215840715956862720034741009314265998621492730292544493118119927537653282727938990710360199466179881688388529787444541604049952348470359463128331212792963003205654343355389652217776636107705443240309336531567223850152683367792901655861903341347788931274515701679662932667745522108653823053839100341058901009110656423807772864696470532258306985003649123916465631136439714173405069660252690157179532027568593397471470947508872934843081544752737632729358093556531652857920154613211963903917304912985703461339761850457990982085140449823941936741562785900541203373633181755818758407693496724916738536878093512599322710751497075017679421685791624376316134408531189094410981809885060789042087798458743478036984870465121049326121027566834037653644298491883834914243701798827740128907627745991215955057546118623385824186048309961497947184475723014936342558228412931153277042087620772848517724711140116614973851719297745424926342532833564872540137591271167279210270029916279208666807950445561666467573168617706231671588197316184375199806201966288897874063465262654511298659254390398809637461950124670781730960336762734109365181184956092359160320913352866571201446300219115302593754554340847454511566426337458439157086525184297168190921667093732777139095174219090706507162315612632149219150819235941909614714937018775700733355289107051992675371298155363947877394400369314381991573769614908917082580115321300969423887424495602388233668627433488813591380639528669636304634467643512589718622169058187540346171856159980693252986796175885852622740653806654906195448125183113794993968841837145775159749136376515587372711603541475167442009936320609680497288197821256553639678781791002815855135872816545975807915173033770891515992897626486024157067635117975962853794564546644011789268717119467871077230473849533609365243248962816760025005259408177229754995209629042363887020947790605695666750253492821993440216841551530928115270881048616136308269553477276103958452949832147792027519495428903590359340070347975393179929984257901857615660578932701098942676874650329080158181477122335936746433193206208241915450173715748200081924062530914976859583019832940598134587114398752323836208818111261641160608012814677699619751907622358353974358766643849701643645393359935386758812204654122297175162397776682147836884970071591658878259447243137466010065574095080711543214267194463662573592023323897481951847813743933594637475911979769878547096630163533500855683329054644182530278229805446670955969234131886987917338150796575041874755237464524701515945080825495775672435859867109159940178064349270586472181594786723903642863173124976216027633230238269620886904216155874502000460791244101409617415046462215119322902837186837222579640007977001639800555532482437039744716736145745919174544533221603179771324141702059493143788313193869718940006214374467655592783259699426863820808717247197262433070000337297244947741058949492953469686978261040220683104205089839939253778363812347625170476256413225780321139875682130269330246284263437757815499733500628485364487591540904560293116945165181723373858448963080374993296853275847687739359858209502881706934804078176674883640739955652882906931735657429494279935364458123291595007963751812412483105344000986897215970182202771994331229939419939937225354294421784323425786481979172144464195102006912938159092522975442459511463921530739756745919344344504795714345970941448361046596112556681978399041681530150252176523979290601331837855123386706075927562039257581289071133784033552341617910704488891308675605969861782188247671588118228582306615559616657701173678077374600010587049990055947330646795182999725109885698912174656892559313176037418350439127643511984251677044612496125776489999010464129629174950568860439757454111849244389394155877093549024496634755541289907223411419749570580760136396869594913899164240802587140793105055758676588802045884814273106559813881537799443830370302318514243250138299631449563618652300928666021039392123988328978620686313691658840766332395872987223286434174103145944169124581566921769326722997180568102801252994894691155564856976971968660264226732229814610641922158900927244642885385346405001291363856454776978956344873701041115517069646871479873331228639513595740916903567040498762219575321702357052046665102067171286246904710228436979763726255803466830763774661169805905264704356345841678596673872657742205143201747414367418027833515757429058745172429045227992455220255432169698439431245043656740824760736849710184706477721548855414490320804843020847902069775942357304335937835461809818287368010158107668330162119410573599277241624054548383407407780461783622659776300174660709789730410037811048988839227235996773257992211108177176036195273495593029700982598260254980987047795164372346267941110090337608716646471119530637870864703375225877512682530376026716287537942598142228374869502684460463545278171437361720785758731990304598513145532950424819610707251788059446854779864397574503338926981662518708184367603925115976879949177979226203299322222590773559681734788410984307453934507763364197582342554597415109976461673205533465242517394292459156141357135519861693503346976973640970738246387035526760904466248729898252333202891334557483709802180164009639628111605505276945625734907158298185258582854389398938878801553118391575976366773095308646261629695002836897623872539345050775500694833844810941006739022482627485329885295171910199743058584872442868662621105002270275829888858956463560096824717761559903185159778864298494485122255719845782751349322036502464733743422121450131841348003985426737071306081793739796477553167690996558711865397370614211775088697403407427014833210547464685783560543126363188725884758409768725235182047679773707009335809966782749112756778220974827520507272073103268211950900556697020160954548640266990432855243726175008832902470860920713577457537570681053132639803941485916855002826053772664095777489542184516075235577702638604037469959783446818577756710252323753043274674155451233686459311424319802713661946991214315242185293248878541739890707163754174271216765707711767626878133025429274979982697906469770893850277746367465029349338079897395076379303187251695475471299377703963583932801279179260763084105542226061902469779362772610367205280853295043615745585303247076422849754202171580845638462180631026170547999075018129976360458415049540105252216321417203610555425897655765217460638561489311881837701910632779472535165395080651529247334000704955020480724141684927669558807474717486236284244417804003887445448444586751699687610385853699696122004941290627480443077883396966509712449082405745335694161115476929567155735951493503759325579544705026982594086228116418137598283024735945297549930711922502790329843111831438359567967363241728615092580150402301699659063927923560262870878309906316170248187511863195084544795785408748692724136330080139291538351474236428277574620124009032360494196468914891461093696845769980514085807234127653635383030314994803580852994617748525172689776206937848372006120337121724020000672265836816165287430094169460193928289901006418699896430567432614347420554145907259818710249284694025832675641024200354598872004939165790625082447352246100104627441513993649441405571890369317657752491294685894478481977730793214603510931571768686772928794291940719748710875674803507600428880030478531759464652591946635226906781480009576391973525184453287945098824055828717501830380101254263155598422732036286130933795918214009707098114123132181289432027630433981556467808345918740145604652816014188141748650637017681377536890698591266260397922744686394826349366955189355517403891952830384514174134420169771274936057522787463497248234933402555115139906242799345143475311424691785591380634115722196164150323900220348518206112374513864570463987517635723736214726734138372914446864368966615392343092873099126479615157325234800906106348609049895332733613043548964800936887242909229511797468650692400205237992012749871775391397682757955889080318344773279535613659038348352906291381934636104857013250262464622050748863551924709339716541224648567329832288165082079584422130998870467674203200640255162719488987831139838406216299998238327330675980886492354606968822549462202539474604918655301788359119685434660842592789228120852990735315514471344907091040709098521569587165760481149106986534000152084494439454668091661815872114201528150360412154832901773327879723361870954789029267741362335929342374345696014065664182230990125005514484691377125822290627087105044967024934856309863454272294756626499179727142359517466257826146683154267501350604122143304452402263747680198821889230083589894785511890779846657789378243615034464544126252556231639953005146310581622827463745337919177763931507817569261574788217459858530346114135963338117349507293710109243353846951192767939750346783627768753031479992984989740811914206398480665555610105318493910780689708245708048568022284437604659587199127468196654055852748535413635226327080904282547074934521469802644864692995311197019116656077501395337369576214538180308638191560948150827526185394234317430462269006971304054301414961602483679068213578783271879698792786036065427439486484715699458509906720279082160764264775636612127827046893895195384201515932012238755386122391154360444810330035537217064392277857350400168972621098270226821324639490149658597790740255520691591255648993255688741462583920388123748086036814086620221230701039516872768892647635383511541179307449651476292449479827580454068281255337241774997626577475940853120548253215356916971769263548422643855895419455730718469566146576142943811160206524392872629687971267258797091754108418473922463266499326350222568197124772165768109475338920746224468075191709701542082537044795369087348310583991407498731202754743085647592234982485318943861034864113044736650850795816336873157027670351413262504082652012884025945765301392498455417791806539096206584452166625787735940867560841603157486422940069529822825739107560145684763634919769476015145090500247077247402126746210023996101683092822866572019308245544153823600114481874181265858823220729800771171965705797208995550924355367864146246514928175630309102812748062705863776828443490304901165862330648878113952589434860023623466628789246041200832767186298574643534248258242110788712395026227145580453701251771711650209302041021083511493089933001866244519258982613383272868009622171031667565844582848641184478138804684561437305848080703270053227504052925252455087096647375872025512346657452844715666111622082194806981652261938200145458445094104308442735891108613447238367853694625174000979865573053537670984077927287937361611778295772783311347726678457068076788192269846044893743571215465295464821245869880976898230734001928862772646245348894885868083070918610712552956885868168859202407524510884763242463356803603608607836983540614347074669009880450178712807915534952539584299227874400469167460300763403237551514308357085851627186864759675822440737022421919056831795581418648067701991321060159317315523846081017357698148058185350698134798237439550691437410428449924766321282057597472830411127479459115925586737747462147210725711153704024312608556945677674063785148044134867605660148182729884665207718808011810320717368527137298951537960478646426817359965140818132780239743611021804377457132199650124848621298515567220011476714536133523830390190098906499491526265341836981615044022181135852579185261417032781042498347158277579257292800037870502183432895445930944753280383193427012595309324844924294865822863528978481330287840568335009758707408111543400357337756534615835398415508114999049543919868886081000863514124617145965281280173585015381276033967949377626963501295338322385408078225471395117957466810270950856890989220269913102282474261719983808420058894921448647997853679258128614218522105784093423543047708934989570456762397056847233093822342908902718485511306592998765225188389806317884762675471170402259497104967948421262947748281017683711902063064120173197985776131220031509783174759353352506687794447368275292003719847093237662201681162608610782208527851520681089220933899008671019799198973054190731490273521468232480435053032696122838251034509358121635476443120270280030576059761332894802018571652406993036498786167472416695502693506011434539942537848565006076307973145755566170623114238238682719091149601223946268149595200688198688827962361846156346599438030695204868104434013479759496711386897924843726402719661489336466477163901532194072009387426272511505344933079361525504148894925188980658419824666178663894830426379759715815379372044934899825742669367759756956454585645729815405293135261480371732499194524157812504512407382493622687559567843326470910301282167656100132120929559418446806901538955403676876352265516660109102047734072608830825443927194008287096706281625390103309963630094682992992399394280532837779657100621607144527369303734545590060490205475360499050366283194188876794067685305888174798825041066591698836600624442978211129948947022242979359295909858433333880302182840364069641219886856113800435218538663395798599742205285461691298756158533139588522624954823787327950652905511362982148296629805749574684221613998042243742831299968185855510114692718018721510432757842997622033633354308453080211813186733888985851178089842628669166489694275746891986025262109357324624739115030820604844113631828896052661762047064160425216772547110457428981825369451271912907579186240461747616911667262067893980125604387270332249473579842817371406249313861646511807092158132680265276025296764747411907764515092985643849384026162098675139176331897514494420964978818460254689300422790677909868283226588490148371162837126145475909841870010679982463087939234689681086876533935316030497032109622164062044031870636504565360715622076015459018160611756847329990645925539017803235942926198766751395826394890537338654145798822814628783122125704658401202962806270010971580230491870693887692842984319147660657018584209003403654276054476845344908535561684137403239406913802098043545003408465025662618125547759234218747819112188135662217712877389370266581639155833026690407262898515939216383798159673460882772472495816810340268505733105254943704032770226328960902151282255615452086850413089055526700411457313317409125279776302710789652735139646938036307291485626153956341968537932874638112322241891902701044838217102533656349282315378267918553610359923724028234162965453576039992310326072537060688904259100908651431386641944839074161175937557670600787066120636387858398462107207917136778507563307638319747338736835119056176601639942097223245141348859730451360694206017910962931440255898180670039782312299974910107253394919550713960866681000896610081241314707166486177324698397589437342956246738093565756098668060691102274945779038391292104390067695987933979050598661811281986168623491014285425429895815161148270937935086478390314185783018527320353665373624523925336350274928168066186757665264528438480014570684366339574292087159922591159608018844735993387334293300862402184797119662681161008957007889101368388180564732296056030487692728486516591108741039940484708769347501808222287055628641574341110826059993094599754138619663266044400006989483187397528795359079330074316980332378039701953081326855108817691875502237802686877695299091252709639781024728234157505633274207943654783404912174070065832708583277253372340681556264497077109361855813844060451955939616767567027261516295316634298278295386046282388699014709282740306306784630506568537204899779468471561505498046025388896306721270422762309455747715305969566718104017088500074771957674288255182384441976779303516916301827178698421180299824884859519797962755608395952558392532607449103724244146569016683080327085870823268411733909734535687165209570749019814511726419477390306628182106027533240869028652856514045587348379450688155731782167692857996203908378328869287112517723570662950040866315743230959539797842425088436453770540245505414858159606062629012469311603690375486400650524841155931797428059861833623276336312088072207511974653449425515170859003194614869233326891252363095799832040826852034313190309062402047890833005305719990275653256409810864885241710333814444574148941221245048977218664344036583255751479819992139091958171891778611117379357568609072924948735962670501020183024124250774540503735247269477417917800578205819418036920914967475841728224683033082423397324718236586448049989232363359641861906001052738170366948130318211088400067630273994166555296894094908091429597464551588358554114581460761817045875473349006098569495302055130081281322468680150230203355548831119054198490323443904196970336978958600638014030296669170722529489483467537080057912620198939828923879540034875121384944200491363254604289707950823014950258767055057959814938075388788171780619233908219481370656585672574568055121086895642015170173280138988830695533345167395736241142346910723394154591230213839410710193314896486867696025868885956291643332231552917649821952877451252747771539129535815606921074732024726125434896120495495593243217474691439632284580590478878520759061315429781941006054613437167207704310006143445672985534513596934477854629318276241841430860682974845391144711402152069020248928520346805841212818084014079689386214866542567292879426977597322313943493394369475075549868043808988894039655763095390496233045325257143234800867051756625354501165609109964810263734498850878714750314130461442113408728534650124412948102635873124936721303222341539170473799795293085530738207287374680359902073289724403944636058242104008989362849299199267256040647961783007868193675771997582692756143698638295778183019183557255718177569885098599458569804694216423868709812011641824874686522489283144320462433275559684641892735921001108373490863897724166392393530888524471598258727571021476630439232704289104061833877107119421365521158510865992427418188631099372370254389716115646791047494521360158836765578352756857046286958268087601771584167386286854431566743708599568432186857187989591603642638879079160275443168198810332483171444082982475028355289779994343299160706009813142285435485743154550122837256686046743682327545500078307418254607009986134510267941631788961424198749068598107761147915158452563273410473764736738542775399789391392751278426763888013244924106115743185302698583188248821464616606464075154463827681664572221446543015304828076049936431569143982245757952739913461816864188551358729416943942826418263043652056414757682789590359387820158292184065117219645103600430350258701860609158859217639365796456156349155010296784543101210801898314249116537907593092549591298041827449408707048214082318733903993533195797045659836261135666874467806735547926235657564056409601231124749719058287892196601408859898502787483586020106006271858425397548740719274427995118611577307159373846334652577205386133742031758600427931783021807445677551440846594044154042437276410977517905603767158284756050683522028352580908755822603915025141449037912319802882164619260547451255807133142123129937131520296308967307582182235684347871496796096116620577997214619285714928511935199164766843925585422236512087773032398621372092848644576508854029333471337370075990836130878114444389706657080157740738617039110937247965423919003115281565568718746777987881589697080971661190523786292059815038367204704896444752301093266192693718707689118753181769877347024970675092609707550221888281703852528594084129173426780925202751805154787783958475809206107792784294855163499735253428859702060077700033132562754895634728940775866272209957105083385982046625894044179915425500574788244368938339219458331224553549358045637755811921039312862641501622630138565160012317729481020784527136709033228230869244400366853272943041454614259996453233557480498532266777157094442841687422553257540226888593656846787203200920926974653466748562810213073458958914154989097039469707671986536356299681826208947390172959053173090836415242648231224157434012394316862674335150960268974735100552495101975866909433010616515963655242678794223931009177788469484953460433061418077849015443472971128946738594506075734868868365916223841413833693787584052902278546608406987904152606823970046342193152301903769694753573588815912783417160015543034908467166516372108639982189474590021244453482971692114032318525969009923995834180034180782685798417156475836266778520167580113995378717926204098211650402999920347159430691240409527349197156106349182836568550539112610707011226541832363381887605053086839867090007052055497585401055200177816430207683061569050078610971883299564686310671921583128491175053267845230212449612441229902264333058787172524582311001925522507649624931691890598118741503754259740365043517066274711054004621515580417661692168336570785058222265060815061508759002356815614248034361721565044092664625199989047907894280075985458087642388583544722362435849505916029904406983211453224385488856758248421670972188145194263171366444810999113684715873903354350163846480024519051658250208419870256446619771809335043626542470989939807357773213593097291000516216334974162281619606459400949020195301989112503445175774043436919705029848389486263656880064692381471840976998285972478122417716250892968091125023069973361771001886282695312173673310207047490126217560783156397323375378599366045112031688265718549649994220725134754602147879901777886104577561273374813723109772385597546178472585115959496481743147121185886311816819828894912692304432546371888395853170028121837459575717092520306131299248561018396190013821399877359127452419752963189091389750711274431412015384439272278808716270480733685531126707768866328702024049648448278178547972870587166550004955824816391854119853821612333956743931079125384115163898285289340074892322115380956466844920652529328296128432266415357288492014694708944077478598617000851434900669032323470784348629743269327432244781917438958795167630475340236165388965454641511718540500008054646520885307744239309486910789898836593918069761064230183663102743736458010668648641661610564873880849091927179142196753017716001709926573632323477867106427096140883388086279308755007264852109936546664934669640870029958617672783504900389908196309276420984707591641768576489162891376719748366429277871098579651446840510186065375353505119885491866900960571599015504748903713619855843451580584831884352463748539640928679520370308781708899226483373103258639292524801230850376289607709075584533817149958468711521410756358300459592990711889442374933443674819249354400826570129397967415141149891886036135504376816687191977429641812437152645873678536516477950791196846118813050148699458957686747999369894406037640563655489078834503458259149300321654704096334161472808274402176269857510213931091281816393705967446359543716096746017440229746570679217358304447157443518720860396124903887930484313002819071656751467807963103157927731734501639799202001183335552057503868933769302917882683564402581130044568584997149086871182095458322596127448944277107985315349036389455822078300299184810045398033848390932648386729578815741241116210367394124564496859741834790285218715646479456649070566246112207541759074010599007600538743081167175160016800232625778605799617649373021170814991723213637189171237813297902079785662275226246068768836004484321309433548855411751986385837681315506188573906719319757379205558284241559741527214230904943018487479218205080208573316447697536532495618788370711331941186116830560036024761049978213599913454977207683779222377279843086034263558506654604458825224902389420086051045644689674482994633097674213008888062577562621684998103373259026484107884753784331874858309672457663461694507328299660842718583542346245774267662204421081703001028716374048650999881517413889703657800515757615092640715685694280973573565966689245414097305170525361607316166000309508853063515308157229386302073809273573453978429442074150692447750136042715017967222382921361097078717298824945491898099671901325302515797111525285395438594082923028593720374549742693604290164030002476146990785758793919383872574672082139660742608290503132048380992669911651643493049490463042160306364621173592643113463051248119643456806912782622871574186286908268366838351324095361245835227401692967421309315494743747692054096221151006060148185916245220471809063023822050197782865198665582100228875756959581124689269234744714623831199418177741248792822932518399966494547537440921673897076234934213517584786339321671148973017194686566600711761465188429729942111126045144512047364836962839958895341505242735254775567934939230359938508367664158532705147056225443322801855531934441287129141770484973700777944154538930130253565441751992911974482564820096269818915078464169793381255030914175781759567486058067361395521289112976284524742358863395885193059153093212053210022096419333482932059763536880580233573114657380978091152437195634946481710367547244982256066624387779679753180958568302711081190322774581425137528943216738355376818724507291533144723926806775726520598626372783269029368619657668335196310517544790342929473805222336647574147812470989433508566347973786980576722296835803420325322047114248819929589085008537105502328758031514301609236917385376170202582773406265183076294388608993941686399919402443291139077881134399968674208043747880813834767564360737883148188687125984961706216849142704138254108446278916627343100971135503186382539888398393757065771980355533161614893314302531740078924721121698415728726377258547808627190883278594909571478309591808507599127517406914419769381004773715374558480427006478214257803359926895464028137953326301621624164231948629136548470785118066396280037543034998413141169673889258188400431292343310890060452383813058257785977927863103624818219008723194274104013598110571233271155415218923155974495502652240302644868825198129646874832600743246113529234180316457759766597048689755376989991688777466523934456687339862136333953430829227127559528990063276973349896471115802191067750537957143772591498660782407729998003380007181889501802319081732127489700821856555598721904169218634814462269601009660776502465975846859501765025123433370979546177007483526470277303455044163708939939161329332513801238342458310886422438153918405368272613994552014758388484584840445574284917249180360977937416729953979882264840125417757276052585480282600392251055112361183359837076922055023699657476887027749295088809059461006106021825335023455312658780343191030009934458807022474668577967011395193006426279560805042711109585249436235362718345682844352391664463646042620671006713382659572175423776973612189681649354596654062889625533855568716466998189000382231532302734995031275307069562870362720262256926062560253399312395375026248181493014256293283144847142375720706483703658291715881266526235770661422252523460135383506464739693208817449456007732438224293869892515163382136519407776875086523418808408821418482146666357261553095162218703713780811715122607008076069976049081054085153849598526879455709780884782772832381688147810840030117465438970502298322674477426773440971996726134000181917900042972945799481197181425619588512367587674264381645175770893025944458466090683192212499356742780301766973460232191957109670604241593839889784129860772754017798993427901393824393068190018689051386979693981994296429167194776652635428250662736446384593736008501107370092784160935370315276025617107150428042430782679961129094537128579422531985214658971640882781703093167101444910009378108487744130233727278722705668367432658591442490039917758698747999660446946448635856472228619152473177659840934435549422971676425020793912317675451242795337503448275276903578970860943457303506577534140803105498864275391664730374477700017430934051396007435887305655843265546679363922444632760262981839130824782953243803663300457183657919007992141202299024537306644357645278006682946743328668408873439691776635176283893351494687067131460670848907106375178169302583143858298212344992473039327106585836929488703952204956045581671002256773176983984172761677015219674607496161894134745124071509069127846247882985484873223611527741520624705123758171976361407276597183260031184591237255004433156016635887013182267364521516032297219670622706901815462506643801504284394767348803044020979294391364848747807035060482521301107425596769600631110770815093070116403789604220585100818861623213435561164486581542313213897043407341407840611317325470042688361775695227789251480554578273364472174313202196819010227344333999529970662555412882828217377257524086439134492337508012768489301110255749765542544904280852271026565044925070722305189975442369519646737220914185071167666399816473437171008300702126567136735220073504619668321356961807611988143452249777995501212532922771366530323662236273264475184973429287274988924135259195089616188549096024764880492383867921890865136314768728310571896370217893844895224495247361349109069403099244579284075960395118999332705860000454117805015333948222188048718894756886509304599024831464552042490940275477273708373091549086325140222805498799364725754574496138276618900942453163150318429216145930916062606817923264560861564427103438890423281898017017058028287193926271984472158355549361975500688216111569911410915019621677515785350358669979985911485250176387934292802893386253050653404289663328169781755664806838348405785878922600442544868222841705312654878903967122959374559362076033795935939643975333473976705556307512362357426057289206020373377679972123423188062520534031523871560380539588394182499179463833681995834159782211413142879344557997409882501551601000977479728539459304509142745707654486111011707213256302060136882201819912846709967808325757352848609739189511689049596351140909127356487123581920868532961280424194484861592623596510774791695482113047633226501977991937183037497393604593012737509159570305760751552114102679623444285475357237997660469382880524232434025645047923684544288097495174327744981066661195666017808102792220603147056866752094227488049087475507614372361835821119792168697977399352016370395468280182035675740535493492695566391842149874536638868976352457305843950148790288626233584090280184566268982360406299571858412671918735692201286650001624555247885150576658789440247184109042991190398812751177177558375140192814810394550939125847187187725207187911935315260588633476389742419289276709983350807888262680099662397441682976462423519061753386264380240855193329925700178324492533865059723156182613732217667130876581253049135488701398319391812511561149706515601072824492789229696889216092856418835421085965852034908301745511738931521288002564219966471093485103165015992816991512103430449968652186848572597657012197172986388770130483400018055944526659752229282644571203447089934481184766834573059277285425383505640005542587054250717650354853318489153287324045727781925913908491098809453418234899094287768879777888337623526832940721339758668601456616123264975049827762197014378520871486415820625310350037364384470169278209693862879558176645404901541729872603234654731876735915510028850293341501125655602591381186164959221498385846685582025893243884675969242816665871625949323714556365199403804550894907170119612737363117209842303182190663618780217947136375673805122967335076336527497642705449962603397659715378944774018368754100182878994545250428241315934103791094846240883927176462452493661622412707530422380483955361844967034948007055400329311306087674565610362789678405934939050211562741419535312439533238208298115560994745824306089760973918253255037318121419183589427810096357133142661939277067225837498560417832580912846966035811918668872716686920589092647336563431341072002994663876941947948107323300807502253297594645046725826865915777640042157562556710392686399447496580690720978453981806094500584770824761489966817063490374497399102284604501619657508853950352116927526513603877784744406716276691684571367412847976776348052109645913090439790462054581808827909960684165136727147348832160641373530264744900647284515347336626301041456014553049272257585319534065859545957540123653139298194243798518946869898274015646569108445931545817043428495026536122630803281146318647059843692363380736258271104991669515923407019296193077690753658197726984786104073652340886056130063629370711525223256087484974383936162294874692293535911241074986501692205003452303812864003196025095033836838380433893532681430275956106565877810048593509771095779245973652932991104698566209515884301442805306879265110384832307710407760672925164767410457557315113811080038091434073581602734526292730662833829916724314321895445827589429377711657000750988481929068184836557331875448806086332648165042337699619402171340317628972256713091578870033442032791331325115111135587079654113218699656000056792372447410578543059859702495691467726435336868101317271069321849775673675916059640097460147831483239063752787996386013102757195830510339726847299107409467319149889039817477232513961916100460266022873896674070938460245932777072330088415546232972004776717388519356059390485490267674592751985936974853236192439949530440713001412423495951173295955167578116572545028476899477806512459785037165803342886730162608125450777990649863249097170566937082518825679696117470195111636364200094110098604577933309955726209199334922891987720015141766357373199025402120503590396438305949124658244797830074527950851726190183629438571923775536386744954364461400654651429762182071549855367541593817186406208623792718063123854893821278006630275261162781002124411717811101095743344455157665191222434399388352406496611008116574205084954019613732205756490333462828211884012301838508586548607106112316170835502507607245918625423242385978829109349765366225146193817014483642819076456577153981190089190710650889430717423063518421269957836940206244588482939988274903619844198325301719136846185982374078026549976215246904499880802399977146763110620021746094565999620884724285061373140129907466334626202712675395476415795669131799013037915351231518268530198531484048652652714262045178716299989131593088661097215861518662595723562827057516612636559308591854125385766869970490901450259015218889196955962551917082829282551871302244292167991777168324989240579203365238855618536813572298782465976599519180541451014464949850152966115930828420459801451649130078384141737572295306254359306627681112648078283919004055036568752864377159795395126460772058343775472844681968754929124838755554218713428039097218573864425164372850205032410912491738744419229996446799525567629608612873293737231697964598718518937341962443324753588176521234044381897596571373415163947464252336406190956219350439274100101669961673676657941058551029406302903052925009621032488919079448356004642581400034011161101005415260453506164359552772104589102645242512296740615193011322618540007193481273910273457607135684906535214459959039995930744690653221634354218854929423406629323303069794837781013756941651896295932718718960347660263030118962446404183992243021785034243659864047627016403427528997134850124688805673009306312550994958050704335260652337346303227407064388933254516806431045791529953773648981922829341927529279517205842481224266007198888775009321604996978893718669477915098055130635095821532129521968749485174581547499208928805814746213953085647514406432577260666347839052208962042855557092167481137650499817835061015535415738483593364537357016455167655988094425994664319727405479276053157458969021010057119963223604803407133327427636054120289557365914086765882833517129877657731925898121036893011636768006506655454842955368889827060009549513522335418806053847468539230010802636579396008695000750086092834291421000178752159166990002258889897532584702493812559562507358792901315237453201628324314562194128605013857341766185420182841541561349525602299381278254428311548355692407477614212410385751538776958642466523692518563371678633716682983612396956578323887684524907809891713414242231998760229040932362189998242481310302285675335350827777021999209417937716943487900376764316243792036379882116722367938644158468910493040253349388333871311253635177514822300250531793028398070110749730198008986424984231240907601819347207258850356404318833440208004591360927242377872011249170829850036274146804402193688074906676764851426201213063706559417242915888256026896912467023430637174750457444140958228969758441832816711721184127468221154853327263387564599176906127393537821111444879711873581113184218040159817429652206657074932519441483432507304498963529436718675646229976229405327111752544397504740238500906457324781370078059293312006302249426692193837447587696140665117572986759159489233860966504156579169016083429691817120700811375745716574882278318400545188797709700348702031711445315736631379557677161348245775925236096458647410265261884388070327286973538110928852435708872000264453697273439176957036568873099950049595003287281029809980848220239732470515036726513672454093426865910635254643401366303189685433493243850530219698370523668435386110145117863194196876441825159895520869259257094656074856482921195153617821570996838288702734540283655134483575933131916806316554428995126324076836906211191303284593388803916917806677343056128997708914614808919786839361564420016093751939752493014221576249483356648992318742766946372955689279284359422811379033667163010904034317909622173208896889469705682612460927162241784441896697024580640321664248658479800367613960903951024827969375315439984685126038204227997185847192562318336678178710424712015045661505732206787789832953562054606838954125411801673093937852160367041421108921365908076480391547480519279195312372306313334860122890844041547891289876181193930997629144988765590572097102514265118290025910537558096836884029267110002551332544540219856785761207627718458905958988327038701046245748401039007067871291675635678455277039979480902571495094179417801912516895677935408715125889877411232756802980582256825577227076014125611072453482326492868536911086144593366606425067113613898944691546623936929333813941894967105676157438873902189678635562465961696676428127621731546413550415270466691599846152607476661496561829659956512810000404892721483694124529463293483046891848027433992987856182370297879722683145850532281920053471843081156933736476708002464938434715633090689481109150599088460942492118048412894075162312151111006122918177376101545494169358874197874345803321446435265153891879729904764424588284844664572383337349749224476899614991556370643345652041684636564547104144894457866282948944876655608952010036621359026751644705146600417463510035396476888934543687739590577965717615954731964808888482192905141033734569514244529942527085129442191588558941708157473499003132724616637189108846116160689642512602151859156971649632764231837920079698608715969373350292659271343617058651715468921055448867924435531934664759263537426135103972525234569418297281493577196608942767857670207125482531961125017862142346742042947642466525861897485220164821462791936562139483470159343344075857684770633147156936039412490094196515130991127529718184169065319699142991257525055195189993633949569778128381042018312978076537534119219103811737943064561619866112094293880616162388384736640125389435614100472199915427712301897910792883791580318643418594139430632291495559454816672219432529749220654203421559652173660944881165286540372388228164040072337378922464289399563820458076966638168167510859861463415333633228501096865525136151353798898240680922809832803941378755986519641022128200802791105983699094987557575389731814557803850715214050910417740065089616959655644299371206032597174018648408809079368311054582355288624924865539924872804945320683412705296056408193118447580682565326961361454566720348036424407161748313387830413424460580348154422873301798772310059383169875053238548060415843533017906931506546791148161470475862407733828359468807649000975486034365155943467046944383881844429444634475020004101577080040051730984808007880927791840177091401742316419656701039279106148638628584639908625704196499889688126614020447570571028810814597022306014039742251599388488486430341311850946850938497283818246042683742218813536978783446792545154929470009651876768114264750988903880328166691076954553875074899753796682905361608393065206864627056799232564057136853694999545812034602124416776677853305704452710112758570308386800772079567085640664611817854326826231401518340094978761161779389081112698012738483202343171898902253729380085538274015227992255308824860910964001482099141238320890429013586644062341412121328651217278437171374904850071821018078775574285825028302860359534511898280089298408500812137628647985690204478883595814615905969100770893099054998328817278782814355710293037444536775179821674409096350952634979391314981918388601432552360937104327819899200434348626758820535855147903716956585642458332186392932723522153037550021264835681079841255112744416705780988894361454373622128463756261824686325809394522110292907407281220291853478134186783536866870909868701781303036695536981734883065457275865926250768896893280587674730255754670565058713387387056338502757660636646072225344117468372912120545024011214885832377623386856541514138326011876885685232665127289335781831246396627178395195830864604685381707085494726303792304141605005310817161171847208325432822715235179442238657464355808775074846982312421277057678272541303083516155074673498558144138915687651033993131671164667073732139078287717504459225269992335901774726469918542892239341144356239294387715801270141432099883875243111190818522533709303671338371915953803426118925978553279032022658357893594302783002691018866472973557741128218054466739714458319397475378193536089011273821881694328837077423848835054978220880211010061957777477665992831554037409424601086311494305081234365097245019668360394381968275686571044561131027039220356299138641490072585664482007592586503985216479695653858211984928319337914846751041517802354962045096393846792677165980836351139846937382962492797154856635195644261073370826512353834193489594692775749670198103999343693955400695338400855258086981253910697458346229684584137995979067763413603653277998421669104165042937823966524506078650346601570666918209860368980644165346644209771032948479706899443134710044380768389732008162876042249508558999599045727394118773977529442027887623103234495940140945769617593313488159803957579905119860518694570340532439891118617632951557807239944643925067231999693296176194048845175079823676711285910001501968662409658532932775292212256447099888925471330548798969069133050758509751901228960358249306053402651147221740199551416079788767513162057706154853963329070318046692783891784308811311303254294255526234810476303623170184005915114102090647202212291172613456238578795501911224990884896874953500550689668845624997731604638355567919966827711272661894662808124668887993663390992834281760480699673850063429811514846189558881257460556010001797263849315579236900450240319354480660415146069812097828904988998688358354733360324507301735875719008764156724300140070529953274781552460015663222323317978071018800258314618914695304966983996189294175695156601959859284300894901980255377621011678327133676809934471845185154819628646297047289561725533946470432525039558708553166186408917684274041486877023851231032612500581507441875527332460746256697737023901713810149070065466642206626124068521837669533066967567015623584680036053769193510811704310088761395532656337044557913416113125052607383562796126264748231078566190767135776646141989881661562043004049433883550626427672204696937674763365420694886694620271620661486921525196389328946169390966607160056068966535649107765569491308185704243210759363083976395329069802045397043230165765879245693353220742046011251743675298628122717980677185905504835622931211698397656299188785059179720292753712781657085889469705518892929634607279360352573075540021029205130585128818147464342663918982169323380516720977490325012377384441342105712676478359472454548137358084982290409542112173350988381661254868443923522268033992341815876430339677758355068557760363166691337094857881293784794226190330572623599571503212999852994528757092037339063272893639252003653836250024704702710683102361626369034850236143814321717435298657007081921570582351924228922691195245597803639273619343945012229393348861531576919359378429788811772546521198411883792547978652875507785913137153488991938191941033448463136511625554377633988155421432417095840581690688066409537985348750022793537307000463148312752078803676531462061556217551042026127304426601353040410949762293836261660858984186176875323081207373983933905217570856568203077249721742504007129452462970885357182489826932280788438049949665629006107134777366264939378634755825422087335939348004708580834909033601793166425029757653699128100502644578274351841511917959748453691896682339685752832003796780445301740622669829405499141616093686840764033749802270287790589028906678747352221803152132104421648624621818453396729541016058147121564549173247746318615383418266928690861925438843431053163791479207903708574099109707415132890610863597797820278929269734634111290036270156275206859261897046893471326640046535681062815106003080966755000556263395438053538436804135937399617610382581591253200233614994493384114832916520377504667829843411977079462711534637780640854772059460308189190820540359750466801016547615179499755363312671785580170467091114667651284659110223354962310984150507962220718900944316288429072234944671799296176415024375219034825022275957249386341324405150466514214299633648705940808475161753898321712307017895485269161911065453014266733021989622942711888936572152760478963246382728959059931575632306397128066028723970321152743752187876645354688069987511528876134883016443714688833152419123455695657640078064605312435618516466454310362225168478148248522955034449502466407961087472396596306938464774640842710338023402452515938270655509611634719498034538836403845468120420404658615344017296879552110010203540579024926081845213695950313250722522941137788780416003146564671803628882796588138196916685815856732785751004761841006995835797876098523791635652173591727898002199270119887081907943957496484759031112769680055173820556966320786347207583853956897064180876881934726604635554579029019624830210376030449166113592413238018896668480557126325656930171081464600174955053003255096026415286901151293667706114553599950847114584853581314615566468267129210597182424491613560306977607643073111853417412682652793326121017193894743384289704240879779243776111743852922024080339130396220222931689369483127084314425175564626454897179419224087603168027733778932955137882598505036943444017573888258631459521626171581092631376617486197561140298666948444389144347444991733464410345661840421160235988947984033576843825540065362493691635267836368524898762073018129464873038028788875549371021237628717179190134213492781160230736073009385815873310456800709366735608580643089218063409798236277987511539827805185834588436052844268208509677413003046749033379866872099190744032496324870327519671480646039281440102826956925464150058137577466071806704857772746450948787190198312478947613489258932003476691014006372332678169750777883613364076231937546417412799538262132508542297169681603234574372236232617082381188981583557392076677775750646206757952205436088572408317159716019173141805250151702151989119340146357894442841099964230861712989449542657677267407039561057607547455477268418431134667633380601523517361098870230934618502525350951271756721321029262109986403341694107932197787440822311758613780905331734541502287792507535586079646475195412936696858202125158350163648583568110107924830806454595460435734865542108101083530218152338840598369945243757393515654552777001715735741048436940062070989886084012952566864882073357344499013203048786862755131555681867186433674859525017334986904310651193989183408980059666119864305551959349597098358365577160624652041828027324336114254320478091697213555422680725686764031164990989181102729018866957370830854232892988571116331650025038499158542705962475157207588499898988095220330437109918880456011455513213325509196681439698829962463010451553037770018434039078414821688044558605246302210472641031286254160464446609979793804406994647933142510374784383056404384610474360821237964889706525302437977585870528175847948997577042567039405708771390790215706482625072119735871435766332994895369853480411051243092216513589680557829516419005113273399262095174938114662232023262808332815338705274138813550320479445849544928419723851221894686662443972566796278135511010172570366273920635278707964906430536903382751749296911875893074006022312396478730765070322390710292185132197242404758760358474872040578451178355974268464618658942711926880504882600840297169280356903194691055296813001357069118319453895981486462149960027329297531068601509237832426156814857461933724077880631790651751306295730400317190930132460308887561790483639329804719582005231121551694863976560322577987638706458445812988871698007258318968127254100675865292826683413691038706342907591737928803434686210500869432266204943491127696448079695066027430382742274866397128725337755813507295861043801023124647506231981107084729201871633084844386671248662041396871943684893370623926739724410973208819271097657418291596116881290399851399398927744834092001319770642708039175741332769250032421117482521902967084050266231555942758900005268628803331780215742296187813405272365224837622226043569760358815928350174271564362260380052308914256139134240835210834539814147301462958084975447876440772733694664083388374652704464140980128067738966937394308982169423243587092055206938637937758082497285160227015479707973147583237339540657327074158335947615924288340233228628053764817735368596164870692283819477259673869472686132026848703598844326291742412029998541253992216215669489094259940431471414860931660082726748463441282090831506131474793141003586237821248347887698364602783105552990534034542549246855543882836926378532126455138329991528254382333941667320263731672420044589097320697307163092800876905760368278203000442653170242682558307808558407001738620200567645943273693415992649136069553804739864373811375593907705231860862687729328232221878354195134473640377827596722722466035490634632876506035260732546254497265057097619636984765396800244214755435974880390463996861115359231377918891750846199234997589744911225919666728216372323645870335920321168165883271328328821151786112738340280809614901773397307369273243478518226973018269259154615942977682402863175480796902939492092424686595937381188236376020141065205559335827787025283456372368806788720220804981051625349584493988419770876168423759432931121172771446164035234393576925077375601459084334315741667622372272592359964767302384086810905355583374927327820570215072210976814014951389370618760311938408080731504955163158288854826913515498028614042291968266611222191085335178494410171564616225529923934891187779067452520072076843232151560499673051651078475472204480727652149442779173165634045298088882140909699538103719424352973814185879648885625014111382089938116902784496089383411703106192202389378499440676324004421029956191142909828607848219128466315405203792933326842579909810204369497268250341803830348907535998274716306499915681826323564698044556399575986761593395685195497918159997276594701012758740273867867721247896545707918858028553939450658333536611170278395405413830012082631430042855387889112996622487780627572879181780820094329812885027864500822635166332435299386193349730638723498674608822161189247833836720190987208869290866643413737264579665848150543566093026888908613993475783291055225807375150401508410488447950753099418394611726955573339102617835806778404072543009979640026979500955185367428627942757675009637944235621351464794447105915021670400672306502026530213964929646140281396886946324449189198978198069113287335662530403691133468934958132901856851651713606216740062222163644876253109368203789276956713822590274725417462950754394138104195621710200876388704461613580984824222932057521426503315440915624618470769817056992088231926347759946227778785152510815484227571762787158247582971343350521532715261030293767044431825032519877728401186200542916438127083476377844270105309681670529615265650315261111383995864356864788736251805041198150040574401266972382996240600017543208932773136168129554328896757636927493804336927290136784655883817462844128603031246095627407985139055564471330236249216228269138146594371629597031466359846394941593935482147610025397979749468494839018558954335248378554721162131466457383213611823267986345997973158255633491792326735716810469744068338373841702015394406207897322080695715584304704004586031971722106854290485502417724365168534123740968553182604714714305416409664905440265135937265592963863938177758969527754105419048261136672528724702219689571644375611495821331294786367524789535344906558680584719962688652753221894476315207983198648909046739976127211603525896327483409389120768394741132049170573377505879190783654514466676803652018233956561711860444521224845819053436511088264219056926934281324516380844419324965433606531329126483135769262757130594412402879738991382002707756838809107855810312985307894956599691307379800535093274845859204069956549636282746143297253201459853106242077001631240264741387447108598984723888568542794514071948421191004136735019311477035979183856849976841982921462555092203662922357421478775782835534908555094409530798235186741834111729498268393678254421158653145474657174245622496738850108699902672033382598857647552377587489661693155072692824018019013381318052220375402321403601475273933035092324795846001789752152814611274354733220397156914822042686226248515913061194318116337403059462614478307562749061577503026310855860719461718187359438442091152623758555822760057229523291799655740553792630195245900884769152744399028145770271483811866287240472042461776263537892249105364055266046417533790091596651984734628034662183339697429904514664720896217316039571927420402476325000703320824072329305623226514128265041792318773435152788471608043942320903279343727000066483706556656125549063585266769970905977804039428553320753926148362859076202574318738413761425020904711055361784372326990629931970778699094712034145521510790637634003368179291699833238268464650562232375426018428801881057811609966587960105368038335380653020071187615357668944976602222865706640071060685099045737030379221890664121095149709033156785158286085899788135296753745949069398381333920325509028876599666810665230806607191261251061671564341054060195920673785533599770019184882086108345093326692787173665626272829872324952004823563832578677845995831589969354185683407253556948417950414170183872774859439191696271328155642321388152699246109552074241732726423585772097959234691617243472722183797640544139165457856285134867509586654353033833238024028977714331588112581979387832142830468814506995010992083270268107794423852010587456436085523804794389988976863694400174444359797802067559892833447655874267584725611312653101010722473828318157786750417413119456287951132436721575253828725803874902230805286694742603796770115993766994669587764887235814292070347833343326876980783785170632547633587511962627506717188328086228943886527408695167362371653549521866876977816696100587377935116106427028024360779497330149192275902710604572077554873855925552607306692076451006060876224103592618339845102867860858555237103086947962479354315536802848293015490381374347551886676721769765701868854515555464262911091954641346526997825731076182957040562428181871470984992614496622776485041765017216200256449254476606685564266055399359244366557937929984627343977199533243299552246352054586156749772862923824383438486099060922866873896033566514152531417644457049100965132974367063911924612498032438852893382428566615875248988608169917505635713023406350146684727443142979509958727412840484949841016342511820845418763536649160046735586774301245018849387732264381033547204701386371614376497384584140643532604180146101568385129573607861671585569993004794183529190892859600337839904030141011952529275830581826743143460767903259803613195138907301756072260267868105489346736672373622202056639723196725004013707832412046064366226541951263392967226952431959288483922477997259772794541610745319311774432519590172412554003991248357584468295148656070154353907261018906465316330345147323412933228800160058645163898675308631027812913898283282121686087654115886881938153928082296852515614038646274898478909717442423724213499076543131787175817042165937076203456564957655727064762456692923541213485768500369992606771065760125163818163311957594971768146663411506955858880548977491449264751014966583447365629680330713423360393319659392674050545124032829843950288620914445877030358734843263757811601674513354239238375424812271941560360216073069560647108884707207539924216901704971029911835830112262828945988191110508590022023555009658976003422736350452822263766837331649861416354999615809155584331356023570943753469696202878165465207628028449764144990555049302812426239680401862952887044906719990448597520884828084265994228318513744905765931755572431857743109224357993056007254045031150241593297192370233854618236441076760140980486597189442518871645066472741133128575244509373110861582682878659998669382397925690220915189535449306131746058421875333455739600049711167310862828326710777487620738147567061492861937693652984006841740590221744609067691122224516677793873948294323160324605210003213458427501946574264798750627241412448509726043737571046312492589616881202113544156019391487063966614810426784089846691629275022304102234005132208503208054625873824622175905621807351277065232779484662131150125751398092062470020962902993013347784416935659411074196406659861996725224206674182803429067264142745247601858354697232461199745714358431442926762696990308368433138568195747754337548574993299542827048948928126010272354592735704463235922478248033652870358073609082702654948075223858747121024761805740661955180627669379198172827041371135321948252141340479852360989570501765163509594957093106413227716242578218546470957573344598922876494595174876044256764767239586282893782069651763245948078830654329958186465214997336224580838428459879025728495297134721350680754225374374925141559954007070380341596512289230441708054404819168485145679600029596537816497097144030564537079515205144312185987397549954381748749757947995725348183352930380611942307605802655330935634265360116846261332666195325253503617038070889621179302839106761366030155634158702391226727754778715427506199481484577768722169586650394155589619228803316188935251077995623725702362569721085051583313464099947642794305170739545800670485238301675960695820098392085246481789995117466197448631910955781058204441274768538728754807767600969077343522652455357368302323113104716074589743064413202547225993966692288059485122085623613393452241834142781040849503125208275550257134477772291053659881689104055024729511619304695826125913980726191618229533358053172478451540846673666420138508669614259199144996452641573881356610857788141458960999103599356903903318724191732052656291145694978785594997658060287939995248727523412140414813722535696547996762714531519546108552882524959985958604558827946555140597351916641312645734086773093308449339615079800697140709873526274480101349284331919847525964552174818040711960285933840914323428322406716299418511279158329906650898506795849340165000607757152671684765439603977589596850739622469181708703013576408740566670043925400595267317567198613709225337113550743010801419798362794152184705356724460924464171772514590438935425823505203604536077564631325491635070462317462895915655941928310854013158759796952166320846673074773073320159367907100801071560235454895532146063501846259638139832605183117449516078157725792452176387052557010256689530665914637445998941181805570315725704357327649636408391143527927114391004794185794113005486812257344538797132974320453381483895930116445460091888380907088947051611557710636445903238770323650966531495760094105829678888509716970202642306005558076357859833478490878451081418293591313391831538754553161113042648138482142717806105599305574920831525012068112982787444444510470407836514895621120774341739937315084912568471422310922060338086254448395656390858321109054977739564385867630361681976556397072267873030708598078235137635543412192287111483253308401444927330466653283394304007474717234859030824027596255641825996813017060942546642580571694194377642841329922414534653657939526399960723361408371625455838451233027405411561369822353159043169845407899847873583802322759127414235024057119885281389222326331292123887090554559107293952760741749465142308469593373522449149310984441408804391556058364144804235402711740007323663506057445043772638531129092830046211977162024269641006560789541666286208359828359287308316519594849488154657376495101757257580960263438908738113603937921498510708175829786052297666474457211885380121779291142161566229087323875415797300558592837407463791960672890167769224167488847317991936338650602140704751099864230465732916171423663205625262953182230351193153697820831107755401816962223036112639295076712139715296072621223854603646050673157058095169097072804120658115363257390266034086472736308484801729093012951274139998038957631972998626373498476012196699700590066915640647332525691170305078370870492202843489871991338463383812432715529307300702968242815518083067661505231086051938077186600631951118513562030773329361784808432405356584167485204736491744504359556911421074236296146526125587011816619514823482569684446977284493104252547210085318068437381502348228964748837485084909698555739015009531865996495924851165144883260002251567807197507146360509619523967142851864734814272509576068771496825610725570825605703861496544053422496962361662932444529306319629498388309308645859549948845403456720290388135471019046897208459603642666454813290635040946165854946127419844265056803247069844946764171456328760324838795267266531578853561483633810240959197758980484482190986417472307204251465558258892330327965789024733134229172806953920026983959928770905745292120512867778004147715300451163260894333399189201706340881085113503813846838269897924556627220995752293890891479200220208764264925534808470933917282613018530705003854013474105612448134353558625579083796513511742283939611828963089444419740148291750398281874356881787838497284876464127277275201953097486612633460119343004679753066149142178530830956139713218299257998875877845134030676166742845605538524559932707344304042180976793708621899210915935843839502987372207336755726210362314085356279174245585462561282164194931099022318347484272627915585059984886218141465792832624416162168974172891055726746037900025729115654921067328603861614349266333890958451402532722927211194248801937847859378786938188968145028717329900914719550253656716298049516069474776312923366403872371616459755236412076307135239335811934902471362146817690895926201306459650236328567748613957445897734528577189228982976863021812369788876658207947232761593006248881255458979153264309540764626429992547595987355533777033699350700942380177582636707222137312449051818206488839199216854746433973154572722510324176894854067057048699316623548451369661348630013144546959449722351407240308164792565997711496413758188832602260371049898766268646618222957433087481200919699418094106251961495966960722779465818462525149190372839781668608835488759646610511669065525803622630445197782686958469425226115749161523548971678171791393343951703091228594289268728349019829009366269674509695763981087902003032012276571436750729562200714693006402844797559846028420105925414504044810299001940431294237897192774305993429107029934394772229082629503673158520599363927385153618533344401158275308963081524798092967841052123277079090108048985172179989347171124709351616934303860230244321941842891927147405266525841170195341058613702228263978668079031536288723145245574216400525550985428483838702590619161532151726901363856942763286430075463984317087024197296113980688198476247817735804595964746415528309986963098628131633065789536531029548631336227702650128105115861700637476872158482740312330620322096945330302159218738457112632607172401838899878489767740834254926474080607856572306903730551130945464823048591851109909985941851833311098258702689313770546992517774929816501393737500054955816629187969382609375398591365410097340282952713444616856845434766634032075845198330877210610032212219092792864934688267942537463435715820771359927819742089967651876954010957367685674499974465232346295389063660092634239706536812110324643939896219944565127879862816198591839821460536661586286286866455289648632100083646341145897117899831769856311828031028185761345117117414985386441365652917926393431916213971181679290914913664589062971407626667913835011558077596698849969709697099290562216487692508252988758717095739067828654898676383973843405288039414515986419165507265777787348369553716792066613874890320506181632405911882486137108819780707208100238574209988081680592212036456085635020839023655618247474548619136975520964658903398568054605381337550511793593477439028572278061483470137891237433086624636420309717354422012753790363159570808322112013549164014133728189029402534361072398049017072610298184086029609478511114457348018297555839401208677553530908638848509193510083839837505029591252983421130071852301249124345184672907574415096343682503033995703804600750477836074654465889857759059353590660069558300563425913173122706323244662723185893301626405331914030054380670715169387690312291148827289324201792791581175585354427373293846518141729574685689163700211532370884979084726905896854850397121815074675207219148808477095250676779037590445459535792539745188733779603986515090570997610238447621306581133460770830048495699199539636311913082536269985201494443630747174776341335228841816957345312442080821574340205304827274014901132999069134344832271614909177804415781007358026408022600117258887817359809551036510015248404106490481282492856419896885670334430481901771878107464797747861944415337605990615475275836642430909835762190464320134855582214624101562270561599827875724158170194539611115851861043549483652860692018468432626946626532304741962567360957960570738912661420125163614120111567294178659426513806287800730893730330732953212692140267920903744036538547692851785283743560385128178212464216158612877289744922834694141834013106175457172829507895799132258791619307110504304885486045805350934818286731827311047321569430942441250353268455313281479869969723080687373293693509970026482370028301238918693724707243491817043472040648712296160669829617248387098967885146060681963770827940221947048864241426264576448867819326380681730638218458807562455484415096945980760880285536614620411410454051322987442289383835414883728417509179262045099594233327629466978341030885891937104729950478715948887531742034761947565297831006714171142370677022418601157159893289253606951119992562327526269512496784467312778850752136020443212299582079765139268283311435918243872496642251895756806146826110510314491220456707718970574840210601901912802888465431319396546509601843428289217839922589049120962305919207365241460807966616126368708068557183275815881582313823680267097933415589260910035354355828101554493683693219224397745112566365555757695901043138255467820997918571032838495106966133140040906133936387366286778611703243722599740862249293689888267456458855342988188786280076277301557229492441597054152259910313095696642199426233945043361275014853152112237643394068831609166868670328699594921432135998403209858643936227459706136491620478623466567159961323509905164553828129245195218688842315543226200257781915799790831328349142994310457322163997761308184496216862919324151716860073213236791329362769943680217914962567757152599168444925561000325586232466859774612926981913096752137186202199759686060957929631005421621601912451424887379002645319470000563413741713821312527783160313349987285446655786735642374851068518485198440705611161170988954493064270173494990580946738049225700359253569523157296761439272600184036470728736973252644109169497924011763693919494750728916243577174180628135840774296704803439151705629881497450917183596536103304337630031426970401965496360821258352820972103668397694025416522378330541749843277710074829952297266588774117509659311030072382247457075578673064191306895396483625759514025436583901543402692630663077267976969829291091911579033325265253310654876299844996035248292950704587341719939359361317469413035616503573178450915282183281936986960963058793274627196631058745000371891430433495690364097787684977858566783348164648681364029676752363146960846821825892272063584398136166817054687468327295764506763591440242192045704505604339802422774840109627941239365460360334818314877483805400722242262487572939492065383061075823431467101479722810962086429803265239878758549682770862908511899644026130842888109645492759230267868661691380869860174554451621468489622610019026754193477926702282829866398958516940077963425643616182629001618619033399875215184920617068225065978111460967482034667613978270464558201682857415174737797954234152881083237113772541605495023034582515683144354928644558804333926532346797286726314711452793929390379956896799356689775754143495785068171200123690130083990507847344734737132586240328839433095588457076710382893508937522951316366307359202734746513082888719903285469520657738458934373288820289012876588481721902256896581068162617023632995856209331856056593166126705929938571517239064865555824187794974848014952407041145943574017500682854198288105065182367394066154741595452684886185216935931996813042395111934142746852808558156415622261865394144093408851738378473513898337813239102347251343692349709112222847918031486040449593129015647836479242487684512573691201191592941961851159830787941436520321765186429233394722771242132183362710067040477322951477011449959268385580259354175076323909279089783842222466631108469128463787861951647352968791986823383450173868300984047799272507542151708446964582380728294248460088575677413687107290982112419252852211140259412000050491841727550397606214427845332395884060812427489944603021969273503420837466129197619033107607116710059526890221405085762230440282976139227470497081097232917531291658989989758679927807704883931709438694627796183466637520981990644888846436849685713345987120834190446231216132277971353591635255800742835149016463992068296143867584456474190468149522538745989241949406992836028126174741463817369079610925271087605714838855623232703947787561486064537495307233134040056389807351178273661629401660124816327881647139571910503587814688644624213121856003884115399147982334569414734586930343224196687525347814816421457950142001684671272343647253842422565045177550595358441088667836399158275323542731151183208750130294504947164270503104380894387798954644119060343721506316186397987708152209269573967013218084604542631145906023481768510288892272423191207351685516410149733975032715149839376758861426096567745762809600182325597651607248609252125657915380730189825116944720283720720782770957836964026855401951466631215551007590637300679090045805648825373518556093629085022716634751536882154910640397612276930802082273815427002309948964214766172071573977255477816022078271756583150319652423494079498783266173900900860806145409601977398206474936102280343995263353725453483583747928636426321463753132185114358569864952236638417308649611088126502768128793925539312586380194258321595464402548126131945370067642026501903894295764962374548206684086731645573192752173722222762877919816744793788457832001731702561701759790035223031430728643076675410099803422389775746610789359854475901806300654286644396030079381655378571930666277058362555768507713442229393285840318324691792286086581632998285757132970576805143405784104610722127224536841165720512069229365703180438696680512929994016153148765765582481244014895873847259184167158262146096212707197058413213298067364160231078852579703077185768679672153322366549789554181636155356109363794823910860155658655622242215594786934445963673529425735502732568944059898125581986035125594326101612664873377105618928857902789781462094437238223761183736124168267881165481281093068584996941055054302907660132118938329250063808319782172580665752936989797263275418719772992592779521145546442449635054411962573659003121976213226695905666340760213769316373872400417668231950890464038229385914825114112980602463326711164835144404426222981024103754282410453015921184901452805310873672090330856751180952537424859752301594660284295897478337974398508154707144472905955439245980255139968226367794785673058418917270526799001384932722306683642102670604790885231579238796378688594862607853155270995253606872019221609781161437947427074096875798879376819394719949965578309942709128913066772918264579771650371215671529484284723115297267569697225082163371373164168099498765860035710330747685342454928261907634602889929554702622660794720016802150376085269700128534863014997079571901043058211043455328407411747483420368206809838418713191721796784047009170310652260872064045494407793591663192341121936669124130835409970972054281820224736751103615827032194014713057128067414689133221802720959796918188272744604409668791728459789818679110006666696926219469953177676547914094225322385814530524345529351406187379743636303950847222872247672151549638292519408100602306608306614881316368940811243166244043395079705409277441681111477439462160297930759531570602038620909223217001625525152299533139110675030737844579603065122758241906502183482002836156613762043968208475673623405744172974560620921073012839355116677775405865345795868788796001202686725688994680219472256846740442105149714017467182632236249437138042660980984426970551446474743789014141022445323983514481814757581391779828191138500791211864368850432281113148547966199617043218024986072146567020326955149357200302474709038017789296733325655163884282182683866428436742617219559138333841688858140040307383582250740408588250719799175084094846863379763833290076166223128023509257813099820399547099041998152446100508957302743229364828064484779988898583334287987214725213037184026169519423473029793401621890732575740846122338542063686689648906944244127795231411402637578458580212670733070088387274866823529867438863272345542060457324245168821536107601489725849671749106828165118476746005528794303714978384559236751008484711805384000468451769038578080421422516874797025762871153926876230011175771105775431812031234794401469798053429878345579543705022878022352982895843481635811100310756199477578033528119453259668203804107205165922092847679375977489713260403548269024678158948354214760438854522748305710813467450938020487232110630189764241413054478444728364290255621563297870316577550267015626665297125932663490843930164320656101751211060504397450168235697405482299363189987893351155029011618489782115830489426527396401407195346587489004151255816093209071319750282106327414098059567968680509671751467985010989155237670869901783388734855838557168900464879107152425293681150430721877516979002051899593280442058469006741794212846932177749500593148665535610235907331638813682527299999159863316851420268026523548583355332289648468396645815611262789067766856652446314402818164631544677382712173911195862478829727312726258093859935379088983370886600434315058390519415162274086048499729727297482689441392041507768238924492862338929076809938301585188827931797806032671033336030468821883375151664990799360332227188287926225336767037438676667699180529306145706963730498579359119900444118529171505851169929451368931134340751105265996600944553457004728566959655974233477866831188110731987933893595609060750740779650004022564423871298732981826533495128540048198174421995150427617485545931803448639146769593548642083138927628497310739633345958796280278607252238901435193995639602728064789171525791797563628009896860211622502585018664876909549188785014109325725391527451983510845969933420664915971668450032384009512801788523132542066370750595392203146459343027724691595902299733268674638168792566707512890231272908126495801566558078890476390098006950766701319446993276107419634683088984340050568583503453821620587348068888440828232337507588825477496983353351392269877552038784505978860913190249408897878149258400197652159454449027975126185638379871336296786719943018430891629683078285974568570325081130065136296498504466679978403325830738610010516821218215986161843804761916160677208122570886493550181934893198342393454055402056151110697242226019058297805397785648213244212502597131804243096028283650261712768821435284680567297620480807767370064545783257806868487744686301678291217341465122372491577033969113284003888571729134838059201969316520694439616349036928046109300427190658354408713798589802739288210932158753403970089300625306281218779091479670697381087952759991355801080396085471794478286838529454979307952289793968311363714551378402201633437911596602839607420782070422084234081340007015538409518772722798355666743715567705809591498828174398601654439827777581376612161969718176828565308044766497453642378388220428711292443333530184129354742916816164315860551320454644675261992353286381971384016357790987145617470088129339850368093588670086125042327154724682649188692755658578092587710988647389963850540335159052872331258447493939479754807815218016691803132119419182371701118025240409679070367034689640605375202081697800039069741636646939345055096829289413877740691149972406639454178914051691664721991640578803968001881633304653597479384808725356674891969617977554545936636149185813088409929417796790560046377276605862884615037237741312019510413951258719730495203693449141709049603370343523986206325189424370378124632174987431901732362873429657234456770605631271432562986475949666831409333519537649570832661449264491922031734985781947528470692519334396192152026646612758812833195428871585376478326660780073345277438589995988541998128793240278464259883229533659677220065921752547573671883449736915920334528423062103806551039454106598985473595738150422292593208248113167858768447768024886454093079941007026374033790566067541687271475904344837442758439906061123805607831616317976195095901845911474986563741777209648296139478984177910123986579096207672132661041275921102063500072628590407952063004930038075334580932891032932831221919836258961331247319911421584689193232921578165327863664403406125232627096797407984699653892754086272285323369084160988014373420443498613873561834840216206280662478924268903085645137555706409000265029848385866548918604289003023652069969659349010893046861399552674168087190622505819671052201461200210314636786540841492797675352653323323896748191306888474270849749367520916450693750944522670264412714594382694258035625439998188619985696287419870031585369743935384942386264630890029458713411239966289259263885619323360762493764926843845883733637891895149586009071041048665985454579459154971777213297382722049700871465138178482261161791561030259074235074862412003776582056521024753336184565661178497504807443616040836311808754051444507559130683411005143873776326796618341353263511742803251038577271664365426189639386898558066796434725862074451061201871786462320762320675373410145205251605341255657651808910516398602006619538901928898834552097720967105380027663385755760096081428189696412417432235112850408348661640849432932910223524598546683654222594859439191099206283235728060184167285297753848976622638947224741398011156281634778240784102335219231328777874219945274013780830300563125755040003016485494401548262930990468657294984085909230198725629751189722130420457997788414190735412152530600172584015861386854615327119202479194369968793021896108607278438737017525126182651066919661079582323162645597086974237632781724079033939551771830427417162422576302063528864945455956565668858679400641742319495042679764459167944533707323911526263499014022155175709537040600028227101013159200822847235072539862337531620485411486581281377323555153816595656204932180237592023277999376443705721286944645057177679108134451364556757726368724466368803420565704081236972970832565920368942305868211929238812294071525748454815071134843785155408588453141023616576015890314089493666083999455380586323129968929518459228558264434006337008081335406614523574060856991195848977879542843060057284465664686039103849995722101279264625677288329178111033691563230533945558865073236004656588056582037981099596179877790365461734983050699307364721193552176686407427144694809365398956193529939103706832459945892283662906181620414685317007988566342708121644887254992744914678575253977200233529661066568892046563573950684824468715186898801400018755256575551409966266727107164039114318296867477766150079004214586118551544051194461843835571775890018098029240426174107212938896612663544594820453843401283544836663721976043449832001369098825548787319801905740319506399055072070245119767879594517427776529619133957368512052328564006259969080550368341806598231602202576446102813610680127695498095789144499585149496188356846387880082079031576651371312770721102951986412659727573099505505761297366087848793501842475649511467684753098135337342216908387222200815164496804924041728206535539978165326056614781849916729514227942558808350045072561076461756245900137848597639231909389041906323294625694650226030169010116818897803975918232087846161456450059530906806202505399939349690218815486326535171848864886302692972654747957041355546251222949429174816928382352295575785017798385438477679422641224345418588097869019555119872507077028605591246251554426994952455333613271972518256494957877968665536967209089655294633429296098017970374446782857968469102268699305557047410288188035863360408683311450717377918698790911745547188668578389603377547396364337501588513357003187288420333917401088097249371228519937490792581118713184184057809376042611155748336299983217671764207484256327633274938658336835495895750279597359557150368662414424110914590982042048347727369101070671154578465703542023894943430325697658811052827303246975339911651041046749062152868221044951511628168821722607222114419190226679169905335646638197867490182161570257460735813771241157517336636609911134489977791153803214528508602590861866879257041502601532384487153714725428176230841275412809094355139631712581729380748022446105229864711477867135520764266451235508815557536045285611950756880761884014217616199781231051627987679985297576799255754137181027147390002357265379814136502909405260374679038457119605015223249482128443637252782625400410064985742503396548047235448694001802550279298622945082556657761029298825259438317357689207202678570666965095492700847236529231060221980617458020821794364211761303787445361132014740653732576973052427473598361055841204597183163589916550396256857585933329387473730682679785506052065853536831793381815540208518430273060320872565233880927630381305425522459196743858198226540387517875876168167962268593879801229544827591771746308141781137439726845621728173698589150197714265266526051632228134080240165571839249285904317386607932856209748524275958661027623871565155597613286505227758513852707632481734126006268656393312869940020774743818234518606984759379923847806603703736367004923766520731311671674092905848231695687329680499104296692501956734284633493495124605340684116869970886845319492916337286674555412004250581957725568455594412667159592811939714675265152139939151880180444583082279480174879002582351735278447408497069174329654693720822036012340368876142828311932240912668241786242228868690870302901094794464028540915124056558257010655404970988154684729512995583363450560528123441050298602346771708434961387044261722886593239907529600865481138940670875236783748329357651465509967698749796460093010722796990685794361247627443230374026816836283334397242964121153690960923703568264030274737407793787005900772823180396429265282882822057506554955350604493780112483104772343853699950201488068850467300015912776317863111718420088261406813455007333820219099324477909146659007715704762383687615533053546377124627169284027368900673551641410783595387417221784350959700759515085961752246781992647279380951723544068006785001120817633034928284014371583369718856349714599321793347266200451340003956632148656744769206420562113036269915648520600717545415367535184719574445250213777181892980136273595938012119909087336980077160507694925635005393595745411042838864009631863549722858583954139611301887893732617100089833184000313149620389150554649371777992818580759994302643267319074567372503100925243561741338123263794189157568609011746158512167479299825413759274855254409299417628877682334314143866354035709277764420726033530542780240011352079139075118851110013330276191858177596638420882559156100120862286246769826536763724431205809252531444072313308604263912005343219806362092804232440582010217109735418264279430189033392817659129361354920607524385760900784731873531341661461168397143322073771955040363816881395200550127429752426603560075367187113873735229325598485266672431857321291766964747152493011315389217057426564878682430820728130805359091956432559633434590580145716333226519657935127672521916496818714593959727611021415052291851122186696079908613923560672997138126936286914684346399639585536238381889498010129507560111042238101832822159204726668515461246134339932240371196713632257154118199300511219396274355407297987374376928268401023889539443460304956756310297179176403846908877473791108798143090951438518230764734334056150238212582959597179730761054754910631085943014230388366132207624868657368217233412272071462912002136162253054460908804311532680716989769208879156054617076748404553867659125288119099429874924418604219162716218209210039536978726513647205690925816126743713010220893313101871323626710713571800181542822912742011530959874840270953054845319030566217972892986708068099787279201234689856834674988513296964397913376854999507629015895501790256711294202420824181668333759152541860462862822734362369616044192917539598689148755943711902198536383449715309268779664624330836281254596194242583434203327447606832755137036149373205831747723892506385364505628264221973297137037336467734012792561354674636987192438948505519965792990507837485471501373757291856744095803039859495505739874218351488852870781316996293342508082291670968873423494385254435089528785508832786365124317670408275375893834749142391181145773491620401863113747460277654490767924522340538801072921684367932425062889379970386797918804942576383941708607475496765008441864244888573432331117504385023033998814944381197810673865896668343670928720976065140253044912046016783236681960102225263508780447381230855800387056203445441174422556176259946131307420129342561848198808284746604007591962680728191574936770490562355686781471642670062292735571046897332038170461143412465997243117213845989369449977103689128001615164732950562810057986704867521382746178658386432521472285011433437180349939568878964445342247414333482291093116293434668295713524637727465467915319735174735306034821191127093456181276524580250146245363218214338660306485257391331213522495125884094656614347117970227015255134751961834866966909843404391150799011627121195282048393957367127625519718610122403334163697936921635838505398609906898203317055138383039627470947333460481312396575692176819396797668480973109888514228765707585341680624491221441145851958608350808950234963878623857606157639424435188155303730681760926133430274565748809806457587390063572882835562521135707019679851036955537932866851008918475798764829931125292691825757580287835708659710764698919980162732449484685023941126467410522472819785523020659217705865420972887189699999072077944708378740239802879049438479728039076717343079133574375048758977635827955668914858323390394262200840588518009018327839909694686765857228702921697102475050961201707120186004275658406562484545209585401257664134902305074664507576117416594262978377035593194665262821926423136070209745446518758402632625706859050795865634509813534195580792253128302972940105800651452738492244640821451656301233044881153952111720497951752472417978434735054716113392239119589065178943666975415149448429380064005444880921336430826173518186627689561929753916398260450546783773810179670944290508714912773378858564992395565295403807060730103087529287924497139925540157744522843453761663775443441537948866748294807822797609407092939426208369663421718422498886839187081312151173637124409506237603307488227921125690670367849841043589839815595715433953374287361460447714098252261887683627439198021035094740822810046536261484741514764233660980668245355801303627115765719075422980923532194249444447520039828398428471733155916823857049426313736962210588306984306243875260399299679079617929680308821241182016985495076379543628082884126242035916213096241374860257832004715591165368227834382954603057950366430495861309615151267530601080735712336561895185347679230829349716750133934164947276434400384375352065679650980910420929854125733514085581852010225300953223744799239012049291446815195335301257586342681208344401176724622556574092117526586537559161917225507976004305756063193687484752845408493163657876407401279942237984732772189723192754182009593984239936840806879056737733003992023005349421261349942412920800361332473996707301679183733873936961534747028321102809829148927336761361338805430904201501927267746574731864616224673649620595237681228035211875251177781595845620553011652225729374432920143890177581536485857031901480560945888841688415527429645102939102402425654263395716120804221638559984448394956507431217604833911000211019984451913768030431382231023369418442357569454566527164142716994443368255602286025216545249238918911264776015613799951279140297899525390467088532546799807138516785032511414830382379401928838145376505446353715743751709470127726300333269627467173656445949276372659540438420130808536692147701945780636320720758761214747859329260744862032315498221381686290845441043199967834369378063102513815938523004015713009838874473238410030799024306758478637611506829035873101942826484775039754071226621768401785017729395994471124789960934541355875907170015088159327823256934401309476614414760141367651499357359554710404077786017115609098174653498766942039372528131544521968316771644780779176955905563914471350663150946931428063387113555937507930057153294481608659166828234942996830951162295646017673815109096598813396196188303404048020811157503460566080188558112894747390922917757211306134827980652818284677825975191007446337327854600657417418153304093189403503314583788336180808826120379049164941260203774685101643728865991569026760212255448042977485276008524000498328626580102195166855984234144697903880965668677809924528052754677332001165177310035305822754676073608823372369954445200598354723757097753910930145182101374026748853841829650375831726120967853409586808266695073977001903860216703402362965806405081086422846507898355510036183546033400433120475389661329274944693846541143907721132210262933479788878819232448937886661388004124927986728980982545374107901195150260169348269372187268862760952632640099142936536032969095048182111043220902379761974679298484445236250284557068144262547522865968043109726428387375878502453157577385779121163574430497164758506205898223972202503138373690909091799902376571152922170788229022764134503069144297230244266384072904487376716725964546171964342344350270681362978887829969449355191093853877453570888321034915805353541605417350335468150820131496106901640138328167628063654533437088507100874033001739536443596187491728787597754121537209364199414852710982360731354304869284662629609057613221666401262118304930538383570447960212540196746031513366652681834483119045854377640129834807709948905874446283197158225046928926248276615026382676392726246225233608469011683480941014623590897220602593168833666346956672179556713526725253257710198404372863693421078178152062161300557956869747349327435483785150895073189300072768219675795502385395421426624831974261942177468938985529127448030437937866391350680201437906158110710230044405129608531724803290754562933420372088435253894412268384566411886675937637316355850102012197683023806805919404442743831429498867265801219472764010258726204300252898615742033886910409555029456970183611035915945389043716664978808605711539564919485212850656911649687402421001040800853912297035990237297777571478574546661279281455884736108837405597612153926548421757279952164034831697783069300249285291648312749589128475311778921444028450264795988972798765705992658482707916309126600980271534111033616793148635541141289314481600680218962716562096024731777225670713989614162842842647145004261099182799894058144606783685810286081389179901869667524080006700116721026798528828654755364862809760499955777904569261170802136848132139544422693722978113869240687455358801857241624997584377056569095308676818309220983432339411237923666439502515055645355483793184744221414391836019728362905222515831871907361589626458090275842497331181239575051496434243929620552727206365971760512130280547278715469333562012909781190375138651423288513300056945384715126181694745282647436381276747780132302101545163886614675172452243075048909428926393456984840467795647417393787433614957641236686252786903935529139134034759947357181371893003187558116504193766680882644291749374901209258725834883070920861949408681465160972162325247828706982543371425779298741558149144297308641306776829094508969175644421202291065161192105981240140690714324512541518410081202905662079611549178235081829428665274305326573792763983924033893156781613970340121750521628819720941395705224165556867101982568586010879942607254361699422580688007543944100733298980412285775999102121543638522148422950491381634088353787221290064133361507759062228554326110930370901317173040741789168054842637479475602218848009354205129011502604196380987380082005083270381060938599303395971773424540665743849091475287472083740220793633879280025962574843655379970512889192056568588122537895317722904082627837694019814894096969555018679792888790219644263543647993041367159171187196158206170219720774238379316296014154972199242634259055033760504628093407537370751458173158327556445375518891000535740891082328861546055312787124687407345812741659553207325250655536186573425047379484690991581789643769255000880200242167684701524635332919656352049091148543080394211225650307262930320035354123374026444480345405648167992541566712733604795008883555621233949136206971036250372583075161979521345192174374887534687089245301642767568459731509550578604135247142683105801915981857613692905007266187295765169042035068912984811619124741351525287795686893142482170874452853862338601342713614465105118732426204669223339676341530472218770453389698527093604762785615562006571678519101610391150139443842138854200003198396282654012750833204534569418303091010637067384855911839395889172006102728150643151021729521105022254155699383776033862638344384919021176143969842323867100518761013364137362602798524295316708981623646464972291036622985933689773501294225071332892995824287238454656332228320913900910845414246503812955469023021461413991811611966756095576974778904686543288716097455763874457718025014077205905877632435442675199279307091036715240309608720614124251047345777108911800869877141921985156541996849524331643082455829298154330162260307090557236036229473598376844217471293820411065981838833585171334094918063216565815438239532308369084292265800134436531924860142672534040646688526561891520432831537741183920828610076567332413775229614955134799695370792205955064191761076077338808991555156396441574867391751630328720841863144701255751577849968751389533123437474432924344891007844655134001271588346840317899037598133579113897177730657863744513795152328830552937028522125164494093150967214533451743542721777559101825737616566356530620674780697863407580797866499657024834484843935060572381639621768747955941663208759711547214974305508911398671933586695844699641974222761420604603769198544378559828508785991475571784788047986233095055516858162614901524355347809754177065854348871612865865728399973314470015575350204134117721009465105196463762072758343713621318854345424362943149150569510199670299834462982759465387710378754615147403467838298565496358486529591880947036488909891054854620777998708413825880133843639590442095060349393126015391563544555982766966012819649564629868066874537967011917333512362632301813202350472722678215882203112158751366349249615129767490012767584064027869571463454723920445106348144406978410125770673525881159244496601918488095965453013955958771508573458555197406486000196451186073533237734847552100380979502693557502429022884178997533784154089067394010773487868305118459204407633284258231729844154253478548030403796599868635376143506859805462243654372636239633661912470113057315855196288939235882937887726123299071768780221684960814231476408049244280500685888410955360620520353559926793286564632809508588486681126960152973250219939323678911647449287102340596183389565653484926879001219995670455008412999979115987174396259811998174228573380490196725215397909996973531031228795925169075758902580793762485663589520662688694401980035493372222588771666153769066353103801604544198269898255384473900057072142520859676777166027768002080763862447464124802485995820297713271244248380835200516208521676365878018766445458196297185580463511426075910156389062721879947022876169642255125125049930591426628850092992893492862362643348945297244944147402678006589999304877702238039217628575516719104499446427946173616092977963249562309472256272563697716129069686741342863837676574866325339719624947181730703161705766084794437452084719854889674255556367906644643300363885388004769471118912154239133304312229114656913626726253809837372968500638082443006201371771531462614064060910835716001100313688287821440881220206155730412203307813641859573943699137586889591361586849311954013071765324534094335110833083927853124137328045470560693745196756173450783931519952962739857917359889694017951023842575464384978674570486223205383317899668551769216440127460972398538224564087561932834703294515112202571402212990090696470521823328927415445302862782195559674624260812814335381955281364945657722392365641267869550331447502719650221187715495306717847361159153094801642619701422624871522237631466363523336235671912396149639226641324426399343045256539926466970365486661799607296292399624602321416145626838171604558381670401727888308316072766053669595433051557576756369592367124133078778966128181729095230038089280652290297289705291630737058841494453975225268579651576708994513279481749148901856742601211697313101803067407628891866700621279980871437786764643225478276585662405773155202198766392256109054927686146354389300529926490808515966858557518052129244598821246517999315393742138037251221641363127927622524115556857195855196216700930675714877855348546096273687958506159774237124969172413113441125922415776684644693934049934778214190673898229773450637301106496247836994413133849889054855400954970162912595638830285357194965703467931068156098783672080872513343957200391516938115415476789558200437132200630382447902849447747441992451492135614841563719627813113979425370361421078683142668640275598363546198043811049279358757337009265216497075728300021952714925941519940335967488160090010266185476891214912482858309875912216056144201814573107437254493443761872766334300614044764909919135145118215509289038630935930450926875015817127832407642369677469323393096870576360587531750249779022295468504904262247486848281684398861175691858703921567275696175632164220635972233075735582620628393750692158029814594618619506611572329985430159621751016901651661585219233330220803347101193672397058443065355165743616347662628498497482310184448004886565491535442234938572243666595428950397434516122811228796890268100180484824192341387104887306972973035823384154553556549956629781676373143727824148706478163043155650476990755302721824168335563524193979942764591055780945602416287630381965428268932141400353096488143738913558477286794113291811296588630038307586748366043097787895498806103781885399927820104459130701794892605898361549542779002550582237864829359085141986736251837815678945845813802859471676627442681798680247084259642672224513050900417590174013752175198494969514987340359750381220795689566136375640479134093366806671985990688779152212133063628500549346605651815271138722845738103031175314031761800726057246750754557384719417030788966006301231862680667166686438156783218473333193966571534862796684676608117491783487730031310586874703640703091796176707720390245992025064241875231547267580993775285377237022208796326307256662300842684359553058457096779384025484102074168465898843424653675204081260133920623724057978681651189971344247159107176898716269217502388129182445761222065005483366253488810718359861891449747436271454956190966377016532762086129442245768647176566700731176985414165812896266045768456272938233911354155266182722540922690767489577113852709017239802347922605912358424675518214827176864555628844070760965603413927318530946320084556658170363173317347753305254612590195031876563638704764333518656585399703904273514680112555835594232421234028195673893142652247376399757985238854261568174320823415851684942140859846029115173987512882024260610763155088884845733598770951769060255122791702834310964735814908183387167435076988112715903120636177786949129881577630290509855173268077399600818249870446154583037470054502102007099568590389080733417152497954561019556491234795865950868373650439580594439819583385857444839454852285995671255796390238920144732237914012433926547627719548480458504340195957909575075807481268711644044458674625182991277947075475218084608965593829467188095544938476055463928255051603150386900362284094173477648541082270833508299797220118341395956415072018209793324323384200901763802657871393075412730465227616449115092482224080055809513094226494988771965604510568185930022220852488118835558687992533192929921683052624004946498019391084497055585639540135643896097782851259162027208231359369944386413197125420080205854634701819474244168318847969757955082458229889711826290600415455357408459593971767088823289550274296720557068512151687572769998750802558604242402921917123222932351168648740521682273292952348515301573664903310302838092546255885698079256971599351075966297729682210030515568019930541438198552138812068142068037934492106516929347428132066784355821076129735011716837187386213453762875369484594659392155460644762105042310813354467626977436136179555024134761668221546897084479684925124995252880010833391309673016867606771747353389713925786888738073280318638077328263834795656713644532941075104465760833307956990515505980942327853343597325794121491982922531003620878417129568531476434665179892079806597539381045617100871437784390181383042960351031782505683414874635791406936916964174172678487693055412601080116155394171040854003221450329508559160877606055105725947289239373439788683791297197193620917604951185884056718501659284772131858780047134139054334611521179262379084628581739259233387560303749145410033035010149509526816426834558578256243910565540276301105524231571542805883948694407856929379491010310078484489133200400917767048677666679146239892069453814158979969955465900794369654995238784231754806260834859119044703769704318861676512055656435565126102317064894860063132483452224619094531243440850919778491671141501896222420270845334621380585436776599003826993568927263534458337764272048069905908382462891551475689777276855818862263058880842817274835354955521686536694701953795137795543149037185383112612601234641201047139004850509474656708019026856952210431914275447392218351056101262542844609293283708309700483152533098184377681071416575471358291796639654511183856501322383442092123424960396445811595423251779380591266513656344496702475308161300693284746690456246930130461452574776860658920977716069882453235013523548981154961342974463494720135175529473684092902578961426675238992442413603238564753765847853526463098687020669589562282367555614675887590570087659795937624631930757292728910599141996818850818590573816062260491361683377197146969478496886788034756781214452382546851818750690954351652009616872980308047583046603489592560649901597143780002846846596035567656486414225692468917349622467219729449265946373609616450446747681624131361295424155531930088723405237038470256960744255636010095953210441159043908182726480050494874983929541433358140294476221515941079144274655599465439096530429889203425686370211672028781889356016019170370670369555951256583388016350257705530617321743438197264779179354418193158350849882352314938185488915734918289839720214624083081266614513238975251885294963627839265161379580994600833698904259483074973850483116254925011924605679096074050381816386603619860294438008601396354700361859945339520602533769504117975379601413403037881348840858285602074902781659454053668389254198166228215487445765586001882529830161458845975631736031855355569560838313266957781224301993253439820248809637830004754475979963418481080206324471237394036280228148117998161056479363059504055264238592813126607197443169484947494203676637172273395625875327975368684791721226724131282742146761605532418000281537127293218393936197651678730522352074746404323875365304055789006947874836975464177903698431040924153004325165553152620564499042816630979385085836662218436357150900139478194049503183634551157073334196849624323099678002160664128868578033651006074250529158192333128376464179138359368910410828026177839828774427373296704117467377430817339062797462942222151799814147115119445224663210515556239921212494381355352427161938583949614829192390638438388360111766178417518416408231551122881122469702740494921891031316975946623244969537439246146084839305958792080636577593067932136773651344810456845984546093830548206650764696445976045790373650606556119909462103082080132168283425798062173599155836513802229193635505423755217248728400529678022281385299779357615700480352885014725056589456349742824245957916404018358661932316776689237348020410324255693681045491456859911369662871822504525535701501214801544960653165491390966189655725152800768295447064521524712893478564883025875084275555763857754118698386066176831710818739228364045516740789839330694723066791575755405140316036284030923183227627861170530104604508796181271081938402126929802043190762955579632828262457687224848735511983376134011454001938831231931386505684162960832228896228728808385142993189316340215040586756646628814376985960915858830341920204812247386298216256447824470111343084109205539590278977615751433024738554853980006107119882689663794190628835699403659337349645429489729369769290308876895701004215847342041318177091505527112426215289198746905854291753867939774924486414361586648903599201848120960012106213729110705412968307006026098849365272683428317201454412841378706814902067325819076451623605349049445368463368856048973977446234555833876994923619922738629554433709438393586907519564730850571909630743083966778617030073300984967762683367701823517102968322626602402241946901751053848090690228382010887805076899080934503244745630492377034992284210644927232505169881526345235777361690943315058511484397946699874867273570503862554150637763875919090682792194408389855202652597138608346124395648844039996492443879766150017323006219527023127010383743683201593123921247259736821298206142153628383581066121153665872185694307193309421646824592220080169601139275758276154790558060808262249806438464568421104401016235743117457123729291357418180288636238889036591093458777453382393007437788997641163430048006633955239499839469662883635880190308791091351217325523299676288888016479867765892201050597592109711847044305939478943869625689933754186550838759060276504208696657341126219443855459386687843042653566119457962587584260801250454793715601453324270410548872871393505156316395964215178206833382935608594962321842605360618136450708343950960836018923110056754069566619358010194355511111748630044224952136843248992478932858555132744523999344402906727880815219093073162137700076889697105831118879668053920812365423469756037592937734601281777455792989705290996581751360487584328132717453508871325047101781300075918024881636631036683207458037332024198540940421691703571490174259734746055549477953111374311821740389050865076332095100192516915087306794104285203398842447617156357138293913751134458065985989123148938310869070747141317113659092492209019460087902753465745456661872931146595193790684653428331132667991300460467765561097842775111314881226874728059646086274948743839866008239141808442999467703016656879199687377802366455944940315003891431541394812174307870565271072893050465564639604415534507981025232804365625754001987893172126797914464485425484252021017817868364264696926241600083479273711189480768427277329983347441635164059839618748040526877839623360830488225295090145971039379962474480912760151134560719984485593940018888655721147031288017198233277921811053981528633299436400852602516229458443218443124273821014559502241265099282063632039140665882173000743538002215264979554966079957887192098239845906039282820214608224351601634017127054858294680077683745462326605623028868373996832409079200614003479298206558854397495924275784525441998106705312085703468084912281707246035412146113977695555774937980825596131078803915547583653240183432733517025710980447963860143258282378953219165348150467660885858049260358859318777692235845721077505211173273356318804751444613158439982098872218615620653921952808557526543424269099505987913821636774032690119318912449711282197684332613330615532701421830130749584247981596652986547282591123704753309035829937523905758370872623343009502295215232581010748717609994576727319831463397953322549710539904659104349675514970435557998143406166305163192421809766129985398938283511489242590227068222005253074176160824896935191568355675146335624595606840999550967335727889661250955377418372148394903312272056685175247314772419406964113703868355788768146713745717590322082782022048494121605544433824056915231037525177275747179357683348845881530071798583525429459075282338900321512034998335633063020813379982156493784845055946821600562454617688061461754091012701400140027008214542443164373401682461684602423226555743291671989916591375866721129229530744826437921391372555673236538706621631248176543247247025386875593064382568061840008970588727643178655081071102140557945489145690166571540126191952075970355173189681050423280845338102905230548948877962900755925185224903359097828969354467009977603754216420002437948140081942585709888256714104402779713405332190874636354744919472700602645170477746992769845142642156325950266227947401078634222764830346221072838662480694009191766832060073634529178989441852827979287042223709433586396245776021019891890827861562689893014054001730955982182199613176595330624522175625733532109296254475003358757876935567417530267651089401090635313472165695229664845980745137620027616984187300512825115574459836708147987637595769914707912236249618116549202800504376516676928280575405500838313169523462264447326004200303799953286633173772763107035049654359888443039209335642921893840184952046386911771642016914174213242423718291559046135200560304668918101349848093190246563673893489714506672146182644271930991445350641661463930950335141903700286194391056785277856911358423768034845653293175852017484612780291916093219600268106069686370840899800456359208289114058782764511488789391332811696005889531437961999235105729177202753246423950596501570690066415110313383422463537584099011024988834954500350329871064156888587664267250171212103779310219136438768988761909966409893567407483102734708944941533682427432961999690043076684708213305610670986876962439596403940319799395730432912614956425410188674566914681468700668671887178322701050733836680031240346641911751071196208617716842670636871039333439966496377920958528102720616757760402002625510386406869715332586596731408919405199161113077942648693603511223842713437925099041557694271284331193589816311492959365957523265290926340887849418142319443505602337000449692373771179237230749381317796843957248901844332743066002383581318798490505945899423124304727073446418328125159604457368336831267515158979934448379046946013780995145456297820484427833135659451402003908414038249961806399772148132400918591612230533428854264501926253627819420749558815510324011431166218095141313336200740073182420508325920512675081134461323228925103426070436098756388525462700760038933085432894577616233533955615328777948210127662799633217010126567355454436307351908653909038172595398785479924192295670344379168716995070508285729404111458177403785534310570381662136418078691062025577805510140325488931460991278382675795352845385547122373867277633102089490211528763370192567286791563293295307745742487267210994358900299429383917157920172613233479675931792792718592788158506766617998071618459776127579830660437474128938759947652060712549234997556159491846674008054098003842688685385592243125903410822268542279294794374638374257171028395566368334638006602248426046374199778491351876785259136230444644160743575966409423780519547281974673870558002965530964369450419934136131674233947456755131302101505762490318716741531848167152815984994524275376123555126909342718858892364475669631070385479320478747225121915755969097351331944020797659662841678897020229961606315802996315180414703594276470127428407898861316469271812451990357374828795537480288671572049082287714886256007337667474490988115266474924937137010841935564188237319299691229074410281693685275719354483107462329798334742552851191615592777328865834594296250794003524274125309471270035797097033832391378537665833690451545662082084694584058419769019975116844296830608182263768219432911068647235781101199366562353385465351949907287074491901686571629401984407937043065776703718608114233032075678696212711775059967998008280368187723673792522085686435892994977953771749334945952063978863902720187865720682444073608659597941913713378031922572085166798946732224238901256750980629524830068557731654053163249989349462345484263399512199459431950880022036757320500892082133537265398254456496747273587551939148861191101818519810778642362892340260179623393863688131601588554596257787159146521586011409234006013882790557835810634202322427424542151554787620773664002793353051169615914723080667020410741276817747865513654801492386429542338951540002558819591411538466812864624850483837076200039468557116287131631416132910025267532677231068819939687555615258464888039657356254090054387742129107095337792832420365277399852505478154781280208933784248547812281274628849922928055714528153410165521798418559828882386595312307983852437256136205247737526809354466228304371533509805191927506692762023107266922061787615595187091385365044594668049418301317187905124838094329659182272550203482242653867846051928721195601377156073228474293925654154588624761941473696631608448017846882768064766188133000571329419857194054300098682683827171353971836632755400813639644007570195816588233829622401957413861616221416032881242223889522826374756987581023185186752778878826403007637093109067544946937088045564890600572776930203018178031484601748920560828416067823148179353936143862508790503796297240673079291876161678142420075805655157470548283738341513661973331378360778621716024577685863042803430202200759840137221787589058302543838646426406596055779636974249443981091706199147168339124211662046164078924949399237848299667971246192363230626838460910410616151745565546661477454466033936089684721688395668769731267424199964039633266291218334445209330808092025641128713669773248986789265666754767517576270994272243175543875141569194658008855297954086051346399458428123604287497517665277099497790146416316391216280681069453469733265239088721973419032436747027689230017347581633059011237166238221666638490078165416715054594312211951273676487295797139255949978057502018010194459280419660080099457685500119313002668678909551030819096428797332877441799660568397953428379531448220083770691200964114562752077741178629853635662038659700878509348730625050514822151255080035275508041548165900602404819291779233164601910350976780644712376284473166337520959283006234180992339599116472835931258949545469088734778217972060495017556000141630427863770862144127135079146421733020184647692715854022800276302635627762514452875128102188495149474162951081739370211759554179153736419879515998921225048440559755727187184237614918448106294131706429427574155324889649331023893207888915353267931878194713370809693130634086986977265200462488292589642388587097620358805173144216550759131379773132084407816642997794955512758880014290152305572891706741455076252715751443404442009384976763437024102661565379954973582910108235231157524497491599889055809326557409881044653344907717593888490055153477709911184823487765378385953778903167485074956490898289550851708724589686802375693423022979850164444084421033267853411020125797019642989531034874323349532056128286699262459214712533130855971436849964593864792841952231094884935320602918679737472441441011579502507560629584498205219946966714564289640221000057922866997960570374181108787467480088909174488093719077020218117127902186706164532597550198939168393490350223401590012974725482488837354825010488335880775467918347679341289219071253290606360274369956459542168048175171118501049384561803543935411386773101291073350311266099230398687239101617490289814481836230631590587572743457596475658836072008542397558668066332929283770195709640248277231793606180478719511906595652363760682871656568083386510630456868369778923441394651065184639671578064164251308367796895505098826580634324994780664611698023369509119032539881884428945681476321033794801084592198990967454951569324674727807283577552409946555133285820742290091400221354159642290572423141029279545111884655442718582027301439759361755162798739900854745533480589895941022479747704179034290014718850421527278521007401787417262300271054345685797818647921928508474280130692791181588312036004970597486914095773673705438044967962154537241386618357964384511489011437586305284881723042394395995644745944098477965234912219466346085979575732608641976881377421122810855501339622880777861592643898407783119768795587205486385084653399519754854337337419416990477887058681084500564190990931198960673322738737636316313796624344912305088882458120190219777429598652953639684285425707769357876690046776983442290956625379778520801606096723056475137329949274816094045043475820976049496240465315522780472487546776366944608576113399628651884902566720413157625692619968583838844841188296219631876182746489436255875470104578031353726594191518853446743911694564206736748124031719571014358492868564307149438509239961187701368593808565956533668812747684173499427137037938360283341550763059874205551514718233455447552993462940304875431865692427179395643486774492854362600899161128879326428150451201590886255127088816901416114054728584767068105388870367578595684857382649701438056136578867245203069795172765425098886040567264468806969272991541617827549896372801277416347676153037908183246705640881815999976548586484996342921924052351285297319931027610223802654639904956110172859288722504268934875835699720306773357392045998889732521802807415675457034200664213007803934012907923228885613391849511189509436289727136185616286645562670626639682514847840704122222578484401942447093208585450113929289400901570679886294036197084953199519145380015416620041739845130407402298393883911208825314067123710712423894635550504439568042245478079160491166543502313667626967742934618906393966990334963291537525961920503480499385105878676380233302390168248428783992479736772860479110124097198860281440482971690994419342873313185067392694443475311137182080003690689961056886353839536060920619839834882950969430507760637283769219203527103986166801057819036692124529118781591066790565005775776051777802626517661687328826800413777118780379458243474596475830169401744923462924490920075797191554526946725297697272333066957702609527865081951439158018263021687177831131713619183852905163701669789354077248072713716634189907865050486932528741561270140111598037753905700679247028089048826364155822452209337546180200432562282285637124955722402702248259698505408190983231419303857985503847910818784226494408946162083589984654278055563872909909776320006626681639953952653683209061641617991754149250307757119357002641877771318008219453511927782521598308565465933890304574336365036216647188591461788750584317055127550344961770360099712480108685819301091126568756125540375615063906712328758996765520241884867312627246348193456113275934831715681776523863405324739886148229535128036213517288949674451907790939524890796809280309682309559224677789506193847338398013892849406404483060057574731114468039431330932483200064878954327537007078299026355438388110528348606711912590259122708848567528614700689884738011982645637214046130069451410558922925290281544096805156014944521936870609078098304744507613336199862743017042671059343783237570215030609391740671745210232556607152769740510318130679717061986449351405117771530378629403104921366083572660437845239494014917518857394438318821669426804089269896647103243895949289267617763862562330592091800667073765874529181882837384255515564259098497820676505584370565558136595340918439137503395943013723467951277227053934263261311347583565505723424374213745976112316722554840428447010619134956721920488426491407753768574311296731841391140320601506087001177223263966457695124084047258495520764883933281204921558606612292918086356913353664163085234399899436368751606095003272499569843191154069591097989487382233478897888927054781306397541518952812017328208065201661983574042266881666440967270559432123768408059039013294687824501130352526242203809136817113234055155244280794172140489868572998889915652096453748131394558142112847487911690785781182868352912377472988623891950856891363537751097879733925342259610189938635276812120106998380531198353904400920208893243935758579333264655887787423937092609023222249742065859301839139658706392815405075298405939535279828035195985524165986668305529251876083946564956824349141111215677936950446349398032280901933796629124705436640406040129092285014668041087616523801892116453625188631147840922719889151011662575473718840132541188592573729480490034835535029742905103015276105148467951821087967960943563817107724322754741187849183242134041096927327670281931647340585349567051811386229465164720104803843426973858837616839318721156032944350429157843823416520128943974066065850123613384458972385115894267912439414264570823553462275515601927945097021140259108391222869788689118149203252328312226401711994203391669486925835597513176115208992729708896825903293857665910409059967731253992019186978891635666198032245410754294569761607456529174295565674428875630851363652393641422057713186763189448230837377096057965897156299911513044262297070898880866196361476791860424208527931776447135477569159920026721808038106174167271254540598101213484846190663857707060870597789064562007465213804335574011099610797147782101741055296766478798382364172631850384397296846705996357026726089446656172899314601862155548180513081128655279707477649228422545247099507114895995620405492864211429351322240514691899484375525259154214383748336427639165765226587528737852294391068546359833470802967210048079357849542154325798158678624048264903619787215905476451758290437070121611282935528265225819600203081889556622735823573834217308146366923246204399765459119584290541549497709331968553396651685729972332946776925663356643082964388088645733446764515808555052179841675161987173237537376963126702113997580829107962688167769308419188212722060029090143495618315945732223724017047634473641651980543164569785676194440204609503710999776229188684215151395849872365833883912163293975053091349739548617018937976650678211765579290039042411844001076034177093773908181070016301230456919925513503900296730628916212548480933435213418544092580640491778370191922867305398899240433533666666451217013267697544179333187141515580959153243204425914852144571423532888695736707375899526915578918192791603119549198167025635630322613039127293779751005760595019760746600066519806034159797439825321567351207561031672190372664409696686128908449869936073266717063126437306041632929989086450926566000090766520684808680097255367588054321201081724859154561901995972330435878425574025244462193838490180513424459333596620949955856296763782638849484299013931422462015217300245383504110975238589503633039635652845577011153896782160539226770315651705663004794298235034608352431013549951493695565572269162445603251889829432347048560959432363647251168211161446753000600081037129349676437885787742540819566818382422517589148518112983047851928208591326600263729466545316000379430383271346818781879354670076436107357143123773414992817750548551537647567854592767018194897814428765208671329234010763725402140241167589110699142103947194723643743405336594153298552059554023813499818419093156449605885802509716964404757555428205476552017376458340193525536278452167418560197855402233475922526240368293984378511056236469633349597254304335440710742724480904154330134118170418543843010632812080551396352264542888555950813069638675644892376666195497556526918678505808311981878921961184690084896627163401981847193096238796729332684256972777275134028143163622297913557489386702639064901254086179440364322732990485198279775721716445455712487120798599229986575700251303113979380794506369166424091082251278694538767857855341734605407705062487393051113812810656924971617551573133331014131432560565621582578788766677102654125182986363497655482256124362343599281174006907265060352721088830820738145591911107340636394724364176851736649870572547162843122087169418976025536650004750042966929627953524762141244403806595600578898976674282482443279285350176772916889765087607342861053222498553679781690761523909967654106304023586445874983860247867724880305965900035263975407812644094619063505687851486978156061326847147961912850914394178382660244910845208501484402659505271800284224897748298176955702651885268854996682262925714731321338892327932049757366421894084043426094768027650980579450338349992115261240308137322352265532982710615371492705024089684838300590362801642747032020385429153674297863234515139289873422581476184034611967618646859637392707013154774276931852976583701574576667278434471193592901293027349284393582194907629179183780994648449030305217664746855458159078700369143777787385822138190673963688684611009122544920684653193917987761804333485925859862344494572778499568935542229633546818422025883229674118229222839611331902696099886815598173558346749782105825216594356002876527108218220014757926166348091473262590643977475116515296116235271294201518166763778468155436869490987782032414555292559870977384785144489036987329252440147173008320740703096249297753274554850530167554977449264944752110728660581622869108920946689655717580951940874396039821732459045843857892653870689242779613244486144283298563849374937229544820644978357875462840953915352862779898678976393345646533114083351469620944045837607956795201360268223294451488425635478032617457534642411200715201879794581497787511134487002000992952986851871157361725167563744380724530927539710380554749238661140528903352612273197478231300334166289785255323549405894421938337328268663135271154060930129606334026757893758431351599531575753777774597645839402131625683299497773482295179554286976993104069180289065428948382978261407418047580614515212738355079380072394649348338792151972095855002965319865095158073892526983383690334853306020091505600608452728014929949894023241641470466487011966497858350381332991813612235563220504172533097848145032789912783646625906953435140670608459293449871318183952316599156962330711577594254909331432300272458826513880359225093247093596433152711255747274762224282095972214987330159994225722652391631129190286767275894551831586675378659135052166005864052283547490157348272868378611051386526820971839093149442972592081150638253720076625743922421236630404671561766270018720087022934348471105478961610530502785784991330946585570093939146298109027485035407491403283291899719470176300275818792113991476592687395337330541047670018101129918452527666469169607864377045736460178274592233778972914759878272340989729977054206836871992038705718445684339182070105894734760143997633275576846814655112173037762636663333874494945933872828101421086581503946864632346275310094414220481829825434491859198471404893765673483307956109027590329522537100476141356050807724871666628020124186375990021097279344513701917425485991994843882142628730946927279953280824323430984003374708885422009598540267801513332128724904587833494209195262611870766837301148004930922376727530523960760018209096774925763902979601955014058776460427490750272495861495605558914467389585986301490753659887802673234329427754929610718690494442792462716851784703807005399603721442729946006863480119619457077985981253644665279849425746461673101113895050982005052652549254593289557503713517974812145622598935588911007737780877409386062799373797372117703279858887680542329445000290691803060822431793407619359737091925204063277252949522478144299231426699221150481131251441356181043586610145882450857948194920511832331495680043180222307244151658112714137377939312078814205321839727924816694446141107645297684944034231842910595652641757329663406383554012542497520619364515964230460456087139440396108133408234775107642775722069003372942940523185573567854997176865937766993625248883775713748036442073565759453117133589579287628285174554587321713216216960541085453228362783902421626372826024465086912196374709050825844834581163273628447436669925554818108283761637830423644576153050554830730148609207053214370408475519078414804366789881199665392056665598530286461869071247992692426811844322383906560281133011960474032379705264341980499160886245934817141105572967948850493690896429170741231698225067372795876028138736845477377348219109258593627396071151985106604117353884938008138563951551050295090650949839287660088303455387586997808235736346209059389059178016347886175402156266726663069091806123328499401302330492862091205519669177680575979529153873465273344116665768184052497545813677579516914132485708603999313475164696636757932509703657381107791516675015374287609873306341867354264466931423659511644006240256752395766165732323984027155169806440289405780663385263369568621934727479020769833548357222766866170110986506805946399724074025786654103444326416428726109391693065518093566002767948123756637109606277697808519084865085730478165059250822352737709725652285706861465711032926893033899882079777367184962573882989274492587048939063555899460102969168504724589694800483527899469952806620230739123822275930095826634155812994682207423352554037736337485567106224622977569922916952016039615765330947306160005747020560327589046157510885709136672001543821884844492844203445481997661809929560556413749007127943284607043255373066036000762953556371836112584204218909832533217789013764046356444352059820096918010193173667749557668934068042148890334983562322000637444001059668488145150407533801954391771111581961158534432914706634032814097919059433812761449334421260832992917180510917294843568030285011415039571324288877478716719709459559860132751382320198575612373371992215468715109656178184770077754599517791853057313464645147532851672028817535511702389593572538120788039180439289483289225250721170375944440769040144707844960089131066731076676530809506101457072818106878126872205726366777757108692698307052495350521907008694281021033930452168405969987858181928247299199934987445499825576732058284509438975738136428701697052426789848417400212543651961765345386753261781413396417019434672755034894752822181062446733148896486394588215218051622592307153228688412541840130453686130320298550357422975601115235034534766490955040913714076611778589604156739680450410853508238868615904890765646095401439364453141947706805123631015158731348915780841255067125818424657185048086253370388940364009497040205549777540092118023893949281306866367935793211419973590207603709321335868904479577395083068973710404440121972557172772157894081076943711346942661618384574126841340534451203654977887151716626483373109066401561062302328763379264229512205421864967637134349878511075033941049580003582169990917003913349649264814012629107065732452781067401766280057913520360568527675227849015557365359380978931086566098817848256038730748941625460588539112000517848400293681385325251021969492612279368913415955413744287855324217663715243507220932582740503590389108605415159703929564077613226825665724467715661904593371741310771668461309248933506694387709418535329282156752123999571150760925144818490850989781314746273928332252167095244172446841735215900576340895805620038946112136278033782054612181876149205895607000713588713218571463022388137516409458925977113769700743975467336936209583173236505924223641279165305797511971123858322593042677227911305893109852612933802903343157240495330801056082022627976088676929276188738295790366157201163570836819230351963188956725730787516991166575877472752578456950885868406162054719114835672579182330224235938737082173840973560277788592952723981667271294024515535288571937551423718603797381005561710297457539746829329777137997597148348288462490195665185654030975563070038296146826642960679126361500656498755277312899023799243914899674337511003231378063645330326879013988007157824768508903819159024061539108655809232619595394522895110808043284985291815739943035081842436122939255683414753896198856210227690023211491742217411072636882123672298496289931328536164551257701737535731429003111070616877042405016659761123876753208764750760455945649212784667533780945916640967018802204468850026337612339870401053593040492059381286250748365602609455175382941535651821230640719260532926077742307262923333013573486568999695491877683214486278772605650604664702701119626382221263861791205152144928854724684910032109743842625757094457856185350027445181283493840390507596671464262865280879749143775882212396389782371918425445962246008195308929760172756358761879039500828893445466592781572504176436102391829322366642945238164387460781838894240167887719958150138162523285325880264199820111694153119663088127755582061881145518992419080069459681396884177493711862497396380765032174737199219913434721200753820943479078030706852828729873452849168070495199276553777022849370367949053991571127747827744483726070882181924268681453683611374005891211636331817533341771270517498279638884783824215587677423362578443412139071380966426304107385478873428569372300431867128154709628722750278547002190708539535706301853544375968923915897979160094114404167933942755478124184539890878498619282918166337742237099846266572219934478519592181054703935436467354622572678772704147647860251037921277676154232574677132363266375101887561526575099756851563610713182709530394557283509633964827421299753705415328672554440177430668402312188526883857714161432743684873295192794472916093709508213366425173808916101132553892919820913990367403729335014826744077832625451949544943850189041919337981113794338051414101270830990396870349335138578900829904170610093769064789338820798160152745299690794022742662590620808224852666373759038391306650631271653197823057814626351382990357688574986219742945152046129619282101543194805887891940852457761083634847959214000348592210740765877619229742870136499105672081282105442535440110157689781214097598890653775783236388778878534167720081099581545916056517736597020830924590259199644570003828815950357141037454330383537971062959929969423900441206748368398559545968226288729537008496519051588394503153992189307238593843971362938354288853224657592662370686575376705574237889639479555045495559356043002945046367844315134146156911034688673221577085010423399430145588892092993134555246451093925182201182002278326858253247511668643244534521861300091000449330158794081877931771462924585807847896493354788393335291574973343769119238199442643606022745660969966050892909915990089160965911782637833387875452743901587813584203918124434829207650961277178332929302750223490405527781928699153808963858060952330415788920983980185062585749473994058346678648478368689396696069524448718369281357742394509261407347613414170255914017310175761439002914867292493753564542107324792101954230783822875744933541899374355959246006228172737005867916309084474274163496022598196007118534794957223294143867975208714334882595229101506256175259290383010362275371269220721179515202878095548030289539009206877837768264489341641005912487524268819695103539979906259027338091647420682311929879659115075645597391808618204239577840309447796310956258232068115644197980764857497558221984076506737104366095859653095552542926854491896689132805604270327609986729815746567287426089809436694298518882063760881567929187247112903329549776822646928659150818680550574745244268672224430806440970811357955474109418907641532254840527213051375117113413982426533734285767715252309778849608886916127129429182152604269100747239608855840498311515442419027252571020791105210347305657231483420557846205491184161983942899842120519280890794922844481027205053541335583755109651684842496949732188457919152517056624328354541928317412424670673699834247196079865232312144334716222650625175263907092250681955541613544599762136332702819375469523004310843002759790270380831322947551666731643200269601795585606588881987782976016861169729497231174871553447395319518338064330566788756930673989081647311303740795605619980737779172131351852938800112293717500498541324437752202840542602800237817641786947612445000882672553071317536886989612297812384057766191222153236685680202641232555601578908256718099329546811926086750393880549916549631395170648728991821760619206499260233510398991840877914780773999631626765318285611685448271578104183151687911488079164226086560363854427133641944843601382294800962393550609176096988103855883030110660392004481571076728046495862959692402378502476476170465374883672575953270798297474254525565526281030215456038876134725186431898904691956521774079325713218455227067289668061474970872485137873926294255430519162876937302074786967236185515028074707116954288116473912789933840490904513103701837834495156771235058125334983388371206497507217106255913299915243127492146966086731860219569776178663261479153167286677041702157325611214786520652026757854881774945848613800204245780355237330401247796578496791304721506672520113299795280169452879898948260126087573960545885530407044259931296178098825895829198782786673533655834200874843281931599837021808990824382184770640692336395666915547431356121207019979087245127125089031910792895971850419994635849230648425315687880443240485272783814975251097922026641076656580807928154463908792817403077523912846233231959190549047855866618694549909540675727474222149856643583169193980045856309906945075576614234410439855587081462071689290128849752709352631236319654112262099041544196885512363356882329566356268424932958056266473263077860052940375972963782891466288422014139679653390806410186148288026523216390252413078575958220288454734757148444751800655664494097337036724643404768258292184606114123885906044135791059586974390558575279469860096851913459416835227262033847220955296004656139264107494229234840270566549856334102851328680562898250608299578872531199758264192691220940331635096789728130471240374443537673010476238402968013291707132958172439060173717667170923343470754638971476245014883259339818603434364844879178417675082475566270494406893557982779768338422039680352706718557759611446715189136839327160621942978370733096034920757423116906965068658630744577005607627079288850296782227309117917290259173170369259625555194127022014831467083577873680516758808745367946748710248562622179689638712456954636397959213156354572020217463464785822787361859177004392279065267889884326583732115327523678917121572698567729024520761827006654691062015773249501215772835237731953386199180059705388648280973151411790924392726653719640359985865306703835426077516499966165162056508604203353047089161988835629336284457178939191119284722571132098031465072685992855460092666138255162613605254869842014014606708034466903645525255157520764644078673472750146091712480494288211827253447410349079962070087215060432693725881838279551933556397338609732610627126252053110322990201439461466008096321956820446118499141186582946133233948741759437057944980498607381207137034394353045822862292700125660507005866288572451445452630295658325927810966823650649881953380659852919720035963287912768739526784451583879743501868740180859550158484241911445697510463122847796972222708985342172275805238518806732235137057978467743452848276604102997801678707848842281341758907433992689346136260548711403514855031280008768741791772305425098822181027669155099642021330479107051947055269897585200786057714571186266557508622763509493267895420111557020239109684539630857019831549850680320433098516916483543772568353330065254367068532793517324333173781658424581150756363304301571252697202086857530376757406342231341868928322025992048573134040071269574480963464460909604607761991026863193614402600513979010201949018251260369156310545457995314819951811799204916121309992480463088327149772035707356862386853407837231807476886527595888125389976216088767243739305700156426235803036264471998399349218684577497477908729752997514120731673589639383990019454656063027121815291413368886267832694500263427398676019513353148647718307933499233538417203259283858014999773107171799116365352665080087626858677074767700468990619236677494382260211075143084976270912800076371622986598861062942289187656036662913797492013387851929116842270315356612930460016091177480615761635637911679890578679600811149888980359762976519897925526871132226117562819163385675818028794221837739101507752415855194983957794494162412224924776927719652750531234604215777786134716081870580385398821745314037389549559585108976982155617234521072311362604857441605199426782346555524429633739025685183794712071478921125504845279114240532589750208160197508600201624639986354972632591018855632946954358237770931615360299236458655309062539335041695569919166486202668405471028955695486997210801747535955724087974531417626357546203787999429357259270963012698108430469949478952617033595605475520363315248450295403310280655263315064826774556610153204179594225395049223791300043038744457576928086041203001095634644984527560870552104045843235821549707369444560051110306544457684506717683131101105731851541121625050695246705769419590414274675839874628563741254652603729067206655532512691646978688965807057997020159501957527820490880367552083017691139821008758979464677356303598039391289754148353683576819899927374134399567984617114361057399574365919265599059315034779099113064704148929831235345337916795586199684935353374597203607681341147056283972609246754937444338403064840971104076996082694546651503593680524613998380387719835982836853697412691069844406760863032640690596271683957687761125778823528813649090520843574856074505862726217283330557933580111578340835778797695286526785399636794249439102701247068841651566864584067954897186755396285943517096233018024825234901146167542849583790300699837726417029145337597138451909335910299679708129659054095504784031932696610443567618052880164079595183536184888684481130193043301333308340659871666043495290844321105707318874376765058010625680385879237754057419944834410102091599311473467115808271293300096934972117183591199334089414474428243508524546329088622696232607394647454997942367589604347176138901624152231630946584401584481365387706731268271189309077430466223580872879717662749397184908336109404772292326353248803293347028968394570519462120985693672002452256168646623729547255748832622213926740755980923698461067297544853656543958870039684057136169508244895895606117760014161615190979113310252693211863749192972836939760228667376574691044168439636816858526827726084400247660210776410483455242732676452947805823895589810779008895668828399994644028297427959165445618395570612119358058886254358739958882154027146972913564401369992101872860989573955670997478833825223525540079927983017696305276877983585292559325771235568908857805618748525910353371621273966524125168275124977175292692045422698974768866254457831676445238246072901364644356077592957513817080385121906549183800088318128916710976178161336148436524950504279923939651051834109692918864040522330150757648170733488643591505447640273762080309744404622166445424577341740613819783860129528743304467970072894902436970802305267207940236385184460736138919948659579907181067459859576173391894617078610284453909558247368003039809536595169651045153080086882331033589186217335888858770237459887716240749296842143488921756783004261537105979728672712501101612894671162783045183426479987240515246516540334229395698054595699235158317315015868975620879937376057277564910178042788387401454101922136545995962091341724367932561237161815446775576758785075499432177275931125945130559145132734962313932884967261239562244831075609032822621797690735856100912866247857577047762382248910449106518151486043644909734418680263407538549141147427358439896241910732362132315697290274378358822624312274476260066089791188049018755468513709919433915907613113602607476004030196474381188592357936032971813155720227587487171638559471497443088017872444053639512915031274997106890717899865965740562397078442885626870165228292156246518251450957410016860553369782621300032433638360239464523171405430647408348916604335318911712182804777947097792348406585307295196208189274589608795045107813946303147444122599632666795168438509291566765686671792491961049229060730919567897904304029290924650589970543133764895782627489673117468471279462006794063417956837257866991861521067130742686909814570549604839121845705527987432273320870239778031951315861791568935732219569256374051688380758284421858290278088579293182461997020963715783758903672065107649389445741750379499868024245175131608852860596190719031858560900881879923466417587788413913607498114038849848038776344183957663531631562664312531699894123272033668715559607048196756606556644877273574115367931089913892229872403764199608494956608030432288983535897262996519098684633002573340733100601319375116605225958896873271143842225354219985093954733092427068940217813440489679618930027561333083042104436236828494356572479201504955463670981128557352399429987612051522283736683639353380678224038939414798711472006591171480896722534618456296928938172148399845075805534358474602815308349678814268074076304142731376343028641423893089127906099625436648586933506677700528125243589796894023104362290734686657459789806277310236558236800274932489928824439780394953017701933914010690325685315147567595637274318719979465400769299686087581400207928103494107738363201706900697194620888989484280517375729010513667179342115364777553561203625697611088108273320109590760834743227753886286125302431998967539936027649896262556194003232072626415910789467030212009516742516289673519578998773141018650275522783704295859462282616745373956398831888059558552601955352333951023140403667988378470388597865681140111988542688523951255782373870177446041359062151391342634982046495081260240861030595514629773556999167480631479441590566231227780580339457835795761322159102620883489895982986916414495118198910161627347432244910097482899502640758789139217268408372670336740140912129448416331657635061660511274110118830132110505538809273581727614725945098428960425013204935166272158465486650808833320392518188399664518245621275799287263815653922598799370680074356346878329334489207582671403075923383557826360153041242871538479486449355147456752128711362136789086818180480100696063599219495067399444780942963890931255455747568359708672040859032823002178457164803207185235184263384703929380666101207099233436328209157235763152020661042589825422079243927752459179922600752056012566578219941292257426336105294052099190824687446244094980868622151785756202578237739828838910233886107478901952362832433082940481730765074036301808554133453142819997203531098222565344666067195447953736424947942169532758541435470128449116136381553571110813335600230397585836033925056756909171413257905926078145500754653383203472916615078171888049483865577027439190231214959823906984057570448593071480683036463053778057259646675410819608747198127772465414160256643669705359167835235472917333724029165928303869618798904493541632977801831383739943573840773494898715082854190224481432942846642719801827748072016758795973626777125968878805585743557010593321256314240938534755504736301822255509877110575270424525490343011550446713041946243202638283677437786327302757640993868553341246869238058528755583937789770143581347965868333649679688957063606445959515953969126787635352159765326993631210346639956337248024752041209032577960317407654974179868391657487325110741929853277076437905419275985766256797455642117592912807193379359602960729448542450033997644618172046031176115939728159026116936738704579175544165646174804836676470414370432413648295273439155150945897011194653837374193077817920212030229137791301781829391473211300155806311437781368008777465540377684578215044722383003770162337951218514739434892745925921503778933163989826235619097095159166417506463786402584318497972766624384779822557003020373118335952655561222497252006369652552888454239414214849020467822388002344433543394720195461825824820407879188155020408372577356334179272682770707139631922207123318905205703724539173323935359118421874423122102729188473501289828947806581824664039788712177124009317611509788010427197143583093570518801944071675020472479832342042324306936636634670451063090461867625133856399722276813242392200996349522694634046393577138669775053783521497351232494469955660801096370682894356040361357218480957034741497548247445276085934668261576605451229990654553275408585804055903472927997597886436054909562020906466910542305553369049575247004698711632989088524111583677586188168297524800256131159499397925788725082822616784903207420232992849101603683415099048288098523795506476630399499960762873709046926921523145463104529250692080653448464743985792034958691266902417681804833049837642793828063120581489481756640805589757145047078045716419120145472866478157427379275460856305989172340415976494557966385421447271804626591523150348131789548864947138236311568880744286296894871019531146449183821828147352736811943680915710420373140982694661076498763222087544531172106933122849972312166873745374127651701089967487476162450701760844220299920818313511371147197554240236156287809446748055282893362875572925599088289201740745709637863297283888523275206990322548316633543422976254130754413899614670561043069573295940181781501125077525203563875072968530886382747624961388415330088831366456751511960288406572309233861287224552057102516836566874872503489009128474590021968165099342009184795751606232937420326870094358529178298278868125334893977158611149865093098506429363268854251216429795328551440504261910872381044261963391710768319209838569830786983633260672063032488820362857348011873419346058203137578116144314822676574519164438844272667880496372239149119527937118463634082005155620329742074142245470100298082793724840208162901705295330417851170691027087002857414739250367860643346209688470741390981689539085259438146911168794288335914496416057378169494027704620259359439441621408061307196592248019267636193938680026560732395234039723665226304496101389043465212450980355781849753874329434452335484212625453756475087567840023356998008047599098010395944119666832407208818832948414951434558429185063365732248553292943597818397565077936854073342862567102864015129002881502053088036051641706569251588109299825339334297742473478624654169816887198874292209851092060899390094618798882180382091319911221963728640455493884542607364684776856283522835675114473762610937554100677226395713185267987263175450307245736589708875016758120827608388074667088833349020061021856389858702970859274666167551835631075174768576933615587732890406364073913280208256129686928423281182853043708856892322058884080695137883564231775609189125919883369998662037873747161865538568820510149519812492209626202828789651593946007286088882175520749980348511050391923245547612212862069180181744144983864125923320407573979346219769106357000197063382477510785912634085010632415911411310701572982904443651321266188480741472398918263656769128617625219980571256920714749327688006488777353719604419564207600724384835849352953298114606658625688287393940002432215751140872440277948114185464461310699434123010407676885165301867815589478646319282056281018665823164531132040681521916355296395160138092155003523904148659033296027542491034229377805396562202750494609365438454455378804210211378745298715201864206980197905409395405714947237600431902989743424181078711279219826790219205117919647180519612180649872681267403867232623314504692937061974514496133453143957432498574705544559187940386519453365868065460582138825060121897131104204370341647113868438000651503205296441099001173132646536571362259051873370172787076131053834752607820789095461152461918225583472244402209685165897742685003120988153956223771004336534959400394977570042442356297912577186759467651628347690774131364149741892073785414011513559223726882238633685536730237594367490227037242089071254846930169249368552645745241361848468089434610515727066174299375362255335758611496451742676273234244834980653451146598394734900052378781125335441941532791442364421527958667843897409327254224848068787299729023782047856734617304092550081055538383213966665107892504709778453524527637905070991591954276630645606467617117341969041612968404370469989110252192457106254631060449559161943583648101000095173186680889478934371037447549632087203277990736485598413644245557136401701327634749303067934711876985969073020315631283872127647833465008881438383430616060193687870342160472678435915789299968508234855148912272915348901253694526504543680485234324614854673503498355538181806819822798067068998352547485249288492062421373861151482673052384575445236378040560180366097129882324767051687317114989789530002881167377357494699049095327471817500608184417705703091174499731128532611248526180510771440315040674599069141455997532932028227145579464004995900039447308564908654387808143330416762815629495857461915963754338872838035930473316592478741000448255448827516729112386588516373143014190527923005904570908221392630148889651201988144379280414894232444617614275860717948032024759872296722497293860180996502954880720008810940064161392705342218354845233288974272418962102074046433367808105826974145131211744482057659427106984339432866086017908739204215789849156677313677809390113927170589674191355600316917883400799371283583190310143635976622667356938874235682341741919929554147056643358509337906097422579442611555777609155962395050542639843902301498234040467972766020290522243915881059744015339800315923017157402037937115220891127072121135700569496111573215250585890532728767590542344419735806158282663268369237734389370155015747552000819622659044725044882853687371945816324728410605635694996723628005717338401195893975000749014362354857665384315734063841825874756300942276521189070848291657797014310117483362907502323460603674765984637693510822255114148482694838328475901282450017157007890418161566624650629731311917574954954444447306736567998600519600321169881589209592675328934849235054307828453479068478390864798923802309534389191741095290246048776970251200219828285758404367384290217911038477613882480945995595742042042062522058641766457083540113685693394212723500533896651485649549439188478413228680987316575048077587108462869005740738559795839645617782103252740132521375148895235003775481724703732964745163255022716581076027359319011636440530939253108643940489557807334376857068975424462760063868231498953199608719168011348896920532771956448966760809686912235785068536775196275931361712343708863112021005690094627475029747173148357430689887825948015768491276469280361141851184976998178929197698252674485155602923345287427267042844141727094525859657704348863249442110944658184215468583562111963586251126351605996631239976389396786077294604279813096219503490833807169026111011516986529403105048418188367356147729506248659606676733138795491900275121154016402845798728667858341422946328203780511245737692872847038140088327291558365163315567267269245909498401844668787482988181074667761140612851021551140593583103633378663545690367213525634261700262323639013632913666112904593148980836935036605304335765168068421535080411095115410177428074028385690620846956020556799198687655344582597705687099046105305897129365770166574318484029923693425302505726044983599592966922777125024731442728051114595136360173253957140606573051768859669806590699012364528210368528148678991159166571824000669232895271128140148030051024782884336289153209509756920368599757992096874674140489180984901835574110293390354096027655575763758516435162645241873723321359438593346379635215648497696978193840468425105881270458785840660604177034251599115416338901778158997867170166151320943476520142620613278368329682517612890423979628682887500262113792158763251981242473303732139292123738068694684684008599077009078808715707827818578127874252220074950269005807490560817357008977287273766998799312402382179853098297143887955978477835864422329364436723918387340690201764200109927811711862134965070326052236089942590738688720917185553634990907501869801481487123758182893244470625972113979030986587633486316009580875900193400653816951561556995586654795753584887523926770820771997815581383379755886281419768755796117927080395657711886398539994864139143476079822735792953807272334225936698225682315627542211976798779299811876755496961948581981010649053730628152396173124014363939282292141351145998249680424320795176983549711360188537670768972302935573256844946517958549429605079930162464785561086699746814636060713827611103785791396200771097359007741495496395524987145280958119595431063543181660204824528319510060529951779392819852051581561024184405922315884503279874869177967771231319450512547975283759416130786168942111989371757589501935996689320803872703421395942606044649999856439791877711239765161308699080548397152649725438005865382271603554725428668657628334621825121503771694910795850124254732798592530217820559261419204087899431649743184493163292626463080195809011708785029617224533893544681796770650199794518908878002776304735095689536981920162515410331089047558628235007340170489998007096837582907516140205652387805282540609264489364188675664361036185071214217227357432145996052641501099948509587054111772786702291664372848632642922553647237348120828593871105847526404336313383442895926264091058784014546888545421775096472437207858183008725254477708506573223096426291453948685415848432736514143233055562481533663949693233507162440897175079723766583584729922496659267792666008630096084818557893650609793357531379720383488103005039100560465877651354551188618432620411745314653774537391341242946981693432992426243084959913520225004941567546459119627974229520635742435238938260133345906766101094168406767287900852424645157169313226241418304966193801603804111083257266252162688826731816367749166225472544283525381629666945764023139985837087361378983569794710226744163620432356551754916925648297557735424393503032749292996857205425250271944112275392128715861717884011067613682027326072887235604617501381011775176830302730294363076975297140920226759652372476386491265138131122017250685843455555311717218937561352052544153545421408564175464580841638444059828985647064633413839858059174684226411346223462872497902661254721639874569732417260873821030062544313232250123887588685695012143511231526593466166049943240726520734707025992706200872863001678278155482432843378550449982319509637247411897803273050827208608057764893350020072737098052496626945086673508626455118173226126630847273685610062103756046929460981802297689175776407020093323492611126473986526568250312468030025093921325414394808208719836191225175483366084554107281701838819091033016442600309909054521899720936145532361931877030188535753652567431020458967658855844328878142694345078134285248021645414654095114919329721885939964288809845405703702769788574956147817332466280034171732981068249943544098011234420298010910528103549579927313721789079231901864946812355617378007773354416032362066802542712090511029029951340255295145512441757025913064618042620958541459271810268106808275291132622803448573885713828411620182158516661943337154165491034321047547040460077348566501762961195085517589266794195171398431943449673154416447684290119157913883430187742450022143152001123190953016388706635450445634069478151671172432974733159248081730924089532636801777036156288624821210842097501406856203691160918533924599044307584330242006196521583229278578073500647430794374369054626549027006249934150434282418351843771682489266697427431270430403701365100495466533112169311325181165754016677888672912365141260261082494001239335544509155317092949236711454007483411943766693227103883812632311231446912355675380723305939626874444582784479274286407901098359236626642982675814150459580720015491893128477122915196287025583629708728701518036924090048256556346160704763616005973768576066708405690720070016882863556416988105901893400723347855929302889966458689245501148623071150714740537436081553600758924031189468338174380470488495852719220048563938455687121067348155216610809057928609630658979703621839949365636406560639552340950938671272255174466987878496002140077893219703479587158907520101794878657403164465311641116804848149569836777554976338706076837088705250326408100150049078379926280862443304715864143385707135782302687144143594187742856338406576185209501573118463300085490312640382731061123792717100164567858140755397712726114239347538394689364859076837852363050873049052920107713229960212482640858067726601911524590672056506920267997716260243230988759300615063053418646046730984754944062099377479265450496858649229061043944987004669659108462181332286157764531114419329272081188349105096380315721448924411692520776911400815390261775989182129444292606676929846210245673317689711760994056134684744539900664550405108788287271443843003531397458551087313443725044823660643675248551134686681829650863367132562161089089338668225020296063521587259474662055402863830564130802154144666442530034053420542872338332279040599244383308091154162195706845870196359502416032673832775088159760204009707984872939111438384435586151310635984586293798187054503775531590441622878764104157627552901626931602014287444150272510029318053699657415313400451799360404227657348752753965902354054162357786173351456736810762809737839474612090782027749102740104056117607545100254435220718576555777183245711539551068335891366707423674018032729475862915393133613313410010458516126220867743997214577178705426804583131843814829911961310544393947082637448772272372218521217427274396675300251143245411441409995134188876025455414524408402330883346621425364658323408080941933991494018617445599046509877166892554250158985379801213867086595593798393714248236014989276675772231085250784880132246529950573014795717714268407102073204186822607910154131277342704372607557002033074328362493417878303610804091984229211568830949650380645484930118474733001930304939395644410419285301272689378231751742822772821408104473787895799219170529631521456443298742363382581724887574541413675447931653959363508681187030701858778959222447506550668677887573707503701422048695484413682732597921208286829101372460051216889169651251591408604112104100305495109352118705935708433416609757063500372642430417045578892771901433255598478998988066544092873258829641231782246201518895192545219761377225206360759228606188669941364764416433688487283967082490691574129440182702209190047245151124469083266502616678906884741666520195419235495798164961129332831205054531527116721412452657714102204148059927792746121225155331328501363067617073975021499641692367159608000246393333332648788693614463416996615202836932219542827980733125955816133791881395826419010385849882575553577484921333541503282041455358392466753067113415981352349997952459312416684744877044817314217935359546094450716744950225981193840587988112264283445508857555414113178123363784627351192915390186532120104896852215661623652047808928734363615184821065308669014537785374528184693033998643537462988654139620816277823657855851467016595005410025260147698681433721742283861164859422775414572164411220097383767984839116543565747256759330208050877406684439573738399249238475357978493640415371193887678954668396264950647571853170435836635811920266533044113294058959815517358771859992641175541201883776808226152242995817003834641280344171383473174103830689393482633591870540956012546721575453545713808145781185150913302220419353288745912874752401728016118906335120039487398730212509876297960072313175180018555933661609628466193751322486939521745644125177519813936670465002629473242085758717906869188826078347973285059063905228036259309341274442346200397126271003428474262979571057809703115520252345741288747736020585682703328863652964917858141786634035666285573029380627053057717391150123114597073452074814678962882613307631673869038921071376040250228925315066589529104026017515671499301004940755497140447061105546124225410383766854113340559738535150244750022318467887262440579819209157253820598361871277984221137023922175253482721791464432080965990046538400751842735110753542146403650697307777806343170384673806036553336112278524950994740132296715049638491475166200213462379208355119291689463708989341157600195697734691228890002418389489476608664919637965412616990634721126842076046701262015644492661899918022843537902042235370618274334400195776783772808674520521273881408291858299148029392015954880684877490809149075310800155833418333312462732683555874345461807784727366333907709211343186030229417361822084858977499670243014130259059591480866872831583819362796782000727678540330408945684358055302053894375333985032671010419142510620475645164820768973554826083994060835375034990146257362379495721920728922580469783649675318477234187326205176111495748641624413230235976580175976724051326631702558013742266582821827668210937967170041040017892909592039336719414799583741384409090662716964669700627532031588517791582087844988481253986280887760290241488237848615889563852724752928726040320002403750861845542577924038256697674969374338065505137552075583231544439170636220057214851039190511689457245877253549856553583590745132420624884284277279045660691819853954056485763112183624618009038709861503478819262757396275794095019906359070693246798123676164232559329125802747936117687270972310624630382135127312887245451902484055243424069436638570989710627390900711309976447633894650630374892890156208342098657053602001137461254029042897482523084182440785690890833205069696074317217118219286260434018223028667281211427853715012772887775813708222976914825502929157620477849758068142076233788173537040440949500541629525709303245046918751900901586365699541976788817926039185127623298844215751686520075601172779433958828590680784753419264825667904096714249776317657847169833070788463864412528602397207823678366982510577221604403118899031275570617668035969076545923454034089131293340800361132914634342579462399121668155657847913685329502269126938194138389442414837587172790845248067296499479796377559972863442231422365685630822078839488280690239358285950283203942921490751172557023115824616833797468832207258073061161094226020770271001103991860274511818689872849161928064023423030199171947820933225975366031032230192984564766358135495295722848533088193726615830740101848334166795740676964746083316896026052270029002285598118862052624444062518321531261686804419933463762239358748757140933951818901184699383493664549726773581087177523559297663449727575113434867148829784672122369255684246340598368488387614284607233650357861971613545177108270711596952794639050939455263904786243162470081742763521256347659319234302974628641926233003786212931583335326999526779261755661738883160560552298908798620102937566755052021011815097863980345765689907536759771049238686457701291136079695889239394398012398589919710474706546238411750483448022274842261014520982025245114761168698918674431996252626122404178068677339820145764364539200832759616106427707494186825266222171861224754527512427756048667696092008409717716626388956720890806028683476354100763404629600578241067489615457085341219347646807975209528910621993365354962997036395039166950231636631814614111983485524015259754469814157403969157192752355489697365157458201502087695474761015270171268075656191216269254660705389125025814968841998658770427898256451572993561878552051898585846030805892630781215979306350904285987963916706701646773517088632708137845259298115471743302356178503329809885202767195516301434579569251010515670025562217662049453218476822377806329639036879855916606894212852865352776953008697868380138086896442237891401859330053894928324186151687375572988903775852362692278985985919524728954478366460700457604043365555719115729854997015403242019557259505362884322384066271900066815344156835836171536480661478913333483976706914550465111398918870207657930977062654961903445180803065447719433799615569844113561123130323665674971939539145537001195438261955141009345841015135964080301747621120803606311934364627322568936307532817532102490052083332497428311563283185451444457090043818133351529424772660571957766279768911574265277951841697538532087846130740718509012214284719949856531703602652841011108461346825906010880048865238129683689372104780114684611273095021225879176060376169361412561701578803796070956971688928796853132787372454871980656855016632146468104947477718011959690015628285576723936668124907851782418173971557977976505694370208087148974054106308614442651921815246771565875136874922230311976390164229306119806665387839077051446311826769254336272067790604143438457676584127339144941040244771783177348048676229192544335378011042813671442038476802671517858254950519302005733607504615656738528776090367869176652650554315443904075715912285926040684398939373851631153700653722124459156691853187441020216565999263136089794992147439662538654153908342151734832851183922484624393904882924623343713730969542377173435335921597185094497252470446317653676249097906713909946338378960504703412154834213232782655679578260335799365927329794890544293522780216719204839222180838521877969130561989569537140393848543242702874815175183892122925504613157104131188303959730982322449052346239869398766110086252570652004722566512025169587333753677746076769773879720141070434103976342258027832116236978927219088010109796377492634538755016260728568736414122115945821987332430221677594191446503662832345388169037958750922148975242283488232474408620195618642843408986615699620301644351500029418031876253488371948109878482162309503387347883591429313510382418221640618312243826656149955902175456326468687161031257299400135980110478560306763688737172357362107408851208631092274256377159765452810223511698734561297829257659705236001986141146860042075800771240837367733277387031834861913952764401227081389502315540064182800255565040947860078656427953713600498156485435256231548934564996861564308999536414384127154122589818793592801383292404900508003497768441472946493463895296112540215051929121533474267519097346503949446338616834430464822060762322022980174508035707193435401133231502438412477954987806213117352762147348570006045059776848513807447629285150868764093589340037330535061341646197556931302704492055545587412018236338738719561821298510319353471467678630397352009684346066424193945367932763434783530579063054068582045301394914753634038769476851279218136660450651939420728030597563434300280901322499169505434223515354294234308298035899389348437579639180513366230005024790301307774046738046038329177689756668821696170679831217032268787995574347553067723065210894814297319033885828202840470350991282027464941062443364673928415992059697800631762673983601609539367796240196332375557815232689487702791258006657770541292429281178005556381551142573195902174029527754065271698398611952590479223291509824156341916364158983520469311649567186815496943460521265318666276513615433337439882103386072344927932804794126630770408125284665335459952174137286777276835966538287426662112820021553499228817057377610994197192748731943577180091375633468527864904544193620647718351734395542295669279073268946816237643220473345887295921323757694405192819444299664104896408525979016867891276008964619273903381195364590658493081916532583346249897091713297729299130707812194668603884179715293360486765088854914959005396329567886782081513327729545300408429171031255753955846777061304854417089739753628407378782366629607015948598676547065279164225332395174959949930962377298094336825722106164992707516151935924339564155151350274900590022327418203687021104186047883608875502999578669760604478022139797423500552407958513753680945272940870756699682527896515520209988408008112861859466438503136885307896401163766150709701106719743483126228532674415224282112265281194771999621103060800098899448221223811711610702289622403622097360677597978990958167940281559508233263040241347958788169774728738634897913574291461795485660485568695959677838396498288213251809989079335866026096742118304363098375195386190197505587678528546668888753371746945894597030839102890169751795508589852715662563657256992684496938012698032293468712102267448300947299012579063907529406831987615713425440792062594563079467400214132032828672994014343892452226490368961576630462068584117665647117699284677535373842002138456147370746142478279236764737806220520202239352779168113015862448959862434707317548969475148744591111692563266889923144392828102078397475125183232379078335237742882870568000080294444144878597642498590139058413214348246132637931174972681879464568328505561459703770220051139305584188975135858070561321769395560184520428497742191307396253400314311464189810919078287426540157253124102874603993422134008920047787673253149190888282067136105081729938993318702232846085288902503001803412087187234262308108786469652352293233727689423690076284157599793922178598784110024030040428507353560964619339653168482676590722011295161185800536383591633124202338988250626802156293209967746692865752430389366212206859804366507097017925527356203347501048015153174155933508647769259159197203500371908452711103471721077935537232604141096191785646082957546352659378594560903830117228102836065128645244643065506385628200778246953481211780988942385360760704977995942290678119321374165378749966019792273685828090330684637375107697922577587750147648835493692222378569268812304135602518398384039791530468155478328794869089676652623901357404451334388668239921061566231595705249575535773438765286189677236229148842418052200007403751005712636771411899499552171631845729599600332224121540937282236212472471503010308575458422580399625997708108080939223867416700605115157841414853987898699438275315391979002440373272502921689891847281599214961467309493747179249874952902681666003785519421292190638553384916353607409250183467200708670505228198574582386584619915938589903908987286328940814694774963642997125977817588589910524669396993775371258808266817681674160589586291999367295027232765029915895794196287723173035178686881623068511612364250679765951221694047664407621647559649639440400669494299733199574164152278384818886473251022325944392463880144972466911002534680386790545659959976609511628069084450349403727580961199897438832885495864924496903418943897726797016203415935274934895792945800325923521649118049941931458924503739926738645269814504204636452615167063651464941573840619467810383084008437456167625411860489259718696406558726080998018380697047611128575431886248730672366276725874963886699002625441296878718177339491626090919083784766198067098532349619492909242636524497265131581126719843152020685098159839245153439853099666209246607908599607780526021327985520919923158140825489495722374795984900865415586352218445540328423151443151695633190590765322234107049029398900530943113545340393673968429548511826030314488671895660435701437162119355911533433854430001131660982899281591254798474052604714456695624365353473030132436433553210076874746127541429929442918565306999736679336973849931102740085902881319882617730268529169189009351048491845537351438939133122091849730904447613787886571066542368217358762033501168391574999539479596999419010402225097025232734337330413164434142137377021128773735392575473285634100623215188533150181015010814314811463834513537137497139093537184034987031428237825176158929639054165923834937219414096152244454692672936793193421637312474295394008157567698403993410953338582583331775601119929976839495018659608846989325063474512565398356907373623651467733307122301824223858616864577084694319307290648514317544756922032659027162606967322935202248656754927583330290328278760973086520475774785622115922423549302309510801298327370401869684341038509597381438582685604095146806089076331797503550967379719253951768235753672323901363414547189339196579408555987605222789119591360179883378327718089862804678059488533257802744500505951968237079959705122629503962008610104622464599560072371177284663968587261300184760493643284230594078567237003539288019522784310570105692637019411491795407506474825510567617734811466990330685549635977561211769483830719328438363968937211210779934343710411861771878498390167915029972056178679266383488270127672552129243623014942096587311710507583991997895145025265236653736777770399624452175721641517899450768796186515744055042448509348557142381423439652801655020854243766837170327784678336147501881298449207735487169020787900053321508487827166597891381212246753842021393688937908517410321933010954132675785583079789171824523533412353955238481540619034494558666373300289450161972997296955392279995069350427109928906129518007218141411929279376058956397639462187349418803469318468379406813650981712391636273491553189039892233053844076854844877655554239550680603929507380047193885160343861943319911006904116973626863523869739997961468571625723747163339101710703332714472916724577983374380234079732896026890222042993039440957496658712134879986111693986508757193689684069142202528710764060313771139463781983575080145685733940196283553091116144836996762255793649851991521477773996638856433813846051562803237831988127433432784812726016531120006535272161502170015172230344035461472034399947062252564346118593996180194782889620669410502100491723415586627101508857710346945617512770835271533998307319170477312065975275178138079273825906906692590075478648110247670056661555749231144038987246902777807675897607508399201188438856778431441144080814445876893592665418397447889819249326445044020887235773094877043547999054096060249796169454113329096500696859202442303580457477502608167782565948129299265798618000043077382707733372390797729733702631419096639877246713841411316908138270321819974862005200673806692421915081471688073785967335890853074703776917034548840885367057181465501660140133334209929578913439615786741607637576295991131674119862989071618704470932228154222602870090117873091707434023434714856284704431831784309617770309027152099018271333478798567199652704537824822358994186697858738375246718665347999964752879995189320544424851600901817470156652722625689058050032477279088300831159859428018145397616943577306671895839313999022314633805054135946991305923371668327759148601134822057636050798688044761504890497685018645969103856954205874410771591980421974025359909568854728192022590750511230896067813157777269560644373384210221327972491684692977085931916476475102540509686351035225889260994851883216129947882048118906255379239651757100250448820231448479822865327871119936143414965989254525577394574566777874492502437654278059612274565302694804416962988551275809883863809923346717690471076092102989058924495213826213509680304396986420522960513172300358331515222592014675851247535215100875522943811141173950860513313459594827655355030020027309427459215854847366234981063048033083005116503718446170512075470686558558303165654425358831247900761304636838312152393835568686464844961918039082788214387713574631997867704079259998442150037933608899919254217547174975870058358957695175417675557872849441410572252678964900410518992459662791972045598910432055504257181886636662215798585045614583292784402201087432921052703166823337646612825458584957831322324813305006052306491930774380665347583568406310006335372582122093144332210337898317438109542406761781946399893947474656997037030797714604474108936869289147324030766891944423621527426212080502258864607095788043609639392590651792624889599702240241371549035898392465303474330440353837228550174986331874547839579587697402784265826745028522688821290147868624313587409114349166856911732303206350102409555435796664406993831109719179450366136643037646320212818694625396821368393767135890136538986577997236101800266744492374911470190706452441066035344765640594676758461978610280594795035072192053714552518574250039551264187384059549124931481613400164110544315693597786507195731607181716836617235800012171903842037822252005571770679543163901911804876446616322314388921710807022222699398096673609561719398319042113584567213714505423912401978160607995333468747739906177451936826628313209905364078123538894499153263192444636993121409167153660040261414759627582422490411774129994555937837971349265427365183220080596303705530397345979129519048674597855558376885135938115481572047535517463875082027327728994853300721949617573746886072693993015040657270952750005931018518089333404865362835626321958211693974403321636736290799900402953114222461019877359386215687634760140909436802417647901346537759071184537099414354405366030688037639591627494805200708230967513075426457857022023666383228342371004843320036254784172935866105425439919296094525436014289468346419318816453180491633802801628721562587192800806230404759057827071681647504292321776435992000978902311869801614068365143897685137689671163084719698769116501636555873427727931170945334042133374301131531053263858770896546069033107275736559353183975034198639938259464613756211448338565505634695796196718409120332199383995979822096116915767232836184713775292063090580782066026924514860903626558987141756859062940232021431194056119787569236485422833630409139065027410269550423049378505675326721126363000111749655961708625639765933193928814132917306745732260932527658667741425536495318917855783725674891722024258503260554261310947740775118446845506554165319099534487806468955968287097937469324502842517145591410987847018751529647921855172962117118158134343845896757857713831962517371441734711190839163852363780806512624420851693924534843974515515649204841248016505617185529997254000990968083501396031377670699868910056632810868568584472933452824550304740668063228945628330581933132984570510756097936872119406208312283764544523279491976185373633104464977373121978172390056722958542336525983647639491219442770540055682479356561437305790033318930055216239849197277179776827147097209040789849245694193673634236037353702471272462878067070166379848560328161611422017874992639189321025657303508543580833788676895983188496993083708648116335333404936982471872175802826704286894055779049393767551015204908332751571164133592963063231565396425437819926906633489993593100192725691017492612043283736283322457842958375530428428579311362572873415918770979357852563266537169518751888560528355190352118101798914837015304915579772557501580366808532696369041469484708663358493757313816124821276927948233201690981434468404924994754175437424787052596615072626894751225051891915858358333106352921025795609189582479654842297673550091876202184854571718453099365798011995646324360943308129295358639903754411286917934582918823276784851826604263548497819585685455429054868470754547536257783198089138259521171962259771235724230214627784249977489963240289759488620718500035204246603994636134447049216376377803552177790396448406116860186413973987103575214586666989504694597601857527317826208685845954351157426067064351490890329998247800471491065781346791911773361791099960731374212165794865220140404195872908512099300117280770157863527234895360599164422198863839348063308141454054328969902259573055734918082364027607077107595951944843905302714242784364381479145443190598063615501304574078275134712735437498721948544477295099508984348898152376971321095623593638965956606219691051847266143162253911538624860292312641809101724164129612789219372078259309600588069745031748589291306318514658716348365056375108334460028433615418130784345822327931761499679578495706135027360449365670837378518554412586384633282062805356761313554977798669445190030723389622758317638673528222954843095892223224941358202460395264875654938594564407594541903700170930962529181241091046408049917661750563535662995951870060805997574881897066530783027542495307742405122260671904693176359254849939691680233363734978866303197174953711739879945088079650067223627127090337811418391846565192387263498035803647445532611008892650857695914753327396961023122067616422373566074461919205284831436536152609634573357729935609355315055846607473374272427490477049735674651224369274060030150312990567365717988060242838929904896323939496686607538343473837608764898910752039482835118621721802099282671277774670317636611388667463106379085700728137399036978821905374560375249452316191895358612357103710845867800673742011643088577724730478354640028374819138909263814574602290784203455202916841222918115079356267299466128620704527896138911655188429526709282386313188966751771861117372053446512267529078297001253563343399626864926181956142911788115356005580725759825153780373639150503575931883556496896798672402400643531047457099787087684203032453660284038700586340807558059978454630794984304372371812512447414552990334332602366989987742574089892523081973166056686835411143394960259449162649891758305868373746436683331733555156724262737595579019528807964536695859403102371346423358840703429507843722320405720664902571499370913468707787424259742160182362398649388284955843583533160497140772276327709662694725716908033986945092630631911653510648922916429455618683407881357433211192922272579039743238031427364742997353600010800604193686783427549875327409365653839372495188124789888333986856045593654612840104231650783759555074881204429880423823410109043115398969681893703678553496144361603773747782501489840615361951563052915057903136680220738815368548788834155627482600518078720756015717350557720076148030616144725355502467903220724946989140406846034681045986008688489212557945590899184463633590070841390233043228263765242261645629081904089943298866558142307745743403529841037761735389113891268290239800635695163268433616144672176794495192769059354063979482202131305512909473632529653597715329992537662735705451056885190153633421570789805806867736607257803748190734849860548053632217952182513728828683848806541176568525741992050483818700656787708829046835407090423641120130164344661890598494233219169730973176369187511008456015616039802789371547189730801086701556654624108589085569249813476088397576134039509289760838245095497878315325121541608174672444487004284070645013281111776793352367646209231727953538096611700223487565847506428738172602896044045058742356770223656869930684760241870549384874334745682584864554746391635174840082086710049047371484624977642774827916123546235297184893929569800665184534301561802679062181175661915037659681772238426390228395906112151858085019347733995553698529550320358262514084844607582645118037617632096532506381390078851564167670852909011088371987524407277884965570941126543393979172342232258761592596837515956256080192430617986170839066096834477004223089391864349234027543135501837189822049628903292461553186457234470500229758365763158316171161650379234416224408534547961509951390275777953462751395813307925107063675595319969403822291674979590873716627749554972058772986670640797056223217027009895969611732048691317528021850778730893035881378818095574636146492881743353314109692614575636590581379866808582272395067639422252402835129723662217955191076789026904472186704725680595303584515235781948184023037570219058437525803285869840471352321260291144318210367283138779086764074319717021585822742069166836721078735758866026729608886752544758581655669362784870412339444984483409626641854851647186980897158742004963516431077760403273894614452699263988761361687575685460583882236097633956641103253973435276563249997354319777336242693675544657566490612474646643798662776980686522043014533456988357974666050739531540240195222409945750912972028454373861225289886862385592442355534422834991850960323431879325474948873206991941316569831340181413884348566458551914212207292998907813284943677428186065893588582837950027604140422398912873620864253656529549169762849067985180067893850391164430571805086208026801251594862516087571265458267199236857237783395545145406967321002966652782668892480318321541251603007197343288962182189104270725361975806433799238859761545326147287155229575886776872107388514438527615177206935245687605873159335885300675765434646077059206490352221412299532548047095722686247196567652455758343490093338805050480306278007811471731844848557528403844834483199244624246524436026412359366755937454397315078476326898533714437831370983676035130318226895692224615603325698968132507853003709408837947028827063185430488123240905549585970291864632553502729495214532452826191007944563018115454706229472290815702383083924990511195026066509565221012562109797319927745523802366167404349794778316545118551018219659578971148944830648489511154875263355800245076451471605734353201621086580305456106104807252081760098001030437232273038829256786750493441267540614683571109227000788424138313158938187861619496542530582438619343997760868207370794583615857266844911757525683939978963794073994606339126686365419154623030649711198618112231174863237027463499337577940846277353416235110591414357268619440773099582367771662059715852678821154599521166634954151341467574979471355261549915186463081684494198469799841249339536416801198346508137455903829253273427035978544845845002015499432936915911774459254435469672857715055450139432146072022958245999876031818194696807481998606355682235395808100681447602283989400917673003906165376140137618434533485383113929065138203088934578270684528433266241118444049248067437010589334473168366075356005213076940673201076226766105430584328189440678762946083128518926717110222069628812332173185479520649053992084934472877306752403320286942145063108211418060348052541491132149274695304085148711725554924266040844213146249313955735660754796334250301995686291030864653237108488599253505760249044094160778511503052854763636910813793892053630689245182418103637759989093640855187465095256518653249382226145659046348945842944481782198154299815997935350746557519802423041637215224884465190191248016811680170909545582512153561086243977256988217994964777769745822745628001016833322222998930093837906003362041428481246814119962397682559284452797560078189511161766962139744095178189638464055345158886452849449773563283692466094482269084105501863811725688167251390061578388497634848769080237187010579341527037688151364181098468233210009113409211008752572750520171187725509073376592047224417193994239427659469664780000826355061944940749479214370175722179999123555747627418312011608976320039823519315950981211855750435121139140051865942357373400430238357382152442777144266048571153401924483217189053789437252877070223997948766300958846847015742635605365038265158948622869270860222108661216295368016388183822764652419560765575709139636544775831148216927940196621532741638819019025636130342451222956332502508299351689999251440263633107072021596245089251545147146229465383985090186345463597912922578610630976246068997160480600144527213048955685951015538910701150912096829001928845834003545958077826973422258588055219736612044577098746410350725551797025086966696550943554470220148386761670053109808599311665468889730271431816114100707247402876740487058396078076788691841102878769662801442830408642906601862859146317477845879798387029580083511088858938560632037209928099514219531023197461830313547592316953282061911221531301081122381306034461685435086681825456667769723522142233277158455116556295855951191641631536243347205297398308552633135670370844791259957603387735091843032505127306409688792985204148121586561689316763332864856477673112971259381755560776650228788232545488198050954188719952275679815749080656754487433892915777412314334495502904538271252575310857979205256196789889633130119214759489304715053115668701313347191195549017020077713644598551296119718781226907335025659313710927144726922469508017871543044110522222176071159952341005761280240657498882625273170842466847762266147838562620777765448532583262408332857285550899801565995024820490893183300112464054776115224298004387991804366226981976465903821171556530951315764638784261276379188747738589920453521770129218592055228695685175120387849019176644637644588603648365518637112487959046612155636079716907463928981097419583185374755965288856981854663847701802729784046212857006074283139695348657351917116004702311875862784252936178251874744204281629223355293614176303184433805827705317973044895634915659667810984280006243168054865369541709358583295443547689017842096859808018976967309854208977494421426875768190796395118371235799004139669454898867666299970385301621081573704975518821669102211405151200521221605538995695160544916923176374408089354948005669739565064582898575040091365942098954386364759861248709428621971427694058850075232164633888635678363251850352888382290974549701329775007808571784325202738912790438252024822621643884332691439170394914281105694854275692435556807800188057890157411158056924467989260307905772611675168283979047968447626663556046197188479338383475482123340174904458933574124483096965479753051519404084822900534955813112438857913658264683694579637532218670881838228112382098210325121439567801143756194564131495827809633424511293840936010300479669366672689937751873972311255147583746526198458176410082120015218414777791959464103934724941487768169309488264129626602771057357730321401972504492273699915339955570210815042048736219475044231294010909987507358155648163795868005361038071253907567624337608016839158494483439123735071644363618745558677044563126932572018330750891189894517260720432334008350644044404068256941920441549670835632010125884185946375301901556851779156365466838958982359990091083937720221027932553300030527965277177822297202768754880223765686166665574334029217017138654908452393295309647127191403628059788833481540092766475497446355331702102351975839031832007989483398943617727856682124811071564695133472438083577037137350325193086022568735307995608985944530835923805443101492955524024006177010617750153884283226130795719494062200909535689719926115142687141348183460530262380512243354751451289474621671064867433343115734648517313015291182530611672276278592069718714539211036123429416985841745956697849359768947222005048545153846707693175492828119697973693187547514025824989665893711283930908309616659711920900476139872876113367955618429629369900061177684523473454725818827467342490523745281528493007854103750154052675639916616218955098563159027120867560172953125108254608119482544594817040834993587437946526580253068182927464486587637347798827496580175838482448495527769659019929931204700113115784873207686493585268787407017072905651168404253348164461030615068021855749260563669249070215806515451443243511388005807542431044428800944095434463194283186728812997516243550778306171811453361221179431081090257966677136053272357610691312079059578008735798156378385609031706040907968856297748012245374230545084122698622843514715866862222918245029550624243423231186297098845298802740800366980627432357760137603453910320909419046393110836732833742081591027320480170785934008584263797032365979163276773507650215088201684056829138040167903756920049216408895423533296492756282402399357231814181024954447655777941279317801396736164790300191909381569594260487110504177186249923690248646456726096410739573530262980379543666791208345538035397911286015338036644101268150438933602643311500012172704664071024052680212946789303719092027887985615858675477148025439649718354167733876797713421767848810378706600337550312816475673706391285254114855833833581482476008566707365267893850176109871341060533465109749052723395630099951851097682023720606138410314358256379647427394490953818364004186308197534373235718244202379387017493892730482796431803206102938312389706186723219090293089906786415571901955655364611468537503467653819183438170924785788779732039418389699535726506762715699163583880129360217865341167774901681116797399827586821898285839031043588115340598061100317552679071833637975123087713037964455911150341375802472199812925783092796242383010531689003357124154975606473745714472791101935723706923878293180321383851239293419570360197884152248092878792110634190268782293812262000951676872565272227480036587833022435157080769720123485885996245286682466380293845138148823904275510040585630252337521844332376277782572621765498879726055847170129441935411110017332717137511744776328484311389606179222766462725210823209115813110661229162629770140916761601114669493754429611872103674458123555722241627562599382250918169792669872489717585993506574230331873297075679693416035135783819186322299644085809805983746262056420984265430548817754287550065747514716257420750487202280553968738168441217431450450760890538797096361347378660743101031416137503273364411931427515649819487926570517930270942466900057021442050396457515125688455773219382270180745640795546812252818784550942275037812555551874084967177362643520722350612978886806112161208273835882122131170586213200952597656544403676238815735304269990914093896388195893919860461791819411672101520419735827425456741431018337631389326654188252168525629006439697435214902180569669037264784129433566490438128927323270913895180195289633152115095466082620041491702914465487139121282095058404477008661393265557707177829077706969587231677080381988287029975130006382612536584760486694266692774891916765765227020560452659783392292683150452219742551430134935774165280634153907182101205048838738043816511083111043911897279601434837354956913257307441135988178832780326800572318601929728069097016963218413501091255426478764698907133858738694679245545633314292915920067391516896156079925223289156862817131558136912871691472180815677416550959804037447188004116267008270334590961643355703389178867199254759492786153389233387728382437257857404105682963719978580322600037415844799173124247553104239056443496914500228288297167744988866962688530586203086030507623209959925155546191976662068638126904176498336660417447342726855240775731360230590229350237161159222918280829638080084765247286273262246927856278263644075936997753877760712550794750600089242800319475307620317400996127300834259761206055709315161075234440836700385300175934847781088138973765977108464949028154854615881901477534109180632490675533426486922543251848110436746505175271640321040992991278240635461310349306473348786841399472406071359996589043163703652677328817158631862402052435320687782694126882184038866555403334013137368650739668042063125462063392442817393665307273121328962542438911339245548505226239933449785243683931702055273908987493261181385031794660565143268591841031163745773055714799709278863956783906985885977096856111939462164219492884062652779223960484470023763730125404663289294215500658610943281059461559672725878574586608910619896603529132769219714459934807522648069623074070965098666781656161983462007357431495444423316853211001059575407830623437010187013683206287207459533629794500192007531669264370398368489707867541224658166395173036975752556133142332634478552230530292717320174963064875856266178704658932705270685411944932955749094212347727858878258529228517577586593039353611422178020186707509691238016469931287963203204135171054538662310322034229411798807749935369448507846851639955793260114144963140409237114513822403178117990730945814084532710494911563477274452910697485648628887647848426298634075047994775630698924103156336479473953577318607240294884354580537647873642138269541884166472458440446770089982117801675747212970747733986117188565858049300321215626798282411631801534731176845888599479754995836389919702553118088981122304127191096968032110503191502626790619171268589483082729690649403563855058688679503954034948170818327594674081753539109362312735849614823688958080208012222154537052935201759390882734783333873887226882793924189177792698489842138139348926775515458832600209435607990730152377936355195256428964610934349140950255994039543820984464852860575503919563730250397823618288773047179109760800914622213976842221817637067931991809177468531204631029778602441274184849419916642620105915683013372147729771717056699002760157515218045662289278779542737974273623392381441335357698577115507210654060368307861905943729955138407420171869442299484395511662763222803707006709497534286410739839393507082256520066455737712031008572141108939887327259274372580600867758518057130668760379152742991538779464847878353472294687954994975924313871630448029704594182318609964714681564285722109350953219867224680292549702390367465453607084936419709877755747674232417076063323860978765036588246582699016575702696017367237524463171796504137798629578534593932241350681610774456642631236107676654013399962714938097013679597517957686951315187460255345764809059143313954782843291864889808826094218350334289811750589076949110781484229212322415775436841197710627851656334697154579286105510122147864423120845564074372029797271999471635621031323507835563957327182673912145645248298998061061575731142992375964027218808370953290127533267365922626652732730796535315615114182357361527752200108375111162167278102864357772752147423368479536321576447952586158402750237112667625515347359812905287801441640114582421905479435731373491092438271030775734511010272173966900693480849056676441995275752440574054545526060943810593505824281915901435999827464163244097266420462227681414013286048098813475901075592114259459458806317503610282231766075286496764994943030571731031264477448019562394168998943066555850204774401141378430771020642668841431242074919658791145305758386375907976886506930291839484489433588232382532339011690724359573815616349240204141041151545171421353554184774589413835637059576181312037896528789376788141874345199090717501786213695578910513397194591673813773384465211725941592482762178413222403645119893516197335849876173865387107945852222281298479198009295073024391987215549852087078391024699998131961100483181246292104809111333262506822226860828557517980143940953467191270966535330280347001540861409338638036663581426169096031393021550047987063620191445807227955376774753929601528986822559248710821318009156740814572373406963291946829015331281125965820846129114675805645178534932253431036053793998183676020169309280634514396689382270662042958186216333217337541207407526055518579952777924089039497833530972346239905980689751486270761598839914954504001839478409618368236270030974435470862536422097060597939731000563365743498938727657296500556050219990525623480625421203350612326204646073442086419331628959600459062587014118099495171631672701388377852687050109102261077443529219584673693286388453843967816236936002963653821120370360856346416389457345207585730383892421388451581074389814926205268000563323446419863748098262353238595862632944281271838124908295989054322713474328803252359967771063401814103711303189648842130945930101342250680286896789417245659008809313493386324378804868964448031610590911976679240287115604837665961032018257567130287324100733947773671361721428739181080508929375317018704133159986710951261277572039085199086050993370017068237897015247449772717876935787008722398977855814457612022610202993997376686938828261952799484124474733270246182434690649962630844641302759881575401772756009954627785637187199176687257637554783360533356848842538699534121040679243463823201706305548896114409886319168739396478561973650506628211657314970860616978987984033313213611517988259807347708971240792620833577868473420049563949353783887325782688348915373173624764936447928895579766463829091172673792543767007919571244817313949259368360246754306167500230159754933554274453531454815692597901535394283359968386550732836680596226644108492287245521727090535346691894501280317318904863998555092259017025346914007488478934386611704425523918491510876103865280380928898776663794779439824105970307285732147413205106132065685530550602854584493978366610733094181338108516890135007135759308797845489900563538243484776819099940624860260731902829198073765188121386571760814150142711191081984685499192850358566220865646489444337405047253762203453057886667763176032975974530289753761500307481403271110634172865041320621805317859835762223998538821709843373166092345959988649822612350130346366331371065959121055537249293220670229969855700903004626808297984142183151002364697357844811402353472993948048694222324076196370370124998678857369639194987401796031255668800202674444418505204161566321192127469072287190354941395122397348547088884800647637646925050215313630123900354235177037518177083106455691052003033984973390145392262929650866490334625822681886711174467514088408093807873990122606853811048109788493965645013509206323635013205629514529615052852651538203338266741806310885406010421699736432320481379586881938630545298876233203416156665060509014819716732425695421845502146764177296489870132942884276186893305045422015537448863013788704946527986583354750243102403223058788420599496942098917002798005640592188078528078774029190269315861890841289313126405279115245281214144416715089193409207977510933660560312419711771684574966072739482103696434758018171891731542460934935839617075020597924250936252381980928189172125445437530575065974261604984523105685859860319984636914386973285155606602352352388409857572755939049266257508916411804039341311320093400821864068544629989996509358730090255754843645764800878858968803277157532989469540592936914409041607207091985890877075637413312268101735458715517819817048863441817575130478159814039573787848666244319486510382382194869382275311183710170711032381198719820894084329055631742358949673821606921399191242213832331092238041403540903445815944326230072863006271181538519356491420155506787332225632580687802991535237494832665923095542372155701591712092324438359812832344015403680117109132097493530354908097714044500744384185634590804763626805830689275302905357795367356257584192984999449772989020323162770298085892975688713496718252414269139354146085959651170503063026014458922189614150243810432428772787374650625495640290046112211384143444030429305376355242640652347646604238202800716477045544755261109869326212204358376228163837911638861130894956705207978035024512468079210840324047397647252983304330224780897574300066759147883239704029993847909897277990822467603689099133352599378879403230763593271846890794029793852851013656902694144186658554203485209022098210025436744445871046980871376159988917686619497955472202096131594079871990781250060695808375866536194975066661530791385013494104217760917356263939603574975639382477319587077586077252121576585894045757376862961330339461120860994182703652787112252798449719396514101086199609328203674711159262525868690391209607872316210496879768224531973288800356547863851545640902291589345698031577023507882779857748566858713128368988123076787006121533325765228665354526155258815031845981879538997523793255103510299595567123082772694427426112472691528486997533231787090193363076546133812200716752345876166219569981838623169559479390171944997526050848829779708869344448981880304337315840547703193075303325647639990962668673304936252100905805276986041787646068505919353451440308381806855009191614298640855298284049784288396854026059445079112552391608156978218087497405314305983592558437648575419624506894384192635034812868426258237823482612204772429877979272986267436074933989776982763759884407424910927340612657316364084480778313363584827934296213975219496695446253939679337776582531400056184764822088666288277941624575564368102018115787726423158361866275473518556178085792783643155248135658622476139699828511781361813036996310560231802727020231501674069888058887143019456954803276994874947304399133346948322254846753301760645169174070680831496673076569550837556056330891068931154663692186393830491201999231922757593602639927782060540743203322117822042630080025123582887992511061888947613849754066507389809037505493592142092524936904892226958735077221995285452068780889326476074896304664982169310524812565125295361041674611613066274285497354263617944060112218916551310200408046855535235482764260053678199717396172160698940262066126405638474964963041609420967326788892173227396400468556582214806913833195858550191520931629122992526113900301538388638778153564127527652289191368165778057545845845350493512327873417081010097700507846031923791156374393508432552537516812678504241491292912788697375502627927947901469592532214260477096365059277425499357315923887968662892648360361793044106932008881875811659356703932329800370991110521926971540673329734928964126808798970020945621051323712489779358201781510618384038030073146381484375315994545119274012474271701857566909571714802995348862463400364217546643544629484604180315582676240389365829694871728405432297588747966768468134445703156741196856194449077445569775177987984971663759148646467532758319175847713311018638450243040609839024983830534092149575810980422803212610500676381692702280665544245821357654236940865380300534636218560117732535760608441788637325062524261779667704826789062971116179383668404410802216468187541141236148613202102824106527991549099599749637876341936299593777485266274222158098172965154889220105700842181929648570128178042857583394352906503039441059211121081857179110825993214862029918942431483894736522428657232706114903061333260009365980335776591649751784774138155264805074421937097798471137128613374077834837321980502012544768712987874271335712873611688525395411990900545180649729010463200648559539791572149347731043488908945244503380125841127099748254374097846049819036264658994526600327080038672329404669270123872562141094969262344439440721908476014289697094616787168951103671144479595163170301270466873718685283397709655575180677056758755799972557845987239912517870127188991732001760360229188130601562095333427015380404014791909756424304644139803738341695997591154663946741998124505668744124923822438806018639899987706814065286400408854061237634260491401879462150108804261354100998389791643091790676906784921887547762046056050409903508777685345678237950852155584286497218487424311223332596929436233276222758711212039981198111135655528088018188297000549966281259506137600748823510888332299549866041964808970180872123527781967550248771387167597370690687357897532161073226459295811019952229887719871619172551292656716737076325333721877571153495955126914565190134115524298973532179846447482076821809331222634709161244418991965883569757520334542036585178854036766218339581985979348970784747720412234469488435000523332424139492030325024759223015113828393519397715145699336390044107472353225457321112674477980263882201290486160949571214775672528560158121590805037220988541995080302465350014905091512119403938238810630079307923704036012181927144541536338347756633574441833508723898943666546781476072462484017824625992502146398430034650815132219712226893245542502026253923141022357858138521472403589138091839470667544772104610279712517280169078532826867252304360784872516427514094332998407160905911160089397258787489545808532296926070892553288128855845866557069080097614510854190066850058183496736967345283195080084577902733704007975420448406830069478635226490146695784630689517093799619912140971312161500001670655530974729612870958281816328890800643077068373997018745651021087382302372524774827030556897188157596790207878140980202192081319227123412097942690545403452267506823825948786952686413066835282456484589259292618938555833991270257590752159484164631798965509466157904497098596512594922133162039736368516879219180863337352272859839969903308947488520878239254471393803360143088813605101866518066194032046170362416022957109429392870244831502783772671613206519248740499679624259393364530021261439707483531136513888666191993845488241809558321757503729621459692718363655060601674963267190826274666413791334298870729896974259414147611316935910688516315344812228968722947701561282474394383198614752708225854431164878023407761985484323473022720430858167964110582365024880762828868554756871493097081477793410027205892290013440018523185881794624687446669052454848421180714651307278437917075233665979434111500243311977888584929180436858752319707023660370201410768269496034724287817275398499098644573440644011487948241825458130180313303849946032202786247822755228525341329835323325405854773395654423697155782057264820841567464336137741650748649116948020678244962293840219096911983719986803053622015309821423131386842080758490224581039841782802450602247965162835613230134302480500031925713302556746336333942886013145967128447878097082910144259838532783260950480758457612592346931765798468283627947361512953050068803951015495799165618080123009997900454902568192361724082890102923282426571778740094283031668619372041556990239909994606449225740354700489720050104413049310048740019134939423459342377291054579383321330684169028937670374531462893646845066818384823853384202109259461681646640886408036657177424907708864494552157752909116320412844326740321035532884954364881221332140124774965944570827998707559981902818087476983739968895410703621031387565598005356674457191351114234596035503357833177473986780343689141811038798354395790977914401779886013985584188743851206974167500812439025006089628549995930842665004520300438874005983977946439687458428048622030026043159912726585569636454457914862318813520917951597351205421098688893101546152740030722020685995855226320354948130039897705086480376462218792595027444204779962430128943936156798707323772459455063687550724102715499253079760309792261590912560975716287647706152790731586576305926630692322047172532902364731679708422252106167339538120446668185840079431904692636901241035954405093114052990560679437255097418653296558221690642349709641106991786370262539510789262317734934989213861282111851953436251121387381955924309344532912226286829771285564860221662693998023630346277063982148741691980345291375702419588939592008956015858092572185319388784540980828193421598810090964603872360592006269121759130065695243667571651830653857840252240570136148107496297863947437718235069543244499667450741195867580578893461835857412283399737441627815066697347496832548707236655042433156714785983442083427130048724402522826654913742206124603905940351616339462040268467421342404661125752689262462799592107281393685871027888695482258375337012019134516218215673932388688209567044364972521330148652264577050239386885610793463158313669865542807647877049998883669054087008077674382046840906465034250924940867694334711188181498467849750134713710776644982159367113150088533896338554938423965456389932503477976395244576121053899904661436658119796230421867389994669286857982151193946551809709567761269497691033764639237104943031355435841472612406699621279628350583540171665650462744459299755729076457783156726269202335675271084153861251013035527346817062359525419474539570043221103844822201154618161168268283321134393191615197338026941766500216298036749655683198966347739561298145844066635204790352021453969825276902079634858163013339974812944972859744864838894860989459336504455865716123305162183636510157749193133260791756151683988687429349598972299498972346973138705942262280866135461993534141645685786344490013114868779770776874102089190849446629010375204019266413885907418591388521022254481227242917949525294229720828395863611218394973906801344440511680716036941805187380407948861040752432750176646346232595152612442956627614762673050660861235904509577944603641954485593803782844043629448743684602366948878740408817050379586558491372001435050182992053666814934168995850825404041661555463953104514244806696217361522131971660309917413461940315172255084506032224303470448460252677238643272946684184220894351502449697964573814760852982697381757560065319093818280641045158701660095559559022973295124299261155400210236531345284920587606676310583695705063442764872838256873800366966437941331728503541712085428859892574948407086064688517905714446965531904696893895988440793694880123717868619655783834166186419861947142822454533502718970719740500783634351816434800406291591221999971538068715601590623790636751609686018656340673548702183561367534687296914160160195780163656092131765722627936573750995108822829785292062912328258058256261129370682524246558321644751393804959468616952216573634255373174561319082084546281077721557419784586850301573377062768811860098209486228709969625106946546774454046897784837353621136924981863407985330042533061327338616759617826871807302988145015426735986304149105692008896134286086687855292335281003548131555968056061345209536864055687922721430253541218738963373787694503286750409739073617593866087046144315652160188384338187377933794843860503127566859952768262621201986729884503098983493881573322337063901878925527195245195261528148883478301195786123740851944737083250440688249318038292519804078837009273478951860528953514442757076516253889499041834849925557845028794930599830498244334481740638466772131075915981684039829854823736332812599644050436455423503444876242521149495541696729340483172009797088053492317825037849092441132277364627433630511746109875303705970597147744297125182925858624340755309702629446823470230651232562201516265711300290016598620432462310655799322365600872245220365009322424004500400783657075002942326383882054803195412721349226259530038971111448207110670750490351063849226428879263820397864903625098975708252066283276683969982996045255594717341821134679170070031272981795945058848040458536085353057854750231668731477667438842957300798623032178917143392852262336023476881098083087739191314966681323286570714942704838192233780305322115391970795084282759949236892590155291561096557033228468106807504622705620267757364834950592176689282765083635645729945051630570585803579581704830683574813241856428234652556583269901223130809440743439346181755709127002705768389743974677002948289753463375840372862628703305064005643825204182736038269007085748306861791206223474343313742444336456369843158181221948019604466770455781681950543463135286562096901622829228162815466326075671834753712120842694293384394569506073266385138151355331759947310456501539596145116956561283121542397442184441290156069022154132853414459040818937129373505434692826496465872768818747354972235421550460290713048001831034980719531092669391128207690231976685457333288716210509441164871114001169568806924335742814751001718954670943463910980587304531776483161818186265905722743494927468078291092871213405361309260026387354005280584011570375865737484198622142975117082111861013286901984526932590753202026341649661176646359045494947436978768540030728404750068105419560818186931988628425451885900319284921943959186391273586304598538992937381732342224022667281712612094796871618071146224267790004961078532888057034224097853785121480337258059856406060995866154807956547865147921941755953065334120181713359576719307089311749205918759587341018212374971806193634157309105653458665313151541339405374014921861953147841174896061550784023898724644960361592115677541382356515122358576210708912575379010131780986131436987876429724210388663373886507882897791918182650670000423028290695153064850907150498852078606042391465759067660924748920429345254813699253595021890910704703350888524072224963402499889112365209304058628671443987321413276875532160193582092375050807243791698471605929465461436641019493463960413643677110075758473600382544354448090723194171504094554365962608502908288251278793490757981581852194419052852676875121626702067976408014358565920715746715297402640223498000734138877273146914226838806785011990711612646102048253494219192305098413134084929314729025710878537639966168717732661813145030499463563439097523321353859921608433970268715095522000275838551902457214968247948840523582085609606906393973260864385020449020949721878763988919201770522997759309246803850227622748807265706110082496908251805302445334066214256844922942474042523299367356727691373268351462673221667818690276180438338432898415405887906977424206626694424621520495219364545740334659929040214888764638407936595765170786342960883690578893580565005377444702184115009426423666758807793071336388966809973536736233465714633956430057833807461139820378485485026069001063645098920046543299649388243184141819869161725564538153399142493456503002736057094582020765505113675326416698385970697710907219273462501689287261063511867130266208599328056166016729893949537809853374811938324566623970014690725212392674397648464717901049596160251208809045479688632238754025739148728138246616560173037277845988158345439189065135688057462971665536560021342598047617674652938806517141629592323600809215052704701917424458097760662825845836396990213509299418787825651686730022162026634633532385107434251567432958402252984166760481658910152072753056783881368627329142653868397172787395514860237622213672897113924266331589568646706545930877880624316405930401125064178622831103178724472662944030794904668292137277423172814140807784130273927493271955984480166625858204279126483467334742819179717795534606647444829962119133243552049625390413744460523272569778379748543554914009329939620964934954240728556260734848313534967544992700132154398007555867330560216169120629611996710790077751307646116765556471197924912248958486305933621278115669651808899092572052314325432040183715720398286622861561823676737150989079809014025549982046380903848191551775638436593473282105746515512682246074088366419816077172594756072356458790336893725642020269341688618134221922282897231545081506145951659252590539600395845758993400476707665179232995023589409049418289285980825670019826653869192700420171033994947401129260612975831994245167985109346463961952079210822646205641504023817820100891691448622573185074890815093043650870937956719476953981037386926838843246880651780062953009606218023439315444310599175338827591966479178086975840652393772439138407512655754135775881422170065967743660165837557662237581051738961997004007888441960717249049459490803046642933808140004330060167661901613021731869022661021763969546616017212030114666723363352271124820516145575947326304618559893253352571967988909344383059001702551172149673644854040365500553007301596474499650115905282090437140171664524974828938157278582975362768507053370232573717127771751046366270796813938009576883233362041151212466482024999426675236448317740448612290868644379602412216259849878316998174461214654399978129297179776366593336673972161079737905629486014320664372958059073261112953407378647240474273990777650216891484269210562002845375621231749034329133073245598345896992396062443176235604995080600039049572090992153414799217481794842562580129222928038765460641411743768311130383046649986224456421930480840709318958895928153041776686430058504960082912140285868467792355401785037771170404785486063454480313932461553214151322857312413138497898829846323117200516324073483138842784432292584785821394410627783090172911187239791291827008319689964746515279277402204271814347322133682143448213643513064673159144382731616578567953782051784233525825498115361477280972971848915212212417646219965946416741730814951465515100138299136529730868246117239893793640412247837069375810710282791087639736503988614564926198587198045456310226014245341805112718723087130589965918794124773088968813294498265764413302810578565332479896349689814563681965047092757226580381909091795048172963262174932512362551492500837513922090566535084863345853841711708809532472517598548282263980332694585535113969245003017939753171910422201259520454672777601867631810303796086347411960894292055571523626779058560681180988010629708544109494992994986670705762361094456294370797280271644420769014678327045205894789158391866116606717359679700628625050983510129989697134636378187708436604089968568931120366508360104873971487823809401636447358007448591108895045265826334060319483707755439141266629568552788699271801270484624238238211907555276745929389655868723177804411898871236839797517719728856255039363690868937228337728658816834645150148064680620425484437338601987767748303482009299687145668080895176048951327263211181630833150912773397996042177233890305080522457219657213156902892169030516722947280457719401039747374697678940234420519424216254638900038381993727522836875636529410136794711675286682089751204613806407860025955036914653486784369672177915499681154612422913090949153283557191192366737805289301031614132780883152353642418768180384989266199426955637837642046890537219259459276678900819934778047810610003835564993205563492619568744380315109905886339849903341869528741505509052840221647294058318861734636513240466342940298082890635800480158146436957725347551043658778801117342346396719944016281577393985161443680756601894607226215719324171460466178939853360880608993350417394475502088405469258441875012053647365478628467074919470612478452479678712529740349385646946735863050641342066020837396124310434125696547558823606018771388393870062403928062960343812105562052612222783121835287349178234972918590635327505002007983235961158361199802634679659517649371162025444234312049868217500386954096221278928742272942188473801682743628593000160606134255222723475860252694012054213029282607018714618366616804378635285483882274624968627051981476554754578072881520505821526294679577896451122249197369975320698179973181533412052191373195743395079758652207729855170610448111211381663273564763057284885929050461522001844857379924169179612946271788046884350100900347462564335890001267406272971227162804268530504288573131518364931196255992897823790747431345433473892716764603193050958433633673929373508357935510669072701630086435996977533898015479810108400300811221778205046815875496948363185832832782209405064035454525041216764705816747438165267981078954029371812396661828072087483556270526807382156628453087015073395768099936202253149908858009476659013386376395516684882689692583892936450961656172279405560668723856717087637911193575204841514942519609217347783331169334200642430030371680917976590258650020923965686042744794043473200646046200338668692517869988040636412698161108760429019425909451875972300510663623315175365403826621385768589697897106601313120021646661338537155437477920839702097263529247530911279522957949914454362878573808294391695229169205024575898538316430323943212369963859976038203379319608348154923269833217689273018095851193229720635010703053264595433559713447276261207255279995520390965808798128678015891933516851309034974177445245164885167815833847202009474901887442579773830029683394213987846747533232042951009810161179841198784874069021956103123714582141326951497324397144496766954934526577414952008912190410473529782321798169391912097869897567643698133951738742858116343487071472090258341739825847165203303355812252862445480628764521667705043993126867574934432922399518441871875637619661632102536653069902223261511540594485736759070901464024411542577367040829634579821464245449304519211546164504799526021041382791711330900753790307443260376927228179217771122440312606593024278233930247997714106263963747751801737604177680999733621541798457782477216833762272023172466996507488865812682724706242613098564698089118737593916249701876230989481153535017621133666804120558252487867786850978050159890187873301566752243568791766549758977499432316884091116044968779450704262911667918055486157521770501819292480357994927712931333004918551387512962205383912859755716378333073608915704038000173533029283493118487832201608488209298328280531311781593378371993277819190857726263592100308645092908685985561555412667713809501421554270854491882298887467695409667820347448809539480540381799112241221643500853738152289249603019128991031781694910345507550161715968977786920793691963148569952123643613802085316263056605202442666550389443285604469489403113341427070925476692868962799902621549610261330610376326335419332197936481905554556780080471320115005562732314849253104336674908530599258120338691179367334455099967552529309715386487928892651755146208359113844681450990489681868985420266566969645706694516857462628169136761171862156545036627302204432863491638414638998884003662988845535934041160843576596140337218891241013670226096237654701470424610665214748506438074917986417402549647613809785913982151820269244371912132469680861979754628172041012958524646347698717110221644497654024849807377653395840018113712905973159924606344968468681701828718281366524146396665882237112442379257685234417425977508987020903906087578875083495125544473186353274434792228881852114954926593881674382749919158176361761631580702803473388238702829992182336732500053082702759602411310481955510074962392700671502785691774886598918488055330887716247306951668648974806139949776604971438833864403093329186576754360868892533140351546983075534818579399949743579790897036415689754894541812215936039213697404546728916686979975382197050534545866364068622773633293818163614910628024041307542348007070071064450367735220541399749968452018097409424509516648833415075219009953000354792440173483754633838306791270444381181348951221901189283705938322129535524585471832830151400905524770591651041589053252162025801102053426432043553625725952553998555161198186892163280924395683215179843473709104350775532530246371852813545139950643735206508332761096809988781997844239602264675890844310540678467789902079274457922331653761255811681571268230906738322741478479668667016234444011610099796692220593878889267031623942375886996415151075256341824864317410304983604979432747556204858516165446507191481152666683110693448359549166787402285773015836530016066867230670575523681664507226736538613523084384180227085004398232883622722649305978009628969137194735887354574878409604981171844244558833053542930722864377483874169969172517127361590502566886958850246587207814158652470418219640136176229244195727910573842125349023527025458141517362355894523631114723238010709960854154463838488451552076279307561969054901619280142624093932435850311827393629795707781339538496154602690059711490234284676870433576666691327912881061276539810594473317953890706101909998017467662386792483880828822950409147967356208855736505207684648402728840592187457427458290477698334682132956251433252787352947954552974785846260172737241700721477042290974943009450967526351591255024306855736170589850521691562137947886696393782684136749319818668187284145164488913910524703499773459646242832148311978335151939555773543919500466853420704776957325075248367304904243743907464995927708223743962020122583506288402098603424599880661359105748030343900730509435881021999010968295215975093530020059843732316906921248997247835302571050322012094595420838211009068369649274995631252948298948676122552931792201955863240586480190373372234800379434505450218375695881697562391567711342610115672024780850213845219325039003198126282064405921294534201201901285757499444520623032904432681186212382181220273411346677429453085615315634626443902078612635938897523180846355012336997251470670578677017923274486197493213952653596202837122306554204879053772147930514519306484098133839516597237151531329617464710542692715955471621145412441460792811774610889786251353256938288303233801379011370792366115320615525151628219703572474455376991807677029116824227344872370047665678902741959738854801403147262326944148431703684857032344122568509863516888662259238516732240840468320093189789122505654185124908059838447179008240745868783700932542395309477866747404306628696403702845881244657624714940797871644476821945832017836815359986369869328415451802739036426419028751532297104319474447901935184057801586731168996677802539126769270594968953454913500565377381564250068441825711958386051759331030140005002993235798147951305043032395184840510710965122211725536021103577917954239764154986700520577771030038129058562591741769178122223042730114627458654783644954739714664620241557382454679960183107205459717120729567527248325923170136769092184990826267531892957616406141961364909857241893065204313620318188474175590304201039194086951277878817575623628953081420530453787752405991798146395001900293116639726034349704221540012496875818447550430191177250347639305695471453785367172284626492892397819086628252080147316719091530215409189870919650517827311490685054669503886062052472450151522806522469164775958180367106525524156404213146472563388739125279467995818372404536703023706827715852537575828232435181809229136353225180685284500101497928635543263529809067999887327005062460671487689291790272305760082750165886700482529502526528843443264329187965398658124667234579443904726523354957218990806483622169939220856307384244092954157043985308812058367065919680049853259789821462021252771934828966079463507066638699423965887728551803498114844497033696025312735057931699656602758712543580456633077806062216923329157036466637097090299696988822963538921312674082545406458613582070088361957368427225282291990739346644892511128055505552338991927813985492186658177031330622292485965417882425764831692579937389086672290241425404154837241733448328214311087859276159086152885336297727649658712860951314167902779189660285015631350334605580184437946164494485724352944170911225662226923448888910547490471250103306990677834421185838923256625545066490555891260653095217590933494050930228511425651162125993789402637365034512089454692006827392087269976495618519183966081574451148965973574464657264051864894383693912033272863626804338299899216515252450637240034750257035167775893279367770118422751565677463741336200542656955667886671309001784174423813257647143398796506647902130741180806372495297564606983704387842007550740281082433151718409758614997700192053389795585985460192780257566837692066859891297292701705412065051290747600472056855079384999467118718865818864346668089401711997973074876188130425876780022756812027552547725446707407549827379800397978619573999858372733527780671097071807474163565351855115955963787948859157773291977517701648390566903541398721255287948329899262478521280413021010798897241945893672267427926281339946627503479042683990583853538025463949074253279803050269198022470358138737489707763292657845292281004672744212761772965804221487572124868100988247573427971375021170272126367950221982144634340680683384068216360016230170830650765032102388232952264500782385491735341931652037582856339120136665379198719855032335407268602054004777218326205998269967158363561531566443729757133972787665966204491022722636157151976872419881480864717897452169466002740481593460362149050277132782791959482770302854469630760749950008973378092917251575055990614863913620234487579587677604920797603613885091039900243603719529463950792074331946735254939693835316400371459693612557023594189989096337169852462827799776341219660722188236990003457354053827384812366020397635587618379037392042478155469041996707258104422145496625840022778326096205308619051182850977592263114399941704973680698108151090922102222576645657350895323244741659703681604096228654383906717539896730889092418284286652044474516325772254603700539243735569576963663560051258651458332898083134446438621199189989199304351802920529461062529559268325728578719280059217099682517147405535085214831297622277469913459861014905372665758601695131342663350460424596489912601329416374003404298357391596453167554857065968285749310864948575730721352109638751274798216414596220263658639417055544741424672946577030587962262007135829290785913107297593617101951136986544811720973511406681454114650253940463213595526096243404478551382208873757353801058650641760214631815795103162023934599221026266614247269982771342732219649533701550442167747107671446153177665290444047948233928235304396784000189375488402056714729316586361892293471474068432809365591654079208147838112863794206783132619699819025257962185074256136338851374797752802602414889136902590675568810413243121417071444061356840177462637746745032334415759752440102469055851094916050368307081900586943980415012088486365573136141633374483084388468890354179904091899350760143649878704044802591141007918208641815857946111045975902453184632829868371131787000966818468133787769267923566892618174896451827070295059311538644417006831099593003387519890876343422617908225534425598332835986042100660443709778268032467228758801140727654687756167997216254689076243481954708255165177642231016683354978234025929145637855052110019867565928029735696509332955743606997483030207157716284176256694898304749189693281779728077262717444151735548898457495373039938516648295125355610662298748610715901694310053598543560250798548459603019557827775885842316606439141285415149972739983753492513060807622295292205592454992978473046936496397142243348352959839374684809175099703581012088748798225907093935021191987766085598719581351078603939711524394855081446619830080382555518683183098818957935055476519529750319423027915345650513687955100221264449093559793304812492756945624333436552240757719227038243575199801635463154125007979751559860610694202961477710857244786028851499124654582674854190303053582179582961255833839254024885814844411618687761663828371135648204285458795053677163268815008175786394597414385287817989262652927803721425028221613659100838610169405187378178271994410735682512229279735847553708802947607234590147466364168788521451441145994753068477063465942777499677914310536501911081266579212195796118744396604302202591521388046794305797107250006998399518208892046008143038110362581677712982389411659934550658076340396279668400632562789694023643936987882976854241970186354965605098902970768568106857148606597938283879682811681745788669162722345076243441209547047421309045057881411612072786082887925892222884263958444432898745669959412888253567976192133934577007622231710167644540277504930606431323488485615482275706882765583259522487708366163505104672529899645380703125834126469249742558885608202098632533258863226196937914706810016786772335804707590533030574364778229851965326532028969980316411686453245283129575590992834905683000218551307686699966354701299959300366353494918031099638252548434225696335120017959507845006055633479057656597899222634364851548973234776614129111574120413710136392615395191250693199986771171189673454341474199175325565538558316393296834897256226405093485522896806114983125560965841978145030414326089363802895336500159355446652906962316632672146362785457392414797177790777484718183010469981992494443708926783983065164563728667387644135771866941491091892963076236287041764399470078718205967449587617440846635944773901841671190693380705133812365876106258286209664485153958570849131876308559642276165360621280553446890727643049764387601335933530471471146108348076739569937011734317981256806155845250960350360955521614100810187020887889161578555859996937653872931595161058432166524046330118190730517028328674320255495870385318034944765039191370661981638223468891299576921735924248470880582166174226240854633882068952890968165311162959828393806541180594394715891894987362753478532167777195250584210365435976311782588409234158575980134687550042897083391304662933686836837207439544844881637822240861865980199371147015383873745632684804462955796953954067524444775734754080529217654386685302380131742249735628444226663496718736453054171699771634385233104492747051125222576120858023669261660442005976769430186743446474102740157329769471719481796379641235409085362332816171607935219258361797343766689623783607157501696282335491246914368673204697959965982315638194155931559003301497514068265080114594036399020457825586432446943867675643964967685217798982159843855759464523623774556767669417339475031189151525461968556343454791221359372736209227474969403386820421884192180135816771694294715695020991241883553602671561033441593881488707986090275769886898928944918457993346503062820476710329256561380331855463152518149141330892121939665872304564186255640629150230548283274658037436476777036581314199833013013784438799823552243394839281158544905831666495034153642395281218843929043164789627652661869541448201520365691119508914690504217581018852584677612377884909219465387340364152527953728390273831319185971588546361424596697356904606945609063414337443701788335037778718543732411480327102580698180275172304486691299337167386387033973321957860161893199985913081219717460374372131222238017206944095942496991927286246379769883941165955660907339240113399666104272541465543685322704457405169321510747083224216560721755578391285971555677247739972118270256732867597208385132972572699276565557564246980305028495721709717938254907963570655956079890693023709094324575974033451180279983867262773677605037418530874775149727243288026970140647230152546471028283041716554785218969169088163000918483252005370836288139656647257048067835872544196687782451168681096544189068364873663832726294603429694748233646835017492976430136539016247396193452209474502343586880858970476381658063687675603715339185275902157320405578039862492286139583251964769431228620127609055129366362871745679393483702184259838501465834076743996498008197554706650112390614219222977293977388187207498006983499526620129204801805990859257090041878835794412540133014504663687727558170220117377876016316406909069604420654528612459120244681233285301376792308131573647172841746065578603967094093390849205640374546565042005869781842034380903755019606318539890715258023211165048963195216961896886575137948062559304831348409611093548748899111704928276138785779816739074436006696930243288798247367857905020483075473808227628433155042957533905627894587621478660647465014331402712592340119377456125037874678356635807579323333687885853527519221260443876213378433307529666978382280691328709499105700022838751628756536120720809055977986389630831778744756956997428886679583159080340160665825949059017956834918919008686970599711837973303454995915190856635397689847871005906581084554056148173618697277029122984816800745520135132840568990528870269670333340847339729789955087144395286742842494121216768812501270458102842304958913277714882748443653213999509800724423658200278729168727947649422469382700849756836061016765567547139426510855232807466802329115486496863516590410123233157012890670003382316076342866072705719118413436353820267533915378278259856590159091754715233446467773110047033805683373038004541260699379063600502175365410105223113676551088112802051546804466980472111120117211685836822042480941013379641899290869964020655510442481261738010483115721822130842078242196408207627632806567922016677415267003531371717658213698491062823866742790907870446218482410186363400954971978905160505414629008627748435721669976339998978735323230008593459377584311914881193572660858018595760774545385144064300237915294921621935711792963201817428962801135872048249588931539306219214777484117504121304400807137134320788760021989269081112103922698758003492869062821895862832707718581562298031267537200675740997979939706942778883130022340566496411769674792621870905053738922510653938370448482351208352875727112835456501226774144030467729491275419334252206231897797235263095159301640177542366799874976166947755179842824731965813064083915473823463964665429782476853504124368187909051285306024702650689159575982240134452497051271464670404918323437154119888483665534340575392889012695235404259298763148062081843509295447081356223789376132892331990993703077055158852762231469756674076296300506460650803173657172025817716332930908209699104239939038248246070074828429463944141289963750820818336031464178090527530639256154056425549269085664407884232523855539021035113476629929883726699989366045392323220033902434626918696224444462039567784499181529131882280302764209117490568246407356113944372345300188464550849225673411430240671156329054256005195516193645917479862089489207353542508999457515620755423009721202517883673526865086772004035386446942908202446424656068157257480552155674829192939526254448722037832779392875935423375963552789791269331505870983457115286564848898020680950329445586868017023374956386297222837611385020023332834549360507132746720747872432056228098368855683396973557874672696250704102484808990965849481456708721787500293263197602411925125690561642820684113666674092863017502600790987205024683452512396409776228130289754184002908469014330507879613021254558201767959003298535541344971155485721246714628409115644391882551076155718329922289903627410950015700858130515342212747236947743317350194609537408541343670777263832491429268106380397762583510161051687795140959944405624580958305488125827537377801116107896211505227036774038744910789168082771055751978133756547883409536892228034388444288939145933997816481738508796531832834310350382341717022277227259529164263426921042480489018349385064653125202012870088893285654711128846494867470524393806349006831482893493504371727658701126112655284307995614842425645378837868730346017496998896434912495732043589335043363584947642681998047288487871567178414734962609902291469311596871305500671540863761061653417313268488737798152703547510049160686822305255679478200991426419277171054316453894487669593651570437755108329273711501468827613066748989773362691767200360074205380175731926087504413838425818155960283939060273126582844163087581281937254533558441761508065432729212484889311382796812042053647967685440185334157735657791819087029075440066322436972598787844897456990380190124807779076359517358347259041276328870528637360461411783025912549876985987816465678480716419124607717708254005603552851249907715596219181089153113754582828505235847959684227745919318832566727753708552229237068599549321991272967528109501487732644615120315851145541204722030967864470483120921163633577350922075672179176223449200225704785918255008000635754729506476423445571150220379213198042995809295662129015701167571288416383322246431797102990976572878252314482770431014182411815033199964062476077400919333670442992568445793261043094617383348971246030378784433576113564855527653153226825296931110834306447372330014158109406442434810928248677894482563868699427526158621671135977152465165609311254741926886515117238084268496978078388596728490279338133238863290377215105637404003508490762324557732302589044842803088802158224908703096413031808554548951266059976383218416215746996083329351465177591025195725468341829932145496654905053978982543122957684955452928164257041127758469776123041470860840811607880985620014124027108345876838879568832609075325944167274754978412409135153672758290290105758189654967050214652277857124191538083035611243848564992327740230520666045223917584890740696645710613106583169831173125488129313496675259750328319830113761585864567568315302580973934292288007074165478005988574637652634994368629189068098298469360852903302596818429509952172260325372339299927788187093606115040357717771280803571335233698438991557939241299286582382936436564457011200951206789223871848490481863670455172767147653969744029498829035271563000635064441682335066459894922190483310042966824801262120961107714489371447905114801365814092046590036942273097503554649831112103708488971170755970470267950596038755838804339190470404471870551716957080502574874815193809374909698044602644665731226308269392852540759208244806330124350984738664267025131862096107164684025965274659239958584706534531954154092807696301132055446483709719780792210288876217669582251793937976975386874106726670534280555940790377615096667559827380514688344143855065630023344896080114669325366303989371172435248386128263146574621317144807946863756646806727851867161292798413118714322015898972780164583586088630058569550533405932373164247645041616685360358449793580054238649154989600516241478112076615012972495411764002969490367993742205141173089796917171567699163316333755654258464249963122243545563424900176479392877678054493261787848715053409977443908265796562911627358553866244105217877770369524378272332058695021811848707610677972785731567952129602877091428749743216797564888713883757700229279640902196267130202803890795797192704340409854301000796419537626446345829873399022986358107279390060753657303161229748810103049304741315347047509715320567461631766527832604668881992882259345124058561456232882596427515674337569047044167944499955256615297708782699943053035582038494060209489910968520318303439098967106998411997885753076341989139662269165488982835951011572029203550248202244587980111178268166160966231826555317286584407522294173709660543270556463318607158446040876862958252556637982152498754420652294497170538229958721536500962248309245088407654794937144610948577616820014582180150814958527186300445569620540144916989059789327775318973781631282569533267427047599760390138777205317459092260144895441037992992388579758654396396260515316868961735610271184055348131973650409067889298108779663040462422584941906041484298507056467950300449971387461332275179361243816116130642689621250218898512087371251953445722481144873366682272364878770375397793959077997817970884307979307188005016310900251755772808993161051070405206704458948751053093571005298919459151567678533062803365070866834512229455474783201076502594418858870964798702667812646548547552685808276888056136790853710925766685720478053167440493517775446875039303446302255008934241612955780547776403879068184566842507928660740551078853101909631965586805612457805878244450501164618434950458706091457384435631872656518511095177600027612582981761586510472031796087779979470365527363856540445318750234001783006978738884827576334222310088172232668247480798683260660951241111487324675944440301031952824147775476765003089675579956702233105823192652147625020383531364550884234435600981468512130062071642500399353521556187124088602904437826994217168211423661583924771925629995579603640775370914932255218548643928339080286584790609798227806224391004247600720324863964857706222454733473751139422385794542300183123162514431395341310555430048725284968448888947343189143051005032247700479555392381849532092203074869326892422333071409920070461809523273192896939121780339068762023434944261302886042901240143441314557815472673928841045567132792810337899016899826316521377028692596993495416939174444707632441653192455133530400564149445245381486865808490983640565207238458419471429265072578029678505868998781204183400025564068004297123142359661833595572537343777395573331524715243572723294880984911102329784925265174161351293147763856299726982225557809105908666273759796000917920096878389559985640458164084612387925597854113038167427547172913006711724285512289062731886208872384457236942052142012931858565129965344769261828088259452987040582367419326570569590488370420565484853109804977337736421814289485257636003551610988424136386527902246629959375335054724731636862563996539831978192327333610212568565722639673235925544770054140952160115195891565442731771914179542423768162497901654444225803964523722851035537769504355802810140717768667949694382967385540620572543448295788367550110431201176505296560069209022668297769051467526949358515201994614118746944749143011647587341013712064837703186789940189771452205713865232197057849079177638900297950963618484443072151359110189636124380323758105177797313541132381211939503328198168784081604769936516343163794960378286481893971461396744429576475370646242472883304326936314635448347126560317712760016758725841522057999680396434358242488400100274066300783175655897112688545537748196029832783745709301475565826377028390390227562688142336042285568947315636335015702203806149693515111948041478196360278430049394011505359792854271992884827132955087045789263953992386484680594195140300118019324512837615907519780491415760250906939052096926156933442630257530672356978956948474254123687713000414764320414368846419079812840417101222932644248707712135914974897149148299830519240353712557575270812883591619014238577228310364916997379496271511488831992766847431648667929997429743207398016798857003005334071718754168503751877554758875673727927979319014465359623657754707811685529522017717591086838297056091724899636468617654065143021912306097588868575655446469970831170223161948353571970614767940905729738704593268883352229426301158138932236077732157658046726166408233405104208315681793998375058366457372197251576571657461540963771475991139055022626079760924706822342462691780371826271304557255382832698295763887986754054311033097012921387169171239897275322256429054407501309389208918965099909887969103682661057264170378308846555404343746642096925974945447412289060667102456667667830103821714962911299425224379338972261520153360432953072636881664277262416106732090620955538020398259574781865850524540411266084615569428948615571718253553358271774915049960237005010748160894651465425257743745283314871938527916390814004454313805129507729904129384127649965865475781153860042230544499433492137926344401757127469571050929803392010640410317507951755982610529244989294396614471230084281954553184698073314222854932817619258099338005409049580136998642173675870988962760169056879998398163543397371747976544756850810780688072748806706822595602577764813504951184243123542211496200863729122771227108073411550681023456181764501769097464822231538644237926210974080548887316873210660428282389682508785272693662536399993444539484823192685092631701998055292996699327267455552883356610947926106436049448910918239326015360302865271859210375892048289992418141042643921771678175549129651282962922308451400160862427540127276662953206701415592643149608771296001377606033838257637944061156373137547777716575622323490228573795858090822194934133569072380125978055065911211274569078111993909045916179286550721347758033292757982402086672759177066573192031736635422141472995179421906296184542731321075339800681384800003690762587673353722325507677635828443822994183690408309514953315924282027263680505379580877514163063332191146969860864093196794019175913677401459154962900007447065669438980595970068026322497481058480050242131582040839931094605499177011448384661010456048232864374247626111011559942760304373018076169123583841132642702898418742896332517268913818843792691131640139980937048230935289244783006414105353586725096937759575485872476224364826728411966288146870017232167967649116344742229962180852427936741674490857667409813100059087330944248167312706929268886798836080899058604897904774978321438363820528445220554202124279355504872003582388967618800945288400842003811320591718267272266918776709731896828494146932869185153870732283691864292295888354170283746156089610661023434415423357313106142799476962540497640981977529610530741309034351823506745936231294395238168770156089325132719216243693871155758097315131869392270585983253053175148066539579355336723714021584147628976279524372828754253516069665697884362571157308559489708107397182959266255619388896690669854051276916154224896759576005649109932529002113487292765961300410872902289503002046825664312412262531756761225873840134512014646698835948280307026750258442499749803022019886637833835958979509304601067138713959264595482911700371722347467325144340937281093545599448232003445181963381585102541132294366199353662872301426587008579918848355029424855437633018660529054072843016951000018985016480014193596515304259365258325902133786967049681751822226328661086697694902675989416833038454684581836459808265094019748589911228931148305967082522944852444702021601883282565869430705068430031112061880888150799158147317814335165546039970344427253571775371248749699650533591743134709913785677947944238134851439738492487055542367843970275335973859618467230237256751270499507535021757504121011263064491404541652652689718160283510535779041458875550530987311243173956039503639887551661237417305841074298742926899329854998159211721026408922345404078708998649023769866507828205261202715959680948806989305580709468330259321857100828652221972067108185390867935252891616790161782668143115128306210829294747141760892945941267906240467396672823297158701590220884623969668890335475785184356127857798411066211893701415241818692602857593562936658979272590942330924688756789666650923664139265863270284555352893191601169637612249195651716627533527235950303393070131164471072796462159666926200092101909109218403771240678709087697469791812383573336615873929869221946116103774555248658202908745181312003666805613556611678132400851996796770840190087684658053359064257679798396182249006857864698229678437457141949625750971672602121378008431240367472147855073693113167627252226688729922009678896475772709646055447743672483174547316521100203621729070234537139429107619484069564367921687742871985344098145433032981926598153264229382913103655347654497084251794257041333471419144544338425771169672730444613793958193010101441467883212918298795954730727162033451817401559233764486530997790142266395000323914814809352363673697890405088159625003430622856337156160052685729331436553605453024088509382689077647783434616871452373833120503418174070373015260018482659585589402882394480247982318275312885938201725774151767023356794939523889906336368691469402453871209247270475641339349851714058655697535124857432292696677582769843191391249333334268047685281505243385792387135539069850762216165072815289522628961432664795262223965804014641866560375551078511433617010365934126475768071928021784211892064736034406022805736978878205351628989843724638138353815461079651728093539128029823685805583399358867917317902215430884458928539577946183865633750274710905385495339846394707969850331493966768618596142080034390106029065723128546253641559529645391928134845307292649973027296421827086622051497903874982577515767878779825381847265831464467792117723955384665888685038880856511092819906022445056063577720914860058937091156564477009264454894475088280330678456913417774374468061963962815920918077847266391424004161658859334423871441133673197623333178860766919779746427750310286395339256082673818308493307225578416060888181402133227071925337698357256389517077936383620912418144740052995704166674227886260758456029735316394341111575148397294123113407569383898755969415718778371544476035317022584957062850432580842360132078616942996222698820925289152659553256192851103094447826975466574371611154732053368179633422455683241565117487998333634893449449808775836821439630906303448305687724056306634139868109563906114138854720337046801601554093754373880750321143905103528473607205347110780275730531390497455626964484420374655518958592077815197000233659307721336678139731479194359314227908295657744551865830423856696251310843780653665571882698576793680717837938506715153577308960564500023486739595639763806789686202819982355578316533454460183452321493078023316870287368077584142182316714736406858110984087308966773426363372440955030595273401496514712369235750090569993955319287272611349870203502397577678393171790956048215122047486539106927800070941637235942023038531538369046695831511841803320512124111148528930447732521151965688358181051995754092853180497205227550485262082263197429848411152872687057039968262543498656583650953934364206289404877544788302189754262307045240455562664969062344606366963293689013858218108460104232403389387963215709272789777161261328006325799267392881563773305525818941366487548196342104271773179622176605669946117146796036826372703685340327577113076571107498963076849933301940267341386689060489401260530728706019424817364061615084104447899564946854701814398265085778337894073790884028070296985789806374301685336113319264763478897018006045516130095909826132989156905886613965580932700360022903453022610218993709030071125541897744480660939805613628008466686958114433186081532971752614494634207608002853352209588176899485979641364592503131877727870828397723691626782431572912518833474341995213636307102271983940656501854541705950317320811412027600993642214672065218597781325203774776525887293908370489292245623283176868828344362761167536783048957022847226379006614217091382251289963276949470147955602696858187146604637522390655573143920083417780509410149376933284727060195797192039661339578303517352447325171997237026635161748009343880856009320585087627876125719479602147939828939825605545894353219377463949699285037028408127194370395587901237399886275777035552646455837516900983874284304727929891769401547924179120881899569375219798945277985605428114955722645831998106309814439988503174488307517866229008860282777443844600218214029058406821468458570637543350573191961401500902900830624397108462260742041055436459620229282394712653915007154838738245806416431010969418538239798608488508668923131244697823448968670299559961715427005137071505652787022338853715771084444308993873735068975676545967143051146937551889240042074434608536884619480469909314111827851527807239346955311488866405062327641155865612675328659140936231607840405013808505950045339880847864587977689679480233075006386442562123988612807251590684272193358628012581141564434442299348518472668288073135295933083689564963932559524600968619333403847751529544562501389775825372401793548411008150548765675063470036496828447123472525876960067476095735077141446678438370913289109142756835574637889322511661645986076169886969074799619072260308284330923833919763393477801800445180155000164199570162917274982068845140748091477232730246356692097294860733670895821503264365590766270575277436991782424432195350237568115984735654905725012064500650419442126544363508952186446441676721911583715540285641482614911017733777046813695521771701427126780384797199635510311843471921023478315964702896972574939982167435884703250194864622880457273377822338133998335347198871883992008794779225081257748653732585877935657230068168345318602278106853220923193102951046391936537822740478867743946092837621159040442658562264564855028979636273631288042503285623745403292743976953212405931282798493404901154193663721546157495511865178795213228503287093440950575869332345325343126762239505053049129758516163777323064055968996425312196849635242069603389361845582139938396976345504920794075867060526076513202505778632892150435877555290657452548370808198344022402851028403332782742170505266132116022862854771360598050303196087477738936027617228874734331152248620875691379911802740317594033677907990509792224980457465465609937572863284276901301964160591649814374282306641865318765871935866160631704304140410958925808138020482736070300023722851467846422672736348742348563439869649481424741719516044271126966655642968705039975100603053834973774413393078816717734557022296697287856366366989082941357410187248337165230917226374939756505727708618750098242897778284298064297256039674288830573975252140623656905443419666955557385004154131866933839918424085349644546082922426595747270342334979343900597993524947617890378163475780482632598939016658541541376346202743381855689284922698260015564055605614239705642236065892390852187985714328651528447660407842105371932978231430141645040481291940617873282508541587828081230727463307325749207304686446130242378813739555644107197595617995272635995835053622057462678014614744409941950165063125355671418344237419908518190197219911361875748685903499596666907141688428756525973170348516643587057570352342863634985534809700573283895667293519996265705486659367597393534967461192016064741164256523730972259286955033776942226175715811536128134381748708894844466801268341962260701952156459597447180831942513880282854174013314167908356936176686990180777735984525698449864636738864589333173403379719919749758493166623895680754710383058917128415018239388615625704403635800160470606382339358822154188011863382873874888744941498985347921679192448457325665864460808696098548527661569957323363346539261021400788422174596412433998922992362862282498922838977793143270202397075756484926748125955024186790387388390535456384702329916054160599012904769142239542226335611739734410157104746139849180118395293213858760352523403662208621774961252432054910575700242064187375624949332415985786303850521794249397528501221051994815951562030602533561069323535271521636205643887109658137933431878084303063058311216396291037534156235371422889991784171256881643684187990675464771482284544993047910860499233390493442081488904238140911579599895260253386305523150595880239734735115573078680393986565928877565260945301137866511498889025611340455371708585388789232492777043686663393889023252940739444087408057005729148702444489857621996393164636446859826817018117236863057652498708456703101937551444569048663893094260399128279222221785490149200798860021039122506825187053962957771031110968927802904606630265332662007731428351215501768268110223898253267473018543257482827360317788792928739571650449001832806862049787038576319240997362073212159758545953049852229540330238213521012301933942358381581180522688137120623331206217642229617990585194661878545628133424542488164765649149833271402292401338077558182801442702539276369074566117945597011688328386667734550231969113528614763073891153326324720889251679032025453375902899084406433497461882078415237550511376784192133215103349718208725857995485810998316886378803954476483026529614357115144136589709606859796755100566439942337843290840135825134207551610416296388286472700483531370878545994294626751926819260115997075025302651300349576947389164766237885231983109402919887727645028147586982767306091684161498550382979428256681974527733711614425606310481522796069739754694078520658058576808798585434283684023447899241079377145725070055835522352921496607473907317261791644030780171427334453321120697053533976428281698196536241377216928478347969751791459014368410931988076048233784512849177432873708438154511542162250462471224907010900432702131095240765915691988284293218823428366520982569377008689747576145574645301185057340405024510795022740864166833269823830889205184530364184341276231214193365426630997338266967064743413599504197165871830533529676927533393886411934438692665190742578176881139035873989337570268586247360167751450901058688456242458208518280314045132597665887016691347565085022893587515068871264022870401077910788239562715210640630602762921226300720102524000851521582660348106888524666200843542756180091193648931661707787251692493507550809079284440892315499158472819977616649481770841543762040036662489399487155126728817072134370669002138700883187743471992889209370618045104005505137923573948465695164023075938089545805882384728968772258726114833226729156015376875840541921377472324390269116664087820937818377434022038737349989288422258409290457958198188504907800571358554874880383441249546135176086857837011703690607193039490473742796782566700852677555055872775599051733922088040254350096493798635812977197518942816461693891351903876798734311130251097546579241963420060558892432133327181992624195135416751806388563804181585674461592610131543533233259630345770362423383846077676484712814144128606133415993873471867063620782929274414447950356787652751959236706514847521405525280486527803593756547545929712409511342945595856413094102322315160489661782596824482478712032657526075245748576925956403275338177726720804682268430843846750297403496427397269923945308223244141519931208238912636353038443729639880834244100305372088327307694955907236290897776098882234967525568384250727689530966877332999394700770882316271932165300694102650713649799618867722126791558249439169542485846048655757055975463590536595621089458909960317398801391222234887653603499886280986165376624166319978272217143887777408140688847714302820300559428034043050738347083050642875304624964630775103470437183573456836351937870510049779706308124392571835223371974513337358704441502965575044943745794859315087530001788132131803444676267430515868515735209557719183651600133925539151927433344346761916796338145902954626338805649097150508492597914610393756617269303039421520279617511445263468266404486281650290678875645131352510693762199731012764319871679918755808022969340111525207380936765852993591057491887551409860545160206091008580529684721459690799602633038942263959548526331140836850139381675467494001639245248610514529274370230935928527621404503865757000159850286447738429037170250397882905878229285052662142133716398689154894611873055805217507143625324934025444031666984070484186614438642919514507579436146909151428156442308656290061728359235195691447882704845725878149670826193978690771506221811433050975335610844292401975150254682846289846193482363211150347202684509199776145481268523129870403960903633990555190935994375909564492138787547624799114951569082400094971191486402817699071293636185061589205323822293072900705629708014211750810830975872197498438725103298741180345357678521747713260004936505146220032181767013034038330752371508447689049490460724968302941989901481950419722336992986511425818148932945436351058146246331186329970426935102608858376136406589221426317416553533834977129839315165677246528488563698548656401544397438101810291420995263700943343829621755101891951144135869508053293083355741772083694772940440388958124435599859810826518657403610498882308166705712016217575506729679623190461187708896730564893280833526067313364354248007867022959725774592678015370268337959694454852241429254463378070505046779653288038915857956498128541557225059213258513273836810620918613299731879685733470518033322757947143756422381812453310244499905040790702140808621019390814752881009590780115608409259022529667435561594318641308960274500532965591077187076735124726465940041334785241069151525808945043460587180516500004712729616929640704057345737397014702323490247433601441095502714195303242144294291466003683186387803623081508007113859600420789933872944403704590342698775328065887914410213501003581912718786213730804567043989148699629332900532127222397596634778581887827150088154398160117200726795121650644489295033180886317825313036232843021983223860594588571509932127168644846402121127247137399502676228773186520591680282001536519669953722110250086012716537976504938676100927457779320687904325348068297943914691140740882628831318376607970561840590663430242403218246334686916722876712693218706076278767737412761257958956588595128412558012203882634321384966620819739807140852499069805307637805338671209946118199747280124354009363603501168533264556133288844819966577935440111672001949963090725251291209542470182426245409321386519329122706268539250956499479055603225784106967949970280503482435491531580662364782308191742062195157694969098868558259193226692230265166996716272843935866284596855054941368959311560341535085614968600379671006553135025522370062243033946887843137017542699868263053378747960774884847756332778417378203102371933759978939321265264307109251988302869116138915772396724298357322942720108286119832558605927262651234671722666616405232864676617001485082383499274568609942946541479634244933649846048485258376113741078765158352685870573714057727387933027557114711975034310050231346513445550474114502345164116392746061605607515288781760814599425076821368360452538841969512640377834369556146376352702368646438558311550420668869309311746518126798729708228012059246538497079780307871143296379698965490859123411458546225564687450381718477737886615418925737750001774068025813909282633410848953855172832071249351705394868996271524568341233403266806772666499899591641092763119529078094946084157737189412033514099299313340865581121051202509548104001862303803364317163250529037418422726953342522497535320198768383550103030808202113834479885411121011454835283852301749939825222781580764945947479895097595000891550365110601767607375374840177682444327832716466147547279311976809656835765869419167954655550886409647906716698283112043142384155185355553029495849442657283816628503975477821510993345606842347564909316182046504795174461784648158385475795165653306538186488631923953405112569223484273421110577886847449452039168578070899267444999158165259457847419897702736020289006968714612975394900177195036836743837308764725299209081520605262727257241001671353475686422087566985703055273914899728302504936902694437062133285872504749154322877660808071089974367947469835654380628944876447135572496833518071527876172962233484137182847164613862120560612694495007121951010702927757613539201748342071668736888935468284107773403631439000902141288405312932798897235281028565001109632659853716506998810714591677580411805369868976014477828173062002035387352208577034464510332309942289124235679858556808658791550229323979296325983619003013318557737253954517394934302323884782801756864136691138229119997063629860053578150510452302530923393872811408126892989577822035886436512034457930367726818361730845457957749560456939998209410828760471082176485463570089356551476643915869455585104815547199060528607960847012723543022171473728221343487319189105067380221071656733720809407376549017456646344712835227086459908110706300618443420564245154564841251979057368163698238186672872168035405588824721713307984876287584764807585087793514587217591724942745539783533253981957639720142931689727701915095817658566341982212071604575624038638432764987800587819197042295482981893419372612964069277217299716473901729156467572068940058411385905764690243951034267122572372362055823986437356244252163295768854300777016920117051317375255639035685576301040733427622158562542799660014965431558678523081190113403230866569584759909186489958707642340720213226067118655439983095958443401007809269989050910711214079210284001487585015339191456981411091600295725200969143388278626536288779794961261556151786867170906817367474603856827699806183438599051057489972980603511929640419747444921369436111261513247173845994426568717197360258918662008726338136315889418820592744489025648757156928283679188455776550660387962522849304044310066927922584330974949645773044626345972907906710450050324952345794640262995370109896776301415956094892912245843585092535368953038980759288040914620992832382320849048149819756537513092825019360524343954043648856286699263597004020628803959618079653299376922003997061769777517596859543770045061891993455976878437710342836214681607178436214584089719053561145703909235676867137494683802345378367567568542254503492478577543986116287348676731697695440263115840473545553656779807952155572192601237458889601049880011669901389357319389511768215607853314028286249641908986137522790312671244781621584212816218158651457362870704256828159447196472178760306371096427483059197555589027001996023013057654195310718365806808624559596630841942787641956059841662245162031637646002846069883209499159135577411631260139084412613263177795418629416690182325787535898281070522037339458912687412962408234303296844359338680506094387623433217451762453384051253967134888086764305693385966421478012592627013809153991300917017612201523201455905320970914857179259710488351588047827272953140920715708002236015844505717399373024413089560425125101772165866132347260837547384606369298899627103537225432632818203760651986228682825344143710630293154774966784589117359401106922039618995631596118542746050962259210627426387645567620949976933468664096995129512652351108017358938167903891197561565257373478033895279986548880167367021744850426547922531514254316732696327566019176340231744850474754005325120029008607685477198844967469408472797825837237563930948239567759136124264367789770130563496737506875395620209027281975354613337757445583791858988942337241001697681973681203816918088582677087274405564739721482921874851062349098708753173259679123998309484939015251413246842296205379222158330358632364487890267843559659024698020488981865397957103623241037379581725484997352711034954281520987791222427533076737424287750119885305168308001973659852519410501153889298987484831190759732222385197312201545517147647500347437967056562087118238661245000060038163369960726666917196256116833323398339060621309776620534102172516628250502563770590653269234602912086179208685286106946298082452280397493343926548981604943008121562266115536217470941487177499591574953453857742514977118288616907483964914888406767006091677897432177434417709223957105284250123105587705354832072251938279004432051733298349352236560776044312408264691070675593851585412662979956004799161715405459261917788874744230342477220495775426552477715647539386138069657624836984853936042401085366198229702265265085150117003944105166112409587724719557658085786828646628350986283158817813680738359032991353952126968905591977599260533586407642390432393767840003146889536289249437043281528728166380205627498773306733715371075888239320500827474876057034711962724031235322911966348819163550527320331780012325085765319423575992646617853800403225149982165515570157074377254199447436410012818520588052332442002114172393381539553452550622662360064736240543564623039922795564187129540620186645141381184568664385657154471718392872836455814635125053002229994406012464172741169946585629470158055373661746114830964736905982164918897259315520319936665579104591245240556363781694503930097725269413822128596761716043735946821503197209843414500811340540781407399575695767638748896461138270034575623190177045309749055902593748589394466778127347154990373320446948960696406086437600073232318652372186449170372939142626809683892922245324674541762374345991491956066688759399029933258722337015337422007007947609464230679506044860307925880734635557649105414641748161410444481036293334777175942569650453034927840718119066781073869310419487713984635529986597210829881913622499800712145713081405340676685633662191212242758975062432232208118906021371037911127481114171936344988325223889010879214736303669827962302116091504401140644259527738239150793859696288285284219794783844391166294872404740927009320156524761644924419381208985139230097632452933979679029899868927526564789580641188083906007098233947027175979472757797065256509118737738478166349418825318403082118538276130720442577533490564098450668518800105585368334225457113845462750998245035015839478731701995599997764048918913020128382798678695890646364288010422925930916244352537885579876659821325736994019503290263706693772565451180006089765088003537771169480177757731688444817261231664328005159483857658229889013172293264100629232212019336585648069630181239050984545893852652633717224877738728567022030421268098596750045795711531239860214786191619678189414846950209188082552687228953587438303557737879668017705291747967783278211552192810907593595351532522234505511602400995963148725792732344001105225724196978607257230303342115815014881260044906561264276504130560719214086105937789709371335358747889558465346977350906953608081081739221665912069853907958244832249864566164598568512957667667550762531142858776066095123942573833393782262516109979678793773433460673286427030330454513883758244003283180405655913607484677877910279979116778803089472283601400534495662793712452084123051987418784424076837603324184035946593091461125400452262247362863524003630913753686125843923264196051182384262263072789707480292010597298845203207840645669105661524909263537849889937806975670795200798636193062768634182714086500976511033634414986249574364065740858796374010835211045405516930004140589966582440596429579025635931870692519922757054672824130580461289217233561386080960436319710531522504473988711314649581213812801180585955594599881963903348810605754549015146150224868270951260170231652747697587250322948907925862355186432223015337735647412057883200781890693900208686538388848583964204714443290584975825597932193922382829156273066696395320866857505283622357032207279405266036131965232028490716027079707029925754201322621298539963976930358173236940992196796882742130666551362220244630097959749353463435841432619757932215807519019126705385282297849086926924540220256532791552985143805700311004175129046131207673377947783886716435072808187757175693357343669931029374961377868282735299011749238970766884421407838215897302121357191800436114744172060760107475704627967293778533311162095326389952639429502132158545194414806202463873350868744737272089839250447800398041794861456955980333616293369661457288044758643491384920294748591410264328072353392110995135996249952517961848838638618911755519403187297802464617514929933224725723761775737418399533049503949744550936387210707998419899609645918678622380173260557930001191357219807267379418055624864651871499339689768129714659922632745550693384718387970416410747418929300840023807455936518821195867344233229087267879008572082024794462170526740166523802804368026583182867756366743216962600940344059383104714732302103827721943922997365876584630709752892126983161429705893967513380589350979417333389318274545280693588214379505404756323364859293634926916949563243479547202562500976272172559266022727019409141068049708353184477935728346961303706568187318760308501351923024915522348126060820196200243124037599436927060219973211169818946817522359528907553511112337513796789582236638356222314190862174810193665037855138656222201776936821257248538020008946944881087852641285000985948389624314530195083534394155435716221159655064536578526631913185624889181960111504005501799122721937318445346318823367875738480896346453743751169897800225919745169250367401015222353902280990724732659460549036031193350883129052628521500786739107033403323092224708249664028822143125365554201953050802443824703471732265813767696337627843666062446595105075284456740910214590100505237464382633839041556687195985428152076539073517668032203252650538495632834352561215496429135188519063678337053286950203873239151763998367554348110765124755957082488667396993233096891305046314536601791437141630599783110410417846281584859934329420410703255067514430290144671962881659553046639200143658823691053356797178430242706018577917732326639205461483166929876904549190512949637139121039014952139677239122402030501020362891431481785490953544272841466141462256876462394087293899423550544033270708575206176233303142943509181536133334322029034811938531059742945932809784289921308865917250568953296422722179326550865305326551805820039838783408308958693557519614153379924703732875356397536133774741506082462106164161313340429234821126095399126992890811960665102464381391314340036215702482087638351966304423017225737179378538910264586277199485864519789627819168174288020928997414581764241521555772014296846611731373818055098407217784581528250858804834434395431901848883949920765452365604088005392778118002652328046375352096823202175158379699822539569435346823369397894884365269086093096779514926385005382808468022397499004367125247899589741476151538545766316714832184342512895502096210767491124200081692250981532426670604921107123786712729315061013688935121212869760914707573283995970681455562772218319261064930474641645327654207020287462217546498887778178672716293641339531595515367188709784645866246756261866263254023621117936833554469820753834699110682021485069376167081476981341498548540403630797931737684926927287457742422387075004889328597778972872206982716893472320437160336832013860364506244023177052423448817064045002921031596230403200164981606946944737776561596792392273845845585385531533876337516191408052328120776179015971627711321159429417544497290549232536643166722482163615519431227061854318894001342934429281720273243490684399677450068914251410985770351288545177229463326422662518353013713171774510569264608526844490528220039191883715309006570248122261163272371064769173566727109780243622020891899525541938943156307588206316407684485352242674478932755835120260446478738834791049056370851408005345999672579053360693873200023612883843271292873725400763719260315803521719738224488256976477690098948863361461880006171917789359940372786808663537776048374483434314348086358932177057578938460122489086817564166713922079837353245426138355037839484616219650219955626540201787048946806918768869985780934217070915724111781438446875235358362396227305650027983825136154773371836448842997872062872485699716965782111322980321963796734717490439399073583319852500458602087427002191995666454238187750758447627055522464950979482295983237294095255983076073386803081459157760073900127542605103877028916898453054935988659611876920040781089129158719631950537334483433076185059855208284308695195400761338011850917388665660437584361005791419402548385668869207717568222635002422117679322487161479808601324858093407888076491291276163279080128313310480783716128047809952366788932339962313264717215810713857556675079546559088743465517702418136735048059899528924362339079947918938958753459091510287179955485759827015386102789725771771794183439777026218565557480088447772724155456318164810137482201241797989451944104234292416049096173088942600207985881475251396725482259654026917197485026375892598679337772782714604906766480283145373164918541202728634622957162314617760590327479513456432518800779138355119269622721909176337742633671691689526367859925345772435919664732811905895827326985502519280801504838326533140860272356034497963377624509038649500295518908379518885942773591072215677113519750425449023582469649592332522089258339876835434449367714754349653380047898419945807396456548257970564766520008713021152673368750324551070870308479235438617977271079050930795128400599113130365519834822504490014453470233045818780632678355777625195656535859309257344738345266916190251641591391363058501885739272005258168869422310095738626527876943830889615864524759596543716675182974942595174591849070281176625902938905199099516932378306508240334426630275267538476196200775892731068236642724582094194884198816981392296896115552039932637350728332250820560651146368114403201789257206359589979322627369852267733345641978599934238612111391901517927202968264856617926954558300659884077299660362522178655897519399668307596887282671051348199888761550091570748825573933292796480401843912424451345027236906509301203372240795771232622412852041373111194396454711593054727994293954582668017193808713425522507920594242514138659063493980538057376904666265212227376762092428577894754799608034455347544162018874359913507649622570142415597234434624276252219674799221869665457223402030077972352906721518844542723670295649885725993557924557716126060807276186728302694636280910845514930339974438938273301466806533720492732892848912697001948875984481408408028667342586839359388051090841516835008462349765208993349934244192075048506402939168793978841110360506465081522364205985711543426260844503709287452322682691239561262840156700795069114776019245446900448184144913051937108903012008399365790952638370109379221279710708819681578798096017044891335094310543893253116923002336066340439839408242690143090430059649043357034521706459917237509416366827599635276871818998350164525613898568353362122283251910276999949869579917140802900543988800100142948131642875245559026470747466639091721196417739847533859935826516514834442150774654120897716880350942525649722108607267433993200416512555028833400827061705360108998926470006552847977043981149471055016469120745610261166859168344178546025059941868573305675418234539421430576828835164144976633573346918649503214339326030800563843276253185101716728077773508074656751751732784199720142206052328771969483388199552638488693581891995419792165148461663244728839207711045693098872854758176621232055693734552080270319709148063776167824174731024962765073111689789829963037483730384551913766632528646993140057055507582868120574036246077748163193669286009165251786404136913822922193329130269483925704586802375157217927935668631921309848127909404292593076833280196818904639243409237824444090376517399821566094323629050846232852954179377409022268745747971305414718391873354417111059482556990884168717181697594138887218191073166702334493289009037263713244749263579641905406425325243603723155080637957527951073202099716186259413157477984197361264146374661658790410262701837836920963373126191498134862868398048035334467189516738049898109361623734525766224828299466847440459450106412945148076854812023638310060556333379514609462828181085082171752706053764692220852514385040190821254295152689772401610902763042852470400351565910524951571741935162106608002428995851908909128810998257263088555707407938628523222949445579429414469827347209473317009605242088070136033632449578306382550783702261594120169671037423413744533035710026710798414350029201022175609514799868943879234566367732093663177871743715658258819743257236921740237200359189779798760005987637352017948115992165780315099321254317544162324517475537482510525995253095478288550590247031890552073113919672522168695609442076562602393216917950805182960354924994285014684305848734207942699504361552851035024690059364751144113136170576597875829644858676590801635739181395462345993183192853426802516974209329961080997449494347715582321193972272436642814957517023466525328813371546687626722832838302145832622354626024601631984576250536775774545509127340005711892324847569204878874228622416628243538488589498709918698277905961478231315715577882211567542237877913638388915646558174870010035099270937678558950529690829465207458258156606435627979198339239939244139275459886808137376059420010984306738628509416141481923605625471948586829497274103571323031820287093758427927405906728647635645608109711807701055657920685060995282707400144181404343979348921037615896127422342576839024291311035975415472920928053338067542538072160556140674793101927049366904831961287448007315284113852873980298649302089961645631030192801474408359214742340021844649372046516778525784318905901335497379974488415568693798779364421397797075388091129448385696594405258313349068191017700345029400995364980811264329363768791251269811155164284541656883956701167182727220770462358822810735079690987203440225923137388995095594842383714050439860878050427217628153566618453419674510565821079177015524328169027863638620777663514012951314375480977282494345814463715309120647830537470633041356619937119901603754839006437584477163893122037019892967418827653392258928231301331901803678748394436455081343360057680817589317655181463867081020944751219471122469007185942778611860289936373005857714131922553172670965396451614656682295250248465778303909936376761478045281406133553429772283409016292905682946785042655481881506097857785243255545562059192194894216183249062018988825489189011754250572045286912456728211572837089099002811755309010565883331348865756929988004035671137251914169450287375212155920451886922651368498366690118270949886884517660692347595305202913461972620973634908535002896262525097851103920480942538504935224507051378605251820130404894400632399742912336062262042092251581910564564174500500050660184393942402202299076502569582940302841797069227382095834048181879922562515089021941435506759141845921827453477683433603083530550126595395620494048990653331019171357570312622938451609349055951388496819599581050467939103685415932376313117950768202987652480330372427189592869570492496724625776296464258421177711716331644585817759510838993909824561606964064696824190769502841716559823281087398851192150214280804162451039959861607699962219713958899715665081182004016517661108105972211771032487421333127573450232188997266675372834025823984233836418568785071123392236168250935832442507516792107050910039143252621519911172550192534924583605045812676109201273976513020708639701654939917377910514299417004895774715380497612101479402352963714468724470752161906415236747080691216844474249222279354086901905658175152091054000422781537204194465531942122555371852614755656832970378991711004817591193173184075861974402909165288602510122035252737000774303829518037728634493718709723971501575371243079469337359439759824701757815070712222552048895212187338337497677991799499465882856271235734564624521256967099363310878427601512732104272757904630983956959299477905372076179122304220143509885651573238469923515839813671254220610887627027204868660423799762462641279177562665133733394715721726381349364990413595713417932207863880681686547162397160235770532221395270414618517805948857169927196636759051096295575399540063266249522193649182202046011406005592985397841047861848882844343951802776834985074908202731251655679536899722134460082688684739029632093465803459752133338716807896096074169613643420304500103744106045913207839202372475758652358802913505376363319455994262495289521998088315200600502371375000092857642590860181046355390975202107454168507281195513103474177223414306815566126939029729391393646529946747444445945406134420280497662677644177219125314397209439719976200718186814512357388657749509174242433328933483142127277021695170452064985335571105894925600129915205401282287168770868767132292493183055808013274141554919403908025387512562242664081211284902530423459923780622152539328548182259623885489670827946962592000515620616829869486659200577463990403374679614409161016639922561126845561504827105764697994516022428847094121641091480365229624812287268460221936124741241424232355319941569699092037505400479404498280125738720263333392802334698300553261115046218808063213964668566796656605198023887534049560626816795562409106993081536363025859799126301662929720326324901205653228024180558481003304227707474450117235417543408241404737947492949912338003742130550708272336521494816852582782527712185732303918446677507598885802259618092915966104940236769627183960563814915649690548866181008705976702202859916856814599891416553951732712158139268232075918198723967658557242279995945495293907212814819943762206452624318741844406195713075258305962664148217238960547985966754598562362096771631667493980429690034536513941019055600010891547190361498411525479009522139857429108645382645158123058539267597022718679940463467930791530302099055105042335004626808668128364972250980290399297979633784785055192730237664368234034196957985521335277298567307373755394893147079860867634078227065701738131276604278498605083262181237366694427884209255361499940878021444104215325543338691855506681698883598640369321956596252884288967618946225079577353377427345342593355211431243292119539670374171909374806290048669803308521418693070965851276283726767994386693561280482635319393502806669469331113009336900735880198230867815101723465555725501888879996251152141009245286863033723915634311366769749212823768544382803257954597012854145195677292238857466205711163506082165167331054881485100520611338950206691094271469992619134167323728255353262575096246005597385756759328709045505802062237647189638384932063178100241874869528087625710461606856096320982222502720532090657885094282237109351189584972418476413798942282518059016105693891057529451401573936161228825027949213192260217702652971488218199368710516398450208457890062078567304168174505071645999905107656132865126548447167811043622732787835557755337137776984877187762892725298877340083037003273774863888703054784064229999176437998275717930122739099596537284114829000072574674037693848575272535507826606038015284867338225459895351314799326203347545261855188621272339400640992279162177992702533530794461917812066957236991820018035883861220608286909846545982508057748626676355641442762045421119802375334813659535566680998194358960428936802612667479829187948791878315557702779918710033523173940987031938011469387512219059391979744721856774498368731840397298842145269597059932929364042530555110093744531350442712209486382463928993145067363496662006629258125597814272111262198181095827766592666982964385321542789945799604010762103092263542508227283773315529430800191010794656088866273186813461893300513815992621572653280632602103402622000560922949871459527356892333773140784313673111317923059565858534651536602989508126163716387958643897679574449026620794085611461929065748380432995579391390638142142397387625710689760917999339849163913428500838585328592349362852577753015240414286124291824159302471295249810401478266189025230489481707583627312687541625469281772324260310346725185907374514332395428457075380908458669065666254080564771874746533516604103899152488696913428263222411482294636021007126821908420501733772424532320507087757107851025254166710972464081135546323220118625043058285352451633204827820590053177378139987436175354946849663789537381909659870091219090432882816212601551727018874340421366575613929975027072530452582122846109788820890118696749862380578020677079266153195719067503620616282220863339252439917060309873350131851799011534664772676196671478363956977006612032790969707785828546722957051032889224226835668650514444594288199454366503860058379972428681074565191676309290955282869250273523137542346590989565078519827459712682287093038111212282797523991039346724700641404258029872686964539931292461072336564430537655564976449095389745479820603883403805121701969597874050888312867023086799327278760898349819210526657919362747751201775653454002008324315101702805136947021359889714396026138265199567727763077830642141458090606833790055697902978179940043488203045597834897701408275786761147062315706195022121931375813661750081392461292359228437108289952950094295759473940200537851731427051424604337715167675066074063320518583715042605847458424432209080028206905552025040714084086180040285965224963215225887070037320791465168747290397508026940762962328678317925456189390892241790018357073176258677690704972957074985752005623283317450376114157390348654890792523738517672156224643403553881801897670320196174614194009015351538947966084810525747823712482772746190048213810091498577952817544678476105608473679315271505116746845865345648681647465744721001409132579251851580353019114477215525048194665029675452347943405904672583639092376759623160064915477437535615179441432172731101810475079943773498501508037385794082906553558399062930552754740999403524611522200056827747415334577528987237505925902969468035757167969793669459739269466033683685367275606723594444604291595356733489877578274985694430759856478846071388890637623046348277812920462737240060406812926926657446537059960999383274907253945271524571354219120991456909636156970965898174547258450778254799317771913889662859123040983518730798242789323435930793269012031593522212940355945155434781019733542889856541618386705794998172312736613116604951870501261671446463719595323422429017939008503912083817500572696919436131101862104743091107501641503951662604931554043931101011752780391533433919557728040061465792960351359350707912955473023788160061161752731761293591254544892916619130608156998031144526278429700144745798051454525478110001094390079592110815661485201414698400731334691823115023376783102436173056914878689190592649254419043723484845424939015055892558680548071547611234131065680130286914552908871704321161003716789936853494563916438381223890401472850263858838641203415821539079163469266235053270486705289033429223088666111487695957326734203456297934730604660180710605914205984275589957502519658362004096522324025477281837273506081427427054573172988255989566630989722130707553379932895355903132385144086706756037584599032980648593803758671285262712385976082277448257700665463956275118956452547961560436157371772924031634133067082220511263297267441604086936894630557791480395945049173047782844512883103131471861281836476527661675744837619109670158164692226343391281911281961345252323739083028170106048723626479872704821749556181446347232418511750601356713834004773881420478744596445256877432505920730441196056043616777205109841487634778767602136723888534184877594423247231171057724951389112017434671579842397279758499146679072641801214972135174556444037824126707625427778674678223898372164407100464833841130116586341433661297750818789481255704173239376778409400919406670899070584866613406254472006506847513919753978050527569942332900231417324995835318013264735754461151789775809078647609741964766380096688606039555813552488432454143289752369797187090749893940373872425750421604396981052100688608236372285678586159236037351437509755335785479433494848390589184728210252531296474967959832897317765472651956757848113843395145670642399161971970461848960748383107200088535445507933719012379210481332337652455014619659569157346195999082424847949194611902689405496089913837443040255099873217769249369942661962866600988918820863309929275634252302856811415651540797176812228976552041363129094120918237989323631667122100102509077924222498362115222349539561926356587983813805410493485241128774309290333723670919763456380194297137797020674487439828257372969918017606827736810563059834160520547322364289253274579687970527985932251071230809064192303688113485330775980420499336979834235705351018728000552800658494177988342794247584041791271027270135521445268926269749652871996980663543902987568032829842595081447490469701625017145265070327164686727528983235623386010948614879032849040738943816455398912066347568239009291430609156065310752905632772882699030673297129423099748977239661361415777369948110834797932921624017913321122934256106095750401104040193253775703105799484218543110377566860215152355565852473499846743596264220143078459346074131299610537905555725228018056024193601805021929057286379237549565162818150939783536290808289009976684070560409228309728656913135771798932142948162621424024734825813719697390397838021849564262429776621159781640059407940648427000572553210462101180309891577515183170618607741253597365616507382584166942788219329800182006366945149860343666364072457748609305264132244097052928027820796185250196547548633643243998934096956563824698278579861820859053261707262532252462622365928905394585177175774256351924323830342114235946771340832066036227367686746357445964540410446375265528220430877771229660180567168947594361084221485283302047497754686403446122736511692891450649409974431655796502661646457364482721295582570356148571998708196574157970897015974123546183610720462021964834719146830506331508233376730590281223677677904451558718171112515904802048305260538667693757125898363887947990609265896221080090110012743319555312102391637159908210735714006153453436293150262467473787413173411071718035947374820531303035172442441073911831880112013961692126678483545753653576306016890125587722612922322833718222793437017747658978323112723033647779623100603737280271830961734578363324640593438869720258596040424176226659821939612759317280409869187557984133006465668204460958696572567918341887009762043367595812308518253663922942923222110793532324958128902453960138605855507559637654150223853121281346423960156704776264015393369775440678600210905162566745441976036520688618522083364273559411052941598026113971843213834474750936476828042742039597703039956455329317774686500038037203150478268129056553325412613858083029060265313798544128223566808605340132488308854427657292056449609093930558540511772751620166829931294601780319416855475382956211200179193123915262827826946805839110250883392251356379412274240422553841143515753838369376283476369140688946616396268028194639405272688994183957420633513947734562645394390599552199000680053471048729649725359565751616625326583519248600833109590918584247415060981349856587644216559403336456641569616889248111092356439334163301298098109912689187570339579116488882631487937062709248151240605927697071382152736809065482125901965459169672836326462185595917057533522090651580707274827573569477006420754858842529232373949540629241430949788982043381710099467447073514866184068503830359268160260133061885684670397796817234730385216492336734878245079386034467251882225753412627357642020636640550483973022732560107288807713472769101935668799649980646836044338197610521591502453746548294844425448338903210456995317136730389142430398400082715267698930509282486200062413603853628962414027326082000731514784945986873314982476434562292297959597510726620015023875054666096286275197297107810877530348075327429389624978966809766635390852612276286524001031579222467392488709119284667630464557741139326356195460226377537179825477095812372014055119160486313492304717203861913891198652652848338946169700271352631572803756644299534719176028562085659112451748244049958877999157849883718865864399855588988020740187634474954153003137688485911549941270029935275151095604453208526932978644891828762354890634943109837412574565734554914434430396637669494226396567277906800070639544717033516922284572257210171473713206595062869359316525971148212240792829188721890570151068303292075664340066884094980994505000621447621812203621225359410951106679494911567133552596842172907498279643785867495271361904387602321171252396856255763137139258937137369165834739623399131371138899250299623767801692643045484854361707915788036300674525708357943976908684341374385547130248867888578998524405946098911238373305612505672926348715254916706722525358300867572685935347361764921639632610275196972743416373264726861457625397823022749848431925402372750470811951800238777639362420300306673906577661770332198131644387319491689730854646173958877099011840075181154660045865513537714089093338985996890542199021985225732330967827364119827405296474709897146418556236853701198440146463623453840290034382076689396474059358772372381824260003044542945981852975132479408298585704885043610080626218804063441929975177504214254693665795810197886460255057523433258328050706151684911165421269856388584438389014735266735132406113536269747612989329852538419903832088231497501518897952695640439339222762522590693291963760378297531087508487651069597407670058334075097304082697731427801795881379188853151831368208702876412828605810062793131448150743661767741440123337157162907715356829319797352589371273601693414128271779556791674252452320165351737600693288259756127075319513241013338168666629682365498447321421032690272157659431101721911474823211495974993287590678800874281049244365673984991169480535077480370510823927455495988705906659435313169231111358721191015044729834826058559084797336066496158423424349328621527185809132096222584772132611820424627535959242043706703609926505331024376244228787756319132440134023903613964352254430690087417896861956115258232981071453446972152972840166246573967475231785931340462650106888811857340238282249869250755043746786474384358762723271516431655262758611123461763645866053438352625421999059392125937384773205548172383602146595929644373901389497720055489060288629755187938533878955627075776940806750567998373760479689781988709374282731813057530461113752671172937614514425906950223772298505164768690061708843762008113802970440394196101148700412343444646870769688577926027613402288892563809051054506314026379872721618456483399774302754584030870268967319252916126774088478693427678622477097185790100885515644873476585728760583238336499063426297224442416401541280947228482916534722751345279515082120523405812111048162550352141065835336722572479541003072350610362161330337711239494907796214502028871366554499398367780683683306814940740720700308716970999787891103515533301082640479447681842782348621222108227426183337154558934099909969815259153038619979848698566605952748687876828334795686700701168033313119557995794091989281775705774437025776169983918270862933726837083131465656162977045680012945292909543074588107158368580079583178568184799397747045705616739216409327963415486943365757524301745335494988634949149000636824894680403274039994930611467354593180759079353320404156945893512429464117490046162970247115349344902955238032606825695861676362800677268065462754230743151212313877848399999261920844085270773817512434857221751468619938253252261001965031052937038289535442079812227827647216801368723903432346166389267177287801191669590307729983036737076895033860260103194376211824633198183077331736963775886275124469588893035565469738058307542511940335371771885737452689177388858069240068028803059295565368875371466743220291580096684947671623494405806757284396362968037569552227222453286062830326161009290932877272213126700627716429177118130290628941268482266973203242053052528161662703729017467116230074177631661232915380828255668372982035412881115153458972415281639285274741985514080886305850431343260640105645977046298517007776447853824406816246923507595823150600833873510529877474830510555940072514051128882060186819728970880970562157832189411561480653368719438212887262503752842148191444005354449660658911480963362289544036306699051038963713143123196701735273912117623586552311594539858682822646692305736963523693603989564510892271894603671967490927464839147170765267567469767005673838925101231446121900453154861030528161922287280533065234170211342183769117354803780465801172827831907698750151537534219359679372397715941999617472428461997958870524459033160067960791587921139174341810265344328038916600241393357431880357702451059247904226466459724292269268567062647092294826108865495661328720947901214792506936056078347551266158711452555592292460092932495394626431731870298360595763660111955296844657971885055708464861928727740494539868719098858582885391414990337734701148958350727691173715503046766562159943905365366888150998309913347989508542922967823896865248268171457662817639121215714755009374811904274783300681874571647555576266949117280228256645829730944838454614034236077170715147903657536274950932012415886061811898215769318349912600592084912848584378179289440942201264195767360183279003810678225736354626512401449992848533540579675142771438332972313900934001116020098953727844572217878274363853218958068373230274432741623428490044248552846394872861191412125352858658477509564103191962853173369454081117537429329445204027113585588396125868583586750111465378035252270370588954382824098302636687415606589922808146316900908549382427201140753387315242529086850161277486094656751938108415500595521890264086086134453408953546773339260571682724654348623214166869809527020841514410930367053296315225531581290154005392229578798527424141259069185069603794595423949250496625423602201163899508932185266093118817797387555082747579966690269932292012180440239085692166287465380760743623008678911724492540897567230119210278230036400323830976472410737413606216241263240963678468820541244359450679704060857566681842922209776120548122206093123273512222552094757214136009013386256698572176836465414400572531765667687432304237828477243349506658713179928335362065031992353451205015968559991251470418532401744828460543120239241525804204909531724915852765443756514321381601009588962308129637067083776121967431262516552997784511013798181783379570732254645648767204819977977354074528039820146264159550480417892454345918203409009205564359554302716240571738755094073718280348211833679232383710796775854512836656857183997540691025324445480348545927392755270489796044811510353030345421202397151185887827398613235168472081694295141032094026641108031585362022006076433645129350201026145997616001554180909423582292804952488830766587178176566548820015984597370861881636456047284819806074873654997701817342524702176628097848417022695468969640095395829297954028865080094429889459785109202006959490040987554439786769018907409254156844920094294143937941197647928070419705903404449097892689261247650305036817075730416509624099660848354917222346224304164419634758133504221078712462055020215556557587737102518348946171892986571271183500726220585584867449244160029479071168673450533103685068504999055080037300984259208143701699387754201544671920892745533913674291819015296774643990524063036987073887912032823956780274375511398476371129176255690992953762878588343851481924770022484582196468102585406488013632316683602225250695416520458264264554066995129670429935457416298710673815969721575803620420778307240242310937083212185143136904297484861421567026381527377174499115072349651618886787281204257912856516691252850909236704424479975234031380389797549882302968280466284588857360971782926523241397409371802067978319970679526025395037240142131705740077805696319970044035576237925939843786323348872691224392334890487909565189295768409353752235969736646589248308402399502592301327852187453937964188453371576645630996436632670989489550871925547802540253761143515493909075885003612605738409086907114542511353574720978506162705679988566112964217648644543810652488195095479928219899048983545145052586078915634630750010397456661786164588537660826742975870116944918133965858866720255374422296328955708142408571298477181387335618224098478996633692053244544320149381984619409669408394866104697757726544734963954996399933939660350675487257570363617880853132120697459446158335716628615686119964064937778442410425709147031379034488232782046189998549698592314806720329810400757907696612366287320156385641308553289003708814268236612450870806484944197547210621964296848274251051423426577669340604773443091485165207046529672257210706572019361510471642132120752812619302412253156552089505414111087218258987995663446263905095688393587873207778500121673602087518439399428469437930244516855373338629734201219966979944269135721193442068018446083158717332731252902926815158558042336247312827468565225964856170822430822469754158877974939363374839805516009295158174173936327659498228559489317257585125665728080922676101235970689960426724973277410060834743511061264299262469158417534283761778240903420276664866944946145840769847317041706965766040552583383300689798695760972673794024555819108498768740553141312356069288026329286809568994297384661420102524994154091252709955579056332276921809321789210556971383154569320027490742683731271449165033766562883974730329933194072766404691868607739642111975494521075629526231319647914495905598033059503888359442823914173356511870080040683265560956324125717978057334966344623701842413349075049448149623758774509515002566736958732023111836131469468386336609405485015126531558623537505727897687682427246363277499621563442108825405537231566999879459779074756021151087388939563591859944602886652016375625275339312973046420905990829289982351713853227882981199919973575329441827782383341393077905936414184096587189932973988557614390870250540338013579864738542900545592850674934736041776296759716190227907314561876973574942984140397458279003738877946080100499271446322022077152206001834064641734551553013398834096720158480703612731847163698594373481122887131599670283736477498230130134014399466575949756335046007280462258932446834168889106285986577169297138064301526133917178048066460504139353522913029325458748297247963373924884306362758580031260410225896621394723522169317797897234685466998445604365008612467113901656032184169818750128061038096334025258538024656489248536131598741045094831859178780901844808133760289600760915255140387909814590970210604667408396765904183317380107112592609991296117741743349136566280905002996879870358762610349930078967684760247174143699115679809500712247186201717650337290229567884791260138023935554457657882557782481677865464416594603667862765382652896583131587645771969634081170841494471261423403139748870189934043132458209121483047851057461971652431753302792444721916145207846720648711973051583770670174764761173658863276981680083579663944552565416194002364885842695126743011327470947898429525788385260094348502076643280044974587989883291095185186083752256707794604095116148729583609408010218121917685500313257095205919182954245881560020951038401132784416272197894184743125293160456756742748443919350690662962936667411731388800103261417159120970166041109755952176122194472542781495456999881464331876465115010090236884619448264815050217329570963953348409055816365882907329717124416848247901703338752631510030425667715024681273109245162041041963512122337756500147724758368776958054931201136730165556054380125459082826467626453338324374995806918536377845771420185029517431113929945525307683832131248752896713622901002987780618265665463682175479328033863021418250112763988837398836579180907737785536080644504204438576131904654072210360337794073865616838452872818595627522653809036253945803612131755087052416449857149498808592117193549657900670759541070946342387722062346484228002427694945036119484993442385680312735711218017698702662417159881223177746280907092200806092287672872539316085991626549238177798374224521538090301654637914540606679079093386185602057468276193912454294483772153006038404122909869721944259679469118893323833350679647491495660450063853104190891036833478636998771947292625862452978431774124357765873731270126669841373284803939034563326988852033150577781637181637748144485948939600806399596729518685877438186382103351355054783088192343774664654564199929288088076463243763613709117398492108134815618129411991643115667441275709112562839312762022204885851589395080682636683206879407058195133366098257040412536317539593308051109816863337797534151767472804184646934666840126183698289791075771978659306143025244097252827579279907626817402892308276411836728627340184638342958983854374942690928280840906868791092662134973665961940235412995556571608251261647028041132494265917982507951056893064793579649940745803616626304954826920028708890333509689920655429839786921002215368922898757863032117767965264480381932659398913670044121061239351821343324318431899663827993313615208906974208165772532602345877444993177624496463220978620520981147887447553429265529992964660570666888684397013586620646715326666287112445009515375566687460802245114496142993357866443899007797504102692798563701106380897672316557391460319566510550335899039427477084045225057315838603098204980164664382367921602544415711591954127725319731218352888610203161663647383903849616436993570499508160518663915463555469954212147993490852608264951721385168939068002949764690118837007034240179915874445455350344324262705680161416535163825344082019520481616345396097508214554995748318675312464279262504811782471325467237239911823561973426231459083902918334306530849497558348296215210655951570935127890371305122616578197917104868317714347523848184664499183137947935309800717830950098681313606022913476217879520986322186353203403894209356660997217431363318625418377903682846499828410594559518529959858392418927188362076753721664556769907265051705139456367305246824664675369038976972181018109947180669861083471993825795258365197923939973882124894857876118662379377557347188703069630935704559381338994099947407448546273369329468507995128462613955053284411655273389956690687329254369869431370584515834971800564060632231805535804130602528678553816326261288255615658161604329187306751025656576323222036800920251658310569021747005574639874950296797245922618184958792836564628828723249423595281180800250121805696582996754504433670850437533304727123477386512931628525560075793299268619101641149409318299118451998890721876631984494248575084008484699800977741222345743000137614928277373499474566735280663480259136195397048132043561549283948667616267999590100085307182516452901120840836885657924679792009467910005928657787410368575471360240581888489180530532015089875255716118488541911255748390775286140093640342313100563844963851003213913595645757337268446544496693284626519911561871377597309930077078512944994979434175371807621392583558331744797674796150916548511499914012571665342459981981661675961423358639607723460485210191010168110195712773152647042572650465013785042174725130558818916401318664150985799128708223093876862019367207780099842059740458445378409100102800893181884732289638559914963234337618944747447397849653858001211779854260458830899705725173944821342000695322404353074068541364368222992197761669314392780009066914855255351831735715438819031639452232593916046234954105079351105245683408279428913309671097342321115595835377125293418447081595113504526597193919203946530741822644053091582592558695581334857004950548975593441447219246856366938694078574537853562817630556081063894280661370575898025428789445242079479561915716823157809758356205028200850986930787177318001656358489809763386868352198824848099344794203836179571600419346194994834472969049956453673627479711590765651611103704231963941163464075337314332186065720255111897268954101009238395374941217243561978918490672369799912205524429486594070892296928933468353473482435914071873020296167422137804697015039206240276048725867672618113854483553302962351158169509288479419691435902046605024948184382487170031461543284976786264854323308547104673893559741506087916499674370678226121862910509452000067315051911979600373633228926968142112678442870975116370790375717346889766678515540844841450071966886280774106470733219804435107774545671358025283731783500612880804270585105370095260126557218430889363731898546283837789020895962176783155667818705152963277641109219360485384671158756944985492099990554247564618405469242358800278615567165981714236654620677618413418014110188437943005631433127608785536317262816044146482623865049913623464330225444050091285618636190358322917162163595435239980913217752436351203395223601911708457927201352835291837678189026726521143150381560618332936781724325247829132572849008980807633788373670800346170770474035828148052670614989180317940129469574569810812594266210882154634300393639874831336841964500625092311256916913629191227088847052517746634774820313979114661241798378470420233483677184876208575604946337923917758001803164484715013203534834094665168680919972677945228850234722363855306396983576332445195793597053501030436123730744951183297230821322634263559496287527724840944169216510908847291252754149834137594871808275265079024356390880680787097170130025570301423382691758709255024142180572141082663882139341885353803913825206618217521968594820697922429901271406086007127616024899420025709209092149114692370258017804422085767564624960444860478067766859675389483581681651911514614090827223866290806569391146688092258324431058710654819551284002304336621294859107198491958203220570521238573263118167893531670033610912623465408152333606582831142298422905221056802650918443049491111927548076756555351262481473413466177202674038137529760441492248041308450285602944552844191700287819687965697388495264089743930685196722230386691207231468014738040692133241758305173499057415828697523275918079986470304515047104262303542548145958576196076794660101706534486334929240038316097587285035993598205411805683242308091527226518178359445453551859234957713892151450108128213037930293057120816362693926815051383053630399025755579177320784986077391726446484911014659588358191884921374826745728062366277808016696020598939865971940092192602191686918847396075205060781768621078386795628325057949193860402381957363022684737689701898124715977092189023316461417800580601353054555142638396087363285785368496483681241227997130334045162037095970928112789497177283987571442027065150772416082959951797151367941466969343654213206931707450032745088746941544841072905360473679368792888998386454109492051061421852987575995194143172476451253230446636027883084924468788090902431327625636706442798948308490453140087105169773877081640936727375249601513083935330853509969101008853011159105594113828958764845260389389768520874028296989049871060371930470103840381220674836229651181699976590455098850780517437775833695597932994097317597319225280290974876816256281171773498669725753285825985195536413420847488949387483759732454679353638116677130404658950475631104500936601848857599296286731875095908582854658630307302311968277088594702853090210952830780623561679929878487732727007125251828286770250682692135143244109115571264940568565100990169331823187437561107694977011323933489123925042675782493347451536537882671774461032738319139144523725992238422231569939953025676687847792967388924579320655252541196401681468935047239347409936615598877355173557058152323596845830497325875558752070892191814710950855905552670291615321000612044026780444943670273980717174665414965305500762104322764033991675581038562681327982728364043368670751165463451606505207376115486457186576648249089423150862733940386619583526510277456921350013359786415018885394984539829191082606173152210957422595973645375839407345659175399977349309497431730550472027482718607497975126700889791543069010403452032877406012627359423138952768651036908860310820710471297593801804101141930098413303598903471963458346254515687518803108069411487668308726369792912628553900054844980618631162405014618115856351830334909165057289599879941368011654770801112914244511996759445305574573513236981422709587383095255471093917322148767043585037994153039780336868242404245574737954900919196631146181380249936239940525720842577228764458320419623732977120826420541793705004325016536522393413296435622183891499417618074283809700520174282272616271313237718843352654551122337055008821090164231964141767194301119803674259918313646367852963815593687905510501631785231558624482423526911359049661942871411126071692476276464567218958735765281114062805076952770525944459958969251351112042917870662039517547260313897014956457907693082406419790505295862821428852490380623915591385700718108049666740625614173818654718715357437241572202683100990778763187746392756277545700067637096921151098203276123057167495923793560846075375574391389692882755765038505718769821882639851852744610136618408971845164314501131021641056261453249971207620090204216547933146832553795337613313816769195711854074045995252884963247205931749364606199266524639694754188346081958171547584999924873597222329364324421984292314364586349969039868804742238370123564880288427648351871620002050467037142183403609565482273935715556588638586648439422345517481496285324625677588197990617654560986528188417938989624659332996564056363171432527530021121793789454170912171836470991509583834105601110671917466538714740707516753436276021669569341855960066295002108441590013205463018822619832875374271504919450031884656709479447913403346321473568872723614457829272195623082105258212196441659458326720730490440993287119781033608537397915823035813671603023102133388314581295993456145237562481422937168892631557738343592340975247466347921042694917485984800795595114796623552965627583362904654983582553636365324649693703302647136413649703435315311310858947409539012981271764600222416448565924321017195648532192908687237761890314009489688483361262902882740850271397437227272118601100005140136184429978596904969724592922131145655133200956732339280158609078313069426817659478353460535385652338844303082232699708324209333563637870704032263355713974887401932486598638313036961177916948434887402357521967970775985872679624738428031746470739818519285623024142977372528775987896500267774882579239160863255437458888066617649284192021009650229752665516413584839403074829699186655988557088832888130165701202562727440729829420025815900387554183245982043245020669136442266443950987207931073882474575745633421226196658042979227944302029987630720414068445054913584277702739189016923649657820915665636785775043926520793125451463056826182719454777119900948519327401448836146352772629426643307792806435594221079121416602105808699488080831144987091249790017518708029761575165571162356945992771045961229775745623346895002472916418185224862928037306559395224172889527759592864378583113886706800342907154438839700570772523348156886905952778880232296456422418887269637538235926038847009407031742669665921516351887488660290038546447745660640594831024120765651415544879914261109133484363093672274733852140907020333461656591530375071370913466138217063050557680527735146327439012532928484297895595389932376228021371245559216271543898128214977585844674372553658062544530533245672460381890443725500739107329242437023027517727757053377415166539680010864457274146510917742760170368177568129137255250061139033885745074727838410540230212360225221424196788942608474648676731237979770210078233431706022710608656454599701934632491028996777367184080514986084829402305674634267761210584269984469341355041704417701671959658225015759033154099987869250623944464448559506807175003408405493168020014576336740478448767253735900125937650605535802129785003990725160776951367408359393797200746516409589772370621531199047085099473862011772101205209067021656612141100527028289877173764151113289354807408464424451076650059475164284576855918188066493973550707573714669069267031166016755879579681714308902323405850105708523586151275420454865694242277131017414477821340573393164321764561050162779421811281522969169129091621256726734534944909599804111777242985243830819154358179946668556838632121938993872273844513451006132420843760428086435683573922912533625930034693810663528339214877763731259336990001370612062853464579216806110039755798967595363375728187221242073426572127426363904047305729405421025099808645024850926371294510864568620860813574125889645648660611741903031754096158386104142362837758706727857219500967029277890403713279801846595028655762495138373169334784520433306132291948500820703968412208630707951296737456647474345455112378865450292600011647358300287696674406835860227324082800275100731785546240409187116444959394068997001300984461266769159771079946747058964031401250378598632748596278869005687832819698315048977474509413643484960590307603750326814177253562298531572387656553855841441387762827819623054622059307643392131043475320285880082902884534400348298834364166834922856442320438774917917690403854520837223783416592957734398304599581186232938662270787218877116971886937167202491473330025408044628661077584663825664902598905694488231546332628714108029643543452354242506419885924940164852947454534877147453890113374266285580578336222954485331631663055105856938379655428428391309200154894042470251921712687358188333090232161049309095237969548690119312110131126535167061901744099342979557870062390338109299194904915911098930726399028783530403173183040069552908698714639745237883349794344952557754156751442361695568077550366005455120049391928880635320813344820526002928780713819733746970909544884774366455569309153131534697291610200499287007610981217686466944457990097366029703714861485458052258537135996143227775343465349796159950286110509626295655847104404054456388942282070674015224690370636709623404806364474390460702283848750796892969407373311398333932731216729518536696019149792625154995631654626241752917860543719620049544432847910471581472784278354646375480400368384705540693027694827600344665312515336210426671932799454533512455612092878519206454833611934737138135278781733799978754059529977503237172794661095356851314126022418068073222776648285097104619056693657859043994280168339202977223411191894582452123999460751031988657288911189613374202942289327664675300903013747588102732445123223678208707621518134223825405141040340839121783442673488006810777638227769996709565040558890689764590894933625352264944663237725745784240736444589125183582268001535939141973016729260950743711297875835184265370698848880042454432271037418604240465841360591714930826828564990500094857698419170701705202820293664360756453698073037645241657079288622429801605899136548021690813953424793689142521589026134228085061282340905830471414711550251870668938511065863842726875920601212726815408578260492301313454728200325502319452891837594700455752953911519620241020954690438951714151064408837003375336596475204152119728288059354771441583205318649227716666671373738976855014301888271720269972688588570865096320480852579427619969554256066950469389985008892477980721390763190494758755794933611191753506470655002344712111195194495361940477903188851997084158361596405308190007774795656057688842232962377529086087295188947347838565340176120946155030430603934732940834876234069673267747718309321287970103023621706373318863595070750264753896711925439971927353559497521770172556358488169982448344061892359987664164363720732366257986791952995985468867596594132319571190888069955988162473538025778959729967427628918975426181141496271407382659637073550024795675862926275595587644333599450552920876357203673026879190360879340751976947071930752482812823451929605515642414104918365088090203991814620610808342665627870761555024865216274588247073568663615736123719031046240121426604976886336131533699029698548581822913770893238112871106196846277488551581330648644534330103559845831700857832098176764895717160503397752511017906470432872102201164904732632736154100296715002619811640883450575563249065593272360232070602749328633869725090557937791578783293863927421407459588070967438635695383163674586347588711343774548581429457845730698161339746892278230167174288807646675164813136909627547466083613554174318530564801001616555085113689259756054448601949618935013188490594703933705130692457098611442011057186203183044048000785026879905845585514127006786160264237295185111108976314928575274976671249871829608803769897960426020820343927567325437257731152775859948967118257319715924533864327439241206043570739495062090759246980059086913061044076862827113591004836605026288898999045034774360995766338486363675461935819418438521260230256655857969780938971587532475187430046577168716173673536665725165083416304514778559224312016285243220728727600787430089809991990890565491855517033544821142917222475819044756667501462970414806153574687609157506994394544126247269974778918555721680348317883119376277398686016461022915609548870974192399902487842962079753556281341309604929665968393268881340142051259473869248126371532149528027039742884050673119281510622692281020143623480185241891100033058726634707032916040564332322008590918244136423588116207164582930771142765424167134686296534835137509006640572115445703399555103898465727279262586666844555301897721683774418973069042575543392443179963708769323579980835717525410420308684374439842714728191677779806942882662603387646511111438616193920751476275594349374888815821180312578990099231351962550737698622679190514550978918866414495177055830959462256426903557996197322773905342044913114832138575668752044018838212805130795450965660772929244861274494957937185538242843777658040455935970017228722059394176901796675282763462823083167821929766533810412232797241172086431302979853664978318197529077884610738702823694778602335632022187674659893644460098510224727483828515281553909967564066280961009190511396064543112118987207916308114481714262918910375503452742601573156732948443446269480924588234342158627243660641568633830353189495869290326441405393180682894454785711514368165249534389917242446095337006648785122217074515568477891949701606904169959319827889648303557268964379288264626660536134727685956690468997591930599155178574914636601164778053251551678693364530667491719719819609297525673175695844933804811600181155285348610725922979442266936511851116281042779225516413930610366041767946318731500207789168399727480733952262230648728076203191455926808524842974311347914018330439708177586532914604769984392572885790794200024828330980853204299444260788546069325049488329465634214933870775284815434085189505955722074297844849635445926167235932979172100715875641544175834924122882541989032957247826744601197736780282790654419750221502088174301083085147560886386640691641153542507789462486962606612870156360463294397616630398869328810317733403029494612833333644021039234030802624251788513891399991488303603741657127938427265975023334947303137677546295722049526594350953277630699452289639751470432453442726861385337271122768688380514102386564349855195594965181305137155235914944894131753498725110070661482176541324632569954403542999026085652595182344203693090065620232700843768556414046531195719200091927716612116668600415445697958597131836866571010608145492157650604957611714655358674679633746464402012132859113891534754547982072657572442577504824419243604265362118892705822223621945276395974823044178932126359710544737982090775231948943149224582093952622604170598463715628467735645228530592876852741524113833960057374067139904587970598563785916386735374422635767746948539381443959389282499052045868033912217453974970647236017256272514447853738190982428272985519297803026459599660326764734989217400693107470033333584807979180304341182355505548844471429263495710543451517594840463915472527919530960502210618491117704272642079230981842500446575627359233765465084175906343970568957607003767432224791800737061592669820282346024556049291278857051337279632204048784532686959272561501720520645737052272966538310986209218299793909389908057501171961172821831220095758130558116728895347625430367637807774550200568330004006230875285329327014415545268416951269751503094407353874662510492893171653094749970668889494015034255311677611912941833602430147422986090614442293404366709284063459407788108738097130742782808490140909885829324395405116865226977360232621588106724301325307198520233046620175848353311042940913883593222953871045091429473993895738002460818656108680056878668094759492777852496095553560310228832161566419718773090483162263491883010882396141650252223080241059227933096424684862633219081820754394551604095413808208775472441170175863447411296345764713072354808884472668509081610621741786479391077546002514935788515196239582746005535787705490618435332541288959064660398853072371147512400366307135478740532039914525433434835943587995047148951529869923790106805898985091875224571461581976297634666803182905781041000695162234512085732750806254176138678388210869205291542948227739751181851876488070455803512444369832476460510954684626215072330310061082791109919095279708851952476679348869328571418000896844759736883837268300932334927413678057804623193156650531082968619530858183246601906830617057206813950214160260384389463063220139490191334943387911246913049004250528468404576922219907806539890206604469745572054202999492747034735458461935085637478678608616120457147659694668687730401398431906909032127866767074037529994619021615373705913422079483481815157381491395888821673867123753719444416844125647671554936994964636942762042267349462298739387453862527106210864900201620508910043740575275324138675993486981167251062879614725733204100737405018142437062915206440135729453635272567028520001912469257220265403537818419507960744301334902101266990999079802273946203366359260616164822185934339045434551505870903191956048639409522867515473942232592247166438435404905492643348166730606097277212444443929389628802560337215654423238893868766605376904514668906856015987395148687943383187892082734532173113942758894864972368560634240500925153793878211008030904800126954214347319911107837630456940442089993679991944368980149745640400067294223540665943348408209245817937853978434577419702392255450067282487763877379143091806387127466947359527349395771253054121322100276129724944837669251011536999900877389007698947198163660410990454761871595492623164020697124649358129657615321536607385371618310900215143988282120082545753056979778757374304912948427950911090163375275096413597983872232279005942701271706382902385549184203941060973527245989945556688117876370826928361454863004723832887872563275837169653318460699583148594141355715227228607424400418512910180738869846987396853658253271604546103742507534793609925356497659292463739985722966233290125279271857888487066802452877022578219432827271226668695279110507862133140774245316443794619123041998157867512135378930242883230895258046158045020675794630192511761707589059938394790122139766975317624623420432807901238056012842666462426432181050757678972797762981624730941667061606348037259328046595793913564646241796522147938839619011539398683201827406767507329929188987893946645666156219348272620846798799794343306304730110461384540963547750830414804250883035816565647611135750133280498299381470381471803276416569551545189470877488840876884579847872131574762303479318382897015438963413610751370662222670240563334265470933188492575528294660871675292635762515139742041873052187167343002247411495252267879389377083945034154984835123358176289472597592723064613710101740747378707698746497938131765296515921099447134401719850296111396663830150965061070637030396632315295068295566872103404177663356459677864842725755761696978853023935630137590635609420872935640734909205796766301258507500342131998426466290493375681866429708761848302656985751998310630115286288245190093275628882749117080620379307912402424607116127187565247479917068902720075717165974807230742739648042252035862368632209267187763071385589820964341711911300615113428587077830670412798554783515696578307300196384422452214063071545124969027478200171899244209759790655388397519092728569605855601073130222881571581834643878137666641626891438011713019765521772260480068303892554263693339058894715576405821491255942351231154215718945500776152069169675686831119632468680951122223229421769416668089447940866044351206455217722073778354564061636918076732314293472238677542302807336973585446828853805003389924894839679153196331798010768610016503097574394556931329096017987569546354115803913966762689979233350598088221437511498260943981349062569504396640838915644916104173555964086108521607951846646592718215679434069274209761348325502429286469926063585742797169838186342084437207134089075757812370951365360793415025425664988757025492313417892894660817695423804232867911368871930442625731888142248914012148194688109995326646172575721851562554268757208707413916500528631521115530289602762157538560638293749361412221892638083829536950247195822833840206488449762008060066935813785763861037902546248830308729811861824545725243661061530032972728567450199794373697970470600952727574551523962608360775391177687154882076593138228776593258899796625416210891294917996593287861509794884357321560111012415770596920666521134580206786259232246355467106754270495709584799515804110148397302109229588918772083770479658769844703790233376460988977115382929942158523388684858029638607840005597927816420839618789802957186635330065145766275497965507674946659859270208076123964289417305330849567369335491205525715572955496605130819075392106332819485152260819125668469815188312889654405885627032779569975124796228921424555339784477617165134771910239409614969805574625899378841712303816425925389795031677423892573477252381255746140352951956718980245752539546911548120899843820250778584620061682180138920238503163264237252177961459246585586381035873481234660278875815190969889471398134856562001448347966793775421509565567840591515853723643510917363798168878019551316044855611722701757087591325843256652208258581066524006226083003198046434960733305304061653515985544558102938700147327263399667348006430304911075952166820433097467047148880731018124650602323507855072584329282213195629462667227346829200540417485185667322521366002121937478436501803971872936073357394895931609975787256229804947977740104414703958205974295959574963570169852019776929578967403692789979178899212776248185892686396438591345476396587217511686961565204996105014353557516262197196181225361829464084908777942849862525913073121894272888861473062822615533002706738387370012762384623804596190215901364317534369111715738776623216319668076744970333169096486474898332278638318470623375133123262868712804241200614401365138305061912611385095513381426726934918122965821728553874712280142866404164640566982208193834201684831822690020894302339831641287616987021319561630944708306578690466020551545007817826075775294836713492180170105487848947497831016603084068372647132459836675577173729780130108124800676504802299468928801419584046667728969864546973728831375653181371313450340155774794468703095858297393990187510053350129585898505421092380811386868235272621250525515377539793658374057593668291974402210375664754308091405083974100009654680004583319209790479890646044650182996558367391250797835293002755268185935193044879380625479507490501847856675759245482116220496632388880310413387496275054285608659901319878875915081307550669654022986326364280555741819809794200763867748543658381932081537246820511734979484557848931425244732635189481123485202289695506282209613088418560060997698844836848157787546395909802223602234223652189497605661608093500853779719751950069327489639094477560083108003705843725263987985966006975165916893704875879897671451955245391332607554592178313184283849202538644322590455908528382111213356877414792507567414763155676630367221612341471909748595288230669883409827723528841885772389131865535783697667996229191314588939852370811538381426877390307389287576527007842305226930026054526194574130443515360910903777322836632346022121819027428567824055538766424863708575501041500896127170034173110059442945955100754002303396921671256657650686905748792366179383042718450605747916503872189373892693133424488270609200485402667514062053816497872504596240640968078530035388840706589653310873629898870269224697353372470051821363848302965584507418547324562447667106200326333204808070742468505306478232859993610318769897249985003117813914768224308766520471311440929039838315872921473307914394569939279540726979021581407358448275413996685847291395775835510403650068826332339812870402335967489126634190194987218632663546450620101445092417644011183351616364546248225180270725393286747348350850041470902339118825380919734260208693351380794069789753006167092145930211298275146086220885810233665825246545263254857225028058558743655438648087461567563775798103526460095857912476564649150397887694439835566727029298185367255563002529498809452611334668068897785503585930407509078458740419465946555943630258607254038998686646670751366925437738084308546791540979110797074125869609318761445872521886806784241680191242415232514531276526016929081309129188270370115663397169832257844842192480438595635000099878892864641046235663772663575674660116973152218957196031217694861093050785370044101349394290253984940096175688144241943797102737231513321352062403066068564170919779577781953065253744392790411771393011573825696887663965228578934446327640466804959438243221369203163289993766754650368292376196591887139042964247822164163054861264497067043967908030822071564462593210939640192980587778485260141852787468491076606290730701263670945936113807588196719367727129784423970471745796771931327114801315663262515068103669363766075141123607798388143797344565785258833150866628542770862194760205991598148821714321757114311802782893005612591844077634964076472068772962521473191403335674892103417101664985588668989675452502930668464132952480813828420407718963780176377123772050442334787761704012130561445474949458021464044436656268012104274577528553111260013656776610555933152494685007310791130880092530458332595137725417742095911559649217217127832283557076120159021531140218238164859281882779192393940464651982069037767953431776200615971084890546250000736463474099898325846619872754002299072191067046009600945051353540804888127439905018934683046939650467121375679693517480955523764300446300567031460806770003965589761388436004172611104893212065189615825786609006640525417185006113254230021572722413883862573324037014177208049477815232615113599089123954215190842382035632118462597893620226720310566635246045700378106358101655897346663019449859127783537908216085178073407550801711564620125791387839685362334536572499225094458985748604466185430746564581897949598455725085634864970212295370831493994238339113060348897239323270043801698944759447287556385550521153134869532288252566600476014674954398745903569205662329988030868495168243750283682272817570754102860830639870179751273965612939535524028631673548218377621613080335143011014787760581106108276561310281419775824854434880837465631275258213704611008459926450965593596867084383476280098466144106809823656854342662460008916580474418081390185410634024668390731857225575260182740505356847611563284239058546587936530818408090057891534129072329747451847479519048139090252926239556549967888698031902763489241815782045290053405108171620089579796773076300848271613049053593051940550390568923853748674357592496391133235060085051774515742204292869258140699992615355105766418234672303362996491334951073965878838388192515999883894039804992843750747915054560686270156348883981226928945362300007311465623243097574097018609522521502123410724880319479458439323214330034966455446596229022762365516656085991896608869627543599373495504686526355141289770956095919364426624849670254704395183495643090109176004778533969665544340378624912071089992435874926286836165818684894555018622886967246542959629633442072491902371562005127187799305251890459322672698076702210937921794526275971548713534681734198529264617464292027133135848780302740755430771841769855450517731503950396631593012278619407153562170016145183781052575325494432779404153933541884861702889128730449910269705073826097457550183880772900921374930897520455003943816893417492392063962463565510470258528181312664733722798119779588292622333516216310709924448279661370511808279835580711040253097688782561851178754156249358848852989779031711078103685419382221174500140041248183927375667199003842126012865541014441455002595235488996177986017326027899737522148365608690359000725499515878227397684500556842215245263940770799548899543971001529629027196141257523822584433100960892944872490210003590730674771970577631354000840568339484237141787813515285043283102070272206904708591363552953863156404632384204923033391923569736779406726561737982721029276212006623845947310720404019168697939504976934684007991785294585322377060023897833152559647010977712325880689983606859183754464784887972315886629778974372370002618345556468537821283720966422574251866974993252720537359242693198928500434064203644128640033212782369698622333477124935596445509056954285137171386285594503088336503761508707958413066210104541867926770365433997194877224112821417849021138105321536554254838572526701664216103525718134857020602834993997562733659496794627804560029345521044699788054214437487464470637385746905832825369701966637888135359219429427097727789768597843956102301198845373250991508881797416384653540145804094832070622251306624818710406217001054295359353653327120412271080562350787471699429430678226411697706745173442386920197306260035708666300166555681522866631449908070027932857684039176996299158271007818953852224266463418377261491153516958790863885867018095373130063122132698693047583548669970140594650861315086790563887924404719242827349032314275216972682446208778134595130817920766835454766268743808186848501880501343142934806968627541010983676102747328422984364875305668165967757064139439792349421540028140754970475418165668874041097176566044426475124797895302532044586432129235359687788001924419241602375935560122007731400803077774562318236042610542483109695434046317029784197690547014932906205101027592287116696005787538815845051318256797742418556189259603221024642602409364153083028721499680693731764879047489198701505472212508305610954565332488693484250440552409026761749743011598255053802759749526951756807001403321654943035800793888077666032339170117423046971300490235307387641441101101719485057656224413830001490125449752657233393750422803285671140116538505958162378568062087181525741323448666012983606507411391454406632369186611846012520119609030047188152653206470058187711966210547717131059734431929961836556325152841421664393310002039559917855372181394148824869092579368308559544331448919537274295746607778537366824012201792929706170377241772249888003873464609004043048987953811477231826216377065048490875535033683142863007874986927968962965588092279627701426832025184944738589460507580433480200889572197972030188614230622248306954584828994343587744744784060643798552411725183039518273014391292678188748795179058216612981797206619305363487980583789593965339298083420475818475787422439299142465763052624350905688314061064366191021692226586230851085116609683640962512946666192645342876995165437890253826711530192615111006000542034820251456485454550817713526194795966684807888935214047866885770829750660419970302952279306831077176807657122808926874050213885601265906744049756632112777971334473419243600835145589321727777129064233248442678019100698180095729166396603074034338042019849598865908361237692526843604871403199587595256713928705514411292903830741074147316337047269060769414750441673319432507141537352505577849234801459239178372549620977967002505181000383218071341887355547709034156288708198307027566251484875216633069800578537004990960019259652165445079516998046466821553945630155855207384797090541205474410392683864778218867779502496067720590632598969712504673742436647709907073571093736908157126457454169567158862458143231585935332913703970763510193234916863463035682188589726547804569043115743044560794311362830730212682862047200401280125860364825239390871205283882901593631491823588967680227846986985112084640928928148507265393146882594977794075184987700921668408662627921142863497477703042275159212546348620780280219279941655333499545654107909305048548305172200913993021256193458187005954995792744327552848345385782574211140484282376782903051473641689241977820308391786257194512717762979536468710801498794557010262891131470299237472209303867296354680364851181068451201150826557583428944024932618515469760443171309417011547160867789386340135732191342772151050467205855914293965229689527117176174495163305389716469236303530930253962506996243836517216404316413196469055144976455218466120515261652605024877417770107188436372834886968833007736092715806210889602670536615946892450953060155409454004424823246837493330452242506437319367573867291862965281239316144709058958020405798630913716694699325727279311336069471027634398384458999705973385468814415877311089627900009872193327079175090796996438462401183498053677534206822383154157646304411827442173606033624836794406961164000314589655605541305999706615553394673710610815041614560101759461066461072266877563873182325256427897084266818295206085481987403237107969006236314828147237102671122208392458009783421147237590805489739330240387563818238550924097295621975886177999095093974985756887826662408466813019062894850380546572710514040796947344550119910179146403483167988592698695038372972883169957160374791716596088243712125944531055700481081858619202266605816208864978756203678991750136599231502082838758668218436667069451493027877563435203502224285230586069777145727626307428211986287249506200290680465939681590295316599474707691720458345102105865510079520460723454445531491533330371316589635596410535977564879423118583418813807546399674557675754291297033141989470674334448609919940703069220764135815117127875119875251036886487862091762941203670788558226934303740444466635573582988706816403428384053049872565450167091932958743602054360205171414126162150236106219847128158091379045815228614167206762898630030862593182226295963851687873086196979265645628596837677836233102807548896395294114779694904777908789470384506046847126871711369140337272376979675449463219660846030658507070511948641109320253976987913669171565844858575902787929667669315521256705626870539416236928255003718917591244570464031379359268829128170932836396886298318080354451431276606795269166922539723690013017994567296254367900829257182203049827262817370845479079211183628946509027529057758181366293390141198401797649427846405406850158270432704810705996102051925675413892468120553871765716448012980492214197756039597153546438453762150798969982920788340255038076957400507889020640090599668656098726536748566904532138873645981030883569862114302583546948636212500504822236553241570286073341884258335550377200010977515420966338616074472651614465432024564836663278008112728765265757448405011232024446537439155025429817205188865902982253003777444940423330389352221965852858757936351766559302286349963623621134356430654629341051834774636441001308565619957133446179591972273634195986136985475709419450059403568097325108908551521285952194919549754429958561349527849188234372147274211885122857554622191412132075232670606172681877073199316605702000606827079315537223149777819484715086612024369248490789723039606237324226027268189930329579883879171509978552245147545279601855249456085204148472379496963717994450132766539359765245528587870685530727761757966781703451709338288645629406691009550146345276678768174904255597096577767651178459441857862931195035251643702455461036062675752302982385161866364744482430751788956967120834208156360701007577296884156357742748032858304033303900162721220234805587929452719284689650154345955099161772714411946966208944065270070130551130380262954041502193766719406589249345154147593618353577028627473018816605633930148682219338708954142251656985135871585192456660763718193223130237129418602351616236815352540730523923686323658436573416042901941557898558876620398646882045753625958710036282875548653600301551405603711783380514667182707606024816591367677414949191147482825863903604101164833865903588795216471338954648021417694807881257714440044920646089014069793507882729250674202712503075546504758610287243225892090377473601526483789134586441704543256173633566937267503045508561049282126941908737163410458154781703895315277351429522720849803921828448910764242691098030461993745866689764127230591931277689143150768084833588907734055652245354642493491845361222001884319290851450404319500167661092726387614887383940631092000367597148415107406849927688485915724234574172083816238990418907512867474996447947093863018197857146468469443149485508352497119595445058457784362356195570133010534684097095395524590796191731111304442385092766280934680573141013445883310848090610534869727836947435896352059155499945289381408307543208510670101085487708046626310852040593734899500954615568123355734074800781928566675436899128022770958533201952062726135261581425577662459646881645981941479815626921858712821815580863143625952111338379402209118010308164639840067888245808262483710095386326876274935294552435781999335293063375075259852452986863111843720558615554417361572259326539707777795090768104329558171809526244305297223053638932339878608789440206032455157392427148679434364111620592636094029124217551536501279106512539544631699789956610264242297376351774852351966186068339295332109604908260395804613598583472114030609075504076706637075018013509955727260665914325721003239435577623709101076269615689555742569602757906935976098026269729872043231315003167364384967833328454454112595613936828917844885393405653272381419938207113865461616897149353548993304632905161098554290023630861172540138712771312737571325573647588696720891384110104045286567797015197233246822302574001239152750909343623909829426511535617016846187246076117707511639526924380490541930700945397000355702549836595990510203140932229518752468107733607644898088826610248786748971185812867211373012268144235235075218527598347973748996440922292080881807066247384679970054544593076358037790036855874792373136792780355475530200561636247963868662499119269921185422260091036359581760290459263563047513628554298601205558714682132013164846079573825558934245535801804488073911754158121472024762320359151241646522138502265197856256053091363540297929941191373254616394128162942486113993869271739541525651430726634633946766674246455404689507958638355960062499991722165631410889299023594615018618694613421165885828315429668274212053543399636487723848135137453199594643286717545428839605210239421945072865430961613169731095122042526389655517935593728221170534763107593025912441621195502194445767214125151102142875134218314181621263841518692793621522757386362180241696935337341348343708968872071946647112499494114768576005091982967912799687032012668863048148701831653224356080284318356982421278701123920481300808024273900732094673634820310032407561409430744649941232382795101273394442317478362206052261809931023825641863819454951692479833103434768597538074088805003910881123652514544166224446008033509049033860701561644891168327814262994060017623741881156520481805888758470460606234339414423848602193705574014048496076869976095483147109291936856708857163611710359125375714258665467167720167169560995021889204789498723422295658745466796680234556924552116405564147137899641719755550402475323256496411765367210892941282650870506915785190264522542170496316520559224554804396448016074660264043873421345953206726753387171489149560602913805226414090129928585920130509776752606486782806043309963978053894273785113095182918732780248349357217461677304083767191247389070791461873981111707924964065426069768021237405137761494332308803776299532245859436053927275104919982489713969087719824630165286299299568977270435655901748643714598822236373780281324969914547672276152944259151569974140064985160225836431572494243434215752282980577150783935239257830315261027482623056314613203646065208896467337491329100977330219836218977842074144587957771501479248175557567399627186384678818073544578763859434118130410049791886068484960038033987384073134708948432487294430106449681681815354350477316580088557877270075467215240797542542216900150357485589039675924166117311653989718748764802452486237485631186092201272123727568003428216349315916079439312291624867633697450497909497205803578488381033130743864978961353919715599391343210164813163961865440657338946680095043811202018989719149542201987136426222377641353227584748025609169994709095142482514568097533377080658502747685456425654159421292465964245041609942165888462632269000784650983609304674157813815526739063772479444738095422727107601290513638582955090221955849502511015236335704664019783840013018812535664498721641509716799938536695118701002076556008366752108228581111127623025923692363248633916906418145939247661953222741013064111978183582120503644395952450462813098015025593258396255969391898420920495964663079814029342977690184792089516734619532875514084586527290933371373026315406416769377007769391528896186367341925908900706372772133870861544791487959347852941959547792518674553514679670906163833292924430167895698219048636779187402474199638982127696954411515714500653698435673149933259145824680527782603526011234465425612583353494807317940769723619807580136521770083813370064727128867116525096931415323900596894973798881072527773467433948360649863993450726932179731525443625711849714901365123759714416828878806919687867997071509620277752266421664578861923775983249032847468530686807722566647531133765133630767312193008266973961593419442397567998733081204161039638823483142665384165825946159243456295580959562474955830648201131992858411299544990101080335805593586567947227123571706865355580764639633358949938465619065813974285145636650233853906324333350008609571673659189366753675241010619549075883917974659701473470923927807412470255451742952223913063837233514951097685270057326434657166451704590246616791200663361834171643313385670713886268036560411698266344861659783705367642847442086093094538832161986083179901182274036545202340045183074703188302312326698998538496165823825613509102733346269197527950397472710910969804827923647651564522618907163365424131605483737031922395695119142381596759431771864044675587555695227982684995159149664691550764479958046482405742881057948229221030410126397717363183479001521955055114274075613829332427839345082431977571771907796710308487598731026432193853557223233449716912803919683833730721245911706314669474843942105035691153311555535026788142409485138278976117161024287583878806495655303727981316579050897849316588265133890523394784539856526807818799394432431493586526517878114170636271825862027975608286276391612071419245049693457052300162126400147842781623989332258229885178257637752487002570680780401181063768744480973461573184718651322619403952427605614468286482203734406231128184025998984360209323287142570836073750792608385586806119002382884721559261603352750410490493960029835809105356315506041164261831684260644844987830928657692078804268265793716641328772424635846955627938788959189136629904403027671885386128822409238638874344221158500217903510375286413558572631788776557252022526984123995063476198188037561512078886251596370451932813997151463483929940345140460075907993690408238895513835697575101792626789280590689798667282386818769831894887843638742699477511759445393999016243336836943657121378034151941338771599216245759486805696735827514035328306530584189473123746284607362569949451265140440762716147515963044689462021691683226797309453503284694855606607503249787605053629834105916029435870788150140152703973327456084556183034045308188077193128183691916906265570000723401985562547761164182049866351759511340485689744286864345232440528150967061239349535883957051990066826918356196958295029999413198180636918457125893904933791656228263856315294382385296617100122873564614780133099417540433994819186628469301735202192072564195721656876475466734368566145140492597753635039133235541641601144158113431771006049848155253061397901565741087340673831232283274003228915325710320387295629658119015139653832487423212920232861795039590980103362457136202918744069128193855150188303857631099098671721999846069339001625526529013343543288322640165552109573481095057097222805098550930702985732652605871284889455113498121411866656858877545164433174547266454049780465483966191911300174496153527415350389007258980084114897198101163444401479127192311020061567288735337191556335514962796885842542186661535281509355420559772471239598158090085702838981607648761852820102548284870225884237809644239911187490431798970355107886907339569932742089340028454446854191149034162148024545320333522114749576400620622538539127658210045926934694986963115957774000327661526986145575217967237933096827180570160294802016350119862587484224717363338628037972306314771938784274754691781908264663516109705517067243438044986445238375974480211796055198356447566486887314307428550955229282578963683968673336071451234736541942712394634128848017502891826803211243105362690771355552183647861863443036166969540614138206765255759157598283504025556809975144308364443209391569511535584576900723051295595555984550959020898474668311163386899846635913996155102150272667286950987276164306660050403201885091993666581971201298328082112484242538911315468844833555937680946520728571507955285931361068159909681753483113488860815981131936301896565115658838404460159985066493622769022101163317072259938275701088346923555230282281292107804515117407913519433044646146599472655800525812580740064276395065372155053135359062458826245920109255442916906781190658514994557348022580405632942159671912221531504828335807853495415113726212101957383293605691349836814265621769850969108169683187320589984143103821860212674321106463907860093916637220045383171962908123884928290449268994873029052925247368220903234290060140907261406425501642179751150377443489354484211254641082619414202632649898723550504632678877210163819731820703698416446331141173542159599865417498119267411899954157209018860281722051528923471550728887184790218135345549060289956226491805288977118777842493905521064151720755811049835564538903891260842168638678434125719303051647567688188109903287574668520643554113973616013223434786307844732788752081746828078859981195891981365545337342465404496208367421633009046362649357519264224452029189694285316589206538449843948809524345622116188765665290432650141046305383403292964259570219237518377341431933521469937607977847981494036439377971344215618981791703932025170113684413213539728336286752916460480775268642539851549481916597192971274414283597601045708314733653589098602982945347337854283712542468812853351346888375430826682343698313594187714347396863547096148839877587763328453061566237687407199169183249059948906251059043966911421831603537842307125997971658208840475621064875530272070609090300492125763059084661057283570642526975627038696631003298218649426286462560792631006367926645131280374116819651377028185914596737526601791388377895996898968165426556333729789277043186930300481918415446201730836252739998729632795105215151230116052939900203944247663872548710836538328282239859070610206521391395055254294678712386698274242982507059121348924409636175045093916371352169960571050943112170492963346936445890068131523494181198559472523929360697461322518895139843784991727492687523042890072340331992027992995120802403519683044142108512267212421708303274565165283499011963217145975109785592338198651453354494134568700173400197428569160523334411232784350994994935810539505056517047626285429786145733842338107338546555393895259905977207363136974707901052665257270752093063141971404268010276007439856458549966526745527636196976455780885709142299180286360056955736224198459477372381113834486467235575113290818754331020210683057406219799042490491841276823571580192020249183419094187794197765695898490944907085194718439734607229936450319817167983782493545256221136717839116649417857548930782608749774096069860737304040971518992492627154338765887038692990945393352911485012467597455638849727744795275443174874337434160145095368789181741402102718074602578505479990876974627657212925976493396160510494451961935789171716009297696913309572008485971246852649979277166333653853566573976415639328166230522121986346366598053517077065100945459283758103488121984603184211268560778466447806831687361877321830432497459743149820452137777254825668459956316571284821942045300988800084060272237673321942046532797356781903496027519886726826774358035541773082215260533423850649989827326135823458676479891080935822615996846042903956855511453148686157679894478935098050873779995680788438193034853731230144787076573007162517306927922133310566910078717737032658961604185098210223959649900253273205675659073490245384383379878217420615463220808880191433155032432526286562240073540502215164010877748238507172844522735162261296334347370943985662819904594265590503703075085044024759087200411756178879249844547183408753099111972916215790785589777239002661754267998754131305148798483106372712037430085259438917742675045432779759862058288529651806906430836099666250565076215491463586049845825521819637603272164444228893228062269141724016736693539245378247785416010682948575488003439046064429174586095801482008179206490912899851352543438925002466183419781540192981723531793746856352566276547356313900737824886033029883991232264680013815087956487236317992504304392320308320412292941627387562826749493270408510100641144758357055362079488690378837251529305629754362490490880439320305325520370571498501035386124488114615051597974626214641011323691029815798416019701416431912259814595480982864316709151378625381245002301319002554525808634731786859426407817909701987206562254582161171822685630731827584579757597279857942550007959719023657620390569681996539844974889887797766312750189676465794316122005371664392079981515331242249185527561414371760886440224407572498713519456597936457604204552250727734654167408225570641428889602686938099181660044245403640136817617301470733801733695789825778022693256882106720758592882760278605382417287644021136793966948292784263339941792383423089689778735492236335409486666255445499545404587217228675055932833343767822123280050827419865120540972495831036227909489512582901206243035538852250858807647056502991640353437234930226590664532622855257276607925290889678620251907544984211049554325570765406173450436659998196987278173620112979186626930513993395416438182939136216342194011570106190901842865097888613088571788569547531757213367553683444920984337704727696557327446805463882748762016043663197075506270324369851539304631940605277671959872083693144980427141669014806843405305021033534100945885315988922865496155059288009301537639337135156376445956882216734797462120867081660493609060494577329208320888241334005211598336292911238728770348727682846358824103968487513288025262323584007902100265133943660109991158216447875321489862990869953053636699200449452560686684939256437013819764083841827233770123889301056483711711942021142984490416879094582821929348539932299781571173105307000968323452782833888062883052911306722363686955848475998404539838752738530912428964350207610164695311386155955912717895848807611975426144344865491901091418923674373670103523020709527005224220175706372053096546415087050301349553695899106625262300730253246873762189409203403923281020814655535989961205052609114473963974464977513506955936154573457067927066981859205486197448609816800183145566926685819069580064821310586844718831701545883122778044163396073351505417621775001333878218556255445961058305192278800161450677074128296776315548580276085916826220337960597364380823080803811859896456455297794806343770969691116746116409466902005498693065774710580881326283057456901750120189378694708147203335947253238487684536863292384751832259620901006889543708786786212269472583125832774865958700861243661674389758405243393103573184518334221411287973143734149782626724119405878057926420673598189590718215091994395892783740672695011402703903014590428745849529639074138230765771941071911634914956280391381398894372714237040267722320122739474486264862679957328997147870356522433744204860597161195616207053551210316267926781246220792785860462083770156218204581803957001226126322774690966742735660034560499996769391304522490527563321904471967320829472479537934135260237810987589553318729975647030558797957713452576673634302410064382562341064779334435759828549214939797079127721165368955172020527162971898740915390776624722573404490751889769603622727726668597432638296052974272181532287884664693996971942943877352324539088471599456750832839328884291005395754404589106485898543841895821074486038868529693875412963308659339218085287923825032837672336661451154400479031505578183560345426497975329413050868261295551036725084195552069941368904790006623359957130854157970136785141070327879224131470095498422251074620861374350770443019335702237297499662444176311756517252147035204330476710076065415676477298058050071543573215187513191520885934356704276988730642402150900714976609925541862298655702552456930830090343093275758934643494711422694881061765340739681587537730450603778900518234850305363358077392179290382641188451346141283585591023264029007476476987203590731550309339419829169236904626573270785782725615008710675731962269896735677653883832617560619170116999119780083015338606342178995491240420687306364770684913029006246425725692976605594967048219409049339113945099020698049920032070399895722767112160000254727608916018550223666735810041708403906213376532377757673193753023396985516519694142732473285087126060752350618511289983635207448836746801390309259971951888487570151065273654810066961811620069395895391907121553217545634667586568034151491005155325845484026386709891248694228140039779926906392752786930594028492057925525393040159924248811032983193527743599020809360333199375289169276103308739878745320040152204666897083150055935210841212662013781846152327552514204541437377391588351924934844641190520680431137190593264772848894346378873817404195435506157829979920790491773142364974047659732536791783003976688680133414534608350545168198977433316157323320300126683633239530104013497440183640282148403099754131737533885754910602778198906138201019075570031630895936476319744826895685668698966391919903982496224421616916229922549722081825288993587502272616312098184803248505472555467669146085507453838356466283032333176950158194244854389507062536186040399389579082737778517869480748888384914728250160494939862491625916456731603027082549489789714002512349759002989125581413069533279086315318824685192190814073512952634019748850780072858122271655177793914185454720020270096644512750743236891941586244024388062135798607375193870599671956477621857401446868616483003899949351913591168876095397832155899654599743553872190343218210871414930570543187604416691244597988305403102027868915293062245078650854224923756448205792950955672582934430911046333183908293370571348347016664947384193087320023591558581666775664861244093138443367839044846565496996976769793108277576981941745097962554178957519726663559995728210705929502023324466761618492995742339102691162631854502352117737659255810925771600161552059275997607672505795117795994420241516638343018365239601109654542837387299949834914437674343511899176763572305256846559852091476878045998309037226198283186784569401064302288825000015253685818228867930539672475707094422152957408531352149536559276922923448311485541579091176908788799965388331247927432206887584525697428067135467745967769575876301076965505589333365796934784248698316823974099456775477005160019679068143256899351350128716323574801018882370836007670116427665928299726085801246258425179754520148815619942657852004809217400476126946244953153884543572231876662538878656450076267812456528546479049105198481516022175670058884830491809661728037420997627622238826893568890170318642102352182375206350806804937993879083119123257437845920679452958746514176579760614180251270642937795684022141429990492917842655808802484674291809851407462101426001976004189035316135499527190108660610444388758400376918770098885450735285038138325708445338760305002793763063051893573459164500791523823821484881223578414676712855946300031666031135652598170207042131020001675004088445503280201559487391931436634269581667311500251287106308119762868514417570984421802329465487337215423383401571696078236418780586367004848109191603179201497972863833068203461008722003192950124105311911507688622422245279281669651778523017416995358899810872332018368789291958336371314031167511203460273920538242509167203252602488074315465191685742340896091387353714453479157655577804058233107078112231793667248667192529151044292148828749757668292880975248056986494505716334640108582281367214610993915717775777971429538554411350194959412682816619782413049196515068600596860600794538282110139426385458278255425228205913114450563995311321909854711208467991087269125353323959230726339547549289936637939182385833884889112891966735012942674323156902271001576917885158194460051555421178951437379035274373638916432933462620347614882539740463416986870605950834659903346937896166329731743183601321839046736351071362583744713922685939765637790249345953697958816443113513449105597779010633625638725273208291283484537425640927090751611541299727234858716350476940379103315482849925795841023482670316762241456839461182734728310956834551110714412913122920351592472451435816177035450936382686310417279226361668377791831651024094818943508737773279169349252808338635291838558160667672338573663151116680435343473533236092972814085879194996234750484491159012385547421247888093678276254256653685645657274531771882155842940283355825941522187186270603384094738725594593082592717094171173608453946787880742817015384737814423096017320311916842840298140079960295713001979079379195089581436868244043899424530927568023824703872049508693297870786141212112484131543008421955828984823265190784390795107652990483792415804536502681052774876792566409424518934496409027589703573752136084484092913100849098407439678771043539041333346785633430328566548333760453127719693135172938736129345284888071978016226327516487672541001084017086329058498686826989329451567568542705016570220377214377745948961775559474478853738142081451402661228607951294478240874163973775000648698470588898191795046811056604051719057741753117208364094396821273230457852701331991319097191285226192373914163136710012473633870694816955587030883203689902441014876486577873862988262838063523009074577701572270659908000227701210480116703507567253964954049105398781319547683795129742617393032873414291733961855769060038132029926885933169431424033349304981075392012981458916250270561170946552510394190116175204291429275991443701645018290461435402512099504756114712990728802687669078465790117288351283906339583747362452902528217902991866616878370955341424968049501341879447681697562820582377919134823919033232195527677288625088906760199187742989989122500027749720879495992739100719550548146631464724187987090230129950604686151657303209761818925141364673305447454487882996141388706689130000173111530012627401296360154373337147522482184473471554509797527717606555521096262486297066040290809361156647297573473512678282958039601929286187355804458152504972885020744435207252320763981054715585742296402090995543105538415767181674305463898042186252328223535398823645770678525212106059125285959056550431687145248557571439338006303729602777345814457937357425069345974168958612518666585458706892403895644057433523325408007971806913567952307330958011480235947396735072196439444381995885137888804710105722934898112958548910806325351430489537452226500550997835710335152747036010050510679974622034072409866307669216935173426211159618051631522941470346192523214933072564148746071818166802475454013849209910154491421678766311480993205935873603643640105258735363686471002286700730757212377970447964661215710586455704039088030864194007890082647183197523679344152158961016359638121976187835347037445773123332482971061752206320797216326103538920018068742190229222134832729330282952880032300507634453979470759949230207178096012811745707193542383459183588557807260134931640711932732972860844001353198039295433914347421862692756463997215498410100616325211660434957849938524845946644084494990430764083561577957906882342553539110435010076693117736085884482523458579308819929639335101995037611643809315744129455357733116629124186169445602156890615253754459148566596150503122535681148412951127024460983084355072919386058704540971346845942748502062196118334488534894064820735682305352706955406838516260850154833402941012483553130893383462383560575292607513084882577952726811413466308028310732320587253390300631299267814869761034208611477649964037515396147313850784127547649897582873548091941746533547559222059030166294026731663218150300432022447702023812792782054385323620628379918993763850792312164738582513590250298297863643187347604323594396462394188928362065372032039795627893932958932238451109257951905308466843878981451732495364683944850207492210763147997393452089882280438917748895974766975665848393106517178590695028669625792759986882519675119534832990252268346068770842408136114912398844895675381764360639206800930964787001225179842104119619251538493680307154797459186741755417009794767089913829982107501345548359257807748292203603817527093422105366638018939855582028390966307372397157553495532246651291718700247289218324452001187540295867103328845608691190917018110055838639908356516024653366485803625176416831005583705627014688065472409710459248591106325391540278862296260204625724474859881827918578047951003910922643289107500128789979972855488177045233367103265955205798287187802669848642709810732805458371008715819059586910159065356429319694304536704734608853897648016215985495244311308260730654079218517923429392759279310846778320290156611097965895596027334878245758749152765467083231684349442672587320492647180308350966739374988482314600766194723860127890931220037227695333386313300129408805637961493220936852244037863962866166941705442642852043565870793891844727637449902575112751389914148055322513554976997094464837017757907220051286906501314248273926042752010630109879262617412188852632528153517231420188622095806159301146130924309768154303108230910702416123622028427456282700846732629806082336940136014253994392389734321891869607557421034327336074580854285778887456292128226465490980507113800435875111163977495914200212987908725069231585213847100690167090599010029805780808025466727804209936686704231017910391277808866224475732601510555572135253569529081187100236519397679894465545471389146827035551877071121947957229765537154250444521886195320462065909674364339074871073555801322602363180682637696046955519160215290807975081216995262243083605374354540218546159259446672118234720839286433226822177271547143834480978301330882348548360286689027743115768237500604537551987931484830112453877096698656809032314967395604939277014325284630226692970383881162710916582409510182537019443330444254151324738965511661342354951218535472114144710037990389604567689427008213452388434945794820301553075250086412828802595550063705645926309904067154932434112610909532858467696907344989267264926541065213314056856859659840505961875220536371862166480107081488371826466135223329346498234653526296426637262731871258109082010000748998911210277338958412981849994222436911955700041640415962644653433605563098238981357006125439321359262007157359880656842661590118738275539734552820449555335941197133106887651056429635481497746355983178797806201986817482806289861368377008699423165104157608132296343669846205351442953792152425444751288792382022028382004049486060881758856465628477985437665774357751646191491129251465182465001397864892965114571306032051055678847563580263164702766555344507378012335754907156111937892834047191096372032838357865366476262966667198124096652283221676068657701625664990736475593638724749446131879335581352855757687449355335248840043244232213528855990785424868586079104757311529699217211552852948007421719258373506914362258178098587863783875036583211765808404266946842027586755519768148960573821186059788834954958820939642243321479902947929169390790249581060936849968033145576166349988000648193895553360175092855586454043534128841387787899430287241959551334931395390670803611082907841472455535504219082967216839705127895747114339996484832782356195460171645028027462924551438291487238171782975907975456240468712123137610822658076614881284350103081130555212146278002801844006641458355932213934988454536086132769857405795013462573381894264208588908456417043158291052213634140202554280182666948134790175191999532200367693586209242272281292670652185171302002693634608565058973201849899815269392268044887133051854488070180466734594697516338382386994397833591711837513344881846564142539605344256697254224538571349005132607277641191371817572533473908701993172574404410366297932310077200511292309509855473828732347318788338026146370323127630901166832837249935625694116009602812766708658444375583591960205901715040391407218488301698744314666279621612452238357099009847966056198476987107887493399696295971354262166634944106651006540502568440603824782129160291680328571485098298726066162383363118499125812934706235340389554156101903943480108688210195304775668339662615383762269537820206510783297975710014340316676268353905971446116650155602538050554454918460320808037748537196903131320517560279648612437719413904772392601854097133041771045147595240591233278801760834504759308469704900398790377597709441253774946026112467595382320385042756072220066485197507306218678203325362732848673064035245248042000302397268067638064870429145588840135647242395891906850702231106486316871357976941734437640608442762071498803956106449950297794586848595356530096625809562551906748096740909179208585927852310113691350772258366518071646019921490274826982191239327171267380220344985110552415368920100961846004375634634892495418074272245427176258341247554154933010394839285992281878869242680041903786120991855891826370958484164964192940460800059987177226951996941509955576964600411279406357561275329201138966754550819446592467494761239478345233683184786223454891253865926404982521503626485358289764122939632569356688848733431786038601410529146474253794571638816643733201446262248939097413476449116705253386145480348056238345070779315998624598955227702875219965172231654558297377623725230905017782233466290632720531687715069366990068102440460844589724812313448103371059005240037928195117830827495822306184158762649247898442292283331305053148304538422678913036172763402168612862904908235342097160247457278249622326083771882742753629989611023418712697908464902957832908376020853575434508401938112671850399680383328202714356927576668478681271642535634079153254213800276765801059490649053220593470799598159216029952742879714612829100334742452908747366742166596000087539269685789577223506327826626517430249021375355720991591148880730577940903442715171926207999701857178327893860519909540508529754642827671585958791468400416045808512312689406138098573695353971005449944135193010164304174969905930442600702624995003194140432460625309875972709825937333787153322088828429625751047657437176655639507660354253122607915975623638358573491919873377491039990573115862428062166003383628815481601287906765174167156067721815549908215602007053504420745945735105277687217053749539631505559927453409880898907050815300017934181141046005914092577795234353753957055666623974386431696349125812604883418969598037251002387100860089256477893037339598721293007306202897959088814069969284485902471883208443948547038026223871764502745823443360008766867536333889207728550149454021052686586777526293887583628999837085955271155392966482996198560417944979851611644243803055110877978798008036833224881707103051976350434830347122877106403612420401381982057981308024680589072680864792365400404137452164722736023946330451534586200779212220477436834656505926597511779738830680817679195158696772752011602898644504040834904902396875967802359023167145684873695766582755521196181930793840019332942309763235290358289991428042434323102585710601560671854450539157081190893152848599737174870556299660043712454860617239789061687028357278586294961863014715522970617409158648161781997257287138467051702141389477329696609885963261714336600343137809655256819487966587907108894630851364103825401276492464395342478163479005713570610979995707008410653243530480390332491628476249513215361828439776334120986929601837217645288891896671397728956574911612490874048761274921908329584771309674801479527549416307721624968177025441618766015062116842487004853562597467073412925527042868676461997235336581378226904543833169331273349021464185801063914058841249584173513990705116754036190713783118412477955131383210695888122386720716554658167123652390849934222087145885630879698672168462883444677869201954283374517321024308853298522545766928609529983211013098776192881538783150837699521018801747420401274716682265703335036484612580514196170440313919552350936250754661159039538022403581862995848202860522819850190250683618844361016612387597216338267407814392841015415619373071176564495206034577555139234939740176844565959943191978184528764847803794002153004986910277909605670680848976327972681439845293512877612547563146671982179155119949543680505174684282927413337951537823433667184716868297689564192421047707222206664331481635607698593608905731612155949386267307581404687642308388438717964771484285154321824331851577351692671077993905208231436570178852533754730252026698114791756642368393723102014502306585680903653001648847810221542623002597336476724467369369956304896253063957998436316130992854059320085609117068665461996344827634764321367594287729890747923969637943131303286912575777022074276473551544621068941692075165409623376689407140467858694523939140439793736256596875146977831415163825619809801883961856116376459023766630115258361004198415989351576470850092203979198126706662067468764459458478031741211846768924911830169504813366263734486895672500251148283167897437513449579619872335553460190975391958935100529021948060871012177453452119321511864428049155392015059657616720080727941141055399080970816113848545557294088251772240104526596521030359298664332012790579774463054512620991642721073494433433216401237987901895451368888382769235954998215951817619623283772426125477585934490801935879813372684464708252719852885098884539024838987301073929335739581004989411457130502973583434225568763580516400365581561591585696170602382440448646092910181507958561556866682049975995358763094530021237596300011518562110035835531267493926504129338441736992589894246125658198237506073868501918021008208927181828359614811109508646936930579082250454313452403271554612817255026934359581507614912036608990861133554340356130326518527107947915639671443023674004900728981978482760984239054683798141229995921505105045417815467216075259555020022052829278202608050412666314550812372315799353176836921380413951948720169667334762097435067335180474417238026611910010783192148291874818894655271870410175969356511131537207573208924658300934110759064247979209790778261474945809497171957015295977104995617299771638979361522359621594530759844419641863927684141677143492034884612521423560635354124009116275254021655992139260169835326445514192801951331119750937322822603124879732548761240121948108105099562867801256135283567101531035345231259818543098168640406823213598330387851164146473561023780487743150058994235287522301935598542107550795117478549595894540803466957606198761961097624448078471619967883300790827313528548195254071423540489958685213995458565931776797607105326300251405484292160122768789063987657959361314469929412111392402986670822287865195307361422225065899484190443538453717667362783260557261823776982033381368694200271242596119059594988745618968980340962658369496921349110692223083907640169056378526612975584232774133902826640783374521551761806352058792337220095473315146671925063360198851263536572747974150716355253136101908039192716720870314446156534405194955730877477699552411128722636696567813005875911930525051423880724098984112402076610431577684550761967559822401667520705423860403511093401879841693442786314944922833896459710610779261192270917281264484199596553430358301729976668029516614136963281358440881777585938781401727986668674233890340371390935023446162197016616876592924146870054366787584500759927110738929426750575623218353542395271839546178175771218585115675979771328171448766998816089269647581243858379674172924293271847192666533429640164951365342869471599975923046553679778081162157634763730089988183148804806971387511188988932058059394799497177278684056719591794953637364667618989386657184822548182984193296672203686829981379614616217291870340742260929769346802966008872622321337574148040679647619672763245907107432046820030942665375964215198991707473355039005165908425061533000522101030886477574681118249688118052021322288437001267391902339295189871187132926271596233829305916682578234206011935642478391467232945334983743443221758149993114077674468522780088778202736452155072655433328804634515915736426828659829500678917485756172236331390272370433573767078721303111877182758328258464048311676317293138893966218035126075124808902712761847085102125875896281777728050352001074873812294883296672709370177501634517787126246666351475848453115382252094593809625341653080669974235527628589651883636601592760136193816895694211884274673072561157036786674454191759183061912987570421568159966780269734521240869574999609669769712419699283805082182864076026883595474793606088861000586199906575184475927759451194635092623886782391916728247846416916265114146230774675303990199527027082846185789049520308498464462932510819022321588605998821251225422550985693671503430955845132895617082218259294824197936942601288738387586412264232968903819596137637481285190515133724974945031416898138592539508817346718034829579858139601842542597288093474058415020159931178371602538385413110334067200159409927262842473227799538738407773455072418039749838465653130406126074787028347436146179287362793483833640429041524820909373581078657488554565208290747657623051841014958924276167623118377366212602526870104771650660401456997797507325616069313579860237083661476234576964196764294532564180737732976384167981407533124262419656227090593585715642010707600986425620948047319126718027269228992452815041966580912501818298512271159886709809579451493201931006937132436505284410535359549046606358386040883503277979315664150364709479897174966500882570683062870326886801191437455541222371017737358923236741065840668162435259687118962042239298464877961263780256603978800801868015477421747702495085590508565316378980723812708638985013347310750307278413397897683670815812306012698141739025281643067440085954268567739270952126102527420699280391489712626514673386066181209288968419946036045102266510449714529216314716385075806949960047004106454981037975159854602396588203713661490012844584835814942101403461399179415216329817000795420141924398940146258083684237626875595348116542998708563809361119567921752930086811753405500207058369288920031458451719221530522643656158542270210071207242225494097427943768195322994608397356834911315255899294079307858498122018525636493437492168036054813184979194510548435323926700409068618531672799326852300783663509170609370820191366661333304541671292292224445031339376271025050298589788128432419507732614362364929034085529993508848443325362626793554439331861677984325957547076423130865635288512718436745622227916700118413158122471241850653920180219684899485970576704711702052508046174952600507633370088508659259804940344566034033989437275210668202286807642483728062012665563509262623219292763710553999670307374977349844892016321163871091270704323546266538722796767773270701607912989231332555349083786835957366669694162017640547996004224725014056295911020584305402765191469694181518159720383566839192862056666284570291826540129541691287594421764342648382799237499667466897163630760083350682448890044908155269057076979092485942021715607746187988362760415398630120750919252413839607557877313424445048341828622129976739729957590314927442814914022284334305600646803360868235286858216226634620599373726692926948697373106833866719644577398678586299624298104014188680209709719216590382509187398403326893796704766148572265240691928004692927016361634340037237656730780618894268243861971900841162872530441776854664605051586375389179000760729424455209239412386051443595258470377548704385070178464872637625304095368910699671608968362269197298412912104030621004574305433126625732333387210067010572233183534946154809638628093964052408434769541345669948825004092176373891892247444881912037866159287248198285292318229071379107019996833523344067082008855317839133840371475178672309647211124664214101582316491329125294268455093374228319241944980190287962083623926099459383530696999365854888883835693934915017675506097493019472822912263729542459335556768138475365804350820297882965929827976352408736302149630143156118009050817258951946715739724027745400976667804651070712834913286853382884251372487776213040184785457599849506091943286215729496312262456072735322128054476820962728742800151673291552637575605355365339651872907543693177427254322514359539931044651691747928110899073365975176015009255194694760102734938965030366469594787172903986251693626783185617876320043495393570471481306568155163646044977316080663606249465316003470261374678415120615687857999127301943909889855330885668422485033085899851892841253238691652523688093090737521322866133442151587798723157582869525974157042169492322078327511495197323223840882574377462451956341949840194917647371989566162529729852214002955302813946633810278244548355016416449257797907928302145311050038850748595447872281302142438663302407968699940720280228783536951018535784066080386222907038022385055991274188478432276453790972602369903448450978233107184464593894981585168475293716542769127937728407973136740736101651668140358678996597554137145976926645720651971407540618158123027015414275042038321793217995910230534485388211150812270932351404748260186786112864005031588269143834607379708355928240745390187367899936395388383663838338774212660587154213712153387419491630832759700854115732584580673946805367962536351967140717742314649800703554333411187434643275110711794552829774001850606907635702778908474317043518534868176633861222880413813240314653629002505750669311089383919432212967452802992828024115814886925204931761576074634041248081950187318090495921300092200552028234016546028850203544147235864021551869969355537581512126802902103983177944705287538346323832207357340871301903319858401483543597941177935467865320471680490905711071973813839883052955127724675270699131476753806154392786533157731365517950263892246082024905614294970272455725888679297273781190301463081117701097625702598868010848475805507115440879938916682263389620441260818500067988823357941197998671642546691125490065143624574503803916602003974327398508125158300882185749871977630029792690281930109863340430755705232478687437982050049615021463153958010565555618412550809595062370857043022445885591102274409789760206164134913652764456708923243303879347810237491443219324214339499155011826771289392313019218156554942820678102222896035105670214243786038105341127952179175760998067337604346542532779184565695272372851251194689390326126423652711383039925678617078981245954345268626824823680321355548821560498832978293245998697453394267209453092639941925161952023175164631485825454549472526123230755003369146553883331496031622637461030899645772017447690180043606227895398089730403736677012936882983467096097343295038453841754276147881996843771528372935305079908414236833011145768259620728009807298742022947219738531835174508397709055028084034174250992701062091741452455970038588473335619082985516009478375497818164145942825525619361931040569004066847784913301240163679477467634014437717968602983894365677510872293576765047333841140507735884768019127014141759665283554991929949841617557334550559910175959272746617042781900673365589149872173496482453249641093644334220504196768385098634615087586269422675966941953940206990717691646470951703369232112008313126767445334773520243782158348157932181068147220315767713751274635585836965798793388264504815361014708108585345342032973044260052602851442136612011072269376218718285106010028013442212800886901573264129132927378018093235138577518352666308282216644271837612526598710451319421754381279047659013424679283040877883330620357188665257416211180017892169149983467705694321442261583523250739080901689018380727807896749656432208567350546757461563578524217282733277543016048663286695173547186691697821027167120028420241575418307372481026787513830156130995700433720388508702015213240718743300714646100234278503498244007786840638375290185761075883512503962178586988647768186042789717584273888780216837622174795011401051758908920588142147852664494798040669997175284894162154740599423131206783747796497810684516751065852919507586729755645107575779075424049848987861139913820960533532464856191193543742930425638486594031787522743801222786403298093764985519364697504321874678129892833697714673386238414767613748660416925919789012680973871220247321824659438025601760666561510447919155182858892415388174797216178813326733072676147158810124235785393493874748493327571425469958807454407574232499312424717289831727818719604097740526019294803724427293810721857389595313890373817961892238759699994735252163121513582015848452626254130359162867229991658305401742630834102467111650061494533601448725400667142960649716620674321609239591216270494374733961887468607758629172898505108737639480737584203503713014005486724712857131131548145574707033261349138177497988755640911149961407802226279662515696366888958822469067140103186823236453197029054041031500040838157424129497052116322445869680197151249036400164812136936779831427376629557313716865772566936877514905612451047291874773667294139154577827705320911908078865879771042322415829594394348204703788238970031475189788600358969426456499003152567495827801536933873241004180740841334381106600268781795215960498502933071926971770438969743215748739054277361526315438527583275647479919193665417304925333528340129777930180104143827740424959765330074136350698482505887596481474302749358030976626564025754172131378651302322333160470889147098727652031702054270059584054646050855116734220921318754889357928301752994661596575310305319170217400336087501610916510654894709425228979097075413020312861064759429582606821778649194795242475982714502946314648226225770496042522011145353263681539006633907721189825097772807312279158411225350036937414765287685283735146180218413669849798054996988246449727297983270767357592820467852646842692402492801631198073576373302715387167035997703516026781429767847710988492700737182952311241138201603358102132148222215557040581376238157204017019024963465956573092578176694713881147733752839570641132832943742747319642111051546629844277354835825190789142309616425715627354271927350388160202030051973063903439583143179459116888016830188340397430030944367814849760764778505985456920712692651432611418231209837367859234770666606089672161159705454692853215149692583317748028400336858630934119884516824759485336714298703911883851285327382333040040073350223948203746542587318756187645989096623568595866655063314241044635578455402991063978450326419821059453864661999874924156365520918749100433632780786628753926527406363848794412060747933798408262600147146204494138978339119275213344925401061349347040360580059285630658028625429552270120691250933461975556602333396450542347832892285146804490571349670523006423101999034122593570733601389131784589596271669886745989018187510879515884054855717581559464440332764848331159136132447419488372554215930103333129874986732132471996277485699735237335026713222603314167154351030669078687956103208053693125516334705487023214032618121738308356987931911945140120216555846596123271300619736605146350409109188808380097663176259424688501316587110158836921752406908484023636453746873807298963524207487992070136920538331978544254922042251368838594929961278688619516177286752067555249946647958004455004426087358738868470971295121887564048296974897530853350178566970715254364399030374542482445051831299181125972372176127728021002093981017038406435220386733487868874712583961281656539845082158140232459243368247936051251145611601636326048250331275861770871868034643011826034845358135203564591724325786126980551341070373631252365760373903867142342232590642025071712613528875262347281397022527343596324310448821387669737717359280578557453753100149587442018045544267089835811578998122629726274001324518617143860610922366284131726743157845253835644568691410124572822856156940385262826815633978088547007957868691759700193501471971249309501817982682400689694386730743757856720879886240533754133014207438605491321500033744589349293802744915500488668982812004571451051701927136469929395703229438732731217804017405660489172513776846122137910212407439807010429291398963210247194300350559861753073379906899301621131687547022459759161689331418501017669461355012901641135490948618290139916800818548688947876852685105205441074428091993027725065341704051974769941485909293330181612654226509831986282524319678416810003798983973200928030039054968206212411531617070472074839522057823309947489081300615433819796704297216136431034027877764419248203672525001393763189619752210365238640619503616782646969474231064589271820283101688714417371451129695010026609630748558219233841001267658691586644025765470071948540699099260285381291566897243287809747754001586093430093496090387341139729207340847702334548544880878454081661866253985143657326743603657258163377221972669071322291439337496781789116847695985450214463305257086301016513358327244174035309296839721477920322745853726435947462908414099899707997428666837178713299675203310085715782093230760301281438428741493382366761045933314777665634282564965106750098554052176053730212301152157660079466989427497003879429496716176979398021920599875675409003688922200097024433866500938831702087123636967816313014576547851233240872042779961898836667729297089175771552798473240712275323418889640787434633709433411515214187851817822693472776373022160822113003221588775142303273642697785949382014655520488410995043147544554221475722414194287054608647153121282155261830868107215798240758124678715929034998260029875682644269450583094950998555461197797763936916436369503593292221413669074961411021500207413380896591579199978533249711867222153614517593059444798033108517170045208424143472397183582273013229175822771028099573104042394802460435414249176077813167163859464589480118935751963553472227285418253236292226623094335172075544035384948604247667800720238067987227610439988763859891641325354402873001583113870023494889745109323561122295116091058942565634172062793094746669641753678859951912758477842876587416357661090165789919393436399943108343386364432832099192416438094389271081100319829549871773577790860725690447059488152954986027676058408088554459534489268966000878303144733051026971570901219594248085385656833413402019175410308820812027710567019007685833226850736993599921488115047657030187261657574467804785852014280648712472604513214754712524959437781276579623553893712883336779044931180991494018932317172025055877691640559917913076318569098449015777673568940743904843142605242170912116223493441017013565116063126418639721152102379174458481797521166979935407507328989780173632858991078604845152168100314460876757606536819644391218597949892907229492171654124618226049201339305307320976809228658968844855751586118236527077154304457994257477813819107054854081552691993945537758659256804627185506839952168346187466909419974471363610783697713465524569708036075705387835873164479442158689021543996869721455738142333085022593256973774330175314536895297473845578722357528665869793159025948890740177831836734408916737105423737539237614492176792856782913629158491440107219432902948621158189127720886997800162968951964400499631386066805783779602707021509053317077909290921007328449111003654133799505405028556934659444995838144244719531137913975985299490626950162728873306494635159068164027495152438428128951389904910868438551292070947638104415160569504391274831776598326815712205175757301950960602689312318209530472466199559097362516275832860655757767734691725348891375661905887472809332399057631407599373331043973938369661719155513637931334365142812054330435644726546484783594384847003790916903454470016599841607501244789477046847481592666644317403236910621468494014567571945661046102356860144294008936390657754685018953665340745704541131926771981103440448817271659297331863823225070211007771921733343222104039082331903000989475284535159715645762166315243672535476383868096006843402391795070824030180868404153952789712098019881626175085308655321159915175754386838950821570297620201549554264397464066132626855480833675283778699424667537843579562704182413943814205944802399009154242881262350904983743491464831821056049174454766942638589696044965028227627790309939452672704245254530188693646016764989983560511903145443612917353620580819549251931033580523948057127996025742441606361513375938085777368816195383950711322412445917405577760539655216501100670117919950864237557265060144865796685819716168067627039715644209439215683229425207990842495421140654740560034270309136154535998787765715452171011201341353102493918147493768808569360842036328026647930557090070321315672850841971543342168471872678039117046271333218510798389085265682258765021920038718129799451591631199784643374156541480622582269163281682211792729966131183832278576731073798658041198515222361095266760411031870259834770890886712010237746739617746075722458244865196446048677696764725575008233468156248743456570365787972599899689998887236827008870707903451699700171641412710960995756289424680130033378003649108159386648182230879879545350935803142739668166792915246896595017448296740483884864601029929460061027086837770925317427212258805442062714567734905961087459259447249760624842640472570678466181798274073170250227146783999073113873585956014517068035236094712115542277725607035421121699141341163975727879599555023663296126863037151069579413020158076396172006984161964984365513546932875632710251770226821387103131939067601212914799680437137732829242497614074169108366650950462669062191925599805463617191897373170376439053460920996007430090563755275130622411249375481565007229355647831741666915204768674598236893315106262064114826661259225554279918563660654851127922001480631126451101533237499444389860453812591365763975433227921364432108830966855919359735812253177709589810727565363968581681536457182948547129132428305927472564368327889998454031984408974614363512626825012550914245889013375342494342952212293785751827866513042178254974996582395736617794380053363137585967054427263859941968004094907850286612677751949687261528478955515258597589808446228628462405268157701257415154781027651434154896229317028184927866796939285365345460507204008648369584417877547111302012611798614646817493253811356914570207124031017266926624250322490161999356092522546223585413751143143877530972587270214913457293363747716730331317152588423169049145201521002960294273337917803785050549788940965422995520045814870261433541065174121506364630798462071939934093048641954064329790885797955419444566922652927291062183066005805279418236055009563530344638474504611032180853272030946301490532229688982137465387639343896073363117369859185897780595569220486584706844830101759622136866844627414950461294431399391466157211580939382496540258998422334283256673737996073485789574877371674713451082797604472090075324428561431144397405214263481171429803408778478102792665832567567473705538152952510924942446461730090850111053470733096693296988329331083912898730145087109981200222709337206060397100756475184198109969491426195190423761197597221565908254018209328315417544034441619496534445242490622165101250186401199910002494756358324387544739570513536156700948550396965323443929514601840097228256131799865945230627325496568669410835058629670397021654521261256444997172307455231877391715115784812172735810330456220246382348018686257598956720749308076770160037341885948439309467259202832547278411078071014727059875675036033570909671532690787773011718330350525740949139231462084950324674369717690035358102813234663837184273494691246822540816631515548982412565237730641775517020962784761393812476174662927198853613628292731222488736297000206544795781219281605812388413143248825082810512336159074955564871044280429011149257863969638843240199897267553180013914298246901127684570452425182439089249288858543070641149813513349970381487849450355609663291721089263861256192906576633860875652776114195633618531683197294762352646005679927733149684207863448594441442535684396402619480063360205061136874261165773900659535064879195977095992163717958694597026786709131530245285903925919269056595751386980335666451284454217758049413231603421970608520840861951672819990400974131202689871976305824480283637322572308240328712883838380230138368674390337239331418822961352311543936646118828512511690231837671858223676649081530275327702404828379750150841844914842329520418268594157411184626191125339760257502412275434236357834259364156858912280028828295299146706284828953912658363356230866032791141501608381666425007927854155389298729755272446482819277745114216961867552405982863081288063566592749159091253835395640023292744526040958014920949540869586017737547688927050233107168111421107141824098072175363671908712399869017561420312172613172112995849998349680164296579525975787765755120918846543254901657905831162845713211364767734539736893661457558735514406318172269676978275398582922143497114225344980484644699348816574896407485572209823844676847989922258882141534435166708200831274644543090067501968918822960178736540197446208187174461384248121045524831545794881708990283553028578185785788217687412934561692530782050182166697959297524602783217231987072748050077951061654314724897184547900499400390145494904954855785408390685379243612387833952876526775879036856168019833980878419350727882509320784265312565932572689470506186070488735918446337579239143255792612523165339770222532982990779415996001948825869930820737217006138970583252374879363833118056079375122711761888739268679138507612331969514011649274711188531513744286223686220382492656818731511568520467638114248020874584516151870030877962899564399762023061897254890486589927119163859868676989506712383414403906684730070972123463754605534938966250206334003987141646217878612364622963694673819602081805498846121744172400863996845909986389746343124737522519154325665217179193859270303881494815018649341707686838415091329321221927546225526983139266459526987033120522460758171715997463898278629748981387172399863436928633021675940881505835558373301676965894210476425454345463806745723997588573338187646442197174628723245953006935658573395401912351462636090596663638659607482465553006047805760598229211780290315406232348045839802269742460010185512543879647171180265066517339935009562270287551601648583242463390098574640255552147203593812016601468470148219476955477769694198753264258146747789655071314307769880222658802941424926053044584454203773620842349226844678304248310830583678375125375341729067574756204634769949139939809717462515232802063022702204425071223524539690352468892874487190089088182717100671602256742482404378267554825862322212122486437997014998394013637478009428670111040744036343956123618188251930068963885822443916563967369473183196531951357938508633488555535988009880859508714406489499546164756426912405997658673566853135127937540560304530166296919882388263447251445742885707069985726727489688956584342094019296175276561312339768261843176960112733659557193325348039161540165803241822467532314645379221610949381035960228331949551118715040053747100168340455904046446996314838821459436410959597600209772870179604159399091496544579916054646891269292840141736487906844518082397697757118083256147349543418443825217164261037411555987274092043476282957101067191706892882417815868124810892765353135644417150070394031721183706399882766155116377083502295090779954990576605254479353439753924067561394712223108489061901167003111846652293521645488028160063845003398658909976255853769837082501323216942607711295652058094779429720506467032978203980328406467234343338593734175018281501061526249750828891530307474174450482057166859186318799341175933175815303192171713005964002166092287843364566566495736870666294105947616537514087669029928011612746829553135160312564836834211950440494201345825276777014030846608156668973765057834943074939735216110795051722661974030525282715244313303938807389085673247304938042857676721414274129729465358596824961806179553718479431186571936281350720427678939752171033754279274177321375959310508605285293666041730732761667372549368509673064661779350242291540364940960395331315007495415715908072388217961674012635197619149626169231438850664098032156652022747488357412701785347712698888037711821146059308375092552780239625251486196276331096449036620759607740220764388347008733094280268421504377318542607291708098253017611201026829307261695305933371191981587821332469701267359764192023453131838702339441798302285405316741071767706519224090479690915611572590787568635168000658945620688863845510283462012391543402689025006506296942656200846202266939305947292102281665972994944755170650809256882058218121356062005361744984043484064566215883008032204744169797507378497978737553766251495721189254424596136881614777820833045512901030803792307813700512292711269164278079322084659745481617043811017828900931627589774731168314376635730834355580594744866931275069538751069741363734759283776516206450322063759042421513844332633096429749966494287561880286770824847397967487706911314879479265733938886243020294708371398426159137261478834966936206520089429220273395662608561573557356604385813549183555540155516796680306825338720740356931284053743605480268696411167851200446587957749510123130129088026727504346009386644638668656641575170950999850996401198064112056854482375240515645760330568440743135150020706349225642606305722531316748451657309130880438603204349343468609399717349264190192712804722114799931748853344952124913212969470207295862507287588356853782795804748403136663498446135913536161420425964910265854442166766828803435891931793808651921723130304725323905766955065667050743191682957639734885606980071025083956276876518231592648698071585868395502581282212158397751693676092476961982328581929172280596440523724117280791906302932627135736349132956456440000833211186781880823796995469953751276971015142912414274212749111655970778120079048895484061097368547828721376287235375121351819995452992062173646526464462700423560817876037649836708566461359926766093657727323779816413866108428766527055321235199361759131792469386402639956450816302432528392948501387526908198299869495708204809257701260413729578534802870801389892933081543780106715022437872549374016508541780632478131984791729547484998389098376773604487732472611459663473513153911795611130939186799159960699439433027867256481629707496992469905486173985738985110535092458274060324246742486329797127434735976995521879973308601321585577921555215418236013164173329138291166786688825998938124092424371782568201446646059054120316703921613232282357244531109548842465447206505779101211706493790424074926181017152841181730436284010193693599819665072491490992556446313390507964916229869053419876700775780264643715054476619075324436702722073104795436973536988809870329131827148942080583476499087340953715838839038529678409987709799001447858263249258727640287046842644188374819817462318198103565248178073122171044026193892340251164178296166860269094984792027707315280155368641119061828570816279157329286772821154211516528317906517814912426186094692500934171240016685261500318288616618524688395223591920913302915529486601938496458457591685849281480473349187829310629694239426184570109345405459779630563788371303547897323877431535719055143624494096796158721452553477182759533461807037391451617380767949416608693958340810293605869873742563092640454517449932471932407846487315534533005484982174632089330947617044300742401193648814141414927818843010228403290240630287635217021510258371317990137521991223907305387379447689936426396723159455920552530333733397532827285837098790226841970202438106109821246049142977560867641620360549681627947592603103590086589096900437069100588336169706015399630229867639488059344113643732364892665101079456830575600470443552490279709264834286808839578620838231993166420532069965956401906443988483305578739435325190441433731169806074031659768970352603772941599646758385550232836494009392889436261257497278881875405888629874936816439712987208326392308447946208227862917408497499114897998887117887441825203132755523851188016556947541275695456170114809659718443237301370806993338718226251871117907704024991754274378782615932595734742245836003290042802586903462559362227291295839715943089196954826065982257015028554329771790104420077739176371787565042616372081787786414592744565674921520670712971124824250660490198044778521833820942060931944657718067589921301861902134549732521806181453316913599403197308476504229675254781472575364513927388636250794800715943497689624691866788080825072825690509056095888759531822140820818629835061666614652830980227472202558624520209922411418972942058006709534223100159891024376795957638305380162880865710380912726650889053840592421045279252317520273357476866909090458731404932264157837664413593041719173811475699976297261625476696983497963835950161410934392177492381803367076081870705977523209556827721429943584941555760537411259559588147430252817852418198337280878255274174406871765547462596001980584857194081324660099019973458324701086684598545907593291012464325862126883320963421770257606183597475792228852728389275099769593473046938724200326664686336788500938405718782510977223382783513399840453261691042679154835048958308209672395282567953920136535035845484217752002395378691476300588127674767039817927809465056031791903143895223079830900104330662063472285990384274812154260046325271888640263768268875370285339266796744960203778365994122803028669463984257908031747979337973319872325107078585752793690048613997002276740608984823292975644822718309958924716116623403355844703182317747265263459544253103406592734162521000595504705491446508502344914796649812919693379001255809759721794399565423343327035269987098572415472569392821601766092043352953914272438603325051666337388513193219896848153490099756329642148977566391312658298560071098586965986139779140860604671708847226471283355551194084549255055369228827346590033250052991823885351951951458269965548015523264678120150720137772429168924630582419904320138428401065868235998843545996199295256950652187732465040741473020295582953676012665438104834659430264653245548882777422926272094582314912276393026656687756241573656417826335801474314463132232721756246629159703510744091045328122683748163850241210498606736111373559917322799715047482811808896090828186087529206039726919236501027657584832117350255423601908959596229204230943794932038204692493752673328803318123723726076082761634575778782834936314862424519595412745262403885943972076195711107795830048369477197004769355296652635072503105500403411293985175009751514076968036520386659234692895443661633732055094722688098540813909750352517254014341801758847165098101526254037240067801013262432874660275246989647895757598967353381322949612847219824429290185141766671085527142175593506624805824182430710918287943386843686019972197047818057743875816230547499646205444320652360044257310405768129806695373523770269142015123140172143521227997404171438420639221149424615332963927367557080921214335555435818364777692852809720610576537623326735361707657514319492461892488605346135806138462172675138459156298748824905131300088277275162747972599412854358569978907020223238578286296812695141654673884039944117069148302403006466644274983411570502879011987025217651426559855302167076243335690189022459320358984534412212441648563422564953218108321994571972820119143543689823024230901120654613831791770533075356169791549808084276532453621244451015410679571434776140281366701103394088157967580849539532746320924193875856620466643186186238545828254591104318269457073590031034150055691946241884463391221477734589451580820613562163124714550186899845574470663845703740123690166074449451120313458891785825788526023040758350812453737335040385465154919565241915231767630998149196640156557196921044658072674327305914230568911149598027096275951264173320885348088666318593685688612482572373997188843673701789418283451043150630215438830928604651820406995037481086241716579853578805265773286820317273316606477543451817669400655392775050066014206579925116532102781720795531302019291035389706823713752231419519153688678804729410487909842017672815271481848000503448311922001740392855875500751749967590492703188563168166359214019207717022275942519523090065061673957764990853609771901124606674925649079362931646596498911439802218263092210956413164194380252611021284171910737761863012458106783213810840753408991661959448915691489129201694092740603350944705829865001616254083611095459730007592180814261088899622065545983890054916823248489718953792741485608835831895940130352731746296831118061409677396926220336541217110927458241051400324750131584428166807996600945876646271079153987409025255776302153975647411202742739069228244229783468631268958762266902686264204500575848524140920375210148229890334969294186271058571579760709823281427355679731722142648229027771676159374981033570975605902457778283213125612937101789930657931784063614796906904204254983376653572761763391903577978107117025583400588024862298435955949324509428077277320786119150392616315918050891713025074655464093777639084723951686413181076953510478656096493635334903518258304357665362643895243372795887287152350350115053858774605849061169760741466261511405424293314465287875161912238060539965055090513841909238592630329337051829531434208110909517475784904324030422579345535248283630428075923492763744100433784481190922409758240150459772847696485404903429080774401295090674212570557503848643378404026946658810682747683417154986547418343905493432150411258985838259159791141807475901228624343463261508975108338546359950365436352720759968025754911027665457216783436997248875640841195502877761124163947136479786452257198318153369322497620796852164520633892804801862714622006093576803002043690034673436509659007443045289050962541423328492920628587031925484332502076052506934250881045405431186710952792833995530132874873022143533806429910345079762847302210844282563171359773805541491324831226485339362228486496930139733421384976267047903280218646278457052411839213664384325777571552913250391901835716192990067070054717528350016452491328309058173931432047553932011907886071664410608605130194806402276262346745763090043283249168432137749378884764207824130261053924565572420295361927867243216010868538094676637759894376254890374295695549812684700824752819414077841649126627802544486156960713919724562821164354455147692797377324955723392634149195977541847500442274071578178948405134713369896292668075787418063606888151858529758604218472205670794323116057320504316374137972307689401294442541258272434978112385535340807874712552716545724227392846186514335949303051611484810920511973900786109973018099968021538007186459575752717486104514288348156226031809767339502207626116144009046090982964151108907399172143618073194432505530856020029867888442920611195563448607285084361577756734664020075000708374667201126125672299865741840112070550409244036284944128027797926864270065061375311397759710356594616684170688672143425807656234049613966977665106861951004455330525947855495984661093946518525029909658662016198392610331924514349393118254542468991799504020108707464610056688477814476701963367060441943967762386310768887909290456923508597070985310790071665447091092938912845910778106265994535134417569963858146165800888940630173586007728403666822830678066795072973596691706477518880155896340696758933089589022943302334957166036069774089735741845375857168950797323070566721067319990173014854787536726711592698713876902686808411381458636650596172830289944225930834495178504514452310946345858369941507836657541685896156371788702021501446699761787195558985648675255026717428497592494768117487977753149012188687988374075308082452798310770871519725978304109455819624583523131801678993231112157705146515169790511238770596691766123076559939268879603551295493625774911426022819633534077484944756521261655625814827906041383657543307109703959105333870481981372955119575250703896039958064146885988227819275266262494366390652288541505848858628152857873273199696865255451444354878804322444324381861791954384772767690222509669362236740177306203284832033510495244225861547254760455137565026516678491779825086313008754690507668903135027668140189111861136865738127477140724686092223681690984996603988066484393638659575397465957344197525163649592504342655814473178193672398259096202981283105970986489580356506587848738387640409681364184866601537084498964462993836719974503215719525856120550053137621607280194286526587429727444680659124207965132053643105664132187086454970750699138864098013913559642522391289571399296135944288752802070457924835859318244892375892581951847912371577903760784341273035245800087724284958179531192830952760644245751348821404346628191235522409092670923038006561985167762263585248121876697224141448880032502117421780530887585448125363224437309011966753315753477263460497751310945195193474733646268172488436539457601050086814910356184032524080105363154830649350114966417745540803526997477856992078057334116091971699090752880450397388262990903176263327782796672893623640092444476422117075090602175430661356060098931945502400242686423896454178390914697168302115210336568169571836324616452991226150818499428404206662144057418559833912935993872125908748315508284654383811162246602481316911710541661832115820536726992914188007711032538337836822461034021101949902631991420941227491658813833102861548644273846584021428581723123856319046485437527638294406972520266875469584652525697755207070763196330672064813766866753942388402461513865214032477770119590439675729893522426572779543696167152996476684306578306844855999801307187128376783031684337278057386014500126363130876766597916924737732298148651135274951880756790656902152766759117980793641979750003569649242384075027405003025211412769857541328666465180613529072165192084523798579671341362366686836135737074331185379941768170473208390031464405796359488914400080239583967157766017845918614911982708932038138565611519249148238793951223332222136423637797000448083115584827249993709129839859887572012215309366060070536860216683844434560302989134614948020537945132750349881326928473281073703379090044401118058688283115876054144801396948413151477649188108662003262464496083453924723173349867665982953650309976691597453707012785198843638431047131640540832251700414129913130141919481293666550168499261106031467870991444277059707849456469633075141999311503558170906912772414993036191293632657208300475150431417168519261704514839347739019516247599012144476527052430664520945148900165321769434454625076272312555913222734722738296588458493121872228010948470353198495086349508003364733556427035626369234192785126421251173504312706317608639480088421093038124574330373023321704405463335253399818139078329420710745340568694235609864115822863290206159174191009692080959326776019051398859139632594450720793989094310871211625290486365528022116256273462935061311966479891499378800243969958550022476930631196998570222058322054690820766335431967876584869803317430217183691762127291820689636692131183054201983488456521673166366609881994566704064588385352800801130398563233304785720783004595880363350491548842928065064973839386972978057138181108548144931730939747378160336265630752362840436096444275765568704708716035034939738139473376758739410108413821771651562379842692522471552159195021520075393120435043495860657700518331749374476321288220867137336493018249183495653582313234659115736821028663653563719946194896447990143915789323252307403072673418370588120319060354979366658519101019821385284743491112360723410380967568182132485836546921195248439768130648569251295643210464471865213118777040411244207241033892538956160253701412600344385275980442721423753935263329924553596979965315677999678565186254411017955745544710167532269950318051707737795016693267629615389705554786420498533394138264501854035072083853928831961778249792349278091590265669818682157000990393816158923458770340266020477189339991211847632825123095496825029949796959035996062350869146456106568193068624124197541872511760196188425901914167137133096792048678693542374698145567063674527503298899201398440885430923241185465478876209596099804776060707198130210098857577133146518071026267040250778556758966873412251539148354373473618103695561106959207985527099345226814098275959814648595906908275308100086725008345359699496318246298175194944169749278873079061132846048771817419467656339945654773865060967917879189999169299532720935203177018362452764803619802074284748091740103084958395009823782579029869181466589792248581497420629761253948041693534070218239294682745572277801468700810933201430446060383900614814911429156370138247062147603521679054023802563700196679008238565557661033947318941242905101924974681482461361978680245986358774733376526474531706864911359073612876092996263352999922606728306704887489593774434628665203938457985953920007213951687440061249182268981545283467313512456341083540849717745949450151106106967252705968174524086955370365862350124081151011396550323462171166516253168896692479150818239206638519069315679036100845789677125036459092185931871956170929678867503144907169904227031218238317878493063506925535303430325119368522688909038631536146129810582478281394757508236020609069329154379173783791289395097063211572657540487066158241759621039017862901802398145565180064535678594908324640823548068596816912522524856237960249807962803119782527949580479163469612419169464867496570798082665267330450220826611092555974794897927606842651973473251913131659191295335183162539535213270485892417821920730037153455806535600147373845242588024345127106945207962409469842533826005407683618973905864171434794692198289584487748297638143118251392455748493666018832849926430960092378274557870824059229503980188205094361645831124601200047941496312356279678087467378911991478399009377989728940554161613080326204081725354056887422425450119721631031174642734664368798674275965237660123913472953675244893922026787887285932334623717061055512358569586450186208569039382782462530113404184928695862063101045036050568860772637276032305886376716684536028703928483792985539365233967795493798660373486924264736268180069114125876846665365749813331182765665411819612794212634204989295848298871874718061208985397060660935765498192647741138607794990113336794436381958546138750430285138538163686905108859632623430282131014315305585088892580320079696962559535819463952887429382804527686206352773237237782964582681424499218931112730658811539851383053036087332362353788307886956239525871571332335960219182131717828114361642920349015812991862619780941726597354767300957182105514457773392806691828225878932738917164397412113978056807497161505690715066958301057028605745152115232997805265086244154636302382097074712871992060736252435994017704235679365394770412405483734305395502445961104414494553170714502569043215625359084818106919821598147260156794982575721279750453121001373953620974070423752294998734905619042684443913411630414798513764777431070568616317294408455481428793553097379171810323289820494097112508269466406154323417206574353900294771235306566028989128037301580138856854552733357586173358206250354621496780704969907002289908384687383050254078173603331831167297188784099428899671087940209292589176562174734849489417885826294377842604216438987334192384824528558253419813044697882735502463838560861395677980768963994520085047762702740488775066184124955713886481670317672918353751797373043988643044970308925221783253989687078064967893033832295384648631384979114060197585941641078067792194858588061821361770527403989499673954543055774155841787222974731680527174186983845905428268415158919887086407040355572156426075208137611480667225344230142082628352794877983757603182122539226233685659455359581450236143081331334834931959181379030651541706618482783757174714649224985049474853773756019484086369194827275892738555007105081848184746959136870270275974520527018184910722278096033258586178482558235558748904286021526894428365783435127745930203491654266638649404217352065765348047144250804279071906109096517218706912718483931113487741151942413630592719962067663059228962774362336855350403507390657191102286954346817243201471542797483539998147481179162578785247264849991900221798085353512593889944282157014056957456732861792617569750477068122853784594497812296271913889609066340755661248501663572999784876279020354334025335579687141891498679621780811907725065987238637725958354577860239973376800295214193327081981672778127420214951725365140148983448285416855328136834405674952301009848519193679936891831435935913701901466328390101441577195947019657325032686974162273683739019628879131336002864434614992749395770036028537802977993112546121840565410017974330402913772370548369357873428890116406030719256569439181490688080844584875479003287456938674512535882245888987046480146756007271340584304833870987908462014785426395557961330671650876130840169776374076954796800532246519413557546352858610377504657017040235590687867931302036413197647689166422293636915886561009738539482936615341985350125323780369455017542518421013042636143424981035493654754497307360961797113550997076441020193344581461084844334904647354136341986739803237402500328565235906826097179966306304312411761054467808777543297688090838157790051878811900712575682033415050309605873388606332838842789899828135819731366456062821644563997166767886171437328554568489163770951971753858271740396135827705959718677520980068610065261686492274722590337725430533789883178949100752723473840286174193326074089305774634714573084423716480627233445828157489638369446070387999160141732800119784614258760550562986037355661227855487844742453743796406470681341255572534299436881490708211641808670094847823040437873694848789313015398688356965626215535032325783785646121440535956303096461353656634703416609466277843189475300433339607308646220942049743090614848625077118349483436097166338359624911713141618503869053167751227770819218454271857636767992316494204046012031067236677696900312977313868800873622001142057690281004541487426018360686992214026647604253417715407086137496860501950824788058013573439856289418331237298020071706826318009672008192857064688348694667052256414349923739465255812617298025988985434933590150954982179629167827496288096464284501958882067068222006085761674601790916481135889205173863352194718151053670599483891916152423859466420193594630354421459684102026448095661866272835191050889036558553560367763003225263080679712150936253214033523472966293846154591001633578516284197303379627173194918683413692901877069661754263559954082631582560291143779578087433425478991610123147239719871467516136452811832731718540630713300549719376126931634131546515515673817704094838944053266205691408629982881445909772139560042466983411576543652605777275939212313697617163260670649980907176552572826929082806358305526325864724941582532933988188516416553614879452232981634504237033983043018105877829102685355866439646939957281251218549187855448106050812964467078602145963603013477039366854150424661594331209247749408555343874416349296457273792725010751864886524040120586187446606868355193656797481283289204335229047303439533228320468681786089299691159100992397210414123267353485541186501282326831658121269878402632397328390713142640843499430470566706236373876867821768281398557953526579395426286385739711455452404877804652393989771475942908346609174550171346501812929166323203004291415980226530160571610631068750425858296563930683132673599021701435539519459053774232614165302917320386054083776330091593150439364742795738575980443426905934319328707071920590154008004607894031664266393929895872721142476651737386702695467696984278361190267094153306371646746363560260262264849854329428973052149693473017620591976320025887356357013361968830924870000130143554508781056963844580233221230275925908002308863087687961890386849600392629034389989788047308049928218780491425124436365705779863894805425215629954115061383989304373942321411619426954191885057902700304488980578075147686605636307856204209935189886988164556251948443524961894246209933628026759737130207176757707386034557670507204808391367609398783090177748228101237929534859041766524323224374361427000248978689038046605648109657468717960036287472923630569871596543918535768320710392803367295783313071228703193073275161589338681924510516544364790864269261504269825544728553071134590603080962163727753543618525592867072647103826201710590913287662208403227284023918287970091534940581712255216826278687439950293329197640050593164450388590133557399609716161124427011029254984965538569106510428166770218551045790489452990078958601235829562307663713919267916626443428053232473110154628227955416078287821464469171071277926811726780360968389151927259207300898504246675717828984017688095451321849562373476661509852443033332478033207544107641908856363259809275688422462253241934069053731358276633063002979186126882630710481771531700520827991083056967025022097261469574321810064149440788615720522367728057547385183927882729430291486117082787732520336648772247967868037869894239085678504113568669768467249172959997966362683331290876451335278905945654575722983064051634904191390635284464380433564211277269898696363221721918374879133373345862901421205519286187740063456086617010815786819776974537449150805659594048052370673151713479582263445079517134165427336295266439410375088505961238737115049153566037837674170892797441136128565109452437697096587397786236303652748249098003894447708137788866334763621339430322897394323987649552326530123712553911111616349468764522616717378419339568889435162839119165487517022388788516058032792768845898015574458723620566378557709584034099582543059618147440906007228984099246722641934913819231676340162728568366939166939280969195264040204973795055296924065254480058030938632939589051350600094228364502597821762576756975626204971684709562634728174890821202970873271893706534718617055835080102345089634116970032531502815642156130595014977652707107752127105944136525106513211800961353311477439766734529029162535905170288633815532948996977205744239439374078016638686688772185270917116467124726028083454829310192860176193213529223038157516116239482628893903003960712993555668635029277776541615729327890240471665390231476244511711941780875738257244223880172052093668545854604188614713022130381800810850101562742598772441569533449984043071157412414750403718105574697496810239540460980262119703113767995017852097812360682194640269604095283531196382710054337830794688633407013254699691598238686824160818998111371010016097863298005625244477271218195553427023638194068304198478710983959152374026833058100746385841976143215270727090013490628293784032165076223457244332954779743244632259462073317725278192293450570021160098649721322247817621302333889902041983252042817097227720097247071485654170679696272209849033226554905145617451191901224554674770983601782075294735933239611240703958822440297527825234258376027821280573001105131058238513218951284536005596971746732742576726305734592146153707569375372264921799957906580933967498042829045363701069434746492426708304235710157720117979021379489656740653509399666538558529805242674373399532607137864688912768191394931844143364264024693763319370801652720670202529069597388253845328507283109788099036878657300701641604826946462728202703854427800270892024888256904389370938518676220051596439789877628246945748526701258967152101318120947668826803884504893543151961590839647662450488195853058632099653244584489971287842313809010207208735619034126740612570516069417882378460906652948423400997708981274773395131070420777997166273120676154032169001049604610715271220018802399494567027528518637575644932601029491278150881911877423167520945102736132263205833031024353560475185016477823811546443652507698896455086766760890361051297988100368808368582045672845420178652036653192744119646879518730058908613343307837086538780704207827788915205158000714972146891647472892117305719577398995466247738568794248378644696233117211007458838689542259718906302059769319618688552309003772087884684671481198448116302787539354911473835222892604038590994775352422288955796024714458937846021690436480478440249265393637205141118641870131994349549299718282231245624264077765117635333849601308682609289713270706918469073708117709009340608686460853166075698931200292878136831581953455855922814759100646730255757546659640768929836760401671236181803466707636072532036021197215792425440551670970734315590315869240039642102968176156001719634542408282037817693054175190495297831220481700218933509553413589655348841051265331551598250500000797869523032418935465732276506433294082069679393089053636200179331613104961050045968934610498674298896516434227324493617252841110570065461298446894557510349627425470315767916601574129660808864856855152665302539325565845336700048335983239339704769890498425717917621281507828821726445089311834869756406628024389898653423501373961552616208383355823254115121551282183994679093433788880404593506858635562994961955130475432654336912667672133555977590114069500776619494869638472252911713154931752877224119740035658074690860762349230772984616628179284002454775504989336158326703483576952794078019533391505473497732294728872764948719956026064140564564929720992463695696374471973255789842775112945958985153237701821117552854740273933845493906685262994056651654755978578729050579406428322953937802712735294741346356701022852028334773141522411618302408375106483721047444852526845046715529785936594057211004381790101373625548288188002095327473872561784435414381339671036692747441133249170601701019242581250626966304245039681766803923101488232446069439933690350930876815100381898662959288610234965565598608066962508148010997781759000165589130305253499528437031201228524359221841588906290010435889203061067456368914251568506761188648159728531317559865408669407608164951541046726608438363585678877335625201746966854646527771715640110098385394359073535532749219314405599444667926157601135019058010900233481300516228400781948967958824070557416782602990356875508569961312839052756645159279574198198373421008306612865791093496887339132328200501477227459675134982570315083091945424428139094095072919575289342061195229153249315492269007222851671830609541711404127829026861133896417423706629030358491997781786274513119610867770963091464214668714722388186772800701622560673931462788980764795563060567148109230858898515952392236249567324078475758670313265016742016350129936942820243875983870689754083882135550461734494803511006824980543011976551163085374634780034788989762120234639691347199253388500394773129089968769811348869895745490119705262186064414171872875113798155649935961581408155463389015920749786818588510891841761990432852086763222937718471079367835690157552306664205295364103395719091829243575762655718039823688903910514029462190093444974923269711819182852726082827343124061582939701509911920629132451555429093334000120377644934730174943068243312925329769691002006740631035190125022184551808895606436550758867934567641574942972923688579452899941909139607207753452131362082219015981990811276001957688164404362038621475543886183216675129949159640362413004544826907519580462952334063923488454430583538759801282939919944937922474676640903728532786138014276353848838255381853049873904245092821306130016438952916564584824782000889392094651523930314852567325881698020311786988485342806143469758605405226990342955488546576454694214728684509888138899494437342940578142742179750211293773465777326392472502677302918659932899021384868560311843771115227166076749803726015843646421092698085576727327314037437463214085865973325859290932636468019492332108400770470588625373682214484184705025523191392540997589322089421571557621565426584249282854323011750576616547445504022009605303269248665030958772708334658872561675055251319520446203271023471062728627621179011327402350358095446750541470131133500687185589816924789765573281629792744880104072412272346639471444407122129930909823204565233710314197930008550933611541059270675741429070939818650933322465507421611226765962525012286237921279544666726538998749134707366490527581772254919357285800706134901401950022926146778430185024846191455391804332382629427970630838712756024690630776055189252895732695560678795604376427227602362137155749151333934957756125972420419394972671541695200550293998975182760890878009148606821368235860920770015620887348616643165792562427146540613705581755524679113173057061871583003811580063708804783717690295016324353498814914547046633785125016330879349801007641486630560266281320230266758115280555229383228064874025679119409920231327208611958635806742836495209949806254654357024091675335796510916324274098214400824551046327494208140422778087763565634857051931360317103610215206248284481065477296117071833990915239168317916043551109314646283519667950997698464043586706271207943339755008480189832498300189133057608556914465894442987993668599027255439140652738442878780160500590637560917525471889570160802916959178746867075287164652129886035078969551603746419381596458071472635887582690986865162131807387598821264780790216765806596806078664117554365904357559248963103575998659737286545011543112186192550714031627888163449411955567652564400678114420877088481910941557764061977835211806019116319994899149440130725183759953332765654409286136058639606380294214522660189533013132549099452996088800601663961980677805319514241757033097959659575856259724032763028007843231340574936211775634423015956568590095392580674804072961460216431280430823568454293559830354430456592977409065810936541014777990014384701300281393910390569493221543090439632292362260766047958184048167923434867132002842261353020621058161609552403714553205671640200999369672776273621136537633457489747374071852831540080418233142859053497565669626173081968244560089778308882050496171671134258769669614095559410759303481429250843595178864393696564543269952397826630662288217817962866897039877384409199939457341263372761621700935086749549826258693826867640502493349756292967075754202013834750668201414196222713605976178492161124898469069408627155991672420055902143875848542460052130054954557593234821922446940182392594951904815848073117706282420708767930623708337099310067639337574613150113962816144896505368891762105697318266620521009519950980460372598982716384788241283200535673817531792464476804342280682174758787370267124276263496523224207868557549164466029027142864929881464769028427467272050832896467890918484924286999867841447197992308635519435838729883910088727717836116188322327874521769090821568802554606652420006443050864380976832163735574059055250708939908936733447239806703050397492023195831976075314629386520244808002172458782551503998734986800993815666876459221680616160760105031474143146593403406589086619096955464153663027999516343334538573263777643996330516418189341623347683281690493397005521048024952289623172911487825458561280260433674495014961997700099921430369185934930448029367600638075726701599647815123040252373397636725162132266112840880329723340823433236409775155001154584770023117339417809493282207497061836549113810039203472053987761143683781387026127315786996164639657220677144515241734404347574846966702611451044051389557225921203406899207143067152498257284622973697997694254349458092192673254031753439885554104512685227585419237869785202825115747200323242736317002546199128553385659884332822043102597762368897476238018965414560080410661628397614008790419489793760470750409869962044120139802664214326676522073845115379928843276644424253660407199207810785042402845033968910529863986067161499807721276958935658073456492768774131135697800954526077494468122188773782309030107493269645786897214315681056252906556159403821499986049835704580670526855898524781305615587243865398844766699615839024170293654655052145887684991582300724743508785377464579351398979771820135451129385908981906438470057050228067802197561955944925088743786555538474526977822630376451702462009348112376859268214079741195806918525407131276154013628338604983406364105356177687284531406790765142231110424378018573522184521667067323680645902702031925887881731223536044246887940229415378621088573960554702448450286071261624633722500856911487528380887293341942219273285584200416351711744339375939732133566247289202290597372190760193888158135954311349887358869164123100452457783981277788339400889820293790602295960055424284813842274421501588986127948345975498044341765275470833944835849124482130118214399417207512249095073919054092766139136572961987916785955577956488581120745675216691286093383220994287331717903368726111587851807157786651402170612870549328554657119348770655045487182330043713148715239522561840283211961112375484807841850178137184517549628350926531878704305112588989314861291329454688545343187747093319209550716917351024087704621345288528224139440563881804812741335850236232877146453534476400685942106853799881600317738088439992592117436478539054739564965457931414026034091776285289153029669948013724014682959994840199892871666881830445444983502268653750241972114458390987752977662949977026383266405322195806494593509567911211499692625690858811288458251491465262994166457796255414763869319544087414354010661310280377204597086878238473586499335619681438517592446816923747837013261816411496254511452064046499146635477022045492078185571910224664164348840772533267397674780915935973210485077860788886299448389082999974547636092757494540705902448314021088138026259402909322856436149369505087960086169204764050362501515397543916582198814801832929407761457912928113216614230251165142860643237832175565803574480256466992260062679636504877896720181533023316630305324707927101495668535712948819852323291869664350429543737538763548927608205770547485302685743561232759043273507389583364491311499711740015569715554459129898854302312604837708339376925442314944401718749338609224395188530652730529121278979013004516491373786134353356505832867990346452970308717423867827408439110980124377201279605038569070233988127754312173101176265257890519457067682912344648226587235097687800562621484066878580594752533229718662071389967172150879119834243232022633768804688926672506851244507617644516363197632584090750732964664821295831271603628923710240738126009657321782392461095900957251998287225957452573949728567908410085106260502782750190468575763705440007489882651321655657803383571784639401265477408946288083768998268044069769232289867212630830269882610097221880594041827546160561656987419758324309363008671852650398551545944807199600735847727302714853071936381974094780337440690089537529424986833148062061706175695461390704948027351018664179333857106396191353679176320642368699126202051926137764949352338011839736371759010399305832800145497172034703640968406932293987372714203132090769020456989800745831490321776806152820197477989322950325238451025947615576697220302704200417408072257692465275773581969885622197278312078127508032214314412304240648708884376296142727222971230852198683982428995484074742430610914604798688963106837169158773538217810721309182651688158420102744955784973573106709461104689356309847281286254541112141860265820397452004690560760159149224585423631301561741083203154615190575368922871267720494978533663208060181363688960559155368066682259825051936189655499769052437210210856032916820724255510971747535100603962490476933185069749824675231801427446841860117195044375824959703492638954595306850092027416183751259310852340344752626882575185234524635017708895601920125069078224315099538548747738628592255171837079503580795491012019833231294650392883352021770927251471911441283924980895418761998448235455755716066649318630395412498016135495712007311520295727294608338501685786443620174634403894519810922025517229913660529592493717359496942238003950695511456738478317341534482312482534343451256816187817374674227860956885049116813685890749056538965079934844553295128632480409391786222369796142821597888065899561607653573618629892828850957120780269598158147360963506689793343216593121541875547574978858452317970167445902637937364260644601927647622269735199559908417504584008059971638007720686365313733714313232683642908123969400724329071697593329093153388188015572501119457602383854408367344554438908534999741921075324246084372457303372773407593758998516389722371024276376474873800958012038896257522970496627383942796376313848091559483867562209357288734873112038827831733009395867898145462700511268448046270869496660679738172100982122638835111654503194465835951211477278975445035951590916740504061013559251428696630228963234151356471202989148588953168150617490409892124469810078415071697512618996030383188991643032168311480669322515902367105342012754924189680144337385373937383252479073409369360919330162082079293382012686494967628651154469676705516952685347640817458249136277902442473085060560453329281459475655933133343105939265569696220090908367987801197139314882045570055800896965562028667020800552249000802123368383789741399596858837128070763821310969841191799710523333531729097359955166055548107892774687741281236856386804859229517188166187009861048608994092814330604758878090531730788146539221227324348594062384420033707561366270334288156351207605641243835487678139420517350520764640923319109202521713198589800714104869844851223068067586963205358344363066407751173403293450252726964242632627728954821347842186170287823333240581370582943779960006246287322279659353595958223573702696710658392676956911322068607622810620079938322740373716185640291304130379467120586614337998131433917369116751167022658665445141616866277297076958574257159789152070666429973661746917161638134414067916439303770076958766196154284578198286263709135728852584529381160088068176431945279322272427070954235462824654272347854621885524967224617677604573354346945870955175421381315450359131826361277186071984085639511662332404398983082275313615002911344693536720437886547040121701632120511754564755353773898303068578201775839600938084338172289314035038150510234271467170310770977613777913507583892322489407994201957010325608409714692927470574253252793429867286120816699442478665713411446354697211958444090314759287943880168273590010760046222956765340339227894555982054097666223903485783853961586237113561343859948984974386189561832678909191399354125061603002545702552156512782593890746532976291464931890796728883525222177408345229871670717048418061105653365749041515068725344205800227363948339018123888608034460103381786949944603264933917863678229882988878249317545981145035362144931133314780870942088065705321853621866983917595400164157891875772062893770698585676973688299584618795845895748988464590387557474846860697719139808382066332903004169305428892897780064484448030833525094187568924001150563319627934500391321416410685752018110450664338068978432267538260966303223084263634943200658821501952952440886904259053425737205130463674489326655971846407338090234463153682190607442690508430703361832600054554393362198782161816655634426919559119856315541644959274369836586567567994106979833542093222039011503749460049234217834092828111658558384432904108041009324037056774626824005174481245048606663650741352990855121693980110556743676183188396887841322466202159392091209183453028016737825240519534367764517531460745481040211190521409888094332917077229470518012927089870623553904125580848621027312803957517315254734988578212803875017480486295505007149173515351205583420195083788501773741074011668277811016058316732153821588282059147723518103229432966634291851772460244531718202371800892185595380004769364335053860816092509464452696959179319692196643141460829233226908852663804338169202178771600891408707669762659097658275748560963822386617791708448579897647380137387920804797875412038426320561187914103692083535659824818748667041328417645744137605951001688884622972893072453891228118338601667710463431232742486661534565944971660209372245842644929611689708268652184258212359371966261303894892275630581726381892540702935111965543038072250880663282760145990457828474531976727151006053390714873768345952380233395042941206520620872143243570035344305579741530037535836084525846853992120559401895993693559319581610571945027372108479661488850615522672444758831170904826170410708506311259383562349173076391412694483245393369116003223005772552122539783088502302973727802524386629838522411159142042764431334333685567412030652803410319793781956140656243880128537307147652965626222452105510613811520035766062457621708267279448963162527276480660271601604371914729475821467243265794449404777674791044245192853299645997997497642348591987989311421348102838282445024858226335937684105250104613082579409208983973616111684952530835154751731953220338028354045943174263134051123715780621705679520653000135622221736938306889488426761836864458378921417331996296780127963703302494387412945035242277254811422658820537189247709507911233448815287724679045245420577350769343232075716905091994811930521370926054356833163557585498618158765947477906936730021691205228406945733674895580861258066777535050322272280718076983218063171607168386808725557398830878647943677494822849004744540308272625165232382114613404303141777925583219563325608202351352363267211729690242189887177576303773246840618572850648909958844960460477427287748171201997557384883713877503373552894541029150820078582762378140500124107157647478047257321222479552065187887446651699535010800898850563562757110173602941394936558178988550346308536920512017403858614386778215134930717602723370229813676986790197457217599513037324495670242330337683521344266486265773727959950348964897777912248367946815383664451953554275245815031448171457460545788286633116947552302102278484729069573484991063340468060551566307887636034552435840570041816316711811342208138576049294110052803647339211565925805821335356606634697749036779308353642993581582767297392042459367472993650955337769464633200545887427212343527652580848862538105159271964809159049913220024696676467383238681516266092262525922952112326970414753947407572707517473392320771341264203031565113968714543337453397197012181960831764432908986351521156311897145321975646479595570724638333862753913143346910810926972935379469761937395313736314077818497313578241794413540293393140638020856908870187969589883210730521884651690103197867305699418464805307816047249219844060008505928032238260109972091602658230991332243790167643737796107326311056298628162610637805999549780859728011832831333984681545371760509143756161093769015473002444828163188196409623296768478172430960708103847015213217651411241085148266470592220682853358393747639244863430613680439619822371375731232984694495395317985702369048606364102453124447256032816607214349779156757391352052735147622147604191747980791888268812645593479064362862844552182166041277633973524954746954021956062793858215357705098089541966002022636167928199455490470589127341275147315042764069942815006413834114513826896290364549245521866460323729893077739512216513455384046259827702062634126904674263089685928100144119071249414707815719794615948995068150618153276632982769046497656226463532014264899958456216703534722232551965482145052974732491025563973326600756283631014111628210695568753231846007316304742577294491804083175161564293554077432861125113446181549560745077732830722355997631357109887025872830402836046727241474084069285288942896749884505750317800225550758683734964773636236137397566657920683506709667460294941430503294719463775144796971793562073187091450388898857401848938305400398011306672747614103910450835632612202216309921888110275712161973296827474489290201486750603070557947391746065237748894811727032041487514616146122636533307802015349685185732844448918992292634257067371141474087254237915015828330035363944291523072426484586749799037826216898749854664238277666347505967178753487757623147171452688233310453566516676487369303519462040162970171543406274731366844248818962772118743807623784684160987212204667646395836197581632865342800733583103300639530146338252477734616775798418651676764383584423137516836836530439446469247698485653941810731651453452422825083098630336853303598559991274944735770514315084646966485777515677388195679057749406673516412134146704717942681157881112406674403933675357296516910195123667310245514588471531670294818911288109985459760800329090538192078009638672475823786957310357780491174690539742841601528801221413068937256221930206692163174833256255864080124815398457319638390102886209793045911374484474740483028695402807723754052813889025112580905230653162130499221192023528126327969382675317405278595790912356028579967123592462433823216619091171401742202880374420038497511559034953313008620965364963231959330875499480350565916005504418118182074254430767132944861311123978452756033215425550547724676359392709143415670837442131895942969742608622208533691038264996451840274386351075511657196443198076571686339928705957797928735229875633325987449508031476519963660913745869452318800987195121422281232040246978650309643624133609703617646432432020025144198121400621301934426253965813342389470363408146455648830843695465445704910505062658255168181802754689421871750161675954590983771714219770235748631838800950954033681705735089055172040346934928805555472571972598576080957344714299428825041579931761933293243627075013143433688925917850550899477744026719826682399994550883257113688334948922778196751198765114507619576530699601186631460740566395179776982062179582543971375353556579698606625222803438870939082621005273173144913137099437557931183241559653629016507394333134924405402031782661175978150807078870068869527304337304134861082206036338134013788203843363859445537255381883916680769923635059651509843413919942855407633576224726957527090794540275557669282007515061979519153883698321836659611952906489672511432236874183810931842164984838548519794036385077158642652221001266348922843283165982681199299096242763220915893821506242126643265517284011184670732897518171889858666915003927019745201634910009485044711267476207287180615295037544197387455813268546500786261924256134690578843205624744985950405470668214298675333177357347108565639679540502453356025197335078416666738547815883370160791124087108432682237189599969851538710447196137685731413298622100319964591090342389183773646530861496778538167533684298700658012063507623937103575966218389882516463937236706783488223680283194775539926984808995863823601037670877973244078859191857659584089314776292359321369685615051074586318699681677593205553316354894868912377959102187885118915891132356767866894559395164843014506463778504819587735820506124509178792635858808395456430214558847678702699013993247964469258185635567063192720356704874964624649143038289817009654604037783505497556755508327982554977905891297290551802636074186224068978237811113853690981107378493717903098686124265404077141045364573433647715995599693277946326611066426040256016601698532231922775667373547473430149022515616200315115749297727408267366540650473909481560571759426985163290522276902585305547978307486645616650626194889070311528541323673735039544089406537556988107034620336620376669777101268413135395019686193488444289558201071036651078539005208512814736859247744320512908496341658103247024053719123703640839348846749788328822030525829100672277492619422134421605178347236273638099146702842775637268071728121845050740791040964314840011281937014084725477592150788622363437588173046977118305369294680819549255956994702299768370652941277581049205563719832892924627972752274416105828648698109169682009232368203154501526595888929445116224651214010775798012405158914112154472880653328940110245887951074376106219753882899993547374606094233711984063842490920046094365832519243829091622251663101668188768681915798691675234135198552756656509456454823504406702499896666326937064609554775324870666165062015596428643487768491272761774803151591599252557897431935652370448997111036322212070110433139126701028750220761542452028367051209674211509396556285241463872679933501403901576878724037284917429259879960085018072711669474953354319558156483845230653353243854539089649589991904534287915051421244866837268456625400434308560686620247050550712508469338650515890778987716709112254655538009775234688215332276853332584864501552230240080667076502600741430539020245789598120198963996983470452882176603401888475570257646288754306947683317086606561863685279231688079615829595784423953891719656081883024314922126330610532970778737212364584062061485611357035070812641409535100058431757918783741628325007861962028254869219957504351044282879450392902113138108592432952893428882031697798905816740929920860946097295169287401908256393958677065161118243454476056341121541524088758122590884996913147086683611609226692535367773821672979054527423535019830686341703947836918663035148470286529495203749488978597666231796853922037671435848390584596826785233900187031092354030025982875227785655105317441772963498461877649406614787551783440293462078210582531071995814155137060008139088235442812440628270826944384360279656596884935718355210380050930402388858940667718999516214608220223764169841385144143142157333327272693519540428542776110294681636781103983934407029556383780562606204510217429640535607876810804049347711491473033666731630917037652745134171584198583109915189821366314487787126845661397544729046348359071060996962095485951657058122618274377321124445160281055326846861060480399268838415044905718304271101303186736059459792928489117170464364971748074277679892356301619322890627136985380413835238233044927173318253364887004486049795413057689806523170806014730001907437667620824205375820087423377143757191279624471714053504926887416729407764615597986868521238339534892421858588194292172905032271942331181293503177920432558794002519598172884983959189180412264404038006170880868596352215485139105004314551292083350047394235966089879112130003117459241822547549485340355730350593582641040282363173141450870237861679318796858959191231631818544518759822676596285390479077708390004977184520063365950725979663508676925930866920785154966565703105856783761525243889080734091866851779985511867550513570700807206425220762887425785165698197997010915323996098643711627992165742136584114924502523630481257783003170545552638216974894888757413586414560082744994556769953739251036607504552857923579412001145205751430951392104071850429761861899714309731324515618537820657265110998755343457432927305803070460222394306214107038593225161168000363686026761442236299015439738136274653290378956668788848311966728556013836190061484187260539872246368081191753531790485884281607429670892991751885098546948880057706720499702233945941762506221499635887641206157489838321384033991968407217531300168750496321636908331834067789749088794094202799303831258725020013835201865113725796584678256366577618021281331102444825279213964525431794196601480842450725454577269993113409215265180619503715249858497496104054131948820058420878240905208606551321857449417618316152432319380947626845315426500634472368094279906336297131592727431877989165719350676853874845322560825423921744397609172023572539744237235318848071662631214788933603883294281245594814285966661115880665333514650194492385054636741090173615361437004509640870669978290079701615096260983410448449150885979279605371559009850569299102558450911142994337516526958807807629357253065956705949966528519352707449994237791442718451256955534126735134493359541055358430904651946559802385014390264013223997353169542019140313424187604023977299443301233511609293704174458919577546774949061730870433178442868993081525540375231458250037855850484689805224164214866626679085383858450860356314342956355381146217452897784731492627927522211957437985881510717981247803045080726475015981044931037012816651539638214014883186184737985860095747815972858307015835762522270095330905529029207664567972214783335657117016118067484951853354267113604466915952260894705618052077990913434758825235740672245109325247220339335588537135613949868331708826197842416872914879050707604755043111859987827078271524046502929455729855259602768795424284205122474300491442942836752028909361663052180855291204775418434860514125304422802787484928738659506663344828143436778373311992130138587992186992075143466893482609923705817365789975705389071324927113765851958511233363666560454789442419039141803302874805954050678871802325044011228995495040098964159068468294749038504114438176268561396886697941822355567562494421175516101445624852465349796873767438008705590183685796599421724583482029841397109234847501169655530604460472970734378724368484041833285659144602697762669148307009154860486329560493091401976435356849993822312212808415224908190070806446164196101179994005795545622825128420856068460158033312078632273911042307615765996813598701859811836171976982665246373109629068374746913957315039017829078407593113165401397142136430949430853976507995867802938778206643782873374404048619847749492923984393430521150429892413945542364109730239771434214457833731366705017487236945910861147024477062133444873706274370244123436444608723556749002536938568396681992343370378562088242890217339001268682696402025223713912302696789474047488401639593964102600268137614925579188033668090554699583048572881683998545503798158013239399828952772133286843250366065074330010993106211000877899869940193864350790028798387034685125531922358535337310877603088823469142100589403614873914403931931150619509326405413251990075670827584730836849496572167764858052390586080927211109145615234295814130745999417654240780765448516942956737538329805468594355606851755385931150498669438730761521802073535544865841326600971599773700073346604308303702733805454961867321915891798060422398424288884389851318668695606130128105331180531770682650627968895315798484956238330779351355867031937435462879785722364377731586294820424751705669057504737199944901356565972561465128117510582549927633294533960422153312294841537330907788405142330576943259065158481552084241179726389044631509284925564268413617848391816014091162339890428471391854434879669200656329738661470239220425326216304900959328414322045782648638394280868793635748344841320954596139523486968809193704344413579442605688817003396163022365487906072236691672483969641836764709171565574866497115057304001074926308081013545780807288406787566534205217776196515652950915349920954525475967786020343426602211213223695993700147510714146669181670872359495513843625104111548206995981808216181103901670562077223145500578661676934321468293186934685447171218014022594446455170387467812489486839327655428438208067232788241627291211926525240898233042372766892255478788893377535861638588304661504831827943327877676045454168340347852293759597884698275151017870136434836420196986925222698730386206161851340053531884720187096695772857478275096504798787311054469748873657063057227751934669451024368859606983508674401806654180858286658760314003276855667626391253126878167128209007426296644728241556027527956698972847291831317868190921865118288652806366264746876054594779505627879165059576518461303847645603383634720248617536374018550774493387075880864897601302046739876273730984473070105515029960593964571278559428042339580957271970526231162985465291667036609365635651073306703937809870268788069663615833929358571684192996439899342763773613782718342600477934933945612915664925628259358297961709073267066935479121365617063877475279414212480384152501402992284622684081822198307504350723459238976045830250229905268412324401648484671260854055183617670623181103953648408577749175950516565145857748909339921453614352057132637300646718203101428681732249536356031913511824392633543360586101978538711519861217671275109925365361258919041140486163955248820286090032107097555682102137902211992075415335374482742226915296684859984135169287249416495638111167993329725845406140504844221487846362767492417990237282037394796075351661575933403170583527054053339908679078500172919549940316022181160297589482450009581884083066069681728663368927228254362981139326466532489860554358946058431071515436261968414348240490839630987517568676060165315158902164966652925576006236742416191839091641968618729778569035019023635409664360085810419552542654879531261798972252712969166801258918655867571605628519592713042130479098160493373325263625422790701345682054528657427427427456250422477119536614975227051775522747327756385677682317379018812830925299796187958628145784701418557561459712921776729084932762221608381013486654752822645831381224060827021937425794331577536556037133179073738070277041059261556743073355536570034490923117467320309344511889811363983808454675925947342773770242840536221817881670733337954807264783838565292244088257752804926997315868930754843981804204359933409385126822368717656218444362250841242806969807708781234654215603367012838518336785133013612216590881948927788703055973172781428317904949283347210066404552161488634892597433162052036853071241995708069100368673985555306519066443329635493310383235375719308328772559441619050976997230341459998554946558579943612570760330366225198236579403363797552396318649991775110066441547147240581564390380460293310739082521526709963438665633343754933303779570521049656818195283443608211247676207001484974576352201783799959823167226354353146274069219560722444889463071046024950164925322838932731806616687431005763706933162924709900070067926688060737871938379692240178142336403316303105283403079116011060609965154545419394185167675065488470763045496662040009544967280480493161903366730147346710542912622747125179574523009311198640426232852300253143489429572775142050483810139188676278591151981903281058655612083744291553339044708002822534500294305234800903570404635454820667786173440151662126094972701931945778268633998408524228842467460639195613589968804784030061692311256928750211809625249968243154595526102206051727183774109442859813219893791229451462455533506433906060872593836020685896565817041327202544430986088003321089980853589582496200491885478781602586182398993440408752383496739044111361495178434117415057065800329904563471764536733001051247845399539459043733166995851165662132418844849616282591069663167375578289398946679992949800287907594896962308488810440805018827409352683012886056927024639215124667421078781939444194819209043776334623498937005789182390870159157135815324903950551341916807781413994114519750633348243565412683446661231129706808072780060353431644758639896870024726070500036973892909807545310936590115304778570224027902808898190081025634273017538988551806480431754490908148238172397404123648256863491142578494397801089752115159827401809959448962227232800418736821017432460612236135544680093796730801292111578790361945423622991987405336722943490078030735537797368595934926399149940027963493659376381475113171536567086439971369685021161521171540327699931208248331162378558432431119847174210940665632672343435250823884522745877490454943567536930686591618168624132915824551677825631416342884896054081237631744815320446612276180140634611277787393878091979610314324816772700130873177970560914665605767485549728647066396533670707683683111128176687462579362981571289074798937254029779459973204819142585925131800065397683627709061184729321404649193052224817730619552514343843508635355645534538749534616358129611763479858117024199455102511808677361811444628705170760353812153489093448088469641884960739056719355584011258273234466378805778350241956094074142702388169353629087020748377883022358074488902499361531408247634191479938166945185027666632093201529736760267029533218222849963296109429211130336331407955307840836035963171979713276635334387984648911437901156202647500320105419612226659680484466396134187844845298431301293731074139510482420707356922957918275052504888457319966938613680633122764646666704182603901864327217520190458077074549574623894336034499450851535514986227443783267975857742551874231480011697671781497744960176811745744536721618509266953567077919424429327417700715062217671354379433114610342644031190893164156170053096273724760922777932776075541472798357620512307804652745816876824182974270933584987807189725125738934913937868675824622079325707191112875407812758702790681116198496451698610743526654679447445182493592820184982796461304008556848384438563201136428824802936955021772826945248394939291953705374259200740029781563754321976681251158886589561567061395486441206018087006604601846644363506438198496360985778469570236468862914647411456105306369708356463881107724755399309253672946302047544059659470958117350271983672699669816363993815432538730427055740620525523482143823792212760506688687668655894533682946866186305350721947266580708902219483583206472637434830148610300220009864653619157458626022522532836825171449671012096948188526571352210808101563214786904133365154284022778260151134989384883260724739060513974814046511157962294237226865600608346852742350328295960252249337309625443658934752691653604707679255926001275804480217857628724826874599123275041277027733396870635338338018935025995263521176561228355071677449740153112266330282994240939096999914945708798788155790040527119595355792098839759315234590808679717520790628487959867465235134970274256005420399926555660060946273943999354928564948264918373393818207153425292705122774024770371500669370803289272475248641079780619998132551214422996023954684402289942261592052034004787780997566087301069059853125183423761335885417351482442571897313889663075429823964197433773901006275059558575697122852091925188485726571622237770910361660234483596176713217485249136797944544822961791654727053057259399477753636726929297836624751384924209597512214244275978072517195943635396861356100183928620907230559190085058802676697558570303878604998020942913796452891430385227897641228229614604058122975438119392593803586018376697368117733393755302499984632986323436358884210736119597524458636809453573570609028459797376752616963478355499371482096689489622603523734011038834431790378187468063708962614058429537324054891909440732710769501695431892762941739033001981210146325370467348599365878804142070794132792717493622648740651240748501067550317975854384787245425687222332439450758198530759801915262227524957504253834351006928321689711017143905872177206212901526232005557352246559245403190028852050185746112037597650739239265626185311831462857567856602161613942331918240977792780375226791726992005089430631889162838502004681936691938597268406297600028803924531744725625221081697949495393549990339863123379281396623340645610102138939833993653292684185198595938556763994100687100991051346328389022903591474475402166933964395147346742962852860229234007220274660332064741092070474936915047019484629144680554021998577897144125056752438834666651540862269252534120004938178948850801380548762197569150372962315609422971249046694554794723103944964179312638974613086339138016683496094260129758263554261448990933191147268330572000639683499604278863201787135221291312374735809697044261854295080970204478603677226150795636405708005724212740626031911392022384491181414283987314115152529428517462397370002504771729211634029146647241369003381427849479379242975334983508444108788884311458272485064202063310119760947280832397250321442483003778191613825793053849423598874731623385731694606130833597262540625650471659654199827218344923444830038495259293100043914974416584360124799954918686121126116538614894154931451209617385648978528084661442439603877761336235330179207019291693787989803042200639676636610939503711636162744570268065005329478687245402754306260305368736276039212584301547112233102401873050000686517534371060334300801141594742583567719679462585835107993347448873918603966833132312280889534537325034997577707792963876691546536301989517127621825005625835496677977313509919348466402502646814772574378698834376976535186913005237366886050585239550120765040822732391141681831017030374424587289230985430494804352398325030223627544069814885146999969920781221234017668731806834202939617607753310199684639858990582081945630907436706569469650197934084829532133787326964291627563866965682604467071898511909792129356157830796717868713230516792809598745674423690385673870268875343681072955045796788473635784892188299710955817160432929469678902594592650246632679753388662035415087039173999002721516851337111616002712737573265484750608868320003725700288565138725362357225878990532325438211536661703645275993228342535419814555010436928289110546426057469965564148977535495246085909330415011777131413163737879348938188349029784811765265445527013552618297671758584897218685275164931831165246049938051482595769658033164127511986597990796274953799433502148286996929273003689241006934151080599632832541640604466826801820997434337240042175563640550779354710213358309055866112892218368120284645715407786358393802583904364241575919481284995113031096401611934146615521627427261093508528213028787389926998162228390101933154756158243334908496949857986971171863170808150203864939064565315308377106088299299856507446075965486842981209613160188402440017471719300587829755901610712426586541709051492623676538411829366048250575979510087481192863059221774539686331501084729272316924063754941755584458380738775915470921343485490872783687731070508176599525525364081348634211482664115706776376471683626062221400041831317989263494469183011915753618227575951146753058369077947692395333883404506364727766730357854580662497022288481425320851714583761740198878932933446337467845913796008558517414725930836930485973624639836707908784242008922614732812213649844569839552051453197173788243586525554456437948663766446286742235098929760629623301954502349742425014424504370515120791007678539788491130778051236575039019155930418580133480039617143157076880802114375188472506789760101292329155028450026942984976789576015995953144300375116069143984789513557612330040163354422169536516643157119741120068615584969638159868789662524215194290328016041864193931726515615030051255083936139312389288183627110059193297063113264633266873920695729345933885846187057070284239062559948555139425732239319325271299936126610710088706576398607023116449168625726613624240359683864054552546746034366679421046937445073609637466247818828187375616029695449893619256171367268655798150718210040062360867382929705197532121693259225990639844061394316253881079053937787338767597457227747183291339492122105821080037472492356264702110845159487353719412822659195882246759746236199613227598462375153084204854849501039647129685717819056036881368818967119457529264820791421681452540673260134989088827474762018283142215863934459144619706938211891576773497002899833373256024161616015430750813390338789676676549769210579906031505149291596450839683102727951542396258011724604779432762745398640374812308283769124185238453607412755298735164035551449281461214212158739909675941857239489915308490070170154501586556830486413684298832600779404233382172014460749002431898988161871294546407972971528241575338766213054566637302887627541981037946283055673779468966045680910665082064577100635895499043423136078303623328532718732702972905458003285977682961034294748954082249935257404036123420814051123161400770189925374085724010765462642234195141259482832103341538475390414957351989723678466245020894652072120275201355520952053627519732514276325078334189543769916160726182180034858935900217269908350620591302539263915695194618330324947713803923363148324530963876828969025703984617795434112759683027883766415067663968926451278578468734788937166608805771497872976061271356399963159172246012881248667211774861292634289322166907478343387921769890834134457288666410119028511807005419091905644764489200307889991756430783406462770811271238230940903122540369272025446099436220425211977387580926676206976491533304430037324370400044993922415204137447381611587478992564258077932278625107934488175881960603397896646459071562898737294712480069095181165034796429042539894218078140160295359497267227804883481939218574239132598667658010427821347441044607396511562383849573470170870092042029964678985944117074438984743726487634558348139099252271747300352867145386903876256200593478052619838593926206892351199112914799000350100958232076947490767815688021087037962791210755373235939346242277521083923582875473822291527251956672172745726579603687665090950743225950604296175956242795542144505290337798360010257634997415167003847865570829952115060289556329200794041778134878321912718464903289187683729008575179691824542944161071801692490035418181192442787315785878480690370798068397250599678989137133323662607640650997915783521004581107580947103694030112169957972828506703709012034930333967824977716918395331119470833788495675840196918097363758361829475456423493331127704639537793089163861551996940368422894647348940197278080190155313248744111322169227834897562770071703791762245390767996704185928206299657115432402051956467103634992165117253993184008354876336536701280468204193925227482873031853391368491830883041234492326652134057977720828840255935030313089118716053629135125457162441585863120889996244778630745092102220948099026712802036919434438892947607536992218241796060423577532086096556457580501831622270033992538431027025310710229794044103572738684320583799218008704360873584953440687040342905632069082600876113784390888308483457140756819184760881174361093534463445911758313656990955395969748389600728849088270467672938661955225800542399086008026605636668016219167972744574244580361176357202024572513734255509161022643076588917261880725168501024826747282269158467510897127876055998158799308743915782055903947056573672550936868435181643359885184565274434014905681904747022553339518456463396934696333410025862934875199763284347435892676767027952191089766469964211578558362755654541587718291915875035771236859329177893993567567118284201827952083990579363733131354671184907136875280619322670239299607436147422434290092954325697259719035457520354883604929324629988612052412333681885908998567818468066925513821063856770233966425896602289711514019692928010434738026609829006634481488312932017135444245321453624553550745518134679221231940388208556566995938261702837421635685596552104891248406799004199061837068008269710431141216505971622665870162880128982993217449581691976634390166475013186687583380770967520583370409050895038586468312951868417292638742758644797895902541184920756191848565818268233036338082230948659950695633233623357143679179508892514681581700120800809355004215120880601954686100170438482574438574731822566874607093662443940226297092239154462099317151526513571075893499987784427698660710446255013771942450887705132568607586579900393834790397578415098291189717801271752173307848002155435421236838309111673161539074822266343302482279374816796908758637959341497026762655133713236987473516723172428796558871197123659958662763156632640155044304381506450448087123067861353865052534015067017583777980060118151641531706106451739332058033983107956771455205041201327773869195021281559203734940661099882805194709746267317452938000809437066170514109658279491165070636131079108703658887593172302695578444933252753182899750791504739713966776775023823927442049738973077692609111176432811568350169280526900818082322550362122335270122196788703666501660136149091948832712238243352514245866217550205678303332596622683653998372693474937316982851703068820622625500106920131773055553899868181063155950290224648076006832105668346673110816988447303793068050943347617732725643500663183456359378996569590430813317254825741903767604559778457413404020553284791912765717211243402245742901170505162761612952056250883545610924946432883575905899740676502285458746315803317433038663270874973173055910196054369187344954292325579142504147128357285172546034944082507244226524037700679969127550640864590893096470485381367376797348098655466068113606204939871902443379047343723692451459390696820665573066974095040360509893482441336734419216359585922239086031757864862609789925963621604399817363627959675019526351435954359637468893466200563571320708134135600915773684807535699171231916553796254641446679664613112490772801289100289706403826933963405657426394800577367214927658714744250386477858770893352823413210944209350477030774930307034747718735324366614335780741963255270177537573580541123017396069308125756798575095247748311276312856411862442163483229618017471815666738448409515994100479341936944082878865454413505186209608815074451675183594624280099092144560545552072616216195382982205881811953191817978620146285256448250685238026490846697329798940073970833397521576314915800362733812490385117505841486021363892332926629516507283142506370314505010752606257666990494150047662046804349758027570796893337099473663527365957224618166214071826303341654762391656213098329500186046681600365297521195749486741314145717049132330622310760884855745014313819838301434856309771688948780381769424968938801683622819173221184735403483895865860413756340588150005428454119973529217061010459443327646771068518990176706500637653476497368891671702847613838673729093179108081943819614404111916424485243089235237831244915819807105545419030664872401267555905419612032137974412071096283883251574261109735540172838367299797697848057067009670230180158458545429411680936829715901628068845359113796222932892292956977392251744304162510821267606393376217219231407915896453808562948684040613717111374537852451673845210134598324400694009496433619491026949344299464574733674663077343133638217747865191816432081100563054284119179746648781404470823528427802278108671638795256675650895593385693441860627451098017519563072649043191788583103317960371572698544948037834028193975639922699174925662666891543802650550358981801448914540291184514582099324732795013066858818858600037871008044415834496725312223130197215001052179930790367732624999153735295618551314100708996278565834626900545893108437833573727944340160782100592967989462056106815918455324253941902827477006027717620407006167221810734890757067992932668118459855202743404175039917853396653506177036066063473151030843497244146533105182387201922155087096177081959098716951811047966042138314991083257735958590725468856780789193806871601408106866388353042548840962571200554407890817435670916785077220812355678745560118251660404789063313425620593841735185096639968460229136773940225914772972758962509869004583656381600453520093376646041899133665852849107682691004936631262041915158795048682669454752466852848963993065156286130783794261375715547641378564334430398408121817656926407359109776486760798955262941043770207621433497503138986593186217643995046199985628889518160164912526341253617961873927234082589414136833059705395036684285678059690141268499193614227315147953229506860647674666764644488195374763219251041775515377438060894982397443129221509619014281638540394260339211597665244482373958351064736680900209834011260152238186516245149935145714972631546944093660710960285619091795220545649598329672527694945952851898300685676184993504742185104910194108369609232586469631942326276818137230731412338364520297772704868454817351024990309658592916474226231739306607572412597964175800479816967719109863314581141751792863075762120457218777772379896502746203302096237333279682316425716680979681229373787379459293515668371301334658540902096930475293405518945657453598677206442903902645042096113178331055608925356631335164934689721361939785447855450600345054211000575588952507277801510637541596141211510362441671755996377723047241638208651184188512328992049475269304444206554904219073215825326461810273561901656454054120199870578116682937534509686432021214456066143234968451846236981303968414321481629856712028267607206976126399587877656223764660384277733570087013503330314444581601134839038753424363763684084446247180246509454703394319985790200206425249116253245046670271999116541563034816057728176126505460027583954357434470089654731852383809657078586830638601132621449467545099620152801599898938899700325636724690347287272485667674887441808967193741660078336863167417420867106619286344062760205641298989054731004466632985194066090919613258228547615365788811859673001883719642735867906444681750886523437182852825806486652234307105996706597969605095439629790629978192417067230197716163590540428413986374405096089326292034679277793353649266055928701565415220564592477718964825948896468941912634024559919959803777887585113242520299728958153939631440865877271178353744096583841685308532645634921352967385461206962520632971678402996497956689342941191715403340653181115239438761794151537009750547028797473172550823176652041777277145877662402787597718918325872160726565866729470027430616781010982585303030491069133731664932915654927247905204854663230688227124700652969928258778331098957751245704763414214631614470213518698464698159172347824240220820168823607601429688758598974620076596896874624443355462289433573507542818646446843461669794889373450452905428884003453292681948035093606374207333532382400205624181427781138338874654748009550673702274431511644471143007366827534405851837297492893048162870870189294796480823118912481751092908816008233250143427990298891504311874753603211358003939574556821703436637837867350382881685966958380646597314186359276193413382987328402995235230412143557126069336889969876428811409859010656923732050950890809145934897799764082366948990666909684183868601863352620020797301025602365228636839107319723798026071854060414853488354442318067876516074657056207455789966631247596562200161917138445681269079124333250231927973962869001285127916099961832491577191476155161277071148110589368863567715440125453778823117625678370836909471708085214670442982095398180279319122070294621259289346296641989426701943475336584399371228665051491659691570077960137367254048078331136573078555702404632870992453817439941015765336079797648247506331288736836498384765042709203883886877349019938520217273073871712684351529232398147492867851865803458343881275831165855837841223694256069473913933694622760358509044316259266086779728827573529637089282659013036083731502357992932264070647789189574366407815482800675001311145702111809610293047757984462916868366516168201509042357519445048862245489460205509106818673901042131754854812714139704673746358884133433085630879528692515908630056783374818848603209684070502298799019626451189719001776692736645523642037824232917312160371556373755024096351629212714394850282812386682045525114351484231493859080127506531567600998381949367756820949855815863402509859403687057247604622215500709726644795614621928146775061134626472740388054265814207079573259441508076352164640453140984115001164609820544208695521973499494759903543367772454816827946722321108371578155113330760115950725618078474886297406289066087005170301817461561557822792108509270168359275798219233761209481600430833290293235441091833917230589088986534733940476455740061610997347810622962121164471650282552652152571657331412605793133075796891818100007706511237442912352288197687482053930510028768507632834696393281769110825149007249205393292780808219570247351309407181739006890872244326777570234672812364400366491832749790690495384043452487501450491472384386312450883156263472233251998699635653842928661659789042287852382824019839064898065586082901045188753147453704380057536307755194376347159053626902573799315784674530191546424941925163507908184280414872625355174305766216151694667239481982295699760167646864507136473797456727022534588273225460640689565250401346413730970704479020133234416802826235384599954178090027806028266471836112140668728522958085417776656815431289210826376700631916223661339507705726906634159729512789248989102477278228770921399639728014540617066149011125657658330925666574798453763522380508122588262183316395367887765036913015034564444953794113319395915592898807545101488921646241368245271839710352581672065673554808915622856503259913296681509796565255256673711635534957956494103439850897759369232071043944050102864573153872941621944052720653197661234155492333625697203212886497867707173520783982248102040018071392559783712761922274774319541517314319555683987186646527154603994362420840570467297504836766412006165199621998547026799259108919797529196625215396719618255029857570989888008140585875638948148694577381611563643788126505080974282124559465668755801189353764610981343298032763726404055151605850514933051410685576288586480645701899214432116245996192264205236359449042044986730059008462614936268803762052047114237715358315796422700810606269104354000304742689720379020332728076554012106565174254903490641721889183713117468194722965482339729865298314125398873632831056719067267571945822986513182352806563811014215726155093847613237296522133242972240105156193107898940757770922182138685977670080511143228150421536215901514962666471361233445592303589005381401234587154557960812520767718697148620564984008272722537768983210010636559389142839401523729131908819718781658409012454542078395903923434981100198234194541089980507733825563611462532471285599801314720672545626381669855810313657262401752616943997435497318926050697466872199319990371516224930216058585008487910941357204412119992059412481313328140117042073582029387465183810273537062912320206506518020307130877998931575427981344236976096604200639706438569794494820936475202304187799921930340527064025792100081569269237522845890663472973661565919167369713832011143712386295405037407571731007562053606200599182814838608343441201577211958503701262901890160409327948953652456154504004856633197325053642603647762298480583170066108541590565069062067886875764937645848438500646269092393033556247703158644583061844462715061719888170713488310527674433152158857690550408343165097431284686115551334077441326660861207451413091621122038048243558680482887414782984762779245127156787997050509362087820172695837766783474427583556889905698051268182658244380420394329972969041212097218601244115039653168473273760949755358255299879180603258360149718307020535875601873858598061361946501328188844284582300323278376237356964004726976869399476145135219044522581477019565517897543096460721064126585198435539653410225226543833824308451222488296066566810204248959751846300017034612147897352222309933957010515867106688818599135965983735764694506742286133646575788049070654792375524290383727094383616919950800093686757863850913838706691942946367447406743785601867394224269612580178716593462913964565333622431534720871482535806079480203743515753127844041454228349910143696755238044516810266423252145586804740535651881383735378757906475707416551743421651565137228787565887304042742083687562239500712715389237146580413691964602613766957942185053021309939321707452527507816154188522541683568802096653865399442447084616460373273316657337465046044293822340055419904552142773098775414831178752287019635505862276540006853908171220065006203362565076172410196348336267188193017912443048702494332077905839837305878180864215114211465622172769314762239805778854359431108686591017966281440233948721840726898560030012299490003701389334286863776559090922753975791330626233437263806944559915076565864549551679900894352530584568761257113336389759125300598095768464977838526919837391226980241131849140633402512614651489327134234544335052716923473119130334665120690312082446992580819217122589175469010425689890750444232518501946599135267510706813053166322006669805367529305076625112014177845892155548482154431723632481021614692278466529706536446989643888434780634812450517380678592887467485356835199603817527110061911763874100013120471798491476463251072468382707417916255284273756210362234283460934463656097887894647026760383725705357866481073929379876441728278634322379766097698932784048914741210246312597664475350209848803160849975049664183338474297754626968694820989479586946019185502436350879576869937234529254957386401758413714632097016049575171494862622666786041656126964415015790794004815771044905755849621545009102443933593444909443291550238773340749244758500196998500114543592971600779099366177352993228863275543306122329209000826641680390582386099209472908804957249986727703826916870663913968611801441065716856269273537475343085497833526376414922820490402822630440913474581488469709912054417115022208579603675559074443971759345890902601116463932179609086676570474243659138839694181417647167050366149688178313501514127237754061481775349832537508370550772286216189364406178038970800581705207724609321526014575700999047313467099183748660139906449436322475488629377968513157945566150216277122699442472721798340592778553827509877950285395099406989051819184342165916891590330914564728930004764813480253281341357391856635362405779790383611731574067641584512718873637553856585875233958460214216139956389537016995918529331215890363223436193536745041713612945328060441841136220027252121723861286734352133556795676073729371184985282892196853843679719475243031291368552014174299832430907222977363630850884011669868944967412700202189029048078737917620953075908928095926410811148168599484309523355425514095417488352539144433905756572068408037663116100219924490978318534631018214261897199394874449561686272378310124392178032525050438541932707521013823637545684250095734004610523012432643349907255459914712976717808835708285797436515204335007519710956003054045622681827871220855565625684512892177107432864081656993218303673976555314174730928807965337424018306559404835439023410308948673218369409597696891886565305392761961171686629101472198843688937019801845817157905217338584806318912759008308793979016120894073178238518616989428039379733750679400726159776225021139087311887395131335030972227831846371018238593366795294324456604087404306190764475694293398599655537271063322574798563280052070631043411978781689059487707883778334097681002968350480121541781120146673588288197317695558812842893082480155194716635968815369796818546104405005874043925753592277990357411658605812006761171859903350767157995713819275250818339170707383415359959384143798755276215627201990432724837159241553588621410894280894502947733408183188181766522363896696917413808652957179565076777828306169474214610053744894702116843671914050507438223403374786833145083410773396553636508893619735522514201783857369201444130505798434099163288961158051473582542414301561053538018996879359424037354982429172030192737903490716973687697509896322473418188645763819182805847939040592883534081115183211705807381366027452362011911903148239337021118723414699536917650796081444866165644775661067217220107972252811259114425453476596877271416133586680981701866963356429423912688587640034061962414983694401098835407974611204636855491930622184239515828905376628122791196195021865153135775745883551186731737433798609142848910288165405548804982918110531645450179199853019644023340305783626346254447025067035106676352497440832366859199920093732814013572877427686271277487918150569508973683943225105891632544231813044700224572788720153541373414727896509438021218737676286921514079549886747922314452927112851300834967922781988364645814904596792689841554468937059760237930379930293575840643179962546344681100124748148883507926935719335075858364154846987471860801562529393331657038703411741117399329812369025186008435571507576264773704856606819121891161318014590435496962796703010936769667157678999879546491360101222379524085193924723962451510443908671282122258309576628746081286001096448668612290922467306323853210221320992022952762828008140492096405356865454173256328826447532698019167598824984611741184630587384028096643786774300656255751768949840177224076742811469797666524628658545557444982531630031005078397288280783090214351189179954919775625323167059244934080344162828839088106964009926323936421152280377398406418205583215318447183227274587846677193938761262152928244552829618984843970964620272090903182265947214250802756298309594184857125376218153576686983996114513687225536072447560717361014626757308147180957732973254341502511879040501365461962221775024380967545557673521276199727622578458073591962950314190739717822802831344215600196588033870211763712818550606869660808128473818000635625218263300872578520324706943053061473364283315671221391687723176872262678386853837609271806042674945971258633566868166344187279510404853664798343919210975031528911962155516936512283522583938965251530209050017268375130256280812774250958333333904584603244294448371008475584304615867739147859584182245839404403708851184309405187999640098118853078896785319001374681260663996328412654710436120647665912529496366655786473508734261972117952608633487943353791046036674908949172058059400171003033608063493495885730865890081874678061862260348797097847607639707392447092897917888821827317283380084390922213664879521970839537796825506607825699886806542448034690036447659760248818218475586461610038325397980490726309417791784902960494855213539186077377711464021855855970890028050051292137289965682871232877479946415783841553927863652590250124379303231473316675804321857738326643534269610431071574913255958202818756827923653500223167841942316763211482272765237558301465746154356351246576252159205037670466543614143748053407159350987841398786314550084286174294167057444777211117002748012887090779402502370544042703480143028905159519192520313137133412171845018912860301524045469020341596663382619322263302741008787298803841454544458481462069575376280650662462830068322793396979841700528225579961572935778223801577399876763124566789951705201388981655173651354699701963933656851641994617256795519728904098370398418389541162823834725535359235831062645734730958300007026295610265394664301870221075433346827056120473988208153925189812697718952167550856173908850445024912079310030870274827453125812613898555583303242662187972706391767174317712091342956600846558953701676833602770411580630952597058308064431985269378421299074489579012473602649751663836797267699631879971596451819405461024084363505440720792458470202436947272604913054953038813123441760049770245987943019651366157901124534623417124073183349159775591581546659260041361371966768793962183335657622664350889628826209494209688126809416242612831964564479957350305688435669172081916124299849103150384911984806298973112192307214429831350884947852722628287289443185669442646163264718506986469124665511733038403617895078780012935038466772920525028209098359659073964047418413669346725790615234704304100069016846079289021615742306638763573236496464530670318732057249814701023869529009544897780568837206909891166184474305896067490856161822871377238031022838801264678375997559534664891892991068010735526452910709949489130088854052371707313986577262843399947240630491197178065768106295499296561428933368209438391310631922329896260875321781294199845545263996477514604281178062266842403737654139370221983516545926868812854294725433038692303151085702968842651049489753614332441531117636174352632991148903136035713324352508773294619837588329375655234724869748916335568784815275043737961018972793439719383219729885749944460076901012690217317031964546126901092754912843291678838107306769682977809743348040038466411132876881460186448430459048786904555167506757656257166637124250038980097818755391433138818936318068098424847368374860437803241147677151437796499682566053236999104477016055782281880386905151755932749503557771904009800827328622413049991854964619803935647961587549759831058865364039523254779440772150909445620062713550696158350121750892881955172000175347567508970690685698708648217265137278075705476457468441956424369586620022055563856287570963111564773312758765787082599602930170207349509891747593281893295763373109133064403745011888031366674412337948407833262045892102290797791082414072626622116610108339983514842449910892361430246387165723642209225877665978535090153018100493165597966527721103730450058363675985221272797996954517359886908153714642995245081801221860909387314068717364723286132228804701467754620925277059095010566390932923403579674867830727757330676800649271966865724314795649280922739349032108595815780493961430638776545888656439532497750022617300397687540497741060830770316235704047595507391409664078863890283555672974923022703277221023603175464561772897660062006572595687309906652681535365606172845051795898200570492693121451702950890538185681367208216503269782414080221127936536033854233869952700181676112645823312450438843333586991574678668305890632982029100643575655831653088193552596420001013366478118298664410784928131987003705345726049608208359483263562849967211044280620278498834897025912082236898375432356527733686446410109802614149448000388262505568792364660840316520660250014790332760113099432002778060818600814688787359413184503650724143284702285054338090687548290007668251643950128312541343162904488742607371000394803866452745604033804465432022809301768918331830546073075219827045572676380854027462769064548693695778055040528370570945268703714905734066139982069238671715828158569146241643080490266187185743375671589210743513523889341925524316965100463404655771178757965832228438520246226363359926747942066591626078353530362632587824791160026603619241231995347667007748479241275454589067716275546345323535243266092837293547373622847110583334139297193397625531972662027663229422058095866003890024601828958799370029024322339157838008750149432820530449359322063282729996260331771150104992419989056559075105076578630221116869468243268235719055897742432791615640741479454856047821723977076756416728543506347136030267190864391333784749490690702710645382607805866164958174109531441451190892882906685853538169216367181682966322060097927487072576534507458828285799462058045419389697269912564812719027388268447909270152393992291589283067136184342555865068680623935478139607434725840276983481443457038435065279892957851068162142974851856793811040666819466947163239031104632553419162761880835488215583561397555694657904831165816838098548275090729652173495833056357086623779508206595597294962245752666653060864191135536753936062364700030657053483770073716047958336132989955597753997755580379368007996281079063393008238315756495622740097604978712804994131183149925506465707733583865733759914120216409740456278473368498293432545761694465905824179550283501986731785416658986308385101072005972739213198748405978210912009037805932397347749953396090333461939202852747653606692404976182853391893653728550800808604338743154044391528877429853363358087104990586035453340655340757784840033328157169173374366108953957741232120594481477927347826884993616306732525260570526058613201866967184215424203905302852373906105618891481633571834494647503261795125402883415216250023239083033880350580571310342862155714004860998935165577887199456883154490777913803459248579572576519142617102559361846061357877399811566718106197233427020269705869775375425213597507872064217292535754632386102672970930198419045782608438138741160368330787498371619363958741936518599578820740846380914215224459856302883688616699224901452020877985566620526315673876030494359576409915408263054986233376159894341411199959785686399270624683739768473611830354246216800037646323634826873796473801743492451182464675348714834475494253903138188624256189247581947960764530904049813750795099188314450039226758972059618340153728017547059352445948716139343580685509350375069205324163546495413607380615232939040293963648956544506178367184513671576386278985457639737877817305381696579470680976794003422931493091844254350383575178497697522875171029063964907268831574048573395069395418048050875933386041265107348495341961703772982991350190943025068030410660950076874792072318149986408604250232346464879049800744306869217019205387630582916865085286251954815355725737336542399366894009885405529639054307660313773664644826332791578728129036929999153391732869384551257414217027973509397940762954078826198174764384530703708167702926636498682515131465916519351407791513521971461097344324816698495745801651966894241689805668101154910445022569030156508900233203450923434214991774451582670347607999766616838972169628136794214104422352236897245371962937674828727512579304797270856359679094875431939645582899746490431787768173860354906353997336059903698797463959388481284595563923135858683412343032030044170742212924901894535879907293622723098668814640510114838529307328636469508354803439148487873420531524030515581384686625573827980975113590906525326904168163054065808164725628722481383300227344607179472281168124863926201939791980022085534087378111775527920716159787346312900825222464277912378229678350760339205674036602887551154433214928079126984448896637023124926865162367941581324082832925220982896664069638442711998089076451424373404035738685684705648141599393833710018216342100430111870664512011431782082836666544349720427800797315415931496358644586494879893928346715060974152024871478046612350695623755787335935779789152831397506430194207632853338146943952297416851808299000186325181897488378279119241755212905000765368466675941222791641597666212509690752478413318635007958148406843446306841962211902185468159651616444956454401970511725562249655251931130500724355559756012371525620786339490162309991634025710333734038666855582241272561800659421719414928364242700360935050795020602595395149277110862150867329993907410203997606380833202897984816949243775979539048300496551890070529918029864513622458132489802779945210187159447800006895763272371082328162463647912015089713658669004159254114508405755927328122554911260218396810724547161118714591342985208759788380393320419190024653684205391457613626703867811073511379988072901417740115087398069269776541952464904094728572202461194965820665608616850222969425599507267005273095729701167012244070611643283991640457574015041191916876254754938265928036638627604073181023956427750020259704979499532807654559445702579073040514031256473787958066488511078251912521855522437128237052705738007057224586558364154179282628548092592538436441713299909147828923835505474140915634601797758243124526479046083011014274916279158959785722521116319783859855764003218846245607627559694602782768751257270526056070733902606984802078255682780314440367849012397761816985833432827194807858317249702326585322648644997068170351949800741517976122482189102204998514388371135938898645805567902541595911700936757074988740650830845749129137039494897272117346602286755476957866219945449693397307876745320864688898282172054631105362802775900906420337092777892864729641168260472227860596317212143686675264697669731255057371629910014007535394963403435698577531679250970899787723740547359204697764547948920361590215993525701084765195908046088728053582470413381080643604662071998426950470559072089425747330389309529488613365293231220358796639545319489138008573972913381498083348823886855102706956471091021701017273578096200428897693286162873517661956272308736719209994624453054186992359079281198336551814434284644201481289953585492438990091958121136925263410293026255783445695180243746419681274360850057781996399863621295000850725669515978993215842071124741273951480099445474796812824140447820286551286184755854051796290725585528474662995173064024652518167294108500818411719976947526958609624392838633519747641799830773405083851519811288786817587904621833593754269980332865055799658992807209267735054307408571018729793620872345502776120927763431525903260543262551357640400877047338214888609182119030443489763038269396350758845486161585760824825577472416901115784876114912634948794161256754809419518959912722245990139337137519263598620105667750194168337534448372316854844750842650586634107449216179275199684835228494707313112667690013816003438140027488726573849144358191312648451669846333598314998403687150800262881154358011328818353626486729001533926041384795493980732931914592215450323266774413719571859093488661048008864422375082972901794748289212217176159886749575437413105635395018448506271909202362499564225722005724230211743772966231759981862747982833131708303409938606613652205021695001992073577043636948059373853667734703708300692397421916174383141454618979899051212838005204338875051413218697402945105834874299494024521703337294499655722882886268532199959131323511891590170204798511249386109128435046630781786364544612506768301363142145156785192754543843979946753731583363446634812628478513792295363091125073847908144943934079836829721611143171851731956304923950192369442621215087857683970107003382778856778000766086912203096783427360388099263431329877697205787002502081689054178473881996907878995061112972334025406379585372763885381035102122989361723311724257788573647832315223286234324057927088253147020287989145027395874037935255584022777471001580620418040643258230832508221116360811975794034878585241832664169472678775354574990299578440793001659266697582215102299647038420984304386239429279891962409257666964165187767626333982903060983273859059972751086552585911404318711441734896958889360143792601573680077410816816343775683639868178741102314754079367050453296427081556157438241979562281096951518169620110459221594855262015184452362426815852258164588947557482090829393007325227571085956998683357319867570968510218720241963809657332508839693939372407898394249855354362645578032703653871101300466488764021661379268857392244375760769319400436464035349217102917669631493441368756668161081839392106619989606600426308077041197560518122858146019325439344199306730634948268429663709243893125285598238596327156250676728081642111625956577301750335334479058238597485299303459467569424256619386309366809902691757521425547693975667201482319071697367145159498366066768200893383125475165661487725330342427658545096519343464894227142837923933767580029303026370791529037281736255398363166548327325720808825910231467622588568993435244195325063686952596774771155109820613461966339975156867562771886672534868772611098453701711202803564803594520327567869367286688219878552768200208745517947322248591669300022355783179320317407889268866289065936689067154317388158035444009591602749343835933982307312856976606478897623674101148327126766607051543290332218589946055080654820818995829016478319890813696310089664562559871293048193706822939276655751451800429661512181235291127093588009975446531825819518901435567334747397188533813276297873789840920217745278947294348254833194427778025698080785926247482579282607019293050535227039254755478109624978267327097742400795044992538812436545163670636956235039359452509047524029087885245673812626010130190571183055098652546948538221272643652456857750328343378018324769112273093453922118859221749137245203133202849975560797960409890923133733232991418898538191865948265667898052027453953980341807472327037216427115768620831602534641116342016906003347457618881459558571466750860158247249533233364488229083227494030160236371140427417272888105957835510872098540077374506616880231339950196049545499907137794408860968593505136720599422316637842436347636738662553338608524611078715921884902961519083481832887863900779374920753521655297787288492148993103188144761929707270979604695566257288895894114068917425236516089718225950568529892119297703841229943385393054361722146144136888858214396285445845515788159991619578997799108290060126103301328285773742695060250220501965015145319478020546911511080679018465434885984493688326353886399847254662440087886606475938943135120003052885674987634872316018947705179458594041978035139078688164223973585547708918133631970821329731084332256497820127580313207976238801007985978243628926703255760122834289076200325411192152221917052422068605236138066013061287085396215937830247021523745808114740603283790293876552146107020795329925649189271540255341591202176566348407238216657890411854469339489751442601282021392647691309295173246465973948459302077038024851303781638936995320665429364489564188463345609462295541014851341953406017150839597704141623405501043821779274128309872966722857021796740326093575951964301185361460062356929189087892065961442746541776734661060445379603805197590988799706247820818191834762298169233018791687717181646014717254195462511690601646258890279334093760543898630608081059157046050509438034717326723066536272503627478543274370556859112837573176296503862216619600241522992388022261835088379759491629430069720175012080806743504273422189137456076288347936678038503165256240474635071292082907791970270321436570934995123575512143141722218251410738953518086175815507173091143304174198772639386170329234319601855051781129639006395889976515874361262093318643950385585049225699261341453469514407828319239838951128299677844599166061892044582241906137596044913806292548297761008634744002256002109583753019597390031110855875775712876330882668439065189622300893748511635453042938220286331116066723315453901030417705030565850380673662973133572516575645756073002699530589308243015370814038727463912100956633167353758131576037204057007131650767009778304439540108775463007800010416418820901568178382741668853242599195709301634943012975765996909443876256806497484287150403322908216107243072033972063800670491935919171745919219348839322507578239253692609418506442398091727696181444464627890456630614201203285400587216598875713512968884940755217673266327405255883562850575150622838594512298327257913211700578242900141464336866677841943447309282926771572361887330576094012350424386043609113879596466632572893722789539340292535559464705906951584830947402103022431952907780361907059511091860601086470442115289956307594351018765724330529599847299046066047073913455106494027344091069317121592872555307630784454156803431319184744068719313261573979549500342091661760613399219665609663405888214788889401288283429075111762362580176232892955984908167912870084965601095348139886040905897731279067642330975284087154545616719211042241710713260101293660781071110518198881658667512037398130233153593486621613886605401968769211720899298313558836504314491350146615785486484077406373156172326324644413147535167431730729751523337462564486469441347937470805889466089853108529285942949185218331782539521849375260964611951726457827628206223820462527809581746312078038630043736650565860098871713181277416490350884085575749516691432662970507501068360904155817949182976530996594116469521188077758086801226842537121173803604951072584860548670462051179817198235101673427205263152010484287447686358757155847175783517623274183999825218153825581824926678369592030990552272920381378500530162503868658416550594391587354114161590321894162257614025466924984977991986990016919756987716985545355266993733279452938004784663438255815425620044746481423360515472293621500481621206739202296411328031815835704787869725649458840943732282525959523896501735269870199769215591950721850847643676654953383397710266664269189494074495317627180876943551650888021235306348627185365852150430493487237920724666404761548039620327112882735724373722112898713677378240414804888988912532464945211491077234577267081160417081768403517349224419437605095444083837129087563066890432143203109438668129490663381821830488984834736123449006255752570559797458142341945238490573795723647341399945070385069601752628916814072360424237552216353637280731140553557635716920626760835470883147434645536199241970397007705233257763315017682584108928204545100765647272857456110992325276619095511634340034873331278655790997878418246799730577783237798195433692999359934711699864671682104469600301859745187013824673430446080540239748827254031835099623901880348219775845159644631097541148914258283868093451652387001929470218960514144210869007640230957460372388867806070450442555357170398019414305168381632386598134641145274717177329418816773416276811973956726741650193174900443365469245758584462888901078338993295182471924241171068169734087374917033856903552032768666965065992879631225888087662953030671968717291647721242461029418535722842745056153227354056952735399275892624343869567907379250587291312531353387221774357294474290734880406135478605193774706347850074565518109442708579072948143569737507070390838203728011422965987048749342519890351858114843155569268642493233356789023298149066520458025829240238316587881530879628282205163759406242555811483371682332446775559404979457943569573303689774046226970725816178270080017095751826015323310172981459108964337607342685787868887068597584118415156719177112632888404821765589016370505653976494974567636848793659601951843032285523319615833767060771074550203073437836127354193575787156025620730041074671490115350731970093424409701729487463984933790752469930276594248162115175811214201161027556026804388835461720605367105148685882603738206282115977429880942561425132265442527072837009810967167123029986220278463445527581614755738396756416761586505024768670534287214026628312062097661326895795849646666027046249017386146901606817309673751381103974109148932933090096977408104337029728604743034994855324188010325183110292245624116241788770036140392127100383672004860533807689180969171841993201505355062072635055111305156288536098179606130995781929474314477378175977579981207823620686409725157523802386571800628945007800702115500668890738604515570463465608181910048861942952799810838764925360344876457576868529029763515354724261990378674660085766865463473310268191411546609370454417254389453533207329483373561044245922293467104451234541651587134095123594662718079127851400696483077120906837996658959898342841480484802379552058538545556976539991231091509160883529890452368375910431886356579853809923191840274637278572544776606385521678301995827853977307113991415792523023071383584261430268980157239602479166890753734826165891423514084418275438400981560288745536548601826912780543670872642955470325163472135137220578783115153454975570419019852970340294013110069809335268910540053674797776372549430000066007891459469184683358739704014229627331404295559718508814071746621190411524800142220969776589561516136447646209912148157745265107140060974400042176375459947648819767072101793036511027347202263798485722723668968781036052841807608779510162063625138363704839724931621663567847522581355664313603785136153799837855366990862280624505771365237719853588302056008165012086747039814667281547378313875633919192762174245343661210537892491920008375285984115259989341438828017216520909313199093047616082427627285081272766491151077341010411646560969150424121220882996568784204732117991229813115420257674055419835395272307078005424156873282612851121003674643781287471439409954303549878363452178127111603440493008063661333765176708018860940640768676562621588756040038555448444183236224386205988112240181945238657820357175388695558155799702104543647860441400846730845978152010151113585389429905276757785221058698474039211622602949594223410541346930480597606191858243384428203989976360023044889831384095296565981812155687485326548286600229644581788646955986084366608719224923660604716499386311138688633603398124261510635524792058154679724615356646613401716927860668165837070915460698995764464447846165192354262873463639725563388492745217265538051262439952572533936473328890168860978818671390235450330538010032315177752163345037669324465368878850234804837141543974915373088700248290795388306898784219418406135519671109685574781967746190792137594399851042996877874212061604756657289973511933739222470357293016313994376661996599007255466266544112795132876921755612472792070050128332456906601993639812581282456333903717746774515892879492738706691634047641057935024094826643063621948309606106150121693682272944967357957763190768097049290318894247750412836121987741411133092433548095140351314395504231567004532670234676517381330390004289012707819626271773570714159138568779011549024686040981557178497771418252108247401697016862808445271950476368951881829927961735877668709482873586967736085861331548304423582152009037954657615777165807118262834887193408946671191483956918291173715409471609795071721390255547469141106687339648887564650319057715140053332966580834353803090245083045750763184143552656574302239413950173493268258479793270646851565884043414840258313975615061496759191800076056975630231237568583929765609238166242838935795471499524868194619818859272791146304271131171501424136142819457337363557516544030281887816179449987328893212037876120451113602400782088444567086265192148166185138495027875779882617296748263581643495683839744921561218176966618459669056687497532924047334841938153569662378651952631832175904236616388614986736189546149046881271342399422017172045586014677450160587610719929894250788755036440768514599878105811449654547027622866932718375628539741494354683044255600725493639519478419728471839393354577734899996121611678794939090205056427701010039412598623103588544343711246244533096720781933109793230703308718771985342247167855855036591484424055583321974018779421728129154758009386383602623489620060598660195923345859142635359655341580832906308440789879515209949251454070366640547434070609441106480661596321516976609866257427183837802577026966388946728833642069954417948595729975690120921476880598393174347897147558290620372389048936927427148232987447405482392254187528977166138020252321761949584908850624159252964821522843459468237538612937460021849652970381674460907041444755850533892943961807243889866458020150409911445329907491483004014254311992914691861753316199418459876456386841427725424845673398752631006307095333759627251739165914045445626179517434480148226514314263496664551344656929423421470267689722558342781914307134899890801113510611436396965606366066876749441798547641932368474657080011692541446666721507069365479137718137008829671614791130291633084412016020981309059246985382250425136713178520315987173494999059388869059164475682752102175770444896894513432801403739059729499968033597294624131922689129725780834029569447227254290016621954995715998064500571556788694048149206346508751826743894922391165370035706390913727895657730054211060668901165750313068998159342787410240023734952242080981358772099304015876417520889574759135835173791822505353690904084692008714555385225541459077876587656938283153015262212748916618265228040479431961261606500184806164780932610933921502223696541514618495236741685155194824715217764926564718282676267234234688164706625854747892744503610445913075432867930781770429501478919991566135750118657356075944805052051816617451671706902641362030582204910401860840421984143637931822728728819321768750077929981737479724299108591376495903297564519898314711663606899075292373913782749320785819607413181071581776284175968304075942583211275160199723718742453393135569033632414252928353458888998273855870522857717407602032001055640689184470799311804470622912332442994175246369617865362826471865085745144413130261411048998895059767211851413102661578720075580317465585982552721144276883484125216093059109102788857818556863884299371671902752987266693042165751518354201155453097752385703885397213826563619597727140536434476593983812993025969067864174454569236198887107384859456173931882782877269037834171451866552753173003008734592756168447184081777675861032317259462891889795209034126540457218368455708152305951090628049294587172615136238742563223874745288808686612296723335642509527926559540123306966872677775890926941879370385605033240641912013243750701436175190441682060251277469788249612463327106704742715005628705857114271029659545143904772700650603675519651710745811080205778980358843316515256884804170258478008444084489658177632304438641580551831562725661386854772172490019687413713644881158723889240208878564795840858365160525418746439713054895954350637082821762417324797534840313953116248970134961020691916398662240249885300557300930358434758368759644604502268705126073211162707079110620799867420799399759428939037003429953839677073934367214910468903836796347591828302403443480662102630343191969208429364302059890450283478377107300078041804547296733350568920342003684981212300381156038990011458980923724887766660877883551985338269065906963243739726776286566383052845011496746429813296711258406755249983945002592236355232447246794079205204581380375004382299375627590074843029763242835687073382043601940046600097202732589381535653755303031789818093772978523967753502317821701746197294241389996074119437389544969298926273653198620455205610525063945050207034052447463094605399286832554432830311177710220118295096748223423553860420513229316636178848160063982572767660560950549757530875484708958663374799924079031744502375822038491046615151410603159945396813262800195684332503768029253002066261909641515485495445718809057764444815217159314600286532300197378125698239748880740106911525513938366751078048881156628731976649618668890428331470871020734552345720173271310422166712848079509484834129847683053119629544677659651053062800193285833576692069643283651271941289216034681915272563837843587703471585501158291248121550429226776985654481880131068895710412487467792046688086834268543943518862645293947235537218993681201789040900870639015330994294473418998716992121262984061525976762593591959958265601936230617172982756934036336496706212343578155802541248700722618787637715408621356663907315160793169106940209256996176121624289388589598985022926475694445671734577025788404913056288495881599917714073567679005835991660919928856203933765432212807753584052603486460235904902363201565352204371603505509615746400965827681436233073122505689195728175054785993294486296182532536150262019846295610132951631435852100681790160245010670954586667144455351071428924101619987268949594435184307624989155814086193481071405648067530476429956448892040090254131250220229290110932507864971850359776094571987443911900634979761223745469399400236432254483782980906035838377361995919948100359453625683038456476880374067174096559266708235757304929434512663731482900905455375632412911535791042154346637750189984840557831342366454360322775281696661729056852636950348425452745304378020698675610677268367110289881933958259939238373865567929017339629125014913925725827821738073000112990302010746040117355510036050396772710091009858698608034305617118608328929699925077155006142835897369192643042716989613161626355590325251940046930622230423678239446411256043051369501078662443827107965664593092897643763641224710739031354237027533057269306458496511686895087982294805352501852383578406518876625265307239271260691012721675259088055484978762025114492239355909938621254456587747804296241228602486906901010350426046382235459435624580111556646218935151746263560644311836635660170680365999281319417608771008210758668778897969865092662532556859892038059127552777086713660063744266803164630449357280754429041148094895733231155918508922768491286455681259445192005072068045225694639021796186406759313157741111179369212761580049408426981298321100491350851119641886121711292709338988416119073390909525640901283612420351592823070666521592286818955099218943216508822120261210203253670941900593064871708038297771551664648925125915671498710547648782621943984721267227713825700293227218744452995187974736094255810553817341815319998216992675846418606383829544625134188175842703460582113805989543122604674286097353649643368038445127220459654141475049829967034132151042201319771982713120149568732828452201362241482376910242609876455032864542669483787585600673377575012495912747968514638343631451873467287221011679304104413617437125363994717084899719186204515240052947411130365613903400939351217907636802622794645013679759338602611340997453806006450505676443623134708754623486750282555199230218933149948093421213706559545039895641634479983696604225907011319881324574598643068236832164406735593039072447623124585751599670814802718573787537481510398360416592443407022691121017287650038959288095508549578406398695238323017532316266218941210980654907448057443956763463819527396259605764096084844602490259910057709561750267917602581518195020306316311743331298224044023174216696878319430431238451900473044116955779839413074807665148675407253733430866859255364034121680383378100045312955912095593501159867032236143999502477530909293427418744797235621045395639063679957011523491663780841314217863427234562885741305856780490345183879024230736738275076715867349230254046059567998969816363103693001290438862095884834835850736111243723118175712735665042904892455450493404590454719458614584106743002639985846636627780692922456079559067052418039397676425288332324485096837472736542295156796088909133187493467905374720462418049439349932279510308245100843847556220368791875730941315308681063833529598987562304860451992387568244608922120788168347545603564073622045268465292466642044124241159411111845477082125189443148569045862529099079056818196237528931983143624328975014963738049014815107509045190089867948305674482543238477750687933945969254226827971755605508947420708175077419615057159263335840732385180302322238555558883710410990042437427700867630483742483522783919352082699051106734349514758931264405932066215411021647956028607451969398672079233560116971257920954766600568639455479704899347842014977267543500940958606648836344384800639817292196674957901223674081855241002440134708343230972694140294994255520143348316224876244797050119344280301591072949175053837385284311747197274204162514877934029359192458404336640720464151096769253594222406887326506669779518302190757609663253684225199505432043672489818003050952104391789158391903318515336323765736018674859820604804016584957374180554724185178378360738511773372624614022100652890570804357434519774307491834878449349509256769189080920018724011957718819189052996745996348314294115140178979843376668823221877750064398955097064363386989586897962009830620842876398578644160505016293251718505772440555146913567462231144174781452387105508092828206730341123780232225540305587513213310290968962747029571089740163120063665861111160827224206540312214596458394907088145099905917043199971024780553867419286925052604183258586574119477195804978245319960842930645757818621619057486516488059894587792808860060577211722111544382887244081720005231063262322414961318465118016034451471350192873737585205027784346460276020615811855215058041658860955335606338909356882359164330076071334036599620325128187000548676939853037046199190098922965992057219360364673262737757829878287082965265362928871970109326566308963688913466645737285369682071995378350040599082860723931316006193405382415201350122641231686169235526250357574229704087753810610306165822194297909686901386642334492244712412967762130861461803075583773795789078583814992260690371740093336845223513350100019110946707564035597689827973689331446203310217515352281460348768146169468419573892306736016250022823181991196308679346761389569906547644141255836661974451851768980443508737005569655380674278898264290741974742118150984297493497426855860473056505217863634654095052830569010828808161122529865018220390114141306708122588839930970681748839822573426023652354491952485166407331418392094724641896712183746222815676021229855674127967313568320429289861170483267937647330825405827668644791351744598494809297705680073122775253371764385641912104733295010112359596037000349228664170935712056179526483582739366571547351973842050317666526373567784953496773893838578708686447755190354293137832661027104618439818977265745555109716864706709598195632801853164212645938715300611138564726974117494379144706590455388324597863617450420336496381309264794777069226473698559845395163973453164127370859205386163642458614585908041856810927135481106740563225393764863370128544090401276357173075526807333383554108874244721053527861508262406858547605586733060608577018293803063383242774861833555038331281673566344923918294321237075988963963009476150169209493296630517811582742091507678374578175084362491894443157905216278991479506551125086079578553617683784220474133512911199955003244688155070507701344309303354441144731384957126613145805951132253790467035546006300587413759996108496665138921506513751649529849316745046034682510621043290982938185719346156493090611435000907362105536610033003603424424221275284855436932288906219361369325141070716385240723247347573017942732560441551192645200931045533040329518534851126855941977544976932109316324907576632908506648685850071568644794716005289853831894461558285297558521148665821377114429574926620373256597017770486712351094101616358888375122799458248195073919148086670761707931267467412016268181056041781120929487740652088606423236429799817224512540658973562958098144816337430814578539924665845801955305402513112756849719591066346278608897396479203079068430688492565347391085444293078871117159228010446679420916931829618468450475725433189637287695689701883951535292843875148313569914786184109230690254812634422364535693722505448848865717600592909931854617804875788105333009129201998133815136272386538907387189519976274992976579654579000067803619750696472813428388716315867320651137792173163977157427399151206104341896231839712339928577320887063488677575695916456371407700021371661712605370391819992925061435801983084536102718272739367419804243715470343446051114408921200045108810829043517358267320945140218211728125038688079027543435385841270952412261095424389105393524727714393476873590278359158292907004703906167007952148764616257362039769005504447286196869494489768383311858469843414470732974877028914331893588527012657026407794697777531454864488899777694558488282760588024897546711969912770392418483749268753430299972126185158175431597958312779686181403187254146408681895578536255746241249422322373419838340870722909410876009240981549804820752060057967435539044231743791292155949769190789417777331751175193326726372923777025637311755487204715697379304440947534453204711356634135108443017615903316090099401444072597204446289931820430658660035405967895483307425879867494417641780364392605484285393912175691089889613194812803066995826704068792720692185653196695131245579049548039001180009971256565446210633793120020409007042630267459486144824920958777025310211460941293624740189946582788788892872019393099671543191673724888542158059760306441900671920833360417381592587636224654261779740971249263334218627136543913880274872137325520075914718903612869310371175934955817628999105035569303333048842405375978845244842827086931456172156776640668627886219501407745714589822938043407422353975902253111684432399335797529106996763762254393095346620749704054598018257780033720846756878511577027716656413586268333501667596193465683650648292218989643524002209151552578395735939955566288297060135762163454636218925623268229893213948895813855595488990833261339803783568736709776909481996785497923809585052594534262326496858142794191335403375067983312976967806767059649376795124597385750511360133274219486150061850398942011344391315744921181227155964562999966692154733832390972319670567836909557289096269494901352933997717339664798704232729847259344138585962837242986124174798987152062506189547761002276218456185225196265772713506023199783860635459719946223442578289130414369413453541350409473447589588384233756744367903600611141522310232980788091336625942098633901870470868986787424700982452609167366205848511242101786552445380893616770017963542834656353475570614678668486598292099127003377175401620369159333318361019930065783037501021413336557350787734048286291053670988261780047825337044786220431817653546420910987194647397543295640970337988018237598476524423777991859281453649579479300460994548148980598724918204483846181377696141599613926881106975061845208048678990828010089705385953244028034844555010379699097179983330561911760617067652459116951730026848956490859828551128998965452266617097748003338721800549781611075588756000208504079554421210383266763820452037800961114348428724792608908933522717035704768728053462524782774381500165342475043954550017406064856491588528462964951946089124657011873201756309078311747690135519904660039299710764876737875168086958096160271202739451503755443833782493847433572218878489461184777639804234370340586149791040390649308358038385776800635169026773107603776595320813833734187782836918427908602100864138441509697249797901981245616031058128267715943809591901032095488395306785457355398313002733176307920337190343892485751677568327502542930126017900472222512899620001173244300271044962564132089169331103716257144192492472566247436722964876392219698710120803699151102356681492834328822791904396492812765583143804739617708860271727193318834854024985286460444399298275928249622220269884354632064924459714260985932117388399125348944726154240835210428062887967171250029400804920280295938791875325513316513325072417407639260210807701535668443167612207858297871047488020772469709406834728817397444261676193410533025256584081342289627183594379501997076229024372371363103385594318632427304091834988391759196046139826287176738676082352544124216965890409597182565109483605225807775448096318014277120628680809189861548677209216455176857469504455193047328857519653766713011269592357081490029103471416825409886117103133483750342122612527375654724030659737262185104384174755823965658110671142874501794242806280424313069181942378344073968509198855215737739724318926212867524596462487905525851181967801030675898406572741632240554017609680467155159607402831838250844846808327528896172390741373143114998733463952625815644748927040386119290429624471429781225336889532999631013862050376991165246973762345041811694867062457696489574834883012222670151408306810589846342464768374442304356772902188170680587677495412736237320420973139531511497928168638044601024781345834082185578002402093787604542045162015025390836108929976216711170486271334069475726545341567436366712944730422079151068965315121157370718319161386695137489366685347428854228657209245699708245505273406636038382369247899784134623351197022131207581610488988871176463281479381168725307026056019356874214387774173298557519961339197188375131750615400438819557559339838742349434076192107222346058500088577781748190531596531746793775231872206942438380718583930365599054496110296823238153193399856139586472012333494044673634309536394291746757812755858447673721101430636455947047966883610263096044163655496755118665541503651321544988650784884178732818725007291377702345788706541879442815657164138382921687683774980325524192332055682105767516587047018133038720279427934146333086194575660666024808366635192273549327627455653455654993547424176189540178648711440126880355607953580767037234042605052065841166417210541247283626552552744091050603162198896870118561993616198463157643280674662340626483864698680563091121278709653270203838400761702166943129635068815712862785577962249266849615201599863121194060405324941581464941434651592908185065561889827641092196850681428744725431941671019189074177929163003366269301708979489694560799461770541072922814370031304398852192403914344610405315957939656664131790958781576664853471473915600394629567461456176587458320232765357583946371838934156626573127972899551425912453182412437302429129988878792838881702152303732965571639407088423413276360796769614086100062271256488666424980342241030919945876026111943924125155211605088891415705088602860532483835659224439589440189150441212589443358292337158992369349513748701215758729998865004627494326452749535143243474456350817694292303059891071243423481520508862261837470249048962195425628993604318058639017132028679109066702356353688774874959080535547200244887691577505014715152597027331952191579611034400432311623405854053257934521569739138715489260225053523900525528097594884413232688988509943467133615060958146602434227797676989100664799223310398853732097060653786575579665344740678566370930256363333907922406873087660803239053447493892797458048855558526920492317141619124324554672628805294772310634271459916963771294217292291327162809216522642292204473777876438191285588656270078459140056448382929645826612603772072888791416899455862174781143221571727697350690214340051827994114772486426655865669946767489546763929491263881663668333120969068224543913250248171458274937512740557529496699383296424770934426646879165080696821993415081664507531843163283965546388115455596128401519358427923371893985147920672807359668231818007885734977110107027637380146251485391987533063182417569916310920581327356470558196193918734178488724255696542933200924393867078649998922973000514551124867018273233884837807408053251185987630847785486678529811835280585106255412361933603584277155428409315728861270027394500983391991137830916147150264864177176417021896913797894233699873688127451171915716543498780875193095403128898680139852865296184482728352320151523799373802259074759861536116601545204003334703027259126033656542391065664066968269548868934473214111760777976557923065679086440676070504082393789510186987246798892634166346983215654227931042267508620445881556761933555164400661454240706602475602459202694685899825377022672655924396967529642550732206166925845801666766260928778114534700043305902650494165799350230179392221357324601906865496233963318595457048858061308759098905304167319764520211136103582434409849586029440520915958251116051359162798855534574324279765918232185945379882827861430399712249763224497571314803217121797633126889932533161730985264950345332477712211585659059854958760840639490509368351153455689352240365397770795623572630223682817182369526967532919619627207053736509831971590515993958599825967619749088469170577176248870719495369727626174252387969613110831957782239532989312619392704308636803422499092554427878871110752445110546457584498105496925752082466689837045437543284502845563086296686653050806720441508187025240943166687210088131641219367610953792391442760195053256227167778293799371746485088883026845995398712241670253656383437318157072090029369123884889700036419335283566911815109356993051372089978195799036673457308278704473084222557573315445643860941842226803885469686188022102470318698175993790271722564315182926213796646071877679246588385286262741650028470196335381327365613809616582189344023568516263887956535920849158538925582698440924508116383404835085970342225650247765959896701131392741561344402797460645298981748341376074819773710855964516507064859423713458074574116739488184006690424693894264870056473597074907370790055088473039618560385940426579069439039941815456078067898138645713936301733507951375747999449280339179067612399450384706142247772545714724886153243168945646780082567605404784505068656046040638324593110649806301215914963606779798208628880530893350085049565702755060192821120577062969717788759777968974730550194876735132758399324838754848925667424820230920020314515703169342530187457326897359214213820915602966887913112749014619267492383085037600555875548024988316230556520892859612230595756067117116041280036992697410822432449296871227885464183254414897862682158624546885110583993909769607117628763632047119481089842294264140321899556221220891596178384631163415990875115684056270713893322208223265939263732572882790787346450830369119646574003103979077935222745578818642717188977539996595375213038938678644163811956700494802940071283160167736736574686118886316243800408653748822780609204189022803872037311244599535853807325877278780262295585755747348437107535047917726082747130192595469719346762199599222562019087344500210280954704361499960504525819647226812513657236657058431497141643332612743774968904338542958638740681978446960413987134390613704945607819719518491474907664203230100913394821190934174057174128845691478159644518701094318040889691508331767655690138283656814049422858622704900781627773514771709209566822487384490692593141015423698806813496592216130765476894591651555798288528011837162710393584439938118345241632611207263953655711265600351776920184835512099422056022825779319838703355607113479586936987699579964188867175725985622871945028678451186679890028013363172937794816640479590878521573823986610439361410030810853235228437783776518704964749478478876178665463859103301937518878780830505835973285057061958516531242520596738937520585335988515298722625357443976575023137941670217697603752408982264098451847693359902668454122512735707911813433107819056014512597924232257822937117700936298578776139799913252091788154943019842517927836357496746503779348426606502049878165883810744605303104252002543038007741407040021680848059737873786697902272323321610620551751503974845653393330394850800141198587625031474975371502863425326158829711162341946689930280595985705052490050848781340160749637971628484846488305958295984863977460955103024984711758015990545087955893090727746140828981044636665864590303874581480740563316447519739094581059601717490420783650784697905075573170669249468954652818769320843829609680520479964036743521915639015003835564471009174851093809543268988541715734774745948481924134566424941709353173134420333704975642307936941836707969842701894046958526632351414406570926326416355697518073024144345829778116597679822401251163936353116952131700551250781739438875106669256666220772430870669400362134286448520490572511965777279580437593892869570111825412720807906787140048769091644434613801413829030614093589112068639454732719351711321480450612298633674999591807910357591619286294912241057307340955915062246890488729234276016392705056809312245561068990696314863921520094440260900497070268907188474768421280408872418660923088673136745593368635009904002797755710898461420005746737554233087475679896667350250507233752950418822992888312978844510036190756725196200755857558541699596853522952933397436796995320996922530589565209874240286099157873431485556355714234368972752575704577412350483989745530898177619292741960835367889811494151158195456245213130753638612309432435839185164125883905949538119758486553916614481591587159679956824609931337298830386673736240960704141537601796706065980933315113656496789266281806563563825975705166666063679858926243129172006761409301605287056796285549248444004578665264836343280171096750184297592904479158929855009157510318089805480030561074990070020515139492601005507448136009734463609422631420101467806293763146867604299014673900096115053333833109994366654198948426439806828940962344093086824357103085353693100943577168531821713961248930566585155838174566941076364402937647355005542860985268453080389269689641096737281562633099582111863411484088294553687129647863736133886400308700816618525707091410290709274931745044497157413530325838868106532977954358786245091909643660716838546192437434117624890308776173006429258280379214760545985182579498631636186425118980291228477969254039168678809641643089879770502374395287843427976673041199902031680867098132496600484152537383602763998998999414017289288588366138964281119261249360391065486097583868798377746501286201055777741017549882672346333602363963197502966585404940379018938199633743074320072557008504921812574858980444931226793322955529620497251965551707629056791538545510779163415202754809958036438255619199957978071705661824445198456498778144625804267626069340806887832765159073630631394442879574367140993936023261124903995934595418029361312795534865209139492535273999838732083516960877696500814057275569736397641704124646981111055150618743595137825283496845102677708111441574135524352252300427647493953704328172570055433729065684650899242567551741087304713738776374509392978843736909201956910833761004262652250605550965557900459707801743904161658313593134898572432131037552382010015782022658487222262347880468714354751445371319673065440496726834033502276085351495100860056508583331810955898877055579717838202678375101192194583581597862144789391699442398225870166261061458997799281270452823161142906811886908278202618283739486419676341836499427824105784241373792115966204675805628862760640708119781573895562670762328544813470803186959577008807524381093432669798412009867254086640592046827516402435745909230713016227134628384465803710738918557711560799534346009591051711294171961575389212746139461822527458524598234139501343221120745448121703312620399570601661775276234144516578270957431455118028723365211280630760091127158754579633492463826405133635671075701802358697404917712072842443803852228862202328093218846340605274311332483998763834626363767544096147087605001126622359286329568371380639921566209399793691258378706174060280601742382969985135505498637177021525963386871187724788636809778634245490110191959829017996659418864577917682123477932523348188259115539976102837813615043600622495053011573411511116368933272183630492316136495406766035481009320203729391456686843701245112560416390048150649771686434696441078411074108751296942669195260315012667317485794999207880267835268373943325298102343350345024043617644430638420309575304893691650040693255988965200002161772291516675278603147403473016123046010840183377819768862379725735466184227817644058480396002553753356927272694871228320496409518841174956559017078046114079273063358499076879094061360470617490923621209317927361805426498293797509431659119611044289385107873416674721194889940153282674327078482635106939194766396796337134963847290444417939885990557069027586368751203754077481531297902464584144190516399667941760094700245728620057924250556127815764980756231426291823463220270920323755817897209280464348780436200907956090660079512095180209876493761490102040750439608157804402855186337664037117235166187744214344940567456817132709415737791817085491887633799340002633642882614673433383504643349892348805395819071194280263287459723193319355270153963888892047302712804920509391786011977868450536725570674477325605366896245952817969448140026583727929778843277448423755665806184916333758519000339745495232296600045892493492971807276255721133344149537147996835864879235085761218060101615574173988808542417362533172763781125741671488814947793389326360783772631826437001630268725061265977783390979220919738161301323541895459298479514825764901746950122187073532426608492211808962011003104047747662901140256618697796130484781361849754092991689544069187261299451468490672234745583445799266035671144647313400639327935077320772250970231209497073584980825256425844828628487663620578258850138529114500775050715508158504965992091659679420721096144185939531769310055296319748623029006469176920254914318353201068743198503954658465298793667450455568593751986093583395517097272874532508521572092936533300471569916082647732924826724934522545188258516300796225854210639712930897271758372236501605733255868140161730664947702217192402476395742987990865150466799254701710606823983773358278521305891804759685517610890879426575742936302422242409856384065359107049781935383008992614328103662606570020255008390266338686594022322510510944930865772529991821474624757686805546047135342325785865740144639317744799471188921605197464711950113641817363288086357452934061064827290519159842111304710978760980264373059281286149335503849163703190531508369324966490926902435031076490130100706361193413273973889596649311656754917267135279136442194605898707861360065574269820901931816647522457206844874721572050742106501262533934682875408453800444298660915627133224422465589633324864107762275490672467139843244482115339402036079523821958797097176577398586233572194059037286922335679387886259290000049413931218618535460205133913919012049181973707356945369148019820569800807930821647730200253806560204874059335039248969006432206581275967851622300098680521325950674985958141359439153348052284385647889602100515586365406090392997566448027802041255953074576091767736928207587291132834108917919655516744504225739982060218179730713395541647896802512569076746834445472771935683326306925012169713257478382622627455378846709796776686385644094205821868965720231108397794805786989227537895344417400024571129637329193416341802172853283061796795117271933429182131443958956184910653032426226353567303121569685416808477404693538604995890917324978673915332273190273844456364986739634598754244015078634831900010712692811343066793437844872700293672608772518663737253395764130150447299508182765843385088033265561802267955751149719177154003903484121795616330967482934585608144865065874036093319227138619108307340265422587172081054093269654369135397106229870063618420819482394034249806985686398501349023582071489076902223175018361690258465717526792357283538094211628860312941968295192444838712882473886545198253980592714575604715332417483126283313358282693196448184779762355863198981844172433510260144007874618536873652735446935885922549960420693535688836680397728296422859727661570569918243746444768206637621952798883521728175163777423952124226957288429860435837934147359644055698636698584194925374347741138101126817457368806988071856772407095966431733195221278387132573716023367984697548676062469245126557297991331004895663831023821415064573475587958264754372765684135093609484866577143049414390776411470599042984624721700221414317604985063533872791209878757288812994896289582492498528453138889687406340080916587654168072490567704849128347302065659595150220701708128615558039650730741315499399675349585756390059128140404613466963071230250035689215257856034717452978851089653082862410611375529653761480133622051913652326753804306365097809063261093765453682937934679289466180687765073103831601837481550371631899978489155304540827110844390023926230160389855971409258003793000720136592146578408009477491964739856832184970127753346410755108027007121525912716318912299032067647216745529972420967403336966722772699418445005382083176010219542089322448231334643077554848613474504467158845812866012167166144421838577603551423652410446558582111961541012864149817096778702394417419355444341970669735053054909524515149310437066296940116277071929323372004302088475170123483948624461702642515064560405840244608087930496841109556717371993388112018235194381090391224923207118479032565253690694775392356956923587137746368808246727198597712292951649750257732540729164195046903762279689806100623530496097072222056049453697464489514567645814110210723103890994838322626451904878374076962784053955792840549575310180891986097513114405202182322794351359516140361940896426466296237839150432926424308508347589154470175207581787486548615312364575451756459597849505307767508469099955280573264686083879730263200105687508364854698611307181982839594539040201089225408980894932201747683987248508043069195179664252429154484663051495789976184635777086717449566328493038722660009172557978471494798078414990103597200766426580413035625331776795138204278100105990201966816985072120873073954136245400947858504967113020419580127350519689444410671880559055881177381702433691412364859047059145928791186594013043986551052260122135909742122280628250931885012446875015204485512380599828197751583509144495488854786939780849787106167719801093334486913215235726962414402759108499368849055780637280422714738124828557105256299279194919961517586166117651879255904510139554526734372806841804776565210809198179583944524268413023450522923254665639937866369194769829375861386896305182184624684294202418711542797768868095816904848409458960630440521537305396188405955183592125404616400015798076696148045309089429154639870599121279787487421993126108872155046581029171100251359555462905176512967224704535469180746040000382505549453167981803276685912122662104936967960521020960517744755167252929824306069942049365266308120428781019738010706100093299284467747296511977503632841058002316169608644806700212826354617684090970098680345272685947813967667223335718317620432593177799410336587492697490186253657344612478193188707926674139203803275049558923316969015142660100610798082227475699249743775408697189591241928208098776629960956544636813006659732444557337469957589410031763011141530192462384048385307932638241240781061529877398832830401201219817653948596200332971331513446081100845935685713103066395967292656252565147920903558209349274682637957805626148930234463168366644896909925931135181403978359490619975245525564424202670490945265258192329140796051774437961458885297696681824623822092334806175656898030897912346501485606682987824585645276989751305378105569076771907669691700038794525677731713327258366641665679264782570968346014319288318954688901569422475815277790306275749841809423118498438078723801106757480249765562027234677808647351850684908832834888660113748367254208767581666312817446282181340409196257618272049643437200531161116303119593405642771537977600341644793495677698918854818983181856134461028958867686458348379468122815223332412919117129195909833222616660847348141381409615298009769125083135812773904843247412408737688772125678853129380890110867644740500617272071166449520442075292670729417407788297209240731162220718591121889521451438843877201836249191350355898051385160208531633124912159511276991843932116034968208916623038899679259682969656743016459282534698380857766414830029720240085325276050187548366663436188648247645220293170517462546188603379699497961300350428383980059967751777658863580053926930305764829937860595739002206401840906961975244407655878357861935232360906018092396458297354562989972406541127229871667699124711594889797032013853870326232915526885373078789121319709195360836593941037898384120994170296190401931655855226163470570951911977682189428435616389114255178082097033625864240671520324266393289522754159237333915224879470186964047009576055607648296564331921806124568751717535530728257803081401845045315258677752781546277390057517471434952999079962498092587359683101255476213499532091141566374868296746222762331197109372103942087032015810999713532008695014888808717914460847452183858514540683937223512856692484479766077934304617202910639549312340583547194242593192940048804533969889307453017619066363024713191743716340215538646149284080531581138437028894247811787257480405902746775293723559023355430807477681821684456514851823681776667933266634696739545863769079101053396180109053292530990892053104975815754646158603081237951457150595772848313423240833059164810170312467981367449543739107712942271427441162311043149549646079104540304841164725111762742356453087107063105386794209810798925283199270762454695391394509155952215143961818621054876199181581527882712982166847801512420138904644760504549036501927649611568531304413399543225755659500425377692638852156941466515734326793109346525257531392020971866502173666636323685551539392103661531758312691187513853785378886311282180274797890434158549178310379329420543667058259612748894906945901779446146963650725677559381409417581168885442766380447883312351964734920049229935820000768562914807113664210729990167103204178291543339615022436992501288628252413872746006458053547846478306927112796431843433044622218471074316274800526230473913988919200932011846286016731994924271750117547153168891913025213538751656243971701404083693057340877010151709823780388881928114466367337927271836521467139599958428858522503894951249518951830828343610986998096616893893227474515323540048999110979615026302800087508338516388296964322124085637723536883612566250282002392654472441702618974034177860114125173947678672180567671634994433521815628008782071197912138153152833104177753912341820923591856049341548483399276693012249155510141265592157339590372017768052473232009097547390429778700881915150919419187756461013938316339500179573837864617325921409499431844618990405576790367458690195335781999578460977524031503508773309204100543601201661814953194334554855106107934948053029206504297343400713998501215616023017354440666692979047571408236162145139514152699165166798221675532626556051730998792080334648767440366303246362768404800994172024143955052486950842919280074796574238866120461420957726304076825928636967320908286999628481484665746700276059605016813537456403689059671671494976416964497332976925109386340788024236689621982500530290871894523626802677755350564778323374489663763006403894229546865850232566095242460620665636717555985840464648767081761318773713440772282400953465507066993089030810049712101842448704695962255284775657799417023857208418931792169210840027774020558349658920509805501469085302650392656187087458936083616602915020705286014480943136487405498528838220062610060765213429288612912168911343943070568065551645234719491209789689385979052892359339097545201536890199995513372146373606995943863881546906780157612228677085922980144920528859456509368852948683743548546509396666130384346315957380164314485949531537576282908194745397643194723018680284148213140369346391226509430854984493815665561193332792752875611352250020269392704326994612252418719917297775664141596873481991783397672744530457645582112687513949664895768496514748886070188870314023479105557857452396998544068296954322786253366476499849604454295479739050615543913284361319624799928491148217219890242115337364473546259521916738753521934977117061718146541185604506590585366705418992791869253135917088495709597615432323497230716320248770606509130614104775158684501948977297891783828676407457476819695588808012772541557513626017419309411898125145785564261584891687708131973218745592735518874245931517469084897180215972159706342868904563726299596463106582951514444398024967841577637162619823001965479822255526461909997078896759356263128343906141396719432245884609122368789707429450582242613077924072395599103501183167764158764393755146795551344176104513733899072092834018267421323503396274020712664550784893149234579186154661919125699821023823633077182574701948203524874842807251335539663894911722552884634685936292510238907179802614644609406064909154326594742189786121710920360897760569727423295244582931147219766592271243967131066029209383605841825023671360909605701236971221634813157170116168420284991509220029363048026508002144041861219366927967360222534113819201994800216420739499330213134841776906977170922621268133049741193865531420156560654567747582435119874182806252383312702923033731189933499810543634589726728085451171338660189730367013659360384935201457824167841337924924133026086179734415023909397281151800183326321169526730791483776348992984581594081811602839689919550935114788083899703146504375831581799637174140709727139834064033847649364744860443374400350995102212781083432244082170754954262861654638839269976315004960146022468585089593347957875887674687169883946880566974916045099395667548468342208838402771306907531820465889124059880872773018194171362431425144064492042167543444344743640044763997604835262462930968527284686792996140231804738084232045156284238641495439105876908183807829158954751985903259710834876207285902607406150364300542369388983201039684961864126701729563256130541926681156823612045262718805475165160223177330723700444593751673847881981094791301096738209535820441982720530677388220100490043241749805179386716441733509700096517694508732361571580167391852652341748961448980345579387032745753566217217645142300169412379481842707560328463768125748371598276241540711604584505806627347151893672509976247446580251045090820396895114528013245699742078027982366443598871092185096345780820674862845323085533340897032891830069455382511134052844212846936486813883413099597070513698009567929826417888558655407852264749587340327661252369767314942955230122030622640857017364088907644907888809725327176458707397612287033437573863650224637071679283502034471007390502191038978998041319142688742131379318204518847121495287959113706853734415389339230138894913751389031433860193041015936186351662368647477262047250377979038506297074419373719790319062628258601424411987902399860727316617375934504798622803200387889501733678230947019609928334709682749208054713866141951429828761711903004450218488036658561681628109441872755466815978680902899766506045923041736733926669053764312823153909224611315172284414529420513127425003829219353597080054432030411770957851136443446546951099377730212419279729674984862556344635252485134223628448791452086575854103527849290492868656247604321582822721335603286075239601906407789072722361660655133079392070039592070487012692544331772841189428472688707088552207347800210710667943964054784410528404749908654380775563772159563852390887725298347860829430479727245714281179624599329293594389148438266276389635598382740054524552114686687297446395529644733498036357002466600430769731697852549801048609342952087802955468063929259273268679541256247896585595929251402445556086452000562889314583638425255489495992151991605445008597370595966994309245945905970571903539146252458909015678183615910824412575397053881692327778332480865573166549739218373409152737095641846884712861304879583411237466937414934364862461979809938983190748420175941533129438598158737992382861436877635677219124618058503074692990374602836439237300518567974806058161591236164459302951232308080266315959644497844468496099404319346857421390683893988858398921929253393259178229988331601328171472704033883973286427543818969367022266716811128746730522315002823351145220134497391614854423343557501420094383642821715897303078843053603452286656100722341562345716634348524942685298753352227269658047815854949403281443910849003159629975359378421570498848286832599077820532789685887138972961561926891881161695676889463773207290891563177289297020097609255102170888052933667556190536676464622958140620523658867594169110108078267152147548537204476314157812955087050591836349336773009618644966965488108968564506041721195404177474772739369333063881775645766307650038186213618065770549289039424448278545859080055105919160224958148175982618266215173600429302445955394261009303462901686686642106097823657741711651694649042788142218587600247575617075262135951816088678913253289454150902746453941173753599239274123786861258222477876258862340120809774185820983967392729008307506948864313273502956099780663151845418798772748632473166722388315789009554870852561687876513035246981506395816879394800495737205044619681133749585030515017885272261075695658208452826752570419498157232236723290668395052136319156294132619476963857095134998228089886260157195904863147752326453463768201054234922393296853408225221990906580750072960482735528752813844425355029150888362418452742322931522847626123010264819561975385077707890964903205102745902615384258198485314647578937013095173563911554717978969738171624777879430148030094015381386401353523883193088674265374633009718742266725545575443424189026805724073304196479964484588987846209218809165763840947277737833286826279382127666708420344198235176259767853658555930689873003542162360874315508515759268446236896717382801641200198147131414608335111799174254032167732825663177201585071281468398441738935253872371609147328353038196301370382203532774073506549748377408095994916324263392643328431285926250119852046223360957736297059822327126906240569073847262122343521989346092240440833758282109442539532286105924984654617470053831448985629619538769142170181179086210733888072890229835000518462735854670274373555284107856492023181675645627861368649940844597221228617944403291656564746718227455492821656788891640861409650622106124469806835127520435327747131424578211402223328219832781479055710527704202901650347823761139691762808289663973038558543814249010466747270000009505873891677235821934358865708420479292181722959023626259011410153264638105494695248967941717517981117999612463386322491393171187024311429303463200236357001778903146944363041951858941204479676943227716550986892396711572259634821182008937007858446289705505408602591315220562425276696880979030625369694070319559421927558425748037646859444302414488928631244672830872200121085352819686477921887187374720691363953110336435782555228192360504764194646048510238306935761839524914714186960201294137343557263230928762690297574639160841710350746343809046461000570431720050480902464127319500758289785495669808518446511735134113990859057804345693564424117369373320566115348709404559146791114299670134828955801600889839213360606835479011413079100774960259509292771743050991340816607444966359197164582085165692738302883683207288026726033431536263061643322003087302819229062647095657499328555227847388124288639713576727093916946770669702044018346309149962878580021612731127543250929964302086082435730272229191595796049075161129411079579048439449947556423385481683449878746846639682857212577500178255055526626644425914634121779661193680043361752520395457190254565020278374580497055139610096059430761548674567781664829948372578257018290340949963702132402348111392077209315220773822615832917993334566099148639718365123758388003209034454510533344278076295321530446451891760094482699390032529113292005792296980795312467208730328968181884165996197202859803741477547951989329228227335269597050837919418360629565221071429189354039648368517635554634154614890025759552083097034375691286416658153184222713592792544638299785479080430457619751702996181215703099350698585691066030082967374343567094277416183006986503019015867011664932196033208559308158030981839540170966775877348259535155677217785508794235983971142108545736179518678680858153504588626092996746065078986211627483180731942339396771764097646400912818439919075066837794475505537988910948811601870872431165882918001141286501128661872048260338798493462874546265549753871707423655716704166287980468426279507293660847714184546826755855351259756189478081029306600574517229897409070954157787378417301018073344497038956414021445612182571771414588266845361874295579765466880483609058004600889412636988143801347062226140608808136986226951589954162148208682609743321229362957833787894426064381724506803232213930014591385701757263908647005305049626136838074135714866660500543887424332969189417429946550143579742118611035756543181186052314123532423450821837332537666105962953130124384761168081763332487039673323954276174676824452450279216719465111246363815632162490382502607637422011263978334666655270912453986131424024031417256638874970117265668777906460923985639058503794979200255393515363113200438335570395834508677114070394268249451232587018860572126332238781553945121044287713502350067677263662493220103729673832157537648892231020902859071682591751877676558018374563972444093721162167574856855217865054609283911501333666410508807422191893700395811019159104610311916020669751315342898990825466992254397551673917375792222034417365811410741157981960280232460875314996954131601108485502417347815786502534022281015676992754715788453712937552586988931588416237805318675792288186193427739750273043468626914763910649249258522243218441617518984934611061354439063263509565923825018149713567547983431364041455787139930192417182538314834726660652446024648285148012964190076746481032210443603881011826941809658168164232839843482125966271746095538198339764296009425771045553678070414256056806181708920160685060791594431955124315534433994718510010077061399218252019372345939799069920051810948170359320559805821277677710784738067723385876700748574623360495162934055562618810409755104866155320572796655354352121931703180103146432609973000638277099307776373386769885227579933113009159803723117755122726850816293854519255844733738274981580683140942016784273809273935561541309217299235438379430200605691765650965828733517864761362466768920637904792795930276372370432626052782852653219728632245357604877979699777403565492557549842071240006505559133426886133210968467628197555342834310222295064093351046045625738909917054826566324399345224591111467099251052983692578185675339416204529347775973706285122645861748726468236579327570659971391313173325276151007116229561008752042367442514033477385436290345928366278763842265646371448713545880719974607314666866195215347292876827142596780800545572582029016505714476273775335854185458347549436240770979634035733464770988129729894901624269574075146695208646511856425726645347318198193087667482074065986258417681190684502869858048867518742138259302969439430356540357651240368671735763651641783358099173320554711807037769728766377795522877686477613134945079055862295792708537728200632268796778290380041431265787040641760650604243432172458033345586905021104636098728817974995811678156263468368444386849395123927973356232682781953157325610216681773720663982241648327567888560595607614616459586277626992490388054952227344992966006541368200251998277383774904978346869371786752871582518093086094864946813033857020218674794655979455323823731696251848214954431992753938323362106467504095488241852347994799523876079733150195137881889081133089848968711071844976487836055737838701480682724141216750947792608729174642260478890070294101883773806359095686856385982378503655322206883728744214136252978503258698862820419884378784237231640784067443142414978314351066000846130015549255306308431686620969989821536798470123598918786930944721785130124760438669589598808495351075821708670704244523912505763125627538691287320200710585255643487256257891171900989118233376146850181460908979096519571737514556846928676379838550644767240593689357333197637726742333539277636896712589126656167332282695968406539360412351819994250668392747689967548341622504684163999248897738399341212431695959243019016831496792974953007173676364934642609189539508235856944280793506013066449206616413088733961178578513895315251083198661150940302842486491883279322924275084830073958539755251077567833210051183628291784147504794524775299378938693615412703481124209722081937607803981678097719602488113769806202676552371199383495223896678157447763091328538450982000371771521539544814804038648599228465236089095460447513737571637329808679688360195333320457767361330176279645860721328849275007085957096347400751294957573091288929817546703205827304304065082698549272389820721186611252841209621479616505818879518902360403964728843145835581899823322960831381967242911884953120654207078240747248472230302998749864886880500256490961260628741675115093057491193340836530206982289963007021723094718183807104152946827650384872116112114452874994194116482394120676041977403052315294967689182272759326399096610534446467440612893842345975166557594654657545828446087002271031193775763440228399312359692267643566509219448456305448127389694313972140148930854062653987079155168267338168661372950993136615207961332216127896951431815421766834866797895331924482294353749844838249825785863460238788177484181241109439656752412640915382859483020659549662898537486871651381256792031743210203459317317046928967450633722861049336916202150701372336974638872575243367191177217735735522208171541249129783105508121300253426750539163606717363644029516993349971773767249656209279957261788544997584852120394415528856905548430136140721695505134674341470937099448875069952180578459672980940108839950492249725420146030102837862709814465928868218323951507311747241045728107560824603489907376910262493500699598888505383437322429051877570056858227892787297637958154309721441911055431244141742305775350222829330305941629704219389023655825755069350665202881239925952099355932029375077166940151235331858157924799133941887755308442720555154892893076524981115577032093630977175588959076594243082851932490911475519088339135658229019204230041049459759189420369391628595152444654759915564327427641750071025222127639328523982235752827055114223462765524471502491846820315974322894881601063798773136905294961678399750031002474204143933025318288567079503079389961538528062978581604966996996124809160334049410351228756945715473942880316883667041715567484017997526701933233634879909186466255908210138786549106560400189667512034963032357465929184009886294469087908921907417188120900234779227413959753651949643826007960562035160900851885045475928632599716059427312878591991963901946064227360763929761273149082898034837810824619949113967212043804421077873363857300813836072839597500336791966270408834838081324164905511144000261740132003588310484102835643851156347858236580651147567781147806072550485006233000882875011891163220374282925566459197814455943774564798080955647146265943616002209303652314171979617887847344252210925028375397928578729685023879988713059139256872255886314967691866601070863247275499381639949371015965229911912584357307300911958476668605005638245004377978417443230322331123193510932536339140992591419393037290723714221246474099807944763441590624560215129855920471611397849652071786408174727979426320097049680957387078320180433046806983045064284613483233234887225524130399893522355559590150582141291604849191188982950863108310388746406375087899493766997860452844411969088780807566549202450312379820754226375398407745681081755336013836377942554310591799901022556140388140598846217054651505801847241374455940745510527983444313878224169982504789380683619491150639709789198733506257274004962458843793482330648326685971193745490012513263483966442304278450294287506065998966891222804486176459529579421224118995306436891677915833203379948863905113293318036005739726988957230663462817509703280709592351583213448198620925317733166009796336551190787260179273007803532179888751837545305730459438977860949032192682168953508108194309076484670497534409755697540054335801994124888616289387436722229948733369640138732966941993321320253156037661334766681846858688380254307005854456814791207133636680111141210540073659171886245719367599256470936780932539243080776087847632556174812335528266057916134745642910247933684478698427539521057756940552224912530380161756835360285868178086447506857256660452868783462575788594636346673595209562745541291402958892345339147216741481656509374724282200888262303676143865359019242398683497385930067832227595297660982350069216839076211760316381156230980687560689384008414685934125681471116453156825548645702919793403667949710986250338567527540654424868674262660137685520231718865859788065447181145666472189701733525271950347971021595317508546234455440041843501340668190819801457550009014584957848227859994785203955948709068849463449364374266889131937616946362887219246136424349591365500343812494700670580722768080536783079738255500178894681368903674527994369467099306565782137483771866674553612272949055719766687627283798184568511400804813533484296591529215185558841489089757885023117614534792539558504721424684680690326069635545798262382893245070541543207525333773311172354403012924841296834000163729234020595294271314760802043419381697900963836089427906171502197812494572430228653617020981039339576166283736669310429933125072213583798126187681288117331573024700967472327297287105465391898874941289099195737942065368139516626932835481541780728551953824465789776089302767413866509533730627682668160825102099039004135523883850757329494541176087276598709134952646290617798287184918670834267393139340882424328823038823366001350034418916377508119995609615012364082363518005734731868813732346548785917735959935665951744538614434474897286064748240120235750217265086612007319156219019603115862136702158815089946075488266059201240434250031987837877007224306357952122164044781996297196825007589655784677843378239598934958044844464783549909586862076767488178843528056310363517836940134795916410580669755710645615135041741460504220234198017995013119414290830778344007325318869590921740247833756863538302699921673632891270666676108992081970495019864948695756175515274598707017384152669297092239351340777453487179093585324630464642893543343979621242875722952289073470134565901741448781281640694288513123157033661529238790227423080634060056108568516028311149363206628243488759359802395704395429788102816850608838556347254823321156701818241734400408586421131246939909108740359795857137107176133446268921657830466237481050654540617436266983924874771982689618210986777965467086292035381626670812360701366693811227563800850384764392486132668913841393676036389787576632386257615997991079169167267865659653954800687096253383581996477515832405533444235316290551362335623147953994483711842670390098741507929929663425602286426754858967039580896801113175871627163753966409870581067312450052526743352693607513194180221342123343901768028842160671571408877041308440822878857975932632426128124291196782123177665242825016733513538725450866319451330182660734035901396487457764683678115795360269798663837341789663858161851362611454136302090171463386350339643651061867781328522505739148490531096425058815682753173041296140194924502573041640217136235886938769697131164881019158265978605195266936943714758404090109836690229595386519110604039262566352540126960936297333314524878219890945397541000262849122442181727554506094377103557943820507358355866508113662561608337357448532437772536242977816790456246390909441212809573936105090137575688748131267974898988673882527345322985493376461098076922952752743004695612010105310508441352729644960124028829577236799052518906850445575451617504835991616341623544327095533789541051501691652414588122223416271796833279149985779937736688619739941905681525255487281552384576513884629617628419548631937496687271666911835031009281353091356420820689916116656513816290054036955552517660283335539225045849934485223900017914509184050767396892380454578802745453748556343068109748077689135543575972355771883672670238333249361261229676051659312197532535237149995335648818878249977781835605025280918964261289234804313870046298480072716019370734313629238107233769979905489950333016863446208256436862468550626850028637174765146292962338261887045625326786716134557351684350945675656924947344368929666174921877386002522029791054419722819523021250625482540408590394808372577176950258326727746767178459343612860380579957567105907888931663630112821378701893092183428670759961786932310747882149221582367067415513941654794093024888381335400500877948092268479146711889540096573135699429160611046087839140885345187046801962710184085726945396139339680798644857901906413857913128074200553681933704927152415285912932929365982403529845216481913273922241459355060649208116051264795126704237358967791180934154211546912950563469904457260776476504336457508185116358119383847164719910513194096999412912186153401385724499166214831115313695955666234550135116313472048182589481057305450456567095463957203691725665634108040519234096887320220888535872065581717725089027316065199903615912951046357639739499205831215673649246616413693435004936527974369758278193081872245062330920035837783733067348258486077023595901204377135013275487532731887272183325044944731087346454840656607873493914400686575441565845627662723382254421694575172846540285121994947631506765360776787006763108468997173004830201988086290867965940800167894488422287987842539063427488451170986795092137848010668670203953593994129864890078811329738273310595404638341554258340301931597725883160239207902821037070575382203343594709840903324618475717738183055593916407909830581809752687433141766172361585885397613180213576326299710533279332649951647011145554184999343526518071333079726874976509041294657490811368907792288749387294343940114001520971853832018872449617182716701912709684639354398870871193155983374833808671832595414717300475262249160283362346492586405043718965757670961851682983508600634968543929297499265188226403970997024799466048088898684543396100505181033907721911616034157893385533101767974206301500755611178654484669305246649268492815681790782967701048507546683395836218310486063911286301207403787852107683209185661426418265497432726268144262987460082186600076029366758095258352315570352159652884981610128716703768504075729767109741048136258603307457616949678091043462999534348892132690834659027667785658203409778358579845869086586890177569280759304867525930281660759612709836908902657327403372195684697323448361948338400447745384098995311808541484410691599880834422726021545861889860068315074598896293453261600283864084949767323267526167044885482848885699496659430860162716104206844953022565735054324156404246497221914361387708937203136688696553837930303046137025788990236073877339639593048343470235919777048724448082204751801919549114582909691729847365885379618102426350025950123674797926866327804073783126803026221674563086569910814661687370440829549527110111295447509997646892262067464300893829388415123554864030204080916908851638901622591379489545631737870161739666019897543189743680468970935340462456296848955397088129287784411828575014761861040572622352426006573210330746968478895973521859170745840734958246535855776158866304936164273840496297856764404029048215180189005907543813645513367191293245275284482626667733748702044869036832591055067870141733632629824913166490713415840651947330433469881548036100397861690217644957454761305834644329938217809876684000752112095530395899144832425650700786786941443760305736701875588370391746777792116973333723584921063353996159405097838753545709743644781583051820418600739524233359456790942360348857290960484020018139243130470759082414456087591923283557619343735447744685338386308766870033072532298637901499482562601580766483532109966504240983371753233904106960314446162813646313993023554318968546608532972310220774004364005773065849237936188835498368235115509047046205179426213380046214598293662435812547639179569014772655160972575467819879299107043475304003128453454266237463560404939147387800662068364059161829970622131347579461391839119307145598313200556505889851192569362098778185167643586653194851476581738171149640285113521473334725049226598059415448538564992170555514922980161497282484183831310801902985058478216712113698365590224938562021554471254957094670596304745064102439315092650419933566160039701886191060989538284391209858173678510216070285203686753845640400638146167339222295662193150524252448054917631152984171878632793794490287046391082038189424273211421623399688484379732140607962412420867712232246644778827292133847618717748242053874728650868501746470868616196210614511689086635469574085819007447498530636041323590582811212604474908428096821090169197785430299142886193821234559459384593622423212251059447676697188613387545449029076223127221382379705221214515428329367724844168346614058757177244528116116976218495560766449683121954435032972116832571012905751966796848997686153368161782353451701270837526956078604459487131451692375171652369640334505014532245400103129122725188187144427890298766112234240539701619146003466882896674316595813109745292902971362507477495193522363978669899685830106957222567048211456501014110603019186953404798874836637058487365994959966104512393641016987445977206453665041903310038573110101571250983351066996495246390369183120026816246702747601024890249204822071688996013858435685997193529612545840129283403162282724039492298269842566362391647931532998984667111418235729853499916190584656285215423582942974458576297740819234916299185205116960639660861455853096177787724673229030241752186474156467812111368322286684604958069912456769443968205930083242855098201665573806087479332572643984115284819481237811402819599339715847262087244786555648285047924541520481213306730508198588908416174926021922284349227006552278869217235804617579144747549410652996147813585403229218437648390025341101636587176840102346460051954684955317310496493834688469700649454888044106986761921755341327058289348501758136434426419140577069740774996305950506959015333107030953676033080869798474159850870696833454291156033047202223766532869021825794588043335603019766571778741287934117116232874154954751174207007362429148815246012078162467326366614797389997320373112586349921542523076038368430214582235864706121563036312130899216773035285691847763149936795260481355658509497827215105811295074474581680188222519651779437876011971302063291765254971483382332603098846780429361665876848532625115575482636435845874830073281206668873011152449723654112782951050463863635813346454468953794991759618559670876715987598850302061409798098783364210557107565592825493498660694309416593962325042307580156672435821263854327799381102012802485852872690099044166110498975120029361313960307424662847035857278938821353344028769138071060566501933658882605206598024468139681165839784435845424323424995947782129681483137450358201815982773938798106982909911502938234536634135779440978592058686578502893259353359126797557378178966543005287891720592896870473311782116143691813371214001237848723087643599863671477146984814933100875635423746471858767074509890089852131431791860889283811641197758589831593903462823939175869232100912295084845450432416063317758631271374224613591426678355070643357270027113268644368980302230760374023105908888254634259144028077205513725902544034644226320646962091112151948154834057356543776861954014001790108497143909505447977207594285228166382443544079136473818323707945239280957112852611139487192051748165879564261376535036942274622629056443356973993907434592338467536667891798415567500179799111858000837588050057251450502010153321443309524027723020537801558158332055904135282376485543100083798681080228169941190866415533194128714043052523941002375853092323620124120039725593135254434651509640352660310851976469380265334442768667363082829981277866764055934475266479084412095128980532535118520261582921865109660793644148773095152066293595950115933647106012904971994794246252914494164404360499849300490130822334855335664002037630439620955962009554440585460147350619432394910301397241511003252400808850358672838603861562775043948147881158086411015531981621091423479345487693289098798666827819225037014965765136401117275883132097956975157842063795953829567282377827212566181257511237983361920968268257142933326711145942075962625084004759420584918681430223477417064387260262243340778579331512504017961645397674265383933090973349439215570814641740062365090241035194444703956844685523118002633076417798389693596874180667659415275309957166477876059768874935109178429834455241543836046691275473560881430780413415261703178822312064038912711946002546980522637623961077942516804049422757328582924625537608624505868581186880896113140125584299921716994369699716046696638471330488610461214088186968990346865471617387059680808974611537032230617459185542740734594148281285588877788444393198350677948572339628276698144960970961897030616245109434792606798034429929008999762536166876816755665053014636694306422388705363322709984914608965355178909606487137249782404785184759589426963293535816549554514478085587206932902766089470827253947218637169773310039236697425634470871597247711883985572774141234361423975301686987662305460417501173741005665796864329213063672621135217957796463495132142766551308082307253754564973647690678851076218915199461279891219181890907250695328565277890606455398669686276965271085960885515402724116170729848560978272458200890358700677839483095356418559550159382628288448261096853833428425964244014784805575558514936542594621281386056314853088043353293948443839922773716284886601750963470772886904672013714125051279820718827228419779731965027433630039739934527483396788775673169117380609322016324202950474860137062676128044276141314275178351405804442922699722312682795978709733968998611405485059070552659700348701622098555917001824291842912144662072919283577426970525755151938542590347830300947486053399792866902308231951186230911944942577235959540058800029814746618908393976153903044264607179956689454943424704019962583066919465432046946968002711092089766076647480254817299172223939717968135129518851651716276165663675920814299177572377794626905490869470776726436891653086985733038569641154547784807780106300635404241275577514151143315990684521904725769111039741478727235369317773014987859455492454240016824676305169253192331052528430836480012508819603069797113463695152266192389599661011356123017007940328270986318879714070977768605869372739745509657384075595329460998376553450743025777566201021655027624811411214407532070114035751020663470270294157527202218168395969230778685262097942222263330973024720664953780237336996007436640131186959170961365140306447342412808272144059326753356583301614791080415568384508429645822372095051265844017271682731047160741547213283325846147443158838711418136014792602642880443118121240748577205287880543103490239599854381191958420772855652835955414331102349410646405133824070051982860811330179959790231326267620345445034586644325645716342068075350572533249015932530646738790670068127924521864341524480600935038958552764924209493988518258723291619109473669089066355322188996774503650056889229353840618175628686397697469436192026238318785303309258072132053815151328099038519703655113923402724890968803009088260326653609469041809991104928057449250679946224754036641834027871269121391322930894282054970097432188098717716270807156294604125581983163618425636868896985824963123076531378190376358344209674096466943131475311238930453566705103238299192650814228434414355715594124119415051909467979510181468504261714788173711212708736671492166468620683732221073211908863531412030890439715113843677067384697954216855699463228285149552869289724689204822122088898409662281492064945427453183769268796746699910559105051338484792999770394860225030468406169553847614827795219887941896945568029498800813441601542051684855636813829531950170091471023477950486844893140623545288048064314025157763027293856637697276632721959847523439602189577252337481493816023447576523129636271606483462402710037249787384715250650576228258675531636913585123725275926193324232205127857247559025328835983359780786760957658224591451714882950301643280775513086372482036211286790562601140348926090665230307879689720406074544678364450324534746564523477598006095315216141273019257156080267361713098842807138846545647259787944236258598428088309841704965021195788838914681408920803890083799989532092527671011717871630174222628333969646284065411780339868048110371471072183953514713616567146225107247088494617258848713343260737187004479723828858904912664016957327657655511082650115952775244370673774619664300573322513827819571629159482477652420234066553540805510080687292270424963328614250922810818246815279699101162161891651149910084319475226013873253487608977268446586983380780685734091524616493603297878082396411904272849505178271926928540327356785257649687004332577881802724420869492819031838863981481643934086205229056415018469009844268273252440001283769924493035202549219307970543976212282007261386087682520061140485819086387129973538735061989219203348552258309160154424965181515193231226918504857698949044468059878205169055752877738712086753430692979490854844124967659088909061176642570320686664502962588234030717675123702168460725275515058080072301592236608682106302978759105710065078117839648198481784299103312903800416303112832977207164353025565353198050090243776928705713376227182525147086538640325074512214077672308147305735692247638082179385257692332874245378370292466310095162410441010043065037374193205772204499739494356484503228818292612852540862275641597080553022477302345070498593979039261261355950748637730846664276080976628152138539272460944763961132936808741941716510985902939372495430764635045077911392261769561520647259723315223824979962001206913743603042480893169054669425818599277530627096873512897900120230716512420652347796416065814358621696223044374519667221807963674788315443332849623321693039710116701494547967034043808321461868447581097077475218955105001491710446926596818486905842427959339357113001899457509994964934875709429532485509886641962929472018847939820824037762727771768031731062348573925795586857216640805447490676824195163697859821565342265410589112451317192459242196836875652312013404552882168910535342344994115199674833400291435516363881547019831420291724332796537317423252972142267328901345905509850945828704477086468955282300731256763720730414711272558745997081930009309626601709578365248507882119905396168893918130709179154387848714983753248366254445868231348659851523496290586477616606420352849290990996804878934730200925860432371257576891531570722841503414059966103516018922592705244352775164592723153374510570795104443681092063376346116323810765802037270665435712220315322529260878965094879829447220064151950697749497539951308443225503697369125671186542162817366214446113255884074921885816798817110976299377507305438274951903884773958624939384329360294461156785181150509709002243189875207410763608778217808677773265854724395060578863246400640507867152699338765414885508423433515107147628973636954156817660628767439506957969305138284567954419210928439382405675343945250077542436121893216034671361785802223278040508964115571325365452967880626252481905021818528719289779211869263146722651933729883733303629569743950842410703851167148348653575045682895502927438212285010677417437288779420369775241040115789159334459851712626452616123758373239175222007091901158524783107973487131743407436393302911188397273591629587302379401978892037039964852963543516100697868788606119497389276884293997152403917852384031210179633129310962712168300861766137320834145777920906877164403977430003618754051520022235861065389842084043741215809446048685059522172180539370694965587210763902899098340744635953381274092977390453171160307618989977344829898385465980080108739542289362697803805370069097046477799224471519229355963729498846175015360676751208903794073292924989533021746586681341506889657831805162106546800533526712858512153497607236815512402937756048115755760189670445386492374179047155394860936521421044420627859176831231382830552834116544559073385010179561755699886384270139018325201187583476997070949614959757159257534308295042755228296152499967053153559162421318157054934245497877310207997102148665379536935316356860211562619393713534365081690479500728659135753182282887709821059443360113888716572693293565019262330818605908777592861828623218466714330220110311106668928243899088867356691531927303653891281904532353374481673256819113731282152989703043921135154168213801949599544784518588609441064084771233276508674953663052174141343453283247470783048862113997070571509099278295470510013054145374160947376880531097145645954387619087351414535320560501946153371677190763029172876725397688770037142325650316406046792652081020506960847666133100462112736024537550439634872254811303928065499217565050185593783221814347504209527081319547756128316522107761800401366072906056874794578560618686963749387658634392090439878498491144785045590616797899478495277221070335933886539523237134388429592191817543551714622933765496083093447851878290880448248285866964752060444614109199600002226186645554032789088433146683104230464222295703614287353556162437705507809726058334030262076225332907882764549595569383831187979232652119222762173670628301972753237296266553763624771673267716241477884509829907054183650415992915782296881048074630267237743526267401898324485608429208298830904337908725752242064255161955688932620330978866878710029605960664348497570862966682917357878775375964898831326516257324931333859530059465619981604093791065249584975126418379323647160477829116604416043821624036584466286442127083913034587456924361115376235603540151358238740651992504644888437745198978224340916584778304050016663211976250673816763009991961010348916296674470686074490394230874522579472262406451232316218103681115366290717541272238914831661604847721838685548018267708007739260885205447813144913030570553732669435065852902438450471132601886211127978149528673284010102984977754213505878400929614081035104014556576262603939218535458280877810984052259246673705341732540223407279745534399802420185655641990554088206628407627338248879482038469354368753933363964630630328639151205469231125202895846474739541163830661379705455716443182387854728408694990003898097982971062867407912205000090218473615834521456144895417857178234443856856757212336232466962565412527049897666993280275926970367014977592909537330726869714311988794912893948136490365092276225987834318047528404256906019220409542716699867556905522400168643742660873792559446193368410874887365995523512289265129703363050999633847240591179621000667607549627478078162410318841838695538849022945046808683252688712997544692372692526796676257834540162470219482710728693649758142371616313400192724888001475647893310742014299538691695962371124457525330895884791151535660440752561718978567867211081976227558191597813276061186287924268974735689627497919885289466753054745262247238216028163668898185992683583029598443477192491875431668077689004991935180236614534795809887504248404352334636051083225857993671771648506462970126569459415252561307369444017334083810549234826204394636517157267251002851250277046756074050950941815269268009653672132510604056105028966792270058035221332600292728714404857904538234741675947316640975559580841956918431484092706112194681731855019411070046212519556298511984094669423470499608105053349129581586103031201376882318815529682565440702140622379784851229580754788893715136571462328707462213339634087667079759955582143370128645035133927936420108923394029980697054169127349284290261716974553879179015652232230659402073025620938465060237338967636631012475553958711070897712403428329078871444488542891173982637787959312528353701279820511229369604829877315383477487871634209629726416404424957410958295316905784539415444678786877132685930873860347960488445031182432613531976354771844415013089406620697880160799655372775552519059868151266717859573175154479809618643326844640497378879693983598012624596172162062445716876360376430353458545244084157283875340711341313391485645981986413304355022793522399762610913270839404333825021514779764830931096050732065458820872206261717871943587861730746209328520535491123961736489559203811793555566331376304191076157571712781080774111276030942427177171772750516641508822941841928911869265244734022638756216402489324165921463218413920552012866065176827648285133490261325028104738202961037192020455642872144877742933644493879996306415772045821212919785798479556935496473051425367975339177460319483862642458430042366177323128704014350888907989579313682770807581676966114754201593532861348327143793927001049968368787427240281523503083910829812100643924528972073358958492725100882100736106392721874152335235143396522701576884197247495862778172021584237479983971375395595203694818106644359636859878249160483749594444820425050311014420218807267069043536855911477899184582442056625081682030928972142287849562656166421102384127328923425352016332633331072446838481157132739876666231391096453071652994036444951711778643609809689537567647428430528091041806997846863122184618393440601079915765696755203064903193036586969935018802815772470359694278210168058394537560468124494696036130808044285017956598842216690981855557431038659780732952217575989926053328099660954558294622183021958985995901138487324572512077816901941227524001656175397669781518564976411212808690431523234670824890948933087963789508809505466678513606154531713578504097212083537601793580374396403973164378624520059068630799670810814669910823280749942740736749188076258915341706973590089320156009491065965955315240127528321848399040993048710624541879906903467125548216843206877523845035067801498131043221944821532389026323876125784117386832516074651110026678881291295696258901520271728258565974760752478270333254240215467057069850321941658789151959393456598679110170908226555678352367825567297344184961515536806202432300959065257390998965083083240595040388960905266814792256042131921575460952763883584806137237413120874826375753629437902771198018455602268405102360266421685052637973877228122327750145865151171864016733791154013101679743639419215038930843284379193235081791838952130280272574443569955582065397600292862154557556421650495474826683312970363069013456877079806745275619497739380829364254578061726842783440708991506673515829342322384062917508426081883446689213773083595313424631055080258082735971388432907424753616825329718398262254909162297065281686132774325036223371581306819506026901865394929704441276014892805499956902416622379517727183507921052300049327555366213856624499048742418125513711343001328776499621677161104208181660326295150537401868712129491714031377538899469372899163270840611955645159142757985599264340332216500541072985746921552853276345956356107797184810695591753349391730309677485140283177077757644989170818059799169064304929171353499177197247921938002923767472774900092171723933614387760335957719796079095361883720392252363869349974255579297136482433482188960857815390692019526727499430612439732455883940743287615468398374887360790060682120830338063218010669849949879369542047160242975095552285468964499820290028456269975862581384573335850549824884003633961509748875403455183678274412919336913915998859960619656817965983126090690173209034844457139414043036520955248533588362558812873609186047476148349532585172140671500898397659548666861292197158035760010745816255991648040777762452145958880701375349765194057532990691148105236784519796641834493776621845383138437995947294007415980500111162970888774754625506855948650979790888413902812329800868475619050971329658777273617103388954049977539762494193318932692447788803065123292612998898831601478455547481889906501681256355850990338653255733747241639581849815832488282699915738016411581197239531613779305032490665840796962888578995404617367243158498103870458563307732536496337698402879302317571466178736153541377654092243664647167568392157647154162643395888205863847561567335417649914634023234792768484509112362610746975312999400093638476817634773419992172552836237329638770589119864607562045007308267001727274113334072126618381893781916488822804063250074986345080442408367176941308266888296354074810564571077536062793218603165661082653504112236721824338050815982329757510474294304168754213087375266248212568612080915190400144971693935176115839292140454420214836685856154815741779221071192230989679733164356339916114178476504369422220408012090495698923857458834097672975043283492518010728380785857278412352243886282126052111903017650300793161849896210351463109273270840399254096130497655458656254701423902823696329120495057876176550576295618996953494299470320783894538723688832332210682300423667963405535541718580752119693275699437951407617115820283759073885453463384954800539586674675106207615892259560982424009704419071742177827828915188646358880438953556067825007698837131625912514963934600832769375721014624344198483910191401232694660268073178261677266912790286929705861449858067105520990125556315011302184712222827911776359997160099211682159549575633703280704181081035631256696577243766235235545144929141740099613159942523153694729138833559563208550730330595277671913463268639380020087838444417085443463054258118604002769996201230925237940920024908735359984409930750542141401370577454310558501330361473744196440345774150605629126177002257745744038042721326485321557844872418971897706707941449037864260574063151373888254087669857654151605937348726777795458176774592944407087430231326031427269510336561895452822574342561909397767749612925613185730455168040198409550999458544649980376022355710253587673067505145783024130134101280488040534460799145709098038341778114978392625613963146039071294813185865126515171761717697719100069143571902178305505106136871544046405989407744578550814495593706291804819712465776457032621550443665428913607482173057393407315439998490668346100741535025950669486750853058293306389565904696290095905721044256521356126574507084882593279931815854526289443197776074054166825084052256001046979940320260522154853912341097209402625584317382840693775829248270800162070037844746130472601046634071096010064507663785481922849616068037838665557736583819237057601326372888955168285386279803535897347012015702564146436201571098428835254871238386130087387903356784801039742451924531531051034286146918614453014367241178751935937425490216511689627602781786926401980244557444773766953585426558452578257663463091343820971854517006577737641993154500766795052931167099720962974739436941269917208758266865093033272912422499995095012762116931916272730253464200762541764837510230294563692426214308269967845936381641595009287915547966599442124134098938702950848521693111723691405958108347928505778385758279843144451229082057013033344582079650506189358712716858921262840860351318398284048601720533289172226960969167733396301804855231366431026282814077827824978017033167276297335006819841123682960450417748736006829015839483062159922951499046473390362118370593269265727912309548705576280618420783346589832510173991768046407816870636012927926302057933923997403154034461643857295417972935599537398929649930106762700123168018116567563557157739075570380517659449248218143241026787321739561132168788628655249545158907151712385039788815099152923995230348520306318882245195125878437289448718483921631316180746591537664778931234833146618687674977500724044115113897658592015910307948458055218512988541392845054878694503900181457015935113979794109137303159783514278220258691455506867833699166103812203546480668927160291388857872203343563325831310284363678042923960178395972275818105780068823533549425512029099937733660536979372617238001873133410885485043884070579172680305305329444569844874199098620141972073968863504210699328190878851455807765150907298570285567544584548054976222085912464901328210196247947401656968702513954056327470975575709238939350200472589442242304369016932327892000585169392328268243536045788345507616123503825302837151103060502573728190871365239115708877160699643268774127847414103038840470270893398344246740479425560051894784493460169987708395705406088307809242883418329082302040682480890337020710140192841902964448646962574714138482798170078751948974661339191563975425274680170773577106213041357481774045443476509313562358279577254945757846993012120757942111156421809395177625440204240564116592833786881796006751412777424552777302317061819693534225515524753339017172291160251087385556824342723847566154189538531965433316859730720934237023634515032828974758921794471806197640493260193785918553204907572117896494782159295052004704337244487863651337556304286273387717101208503305457994741784912915401167565943983829968861729417043751939377210652837810194672107481122449121987003260186013761762103895630606951459843985021377102368939990825123355769200049881850279044100421845377878511583742927806559571164478520982951337695435245032191944415302963960781351058402599901945909607254565426994670928740200864682324967601389266506155581016660558726486207481952344858822632947183173435333073717553279751236532269979818059765597914918067584982649806549668628436022921349815276480746122387642858458497078670092388194393494846185467354199312733759248789491802133052965337192174316600260685140950388225033924121311359528125416196702328955992775060837306377383458933380317263429038834483226335942636817702498837367697560504250977078942953692962040979176329482990774476217435387588321742336561162543117300395489277330499284335410990413090704224119442576427097408322078170218977956152025993053981707227220044473176361297206085588685166731240211626846933459565331018861300489775825042459366188719224539150097657103281922539505035140749630787945881401616443271489131949273506686201415563764422053822490381239998508410150860835777853048734311455111326426322594528040571797918463194740291397047754414265410207344335913215521395742413885610071758174449389784548849155250594861199355004367776047833806723027127658854895989018793992596762451592179446449431751444301972916448696882700702121811083553519653798558226359080197615530086966066168360159405980175768306161056427271442402736114431801165844650330530521016302063413787356095306258664283170356419600437009027873785638172886845462092679504053659572499215647408194373154918734502901807530182640196941734832601577183597846951572363393153175272994414641458328250666575036530053630948156093468279657341561641096514724658222774157667354295362420406879935371117043036372505370247102335149650480607617126505746188476367325958569387349892036253341947128193479641337990996305279021029367412027999594574708159173668369231067460388086155604667161004805149654952841716812792827775217215005211808390244852827501135289187316849404460987134588481640862347768228440298513108698612437261944947435451360356143865036930559694536252077288559428215577059120388141727455891458830331611007041498942825046536721144426834043496271136846261453014171423680667888070868698576371414562997472131727116598931897141348995176646329773109847828312830273796703795430922482078877024955803546194264471927821735172445210288473616515798407732650811364944468925228728576397567061557488829984264343277632645636727572507924123665505947477965977668320006842747120480672245420572839087448912005588635393531744382056042797620335678454314834811605620041887119161861201596997385639642667255796956589935328022773399572053588769320961585526521931382484528165214867302129161821404090056444386976715794783219535027101808470357032806559514460437853390559951492948422855817462646135406821205273140038605424409192421049138315244814514825590703051079714504068144716676426988647818849878998643157763911974469045236077531250284095657023760052950705532481265253920470901849039078460096848274007226703225093653131964329004464578042812729287161666921748953640563427674317521282624163594797601309824221411480393459415128986028104852090987792696257124648485425590363204472778306126239516678256569080469653527224017374606443480511674586933313419469757879022843878683965257760079116625776807127677630313312718082608737226154574283189172049374593876226685001656054552936694218619748345245722761588082517529410201270681175023389815694029264735470342763406008375839906511813310103722515070129453425827578805088703711043986101945249643793652711588967072511999131528291943527472677364867222076822912007451577019107642307449156726063764615566795698773711461542710496968476812556408122065798502237109250841619944113987754793617446164884841247154291282664218812943974802289583507534599714813368138403146626026576365354774103061492040478698713975360690665439105170086169481877032164615958845362110401389977692961281890801796562648476883890839452037775188092017804579331606881854988528804580598528186797446598958591112704104870328552521776662375904647509696268364485277448022085379920050001752036716260661939152959465799133751236430812147232036538210651492162503649061899936589761456356523929582148175761151693072484427216152602487075833567909449527627261759076421461587634399524614694862739071727484367223205688427224676460936476393851601478804395496519882142720079060369336996119400943413595837768149312801261942085771391188782484474490075222784858537848339416984532060307672927128149183142954779334894393829142738895512940683875575007263769800879411560850302632348196155571740276628448842686394433229081526762647875289876664797060287962368988859879836650705100514261696517996655682827076363418257871782680812439412808550343589160078960865254619612676834809797584278790966633543156960492568302494007293778677784509924506338036454539384736168502179267032184251396045140873532954638307141987793549762253996268470304930185255064780367150031835848373787259108708867224280754120638859305645760819998546193642028273919281452207008986584591440865253444530233349272453872062810485168554559752931660758790043051259451691306962571913846869927346977115126801944207306114667212840354457988349253008060274325137620383846334706961235831695941763284242015773828653872972460075273396395735337635112711795338533265073007404501923352583552575770671470232859513088943292893957588073733998045301789724063394340005638804280140227366676561819465371417470824572387999689818898959287105799649109776795898321537773809946748328217491866200133970423198941383209400359859163860391877479400010581589089943283678057309683219442409157662245551398010350882997726551226043894291278248585778551516442295786905640482811780657966572950685631290623763577325100530797872551561622708127698880068353743839557323219928275525891438613072604661768926040632562874401438064563788001270347909842650572154600199683202595400492954833497813118518350944767190074597119924817632885391575434047191192081642633603738050864228553510343231524984843643359048129183941869432770738395278596244476791387286332949063511592319328974236973582677625652710456111202223406000074959798429181344558062865312710645408126972520365909878244913855747033813047378567514920771478469747792949038452385357981921129269784453943593948524572784046495236248144203804556086638145537249181249842708278949927542191878661482666552394958997331837981952022733196171249201828211816285487652116473593840244960772092642724183158364598047095022411528046253397759881083906997221842139060804906238475224120172547543565928088398545717068540430321841019304353681078830860786518552160180469513111180433635167925798434473931895952176368388447667467778163656516850506143383279165333077256056948027770815362892166117904955745188454086627205228197315821110845283696071104689437907977838001027612144480930089447777120100670873340517403944108669064104591912992024526842142867280736289058244832911996915433116723560757417889949606981639935575853217586786264062215153753014805546456976481672987624925467376712789425408907702742333529464481711033729118113326721539778498870917805956531772537899931048512867732112740805559241248950835685584538894769613808671520940605495749753396528046655244907817837420103759261934966007925085733139046446616145365309600978720434487832094467666461967856924549441575502543944608426226149971804817976346217748803719070808393070485175686155855117189196595408886780757374948746268917305701692126329482953576917794917371107798361663602753029333595492627816224567553284931595794074273388081411915036729784607377367872898800216828389682260407812784963468514713481346112237837481418461765591099717349987771534209768372196081380913128916091236068945429959293684598048588664027255386903199232332727630429130649050017303227827390999588511512492624173967285472980598360363579255097639578973710741035126986117856758786588406386013010748811106548374939377219429895412415673594614404667675494654692325660703120272917937145091400277929550110587736072893452997720989500907505248521971162499615667022052258878141586042622413031804266111364575603607538126646224989071042425362823288284372571618389363704977329434856423199171230454814456098265178639154916793703215863099749313715192149566778634971704253305520989963507301106430820999031798383055738084772410014166371446197236687715291065678626269173972939812785105723201792620741544324433832428891312349717167139910324980479081679429864185240147400237365268135658703778978062668857754370890479153230008815011393749597818945339653755621129650652676729123725149519758803189163193957764410034622031426926472318955195612854974816082249120433897474480143394672301236774295816939156774094597311983925141508244989058194389024900624681220544878787637216975594350872332798868949323151744070123448569412933849514015316197278111140723301429048613347306467922081186685114117197924269173434995954057873950184727782167493304391662384823859217158088948306110622305687225695593783820867249899390001561435434987536580901042147587303275339196020187600502431009757352228638889308523029101546396832684167999921932036064636062924833594382565388302459086312101921549950753418545318063928900909944697523869149084554830227217930809487223875309515882362343727595033880138641059640013046028912642031741037164816878782357784762521014773663713482477593198499439437512217344363664197844086535026111778889531280038729330103057263379636736314105541507755884724887802271649257390197804794445750189238717173928926493063872934738695863736837038988952247699874258383253599986371573220629390899194968970190907038901786497461333717227789520471758603566431621512197752576487105092000980510584420383443707105862128507749631002061733453372794445190659637158903172311776819910460319417635190477685945697325142845762791631181480469078728615075566815360393759610784243032831990187799849326842915986999605033838904318766857011655182814219170365407862109151849878384932521102357077065090138658231585794227204971486238275449554010673165132496332616789417265670002792520301432287441754708559971729217300739287618626155064206548969678638066680394954198108447047930237777449390436028723744692761265087907238044784796606386714061950922801024602040452743629875134748053404533378123460688561704810637248882030632528145732318042652799922763292252493600078643947205748796837219851602387662635486229955976157011100488279365739394679319908452107099503746993725690918743389026692834822985163427200738842145209599638330826384270059858931353897937665540759914217490641830425932767990024286075474643111053906414533178255943935213307481426211969859087004746688476903120227504681381979243042774760911253715004163442980601788620413657940151660960361115147840640236842605106285083139712253819408591821149133896053267957378968323717591126992005987753500091654378982585037506843172114523418965087071926711714677871181746236926176246837078586616438838274483184339194362801851504517308609810498541969515898309334907310753802667510559239894209196640840535772390869247917822556618831542395359037721049868251493191045085755453974266926128253727214927396623161026553768727880006362918187829089644424260028781908953197186641911719259944014842329891417551748910562187995955141228493671073519804076544181479859236904625623245513382852878136520875084446926028448642548273929523975733759270210480908965238359730508234993176222954575125674362335393622840138192015873887850746652238588600831827199128983882605389873805149051331203558415649354974360502629889467974366340780252224468594022445860621779203336043793999889733814615225051452225057951342565675806645156643223783231723838505613665823167836258384981331446797909229994810318418497816248043412036464316824613176420680894512133157018042215018558540611244276630070208802640166320323926232461143541534909683899666864483955435012368757271298886041822708928926754139046309521770496837658033670845054560634287777662516393844468863111039226011755762607981192302408879072480185311496680319496733052551725854690117669711268912197254660612874990574581569985362536921746175383507043982042516589485659355872305560097632004296077221912184009105763228657454023090174994338452789922222452350814972825704092979340928257744783926242930273576844716169614601854907926847247099996969794045827911119061587513211975807238990504227664310473086883324011771981824947851438877552952565099523324886659183792734132872206303162972094070140897863121095441592924900500144891805569843394990349187824122217398349898309116888867805665890076813523666116568028571671414059982147767226929763122719410987273541020811573533431680770008232824543516558133795623830870916357823561313244416233374576967479445599306584244313118259149172024728090909674461170590771816925514936403286642976094597076517702509860921507995709402075697803918867662946743433288720675222100591393068217873580744049424617135093412542479150737958514095674275454264956435319655209321257017912337333983702924481098130389796574071857412516423058257953720491923897768127190296782688336809041608655027484015001136832578101186891194110671859302130050327582605028562479065448974125913596558649023847446530336069547605120761685518947179764677521912079548788715708260867519300455622590923147568270158946129266463383527606278088823747614672183317127054208778313838080493596320178950514962253420442150714965796076271464784098618105509406207036753468655177862713935099017826440494421487854126033178094918957712658013884933425185548834629089604268307067040923091512556529659910848070875680924928167470035650082782259141856677412325975433941204214269034421200588172007866005785967835584821008227697058628929098329336385853675497485687631790435557065180644902238162621583780495466546717169546543461504746688771482797637843406829433425091121615745666676036498339152155122667405792292789771880584020620042015530147539968631288612403453816326360375343240290897604585878338372170390528509080585506864234209266582772023225848574478497968741163874982147040296440272416724184650272600207149609269878939766377964557150073861555543431049949133619698826914961369066584070955246982371837293859236257162022216786437945117745214098102470130975767275516565435807843466305558338818804982307994500826328214023440099121344747067721048551191607023176421841882466856670740736551056582137830294987260499514779034046566090728721529020791416143151357764215165747638511528827504864440030583178273068193541650394577039465737794097270843143156204605116302495285338491411728477186273079054964717276819413781613486832013087898412674550649600319955990449884106316379386830529081297554585471814423878913122747105798881518974639102236541766556639308726520390588009874154871694882082003666369000961726161493720927886328386503477549333569528222010079765182324844982789408221854960703117650454040234959369307003523553244456835046464735099642154826795310645967333559095011614728885132106959346435496827831111862182044281729230825592680709651498051336116867638621583810700156391121158767041581977469873256111100674282080114818874126251285033623354150441007530973868350734521909925887583204395053837617062468014752739945371839654965210748848748367704604647993840080460602411655595466762826922083692796110721434959286474033497404497422426386445239867393301825181896813007644770837039528945202730352800616841776172281914092359859713555715824452797582502111516636496376837245645781600974965843328415059381965342416844143894080561934720585476343898877129177273136765119587724153595454149698768768900792928042555293975560169322841065725019387204059319600118967156020553098000614345371256564883711326585291748091182467967000060527319188288094405494411037239453228038014901909680351943639804867537813623198980154412837519329917733967315297014454345866078900451244505686576706066483702807552555536064342269229301849619746616713907624688395663472358586529952076292381383837475818924292137330484293175617021528008296319273958555238621696336360877874026589333491027363508247209826730819809016647773678470285398694100306968855987561721636713929145468153761961601288015232019907940825859466723819949444214947742910317403837049554285358042655342102892420915820986820326637928979932530243406497815005503375506526085924698400110720191383029140198144511833264405601590743318422752074419189909347830614708252067924670537455197760071416719303481928468512551137446397769081637428056976945115793752826316656264758221286324596823727747727199875748051210250712837818312545940903225960725392866925904206414201369274738578319017699171084619243582870591602697895420973398461472192014509255869188741488119305680340749065343594491717970092867851727389015234116973458665866012594952661360441253118643752217421090414258396994617253909898812877167058205877507706624848316236679295326330760137554256110341517773831606910542205004851108337422093998630100788407940344180418502861297745534546963803234359045898224249036150690086244264787451991061890269620971398919227120287426259698659649847562128841232907394629642089368163616892171246323321547885776529175794829690046786973315041978805491806745817186041563701779122859592443630389148960957313241009441274471300936957469620781324423868397711809298000237245707917636326408713802625072596034980449792188569202154131993798103400680771311219101018339888965563597424639971388340759732220803545639435488690210228824114184856825583098704071164585702178710184560753683328659974967529561466859109785402303218960793230688989445704514063513005820602826179284834656646489156108114983516238748934607864363655393226979048136727945095813604645526798803231373158066057652248282006181439953790671151195848263230721997440038677768774256699149374028777714584691655534701296962290386108536831469988867250429091930616682737465494839040526125839063801119595415514299019363206479247149373574351629255399948993803976645239095600380516624721795345161063091801742958299132683863000249282511137399684818476322910162718472841293526140818758633149106953813054275193157159034629894612441812420520644416112785456971372805788466010797911518159110022285352419450365526082007337960848170121155423424824967890582873061357813814597315640062164262052721475739913198113989227562109412391855846348839856362032324045523274390408917713206968683756736114340476029279815031779776643268264094295603436439732194609736279103801594707696475887003864473086197159168789633796008905515055248988952981328305290539848896628050900595554984802430941411211668663367787796535072957829776481542231451431509595098511386977629814419688034198176282845508094044515565161331563441025893529608138104704380181190493863711381212892045232780275834253694622772984135558402687454605517398307146048744154607994855260310292176731122321379670959922858389438957051998006874935438560762066015748676848026043228835464245341041633722932498079508509738571425960516657596079957722637639719295584647480991246443591414689228451868282521385045164238547029466608270165734056995163220122914944784891620834017790437868007953997589299106891403493365662564726245332304358356807706505927156553241659087297199666746916865905943043210216059034346117764095630374331092743393599551673292542755363244461630569845531333253956210200186521278699649441297940608520704348671583026729235656676957303743892574115208075342963674546813953512852826527215680973583115377133300825141397027870596384260850138617788959441102223562854796841337809903945174697468392400748542147901535317017899443365677820150329856119316190834989015491026441923435937520578003141872902497050133193465368566798503649035885526158700195543824298713284029816845303060897811558723941869107720628031597241625970037496964379944355383153051963135766170868140747599151336049592875424123044587720557419242888902019674193467049160568079424783011464408647783392921512993044379879256805074909548691087572163107432199610440955781391286405556046192410227181445928543055513440302222281907911018308896262079814392850392915502483373943359704453322827406427539992911072423017933978002017780430213789632625039828777319781858731853714187900239828314955719972025396830128729403166226978709468218876458093084526359723245468644566144058428327569358492048544480891881221560693124505372219497919388750481201462251251978524938283358329156680735020593053617811106355411069195842623463123558693822336582335345760782647109233686358091606908530165251245583177946796913488280035711361410651231884318380604186706093975995147500989033096074077798801381116335918618112409835864122997662506076053846643383240923010931491490454494123639889324692706177047462950402274681239197698820227739312940982806117622678166883525600309729570508370250668990206520699027988202211470405856162617385321166570148367258566114007201945239966476790885262478192688576318082055710602208424329172372739866857270301225056395005856566872307948873511725578217594174028072727317500418877175929293208158746640528703437524768900005131429624973024413395682584023409733576032500738942428062413571804963349479834193774969202009015518883797703127783344673409985029666766122783773428060641550620054318844479391133714266534767950416224961532015609800125145810775409560701747942256714262240273977544370038262764487645744727533329383335551621606119531577326497630862810791550663484205890743839993251482141569879012811744772086251328946303227386708450566595531047332158735055907136781844080922256829258925297125770718734301697257032695148545260597485275179493699844876162516413329646510545130648075982863082673449483134142428828026029289619333216368111536879936650226290312344255869719064822180945282633589167045664001031597018609474558933718981722728796812166993458724138121829017006108700269747612574559097398509908379134326535493691221935425397744452254042191883262620263123478182799201823859115699890298509602221968951309834142785843551797567916132571360038655868924161121154755899718601367310444508939848048910472506649831521758004075476247475173391295354336523819486081043207235888602732854335027796533335079954205163485914279280320952424902118293922624141533175269936613211271222775568111148810194505538713867883994991429761207645586588616992308246003400405086755366288607153158087014958185820253561033079585145271770472981028371100761200171366910295831837045589510033748923632275550100541720225944470024933125830744685270639292328831343112875052124055191937564498403094765417041578420877174640426029796879430761339858635863635921367232248351467057871814336260926054186983297942449196679798015815656750971312809768673117133380511426359164491837010066443707062259529042489870458132359460280869609043244719478879306005902661124138271020978706656935918788668724267305484106041247147949896932232123840805766890399744176680594412281500467821635776137886387216843804440404596354216366586384622662955308856991042519217769188897842232322617284842112671457926224195627522944358363541928057013448737602522824362442587831395268758302829704469475244291728917417504213461029797509899085327470499113810328110284585816606139138495381954153549250536229178865757524717827490626703728493701560530159302931346420966719243464920235383906449749063883377976235754280517368966152005487645464516836873165792383757380586007935898711849671435538962678779788404868156700186542366475468918891080662482767317855245213469262843336900850278836701988689272741531698986964140764162539502661814115379791145403385708610294080656687295047685756320319497285389858327750595338020153962925673798063446524962722656199606701822773999465946615755851175862571987748877380636220086420554431499981972817625947390390617183233007077296021911493384455006329528862107892548227209096967045599134392910598423121121040073624130011972265761233152170543158768888198825586386619598981043360614438396340638557351834229316326550314595898003069325009193685804890302824265771582739570519460484872291924334841087187028575510187358236601472467148797663338113949975478447292198298253388678484424337934472790088557085456043868230493733840380673620809221324039533188014230074380923278194564093422716151846152465647691008194739393073180660594016016305668493270079960776849779270185101144912030856514701769942130776615848564727287370289865823905526960066984661732246578898645896818943767427883065655503037478284582591542398155830347583994341613917499123150676810742025699713823298943581905048052601045077484150471550837201445761998487166325958089586342102653041743037390609628716602272543729659098202662828793052992275143393396288011436275461477496928685567216995993922790648161389247910888142853651486654169581489470347518161698420455174270671063817393216496376110576662530703582468847055185880876467225946760553786172058203773896871929911491738051753657431765905384474771690610064817733017085646734924550231742846649101350734207765797583073541360952729311305139114191008440045030251905429665959928578188698175396377205403755049410765200664670045752736495964519335363587578024681054345677514809322289049844807887882805698597508113255374070947987927629091451433375735080212807640000658596890563676500120872112952615107151740169427530173658049621478019101726013040073131799718946595831324198090012766834765367405751202549836520710643503269433673138752505285033571066515075725974017490024617860751414682101633808281723091142065392931949370375082163691377717907919362061094662585786948182119004545144848238726352804991139285332416662830833080058800935545053339691048373350170023341577951339001403471875026460237890018158142210676857807233599322681101805824679775349895253403556644196439497532768012844529776274567572722896698537353861552017746769971274652204049089121485120032929520230688010785957303423190322479736250894237044481537443197717032200454956629980476770737562240147342531424531042241307619989462247095714019324048908078287267471940340353814123741096507643183100128545768509513811870932721613662697204076847655130737075561426176438877974501871318599926566368239436568389028819654518791589479414685452546556383384733882600265678518405797690677688361326819280340710463947345256970465993481568043332473628448429618378806167656983236934827964301984103162930273227961465490762655361606242857742638089409366986459336947217155651999373381345431835888850377464819566169044859019398909906060697363981169193657566481855131222902943398183971263704025025503877719205289252320555570854502567893950246184710780354768698233438099965943730860767809810154422203803379544871849076862789284774614563862713678120014589589918071839999916186506103242992395761188503668757413832180733473322822028887184458587675616610195772629034101138755556845608199770135246222151449812804742690253682951201485015304041902230579916778174874643983847892957512375235884056952001905207453207121398120007479787205693786450200763757065146099447858879370251188889037755182785280067890320481089983939225023402286708934169167842461309083835148466543518068941176296044362611297716798726796722966328641359907608985575911873914731899732897098633815422512303152821726226245416128521328417704397413226719065588437658175149724352526531160115672396879976446152804336423678654892499108262854594560717471278690268630498443948419203297654623852740474690383658198538882049489949223549234769600963614543051192460625186357781697546478975559876784687694603127594836807702005697142787600901407897048419230897356804917556145637777299256051195858480811822914592124392109636477953318931204064801203578233710408296776399755279127625689098999669984241474659174644075323531345734765983258460218335315489149087575629874022782872746316183622021484543711578531599144842715565292434980705053436399938852686822828424637355684010799565992742162312088497005139113773009652243673231051963897559596062700663308233833579790906038290075061787835650873246698317046996162111852682580399799755171469304800416744455953285614406890253894147792821720395405745229936623024204880197558557629666549981359201519476338750479512288811173754098823520810123804793181899960327768455931250689600812135059003518979963156239165543176731831342497188995205269432255286431868654984486126671807697012121469008410159845405617484699220748082329629347957900120964872573291964894827885030908997626280370126050328977111028055306261768171040092658551896631214034069174406403697174096650202932385489265318372128725287494869793434411454006699355238017933033606162870510461515221154142732107457456029490600304694019639524875234514621073004623151860895373113881158432516239869886488407245774999140727050775856015019272151242830733969800877022175537966052030124673898313125383933246891856723125154636114965982812000571601080418529939855432035483462580307937922027832060393174371540866705090801251573927524254622061814182266160173043300177495467768659542846394257104363435812029222324824742694663725985077315482897990855303686194324279748466686845660721938428116702028946513187908655924281733548754068138249213017302103040649003458789487445606775407079148858262851945314034718128846750506643773515103174316303354439841593176795182527171622055903754925812871156329881304557969498018624015346985232634609172389768631858874402024912763053880539430746447792681453027730280268035216110538912566787006560071969872912666890837511940806051199543418614709959471560723413327426736225676495932210131487206892233238340478219822387445384837284647604089708717562455582646561162358558412525710971920854810347900915947378120308249620287508613179390440163617596871224299810783002991294708657732795597404982185669034743679346070320812660298174166563646569561400386855518054582811411201338974690200170735885001992689408286524698615047181161640536842521620836162804202405596247168811095599850053165384592863593830446668383397914573626958423169592215372666366477200433797243802718642440194205072178686432009095489315673657030873289270571017650902296062195370940510050482971026952908855050757629596000033055760018121728840862646923146477170475784616565358497224421273397100288207142917310783056808991098426299680434501112635345243130582641033094718192687546850331708289476966574517226422726692252901484096581326010134552956592055775598827605417477324172875294408037232751589978279785546217561955420242937924485274004900358648434801076350674825499985996200494444627647248669976347047201064199089233631820236090238764035894023953650809712107667577630332407642913086334158494766083707378529945013725027823943992347690014666119264979441615554809650237238308010209239643544870139052141382582063180515492210977384720804649629928916126985298184469556985952806304139657937375378476085222562436824514235454922143958979246183872264408121385334641749903802574628410868954377765840991005422109800635579840795238936370794146092605573445510996029916099354522381637168384081359718322673642800567259776243815198918242429530959153811441635315209118848265567744607844616980993696603191075601720218821789113501900032776177261358520340617610052521123638297338167772337405345184934395790698799627773431541205388580974478454882139851111502949135764599315147756094170700272252511407255267714630355578492376903757867430529615513288895647927074101462668054625568475956254036244908892068366978175712242773268431988351872649178726824601700117226889642769183436333923089345438674220913770684410217582927921143596271613888712164814686962245944674949937307708027515376798085627897977386081027238941267275275274794046626728608632170520724279070136617222379732949775216915030319630958650905730231261880373922723074993229252565526441269727956454424038688139837129609836190301817511883588663492905807142943266220474615131345869103001266336659485330114477940922254752545964506205681093077666352587596788098930173895922801125248927149753446246782435470712705520725512763079394585408479876406182259524042343362079276465575981228710267954106481078017611925790435988428047848815103943409159679641700649041763386069644316177472583066832439686690257114452879678321945130047661636957193432778248833367712916933742235129849451797762092452099816381355951527657042774055247962841912409108759936963434812109306968094228216482060175625308783867181589912266820841079341346110493105304133970493038111126809724595987313172670524980456904194767579335945495411021716013515537444335870335961749857027120363351301641538816974116511998310394720614009598887902421745851914573831194020656095762301402105568111995673097361150775770342691918170842885834326115560480814427886734307730695652332471106697588602439648473212331879283260485229744637676361923726667514404295618742521516647395470972114870194028484935191654756226376447114248863969684724395784809918329630956934920199499503585711418536739525291448972602654630885967437369459465107322449988956453695460979069255823774652578022026003811122623911641827595879482906824766671630288605672313634796619945844302467386853140195430354226768127400380079908292789996581651902386402703168234250169578616260823189849839430839830083176213142397907024607427201403694787889400729613703737529011571329208174214585853979644886786278481842361982446138403491604753526282268256278290466592776661091572041586608120229834806635527495968786275055526432437362375673800140205733173010829134044183207777161787999435561726053015964612109204455660354975891427984058625979555278661671770759283078555361598078686747629309244371880172286942057708896503726767236707715756139977981429721459157414006914218674099918961816989268741519676950820054631381782659371674278690111513499779140955438977837209963965941225837413389930933366636837613669113655228697915258046160370272702749346439460907714199043588459726290140299420334948248913446878400474384023896850323641420075683138231377651539953074704916559234654744884925228205296853169010401719740049429879586194912996898525808735141978726059661123416098513952170020450005000633969833944889957010523515922962437724475839356791033639999691301335685652468498321731802249454123667096553745305346376512532348222356915916980058645360076416472879114613191555423534090917761270538945505610232455791051841805811196126812440921796014105187583408043856726635863542265751486946103916737480356999234129377849624786344841147046028385395169781549573513973017893627156400622952029441954447076795978903835067654195000230757656073163776069540756599458140559763491210897209808933847944235611855310537417228090102264933923916828753256835463829870602114051134982750424455487709619391645611008583065682612515994671395428080264036849904730425388847216310897364088013562381350541134344960942752436683333019569649470989890255876835493618434894020809615773933971111997307540053990452865748948648217593064293081605354145136066931227159981851012396274344286889388840862873197707933165603193752223991287769427050363857763097410182239663214785014923724248136835294532129606648843422199108244796153999030722325011945882457559290966706742918478235374828079863869943451562618556438966597755946794175398166670827191658169849438937776305138622596002590271562238976357158791929391798886990988464560850079793904945852857053734737877383256944760971375115164260390741191033012855602369476411629408985774451966337771565496393259048655113521221654100422979360669573157127245878657596428610618483169418618284816197965972379208438636274588774504922424322422285248030387422842415995864979553244014687309409981633206754575534032908415428811550569861709957846549962104991483299282446250519137833105732220241814723503221943400319124636868186964175826234556189797055220108409650088251066918484658799765946493287404241643062636687692912273762898271681828478328695115207726030781323524682050803861566070726033728967144252608882322440177498523918483391204795518466274008788253190602134370425011744837692779102223184454517771902922522483333308235461755358659407552850232027337146086687409438807280573666781138375486788754192239767162417016967169613650315069401829153385163862344531139877771132720202780006675689333162177335058572478295088474605262748373998902591124077303450571014553288924784352901191899173274830872851071216207688802432559883088492060425130443166987536548658566344507340339177159598185223301932503178475479748491723387519104701131323616722895572575705760585078611176227103026997572261213417803115869661963617220667593157882012297985270982463826323821049596038844543200152003905191953261435413524942423495764092571315321969534045986311091890235434390015823982985497805909328954251224224588007773556610919740406915801345082739279391228182586174895684808394075257831774814419655824174144132415950042713248493375348526149790090793558856358127376573355066544688090704291702944089852861222693930128952406734354790943946120371247906344015231036504045471671995851095841699827655078682602218857520891038684921157137103331944612107795598236210192366570647379787183008369283380890082690858859611526501996887737676133432886024185064421546117405835546135921640145481917067284170094959072600743215267765354088255160608803407510377002690196573286115787014830000895199222860519006027281176188440249212210793007311865557864075737183834914019501018266303214912518299247070047178243027020056847679451825203119239969002561710676133060925219049175337194409612337488392263808405111033555805134254222320058194067185216461040353499949342839353221284658772870001293062449762261558327260766747776811265920029279705249181065084259689003164505088856561496572885736348411497504331665930621461536948657037956420544929862295178529951885264375541459788697174281372181918647931610252643813731093093354027588283784076137356916932477715760468760455730512989921103227673026711374750466482809830666238748409247048735694434252786225025131274567659254301714459286814391602030249037950402906662765364989301215376867968806350534438630485437959435850275052651944837169672778709533723177934545595390814304129921309176222089640426879152323321768118124714723137136756108002391506413156325902891637791778953663637493790427732270692509189039682953576924797713616641635538853578699375161707224430446880888299638737605591712775028198907578737954624847429028995530261648258173772348920994520104359367836574031586947726251109992553241815208568595690645990204075221532531433195295264168479934648555091755249367974457508961775892439209057643401070224544565073398873093073845540276426685118426296019414782427241556596176914201055271946486270529615356854257994376340792271690055482519999833033514806799998369059666512486934843357585198806492749495183631788076968066140489090285163824843481173415352721603099454015975157105253454904743699139709874781641280070606244993340996224700485407106619009739854369712775458527398561487267372031072422023192704238392656783819070232307848040448854452213164268676519170361597248618225019613182271781840699686853846441876925601200493990428156672083293527516585015305261728707625990690751087839488860674376706620635307266395653756085088704328582054094753440220945591347125075012070947927790059351899374624426290403328145949364913285093281785430157806083042806843609501675369169504062700283976713093583669843965644045456488317093940089667538247987891280552054108401468153366698504203518059139129295999488207405313266291814899161959161899549131833285241767477262078369766242706214523772337234136208374018291979438162868132514377443738006673079389878868846595335660899956849999637917625665359947050408545665255427018958321967868602294310226401887695045448004699608114053979043300676596989556460685149156252143326566178563863252345275517958170533755847708797646333136342104133177027859461817694449595625264011198314174538236701115564920812983950532593368216824307360971313056665473478027283732500452522556451059494072496972425309776244735013530256493713924067352541694105849311993944657995504857502959617053605283842246459333318329530583725278997137495730799140029696511713251562101213425891080570308837551968498645103600083129582918380525972688788361476311790527095840496538151171368456590005311653425665002102833435755212304915766806270826407535767600026309341026327568219812422436900805569060337551461807137058984237736754412042484256730429616338712247696918854078838609907340946699447930902758841304362331675251200664808718712192828905847266720985909599262203328369872124725771179118276334662212788764267147552503367188884237395294056497796284591592448819616551659742518943923753034581907801528532359953765092898961407371340286495527517070116175097237044101069568014016809681163327160123131806393645775384599507319294057677080672081936332006778288149449009173227229709738189705082030335105426841155203480383906903312128254509052203505424330848530858210944311929344909371171522161128463156334894092322013902895620808725208877409392723290857575736369824921285387126729450517217800179032945944342678448133042376470335586832281161579678821117924770524410950904789600481194448730710736572336910580040817596925315975672715604564407309813213945676040969569794168644046857708241170229442026808510503416266386871684794412242905758217131232920521894542782492609054716467109896039463834083902113717534272456398318930167714481439990918594212508852500870390122615575856320023811678224748141117403985147618846115765022144016423921451090314337485858157338291047936261191678286036777585677041279396762225127294872281673326478729904182748107539463500682687197416989584765918472876197885203453762122594407497125534659991398893657146727135602708716587499039033976446924909447730079292274369346771748645946735497495210973063270001745210236653473912895507203525483832992699973477368888433624985163763504038546315305547018114302710401732352420010324406034730295198843879915898368954386895788598664054539734801926048396037979753970300995497769287068982554655430660706296955069225370886430112846867789992947826030080203756659411448599880421654954293790933979526674765324133972567674404426570170739382511295313105841590677470314105535064856375958209540981507661971759386685510146201398464911977248268721573561567752038679250676437656779055872249986670782227943036255815187513136387199858579565479561028136191860331404363017973356630281514270436390758745826215274054189516401834418832610304955455050111340151929954416352758576860999437621572644352542598817648163927498454515603735068468980776638757145272608327441615805360989551950620096598160836139365408718902045396739053483709685200087494487412325434537095741462533442434019047999491468497795349506810478598555948550371742017766093077968009635224455822146753625231450464758547570601060312531624878256930368609402343608488464810996690088006372475300011580355585159600658469369905763931884175823491694714236384804242703576955307329820612082424327002463544902269357301015007622598435982578099148626419829442735801394778593167825921503475774450560395465232274124864691336809543647050093687402272437337583700035669259592971402921542736440341147158183191637099514906390842818075127108915124162240468632056063796360202302358951712576111402780377729814539430556577184547177158063504092492954549423196350769936544037805330447810241242790314470008014290058577091004160975043672192744526552345698236003836260998259089873062453983291957623596805918544166619405972448338101079178569404127510116566527995453828918997552189422672794254215887167202955541626187277726388613865202088272773602560653623485866559866750016011687903658569014469729619997345523602225905231815958443157128771879482604427967710217281710422176870343753676231742256056229685743398983213249649793383593874074148940407090856238667657797018909749000394264961037935498618338846589521106679437278117107006294320353600199881795391915549684798518762954977846530652961461543438745268930510029436764946057355300886624138671158916029413711543832732896270708233269148600129641887019491285271166115703928896926653588071563508119957019437995583642629173376137803416721400685653841028034588846871110339321680472619277659477175869445153612037626936832535106399464672033486204834535073865556532919742666609016678669375362414821296729849697082302717554099604964447987323823935774828395169604560047026011094446359018993211377169738740954811389242117040713443898806149799232758331315474400354126947830487801299241474852494649650817767596901771547084949226465629138101453963075302901719521212581651653903776245279389213651533772062571178695829040899028156793995477604131620255140664675830007476467091949467851841533524900575521445308035314318874350193585730194978495572416314741239645455571974394054571468909404834253339696563565066963783776895982244465690858987004284829637610131836014855434751034249399397035798041210573519109650353492765793144148482104154981401133296504980836634707284004046587845099184206427823759434917252913810709432816708761321283095589722128486457258502112952665389934211795672892419407149854755222975710590244243840218144619072362659978998156453503515895786765166340076130146203542976692649510109496837974394942165971574829731526201903579201882643968340023174565618069686091718573362547341868164823090302284323226458903408426730072884186456809051792665512275731105455526483766425749871409264740023410421435733433914116880580233637391746377668204096933104339310758078160430888896368731980388936591872590855272234400643138325644677229553140814077982010190185527408702530584255960013877445875582225447855312309255736264370994137063138333946117720047121251349685894168937985223194438762601110344362420441776332436333818531557392127444739627834894584799695415738041517917869507696519621039466280084972697153471469990100967715418233035990550967433316989224331448077711002798670548480522352583848243519149065048487985947281694810271771482131135380180665458139285742743628098266382862177927214688905497712143293627525224229131158833846946942036347405727314313729111318089134784007916177661158867772242683892486891106155879224704255516779256632278721293671212686360684012270230379512595264457504236227141632102007024344733690703658895618932620469228311890487403219638598435524358276984266012515753266343667569101738255181796412317085067303159955891296966060231087990382862885079596747092804552664458899853300348579821704890115012985136702262369590285958704461513221244022560821084279006720770506111729525264660492490685446514459104061407568164591560401135965219357677574242771222793811888059511828268296887597266039997923682462793459132112281707176770207897933241482908372855605677305394596587342738090269778989646881308359518241607387426745968901673480330503213103732353783626590556033168255178109441584772861525505946203061040863472980262305590167016459787682180436014824647384671404819695527430055995625904329864387393644225934295491175971822286656418642997915058343097404442289591633776231751825565450744577305519243458204426103650151717314195675182516004728240001190934251591374693210631464217071826755319494288683965597819672490773199235476369657297356701543275956165529361045687627763640686442606149470774302772761697100104285685738486042154078825614565101796184004775626454362906970485457470820795503132919929612646191219293105482581953639544555116488247821905903447835049430964905660803995460398767030465569033483206980939818000752196071507048146821143402239643999036269138809951800606643831958250153802264019935335195500504142066128550579204092138138786398759961855370815840171814759608057504769886431270851251213608808644532833452922381021120483694085394957306907692553862388728687717149873811260154324620699455178396593267667380606389132507618909782764467285500574998149607593686105280506078061283729191929294613375733895629932868384379948065207280709250552314492832379620196267182711049905093969545682183007254599833050530490632951587467953750327604278747002343815055748836703751325726253622507311608487913021838778911361555109734204952976633659018688432000637534275197651416754542010498268302028449896495674358247581097907652480145422221532691415679235028003471272348597014227910557701348742372315386752786043213014667346368407509125703491494510304699522029513364327260702492654855061544273540027021068291159883879299284696711198506485462792342560749852392761443562633381844000707551789004715321544988831806806745842003372692330600169243879720995783143200014775922509536628390204142312630086103217830177157526074538715844300986350132255293105096760025258602984073103238687309757652982881613957219793228956863140788008588852258000809116763903339918653947823353330935958619812238051652000252693591391928165683554516330478959594013672600530001610509879373716585665805927136867528353917662221313769693493242949457639702297486170721125031125744654708273788085684083330965221125116448629238113780077879872713403149440987218247408535872295688501179472608370973822832322295448421881020464256553773026167098651244705179727446931523621576846286489563769692186872685144046220089512036171052216070927498009850138197828710585824572614913876934525853608286875494407858965167514286119597851590212318953912069228830501580642171276846177201397173568946667027128917625674058429821101960465814159348081748803614801344150719801732881514937693429324569665014542222501900067986546999031307198441648284968510351015468260690142108795275585020409305993614397242878162223308169040773179500031527878223877503890610905475118408728742756381507752833489322814599951639443744621007223805151595711765186497921616985356368897872598371088510080963291556584583132452879334760170443062227306170341597228302257527414043378919495560536075467530639810284999138489931407385491799322729743756492539510796021320452327949163077332677765769382004340773735474469560118284412805620919535340175291946435380611125998888373161839309153100590727819275938309074505499632282659617804488185763146337067210444139525054807922722208532341537556513269976096018675179808814738776395899287472704707546070305574800965686061643542740412183649098658606849655483758344214950417587562788276468650025738515653046425739800747809719578562162377721243697481281378463718871659065422174539940749886271359509116995477905724706739876108232191168099130515023230628431056729018902383321349600096733007116542192106504791175289542243822375447184625888291513902663565451602474529402091116983122433919775520864087224389639188104215603836835620491477699334004719200810823171966847529710534624580271453974959074754144301178884190163057125765849483914842945677097091696981011234976220005765277619030342229481380394628352632209816581415090854652703985950909957715266221883101812775798013705194387403814839606031215242946539443006678111272636694259916822836409120191438526242260510511028200108042827841215455323047169958311449454540075108282153395205838647594433133818141272475399483548741371759050404531102689157175562774271440283587985541845932515664144729483272276430212444449041065664566243972969738845741765212923809826971922049961376826996474004506874286731426373025331132602281331086496224908023846532310607552491322935725307979284476022235206043181359664586365904693219399263847887964800890633854104001780833612459716210043629936482010801020576741489125720041401746930574902582648364961715465662023456158542372190928364295405528296547010064127910169934588666009212534312849273404924531881538303104134559347489271332390651776030926057689866060285423678150133774013219367073435726360332814462026754822696160530620230662198931596114092883893870821378535917604859893730408242133478878502938100233264851358370863049266864586723988027314062320870071092028373708530773638206435271790489692687627320503602490338541433654028377135421964699696636774335245426674891839595026665138112867471911611296218012487723702805056789669200562758530236072217279283469459332730154923333426855591992710812391343592983173734031805200850512071260638081111647046374399774625635282080136895732586540599395579101236115054172220132997835081438245482465855854169553676229785962471016573887673722776463054522313668509324844977480890186817452334438627816572761152084852558428337694997740424439322831465526271084900236339574655331564160518744062598629561528142653045189972010873139454763019609147588639961976402940606919520740861967820212579263211289508462349697738651461575677539436652667294810498366328910139348886478023410644557863779221938759521646014262949144775327647544761028845976797462809814343070810698177547177899276656406300145536581421515689053071871468782463217255594254493421591669508710716241447478811649866294652218518670051850569672332740449375586941567806045371381688329018924906715186097055421441022457963187371550431228161036320353235826933016058329709141541679867235983500578833340686876907413947859909491030338760064768360718860152054725481092810586224504278675378613049865998206192146256174998118389897402507128840921577999287929722932600648875081528392133368677901099882622262437166975845299223744347965322860170162569733713662355256498732491564276383607083102480241866137842680728424566819854354643173325957467577871718957910812206943030260309297126910179491387938887510886311871440275946452726577865156288653900691949914230623569599309596845383236484003399221586122365332531030972613820750014339119564038375085660110995114228978992255044758802903514051023717853449313949196980287962912710424554235919997746721072510532579592907165161007306777405389154108365355262028643860016158153427688714502044778689298537634603559305554359234978784670515939867654067558271829598114768223622851804774577831143045286244751656705092689628730428829316062817080612924617516048252916866739188889894754509228018699476682256778767413242565243313761532193176850858157020525528287662030032818368796716080916144748648606749496840315641223659059786600142458784109560802293001289710705002765664240370131943350363158275644034423527704586343880653647155469333073043147682354248784211789798854980118699269015965736205823071119128784345505611826111861845760857467711352011981755917801398043135599146159630999523920425260907779288482660454749189979816114475727402071919522295275333271282442668117578895311082412539458491539576325797167471990904914575596478781117450951087115542659419467141999187821719170495339864061644224996776385264498502015707094296672894834190104186539090093286189877814260583414352029199628052210572488642223450513117575331148219347165897878464763221713327897502886768982483858642553903930775009255842509092121984885320243578153896387105953331431356904885395242519186073800015278540520454040248065252497750752415298519480332473409229704460927708705233290955094238452049617223135313208528543424928167804761376264873675936099454209013113114898695828728651532592340502990053550709999125539675849785611495637503013632953934904579269913802903608095591362148693409102797367463504044111089751588308578679736808595574950633722287774998112600510693394902672469000952735712646219356316796679024553310073146774099001298492139318062543315793906605865437712558025038275475129697067749056405960445385079230503121137986760039758051419964701241899864592231132776404027416422226311060946729650883034005389263749518006402644426356134018615559469552809513226455248795513932529275102022219841451473004106362930273202183971738842034194346904622754325406768676643568883180011735732698580913226010952502895566908461895634370886630110290033858069219882758605723507734630376786563567131084224584586943465679743763149394127768684567833903991447245041069435557212163731487690898351629539124919919592664898560051136943741932065515813583162181413993143387711741558073031505931538414981559032313838940276466394397165251411005983721368419859475980189158512600356651017144651739176104984856466071640130195309436672063796690091372195265003750440876624251500646401139764819294651233291102413280771818666985997758996266543507640812501058349726815260204859859228175575903430572577831352140967069516231541501296328537510825807038517585185841622450036130167790067262454083271650719683881936397879431323019818173600626358649757208549134511884970885848034084569930349572524041641946437184305339402280688925126701792833219845593006330395322549914033722019746560222689838445064433274022594502836334077087463564748680678550741541624837571644732471519957467272300996087387579646238517401887304508787768182429442692769584133841203193351243318182051300851140348187397847362269502842457470867067850869870061790930979010807994110255841056200792974974776924386090177381040259802179474872441135919423261892353260112806693467253227934926154209162413139402727491937946212642750605623093893699633932951262826809446789547084803807851148585072835063111916115183622188299954671499998545625138591707277644932315065059200634199515152710248420121562463873074243665773491929803562316841526485550172415848227783164778638812391482261179951846343148661650911089543243554553495401172772386095372334467265427881967806453937870873925167227936970207805087186016127993352546157729062963340973360777900385124569691190611128098713153441033028821731303240520942754498496138858199847351516334357560766260760287799103293950923508260929655937302051397907448249082766650499331570845547059235582390236717242017972162203542040906652678353991348757846975730064850340810437346202004727941139832125032868222756946108401714714438488705940705528701362470251444525525867072308591994907838524688085347016382371290520574216336155473883177360255001317088532624784972320090233465290432985591436427507456060887505293151724342852624538181932842135416418282273157689037398945220059472019890475994665279430367675248035461422001900601929952809065697066660931744153063144069732791726144065020304793179036455432208244660307051596356829295976525020178468198500441462713252031028087950256817853024705945153127726844392238364910725374330170981139270691445987244028744247273727949051970810069051606689448245372290098365270799928244166228584362035170188620223923828775396717467342746208009368974662951702113376231794253629237858664979877145730960089076071259785130265870203708296656689951410463256314680844349509125241327927665686304193917686220990757802327176728334905446742933685346791514610891226427450918226930490370485022794549794533843580775130716194026457507224603689483826492417059904475278909503877870728981029569059727218365021053876287811580014994462811471903777675503022095096526186311873410607290768826493627764472013824728558255648177138990979187973517110477611170899467573785923550531188971773728481243563447521579034165280960066959131195317813751282366445126237557520568178012586276295941535568808099468291254455331068163132411406918489681475533958962351965880674294088210727519936801076616591753194758920380590258802529878549270751556130891767161748584161952070906726733491616956400121104903629816961389350555876120568861340953443410259771015861563456522969231443085244458652333288448998269808973282621066855472220277066510177697885147588719697466742280483992720008866481680350772884684524374177679442341204746110669147852225818108779019728435399132724483320984116966914760523602374369270614794163741037882148757451211135862277876424409088676415252578625351240110311155909445889420052019834221043819474949144464868289574135971535020627319469891802562131533705681711348367766945313821395981405386981389419040744786774459657942142946690760779894842563648246453292785379515504482718364193667469043806274254010859061283409894041706049839390895934974292608661704466781241250880733781018146317146871799719216383690478898172036182835463916721764047623625301117468230576776848012682427692160099135095746840031735211017923047778444910312918725210572037547042963151313005356467112189860443257205152835345660770213553923728941211474871552747004591799430463296850962852093327859693411560328654458809607490422155936637505706133771445148491149642680194699695315078189785099745965867602960930072441564671945231372516991264233409972527084295727118072068970724628023277333766621020606508942515543248257807990615028071667268073604981957169765079488651698640663485759294728915551971404840422135248962881235449306000475126929146891529924956839817594948117716821172084546265203651856183522040563981470462676236750723982118183186221991665015258288370792736304933893904678473820961060771448638043966341778323717537133467716228084525976594331565264647250620305045968482245817790493689322108813253523312598488251387863911045443813992943677863766692482428033884062973811317626615725322023443094560839186740728318560749255614732134779990009933300266105498380094261020109747663285601885954439031291845805288652968947010776140253044133967453773437970531789429011407491871819988964449661324421036159589997484709986562459049668726907933072869646298680250073070539755260939717390446810511931617994612581686678986797068005324610709948426175684991170247545467167521164876149807272792527873999154523001616276403958354176980719924707890233922393289543989131962885348919675415423962113613818663137806029636427110499939037058527185999867308405365891738213691338991894688599924399215122803196096277905854657498338657271681793083783701635494328788917291631963380299225315492638794080505900773238354876010109772020941040463951201317920250881229362882593989927492582530768081756534022390961714222587735403055837410192826157511367129076371140323517348239571191010048162185017878558433742071319458429899803385820537742253102633095808961165756000729955410889381418677753147897139164727372324729750348497792237826418657198806873122975300121397931897661565248528355417570456949283124838463441414152441935473700307861240768991323551092261445011557893840408184345259331299696645320760982890210020487456930085629843210171581857835378558960521913011588640211067541688746393926014640129969285724660627061340580269872014387050559891406693918829700982139769116655190400350498130042378348526015202752865586352714549413487736761229107887343155001457785733248560289058056066012242696247557076909446185678265476141446747181830383658418378216326789634450733049695281574726911776209837160116821282457153617880002049760621024524056014286561130707158155449439576663295570754086605426401864652217866949473415485362504816506537746848219016300827832028694023642910664703212438966540253012778337887365205291761973635252804706687383103425597799464155728374964433421149713137028985404090094491335227937527480811127332719411858701228426848249173317050682543055832389352732158271073129986371181744093517316818774135426036450440991610234996283096452743929538264705560273825082333403555125251357979848916903408730577790822024328297131984588020706593469852979960321367589072698223549422107751542294996649475178998768701999681878927077070663153635708924445333640235071824694974625474090438744907045530551164100349100503710776088535978151019951735956765998076359662820547578415701750190843615520580611144559998859334707821918469925898600579805340224012073944150719426961499453281611469133236653922469039951641730502768756488954804911174255087630608164427893779319155297154853227987507380188419609685638261632284657906825134498772550184160764052515923569309355975368332951961920596350938104607162755133654767183501031318530600647245200023223010792719185245787827539028324544046464874647438591009164790350896746876456672329915191334183203193607029339355832563436157323297124166553927577848600166082044899109700098480619377114012032006423330961933429273223554986335133496031390340063810423222691630779503187564752183114256260449740355404913016721974618187041473421552619018385541387156802863854747992975045582473900822692506631622311682560074330942031871167135428744251608323119646825526983188814332706846306525648179577580173784653212190942845988350805360908043754425847416055040527231343468589111195606274930591202171975989417988825875833374592360787651701408025334258629594657218334201180516595608481459310780528503048818672884744049975907498216962362389611746726238302165855773380712057259307453724275693092246993216968707239588302064478679175434814132326864640292908527663848446016228346456784993618623716597814875534522456685914801131546160139910144194611711446416028292357389817558562968849984771770437194131555812381276952114527479427985259425885675400950124434528169807631749767550410420335368143298357624886591175743224851867228006134592039085840526707162332451848555090055477417484617335816615082528170693939164622324733964807699912980548522800364384501342394395706847548050771898655614018128518800492052170055085882021044125041524129969326135761200347569432198692592009709525862001974045040777730633558463887115587540794146289644821260582944781578230829668565953327004475327834285573195523296352225312130935557294758409672460728046756688408858657859274682149153391346040710958525342539839017287042707586382030305844837664211959122359425958440608355477020893895127184844859543418532375171593862630607476184601941902713021250656166166250381546044210922080990346677591973728808516085302452981654456789659028822967589144568731707396489013562261859650669726292280910617216762281402551903038343324085203518702472439914145412837845088532556672980555220121605902585554392189700147031830117812584448876630396108394242173746125995163065181404125529500372910494603305018796413109115651392786584142101898169803630632378830273823894106028097578023495232638031388428500578722750185210072891289874448558993558550017107466431216795741970296913006314554313904737013545848401955735120366439901897294634802388352494269357347043411790698517925479255785371046978204380767902343156984096533404124840339077085383982356431513312306449490623655274149935721831629647876353575446638452074343942545275521714405635940471359979358254588056562220209945887195938560893941301955413465497179768423149916597424754324611377395540114877266995130371612953203324801269324289741800407156713721077310638399881416306515910893528599733451256719950828455850401607868627029906745750493175456523618979235370791475297940381421015444041142722537364577919337724143054931357620893997277229969164051643699940916094119779991938185944029922946207274706309387160988065857821781146296863204130998026410197121951332139592655300494904184119747374390854369370189363767352861822444285456367518382437795489776749418983459579610402971968930070610539263378453076310796325210585022947793548805194206866775365910024753217471829870653685811056360789502016522364914268005921927953839952615240777468198291149971684629111493709172622398229201036586618837839749565594870013629247012525474258662586581769444992451189854388161440314634517541784214192934312760616190817479867109858449188690402607965049844656291747017116813517668361577540422653170756690306170785467312549317503931833358428946536849786299330403987946537563517891042029933626189698608466601765551367803137583335892832161150496470850354889525564745353761639801374971843702950393308183356246389608929273253182795020464877563024779156081744701774372001647600886570778782016012568859001238582491205929698257507148263637393400191553512729182422700355134102283208010816409765150440183975937017353114756939118043236755859527088611461888615147334302718022654523647152928718534520195612231815900215740845827475212848677663091874643621745373838119398802353216332290893831772751050723164179835896987089678589834576187733355372687138778472502258519710452680410389436843038288298382759471423995605047357529080204329802094625095590897301793790392144880027771855725236991102993646893758871888954078687691840359527041542371683660193914850907138312186021190958483832461060392495236630932509783244726012154688069239265490220055719883481258855229129308138140406142390796467222637371098493227630322204659520746283329539314140754597802561371994228802054943902767231077048199780114636848955527992534870765615011860836468638859776224005882247878357009822599681860628425396006078861935891615836942926310167480511641385986530882298997862065974874721859240849581760761561907978093108281427905678063399161124522867446945487792868930298824595683384053166501539927807927164888274703809270289585768554086953726156178706179556753139297489852807648526329127018520863504798253507370153463262142952930834039398917463400929166504071542795099724812204521876305173862711546178445008872278704985796250961677417051374789646859481892682565443864756630562841520124729303743621452609711977746154951620041324475696062948392925739462379168865965271673201889353760547077434788940134673839586665015213049977689100427357421505287575469966897940150914069656861137271238432377246215729668403266311513610105315831997983389047820306352566986181417547906715411892440089501880618415932512494500519374409500515755311671313176005110501646105487763399934912483028200387229559432337867379440128772487836347738829014365610564143882686961430958941882479282654628106711361317275240417311787603741664090839867503000259001919190460665161425219687173675434405230333713932270309747650170440217717651832043189409351723137630388052108957366093626302785589999695864860325554807713772563356752623300230213805426305570135315284008921076633321657499526415242487040251294990761726218953283342816042993722531913305756868143945565229782640244778784171420254694715687014442541627278814417894622876128327693069258012250198621189327382606452701158639252683310727791168285107391067758923635701756447649073930161043299243008790510289054745565553069688529406848467080053266447217869475124523160618262327018952594624686508043747739033319001182135936443540646016428577223737001155577340234527907445326334127176714451308810006817154765954969891076200210376629038699479322093120316979794666857102841728272459828856581437421196938407284537641425421481712659385548500740342477919138980054836213155273680610375252934156393400041310204595177231669057051150507830854633084775407170194374453484790130549169500936387137290209552272893692306429137160623083764020542628539187739714046810683968331813199646662495265487100055321205566427806477378173479545089762078483202225953303274187108367488809224272460981434762383480672314112843753420921685496724361734085566123702662086830485353737963669539651109634722796475614092236920438567025868796343612543521589111620279673330095393112868380764815841773284899016966345943839570303332093084460524729480523570564886641385214200987126800060376411125110118487363952217779960027113578239965609673002520338132306334825056044372919499627577761909125522196645492759101397918407056846064449377717174117822145770925663839963152195998687111315727600973452824968780637678858246724715565765736345251536056831266804944399527052140804202322238572978698103423508167452218449695747261153271732211224015521905864885437656280641248928185020591525275881084210889620428456774241119233064349824489473895928993391737207512958845856305115312803807047852084171098568418827220176497056429149074288811385088495509184357955386187122358548290640109855149726212919154184822766248210534107755506856355667404819007244431959514588473656187560585445668353981583461761395001936839676536814360270848833391902641875587552000287906334337877809845481996606603013802050311709474655169226304613590133487668779708069268119113785851330400697860110524736792408880674442189831486175456436696715810519211613749829859526512793523478705347602753632917283526524361268883972840089221177176743183787884501211947710742060481412568911672546984243861245942831620736563750368913330605151796158433700469220971093070953865522907186493587398752290339079857476934725421230137096081455415305338665834189643677403558887274757255033881013105357548300769487335578594785664032323683002567172727189122342678474176938316194621375871643883203205229240602768057009439795866114292216217570153214798256863296552370063458960508707294273060242193072905553543895870574370951463387646920980757405914740517056882644437844428358495036073603536211843253955226134348723233642450504539985732901172491196431852774463733772321307704943476723090251885256602821739023566887025930917067053129428052496116269072424345015882271192100694322500925406624340276310897120969591971074952816412370853425062912104828636218722625716449185280701769010097904375228785562669228228064510059263287076986180070384503662511676404601733716994901213325392063497665790490864637414043703051405619307916324890629771287535732088884188448178910082301848198025184563971887882144092843496395352412519100598936762495599126875541377865305451873910953000344217878280570938677428719884148075060731147915947469341836783960618067185810800461333943739515598475185278135103330617087112673392291781224521177086613621284804184457435586237220576197614894569041539150423579472242895483961078983119588748245096690651972107311132474168949808347011560091567894992999995711403689879096776071411760771264212614824591466732432837744410896866587674261597799099171687351039776844580439807751905278530350386089580186149498868412334509963197220267655933895280638578093777139247561694825089691996139609370284414716941558782867248376924843968123987712349492528498235506392716937401741379573595333038930234801288483267213642527968682658580099252326395381369715399213047550375252559448750625901504213186528496920232184617850559083437173731807373596211258012522119969648140609087953632038117946231672056382030164260101641013210735124537330836816279269352312554640129261541108855022842099177887657005558825429340776664509060209778680409998329674790289216044661400791679506982155759117090214477651664611310097268739755567891459800708476703583395482671159841978313039501625075361009248407882543812958250656179637638521375980796274227734208421243405397709927931547467328331776559783928321124410685379069183433422442327479446569026477520804141069058771736582301358579882272891571760509308036744949864204438979140714503478594460692721694420702787877731154786577639553179380236737592920510867391142855848450965076955083129258613219426849220067733764366684538318598541608453667597810846005284131588166916529148870165197000161477235201589348307407352694199905761240663910908211208810862333982146109077580911737916475793451457406436709319576546621019532585884806287070430564233369033525397547880898407184555446279485292616461032873029938326711479815696968851216165757214097567659039632172683779934183524790900406365027697844630224498816596571241194253605881918483683084677050959098781353511697700402878550321986597631515785844599303234328192294162152699031512706688529958222985871646979656019318266055456985398011634299616284732334643813367993960979227291337782950842392059999420219728039628357888912595911534311859500576731184596091198572386888818587732464520090897713755434732324264153922226369294064773753296223888564719639008819155411466918730631655509904590045838389173142632642299246299784004101817962156288466731767749937616730646967208246349183896763187858108312458700743698539620207228311178924017234333203752329970304094139080621109384971443404019451454271407550563940680146735498355238353435661187827665843090383672818455221955054238976415140604727281583997747870565518797456129293178027087742784817403752522106461194072511164742488312761520157722218030914688232390546906677142238410039493305793794969574084038429013696873674257983428520385095573428759459520460077681076650089464591960052131877548930353236576933973751870192961881252466187781818055457392434862129965868488467886804628024052839674627058089405310260236096494914471029023849416985738392333107544882386982200903591355053447409971947510601886353697977681312818093713580724117959578026907096861047800983512368532253806228859600242278757330613609484921596537404178360264220396317947944816873513974617033541106460160757029141644453539173921568301018160317532585103458002943485174649160463527349218326195681858620512901097537145757781120935267476222660209084390775152202379964112908691565624880328542980291303699023911321305924627120946899096861828538663520837481209378515578065899130251172414157455870245949561548555047370530509997621084361170074140636376953216360842728834320876010072940928811574960923732968216299971018672028182365537902794010762715806752514195231682102331569155979790437391861988590141190501332077697968941895019335117420892020300081467798024130930788824855918820680795512745450583095530468659125543978975583929694278481498436278759848131942613500855081251010639999854515825252091937595661806759805399446118508939504233664097500230049582128538221861143178634012246640190436932803696655078158755555112854878838555090992684551710112114049858994929364470239079971393201587886364292779751664009578393516370481207985241472682631746031251467437747446812392584030163305249871406729165200092211706046624898009140948666107488578783414029645027661001723687633748513175601332055954024611945619001392332906098267610674664854506017805042799373039573956800152997223263963348675205351196316259102454514979864760972913857725366020854421802470483355620076380950525297714844322759640102232952340350286580826623926563902321000745663705296622192825859695647638148888666615770727982167059863236148358119210884506120530367171551813786308380358926818249244045797836958685496503396542041167137042598420286674124667795678117901888011747608410582581910390737900771178568929100801282810573809460287649103668632891077736433822208033364764960197577316102701665175364477257276967217658780830856822760969303703554768986834798165389215925496044397117854487018468890163719270052322368126630376958691229228843055074415545551046962282759683506176409510246349856300303670539757150996488233441036501135495537649855553607260957169491826731660855890161385517156623377000222394323486416164220050410798875708238890221856200981926673349965829823171861197607926862697287688393103719918224964461162568331038595119416220575452705691829199170573900694248052316059682908097892722262447588247063247082768973780349228600693814055042281486175474465952821127878991863380355905420170131319597569487845017167361145884844409139350487254057245478126564895746210856150520742708129501944073730878587342136860008834383935642817351642516579632966498141903546642543621834520606997320774031720017535043276576279543999303999430246855400763157245861878341915407104708418626008368464781947440839751218981509403191319229457917233583374703591291018531714861148795490946717775075280433207734511897736878599084753069562758870944302406663612187725365539881602995546466440000812712222190003808082867168217593554578320954217423894357304630836970626923437932286420361627417458310881689373772669641115295661911959237966846490239103162006870436300337629956521186189583969081120735363226873727395387163064010291992089858226383442248342632241220745698882805111911160667492334398745519080096548688551416057802741374937405638395890889135041235027300974169275544872060274432260280547129933924550498704449775418752247582513529427710375083857618104037645746982508524083575848501760843969749563905284780458112963457014024357006711113630491783601814282007071305488135065162893803043266977519168008013485221773916783651613840405616477759283887809519174876488897434802755657962648559091999589324231419368939246124353530612318831528727179928736293030783755032571866706567107211842358085218735971807744338371812117704399431313756256976974886403793017704038597112683144972027268928301154135289209340662165025569935628155631691668942476868259004789148418543932043544136739943902188705736022135311871300100210379068582119343331994905868609047801328603062141716695502875954790078403551002884581696471123979951317027605970005578890742749852973278072595525045403281906167894011840405055381329346062008542490048047862695702406614387608642085931969756110776688988710558355968033357077408847127736273590800636254542114845980193002569276124418677468447661657997510541246734972163697707196075524863136582093640316160170336476652138612615645522019807121717686443411786988400008716043329765736872415811758013696516242960495455229780208708911900724533123623144869235030569137779737077290990408187583487932604881844548080203798607512702034000079986028389709121850677461085112645311736454330378922270312393072104094429986990610414180293840490505893295749070723748954334399702768524627138740063250699018931775800884698965081283582752087350037138803548379855533256036114634711882118075242721541880148518830255756410114345917228809479530862430325717024471781973152574194016497020999734654314123188662843078235729507991910954599420872912921752997847969196105706182098636842531299086864146854060474309018048643458949957002336076924559832702676421309187219879302532655830458518956908786748719649394353020561374535240950142893977786644009543654572816882850471348609037199339835409448730725240339981551982324252704280164976937593785610705294006514522002167345993393171339146723821138027055286625389478348971676306497441919845919085310874826699903511313501805363732725028770258963251077915568195945453218523684180270873467477893176839559717284111583663478462632112824335022863339067022984778197354697695103455423337609584302854413558004583887105333441885996347862876062876113312817728838427175995816401613430503222867789891845424138231198859243164450625961721635387061141211976596873745718130144661476590207220980884562546407278529240807355080753631492013370751401032347135867130743541750140568216982687671074462164824266578412010836582836094105239288177065840226050094332500273180351267801327803146239831940968285336598755960711642142565644757200589191639429867503233871778419738435659832146045476931399805747838990024471783261193659875057212276586937230589806118862196777316338856517486692004800939860494328339866718406514037184290817228108255588830069771705988328728327392169966023081773909303234524992172903110011776271822213834854738085263967855724244905275399648551745499502566078000714866427316409240000351793877713560407087194927824068676100540129470353277585016063225270536819134973998849023807568712019103936723339812512682461738750129720160116456610343425151541554530921264708098653860899206553253818952397289716162577199881446765399454682085846344590502527809837303560754608817687760037788754696948043292749992103839856611049561376243885670073815789916738541650013125202689671477322846331432810789342900315857292699136629134927369004896495042941202729371773363505263271023787552135436767463839015498689849297652676927037647118473684570439970269367164604587504794590646254117716559230399844521740883992674222493662201393232913223440142246339743623859890555572280494259000281089918665910344100975744632924619509157252927903117463160761061027875274800931144380797383744294570253768584292261516411637485233556590942106889096732951701763530315292835736930813631346235513389266317702161013529285708673524308612846118145829631585943846012911439308790743464938681090308760152689844372158146166584563448229316049731634395917652742600074583590004836874767663901856449717343877891432942492381616999920740821371905588914320491443502167219936961433314200382168315920699280441530315891758908379447344885136685171693960929081751619062530026916030571278241012817459925032501134572951715038589940362169551149204594651217201307253040343980226358031782252414477712842006146275030145171676527069567191785526333238634465708031491889225044189383833710281269984169988823713969644719529438577488374944524735462366133741093852339584957238892411219326699726688370539039886848131173072843058772644944828055834635901383851722625752892650709908422386663243448954574993043193230647725111534708699380019208625853869756086142698167292283962181766840755674587893311722932745180732630944196661134107494034240118801201905993488869724892525900695623292873145189408489642521265321986237422937172403000663156332644280834714585485910704673339484091910068015486785328261621725043073410301073620969044747894629595812013637776896240790758660255291116308046538022673994112133915467837014805784805729201883684110429928876439456355275061857834704581180257659308043226877643829882676889468922286671467180459315836758538219061342388323508439081352860080835318073879880132338607204856268074329858242279088667916658166177788274679805675695254980154307639384859782972703273864227428675197239945064525389773044906643388147933480725834096125220060626264533547791961627349051486303740929454958399793213879465057335914241553669817933982835107922913694737001656264003690123578528860010209792498525504427036189609037404567663955668436389701962621269865648556065133510613756080069714944598518717203433706473232247280904392765922941629924182067437415286075391682383824494422031185300849291901284798825923911790127094914097944290819001780676182097728979082696010209198689689661478377413514133093732355284843840696158761488040881391538730479365759400593481340620194083110234895051039896676634053309265955227353324744051398155429181813812956519844247563511517255866348158083453801159605221385810795318815660080105265586038814405277002610742666434945435207217336173893357860693519683050879015058195734602938591723347392628882277709082293119995459725736105792027669741987843161546810881041415375215825379680422600504288763992945936930336500294483445177427793477212884720751921139470487696168228409298644423423826850543986951545157756716236878606967332783195037934785759488544789333647917173964197462142830092284963825921066254947584496345069957990623489418634696930733358938404240769520507792625331469273426182550548591129292578959211343786486543299428898535981494631423702743215499315249156114047776665462010001310476025390099997938825198710939884241233206279396010139876073562277935926902348022778157653327837242959093493900071040066821459084468953066662894242744913835340948199049064344329155078742753875567526014506311424442566577814779825209686947600042094126705831844977581175370134184179829304615209679063355523521701172971383561616086329562256572662153926629972565898892658771981836627135760317715189507236307332850391046528733970530836582427428901439334664522758915116125250025421592103354298721056710469698991840180781709688060911734367134723694519722210200887131640834204335981991464421541692105512477842613769513933573089858273149570751687275011647432908524995350628610902199703578012883452351098698341857076155759580767339830220758171534035157472120899812399929942427566154832882605039588344726656020215752692862137989313136545223164290898822977866567684950969598422768528062946854157450761613851102878389275652728945993995703964918142247602943287206500713747067321836461588679418626897771499092157621547674018805929651055407452274027329201639475382902240437387546275867023566194462860470391251692524445791375863741190359076199558336167127874546115483885215537459511061000562817921849069721731606777886585975021023165500298279489245185149944634681575982975610962837569165783695345049297543921371886025466534984523295971742338697907341831260247806316245762994460748626614198111386483893810805262857055454403646371637745193424950331156168443680070337828695884059515322695423935008065205017292312926050267375799986337920624255831875797071457752956227041891424962022456043229513004754913310409495306872206309318744072789038778956660666372354442247626723394758495624445207225249493936239938174677861386733157950369511741880964511912197775945459363876406875086840731658246847412158508671804586383017929878928756324318595527459328909302779477069526994831639656532412153014362972699921771916999289773780663089606609991464998073205636909623561674344945458390511631824127758807442198168000731069810826492098024077667343413858395267727060044261206287866094452671293674928245894543861523824095200616517687615369281326298255786866143890443958867402396796019328128424550270829061991389987662963046097105032402132296650733687112672109332696120838619051122412845917995679871175221714620168985089976000371977806582360975433733855898266125228030311079832811191029670021491481414122097850907082384212727674209008568301438845219086899148752389706804628141491413409875346220769524308854004617887933862137123257061491023599850386358016205337658970252068541619966433545113032671842357032177853514266044087120658123658816627122861822259848126767492376201982973716494139964905708590294134376870100362149279778819938218855279349817419185798694179140230756979933532578238355947881152530418854562803074186796736736657617879611070875883226136576470631986592432922435288811684320612244304314381603841158113054581614701440349683588080474548489731172610136699596760893551773919023190279810178510970587868791559790384940760890473087634199259121041183945646075738413547804102401238940894313676191706508456959390911519351562903987427383693463968633670764887365862518640226794388565617024369896554339319734133198865859363799475771133514390765303806173384034548666210655932776951855681813648562780339444139319849571597865769516031035451290335321063117798214870503634543587851616392700195350996619910140699645853310033216798088669390413654738867850578325479801057302853457933731093939331407866679471150849385869156214471200866072546358031688664914049553545521613580243533601201362610013383189007728052766633982492848305288055331941654219403938504883465426721929296147241392051926393651276175711616384850268776676547860916712846554603211946459199157617052807403968370603198599497963265400675160580148763474132066182857016495296357723070864486319941313910046422904610013495245391622803539235677824323389329422800070941977597194741021061887411615924233874846584225904754596679213598069204515772985082955297943383062215755097125918212244244033809202111993296097523834055787195509909736311567292247413475458285098043693818247496099076317749891046909139750846975249397770374173343667456968301041840161828308191383909071671092708285979546036234604728185728086951227976581764945706092871407119216777086946372575311451164401827204957553513016786532836962298821098785785798976354026697886230957284023359007716287416470227255106257067577354379921035441788135310349840185250299770555596428303470194745318796053114185062949475542396012252941807797490946191806559689683596811565770150952349203506902601810741862905828377722720724332107990450532544215027244193709934352248340650572542586592620139989715728979956175269191451616607570954287102917783126984763637426613495061440651028132043909172629058875178605925987796602909872189687498446855638734795294572304099379540577449939879342676445936298556242573616099517531821333972761088126995252915032261661525063232149451408714100588219789650470727779501743902867649327172067910139153670366455705903472841712550980957859208368922783789562097639085028641972246044169671127476193254639034312017986037629722496519578112807913271782381671555941963218647200006021980002701020738954607216396614990636440901580377026532786957326629634476382889779292178333283610433504590205741262510209796876383305928196598886854511225942633419186269099103772074656172119272604242106255859875690709200456550436952269625527139730821104343089418917314715577481801746315663329146136897695058130847120159822337746833950487321857226529274758546178922147291983942329954396150114521349121016639531124506721752115068046384450076190489949165993189317842351319505229424785516816031690481749419282697104455587401892871109084329619014965356934011381346574246585619214938197308770925380848634565488818896663736723368736235045971239393514286399368290414282273195698649880658493856951615773149303269130416009397566681190197366474282460589644226518937777002134282230449436812123607285560964253544611137952159040821432385577089380125532733657289578191557933371563363048560328564200907258317225435516498775611132590382185202499684984449738191094287790374307606406869967982654830389909531978501660024226710367869780029448703201264023280694301190773159299137880267803238115108651311170800192989411568212052696668598274346203552735610214440166843992073281309644059112358005936644506161898246450137654314552433343856287828898778384795987482226574353466965298929597398988519342003094683099985682248593050521943456168098177852747605209548843599165861620752360278072264780298519704736137360275938108104251467930898782108267565668730446027952908185235860209280262332116593295374598778026443130260930170829412091351558880448870785909840368997267218310286258330486974175982211506727413812129554101215765444795586625850403668072839732510533807329565719265017913088895162354776818220194501590437426153350559433522545481088289243181732263786213217496062816760297257972387377987127500322583777313263138227358309452123855058196449825659782974533732772069845306036747810097797838933125136767321512516207508763637935151396821118801484934053092894758236636453581651157407021829387714493029338966849581443813964665175316594821718905372651981365503027731910854543991886911215756703404300458381039296421062644358010455997072416804285745919468821093706531414777951802465737867843521962602705387831334475818648867838990251558895165360964422949293776921947919776653721175540324413416404909495146222412854360707613501616999187543861609219389041645988254927785158288959745323909809714078625826951826527957721468214005840964887825639901482841817111505770050896161874491753424607340528021984835734337773644728513305367358062902627718572644885950343455081430228514935851849598367945952463911233393995745881342964198536791290540970672608040052451122261610916482225988738197576259140137210918691408503691252591965233818787119800625693074171996705067080795796234571021743255993089225466572414018751479832042085626680677285021863295418246869414345518995937407746860730050714574912907446897704804640234724229064815859175185836571875537095158247298880359800661483276446981266085937362064412487374666613578607687065542769880258700668080341618191700791135852719566864851100078085888823732121690762638171423202125384405087550142618488442966671805765297122895790900983810879511615549963139407898215238956067551007079305839923660635023081786101588679152531570888870803150833634325038132592472767711766419726459837960756267298529018091512079844494023574634934827204917795578846304243640575378361653760291360327198951055301641527410383737983197296017505557631689346234945540902062245654238189639569444434799799602088489974721359355204135704900942405559250001179995577703696325617781297870081059574478245213141682157558525045543450487242907334911007395216010628634186446985463883436570575937470778735152024738833377275617315226448484052669373087936589680715620932687799131998172430570867429113795501745174059265465721472425457931619226725988730607596364690341916376554841165177631286542274375294134499663145117993453162177313617622442494519625317624261188972571049802931920452416121736777662617285314365588364095182480631970549171784708884726784268595354886216180112049851467628171201967462783260317034547262250508985163828471672742365755975388837904651616191909742444380609886161665666359046679209008447882584807199375813882203236866086770594350727125484985844749188041033504258464555260341209982465290064512460911967248936419836342061956161972472351848187896544996963367382597254564185602191459848536296294216192829678544935040464684414938154478866723163051037926056204647558757523113753452581137983579689572200526836559455892227884220406643851988116209767719544193145728255437482185531158100406014864801206798808713278660505020317158272007972059461674909194710666792260242046275218342259756565555203238143085301018978751160736150066766822032363547609475426181405460631743987172569733522246221450352206159461634113631228801291499959602855627240279899399884149204106819347931597677428052423666847704192214316942005242899606741156811126174621226586002866001164491534180420037832927097460738134641365981472551380540112182427882854602196078452196836431610252737685856525705741994240793530987226821384662971949690619995780342987676666233707001073525446970461503289535336161649739081644542154181631501933135226914902418239189747826084473829180662879720814886116937488815992377344780778333123198684617642376734775814633050395067187820093117271109222265006075817463928227609986743191998267588842113741236509448323133708285102107252155437595149845567287885318704418232755531611157835973341527854141543846293508947220390676999527536736094029703552278267061619322059031336534678226273731960478268120351555915621809577012796007001578336422014799367685288480561180278974257891781398485852518718764197800064591117464896987497266476512163644697475655282069090345002932877807318635143756071877024889373278425939708850723619414158549622740892902245877570635596362985022819339600442322585438387227092049435657012910907426777908427005212597034401844831275458394028302042363574308315447134689370362910350580436622687019472517041017043542957479962353481290436044910308065747827289110214424412305302738986456130016859341211972886546518593842546584538789553196014664884704868839120665298656069937265607636338362468598595196143575565849622216026756265823745863650957850738228764992431642430387804249044239554196681737135683725195759575512762932228512446659099111682436839786586541332674319859791392506091058112216910848794332516015963872715959764833343469703223536491765187910128248710592815126190686102974717753854903032560338970315897852822792620923213474600244721558254331219629864584485831562460667470665384033955500358990106822638502718076662049927224774440278222982312505342789922211836658487559663294980425912049103588537527938328664959550867673531703757101427967896872221185340366069093812686453839967623518303556126810693092044864723894126777194968508549183125955495852444639133681053813644084271334857275495829670864430217674383934570957206489973036529283081635963696855216333337279525729873174399066533596988591598790937925786135650417886442142093344873204580029055137981174471922447483608173133018649070972201978174979775715257815121451630475938899784880892629814047981155484678256145524267898286558554678381620217962190061525557893808816276435041095370541311951580317163264217831928880439875521696047547139780062307800820395630206060690988474928052076317362287199140589836780034466939352282389991464269576880929936545151966144345790346599811367729477258950547741191131414164040333725844872116961882645143503976341375878882321368296046729027327489789445314843952218289174204083837360701853282317661626476534757962245902819209720735870761670540542587001116151306303084183351241181134817328166457151089840090200368185604012595408609236267500528736515848712764810647267383704930970634150708450625809884815492547714579371379482428409995156137352385796176654120863257633080067007987754357709417029039789785740611349149639752920758682038229906099486647426975049103911758432923794154823065827226774106233105526045653598219909049614103364573201550996617426580428213463859736061364283979202129018045980924135660766162141539778515060172953730124896691279642348276598749279819089129491289959724413795268487978911546517580290495116352540962867814581732964845529316084456656361418497539141980583081789658708485098561241708048238977907435233443065636571238597589136766279773361371749189640435113962523212296581384429208622325399326765394777433567861421351939584334365446172169428406461625771308274855329465896245301106845638472088199786585003186875698149400173264288802851582400107443159126150356845047507641424452317024112986431436016886749683626744155303925818564881827305588561188401562437139642423485810149170412789870414684079608245376883219052494896608248343745798285894513966798519235729372273704838600218485091693916318237171115274256086773718807162953489883592525332210944331444096049728744012442839899382251663258266567944434462314355371048944019652398611990803390539972897186165078514259414749474051247939651216578587643572059733221193098278777420682398287075902904644944791968928360810391993179580847584324166622529275065773398368262863657781887067950356813960054566341400776647247499754989385689969704766588791913886921360768931807111909033326872473221118534087799220959477944468191612350432717969045767198676920292713437656704889792845725113797367803820070762445837775421810998927496561568376345936561928567139184126324585888040558768253168492395740339635182552688337001772568760182548530472049297508997567220535369244463657736248175018790651659103662007001745439576448034666270921201131775035311644055365571129769280952004571656193691984613243426772680517136422708266929659559024673294772627584919670382671513968399370457115049340265878024182513853805618276163279762177213826854892325758301939834291857030854264939275963882654652183752572003576412371518319259783162294471499450767845572815999942842907664832636826801242111438268645837539572633263016347141103512682768960438463120249371867014245094168311748767181183799412688299553218586660904428344844355830057794887466215987049851068910258366220154392888807366301006495992906492295717917226119124367201823515706463368585315710336416790564702195219488456099032941100904737350179699643164636656402429789826023812565237443383905428858870993161020317336253324376433357944597788036259019374872267303694581134704960343500045957114728661365228448552641265078951862328564603320702089287785242128176885864334583194522718354388128933232605103378057600076109440276690431086425104825045706529597554657840224923718647186390917344346093065929588791300561213329664349919685211559234925838240535265944177699585048183287256196869479644899791750114934911260960904007623941165454792610951386137664392135276144115025453514488703022931662710634092377660606395551893445095799090152249298197084369642602301147172725903995968889797486996841496184897911257954298780614838990172410846986073815680093057056991749341970642931139585748160538949315376584130858226791504917351467940507815665207891673662945910137364152071014390467225400543578258314074978063339408442919533644513524588326100494520032032603934855222293988606210146139106398222327376358490223509424450023908560772176163921552242989233555245375742912795555238401009448713500548790114539502309397119851265153637716570724934968548491979173493323638570259601092738177784318660085590978602908152844263113481359915122306015135658797019891340750762569865755255207289498189272471902773407396632466253543251477876889733193873623100665496213367323799585625508985865852811141318702916236556033777490388891695413940854918132285448531249616224484331644010602309657771664684243586771651341100722137412184780447377791434949672871282422406102679125878033972429232328171204052770981249800898692435092495441606038239427847032538281375917982502380343509568343375134085839065349141858431933599848491592318411867642016743746700729444223171869563286892225774330990965773520120937607043446188395620541008410809896386342585755041798075968726786474235240995626744689194738712371187680185811421321056714032565333543233637543000137779694271458141318801537628945891936281726853272248171044797535879959529630832670548517265112867078303659391724660289550473766767207756418414267429987757742759470708256644781856600728597055873938613951256497254849320177451790059047216468179529875247649502622831914591932833478113419152268044542820994929629263025341859835239995687953918764601363198441996582741525454885405692490194577638600679101689550132860551917368221152062675043510409519939737555093532098290299619044073605176150336776712036980745885432400915863633067939793905374550064080226342497466946605413073423461179084930914799795989236759134751449104408440669795110774253452114955953641115191844607291612505943252274043139321034667202266090829934244331084981060066196741625505134587551522811775653981029315349995018914813641243077912079398594532506952313630070704385926919028861329337361760526817972969957300610449178047579471615790017283303775980416954550561567648563816379710211013472073281301605989147867485299421754113267216165607461908690137834045352607108753276940322093217240695118747404415428278108237561803009848122577987307955057688503997220682921869966837519003083224436102510433981114666573562367610127903810287972303630240427646819309474055775546571473867283352487327243997547590626418768626958556841627593210256281957075889191822760030527933072237701817248966498152801670275625676225094788329459100801348826004457978455966531282517238248329718434851028283176076587373163346170535445370803812538425118811503160585997892199453051522689756308098855014131019156531328932055320209943425155505531644056205186834934587925254628133677532341067685931359292837522917000796222909541673043784150331981649863652045319970142573009901943922611237442941263812015720864683474572052899005014418930229151110164258935746999177322463687140568334516358137198514968953256748211767600286318478806308644317578603614628108752614892210365720125866991198173714879776823341487188294348856667607218848707369051463464514596294852009109040379208296469570079858501664476339794135992980903715779982227864402378508993096467719564312244368585619110061456062392413320195133801434402690612432323006125380990269789007929944430364461073200288843281485337237581832303280707185409071218352166985275699713700982881388629672212385011036046394031337022072618579130658359287439202011898409197560961414715734266439589476750660562063945542643450256537658641917314000317847394589673008199894236449316037540613510996273854982495417269578030136464656669031168115566706364631029459293130571480800223800445183170398869602293035350240666932628063222483175475877620689165755706803704144488044065680974744835504996342987136391946237546537833558541880737983572289436808613797155659345173659354132302337005596815137312667026908238227782915178552704812824068893178181515948738597169144739632969646088189188430148437291726680249316838379472442478285150372467725311952492546524456698118489448654234852075007255576624967692330376042220796633187358725976144149925133157468289837620287023979555074870091149939412381637378523686121461031112349938374569066514732558143109683978895647227774980879109930534115430449715082892241592820594842661098038720918708604408231980155150772119862990914140283561674219744275972236820598106243681909361129215793286403840659792176344337612150569214386024743429694479065418718172343666932068225819440539946120266493423393381030885883338161970470794438317538213614422299543731198951500796880582469940465983655327005334559898872775420018246104177544914006962256997783744962676366953428389745911703644308676601197247204521652958092429062018134507643379201476294980667591082487641727840814569126374969558186025653789259761486999460709344508252432045132763942561102215805278090206154025031491145601434998578641265937121303211891977546813846733467177521286114228356125356597766565500520575676813633187815437147576723355589081567513507781670110685019313390185082753444010023280924045152122407929677477061381002030350488981238285140685324080737580308772984337161923397542100183605710870023694021528955601898704239763616565231257188350628837872831598635000024150902770833149654347824368730534700579188452370955857958149036045037134587198042024052622218222970874847770182272920071049961524218944731164533441317027002624986424637543359188687922017569768738528730484225662635430152082714732610820446316499969576421177658109420078667409430059823840321787116510398170018717613590872128779409221608017921639345074060278719048098027990471783485020346261617655371783733158215324152947173025350754023228007236600439350079108010402289682125580069146360690970301512503110568805680942269530478113685001699414883469748744924943558397279484259282038653224190183015969482403094174519424624020736970396820058869990474374334471472399834915965379085915398558739035315111609664903129358397844607834224176844092215099635030709139164589847713171716107357382691826968613963855963392501685148720617724261427510865404568351846835179963536992377736587529290114098635878082310099761266043742519620750546257493711784571764037027531751619253209760364314006825692792679861623220090091808143730658286879957316003663191535889791177261590645133888846996617185277534774679900349659561236269209218795971112166225377385617625962002589027323170177907850963816617583190196817193073534215610700617397762210407443044147523763431804607869988699160442789025292072051059955247764208111026247626905034761687546800725817369641256114569963267877100930050648696734203832434839945202916609867844214192655386144714332318622989524114491547603054413896658826598481762700251949284742749748719089448315956321996778481780453684146592828385247165386268932432285205187298578628153458033090549918859630346629593784399505986480497807569509204654994119098775172997781468110942453491490602829655721324843066406258421531755321528099815444337903961220557587671193659218264390624848456132264865559808751640445305347587111457178764703842075641406110946687841105423689358674705703608651335721377489253958732449387360273673843428865752049843783008867178630245071086012429895240084872012906983472678450325478373358959925738560074938295696039199007814570921437881788038091396615475343528533454813572813348595402352799503483032938515380124708883595023611233311427239932587840627094119830538839115833053392741271039838484555551648456352140407326886130894150471186665394918640098172187390947299983207165859575502153572748699473862756262166949560745183154017989265719037290441536896850143703206569267563237143924908532273648475819582103241995391694143938791020327591085833540609423981933224578126082899458146719578595718073715537434132254174370060361958753405475314921885293470592375379964288583987087762907203034263426330280080746602985651302539914919656576721418256305965255630830229175993302922612242347276134887704825881961280009371316132358486005094093603061029138914685877199387871180075283484467132418562904919973937117130361347632414170767991482993751601930579353702582300391514793744325243177987605516490878391044870687655907999195052833601651377661335987424903316716317730219571436851714289245055209612588515387153993765951815807698092982947983554438226282807361881282260401254790022762731223990146865518159016385043531849904962469149105150131268635491067296016205332730634231233878138522514170169632903638905011778653409795297357036259694030005059169209941500180624567328826242717194613581525262821910961413149256726211817094757443260273037542615453822515006028938488352310281201334366472780775300833745297419868459623476541487754274809373825084634803875892977754955035346324667412783360984707264466356695574702822996305871070403865971119516655617983703057477990134871820336083075313323294356733614345095690064163930362591309518977474659812253191603988225875421177037949498017121501350973215250252325823149076736985930698325763490775809490912762756445586081937184575933397117756952880114185729123622759987787062895733134702159032081227125836675730386595705854637967074190674936612574172798477980221288361425993467181848600844490619558824928256393847206602983550382431248232586808200235053404618931806189073915334069730808794498597771601904123253947482340474593047142807360404110761030439743943938162788770065650406819256014835005466660215977833008431402551034472432106546803789523613485346954874298953192441334953515700895266260034123767435956017498402128067402643181094222114360819568918347090838836113004406655553888236072213234975118401872811070460118446360103721646455335882975177231346458234084268834644574902340482729689171377332794436529865490676255507896753792209537512868779134391898809147341320366572139412496205906737121140472166737936777379061739442125355456804600541819059279657354282798287932159674682670346062188940295162659318392143396549523806858584140274993718559122445029543753457012285274870711109251630619006551776055857500044653358575890222851879888063643130291588674417383977389180733999791689647650941892617578182524423083659669020814591984040339358801435177471242597401965704053312364638296500677906057815775175282819717031086648630979713454215745185080953566054016411008238185921190773425613533778906083505345114291625601115941497764592529211158105775563693592296114995393494810177193536091922187915383036219199692698064199278423833255913933204701368878088610724843631646411923496823948669439502462047435102752824460580393824885447620177408622064723435521453672089119214616390209746109057477846307211635947635508517435243345538851317950207811895904454365854295632167939295015343727076387791324065836554249850641858583221028584410962839950322969865638632365727044705631057381509684792432270184066714864558710285360687920980523610198869615858412391816151982223199701901451930330444838024305389274433095211415211708535771365638776226455501740050226253039941164346644001605111068635244225822799063277303475849137950457982050866113371344593431168441138701786543970561381971480460009279232405462652675609453155431936312950193266502420172970220035010181126659283667794472208625497684267072358690844750821935374058364881681480470997086799186940366767553853118945249010113981593727589217764530064025469911245976031977683472304991819728167930167328369239912524619756394861747832792104480430393865479347534563587397558463572406985362875891264861776015307463341155053967270886081322806121171559433543100808870466970210010960011728995075745501788957291960450549880161146878739527243749834846554293062952275727090371361603579347497192909467909007949579427878583561287956136772551081692239866547014493687862658153963059786872104155032223836947364109203909923476306692253978361837838580004687478758462536806763130512347170699703441984343134976582380886017267683467166541020451598291338793577773781099411510399599084239650659887932881474428683064688251538487175330121296963382421776416654552230858063993379449526717665568215486439819467639919682188441197038474235442747892614654873848765024529754444809699466373073015823688826675367456422948384374374553554570897532269305463162493132859095954600602167768290868058348245377857940526741996156798709603506808789693285516515170528605002899887586418965095865899795756108992415355581255319704181155337475930939599861433603100718350033613568043473578087236129887048918043459789955779293682555367486992391394523830006984796573041787399221804611473265194291903475007579179013089532797544491501494075617932720097501871370699791915757086868524105307518686144525064858735314155144049390284817833305611816187610158344013451046348541958047474877844893988015832995967698363995138384692767086212561757050011180905875050172712810686013401426958585967974249812138406274265294608861877531913740821385755198252214937307675750041515889342401342433324195227141835641042323980816727604284446271004164312322091649478859796596935629738210051854836124443588268121809175788784078218723463621989231015249968159282847510636437074151878380762094966443050038767878323196713911181883341721023929905079048613010926107981294037152782198011783998687402013806297625167303404076624556642216028878777267854368833909903018170747990573890442375235145737422733832398694934175318201488154912858776780491620554726807961494444314135447519280384331961975962713655175422075206012965806282058783278652526803899274546108649618144061412329937642610016074756833861221385843590739841628238991018528131803020902883081414130288049113036899862068989159609696925131717644839446445288531223657148970171715178403272009702765643868389299643712815024686350577430908120467559090837608908335513688694547236704372083070601203431651799981931279419034863516050712579005632909533861595703945995026835368606756932492864367919230192254353127768744344851376687067379634715013320451282520876304009843700927433520715722191510082581681946853633429102918932022205570301689767080376643903920303533236751014557795478700519596111905753505304774196327170372746768681579728762450717071901969673079592962658777619592440494684840953461254563768409523292441259102722945700920656346265537711514816899674458025382470051866592431164121798358100801774257333335747560918738819235965164540941605085424518715591901288170888208797962306539186937523880337296010880016690670591944475195517806181814952182648691678926410938180963601418406120711742813166342458153491149556184875750174800287993154511864226753651440076766731833311541744335740268973846699429983249860323436165912252354827322714223369324302908969352828420799274573703470259002251716366704791820875403527440711903425300973770436853492995234598212982649498794665830984010315891257053724000378579350569916788193791065975095861762452507311956194373456505598836155944058749276996927149202266016562500079587876829535023538079731628419060882480304462899102080589028158248574058381953958059584283326302054355439407893180222923463424028298482614736316079365102767648815448080038942062141085122287753789917976729139274515096125103569475656629142965315049272303908693666939464393982779590017415484996932927952661807660511369677709182723921378292622328985007806339401075223347247430251754482739278589867669445291312797576086254767454367261494260003036070947731976445896382097106983898055206375296441942618092020014472611713251353622375667146482465635330520136302721655867631686366694841041919756770620629471115819060405396301642926853048533520008559729765287713314717316815246452577314777131611170475213038364991675243741742551527416382212946868823470046669715195037778392638689294582086138489042571893052101454141937426473575981004821856008291732668392389263851476930670141929860991431139225980695504303472773633300943360768277969746215135077521577764954816858598127393567604304633782492263796970235191539421347918934644977506403004161788464710099447182150326329491960285648681830782785850464681495186915615205122787070355478955697034343298500745489482884258978845632864239096873984604897512858693657118227515390329073923377967053541686167663968532046871603414024802052464048112950990963395354551667394199576682253378620249941657935176377892427692707653309306719689435335851414777651445744768763385100754132054959718887256715938369356717077077835544959127118674962344403783174654507366944033150758951255019715387494220923150083823101137327586689058642974212316130392546960918658626607761198461184922133189738085078370534636036354723014645764905907016352933864248304617118844640720768988978143417871521290590871029226290173879119437208003586142485101371798422165634148661234168314660311140222130872592730510165264407097727960172910989706860445747736499597586795857094633623589942499053134038341703274285518648173221413168388220841407172135759498850846984687927677232163111326487111763763647687950454532727582135417734261762969277841498219391016156900530980568293731957655249527221350539429093024263278998346268426643078697765067873787058271230774420174585921763364115011411702522712729938704879990206234885044914455982398006631127769076008118039870919816658290923618722451624251292567587076454086406714016821731353560263758830863679759444299313505438509242596872041677044076824775111442249784256304630355372959174464902459458427339282269902450716791694062457123923215504885478925942041357737798697180894332545177379001577946231271026889038679498730846347205053554508992282853634459018710981805412190415519793494640952617804625298684976045016340502898968042718971467532436313390497742022169151485096929402872863363332074785183338254311391114771190698834054657750660760953512503612830956357117655274611039401120433699175108367349218571875229977224125397718470793118006159645277773769153150480183235182987815251056920075976774427518094495954009757801174582385822985769116600301005380297656731456645891734202540867272352725306139084686319951319000891347216447393804028248723183760483029391300510321401529013061704733990296245156178494654911017783452500054941471203304608950813798943930017622211463982629531211735401924159706836649738789289104744504578794569891596292149371912374534345545837358864780796576380655256280525150391315454938246264964197398222784965334575777473889139009340775136601142360238050145588600248129800400271331356362761330835734167915262853613625877460572955604348660369109429062442964086358132692985082558559630679552228003527590459337452709518329500857176430319913820936789995445327218696215186319414489038802011274440238829889182047646300479462831640524331715229925250129211472178809666569344149917327931464478644033759073099744027120349733815868072300271748510502761792951308485172228626886635344204007820074278223055971451117497824308063528012340624483024087352112773926042771118840291383584276916890359623690827137885324037124701410212612310348324021166183929656970652798089935499198852325611493207917956270744875025420455602569060189204714076799772337172145458758006804694540173549895343217078171837478783717036017163610844159171513436568183937852899694145779436034502501687248217045911052412098296492577125831073607437063922339874511811149028693505951154044847666532975081330315169096839385883612871377066569472154177279612055807562116511801513850940973523550508434712355976435851909420867064690376198175206388214540458359169540798818317904529412425221945490644200226328031760722032014256244960270678722244705038314635752780743827689709289381199118522159040637639969771434909699062635161152581045934446678304798986651394242402261129628519819533381929077310690270684195140554263293418323218395232446194726740556850819054256792854485472766867102633861351569331831093008195269847273986928546399567554310946586465804604091119298425044426316565781224081858703834924748984470083615332073908107788606743341169218429032288427378142401380531681968616867039793414787782862117573855690612576851760950702469096237000483377697319552687266521149985832524194546684451728802403093496705550800268584897003536535521001680685014176101422420644096319568028519744743476745835311244936294171083122108200763989818906024334141826420126900049641937046411582506805703151749746595740102270422315868921728849003931238803280244020643175405937295339954429737683170972201707360593562021446881611437168873359455133718111643633308463817801932624829750031471398391389642204464555931841921082734973263518356223547190357456197505920493595998644365490724695935618526398741791091122870594527032507608259986940356380986086080645636218107277810293962192036721109770324695424165339582983143460760786137862866835007375428004377958558488709939113229263163068727516650132633508458228475083027827620510863206807878787582170644295672485689688069207041909427854776784761174843574163093037539462873797507006973787718316714229688405338271490287371045989725588839697552521374368682219603313707439755900165441556702814630262023579727216519762276293707078812838112724989689825480914111902201901009778281594746581056521836437848599870241852106901749712850198289210304813538889961054988963892817969407922335519080883065883542881178314349904248168678460977311197119891915605085631324382511289447205902183285532417177773127166043894862751944671431633238465145248025033120474866876343933459480848280931124251148761161209856678156754132809037449088954668490131082947869500248032337819167450408074657498624069735210523666354665029291031933662242055866504874087475357005459611422369566342683573998631995185561898600643532269973281413503093170654643460543053684435850565961998801491340861697640097553511337855093480534738997515241067374638917215147152302969680814477370127660171944002867391346642081352166388262892577262336083492927833232548181544535590547129857391848776822015727259827216704099985495687521531140638620024259240609927843555370732721471676351554760580660584104615705451999868557098645406332537874382556839872061893847219290645892763816451688978205191466406433732762344482982752122083477390066491344498105688451367856854724338147446505986744034747795361973763169156252789249385903264794680961098032686547345924005405516494342532670174883878237530176537569313108292886682169030388908476310830698500838274912223165708914140189215427621332019582148833406773004655653011930432849644777530382259853984472948739134665461282453113020297390855558715872007634493602130334412976977427280616067954743627533313368837641566113606255737166036319343731324949204461312221874870977858554158805867295036785620434383849863878731683677168826077262367717173219343973070771737001577626977608970844331779300828653382979437595953527655620806360518352223539215605081419666757259625561532940363554676142854844433089387770787149667023683821881836383408551071740555960931999103460051016851978542340631464589232497614374924124239458836438790468926993219370396432315642811838682966826181400893549788337612044283256051239341687822666810372063057793901568094751560428577462339037889172167172088610449468430284256311968687617537964642821782968764813331448919310631947299265380221644359407020640775055326263135149376768571036433593221335823065574251571312735565717975941072139237925277471333127618424898703978743697349846441653418480711717629560776140903005022308861307302695840957920093888209177027399632633587921138496407135583758384134943116016916548773445384728421076582617871254452672753240669862106769346251137252857537378038461447624443573563569098669102872217070750326436952811248559956174760665339111807850106756646191526111277141596255596305985391085554415917591695828550647434040558827858867510962897167675442112871389243290863701854329253611701706091574436428337988939049925006409597558301571872957992290376077446209206433426102508538018358870134713042571068243337521320108505293984435884339658202256016225232124699176366838587412193244798005674946444175822358558850404129830384276677379262029704208078435117051729681752429824497375395591704171307212010239697081243362025293409616419002914057683650274824146079229522003539807486812568434335422079657789109961283292722884155532285741229929453204691022899420764237777534933991653783273772283176816558602173570151656394863755737139875173663447981865244066898101341063246002858061760013782507242607977503221464756926353164943785815433553698296887584050431923411438120235956425179790667364212804474434931287343139943820911966689602566797225966625400146159841940564759205079920122372097210288605987024922723227198543648584571687516252830128751094297554096446665151875305201383380533909318439258656747338510226452111454347788138424957268447373929491939994034279013937864809146941897424871128016860615674906637394609009139356488049779576265995679412019114077803172898274415453184757384651335615572720423387430949576038640372712449061881333171387111028208039026484885192394659399779870526190647412253592312963040397225049634942132219602027899392886332666050488047557070777242315437422174740506162650967823418116993453493976468739296639584037761299563641661753631682798093281402781393427168816277724926673433754692800912355475979276621125586454801146525867470323369660054028538450269845445891652483203676096158956788966847030938767075498365976091499834422730109243428409003356123454875538321669401538678461058065638573481565596668718512780207614240612446001784494460102550278679628493971531404740119104588953372592173621188144272562426234646547721887200321580315405365795993392899439645598311422426899413063121175457262660230322135375169338819773406864116260841845593088657362076270194036724428753483335936376262591945909087447924648184218203693880554244873650166021387439100999996614425097043011623287659785002760191907417957614172027762582750587747339739757029973848660333400891676514113622850209185688216463921145327287162277811758996484609114804300278124890687621667098663580612827556898967970568913758074997533685520636457232425388717331266719143362133195038863259725341876352027240896314460582181284730365290171931999560243762401875493323632111932979582503315784704944084883238653250554218883733448881688459503126124702050083755787957250829373982914489125349860466632069239438938577926911216009658585740435703313099848514459925197133583781085478888905751494258090681562299324070024589879928189974523118227111151698272592410949678919352522702155487024624858575370462486961259317002431669139866345218147180348514029845774400271799924404512918653440552325999483481147100262731126354560664812515446691829197255643687301137528583081882706838915289853054324806809388241180721033928695796198135785592678700669014049276516753971491002528479226860626878552356955987107249259787961894664864255246160402545406119811373495945061941680979633503971990036849157160417897981997120960619256373478187698142738285283108260300071878175103395820529335732172589110903578584881252883774961353179083549858145972879468583879316295113598778115830653758578553806888790241604773036993159118897217219852794053292073362759261745534148948063721695501134069979740554009289483320928571322281812581902064820259979962994741612039972575948209852141283069709909466506566719477241512828991673886941376629909301546166449747641909747105666428593099241724324552948850944289637310618262688991766343684226751125594477925999411202488449719668393567923112182902097211723947687033594285706974602035600206635086991961165098385256143312639412690062442858991291586628195118293382664878772886133530510192848181670048592054578741074023596715448249819736423429355667832334500929082969847207711458035142030499889698289493342802081402279645104663719376450461477200052248821436145553304415833166394792524125617837305910644555301386902561082800980572408329240703262300315239564767587775839365055324957935005996955941175889151684247767713763073098045564792395089317351367066474711892421794133728536747571135965992744376194375112480293827254436465662185372612727801487454209136006491258915869831979663323418695097817725882802418672990203239200701505493402527540654662189545179669966639622150283164814055008510297846102315122998723336975325542312165614732250200370094998429715317681641240901482631414166560982003184976477247947866537532450698951204507552075525084817550731074207175096126819340515738589600222486702389526003124661834233932232062598869681905238179187428540256683253101663925708776848753527610452808565889572343718418324476429439158293759354207427859953772388514859572621689334864326976430487954193319641301912596253616825814745246604014500007265745164654032322713614394728814738896971730285478011109676514341789638184732948508297524659555647402203164178559785820952610430514145184613768278955300778487790856484636942178908993854570228044976474798109040500406803066576000755356396603344752211923835484311865637060823888540958333156973164228501722562146929415620389173803913260103150104960526237461712727387183070248015050333281339358427520433728532161016547224718132608603936740480217685760453264675083452430482688777667777254840926143862022960694327678640262257209472407219020809660811228583551549190582171024368303052405913194238999434858562977871616675241593427720568216340618416218850357555777545724580023644936985223751929317080823812148385401769600213865106385264161544026404543315880404588438284700789673008126669920592308297787315324207262481170725845715956591518632418846781731079302633050508219065931799657263242496521859474174142100182558151921289573064959492600440307551662091457992928188653181513492914485017829046159851763456044988169391595134393062665830338640966084490215762671340241725612486159395968831194724596181436026009604733804820538547436146099175304844230724740743744085617249162755600591091441296804248782239688274755842425047570707074381527816868173936284909648619408546235374098679193443011970781888301949916976944005344837531622074027049451932835037975645459642665550897023044667112879240011559912149444137517187152330662992612642991780818162619400461623618987796325739039268306938366129826704630578879746225482758455562618294845450488419845651874531327459444065438049033681245018067237377056875273773803155513310380692132269541714545303011038028370189393516593111857848863330542178727974536833211304371399334235573546599845800868974328152386696300581244569376381230661165386590881531720578266662705329693546015621549763350113943720718208877705086575788483310839002565713726972927038745238569811816518338036581286083054021559441370808394502620441989828730199199679102130401078618591678815566564525065248760617662548131375951728936639869782899822107172876775113166134420252506024012350064612540942492627088051139657319348300242324039010969369672368685142361750277932537331527748562799439185124372524530264854840102917058123494445552265403190359153926418729180990929375681147465556112557770487547419883129387341253509785666565160833566858113301216404873213851884445163415836384353946529929847564220320835795163546164349439985741545309351115378317912064293893147267874499450675103448796390563400357899885535367023644549619577457842610672060550930036241558688646651853936664679442237072497136837895697427657283911088581987996465057972934801411306752478543903626582016110588403194635741148775622935749501603884883382451508139428127267426122007458880368409265056926870378533288750762649507346410611630119886226651363689656675452003775578519463345380560511344002965932800776909418550766858178247326568875720543217302846425011282339741836112824241896089245814614258721933702580140280905982380439794976826333653537775531082186633008106977532173371995052942360209329371103451966856110402275005745532789964104773482514712480683723600386135327740517630822607878441382626556437732996334547175140960260541879503733538302477263419690557928710159975678702514793051956339546709755199307065101067226626121070186294672915885163485421667750581919300095830105693248326792272333582083993425601629244294059534208484891527699335898073398396826528398255095595509039647430301699756103738617244878231671118303978108083578271091567834819517727480084258546439636153970442090139753615929272256640912685049667731752968097185035895387339703876280930162452608631700986395870978023180011187230230186565992164348704559560228966096177661578208786498971474485737107008298492429298642636775490648595819168664656264980600376073622991526921534777053514324410435631153811883985354626357699903737424916823186468145245726743020794106993947676263299788485076497874113251477356885060118257007313969760810708185697521304642017178486181660926282238077133463982045648303277546964627824968551593750210652389232717804836606939952191230777496710771695495745118242231607051327478018422604271853072354359689758524191848289210777508380367967718515894686609249389498345329445032186641508609297401621749523542958331867340557842439733336794581734532995651824781369093718372379940179364591548213936411957640049070219394463869996177517652567741934259516398508973439712198581814425264101449415173173799860712461566665777234687174823600204954227895860731206525897376060325444868811293842388173872840111230537103411888544705642466069689043753103985070841637931666054615224775734067829851703512571045535340978340867902558265820761748830225041431978506711213392218419122204732830858338647266811263052035534074114709421759268299224925167839871439139592162692722604756484527813820590620624531511665270174061260187802272128021343255983030160072770842714961477451996984332378768475139767246858284685285579848127463960010113483228471693347903762329679841399288924371637240174265022120653506966545317935781376376485827511123832882873218731109255226620057565340587475076978762726018841817038614449110314973025810428569434222042231756285012330067757137211991477293315161318827176292440876757821639443774704530026790311854712762590535396300878215757302245609533246878745035677703674818112809188569510040296366345598218133670052443432382297071643044791348866875988932632795923196615436262258330686488497743929317614330354651618766308735834197984606231509696664546750578281197015171276160292260855398237239464019755042302405370944187930004857067836275008978804852290747248186084802617243007000982804252813635044568437801452785707578728835512810051019402835578480032894315960394925975720988901302816063681551960385941313365155791335314074837512611444415845573019783924967912369023217179780725851729452787425874523447136256148477028341655545179255268941205243364533305291028530220398752623173088705914382115415030901790916190543908966099025591799596541030238337892637777965732721974966690018404461337645416592491032487715957073837382484492536889317541261713354751642708808492504280848034957964379232788768113476903909158164809783998920818774668523190444363179402086159999126939408562632432997180160864954826236414876911362637445060770184497156992708475845964782142226665325279753591525087972191318211301802909192621427734519894562900246470798731260065060228159027093013238776797793005671130978148622059750916960876828799060253387922352413809748326242033980662200304312310424503040980577284251543128112978787089547102354036020590450760401965888965000828231765726499276836908796727429667642170148790493120088016792757517894108687139815093286424521026928426063361466458022989662331339795015635576013772824983597541528667211101577140395738289682230641409994376906759374554478270209693332413491608095141090560795253935311590618989709325336744397271438176896807114324671428169283070984610780827993048249815056229381416688792681975397565995309862665649405063685557448780012588264952764255276706471001248992172239239885051021712209094920800594858302557358636548717439282694054904926790932271534741391603536825964181747215520414267499431691828993898855435366505164164999328429819796294482526731114953022940168040959228241781001176827433615353675269527656519755517629856874663901939476104044078002267098756788769219040624416024754736687105490229248888755005621970085493900392561188586498460993158502157267692394296376233751905022514918222392001156200446363080404560769809388149554862351418828044796651956003687626394462535067191859048580275264220099537052833688355179700409481193522683218970284699941776643668987358000406506274101721447212306802679194374672803427640066025090764581947214887644918826230644987163255344225015792656549598533039350282376143669577840540687343488130113025662283036616159864106201601814708729706377215477443673657376520117121239562719845666584924635896256864728518024982697072711028333190474363581014177981747885531269132110814497472054677483769090658316811280211854263072638003360907586662721871512143712276482261440725190392023141717872617023874482511366359495566762112301924642593999037750028868024699755706129422213923893524437477676768093897331510554650825827453360819435318207432679903820511026082750893475833607130723501859939707005984891822052288523775049381772658012970825795319332606804043904852849690370781832389284635262751788446158143938148882580556467568227174796806108585699402229166250092369584131571486009615149018316532682903689920983250569423456301713684636735708755464467013634115059218274974509472030589530753808811031236696341548226059961873586379986106481021933169131346891950154630670592339754901867812813890928690498545667491858222306650718066731691363972885108638588360387222098250624583582195296134570026966985156028213962332507495684826134915841127405123672595741856461373341026206200759971262876947573138462851905961499018650253725870699302376253560137785729045383915934254166351456464604807143801874380376697448422503933343385756192925360452640188437020617544296925466684076088822230110904811631067868564531126934344101548435000361172334242224999857710835827412584034275166480258622175029258930090742533216952462010318131339408496106452363272550561958282374458679606770160529521569441624330971182444723990089492904839260025290286408076331521799869570487617192132895097725131898078782177093814074117371319363592218415120181090343329462705468815670511808149434797609915208256667235538091004432722048249293178121485939451999016117425194094201424867425907103808850470960994770793994860429414473435375881963358376871442162552521869137667793177533864580673509840026558773348342344581187047003771878267490174362810975316445280469674054945672733518573036042999853573682125016014097698506326435547092695494022750830798248355212282696701627583318985982278206030665735751590955385197186947899377913556500282072685613549013677076268195847598348380324342026198232450012542038523492969039619395539733312237166531327403180288614807591719330188452994406423374872817091584920625713270289666267875632425372418410739041460481495679498906608766572360356976473976642755299971008448021780978298101303068852780745737110585421611109763729511506193434071672403533575793318005557178415818319508857166621642030997860969443487183165491624034064352350865000175116969473902284803523921815565223778733795918232886369301334401248745170185612701433095068075506131170560106573142631286281283010488609687588420098075681822261640903592405008229654127600931282749415502711145035731517437459368435473306813279923699694594220362661615880049294490278887896864641701510376644747947560649113951464670911256145257035172790534555233093479312827368401830737843844330290362989548559737739922198778855480537429114854709235056818441490694907820840296245947121126898070724419917294230855102205012709797114729585082113644489349637290361649749343742864783955583896646365654196333825833033838076884929182281327696358332439629897364716674515997064149553368261272204627820392554779500293196700906289768870469909667652069620114677943185938459157776762050535269686592084334504118668513374043411769116316993622711836443329196822807566510897896967004070691313135984492112680724301031719230576335080640330594199744340586218730680647627096971123559835143152603830344540125301988032390088263950786525419305640311193597641939905423934286365994375113302691527097018885316690572928479706567251049096348121466164898858859460464689728383565846486962144736568778720193131283615556799925155955846344577227232022192627681690296862179045388313423962020305040194615190325924018756771467603094584999353567821219404917689911310268580017094346898244969041948795814536369070220483543058874979627455211794646822149441242296925784426215662035951673696900619401292456811774316687782126211777227188923083284912310064863973626599699181516197591622147167156264327711643184091742112297194395598702741811392312467957840446300602964643095851560290501499345438720995031297411378936846035438556640334425003334252933115310060847536303125014497055554233843959525911306684126158230066115791698786773835420496152149090135706750229425629610059782875215417313873965815225949255037462520502138832420267239189351435726317100803642939316626113242171632594669925933553643693957563244014947985312887855316813047582541766944335154742547339224803527925922088598379842314290192255286007566962075310321466993015783108328975476636370852455783720133065772171107134051927775679170892321300818483966628135902964325445287164229470092368976796813651920128826759995479181171517111318717195038401947402777038658930589262642228791530072802456103539186458022477607532228542007443028041113406459102347505942206866844418725392825262946320362051162916880710442430406843711515825751384096938344009717884669766375469174591242029315297913256549960419822033120716970263047333924250736781667726395027315340352659063567639309173021187238740237630264605087324792017423567114915845971116312195393645518295613761483050483277818515415265296099560747241957386150597309341090460253259878780630829502535243566805153888158591122093579474062811468551016119532158055828901048037200264106703183370341679641916557609212133835219578554882116988701402470062260387380110805840814448240314359547516695657897076539829029967232959628770995508258195628755625862529599165815556622926972793171841699579771588326265707118883751240368840571491936493742389246766778580635265785375924724012545856500853832484221228612105557191891606378698095154299505916718939922337998617039952727548028344425178007257699936255594327709633060125624121771156344459919835226986176906496446923317441312328407298822302881986316245973303555734997383535733407021105453724575970333382217822653143550881936295751605057649357835856553173858329073009579096201491467980225761669349716118578608375363853168570583315862511815436554230869599142403488334246389687297246934623320754318073843405562494415119176958348385814223889992996963134746821205166793620068958510504277615506535610589406680859963618575857387849131718157767265868964814615545498124849784977927550833953275534471593294236360390131375631642432983171351910439939734649339964025532375286617665610040369263954603377166583880943119351566281601109842397424906329564152945825560754537137985792833662722208302489920181671655089897372887410621202269313886060066505576434963375669040487139825196713127493504168733497866999438713584240711209078133490430109949589252921120269724926956790314621374242437374005000658615700620736336536105858904661557207598900776733443275482296736617849270982921917713408242116239789128353828475128604993335377049044077428535848674198055721868779742817786222569833393645020051147239353429139578304416615935797329205993888658258455401922873111230363327521544061084730954419727122925271608446540004548725143267851269901340668430744062822769389873593127507127327271512490993520534686832236024636085009593210459550106385801345881676001804135600016193323895797969791824684129352303847795949758317234916372181604864401873323189708044485176902667189517172000389864644772070763995271122955946154259879246367247840165640476931476621746332979958359747492337241925100445905559885427215286966502419452534647688846572011282315823581348580234934722984869897157609694184537948525043925476696736255166397127909841966664226186141876022048112570992535131986627873580750423271471957022415528322525214085439068899351110150347246834830956356050711260272338109321635121003472936831505348585067141524504500112440618973173490061835819798557122202094411129947357869478028214195886892604360770803097978664838302556821649774593404530079688920187422580358071277097102342050290104232028788341712357122888410027681906068160711015575167669648324647521372555317702163110949421128620913432641722084182521545306751336297229567326828707029272253530735152897433198079798885383931815097370544489800593121032149996339617226722027789422778389178957478959276207484285366979565764574591910263695983728832914775930241939438591526906070882267373876950115860944772046463731163009375895017822072190128762155214231412846924178421035339828202079079376212982444313594149015302334196705197325267165720193955114670822424548176657775513532131631592789080116880096932694738034837149147705561123839987853692548245966782281625741450575471651684117815884864736929660576321757621922254089081106381531079795127470077286040986004295868467358957004915082183041210944607643634873001286940831034526378866866241545577464198515007182793726079919643384517565103992645020832000370247816530441892717426341715036632345311009394996815827598067930240799672299607750111398334555121615848066642438813194405205577397973594452763846914615345778395706252688277599626433389965255586339297070828236789573798261643407735842008392229085155256214449595970964364113063649949766919134347134307196126348166307812270815800142693987517271539859983403901351381402054430872153630101521080010372309249770448032159704811914912967846013282084757023953796401396766987074210647156782675683157698882844366326629097509555036030234201483323223486215540748323887620060358061792618869866683648978701162919200705695720826256396186888322001475783375109060572548807765538774588460912424235750739417411480372422749019726474003987693163120713757340640374701299035622226065217384755690259122978875370976453984226605472608657153952841277633464929705939126042939168370264966429003786192706344802506164431237254249694196354541677132960265070482674507605645353898733552231146494313208538243889324514658900115448029990196475925528012327039642774579317649609603249748850067734816580746850733958622445985587031839745647172040808289818094381888837252968323801715221254188389684797177711706893788185980876616600295284417269439222695077199382629198679740801522788810903428745627800666717140663164107725360001360723683779999328604833742932120299422763164798820014444393564194098150110740422383732864416607903114989635304421329118406516352447174062470867717255891156231755797614713549525134900949058358490581547861081085198418575422471571210731439115204635562919862494832462724508829744681472981848285082135584136277995677644676058689695650398833585225226780940642450279316138488711810578037018684681173374201890135969833314345702407180020918979417369301924184273050442246358349018987447032437894450430953804224890375925465013582835854821235089987164278262041072442497811009265111645437616234247008993135059459562649118916565711513339398409616096338616291838453611174932577645969004890186325837890484370026034350632917641809715412629090917724334628310432567999352784125536426696055747936259628830083310580393481633102256341455706976259558274088566068336241157369234559434055184822521029270784432282678400963720884162818905402690988484858292987267204955981801939254375821977655569203952913503498147702644653580738902315324475439788095874584650200077783126609458508706399009585842338260580955803852862875498645319040145283364796062642707209908513593215107236118559307907936311794827680475801274704595012477959554390863352013832189645344814506535839989894173563109135019327261749529450214571740395565424434810086149462238290317062343348769080125740292375142110013495922914922984506887407610402567865268099142729909382541261055789351774067933468559819032456113594026145626067875606003261828900512518810068258173632780132378959861984616892572049250553788436037932034346453688652864610200769561909791889662656896948625587356764429269647725618773916223975345383318860015021435792956203550968917768678478355268218304102484522386681790170513439271957474485010723519606618434874097946310319283903876416506553705355872365233784455838148506000575468005228018343102522336085698906022341192551063762692712709253691255410172578621157092347801509033085705648709453195050566277460655396299121081229409209694665453268435756969326767049182146694753881037556908213149755401367588023808159296862332049011517931482914107849922277067996137567210887609675940675515424297014214782159135546569592432589120621026476057510469932016147981147716621098260791480292214942669316625545885725909379941189662595832653072759054519426865416123137653695857598885226843905902900625186967361763101504350989323641090749379609000539608910946783276168661050929456763781363729374854323613393060572776875183250585690896167167094303459118229273078664593956644146619142099741870531554835396178754731387012726828941503540530252040331817664040874123751226941064731843942897547984574876985145529261230235719290614151434020079579377899775803440548852213687713134510577709249009593518287041839423463585835259928055925864199668576976018051200808920259650416291088314976507179550583963777137897698396617295427068239224805953839740742874245250967309870150837889336652865185569535333638419864309127478387561854023692122067815671407793680810772473818295806781172939090512845978303058655353544826552304737863826528881387954760833491889080425319921734619094692720275352597105026127972076463869558292659856862651664910049533546669839821587898560614325610584818734438875979741854261609696035632622813343569847026340662451432476848862707178719462439865722888455557814196584302815003198491463690223874531120894063653625111421836724735184272964405700514785780876874150276613931032835482397023736207566113454695165129357655943016883390868168447448049738661239909486229280826204798145911093662486298554595552860841885569270687992388037467082751960990537263232519901211792334749064431141758295926066982030790365705659956968388577840580993062120245403360123176126142243358367363793774829897682975665396403587222453722427409055102382377011324363506403778792898116321182554824661939271496118293864098351389770998624176190110222564938827475613466303386571333045386245034612623896300499252348642591659432597143917796660588377720649044115690815367994409219548129832622723393796886827943846630789092561651255357537384738698741049832328028001798008007546286408584999733002877281611787936045607072520931653787564456328888428884238187037860723762417988346665016265711283965614185378889003168237457139189896016870603785014014138400261044615328337632034457947804732891881790570500557499493683557095922504379557360054399039339831357964951030853983325796910455338492588908067403403373026267719974545115549638696567732416120578400586972370314866401709195348392879967334449474931446764690248930785325404045437552235096659972231297397498566585414069535917332363085503178049880645736661338623587323545304850208582300421466717437559528282604187764356796157614914660770073278151440425138866938336823051493264653754052823154526588792147397793837508975729129375224274870346975850562101779186996987578011761554969641818134488289056224426328446997463677085631684936201506477263650895784543291229063345789611710929643546163766340491545117970005758165129540519613592967779310833401099441783508235751746086926156565763532150292331150062929719186358994247752907920578393390268817633778546959186404238774911874463595802018284230653501219211445493294292819584181819024937152443888978311444525974973242035279037619582249376475725552567137037375286760172567149929671582625532221914217078556746133879364075892392457790575786124187364964524291351982005422470586822438300234509135354743944579267658017281988911471854032427469244107095886842813845404281073436681375898312185488138081647525888129929070475860175995526378048806818005528757573145118026702602835332904751731775655181762203482051361728896189612109566680566150615325095136745785106756578203277219128211055014243861480795680285124859783496132176216694888588063803576097472500087384330585234594496904208459288569775878176928486186836973121697734604500216632851231066294818861260062380921313481355043150181625762643154035832620780835408119152463409263883557343828678128130887901581865390761339820998443207644174352772127824460741659127560519549411376410152644810881866555212995567362355387756670836932693521422102459798504089941490881875373780088435950223188686630219792325230372589162140540734700590095418639953989891372977259228691121605249805025203163536941719627350735054290035744570833222264917126661923015124161660171757787286776145095073880339064673884376544458243288821688918660371846096920255422226832685311724617288839072613238520134075794004870764054545406430061183436167719808639285398818175373374711746636338456554627910105950932912318618166258518463038469633232717457199221455706030718906802774365130495122184579704234440370211766068468518453120314655526818446369865938405609883498255611302384399911985051483601304199034081433169467007115164249518389305643253518810810308453695268730326779842143013151161557639867836836715272037580688254161672928674369984493081682172825903148474778081584596644196477220663642198862126312866217401780064886162402176083027375714163835795951565380249613643845893720177406114799936330830228480279324627466417110914147471089427521908979814898642045215913095420745917337326009242834722886071329612940564718196829806674960320254765819734432310274098337425270347296294020980834786649106977383089336645263123278738653345139487716337612333084326843521420233566193337216213830579486757377323834061626317885090602623120248036166608814977653170105848756852525871687928055157859556119996248087116621140539638762125741727726495858124590297984754819699974572839748083723614426882914895143242707948866357754686837583518593397269859411152698140910337659134791023575117737691893867128771694581552847876834556038183700607846072924397387972148539071889828539720541686255604847988784432666753416764746752125820313947801866542184114351519624815517784978548470214971196448175292549084614794908991725123919672904714691324299696421992115344051657120219184919083618214074460529013655720082013685577336547866183557610680629496250833020746507698608878255245350616077203839634238179603896787187126166249217173538960205055882711647970723206583248114628628941920685986070073411946153667302029454542111558379240479718075771458335294211870721829948818845501761417481380646772242975169481361142095911036911226187101444894941995018454650593189830487333370492959443570037077995883741637498995386342297720119703882365431295714039285038328032877200860969289298303858639508479689008159835244718043088567942673911310357450106708064184835351818935501665564552443924696276567871477223843589862128212150939607198717059649297254506492354182365479862731016328041321499803123204374077014616138841611333539959374558946604480263096343456016620789275368008228413754902627252980324981841244675373306566777945494991690771553798672655181366390356680723956141860624280535501229104973484443505695758429490024969417193537578032879784084834702363234964216089151995090344223306017533022418880208097996713972640661818611086814311959831482495361684556059303856290058109698316475163873077661809139033393297785724240199307103317053871179688602921070195364704951617401074905960800150053238680858784044633324504575178041720168338371210438038619407307630419529444443712954006042729208630637753976601773591263723128891916199853967926253456175893016949412020718621210744755114999977097915306751609594119230214077000775116877110215464880960463644033538184147657626019897292790960554665850974759991634990521833724743557951842190533790111519925457155473571116663889451204927032557360395446568111515765405441704916696122073390254576587010840000624645439843639033280740791899733754258930336814270003124545326838829276450139537444217503746707473821354219961826551330425128694425002294161488246557912276887738545549306508713953061811807736199011614365701853118216270317841663691318034260103244905194864362847275848817028292637258822579980144670573689404182125841935001753778384148704126282648898897143861896929021420278764529648485773197915950484724979398236000301502060555196998200824275921876285297340081163477657374814934885923124379074727447264011431377378674540128162270154186830918116805954558947485305181681845989745349405828899975729448688229238608720630365431409975320452121804401262710570417187617383472452748066456295305065226044125494576041032780220289617790068668774971198336926190472543083805543294056729193525238736156067933659294890741474075051646061537696127108257561160390370038662311591310273725179175682356903849522375006232853390138209524468255698719025104626795670545011390702349938605832725367723270043844900545554210065805990855029007813743589256984186646175338075080734383649515902766521203033828052950292525587435926510189819889071438385682834121593609700377775458904815707681031422259135108193181056953305495100982471638530155743971363491021839533499061336627564084274459972373939809267834392253500628785460659688677102445181974536913401825335428042286239793617311617090058337218826977959819728948935983755655495264624308598423630264965439986015039783410616900561881140564592568983668316089864993489991676516523724892250289930744931567448242211228073176896372114329368944524006875171743640258180619689540770259472989530794990415513561958565173044401161219627238934445524006193307916246920194849544600014871999968022182465430028535144128533346453869392726954926163286648411205469741983768405036588593929408601540360994817139143871797139747386899332097967094876761462806375330914835736339285872448397965214421719927444526906931385905647666944193220110089550008782850475242456245957093342826341783764089160603321234877873052772415387533050360451163279912455438247862457425218032357913979513067063017327199923624440184371179687239599719455177780582885043307892033204054987285184141388093054829202597891100586646720298960420339841965484740060577161842270243151095121405151210862225902159261598732359598912665555334005532448108243726072057569361008590988120769344252181535755165258611149746023554425054494396260200805966114614197845394600433751299818872488206676856598394249648517528149208841556317163720211357311405171133967132069150769405708506534731285532384696551271432866465008860462431817437255395546097086284980163582815816306159147654764464056515416921848041164731948435595124736659301991039528095056682890249504914419299632018242231753850184659263929033383232119528157376055619811708487632825045432026043182507219081345175872624462034956878943584571782050827957328237532965701823705048249931405499168611527739696643050096998863488682626575926473845205674116714658869376380513979581576542987276563179756915342068930426398899624554096376070676484242539062815797153811202322155244263173652486602570024940592191188218788373849880960795943336237125691046212810563520359528611084389627076112496144247616417876147254475666179958080210417458005173512073054593631128946674243045796211006660652911497891056240081843197323851669728764262073697867383590702079537032158585993622192843546457937523888240953332343764415357376105711241443260795596970357386540751882215497758709785532880118533167670839190582489347578726650362436089485869593223569879167841475140989474253144547883333861616837337081306446689986405823820936511077064582938260379232332476149756645464629464979383336152958211071947679938060376492354772846158511529101212312626093054997919960890733142627664017668826271258657894957303733283105877375475622844417582364952547957030339179997728360370145528084546471466881861338343171690495112348720330461277452909950753423897202900301358444037329619700259563813610950664080762265466695412822037317468446106055104251462213917213516731171857924590484822710868536662449753289999070692485053606739104227521949976789112175502418603321619929802754012226988834932967081175455239099413038932030362943083211159478036643257717893417069592822498382807971138008255730359016048650977393792021509871602990141489742468923977938859616314051649325994637735715779653649336693930454341099210850715738082408956732890474044566833699327209401935156737736041166618582780768743016679883129630210123075590745550092941008797628536462562237387188893408384569253261298299718990493187803663676197107189308884116542373418849710626282829191616009286876663909542592732032042118448040790198991000387772947560919361817841447355074450463337598338048681599548223131577794365838407149752213996404855797308950565716131331072700340483677491951715853268262637383625558858913029168406336800340627197553856594461395082655008854811877273647234137501176300391840097389014468043333362885483498545714826432355533682576888880680327081213645055755552717042846131107544253831299677393627809659650983818546138559362300040126538154620228370611647178415575677375009939376471780950682139070224815470896902120495430817896375143857159279854006650883170177420746366264230128996293568681995566792165662139436234869352542521222616882646800778772321281224596262629939433679021162592472683575430179385861366466409633550634489931645761762993902656634574736536561662393999786859389494688179858930851456429757027894167231899382094650887922296218502896073432666478500702360768773087324523495331878289698017970160745870157655082383306388256967305563641122860724869805983576618253106471204528340330259707762349568369864947443757232138938663333434625751086533351656371229499077049552454199349707662747501463046485710938299856340616500765520457699795323080571766678594010490471208596770970215199603848634285730552929357229643863620506987631633130608858811309833781336221650455341701672293902125902241101288423603012275779596110015631818348478730927547068140980179969404508712516366482882820989133744947221941360267700982153641923917828665942154349135140287069976695005453125591504691924345154580448397365959973343062669523604435311337345247222152017892706646471860890545455667616642984054763892409468695754129069887526889557167449420232466924158465334104048517475030684402925756782055627178217497733692328913210585491311800933514790044987189001648110430439138402465309698002531249324060202470142761619688766157388044816593825923547502690903697140894007600697570471994299668702749743919622229009211982095270861152664678754902175294463948681946529435334833192269426710349096060244516513767328376473884866537649302826703877188833464874661173042465175869801186844698822436340685221400911434125592419538688068848869723447247255640792575285215210245498609158277243881329653098092378770390031482629215998176467762909850639447429410195579996139241016147596844484606400888185954904029774860764194808594007220716460156722182371486051263982143670313422135235985122379637015035783879780502095709032880528465383850071194799131214204681245079256027889241859613788303915193874017385140861358965652562095409974416341596199496787873971307831402286957165291106869533533620594598212658756307860595253340587757124240608315448540935502083009572392691330186968878408334455112514067581944229132624931269045894605412278583350832968462410671186217666899058631613778387791457880856636933795211506861451906930598419321212137304132969983534791133874216641892833870039899089816575660633553129542697518291725323150810132128947953075036017805342192554519325441183770553355032984446967462292942743560269760494972536608280257419899427903804820505581550548959878677850694220978227827159679985248213584446716867304359444309096130984385902799377865151180650128133459429574993047334107421544639571799489314994639302658253018256231337396661504328197568353869914293830251088716735486629673574091493102973886286715608940963157691128893973351966675016193034864412423388361810022872194256738001171589448779920374703592828642530350089573663808728024634144902658537143403050948989683932064413498426221585954983948822445904518981650375706145172948762240543291947051049930188199864803025212555878227674519843861422598891058783780693996912389479041314107028620239105593644279974939071571144165117899564942492560383596485941147360028036933376850963865663399498330946973751211252724186189131875351274669821430502037742472955832764731599281399010453273287002860893163488697006706207839730417363349658735564130822422565333844196050120731318829894278885667616486314051906971037109672080546029926580244340617902834201301000375162016408122319539504357177684750206705940526085545176766917787119267801769568321899643830721710696509702913072916192495591955451289128890106327678310387578517189502062012638618312463217454985048790430300560418928552942947748378227760466478121341130702375589848138254788559425933367437970315797287960321577331128450146750045650726196368658652310884528870971972187910476328846604397030789400700479251630461574905414054301114366284305685354175523804797337721251838067071213621073012973030247718200038459656780257569715968699056472582284630379998453406265937156583177792190607896292517055773911002440772568157650595487797429549528121680415980883871393500658181936253696443565808485070065537241154354143386327366998818519016184027144652853057368879610081095049772669865268009712248338849267648255213961396564032822683372158567193989886897251515596032731052073693446130528043326187722446636375474918780822111571793539710318607260944049544876922626764735514294197038696941928978601214360411552584365797296469767340877493970812100980395954138367988697953252882472721915330331499947393490420953660077676729460302979028782263264606815603722907825978017382299478975379351795847105445692234668728706679901006664496561331357898057862747482867672385405560819230992728612701631312492520108462413258195062976087393556621835411700061651876403707214559514347246529184772710333032153983956719551794649682072156899647632551975475632178901544469593793464973532790797221027576586519687701166013333691935108537293752380209959591457613005959835239760837392598349244940313401477112288753887955904621244073112941726384761497540437553268331094739776964055289615508738631336866083416494565214510184909975773679684155035386967515693821429981041492215016575504907508092624188619250078157794266284224627388599526872795946596302019326429640510070940559859049625733591438639028047972612572792255285681444798319676953313528666964841785899887077262082624873791187848199650398165172424578915775351763774972352405772763213425228273471243969779859834564645614106770548539169614281309795329814732568883699738014319731289828713775387168496727259738502985020679632760348551257079487233217464573070824394973699794993831158700736387721240240316384183530200102520082310385599520191071936465363626900555623858651938103920270892675985162536349798267549494638726521172308184725198710468194971108730623981872293450762016670491094615035921049382368538664297545456284760814697018578518615741844178715065925892841669397233660291528343070867925811259578242835085328254758002441042473971071514798227655848174970232529117759733916511663004743047286076434251897446553993654507929815037194267957189196087701168269440678380997687203171049358887833771610216009484452159896026785877562556537539540507613803662898802970852712296277109250716580864632653595454114615503935656509082979963310157159345915194784636490158256886195844571453147675178074071473177608133015020600098428711985375759037450873521271363145288436277223730924190987745894059483474853518952096510539685589891565684960210918534263003694629341155980735609083434237947697115890183129453119291286618493011389186314522687685661679769014670003165751109247604568188889090972084501905988956819202199139373891386656520961305047560238158623500883136443548275566078699720735692120997938355402106754388734030359332386115451722974217446898507910837773396209389849635245124163606794067407041833366810290425954373608561105318835722725111856393080416092263738998528870613452874415920073018251318268765862938709770872466533477964353024757630778214617329133595467544845733710930150273747939254143656564530742420295531204188774109658836389381174196367849754708864832946218737560535456443244823088539612762519061687591983060727270993162788504494891628769355288251805309426095272508370264338498194546629040188683746662204992861378827320938200122502890516391160672462652677651570212675485019061150733400560545367551658087832886665619035256766286668906229815138945962899749965147380620414792063850141356571080741324758508222069666416166736454526360707660115079911486904845518333373546847217235636129412065008415167865958205943072708077345227243829565837292874681577732840218134712319376694513379653722846911813320294576965048940451189302888823955234441549899483876621731153715857067656482607718395506575260023406988331806612084832572135969686426152467870002926954307954426121776000343069975491780831326234854666722103629638921101977642569477403752311128625717469644537551832564601857068675341977039936448084193428948616354552687750481949280588429308253727530172160431727496192999815507499533182736487315341923320513062912528522377808755262932820829762194703486739181785353337097195717879871192717757997196516207736119178883913793284544338040103319628089465579876108019298281606529172936857858711298012936341802202026542253010738998967101656068288869032653064051919813315902783559255667326281145520953560897870360762935287006413867000779716607712423709705263679076497376589649007549941928161545248967364175411579716405912943155170639383502076274997324651577615360353448945194131524488933670466078590898284365066384597226567208704530871322372362642515209665871879982900545223963422370895744618054531202352591405338107376462371922787515714812596906751419498996737617796185210150141516581557144286810508390863309110527628870445479658434711520801215970228469575058589083382200393499620141064067948742399573845097184385674987575932570907811963638128189099210742892396450979533634815964815655363011057846671767778450440087283529418463304566173610102344831006939190621569755666409528179038209939503400983930585233405872024421372264811739993772244757872769870629229130003624079903260999916522334918203870942804812573590768222108385920909242562159091546912249748306066735109294909649867877705057196005539732557546636364332429953438175909117909912188000110492284858857159032987720715086250045138486120158154093865690059038985785873448045064498932015524326491045105621128069041795019314944808711651967014940426125516625068610769693268365305670800821304267422227969847670895601718830614917685372845972436761474763041494734309839157696843313670723711121252701296847684213275230552108123114472338495853061883554444165748440929870038736436718460514858403108976292563728134949968802917753240328872241559763454041033086149630541611257030034660981277657516372795903396470594136421870715584024555462382042078745198790321158521339404838716711349184561710188900429433437705570832671303115809795457361409904162966004313496249552952224184249834791146028996046984219481771096136689692238537858676361973738434599781370380580615944899297901976590873260550357255336188158758131991416965913610139344465850947724516398435810713299937449933977589697612650335500865654561843109751946739695836391284383158142946508623974591099019132528866877963255136120804069666920285634035297989198864318073889899016029051648464087390536132727364396092020947242596653267875227801623959826894097072119828130295620011550028453213818850727022298663300375598146447245970714234663138428611016057348460298335841134989180351136212993003581218342991931537237567952439533204948228718402107409829479171546974464871592874639252609583344406341921582139908598369064983919199142587664032031775319303025385693494430792171915437462648242854309077925274551725548968191049753156433608877033499572484026829964745541343293008374719124741791494022410855031276658890956137456254974607208151149545478644395381251907050409384847937250459656744109144840289130286191694459680579737530202179626241296382556889431488909297030342797648430562908566905347278965050746660119542777945077638968683548375249650758526608815465058224663200960283585040364473597944515057217964370304301710761176351417947019516213809262239491939873844559977059500177453127352004484618808265602886330324215424525353691517852779816530106922193855987070005958056627700624187351402132319333280218643138543798589833450632795865793832193766405886530552782788599143092363578128949182479371194121263395779112254263297785682818523307053528971986323490415158180684450760224015736263204360591918544458498270138734321205901894512427813614563739216805782069001871920766703879221972889490539173186047191978346069587762518672123697802172399325146001585882704780987190167376483512207949415573379769922074548512358252123438259231810654640545528471869105832219090417875620379100484275386366538450034648805917394148985277403483228933092013839825000165220862130959675591180908406730654708410037167287590860669751079567816595942861042865109288932094804583007246478932698802550062676221845439996113217061384266834730322699522464358835945331049234171506055355627865823449814574397360540627559199005005437100250959217058845227258536357041726402774044394292196715100220189707609014164705665522386408770854411131037280504438555762828651467405985942274135688877006452425363380509055265289923095698797058318817431626931627356599509747194262442980379648803560410758621513415165160732952228563375000896757906538511013166481340992179762175954757512409848876975191542159970946062140106470592688337535896467782075714429879079173110826855739290315525795887232431970315875611232450783799872073578568111137358984515163490685269422851793377364576114702176354254422828408910580402569678816600615566487419672350896584816176072967858285606462474331895377976359522385575434980332615967795211406664809935315827687086539898374256425430296115443376477627793939699107079175878738379386278233236854370881247584075395757027812982761011372844332680190286225433332108041728596678277402681219246217633691658633647924433868678768042866345669668795927383175979760997395108488801186818159532075869204074459773214119500894224419961050078172554255942651358845415919215099878992686036148872733844094442102685278603608945984591733976148367170623867081022169988522061021839172278380760497333115067415792035221421282985684084628743850699100045739784777327849458648166793275151620460447916051021702242451818038744115877002091670509956093332357063566111795600570529718173659482355123891359165844119683717416788225798468723594375715230270947954888081684883971590112831168206928559926392637300337332686884487192275099497694853486124267164954947125240834544383272163331014989637079472318417160927752185978896752602181817398915752359924288650668630800655255538252202708086687465990834285937230305076457487034685933249626055045525769624877717624772894293591351105849049091433298987948539518314649481158059872178397474820959583657203103334324771887698364471429593623241513497334096258826752798212715960167695127624100147616471208069150047984003025012778763572023900880243329699806386991220191998812316024049572768084608795844318101134175705445861158037863026882815290824714172293153004206524169188081815961056438666459994385990652326861856861525329696793543713140731385028626267141491091709078318784347860389311298768647373318637514393095359765285128308813076247616368722200718245956182797244253256710766433524952319393470845295927615415865458682243541729687035326272521297655690063976996679688356982312961834118859775990226824475485313301387549292146876215782304553344202283067542894464789044125482706965505493037194725826460728005946145943960342737030292534297698272276950160727698708914108601607717246381342748185587075645375617560730643895349572888373086087739619702669235946213775025969282600300788411413659961991966021845526534099138648851835563698178716745946186574446589792142427401558757258103218947849175853073192844479025505554155524385035175010805889668985311938897300249248584099906199158715076426981234420800004917376884868117009210680305118625386840705398643311345469542230609706667670023632821104057871146385637142572562510896397826024654084889686637892538947830559027123192031282065634925690921996149024968374787778166740480007341917002307384472929035101635108993425203241061600775358184878385233894507403415216613085273881405249620109318391350941721804957758044892341036141957443790753205542231001445613784906910610355524922311382219204294065190752454591334445181350099869226441191514436995474109489838080127721518147228191702809006647822826912372675783281695511399450140503904372634466087657583426370376939091449651821979452360231467887965022923014605217284629799132977890287974263421327440373383334833225803828217981279346926828624584207799328318389059512279307237656942665282220986601236970010097512410644193521942352609332907478810600961597577798214146161842119182161127557023511798908832678129279684802039667646330283913668587967700037052455845045133628056935171196037250375187503425489838918071558847601252586987719554472817614718847539317143227128632023485613201175096947486622243130520320658383525071824610273101513423631162981043902374665133582560892233183826356657198333446158775394996975197407023702850515939314095361995807283108710543376823204729591959648555135715795059159756283750375985550683568768058191989192255009063814974457285929189980461112585219114153022382629631138969258401435472915467813309020533718265228605527970590072192258063934870592069657172235463336459074385297774780834438678067203719432041723198347163995479973737990468053841552523267910948027129142341053010434278649367146424879473011903516196952932908847879268772157459600464290638927940719840273345248834712608580450616527368623672006496997810781911405047355300981665990882673690759207978213131846583325572556777070197739965756693801387170913955238709189716473008348174843224451419139091089941342754134838898989195014146628170756108377350936510753913193104519863563146396853524279989544518930607557585436941621516250013042253371595274656113267994434946253004914477156071042007614541167530606364756560939196656672929899112676132617251184568499281709182937130872263222808786837553075325296283057552317058572007962613324472946764253674503956410399604660424053025235681977182275143855268319603215511551543345408053205172151094679564485237870363924866248455104068129185667963270998383889530117685177622491697888639897391504432679391623225485503440082745599788349325252210608413735405837261502960794315965168567918744613344432987697313545695336406378744143170365955543057324989329937958264481165894365820078716366713328527202814522118989375422704912587124266830755556791454489275391558513378809029602886501210408132452843307397567557355169333956939991321884550951379708002529900508501615524953570235252926926244438750618314832710895938753885295644923706149480510200624130580363994354299205660363010826133616106926608935167084741025805618442810575378066828954453769300143499429342500225263676638384435012161778023257551496302582498446309713301497094019996163367356305717067011377090791229470443513908059249813747894565447739495704198530307716311979045900038646388470994334565673792006165935748423009455351195181075862613875199508952638288519992491646132082460122460767461497621191095705849139527353219976491871288251392211692844514074132533523582998736896726516183773543587374369460939826931328984657375582421096995527858133741354385131205890284787261080390376869096992987172561528618812423447349605576382055513825971614732355708563438899682298716475520737693165523281113257342043411156080913096561463331756501480944043778217368772544709611216215688636724694661255202587097811684203264972954587671026830040365060507363919461937850769278507580115667536546273957829842738089664440066783697750561699660266708948355313824784972546201281070754837044790871075236641680578131181345985052578922409198019070054426426116174952526089716981307668953795867752606288836720503421957626532198200414573360560035718607445452057433748263897142909985786932826036799968816951191069604347210354733715317308320047905303928985503449322411628560554286769873221612146518412973469695314240331848979306452717807217724718657137935797379574399298132024224003772398290149035596727025804513162961925396749687225856308780158367565771825737093567562242410568905788824888797953367175162617210770851994211887973953350782085251794063355623391873461938698942946545201847900143156909967008796617560903565181324922547122592826335490460703109423707650279446934970308640375718435786378450360246940002720366341241529779337182960162361600888515118146671419577653902568952486994696715605812814886760226278557780015778490444801651532423166862358106049980533224300622253304270070006621711770267427072366333851156212762875948879054755043461929650831803441320672377552066570358128650059907410921573830960750098822160231389551803440108884458071285126304949973357364236740062000858191580697749473925772271250829317027217392626226672319084814820157500335180042349534571767684493653000895595406401913491481085758801725843224582055447559936615482358578398434082782670357383515333251541302247378800457948493362116004225276667771321303376211001540844289120238073611717985967144216705671999155429255311818374649443911969575247190636355289148881224627996050579149477782942078160240878465544441614841056933486460653669489508010201380081367203265104699212345047325774854783645187187086947235216106975231683407449328680004724037297988123367707864697891801422967687085036887053235811627150648057223426678729141808753626927552462700711899976760836476476927608906953724683247827599288728058885153981519593201260988318325650057870885639538850332432832961136703011991506327547679963433170073878267446656734913735176246252894078077703992632573022602326901146678668948131456743335457594274132499988764274026410108998299662626309954651432182798930157161454329321805099598142513653416735358288044763292134618907795808745464446883378487123894774338520995298247918355765455854776126501432662504267404465378753549203126856646596000145755558888497929546063183615935317770246550387019363070094991958657743948278350321528897068358100518519040928840473096788026183930002694371222697770172967460907298906927900588595418546622271862523166713108075001151061918861784956025044822747208596762790074303635176817946668095620654707893089558678633354891318419373240826386831880235124203862190964994168141218726165639537893311917465933898453782865646865864328614870906845110272954892211406461335680380542552451800089741956544410513437440163978723033236347982742843923211214253445450210775199452218018882440188693185066937635854183996090434464585242456374790089366572932160190426448477550729909606458278600694812012540039366732336806180575856910446385516581948199994283265213910632242788887093281630823958052954616999287903249440591567231626302027104626167204245683816040928656096410470087487961007811718336013322334857584259613673041220450596172780760255152485016564112895823262804797347997562096662404137640593345880635079109407343175719118521364417250245509846816395654696859251878688828640333214994861982500609403179912250373528194117943668409458680202571420139735540932126503345024354344703359083379671058586350874729221700596387731212844223144851584299187055037626281974694558295195486472748499227075410636999676528668431514973204398133927653197633368302245501609983899619808377284849312153327374541939113385797110560550393365887637288707234975905361633865698343633310868376693880318347535492936530504821458921094094673421259684839139621534278415539958851140332826997660670233329947251350311545415179813625332294635580068518982737803459701417139844871011038089494402933954169236830918537506285643289729670738103402940429455727681854334064083176978990598443762174672826863303414093090437175083607344898995921931474654267260448668175356725399599339011758904116054632714972297102964488391697254376936181143961325665646977381674921331525385507660149922484204277877984399427865932405433638702237093991754415803875955657988986578449860380646834644468416033511489828270652948989185014636744000838968483617544165298941791449637890467285072789254883064250882580942224799537429099006612764198146640342483487070741024887344933811566792491950709508858153133889912796051732383878774777401382249984707832476972887540571481278782602337421188519986617122880967621301125338169805425401244058279841222159124688914291404421071620748546918334486875328238446376094551017574076914730656332885251349768308606213825946928505860039269821682003770064368839085033604172176985431852142374579715704321236757870231286364824788137012982647068599593981911084527847642248352019188744031209989915696738467513731881967526569399278707193160642866397467701970169695654002382582233267012442649082590610432779657689602446120435808605113941088524022454972064010085358105098589006716900936033842156836353309244447227585562565435072396389711661084122581164370092113760548466510156032334297145121908228520097458203264264069165968056561114063460811088979687623931970928258384677948982663879725016035261754560826168438080077880842825906611309836641411141082420378215026801659326047173254711500320624072791811945634479124318831013821381994525357978921015401698481085988631546365022601004799439598059003466734341744641032894384193231488977788839598231024805631878263900095208228323468326719065329378343246869550269911169289825255951979500105539465049877342600070975377005712537571938537134487773452843643451868301303974027676661247419354875376147012287363958891400981469839422681463777484929826521320201596831963250005819330212837489565002291346800456833061900524050210227186870623376675657910195031866802897323093460598207705140363020737734893020012235993600420994578848143692386702350174694780781130037738915245538534914151932250605568171089549031290984380237875377516949370201961055184523142557809160813225742735095442141273500826492832578791922837917028521363379654822852129555024341106735096418333762820674170109656584765928254094989725553387840179620811948880730054278835915587381402106658319939356464114493114120746119040869178268768114780179485479356832433432992252111120550001613931620351270889350615390689727743058480715163102264775083735875529567203456882334724233292427254145992262880637120327971161355338691323602286858683377093356125573533889195139032680247257066666918911924953347643955095616058164069368502257702453547177767145695988093393941597202821913874193580836608448157222249843667348965496306941025823835048324489198314497640456338315212067591356188970606338949783719052219912467887231606248179125814100164868041637444316567014872524559364869735866934952831948084833641591594303255330141505785516686877035946684653342935800444087599706896914287814115646444323964382322939427596710168600141836194278157664412714381465895289746122162751978663216792260089029400791973141769533374104270792228491324118557300289676521749183713849330540646554534564073256761963558253587479756335719449714912623085936243103059767996978882669423229210113697762891918419153161585296429748701044261803445409329595439172122019942430042473677365358108624929349452115347766714997079059174861221884397043710654317642067445116881210893319792640394651942749823963319823379539687291093455290658742713139461725269532612962283952279081290515509182915068448140293165912685822246903573329619105792587666105247098832892242132595345903762446766240695648271572765472509218956999794142348185739904209939133866580195604145238624054390895133276201873653971710534364841018106760086442808144627393768207225278144904780122726977562919977847327922514912120195137205427759872824240601421843303438745301938267059840404236134831663807201313527106756736614923380119448059077886085268104474116142646328039712221994180624009901687824758772451656096167065412020777581922454323113851694046113829581797676402111234514868025646930736557049291533930395353005389963930202523642026660086081739280726826705091692383584925758139523801231957663408680716956348910992813337011703599773066967781044815758342604951343964248226609030902507606398902946338624456234009487465840151277450154005772596072499977717186905768824257572266366458647489950111485384407631223345301065782266183675546213843786191495778889504486377229540266116814765267806449117690401657594684116964479995162915689593009886170355925859050941024422690283903316900118924883645862914827879050715166559898380727023699679217168111070884921821103182696028334545122138074621765515968425895574342512413389267737555408405523088993758206835785429378434306142852597005643598653677327933430450232364921424951405023138332717464692511096597510629845306372022003816252469689069241462120201659192082631877990259376336052623975971412502842024238262719969190486730583050137554192793538819586254859812323759446171780841226779358531049129539830455597539829416548322699717641717833131127785372123555217006586849048242509077457862852319787220044818198942820929683120564772421866822272667514571779758626389536343029778660088464922464321838815552201449345748822973650942485104574019311547066015870490870254188163178129387255815174360551818658059595693857244803250596210980775574568385329180295380546583402127714757610043731909372694508346797553326404144772732093465749812005989651509319187317259802127014381709526445765827725794766708923505363895421943518961698008354571967555937161226041891471608113477886567857191009231547502991037926438576791245131712726578714224638626431837344974280952197516185034633740645871897432138147378156585282682729053015900517787098886937233214422116761970808152859652255993792271591759695100425903246613971418416377786402633035995140283733652607624378563967636602891199350942760324536618101322640633147097324194956548071014576305543817187185750583129146929169096435055020398053182475016862060463893872075379959648447519290027067581773341845171873549824651962885300307802182963276983478901867323829949882004540172201776884332725662829656534154238936840585011760044901617349682820299111712041954384614458147423740427270748975735944050870287182386916082281473586119037351814990364149747937248477013557968471442384832350768300795850791377959455080778053029842833142527966107809884485428732018109836855419119782026405738406356379285676381565864006776620364647141718924104135120745419391683002808404721878905399763477228621058263107029945930981808018087027546452910209800059199672090680135458960377012289393805412067388999460331803626166141318342264003168586107351432739703641657689447331121667146526663031240063127167289030691548596292245528956760125095736854986398074998140394892674092218958202160461976348674293563148035401212972616080941208365994934573486257790612279533576946266180730454195946264495649361255890240539402650714471912470063905926829066742685589158078872283367597542667686627514728493460337251955821915392828745478704345918408226145524034024145408235205624306303424239636774164117422824200270296094887931477907090317376699695349349487975377483658208961755030389168811730987302382585701243641286939541582829959296030545891570161000831606596426744951806308128664595192417867774807449558693334665255580009648872468391252926547768058657929660109789439202279098680529411450210170740523804336809600760915245854801604022733689546256202120738647782856138484298073938096246537041106736001782271379875312022987196332963278181185698296331613085946272724886863828890394475943685580037437845242290247798999946305099673381850126781243280803520628371201844974161573365907509545026581971675169231166179010647033854488005044505695721827177532305652829114712691362099518212083125068570990568471001312118659190981222103070260873222800368495704472032037909456610754016801753211221034493547683489906374126470783621244436300388401188108564767821131587463183648273808461335789636240076925434037921496596968830968016454564740172693554150923043468491663978197712187850471098921142435645838932463964793791445005522011439752963396801638161210922127212515083255016381977351096783446809969683618711992066783521945596014715892114015003383155416051445242785689981324336921506777217145237391762530261778713910641569257683257732171410630770019616639958522934248503501694469055952890813195203552407087249197502144237055812405502260377667299001414414869174035691986873727110885746265306539259179479303200126859294667526479997834495962007050162657462188146692700744752163870732042562029692428692330234975378315946112918631824890393608463587136067429705387144470029459333398593390135838177792767613680101904191427116355679902987258986257398017023922279646945830258405660608730892124107772158449985618687594589341526889493553986417309775096922382473338793072819160152081530127570265370676361899913701537362744914382602926997448852618290720916326670116328226745317052069335379465554939401212866975006585069862549501487916628604422664666991310649393606751959792652443232384719483177592150587628913851598206525971532122136876547777038761091199457919656805333611339243250729229264869759905915762605109887796317638020954984705799665445818122109309452222126390716508655167266427917247431642621170561485470729133900258788040587459023965287564821843755212703533573552186064438573984678533124287319516051364584869964534383554561362267825290317328835983050961829909918680074716899073457186036490156202956393054584730763206644261990294248070116465088231237715449408524872700555680055757616459637294183856103116962347742704855304004829482679050794471021882799624110559239789421890278287055199251888583774601958651485645135497324254894955661617820616744486303115774273211469760673423462625610186637643717318398159891797678181952965167081005548073460452565588802488839950444408859162523971861779874308938399666535743218103058485895269730857147982301777066367020940087807035444382147155252385542914419980647940530019273106170930667309561058064586232654751268529541294135784023109921912385600556760812149759991941714972877573918667315047553352023392034340532097456295240913020178084784964060307102372856223588985681444299602539391611115586215841371419819486268021875148958865925565754313794512755679809436095495783000496760168721902367046624021420945163049968465086983313653277616984779804824646394026953746504281493607564517131921850873552132263764375180839756863589580403285360643106105630720814951343415792296312421530112670508188066563391086016868148753395911939712705114489105837293033774431643222622956367985803101786205267426240185200696967921934906338920768564914782258904891527372401711455406360844771523661427539731326596248078812078720726405777773232060209978319707165048955918726635298871110364582380613008882028587775437709161615910467172800373159624820070364129362374754547465510896965405064210576563466148397070097068500448160038931521262388969171776585169710606020582178379499954619631460327564519171514786738784121256120474729977539213697489573020065718173546520725290333616014592667364884878932520245732561752681243989263273143795190387104140179540842073179048763623785290163581487383579411070193388690250365619919593378308395773182435904313343972107756196673746895796686079680262477267348243577355441064336503633656084566705944613587872543955347822443741107880454260350369239436906374946504038693648725593435674628729174263929133215716532651389931835643782025827307429677179905599246287749878770965184527162878851065516779679668373498540903438871712389659964240928447867083544244455983895750795843808817812171236013898425347908141785748285898759109879209163874661682908619993230408981225297290073412377935591557508125826350491978770317562427847475972909090961420501906437983797531387081047380209591589216028239233900152279481694917090822050163623270357015797713474353302598723431656652411892453405585237746060665078100980105707453495494385452935868509520500764694818018726437020032287744297292548098375026936554658479582069550253355994381625672911670839773413780428324292930169969474722835048686423625545201303505109224244493904500199051328424743278577005236015994308612274549748680952164504915176060823685888683576511427514905547667523969505005823791454215139877465057627091947485415660194698504880218568982616811166885807909728888112121734232591641898231066493123677196175855560699470073296268079959829792575959636948914906598198372869353417483328747060006860338896888540586485353155380324825392276166190396973577801017145244263452159387437449197318837133125652964776233666037433657583127828899945957042584848412554485001730634466409059823226047889188847168711008417549119729141893309757275080795954714030280026476812988582488920563902698199992761775601380654094339046494255146191741062842939692065882463484675892762263696027784205471746619805044989558356233269460116989829132508253558283784390712193040666516513236263647104460799171784040527696145913165132683780237335562917089912484861825800499170820425322925264339333813903377677148227926027774949306127625285151121618899465413604636376713996717138770001680078376470275712485526433563967940621574197867641931855117436062274931040234502600262488883906546004995525882396561475436950131000329636109863582179313572742240095737781441511032154266941470702199899379695591679990129345417726184902885329007844316975000808681936484462446067220355626729309100993136405433367287611391145518016344528676169062421933128706911488347757262063100075801139604412009969915795929631177581093164937672823116267513665815212126963391963863971966149079842900983616115138578938497130817098635124434094840613487446975047940826931609439580604304932348274212286670243456035587331586152246136045055183866448506882975618937258893198977441872919119200000870482318893126074332829914411312947527126295309013436775974909008259716118914866235394755697726071283614039728951307891220395098764735697629059114481222421761587091364797999872576007032150381255893766850928734784710661412686887859812499666158660029032936457398162370586536832975155285092730319280519513662589427036145104713587473213637636940061506353231553009847548321743226069635919626995353250214019733616765288093071263607935074930573414857361337828346798807485840921135794601289568815097218120566669490088679586814133264891395731054233585597635673348636333941604614864426418962560407917604784019036399341442265450516928988087445053692312551052973259093935736528951071096773631914813475163894447706601206027643902916832815520379704412982588317619745122157686542440574662616823405636058770051718868631059657981453188830261288838362656390050068351491475110658117342577858720416335666540203829945640500397346168353748872084929593930623861558112207707846913155647404294736287603064915123067843280503068576045345711354362580878797448376654268724330413055714100299619232351987614870724262143727955996845880881373511414843579567441553026035797740350781266080279241492272971556362262675050719337151722009782480195160438768433459003542833420895110352813464829844713729904389585360580234882625170586067232250346053882836146939270690248828450255024886887024409907461915064419242840970053089150076086494415264220065681703761996143310981768935305932902640624869412332131924038427914662818168548819152133964796948262504954619249231646644157960524485885036658555765559244533431306048402284688874827802242931674417158781753729001152553645750044572259807499962271631362995103048678053950242832745744080072248252983424401788768035987838736759556369825192425495647908755287562382852326471544419388384495494529454636260808314217708428281378827244831591048257075907605710697954306543144780961075763649033051952916690417617102587847924819002470049656762445885963384570228857427722318660503483592809893564429070264008954404210316749916352528452345056819248807200316905720626609238118040025073875639701063746917427491502952561849146502391746049779938005921381720834914969996192322177345235108200587415419200772770466739827305301241464986259066516027037025020901195450322822464450356616428099854707653573459306797446642879313031577327511459820235525020015746621584325168839354788257892675968356293254073430850481669948795588967889590956598782755865127262588751875058423588077302009718096457118003367018778349158224294328955214437147804184262051255722477033623976306627176604282507912422021915655048157994554382441454263572501167995000526361476933870329414501781445410763738792796573662560912654813168203445951931772813527895455594297799197132908354973342193149235734707116589078153597663526344377468204511710956879792436491390255594882344673852832365166258656735655275696225344612595011621090668826030005835023159455236740770087941296492977282174813953611713448072064375884029134481181786651993230063479773600414560099560710718727465308903997236409142986377381292583082826878046874604851579710103520007222291757145216984622959912360998822635209834979255784692765777595352525220965268215946151388631228588820043235260718679426545064810443804603104630271165906920017545220001474082700214491522033958262059459816694629553449868599793092365754311146455998114779056902175223971220211260940801846086340248073931824456530980871444475835681129716435168124721274611475856360914962479501997512023112335118014064414452786595517075107335166891944472230267915439629577461693418123335376006350727234283582176616666209850807018718510416257204443313963272318872784360388819504893914112323020725317129041317376858987385008974809654495415919811552049012367556812181543118445129500315838940537701268108871085002665091172484729691265350663600219911459568975429095948907923810962498552987334336836717590066284764986443913249864233910877896680908694028679063066974289052432135423145752346229011008867090572417849106588386902927112147578867242660234961931180991258426462216670809367153817452565109639796095472178189044856716946848079972914634940999232649302284391187046893404442873126809412906337374035309302135266957540386489749344106762871288933137058745324796780018561424154639535377265803044712355255540199245155690605709492850226318108742247513455169173479893443564108675639730230596203109626334703759306962387724836470394917875743393011072646075853185368597936712866688489130110746915831368125133441229458119393671507256514257338560378583956480238177708706692775695475773349872866368422019249737088243906475143525956080494825090133355919951640336276233288341713296307546989191480768551966395296299322581745349765406902182562581507922358255981594144368785110808384216212130746718639060360227631784157484155199424156559314696304501762290341258152662171047378672067331357049221012777798216038597014612961628398197160217884798570190522842706656501247467814278041254377632246995071147553943806811593971620091052830925660794085705952140771828590350106565120635470454442032298125877942002728235199447627925727677125163018920526412921006773806727439136764779153595227105894171938197786754983256765893478178127492517413855658106170743640880131895176621873853733994644824619226258179322001558053359314781299887895176217803102435003354907555419401122770869728191759684374833666277563122714640461464796867002182357117147612577083981574523973531734135471980615091699688446963539607834417268334777625082068513566493860274631706479241001740111818866925036855367810653843960701367530324438190105748864798275326621656595580678433539271516958483710273110445821548497307008971812122587062067864109885430893165345288614971261528164527034578733785039579233846298582461321185888121590210333554521480409188819516126349624328910006803153525418722097802691583281014950765797941946482471282924787596735761789507051295625668563841721450172918816318564778294554931141381939554097981557066346667316055366856301605456426679376350415687691200132703498870486759441714377803433322857318422081015847120344289335171671237017964099956770875514430227550979485209714725029388549817254085438565637217519704485335966986726912514134890803552987662461735056280569860259491044578220252906658021277792320927052879236498269560585737097133845663735150598131232189647831202284610560532651606096612088086338086716106169167662907682551282779416232182088411416512374478075052027213301979948758928473798836126629506819385840529621667500350932280089409543365768209290798325097282136545464634681374103070277733167331758558012076203455579816448697460691449827280144941593914572773591049145976050010123779149611977852167705812029541014409144543911091428787990250782611565157720683000816889415921752291917271183058944527497561502978648088337557270242092041889479718019484723228638936569583787560346806533792245119220524324284232369442675006967776252282552077302148105316399037871923395054988091593190992911665230864881148529426752057877351029551429938487361767172689304721802811748208019299811014783662678538890402495898949086356021454374244670225498905142356247747361094958939403439553781539853603911294005408233860127440560866252964095056962342064232935219664137870531152870080255538439316826829048467250314694735019625172089690001255035499201034233906867871136875083727976729243533063772983831850651861724518411949753228542266706091895142622077407783053265891040971027136612561474549781644718358041657972179730499130352630017194878208656933618985013048962494480632073791966256613257160073018477214856537646803165576139191216356466078574354282209402659965048957793694355846811696254127318458763437460309629351822907192584947619726571777604290654940595617600685327797143074875050892483710065894468702860531281833124823491037344868647531930015217703997660469613022026265785587617238617299545530516844210720698102046753577974126920252933873846275889617234059235471754123101574821349649089901198990022631865632211629609904279687232927900465327057308731518284087983540945238540499704256386572012414013632589553104530332396053838386787536161747115777324263628675365648877386501207807922616032216754048804591619887629369445447842666623626072406632724432664265697887801769002642021370585179247119022841401995332775303484255685431947452944108173020598734669338615832407239696176133895849964520322046167935142506740675594970170448736965781142323177357794452022384936739544612919097319627713347625661998863084686167081651090792621432474874812036508936759591381419960018381267303672875927966019613472491899313010582266350445499707114833208403848286692502407127692433225289659843046516456042020589668848501389509378917713373241195902583903549447158853191181728349958243046206188117532513131687202778915755702197887005038717681859023705464945237991976363416851188794621940504439331906819188922197195383636835987997956029942734097770566888026609866664133784240918871291041551105462265612772810531479677640236946215024692147951616410416467240890206703342029649505764529750075835058422531950486748819435485308296491658999296553354750795156665285566517052350721939300557673702236749709996686794713148732772251093937555935105937660097644111635935859210274775917414215425119446557817350831527672364619133507712000893702575704454638334857132088801901382551515623436833976531259753395000737259963052422282529098135958358865929988510987935402889160564052772577198841192808419238378553079393599867867385856204698618940913549114406887483331091170615691334201730694519873755517837166625888806216445229235918365272567437152461993548342101470403877414301798168899836867171594586576958655512603179286355134430202864457973874993485099550602270326262427009510479547317206920670511281155916858952969755358176374082425763230166036268301934057793750403644019184514248211743154626905931691835646485117854930955328672175859427658109186554073227991680865267146362090311487244375125833010216403495566367178180905440616104027639232291414085336567399349511628851663092832906250923663754804853416994565989371215282324689947693504560104195273702011094136664622993809693074539558651704352236982525386730031203837068872180595532176563104026625367890658918680118137804220334368414983020903296041892757133074554054644427370143260508991107187867925003482444459428256950282704320560788324852700956752209086369068553340666538186708535512803047430985930206451716239794873340329322548382076416882293065294844663803234152768158547248817317425682337603965654785488933074617679917813145097962395692936148385697778048505243864436582686044553137858957836736269402812233886076381579392175398720123508346956469556288189324505033702583801084331113440709800835827308717341920637193519734292484237420712717406891919507270564485204844443348196362005645872713171695166836611806556187330181668306339264040691746232052041275546534522234753676389486118864594752959976160050522530660289122992356995700940718970737262870794389195355690423386754299968265215247542787713252827158722202773572388495630416201310653741024098165152437737748880726845041728776024446963442509310321464953275553449248095352241564351948533926937804706850658614209752305378941993260582894700365842461957895427196783148215444864169011026577532073565255594541964893596324650214481646476433124800047342509507990801224423021613677561448651124110475925951801265974796145535525608386429924244633534021218462540952389507141342069537093517952330692174378438632918458679482610095377460129353520755459047801368278736753316393117813509594834115094964909483361795623471422807606575021084902813650548038206920169544071485522008212754594310455788161128772781707113016581562522417815658161195281788020370849855175068247612470185544350261438099789008929469926779983159910221319129059163535237566686811442489516647694986069579568991675799726380690593255635013429108992534514912316688424241023750173302253108021500428698884841631949779816459755788700538491619213559800725373972501041946770650217914671416078575459130586968135102506034464293625430925237279735546473883613694649110799751321049555314447153092609363783332141282403443591097110831159655366481476918101136101342301716085945651055308202012451767565931199699942621277942203540006633534984968436081457211224318878979019883738178329998092044915773924577516607133597909738462033090134897224627116049041449663411943603142824447125356148179854022381320122915866115368164540375280624336950574248926474685847034994883163312311246351105348270982723726357196646100235335898675606691609028430644472253002335915008700161601124253473791625369508736170935131704931002918675281488313092064177382421357345815718141959505945734588748881192203025045983755167856055056241877624802196798959068850352791637020005755175316754181473927605314863679195794159463580945575150068174424553907461459644105726120618963576829289950085049284873856989787679234162879573586726803131017847527907152930997383680913165011251767850543873044961307960064079701639887922369401217244934129495095766851320305043760337541462185760727717064623531471783575845976907842576754089768919268008243455943370205035614027186406518242737073886546537789814095330440555234136692676060277851003269688239238595487206238749792710222517928844854276180038631968392701566909520461881270085997134888841678785951724019535183489419480146315456527816050250702256449269076709707245697815559702708666409117440208440559626169806320843005033904141355414919487716721657652552579312597229871203887973041926282169475380666177386234585045984115251673596501230028558980085122716995073820821685983662226686113786086501175545778921262539486653011993561465221679619959384855626004714964757912530381904000814806199793793351708566352389132191022087706806517057874881006518715358487487720139428719282879691026623674446756494430251710100542439337018218989693469064817714127646691562142195743772771541818881340479678377211447665011119835443507354436223624749427966439449763390921572336315337902544846547161164841844541346618092987006853067714033387657367963912361630516495088806218770962088840109984633829480522433369355870831516636507505488709108767189086776750153230017776406509745242291021835178595615266582278593144981483508176607232213439820614939129325348751794545678229262466660265356506655450324146333564126682253702177273316900747729441607373949786998207055102260555590216356015054881160163538290808164329788845910775351644257768182693830770472712001149156668885560955871460605573925021983462395400665525774015573157421788376415803171838938423237065948630873713696173501042861777532209970972799207322863338282293066912090250744764268845552732704579356324269115536715336413064471570824402654476235567432227266608129086446526147999733470591571530199309841727681933039275190750256468340073948827793050309130548679122212345561111724003959247581130070461689467950832727102067392334478501432462758218503558181200702729154700026519361420115251975305201567561066791043685165220597086826618717205340779484850304984065330243675203568829275017893476460810139676306048946476954312725147675600478785697236873721458955106445887175985883785598458495425260820039184403666767013265655136919750824831333400147306834612652182207213269852043081425588976156583855418404478187973633620212169261745867550776471018714401772433226483747196134278106093042105937466280080107803552123530319679327115032232232364602981530965063119315945841047580511214445364433280192406962631052512244553755335827640059516733084730578027113916589374451168711422254269286999852632617569483836750124928492459622101572214468575266323476930688442612823496019093969037764308767431543960432736523214755526016118871645411027693971567752464085245160095072005455106802223235727627257491518695959362478172228804519448494973265258244737546580705763823720225971562030102282675378810651534178337414434506120653708208775627013604979169245735598773769864099915280421911053484040347430266979639522347212954733229288408877895282814269088513303698309516791787702406704805460359598508211882628607662159451562820748244804502957543929043796373440952008757824074438827870104223379656286670329182594433414776129052334761018677410036991073613252372825265845408648030438416212256874841781660717354859633662215780140695069608358926433266369160981167951837842843322149649698817438737135044118310842096127976187185800878880938356254426419198338139385970569535098845946993109706101946812303456833040113738372574526427708307715696605871246005539672535643998102476274640158433340750960280614288195591062501810027993513627114610117086359576124220569219296053057496640206575902732331931989680871440346903895600612404177360688741266825187736713319121909383402653726621048285376951408909133237897834550523128778076130755070471114538846617945907951520881472470551238345063548078853662885748431732556893364896719669584656972510503707093796762490730470948571581051626153850897711855854790471867586649387057130504676237216444131672596750135616964152857915646669815074581168152396801270747477226083282355903171203705046796081500010244840095939896560926761213500511284052684575322348829310701860827120732581012088507622504284806335803111938360048591360045444915424048170284434345630537085320201066900131023490659252669824637278267578633771384178948676199168688791702654304722764855730043471827899007436063801060454290278299511256982548192822210356231698360737693107006363538527748560738048204950135539550765057059092825759595835249060361450628220855425132609144242445296563198416738946061948323112275538185923687006722657342454158961623465459988108538296550847172939290517456382644915580372591308039740911512236502133875019699725381966015787128989839991318180374427766140333516949977954407614062540237309684139455740254612747521271973452928096771174263797928764391253299790536284732746138120204246517340357184072197565533885359997761913635488788529168862170299495455622136252936222403079363063447791761547374741722006794417606922096773403616235372667911780330896376235149423154580975912892012331490612036720472365214394056551683525546911358558212998937008104983224316626481158737498514027757905487917978471018177465887945547511110093658866165709475272839855346794693742653268826337979767853166729862575294068165140355863600847909728706197564307076849150427442353347703651842462362425098533760890726287462084729509053432323456380893827914354506254844373942149106627222367005846153555034344515957585805195632088955866377380633909791897197739895925389354444644975129747904252932389995775392858237577745171846690378899096011387091728952014224229126639060303629709418050323983737281052859025627992334856554185411378206447969664697766664904686655416315835899877159369626456988868423029290542448643218773742771215674491502201321332065027504339726131015333125125152523041172191564133500840315460876018801142326953120534715321708568066458763865904563095464581086894517182903352857926709940740286566067438163272485789756844022791654734138772428365332802954769175763171637374969991769912121782311940027399933829459006255496414682963718689427290307296237131705310971888453850102581297752094672863459302814134092370961013887692029172304042380131954763745333163214252119210740352432197036746650430807457283661061864674972361318997518979555521868860567160331491872086769906651948860153091377121180336606142514434826557437889392529406522157315223748060296400695206199792244381349592105653545578900793016753306020918403614280884330968321130187828314679954383833569802591346003799229698763888449262011525409419161356924463182246726666235251050044622042900467158245908120673093381655596425893511444710404230038140334579744441214389416073658168650205165813831374073181065192986971156988736894901515292603019813934884066566652748296303655944078801789802596727866330538376237985764386150990104651497293333196690055466489212072935473155197543005022614158800402798544438254991205493933519707277678279600013098147830159770387183153429260528847083358104214177194829276082479685469484435035482046278214844762231497297704777226695647268045430941109455393033290021185540653082236599944931670086625468236367144247587482632264031316669405388336266940673139447753240899646492219211061825776009142515180160115410828629904424171483596281975854891068699437295510658200802889997871844496305178344881803153438311040543920527684729697716749199488476173927556695842686885713687281770322699416493227347128519896408692389459514993429583077694915491455084063299032816653579667256062769843112436343913691641111193877723654084422975973096690132682345915025680041834454720702395903920503035718055791272502165083904556400584594602450956560110858034316016369842690494172938785244261320821412484332371033606597780942140341377963773024922739235600005026866680141319156243800426332797525341587248484424174678346951446093026378723273389591283681754122197626085859322957663619469664107302017636443612466059398713688481352355763694988184477495761833339634788636327452861830520042113194646146909865782265074329548208318945030805049421971222200774105154588578392607086288207941334817713421785441534905983428319275730498206207937342243989269723082427457469087830905264843806031882665641917414035516253472270682557623595305014172825287220701139297277375349219263473228647637355812884404181481770642580810951130150732192367403861659352022015800694629653547995957958771902251622342982108411539603671750516910022023345712938383603540269264605079553664839246708530948136173227326251198066121229990841229872985163411453555410464597682336777293571903699146604233736995605303249715513036117838938731304177934942212904859701016367697762586780650092510844471849381344892467842958063381420458437626528181324912620430907513932914412357272299726030068379942674080538664920161887434016611027520335783110706245795828756045549868052812328265681289369283052937583193804833127781221863733608372275068146290237127371147121766662883971649787081615778203363207271187589109928342943352720085191770261250048721975243250422149919759801048735722734648977268371928182972218464087171853258834239823880693003640401614879226394494409926410987703254024517334203967040045779644329637068702691300881261118832189023397263145286009278227410945619303489687482164170237646881283137132506491060054750304000150681974288010170516508696492291026922131658055831438345361738326807233886637577216111304881981054966917241490179279047932539134562884067716757982731841328391863957195740634033400707010457273947364591245035973351035176769258833633739507124568078393013384361954232140459609208252408374890735966757665493033909441237623473407367933685464714945758355571056107044762390529637991619518578899385331614890528414378164791246233522930280772749175497639810081348929761941049047601580482000637480814806106061822126432421414383244700722989446505995712069082104867123362631115310421535230937994406116784725149109559089418079472147561273827651788889451536996452882566479140014253439602573345526997659471158644266420270485179270337413091625141524158248997169057495423380223593913846501313010532145260586601275642472592913695824212840999576348052331113708740586965079783335020601280310238175216102965084334201303390391439161117171326867669336014362613792598437544129199465697125421612599758167535205944359503430326526419881194616342315878195033386348023836328925586960558044778545774120463411318732739379134139027324933306114235719040421141056621327840401676479205592355966523632090100294652279970407635288527362213885727906363345156266843296028137845527575211118252400837903761733481316403484581464045946706916288994655647806240555340974139899078451714949370383628795930989970118384138578706202463653742905413754652290581824315856189717074963699333812066722406594898699955932676850484202836976784025221690855780505845674501544513419169398008952865439022273518608355564328329753314515936779712925898884534385433793948590279959892182439701364982199273712327052654899037264515431097019259869891676513673450644264941508136795053339515053473953839929829989915480798388575085296054061121856677603289971008562628349911611646899012490215184004666100929342372834629480215274026341546009028318257578876689019940855742600720416354392637797725849159957884553595421908437278350923720334929532596885642965493245888024973722207488294428877007533654754643761725475862143020642625520304706580160259361714872831064086774381962608863388100122367858330441869806721470514684614557513030379293995839710475928865790174061203957368285454556281257512875725209370993000691330534480894446147104301356914413004409759338094700453067940153003051319842971221281173587024524458444057703915545829930769521883947458911657219719346467736805736927214579622670396037630553705173568420033739705666607293293336096291404365582409266323570788199002528878973368916550768369880838744404017011497993538524398639926335727957548984844731233265364592493186372104485131189777122104661805583990416818599952469972459978706028038194078048959558844386877372839826304433381513119259602629587241617158110911771991810110764440931275046831757576063402884297777202618471980162889902017301566850293576841360535897566794812945973379880602019850254741162442428353194760047826113267747545245605680392875137794481900648434290276309857798803767082005363241945489483713564604202471841302772121145125578178400545689641339102995647722792834487675991107589944331379452555263716289516390048071739749716836824849212541617335545851815465654587529383386490921005018288221926730372716633059718199059915567879897930702017040956093107455091697738581730313807564190009604717925093237716273543595877038286476085302118344246892732580026526530962901273390898500718758341720772048986835488118062383049141487518303883546429725651527285338993070063568811322052717482661632932331509280461252889361186369543872398560895916363621348803786558916137925802982664974824081378975912406258784285679462752785698201594316768122849514047563188058481445703250051197667344989789199408428494608357180250116363189879743077900602689010969614334621220130323935254949327078855449490201365381765556291458696339709287960313313803786077322135710341609172552942230445569737849136311380853589014974681416611163442032786554902061984710817677132965828537649302917607268591666603169113626148174797523128396701646871738799425867655183470275943741874586347560463145103609623149601592230187602839211992411394742248916002497163360246816118859038323408830780128154659073198389753456818316949161846185870076880692678542320169635712832964806262955950992829067261343877047640702834667143587903304394281358009442330062348371114115935100244647719357391150820395161541515637368058682828151900812441305203524542269307893465303407842530026493462335460422151916474836570700736776797109559183709151450178401550033381671301869385574281723410499932555430204719082271304666217063150374658147009897200563251490836814415089942817107341492282763727558924500304658223684935603566409435489619626215299859328254742871769858262819704527001653083287248965704031820808991860366989825991976667359643824566800855372904700124611833134038333068976896149303582878992599251648321291388983617819763566485890696655812553360521268506566932293342608424884175522223783548036813277703943645405047217346413042320249279214483486553597427667380377693451231591348991869108558368025796087600770010888607227434216326666890741495015606079845451107705628286767103894551114227626478666080017560219221202784223202608968177109826413104781586962744385963345216284150704538371699717313895732874426598516892723632319527517697768784628855020820867035349539907256768751940026669941743805284835238436814037962973514032281679624334939076459235968754851124336811148452974030245479831515112184891382875735280771479183555496077756590441084772488096782658827532581111585138466361453884961536419495817087919736868612591672299022644475983784686029693706339096717907974996135254934895372209744316463921517072459345966241724548293739562785184100983046874443950786731657308077213690147069372538069646361414944038078925258649504963212137972992457538081158868283108497358119507019111762078598820239216029734024349966496650597220984969453137097118124272700068428719281829488010933612029393500021030495528875392309679842060600471989777036733225601983770446466659822852388912616806468437510271750524292568537304767363379112322418167240868493327280467642549815992230341174518990061426059364672492568345507635076089437096901713962851290004964071072473843099835615882749063033701105427953988543608310894885649978182281235449537819950160771253733458649105803078014775107324664895239138816823519054298431565531725485184248748404990442522869600241613349406524786874543217101739438349631173929870614467786975316335735604848821669980396187123026239373660204510299399044045153724302414812051678199463602862124310971573436623137954379137946054126705029856880567090010626219983159439810975712178704194020105592740664162845663719324678737619355998204428684582306960828330758339279921467516920750267677641366030359444684910511466404681496054586187029192240702896043857388549857243849705777378545967733368583058163809687249733145957472169209361557365051575225133692033498532397372876769499933159108474007341472827130065685264374895848056858909584110684993665005381150433595074593473968969128220647180949236748633351349367812508792849283738582901439945036069786745190635159696846124728000544352389217572465811961796024949471240414419833531682227913977004531413294763973696039167452115850327938347021001985187712276103789759040397786259585904432055478909385228864100126089628255945054102505712771038643970392617880860562501428415821643116989314901130542539988049267869269999713140824448076485494534758837892394902893179768864895930813106628971374686770836072304179548587301119426024198426060550970887984556192680983277321770248095657067161980108836013756482084637560714728928467137499053513330597998757902386798455751644927407884422831456463965272185105030131991107899198532995144876419888117550726698894509749549362663867244593466515555543995677677600504221589804217380513560786123289410534627870337168184718776894019495355678707156078659338397740751268244735760719771915460598885001361097632099751123565870620708318298989850359565534689421899203739929546940962376321830863510607802316416096368279922912166047232623361990149486012164252053464483863276614836444144887198873274293346167138082824348340296312515491557330548257415612550328674611957818597750516617229714855003351678324274841619394143233053307449185161762672157270457705334695208083756253919177660111704081915498813697767471249958371063897861410524712052146217726024104149530829994908463848027010104189062224558242448843183425565736668344764420801214858231273145938439668870009827109112538918706306833828128662131887831337436228871908481206097363822801723086820358072845607637809800971933048540976606258395358622170191901103844318369225237436734306207172473603295449441380310643085965718552050263287366895885070464310043187311042159854431511784555417210391114850279749618948032680435694650669843733477224958190520322383663099468642462578833752248045191130675390847604590695527581692392372825689729082173330122667855603090446769116106366632961997992336022881547016209938355586860744642405160055470579922436658675633451771272014174992626568212141081871964680939889383381723504626480371377473253395339164963675699562972077586585489638427086146961979142977045035496753773518288999625559742103106490769113492337794672166063852743562888208442777615498253614174174543034262223875534579299990339143925155027501010930466230672015790815969319589576460074095220623493239328155900533355080685778061771455877111357462651310636393849116487456397012391686174864173611077965034178473534744324456155554513806413680257719037197285194324029195547986098076298655938955446113095542539182483563525722768520877448246905196195603827476977006935463931414660433136276947939932151485535720359685526646656864570589293810613845295191688132577357487081121382688918096605938759228858111647228128369398321755664020433242924091589392277303916331590860538713027992857060605926321248959349908769128779721501366259772496636121795639511541113841319055204642659184624693991640115261647127334727587756532325938760198335810970155951791371400866164564959039061499563358254894637290148837312577322739293287048050382849669920522048193767012692704993284951558124586009044926707982931060188019004940648667602801801688166319828159063288143914018304219905983973358443806085779158187707634711389561391569879620413058742342291358467214843783733095838882646830896693293992626298630326156380664530048495847871980237830692425145859985760965016932614417338489702250596631012959964889916844378432969202774274649496605504106963974458059072986949155325692943924738096395216699303270014466421315542578772528982997963726256462162932064659612467502705597822507429084191324197626082419161737719841553270847866689972689453466178344387811762310630636864739205543496544872087990000954048713531304962763496691990865122125604019257455445295803234301850201992520795835980346728603870587931365622095299978244520521011271268762917898091633762715686932340609539891771639866381335125944938460320616279295475948151480368611315318149453739088733213880809191448637740521249479464940341267206410708927052926744803772134007280391773365763903637225907673547371437493192786178635233172608046002660095066315128231291039656286833898408865216845564368900329102697092581627441691141234008230428405422173721485184779197548312258272196374441571840527223291987412576027439599304598330696909377336983534423031942412649117658614231004898080652562223649896876275198781000308909325654805349219512737961640999643291434944759191041236101081006207554172337608335757999196698603450316218934386605585247081204237415949076299320638852188111612195584419617388912105341236898813260250969868350395327311093038192677349907046611718223647812593073355828864268666260042088729356484484655260002664380902801471930695637451325247846137865159964606603739892033679051220843987382684922826865929369269497245122358361389444915114077118299235583056663919900021963211307385309457393024482380844032301834749607396303374773593690845052011682935262532146742452371383846316985124096329300231031846494118644854145681998597935036772121118258426332043756759252427471874261526441568372712240094320503086277551199324934148261406440377475312723285221130102360964341893796192291757755478113804822226110805240301841252618167524475596585896495352646474235233438393524311141753135292631038920990925284751662590183427669369121481904956315527341098241427514706329786161775753011338717897272122906877225974936686459913378915312678217176137973085827913204092365940324030916824789397433694971043471502365353962491704693261316550357380552756241004618934208399874195530336656457313963127723145852434557356921308034174040446683207716795119120318589208166907970134442221360512452467866152199615603421068290902387783720279498225089805942938631851349912434072022314657764738170677259157061221510738557088713175796333563907869698044653350756702242936550104911270456231429480101209494885460024001769255767630177636535677887232890001983156613468045505553370430431075983340546575867613145177694200060759690656241572112954442927255917176108020101231693140376382014179539140530815727755878039209829469257608130652940230635463065475138593779987677650845479038504191007475716179642451684242991279084366066703530154485592292894664806444091297413393186232778530035742618251033440017523382670018845643808661817504772482153464255572089165242948998578390114680555617380203438860386946910325229253097027945523716215901506812586091531399300737764953817139507534774389817909197959385990481475777325865997256550925802165344690276651825277037934992550524902141232633557479231252434575080195513751230038604898553964668843088927830478086271576858226962816945147353347001228326929068905536712194745690203561122809244200961473769157616090422873552611400698189951817626468199309563484279558875004460110973520681476105014159104170562614478261321086102682039667984539309072851618268008362424694607474669927288083703452260906904284317592004974076575812634966809030618645700260562247923257821636068958318950137887400120212854959598139605326136062914344022909640520708939474904929878802906736812950152627494151061868277385613216439700455041337436694207217847077219198961172753553545848412839051049359547579317951189291980664459955293097951174698151410815073389614295884503732739447923341191067900673057230669329654835426702703924548920558607235119564631917844394303820978290913021420631574071729722027491805876497564152254916948624655567284194578322001133985172099874620765855339696087253498406802767688614029041758846757071635346016327110150280505937341275599060413389406204653132395571757294821049316261869430200476760256843245528667833723145847519053392765503252108701017618364608176259953612295117139934126097514543680006202055539389613264978873874624531876186166955138832178006632074352697699923748569795107229719549519455028717479499685214787610470629156507346870382604493846582363887518048888716330431380441635953839045044658444664586227272024491469070645333166620952834943717330136358734890116333114493317464387643998804767728491078152987063549936602548415224778591646166482611393887159631668133162497124749583171841946899319136868664386035040533373488410121582651084233594589148660152282307570258287483727628232173772084453451035666004499531060359744557415294245249899127684050036039196672895766344488433955577434987294799417684413229771265638373809183129123479084167787677590154280489905293400924278595445984898524904834550568561106762731076299738260072861632939598622917414917149064236392278470127578259920028472689814751597085241899070044497263066713898360405799520968852431854287000869207762209378682355684394030674176295856135688981256218027751674257015259180942648417416140237964706799252807903497234901786833270602855005070650782557597902248769570364001509443073336582918292950828427539961097968640095972310091903770050443804987692251337670498247959637276496722667281630274150897062219632787632562184008058427687219216095498684804239161172620545863635419885804635164362113828228923007236568040120131543729375330645399849018266600109278826072401842964424627048957849814593445800122644800653677455192567762313827218975177838170237606538712420902488113899687911091073507540427968271362793611932313845814155758062976880587065620966509461153241909985235803106877816592830224953939459442136832759308433273463586562770269291976606753001199241257082705682600335382809900668948241134829093540870170339127222840380830528410455122447471400868620460987246927863935339295981395144370516984108358926299692154471064886340655730223432881696484455253496919259076124071569420918102718088013650652653970466582121315809251424752125295871640477000807090724892667185302139722334293079662726568235739253450415396274105953094965863522548250964282335741565465888842363949525432587210772445041027863198390449856592144714883231255853105579408161772823738804615800421781828856987966248503266096469662100595570448402250591968823356762244856050904608064501198974584087937785304343149982177750542229876700310268566015561110100062698410987368130524153159841297868560615978926521537404857305996400891963110261993781216840404557661959998450477276218498540941731306275700661207031250514959534100269376422631809652912561334398391004903534786433122672097115436003706103901800233626173771195318433029392336668598328038517688514853576636272027653641366508360448954228570161046865768816149086342985092420968782288123552269801386898082969838877610421328768529152682375575153458803794489528176623568868033173792201799827200761569533472547813996195023286277831532111071278804546661023479087950946257386116004828122492487819582869326816559329311345923604300629788258583326006658458798496296755551148202525966551005701454241085066521747252171370129023827394413989276524534729365174543051368430992079698381411996012625083876472642499655104651375756804884541517425002176252690730964865361952044664122324748214446212018773090666766772095045825635132708991681389214293827452868410705344336984288432171716402814336875326185342502945447011330846895619189113728216126225910243284467782439033586151570780644454773585549422166238455060794515273803472960830808383368452848689011871300974414186956687838770293533399656109285172127563031778901139546957340364242428424599395695050420855021458190614339449326035120948027916902346937668708070761750979851173674067184655684415615386536946203876513899696650199610290297925178955548080170926674066513479756189595883228931791745627189636125155805314983877133406367878231266038571004980826112484119759241085302823850814205372231289198792448641962585336827129053386751765800116029406567518356408626314709358508320193150850346394666126103224299698424734954482771238357254221643969256040296328888234698666613001655487331372515372294641872637544000940109765572340776215486763778281965344537470571775330730588214808966824708879257355133020409430352039874555297882253522336414874037324020961027999640571718557149211107627808162000444125855894764114513591658154307863894183515148054445962322661878675321182739799407711687422330279536409786644845103189435412844788342610189578259165572276821218784268904308966375827038556758601417646535733774254062932459453322772939174973266052055160981798998906613787593016167270613093798844168835916542901356754935773552709848813932723990968143985377548403418612047630421551766380521653018217422979284793292599352788016155261819404945834107394049208598808289962262859647672753527077270103381848810289555315355562391759467237145609769828827279675781066287477053385850587567473451575614667199601056113377840209965321253437431857975179935708531723011808387244507360494558114335456472839723573922636693610251862821690056099260790480286124619131259231389299091610525196637310891583164988148327465840043617197321284364822671256781984890492894906750873652873011579343611716565853049721422422250771102835973421199405278986951391456068801972515296657186845814332830422400726377683113326343949686118860564422356928063685811051091582269852639518921154776213998586618389200732962078971963279057033301991849371289870533569855705831107706014717634630554017885401850697290026688467442780287477528743742044041195370351308357190795380825605957852244609575510794404388765136275326383302563127932120238586160452649427296366094694567143859828602832071839491228689058616788471765541116767267894333065436647717303710640882787341625487231681116730945876860840487132017221393061583233777192300247196346138130816214386436082563815321325436329379851940620957799214973349166654509075814193019999090571261699081791825782934557741345891175727726839815104822542211611360416808002674922603071602001374231554436661559779436286719202446892570293115935735282682461184007827499294988593238703197594105894482011273963230931435523797661447566422240399934450789797500654687542454032514658801449115573317788528723645156448602906510034833774775194201099561955534210108046896977290750319143831041392099781214510895066889982073304531665826966108994269543078441440516291515082849053440827781137558687251318404243188958371576499071502214933352530955347850986034141732875649831728387158438718152263519942474146108310336435419190326051287750593828853797625470618530981520995826133391372179012129537675891226841503491942322321930253862063533749564223905589438125181103206449301206813479120840942334629771865887530300993688398312309570609574425150141804851454140708263068286693648928958057807557020624825769378059197821365494115957929907629832090294173953034181820780080655290654121477762631833132601614231354870589820687230897861590913154316823066429109398024821660063015128578015342390167238994269904358848995175778455378324472869217219434214526831372487711218478552752478721452202622454492185447576290270932919449131638290643298484703120998488842329151453112713312594480896043910042527768057326581472068912708653138605741243420076910366054172173200699432790360409342974161160210778298690346694414568620649509989460218809233192703661204580220030595058605725075073055712238575435434450058504340717674553700768728548415901483498994926027596498437051891084005732058918564153770316542591085141378388151068501984160759633121666023723098001418120420114567390713182678500718125107825767268881594171360042332329914903575979330803284444951043291379102071315394676032112203996343518020224101360349762371067115294135635386957444162641192815099568449411208273758456671333612768196143169196480065780395551972505138471842544817382141760013306840177428296935091403581830895207315827051922643600738550898149769005062230941139566119692512477833053597582435361469022758540401201207941419403509920931035983613549159414726470977451728073528327806172331981022804481146353008214679790994692614362682599396305409557136946285946850213614039421517528071994168276989482173960391483451902809340151110475980971991216415994433128732861954006085157508507927938247106870237317842592949169690900279697503873967801770454249952329949726231658050148543948696764504463594760693257811298885063357292401518716364742779742739687335722053894165980062026122384861604056281471796685500466194846508768314810189175608544854351322606299933243295574199071247940219210233672074195429432031010660241212254739692730354219097629289501064715586087234969483919679914273088822072035287385533304989814329023456510005910436566692063341527405569079541162940821635652220902194766604930379763430592126389511636585804594900288465263430004369520469009754103102375826416397987686435840081684755282983963147887919993273471592854745276048334154646498904294284944601355185346230638845971895810539372021332453142651717854161282132222571022160680497111920205027577463761420687380456265591818023676174730853925169251381048681654691556649414183378541860080628982175847118830938387270670988600870867723948214104088064595725689597816061966827897386145203999508122281487395485418781161997150595351486537975321069879637746984182704663246504702034974306960290137610763638581766370720760910333072381932767853139107699518436205515013734221942599528433715272854972214862385616802377974728168026160568446710280043841676077823190021582201362383254458103732517248901796249473155982753703283805345014211743656196863041544470608483505525052477083576272847303630855340255510720188941470961068286340979823309745903149892751018990231713843255802821409511239382981040683406650888912344072327293024540439947750725588674096727552965973066231138113866321896627299521443873061444904056764293579158446225066877232470084143132141741633236270419543285464338719667824499141374758957708733168634651281439308817894085880385575893962140948366005970938056716795253134394251228765263229442420397917836617187213525175021726907705826815425832798533382790705980575710590077923120857511062375773656812084563465906203283180174807997594343535553522953405487987162960222556120679492291704335606223336133582445006335573197265143272222273453085591717727465262984013797647485946996508941871670158654623572758239972906678289621424366466878814943887541622712366651934266671936676414168154592224997540390271837149652362906474843539402783057279972042278732907619169687888477659103056808049772631436117666541013729741279127791719561868673402752972675819486104809859382547219589081310252105575817742979667983497722359548628080247117606992389592195407669799011279698402031166602024372487752728475221944769828704452443261382068661839067447878730088366436137660386941794279290044125060585492058287416630852299307465783369153866692486781213970721508458697316483259695213807866927123639801182342488700466999751359893603724807507560959825659087435948680726077663039952632277174236385394014776675405990595931605697122701909139002687036764724194867617596084521343614608684291030226973330572378475861508257038874042519126667678278826194328450366336019445226306335376706896608403839110643370352441567926855539296966249482567007533838324238740931756356973058520451090486187481528120746149485328215174146883432039385829752773415245243794442275885984410122664522193005342117040325229575649645920482896949929843074854190068898509004502773981375496279615596601264443080176825960392345072996962472734219257089511248715685851993893947837751684064709914251562933710224688580598710925863758837277880143569979668692824960900523933032217190710811257812799206661705972235053659684174288562908194908540737641934709998362010366385007022520635485109839784458050275249414835855585504905046398360701830113430094818618946785413493301055078002499911818697620222336322393380263456478062029617754044875636870410047286936278427987499389960266391090125845107018921301275270986817331090460205289988718654771990163187096870787596374166574938432908967177290341355248462614861815761987606250014360822453441560330546244752746579654550112448999908051761237810058732838321522865884414431376320000262579225070642615521062154164889999729140661694368590236797576097933127936176773290525016158896534566639712120802924651267444625246512600571961422751508014468868048030086636220515812876231663743202240986904687007335979701054442140011597480270436634354775264208790995855218659230692079298334667207251999712604601464866615627036196824689826690068669067298098213422236832274422920286298073204562809315755280500788597126959727864843666457868401804325248937166954514542279626428459981282196345335867689581087195401558089584189364066378124202884053830987622984783704355625038752737366609521383270902498985673908584936560982440181587328915958566359878733482669353389805018737063304188201547278607363951052217286179219933515675814473305530905972816725511189244289730817587218813873766344689839625885380618698212311561750611230046336144071809442799556963169039964835104660033527337312123235516502655271008297033602733547074630773100397624774214953363939415415545094820426046295561849649423253113343196299168012702238677623515724422401663511570601351272366699870716611869464459377129645906902777661786859007583613325841039424432515095471255283659218508449153394925344821275989568582779602445840744515951044016997477455435429765478221713343841496727128443405952105020512685463673874033777525926095298342040945327090512768066513171004596207047221985336194262504903824440200287656808071325626992194223420944140437712635998639864081154222624687802299395531869635210540886230078383963572918055071374626194718145375150141544490535038887804932302893607317556167983058594469363012928205600278902314648499347238424869438193235167584726905552789564500226329891046176811998666814064404689843315746890740031853065451465584728747541587073516921074011749260036537154041886646631770934931996404986405973490669939319906744907015605078124042454331356640493000462381524520006557348715455750053915153302629344932624791110523846254901608891463314953952488911130894706370254416496046167122094934276023683539773257832152933608148088073387460852455204941095978742365977811201478052911604389593731296507506638430166350062496894484198292418700139132686288510135893017021687884095665282432138587346477187777139997947968980216728607621764849931542518096985116273757583353589949764234698928887139861531165855871471549184283485708425852658594921003446419872457304009862561025156384173361105865245674457129606763976117946670031334736662257872615554654086904869572397954785372913154918582710244434783599976529629114010947593611722585735915915809742713032622233285348536386343361813691776885807710512285220029922964789378348497452383245092546939059572864086971049401812106257916966617088940756066942360868465336592295617186979223001150576084883032608347018158303210092065905580426541906865410258074606072419255602745266681017621676959199817562544413781505140177979599510750048849253735935946783967126762353835488765809122524084076408650581083281701088145934271246889728743618639413706247291521529647605029627015640811317660852887816446644773483149893623706069044198754785801346237137964443910960584512709421127064299128628358309310504988079117488047833697088772781350248517134730110293601554099050125410572128897562932151685447847177637525787302277568133472584397486180789199991735226842879345261743182548217486068205001737433733032747907998559369930246200955978297135395859318931665235167717050225357724488943722911704066669869305817980173677678247472300811625311060262522826616288081399513759952242048817928345150093467906904435015998925840462808931887739758471811301028715701823392606735919633018656722018591965769157082864263547206152253406639917416478328924104480678126927655562222408002713178533991952202282543644523143069436174633073076441215843783325918598737793207538620709954070197636040525174785341176858317167941241818365670653608519980597010750801621321659895983808935516912240686536003255791530712429681543221833206748006907376809720407953901074271336749976977725013537141525004575155402871493342669520559016745208012185922340360332387978822030147155454010985944011318047892342165401477590267490573197291504884072016037305305471873649861469433289729016268015914880093063153122553571588033778038472595517982235550768044961765274753121041342596050224514975905678241975210194524468575347685435619163757492757028001598716994935204314274341440233688532494022150695265934522571189043511889940887243294556933552341572689673146785749402182605085053157890035423280126049644677541935586499316287948566705752475092790657418330665844571974176295738694442487425798550055227219713461993889515076742363805769746361714708719055075264899236307471082715221975682722028440747509893684727636390415218698336673237835321580475382182550902731626234355894398839831014728372376317398136235877966321261623974530076553112939579126013287753003312124808332379995457357237362029058462678489579733538597194357801941028158429537760085388855674992736738909742700104375038514142751287906261919770090651354433336539147084077494628587338975325064200167609221697066003435835012356663883452041824579026723184262882229484626504477745923789873291908762834149166924426050677231869234273620777586143781339659626993969610160959621456786255177796207491759925002686695643676814056626365491310703330227143785296824075280823521440908630829959583270055559713422477083633610405460820364366152893822527298952822325782466443611132429260906894722227749829058875622171910648434799500750337857713368041785900025933676453373185398440733440943570044146675538113504957920136985499917676833616375961094841587357332764518720744119679464121211404198853644514535088289740048762402722244626181890965279991060829178517504827085355705866867335598961405031019088037310653470221568092346857062949206849447041720793285828677124655358987022651901542275333347495335898851501179646456812311519857899728589234375557381249088697479329986523616462192563577950438373440953052384326343766135662648341335366200214368270942129672982188322175015654490557306283575035178331004898340694065115873657580456828616208048527490521188475805353796610754097136692999949440721112908409996811023463424276581388017255053819353852190457410878415322671046387511611467893291990570129511448331145314768152716805245740761453535142559735142763410282831559839508273664878400262303518175630328301527729227309180331028243653048293705577220281363328296311531923489461796593204175747343825707129227499462565160770249015815896550618894973245677809695527111454896528153907143055099165377356625466970828744157059812987057111235742988124239461767593138990067459860986784735503455906769668976139170617025124840620260359557815558627741004989537253266530815227209416927072940425440280977460540817809679606464372412048717356828673501944593444459550637439388988685861384525774169209976261628127506203231234539340052679669682635324402499437417421883761938861839456850549350552842955015521671749704047402109736689990674666608668154739590843751169739927734741728357875411896385049183334932935523346059193251505853181605113220052572156736684026983331801300104684133056498322690072317036088206815476843243702571483876900413553664848031812738186950668080244805569886830681906705811272478128551980769456951836721494356330795056280067522124931568517589642982136660552839119524758960832026982901425586608339526880929057178321036874771558335152078320282206054066596152358619843114614943661441841652526151756281509026551313597748796154396258747993584083972075416151337971563593483450595618845480387393898351418987293902826324457976184078266966562075878118341448802975176889768584662113368383870879978408471297159577677839486238371561163873732925910625305808968571365270554927762100922497988780249038482416810769077750467314952052772442697508359306544056844608112976084661666426002220337162223563224553465150934767070212441579981289973369479348113333239293301668127181386451673680374034112932894181404544956724044144547668729148654711737542666302262430279744892069982717453236373652113041650038977301251531950015669735181671924760257206462169899886468500860562000947729849874609410313739248228924124864236832854809347194605241924078674662324975897490562215239674703817810817503435994986121973727043952823852218892747639722170787450214328258853364216709353595920484678370909353218287498839255571802906237300921033919240091137235745462187720828716240504714048222978723710970886332902432440997703008687458087913074845898611134280615079260342192185480498475373498301689935233215858899841924874209212529053564356601901169250331192311561127657810813122056080815855957911303193013911768455082967219031087895425063426165961818025878356425888626825618725068893730516612529722653063585504940220752500535777245644721199274111271947283287399252515025749652439079124409686984893169862562024986287304036515145781007446373467391506503649670053126030096839050697766123682546959477143623558356037264283806169202913131585508429295789581396956244844834800025336560772259747083157901523083685748580091955557932549325252440487448560906942669037514471512937349269113763833188331984510795812431380347421054249263519547257082090620439110241762289994763854533136940967301521524552578296127079623137251603287769796617795057021509134032765263153065763411916146033706047773270445997022312532464359056395920470291162701192069449207719973066765368282847567614960575551621330568018686468951380150951158905362225154507645806157077661394889853710415320837071008893183517690845744486752126110586589402384745958011165637866961271460510002386687699129177995485697395539508498763543027414581747653945587687981137732149470017773652714449371703154485802423620825822532166533178378616802291623607839815113296989683792909936273087103093474873820892925074162389946672191592748961709368477859680370653288517904580331183770259444869736536259305822892471190413116371322669865447515331776571624096765298923595360854172933861698916430149184982657405004035155843020009862407279291252096504739634304452752210275442468189783880845668989796843004796505166292285739935829279599283428247724377207378984361998976046937460597108525021559842672311498878383735804369675651730072923640296972839904946174948507939484917292995419825172297660038027805559881193514264615469143945409923936111863134529287479056445942655683234281427777561072618893818410164996756696289012307673527348543391373278841762229253818149682946991881442869547487910598900511624282429800798998424136888637023525124509636311078443608389305205467673465052564753448753163971020488566872777171146267840710722483466076382063431466472951415913305919961163381227060406206967995175343053731210369611489642469684743817600596636874475044646994759158836804351724620878056794784545338036291087035628717535176329228359657407524725521721909412918506572424941678245555802363326685204309140583633911909883625894460674453919571160478960829853399353847991488301131742019319079642675756050294120408548538749212663963940373645516736955422681343951765906950119991313824897978749829393105119045797232825360269302744834676409607118339377095211019924498566350163565502484987242429314655809390072013239011663804650700569239488629710040255878018186313104659071605184804226508349872250746224010326744613719548590298655729075645292144549189841257242515753910442892047500159987157679684659585083547315546698389391256097810823134411974026913733616861125151833836455146777844863207205566876686393471393351991503640792529606773196195629776308456767911621843986287278708007324833850631846776909656908080016879224471292002583008366863920246296591836435720279475782840831215612605524130108695543997349428206511986276418451510025225057539928850864477716897084332709073830819418408130590110981389603070188643009353196451936474124286142027539327477212062896501872655890243371505996075932769529316811767114100947014613961935834986334617679137908718172921853483036700874566023585274128153693513218449674003460072279383699832692858485122758926703320631222045264279420136065604216243992822410935001842319904830116051982422577812589023723665746143782150622130732580289592436290567427489338108980244606210594367893854071731620512788988286134751108109049097796135507693838020339730116099593416404857475800289454197122430463854042061143892918294735050694853419127507111673814822983591306833785303478853685256783402004300561296242799432817392034411480883832763302364801462700692731904765629115715610072616482604252536301366778972219899816246474596696398110329917924058098918937874098961860946917006759862681722863841063066856917231263311004038257251608725380429319241906942994594664948741911506195551622901717046933950780820214602465961175120871258642856475717843152197633109966824946624516036879210324257311732663274159987059625052056650891558572865900741416443442243054660016546192038706973525036133885260825274860025991726228376905283794935490952392996339237724668106147160929595701552238897593563149941668318954046480756233868910113891338504287644552611471070485877093762668895214988381845285840898308863256664248928044515320770048427774430013024980303892070550796684302606994692993320253511549141129884575361235331994002027996066004025224766286226883836863844493528962515777514511679524234064039589273724311971748897584328220996488602818946880829089912763221817407460906128164117746815119946700664796680893204984429226688817537396021004170340275121472341260937983785644956133348407226565766344633599662046335594605300907518978258098096437436348512572237322286004194762667896768090615074052635769525233963409241124010043283601952541026330142913965567845990300609257498542238630638129674539256117718595973133762744302076304020400733169603598844684829587236421961055242155082306990368801686277677407792928269371946629057641267380598990246946486404404660880698373467861796928513218048904594048303566931877234802120908138814161815827370718628829941494872793605112512077650496919841317655733066145002039959898216731251646399874876455435146436663516524309995361559920917863650429069934383261772020045495728029311340137587973686399334754371329865403509407988410563231314087173889735788727955934558247491973906745744961952948066848320945243518317606337076137392421312224895508011628599548217394781385633029282162838834880577699846074479882336973300111480261704755957844895671804826890631902716871898120144782629904957187306250382764576569525011794822756877559896899232247623810845736238848107747126030624732721505048651549268454750842565799585612957726444730264367524037003603778100177879038494789148452660891013751670032747521686495566916999998288096798281638778264447846122724168490180591767841818639942226355074888779724690737162687014846321147888205902029105348835340927685099347637110447184353755957650977094119868904117568185402217798835025987725120476081638795141778283144107752015030411659437666026694659638792814064316778155332551983398694721997136563131563087902707670462973477258058792326864387250359448182507836480086938427415586918232104418421032097658234144869668797764636125892924720548185374516478186209637571282013664661691716256346114668352485616685873565133279408949723600834577129237238906948917305125960780119264876075249255960312269196194745982563018228770118060090838640652384535115648750487647279803641168090635387458666343139197606103209386889145645423324464369238055174454783829202900733013495885776843485801748198764215236366745742760814975179610385952513216498850519657998528064986766808334333402811228064597736703833204449169290082108202128752451386087631592360051981758283229920365886602027982797758417533669221116352879909885698160377005669839767306458090894422476215930750354419919725036110288464459227898268605432104497840588824164480297216908652493847028602422956766824335353204910857035665124456506016605502381774571102120351757199454250545248554460866679579535775276638995527059174933363626319625277103420147047629642913354886330789518619001518447464583432451009839307841122984833627064101533312072075657174958889507466603956049878414956119274676284724957071174899525292718674502649495435546377342614370864222281709892938390725971521289984152863452588936962606157848307582804406662959894674142726084316619410666664383288145146522496814543420738560532151691005319481603707844458980692614020928741123956729055948829511058451897374843987063561077625173207139117084631515916195486488393894590240340503283961858674876335909859818991522839035791649948537234055995441341000176649500612971348118136787646708272284716170012369412781694830723937732515645653857019220003255819993603345619399958316007905234789374652432165652462118101630004805316769438466859251916384267610774393634902068486459444678695434026740890798879369579332888221845568025198236946467949123639495127177893487404767488356503479724389885067658262125916520595414342625755540739246789762223585508453515320789561259424360958064571155911045174077084371224931459877057690332908998067201199201332148324644476424555914287852554934522019205765269304459702626466905013935144926270719190587118663946603709717025232195857171111302426914159493175796136228982193998748569700306960291639400795734462201923821810910875190865634882441466095431214912820607528565398724262507876068791142697312455504836163309247160853561421946035723044552562279164231204550228628018774256776742131429191917425788998913586002223225907014341496249149509450050986204170064272530926429488810981369969086582235304950393724999558230315224471760042257633065006382856728560930151134561266958784865379496551077688698713656432490589853256246321627523574586335944853663194079313918538036219511582584196841797043648772319856053931137843375104898350848368904361578677274122667001124914909011294001850816465264509663981803135817172748471286358943359479845738259737607959788219774723778455915722970876714208493093841788685654898826378589988937865932577948734558230127713444806571115806700131851378930720029606359630774174366064892556972298873601716831177402818769454164704556598613809302074948655941055423798129836916885076238786465066004582144331584629242612747705245666170683265713075953810322316024508676712584788904272069169326446673565650399797005422503936080917090394708062496667887887882725603334923292648212099797227714149160754659542713734517677771248567642467672720868740942191396974101449003162980211417190307462104374821004762580076143521964886733775598554165635536339989703487885870278640157195050755805053006204879720804705494240083466521836838304943291256157805223256323734394639242464489328197652770511043275108662298073513008191535743701566243643362197007291752511042527501138072201770603349141009748486929283934680060004632087803546148330587149573592022221149613485505697330065356103820990622948245023594120476152246432127114552515168844545869621476726390855175605762468705049257449887298949925001756523748343793453996078571190162902815459862554712284788005290477958377334510946018465582231574603867863348103227372032230616693446882007133905207913459825736957080445124381407877498523081456428330582806001251722164312607998663036695267806067438708297929995701587952364220143265321569835316955184741249286511737896310257872183211222374400230363564196647934820098992395215830470023337600980553482399276611186055999294555382403443347268937958075852218545798656270592878086972494626871177375925771974258959525311787034606851159187836663074952281311376678510445511803119523223930393142327124778755594375566231279601314879527009306244352992115657722356308798535616177641363786176103569081041402268768431975831563528035579559987600723345119709603202855428790380705438542693953985620291243855537996197186714184862979071332745993129717503370221771719365064691446854393126607492741850722369152659736423732336463807261179725946277427319844555967137260973845341291549281754211645349937920603185100305317800137979908510750499158817168492820289720706425589203516016963902092698520989781857686150580683136950820961325472993286959953836756980614083608040964722231720005228220510671628715629616652715380873059367598779876860995757867981341584659530801846832091254244035713091380882509000829898491795705510172434924028663692997993642224186219021468633410232230478348168830023522651792030115419182877566102263878053548861313083928850877354639135942307275882483879439136531220820273692486314850475666595254723383337044947593880002020820294172577780518076609270113517656489393697457613044924510108956068874772330782508546644269776454761879959401972955918077609173479860756689383242582187533261856086002203866628499883906781555812829734876062712018324860050654326497293777557731236288643390857512353770591505309016331941781896908069745785142066902578709765759730792173065405192029224681848627423956483280552411120949573362477803005832087660829491198653964731741254849291270074425518458899279496776399777782170499710074449028467591535742970214906541542264394491383956413376456390686671942585522163437283639417233795247035759775763551706654328896846431361984200765825844578313085003630823618113370155138717525272925937171055884469519886031029499494783815845315279628878239071583106805111808434066984423000106701203486620722608118930458034825093346999539053871160912427723555945921665202574950458347707172928650006290281068995116886195819143680017442011387955981106386302481239381027654834103013714318420431497168123690487241104065805442937335716709899351265153800193168340751211214332963547876450180899280406901928126998837069250388904714345098297903812479459272788831864129618266852127087296396100540717059290977568469991918758617984196707744915245257066038934410712041350222377739957819712662299581220555830290645788985936447836503526551814199397584650665382727451826864562896345010265918568999551519089993339105474055081829150642794674354301227033653245329718593394224828647271003110774381730653939716928224929019832665271773026007222209054637170045089845004929705572982135137197792536661335112714510390978885960760421894516594923285436970356934729883233298289162846927561769571661397822802389439066058893125228089251414125030764428825607105354459534820513778697101359937024110641024551857923454891888090025292013533068944411599962602641961608935134256225335559872744796397467628342302786301115046273982037337034173469276240040544342240110513045881869342195401149592661752409861667503393165541043460945625701981053107777263772504183273368965551030620715041390110016555054117334855674308352420373930641736197598057980151584260614803386702445512829329323100035954495812912601968861117488444871637341332073931249985160076655187424411853361349699713535669050894575014168157544473094191061424821979044261515736587993519755572738657529642696657574412768431615927813073988813377510281414488328795366205227788837847027979804379895461819620600260056313836423245651992709559094597249802796370935516776514672834543159744603440943291488204815620687033812014138422717792344934368109925028307095608450869275415670925197952365409263247411544628982755203250928391705111573740633115278924787324843142710711337062319000547975993929236582016072965771933450838936543051288571778325410731916721711644599075756951140718055702243804550309023341868671410494281635642004228409674952275870404532693831316904231962972464853337129767046471672702563356954257111897572137708922660204091696912877887653522591946831033590029676133181568994371569500041722553342833318987934594061438843146404267855139922151688714830017853271474352078775496371252465385177762473925059666169606282024554429938733032028810296187319491158064234329813394674146732625885723593017774156883393337503537083592951589865391029523757745328850940348940983469489876022238721514429522534522795861431440645469305596396766595757620990517956753699192534861660067552491352786402094482916766275436431928064548315004578127549193270779356893051167281624112368446132606984706740878588501393624066860152193639396998965015240928953144400358152585806508057565216959477024373996755087188477524074109033490078423622749134629888179913020723121697601212934779627973359618370435922278007046696483810381726846905065401253831000180707773368964964736803741699366140606830160484488760464085004300945172044300440539526777483610466393331663171483393480306899389449240280605395442669570208834731421188370001373683792351730374956066945878825989949064780484859783654351966751973957766472164307641554928936253002287013928468940625350085913690658496331843881761642814661206960857226848391752731475913933775221648326718936200045118508869741237204694773132382357950795775697004461998563375729338797830786116987605104853683383523232281495394109588539968520987404618965558884418931418663219155161317620223269363964023469882685408285530269734011514295619389380456585065648817677376652106886194113878070777524377600945957700174014369919027353943417647661844938657775380144255026498647196465361056144385808740836306269101963631467089983768777548180110079504271712118092393827803384053274185410052487570810842940380926894690673572272199673856084614727355011576189289507087804507455271277199137591592368956545574114866189700425758595836535017297843357461279173168902555842779673355436789837263435811388746983145995708732703272957877318648458228962720047309148461654840074422356919608201496678943203768271219024804991172516113268355147926549207267773283282216232017474946299425930630854083285194307323913799585893488513400211339522013946677466577702991947962853055860428349903404604377955710664248352892350866092188161849870470430779584000411262260944211879941937079821025320610961951667214416086332582752532422977981585910650625154814879164631814379530455761325999652440773345870340246476335503641944636793963673765324189100888373916659165229714981095679324459050874878666339585069286298997464129531560990721862738510244636651061279514021758469898628837292266713961098443199031764809627236253794334540137012127461051390601295687819195834317998095015597416330020712337996659869596128466984346547040794872389384395056002598654409531541656000378409247125054329299596938132375520450482842631960744915530149868943313534544482596794307216009087566418384989001881774470400266801340255849297197006502757092079456390515077175557154849684361968242882135646935763410262439934535850097983884803864872692927152860650302525125630380943938138513513094203985053102968916407986018725693389696915727332588695333639615989085446809082351637397691204193127646006923126197832253763172293097170959842216693015887458288394951309686110630013490164823740299159027844647594452949440015223358838193300977672976907797382855080215747851569532547543391699090338521162031032011808873892811371498170476054170955045389352786873107582503016886549472296105103644297603374070008761526904365173752995011127412346773900640220447725729866401856906455057251305183526329419493785648721201989679334037280011279216224542205726356786774849040379778366169786352141866627035251358798256500057328668328409961743474163658615811537403744363111705287767330078620245751863976187284539668458257882524937404697994316206612314890027969561256041066857982661128816341046181127726917860782153417065953798151811775580793888793954065075420921794200545258820864537305611018468982870716895174216076678320866082125522590029214350210715290839459736360181704263859420668686690105358007729405507227430763558628156852790535968256906232225346877885189701423533924845492653970060368660510630788825736859955158720265123913832579661647805795551352443805002799876289466891982251439034156197101980937556971206481497371287662477364248936075530183069591848609045367441837630354604823760639104780730430868215797104426892263549950966638357290251513134125565849459041300488238527789916199183747973858585790886831042932647099005100155942296017969320169771962522128812763431741988669284307551885583874680426672435992051225493007332763184383867308001069917038679345365006233108456917944101039749160389229580489161013642782999990957352258052962174403053064612031956255939276726834187909486909317900792901255400265634577558154703025197280446919089198952718351439437280236579062647843999967266610829083098186352997524148497808836355028556132504903766982170607221289024608152812710236806979300675904072056144434288943839193559763408506570594456684067047437241485586306293759136594142037844180615796373206421963114924271750466886200688071616385717032269036451941119166135729618955127085712606942810903506330006608072877995888355635607865153661708639750813391024370433903050178625017404849304305755896493999483674156072422309819135643946138530567823211735006479107663005889130071257790924583137209183804347396639919285189910599738642946031590442525089715951346730559873805142256324025160612791526662430641199682768944458560971060657664441368687348611734803283649269376074834378812338399732123338619056692516446261861435969768571873352882242104906326639598686468518567635561344224539991216520927520708738747928227266384487887232605030302185757779653849654440899759066075294496367473274260913990731302661193776348035126374300431113862584524108130820908228782460946262277122952478991480652898509314404937373422171319866679064228833989359219412140008941766601427521768612149681234026408969868722396496864446922381122246219174262236532749598816521339255824312582727704834485268482456540662115995924281385537368082771368091885249633902168246667098946224913627174482632006237147982993471063234770285642108772091065173003888417860638359914689662416159869820451760514294732327599430878601468605944169113434227006581735111665352093778543221157542563287089938799920779751438588977934792321876644561206809872831066889948867774878078082610601704115945534216697540616859777006251650414783791724467767824737646458815531046074460303769424143413568274953182030456677845946058552346884994168548649256756925802538635369832284359203648686679514888699252411144526404208398363711889017632802448220667538079066131378707327214497187119021182160000607358092609311376490420921041858630786186239789613082489296214156460983498197079701092979093660901499835069744875094866991106198424916444175958336589959828925532806851290129462605878589219812423788548260080477548454653017398245626090403494837002235558652277892427987123515382959829178801048692900185079633701352820070505353249119210495632776630079377244952356553509872641584969566519380608424786943519731395346378909036819695429366970345123691483552039975981740335084906984193829260360561016013634785661258777522065591880751527157902083118817790032071871679078277915894322300665228222771750180665998345957056981948472795109586291336406363771753523173720206571356922448059482269943709809173970723107640160561847046419876147912445642079711392960877931712298247592449200022824692429495491930923774613863146790272226509760929968430996229810108348555082983126897761251078437426250449782072459516246511411444701945150131572900401304534420808350415415898841933170859298430669992646642070786880330066154008274331939848658066245694335898187337983283836058172566641814626268166229554568808080978897745774816655326259243440938106657249128933250255258459185393506941370387066487038231127510048675000671529413961462915285386598621054252222452301819491162214560501181409669345655516504443139650163381946229818108740091224642881058323923946208641629806330128076267120612081570091345022228864158109225252745705502293296385089056057680901846019580845303058675920224124352054375151832326927036813877972980785122429418738215455997686986609425547928997786590432338511430429469894256507813137421064121050443371191924651884512253391450781384920537539698601839720518778947183027470191350572119535750151370338858480901615887794511679731293141765727149678346418930498916590519219042375589345207724478708318761777521262110652556948114005000552547889897288095026306355828856855405155740337461825202912701895582962845023891085687972592991376250955361490163663214716322681114322506734520583065663270353081824875657965261958889043571821416721087943983894753373938018522899583025045123167347007310442524143985574087932530185935062941231473913846354696681357563967697762210924459141985557426406199801174285325939229918478449549873632979387464134801328813275637658245168463291458479135602766981115897296532624469613465643739895642562499348663078145322822775288753505269491419126831878039828194310190486418067965925067106747956578693516857284306878238889895569826276156704703412778137650642189334355337673666748700185207314658005344256975483633156930825428051310556700004125537747226339825186170528904451218620646316319757779825898657216939266541874768646339986844426140404901440706295893044319854747084603561779021421271074499804107143300039051583302963021985285900970624518001036858161599710805341648226459499320388084223192257021938921886145354048040224676891603281357255869599238851171915028974022599014584737969190157249188533754283299032225243779057278225875098126847236547677352925839998650541740245266428313001922076452820841443404499916893376777078766843495377147683159894258687327670168581948815298487939059964662202197021610816118660595712592024809109880421974015381447244484303858190184693548791648582607337830820612072231994896400810519875212339351472988216345674331757729994254095648883029175602139506990163011093435998908574489817400117177173102479225856004134906519417700988667158433132900723666870773319820786149567485395148271081825221231421957905230568115221335527218810231191476552320137136917632892377122110145581517341317771278082031312888366677613674300694356722467848006434147411008707594898458020465215070123265358948546073233537754690579596879158578830477661972270272602363661678011715623418290290225247921850884478373928895911888165280774815626302112069669069422039182197615415153179874602375209577158301457167677617206577180132690056163615716925030492501946915261285632293814126262799722514304256016930452636654671712082936151139785628085914466549477937158994676627365389655008202927012673969562469471830431904611698148964790237681379144931703159490105688089300196892381640767734588179674559350594162210048457856836952444084919045022541243409547257717603888522524507703054103500507362628072784368648165199800744274154906158281661309241490638870306182115685996234075990243627015439532136723885819271013024505386360455323522023443757305336379055698576617486878619309870347135642575533948842579527156036892338548060169486746190914945084532506352779295512791442240719413596487561180309252600312571949101901921815716406254240259117272718730999318565520762953590866887141939505925097094608111450276962108457407832684981443146110757404319070432736672938554922077192641089390251199920864576907136212680033841093383006123029388489807534454337787410700996100596267863612757500013554650871983870082121528103393491984989021272083384162906145529079604980095758279859420896812108610975008956936485203657102422664055123396015175766561928197365700942486573412275738594451198279870490220615535427353909390604022807771828095141326911437186212637956136939171063187668831058921959138879767096967443155843596132543958374908353855670076158228447265403665804762742385018563840941762652620534884270168682296062745841087504370611301319534593673796950147363515169418084397109806896487853744479232525741374005619010825599745929146276696654463271263758566456007685257053339613638073272979873812184512911894720681991277922032288800043493898392155896660003124628338800445000329051466494589356704207250393701809026682013070436456141005950239365047198148738200706587486161822196545858633667937553041081269868956512596449071733860963915305175612247013517161650569985068721167792490015755451206769694608765629974583067483896165903928301539279330316319292796859583302630252022667252974120156873518642984737616605313783733016239038467192916778086668834532184637198360643957275754275557337121892362139455044684427849428437862139533819829040892494693727558948857391346045042106600206450729597862584791992674020977203840160272577107150723509357445487527969220858868200267754262180781237078338122030052208296043245435268569416571522293851654722619263285716864153281453478136202137964900448881140524383234315289574399521948567265185214236389197693831289467473986146636596710559634553693045939072324238790154856608047054022601925005149974141504083449248994544939937507949174901109656652528565624244356280328541220733222132231523727149288103962753141950523288349774581545514405980522956517003519420416225499339355581794435347137733603750179895147124413940587730995948225240083518086433900789015343139629252645329730723674627115896504264407070833892975382007498256930232881788762077631776925329222650742375046739694954556781686755001362313466050896124428897337999494389293016461646142320999648280714202177835646883346056433620864385217502750950001157845232759727859533609504791876402070122520332613246476963633789099031663543485020186168139561409120782298458908383345399321266259298845327629059294736493107425098758493030310941324879658084843478475445355266134506310947499510211989166260042939382826005109572324704727458924871045752897278454502685107447622605861799719327962187064328844493239272768458227902868322528701831972646988558686399224397769378327157511697820208360053065472469801073407390156267829571374713707856620940263822842754097010370144430384520391160406646854173907422939995221504386137516510180327197913103499456089249616204417051171063497633602147809858763455475195245753725833647827170590304712154340703724837677359341382576111584640698553290958915231524390620487812575371824015613841618656566398602570016614370404171832023656469455706068205351978861412826069790791150444355050854258560456531368936439709602119203120676117785462164523419747410099134092764109390786286837113266212776808044733855458419530142145197013630013590713937989432649459979004317246655583118222303608919437120171011995101155478332170361418583558528324470268900905357060432732377621713103839914633634923047485672331014355159738423180159067268052847191425897500145650570504166412014760806175524670095728328231774083321740246837137917609542636691867319784411105683576774126596554996398241913184023353210710411726599775696373340084898505123288923274203992494552514408849188765797688613661512790005756969106158756148902006863250333705583397145480280323717622634557860077751614280005681388537774868341727820642848821764676334980555468186895380853303917469942336920605890545524377682386982277599941097116876355334684208810638474428191434196268805801842620061790909552982667651726711816170117998973893658159724400923618403849727105016404551840343024108863073580251729330991197001253448307789317479572626094897553372752189339457979088413678319634925746700437019733780378387232766050720454604680720099916243917756628960925126280567872301066121559420443014817555097181583957643481492511607003039852661473044830044967023704409701102063890148476714039032869459373848000393217642650252294735595332416893405096086778582093829302207739034927683609744580911283903434480867019501212821761302902801604766931911361176561547870234856822058148564694124771061900274512618856902039538224159080678536561251306562900287593627729095868522569046201508698340727312240117384822467058897493913782237511291834950498353299325010050550496834444783495023495532041411413615017710196241413925516513596850452290085892404658524364682992528715450798407894201791342244328302724436986663187267737064940095938720584213273922350763240995572072268129060029434831751898154611855012380573320278792093408361124017791796472760271658281205499810185816472579566054412786920332994064333893230081283437171224034201481530056668806306398355989929725282002423281193977678046267397492180080193212142752423616879049846832291645120405575756911175802041299596244690077895954755672400663741750614692387079490750790128334456223273268800924318986871259093113057258101590500051493114692875555246876883809389501022409456489403735596374974278808454359860901444207958920987991991724435038041884626447582319346133368655509337209052720547892512235245193966947089371947809954629231172801053611019299993850923698867523018059171149185253037493738734484448683853322874251238484177296140677950484271654534410323357797418591432280243839154955610378092827047601661531739671699106433879929582699202620650055281268079353017863128573220565622680560568672057747367087822899625774738878718781279198204173102639752672086301723698564959835872589936608123280620703391429993931350759805411033470838789334608999690469401281164870697973852120837034872540841681453916766653129118232075121409779898769565509951724217348296647400012956837612363976657390323768949319190276815037730992828713138300475223373627256649511399357827661889414828053794847810471451979102546512439395041622160365177256287181691007747595582625474299020535551284266246651920440114938629355576100435199930227402073562043456409323097261112626095913114557488499789521901901493131711494966691924589071479083009498675910669824094371029907535927097173506373865527328817129034435671011692662880558080725628411131717382678876973840939411440455476982940472872196317981414232763646034239472080042226800752873264447040777113018153659992976754275919348257529513320745274793689256295357944696211589982718726045823320579501592200281235450160721310495919471716602902395461408658709572147307074269850356866942554944510718884821288918677798154272298280465174061156928645234907451929677061768488074624554572320783094461728761998501139641777298761955789772535525313194708822821021030481955417373182930734556360794951096793353042202696572818572920355936874683255559620954353266852942936783098884600294866960104071834913704444356053577730162387514416030900532895831823700866222293701190750014016991106932302337823726784171945569323387730545068248741812771025405971189046996126297438998082163867494672680288925352553067395663700594548287909189610421586367985055433833455559446485711453690821602073420799308834033944804120132460417889035628952494069149366223238355408349363501717233527703935776401644959494218849649888185507165775016097975609854892700344899336482956596613946528977016127485098387608901923787423843467284321649561481762493481062788507415421852560180790617835728269729376044901469549929451820539709085722955107056456412011915213982835815611117363428244974405325554141386170842460931399794496145628071856415042168724890872220980820069728193459008591733647210759468419878316631109878315826358516914184180677383768669610021196754045531542468927872758003968275372021315947806174304945472211327912672411197082606362651768473533182599340587819599602458073685230499476823392355621124888443857871369885627408997698601070641590343005704170091118976988796772280889564400292875359199485096039708460833867123953828395456586820399368302789065600987581683413444809938448033245574508800215640291571488981303221957164342365315109363153032114668270874915427501897190051527251466687728064006590753484565172632998891658308507268788595817536049151425929103966903917046789097126360141243583026793455649126480997035062832469099593701311236737868868630241186806075558551129705899392186377377199227335383145945820989815412309717221262701382736212929489115688761876510866069802068422627523319154193342314962660675527065409993029830056488775824448617258803725781976938250981125914721698705970533438243101817085254403648470211108862283322934831126339133566585335971932673201719949268922673516329810196937261757147471427120905282374261559820033766150985105632817074488139128539480279269122596918698290233389786294355831817997454356667784441025986138565026881942147717029644419978115907955168496944681461992597716916323684679137065704640887740671536551731336304304673155046580258983761677220906296755321001335146827572804736901673979949782357230442971977208285481845047741460870385669010359239186232257882131945407231252567757398730811930042780445241149471154672863503160717756528978520284648947822504489839832277888951316169687348625311692253248467092015738298408965666148879959753733780264754849827337460192844796033518623167671120445838046949110050354076866139099988295399691427363279357911685164776128049524394221877601279734821102974278124875010035703472709157243516817970879800921946135806223208808572767306718158329322539225076827629809812217079705610867651630680584537708617279392881274756818623918679693747585371913465938275069934444825124674262368798706674184263814389038854271536165093488219245390734040600524160065952828655046645660038438873221960899044027925263952833521356430813628975548176156992274559646761513276742944317620457487988808719676064569412782640462259764118112363580009588028594687596262866790026598996409286647900019737542229776804570291439875104252762569570773450261340667799518542291848969747736744850573396642425554556141658509652477854338840159326708700161985854304206980112963019444855370204304319240457440599596164821396471890653132489869568959066996459067850615832699480138715644668928971395700317406343291479598055329349301733338868367345480979078763610645841768250283603532867976723221303842388689851776463248624049966401201004168619579446612472387474128957944532587154404072986323668133897530083757893010713049589738751805250679124505337385121400597835408913398161956970432741488156161542331501818886019101379972644015787937583700236327810634753895499827735144927993896680030819271088901564377599746276335912716755969254070535617705634480429111258862214453466414816527165113999772762310571708209830653539344689852085811680624367061919422854321629620452356171586181696932762714471441546462939935939916111678854146455749580973441245204228987686669427699077243877620231782822886484495057778102315138856904999000949991500399572310123857728097927934501027125191614360548655082103226067308717567715772981933634111950755827213583126025019941644268738905402471000115628197981831341875525601636146591138711275962209655197303764650162665100696715752369299389797513697684523668667431164607587160320346129548546488105537641066630991560885109803279349958977032679958306835417960128065101038582639237198011544204021642548349946178377230673432419320209525687792859118899422531356357105648662895589375184523991490640563971034566134158308617724525036961077032036272834798659411725796891709397846190482221592476028173534891382817974552825769114181341456055710209318086660029889897658000077122367100932399245280603284808624600943048837767314697527255743627629749396617527615278789042661587552664689689973654168749347728231047775922661267112722908199631398920663041993340130927391640860775775533805256076775584343345166706811402938745831024554201173465700698149424547260656244161357799859527397697242044118074394414368132301546994772193544905449857322089442981942956561872017758290465610190998459061827169757714322201405225079324741163228267911682172854093206341207696770585054299539877603507053578107362224290682543490621962513447299130486873913086161268743400507378277214302971984316156047813173880762230649292140728647753984240863751036703486961957038453750355361750207282315276652199554486565804821409668892259841069964724522787316432252950025613636856425518148591628015814278751411554530286629337272933875999532941182654907412208260855650837754501174710055672934255933150935000316343381335435930612254523945098877658340923305531079967968410541878905746269850820642040673910910707611555696192632970840759164816954434326744369433489536472228384486288764607876914954160785105970099266966090410163166362819241220552099494299636915551448514016364847724223953852812371778146452261040819809498351988018672420678747521997751863156347930665756298089083941011827381964002489710146550757218057799772265344320865005814158341376005625427327273598548325471633743185372121909055866002319320362418844247400720105551305989633561199526415832328467525235849016490402832762371802035283630581995644354690831842036871549186881591897472067300061376116945797591842979886743227659220145969749336602942593587697402727412953042614967635590536481608890380632837803736593929655615733362464843383923389656870569238118102760899698107645796172057771525448875594885036609051726456745882124952899610681443083306381793074204208588123659561652775465520553169699819434132644443859875021184882171621216941478810256233095266322008083356181073056502344449546433006698058561010696909631924613350180808543726407583996577656100330933184536000771519982192405270431336443427388507399861075935253586408284644878852138954841451085349805621353879013284746634173434221201196166840816932745423526843703989406764145884217800218460432213287950894663590632924686293365903237750115363160859786337296501344832699372411604853398729983883703457278007675136248430115753021277829244379450148893550911737466280572718158586525012847240699666987573764257518806730350888181779117996268374643470462278148336657397169456471948579513374021832126206345215207966648222614880049207536896340880566995574213012811286224997202579140929113499719944155047909006838777486300871012640323008730305060810658726971135083002610051359465533112141063072857641606815629514138365506997309613058075730368994119987376623545975127397305810398456673911497628231708262549031800656975711145826172831910379741761059899955867662550085724168160061209606209305176914402079495298072307102918420431373571580144923628504327451995283861729818131563232234846035215775947308994320384250741791624703573108398820916486699973088837861572857802680974518249191937346727965247870764218802132130099746347351610418461882341776090271874319113218085883253565362224303270212353458268222079731375141666085592369896198065788595501607268282032816921701649247756869239192180821548857496360467456207940940621498974922875104730270042716230325782162658867796912171263748641417908157062918487155548160379263675409925478159361948465074492528052203410173117917426123914749552555072793678949138536755306734990466242864588632854084435066797843734869610454397639523495629223181364667762201111659315159868199898127236315709573016974325184457976014361008787952092606736033376454762142728634480763598721822014760831655813926755406452496655606434441323112021331089611986389431261131536250638023402910040059484647790848693693798122140079074056229134205631846398118816701673857822653418413215841025097667557467772870325179375817331202601438551945648891266011500550574920180521409724738965737865886588242186977456711777652797333297415005995379253626919168731060639534402512168514225047340704805043541349884943215756006492171375412505844088541689000099500435314103318262992102984966399682942940539997561823212942313115671196763421603749024850408390439218556109303364350035754507281679851607537673766050493119469472316209143562403968635470905696029828341769839129466885044322378019515987160381192727163055310855643667884923029033345757672389683934062344010542190404779771214317146288025589275741015901941192697968525275831142830042485285317856626857361571425827955533928351140895453941740397221778472847767729479160176783179233733995907320060940594005771970475856816923142943283707724202974724112447785420547867177630856476435031402879809425855988985506553849779122582549993753150129554466322039934721924873038844887146201284301394056038356155584789424469302871639559416033710174471746294928708333260006027272379114949148278764914175946151815330407516731697299483191512313537491809114165078467687827461012159713089035066316373974038750575209693476620198170292871739975879988170608341886957917822862922258225654317170650701409451038328741093013456075118445734868236750979667630898052096599776578575795004246271193005123284781921143081158822723213808938034501152311524756054759391853145644313378395646418124790600554299025890574389363885627460807161335433580494459712863307976982850871297256503054228176715986860205662769292495949785997368864927264292409857017026526888406097995224712577294434210936597073647595994668476573733569310259909509006870896924228504241281658904765325496955173027183524243838425899470076703295754219921993501063194901694739099384327956571713411473509896174084896898746966809220355586595027342900600072744893189799911415498109810699346007752038856444109759710852650030036978881359832167900737407078656696791531576851438033675472733147783820776191234181700121372259918456830475530126781486894478070746148165044959433491685012226251877068219884504997276679289924470109907269641565138202341349844324748319077523501383189443330143324941930623311100908142380521970197239689933573746190195429758309444759081699533499474843302980347934135514685917960831648041610800161013726910575621713130049317016210909627704648744370080675701295845354549523291734658648193012835542142588530464871565687965027467607253835321236809852503637537133190607131724590114475762310061864986278388489156638732741522240858289750631117440751330816085145785027664245303589560368333229640730897999716988736575251152224426824313338652836146112691342346171465139303559203140663805997358922492419675715557135046955103228637697595865820301640402913482364940082875542168592717525885982837806539160705619637562739221643164165590352360105483935077385275391208867930417088703227098154929231832621036189979195552425533151761021059699710900721305527195149135101844161826414426884134221471734508826091002444273997496553621311169438775743218606660769757646862755759160276928319312464126505821665827377275623954390035010745946956763169137390895157329598709855427129620438058372158352828886323490945612935348401027096942334474896095894603524486819493827924292815852952204685206707292979593562252217843950580106082375378166711897011966784588413894675652447199669940958657192371338447292546947875584827623009495010502679244377253376128496249399089185921250015461211918124882152888270029826965969783534536079447635944681007276165383500085706288219708168790094965191969614625392641579506429847595377236011854833988152537112872048260677464946997314295530020166582770286213236050374044807127542467662311360054169663442305226421866881551423174447732779903696635571660179903529439914470003918875280058970043814574256722261432151584866827679234607358059513503689144713450857112708053085148856558482318061088229197104983213636538504706519174786727367746372939936730378674591772064108847573989160037521784107196184491483814443957812266374759707807697633447652740631741976691970925084243920048922726230288768344194207923530174689708397665197141148451596075838280336497114126735560687814199033821859039327269962494206345338989160530044681593678057193349306583887859704424568112897950412737588995032542734519240961200134339181956818676548246857934971959224285468015473160919611151975099908419038858021611426173447251013507108345937137046858445715551447484187129642446651208951114898209826341786406511802406347783361628119534699278062403250505310036479888975118025242448748415210750623195038775526289710143740967606311865253813035815611852187188425004252960717765054023967750600165075659368636108171457785293610856211725630032273110518076771717599438334351299612284357721920205938419072103611882954629261830580069977774876775973915852480414212414078349709094792564049223121261934527732006483705982627742861791705237980319460553960372390597541484230476202082915750990101903583969264265815601369720444882200470165238695940693057123500357769655416026582204569097902348448964288997348433923249024787695824367860537414753859553401595924048826306272635181177151559141798791266260982220446713547738313524091717211500487759158324724312099848157418989979305237482679791046888449668548500576413217400312949468633473985849573234417816947367880855933989567035397811390404956641454044148027819149773714591042098711283550644630840553454705911445392027622121434562273098194525400839801457764885501549016260780235135191185340951328835286812159272103243834498238615636839152938369925602637510699826289948895432903959186363629257848402797595493109403549410627062433374438287938564068135029872369163309109090977340441902114779433046813819048391402236610854474282877212980935347415211556221123583890082097737564748444946961087881952749456990097560638857548480784389478116509202538885101393416177511136977589939008684614286531058170787413444090245600792499238000253068726134403286479032738649193991790761628022604282439226625305672157790234844262023801056906448150701242654870982881916292255312317739862447439868835849185467567516903634572085194585781920821598288378665791722274047379179959761249032589727359322961270601388156960257901255964947656739321031481799876990131399091302908676211018744237681962628138737090572239229001801992978421708919683117247641427704552137083355707248015707016589324665450526962283980096514603003302831629596546571518151927411819158110249356470963814615856715313692975428937853913068046647554580626687757591644218601326338609755125093923085484585914354547810726364849422942182751905980983284026987206535778301256419062071172705345224052328873668242332449230433679338772819587985895321731051810463181314348522112108065373707234933266382807419635455850163913962592684651341369985216616823179253458464659604460410827593379526740074295344476770884980176337467761904553690274712956181241370553153695437190162953479862687672253500408836423910904129369758325182582178304550707048605032409723967774639345777095818025058682521368027857543878869161221855168043550776457298983625423058612406270337664939750195675412032778248148433198518810929370852517187171494732938430860983486371501361368874382200902816957167047540659352640323964368695775591014246234862083446477716983563497805763489458746203923378109290590964614936727614262442172419100802346824781888445592033746527649721747341167871362180953860429189741073446238260425039424645232436902853606669267290158101726930943461221974666286697738534438224882385327360191909586935231802662995098306531558603633009174487734662263596291968844931218369182233556427649077348989280118162848684705767996064571722114458465460974614842875973356384988138192999556584840834574218099776471774931555197772878383695842461928166976445741069252140157345090295468131750200266862275808307418213567646343422644433573827436879632302534046807913910646176556213493403877214693018355311072931123130011209757654506599745420808722160114353867487855837385847197340339102855694353525904067091869764781235577630708737328994501680534948296607080896651386624149138097478391776244006331985273013953018738314749706117335786521513273614475156546725354087489439572396736826992517330309821137103484340189500627200756498857397030323550916020746263490406101846947888446126455023201366400770986343520125123669391012259565094018405724662232530910222716959311884730826761398189775230256217084747994296062527121655532985068413504729722224682369292833753047449686662806041229401330755646045557797656379238118394362967728352583715577755433028228707644468639785686585562100670441126831112875610735156213763811307142222234745790149512747897550101170647416660945899407629759567733763279502448127412984165964038900217068935542950785360394197987616100139216816089447239134300928132859095727915792157617764999551854321171898986157546048912271700952826446680112444364477542810850686119588555883923260434042772015668285267505650617298592292068977642297877870939245539101091891539341313977954433210779922460321365180806146524504270061152652571357879750451813773388352708678519255772958920076078337061778546870576123919307677160467854689353194905810018960082209063849873361103595827891530671831104354475277989745640289079653644753298277794992451778010222713011310646701864917504759413794537671939858927649424079447165191666867570875379332642554685375196823797301304261782658483998839322160851566739794397769473136881365022906259454672971501940761936204977349361847895130106112100320153243551742289674018484764827022311328025335051407397717553343636961076965165351527638443907369502582182577763607453723999744559385580059357848814674681015157768272496743150906811880053482487932735586502545143568150992278595575491171986874775851818130003387020942495442543554831583397800666797204020557582033234478884698152756644556728904294807669593871868851574480750025194031805347937169190592285472585697208774405479390441795077755441867055381912597136024949439376138180449774482953234739891124037203757441656091408826342399972316557330247044591401511442813691988997957951985980156513781370606733379474536623790820507509111335382814269139835756660244459008894246384498450651079273419408832871509087802092218605348674863579917835381066727198081624881020913716510941805979948031744936712463786865773071605001926468563101326349585537176041901689177608188575577357002617416821763470494102015510646335201979858761362774193673027673859061022622995486955644823837121576154797589335863688232761822983505788781687980900513337692508441208398200021449635276833921109034576615479261190799487051135819565024667880844237708987072716587827483888731293949361270813683590548359473067689540031672047562887266208905432917952804871015997964179210923774998637172799739906089975651948452591780381230878886886305737062898039169915168088294992503771950075381646844337149707910984262006193460234665214015141797379836581334326674453193250548029629321556457785146457418243175106006366121022567921013700578641106077156341174044478951719979427542133240919571586515988438074396395440467825347346152434182044327035323373383845772294672685500331068194805020118151917078529313196954564578589089215658775944809647068624881293559650857665150450138246577885592152616931019988911018056897442879756210832139474112403986840081362037889849166241280153241952970635517491465208524337619303620574319426176987229582436848205722742059054835050158509816134574275458015538907293867105067462177825277575767223688184096631101813497218203163074176318289599537241813961297383927043647924805867382540549535350618067563990683090506858658039316055218553220569737236539973034760970880504873252122599514266357757864209130458910979852694815185083231439935350400622353517373666000278262368745250589103099021546503357085508734064491290323795186042467839849445595007248773898940172710335977573256427358433341487886977702136727690857033318030461869700544963230980544040325623380520400451345963330399907812788531235875342145524835909342027010700296893604245261180972091201202109921890157697683411501951639558540201435201450271351212450126351373336419342604850985893873768779965547258339052639559549935997318053489292703004992112265500042828686878085227769458280654856511482104317615896646489511386709389489988217926105025156799191328660143743586580739230689831513166645726535614755476644514450665424778772106055478678981564138580747929182960212169808952828135037355299892298355003569857548586844762016201465746835105250857076129818016276513567337670819817426899276398385041040121347868364986905864053632127739174930890720061622432908312649549427937568973807208772070568775819418102639918760846555408368286024861977546615444101144957221800434002164088732096850152576146747863987950573920869175053710667558972553103440099974123759629871359277838892719331445803074800595361970036721630009003252582469123752500430369113355968233093173031723668349331100589130653858206038332430541990414324043310755673080267931670169024026814012156888579481113464769870941447766780518318872577785001233385459732386784647895304614049283624416989872890741047055309732700032614024713379691320278431830687065612698628560049648719431366463750704829530991481588984494480872565616052949212403808528105841709983961101654413191505822893365492276042432122255913793575143749331764555747340596823439526923036711652310703325888510162878161585940267199193397843176124575572058214035053134442466616261917097187365802001284463643626170109219590619595210649053889359302983322140407156763582469151974554194029463801583527109510449106427571378564440490979455551486410667139211594131741794827590093321945739008711204447430546706277825133122680251272958550404569439876050406729840591380290971301066717192013132986343805259171394802776252356317136176260550110215133374001042110284654855960469245998042847824013280653055193402459963027128745561713479721249438892803154200156696573287461009554807973265903772091082938230171151350160326333175358880884243995206190625191368802695129693893850918232731187418280154635281280574765849746903842753231272788428361724540888021287089849359725829048161130215210265284633272671946283826662097255203203900098611766478088395705305294783746166289354458877211031486204795947139401361327614337638306739776007454548203014485647132557260041765285739526569531697372444960503048268886629289347413249292793019924131248061415223749384333525797284547222836699229500154031696461142408517041967542968788493730297400067896118200597342980045221567967067980992748284212274640272602916866417491334257108999245693678418840942066668744580800357136713107569173144575274470724044285024677781150038942689151282417623695036170731184714120636847755538353339989975387472216838170825191245412299163720294849303932146653909315228466402111294971172416317490636845403701990111347606221980111866261836717207825427222062539649986582527251515483396274070663299856643774644550992290681881536735285453512133607794488232639649031038491023026594123523574074411919353281434276479358225273765673980148069055789356944338111175927501019639241083925729465265738452666353483541371954248846708878408479276230865150252748330494733996957413881311796373505055458953402097905401519735521787408669507154677550805569411457612570020710450721741008604366400097675863947734032187353916162898844825183354211825978549992414459620660593605434020552068693758947528494609670659902682908598310578188624542066063780655397638533646633397362205391173314790207644264875701052347796322077933712705275918712844725551948633386325382206397313671790387013316378137031258269423592227032120906446068829831840930371802334917921825582379070883970726951408621963184429024235596354799680528602216100199060146614723547885960425106636883215081153894942158522723799257755023332466133945976783371003872565786246723494841124204807074925865562827396613288989114058054846066583525302487470703176611191977845517291351545592581414575236405062483933660939367494626186302633020720308090758204129121084956598449943408496448410890855646798236827996831254100517469037504026030264424771495593078492394114723870649519340846706521991032926999907617373613967208080200753343814179652478313574438316501622355170650805519634678121613006504801291027056206431364004878473670457477471443853988781156447448206954655539730677306136777957706334687415541064183199294041719864466087956574614913352485594727566426270848466285841209093058100841328344689119183831848730961556274483774952538275917359846026391087071429200702066004689320815425481778192992079474272836913705246625282500691095536604267838333690534384661048129107347830197925785763214708685223914729479348923964279596139184853444618412672221689425408293848400036175133673485352775951537734251876906043325700930187072509559316643479777321099160017027259199705590373366908275541255233437264016489119845829116640595509202796655749255933222649806714957130091407264026742939802261265199493203500905427756628480794935183238493137971209793264789485286668538110816771812015775845010642999246512062604495374346491671001507923944006616592908588438859120050890324567536645822642603458840157335562750294633148027545140221416043545257170261967554681896044064012832113307044042296770208254034193064808602867701939412078328816461488878872414283637403042438025772995910256609731283777868379698712584837937467687779260555563270854057930125901113211874477290966161172913716869372059688842672576151663448622484345495282563052528055042228676683849041208289310484265766320871397783211999807755719109139373368184660931542329419766365021652395541083507904253584810463634160839098884364641497564753806333582397257797603454998100236971080560719137182655292571397067168768384999033950748431014671603898208461993137175763702854569255473863228273987491584501054626003815739119858114517592793871721226513726519488309182496085600847347523293575232626603677527975869966108369273833667805843761199234629657555308258237555175835865586546871380449021310369258727541179229748858385753144737456701619274353162724070208997384461497285709672535981298790708348541896875880452100936632357686699038424438589903423907092420990019911741944366252644193170160952700209185622001461097077303234272761752497728236466298881230306890994505373006532586595187662426944801450034871566547033260267913678650723043921657108792405503564772350973214410488745181451334035117150378637295373929149926424246644833013335796139170541500912606778618813053480364580037487121522318972936558028187267365620993323092345583206812924324143659324140477621230871415898816438357265811341570300590717420041273056760582763923977156740017829326877234579676144927406675605949572545547121274978306614452690968102483768900722881176477080052535232015490431346391738878690831554932964070483903192372492269799863845677509421646254837096427191247298109300817260437184246327019215663987555318875260685226171095428129398562208922270341305403553965131875935794120299601449512689202002841959503929107451821568689505350942081641702806402006561442319749406252933282156599443199510062413290678696412934067907762242079735095505189391067374707571711334463481729297836946005826420752714205695483063588536081637656656342385494035206745719010713465743945400805184128060483185500704371883560570186422683273526822236821148065275107305232947617772225536796428256873601340936640248103873956568593160846784241894618062263810863939337491596951432730693157008818598330304389027383921890518750713125223099362912558665338400132771285983658374063374907999238979395523072828448947038970430731960348319584161674691756541332421520369969040721759631331623195200272503926291981449762068012512079557302832638929808266099872479369455090293896793659684871128728947686153894950164231001129321155228191216065136916423819347685299933643178694102425506194881730550529966018666294890844375125349477810713508201445734632650433533343665008320271296864878888610283707136362460634195200016608975789888536591173196127970890997098240106328923725020535465425347915781599112474052710685095041898853078436477890877015422607382661695610180744908520406242689923574638222025523449580222564987661176415054682818325442937970019060303464817882920060190582703797017923367143749954131635698064923101940410368397161505703628023312753456246547094934459906502355563627255386733602483894243561767009696584223648421805070203359105551932461363246603888524694943645041810027300225382626238121164051217331666283581836794398304110413680299425900276635200230624785135060393423788179492104651947076659449313217870677572352401952072376993895424879570394850001456528264887569916898501847311897319874109820123846481770402732798193086575548978796823650660409850526107598062162579444813818165954477692650650778880379006176699148729988603987762606267024441946855166424446122029867144776834426684804214910085332118163289195832464611722199491379332990167546240287437479149411585481699050557733692934181833392247309337434437870625138939766853276562464005691020343510323372540316817828805624947348804466419471959655558424392855679658984501179194910641157372674020194066100158866053267870642775203999466479916233134817616542015985859082160420683058329034699477555217342167899059534142069818314886850734116117110171358117367205010464908477288575048383858974707608217562559962717089263190282765474974060258514006809196731328077213297583167744547331797286482742344202081429870646120373077169150643810762121527385537083550338976320576747010324163029977947265553523640638898746340539077116033450522379154095636817290843778840676051226045955911993882973881626702250913900295818390199083258442024278888355447484595204988897192939670917220372706721509152537137177980460379170612077861777244605219808014759801854313515224478323626143714632423835787756324951620702355003176777388145196274128552189069847045434134313228043708078079718854287769632107580715296815894738922546812595961284386023834750804502184547198726862062902052276863828093909013690785946288495112500680800667940755533287648523423310285053929381939363162636315655537805052242176737737621775644095812332871606472398796587651130415176313886885603309221424460156458465021513104829092809437569950359471913225750450120397007730066331017738999821008228945523906243608491028694809139397043215339404092733822359665021396142059153685396170650073898244733515190438198066515047762321846391962907595432391758112564931821259823981598110889825942028252484247567494151084800827686128781685310113503624305061909051964238795526766545035735318403704162438130706227248944143125312574265206952969549615550449983974998391640117020059017437083221856180974777731334113831023044631549666569892445630753431241648284816025265648494553494473030408355748503652276633233229600652677929612839076847343735843708127821253585004859596941116936094433263475922814157790028378690169258116346103919137518910875202352693210419414025293209211309051642834392375495630908447550857552863767726556582158308037226396010752106509992740395876003886313372183625772962867555736304888830478125544916358992437812267385482313125588955886386770532364065666631850848574714204658051417500209859567179417969849296905710267259566145044185392901515219406433815536161748238632704575076136948261506976263284450819408726321014432249745447543346765333078860053378013781271771838229854244772913443206049081424325664618293486695729978194536883956023391715572140671848094646619108877872332608283436424661977756576210235745189043882817742388615924743592059521344737795965176760238393298181233834360792323653145292399116795242142088783513110135144543900752686558041119053860979857051342135966379686504829484720105562242002856195731518871416287649527368981894878928325887425283022825809885421801954281376812565217342266562709410522287648171079413702685348865649262356304957117077009805823962612739403696210326476538764718929299817874013757806248598138156393786014156637827262686045547461772147936274303953689422432423065721463305289793741002961064646280136126782841460557049508869646427024797238171672480793337676042774589928380009427611483436631288159164614260300346967523520504411973060615868027478301863261219442024739680252771207364098234494570282216710039407866042782908884334802204064188901976306960927146985035696386348709320234035903033944303419860509977625102082648992566545509315201344380050213480116369246454233889602704504706230482287116025301447642673410005695973917736320244180225669383000321398798765467587232200771154041163755143067097487833018589340958366210235473180698659349318888009585610526513350929583195422836467770035073998154585563509644762317668435026368038174689962008985679533164691754939981663708154768706487878302820165844191167210799374250556563632572350887070371386571505018091899397422340729051958317863566510124754586976005449399621472415121173824606446079182487220288542491125225039764702429413608875813003146572428988061873677133104702759218941649088944456024246421923035599738005776743303343605171938219530406677411049995181035803522243908662702808564313409804747814523328568156695523395924175343385862629470686596324559587605979753385156171153686441328771210181432828124343201942076564769942776351640283393187143475962519933490849492029720628706856827095493836151909765724930655600123647727898388093553041675177216664780733889554760564272101479828808154189262345021492646967554174194298702618325010979764938385669991912659498545528178811276943487398557025322244716810511635675692459577023096605143394047252812291971533492779356342538080003642111723366070333335366984449647648178156565209934083704444559453369638164423878585871821781752763990237372612282632783627158948881012136090486011142112898283453210955362175684972328716877826274904013479680866762678021406103609961733227316638686097747318240220428689572185841616874654834688271879987602834001192637235729309482276341637228359254543683075865117080734745713356301987750548076487624141527916728208292259777297343453886711549634297803077033491053032346011063470320244354512426371006844571690884080027131824172212778699767237887069519029589227407315223754544355857382398953067454883459203370613657458051616717878308098333199980609747477312301121895370993602288038572306882326015519559833662929656154278297074917284614114323589405776710684370658384632991133482827247808247183757541763259442448276579632089193588233120947760089671837285093322417504439612592325259961913190314276540803232758154090574437001578375711123233301509976993101483749164599503203673763305752944143136990953670614537348445189856050292704492866106124246697794073310045275991476942959299554023104928540238700762318403791830077084437342774240774180841471513265314798791977113997626395175581460688410987350798753527027571729957969161850240214072382549331489772228822273766770019921626770843081674307025747712551214467538478956273555283150192212748499365597787164567426564010755445344064294709770855322144490472950120224897180417050049818139520639038702856875981061551637316949269539477448174894266780847609867070965102924607850062184320701317205613235419534303278292635686493710910999226195695032163681053220269884477029404270468108675087785398630445796877872378276003387115409419187469161107311365909929752722675460586892854359227784832002676491709749347742471290547173186101714876816075034784366148411815581111544394256993089733905802178029122170363102035720256714765531931621623631711406094556054548051572551596316159097529019159163967786566949037046227955987188205598819236862935226610804872953618104017470389420924884075239741127240678945060267574508733914379814923022335075215512116872407284534997287509630197036099198920363879475733199450160399630205854564108289775817321076101487340212385838524999211187792258472849192474342852701139822215505784417987660797620208012298529862670025128386537041194685225927011710548516613548964651326637238254498099676885904092922805904630689317720504779462756919894718861223659281128025375430414346988362330702100574527546631366219421025728376980053560661197712245226865286032791105237557721742223975986533333982092182099306973901125926919742565749908534360506315545461036739945361076528873035040864800758232544659570589150771674419317359524166554669987808415063004444145573986068639833233208854076638824754750147755450973569099718165935840453136373626547925341958825590525602521224014032604434823498102253805857563584415181078380305587062018056105147690959903526870824705650364522773432780300319990499481223564016255085473626946153825145407408810886370699421604087697094464644263955785235928394496455325858526134712026307937223211232679266061923459880523330283249902744810887306010249881221261948357896641508630103878376767737057464997994673588937948670387483977375664669685314569394517949220638270598307871463555689344478411498246053851753314913812730813665647473047243940330576370883909259079494519929099459013841915360774510431562148056319837531026120620232945325596337485858480666225267297832445035378035529681972347766084665850267150226969671342037702576298499218366673547565948636951188744601951821676795728746845555714313342745679487763399788782144816128910351712266917866499642796839908214018487964488639664901480067434444476275745632308135996903551705243805233587290959337022355204660891674947856897787164086758638518823056918326822461287251432335221463709507642796434559424862116390076733573181965200633957978296429054235575308282032400301810243715941104772134871401810086970919705475713795409170649383758727905827752193401198909685084976224549008073897087260185408394916041748781888919790113061181586299700900874866823764963251721763069650627932208590677079112079663003217916223505652723874456669067774856122825368181102723714493024025361469911966624214980611110090142311557070161528596503387454796289353433342311344646123605018286516407528341327896962520703772499029456544805153357248596821027631048895141168959086721438864648113765624016113829485431608326617629146555173069336021176123897290470423463586764030885093757281180677435068728952882125947131051973539569728148362666988291053965568314471220457443803556470836205634380682862901299704188228990020738383453846943191547402524069520667512107096352924870444985932847519931405927439400028667951498728698795438802766212061051162521256009853081175977795506632055854231975243315225567805819250227187118980045209503757470602434900746273003488063653385935822473460181648218092361312538190481401300425178861935185733482241374442778460057263871816546542372680550139768509409571114049967384847136382934111566805207329595067670838998533331577203273253834950158276792837703095336630717719051266176114897891091203761960834218272647751572367804349829492685488683447385374003873969186982927811468346716191213694325040226084304113970130503994715101268722928819779925673169756792117670290179284347866309967459974301446728195682892535096661827581790797500396471587782495926765158758006969666605911253592546976341263820221218587882304460077786271870098344988831469397518237182983789287348461111911071279921969587261825461830354575597806618041441410177263506913085354700542706161860348899190598224054526157000953215955924692314978568208146255255691530498132144484986670413932119387554360133497967590783465464414205113002367373209004477772460955290304218276926655541687772908208326106048869550078239770356858028001513930592868647891312075700712459057165380178752797401417657436627828822925138046993322550670602275572755658459102262421587875504579062391976599947540042944310109618846981147904673806802766234386920798384103584687328776202546041505746123295260104362039980713581963520906968324452680940554724626277243247624539910242863888242527553036350028457661781782415941077149015287725886617628141059498995681653525222749314844642137879750392088274890416531216815351189639806099066174736694397396237221907404093397402255998498708954427481213936818226143898864325661955032245157635623478486538193083576664292444268936987774930270660275065497313812659022157097115941788868904650775466274122794969084722812422755294337380441554979627206219813161748676662749126653105915277664293978989382007775503588493435209512145409891851531157437200502221401810143482932208817504620417127975745291633743759364569279637617265985510629502762685843218244825694548962624666759320732706608938646676133373559245638761531200969269630474004305789174955893295965132735801560371545335730165386582804067594820315753465054713231169961606017473923030171472298562281810266359725178747825733363281423463091332890639630944734326923894846459362977477231590838650723432268188164628907885364337396750056661357670656165459333910762902567000993570794320729927763230706676097266388658776539619186654739207565386548077686805439299863700962606201087658138415892000399110564995804128041995086750427773011989053366644686203565969547033033616822352931394470435947047169471199984530483813183243082982684145031338765009650183098883161322472391768534146853506273439814102413205723199311040128338280329260780288860604591473403471154514141202028266605739136306292523002669303288859138484859614144588170041450323216117262130393883892367911069297697333636461064420479810187332800985567671893879303351868730259082869775507667792400766141752691119864495996119783576223282567786796029951763958295192327917878964641789892385097304128372935317485220560369569076933412145650661494312278532127562031823455741964659907927063786308799952536739229695251622580657973049506295427951514032811387453536186698638380198186609478971020360109156161489368535653900678267486848566520088197553139619991316942806455360183758058283419524642295326011975683659014370086219599070538437418014122670051249586160127154314265413872335768793265313429684597029376086023848377980635128084132594912814278565747174137374775621897540826759262680768898041772014266743921686527793505567051826304076235574989339262270201498688164957990150783153216053892145809711809028098660981041490980437833152234173939290693413927554988674175151344186919337559327027729223962280872425325646473618158527302794818961540580461003012574081168525156699764076628684482325078262770272926329100817483376753978152056745404882187805210761386134166288584882191447782839256070467494880211722303000282565426578806729049913701519042363549824615762588939037695118629614349159844326471774009386027929508013250296818488225974632715498525550979706685146106833357396615172047548644794550932667001380855795909146412946895070518091599742358472070067060394213602602522668074809134681390733880959718185672029884700373494738827184051676513808512970705856320557479793462993960190061191277910077767396046827004354734487904569311288090282507738756775894810499775594443685314057775324763375754636958833062321842110909421565627647272805493756445070938796231100136043022732062731458569632341757262286211969765241500063217285015402964293647203235383220375618970563996968421459462998323473195048548667102004263903532588584622472598616639484443315063718125731982890844287498017814286173400025071898020796796148389480208657840007574783753114733443976169534748551935510465449234485809413661579052273310178088740790312619870712458563759578894512825496745101733819337236576606425319634792070300403208900249995111876314250268675513303105724736932742307391091396050646983373678032121986356889501543705865746198927088501210014884516034239464107595938672168801840079772296530462822756808780906648601454322463241551078350775545920314143133658127827186793629640827202870568852664997122079857752600979304980954634482034998715070910267767405773956160569966709706946347242181503782637526283227901798060420529674077957393575069427669099574331711887920884767193974934403124947460013254779611212579520914161548438294796026998243739528730247045185841666657208496236156922185894386095651592686186143792541001723835349832695668004771300712184804732525399479375965957760310167149072468024749595378274481656482611332956950216401435449202407978748935120500979001925975007609486598119373645142583464586938572084869016359746568781358555855094207051152899417127736438909700676325062769538777623928544422001881447766004752847774728780143358809427928055393796587243423583353494078093906668875470578932803219270201320126928591835797360771564352786625266256137392406007234907905664697652240239206326240803747481788595555250577083463105594531028694436607866231544872172089855014813542237197043108772275008543753774562110562511838877537486209038764080023230857522828476421354150541361337724369502930157560188589207092517605229881757287220368676089926931638379352563393643201670416951743571110900203259693211807048929956246526257404329712379455412009540841038225168162701873859471545580373048976915631623845718062166611167729612921565863585530306190274683023011484881332630048677381251261882058496053345877490136921543496358746061747394116764046560180246234557971415477195316448569454674038284632841303130344484018471979243233194665839529966041920798216554650072749742667358917559171431842599654230650148332562518949035037586973009717848539909232096113509217735310799499262076203233388794616126969005774369854705710575164758316488114079406279812095366704941853585117401037062123498251007533912960718164817855572459522081456707347019171962992113278665105378877163073700324591792110834849909911197103319473660420918201139197479434064703600654022018065994822074202622093481339394166671265080507640577787112470926234243665718796250098264278242528525818364457329821081461011733900030113814772594199507006116538733598960681139970037890102129809218904580102379681339564932079562473378260395051071518559231162445662137489739879591478751432803430479745483465582330128182424140605733714886722405533248383958076693569684688735490129748331217505052487367655652456724831170402100004115103427344975078677264076829464391390798855251134130972408783741627892154121324757427930626835720366713949092832082781298321732654887547106255127953541382556581327549661041761162909001390581022486341314830322659189123151433698246387658775626366867221365433784126017872290751629282949299375549037764559324034147583765150242521296635720744036913335662444522735349019845808830797286541662416901220933513027094933828767785392727598357534150749075925381795199888788668902505790573321371784396659300223239061100583872857005370127414227689475729528859731779445891035316537244252511303999007536181346403911800276011480553206260493771043719007497239325759641951881304732268137667040188042465933763928961676643327473920805756360654621736720451334009774171806271058295319122363120482903355790127548872859324666471711834915535997147619576472342834396388920326321256314006786695347427384260188599970663721925784999644360688229310197605058081886208729986056358733379582985268530508599950248056669981507939974394451101316746318977723086155420467079932067181119967284034179682969963573600450886300957912249803673729700331459086358572355936096189609486516215001522372056124488617922075003596942933614795570929212686953288390317730259977601915638415016621566402449684752133780194210123323486282640059283144912784364230684397265796118066572930246508155268237922102390125883643018587585510269578384473504340643793214867122498373402228565497365712871885525445901648157265195257133888664640847626715375898927842606163979221886824718269667937973309554576528292637198691735921402880369079502570289738402112507865187974722822310225281732930701035950234957687228898125826521625097508220863028423443341076033371990161289581403728207202011108475254952702687867759569424556560684540861442687762487392952130716441452926812816454804930753912036548944480226657417230893200569456168389737909896128609346222224071176555286134257277669542926685112376752361933685821727232763148537614797235914008262624361213274422606034302254057821034532458791412015063372848844067807556203313537688044586046120456989808874129366118906718705488005925352506670315420946683589242200467930324752604156476110381180071848721450053499200522128671495016400700899356143462328770322722830612595842827389528883947026765674500222487857669280327366827957039645798483161775069515875413816318183448529543792549860282041602045598581046728046527706686520933892736080411421474481550532159127121327230804455458196606748368460263625344288851425110821827542604380540574307408126414785215033227844008025454124127681347570352445687874143751735859756201014089946276155899233464456276818709748288503777506747647048251003884673355723381050765571893089797510752317054656632562426004179459894406491916188492022978942918795618686562018795428177334088080227802074754646628550658285233421383261024055702633874336057187894733318894426132654376008214567556880239009968387486308549629661846472202788939989753903144816146419919350216343837831653618883432832519764432106829184036210223408113932878672255006049943194908192145016054509398316787779999586148106244378210958710229921347606276587685453060905911021157583155647374022273995695433815479119071009289424128082278246628395943219835605843271948025133276852316230372234103562410745985513225644596326631000464913220415166384339142412252880160873164685646229667530386706195459240274259464692902781512069648732695598137323068764470840888692856936289615271375101938871480129610694788626235384632820025222946654507057240205623109206159935250902094969130353091628588248733179900944021497884704798160567673317335779423018039231707218132026222713315521775681430090783414422953230684559652666900981463166820674689493038887144016467558843259428688080867495918865841261417665476932121042980066238264845532222837300443808851981393656773132719726157523230266082282322420734442119299600027299492487892519098366400471160475004321730620411883054429682262976288051327245138478634897704517540635268621247121906973136182554370032138606604740375119481001257361236230798254906034589224795115904257580802113274052296368219388309981064330124375341610974422471240430212917945278641333786600176853073985099890612546891564294805883164019838923444664276003181693899387903445433187343712022604114409126106524235478681889403759452695880547348042136490306227228493516667052133747146097872244145354452598622198873861928517723561974275191102097682900303027194087703265096643778220872196002149121307868156091555320842559275800721137410719946939533737237310323207335857020943806066486069344849558458080949656485713008853280324448215540976453687402893928621781963805627217093562292511737940039283754326548868252409390458779204017836383391074306319127217132047758951136465088086092698329808854765654136740303651498217988882658634074647148754822514671539212345858466132398986571684542711688726920581189004404360567284485760337811472603880314433471984780182819083007704405610068286919051853524815329879409108718259443302628673789378635163495726096788241072846747159532342148148401626696015410071812190250699903725694571194381836885941853537105666165745175823277463850730561333005827152460612428342442639359792709944582259009969458492986322197810317014614863560012977439613312173911176248825359093002445219898497145677790661231052426935652669255960803513329773685573193722648169243349484807083760143250676440464246199821755435204030264148479124890559045952509999407489121587513150084254865151746654996920554487600680275987063504077356448522060178713363954833429117447343047342650273381728306003904521163908940757729836101119143555242270477524311354108782499602591014128447327698033803810268405003036375633404919111140057407532257810755223524923402319838419123691842380974902285235987847121434276430301809212119324040594902952825747174426953908959750059297655113480858473425198484398147181007980940374843561204030779120403084082164994934439700605775384915175728822970145679462978987493550689719317658241142852047641272011576815053024652400767732221543111699753527702716007694824151890739881618371458443790300007429612253641848252805398267255772086137522090582584633906175045415370283581824143659146086084292345639994779985315459510619299630241998073164255851928987475366016110169289207066118117755250790007555051425486590921574777404702931431673300802336653920076009968753258509299490804863265069100422145388251510749423012563726279785552209983902008559460234615812319385040093752599312956623885254117472000305760760703107892595059864080706975355902029120661608138551656671379972276788675973921693927831402035863687031504967248598555661111072351047619019523632521950131980966627336604477242998846617628152862088451523567764747011146670252394932680811973905616158591023125937888788975607922172386495040345982261893224170830503822887061693603709166046933247515335762151438634945233125789179581978273846571181925581664316772388921070455001789777204461100400261706367566975510261211223835796835649661962766755284772946219587934658961323054548264895895267767520549562222725645441381333313852827320975093617639948740290697708489497294052056339299554697241391458718578288104298154012824161309880427316423334877822674614005193470680381350081951682191049071033706069988305726071911094075174118983869482696322737978140962852348256105934614190368167236410314073114402475952180966641593406004521052452270572293016589127323171544264888066611455282289030994124676321280140269450732443543977606380454267813572928106660735547025105052721922547007595819000292152890423737618396234960130125192661520213122541232769195661518768417048570654945497337874863397246572154991857594132154307464892965225560612517757241475883931061400431664494979715542185928397178319803498247005890530384353541123341016486480730140249861460545337566450645482180997755603331554775498731528779147763176814692523022356489106757006169685694724378007585310696215755102309256485581598636571111180255805106766305297619495306180541233079814309790223333207555746872417009392700989985101465389229359006001285589304458389942484429238351498167436878372212873341784480565036034865835747756290303826270983812307370282534770175010004665455550129769366467806844626552549223033294074130910686107414582844164556860168493774419886496861959938142015757395335499859198746039567387869183500479750210628495164140563519011003685732693121266856270668134214402435695697203707443964918050403128195239990226227671181134459232649521475599546509713716736358028632473635191090304459935048723584590075071752007928383585020698796420053555724589355177161973061259140076231680971205715030999339501944481732604161764344379394450795233287450904606267406257038998185035247543521778457546258713316952938086461211670781790149628977357574683353165207522732615735937246832138875585986354994910755078019376419782652243071569019922872073827857298459294587026692260152462078772878038432962310913634442369222429575296471861004873870075123617544093317726408380029323358770251739509860344306610837076107805614925752131165274903619617754528593123477262411632465809359707254600022442493825823965468216176389279557868209442930643108248193125066044250240974016865712258575046457319105453748247787204384562408353215560849805095632012838197996379478151863084526213809312864522447821374351143444124934407728893186887832641671621228790882220600760724810927777230951983336123069102828686944771139400562068442373250012854176078993495132143892175058163231369385133755059278411965787660646929758967505193260311883010018191371492210931568188209984039427887225722420760929578193088840429851199939382023540550096779542341549119151799595530020166068147842439890694470606801039302653601748269802902037081814899818261956261860976771086222302011860290806870160152822127112985154887775255378349152847926556752956368017747660121118125069520358838304306709472627030880470572659098983916154019725346239168157757816208894228970667827327302935018023154864159386989691730654680682510248512590319159348763934232001734558257746791742566144926156317723477134876345521206755172260363400233968113925573524996462009777352320019352782911671915525338033916908911607716191185228817677296202327793245535555558164046073930893485419413584442152550021828209630183457857022614797988837971354045549975415393513226590413149042823180842042309386970130187949810062322774825036235983509412257473683924025341769617177850789611270623662828700799056319535525976443603309979398866597709501098624010754630022896181658603525039767128573564962261903044424231429913819841745163071848948178478203522077371375799181293408066066303639465758964578719941793151356631966785986854813172944982308526564119045419171716749644024321537347987714554761615071459989884622674915519296800326692417486207287043576478515945261669697884049664983781153601875421376479888467173888527376388163938089364256610733247473866743447089027348819088603778576292932551368616400795773777660328026280158255798526091118148994233903498995329513808420549870630461762378013714161536598500258233589361084199121520185971559759396863763971147476762153458744672433938104793912947138998607669014928876642307851490052256791429293962891636517832974661314570661155206467097766411346700052241974639718564252381963861970692306761932655905062211173240357705721839683939348972939586278327139155992457826364985301755502431683213553358136102263954541626779501995507958010033114302737251197001998851058492537230740422517649973423844796178753085385609399638739321522762083719713308707756973937063025047003327613751066571782331768200053038979445359905609471174844381802551308083913068123897231917582141929533754544405848001136328358653511690377938541175759412587043474040116625988851547224342880163309722330712716944108907874250604118340422357843588125858246047534062457870488329789355811662043736761829240944424457241877535596214956221880282901321060056837081909623294641295366438362768135833574389861820423678980303583971252675661576380151655376793024380769770565835536165384203850294996553643323836942154301543806511184793072913720571313793633768923239695848438276804721788299465208061692218217476237869430314292432812813848148453516271004817500704330436473487936344516297772068461698314005358326779274872606410573739805908246430275032865654771445152196128773762848819973617187826645988694284587316390239179294709312333249484024388269965323282896730193988355738185818074835691177742731123109680774733043674925540889576538523744642619740620159227960604059382508983660474936822527692086596610242752021400579675928874676151553115438487281927567333139806777581955044180862577501490631661616512420619563785484172418061143275945184836670306896118154232133866185601347056890911189932976495864418111746061891657344570643322514776147253471628239951236539341843014087477566879508144418914047450148712322832661577195820908952824960614927055964560297911770242207482384485883537071089245802037972034929030790825888651482424486983226795270483096584664013752684969269178994936007598214848968861691749849671502549114987189540598101640571311340499205681789288968086148902753963197306040525732258412953306819129515602016423179129029197289227501310618548196925903184411384859174889564867452345572096631653596780302899437873120460779841975854271352220575035091311210901519412315415528726556880468887900396174914000065689585409152677742307853466839249409008497889193587759415119198231239561092381603129987764979774202232613284233106254302560873639609638803564036294863549274226579014603442646084636186908658355801872447112912118924387120814666595505283976204170657095254575053701743660017395683932339848975483214771511147447940903675300193930280921839763627222789245409555779402326515871328130323119140710994210205673927744472798796330131074153122979863146743391406927006525227733321001956535082180957514196856137507243048384750923319028699549129822655685309796282294587032878618383837497251031463806561552233850838564851387925206909798958298852978803156237607759243733038046361466960323633263286695728235326246232230049307626308259610356876572241433366238467699730393439724796778709549887057141265123532686784925915115287583341167091840619742406214225455852333514658508855030775237102550738523903350611298255778511332883025811585295421044432911593236756774958871903814809131869337065385180736708229230173106898637319129795308009026545471677320708626272915568970110535337795676149293104938584741578597129874302627630541334743264027754383162648048821713547668284099553490196591277382209653361038525533290089029697505249943761149969363729666849136784362444777583487488347247172661358857397006240961785089905542172712197695461546497725451128435634458805144656891220680915134318109560095712038737038348903593585553804787809153509792079976784655432859780378059453246174863963102395340619241752691984192068529972524007268218240516597435373906004853904977213781661610994437074867994807704725194492152569740722199500489797260535548139627253133211712805671224935637157265830255895847608660838108284251834997134892885505063093604119543194396812167693777338883377867523768532079355183805078028567645183202537016172957605437163047815735409105447381208902626183997025553479256400058471161195781063336526817504535262783846365456664444485709875970082718578388458439509305385970612930999901102204407074221802775221440501961264870164288148203557208957508756741267460153716505071625678925096337604879671436678901037162768526529065375275795799107713852778556973182539312302940585509157566578231286184767931621951927886965011145903816474772888084784242614287168559252793516127374017375293517022579999645089103458041962797193164036565924961716236671296584677052941296832419999464531746925005185691332953968560389043526776414672855482916631210691644362417910613496963535970356008392637477831553189139655057559309321058008439843194638739480302253172534169557178516979074198650188801205583284895329922365458522734565614623847874581333231436247263107508708496256383534470991027495739853510234911340029271470088132512610151585862744859719263322934960627894113741149432361038271223821216792734782718084524649777552929547123363847433037338549064007712230140636398145454419920768578126652640889912955603394447827472974700504416678299511014752712031547605971729844436685786862438024978079402959989756384444496029075664856422385555929484340795730934986964610366756192555878213564526019579867093207550967351529214056338848128136279042813527889194736873285096014726763424263671193820795142303605833448806246614726924095058592656445113160933903886326064891860444742194471389119307095121109138639774640127232711924682798100760838284252832295099870928122549416555554423768569866688356748124644591500027908878305909170376157864646379223217281733893479162523133498475272749588055754295081117095422831071686223190864532468048309900949631348410563654311400310183916522789079881590105423152273266398209362123594406701473989991286064659047933051164039564845475914719639414387674009924711057669099328977423392938090452567138861046806236472867403027415864197289359439068911225970607537306885703448648026607844364642896558863642703911792013636064837914068800904843649835065889502732394408408001202621096633239915592722335904142724990137614735417964995472627755046456271316414060945513239983313523534190169542879001477008356536577297453194871284404573062032242962505099602038498150530210848231235253978003515601189318856102031033835096066458038083716143478397517055366866424090506423602783725657657899946292962133044669477677554348300719723048922513810058573208183161660764782396096248742600395845730498835522823616205633716142597064620973193552208321838143236111032415581092281336240243338194943829714637701951980636467294528090733927748756556249085315066630429893399576612506814956047676539917027585469658740053951675302100884559626769304384560934943743114114203369198199313963561731666930294115158210014595306194671974514521330965801506033162440586450764848632554811079143215099409723303413301890626411636783337197864195705585237194209474199340217037229477672973521188622444050633284459097995870786144356989215061986988678621807764004683153423209898750488219756147212198841403792653123350610995391023301453631813008728414170205898495546228435316417261281025366239474063591450375560329392956434302239559850022765166663397534469993250409862589461097532107058716997268500071451957298802671213573379670364365932270663119505153725733467626706280037948973010172868600820215794821183002634466493478021813047379291229014803312596461407570889353957946507514525011824878855959181205794571094676545411430469577788049496428177275550853605319430615660963490670587614124612700355912446904393714777161611499889828310838758348944129929120281287539955598689077434211194162080473455162687685629245716914604629287824210609326557691706816636715506284978593894418285511081215065534678927946049907588627422817228952733433165892442341909225824909647370930339274015600873379227002502951241304340803500233801204419121250996775382965675982923874424991246944536931752626213148596008445856042690569686470110828377835082561873700001111665090295209999229937909481092532110177713983242583631534178511879115379665446306113645256972571405184610214752974781839782479658090166878584943055148133238475978212394389943694617919731254237873734651543964391652803907691058489890129659483435393266985112709183335409360687530796123943479334831221185423149363266925474669664708451036971452200243851717002011741687959138994094480694357838686162186427567644689008860807897309066670241777341526324941144675908328581653403802206697269285924916547198640178973869335754292189738902031056954378929785838940555027344682488108412596007648278883155244386758434932359592141627552490839508005139923893880123919955795008263662086278612065561501870616693578774509116158220752779892855406410747893887393134061319707895184836060802286496813418589956449317622754164235252913655669397928240424102619811031569292756110593505562855480996413617200387217887471706547715468433310761789523032920218037087180295502970071965863117961848914865742818118631280914751034134376985356897487293802544177964366403173387539920883637605684586059774915355165601111457585051221331825291942227709868284571714585836313198295702936305559961928178678722815362816073591047815602947163283208893185808359341930691465734562970775563866748250119267279071994210956514196800707862306822706745076198362256011509672981061827807392258158110129109928610501623138242737620685409042760575162373728182711509888019784938095610800775606281297597899649782992606937630439301401916304203557194446824513566598380291235972001498295202627312011958802838777052394914836494958952047875337947536543854538017837699439836785632717124284820850453593961969166741586995285516343279149020749692621482787509192416892081715225741949412784573466688935096017235247878243821878916297796534912825403624362699972924971391534451369254434985477347525337767855984412378068489775389581906561808785139648831337347689139775819734110827085537496330210991468639847136252879478065238452204216989016071850840897533616758838362105827861109639384595350480394431158147829763598338504177619224319940254251505957763432553488209351506358240908284386894562126359611388007976514866465733634085635977662101141823803616033404422879765207904429679874408090779819291793562657019508035406599624906954651695574648763292724625567924807687212328184122635398429011684325667230592967927411170407992442649667603670192374714970446154401075378070530137336804778085357703782481036165450805872639151239551130013445476391147312624839640337016339553086954760586355419042272363864582709810678257756660963973290074334582171209531491729773444401337567549191269946226728418862387687518867868088568113173167740482446470014235193559126277843726013027255538887318590882126100043952936920452247992608065665035122413120376754397128348082654699107787024471387239971269915433917927400504963475216893198789344471161210507980430217985261584425145949246448920895570264797328013883130441147369110035036104512301038725987147496420784788177506471142181079038607037822711186448362592633918712496183345013585344594847827948953442975264020479263257440777084900193170583710566654863945927938632356521474293732916800441254260512060777801500182190077962998946377756058392717845172805791637418909955368709425038823051043200010601498371880620163785750958169151718073961063048755160558489566578943289324396049230486299849748010812019469007177300035590097223234709974282094646543279243011492296459393336201695579809134233314441222037452003654158366816487514560819782659611957879053936314734584743453040349929679992664587617271655072245251677705508140277971300609364184113332704876552521818759581007148823674665215182068327447070840722752133397326874761018928244933272707833360540103320184229972735078286199268432551342325617614977672710665854092719890712827733626678176891897614099891416358568189991142036064414499347828530198377830435293753179221055741877178344969421107544123636006996300533916216956302032152047871986093836432112069284524952285262536583771290069991740984620918636532121782681254755207264449482545910242801022774670258809210330350799039436579592900271865151697760718281998653822765374003857116444278881778580796343625166715338074814553893963923658059595423540767718652084945186065182527410391924228364759062938542652876745671643069830331498968777978034634277128176297791988270039300493219238532495711334457251182165540342631707825680571478304521019910772626633906627295143128327736836987102192411363439547111992198237686871010630372523534082058485778078682411230453550967517376649955367821148722155850768781850356098836876518845110403818418155678161633501840872338427821957736584310517497756201719060127846000955662871095651271079466832687528067624762897394524917244105559012632272628658512320019104486466558480659804704894715925272133511381101643631031094997422690588088499860422953149177649553207225884007994530267968330409248320008814539403626758105775491513445259393801669501344819615180910599317783129482024103616862024837303880513895199103611118855615456149258083312107145364398487235862020732249935156633345620844355250579523946977314380770909130352145444883326368625553761724618505528596075437614307475081311809945647720225203379326498643982629505466305720428157795993200996591664194489841438502715561391092342162465471867897269074824952033150666272732598334206188703650782443083355430022313623074669365048087590474183578369827160893052431968630619880845383814991872772040997820851427794965176868146361378640848044679238305641607931995273966909946100892367256048383023220265876161964593283029246169316471153439631719910292582585800167126677313562627566452573942431722429354379655284769071345100628397557319321474374493562646476290045237218441192118143631952559215266627623880717038144840499346104765659818592951130421169991019477432831064380790218906528546020773325324409594998876970268241695863940806583991021752672805620384535460193049898938185882930249285856295972371434541251818516861072798740857658060563500055412258271681768411273088535985153897489017263841767626930852899354646609148900830660700216363819487121664126480509726962941020158076668555200024421430465875608942236557040265517398868787006193637053518611953137136946773568952103327926408521952211431398972775960011922539662169972736558450517299751549395091619866877361739758995834609391385948629116298173000627160985567028483183317456338724091972485379375454088908486591450936252526717833203460082459166568565926008092346737254694417503986178843916167102325837130928446420386347003422319262549939067752998942763023858671467138829943339650715894806595314376974085045499472840009450875873618775122876943912262680548107091271665685085958911224184377652355098228783824268779851748820390039470725182908300091280867345177079997987811838207409970600856026682064042634829876294532883208245579359554032339907291346444686098538523802861072768825083477180797432017296756477069012680132004647300484857296795048225992625559200675716008858364301851087496670583892425824413130091805959553232241806822726845515864339801379261804211857543620437972492769884712511181306253522372803099209475476362445278338249590849160032819078700403569020525754240236714510850608333720875942898987177600902453649610773580559118201598357548116446571250301665371916510818922994059151687428204113756398408382116424116703758185914353829399422759874424563557396338369626005214729170765481498166354680513698031407644795846570706390911194070742562419964489824526561432866275203158435690497109060650434056307556543214403610786284296823214152650877230364061344884692438963650767932955752184231174768951292785021826414216460348550396350871671357587244332213085607860337721065306847948080089961485147498156157732123501306945745163003044107637423952120825955398030964286423989355440394838869805587705698044010475331917774208362701702930958227440336664069588910051752280535232896503020103396179943862613874512574209732339155623790568037782071413826085472289791999006907937294598101502459018024561020165203500153618770364105512381791037434006082994461848861234404598698714789472868723351736234560053394574030063523243305287144930231837770817122681921247859504043579132589199322405681052468818721319152944525685051444302114897563953875524249919943164260489616864034662773426563212986053121595774323424715127725268196278196133189617987328542221366350095060698307675947559781052371573004614073043346928260075568099098077708601570606588340189562919465320302186033506812306513936152284074105121767416152915946807648880518431569869406954416346355674725901539691281539922521980463120488059969757703716331616767873229626170295755409646602290292252615202438686851932389663729570877609379051306998601193377703939218980704061729825921176073998438656655216248680100539948016692817670738635189501609284881944128551015942945660080300537897498898967396046202620957218426073953281166083560962648521840425009000923434194889118404420760260444590669476260501330873251552832328370514563219289117656386323757331018697160186839818759317925609721336646193830391707441885154082110694082028015598150645043568205633095292063471828267494582902260787405931445737797750210257573042068391741426337494316325840376559752338844846281747714546328440982520132699574533125011378986772448770313308367929415082407596540809160121824660515672686915132218733601001733101122066052016017775036074904991603711468066292626902687256624895572307086238495748561159812621725347945649058658597274672102841512966448614211552131701693704518742346584917594060516138205278600129212975810138187833212409193933317430687321599968514905519680288114735855042647071744215602468872705646011635511829585346032798430288824441776784773848735407043705929688450760518387759355303622291325085210983845587070377354928277604472649893880622165253785873317861225156478256262737115049336776669159695299678644081444910653947314808650099795742014072110602322595368901434043286784716861262031561361256275503563469681567137190127021663064797161137288316892107000855800095728842853813763420520115166286352858682136691932293344203062454052468850938226733559786104363595684823521904335611423682756932862915741540230491466054151512551710015868177155344393024113812854892226643161574314797277125922255337724119994504345897425496060531422419273815698593233121337585019275431166960721212909852943789501062820212980150073400973718276837327905334967759310027435582142335558637791092354047777646592822330287300187665436175360144391257903751261494388483621589476848951442676557700551170667219663503730705114916713499603776027606160973954539384070126667028398467711784517073966878960646790303844932971958614754492343647961785217121626685923734178370322835262037362160215202367187950859275291391510838534983762933588251742413704276846114260811542393637426827115967298002077971696717576035366012866736323775146356655497834325527241988454264273521131793572157467277444735654044301940357774844317047324966440552987607920645216022467678156497504397557997922304177261953662762503765417475778316401359782203638205384045693954166974883368475592997790031014318318570360442187697001992554059277985004947378087957248680250538458341707116422226578933793361060631062053206902377205668324521855069590440500555397762608149207289403372822690328770790185893600379979412347355050902905451937056094881454249374575438862432891096727850360664789757843720740909722023061434450069092979674265099996229686550889600176129256227642279472391862373446987287704064581411336638986661433314641655983914664877580006948346769406679818552031648623526102404520368284175167270267700181851572071122746991828491664712947084723554271602655470321196595909610098867994412535900231188072266769738633360565004174884900737683348340057828654689623382278792271990015992117186038742250590502405073905933893443289569868047271986934487714394515429744459183739719110900239907505557399848794661799567697657431292924607339631321067353201970766723701007181919006287383036275834974036023936801648342276582871988163946322077235592261903084624283330036790953929240177909857109658662522524288878412733247160197905535407686617709340018244016433726703220298585988795315550074771174213335158648284255039509579297553626789649160513373302229744472183607690572470521072327803839855951646891380956538430974598568376721777738849249665050988110073520664430161444679105642594964465909766496937329434692741353312967925919808220737922476440062287941083069090687206056416004505813238087175705047292126424182557460666984616337346552042753396655879323796656685901243066713717975532207980139770129704051606612862461566327362502704404253567686268547136919911042771314216902025529645380919738530230750987626566586397826669395917433211813301042351572518430595013054770305905994592421397055960354757160137488116638344848081654494758295440221260858511515407378077080329239029973494933636557519321671487132104846123869966585450481189298164984049901747979030727040590310191427773202649683487652400789821384183424269738056980143477774676327389643448963670516884959113934628126325130531650157838352076692621913470501024870959849897985503932355727857297201426826265337658908833148505340723952933964822302746395607504944090833329436459120038889276989013681253426364906616839574240054075920528912564766948774522992069931315661164183672901156087719872534025930144717992011879723570985407458083056498979418446209703658308202772050902795644188345664095119986882985291439608177342852021526329968696622219139736105527985701693536095659564772590538423588064853599818736600531889255438663908730494504757889959687108545063084261650665842608727717049405136133453423679443336235378230595379666748260950009632891868201464341665093559273383264303886337046790510067295720015601316577942937787382808736264755338358437792992446451531309955277556514935372666621561702768024545684866766683183684976607011821176847301158739694221787759043022115827277414784842463366985986577715485476904403293669390571491497533511697531204133012533419960657304929943601648183858929096275829448595446871731718587293484529727659584461612880628350092710410962509354028179011549218175266524369704346514038798496423076875616102145744524138439420698641093062552163564946257597913359738686104334679715798733971961960167301646726529302987557385188644856707258924575115387110367924178886033753247015041292355512411379484586212866873045370328827931685001079280854256171770565804186270844903811366425803232883504627722331069722309743383737947420266858355636190907641191737080459811052390810174001842913577329436395880593639804174816132226769347038993217590941497682606875222054893625996747635518358170745010716422892957503836632511136930982055807275203017206884246076450722442197721985511832946580668566792748413346653178402880206226411843404872888111208109064082390894314196462656284815365027401243239974111688032481234692714418057172178538640566787698609044383010625054299110684774930952041558474570262982152153288077060387032293880999316469673926763088672163531995700374420299596009818557743517894712540930713254552451597854514021276630849726217181757666383327135757098853333286835897615584582692986088235148802171477070216825079231190051034544172749188666798926829867986632567881595705876536320123758800094286718994309964251556329568340285825604907840066966849067429996891391698306324992119958922185693500733877444310229392620824450702462100279402760372281687869375887524661034750163030303398922084057490408934485471487388843339720550587316694014335244964027994440696744318550452796581802652813864644166525687742354684033646748332265647342403167956377503779757768940562343463749398885549628328623352324464040979277397307234202366797466746235525923234147253597096860361275229211343288034656132940349152635627596758280803908533880498209241352995303093722928211665926099729176941815344721567019377039011154096246867278091004285962173145114466303023753637979246403503864013350403877457359745130712508601287569619652027554135384463391172197267746588910137481246068521591685627419144136032564265756680447235507777530528203611389721321392723798751943796753016878862153182162827396340550991741718589163074351162587819242541180084429960331125894585547542607068698560039267074496495969954172719901956596382708130182804522557868311708297501439297539589793721576421336252301845723315983762717965800856702798952142096932478131157004462133214108724742397484855487121464198801002175322730339176059110905671961756026370747449743344344192746045319381862773785341104453903966729845220249060989705372956922247111015181722026997580149757840952621131490984288098926640801152195633397400018681535994109829869044458605192149388621534035502427978487347457927935804729575253099592473273321102461232189543170870321913576509106891590505163683576141141873176639715305059527054708922550114630060714911865669065321584285449349754203582979659333847405201502211038720526943140334076942643889153563742259199525785914704720646741127826198790799856824175056973467709972733208955635030123679074942155195503258544352957219578330752965832912845619115018959699704639526604703716066678158111541214286446199353509266291056335369241272846502644130386528972322682570978095806099966070280362536933308454282405869775659232807904722506046985123451184878899581336246481546053455675806869069846420188594481890947496529139613643227628081852617130590888945538952680155828051565660625466723242515263168040595425565938887568696592560156436660029892252517532355123703743146158377613871158912127979491640067001979297347510551897829373307300350775814521153825630972190400835390842107939889744454694091843613141238209812657629494438615257539557584298967813129586821207846432604417405235086854967174049610122510596988365847948562595381720574110175355327282472478457549844867507844203937497289481468585310611231281026320801095598180736487494685574610365418125932620957208984250669615284685072176974228065063898868688696103676600944858892155970607990945473750065959713888657032498469088366976450608288815949305744643929148450748116165401298275099936328272888988981043448077614657584547098629191716145826408424508401793984456706586824546208236212057359852256511553062737104757597677978051138666084193539635749101411575696693388462027575666948839372195497509413491396912229633400763886577282938080077517456251235190637075291432059396830084264184795930146116087965455573393024135068072548801842312981221982421641308389019371339018095374220908480497674233756874190572354935475925630776975655981827137044845421428449440609053362207966457958093176331682667797667440001807565214032146905644812298492102207836546426935275299483311137826676383097713134528427667308024065509084738103915367650203691171025087801169575293423964536170919164087671166389625041208065566455601082801566886949948604837175759220793773773635559477692590700619638763798410346291132115633494827095604742010198166620261188202449890227389680189699767530305507384129870437767420648537886736187422991067139524444787182547787623966506199949943953127307589186666132149008864159921599105304196417042483813506570924290596558101512850797514028632663395545024667034298479389048762845868662564750584091383660374706246239960718110846460112659422056719106942438299055316808336078303059395397345105594194454257791452767665009536948621732044007325748420658270616352081592074866404928362971834184467356302408677573496976482406082726391491618666776315275101108832587435896029197193077904768563343145881228005650918077982564144068851702088857092527757197712592488417923345187649994481645139399669376252723353414475601586490916243013351045112859714725172912662000606731027329118949282566981059983798463756023594449746771467216002735170872079386279315172790522778087312831438424177431247640662311616075954611592926218948569941252189343578380580154289199438668493507865672938158623451901481764115403337365756445199197213725150230424759173957019887516481269708689064270183301045773873941194436566883792135322157269227084173736711927447731562508350776043916407415211226498150829395605833394669465367130256425166567876602524972037327496420120008248038563609101242504723729659756437082647324794321905979022519973225632143649032447046817563041649318227084842222961335377941081802156367299279101019894174401648881647532691591286275928720203445846839813672763646525767861244543299685266849096438157517685180548235274507694041344002172354394392258116839313702826039401039414764231831270049222069859517159462222182265914265511489193214022080059688938287454565976224858716241946549336720045702096827995631168314983311228751562644148078237399861326545108612453727837765808100179203677483966978223393720313819544331865869303132653746139359750928174119911043175389256575019821905296948380409819671941996962833257024962723986065907922225737364749504065188608908955144676901502592556170058551091838566206714315022057087804953907663509244996195059256796412098127134123676941269944042438899856882778926331768960552386074872889076453300033398830584153683275261514368958555816792054635977347596218033434480090289691161708758280744399981264294952096940838429546987953912971633140765169197809155659223055647986631055795938210112675276683762038348002462173868903817673355701720135073629413814980152080766505527073524273442329223391209292564410789138857224935459195844304269099773275424910469835754508120078122220021803361159211115284987591255830185198028359942692884630525752847807806405736844910875618160149653541759715020829964281418109316787900748888455980387080269022152246190031523424563737747825177283034783578119873290725392877668732616917401980501764459977054084387856707764030305654057008392943635931499707323789195328974691633141202764031499660689994690389474026821074078097355126129611865652892875660929482816274078423542967998473357434774778855699459979107875895811795884117585862567127036968459108623381459249179319727824716253937152537602577313874456350499747910000524262613578391112033381407053090844852495201245065237797146341171647594995174486314902947457811388371784231197912998572229210384289128127405524788630099498407925224902581773478809064578647496422020177015336037268317640385020553153777400189160130958701870286630751846205654556076805214077704148857035942039952864964221238897899437904430050269532017619405348072523432697963409329394606066135953418857368261798320593185540616725273693008303696994145442146560116133496960759659525074025927774183228988995571355929206104790076064220171357841497220287079269842884209970856514828210975115087188622934654169430840751841308861305616495784940081810002202847608883989893630924117503968920443668410705882123757940046185954885533704121970072926505584884884074205088880495844822514951717454739656237767205354901618849336882757320756699976686250292676489302689809295660909378556235340185664735187272623928749691806926588316316931985974957919971087819458090294576134367109221147727558070831206738881871790046219113332786012943474063007001199043085320413344447985444316421523866755821133037222815665520793010903514894259435167127385333858007123247267845151905831511432782369557447470473579300095373153208954312888894473133964319822528196735355200985950110283043564353188919826746354631502586833833396507344069403459226956422930899501655064096238168361992843183685129564135751158673456219191758088281887027133581249658782970973726327636106561102730905563965433527084953371054543062802002742524732678616641579607791767348245759699939427249450754813686136829751216775322595143964972971834642485587488595594297188499602665131914454858094888318781343223964437302530413353452315187822912399669255695346475893140652692714739001966177784116592335768851918651566312923855368190444768155472770445210180876719404632484163243055794470341904308805129532103305177436115798020280149891073853270650456923243671734160578479095158147362751558101990530728499541788516791776654690356256590441398235405511555812127676107813474193634423999940649834345405499499983997766957546560678809164084603040444332639270584336298890507102743010617802574189282625997458705544888550221017670284511295912675687868106780278128862338624570194359046456281722469522677664827104839114065297457486429030569719979537629950461474297477243079087148502610130353494464769314090927933569375429952026543229018465231251398850401040749516191220949583130980304887897762212800814243433875933672480515697165282385679567263740912195585448151226567189482017660372755613490613263573795516994833736180866332175611947041730762675340109215597369269210618522279599974757967490980115647045243141349689202914012195299658046935994153485590934795291110804401886159545275371975061332140797128835862281560272682316179295064973267180843068957799582282982217853500311501131360206594837394927987171090235285235918317091313155163846486012724520339060995085570791541065557040339243419673188757617727964266142457102582372808913185177700765657796750098546742752294065944766660187123949931442945726394747791743427758470977093863596686410039642913012397258896907385796034291660619870189495704555337404933785736000617547141427139072381794033049684780520085818065131894124395480832322399872379594729317380408806359965235072920011299723388631920108785261267140017073758479956334567504769016845196096553659075134326922963055181910385781209232706925788410652456538463580968448297270786672974081562864406083862923333958937412153156837094106357079133480231527404139752016388731705131699441383678013555584718554201913047737497765418522924881912661090181999521774627391124692511372554387745587551501799402791954176552153646937354972354490915548746447972713378582686332149017111716118830787815954537216425966855891692029684747058219770515704744296531097831271969304488817079593548599898196274729914726918986969389232018389850511567725583457279828291448275173226338751791765786007591991996827571469036309274130583038698874595429419878231074365390804737289613286955562323163480472680352923987808988999234637444336208082525758332027527533410438258170282220949905429657803542464059387897524777252764283041215003480617528433429180190695230798571203631499682654176944906418826439733082326842031663196936229051611784568659983190040471329962564351484178167159935262130154995409573066310151594751444169701968387677738827344576144471903856469798292239451530081544307340757557393663237022314561572946789335454490516583365988872614102196800624263903607421337211233875039573231964609648762933475041774207342417473355202665848377451726289043769752642726363204321658821062113898915070825481633742956620835539955993732183144037359217251867507817736659163069710815124306252815673303622684711799928905757105796869870566766286365335182177966380455413757994238984792978677757956321301928828720319870968833786337917001504830167851978879852621482793420017960170909040513829352530149192859612996244099489029642257792335953301443398000858470723598833445777009030067619303848297974886265235918991757329479331193684491530876709755995749034204897157648805276309918694983717574450321792987940756066598719502661094896190888397160089099770108125213595658605054870525687754859527985876353433692547402863433030214033421900274805296417932698069037118122763317971030617332952599676310910480171519493375454765791775092261483518970992098832067749232579920851958055978244137000453752287622865258199923841818489009588008058835957755047895919831417109624949317952922287702739952598622523558196488903490260037130428208359123597631656033672206253045350522510128836143333721636801732180372163999415463028281653917270159573040027911629178402378559590928502780660947246112894459802622898370111499795797079294952714660621948166136271450001791434613791609641051668435273865301598431367934143721117904199253515292244447537353131114499820388761247345388596211117485941903046818189661888424221936434358371190624574355074459268621010992726763624641806746475259065081519409718304241049218511885317276849839778369397026055621553656909478620313859952240033427632286052981273894198183342665285287722664396475812848079962621004749907955760516512316198635336687061919514040006274459319541885222695566547002412426037419201981057609628381480214023785112593044105318714093562794943391811024027788866342986421186576820888119383206647202073907890952021091605580548657999630409269790983965939587814625095022645660834427723314059675050231584794301307783945441808711934726185624064202672528467979197064607288232483345471803378176903904283192658317749327630127725794758402259374011830286865492521322727343135992658922473292000692202085263349995552945687184646829544713970478466668653884667114713466079963285998091990746508067776949870565899827890272878544766330742543803071200236734210988788600273910786740611154341052280748829779124708261551175787305946800229654539158712901622828103523889765169175599480723364978174270737918979190115215759177082810497114658664030746328513908840105761759168175820905281219757323262642432927428728981055777009932584065686679472960833146844836200061163615811022003929613387349642377639266307047710000000943400182499238412746750847531672506978884861413169157820480010661345182589306689889658092031322600567180224203980044576679295685433806291538740763023952295769861505696816443636293317707644974891458331632010360739143580846804745383013735377276648885872573316659203200331935796424314987397263424970243669157160536129217966705937276229467562164306815885980222836632984584466360993126693740978213665654161578308583732194996956119446535796877152607407491220169578624816992188236477202783852900015567927682738878910337128037529053207158319458740320291809487150897218026893460473895154124890848256124321569593313417631600787541786123539537973223694533820266958938174215572326920106623099806045662328696273357357902919046074386310205502047729725927831275533472316477906703771445868541634413869276375362745642336884054888137013148871288016254494714497089077758781066859612352120953408144819811981758889205883437832095241671991096578330528483681326512993521966552986445179213847846738230325806585287917131174621150839000530185853290401635788100150849855254078023402953411395705762514051624301882967588784848603193546756555842413763214926602336501184653144877461500475300705698667554476280894922606321941894574381244663268229290322072841781784457339669847908327972046698031401911447368857608271090131287291249782010179526936308880295799670570122208580105195468662711674621679392079771832347856669010342181386681223782884390121451894872120093678802531834413661515162679669332594484888871762849508671495048083601375031531042520570212059912148518678882951046183222311875607405337733122720947476595440566547200473370163087881195956287704246728924752260495698121423874340766458233443317372579125821845125741527944541167665954881073179320778632023478092282174510808952518692582408985402167489777990348440974817800322532204649411814181083830268725956644999314577284101157330456858580806385980782438331121597378426756914730339819891790714154410184535506795335038362657499311940211027112677923271069630859471871769962211683513555522882533715123570765029289576695345151109216650926263034393128451161646735260539468361554258377979735365263551501965589979933095029647252827656325592319739053947720492809703530939171123845293274381690228168795186501356682672002165032491286010915621109455263012733459849965509487322611310580757117397368408725165481519328521413309063027664897112184371800364940758571957846419882362496853932107555051475467063979454343838593540474839051368579166456880476305576256204390659864522702832706456372169080765093361798230746382738996421663220018112698516852307543858964881123922104197857631686636083908596302006304966711757372741620039251984281914173017073693885121676720728519991213374468705603981364393512702114598242327446890012169975500926203702252458648003325207570235531480518504104417524238373167137862520686241012251151644044277589741323956636774416853937839219089650837006981077903646436620046596411318392028856660411006912261967838277367202385387994294025914765834304157789812360624187903068160143173567385980056563121274477794380983862676452562547449679848586363241074448713663384263677038889162680743377301127360585525381849137180239417689498826688748140815599545246326107896109893958506482833394048013549429848259758020796788586127727479499603122471625576071194981921487528486380738697669857176393800738260322946200693848356051592821189699316681856479604489137482219019928997160094281420740553636423094836465583919991837688660978837434637659576073689165523479105559860188877161690543117526065170268700959796732388597320252552000421913258938117505966632320458798207074594170321581479206539045194585812761765825424100753376015779677195186511060534575588402796205075772639208210832106293196782851067765673754745715474209831270869975191245031824769738154901026672830503128340739370141158168693541886144717006730419712225133327770241689088787323248462245871270947009881397741745718391782028641929904271371583912210757016918968244220561626436891247994009291019494926468030762822822718749977213893316169615576540418924926001549332670421827452761243078425716396035144224837281430219067959039071578722413667919174564778103713076342163559948116871810559629008924609848192714256556251342114766829790250156152743119808581717545887332748393936804564178696368749477029797806012684063285095716985328213536178100511524260026187289860762394927261549763221216218927908277596683715991134599955417182828622549797207479632917472461712207948266565966373722635770689703048737269588939416162938278286010621750447801626931438355014784147014351335588912376007692657517718287617650876712640065778837126137636986651790856293068356300634270782895629783434794914707886228290686869388436602458907608731565636018650424790812892920822313610865811220919441703428232632596899969258770526052857379821815482921629097661486342840443361673191346189685985538091374096493499544777363765643649123808637363935578357234565527409141087906424769584753581721766914033834544671774896500498944194119010956217014311306277011177560397889415837407669560275634153825976751571011623966474341772344546080730057087014622123883746596320544988665485348830443481102626883723222984072507418097888580817058066062157930127679044877538417879817253900757168639597513534444668828997446002819495466226217151094223338505271503045717850361359682119897419950806363296896223378799584566955359878529255999023359315671176305575362439243207933990851178265637879600281316565728714223661922682071915944581207907286730533259955260623499108953349363325896962128596725837231003856895127429254071619507898904192209749006063993817130318683736507100434456585977833169577403568000035600040931595004373281736161023083510956808572504553709557780159348377080909501399884452220612601636227261380212323450983020188055333481440027282454484907470363356644263237072053103903459879743456197864312908735857109646806512988957707880735361412161352743483590110820181886477040309036795666199060509456684406136793441998391848124421400038845525517799041770989436354359650084805503387779546037983384196719718708403421389301444727757073995443929569600139366847085778292532295339323473672851607039677551569671510520652309866612029582341607248160961432059051162180466909166669142722981536358589820046505732394007576977700810411296270912433950195903177192166171968299181861047333092803894601214609628580601280225814640482421272795057858020885258268935554878195160564322472776072295961560600076864989577714534033345581061583527736574803636271261614992984791142409483805804281690221973072533589033476019739204397188874365893039690642823854627881887196379905976661143988935360571883618673186383037906250918935220976663083909610128487391498806222386300705169075971661522261202609232672087080670917259971062625378025547080331985303382318302339313447444699633005952897282469421792899314620099114922231173053996323390827770413079431344512200594649325421998069184139624501218031811333273450940441515009368876519244196586363125627784282274175670755264984946305420635565948155320283207817446256358779434392092380564476730007116299659572943651552892380904071971115778655526456339379105565637560560937826376270650958995786133352769823071800717192662011223956384883156118737885254481413581423282951514591374362060516009206418402098373030169768548413366738952543787419637756619566967767899502442886310895089819035066741536696344065899678199823130404602800442006453609495609058107875002355335239760234614632661544865768894625764789316961505231258916844251644513080953123963640310799920622115365375453358611164116518642795286754232260928323077459055464286981699656951394196297535635161564582938424858303851755889150196518848430410549166068259122728749686159427676935715511413908756811706407317376966209080089395260887176787688683526552461744693936259811484821541127758166670872889783376104957041062385879144422584210008277203791598489940025307074967221886996022117935762655410905874035701063158168811346730012441945869320864631789536395395020727005022613219998406249840400929205743920964717871079277577609819346340276367258034303220189994955755396090306562217912694895447348633683712824748890742823554819273047045342051647605159339485404936752518581638772075715520566316289710319726855670245207075093879407697666923506113919796560208704744300135576345851228028380157910454693612495434191889676443618518077657045638944972096691124065689583545339432837167218149443495862975805797258014259180848275751667845884715575346624876841927676945508503337206518725773737265556110047177044507456567219353671693233221107650585079860334779251283927286654186482351301844238991897985198330007568972313399040335136299875625386860006429453991244058571378773562404367745386224743927309177905099238126937301274274917287116996920918465398239036889773763415616650892942740568505129490672079923472163449234930525806354300903288180622124605480984899916550891955964878996264374530075686937035449778469525504229951018598282024612445456287260053982429586979400819895392244050131240111843389917516148103962185037506224662124191133687226108112015093157589385855021656766268630366363984581900260735447816504162086359867544927688232096249280195038017099523255769575138688401246200496513048075257142121131163885722526593037960684308656041784876805462169251145927796403084224182802306629794789333714044305175158888655434754213045004335762573710294681803859943934342484867190735359619218958465063111141414218567282683137396314816522250604272553786895110224970203993703247176539492374984332642442978411087728150685766839842686733168696400152553862268917630951474547178615015354807755397147908606077728480124298063477945233756825574223769947159803362214212302433747589198762313313369571500179981991726201566015280520175881284688715643336461905299895392037043419486261289182151894616400141087391238048568318214870083321516780073452497344188558663603478123797001541384156893765947751926983090428189249496976733723643772464386311181940842038148823504559842534493488527644889393661353767451373150855594211872790161319814484474325289061007870647375838087721946713806883290141854332297217125622194955972785603049534676965725082878729962845577896440440631388639209157217473005305918244050159837206806900957528219156758682699668163624743782746987195722202576550534485271049934198876328215340380574403428525240514616750600179039980955034237883171280165333657781033082181839851207061394585302515498370390091221255720042246987451210005625862223989193478445370306135272671283477504562769870117218660047003207008803417630916804081966393888198830495045250619290119447518180553097381126940184322232521079324850878727802587641732349789547394380165376577796796017120731157319499975852596462749355931514729132613880365411797609079645188167234315631593813616257144431428759176779729415738931419594594993009236981601728712938963394022293322076930565345030954699576551067036174031750278801650764127538931753602568409030743259580756209076353057943208462918046037837698733002427327247713146311284151462051695704686608316525277548157819865420429362925684177983934450560811611907604626362064747803770769082409388773049230014178004876913678328929028370096691977221091596374859223671642318963512030090629554474231123823515112821573166567741452362521499821888134555521202721431854439420124428393573039943863429207930867129922497661480821149261035492708407505432680965507079414041346730693028574743265339963803352634091823841741370633967546539200000383681791887772946200166806870298721704817244200195283408972014601971381342999699470365755107717313636101233469152682846957979934812555103803048272627986458025872141712880280748214197006203378600042148214555296219565246025196654865974064957623004570330008091058270226672085119046794024409193450741293703072051609232594379765774004855457639644834918714674507424385258810846444432585774354207638202193044069481193863209329982441489353384240529913064959402062761771447126974279303287716753124830064632118431369896314230478746694626299707733801312498120581811719957777305303935138341155375222120601707297228275253658564943268625800010945243154973171622773571535462906614584716839607899423693979099545502198253993977762783368954917866944514858965057610619532427803100944956005593654840396752390816003249610062767542438022306853348042848665840033713718680028718332410593173313024008976505664187200007503243597933053354380617463353273420029410695737787385082661791381082195467456061010363568684819473936229014430067066607406465457576103878015258383833414339444303286458189447868774946922287670157910199559420277648188470784933461989147488436118927409669018008081804421630532552649789850697153641264241946369806286206872966788297897703618313183599134464572752660224269278679339111503801184769264577316266189955579889241322021803712058999673051284745495289394860723994911148275480303703393371193511275099776480752953187795160403703057084311382011018558487547155345759342991757359934474124668207581846730601767797658406203752003043614836470786415412967649420832379867051490571256744240567609777660897651069077565746750076210920465576440692776160229177380977472321542138375670924408230474181100186366004682170152426570655200248380843201242410301665969858457548538861346276488599133388868009525261726938863816463995408796579388574640749809425581661938687165641014802097803116891571047656834263936908828366529695529113110623377565989937073451811503945355783261742775301254887745217974203574663973470428323867266664924146889849045738556332438743697661752220664536377879071025537985267171590871795945164227000401910021008850868962822537579954666493325296716924891695080092498198328199229640114589434106138472075120984410331759599647820525396857631043555648779432021339420023049304404355274315369265071610757724260318784919392501683475556080453781191347976961835249755540883485805462406459285272103872920402970989325463802623880679493275719223785545069361556592223057641624804157474735212621595801769247778169397635107081808358716102264485834971561666943448740444296012820795954178456639084865396483533878117064642621668009217799212490177362568328462321425219772543851625258198751325075592416151726632895916552024168385784462829963127533462753185560818991400209273468588720056782746354905175123016211262425012438987415679719970424555624295487566764893289031616624333393453164059466308539344979009757099492404741067987943290106003871933263044853875775531999938062617606774701923566736727319024359458640881829000468321607694614659113600728551309478516411267186674642373059129858479571931669835031003849980539885450737063370233347462406249962685977853279126818432289029610706678174683130243311724588501577322980307420499482976541235087722352509511279217216235837816621564875800743078736613492121965898730660600779591497883539647337947361560715399537809550034020334730062045165277914442852771086210909478533343119731755580098430134945764069756681409564584281557690218754577078709502541423943470502678769605336039728527543834346782182053315938823901760054167274804231698662290768581802791216423609703459678534053007362455844516121301300342018291110213979649273817371741062916811263982761527201082702238057339256658741415455148671538126517972150375694191569640812859799190139741503812166759127460271237640986408904502059673508109828701308415142251318445486153026016806182396712838738585866601820737875369387328830356317408840117402198449027297227507248290985844149592718630138454645888389672683087686646758514997752986557772325999105216297214039272615200764141771420442721064537216937183866182525950280445826837520627342215912375363353390440332766505159596410740108333201975460231853633159752049706025055412079025290984538446683617688285435400868911018106201155513716578077716282361984405071327187576476696770519933134483691754573061571156231593782950903723742074853021270423602299758400400550171541054597509318547977864292180166910993425858063233948177263635826421536195120720264064973975027001946642344866404576537384614181610481426572974772152529873609395268364540008337934889277817947264271448733647112293582404802855191617470241125001845715550417614170948627744393888394442820562617791709899207859564617312900995646135522896236283065367609581272239897031014669080432902857283080720971513430406521617261851373816537742368060032960559090237533689057401139600758267529657010698879766830309523655920151136853979449578761272786193582887153475608174232209832688975499096158385680013819093601828383123406343542604725521432497704296383117900552685167107828793535852478415784020029619296756434362033587686872580264928211966218203209920821355328823948128840344406134821241507560626030239445274636275075812667926736197895654153197031365100235021364519977376656848667899217207702847867550685442434609922192113217044051724209849230365207266303661067453448935318124645034239179630770626756839622030056150005559759606823905530733073956971270275972426182810624251162427750069128813056730350841202801702426289560824732131472293728043474998430429525481780674818385303842265169215967952616723212958679262155267944153766819366400217237599649882404896987373876364972802838882631346799746655838900299624537893217994017999034506446142535236107392904046369984382044316215429528145077898794455544419283426074991172550680780483817323456126662916521341281467199012302751185898298292497699570419336682358362587517084870771579154308562238969831290096938747144897361980746026389197126786562798936111451704586283999514330991832779744887859527095429419371201559613331073714149235871488101197230572628470209153151249423117963680037168454633099131546839822015230987019896679283478626284725273781685960037569973591878041208810895071601141471615143281271057429820598457121390710936409246480358377618605475979394315407419428034868187904270873491691246274471855302881247355663090327031593898833577832529760570203698952430064170922636995413648994131998928288671861785133490814973993777553040835958330350807332013015192630461664345849652625965374028130952040645835470853524831173691613914977524284799397576440227440449425988348318190752456584012139811408799286198946455232491184196267056139693582059397797718316291405034017174686672461060218943625928516071829521080960237149141677868915471159970503038466184488099869118698113259066802381961578500833065175581105072395793165517842152660254944091203107994293742101855686924081882094866093180501531513467844838290884669122879945539519054487655221434431782220494101421570600204063098884482345860010807252139924158694972382233261174835903356316800595244677313850731499879067122463431522737501101035184407675046287103936727147144087855531434960974940580883423819372486285518877131716732111237963037338947419303872014854942407061240405122585597603251511192870848026582421061598366782553031415040903572354326141796286837769677419996171211979467752179142900738921418230246486860691144627097853321753788691680461520556540458088572652717578026788875914856892791907327102879291489738047306454220890309538655943429240538777553967667729475573107456393643734627155214665611042200268875341087297387721518987175775855200966700179298941369782057945600524491863890206832717951422688077869136357244622878366410462427476629671308793038758938585672894284095876458879707751213856876308792759176901549501831641772927380172785003437029738098333053782734891820713581688172662802971493570911826469084252992149957137849571231872693582592496504488976007282683957283721282551470245643703251589299804422063364586852612088942093028001692887086388893624107715168191362275733677148613892764671971337197985504116922819580739780452145422068568352247078932576707883382606765246378941784790963540491001592007681441857293459823072781199867442777385568234088212647417226440146983907780654518560018859634504817438227974075637440761139377651387745335321716344683264822492569851762055963410195317074997175765829338796391462226738242833470302687129236225922109692569740281071647942186519186121055689814392407837677250226700404523485619257055184371469237567117288555648891783178609685732020092017847093644371347067667041387460553837649202623641679186412702829903508967816746054165765010410647339415136270457200287601810325628867778073751601220724395506238927149522062168995887534162888897615171086198002507756840984060812842433738117915547934382722069099371049861026762141700979348213549676276625552242579873267866575319171571146035610650817531826812891855699991598301170175438181273057866650476156944774992471767114930251233588938679306451689396103264952280660907481350274671822912771435756488420519389212624525332326213000588773590245833223681586086340827355678671902319175413423009021932780421962036173737159465361402088783832260495049847846591752415466897047139145476262730359535144154692846383483482846651497455015156597491168181229753235782669855676086629078808741712317266877880337966056852110565689009258220121572487873231554572504223506201185180693898498031168989314788337193295858196780991494468459001510196787857557150676380567249408402228574751873148782210938035327645741846017400191671142445327722358520434720076888953147896032167088403414951360527211398986777185733124015501048357555662026662208473047460118947615276685931357835753971082459987920412547590180865519147380602255424403244512107962297814508628529468402167307536078451034157413108971983572422804694322981250130877852446635443600247606716309280368364338799082565008887683916830000148151402125753060575902169323741346002737662316917845352110960734191242335435842976572901626399573990479047762410057241724448365842784599639108459933512061185224477191453223844580938283362072423027590939290905925003836289921343142319300141633642748247115053861376036510458938727235054013381816020626447604228403417590302333133903399242514456503486685700541686214163078412052163088817928716728080256672303179523797516425812828372031980024714408639490364080638035773140448774026297936801087531606444220671987850410707225089452076875039912104512472375566661510083440147602544147979503736545572331111353993786363146478939491414299755369498264929743526018081616324591279525744284802947260098641472384597748899077703594341705946509885766237429575340088792307274177807731035891708753397859153520885467188712345004373290296094562618912443846925073143303604157585209649125854144549663821403795374801111645912226414864709698942354284902541471702864175707468617159926087607670823816982691112689229802884831395216721404243777197510848163360260457076883799984608476341605775465642797238795375944674135546649304698718082658595649026243449679172843584315488613877068728344765996523759096502232817668165630794881056495883830726634767827591697129860171418008430680602949349935693738241339781322392973399918528888175911755454619830733642254855376095796065898575855317739337088507095665925493094969337887259001840247252284179803219089964332184988828573914173144859337026704280786424747406352905365953040347639940424692053487249934949238559795143015599570232239953337799069453297686823897693180149207911285656575874737498219870219393084613076948762883030151572135194056285525993419334049106208165795152034369050802923327647427321308142929833499001405219994588728805199525694485308031606074666907409900914455912632436229021026197493794902161726302082212036454535523502623548209075712141041387354271620821905901119360426479872568725861070859185962053751633076940830369799359287482640621531256946629839756612619771221444200793325318381093962588501108136196229529927109577362645621279649945160297717227513475855124435785916239150814210932691584692214125244187097261597507233578023923350486698695278006918395938937214873273218010326262356046196854568125075293847300860458186081745586206226552172276349997101946842509888110730423449045462075069546730688009158023759262027957536651225078131126954426923462396685122260100439606329531684863563724373116646652460909279822925846004951963249105254248701802660072871392038707490574531967056881247147959422070367157601818564334375969362014670089710089276203349322523750751001050822698607065899414148177234780047854889887909884665175706021033544936760126634863437094749495112945481921897441900606184308025980672715124234929882706386065992725799006601438999436765265110246329907251191936072993159487404394384348979506474659210395847457431220484324695665396535296742017158173681956355679107524908927906540800051918730656610597343884899919219270103533921811917718616678408572449093272113838875144563318786534492816333839986251929019867101409741633425774823850103555949909507027914560379828854594590123087127608860026532088894736363620729637232257427402517290041979033178847471237759768273924136739781023832011879630330916920086478059714100331214909029988608989387598459882936903373013956997439243556343972657881935872880342375266637463912453458870701160635204328043255045774064155966863324192711590428041281867592228590953222483407575580173021406123420031026675519575036425157265184666227570658988633747379548440607287012795006582421625865392503798831117230351107800442321269459265645362819653927296788469548834616628278153609865363083289065422789616428690306125495265009041724427809121125193050713715036377094563484085052997548754700913751535761667319989242771820383065919357266011432805327022916753369926951444640472683591556245995635516209111613986471549971656481869746730167534833620927764792007478572204507802628071375548762987875184575042363635397792669173570718585972937660673724664002892708644771353410569095460605041178430796907071181965325653808845226239800939486783124462288211244447551493544067009911187498796010752056105061168056795739792350394777263326346022706263696935436133699175034068078734041733145253369012499920117740531641648359314094265036332289243670118813122268815415782033442169281219299561650686391912746883403809191434464074793373751488629993372093133042397212483663234199460488710429808771654687221981605539002983517205027917785147290997826099089912425716747434033133897183460568350251302274939655289582109541401254898990126106779012932577013451168605513375939657636591132851478097843739345955476086389343476234251164413828560439537533921320323032844985118701226303536134445248177328364316805103809890841858899806296338528732448444686538929905643492538034544544787193336606990302381336169625201133617624934249765689422642745717105262117811765296331131293590913450618128965907264052729372336301639125090249506627525442739690047370101099239770834361212514539107424984959620190245864219510178571880573962968518728588587801982497427926431625792944301371511912843653338181886515376256649495347179627629615859056238400508563166725959465592472281981216104505408020476402084814884721108315011610206823257878023459896737757637454558458610311494366095924258741219665575645308602209270582967073476163469621765084490649652797002598665062667908963790865761661885782440187647791032073255861005927627550513113058643138161772097867863034657334045894437143447970994237593505281848574201120174444085943408570120483288985162890491269151569592748145942568823876718974502769354302998250044678776126095117734652379031520144436185600571398054854616562686962979848412203038135332249833240761374717564106637056874724243188413907993975382726563311072226813925339742584314384902261092087914003890486571249326948976993267005209847831519970903846006748136661227289923114326461902205442270918311211781721769908992079386736350652939552997189611886567051942151586510468473726921336239427289259445407429486429092597061989726632363511336450994367398964591722695352418819146531785717369299789121138476855793288981008603076501144946288754893692119025229870396939723305040757140547957107525199370365668361427342240647137924596297713810667467513974857617906495831743555081321363140894369663235427164172945828065096255480345622373153376279248860435328666708790007322253959255012048035536724727747402535616885010649612964818168205258889567574033449755331077053876402965916502947458764322922460796705303824635007816952807402995323781220022139143419462034908118244739985667792733300237303608639522947583136129964972500411234832317047501346349675467583739128204528805105739586299676926190830543877719605060871836603453956684019670818962003538091690751825251799644677941194000785585514505371288566903973770833930204700761072947297295388941649040166824362844421836399998399153202329550778294741707484922915782753762779681898176922610390727494327819086434835855256964909302685059242057438907724046642054783392485548752099531743878663984299062363701483336041306479884426884250661748922397703415858117147874074913604925269688425553270493105609449227559502457867858526628244903984229393658228901576417753901801009074205309852995522982865887770781609123993691021312869130428242326671395287321034755109245613611471132193403173792895170789565107390007852293878985256063162821706586141474866920467660168457511440408009654345452102325172471462540383384573962280340169694656980695227631269202779167512511223557932232816907129506935500843199390876711255558033996490438112462381321142187397008158394086719596350282556976306957758706225119422945154101194245792865163197704561882390889342228302297271752336876516830975346929774278147755959776039036188723441352048641384966647800469179526756442779365871294590155099017937615510820529768297988798206491484423664218953550861237461354123213108916705141067915680844742019680736613149303848875550054008478429996036637366674144152508477040377053247482425739448730779777778443556591771677528519582609210454298993246922721992376249177925405701064950911943691497710419451062525387644167269583014154078223381732108397854043237573836721566614870082242989793652434976987381138039530512903514622125244025596396679819539564407191436394277676783168703004939488123095096779397582715730637662549346755093654860692995156412049723095680794248387634023019179553552713750050867699514409369708221376695094779990371193970740893237375184348001805161165635075136712813302361689198444148980783460659915608267914037670141884884890519447420569373577702933166514775892045125185171782140429925173866011579632219949772451606535237213515031560098612015688588517618954421420370665161862946409580589635086932335478867230390931415584654238572982842211649546779839675158292057022805338944899824671835390074069732919119052792488686092776682578351769799288099413807041570366688329450383336218169147090452763451629184938471749037974350893123179983805750205030706692000268000817610844475152476415670617791247893428001841649872710885249634783273201538226111177492922899616781873900891029582137648897706248282887698822812859813929671146068103980794188258031886814473905296662228616210537227338701812379328533725588092717117160917284535319243958969490813265411644766831210709908136127270994129969167824929695021129084706938049835904117648015283925517347916896622882758945672770796695080169260667001108516134968735319268519604689758577847566497525801306135570077047018900234033848515157620807594580095104484521188882232715469164655456567405639637682984134027374882767054141000249801288826607525372517229933533446431967234803013126779190119331092859417636083893883615483179656591344163436148438476272080231417041302481837001445249995772929370167138610448373578073584136236563908076995728415297220770940123156212025239904917615220169317594609085994622588119388635485487444976629506190689815965837486952670815491061902861735601695114522106738516860707861549705823866582421807061698533359875037101408910648570342838268873824739148232290023978131749943285536468740533712797609880833964274487082912305178496518567109645223494515528379158965485132909249545086494496844929088524241291641481464691330252965865551557126577375681063153354019916039833556351440589742519005049655306912438885095514039672080750625629446328359737906976068390714518141981807258860965328113525430050805779300497777967304164164930558956171828827089796746251748974364008786860127984293645695590812394041333535834496956023708892453313457359493377194343724723451332891317913640507520728438428780932872152369069524551532639150080389539774984452074036068463103536020900140595461694452376403262854688964365078651315006398583118222637291729248326109429394740022044893502618000592961295526803316408246757116461177118608123557903293031520878103481566989400405122059539278547447915393199622107364410027962162838306421855884932098003721591098572305877918067686545609323602951102765719274863920975454309110573599983988792656465139859193439253805478596693566890154348106208760990642467847811438456620938514912679881557548708504118625214743078983926394079514908161284291821244634445856440809714871684176450362758809797203389758665962098730965984393664761779282098771020233939265567028249744439695167895045596192431763648165083505361635659302873860600750098899687096167647523831147638480409438991691876758865198042949977986652870431086741026820799766339665746308472110585203764814769490740152575141684878893765753112763754829192021419976200286980961247906644097814163076470688256624742438494796711564756760831076211816662038811229785031692846428570197729519546450937475714924288902988916683800742817232806215266922698861509691010826073501999025273836203972457424798897741266255939581947076320638932660537890392357769818849168582200520578831287137913094758553519613984559160970190138378357637404672854040393440541032873201484200294819406340103295263492394930350084139881163686387883248110384561540767813579642310535369040522324476826366459570949327246353173948171877008910769614270490062447959022313612722982763446250480713912854096422942218162527189903820417587608016781321092756976756780292271780387451458087618641498292185719961072821721082326995548712279679686991587954685722130835703147345688166973287811728976480836526739700509798798350991207357121808827844610759946850173886766459547499467185138721537052015205379808118012229935785219294331975631789564055524078445911282026344214237872401342502184065065981053563193969834364765134672586583633721284754017709818542648873598925937361452543078273512390445496903174151335537537354375760911267546664784772267274006801448257698992848206281796660641394425413412799116360054687030775914963014405670256492929631753783752064874364110784160275331568999345229078961633927401228838502496512661086807219896144569596142934081740486145380863983221854916948607184838490917271432788477541480261209577650792588749064312838654399555182225704511208088406317870535915494588184038482134620878977033232347423266237158251362117684001925989363403745521886205207998479503345627257012174537118077704356927895179477983779182673170544473717295211028330647645408537600801328126940266480635046361079540523567612382811072124235065268941362584793882754367329161179712281038444990599237524591052348779027573242225093572047065624052826518268942766871974277225358862596039224574246461569306031327645546029060469170612909677418521866162520787084385053713854301280018815982606645755443561462982746051593296126183495415724610069675693777410529169439908153836921958961265643566712163966532004174095234259479232206561682281781917729887900567057855519781425888994566922253144536012540580171511886676007182935517487207151093246238173812263484297070032020476811342199597534763005729475552238112379835535787823870796486866176588241072843776747982353008681385109413368052591721465201645348052685574642076031635304476302957617694973774816817878234136880519025769922033148512852586521294706065609282974824025604428416646033979389355936723918773736787215819838100170492670218243617815083382433833821199497897567896698104246967701784492838003916471573951379428017763516497838459898279460384984844128193465373044122259731579616282392451585620646429413464521639834637051625654336066420945187331379321763310294923562826256430870414549547030031768848395915715849332738755688428576027155516894184805339203597884412576947594982886997659616926362633337077990945866037612480633522161007757746710024196645832026767272945914328575234486399850655719363887195548579482751232003939471635135723253023707303032407008380946549455793795080409445395435331793417647852025665324351630667217475511219710270550419444216044386399403607625846851392395246917781010257706639789073213335006284603799967466697543348033110610110873188116331744477822278381102006921232165214114469509362233172638534697711362718440747803636552914337803556175902388299968826097955785742579173962000547938073907852909499394380714278353542361942062920046756560723823164716866037530013223672579991486301008574875474753617242013027992720453835726124274011474312728916806167837940054131973796778647555844998284502634818441077779243241897108618163916622243791089079090059026861005678197044930912247908599608611711212765605519100051975645385052388344616642028606842163191909447219049653638682800423864060869222194468756538535075207597112804062846278096432197809658853824744022732925786386440686651227630647069399501111022535348675143218834976956030173197496402956032100975173052673873710830994437801165522146411719215245477175951043778043340827925441960353423442095008134176566543197951404650898963264221771573825344130307784131968433327104020432454351342730024079839330363793589911969824584794299723818593494882885682269978029580655027484694860955458376149325613094567104332882206719567997026216366498692959438231967384437449418003892093694808929628524752277492370771446175591981443034230130053433356566688220825487918108336810654104481315437484541152822920514610239037480206811108823128678048740672543898948934296046123422972434625645188560973651548101962740891091407309886349531965228291265887221418342723832718301230006232903007912206645606116494666787439105020828378098095966675017659947534359484241175799152194558452842198628738807011142012432201954677112821109425427418497873269512853861163258926418004183484744252248464085205293796378728103989197439296966596003360056320866502405729514887142775711649413489074216819733731794235993900319017251066074653247168768786101221665689634541208779031590399404768289869478259935007855972629113170840320256035947351703420036555254425616576647110207343928447935414405285977380072107685466012224074984467992575098971640309093467812547212129764826781219842990979416285087084232015840703320944471268875841695750455100028342337860466426752424268958805526480986272567427796449356624756384403659236208036035946344542973850228115779175603526459935829052933053178462392915675784876501006673490216529585274717143996023507051029952014968880646886096543239719257474305526120320619996591650244099469782067864155092045267273812810741953825134026272154203637974803288388616139986616118948606097058980513703057774333049862936432082680731372507199175235471959750969536292485884982596018264733545827487620161136307977873442516211326615741091913045345593414911429676306308202334272717781328294069730537286816385958827390327199947915863492349938550711967530668750186724554160540704229960245369545438791798945525202083422857926704374643380942426964857847739099709650724448236216977845355079608784834246879967017789903734570207330980285647993879642284423617420804647067975519566429663616159386049867742265434009113505162235750163642159588654107510380937937227209964579502415856684800326713694843478263904168067155586793520006195939607136907324977776951846622555928171740097099080390920877259759975460783161393859110544653673667234431584886675367689461307849168937856035041417726511953896550365369225402396458544747196293995573021750253473380543285154145696475068592035859460523310625533781750414586877694432047671971571434305989505789779835481164993108907726480128182629010355034744153507123609443226414060634593572633374795447320109176067540919914543946118958331803065085442631034210023262058323286346602291586968939689573494224976509742572536859153148818489371778342715322561246346796668947221096388253701470273820862757545736589723877993023790585404829871636567113895111347183520655692336001253056145778274258392171886719110445385163854285172854135142098942896149415569210248999794106211778836440323311104353199650349381214898353699344315780672998243702744833929080102521357908991840404466593273456593595606910781475799468548279533466371347632705357738137707352357285890117058318544376655152091436706076412049060371290536826130482745835985779404623097300486678618337265204578880728918286579642573003181005394596657886832233896362929063906386046809842208557980072716248692839034821532272365862044018759282080944265539051824640331311156469817344905127129944771267569972635665952501084635728594838819168568068182761005122788268742518685281602342674893527808765196086987894567393743814974734240523840611408091467026956752088604830247933754254652639087229286669488913370118162300029046069688340990103671098623946277251280765365323826299251158747123942402201794075202649649235351257080297666524007425730701062087723201061593510356707265780688932019699029379064767065345773657675179616879053929143249439398528938628850174576600045073325912902225249106604162766554326034048254889195345156241034275433751137963262283228467291111195725637648351356251173081852817936831265523197344272577950361302423263831396479775676609915896923837818010837857407501305647982554392074589909993525730643364476618832514354579950854165676573363003135176853410786258640551328016252100925920885962382078705195954532172386858843596350884902863924516102424516598341904498106198667559834537127736992644885459887320056774234177198086777708154375748265816575481737311554917828632486898022296918523071835565440554286421821533791770881890587941720508338319824537870362938333769853462731236318591666082379676657802885399770712625713442712388982136229984223135116455570250711083626928890130193622687363065369916615827504057146977718401045477869499614636223571986087761991625989489927317339081244251493691076819094065560393570988757833348486123076956844311444955967502949947960690253344193274654989978487907652915604679901874573335284847638206833975384744325198939182171859992921071771261321531829181169123012881467521040976633940034302703987339426943460892645476039456333895584340880414941183318629974953531572710246118077618300036672894821069007710634091868219785129228522856497468858111534741144300553127804623480074696019170971487751390159068228707757887493064353637704809511687275428069706497742132292755317251734348905706252030435713511156610805430977307008134870952197694335266632635659501221722033416105290295737011129393516542823881841610593425229737182172867319124079774755806442682753491097468883181203585107483089257388260968372187856260945287399900026109497562196404252142747672118723149158634926595166027733205764208726634721126555901068185071724576874716946531586772774537866924866045946189268021425773895832056412625950424537320085407569857233464325045826870559848149712664857732259513261088322983423748491993269831184255445123835439675830428670122279462865046501691277293687760553180596483453676528242580502080264390005466949837668785514560198691275168707317885826202699852094000976290169080893254204174111828165474324897051749139043132966231869051945273600851326818838279439778113850209275025221787145898585511048915387945129398475372423788055383571860502541268009403928781862719559967060127207995874240619477399730033036694048269481943614379511017878627647842005563747237318876980259823668720179503000349187875742585299700832343737122410116713555070802660493491927130654703662863561387195975168752352194367988997727993769330735094088826736480947312100106045536436281772436937598373747734995862444189960100085851811044395557854484605024049933344791359699078657749022994272072425757110628216169676061907847665840405112955600560966434808692875296030999153248155988496556642068252526635874600175954532047420786744385933513266422785251420916333175883674520234791009838162563752572927677551788269165696484714437426251104505948004411544262097952025599707906563721130556940903109288573663628388397595800918905779997617653133905899553998999525907381128211860372446587834893325237688777046434896694353563905592387268697953112829323878208189826901135074009650367679869965574126854172504737453884079926832557671292472056785406278607602818991968423823612545073951350931900224731401574818311652369023960449491476565469124449629338278263039048598520571670168862129109633066872196189985543410618331481911938967257137661286928675088506511444089877329666455953203157732870490159821269920516157765700578389347033550348969324698377609543966463255206159254722493330937728861053288284009682133718921672480965947683188255545178253289138422807406607939084502839820942981793523105538850757907794677941062566773885375345667068074296005363581881112595916103652241111121302291020728878631772380897128320213042555773138360750042665942938227812668186491626271308099465410130640020123984753783103320692401168201504477043712553686528804070435164517185036254532621946582579677406372278773128184622680351955347269177411303657781128555490014021951456580336620993830465514346432038869731685446862285571813566536572108272090000532121482430449812236124026803098979458639008535419277008146830118344703467169326674849076662671756027209395916527516736642199697077895925012696131305928790288189426065774778935974055933343565849848519077954071728063709216911530265353229026718203386823123477498527382790135672944877658952684507223732319718227486448125328120134971510297012611633416312173482581350445697162419674273188586512457998057362634368849736039678068145256407083811021812559075019672977327736961522481153945907657679318027183696301448565321667861250721192866777035574942164185798278862330429322305665451696102482917240911011556341069841520362263765992808254746044294642397121112635528609946255677692530581018588271236957281298436071431970078386245650866251217132172696379186096787787092921071093802005706912926355108527902806749866135636656592166074033848547825510102247490652664145494606671453003435351073081823250064744521971143726304031829828908886715506675951984254613299001607140613097316468106168811627146608894274683277185746489375468289408859670409918492096248815236482940400207432681182722786205736894015013183986240095731748196752050811777708886501962030800325948751618038589658266343839025141799764088668908728953388600914884984683070716375257939055105092929565404708852110106976563109815673140197771484272196983684599478661191174801041782191843490545307378357619977694483746898915506099059639130457762671100529936570456209296767674078320790816694208516716615390631554359942096782575945179649966331219409184742641433544474073341296628135778617466321223233529554164696625069875496167014128283836260447501679098850336098738331170655663643607776084913990660417032447911721553900589208567930781963227120910937260107807660864700083136706406039894105944621385642476423898623031222636943992031856758507372591237757850412191537394365665256488608542286808439508673986911980447943307340257355241750165401326943041606604579115005240688158598882565148383099757171420314110553772747070663084434834249091648809982668625141651216593657731906862192231821768533210779372814282959248492116086322128053822131014202470133723355710200307227709267517545592172521149695388853954613003404770194777523628691645887191019044101914168278984287772350579025964226772594280395407525065958461444411251999550886325582507905490187015537832550927291915663717702726629526072623045146411449476059588388769665314212208576107274565494135919528159051084400246222397403315386491345951816842904473491387932251281335671353812217486287964072855647931395210455788633023832465205667602694581087838570368687262277167878873075157521509856389816827849423047616990467843454079889865574145143907511272697113383640954847666885622319156092023506957159478467767513018572871794505594254695179540749681738764429755574759769525901780049605597503561833803231279563178838763033119216329415155118465700534301483669392002154368687902375332642209682537699873520120104431939296626525213394536441771100873830621431767722218917706070654032095036170742940496399827146956795674717859358334580289832886297942997829731553383064675483788467198572601974475203645002712249626795453315661854174508461360399206844076930247593485476494969871750013064038550607171228777518341895773902966235521462742190550260823417797312160432469374208067326466161190699133577045542847374573936953552008807288427803996313234088752654718159674759999931581180710103466084725531090383284058457983379508626813122033613111226090224994432967853172769849494076766184922046325966606661048495781163194705081659660290353661821212914642835180558435478771990702281277675278264578221494335826070687021669890665561847769787565108021085507805947808660056581814864897658444411644080798367587910989966546288524582052442230215972661945117130971604920925133422413584265606891882492193473243052759883752807234128282920649321339438186195038779632140572810495503731574210229734400977248293662716250485010576711784129021327250469143391427099400396557574566169548764571247150457663753609597699525049160918509195068545190175582459137232946412227914257263158395625934174420584686378444841178612663629374544082187789652778604552207836028199723966682401850281272685548668993446488318685913050249151287182837623391225861078446719677326264925624450906609152579643338811097426632334132615325448504278005135323866886335075138855080584546189201702706472776431161865873401138617337416107296387602014855882278210869467933592396559434645132351370269708533844053419258072560164673964555278450581789684346564569595156510576413092022711135317908509086737390709787104589873189726630740029638834650739899909643654902666985573978262631854450497109714187015817333339940724716287880278544525246489286678104695382177061522101574393658244318245961347669276669294309785752869031976994163121220824681010560245681078944314277338579355066184745113388678146803420346878826596855981067889169890902768844843077226137740189670545587097682764966520534956584962347052856793073588407016027829859931093433195159754311840797740821064568393964980042300928397024501470904869334379906419063483308608998664402961158086321628525727929437066496099012389608952251783045189179947262446413160185515346336722049457125928188568297569838572107818302913267247280269804017438394788594680514164011443010927707118935345661487654521519382397221383594878510895369370317402695127362159220342255972584179187232259284576829489340225790266144716026480102562406825770336590781739955649490047929798675070788176377831344572771756980805318737388265385163002791317998377321919017150244411923116689406254026210988334921189938120924839949057345029635844336306472676367356685359199498886334922282840226793868879417318947052633396714103282184787120499113244534979618008983660796794625135964999325371388933610589202673261950720606888085464571375883824223439092055625080840876423982762434355173483349511464946642670629045420896885022710852887236794400372224265661892704678410629243424785135164353887778636907415780577911669217660031705892874086122455012364569566167456021339273767200817200675085022732724212123180717536292913293434636754436581408560136879169647720259877063087552641119831516529291153799147214494463468503749054398431439393736608919251548081874334420196105964638146202405467590565404751452059451212508073569695170540912292695915169529888974411344970664929453609722714678201570168965884309246945857453973707558674515957862846154045871981212050403647098671644134143597635502289847621895963062613973837760558441224442473196276128621694982713973312828711908294047679504496066778307613538026493984464720171969338140818758144190931185363067178669615587503843926110193162743519223708158410968156308950924364773711714254854514328899544691528837754409148145284440000172337591447960262560674466877987633822501095298171529821743505254813273559183738389188831538290925699506804441368938253102362846117045141438382356724314008488315602969146365169106700948171199910271806927754019659927888446717482962659180559585913021707369170887371648920840782139626771300956272877206556229972976636623176695671230853477231951909411368495820939001674826355956476331097663742505049780597945898421175836629757209541369111589801268468047183430470744631464172126666160738039515609143866194732446541173837435840414204033562341805734883555659745744757383579483962701207875301892070073191661090783771776669481639109908771565182307477946941988527193012072436754198290187043303894981490795926312228613313840328410128937675538284752636170487860533523206035979755854327043325781337278498171629772239342265386972996312448033226418977988693475385403805015849126316197959140260723803491303342136965093536821656420729324677618431215276892979894181092385606689534815026138464362664081199787860751716560525182504370830695656995844010844640379678983493886971799491438526291207472652566916746859908061615225895199814843111462883909916070315076166573934606357281057085035455155606675755035606926213492676490031955533046595720778328565089096994741496112750694895520259875844969538052125886863418448557094763180688572596219561598648748153300070192871709455274523582657509119847063796614137077690670790012691462400125810891456807723516390165929355394907333580889622159677006639182443168845165986097449492779882869536741048636268431599628178260316409927365278058169033888616412423622316274433284897035021294241149396079123451116570548550872037070835503246446826041548834330225191618689150851224394736702947868943337024682783968180560049462590011378567954202440572718840760091924730481661678907320580478862706201113443649081923565116953386641886141549619903364855902317584581595652982716699314365533461818948231424698607797400859386617127637634775869584433698958092110757864188702344493219267922319423772996229864953280388637076479443796485758988653294581554396219113461892809679914694304948799417511922081227278300617022851345349161567780482759500790123101669623162760701338600613831144620061770537033059332615946234570343655551452764713501618055162476704526762382024688695383664141949972341778806372426729124449701561093894279017977706017425894769935357998147331766047178524647684386916069786155123560397620271846068140740994769507380593337195378502112963391702185316517888095201746413678325226747327753295410293052239756620281398533899000622042522006692411955159157587118537085938522714240544645150220195510822338752829993309537190019560056298068466419417693035563061749310591346167308982437015267364330770096274968887599030411432327655032136729404839888576502317633452570326129514650010236824690954032851850537075968605244147163275636789285863665341244182120534958497201529026270342120375317042929974264374439761786992885681326903059964997350491052496047691278054925176398840849616720015901601084757631096785818941936423365616657051619811580421248434543962153836889299152260679407162528529443830301024299232440289028685125478448451974812504393848903449428993799365273210188184222811003943726343271128069098644516486434697527751480192612429333466191784424696115951654563626742430421606541617477233595303918875767633697665369976640568640323138100534066865819191022181870809862065294310844199757536920493386344876697089836697091749817857602914329612617112161022353712859380969599706045264343170156081352976314521155583423140289449165435420662690307630604063013203492775705761611147361589804976067331088587886428938961300712637495656470543525924629992223589506974489294942011246626243327143159154769297192265620362377230680558326141169387463158339742210487613515179618157971992196145047550270329300734087567929029191044687717570042123435008678612092062252936854066973758973365499027655820866916757864450223157207365575580218660300914893103204601695068226953448471679749415454569958004613694710309806119222413789266525364936676707586944422138792584080763149963557335464718117626750337790909611728309667019116702970476084492945314984686782880469071246811051293844964153090277749916254858382128643086462481401646427740519413386320697967092499460701429655913978343886392196770447984046297887224664466416765492009998132316480194376687616887125774621128971483538532148748196202472092477397050376712163646696851094454366529448621215354272455524202165376042973737861370999854364905285524098723218752398423716421039575002746728626925970227889840021694171301429239246776088558710318809385408135442006589286852908890074605546426243781111593488417884923335899472729813728470603610803061060427865116551223945394270397522363564309585129270459338238318896052524515817222128169022355935737300943877513412679684244032744970287057677899347591945503786875833957717477353861022661957465404438348799342730755969290804443436228766869533784556218323689072232210803449583153176524138675791966106331300086235346880198875269316084017140197282714797687481839694663549018833474429539880927457480667777525501674684060832211286461297592475601387887148976756433795434904109831912375965430757360494523937723195227945355995013802665730126372415348414322026674785419837345806819785665810916156305373409564303321252108501047372011053651625779164252014024098640300262137252769434461788657131921867902062064862465125355609963327066248351292798852083705444040351618838820169479427570686180927569152583886290160389536783251779907234397799567405450987230201635488870130646655914081415982653983844076146043001015822031831308130054717772778544079241246501025243365784075959623001272890058364097635885754016052013779765166565232580486517700027177329195050677454718466872208414283335956877545392186650397572830123065586496324872658352039304718620771795729677316904307961074937055576361044523123835767161379738746470477091372117699835568199464179547849998664093050470854295568034995768538398968055002742584036617822502924011816117932020759025228131746942657035548936101781921460831169550176416939400553866096384808792250611467580586450424919805026484471524052627720430310020022669143220446565945935739946740598432669611648626571339935614628831908707579967464087612504016633765747841317347877799224698230042433613304487324811706513424357438857449006068368460886837043481357496848958381398577965843509575726499330471198113198381389149731963021396790192222956003603808300020581883497924544169012272745799626596615702872066729049249912827819411775541586535717661582972519022163443430698513979287382957497317315174463859294075804903212351535664873075797778909070738878380833119678634815477274853438525698799175975517770659519510112037486962232944793740030657808065003101403148290992202999210125445347791524722812663559540917729512717959248166236477982127743651160844100747903073414171584720040339398201139555636055133726985942450620850810644538477915767864020801309888356333253216019863457424657600698023302890353039103587286363523403927523826300748957824503313273615595742594597112787332956476975735872095995078396395967118962030407193658541217143881895576204511236529989978966770873774319619402657557343759155881496606016207414979758012346816523934600853968648677033012578016693503030637095724161735368113985182053058670764049159026034841469530943783970088095718260745917540782402775719426757245870316716610319805832939218759114969548413805306653221406262363379484688060824195318780093487187652243100850084590392902931499330542898742106965014745253864240841541262441727209350805102779602768771961689217655046432465176419015514200048659379394266614045752092695937583702148406109208426596638408212455682135157355454280173368077173515304413571024185053598378665554585360657625226514941594250006121934750204649440980469019542035463599719416996756077855322608285870847877854760035597188867774230024998241364430679278107377386046818037614578011561777143658596937621521356966282628968307420770736956472923043304887109709817421897127560222523951445932952027825329209763949193894678474295616201818179107205289874258935824571500107924618519865592962380394674522884182297955465961883625587969079744811000493186540701152592408098290708709451942552512123602946545254951466567152598713195736292305997681816294625017486110928080972398500217315581534429934751509283975804428238790013218686747723866419725269741881739863161353532126888647069595318274742641262947062450599201800698245593497598207785057125090815352622055150928322676486510159931859713199492238875053585932518567781060852068152655614539159714857622709650739552158729854689399467795430461047865446735254965225793476411911601535321745923467405428129820437313187918029374739179339311381208457631240711571825758150541994965746507156473701309981403203300346975507308311512476688506310169274040187519899104637845622140646389431583963432714074464767586765926251567647504497889734071541209531172249981415263492275397786267273581599754198975938925093116227949965994280884084554187006787909661839364766099266446782411038289871651175334557286649022484062817683141459378904753652608879611636585301428791144233112366197967631170435440974905310379220332196819872837404289047459837244971015813358783560755939928657709604390431426141832940319365330533522150866826020203123854954308420438538641228353338283543554685149177185560841511893391435204699737814011529613288158750573008182109764181930802456722507446209015167984801541813156763528549385656367667857647828885336062109809855057644217410349111016759112010783378167116186282078434614838364221302787646689477674254066401650574880380386221768397931890689835713465297302891834359940779643092610383438318728424172393724195943977022810995237384406415467235295278596952882065288388225625657463534666552806221788080918710447970371373878431039635086644471475745127715593827863074945820267216473849621454903623472821087931259976529870186469897695749119390234227560676053970665307653093917919228722363950148548833577597336878703409355362539952818899446159525489363677300548771727318616524095285926683873680431192154172329653665515635239037734138807234949299588308390721003509496948100161504686978625591867527640131878102141974939552913380054300635839754248857197913635036185453246983094341509052409619430932909131252898010215094407197827996319375134677007467846576093899377629054937895810528710104244584703252618232603791630996674073817339492157957462839901115967340377321724050165493732784508886076373803874006091618515004779677281378102063066242935459060382732228728293116901493237836921595874419472417408462532936684750881509471355036909181666779377615224437314990722763469666941065473267465918889535813107291698278627096084306544335065018617079416635112025338572318833455089790394756843643352057133279842536024132593223364574536944569438185961245281797325066859830745659671004672241698856359636493007096719376608422323464768119180452027562031849206173983658505428436844584494118081867269363088646332172860838872107512517276406060775269914473212869842881674941578328072656163939503334325971653566443744829027338988150695132410247859677796665650161457684122584711512778400642583263859868745061952487267851091779379119724396309672389838248846488666900356684810463287574875035095438597474553564354426935408397112384203607512303219865099560138532473155545807765180820318083891938737787914389193111060928832828053393153012465909990577702879803629339666674226580877512799113038317202509821178994285669722186879910637264469483508856840372249675348240646178706926412869620035126646724736655257240932373726356727077168127550787025484612678429365034379381839043637793476208770271371340660453841507370598804882296077056750002706762391242540715280588689847960823691397863261388076056105070789519278768974626738728240834871277195664045714143790328203551333143712200302744517935500823361110693977291448491174110695535318263791338829546742752235102912467100711738597778932275768723222141691395021051481594804643059631291668041335182682502630367514581431182908005527332686940848290954811919961828090483643023422591166043298288585804866106328908551547619781139932425239988985412203029371715495236140534779448319527877867403441995344851398914876243818498370553378754975332124759928495859683122463480838707011673523342990118110076598586906943867352106456526869750152048884593881914819253394946745746364017663922404140913018760148931603127419692195945167603718226372400561629331085239393831302671840674975233166885007365703335973847289387156866833536401821743360328131251177407529060046738960235590408815296423043694446186444821609297979967200279054565783696632269371512523924493430882246057480278058031756188128967421850059533162414920363827834846926646368940373021718487730046960557534325460348287397897747152431556954933209483491021160515136763460046170164045414515999099283229391214746876371656971641491349710387894172913628292039307007152550392891480565540488642939888352187529600233338764738074723121906799456361073813759624586657813168189704755610765565667692585770910566522045293867888891462319956060982977381571609866190174158477674872348708792334934107538264048100636013743011965063601487639129873642162368491445041886684888594091557621658061513968100024887258620988167499681161355509592102993166735210684231286675041736713490426988590611982083674049633488647790926696844106631268052719641892402199949533660725908554261274139661695534554865879343701447069554670920372262865669121563909699066326522822773128093395148017706492473220048362504531517669914093398251378321335846260658554575428319784657218885505248355250987880629361950896535121584690509918904034274208433279006880871872252035321548412057730914669365791266181153081854457317383954892584784048831262200866790943760824855402269833949193842844618547199049162115825542389249798148353177127942539853303220782317977436068118967649303523281347037267659376770909140567347148576989687470756706554089139902009648338512628523167304395741047821975628428421910789169401226577916840365238878639809620520820689122992710548992031728768037473521110068837109933802488961972500606138362293754390297477883626072309557097368900150041726475415739453731674481014984698288080457318682480013631125467645507394071381483467824999498358069589981741639896144769189602138673077651875199232611510218951018317678191061822919800094395183269891536734459219067084452178039526535492531188498528251150571627348110525777333496932782647664473848731822081509915598501696492670286785083796890477375563614722521355392649569580129536943047133912562931513833561133381827845878333516400004737116606498050553089464744485468512752892788354907288422288832074608116490230774032379577251962403716551322272867005402984914501498617565517627118288953681101627242689144244132447113614530220761929264570925314035685655006897930593863291486914087222860274010475301050704238794287821341275682327169009064284136230203086634722492542408091014158831776669411894628057890293489686882813614993649897655186013776450321355202431835735608500088680075260036756090127207641365665657475673990237919842965054299073605081606482105029732509368127720667919899329772973827128907017239418206830326565609247899928101724074631415781440903604500434054099499852219468859379775714796024368700741311771335852433575015477894095279906672189697696161865100755596559954998324028456449672652108302033128722827337069058588716880557851711392912045305780289895206007212313948311331952610762768286408994082394317812521368763014845881298663042100273589079765297431679079045586805287536387962204303470922119877868423277022025507236391144473203858627893792085771735509801272326515805286665919321603575158651411618696552050250585421764528577172356599937008044081586457679501990148778403429199724469143866394373195817464570011290947249614016489292210761396174452907286770588080165213525481467175396633783039313957621695449889442592005461700092750256651536667854055587939794563732504331339067686708896620334028779734123025392369988852432284476037315562940388224914220175727340290873412011993240745474294211816442961505804048129978716452384114784089104673231414294191925629270216307839168858035676639191914925055911142430076346880366094498398897973217176379151971462811251144217055995547210639318486135665923683432259898028061445140574074894998182621981903462775005526880009957310249052554480776425902976015090628112840886872517856960722042031882513965489419400233544566916846393107685960916090775344196510723069411933947835323183539723948682291359599002041576897410453662185063439390954657352190942284003094543428916393655703181550579547385263383837055711962243345878005394413235404656456653657591207943001838052109945720296489236672467805173257983396947410455513883331255920463603368767418056117520409909196695040385083781537974696911904016350220807665934717336384698334091791782059685685693780071642054282215691094461305114109694062851235295685298641069950387170617225369869346582095410455958645945600574594478889314403783438603152198721359061452025213388301180636776901431487464781696714012044125216520904246827339185330314446091263277145408347760405021805240421244933301482576260155091572148216108031029800510260386029648171788496939792494352327216422916395054083461872302559605028809079974178521911374322452016899363857118719764092161699890181923310569722528067047821962206364384446891797293139353097093354385378364607129418596858617793909817019173944609101865862421431007002014702687013368804330841403199426534638913708533684347975568161324379721068358208910470629291051564404803945770847956620742630367491702695569933583063207746980430991507164968768857963109966658738010907797071309137260645811541295686904306152404447003039709084392517958388026143054171780635226439933322543033574785795621835311513387152701339505163503265061757515110227454537499218649088059085369041284879352389866111249002917435555668592914733259696025244493634805218239158945420207975892575972160716953027600090016939006886621155205048152847173501325035507974057400188122797497036526161624440471651090023611079623978368348748693737540009634668739570312097303678996651999367576578223381664844922062682050738005623859545336134470842442305058095496175734709525166208314852243204278389393810159439629414600904940063580998095985429730654109114991078421396228695260098068177718151263643983501335820778742812683309305201185710870297376540088003269817214921209552208575039523086849233349852764059849716802689152673231584543943025039568007156249635486929928515941732211433762961511847947466309485618748017094278230731334290807747086891304792001348101078199818102273598350643784304657920969272230702121999874672112979178240352894060356833967403605737167175723307830563103905378718576276546002452284163803452272724905338934895648661300244530824954124150457259852039923276278630242461939687877403465395050746059099954052769544443138614409458348161651704022499941020473829075876616048221305229726166789744760281104120890982911433470572397230530509341053975762296097704382893254980020308655035950623126195138244030080487734650800188618251680517359300699618644436037364138487440834092708555171183614367877482541897895632584526401629233025635785204609547817477548327986875021583742900674969424918756976652065913253837108292306506521121859855538201823959159449553250255054850711153278860974953686659666937996199358745948668546052164174192439226642423744828567179219088853114427727634320128513387023960601784369082113974495273572887899132958445969016386370480126102604692963898288528557495651688009492796944536467138305354448429096655451974961569625784334979224043612281872967769426469482531606556141107314107801206196985085525585103700640543218881382242079415675104728007657307294505807499483076503304804924376401384090906197447037188216888041406318960941290677694400473831405436999625042332367528558730363802123373018489148817614789434085807373632135814999930819859619214699341722433597450565917809801101323981810048126861144796927238498809573214586206407706071213398992779281731319293137250551360548767239835003167792814280607012576074567642430197136527964952452861579433771054153642919835709077336295130290856170183870569042616629724185351233569558183201634314522784727277576654591434422973533728241633048838348455178241906338493235569812282612862060036572650067670336822702168283898124763981917155566985432592309601467531149953474358622310626677543563218520697856696077430504678429768850761792256268096018436957642827155886313169195382153153649588432001135983651955634516038008189743469858768453358719160690395681712817682990528775469936978494479516308256727357108599264227620350349225429671700064330713929369625524479861671463091955731149410765323985044720957004506569247550844077768012113697993871779751109344900021665485917453828950849046276186202247621344125483547094523213486169918172267058093631867966308652628986545352557585187330329271745365670001942476427373718041197041653580049128880648617733435619938326017488795925698332488038495111604820466214286687979644120584225355552690894581466990917765370661963108115956945938563378400133100817983252581435960319421394396129605188337889944036075624072890812577592686837839238701768303762728454133608086109159662131644279946149867424491838169296108957603811429263817177028730041710402388979816925686782551497802629258871646763565802561135566755054011678945647422647004510732212062942947935093040114169969970658525515018688407983272801112962907547825824496753200560867970669279515862443518801713677776858865798536905397859829501463329495849920584420461260659165067322258252650482450064368627152881905694039403734429262044489518599433812037477467230171788849422158771781444356026935022419572129337377183914929054321630796722036785984170661110738510017977949847685602035337603694308781143648936887263061866886763905322134051769168114555888651331347039195485818476572526394786701837153437449842821293189114138522519574910100035780212460985923651063285859409215237722415888180179720534328075241944059505730367835808835089435066517156980491905314441692589075054175128727624518001502478023086654931481905994137574090303428198351022720314481565807782806601047286588071356842840118981380105878136586381037846770820857329641007981000848017051366375143668578572419775255869694382034923678322267699672142215011872756137167236556008191285441638985307585159663831146742953434303925919099552472104860287555358047670766422789972390953831437589270444988771226932445823502097211839548202867588740290018130215539507322141651414398621109782606448959377481052007528264521851736250842038483564179113783959554038739578586341604188210642097540460668657721923409441236560118851762609671275458719612060158652983381424850377167909805905217682802800074826907823298792961166494652260076269101922802972759727824755172454125201477163401663912690626124595638417092902732340327366183578280502267558775602595571548777156702643836970792230094796497075377431709128079423330152105082104179999812547414373309385609416496878821528745679658697673359352548909224141024425551666895139117162991439359015261394706629627699797359605530024615008709681116709019531449870846972779733514074442311602756586435571978831917383933170039087472590486009710494879527957293156802473709488686766134041141815742960223696006605943090294780031341837284011047807542358579250292915117778485663857478510888847489524009282142266592303365844397879061949362488483734571425597607184565325435033013419849752049148603056401728406194818847629369238465894611451204432224324739419662386013973538139688850240323083554678453074901523170421814593116192228986644320806369178129124462191020774031080676441081675336936867925721021801475553618698473545789819376456307673714878919400530341592571315032386422586679683089887326617140115947525125838414899375748690079448021405966763761862298048716410188186829799545224923216069774991261230037440380114641598681185033963846614359420002766647822428649097816863117012190937978142628520681162271313176617552552727278420781979412226429465353233922580063553167253758853378751112818247172641470014266554814891171268091471933844694997914680912433712505376665466087669316362289390777287746417768696686416155790444637666546892908296506490664860873541146610688464805229132114555212794625808231174122177921408528828634780570727058208506077915183496692731132175514665300519231740330178131933425247218837721618209272945065757879755198588380187446895566386973116866474597461959395719272913236386428236891737577354418021199059270684546996364904004279066840250736412880062553403314745886263764518061694989010983877868486210189484916850486968439103784148990887939052577184638283407172403980365430996795405972614478190162408906469914120305442779454391410187774361676911339517413146731509928252090095343038556391388451394140114621126254712633199750660400084320768080455832552286258245069624230238653780710789661101011078194279059630425879080157038458083400681296917825923847938042368789529754689317897645070721175490867503269159002513279600271920202447025418634711449814659709317152140493954628131036942970852664926557488859445690030022270625568144761379612719324362744090517695130690707441597398446837470066764545389707639105875433902111260988375928504139831490398727491058166965199202380212920873255076791507970777923510411200764698487313325637146748240180736295204582667277399613312506427406849895181205154278540171442608219881573192405788183144912998175480770239722214592055795994859495452173575484904993576442161299342346191826085377382999739621213524770534786846150669316266494003842468119177620955866612746608320050373368566248464443580805748158752820613275917475093827591973274120716223285264878436749663473800539247939130316720946695710547829692694750322797304506062753891700963606313295169116029254475427338164228733420538027165233113449880155658455125671023109368226147422848666606290613996784507387365113200551142119563309257192068744388781046941702145501877336314493156723363428470409487071337700197106028713320278329446010867467339477411471027044693103289660384506368567404275522604674696460355624935579314931054319633279391496458285367778838416336025897197234237823897786951665972401907119132710860756938620056619187097499087964249682143182359068098387583008365195727855514092916489595617245673028555330127494680078815080083978039687239932775453485095127650344764011273582000786384640684631283448503602900969394071890212217111946238769634009791254999418658472680192901166189072895130681534918675331861458568859773217232953482806312906100359583028437947622904553356293855851460724589422276997821677433578589364913793455977323590368545662810828333578372818411033325142094195706193053814274807828833767711134671387349497251148438538085648959407339848774688775750544188742763450493896396924705375230463710759883555987106589660754238339525200427049152935584739371320561051112198832121694227677057824982045907366003658880421373819262037645715107135765997668514991119734161692400402565416398844009328888836950215489035938644082228228777357691160093567284332645731402375348927224584499904681719263145454993103156190444039415737541772806776492554560667439393552159838049379135299479186551833087412254810303195424610929132962354484482253017736197626331674352655800789646070880469175716694693901383513874867410127523639352239848687430967778204105752959692902468700301451773416712743137600193187812530687324552659143964510256254678032703706800016683103618937412327959604147257990666072395234878674311344537551825993721250094169962412538637661477097130758432866597238163530444685420422565511169563414808984023678544722141672967630237800184244566127327315193954202672379081445976214271630181005687387028982185193528909621489971559786676311103423639419490211588044760761921887043909839779556304017231034368123697690023152152137675676392671256206192217644573628145792828281382601102632679098767059736138058137211258485551503796582816959621682848646030206818856897745723299653459872432464519561837097115401618773921604975771693719989479021628365517319952099124319447123570586190362232785348141850084930270784647955637442400574701116462521751678022844181053682602739218624159886492325644844978346434797894822467554255428569966148933169259607367044737583719058438991983176523291334121563419961859364146478934658660241977522756457318183058400891363600732576213329007635547321376740771189305541132367878150254048499431537583359553277931175136530878984839303725950594903458727237595668175482065451919942106298180279233989965477764409169335741507162759588757727595885179147774309392972519487139707562094959448554093049945691455023925802766062492509716209092353302979879849079619926624485149638201958552639024351093998737002329366310534053256527581562020951963579571340064948384525672480140029064421079189057379933827528222244467029875782874992769009486624823554031473799794284083982960941363056743103982922762021689995287495323686976307360628463107778256512751138872597173846088773130700254918328178086820726079635515162929226283994838985496360401793432907737062631384526660081694981022065976744056095478351052925150322555527655305697031276474522434542234433042141855887269237170422867085591229058878836440018959225467992658670950074069915825466026021954171603771345680666666763665213506403532730294332838099398939965762818421604295368568418909173236957870655676919387991655476422045948108911790304300416075071991878351390870353432205625238839630791387639473737793267451798909643747514393933898690939679159175494037758354578077256578722760794565684784728198786091892263342239706305583242152028653630289443000050438633356696883431577025745828104029456942941376163068316953873022932459612178050856387654304888861143692116606209704934316541910095658843486600475168487293634280042844285583262672367625720989335524596212305448219944990609737952108551634438225543976430789665470131945406823471700384515137764269723739232829383102114332412371027563369860385762985675822923898081468488265524729492298407853301940157645858627802484789704692545504397799518608102397195388342259638494409203559408382656871356275034323596152143110848065391246718263368363135164603708467042100910390629821226280322887201300941452017984135008743065829483624756371840330182112973534139626915146886676786775021702095660160550602433621147046701035047340985863433260931672599822625507532251165048746688743857665870342884431579491521263598011360545137039317351274943516757073675743462482138614748518691278034356558630776144675305299647390096802117357604596198361068086584540303127600229254064614839014770022508773442045115996379939229038993224734609379260517793337743329107785927350208494838484258638699547972978803311976848985481146130097207485264856066856888299892946497118069544142612458983883907980078689589598004315085408803618099875208156897975225725910910783802294543634848400480431898243232993490703001484603704231024688853715047175433660964429004663855052360899824258270921722161265973928551727772818998095741776111685211181951313023852845780924410056053645375143908902347218882207824328943863523768130776789661551293896755730620522358644376223998081985483869808995124464468705917816371548508718537144745286179689699392596118456030521710496647860113529607154426838590607950811637968853321161001446518716233329192337512291565984860912580649541170123001805562801089084945397781173816987019413004265989049423911227895280913936389956157310758142267712425695029520064591062872334885982358768556970172402907234432301081165147162075545686235350018893960615695268175241617296431706124959556969280405019663400591348049854070723997615046399866666297761478301027776802948573588829526748512124138218829588627467363387408456800561281471493477123317228022964972767800268550011438597883314529102916002224519399746065453348549085906974333398468156134453830309119319677988610367421642961026013609259008486410109879027034776661194105952117854303086237247869480374414692722800584415770284557974020990458980717332877236979322577325444018744648343229199358220703379534457149251574421394426298618310184081017577453393823591640225020151584549633104103889096454160688682165881997106447255875875922129953515963848613134170621693061359181147215407369151830465147335207089716319238347482287309721737951078102758332126069791716590639951458286530720884605433578135144705288432247963065905021795199137991232338288131586949563991553282681810424460585498720182609012274276948792692082645530977246265774920172904512440399702164203475186781078962650872175279491978423711919245990316786105874201578772386955585002894148258338488779483235270820291363336429675526184013572316530757544625186227143427379234818914530154072153499183914517135154521162807870416606841893211917005289985251414399298486567470286919364815427486155890208435626810486098031310640770830849003795764557284493424509372207164581133370390178057191471451608083116171583993241069907570736174590499449648898449687551457700120795434320112675743955048035744096181745082280716845153783057750132425943009094578412393194727778485281964012962272461157924652050347585501821724432366080740731661426430588637071648063524371678217025138244907565179994242446751648331616356926948884970009077470088714271274404392162546743082442805099909490723582422241831678642975604716380392205848978785559211623379728975952195038470490685155914458543627026407105257583285273088120526585451122525153381810770156258242370876319783689479848843858096711328413603725789454110416132571591596170738824295642273586838969190710739436671950983611747383854462546075821024791604254112346103591881638004026859900054514891092639057768445328297937878943472517206985260174456140960064232192257802770919036797627033454434999677806883807783137088848740094686315941523972271038299203703652408060653133874376044051009510705219627748848371204570968671408714340969831309828431105196736299274489028546305858496989531251417863426312508655026526658396691863873569821588718657790225695535538494844309120636752990084547365079356746538890100166942646150710919490546362543861203557666025243219326079060313041300706160680322142296657935265812121968106001828785663072150789691738495256028566831908180009585757128925286912994855647258731680367451917385800907818061611118842698469273638650430198556767240426841855746171282891589895793493632007708064710377717205980190078861930059909368877827842259420463813498740919865826110340736143003480952296187902183896991150690630467601781619933266650911525544506179162634734365707091543999393444749940806845889605108774872831472220761948235003013810188524829968207898015761728552501993450222686466340374297495017736869364976393261354262114908847233071566359578691997221076590478643431895621999900070918624959642423050059335910042605061678390019935099408311619657397206730556245012474426957820013421671892038569127267238889741176106016435045458691628601055607377975125089219026424166987914497332633459343231630653722511189537259052701297314805289624214596509588488832459070064579212383306137441967283938936160657564235536278077420211480588887795149035256295917975165355690783034609636210466939555832266692043080559181990143671959917086752173041118294160738601694649756665782960446727096192729599775062463909593403730947457924511160929935353659848900721278607895356772639211332597084051493417531840936511992957772779815011992202932943175948667642329249847629514296618628295491228839733421255287745388188523009505344714199270693314355931521015759032441828538980616416517790633452767720129307307113911931338944587513896200270484334955618177320089359085499221786484196057084330318007368074499901266336904912035058844429170845866632344167245616774779322195519047144038692219556631538053915727166666347810405818582462490264614384653773618888639992278414325378634519835914960758401203768999917331454605428019312701539747593069250657286013311628962888202056854283823617225474880899843836147410122913326639897802344991725823051525399330992546757421999879161396814017443413230144977319380829364387306033891192489882836556737448972880619493006048266828335914490631258041500966150331483245203464681941567687719962403934673191672364939210237933586198329439399229950425445454799899026434320300700503089037114173332961919526251885726511031744241470106500921449237398343149505662340685143254907467856622753124926247883952772603424344389616696538442387372902469918613394762525148930231690125319049360162659662003179675883820589529695632522039892837818423228173469688994885791846833773128877490530598768244620685219493149087957093887353056669071280341177501265514211727900058313256632683792303814830585254939289179063772353340499224410117996226749526456862768057413317630671803429399665599201298182204365115571830867679040682524806266322687697136521899158260686179479649108927433114452290748884546116183960589358328681568209047935665183159907450735461895457321495112377737941535800925696506981845089161807184071238237282178625176971326293058027497303191537461014008237834288792958647004194030471415747680059193539207044716514449181501104581766894351378108930209310643395797622599677195982529926364362238029806374742665424388895219114962947224281765048548404364570928693366299284503218830049837156469090242563395707850636240613442777010869199581765179943864156237979613817909899521769050686207450343456563138439587190082936679219484220946760149234538997988252935751116008935899948371326126552632054067565002760449241517801067228512170329887117069880885233307502526557142033341627584849229999564766496324150910723748928856426385910034665409414810256537448276716104687140611957896502446424161035776413248735469744459060384029853911650032708037087200415406166603980611583982181124960592043270069480465683293535251399513209479935440956166330354858574494948259606251646993695132447038812340605045985096501907121550724511449005809788722077710980373742714150096095396853380640920092743865529729994819250490899055155906897471410476706897022380776959950823271573896168811194606839222347665087587971635062614598940796556795309796762386091846374797338486833944623429797448891209802374868303428817750504183100216424102174130399513890035122099079578559654842469131769147292205331575980888901646958713748786942624420844343392135027641783564731068447446736538064356207182704362642454299729757604017914039980562088458135617521410664968085848714806835858670700287531005855481412620727268271224082472299204557625051815852115096781840193865463407527837560558659813443516206756949223410972535028009360769111678004665713538607981713274454512892792645512773486851498755385690711203746311990304134438353371883855583480853243252427767061635477141158401032226804531325887664217088348623307995392857597108713865449185610590892455989736011113631264157981076501050532785100348053969221686660468082374159458822057448010251064570191715654997293275588239974204787535209620567087972751855628753126446445276789672306975138080939304248322960098139187080483930935483001494533521159914418252259657385450507559610445901541018110657702554534564248967991434859409286429927051448590303477153653026605065549107515346733873496130822090622935962967467562367698053715829048125831028941301005357479390248026826703270827137718830807567953489889296176032722892334300611749666591939267013478606071120228128881307105609571304421885793706063918843511704652737780264729933981641833849614198763150103023747890420035485802817354719505993854246590354185122009098228368611677732836912148783226279446032859732143228451238583497508955364265942197429465626133985905609141214547180597311126857048805210893686796906639079252511073151071889811761670090282882502219791091000227023559180743267389390394379826278249429655389861074889375237900635653551016116191838940143392686971478141888472666256989705381343013351969811650695459051878967183473295313471831631478367224421401120601914671334219538429597939524063286340338093808204721344176467468869665224483423858420129759769850340125339345113031401955202533787906136345951580181474075975215191918663369757886008325966706941899603600656506066957133848595185209163665846729858183475744584697873882228068254308993028304226840073872389402426461140415299155944921703492834378333456107615060040872160972103798716034292999746487850207823779205804057838342453411017336651185142985766904089431937885862341601997595139078351453343212120407049026922140903129419261843922197303116115611978404594407111242100857489932275841843844114547917462589935755080365329704880408322028889458824085374214860182003022652393006894361860097632520596148200986670245096806617430172096961714382811022960750127467184603986107668138637591200715363813979158008466720862983375979328359915242675780572082755626337517671807968150568803596365045414482339714044538927699718704680237989986922597278319412661599535959932261599058295203730902163594209992078928106277094501723728842002107989179256340602353058719544504760457924928649799737705509858405174321995223130432138880291109588324916761543370278520364317790285644422253606476374367295284844205046535201888286776174412045390272840016885729760633324851225167442169600859636048782642248790185398935476057231370244419650319907031684139860444521702370533641756380829340970662315020599631661191647673766706190184298132125379938786838987829323759233082144058519117116335012074960657316838037040721850850862408494853388000698198902261375481815828773223025465207799330553761452698702384630637093875333006699692834043872603050077082496050932648509399611586858842032719667025310100165245335674945021418605730716685335532189184123740309580913313336227825095284117251804878865563880197879614641911536141967596343486911627364629759577428844856231586725335964391350984344427558862272441153075698339536664352054924607307808173455625184148160973688149740380689597427134840834075029863307694895669542344612927646160281417622880056635997157236758088939028349675810645461067120266105535732803272231159926519721345562246202862844066023296459596214334355198872381402662797482688421995174476711109211763777459966665860512459662005272019881624301517298827494912090097357179796087355818746159652429707953379554807100270258563903730906112161550444100450402836046425131356748496854181855182119691188265742773103684836478742454686012754071738042790315060391856505281974030216201477680317412534522911744782647764019623709124985052524779393056368770341568521436266896069148229269806698261459749743023606469496156186885838331104325015727441222254158900855974173392109135272778079694566751155988014469209271410754999778264385531795785846625411265445052418019462856237360558102952630686191509559718867339377073958116959675335679129401843363618017298215504180578902780791075012889173964500946154442465272622336918067817186520052707695176763060589183932697875813371501930364742003497743666868443786774349527655984994965737020985123417207656011489508150379538555780494122432441477400589706745937129286701654490049939293894082771305732500340296648837862518456182289461583856381762598761415626889575251993371410669159038008121249626859957012877223570334609186029518371563268165345708973835575486432530684790508873061881238028099115486314041243721267463583283580942139084521131234789121558198312787234148095690583787453283327322075114357897323341416694490939498107602332470166097341911242613252356722693879420970045010838251489787223719667244706477011952423453190781592781984212046102779079139266197227931480379220480813298634279202086931005541203727055026622238960527024918630825128258980547361321081721162398283995626221468330854348609188671392827461119670007488777630936927934722586763260751726831391834780331654416971899105720838969670238949266265808849885102144128628750218780613961480291277969159276870791828682209561861183638663425276306139567420649954767143824332597495616780267052004738937783213702845961785898471460293504323950399632928955490991041618369648402580991342708808745268495485470536222424060502039686687242758730156138755523313913068293800128928122001278812857385064492832324538537191898756011837549154619652956065112298039174753986551181898966142347650178412669044411083079165188820765497907751988491317095304789816434208534665815057840288322557533396979503835122606525978579694970769604274544536073954835017218731080118653041412791212107685482724936610589832678177753545678207601449188617122988207775644358670262357395706830684020174737618592190853804760138544015744786711962493770459418803323783595583506026720704778246767227758500179127470451562819069338894062509346854421641356850559617556279446863988612876910900501737650737233395082204838587950778014307397957793768333346645652368742312423031527659942534688448919800707089433181600829831637841079740724826229678994504963254404615173973795236341420451320834213343050829090408675333549404852293325639165951655193569095725334235400626040119690477105725335998819941608896417651245902327110080405751385055329908754554806298636151854915869364995881771046159319591483818422980731360343779437973830735048990289492980662214382412938630573747209920098025092223903951376551681899886781486387113874484391471229633142589535937768734056102249118244841271215212358695851290070192798158401188012033507318880556458583007603882290618071108831077807209541526120374432488869557270895422369777438833002812424834170564756143725635842268757835680832846089705855843933943239111697177421886808234905918640344467564902443707883633131026046538009477943714324221524800594328694213565386772039630293473528453601364832263649118944470224041185588399345030943415690178447909435721290695032202075553606367920772553988816516156835286223543759778600920753576011235912797053164707140188734386120078127439542756437977107128969432876187117350643931036709237944239965838223788335284954940106667746188607902027289094595440432234199964280308268506336108802881201465460150519886301958753732658809747133256553379542653341170319547135205413347058355317764101902444184718525732894233136980181908071085610575260511131856141045100076106154655108965593571837686367813266916576343487673223658454896030214724490242337540909186180101930383606032103678864640046646364145619043235077199828558892794066870127157331192809304041964377604362032003326590135618891585015695184670480179526582379489785938415934341117585956367348078187469408925042834033091150119806377209912865513889239300653844859287010662366077952368026750735147646431946779158261407182668437458353883727669300325338557341847297048291877780896078160905892585896585593148060970160087581209496298700277975452709791862752707670830407708215514553179427702675653118183842965686722844716630951251977677223157899351195815025622493365142251973983621918298192350644636411269542209006186564680694225888886202115463045261142075330147537045503959753533205646286803245421661705273415542554011678371605057967740631270203725635948370679242401518024895717021179106465305891769641676508559651580123875941794754375048447995573353564924127833568757494326116347330635318484920643529466971164044035543620915913250965616847899616684236190566847051254116130245811417714937233952122476672144427095078716759997516304343518941338623749533155973177259880606553495492661299332217152719038006572282389269255683838254363169405021171172880956705720489756747983413260574800926895456547085405898634521059729430391915267300331660018315657471426395964071959637026547768000511770379110460125334912019197882979751591459052442731817668419944335670656191129079473148736400272659433515185909213927110052504086599625152561782187716479890731157463536776481489784033770410288511693391596216690093249438972377268420044157978266651096878595328802309153040736783126161250041538071792086818560104249086922443933629629282575450819228753902282265544507589965986316143127803879493408968527800902463478659496202178142103497817775478223367955135686318232107374399147857458231598460398538240487989064248446918334828627271536106861772422837276634754499088831470479283078526222924032139380856872241606965570331050849921663641017336346118393826895701767731017095605663090868339997182393519595747392141953754972449400060828704249947227904130892949628187110709592088762387910821368806084124219736772187044167780938563620468470164655683420065962135121210646592283660633548217548879826102237271793683923559787819392580946228556227514379741718965820360769263187373304152109699587425426983040272156353545188280498343502368602003492946268136611592528896462884333591375754027150127819215144232933345396601666944954857579559667509213324403675334972906293325315667056426853987941847921123639085580393564970374264500149574352195967759300417542209896998678109084309481130068159413311782192150928736936795901158290290776760270173437248817104383292548296287525463782106799378477806072772046887238853407914535041117356967280933206936152565642465619264457305600607472030482254921296318900652450834916778850176581794203980779215616332584370973134335346170715385562991744388095221949308464553606534435284655513426281213688883038401654624882551762178761813795405390566274915014298979987606680447887177115561568174859440718206385629048073771850300354626228234196789640587027724371326373043612661003886328375087462411394116142846296452251544253776854269765464085975022261299609598289863416114923556635170396052705088158913137424708559820996982323950862135468856459273228296147714190668763653703137647691988284121446401983396585710706625244451044898759223342838706660859280479666564604190275597018832052695002602158467280099426925516422152932606025638504281534157293181851173295654095542513559103552023991708421989505705126410620448974643250709069672512786642337088498704512018474530956529023168173389774387028822709280257242080657363535687182469362750413429318613956107553973245007324823021199511740895091314774221194471425692648003673188301128434462407384345938111789591733171609980713621105978909512782934645569563061713839003867903876378809607920950551566760201785022253311634173311187210942347754857575395892269869442376938440885108723106770895314228539235715849469897240326900504137375201949980482545558314559275645768318415298932325297096698402603481289608194366325977900250759976492606568673073753010890311580747742271789000748751740266417096133711949597817061802660917848018853212970094965370902904711376027294192805623546731088640147249507406432581658995059786646532027560737732282700893161098011969323813137956933323764587222289070524581923442638393944601404985424446887465408258292790938942234733825484349284560173617892228025273511535323914768878642450429921678087744849446128092433470280057853123023282333976352831407374960173353639614205705104786108410412319439390344174420950259627193484478987350829734269380991321388680374845095575396318436346133133426970804867926718900683184017628405333115866637068138867197335244277963605384904884546806975935110453199583531394419719515210982838379156970975348932316241280398780809777883999829539789150647591015630955612103180817930895990391850619657251186483076820133881233564361135413453654491724980004981782782493832824480424480376311572815541018319793244077489981833551808583232912453425390192873866687549072546126137874837795514557594530310847752464071283878116281883950267402270234733886189321606993166102366217791127850417658467184511971363847327618439940218743181035526308184619893007327877784518611619410416717755315789637378174862238945263925017455018376244424752212232064800152151793137637046514514866480148840281459114032974609296577674189546762801148238745317210795275299917463506122139524504440361989887575187673733911656715692766826576452156694206324440622516702573539866818922299588469870839458793755237759702208239393214466314816556611809035171737267992946371806105910140747459209022081369857506698651881674497121394677265437593412628113509436215162941976405039905959016104960360780409107923745322803114665083675127825934046285709960257303312218118462848333819731583714522317301517464131410220389927721874237210203311627683673683216199828103287229766312427081381127382582016750980278153599619275299848534095865598358719551079489947825207942570074391207102880371470467942174726238584231796693194060562100452319372417687414715270907667616708869055793093292971223854650043864066600496063593698889137110799458002674020968966806863908603848387050300444415889271351766161737669177479861397084917515994303733988392636986868358416341061928287601354779960035878010813662605254023446115418068581154905072540810783346339120536179994210593842870904650068978952544387081483433406944280615955685154557569577532761156510275922746591268654798592909034003168419247708659734729596642449310465940814379097826767336478249639338204735616335379194358419917721042856464802056375469762120401349332992497244461003006728552426383927555217298108234911360184295430837024499201350083171207131536381780036111213329923721063931524689222883852805085356265682429140168652008360150825077970716645209907506742607455452476957302764942861615284600004765778700176726919203879981977469826870149802770159493696636327289294906382199325632317687445224505971274542450337942043011493389029551554678073725954829678176345101766947868006836268896914824923572415168959773812777519444163694630444668036221623069536202884089136034222597446052021346115767303460897524637671743271416322246025446621090437485569288731099900875183278469121079281503145929735326216674017621258282375125703215906030165041992899593230117536972609631012226238728057384745040721149710770786764683049250169523363623358550033667600541531182918345487821860865542807439377887104659788492025833638284755781362004816167228413167628659533394760763464450997633581674463987049265322850989602010437480691965465700251285203399676082585581814472886350695206990221327877051378874197466330619956728673742773712641253534740657467229949952273900365459500608480903815905431610917774958396859056229058489696209671126229054440408892624827504264626956807403760871000103757461434624680293056043049668786066747254866925874634849413708446088545344689460980167037515059841786341688332752309669268567086223193147112245362624913272847859746618914384951428246220467107745548768444139553632788816047527502621382808233302734569432646676661316207952055241505181729903164371834725295504598988559875448934805081599602211789253370908311602463685486544289945594161237183732093732767099849383866757620675042583558039372921512912709351268729304494411635296038568330285215478931095928200709671276809287364021609276224078082180633294466668526517646826019022655993578165491118693753373056700815426766583355993624740225968068884273547644582332713972839285524473258819402077432772550963255918782832642334758328014550125993224462172658935826384982133045299749027786084750763598092938071110413494578202672713182522643237279101836525840360969364441927169963701681557591585421978647634370405911630403432583913664619198142937513118305909648942676980194713849470542784401577022338486289289665773263116099464442044591514406722316010164265682657280014723458536185255026067743017359626503444480254598471480178497407424668931128097954216089098727418914291782425847203862840761356864298342145195385174432910936685259502356339170452376198835464661888211778137199812116101388207326949573824607172744721422606409107412844967839241143246109237870377757348928128423543930315015464516550318427689552321090358077583857363850886021702621360775409793108959851615968571222908522593815696284784212299902481099258709632004910677546562459497639752190883656980160803052222149009409669676751280186263309715857656136719200699835505212074249272329697229581468326128599571823148187671874204695370164184680581344100813928938705228316636227405065754843931035869735405242337843373416573554385032897546045598412629869534794671305381075230231455547308260975495304163592744069557981960572255341805308210662180557246806418235226564803978017336457333273951154090928415762807478496666687608617402398272428936372424698422532448787034310099022798373842028160626745125077945570087199899844852911429448981682084929035554911345403156531915934516123887444416336653141805947761986837155369888955904062110173966717177347981659540388937785164602193464043631406201175884038027178913035977110654192837440023948495743532322372363968175122644908862448620902451580214623115896245445037169715064953496925140172224996041460105879879694485973751018406970358666905754156913984850247665551708659036430814930326747358881631018499406215545580042782500803857352449748138090012752691847767835482561645835085657204565515567382478497559940200074949495560450910757810717617678108659356243199746540554881544589278090480947977060796507521076359223824425719231947486365311882636384900692828556944375746869928171983965405641738671782644773651419497315563482913321921665707925609567097775655463072313370590018988826782047025416470939882649810722541678216441738685668450228998376607584096947603187673314153946121995622298208034457508243665199136460206602289837847339095193142445993764126710545773522515166418423621011953565489913766215109953537617331832079936721959000899686349758746797097209432112846916485260907557789571374025495277384785410487571613968583053832765164998649793054796698230577341962734086924184498278983730130375743637342157610938599796026673355735795146507512668891203242917975619498962809453567934854829145426453530270840454671535324523116433951904130912637969911636581475167132412087300683014886545711008140341016446755979149698340617394878983129689682972193580708697708596608203250465431442698841762908351749216584413266357787873475030290923205252323405983628218611558065876895705299294886154054444988795225223389847491477872946996477734369435787511185402852963590227432643146474054852457863031280095750939849694033845921655220584268125973740797710803509084480758371919871166979636295252280389603886941274607499317180556800730179256269603418837569786624543809660192022499849686969382047650153358871699093421473573998058898461749462317071110962899738514746803402746013031103281714638382798699240254624961098070380461291607418909045716495637456735425368299373930969669821676105286623740945850958267070530358935366418669074185579080989625095633626276179322365117524015173763738159224850720882695430380570601323747681474780994970914700126038886577107496506149315743476118060148990518632670830972115215481936394918793753080141095859506421934030015322189641094530644406224020878597735309975053965980415032927961777830582596255776828886715782407772267222838757392991453456617370783430174274267405345783875911197717358128597456815776145554137444459187954291668313603940277384350729965831478802567334394653646281094992503291719193116284244912908906490011170092988259015835244498575198859684301793130266868702281170100583471152127071963092011100306688007957539646950541175583495779048121601698390750846345530713028147515567106664861729055197349695849697659455940974455962772636636377212776463556773268972036853570823407165234824543781986615206507066860128765765383220671146245614797941091914817550016890725112748109183279510880595411378989121397031980418203488820191055850083604248806659388726883418297364606678425863158629186170758612932109669569323176283825339100883552217407169921958818901966775344119807883796682292053271122681260307265477325530738317513042471788321374028903802956107208473952369719689543821472689057357204770295614263362999890790665658826720006083242326860031365417481063421320412535535460854357918122576935442855956968961629249310234516127657649394950858771976434419476561104043011350384984021546577517194796737990144471105638599147692523595555755190570672311121250508946571933425517729822994879481658052389533840081394588759145421637700569340175788435060706269949908998272274073302963999368268908144070217102705123091920781470128735592277136665844548451355493652011720527306075534490967661134407237107304709676007751482577790661200193397387837445186036260581526973076798031624071526862276018439989014722695241953276732852401632002560921050712859013854362057688423980987066029756825473615168694043075168319904543755288785258302076154684620717918725717670656520358448679428614777607244572382826868940784576613051867525022101760793679855981895919151997645766230993313819900687534139917764994546706995272501608612320417206416576648926440886051257596953048253735801281993046740669374731260028652035661544606235848758413368605629189295406504800469519715475484766433065617191751451290419300239791149002055856168379270279658958463364518820440225951320487462064720131551032990100164721720466138516798895901412776743026941142792710946810136042090856646743063121007590328612262633725344973831785974221960926810070641604840281024506485571488981339872167261273768381247445313751740937020164909126294082143013009559669481953249022197145514539336480087678726540197612898146482117836018316088178200922409390769578501277977314230505959514743908507239113823257989840607145117076369541042895941319610971376216028509320806456050241013943016714951888060220300717213426896769623462471918825551284559176137174409662321944146361106100039694914777397711423334340384944966408671353936618164739586589038836685521758846313893616219502755773869336221985862703259854346035486862223373776787345191206674936770308921389471821526277637394851239976432981475679722377700704434915045575441738487734691660007356644835280765030251260801908089320114749767055138090760179761793323531997874932228298161985957197042159759377729494581948615475982816933120233833883905462627807685463399943649600601057365284298418756531975055116466972197688562215958030184473754119096057435548148926919007174069933958984855069995396077640325089096863701307265357806119071228289244774387465670001105680561151866184999168051508837913347024537738996071530744728219678441933909638399554333410172131838367664540940975079449818678907773587858071390200832964804505508960323489227239159268106025685038507800262368168905089572485021905662550733558698950391319038383433865457599896958600533564218564405479189958950266881737521740724326018807513755220208578717245499704529998092658960797836841471790304825748327868639873261498603641958052696172607603353985484641946215032704910011489960487212217996543483345878629190681318682267477117340279435399545087122723815861933137897725310122618586604326358607190157014221988760227333116087756220858570136177987895317225243268862867018424411740517588619650541937209642094847847972359194238829219420372889755343900696534240654047828685452187069141143144753876454701325957637998635844274475425640072259577389448483985984944774106415656115781232552530059874425052804563019946830857049098102849623182553170256827693599019944632517174621236462396110907915841881144214231613401792899207460465229350093623672892811052240237257573172689273665829877343358136439513604676613291834724323961169336282498302699820284011323523102465195272328403804151780769146601249378699047992277049900592457693395251410321101070285370718595603535474066558724551154246303339863337059606907677002382443925888069633251599555882553757226586376957177806494084437833605077717222440092390704173019974443788985189128553464204218842777663606802723195840053217850240618895003951494048495678706141230298535353913725168409803522475068507349101908201762198588517233870796145650158553647647182110476047668079059841829526282835846294358499321148384951700917990622286418734530791549607543857964644837322474526816388879920493080118117617017271757520524098850514183456696963853270356145041570617685966107652461975539775408664259520550197019340885994663201763441798289015499956051579309811423145844264804853554796012221395737791333944019156709249862604608022118448859645838370122723339518389282984098814454930621772308451390820572162611733300695660682700036214044331655354764953908362717192336067941540275817640460448097367641418499531455594026786927244465047249003766673170472512766710048657925015487505475376601737220997259153798270286708577050492153851944085080721023403780488559355708046645449499733741150065105393863339449464637609500377831896480692165427805640670062332136079008577154057712878048378521474124902515090090683308732739802041354538587989963233245319482958662768432854643231282641851453671943855469506479580904316842439388867480264613713527762543620786288856428331589166495115729705382050793574981838365254849678512281981510086699142692887629367652802902603883858361485097745861373379621894311622716834724967333598270844279418562406934176455163500077655475797279115615831624249191095921622100047919100207886736007211456843286024626755525935636367639202576149984037851733578689816134258000574797052782209145440014071184469642771768816418096902649447563972910733965229456339632088004847403264560046332835188483917034998546744190402430002475477916129843929014451786357658264386535346779983798746775456201577877409690680357435882034809392227057702939876157588677055421579535950843037845696271748257849286202435384837867274641665133428097762341607298038684574344988556559001241099770766961012200936107574875567112354991738508481440445520951996392984435599704512592259583252428904553701118506382020074006229484433753633000588198348482820830042416084094006294140941467309877041566186137681983986648345113312850794711568075567101928714522424907170104053851889329311469002094576408293702663253101014956376226049545715409255783270150900891140753307347022321385378975191157132241654154726360456115174277458228605782505917087427021535191544860127525761666834451771294236540720182494247347850135112185365055023856368066209045508658041215910449479301053193006715176223074920201051383173822115650016897766194988143309060680246114127738203350022209261803239339315570930260448705833392657891179708422234839208929215885137615342904082575491246435980706424464526817240002661457688767953432266512609566314886273233728896807431380433916190208800143990761720753431038574916307362313478094411543801939026112204565002740097267500378871652294908126993547986536897097883984652158608544128221549190673455031013672143804080685528528301801986545673403110746897745744225655067977243292412430411433055322627070703820145873684327730142613391907698326663517175642341195452656867442126042296027506888581513294431956012516212076300204812781582439967768707094637516128423938539941041178497008729232842274212668925155989551850219565082939230794358866400293232109131901729565677765916551764516812199646460851445420216249653252318148674458382143280797131819911892727082136469273153143208037040265949774020565299949646056843426736957919337167034219913144363438381168335540908905868534322250747514426759486635360241635930151681755184840359877753830828909215330942486010079219744516800058668833611969749158049953244931915650346435814424241196775245620140876447511278876655884714236567065773234176944006069448606309986191520850085294378454731996479740836842056024718404678974907528780221972009392822402234206751122823013190062278068079029012024634821709765309723194329090520801321525961049319215370682904240654401701129633844946277494256427803670365934044979283622786844578748438850407935803629629854923606190006273738496934045567405135940134155112416888777532412295007209698125044809765879212836650462732263137398313878959092404230031968493565025100073610116168342024126803493499088764431194525339602218375424455823063556189934992011958889740577699563720013092851279519933335361444894954522984155296342970508879597920783080863501221113628416795168792643321411753296841145037177947845294327003657520830683227706033829223663413574089770056093403856491216327500558490408661990775942569718152366668706468803547254388720408039991843842534854229631594448281893534959921618257612322252762993155425687565598796800681656795105827219558572262632871773776852357814454902618348663492980323101320471279271950849609945412116251979627283374863504898511718829509457164634143327217595395821031848371856234460826735655041198811629870809674109385075637971093494168268250555408119018025597267401537253335390333872477829647600906182782227185312999084021248082953479161942534146249595030135384703351153498372746730474621411600636337277657806264840862633836970012130490552781055291947073261799087159899459197229728745806402081938734047355867111897161823500812724614997178902447059189459855316473703524797330455136711661116574144413611653486813013252778936603493925815730833998910991224038837488152338956193510242548485690574595954906389855390603773177264953599180105046819853372200269167601871966398230231406089919970541096571658894143825792629276959112559606600996553654677985540836331265353623397440082858903185527387591828207025925111736541809115035875425156903855954583637744629736799958380047349888659697052664191108161701131256628533260038320286661118707060067292799196762434944816821245713491915081495757843196873320118245904819315858007113238911704661263458064892328782803224570270650030184740154791959297150383011174773354638604214683031352806962094149786039472822195006728917784772006955838189324755845853454478751472067483306104407611258496541736517029901896971719477867848498301057835626814098143953868161413629893559784297080909074328024869199654438713661549883256807784114422471837148140308164333408131544466315524305515601234642230638048586456992589373542788013471830865257802498331866283796989898474630474464690389975793743097610716371802725672240764736819231149050797641539440635548735920698568061651714953399379266999970535449982861348960401427649697462111906004455184665301033551805139404757851636651269976068602567833693075558904121767478644766318725423889249398847365887423959333463598095226103354049139671724637380901589911474921595294874086821642043126683324042933091105831115426411931015475372319402209066024205015046987619615282273837101869354562550898190957672891524732906861208711045190333339829685601200715076475829763874731113055732316257164151005482290202239706870786274082674941001143884830396211795403431287166650230050130833144517968827866748164644011892667095721583001618864949370148989311625094607181556704096274334148035579195545547538272885355322514893077470494675092212012012951369214790231705749595806209821055273794197054550381912919624741669132116656750811566285974186478771890904557203237685311266413673272019417095955917286745122834561050467220667468955967127500260157154703186451135595388285255898069145540693679109397676745561758953756559560383703842863772976210305313359726391789729794866595043432960350762177030109804883276924002061661994505470353610979020878636311015780220084654711586472713819607243961934338913283047415529490975506733567121433712995357190128851216885854328398814845837432236142847061622936337841398317128131737937615544084418091374224185088293634247606002401464753127843729027115556515764766509866641700997584002658896747926134555443102413509811940815794878893052383972173349743059536842945447030200471781267480517949160988103100196373594817640284257248303971123035630286273882220533063865248116453147621357134454043188628257786887351894723142589641722369921326411585890043999808976742505373222580476997726691796527961954673553764831980625589227368911700982504561675791909412651585720585819802404771646152914040738644971390191465203515427228043517116503386005568773830540258976647410888990768240420048564068094664967750574984966038344819598006250031219750732373691464724849867853120971439164197307067898564017074303265266310515010124077905806228995238341555275528681514375914622689245075168172153621483648018748877567564640009160211768998401345439285077381135058773766069740281404336519249460073637464184413952269991488028622982586781162180544133015160165548217683677895476030824324024344648999417009364224200748950176067956958908313959357160895403978953825086407760041802113889171267312546310443667207664521837499103973612838652511612171300997313479748665961679090706432449331352779766712646521644529884806124636294627675672335327290927383201721530382837626568811549787634056376187086770505020422001809344679572505205419430857096011697649365625368050479590773309784243383511389841129315607625868760391480994274553318618847696192503409781666272000796648182329173316600741471378137602443683390938330360883007646716791870824137238318224345110182736776557878891342175590663511634311852115950843266984881310756200664112066458947401061530379206503233541113239404034291519980125249878425259401276660036928216816855695893149646308149406891882121962751196640673392109767710368066987077305876236048266562937153459188815120934642444903608872930548587464319104755258959673839828901126674571141696409083205882600920603462010454135230571667480435600605413063215062301827244719862288743546838696380471430579487990483865131802973902893365169585392198629721257760273908166603976398042091825858491891873346940857953159492709065905666811179137164135431956010211241858493496171066227891507730447241192474727536249663587809253070619497333354327049671061530178019648795342256897177233998633394058226577736930279022299935955128687614087755760873085307184933151912425968972077988721098468649515418345760251635176120661582823511320000813270901806906949642258837534822686300373581254451564724986462559535640855562586701768815929071779099340013030305111099777284632806034755754140712278746246440492143154183634760312734542802042414083272564095419717471277430950638361536926273722512856112288773671119291104257210029636492850539603597060992317281905305326551223705623883094058662083667337690273881398347713722906312894806544244935086942816423248866707626465419833543282569115484692363269874008355824964782058010648942811219118022261898019057095765444272970186812294920946327826693775026376595816673293124890280888264191780067244196274813601205741766790184910879728819479845243976872367199514867106942641238504605846144859104161556133211865031609127317897398960457356603531099193888610921088430133051693923053948236631456926280953557774457123596741861498697247176207355641269563400352432141545717626794106991959902222405953726859605160346308945669928529407950868584484437448917383272689552578085676779102330052335810197675678825268304078933389732044633091999060379304013743939853773855630474127080567498257997576356688164862742403257407004210465562276222625059494263462904990124969905021183742743047995592869967748331382580343407729204021465427758707554972307444804713784043220597290303015740935236228922344941134482978545239347994260688539772433361892874377133809792965182766909418007143459387001515628016539482707213176143802027941779721719698068908501408654449301683849354173561654132006322023024364163084637421966616766589612324988743483402701581043244844934258662336947381062785718232321762362234845804433904946418302482806478632743183971788533840326579317791007936352542485528704825844117940621603737069572688961319404520658078705001572779913296024793093186804394278766342325248606058372084028274988875730771197659095296506127381329206638701951955958922356004563688092456272889455713939768429471280130338506023062233618848825961943822826058164362217167123901023446121716574255677369743460357177827133931393161053073539412446495781098357151531498212347324789013832215442994350122289973485561253222997782242120808162566671871716732815984539505540464866763560423114636611807560862378388442255364400976966732600875290780724511728315961772989294090148435998971080890959635511784156706994888790049576761051194039203243083849594311938006459363706043897647207553866859721097471011504357032797911088115688242273991093272940733917053833463335475162049878555057121135519245504740663079487171109657240393470929199011829912619758091102172219471889088833304037409348255087625599798933493364125193917461551743206747047238181482544909972053915374012991977200734010069888217951729719976101858794216172402602827801156429754806887516868745077565139354654200381914846361923677676882650694607967567098804055435954978283659434424887026160069160306102818479444052111582121197654437660051120867909107132519163600152597559269993455065981731514594046074025201445109213856638020454204459335201262350536439675337458511812843871905976985690785552643412550232724096878397678473738599227141601684264070961964417018354247473059266738145745046183840245821744296996725249447676974530270824686612974200456720931064858550701553928503700234102552608392625041172717962847856408323529676761190469958831188275703516980536257571423290434939041897587028132548439918137571304617239686954580562510556591753790492175379755459012069922869601724708829960400112345693013836165196676977187650438627338294305015326760100812417562268775799562289272041083346016217510805098014738279788613529911047587426202781587019595918174414051062711679785683232923565444031373822503825818777447623025011342925960507402837982200018321495977010682436434011863964705150566376824535966338029669528457988924711907764130913060630070581082466800164891463814407028491348694119495145863967682018268537703745134620629784582414538450576936046850175802622438087873549893613373014441704204578048283262011247684591099916983268561791374353091914768301843501376339777115178474656620935180208597492295621636642575316210407550363661330487241107296225861135953407556244662797198165022683405376607763066803843037525014357814962515420575245353324354365493857093015146251418233870939897331452479388236742621967372233576668088814437261465844451962643216436603604435709082499075320380271108855107985313573431426827604417715422883170005931585716441509409055731386367908266834959806912270485784631896874775393367487880611013817166713010988876320093662323232299445911265931846546446036259836685738307553653046641193880869994344459114681187412228040939811727691479149149472417248071405136129086399112466522813845516649181539067212398911874874954340403587422926689060340861298373581244086467359699471505393009553001018881776196161300875048631681445937024195084790008870068612975004179803564812544075431701791069656596018737089206793618321225468526308737911212392500067865226883199291190085947976948977163113326856012243556240193962481896126316104744565413065138981206659112777614541956546379519749966344945062422111240488765894491926835483008394456449010833065417195282979185272584690886333175352525349116311124156340870116231963214509690071403168947118395685987050121019143237104416748045729663384451145526277965515932227821181739692824772753346641408080800946992417039073994458914424818656210764202130806802479357463767997895639697236574883758095299318210747594279344151404663646690485156852941684142499522072750615533057892435531857047178854370986155400143263509021591857613296678785817668324364398652604274581287328525238893978683641453588780359238754400467968232255743602582000838329459878263498197433164177333720958972412967346856057526256142254211324650902766797387859779141561428227710077511177893551243542934102374387818068346261728433264166828359470689894924115477869607957725421749463587827447764972050276747106004624138897791864415639231159458913457269065476763741424606619854949976003450546476247136901509045930654883736133411881651835634725334530493811440881493609186324915821046425695352738779365559148419619076346578438973879786908030999732493532216973648956509248234618981097498933412782811597760022227791246832396851543229320550280909583292032676872640632042517584562771680768781562842629280373940066996596774530696563293916648177240875886235927501566330324983277149958682071528036306678391136979584240323365574459101142806623197894909365887823841617519687280299725370022619159050566577100045840467285239424134408566145008460844924543147051752492673975138323318901068197288203148479624084549423997368533829761687563091450433424028164626675246041013193463348791743603665539530342878926645927322511213364516434175717451073421437465766197765923196419049483717876995037265606866794186732434074578263450216370654511184532166011218843107646492770841526537484265366647012465441454783276970252878310291031212344138649128478948986283733266638717090288660989879591806898012157169213933779631249452457785972632464694009929067227578700033807705254373654399599610699331912082567703438657776716932029742326718752639855865769574000897461283474032790783593417781360092226250386553001518099029013723587771142189982382626985943791771945496524130129319806459425918749725816728473159660362829503365691821569015895818493764788865853207980819817762886488242526703654090194019065789311067503979566448773087636935301916235846596991733402758832058828207507175687506144468314538959136133098717838994420725411194795648727199642419873267056050716990848778791056708807740867152599459395183819576207421326337799803610786501478629783494036315866419771294987043654250630577495826009795179880642182151280957804432125926303121620252538324829484211233963609820609730149373638232640705642061572786917950068213296104232512914442367977448604492880200522142841381928975172196809441983482933144319409296423486922523707060619707373863942821000158725854841806464750724332301966899352599401184596071078009232879545238943361567299355076338119306680223951886651883926109350220214766157926121531048045096690002031053321673331438460625558569217804396501817119217590157966330104246421137676101590880577361933032716321804419276243705104040503011787296043852839301143305609703971888460451568860835463621778274714434574736477733215162561705911329903664705248706210114390045295009818714239133074728253619642692980813973902013612166733144668976470664634125365931860294851736024039376204369560468645202605045746381219626595654568012057433836928592477850998415692062104410806860840898427559335143871919003608405328459194791742527575623816870458570683748607947425819807508941528260092269415493712773910354559988694805134079335092395317604837682233920834922005668712461495403152547990066105425056821217283311432070842464639628661646418940641196998980475117352006297351588736731383770359362115619415963683296818744677229220089210800392845228431251598666331266003417631696809240892662110037515086233694045670645657187689377146038285817072461716330715964263542005189896146393703293593540534143873537674719963440654966343802528637578663800305538378791288871476396826867966736395613878512092617330216357293946122679780079760769720719466452278107627442794635496581602935709467811874638274574221012917309056059323005359558659252163668478582063329156045689372600304232979186659940239946899860553016218863094399300119997540605323904637784292771806171398519962032536584919924437068460636586211462998973147122491542161277733112358814690187821603876744294305623573281849635567845657308850437607203212292823827408953670986255836522632779667000300801878899582896920720493578799598310969978859050410548461213299767850196636891944739453444611381138697421339861019609178219076905474665520073507434480881203404080756467230311592030551748736539290834748826878661869296090841539630205220661437861300894814291132410231622009163438561010112839918144874770050282765627998384368190574999959282684095981090343894059086974765881713984317638708905790389120076038528229120096770131996177953778935101087217360497440369273626670595823037352099694350485405541858173813253864602481331015680092865748245498290718763331459804044344049373433272813406750665982910741427837018071828537397429836652219319132498269501639820493594670811028343014905071811909272244525324036463099189719779859702522657340073569802420159428261280385268458721495383555323446546345820993049267318450406565109089780605116105828145917664190640754448681041160413342319325691453983110967773769673055953843735019936413637914475971961676892060742118051944953544819751298711801420546333786636368857003106297883218503881913428496615526315620214829887649037295248013586041428500416551868685956398934450667625107860835154161815371213480675454992267607321253066827719160468571977659682622288944365921245298654749007378434317221616810660424913143394754059428329324473745224795606587862935821998662677155676197268184305682952735861152315019392714809469665740782828027752985388205775358470568506583048663322236092803055235432772445346503087389202182013793846733603724488976803706730482293302065229640071555162975152794332862688143627503640574994585128717722502611293715040478529895239292103498867544816797777840411299313879924115925699128579610973358806884513294379995299519745391138155487080880501257115949088275107685105562163799602349237773138466075075891146713302257746756335188267173718292079233247695992106313004149255108426834856292137378772118356304650649043962318398432268074980939589505951843977970778536882115372351079540838444522621663033532293497031628194701542750556592384846599726825693797620633449406984577081086732681478154564147125826646816727470469871010196111027710936526916416651737300075044247423517597036675863315610713690135112005693450165205110841983597811647072818730123179311696177324922717166326117576206590174310707006044678150180901679486219074088479794491590314907276096325464010483004671250858268053948314583093036268242713108211211275368225771446456226102666284745408561851387609360769536639858717583710572172515870361556225924460303012695323893169892961252756653073087580602648018334233667151318370550062698459996498152822393777654022755497817666231116381116933578342061681807851699007125687416005600975429095666922022079759158010811063215531815719471797574463790782687132696678833679141886873897839005054827666895851217499187475797991089310246279247974319199962906225075183301632632977576967894939157738885238570281858951395014190935759883043148232758756023347519141202171681892593383765340883823083498234634544669562306521090152314099991806343501962082821311805164363516973420141880968570146207853556371651817686278422895589029255825583663433974004250442314976297293799620775491772693612567844200179782278054108817718168590009063404463379929136871624212256406868559989636441722072156094890437062132510141228234273993875707098871567098723836214692129376020787020796899373198526843386390429183576177674713048933516492563199051540431362560463830809272754551374347720046184068297245429091469272698231174895191518267270440354961508701973123217846799982263152993788646278457754726038351832044416472565061352928678376554760099315150493080691630535792559892762156982550211149873209345933774694996101886408257849718510822879645061737854651849493496121546440722965075716092829339156890884651474794776709302562115818434711533172390209938793338368604585786708583514398630969986928182115302318780524422856517334939228492123849406862020815683539601290260723528254901596067921548022469432233432487291948099214382307944293027403250224532049338791763375513193003009995023502607362476327343844688902194571964024936487475829098999932207336259903794469844554509914571299069623206228311803931582368063621627183820764709577997807955704686555261241776759257893050370391317456177634544710489944281214350314653329720209351924816864521912565245468514920448746276038221992067199560118667424192927249257908322743456975143788666360417226075682668042961916196542991918839761722395872183941212029715213951130778382549656793203954326861139925719458063767031094564540957045748107479468110860994958770439899006168875085292193627553355364326744077167869454418355185482023724265818506485124039430892162352040338092007586206292913875054783562505696010320888860013895502657285814389279317060090293946940569340627315986782158241559139853876377838758541271372852544581187788426537299689177724631389437390055912676730186458464189369619776948347592646923682527919940885998821762342757632885028949513609099170567501255281426692571257675782431122269208660859114217128921891654979465698673774445148531026643377215099643239637712089307587742037930348601869318504593456298058755795681220680222689793610861332198958054156423273270083125341505568784458764705594024694243554716270803341555226034451987421090447858810011954868357503103336054694026194372098265936328626499850572614404143695864906162133859951916369470347492123204399735459731739508839684768391582659721396392137232439551453635924898515718620070543288854179784785021402156500731881253367789789469055593601885263249390411350970376240571600739471572819155937418467108235850711694093554829913618713684889862924247516933453536624760075974533459004096374713983062551861721823392420962662851044434875393247732059275572690316713834815441828460017097815992531998827304110602069205089129400986799975750178276349864201774719187254885778302025046156199840921265295273096604911260142773644447506200392989520406672570927934302981670687586916192073934705561913118194103275900938424361130233760425831964526156209459088207533439402614597325362575062338442368178829249566570756134009345384327779872481132721071197987161811118213210383143293111566615895345305940303208212823825330193799568258039675940867304364480165537767150813999106738430891436060265870311085727604127932981919505288649158072079581725499529658422953428784017277310311853896822226365474535308347649725923881381272670587523482498157670435187234235893433919249324937567940533071570397147044217819811499516132093951527007920304441878912254447413794389658841345547502769365631500001869824473936664658417096193603309780735568451603678358356799766807929605011606547669246999710972252567202218650835714260931717084102329829996444781293797560026941713299370449866817762829191063665834094759955624465671304931363704946301520387924253884529318507207683714960297048500245233608734869779779966070351327500023777785024299096210771138698445423232540127356405771104761196540542034578716678199349354003506444963198477252578424102934504627834261177678929188293244229509512289784492933618976166351033245818553037204517485229993274696378908405847732941536709983040633768122181403452590618571542081793277969617587805637230709760864048557119198964278596428313781929940871200815945262158992560434993761575405950687088882679420575411416544173423654129533741882961628220105483918664106834981302340119777992881966008693637787573037647162412800554225682462344047900681430694927183701282329945792982383829208193477605546866887362976576283009048617377991632168945851770614600669693760587673681915353478642271795684117993768897090458509099415207860336465615421023299271495648063510822172176229138196827945801262923401930083876678559499230346452827140533445767750115867698873292901934586401934993089907929945419927971264789792689429901487740393758229705792099032647483470317229355536224162643605332357019290919316556697108171833534216116412040092510942487682069507638658742581144009493377246276975636038824889536436720307987741284036022892878446990867617656308096440883870011037414506685223561149588938293284829334375111178941377196174857858643340378565086214457875141481134591041410652988333645637673964559758619668701241020812028413296652779577226750046652205960493557757195969482252040910557562913818264207393026556646159518716724455227454503650084042345337650861401327368532543418464208364789374620917358513978401121375295414870692320988203669320414829215418898144734470009311524850242367902623459848391012783732857727485290033876962928431521452762607806760396528005675722868875608148048775227884840943599027598109325901773089207563151588870650793311802287541018578868338523115172167311405148600001904632440091247090496647981861877311870411554089341154201757594277961341453947659416460196109028011792528452910685291375321553587295713777404630674886601512512745327594907271549551943796687972422078684290215800796709530504999100191199211934018681164646480913849508763680721835924644917404889031800403941303088175292214953429447545883896663412889717027304207706538086341320500639547083009703935197948767147726717458191009380969470387476908685793721876486055567256416628120005815774648874865230957814883884664769619009359996533705419222477387479961190779960688137484156872574876412670381635664984400316940791464554218504205448943461246837437409756976827044058054297681733256122808069401622229523588462605875991824047062254263038787909705153129910026963007723035431773617683907320758135905945030469266238109786746447128364633455333079886835517361662662411442625447593575030528491875064891329746685512548270077732165984579117262158659430920599262437961426680123087735677863180429469875732273775101316962580157089002640225326863003722765205100666734491433645336352324656268752692260216205779282043997129214867839566626141830283066076752168844801414625857672610407191433068759536674842459786826083898326464317584131270884648050414245941416742959170787170378960940082814388497997070994102454781911473175432302591098544208059630063886419845348705128715212183640114940273138677950950294266257938884399198601698850949649529107889160791923168013220733593285935439270586230836423986751653749989541247305726241477201336012871326697320273938061743310513246588276742000260493763529248546945821764080806035906418377916662868574702250585443280026099215151354784111797992724415355044443522159791935352033244330803774388240591513634694198538935618770072125561369794721082750818115511248422637705239110690840799062502556080185467491852862758630199956219929873127366790204751124984961455833671010929648415034997808920698228163192440773050204239895670873258175521809991347050913675692907152487824247483196968658159559566598476119933319935359068892746759310336100975048422366234519855153908903599507821900702044482206525150512067931124273214968029598428721638247801680555670798586895422144206072525542430089036816627284150425279506873310422028219963329207373151464768315214812018625747303417001614383716775899033853784645916826162794398370447329288872347786673561796498564594587211144874274757122732570205290760469174536272174561402320185645205160651393775916302348159417188659302690273276660299387360875838803527651847957770989174895035104452560034246431594889360820170276903836289622749961712708829736273033751832817530177949502682931652593859520616319836373425436311113037912918006661768255787919907560958980131668174421656321219642716809460505514657938314533223800606455997427558295386566602317357708855453835101416531826311747113529402271395411357918853126408461382555697927959532926064296875242436440482319726544881153638994149787021389391435591808533995597964114420969161269959222635649410119277773250448331846834917046438993340288978556815224045404389321969781959852863207696365066814884748121526486700093164143623607693341357326028112492776645534853659393793107205864046763560790433537940183751187749854704583705966383921974046061052083289096039728823480402790612103332182983939307518107097007732159183067443611433787865181037470979390343091101242803045503362742121659198644725571925059659566981673192547509371300431848968858026399185133228342957960053358210956361364231638598447466347760338268509653238405056571364924661429692103181561874960473997297836641906126940135543533476950718229929091389977213834008117525372389321179248687650847463155204938536963836652165494571334366119846804327803033424492011158175336483682540894131127933962675312951323992034762538221398232281295828679783776699683353174310390626934347208002255708620188831427596802988195132765394589262039655178395072098634230755072339539966661127646387099899691639825493294498441125342536845663136964119159866411957915661467590936716380248512715949084744014838810790607719074155704937288898587106179145129991562185135635933424031201809469797776024639794706884935487580325587365499985670963781787324090367877958761526075464335124355274412689538904167613119270618850733032929970733957872932502009573024333302960096919355309040476576834976385512713257218295230702556909020634378552377621107104641507631338022247415573434411667516941824737983713860051965494386875721565947695254311078044029950243977007834607402149626999282686968875309766140715286642555359686744118684281584607473351935749385166897089839449649627210938335466817534114369507548968684077539753406727687483359458160723479770644696021593803646925164802677797650167943902469064698716419926018471453117019640721621882898569667068741342586284182501539689175104404834575889894257723919611613394473450040949800227613513316243316190486023895489306188372002296931976468671772288650527741976921998271149620266644352956786805401677031379952919801516580401843483310103982976844944136923386079547879645848823338246252544044687961875771072710687311307879358248251564726620226217105995459256996046488057026260221282379128824456751809506739745899894740166473104675438578466573531646870603905414263277559476724713200075907983325657218248041881918569305113348793008258857761734948387703292322406836701451380746618201910664891807243479777554979921243698320764139261804317117731982652299169553000090503665504901910925143844436226014415943891877000692428743914903838152355827460999091799256541273290055428975916331605209181271395167430574001370090048583682970443692816621275882962922250253048483818353349609636906196298817698342037030187789850189553899041380064413122764669716049859739933633271407263019502447473050969239494173107855849680841967594533007302458390664547485310225022874876026327054830617377449110527399268832741338814430661152911262911580414131595277015926306871673778176012836911533933108368036778310803836080219846440147703862328392433907226043117545898040701215294860169708987261908511317362771158579163323814181096131069311117334624313769752455389606221496281375810279653776272679861444971797796958854011000168736197360607995364164369437872080682220476208973512963116714535762210910406029162312277066830721636825286860614170032286570712464045042656682752837584036040578675782666154797651020858694394250542470350674205017272017860767992250358100713991472365222872211734676997152510594162358355980315636832230781382990080000503289191170162177867523920989601878932080625776263845662053766807901974339172809118604019938458131373843927658493628150628095451835874052198683979593209013434679346217681620636065216520308728413979373804336437470181591823656832308738345457129250639802468919454055021453390029295479849968803941827663035233087823948037713677335657652845396660023628249894474686306409268933948542519151441448507661499329666663577501350080775292645442082731035086184510393940195475780958105903119012937617086562950654158921592949527047595827502357302079361278399499578796661153668082815730189571372247720507461457706773707866903625574733683062475229494182075787709904837437775904484520963525802665105358069429337129916235139205352443825215358403496989038498478488446540325469446943258756207254895481740272493670045830587334922491108811544525444447211522244082943038690054745568869875610136989401972877340950825904211226648744150196717187869014354097481374457281456492425187581208427096557623357671388107671183388549530525028364070407953618546777580954670032949115397218562831990838786703513435456688579360456543401568054553026457269334487366655340918123821274819130943995681829209570126728814323843770916006563291262511452542956921069540827307738439520246441438424614632905717758722049766761219039288546685463451372301064860494679435954391246198077385210969868085885503023994413861764850979772754869879400254041668779354455574875298530593123524419320749638778556975008454050845139114773690320643717441156324560336270813169719206485908107419936625918178443969077244094287381375413017200677971223655342165402173330742811356404249344720661003908013294906471062423701099401945538671813194340395928400812652090677155581008319986675104981217834301265021416992600473186325233514363427795371353569123118441861539031314172776620409616651729843258662825080286521424677372375759790068808692835298437670930370452733208170863576274588403270360001104890711530788600648226674174991496382947839086773916663650157028378162482348111460359727165235915788083316443585479292066733363088327075790505545992479384034040324540070056412384913539708742332908579686682194754539124891663675924257166985227644153986113840281644875476735445389689887057779983739650024182270223750938321444998433940285269858183570845650053489361200288506049187820687548801944916821836338750596970865055607409350326740692879482130147507109193722552108482633502424497603398995839566274081095329584772207656874275707401985444245009129440249968914199240818130794723408634574628621746479250614766460959955661390467940094504465625834542776197279216522819267514568676848365557357909588995134136010620816111253871751515336322376009479147762306012889016777666350927544643636286960168629992582576598269572272493201688194271381073272890334994720049780218083075307890845823286188593886371527431977337321843460652093587521129402576032298837169835203986468523299267498968814917754430610432603895326750997976976678233981215102405013290145135575805462232969716995355029034358728645929674621479663457779561882346812709143966148728615131306594770615480656626530546191918367849058504215987973857975141574941777181300624961648383592281535445630023839011641700918945395324863780498997625605078645159496297772571142535743717393012276882678606015053571228800039320989284287711654337163979533821502782101156094050125240377494169603883277975349715814838634110356017208531329497044189118608534351768085969415748446096225004902386075884469540847850316631803781276102884915936024232725966865786006581769213942215875390146839373789711419461331246774966016958232888497580039932271480540752099307728121007384389959222757901160657770560750505131138175059594500192555662958646637991298215776623589150229893354026029576721615655881374648065950669398434703426487095102313766048892641114297297936857842974255041089551358186998844290339808313172732954902252443390791439943558107012829129484267080137319428070915872268001142990385298444504792574437118246968856040363924889344971322572521562663468092143689676446256227035052740227907739166967284482172044043701889607168146732272387831777288848519627276679432602957700564478650941332770960750228965427469862325195476138028787358264515488576620454715317225577472590411535336231660541212368508560643376078202068382912682693019536111902505466436190737169528362976891785024537417680133431064611558067889374380749107520364262414617129487958136888402318196332729149465596556530338664974552948818603883957925877538983228326745376239596996721643653831047277387775208398756007556001754221038709027317560250979068648477017123998812743085139991570239964674290714513754438703525598470557027026474242488287960135197321662772761088785837013525997638390809947855006540637412348399983632027738856407120980385307917234166512276898783422784203425968136911467710164045116935293942727690719116382285098896323615998713849704757212571663422605462662201383473177077391497316143629993085820515826588483554396635816245331962999287487798925359168262506207694593078373920597546134318850462156521397390097256026068887745568736667423771043796180129358971965005408131344813823574006478714011646239606911678691978466106503639606116595489950816917214202906528172944658221504209303104396041885772272076806909401762340163947246044242172285745813900820202978286401338369641074083960945559741433642385389285443396354881303866193712634488539157726838682563302151574019129014291410972954350796665848313408387314947579425193917299876654934054448831226559131902424236766387950881115112449466625016935610873325193062810306478970316089804428676651979377382406011119501499324499175235816113593493111188848537978024932829167144800552784276850467468083795408426394918977343276997421529019769530314556482280435497381686753548585935211953076659899498991168909200859153758208455624094164100878614749334304722084568960149627340873847778513178253626971266572530919097494924361254185670925300221481634166021491418836476605636991502296474990469291821060809385193337359841007853474051838102178186336955807413819610882745292912760994999003558078479825390745593901738596096016275792175290837578671778875265893330582533758261868198591160182990405839459074503862638897859654349365766876739496961049703365480132434039190786658247976767540985055563451502765413905249983580988457545851949889096013372707247457394095771292832528358528708115955252025250946781096704798529425081312804725536104585362897586618329112100595828444765291065291250225702316215467292466091875945983467389815133395062491794400834052048295125098588244535896596638437320647590350340293104112776846661262864832192921362583631239027812818865127904304466432849509626014586247332524075820842384436701805517774134022007064790212149833999106283271494774680080756377602870877574037404337050773654322709236259749619522470360016209886883456309252774044962045056117287355329383012571019874484928674091195449141979021810899104158204811287470518565917511639724987404464609889418105695022468343183904811809843428295324759666909551740329611045636399867436564638179468569212690210524541882662738804100203191714382380956893961285722982610582374122556072799998936114812031869049146072354465747019022478719678999402505634144803550048497577471968564940238872016767468956994735571091723961465758733567497509300893309921200899427209936044064651633029415535821683945573828202476842638429341017872573379666524331817186831579709378841127946465545874667879242759715207092494156099224738557448970888759248560530062059791955585291189218978877607890252419034924828260976394618085249553303987225172854444757534846247441619731757274278074818763017909278766466402059253690084090000725580708437640912887358885015809435875883522373631715773951683085143314244884481824043500092021661227146791185422541970101117387883414910211723339774830195023260482011898613833345603930553429808931490277218909813487523761056683555765921015007802798041012699628020004730321158941773595939775100119431626316548364785126267840624139049454831760365467994798347112325723063367183056429097930499527177674607411083221485966855917291974959702183011377550202459481759922058332125844498640211178650833486342704149022999361736529346678482315815871519984996925222417949248832238503819189299731897000996654483852507865352868961018318604338736667513537372863183728289745904778949783842580281330318867425660558579156284851093167202039381102484640869757349135543163135776171449561861075819616078761964424145812371713355153498968565354705686431117385476035832232985257068363655774041205273964746780574369830285854824080098629494107916332589487240458845902308321386526907136808462176324471517165039082737388465896455355729717968422878684565226802792206810175391141107491785154819060530273905101772425031290184121872634076875237490463236917557807955380402810610429177842179825954895150322503341771901407917531405356513748894080873591141517500384579291825575664134426219000134006481671527133383837103382139138548025811136365377874757443535959004756879429930853206477514762170334780261608163443194933620310847699305954382643504889159282826881172294373402060037424737493239774941855910222699014537983079155969396539840772761474565041527598513560771920929053858178208097948339831015426619697498735125165840144668808966761693836542112087696083233536446480425769115811555101627728846009965235805161482048739991945427910823596259163346648648234354822331214723042065854928000144441935400687457897442002875367066194633304698406943711822748426367768907975305056987476258919404906628014221834725716155770807865437460628936983523183675211676396918761067384786811347443673759266230846164447323459941068478905822394221273530117475554564107150712568435033333423547349874674606831092282903146031128182448903264053990433085552983697523985506566822706891243284906420626666662855076672545612414570178210929477054552126051103674802556052003134000496019734967242241946584799651509179150588596604025737484998639840509722360176776791360061354118667706504444492156510292992691335702251973083330890070256782351337879237208307981855694089105789832781327322114932966930669630736324075369741604547008653588387331779869947523058554557638269710092019701262474536999436325079732933728226193378207889366954968674131130483931757132848394768541247185097994708618564306391538868200326165907300084430406877917260701261839797340290601985900347791902899655595040059988780495967180898080367485720129868624598084606121289325261595610632070284100622501790317153822655729847529536182130926187757076167630840060356013672891989047310171274207010346922160086629350157415765531527896746319993788630132573372657684021366312467753001759460769888189056380573054379722902211309346547362905608366017324121851545510740581672157992856225361937681579190472562243258434926769736765245478773346258914628930104275500095842164977689585467843326370888676300775024289419457658528872675172607695023482717562073678476815060077673321518638757882299690955538780144967123194428451032974744901241480957077280718429189527291255669348725316971302667560960873762111571152753327553834515484474741987919947238841408228811931932297774013643044967826483818860818288388777508441296840978641653633920485683583449638920671458289712304130135274119410692760151446422629545225719846596400816870736173702419354936543804867303190487597900474065861341756292468278128342939072487560904681287142194690906149368187283733539012388293858549797381754871744969165540469089215304824433653957350129532429589349520339501562871146802401435954679336405348796582106908201916938241829131500886996867347178677723586447078819706718772359703821610391802889490733898006498510567534699049393508313831262295811287899422552897515515297937773597924081748808391321604545284990282733355987997127394896378652476170363467012380607074104162644147151477576798363986193513421199494504598087473505220447453310300587017241731408303679798760800329210892118275340540948218354253233002075477575578156494940643610143025380281485558548496198589821393022987855711060264435410976429373648653708579283333064313261967960480021720172511303981142248571185676150620083935207154242041262636469989918503614662768572939333421639315522753979726993519524046358644651756009515093098047517477743396288481739471883829506815308179267909278447043636485265420904530829762953900250451970532616912645014022599929028723927013473120782278582531815872449969258047627027601856140871157894553042774271647777572066777920611189744346931074832888089561872497282694728936795844635062253571697243095439523461394613781615105536567715306668572547980276069690310363918158280989329374332229096699103435097831261034540219976258944733559161827290336731756791884728766198618896308073069807449491234558417944050753575595038195786907185702596320037642192841634797968456528963503852368152917146702173601145891723991822414714479336479840632430321560108397870858063044750945010920171331092949492788574612275649540219266659981311818292911102747785845668101968180688867503367310566556679657442192257432758485216545166592748705850531736177672163705275841379761817040573300726909798164385732827088281768106182838240068486894952776518883540997902528780892812392419187941659723482295336650187333136429435970157740761257375210445961768817564356936974147939986487096333918483716804237203768720864642805688230863447926074250315747885937733062734604080663976688151536136169803763911753816510895509653971796570811954661776083011348644518382438284227146811094428348610837587644101230620276311445492275319673555730775975459649964919169306402293496173275017318605417531695969669124805456672812415211545861902478646448001178491441066407911778128341678172134358105086422156395694099185801714704567149687546144931204162870522497252921341454342627919609852507858129194077010854254808074214592503818921802290278817196757716831766814991702239907373568730131265261894153161788595016778658589380210954733111309361587723043071227460981002779517132570042466841082242374875571757754384726724956393349670528706884164601905422322796868433327234247229131201096926801373537445432715234233730090406813387767601390245302551719820080660889176064140334914839619935354162687605328376221635987030441945603592405033917338685800307343507904682105712699757328684318336342803338296379617836172752387548438010407300440907267558467326337555611135054212589334173321812171444863896324498202633167717915798889992950125376138344726962392743114631722662710089206165134578625224211670413822830051433743717174756025233700348357187205210727032245512799565312617499015481010063111147485497708054273712301050044672523660523962269706953366146072007625749616800732176654856512642997517498946407261229495858754909746849781033770162593646899701605206323600023991679008111197490175019905981395551936708990261775876125738485073158290694006060007472580559356933046570918051594772554979790422332481836783201970350913053052183344226231093463885783827680424951837712022945504359170440196569646523946415472678972486411044636848581540593831351225054492394428547527526362912385824505429395682178739799783355825878442525970100664647174142741398293368191653542817605168137806303237709047653736908886221787398949798622027994614839671138772276985689227363972378528026615038143062667186321089660237137044776245128432879886552420672163067329630607291727791087766593178006286666518605800138554704284131986319017644689280025098772454159831081802347525092017716264127625295828864836231868823866102839637235669201948265658213041926094046999458494262177980232699999451987066055185229841423807555551818463446002973994989286884950512411914035401354975667566709108006693566421752556150525356259265765864430053111549606044098802656663683505769386319608538906147183408377280399368094970518856720114780718535638430020403358357357656249417075377510012200012797352108320658800336541447567363148532271763722038037931261279170962568065083323496127834860753394840754677876908340188972233699791670105038499202533115260510532889956866147751288752992503425950522926467060178788520181644868288754768103406205475942555688018642839569725746593186204080633414590921777898887597856946115309482226367024898100192286387195773468569914767283357605319237447732139378764344839272850766766460623612537921120138180038028244700661721966550765156885045855472805110742203016090728290748441222466968266339172647792713379951601832616809049839059349958291242593690877663606258153664283937710906280678269445983680744496085481295375856785898486667521678561762451285940384104910626499353348537943438106317312096814262019650233586400097978792659026603712016525163466678146647978727499593128299823997367159375282326747276702555712245785198547032978871717364299972704188066061572256127637870821883140225678599353563953938677768815322484119836681285042936579613532849306058410022350912236300729595980836582634071491832284345944262617711533457496867954047590094696385730699606870786703298425544179497389475765712177580445713261875236199108992407941764673156787047473607541362686204417384854516035231852267043732520477541704808393278663952057695115574433175092546534898543383818835959396759399868651061228957862645026944363758834040821836878586494545972028372907866147628382934266638564453484646399428859549023284768141505730879304975079652452756705974975096122069857782305110194121327367736893172863067186155755677721268765310889349705352461409587528176334801306815527511294964086574437564611873659891335601417277859747612660453467996776165319060992399146816683759693992622902544086891913419319042577946600685120648209091761451960330981597362794423490759245915142331251578110553094645154280117058745701707444947545744745423766583773791165627178730431595090863702570971431742283746766455196331698693736684722267352166912938845076151462914753084295613289847048451614284144654451324914913356684117448862268885907349926867061318702452256658898007241849077460422887890478905830939092219485430859970948495792022405624889106186126981047229640755012356985960483064625436014877393825482199213906714789454829042287414043004278638985454390120063727354414996450574593367748385586911287450891553342863810756772846284788067886506477536391411464742745164262548143207608781242865995610446597487608333494414117763790913332772805727656026476619639465203407105027000480974640745939797001764525708222201546907783734040398163098622648031150067032599131015677156304425572056327750956741638881980024359134611543579213135035666728940666479755938234345630491951182277086936489076431006358507330810656830745159795970483506353304968470704377813959997153037266597503236989933739905681204618280549893733661174243129555618794424346776547841750047287590265778160150940454747257097755541517255415107330377330213228954290994759908053412315039264501680796982044516888174643290646516787957011962500626429659260570394557573028143075635073975732453276391523602015480558889536612061211699254236010341152184166685460872955070799041903669290242104538073108836602056003092875362260112434354453920595006964907165913451522086961044152500678045720294665795045296516060233095605524373414296255994449321517123959435586930715716688679359416553308291847183149032907406476750647583404590571076074166900193843162449721140862738332348456831954015237452142553247317112818889480660952284991715279837611694855708221619408665420641281748458124896228141286506508340898491815933381877180787920484905139750719690656604685281700696304672951228125897906584878239924711459428363304244152834185332079795356549586960561110416588484173568782689812744006116136608546162719394366585568940002003606289865226412536245136006755955698396604825571943499184526393985498130042565502115493721037972163650260075540224381449874548433404154642236692453331158730360496470496974391937130165602432537960267528900735743849028488103665399579918431829355651315550446818512132732551178736084077806531652268547441393658455567362288593565040514042995728151812431653283629221822140850030577637780655292774139697090921644957457510362554566851813414544069637838381952617246228671196357228372822766072277420829664998279897805067475295893366367361234010422688882234916709498659843476264003320870063085502217603371300606315632517752435169884569690841438612656275695240077743976183211607414762965383735645950298369561569273460507300204292615926044100300105501654574571636332345386550917619424319155332800057239596567857791295966094057951767330127768155092748076331618419433343544419563109957490743135684413476564938748764052159300255205873259328505630162571333204928494356033176130278378163499090284123064915520082753973453891216702132462957360739276934590612949791669075492609597029384275556852912529023758734540255007051343519466004919392990014657927724176484997209033772796920306873194332960578339913222238110663725527299220875119223292984695414711771536613324325693470095033460985060512453663969410440772248146047950797020348776374818183154801603068078085451675848543538548877624864452913534347671351594170032096866371974015291349812070385982533029916289431639818517295283827278856683063407938327576642238008228546436434106231653488002277193051032344846251858274321982821886992372760585257997273317112347851040814086004781267273924359108879223026392208916910395221099969123638906523603783205204448130102323493892989135900625460532555783328787891508900580193812026136203681354705621972097010888864175485544130746122023230873086979750732762167451788625605809962704113111977329204278906385574389704767722421839050886930424808961676540486118420264052346306432802045897817111742349625741205030307588789891803991160944854777883178705645900453311545760445011748359002631935100497467683501070752191707554784712296378041437309966241439973638623920376567156617184700032286120888211860547537254176154797379772420452859871982864984935559848756535530299751929213776484093837136189931355682841541030880482245814160093505850136952821759990480213806460410159929228568328350118178971273565880001510781637305263934879519400375202502839477721566968790060086045494294846668759867552051647145868866227485971814939742391489772621725718673888052474339699759701728206962248555097644098558468896280226211952714007935118122208891276368999345372352515426915438577775035430001212846829137313426977368393851405451902526492279406660295354561636011862604722074338520486117692381088840103643442168493418085910853417935411681165652541917151876838944602915856380130309160522007808025852195038886151336401135777055168792447446618079593896194845240107660769322881730056250969352076242429081303806097394341674671440254209658727930296458170699149048581359328010290374065545302258749091477957738643514919886805870301041178294493070827438903655038656436387974240881229397982780948547907451462089941607613706338837144463718850055210709870650414222142201719695088261645499574095577188321930664089668247199862192602580961663482805291783296566650021192371340265174460350813264198750321534531290459502114148216192248559748796650956020883665433123879274461426301154239358158622517236825400068220230414047065245766575763096335753481739562576771966546434154799119215539734432770038997040314884703767885893124563140596064566476846133888887449516982604054733456665905879997099479288381705074523180219579604171796640472638743801351144473440089100817920677877328138257503233017596367360634082138555539176079250791836277439600528002516609799209116340367336289488912759363299883090549734813617231126060002797111405640308329087597762091246419997174955229604501301646350725477408210554814797178840537138152192623130800367744623109433459086342939709851672659570303959243835308262589918199325126914196283150655560033115603528751962928918566250230324626025400807453356750915612214742021291502868909722270640762118552669189537858781076741367906249715325870076677584417594142706966330724455299417804204390098208431585609763165678678516772719291128001782974867788929596670595632871044577414257388081534583334818478748742846701355543847250898250607430218809588690308649982883822799046157679176620622406194508404095030070021557410408751402719029870847901120310946665657870242426045154767230231145048280763685127305070697616029642446364404142756525063096684856176661821747372773857271370126129103639898862202250119899663668450705210986795882381350988616367281210242686245914998110240771198260325024234535163477411067281553908243905264440866727710005118841482844675630772742578268488198180574087028492291309185224324755678500401172637823450388666966477811608558304160628828875655957464226550354773078298992658504708620085824393452279955519247070034939133897779523531233808655646325407093382313063352598658722851529668863805692722488775522525654270564105291825745598737161979087788670568377068532762212398263071427171615612253211706872135760673946077085291103453735739149030906299932349137391288404471151419499934927754130447684954485103706454495567866605324544336535407316827493657122118633419061897709406733406207557780515378525367504274683064103125298145749354185873272542692869606178864116095508688346453189587439502901878133447739679272230712850314247392133013471793099149188115012008684234721030409480143263993302373530800574158431931345349593282789076134919421187392352890142303836170313534155602662775497669597153652392429555133074893279421357908751882511594660079134391074036676664714402915810265279620140281440891919491739513714626198079789134758198188871510551292661644233027588281501244334000053314222944535943177277403899130935347946406941287800333075095715913538832566960778358602215315756538094839710687531734328239448965690202603428041734767199301839893549947968360140709464544455483539450731195928511404976938404286209251384591915782846855280983896336626945935852315419914082189165757876244618975201806507458902030176999301437761092507789909396983923373958751026124606804503495170816972393925038531547602612378156180389218428982136931228864332075941403465687311419162858943570206328006648546331808102744094417967369691374670953899901278869425275104849171130337825290440712666800236472080182989750114942693201305598723824036619339934629810044949347121794546210063979796023255306184576114159822641207090149611797688352317759000189140961971612264998791801545055448647950868195971092511230153471104777514372444721829049143118128515017908362437466771727914562628887534022645558022870346814713834649211828889298293476804603643891540974065199866652816588725128465729625675192588513572918737917368962949030375432278084095089226099460269525050744713880376195808551331410568414201062204969977886493724919113143499517353067761806026564557305203211344015294680538052113754773392596138402950073802745071055207145808129639880913251608397479948015610432377350375059599430494464431313358731656015651865434892982506878565920793094920742460736800153707967678693865702411322790854807689334949282750998793675608499325606201135206760553784822519911636492913037898832696538696100320376750893454018088433477209397952069624948131362024088460661863041538703620741589832458249995747012889839903194783643648848254363326363055052199609402219422200550055762927056978073456677215091237736394449105356664793842632222064458151375897795862840872308084414187141882407729638547629295332109676420323593174056597794939995910484324276030536950328274077637225798855288209491574111205745630793117362742932325476388525402475773055153963726788046548953972706251085238311884429144484841537164654438085941439019650848381149612038027788901073010158934751268306654808052301981167008437424460731207174526855240580438154653226448166532341055767412153922341153170448538545629096711326559672068440168799627720809355122733007088673784856524466720005828565190129325604741222324961433006075572987720567401790859423968363329744893063107425073967100851694978701714325795210062342844791447662416518450480897134836187949405087372668408416085669854207548689178557502263203359533524518348617089794411275012522168143799753974781626693754698281723587276317157307245102048006976457207921754339330310282105091525899664693040315998980415130732760445984103179789208964799178193333824297144763711086929777378301181408221739402592754650880201569928434981836338282334662554349498070020599133760816132026600597432063874167629966989256122196439509857312920821060647171972672036155733429876517214822517310312061003321871790066267801946148929777766995641103693571468253970430310546773585268959685988110966000341717174959399762412956639633565387199111412628588701116278705832679059068767699598545674931933538831385358341557111518678440825823715004800582753550200823752242686626832017860162790199020233260970857552674391322657042938630679805383021006004708478461013565945632611621919002884445584148886784560401699480252111573914980320918079676631669023487405924482649334645120081478647962039385294325286254049200754097347087675416740790403854526686401119349440545725561676607027341720818374043987729584961469759213543129682025064362763155630796358643637074935925421934588790458859698229271802988552174612741624311542742396844884795194779083570881197273484038821384811615672568568127342693546633748638274519555798681959991834414706073054404227598380397373974605562318000201611215186795370009419214670068151331087578371207894031601738514064621541887384652624776063869797306254091117939293560713866865143726139989016177414493042769533428504582092647031666041523554989467818730192691424038333760964548753043400214677371155968385076148743609331589446645751775211835836548046775588894857598403602414325150676869546672097352422820760256246550176847856086166376742914901676473035924628472301779931875281541321179211196281799111040331660491199386224360471924410913657148523686801508403693122291106577233389904653086743566406873937829753168062165465265969959398752747840142049316140443715705853905221818099258917553704084378091502531864778184333667873578688089974455545396013481240343898935068590150144193504387931229851632107344762390089830801487605844288633169823404937112822221409355487502534781940903631229893703918118333289381978217871249820914231779750262631831737693925324147570559372699658805242033004177543936293206932548836445705927036150681707751108631088410512227946498969857799347010048927752649601206214327121898091063532922649935344241877710898471228412877033697323125962373824412978099628270654551547910563931293825474798437759339252069962192570749848524695075887813648332179714771220883073116210163928192517430275397419332008633209041893373425777014947221043496494489481468135198900573200295616987398650508444235967679944648138696994712024294587490639828373182084414315559323109423546052298435897354898881327867821422599024106118039206933274096380114229571298856911519524219780357308035735438013479729323635382234948517657661302972640445834995944658193004548156665671191650373242043483576743911169013270885329611036019176007079169036337268679884617775522390498345226758189863105752461803223522645797246048169344722437779399969281432215535592229728847929560408382335273010983967859881541688207415894744306995347903005020381434248316635874370453041121346916132222931697408376594045477661509411287962663756620511271202217585325248229252337043459768288541090634160022667098377536661100131677708901549044066432991577833128035555512946852025828787254789241052703748931528038074747523817373544549985875047304967265409049422198846236557210424368470346384585937700308432797535769800570345593272364913151770603509060583445589323371262972870226943518568024013466977039607535615574138247710801243572454606744090921197997645124347884100916706421750587219974030768329975286484931862301383484730104334893740485056138002130246601630772212504798431349198491312173718698716053854252447405667222994215098619492708838216550245612533260158824745779329151944803883173757567495221454924941123121288980666862538429031514534837125409647180628062422267233244839687121209352553872917358116222449704757041818758109744618345690518540368510341029548875307805468689757284452256966003007195251458363962794134138280583328043447613966355821173620774571602307014071095166045494017568197327276860165471718386946102464022949071684067571249284832355021345523314149855026656049777402298054559277989928497476367730191794054963614152939255191443760651332333892400315629230656238905442588345142328120992875149282933071221362317850396830629005516522357797874375018762100696578622652102323856195173681251221719586310010372253210072420240874832502883923836154080233606480749767560407485395083789614474850822743251465740219393201298361920989241677278920734567796961932426159328586684702251180064316485276354353850748579026965416540397981811731880408171876805633343146209361501450139914055312867091929490766299831686715508846762700736276486346887538817463913490283424648429843235519042556787070856433467170710700246147044221870410492711715095476911451592529225124398616697123043073673417532835737457970685264393142614024912356789131948482633761522693200412378259552607898389769035116701826991145941053181637859564583692457413139178454535052116654695438940132201721347976155150764080829117776917871281963086837672030259019503947807049232867298562711326023895919787770502283494076070810070639939770712144411295791094063346144822600328229267982576128350518656392739783472933323434689894065019680624548812835866069065046213983429063777900162051717852325678225861426806882952485211751303457791679184541544828731356065331488223579597643660127045382057195552269948983700186680309961888482620411639083156532285819000352384891137464191760654114070474689394087223196753955565960988366100493401722569581241618961031464098169886317699392513246859102857220189262493225294934569773950810186850754264532879796817746351784065309547533398799072972365335892272357159299801949589489519590301907318333427581749509691305219655978118888875876762953952555925834462407217261669933985803734142217301173657429416405034312632313472753603812643331908208390207252559782146579285382020997790490993568308375125424072239763193876673514203796985555221313698698660497159435926817888041097360357489387119105790714152038340621698571108088446988330302747383956810198363742691123626475231888276018408573689829501215434928214259600529910858936603800137019756747071918638648842516010423773081078946481813946490564636917578958349870064323396560277857291331336226594639375038938028971863906845863186023042821559706387260350068706334613631409702533093744531288242803363287767850790228330152296116827916139285687071039265396057120185001104279790093035746843330738810422979993854866270494337442424663660788120065237481885739823175042642269703039850343925832024773833525204365094864469477508825441859595404588414933695602049102513625142448420104564008177081543525476421536938659118454192222705164079282857669402607749146397063183831418347825558416503728825420001134993721505887122334924706232997374763009206964970748466784652753039222062525531974186576567841871497735046636360194724150361824516630132036815913382148885392644217773468288930672848424733107084205201150977334198777966816683564276796248792160568885269772216568027641031154344728694157875953850492022167255454995630966979041992795111831857555591929633603988896472246373686049061818543583315393358829852663992271359927385513127479033642778085955149439527215194203677018629379537640054147615359260581091862677732559070921711855528845682746226158547530429516793141503273467300850889250423579762186838809991282419833369355204629560370033262666615006661497462271867345988471010662596880416887341274428246633752353500053942437084455294028700236074453551691322809995812353189687427586291939713513238887873322851107176123172057827431863457996012248578235494946293177544935684049447859478137608049848788494878408279007395561652189830357856063289354529198385930761359167395520144501594955315351870246298166881121116058887826759389615261927425979326566575835259184526170840279478133766733148630558702549420914409491595530766767690903529825071197573627893611833252021338195823038583086710035392469806636378530679563825227364361491232451397520958228003128194262258268157212684241375638629667415258999593018272902974280468937344621472599465641070469475223860900670202823493194590705583574013957613238318882007908873267093721039439176195790010486154303744828030726940606156030534392307418961371009036672672759813641797983387494465279591072555963792713298354909473013120034760157619289357947973719592683552153793198283614183081689278916501189279229038153485073052014136288905289212862943421834204464962721559404867609831014302066269369424869515582618746234021983924596082180699152095920842555519705626184920361838536273226953900427314765782924947341143721275883875030864644760761011896640675492353746187245528423434093154586200415045092972217947606192340456752539664283765114201694226866416057267281854502863984372510884333467754145750589534482856243969355868491285504092645948719730947144650553466604175406644200097484382876517095401489237846533705920099600384848671573478285058181957210392381624752723611443542737429274673101944994813648494645337534119217825089873734040529569648457223181019275959597973190454530385622886567142448860532510221353861311760047834159701055771547201542873516707155221718578359722260184224560088870710638610512449239631594950995184309658712807380792980770106156323132265423067632364043275403455638508002265948827515025946664687978443381299932367469183690600049993667088433255774014120697715958126005841231724108256702038127084097870910467128688024180162925703142135887155057469966922143965996500360941244358921975688623132206099630729107021937799626670545054647268742397862313590276433710591649311234877598052486943929584317024960983436126998789372040429729118936123989359375379228484065642782854411944905035656395869426655960418850312916487334881467029421373179398161727242699261348656156675371122841315701879269966628499475340622630807329231166062543978868379451938210102887381545813297479982452831271072036787522234103336147171147429958086025486209689542296937233276966875260347310058039080691455882371568317675197646940341166171875078122967822419117708952825132422392873449753256399665768362618192851660217416525208089486934508681793092194071386755287089122948819477500645700643565047202058533838300942108698153359136726762600069477177153578101124439081343203046895073237580560015797669420839333845855768734451300257293414909526951127237134730423865032435137203780647155595208799029609081703973676668990909811880628864613947518736117743271271395179003852051362587362173606150077265213117130338384218915291911196077269801437514620091794465190923560341890338051669431386496265725516616716598994412303999067322552982558543870664201739899344107743351013670827428238572070770227501703327518588886180017852671408551307583775416604607078380171629058111637550404538733702054888920281287737273352537058578895848567473081041507561614530090759751125837472478931796032683196508789626779310532309087010866369039595899497592221415207080586364339505632127358335078587120498036493957804650205478599267593570391044711464247438244985961753920756215986571304741890285967894627192358907044508878408334568384236974161394552101427833162758054958597799637690566301538583420244054256442477383617608184289023091632144782642902371958378136973643373302990212086664382765448009797602269837211164969619206070260735890240708541193140088384283618133603894923649559379586653656552852093170698948548967735526009390088559178898096555418971803290944452700995657740257107922958918031363591538696046108261273785126340962766153766502209662515556319872214613991307700415646869796870000634964753333951809799326214852246542118027616776445768699909824002185377244466952531719278786918583313735343326780538282930751057140783320749198196460592701826772666099269238092203834140262043672211101088505716607276999071371231822193260057731414744461053062377419764476828993005615767156727079907937293211985924951208407934003230771268444666705642979659179806248595808433135943027272045928382215697938417144533586267404016465977448896141096479811364076435396260845799646511599192666232893458929653900780067017591465968671941922900782670725072693439275139825170549572144415969528536534298855745887787643160591444584430063727838213775618657305222319500107578187507660066641096392440513218601882023363297713727635778703140811410931362264123987963046619217971505893513021851305790654593239323648468574180088472940701848862420560820212565196456193111500672419748693537510377286319895957298542232519388183617329630981051603855378317101814500479771514024864000574361739132891637013558494078472020344627844730340395395605986930397424631639707149528438807975241470243820804800879931976419010051351617228155886208763416306013183945455268574920923010377710330690120551969481254598426481336529336581702153221798640399924418062428462693270784289723714069169619444615854637293741096891335605804403096252649128361236550909078568764692745288679742869846111220796945642208630576086640223818483226808461844418973749569610270091241784323120300055523823350077595770625221505989227345455101919158601266299548543565199932374589212230515134877995980865462800073731788475185327263735993462984913157057862858941079521101023502930888423808538268393139556635092436107301018696831432772379521579585258595829127384725243683519367757909494688987367664863874987001981302814117642079294572072533726565075064351442289511980961316880804316865257565879149028371631283766220855639801645426604712411723204015244968784517223493124674203412968391192734434715812933265088215599407383677748419252803387243813498579750319861932651269216645383688448593838992293450411885356622294435202955082045712486593579650144674071875046406364461035554708856282003908440327476390287040696781135779584341380715996334318801113108249268846862350973554775483132515158338235756758458951023605893521373372270748884474879675599763862702814270104122083940006687988546261132466276182102753065043640951311113161834659377922289011453370577248824613631541979238996891987630936076594997487600867254895879827274840429032717338198691731696295590719323605352169021358903519752020742438627530922621271097262384778140752403437577047515657152497935817260885854951091643916097957735444453149942864034991891755695441126935073718473190508634297577106345639813366726563776827946767413915247254216843227856652661663238756636214649803785193916574032760812385175429762167002050089660468160898294375588042132512500473866611432706509411798103597506336737260749653269396199988325531636333314722058363344588874411794028404347515664023999147961167180034303280033341668997931285127320203743719894189715157855148656213763473804318123447996390409431262116941726469530328271274022759174951328664522190158355431052520865064148536770102317725688719266072565902414596660133258311476832279508565084315971797973365221405563107854983019813637895777679952446785620734620753454206885907716892083024704740524995545091733374478715879397659285014243444499973925285450864076280289178543002041776082880720131511786932638923423152785764145590143861461318402927897405208436051597012529335978784696767863936634667298327633349454051559749421052803593272892455061377072500061826975708089161242581063728607802168947420263833407406730611779102772194851369247939922589191688888087885632277809846773309924765214697614782927956704599599360760976589093633490874949718910957641018138061479746925663271650817644281718800389921054217502816484980805120717861762012398686370387954318731261865379454548184918723199883744708818570269304625952243076457636594488651656188902840097046713549199796006193553653875040871472395451622029934367416934076703644852251362095488081210437836195076047793890631189586127762304589339325780229511806365086135590685864975745180116973310553751946113083163347176900267899093073828857707163231060803898194551418064592692083201831280215050902741488268042603252749240691763617410596391529707001036879645725617323078968345596755009365319933314678173497966896461561400859662208683142116171851164179601339980570475287431015631168288205559626828993626191249473019390279506546471922170182856874323091328617381384209867247877922100044305352584481886011132149824012453311279358259455668627119828483595179942303708060388262961268580214446369198138002404069571029420548437365675544286118685851764653017662216838409174422084515944887989766261190481584796161379084766785551713087294904387830394411185827597178186850240346678138205879724783386220308855535383903476365362688700464137140297876392958711667951665404643585166132133319773087492885427707459617645299606391124117808933042079342522921350461266974962234251280123724265179523553622262273010192108524319335604492851229920554579794457369423442289785968687533076089151735989422005408101766581790461057455725236687719308158787398902210046224347724103928658136160271086482538794000775165693580331963805539584529657223410502210029851211881006481341954394151305181441592396584272155132765161883603991178580442582255938398043462055986535554729408724288351564007873636015999220093903548793113494749700141856888979501277932661325902799549694753444852389776143391306520273008917407599761851675480322224575257472488975020842703912198125346007735311982175200405888182577334377616123588173890137435312879473111084330611562082591334339196870348087889297544870315155708056870777700449644922402843912339448517679405312358983343685174959891534137906578287833657509016698588659132657219725788772895554060285732975658800909514976581830679957072797854241051090499458564482648758483798281072712471307639108643401230476087479203342624295877972522780213204882650861642428660620237602117961827935866813949967517027552906545266570136772450952572985400282798805616971982976542089114620601554687672021493808385491979870114571813945278796882844837002085229251255148579638603355608498239754922341361448216448059540471062601371754399790323114253773539843155215088543210016313140918359928064676804492277517114727937730060510767468423899510952266258320739173931388315612585645143474437770344133929861372937328157060677658426571438679804659137804813652238853308480254192403977338870344183971080111410268702923287535533749449203798459040095314127594725624195186835533682767890317568856777260638543734967297699378620873571048135345153096605490724129263857659659165275073410105609795002670573195618953696909499129518316690449064974450270459294791112246315862735973975234761897206728300402654846241269964317057264682664895341176774737771905790470486859694823587400557500851022307566866628352530230343405835755122692229241964660308468569807494624337585410853904716752731348743971417874726629529471534198993065871064909370633094077433669712879300842498997630851077958880595413771222431258362783558453715843777260598290103537830469416722332593149665335978455104889369777504626134679257687003312437861231026549867486011147921066295402946794035894350424420005969411529577324691802354700544155948050830789134604032662492588050194999363319782478730150689849994858242779472584029509524508821931077932341164334372864656652432514453944570280090643946150649429510501805324350525933438748470768451004725300596322916156013874447335210284886793991168301869302228381233481802340920736962070029999069466707119279416370333066595103861388671544556383791247459706166872598807104678137013176659166158031336137372498629221239827464713452923064773746704202839188820471849428425768475207293618208100445445335792911610915767851839436788078894338553228642935873802669935151455114413391281220543875713402533856161805030425461401413307156550027057507147075512793099633902952878449778356573344647682665818165234571866051882383300631990054585588451365081660927309919977605242893373545094251068440668576517776254289040718969122353867083644043705195285653674001375785186529103314289974683839450590732642370618373113991592769380353933591032912150091819415634174187739689337482065839691354518636384072939523530141524303600599323822912733476984216368787876472240299296884140267426869695233812759986077336979701686576828583855222614768536002198050325850115351084499549704901011517762507152071079995424140426300072835964475271132645040217086475576749466889577305514646730534538074249979978071411884001602574144118904111340624758526692816890660409223486672307647583522938599332877104012257960382553812271215359690354564905952239893136460057639161852932234387289728730970960454650452908016698711823524683712672049555067855617275761145875705498319890437657186517376118696368052020105843131400591042296267977693000337121896920383338863301477364535683271737001455658811112740307305982205915213538014554470384071639696302111107321373675418152832127672440409443707571311572738438445868513602260072185385699237821937630583485333852846856296403689447146427803191974174930698872426427017399812607281325944163997078324534827085717998746933859038379008986462253903704127169406064848278749588729614209968380784223352001898039758016640322081198779899130475067155810801351453305242386799391840870557200544315307512321459844186472467467779537874210664607501876244523369849990105278816487767993588023660176714795696351451691367070334666045065534337836615505847094590936698346427109220097691805312360365151105729364899585639940798196372861489434767639818000491349571192552450210276174077947986567875013542888432015590164274517591150185297729050061165097708531280058804262509172751951152828448743687008239982001764822407940694913295042071220411600743898283293633130860135293099359562367200175770714535451412820256430486569073776605633406125698067808285121860062420233119510665240779635423650826530620298934177915994300859432290070363360908609698446275186632965387068264109062062155026323206784316815678869153537128028432594641011766914721684301690669529708580045889801553345635783966977783489819260489577154786991383567257970912985968242841585495864417194494867768499304551434672855135692439238972546018859832164647320618306575944477035363273707946575978140844996071493143090691797226346061424658813450867855017644669141971384223528661090167853489486078031308173724917852250030512966647823330158746540321190033559391598782583649282651645159829406010045135209055430755566541578698767021497692313440516561010538437573693620717040828240869086198071242174096560960430501773660638946849123320335936449929664972333845755343397857392648848364246502049052072845949235488462904761620173402673615951133542176039081021877590351609514577523349303561328154884027857856598134769841604960825782509073296657305251154131597608389620071325544388454608509019331929554684515323658834100282350394414765872700582146449689690414074258261894397031519882001757246690735582799953915523965387913408738052434122426092948236687936283860658287062840443187926002800267916490653611974178730555668741750140662075693650432476379896453093541726453468504803627148036619854724716070286965742789935935952476157487964941248019176504546805375074701939486304761826876224935384232053980074000170602563598092076940611493556368500435491704827561516055125857879691782779867234397071017164639763789202956909587450113285793865601923308033382095730262925758709283291612885507618379443762078634780650873537877113310214085699653071453205076241370043315533513678694145244528861548156240643076012405166526090685959930724295490982273749047824182564763795540733265854754132387534184440778458757476651781856970542189620138320449783503817670721393523631199958873706250166808301912090197297045157456839132305418729061095904572988410871563124263233636673740906562275173960448084598948228475353470000559663366877218064871262041051657444750796876566559232006721991665863383751003852072763840717391423783027691348206212701396622326054572231167827173096765932973506558011496026092701359751200826439921966169940424527948300231129655877511790145614122996933301909837256145471049453988215543167474041768892911159492603946202885607063692784632815914468083394177087661157588774813174602199511947291236710951375574230992061668325779449637856342995578504554991157567883396660896112033968700334182413393292359100801648812629773018989773542913304819616734867327269249962661291833671629377297892105720914122960243982077479709171349351325299911145381069360884861707510726076176571448187625900549068040903784002253876316173220161546689702029579887491262001995890501284341554764281489640014682812052002975402642320814625097077679605837735145746855914520758547215301378104122895045886854999883034971172746045027347621577002106437233734958631394150340096716475981310504195469827750687750309026878470855454465338055786348219683917967532857319654465693000911321520695238704341212072967530346491792529101036433610502533863533739672167625969164101168494969595336452562516991904618898431873503783766248689053166206898811057698411388830024597383345679735643528581734246601179869592144170184825826938066810562345787843975087167131457112058964092684057684419917268415369037312156867616108338007093613093991717675820459503963387331444979089191397870202318103343088492876484554195817155580216741827588820257693972992210466151686555617233732031933309661106746585582876068677894512026685332875552845235858382388920671474201187504707591535156548435753797174641758759660817529720583488496921865730040107883411328100545044653828757976391128943343346288247025762634371490309721868820072140320804505494117662201467423198429342483313381786260305953405038221035614072534333236494784042963324348566161297745273580941146423334708363394307498308886661900960374878302570451097961565509093026921288764879752646890561160032857736925811128836591731551769168187650127681586696428244827827948138648467842475183692650826797245664621889110309581045062158354102916223076085448732963529206696182655772362719378226202253911439861026588747840389724899644088597298177073017792101571566809251070117290942101182748409351735826197048686885060774893460446962259453241832299162228348432141993052539298933498897397767071646102479092999844645459395936564754055518136379219529897683598913660517066954530176189789760803010084143368762062372209306836518571874552562721976562446460230705837830363933392540405613103531604075163681014029284849049947020201812112759065821840244391040366424631212109294097940539177204460900399397062815094771521273487354804719321583354391208750724440149305220690553521451196769999450901829115237315512440575181484176207012750678769071621455767540467916942554007190592095841487473389413973769277287843922304750993701659290679839028003542396694864627264307776763347200004639631008364851808452145858820487169189688284047932410632660728149029948126124070134079770298684945727576503845840778149224969843384136758108666361994013562239450008084549410797321009230408448156815089520125087217935623652651338700016160143176039814946338842423794779991375355974666732760697629978619735261850223182891806907584755197314853898415811625485215579673602851702397520158138142162542658481631588335418399406791297782394690269001123201318286561058623243226331240294613986196640713788527455105586409699050017067604741259959730895535004354852002150471229047611411562375960743120803019049462545250678732500803880405871388504560592479132756927856130329049831633292019141989237775350109540434198522304686558705469213209315043747090212453111418458369815639623960571273216768750245108127370930223911611984982587138817315654271015721463623318719733813067739190773101147302593169851872440422104424322854742018163828814376483859636827502758544984113223306212120372060164255462027062123832643187166835115877051040828733336963093119221751128373739832353536950219208504318978094406276228051033478142480034089241804468205407920354688183153065143186357347950849733707434937154158341862660084350187854683690344839671052747137799570040377887883490242406055000304618998350295557725769058557942519717115942345279298290817646984363329951791343742724641082003656824172940314837882045952622781965485477867210640490262660074030324754476234449683434291648149924260234385913973633837449795693022664861058101182616283317847074218303795785024768430561376941413710941936406186902561006355937548649101386201061840667951360520480927376994190015092202544244998506027524192214755127353151882864550079339774472987228563179351360050567254577720036570105747784847967727678768630241316446571737111857623123869733278920808239887638342119687428283860364343384399191466308581623953631987784107885442325555740489939563215125722448349640321428098430491730708222601997651835191584916322635206569154708889555474481430843846534613798801158141004434313455644582849525388981210304172409389946412575372684275051111966824746027011030654505917888885375384394125090899549912546143724653559003075919047559210172582740256196536759850933143509518473861385621276658558080445703124873229879645728095547039353510448149701739134624335360963685152907574716110595728547676900598628188820179411577749823283087758209277391928776391309042225387006247722728058188239011937958670301121236310028634849318042712185759220273702994587927416665363167874210721790366175767297965960530589299895101492459064340352597401770058173209570625873354359229783249070089305695591268350637578487329826841784046195806643777467310699651186200747957711357822350665416796896941860870507863733000782618402691855360407698684619583660904771371755594825065771106172562138471789937509593776465992258682251752872420012648052371892293085292719308492378446763583491908706710160682124792052213068970527227947783670717138051110594223972434010272778709657100759963107488273949646891728365510718597116971848293099049861587405428081421306742679339517130259452297458401543250094801521062710730451443895619554255748057945709349754863088003408564814820125440302673305350482600830002913396271122788824081039483844548312364488296817634453029437898663967936434246515253616630657486088759685121996270505841723867341692949313264722371874339512093937958605151823884510197802694010343220485543994127384374102069292657268582255064562645214924195441894506466833066545788320940910098760673538716849895144375806785340932754623719194369488377481439070414587849239736813642820307692055637667305460574870749275857694520773832085815469874026421774288555119627533842316575236342625906895271843290749501863715565735015786729218892674043238603595411063377963169657256202367246698552820313264309371881698069091980106789490253715937066994264364226034545354556556027372697637547510355544258601404216287177646095163504154455743129730438509474714294644446169897610767065973061938521728858130895897193825954934733131527343873258958467988835097262487023788064213003145788867023285123461352064069108744998349254208373452732623815435879225449340486414522482754820324798951579849418026136814905632012778361430114008585640936383077250746700780418820912512522840454717649163536492834562299585806609246921406114358010994012329394233775597105447096639994778786237246322806530836170454471023878480277154626086799104727403660348446906362069158385244509749267652931162639641833061910516704836398388810276572705000883757128799874868098073522325319364941856900572570042911245474241244938566314768462445960793702993825534374869868579534893106741147126417671383238217466357257720416210785922142945466860271751641903730678102823289521140351781811334362209894435911740881228436673784729982144468667375843127392825075372123480405003498742276104921735359473117418455510373577361661893098891061779385186396712495072160925048971735860465920288383955757242525118366296768961383670230914840378461435211441376656944705994733897420451282725389040339499608779898758925693950041002793129184801383700497064433067932904194060426044125419334993642265607588697304414421818789441607820727983069394333178581470673081293918906382542999116224428448271974252611089939614672327951073964469443016986647856164981221397652277731002475342188382924174303103024636784755799258564758421467251011827646099729853778476140762560812729251906476757803916638561928149647246252978502881442350771639990559112397834753060872720967514020601303996924479557629439671265044579863537028780100651885414840433449359744135077937343929426129103904197486428285882840972037587628685530657289469861160408019399874128854397820422966937005240401493574980048233711875573603822973078385333534383099430786486082847827109832959667288486941124494992806540540156482054172649690185996367320040438332704139137166970695463475587180624927525287120186596305275450902635662399349129292462040413611342523813743298083465904294271937307802636268134587301185146087443744795909832155156799481729749554612234148914652156266889046567231089103818204915101566478303048608860513222696390579761149579794065643695112584569509637362121348523080249120890364874262240376175671064458443755384191081667030558681205972216681153758748315570911640462239679152190693764156270222732504495437507981337668071017022879630057961701666267477656798579509846138303065160794785725477234818004272036706904155586414317962787751090806572109780499248752985022217017490632378935279471880221456385402163811463995671088740192606835261824639929036073399219563237506441122590810060205985402916034949291630491240268050370759099033413774584285624967850591181118505911852638782238095969897911377293824630505961231320624935860259207521658077318842704839146146456872677325552653003578720819754783958199689661749301547079873963440329114478007302825380783284112280901365390514057615531136805652978142079626545702101409232716421189876442250120013180179197342412600247229318450587240762777381886942247134894085013432232329718069112298860167477506669496817758484944148552154496365281803895272361694217624298617238073913157583979850286063937203627056526512552157599878442061965713606801950169576289714554592710484990313617288307677795704521733110926653323727303012496204521573929054229197128616271581827131787057164437389422617680677640921512959437493366208473212973317554537263507990613450238925304230376082078898851920831544914600871557482840026034408931968237042925015729286798188092018963851631372228245075402594487712954387253383708423570179223602219319062505306150129256448870046213687080644211527860832602368927117576454796785550031584551489086671482922735570840499387576548613249131848979116361201202159852703341423090871834340120352495869576304675063248125191350689566727306853312802683562046342972758182494794603003934412696569048516298239743880258035427217202791252421856762810494007521061715002483326488478683846505951915184421534234997663307363712064424334539814559981903341315791481536832254324890266114386168485593681826068426303191199469696443019868295831695177237782887195170260422446821526338988963689142220422054035634055701301933626687111712642752839506542357034803214548668997629163904656351259637197210361981384235669090450117487075167602242666427303328596576946114258486459230994016086603752842799339817377119346845735870675381688315620335858128518992710908964648820797493370873965862234482904712165120157793257142066266807150571966700473215116478537654150140229732450897192247069561172336219767020687763337403622562926476847443604210980722889206869015554866764670783708524502552118280444210793643682541408877156216915866152555743200444511917386604580781856358409206620765220837184689576479556031766312217789696915090056931240466373284614482004063060553717842883152209199519224508189271898629536345529778569300307586128004380675596933885890916602203633876398747244010428095822665764722253356771401937410663032713212523036163556886370326975049043794821539622486233919799962244908059037940117523387572782266095739083988405300774566911398375538228026450124209928614682965779028214226150267470750339541102150840578374116185729229668161390610230632176220442035741224763705183676054694287413443180730692192198393310107102169968388743771872528663980568995157273203307641812337741407809167553016881988091582211074852105513137417071465179287631655621483202750037134897665248124288443486062777412853247290312634193287779659438743994001248024399463097549023937266434627390440172042661534748081427739180364231329617751609353130536457505885816595914737929959385778443083604278821953007463355117527399788600679541692537681886423755533202743430386029015480533496884977243940881922147178516079675235298977123409333465314979565617556838496839064212996597431281612546151863168561329720147720054493806674067234558942157748303104885902555561504083947786598118042547284663130219486021853941749753430280101903156477104679964148335107288767463626562762488707376882469303602727813213194395545761705569568136177107472205453342531807056902355381802835796507029466533300297469845424777199899180996764219916401052905547601525744869332933757720521073832056440186452160348795375719643385996023697161000487465363116262579593066800007087522456211490681689716526745842100993927315689296766580555696754166981582961777593407854345924532518457138036496238839894810519568378390045080948278516868599512058379470720013187600750503835889012252989589497788432286476331324970996959802410523080299074355898311135148676084014802656403310191192555356830857650654853126777343651527617003627834187582077182793882885885378981487827484636223285612001894499838062875024609889534596407365431426256031947656079354960286074423846526835452514398263546843508652235819388800509936601686455298437726267232200159196995716202765977596944449001589960305763013462510702359173510853899258957556286658787710050554457266691054958346123322677748066403214374866394941988330910833878973969286483546260172457496067687574989836234477154983903735197492330112658987186870148830381506601291811704393559290724917370452605073760415948885027491025874307269078921535179364021647062170772598279360666090943811932670879687685757085114818044808801064279096353636793871912939685436012880950391576182445642796411796302334515692056701531715179983955951937641261722365048633723801432631744733573891583479232198335227309746051907214256367164497916882781384359804415502525099242784839002797990789076925879234330955366122456531821113186803967507913160376585747660525859559235869404990926869810262149981795827307438729199669088406206814515509011716423175594973698464932365849732007221487836065527098913958710741926883321063520887376974017265695650763075638977666226474978863136428147755700963834120742330325221669939393999008696188229300283107465845841693916877357976137924889183191355405994858563940927233755582691806629891413626029090805389056818035959060519467693942226701375557640345463045047788052203235260709345789646944250082474630175424505810115650943902950519917817836807627569152190355590039339143982407815441070093733142032216681699419071859433313209433799877731306417847287189481019215136824194424961457927767543291757718163943495034011890719656437583989601748360202584263740443201599651527019919168453651996837535750517186473958005152616592734933560518325078542625952343300599807115944530202955696189899266742342775029460249001248727145606366621835297330153138572275895278631202075783431513064033415758969170687689407239015874302133515754920248565564862071636999335420963096387928631413419668109258202362074253638645612089313110486634272494868787205291506880169075774939987432678220268879685964854615090225362910330577802339470655257782247065076755876644069597562632415904697005385497915668543030058662781254180484705652457149433397536414601773088413272291648417773560776553551281142751136850233963804992840029900958806956371935882403600434902651118031768486836530340352139922330631120179764201605143097011076772172537129278019197030379572606027248908669366370473104143171082527231526213844937820874889920172811399103012022332285099568867349795928192148144952921916324995192582666630443621693492256078925633059426738381273496597593613840631723344744282485834191497282500345775062436545510370138346702031165628462363781798400379334782895451200994165498033567382807577662198418301556838520772062896659291763225476514222084315178593792297481928844420842980416662365436191909464596308230218719953218101697544022650697643555112540161629022365033731350659324972773663780817537273402228917615639385969623432380166464362532334153552968253855306288073782942962581537570430673618252679254258745749903507423512373105682635288856953715688644025067023834745401304714255953943216762789618073775326019582341509185107225870869093664863808468477162712185936251800560583651296862768956748078973594386942415666291209038475516461012066447025089009253498400459795788857751396018148054356768697010059692900555277501607384405263899877607240375353806475471805364492885416942136726842452791239815062790803891506417277062386261359533437353099905332137747907049053868804246390949590523385498461449772766629765000075184574682865119301520415199631734864430849352372219449332854952098413895173749409477081034268682306542117018228704958069449661182370497439019012997451836143270931226732983815814301427808147425654881866427516419405647828787442351401958881021488039079332887083997358350842426125489544420565614323116663250470613913034638976116853048551974570529061197663275397055065929331729630833359844603832825201043705178394519013284443725273948237033014153180540015250239081179317324450374478732239634820632545352468966870554508012194302612244066593619460049885071469490207054103491794061882255009359259809685137307637146031754095960467608791671109075212560910771348274846333754588976621953172958309153448960787882849655235618562916292421919356101221788692889730860881211185984162117360863482415796464102362761825692769505657105445108907686746312452411508108547838971423704310778380558059226610515387014144613110745342235568672443716548072550002847872000424012573450701730584943590492367507175985894719177365625449643173748649776367738849990265089269744312791044252876129066079390051896384396215316535216545399847394588917395015879505084970753603031851636660966932672105765815011986166819031762489113501645979962651593015688826533176812024051351297203969432036795638013794478766593674044812035043119899166435306410230851404887474829530538217851099135813108959536098085218960922758929588140184574681180868769542189353331658102951767433142441994485495783409342217439781388470243518016484841774531721770875455091774759128293265723225117898827539894836203915208685870501065809304335722430045046741295692276496972904998039899751829412825769485772928986854462663717683852512675412116078606063608369549304465366467452866963281372243023780419165430753972159271039233490744824968219979781823082655686783313290334226373499125649703371326420271233678890761763909442135189265480090628809869317935682131272181820428575438349952247412190782577643493119990023824919780116726112258942175733199050580458226834267768463043296021606050448628462905301274377637391088972477641454459207557689218124629893161057927062547022404626223494889112855522025116841592778952328076831819574712655196542872556458304622933755882195214307715317451309694292147730336788492917293306355623318447273015796474668148534534575773226782371284650834562627732838995912421260779789847233031252738195702874135104189263013110616049759516619075116163502149372548036982712928257796795803750153284444747302862285133620565189977021820112510987119019775216761874654287510746479125131983924045469259443905625547999977827095354495225857178194374029373713541159923100304546275019071323385318943036855181772931909233359709479270328239526510828478835178301199054762022629979208183994660308677197900503719470975103172429819920904640909838245322790722122372120520339817476546993045036064476879407188579239247250691255250505848134712509010789895503274830140114062950717395750335858736592711070410562009181418786237139157163168219924273855386267335269489906639343257242712769788307110784515686461846114003327258237608604595078973964594160510825495309967096114202182179198272536734135176688481062588695211199086622451727656710604929148475504513881264529834262460242163517808446380288842161807991110922796737705605302919455547938394345742587281485037980462242510035534473865336857208734370769893980591127655811551997539822751829776624034936292528123281821489348263066109462541873990211236990034292768474575566432520724227133526424020562907677151939097955877831095043516611231720026157678030115981946838405942901350874524435270450034213697554972676682290933169755848877628934509280726489225331055347726238929756842206163268124007280250268964013541792948576699460848924691918234493600675654579087471615170287380120114774657432423808977064728422204760898059760164317237723595017437598040178363482585149455965362087963680808900285072906184832824676625444763634427591407714107182621867950312095511781824471476086885318049951212935733550909303595884429106245648952493844662410417202842443549963925586575648901278325024155232874444254791251126190317981998976448089648697841029609170253845663985768316781902611684047976288445864585259931009340516487395399224158213450505703275769198526295845097265534539150924882796019499682851093566894450306110722876817390391007286205146292574784447163518169032142658907478753561447723108187193025062145341537730678189336546312583639130375645079100652890180800442833124061874667595188787059640003321965955528599168804932541423156649600511899162853867076660383723773384372195267291984663381597881384707866999385632859985866208969150490867376526920639729228485148590167230668599901694731780776100874668130524267197260517335715531352751830069077919924479547721886126094224854855419129125661043817483811690610392000064928822761152934856906514452568448563585702955002341783500941432177895116778249182309821578477157976891434074038124633898881441304653121601805509607485751303655066222204398785185431945193049798196092886089584211440509144197647651721619075942835150835476467046237612967989462227340764584669458058564091862650853834631918422241671991223007698120318634793203484759506336807296906771534522395819146742373167223137216781789563358893344762210657714036677039822725410039830005533946949782058339861155358782261670198310775539245288458193152660464996362918295935495341830324035920472774682686183361124486445813206680676975209792493338297642872225138504808945082961937101487687963136085462042615139411735483398865791267170941181052611781524934493403384394935361130049286190278010790286848472096746503841169831206750093980608472222636267005471121106436162647745081609512952663878881214157465731989851152151962628366224684252553636126867320333399490167401608551110022404739830943920858530423134479332396576576598380347752824488895014616525432561875567234689630343094751744407049635117833496323789957423097886884847204789111032772864340844805800061464109570905851230679267280216601582031141023175899757392408673446708272863566849179827771593826469572702839480721992406099431530247277707762267119100456393023104949135370963764012775933456550847669450676398393967932699513706068430190456550693888228917486189546231159466578181018453947594263815747310790643061538992144393596493257827667673465145136289989280413458523754438721708562314377293031788228916325742314909208642664188830931448672233997156230292281994344704010898104283334741037310785925185884922332726464056868091245893100292815152330486347995177567861723470962912078627250883685314244849299496191125503930001710970006964125477189240936303360346364997113270787837009927400438819925334562363571948590799818814569115956609209647412713026859025496718055992599068775841586501561423432786291764306152970822509056503244542406830968906948327161872983856400738472697441010505884718963841695008355170848135930995245087422303116159861182955347535523172622032066263120968550723116396634030713894842313094731458595204834241540487942957859744967238307229645869725287787848922848735871653429798842000671709526817170560087339117991554432073929388347602688165235698023567620892792367468033714576897358244763238387135762599800249191989810112588342070576806783269569059180124134073402125827713115983883058924913302867156863236723707109051931969127547726098448269956152589824969174628122339379200022382222501315354493045882656097868750755692192403538145462489277888296981107947933810657751771877076825237013997640768759824088801035677173343560546563075975739977736746036532969141739790785693248386072166047897095072307899882290221805919740485645468413889479835633303857030209361831913951093840481604558880455582432338417813159589705024022065588585201734845272149453480076989009541659078654485052651176346697281608632605814449029868636345808490673743211458636038633347341267852122370004012685551623163384356513426530827583631993330211917293834366625957390800337104786963403671457383417626547679047881949514973284441770781139063704480124326579459121586468905396026307801669329645187106414883846325892213562979808861430023564648342720020051526730394126100438646397843599456941572954147775812717878600545545893400446036414579680342002463842630945151915436157763735362023325731049515948356224746541760592030527191162333965789316278390109316200290213814140554944377881351260358436039788106153937079027701923006471527330543491747499068435558126785431176683150332709104615906564211593159104782942113959964105476295804953960109836238511531357315437973753601366093270485900497282311416796614209294748283751519936173614058879051859047906728951116742599957113653779934973870269566958392705232898274995631331457630392134745527036082131151728471033493086636778149821717854653525705595884422445583802362506363185990125476359503997439452596426712038094407177860115509069792755829120559928258608626505792958351107286999446610015249430184072599439579431468581806384509695729122766912283711841814070207781186755808474807565980310886931476784231781328137920526924889997392119995564203874542591674817553516009230802547362839032719379285995259976338796787696967200131971363704660338514640207383719455849155661450459928998700299838136767161176300117886853750799755523002051923828644050942100463609271052589543203882911137778818934957090811176270697401020370423957969952628640292204563511795994131895246504588131951738094309939034079239884717483491897365512292510876398679560182594555743930854136926220313359367355767966234703007647857904799434928065242230716623633178840034682282092561130619707037838255509121606615633276257174135830861589358258139010931601786195851458697601459657735899721849525947478450886565269919273563275342984328538645709639735517559275746518931555499958404950129460537254924984004079461338429294751495208227918773827412825688594248070309013708478347439034233239939505853463907991506385174437588556488654254014089619621851211428727111639791716521811854594405888494495748282328237801069713885638179278561430333093538034046882541590095229874798432520476426123691442726943666535315368748198299060558261897109645969858655597209604429103406426062033188437999983399655094443932722472396710227008218153035056639920113057235430151014783502769614342606495352584662441634908020669386062719741261975972512353055035113048665772826295109098198417262548812563308888069338256758945393051562593504062093618329722827996391334048668704553464255216215629242708450865927801518331955610723731652555586163005799233584653248268309867468772445849313996719753372399954150191114160328640687251682382574590392897528857936402679670253020991065087536430087474102976272784029438837885799021863003071486669855264727522927932016181980711076470532856122674877990630496528266254658640251551477426412361371902746859003448330302445892436797366600882930733319763768441278206100669754025163939595313543979881530127248165865546953791852461425278490633317202042915794700527018194821858968348928310618465707567069867588054127469458201221405211777996418459734067673354735881501376062957018196253278487627732626287093869079807365159002756325341532613755875500661030508344422908000055882706945447757017141096032384903600601648066259138255019518632542374217559748873260636060187695679553380763470555468791614685685665567854997658678933004333091063348199129754493932454047134889606818162420795802369674139330957204282694809202306694527674454577869081083161167428067236820220664094317360349148843773773430115449276912084139552912909473542392040951445895932568097632212312488095117664063313648051486574763246460949352054773423918559009702861638903490049719243383469185586018768850860989166105643473705208799664889499255268167582058614070295560658764324741287715193063933190802590762573505804242811514379768553474022885530391099852946555036782107047294999538922291867133197191677589058480061041854889474167354756260214136212541246189032384702787349411458304338290718705123906045643780050221735671014807702198876464073966876720854797689316441993521324505297703802249223672201588311087522684500476749180333630865577913532912288993611903068461740601048454820274593519526981536859563274397335802529452886761801416752705306890490298487847778045116598556440313095724538181433128290938981691596880020542152557652972457604465894041582094717249560636888981214585833473440968103393273966192949562745237547829590342219543965358739798366751062662148378686934101164326625763146870292203046170081645758769244840077676107531777310688487616075424606808163872137194605613295036927545659360659161655646608712423727299797200722392153219323177679073527188685170884068468183229250421870083931297776527963604160035944066664064137936441660545116638596810772962216488707893966423477800252891178601086992617950785078438135323188718324547191574232713419077113274884563115567688297976917245679083564209666374866179038318828400415925211770246839125265625474115465572405278089068196182417773143527172414162453963815619026170013518117854975783335748138741099929393760548237477081996723749304731418928554548584188006198311554447080830982440298038393585276669117772824573593512442692949012537247352340938242519853302843769728953369817342390366760461491273548326358316302547300414802209463631588483841293630425736754632600869401454561169519670014672842843675375286090713115133063976631804441621043181741251157568279015226546500989288904175787192793395506389583181380684515375970820158752291935220850421058253206933237634710817463936402858768440560126633548117586554626747958888374794696589068145997312106049863267451857156941239059853795801690563325234020055065443673030820829123989783445075598846535764383953029640199276163392015952708486204903498002518123528208666729208400245323322354306283192792932570561879181672174963596236099699912347106971161137965294598145541884667628473704352020273166697373008424969831182973329688695285345435979225125022110634612643822764333783664391985894613076346040821744171626050733529023106304015843270905493478551138754544531642399903260325520478404715116846263236479789923881469637355682001401831135350480783412617908287250147379714674760059711880830147945614945851579937108524797052007523128766033153796941950472775202219725162301612433377858800641613551930570124770193819272963565341827081822452791286339100335510980324776902684322801506671169174797940690242134935194083682747173558787741761054886787252027833463076041343691149790107165475341464667440618165083165134055915127399335487473055781704362841630016087733536266150881028554980573813874286176607090771298350876899757304554297670186049294169368671654483115052083260705721247789219935859968782717620337540586962931452589802280073640581169378194904418777681213757103441569197816964287690088562429589380281858628842451993954466887727150997674907010767882168360231227191324095668017836746235412224548717790090594492573024828255559571012455849942503129584613950945937749806653447835770805889741674001519581286034483782966876054324851838901187626422456249102267987873487228959139309496609463425003948900076969935060344342246489154075801076889384201981242559771666402881158678252669828153748532504823484957252523315905163931012815564162593207918663078061095449582357521281044684128252461399490610170140893812915465241938446857411189262655009901057733859821704276241001377326058535763416427138786166205180682309288393295216695449455248650533930179246350825267679549720829029275792844697959770199446809062767910731271737948765188186097693480946487493551765362020818993881462987498703385203855776172310070282744376013192204259944865738103860368037035110262728698965224269184300971721621615634315893059598159995273272703486729555897691956179308360070341166105501332506626562094923105320696122317617740591444780499926149108129208620322982019910408258484985243076282693037613511096743863054607653438757817141923859698861679858307047530765148896633006886198428701321828837764601892496090979508622116227768487966633149015827182822623242660307125417243774158258167757395947403444800853774783961658150602106506569419908479093844802258831405400460181299411666248766441446632643121483336984606636937479395346949647375500434180871504923733235669182323891237368764137380443905753319806484452629199520140732932620996398601499094194155572000908201793326065891663737543605318326147242607792192288341207897949312381220701576490075620128598916865726959033937894948243505153485359671584668063802829596902250033472248379473040764486942538599545042411241778700245910516654589315540059616461826238611941068693012601944276750672079798559439143005638616595883748669919668827854932055480048775336041340746533847245706316923922472628218430175673256750313727938613573213911557879350912511312835158966609415379733475380656734958438315802830010684212563405035802997025909312054487603076128456595094691604522605896310580721124368903884041168210040826252592470743082196159841035279819693876707222218487243588959850377425604027774179028550597402157048910898191212296150184481837323429983485781923006169033856468449502176042177523628041199970941938690037064138220186772885523765343036305283760296303806976234420571238593224471842299499697537410318352794779179295382107494222545087600923974632319277194106962554565101817614174467422630946234112457654601879676308558174864168678399155518307818172159005331165119191321797714827238704922138376074623631870935677967281222497332373537893078020346006225777101067450775432849546746822268480892139469283002301324589661636358162963996061338026595984891750595310328278106105116916126715687792711597570344359485647343209472728923803252190118140542252016335065377387310496320936861911812084674364081844438417596151364616834575760275182725945622160866407581323563671893710464352728670631635307204812048365869060125883265143984226802949045768156713897429642914786424068168400503663585353269393059492236708870572316425097056722801593305566622625545151585862392384368554721599820899040172425725359984582077813906975743726904863061525538653079240079017614122733242625202951509639981346501238308896352900408026974042149206184289009502290796880046887067904338195554573671853572963337795324735577149203901136574634125714745201957164532934538166979737153622607975670636314971647972521557592560646461117385303410744385811645864985962866640510611711768457363048778143857366258999833014238704513115212179305233043479037576133046199990318457785899849010273428486927492720954752501220643379687149934428869035781349228234058899848143708827817386359216517538197893478647420965515484702474279538964398800740555876382790997318490591957112472460961675647352350837200928615796712902133817586359961216396532643429066547450376960181524265912652611971845350163770840104596663044573698448450933537374480437779255958259161757443245449930897116400223615615306347097260318523447376088524859032506994433514988655989435733885971262559360225698466319418194948943252721254641583833525101048910290451705944374826576257282638864995238964298101876492957394943593488746643239200393923663774263558783391188460605276916924556861021220708613875495196884190451439529683283348830994131088551928006001203237772823834541510350154870221570544213344140743504095755525290995523166919940892131944424929197818599434674355915864170543998825741859421518391920905548366045183182435578674655315925022073419575528951284041591109117037732797866593671990540687853808620764988417100691627604098495737058754311065142911795337614822919423133382795743838292447764315697588632559847690819031169131028255401100741112249657715235716433409405662395003862365849251739240890469090497675217975270642114085695939492752340124035432396562085467552144439864369385152998353501907401955369578518324521092658986753531066854423832982988264290305028921368421310509974973220793079364011578749970612431039961408568662793348728426268298301326795479358916850410280740531845735063301295820758267020702128905529399108167035937394951502658226850028652546008040744317148559020486712996701543467161112240708073040097270747364951592657466195398551092106806574230688202743383593871907228537105042816504796822778731269153996061820264400822656758894990875453763358324374771273928930794011859474658795104315468174847078640737220914833874337599838745240137055896408673209775011078024993091927687696383022606958419270721377071439472723650982829983099485497552290169023472884221276770682117636492793870978577673519587097310810465480259727261183578415081275224598341260361882233258530906522839139289300301546633061016508405072464474362004022721840648334714329723536672368745329753825295614480491721129788608953761782147634855898043452855431061794978818089420345825281809857660169200744059355088199616683817406071733031115658295379192271002123168652812064320831811652394218842226187957864965336257090895505742269766195612144824852277813522843898237942435861792039337406970319216104523983123085947995314073514904340715879991435561349800240626156412552249798500815367498962007461315923046489292457787292387725463477515794161134235473037000698861247330308448624870339056638894002401114875406527608201168780981374191288991035736083696404627228698093929846292838800264238363432313459767977708806435773784890885876696936834502287961279307019190761225484433007344525200525685786223023399234177144556953784379849637194286200405941065281648249237833582970772243072143372359240005616207178500516900688416253460862193620526894608223168886728001121028964241965611371963777020834468422434673775653947919715409562915471220431414164283960224598473235591018238369282650611575600834845613664877781959533597136785429230289097229702204615134241034487075330024891351700900521589014042460039013198716656353576937881421082877028426253784202406502981588061846437290831389078042087275166464787116439105312051949502666377341517510191772930666773750128880606158429900857230825140102906299281182146228536823699555392349775913645681473656798307432843556521910648350431550338261163417925563108088603891408457355937976103477542706576749196137884997612208427064252064515025385424795939960073437555142388887686763792723428933508426791201871460556875208155187419435689348596528853426990084527100328268127451923316496322745550438009657038855361538190158414841219534464655939971499569354781411915618928425050963879872100412060368065391467411832384467117463339522329898718763521409810090847370488112077156664554158492747203775703507734920113464904150920890221753611348186210280189302324768391761608136437800340299324525117935477683173537749059892967751284865672593500026109363677780779536164610010529188422222108717266678475125134279437853146530788644348886087081486365752693019009046727580371903840863833452678823652469432868271066565692831463838933407750365518061011775554247378356101164674616589217802513783158610604687575034112379328975608368840201748629455451294858167891088919966814233912020763392648547928364682955028615066028155996885837212055895742523688074623383902556137923504486367091444368196552663920281893979841146279597956147356902378313439181798284791435120284822937287196456604012674961512609377973054035418295237374655835107461064073593368857954785604473735651824853505638026046453309328137465170114364622623258415637520379560190948090706019698511199045287396984339841211312976493302367311754458157438971437711334225186448860726946931279718428877501755567916041533334940913118277770273172069874565801694446433802437374975223760230163423484116324294230046142374117010477378595396519384135583868929680676592584565856142210286116839023803160309899762974226581657421894421860829690603042173856437920022083775316716488980089405653741523009353436565914411712984058753728959875923856154286687654342986810117240843345038315494558868877644472470806503458294862200655828085089673330261652273470879164451018789215538016470102199051331628376973428635439820746708910857347454511091116914025946131641164478965519874528222691378247323497122888616578076730839406786990841814314346581257419432835935615026302967230556796581160187531389298513749168690985774928528376247329701425343757454014558704231454720192210985613654929002446543539153782028597292613201179925607368408287190075645086094272555137457325824599132455186413161765540198620312051323654052482116294724657105815704991912120264698660263913750361499143180563042769250858329329160589581132881418134651635291083328333851855245540384542529448730424280958934693330919979164754574356425106396840955757210036420983225264219250826534850174667873486911485528331794464514232742496901027110798983253107465610989633780455799682807084162731023765205474590507013946237373154823637997439579905310973586363077739950780690350573230811526978080340657068598585179621498418063602390286416935202606557675107362952929358927143566611001384053932899607708885746318175823995197627821073626466651518781603424408821307708236674838663703862734617011927393750064656450796360649620467965155041759059692007614208324119141464404906949927967846034981775273944343264968288712730515000903448989927734930955763840904922622001449105820941551545491531221864668509302775918289481828424693843716562739699420193534864295584479800813671512110302088131177610300322517305754691804733722028683415266436045430364777569303233291458254591336317010805556811045292425384711304494006337085693022907166375203267671580547857117379000905756163695732674866463319910751392236366489921952983877560842936623867589757201622823884621718640878958343430824682402646137672892291688697042310795895581053196483628757985424687393932180356012586749800287275834840750372373541884862845587624100463783810802142548026564144577024126618270194777773472378226333310081000788669751748615933710779934387754164012467941799298215503503848311610257044063927627984963863795545721312460882101953103358397750656182550804684742251734167133302992724163715277348869444442303996739247862564483522899766879702446772192449996153193078288235499717744161469827806048293679300348078522593915807872667298735462725046895172269150423383173202133987771317755453819943157721543745227381830400156347944145907130589196617060652678548470465430508481815467410150111110440196621959210138163663242652736134660805829653482877909384043406218151460342293407100061625949003457621995660896460666499432362038860781863399180052259376121083939977908964004569763221804624619068589231597851640147546691833813768370892089398391956036495471926029919932502012611587103235241215555668161658741651632556247530285396366316992396835305999339771679296540825195449647544437798439680233879203112043154180406494850555073907057313883025910825212387546611029245609081747446483642537495561678361063609981214823161100907805657274791635501732067187036370732211800724238001522555807714170117232709195120759197653513875386110631465962547490026160116195175352355254181103582873052359603656353908372868391367885687528970763185243107003703922582248115301582765045612730509281987626656351024495502718036957342895534848200444369705645533171617283647083053405341474048656705111904486010810977085714006525874338310311916853962985395471165601877958206396094075047171588394761047251983955458707921281563964393692190581437621315291693335483514951256272677258772207679453785833064357032158261386956286812806471352236426202045125084752180649120717442354961415051768656583441014513270059388945732913869872029465319013279179038673627029237721018189505472129038049486232073436503806924303296329152132517876074922207272503253568104105500003343206688579088363077900228237598241602163189739860149417945621343604942002768099112753982484089914280347080853755991606281490790028160825556176993091570381039045902316218777670339021872086327229366113294392519356619998238699110416806976992709585755407133147964703622057095246103658702448738039165645676437295952957439113962154276545486257521310022563685065085635024151709149538620611964705014516027577592503362160150645063874973938407458127673324324672854213933284943625871948262310755376511816158457796472233479171435798402437662202813742940702277275996232923215531885697255330803148468881532548399354492709818878013258037106166957452329737202565263419613234647291709083020903661961165496562821536988006884528887881192305157587945458979454529523724530395595223569315053034840127872358325893676704399281291378807115260973170900703694820819682721316827817819741017514019855714448790924750234259725084267349345413373588051157541020848555231402245048609862098511669662706922770466239743633618935095543698382405602746835195718404140960151763658556852863451554044121023226448795514764929667934021099932260165539079503503376896729769652936438642064194736393672209316978465079958800170868892456308876617099952033227654980798540687131697497455853574883086918476513341822013320771824349536828698005198731901571084327263018541736288263524526568782743062403055441598127547310399639219594184236560125182907730964906858054056836525824392053186707126024037410790657650643661532279288365300479932186363876717950298085385730749428863666234425750484313750514595992999579232955190418491815827892980505638775974491015352575995742880937809988023979269592068065426700395337853756311851060863831116722020068686083990477646724412297829376109233390494546264273361846484541129349962472586471556803169172782120775606442540679825061589629367953513701716469148086495856816274267353883240720965106019317399615421550402014625237288022909227267563013796461803395275966667387991810319939178854460740070441192498043481586151328978910532818586685370778430891307264270518610095535189150087075699169503655574742765831307768128481298027109082428067316966269726605883535723440571521850720461823082420851812381504466426206314533927508902149315198636010373263688221556979148661022384525552359251745919297953345015188581552708793353125243672598018426604397143173586219509726334969272903992059335844644442781913037917764061428343374068324569114905806396136477151056243252850632009535122486879093602303505612294162184140829315915573516526154271737176594921190631245961284742312795280471677644085041101491326055885087258250021022657315696684025088445981344306572807801379392177680439930557092740993676904350904455128591094508948498076249746408506823232207694870366786290319238166932534097650750700179938935516104412381118388427366726647741674411133683926711434056804293534265096891203915898786850592925842174303046824581256267525652805375405067092320035588930320169291765085615337374919634917549687884953202582678429709798835819726038411280107663218621985188724461429146265938540963478876237210832247702437635714854398875524803734591531949090505484009688865580494705199387803319185251434527109464919369245525698327020225749889508953346577566874272753203091760168623885875485593562185306791228278242307844048840010315876135590261454731759694239964477534603927925346874910298225907497329476424337837923973581161406005881623353006109827792940806474493192764704488316940205890999014644348402396920776386036042493151752413661883956068550543177971445842189369891848872837848447091702604654695392417577718447457413452051096152959596951786436555284087720212714062817698794751222005527855961607560172322377712619262188487865475427078281929181187040292987527463820730453978960530336713643290302226441011635453667499631917139044825178774640329809610319463079434844821973254507244889842700837018484802213528308267105349074074749335998550592171442625133633042461687648073503976528741035979820295190719300425737708081196368414675484782016396394483081534693920064490274198799879726125286052750781942993216377794277156906700572336915904061260808265736749573569191445170158879071242293190692884607847539961357557483356152702636730740921176496409829840496024895461815193097412359595970555997143215881139083213858121334001293126055501292965498049350681322845821577421220634890255090310274935083671053584803741402950223841630849433985232243436942549919510789524320679237983696245696496042856140103511701270717163933020163887706558042136418599359362997977018599475805328570593762381911823825954749876053827809573683413380199584359597987287985169317083113637649954631030758127526990157309377939939804161166219967242576561816166304614682520890965507355858755674143243198138138155554581992800611543139624883384623780427950994736792414215898494751138901118872752791705024953693212339316777888634845606269585490243914302833186055203700943354925236018255409502462750298225084997684314452964969014223618561122171858775633793588693215058973663138527225712335934787109729641184343741506461629226110744222810345860806119007628611488071495659115178275445135135265921764924550321666248000247967369704432158866840928769463076289761733093197917958745961340976762733786586539882499085098640098925788659148090838262715574426353425794529278856570550624323681983579292059222641537649575066417050683626086012397926240833912770245627462026471497907267798386958148914837030900008728570081158365585602801970513310153546224277974229071907982343942584665944557985401010545295574340265689429447077345950086088364809487525118931234441193941151120937854716510715055031491056181806760498531803222398331469301229159957309655601531916409925388162321297340851220222496622093749412833681021099924096573169797840675379469265388443156288408079883391672393195025362423887729922770748379620819453179188090230778982942881821006034774549423035971385006774781743201952429350816399411909673169776155302409782416583910619579009460338504812632696616704982240341396206479285339450136711485986376765542728350932281650518813675157159154695546730164230455776633593248168184128779758669171404981375038440050455225980088921279245206245500925855271184864297949081405695971674729308504816516100982782119961608172818630573512320277116480946528790637805344052986843555245314821070487464657578753325090790080405964006436227546261469138496513756607322139780754835437936874847001626096535288408009778344549394192738693138270002294129527232201399764753036093655304015986932055315892822416065062208720848987084558716224435661592883050853710006392562643307011549546749789305688614768273248370263981859631787918057402107295470321522197023122591879118339776587391469310248218998154612942329754991482666937797063737449090700297049125191490705179569444144059764026088975458537035953667057296467259773115937002091741978615898794822511665172205398859103123111033719149534616770745654236073615017990022472046081791869797738880611037771001875824985933760121407857427685074011751789556596888354814105136279753444234920596443087649291474226470431105316189790334695097162283507306496692806055049624554706227503886209750435778161859070954939213094114245258061908521280830399923365062168613860787107040439685628043973823447153404214803587211100425295147420611045509215321319565760933411658311051043916801377313428973132600793755967816198347045845703718697881417323112087169807425793096326471795207313933661644594345672693849473836501925436564855136484924490679808363833963502440959229215693539993708627537203250722681200022432681846808517693520025953359746246637719500785329487225705672615467540911623983093413662153404100652420761887718486611197819759388602204423732895776344137331638475078405592944811324282561377869798300678550890723207672546736837089267278698151284733546093121406915028163189444347580046293322729044766264241390226686861492180612166557912401556598801851393181061389389320616021473316831729147409872670936014559511074056916554170148172027735625330082912030864083482681051280742703997932202049946575207063278595131142771143595336295858359502781900738761236267991240241893294749340071014313871793450346848423449877498865648156985329229313360898552917811633583466295609226932007529028790592023995259647756611744026820647526327050968235640681883715130032766179190618360795281926756141737829480797416679552587479147803820316296395510871849364481437207582305939017880905225133084888372439151394721950551009259575511705470986930571093758315607419516269123556771918233832548020520710906605760420258628636973233369794178926915032985061878276645855687932813316841640432999062727032758255245555716239527537208211652497030807187785613723450330503879866454561932469148455934658453160211962422426418134394422348274176829814021375149864483991047880420423332416172600854276377002894363391568934032100488444618747984792106037242902953208100135183073490792164696268154622302351651798807578616446727008753024373030542537016220224817722783669417972269111711618402856653462717529214593139015878185601687873442758814420276139371599694124378465634061024342630302164061118558662490250793371726232444950456106225903748642476732960928624499922909254052581665784520291081184417212732741503546453317695663948055909848818487630906135439294334951676877915895823043838370164729405394272479408057117520365762858503493254853226413712362263802528120829806319326716885282265502429631746204390958555885186079831406213315815223557112744909160803442449544905655274321099445421278758927005625740834475879218540923450706413790521573847327341810812346929831451010586535648805686172128042731890964234624985010564890414855525979129403078105543904774566898281391927659806249742659583922520949871757656130973589519374609778289320851106442597308607191923700694026100253513022850181369622123026838362709201598989602855595277543018182477173371964863748779316014510364757504520127099905510232193180775929132754991669682349690564316631479327769202768441427367109044923296482118644579437644615665262866689497241847655452718098102118565705594997835815100856713510129956005060857957241807697195967683208671115511609275089759421224997345736350913489439135049467591950212454422000575260168306130928077334412113616015862018466088598029187091728454881164026949830734936129839598363807441546976179372557975485630985093403742857939253576512044593680267677550543018795853728581421572565163906013189775070405039211649625200333260081189226429903588255569255364947765243185397697381052036052084377653336102187546727488954063074193352378548972850378500179901139044551023494987327081373439309819139407604768451319929031267153585278107357269455509899181855395721821888039174038937280037383985880409604484838053710904567322073681282867454670239324265312334973478990562121623672473286313539075659651851375318741595908929229050820850249564096366586875375441337903320133093485330965244068863136814158399595785111416146312596451005844092725886739732102141629497862116454296215820261018568843298160507245077251149150127372468000129239930001908715011432589788958789801635524667811965138842075140029530353622094257550930778382615330364397252577010394970321754648824811787133361110196341082344240439082379003329699472942216744026560266828772015026372262047744428309860657664516183585439906211312684952705722420832353917985248863127824770345695302086926441913852272695008898160011910516900638807132374168077499704684530702041990587566003782682960473730448346371944052519673014928133214108778212298073872229450434962875455863037507255179995086504594383886995195550695049600201719212166124599839613373321080723384226812328648540550598043005751707891551664097854934746039535514874941814975238471095070440911989694777692305786155190902306920485965915566258750247066959879483592438163729949417930568311602083131452529700786433419727779272583547560846275303394806721681938755332571484125240897264876661140713013157359470099191733179289226628176696954186105962089486775051592649578332579852306505768324341764028423584490252677882186655645386676631458442631737684164146122562626399596890526466408161878568978792880083519827555331761437628487279200858326189908578494174874365224993514558106005897990666740629183213032327420052160913807394961416509375595607968845236546571494724193788927239128845543900110667329660569364336876009002225497254361360479811717048060966940924695402559541257852758837476735916412225060594950698143162913500095512801071512574428299696713878259384943929163152649729560637904539891928572195069677113631142876937647284325290354401752558870525830609571556036634822737871832358824576275975790560004495742878730610020205950382018593744993082017466668199432254145532055850616104889285217926841465011130888877412287807753108939113579717667791050047287423796909304008567110645806954224096080743773324343143506444779501580350803781347698005396928612442659887680492097523231104846540042290965871955912476174025555148218642353536584949055192734764369112579762584040819545199746922847027299362581428777538962634786660467760948916261196538215206831280195532892808163244214000747614851974679148645343833363674134963312137488931405706755496412752748799000522670887047684574890314738402757861922118223472483121496802404292590646080122238495006559624967823204768210889782397433709432519790121964445026739155362851739523942685354935813409583078277353495028935168204046159352467631001116075815746523507138856885176036349651383969581064259835530020137187823115986924559096321081712262716686784168392230814032061848651182793920693406308321743601616110045590259245917144510851401568278557978776934587878973956157884424372558754006125236114649367884828703429544081171943996125888452582635458415555273444979916111189722680177346821011177393432490183362478773922779403493050407445888560624280297209820619471328748057441523252170833239421650182290118631821892918340789639300598616922437841553809073783618033360630275526424871214860388810855435883421940827489527960083619826119001688078259078004817681867804268539241814202766369102173630844796912346939450924041739481295854888020698173223131156276733330780964212273931972098986446658594625601380653823286341244475166264678954116707389351679048418656639265293893070927977869856491543477870615156608875586008820633846558632461180508116726983206848419985340366994864254823282593447826669801741838536905106621174196473817070466928800886988852344905364062446162935286022752403582786032807845759064035016215096543075538829046181963795572428952217081974497224591771973050840055065646150316278985755042628238233450904096668878022061633770563743533696986726516906358388088720921304916340032742676271060907103823326996263396860417384136929896830390800019072689118793496640482038366421882881343872375248494399028929100608163114254199787861254671019854029211979317478099598740368560728465239736070781503729150306647872618721141540593598168095988755173046446471141741788299504216865623645965489150010756927848377260596390893335422791250149093879470584399372531133336482641852450504321209417206784223159576244984580387234211668074782938310258719212638355012152743669637851570064721913348017343986311926790456310754299809690477173401644469400968315634950930763742426162379874390582049911005070519771379958667647947287552732788889998433241208169836653924349140666246795462773597995185280630373582326560948700227207886897639788904539683594087451990290177809195819953494899407590997698020835275010993026997519476829746715527126082507221833199094680812584496880510016027694750892634080512388904561598057553796325332171149812643601617797972689261704801994849473685034136211439313231947661121295121715782965433561457051617449009337204825303782656078533795151843990636094604233529648708700390686017677070359959245497445456987010252302341707365148846597588249164269027306907658073659236896494717346277756003385446802118948771285623206163431566571563421053632239602198333822451826605486523282443296042755152482854002743966714619647422387448324315816947805852050547304211889723070114243132568499224869737086241833359993626345450429116592799430847349615912365125030331994275782194846011326365198010349897783139660946231048677690375368902556777762427847350826208638681755185667775975310172444335562917364550213782083986059425500100046127880813479785379511120304186829917893188042634258361015946933537805519875541011200545309910189870476528183308403432905198490275334466556976902505484067847744353893019884669651453847615879164353819758095336650994801480859451352468400843773030687700421064296038155555310721244855674583823677570435218445202188729069759004618071085046063244785107366307420039657801435186079388388310992257333040771433573197248955769663108519281062097484629389995327865241074342552983496253955511899329857389394975242918770652644772805091814189209467251396065799759714592093828465133701595017027862046620880543239302930789767879964604087669779729380775668396579917672878376756372022613996599187763785677040839254986023536182600437766075272466454951491142788721743029824735123460497705402943462017489316398660253421695617343723828394716907974079050001988353886971127613137580798519296779043493362531842932081419863546533161177692926082189237868073971926898829266686457065447487816625058294848540501341403307987024659383057887242887586526359389094295358101176133783497115043001041236727979452713167906016691021579697695111603413011139831737193310468861809222712895446486597457635171153500378328603019406784026789925781750196342365319022113922989396540346380867462734519550260052759879576416935149749581141156269825194906285679126687317048734402597676269097662219646856594527309511584252518424583369681965987595922412229783614387939713629039075443539872230746681021537179354065207601653542992639430200005769805894387334415152395990562631138910895148939300572965796822814074503233145599247506691439534119693295777163801270291192776888879938583474814520507461209250170692148994365174029448526807408372958372676260972081656442236143948399287292450901233361881007188329429759356421695111406311668720370297621188556076720223359676500438423068752918320136581953122246243067512667767868300732079675616626941694995219819386829825977448229736035254520711212977937270634129144222146953589225863035783411081325770633388392547043870481089691306632668371125671082428769200077530259199455893749295358505852362906250613137926857683187386236559879166221662417437608995787697977824610289065946774597336366059133297150697760864946722608839180280197748599727898460552342819935026136139728652161346023728882648336895865588979374606964349616356126865564091271433893866492420762721603687934006689406738234676024716769675685076427617036573529673930446440236533842990624162647677883899990536607043712219138988294941191215567059786221722221193806078828383088691131992677126800628745539363066059290492677459224830840277487377238464862349267775402003199182364461286837459387276019220773885698261702837781941320676728189600907882275832085890827183110495148248513048795207482703158059845305646701263205026511753884046047246421082433035879399392897450809361072005194594639945015132638605993137675365754331524684515293813907960268493649721069535026675632366280417508194424799954605204387914972490965820429649946793481082845479361014418208467306844052462565987074303304233223765159089343401770467620616238025581844835473881396112305706354177283399146725128409297972791162482072390337908643577260236178227021805877105854239449335104111121916103404502638602208168593184498260088861855575639626334202367143767787684227025211306286759196091049746557949163690043779318583454475230641322272863692923793307834300537382341095744596569148610278018478292868973135201130394174911495272663852573028064492367373282251776805961529804705392547089165388561794588593387681067554364989915100064556884702893632496909501663354914087951998086054890211157104196082835900106899112044310064866010356242047125946445474202776593669114280514043547125877540746981427834017336137081560483591921755438870685011434582970513741607198516980510138988476320099899261898226744668055580750238401673245058396112445256349784893174930559593111057176998005518518795502227244659929543070416567435416983922621296549035652265354793827333252132103195627148654930123833514411809015397990811552948827863383688992312203785986438295008476201768633332457742733322949998113458452833120454270608153514437204827917909780925356175517281106990649427179881003154115011791662363390405928942098268241011657284668503888616762941409372491030506034101604127298445729861148364757498352707341739760617384908794483522999019786072929635205907767922589306355290130639894239133135880668142418293986452121983362766015936060101581923383819144691132077127812402928457911789266506691748824967661560201028331269693641777808056441346944479208480344429546200738610397613711210046703498332436254814319334632616052964792874942220404507611105607241361841924486272845806579614837952729550942307088986874797390028782777441087285499259147377464821908889687311782641533868571384160311292190446047631637306531369305880911871051944282692340956732935105517372805593864591784459118496610292379877108955496666978173401158836663929840386016553327348180788014093856353514704285266354037632683953979601010402957714778469355252613262201710418844287237759602906317088035034961303639880562936251593720541844116931408956940957122225005525104595075547931282308738176513991172487350973578572360369545279644732998531605265843423302513137247117048705041860441640961108932909772167566124963264339231577135740977386214976774527981442272315238177494717385591847355507531449632189959931182583250002725262234780059632872603305920983713241180975968395546217310660269485836819219052945859345333164695239906605393310984860850356260781564289169035081779453221690926575120672075804576390580168831306357978260129719844636129751013625397391771010773006720751461906733545703836821318616168793823299149404588079218666241019655199291001200901013391013253984753324698829334778181303868162967924195692229418503600444500096081045976303942955897333231260644821478604608237909100519778669648199334246564029206082972133828262813517780398541250998925672270499312551641915572276270330312358784238971705095325777443666130386616257122648491899906242423887529586836994806100311134661597923333813816340926419867602097018412001260827818020048616193101807127768589868965682806621966604853943217143503030901187360085742051275081836334771664701273021618742565641967726483559698670872036187816585294182375244203794387109844609817179972212638818128488624939966362538465191070971492425076543630710669274135740022860953168658702456208170926480070427229628926650007749769117498901655042344940697304949738236796599502849356338263448721892055673839049358208898965706723230644655749823821607985631493428006628042797751068586875449905387848660315187446771476407707417216522323787543377582976525093289203864781801551434685368214326848881186960022030586056634240603719315289661187297522614079733331688304488129907942660689758909415544064559890119513356890920629289001799210359563633948402612621624357266049814411334864286383037591783731751081850634605416731127802208532094129917275860526463364453237742689687302532497911633648226291898861823795338626490853808001108712910858188240123640963408601836631702731437167934369234519034176888927434352467965649914667401188830080301006896139623615167997663751633503812406278512486986926132340263135411081721319863197220087109926013441921734633200633880947888318603990687395960712642343631028678173221052020413931891392962782421652819707750995271641453255138426059379951948643060177534582557497757758547818291534610700996509554373769141694710863667019173971518249204863716853876528756960401911726132589702750278862617169178720344995617963711847387727512938018776931242457752375496308982070363588770239823253044322244409988880270042077858942435239059811281922339335061766880348476256467271348268502849957766994705496928416396037492114529403500455767206184016955073805491340375814826449124350851140712325045541896294645260722032768722050674063792253209292282131488711198428400271493286684753039677569571389490561184428829954039263784493218939238410947263857190520876862633133006494086680232551331333812869997175278214388698834966309915596454108379797389434724456374065180593218934208560525945297706234745878987148257274773245099039987320187290216346470099728871933338713862429953879675396466554116446229976602512655330782895047478665979058553286802018574061912141508896381711027068906556514801538132634753914567103890067792519789066804224909736807814425530435070895952357749868385769802750918771408079421292421024546433567518359219852706811296004368290828573862117254370421949899709479409426091415804519867532255594614806895335611735740626439542385172748480820984478188332103365756984186124861783249039287939248434487973225010854464982555315545288044768981352662809168973497266740692810846331714156657910655843107005185807992234243936848924671554201106313115206225812358086227373785992142946348064005878851624465166084542294777842058628680803232342987669542175800037015435595617700567451711084457223220172125050391302263133681665786353978987017476772138413582119605780878427210325572832989245646390578377252489506997485090513513633075737200852286882586078243262269377877495179217451555767184747989115744209822390639341785260334499863436435619265252124629025967933706520822202470185996675214064088488470913678986975583318445082755905420887820430048969419189805117229647700305305251088981852555211159336938124723448996435689029340791480172195475033113189057989684508815961474757380081156406466470058423855735639278363162732556421685426606246854156453844476444993891317572826534809375510878087997430030960379705737187716393919515355397916970663637140834820833377009756349145644259734999825263211832463063132342802190889025694407501679857446339114300050247375060597623259812125080824258382238286309903677556817165877582570373402191446724708282925927414484116436003840746152170216640459924650387333707234962492492549067212169542633626679394072922660182508081167045981895870987185393911651759927675866880712265264382060818455584184971216898094787719609457934450451238639488409907404971920540323074342627493406255932064221445727460425299917774087129101816332005104826336250560929446876684803692199746071138299236912606520087002189588435400995885454288546928491429347175190612894314972505588145371529082189879578111522027577024716217640222077187105285599558106330129918066638448079061263801098248872563086662692803607037975931095117066513447293276319074139723658607058148329868166992754107661678722296534077838110176780162241468674933609330413747355178402803760692206691424273755439862484082141148391870439914953807893931085162194675903766696949160863469269453753231019961524537947450251250283871218480232868059291924574128175666049422103843964510375435163383786956342466823210559273751701068523031843053185863534224158097687039026046538229664115399839256555881096414039557873201986122297858200751074580170498306622022698043578991731350134920214492653960536119496212728153566136012824505065258866675498223828083519368459741580751585271705826442174949070781793029461292551259321371968103265447055222913415015000525597869851335619047779626289102145272823940935496319806657058423271203616612603707612807606441763673929363316734037441600210249463514501542078998963831911006534910012041062806031037968263939704340039434866246718065799861905073952992994823509684952455059700340502085761621690420715132642378956015667037606663183794059673368544799924292721805167914422894972115319904260981499951546071423143781807970801599225173274351100674841141393971386324836908638086042440414322751938664642304211692437337422487408364710415321315794944267752000459898897430676145344163747316576351100539880596080744856331739563178431310364819396535599632012394436091014493967746783054133832939510795597397753051574181542765235841148167456433222087745559304539180887923402370126588061253567803147186532162299383650494139844425188274226822459462060926882175685506385769939213025077304930610431087332994411216108454397007070962002323899199004793978891207435362485834242842514601363208819281940886911287357207726133914902603568830417749458896595262633337274825985265809644105615338068213567324755543140543927275973937248118483857580716807654108715096188031059804298570475829593895096898936364136820050289528678473680793960310221318582880624137331900028158783632213837203428914340369955107726664744707221884988719905139467545422044823475729197875062670781793352010813318886874357524595156009828289246114371901738988454993901711238751102075877358379521872841711733254427764505166092348071413079571768395970365231611465134557172458422507339473384353880406496502390244798627765071982550494657221626200572679833687860528478792243965093985932730868657848446357734008240119943450599214798707160289626487130978742737434803489102104336314096637007463532269634023365288817077593879962040078140540684049220008794781218032087326161934848266513093581304631630271952467267022098580767181893271843804305896576787897366377235735418587582058588372325205836296750365751300785819279961574832874357305626720719963081536299585946768390076607730198578866078013565371780023797853493656548443848670223348189677674429561560724437507859078064247603394268907811481540259521164318342130595055334487407197923216933816062553781646457321562679083627969530208767775089230006432449165337783942520983023198397147414437376568394980813026666899840063334476324521459398632953330973053887116200647193789681824757111496263185762270689209812561339181833093836923828641197109193875419496043033979323737175218637410334023322491801812685090323909840535288134637002124082597124188882457732480305588846715901686156894327716865059067414272243530613131309103514636633511309543056722338771704895175547345427393473687865318647151377041923133696855375676388844825069015291049430179456170481651290418793965225215344387131462602368775782114832826422608334797736350681282362609730815162628214740133241780023561544223153034683086437727311938347167434426668159736387978881143985017180170932448671584853185344257444354684672022684471425813313196071137693497290865032057940086829047616491573181439790542886356631076807225347827485542191041430209195613548884985213146687727019650821566998858758623592396954568451107877190898798831310860940792488154925172190969080374340856949518976606495746068522319192573168229316491681567392360711319926851561715788667040792983025577386492174810348117109897184686694858490256302319117951620058812350567973973136999325281284437526229133386154104726517774314197547823509829718077353593157122713954176130473791636679744574053485117004563936033890193100103834722278749116082683492148336616039761240606154094331206685621214331759996591146158605112859126989566002075861399896818667402514517988127981597327376139807908633361086873021316762693798284553522285328808811174517659812906364102290062317652462515028974788944038833068771870779157056898593143803089374785896791839617733349336477133534314241295669252230900719258390166829467242586421988127984986366272342173610981195804676990607437750191845033068742472415196515106665482831124228477089618817212834747653714035337852297130382842104070438018569366792047564791262290067536365556966724157654824268349989006495343710655174265107731030986640505888968554258350875926053404196649128906019662178735272020147208766426094735844278973030744754545077003787562230511642041506571905265406785801766166228467321739007920275337245704965990980819092623939557366807140973236456361176488300734925643317257446295807861300126510353544548345522054202431846356898516952163772469863179341602105126639329517413204983521241981703083337355237251286442299607865847619655108264263643462090755986191975216010340760814807622851773441676429372676234508931473090662143050779613601419052797530807328326819944076044492632757269803694183063602597258858499156926853091119891972291837657990763014426607975273791385190034587977516416010340434118521135797506701094125239193385966494341275748719194512370883532763059865176089867602970560457246076924273997471498035566513459465606247434948290184518549565422848225087854553560304802553254664683806347560966077160880387065807572256716486773336300132626808236103912600027211192712227172550565039612594789279710651905146003381085198601278597131580311976054171029197549925241415208951764970966870218268041944753357657943123180387920405944173748110412138961834078311027223772767798100234481848019576639469354165108728355476093979735202405028630515731810643351448146334301538421365822104811936506152497388216590279705586665536585426724933091768669905724966227227825618511226299311359052755572849091543517747649679392205707256078387152167126273049185707054511193104126034781721160165604867963528027872278396699848554139187837843851460515925568216941541164285991131801388480714823114430104580362829706647258179676906226956733028905111653331029236626151749027080651331272583971240796665623079662519680859726834789826760264790391760804339803828180696291955302780038614622279910213833703621150414347028201200120337238558051390380473582105079477632736577685906216823691537941929058477725922682423171564985278815298032266418230858814384020537849139427754398093263966896156791360249248920581261059431101654188121812275412196800622518092054643820405348813799664042402078364237094004040531167318972475916342758487880917131496681320962560873882462095490744337041368505427084835535250832883192952519511320918714927124973333998622816686277516830510619947543107312892833144970970698795699560226777251372730916030792550294459497360238833628081258308961332361385817809199378585853185450636814403708853584840484715684303956683183270603759104872552669232272636199851656534290671003577008895321920005382181060106850167275054311907748522018735913144177817556472139462538659524105612799121371613490707683839625329659384829650569634714433450318387474205785670183445839152169384536181316812366536938163795926580490263573375284143362225631980833879064035702199324614808099472217455045846842691906667087078656684700011792852648831527821518701119044505362079531581043333596060180870798546375588896751143575649506018109122540723335368392589929242506431207761070125496475061627449530266494007087094982965552200860967913397287928460776742974505513813279603877649709113825168510020569122192226479705059119548711827732379818841509808663115037773543227724969003424728282511275286544236287383054597881323072241966703592202447339089016502222542410115548265576525727673576155706449136096735334574129452455704689607081913113227222070861996266213206035884804848746526294529685337693025184810675818809832569127618995624404978436119665052801274641356256339298881354146468230095275779312435530473630639442221236108158208388297561746571131550367270637058569135491767502354643676688357715906221401228568756415859907084081293437341281806138867932232170320134119990788392240723943770551596240015861787366235020679693165706560252943738987324030582817303573306486341093681285559971808376565636292607882837211326210516627369815783481614921322224265554445280561927502913986525399652318135524121286493478754048606766072500572463244139761184790551592765700311342501916940488941553272506092500602910304693480296175281839435698452143602349189051273969573375519912844051552464192537533711344305484339000640121334898540757660045337862733234863558895139743439959836569648722857043196714258677232197095833389033190547032490999074176412367880611932978697463381293353798580990082241833090101700775326798852699609357267783077699593898240878506204427068262127150893862760934332801084269004929075757379930190543681568588346289444393877420556918146532667859261980835518305653005876779339555644071654367193684045612165564600524610698146762529868425597848013716592154265733731779161639522299244768048138101085365689645050873068289711357399451006259790049249369766820550215016300180751745450529559799507949484428577637051694673493062423852617881343071483563116954678394885360993473920934106224321139480343735769103516146368706070708418272495339664998861517033916241708168966074217427631131626999782854615046425585434197283415891546796617493171476993194749417576856982891105074117531240737823464647221862458177704336023951907190082974312906984478276390059122384225005116026038048154885991151074717323129566213385884690741183080537582545796767405407272766595457980002016964585394138786579981074755539548357498957051960931243737970960281261284123728964999097765801972415037669073629862056685215658082050244413131679943592019813753181152526190845211289710475098121747103368957709266626415521232475065832946395288508202378659546414923332596579032387532290067479248507204986636489403806159951995419640478428196922569964631627980290308533252344199491232399047314831715296575026545874177753536967053984448600559046441366659938231356685913725450869971598275631424200241158611651293379726732459830383514397415123041220522373712372334340433875569974210972468270599611947965414010509855095868683341826749255126503981396982944936150375759502416815744113959141598600931709439039384414405759649028897432803265314090889518120826812065932479007030923267762741911408369036825231076176140783364326839334338523104722234318025921726859336082106882821262581383125347152996368240924509068758267776211844066537901725114031297194361968309394579571189758138367578929032192783670392111742323378351063135369841939385648620659315392898481924270703339859387306839782244523305816714473052702796244585078867230910999697888221712330848486659490479314383966580629260008403323147704383250682215372722538371609960496743802536718802437004082578137048287213557307346658737060312005876029308437754375094980491535433402639234870655267473081320040167693635116193745079248879712589740907100081919054493448329019871488169996873946910005311461048077937212924751930494583782825067480388470822083971456234549453380167849253692833651800046136673774130909620132460314951307496696092285754767225165266722847597947744617932753947069318627109832879863045069318341193158794422697386074707846144225245504648103334453466137287438833399777873764314564395713848221979021963932620396099650449276339492276337641082791366868199522551184368529303859584680363246359706741091729331014569830802087844492915176967997897679425307924673497231052045518290740920704187364764546033547819012928126048695702196925414525398837807832870155824950338129703700528816093336444551265533954487137764721495143286814534588506723880107144930595726370331519518530503100791042854906772357244036093522835015483869397466654591271141625935431388518243605098728255219218804148526368851625946006693412946522491100385202172299267007794925326993921140057418539006993085997907183198983689790013090163406963373985658573462345335560364358125435651765079886780143995098453485535969669894977533989067470639723490019864084612368254327299597259575412059080487684109451168318585477163973332820011186325824867213909339130085037890187848718852357564838017614683698687818836725291183633007196928792488349460518396416974689451700534859510054578889438141834076390391065685863553128851611550360657246186563960981903752652987067581993343865831814358285015007865499986428702395119984055123094522679652106678955276501597000767695306705394010307702551113741595878107682451883166430147414487792130649371868819371014455604115210986721400830505480336614456796096062688402144432927550998729039263582922303165602618233678011169508657528771209550463246873270612384354088393632649437402291793902750739162100634196978585097213009342939233395589546361553618520987756692100157417131002181163931895208197599586130636955212043483035957404782767875525773559124244720956847398212860161364117093788899567160851719137812928296923392272353576403750176545826702362568005271687885721916056586121729880212789872694613590165562970879784202005515220022650322467555926563376189102569500798545125235175624146651134129120644420274964273168012741267019641740014868051707741536038544769169136339115921937490920325509085816307324569050784113662852169446442977927107991938594719002851939774874783282661112646779241854080525961239710928897162937661014962868590267891668593747691814734658640251916250550695687972472364781004141391310550965350158639098748737854986955148041782725861452508688666906988805088725512463316329500212200909481923912677015843023996363734987619222510232015898030260346230575765596492643372277555318719435479274211022500267178718723711557963242171848736638084364472251234621282344149118937056165886684323246581917295936783121611840711933922111425453040790355228862493991105656322675987870999250269375838243752643684740535799307405635844422059270850729007994001037129848100488463408138690637528182261766820090804392647500424017982462934079136065529463845900830286915631816605217689551735332137725926835842126851920302676211266373375608115393601116157484142383273093372222902670024582318325053754434537521727475596445895516643074230920333447630545282003818117985803989252424862111953495890224884477103016267666339448171646637306561318212278164398383590697154539605142584394328892277561305983268035819119214423618906837130064617180676166480269410693712131729647820097800699011993689411411891006219382179567168894687759265253956265269460691066024908788115961542382964067979297062944902969984731630888215403493593993246891485938487393085077181698662079977214588114038666811018915651031407593055460415400540126687146308378614262284519328444492576430180892098800626783470058363851494757057748078411892798202348334420511552324559854952937043472389357612201152062867419008458928567426536675359092186324675703871453969579333289671692301564960010845346265538978124458789481197419349915445944506688425633784966319120761020893973126521633849217014361093373272049374164101523668502827828349583172335304762474080854162263934891697181379585658696964377440216532831245236968864692420896315263048568577766956009110215574878235938477222845963550025848568715174817047884662004784712292640780087224577243965542014656693703449299679491896476445106056815117678675561377470363362859744160193828922424279019623519993651247046203929188674850641855836639251521361273469294138358481499448267368876748092400749827188846915135175573209857245444123304409314604025130759160077197961331658540188445690736656466908924941829681826498255488096732945897340846586560113249072480543207114776625490439035220651257693906307752010180308913543788162551333624691180674501545710800297609590164167431466885701180343122627995265213561083810460340848521872971666429090420760026782309089865731111299906293359728645903341718698747632656990693963292675165124856558488142637899970295002000984767151793558585340597436452800197113801548354859172009433282426569062876680589400380620583429415574686991554954185728304899721279561711327686153106758810889741749939776764015251114730372765016840019171875977666024071219750788683328926749558083102853574788980645324225240074510935796798901460616773034486810841790863210281061441775578515227721138682194904685220874962039394207187959676890591752434628129576117410690495581764026502549130610800198133640234225133585541886672421165372006894217445164566584714577172266868150670793755790598070814207645588111780490494510320448701889633037469066357798851987507616595747412452763278677738871280323514832049365658507542982957781050145894949573219039778009301440039348313955629204918597192391959414062997675222644626409579429776572789432893801597626272444547229069193276766443232490791280873329415953200621843821711155723343176987249621374277185481827928976825163402611465697699404012677095533030837403431290727476409894315227431262338843871073846731238981468804011859934304365408054122243668193938611762222820859777750533532111150312517390657322272527090753040621041714614458679326760933170132742593776677458552663030669929180562435097097015550284948706786020523934163862230450939171576535461927501629065653868366747001155773564024553868027993222051789188065609389881722895742979586264244191653487993672255398465735646798512160440199651197668501126131826913140942213825599841779126261872613782681257933619356872213775658918271418815381654784623660860915298163065592207543037438784042704014281534138820193503043037561120905453220301162098541535943465026943563425757536457823644142613449732118014036845391523654288031285752103011428647160117946060907127688995691171367206937625586816240546993007196739398079813658590289206327068380732295890929978580815717310670674192918955860395174141151297362333676191425140590287343399419107775358978941140965289863542060387468736354520923987574034560914564878805369873510685595027716401280347532478848779345258657366890881493918102074945453499079366282032677451696857831405449224554487636921689701209416824918726305721854632941514497462605042508214422532062552498491849224271922981186742017236807423006221406475045925506508368710093748763385043616056343498472511625990410121992329455658150041913598138847303894726093465797899900913595949516977112507967630052366885750327322289892069213186232359610150544195568822425683527096112141046316906085731011550901633029871823701140656773851237823747602609376538605871190063300962946196696615638492425717752530006731536874790114484197702179751199403903442665508336318086174421098881082651223875941582150656935395520247309510716805742915437674191101266191026255830329291426862243497305053615792849904500559341832139431240652492325133224696000141929382509843031794939945988256472030669095059264711814749590521465334442869457160266170659089257875002616999803819283785041018203883592182995764127494343684882610301678271672972200062758817125535850675463785709865513479836922035130918721508911352624020509146403580690998273772183646610288077426319668000898108628298538790456342910908466146769900322515084700361197274276914408489256635036516435492920635009018947702833260555114675178040170614508898274184258277310104874191858186772621906983679929910761029444990494098729619059999310019478272352603776476497528893976473703018614752728250511609613350136248933631039514905526848868943493123392832034220866063525287317660123107892695581745747614154151685125188674251082756346799559379470458596480813971685915209948776649283377758945393507754675702993272672555776474780710403314840418747705853706668792187485453736735984920680609584050241384992006857445518318371161968975101789771317061297815306113003470519889908104586449192135090548352391939500190748924034228835535264737915112189695363562958278982491226963312604734710645455478055090342791421692245230551290441652855147862488657137713038952884033801547175256905111752101890983283406164964531401123261078021485052561936924816959409142501820708408570928937425795023256754432389318822845974815029367592730326097817474182721041821604116306477347707642997527259828199404944903824668415213638357865313382218862113860477120212071930774854487366876680027299541467786740981416039316901998359278130353054699132640774942966211782049125272347836016431639294273393966497906658323055409848995076628664467737829468437163247733071361507832758264904954572268492139984391698874626123717896403264915633815146691090770550988053429698665302840728007552132896032811512664825816631460052260839587666538328971222817230849906673227033453271692866622671457731397830779327120020766700036207552387333550193404474870084970625079638750456054762977636195642572470747499266454173997781547586279047843219491977230572837469379670690769540700983160876232621328480678460268627837248551032221678800069671217173094280849717091980779341164669374647770652960500875189269350505249436707521851559955160329979751275033686225432026779312365758979428139063544179308451358500508335257902695005568503740487666989095360790457306093951938908811100552642073244106522418956065089928386438149851397958632896346438094430558873584245476963454076216320653543179563391597476474490928663681405177974945419920208094774876073398099963752222747147320382143510010237997839506138970429690265786473879244883183175847356096667892122843031574327815509062762264959363750281717524615572777806968387553666286795521443568827573890955295640747791817042908601651292437235980272921879736368395957949656881042748468743874568943224051375940282293210690264664292632685575078588133618772763908510238237759310702798048116251706067233054743422603818526307897151444746791741319441611036747659260988222904892089085655633256195105733732207987645068611844326193174871887502676412270607922802664977765758457676410911313178256277140797099280437923121402649819107110835552606400288725282411697552427493945612597477640817816673908223041296716886939087206691744804768282671007855226558248387683624574744697128111700480676213131149140039913725230650366198617986205389579597739269403943976866556453777591900179900709870842439446408870030379231281263348221013814767963735551168557025353410187567764307661794183021449867697823281991726840730680608572652406714195387142140268723467205740292563838859682166073781478481621298856185221273112975392601738098535498537144418170082284310814990146797116637899294625373749408139735226635310872624682162594824431482317175916778185910634998869355146818152769437811533843343329664122248426382680734119809879452356659947288284004086615167741825993897258883116791174886060837124510034364882149819414713015542448105508738190592025861795961346655670874623657446701404206120313526533856093466256631123257509853488083424352142578607488741560945032604113645311718576687375294998704770770512549173972099838749234375240701066717514678774240659169167332430988030991494211463450893695410828315068063645668033557169150212993193072394226646855349813322636498261015583157489946428813592202518139258120684318019769081979172976611961804040363623101864507240333098580488197783593615002159658315202054143349513937155639510172892378961003083887391133727368682550214117004274752346289890512466474173219809231093557959868316432619952074186238910870320504936150925562102404786136733658243313889675483945277727833522214031373869590342083067164798477781838261708702772522240826428269324684821249373463593194966149279527612230590270715356141696114745388324813731585420949338557480940561603498805075202847108698749986165805726384027959550840179156780455509301609491857755960730454293168981626945256985094386813871464543408834851424684272673956734810111966250542555712411724956841713723898145372013673838916948913061266976756838908522208898289905215327441224162240617909003584519746063700832519437440785322900354517736536349647696627607101468224045777059651720364391544792363650624165817112401850617985420028831872702268905932889492293407345031662925343769085230314257157068771965953443904160008777421744254319501125179787185404627405241307175747487862118618376835570855844533334413383313316745698882009977922113987237272978644523750852791472567281431954970482457386187010318875797994226978240566663328139674510050464363377267376789671527930997358661114292877308937366156314068681647565641914792257021450082185105596838417345678775288539431046963563187594630190985129851522536855875205972233142651445765759393318642887662080991132461651165921781439370553037315087056765342645108456694413404624727528379180415299355792668411912621293359437862460347193814171704794189956622469293801216228999091311216399041902202888196291606858674903715443733147231181276437058395986601897923373838837585609980078735329603784947131538333580573884204561118491302472366972398743685778686037719359344636704387644520432583805874877948608992017789611511825766231323491490367016246057925935442921692501456151929244296122966083854134044323152866504887236440908036895357849708848176230969003814656565903824144244486517668158521205855466207147157217159634638981566704939802252532677934256344269480003645854038705401340418090673937259315340870541411428539180947243804541260710959432193427503619266665606756560319353328016788494466363971665377382377499309830953003273859064857083207079830530256203845852077178285269536318252103096944824208822771376819170930848127758527808183903659581400239669047469604405053648222189367567280692976962102796650542563147359916364980775758072027940504087542818430596914449598935579291638327759801609142085107108340087241134948071850493858301625094338054378049500339709542444263339775200530720236495310011450900902781239853756996502302720059571863286583230132427623406511682315292343064721280289757968739058049224460385420491380155381134940419276334429841607430699032386177319857367730946301254266837849991792883729110365564921662894420137338363174859331740753453606513395890884901848613389331215438365027014840556565697698818967553187928214967038803817881661765166039362995577116607237715068680866248887437814002372486534932453622300087821477831715359481373333633280995029193014151397072308198918739984388710725436949049630430256243245788439853115776545325286244608183649814374381772230715622160248876201317423920306036916883646479823168669480595668447258382562061553412741527827289386956727102226794372756395650560197622687965546341438879739619927579007777627650320482676966396542297535319520941474965228262723073240392852802578673814426578257502727762590533810847258439679096800763807580700313808734989939519299463298422167210184393987672606470545089054551183231250154899555029655463448324239015152532758637356800020556038061222012347103274629237892611017406144524884667401543003875028088023638925035377642686823768892266916608543584510717495926289851254357675569986028592031329677292988361635193774649871349701359533537040871544879055047947953511363594005557994469236307170430673560213295608991454532690281757037627977994785731075784759576908750869769865849820479121143001055791188617700728473768142106711870364187706491175702696255367459268905394560321137632167983426151948286427405866562533622801991215925466898831169261487349708853248225401857761705727113123167001139270665344308731424385286923180213220498835916070907081317611010373436152446762328200912923975379295020761204661048718149827594183266038237195864229411531225217503399559215155707769267768614145661377186495857284500129522601303637736685681491901134577568444184143487611201094191707673571530098133412015790697413093289054684352208252508055948077673346491288678257838430209652604857160284694646057615334434860881052796015101909266740311081976686201797224103146040440464723921373587801182921118460619292835974454784872057298944423809101386204517728557291772316241640431897541675848824944813175866748004212588597352371319568970673518180847649601449577742472802881259862574568799707839587757996922337809361513167542908889827681346341832146029342366510404568115014467912029438008492462344998016844650416914925555416686387757976963400523251215467974029435351908069548574171173185752582154707747530455949663145847575106415717297661236383014093040331696441538510337748557353107030232401688018624915473969965039010123777446923747824910407174620365677996851556135770717190255732470172922590757264009226800628405346266357237726940537291132957648818957329928127321158841163248833107374248920738558832669916363412770473924769754329431848870614205078901866428614121689455015946704224953625216132137826242906891193275476121048267679191967217503287949666932277009980958600072714441758186091168145110476183102579258121426362432496570888613040177096886756155700073735500227181124348059203416317371801811872454763876828138444518165070607596256988160431932523391022812396753312060109572818543423994437026708043473351642657710060433218155572003142722547077139496359795956451066323296247616492203687713972637631224763943313935060148900938266219784036658190406114420383274740048630343275251164274871054717077066753585156035011671571942698395682779913201962755389372022785557057049747109747466191174534267555443205650110130929218254384499690580272084849368573600867450382635492104368874443549274608379527573548345998966873951069933893601677983440664961476350171599338705943622738674094134973932445290390626479551374595907075059753855104834619060412329950181640542951378191505209446410750806422505893018593875648831096693994054121280790663456762166809180905719383238387765579940311872221619837647161397380639701894415803580800301956201314203151120071233806810921353759708483332577618491280545588750394207967573525309827170945246057005592595989116153790622208204689394064662625377542560424043797860874991072388457332407684984774985126608266147609003078609148348875648761439646854076330049775150769346289668308243609045988205345374204945040289173420156998000067981037571861295073631924074873301250195371441955601692952775698292068437299383953714665642989531164659932144823794537998195532499477253907165003108138069239678185187883034122046978156953981767899403688513195171412486745704797079808780696051153021080619958068671031383716897466792329610465629290731601029243469004996659997659729461554358210154215463128442867426945638796179666668510658495923413345204545750513234217049321101882482941218748385023369282520131223114793513683915745260528925877575282914023485325707708960675063554942666070251471516286195240470485621438892769750510222065318714441174509028472997335355579675134547476203638120545774641179480797517043595375278486333705474653890966262020964560142289656702147241627521790629814965916285514799928597345383987975290633426114951468842961194586256090838630005678459521978949424031201929722634172235617650305614379974383604741462824822710233657759978157204237760621425290727631554819575207500924118447510738941654629197357193685881843065401631277694393223096581480562448526495404373381080719034476495015934317396122226992799129623538044819527234383388787330612902889364370689072416469068777196517233974377858642697929139060274684753334302823621578130927742029934526374126565847980088836218336943814938341280769814982494895945444447065980743653853195159913556747578373520942072658229252820253818294557338134147559432215186321653956649109405131088659145461052831984370099207651995903931059150429092926706302478204009491612987937899608147082829320706511693806093963127596376711763460914236161941942432096547061375517856264842912945045659097677683698717628358877690465405069399566712392102999776759268732598931972466931007888883985573479938474862860912364067338992513715952825920495103017826493858118333628562843653368176404909596237659106602425605945809142134138779186275655661621719472752008749143562651942005215892018095637835318617833029837075446559618347566314180766303825242877514125242690393720504180871972196089101372407390336261531990561945305110898990113694779665757626783160957184151784723883189555380663107245514065898329128115470763102825892944049861135785549793925396450304779232580376071249602276698548773334441733473761901803954824150597833681935660805084409770746079149622364182401291247658081255755992213245505750856517816310601734282174433500231535417912056425811426219979000205436098297463150146734799203657633110637419406922417315824290114771487581157033296383738980714580964172540775383526234733411595532885581787767791162035006185069582118755505927770026354416034325241994569769333090389326916096277035325598696284467535353703448189889477023231107284579893876126675414094257259117377448546459493654317214684166697073272531447661513552440583652194120874299672217808413780317395986638491972610897359084117834006067472262419999542165402323621015725085079462118240265413781275084664504587204141584998519609584851618518956267324511410667829489949643934539799994962523740219043362912370577107230707540988864833521760490885357813870630059245963371365041866063321965833372986236098150054478128220172720667227673125534628917237275093914933046509497288630787388813698482985621799590773950449693655493071792822746289282982888921209247979518481413792659399820089243170147410604956872670933536423382404408837857187190341460831545560010426227201051821316090914847599996910519182825050011960706636932041353690243517115716378878941265322013704657213577455171321593136236611123895079875866151787149425888213818236898341236606520042280449800236319580755975306424889176301968390817636567041823658509567782362184550448494633880479720543805086193186895406609589223649880273376989140846976446845106437976997817737765051493213615073579950244996322012852323460993253214683057078916310630062065919191613324532199606855700955141713454704730397372052505971657984609866366317496809758342125012463915648787337107244716855861795216972769547759843075876222126471995685514664297821233351372647887796118110462031922468547889987198716553848780103734070074722506076266791818376938567447798234288583814932069216871078053098045522489761555071481464267842905215924977351855506226627548333965048390112016130972917825006715800726949087072583971016940537634020332353020048433383188483474769651864164833093285020536290400311954663880392679713319894779662018844010886191738137622046096002934613906080875082469959906744221005154267778568705748820775025291713741968704419795662863958483742431525532312066953475760752660563252141089748653808968358350081099678484531305175556032220819353160096077718717869137826797412087612774678363972121101275757128043995135708140107670038855151201115025330598225321047543709796420762052588283388655383590656345950652280804474707071480353973202563090629429930191816007960997697872829214385393215410014725230034498572503032456144593199276783958863283424168581058408025254315372125045155782762933433431278605266041169566426327293659052164170071134900192133296385868191290596179911147988419408663075825777206560538330509558670358567031195556395540972153789456120058077564921370199284469882878312164282750666391693568158726604647074036130190710501823350534659978671471586592965226781273820419365629402276369770822537645276442078792275253310143043211444794608474572119166465021041275831818228413072626265422422459757715126277698492731878504551402540125269362049467757536379999784818968720157969371077039750300015487055303854397026839439063680975703903930511019845688645618161317020190316710550871606462649848825798987685534777428668080014536332417141721787297668799218205964871519300626469287585839691972212003252902127601484942441451484455297455560360795755112009181308332026743964420669443999809486404526545270862685595076136951329966676137130015456961563811940103751783497313791402034967493019485736465451618557832542140219168342528059810708031245619667935546261944224085465170247612186982172911940989006989709388859210851886214530070810234142572049284507905018530034966632255104693104705647279016634654923827682600299122899996583085836523482073907930089149364009984398205566556721973245873645392588254828277713329181341244354832462902808213327713298120596414282482205142350176584185589903928897261398402350535826045569570932997287869237024003943811418656815673842284057130504376053725986529713622050998440905908761112139924838211247097555223011303503405186922453353619320993841809970328104575049615364580920085149494758362299707973944988560409847812504665539493182815816272073830378003973180864194023005500437811040921869054521819423512887947680017662406406857717500397288758065198511222275517766002956570183186325476517204426334784664877249358236204121857936954858047524652607220541149272925499805339440328534959933277871299366658007579423889477841167799272217599478928132919274616323573434940906074705455946138985830495069798855912480314742497490518407709370641074031310318916552944690669178210719554809334931590043771307751264666130356226084603340252335188424138411920036820611612352053570276743472026726419942370396418421752732407919228341258175571767730298243194841785436457103666356551115548272301736547709707780383758656505437281032846714438214483164693073758346821478603195838002035851606543684077752567597040175938254051556460128145248990055165257243707712094987167272492825291320230072145041987621498328921377183550301024088595815410283672734615286144830234313326320703474184074644824140201162081385208992741891094391008393217878855866803356263497555946717786956556721162204100625653599179391548015170728068227959250755264651747924470687708971117580427296765334801540183925778817333965168451333642950510867588050457601724897179955231978038454232648135741907014786799397835384350880972471762718440260945727323815115434081237505779589938064653709235230440510518845044275305084593755485900661537384323564595739213592148261993030381179568453412095119054068055992313343902110800334551361706003346180358426140237352444067463510088439838617411695873884946787965475122542606502225358609645944870435098793742812732857300510038338541151503816554031292968123701537956331704426036130812813366678077666046008769035287310044519968233561050723486460017274108147146766370144953927876688013263824099335428210479899608681469269280573767209071665449177047797838620164748620844070641032031306479188019917985050368022686335589344328368454072124735014602628936877621981626830153521606497223730929088898152910799642672995798609773893719427086026464773629869306425645542044178521935365244599072283785134936620653093968697521395505787445583638111725879717226394489790678536635674517462349510559131517986617856479836338545297385368596304144170929172969221603316875538248395017632272222506200077025213448172221826209167549215531218754963272516251182334642925092771118967800512386181622229840798296696220019003998241086341882637413398227790127997597204272701076196001231088674149842870132819969342415477075846477452835215322669840820061157088182756578415379459466902507038186228915405023654659038152767014989400210062283630201236195371667860229129530117306589029933525623085691927497038111505199612641957564753182671485444651639866284237043263070107596026708738869375142189224138049895174206327075682782737807324549579676621610693967101791904362906873337380164697003671968498507735859716249540372775013463647844812939372195704688250851806683898655591900896900403936096467944485240582161911561142627152200012868076968256706764649655617471622296043754996740116349067054945625668006948660408571385129446411349613022562754683754507004619604599352375043923387452034206985692780694273131554297533801951438209757436271530747278247457873960560004120076747018936984340915757819080099999313979445496432188878307578881722198523481646723434700260688113810277545568868245841328326460946519750941559027952462117112281619651298241817021369061883091047626640140767123172691638985918289488779767400298783484958271208613898562648495611644403266747928688685754531433991529854085649930429929307067667886795542354224088035671131737035492615253589595401321229143543043656898026078287652338414947456959453245369041523707708369442825502725818467043259656848175707672201026929034816287151948177262215512799816954624413557868484861361965886117054905444065605779342974451851708731433746475120216303423480357883810009987296733029238306442546310517140419801092946559605075842327734953759578421695691282561720573703121270633505666254818344249245282899468325588317404121935616513664534632706244775273359922177229253060106353480086978060804160957618342163947039218022934262717960658599705156457297754634923800421125253400948058912015920528731008513552529438576619278055483891394411531219428926034415213106433753771280941214280530363843716773446367299317933957374656016603470571344233581658462221316658904429093197332524761082365877734148142021514931480658076469723686338325298781869573149816134802514145707409490427444119970795353603856172960645375493621052581853135755628841257442827795096574654676287367650330190694524276450369094787135209754071566210854733917039670254538469366126040058296853176260027047374822975250058879686988244097937663041762589084862521686631784026439321346598880069386061408675823560409491740740179048428113339442260810009725115044405154449304906208089283432428241109757861910109281124639213877879180753096561819493677421837751929643894090998546641939192177736478561604114760102864153724231156330140389902988133147812442543438065317371177676179390321725368070847240470895713832812501094109470328015879460206398351666997833136992958966357596868929810767802789362924230839774229873832745363762068958593792273907132172107112986356194781762586274055677734445356852888357165016280467272595236242090078197596118251791227520139407488504886553789910360749138898352962830914358952656230910557842488467933495707020006481217299227244640044828712837503076323071818177678184741716897883298306093421202334846995684323830304232168824146784464883686136315186434938465522751901445030694329109149832559156040588566842079643671043493638490498256348474059337303465264553359598452500447259396592672038403566019627838195812562980908293001186860047850404025400919554796544155613072578684449321890328313978899070550870263232392068726953159442171279984271966986337581140061975780372655806187674902383879452145892225245062493067807834930017232369507624100968033416043548315114671513526405343528267274789552303801338940838399976606652589233712675054671684687857580927828379729582309348831001063659272726869916423103211591169681243930959601279431907936226449712008717241240762838022945804756758507505809444473171411667422552957325463752866919471501824379831908056548178121805916539614852252150880168216966809864622821688177359834453367802288719541547997883322712383667323045112411812130087498638513456746863516348275628742895702720731783031271654103363312552312625932071858188393784152744997339309210611231273368092480348283389855292323160728615828729038296918468264452294736308918888679270422089620887109882993278445839461665841741542567511475077170780837387788235881491371225152575200106309392205423902631628597620892908287374940438112499086798877465353695269132819957353807420020635887961984182052722556747814854771213447710313530821531771673939904956625690957427316759769543096409427602732396807631595030595183118421313156221261894601423845585990126870679043917849459063809766375369019144119121484636193394124219705989404893661216318928522330919344226192799033279133524362671666482821410076880942959094852857994887938057206522063229515171001472826661106168669199073137940335225507676647051519519344681383783240828654990014403789997494641247013945538660095930465642962205416400596462946472858590363904447833105780342551912943779687023216387288715798648057619964839440102863525057399020076171227937295390399562535581572394175016856647198904705580130158923550109716624346084530564579964359824569253070680277033758201421300841539112356707536316078243124978910033639261460482624397992190047292640672374755885222626065556354396624548821594058207048840196906909911960662581706618344507176482364990183832630199940023962744360623337373661496944564325314579073358951110286178294614325650008293818349873170899107808619050776457975316875661222091830310696047529322468534558289543266178574199249688939914811578221415821800663050657786207931536956694841491639877543703286182495701186768065263805444251671611079663592959207144833641496060404910884596868625794379361539012201159117380947388624463862959771002930291735585986842407535646404285315363280294933718203630582254396333225766218828290089891456708851290697506661289107984639709701159395746419232725039486344970767353899755879499099445902181245994850077527873937369531848097147033218324320374903114012250304432745359988672539821167415749555528366044667168351406690062469642486919003902830661974564633176888314904666396438139823332443867890291766985411570471637313646896559253271062514286186820398861260258038877542895121273980739610789913975275892054160820988129702198548416584347195855070934636008835410365887611941054531340123460296314003072105004721365015258002039947554412112302211589134714409870632156642135183570076095702532630471782082811596713429378980236969677246304507061779743162642580601029550777589580513767515941707312220186407024450926763824142996111123186881566959846999841106485981873359598896749071962514797220815743337130313327409079756855778496341694213409361770054655516711199268645971606982810378717822464672479886869196928818143748103288934978642242196776784571159123098852604811305493439933302926638421520773598476458780293461580608200975414407822568058813706212920280151915883887913069383195999746201620423490757319981477058296484274778591623600219731260504529211027700120410234181648932736576374011263484574069903021852004706799086929086863825198679371345695234199840920205445115075282519773751420646551311538566842352164754572824567886963862991990322251321257790875669291137985994380186374112729138293366790592131370066636473145568412433452923899634192548103703197077309911030576340335533837887445512424171973490363571528733277032338249827748941961788303382555170718725401847387937570305250132422428994800471984220345363863702273008348425445275929378650135232805389180677067419973797215698889723861113901943531047440743001120747466412675748747594687253650452992206721657149410194768597974515358404193752660700152716962209663625134030220811520258017632007475333059017822235377912187501011398896664332195419284798928394367005265130174250603773249459530485265000015308088485320967763700802201741873105037463335690056396822424927214108161061763204407325890915846821232686962426677784098318935753224492967004119494944889278260039513030275176502698754512554534244231935965500365321893049575646411019847963849459780437108288405613277109278861216648197434075720624659453501880828144538835842761405453391653380936980105741846978466665697035146586800820913400934708011759001389610629609255898442477516312979409209242100175750341050554097258242356583612628405431492680395707026862169581166244547110498807314075431571701465922467107625859745081138663727544065153892882232432537462604477717387367361584122748265431805965328260027062478614289070763569598808557373576780765737377739383498122724232102805890241001465291845721066248227807889086771272829151972757595584881266850958042885011143674607327926300531899468910908665223977248444483879958033287336494642731645035367870604804315863435236323000305635643443833908118151536697487137315379899750245444329902142057322785738418798748714652129319582161815137924692554885740086747891112803899991998028579227078817536415513330348612477581845704913683481727439080885368725719348276040390703393813684563995201774795060413780819047496003371491484240438684337937335155230725966404995068479566610949431410465405507517087389064330832141512489233777081443022714207238502893604534797509556163584192369067055182441426374666779223022449720154956211613792434633421681346149431636768483281574739240244620914059434520856086286175333061010567196467031074376451822359994726291376442592851080977210940516832213156780140076940211462237445187627687312999961131148731727884976250097080640434996751796551672313375657500946745974365608284268571943208195151076719656085985342722698697092305010561395375771955694903601401584233584556180849272525757328017473365911942105563485597471192622498093212494205247771836451668248591319788005953997150997729039371609092260259504062524123555848452543093945055618476977501336807085962906242213212271336496107373879649872230480887650056620317634840594690723325319832139910787608056481890344387178432890712237307237828668266011572106772898047517745929473890126949078641831745972309546837259003189251913583332792272287135534933495721302205056296162699591586475386524982951633762471977670997016316779819975662484947628151932710671638461090183927550982385626167109884793095600749313825956583746999374868189550149412942579795702011825741885572075851560711260125427235600279860854812073741892748079428792715740279738143345349616981773116398836641947770428781528003366094089106471590645822915985400715230417479147021720478656232175893761151224146335526759057723132225196885270306690775993464292558765205567726654865296905860291789546738099884684236039591025511550469471236459831048901040314590942675247051329755401247017290050057500939147114201071540908581159966376594911358103054351379547980166835480710882467440710673489655366123748985047584069892663764759673469986453171318881245653853445247717992619387744148092841170062094252859671068938614666311366748589356451035808686382676771275385553550683701278790394494375831255569972732800911780806631479386065022473169351160000457553487485979249446541212657825820600436285743685071486199697252476213937558050312212617970574171819563249128133094255636369207697551481581425409945231520156124233138277611132033398332805315290326350902464436934822522631844794386827663675136808678455207986094530620365740143331530681856489010792539603045875605031037706472167574632365642478032890100650204325568900660610161895681415469933033256375071920017258395777189383595935724446316329022288648649842597435017761698696797274293635909851499548695178436402314655390075391603763505889210708523521789401412430763388060105579124449862459861000638365102401669820043386568905426795345600323354537021007791460333019739764007205237894016840052523948130262099076129951807247147137809184468528298608389397784457120204476516703088198480074797766543407458160287198766358072664278526147985772982592847456740129590703143601692837802388617721562724072957999672383163819173368543554923410610368031142185296145833876544607323860451094550321648809589647348740804705403601880044032594527840686757497488309561296427981075429998924284027038423537063181015659583331307359379841242266245217505863478826194853344962746632488921241284946959008417117993731079019675026098866532285085963839177051186292618378775161960255914971402135564106705329333538526093184792908141510315870943058613541360055738339986536847455400186365619039327401621212090136600094832030788605693298123870713985607146263806446283376451584875150087890915798573375952375326211442917196657513513723437561964440534384464603410701690879590516774317197105806993808862509170304148273611680080148266427093054184157051961942139998481422465499580702530398465500490742313340595627775068540608403304942224006381310957075326149189418249178225921346160393362024014079411014172415895303685483309185101136743156357859970743113690241280970203680002420914294708216008033495585491309913162278463126600680443010218955735684083029887436162859233974322354203902806400919870442745426153411811460215605409155598914232875434703314236445583979081032574045779264240609121599469704043394826112846680298087123092496147585724587163250445306371028841408796028242019162872629478051530589454308756063030855745414655842771417305236859758436853424094027551203251487152047664591973423139220959693533769013765309704667398092793746011558055046741216109291639224000917073748710549340581545269549881707555128263740836737165336612727395130106706796656838430704469771104836514764666719694846512071052137629795851947889796464379192774049022029844855735216248957179288007550700911494575210621465963780216692335311570998089297275511611787205884690377906015258838678500212726049417448267001439305618468554657458696859293050561410495471061207314553342096597142183448575887107303299035632250974050920036629760409932218717429690032961194891267965606908023721353069701279295351956170019640642799507523840529471197780157180017923838521794708815656018359444717700341835732827603815237841222562091268514500538452294408916011110047074072433096280993015554103688715464635461602430246754806894527647829167458166913026145022218279883577168591896239166862217258146396084469883504150233518513620540734081250557467173740264423001889230811532679224134061889192632387315302421557505873951266644883048085937348158187213848323447289606124535339771405264169832047768327001363341517575253049145190895288768719049449778619511132524446412714012421779393571225105646595970596310961722454221034897059438247946319766226769745808877355329892166106170445507147603840555052278806419795438398916329881455045005095588636217646494267544576773906764831914368651941201600587043916250316943494439698720135617390344703924734420462070643041493353757526280243342582128990767852313840996544815685792924671820650448086328592663032699974850521333948976609683836371111604200084511811596734153390011171877426764094511511983578555406838856143877566354890862713347041640048158310364442105800560928035680441105754916283401087435571302710944877202874832565290519335207170481121231863085124412792064337436818118940250051016201491122292553979533995307578988099304885757876277751227670346272934709145859507552332951949036602688264357515744462805698835253147246363595875218077006772855052273220319652417196145624791265538576029116547492402434073069061440367817663844537670335246515970201427011303052764760184329033448428126571331231507399680808789910563098511654811122412991553281984810033999060662875971305227303005000383004700854587081099263430972269797763519176493084710442527742290778629428705517771167585582551030788786144074867502322220126733079143353853499808739269138610889066180954569001838113834844177904475572556608657802208927514244980938631858066051494061052339252741568039935778718493436452216061186759135478159448982190308090959214032059802724102144505312565370659183734135275083520037098556933438159618273621024290193248334543824599953372204124564550786702508296654114052864831739721899410574135007880354286565364497458394984563266992366608269134115397858561917740387221486641786960080201364499724484843027084165750809941580115668437135531606242390055889555777111937405573794411216308367998157534114992502198545501431664294737607976701975007825435553077182954469624766868021138885899209394420553278957201264986745119946833861722558491106547626882843436831373368696501912147686665839905060715238597329032909240611208489459213476210340132901160220039566353584090564912049430859536027094203410055943924752567757551032614714393049695252049210640720293878697847393849132628165477745364013760731502034931850216230834716586727710078763916793987894978581211380358658105070553175363883257180080962102278134799475242009754669230741372223079554129757774359784930868212054757380571716092884182624441616541161853355360689059024689452029432974751425710525728554039447194330653104444928113927434249295582904110127761721165884876018986933759671242313399857631531463752861501395817742238701817563560529246861931002851804770705325440309008241481684920801753597305981689521169627178619094855122088770611126125256953559856443369976401875462474294937150390919761645900503796980471619139325983865985925721752072148776439824430859373358949954851984380268459980463212669941631162136851566559455665535537018964912367493586712796059033184375825470580635141064174091628046442413662650144955729582597816970656026081055976875349827165918519104753269492863136454342010814111808138215801913798392443838171742892621259967024692569631439826005728793228968804817018836442229400953735655451929277293508494457127939820815580018960734183231836743567142223868688062907869259426069319815301504968067788345589199515931227143971400387860577652631381107418316259591324949528693375502999344537863055268959967694134107449198916727350132142978644171170998343978905498752152771759535190997839783968487978817076568963004562517909711093096498191099051938464290116133664243717393710523221671148257460768009438039113596623442763790136796427753466507260109968044954402455241386497171843479604246554147662159767463487483317143298819557258942633937946234654024266532565519520033465087968952102276362217132921501708814345204896888047674590917297670087136632803252590992978997343453397276413646293101779757215874630842212065751588923424271167660286362872818064897405873532608066222354721116433052090840451857341648609883308530866476390377479677088265824517435509692239618009885517258243808266659349546013805337538492435406195546782741923384477901802610924464378344667649339979187377016982925663023049011738083994481311630940556520058556822523943134215810071455040001632312342114512258886017781039782552799759995216652190968481875262321437000778349884619904792359644814985195541057246687077633789985589011421623541019333569168138848488159540560915887490236168774152706333610779273391730016410319616405654937280708377612536286072912934522766860951522834231126112939473655139843929080503191611689886727209632168625590204530194513580003234615398408323098888235029763043346191646016196199073136908014117203050529086985169900447055420067571768373780410124376347690060449174480368101588309370069920463705494119156129712314651136336058428560544273598161093043049688950666413360115149044596746958213331776900757713469120284084070896332824865326163985895142790494719705720464879420266531953746487870026495577730530824171640405114480368469220866188400317484092793680809057925514067603470966533149754804742108632504982231649553502461929470474862964527075049023912852493405864098686262911684909849881231120214364710351546156305341110069133644846249551934995348044530944213685664745496147306858251747246045764062897753011021998852243091559127370543109409073600960388360900034593190432704634369463673244491707124835907259003169408877753294240552264803218708972939439008493407599648539854190377820732310600140596091415329120198587225120405381004553630498610506277930612439911965572086542888971238763315860637190686959105110862704274556141961882642929681859045234915768171080502563207296464846481284550551179887309240043416649513775883718759457968664432602827828494979628279152913422584444307143547074674878423945847727433607757600578181441703690650172941742749856767285868729972732157957782842074143568924460553372128539185222534334862569811067867390548811679798300997095111134715384020337585481223129136165970308704617000419894735760682565045962990990631543343860657942499413297727040011106143684215704595379602381606535710407151299485233571577160574686841689478455489887106912383426209565081409728732151245146597161657040735478015069952564676995998570796875245208305821038461202185156537870093210172373504453351453759828466100950208739606619609023936552508393028931718567029692827314234765773477704032338951277016611771616602053459639088473467592722449682261252873271776087526523089143947161043843298689594252487733940338700446440633945457833332713859084839063124468812596409695865852043848470674153803493062846864005967150513700451056962397584186502986268238944667158701181453981807200599727916177807867124411807978893505832985553621945837039871494596039222452014434206149127546242161635749010850849459121639142020174849016094370605294231970804167210239121249585367026634806740362214747149692759809561487526137531751102778900122546055913173296740895598345462090757428287559185984137592261465102460329527578426376675972234858316091735322860528089133110388719382923364405882022192397328057968645997247400939494576666703929262125562306717151767301598224799002123533436081045588166133870441773605812204064822414453811842475032736832297602722906542237966051514361031943853317592124373300091531222046339536309548140216224953594740885360047855956882112403376101621760084863588384518177282633645095300621032386100839556627490856352995920641854583834182063911652019193563575193748134471703760638011711593115913238605498548793507671778236505612104786964757873700329399232885423536753031321777938769633792785169509690002666488142652618024807795038093019202683294373494709753012128235294678409792519192545137740666001575617042549344300024468516226815230014929953003058102209856871975071128542823920774205312830075380983631820006306475157621063811448193695818620018060271571502523286101507628623335672328934823188202466596544702713448511357566183842106144817208217543258424652017179858195258831794680950765844405974869224568030360304003870987446795131160351215476322500416343633955833679824168813288601408839210973835717990512549163986824391868633298729279651261745451062690633586266264560889784369255592529748977477050495780644327694869371410401041000719374561599386611460927572597250230957901079391505409172711127610124806592261835069257912128788432144507154116553526180252533920503330355218261900924428851963822946416686629365677538661730111542203775340853754354111653180479482867773734769351510822403262145173332799200820396293455286403073441842688441145934508578770196769027642647912447266402286748785763407842204062441213792716681931974919367035797143622719101792278522751069875327550913744075047785537516042240227870951177366971411138820059806434173692006422883131689181456955295503319408443948264985770898939826543726224795065749645170319660075648338467152093091901942413488146765924705855306679380811845636970696335760485143798662487847505511772588188987381901054153668755573662146195551204445603631557521584968068249022305466151130825566891406499135252919109430149026001783685334435491704959536700015632890935184917967438139209178691364347195015840568360944547222607091223678059661646203967037779773237660508221697145181167771806013503370665663585893420121262208342976207493077148001468535902890109687772852519913627391180787641044487027229425545125279647502497452635403400014337410006345792317800690079185768748058294217544155341975196877710489614270824267460497043964237060177520462458789931942406522392760139199058934235434386695365074891687380087877881465098262808391962065285442970802946080636624708608031910616746909159396166322907890731777851642485437760320384167160821892162037070172843009064817518204995699254495894558468355132446209470317668078287599423160583647757836695939011130607089174596757929462132051316715599504805275763495758344168809032724186470613532027962323088357924382088461713994913289455911966966111276637139871939131510511806939372767803500955466128319168789979836793526779510835234764618756764885508203062596561661828987239066231019192102882599252395031058570376463009569146464254997578634526495279593147310058269928962940479210809514659135775575982000240260555399405838278094470864408934788734225237810864952165007944125810938917788011504364712369001084981587155793146446406220935804258238837914377731106486347377890921539145692830895298800960575241048771905518912296296244163043473985814696529516419951884294453806178683581191005525604347363041756779766068511363102577412156398915764528872658919261129763180251359385256327044906054030446382182528874936093976169686434186211027242516014610396066320591931790112988286606412129972550968340316189028177117370141595182084088546907553704044608673741456802015627199443641488270677586082086065031158661350111992842861662795520180424229113768251144873592669495266078063730035528513725100475273099632032135982131944985446737873242317690291891029228715014718615532475769469812556205357333923115125836753238145718689838882399967413110748528281741079625745209287239563458257148652382470961975154996816181709477006308971266940895181886646414566386995130172775021811356559721218756705794199509875197266449347460439780888007038517847905674868553947945056332789116167770200006962272233616926603154615601216282594427538122890278981378348035404992543409027732336802843272384252549796352505436742231668426885811909757484737359552052796292853992843601716367624370171898268617465821407089579107743721157849761564108045973187883907301272410180858882678160022012449082743027466836623000742430764931655116675661078389744351302632300119922166697273207825265076672244118277290971696484437521989545672252358738038321289182494340022314164881386299008911363009213549056937274711983834570442202221466719304385385560842436815328220531158730502498657359654209327610558789268506930084397496184066181798801164052362722097734882526161036360632365298509000804365364874847766365095763585017239350096830340148515980830709745174207741749475291570725324929771017091695098114269459837620535705033130535027879242230728083273791536619084686529504295720103552215325552323158911373735911184461701240161868483825527060588577446057278154415633145693674913148389485778679123375477913804406813693827452172652431093082971666650393109273667892699911542979620200529015493965842399623676748847713570658970527514022572786839614955062051759522095412694631862135839963656579105678644998226327398756441501813602871851465324801981395102135434261235858114774501698063181849039022879544699094818205483334645704106391670754486340439184228517895346535937684152269375317784413137096200492066590411433191213528838178385870558285067458670586164733705143062711354301977942379247563986706253521565228737550084576263241300265721447431162064268692939789386959399745644052823310732313736895013850600669181618306320801499231631893573519481186412514675196207200500623288759171352435646108777841185366890707778955165569056259593181985482011081935873998511017570285741845502775111302068170202188430942783308849752643928937601230130227279204753770212200463125477959657680310946422005428980256644445036212217353890431222460933860019928598815966914272946387338981983159107559096855056768340784307995190655431260249471882729857565336223099444518788092573896515888145851438275076394164241597700633653501584861867993883261381723828710641787965276004949209396217400033492389561222772681891248445036550370787151042489088793682754460034328045208486408427248363075883900228888917938075470967374531635428403026812133129095218881041233045169035177557932890034600958804294451831805494861034968677116009479411660376739113380902638052038907142414811273315003398327266281670279215053873819948323657403772029616031745319260359659272387374292562103958899953078606633975628326844290549543264410647053000028607403216090699570157166307690418373747087752688911372151710785028404967164594708130290175588807175052416356652678081041715441570005491707825927476361920520374373206945650914029029291679037294287188984813740294925685417348163736842547863704542450414816083633739125384573373175454299205819398666013824075512716569881485190064259930814269832969037052336518113518925104710244470994520811150479112113457670423777909725706662420957473196511929158503822372402422646345638962199376086368610201088589975208333354366942314419676549245118936983047193344680199782036923310435013163021649230015126014845628890067815110399562067937987172216530589859114238436586309024017586748212290754990911054950614901278252992841039677581007196062610645203580464764506044392867414448755253932894934298328087965051228608443049847670326274971551311261886342595797046369160686604843821703714125107528286983495226700819858667396652237764768490164628292446355068200307695143097060103158289280044386511802526572905843465779344842132041008971125828139104978461816096052362619037631169944599857366973594238311441134648558334609991146078760315892431167488997897468313250707895325751767629058946808329241047264088708174743775868666408592276029973940890108947419305489387242396456600455272140343326780905675925207245608982129124634057131320771278219846692382425047871258077417593410866242597597207678962976202572044115541454391678077079497485744725941646952298419386613076871866556210256310436214090791731755044391026440825134247434648231299999612155414886230977104487723964589568263849477834373123711288618982013100457912931424673361223523646316457126231354957394674566854862419463902811748749492489949246385233468897207796701535126074191310869181619981162904432691526265457061985808436382687303519541185063373646531343420255995967753482631127950584459005129582591732780446966242824636141736054579032820843639289448056614717888328566669509843401240626574697820511672524037375683804857281355219781065552046912209334434014437820849497665615609710985615406187658400330594849351017174261713733279139583360871960819132495398491049527834554496369101296466049324703078061051616414701607625682268085181001376561423618700129358850580661649703834053985481905496594583758927689866704603570881277475366757684726702823263024855300045379675513504921843000551926580097759761039128341007274456578698094999210598581527247958656296219791608541812667397310253738985228812542053366238281396268319607273407602236611880834523855294510418504175512500031176738712469125594813189106421714129221824039571482085464823434800305751989184763124012687594103253866876098061683504275558944120117224660125201683527349724028400097206537554041901383003185344813217093848576502585245679934791996262924511359790614513012555944667177519381985569539557180454803059790465289436872173287532629202105762115385566573136771516750922841564693520735374305786121842853648763681073523431908820872892333161739020088639283042473183431443642458035945996992144203742570761442706655920345176832534406139754292743027687514261411400832648845748887283893905968724949807966427290864648048782583499922899412125989119859624488858918534701532812379029209301845794265741732961495874267151836763208411579065277251272885744753098487796217005608116287049202255070561366543865941208887034796132506119634443008259709092492364410765688597422813445138915328490592366456882724816846612704687879279458341538659466152609801746925875682711069344476511504828145520987183683843873299040380851010727818171197623868050923962644684605074749193779249629413541856480119010874423299011530668129672581733924890134591280621566418165589338468074004558168620154207707744907699563737498441487269178152359371349715955084434003073697964313688751944556878115172997316950320879234006968323278502138718269408890456812264866634506149185356755976846561981404747509884653950904013085909794366405182361743222793905549852360123789109937747312599279490075670637668064650892836040675655285621501928687881143784740886235517099732404499750268678798555220291345200637888963185120973629698354483987553161941978525208749727292579135280413138484664012975064772605319174608852684644837640725739234040082406793867078686818961243859498129240027679269440196130896443245105436421085170414633636882703784831703018672582302011851612560353966013795944137888232396707262882150839504969987158022102165166483979663724401753069935729319281858254922346818267609521341291464169801560991449531137199447155784820747450290698484746282470492446480391470089593288366512238984494275071952653558665081424624507636404262278505301621111772422339311612232795080902709157560927222756600836598541729434376907774044815492451166139241058612595878517904658091204615600230587677263616100505290057996937957477430118922130484941377506076384824825028467913073299725229552063226540351214659093835392277777758579734280783101239255123113016598852071786576316048678515496623819834773009077270993302884989905169169264514260323104165123759202836641863751621468168037115369521025496692916768714944470966687598095964466818525430818681937645316511237739344673595233251331146861958149653139978747172474485305625097202409950751683963114583949786155340502542502153757047237777545888860917765619274485455408095769735060972435225853925083499559791079705774819762211175241400385366299628473451593152504870890588496596814954939755967130377941593138064297889976572969909096448134393274753158521440565158959526711277916273849252612576501654705101535953946327457450575431361309494724677685310159072113386265690085786233677241824406743560491378064934874941274567125846257257166670149938291183818278241056117986571425426555113441218252720087939677635697523486587043722338021421320181349442293250032724194446061796026430663655484193967285682045607934294540408929739892362459319348670116268028294038127972264637970527115444219874050788654137875847560210159711364290701883968604382495350884739534361819151306428932665512059906299323368284417623381569594543779136595401137140648383516054504854161408328570850313895660885708517584859561496254533806099058357951960539998039022286053109827003757797159881503126480146983790103209191146745650256334375625240990734588326133386760279312884028308553693286813996354915391406001765783806262867761413330250136034448551540954163163819289053845741816590869870730205371236732193303357991461105048543079297259521658069677910755639790377994951797296856180710935152737381380725087739583452060993931233958070918222042922466811988117907105976009781478751235232672500301978829466350765423736104858684959130906432934628524175797076274893821635027998341433766611835440578654646665013503292514921028546646044748348961662205971309722914694375275079422762184230922265418897628684862294442599139175550849787532143487374426881521448702320859909690189904175034320722612081060949726952932626789649919879596585234085914273090619315602241678258405130025032747247401280411565379536162555303152099332494705385235965971383371137021218437492935891042465344664254076793549167557539535569374744453802251288509103332561278876329616419005584028520689501300693532320863725572627103130628981866421880705368983465266683285052438548574365382324904849679786157028660597841694755875909468532282398817036451970274706098920529405531132097197862288951238441982262021615969280739597141406589243122169115965609636775793502196035500155974323371906256154636474142629037930288318833832468969794269794636208821917359752659131750241084437685699417085298843252904464664330396234013858815071333250042867285616511188022832361687660988612557326757229719953643956432910894909798855669031892248019696814581920821807964840315974825955599007406230435567532516547581957478851395190346718211988448219641240232103120633846856390293442812608676155294717832622678849701873695814946301484321186785776234725132047252992918293882373382021081951032873476432654329331594622773636092268437627348123119054984440430890332625717219654159472794342819437134483558972298698638249840242029005175713402845242341845833161420888814516019998075067943370848601974781018185345091052675624865476615463393495326263379604605061028832939829237751095533244965232014621579403713090703036480499177606316294491223832766280938725975097241209537041361597585019324517541862548735263769923937121169635562261077606863516033369963309609585431550184319038986250792917464792631414776471544830491036538318397173310529577958270316411931827993787788446093043354490087649460118851959147664678054775470528742977289224032591542522566945126839798757399148321600839422719099595309937361002702425649957442725128372193752317290897800593369048972803609049973267615206176716358731974030351828839398305435830260127586563908373714755779497389696031745551076751875432626540583068802353565288446955240338195377137786740294777695387166113181619224043385593640370993973372144209967377486172264609393455794716968380079368566515991652636950376077329231052044598308712061387534878232085448327954545324942979047222258899947853075759362327937191739893655137115419064248539137103996553507971193654504309274952212336816086797035848172139600206734569871799747612656178524548281571362459739214950482351159436592597255306776027775390965182960839374934788363729811968745593104344259416719530565391272184586816204862666904459622011999018753031453503319146645366910106961453327412122651120911921938270075555650808270324444522673791756879416511737177706284295333827749819103749893089342410472259251983249781883792759179864189477594345939422420394690802749258895920315854535031487561144486959618899009991265653130958714000198931717309859449573193979946910876344881543569767833560022021133530622171836047942976592622385678269990063570467488218740544577276825817820165114501772085901053990055210027652871897098069911988121630008705366115341512314369779298854553837776475366927635412929875239042633424491223430659847042668571096763766666258908961985221830188847677435484673847782686500871620663105837384813150863507418753720218444098609554835255428866655018539401109334873681478765930501343554118283330846688979844604462734922057181544474646070564877028071687718573746523751227588501258593447191003368664502732556239821006508540613944854225104976563646524352441913266501633206222227604724852900940385804879383801511435188764994445566049060924811913921177008949212382800386279815244081208292110804005534157129040465923447357533380611662983112839561930840517679748697544524923185192366756174841770727526317001958012581685032488602991147028546288014298901176173326038908205145443874911975664187048176042669040367100879223277980438598302565061705907701487801658789795597165902502418297281899058319889311578511693782741469367269780154150813382349537599745018896654396906032117802049654093030127976282086173831159689706268482001012520682458125469745346751788632199159009288504955451973639201904972539511591465061215715413553435765622022346721829325063878775955441372849744326253632909972158262832887387809241082552866824947595307441572278355840258367122662098610397581088579562656643460324711430244700201977038097540023877090189622152120238552400066897216997529936713294989131852567041997123325448507735907822487479217663277226638393528476111202893769998088549912693215578006278055664071507184586547192584006378309505072590356078996883727149510348471860893112107479595655401393913962949620473687871104967931143649015658119209037677303183436924507334693964042981228354188763717643504170730362876490678178588161939928220190396569877960416458938749034286165857155493766970121910577099727528959496798732153198915205952332376245754188309543068273496591723190137296539415304863899893480448006772764871149351214741725466557577273323818200542701720669411984989958175199779464839245221874619758551610629486266306745707455105803632743648659471009442608902704790979205152072744939296628211427335232994041284708829225662904501882807787370937613458181530771406800388316333155609987140673432808298628519976954498430056307451844375196500331369685285698117453508507609688630147113292688926626195056013783435711121221658187094004615622339097539714059971022983851122266312246766080182584681438149066520817640897932108965094297979784197092707218150432084634012109815858053705582401390582654402989182409622374263665764327277478868119189901201507506297443527233108279521008865429831657255601173912320437146548044072664439092451367056908544157233328371880865220048987163703789361151872901444709823642547615748832000392331056407392186438031838150931793687367344278165627714984843677711243682290452942804512411807025328985848606757367622916377765633787877859643361200268380603263178802182348141649237313069747031390290159873827828212110087593157444359604162992963844688863706248479876414256336435097139402595294301068973170419787766621647582578407283421739592369387939214202618436956196438129541733506309560747043818825888475181895204172378339933541934882973949366614568710508002078609940143016325550093371892307371264911076515974331066967727808669292502573899220778416869649286125993698079721530090694095945287646029698394021918036542650756797138023578794900329628577996954064413478380277734030316378434620495311298950372673929020922166489033051463762715242378661811476512417426755892440549015520384259962965447340067016003825635449014856909534120733189408913542565695659217228214655427540427108411036540182527834201406852768837629618044339959598800981585508396222468352287939118084611794542882298284562085126712158237419951554436146028886461269483111208084535027216487668540314329869481686523131072326619788338012648497781923174111370823928723921748323586276342044038820256272070051656024807198863701618090649090238898196570452999251652347257557632877072696760464655701914220532215624378435495609846100895520764426413143255037970158983634566892939333098851012809370834634728377773609096701709189482290933493341991162781971477183147348256482226683702474488994911592952982412398612373008119642603723079807414736628314232487795442807788782145651131258791508332959430113570543862300298629593595658609113747287932406929380948808390771923115522863827229996945222267857365903258776610319661452871311857360873374799829409334673104954377157550134730407246813376655982204156763825324684757660950852412653175778809425121422980582884397065520037794588646025888867437708830326096324864389208160519319337201937438625678304433410896627528004265974168341899007216156577891370258927607075035167258624532074814425658037506550707111260574735933176971906868424158149447492181844232000952641728719081897801107443084636533661841694609382859812747480458691051008475592319931556745593972659590676082621479840927657752286719927795868963060260409654426647216727980051188704031577418392517678172636273984880183028028434933309989028966554094846931736353448405362005394571996572103857192109881459134072026501983114518958328165230266495270915495778142757568259264420871082208004995895111715740432963651915629446599789652879691963856659769144791960000742027059939627148751312091535843151029592750909281282808582001770955046573099507540062588596983788831073940178759097827400129089582897275940345514687052207405473789001913095991728917483573651843269395030920532896920482437863616061206449783028916445132748652655760252656998051361790374315241622511633099780399949942920021502264178835102099890042758832837555610734847110889814769883085995333205403721713665647457712285734077615281870066940247748198912521302466025125716957275315692621811878169418768383158679911490265814580136732369710636376368060151294813169943746994670188993758642960210679112314591525067266774612558310426158130814339092444509869775875920817527193125936820726243752724884570628389948259311135677630372357313034254488454780816010433131091376720038133212996614874398783898052820018538595326377946128971663622298247447669848899977772090049244921793386383290024937858297454641130132177797362091952993881819575650659165980670978357723428117143810146597285857362069996611158855024591509041924172897539306541957934547611107420188214698331562775687573198927823492556594594765872066636485127071808902839013395397092581580290964826177320728191668400779286282857588642224829119597155250195534608214048238250054574589745852329122810699578112988953821201578987532922698308359584640190412828440094217919086666731581958358235374286975574777150308996814828170386466424577931958600725183249622526315727326332520586322815758955620395987735580256500440067269428573764617710391702352837888827361187518239244572991757479135069874381694621264080694866962615215304372847870679295524634754610431846529067107065914110739117479726833150265587651616055389425771987852574112138805869814994969075779507728436300494412084368397942478588792063941971373135539472326925634442867457083698286855684313304212462546283763532983783355099250342600673025797366766757236789411298383208657531315389314287579353152772985559865260510403075870899927565632592034669767126054939404800334574941890292786818734757036010019676743364113001223596114638503949168571626929430272643658581858577379261588350413144841083097618562046137221723860923256707184509903556008610209063936337898657123333526306729854769295013214838631675502929190691736062856706555756331976950597782232514679994753589107663218234206237353849652014654049450963306398014468097740610760769557312049785187007480485160473403158342427076152772794831823825598157706742896115649231460315384755145866513585567904334070190646105804558978206933538726527224950591913107176166300120627288941838074440453426848359972995078399616046163945657859561010315337734629741792024717492192450185110527783434772099385212026811580934492560848648024566003953525133060933193315928609507213072343221281176894273712064424510021040060437435864542630466963934793207431692249900948617188459805194198972118476685837588140319564630513869011948746207593526121778569637335328394288551004818434608659401086220392208763636825701773802536216342030546249646310764427200051672152758082095000322881591887841648637033132305729791240402000944848936006721125752031964830013332811982727579815042509315941293145906003888084758918593094757626582473006590148098535423477311319320552639323130319221667404604210102602255358151394593081189852341797714704204402945825715313934008727854557790021252670287527529927289260935987717504970078145172069047489161730211668651997507609008463598061179732534031077601887877947926028782087606966493944089419747909849443578278416465229528746033256517146405747938229604170830687248713923484849921583925705084048140562959181511181931324942991790909532101635843369260401016717928198463455279149527740395326762266003994286692436596480558607785351526519006988574650330411800387451934012274455281029678467766257424658089138162991993470378558763019355972945028734716166761235129422551521384013398957602343319944179991258196330940858017543573367534579604630027358297639920240532355199212210109380994589791700103760303627085015769067328094941262504383191793765834476635727346569329082449100300112319649308396822664988277384876110459895323621913265976969589574129887342708503420318696566295718176521333352152537409739805166481549093908778583244729745799084136575021797621087981588195349810334411780747624573810127436867709401081996990498547719647689213145091842463577556671825171182149192968688582153465606331666933909308879774789320686686345939268143429320875763791894536747405520157498017787132004534060428178567969368126317615611120184251147874921092429701620372952490703656451632846844259261568368008299101363718444737547530776269476553008615096707741316635195224264740661960757801914162537870163352659237598791754209278530126718823796076022566514029575086765672412806261360756763039245577645125893599167921151774867223852400495461701450149559867367908112889112990215231531595399906810599036989219638868894679256221420591572364634712981969901973044830915783166763820150348137277880081635601363620545535139024811575116586776192490541543826542745984528398196024810745838851202017857150886592492550182027915649333880228684776603245221459136208661567546396570980724779265430398619600607452704372729472089672540955164211124749115789150479007684342002599457074377876328143254029727032339672374634197125704152588060442049570722601879173104455962296522309920734400969670127466778813504400538173105941722056291384893918063280761545869133528319078373568209932206358026753613447764837947986114947272120927713665116595804347364758390581247796563557459052817181358438584243839748501266614832500034269478810884415661934257735213710595600816765236200897414901107430507390483776367586033350680436618428328973762347813830640477179760344163383084714662437910772502307833378386179052327638107745579025693199616543786073733618918486206263508633330531077192696738427802211374188120591894561049748244126915476191784760478578630146783167848331175865859376343694632428366679347238188511177844692190115621198568673595313731358519263288786371400606092361857286222760063579480047003370668090402685448774387311345743391459863454846550377720987406940406280665542584490257747432334296577501526562806469924809553254267035440905626651140153619422515596760852719358989103065123706198459201329949007642196826847584282709478107832319801788484252471757211769999473795204877505246836752630170386449002206446507877870345855222294968562853241705387939881425475028384778975318716340062948858252922198554446102131831224214964800204221899646986104846120594028622185193654360407768998044036957747756689455494807686928762736322460645716415459173448449898741405223069521234095701847730011680698946467497016646939245426417322162570398235532424998130881759310209260688027694189306385405642683115470589542457978629806940065004862614964469305764441353568290344348736480858114534399827096484176013754276136617588940543655183644196233345720199057543757464092908408159410112417938567370153391265855699254780285315288109872646992495361793449515696292352060988952090763349218683449384782791785355643941813951220875901759047907039080373170411373520216657825860598982665426458639562371070601562979950783722891783693271709132788982184186258276910169916093814059728476477054024282752229732127779501999413975018978106488994384211902205582668148498717135091847350237829084912063213587087100135049788572893262119214353730911900150311342167250164403016540496017555186521436392762347361890615438944034578206244125504760287006362169658649046296961757346111073144554556146404914684671674939297739246614830562086756504215466729003033758573264498332911934984723569252674467667378958573746115836598803404463068491838150196482511695134792395985068345333296937797984064422961028575128359343185085434064120771811255824184392902422269380841722283722377835394275043835004896272901780305799077143004938908334056916369283230526534575443964340073571080970076481467419050244064095302157760891468517796113786627920362702524753229316617801368741491594206867464881677559124110885922221818214238793456186987005658114615781335512258251284267896820137572351894846423403099204225705404735703043509952239593367975951037692396646166709458568448985862792590110418885772548721449544803595534187562454602929460679414011152454276485472207121876409643319036088613813678478824295777394610348761909112948097764462945941093956488797919124465636995683996706892674662481532467871135383082115470144703337180763572050082586249699650201070689032337249790979482953745588129155563558452923405978313694014822133531785784653378546309703026115302797435058245475103758695313482235243725953884264007403629333566828014123796432750354709536508739676678833655441799514139355388681728309419875672440828142650349276750825405214312636278331318652256906064145999167791277436257890987680222734305032854800512153764797613601330437514371199269078779943671316485427868511112777249753589636118521800580272547456215250856668836635259407823499069794067291850271686824749171816968560586001615831987965440560503251080612172720718008771224202992875750272186406904658796555822471188982205683689589135795400224054602441919039901253942078918280434448808464549080862677357783288307596786986873266951109986843508313032454175149391814121473754111863861398569171834434599054776321326751759065459063179992187339378681629770146432599851069334825072891364757096292570789777230641603320574426652720735977272533964536693195809855303248082706174609801931682729922874662770395759585926097085636713813704303198518349181313710804453853271004579141071105211162514827168150135645422876012373349733519462671937005244901045531142435064387834548578815441761178412815827792680339541750424959301167276780447205764083955883003056265824671882409325075780265053612252942632463635604672776331510367126441797802509231989757757150447814075234203812010640716549309294539507158192355223913043693752131146265985407794818842681257370295155183216308212485475170266198323170037188982295490347047179698348677945266121851920664937575890490841211954327264119740564964436130729160644310070700076296232430516671850043179755277355830767720633150794293950629839972017272746172947855184012668986219087761009006938698648018163761602851180186863757071595781783888635951677185486753219105669370712358224796764546005493668862760126900205992413714219761602478636954592384848670174000808316545224242618769572530378479012526599434217188973316684145050284764151420852906267083065479911666263311589441496272361333418350533026415265307947190930235820708925922132685592083217738644562845393010981936970610532432026845215848612557908976269244664569645733838354609642091316258750303213461858507911365816030623795653356815585498866401439278097397572807714037570675599573169184792193188188666577704032596747083815851864659180739460652978380574072060884791071606176485514716599580868661560007284623786385858787395104963964829844022604489505230697284231334340187844233148640628646613543206078959722000292670094559479101060893152544473708723927775445117316789823725962839581882267510620276767483823890174268206703987645841959667722363935747292567459409453731562633918850703173264829033559620997319668096228102221497027143371438141371820254129960175645424294001478789858405876072420558711045025186894969308747717016147132272929465804474622230823207554782194668601237448526382563308884645049868043813800704529780493164747667914731952165659093413824158079364190931626043910779089572249001193313487315426673886153116452742921691659940072067914585668313050631570190728825949164917613713114238982058995225667341764831828478909721132679587070474047321975248462340321080071784243870108377686855272859854271791288737646526626889715072826443893438160721329979624794754340736817812858445806144264359871155864507270195224833109725929910509328402005491028871289965983116025734098018687372752401348628420847241193798745349625945501701089042018683036479519061362807840136755040869511247169501374406011709179138456557746134109446060111936583457157311074605184597134586110978772226541517343089833282623352006641592849084403532071573833462179108684462278685916290612449332370561811151800370394718067932260115718686706078407698818657992788821479124194821339517335577363593721218583363671056413864314913500195313181876976106709829655909122875193144199728439781468389974321047186563175823679796329787543964071987045070057364544158070933284981395520246032959979252774803413178314594764484574446113443757711034056062396820075601358159458691658470661063073667115724611314561045096693945743373612106348761125908115144513782656019363700750833806285749454006023961485070165823698945852097778496887381989732391918692116397469290907656869814572235516578640005487403302046655626578232006747674267068259699410417122687106994612189720599137373477117913479851073570280243170583819481460008097261123668316230583710176165625455011822879201125401909163644184054961648603796759283296698255779192403037745725983647715008766630268365077701472945016044676406784028457997642144252523975942797650315704038703419016280239218676127903961058546702044230232229220950158854101019741644767390738902187523722081972323795302127671070824894052351553367921238971037354873706684492340422972642836961024789361490704008990883731029108888910740844979374388223439614686241708726377909325397591572093127703279617266440855747277950382622525813219491843844456958657966191029424165055373976124374456398184285564346540767360575082430141044139875100542636414765185870631493159493548173478226407349201221625774194499566619837087275188580532586348584971114190614312206096306893269449293927423670144299389507794514817543254576518077781619915461799997256931086051886478351112466106141413829983758427695477635739577846680148224100298500400299489682542915767847704027517918558585951526145202668816328195488841202364042898786324317020926736285888660208625978436347047305531895433575282197064393914437278246493188017713235254084907499335883761139133909547585538849406019189300442571655873135755096017894819747459637799240898400031181680546530122307608884854404581832455292516039402731823438458069646012905127502686953972517488834171406755513317144775754173764018822318057097305039412181624999913536861094290658056947924721813973158402482230220495133990328758020530777931886882453372703152932384343189752853661086096428525627485265886160548228285265738150275136481178256989297209680220276002001320929676563390456955674046799833011084878461985859027616896802434653351234544409199302510653802933718737254808283511275480250999355914993210348093145027764911736622332899641916190629023910325996107535402472641563596816856430042711535865722806005963244594250320571247125413759896536418492676578216628816429623589816200036746497678103675607352913022671198609433003367101382756866804209710237256494687253056048250127772919311040622032849295131817423627493417840924251020004870932192169025639301003282079031538591775385740338501450014599950289576313655097269535336324746530757255114309600864766222738673628671536504003217662951435506400045697652643295204957672390082893592462067052227450478857568117697757112336262818420627490190506261098469712992352320004288604406214545804346067431948744910589761502051737686180112695819170443666789198344547489995393876462185677868774873881737639257014879090297621054690356690363302131481294602593252842892864020030523700065772468686798285845612086263319726463918676177830204160367755248497745949059236907193089909354823511838548901608758929504804810244691003587333962973573821634295016952990328263266352227024791639600922552440314729762794084654719145665141879216098702905889287484749217735711408815100222341000906369992982610414234202698665219502573821051323257065589836981427731783930337854773061613664570655556505395992154936899779522878306663436794092357807581733542189716826880958253200076548899167396914689497133299771600858607295838270242504814949385779880032778417037577778217159085949984026574368114463530819319121643859195357433941002135195854261243555055517718896844182160586794613375743175033253382780561564997351661955967053422577789307706304810002337851554269030526809453582723807311587146672102540605354622707940810911803702033516153398705064376432433826463826268083456519798202938732964515739996430828960917246646530918466336326022107713464136703923798350374938663495337592398835644869618288985836612742144417474633260979031230075284632299982210975228956502672108927584334338646992989510927167913838943159716969667487998474460754954572179790116376018551489247185404201952023216627705201856395041260054769616208749473467025052439778865874898146180493851114634592520907544021912108008586847113688465299229558339723100367543675399071884990807183285210087828514753589459134361974996632132334998353445754565025461400525744675203800877587491020150341049544040829181273831108506634436848691852499015565228324451362198591686494709357589598552906972767826655315759758684714641007095810878832793936712312567571811900071351514596773077902610709341035798780610390768108502066739564819570435230232329409108144239059026044378831821483388255061007508670465017560015825902263949823157589552420698587629361423032527327707124327754283824889050685365896809371207390624562491194226692227271251933596007530142636626553111526318806873706107883336348353960962073706430631526405293768233596998285012010693473957646996796175539426058892260047508198897592275143431977246947288133946846143921921300438468307674248520625139302557467211023696291337208759792217092427589302212929050095768111495932783468550267036359672013733209143401838758498802411132805524083440014721979790970540247467039550682077938535375387605090134465623400192444953336392972542072033291089029600046849090571505725972689936089198271807118920561797189430750869318000253004057794572796023376073863857944717934531008188619771203056300079179664393350230329819755128029318086188787887721063593265097737844924448272612038431175716193015817933334843697248277212206342146338295186129533114255087601402627639483568357911251588764868382587110048180034736308163505490528278275838890201912033575599132721172560506709946412543819550967189470396619805858860766365402849844529109746071679769723118582324506918263786270765346817173183464744325552397338329299885296307944899239123738168150490919531462385756178375617487940115678699313950689116821071488716115873856647671591242587991145737115039080999859772853554218933338661484780291574520867716315376967415182219195266313306515730759808056368180885422352345226293656353546617400914762103411314978613198387680738220403148010586701131929270136090685116210066619780146948515574882832824793644260396156404685538590219473176521451958002131734166224425871992286543971499587583908226377165533943134642459722535660768912991432117592287387797393014722692420501622747416426169452000116283058032235156539209557659711169437482816886550381188957050989001104464442040262224159007200643962977075442191244547276391586125187915812948955791709707047411702128794010430472817137321504980110915451258816525145908457722371957698209198286774263820203187112293209097466431291200181908496398360578163147233060153403683040151974951956130182366433223131924010621426169530270068939951583252836796625659182885658384196359143808065330036380964834513954295494653107700093838704241441054082066595021507501615867701087793726880577508402590900963976220781961943061661900921650425349006810563631219168307579067504473148451040175920877500472587461418630648569685924469814278845196205390942040716528824451311292798784516352700891088879960323356533792367828455901818760103930790244306508090582738411588739429906503270952194602489699009911769431299542573106506891285348781328910876962062555070089265125336087289282245873854515553420873851884742907620335689589081026333541676038200154674113389678471394898883716801879286824835680011898422372599107526602841893375312812170337236887959057540364484051973116381546442272469062614807405966693916224850651735786987805788812664616836766027538509490044658043282875979310574762905967577782844367491908352213334659075146060717480347135920895498413414920579931333965807615420809751267301644248881465035441365582352257020128488503759035737478439548116952438652436934938294400929900652239564899718436987137502536877592397189049720300766868672905167949584674773490979529132812916562007804712418302334859616786757376829049316309119112522358812604807308775987003503264364649953412414199293635672480056698453638968056455953639702542490609953599713401245880038596251886725279416816101960919899132752311261872424332338380445147920948657494421281609609708467791583766551879168722035955477590236210374214583607929204150467409958847334087260301892613401093499088024802496711394625336064029856336033178581488385873398733452030234193822505124011586345466320277712627777447763444874486467525434609697931949001731268177646894452963596685514898138522092561443198902462644633915750014543964489920983589185220468533272863177945275353644520070297302724619150934527341869048781523660986218104085020206986577502737715577282467184037274735966188012273143256478497564366363886631424231821118929973382411019218251159240301047261470832020721052386912278509134797530366739917807217975704211893754706713470550045572672957239233798861730415835663040529355013894241134743147902103968725112246653638987929131525536894224270620904701184949838444252411722579004663234988030767980860772306345068803723652328228862496936424331010933169187280310427397835350704398230637482490876672578741719061149019872537756561992894524401403409997042013146410209326719487973323697977478779295776811368200427727820597320060287579648982292527632483136764619085750242492437987659277464121138495035423090870175956214478940658016908388458819850761967444114677184498161604616787367590606078961524588894624806014150131425199897980388045031980249535510283942686385382884551778700571641272458998969466632739796695743088977720819254029665479976006446697202114673413017064937188119255751760805681838605624015348126073373699150002220318428176602464308422331216247619628537379804153482871644985382865015344744349897627805603502272211704910345998673182820657144788290423194892603137319435443329090238840314151840150113197770797900412567725904717952324947116636764601001864504191657744764158381567363287312669810716294525485652554298088599000066907128253105515689112882759838941498275721132501819313497942014017969420890707498898934800886887604348577144729094291162847518992649934336575413808986420661023586686747730407038226379615849077888321536076850660053289981488712321253778403260929429147275901913979716089856003940941454267614263583823622752730579609276482720694313641860064489778282357363957463406797997971681251506346878245596126496183032456571834210752737209161203561610403035545416838392996947933500560058930137890782204155424423992253452277707312247009166279433247497288387174085647378159697687926036540092756186855621951220793737537693953976117604009695407407469883463107491991675412491527359383599480259884193574002885640072252028436632033323752932407241575686061789990540342905594709119586393894766384235503513901442673138230121673057590148624193329888564773423603716610250315702294138610602528994655650303451853530857699474100365114829101748796761157661726839953736379638763265831280786998481252925433248846958362361244225282960053684535408655246036401656832289571265400208282961433852542956467107496373095512025606734502456671357771264787463923181198520861608729266890449899666978596649884184761758035916038748170734669836378855190783648055370658233421095508561449834405927550226168782326809425612949785775321652796655554522396626110723440628492679529053139458287418256976744288344099825724750918566688318475988086926507611068203160617033590386258815301251867339181117999580446003322687723358406445113519605303688067010747257504265517842720219044544433683692022704161228094698595792327219733405827673614543343859640832623570658759653859981496748033309190940880010610723666386686375885170868704617058322922546514761522369584332231773109343978978645993238991063638372766656891278697715548875043342752793023765829930058893705868082973650323644166780210003027517168228218790214847321744655471888255512491812960134682446648536070010622511515011242146180452106003404396596207983399732342383952087740182652047695373486434645901144265458225708489594332910507982436912231042757636169287569874009801732206225320157608632495391300069014005690606144850762104704445054473661586103981958787230593793669152293706108540999016512057102865632125326922484008094581068972749284345387589958268218063750678972976726911196268457689390645925607081647856318837367750067381369839950760762697895074721189070529868627110455328865156640738630874668200916667880087751708688070457084861941562082592892940174380253261697138003437751425031538909341430676091729793153683696229691385926285624809823596090152627773302482192865311753902848881649432823494562488094224002103335824258833851722994220590552179025119415779127586562489186765079258310902881591193922890632189207423545528164819154420598131946808005458221097704030424068765804464596222860827210961239823034169897537344695333779349365727201363579321977373456000235787773226042893588132922795524812078386125267507765956681038103180459019815391734322806936614162084965314082674848437831898912810713867368925616560961045706165043041950319259751443414194685149132779054814396239715185538771237422770760509760827475441864035934080195017344281994289946110262455405530049965482408850438765742598724285881775147027947416895665265667292583159240112241482450642149596420841110256801751050824169432423977088895762079001198937097272869651783313460292145790522296620532014294705827551802711937642700772154628772315679551105088091416997361755003071771148036974068578352165789756958081791726168150158930261534864382222901936892306397997777293644032510854383885661891824112876238984632778829442124388724596553527472228118645955197050211146362743743009610494239761759785609183289062582022624171527099590621880235975447155541481923449604683607973196802811162743452603752115926616084085221004928931845328110645241182483308419855522994347675540904909065617628419807791637799022099187827014626224888020600076501993850590957465278398968771566259251347716572944808684359332465234824165581322586201614176869557568389570728471469782602129390219572554411282347775662848491791915102286306639271232374005681195572955842919886757271015905015634610521838039021831672025768397339921347271009325561403235338764956939609230424805171393941591505320301523710068019139840893532508376172377095407189924206873241361776504866950134047505594614749417793026642767111162447812288058083250274508812061043977915037660136320765056762798576712069178542020068244287926281029703487402506321128178128871711266471669836814017778711089175746761386823502555176024934482938903405959212419804894107937860064168454403548827283314172196636528081396005952764690175642231797954915484899582525361866529240685670529018388288208377353243875031678285214937676893365602106777569980066602426676176108124075239085913953952596728115684163782213721337833694201274736958092023569033735315991350825351167022539635327295305250699567248387562010471427292971350722311050414474377805518622451811834220307811282432134031658285232549639101664436695618495412302617816212109384313526442620285378709167633043179022531881701771165542473242994942618226031949232782458527248514112236681906826271428925411724979307240108220549032260014401698432020512108276950431891601682395652308543333482286239110592897506047523460012572189893112407937599682200253499726972739710750470430739294252655920046545940205518182572936119666031496123292286647611621291312286465016071183027397950214092492875306467573108934734527820938846784497469216100756950917329318657583717583945221766471329504270506161565682651508078872244765238442549962384840096939324550760930310871240682027961902988987539443187591143451460817801136235514283885216138818630799714418394436671429905457840922001229549160361399709699528628044265379746325960455464666522319172103415173732918586471317130736342927519492576877651994747600320969517757881424187479827061612068472635632696855108557661697267107244600859853915806957746520971259930091346185723711016769135982219312922644062971996581192481098488169619909081957440748630011738698170400344259992244497566484829402006776773662996143621496777778503477183682426570746854218299859342023153942604564040032329856255754298439868655961678892752061623677975809583784736101874155289719349936840213832834000844064154047548010919579877807877795370814582663164922584623980604841080064411044195576389981836500227529770614870627445270450418400186621946551074718277403159827204176440293658170719465943355543440027176891702979548448307033660281570309326957012889094893493974014284284758073742486339364409225493402757228028371582878956056586911334426556271166279344388548210771682226385984885005307528534445807406354124315596716897471804449622603285121301208075541125983479264821844073520915463715461656594151989388775445946936549591553649312461911590070464376308865240262023320058480916400581630409094023511876609863119853811355347424009493002867480384243512998909934362014448616680974209162269778491667239490129169724573260166765976744587394549172690153205403594666701152245144618427811444445460903835470406520557316504843801915108764204226572249221027627907693309141293298537681189842051830829202961417955706068731788646056335485069700397443428559777379626881832167966469979157312641432885205148144507151551911720158243140892888881834919471630684439347389301596724879660477100997414322561379627009970502975296635722267549081797149400325647080769347115443881224673486629075549719610359717347492562336281572238191460696414422824557186254750404871269173061461219606711376465487886661481738508332224981328553885984351846228934863926807757183462399898534167774877361763483481540698550255480804146007014800200490730318524844079187076576752775073455822837050636637101396320084093518351315891874464647070755616787089579299228401190155412614040551856531950331954644596067870448487075292873324796473877221502581561686807145779236551521205265366649890384373891685273643928208144145181153045804272905621842394144088214783916543234190346397954931801600483066110629979438064174988595446184585411772938994647720300955872393783908050887228514267856449171566397368818086026376446775466348228010890085676071103646931041245191496996092200472770266746418696921356110409786220650740649602080942774969027091689205596113248388628335943854674619884289452355471914967405802740882180167875572390852609374910319310175092350653235164358507160416098971285004932725388668345769076995236877796849759342093041176607973702586557415426365202763267807892862028807955991003943847223725618924446201711670912868486417542415608594999448069124315444300729106133917834281948902442083094602411099312945297090568349422631285216694326500932989982193046292036499448642425526283401980579050037098752260790562983965177069638921298041371773234399318486053102334606516286334737824700821685281304007967447457552841317996551719844770774887454382693727908716556849646471100018514513452293284053987089327517991801565120166337396220489684861440302906189699696936796956977735387615729067177992996088788884773510342139595540334246210308090215003453849761327249184281335147500390708813006560396317593688401987437957108538164568270163751093534652595356998110718997368692399700514551890193701765473420707640337339960808154604735241160034733384464853534577275756735186743196283763607251477450202799746985015081889338637211382195530609297398616972279014879677787566872608315108317764896755321250092404212096306801005150667773070810124802978846884123933479111701161604410748514731275033452661880494584243126316220850995339738399529775930788369154326621820431443666207830829582483399583946718076189230388963655750630232356443347224749731214642948003434828400854725303630332057570355968052513582179552484077052728183265124722456805150471752983066160278842601162443632740698663041439548097729999960752781152971236834137312461825565749273225565901076628889785370174836063102003948186482461527968390716330960161445675092586596839213500507243030481332046934771428964029041491131822542038050721659714733103409336446569804335828956587869029096203998092221182509786715778000550899852688372010842735196359452552328401654049348851083477906563268667397541014589459399871430962638247469288135140854878889811519847114317167444730252773013759973559895395630590691115248871050978782839009596976214595432092008880536850945755306801412252879922896554329143677127495916654873471354038538019337445458666991258439369770306090244664272943929968563344178154224896392812264549815139942410100835237294023130671973278497224849407712357837298198817539292552434930506780304079520304434917390674452976215470909954733823598957267126872265947967880598941630291249567484248090067510536274542526011000342223939644175709086085990179697876767765817857235709606063513741412940704955228411994587513056722540859901922813906787276082506828772659939864957060478970943524485087577564919811301410940157510337337765765355287150170657869224453450339378798608140557900290525836482787583291863949458416185940899567320021424009927476480778539303562681800770256720411037887499095598699080892033823407240363736534181022966924100775934559794539110766696888574645819010696634632781877764166404631586255484989505128951205248214505606574955020386211030155705644716850614668931736639050420497263845321950112244642578480477934714384241104015897159732629090767971988418148487258794923191298928685530482263146208120061223039426923927972975126839078218578713889945775390966347707679821540407652393244355884561689046096669976700313954461244240762157973332080043234884261484424853505185193566794951949446331685072704822947303697233624635085763379205737430467307086388989788088426529813461360570128580393350455728104754672329123970027559012439309814334237762370815340270511921979440113458103777419653162074159432960723118942705241464685328276334991688918274875472454130640872240384070647371587709037825661728824535250693678316307429303563003033252202841083233560583145080200355322830392167596943225031163971150340084992092722104574154331027633170726957718754439880854274819398419462838287311748557006744829066576014437954698011966400894120637556239676728702888668370799376574882250178859610998961840233262380730534388625335966176225751892378136306668789766850507318047684926644712839255229777737207396054292955655476050494196968116228225244967322352043100659996657346809282883168242378966396475654347395795458618566205380517721651106533045234688389448465251294796253956427706655154835738097206637802164339706530495876231472597418100052273265706863333575520422672348203256566179945816679695460295466268529578598956747864169892018178448789683016501969851289397693176118890626012307537909958909453947306092271254256524810853244476508848128496432679768515124122299112667094720204707428401955805957581938418974462626118995583576920737755837585501975911990412700813530537466288846416271113131929255459032036208083493282246878099818964479238991844814230474044337862229497572834746453968897984516367262420078578873777754509914846355805200862557135580615829115594795043866422069359292262322445079787947222679867179881184202647881152121220678140441872249135395057643382694176690077700557844203078175503603355387948099469175326665382661977272395038448848576356569646044978969655486321809326463067360945119202646152173155211611988007528387914485140438729838980991715016087993528719184763288798821207841450477590023956945951304156959158105045933848708252143793400324647812679569813437514252081216590993797963567068089428975493240950107522370863174343306105182068551988522166829253732618804484970477644690993108063813738568026669392974536737846128514722461478825624659374614299677475004038767684656592591345170399917577608300182405822566634365004763567581112728112031905432788858478568473485841890584448461588197752195472864965813504334891359545361275961217465904510363384935485121700471588721491083410154868827930031727032273741532624106332072447911779255158693714160922736682410196110503146309994619818851180828929322539205325060678662400871264521350652636756870613773005442152081604072688617411620457719489923928986869970448923921859886194062263203491395693761575290205335462822910598352337925879335812548197099618049263590212995953783461672880915492983307111796483472100180628862667347943779594198578719894904454969257313953610136219026053411717749338787329192211958358374335764138209470428981686550964497162807500416287759120731770977096174730248619632115223947077202636973105360254890298220389459388787415270889091055995463093021759292319008205176097398956411803106511408712705228643287591046955868298725950114961810364218792233607724387183032132017532886162273606514834827292059494765497138070170917463230199264277675480845100635897920356738880653169018689008963477236923627889871011620466025047705355821337471445741365595198868336676223127495198630916648346185569895714411795677296934874591672715875089809263957951866179357809415835476677474562301869844201388760221935900696003365777590314787548753539104608706543222553961944418254403687618937897412961751293870619742843099889128859269154640154919364293938470622998054185702409659053151896357984221854539721991232347731870097413306406505219078968297312605222460425859660543476663749529793900518283423394139381814037486396023038609475585081361773925049126054783997529854185019235759983588897988397566630268664029837604974491791375188920605371970836148289170498552119472212759932269785758623750474648465202248214264006488352380159717876158229840169135038511789389331607461275989640610548990368049538256176112301358050551294246815900053360907959568200105100862839416949060970780291983073332995670664226043751429568269370951362882603010030369340079766769196601999048832740020236296552032342039682513435620978195193422811983324374428554354885579939638674647150723022314183801516767095657782330431816023713336242283286586672984314664422601363246972179101834891853399367896652364599898282369918397707727581241610643316498756310295795421280567771558701488460290678676642997941881051549307523047039725596746193348179037056194322911125218360028436609548885537218525444275871762984616851571062327627268452687517100590838056627093980190902724729371014979718651128986935866068699173612826926911533550722985726947316777208489987364078448053938014468098314831997188270981433202368513023575295012958982185001317981305631700039556283247674292365552567759938809191542065453503668833975151106206453305618243648997748940727319764801699809332181508491217042235901053414248972066134985897151603253222284117316427156429407593388522357504460598817700925072752651496461180892330391609457957602174075852252584094656126270116690338705979038775810220509398006556107591297614088512095100054253347602024942182915008598317813041031662192519438961436013866412138658074618726065254950503141506041718818010728088113979567209634284705737324303476137212467892027441437527606298999862803843677880999209724085028814659319852382060150508409928036763464176184099133110746103315130237721285690750619557602140862006110538955529694593767270098919924991741164740641180914882498887230771075724855835235919613183649003910978382502414764515161332315962545056143764126993847723815922117188437027191280484253046207445140424083230979939552064017559724328898903865942093084049386591267903111501223750628834836832194337445505785263406321250140045881874962154695447639804682756397183264392414995238960817025363837190649236060153366470741547947286506573870471349362464373815020126689741179496802078284494415108548730819065386060354099386917536547866190672711552860661895707153073193722098227380374604300279977629467251482654561795943577564429108460341060231263140029141242740585280564940018205688775691536494924049127928288859071400280373056442689780387095382546615456825388263092360164464377972348961779103010681536877045060812840267960312880412750906326770829046459777497757276871566106678360109087773959588270064754676993545687091439181732218748629815552264697819492923207605983740978906159491639424418521259167065939724195154659179476303868979430533014210667494422038083580014998910753452079324449842267676183493087547612470402800731590144104614503601071439317866256990631120026461446707663742607743966498842278853030496815986591508256672110682353997121836229220680684122947866832308358898342772035071625416413004524044566796378320854565800477932160246293815307410272689996118015697496796504391526562455346968607748043205889227568828947374100840878458116361604744712152965176067677109993881894501540152345198586768761739423004881005828515660151254896723782894735625724714962818236192889097880412093351343184793907525634707754327288154953646471442048156091298565981616742553216821526131473996959686724788250342604398219384408341793859274747288696267347225784051653416019090044206751418886673536030388415230893153457203505562615226334339072273956670806464316435956357742613904976677697209502415972400927575371234639089720698317582178389706627202227319958615021357442205614406481654831991094021375061637269230038760187579225032348926706922059202488314816534537781280847040133359354491297929970841140288779459247540489671348596000764545979686393479266432363697889741697648143118197028072218709157750194193411715989342881996658511649640312229983267550568788761250422303243330281884129189838589737618511165071723752171843306023317427600302878969234761955152675403479942227236204414774428134689657388550435348370668715892876395015112956409232419666079081846530133784617916486324743267992091077897547730558205040106138674760981337082270297189708306787766183796975224560744995191447733911448744442792881136538730548552181785536224834274326517706393500534282792838532057862253101617690852670816355420817131696399540698144602245935817573677296255814533599613701298131075478605933126206106158902401869978961484209467971735581871995244249364610301981494488222279070775335475406658139276288116202995190577539358920911451939119096196496091914761617630176668851380646483815170156730014158981775849652243293217500094241224590875320794079213424432391056443898859376521118113178147030975036149463128790070027403677807815466770626969601029430268384105525026700906288712361350662105100696426034578243388631408310623801549554993426742501857789139940798597662913011947833924451508251543105584965938163833829656740901453362458881104624118754341974749177960415370565592171975087983133156564620581941215368289082379498070125753964435385870109028811275538281377791457851885403126232427212082401085119296885851121123603188558674524096755984284748934459097553169345210771833525417740906767904350082381960872758374886476092113934686420462989571202766023276778352009149709865747902353609891028930094862095609534269548965196284005199287414515186338194162787707428813486673271605158709154248250062805658481310309720660550180563689060182414689661893886610910437130497196790515733804765165432333142440863180341943843236848051734942390918917891689716243063229748715841325092776931298826345934402481763471526489634598528934415167973780339953017779920330633768443258540321879570719316726634770587361206423991630137598267758854895962675945328829673435585317237675654537861160938709370282352419682877878828228708587498268211522545094841083386873782580289898880747105807603024759131139207845333409810113024761701891296535717201414075548659293185222137160099236351427876704615783279297394527583625500325025221007698622730956515828860919664714273409118595908103496771643452808723191515920029451284647112181997350370712065045775254277661789870801453127596989053700641369375233091539691453036817800154743686896126814245135739888307965103951739737470709542984287015351013450026645487143085316507500409595661216297020683813053848504480229173842582052625768343373224685796010952903110464521143245741048508972818641117851401095254702308192684612048567424517284717880763550886216301898784482687057173405246633271168887274195166545610764254327212761099499488981650589429667685887005245869566264892309259536282945376074555386301780581648028434388613648010832181889253766581900806263812566272379944069446058044640969398900959894399721891298985944658968990232345160072022602528330115700900161963924781774968586255112518495707765548012647212233268794929104515832753348485767763443063582890413113053925197780721405767226403124936754349091660286755944141605040655445694401856700539317366013405356451568377798300991350164665069435666786388825461844510513294712202033042058575626839001676877347457930194233772912716843769594146121855609577047152108890736115036252065266319899289724931732108456328281766518183169536599050088696030244696832610415471549848006454602386651216149498872121536161973614980969516864599078439543332143159216912258163655440924217650836602102363527861824157167678768168698551354466674661552651964058091085284116510890139121066496108725958885695121487584138404133862789534334108762354743605021796384623595105652075679611666164785767064602271453522297655409464336775003227261567019338525343874032031330083754411931885259335661603887353499791282348676731775206404695446199716892220897987116173972014193431225636044863134306939086823431081418806220034637229236841436354026221948004332122449301058989082463017883713548089888646193059189621088805782968761468017046901239931996065261699844771034924016719731544090188298041132414360578088360631446496594313375784837634616536430401985686520763638195125839098291387643262606181703534790987278941276312017218011148583348701510838639185818576433657902765118129342553338051983864521318627880126173699183843694722357504530597521764940709229424574887758263874588144821464248525950808527542728725925372945124509848568206203996455695104452948833988194778382767838316653248721112221588692769946685373957363774000977142756174863946432883274939143960933634747243897309644765961953994309814032323226277724570120666515907559754715345972837425014918594892728309161458508805413118634236753639079906131430410879109014415068225239758002251565674892412859649120986703776034860836363782031310777660754238435925649157409894785151106636205480844641564318242754856017563490957638654211096327520027394778614213236693274842985027385784579733725553564248861510739879499879245559980271977591275924240196162290560401503687876414261459630437963206240806236852454452624237482241969462122328730437751432195316459938561607183780328091743211365226532267073682978545650044016608651845517994167045590020221026127539682567750711179107352461035132884475156576297061687794052584618719568431311266882070733179878643381656146656665536382216890535523841373881180705134982980173289424015204639258289652779679781987336453532280346304723142377289040535945150351300136626083335720073544139373986605330371810887740830595316609860882380548302931784085527072054119449961582757120597216197629841860592421480715019009812523477302071675311576498830105713786133765557420167901698253531385589033559891828364733492178474608558153238722503241851643738982544957203799041358964111873704423842446835235170891346869418077954966848482115234402040255600029917877001515509799787929724775279284237463174407191596119189065439706579468246548749645980823304238081121127178599114181820090271236384178701672015715649641338108453974091505424582127184622976550461087084101864278771517289285278818413161866334919545075021373297870230901492099604005937353576158924275170602626533570284822324307838738331792873173060302180733450521841519605348318845116331821168860806340971116382728145851586028092507119720487580326470612180958424139896979289195739862656022901601171031846393537823056627990911238408742021486856336009832578122380937417649451206331438877540962455368329719567569705325291793119823741665216381482469207950851417829599547461502155324775475761744973445726106380455332397364244723989198854812305571096863543868424716142331382203110867372971478489911537131507435035015256060896843620934424968393026372960194176618331934591297502128740438073579188610681223855591530954685351187801080444190190479042161835774407326714509641405961077260354830462486461348443511626258727976233782173877862156407422864098957682218958886315381457373102296420658207996453352609632800420036660159799979529152052714250688320041259749790964263137612291508912008121137947429605706601213594081415550956178559661178265109312383562796150642213993765551033202738070227699343074719842903659319610337348676478473590272454674436599176359470664256344680593190146041525897802876324146990946560939131496741169519448916361557234662230050205777644273944500079445776882908830547105519229287512342607471699774618897148614716048895536588849399334860734453899595712749862835866781473805443936907151553350480868795022432906583285968638735462587707245973979992076084151519940112604157907448621760360475758516849169522139663189534642189876086094211659094425352933809040021550816656140064728308216540764673678466606531134406921012394137981996423855129712683016671252541021748629489841090450752223438244110907780945273630530589982778182785965366821162404257649537646902817833368526420992200700464183449652681312248992887074951185330044418074865289849817705467254668972187335093039961768814739512388415932656744840517814793707892676237049216830341535591793340044551451995009022433860714494196569998111689292548854734290538814547728823684080766984426808576081358060890896492332797740415173913558929841569517983119543485761916136674992820587892833217088745347711123678474666036047009978247242577445686185659145078339701674359068195820337520421158415270828745790001967123514401575738205853459424012451606769779813047468158470696348580744781309851969166977606890460585473656296295462643956638180943923295546719807786971887415654741030548497512884293204187483642148908238086015929121653972662152121338117741466098093369726576813598344279741497684440229443295637141703293086926165880543059367081188798353053593800297077345164269788905043689203137413420382909504340034328744207450709294877675688044894313978717033631588669773009149633004253747056759170628899900866126952092127888661133438146685127542961182001445695277544848298045013665637761731904665845623521908380589235950467633836867365516769592689436495376170107871254460397301396988392167291264542815036233971987686481201548405941641338030394697194522461694389143425120287458155035127556501387470228132458934678775144790598539115938786196651965449645936536956101556664922372131098345126767203481163252073534802829103790685546130772341560457266500520922670185091035839723471141671606653302675133206609972123756556729376581001821250842415455938522109583497071875572970039786826892766572384410038219704387951365710471283734040775456720356714385572402478247755269015917405871947512588703150546238030070713413236648738056034802759889379134337581247714126710478955627965714182966202444684907774696607824597753576376605891031680539333806292276086388637980646513026617089729818097608203978730307508552804417076447780290517640989093190548455027226494496371335596051652734524498102438820550191751508555630145478607185078992094500004982518297841843373641908071316884854809406970336996186620304628430433059615541701590979698140428841408737858309663659402682793857332667544178433884624109418912535770257793937845408144436423305551902005128792382244394169940667955663933501131773610104291893757356756830573456866258675506215003976469419458297807919865811063768406829320272056815590274112708344808778923935961583029281025249575560860133903034292637163021013432687194682701666223362465227908320177896613642772949271978566844746660570091763385321466462849317119737665215390313168254470804860820426889546014553888647495146902967396913966385680204251915546081949927777071302913047139618101740086965147998153443845246208281429180500475370665281788555962604620245415304520863144127413069122400200410449170649584622175917379868089590884833279302727235166282222928502672113254649037579683891626578500268702199596084856267861243067408314364827728069877931922231583480870740249215863393550966827716601509094239079310123058585510959910250157251596862758885834006963095167450308861738126965167321395959133018019890372114678342306521582379905421771232979779524382618352535983677317875102935471270561526920825828534624777959892519809489710481126058804382710333974068369147393084531599060212119634939017246617956089778440270348903712507565569589227651119651644275776926287266718034187260287378969358480812612278356136057230221206547624019164804058880180695796036778239676749554019569118599581055275765100354649670034993739298397401160995811868505442381421085987233021401390811631400282200185966801266266753787347428571277366722129739479727538777885577854323766546014010565247213913211055800843613683355691528028678758926418003080354756351535812922857196731270538277991906618466755789352097069768411966179856966386348060866443324491597738898108573632114368567370333352893185924727418551900160436830611430752709129996860567148015013081621960265279514194299795738086368878413415360384380563360624112243470930406000574749278260068254578614366712508886244782432762807112369357824260441978197228234971620244650026843058563323015815203293983517023766675387231320988461832980842474088294123424447996718733323729660010601191146062179183217918117223475680019540285244018158611219463574143465664848196406449253087615635479923217072191309770796021437448080884590135372753701710393153786074033848477010848722797668303984722915164647522336957255545764584895127087220819352322946991744725929035001497795516157440519040784180714458864969032868848057172483445886100526880344423644041601666545077990839124558808520875336084550772667199158327822149287801087179061823302614558618678284325326079433571110572180409391571567868706661539534766125980960952705430004798420320197841946352198509482897077397787210685561596483371627307902687398898468428304400766265849240747105251657486361297473085049786562980331239318493699997610553940507551077352850527536066444926504595090616375243857831504009168861386431668514550612709338786232034682980092163815366248918156783390378421449115272651034339807160048645770983195411196799170696450471437363768511073118279790818328183071980363577442275813925016664777710301009525731485703693392410355956176630523674504250813116103380301339918478738165425000659134007701097690297723555019385844345550092065453088806519294085631532671707033138143939783736195426016680291132977702408714775936380090425241665757308784115428374107882885413323656097831832127643910908260635057003754000314624399418324099398849299480198334500343000454167862167709791348105874494794307038389246158158438747742792340361455627489046800412375150135900097528375842450848809194113648678725112240041283329908897090393128995009892346935809689390375417001035253776165743755258060326132715810688560174883182605342703986309899194348801888989953414430066561471363357894456381039544988899644172250339915864310661265469266549234386953601750894828067564357879885712688489343095532246285491230808741539044279519930015661187108455641547460344420413382550472830277560066985716808150956872322789693105479955068013445514459096855948793049770735534487281171724011394488113858345167657870680629815408466650165693680475024898830075415761684678634601464659162647698611875780032753790552915099593120483665700461777856425337818337466082274725007197477364912479909526070588115904984620454799150758780989184691514800729281172891760823106771908834268806450499962242914591737696594234477510214817564824466543237382045425890889352453318705635110713834833220408618108039935469897398746338094795288202947286314240968670860549473865159514573253281497381886488794732411846780481937562937423210478728689864707347820739477958928158154813804101866459193932967227062046940578530860673700971403233277893262963744149160233288347136863349655299182723997197545073886605228131547309634862049870393403230023038270288299888250832467723939934426864032699076433162660339872379269662259005089102662709947935193507934321999555284089099530581669021817136363520615050580177038218624600878959826034648551464328415073802787641524655909221156579450916021551368635998466853359789979919516701052488018240082098131255265352089191923859019031421022075078735420808153450183222965309504416984941363541445490643630525496685164219593218883129170079576088839251173199795922817898721119527788158376127912491704956970002473184227751585466443299682822377435418683337416544620755974723575114998616610744436192065879146475609016817193222839259364480320571870335339372664707760504502881768082991638117839861192075015399909497636455449652973567318940593777032831172950220096756629095585559427075492457501496870813465783758495176469977014874289776515711132901242673873638055474921673120317370005367313495581107117318033534458352438938538583652917128033543775492234679431480521666857709724860683284402371308872091956565514498425745374320631970653840651245939165521461127532039230281311128569489604769620406846470849006522007843809546516004048898090504150381836927037211876011541326034678675024447158239159031029492501503063277793525977929120203430048444864816720082730549318295887170094568948721499402151584030625519648279025794181228891366013279316770109940539075909292041061308260873203270008489162048528017128109735517385150624284152016344907325701605194611509483837768681756694944208693576757369594816299475804054631311829650677642361203507590885765925257310039747097472450492744143906283190704023235281183241712349541371616764852467751333694305003341572054412213504766532671530433794226780750512704648710159589680989066909116135702407737960184750601934270597744087715718469880470336782911356599919160012540983352348133904723606044814784184751655117457659394861946825734038084231293736618014540928540006687807790462350446327311974963621185840196805178692669009482889501636364058324394936600545532309127134569636793080876367214542423784968685981830158403783509933963369785092547530760262161520425637934398783571364047572711920605303977068086322167488118127694988454571450266764705169233278658491282720170548539572309334081550352816852439115043211380566644797809443510537706637642975403885569081274663372665392484091845656597893661079697287955044256200485582824271519037190399784765964462773490016088697017333273696210529381182377362937685575573495750242156684132480155340857418495235055087762393842676487708516353450291793186484146268281634510656747743693334200161182666332136776956980966177178806323891003597716188050070562288717558701218720419491833815986614857246383171258872141297443718298784408768263462342459455529379823647771477986225320465575014949996099519206740921786842241102880981239617464023486528897805351456355709321630469011903425462048890282893759187113375985061654723550605856231057401932406988466420543537653606000580502786004651563467254425118992752898636336863301976387158534523634062976801332233369110866279650700367235256151204803563032126077666205201738776559891214763015275538634339146147059577866257116339251900775211673260541857412094906440001222184492026147597843243919162527488170439016981619730523219056872507781906495395902531122041220045754002271575280239085927091920420910038905749968373168442145554163281083950304780100261699895781873510704542519948836828402586143900992707272110855114210281260608463082204942731541549917204059920379991572484576080845883978894395842975105469647030697503317772678868716779414367651469384571459108795320416221021864983584225680388336371155139831196050892954382902385479796550947095542275590883928047291350898273024472679168970859911225822521881653455438059627557762519514638963328534250594314240014705681157566272288668170539204193975532640444170113292553334518892644110447902934011609387150626658706457876408404847591349238739099616166971023436922017500794424518556652537450909007610576736254569628039147570215895463907829165321812994739639627440929502193533027359195362771208272977196748419459755724852307483096980647793007523056617968856788020335675369116163446922613925823856821426699987754070592683114851926556644401164662184908771686630754128552054781984174249446365755792605700960921267589057774334296539855242170305769863499949594697540479495415653510781166337626509795536562440889900445829370264366376251730997895012921610022026441794637601955056568801194454980354640704101292522198381516620914160679997335766697066887398735961608425303992209611511084986955396845755836076715353197251787153307654658714416299640806224796733475394579373397834587987668604898890556076089859998779728588971653048380404039748563797965916050575173932098739819329832168682108820232721354828938162482962417277265625527029346774254701587863148461946499134749569716754674293796422089603330766311640576491055231070028612398364231468170924131399322864010148591358865871522667642408900236693723507199489047837197978814924447291788631074811579551586267023393313182340425125938672625860495166815645687979716211904362396986182682033222470000499260646477666648465292082368409771501524783651677717742164243271920932843778573002175136721452449541147480232252169785760976564011888109672309379507876378050952807517158972729732976533271243248660542748180087545296093262959331370367898222222451909980715885553892572735772178167513274579901503689125911423098264602006408484974729694251491118951384195940042564752576095392821390845565926298766630815999283589622945960367125084126474638629400004643652070071854834420632159382179719891761466632547784649520052092777377977485930344933469167053551578159514474554310276399826618763085754991613144948274938134047006832789148982609703333355381635501040078283552505040239736604364607350603096989153587652256964180243194440927439027293147371407659921697354993852541415626700924945283731126953031245726263693781460173335878614634798466725514139305068784265469348126165455818664578168458101955365236118632941317579540895955489580203426392070643825203706233290882468062121193068305889535593987202896385336257312710640450964150742957777234046062547190033370201158449756793423212335193020382540720209902523360102838363290646682728151782683015681144584691945076922145554590254012857643817761586096948908450135589604166562973247205810419404442153373252608266869644664927538845102664935932107053799849795865211680740223506031273399978980848687861252865124471523508305813532096079949310261867411301572438915501493137279935003639748379607233777907132434057554602464723025150279624663379725017020685244492369120497983073633775838202360067760407519929136605220406237706383655111616087954289984892735595074316745558486823841845909923549629475087133912065683243181435364076829165696616076159933953637347077909281977899516105250407773172958584605312605681939207523500732580595963374454005960555261474813737778245165050593136996077441108017570774998747144099425871382088866345023368979835747392024577800918362104349907365848930726673313832681148722046621627737375166748705056219280255964731186663004450377281233433385819912627677073094546714338917992623191807729029100571977193553608664425066963566901045305087993059254934835226428075714541839568090917367024748654358527792139304484889030206385106157321963950585879498890763889302527885801160757856607931787927403114349877958430919976009554679763428302923717584156568655821026846879019400934416476697553048419342454983153482986055338760229423974833128489307068101239992035480421500302070167117798620018723790313447587358269278689236843496131081117301769738057031784522175132192044017048361220940860614758488678790608078510015174166806675386764311885786294911393032612113196980790782913867678493411932134769244791983355422622172180840656633330703783825627232626724511254385080072212907512740426745706590493263894740188172268484745369481913941204205359473794486212400357602177889433723527146422582740918862692175924973837340109992801222634456730069454582680612809220956561464019905771061435089854142821010338606589775955964923266130805423325339114435986875762180799898082265010902761735695553231688720938160274467528480376138598179335284340400061023956374046760981024847838937571116337567526569218602058980051435757046072658296835916908319313700742764264449585387874118714156829599370173999919793669019486920955861323236241610615582235132568809677847355606050830547088285861516570472438766202388278517971300664217717007216961292883570571662433359867257434582835261377233078771223869063370460601861473665907858998159163493738226330359768711229645211045757699570202476287565318880788871979143592244279355856512461477595231427438855075124757640245247770230486344608320939476637883447206196086007336821236438547399291382571561443279301678125716646743190456005717053362028450138848646439521404007935999655255700926825013506876545988138385808978900535304041483838147770555170973784399320155468139416364742058679716161010415050714832751405718459924744805555541855236118750893454739166661402579894670596307144459167102650271036753220474118716283074342974886816533178194033054901435509353898484569022822951339267273703243285746978425860178799057577774980422175761122218489088749642227079982150853664825387600699598438964411802978614045635664629250976813934753698725233757334199617342691657849205327887169708612382876082571154108180549322975538462937411498937391650511239713009513921740634384614573072648633905680937886991800405174940067485010177712238640458279569048273739466571592815839357091482098073038533968123900188189982895260653241609082859484659417850147866126157264764330074112917871444804212082200202166881825346657338628873206308870485094718340068606894693792973813221837977284016528401150811551268097242267111241024198471505431136542589127454585578154062743565725785424058308513418491208083418817614055136101720236549804463472655977238598744214889885918252677765784803465562543926832769464934143188337937999305082841757404181271728981130227511480165458584136410421857441570522933833531430584628674853126491246661056756149984717438417752362400378394054176087121128660115080731155653105060609303607764581805916677610406053496836865784646190542387074678186221938019409124206957493891216669425469167635967868150277573003821368934442807995767588854974654622423215173625278629697289790080717101433290515151020671139388184897999853974378818422431819828375686274957650089648535587532066541917420632579674167852990594643349802475809479561785606877651801735690088333319631458690787431846819731500449220847212549629420110412191032249972342445964485356974106249415853926770941928349820408811005043730433983989363968745473455413698825457260895522453795644261349870026495402046735970223462544981628474072609143039249473166679348444473958394548480978555029737041926742905379812147654036312399175312938318625351961990187822031617909031577272344511905132970210413647517344840296737950174529647736125132660802694373778529800390126743319053534010910750238168034999261163175617142903733611704091098183580686101759383666046387102672962248303175976193645497908665113208097291058106243439866105461764335132100240328411003815890416894814196396881431983342686728347052555295323773980076711892687096313105968779243661315095857068322567241480007386092376552441850613938511395167791217277540654875361877372890508209356192399330373766601008085079924649220952647083097344657210298691763044891339511368322696933884473372413506005453957249117799905373228487599050260552522584717348707590608443141094326709777266852655748085892027701028007879553324629446771088416510075004490880552098597892816785292067468975730666754109644956855847874834795347460093667507648035838178431047255656805727363132951022688476517020741938483071591689636908090805012389224848271388264422013303651727635053941100491386870693259578713483520321234537702380643414423241187686095662138617460411987332096055149964733818689362254815909623383234496999197373764145531352801713991337482705305404493316625362826877851734780693652317692107586687634647939355544494062828466827454736228158244508157661153404954148566495821757033183995380747917340682572670448227887603155908919099702767647959283837514933383958760259029652917909603989283922062711481575852559259604754031901932345894635332997255452504846084386842435317082798585051906835580795588398855758419656925495855256564152525776982480440879588264239725797631067564898682428533938154705149163515403283484766497558739648015780009965717326411964765835688831497224756093514102494885507594796205565885951204680527183626718046395536753617290746883287359309956882640518726456058156064424086295128125808102490241573549022948390992649965759373382886679381479242228972169948711625500017956942536533185896607320085755179191841893366792822273373184246541404315521872949261488939681743787264814630891389151703315117588115535442594137310972975173192589334934465665932581900533672147950577762234771894046584377537287350408300927122239464557773903572866274965961370131025799182853071466258764838490662181938151471727608841051973602170915056872140216536679271454068201624685062687682338422482477808223500553303685277398359144330562069933413153625769319656717720218790339295685585831291984412927308965345829938851489579807465320121367133943224848635768717333835327646894591670174104763422731851239908942331802387920011144136277310266873890989719940037337049139434923351326096241591231341209755330519347473063167780597955271348725786747471586922406829450475048391973263699563624658243803437828037778422593460576478991127640329720791944506462377743419885977331843147489574188117936014275771258828794551531409164100017664565076712325539700610316522116531476077555941632128691024394003209452704920658937415566589845486800461871399640778565184469082416679764977448159067137109244383270924574597316687068957903982857378654644560184399941156339465344723757074053804623589389536653956882377848274181325474693644577248331414443745378707542216418538400791860532701402435736447727734960120700535041001515234358382129594857196493956253161324398851056415332606644212359307194642795617469974943882462981803450287412345320936206649562233843859991386016122409632748466452434522143801052041849928751772236224568563139544597865133473980589370825784814562651190107432344416455489076032517069355321049106232937166627035088724122181591081399342612120343072035103161962070258800775209749015867329253011101208922207984205083017626278498056745700173656023019103554353698954781836460757398280109397730494883954086628652745452292961936995824243349250664665242569888322774503846716679894982552121070711224723073798669325725491630730202716784046754593767903112839562716613558489537802398918796078571399372083213843539555253640211040015994392900123845827776890190392957795604368669850735407252146616837177655539441834440958224048382682737180029979820789301950802324307068960704800123596131163665697616751786060016568523537835359815057865780503065627333824273157498731645569323535421021760094243240972958792800410112947818332155327497863221123946626216494875197446836810298940886978431133583478945404358802256982979289321650081683633460876923089972857422835624295077572002171661042619770336786315997442629695245058365518633582417172039372087289408510001869233610032509400812956930275499786258553159646772929504272290468993324938455483718242905026727690640382610422426954416685110647908302214004808629466221604140384436771116490308504735812686104405283163866216082396822921607970405034800238159252340483188550898379877572644984555847916440960809110505515479521704065104235344352699817064788095169301548097877238633685234003829565937293690801368474367434209087836072620102095228799292630005180955177508145755047697856246632667644774446434025299138311609144734083223261450193987593707118175353556126240859972988660522594372058470767840332959353248334497652951224928911413980552879844671666448167004392813728156124824536296163102905816392985233967996543684308890743545669276297495112739955522008054714846401341686083657651821197710742020481006373369205339378686596141421560679575712470252234832041436771028267264200313066555728248979506278156145976041371691094923179894669982929664089053565364904947748557485301803136957093161449361275549499506692090638692546268201941073967491728790722772912828717673251804530750059265963022685861952270554117158924298573729432502267862021304917831545555063834700498647705144100224701482434180659794011923150832268301528062743261103983263058523365907517299513014730796810268142274125728016962854640259971885683208779342529936439713125333598332523193684445837653427639547162418908470893994186657114593365289036656143948381598631316714498992275941110039522766045294263947942479166216927275149371503908681517977059955945578003549562438616535885629486373652489315532110401552463422583771525740079461344216348560196936688887562649944050844234098299776758757494187709082746850172877606330724891576790641878338887540351532179868440237819826037826467121623460705188242739612190945946722919624855910468391203675743396206231536362490641029750584954612679529498683474341981443487259174044432149218751838179286109352287760964946205979375657357525417109428162865449583397613167543330040199104436170000141288642639744788449045488194523351367176177424086306953743161066556212850683267040395632937236602299120662597164512682331226123104321816718078273326513125139519998294848038120562009085275509318790070825477670441437207821101855356797131328689094245156264170907623217052102419033067195262112211084332686646530853295657402129395620256699436260089464537511421439220130612113841118115018446342516086751656253800499386559063486442490006250448808564021545436270381618041256488686208251910963430754010719238072823001882447468128474686379044619050278924278848272738192413772369683677228250125344199888030824217410791941908166697979222691767831798139862550776974020203910494547327920915047237913308896412897127531945799592603236986354796279353723265158194247891542853406814091590071911484445104296663082794294074581592520299290323159648369682273225422263180214252922649959571055350152160312303997078227029480114799533234892545473930799531419375729573788552479057453166347736786715255362154094899284447961905653789524809905429742698920243912715136896737471498980003605569108915381588786971150448565914202012103972103103835856118197681363770555395683278810583394509065692065472955622343366887965609627245910882856238488698311269036560458375768920306491531801935574365825196846020118649704512521821545060346648703703354608643528339688168008420186316149339736468260406696503172946370685811390660167897039593284891627429398917982244229977125313846251712784916173873615721252048326520010079741185568459104190808525053471631356023167058660221417589823944529171746340830899560710422347925629244406273576822686162093451551303110000291543310661350587739723587362402877544693885056187429743056622989408047298825127585098698016088559854259919395530858126563081138221387120435908579659301458739920430171046087507437199644291359133011426524149044984576953634432742375455901998070047985170041443107930195824103009304907271858182641372171790507621232618432313946246937575039303760831223606936273027855141531106978559304519947146684277215459269716988998439292300891980363630596942619707258484662151929739394228905689738980390826173621877944923836915256151878566348996678286470556773154484689589743648451770539626462326629746241849225409477034208268004415295349407151059678465839831138825836011289471398059632776477251959745268460648628005638897448789950674234293239433244381899587049168348771981278290284873345730282886110244730159765615307976865711748206887968496001447394498131848069734025696539757375309246232909168045312670418974197842878102503836743865639283393410354747465934814870959368918308771975587848367838230090687761643869831424836585684684622744715542347295608006489982769563058728125794311778964492562000101903910517676081046972539609505713627065011381905892625520049482312579302594808589045152971941550249788341363760665137627138758863860373794141375242235237971796554415468257779481465543865644858571340613953793996658537737212303208191060966208264636037166113189984579832596226042587880261293537900100025927126580223858561968709060523998566700687712627520256973052848369342001677508843455372447336283811452304161205128788009267727293512767165755319338542553284464944107319292578206967600580096088313728853552694079223243937650664180921852256496668945488558732586655322669705952862766521098303108569569993642230590421478453510803466442668483568051595690574248529008607172836357556282566444251594720579798231855541845863456039602849680065948958302689781008319669206241480658845678949574368450523714907594850035456523254022278991239621014134377794668823226891882848634282006416827990092022183784147356575806399193662156483581405623643415720302510468441153810467460212007059376725047889922796490612901837262729935169307089093510067454264993502278676962363249377847427090201198541358677520605191304056493938610161836523541454698787164919120652510566766858763003358221161967426607850764858040103970905947596553083212466781107226865346026654123555289542606636091467852659152733891262093822917934611265993269670410702508254356367314082302505269990335682613504881802886125542778917673110627858142904507322191259115150752854970899270313129186925441188749140223734859131700946216392185164051443468639566069822662692311585092661007908728454404055104110794265472977979722609252797622766341766394910837574003619075850703721034506575532100311769863058594569578656607184637689398635694639913225710531855964653923606275629190647368417304812679808249356496633048164439040120816834784560936409612861192955059496019923327270586821219125264265667008562134871364840354520440437930822325168819282821723199828254267617088929243626506193980209592521705229933533803998713537474132641053858988499486750430778710414672517899835363604404604613032521933566279298199632661078150584311237291094381620562954635547849599505518708350653813141073390883496161010956599614628137477558846476784542626434536313008840671730341167133595680451209966953785240184520128758968481172385988059294751899528281208965748652940294965612590485168904552491216797189653018429639666108265895384560041400360605072060626395735517868459308788393767816649627113296405986809553676885082074803946862934977092145849026545091189968822145454521037693449784810746025574611200898021112290081818792261870301742304551738558167513427974437665663907254460587419009186996165889088934570453923953940930044881774359728599878858580399665007876273734571308680066406870035018042158504112458075388331083834145998283549516364301962514485387356531440950945180829024110906874184193541228858302482332607966875971728734221668979426150682221475648470033613161485477771188336172298428405951326929370685134740606545483019454689435032195772251937330222277620469762957057392006179027607424772874630179033938509578399387235356141660561238658372182453519532525283132713151919069920438864587614639151646679156663063169562056900848420107518207846884299087221321770856196628554704025789000682511869286282603261387327618135176893632914202365831898150217328848583831327714268357899354174573179136269070067395209473389912169638206349691600621161031064023588183263285115921316735962157628487705166439294599110869810890610639940912125560933827670086268859660554727639584819204547603004343507806416420004642566020438223916702089930730554112671855099381322974084983139630460482622801569894668757073543005620799367962980311740238644693025342712151543003287748904149303603370473000164327550819718532504868248835555631003237572462244106788805532400115483175956040109588919532757042090757466250086655740832616722752191735247692267114421872862786008451266099098816320780005537867869329869868897973510067598559314474236947383817209803404105139038517997553793943533668636944362646448784567984002148893988949973919421741665381090289983305757103155855804429466608115942831738338076322413466454505053696520075147753685136481352308282706587498874767364499144142347331556181937607221294505487730894720203376461603772889922190424571088023769548364591936003781764709235101519547483857639032292022913290814086877149649511052907442810848320811919499293895891189226485383379680490448228384561137461553684257555081686659529431559001013713464846514727329684570391250606806991270080348757319098964401808560521912174935548563592141733220265588228160342957012655427653863797098580367741318659063210196621256604712572565675536175299476750835447204616416661397318583804656749469823075190306980525927910559699994171067116412555913580312309547262708772095364382386080250579908701271319953772082567934782824502057907341631522227616683737424188311105873974017759011887139570523986841790036986974245063933150148603899136042696347196078529685190999351342415106323156805833449051623727745677756553076705167557644830941817874205313586358833813899902815190053195269207736462998387900230139292526306912450766140501824203033529635394371730450597770352183036488666706849650177850348479250200949287045222921108450154578445397290535992897942419312648787155665046732675505282703231463291198810939934193798677391535509138024360728465131482329821802288114687954138753751983484293592408854018826053789971294259248634557688349523591198469938113039352688650724632102321768382380184180035939422219981246169648249314504339018133505006689456046740832274778515280795701622938869827847178326235818987124774516324797364662624095853980994379375134668887917248716849122237423580195938884838895227014710889572741323022987301771897631974708994918762343682942987905678559828045641209432250485380815873418271408505979767826776528604176302007849653848578836771072432036630134223435592895232678771430496372076528658908772035781129448559173469596036595100383880054231838913880578566113486854177800058872408735668790132865962572964204568841840210299320950443044281475122043938802922926146864287861180334969859808812767322169452597825123153894409035338416637950329265105227200583301382713986385399289333244684081915645329117913560539137032333959120093575712715171653302439975679501220340658710702188397725899068791435083316614720921342796705180731929082296061827987579468342982087578524713938161765703916357998436419225113703590797156501618375734868381146508051255848850570321187994184523021702210432700767936449338053906138993179678683724931627290965930441927279254957414387159039827242516675670729927035458915460374613720880670943248941188095516064701945353455859714440698611286472037622928057765907366389771758186786397990059544276322407915554108824534804281793750382492597799328617494639581090392540462164298877808627711893286421257752793066611455254989240768093561101111762528463027129981738603113933109088299828357339292879629569348140579556653173496813604444471623172953028826607454425346138480648182054959027899468603799758069005683483201514797157934326424970873549706160956165411833698343840874172733480814092394143675719003570632377533477367589889525682456010873003131615039228706906904094121333775685824090721970505899268930899555679407418338185329899191741803965705968255512989334099226929923867781619106020125394970122857676448642692030226895276539060036204080375807086245740729554563336462467534672431815822301018323070959962545786649038304290029202174888636490280988477536516322202411419185480378449098433298410856269815476466513445115964860977502039411435677341021607034438327085004616427945810356340474885432901941419659382914456120535497549296232582122792716219343956855964669106003366048792759006253809043758197755844086319780723815678082625657877543247466362046971038911505259323891833639645504393484075369490289543170668512216499870354218242720411850535458889672529864895407757917643156184129288619665582634286593434723499116111480382836544586992457735462356594699762441935873541184918678175957492314089449726080456033442899124544018422714614053831761863138519478337572581023654287964719958426101526097185805595741657270004755276365376085010634945279386413218800109331261766954242493242578439639756675992614905620485911891156443165830833935656214803862414746460268986371606186212774685387746257825250705905681363757160740183518953468150060468233743199299785938245335656744880354809052213376899667701845392359175039229518351262411973629032486207576539195944634574807070655046055086798733930950750025473863270881328967347636828522911559158265818117259738667107234490368596346163767532818170366345231715906452475108518026401112293781066541239213798170627592491743273478929491695378790815688904774221449286602982986163762468776980063771664058451388311793579333628233097759681128421027694012097038003538529257733910420224505574085688780685746745515397441504215207468111528417588150239112974079918262997465178043294295322980838079016112196587657628453903571307269998615650584672996934034972269228611689317787177527690338987175910447080767286682649746646184652064598080271748348529033904409481796156437804833026947002790626671818927200915445569698959103634413930705805173776143464176660627199052357291807806841276408754441724464116829358037275058355404879368291162314453900498538582110509978727948849272787591652538149414342637886282598295782935963089504802249538963103413009476345791426486056099405376154580260313497390467287857123895253567805759372039403271149718261945792773029850886459900180911086933853663659681987271546066277154063632506969560841430206417251230332950647502671979790717699084889783065310569028341415543953214273002788879451857735237707396571358527497877451594673225995168629231264944735449108306750084427794985450656400012346244980633418610659879866581296186986420375398933422546667059849457139655886082228473649319999720435862383415026684624151265681980495918662963002551546314190759524660418811931172246216102590473777456664800909273817667708429678054439327776416737967909821611124197795674620680491683081183241072150297657159242608989944928097781000190368710990891410647083976075043165766306984687920122923658756390958294597930387317601800953585647571916499100304871519394350275391711651011740602649997777227205829113958549356580562276552536266241680671323048625682660670379527208947678161804235638874658850808129842881360400952628353721790460153829090167690972574541797964260748941891046084258098866904240128841572106812239122803851135459837951971321244131475804659819130731544655266455295690918552330019081704347158526636475916133119363225000084789421859320540736424197910391163023431258714453301930014709931053381107166179952643771765433500202962812661241628437458332818768162257840023243653181842061373498263315041259740435393769869863299158270357421201983613076567467984014281919851828915718628794365460862828556834032439947811470135988304518953193743439539282424822711187379379357260357840964324368423222958204928367059407585948069917385183085970038957504412829160495354805646974039352443580329247750211697257203448830300746322782229913497176669324318207441576433370988442365731053255768384239516716669535556045584782595601329462240651988339218097643953013745507188505741717765816220078919690132791485706850502938254324594745908262824712190898467897843360953131314480549779008797851969109166555532622525311795077282793727393237781619200402634059614749649462214715706867475286079215515530856865489957736464200941446857659443614455901044543790955195040262568669060190347034753224271136103398105293380306745682326620445660125790264581932989311140411751819711133604676791245557172664677969195474131446754461322581390809152754113504530012955745451070321260703919982275743861637885324947371282983624015929899375514690363223291389468597407636094802640087063474506946755682177384778003435372923072550314378828741979645403319612791825427100104449479761159298308524184652568721427313069578418859779716784319158690237811244364379605897034698163151742720253847756912611904768826838711551660119371070763382389186339860365403053937636067085976036730006252051020033032006214633960686048724989127380162423953965379863807682630989343035582465927208016057515364700174894992224695976085957302236671962977654547198472672803596862078328729295295300475802394882964272115712919796190248579465081470070752740235922110672537324751659669598605094870788874015550758228266093930309559341808108629821080558881349569147879817201159411154107404563527590380759602358691755226894497665740121854056344883141926172232595445225265228236291462673068916693180393674746180890725911715210884365379464462088725955833700755514800626421376332617218241769824658385905700395219085129920573504602710131516357990030152454080722774445556090072096509130872490984594587425260309877207626724883732515034634849230195630227659827226016999853662054554133812067400839900089695200456161693997959319506958823372604329680337289631721610082089915083445361829693354156491551335515714610752499149301139062809444144011280295184142130773138256653729691852055864938140829551586796594227528741943803372853190260593907656404259615972126601912575076523763927973709485149503446564214067255470797207059398983277763561001479606344293283501592190660548920532074793910199936731032834579812911021059712583727905253888469020444450802865796037957102039814636841726823614623345729117128361055516907528777719448809542001175304983078480876638788130639932476031226983893172375729765390568799891583050266654985058942708266180041840293783976544544600751296762066012464364986688489688140599001453073684918040917788501812496395864313328910574795762796288589508547453549789012961376288868398995160204333115001354850049412160752995277155797787787615995756450764112980002828540112345799805330278590603338804820377837630668869654177472678083943751748342257098050293938123853296163753904704369430550978045723685631506759818495769927137020545028878063473665671576002087052874697919489109272420437683271310833640538642550973655964051859920570461005257528259132942475103858693230399254521061654038355423928956530820702763286991508491881400498524644998155128340928097110085706104665142963893289390691502353858825753641366779812786860650122332575901248164698502252827743225999673620657825068913729240271944171663282894018150444294826741707506239204228418373557303068034744498392065028890799434014296479248894594156789571007628880363803254098611154351274577288322352828155437987269424317773439416639056455749843377006726949873300544876422125175236550975062308824199016423869514557004057153261062449022736938748116906392198589797595197622326595015522696461961341111389704225373643322427922685612626636649461421807747894420170754395130720390716021780727985630401892856117696503475486893414169170637504254325742395945756725346918011060232272887296407528190981764683095335823816297757300430744031451173546009269819699549497279970605343737590823553021964617957036421652412545192002121582556261347749230995932455789146268540708400339287656028869537951099609323784833642556166611720514285933725240510500341553599069526748015107132591629299656270339974409354057864309029620610843317240265208820838640810604030253494456220959711286927330359380065391802075169390131843016184065361285047267321664275831443587660361992350148631503691548750545276542091113332575092987664122744932877148122084352594267898034414102781786329888696146265920310130833060373702940411183848070689697519937742858424067109573628908826120582148489015809342865227913862486678529054780140885412398498732229422065538280497699410927620172546532064363838672718172401711637793952591180919690159194729448925306870182157434514147165050569694251741431388458948626933307929003287473374972317644403557979231439427194856308680289287031749563478546275673912441012122019194217019883094149675661922776251298087333383966672967069875011090616745659170775686062516159159885903207052814760298988715730725509060821517097519133931677463896879490083225726650598993427959547873994554672048138247674557042304225511656947617341591707841924640317664022577006243276574327015145512012039210436829844761187936504147431648607790075102194898993369754303088571321342744075794295872641721977810583800853192350757289283292691493857089047238073191641277480881317045834847162347982964165725889906126570983708810986942117128905219709864761995118159491430297109620767398899296449731553352030171529554792888212832602389646791078287479690176749767908357703192785826780496142383472110291594330289632589927384391553888373440921727045871390374131182342047961522126557294552671766511821478900326937169336326037680483824974634271807681392847845296544273272479089997508073893495785017714582514338014339433176202828601994574358714449295045025936594792302471105386100134216159051714731022917117179861904742021019242631592913002653935488810282657874087525893910387704159392450100193421650164927260571643625579238806438292283350439346668427485435493074782316552061157229510420800264423852164064309064022290317322588374501319113849134691711436868546942316712166704618048048537871638275837612363952355688646407461545137604389400554444073280302147013377898988809427401602789688754580629828674696741557091750375229639761600437450513677767353271425946668219062821865556315666922809406605648827981354688775438438078293480680086847697635775425934466329579652271814878903986469892713671288046167764227835354811206914954577629688073359761762280423901174000006263978179907814444264484955169021489449114684475288235029309098292699082677032912414058672675328088264035251742061148851562987268662510334442935911918920385613909015551482478292794399748955071713218521922995909448267010500122655349837115035459143619065378366672946442017512458633638335062536694903779083472508735893656329325297339658265057617291233501250297841026345474128088765536180318403737315687490082565336145161685054437874641112803327276161744612508900019362651204180282393349909676864944815670115804011370940474111481488116909811627205568171955995395624578456532795564363687296383031403462875383172180869252979676900468079094962646229521447276892293241773557493870783608221820017498067072666334007455509515673016954336599739372570181023101122632995748542644451691111602432747259027100476507366253752288547338865122617434780896519090523514814726118725021358513390296399466973424760660831484276685435677537341439863560767968520072205601641248834370025581245859169263384161234814700012288826314053836471285859546807066513397824731759197783754473483926172929960747171514599742244229601106525733228372871875812635685094275823852380046835399973585973628985221032856917909626795723633901917847672048866022501100044822717965603663642288004799104232062754859972460176526788515559732589247083744696673843088578875925343249579180909100524295986026829744663868317833737350274435316886373140548643416912675518899866327787051723770385861157970763226629346708404654386301480864896383080660798026016831016538282676606401157301523126306775944320273295694041588577220824538549836026458906141215816336976314453781568500728026832924270134277795451897548116868655652255960192166660750236260211116050212291343767450067082714838718402590672597111630323448927703104420468264002798496387254089551571544968282663932953346803700752150734107186055498854853637350364578441169334204774208256143756053270050138109033939677904858388547781624399762853716746590349375969069543266052443706940530493488478655992837670039066619964140265597440367706230130239487259531293139549505886616033187988086571526503849625533890229307583017338082236409739889706686102709728868788833285028592667609267594865517355481905390356965626244527561121350144912656755189564155655787383060918141139055740451305513657522892051152640371240598355444913412082445073457680514143955986331684678928000754397698813227171831004723820760584828026896488870603285202837452573883431575506412860167618648297173279897911762911186527010963873490946617523608110118535830599669038553945413955296564160358039010478974493022525178522227914071367186150565694024692513432866359817577289194068226428467014155010433186977452444785341725276209104464834731401532133305982732073985554616673069299665564272100787640641857712979488432929338482211490996657824562559991416161334545523055972332542814970477848853234045887983699764009140857524709105621697050606677139078378250040329582594016057518010036102682140118167277640122670915508623573038672912614337089514350770095618662169646551931833461945084548114448849879992921362303551618798243019332920795650333257127418613882045798519003355368918972704024811572002439440727544686213163729094031475773292154089393392831143229759234498989596001138548517689772122421172153747165222351010736211465718547272743430403729577983077894411625348860338163948572869025173849503714716922383990573173966774680292475329540748520967996376215876802492643261644315460338945325443495623981452495818897020259114246749819298808563611958040231700772509687272081111712143225606115672027467629847233869206035514938942524680212520403973361200568589552971460596550082897048552056317969239914149060606778239703751811528908534243819075630369066398783895341162587993392699416261009718135974851741361165062107819428067456623925432310893972115716887273688723501697790829609112359277347000986315444022776946239420355792271976586531060759394352573845242138740849318854142888117657561596507262214465250904395836092507965864517831443938668123065828801853819080638343778387449800559559119210306502580004717509637403400467911939058660151203035473290346373498918351055679920474614377283733689948628423944164518360489666944693800805672476373721898232090321636648520428214470582964691526863992300577267373473242260375317859519588143485588868186215109346750467303575208362680906277880297851959108633153530415492793098814096873747927241184536444172668704626916162627382977114925301522667358513364887371222602565459782306940410577829026013830767495497327891495098910561448096089066483329730883128610609961417639017663072542373993749206664331673987706499746425384836895006127185235957699978382889238012252454474231598681757292437099356767847370759325705084954220551467156514173268557996720265415236190166939542860889495046356455932372308863726623794957941332879316061403068721859641464034347147484436920745503258250009420483451898394155073084809285979383631027522014738803108774132060769884445639651822602920856367770922553683560442917246311004514820621530707752260877438994928403971590520476093029379597642854341331182259771529367466305071127617112163157278719005084315464203414398025291500027683301592974396904139771821165917132555421773030499674559004292704807200487928246378929772934182712211370068100045157138466682858329188893633022030272155370370191172747661497169364072395843742644885718433961590901088136271872328505683869862056193594019731416829199422770714529886783772201677933224898563613478315552165864336605015125190373067849451133185869811302424918636387227080050030527273216927940096159498729527654342637114782877358678977726670461368690882334437809734532103588043592845745008401467024533186252765979184435288321424522763243773226057222444053625231532889883803735867842699252296340394991888121785151857427677845173044080948828776531062607185975729922936666449043084137861940635260963543426210942231535557275071750810158012422406046113215874982545810236030801879306690016686722067201891986502462468570868792540885096962367709451792297227249677006663871287331262834834096576442642006575608768804310265513960239519275131134311135324611588215336624283571056894788542844605637987282944722863305113131079248079362446620981118457958219644074959938949927828855329412077350094519867877421270896073273752587544270789295745479578174835421918460965936602819357752649560195125245219974814735153544955412524768163872942206036382565131771475453977546824253745062466171456703424549172141975616100167645196436354695899032028174621204731434065697309531082863830899074312222750082082839169472160506675047874146127378031066381170111507350111872942305976707129406135717812060191744256521818766672019968805350415641427114184620179127830391920288094628246883683098935193098552349450954700748305379591685533998065917933238752887690567210764993190806777930583855818279493183130171299689639582350045905753660291693026535998816741968471732751934837101495032724065094583072339249715149307074166127719674980696016538514918089365028015428946412924082218654098460140299829128166406005849729330582074947289976868633395828807464175136327272845873269719220194514953864287283757731288891062911479449361680533619580888386538407640806528946783654396789203152316260691672099671193717069114950944570735767043413482812260522649575494426158507441482498605907445100452379501620334587675280367147702413830998467946675236563244732283137362774021654484472990393747798053606710297581488713505202961909737617899311186450109300456444059692295044214856178076686234292972093494019040308024625501316476653549011496082111544143256589564650873646480534375408428940695792818398146045403878443413216495937057941427657588474503330095729547706743419297418903725828773665098698600394341938548040856330262452210821669919766724187802668441490371936250853335399730384611291868684081354012139025422088421842599121893320510432897232280997560193343633553608079800661596785293245740080033642146764857780896502045131251145081320330021904123408773676046089260994063927794425678183764826096063736790170720078182770955735678856517126241149337418592460535438582940017405248726159968829335488918208996785833699940916565110967786550661669579370424903667726026382867187507122076187350136960319500294980538842880393049941683005060796766958630216305426663527178843026839951669840785243413013092950580262407990723191187877120120240932621607418000798029808964157266859028390567348029502279048416979131092143337766031280706774564743951065854972591754451969796912378433859274058291198690972934781977250795296672814012694885770424241188953355666502696776979192783567253546738266933061967448935940743711557719068026632506620554596549697175119281234250204019792376687814902691401474395190979796994259898834807742528114824745696880819371960110412781306874432621526340707620109211999082634167708615761135566865407982201763652499751003619798073047576175355258664540271760151802113887068142000250244542603946615391442555549401078834337823959767266858040236914578073215900926213118329421451536500345310118903694933448806567748300418340327370811373957464729094449687556631692152136164815729483682259516032513099039262322333629068748255306263890213349878835498078928670206343840487751811229356218897959432548231447670338152975849518749293475112452616575984255192076897203384398686285605899527854972383483283983092578596839972224647110620233752436247442232729316968874293108728743327207901971472748503418058417545735507570970095625530920290180906872763093190759480067619675128866716228100953479512375516534280289068495673446222599224999171642729893343721368427139495349847049424105749838354241387485678274099631642510825573156660739312921535281216172787141968792074098463742339739430517156097996924256992665045643895808395139533372935386141525992514962682908265128139938952406217477873184735436333147688219317588059395358426228003086136431066974813580718850776251831241892398069993254293065773513641347567211805281957330718815040081466265006787259028002953483664018274493046277577630371427410650998333495564339151252122390650422079163257455546148271712472410318500081356337346394353208760211409001872372083364630272419344750960951593973446634211770592417507046015659201907890580294901498714724653431138650068531737285097570127353174601041686230869829441191971377612734500316017262998608793143836691207612140811997497542493762245376377765834300888862133378511542303169225927914758170717921474351181853829074777313600278491012615491760846832567526989113485406976516810276457642350428064408316106742609627587721246663596674409885692327642834289406055721864813604327310921234070206231112574664949855689562385165293401206154601343958694463384803876370527149395754436622278665137641626639692550201270397888382994547126506207395546383147292338398053480461355165296571994023342200601237670686374815744293609497101395822519965442313333541288609557615155964836580444336817028180717814777685539637682680697211401684453542225352318825152322210535737793302470817795821029914819652762619646751747220039978802095479778428659165791378288031765872900325606812162147700315195003846456076322221117652795964060292780777360354626218729572403783816664981139083672437026275184483688746982799699397149802882148610563220523665437648882267238307860763929645241205028029351475523517206794433638143858033139102726884900537145431916552325295997569375386657393457459976010275980073905214088005245304115848396991614059246727931770558331046297033977730699739880001176944142719719072681347819594374355657306363369715709091575055250909464460648746694134889230134635874180201462150150531828546235652806168326335391244896775973385626086235855242250127951353227391230489205421647594308140461678082478668202371123609867477106293232526881033212489192335948247457199869112850813363623922450596153326934324259069037815011699018827008044824070208777318962938119688958289071068532808919591237342652877197149655278545023853176274134241704808296646736164872547166906334716478641961707389648761752756657120998002692776808200621319910584780165492965330443495780631316299725677136151137109534587976804816628514448306198227796092913071383658139670121362943528234382071458958092456081793629392749457731471543962070694409325408980668233975894691031228929375523901406228935040397033893719227922809955066804565821238012296612755914892173578147611294417942371760447177974770386493435628984200321247813933632088032364843710919948788351158599141162796413577025538669524292966988857139782636202265168683706441408265488536551643158852433276580348483370417809917230711165046437404756790137701927522040446946426129945516461006365652572365664655160391105578159785468331493970404392942901831240385306839941808316758319558173012819101467783660586912614938419266967684575641020273134597002273843843859229352723766104103008986346237310484321092950797646566283337133140871946800346241538242145050954403411284481735010040344491400903992287647096474020759665081515850103717486420095727045800072731472659877286734576816389918291772682001279716420181962229813357343653087756221146673731343770695781023955177651009772069324419944987125091627781679025937074128085524413596395830506982188352750660894153146278533918435243839421408772957802484064897377764420915880339186255888951254294579271494116705860596479170513356482290220315595363648589094827860952019440300220465175903919393970329990488930923290750745957298571180874816125472215146738795158761346776925138456321809037859875401718966545127722714377147999617496549947897182662111083624225167699720176637215567279833646554471703857781174035869096517572864737107573017401952735630546567713711968516634161532835347548787387332884586767798078406629781938122420567152745645674902168550902544368786598032104057886826673511915509987255483860729355442102295662868616395369988725734018439361310390442314543653842689202051355376535555644223669405169099823032304656500235831075184193406050737798803110165402250813853569683721013450402196178743346048784020422690657344802665733755832463076009414540891819094049594071377779418584886958014976874574792399000192633823543750938557196627689383879240130162888930941634851079506039948639696100839533969091933108994812707000951794367759714094797257641491846795734726421237395791296531831144702157076574874988401427547241541099310188616778456615422797934051084326225327807652930533217247997046891100055862484298219278054527664677716937749669052654846068353500573272723126582007845035739093962191452948467665190285279860079268381651291273730475717767853260206642919165177571064862131291136629103510942935388391227184437571092239224353226217302830695720156322931391482759468791778390304218371616698748493652915160721128775552766284024903549669753094869304247941779571217871241880584860585568613873195796670503995518305929103310656688987141778160720124658155095431506795211722446965371274352587613394402798287419738950946438208519484071673050048194993033197317266252382178737919260231283489703039504449898205414645598000089735195554707400275014568320927469033847190095482152835347851512811915871070968329838645077968626080043206988940255868027919673188586538755382044435669886870592019325835269706234513406856190801253923775357306460275157308207719971960197768699694428865483931189055674909980946485287225957442932355820271796937688387103032857684109265835941203347734592447955987001000278747817469711040451446041842213162003452182393423508668753171881985028239948705644504533717685866472461174589018095493207721721599190307904183024387206117215936234814103467094742870017583199165199020196603553928902822685477806675505032205651119165006256301014141888047478858031672571208926793009509193132602784320411723883450034046540539019256123570045645366211422464475543351779899115717236983688947011223741976764691298640414254498884626067193662326956740669161907528890626935935234571604956613552175314272691011982035659734645234031948652605861307427670393691216036780953987699652007750209340306414359577074151257709781527364942493290396734175123135215035290296675026182516020577715762363203236782999554865783595053836617302138599084690847635030306552031969695925926593832656728098831058435902601073984871421979294095748413933801636661519274228109945735077067064097185238670942836006671917613801394188481754093066246500998215381275117459877377758535313412550268334363041302681852652617392583592525180483179880810717582885785512347909569633186650259375292876873613763813767938407897881938050413838469237808790293865155732770026538134404634400920973979491954476120058129434913924773522988473699937362982990139096476199937537572588949678426988027801325930511215194890531006013381814940850965169855888047354379956928605114857052786180310819700183505648819745060146077996971228362391015597094659771397414837106607682860132197526247166195524417743646926469367434854583916609651603677366962922370429343570111304255674906441640269648362770319121185759735754113353141581639077458451095585334017135070673330103851337996760418560459882903097806087551504863244759556623350004816803738346774001138115089224748341399274687980426319737055653487278162869111062694873657977000195385083621884407947952960137329259544223394755466016681535693066091764238492276955476677458057175351261961035073169608580137895020708661606807936456068018251321557974491607040797846371054467476043272873270152957487440364340639885267779299983386679001035300680371124087734481065760345895803232059256238871635542641176545847454368380656916012078367795838707236825453407578539637482991107686300997081178214565510500986716118359344863210491540720533526693813097976378604140463602783514079473184787642820531778213154325778282543584960000261070779917631595614181486034673838622856385401612912211279737537347664646186756617361560665582648248917706402737656150565463467348002132442703663685066848704809901919329235367683936289648478238794647948987254689765107151211512640803860088032220662038136795314005713031589592971020080946362709258711040044825554191287780921102793670306203964677510244007313898509410374287908059842340853624158961149984357650374616646225095695842869402445525292771041841961744294370472578617705188492416342668683923874672808304890609632031036890925169983836803905801527714364378062668334570489733832588831647391271627757359366643904208214745844741537794538393153241963315380494871101636289336133776902858047362785449048343589058098028713647086538752667398275793385448617525766183187445574007376039003897161461786604879824994254271106703999918363722997890165914214709056026716618418668838532120324388819625587609588521360251356968869384607651556202182212573256138622202304793657564272932258071612578297357545101293726354688923584305644509559005810922085685682662994363522548429406036563716075857037182918624753607268830210852804860879914403082533067271505510507341577083483592123144031458661502590954977332325815294851730153972447807974689361188891343668143615994404077055369929392089101837417754684840883533590636200201823991208923147685074032446710386938801220933813781211811879946851665420504907875884330569891245412552255254217001287007424611172712825670003307163933691829669761101617174273439000440130082746216647895129938484658141893433544163130608497755468996646676844816544780647866621131649348895444678263272741214851879742460628074071201241509112016121808322973960944077649566285287213716083765212828055966744666651152825608286240032562026017915172795956164729669751952047513818693481981856612102961892988106411800267380709063295013116850957637135176903391626092591834489756486154069244008875833908507178651051449468100306932054415069364950160922967719607833270433153925447502876396456995969842415125768076796013994653977694232127342574652453193936444317296377042146849793551110272664294471215495708120425063532291916296696626464819908434134865965237233987801781239121814960154632926359753056889211911937112523843075987193300327978386468956031828002005435313491331471339915437570784246873952328690567020748235844585341240116016833512130788207081923889447121057952898075641589725432053822943320955047663435937761038558050923339842785320375630133422067602998805194012895176662699310759456211195600223014640093747292198963380101754996905753217133438139519215068150589877319847574162863247587371058415383579688247016509490175089007511711218102379082271151120252754585989355295735173060265694835644944081603582979004159958494594160564968090026477411219052176061426822798713140959121978769226901587660388301550511165647911601583652569077400897490277801612487805637918605278784773512023777987039874180290547686140085582423231602920678643556945736341222392570789491509347763497724255391393527052970553322081851448003828414975873678143868889972046017916477262239562643226946139222351776024880656615824232849894234174530188320365464255061465402552808106880395075797327265898776866273359402880869152955339965416678426695617292973205035547384805209951473746915536196651681475567949791535192721981087924443423312863719235267144599783069589043808989328624179708627856335563360133818047526024658756668651951950567486604415565841969425392571620778940784036602504815430717653714824518215660975508907420270954525262861523797418225294184150114604903515649009105567891541387933493888811351462305936596296391978960158675479962774596525779914142139401066246954443071784552690105850353320677882266438102084437407026142822343754776724384185212382390149253883767441925988235434421484724010268934680831567911854132922901487498696127676926617203717399549968589297890750598627771265093555243015619730197689794125477930792494196042531353643721094811492203650549301545379393799757247952342123866519108980406987809143028529391111252880237807422482597124732613151545942338890446571397955554579113781829609282635918514084762943866450281883102872838972347366404635270183323352144214731958885560361755735125273326124210720965831855303205496072451749304218120975069268448513874546012441697887348181738970701256906054025557235214347000029885800594776984824466376692949742637476088724543509293903500263354535107986820091447359426213899294565911974842384052371934270385642098981108781577270479136868188204080013883309394022612858767283798045860565870530462637001500707500232823128301926406679975336762410402150062229549943871406288931050202623670186036919016815188400970992133433320393595035323964536613647651207878483995415961145608180696135174401793403201967856823159502527121395201422000511728485630612552374647864631252470721928425746081466135436072350213572925937604630421759091157583728982504303421438580391457623812258481957295268067184103947246330245740775627560017552578594793186583566843131178931595712467781685704406856539247767962891338281342969251197112479590600208353240801630499358640967726801823449315955264053738065382022959645425661796955881455387675887424495683558469689575410570786738616650283792725701069167749422314816643035880968760962068770086878956029983822767028130506605552969663873055254230407499706153094985398595191939116119645999189406783744600233569584299872878910872236029019351301845869729048818813366265406341721064254397104087186241539905143954532529547375078687534658107375569998657246171369575525181574859870880795594348714789014418732315171808584626380394245473615738769581268637286128091193927263607752452436869140424650823729701792984460612618784428912316977320406852420097345776091050315919814986002825315224931692338778103567614440330825372728989757461762807494271695317522718074619354718940798992046196468433380201434015260818869480265713511882396838356925579411514227289042200621998349007267343207249313879142881197367984822284500157970886258310261840646806227934727063670309816435548967284182410314479146316669402201451520516079485032752238080415240483501472477613469088234405167365432849417726950124308808803753145164361289136530778418586883246852233591995922905841156492845920345491745971836690667174904570997049472805259114006826165765666480459650990818421440833112523952174437204147950014312416877018164319202787858286279785125233027210054756365244357907638560398887716850850878135594013395204580024773116866687390738420326926985233670255628864197685189347697634300763508243603213405294887809518394819726193824140678578176291684500465547698480896203068205499359238513987640194353700845682610849438685723892361133090487598543359947412464913342536102930073551832531295157923110909476659498167548711152841491082999844402612070934547942589192901915996183229470154643666562043236081567070266324424403134372198303534889253732846150692833594872438150865813324894991111598464823942533393511774451254352335768708254509477987667756498709946314163469888915475106497885610507462202205068625826716040245469526050836216772778090532605061407119539845983602784149136074860790301502205489458794250885146269518254182641430902241245663380995021633926983068547346869548398017608439196437587302364471919796512718165158762350619297647811482148511953494443425603085079940340844622635251913230900584499886004666619165209767766267949326967181133924497231214939190607002560368384814861242267577361980976462022165969090900038228766047230283872388353289527601970139797647873674241319413970918999913281659808478312112936104260827779661013504581029718985133014850231295763635883521391428099167648909722375885829082500126410775744020861418361183316359624326354040409918256064858638331984796192898213523821133926800450969677528636215063928818880125340968803411688762307650916251842941887709838728545016449647582254032901482792471906140978332267348735886811481036608776288387699230801573828104368393314079270184446848394596732569837989294455031278826733076577801533025553847796846644174892510008307225726359791143160149382638393052648765373301085528901544826819512558080596467261816317922738850616304545141428074190632638736629714533082135442438621034526294358768602928355817335358607132578086792168784627157229788598719321843413548487261918417552768379800500078544035123716750795219987152036283543016614260833276878085299361687227830652526637001210611727260956211353130492476545981949853621065069280549692226101954480816506545256326043790165348261427985388366372871346747207246350418687824084293479073930120955317637867330542739104870857512279334235151527177004266557310388023165209410172882681398152705420744882658008794415409095473991982192570604192402320350146833670298705092577339083499460011476109432282552361290806761943249800572412714450685513216628419004799662307774540315932723167319815506898588191825972644521286983574339256059972767080856829907469000410609399291568049274532567452769879763060748489173292666965042786411399445667294350101091236090454188101980485966483846222933898800076622405713347298650699410499440579932229902196000403584269828750636919314144428311073178786767820546746500530527698181092429405289936490519091323673988945638118286038570185522460617799967386607082519367977925204672494208812108153690583582833784277260305235061865995590211242649287815060876313237427677522119176095299469883625810875758287106048634500852056651774326534382767583814685482357883128994383698313019061803692537635243257391994905700862207707240258954209170326693151868737377595306227855996162986768095052001460973293354954073129913415229982480484012564426740334024637506714273954372206602059303446220454604091741766610822248558031807306163183727001674371280298654885083839107770277172585121794206612692481060885905544005740322076571334601684913325947067418117887631477148435685231217290627898235978318614692677681919346532260506720412737760629777666663774394349219302723372589075503372375576398827857865486909657160212525480190099704619387985887085558687099035889701052332631980606066195424617113131688650561653184322914630323752103120100617464337652239780819905732595589542964618524417893283923800099576710603115903186715748396866452566199164214021810243749067724460020990692373376233736275136294718587408795064697590340853581429555835239417473069612077331774965241298481034881835403252392801127474526586163577994369951981395777821221507993445800014077137752927220160095393052957885909470452150890067899972064799008842835705943288881266053492409848244200919992579956441554234758092360345506406835486568323474562058762574201626777756862589256375972060268707425286512585587620567017365312240981510611209474212370635556565011027794283489287430038319428080919472361133868462351178982445762909957408696177590030056348967856961225352139687097201375669259500230631207335941097914271217144433155220970624149951489220117246309678161903674899456708763265368560671180816210713989774829739722486862127886409385231428927185008479078874682609724602380014155928011195921707959607552601608516103173167109862013134382560885282224440497535720142691188555757013086794271714239024593277825319961434532648230930275585391314628885634931824716670766984023411365385339681398422177256234338651779773816979955440017335465637034522114006499628425529671003532162861032856613040563282825148643372122488842089418060688346232152618787286424442873557851102537226661117564348583340155785957645222535901858375021386299045952258132897575512221849645767091696335529705886371333791084966118979574002558523581319949825167484274347145215399721169895907138690954937270998188159328698484333227337629593419705400455266108253114598370659757662717121182738499744636780252008789157099208662488724058514257547931025286608975382429691022705928464029411601368273712339762264627927274349930162089117612847857689601185035564041497432787365445900693810091981160568730754811597231828319029093879309539385348953877572027111082549790638716319402735842632754195094762329972529765865512352182379695519308564249313612060894133356816577811071743704234799282820224167359161310868561533087590180429086376439417231521586167248663666630354276567118753711669953233868836542194133820442723128636659877607021443663783075150579378720217933413312726353111087066019861935320314833672225351073748361012874167655545270011544493838934368350811241691663766049665979640578656851354207738224537323600651420069203008828964672630359587519000111530797797899774236270077158818377684818577791655857156520819918647418451299781002234317732019019794100134959464304880332827290692892855558254382312203605780795481653359163261714733136874332752855106627612833679590599148355654095090002821298813106884370140186961730844662951164111145556269098545497306374597595608177172326416632641738117297427645129888748248966154326687958570111397951100822493300107838984931132783087939930578471139685255602848505855514156839079562850185235887328764764413200016570889785333517769353031016731998228801654288394552818230162835561137848513050520401389863680745377637823912381086111017715290342107403575032423380519484398711376045515141144252654170787647787450712373083754540797838430358677389370941074205034439551006909580064115661708678727009786705487964952456504915143011858096301577828967479670029574129393119997167515433155489624654874972196975689763978617526141814967443278597832311445661435066174684075884970889241241907965122337272316918497324451960338472954629063749744160539357381690208354557401723373436069384469258565833554734579562086467929145754565020664673956414706700438019194612997750043893256148971298101512605518914574288812657372781636148314081164209962248526418121778326811221526796160022110210947688347229328389001610626700879668062525055417131371647057238347004949914139581721391270040105015081862888154694154996879420825467490162413337609874995326235605129050397045658347437434315136171374747385815258341713723435444466493959094491594746306516528789675520744304188555313377734620514317926059378292092013801785037181406744535428953610119116154610475314728584967341439010619684220298157219683954072810630087281698232615903371981372917526025754498123551311304895781341054447367904275461929343170829846205656597929061511569975004351109391255179947546088534125698643808210454038062485645606383604084588933838784481176521068109149933342833682479448441096676673912141290832381844591909817059163604311721409902273883961095504020333781136027491834742132078328565725280870044515367865826940573246725885422863944873873097386741956404374885935773577772794017896422207599633730960557150881865016560617793947993783453160205762318955977131632405281731332897070575447530290106552625089711273970920303668089636766812867397233700370507406330256157113572688493776863267537764312322887253592197520544158783465185451975838139977353187377308037729048136048208451119353741076531398498136037183676798116757366752564842879103700949364421801484845284075563518638923189178066642782344186225249327649442719337185179330790844748023662190094000243021562815669979425466343346997670662869044971560667340042074446027659029458319244604582863743153459868712758862053955993836663567911567498997600359272650383980381875276120849923575639346870589823742695500928186774842657811946502890567782957077344219458388002228636287290178520852389866019426376503705138749129322396578353037547975348715815526844861249534594080393752378831713282373272787668261388633538751907604436501921851943424062762960632500039584321258244250637292131801078465493969065759752173546415674939318422690750521320492828393440048618038634686064892608854830970462131128872353522994445856991775416083382686846930476814103288693895202600429332450994690251197920957876024840603993761963870549247485092289316795303265358200004687110158032900395992351879929345689667219579064718105306540294351004003796714913898330678922331277204743316061431162266068618877551025300215413849066613626755918685805383647400023978412571837215740139244801287451900091503126477058488547202949053254623677488979961081340054323074974688857284957616297611034758787965773782093904632264650253334760597795079590810931217686229114710085748616218134303988047715634847852565863265025477558422064146197311913614686384869034854590692369460711222842224028945496655738064539983018552166869048654711428947864307790769543758310788295472845470242159684743792919662962060800360744676135547714799810235961880258739369626155003784274171636117815726643761861317965301159502216108324068222444951287791983195915927382213403835939328327733119105867509129416572087127504341740197257087192052897463071550963668682018441363332421324003657998378097292610404237839480974662373547561284701414713096680340566083380633519251781882966106649843152601467144890415939008589759012527153363527230494233045365726212464351178909830170817274022750135106623249656056151336599710569092335060618926535446072285692856139623442918390079052945527417583470058917710847719067219094616048410305670299061727730652312605942645571131247323526170280021112103828024767869420362907845300749175576746487853244746905944528702637124155389161446623108941583327845232814450076006103277406369593041144564198501636022309076134182318058753033677422357965852763824124279574238177000917553947658425295317836136150983356273344046832097891955046662852223169894224101274996793880299774950414107923434094531303405647571310553747672847552810111704886161079965506092515161451226674757379767188300333831775290999578610280716843142109685816264513990740582002308398863486031135845540347119431940332277594868595849020114043979079453780822983862172820284238056369645147337579190854732445931400810234828124046303166581469315553902877892978375415283892056532620184259054542225563218551617898325493441315342804932549047936482044196193755469718917271203574542264824211993886396788652713747534399208788807731354155928662937505403920669983699568629093754807814490394916801463766707486741257419260822678145919686383316546048517145767286210485904029102600678215403391460547935885218559400136076436603883896238135833501840661799049676786920914191005531859410346817461109072299792488183972821965968363560746452951176136653261704936932380151704566059937164336750794248970794009634831562824355939938594362608362807517092928531530471647085178533051668213322073302725771598262422844276980671672348282716302493548259056931970552421690822359522341774165173551629001099950173434790775027179478458585649241842191066463466302025489631738400997249408463190783024156859012915694902393233521018783531429531580352165610060032008366845964127010551721921432736733501732479459522674314710299050913939232546043015988183044430850764721780670913448330533515031243996360029189197412340108754999703288183231333790068442085600173834075425006065058403079117627173445465090724101152144405785343977971353029463676491935436627483361784549193489452525250124286900549241959172496873419484394592597559014773495866742302299888781854787398374321484584425211148502914327569000428528676181824217304610906408896835024251775142855215977704073460748441020470628726669707344538566736409669532870356181003619607143365465561971652270595783658415023326293887806858057123850524789974304134716992820452326015803371094051913604138818992458009659445724084029769373082008127575014425295158390724272390940761743433279916096383162030056222905038303943255061448019106095106269062270833179543834559430616502191696511317236916296810687157663960428134525402035354078055803754495677673721135680271404476238773567404045823126617408248455368193984842684023441377954896533411254305239134815609680070562320116741253156292912109417925874849733737095931931062649966922927075835296974352716237079519076166247163534130434670270664036774337186684530283268484928294844914178942396511069336237076710286014910990486567778139787515855778367800074508620108504707214167898015284689239456184339786238647213210194394943223734948420981256046345744503348397466055430431173779577164076048466470884488128253182094617757162606914854977975974085178490090270391416251821997983370174007690120973925970233023848664506242523663957578584543067598403178469131868453317042132587835686820776373260193177696627565464217797239516808662348901291878876008385077938842077537576175666675450484478893122832201538448984295802013479699675550866557898170028004238167457379529662079469680971844822224975424710809363726356736097041082539831346706337844531787563372707292596937985935316241763565861747653805755439229870018064041287417337558550223215522218459987173793622249825771774967370285531301018707624997896657370997274651804276647400614245513914758872646010530703404013462366208239079244884801318837117343357789229113277508519500290603834472025208228558605200236352032958398511174571208368775428815458535465399494628439264234487517318378134784256117056342427360280610715272299585808946041992119519571509240404637459674004933394043103604511983178979278698156567158251088995017789067484119074234873255447008760798159600193703096518589278302940433957641392768189615760163281486229961358112931038398175405757302829146476248304498123743610847890430569143057519505724389349263479396244402840518355630113195067307928799083802453086542897863115291941430779271262938750467423367138644547678632489037551495849790452563437471083517606788723044691461404460072815825993243323017502448925416654682576279742710559354222257521271637099832761918017791371751105404094239688555458543163259075541922708397235388911303320070220799182652664750872901073817446428898821491693476708180676825684691532368899992716207959067162128747217892344250214989569771125703584676140821555427198035002319277964390721724883511844448746268730833200693469979758113225413826580691664033274170811836132062276004578417408421542741680729702982552969914723434230960602970342961749670965781462192315777989746316693463724646213146440435407246302266789594823394687312553295293721333277620352660122425908190230178442080215993767370658182684540005418921675564950551013813367908530506606324378747611119303446553930971360019939474959913050936440090320299031120489938877020732080910469452644061076568555151946426607731649913376107056943002583370435300279481122662305741533951588536967234736273649525515664256336753785412569139959616009307611855058847650911027290936519802660569749643424543087462428702357027553940259066628664988325967257831099392655203189377288117995080436545308667860017155696918262269992968614503386861877020996268361287044546116073984734299288965012526894766402969631846146345602607770574471311003448388495127306696003712963522632189357785200300569766809875041465293307406552004342485857862492107242819844982906667943543401961930261316358520565094858476264620388262828209940468489386992900757792806827155921510959260019991950155437461670517655515421178486819694927656341529575134783553401198014122156753180725141595427215802359002006735084843102493451575205340412699110135216509045256985017064037609848558931829605555982676273321783989017918320240624234960203391486098773593546055449623132297586617120252109362166128805153996857891397312702333747010677645329007549519527557282585027541161512892886625555998216963673228896724501350326352460810687313344200606444775565865025183716255941392872713487275279243204852895207950618802280105539259233990926864177917547422027194496352326421059055039036663787894940792938920045991961678937889705936521263325284584094425654093269963965629487481738888553656770158007134766347473313978629711763874962807696694392878486443471459923502771574499960464427249567070546939843456856657779604698600958310555772823676436898532034271553145462970919610780473736663939650470829947178349773116170106206308747201830455353690603276256045886541259810508094945867941605945979693222930167865898911084228868125236053406955770111810133263337612792754770492705479413862128787921953728269144289903607983248976280810700430205359398374842554619794307905377873714578073176766914727795346827311003756726980530924606470189674920505860202384001541453782783468039662659873553329004643298000279687203531838454794403298166775722116503115340445466756539362022167211305570362254328340376897207485775733080687926717368790154344557356196419781610226147213180258452014126604595289972994713812331014032656751546071939626665718384862973752313380197716425306762792800557091091933711754106994902025221150938885748091760897283389510672797099136310788288660307210846015753652026967128410382114036482980261027374628975320428916381660756058089088735364505307859882702974252461871818375822083111628935596528293830361895522118420005396929477302694880880152786546048734599971234002529463619184983176534800599355159154832518769575999840155909951504261529364578299054765395152738775022061971322839695666682906004818801517434639246259880648505453832880904110643909044928987265814797780410117838163181676990034708284606139345009732516677137434270918503714123052736222325943465286547850021278091604936246262980641766241263189150958054841051589549891075000869040020816442811520464198146726895877256675763581139389017349209878567174151045395978358162961846001332491981820416494506487990114883142176024519493086887442217620377288119427439262181232228820045103187006162959936652703116050148350810827995378370524051240981281743262621313487990249170342033473104879877860651875986136892498447664278852602958816913283310779342737187754578259983823063220603971648765151041897684766665238708141257537151835334744335683169697528402029223738881524076086823791881094924626214720219380349485508501766398120769886844854589136463503958508140958211785397309866543907651369208185728364169344005655937970342391354603203970136951347041934867349191025971628480092224193557440878030533406462227040185242086129289642699242018524073480290858720703000822928038914802108692364295742595768931458350859384812609030273392053961395254653441589802906192081130037607987315232432289107916266485378266770117621319845879847469355809593656389692113806779559045863549992679041700040900894542028593212484755928059268103261907015389191590344498227540783765979037504393476325501407379022064367803006016193091700865263715584804169324540705863298056906514020139536808249164578833021681127665716982414480554519657390272037563402189689155834538772525870961546675987273048645624242111681832613417984290109989493834698122402463325583316738140792158864897151017262799424934267623062458534505534123632421371638698470564294892630937979419719999444661788418659434930957457648840765789833236368771749711737284139948994636114321360467766714444949488059745451243533193552848448423499344373526871260086572165033295167674149949155174682901762935706930438965584953464884102270631848887844076412005938768234654181698058814429044214938663903801052094845363220991673121897375149955724628448471969855992675056263892388123416347811392541007930470131519521959706289146759086703431077647816949511443604620563394197737634823683780912936158507871236706380878452828167568439531298839756821490188145173678396352630937219745433044067191834043788706451142222345472075794593089009218285190119835554340767456727139722868902420378580260494190809669732676795023514259856183330047210784879484239065464870508416527757190393357565096766208295477488457567631067037571111475945956036118733655323900674579377642082275778212371128607992671594798386589333627928074485796402141269959763675590784157412923297682243216118931448475009344875472109963720311314030365000830406377536440126116268053113971815858796881237140609102328845116642859940483163863083657264106202179143358864841705344484653723097294749489502273997111954328381567423128317300732336216580788022949057161498675651061688873754018212596840201907647903898494934616718591004532113010526643621617766797294590110878611893002367194336408268296330295228198864096913704950586912837681421629977007292027136180654283359291024411729043843225738677729744519693828248808955838271923867339992765966781441339872274147930436187009281507222135859530347619174684628507108790977614468886796335603153820068745671223223401369667877275642208636633124383452504667642855390134625083151126262368787463137449957968171014032758958040343295557406225186317847131282681034935308843173387862464974436410862927713787640911534502737588891270233402176309746117914469116486143204052956559492112940895533272350159400316418743318622135456165919034761262988441040214191638044090651647728968399807967200300109609480659406575208936216804195646900750946880014974077165166642880704868919293627082064144213253622114484456914097317368070479674713522223827345375188297505903401850347375756629762349251188460919383589659880135022582980484638089094505206572640729706334014758730443057801298980821047876548735277081097491890074680299599698300228807003379378085960673259898382067182525084811849265782620143496246069010119456758464987412137225001389516935300980334715131141187313391772499682236039001278767684033398986665955857456588415352988901664416887652188702748223196984820953552392039050369057431782555687566000942043083684205963676226533537950185973375415545618104080410011543815631265757467532384731485389908691995257601160432938952913982136929343658015311915394117618288058528800317032143890189716305684031777813498018127209718998705957624767331841622047501272447568280379119156524095886685323692568227317457527802736158451081776212118996628901278430334408367694708673487184429645152086914872871672528168687929785249523611756514547274569184011450301045877609687870618837471156468796294796418889721266320954369067117719557031115523526778871564449886961231709717282505434160578000527484776896126500078022552222202532271849559698024105760743834701214739893492633175284838053299954207937994678255714842742123961375546742002449840910960893123327334675109461670143547904449909124314263147512837237069466168252383062039706764211008486217190020427811310360371069724808942704518096256215680103218346904577052453281054633181968080116918666721973615765984486587220604477340411441833140975496255628345981778043282453925149034633957008834080919205348636544557290274162312366584789657300832650141590181061175838173669942151244156662014846763854132623105577272911890456027620671099229541256102525671416269201581343714227064109610638040307359378189333529061073649570020606315190816287738615483672615538671065474762646520479604482778948315242375953831160673225693436887072422584989468609688043791712990157821039612140350441857130359660818053644958049594568829533003628381570916940377898175802043160530348221656174192643999382737601895394597726568483998467930529966563927368889151620292610388667811018996804987062789990434574732740102876535636491283915713276463243302544963600274366779898046823786880081482485210300732214566831144249399100305098850014185335524646088088458249108501799616318005669327027027925660151966566105060429148030316777655296254178873260483425161181947758843576481853967979154344875328704848030419779292962855784695941059186477415483668031027569087295460577174916653182761989935287775924511314971166553017249246444430514046541354335558716544476299541147131804396355762089583326428673760503450628660428611130801465587099274040311415697474034309374906801449687993586597156391307498658012574563847740679854686222488587247840720372430371335129722230158619574880756965504791126774997676874842514155610867216406209063442303359140908972156181950612965151284097384220400140244192460563778956046990699688860831865363730712113242801256643159841037378047030257751533935866921257770026582613059130060592867934378629191570282962980802298297538916742058210047865871302830538775259897128226108885842753683664108559972041292484289540138739547092041788861128487217994506414415163103279361821352895004497240249778788482573230640762956385309119074064230330510360806281663696643441367728235052310576175224318464597036823132477443592321996902379829046108205604743573834982502421370461501788997001835039419632572505621106519157493246667261829426655473526896103532398355668341457539812214009558166165768822091842576579593941716348769499775104612184097905344530470721237443465084211698182463988362687388700673120650046256222950135056675970689897744357097996131784612754734678194906913765832330903721347401033090473901857208222237140562067955427702941039229936314083004260880976293807246436533477373205645190485342678944716988612466080923570474004927254412949444127054553980320980775088404445401262018997185432121948329395833662860048912908059665033611673945740343344802232250475874642265471080057856934203625913430121198866151061592068603325906981828370609643873300820223651674192516050174951170708438284238628601500329774836510736678518738370904316923745760518895963563882674049288151050880052033600235409105952890520299144722765706939736579149984746500067443135896271164752142084530330675076462009360101063533274127560136495680768678207115699744616929197438287268261734808543368721326451523259263139842527769965537494733299943914446073687603776743789510364005590653605294451324727827526377968781329545810004633509319705060089804702381384193758630077988494492369462437245692796101788123362741230592574024177234197713346695432156762061903453560281831740608861720654928346279819713804431606627038841248211897846294469964013284965401253589720782684485041991597482586405902977619454825710007107180836740528440459513406159479343526587822042461164231801407232819696918417201724584072319206595225374065368963758196769307178730172435909722518592987279150488513233297714889161907054968499753516724622291151740567015582544802858703401581679144985662801112933022639901790757127663534615188393815011852335607949112778048287275244638742162175914841547033241826571797613281424738185481718065271323573384796249490526128073794987100374884950717866894283893289470223834254869381258325697169636595995810242566129943667723099443036433686128885993200462292363617527546200254538501336059534128617994194804298925547433327760663081290862758420374912157789641330594826879044093469274621772658339986723692961627057217233111619095698124815346867681020903665966670459851369744409261225764091169800268452819702389204859436002069882932089483726728885764069825732533906072923858892595572929527355919799004658212036460646585114769982783986688740064071608814102453118467174328779323070837027591482381869244774984590782347570550654363183128360654949301639865699242615812115425649544218363942665306138784714385802035908419520186548565792805664440062684735849553865848522452831054789669061585471871602374902713051697303619053774508356720886992852796936183949536094055510001272091281671405234977251678240325981516288058792870174228652137087456359866996950355105895668046246591706052813861214961792826652480588182594942966204403604097575897826616404149643883761340022916791413957173792570416893626007157160227733863402426541335592836903905121430507668691658363884034472055292441178915852190860164815360240369666292975471469866930952991673671857648099978467063769406964888942017029611207404210235335131785604434231608972218841908707861660861865365586602243212033360716614648383089644467244023612794591912877328805737437851948394181366095642178314167725914153185512837420475794932225303303192673096611745689137410311397128429132504531184542006143818291920156354744440569087651671130830425984668923909262315081390139687866386158872472097250547129840436191140533536009868305078156735631423896507144777503560662737841001467833685417070477003574933525988874712062655258580656295100441907434599148086647744599520870524245949216035968180333833537078932546271405471230519705948709005970460574733023584398250904594803396505782764329300406166622775267061449974224477951718058368511031720110125100305630822197199651594055940989911016467125898654806507623492258449385784617282890248986978478944823765042701287907676556845675535282204839586982268370488347930947692290347798884017629413382984824370517388847931730894272302774084550089685098437560241842332829002385623494191185616851274361388462529222092905768966082179089229755645118162543677796058584247007975202728306819497671165613294810603532635894695179604212000061983401026454330120688894978905735693931415703529656694221170558433145483674078111202655009250196403457555469908703865562080808458623281230927681042916801342039840992950926979346441898211449135702572047374106572100284336694703935509805270776040477453152009362547172604437365649918225229372341756034173458287134273305314966079904716579287630726080579942719775050462626466920928778660176880909409507029681092413133406196905845806480291226567087769983988085236124005117763019329668054830446818346308132576426607642476287330253928635213839122894641547739603019659804067084470948708717045730325839589624705180673855116612921011278947235338836219592031016034081228053028711628735718411844594561532626858284784277970519055400342473056192592109833567658348354080629524113296785943002119615043041630780891800771116697158661932231998419276945310749535954072694952379910849245520257123484206194735448332325315685045984677918920260538266970069344715801863240105931473454574558649431360210265642318657498636674455492933549555349115109756852067988180343058035780403465951453192679278596816673609758799169457719437852887362359851377093073459886839140393019451200077957767466767565328764164376910328025088950754738333318277247370283113422050890181031190510791822956931094252463443624055429937635745081641522808428735873953831473801296372509314314886945674344124703435875050947746569267370015874425636588567230971494904094403011028659924516120254259737010141735671147787021180870507401285807784755131594962115447211688751223664117538807915540867115662382140201430474171957222224945311686221431300720301131222756959975321004231248885016635477520508290552967876175060098309937101253446711801485230627614978481067499753876088809604266469769846275771453438482204469682584698830863083945775622854459446268273917563034827774524205689596448830782366953122314355175029319922280532074426114994831736798693604634082085354108979085928659864813524210053421147326054521539388967037820617936624209060321285375690330968920090157912151780185956898843289172141213329660742534711738347200744401701910830195466089994610686783682682908023605412752935285011780589968062981723200744678922152781343043158166645206796815751923818806421974421708040883860128387705940047553259132189581098775108524458711305266529500317267898361424499570559644859524097570209295999906912226186050833487113119318656385545296002691346068448984308793446977031921880228854737350519341696101064271627747378044345099074270765679163112780299029552974630586653953477444560185395530354090236681283822239150749753969192263959773401984380916905851900295290459471878965138511503765350395597902681640818670451952352537013169087556213554843495094561530707004728065308719142773216767322322988089982964624983104741084358131834492713114735214279485327534251135399165239228346682133094677973541166529677611507160315240198710389879252331366035904086649103154488688710986747076721923256155183622947377872539167932837308763202008189777736435449067657280578138333620229569049251191700237629874244262075249058927727467273556333479884978217284683537382858883579187507822194443754127584122212115779916448043694015755573006594353567531839763742655917352988258472137492874522194294935054833240725594745799068108390034482042104499267376817540314461971703869831360787862921385164258525064976486704670093817933649898468313695018810961100153117845734717664225024303076438328987648864604594207305123608646551525428273928339005085444052740296689022744736019193309634360778877500813402851072199826915157820811949894387525944646968540353207365271900360584184744133204830889988387696265797943236838853330182495474875024245961108201225656046888831654531994704489136640324971273600845225734054652981838174467226217121050325293821755789931040748104159999222917410707304229215305489045867929621310317042237505056691821374384366227682533510204867519431483063920201368899650849244474345743844517976125587999154845523525981991168190855297448054930495974241853034739854644692432155772051570193400006012652535324249346910006762898450914718464901810806861618169329389772948303170046708541558611644658719092735048470959511462953850144271310591179510053152658227271182687908307639939651308415013808441404752073727561350968553622091794574694368013728358611899612570205896040217403995795557146585061006379635333231910673718307077759487879077324122677515959354665106180870807049075971111549040874941647856452592299335009991159785148372765249910238973411486908269787114859253225289401166879008745437565645698882527652234693972046432894810033667669236863186230762243292101937370103655317986180395611573206445603085545565427812073567502115282670104200342567176362498315895326241795179001994164770214901825207061660800669750088921511737755054692918490459538508413959697026626509498499866995524718054562804951593973898369670367086208864438208349574260041016077735006737274085292970259181587267130649416763062037847956242151910614154685911482141111857655108370389136511693638939941544745607070290630512406112053524700013583263351967457931709507200402944859272011696104631186259605643832220455997988631152612754773834344456864860390144902083448250040754999757789496860519878399960930954476838934130700899888315999058071377264567258240677255117357908775496625299009509664284402994729986693884107506381287928007961289478245489528899069763559895553895046843724884363853189223499450413433644675517327988419512005988289352167257506098753205739067558529477911198714479344028605183279064826369286546786026438633333752310403291873722477815020950587946159563106096851484403920442285153875458358100289503400859799698376503397840185467497755942388950818857657100677069274062036813732638634881757133672536856247261952495169676724943513005868580140522169176158725560540054560307203696479903218221658627392063414186139305807339685004200357842930563312220865473197853044840199830126807674396151551188316357848220224953246077307263742260226657245290638739814270157445999353296241763961683003164896701328922087119109437818764391251741336005094309922992137022553651973652104750036843798796085823487586973734445679214211438654747836926557401713189959065141611213346358264077551299405967446654635912517999118891918298478466886838845784710497614390936579476314136059563021006791265139418946445059992824258989781064084927616864740332755198643857679065766949223041169876786566489979550277261288671384601365128182627032629228888929782380280226432263762470619226996236519000946188448489356356964693604983921350564814612375401878311197635334471635154348569021538353954947379747934926869006832187612179748019001446839196392627121179895783912330723111773585749050147986920846705532245695808868332201085847693779218331682037010749930686440718720702610733025024671259869665907857749756035277224870087770698433047220378589586613658408371325796421370709297534240192619916360864233542316980659881339079792338754207369520918859008322103922195951789052088367628633061404110705534607076533595804817127580907698892482779212098150807526495318866068874000957270214615119831517440588778023361154474792369512440882678386410096204420306917476670274273286376048654937821810863662976361821748068815365728148436645807129629146062096847081383811407683570116289111428478857234885150195116722901449380867381464480093396453116173212699396134358603986967067985223542852321127978792113534808867848627498780082274782781288168579580062418668759699930731492808771526153591704415140361431014113987073927059686514976203881815846046702825760376799459498939963433694644813740150949326748366690112514672111423661612192974514655915970451233737273313419649618691064379721392089212848339934709997763670340574244348829874433251633221550820203274174780200613047586424343010278762218612869274331712000700967108182338010003068393172490830511680279733442768239705696210093996631705505177781579978945924493969468231735240710899357166007731709620121924249680719212451311797046352567898439199686181623992061018594457793353793004428330806817637731495253567702341081427086383818507592177070350983930989397410161711735867930329847034476731166536488154356855310065368650631605443679638712208498042854055034992774031088295656693483048452054686185151243290039284466414959293284846887338639514152681475705209716876195321123352508452659735457197619450586420853349559873536369340880489116579079627443035271467777848845417937075682875501483212792273723274325794868505855703820642419350096513985782746710077859776970604041373159363248830534026487408185226702871584092416258956627376818731526803864485393427118758176618652281795568278488262593762914193431459003544537143422059521443567032626433200743784828087780591036880899662240167130893731422074874086622673435322855463828222972141921574063957133310958957381221437166433464547818098861803098135642007344540236244496612313061064283393186402187743387662292345036134594640209524986146582723230575397146931487538550597532279181834716659632116592149222535229659919891255656417575404872961311975210916815388947242615180963560223777587584607318216247216684645753826291768431944729232093061564611166921109926174318730374333454495235824295623167927353810611687855585254518925942926792553102021929332873610858943384102671873830384590938197888830282969862513541962968057622695026507238550910245983095059741979392026856124706789746427503999324202823431413422932184425714161293773917561792806542725126100352428975109011378235778563485434082692148017280578281672018028059621099996096872411982610630162005503731640168326053801301933493379808874475135236234141586318192026145882719970337579497128786741987649624211295796214795372306790537829272439735052569367315269333042631987236877556860037125537760056348151021201199669281076652559191844576988253084764614177647832405954852285260947144945157072391628293504207756029141330481776986241475966767089911479698780464004016731721525431821704232756915786791668682046599663613247912846443826540665516698747851399040672511771258102657955794291687762588505622252544421312695915632705565671945549098007105811661842384213341534429835145009982715318459723258164360926167449831031588005199319100478111297564940919170331670383761542144450161045250212952098619454633915192670255926969158187279931404881180149278290288752679077030065045156929019114840203493622954384695403037156705222833234187850643870114025534332131447924342899106965697991744662020989569153065866414107734660223755548104701368829127010892459659133575976890698294302295558644267477375827301565357926367138330949804572491137082973590986375575705688453821513956027155648809960243774153425276778311471791778575153806769137876228698575564035751574977143101993412339372483497013573466001319851908737975297227416471259034678839611852977885635027756868926064980713427490255831551155962869045231737683790271207594971750681829807259872772197310514776435819313357522437226013054758182403463868461391225726479024964597433676712471258732543276107191187226124557889275995618790230423029992069334654243161059073771459603323246995478917643948284903775358829371048153283228245219059334050264835541506743363578340809874203851310542884683383276976228159537667159388966918578743588818326025520760330393148059583291455494058506509200122223056422769579304044131013734219560110793629481164950859540917456015498761673055017962855837456226681566890389699354591064589119811135564957233633529350490490944481443087013821244233513332831901763290482788927950717612933271024245590553659448283065903831818762669670743181316176636554314748392011746496977116472304473505436805792951308467824857903691167037423826647449716981787823081327884504486012685409192868370265062686051874492453778534943669157866326474806377495952132544618176271285875023239517615892554313915642244706645933806877166404516569650039794994182321689100028366690732489933841208536969500611979329362173127342790668711313767915807216196308218181204971346079019327907010444970334278743617599324977916685567047245035408007616341383143272027137185618778010816490696563550005467428693443800163947449057605164829388661125131513964838254273554942147144485342945644293130606655895997128911186266543542548164626238856999031189552698111862516655218096735679414898585224362064606580432392763312499593039880751709357167164951313982850769950129326131863973050687109401652865098002181193630195174821603062002859333306103658284951317681455347787889469182290031276195994037305364787924994947989059347663641394189740508743040720603502487545564786612249400147360785909868899340711883761938650498795121023420183696152458321568042648591864231401873260346036675876496814135006123088476542027251394588028694198513525163787892004497213930422711226616481010419020210645822278576302310957858269217648244357150735931117965833099994478908596987415788920855894472064095246716556550519180735404474829603158576020814470019483830973047495573023406010061182572429826454976393363714013217649764848862444865474755876844844464334143499168631527424347577428396658373931718965562431742360675918392076370333675919453271388182561432579150305030150813722241034702482220741236622730100572922950243969200335809781185828397784081129622129123205948978399593725702541937254386598405881744937482824555404480678850684759712762325415935700419429778581574856206507443045309234012378543759055050976401186192978286305451854158503834457204323766887581058736725841643310274580600925510088305837058032990677155255440000127664505604679349926898271708652769823564742772016447792435028429302380772303880529179118815343953785963800115382966543154545275672301714224657890914632198422684338587373647418258751310905314448318312769236648178486427507309900257579345944888016549849715012204897990379306413030295292993838667682599947031387454284749182504901827019887676452559261741730616323230990264844862900884474386181883224524234124998287581529834074107157687620570456232864690233115328564599711044075682409797126097217420062153004839827970744630686562497851698004149261601709415885381631370706478544450575566971285911982439181300189237965297747569257758909330681870345562944203880068962460454000997665386328836442145429922150035836509825626892332239706149541992279855409739996061141681512732805198162670230784466827910450064491819627867080161480117921149178780137010087790651697982614530106989015131415875705028359660345611194542683183191220894060221507905848401701368724099582228443725722471692359130156711985374488747389509606930173008574366387572101540690974815773216338235281126490111078283813965542352220953740350552924817968214619422454217773299668232739926391093668011971545937668265796270305373844300576411631340725024680217832246870941664556778775258149790650256871107892368255769730870095671552327926568473434359461374511773510420703757956244260893587987932366440148059231773606493065950421204626281993313638930383075444213518099052699486932778632466562042082643491422591839222384984285711752903081399440910792615616450756381432026328288856042901056078908268032190503511105269609499774836470206716723203093159834279512806508655737637957404157256629565128390424082046202482103888046667857174251606589108924139359823308651309254397717342346305836370009795203560805346204601226412108599857681227613435742809623923524182379789985236023645546504837485410133001963342206457460665408395115479929943580599521420232099390560214759327839980839688485841053324675610877689548289201254012538225016153607715750898331978506301604076653490030426576000458915067925982753024650920113800240714941596337973730870206022561117184422310675811619278024224930123164097816326424068915192627932285657783703311684355281723298202291165014136026532609216113554338347015596530776961404894275099005929373963095426102017401124579934543848153043361696180470276462578455182276355790087643912840168306561607934005080617472596377892445420002209954954579807626296528638931467452545617503280029434750238966149994703992614238037572666059597764419549536793062169525350343525535648852517289127688224996889172174319766312254639439195393909711201484020401165778365640101454918603768483731393245568875662328888725428955417357417862133373135828633330657775269628277642773749557177869379303794635515502772828607807200355675935341985563480805174591644293681707630281759232353656259846310231577773121425956899430660991268788341164902017369896274165976145098343336309789756974905518709343598682831475087320465116487933944028580292954849570531986273198075878912194127769878908865985578761267862887918804015899936391863291256565259797982131090931268001684875811507313523110836423185500481857439872198553209898078259698615943899577472556797390385807117505249703493804639327924069614362900794929346880745051666201269051802738215146025843992187622301778788024300831445718647789662653896364968658887646637486268415738444189941067052795150136023000328153771352097619813996181195729238460533878565507022759481418646306351487429058337654276342004906775838268941105583246392633957875833592582237930201050241573652063570062017115373351971093646165844693020812936338735327895744411892274017509851107198585341701134555960529009456582566021250736942094755297293866118195989771727289338984068100867985686897201503963903459407839154524493272828976583223097880987759192494712264724493143367302250182368971241788111482928383192684994663357148940223464655225760301155991528512157037879295494092924587314223892566432039545159678147964053284743292270192991771538686887268053252759064434679355906576325187575071130774501413156387286180176934262311401733660599805479483163614885857457338065419551016514865879898310176957561112256225757105814359784875791683784765154025174193604818533922020523869636751181609641286769167007700071767376818089727511265957436324417226638837479120297590655084660844737141079334090879767705664720478562942041694436030863060945559520123681807445495715619237166723069518126250606621591834832210416872096653043289551070272026120468899459425788353325705588974932572931859377211817345308380065864482945766359175026034730787456213883363326251948500493704282268368723393711948685932551908433957852932289292125610113619886160704102215482453601859215359116674243067357621791054230253742397850856069073375860679442002747505169452009959906786942534167607460132728094745825802638198833139647488573154177522364376227784773731587747587137563303820029627901388617466508797769947652559095138215518934186258494126218021824386912120048508369631087709564515635887841271522625883609130256640666191297838534960354149752158411043000554470619953927800648549265860007348270125066298148927402895414741623350555093696372809835369763622169694465062918856022391932740543873162447423640649907115992819992779091634715154133066210402168167593531648313838476383161835321456355378430348947136436660856935981433249603339281376627319509910922969910973353203180914537102810904053692257614802001517182241444600542750889178782679800922810398524871692295804588333892197189543013532730554890463353370526515204970629510548781864972551023536176005122986756180216930264397875902977096584758479948100950736833998209855236256450199988928316871913329882450159243391444788466311104902104156842663680838776371516258335080767654931562271727261089343713434369558930436652323062281861404150101430726742697470869472086096256206703363902698110171214480080310449259977790944255971068057363222335442318752657852678505044015760731889232888817814717445616661009131452854060130337405267830864131782187973990069805196757736074386956683118092780107845467839642145645436275209660364143859341219460368014828070349730896228569241452421252544780555946334494529486474436966334005527427133503670830759418141650367034607669216494900733804502856991771539691249563097269969133517212628049988128214976481399716838871901693247096201803534946707475428171690322517626125978883747384684313118073481861687159250025869463178517106376282394647990853229991105853713682586572144530211565977988036270918209572510774735985654948218697918827789333968388788613650618144952414970052594189651737195430100793652805838277118137106239070699564279255489198112489044697378605582653199491000836212578510343551242970639003490950322515379110321780609665333993716508723024068870662827133266466553422652079878949703923103015483130630738288256052403288405404537476664975827791601584810961260946599974008052748984742831427998244813916661596795362356773908789309883630878421614445904876307950617916590211202846863220133980757776547462927961145948357245511922839219543215015790225479134375348900434919642968483863658032623931880216143224617452310656002612558516501644986757824725108327539117477777225506560380267258802587686724960518809378692081705143055366705925569389932114573168586370216150297092921703894014880287095329861108514643816637306953088674647017637513072402868119028241171322756223662775443756224669666250631894378701567422016875060674040899177266713687948481751879570191105636779778115710474661226034772643754248577918972117261437834913933442600570701378324576974877693279357404713798197886665880597498528991082916148491166028106443459448339897945362348604469057052938409043382016439125694528165597083293339993768508882758545638185562857525082962475014071128159049947982013743793006764060453133936567333508423791831455393521923634832014261733674267195052503843028026344815374093320199339251354748795564864369382433903207170210390032585707873525641060685264885014353948321840453869197942284156186502560830802630538659207153406452811602750750084777767255100696833032346890855967107120557223554976333223046833032460924451448265158102093166206617105653116183445403708978522278990683636011651654961730813121311303267395238866720662055411788977195073247299005038265231973439629377811102506680268660584512172821279486019369917671288170172080916124127644342417594929601996787229051241529179407801676641482104916069852640473456005434048002118684688235894073404985833523374075109741486845588098638198118153483570383946255082633657664031912020341217684756265247182570536788423868838004344599300551341727974191340739515190189604112493399437071906569998186169795643330261510624365130480773020476100779825847988958176649154556206514375918657078170762075206061727526033837023485077049544200492188321743825192474797730557068191071850361734198389189906387289951234079060937403567064989113018240543168485734913852389601273648593491844349801129144941160178470194985755894544887637564392668760185209523035971239931398377905832484582471869589747047927380077899940551187287384326741941983350336966441991464456328381956292553686790821358082473731463182984819477415006358166548649727154850515622837357025134191809253767380857630665865150654255994374015748045486799531271034026912665684540631286079287490501537499286300048654314033623491432951042737132871202867034669326696092753904241973893312829846634449028815778356656068511581643987312371045438988631566505171209061376331180779112147945660669177660875228348335411867252479374599093843138100462691989491654230885156805900072695918828758078009798726648411997383365545597207759528669014384042757590852338353059114145301436877674741713671305170412832107540812062586638660092317380166827689150273907016042968880059498354310701513684158244758478443625680771729663071269384901406543204631512851906695108881381563568035385886093972064909344981890353292137561496143396300706164474057360378942238905295760030894873832034478633432993361370422099708673825471235404617043391492931013834893824694215673737642397303484078888079459864984029884279688614113100581050964488000995272358392952516051474933100719919528333235146418383365896898561411849388140267060641967348133691047287991870679332133575711762333255981608763240517338542980958094677782320986068041456291576975633204266188159717843165695389832624855915286871074868612806314440928405536688759183959386056613731736295569242086973021304477101787000860821794215470376595825875207148335087800507650610040637155567815844467303229954997615356624405341049781651180895459118289450390523461651055069121744459196273916866512226334170220997940381162823384063934627933347983161057118631290768999482417786118439439498555287625292247406422209790742308164067951103575212356512932466511090400212775318482199937766045372828799150002818045434126167261181564131381697513462013491318281447219116641389601919920062553884222963017271245420633543914586103293813321136139901767683894941425855856315011179271322100084024037821505729016604960819532829719256898852056397060641509504461685085352563227044576513064298028400093639100645943611675794664053294975968876626659048635918073264535370293732354445860617547564205818589091284002512474592301265957914409408313868270008025280125832826368313379823534502817803386014604170258501904700347729365252045120812255818947385354853107558543443966589979989921252646949480967438718545570938442138189071742562888500577869210778056242808892698093626274659609084365404432007191552669297364701739845015088380935813947567947857551092196223609808487160279076861150573208127599736769444833145473597873932672940268927386882895371715380786791476449973710008983554818948964331940071990173655067064307255827423701173875749318223008409679124585417176377178012378559826907312131539311746244040748008897403530741221481537174035601911733270011323138270738341246992573568476446395127482541939814144610015217303268037277541287964997017796361722175810488066484891003206135618293555314515686656441220414169891756428618570857985834321736801777200011283498148391860502353997372458970000672101496674852283857020646970764552181116339572385507797278958943305211341563152680270453426449166091445655232581832153551418809830138466239731014716555485436320454532892397580577506027363662016373206496182926603355425068184691911861122353021883898620981349661530364519001463441059485995234974212289764613337171272139940610505066536834856592964948041372355027219254485791307834199446197861998834102670492392383982088237069701741763379283808634813420373567110071678733517636053407135188581326474749491978358564578856458428172446749646518122411938269254624581885321862279701080465882562534365476582407237865333891616435029709087274730988946061658237359032987406590720652962634742365428298008825897828782035540461619434731451046945727532483861774161796758720810862957952679349495055275045210909782305560751366900470706437137326305091100154263091453902710197085936015346172003794916551737213262999433585152489360069610021555619456868245037313914250860283964536567791103181492425717404051712044112139592343217271643157004258219175146643211346950009790862107876018958849315438973205940190825815379340050344708898074692695415940167067183535801707851032600922226806391545098480915543717013643344211149462946047667001557324802113697432055565911822495859796253585461521273038833642047279376487875404431993851339977278908043899638339501647013962614975058327536999622763497889449779437863793367296412001955617579544576190788748608457654088557079082778835234159348542579555551755610160116367115313058073324120861460738268903889452817020964885513273735640875137691047807626227928661287360056470433471883956383017595516332323033299177328581706185494070386339607791406813933743387635365325281066520297568229808309826221417317378199352154347897561829348410224486409370068347191826567748256710629410305696181042303643992628618738892716929793210647637609852141779017398074494317013754540439528197787952242992921262198313252077077451210962322090367405660735370483401249354413671138364735430250910682864541450447842770693559419212743023086915918752115328486359319444907461414317972510048043906250564180665797177945234050318584361153337643576700395698055698687401306646200186786218991737200001587152213049585731710832151331098566122208852028405188376810281422681718050386990684394692758254913140853127072703963667432651978514853203384287266992460497675535202878292031916022233844714271824030395464826326383174685442741745008478775068998057877557465786033467855300861332676166122482848895171137390905403563268760839061830240065517777305183856148243401178537825103607790000415649166320252937430493456599249289198741649624652675015084681364963046004472118324543787999302558426205144639027243653360034753098978782266039839550039523786737458188986013269530204909524230309323281197091659673439897656404946788738710434538937779109330086201953372429975553143349583372909805160478816954343262531654552659506996303059413771124060234398672540285955840456124342515740843899589144327171156922638476054058123442280899553053171132816986360254670699576334843359458787320770394373189002894157361973796102299135379693935036211009283252048654212598638060133380712906564935194148248060578684839803043918478662452974480311343788669699324954834989560784675707559962379798240300456394419823666779025979743539146572021168148274508518601247548218837239935323853290587947660947980217070419383380143325813630807412528170319139830658467527319354900018828461880580540682102262922942513512488776096907174202486918814096013502199558437860172588226017359265616352131546148988319624385442769021045072121077410705030068703874413852148278256624992361093721080987305628697772935984488115496816503110394495472234781174446295417352663218381694055637142215963495048641749362704903442184792699961837321634672431662580991452209532093684067228341937352406996399258517302904643155634157326301814360440325789873322856905564324985626677182250508890315778163910923366311596749096176417186264821035455705604153521899183211373661677854768512513179279675996221828235605799749451862879077907986332790278245769401668571222124681898979517145748666029696410261045413694273149674999552671437382754192312558501907586449096794733615312797292825470521387054717081209997205274530911782686993426229361518246137056935662351780504555199161901180255963214954498984111092989552540449742681352685835747398802386680671946782221233389788206748688245515930080890777986703541592730629550723606235454141678070032552276028424131704387081295208303649991334766307330380414225905510763428460378279987558618326176769003860843618435247029822721356236436430813949862629768021756888710924079879175969670883927807638949843674716080536718728272478570687674119337482749076456340334106010978389420287241301281290719326531807227694718948400332618003191188655554961517885176570175919582861336150062982102188908689299025888025618941938890741458929601247190498845473228635584036819786137169001096744933010976589388958280137873579253459061557784815625609422203857292965510923493386924379786612580029057193831560242671251829411094968881903580212439087946816387040605122441311868142722692444781440071311147647146106588117669678008066290153854957998443311182572032989569486677462311022228418110645661865522501498074794535419216263257775553340663270089786216798554060940823383072435093942419680802421286822033214284119561923728729642215612600016927996033048413282512151135313080662162959432559165537023196478961984523046164584567870085274740608444891669822964322583638771527782891302276959373089226220825599901098227668545473323790973658987007979945896266426937958358110423222128423361033491595713950867878386055625719460044154124281090129656040877241692752312360532904400850370661156463878586539604862233239210663673418644613483959264214151355430601002340981942761582054276825756656004956896075685471952517939489910504442357729484631266400126392964810948820322568932851902164565246540154504351768458113209394055348036590835657454957279650275335093984889165448425229342504986303602927115742326559470127854145531270434730731805137444474290037845050633032849014153659785495050367781825031667549113074062272134795721568956705235771574956243547399500562122599623190736309937366083292261700906117702624586098280004899244484302103818073152226905228441134311621884071222332925904765785129922648273623729846415286039323484296613782378122231425985418199307211157614881351292537372519051522917805310748235961866161068530170143906418738737310465961626300633462907370219716466344669404097237073435209781415027945794362291040148605668303457273587669450606648250690444812354159617293067353121277313774956439550962875005076130028528817268640039285829673457023429087616267423455093391775583947893029406002969131450188192989953842629076236144598474422716818146747204786997836654703603760575601724437933364467415131829121618167485426360103591187738288811892840802001094543725149246587260814995399047080113927485593137632487217740401804671954358776688102265439563901119360879976888931836216858171382356803225117784595426801105702615642804886823114566329076005831521053255049556775705180561574882835263813923677835166600452910884751584950436603076674331520770218521211624557255506796905855856127870180419449105201588644099483257969801385089362744668913680904031704106674982347003286626708647329507895167225809808952228593957784161371361031561606003494003503380175482589209090586251152194105021818959890959924982086926384265322481161132695291878511431383026435807239806550849804141068663827515292549002246639505256797711884916125220443204743188410881242101254766302016951898854183489270773380163849133012483553205301518763400947115206681145988163734269906275504308913222020007505460753076243907459690438770040207297901908551823292865682988602605936474542915736616542456913942855996813979149928090700749937534726513834426678217901412097286131314802117352373839717769618047281615875448462509863150937563858143898187405211845045076815936699888104176207718703780560309006635193457065100743189072340576766819507486143146816002810661728122429179955812997126815308894732819450727872109719923805159747615679966359158181342165809308371190897219435138182688265630983612234344302030061822070461986620766270419779228307750537725516682429957610666741566039732437327623016496685013172034883889661918015296435736927770906943008306663038880644320497977725767930428727485042958390166065696854539607226150446486402173747473491694822522578152428086597321820155391053054733924098504831107021267487935094671287295869485119850227793392739558221815501986817775213564189875466092933296037562614067793888607625720924316764239701732560365724021335319369616054955098388278020702608223447312312855575461782583268915214760491502004390567311753135679387179188534909854925076456645766556038648365957319978870585067654372782287381412051805556817798816871901306229388768921079985701035547669443223254038345198772497868074469697208992467922128705019029760747248535902138501406039797641626391166885629005382507469800407400553772145398593717903255003146108144136717822620443366552908109432154099814034252394482735378905092936425325502619136277856371401887340654123071560371998501585256274711329807373301519110861387559328868756373896094113779332071105291439040562552092782732080605751765088312569953535172577555999499284152119229882510278636221886724746770415781564191671883605417045351616827879870768913959237137746506402326519911038755433690124135723513525167281864918818753298960918191949593541033195882436489073197679733942213675800187262094817207501970497902434924928013990638891198266063682842522472823132124199413367938473142296214858585413475732844120729413718788463266931286770514541602580889255911999851413936024987397094719421967676542127383175144480588158759415925810715275675303921377232369669296716547698588412548907462161782351297311414392776548055803230847190360808736104601384066264544033833805960110060076690470064703853450962742033584358473490970172937295080942202622855515068540433443566311739961729786739045180467254380013411029311472439100656933680851913328797608632106394452809274864694865036149463106530715953523877748784161515015909038424607159914547496523288524033641992381780509440794341560008105749663705487712910961700304122521068078907628959212293647474261038409983391612508257975108471615451775903123636241773506896286865020859788264193377201351187555495133893755031174035183389401761528658881322143240992066382962626207196118758195967426441252346008410604964846132718573676802495103538031349305444696325466524867629337639405839481652097294006642823864555110699878319098641590092501216439799564073393290408503302595257624943735582328901093730696756086896882593167833161480910455668594028284608101130305923986390409493549255988777860456677476214416959586089902375313385619878161052845126545906357682579149940765210762236492812936088189420055326488046597906208009188775391351275104713739361139993640356622791986713120107487751262075018347109548552693227123162230626669952601581869690273357297001027272754335516814212940867882805767315930546294937522157623369642971621275025662704971239226144857138193772638866485566122756719588250918095621781816248572592053439983249148305042537029488167280240564746434064724001397694197033421907244216414037693438864574935132255870207535673985730258125146542005430914571707447342600402875249076521933951399736706325723529017433083398142882916480106613779254867632424407651272617844309397271847702487135233670944328966171057583129824476664943079240368826149715051674299631231486224708860026643863475116845629448287040287369435992246407828414829745035772661009269837748737692519040793899781434289726134721425759463618240383950345489189642000216734524224655816296387765544305349632788629091771074128983920718439629541064250257687439904228321196072110098491411029108803421678760426296564805145630356269524300919839262133049056508272254324166315787505261510114890047678987118873218679308041796556205850336155505261235446630647919574059747724283226370745601724855066695957297300760841962585831341928630247335549672346473918470771275081109507960604956521834720238542025906509706026060731642539051669308590291624790946359478514105360817279857447243703786828815810989728100982498037761157049837691893156598635102579876479494208079227256468919974262692605877918841875674351158360215559921776132228743381344583480232922529691007667493285539827116187982555573963317122842603355926806387880077922217164575402373335562334039504642166945138042764677585097701831554729926773574067790276278333675847816688542007892165579790743836728680246728228900101042330202976935526458376764470272531473010311176277888223005840878637386375548664402323412031283076367574055883187305375292978676112099531000254569528469977590570184156931722159969951638001440684843968501144905649250866500800527110880209123062397206423495217520131584369243233878929530093646424349306225755392559186147268972628044989850415131358778514146816383997748625551643051774207325886434932916226430755798897035609647113730705023727556484516427565634627572338408516147651056740016842097378099010170152827919467192303888397863465768951607330951284617934426929638885817855975356135131870274558892563329468979509767256515488967409431322091405603773916131973995465116862965764889684484259923654949595142815629835186550197590593843821496564190206756253498691837068962993852081986879042193007784194772194777342508296748306736483527272539320513668294060550655676846167676277311627416138321876768761825907296971135225095602528561414494521509631722601759465662838920630522207937766210819566995703655341906418860728787240507815198312406879657329594437070481970718194275020242378586618881669653962855678258760260596893018342835771911731374124522144273933128995526730960605562024764463539895268492776353365448708593322179487921849796894013478840184014451499125579189647259120992026080220151966265773808021178111192125068782554927199906268252149046483995605118658401305628894071796068799970208125891463808516225303782836836170950666343184044633404380091796446360479620885032541629011213411847679113154135478370389885632092463107683973683148634052249561797098990134068896065333540007102171613585038601185052313910101291617770088422566018302303664486897773192709774002622930543513815471842777508153519091504521348008031641886601899052324531640398194990459161892597238260454089433798863412134620478830788417972950158344630488155464305497524925982120194465338004081042343725419122938830921691078254188990495923030337144365097244378258725033224995992972684683250534893261954493909958218028198283718224560282863496828067797362481339111009585433508336908388066314828807394709737612723013924180118490100565688102125732968507209139433949920770292100425490579437537810978250133432332055379833660452452321259727963266110328439940335645757130152987602112306750452727939548545119529230936240484865203828372141682762068469978031063547623682670935440396675029393214512344367637919497671873811224776724475379438360539904859640935207923343386150495219042510932101845987878300132861840686467276663916955223287107914868156677488984098124872907904915846553841056527164329297738584017777454819007399482428441782076600809325670764861006101134494123250885906501370148951685592144405601327780458648532458988359167018207559846514574725410227017615924178505466508538541745953961724786606571167089062830189828089112501505138915184699789799385264326465419975553154186320475639455687000258319559829574945040965785677119241350982003456005727348619364377184296524093139610311684399313036524154664152225914154258705287812028264933066650806447187855347976302040852866459680558925030614082259585834329190913642702978000736056170757286263774836128389207888698867444931032999005263721271842975174787234709927490075475650413468653541013654500092932202173996359631539546628531836369264157454648567196538464247697776503942982812786706071327998530122673904777250120927907153780746883261600080869632542755085685648092076716519701049628351916138351604592577657432237185278442054537996357135958818043996190589573565020998015919518649104720986537641376093143444709669699314234983646950775817563211944437813589104926812820158918663055986494787012297232455732911705328121700041105611514150154543384483920503361077968208440847439886689024867094678167310157736288051718779469282706421105194345776220752459263030742441722662930582038734527594181116877115354312502799575038163756969169976036049507337397782897024516512410604447933645311589876409828233619673127876947711301427206694152481078496589919957770930006896024567443359560416378228093678126713417680292921468488233100675323695998984543656233523623756954226752924707849388229149348848324486442037269523406059964193984137386745592713636510912351181026326142893619160462029127311067913448630367801207167081043162941162754330898998878039314346266084486772307312897467021429085221972025102111287324179195664291199164905112268365118477139831224364589488556672986674316691898223574831958129103689504055997090472782770227127114949614065744606001337765351260489636356260229081080371740617770902403190021160923663828830640617759071582773139107766619090934239700786628577850587821468916992296223030299897214632276940814894967251281607752476673557929910250347706846167056488777385678899999973036697067970842359894717693930323295259867654896186304284853440271186505408125541693883218032999693656595746680415278649405041051375138682020186712173912107810841553469771209601297637710692962487605322505069712440585837445654007657950877965098194463516176160022423687806362478929976809782655325115195852930742308217994072366653442081759641343858578274746072025598709501813755986906092791158838553369991608191725665192447346118873966329288580205619321853644671351718406559340015090668043224596970455151856606609435794929946823645855095147018535866005049170242079128420555634458685826208138168079356497821913033975426618364981542821706720606484198374517189436679177107816373202088773612194863495596547541817885425406600816904240124469984159020062784900573373814845764676041434069554337779330231346392847454268577269002839177509351375520755687385568878620361991136358182509225927239858591468438822640451729223599524083127352316995955080309581131614704132549698404803870435966169958980913912112050113036881953925202691364559742684577422521344069996067208397420195492294640058173214989089311916052803297151740428252914931012890789023880890790803589497280611813531470392378647473434561664294779309049247236747313434225622889384068797557258396153604870872272857666644069069290587420736517979897141556008711526639730108859467878559664164133276649568316923947129288089615547518374716997146797128330421864961429131621285018853019977223566823336044311196085213117334685844877582602906030193266886965508224789390090354887087948150867213185072503841675266373544230984243315850647938668464464574746793718783423237546191509682538404998754283855889903089308576387974761641588410350566950561180108570931872879626957324884951750184343683551199113257175335893669623919972126533092877377130644237152108074853606315726034993089282108244759691879825075937751950211038890786031252395606864043245367591577777483182589342979146776874025918377112724696281686133374340296755604682869544390876050938265187338150851525963884497694481370305465135333628684885221366385303381194865728338284052858105933541145875732351160474349181018598651068903538654195477007180957788793871751520140953167653101156310575116392230109741825115657708387551237390805620125335802230934261768277412071206055897002943798974121017350542185161931633276814279753042336550717460843511369049401695788286005104551628774630379911686871180359137780903061499096289811234306030495760748456043289503300996271453993197024320021614648914155269415175200123153715303073372360856725270360860225197715370020647000446724194981019700311825390797227529361620432448383061118060332297502247439293568916936619889900082064446256319371313677125694306973732210395312573099343435021160260392727000919852233883151506681269857785004823796772948810051358041439741926300016802249804152740175092613520042082446021387343696447889158411709917298515902655084186362772010433444462595329466372655051627990704202367084538486557476461700126777308519363136988512848468476196695003886304557537679954705281793360835454036110402392155797073875829259953222666948194259204742720954918691065053643236677139943824087367305712008822919338979834454047345944109632920506879461524472419152936784313255618233264105931238385037613694414893258463409638879714553257284973910259189911367691295347585707101477481379291009880512595315673315313158077160668759702355850452543501603043323203356573595933673773324661816775549253308286425746544267692773736188487508865642606696228953731829464973313661413397919600484695936513502515613267737987925107425939839327206324438389289032714737922700439546542003980723046079362073469979513156176413669367033176349686956742053497234039184521687994515175903085632035079962216682527578315241123977611902397826777953873081241052559441100017935237011841708065152480290682031797192895637513931401364645947098421320568970445067016903811158803732070759114377296801183007766019550964787749510611944366504347112265151146807269624644549506768785812369721787433637875289899737988597555750516453261123581201512671665573013025904003531751351355906018441912421591073411706073263975087299328921547171714099517314664978443050465144311638382468979178504053270660099756095401040905243144794713219340702989853783216425688425797582815249288343962724004900001312000691878435819749412725769876908380167779700240756561783381132424705172338448776591314961261463230825759460205396296502106404916178434557883440740451300590342414890090029025786394088949438351277044948557124034388342208378214388618945774533488062705530863909176189285383057443974379216633971909219467374404200314920045858106049264069993007785037473861300059972086864557007012622921642537257956275472729766818877072435384639335957852178443911755588315324602206591405450655481571079010983902036481029577177755125731175910782053312891545349510202605397723392099662999652915135489762841217949396040997526183771290848744248808451381127331253109162885523131872788303886392056956040149200325851963166635577454736178166098139564595605387340410437135238420500910240499823431328903518562511684951979219941326686686553111116114148240040457275076189448700873043382903093608096036508421810518353961453914991463276058668903668577260446573448128494699355311967573297551354340424603239370555479613437006981349955786293118769895483100539804190932810267938610987771208716653061204413258228481373475501689262367666823808852645963063751483216300139136811527574980594978909277597173163544092843162405294966956479657074041215286705578598525757776289800098496263956542586937730108651996843755921759692414519795920175050155982129136493017424126242199752741774515847595856001523719755538515023294996841019680330574234074760829503464683436312496071920882108435703877180067168485256117662726569215232888673577882115532399299793933952915042365483958679885861167152712753459015570042659009577344473336802525440715677330122657392748312227919203061232968279895001717643128049305239605082621858810007946811252796662143910699929364890160734813081916667663662477031510387909274588747338403197013614090689963726580689960313075464698380767127927776667912223104232882128782116427471985680287166278502057342271068647257734857820508055432938614125053092616667337213222931080815462075068382485584399006722052635103365564158027645803570753352984585557967566239682290098348374183491305578597800712813960202478822834085182574016649969077559703105231215272120349949276069308317041134583119195760148662097505461657097263840279205405205068170752536300657375069107579687543314190086609948004414615785619355854974507265637828574139948187932751890423014571093224927839494798050294687507342512451813824560274652743629968477554825912502905094008871735498361889792984700997605013144947941867458880499106437937219128418022977502301853423967769283358458430895550153398209388311004781856228530041179082393580078722034104927205498557463086248202761182337491844794080415914963515621645115296510842733783084622054055567292935254841548682571560682345570641300944601752520050942498338441901830740932901105535430276257001349554251306508241775725450411487891364111684650083165634469119705999451802578155783108489305094202827550162446559033735856403208073036602698566974053896985016803402474463136339891966342047182061254093250963548895616230360201829285921748838859438351656945528487875166371934013984904709797217314396570702734742073788499199322561010015564619949208616306149528860315539191064851025103893208530587797997315536912565702074723909367351834531161256118714933157252684323759698323240399900043089850636906954297855791307901228154582198305559652649998325375910016995952388411688471401373753146773845290868247896197451730316970424601420810354987871223582901077130716006028042885246774413110323321492822971977060846859056820296401091903047981582511214605167400711412602500597800031430194875623479621146215424883472488940117604797551626889356938193330988779775952152520145867388593705055923232614246788065780714603861942850535231168281805618258091830452837117437672619168288338758079467182768853192148752718439062156116220127491069637764610361878595995406690645921559803473647334831861440706805928101283232932557521780478255183328926647214824721263990823354684476847419356902839288857078209738928488354074944208046990665657725579773663845943860979325205237936213906513230330234775365131240523276839133248572441958572176318353353683453806713790679627839137917052936114108780884214468457918861458754712865496971746531025888988415136624313802979800989893978261857349135037309572297549025688551571551915294940242065884933056678950411231789905449064204080967081234009612490504719049361906117773768033360629473195152837844809308373215543319021144680439237185703059475208071053111343850616777739923015599111508573859378961558898908239702157433775490425643784391948563641107003323426753366020397624470488078920390912239978938243605514853728102558629453578274292845521814203554774281113962414918021147009289958198027927772773778872194435857955230603988567087344537372537078421259155874290493163357541324975563129392911334641302579329935178554799371224758009765838390183076093833184473428277816982570531415935048085698138322474016335813565689332687126958514947545974174516038732838196126601475170944595553493262237907918748068547246623727458174291994398513991928444483368780627416874727815294699954810002531405005060195206243859279174485989035800148928378296507492711826904415637240327811056446619895623488858754667548417408465458911946382333657233192280372029397514450997406687915739175537495234827823865328283539871865100466080359196990636352094703020121416512866641893624374982290916517674266092132615116475422003496849466379676219257761735959440509719243473432195564369418792086080371213413172167788070623641226675403439362395798900291019890753916828379023900165753975850106733207742820520592784584850798778900534088306614337129109833776763123319344929929106630877180612886248679352229918813258692968544258219288046650525430345036463875233564401490024332543165436284336814253110779575163467704785219605311332769077087834624297267718655518625205432106502191223481074192050193589075275970921339375540234923860178256671160493336688930896731728020369376775290691423508849227176858757752980425844988093307889095614781054248402157764145746437951532274297777135011070774282542720722085329578347123356880659075677612022718089822778140392708444504097232488655539242338243599919210153859675571751226341566932029096741582938545468796135835180465185306537604122280426325477516165928274511271758038785104479127036788164546068699079540874305521532552058467997274582485338317745958061702772069217969616091111435720244916399202096965258562054113136662848592708497174359088238820981748865477021236670072298414098371245869326333288167198600313300115821228849217508923769920218596884787822211491597743787346726877036124819162983922622646280525206700942374547534709187279679850071627218826501878906449988857715576648028440106101474619310794690899505777039220478905558518856428126125111057845004480666661251120997767937455541258084483226331036626837364518006282792258741037904334674852135771734925490669208277833975028795262918985270915347889024151146094956145637344258121373404145840824843986413204360451168107409990943974292748336077264116350805623090633449328087086279804619383757950135158881539033955080107370885488063292722423405903036311689613735213451655759335821213078992227273010843315826331817265685652879047645424889318398992157127378160452739326618835758315243140015199551298549143968404011245952777498098107400184367381828832694756583056828877581574157809607824942710415894930110693284550057693870508011870244056014311608738682363938446924283565066346807106737508933058941503649041136558461512362467230417586367810970654875223973444113397154447307416846088830116160146808014994678994014001691296710917122049936312141009044817336339447758235754238295571011518334489377220819219717832872304836804083747964877283158446149848873339199019180951422348645969849005551834042048395234310734885082040595507514284641966516947010374035110382849634225925228582980760432800632108488944122505567861996208635016715542887683750454199327692437784607848566525087691594184112897922848526128727818095721929152449431069193040377141440268100037248955763422377040769286768562337492773574150921588122006919464506913125090410647455626652957389773177208325878115319745898514926796563378307443610070340512894710653882761768255223064859394148475845060061221213038772283297204048168719267455807889019364441910616549582550569127674958606245991535255206479183573006863498433401964913339142038518261370341974860237284982305602720934685116913332382795345425344050451314466102917530058654800471908224834417136502527381499542210464029817154779366978775491057747964871812285037373411919953088385623795413053789947423174878939328579229237220325830082768121999859926240849596693958911839082805952627826218032777209511817053772174468099917477540635064982732537114763503463658476691528157639186559381376178261628621364325543311809195927552963113790647730222356582242389773635312789300983086367726369444203326657075611535518468277390725822232709706902113879859278299495473629035142456482110682647857106538381151729976676838312888844692783605271048646316423326354678251245405477343608564620231046983444129450451264664493449494275657196783297946537008789373878488136537402320504577088658083337988832343218216932536078038474007151666078270026719538497709638684577716516887600650873606032548365888358410925395751189979483358960732224505346299316583149202529470134865998055488951993547192038185775897057356988466182027889372587596587341238910477267998142059493556978516600022423476968553277998018134168616355071151462869675065341211369395379006951637821258215600597291852204010701630836823102382740171179040774264993141901716249261149894101054535868594911265631214027927208857607083283188508058468592849636842298023482779187697957016374280554543996686825050112245313942857689798908426529838137625852033479169216802038625185031527800725450415064066931803737748676619980987274688865556328238361777488234430599405768178243380487578505049737694442557096112820913070724535385570886660046925678146198751002753070643534387014721579320617729524527606591368334031910543446905838260445778094579753598125894534446940870152131276618819598398275963980355918340743855913093370178665983708800080611317734029423586166686100715598757939837108221246043704169173026359028549591207643893253040517824714489863754904716533307018682338329796936360403598703646723788311279249345098253698566941395639487809105541092904340813947233752451181196639564151732121945197303533026321031026524016855953640883021741105123442153011201570662322624421066913297301137426714382975500626151355664538181968943289603328684067608933042724306564081875607856026088756385316607747368030540404822920346336960928884494951037189088491183911048554759708656848378601598449995139587410542352619618883590314380958498686073399598468119606083445536783860160499594263388313970796010863019178826159343435751599386429521380875383014210100065540529012325627605385117624681340494797782567682210023398891937274333049064423991798880010104769956723503661590902457992123956340158423291634737978198645995537037142647468299849707757691629939270899666205471737445741934439932911091941684467534392286995453807502562036778455454565168230889669212222128206414252811345511649582281024998297575963735091393874601001367648969009189296770450874343177195057336778446200671294512773767157271550467394748053001817717440554986232910195131482942996350512572403393750734322432972715565982814759777267081941536860734660157421414238758775709785546946047132033887643573292845584194251435987700668919340244128836017537403519914462857091526235871208369202583777336280120134899107129639887457399171691284268660091459214881035397459923419825003814800279717823193916431548430498272485889650270377584304625156133537499186393707727792057606713520290272907460198409961703158688532838107305969521254562893746532753258224933181650116137905608847500343979530171238615618903602933006262954602954316930579549051635153155031623090001659624567191120436255091918305909029884279026044400651799105884141365764203988187607218419251016960252610429863939547728334559209722494608568929443625030863365762307710689640875397778322785642408122612807610273644122060770771088658306377967605987592218882623607234350458836352734772740924148226805834349158755871735638205152377642380878379926173124454276988516861495517139315342046991887838683761018359733583727432704751475132941513453860839855549689633165722060668055169318364088368085589847476125374886476382616942800580663828360784243840328832501479728049549641052687182590012536128596167720926071520177208704625205967559071975653393587838862195501243008010947650996151297925458350850738605240455658594891821479705384787658568261228327848600071901622092019138622026957179553882532379962528826822516542330059727332306817731530445875490399305490853746173822203399575747987967703686140691737784884399560303189070651704707417304908884871123385950612419673586322245633488368575311975866689083969223164889234125988438097764534452206351929621809826399712394192870410069914695089728416305277511106846984470270320503758362984199481894062700496014128590156084083304339949353178003622181196665294058919781256831819608236394526524733588850033654079338322681750085156896749518899914165147279987466925627294894226798991704866340005841419981477257295225610994695723490722450597053192511309706266073462805928444380773434910368825488768352648153553398787088145045885365380265787163581178559527628171525412000232622110215328665045974392599987881695836974098068610164017302173687055249955639619491647793268654258644266036942376905720458300585341938613917850338558054099411620108288752631610558099890787946037741841640303524816318461796276311369822997432517434770451002202179425960230421905420375360340388129175919705048624348989402271059877411249421714584252352693231957788285242719144447572265429597333699950242366037528800154498776752984030357034930638469622426782316613787015390270119921595224090069783086199969753478950269238973196028009326069494230170439155763794434182487791676785274402912878330250214326644062722566459355711123180762902768434837063540009092128442528217089276753863247022430744650030195727044370713760967202651145714572155389292122693806013571359471734742475932282354368572725033898748426494990936080015732866064487449844741034762544998666667271750404870854819270480377152105164272583538070413321987635314565727294008279189418907108970386714109844222941356990353033150101858157236967945225054119315203729071693918987325806591074558337879201095790361050952939051806145737449453410988685440126273785204995866063680721376752835176828837589673486071808272551625070368480356044471749285797857728017775078868704823775702230559448819653954413656029326794338632956838313002684057179344439922004736155075940364963045294781943933598049918881440922974717252624965115486002681592470668217996835663825311270333772441962634684214749732899858044616145900236564424880429033563597485076266207162398359188167562641220733652591131087341896204034079290599270925272921269132789793469776859731584593249134708918054701540528212810060646647888776963987033413648924551892254003263081696903606634897750008976647128842676897655256014471263918126142056613064548713544556921434432246592511510530623135197518217566518266511477570358535414938974929546514255362409445632900935855789589075450970255403947343075526933657814659898014239502981241279322765825443121989113375856251545069183706018095575618512063114302616725192750564927778100027036099909770827872404024190092053033801716759634555549097866517780596615610756686004915812905877998774380243958526947856605029064188524712855976419828496180794055323253327096943405382417701775397818971422943117493027396669177138331215786504045925237247429707958768957800413349581362834643108308451320018676414183949580765151328375342341399406980683156418106053586803146839744381065870769379399351298750301130654746533541101217487130842696803999715629843764006727362260893533116194950654629986508067360393594459512241413048976911402707198762839728638403209522454928655407093363508047358811149974155555592555762832892291943326784813852909002561739100521331084568748324893589945676825660095933622608725865417393368039361411008219805803467517754436874894381724706664184783840204545122686693116483767301397743804788490518899808533655482331697412105042645336266332171235522858759680690351615395148873461961434682555809722023817970933696101282089150952185614228260516795738986134871901663509036703672332347509281754643130598606688803012174948929377340776522047623619023874615899197070458866465644497656739698827210242099862633349121439456140753008751950702181708142851115091606837077562950213036780599469425848097396980751907393067058037318391018959498796598276751465592164842019217026347180231552091405709765433925582862693182417363179110985361305445194948239131086160970168150113215366427437251176528113892432172137588504953560177155013137281361939192813944773840584261053923162232722938686419621474764946715638716477946491357008335643155512249814038711460855721820123439551230125837296557384073930415778772779515382316741074948255778463527863843382265822924842143034013261189386510554160204081327833022402280154034915992897836177367200745287901422648303288973266084079067386824309724807613137462537328756826127164185609838238845100304548238959413112107894574423509987224513649011795269081570088782283445505737162026753102587054587675190491057086883302396085436529757512559470208610423410654231590120851670764474874552799592601103647801649603777152733155354746089863260592095662794173037035546221670802815999598627679236668866669925807902759521867110250847714272679324711560332426099018971193054633387411260182439133562639788822564962156948443024199464488925473519733144311814968194416983565106211582823798021044298532781982395285994349209641024518541808596798708874845253816272106158243316772831890475280068161344999542445960978829837840081149962916460543735730307860066573789506894326758835444894798650291781748326387711186038588849383943953630616510711483516360022664020554755901374604125729474129727473738557263474699110671352988875430932489136160794168129446111656748326618922323727797972067858820886845930159151791273446008018630039559218779168595174423291070987022008384109754550761358665098142166553096697885842794984554705337597888919470967768342177363536234767760502090209304757444203465771703974810780777228859376205974383010906734518339483524331943750673826280930192810695398751404933292774812867250712489300391674863121089305424211777813119232726662047361425313175761829542302261496729761316993879961321614534655367821346823982878584052804683432847805822695252334253564717240904673829946570841643881332281273793890166403602655791399670181594574743890493783176972358588893539863271152909746625503264143884863435762202249455041120555192471919083529262844616726012235883669462800499080362296441489227419975455045910324584692522403464728081157510758026441570109396898986756426800358093003966544616859398101783147097989635623147851504315404969688443781644234596519446161038552332932700342799488705022735679806582657073803155531144389379462504798425729251027679818565798243883022983746453521486471108426105084088734309590462619574532756580507170586180817144502605451100663935104148964221304751068836700235766721382622366183463778743637979025400764161770134856030398036949938755369336824992881258050778645918821106125653099761470774817425588060196187957439764684568188763506021907398461237517288391835201292733607653484464453185834728146286535904355463534442288885240654788782746439448761406936465679352475061483474940439517956233114212142996942732435232939991691362097061222204529769677980195389540099938945206924393084550954553871576990597081644612315175227299475170821267562766592551572825683871801884041224937994460989320531336101031278736996222792513530716942103472642127096317195158173862387075834699902093810925280216399887335629704812128995704058210708378580781722331096682111920439798652293724611542238925070666326967133120724385425007504458908035783733494576210205713931751082903249248539048442736758043779317975155872322037599994490067714090930538349262572705083763951597857458205558880469891805298361270121818145227386443694312983049050727313969613633547860844362403439938721939946767985743146867824632304650601015308522342377924114113833543872753301928233954881214211628612589506326342973814411935225072662940478655603592750904395830698939894830924753202216383871681583640400276984915019582145797918691493707977755556178913025306347734084620065566259108384739782004045109390864073664028850447215231615612555882398016828762412888164467318517385852718743731595279016148209095849049551424350999850579847260246817169709007020512906763966393219026581393786126841988064128676549232335871241352353559050751363305348475734974809445809236732489127521964954764751131948321603295667322763532423177137565068863465869946157367541488002293777889414400284108385904841784903015071773542212034776005059180798782166273252358266487604784931356383102118010031787789218271633829094413949329537915767865959591148859247291365620859249393169121238488567109531105853156891190447597231560665998480707093314139961869555438065694576066416738402109018417547848340228410191946773776221993044740910609768360379089571622006081178071665557738930211580235620643516371912012440369017850257520352075943899045797477498414557074883153873291239391427965568768832119923302612281932549351475870058923695134508836150639039070162346985444949461468564571545768956430401070593419283973538773842878372933204212749278865637420134760743972741882971704305676904861312138811321582498040834761354176976180120053553010464088734488558196487534595796470674644240674874143315398371503586995542755546220348750642129956905035834030229284107032559215544255910134002219444304734126706540392491282940312213674139228407650700071025118995218126386522737643599295960241253319635759870318169975213379809866895028587817458385419101418861375240124083213390591848119850718728684863158048062171652415487852359164363573054264871498355045915369375129293984728968764341006092886027139452093078204696825567151569081902486069100924397816515945440426344762408083870327987024130165056475944158072772206375535655302281528622456151756844624288347541966988670944232428008552366245660155668513573781337249889742356472058377146214801595444307377732605987992713279593797494079838509508267042204224258337275132532917893155413434135134304479122585569767281857845733113995694439603477462443777012507325271648253838548316729999715101845845306748192412852819009813213489442065124193773519573069637166671285950272299947259198709189713019774240832159380388781869814178696666679629228226178814186476390851728508717299571434930891431728552532845032765543618979163511100254569842638172733882013653875068951431688652496233159302229059725960705981521031105312535820409308944703776751381207349077585772754634041098578814915138534219443416995122400080899651796883341278280169120066428004448130086420925993965691850562264282479117343302860457497503173472078431284850598176409366978372350910397463809043119941052908889535852337900669638774713328134704840951921518265133482213348731780067411134194386458629163814982897055303584182052678742132305777918063029837312769108428050696695820419373934849141788070260941860408456803338017893503457179153621027711139977824872370835563032091190362805763667950270353365785515032030098086243725331515180132991751674054378043330394127104717979761381857614776884677656647008686739536344191011419064026074780253814878298200829922481823916927457931370191112986887046763776562056819514571116407546423803205941954629555997685381886295490570102230635739876745237076342008137043153918079941287915098070954851560538488890973932319429108115091548221196434632502041323215543481315866401140393128216106812322696565242174585484171345306294974447850316231820047907910704300237949421994212287929759524716823188717574595436010914109541807139756497669901548134217517885684277394274516335269437237920740664447667488270187018752306675935876369695259116328117569503595105761794517815367707794442305350941331088309888664508277053444562652433310549869020150674337341988373964779696802351796990857697839148997206296744074053356894605379189523946026920164107676165595351385660189327550906281779891455464834071736922866729786510831629646951109657281728408332603740407870985916418995367539803226883536796655987425777914788521015597452077912200379197888497086395725027572845498629230060810111075716380813295508089822620745128947980094409315702981098202368687476366322073157048500646858197804665235176983244009665477982273717403428861633479730510676409911681148197437238616588969148471292446104246118488149575248541484576620244143594159573533106887961411658523320514477888129921129028953990741500143501335126443003895916696306635963254265208784949705743572436960369090960985401966726530793571283169425210992468539114469891667962081745626456186916130832231368122238434142335304579031000494507364268826159028415446789838337188940135964798755379069413689492369985862258496624002559677452084848209624605568042586646882841922250140035721166328908522702466770595012031251193071380028695585221992287831507472854404545392049769268426639147110553573710793423325262443328563133981568275039979238978069966707546755886060911295872260199832234819591345980600955627119596823915970490088328513005122070576775205714063862265758462984267778384310104158549959582594542425398276185030147034843992639234729104495816029925114937938978909758125310097021337107148234167573228982802920428414496287893339587296495414137405776317006116776962171344834226624558217429414161355382009886401828403107447607461034903462377082606806868950391242263217395341320590494492948895014289433851404056254849849922137535188653360824423178216291674539825593127757177717042141943414641579326463114564181175772280775290495986072850905087060201545376282227958536831980049023050790231363116031102232161808455707962876088556683649475849186815077760595067606593989556366973349688784035135933552430508020178028239735731817289311564883017914960046494777543599759291119506159576841257281671973293248380310919961435506638010961533435350707937114483551609382154013936626104732640003948613967302785538216054694039804122099614162292800304150522597251583724077271453450920399910093678400368545981459720157048831484405311136028358236295430010681176443124737844418385217194142362173107906397670303659830883934410821514406739855590606728006012094871175531289867039918855665187014674900641921467835288297199152830398370908031701288176832384401788590039060072657228213316811249215748201212054638349840345560719388822885331276609951058227352010808316839008991085998298111675832397978798337431478452443556209704314886736274250431504553490234715267957529087856059230869338304383533400834091361964464843197180946649145998882388176417783123724900534652748785231344920292291716664090518281365115703086366353860693751847553972452966124649533873313967128628857631269294461032954253245693687923218943322642411929655673915385552236780455862589180641964216049959488838422427291412444006844244349997630406424989727606231349469889584439102575703998399657138789078764864130704260330949896638436192799224681428143170511310090690486243661218941429480071228406828649796544105474479190611486566020164777106204634561299824904999128316193802054623745784870687495570539006692101400260355388983221790069616383249768734969311498071730959924693712829135363277018182099793859797743373383520007589131807923498378863974158692927954757832987567114905019073508152684495272540771006681632331893737294762557093727074351246837846173271602604067554460829759247631791920592967321426972292699893508773259975569148711176989610195591104747761241029550552640127652028566280907406669454676718039467532633328011822207962741703937465250304352890910722301554842735348635177029027290893763662481747419034484510314180331290439389864586931902850297131014528182909833407671949437397437869468299897012886071743079893805672695388104853832359818761987197733294661778200425978313115310851502202098249460098796797257486130575658832321593757975899300296242082589468807501314089006306805201840671451359668966580030683642959821803669069721955191070455071866576582007800077946323598080214472072522792039436931009314491091446996179910402262597801549939903732777024048725016477167498958302104984514981409406782738658941891094813622737510188688534762639423852216962788849721701441675643955362395633385417080737777152705835176548045201874198431525196058395009077017110288313065879426042162377468839624713031909089666203427206486101472423397287408133501004577547294408468787116728334837723495793806155955415424369705902817710756015968945167393092314233534619595169796130134468131297490641996908932176676610905251620978998934454692776333155087070981290223374529680681572593913217062598031453960888483918726497730552451998982920075829917394265553672431010354757042224948714216480080125731008792572847538578805748099354285859694230686781856029487562259256827494141765538528316292526769464093446434140796396670179288567941743422303657325808942063645539478429027440818551826828600531606994850772842576462709110664575278498041588051980930496567223939526493087415423884808708432747954751252062596233070839992540441622155357021189407852368646041474409311795168975789137167736460635217585773949333484577874296362508442703520596790184896650332151743899645051173253399867057377279812503921071814498510370697437315714926280247437672156796896237773718825911874711878113064645624747005637308840326060826958004395913013690972815120546230711189034468112796461332290751887823863735262917993059513111195344066793366513993863564454548490816224897634525683930889105094209211616050460231026489553482390436033318794860715743448082255139663420947920742060480342166257841599933051478973646464548167139503553254046929193851178731060127885481886427518698031635115087907982398515916005138828897166677427796710447388631679105763264893687558276584119644006606559884375748846861966474472832999274034921554573532269790168348217893292752305554892755696942341604093061486345083827061162335450168605240451350487411780075312165431251086762177245149777528387687187936125430024390679450842699159562164578497232989368252489617074351052016618300200775015616420417791703339862894600431251872534887461388995944714946167970771955443102109007208851099225483378300724794235017275593784051665876830431683915826091972075428384197760851024188027963752422320128391007695572489611642259939063754373461117975469159073750747729455524288130433177905884085545448382940879538787785516718447958381527202839926962107886222323561717474248527539489853984790148988844086101453610234133383030199789539845231539393691108074030667455260383054259156341376099567302945392046512999289806414918347170273687238055130074381451724261000746511732029070232060830935725674591345592697717412119302029855515731998223720245151922098238796114021854216019813538480278474288827503352059370113941147426855344915932631915967954734277553672477389594996132577854753037273550712472098951937295740634340798873552641713777512668945942717008587750266690842994360946488880219152990418845345276667450070937986345062507796009563848992223688657757757378902277499165652724114107789304638248382703992193101476652700177254386600218286331084061245842161732698501160498661229920875474860038070418508849024930441160643462361989951042937105125739652226508175594336834475959112997040767420472178817899410917568191518577733512129170047564637628691478984904804178681240146400710696032919116627349722089099224042648030391311511631527534584483342649082003161286754708472585693580767876397608883051990922911485640400165525549311015755998895134375898455330567205628214418017910137860381286926624178531743858644117664984908919600837238780441075243758647088460700558175788020734665820606550550326097593956781858520677241844045173013810378505311846209606157526742251085135888183821267494324923416559008308586955347258106124881489454251823583644172775841971679730778309134915911035854887213583642574010911824499809490380053854514853959454766822670947312665280985324193401504239366518311385500933341984807842444596617841074935934575021713217415546138475543695655099331645227195473456427610433589381262406081415501376113879307478794260903866621317031943367044725693206315254131819590760348592031053789224358078717995791883391725589436258432669076618605126502719275119608572210728412271280045052947625805850804975922209437048248697211061485344962507508415862793541647681075694135656134825194023288686580232427418133519674109334395739897955379716859030431526634397836842078164100768229134056360774510006362360101027816722858141980810509270565418503773192935968300010486826158821378059126241874986029116832595484619742976992951712413395632213078552431022962575425995973700285609984861251191344602089327686021859341319373929170085376823354212168628822651734401843003567427111760552915254254705941501948964508456497582779041628205094661098946487893371235350099457482951430463996015975356017376092214200583315674826545737738653341042008750645051364609876093612078072593213988977089216571274631501159989769499968577205451305014048165256727459588642035962419099694453895517906659725661637815284604029466857602762229019683947812126472273586790093475070672556903756112251783073376572985682711571363209640215601533513827096182198763716262422037747016199639484207660558230982527745223494634753242204079819609096584071723800611218870116765730111838275054231006958565542914329692585618784366633214024087642931923553061366980496940267445328731407165849584848436718219171241408687028548944576976100011291478524316391484350622956539308671204343837736340123551662394394081806889221983432896780636123326235130519751339932649786871477899176697052617403548345145976832287065599397049391435833254048161924816631846403758948065140058402279029868767287862501552318004036274670782386811099116733224987508369546263282797070448220314006272646856075298401878843269651417073085383289023120215920956257668997479193766572092915952292765344771192871357008444537081636594563558613280212103604660521747522107766746742969382498764358038447429412529315372668667132552497412182146701685640356955259520389569591941314613509687567886915249264150461739025289573474031080871661497257659420732243949833100021646463081918261220250887510407816349061910459619880340873862352915332939634626052957124150057683530176066232293436623456164502440793379656083988441297944676115356197219874302127747688243057340718789424339946768134915453495107641421692357135505108969431698119380646013354926782966005574332405145558528709435710753705202735559526932923830374656974748364816854618991274217915341950563798858841825497022045831881287071742058534944638409905088090635060080478818650203044825586301097507712926484746726482829702319639087085177281527566409909058300008486978287746235245990644433339720533223665660008478610927804728289019367938282075766767503963668469750053726755743888643838758110337155186677802876782161490719918183594260536346610932176123008793760059634217769418557802881452241866140285940333047010527315174919141788671406998740460696517254387450242212605754774560635849645641044812785091710857026808017146695315890745375385598645431341155795540058156796190533522071247307600921115108065186585051614319119470313120413913580398086775126694458382032560922924837385467838246577978002815449884859802846205030822391245591100855153894152900541865185482620951507493901937884920709860240980931191106684787845004639098657286530209738624586754640853657961134809848193961067319565722171527155998205523904555563914220114668569631355326824894924508186879128150364356165528917384322021785596420425183571205956353461790102009574752067665979347921347281254811043441480140303806294354015004293320869452659467398887591969348904986772685418978967371453172367042246687839726917618440896714339840860096578479476085247965569654686658458806945317463188536527999873782959725292483566137463387745925096546125997303661514803278398328077919639465941796203933921839401404069209502667210315934568225213981037941843968886583882310981673962808224963913250915060203999519511405394245758720510181426319582206492148959557162948036325606368987960089857192762558601804607119437609946215279400822252997426201230772860580750827535946833758792621752502820185362084454108817054365334428364417333623797318405111832033336670359830399969756223732981674406976687800618304054294809498281462901958728153526733885709664398432342497865325515739573293831524896639718845683727628175250551040004880532177217974909616816777962649204804519960552207314355512321732531272296128278736229749955285861376542769417094629855125185911122176405203807745433298797603255333867047397443389942894062347710871243308543978950920273597303165439803258520478295370617866259071337390582444360483564842657259469600003087648752879723806634125711577515337573327228234939990762725057894316965134879410332552073586859687131740287925632572011929097492701777086071129927471075712407736123351669831379414106450159502187370724550814417835952285854782735905231724245654274333726071002918835018566295693006293662985080898389385412968514113599281574755060158656803944020597380093356325294262564827851740065194342783911448149143586673416777219287090576420372840322633440262195805064936198401615883521572408110630032090987715633655972825721243093998283006325905177973629522252686225902038130295377043067212763305010141313512569537463139747249322697938968202902667660090974806090405724261182219783530076093841870703331859853169962709406217917350978688137907488098837077189278101852235258650808605230336711503947411517041369340730658036634790047587013749439498403276219698552358915758049916433544356066524694844654054924709307057918159868687275947358513567518869793900602834529060379054919864250721407872050214501170537309555815461349219072945261035117161072088645062464635003011946912893304299843272926093707124043481531457246020139672335508751691670994380380166270781849524709078406674473451020365128239206198133013484861720160634829093376230447066944220853277313988905950547228843475782068688225403609590751461796472797851820965377524288290696248320648161925080423471062984680670967918703347051350702158873753552798876242412207854099955598981015593849544809122655878014001604592777051429197692936543004396056049749351896778135773776452612976386499671808959101207167357508858598823139010960735273310820500739225651752840915042908842098483602697884232437548944720477412602625318215158338043067104815332475061033314467491993668837761083713673755751942615395639890841948231249617995759879566755458134609831250959368428831035360417599988862850195288488796194449415646895340926149062278521192920412927477813179019399499161465279495958848167011059558159215449714397841338384421830855452428572108170487017155381885714872042920998783222486007589375037807402814205228279349147052188802390356807753750090587300075890073714106563594317643394409571797127794492086297900543314755914247212843769328368515297363369035331451995910645379716834742991021295562510626220172458514419184245874353563859702679956203394307383028973151084836345540349243054115194361845480562105681732464891712055998245797805871945057457857999427647958707362235942286595479528312141542269825881608045895042802557655167686042058718776879529738233292921551506887738210328684238728009357131976159093657000835956853118199598180586148463473072646894355368482836682555566248856124675538852006328240542138970260730848322948138477095521648280456217595948494111520254947909089411415130820308394112038256384842927238919644683589814919348825117439177062955963284180437817946230354567937908915063515137785243233886848469183891016254759786979262943281768605446638202308747366062949924904473044610987592666911233169256599895880399715579428425260417017686317132860105504894982782712925260930516498695186284337936014790536417018787484148275880359623818564264255399560880350170071773232775606709348709778276392993267036996656253767947746575117539741095004738411368011327599437947002863127363184464757211033700276761699275291284605084895737783391358954541874380866321450062314680532418661299041869063978181235773617156141946238164137874646289638745247217722220299601528222662089569683123370212075512465413655993444637868165670212961840358749240477223079867540420144661460837915873108289833168014718008923600180075892797956230560849550349757498071892501171832537390865942962796677457936359029924203837749366556032246291582133300657260668380329290976762024069051747693371253772320203244724162471405639844092830312338744191315863152024059470272537023943426792511055305779662342658676161145552818302049928856104025743271154377062302627690768685321608817146360034762046338007921151125158644441875483238454472599255775802324451868794825015251827803007551044354615909759427358102652946409693151508896593912389459097885771029134858397049388367683319954916760869605295380018490275094325408887715012010924293725910733131564680889905097033685655972132125527328190536882835807315853049092645844800913491675641546712775085907023137511781773273986712597516748409544599410934831849342836016211248247219424823131378749099488080462871866180822217860811257325320367802948679280965014032960246005966495285225026664192239271483985956192891429892509686795774756190200019660179207437767365743552395676732017318660666631891974292883381445197396093765604435227830757172625288457257275508952955905198238950581020857126776526831470786814602961483674992262179944739264227901327463314725867427348316568909905820102640477448743583842255981854513842632855561505634781633632967847389013994945898487328559111122401452968382688087115814128040650602610310008259930780691386471544733203082959185107052541187345730433534233088915394764839197072554682706322586638829903031298476843889909269475256569496908091020844726405021229008295734242069411957988575579651085317505248833625339309086246649042130666344124190841486235183220883488478804185754800253887131145868535197071819895923709026042336631752136190816663476871952027856493132835479270628827285767853114333261831950217823081929801805050619832603241358912880931575353945221299810347424693632116195503617105731709089505614280749849718602346378169798139984304567355832512645757338311659498453445400340113607421602096327670171126276141140583090028374753652599873682183148064088454808998211948158051187710505185869371197930289532883356952260942092147025610801801524849369091107358098938510489005422029776541532332290034387589222375951590950457343158678183458711642152045695053995728975930034990858617201584855644432711907864319540321286876163106151112361649332969082928595873873109771554661767181989302287370459965975872233074024717730116336651833128360250077874545534924763058978953003306393581675637655293251091095011266269192993135531367216252559124902736264173362819930255214929244571946869990112358695663193747665233511470554507017799276247430982336356789091716912555096026466526489568844276451124490601056052019231615421845881309841926643975881771099926448759601771883443275432150150114871751884123900130184175211701313258529919016869367367348536112127310814679460100742983120460378403007170966550624846623352558921348625278139358993031753057849520893298656238366841738553719507536066416970270329162253579360709624461307341348360433078108572129858497934237737784970180979226666075292967434979054066674760866823376772858622422018316428916733710742580049851356090443633299766187753749161159345148442073128877149336404505179199173281267678478966808506167749715001872809040444266882013147399640300170535570464871328799534266745228946561273286873948329900414926943447827000754102106070590093571466388926007610696142394341795265563191112829549922171928173867600366441412615968118006716901935957012546900216942224468104731866100364103570199329049817214680451416941694551152101670978498521579343981770112142817036887434388770024582444224923500390623061072117697952265377008770833649217498572307145195672883141737345758159417040512690592453594998601677225635889150333712700930335827156209906249883720162767596479117099007969112453836168044382862947768865945433213897909203648622609688853625848688284278915201690131328647787523488151948420035517969765755901109159022234276233363731944910701471318336111236603088304428642005314354194663917775047644543467353512230030847628485114312551047842583554980722257269860369662900827788939759488960409656905999368798029857199511421430510769079863840254266893073558922729822598240017569208713979140558374934865272511376847288491311255668808603255946649553382842018794744407441318261187383429077113182384617490499599175107074908651027339828030534328032554368229441285368073783269567734241240161615283436664809784497302209718371439092444675972538108999888490057918539260058019089622292736695312617480265116255782948618737182247384361098209627518416651964548176514790512774209716591796437190034848229265893053416589279497904377401515473325274009840638557732888742206457861411039459610534935966834701487022595756355216289887943585027866175180891896643088207473213045718123327323087178847592264364228632507767319911703770178656933745196731888338770656818540253025932606394664702930821119020713601285004040123933613472472689210162583506324675709963246322057857314067941548129073131784779802482177440308532179337125438442071461587612295825994868089446848950459190942496483177307732830506128112304776627325965640110300167910775880180312317429102204673530540223855615449757471986666314823006800106550957584741187771457988252546383925956824226594497198490434963948120429586511873762919395762127045164706166447387804762856733138037716922855437349777220274420868148694248734047559498804769712050870110982008325791991373611256097756401701292270295518095404621425823609981961216402053768840656087642599951872573042721099479556106298459903887393666903159706882022734299792016113878535899741004055819821979127753263476068208446753200526112549311356838749565449949479419573938582545588023349755285567478722811913301940874545581668499710514344374902695789376925691975567773085702985308214469396663885970567240331826131560560267475832755444814385287292228042789152568564796819342506995232918140218936607435912971912141082309471568235895706542386161899744119947678683960162682977430265758751955272378233852788138775383746327935310171762380515655802248781491891912061522973343598108349592955509703424523063716994680140617725823732123519645372328868261406463816826346918122562887841667383622779415501596529469913033317590559086434516895258880534889944300717402071369448590004854382751693164066355379283811625539710242801661454698812509158143677581356003978065479309534620828683066785228377643317342536884331722075811000585396769190541693227385604452140964942958961746120083438287138627298647036371938284257987495734309289258407865139768018464520807627523082568987399383741486941118371452134565932677790847710872390544558494033807400948081492628230846325315976493210835525915584131002698955912848327552109147922076518539294660747981482238276857879614053167814754038471725509827478562179786022701626980624257216852931505030920828122228467458418560612510107105584461353916324795648829363583817708015755808574603851518941883756098533343114203225166754565475957614226150612137433383602551095348874464286289020565121085640228389991387789149568304717135873912912203079486652840971701550821643541880075722643160971032617849592137131040136859752305920515375833054853063029352126954460770737674470030712273621566351387081374061609219865697059930034392167155600911498349227085532060728027387293805578250571769216024625093874447038339878617423954388710731819390439685507612632803826916810258983240932360648626577264549454613999169750117417323671302922182793028298919176608613961343191467856661322874398978276644789239399153376510003201302599298534162313291900632824720801174482812691425753681121511639269232428052074271356180306522026584254977247314881189034107827571646154844203876258794848215894450991526453054172245540972721378730194335631449168670961732867410422440552136422798237289584253654978748306756600826896706497149002430821827619928627145743832587427500998363099078477269608946952274406946695700650179104230502050799383006757652062620478263365470190170950821719063377269050591738597782317751175311882947476787916155761878072286121427990870821867601338852831997121226126876359084193517473665033660946194014808248840877611100782934837107167424895041133883873047982462788212188681710533993776873094555924391801430018612940885914982913163016520235032979201245422314592613147010157432544884505627332774529192358233489228636086072058835959127491771694391665984397232820057829245529954670042110882824025232312432320538879522473217485455943874128541038781530269779160132702633175833164945191082135871710666113741059196352874053803988263381590150789506169794203356288847291409888449365110160266222234684603790451462718641428572425776037244916178772523476768701326169750942815236206332679289577898552224337834902009194958533703377599511556756998054492311875652765207929006092309378524709822670886902558820886079552056411581250945474820198279018329188547779412457405750150218009602863784560523975914384899542354054939135566687640337996812164263491401497248564303082234641663535987610991800501523066170498121101121033050270407309275217626264058401364988053570988715092423856815005068119647031001294284220502531355816257202045534808849951107183014766270967099779422783316633325146082770142733440929749537368092407512454261991405225024370705749163898626622858574723973706798558892824929720223343188256462975450071438248719819014071064770813964745352695146623079392137529424177630533564352343563572513677580892920406263884753733657309726956603623903428448006404696047874933124804293810933660609812440785303914120183486868712286782327968244764375052669657082239593594096994890280753612347489881462221295211832940863494979909572338300006909487616424420791837158134855282305137354531053032204969476330925033849176367626610507097517881487114370751351868490454118684598581800856196956626042375587973997552520795453874126308427816177528402849143523455681113751527036926951743175051980593584612967110894984849634182581670659951089646223774424964701003482354162321965505411859594788672444185819003312497679450489181848711439773101680628644614337024722536958842145053290096589970446378856106687545181920853983549313218498707239305505056081624647532782853338431705161023001914331196252956180199930748710730903622423411731955099444390330560963583880173808386891051665524167107783463918708305240309371447519577083375555307198603794881529990100156854145120579419141071081216588183049903500213177903879455862273883093529469628875322226966042326638753705595908887237499245272151567781016874205997896411530378840238884163363369186212563337867677246844328884729181806559931288687314275020020647956299559132152673274656966155666537030601300705323993887342092408153846708915878891931593895653972267584204935188722817285020558726481416086057688890298869054311574524056980259823632751937497727484483811011013333235495632510008236460508027662113262377208390581684005716612428194397350076616051453212811940665648462660212794198264663065898488813304522560718137917622303007380641344032968132598495120599476338928782383907160814881341536372622659736771849706491908356181389230456238996785057830979341125947360313717500078908293971682300819151056458764335742318331646395839613764620026293672288957361729347759793672850588185307192548996662252233573205293327389324397352628855861280236436525777146555063349390733322287490370598386003416257066324430395865258017118944865127278247603028804887994728821753505386088432959701546003954285956991822301978435798942240098926502899214250402584129917281789770820409201419714528797456342214039326178856557868439320620142648824396705000125185236191868864704949504706590768100793696925590412981699909751378397795357156789310166214135391497780607692072092543544323337099635748055368884343927872770973568469342308436817224651277273018660780504554417258998577713704821748962400260092892226585871166145791468382419427866259792353306017039174715441380295090567172583519373468870172231032893865953129227445519093755078215733710448866106648673494713433639563129136710736505473545493470777842610619451383271456803302606244796991944644749437547499328797730037358970484000904846165215698522640337975749532680577635076130269563368634445288407750658061491037359368505906960102009579773161644909264123000054636577142161741630132641078044459011511893183364623309123964752540912970983085678742717200309017683679414766196895714470003171049645053496250625415802857639740035511676693712209762286250388559778089270756625479565991710655572896687586303497324205330674762296627637500332440039993341729251643161010311887257301127802819644735379605673094772138942505092468630999098312020827430009343325118406528693921718928361239532515416120683247394117013005716455069465712092244026822243399994238754235202484943247316001709970539464330748270267267974529284205025083626664515547409153867217189316188540456944510793469567866972883346481931872007301356264723022777692052916338634982904213330735555609261712537985169846612885313315247825193326298252529152732620394553145615608992757061112946312661231674575904813193130815558525027761612899783304489802878985459250775257319749444015943251235233962311204274023083291331590186171849527670475595575018665296285676544214982621400645167627070269474430017927585132354145533914538357055538217327992356572038097454961742199331161885449961747675360296327510651468598596163370768635840474714827447732232810092149270057791734175718087798898134636837317993176649474324401151768103181692210461363454447435133785709358138536018857455311923083188474024078532901491924091119690274498537478703933877548502759225225101041030291894929465020409134058071503316713402119037196727539262324479346445522384350854732359095286808795562450008633128524141325871922047699643566209232956842120272514217898886408215198992877970557811112687573254752486930937813972866364013512072170283727637858048146484275132146953701580427436090833732784186076952469145874379726302235060272107722884220668405344001628809032594681844918068079585766319040907733927080242209435722476177402449917560318094559460793236933429689119958236646124201276829725914603496056690144260438496942753560856984194557441951032493377972062807842366305072528592734536834846784087191422224468963102647913423660841332295220680199577848102671607395563989664856809600752061664217818802343650349419340705938989836638697691780003565375496662926811743607595957315678103653402068710809878220673408620947155329831552596742681437388393655405349898793417934738898314069028035868422258569251268130991197571631873745987644927655257342243945640868813158072566193627015321638057465695576848587242627624973508641709951313213913843787353623255205799841006900278753051208329754792304660153239810181383412850528529900398552326477894038251847568782535226080844711161661605091957532234959254688169354308636998197142751002769632044535834750872177755776402307806271070257097479426736510774306197164355498902814667568547661624769153053795139191355540127058861300069762377953441088238826567185564500528115756210457949712580464635511324966135237824592174911622616139959947684947359166448428824871019820193323253099472087066670048507573965776347454956065683643016639551437558071719577632509743815789716274319190206970809237079873879672950773160051320019294600876683029627244163830036740309289301125674292255794595070985923144459389847748769304172286097939206462856591145785375106068109836363560866869203531381446745758298476340346656056726560730535313293792622706993670166558050307187795284718960558671025470594674081109820489845128387092182097569742825962608160508975953175256250793863550413583125929134569996807255944387952330601216182659204002540280529368658585141352227901091008964312703139932681767788079957520336802483758610649843646863492420482561152829110670948266124041000545364978966076596842296635747977948030689740714267049034531300118073071863482197603170025369233625514041846582205863470057922554974067324425065547880186474249966792029227713144278379059475567293026822594394524041153951607615012030522010470147284862909932236533865247140456460042931384281397894750734251060199907389243175824470543671205112698530663373362312202496942562757626545059928691146876860238699597479836536421096895746343621928193228729719194588245510857933522703004938834923637479966791127978939576912630582635746716730366333873454022069195306374368073663129399445970261617614589655818200875340271933825568304837083540772498345447675725938880136827048208471661180916824334545400079417024854707471954253227728028301780158102105602174458987075566108253294149207042019774763487296353467257190601615992600898945340577369899536337208455713570714438522009363597027489077010020289688912733568631965246833844896383155437528543655868189874157031597803901535159245878114100052922423148449431133614829893784676092290121822061833718020380058016144565661919414641299185088129232009117806069069830368766587104245204095099134958306637331599278784840227065922750788033815318025249505614547695434525183011499821973696966122782925102377686708742637792975949686972410751169546626488633810274066995390000542244643695031109030799281112456673405365040026401982028211042433272332988823008431674467049146950373422270188191483651964811202021881472254154634562774291621060696296955161542076774143040413015272297407429183644042323306848408620660842973349259790819506238707177964030194071017884277314732127394191174054645441299655322767546617460649672888053170402691645667208252879971355890030949792611488816194139599545952302518545665178104519730878259726406519405326485909756847281780143157047890304370786205407447479425777266797767285718375534415565346688714694256017929782925040972185391557853077702438957824598023691576137390261091717379094384530362996168543901516995307590264935483036373255667636582157369892738060890445822055390751414056717655254127550761329347258792217982757064385893857484389680429114744788675101310490504601715786841612993709389489422553242973285896371254468344515587662878212744829638389760277035155853840709391490499766097503391833081882496788001218366390405498262892956597151521536711332002351489434877949523762770064736043678774385259554043883780204552944042163997447835436077577014328307948647474601409160876765031644642965615625154007330832479699887849943708029881564944249760312826264421720746214819498899459993278742600558586777743037066702236255403260958168811191534639627109601869634569977396937176467243574704083547233966212911238697457408890228894162157152556036152187757268344446657441235243316353051309690977330270619263940170191730274043075391214365196512909224750148775347197801381407457581981286287888667864016229818776976228575617191530949431021105630189629482604842646711893634883203086965455417422874311282136451980097269433380578515089151904735148260041419175557770512605258956292003544997801639034091786908769905820670544259439180166451411696110540971436699087726271346194267831787318664948226719419099474973078782583103270618090840434259094566636234841439051986345194378219558563692093748180818787574559306921945864012427983084962702477053649727663350049338135735358481457920527034448068701471393244999268572896474241664589808131480151021632091004122019656048301365075964004055705367063028860786511575760383293439506635911576607075460457978688420877620337504083103963455666991846921507860823620368375141791537366932630365592942006114786142550182757216785177023244261165780159300630726541896741174368946894988618330027651084074320756031082978012265104105845579680705190776160332291762376398968756888817931526176084086501609568843604313924514352431355028246448075281105564694372464197957136874254258632636637086785342434103344616782477371261071090238623797975526437416881196578279217410332128401141815365010119582995592430167918850118540569545578201082031478140400327907629907839136224577938658582803797106018748575721172318812136721321343506897390287750499035316292412463605250782414669932327485226657200459319384086227725767802438389376098252876505903158492433432206027744258269909055771398055608056321869272313298559491061223795541511847285815463320730552488635840441104209004442027116599406574945819290110844164866304510916208507856325750819224660653578383760204256760375740902393508958400858094996936967189604318727882575926852384094997682912488600088537773815780520565887902874168655966747321786492146975049321589667719749597027072329362850678718937390764887923075494315377388017868407101295369994710408190715807069275449309794460226386823010913283990135840416720214399944116254772654225973655997680921276154986715274339159034438641243815855088210557599019091574243945623515995336485134263509575249619044555804534095591662676363156473138933036959916973795376105490670146457000745558765215720992431506259031467751946459710820399480335700085716148038772719767193082426352688572926008419757703270561175118990203650111456474932424311126264844989168507344364517148047893151514273751100196062944629767946215687911967647634606517477321205562934830473152662398156017314173219396642399797277683766280410228849587114428934133030473554962057229770523256226309841613431522946237787524714388109253438326861022565878873417991304746607497836518388706514694225104710018109870699906023192474396222041398802739437567909432137583783750883257383998267825391109001583253481311367154174028564109995941705658390785983688484504733070967195594249532656871845484371970731475558360890533164647082585444765636048837876091947581227525554177247767503771167687530568563615043564752498032152268573698084385462565728769563335580101245726889522879469326759286678124557475237840515150024061468537554150086313808249932447956582654307651606275188433374449155550065600037423347658429968824492371703515256508668524874045904609070079172257552983178983923132205822817977169958740024540272474452369903190918954611471552925446605191349040923218611728661739101461373437614370375777360520865441079812112833696946118458164822389274395973528452802001347430057025442068483296358037150749524501375966776092836746337281674572788346383878941678989244828769438799008848781308621340691735901138390284344639585027987417093988958046828164162982286864698303606161545139917295019887584517267244058867816611167584070274972570348489267820383534554656631112100544650628218169514547207331233507613903507937430076164004481257359723660113301563667896914128404076281383343295031220081914466357988552594310496259671463757270545144126796672837574845906858605130639724190981941003491808838260318441709809668058866834155513233898641649575090653022582016345717296346448476001537084889846062714377147376311451803310018534706379042301989449623645168873027774357979941029548225629391971589332934840207597277399732491712218920943084162582613535765411271122377415264964921415094219503631253855238303994977305368094006155708078907891386727273831143558833615150570730071309084474719359141307166633739971811695678835600154332036773203080231377852532289441987089428265542402867858463219407408474832604857775675522946414690106265740433678623541320520391446808087096453641306919083957353631426776047990049198824637918937818674487546982553735188577463376125224764559795994502581155759585961290344630383187683860054557752308528396234179091205776865802693334981441187733605898851845501910545506804349593772865666971325429368130120531856011070294303271928873075312960084841284136942510664006647575586922591150691575962911577175283595030539234963622063456985184514921559079819954354662299524401229568541846681386196574816994324879515960486487157289432703257629916638279152338371183063838970975951860238471763664083444353203512785446676209042653966322129652983764381312977829843385361509758964752562643876618062248989484928200659138314117138516762506013633449448834118242992548998814659903739334845071894805921820534546395986702983024682712569157452426614285025826780914620423367972394365410319889156502568367987014977204900885707409109080735164959961652069271655533106317037157516086713960977114271942345037283535653474732135609424785865651119970334913904559924931578121934734827380379196443701199230964388860262339121880118544656552620637134596458503261360129676624839600776004990072321857928999905196441559302969727683036880603178199517547223813317479502934469383153413796328760799356891950417118411104029195714687243857969716575743988347250496267919250221877634986942363602883775315474319699490855907403472458092105999685535207879842437815861675510203075510921986275438660566107775046121803364365519037034926142396590389005251110940550398610482904837211433263694214313195985185548552404223675986508072294082997424400607509912235887618693961884612049961883187159659424407825174402545348307394205086374922133191537876475123932270858867439168668757587181770297002326142587196548147984125617299352674588392228302698051526342338221769895836283684570259868093614132400776391663912868644841168517291206281678360209933174603817016132362362410733327938274546466425944394632648303996243207325904363487850645779893444897560209589883849417908848672809178782853223687369387699346184505989838476936407144999150534881230133172051980288262363712397379129785813229048582199892954332519336398698088554497155658289880730636897528078057556559261607983057313358310104668992613374037393803187313202261944579675549116791443645062277390061325647875824951961953093122995974319810094384485781752973760932436138065456050651333720989149142423488008412484249714546459703765239492548599177727860903149297106252255623327555426281928098141694406665276601392341121808169980988116178559269535134451038995648331501391920977492707164243221983640945673414671194252839822067934984076034072992660215502232610608182003948121393339053521149889577804216877701573687624070684409423661148456157849048970661220303958680846976573687870077296612311587984762570702970658659575601931330825275817613470499238926194098797189138225069287422405317513835680012062527796224140591860818648149001935499186558220052549152069261327397995094526520178386170415000872023644223200552539783227896081935605404317703852790516357952784473588633695420170819882734599346315414064344134216442744945545965803572585352799238745032706183566038174430577407141173017811692781706012558712903718576954643039584309623047933516810726391354110583440431728023232187957333464513242402834070308997799354166199993477722341770724255144226716980723723724729101121858584586911675407941173445282369253858348945033623562007220183564598683900682568253301128833240041836747967694272987335017696367083632642205763014417133965520565564930102096685752248929716525356727823495506204557211990243037545057070190821627721893965603534208734711149991562996814065411353658522679501515872863752956081589217788155844179094418393718680873353951680343251402347522698290054864065301260050649274827210735143419607807735519373900969948892170285046312776965020243980674574993164188461598734554614486799034586353045643952229372561332574002740524621328503018121240514327904361299903036829531009746363170180052179771226875164469663921154346048032154280684622330372021624391447024457574858382157422590992860210666096224738650187532020790565670209171115869355468026863062159316217941119755322315988910811616016634531320218355689149850137452411992609530915474604271974690114956244898031995529904577858695901183674362395430786776314642300730610032625248570735980635796419547381749021402023458434087341789586409278066175372529598815343901059321434391006916814915411320523690594442870233679310150219136415292843759526102169447599901905707870978703420890611314268756219262379740654016664937732258511025689890188632677896596059086633417916555419843831091834102167969327965011429362539464943708851675774813306654779051916759612752954658818680481379439587466497589519401080265435341382086209270746913024124375359190785757947697320596706865812444430533700204247285628882484316760077510257111215186677434885962687163199307286685028896756722147726612283131756576174421826861622474764756401126490662209728854538425934551814485832864353159833417640186496953626861909051148111268793444616855386195991449146021213257894609580077480327642818528153064716385961050314117841114717823567494646789144419358606693519766933583162678451240700504823890607381702096637380944355154803763689888452210338650846335981177941384655795063942858163472547481913789223929041973295553639480760968752895314534343684558052337992224119154109443567577862312312569239618338070164650155912622527924826205504458725574953173213818748365541232688954611988113377194147506097464199441939294650071656499405818138654791887056388604706790283057466474420918029210123109917202566688816122412985067789506449714726328272179864992939162384918289329189552062132553363030802518331138592329677344048775226203922710339884765194669347330408064194782685643612446536633068926902424186245558170456494414171261243975249326454600856761840630676307072905350557456949084182757497611421305898922628094854181283615767778977218007384145585408567447601256327314790026578004428438003052990442371687297819282662494842945036157842691828749712061274847886438009570618863722723000347068966705293275980015002887829970924045112365309949047874815111328388324068236458857446069359486245212847294736853811842156934921563027489290516807231115022330700506584885773948691845241170480043981368578841375627499062188354154921273496876613105061933336895419902909799152812788950581591034836968394931833477879712182839260496208523590316246629171014815116242659107383340080296272813845400439301552164530377298062273337071809771122058182151641736579056434498227872441364288647285367548777332596895566679004230522489243166200041844978269161326729262955163313237274933824029976984251885265527780297495049907957274924156440159946379615265883834499718171943845785326777907563144722823557327825976440648657801969448256974286685280853321817117854369987988855716387160220446154017008533328052486050066058198697025980310334887397774929762153684288083202151315290735777512740451336429253478768746806564058165756559400206326538675848087355050588268958987436093190382396909024332374955121902811443448092601374919204904263948147287952048309624618781381067346040743729826562971714118241619044130017770908117573534864649719877782285083736048816526776427601326846674579861677693999985748755157312914484708633800003632213784172554991148775238353377606567990425593851146917323988923902399117994679290743041547701853289834727199008931612218646133835248555772423647612119304977193550516477634506116684803563936413496230053567759426053547840364035266661500975604680006759453179741302898947981522119018660117781036115559794437098254729294889319233713566575262647819509362811026885261457796211764332873597442175890938997876073212810371797467497980622031529696476453398735925214717827627344593931758488361791122077396368690720671895364518817841947077818004528720604200609068612052687667468771162702755047898907905601719327093160289607312942499447022783820454023352131451366163808289015818949688058698913760308962951670626963425760073125634789030175373875875954699743775456286005556274270878571915535316055847590260214760493018744793142441261787729827987115141658345542741127165155400031559443924749792656454930361985013595051342850465187367155937083170461741471157367156810073651852179085807743471090697284674930194454949333367523375961420240366822707409079862358814833576599953128171943376925967387395685329927567155248018924023463788051499763421321178044833842557956996393264217036992756335944274935920889993065379957782660583778237310847632443510909649756267706856648396986485030812427729931447268707999893299720441458533126364246031715394393424044170672634424053652366603221687619383301556481240207885950233018423328751143893320235036227929900339392835596114899586287738108980484514086142819992883973318561852961274551652546580582132354478117365612076216318226262688020847403402075879283987552957225387042305969390910263111522579542276581103706613054537040606185891231664325336942403471968247966843261756191877322342902896172820362041480064353031015501634041932235526037562016595144854879518633619003388016378692119602674720017054721085445832777191734170962806642673876037629523380350342373616549711648987988558259910552656264879435428657667134302772537840951828317163838098763128688199757043951556840848482071113679656296099637900405154045069479264847935436666891920302919156300040866209791515726791998788978684151081520181067749489687194346165150330226794255068899512978331559006646459908374150355052013173640877768054571755750330990019934398261643117265927852715486081163453473937321536241233454564675846590792425382898597290595343066566453907942652187499554504966574150246553568100531847313630754788648781018497438487709421331148240952390200683725941356492224822587940841922284316541246962748745453999394147073784554158295313301542730496522356874232105540241013905433353145900303095480324848641838372414576019330802521842126657658524506287019981483758254904365788357712244908152287237061509508165195803242251846983872927214533865053766232588683581359027064023492681153444244954194604647044996414306729943365749634140833359850939706963802357298314473077703571042805331404174941932603055575349586763113429084684073199047624511121295240386352129270805293707302597605306468957359660841769604351229780189881594993978121014146420805931475873978536550264404875096776913540084404427806058296558109692094737675870280086766788565648122251777455331693921726651244234545516225827789650304616225258956629223559594933814169484868796476472211368040199447938800442967012035441163721276828749188758810263711072917821935163414444980621232619593594624735377721420102754150634016061208264308496609045917541519660347634264944200571552560734841411085818482380141529060385522190017510760964628021003823477505047305848131392254557696302898584437334307626303999855692823251403397057444358405252998927248546146130933725577687926583531284439180522778550681213942434439591197371511216158563922567240816724726155350587048771895681167459168213083389104523517242275657880358130094951305812957174392856944071513419851521680608029971337649471707369372681020456825785587712076578207176799618887627446375650946705755062957921350746300700739534292711759745634307927116651956095716618131148924842377533583513957489768188837349515703374494253397587702934184852913344765181790203600834692920453840703839958544008615012820919921732804912958629784005536997008898304580893719161190356577611192990512774965349505095671120613037505375724804040451444260584914821190109125869058687213731293564181273647888938885410169476135446965432244808582445695866773623842491016458400552813519454294617304402810060342584137843051600081936902566576047634974365635074928790866711930850430022885543382436455196272955984641096373826986473911822098995012504904989426322333246337577159513509400574062968662617948782261616048687161874974442526395077133483097754707641555041746132517925884681430924322308133204644424726876800087097751855607690749472176660249508161394905016498010922368883872000775723064333704563060651538533771879765645624057609123390376294913564923039801366259219579460148426377182874925686368436254256088953319697312020040138196215941006594568818085044784682697672866552625916248815313830126477038452539521279376609555478418868397959390973725886903740433370084722000274637275234132659418836346362836303837911380012595106790272041388703232388985916823828376738244897571696787582533712273221156372551971401420067440072380403660726600510042588176593662611131842149041589456570641853661937820626155928481396538288711925761487116718750887558687699695690812055993037663942874025960592591724929385706067282862349563677732850076291527796976393431648411655758187414170794590434947594388283113669790474060504455572588984059291463707691540595461075234616588598870926024459406663951972609006430458652170674825687467663720882498265975726889636931135421283763073713121494761196291575306127339898848254191468940475682266927840068511479405740489999384569209299771421104623933288996150248381744280206384274079952657094733873983397277645530792097846195853760741349005096084984221978520381143671115272256686482635863863045526146267874530312965599372866672019000442936571050601363364231102575430475152004833264413481726386684220326740433106006924755910621802424944732125117103885516179914025754673337385258063953623801893187136719375871070407493088508443136432533098412892264206070456479492361536368567808518967250708650583456014853781645087525885776201625069127846168222658188148469821456799736269652327973972032032675215355574898077078418083559063810192654139988628123548957016246069967181301350053461188650895516890493578874619431096768817621819909535014214336395965103212985147722499946172181809849096967615604694709306266286632327930168346607977874247216235003726354667353809631476253873253664317332077763677894908221361861598651817989978596959836934007252556765093452709081765497880905496703963046379698345684212824012917179663567925613199366786534160297899395748912984136984398647417058454152911195493484441694797495284196255515336851569602311043806724716446714488824734528822918653130303533889325976516447484740004459535973335271639946023746944994171670422934794327550929444350659818330694817445948131670077697885100550507455747956615665864867195063693198764738346030708785129374076533353437664336236698333008832328663890293171874624015796864781031479875451416121613256817243227909806504722979361801437619719498312646772673190084677054680324225534853346547481518682347849766525270206878831048286131030897771033270787793709205114976756437036847362870455641711159963428931254520465254721696054095499583864183328440601360621704202904833321941023891291879072442608273508257582518018289845279795829258346836737352746055289559983690348916251542495365772243110925800855699729938171183274868248045265311002452880829740854445077512503147711057282266082304497731194373343993356146091025815245393861222293206225780502626763942877313066675977692833379872493337693681444477530943331399037773175284766146743266655255250723757035980753696953210627724723456498055736978257936931094129582977449938498214914345323134713393396563578712246915422531166229495517001222781568464613554663475169065866872535139696923663071056472771504651188036752965447591344043325339349485706724276628605123924796045980210558401047404878906380806795955247023402237384246151137517874039378750052070611962876687255564268750000328077812723165721897419295640735790664122472034990268658391884104370294533262058024266885849870355101963496917272202253948600538786292517195657309304065297792060065407052718510885300531198408901733223563028461323757016991995343848040920753796566500864591503367604457320309537113337426041227712510214019198170131081727083301874986661798933573225987546610325582586608578699559412756742050147999418806761122552622090569989566840248504990360377194828859038976858440296979704885727815427978090346963794972790512756139891180088203707834588930960566312780163210741079450161272810537455584404539698574850474863697344616281892239310732710415727356127567385743442121418289633954333867414839624927488495051551306103332875665558115053248407327281360927038193548135387524926157333755786838984154100181441557611176407017491475555899799857824587761132455891550943836669326552202936257695933642634228631112435132872545782508294128508163489657729790270312450519430016185828135947621146358395832841914439452343398695300689522052697883111766652988919777290477902881440076970229356829476110351480080325856485046206904285257079259165415116032692459932469343900262767597962834647515397499243289597045370179065543068926008869355163255403273072175256849708730290989484078648112935520199008232595235153669132944219367998911165030469551212452260444664763448300587751295630896288424494882203641353670440613210382105868516051545593817431685678254387098194143313894005000335971336563567128001431262325770791897482669670136689843763939608563159798734483897232448498377100282312527513618927277047167808090599333019710395464329743744032600992354906414266656905377958255917111815311830806970425886502081255011622043988783031849772405150622734991841797793195244697798113921235036182183227730948302078423729843633785047316736863132401827398153670884081851806578419131249834808978506519101779873999916627085400089707736673071697023026406887110821961081817150099150295853289862490648479772645080440839097888036667224410031049893638150911699094349554289522254734669928837074625911197767571799641023570389001312173769328598915396551069182772562171352896744018598173128885102875577585496512787272740316897001794891897710799640733089779907844189568912615200013057687464359130053886746802137626051552273845271220767733501491752276350567457695338631742749172680482092276750798477581141450534114866235210076834254029365078182852618187511248411801955456741966651866248222758180834810932662485246990359250297699402703746903876478540437934672943983379087536434595632793104715189959754242591380878866023118330244239829604121886188651000301270187955803379163550342205148619498391392935692119762736910648508730603557594171998885705080387646609254997798761576704673961792570195360971402032162286098829645040458842103750800551133458933138028108866101342005900617833851396420403983427857457793282988440337746522903867435311448903695185176227101137509060668154197740290904453487385407948215363124060806481735431134116915567758876979740559565466872665151392269436855298679970602591530815935544426865155423085094493826196280884233643254705891818156280089044646048965406697086838451519848059928710048270538502433525082298282374991789499309842047622121617054983954147865389311158703244999035854189908127477981697146157690480627265419320577393591792797182655224669529593697584627142417864513436716907435036176527283428004161725042022375222548628802039078417310152871232173996651371695226426852992354126276220930035735199816661266761078760508522060031044079829296622214046213636872968728825446727713626983147741419126724221373719024523391426556711489441564418292594160679925884054971437872237448150339656401730550710965721802441521144195166090286111403722307503061977646048597554257257509257453999913378131010332414898004274184143012658755008960273177772658929290654890711644229775627835720363893700442642351540196901991917309901014895697507054720038619565289645564042370256597286581182174884938092954449687432642194652018308514209465057469683964351124023705765390286707400344093124896799389942657696812036334715850822498533104348824232108098507124856064735923418131077787816369811838947964324313110509473101059103793786464866269141485378072895493819996095888046348719893429597736186212855185203857927740616590787484414607644343531647149173011814752465010044244491312272359386924467084926094213308207090909222635084566160693448909571707266140141767292512133719036877977963863353890750236875461471067325730807591405212426062537762744833445606319882188355645183920923016411901973915218326497395209552018326964173713217422144234372575671409761356621375543464790278787195511226622740582416829722094503649202582753050506867759221295465804941000242280629002054295723057192483286906225487291852046266119178322980081103537162502872547080699492049080262646944718083865084319252835814658347321758672371356783616364094915273421385145465004166854699040611642171011905167637888842454358690384503771279401830105431674600622526008160663330175267139057034782576781245552989506093157703601083976441613317979256638595752308556768494517965174499448629872631470268136481811285763354705771755201757335978144655314485164477462719940544001974573557247623407933316971777167989654052735231963727365298132630683378788146815707976893559659133146998229528481231225346367138217230831730590551948578354718051361004760589164179879038333845495989875847987273662663113877365751602167113704870522395757363440629480083819246917807069663696787941635222726690756928774317389525714019262343495234272942462944092414556258472474681886525098892450179414969666011277711771541804944885934834330400451115853684994034473454718790095101257551704505955784962411783554746704320056147874235666562216105775227855069651198403171772818419828557509704970680188586625209645013906432747337814516038716097086226647294246726891389054125743367777936773277032822950937236853050030696295912243830903898151068616841546719458823672258530373743802152429385406041951904123347400645001173003996924833920758799867636234878081982197344279852799964867733762829812145696007914869859533390086079556903207181470341272472377169230811196060458576532930398545559186901309300451705816014424703858078273391581429059465797867416441415720530175688442687439361011192603608573305110929966379358577250656912928126660976662715149704159885711087065747765780481540941128413641457125745241720770275193571588044229153294196039124216101306044630174365729580995942106033595271535262374139814658505351787573263933430041800598440870989886845069835563930025726218326160614077694744610912344016699052734336790517062325808657824090548955912597880042178773171288494058587668478924025124951920072320762222158815351544371752157863752634914685503999961382195410396013386208100598219309319126358456259883641253365304312188333942610641607415087834282568130193177154749864591687879513590697905153475480782912831364009640388015942043550790408943530629467642037504751082644699634541934541741963408408419527084631872208164756873685375423726323313549916718200009737896924766828116248779383217295128279508299348237953740008418362528939214172047113351213410563682782702911881854639228192185914373863604455417683942826012660414584914002412355115321791539504247783978947560269729727992444947479722066064427687551647204786457123028911442014278523308932810448730385535486515151804484562197658005492064698937889077428631782400402974858514783327997069572191807742897251777903919721317476529337330570576876086611339413970501449490234087666490053226826445256253280931376142138582745781939833989718338424636057907055929658257137779586929640341324156888329644269097653535343599718808149834387512320768429824256572238579069361644767640593865127402623636027446101912196614219416619845844871784482609942564828463609457027039238563792219864643852826848025346827093162751806120536231310641062846208578293271247713782168275094082725159630879256171908029043830140831362825995971587439750909089076391349867919145349942987341098739647051935941992143833804061952259126512197675088509328293451081885909935692127821940897874369272558466278727964391597709840585844540879313608252812959323369518723903494375480626612952233232836961542432691122773441626470541098905698642451975792741476313384437600720882339004649328255342507334323335728995853184095411658728316492377915269751371880605577053556503941987185180702148775794493641129474821098048325703041586898731678648403901669899305105831732089893359333187596763896001855289480947512571178592970122995356393170847704759513662310906690070036101504736715230767196362478539915919082118731047259277336688882792899988799027328419009754076432948510968681782106323436560336315195097249305851811924496948651542116737727969979117898694814284346418898382056701386792373271645230821925569771574566471203645397999685582619658377594730628032117686429451158434355112818027533706699194287450883030262851902667545749962068933663690782109774348979426030050652537328703789312859556370959708815763400052109230434570392928053785163593645312171166298136712784144295979490529237355550612048874270947440454023318037512871533676182379139284002460727954941231274885556231583916257685952776475056797390105131256312165932779072928298524454422364842840999929914076961340009278308158206585500853517790007400485363792034300650979037507255804461515980425532451332295438896957246570777352210990094956680164690196106323581668431449368198331867849563847976751915816568820283252021186558017383868070857339287271582488107734491799753440133265239755869536019572203975924194027207585546550776222650262448735850401118733809956345782892566892591890965442621283799852947983634496438192118559615013884530395525530252764228571536319966448090348548661649034320406588765724828685547287992359170932387371571112193602471023258395846169746150470071259374278024832590961968068170166745422978697691317550377451693348556949300935156083393333829373797008828269162790645751568097368728513262497416356208818539935106582456994358393966355406550742372615557290327137369902282776245431864296066939306927890936307522345455438623321865555135831588837189480708151593414804437494821118378815236212758388256716136755192257253673602807873414474954003658805056143634448537918954968112648054413178010125055782104149638530651680246431943458477853814745812473791388964489119450954004437351298802421302598103218232185771378843992447022734827569362312339822007606204770941933349589614497016612258422252539761385645059568935875073476739615091324506756743549398112028553586248098979173684327989116971516543460756376277476776836522543386653316603979787215957490731177030113799549930034004836997790811900445910567007046682913451431056323560669292419813352926475151660703772281140223418526684385620021203425577324133073770444599275056655448548331297401299235056866121633728035487004921131537098634711427948253083913530598514482156428977508765719375903767289893654608918463508971616154694990980730577039707677398575331807200541241653443632024664925673019043480785594041964191913619180586487118565874280230479225359017881134269676802366195625182218743880624089480660032951388700614827754564376283738682144602523137056551620406065548767601260073620156913742161499121028360672950310418214266413738340540859107812178466360489322108798512580954283225166532776486169412330036958535497449882097499523615895027337027783484540923088666033816467750689550739665387570874895390733541712270479443050372700445348090714837593047060422451758651781286882011744064663934848569084341653429494552306754175296640650670011362481802847505762046216105004418275923540147539926263372969901242122146472315355688874665039825626530714763451612117977479622013488328521613471505601949612079877002850124551217143100514748018224603771841851523118784899869895654677781763317532157526934070385899080006950347828874773302216131930235110766875587720382649206678994948331289728749493650776228969591914263003603573672167281326928320393137247123508811985648055514474672831289732176207802724805265327487919660334414396718968636638390155602056222068270013324750531939277496158234176912805571800602028085102055268645077938374324616145872377606027083764826620393128267200745930365318236550425583153009544392056359133157926897881210963897197563140246795145549687519461003781230474882299860175470137049486310383092652432819113500009121270753304423908377147001325560281266941039308391497909962179344521846511935213260782179105010428347759928437491121830610332229808487837612100968921553263396181860839220527041162662602769145356896690615287371169304138800767232329358509989171723385647400305780140990224742722608769124346400229006929473526443028941757470080355694647849775390516555969533251896589401589653525319600198375770732571460257617946026246893292218006757569373434349287889947169481858436416115400130828435583495943273493253787738439856149289925079378649234752425596550533997545932150153977057239851608222447801719592621443736595773525861213083159599778339774285578917588646640886521900004722300737267586048644450227040211839738528997665928073137001995508625673628579286360981674372352151975990005668204889390410104861559689361058687616794237923005352475262493587300088965981177836464849798821527286923241906427072430193853610746070841014033563462421201494502904940510765138222091278116737348305506983167706712809446106084251678090977881379504799663538232827811726476823086552245897249799634705295943083750013556842001769279023068294835734915256890911929131989602690020381993188078174433434530012317803479253805831349083877919334966122740342911650269686786992439588049848195904921393017403113383200164837169221334981058132169149808350090149233325797213129355669235428484987485911283728299749516561672776621307889513332328031625226577880131278073952233637605363471491489702820106485263186994481408315837847810138488858248061488555001667362669603876174236961798703851889483133623054165164395030439328617794282200767783825847287070881958667477016124582544166202901983107203696710383771069464309486488647594611072673373520457588175333097868252920130531022035337071878506179541211964624907806489551190416751934686328756951780747313031216673777995953261419767762211881635992328772000001490943742329477100265182225049110289968989032477997007723684731713953235784177499304403415608580298484057291998179935730406658366273284114061312193400989993783046484277891537255135188595114926416561328131373163584351622831795541592078788681503507844219821226237300774026053385799768730311049475842879658320248863823930747480059665628427818343402383574075050648834177762281013689780645331119540728558302571774662958663940116890117933527208505759867024258939443312255615862974869000712873163962475203353533700687297163833927434868574759911076497780043908409298747665557418818340583788044727182270795088144937332281729161532967945099733864186109512390341303665460460939763247740948280769332572273912174961317563859283837071311246658449910199639156411792317926279815197899267360548592312429756343357576568734812077643328842224368086983225237449540376493215048005431579323180941614802000959107176465767164313337241106848256975371876970933197811760852342213133190259077754839653622669868150748663037287294276474850549849260370857168078125965191519846764995619004001136347236231092816215057809311229055811790040230238259333265567402732502480824948490263688329194024062196823526572094358032987607191322044398937003406037599339563879845974509368425989265702992679578421617033680756454927722011580125519665163235942812188919352198380153902846882727211315354560185915466628486018925490477982274891870853793158806901838736489331331959348233891404539508251152188960519508441923450577280692037712908429790142471613223890870936906023168234102212133688002675315888846407220094077462638373983271495992296563691141039940786858990440157180422863607142948992579243367635288991562903570564915678756291528847469109708219491960825433093751527012515363095505430162605604915228204123291131857555679127753454136735524010258751519311954581050753444806110140407510697759544589665089303377406344661602857988283575762993748333396424375762234462823892959894821093599266911624821718303138462668996901599623207129121421990675929178856422485763509982129109650959422918013245038315299785009473125394796588001905180870563994256562950821631669692265984826110972983558800163397758544555377590214299044859279126255214588369413997768518542141379016334721662483955120492123278960370046204838427012944210722913251573616007816503293589189230498974712104148633336871354558797067034056429896020951150882957457782917538058981653386047033408401834613077210598692065272018841019361976141496089466890155046526025674874546255708131035598985676329625516350883229328410364338289161865669218289218447300022437398043276276351509096810707902869702310785522613659350436429651365657694644388220209311404242609764129674239323769107362262938303807833023342303372257823159066113336700039858596167062820965955320845032826498278397470290938559527862341232374731756459008294749326687621213998413086100152728243211128390550810290058772294233219026466991442567553424698878874910179527236395199769940818796262593025079510786582526155353081298662739522486470088239721192078736453628348077151620316893140557101659082207679239347611855744753161563835915546078557707846102436170505202101406847643618766505525675907426923663065449067771845751127973804656359039550970833004257915379616817535835903284509480980611599333158054934854290471539137954649513665692334016452053617940846963293830400302425028536578020602656962187372770608542508660168468789877105212263064272025546021055512229465704776230233522635495994452448982909121073623833990576992466859818870119524267887395145542999042576832951725566779104681457122995405236421843040918831652196031856985571738390983112098075471961410773389421002967978278072642054989066317781611158269307547953734229900174706396392357731272135893604107637125738172599446513068711120366498451244652477495290221085382913834585484776740400440932371530763950547968212220534111593765860985514794947347130975042669879151170701824021056064263568166437576816463900754922116083646508081570224837886613219322762657727182910618003494598777697767704721706707916489512483219037157514007610110758640951373735462621361511729818978347060542096155930093263931867010676514698907265949553371937370711133526613974967263084245825976403241623817274020765521636843233207216710749658764264723135604996059200088261451032032495146404176083126561760059515866824084201685824863336699608836520979594048675305625258364603334942179910955889236060103781456875039428726188052414304680450013433147438236787884036924387952526842959496460137159278156051941618882612796763763080285402894736479863232446348594820980976207203712027738849819796116164485657290993773187756445832804070255494198051706433815340205832730240150248297561243209026296234059225459385797001288684790696395602948205507203984021618185723763806357509872952654013284802242111301811713746324568709638841969705559138782199972465132462197815651152831373456281777563789213513568481861897929421864222400309009402307063843208817980007577230205073623400347423231083234729340973385601978015339020704938074878372386872475283233585700785793970511503006024274361155587419656495404808611613707957937144007508930363758360628488993950451080395765738277739497499977306990333755622175470398836841088556120400370055409434692488103591647224853705389312857153950407965144746003113461479883602766567751823134272921977608517981287525744440863637278546585358189583525156766840218682385212862334095944225441329359563556331285044834506073828173978863724987134676738242429282406869251752047682008914694118761307075882896135428700209689217917328120176553283873894114270128633406446199703414964306165418270686193112122278626449883739649292805856070483994728554434527151440687485576234135975379612075790106378865430095372562392001521384183506809695454280452517205782314718178349080975709723652291725035526502120391653504887147451760080056699901635404014390749579955764516028225721624411762951024936661225809386768967577967166491334491944385671158307135875441025123250071003297607690031753563622132812829008170446086375738160010860716161067240495327122213353192757348472713684504067122894013874956740666881723266703081295314065334179891144861993554389104739117032709010874646808666124916497484542833594955777353206535909733131401306426141675257839674889616354953498315196665726227721360447508397221631215308138175495185665621386751848941886999807962615337716220330840826739504790442045625484230174591126503639074690332301417202801883343564473350713078163522099414822126301137228208790255005672138708705280885878963045795598809353841730373175807223481623805647623740894086250071200095368599760742023860992131651942865446445925524860275223719147662780106972953699991139954343479332351225331340730425204934412054100872235689365851636664046388852397063260991187901445117908679656333075645433880923695234088478181042735750597887339822005328443972186702021570114655941301937392967361739322513965803379853014300823702279938358930737683659703808257247170130787869999151648448826126431705977885338805243303497605156749113461949049603986016371241892254784142531596741641356904351640642099007863835960301061527268260285041055907497200028912195959797676764724223536172168075249196425688748422112960850872440915199075629141027666966694849926131432590990652312496432558841514551713548577969922005104018935505251826192266523342067267464020312163418858423581164436039407716160438455410305547155307047616598566125756207104998370626030337059912338474235431325087231512414352925989624254644226132197742315932349542400376095293130264279822126364522026680317634422609974283619803397527835131799861250369766801424867415107284013461614385890039762915232266943508662182848212275391182878521348073822651809551874292194036540665200042108535381993176454884009924637116949563610212122606112344720668460614867025620656812268267022852351330779213374762830555197299005015459612329514148631855742620550815030793819297473386626515678250822780539079092401369536043813332763730806650556069451939990802683999769157525083298584514386826848024700766482333164768077596883444604804905664635982844115042161938422305783867666387124678504049266184387194583917605465030340407843951243926215969255612788278939996818717389304336639702660105406701863324746159149626752297788911333685287415281697014839763383807528122296552002741247522284406797913851895524240593451596257035399194442319414726321246576730897634184175534359895993269851023288986819339069812123363415240293006808047808770536726645287154971580834167003414580096237833202554438961579177705889073634574789494258514022908158319469395177042478804463617250567636175934347067118356940162200917034201030442403411282251300531954159125368334510171808157237356461600270236788641845067347741121273931070813213454897265969428600979198133052644534045277379033315822321204610953126647744490926285150646209477408583765656327229823967292250294021921582281487807004799004531069346771946859791255948300692317100051892318436754583325077455482642488673398641071095961481084252019940793401212671421649099223556545138257926020114575470630113013824035821370139840687744107154342295424570784997231801858933205781687214464983133011460317674549330984582935931439905459270531484281665026893703186006046589129868869799730358072193445244017096880321079747923313925688461440455636958362338149594804846088338088442847322839543909484769725889111101819016855747583453332496859494776145134921384028402944636923181132850728282329854265635590666568514271987925504874578813399079374316461276563087583422229275018400290267847001998042473179314167922388148228709824182687893218761251047710089091318688941960070447982249497015430440170245758575336960061154880622343795359899009746641849971658227255816015691356702855128415478747659917419235435553974813038787207061309381785770900761786942879302075080010118903509976643445291947688010998325468492479978797528424712713015041443103499202897934952190272000915547863689820535853411506356575807570623239692391497945786055742663231257996679674424718089114254740722032440552155387291307548029131255979024182293179404575751221590222158810523587083697346581459182484042704628895893452760263413543116037336792348010138447733448921872609568462426858857845691764881009175571352856447234958078410611534092458929637098087557399493301204234554977087816000973325532891433148120548347110083498839640461611997180841371553097365209773631936721591912985034704433302552187187962117983730686936677150149820312990901040096727465526791653447756978051478151391876476377604270100508355600708415162919350384901728067739133493337651563869947845100686809258564943599970080603790850855740680437266742710404324002864842618351955164719538516893826048265733176233121898325624406059837294543529253112974401501513868073750687863162094203327987126756724188054056393958156367091170680036487423200238007050086244270546529549189859194394496902789722453121647855773215170147592969925525094646716623913246122974107997281608306312056540976842918695378507344904426231383290505901373267811164796549394159227507054112224374166791897086999763339265839141053928748315513599636703185395673382172265911763531377094095452594553557361954246025667955392169366286557917485960568453507417652000414675177856829526654973176592864796335402373277088441653959875768161606344564405866178791742493110657539600840035210129790943817732831387913195987932904808266884233108398100165125748007786931778508451794977126679220367287507008958379113500161571366253910729896079271123902400342816972983836568350184391048525262652611996773945328908330463320932437082587648132117320852287473393807746825560168963796444750013922895096919851832729442075342009591321296309913140398453589017732409744187845603418241224138328807907122943984679739674158016344324828351171316537365521525810275932739987818647944353884072855670688970497542965868400831693275547056650848802003069251151644272019367791946582765796301229137973463632498039233908529759104813460850669087935721325815251498561255718617825044956875389157240980006292790717960972135702058401814579142441585420922555497377154528745406378867061920798181185938219208570722125636247145479826997957672936242203213195240992974121841374661281633864266290838304500931739140349228382874139415184117740465177659943050968801460460613468740367378631938909687969855084390977543865283928694054682231971656301146550690260412626306702615604506972231376998968946170181809778027303563724445082442092347925332741715041580454030165478497690502069966959549849673253728830781351794889099389839595585714395698430671697994739575282472670390468568281657452524231658783063256314168643516892888788484537199758056221167635690198136704810308704882900998371677412062309505745320231132519923988759700348561929300936908405329206105502910822367496293047319655491770176480989282721906243776891175867155107963756072811679194720569387771678573080082445814996038400198202463815355831921193402762148404055144582918441316525246138415418561654745156342431072830267622636967760428911531328541210105974738690278437566205607689636499377270599530113896087608848117841421178243898720528009681663203037593874594739851083050641930505160085407477049208723442261284065251506806024948803128085390354658343782503895226140707013232881326832942259953559175166843323347174584741764388939440426403678375459792739824701420107789245408900062352991111906332858101822781270211593367808568356650617574561371183532214212286608906499062455822336227242013160859271542590999992491298722415836040225688931393596956669920935908789046235283800396614469168232244507709410601173017044122709301763344459893522554050199087131989734249927109450473587094912765149934967094664113101710574792874368009677856259766242635569587161357891857824138366513460877282878637977411059021859107616883057899364335344484520115595598166206254565184199665841114176613914931937972461510616082814617270355352181519479940775828261959996310579935352015519410736913725628079190957890424042597702830925483843430350467036225490712932460503729612977386082551595718370581303309908475222039116842096450637063480608890313675579955868246481547920795623912039103887459031368574104329398218584550177030324464777317945484464040274804502506537484932294336459001846964334409477707436409850974857387507527505942451461685892391872140700883715930911114368461515547043817605856991930907440315913979065356857456047230765831410953722039932716596751951554347595609774942492045031214999916582524047907472110846489771239561800997375492194246665040718526075968914470309853489536888410687351501646764376736635270126110253939031358661154253033011679485082137580668113112109424427832644175668080094817197832930113234244877565765731533652234007285837649237193776217648856029961627344421116505158766295924730869551344674577123173163757506883936868125269872205221745615390235545677953275425157438383229563957476757206009387325279702230459068891686763170555986931350082163257278306173718245842055297586123510094908801273159756460579061252668957847810738207238200605632542758882056688680074492108352256517627945252906932127812216963951563784576290206811223738605332033812700191707529543057157802226553289077304467945362381021389847097355235172732079928527384830604672301471415413767881266759546746453748658276436235767982980050716323767341666756652079338045949598678132599367489157882421096665280763438725574233353242256941874321178222297270184393405657274926316528248817537255288650894722742472028787084242570191503765251269693843163900688690927613157577021330475823687112178060493208792820537665359117549499516548826186218009758345649251149010627331467044505417018385017895797597549512373141103042135756515612024935149091330944941000725906880854182555658901828985160466998089455314609611486719138376404781428790460330240850380964573707760171846104747888034679672758519792393483658311932881428218302365157851598955718943556880594332282535485103650560078949710640848356099972235185851210301834073578169621260816575021864725188171867092373175413073946850333962981565361959730754404549624601535031668647678115411053728736246691514459644600693240287818083071630069134706738684574559998986997983279316259634323449326069793913995617354558924221478879369225095601791786616405134516975360959002446768171876231064458525343187330491187642050154015284813638069992029692438796959455069728231235211573348985608234692612767305420395393712152018724967581842331592257365289233081482790900014632812979316238329342364371444767680280757116505437604834342480784416557685572186425891712265065005615507318139121961449125583820989660415898317716375460298411560927987235960336314067030226604935328557221259101970514622995993567913162961206714791563351401918014161923167557095856446457592029648109474609985299076814458130025579292202642555025522858594962622049785086382384431648529105818860100601673921109788790383756340170954558724281583292597220551895562936366167289277715413961727248650557862177471800739403292983801520174385360006290093866714114695289027132819689318337372887350698550597072302976567265057346271417583752700358641710958204940111610532399551015409221344884171078403433375050766073256397107888723925426342714336560863674955315339419187811549911106677187265115489828011000386999021256486387805747700752752425055971980557922610980046831178865853904895282590121550736365410619114677379153426487972338025921636012060496783027567452644607215692562677246634985753831967768125036286664119305868032831804209574437576901174063112405249389988723991206557389832231971723484229119157857944150653190266094045498266148123000397384099274954922954361313363998906148434596538357419664814856277896744056888372178295076924523607556140669582218481079881145007876423324387932643770694671205300371747150626389467025272893615881216220007669857149445469844455103679057602158123085938630093485364790043026825267858831766370437198344570939415242735349171722522854051592011249770655727546340272338145536617768535735912109815868308386869957859530431431706488495832705480414807826258614041994236114288355512188873210618953774079739834673944660430620689450350808564876716630928947015590705398843707746354945018810219500969786211941737477845984295373117032216624581858369789718523084567405648447734941867685115397375728218436745075564671956537678092811003362253650929871572157547857114344074388570757125631567392361359862447922000859658546348588068728227029037426731180425173142218036411881775642977216299629798942405845135596685507003885620536680662308215784364733038562974192219269220253245365495596692989239916053884879592360153147508827270276083082207014337085774761732231929921126136863228809144106999349775265734052110966837881594508363861800010748552327919574587058919900058341556929494230441607254994260026617447159186009573968769909555979351974319304317498535616832399194087412681833822326704348928493767214229241244287273569060846648990065539829980039673648594427753757560479573875882884317146828185865750697401889688242053902384500421665233696545608244364014494624323903394557770865842162004496392062940213004451235730963740167538290936128955550582766347344160424986773800972268532939310878945964936887389235488817936268357624759773248889109205176485315998430563867767326988216066191912614376312562800831662996137056150762526404422933416921149660444076414651515957807404927180040237022663656662908890529580704103799861231790711138720523809250720510198562345278966191244074128398481100986768103311490878857568448433920870805080980613783818039493953903960844712048367330816512678524142175209926684938357514547242518917360008433223063386599263160413003327064541722398247685444643097120346821129491616843483488928915798347408793358686957154791227556926810548007372122289914647202191993190732930665463805779469711428363572421603955350693507209717586984971011757557939715153130790139876462484311704972931078397366504526415811410638884648501323408322388527183210058285725078405169484777251720526494159165054642560853620847474887851563993917325498429689189945990333741527174489957900637965125572072602350674532103000429199046506315355964844348186741254014722035087481612393786412445478322276889546705975959001629064024114225617125043547131399881559468736339145864625597043391845842407663333496426164415568236115218828511094955418853255754878912510155533982044502471209161119720106887958236995193387135649673938966044749309412831720751339756346915582702507685441689196171580326815288276436009121794969566582593203582519243391849394687212121914071013158212213961101126831081058225808945635090637740702892476644040638327133340844436436613127967588820274207507653951540542391250328793966801203179765281013197426769547753741277125232823559282991030568342427085769113154968344980371027797815220118207492549427653584848135152097614164812504753122932489298323446158517729873009418326218110675030325621107169188140532749319349095467584724715020040947137601406556862399486991416310447044608308554662826636022180537755353126523319041891498439241309523136485721064563288694189049692648708341613351590181814272947946767655726221009151112126423301193386689395035523438997482864861362175188969922391175673081364116424240938947303123643472496319070000837085908817399583514347740623999903434068632825846444044022278301688188550339324921412003437835530795951875464352816111980568403825608800951355270216305417200933979667124737224240553803481092298801794172956572306284860153908269863941832217875909224479237336494183744917964927462795204388424175811025489190199724934695180507385270931277401191745200236478987528235241801122956895610747072929813249905273420996673413300454386420935027582000781618302172643944892461859574686076227648906219287648435696526711446599412904587563033906535062252608639351437792261798389185972152887898390146780583767810749806092541091060468612505610033630465163885911998891764283440785538394560246626514353898066761663383332118484398859006644533638285145560217648402295836254072184398824053026102008565034114291828396076850826657818626856684650680521804438019828249642753716136324338535489189882059392305870921572787334978938610502857759786471705628495656698921648406370912293811749663619751337281245094239411729006588047533539391014642204376938895024228650318891215061104795439020246067364034658467958070089985804824668257841228573883579728269266969731990145204471932335207827733590143419198137742917115661112384405806315575680108917226911257734153976156287249461304667740816078580893512009698159975155902744901775091912832709885395850745595438310335954141191508030401106146333927533432800680653940644068867176082093013384453376765244214756558270891176289920768140743923676006802485778057077845467938574774309813201803123872268463697012695722415588681376635186322394187530676061469076740448337356861988388211352889894461177124368112901987957446712785722936409134456629862348867357711244858555864403357244460248494467900748885793545953081960673411108010724961413713948857434993561329927354273637092380694927011790990398051589932016687875467806384589403536073873001858160976745846463167757413289217293762580556909873509786853654715430222369910716954380471969462685610297513143956191327128306090598273302707014395006074972077250403994012179740459709328456225086276446643599057833903664622357589553843696563878614213226131252193910024225028722405996824095774385907134353536458252726696811014900237388966246698685456662946403761389207675603929848799702539573486064726674610656370328032645194176333657660909667918189050767626488430075959446291364793136824269424016525274955708026576265290302175891004166184216802839443936430073727154948627484106890187126210359313684556283908640996278942130733326220171477934366389566340694015971031392058090935062999980492675901685947626793096638779051220947445836318681714355706782017334000908010550060130049285831621661567723653001604850302734894300094880826496977240968946104155235939373834610732965396825202958523434540580981553423541664099104664425304017879237130172356996325798822735529045695730951190415514817848143827611109844189039653932874663662543977874666465505501002628587167372720387105356667512468975147262873028864437581746495263738734438909985662667511094611620553779287126542178594983789067437010541831665812311790000534907182310804804812852098678448021920883442055294786678660288051998577241961669811583071314735816412740164248270112005470718366388471749102210725208743377679471163035568675501530508860977534500225463980739807540935472291805693204697169029379105885826520904613960844004623627049849930046855189644356928559733167300662486235808866813471435355916130454453860131861707621946042239526847355001754147767920605012811218647371485172744383214280791513671676589776379167966911650599893872415478029572134857554992373812642366770434500836263467018326559282952092682483782417753799066981938931722206728833732884555769411484468716779347877562745098602622958257214790670728843429775716090387566957113458290807849137542327166649062026989896632936726353894299617890851197107628800316402279145278783198331980879718051020730379785058746156460240327978588652871358367198647833944631408971385111249361723716970721700739728396361313825513238109274482654319909073631608856204798215801084184780163720180131608560524892491341418079149682192100409945026392423449011743374299783869029805076359171282025134889922835392327497771173836506323636685839042648388519315046949989622952735396641395685950147037514836923424272190851452296093812040879277301441810396369651402036483622421781873252274603345220848901274518610704140461871226325417002131930291012837165577520713282507853597109405701384798546709576961338213667529177888619135462495179850839001157531747563342111875126792727662442832404699720386357124280026249464928504903853682762082923535029004369357592750582116444858991262379139706947243602038970457123330600388384974762601643551586968090215472088712192802248580409318044687988509358524125880332851351011298783039824207164999658844126148430656490225418097622294571171314630452723621519997943792309449166314001652104767286347775532440456007138132988651022381537584239770251357077467248647961735996568694329007812341938320106916740257799173762204695330936825783981272989124235952289741537185882657132278973891937497250533580258465585855588986990903410150175823046539658160187884239628598380851803932071693282654440286224778346767984726037720052370243168288832348388546907462251653448965244183457631078254944417545753408063970733830034661490197230271712701766108405227299342424269379344301877627822618047816932488539072727483821981135683237107678707737878380846305778572905150387225862327457346149252668699697948664546366246163345891656698369937238873798139491640008374074659463405965537444310801588928569555726603263793956699613336820697966872210283898365785393121217877330386263483643945738284941971393475326839325565454744361711548401360305233854087975577368875829105677773221468197357867821409763639754257400789589620574814836825560487597578739002543603463731317628869564608186013274934722704694540137858379961866980361406946716188836561539414080394708706066127175864759261986810009885005733532324937364644673550257658068480657365652594811591307744499066517983797659410364465321584347423796121510152097636870154279427005231779183889905984388772698619781877954112781226644148117722763505659950525203389543501796096634238195418363511311223422186503163641933990507926626943083022607271771968871504813126202921764483718700502277799500581174823561963963640073862667960995426426846568013179941384210996275778587780566494847304383326403004647139497388838029783293136043168056291563556044530259686720684423451173023245780137897971954780009173380072043538110283909830254812770923580520090765093951034410573446189721601058260480952464403372148991341115277551041360540479871980515505971196209118024607270157198850148268523053268595863717226479040762007525006811248802882254817510960628531445788380563043022074732303458599158953464550527855553743668683598898794906862988105823473035260007379007413404185628594227041593597986548877021903326280350095833402075848862101163309424012884511537423313220755239906063977738876172879980179755510305399328179979171572333083671394660451904266289484532466369198189224111762470927346134414943509321161774675660374851590916655237680074098647801659182591544051248765871681081836640503015979224854089834364363971398106930650725682332863846991422415251402456700930733563423610209662444545998749158806835497839333302622836163838941415467285061247312104617467806162866662216437047373870887844543472857978413888866393606904907757644859385649549721355440225810000075734377235936095207199740072005588710315430510601353949553019254042381800834352298751665077860032511273267619661297978911908498275081381029641632545467752024297460554752979459614203206067607667657606002628334437644537284714493387594330854200836217850729552583326146517571929035724617667980922113749250475300848359321314005274727066850369208872288684935882029099669447953408216357611551101618204805958762512317322183841684108894720398604621714843309198380781927342280910836442131933602092870567766775347332863978034178557312977645131386959256770458721594727862561400527494810899529805705769807114192113037007750860168817171892406532839936552166565374645635690144852628736767947536164951952456904394270231903061462092604539275218948735613668505961074830905470064619246494759190827246221921750006498589172795902146691887192300497034687402565966536384527694906531438303880639095971700588061323804884262228461836878866713248004704090726856483415945351887058785225581884996888065814941063703093581297179538656772091845424064517895505714296842947120191228067394212572873994416847238466139190892645808186667723831464035878256549327619776404399732865198867798135500206157245746167663274694851566896193296124321925613663485636609798893538605525046384795065538143818588367129878074781509436637399441130544680092252418515013129887677105668579004527661024509913089741164791562014636332468221841437501407088994397099932815768872377626599934016922491521593372327042599462179637059674968595314120517272939368986406009709785268609807184135938061620136749602939799618858886111257165609671362381844227388616864179986672750573380455558724112234155963459338064462331574149681460625456221839389121776892635569728307951807319046837717858759035266554679891252558358253368503654279318826308962376793468559666759640637889127658391837407237144351718534078870691625917343167669006010046155019791642352876511425216964356837709893681001751097013183356980394897410818498524996420301857960212579932691077642057268154990041111279982713122813274673092059703828399882025394380695398963760676834021052728904221050058879753546717273824129249985095690520899879738123123448624437712720556950284227905019734739691893979771287423178179332528194022221343794037486309676485485358498812291567987313151686337333178946557669278385314156977327766720097860397990357900513759129738453279506162613795021832055729986763256740595144762776083578688313887287236768051842979957199812737277120789513738849854261130977838278108932602499229790055277675939003806816634802304060456515865180586434548528730849008772409464208987805983087484008875179139152029495179015691523620164180026963873855097929880784556372249617412769646048771356194182507651598641060551945103449469692220379179817690356062739286043115451417445206614943662248317846332665457988656840468917682764960215027837108090790802822662134725698821803849092309651307115511253695468748049049675578737716273470717889795946370063868106473405399324299487249172211297208604385856170794616133517233138554744665521025950659723809368514293887624923595275858687939865647792181457179621711487652217198390956314228119023616917434719840033933129411698002762730098084638688348147181170971194541943098090956838134373393400767458783067305812247753003810035373432881181914841378064706685969529072038767771465400280741393213704720096318402205045491984329088868974412153680222888097195887841005005180558938792961903747852348107973027451748551550255703157342987052588260883631203766193238459098907108251691695195875767174666441284656512928291065314876747057147622393909369786035053760379320006274389148249086037248099006381233877281142900927630225851971447230095856070633571397060275982253830197353369179350457000892505363368013944209767475886403591409528128821455708086155988192182209247012365023877638462339717115570558540832033129930374608378204037595703006092014944054221848345498144924162760968093028628824237653955408989913445604449874612306575168440288997050779816778793269533060704618407333334186697853645599328888862475485502490575491058884846701788819897733148538497921327437561937309941791810620178691483497220162174713504038064686170873107562962331828467859422200063448064485962097963283238324991635847791227199522650425252227783835460732866742067678182104992105708022206291860208757362616933538250477073785043011296798030933701317748592241542454488027760908378845967575209719914797443821033857099582357761584540467282919665945203713242210087538914573737626100727190240105742230230314780436187788851484853244367515074561656071647138309142364653566041029408361365608535104674197379778460535932154573115560068071582069311872488287590934311414779118689306272659299315184018923456079064610046616774274715716601879135665418731127901603419665474152836190397990188507586395160372133901131505912442815502838232097248058308914390324358705976090532823236064773391361651602502299744008322914593351805854859696365492868371950302360469766869102215072674177157208867579852964350617002395571705498770757199802262186321662089043740016952002897930530143427583496016247726920637004166768443770564765397424460065798619077739474079851433330208154435474795336347593739008103131508887511093053255881649367034036129195507691408510157248946906584109933863013441784795403651653690178280850253119307397144026607607780832847592787716594247239056677352758717788437867331870919485826270171175886715897238708484329386592492378233385328521379053458441744035248795657961684536151276430723515119417944172920949168173588525391959760494999624995319285544764780166923715883437612454767723814470476485848671517785290578039570980750919012245763232644727214150344692798471925550065070668638425189093765302891725126297202946381544875526169122551725675271025278709427967357396216369845518896220286514056826072459604019264046265559583193841252392259856405486309671642975683720012204242261676023058083462980683211488039247925434777893054836972479900642177118395243629410186453887970017540503495982175744588046636850488482911700308876402576749176849878726221167269467758216591080285206504073016099031377231443131870700425321022208038923919035629678094026709846722734157195168157509483915376012471086396458916846974451906124657809876723780964037612322828781283841898752373122624852991735258671644284510126184851528269710113815082594909546042618943550958146071730986278474483325838619159851886331875587601358624848227593523842334924029961932958421728030054223682532725025334057753114601663170330555951249606319371424412929897025648658641566890636084874689734417093620617191204911391750974233558470390987230497072424166736518223979011254821007048411889434332433683329896329164109894684915620265002903071678620102860134699004847002569003198912325190814639619439529372499711677595565763574664434703949055034671162632163034778631057752963455275669701367011261003921797471698767523673747715228439003405612120842079026223651130278501657219277155926882917113630493114157686403897373872284163863586212708362953570890879118582684471467306309876243513748344015766151260441629433434327440954887254059166992444190931732564864855299016797021143237432416165040671759529202537797778078599730216313345025811903734026479759990014903429892219731125981394423926545549140884599248477111941677508248244481767241101906321267582553976874540708602005833921022993270808134849082610616272815870651977599406307233820937677248074612953196559045662122742714283422303039820676755890407728050542653119035322619332703967255815348741789399838916361526939172749546885680441970624265425858803880132189301702994150978448053098843397085822863637429132951904540815500085790877105873249701416978822392601166767051900334471191987756227218716455138518680067041278194835280516450064727679988537398309078610450830233271085147946701512325930561006205496990297257671562571422117060592781026177378527365217403598863518980912221287663314876432599000591950352172792993267702304237687899819938430512553930484824310427315326633545436068923190825262907003725635683329327407374068129210942000483302710775323031994032622978518294030984364886951112674314674843661656992947615150390642961077227965499590627316802829144518539461874813984730113586128300528156819247638489776509159634303566072993847629757600740722821595600984048392780958236718230810538003386855247256104198875670677256822766828515426813532092550247898585991225342339130987371112755331640387374232415074552217896320429458664860272935332665149487729077992097132372220107207539875374235174985612534915883911619782622079512653788480988926784584385643204838302113517189979120744616531011765662490888941343593489376681081069574845764601074684569568216071792615205196040565085124465525553147226227888773626749943446523134734103135195626328335779372353305270301350013334346427340465303231225099228830403932886461027746357400675817295994816132511001016340036057385255780465982672289826070884690019576333177914594201412442413468732148711396376142796975580798037312457150508798296915479242925190051480935180341742220901928173086354456722709537142626068185526194770197178952606715592199648045099753522798129786205699572785088485178521971098143041254825124644442742108702121366408803890756211360652647567753846146777120795134104264906638546618015519254131562748266743342822701634377427472562936296338938223460930383774732779308223862678164410562910107278858724963176732889366149472366799504241648754019168550965278882932305262541695499770898019959609723613221407914472974201567169887282934354797984778461378832007666318155941918877216937910141708329627178139773014798124865037708455149585038381514643511734088780105137097904885232821472257047505643569766145772887929716580019113227231415323668747965229201467759347257066259534219601266648338078638001973066332100355404491255008154557405231881669196252540422489882000622585338458471424321159437760447384174803014861702753697325134025437325250766765056979870193835731817811908340285527428296047079725191409610101643356987767472850749704811785418415651847076422532577191605570662685726623379236359759059810202182600297751788244954532143313371904276256980427259280219296456875537241539558283806869424461785476818169536705590581723559816952637631244460054593911856847879796894260744429885224558931454475809454454815145530186813249108987077259653843259511318858936583181180825933286674609194880324269224981306954765847027367120751128665427061767076295441141236854076675732857615235857488453575337992269311087763906579798115944418567779898891545988467517447314846627310883067006018128112826611208818291509884670401553356711900002751623556871675711961080176992713401249543998500847141968339027860876948454517378962264660780332278411992266329200173672737550247654614611910663020006078510963901210491966152281028068784874081493526593882113104867622641696573533561103518400112639171347753701481806499153453562200998942681095677848942441359837611063168913045279180020164104947893174322991386706924441570035766283923505024288436566565613281020897380614911475022485147699808550757303921461573979895633826525465500166757139366403264234948303103479630068477333201347446481644747611279179339532493905720293497385941336831983677157185031365889488060550556290594983707736175110198325924725884141597633088603153429883491670780548469068383550853469086285338718565123004339350381167913993967644135221693459076835773522666618759357209497368191969007771944425133508612012370073840510724719770355812030305861072129721660399062022624707950452908353607578606926382474921991631661310714702482893301272220713619830331557320974572746116650053340130619388023882970714378394294521478092127242272629548434154772453887499024929343362728559928042431521463881727438249835026698333918109467532273476899876326120006350047934991364543836263007126304241275838233703859893882875385093735675849863888377761287007803556143351054111578620635007154098308988046289172334354965287750024169489280096183612358303049745976659978082900515238080347337984046975721646314604764595304550920851634081186037703425192442031677085277706692892748126490163627074464168513913372292310973898545721660689546340882529347204062644262132666326597087540968942674543203290972632592608568375761324578106478983639142596884379501383132145810314218870773726819334362634799473877267486001653576290389381559288353202011689248074467041204823687269809566878712346128580748355783824355787591902725947410042577654334935563416027002420971730367012189001387226514580450710924673323134773385048875066423440624102793959819966787812751806869250079366984819945679363098211092139490518396414296950288985842129412639295584614703863336821771828551560661666915512506820508667074190881208315835596480852942401073316899063954349266382739161028765244224967828024896927948120504735570540819362339884944266437599968072466932190286844568667426699529149048736552335381745690419219505711381430905837122277701216080379000611333738933141383787279304968079842424316729956331486368546615736341105279125880415383835181648325352702875091868263754028335067574031317631755033859256415284624923290479434318591580946651955317464560193965611541559912892056218214403001256793281218132295196056209691419726868284383349348749144750954148760851462790302184105317249821491047612076228535711096972819499627111333267733991035228193528725544787287825731220473119946962650884085794270922830251332592224458509447563781280549160097826969914993848209049222241554537449775132091773952145039334388047970238496628118940335826747018039176717821639959827580945916780510393271043047322641615698048638101280841931227048771854461664032572193733905851107684174906787889306711613607075652493594983069927010613574473781727112919434960583805968692964369406611633198768573118405847729229840315252944210055801700068702305675996953956889360553595896311020090196461506972589920817958350593757485298470541568879832147805092242029037629449809536706290646091989675363039122259152649854657894907088713637068887655700685439215175759137178832414704133231436560598897181057417477860751039569045914219920920961591914964546170514550156214224415593506186351182931800681294273543548127932331501005377112067486839105803106830815090786112779025096917257637423910845188662450121269538664102118888191128743295376752024936209339359298896050409254141942636348622542655638610798039749556165577603907262144246772684233090864983164706752416256772587214687509090192836429938920890483124561096014617655106645577304018908335292622090714765599572165473862411796333166695959661368687623037483106241843370089085252015774305337126063359923985153899189731255067543692084685451519083572047448651317559859847803644692563467852608415911454113167055623735124423022528843214521276175953836132761548978241764071753579175036970017951404895760445632424895254901148236110534858362420990933677230865257807717463863978396158252043818245006352627763300099461279504903470333786451560685513470883310541641914589039566778324030227858792874187572409164409850254983044053625716701368387409683780103157814921051420784406018035403229353908692280997722675674806791189415292721866351425517501535002597788255385232692310252990370604252860169135705492523147342749132316038863162936455949457641429169806922537081735458644315483233551600108444782680195165099861092471465378208055467946278029888416104383974330883005697090932975322719095135913980378452496272898229065190497075240334153275423602636088659099088901482907297426403358950330701950178720876179695463930600827841465842072399309777154659822138505597346390299303279469182290670498252422132577082249437214150521203931624575588324777166656705750584997954535604565363731639538223897888781264884833298577449638919740715453588016012795413597634771949593113494125417229938157688944141565406985281638359878283310741308983023426279803111115443162229612595703307610993270659646789398967506077041193468983258188357281075217035877822993564691434036293029504986727001399337289137621278953004479818377215925189645098429446998205725895933099533230320472591653326688590595563143234492803964613814639932225194231861363644519194031301358587048351263313657204377539514649122067483502901156350763927665949076236289261291655856978642380263963479486082912324554521363440735021895954708361035528772456147741415989988809295437607019188640825270168907846589757877080833688495702786885545789662767244194867273515772503761302294159797593193660006049692865623580544785190110750509375045478911214061460106999174327435968155983526400770183635800105691931677618770274400217977796801299990393363961622066587018515479447837534718067723998289753760826890934190325716036484708460372928108698307777614141578031472224124391341487372382562919382075395222663526395202409416379825306219532286877947799515006792955164862096396411781457218180270380147167078895303795773141504942207287413711473251465836802223199898563247223272013346271970756524173479629455949079458000721038822726842631271690712969754000942487332684733351633141637161937714094075816294498871676736104653134255124867097026738809304610653003482524644065466911337079069604763150120602411811958575694320396377125414541461057077483450342931383648941479050624943256952240091132195468235051692354585924996519273466779214734238974480542285539978914129011746578505261923177128196885821222373647235094713616258308947863582963874660176485909250571116580231494010599901681289062112542495540456242350588662904571917716762583769729978801249765672976232264966763667846549969216681429830346117616213734129003607612050711767169261526922926219284843015555619837095076947687573865108838953059328100545762402111773752146573721379718719753392756754026127894206425959504890102678577772773469961437341108783718005157476607965302142493789976714785159617834871323804170908016255755803010871918873948260891651952957098966027284557825599176164332427861185668692022402849316729456417320602044939453888562117848743403381982849658239523675614005116333552245603801529567559531928237643315677551321288744309812853903995818122491977613131087725055107372687713235469128668414281486093838860093617768286114120956863862477205242313043455870114648564291687125908911807589264614560326974108601939519487616622852051738519467788657548574103814162176695398446752199661488036639406016633847358884629627212238930067135421519225519840300700235018752849515949468819782372362662114812222079167411683893593388001722721957719060092408778579727909991197744881152390504057181876717518991908389365522837041273771027079713311820350672035479089936551076795572133357301050845181288305048148432307599499311288327208557628645489856836626141548056010715256750901082278245078473652397741698715950689054327510341586714102716376847840564654174520868096170101503807616561306759503743679200506307751039192753038330589880764603029615541370998044519570166247129975489769110762182448867593604046119783409125560278613004535544874528175257660811359492479380000706394473525789029591241212087866092803262529041974203889191408613565306632347968076225131435444557629667605299631936911937030440998406253490196966546105912398975577870885495467769165172289951228175768209265610573277728714440798110354290301310705602816305997192843953476448846257969609643124591610518006703446084169668571902952139049447716792830859983299363525818515936359649960171473616110766245093657997528315014175511068971438871569525624662903121841702587863644970916085527718218301688809919444963749435724982106021091921033186309669637992478561459310485831868327153047395978304155756192462074987843922174359938610362803571060569194345121483774525507092289266993304228799238459355248636890313777397369443223084901779512235910435242210075490629678524322729372684995249381638923542170919496736865063246569001680153781707102698128122496757183454814328996949865318860681828133202570862926511566234417082595624365606751981074003096179752985358321745715503725425845744830892860800401088592421820604044849636871661382292321967327131035382651886079426238284425774048423566415541972554566431226618771819704654816262806801615503690581994076976075065328268038564442634815651822388734911047341027973723681365274602295491567556135560324431690504794956889466072983304169984192834960290153265969162483629803345505547262665766349968623433054162547533112217109615978260610250565493073291074102658131698688099217472393879315508494092398111668420883690191548922405625337912497584640815122113257870749934717481834905804704056943470755828377879712737996827725967353326088068458436281341583955240731182312999707100380203516790345335960336383436623146151278608637014830170215725669590976343543598850051497604310526937505966379470906146335587956730350231911255175945934568343700218379625719121469992669112120273584565575612180422685762105231888169100655407874625110103754869574080508821899236542881692318757551057370630251233622773820804905661205277279598212297787832993140589264728975778175090265386198557703989081516699222877225312612465932090907079096345350365093620121259238819388796705155712929355282977471926340974368482333780431621052087494646162524609317850203669291164829276611523544753808089067272055372373694857232222078964822862496044793191964146945074788436005771696348803045913999116689668250690954413662104169847879910661434314332330349993200167473299816734488071239970505430042004209830308166661023014498329665015982498556649503763323183510862595224002068957718715534402859831689845074367282334789905152673385244432977777446907733575600020935915080328368275264530866486764108340864710663750784900798430911012605155184229075456444599519367641747184153366724413451731075586260154883751779784980024562714804816399272676558975440717557229499637192190951971443538692266005989963748065605062255916236451849421816027557513268658207818314301760032230316121742252794832787712391303992016226521533169151875072399520296640068198583495097520855295867174133242071769671269086684794219542072917601582061640161478756126946691435642202119181827709834113607906176568102975267789850516454504730173839048231382380112234799510768866790115463756251080631104804163067940657202815364009883072271320629044139532002703559862116186853196380639815723190424150984193550167570547642341821206569456263569968363573469637129025866546678684766874113561599340685300498136185389758682341160255238025317835256387781215101702773073389066065439440146714951467283731897305917321977098128370862121809037240086932661261472267765697348034150926579901644891251287843183300432184413642017083116682834945730325180234792137845102614672990315893839653780384864163714465289482045968432618064933862116204979039480732968653469073157921745836588304952313349456361589832529725065747229727611329072796131993072293757565825605559852630782242145663682615226102625682990353147444363787898832518087977246732617416209439429571410730348160382492605517630318022526776600022061110298041310804877051680524383169955129704549482506028962639391116286857709331216885073300497478372469611168411704457086021668047601070132310916542499368436902932174848926502987903570681505902659593205648847785736499562954124369770470973188251290456613311215860965915893312038942824798156078275640974563176168053885983836086968763705619457347389752585358493172277548378014819326484472868815342725211422004000467654719142325292387005745256450784299336308174931090135404026555964224022297458185902619639741183544876151439050082390917804025926938293892174805120691988734638360982034607424545144433635142347026908631956390730575174606177163055143232070344829585601341533631641069213213587439027265606041091128985728951574360088212047365282067375177602927342942360272631089306009399256315131416953411291127014906472285428229628661802630600719325225789484810962036301847530867592514018906851222411883264051747894959651554666528873646094379694662318510741963461805289837364081005130422411094472484146268196069222616849078177940611904982796522241119363413898116948467616871318372796029401794210968867908199220052996090035836697553761348299846190237169062022374370577193950053766237993963780667100888879002206543769519780515407148377823307206828325167416839283974783254854437075299747960600329706696026981374471663766502644908844897338623378833572033401683856237188417914281007773295258505767902528015724232523673146338830321864479638002206074729206198970322214383004699897534540833610394116986336862310008301227535916088040871152079182130169697314812604156987007546899623478393104117901501241977782649723028438886269655940240666478284977551694603653305021247597849069214687936756995633863151494304723555214858207956012165916841015118244908847760635936729588589629871660366436858435900941466229384422644819530803957817891222998937250943823933565719184556137875236119611369866016299533031701216459879513350246838424120791688089508615683709649928528462503293430684004543647982741286648699948330837380833883303895323347003168616759819209271011630317414884994027283627287220744206257448174455419008457869463758151938981417153016093987705677817627289951781067762899020469813620903221295714818306668696075775943284777170346238945175933875674052757952489258768114487980462650240175435801166076007784010280414709051740756231110218716373751396491239914842559402788910174402035368669969146627475563657137513634788997044773157075267393331147002653236071072033142105229027589994832920899507776636398920653977292643615634429272401838792319465880780215269113627372330796691211784507389189448168753835707473316491558658572423909775072418111637717510718400048065862941086789634616351298410797031753711996605216426173465560330445068981432286400145856352568405956647783779485570535024888327731940811143568026298535020741057164957253024082415172651278756388221063187483829679995092229245011524208639294890795516644342869848236598988999586692493120965731058798222794697755148567122662706977693902980976164026113423951420783491380252165860960238539670697139225119926114531307996623152947534594175395982218284416964198421266336041604495439656816977637624611078224642130077331633268781482511382696053619434930646679418202900284379478956887321863368147414199286347648207398071611773141590717898459328205609549552539065321289877210134795417718309925396929544999800648247444685911025702497159241516153029170153633319926122870487361606944060589425558213616306220405171278171174444789739474255511523498359082687785312376273346241502979916733146213871531743767896757531015200364873117276521462140391354796244691953726835759053956555214107130656198884990028048976340629232289206080427060035287785488478056465625413248275883640384643210240464495169678875469101543010381551958613114097599824886081883660558259192586464812636900333374976415068776679603654979397150289763592589427091167989531638043318918689595523544067519487565434796200758861310566549709821393686055499559447095702028987415361381036788351113510375877510420708731505141559014095480369515762039987118994294861934174242150778958055842795288305859489670563217986743341646536972944912355756147375529238666724344644018592883800221913404181136324763647385510881517381960507523417948827268909959024101053220676192890555058501873723555666035719555558528966348358274208676214948607649214405980846419504219313374604291424593482505003552978337717659730139003605754826418598863648787087083581800533114495263611566579884750039232539019315317582554280985307981271697349309575125964244081619253188711268167763567882605028012641953112758111294943892443966939412022541123735047463233108893981994739246802172080382325072997434369004394127561967597077460943259831284588638440468510289931974482081480368388154580083641872836764083396647473575380765958670619505589121464476672989871925578146618448247667333266999494127298475415691691613434328618586434846601425080720753262482959350768905280950853988651284850861008344720537852031932759630213454535975571024821545399310230404203531709463889392114439573273523211140162740341554201606192496016194716888122681266375909979133307527224904630748992246671879781230885414567356819522985009644513429938161822335028343642524675632174936432319824040574584301421392820667391444299945707019910585051257839786928851920364283734403596051613985456938874408556306271275606021796076452320871640732359153500111248551699291547159443625446362279859095171680082987822029732913127425300306170596579119238117617269831637357702656291854041510113709245757976816891802903661302150250723099165826229414585290303571289317644295324766369521233922498348436308291457519106995212922833391628415333550739679827012217203898593909270178667362834976321093336542646505650776115873610470123431992991607778224162160205422699090579755933284260693041985462256290272448734754861368638611324506535281715116895507231337697805648138845974686633211752243254420526200153272621557618252739492750642653708202544759616334360569086007760043266905395802292636912323500968510703373129010868698192922241586992938118234742302024439810240124118768504070652163058900865149718869475683199047231659077106973937711554516056443489041083357616010357920789377231261274241387350746276942181733115314424471480209570779359774453418072339417346436478065632699966928651076187141883467205705141208570209432268268124256516888726351609892598950835580711704642956362398081964524887790533356119631056675334461461517681046167335998703194027239855370143188224918905448026500019893199938022011754496618008430466957841403244450080193999139338542573661180101493312242920390636516680456958302644387349223948930200664234804705543993940268512582507315326184840998186240482249641453786475824151609682974436920751868051640612941783148154882115802553871600252597540500873789849290337357643530677450331047702397912156282736819810120575254437297837863432619751544156018669778051843168264368859085017710149234922326707747670829494605559461941619346840824096859649617724188989761490689629887395777516895974493435238785941123565968144223753297219946408519558477398012549224641860508951059979163759789092227756250138328926065966917858788463624767059029141742415820514880417670598008233681879234589645235904717504890121211463829881218920846061588244469159083845026106505247754886852463977596896106369178848697962401474144661774337298908749122323751878586818577868683336332590190081833866738200156609387639798121916094950896444296284492247395787174722951149619126561319497656372308288328231744148268052148458025158697860103626329963854355309197197506473258709065091697368996611388053743829734450633201469423753846102167158454688717662766096762778093394150685844013893284601039127458122484894999895571902558440916539043129594335541241577296615265765601608054002289745728236820486578081682537816729641429018868182275289523214117722045745763360022757830294373885272548243473597066116731219900664269263993792113083392640644742687574589846308613470904443040601038399357128534613019402889010946779898819655607295582605811597262665614991024450292669990472015171299305998827862205004910206855705285712633317169870228419166923320251970834190104862689556954346733829178633925754116597891622384336044988860610260253998025525872513443825680644488609602202060546363187072102896389716668401212837618595497731694619366874915509413562089371515154470076184882734539476402197010982578958015546350424726964456220537650344143746865056408945384479448325396324988850178136182213155654806073719399608568466258358490330329769077026947810486965665658481908621426902591076416677577301196527580898306665200565373538111671317462305737315622838382638102794615708608448828976924378337063942706556479953147142347947385825278490555552099050719104552838156907166167280335990708986750791980560317388584712816508731595875844596473452354763048299622563040537190114799041474674851725315716109786607507763406807069837370469790017047804374588719567036158038426830883960986159584609666739461844716608781270647766386674444609001266408072915361893271974747647051539737173389059651449506992367201093928988512704318145310009980305661185824158391250725995964552947658685958897840556457748920059232896010039592237544555216897667827899748770683813081501584083979888490302700085261690840986747465029498248031363306330109608714116731754812298752920364806835097839351561382250899267688218715521001364646951237074854726695180496953009427267192215924513803769625653710069276249647672137255485122665426480406236512853536140867363934891234058258517204478481478922030373657224845042806680190616899464227005260167521186797562299963584290744566587632441736547833750446947991132707303309571069656588196624698134979793375339337886763796483083755729654575795861438161963986243918419397622687465831640828247029064304928323162416198857774399610041004106653812484825107095094238644310324960746489010515773431696900073863832900416008320642729770372178670440049628676284351665391612701014399064714079321272752326543841684746057307303637119492520328149713258946521545822291664902193238891986049547996222741739254949960137138847939190464750551027653470895736204029600887598723526140140050979236305138484463919562789119847281332146602424924451481393320213168050446189886181141942518449132496144651486413155232429151116955639200413263987444703311288950984740293340644899273370619805760341436864281385372884697715183410733323067221590704563281550186820421700686712707417442148431551858154161589698925882429314691987956646169541645785653107077844700279473446982326421049388456245714781327496115448564281632600349510617554705543804926265718773398546405920774234336031344980111087592274726415183317452082093743527234263498461964914039205796200202163782775705161490806476159278100451774495499689655319887521901486435083622888997558988883383411296930785592270898231471424432331032921573160675402977552446584155382849988687375674385068271891562198299566157373154389711591720941472308294764389715040486857176783833650702882235565239313891597441887903459261674112787128210103135006864854622187605396755134528790521397017791442448752649815932542874968399474140678398257757944574193825161147203467115778166545172304294098859680894775824374092300196287889378783793455339378871006898331539426136859033340237191163397759957298869965240494670376593767126526997733835460632346132423514346307988599241263377246397177332513356088758619873518477844980492188972241603832393273643232918470567227467106306217667084694374456799100588544634729934802100238182106431751744200008664497569164037297217534272391966884528295509244175557021428745084345984347476798199748371609191977896823023459243963972521339392614041909515471990234203611637452062735917904091501873723142324293165243321534602543305691080198749478977580626987868332379216658988654984130178840606059903015074793580160661282577634223139116763077216747103865247764136408314326982196898168812944974683212437742081201296128574655278265438487865191749098529603735284311348719787027942240286615323246299603575921121912270891799843788014890021343606519670910567778442398178958038828260869584822025929454384854151286205601699719223267827127111659711599436344882285016400090713957360341954459395393466043246210411250502975937589976257514535792490411245463008758420431603833271212164323144183081654265194576386293645365249745995684128377682411248290576694707734021398819939942028751887477506025563954202665379773715517553016278127446244520722098189142794678732201970620862200997891363063061990568321411617668081496600207530298863441358879251348710009761789127678732478564683156886702725334872379640467671545357699828931133795288548625925388561009418092569294092693370528965099448060093347166695441676140503889146865003356161893261130432546608993038721732256317818646544621510988753614476891280669592004134659461257147184763436092498667282407018874427617998207999728961486700551415963173502458072246882458438339992591622991563057738810923502634847307173185901224451138495095349832916639586558822522875922336851416681019228812274111622319174805268217488217415876581081656137390111891777656157230817224371151146581870672537095441126023382828755320512145706814298275568392317680596461181510989471243703438785680235381547912113837442113212807633261984124078563517185814334504960814180684056512649183843943025683787664059083366261282069016775886756476772629999464405837766023441524154444121199285679469846361435198335784765594331248185722653156680838857733574821525505821558219418506800948890128752399244720238710445314851230697911231627596454918393666201927395417035192958036976447957538026368865365852539632834753986826638926244001179971077230962421635232922641553786004849960558239120243279259278563266872981083819543982853338630745803415761303357764089075314002661410921351012173532272226568351850859812268057538366547115059112717056674939386850291451719494813700874545891266958315466220398803618690934788628530493140080618959274092981180642449942298478899099085085994339443834173827578350596538850251428909401127016242060107776717072424023654664552819275664059374195555030245118779452842548305677768791288795366240957243138622716687578953554898481710481934823968156476043774614822093204357820160127327739956095586031621289473101881440339559870319665836650312209576940691535191657438189559495084443628892614612101066983766818536912567857527580541592616509630038589860056895462959560513156629380945933895615003468878537715420422401771951575595239144797883790990689122282593752004702497246898676728384513304303427673498923255634474976738811762875808527494713522004152301184308080033628158343321059254554835359732064236138713120197326743457557895975447583569474390174971033462052314443095567499760140575019707271985950050828068967315926554963031207703844076068242190940422430118987419405059952112723931106648915959178029958784593374361297095263776117566274236692895511099578063865054523670910510396191232895070024362111245758263195651092788715025914830805377690882208383066139728777282412635945596060243342194810161262961284990154417062419548111306746244721120056223748771158640444524696729054796198533055248439981672822251155774622375899286273798059500444503187850371577796441695205008570948813502651299260978845475401175831520792163730770159230641092247562391008849943886144110569687462836332960839522652832883506786288824189660939507302810337201519852133843671120176232712085737562184547082167334741109587450634938803022814088972553071644317522705165814155767905222634373874953937434593126089318779994565041407348382924207927163337195450432357764404326373632181062098217730519133494908777616104849954899032863705127473851143881449285985777225928439035938814938522493678077940070045852046417934295370310418235817732759736737730233052519940314304187873258018326143960840244610166428366491174245486163473579726456801060215023067657345483776443602051709987564418856901478881716095144334751920503261353249919854737649729335480163769762302345833196934569622147176691063895638810145379008060211490618031614481770120410809559828129105605410634156087237666034979504171138160376550685934623908570198631381941986320403417438717153700268944319267473043105368378937032598659316025884314861629054888541879039106735667813549663002158934044888197342530982598217681150984603796020305356136352682173741012580097525306227397631982525662811512234541558114577236948829478891265172869085292924658078523203501957471781602572647407505422366636905347775347046511569558722754118725940802163390700069205860195155688917185724177866519824605153118642076129267980601088354625326282577478860159879638779637538377316503852337242776586049284196057046029192222051632047255791479504072210595724078326747277230324391993285603104023202857519869110861346521593154171435515045884168709012258346017811836373827745973590163821510201217851432413210877016993194923821172091558914872006369271572592911863380786123872624402631348769489835751001790435033461708664014268777473750528150458096049468700813384187657330513829102943928308809535882113267305081239206632900856709037233809667778409338454857100765638940906074500134254678161068103297221531271578813518818061727561554456532891020192620506960224992231565308908065895674611447934222800902989684199636503447396752892430118220100403027494449931446460770587779420508728031747406507286567493535494795631377874013533614440707752368022882453157934849683185612064281788726120922328106236479322305917456619700248903789759289466164767098052223041818756158458736245547187793702176502593478422511599686203174394575997332297129723158874400150033578284224545780347760197137141064025394186697043356555851894432188334676369142242779126560680638373612935772098677850175710720817177560051046962183763003661912100352679145389844459361830254818542464994629262866951669917420144628224964656052431839390725528562804028845863327293785304463842917697662568422671392629145148641854176016962189060137373161421227302105309237292020174863718924211968697702489387301376802722728406074558243368700757830619764353405436186522956143570573041597781617805672170150945306791208360248542378191445201601129451791172335797504976743341383403984853505027440646302887602173683725662707190145221484283945767004990223595486102024919122574401801501106579073675634387280906707634242044821259586270430930179607262186959360068772749410746109540357267040965380571378798830811866459115579250941412526701074584941116380895020862899779024917183654843228714533746592304182796794815143778419610660787306609746178666590745912166569797690398351261436737394749397671482968151103682298103975012291478736018262682589500398119989215968067942743526804969016156401621402771435656756905358961528039036177110169814503743576383165191648849004678731822552569648295161619132361397748162004278726959360643962366183986037197034408931489674880693191513622030158299053837356742613852368187343718440876655607682102212296998582220027253403431195113372847825209771689311540656003160346028337293338330117327137155483283540793542471050663249859002184214831293595614885887845089853449909704235611997520238141071932759990458030346503424260089083703584852262535819471064147496458917052497661368362311363071633956211977326338876932921316082147196120025489409026020327362584410478570931362486038208073211189757489063110597525513261661529429378899707822674434653367487690292693047519442795410543507087686200506942708877427978013089328836638376487613913821216281024784071017198024919358764494313800322834138649955137222356479267954701715748742267145123987711542937793144020172589249686701525191813801520657503378317170210964033989703603853025549351186035991962767747832966807231499789997268019542741210812358324272124531613873322343266552198106379001972047312255074958973048619748277686097446250457562895011015757757316491351731557617088763528472198434157029336662981433667864498835154774491584410150362691123636692347908183728186696341458603579707953268426194855835512952219190777180698833708679500559814149489243223137740725526913830370096994455788115412071489098055146652152560239993593242229629169185004712419546996335760482180012018633403581269347989304940215170173725602639781175613624885516897050527721830120002101745843860491701564189912502593659353800318171128467210712079276008968290522761111993742806273299733880221312808762118667674253146849485222977392917364788934595096438960546346460534390045284353800145672034674239906544103519591231039580170172712709563148516437714624909622154295902479422937742382297862628041986233515292213765571075593419737715991507041862781669907839205148184384738193253386014835142506106692722010954548643931905833570659759152037164853216379993746203481183984965279820400398016797684691456002705657614233365978442153203060199134333296554793720544532121323303619803118157562920879652485080988606303332613937509819828810608048332437624311527907369714263402413821962063653556460592246988754261255424397453888637511645557783581481123626914669828899757358088900892094641774874880639585513001239543852807459323750949758291274004716483882284057966600847123037207940585162660661786474641413301264129785484479749968971806204889242773378636322122126462977020879932957252402101999148667902292868955047260664741570163494192477941927756918011890849038495678639781798096096728794183592892799595225897009134430332829543905242153462102023573742985438757921019877391822115128963946569426004759913297070125882181429351396445118431699511331363051225838408171511158983206587875238947283171340319589739676280438284210878241517832156505999435558781098366355160191926360969283967056187743657412171605496104404993934912712620160104573963687453036631123236509600972826843251942640898300590115886413618837947344773439318719958816710778529625514650627567153492831841888394544642725321638075068799461064402279084316329357130162822154874550237428214819479282231768015432587085257710096492523983485446112084870539446687992734791640982883439357440073447020742707049084332107834522475270519386516166918000330725429814809047633805396057108036494421958462917269832903194009268091133460558300935855718258781835631513537474311895117653258468167481901473565222362985976279969481332050986421193585563170488489762953141244194505815859386835984695263768243852290631752045805893751729330995552263417081408131081400294849723033323501286697103904135929346529905817289566207188751981194084484194539573181384133444209762809007788921639958643633883331530341257443170457708793320489941863287548070519756547703578279971729996092891798798513199071115539476948911691629223535524111830113381210111836189070119941963490735229903828530441698140141985586070671335734480845424662794655158351053989302154424882221038003634955431689167497457714500463781166859918701751094246653470168214463320910122161043423493995191697904787054357686105770742928913378081690993353695907164885281945086556274992654563450230853040757182468892828584032508081305872245886215025261059816209242699485019123274198465741616835342956370133813004295842580615027725251205861093397676013114006849506133637943248830030968038803349606275992526689912035074256886364683018353273187047566729152303407945866657187317266681622834575293856213951748338734259094691885755492011769565497518692868750244986768448997890957053702967266225978515932586512985089890831803410576934571272200319560472194246278305914274566953378844221433461305330613474508186819651661463258482652122960812805096832029762793719980266553217234405788737592684218011083801127004959891451554511343195376226338201001390011164716325162558875845627940265782662719753871917535727445865434030289822370984827970736495371642261101569214432569118654482786430356053273107754036981382197123031008181878121106357641609656522027938016893546452426424330010972397614669527078938272616040593939172148759788042146169261362414833166412686859733329934316783974643516272793824626161563226793930138224756438337633092073769683566195554998759448807328513459378258497938068247436142080443935656519787483327436065642755880079606677242641879551213609582863378117854499792645399619716714374417832760014743089908800022617091506154042174155987928513214353368445556812040851626001087418322695590657252754558286753592886406815100587492344674629951564678526771585439764811337265660198346387225093911411704739474596435871336964145322637050199897196727669639982742048404825833844393347706505490481522067246419977756443050358690066795480815990030373861471045564888165849466946827842881843671849739171757816301778124889437149308332345354723155925956768193911234147296364255691283108847309916999565599655081666083722116668364303133772447592294388420921525171991558067992092197978694565150116269933026993078583842248904140726144976971399172552776306710457918983800512385471945819678375300599853996563203742460170053696729883108802178881702006009504123000975383710459554026656639683784646293991189894966730223593285726060711561530630412683431979018205572392864994203268331603396324656869823196174615898722613449278394218281928953761398797181760371051621216522731666111715841892377173123786452293193257397959834300508085596021365931286248131541058239619142603578474554683330301641175378906263974570097451384678799179612999538623733308919808689855482491395705478144384810730812840817876811468367651843517037232909367323149611480884806101257887667984247133535203143724394163775668125714941862092789780698509106089102816178091795058248068695754649069867058551870839810854472652016997507140603164358809235353685271910376604572336727915451329205951451204639113085574162663418564727796245926156053761991951966455896602771090169340171531616623163680986228819661145701099148458141944256971791639436546805209902599248363520862397433942884951097427838551811523078083043632668335565248972518315235961746841017072913560994128247151317445986327981877601809499500352015701118522599347023846524886718626716344339703367503793209967426568342057220384599511609617186834369018157126220916041540240011927595240832033545091715020727383770897936479067964541804483700515372511911667090849413422385686791404732103375034319335293412047087176980653681116004172116815298616234972405013506535819509824283647531516120648795732641687079066640372480370621211947642862447535079474862775385321379619875919093303265290632786657606200910588891671442201337222867409120702609637885270237794948163524997014561104738928408205885652088782473161705258285833362232602757448458677560893030589336186046759959372853101125704154334168001510179572780883113138272080972075734497658259459279693784596892022111236623355073157713712374421127355728448236761821427831639421254918978042091105011407393476375218802772596199131076019519704244575574566539136103672892921752800434091824918932573423075388231788900878550249290320362632602985307717517604185507107590550091047766728160171457742071882492730119779687867109294554442531529101995158412794131982684943331271750258142524151640351858239777413496862357608297177366212274610909112256559051977521567190449961569910838293582150742103925242691187070291105465775085296721874678166144848124010487095773157254503462049103123019059294864203812417787224708666469336644950391721815973586606560384963699648581333936847982684548461976580363734310576156202257038887411915454726320208800382880100044327324027740309421020633074075919566438648015200723090718815908893022155652588550902667612809988286915325383811165094631962418444571169670564633134106336236090594217564388798684335929208006213969611581270976651723739681196394742066970878288869950823568779522147856066168129720056414815804835672338236156270172677568491611316810130541481687254035945857433964221035259973769051620013162401589451298794228584905793537729165642334714714886609487599949748106718409788668155083078693632654650136498329973536132835981148246187902731062319696039624082629518360113516690654350199006416256345068270084734372252164194816208937203249140527759683592750032509130012601202248882562815497560421399551750485234002444490002355014125794860789193066890542114471152405473873598417748485106833512287932606664821494462586297025396439301586030278483016368192719474486585993332949490603454711205603445757150321164885358185652838410948585833680673024567438144925488753795865522112184363514401525217560350053795572799428510059403263685648964009932476354980648766783469500042054165207739156529237146297440593209508179938246986565431526542679379656805714735266824934764856545356144732579184306008412739343460133151355165948860151583488458235109141600643396465451616500363985885657257337287763060400933111371422631724915140843937450645408466484191859532641542979859512981772126491215862232022456851473415515579120388455023331497477415630371136168662582712124339026191472491309669376986590877866904434474416744519340078840996846171195556794709605132150242440355510690491693403784265769262292044024460548030658974590178960704289459093223227540765709730624968572073852035925671533704097298609477347186797869666224038588181237623253931694396958408225122451207739010492003015641633855953938097099189018290436490432258176780617771773149112635453513694665570360144271609453997812749738001097242685372143700855949485476867227507260231908856426401923633188423264515450012649529705724774138039239199884338883544581557066143379937355382007044399556374287656226346987767274675877319971298863802606589281314956477458327188430437959639822766472937816546336882720629109491265425872285865675031331728025163210487348987639566240114489600976843901514811296818513066272331873654050415095529822019894713858647197508513493574576206426719826897842913706982367378415170813790319033512922414216335704099468809038289033326483707868878799711117663740657033112278000539061418005265147228916121589182095759876128610796776102357468952830881454179461845056616077938703456741259052148394456736929505602550407484908962912680540814208981474942199005464112744658730891335369241370371925128934585307899562466579662158645943014573163154021649774332064608858948750046774886316114624685831612693213544524758296293105052347003911367361350045981226593251685274864446107634119578769520579967811808960826558048981144506874508038457446682363759003735077978394419131643383120427688161576614957576257710340339362441465135102526079306432945772785540379416265240345673115216509970416426320421247287362186477445975492790199603195179155863383844284012303092017723466088681244638475032539418894616304730143781279882267167163085193085956506895950762727021974288651321488079953984705875505110137533293803451469750369938298784274779045324948197784881920125848110285755604960716891204934576737801589849557596677771929539791123084196051448839869247336958098932093385803530311037716465921241574750666453157343645215527859124469909590438056714359676703381715269138733390828141856504040514164469301599499669496459902504904127105471164340916946552632023013689798242050679699985880939297600125517569142516229429062280311104394968215515690060827329383462095888125428727461569117458841013461459344232765348622222149952879439631352004543355984712217081251159874376303875752942843952459866032104913078287209063605628787795384017280969050480844869677895377180614075575392417380892686228757121880852755769465210599332070386214295238353195414356660530325508364589479296813247259529869084813662146803598034568952869614961899271410953863861975427236023236631868643138369555211782346181130603641279673294611562105907700605595784160481601812039355484839388867046364597341563307237710883566627715078369953749978297631790337186745957929793775549753287290681683290591546858129944753506674335060723570905980902722309047609082443144225644652829810078730146973567980940965584745538705494841542466566448314161336972324424704485977171831381787327498082250519837029684071765538860757640055649148041396961213246399160740665569846695986645222413958475102969638434283531393147280360792022852191538841862695241271207555035839171634554707542260965924944091159923592027936947371420151042911999306203740617271273791860072319958863144523005780995770524734855240921926292253661807000358359333625570265925975834802896969612446543294390085855929553030513864853693980852513577403157194286589730277749362030915237523824483119408294181198459807027756753243603478265789633459823764535525068685637621959183514030543629226702517758619285065213931446506167217359893844968585895904324017468529219992869261853107965943894069637861656613190552467058196741395896641137305527808930555552706281891217793998106233086862457583370015976926310640049717758595915051195799494478419656089507781557713712829044024899283390005223697610378031556700408570001420539096432416066849944330858309644167038569750674202151365801112250073047528875017296848792496323670694791131256231393122806346762734942364222757986256055820190523181214813013300680317685872873809469801476995797875169060827074389937093315161249587575506272559126226356697169202553269590579351984835292693187706527285206549990887971173024107197103389652782720633647703933309140712901937294664963355564864249853527850365179050727302936536172885611961063228550799802559777847486499921195168204425243131717723500491391590262014074067963694346603086772613575222932017743568993334002283834837862985756326916070680847572634097638438244476955222525519499926257440208327561111879796144500775044451838149295998572096051738213039993133249023885890648310272769817978742620751053658991901563395662784056897519782161295476797121351601752812201781251120364131396468286828030394331715665539601608334328589350984983064800940209510786030081640973917140151377182454847824087180531949284268070550758110578638501281695920592165642514182212906255366736596620103305554896191890112608416183789681458441823133919338799771686235106874268721818128154139271730813923450253442668523702424073066041127304617110335560193926837874966625843691183949024503041659075736286723494235034430787794135990331340474327406498522045298003865397105825487698853938619642742225988342770820928539416543375078981173279114264482093653501366291469156478474160188127494639178216914071991699846134784841504294362818389286524328818169228787786802379036119574426143127127430641352169321735627351522846229483797500765225882682377010732177812832838843178239698022477188259975860601733785644612133960571375945910052266616371366510953109339318910003893840361986109481062298613068864308677069224344269867792317744089282617080733422394258105796059181249163580362836633938546871528237924399388485511174752437108845694584000306175473019802960647809040510648136495871130578426015022238539885367325672256581470039019781972692668835445661252888378217527362687439806570382749474077236495518430987588278629938506429167844449955131791902077420608379990157076130227128729066541856768617737825573140879088060920966233217821292684166811313175821794275435159244670912851998765596203910149914080616905058812959979570591804010626006548184128297425649314196402007574308815820834971726168959080165835817787647392282805889542639241538771210271037164203962433686021054415925736535188242887882866731872246112607045941649181451188705494256904896274951619874462774559654485809456622696003515455445640887356788045675174471279344384734900955606987086057345745475395877605162471966038196017475758004542101899106484190674686169074427125659225800853261267651168834973970362120238927315692042137362203802697535518246608661581853527146574287436708860679370965733696783068741184512290984587621081874199215924471263912392745043295173066818359371511279333046602480554275364091704596751210092851235265809694679176975562652678579996180430526403798301650812247404049933309783369283066246761201197155546827481217533298078337788568811543824111837950211056382297072501253398272285596974984626940195433824986745731879474517355483581765190333234122551233910788239794727543710224363682966689726145633224682952404460130246496914875775538438840220152271619042427062495770785088444334484058403245980628398098107100004027452381805043793849247196490754817343480508533892406951689437388607558256772962531740647155583246424627826293477098949750697889765864752674514988030852758576217132274276589251926801522079546917921650247136991790490431897368601558109215628690514777084579576385674388534431831937575860988497822082573258063522023396685429472115862819775284717955014757192094369770532165442120779598557678721833165164697970329002795569077858751677576145734412637846605014658519733041289955475423699870611904401143569771021317365497845912544814763781508698000280965893317046695769302075993735457895166206082598514309513365520817260919757365563822835452685947782220966757367915025593855189663993265823793755104352355385531387473686682150599685351015104356055253092395251946103876810118356414195447205953803297216440756551016770096747717908886409816185632463432152115311703201720354558740546428839354744158565452445379479706298769799448236854060655190701761469433728816023029784024597052530484417473672950778975347544161642858571416030597725343169289352331950885974216382388347812552378458153354884462755514253628159061962354306985672734117917722448882616889467124368933368898103948781811603982590392926703182203146316833730982990740915629578268451976212173225228903733134343705341482210556321649817379992058741962536067017832755431558867801748907329191456885201303573896046694428821534513313711469789454944930027767858005665300180385221267333435478948502497088283840877392283840290250716295990627441576424356721457295118474211838871116619224462375720386723866022943923317557795262632020970130204921086548569727070183241630331003647152899250991059868927491290748159891556300077115055847464394974746724738241176575775753487947098262262031616269934252549553855604082501737740933540737038463191257023179163017300921749617895316404697664959688989767123279802957732180183218814453461008045700756649665349535467896501541751856827905735124542138857188539252678773982596779642868273131678016623215198196003763618017734295288349684360291660255391644174973153051296938941214551224620707631374553235464788453525271372866760841736915189371076128767013465524733596698927065204063054598677016552364830391535625034665982362535530807722708841212865148078229007789312651671199009783799650325136852340435969388429229514816217549285569083443985431394298210056628270328018089202929984540083716556088517806752058827225107969501473384358966345392032678020026619371384058558350946491754075587734890425617709616298743553227463637709146025834438401433631755911410753954026122721261878624105899025126005328673885258996628880411190844943768476555735280507212381159349026095624703765060234465766373685023676219068796881206218999316933808606120681029325571067611810277979477856406877410734348128838827506739992341635213488789572994421118292492049577916075097731966769464510199600338529675193340102308614204084383361002968253066965353731570760946312633171411042114314617127292268265798298553297645894393563142911826007050448403411125909323268783569644985848339785296850678224544649673488627659134781518970411604881424525988522562207300680985973336908018595879765917172855868347765323211591303671595014510910113413721761309938057853530813294787206296264487725807263614240516946349703662457615375311252132590633924643091201835865392816112283565749225726385292907073877984751147485341413272201169912307157999464440470004130612410026561841631022964874787470674227134992044566741581202952101167063034674187172385587494408698070222876362666403396984970556733882321032374380372274572918214571441192336510218976381020841776132214338000802521790286013677933102503866319302958580739199882047456260837208956359415987341109921158834845117344672649074097194750329378342063694462796327926197716646313469649096129346848911410833126663405569961267055638217552608739938033672109397553010410825776552166499175121749668779839877093571646959543653196548742163395292031717879212484305700730505007765261187159097490902079414340693033546078738688849019952615640806770329090231190333321902188326066396240676758894752077097292745538429071612694132163271970811703738737104219738099368879117822489681704587342173787556013201149147290274484078669419586316902749919162356620956689750359666756800311879341648462249828263366151901604631630836112869143792361877922284217685487944956044509891029867560656888102887498455582273491432959190732804852432762727509086672221740600224376352468277615376207690676043878931772833332312249770736633770815536082394695812845810936363999106027627678985610136589991931002907456443375113208580203112101905035555421881471438919728595904816330341271732766549692001404568917885976215711637605593843743149392495444661641040186694868155664876212235391131669933731499880131873293401219550233012184395257750442609285519572782222999632755050100110086919542756894421600454118030358553809860071738255291374236623821547889081935719461753244776733819066221529846942506045944030429405059485414551248180470349175545807417955468216531918061877426236227392147234268982493616096915101150113320074007000808752340348389640409912149189178572583663268861872951323830129346674333767920772553007629539230821509282580328471701348317968360621703893387016052300508964724744869463454742500514127042290569469101825847621088261282760646699432113569636608016208814348206928967547489331724632604994714808224340380349620474644046235726444001008290630356989472148991965855977553962265022342434115591819075106949334688515487673230710506746595829938444642871456715159236923841268612825307470725890341856085960559860261906605212573755718487689228228110737002237176144126544070754949499523084309608363478251371664334542399268478511877240461926025385659253261798063219841973108471547346548828935315918442962267780843522544193399381873432329815464131623230652172263315124027325362200623893926622411034931917126278952678092835638356753959687000336724876927914647902115229982914741191688840096030865788938164392554653759306087821372481221911922246205497022801497815003842532157638572273461028286029577113623628902079771754504896298604214402266580912305517389296188784852836842069852259381917456931479876954003617079588706997573871972478145402560297969749387869350497284097702870355977855752412426049735616846294636271691804291186345013377886953724175888356329352761215165684608930080491294810184930374560371094898235629794659769179331902523455317408024825512495592944025622956481333314981792979390731938077494593560530903025624856935137090397754571463329480701987544942658215424327820957746159265085707411408113352234963918885323913109592636773363354507861390306917958812700670102761187648263890564948604091499859193094765181082197903974475752325629631434078684821666018946797579048322803354289253358688969013369298926292736666507456312332327188913249220851717975327827886241484959318088070708112007476932060077186275260018371871877180568974751045852302828008519398183597977015984286370311622788761400304556192970119779543729896298365410547617496446148051866080542078188791399142414916926861403687267171001511427325766608428116710009070860081959342296584263901248618914607281845991478917895251287940700439109743695775783972898002543167618446742756836051141157791103433847158146245137517262175959517486021153140364248032633321149371120491714868252527382144821206883433516748908648408032117983898089876521421957002641185895272526251726361869141934421130565500141270250757328497267294875505914570420247653880494730487011614423474476388469046272255599613020919072844012533670163477741371092482017168222842945646623767266177576970157130088639551267118303945723715384338535735048646507050468534459329736381654908334942880095101669184482334224906260651011462740366183616088032215179881498532855348107493765996740974425719510265385992927686095902432124302786154864847373237055509058150995763931921174140010955751576207208933888296573822242902131718235820424574627634118971718002613718569434653846564013817964668592507772499758237614389870542218546229486435683542391511506078079704090517455585299348595935830027915933995179252976006062693366127779942331884254072860431945349029010624615583665996157788465237482957520255135536137754690968506096314484980492165812794651201831007726994971979284643152351808612441342529364742396823380518568233435909422204848886785486531172412054363393751455193559920055130158081568532749231720241697067605703974438653071116403091717153617500671634486458753679769063336326148407432420321929029263709128784304396915240533588488821789063311148356288492450872330401940543224436826573333111024523639460694414594553702685276112344231822949432868886397288083025545456169207574156321588612939551062540327749352752962074771259095247900711166550616088488121728862901000217260969952343397780714283033159590894722946313619093698787903790068222573893119734954569315554771502840147101131317599417761769474442184724056962002483524099309260476661233208597144313342623189458789953050809241224838520644661483971915085286964506878584084369107062052201379497919250595754753740986183579681194368763289997947890774644263550719925561626228029886503994929244520067517197140182903232360665019340067469130985080940380328057175600019491278355665285207539889019245952486134143268817983184937882924372839163347088682585980645691968897220053107848710593345667062493890178052996206776497786979222490759478233181995091786993297990480441405072597755825595618887088226749616863231316503647552164765111890869100885128492184942024117861992938505337635014352575613629778274214086605273785796084357291806067875466462508957805727385822021714184846933424722129191686805939337842217168844374031267217328070899895626435452975884604809530533322345852981629719783882138866324808612371516224268820241711467931114537074514324290402703515762006946146467730350808589787634661641144829084631678753777803786980977733754922652997372623626575253132333594449541848693999710630545276472738184337431553058603218114944027528382797125323850884996245016146946808846117691644179717512160073281711145576895242156051888423636461943521500005398742822085742033253755729334353362460431691997149542734637625840974110681753858461681066162279909883303546204334904430641463531871624063766704242671160017515689023463273865742821958276346038377321163235993011337163142653217662679875600420771949677796809094256301418183634798786784371628056078005099209476774745959207615426442039481516212443106339116987542253395091611469100060496880479244887332149053830885995380871567253760018123209687421111120894888397131721649810675384972367339822253842596000280656229865976177386520141628612602434904711845686638250310678691284566633814140414611836433392166489504315671487362891757935148704319466898710837443279130106649516381599491007719677734598378784607859475894835710141631979106445981270971095842651088947876572581862801999705982564582613171334106855876202826885244631554360641787290693376455048172471734045510440069332213645601498005573627666562710039260882095269478316979218730737731913480165993482272800526336796101177020111250361964446297927297601690290128939228926796966385016545611717256822811354109721378810324971335958892112538952892061378381975000952832454769039527481959638446228563333110622811396243966023592330558319033623895197030482752836305545646710455622192693658469856662145647854251748339414251008608561786199761721570053141110330158429607661289884988553761620980028561725757669908152661464778675389904427602185358908938328878384487026168421145081957756377722607160148872629452800813422484221501959854693207390654493590423969177078066849829735554545248866476399712695016824744400410687950777576624698147738240534016338408157522979756993681872608008311533058923283249431548228915693344113280833376510955916747656520462882034161131403733221903116277264757987822161490655561601149847322994787933822990655674736124460739995439758601153468530211318134495246539648480678033699643787370288911905861351924405886411569968406707919707809691190732899273870964685274083446796969946525251463694127882164843809776725255020235647445414989988659050758773490930544678801912669855061140479864247517600292265489816116668435620997938957931343856301416192314987173964243519970336632674068921962708135663095519478391455963614682931937111135661437439128481388049465578892676616391116845715030126898660548751609419940315643715086761423763009637428896968623675822790835477038720016732897237070978403358075368143053280401230754180629865221672459442023518142661396106492151373951530917785316095143753859807530488752321940140830032763392306791304868929276311968660066747135591161090550155055171730050431658825754497254811097696677141015097374450261357560478416677431906004563411771719567707943040196876447295270833284658547226236340456603934120059939906733872640941880104312860253261165033010601564739257213121843508360517783175327122961847889858090533961024952029954030108505718217594307702856062649666200765015950228891714991547681396205470424378260964398791309019242308627320519134158241681783386419076803566855604215297086412838873109352635736142120299641027739809082707910716504690735000010047570315340806466903384064785436468897654315253393866035697238204589372096725473509132712954317315508969921343230075363042254331433695791792162796053440552671130515805138718179824883344555305221055504548209579862364331581396596262039740298091618674625334761157176806894119752361121440676651599107078642618295129527482808520318115472691786657095680735015663140531264374336950381276605147968919162119700563023369128370882896589490826768515011167461335575153878908151246959097854459229449824463567326589360725387264893190988804982042828953085315372037379344502407116575748831878918079721831735883584846190594768556522931180674839119462839047587143601714948297435014913586940056295170984010902516571969898066456652882686901530003185285328589641013945362119549839498962728460891322728225307468497785217522634127064204222055570274756386906690741844980115389006196755492273934104509643522884621550890984270587218379896550297649064409096222856329380547722600216368822679459995866265537205125512161429893894848412582213149843873601347260004727250830252635084999490773049207690236819528930662165044439259969734616935562376237952715282848354842251075012314568805438709637399979649915221908532024359854779622206038453743482054136272916662954154266074600418902408626760665488879411394744086079208406083017597728882334587019116611778209465416156477781409461671235881424745826922956307794498657305700893579393583923362382406616266860480534334840343727354384197608807518421480990587628290229015740590260865880195954586081202068406545647917107042330722173943103062719877502476352433687084687425108421171021165102135938111628276486140536031498626827917686355006119290640940224992889641571740922409634754288304338104817991830176963793805304219680943744749669577185627225736589368603470586169183712061722490515980414910408568313433057477138188122940651899720642911434747044986857807099384251385564003217225388217486179233034126320633574390718500655170577670527500300079811693821713046853999925587011381266625234885245899518922709125239240000687759485001085055259864581173000605036389862471502527966698321015291105582865406409546857595513688586171314554580996887404210480109374150294880272116930421594871094716345298360509074809339828299692377458228775125768648677562852663666662354569818876872149300208272185215891634811812802371162456604590303685847203215541035471156540952456499510691234190825215554113175015845719838599283071325997384670035140380992884395514756424622671416120363843389958648347527748921172158447064145098621209871497870619947469868336222990344669172248220967122021624247960618555562352989222963975738177932931572656479699649796665255488173099109936471938643942095574648101081512783276323189180027739902322339723903056098866589379222708778126245539302537968303979158838847825894017435319303940503690748001292214847072098604027825862844461028663346896484884649281121838379220741317320640057319508068078882885784497754500457848594064328217550237593387879586741991047673533877533500169751803648944819944816912001056544375584229581557418971793700489235820692134161619651480148365698262646976425781482139431053504610970148223579664217827318778899550746315653509208559533684708432489809978251762573647692372159369461061746513542253858962014652983307572751755741668946996130249395431628179038971990847146598596120174474382369299002634670140374257581431187658978575473196689834889995636567583942208747061498006591552997737157131085651594911781111753237994218420150123769198746933272285156625950161694334973628869535463355627883149162464419569115737598751179897217803978622884212708805780643173677782613090260117957500113212155551378977163757126738892213909319646722606284507154452141073524449448616070444215285843985967087628237037751769479405717165551098787336976939132569005815638924398623376152222571739788856454520641306200695554991770044387899742583438553103579860778504945320781474268452274466516647227217497078192455721972154865756949670323728957546709061036921812131271936041301462602561123409463765374244855262182604666459247598938683388086738643077033252630691151242104902848598073142897759043320623642805086025824526692616725965090511464393619587281444052273407471832379288310991050470342624890957010010161685583777399672795280552543558351525719602957049214714044428030536583147488643036641435769221731583058231249867668438035062508043389930659716251069817292633206283055854827623745927924035144868524905089401010268450431454014609350775952935328439233443322198408557169304605882634433830383684243431524466371512752243231623179457123828104419507835773789181077895022245646136454872477159481518370775196383103561087319496462742803223904770319963452293095254928304608066054302633506362928348066786051234750108041491057810219479396179096482332731741368839838385550088337757880496737286861396672927936286233303848729912608138841309703939062352032605156425422883356150486986490124568596676759655060486322036948445613329355520171787435742933115272786735381118310865893227944957037565878459863201761577587122633121943879391549419243309380169152439301780161666348128746261270965531790879441867330782232237255150025197324254611666574851114962432830595433533627426244477196244994836588570873194266223720300073186415051723428836092491809020236186101884736879518582855793452967990985380961286295852264268432528004003524019085536354219032139890445640337458596524633133915370265413790235455026144330530960366889486049537984766133717184035169620383987931149539744918859396164397207404350525719745816291835992269484140946570610643580724400184166955560534652442635546842220990090223402031680179704107191258431176781415354537035152293420910699496355565199614814561841926031838518868408366686620776079916792665343557561460311208463372489185323781217287647075672663636230477887279429536387958271611547034439402976156047263226011691822695311702431840195679143692996025573919068255245176141288355698557060197252140158783042900679037438895141508677980391956089376104323773704440815543934689101882672827665116413071790669477207315115330708370616179915704961184148010856489497695172537909167032922606401735580232108768477333881550549783077525290705171596896819599695267238008261461644388832107895070834828811852523436911399220870641832855557131446164580053902147724476993210029455264928461512307306528289502036831275683005413851230560327178574305728783329802262407038205491379946213799317348098935746865258702865666474425045881105507869902556492878676519262411077592106709476640163856687198874622695274235065614145974140257946847611583107993719372578410186384416131732002357210150565349275428167604771300341338569475245757966026953060697584607298830819211315614501334261326175923058541308849486949742923755626493745974616883191625641338903742427519091791433976444426707846161127631683010058106385757420646491184716345414055214966092733660365364744962934891352394365878570924822294254134278129907242249143916891758172187684986559251508940759025373251356046549597831154210859029758538533464685650280778719799519540362605515486566990379042698206033652566292574631042989370934290048711593328180660169069973285044764546517204216446932118707300811267255599388318680669852851822689271029311439786849124436162628158385820656578016062242608910142736059872033890424937733380268970338236803425983961792304859678006485620588788774786346731487077779267767404527052803282256249994508643456422430548840574029732294254809241746160246784766852231110066531706838870836578654237345570221955417622360397591571722281819155403133373934273143331512243886059946885537079677204350311002598644704229754265662379701427118659851641513777329854180201491110892255514347923600684574399305891934667902818156175408199508124650116527925044738825306122721275987485645424851612708752877058567932617604214707331292606939120895527251158512517953660305773617513897948205037663665446342284098369633455259589730217802258752948639310015674673590169204642383975921277038415494774817616343600103620575646346792233056444459820725697942265651565871891369715074495267876971149424758423192432513890583070526105231192999958468435745301622116781556312944593088143586110112712430742564072639686690732110681954924977846544163338426273704294134416293950351697117342565201327706308258234666600402254091914744378846016047738477218569048439648569425740629837703179666544123255308573906968766473197550473119465572568124137647165523192688706152982338518957702253073684935444224270591555012916482830704211898478730290182017846351588669911571497510001217785595628049734820134065419959019284321936493514460987184242710613592959519288653888086154240435798879940879330946574717928860957636961193544293742319782515063755233026320840190651896035663455248168021914075435177976978934599363331443911527784466871332464781390020640511662890951562663898079292531308428424917946930545769114583212246202712613157185125229638082017024037428027554185066940154913863485908539371247101930242209876814586233633875016109889658759260043093505759953456602384221721509153999851438272026802234498487003104277220482588622621672267476818152751998370581231676196608606844731887707563687367404624725391999594218768385365384719302149704195945674906217626897344852737646468649885364630428323680011070261978264973631507958422218072641730090336728509971196661782891478798575427283984254890536414916847959779290396148289929884493061980158887074847687869342668558007218248217400041237948391666636821539923133604245231274336305605960088704720227693023959239441607076094437934933196993110353285770270090533409132947641554290159204457499532034665589299961662822771546031307292251032558002738149548008773985293472535039703155849595078986264145101059502351086888168166012702307540163427549654583437705960167960448779150235125779691555232420516036563366259496717404981964567126641045158571951185932591590044435052113887711948424594902681343453891793717223337578050954769739573031363648537033340035049965497666823213525766604961351422181220742160040545894890198675700845531140822121034054529117609527164044200139267673976575318294229424420488030017947513028399341257931367905314107585480933102495775826648886132625629158886173375994782420124428728276902830212817661023482287524799671318969241080367241776002045012984524630130406954020357036929829737574462368795430588039418660762987283955909402206393231590316526989837430222779081219255923148007868943569411329868206770901856244137918200792668455864811139187304748447461066071583285993936369873142579226577081614192299827502534125033606283932540308358098777786538804591139794115826462012021941513869886607032074586014771843136410232794515458780880806879431508845727161548992297192330724531354428499173025545620321180377136253564014160597320508787181810463575303106658148968521333419888748819507258289721833381149859939949186243414802847883211956257810371477689733511115290069494751557166698398658025613619548387724081924064041933084567213802127823080071624628421363378763920580541694650957733803705758051754331297536996930483772287030332857312932407588643383008334295025002765389717332010488861517652087696708432243560240918523595574335091729236863629306666147808889811303345623512661209827020050730481738984273534284560901266986665754559067811676032027881954279919147338606416302808291097099063573231605666291036313660566989270195050715756323011499477747073358852528304660074531932496106812087718769123428855526709238707495141526027242159421139851689685728381909733411151581285242785575549810096345320176293756276101092324993119623715705388734805770187386046539242539125235823483566606515020737018367380058926863671729530004681588255595948193267953949586412069730419842425018740503840887317593948348825266214688735112962734262792011716916049263574094710535298085942182880971533752776753373355377841193148606383280234933520529276970167225397915871603772422142665930194795713261762319203409360737165971269522493257852775061822679690521085292279073199418287035292607212286025085029593955280863886689526485370443433450724761636514686008891982685629963222774406322069862453971551059845316404618839260536459725300762834958348850956338350404126174327012109945786875706964708355078455729022500646893861809202114725014312051678144158333275768810606160369448615566060594183890783356923176592586516093246545906977778242281161989744525415803423494050954354493924958137615075742316750478525766595289457316116124963969878241643035228011936167342697028811081213960295195832978602826221491372268693461551312038929851685577089269213596535274662476626939676554522653493012692219390389522886329392655087852906487254302233511297159168289768907541180972770153200411100381118215237186401934775218279838779745422865468762939536169395213285222523037645199229074266489293564912922998606693909337680451099312035970088608249438450002193867252033329950636738230890842500988790928179728662567260225075092956917015314710314304184248949328903548458611137587490608589801907374005823612607684602140334821208312123292683406563172200310231064172559249930847942593784305971149608161096179816902383604331792595004757290645761898147029224273980849778856962377514461766228510685209594795180780077071824749056545914630332028088136476550690843794373293769521033898368436416639602373883835786111835601086313257469911272444824613449574515336978584980223314693420418380416922731020579351108145127701634670481439883125903501492654640938668389851183028600397978675055073954859449356498217243203094057727880047951968138795950034654007423538410081893434438346504184166817192154306266328892583256047716062194883144665368921845075502664779206261302850131318831603502425500314890125850336358973248471732401615707998982421707609829771947947090813514797462121845857084311723745454620393561183966654106233413082195655030918454096579125873629471701574817517044237857391221252452256295305515315260153657254027559402523383011152159760211888309788771718521088273285080438408773004320561781033928626931199443276091635870102635153056781938481158429775588616772513063919430425078715423500815622669698138985453058234643754961694037696737640178688839324163908744837670339440529062715184752789690850407494560586470736082558905347500336295222766165052060576479028445622048577437670653159560906896785213483082285139374729182132461707117957220991226494578633736550277755757842984211456006703644541177252256540541805349237977825491186381171372443271743026854240302641215958952822825727217111550785754335441173336349038400815527004158176387111565795280983120382790450593276294610930291317599853905368102379149714242645412378873370791465831746032320882894855337624551794246339598946483069527043529435595300948906540511008444228783777912812358899952821467643385327906433520947813508143534596503351057327455362778041440259740707414334842924142549092874264535118711320965980799835110459998530493382674656609207952525188906597571898740172259414561146674956292351910203598819443201657396235561893173285007709509574290880564210870473873433260370839825011035471760852828177450613458178927836936435453934279847708622584672191839669219542154292809053181024268055313500277285524507706707487677923833804882074274560250905212867066481616113281945783809620606790687298389180028013878064466796937356491669679231641968528620252874123631360416450604021147877019555518439669999697722100176642331574034437023440308666336351093405372928239902793908478342971411080977507644351013081911268101201528294874496741423414153334273099857921822760281016478174811117697689633345543657829160839684474670992999640919996032065983063030775801466367891093279736514117109343132470602755975100002730824213701191404946529562804403746752255975026540494647933334074866878074265830869541026902048119580307171198059584013280610701034683806833952231490749845844024074617984316669774695413628612334967681921404685037280939272771888333928877490066726260299388225609304040716380581407880999137987998901897519897552993483530044328258153611115328860971360984855217696970739563740591157630732805745757506847103303828444843307335741726515971110552779120474270097911974893721989784817273178212206089142827411620985375230276336518162113264243191498713745423838612045120516315978594083202007893021340460569623485117831947267812466010072825629946534513979016516426853010031921337303927775115342325901437811720430234120791485697808594648721016919975418344789753687491554252697431626796138208695216706849386663112944675857956515634489173210974220013195108074340880275220009929944116971914801010819826763133495294302343471798316074068764801129105534617425611153071078491266588817113607103484052042193351277166077839574636622491557775323696495234709796882376427325912169122444479257262317824397197348251384851951819120260133697623508583335443719956201472330423037925136096271983555837099945299882342640193050818844068950748920249471070752543366985112887394822002156333899771311712539344216351483475491305330960590480449374835180063115560566507302637704166028880532358212420492343248005560007097536910340713226627225252160120748098855015084272073839311869134357050893730959862379296840888555975668362561930858564141504116250940681541778965976370610195260854442727692605237367156651975720967505286135396340496520660250260672308239516292085544135527231222662117412583667411508252433976633996361694329394691361616880267676185103646063674793353358301689276221008295693024522810369561627662227134293330144114519223406320137320140637486781635823927196181725334051998898595079956496438537488112372906265888963944856329266590302080552829813695434895764408502717506351210039376888768580640451690074954460783426773780272223423151878867636193520628079280699811915172472782210327865824032133651027859791734433906188224523138252391224087038934747641689165024668297799701566013586058957005903500285425215741013502821396021452641070185407542279025269052856794858585004841542244981127131445155156247552780829419387567910440025604558173665317078229593394069934599308018376707749581325766796283411243184774547176184636659945128132725372921071523452591513682291777845656620234716977642813479299426547682857016278716412475874441640416138433100780621313726811886233529949928204997466731549973458959613822923069105688466846985269824317989199876676930957977597931756106521498058382127981424981631768894727789699298052903650453896500418128786951392519082762687669189461389330148758370379564983918660155414852373593647396573226770690014555790218761865047203253499235950521934876365091425662887924133794980905831949201994305574872623307022036080668534750205374873991083740603279929387068110389395687741136473282175339920546966851167396096377684863235832672783780085955440331968345556897576092782170446586160453567670788087342820875245340104592479882265501833170525318300709398016287648544098431477179522177556599400105223542358820209670288509100354286185711664572135999756126856340708891972968402465952733061086348454974815300994370234679692546594671295922378226269253436607984256201541290385087446679738543515367499533940644654079238035978983038728342940241097438634428311278237701925712392289383086972613111227287275974350620960856977977905562870797744784272762310342804502965177698642822956232107585778245967804424637640058887688889188554454941834639458526065852449279561033746606692260663809940157724260949290255671075863605277726675582096305312724870102690257937077622805279573162973258370596183589857486745584050707167019866513948509131185320143355638580445237189304896440312143788280431448272722286221747179458919454241935176115859078328230526904660593727529707296553330869438114060040066477030681991839304821299980927659126139195084862865577750274895262278914330154133030646448700136695502284361354221669731221536228528762227384033304235314098463294786242597793983574256747116184414590242818890178521898000339310345356982794068939278208713405757140743104747495925130119117283112484062394627045918567562261850915019728709314094850308500791835553192295779527381593272509637619123800855761568506966688133960603916429719230912592194313502591096816677841752414180425910422490117687969897229166191393877931068440921128274964296757078716920332594552314466893504934822098381465574416401890471693888239566301852097139129075739634500395012737414715186537851867031832070771652622489567301173799327509649617538353848783203499405155697202623146793574765924480446160774387101592033486678714297170360446495863582080498839930280525083729669237769700754530456114009566359719676504949239611259779404499692366819510863063093700653527960197748245118046988370486674292412147743396216093717015440034145843233563725917637891368423388867611163796044334345015644562386750566448161297409291054572886185472835480177385846955515081167102189642753658104888015369509004103118795028894995625626975426404402268884441510820251176552199160288231151826762313292698272897138963347815734480486111749703971667162239237756440036981109495332453918578470093180663022197385991677157709954713587726465024679527463705479157003030498856436942467798189745017387638292822221612584662299208790932709120679905492048117607515615480558073787698738268760374681983627255254431133473684948132043866071685609249639895948213806995348442188202146101028879050019755599570602232941117391650283202708136753159053150995025588927874636682935723066889897755597493299573930653330424838009881832055864666784536316259951205692438560153861897617003747991435039837835966903933466340184755246667464719429668793054158396895349850809941752889813191913931342084531759665295002193279523213118346859656184779560272297105597182443308606786398886568670552450726213056702283058053425071353353611492999436942743797933406232171043388530551244531653081313458404077904366314410176391160842825865192713313514506799453297956126385160388836853578253639480140545832352375575994797471687572507176632116339580845834794132539859208148702122014374214357716233968573255526151948819329652944668211764318557782913791979047734613785851128505493541622886879322615788526079913978660281471055302137703702371638118553068976728262395231602770248409102472674745160164062991518403134695792662044540376380256273414143076212883317721506277581756125282642670286186651021293421188476603717259998058091724061171220694918224759624433959999018898768610105863555189786323573557963337959726502394736145519448432705745309668195104756512532500954261852080667558848602093294724180697831491453464705498871306536129795090874273423513392472198423383431386930221794129334510211391918848537721480304907107156975491179677165367944628804999303995518261636465879295576254262081578495145239837813186988469523392448460573418199440495524515876268527111337052303570209154459010180595671223868918430094309286630722378329966484289720357695453184887277997716701713910459203480880544073578594922772811213394362627891030433761208971325170460200955535521901176359059666447246859808757000597221913123331085060702152886654827459268552702354380969315218682681237483907922859728886786770196140918732700428449735495846699127402699792321341670702380220649548100653787693965561119923442723477489848066461931090924007558450072052174019592208804129321309484073564970061046900232251792737788500506113541012346431035724948168073308519437540064115217388000103441578476387020900239977766383261878018628552956803346821941655110536734442690747015545508193469905345812357282515463915516143189249754564819421434608759558473620020968208334359667590841327142396046374286980577839596116223402885479476715568213255444780566222297722303215367995717711089826734380263893811169394684863351014158116623813506166028604915134720390372243824082905816280943713003124537088220686204297068776608152430167797488566660216693353421366034544565901118686560428728838341168618203702876288427264121157359391772688224605318753375562233805624910314723276803569201106624219215405033746558550360331582550416478737455365653735836009814907442867960946553781011294665417851711119693156627788264175399834976453671130985957611776404663742879451549582593669089273724109495741023515575111837886822364840836472350735267973072800290520849624534472060770167236407043276633089254200351850193030282356520121431749264548618790857872751436171855908843808667372381899151929674586269306165833997001879000449704527583662113881378460294892113820586167244211727680588422716622739618841116035073701809681852268372321841306917931561378759461396504889663413087214713723921809536773841428319247117400573429863436618625683429226938912834384146724081760089403949967694165918918641870950615328137283425728595913900100105743300234021834835559236489148679825286773905065428269796381460430771084057564002712449869600075837780005796318232376721771824415302875291962287632444548825360619839111931610148180468158485064339281387320836863763815811147228109729439940495374265029335601205769621857790341739869184812668287427365467209275442131590868292785138133504809245927078532217016973379566417344071525416302659843112149123821025136153489689116583020133403276814806898595751984004226701048485343338731416254877177371930672433126423289843757762303752619230033394196923775482696631694076168897642090958790333747296340945207845116270005922468873126179482639508958386309545835694173965594641113583648588454062905429872075411464959644021989665397203624521528791064861341487867092697281169655877136548222643531406361385927587687996975160612440861283550928735455417328677866494086956472082127107708307439702736522189392568333196551319486441332743553250885255660835369644872224299284085471547437074390109082048299421510790373233731352874993675084494413065354460051999909107439078107389579989144675044857100534738243630435667029647104850438404681956822772854629040862225670600181031025185054679861888470102916810840596866826283742180849296632939630638851506918895346082477010714798831459191062272960921102025705871157161731246093069742066399016180495908425893685703751429725096482248561050202371369450121676637039843562262758914002120238919966448404968100433900117243630610969565577387699651801353770304774256847912792023272419266175513860949736508563559928902250245329412391914172116907313392030839247382448057704314766905180405649625126938505370451210563747232020892678122697735463958091719508021917740738623810703181163115770077528725689586119974150224565555694325939072127299664960555666950938694293308886844493421653911248175740742773101860714180590901144059434196323186837081491215638668456909505628213111619247098603706061900637142285534211217555354774422442243685521022631216331919351036402395146375397174793860902135271413227806135040698770328582466284567098665195778423167865238953764821647757267890650698708019646088172211175898448536736217867990343212592303340576085798055629806571957136120989528257172529349532462330262446656234914341266418157658316760712863742280378947717625732295813961295025416194276966489802580507538741447473092606758130189277782007696051777994122670415032066811921582487879345207648292743347808542311092552219187116169680227361438460294719672772492628121812822418027394736277702049847192731673230664031880027199770117400176661207782615033377780280654323396999100810994096172285027882704852583798279489825818625842056915045068563510013420388349454673359184577861736557185530899706146078666354519519371462216316503794502510071269281128776005971464441004936630781906511180782121723025204842087650255886480596215391378361985547510966759730470579688993788275568323860656452062204965357627792925060720207891700138777426658844271577636207045160306432874271947774455136989565810034147247562402752629721749739621865582874974147576056126841689451674895245834305502953436784984944146742691714568216018193812921359599793972568673064039337976316764982856378302405113399849784380138209471400728094082685864131868068955965178805283986521261417577381334236117827011471447160729416867160128922087116724574289287541729043087844070012254545914403539125247270003491311357382503658233205509497094873873177540807022356981600384980023965223521726752560396931015094201183601342502616717416905110445282002217477350831158022498331097330818864626205200551879638079165167487385354801534150534175608933208598105918506770003832361936063613092548740421885361028190569222796797390233695302328583277551665238468308554677681477474853356222413091962080632391437655861213375763119095164915377274450732521351897557499530858968520051338413399004652501855033982492927545351914302873322974648885736122670204209927619445596010026312615655778109266863320176072693161479290857801799750450342756090166799540733330307184999644696566202274602333724583336068339450205770264093840572898936860553802975218053561393988857648380165797118850564678637797761475576191092668396704275471607508340227603282057309888780252323949852977088281499580264388255840847365859017707079534985754796469505164911334875441702976333908664782861285250217133509061991984556865044199719911020226113129729911127594728849213831088225413169602589119411414277018585207950673207501153301824963674526794801483029209989382196402791072069731748854551237451691614227507955271844522774821651959559002897128632570228578749139848022313911991473647165576574565155198497680272433839631040605462112109145183874786538383084779671220631150629276364898888181571687773194121526763173956859616922741000950731448855595781418799995943977475579329189362511868270026020296338716082493544685667705981739295084080294137860834419058050731899330307495175336048711724175253114600632538350767123929794215546220593005989946392701051123130063367493376471522846101119028165616328788982511086791967346584929588837669451920914810168225058671966925419657513548252875212986244388394789422594480714554555195919613599247698356823746120117138112935505099073061372959871459709119036662849762314078291508616534822767185190550567667590590316902993448572429758459894839502302109403118207529746369492498385422581160301315921701130985276131884692337775918660195519590439692586103797254841609161835137028697981894893831967668117631950104642267810528462831703405803283426130551914118925957111044138738618321512836934114614752167855690156934880251569361503559859405217641622959969072009248038056960019272668994073170669001392980259135545375510162743058671592352843684387207153300378256216482315782009693733775915374621949520751826750724660635127575384265145680564937095543321848986946445858489322662535463481552738810941483699655095464088426027494311994105996118925461295971473237830140975185776045741594994122606630806337596762434448472603157506511932966080193110896317498080172944422544349468268973210951216150776495162603972051568424790422527225117894851175777154883706677390196299120533125682173271717571964827837158593113682159995632170830692229341627281639090712668285672288970475450205714064971342902857172502831410680964950423249076382639488777302216885025429468306426382551559373731153346947706014882858561240749440450373305499569687593714073259978687770173415261000914829070038376881028458903194221664218951537249019322155891603917617519087385089631788288218075168123143625516513317433872365486798538248409100732710053008216585351403587634295230502277930143528588171546787511351473298894764652193468414992497058842063948480986198324633432222859294016463314752728558977202965113680501824552054953015652533743037225132096003054569172186270350245474348219573329663881690184223485674658998583357323755389466688411532248279173365339805544014088416573179665848446800156086717816487777275531792434588588157619345606901733324372976920078391560944763901619382506162006223883268463128882825476593955750162836604923822141849444158422238273338759140226521403782201955111916207104978088933427676148388524328915840572889357418977987347705757689004791366984778160692463991835394855458185795614764953861554161739306981098279469245966459992286143753289637588961204967717403336166551956333425750410841424841204410468467490787137008176704763415490270866946701373821350340136626295919107138552080424924749073870942542000059611218416439543131813382424307791516301223208349584491062205786235673801799067509086829510969645304017421708839913967127743675952382417856729702837910875027777163803852161497294420786432615968823412107813349283134865251007549973189258708065354084538905899798544283969667627466335851974956227011001956391803418005141066504428436390836652556521165712504953652605125769883802798752137270546067921487748074930845850573460464752717877989709241465649643411614780825623252251748124019508650206039078191090123033181988059703458778446350278025724546595322475738924472744788677458863987825254614919364640553169395575172880660374933008929718254888070168505420707352121460761494967565199811434352212084553525100296285017815796969916146523974816241860082826125769703245543304432997245290957237940486660371190989868624135556437302949047255697968307001388058147363618833111857607131284382164052814932236059029008920446565532886861308472609103644083666816168203352279440203001248388114559959970483120171628241349171139344250512959331209990488335067550553622587592844468964250583380083543472204585230476125313548544968785646304376120574989461385804330592455528720244279979611495937153861451326150397477134271009591535175314575758125532177652420068629968348133083570765389187963637298308875057057846923157470037365228622832826987829795910894828760602551076988317842957939833504655814061231541877333888682458908959518805526742231191931212212663352863050610988274593200756405296709589503067487661580575613780749442879342809353272129235734158324943026678186938815696681318108718601535370747944412014370986582631613155845865935163567739435843523943219232161829019335706288739406576296084629774056311886786759265420743552320301259368451695334452996613851921478979132543922703026533991955220051739630208258461906274681659006546152377727972293715591483026582442570062478503849092079680123826367906086863972759824592690970122854059558168760590715183637453487204718713160200624963190753440593125048117522959456443636095210406397396669261414517900457048721706819417874890599919409341512549334711849299141359166005107807343775277934028249060188925437018589138863141980838867802090722224666181796840561789927394048221717800684672322893362647478859661783909250833409927841603126604990189892306588731982998461668135772990087593068064215910887987445944675504024655038742138550233908055792096939190355073963727561735461189798861008525129858386858779695146437734293331304346333958091903195900671379668141483577016387867842807087926049105271177854499236536322913455611818137710749405325347477125814663495492530952717969412515409975320719237721114906632794844673438320048434611547865317093057493352293537053585239608386560529129234761995860359223949315653006806567100627182138023461254879459416485786819190233461790909185022371231395699050967680648874356487580433806295119544761248910672049125320524949056912851636117027013989285900181318688113285250074233665883785687107568425720568798690208313324984755058531269452507959213470718884394789003492405149654130597481931685776192695123448155943312523541505065006085665705283681004104897850788045341954262898205197217085443047035180802794341941447889717270261691667426826765676253311468925400106693232952429736083590235616686888929078794442283540029270915638522821458762085473181818006256750692933075834151451303876308029221457815200593217664905175206559264626724872239367308934603453769086647125554655863491338570373993526094420608644041305017161952419409999525820218759433518663129236071449286343001259506210807225028099919728284719321104207822305470949139664983081170823793576215833847016085035628155726598926139750776539548244568495072320927622699908182707561230203589007466807960869800023018416396171775767647210606101868352317489605486206673157577533010395205177275904242590024196177614429410405916784420230070048873855463069755533629942171006937484009412224992882239600950369477838637735030765527807110432271863929971491904740575559882124731553886065045568776700263431615999052999645796774894528666621043947930547879503828261012117087447462885614812445635424216003880102734768585477834334828403884919480634115406771436088204055927777732479688880621828498246141950821877354200709021107184716118209408299465884961129907962021349238906898642897410025648916033539371837032868674814752352917433221562955869980515369271561669893203189897281270776754792500407065335077522107104184091917593534149719505041335833421237231980399643407945866312328575645178775042296968931789351044678921422021088150591390170269154307161931130421033501222466730141550278020510196594976534106456479244261397879707815853212700317617805280582564798344857687338191422835799157907372558811140057838898966621213510777402066690371070595052306384501277241242564711639248637718280054509063126537120380241326906620124235710058112323339925457080544876457944385778351903057092050586562005745160618387998092882027522761958703089251427810106302432054938330880132494867746456655325949479301662745643325537363626021349815901971262106985236589310856222802830042587000954674970265669397450594935890639549291564560906547626964121735397250538760110636721304895652373652887167352283317028884486074975152194521290071484171157727572191932003358205480571104938199798562789469889310256044147942356248752358355109998229470631569057266161236990821894263226626465662437291430727435305789218875146712009745834557633259742308998130675759746750723238672566522640296398988926052395477782011026814775695421413067691794290795642999174151428347546894179908940452336895554086357346051941846640766030780949453639840393314576234700707212435460737121195116149253392020341788864248366132570884912153675491186026757657252305588624942297580402576917395300701328016696443236551532599860211673309159680538209505118267965929833616793422988764921836442076968260886426336353649106365510521110954619881699473494430012585314369585079474507692581898235361504328931997441902879187386039616200148291893989984519342053597933089539602180303301165954273722868741078605136760632981648111286079480432945888152784520035873489254942287594962676349008152563906781272535397369449485918042365251182593577191275617285081742309763008475135923927421798593107566167475714824238272437816399595621802273759847994893542007132012497539534582352037740874763283091450664139934753213319048599484833934080759124068583652387274645631777630269796011615537436378599251513270551799952682768354194117577932363275382105106707751923706761897803436532845654826939369905344746193525271717294184262854320115363239716778654385981349104859902166613137169099814128717100726711695203139456951690757207263674360169544337819616685832716164671245327408183671543408079502549335542244694469359201086938526207633608529739931396016068363752188825199791682977960197123696305781216570741984248500404325781210639198812646486607574320073427718315009016658134997827574476365201901489893968909435989384610932768078431945704613621825685525523163172890158172454165130871499786605728847074147871832930288781051268145808630920144849610966417983161614632325594466752745109637789900883327871710593689937996302554823164514240942269994817831511373611352673340322073467427484066735154525045724266770318186362473909440636946384888766545129111954641707585039747438391805130176818160131375470297890855028874125209425105926326021359443839590108343160909981837011603114519437121020855272005159628729835943243992271966848127836829107230073975396973069613308569820906090281930498536546190115195317158343666669426681842427709807015747690737874810902440324961008722084039046877430511986427009946661579104056382904268897817883885317520088429352285357468878375175180441929018745289222821879037487182515650377635351123243115378319599781294555010438164572786307109548184229170706106341687097837021120129160266775358465710910396892325428228268532049836348163799069101132168472298160789518890652458417008549417926266392915093518328389170512718684621424796388052786783733245567081681440505204936725100664555654915399144531466765347221039877815183894987084705337621985268763053660606740534781624884550125714167928842445526251142147112613478184280556954261649722868334505138553729176437072180909976993654488050327089880075396703674067969753575871014668479817364901845699628046605074662674364495357580438444004909868464611933714930209489294024458640489442794699034284636944416431318519642051205840086966061263843230442461821556877846301626186506236264504686230117668373979899530536008776516016925946861663283582959971195829075230483164797583163016093536466502695783473723792861727604560442989911778204439294590828197886213063726301653668711103913016303546631666258735347562414928475549057083665940641068391503407304134749103095265924553405217815323212873135539493114068944980871632752111597069554010998454808661522651232910054883129010440293508217820944198366576750270444502835097912619231490256066010499191248876931432367294559231846305926163911429175602675245420852749664681672336208768264279572925439534608626043309026252233138961211585421090343483139898545717629815659390251195269574919596401387980895559801018680427813188632573350282074072882403544770221537429025696612736400473232559817050360365913127136250283179696128349316658945521894826254248990355074242662151346112714243876033469305366082309594304383864795154774753005645167966464179652179818720693477329832242403750703366654222879882688825605948151206952767233714681492223421855086348863626832891960702207044829290804257693449363020737976020076098334563350406765025006866968297963431981468186640048225888823670354537192731151104944225372944233799165387274600709870129873764491034156193579511855111648854501927087414314246250752700972551119752887079493723380807653257208850037604875756531182341652010777494828352356733497361504745533002036261060464742397629624840696122723292283611794981294130328699340999104299230649678611854473941017138032230788000932279011768713329151502301738535136540288023760310747507930523374786521621516903512452454422093438368520020963714773263348621695690886081652481052521768731897188539604993498288778390610964666583087937817832622086512060134536485976447951707629582012474583628414355526151818148573373714445673510133822440865737648432247006968269823212943511038485070235863449012325693004083868018678993979689056123214588875401331309941424331451689544430859429323227358926639331526129580491695869625249569941214192697146201500820065646144588912344160686366913323881487090653742223867883460477534808103542253319772246963244701419539742603048372393038461004427104899605329732833810992270787895856967052799978287337885202616672612675073199629380446740499763353840833875213578454375447724738414614805663286909289503423503788528833998834126857959615200294882651973429361231260213272649138995085313480091518615478609792610592026636521889364649424606654022042637982913308675181286428233836465979180163745578688716726770876123595295082125654519791639530221300802157974011492747877755282026510582913395984103267050806124998450559736789397472515743700657702593070835091155802858671494910367122295036446959762185181198912726297591741055423721454995056379076599158909099639820551434350478918347645788194526110813663495060162461758544401952821011493578305266460756110234962550632234106018897471882348828875326473027950171685497044134367306029672433727142087696471898495884957899880495556945638151869566657615843027852405971998428000723499168374287667559818750042773941389018096988550905919219550683381365561966512641810251260401446764157158788982157541000113806191556849332441438676230679548518838793648594161328630294269689604967506293291126466056418086357623235375330598976552309657669423139951991811444766861734814018915437260137316052423512206798589929010526836499061913145127546895408789578801742673275377180592820759165660201218065075928411885721977804336968563832000236134963033105202469917154661186471785342134648435015525673729119968629598521058607995022120074898801437938390219082157212277059074858790335141272963930810888142977429544820409728752614827161689179466555954570131382855048387665190374714259184091297293120938257543293190119596323096312560187089469534986220705783016658853348310660128373405822290645852303572542743229375611941865004316098384616684720865442553306553906452060037753283633822251695810608478663956269671553966004552986354977650453669694460180110872144680818119190579600048987626389100895684052995506297379410326419212652734502258739584300292132162343219863904357628210069531781176977378132815269849894151017360345373384812713732486547129077243200713984783103412365792106598311324253748550509889980126930922213231970760279904334417035512544003898809419994794886055184580152638612650739726255946500276735422897679953147173087979239612656857727479944539593164609678075052633097849733446978969386691993153311791643809500901041644796813996527038777257741620878396434287058387648156205851589883869352418501480583008177089276027561773294825149903924665331111134167588838466789251874987284490462055331231080122731569504073364578825821582447630120778040100986555211064913644089683156547717866908280739214832126218101009176113899560575685413291947333534622674422954009353587210152295707270778183350494290763361084164620995432820352871686472226715272613867401980887129947952502032143123493017242051787610765494231957872103589924283923307270305047500803773901982071980504817074048495025010265964266129172062076263520007150807135927043453747122931426560911787531755543754771309985431277074713635329051155964182350217754122196832576994598936321342027785153583620779683650237044692583436562965704527621291891717581899272345252789214624284453223278081657314320250090067620614855143084073349479318553459070717319811622502706491079700032096554322424817329919071198732933037884420637230896334687263460038906152493886947068375413551826312789660866148835743405698134679026080577650545015807214747214068636744911666248277436636227721290613236920102222303684391118812982003493559080327944870582738417912565330441506101923210858262150969546555189916227625879298727092869968915042334157684670935091835151062727855495449722311563630911039409441496473932865706272683393680402479097073416242655134693051072933583359346404676486144141058378234436359041478751588342791764535155779633311812233549468086265446763232253011296751904158245549913059433358717062051258910668715302287384261717172163016016133157455983401778856178494725751323321693711413740935531684505290468937359743275608938210175858846481247603426727629204517921400631808434374048829972860210912357343578852626670311613554565242720596205793992517700091948771669276980591968305977386559472300920254252428355476983886204650663226830275908468118257362179069130374548250137739950588907056626690047367594034523420291684501650076372654997887456175206699191902512745863994905429272368471001951897833382415300868801429677897011729364138102533071434103623471322958139768470444252709658966790292103257988923111527953839723842961816763773025884957565267225998335801388226879663320419450567989202472947506125564518567755134565178541434723373024113099581608461769462987018904086109018194163074111339799230575311529140935990093912487394673146854585964762725992110121385659564494796520167354729722279609101261558593343763171568623497820556334737411852844510734584928310570643511073407302825324878890133032195810777118249071561209689026013361880332512504758309845579559300816221491161878224300752327861838869857864326763532921363916239714902041458203857968422697596754000031033712646955228839867651910848042237289225583007487751244556360904604041873532482790339687515990790592665654636329873258772980638845949855028208701554782246279552486855487508112483290246028047195129868172480614158267709626933757203629092696422044306422384859873731726204613757354058933474957572130675593948534749981656871088183523714694688471065394358765968813001303580935912553680293286206421840743586834950846649016146826527840949687809501784219605511158511461754367381389530741984598712853922701863462941140225985303471380687394864100937297955367998812018939684613584018515310423407492121446713194560984700138736574173343270587547852607337780242321479102606710951506679292160902060455564964782238818501152524418916435474954321017396458488667683188989743280014469514845206221811203042546237387496735971442286091170684998161154000701972527774609702300074318374348905713896583302512238890771690724604021207618734099883937644364904455024621329082469337855396798367232526058711633039649235034817303168530517984960780456470791433603118308630878070136885219447090370820314089922436368680005233033353730331155968268380119311398340475890670120618876044100048281444152268986958575003462150277717400713433239866123082418105747516100723059612598009924075122843758244480702231746100198742560401977561237167890783861568776084040187292201461453109902608899594066040791697408391197970286488541181323654549605265498618958380460132202010802744311868145629743308743598482922228915529028293590725451418055474800054299814862325482005811943267393970202776168438074839724095861280047605794199378740991812583626354490695215578459403227859060891682716687914670487332813374510602503189900775076226807340733149225216902231957909253303291438889741056173805364914728915006505520468560267267832344815464578054101781506423245391291341140411044029567789106374451658258956879046006555352176830944905523263134085635673517396700630941648732951951102257757087313844681496089998362599096101120333771986949804779659032347805049440670241525491211926323782804269485486951008953167395741659358930907513886799469146243122977262697580142572425493978973218325368585920110781528479908065947324313147370582482028019556124305192332780992932211957150258413516072746483694041983431385399838218823857037132113993942585275273134127706405115169181182009202120499439393576952233028385577072384869374500080573674155730626656650477324025237759777471444856510849115564162423290829821976610451378493686073936212564796703500960996254515142360520167256140272243321006959601501024218145903975741189406377254932689983732080566125294485829752106000989066773970573056423541481227114493067321642154979640272501802143157305800290869817639916336111482993656867628123421188415760007346276987343081498214632203056178322015116311599311410900493060141913065732685774509492591790067456386437360859566030965579496689881364985280566392825046903299998087248318890181639536468065376059169500828457626988652420369866617420805041882542231450512938081719061347073355340974420634306227444742920689358906417724353584663902456562958377476350927365871422709140729824849045229896995684403493403768714699031030237312164257832017922295825622228512333590665946589354315390834157588523742329816288106659586340462110879013218089303916515186674428412497257168141043720132638318681487111499172329990037839913763780903986204979754024821206141235927880998474305489375854324086096616712376734871351958088605352724528827702894339565977597497393739179986430434633384840750525726104554900046556044770708156916452072383893795269725955077684530783347404357323085459013276276432249077913577549470116597359881305738819367834421291070900203322056921021736118469159011041073264411158081493125177391123683640556658679899621890454731570943653485429272656985028709360335379199934774142602256720878694995410659334410068171462430867959107073613857436738480423376443236782829483421578294587454942977109475048456843677914943151416725756718134834206185148435904998955287397088400980609137108592453937187862205510605149124288637409757516709423554907682228966925955603356171616887718943593082969539574954219216691802174633299411815430223657300889565823235713729720561676068697821024099421467259060232071786292686270448951233912263806978590263964169799249134469779340490220266822715087989229743731710194314843516265798315439528615677832384673150418591363575922775366111538104802037935932277691440821653219926730849332901221316083324954726400824411109382902232198701754282345795526851917235922399924089388404781827638664715165312415020056241639809109975442566092172360626507627336661606570996541600654880278985141308928790261377217206663631162000139306106287676336263714813998395229358466015361504770085599462103443980727898014787984956443715124456778065407869147582824513949951139445869189346796250747692858737904972201369171709889599495861996543227499309947897232485640351366728666394266058232677491693446341810047132604577687767963646689859653153639537537921931700582796502140350412146303021505930276862536823095634032003085745982075820281061677727850155355469841440078852755333176253316937639062582003506905486011750841746154175492832856516606368090243033926297932494816306384156204385544035592648238925096087746792191887334043414981189312665542053441233214978535889801539319203822640275764926474436216722177003704332115367008061950184871028011011202513393195977888479915574332576107847995483135584883588214031351915058867137288965443437454317154784865053678129929804529985466496734957490133427982423339388433989233598099701218972313493512737039345868675187665523418890472565556038837327014214355018752047177368851126590960753467434265826833935218803480474674992539018573431025664525466724063859940443802822589867693029913087960714265694977370373846111272241968449599070008502796174622866544707496754507606235550338842622487104735277622446327831355664565706649592851124626033902764830060720606821264337638901338421258627491076922347046486276226558676681738077541184295424850454828648318295335072286177242620512394713591552120662103358639923325269490655509933454801372273865066362105376215406973170485049473144853040929625428881363754230136195291042907141800387513803718642572429743127208839211575133346444889163589962507941770462220954530223351236878536727752778281642130912851393427470318619734981535120016012026097696231417393770228308911437176433306480261141474777711982045761505414627891569413381310225780098138382565808182608373695982936618474460340304020625176078011111647119373864577751610090263125673050387660433444914571216268341102395121509645455818964411487395888384639498834630047766824196067886938356415150489043484201267968130398557875337085455297296366627507481947975180005537373201060910508682897459513047351679176095394847912438668437653551488862261492931511546042558153325584982779865834828531024263386554639512311628587198308474237702946689207828226980785141338446844152753406485271832480995694757968551472529683053234691211892490651761981080487119834068319627787618068846355223625722613817158134704053369916159277123576768252576837277954129625620884912235178361665574014875175338932507567248645305584433086301700646058037169486178257588378700562624785218180592229062651551364282920366477387456025080298498294322717843976277601927221986999906116127417603795109892081971401850807467990917513261004529618607612592780130381854112567165162509988039480007113220483509420286402433494617694727352138555648631775222108109365509733591966144564197146041160084682856609872676978559666723835451506796635143826529829050854781811013075489687575981336814951083541818963027452216247368498279439911731726756254586277325718816438660300183231740276622317245649565436984832550924724687137980454853002328296066515130668864880055259651857340964232052981637158912457432664374200022391566291576356416459466973655839821027953522464843195748250546379627709076811632032938618002747073153596917672351634025020819799237719856865300063757737031179161539636964551849110850194383230368877575099383959345963608457050920203426882616214253984890075344529815717893997929374642849277630481850918654535989849653857924575895489538345792528501327451650111155127422048435319717203568009433249392231446971738920521381603358013713472850988812199959366126573333744526687825290852337201679322692480919529420355362137093124034948435287990796126783173888625431575890228499276625957216676322886409060886749322434835058927358574304500251036895559713850164041341001907249750253240221170019923784278822863136431634370628929101192610939633038276002390569385928830715602338496494924205855888440615641684203279421930229239439425425464442950910742429913671074099958604912086457988323961856381894020589739177232653333810063441685881934423678568729951037781528826576006313442706824659757299936332327239905469411130208785780097158065269253219600047104432761862222489834907522002657526041347663347299935152544029854749146532234640571081728754064516221078636927833826286135557610279537419340197578089264550142859635556944718714183638983081063584081908911822105259179553220775348182916475428807585085481428290525756001926603462329871780305580761013096607455916407736223883681785080721326481166327527234980890870352759317528437937497801695068152031609759975050128314474900738778429736501081265625219056374511283991097104172261067820690808621794952475701228358013926586049496073262381079570415866957686455476305638155612960065254913509296621850179360673614148421074324004557755438358878884509951429259090065600070131555251081322323058729913174347305282785441260561703159592869697711671223288188536102604609271244763832852863274306735206316458815285263703538678700424880255416909352700264543413379007599100217808378962280795223933480148055352840873223568869650158211255095373066440670806161507496694165451696678673260028195686495163928684098837358573822712220796776196802218958851102448586097808314388713623114692086513595051813995384986861208979577853120769620322412049132526564460420089553882454336704582286902899889594836871122218016412662893136928669587668560562742059015855533983231695810356481355511962648927657524176281566054974565219244920343706311574365650476689021423483212206896190543130723898196540918425562678448490129215445289877591910833555522849781928444690677530208931606251430002426026832536379432220335601338701412545110546791239433732605583280228424867640995621243743350636558694275281731774873670774781559240126349258951244819769906981000199778437722643818762454326255565965751408567092888229175950229434821357671339805105036690017364453707184734372224312597449244229326742186692881092549394882636324629325868230641952099777334905782853856446289880355756977476003145820470644885645129022184003470086397511485250827984616309244050898675676825722869764879053768048840946681835326096759913114416975711315566709415335041643456645598313663681161525806645111130333301101420553770146836262087151054405340575600358649647386916592214802120644114653640646530715282815606829192617131601154891020462604682210964382054043345674502044055385279314111231760467277804652264894272428255736192981664436864591886945399275768660516167768792996628768016528012304536772500926248872969868056209464737243130964586562845572083031343682406934398383565997216241831971944018799981354292543454564157034585083074625363482182884853410679251539442108882089807177381879632923797821683333591275144941234719284319150354440931598978944845481084940942494839070461721744073434216143039867453580369168869763850715883640717524232836130515367082530703649831510739613625242592627543668490134717765041590883148863589869429738469110194166805275015334477011771437278425854434414065321822811454885367898807450002148151558296696599392978511524800935826941567477329243166093923377201645765884188681271149390964915241302817638042439000731859104970050861434610795348461995755981959754419639056932493737228327823653289445300577882212694132140095924447999564984965777303296275606791693024990239733083838873536474814730723229764290082313445263166865995397880715306562357054657415736958902038819711137162195417594685959507308138654584472218448810191834797251148114347265977940177645309247598314811633299926949686443599568562807790929855390091823020790255063349828169803961603704722532439027299333744247890532691494147630201140311119979606642315447920470672122461981520725980076731426012887032216354487187561912437450745227867420332819071414525200998113481407906136439533846620349034785656841743885953071294130117188704196303864779449757535410167221271156530233021881760141788877836051371834075122713917114957002444975708342977161852429871772754162166928981025793764421268667860267901107801372200704665188235289366200402264437787637312167314289975383990982083177811635696623398188658178079737762223150843921460389035846625016402722316109253435077259020576819463341191313426964679450868698434483805829169909697115366504093013867803392740340538380499620627473941144254988827537146888586906409997026178524866100574828072023604218611616589429847470121527967016905776026703891451378504465242799858536392366334726244045500144125108826746788874050604109867413909383020746095974039746729375545693088799894606631847387911453517720950129968433326637918663497176102051405564786806839561842440093952482723470429668784447663708649771926600267642439601007598954073487332593756446979306147849771592350973567513495600217239664779460517807135206702517039203407671942357417388586816318997796926412056633035517302415054359410685817462493945609905320655546694434557840571781870380068770382767818678280371214078280205200107670356381966168307597025805568951884309632969965514686618328839353962021898867273760607285317026642262266456448046063571802956537496238772108980559923260311777156195112213339808596207629557955425831337713186524119192363552343386507179634184731185315520006664423384409344904933011170394449818990042039128784234977291485527911774512997427036146232752614414931499137497967060272548580531268911562397428182789653189789994310842030883524641282413787584428929539783273211269621584062204483693464753317708514116995199567896275440496130225274677158696335195823261551648367865322814858554419271497675752669339917964335834432747047916433454443206421587101957072030925800133773515742255834150903710057290340408295187192233957013148301073772065183807651843172652265919167856129152159244502021474562604097899705373832000497788744033429825848596908834725280458908940324575242312396361296887520464125288272370744505351874171808189456773841686180591649767629380982347552023616648465275952889455428104915829380753743867893690849193479125307818825658765434270407999400544833255386987191552428802034432870440396669715032583347532379779517152310836904469887664991966625439774777965711064430645619093373749488826729105551916699642433001773123619334860394412666577075143154069906774921668130824370224834449656224203885133524045630476973939627932271948270304352414806876323009518950500621049958914841487678515778111838820733263558276701493697720999414202942916710763114311009478827077837427750779150712026068196752094485888747139105323769054530812166675034722139581125844867914592458545914234138681146761010649431326179739398893402802529867586974715287865638499317551673374772576615524583340898817414867859020500807593404010341836035120158934970819060023740336903564625586617429584374130890816389154878486123377759822597366844992206354910961918030213839457373287858101088510949883149022952191969477167949859571129255587390962802636577560235902607065232179900683410568792012259718440856168678707057656396047968233468239573186706994553853789647115683373015164501517435171050331272791940499700900715749101931700293452444282616204694219121418758180119029588179095768636106702119326657946033327681085177922586882013637017704599267311372562306238158025511428153270815081890189482672925887233717110705538657912300008431323864574039046801177365973588935372379418725028880772230065637161937055002510853777817016544776143511096638042119850440690174681167654459358173203828496493663249378578846948709890000403289290596814972712082697968859657077749820031045392978339512780867003554762063473500771592272888660477773531296785630518060034652526364003649843209664106708487834190906734983868244737460239337586474579690318336193540391566204716862727644385270295291140445262892241346600603631830513618598676726315880811530374892583394095228600058944445338665343924748302947435368090262994434434928459737769184974879962433617178938546589729587231663929679729863034249526830818264220854237737875795972520432960519009466247832887295368736886257078743128296741165183039275386097262153312806916316336721399051174211440746726753231875492914893825528045871158988934322753513938438952294752999577768636111723034368707985739792741381697151146397435929062170868881427569237250113680596937532515896798914279819162992031280399831049335413021220729259633835103485267174658296142386399224357284197557296682075655465310902296250065814257963589442993600748595797397241702702075269843207935502048468926240439686922318111687593833174686218811255095986437000382263452552437188546837946067473497079636869746585762893352437373773477326461875924848837730983312898945450194193168624661744981127501105466286628579524136264189797189272088467710316702980549435594677242683995898348082265702266316731351706903993186572444351878600710617878740599310482100923496291953393488148073036516159531806040440498353825061566861480983140395520633675261296916484708847292797295635637977359674228180448336261503078329044400249663111675382349056036279607525009151834162876047894327417644077369018221876845948152706163253137045208983500289207780624281794700646757991725486500516527692021549067965743357575261293815065288956886283303159723369390664112137118048479985514610564886076347836695147731812436896518976925803724083344851357193810331517284905841665584204629331898220122700559126669903426906611397921428174250690194309779986923662404329074679939373197440503391080352422794450867399504811104583769373146650670661600491472162588747731434555053483929310559898957538577490084649669860362716886442219957776655966169322641480185389804003279610904078388519804895061600139560495368061834647699991387042328867423906044820135267836379341258713901343765807678604205994472485633126000541123696655670148815259586016201562146520593900439872123823738829513569127869739774099751561720187354779294564308180498238657362430336294105773725496381016540464722409945224157121231012461220489331462622615611903840799678814578785907621366437323236360020104815768315546559584743474956884335403251058517277450719000717658839489975478051519732542622757826487887184568023296523789274225046242124662446347917076535210011656897520158171360186565743416293353957856185381528359316322191833482876016030614829070963255149270590778937406472212704938802508262210914331798017020268910843756161082337356585139436743966453941161910311772560174660320279649384684089334445394709228738134833830103225277829680086090151999155995212432013764517013585991871471141765972028301844852527477691063278785626238837721144084960880990706217729270761193575919897680987951050407443029272792790937059676510776070627994179192067150368189573795942304542746601343627558084290242186263783925827967413471536770310890321466524377265229746649329437391041676689415375365300777633550421314515846755335417973319071130795712351102236273332224281831984180187883064778014041663777225971734156498120742737751365457926298043327672270088811458939863133850456802190872720618798972377505411739177792088031862559214588618857149962241433001298370238928510582956042377486834157429328559957288464851698511047430977305269166623920498851212221776680199205614075331144050997372940734448920037522092804753660127503768746220258978147217234482561529993348895971970449746397193420565987953280695743986535547391564751726426867515812504610799148221766943166948415396425316538168580791007099527267027922148336920546588844427899878992910287544501269816386191648114974747281665494018273156436333021940785416983712789099127906057936745932119611364902077018774991776281732620617301663809574959495454358130236939340756538322433339369253864403288149138246202127567632331951780026977464167839404236398998270946438608360347965687031829780836438595795133621357732325243429117429718613791524001503414176967192710690863715153086174760104589090963557203728843836234120618109512157970254209186121320937220863450591680799794682810634388266573395420739269922375311453609284406389202695239593697576823806998588379099133539859254912371722695442120035554292659316027843248865870774437328209512531275883902440808633685594227038485317626307080787093261480002814838647814892831646827074527878222493964166353379962568466359934959585615939835200292757136169208901954647761379775632483122350981166156433234608653255070711626813993292340252620233672577082612083803616985653552754529060191130874629289781154249529872214051668382747905675426078075166342426914975571897043676863809010395722343452028691414959639108645994461522020761463403763245861105265865159081295286868044214241703537323265622788831020466284712372861504265155211589356931782924380327990357301045615924856819958231921658226174004395725540128914034952258187629675220181673506822610254683504100917344159131548390360705090311315761923022308574723541069641417767876688094949808077064088790093774207155349505677338265033862021662015750864569605459779988735572715496048169228792499878865909578528201606139404937135855140441698255046275726466564633086578719932409644244268627114821533968020482735337096782382376243330367415479039334254547141432779700074023880359336649786649877783412357437445879837846997883142927475772703176565452542556742762079761855236628827701840598749078604437560507268010909659340966015736697469126512825258756004206020856237538368292752273214578547807584777758426597467967186716100482275885603875568186749823398885877237861039530327412298879160824784154842886946955311415739635292256808816624737277172771203429924700954706277534956255087653781089570184993542224079081530969751456490340584679429319086341267537527718015275655668737712002639423845718445625319506503506122910999307525367771819758711666001596401665980216000592018002189991551846293097803654741076758063882785546014003626251289215928427994419022244787970393709600952804313710082281663566102920471632524474281280060349559140987555537642463429344958925527423370721596186563061620167176355648021891874476139763572141876904827147189046377654815130855361839163228363146105777182479698213585214321949526461541235983288789557585087715062527314157884574403906809338680288205111321803961789439293061405275279026128280912085387079964524036387083557006303593829694726267548064590364285566791558702184621600532351935277584487153781433351371876123685972296864494426612346340190300634367316758858970229017252948711794336634852427691434329266422676668551040110692107338974385032552475925938673357262049387972871332479978330429488489348068499470705154919163238101518649965638766390881537752712141442119164376326647763030425601860806864346638772994815105596783378488747526125893740330109671553225824505016568377231116487725776268559375291338357505739664012397847324839047960901468014922173311822054151195890430659091824071048303994572404662134572888288777137232602411741573458192147691191456710190648469774691342111052359186984917232481828277631645343133271161992042977258602642482038760869735126627904660100410826383872412740804517487965178942905082699319083379172341276511583390860105127550913194048996730588676568435711312141722802636253881825335203259681284144655926073895147189492843591780403243975527476376483865847304778535635916234582680545522735158777691420811673542944604899166134035081261196719227822653754781633491141910567196390111479936528932789680858481117733746397841521269878001029688783974698207881010980617435402494950767305493256194911986934636107681000606997050329089020877190857525158812138106726586533407881658911510513819140822581241930449381221067565855508685659013519091655309985639350206762923238676961816547137771249547835402080896592721249203906106177461679429162506093123666380207892013542036748417630316543345402973397501526370236274227862839773202695743031347704161714508657531170692227601302824544935559113808730411578597084652617585090351964497339186150653403220715859941982419548575149963889946405680447143319999880262136113348254844328363010350884250040634766892213487408437893756753320593800949119453383315646875650072985281280825602783297121890708531347270345869714042506745285388694364561920016049172420504812236741073800519967439974211769878464218350176198919898670505959581679380499307688584579705199114403950757734077240763243373110200906537946396617386498477072440218031543032820638803031581392831202405983170451534462267559150262076067465079774946218930938490486268719718256101409282664013764795888638604448282362377744463908398240822374267499687249901090602028986196491999825596747345289844946848960778581707751007420867097210008975445382648398291363013017701403543223901122818661569419112821390540164667024280247071151261734803308617097334058474228967425394760226815124841087886777434716583979574075777358019870467100838802198627026341136782112417387439581744176071849710374996040091809990253514140394617285925251498530810046306690227916335742925410076088220145802555851977220605253133939788712319896042137907468275296237196442465945877315921767580860938919178445144693772522849336035112415847798307986253773256132383365116914324933178702827779891668090456141157616427029716945795502307005373402703409394492567821035791410676327567854283249112795222240746307567051037920759871732904910625637865557835640080698039386767027048119608628275006659472805782451310546480792377433798630921603415501618383497481693334715769888440089753239059082600044621310594148471011896227119777524544837038470428525889535713205457678487582566508773600535485619022264832721468999193896218438324700870011527147654511267519878106030245636052704703545691490524531851693852770153942244759559329804668741741480499282673809602196735102682163972042850514497207974898125840010788049386439399985617797922706489769654009244209215544279421524210820458042446217425970359642863512465785188358938984492259355922297509974624958652866331487554969227230138103958046909946030104454708079571570290140064321700782488164181617538621194746728042861443251797833500386778242153838858272766894772871761681729500644430724888683493287686390397246908805156244275425218866343487971780613314989180022800357984836543015520651615653878632188521954430838157175681452678951291765850125763533619297032818927504195354689499164624437722313907081059008880153395754785732101304060382064840950105496316708615093326864575241736244707576337675806260588961889423266019671876535531569680449249993062136178674921001140447589097657538797698010790601096115121263046663678829224300689139940340335761624993423852906149795452701247087167134548235001630996139529340915287656002943725319600553295020214645522486074686914767287448553545825311051628211107395451453939470395113712764455908411242300681801595571476636382740839404006208768888171148564963681258444860617774725501089985369776390699090832738409114182775468508410648683017195743735495310674990522342658411004131404098810988353208397815893479929892626955057781779814002931270094774918057651219581073497224692746048980277173459168201193601835266322965442582053455576156553142297242325831565167548965819807861083773091959524188892082271157775082966784808247480082854713826627507693916412369242207826090272539071741499420709388597611853469119955869303802296328430408630169032853289231729115006507007328514882627444173972606112317723817339104292047091317854001963501186228106121126790461015970086477089110560886455727624862366964455835373457290934217515098746793696030201272731677329350716961074642346732173258252738124746534032313414961263938907085487375745135512459376619347068953443978281553254658247726077110598374173258369494239676435500288918700261193392665260991007184675221928984062700625669524870188054269907594482168668904350276366170645866542255347983477186457446349739690216256674931597857450253349041747586271489294362595097674657397412801314558241503885190799357967541749461841152096495839045862544285086070507719909998783716811372000002552578939479718975976766752732111555267390189358363876990641666457208337351929677489220642013963592844856588691357856762614564728854458512215994431972880992897109830931492580811017786859918280811616102743247813820875668147142240561210834402071832314358884784666160779724139871807493641470974625561827742156094072142820817145495169426836196831481384209193399932619697108550421630305845443562631902182321277416373015252114310974393894041581579488532035771234587646257928550752626289981983378672684602828906859265542589694336692282730277282207242962049134252566379148668046137035981722248356467631075441929847249301074809650983417307664145505292936729108686603816574900887110759090755254079465545922672031563298578195785892728083055870203363051707385548465749664790288365983558739426423356251410634582117474164383186385559227636582671082241641190911803729665656966987714507414736288661055319524126853024978581275780435417874361258511182367687038459214961809407192735435294388239467025704312971479464573081874891731578163137081904208820836230826604829469704087460900964558789890403277656125344688364660135273820189699094236621148728171262609139914172786934126578151164180291993768626045664366429240896305151357323285675308085439129188183718423909759542373770461604063294676144146163949530707434378006406024742367399119116851128400434842308002977851071770662950129670381405382500503444498556572301314886679082106910465808872407400530019939567944355640145441799349781667660950801977857807599112646022316371389118125808650857093482277178452008564348283072637909254282644609220477988228272853193828919689385077614993489785036241105292046174920700276759199679632759365270814169741476366818820037690221918830206432559828245464397022621401139602050318381828156366693111867479156362756370879777479605600049803890590094603750627770895420361500150162463944874551208370179437720010089581415467342704226753027466046312070843811007683181001206078822673025632994164758296691350417846617259780059389624139410123019222387162300134329779854024354505508818909451154392360791775041300285110588188155571464947064583108924808585658116437649090103554282200249656832779965380316114000807005770622802790871693726181815239519101656879029815973697979986395089141920614496139004529861877873974221308599533704964746812518690773768749138344381334505561749134076867078705532027316933580714571514624728492105557757908488926461429006122593080732481194171088459302965336196369140813073471683953680563546617078678080751066479979493766184361135298910782646797774089775437444075761435784713863475590523210127360612846332474668396134057320130825221090591175310811903975855977184745844406974467126857835721683899337901112575463331089053410935728302075474475383755414319832541882753750435248243695727763925957957517999946031549269663226820905607320346450036376675707809013194306991650111315654950266138529769129775185405536299578604992594548144369937723986848257391157425950685531099059381398271555017174061538631184234840602200447216121895207240786074408964066949941630242296391761438505077728771563752232034227423346597556696664412187313490824458622764132399208358834370539621132004537661645867093699308842450180991160851165370715690340853693560899060441447179971718387799887175351633432805506230281983017592335309917647421433891942771136199046664663591397185288984934295580531189175511395976642212847050769077574884308944194651507345816600170242756144812464176046908717578980632630066042912717512026604758069747729958851709505725337174740100985302110251979096700683435580227166434111682878211573633412745084552217476092770805811204063428042050269435624101991334786112262433927020057412646430328340197488660783287115606104700803584278955569332215128787030637445860254140276902597348561259577276935847624546424307511614142842158504767780760589503590046417991280953686800777776839423831092073262954055558551214243269666366256184186642515331373265788214293571808150105042910499596971802310193935734894440947393802247919170439823304973527440035112209483345144548210681523886082242767516417838572389311801978461783665305600166474089055510387527221869700912459817690467159993971100550091168772454117758283773860859429153641387495715585968731641053170953348637959672367082753588483098052325498563074249219989868774803959888391506324759610104480632848285759201430900625643904697091377920252981610666772791089598204094420822715887716598347863613424848747005583630205946758614861134621348853148191837250720994794057714595235071215017724341889824608926993423695255858360348999033241931685851274333404954817522848966865221418662790732854646103997088494457493344370806850276553705174129258974192514676902512131998152465692243610545719618156552997512589915157674306785241354992264604667281715893724299458398971693727187131174098802364978587960489381219732183059468946689899619895602178571540359713681005191367152913374406231553575505085166011143637439387302464482252552812475728274503623054715803147441436360765491791734016484643047948837869725447399821916382365078792511788010207744738062329984310731024961302646518521219412855980569897174119592733897223722601319186513047049665938197072025902843299391157901698914037605386907003495618269955399156819123288228644389725479209839847133815361576164088056070343348479745297449572709903333752755973167814304760086447479127798975323973829934258943759746059620139191212907363629945068375286654261046983252267380094930462261615930252033562719645871384006869402668952658300447621891199315084645355128418176360474837587487098608009833843812262486490880045171330854822091604347840895189487914948720358049184050904167815230788019401032259476464047812209730712255281591295631918169060484892286134927329773274454472384341630151495503219354474855069684342087244822922255708294717384038950660796439941721621576260376299581338213016594296673643154373006727842580898919502754762210127077989283760178591658405920780940088173492052668268177935452302100809681631382978427488688948876759231088183339608158154356938694419519158931275424992813131480784309039126306581162524587320675789758444715421841466299271814398182347942304580394437437197126128608727816346054718565408430578181752315781570790521274216877646604529404955885107588288515600807396522570171990931505578128273720932789673479975316144040996749424339160461274916231608778047083402292579607464039264435031819388126876171163910808116480727472773268289156047716109050212735597068361510645937773859020250600365254298446471530732300833767093094695572980303512792299465660226421865145083041256723863040760802570735326503041003434510580610866430465781336828672127408561238027916180991898043141250343491736585295545638400451214147722210491036331408043310713288569423073371277778112691753071805118090984793603602656187334960411743062799500646771816047911337506979509280142480287243292740870463244457045845166532645590684781751814406790819049840080066156382169408612281697862310420398208688469458267567162405430288119293429288402860846316426275777342214123421609859800604518317630426213658364917646945451428470276548672999513307279576644230848700601482538652296098904852149150218371051906170079901836003712068037463135637902146523057826475921553073905770021280046560510520848495742512793081879793535433729294237599700267702440164069170595246087537832021817069770227897836180729368573158355644103688270508630500183221803162521896602684425403132565923121986601581561908844267066146314103806600900547510602384063877561828295720078802550934069957936122537901738028221396858291901865041192520371581069762000438204980506402351507952762776166946288376136847288181162937488631393501270849426047813826053533847933762777910141509387789531792514739892235531827470315114824372085577015754471489991556255718874075201652157666103215444668923072289094338944065842070770472136041898079148069529551660599220217345612126735139666988828864151645181409384185132469137623555667294430858679430504175840737225440767569612807829686896877242596447523333837330633969643056185293935927353776577906810004597152462499696945298792513394903338037573772428983281576051814202385054042272591074389880602401462655146815945683344951830067758045281452504606604817362630497020690841916793057004030633408793375739461571144066021873695461720722754082206211390278800986409166188236560443552238878765163631590443759163627120671873659778524383560636825603714458775103676486532421851636064238080468512303276974076156314332073483811388292082611172713857301902008904556583383907423877691192587871580025958479404513373801741267744409225069369999718200401654273286021172871982048528261860813858193160914758372581706729752246752660268098975955337190018802662221917314161195938517468738883507947875216003487346710811744785426771528007561284757795193157289831170336828862204956974672431561184672829573993125318440178050486850202045073456272538294622290162817473653935848764433595099588873674772821739295381919393377605796879183023294236848188623702578879326246059412504636987627664617736961485966769940873877150318390121284260287974146242104504451169082517587863902482683695655007317038721574705619690676172043232918658925134986339291776611195867971332909822423513244980664078909378684686381589545235676689793067183691879465461286590655932625988194859890412329854016488545770076282418376328237830820233569212248233086198226093398968232796917869388436576219953919389824202734121066683211782973069128427670829764920672532127209017351218559363797127879065784337944426011457500134990374956086414367863378537624971477439838962206658280970795428093166272346246991832730347571811558495454523019363819826130741937136906885911312857682836456472658476374974456910272160837502156457873769436140830885996062583003604164419544177526299782716599362105285790566540966685235300273641567925109312436571029047037888738331166616762552758719529569556440699806206917013050685203010452213174483683507799804107457689411718794180312193588666453095281523043539109569954408534570745210848319144846020896072656500630577588422532222443899930253816407414551936062034281765425305669997842829751588524278286941184935186791982751725705576288308381070986273745795742002933734967402884257402578438367079693768217172461501800585640254627785651191680511033582422506201898149703573610408418422936936367571228314176900289238373173736307867450983047571194416605046679670033039979252663778049010648572283790852985652461638178722458185155303168320169212387529350774811882725104602574846810584764356523830800903751101630913283052079133235043688491632779502638659890396437688979793266684731547912122750113519720257015560992419062319183797819168854104877272910630558741012495066778180106058845499658661617624330787274673176585428231313660644813712638422288576291277386557871711552517492119087611813385148847450999475578251276616415879651493173777957650587447238580609382846649745810507031429718815345147405780729835595821308671484626475759249811282195316722299856468457663097567476964847436670599892545934872338653603054931357651952852429983700437209929980776618995678492237337842007208478235057616140347124114046718033406421269169209544572100046019351261836960104469331316621557260048347482532280658504356259370750760762920568583009885201767644295523767302634696169134302806174883915674442119819252379293618555123289825513799711075998252740303503488741225719869203420721803704951206308403014118199446691879324569825738751118813105228336662318762991887638902213585957300282816778056519431839233145996857008480172493418779563315591426813093412748872244079038604518468385286624576697771554802058921322100105836436540199168665083043891578222493515314220516732574172417418666288204081234329809919739738092181811161060252681475853762014101045172264562914714838028902737521229479331365737383162837426300718908628473541482713028692194457336486804310611342686149805781952006495912562196632326316779015043007305044229090824134415414172011934913688362797082261968868745175526536083070951748196971514307388866957417872993718974997310622954650286114891078135365390537360704054424280496977739397897831075731146246512311873095545931656244298904881881973783504457701174694403539984195685226515883011576420847121141159664076503898513032189148705727369497278078939422821638559297373619190780750589113490022652348795308384644432026791890254986790230169891055583403659246459784751586813035306467061951909899994105681694823633827409790304170467967768637935844700646973390752881283824413539944547230581819070825051442805508656176402762309682894013412022029622171929471265443407877370625773864242146822300332591259019377950072898778682861437537883051426521780508789367842883046322369659622249777212615960650293709096396839971017834725962905185580989082476865090353834472053273088341591106489681313723656886672893167705571853099435566651639667130570844082437433115492172872955764332707844928483516655026020636962281150378045794079896057913961535985523553238577162977539938594029512465468987499772818427840506443080596341466233737147394719621288999861117521500138757196234113102595886410729479108215168960923052318492704094922555901684598604704414793215089332048664407395800008171648913322374507897892921606143000022420129408320236859203338794766747112471930348768544661253042763646496379847721847550349211671952106097133140188589942643752089390317287239391075891915974515545545127707076068044812524733100303307564990524731242344839654880916943483181996036892733714572515763713530786830664556579335266356520681469370061777016033666544476843303613313452437939268754878440350029977996421398138658796941229761172382038086511729303168295832488781402152554321044417318460038690388866905884908888667283519821643459468823151861360312552655283897872409056665538350104348354134982057651600007348700202576469661899435226818329017283147117531808335620126940588448192798328341561453809262035647625206715644643776884288399808128791898185496298664169152364679506840363442964740803248849482053227341979894808349210820304311255914082314666931652095514563784939660625520130896571683514020013757259973667889765528416665309935981564054257609904100197829654714246634654557946454535808287485833323422146015612820505640420756494272781867328064286751778272360518174623292702695401398078981044965941232207185823797679460895892303339398881332322135584123898272886063837715297758963444732414931851147023210006935067929116321095362034734599484618769962091759960783624274184383504986935093019269817541899179440847403995733849390414326414369620509256748086884779899534318865973571518808275599527680707623588229073891343193604587113820826303841320090587289296964656575230901588493606005585399319935057812936774978429020046344344115305370209405109132373263088623881021589906075365873481293064498587576972202127622211110326496484983218828637414957018012043107266946088972520936455461661783639291328547787780796637175311047319695259141897677510216596251454052090202851410285409795790042507610371590866569527288548261908446720297607168319405552050178333322441060524348093081772209281325017618905289389206116398363972690819431303996535968778433331208920740019551909259841060806385714469286001596380870104629077433596674362070401972505208775183397628388190023871922171831489195274947890702519142471791850209671173763325605456972447894643015416714446997864401982138253509336822557144081524098534124146479853630283162858882607806767247440907925277208007072118261892463514961025303888909897708203628017737426978813565513476713834860319789103549638893155414040918953959046498580022087465352845103318808630101631711071906393672508519983715713268067544067343896731124090444605052920223724627595600764330134021679090559728034908673497995116881084098724727235552186907733825814991929913506275598303958402066302062243437138245902809045692698554537432237105687490465967173488916975697278628997299553906140442800665566399055497514588439928714026764843816010985169349390673742370580385460456323845728424555794895800145171505291809185368299369755921835609259929530816223518037609947544527292840606299145607655839008625327224208814949445368974915555268184903823302274352741309348187983005232163712770950528623999796836951739706822749381438682508932464562795988846337876468782926107144342007975126732828468224430900541833099182956874124905504354899635157127734851940844165186757302642351578911295480881109773594008932502024700285918660600227274875242499914323121493184227617267093397112755036702484316787297174172205359360079577164978312082811178463905137543193834583858008639190421410540677736495314026798206872068231738852412772570191695122858288964480559562749787587028177686060689810238049894349073280281349658648561438929614892524236847266608986936436354325781631906901785585704660137306071773934675996470199690047908928367457136514175518636135305310625391788689513923198636494783061790841283906543584837388669494390567552425510656908356590900859854199713470230961838418221429714687485127669979402572737868197860788333572677507273164857981107362254368614223000035692271333442265066303647665633697159073184669465445535432428619899150213833307342815438335308104715064296906055077339423704943873972032891393589292718155629926044042048085583575682406779405787421781041728940341520189902148105811105512835472056346067044183946963952520920981988072079648321457047710454638049846271380896062721717927206687325561285290282355149402072451010359502014893003198782536854358633876661193074159075399329602361863238225721113237214034978028196022433771956673861923119634630181695166259070610452703769535261499614539354441393935464675266343323293868799753903840449025050261622104491100304804358570264639686799310084757626903381000758126908716328066796587124537613042124261532626082689634035436032469785613266819329900022929717917080212669675482753916798496284357615795168894328357654146468625684763928532456563927992455959171232593678374787095434580705654127833210535947104774068922823841861283403156157412642930675589350834645275015946896989286533110215534571354904050726727102372269279568939345411655380328886314081752662123969118523356574767072218898346485694875403655780801045469059243216850503847374674234141927212920732855587987691535053891672569855454600096569256650902286606028635956089118480935440025215326425603458001553263654661958706853720231002303948396867689523425882399555207621235666091548108993511738820561207748254326296831387677828179950957341951768456751923294285279784036662913955767176539363442458173515336377894924258956452025148637512770512257876764212390589119113249463009856335753101793694958429431651353570846345108858029736231994861942440923164939343983038273405375631354200880400444319446006836022102769494867996311663163456089181567593564761436482938152661495023420585810260521696803817270693232028249471619017094534572640781150900881387759700981629183295379625362215462056591223144691760719115004692358431036647500359350474859267150223938664352723608760116877833443858572165560256682275413697835445042614302594824538023389608735696952530296474940671600484211326714783180771352113602938448935680270077189656995799704308721503309737493328766080150818628131171760179366273359941812509808515297034786203993686193545364582289017702644255354235031296948507771287840049167880278011632075501227862299118854113101657733080666436164519484341091118184133348022200796624404749919899751998911217039001056439878643823480258449678794657326310017995481057731834516571914398980770825141581755189728057486061762921125807768537399432964371318468329518329913555193880535009671814771195312876918013573589535656739751586723151210177672025679380242832946702826200747066673765234318516633928355819936931135468081995048916138836746968368175509661788702519913627716010243610160321732241647018346058234345212209772274742427624537020035743455326275845230921494543221453873125071535805199227508967996475807882652381793212563522399164156848579280187094477267705881170859861564837851316675862275404398424084506740876752246104238307011836250254361880987058263504155039545462983893587012422538276656110371927553250186525119853413363430083663123737490015814953457530373358709190569741337061310643253409034336161792894178448470522875329644441849450467819979317962108158697119572021861553282195521616804421124214794031154502127908361049560767333531142187212765029836094839292431604719563275693657385014510207300704354607978330133100601307083339382783487346419373531810217438600586250000784775857996538668983988207153254154575564958970161982407755138280087941509692869216827695384646493141184495561191933535508494039176297345967479735046617023362402108695723406255551196125435294294548130696134573333428149793078115361039121636525694864998432079670297840147073876658759910352763326017314480960486692736162643413907646163450007298920086675961353587392290909495098585602267630851427810825503129775833301860170957011606296797850543594650842944579303501039122061779426660510230451151455132936072924490071961042233643975601666243932827392429139759207098976254282386962474772842031437783761315868141480928230232031781856669243193683392869058481001327856466009994590714202533899708467387939610716136221051404167372578806261183670629759197232143081018102741342392719186638514266400589393641477891710382258368385284227627152925751716342875168519902354953032670962708476724678508856066241149879678289700000834736640279576449223287161395813205777787502816264734851184402511920929213660186864538222493716893313419396785204909605071478964910809199659265434213119575389358269149369740235342226357960392349936183407927732526484604384535177487762312863093826735531912978566016270344851906653180176968171859760208993711288835920298329547319119237530936715474678448972751830161707254254895404734174326539175193299387399174974853316257503579838126527547125941824727521712708351975557334037024875612481678800426121744416777379428863594808324863062179964396193313692851274211632821903427063307081355036188186017249192419138328239669408340731842982201929680543086510532841205128864874607586819649143281948191597689050771136421920098484464068684077316841467686813783386807041100833257090758599436804796942823276418856737339918196579896578047828208373208343061905398869550251990627844924580621111974550404406948954759474934409406487606522495745432801212991124312040718976870058227179820642429098410206245085706169416163497337078118761196641594125276212002583328279619334342134650742595131907948844083134426289271419422309663897221892558790323874343870686794640851812544043847668584713123999601190869502182526524641603681490010365605648128495494378713928855432404405007713695227498220477948969084190890147076654540480488740399210257930885633225105681057630044999157251849478891728222970063427430952243747283046420121546738454260314242852526126469574825317170610494265388067305333753163375197552758626859394355425427894354016685860946476654303497518873311846159675440294562076012026308990860465681336619704807041848258771838647791138968445317705218938233444195575577750460647182594765411973805121134602295771557172728225235352632062396859538246542862126866909721542796243036453265801791591603994132765038057004196181715173531127882444924341803415163583285031098962680432034124975170860920364069571239841902889848679406755608311836789363161149181121819356531481399017197753597231542097554283751546456221603349098004323549495758642930799602866385617990342725828020368494620684785074900559459618717272843327127377774435825402217387142444524729815349817215302044929137083573247433941532140199716545488843855647639892985106562268869676751624465156552718049029486551073925017720103690729372418818588785007574644954277572344522696713347916984938240337216967623740156807495657141422039043727900608790991884494545037023745398905206894890024104042811181343805249589590862192090742575199422413699093355493870868864813635331567177948040677736599878695912845106904649652684499907294126672303100306463325175744620926018474469168233923684696616475251406550186613245387611088084362255986604742311930656497169197078415310931307820035599065300391187511787191572369221588974589334700551531604009324094636502036138819523293891753362866374285852904171422025355587625808127655319934587727757657624604084692644255980966711427628009348564996109895645875773781888055033310700479786051773996856484766201623214919270215396980202266265996258623459533849225540997321446982874151651138875457108398712564829441114625292801133927677566122554613378378369665308948096785172697680876371463514083122581353124376709405248904829845382653571935431969801368163763890088319346425410425012520502182862177612679236403595453139666579472411342438359668423178041652328530208913204071170958114851439643333912634718316203886506604306123546415069368800434659335361891385445272266962949244507430255304037353612900493519990121651694441166702463362277704813017995265556567047303382696035374006375053839468557553581311950252335616040047997422224909503835077458644123545104464558443629299429461584203596025188079107851297548722603031963510288477057577690096591540395482932787827508678320781735698613437873888129145440458645271498648831644656982928118490151109610799481244757793674962440159261970326625336922286682004060526233541031455753519155203300013610048875893598054832097897101143235532366608021696811380115059990864974448742910311398227259317909577733229199536972880602599707314447620323508279152998420207604443134629666797132274399652435716749048792242401394409142820485317179896190746530767723812164849725273687435022277956807603004086779464236818280673079239014078388929185686994922655921480400637872016526364268392416411301241189978257115055618217107594160197349770902420544460149827583304648484384966412430673994047394874392552716028269598109489527685556934181684491214494002219497749010435926828701881236755131274367822603995644971284709739434235952388379883646890449915597870516872023174790999491033407308610926470117384161540842710408101347415668523322296156754748898256197251592731847897788495224907711258537307915990905356219063773531704967168680202644846482611490844590841359384772435656287054012332357220225614132832195930487924686668676270896862593311283321468766364454388719183397849367915742058512501514986167414697093480565276344501582218708144191615786139182412958316093172223237465782789363951772656247333674632311645304002289963449854724697096093529001378558707512051817158202526327700074974515297899264516904084821240194291887272015450519736948558304435328678802742036273153738249756435897285792191560161548664060905533209595262239238277330280291228089445345227992357112109359371536250769928988984705128204639012215227595531126160887959692296698158077582438708818463560297347678166056819222178331109462212491136532312830409259317634683614151041045869639462603141894736637587269069254212953450595626710033075316834391305681712867921519986102099459134050537099883533829623281033755857468217209941969493645020535675448476264836305677909875367032396034839583734927363622499387859754015696506594960163273007662683780260443179281996984941305950187697604598094144697257820917827314157635975224322284813029564724588170103024233624603351272067647304627445953004035539855628421375742860359634915465785565072212966917125467326988613583917363582967179263007830291904008852836049852210247596170991798738262664421767058051427376145703297588207448992465391245913076308909588568495102991408411715858077196825695410771722184831147283461007437452302152921969157553225518258583614210592783682439304068811397988859118966755376644185189240811453256496423362639405617715479208396549467738265749204356359907453965870458757771398116349640817421583769890215960103184116959913077175362036183362349551519151529845397933073243293986641424639172607234502913304759841641747435822370439450596966937574964686697124635676338033888640139810671128718387545246902849118636375429306047314676808673498152710238407347521774465739347643722791469627062647657503690566540414086892185156996409238459417335378047603982674313678344710310048904397750758674510615636526332950721941115556230825194954317302901719606586877243104475155699572660688327565919447360719509364202423338582409407337269445680170941386634368129608020351425663174949441662955809326066777825917709498865897325799703493623146143232152698397720653273005137106662579604288320370985618626607004158914779714655558250265338722366955001453716392874031161570914815081420079555995663316738034418316301813057217987505683557223198913783000060607477985205088292473921550719808987687755023360214942983682166470087613631923861869635108343672315659651721327502627690290160485409442762039585336236526088775960038441689239755069768523185781275369158717474165031749311066799793475251182079813479977163584949997396128415662571730670940629735357949304548302389756440741657358157874197285009726652786991505560655965975234808960203631219990776317043686444382119658408081902664312794068149055904064286442489060183301471829464894895123620199109970050402540049147355909505121798354630177178381135848648649327465948890349388386191844715786165829012222937889448992236721380274954820606310324171456044269539651736818856960111061484865236786839690882145011894731709548011795959513605000207656414681040684813380122771578554505435018004037082977698350892122516564379231147913085313726341580664059704760897651108789194952046388421234458897354522232480088207786045635480821132506385922833518887889846518028723754622051695378608568031766127498097229959701313205924666916960087292139012939470491579649424862098372742944135818631660032871838146136386288257396887860124235658147047515530327414703058992745952829537584135967423115998453363162928971774238610346331584554394486018715525160971634612669463467563331231378813172648052970039733082239206304978326730845468913865293199241386047245355571340610036860414995046120844673707305624241398578336777034158297147447207228898338491082777969959011886397257698145708887173135137065635085378699826056301793218590219149276118219750418277601666754843232339813481744704058275428499691492311811494549760034801046709757664526928442402051472197412174694312766594203623738158269136176155159370309163205182609989206614064466497398064405135486222989138411119519223925917697808564642888035988848500653748078336070355889176466045180084541138218329152433831125006797860486233604148370097135476705262303009405887194356294857542840873684237009597207688814905411676453976788178133634874696655530775659525705115641184792671479061253886378144624765182471950008931460085802502104290603847505966447013231360641206577426470739910513012229706354041607603293082194758190082608983107085218854123006496379421500984831928592915070951933312219230534237179047084556747676906972198343937626483259818249435311928590559638991456281184297424080219085243873920142420467917217470774259783859530310090259387808774409717676397002141666287488980331001673712039699867320722908640461721978687771072999931410480158783714386488226405882753511579074092571613958312258292170471479378375198469883252819937083136372244405068943818446386576131292561944644401242121422881039497905783288688252116458244891687577577275857326146241597133352836443331336901426549664511878316791871804781512093240776306454832604148494189053953074474548711408776821131373489131365307983455934603416961937481563442420358242818958339508680009361966048692758495877789524391427077553912186582486132577963339124953779727623555010680628047786088967500483176069911316075487147580614535464731274933601370095642293196168891349955254176708938063502018486560445234349552762569177504976835407165525943946144588309890035195103327071693077454891545100070235942551013741988668619205952227262023636579592820179859437638249526666951920095185413150829339072076381694314251858980248301889548374258334802831748290685400183602304207546706291404683484370449458661942833124472668768419190848432302144803615241030641519317973151451242944361201620950682080436054530784479459994233476887929888884194990594857031788693357413901704989039971511793369191804392894077001510569968418389716019272299203991655261043343602762190725073314623342720323101576999107350940984313930822625402798794039236505265292172919286140303936315094419822219968579950427995218889736397779198380944949428431115962875116760272795284682090273932415780373958928638230273697711864204475324572218621330638746747603579998646960709999301314172541305235985478433572614626343130527482776377927623042775437308149559255460167702825761341866311012764145096230023751463661736309423146390095510132638952997905657147118310994676495166072611028092322513755116244714593088509979351672911871918975428995717098153210306285549742323573877972483029348744183257636808151932906631603076392149946592901262431945968761233080028346761809526534249026538362718322759793570570606263886025581940684187686040922883556867026051500291908275406591164152162257425086652980623012588118395602916233098665617304003013828709229938557631995294328761838332190567830331739551801681959754022133109603510090290607280319365817035069637277667796893384107339271716480001210824931405707598907166111123793147656904306928791053263094799180632925126811000356822045136739870034938956646487809257418161005207581322782374115154152782257810980326872481059355209990457053193892210095875242623982748421863851255523812634076048100145621478883112659625028877223001202948093800626126803317291319547504765213288644124320732800421841414441422445062850481201333237471239010073961050221191830009975320993482745654564967638947208572204355104833837691985808174468991945869434930298188525441861790272124593702962634208923480883532909854505311128894223644332301593865543183130692356829932472025456855688576828426200635371580693708647458865248117431268836256380335750833225922094805215256776756033393988196585384156651405144757823463205117131318111993992794040460918133678460785742057813445262279543123173507042131395916154199095796410593914837490930427382653283396235479000977035561924370949564825904358773519743459266253442157637265461160412240764686697762785128347628939119999152135300008915629488173453992933793707713136926349642697755647627207085648119082363419148912063897377061818776367989514186526271043912940480187108805991835204402845627852149325750953199238446031072702101887838399435380957624732218681960211732660622279359345857728121750348425241265976689304719587896457374685235752701674642783086751262826675359610737821831678138449635539185712532305921960797816367959236528139468516276672366114643980184810302656856803423431612073162646622486029919337811991623170401038462131527368092752964152315219782990571261448221717638028055432770776361108633014768906174681663851723352577520506884540465893013062680778701190412548841120671015492150184062793342001226105163236493911106883223845623850905409077656536746504458529358224312272533163778526332607853060713314547888414090734939690530038132878286780512395224557145124742533751547656103962051225320941466168552082184039269561785048729646557671248556362666529267642196347170944810984885464934794087302414431937848276367160162668361638699701335226397780608308258839088985169906971289615753329317535879034113740887329521924469520558010348253106287110645627165312874179711564641090667231501137473342689111921391348819740204538970309496961080557782976146094125668082883831377724443053741211518175778713026954896883829838695236915944751260042983216271431866689204324685699662405308852877447029348965200969269913502569985132918051209903591556893385907084955817238551173610108379557004944953655098404633213006698982655349501445272251136324624629474596873196039767224247738885509904776949794749455351871857467634624781500522588582773444805095467380414640414739404731723850416903162749329738393416002379705766610781918823726178018205962318465845055344065751583539852337710420035979684573281480493975329966650156285132510035285421092080473072633354209961929503764108137220508167415806287071239188934942737502303382003416493044195461837952935463967731886695056268645400749827825755469989497286607096328954295632342030486182766149563185788430096121725043704905331243896533749121701542206602917892548883150797478401828589608787608697777625612400948412638124631423090135677068255678616292430042369011857306680605993134221757684458688287498487646038924159967832574161860158750301401122669014453568239109500694111761998852803945851216806777881228780875042753362205219523566324830264041731158256188916831477299671046740806674582990302771696075061332868968041168676432417395197652065533385758815395875735072867613596106970106569988614672106730886691552864343763536914861712137462341544051710512782270659416851256452382001584257848949614853645434829261107083278340749358035342227738967520919465113006261087069967740887995088467807331791678440809731385095994491351409295332285507160235311564347144808224551196716635236513908585073766789834726927619302882041626784093924244988401969951352635963232917855900007741827956777405497273476377207753162844840459383114970263703868492485355246693952071264033458655396308168057747036201922465309428129806682879322429929510221715229626385021720263859260350275688552776566487790463847999270496581339690839740832528220121285182698064302000594313412393588066342303122861373640614103294430382191797847413113136432816056237219014802889454516365932213084253753665062476886803163341048278941095243626839645093193295336768097017737455768211182657686224627079302321457920711771077421044053769614927090457033435483784914828926495498105700556345350808935076020329403882899098588732653311956896066483131245446309786603066566192198441959888287904198516245002245619733670850647609377599780853239797787888259074089398312467015126561091674381599803769548549404016758903102279664136405880653279208897164452815032867977136846204887469722006627693776771734414120644915827293926283534949625131374223901064220838939905797515186837109909796177004480638469066433521719269146959587277947522094006148221735087835154368670506030867415295997832642031360811576220807343744672666188844430419901617438523125258102701283553044736643936855218080789799123105203799960838243208845188723100651207215514321315035031532804728594150147136424648634952314084346243872081103051285835662255256264947106316020742924713217987587874328415455379501263925662336924087301103233943832168906702266452871171438610871429762116272935101426491552647488853433028057079088040145810789415954834437260170667396265020260215031342881449994913042320712574534804273092235386374189772444669249836312548129193712290840470041677583828341392946104034017830626853253398950878625097543962761652290679560278780222062185603856577117504675090340966398815686697729300204347281171232212961697663701164364923320465670604716401349017233822847601673542103477796339315615488029402391205202448935260943423746373568380127421842341004364341423410062836436330214453915828330629568766876653599281579541081697866156028189972187194412274027896189786912620065454769906109792346322537787240538067561636944046586086951781676700852992716245825834454501538080418998794492625682988824875800301072857506758354231971786545901394822087640740009484398853059131072018426897245171361933603484798493364494621067797652548565435093719809886956971349994720209107057666779018877383533229552512531546607814726505227530365537342907766526284708080769880342130571613317067326142939183913367156253385979665892343865211435818430665863722666614153863354017743122435375032850390224950184070167652478998397919405097357729318431612763234397595588282133900078426014134876980305237221317152668759386424117092620023048175160897986854947129267044551986275066199439685329425790668751793443847158220240080527966895003784106318556499447792396741360563639426941587441178736813464238922923605139647218095516478134290633505480715656422710208347004785274859943703206370202740481855088663867947209033573821147661349751224313117684113037866614733886172543890304008423408850768478029000491440923655608154183849356505632811805498872056457318760787558492215686276394648726692792731120443319388124498742429669167155380118863996052955669811666982000547215383655977558646569970256876895531649033142795770869483653672163935393696249725051106138825224832495262830189438123196389782598885169921315979107983585754808053005164908836675552197560411519690733896025170513298997302738481127342987376988435249868939968636705646081113791438590264110531367170328316703823512230167409737254818809949288617315895936419586120018570223844919589462655072930831342601978488128942190360482747627211277071770406507887028709365269626057575105712946761740728311239757348416085847209423057796920574899157979242071479310095206010371715164944380999131704011155460223147608785248108050879662780467167484368272759730504871628955873673475225791437194890493090016286906585423790242330758127872029905451678975167016521893118127042892645167560553532607387878546495551438663452904242612947810809291955354836370636125419269960254980250424049916351244814592469128585856117460979238330494593195455992057151041698526295903328777275623995342553023426968112799491625581804626951248744088864493859894446617229573301530916876521646123405512742687459173066217209036847629917069946136027083390873932465956113115760930705531629422987869526189527006978175172796383576019718200155778157632057087863475970453932485016265253645381537518255081995012818069362773546285941937691045723831904124686855730868565102395216272355017882285774951989070517012208341519929870581186352380670252241863714015363291575023480266148683811561375151963472836773807684044742194671404715545155428672861056542628701835973343411261240291924725391366638954919065092474153621379814347477918881536361551269610355028124530905571744995377292713869245800868859708011166222587078025735439434385835753765323350372562886476338971341413479585185579456947716001203111560572159147817824434322570805535738148701417379727437849695843436555706621104051270472275328610229803956083742104419161098584767064040390697038426829026428531911839066791379133352267021085387024283201268534742134531271439359327613747384889307995211527127125720845541387441927054939542840083783388938231316514002177108036780097539162815222009977672224240279650904747488435991740877368712057663547680731400066687596655322213828844039406826506321707974678149915689558375255400885006052150190280491225439478975255436320485507773435640489656177457421104193308620076678286947926954581810407216699337561499753659744940094812658034605614271560475867831388274513360697750936607109358263642112757390144022967413903732677891378983409567036510671052845068343881550587702943065690651807447644772809337220553985427831098636346397233546296018429961689698890047962505604935224874763663819830801637042149679072285073294016171002541644955960656861887389769668472120214820183677178163343846551294263215737332856603925000555429411420447257769623642172559860005281957917536510286021005619361949611689256199865210047399956278740919841311278650009888643630318812002968335131686367322118371760835056405250478740603538173685844797681537691912984969145019859132685362526584272003324508295616495848623814026737379832516020954483012479715189631769156935776923341373438157329683699653334727233030794804640858708226988805000284389715830235979808193845360548497080170148206546213076061892184888242629323077011726952578552571199737907815740368974354095770669770745862632078843521630942836843559481364951151258165003098349727548493779696954950705288386446912209813960022675407110189568154913902138190027950551396275389222437478029147081413899979006496203614383820857413476885626500828727520286939325473970546885033793593358793281848825172439294252816651516778714527956702905775004511799016812857010862223886986942305067453923072681946481258914068729578796619444324560269041634546486052506347715966090970946271763653726380594652670846315163903911001347457123934110301644693611584493240747230898320625780263266055446450561532680098475524902561804170963187526506504364981272117342516511913961166607432740818924898810829400564576775631794053703900613077979679416807502679571049556859784296827323975776602455333228401905251077652842794286439822869744266906846676157689535322814202300002533485179912186762820655943806372222963213388062238808081313779784031572050046069422201663140480779419845647677940994911924160798730164191089721066043764343333719643311022398481866779805701566646818948553867560388814390888566182439143405412103929953097027646173887859038735148183139011979567536519225423116241613626291458491657493590837310548832166529559666901929467023396566224275205715208870243286221459647579645396160670983367075422027842116015982195537951988737522146276512609393395321421124852979020684201891706337109610427372318258433889140459358323980178019756312738952306368226049360310300594266514021996718846014587432410969819874936522452309246895734953273580652494582806369803857104170945162323195250041698854645314317888097818995781149560941545990091834195900185549718015104022375488158337141913333641530501450623159199715659859463069886884336250589919544041893278618829846987978582727338656830952612247313593582536556409420930748441207034016883469691507552136427682576388542507194326409066420289313511878418907574414947684443948370181614469613740078111651001074150327088010744187546466297813245730537244942480390174595789623363993425373596093896729410114535196791306002831085362417189322694362844757326199458211397125774821319880231196919939452901323712231238754843122746870022240260291478433238199192248252322996304807772922220951961072109208596079198554962550504507853164139165639643422375780830852166210473460060162528036188593543811021315906111726583558004613584391723165454727932076506956717843518459923635456361244422549690920416401229230273629716173117677389602881860131456835751712503765778637892214123657779521401068636801537219220228906073928922505973497795750470208128116960522563063038005681405263768574837460492510069138484915068752622087630654594255688775223969154102330239673607105351195565660640674213838810467834173713609232158383657195408113537231587391272237303778379669245219475539720448450287290002490602112747407773680037779429899640686629055186238775425932625058471298363526384442949300129754358967761261946565564187107326253891096871533234578756959907535206611189344622911742223828021965786446739391596388673140496070334226124366775187456726333974514929687913954311970274840614245227140019839863584891996635497557118995900904462304842109661118008250082985783688884523862510049778718622558677166693654608212824501013093175405099539891038683470855992672074579435645052253917454140410309009492500414786310281671537020425258037839674851610554791452699304455621498677155645361809462601298603684111414058848228597333116401013727878528918735929822874153134964577883360114720622930584654721354217673189971885539434488172662404143301588276479438177277043863309593286903570946280171306173686375199927636298490338606786248535719164589251062519910327171127796373320042841814869818998944869129459425920688140123318409990742752086222465877015676832723743445594082185390091119848888953956746828677277942780720374747730253171389378087141825191562471212055001118395285456008484518797275691710233517625689540406627818993825045963147237852325865445226270164296211833197483766200385254896017947125563645893474557119288171730781462229924397897232201169127440422321483869240846097441414619687552855572336964653071076494710466458430624055643471411495410105950676966664708143865409085154253920616937000574174119874723921595920655864118222039684210006622766283261162150842328977072288737793557955522744547055649576992014737277205058596661980558588821352011519457640972733454597764294455872809035196664874825543921413722814984141684836149664941391728043634936873686981147182093938014500744005663405601361891611763983603730455750538034021821613316714593484945654050773936418087551459769259537711646216346537585179059413397403094981520956250636879417992318855846331162875298665965443127868445569349515988388562761879069527834916919430062075332185571711059380995852795135420342879712561664650227931958384511492938414106200285468121779537586085371282139319614527676142158742085833660110569374722994518528944866289009553263300028258773693658570650623290891972754616678507029605270512412569255647645280365695041639209934349742932386905297079724535412437740328868301226274560296171367822457112926833186538448164220672272230734912044171846909633579000057571420173183235138587199124963846457762000518900390843641025858300666964817646631327195556264948437864125740618399871419509724602364175735471986742248128447067806485222808382898107591450931934608061776772426823727847126951150152875652846629317907465352455281092621677159785702063545114888591521179116092981642077649902290029757337077042887793872080162292986675495339655992863170696141988687659925022577143067618883083937374313762311184251383774837049281078919451470330711270166551821586424474605536111848810087527694250900498235704630345417040632633851046845765490387642637616961993396333562395318943444675540085926353308302249868900123737495085311126641146514810022132046161205511619863381274620323618535209745766259691823051478426939925525543025984586733334597890467250445940015116042993146565069875417867827125184414940521035917998111433006002708970261573564588333804553099300402506083192690923676782575460056390362866154274065791384829965927693595792361370116991020228096968835917740668629495554410132459330679399376951415237591311314490161110165482693732532320430474699489041707758978736893641019571903103444350990759376125172123431303194663967840318529559415664707516686750750618894084320968512970214101229994917378177883611510578456094083229059145699190253584144902678131913069619701856239673450435388291362483716221074482563676810748487309821680672797119572501059394011664644892051879509758542612703808850886505133918446891362486563686383373101955082400217610686013478566694756075547364435019565125426308925104619486524444930982940432663067627660039417173038174854133048679037368270594273984180356093870190376898804042427834491016075141187115464315414962072337909272862986238936272438713175627262229335678527370758511535779200011201896195402736811257742594173402189748417326575297350595370598051931915249597140036225093089288560839731525538320921750903766315154235777697045446000351993765743599824096120398872632261837138920316867496964986750306993735424182403111020617342585211104501862631142662438851031934801176572041527140076532446880176291924572813018569937990182622447412021777457511757059805257403531466062819943555081635629280563511211659339583599553119137184080758122383496755040089700372297344896847788842964083660173940052121080825826912533653023802237754084734634785656389011034770556527269928359290975662649818464893760865508498258874439753974424466330839885358185565692138555739994473841733780201681961555701916008992352447691827029298054802885732311445805904047610648310555981524340241208468918062337541379473148594667148069353646351944370944350560310875291928145967716814526109933127723419623491991959770647278224817827280070299619065600526457545403639488090111035569998149998867720745336843172611984336553546642535461435969832382428071312698033044890821577109256315222036579509329361158540571122300440886666913322685950421439733292689698825795266778852453782759337774605421953233122889585812570014915646414795486865217669128351318647248445013650224415498342369039099391095793849840050046376715849047063813302848949126035986089197369558493656869181513357542397100546271973815083610900353943509129952341780506486368332209519838613205086936238909958466663724565082234072169417256512464355818512196553638805166183237766336235223436193113643755435997513907787070252255775505877162104531370852942719523166100509138355723340749319905132197673441063975782220256751011077900673174152192055108131385205696177892354727219479083095293033058979938947043464256923661654171794558889052157873624773379615560051348684997082692418782050930643604031452929787579801909156243893057357124944950566500095462692658114867165130224393149360665875358203648768238287100917590262813020123800529231801699397584843027438083982402185291310606145470415599810116458791355692016330047502974480076008368411525615894265403832006846983767593148778007643901992787216031277581590067184129972009249560315237878954325462544467790442958602004312436280437662974058244031235850869429408412709402749891338612629473075185287123785425100634290855016012751867641901995640187309805619245471575273896600948561919888307046476863679281034853085396862133010525628807310528570090361560790522742143913091454291258260602610509769875760257934428072136089602773896956675880777702311178736674659637631044856223792431821411102907360475737327099024050891610850112566685033291698799439254654851117468282950468392108011429161256687230745677608490920196453500917371189533562668084772679146701769401887855887645524871835565091229733487870835169186176022477528238859487513210519055840516352397894024346649619615665187095970847564978850363393263912742233730099616697167418261886759974643004086175989941597875729070044707302038958709013833108084502536276417265073921269540593816762926017319160612391082564215264479316062054873417680223127829953817875671163377947401843561856662305074334557055279401320978851182909625274069977658182607166201607442169055455928672440995220936691291865557390288334625403060833426284929629295891226487604986668453844115002819259142574521281385684937905271844497132726181726395568975565340314143467086130382124630974127646864220973309592444418850340873279385966560881503543564893852237626309240152602034854277001610327622318952323286898402511339350758022209254456672697094274006341579654961850601981822527824584339208660253736367180278637109478548146344668948510294127301167842155464703841635525097517970719623151346737273238800836264323452791405139604957385236787212402904601483624434122537446979461455553670204846233788475749469849490406674088718444286436050798631252298905922893852848278519201878724497547218264396127665691611004427491716717220649215605680594663939651107127659594198490367698183331371059448731448882258138585085850108139829667415043053696691946538936476267778751736622444193601418020158069793873290885390943502557034977362911271901154430615222880682836442865458295723100795378603710218634966007238953295520601641805258253252864876915166716744429243456781050534289874599899075759965460253788362667164350006391496994027836100384410338809009217884281427034696631540872145979829451123871198040025074729650795005502913422366230113477441630850710151512684643400694378804049569310864546768285156892129746152371229032196076910958058397415174429521452602920195393432528885381942639353433016132588347571476466958103083919173723444692085769598875194156749244679121710307557262777885477257403002036109528362121581040540954991369385401705893618920310535964289364251271938203619120094893418006083375157013940435731327387190707941183811368841747138487526154731503193037002279160128916177800188196137170618703405258127793190847131786003062777675177460892287553728227232796313448806380100202475668898020350661991439531949176616681400984948986548174621790433397144336790887216097454438559326011018705620399000704321738495988732682185119498679148678704048685590819878999049089210810091722053537740973676781655467779123730175566946792283824913936613865500671271678052490287445636254973924153606390926658047947371350580958459866027012571115376173666891862415673475508681199915802781154231106094963810069809131938080253116397968167549080756160935834820882967291070864997472701174921295500636166181532305696610729924638439421737612389733903069291281744808858905235758622396750507666037934252647822597861714204848634770253166010649820469416993618333092781083320677611572267363571836260605754283081137826200730226915713854444094288060547818888660106112599913085263778746232770891792931584114721973634771437819376432390376054233317902680019176050189237255548589957515399442435017082736109082122717083299316409422408079573693978931358372272485251990928543046225838478821948506012142804558401046074875667137312820325799741332344777162744570937004349634667929419218833632186947992850366431534282219379131111429468424262550781484287947576821281316697359120707849175887081737967867713236017676727816915502295978707525041955091878722444845714228518604731874077317341667237992853007148451617166832053574535298288943913389343314913278605381842096463893149887694464836716509666933973603683775880788068877838059909068455847424099186644225211801487062253285910889251745667390554163852826623870919667992955295583392459728650042702251296432103307161588405956436236288881037535176275809888927840005198538662110325854298422708994099718093880649468671979890720964734141163737319510916824964886736032631906017911768072628744531258919184149507138075491454159608135277873524827187318858109714606152186962387658304895492531062949864670053488151158632369151332179555034032100623969813795767247839277864676840238075432440826720157258912905822465751454231533006521880889931479380635659820556199616000327021569113942617776072020156411930070805460691002920602070360210098711912241185834729973740767992240985633441008822617763010344395901567188105556751339118884625272094069939705930394551761443816189766039676889730707611250236985801910470632468409915389168200573678085329099481495553709775669153318558074072141071509570618175359712940752004717253959614233560548322163669987198722065089188909743443598110944749718813246226065811788948572956132120137902018386771099872182697590089535596515704363083637020096419902063056145105430148035060925209029741789510104703321288247747748134716255213975862913552545605431888595319704220937812068681525465624632795465686138590124917934492866583840761614339768887592244212990517811784067038708586468628678707985702056837215300250489681768374521544587484713967650044835341446648925380963611299759881390284650424281160546004707758240422547497417497596758645967936514954538413593907214322805238654406054753380121000236115603881016446995864508177596890520874891129770702360448867220036994964833471696324956643177991371997795927615393130719909513238442297910619835655408248457640217371782901907351782145714988190742648387267885798132845182741702488664119990566651901144669956633690357470145648635396801899113191946792917650851248251896629301522129862238492664683585961001564956780889089015732314003624243614454900428429611617838419182913744038963113204843396293896336070042834647712366317152413826745530600356937265181133402380482427978921527855771576304791741375030913494473487819421049927507534270584071997879703998912949571385490204574738477029586182380762546065618084310405764372346035199216158398530168121126863758198982678654117160219529541394878746176287636348584671803299010571071887969618453741403051988470609777826549387925244337328745949774676630057341801193103069917430897256137842760693154274092706876579354596591779717637956024348130215350785085441041367063939599994486401100576409717063430642138159901348535584596842092820994655827931677950051463905364552732105066775227031322340266592631271500173596859086658503450292475618893268950024202809725780435506993830728200402687925768112650243986124572527509125732653832772146211413675355998946088327545135947173561577529475133819237906496161963779998420869957245305952752455233216810206554255078700001099700690660503582074998354490063247616650451108086421779746946684647911167283327290185965680758757487097397110869602153217403477303182479067579313368246135331048205753533753030951404533723969782045230875548122843092003845055624264209072898511907220539300222856504459632375540641021739872036650160883487483065629958859179761456429865652970967597746619672678985738319436857795406690722394250684882461843104055862166953004600509580504808200087263520009788349826192216871398390998686870327254498890778018594093614989208128941228147654241541530911075792823867891343139496623412946159922865537773731375314628432994649675220986238277988311741464025152349579326256662953694085197891403567094900042281213426778479397059851837694084612872576496283793706951505920633683518291560704273887531522511711792393912343779697944049259252141443624989384276087661168436659788676098796599565606916749576615928479381799932870986885817030392124489171630828271588026313922727100174785661902652780372040597046645390528378575678510206617221342901963864208403807783507424453653601045306558493344545691742633267215322222330853583882313591465763391663394926347216208003975228291931755725143644375801609429270706551958178367937566131022237402909936692731379030480321439552850150966285911496121813167214133288119089986115241146339963764674627160835783998920916100970458969775819359716756885056643404061057684662560871233838945557443373345663139259114846863798335816111836465049652171337692676607787033562933284421284893450920481018284508884042514139755864943363957241119846788012894068453268298719838106733659922555762222187043316292444926819113556348204474997309687610504652669999132646766596014115522704534709322886929886391235814925153561006048228984466595293772993293331488293858958806948830401190907487858101500756056510230874211964620995318048809595669692166004311037529405262238905457294373089404950389409932386036632443605603552664535400657991580213649862129602545527736630527874602851349817861521821406443206939308036601737063703104835434266131544704619640592033129358727881466014899957661230187389900955802465663432767234282109974746136059511190038844679076658642332525638345186120671385330109081369590959571957527109890094393885062927167744625333062765061947680721245621970434726234486089415246890613601920033733918430495245400593884175224298466298069511381974763460749487184838734130205700869959232240955241686652859634820284950949167333520673552157297670243455879656154244162388500185679279781446900307785121891517154494365111386428237947357376867892746146399615112420716119957707346230755174434596989386140929452430492915664814383570771982421414837302189856112288124697372333407789833383057105373269760785767534632490304128038533082927886652201722979661301068780704699250457693836705513157028741565193858977221741596795068250345477868640911685194245749518389346960163093766965930822721665163082841049082661123797454645476205650773954444946689037596957041384224981148028803367217797450634311196361031392939883994537282391076555788098522086661668294077156920213212969422657528123142218755578834622757809176487162683053868401876391350026002852361432262408617728517303061945269129086937951532438066263514067493464306121120778134914057008183897994001710647570017415783330086908223517446189750563055407771417090853179697584276785146580102835599612544673880744251681555301088096888995785298878067336452015350323529111250731345017182541761785932293144906440283957580694950476680243531261406212603659000759202025708444842416848787689178507375845911651898615219253606380473752594409173036287364215281751944978785086864160021618973127351000378424702888781732155268688045921886892326773015468832936256970604658974972878244664129375016508652133277283683370538987086302392629942425939244954024902017530273608241305095612480334440969052617022464400114648733720959065962472332664897413012514834821780540340689065206309913241259382445942885030257269151520388243459424086932158375089970710450008435361249685756628359325424708509067022422641841962560372439463957238082117101901739044510414873170099631155354421219407443502261653077811823058136710030875192051621266277928958801499068647548005662348201672908330985123129116870989141738455728853790981232023206559371443970391822872048837368824146459212038005270277788730393212287923919045824490362333647839788662261740742026672178080142301906482550006397387678061584732447397423048566691038868692525273846501423855447460378497986244464983174989448970321413976710268167929331494698298542230826616141196144980289872610948218177583592464565148283680476256199593663338914616644387608128925133162802812418530297283918515194494627183778714250202218463023774696958704880105283012590940075440254254900650600351606713282805919160011671388113888607872693747206883110990329898487228228422981005999577946724471913524650110815176531433410113704945435035644281878129252003932177723056374603270584933870324913900741874170369033495826061529017831921543163824568236673543609629858670029173678185264899818772178748149202992217821218423820954072525743938123935273895164120319091007225395248955596420006638753646192680047797195014213112675874636612063120343234723957418526716403897437238839716918159104034062009415859765541129005293092259672630606657958779698853950676288581163329135054150353253700444781179896444220998779952084231208429183226793099585520457891592324810448601424250756542124569323597704611055857404894755768089915911680483812757528995895110488552546003251152298599403936060391643227798346915447662742405129639751464814671458867545438538878241975868743896257162683883345178713863006630690549703299605017696317983112055241125913067349894229893099104411440955717912105150252714140150570866228472782688421136050484728239783700853771999120249369415573691611202432362329078521353281489532479024101451491178839882117332827209247707518466267786552872373247965010553714871144308446529553907220841233756228789843756079672029429787556311506995393429695319097623330954944740587101918153377520628639265276898042964298581503614852220909230835922991544968861158214927687706438050451226405650117450693123964959983861581559947505903010732473982346965729062349905154132243611926311039855549948785221866096043689320928715635751768620427407406168682587899570060124540426162547753897278471077001324756946522774078829091655462918463201153931024969893912579196835132590432873569397665769689450400842749435508500093005923220782599606503385520024635218163873733424132903512104316360798190323697223603800661232773945919744525375223032194314512167783627034735131698927339730075026975487338375236401298257665108613266620004728163075505665048298550685587157696607244781166399241421562145000386866650810409916863502817432727413667150532252902360329111212799024904942313491137847142508543903544295112800200840797458309560427871311753895861026729259362810930045408120791380121104326195391151860375430789950660761150000793422081156734681171243437370244629469701270145857633033620720957943223679600643189290859995770623240407259224883416161237374784525993266669160980004063625958510660880286625533887096488345033786616852310083471749602224692526653558538340637011884137716909237319112682973576252196989293111696707141645192620633917506879814581326310412569023860272928817499094930973319454257494201496275987057623692975874699783648378481914799110113115056229852849118060947010471923802325869919491527617089267780840127727209077527095182561891397139329205736433472204247772924052047646968894998101540522298063287287090872341067314665965604357309307706158569338985284106379420580864871424679694372996437273234561045549288943411963972073530069619640082001607242888708126565445395071084059679307905104908393970988111141245701067545283283333246460759251678737381924238563073946570426682841230008299709278072237044970000573528467836879700551056929997408474275171629090866836631496315604773359917943262558735451269823082270713569374158609131257882396328933226448220633177149276900282510898915006089081780834795518003686751113168715817747703750097015892202198630595488623711457486600885046842592016127603026597134162443728006734645691481693453563161025879344255616792049339026228238974981783772327412999280336736918111993173885973325309805733672691215718742389556176733884485598964382529072119049507210054587325112987134399449796283326255362292146886833206550943499086389558629298364910103234799871462521424945857463527776423832256154837192778810549805140521877537799004112791388062628976197994247724082263375570038684435981785277499833649671112448762202611443970363595815983868099764366338765931451916615482375716307303872892737306577937419493033826343140838321761692671610331645807688107498938403491779997238327177331689122838559564898711209311022311063941204471324488893481253869026443644952035020330117775595776593020985715039330228528728446081583410939432754971245608624951707130193485179606176943254390884774432620303173718364028005523757716413183175272906313856569366356969564485857321537214776242748711673165341740057100276060059674803270005724873068499241059160218319049414741511565307351934938253078520001281008157723789415614751972328088927625762426878364573791739775576778284303252788666642559666281337458016433245051965676380142334715693008633028086143532561742011475592390845210759036968653872777231740149619259709416334561081947874593191997881635969180964551054263292390095920772488522798689976853624830417944097891259883643043060488467659377785378007828762707058401022005185614181429985731764736939327097170113827575966120123526973368985843827732823144647615908644918103359065971512800201336956468661566063448006832708461531405870767316411720144290109267810079102691569370947096999220002701439128695462135919858149825876187312880295182427131600630560771782579928737674062480428167991620070881304120045921194281590802433201628053938295218757889406191504580865260391580985416285353460449001331029499892021310776511332316993249436253863171656642280424186879836671737405427108649589488601817088317180089022202830727854108197837004684307364282322348856358629519304737246753566113197723745026422297337773758065706778786366615704661977361028179406519932134652813766232639558522515659501681020709055517397824441266069985401287409692311559835882848042885606930962860032627381726150537453792291472697225462383165926084396254453646581447917117623943899201036042016193726748865271540288187741661087629712277339516084462921087963961879328331624472916884855615480735516869829044710981916853666711386373964581271661481562456452580130134769494392469985253387733868015135435084554397563165073465819907645962635842657161034772914171221952466678699662731954291321012138799851306395034585353990476771450115639690634348291408396387793888980244244517138046938948437146599680274858625368583706608304258335014943143951128562940337334495899843322186377924739646723255756935943367165820183178509049722251497839534209072092273937468415742763563999787564245498358492300356635039546671423344574637831164506568007193185349639817967693335756927959112306800336459210469681823182372783088297027839112052695727813917709584238792997370718079603999310806237791939678369743334681155875714674772087655473468852439752805428076701097320043695717928294918688290532527250661665655735440812737159060372219644884015969624094342255069620854194947166333767240742570411442027404015390299963937954104014895679947043925570089350566257046846924524882116300655239280666143054769358149764503252040083560901447549099894532248356419284355214252105432592560496149347911059348675922450451537715824139741306878358279094902878371682892247010726840695952355712026285131565046098785194504175040767186463231472824724402952517476262945201007940469672122194166124086050577537101500073582285090230839669647255687338974501064326206036361705948897864772722207529594917472642466696425878109215590265936064624802158601769321507530554695404867657137006800620640702102918178445585754528649407270795793179771200314806388866364349714425227112878568052885053468778656827504204502489127234843513002774490110536472113591146377273803337811060910827836833593751241597217996419246586104170440173523641527949838298815233110262473475853157586777039344850048397693552135201532351645359079931297141038904080460160771182365553957286350407188924002418236341986270190548883487711210143524444679059544059220928206673679422308500718977125590982289003840355015728254806313161233965297705986028714589503504151043951853881378892075137099362475178721349688017445771574219503184858830000490648309962223909452172346258122687248949341534480992154532570528335005187260196176533434616264339546693884743836293635389913096068416909297564645652125672895791313571785744728524122605857058009704581851772331549007290069742805336685632340458340172914754223982669670672255014163552037211517824251565402507126054473104944475441318048253759429764280388326352048265405201528816626458782343830492156403723656735638845895894171983944633388839432562890539934111217220730658212499941962900440810686960290966261682063764760815691998114911431371749584856249499978796445648460732488742360906054967111601283738278540586871433521361438444496812911186534106943340101354419094046429179358771827389730260893484536545746862254091731224894065112559891678281745585117616013982900899704823841633636882946068437864617603902765643194018667425151772913794903092466122326193777833719303471795235601637034689286942973050870934592937600139560872803086090339813051457280331762725317247391600112862733725176888708091641578970072637102697676560971665012732676958938834488309163969342464440400404453539135526388037960096512895097657331761085576334602455961981315213250541815882806924236436277268800640535617463479317073281401360706159124656951994790508117390955620646964837447311069558067646607594755402948537693293355227666476106741812977401474808689533038027282843725061367881128489527454945148403396426514578285397203681736203168201801823806582898200756282722336627300126352879098266470672484407743908061051792642608199056179720701370447456020598500541715332955574400826016931873739289133626374138496499984113975058808954194644613060003716309897068241213888749803801892744086584794557180509835743033775262889974685608397869536744766461978189978117792839080235666332458893919319036591010326766329762445283898188401683619648145266926586655545996067578760757153449357600333514634812050345935610577480115174617812204311981330213403370481360135185525063406555703438966538236471675793817599097617626404809461006687324718207812750215227257720831845135288796601791462752771397282299316221222496549096251547411498477580514783555960699755033442325150879568556651351148383362090591544303981372925390799126911457809952752776175215454170296415392181308206631128568197504172945554081963241288967906029269017571121534169277445661864389667016665888588473230675657805424856297937148331681108943589708133966904073436730691172210801106223594494425252669078563596101499047881098428155345298853684164567683988962332469878009548148970071967078673043590101033877836843462862050045289067051868811135721891627303630837473333348952670496322291587766420356590283461943654226322109287526809464148677494487957438656142896501115015760666242780181799369855494673268598870724307783141867000355653768625311371857066820455722907150897092469175300421902524505807611631940785078630075650493390212547850141551511419088430574161840073137621266754192874891047242318126053892759171210058019210408648760219421351582281580146363471111805644316506844873551209212638607268320453956032286137638938216700942353299340451749581963248329239621086242002471468514415157822475935080347886987510038850739760359074861073954031479117643736707171586546135079754138467312853232424507870613475488464575695865290500304844583428237341728142106150098308722203226957229129956861145820303738121874948322987898067196052317795066150560752553101277252310870591176000683808402578033656970482867598795884429375164851181202113117776130771710524469275858285333090422172464130995977453705142998557126386224659862258634958058539096538857588155862044368028069429207824683196422275283345418324332476276514630291350320882197525506182109323860726123215207927642013839423442812577566251280601334057205096092358054322912984969124595647882270931486981135304005440181701578770436864337267019768945318795999323557177219897479353531283706287959747672411226738639901413510171764753905103776214325484725200391345608743024789737317349248219849909444967638155880062806675328138740787888222178798750942741591873993454576890757753260698956472210906201339984399950325968904436673842134558073077137720053949211253423951638511255101862109962203135925804087557355680890032835119869802129391167516471046001611290852150128998327231184112872161500072073174376269719408630761167317077070349129055456906556779071684283225696492249832849042100612010110236230437424663978714651580628157314005811332188931240733986563075433568385090150563508412605500581051292103320537653509854061790977795892824526761342419826736798313073938241595552976088674916500923785080387043360681730012453891619602435458510759184834518735785448662193297264283727384526744510562065822408621060643733039243746199248955092614492919422462335209169827492989395649688555224512147564716339971630235315556109476013986806839562374430388742024720936462958858570226386460768904208337251182384295650201679408352548991556129249213946233724310551506047148143437344595695922674575570434601226443579203854254405783309863404364973316630462668519963323627510689833593055227715564526555695883243978137826261416375049512341720698652325687940336241708279678553257750745018947211380848304048867617797370522512030357557357371740302417174909181097909906462909290758866408906162083861772276049182805764443374951037217334434673858970863246140964446637262618421994489349172962998341842535071351029533992614213727276604848143851143156810716476594416284569705595845708405684179841164595211950222339217399869433900920800551299726412984239281925425813946553068855815416757410191890902566388598563382787713371183933238531298851826772025096656321557931793539176486844096994808272630121060549590872528873537276379460222342340208557561517802702116072850414121616560044428389121765080565457960270384742281860869258908640270163421048860172894327362114655057110439835940593033805520833371591290778921214462150181721060177545786955733511736378768140071231897669157881865041108902097352209991983793163790592680825200231543250633403870782867365119173048399903564398379724788265883963703352898495821505057031201047516579651138334947110527643331766921230010687985434212765846504594711696906469457887886322872839729822749232745777266024068564426669390084835578882352498149052078004577781618687158065387395202893853070887338744252686205127873542005441471317512637348232601399514851431978004204790924830353882053171739121596243219632094253380052627957904183098769791709099540974145587257763721405409665878980251039206866803754989751871021966058564360227404732463950446581907906763346473222943196048871657680290670527819406726149792173456970244637728403346793338922699575096362474098504165912550483077766335362324738031334380674443510976362338314006089904948988248731214257837947987985924812673487634659482437506670690060622927797274522954568900943374737404018037491515076267144577966214928268053993236952580619524834702037825972471893590771493074470271746498080121176187990686507471581271906367519075957915516315838476491071833812442569054665343788105587847303853889862827657343462724069571180697100931399132878535669375655308337714473452770501819021894210429819310506354207468035619559326465046685061118688092517589029960241854125056526596617005763608629470862413578934877462022732806930168281514390649058173720284625192462967779359981079754195227695631180571492592572620033796246539544427817058207400393455848693575239711132912528046868593139897712471141280203470489551679454865572644206353267153172716515718196852028742870450882420516335124841205552124376546590448943755834692177318085915658754781453602123992856645540863915597627249211248576541294561998989639061242246510682320231480445847578861082911449309961213018596745617169095381782631851955888904305005862308226493798906247533706221475019223078757865412723364882495450277067777889862043200063642957684538471290464290528427365354183414963339037279394127523111911943796076386007223569196456651219078632608177233896621080759932342919065094711293020881998348680448503228171406702457061725387460455336522301158236144684373715232010084511618645468005421725745832895937523882975611465110512973532897947980285499545547661880489637633697405627997901435442786061851453233824167978217288567151041772619680619919252630166818525476147697826252806479859767317060627524751030067444672517677883109948325240803894654770983358043119724181523022884011028472302623379831535083338503517781670315131863598122798791335985751981264573302837857741265038038911394345633271494264756007480974564185177845143027959815229975553779457507007151736282847949574304560432043079101687563460094148587742219002889418345655568666706732440471400999286144701726497029711502693753473565493456695262954312779929668421533879747873715860353819814181953593045624164526828153214982076781963250992437076903111729002037816401164696730883329111435462906848257899649765250278396436320446847924931532938571177732215078620323166030803654049556156618895113510701963706221376086629300580970402426020714100668330457965097018836338199184414344638434619898983053533824269454460975338067389494539435877997512708329590441551962676265343853986201979655295077334702939998061703209537445404647832246885772429781296419259882822706448216488193629823427174285964795331667119713695851030612421609503958789047294765971439002518572622594265412011193600707541777417552318686804348717108585188707567899452215222231904451660648492268318982943025621232123525061500316579433660234204007662038869442275130517045225348293228836013895145350789407842619194617258428356078140525868093611010456860113388313660873000427891939493044298787194840542333120104310020414200997087731100629825595667919078927604432912124854952903359515894643617097900940328780576367775366175316501138358254661668157830528181854343083778457255704498541913622592478585172124596600541402597476260357038450848841350902677777204490166523822914371198813703926462984798104808014738832779472022955338631196971941636904092598685063430454583233460651146279719089801553423413120723141475851690897685193894807396076148750841464504054866694595596345247675425187953514513872859215144030450280353010176886200543541683367725637620036821168079137860781654033810636961672299611036777488730516573287007070433414353442138762032294081944653931450891639024250706814804789066319511408359185851673224503259518905141979517660479311712991654707760028858370767853963012340203331756801016561993207876467439282203908733327271419627524378602145004526714594943284774245634072370347783514993369153387449272268813614201602589830754476364923591547837205135746804242149085186839215035790356566404532113745115307538634373265077892398525016540428630448961598410186489933848579479232916453509773175510929018918813586921542032319096436069183231343899552199363352972983051221478921315053424338580953079506465642026822104548576114684342325160029801080940396703740855192971192252786383638433095475289464862877943935035494983503190600006052627938807588560633826300975008875796548226736792734344580819623113646456922774356394182920623029512803249224540342658313628820459471276578743987468789798186463023450452043637603104839994081936107206674415533141651237210168567257897551994305536651009388885629369627269015400086189264977618003801886052068162809230968099044851091106036721599900679896197775667828766504457985798392555484045502538201515479044493098259298071486833782280370298344243215559321161615358536486196017226162004748571163296021222359613570817672772843117666266198323955758543737471056929667853132304836518653316155120139832598502753814871951731646385014437724716291518308066297505056549660799766143176582408479512940635822579185208898454564140525921866076041223830258364331447341393598061050914004819340285536185460995147851931874609830447178441192811199942528974247750495839918436438408847262612060178487739709433506358981013931587682559745432016001728268455375133666292484740326972959962025465435392911887318545468264069001693190768114205421286103127320748157025549428933055761559098817050636483345066783465706371088662701381971725363076685014480709514436654724119814124501445615040338074207029230264943259778712940097430321928044394840319807801011362228631373226832446212917032610076556596406414499244017775592627337742566705481336490243267007625946536493038498545149777875873604479142648442782581635749204253517463147611514184659578025937833569940824496000786320108485028719857073258646959814525510236716476239897599633130799236039660207518488636730574910855458539615065568352646885642059869540229287772458214351045738635961928979772699978686111100874796361795938504845510725070529209781511174996846749385019135211449021262167841267030876575297690160602802845461687736833519995274480753099162874416385630854094700337962156237860803844465932817065016485912799701059223995741252802365501217635178255081549326693576150983577874340760391126826631226206750621541762911067511067383604850601832556400329373670954228988866983673906473498923600374210435789371170479051424225850242848049091812212948131814913369650009994242481526784346594644089126800337447362771986563911627830151950621498634487044963362693935048860005757555454080510251427137191288072765237231456912675392896425690031521363832520106266473753468580018929406357715674679197092668788875274882583328505338947495457016935422302838767841367546486099736205092963402632073403963694321044408312885604279821865939810889824863718971127675532716201514720099076521213977668957058920957385776387329761843582495961398715519592789139645485028880024405730927906314868137326330051988768855175878262808043728500288914572023897448805779763965915269100524091134370266379550610004754852514304556029291046034294061738697776411013292831957893217293236545738916187766004649346554104988279408626261134504562446290545492148363032913666599067681049009382772829064175134890364783076886315639181651754474846169882373221994153850776124930985944916721602548265952131620238427898755737063965864658551944078156414893281545731129382370027188499236859815659454842286718444340448852644452709058939744336675655120482095899677066880530891181852061136641928091791452753714152708889904931029059753759968963709467023309248468104031741711462457672259815895707084384175453779064817734876921539588053726442478458253202135684962670750185111955675734711240477518940159274378959787386545773395408722547617121918397168715146195857938634586317024980073525521465480575023232822586272344026183928298955414921399073055418048654415709495144046675879762261045118780502767779620459156752406500254789755566242623270757462066648524014107050224037375064330621445599256484723040688428169718713611173224570295744700087280038000243925951408215206356903550976530751596403427937740076749138418829829613495093535403538237999253315294682829230734696312559335588572572889953079777865463326892037853149128822608783497624662705872334475565883241297193979640841403925182473013361297297374326329842808430805824960736910980908891822832309756772754497283272451160839788507716648812730988499521830995721214224554764884877521440368541671675840969755368932761428393206867805026681141814935319213536495571490380430905538431529046453422763645992980079739752495631288720994568922444540453813161858635033064873748862160718942450012810384370894526315862977057839030036449087838574627427466300533094358051330742833640398008487252039815958272058753311934083378991310007635139898614401195264952766555927372683687492330599116505773572372802347074667469154611282651903716299985321338834364315835250237969163116478416519786889066768918169791131916324048107987427926401022672283843064128358777281428552451701948487730238275987461049044176988744660955332959575871422203249307604729008786156221731313390277239155348825951481572299556821881665349450041411953818016109805656553323301979927161892688986486235112119188616491576561654327497028747594498683882810202322620507488724335182120212549215955663725114350991510641475127585972570057778868897749334106142289425422021626094099814447962482405347781247996684554356481591504131586677247654000847039629855638134501643946091134728307847592843478536324592124605099006001453716297201251896212696209024658545043580682613561836230321597326548379969995392429913106375502722308197804532124269799760339352090322002715910410220231847701639819336355955371688718435802317387776935521760888825968863347235536659602808392632587259925178663267109752350178195879775168055479563777104091368292569241567148779016492016928783231197524778286102911247182487812546993981023417746375432331861262620018513931897444246606137786023656032132388097654208454602628145372488042017077936831869940324600961710184609886741790689341202724155600381352970957888669287187122516201330434024523128942744774298368860263321873516179238875517576957932149622339010549172286966188433628470987750527085247163889970981263469140906132962039176718845585201802189851135083762902268567411821571831856936624686644500285821761683127127668489112027224887318974737244262655330871980754340052800759048917545941557874403309906507510017866754832507837632822220004603041321626089730759955180437898368194821371654866015698159219949301524172022601734223209270360181160120339297719762565635414183086854856304736786222619484553923668258000465489593916916941276351403145000265233692323264368965569856638580082495813373538873450294784982108616923850981072790565685006944032104541744264333466397885691818368095425466444129372026629130701664981022666333216594473492651871653299360361128673243210968552016555001775332331430020436663043930115240827157137277092171500648180654321914285861644651143102936143690805594375372032110020306212429957510128143360831839817169319168481745364596707598477635349291802273964015259375285327795953660993042780505633523505261557473730774031527400958567116620822018710833540410676704687763648232517296609922721745865033476653279786329901942578203032097167112817312836177729338000425900494443562816982229915524525205392236784814010483987792284322325725047948394280259494107323982959126588011895830252147708438213343791122462104006684166776358986469634416519905624880489076596883050992317626086568862862964595889030519682144940471798042214914358964195687700315466926182217900418640040423843605288111883537311497323509095509248842917011478958219343737865930672327839924412101317742339735819303285157541691109766884138445892037075895399991913900437052164015669641478115652599103342801028250701117864939418819476437795708189584048524341392346587731946742870759951525632868967666182317804133744347332547892355237917709510061164987647748232599667454662839802811833903066022029315887517589616542922145938692301550580788916682816233726971441694738387135865426594974626303531805892693796752666121921813591874742594060452632875311835707759644148102412812403566475320944250683371965964398713250506959133091964642678975389528660570176518626654255395330630181883727976539016853990269845133109732534509870379676166233288961294363001815152077591812761448359404796507087902792798214560955396720559289129209010890637266742703737166832258725587500627688725547295741807158783554192446299362168255340934570247511223388154234153143109450390909373798682263982139206418416264497427214604555463371058089247731309942147697500216838580455230023453830721504033627970189151185564556466782634499224422219515601046452996917498938303946421892620720152880402915707870480039141781973829411960211274689339643469380031900443857935495738493033789061493679951219759900233965009489041878952386414416237040113802081001751258053255722349478809361987923646906000831821985276392285843760427741666090102027276601128196884081219288234591341974615753411280578961501677380850554749857128780193379823772219619887694276420726505283942703404747554543070264996186918236434980916051997616222673086793132115431636922328175315176280745602090714352658249108618439191280896524454259262797887343701660491729027275519581737505863789598774044092650328255167961884351922516133905454845078873224435740296489986523277675746694809958886104451863196947732542105820988812547846814687260968547947938779991934697862146330692117925428542934117582848481572855623092134217442505308045161783514543150725390961080962734928943497167906332975003943237505804193162356447524426664911268659332077567940589483081314874440758585935149248160075365899584701417943772129493234053172335457346073009674127441893590662944647625008068688505404239518331839556108905870203871892171754094916936038940286166658884073696975756491371819833528347943434268430017625709749209234070303062710053140499243404974901156663479320081496656952952963992637815553689070486778662042765448728065656769044471217179127994379860187204846249388739740870272526642765914296075810997229922246141323314189291191214751191969024511973878417829604121707341374630123062272821971129060491043120475589178717811725343070246832592083979780258276354937038464516967503031219322075960762472144493630475547771659402236783068080678330819922744748498635672106430432591751247826638839262325410415179912820328813865380793343511664993273481067819328282986667406508434936712626849973451485473926415317607900217796295456515637687766954810458509417422141315078357311337080206247214720445945699485496110624765416840970021999159241234522040290888179442455063898518728313451626327508442893986495395350023833470566617184367768872264052570156710929558909043526236777145480118929503296916629984547430156022184037962692710787299096275239157393746830401937422235810880684620471452499082136316805677333846060717621996091051485963132765000253559332321411563852254264577346010042671907170043055362335372735920372494883144189903889632112869756995696120638022342805528161237215572255921480265037521534322041276838628226388278271443165156968868200155463505953803008771824185596509927031562832840718609768279055205763466419175419741276725579969983231332090107229309271271795899730262087128695613411624040263884860976118643323245698206379112890036973220597233242825076584940968516060843953178786503613029135547575318048189889650485418549871972815984607091848934943363113220982629755509783906865081963465021480227154863911595937316152905904336723423498563221853624795609381665322353677117227970317800956763485451844363840197852388237340148221314155123182262271615280128806958439140807617296213719275978561230275507591822890538943797144044362283692482872967749051349281692996867711561445757433165883574098633752462062169960848351689525011982114763632684403711671432278789990217476579490006353415528843646174433142907691414445397647525929853888016236280161349930665739491767512421444292486064669841932702759315737187420623890237785062995115820194788355328077988871044559440565520604874038758136923309665417708365081666680399126069641289027054732525808777553466675731268937267647354487272646730495174499003270544593192582749752377223047865348080332441724558682603152958460100634435018713689817084446137382672757464566963456724130220287781917983944396611953834060896722608141121037001488175797598432246646117184391011425413828933682216052545861761397101053375450573243250576101280745161300437142929054738629903803995980544612545039107102131961717877899325452351989139801423706760066899367364901287414279968196819322356632400717468332534056208454317085115633832918519884947395999300970186084058196033395518148420566763066071767529947588094359594321046853898358961561334772453084631756902226485436124929292848388845119526665834311951673948635359475512889097297106091769927856658478873461567153536924078945368029476545104010156762506659494295554481915669437445410117158168335439711015558346909888292087933241890430163749883953939770101053419880771405395012433335695478419415201605893057322386593152268964844545959474047638725595485883822662689270081006249273158967474516552326593433985433078458738961320446959919778849444362056975748150666205943043927939498628003231992163373897166067876607946714422417694413732752502138078977474373044484561278972433862786500953018092150928514026754895496789902670035369279830875580852073934769378664689154238558833557360446239368818454066175297518365128426656639059211423169395223002121943295858897440012622639493093949953426251906348782777403800652273975150585480129388576312328411682688367931767872200882642384922196680240341052411765451164555364909186234639978110463850841258065793663959466888920697691989237563723029791729890901765571334647700099266287481837188245712558922236694033382856408976833915845470707782207809977176004585626992036173069981524647408662310589082947883573328497789646350677138518762086110431896148144806310267395181546195413889951907912807914832111476039060102193737295028306526786894732086849449305242105451699241805219760064249303879879977471104879781602627383826579671642910691767743932059646532042944589316234277853425859425977812070496807187560080177497627469996429427217062424664535970612294192213948602024120090223134533670642402002237537735119354922954046104298407410287302355918808015759273569131369959692081968749047825915071219874334885153585206784347365381118353376654227457717883718075384828018098822403102147234792704051877368086368774430373085651374291736370056138415729775080422024836631514945062140403687526186140351334140186464915788281020243424397388548414322325700593822906105768890775006600119234561866814282845245558808544375982813119307459322186795514773365911779731719501471253134156379169997205766794794467520058030726023044852447056487402513008275619093022626105690063112506578193594482976198351209027678632216309361554685027053471839590771692255706061356489777395140643062728000280689237767059514734344777572456230208746248459074335858739993063825413088175354508088578564377197507896949262890868814327553168742912169414246274894619436077114955224897067963598527868453297191192155699634067660525028465890296197821517767380326642260326966758000267973707534887136198926615295225199298565411868779945341897624528852383481849142588331390254191088873941882339317483542975260638890485428244718427035810949282960837288574675196075126986572813477765371377009610911177924885817212352873953452926046196592951844550040125714078813300343270433230650684521239643282035657679100901703283253105694119045093761008848694875165534102710374447920164460710824256381561159417097785633359923821442564242484811959487784011300358489913656081729857653013206012836915778527625423522098973994290058729807122049231959182047631896587822639950373297658574513715916462189475840945180433441120327262864777783616370582093530894127746539798793582684283327411778239566926438717008979730368692796221579494805718660398794281691727316794333000733953086294985702813984549297135023268426675495925769268893413473983246181728129645854747882832340655543029538779322818988570757317527087513769271139988214804591890431653027596541715595040062793209491977145449093830801605506835358383996569787646439111030378766575268968924705373942175680391518877364764244612787435458283421152656962298916478327758029451183163474191073376451279729598031723510598074816831443875143998511651662780176500760441282542797901622926622390378952900047024389344257517271793607813509227280223154856007405716957689752314780044295680889253851018306881634806195691858327869860538723576969065786587156265925323263369703377750552920486791385347796981355553118143407774515630045444407859927955800081704781547734077389797406644005652826911562826692888018346477619307767416087432906863669689592639001406002774257652673661937942402454083409903859132841807381871951952931025852462993416833132082710840152050093082517953083597950001491589598683409505597097986858847013056673848316311234749828743420667664173831532382515330505735072581113520526791777939269919524605826080511512378264770088583531024721103365599729877685482968699993561871811702680975783680450092857598830281231358664648784960056806797640277468127758561171119947065813478745244999393227741050685724880286553237719218817969933566630906816300641626296141600288841361404917269019466794840907689994326026342166877417860662596728387558083263753658317723996311206987500765235626738956227391552226830339340961254708113542045159946475441864086010015197302200539901041508348659105578464316058871842603915748973871272963475306946582075131212522564644327564447992020046039416995845101620280735430576801680924624646405297508546405755177848401887035773831149244320979717182397526131046120393178423728773021447135359363891889916523075432345708459878621168031049789560642802534256210872558292599446367867951728362732481627362133449232938447995868040007638166623766576388416385949414992361782112686212967373586057544394614314376281172717753104429189464991877044373004207931602330866739424907673514167264067807496767108690319422646192156175015381798368286534924172728040253456467708527119484167620872043019450978207293917519913984919506672672244231302272740448548622747373371581416281920539721926671558532690838859261979155286800958833367612591184883636751426448972245426837694633131391314181328277427557684048803590652079053622129719212770735700303003689280450824705531412209262737589505525449352360455330276538219084349875191794750588455770277603763467214913425108710876621192277873000939413479292773337743999909024208525314821503381866297457996600086020738641201038764680482384457998042382088730899084905237488238228997822966396231701863205399353814564450304626093342986575520171537949802118262886764549430000973779257382989046415104342276347595231900346525134459180058317280318458068907832794547200619562332869146043868812354375487265640805269005298939007979426101591198397440083989116698621627897806726779926904140376113022484310238657243154588103556211910555081820248222510541565632495155449503947314137674460319942967176639748192601381933731390950321220157464099736309876014616927809283692430750888884849694448888254763777409311461935782146915080589475030138289642062970350996453317709580704772840977679452642833447255253508744458834157211625688096754180953303073390658976568279179605060912392076829358157744907794615834961099011473450293170140427498593068854249023832889003589651903447363667418117331593188195290774767118112523293780683198810715113760845085364110036864744889712999082414593061726402367922987156758122716694220051113654420704976848672291790375822427682102014105510487761283392538343604648846872380669978177270157802513987127562888598341599544002772059756918092227627433605891377277731024632154675692840564472047785515492737821059025266477661611501372713162938054264269929867438576322223143590849054266105665596044782661960253552124322289573379662841357205622179861986871201601337864243092330281333203143754437803686050243014920431214231116283366590398651468828317661559075185512568500966603030861181795926157452959344417492138857924807849354938171650424658108453694066588294627707586102068757520256341097443560609988961916104779962542593038225861713916479805682369207323686991723866040566934005105596284126329146517599872663435666866547657524669760373454414281032143193155182243021976337088512500162790884153570758417891481667305796638766492855468493354890247165551164583116286102156328503260892696377533084269808953748707131309908808057733831973545248247910443333318423273347944286535876293718839345359328084791221217527548031163256861126926046658185387630506176090794593742209209607483932639487827918661313815564003571080665035592504474551740470437886855343882826947303635925008824743082271767521404820336816821310079217456220180469261207199775452507396953863310194899980532794455491188195153515848733921010809786503742484023936031021443350994028659065725352474550363981628915354939724624449845133377555385900378531119412868922100163125355754601287453134007864608911627294847879970643568117814267089961607989145780510673269396402122553444141252528629051145959233224605813557533864240230177665221669717794802413674017628755445814242398354514065627310808331025587262002884408006919863320018222508662758287279234497543709433850993030386918327101504324566384935462912074832397854096731698823401573711462688637427115922434287226291268699246271904408691440647182404746268734384342494564923548566680326124958807778712920642670818573673943719867769754080425330911019146148037120719593849141385337301971351877949505388369186800121611124217444013768100917854469342280200891043752826571726711685376078738138398175343278320323159066232605205063056284414795620222601708983743949834798050210121694812765848169437590343714271085134039916189098092164042798274124079385446668740972753850417595831772071956373649399168033405990981203537296746792199512588390172716469094477897198207437175510371811204956889917844058995040537414405913278015975128065770784368144422599067428296784875753434374948500172902792783294572222929277560693318571735999637596214231522773334361312659478297485890723042439805415443780402096254743853140650131891351864614666126912612504724157432110292253611324476034034990469092290199562457872258340484817546336389338368014943958687346706208505348593187947630743171678901740963178116221402859576838141562876502910379190374123098754817959209835209131510333272718147474526446883015728604330963486792608422436987885783709127939953827146145870496465114553040217985490939805643406672154164381472370191673079385095102292523889366386138016292125754637351697039524369766511345431120826039468120355536537867715322871909004002182367663216851976990733019420676802986908323763132730887926117839469506391628624168256340395513859407892615634799788639326068974798691144299868378034138264999200984382796640994416257008683941926070165083275541353593977975088439389335553167439608978783094438664728222502004270383025470840119054311433321868094827282435849106765774663199497631983383531935232570842119920196860456603549301725695066412981937863541456980573200528791588401124827619210871900624290028792888448605994964967317753946028329687895188964411006507742445035585627888830698638781137790458474099060503164088501917687380091732068854118489474571526858324797872180272154647352480556758488583382788521270938866113183364420687193643211323640499454471295727318204027893231985607886742544495679812492453773769840714457571983739543276418911440284355038776597336819242654882980186890420780233253590604519311880673850952491119518650311665213527664627690381509014671141215166726362454274446643878583115646247035791779434104951927479906676433761269668735974604730150452646972060331302662526547162259066764944307631123267436524053370427138895865544429654997243890965025829537482620737273814456218040673688624237448484498614695321406501099483110244193679724637615496625958059052699563344027312196674207087504423742048245272111235792434945980491847477192765682833000494600216245922390076865622336970525460176892408370773495939601383834664927451156963951940246127440136595833419324874650121987237674027938983349019445887214968596162072831273548813016059460224757215315965857271304260036055120492568600198583786309114639342026791801357790040055151299461194915170325051571235387853671697410685559827645443334188676242228316714839482064441150930543775469641222511779818073439998299596020773289773595772990541515128782813043106914582291753705384301471577127990075723337403220632294690512803799730320771859908964774828188392756952412197544456336588618240799865637356060598807770553030556641604456684802096099339308692082420686128610083360420918910574171024387818955514387945625754946502993015249483438915790912697206017801116566550784763464195325070194332745582590027954451338151416797223929174302535446896500153402058250528501555054489434422477814940953461500051675614588234625146988217844617439260396612584762975704255027922260200023653428756518900339506520920733609845439054426156101669991459478012558825772181150983011875881844676628697586084402683355174918661951873787252663862942112373905549519620621631407370805803946284318844494469517358691858584077089113607624512247247958447157037882733894324976434462806725216957177222395843656992087132145387547219523978434611371295577652332740940028391053551976675713539271413483068059096933140086100068112482631140804136119521321841941084418141926122488233337869229380002855177832130642798334128311825658958783102222851463956179142262965834601631983616254031124931284872546853396534628176820337249194860796045045172703656677658883441087746440610622150036615179005996629865622259327945151572654129885831868558691808256185279361227937305099178482560172025974997038652861123228744076270774096798285348569174092625389397402627332441930068465372510286502787258487031916009678136984559207931326865823650962899942377586250322367769737196445166197569188632149382026828759727164648386703485669430288935817255491507614546235179836557680891059710392136241163340631774168251198186843622039956509766984658109523790070203849626862025940076092505824367621415719964247185975393757820383181118184075738209298001196744596188840841230572385093861759696420952606235375806146611038410895168882515515994005061140424697958288990910894508605368233192207950012895838773716115126964575197547761314502369609284567864980136919337547995756891474656298588142374453165673298533400355456442934927613831007765602042550692999232793020729414775184730947798734468466947623610268894152675205937189474698494908861712028535913657215359890539065757139582012814330973452340634823687822625291586934210759623874194689575608315650433786455112150878805746846344356657410210883918791640791547366272129990458721146179577877983233713327737467213664420322579275578978250333990801810613123024100616277738693233179469244590082736368936848694471848738007099793592749614361947101656597743396269933707936859111734541813694667381531924282572078655979805137074333458399208848314333287075272016858062553800356038461019771207723351165261930306829363503216960198054405677336158627922729089864388302212608970636409088580375482301455718042002331677754857282629944115411028545422613494883890241858295542108465978865136981546776472594018730479296955531130583087675499652252874358714839823062133281710131789771879125495426632550471778004193427990198995386205762889320234324531456826299776864041978117880499023010458067567151319177518958142198159026975613429563663899592594366011222737167300536263967662102877294219079171919870359587728910924359440516213330218401888701642321226339671666052421438108331098262398110848000071449062032702876451730046229621330196661397013031825873024540780576252197548558870818552043462730686076319582896796612005248574898869817033578867468209224930124872568589620013290995782945164333509618468357303887612929380141803965738119547872501420079363843987710459507981417018493136201363564229616365711249266418382507146705626286272660476605891534333073009659926014565024709804658993927794818399972155952738202815232461617137764390957902122249207956511467200402341927904138607200903432216954556496078470875330019897303906892643667284696838780376010901494990393475540016443428679668122552894682761582373949068136259330937082472097433964786247419982431014210386359649814661278249634477027421307066253519795658430973417824514249355417462372922298347368417575225557479059399419059002920844233182122022923065156088714588721914119115693061410824636978427828842908316667618654320077997060921349603467827402230941799484849079605532586570215994413794698219374862544008654386909927362793155115284366395593832833528961179479003006345727007157686567405715597437009992464499578454101453003878582836631327851562812292575958807423242340597310085249751319949175113897703987343775904268146756468564193669702184677962125842468033421176391017647152891585312037707410718302230062848448698310506287962897542203975290662127903003047809119973294253769143466516732065877916210267147625813383894688871873928582029294527162526491957825493255971441642826843670969028264271207471753489436541308045095877295778588589356851156647825993022676731821553889534785839666360650104513370964366871930860338841481472259466449245609335290209912295732229343959312004036812757485433663014469104623697736932338819822321008213335003911020190773707110904635910584675840687384234759127548097251364315944791074339857714973789702993439815777608090528254657371579270855700993317500835737845390099506871011603035032315634977157629106090657138145117736209362310736612215160799548234307826392473392305062870336132389915894745162553601765381923413781381328630154804440540083221945142890609583736675575916973244211471423097382779500986471551783546599195337354591908769981796123035413003631689810283202050191619930026263800802146831891836468675496115190440527778719552365141280828171949924447913337905837462293941585599263739945220635833480082149790810065924737145457820150992146707974716111228026602985929084419496612269071730603734722842354039686596328955528554751819795508519222999889285019149018838407457431809537333823528079054687256317338124391831942620029206017616316613322121529449946494388452621016603712074639259328191507179887134067674466252151151193210183053676976407275036962360570615297302091856481829339991957965777264662192254111749398777215690218330598685886408507193244513900121167644400124865318707868143451568118813182774974401841163312767669784452832676124824582205705922474271467222599471976735173657992673552329838989684314290533486411892579970254299546210000733628616602705548573859819733698715694415916476227701334892282846566235759090520121214692194784530722918111523097650224182040654356224277297195741689574698888963897238281084622412360171305227500330867980104636527904602792819141254530261383753277941235040891051767488830958677917460443897985044233489020234411616374729463151508850312862938431365808845640205927147941652515259898369082265897774631926862699224877333724747384087332680241955787930361560541058921267438353636852971806159389877841536706586005353084046403731559407838199247389041845806917752511217280544016102227945374258497500937635471000539356678584795988701713709632491921834162352319512607298338114635192231808035358338188575069675538375628686847521428613449103826025844730888297764477450537144094966781939192638422305490602784654954831582491663679148264278866763860530737624137257479216944077938092673230233729016820643880481379284572846487276215802832497305371140531011408022301388987017539975593425351434140494629409940779503562623638072012066239538999339555461471845479915239777837182040148218080795385386113354494425001838440044682135382775526916279027918777129097742136476145085151812099998228041670717093616597070875311395003729474737493081445657312761888287264511834126683070777838424159737595749074808653614381144799988270300011782091694708680143309049861276765480967005995736719070764126100675164395700641066915683210727478098649375112428429377092491318366865976687938040385337378288515491537984496186666229571230733763256322725015425578786637102512972204669951786925344803016471018459136218340030789002118773847754119120348835618276470622704786306874137562810216219997180470975060824053329920049429000585003779819981815410544697511393130427907576503615847083987940544868552058318082154143586442429614606554242545622114071378211498771143830788022410948431974318778375934832326671589199898751023626847212667596535383703145876283514992271649990973903739376103690960594121017555542208725983694576494242658039295075989844106370524082577237391831063968576644846991965412057763309416452071116647480792380372352830575455825264164712157479042637157642572951157245254776309903870514346069868456075561743606132439804818817779623820790729368352016446524434051113118845832458165328195688690587201585662156425897834552422928776011639813702929766738949486847620518528928709417958197779213278649364553941598517912172171578647770183683541757518447171976873503437370118054554647285080077944647456908206515954813178443789838295284436735965815251422672022929231249755983385329945656409913184610058753316086486938907104500178233724574327065671778908887677922451098649152357332614030003685490041379204913230909986450040958570095720073943408305422765530057003858636577500839017260305002583530790098030726826294464615926869956935325240830651352383814943508088586095203386553416185024769092095568528940626677855573692781033950091674106154986825044198592734048203079297839439871843653335151604459250560656045586747523416717190924716989273753158821647074408823753861855520849768220665587076971302979143983273908170836031070430640850858017648089523336809687807189943232978065305187809301330148585124827051007885330116896988093653723920968797238862005737331098085283263386244802898037995287590337004135939236912475358396340524312050516257823366454231201456351210692943107239001180490462284044242738172715940156199763193672850091318063784646138895758399339724183691766958796419386099011448339641177093585340467892140699965747763865100689997445481594656236724597337352638035773155912074942853558821983149567093527304608165711825018832194741878102892814758987494759344172498995415001188302933602088866573380528097537885101973240188388339935338050663502481446507012718901904311579171404452525329485707027695112575689118675374912042973948182922692190743626220195009248489297066973172946992766743672101827017730424735966328647439813144584514132271881012068101094645347863685136046384159121183329896461856103543176043473220122641209819763855759671586827181962230906267784298185936952055657890575058770394851095661276572404997556150469087603338488028020948174073273940545253477958358366661060996702986390796190845278999781471437710180131865241815113026377021425595346857389692599010649978373731608698630323121992036569981833291489948702291988741605987677941175765574676439185578945229597850136067112332710178942876058128494886233448740056129020986386660143256823690893689740149569923058748879129066887651729413968703026326307114068603659501009870092249984031997624864068879153126991544031682611550688071907160490601532454409956404913489144179039068906046418646582032908452039006883825366502794284182714648078523742479656865997064700887362137171600207322190981036344667729611318096394191137079085589457386424839943273302087446906521388895384292021040000134261163875537229255861510689341763047630655958862996919233892972583860991010187006273113171556683313751184592203647055599030381668072946182585501382383371700270720278359232766965703678353468048311889916016774990919565871783173643198033740798341098825412947460562681934471822157189296660838032012257797204131574358400212745385403809854738579079118158574478446788379227995837218388664355441210763687046719106798513758505371924675885060388791680759777838773138265694042615313049073849256558110444266775700496897246255741684421262119937683112089620175451502350293808571896622345985114509041485936174130633077292571458063629016396442746334631835644980175769091332332238541689407090858529306790589938645179971740766119888810378268419507112820050443044673677176315626926402820355002952032783259946036733816405038826435670870050435290149749724043144058008192057812912187921898228774315087237727960378510768007397561819893794301460902409732349954726610183789454030586180288243268671047536356494932196152878581194657937438893912223560980083245384469748783117028131859791838272192195890439245689591239154235576040144128669308801512987833741046498131837520265032648162474351226428775813099120265048790321562126262669496975259121482184192246731805332507590424415621253511353756777432401269870794366291731964847591037538584246968408191341925448114967438305891741406925833985985304144018737079194818690990585806951426085237295251297136137857605938529591368127449138510359139172204476486508539366347849811199449379470333076355120738324699878359696356229018305702885806269733746444813968517977678015959852898592607864273730153519430274287179224029258220623641833472878238552049475591285913277491876447973901937548369253818551220533242900502046154877743798955271249683299281456782492966303323055223051144045383743973334609077562132648020873333321505919331963496479282183945560898606093819769757177677137573792215114679175493197471441630617009536963326108398576006233112071428499803573856810391151430368932532402309457941860677322511771880042975791651375961280125802142658139375535139958582463003451233869645222765879711604492018435574134856750516820373375374087118671732888322154216352924482709169010589869999221760869478368203639220502226727278134766131615845713183402945207518988739883305031628570203942299315716321647819677470261908396513426496078307928515375397424072971024151786569309077118833887699285560433416276413758871780565010309997483667029831823244840090492519761945601316665598143327326247070491394507641308712777408064124088509382095174794458465006277541631250180217122663964510958224670009662309324267840649124178781843926744166456247420750003518768054811250380476403621447516532214520599272035440011183122286013398634204455759706814452244988841497487804519805122341848344747101471899648183785670224182825586653702450927493299791394745620968618202363887563039518088751043058804639560695104436091300991960261895759007290341880774509228629031526093232153923816122052631117297000755119126823391526378404718219534083220319991037202283592464753089109286056144435494072714816518770431050352614688162590681918523548314540176832006406451395243402803784318831482599917722409511807449538600271859472271353165132234035955827319657356816871107394930902974589799330176330779442186783598955522379830991586886757390726757827540682384974294957571872705983605339686594198957084956817124598721906601647799102471283249049808956890227609011079607787927021997416132033518965682923757128350231476425945439929044498539619356712742255543866578619222586615348324866791085289942780878929998529556900031415507977236576431046832149790431953174072185947387756709260273177680998595932861331970308972077452878246501001257037959246371613523997577679092134074571962615889338111309981926137467096120900827486158958448666501105111237519247194011199583782906579846924081254650611460298627000795595642848922429638313434911344304884965081990275305567074379180628886907627243968475922645988593833544185123560758161242247760950463316335583084638020424248734722653884096831698311360424977184598348962687906510385544581767804181966947639475549707460122062512755402070394583402218579269239095204389267813168200570637055689242677828879638416506037899078256129470878361126081015925603560501348889246714035150339503673689316167639878037343964340924706617979152469876908289519804518410838003834554335482062426290772018546773577767695238733515374038427010540637115521112396612311961126875129424124305322694127919627090094480586368202385045838011981559866251103261556990077537163231260135951312113316120715932037869195463907006617049475375398969680253982009305502431937497624511707189479812672876728504285693897707144247782290275069317525230897931824336539396289868359465063726186682230312009136279027433792274375257102555037024286125793930467727615947480140638663653245525746961740372028908380659696215372608056459574144027739208485071422286105138772001883341490639698943619018481679649671713846675776285375845100648091895216097308577844436863494696764676660686281000529909882699778962023039239942523202867746469892841500516653771679741893534569653012680939323403656273578534079656659363550605021421642435852829888322452396695155581941642996289479115230182099744444446954705184237843766595944443631148755302915353979051386136694705169000493649458589839417531778329301130581001857062049655163669789105082994968083652481768130538662046477918054444305330438716116512525511038405604259447009181021330750237685190680644876402176567527313433343755366791967090375840038055982912526309749902290757830796489210938845785543130392596849961622042481003732411363442196972355896914332873600356772092657044517320015870974205562127412698408895810780075042698113591247964818568039584592632105934954883278515808511622649081002513471902681063523902739942584765382590232141199907873748778745136330089481620153693534240450770294780179588333972774806677173444064388566872509656434294131126034758277826213740673826788332898191076788627566607270901840065758022740767823659300801168359789442737233289949897354017427037492843855230229869092481081719204142743052416467556905695267407849763702387073918504303647108895105381378750464625125734270160115731910222647142502498244647880897108186477160623216119890426748925906081449842774645046788733306660454993226615544285465014949830004814385433814446874314947860547516845020529878527693608794840528411486530646056565009005735744583867945330608409724476952628941437427486970479565726450246699686461199915558169448810420161156413728989080870736139533485645911020594961467606117499418282533104353669717295718916276354965491950146002948580059209436339063283937699930756058534793627737627616765363798744325456827445698970355256968581405723965644797227970020812070953872746271583915834374090714911622702820983258710242359610356729424917974012658854705930254402900391820404563295896453420459864928009736810446766537057480679730135763927931541015857072047549043600224939756338348573712837185173282724077724375886705144729321117015332417273216189439473947126871802313109461232000451071110881091091811012143120878929285441197376377912412377774146735437802359690781396702000920106715547849179439437316892183054525264756617233893223392698511022050693014061842199798783118791050989565042795627747676076987247623588218682766900729418120677338367871815610167492915437522602718133780347266458066133953882767991087599290832641380892885990059696262744285653290205515470152548882677550739020234843228786958466399139171678275328649469096325132266275112571300120175689995127032001773929575266133455728913513371569154280785168118047618659780670549798802824374536749372637546800735070044493213765867089788851210843870623429411947183108592492684331824942156489336058107783177213098240884872432969635172314301963329414965974642132669126380970958400914928573252776373872582057035322054042891403204666843343177929141583822326332651182448404432064527975021388506948631031864085596725199817431128711548521651520821835533569761989989011353068578933694713664963223483251352462418721803915823626550847770523388055777259648638930376815999698132069388665882392376807195121781682537240772453371070655072893897731998331090893269043745630622192798694620545017371134157501668606792158530699367527841677799301921903981143695603265207810170573127737585318376215075596538571723381861663086012025554939618004093712883374652035027085407845158443724187312422447501791313183416905209292172887640667803760149098975310206995003954061109908333806001724054363863343123128800215077401648828026902525485121951627208458223819705167825120647477644646290062778008467963787925653283230771956065227486985565211990417463923871039660496486313088688922802439526515110610688740830457076486950880070417653887151184921240666435152391086591031253622672572242239037207874961129081885900981126688077409088796182135677348613422368921002949698315191462212472096241975229790936640320960867571946254542221884261738815037483573066405280228147886190849568137389999552157544008625571569410338573236567801628859871209412799137671008345611970956419804025830589428987247331802842187397315401284858961187786362780353065640542255925652555081732339690380207483748699847068584215682767590459322941641867810307077572119137161996563555239511955031843964180137997158176927365396213502416245655069468196772143938278900048141638133555781479352000931701043951869191396508385335116661200632887866921932012193332863736076733444204118388690574084952134381735183263911169298847322967605491681522468513602116215624458497714173162280080425725965364884237915899368216996552008337417046164129481379465770500174824722549742394273374149542928829770445713216990501027973082213386663116637402564833824195989959666466092529060986472446523344026847097121666973295955563867521104185661811231809406570459661366192033736419343126315575554852788227515827632728639009147391559616243807342671881849074340066513589780278347238162714751442186777476708463287988457432619837146913222813072453400343222792691989956397776328225655529847252117816096931839288748691370466192770182061967500846111167836681906748212310021767502641513715547980460406909773005277278433121800070109974350508180285504827688342606675483655112629638880525457724102152236632391838033006760522277776733653286592637066391274280904053064053921013012263708612061077180879215764530816665511510925178793130940816895722444674543695191845492388590387733503168788847587842006588343474776771620180952141448175267419508238344990225947590254759419436559471306134915711279277109085716710714849942121866179749196916408435878644905152502119486236923348849670265290225503896957907374631729926757319408865535520330352459112184709212788299964047805551276875570533264960386931941613350622891356475786142546130649685604955795292437922210319325965682886762658217447628567681884925303716065694266297756499854141467039923128957968962400116898901037337517154033188773116583369409734204788546743349799183331467889946667292007009975960326223555146949986351067247080376253667631765968295167102462136281267188575689789327852167564943698720001886481676298428063438293804021973244254720521694190923656622446361594722335166099666548990785595574527920759884909940036607872772924619005183824634063854462902213197156762721925654203546674067469904203628349826884696970017421457437999813398769389461354540066314031687442561063074606767836941592350300350941646649644296915705894720972139687630426239241631855973361538239705046280417852336689522023215822416385342753320674593767064070506029745417063615840785905498621610978465183168630655041442052332931349840316024611416491978845665111558819802083117073684031630027343609117831317829058130775022036236548272119069655721655496643867670151650491538842825628108988867193301587892888812643553653468768045320127780732886016645774664020843799199361686191491450523289218167495306394004813711603905074816632646247414381837746458938551789302396373602904802338229932734880027269093922851552383527627500704244966693967818881849716908071576004713891074183956768635071472650242892884711938586764885272461546138502743101367698659669963650795502235739199172496212445426794795377877718889243214525706144096368204264367050423656918931058343318455704808757732990109580795684164877544135688928899329608542756845163616129192476237152426065996256868861285074136475115220362975042976920631276658721470363622397197984470309435426263135120805313042610857620848045073998632947654432222371854596578212136927644689692531955314024351046177107406779668574947265732222527554307542157893515600983604579729847515410753843142271431481558431227908594907504867496460796236516621512788398475797044687741145816760335685028125771798243626475618997739810947550879960164306377538200433779220361009064848711860676866893706959901176992102288387763823509156783390645693494495247242289740045240781480597328672892654659290559235446058158947037379198321631534138825552861338116741359318336232705747436572549618711049828404175121680592338143891607509242147440074267325488763900252934926724469334024333839810027665942250351458459643626680461763472013464103807137291615346770678495465956761911963330672283466809195106274164168408341377468345317323665181034452001011658647762736052815258742988723037181363637122034694608125371063387284406632701026094542424493304345913706769732622249102610960455702477083861005227788631151001649006844574749949098817196605848403208265913614911992473967709582263751774971726930256179279284993320530509858390438330182279674031454730245985162011751003982491810221790453691982356381653210611384118585808106130635727446263161646815210275070344284979340801746941847782663629597562740951746635025240370164414427348939561524172334841148646055055534612254043435108067922733594160662684263533091788293983418215958494779706660170183921244680946238696241454371200260295044973518647110555875060099925294889168238660764949293203735753913216711778594266572363316939570976026246960795496888121711558740370647019598670927770513560443709566548790873647645531157191914967766588124519180158568786576414149094891962381840559111565469388860799174562025976036748318468594619495626702485112505156495802664061164864551590647421333211853601082332167342156903708829883315365449629882646536683161003791253256855468803346013726307906236506490146552481425391583777373761865851667533426213959580882026458371582334521113033583013697548647390572048975382015090652236962604352844740977338777657740334226784945243052222034830808237847495173053202414152818199397499526355904807784230555545142606343377776867602958815429868685053867607995045380203341612368485777265139377292583682045321013518094959783715956153723823294441756144166844374453384959690455013148472785026124381989965297498449142931421442233279627155902636482166150636785334476566797466418974131265294588855537408110041434859795214750026040098390192890119075508946129969448587116005934115374903651721455360362689226010373147008083560462062607751554997886219025269748646789744864960449053301046833552477982344923294024087129051588059093290525652969718127549716949616712622265851072931763450544676787970153321595116813078835143065103491155499817629435001151051417828445370843318458814098276814071294598404978499564930816300131580785338092853585066568243443763307091584641281904445315095583045740222715458687134946786922104461043554467677532282227168373273270625381631803370119592508955836250126624529128643827794390513103295273785243638344230821561842314616720655116433636185921704574812595121591593908103502254123530936702839931398538515823714902440680405725411968445211431926454997746842395253120903934603834109381798507776736908286973654990179479671837825260455488232172007965525170213059975085269462848030329840458216549791561501640720935892493228834488941971194611354818956969131523243602326161708011124004549243951337986344471828326256563655221431866371130359563347734479176692772133775220241311911443375300909244502139049040116110312833866538963399366134238055854251736437566239471057569772498173143708380985964140920503243987064523677041374051060241970935194920682405127338437599470164147661793658233695410791557485760358213283462601369770907123485041632896854740423391289884605638509777527889223017593061837191095601407299133474398080301756916057483639890782606444958345977992239967004242009671526069318841844973630922476493880545856757758473917276625723088448794757253960437698880835181634696496724152381413594149256320601539259990062641914016004314359479708017215644049440304000604462741455354055154825455556300593473378583959372030939755532554813471758860235053887883274776698276546752503608465879931455989957663163365139710511946391355429760270520117238677720768326522648273767473884520069081109987567414393810617540854203076116649356806839869078751237420159026357201152922352586214383914457576832714194494955192484584461512366073150508772000192826214767020565067979909537336976144163534886479251142756356169955956976094406446235081888193407899402026523988140671611279208263531218372453984778820867091244632815466782569067528469083537497785184848792783049033711697840077155429309761864303527965014731957073003014046496223108627662699856940175460584402885155766791952643645330601115215232893613360752554022902879692932942957152265506240802465373695252366958705320562430927539270897854302982616118972398874094103832602890981778916182077068561839524405259249723973299197951370200086325397503328153649464962018585639166975929259483601638880227615520745644469278443025887865360035673233859557887573239340328268643210581855871930993128811977080737950792653767106902397804863173071091876324485198391979752553313876527434062558847425861111115091126228630790760214525499657890027306647861955280486249875821336790080106657920582359852904037150560733388238867870822179974377194024531219985152988463719626205283218068946973537321398208238693908311435958915946795699907996403124944532810046936135786495922801612609796619382190782112127020218023762243320327630205577751933356945499806789527770386598670847032213625660676159264502476136439374392790630746430790552111233373442165142036230253390903962897267506466234014260278794648798444999696611164130977216703652278991125471076993908064592114743101854489334748300272411429984260252810509119384611442994803597314802680175010110309513469204009091194048100614477149242515460207061391316535920433313056106830914945038791209045343420550980999099728778819616990902991033819515845150764563558302844124310567237743690358086869212065195129118346095127663211751347575028196716289658757579307636232830544358549674542711389095036656405234599667697770013254672023470226164524694267409912398885097207350666821153238893397386706055267777113021677283217765776410140534638768388283686775225051811203168075870029718303787449120904258819924669135610844496340120462530116918209984623958481681419617860537348307684450945289652352096847344328174865837638357653698448066216717825104427165093211388226483625900426785580427896822782531714521075049335503383934654909030161988821339624784916234949829632596489663411270789803635304656413444650434390813306736470522512788661734761785480501779285842340847615083487445468300217691099444150363043745532782844314930045917007841806305561187903856886631626070554843448433575938515603183260255983413763028735161330846401739189940132684167600459041876240682810351153675633388530028649016784926722892442861366632059533740775174709519038218280827331280171055009208353684180996365706038143533534330688635417297807235659261451653038635772436026364150170790796725118180303671492315368412541556167102754861580111026332745366593200302151318060603569052715559286683123756802577768161769619654318125810621209210786312711974914929176533987102425717248734325292711193733426658564996942401883031080779696028224635824841422755914759974046981370318495721229443430846855165284191266468011744766545712774324169862148286989950395539413460149412424173088188265017543439564947684097236221900446740962006942825844826838514038894974399906200407717227239212962409979657708673657764288103809139426326965301992098835106510193913768848527082094445965339057613750990651827564140922552919997070934906357097417711971091478431354478279290297132536616849708159166871296215938378591110270071853593100091353497413114169420512030284005031186803938958358345839042696790577394390394475970078981388255864183693982544707449883868439263254431482264310261098171018378373156766310044241800456277373382737792428028966162342905552156093268620998673162082853798677235845783719487872460791131973617482075649806017753899701416238380552841280884234582099273944485489454458685119238438427551596924670833815630914853123245455418977705072923599744845599643261272004724763957777610581998200883054273456727596085202525855274489174101424416421400703438119449330456911261935956735202155488133055969426630808538187076157860564924688227619218891101128044250661495294782606189176581091261354929973228185125977151451958196129368404314900585797051738585702257175638285922095059499274255867775846182590711233696526251825533616745812850582207710162029457136153790101608614921093970958772089692520351549244097009657706117931103927703088956709093972979083171833527004519846509254506967806720383130804085289834521928274303599163915153028193910592137696604083075759620965866867482765825424774138707766565365690651589402400925491879343176859564998829884697322364505365600911671584447286789177634367950509805790816152899773056290816634698597637268153036627360417026772539491065302930047015982472119694622396142307746983500774224091780952745511260021780733209327086534804715718140359279970693860168544608109900206578567759176628406244302369278743026066495049438703994914148059759880847767945796674039894463443430553528069313254378285158382562211635277093896148800456365142133020613460887389759200108307387357868232494584839947004579945271583091442104562438550542510157484146635905198567415786983630837603995107137215428242634300166455724256372533879003730024212780978760526304114392164600065474002084620628702289661582384379869585570650371608531699804864838888107434710662705495935719188146041057397345816712653506834586807432957377977572829167890479254600045607764756689840445144579120188935788818700234189110883688275431958390177203988462850291977373070794457982207633344742092639570256523397948309502972686175198930420947807596269880039204643990344971680731511973278737836086303563163711577799246298465375702060911592917854408259186766291598785324370660967138640305974180939044518957526636342555105891249523758435690902988449018727773766250786185284357491022682194922114121434841338455688856033531390265430528659781603501777782549589889720146435650378081651235774182944577366200588740979214277252310825454125134610534062457855300331115819099042303344876009689010791522609114971038022669013069636613471678667685082495050778662822444727811719695268017593705676776334903070026874736631991408830548568801352994021662250540526526758893511342563789842427209208487387752955019472558490152524491797857573713023423700377083939597286020609072513365332842401140881671442064101032001480371105254221795584149450206965014161255529175148761839797417414731426444713319073008016956699959217176129714055659993175201318987965120049089629900773086323629888941636431989686961890885595910247449675034579080175970180418278797717222356738313904823396499610238835935638191733094413647573394086320571762801977089990909750665753166282055442899812470906018037490552397655629925173837740899654713901112770021660658084899479320419760018292910735438850478133099830601784292518438457162993074580664505857811087571908423145935213480407556667684875312101979222972961612622488840860108274400119871228979328193815430458388533221774659223061654535839003683486702337890395656535079122419465169383764521639076815765798156296971881644848411343207890082729822906373341679941004869802205668820717372474306363607108700040805226843210467220750175023859729129205201375605657001945937124854299308627116228991231383564437459643515442446815432833677839229988467749748984869499782691323757145563881677261716290284457130640826604311900332513069025468834570889031768897848760369863584022359574315234290453411623570887373569271482331496857882677464917896279015009459262072096067375280572958483693833606820970632667521696227893724182528937199796487051712118293060800247830746840283750918424585295928631352278807477404532427251733208074185706501487556062256538247595162822881032360027980797552569570666668043891484846529194949962714485754255865678433516501289335010543046752640922673526574281747468525369756330330513941281855671954588812528426647952311029326294442072919431557498486277079918544032237230136317590568887041818339077450999050046453497953472120944059650210976130202463474696362248426835742775479395169845794916927693743688449237992372196926801904357874769988241727550617389147540628492363328350208824327846237304005422498716109966477945976578842491964797005389750459827505546334561988227841051962348351438023331009069900169999054753359667014991035286514150634177408754723087188410702785846125257621076186343557520251693887131326035625043506075528153335297559976861093801448926690718456441333655008098428729882739902657684583762343088903556830908256648856605177387812516637402633349670281797100392013300510606124962292284352300955031692205192729491841134170548944784342081714462198047365458566679153832423932236490422666974158647143280909791508035842411298482981328749667030830427825926198900053119842681910426863218756435934998687854934603545042369278281743721309807094575990446799898220038042278894052824470375525445821715588852617960020935705031612211309002436549714692271041559677688201521753306249204123582042006145856231212033904143080200175664864735918756333878378455111747404482291633895758133380089580681309375406045944640352973014930467403687873396890927108726248612880121560430021217004600583967389540131548771573915914674300584773438346248753463671306464783240570410382281213543070005355351266197455503875809961004162577415256271293074167501506948294711021019467421309968936426759002216724070310050004194418046707260177582460777694125758805234838254070680402158798568130567362551570091937867247615611085966185392924054395496400026187190616625000168019974086158689573003005595026172986387811345283224030397898394167159752306443494139798999738165911327570085105025349989867790344256634658887728054703589073076006067621926303570756295176397021774486638394455365030977111025535797248032611372335280218393227912236884547157728860980502414577408624996630901122365899863039851327181603458829962303095845900852046310876279223558161727091817138158740091654832775956826616141703781110643319386871029018740471340812671191210513111107819270658707094237083470006438025331745403312599727885375401093622246069040728368291620395268825366915487819070581120889560174512553015627638689025271532200754842691970873277458728573042016374055894289518153078843350491851795104425579179853366143857371129231485372025968528652193006489831801974360406680271054851160146670088143632811019940344694600068114463172272542749026008907136329936246378926743129128505613375248633177303208401559042599455086401856253404067107500061837570490800832276656460008918758630814474846466063170034095122418405500699507466981912566283543344188241264258237908350411142882269103620904767941265334297927118187483032232846752533153381539970797042813087426103875507890383131596547616771682986450332433123058152398461935624013124203244384847160102416860217072272216987815687738447063261685898089494506215173237488503848374091311000652873119316090699689522065173702467368896590811663286617004567156329441151677948446266258050315693399530305975219478531658540974906954796587849595430656341152398332535841238082706625820431103791926220002304477418201968676727366426592916452290845402491520621517412134917130913919231279439323477449098057924507494141128891544617756324647650793202905503673913470211877413674390915602304678991430386609279977908190224478428304321537324164410904213829355014745976858126463210070852042315413682265253348804735548342859947697168787292870815672079322350199688046232554260544939788498066766051040541698092093557356274363932614450265046061531349630001799060557029509969661228299747891117638841111356634319002953157706017758369665016175865267878408083189980997889714430296638613387371226411449135660241747226923240297883436123579289540640428650176762243271039674364515911178252399335310028534978487907941200677884634988911856164560037154287105017804980062084840079041397658112020090976767752751280711739023330782324912268858293644618926652142788965092850451627594703129672096306507039321564824504224176650956732298143565669850959626750206763983270220887193792363441053148930020873138419034020927513162209324926675387797137078295835119925709713535823038083351185507432022496179612149376770942880538681439021393598441666935719869627399481845834291700419286473505428620575488766397351951577026573760481100114206862946907440917397423958988714722597404273067533053263649782503020658103148030894538259375799018174877885770630917437214150267439593558883807835045415583696322666611482709898715900362592641016652983146002388389640109549619838624829479091063515620216160900340128611597127359331587837797022110030725802680655857246086752200283096655495622883231744235380036566946693309446736637935543260829893513968130051556283164438325497531351249315045986451498923312499260233946196193999539114628422752088394043728098630813020355995397701012130388249913154956872365840269013235074767036402533544118812744238131513947773785792999537553832000142370078553236549236782258195256474998732495923292887893954645990883856331579976214625951279036819721393061850167440239485410205666920859557535172590201683901063293077334350006672674763309112702312588938311956757054468136577937086760020610096443299824381112556210796470469944692034760182955760225982551540243968501441448257053918452244929364537489942515387208727361885524838110085635470861611316596586345643917328999514578399008178213578208673329054590769345936558044337936778946714432189566428792840834552133247529810665740205980180227801449552010031509981204649313698909637840200737996498828700404834229349166455362541472165209762218203019348747524538318664425800751628637986514472654410020399597252465969267300439123303594291832928564318080335774325832493050489541518471208205264480320428869292663614190488840381490692613738684334843241926663495350981949270206159245405700363161401959005293257412997688469874299798708474122647003225044798100464205111560707791943814898887631241471603701266988890383773128437587328816399105602605636886368130332873568110200163000798107561170140893622699998293031544299917667168740071743559323771015862727745714021301293660161683145665913873839045799044950925858915733380803533300559181080870556202042270696362047367500502912015713477268490950048863692036330883291196849119162054695044235863508064111228461680870546053943461205057943688857090430389755446329033932860200085362586495994376505616921706397475438908522156820077644201879815307275745984848798472432775045479986175018045063181408417258594066805297115336314512989755322434514338744651886974930277445278649473995107793541764091415482355349469689391896148949332536378771994519912869542623624480431179218829301918963975751123373080249911636707995016358098554727587889575980441257397387245184828742878043482242576386885787007611830615227967087059321127665178741239676442516996334894087056117783795011725644732176770394323495091111314043591119365941858174113965550890049861050474426632529507142420552102217953388349617489358448778990967432510509984420823005992741994686276687209655282671782555899150069445860666730497627873462402651192291335716047505572971029265039307104359375194906403505319491001622210056218036568365852103321006232836607356775730450596605436062315018487942666951101740578286337377162096697571549667586602836271115188280360067375889464292986937838800693433921800790148274569747560752323725672245170617349055341311482724852597690530026493493291298652483208643521695633815777120627020721139154851665955153953407854199513468872812072227685063819727724735425426214807812800483694048662630380862677565381269700168587395672589839231203119514045401444372741166799809638286139876148936142903141679628148870517463032970391620936202533135728143419812243207608462976686370841929670166890725401668930102943993311687513978358559071337994252057727972890719721529118573877183685858380728623819093216047477276531716874791560579075838771365779104878938484236833944217382170311210480268553452932273358761788393010665705201547397849198425315588262206240987104902707214242682550372802970692812346944404107146879955081189984690979951381189726361702781888924210345008585174889313071280251790186321107919415930373639866953802922291773472370660189401664622053797498044267394881157694257562523254626229659341158038706041105685148602035243248600591583840751863950652406720007474086507837322633608440837165488507501273986953501928409009478916894312769589900529748764880868529709707638309162381399971341206417960171673905425264152560730543708440330972860256512698899317216748997368371303610640535543429888576969410777214666672296971406659767072036791583479235120627749107418158318974223983124980985045492013199761829930979406337447188889426378883528107472456231544108652245418787379450117762407897582698210887261342718560026203871070447189749170800902827450384708344845963435811444464843631631216436503993831875244447207944203595338055188888896840182788601796872307930855996452150564688943431487255170951526983412047866962398664840172820318265325069524742727264738849361144934305726587193578336229284972878313099028888783087158723765482708646372850389462899493560113797548413316649787520778927325483269856107689233902221148648814507903118154480219140374855238905261546627644189049993954446149354019354574631662864537752768073538997970091469199840719692953903952142720629262014241912184307189866213980665310125963868148901142398903038153202716916904570859338731530204544625834924957760127914343500442395884201196789624934090059703799127285668603234317149045848491045071217083575925344967907347892989590579230554846653368236125465233439854314140540660761001002033155490738607688101881219388043642168193781259319657194436544575403832643873486166771425460294469313984761262405791140134820943518639982568388544143963433149649274327690478971897716062335004771967717977732018691274053940533360503091366054192859980972013054224523740789095285418289308017484644395484014107066098594432086287868815936459248047845692877049786714502492338198266592013117491755329045887972751779875274810535981060719966596146043136053643328405870689455659498866697727363495095395770387081077068911972610056471616324686936904459312264131131982656842621532173199933405812825718320501390597667824224000157692084813650649709058297256473221401704291932362484884876704544767594101599937912079526081963610862939780371550676339271137672594978160829714891309054219194397965847343978142224172640488388478106714713228533322534892367689037423652257072020473007446818361662644075954074525234513365978497324199196208776969853354857903477918320380744645888704151518004598735563880861828314115720385629382177172046165439415574554016609957903435883799560647699807075174231310413835516550247843507523978310714711106339479918308399503534839349815167988774206586238436386413913751499469190979247547086731431545771497312955826090383281047528599515898812605983636879376228634957816182842224157642414032438894335204179909856325148478115033675146752106434493607433333937130531314839791911081907566620857829562085390402733990743424039473260354744963837090808185436518610245891491729139428950086171701913225006591848162042152436759336061060493531093089177948346046810032959876674800287441855960242272683846555265182645946349850405453092990015641246275516104284344415494267055699695493488834137085143757995960069924850279101218386192702974148144140858351119059580103808132994832970147730062797407866865861789511077128858032739594684574036587109927335573113974535626044497718931227039385571506104701644588988255880290537045182947596962676506401775019113939283236291827217452526781756899680687546695738315074505550892117163887590011528919014831022005072533958630276432054050640066191868727682532652405919002921683928894567679561386482867320255335902804310403373954807411929669045334822841384299992739275854264080994375073292043434334417830266038920760452568389548311364557306697853234908057696092473768755584928978181801993126333126996311632314354242171617993590505787338249178935705509117033315327269566307076043067226922590010524245719339063496851927571029311250096471607423363954284633740680254869149043439177743641537524582917135756969216926731867928339719404667780477842389499483862383169206470639342424679933754864622228275705268003438613300002147803416408554619137939872866129261406084631816603073068933994611048970802998383446278735722966711078989027539885693666350105954941692740044537629432361695271341237766438685260781284491149824246014092738407594385432685299296892814978810135901871193202431089546285124039913375539765267496567837201872172197489267167755994605669202351170258883639775700992204459645561965598875930405721695633658243119899880859328469546972633027201993070288159151831187997076623834767508077639415003782290497963495700545542364448026681372202666675963292007656302748021766742398684756828457589610004247994572939841693901340656683377301934099541053292908383298802323045679989431691956027859312332497466511201276464400346534810130529437953725803613367195624497124545487344136431108201727695066708063821799421336981611401935249107440139231967154506116782879956273018722388368962905182834567070945972418612244158869431646180300174848663747759928210296891479204609506233375824704640382915590817931895376186422603052848301885096588726316092238628356921124673024524034566666585263432693888614150963185788760551642506884362007518415803733617384820788854882549106471460431656066803755395980984243571864404891600392976470219523646534235895622807975400610283391172117944225498784376103106401581092632511077940050447493549977729966157885567146899204713009231045005118511770959035288229111557197123743385076624735521114204852822863052025374963078362002109248111060139315808303833591004671027828490160415022491892988944360163060996846381319242167355912047966745025544162560586270800113577132447317542461078293937343534232143307325918032655310011426390909339189005379252845223585568035200268322832404363827338696185508028368662309890247581301777886468198255278000040376394926583092586127280162013482883833540109058639939145152492508541678274699039816099538078658536214494268563044433326259870013771815755353872183506901671544682391370648207437753501908473301768632795224904193351383182515378345552233495969761413784571941855149752326574056943906208155556747882873713200066911791499179189200100048955704443445454591311069115735330846569106324361322543924436003040061440958830508632071998905090708057035918093929815355185229378015527617315524326450853709036503301403281542575876989576000390634614766870218060831013010019342749458618553599198645029762025615662271029369136020949680338122391892281934749092123925287333628032242521393044136050194895293315527097903113399682505149953308461035545434642042664276753203963494057671868908742565929430342913149311490727231896843675390531520051193714171208921202044937709652858099355135564998395896552641215871991746053537080233110858963021308141642290904736928699281398573280457342341018767925561568231468840284106337797482254247060882798704339725839563334783592821771022745435347561372340153525553146708335370692670378844629072076446669125245316745143071206943012682740266213664437000299741227322216921434257526946163756993242482969780455514494275634056369514804326048802893084223967309609462858642152427338774549200588754981190245142723791883790795640359645905396060911938538164739942022078968433888515328871347663961654545974240429713468029303542747641177122296517063303913074168789664417729243378811140720501560564711864446770494390587376927597296458063832808135266352016486624637409977090171871369990793083704219884975282641937918097985565203581838215602976468617764597707996205191050874498545364126127962544756018149380752164669749012200170338828707149755375019002556996251283195333623710713674037498838677724662337865865573995513896418478351517086568820840381829275321817424748260561842247720913087259610899587849895479215804244083758310426333173374759259992218218537719295775517750128062951876477785353598612632621572559317636789944059802369248120285839010625435294611114025916294894688561599150470376277414636896629496517848703382447626875173157486034048262244369380641855257393650145843281546844346323340303492484567356355458973986495027262678123971680169532589812428965617562692882564078158611294543481571946242177762677991245580146431919195267705402991786127263538752975215540972739054495594483976389906438919126373322175762991084224167524318244040322644469933908800533666497090495106975676357601506782745554678605243432970264247131725862358780612322742325676384170601190621389833716837147292471294780589657090805827974803100171162716621127278235225767217948329368039525357531230719563051857741977508676784688058640535477807073651091548984611870630119153080801796579438873982102170785768039320519208257451898479837050773596664305363260510987712031826051228924542004439914127137207646271760678620632019147096540994715506820262265511718977389732268145388185516838874829723808994770318034053486001693209733210562199564249430610604841548196442317500828924795607080891391899387876424798437719435663520249226613078748696260898341834781727097798368814280583363529215725992400906150337524703091733636465091652350919003343625629388855391444919486494901114028206055926154867275514525605217481106289831753416098214084811885445208994529846727773870951660382220479868361223612340549013800122897258388120002615300343450774811149182629271811125063201932706593904520262399178943226038098392286691169568726460338523530935632477503391298059007621501667452891968996337795244376268593733367748866263727152444072294849303769500882726253277604300356184237627471021921296401839481089681993378654638910942769502608456640133739891534958314611057597287682030631469930679902673615853426721967692930088512879033340181349770189131258848511455784156949044429749917501095482785333154202736831015969637143561306690195762610521224999689242995444639177062827413601558234036362650942845420192755585899659263521049311408241480136932796634336380785095506516734692853775016853436363205883187838449238146258556207085174150088257277973938281997601216837750520217536111110124314689153931537907339568344284742436613006324205566335084224203356156472885889585446906341473792044698257057516067613515354817855472586025510286236416881519408399707560354861542440201515601835270242899312893127562001685598184404831184485735685706364863784300941280204920262899923183237672585608346618723715778865576477885871766670237574967395400809205374079977864105365822598663422939753702447635919528847714420765612572034053332222520094931159058888830348838114365446756822366557069286132886959622995870536742780426571214849363910846494743368690539510326289942794964962741079621109564829858921698181020229930877818572551204995381610746407466143238945012963315122576351407924487662109440287607544882401704039152647024826200488119248153127299519303555415324772432739998167821465185985265450320035288599291223846385696631146017942550317942827997256971060707110445353657008447394026343806176988129950136416798571198752736639884833269118113290328279842104695433688423670633256623641334188238453096151530647262526221864862461933608688714165888150923615108506697960724337513675943830758852455742339022944223584790847642888405919298647070504586255462967842645950597863645156418819791435685247947626895555060307167647078838317366587090652878006236559968903996528628941678697476427005388661018145848793770966899912926619246443053737268225921362245124706424214986830236088620523208476566140645932552087854531489391766329520267812860230782761683637345872882265214706949016367142176867060410181323064415765998236767452213256786891867100693181697547085978153965910205534631812744513160487733182661115121208005112339817387655065744054950720551176673300089396377659468211070292567932831719876889633418659769219612890116808090909298300040995780529308495632882160101461568538242835592133647287176031827064674791640166750363494454993814756236676370190691927500425507491533586228537836658499007864744599947203933832575428975712308661354085112645408742578949102251422653315944194955034679464086549417582157620381255851275130443619227775935258738178758479124389124698174634283738851251803819057568921097882900544767402885365950252799530064470586226187759500431837438323521513108891086663268484515729844948979358511279252973304164765953379971116013013625002739934414785852959488053737064489164734142600358413747795252313196355504250533843174440843578107362874481083012102355582739950613810548557028157047510225494579690199147416643979124669707752196015647665483673723460506618987598076091854062970031861720566654309222999294283636589734307955410149373375495969620787752314824685565697435912831488931962816585474137427301721496672379974196276508068179321854793108515221810251591783741817631069467196883874338546868343210033548825579158041539834120664464481606872737839081586899039474117625358296370135950588003796774398979233474785432481212058911124441311186839780817920065185243699844802730881096324534550202240261141670372185152807339236942100170780445887523003212987557108836925508726726213343015118362219989507502141881905651049126556247890504277632313913634027097866821140521029209152618161577042377292262856686554476025782053651242938407736783819377475431572651640141721233570524219120830076871734047949120334662542027609614735819904827603475543664271938226121863173969206814598246590592605263221946141866705594571990290710237832642826670156655011120535965622512075163589037147360945484822475292238347193971013627978143866585187943533883048488482947532235214716642059315600101914810908330616943583135677195531303984459076234288071458924107954989962919171681136665598436811873483577605864282332886469237399374321916449363575029898715623409055238680999500716446985405187740466419724772369846513944871010605230326961432357587458945807713004708013773624965127984818463054528630006871145587204378866734400751421605827535152174507439503675689880647468085454781062026028333425434637888129676774256496334848839127880751870768854342209839171431200215481593540670472754536781235410918471414579913481867938684730241568397513437877569150569175094366906267970611332622343720768791680116679264181782071635640772419161784366279475955976878526016766380771314915819189367213228537144204198684108894865505425329320206433824930551463105366159373284692546292755809481329423049404813260147798940862771906188094403760528476686586705164135192005017566343174993053504251976070208867828487127123023142303888769164547190576195497756617907194213172276258317223518196232915670405107849198535178173904030144926538068319673564322039973629409392372619405474959895837757099683274479686804688676636302720914869675962713010833581950938295153416344932533611767470165798000618289724759232040587850911977530559949751424698193903634921338840986536526440451022522193300131790395092857245787245927398811403739628497604561078591143739432111826088958106684846937308392369921537041301635331928491585524628420543491460972093638221757283805252174098737461922533406468765450593177518524317338085050360638423529855948942563409642269276039504895003638676583264081113897344481431961610724976692734734665144812401714641497860620146093648237560949510151007018002436191234138485053107113948730808387602604753090521834334980895512466513628132045578366293313815582523647296038044771779682146983512890762009599880854271721502284149396671621005271249139857147843330744820709005958515804717799615004857766314067498459500447195385647125096723814002659721907002476507137543540358922208520435336321064362558638615936930868402704121999262044779121304158523827969576292105161088128879697325571465378238093617486425005435950149099745662205254361307566468738811831966955453557132611429660724712535600842070253363722282230503465649078002206564045566471949361169297875654521885791469642683547586077926455953834056979148158902294453212079320213828173218874012740663998757619739995518009524381172262923494594643302284181707743171674611298073511128283508536201178049900839273056875296584654951589587211971623270088309126760241791300737992269061767582615069043780417252424747493714728678571752995962618681884654732263762994805447449932343178292797753533996290020718994117628344710547991970355047354398347651953020678926459917372766511286642417313057678769816930018495786204559546545154064788773217923164156009736995748670431753713483838948997461371531535949316661840199911764548988905391891041957844445257055262763259051553159526986241269419869974883349729544425942267502300363639273164552541670820735598043023772055551080043120588949943609769446712742502142587936270888966827397999556599856142867522684041667856440078264159525707196541470087747237244743800934131611829696574592293828302200509689221009299961717174968185589210411075281017117108785264371647375765360025329621859194939793363687977782731036053625262572615682928016025044647273357480464297058151188035508550899239737600013572834829278364192003637084411650330784359196227585170558538532538767496782782107906424495661335164832033251391002647707336185792252882030753831484523835047864652311061993658366687326476098817761015342757898792682595662043485278393023112163500280086731321636022708059320287548293087934353363310713523602756619616151288136823035540905817732054536043325762741053349268722701075966984656998808209667286017296960704116619023480533435405629262461705208559782162971859807682659103543465312151906522783034797266493379931551242104642686945271901385419543298706895432375055727589474802305932550332945738477603780271361062956836083094949733557512364567484374635795926170446465116619747758867013011833415500326533978124491922792282914751100550738335561879299611876952258978513860872442625814567420900656587887609957567786450172134565636510146088485888330935607754520997051271364273693098625322871207489248314695646148334299887050382746679429187500859098861930687884424670313510802839940766626011437319005905339013537880941172321990205698177713532598684699993619625058010653442697510262898323503519657274823321139910372435890377887615668917516472603317437699287638492347175931457795092868108875153763737146003973758314100638601530871033307061773888282105404321481710619575415811739700886231303820256479894713026574629204534841369259875254197326802854658329910371667068883690826127918934784666000824847586451222047438118231172686992333217400449055870750044743880111578017040002759462613344405299265490812322176431467761245272712794200147884167489720830954043060203526881525729661487344515138980302782428953751558900505936970009570723158650754874616371028892665433599913972305221568736185112448373075671022289122893779515871813179594545617559060145812345485874845090520841234341321369524759604347746378448382037594984451129425963657283482008259784092183153776075199502316753512952363745747291460970560137078673294690202038918653826877746000568504653283801152310900351760123662610062176697200115317342731865302085638747315818218546478000338248717602297838736522594645834558574718316843775871632437855124358986997606568519680460757999573880951501330283726229061332591837516260895243707466252318668003775398346212353248371639949010421675925195898972489108135012395506511770275972746746142424778137710937385411292038892957158637475797146674808420820968348766401897394408882585403608609388001977599988464932803483887163665544621539489336278059557251129250233774658778694159896067285452851392058278188785666250895428514847576129771532575505572643022437625892302960101622935422985046078993003235107153849428309520274221463031669624075182871812400181078111303449376841442248764054132598026471431901540036061399751376707934224583949405152567752843747000545450384756048504118089438148332100502302919720368728182720568580041861812304119648229321092579906226146620584325790139778754791582556701678342233268541349243410737599723183600277878141222044458843454147755763652683098672358778759415005238403903515384518026613010843141012731235692015585131959878596766679022782146567590488954334822049053219777811572671768835771013040721491271766213487446256855041016889287348773699643803681263758998975690838824047076145100320203585125661961405845088304041904096312757961004963032962472970494023473207844933747834824453466568805847055649030616428960508015415850333384077854038605991047097394807232159589424854492835933590028276615340736514633501765720371187181040609180099916732092629769066780533616085513829103019357654538799696243444218514768575516843021601839037931554371763568455001758923929761912499313794268353204863794573064227316308506103645695882837613571091283620831260243252059861520921429582545936275529067130648640013896351259596752983008661616319357717805939708883878154140545659446188402758023053775401070628781101100496906287551328856894977210726617868536664863888081136552544604108609465927255630311139540548949300365981380318988281079128989160737934675839847638957550224290536041353737723329919996380145813657402607047927493682838916785026207651231653522327376000758178586944803256354659547244795155229332981805529257609874537747684377163986428042279271459234453089449395863127165584978324569938750391289446091476482287726794004417365078655231716175411773538150973367180264875048844385750262026880728821206151380621144805174037148295857893260886242004575815118600509150163545066637700477870261001231920588098959871499523011071478745697878024528317732202504796378065922990291295497413432293087785038828463887718938492625179922489790441405643425488600715124878246267796115686812249148228489083070066014100751669962637200034910596414919927756934790992092163535805137746027472119828674274746619339454021314895933353841752524736770078041251984723902977823557993603485545186128309005389099964050773196511008921104285425379202076079950768996087857723616015369865504937574410741007804573712466751711631194822665374774645547436055858991087806936604764339752781568494368860596082237756391721618052682146460455952915991831915327280351022210624826822439261521384763265147944374147278717961059724519733351548141549062530121758538199427519024710409714105962308156187845963151433304557232765298259359352330522216138922881169838803452401563717822427021221359030460184098464069561688794861652409394123990570242300522006936636488668606175463397498375361974541286159222445333533545007605898045498651344600127645158688227927985972061339123202946661131067194019404591528156869242125229801796626075454073014937665338275996930224612461895327501837861716207638084123472083895307522975576903987418963584674524545483574757167063757337095133004651816903201480969467433891455776972983541609007185196442735030887835282424614542383065293400799288380373918970810780251758758476204489720408296039225427217564028808779598149801246813035113749830959794548233961327769706170887479102878150629028394657786867540573527894825822194295770941889774202970258755125496266587867989542945612400291231213958024922469174468081412928562833601060412352371829935984178255998534677015686836827766377190197554363305177762731286968807682994792053055878150948469408276530094134989801302574274722416094710757113890212024692038637425407736378679405977431805962456255212977052572097696803752649275519446167431802307109628370906306169235984785099388718278653265707789334127923882404041734421635909707014996395944281367828443918821253948708581624291626524123667832734576085501595214830938410927631286300567020593893672062478865792013029751179303525140025352121371639047840355106988857909756664887582568645730797242754658655062524956204942350549112970599685507679465918666957731240782973312968831600278421079403686549443704213774484794094874997974810990492736345706244616501262458818613889769244195301577178164897380673926173303811868312093634880213287719009631475237701645768470381519777370513457316553072212274528947457636695435304509314432737928196110482457023594570056872899647191941312084695930503389690859661583597270350821952595731926115712293854578377482775213344093016750960482289604648050068846769431840122034980131920513398186243874659779620818437685858634004680055089960197030619997181665922693982385554846330150113129946970110231040503868771972456235131461015271118586826098176385027909828696040704187814913846342032031167883937748464945057813191403261812975544627787272704716537901719898063281519560928121060796635885793759860904204643394862036219336522696381464222110479718176349530891193201098322011415007977808874689165325910279009328973583583418514010361078490201376614637606243548380957130534791554852769288865526340094660463565006002354268079891963237825091179396023042702754679794835138363301801701966746648981102482375152319664609272962771881975128469407817998811361585495580950482150281044636486446449852642378231699879189669055102468284876053244320999529978246859376593717878105142725285954943055144004616079485238004743909442065424482661756199672060775744107794665727597836845333915898443310840289157692796498253516589362149394959256498750059942070397513548084271322010801307167078423696144287608038874261958981727988388718161531027560163423659135674332531597518836439063421316843385871147649395763667607243467118218651596720538408047651601030995610006904245905475695862345774966872970711715385406698202515024999682513181299253839145179714879141366029979816196414078322789763857901690041376645654621968626890311020437086569039140946954189581632754490493281315076946646431173963291982162028697867065760822965143117877175432974751283530272666535896597250978210562969500094968678685163617014467425794344559423641611770935398139503098282725684140744903517973985914901267404918846881037440133465603669352861995340250069196506785504199735883275329651785421970542040369096333350650224903521267393876477881103286933954930688146059806428137863420275249980455007863206283923147339029907287796931101528611325252985751294417450004343501210108501976044966294206444441788863424147384937574682079246474680616791810750976445222193925431528457425095727920135135595098320824332148784117304760563847373681787364938020477212493536753906428468516357757855756272923847376894776414076033618673348141441543031227641207259938124756899123998862560238287955013228032618075071497317866259446727618075086158132972877929811227572874189217587970370559545750261181186893178775144555866077205732562935027909352661808281897971084162090108772799074128615072049054257219673296931009977156814917859256220094164267178795427223785506202464722683274724611526728007272129575938026280718092154813552370066276428994609619899126860578193904482233345605148244321056784243685563633968607805002452843643198083515669954835316425302302503147535055892154374712803751907225067279108291344863720155657307468600469940930303652109886876710550203715731824795344878367922750909239585965438297213299794369331171270346196837152817529823613048129093710015501343210971569619384978839432921546284008678752832704865712380232119748467614537183685035143981309897519886551868344783589742912358091670027303231041615690575709271956621788519120140107700376177794162737634598955811274253747364338036071238257196872291265333645344370685440621622598072226191943107815102090463957531310622877265639957902380442363201544834105290860902109495669991148904331308742460103097763564077306086318315518962409071308244313817672745552151282665864999275884372995369438897109609177139086844196421516894409714696729033654772030829273021931675743845004653433166454810095848924352171026161878958642320675111727874331530981850405015905409688812880601757452670975118886401114379924906573772909208276242391271164019488054573708881690589131373887033845508984798132382855586606127103155840134834827584081602946726585305143432095996672296401205143557210515125575285790764768119972967827101513835040595108903325054120251158249396447974705275466925758202415123155700798140223268019839116687540233339619461087866819899456555981253088133322286910655730497588440826512589825020237358437511489356195467307692511188071730836486829749298618199868295039708972802614416072166040134374803869046638553197889558856969745823346448301373431373010132792917973806337879795917770902867957059036159032091670050448805812358861034265233785049863091107689534687902807101188275900609980646929097869124654324710051563209649147017379303514826859460022515036427904885696166238366258326090392050910388689068050117062358160421280333602965371764703949045339459467971172543640295749756785093331201716893960871297828172114410647586934719439528221165271486629764803961129155956185257532402602769575015400578634735077882025344412782296890418676402468651289379565336629009366617354538703860926091546604717296518263247977190795045707704832561284040602809732718072863810428569329884182856982937783330681134267454680975348328583103329987153083329443921458724229381550963864807654739996170261282500379171883809992477118672228916743968535323891929051154675715616699651507863086993553158734333522162495309316316736824896036725647736809814813657434670464829578015811053807525652740054279360258401494143687483817697058558045805183638006477693479692660174025068925437379634046277053389707142560981157395601287960476089299560405750658533386876134901412191874073406884233913057986047202000169581724510727531809467618563673333813994988019505355584707152165603201151529591487879664506721087826730781714726496282937826244633732993140077624546767078687273863027172793009964080615374502187363819323153247707315800960040168931995115620808326729106955340499041670462983886090283812222949031036185222590488404588142624062383326076097612748510301160187757755494931445583531139969943208502007350078030502472932783685625464274986360642266308727625194344567626669646946171383318563174329526138844158787545662549174882313440957445312596904074730864679461758395698655373000887449317437077582379120906810268563357534728710838677549603712814061331031374417527784236513624375373368840011711515265625688252196528657945886678859732992685281797342645022493257118128263832236841998348012366799363867651400763830357860647378369408684709269026371620155191477540841924376307703594681802908599565083467238125223873717372619292078488168121339473777265592669532022973397950601525011955184625124082245527699784517641446746635924037570085745053235181273063623780334519447295329365789367851377914876665109892307218948055328612049850385820735117300870859986639658954118742060003889757447051161026984919746216847523547842717802960223711923747264137672420843278377746869512464321996094067201021959605145397601755889620102779409963769403090746406677110187956059087134775285301717176582742305177397334013875649579741301706659509466746593220973863595573695003467476335788821283238671694405615172553100003222571267432263320974181586046403371158880916008132237445704249984024496571464377763125472555904722910254142793446826188158274832857859645430066789854723897309913401538554938810423846768865935649278637467850208135094924911580017243570528010378838566488775776383835838819920702089956218650360913170152840067842592772659963683282534332665815147966807266174940750928883872954059219184402299632248405831095221147040268081246603102387360683930798690326781647821180921772989747420360245395659421029863187951827026907547961393426510451242391372606479804557725506739902628839314636580615637610553478090519766284719268069827149824324060257689631881478523206676322869045181638286880478736398282765140330730534102048779267524564949872631220827554409897819766578664670920809887134437491326694887696119618148586133851959408321538246367161242576378307914675575530813419723221907624657516833773783018265241887484351105978130099228388776709151834071234950915494096251708404868722207218146166021417883751290488898674617275377632206223185946165002804602985590626015227213797887559498814753412611275327511552570020205341297356354192540074064005200444328346275652434057538727064619081428847788511049168103748366244010320504059713601590461714207885523468554044259457516386058290433578967453477455644072429525682407049288454546239476142973079735747518618886783686018120056650503989817961873048500966418157207046028950605886249679853281343114430391491010683293233975398041085790265017966826449581639232718738521544911867821936244817540648305318681974330609144957517790226335280374567302576304342787059956931151418785111411504612497154381883699710912382107211362423945035243054724965097279421528870739098259233708815816480739876494774230738036607749769121645309362088160683101658204772913071896723223490643481888728907571254489750107047364937131329402892792306426153747945430159925257184829960327192199556498959838990499582951375479613200574802972565214473623099895923565127067299538103236128617859387009832636449629660954844257000337409165858148827768758536969857633928831528893092475582474670366751544169070908455157489956161435625334787846896258179960299389330376726513269263747790896307094401252751103465417214824956498159737234052259651401154475752367877923607631147446920339959339853727261977120487851624283685182705940069898286505424167866372406267978160573331350949260069421927644722883679721630660732149528094313459755471958572944948704249498402170467606590671992282748633681322109343890983926216456510396933358104175576415504122075545468500751408282887051991766649431784852327500876518923805649497375036849858518133250218783655465194143468012923144486199726630233872579866738676558849711487885223783308263189971434283551544661496483853040039242411874893032148404732117177386105823144242857783996204239617123079825577042302944531527098195202330360100141924200524897898844099238756947756576937691181993782373984938512006624058850536435221564957062969717331976339549461219785116865761566054875022626365536547550342574042238824332069331323646659824868370154616640121298660717494004578384011633933960392374162478427030426501147566927640343284724886647898864347754640720303822989887922270560099001005897242870478950585848708682400110547267902222464235936141337183765017752255031266163284275983813699134385749927319518426553614974913295373941029981118459019308068860651495051568746295948812064846825699739215190658214195773313150341045259784293556445161355878683247632718883906870291645726205125128386657047957840940751823991216832138022649681795608088001879334219949157097617511622312459069307787494529822417963176871675446389451414605860623646413754745254026946336247016915468154474961495926902029074896447110390904469577178548511221202826013183938783658345524714324475774530822075598746000424852395180946161555119507211131537167423944205131992029940792945799075132799995769148735726759970988527375649082430731963440250993607939022445610144038724073561934015859883110346593923206963989642157527468062520582477524990808049233544343293399661955525895559665135068067650816693555574291366222139747291354038374523156805214596663494917094349162626643322339304498447543051418643705226916034585803745233598733375555388833073560001479837355415722760802036771478294088595983115834362944344827592923298231405190332579806953219250880154782072040143171243840791571445509904164078381233165383487631810909055151778194473387166692619345290371399992633952706951065966750935116117768300985254337183487327564423757576526949266368962228751311949533724118274652881243537042722668111586784644426905882119566056586881654588184382896036935398508436463528077094566457841340838081293231984935695465477965122614308896661749038956964452016361504519573676334376491652550120969857004231907144411764275312095672762079696606916079088330015877176539909242617414000651791328334348058139557787797052944131314878200778708027076083505050824878676290305381162565683521365423301130634730862487814743984013523875608845407042462382288484407751530444105161676527679669771180185845983235055765051024675490809512141084385069337190783543495643281343583626743548235926642932338924742259331595988465831567956276412095753766369891291866050769751130641187753306592770010396292093264122433072707347171785362964514586712753491805940827092300590466172049898925662257880808682794850218894587912021513606187702772586106469365719973188604427208731839919986505784018806969765677610600067540559268349979963411671119207073864716869663308985131547023269850390752249444956540575693608668367008923505961008247859168190926618994889515779118530687252129460017237132574395202778083418945788948031202181117785715689759225253109699167754072198092658122099330726072028180472678578827398301433755462518080757176205603349270071399608058778089412971168449909698932124137019170792200678263670473175737288007496986087113573137906824729886933199880674082260303449325842128916594075335190972157042350051283629480958655117081397133196895258181722546197817551777678547899783263825918335423134090969511339060354259553111321876687623116574390293359677786244201451922643236598313339501750035622870437708513074343782161847541862097920992197462820165416277225325882480402031123565790746856439093242550393970690400527959647551455255067548247559630708946210363986387556339436547989512161146775697623217377409471401515557680174098093404363755639698282795469997020419015880614070405328246419662947683181036131497913077317762068339517992020677529974989667342470357008455304171132347997449160482413302587892875493604291200029852475924331966300877192981935002968748988363540512272117619647285564576311574185722132863822442504958785412764495457463601598494965069593881364314759542047447986497272772236566700676154748049739305801627735950075513325048231912789506457073451815265648165621145915312302964987981302664705246328811217568609214565856353170365053098525289537534551325459198698895404506118376925354452320573282011862600617039401172708882635476517662815838883704752311472876530933452740636443104582114619796179154469064794760194721172721434768647882283642642415625141509061357938847667911081202100137741299746299938381648594698971276734849179307253147502604117799351049532859006007039679997187671058673293454522369768867329053364089613737249083706663595011510171394026391910056605760345338944620729768710629219706926804020856759166758257490278491849984054908253991002743807109068371528659446715060044537653548420690785657400789690027843689728447423674144112186727293787258918632651332612831456318593845687609722060453754827544158277592822793304542520685462670557485340056385848613533252166413951429038818178670697618262621227553199773380011289956838174799293548433764657024465897272437676113101722126696070135754586143223280578449343041813038003179185769427117793409909149205084075386863266434390108164871559284754965001773267049222956646149545418190803094251338090771932878472130673606294532040434287513588299415459304871143751781037821290765576014384865362154668324603868877685892891782639800935725366864397728023430343934253638989414133546224767743728068688881366043242890304000027873952721521255421539994585721897459174259947565563428788146216782246896106373958227110226293559566180036836607386699474634445024849077207305527557995303834342471017018778816256035797934214918653037646351291919579854786542847822456344299544764516516361621499044684490381005096405052882549515321327142509951052522215027372792660876686967227389943071383181014621941784981991933447959486777832046670948232829988110804510028392014852271034835758053242648068779411963961613390323845120880981129496615277457206976769081704391955156869737988561327555449512057750255524053756018397911608186233936247288330685350421221871249984238839019840891286114472933403778526243128055582672427120424718706093935094069224679907394468545959720388953258160439580379455984631198688580559321109971178007498196666408170008568902219439101757759144255133550516462463822622367244947760974827246587679183312802553855006795770334963441866986452007002659158900840125423726367573167130752828189137875214092112234660924547912173467292387832413427714337563935182181087827024966460996338915667887914006475183542907522676196506021166590316159330312095399648074483224025355805958994151315851178492920389436147212918815101450687527689392526063403254825815147904997620196009407046021626043409776233953577642752708751465015855259285750687913061343333293737059529759421307759588374224857892920585275191169497936215987824448028740774618210534611918807728401828594581638570414766394315876324007616125564802147538544322560786149034344846085171017337907678431322247271665805154434862856042091873767764059460504688666934784479139173216500997794542761979940350883898150619813640963975307987959590816201228407584003518894176266716276487425567578508754319348333954792255446393760998996844051867113024866241445387331855361816467818474707391623891536128280202606493122344205530891702278408562787568859805688509995239356672129604422257568628620303878984546759845762921324695302861179465214771143979202263385110356763461181406941987087808500998640647308005536010698461713360125885356202714841393723943072230808435365783811407616983001318328205117085904602801855055082059837098284194076719736753528262656297021971376936784417494090939111298797622353833511800322032039704211517714365560212940982427071296965192865558011669737830917330782159898884101955689126461851768553270487766493558492959788652447094483469007197089026918982142915861962463661911541218087450175081858141299316378362942033149519217733105249998290876129904786260385434942565534752875271926631049001620653662033628052537071564386981927085839662581994652896274154667273510547806248600774298657705371974803473388891456494125137486042056068852511070931038349031709860198861437662769528563345354690524959783913592996592943868554649769990985957075626092119625327252044462210906999757674083657995948702252271332209369781737950163290678449807783240298478560106194292704401890044639247097346593306821096532438116973651730284549699230240012259087486974948543614582026876380806937626008227221117462165681303488320689971599039277153875376617561674792197242040163526194823996472562561677422374574075630129863490887061608221675862306194039741875152670008611214940392991999874319225161740898034434091915726344229908204293351949044533927167081425113004718700193157858888401283200200771636440211196781976433174925498416829674473548237615647901571434751248512811742187075382845609200767337553115355176108807515182438094258635769331267357387632895933409634195292530838491309667723581631840064142143921013260097938494718413678249943547757757486764230294355605110968495434388537717572524021242948689145651284561063482335300888956945707290450956837845229478145802833026398277479331347945430194945607885206225553911378269154514225202654965301886891205927817878652480198702933064243461780614052313190184034283765800515781746980200476605728787634137349042505174127201467486585138357445353377941055554677790816023623455815354908355992516175827232832397876682249500893892902122361868838146916369026428742386509962376700305668193567699719702871658550290167639906691021093789799725176045313818105278851821012893227108750523673824431070815522103600075216831441440147821181525371412944400758111562294231728218298530762596400723287315790556582375003398526204114121806841365334062773484224652706152465168782616258342253360393027561057103048318335001083443057443475562799127295776403544117982125515743785857178096080261288573949959693532734269440859043891345695042692133729222403799209675095178615048209543259297616081424611989252586253652720531009830614888843990660992120135427458138938474453729657966738712431325859866817753950566244720332497654538779303230838541390691008984063181176974378561339503220979379715120155671231888414335644584889886040825019871818800086193658576126356571004478117813728940876557169298130473312962090522850125235537374367582326962147468083872224552390612262957682693800384701047597734204120098112915314225782327628522241684773767378425652137858582511651638968411949124085739320048079829216792870281946390661860698442859439984898117580353796269013641145944944914544667206578917689876877161496048034570061219651719826860664533547779977446872391022422691213255897466886212003214931156625500733523004217668554697053064769131244335991156298759248526087408058390807909997641016023774467353414580363806405209627700847832655761488251093668424944127260764290523250011628436012058138831426352515026596496802918671734796304333201950816392438177016955820785549208305171120396433790655192485283696393265072590991640875190441405207230504077914349598753851407517649622894424724912567919887930027022306620328881279884560728411140919057776433423128904515658598928702972431748477768906474184882540903419564221882022301253365106305452947621205083992818422098147722398110035663497092726626259774480091692596214614141030088424829912835417246689794229488563395606947464963043617392146432850648711903866844059977210459795247539346285313066026445178138431334799998796261861740251643824308828605851574397912308570807585314750697371559690666487185014229134158431547617905938364148725186768338046435782268493344172677069931350562541999179074821833868990219658827615094445258997118662138137035611574934144686877912438349871824614666658083260564984910878068528526218581070478634733953975231722224031495128495281967709694876694353398689947569496968985576930764766296713182799997485662361976486904791741405437392068523421617825103711811257582494762063542011033499112965430933420068371313857455404969623140117068372457641350499858281256622187374467655738918314137364658268500198987668575178313009431844036023931533438396523109019993065949804794654440220289178051975101298626656580349791572334323034549789079104103793501348007205730687166015533809205373071822485804844187742148329632413433212731436111500825759509793336451042347598304526603431587602056872311676337341986461226279050534777851001920738379307755098323035150739660974584040699291397051311052233741925998928614130212558865251148596030068223332160712595826724556757274532028844196857027997425265582958630758220600594317914134991121555632348343801806432417999919282928211761100951535357145240214500869801734185945827922390749913241069134450879251347212165111562936177806154229240053900371303018501251836664247079241625246930363727409748236995468145879097628461977984315338609074964237402769802535436217069299198324885761785426282891431688972070058808721976811391888780488485145782830620114922925165597655204101139043502412796741993799215612045763691103074833512152792152452709898610425252732773600070510440336605125217835539566142304945521846396128941095823117700094146091868788345377680617736687961096054172951458435524881248249876153146013693843824354759394021435844634944914759340278774468886320082845138929042149060152101551006836250517657358624392225466143474148187042343854059772972959750143583386295543359094941969506608192347427101563752400817956673659288015587546244588499098767820760079970517025720739794831562281055643862060884770431933271689752201447216917005868129793251374972062594196173196294163044609870166606375863051554911457238272122546557115447073949542984814237848662855035180179146319920867271720375856724478126364411018981939425364567724478545766965982482106610973678698259020740271937152144117139437238172964164647408708314746275991839906744275798216588662202017513042170514769340488545158026514643495739469695016086330108740979892952978847692909931797242457718020811601259120096058651124995974735012463791253844400881121188111599517456443097432438241899714863100196202907234367163784015609282657392308312597120787245623960294800560891767574185971376904234031846813849068974035473528548608661241878180231242626102402220594827412347022939168020592284926502480754396325594923174865402350207472866177722829466440844982780819129263041865225685958275252104368221563243187223522362526512624664448563221517630874296837288007000029586953038168203689259683190675970248258987507587009618359751656236254595421414066010976423095951580883528794452801809125740210849431468311356516428852176604513420125338464668165497192324625773787002409617356081053521841504661096156808709695149285616308908308260494585954457932648367278257135372756156750902086403701501452292315319689769639412776246030116533218422976280474104655301338430926155225472478852615053351719860253844773178555873116839531534742108486101680500907050638407504319782705597907920068537975928210045460453372416855923642660499548453147052942108437023904957545546636092894315885472863487830600017381223407265724629053461788534100840007103253189317154193537270772021918960868838120787065826204984464127342914913130408027588180244685064766101996175196435371906564269135287737773353639008700970913630459963316237369582799674094463542434398896067689066316569260281413719705394842269036272377670336342535625121143535073972035601965227004332987484137939889198246477233685377360836078046691209793739790086883352081901000464200713237954704982532959322479861315468281677928191155363689338759702604232078196870858575114783017886437856366108700764307901569888277434087049443606875673591394767713692744046847417504181227305984702070702054881360336522431829256990823551860316794790027734918960376586181661710751151885767732041208091304975359315514663154825061940276737111655168021323329036682211067536907308148354420747125529650342561370135639284861153778615497130763323682130386923821060730092048370089413108243669682662924155564142119172396051900741033462232340428381891767042403957085192463602478456078159708503668167413243729691173047437709895054370695547716976679379383056156161550097169334802798180866147088791085722776569063331870810600244830242772879014371061437756365743963099819651740408680350805892826294609208103367104829930062394400791149406701508337368124458985603669598335258655661249593476567274814351360907991197912344900682762861289727903088820867945373809777914084323679492533177704776133778369226379494643718711572076726386621367525089273590210467533992928100737050846850377246753710583511389302266152126364583392987502948119791545792408345660390621788308046911449464529341004099366851331033147158383857106207547891773260032143653600420938441252123131023201377802353254865697917086631153491740279501680126817824609034426181290421016069549862794690576987255168309407879107825663680686865180147966327329678642211543899768779419233980341663799894780413649938286746363124923930449993953584869261623793424556286667479720536347655199926149963162108721783967805487226576845373496292292886544406460481032997657197664663264011857820586648112617897165316940958084019634687622744661789016717165601338216362306523262600249286282675029565490794529454067556969831902713973757999829756056594926432368427254042827025197151247305297634265785776448232394535810561299716023528762939128802452666112682524366313754240529399977050046308595289610006253136776526451922826118474265454837775864045886638154201132751713358592734132653356405369510595275869705244250471530318765795845659628538419186919169505001904153904751556552049919241856018774471331223901710803422645080443794121102487002537878053841647159048996134729959395733899081730250178339687962867644963359683742822820304944631267847805508004283168835834731870580672337217881247876807869925922027704188771360360190033949910350770300081304119085760879230356823377379034532867343905148604255222713014911629412600905908517306381028451205278004858954598787723353867122523670950847603568682447152269086481524318022089521405994615917430973176732820261183170102658283229122102124585722466089579580585753887605906630326119024396939131163961194910217947539456354805386235740392402185970817940050167586362350583269677072394419006811235266723524364157487798413287954127336845900371956879073579261988548072764144049566251812868827789244138069858009752553268487523612217339990745364651843173312900337559922131838159280622747764227446185685017371620046065235925757758282675855349196123134308608191114239114672159193320106089909010195647447540236500954501336900264114366472042940757446662297747055273256386183096546138037803668412041268565152148153599984185043496744151079244143722066074472498453537898706768929450276495011712793141473780503415660065805882432311261616044851237631656383716159243006406675694703275675187435088837761572741819241654040623650314567784416008750368578771529937693582694851306605531925242404736937865974394897572490579262392413173814426855014995724672393653595313621670464448161705194389957115360641280867329357322223780533010352003657106579434896622257041439968076657737176169080855611696934105390426571289529852245341535437145060215582536912051281857076192893625087935019501197510814363099219501287168666864858411875165664534561808522872081842499430703973622134041550700921993400874303289553462236678216855810817900575448616407589937549337968472886801631407135964702869583268224601519480223812101555711335600038439549731753270053157934234306782288065913783168781571211876845086954942793408218994110805500195403621159371458159018201790127906099451092843513025398853336150104029197541563349146755828743469753974273508818373527542622729303550171520851244972822579404714734885692196233430191398232870869504623160012324811943283633173519332291286916859379100014853182184093192969262495817874430014882448811750304114487638624351284580496366217308465719742864907157183259313224163664580186630404990727712742775893147056344407111596100199717038520725621688484897979519063533350521300901469492067638167251437965615204091165992805912766842150049046670995867544447321822875107869434661143677247186319874147160711288502939486230663342362063845802967336758078443879518371332388540480995240413671498974001768813255117204971496492648688988132449622515833099754425304638535096304136550983914092954172996154646848957931382739744963925227684039487576435903750303275166265176485307679579993586452463978036207528368328042033854974106647403617161594916326061779312757336529000405271911795874303230082396760853951153169624993641248575287263759081598341051044164912516470380541367823213069542833438468060710843303490220633031454950497566352478251310930502874728700815027448404618638965358384328442970427817708052269922372484063657366604232985360284639829362701059789519605430821768503584310194732453231717834525721911949310602007729679458599526902669063539770752063641148053268359988809666749110887622523507874888815706783143784793449660874716623170307278084258195933801839079572947885416646139687092842503707754936934602155994815964755501448032360809018620411011907912247498538486128858921909661585802768103581599635290410054838248098165016144763870271479430124204579335216660692307557254837451104893075044911813901940693498135741771778533675953564512489742079201393583963372103961533002144058541998551189462334728311079956838247852353505781946834016583703848096670737392487266310129369689952250476529346162819300670099495512385591954010694084024933062614001834119887387039256879316190010390686286719585463359251730341786839960527328237494135106404561832235680748204920849917585986585538589951457853277956397157349600108962511254890313638746275631095422727050649107480849004178398892671527271951545622532740299873480833592296427106808192826176995760924195993938119324175889234990660362776090936190860778334333348317312612701553958169156412974472306417088516578323920300260794775990541581038609001089565016700647075574864284745161152070357065845940112426493327040758436400456210243054041566166804655924758742357280069952667199393771680152484138918579161320993030504760338415788028432355377814635121212584187684931171581976233025040708476827549087172616215506720589842311348235088010814405090977594759431702770683696932349595168217123767382198872340561539946436583471359510205974043281061951194605714370179873820278070304504378655240003137053797870213022290438482351094319366738906883072985677603449746466046131180491028423996558036974883826795565626420045604124268732245487942958669934473566757769401826198321139048294753214986328558049445009745321579497464908772902378195484312042584588502211582180499438301460680822319854145762382697545852807835486128822000728230860619094728803672443964878894445761773144359936795408024671335203778332787997066683468333434037078008528363775790813136763391183938381158706204367548130190933028883519568273542143678950869042849425179865787526452563194539711102395254256325266426728516458446339586568481574343322925113402201979690918438455915872403250717619913380376783858024250134569483418125575566057110707344273610634941819149939008070601223910749369013039185651141774017212742296619455157622562068229713520848088603336693453190686799634260593632832071823353036448862777569997797399105632464540162095111968261541145158215338618735491681996516526737603789117431156377741074714054479403543813288928080872244364732256482756453137457816120520659234547581646849776025360227836158841512729139717084258857113940237052482777535624063697681428254628436878290073818334166640435899788634857803590625266125802715006801568503109539132519797653039188362194649024399820376500864717476899683790886907889418410818522038826337222701205590720434239765449338910675486808799609940855367315712021270216330709000713394861392764640799940107887842596758895927157014957206006221004970559816028633362259635736955050444419329936950604512876559642510576807172863461835747431951052421768840950791755502042556953333721281850649776480929719277133955236828888748977130378807381977042428609162920999163485742551342089818842220092293072024248937354379448365375627798629151182450350584272797902065583501260104567751874629921813849150256013853377026345960369397291224875405667353185019610782137332363233627983929930894737215836863005607417597537418176549798388506847767055834826357511778840433538790405684597605161677074125899015524207361904181201673122826017061911360588449025200393066959688617539235889179630953011664119175850273802642693407857086907102371620915804221088690333408644758616529859971056221574253685158292566695379037310720217422769319421569670317813482808673669988041826642158713313556213343237127520140381894917309899114725440303925235865128948629249059984228923719585983434059378169562889059946185932109699805209743403130218774951867044397734475174702900198970936239208403838465021014145282583543257703414972758741675956105540513844769178920342545136314174825860168077785416889059195663085543808812860631836161310025188138679438849257823818999821077096567311891506625834452274123859448399807110650425399705050324113872045785859237485013159775801723489947636646145623862332708264354592872584267143940324716634686320958732721750158606129311291353453187931602678265374996099786427017483326916510939404225856595395728305135255658930599106290867213293997259818022394968145086462117780327633350283885242386782228317076530718611659664260018887647496973870210394734380557349243775923926252711878002089722837332877818963864538615155626902804818927305191495704469572994035773539486523575418243511501395639102177027722645541561777800381189353090784600095443804612926048664049690512933798170577136418912384618878784956631921364923863619320747102987776444834999129432430537862395336395710470073869236127634824419084643331287814138886907733747968976889202755190046492688277229262990477368607744411015027623076964328325941212309146531885122898757000609138671968814051240434672391200732884873990663936939060801626571635953784292664787166599308982342869057736230405664400138364240746270052294764607129212847141143077053888361714200466918146432511373812029704341759546470459463545436155593778138538914693041851025655998822496275703355792351899874492848406749789309014758588557549122551991728701622066830793304482725257238217500642093724858220596984473813557284830323278083806405098354705663692017145313024854388625037620648495990042302718017998239260468930710936853393456209441293072453230400992693965759397075343471164995658268141946548398220148308897106906358163901432756226326935098542325254987173835020018782411123968749294611546602426299844266947772157385813952664109578398200272211882819951935060782229294204165973390995425324108843832871378806680791343384253193540964441928386266200818968307772642946555957868845639916251774734981377999320050447723798545476119210314973781128453128442105693722609036283285820791604849615265361424454701639476151782267683204501245970898572614651987036526518238432505531156822898806972264284910412228207796834723723012474721357472802450574631705845496855251819431522267837029262136570470117248739722614837492259043875108922629883936263585202306275355983927309838296968237215642727043919787767733751903929847672579127052790419508884516980282992578323548074195185452312630894135286748676916602277772857918736211549321836170346757007938208137347684585911996206465975689448891413591435251352143224790851832604125114393702850012008295777185974846217261053125683668523159662240385765057819187692092642222659063914156732334945350682090474291489009919971728053892948175070824407080854752898712878844868393323954974953607858923064122169094720619442678659827458188534823663274178112379571132258670153421449855462065031230678699607713267621476422079723419783166412624693640845576920445673760196968154848033344865666066128927038500949510174021976383479198617190597063238552343373610011098305294881964534158726669825735597702607914466423081041428691646732188296751766842299069132930577937902896894102248559173213171144861014352797813515109795832074815339732059553562989080552947748479001315414396386036799789815872267611336137661126581573265373099375922963637315953567340145804227052390800739187168432200382925482970041242499080007610296565751904231517057077573512882143535177573544782460659407641269990085881759150108472245332739974183401996468259894757343331091625291194339618870694194801462231669059301203420474019822092988750776958231870134527093897443909474635410992508659451642786973957376795326397972486824398789279829416402634475369410800582698758786606120575077949670357424392428724545560520160864954490891760404039250732506207278729555351595841707611668194639303183151189538754443511382650668683156533596274025499316743992079826307678561301720412298267765935976355067233371536764238914482203204680060667557716280119099162713266368451238862201703959937771487738361392056598394912939241288793411714754600898795232590384336941437577317952086475831232169973109822050176734849611014098067281937618716944822623419020381760624813266818475545556898389067267772464446156079116942467530418733008286586627234950056701757351244827115346932800429601557479209395750131017413490392242834986627206733085956265975092983634995250802215305433692070326120029328670180960713320049195142280300799680320220592169349348807963463850304720124990597079027709808988280849887775157188657891206152034643332880124989722357768471767464618087225911813781866937721514423061708081316351164418681998163489575149803172581230442099052255319538638732354108479010511182367153317940935618769171973125745646227400841793749626624545350123526540709640556097163777454210118922021652567176047949133308939741923567034211262207299545342298108058658292470736006196930686169162030758367448492470723294298654590543739186296626979484770354472362328156230348930954897600339578604222560483873685232014189216164937730703260945813753350846069175749644238800687808220086299458193235495710657673109496049866021290349590998957656492776243161475733215167661902005421774049682586105738192603415748140851328588015451688027587085278988507010073178709953695587080435940675373226680633020385207272517053734515881982577481973209800244747670909038791194490726728824045766381164962362508403034323817675618935025628349654281340075494395446887949883197828594678684740079227766529212564962505780064534643654925664009592147830621550811852875875795062012637829456124430926494534298960674621347857593871096847036060629922369269552607093644019816523666725530159408154332175166589303007305924061093706729250013828980712716593415045607223467217260199194552811720067376208745668844728815680678905140743943592832945698806172243357060838177997086776317412388445705476098808105777844480462305970951792353990625921398140548272943352442335812044597289285838272217751246062354651742407632485548073028916874367423535559215617951921309427670281065658120505259510799466436918223109822665138714083042145269754793862570283398579053284699419815302255939010823404675696287828931532274836179617514851666557178581722315600952503895150153524985774273371179099901109518136395629314276919527766607636512678105857395608617450268077067452914782781880895613249345270033807671977811732416227358494015630027132484287009113775423123131786432165636633083964503520855735276600096994887809438587107200901618494143977859010695409244559609286951780600497740584452947687404450942207462881754730399460940108414498206225701678654614572608330515983949314629025223802066677506938190500558358160042884013897826079515446571352173260592989963219896766754037499794457238414994692066775520742719829658310942477849311729355324111765752753941430750260765446274140278072358344066282064847060165732730446147761205433488134369595854586046439084851318750550151223140804185790980170811799633291242898372585759570791657072407429076557525363533710448389005394359332868032680514730938424678071773788199649086180334041460503072263408647880076608326369647004511096966578963859404083595539873391759384100773827103376246298270894418445562258279852769784500763678977838455130089598436954469629454462742562702144724709728292749856118240144337345323919562964944004593744344998561083446999089122119544431802814964758324281506368615676550154101911512887500309241530124892839118078785730642138086435483262044564717281726009919064105538828374330806894578428705868535234313928441994236407133428649841063132344624991972539918458274501383204387122537867983332598039503660723646057699805094895656945792784478890416087496946171418858690702117519020616760144534961514122961006388557276474829800355836358751138066131397324169123160370209065027323665948785439497167553361292819875422644666029766044046445114070119664665417310705246121716152259427786764904457643271372720383273522814005425867900670556927000354913350923308655341696495169982259804544456911304334219151400689539727939425696313843140442349558382862508150924969266358836850049326313287145797301257909248350664640910716504961518555512167696733095764693561920496756735719528912740624817841570005258649235202904619164095177240315693939033582574775399885898172260989757841474661443717687035482399160598451214865723482460612063171476796424261521517584095311353758082479296485686922429622489354727038369327861390801171812196760857014154573866212380285326992760906634263081980615894955650297820425811600097408871199459916734214777514717138751824813948190955430412733804066985477406703753372292689416078275282245533292494982140555519183052833868198119816602621812972963306230779574103796130497183980990184965348652172243201273975040576716930695517284323134983283628414355330819197720848838213744678454979063156430397641122853299626424654671588637532085257349313090472155956864293250548735382353570943361960332156390979117970884197712814262158624414335809294515837327746460339103799168759574461424780567651986926219874242332375706036703466712276037558505804477628257624603233566587832048234769532262013255736088000653625485129306875113712966437203110339202693117436879826937957327238627915302505873388619067764653478692526567663467507453861044083657345584224646633280896502421284456046743221201221405696238034701367493148347987838508501510392053605883147755004013611988534337077983717983098604892255944710859104935648494177521911222732614365580467934441062060066008319285795873299333097914345316021023699174906519015739964810314855059705650858564594541983594220522793366156615472774253258139688996717913449627421667904762416650118040813937472581052523585601893543168790211245536021394717518865535164884905745590246519116402520664054887953536715492538314584930120987909414568178771186296381760072510092997764824452633011115461047931136457467873687570576245078551057863607819147119341257853375124834064822688422011875849517338820497414717640013320893622165798809496597128954197550820524271434177112606412561611057926421759056347911297485269417794885500134199564271142635577106078856106136436719894072584204852234717809329668957545423462568805782687389164243826282457979879705183423436647452829860673387183829436252900284619838217264389030800637816503083513560119071146998048173550911486780608929365564719762617564707442185877315129609907223044280133346013989582996920888472876911043098814611294007893199965741402055642621833722968059642898645149844056995104689718026039238558165017760114316907785256278112961100335366129071447935167545191918516215555018464907516731839792089634161423099508152251931914229636692716364038498809277616599815194684526490867146228376798078947726802347247095192852519332897511268029763213306305629356697354513208294265343621645280957189891149143122902559484423573680824318295089406533306400225430225773812688710510559946448018437352239369741743195118053465477194690730896777072445646302425042471451380818837242214523153364088997102259651337875389643904583206178739085363559052420683086012446996487594225451605953430342677223524469746854229319096528982921851884696987990028078571109214645127710020448402509892812774236529537680486108360113172705058914654558028203033246920599415065498620846143593152116351922299042409635292284340311163730145655318583407566760072917578060932084220061539212829354722372873906169484320035454555288366434501443780883328866076174260339414141849524433085668035377067007404554561128606336839284917044100466752095708007470261997474973501282455220357962079941200314703228088553315481689615365940898839424667134676108303400111137097589282336770047028107185550917238959808261678415229904850616262874423419533198637741223884967139461172368897179588518204165081980043520277818750398104688985487683327343307806962070225735412271393952549390935042818840964820683091376456094139050132853556006944299560501586909078288912420011155046577298812569900533478241462751224723168357758141511729723745569846342033273863698584592544801381409043038042878059470511598379080677419263446500820371771646632783650565335649260489949747420243822606501779437083740861320481501646622117852822997459764590041216296270602261576556579282351302703891325520137453414766994636548438012490790430975719376498452371266873587942919440047890785085591180343480021967541606539364748651347937117664130410572006284149809841397704157075141067651582959738927226520899962124632739696450452116513139248971849773602470587639142978518441236304074648738615543617211436816773700267786010676439592780455409449174125828055893461489341076436299451535768756176763469940023322326779196216385545633042642534131512683239936867862384311791311674917364058489202028687316391945708477987894346208351137981215336622825266249813678804812109645096489304919359762455539937954944813071640714012882080593868499939540887038803829770671155050127810907086879561437160820916950657700974635028714467247636647847983872141465681433011850772908569790284984994156001321817801297617696457583434956285868501949994195074949372665684415679028739371943782754878212392613093784960459889011842335763001760204290366335220009079531814143900259483652121604972156950114090349331865145085102139395961071535100762382425032822299246032538999783773074736460223207981048057593678142818806639849784827711507980774252960705295903223502433468214482740803556933305058621822819523917939416594942613757328799519474501981978010301970782274503950063098368608197049870017949684909000125234688025867412252578148102026301945713119124839876615344999777915405972548613296290094224576211044316083311251038524917842969075013450552001265171587547960584907439587920229507448680984159654406333327035957033098891574227038071487914802405579056229723315251752691252918412148582729856743778987644869179120365611760804102687777431730945839016233715400665631225109856861740693369239405590363434696758741759792972389147011091743504957767140169965737857523855812223923485139766042370808380696064343989291704659736016093269764729620176951405369379462166477032285763990367026649734932822150827965302325579343225033593227752355548077772272256765787311438080917007694224414254513201320367982854254516228484960636706842249550303223824591214798998404143872405336270818698545948050137221653022502855168255579223056711056775159470548040741502054780572850590978251543785559039368997533625789716751311467461398639970573050487776031085434310263897945786277221123917844175280244610661297017995631826422620185904694235975208778807194817548852678419662243942748774678846590061365522370948793524008768741898152300912509935460612407642244786358967576396414685464769363352054165087789610685658932895824499179755786584475293190958318796576034374388424050036183923352283899329679749152990154240842993543713528023619607144990838455378022097611288582419601182924494843789742780782486170805860332428223988306593416418362472673580458782688330970746819383484229693050727907191740934240842666815690946063394444601517322169092083276809843499013485840398269253586019691240451056198593319883663436362681504160824959134564019290702457374825372836656173970194171681487331032928665570449350071311700115799272180668044658314138747592243675928792091883089294397690529730959418452984296693088168755287987098833777451331238987298315607557815545326719063701024197767881991967741226737784546189994700239178329163670453975675262287182888909631536230931373093590422657375587814804093656741549589823043245128300729867910254287056059112306721184596713470256771616273104572549574396612838191705713966613892139687911350335994452347065751927202957637171342773740304794789267354482029534921669399521684953799370052830129503932382675838795049583481680282485688881512395745462075421334808282615524862658859693273499658737237281122358586449774584853619753811110282413157360473383819356626498342345915567594659763484304817555634986158070343879164725858318925668496825426497813277775685263098051445959187908225889884233465859638845898245925753843344082439978020876613696563746309044217061217708319548619674052933221243949899084449684628674136872253864468134315997327686902173309650507915461515304631239361711537339385003461952376018724030618463644474004982403159632948641725355330620317275122543601409759899753917735140718114329477989949102560624891145316453209464795679028493342377831788758401434555017777133231896520467058198696464297527321650372234699256130656660563904890801440045443367425769511664051532174348316154464151334450113264405511965841957741031249081891564402745237170963447135172418538262317140951420907680060494222735752327688870476196929206955854271413631140372204201840190545589571949750835176577221608040982805056929659447636135859060281575813608310557928633941239543358141898760211518690157419644455291406862223661123455625467741248706995726199341720758866949270535760700817855320385595515160031985170310208570857569689565904344259001057299944594354745325320802779027532843421151774510728844528415505110276291285326563264605968374057649921587293231308973658702148829758802520080395437771564339623033697955923374959623609040922466553839560392359969379212861299399719903073632413156398676007511604262231425482041474791660749737618819039892101726753070600520033757952867346842317956861859315336341902498178838942139579696667077445211564553587634163851598776882659917554983046410833821895914970774410941105383194984768435234831001103599928162236816243769749639301356932503420301193559289799352822182801784927926748659689282839651300765678421553592524108250347821467364419088911725904552635764727485984435049209392038675980416445845634172502142073562132377155527428755683249169201652333619465591399437558573418621602784040749618232939423084551202604914149297158929563982683671643890726060455442398374508088921931730698664343891463394863603861857563635921816883013275939983193837557997859045631269077088862961037660855872805033907396751479063443143944372348192075284990293581646913188831497394822237895357810433215855852218976949424447327129838574033177979005571720886464539587032288265860880956736970525048176187992796934758423567290374420508184179065414051571931669268947375477127772753888331545806612479195403352663726273074748435736630976565216709235001664434727280589643830725477841193720640229202737028615641967536242382063628631236425408499612606242912341854707733157458655138469202200652401027991923839461434238250508178187166431662847257513019076545900424171288388608591197267061645005166231689661255294688448966079835600459134785191456853286251001249947027697816649818507356239921565866342186224516922809735169700424227841561927125962235503570743679882879036026175878719298273050611062323559536766570880830022616457393644884123669052194810571579834095573346347240406795200380234015487508762775174585964391784786172043020191850142550084611699097544476183094307678343829864200695504657292015808547172996777793935704442170235918458204231864938423204637661469187807080298466622535579629585268712193508513384150327215758031218060492865566837937530393317046025482023568797468539670131398612255139881086186968602873156336510835597379409146232912621565306066365572845132120694997396301973905467868121584707196399822336559298626811134081399329868863872671391475453566326223385374976042685832461794382138417282050320039583223819390063199600711442434906973609298797853870163421855803616267172101789231816513203321819802752767523845543465766653395721043915918537796132723836264543228056524177462074392154260937120441625476769593163530115944947323879507349989559103718250179483693100918161674494529004361655147691879264585584741486749356826924912135531892859099084399306557387780513939945786176079054293912688656653891089082279859503668874622603243261381914841891782053565002995695659219714369724136377766715049441676178654413910856516818972887473614626804988491013709672265095777136303964509443581794777953986998621382181786186185145137468015719508298518256089399262724122510977539423614606340248731491616864310380629503209031867386036163373575711885408853212354962394840357439973056054380999491896894875644345404211181180265475908892620884196198159569620003643971256757450583017981351599516130033058273440451498631181246115245934163248299933225702230683103604060910763304511149999223130385199364139402363207700162723398441849411639817820295505576769544044938473792686449518731595375289694782506327667660929965304381651589981176636265226370961110854223973737920679001692502198256394563056499153261127223558901114727050159458212671304923865320517606433273755539599593294676040604756669277985878469102550217878327562446602191773683889079478198662763504699789362620683351399583819391439095308668118855482999538905498125110264106323373481593349548586392675500816636648827375439348413771498207825175292382074865705891019301707281035899353013357783224321354430237789146081653183112232284888659488802641916136415786992191545687609268028402297466948161197233897098396786046796625736567873897538788418836547087326906169664059996678845098164815921868653899833766541324304492994250052305305142044558711450036198748636077347428574531730476452274778124358644277192341593857021418996770853817686428449180869129078046571855695181558289768689822115360091290002179117515544341588830897539826143124775600489543771808870043027642016685560439945418466722878715371353387471144891788514949717820597366393648930798262832204077929594272658628954179494952015539292578486239352016325472281187790805168565542050622819083072231292847459291590817462805849331076540426934438716720082110076547164456627857335677682824844697134728319933110368133594617555581071106795770549242701230323671384583449659308160676422601609415380392253695555103812740084967136445355915895221556133848160954456180306227258092321551926444774707632546076393371483150662012189558886130838299846735910876638060325081649576706796895118550586053293251162227069296747006464493739326246206889344460560892459914912936535756610525028444447506062009949609432786843356598933732172714690670861223581879943748900246585126415310004872517854299554906173078905704168622492460708177484291566944625188968995320517065981468707289616092689766944109025886182757779647437801202706793669114626076864559872434526001650166251518372980484888991542645307204174474370962640514018754612781044216542100697966118235569931696931631670650505736797069476854702556290351992491947087359285387058362387200760688697054062001152293982152415745507717724505947203890637223474674475524658155579450526193162878930725737004737510092049268280968519334771882766767895346380221992123723347911219933387796811303547059183948532500984518698457908090619705136533607532505772664114199018535565700691854321500419605468653583782624019574187936777639470167901636659945945651838628866257168492012594144178931637786115284915550511547863834184758261938010337134671164261806545774272269777180282863998490674565549786032620713896951505288424230341163798917509445255723027364638584711491036104460659921560217605595283347711855573296151121458758253252584698908784557212859988937982925335629307261541909024089096855690611490357784706107976452529564521348836429107003282953040689540796215453139994042302329860443640914901411408550055829563305547018352921022855302234049826021053045632382975429100575625094208822518128709401209950074069422949153688976921565935052819341176652921878796481616186871964600013962238365333709570692653077681132030188490138666823619036145746223822241901123744027829699844156077233606593794458067279866048274977543595335029869654020672622808856343497239284138594944087033670131495585338629860250106784664125601153798173710955940611290694466043196870613361522668043807778337155510566592440933655533391113346926046565637399716839360848179123466340116753232114017506575811321817844268055986212567907178137710509453111194374032364405621023775359563328928908572293800872737828855126041712989113066500099920224202063488552660410405109239773493538225211966261074390701076027794578998990473687914940912371487771719519421417658900588141584659799230965823259880936554397548449589627512244038850661018382479614688663411756155257872178261907642380217954392787297440311784473129898703095580151373523188925869427956270801665095075570591213369258131818233928748277789664329743951181921292140911422491445156885978367983249401874172716255330303045334777953496993404823338434027044594657478507691573926712024707835466457449452845837788468007433159711308636339362946856067291150273986235572852778156583954171614328932043592511150333814345303720213682150863514746652493086630890087687401813490974003253004172673640956221561337238771466806856307117796951310082018770672928084751215159473695110835410585597220186175094638353812173419347111926320473682927439631473574968342823807916516956797867363777935845705754204527306558899474568395654962940125521241710934358305524275116858842725667208910414321298367117036863433279498872023341008090826400827202312785533670411380961092453445192369128503819807888350424285392051798249511445996997422923711375580703013494203866794188135149313601005129680015495205535146286404742372204078117727260922023804791656022215091511188262426657882323012319794756630582508515601903274550179524698437667795316456922310250108904712213167312223387476740716026692470469845846178052472322985004210348495930040707136232189706300849557284753922435405099348605662363942582319226360654267129464638642528451592798967815061383358189389514073145883900328218657463709805350834214477509818123543987483096196835197093094188111781839710878400318850764434343361304284326686027811260298964463482635900602173736016777788933392716956505466922867776576425323064956912538207017367150242924685740423561243018017810145161355682469428332630909278557802503333598787362250479413050230685019916058487941211068524856780452769687865958949277158713513227922935954906312470017635318432053350825060840117183307063375402324260033018627373845857025802521519039405249338356039107748491091003713374345200141114572564146481586780250427827169537485822392112468976602177293887870511459862738764190484897901215547887854871768829693088323011006748803588291964082620087666401520834838459078889269811078124370367604228985982651823979538505920589906687726826642151446986117345368713596500980710548279123957923633211135287936905292151281255738804879225908953147692710717729740325544024958851964291896037848685985685754381964615378996453337151502498308554228891121637456281522401755518406282171334638971834086811790038434988135634168834828448518735401271208983804589067262921177157198601523326214353674484738339560939912698818970176563964696418162396224199722133921141259770430215323458979131315705721287821266835526518037821875328894400460688180429839650600041314245565990369185421182622838387935351758698923594291741662581761182252235268225608590271528203490765611735284960890078059273797906686047646688408442481812160232976695110836671547062495034789367508753063716274236130034950349909590994598205414845332914032209501188261458982326984025543642950273429725502702882087156396882126798734384258749157645968448439016394578500048916299285687177550826277255189331855778480345114551164226659340151744936638669562979207451558861275579431506233305905305753908151416148946806212657224997197376882300238384457073168382217736037328660457098875311629921084122056054969239662956629126443393584422952290523107517857927475439479902678241124426649408089866391731533063964561716870484368547960587633510549012824330011268989065325253425559302029434690587526739969847755346409645602738873618908913434412462243649065177704650980612509377007996207884205004325721786550786925709493203167259211666953416720324152323835681724985487604714748929395395602055309236174917196364854689138347266415465527882588645495573535739238258035298455387467562770025956376685922016477444175368832592195499464560914489564277725235024206167104106567972402063522274470229254923551130008920174534323313857446297569611487049675482459554036072458166783191736227228219538015021799909794469401680340335995835179397151349591126010538495001819838884780907905667106425535752390443104840806215601368247210377856488565894799385632755860943901781517074317644924868812706921771497773443844850122703470586022835702598566452514716201874376289541487464969658946494038177697780081763301231769965402560865164372451609988476147244595626246384771012831290618130277757478432019108496241134018000387492744467229662281404977370353619414544961323634133298999303363990894662076386811801046880683374719782013821945603065837841318606468119663912800305337007446987162648134536215283197590330095174328043477960147596556110497680617917933150274125832923792081162355898197869414724608347949638904724444618392010286338534252977868875974423699081768674921225472876532495628534234328499016698466667378340469921409831061245535147288568422297438367912275044187429864516790189671397296328914031839259700941760727348554100839165430443706150975317972114154540309677127843701549865715912155963142386309769911382822191907595344936025055253641114059076515127477880069988496531924102508701801941150361011755464416876931762084988930475725869984600914402226123854762309374855600704608896744331164290791221674858469067107536327813385733593236845986495930115330768558629647670659445987833782229419874090533712548783957351790059311607491273795134618020440958596985681247315153464742069155197212771128996212558068338999991756676235753267022647066556663318618530703764684286139407866131820308113076423964143221828894027896159384100838307057481128583305611036582751096503339867989573059774875376686073193373411006855907341915942804717873097849142403067310005393101598097855768014208822806144711892842807978954016562442810207998931742358233878503480731498396105997376032741200031299622211272661856366755242741525681871027573911688940806164865226733363223261683194112963654535979646914847045879520323716917756885809405999581440558533108000938304954989042529164649323305216529528804811481391786805979592998353262346146541343778557738604209884699108941237344676824305304985163728266667969913226313006886325965587560486238926633824546831048801434025185982115940758959550521718058107156844394019508669584139745001766151098072531726782964018126106915360064147758302962386116372871150558431699201436125622769022481491825752013423697022723956813021988391138174448766848355297067068723393656931299972035122605942715415319844050005347551331440201432008770914575896723712696555833858334118923301484112250490111484517429742464202714931231168330859195505528911922017636301039521642542698514546949416708958030786592548190295616118614994462463151004627506097911618673493920103710574108988549857633640983001948172928611573168303603585814667356462182410551962811835006185104335692005286010123941113796219078013754289781014146340710095034862425706850207521042928231168878368565887855883181156321738778946726655829036323844532379356490357866171048307750151126582965981875645773718966581505334207365964260273045257711466274598750486749708182476419542477086497771931834030478777840944515294499053279517175799718369229289733363825098848339001579521701710520706109249494567134970305990552618334747606758919056082317581008249341082849582271685912247283464681594289086494068807718376323324376763265327536160315578454645185678381472872895641256706793234134841457124335338793621522172970389583025646633329312897076577307550599626494112854054013825332941890890714195490545530651317218314506343992228805878317615499026208673642064214245643060489892497100240739660014952033181644620891812999674491332169498647668900527062901230174199967484858569522093562493722566209017910320570154657182081035878350773124312315610222071454199175948002843737152227587264283973735108673659322816949506252979567187411593211316107946718497147977232030958622365020041618860453219585272486797247296751962122523657113562846484008086111177855437754190191076476928373216725554727312595344834361351733116225219349076194035291708562564929952064918500287614881407432864459761014187930801769436926479030273508511340440723739243794260204201728985098260181680617589335554802684132948001969709389202557127157280885587620597362252524030586640949990453122969815809128368065668047425895405243689781806295172146942443870228055352281285827003452560753619236474551629673647198301520738388823035911483647355502482132058798280569897809871816780601738823713549442261287001594580524344456232617607069756349978470062162743343045447637125925420852955272998986213675260018090939311478268755315659658397903456704573999275975187656806933474476127209226803017195741778822792173984565469473790784105273520694570735021782269604031859787281812521269679655644410729063691777995776091892110463179196233325779902329083488092395057978997298312763923493032641649948001748847782275529338191272565745377431241973330882447539859139347339035016958397710679066736940562681385267206546209476792362496055774575528610225214383121277719903422076225596413676403590603365674912719983953930622804092268421101713531087022199232207867529071054735031615934755522172068226009649285706567932839879028903558786880664197903484158448009865262815987763208479193456876764534249619932146462798821528002117783227112901322985823852497830329883384451911670465140254624690209875510952612217543536071150375885969911046660224621279359991132117353226172642139760984682978589165185420491717000979741381266782184661117675645497352721591277173362381824110337016220049319276405714412864576901621988305488743594294079762094012402065835385401253162635442178250262333250409467445335603390153078772916040929619100549590654537575033235449809955659628773209483627865920612092195315802141889034690033857728754844255464205709761236928090886611826782257060684860960838022671134233678272120623509941337277698673655759718932460164144787962783464961508979983729593226122739404119128982230860570867694961655716845750783493935668586884801020270424119007270385228384894218512422087326800465208278144468425054236387351105481586431996816717801903429331503421503525953306410871732930671963539754831293303889729654486110910710300909826106491665520100150445856344232494661998913263706147030274583683411872120414363845752543844718015529055129784312860665909226540960769679264205736923031185381263445382627838988112453226384711991038917470782828102692058316068388635622569387243441331081354428999831621175156934592050911612445079614856191625063025904136593320717746783115998597597672995932283014045343079561889511265664295083349504051228319745937233038618857934100655758826078685862258035303948523455119906184429686682726443530272080297460003465544320181489151765067935189363392014495006826146142735654872443712181646512451087983280124135941609976459440353529996178037712090314201795447010588972446530769264604003235672548415988323412807271338843166911779706444693487456495066834978590675100178919592110675547511052979720364412782443976238669620394761714953996222836593477384869158048140967885055081179408000884890434352196371157605435880439494308376411153588959984433906158818689978058295617545404918381601662050589156633113480299591338947154219487098393917550924805907554610927002016849853705892864146156551504948085333591391783755371607859107850753575357387973500353258109668531785675657035266873074649843262104566670564256715746696410341382769471172857022968680016622815464988209150913997235764914682173935019560548591144935049490193913310024721763012455104334607457134447182430699195717001152390067668944114328041673423267605495139892421206236436395295810325862490584805054087692983939153680841573468482660633642772760937850105091461965861592546440441950715797472320261449984900415391694329554075871381757662196707737607348589150316992115394606760037419429791722488654841879770918371529569472974022144630681407849501986085801748265600628136742257101340301418421499926472497064838030532794933769173220518703500194593687510593354675544853719232388284969386996729074116186539616194301478714322557310441647366914095692210703063175335239808540117788241921108532474038503415813001987297715604772839739983935238999915128478622027933448887364236782886710034992376730301577766938788251460034409580421659946716936737498628566752818620452384184781970038149620650375231397241555980869863206113934190281009171520129917336486121435325588802935428180989569689491019024174898467879645566460197305209811596360921683309117985743075616412812817449427745322622149765920879693633368567210263941051396634328875069299070417099965204041834005892464368933776931859656352679790232043985413506195751179626620017529679315814188306058986764560450211865297121451049968112746203183640766261287934541935820062094794343983062667185392144524827388075914231744465901061625784658918485645798186382949347196715225289896976691808553828394138720380835383238035281991105251148529485194607531636693839389254569843083012544441925272267291683398991016480335443629440939398203531746532321862188566182612713062165526218117322428505848907994013554266914722737535351360576304580432204373343191194272586612398114411393901257648272237604544888490656104823324517435429728506784996638679601180298505385868473126987117453032325896430466261067390309925559991193072916510137611231509663377506515509518341276218211991585091613544732140558154840357767282024048549707841496183214259663050181864003856789963629862540436839071811562383223079462328401397324333146327517285627177757202166638748349684225291869377773764735560128425069261016654066266447463730894284595565886661920463272106296572096818315017831192742362622177132317146034820976719742347074496359727082710553633659002165655722577451051617229778218882898047544010981140876760404941449095141123825873655504312887433570176134882668174417120974446826426336684835941147471635499650550738106229776197439034064977179763306158011933020010502891510534144256192267659164734693279466599162427954529865254449669324520847677712286177198394434229910687827362736303986641956380811839202383406944611307776195950314818199524894747107849077304149885807320074016577211887458199887995585938079086888227726964173778578527157012932304915192414638452396620992510733417163681319101005240714707907863385669368483789049857596149710575719961149562662865579172618332817793349720496834002461790682217064796223111441050870463772575243896822757397933783218580371382608287379363741250201060321150142574774820794319092072276212771430639941208951664376245973810443247820464489296318225524834766628766334061857014174983593833113504370578778235316038278924019500260609746663907670840291348604700369991108823427527411713783630782951290937661895711457414401086844373520111444430286190917888948888241161711348993147772962667642337252153020238743032995630550719996760100957048769264885834140717806644674680025949587195290399102332173120504826715340940542982701658390004697396744770131748838640573908105670189605142358459685198492720493707157648626101249421114112134274641479917725434427714091782776559976161804896073790288827617611315390942338386989741021817508761848722698500185063839681161048856280543465841502565535546343845677463584463029031877240842293268889333106131912023571886351536619569255247763852885635415852556483798388685464402457923794350847840127118986919926652249628029808889851883408438372975204330995669089417105717949113369384520712413751527071308774413067611007974868379960136992665047170011549739402447845330239938210352359737944744237764343812972042639055409602774714157234293429938614210355038827974005981323489215925174516650911825301226428829200316394656922396973216474882095330156898344390667461696395044104723089438024700561688162092887534174681320618763176385267721069294318757342831465601679950246990484124127381102902491676189360571054867250955196835411261475431154196356549050590487574532174472851788015609501883028163334736745833904423833208646660029679507486114636239775449307002019861511733255224230652887607925541832290679378049596307305281187394047222663723571280706980584322872444608514254005149430155890918678363175047418861580620233440598636005297963036488051347720205581015407937212609754818925589533054183990155905357556169230979345017361271405031726325936808490076974246374963962380546838547784798105969836407107720461903804225525755372499201500083256205094963915731274532690188347429878905870398265853096320990570963816031376300391203296139060986297673879356071358047485176495103921364724707987356919811525953038205577611806812021850180535350019584069333787454364414104504215947153596641954629805325193943544886981928762534943398750426195544735571645847274210534976532148973586066380098087055889276532836307950620358421602881057397661635604561763559164181915591692645895704942971567313123719441787320767463311954976172660773183435669274088566388750831744197674119835795137419465963734131985153394436609777343692437189246503259774641194406479389778074506612123688036963247286634181855674745350968065656161865114015222762455515689353087350580454341417418027429540741234480885062044973408985401788382237558333177231609881173948617899725069886907688913667177320087193692030738978393198183560046423615223720462771962228630335619638424737916038902428189708432601420463246905847728544115579166354075847669099539581368249080920661399625662228314177996758860613775614944832259414872203881770266141065161161909973628120871519570800139436838266138584946592936571383228856914969761195419858922358724034879798846052449196097505134458723052602121872946482469789248321492113275696704879096484895841586577484442739022987958797569649726682906132770740819298973976439115324624658732802813532746030765010635172959513472246836083168524232165076121626556840190972321827901668580652110421351709565910632838183140891125212401014818391532739903121976905689391062738799965491412115044906169169567134832042463096724967322782047037942657984541779826785969895408501407643125677055237868462666578966739571420551470674018728503138368009479230310155007734939509921875911858705176810980477207127210932829668003477615946457991291555771108608571948743612536257128186973852860271418899246125676887035524646319201817460428582885601488617771279517875176862689161210634348883060854370559423259571906871777684014602148519495138394753900465513745036770960625596318246895806093206569293654316014946251026856935711376728545786688562403803532413804874691018581191446175623403147818715649337122571229540832284307192866402927269414196363947043087367269149239071282710727285841067662081941036536857352964596626234517034744346314207034192691965368707373246612042266271372748881037971288424852335430358232909512822103541239603419144538039823439933719167877589106651458278165758518524769072698381617018967126574929046167034899638914278511853822360592489494178418207102075756858348523555833810380471966783988663730784647631938543289705732148339494536486875146411362356859206678781583347507470511987848442346243712203667084927724925222967120754458408912945407978806629383481760166698168920458221017311664713907910873317591462014416980249955993661423237076620907727265359258911903451636225855867747904407095527181310373094248906087034280922928390847991582468156679368366197668828471137145635753531938052938726360961917383799003763183989149348886527532627688398208098867994130875536435327365343467175488320359738085930889945152913377006831581136292975556802051778107250045133155558930052930261789448167419834784951163720867237863325859017658622986401795360071973899403549611493213994384333065868110485736034243035436794797426277049156686899007888533163109206830827592055456898318476734677661601150753349803360451069827756717289504477338937028045308199503622639463942281622352464478034443110189308329503702660023354830415686234595647050890309059146659142417242750108058192060112211279435571011538386983335573236009422497850143995716352978473687400135769559556476392437126071370336568963356178249306208703484681608470437118623262230927710736052297163846296163999795935812255102934800008006196135168009899397644349399939794628127709326244467207157204696589460304447157650267225517864785806018943340571187606001574999264387259195643385004385656988465292002814051059974011472075728670967653585875617360945903577307512355537451211236420857180824904291188340517640458397615901669260571007903181627957754690182455613179257785657934338846303646649415437318634260228143203811913680830249743332903021239026229088682584302355816376376803943825049219393421366134403717291725224463713622305249728722796697344618095574132971546189961931570712770201984832501827098418021645895127683690956248252533170612460255210945361014972272857497272462811204700624243714461040231289084177128571796060702118390179589560170916621221378631512950564020752452790688327324963278562837368871994196129834456815743690378944699791703617020671035651183555509099941660586385398547067262535466145398200848326366320706883167883856888324149912542079629954546880266649491982171193274106965290415402389796145453012173058706589456172956602986434222773484900486033240214914052584231408672937401151460308557354901998632188918097224670497983983849820358028520133443678083489759697639222562551329058265567702699791812608112552432865908293757807719858133826569937641619328941955057184278440067976445292890273356773869563802452523666404473074778461342052718873832243918386200743961526349906813492672372901022587049488098329929704860229401431624789359960697953780593653668465438448707345135744596366146664218877492552647761185028380286467671956714208658478902289784694777344938543997430646511695032475975909259592012903465847112295832342365693801174000499561918424330287239229615545045243421538283098721858510047962339483700638971467024142798545534481580044083520247857083324146706956960868412354545010580198457148798934360926607566589757530163349670106697479636030785383144949303902867298548832982490747012125476023864137914917877187789009184301499580218943727251929655275478981066835449546343465328237639919748657984351042347985183430520344637049407932210555799975207164045795552405324370117949778748353838047020442102511214467611970445468974476583123625624199351710797654335489836434350029637197073279403854676693773970379700445081136300509389406135557652352071448197891523177394038478827794756486544549928702284418806716301148073058681439105056884624437120391075254708048767612030369288768588939432884791633355662757646641797394725156295333015174121600759824626196802686566506581442268813468491194495827688147242385383117167976514774572353632082798970593143953978319074816443863340966620455573787729646551412142178826337868477623232869098280174720326960581098818587692827571065371710824095236258524525670254299136242743082390333654058034652989404184598435702155282688237017405936090952809507390833927604519977595239733015376688719665465687547018574117621218007748860734297870096533999304339993630538823983944996538174918707668057418892160796291725894228736566029693125880378532360622389351482724469346607911884645120565628766399808111397040394791519985615086610662112624102418353683830237384783681744586519827761773437471851425112117645625683451581736491463252171304157934025074855304832188584386792370434533353460653885380419987213020214476644378651969687463259391194841934625229220633582136267645207624543716642720465387697959296135306104417280404012021348438926618565990227866135365963848816104918459551888733927667477705262679401320966565659580603510943669005393871350402688692486091238697150919462659273731071170416951488400581827567368695894207785521702050503601767952825081655553700818470401027700824220044372568163391103137748439372922692696670740033079702278754249576059745469946194330598813038774219065758925666595949944430593728719100947831822530061078259333610464524281731468505531417550818043143910099524337412451721386379803294439070034019951320891974923358353913756409683469992175703066412957188521755921505702684757843803581750559298069657355563737462666087973603854006043515685539220553435758486758850435518696158335538661065113041176911727772777176264103069475723749290654445205975271450905676911146723046778382848981129446109518407963025427836846008939969757290093993799896980605150135156151888455784174754696565681360145062222232027837820724929458423911440783647547850284575865734641457559274204220270448077824263507901456326063246168958798430273326205631835111375714846465171621257439491798512529729579013146646390224468108313867368713776798566062622143343678059481889156761976309856137918186592322113295611341561688963537432581314939024942623422162758240061421270672719784664105873086931932800596630020078696311335724353569303698198777192896842322845583941525818566040882274439213724404286536605555656431095507009807599184680790876517128564197542063091645168853353234129190603983351441705934292751148972111838179056267852563511473234948860856255173605967657977500750862266447068529898681413084683522374973759878830771079609936411821969396093983539767793269596355908822807099803575751202915198562818949004953680326399590096873987181699788721387351188575273095906039522551620892246826893798756308901482097038037415480747364281662674146192331525496516288582752658175948471319072465952733188971223160902407253166480592593421786561335470357920593861533398060124858826475593899458283860307988760565273993410824206368918165703221833943189697023019402339749071348706639102911970870941359935068336437225657874804067198040228271126928702809006116173153335794846636186724401025581914601928229281520776129291266485330349817937345076680388923950414898686678473061323595451228483527284998242382890415695462721795259356185287626811791922347281844804532200120798679878657143427707879371335761758749757327102755632192670374544410722497624389889380417108875639515462486265526337162985533619970794340261278188145910401133399865754860409820496323473891424989938772082165414403897326328161153708310287027768857972623785003851053312016789348027672588699675020107072033207536576173088215926636992907551263258657144854652437848257727392366023916773901492753448530315384715199367112101495924479885728122673204345772097299087366774029384588545144045257152905814543256801608564004059307782469338951325033631153831247640162252060087586827331481321589690706732850259668691901946807581309549321631780332247809952003440267376814028674450887760439049639653249758869629488167829393276429527527160553607121363149011827136207125299504583949201809044978480382802523949667609106250719470085931142297793521956736482184114996308601260963733927380586042174293149326045929848270713252725672156997807849806010879289747054413278621215322397892432565053315234218520629008379971335347189484831780954126452421847106809266943333260616278550281440009334365176624281744575964108967108187757497023222112878504561350458094365752104724270257665735985535307421177004853738126292179459097803067412015044194964319604825836167964959928574483190089820485719514448420285968530137846354160469662234096491620199475215402835413551868188553464322218007069105770974759713571875857903005464546856445120997103291299152030380226081994835371541496996715035050278788360192412801388407612430940878788709603916327362503936995675336771472526769055343604038014343431566276408868449156713645277423819085412359926042718668477468430545551904878957338582614653307938724619197950632273868840484954967311419428582947454014952333003914220353859094071816319855315933090800392647262459556492412397211511275303808617189727145509783774948345906842774918334065973338622487478027562179993252712204276031037636209933401625242515314308496424909023434161648785064491022701608079577946809548717576049247687301093340762881276663587258972337040008783576771208178145767219199179869436804821853101847606754165187443283850981737023174856566459605688281778887678989281505696743024870630588663594570919697056129638657474280295461003170703400399446271834737429645698231747043612806241613619274016552455841789794455000854309121043827168163729891394593587226022184970493582573705825366906720058269260326123686233424304561143138115190023066103606441854647588846845223747739407447374654397124147523524674494206123550294050209439859683999596966622971177974541598902166062467596780979159143214951478625221347397708580294511473783814042059780671511023872910286294460629408179811183079788805250076389830530315235448000865313308759916773652184517364271833920860579219916833010760798571956650217008275416222319733004632893364118626215326191697574932087830443190387749485501946547969986325505254927387228600095548620692379002382623548421112216856586053504620640476766995807438670464925198765780008623636925974675850001872779664922161430342901746964351041944629336805778209150269893290225590273083106590283683580065652507120190972255820839286963422237981053916035359756407127927159756720461930102421798292396446789055771344187742068331258163486118875065456052000323126505106320810886016754051417527316731056627281157445388436919225914530980947140201239574677028292036306737081723294587881178723800059909294274097778284090249671903776785784458304103321557417835183196671837028966114588565775208952163173065554767218207653774866128055879361575662877163721657417095653522002586375328429153384617923303202356630795822681785517334237290802073807791197687933314476415772091691852086054371670925745571493291120507935989125575827161003644334866355428841218595961441253209630019234925917912625305231742613234334815382031658016053775368505490574885789026698411278983129926030549709570096128748661886763120638388296814971444808914042946126403675659146734655500368833820508849934398571173738335112128424228476099291159494550555088707821675533920193612751091776422201316142840814133747927563319677047673549924205399001543585718929495815754162165107742531637515512087779537083662074493649213845358542212398715199591204421772887386869006116830431894512428106898297719422877709115046965249020965779854640359322615032984099527991656319562841699483991842276420530074555537957175179121959391305924337019446291283372653281114438837695643695550036038121013127224870642597156335036894927738905833962140377540402305705522885092453889601482753907740194708376794323502896757934310045004582929839583713713560153145691588264799161931994127968725845184640046690742729114447098510012088460316316096730551336181283045722859060554454353648015015365280502062679232204448750782210273133422492266361262503819727028668977956204736781259682998644039767652474272806129251135640603078310585684776988904743763082938059176007368055960073952094878099851640513595319755599146145366562284216377353893403918767142090800530259813752180292522178450690716056081214899501006320474369221471438086190456818942597111910002191700210407871500864231443616219101174588615746605762773811249804450809590544928330230119550779007454041947102404540522857337683623287175400098771559006957188976668576671164482018772818357707383212874973958554968578963511485042125601270708151466333838045973460714181959855215782147734497238200383265663162966685282439449102663960044983552583877528473889638523127852727869095919617288855900959681646686549012474154735420952919326033091179598030758231585641185710845741890507402948107483459333136553538105268996630087356861988229810887471468655370176348747044385281723123498598425301287693164026239292450214204189983262788795200043536047681675798780981717543258143418814982013840175715990917672227552707390547390243469917267810081744368854699546968736828972277384063420953479616480698524650875564637073244036122062846397620230303503822045326197998049426583705414806577971970667619221961814359694105872007761596908494797478512111157483987915549529879753452387218821027654328844507973393053522291195846005709897465792417701905023412813851381051645922112168353634302498511476105144410416221505248151546489939548546104813597898357273719756271135961524749512140571886501946915404893252734796936331470548717937259715542281828409831246147191507437410740273931735409339698280182440607081694177293295319051594055150316647472080771485819689602654861578370548884483958033694668362405742501316269312406644683188153735078488160776896253968858236915989135556596396822846813955810137995188412936985378621626381586519736268424452006498445149550645486403177616841241630321201471569565492593209908518441527407587256910784510902978737465092251647492524510462642374873229236755558130193832536421821812844396818001452760141785654887830648140721035631634670506397570125231934977265053979985126564855508011108548414124253450025522221027531386950993653182619557432595785231902639091432978542700003563073748071291309785583907787116516045178419433185121350395333622976040141795262120877577130904723053580982932276311229457336420374376494009941815742068584600274821726728033255315912261846912923756431761787321976084175267071266828015412255540713073813870670304029970861935013151414562694619575697238306906389254157460925532092066363657377730892332760014155110818468173393045704239959563799451386616616169848180071583086809187679729461097721125067461259381615986040734795670411409427797039579745509477339121901564570094941482902358189491464928484713028387360504110545475651043724488298680079516589742622487123774841950040197167978611033938628078663659952810333710614663164772735041350617161061745336066968412402042403503352641884613363712736040274015122539410636304687458193564334653894773349492834175547183145171976390250162659535174466239671258815964110309066292679580977427752847595728865416930347950506006127915374659916024916852525425256718658799087208804212185446022507198720933489871318964492825050466931398260901112455514645992163009075003537138966989463020682131918144522976402264977965632568279662821005145433342473307642522801648022637966192460207011601421232977186839873706657457688073539915715353543756897616469960808651673370061581401725170578606385905656420442580166177880243877045914480589454784127944526271207221744281392348283717122155183651840272602793937717838355897936958510558506440116318492064549970838443991237723193157358254622664723230501952017360705843526273633287857721868260410947505677208254658024345432357481014905170844528000315348050051125861911620938466529795612368765715471455329647321889600331283842255253557150195737630319109931567220727400995628262263949421752969454030442454718937098571100096799269025928602032549207702488207655265412183647998635955933716899346180528613677951748627976589643457759893124677806162337548213564749868539103156089134264356081962544867324839127484854909842106403892050481960914078627012434159086763556108983517058156067478260635056477522348685072151586910377863276269462159759268978925507145079187549987222995327243004357342179109761158787731897514837245786088014594113693884673952752178508184398699620562027394586656050702377287689403977375877564521864578459499350542447364118018845534985482670793583669586108068967475275292370313381244592418861228489160213802415029847414006081286814214922252579368817213438639628944750389309956668201167063143195652733552487895198802907422796926985153559004163964689310113508445986353810306674926599021134179559934353673673612896058156750016409011868992575551643119904789044204069056896414093409130040071929457617597051858250673019692144617726958991732439214395556736802857202886646073587324656168592883715229364573196887374646479161975424898302388422703651167357711888373856128914472145792028997318902976035249234125711287160712995034084800856092789890723225290909503061502610478672936468063703506512064986899885764372644689154657322816430364416456767325270356401579573317825764232328850201905821881933588826571623233867451378337380443380309378685741755160879218441304402727367523142258557406256195032888421857613845969228533198892613062799484427759814159781481506797413808103978543045341157198345853050972121081990997358226706719672438349072882669409329623464927998947273460533178438996351512555031404937739895781020422679372083801142427811308409410795573528035944587830403538604853974415116052524177737596248434381209695991346490516992585966249942053327489685029332348765609370950198348808068779024075767882361500503285321626654527587281529491994615049904618476329835323603340197234466851989001073633388071541897510186283757177732194222921732857341904600968271361356507615333783378142925364428083417257435595168887989309230376604131066738920506633216427944279540661678202310208653435368354773923012431162710409095727524616425146111261099014859630235471385936044793616035158171201390514836584653436991859640070686987161740542168610965707374738282174842315357398367338760651073069898881684218881772441185079930090617931765853895374327933719835744821294678015814934528551980848683392750877507816861475012217378230361716932985088833908714523411883678933000364236310123511285058611249739616055019393045267641429663759085179096484651743182493931085999246909655246154891612660487886336001162395590206066906249590582141859600580175496282559489515259527700188450157222355017737404460231323579432299163035611146692235429779051889238624083344804212995587489631510135440455266292047149078602352856378591417017810727027161142781440416011933482058901130872109129951897143448926971374953039682998409770900477199541366946897847329405736724723464160880405738832057409481923440183004365403409340986002339573082615964412528735001359570308381442057805871343267949322711080248757663502168930016105289702473444268524150254412384933575918167686373611085081416322878234440730253131372381913697558006923627591110468902528128625039801850358851099847917117280205111386295102439009813674492225525881073731628366048622873871825364358681627659916900634016413401322610845836801297050943994201395644859012558619297766754395353599381217647004051414499077524393034680693651924402900675338618113003419329258539582096586983574392357781466550523183351153967277994758906447974154179141757045287851155959437958015102726841243074010711576741203437668331501469946672693356656203267701803686040459353658155417882563303892283169525310645639538378609762670249249504252638703362477119097974056456692556339538850375449175506451428408364694659737394964493086169206376343846504565247754794755211090913556589165199519143808494668710987347717968653164485381825845647800307807007484831407859861928348094722181863502022436206446961145133771071167836367434589824195071200068398434658645912165290636032003808800177887065830446428596713629679182761607222846004351099197309676523168017298723934893996326054104271967453236036343945921908925494797819957957626328218939784251925928751604997481833195651638157294914378275047909024647884241375233743237301851075727305586897908733313061735981169253818548456154328890782151718429101558438720232809755099368552463087889560088354164212337926775464782495744733815905715505787005697850331730437891848820288027279570272960150722661787481183575196243492710223980543960548099041848560651244099111102623199718627997821289281919626931481445995601218275316564688048044382223497018790252940201259427451011608303087578712572587922195098744140665594110811850568115649958665664200522111391743237265081734072475247353356311475700179021986489633292108631422109155439584106031759143109452746178904020434957635942338204775877652687911211658227429584966560862811336862059373910594742586128997751943944141962206764772847210605255941896245675164988288988052417480562793318105970973094446172838237345874020115963764962523942806494630227831621744402470770315073517493350550565916628268212883855900741454310176342012879820856729506713355672739414375890233236076660463158107122507815182121258522892769043037166967706547795598302724529061724722857643032018244665255640488593594628508028834601075437934281791611515324207157046672860650602724087762111154208725896146790216882592625934084402617093337861975446773422585628841020160706277573235341791991943996543228718959214817710134037672258437367976494188391670477164254746598660377238690656933126221774652487961253542548849685834063731613275560116754354856337630736325660267564336083060990878820559646245977718754063422095812857195997531100238192105730672762745781732266437919100900758174636983716412199732716109583119562169664147657943882770230700362054511252879958643167491288070207623655771338203519064894043855578184210014243749503441723337161763068107025247076250582364231774137530012168811457211387140001306857658135307773516907899674096657808813077799587268064591831895123814874491202249783015264241410516458553527155677925514638978518301553356277100452069155473083902902870453015577195491904832564281632571136485590452468851297270159611188248985623322952953367174270571461911325688354565758383561910661270800067290429053992335743480068984884685867824347883739778300187837708795827442423533480819472808745161554988538989491329731854631189357309987361632649641411296118816945749016962748264950499388427731253295947780900978448420846919615647050552866998531208859770072520564630817070208275443851217976466254081226512569584209627302245161956412994440222936170169982885358758590672059735637989100570620190849873386689603563238315992581297907565840013563620696330143250889023600902111512186621482731165447177885125947754277694116541893917441421960807030896279879742460414948484507170640669628506459424223770920809000437116769239033769692816905112497396858086299666224694113095196284080736008459013276564955419398496471686333853064043735965307189368879179300595873389112938636477070898107256068200370641742356048192822224569777978579965396139843579230743494599977378004753275159167711852405424354994992477079598500896146360226117478704539150322212459304724427864624054068638892449449194320130608339418778114533167904241645185132939821150349694069536241969001916289327176453435975241940721957978760466872350694343553553784989959638976479199854285106363770663961248717853380054681737724831430772688048514179411222535661397887175344187516551742563451012041053418993196796923674959410858977143479759501799636971258589697477382485562104593120114078719434209247663895511891070772457463953618938296488085600326128750046616500088969887932753307584036446902541222794760017461710882774953132422475163383095224399924675619767782867583930564090461246231195519441232882515227776986163731242042767936543691977366781219064158416577336872444369758876516598440698165152840442951947128177121605472190011654904593068997915542911435306153987525212722215986278046631032024348864572776753783717531403121579820928627277938314780426017427788231970430068693380247378642393013167397063190491307504483617071098997726267276973788094168527710789880145625009319725195914926504220029268045405106426502890318543797402880502689527499712594867785528794680762939403865037563535227973132497277915567898800313358148321761635695026355302096252578998281246643900628385336088489135488365477670516981346067563203666294057811885976518488246906860295932980401600754411931388536866963849492383481766261081874843412933743984973756773311679045451049179596326236180129242009567717920849989460614801474334096736389811036972368156185242424012379439818109737065744074804674041667597357661015426804349495615898845552666740524731843604177738748974848633013388200932782462537104511522389688744965568687100489605506679699956880902355514685275810571124822772482741729218463838377964895791266564481376974529939629043088165731969168739925128520431525215917647317565685803734130819445362625592449199527521060071463210574493829515095211643789203179407968641283846734080274042340546675309239374666233117893427568002850911085446783850471468627603916438838861548478253081067322924168935118400985878594253063050966059442147938690699584065558655465330399680954310390183473056835981734376949250831445069026638176977020105835491446690091417174693302137982394907612604731111331977872135669386744741743324232571586357359526765205648237121214426225361356204470599672267092602533287951918481538536118958106689100949726681286724445873828555384676778214517790206942560210621439245030270008116241364238835187943661630163472522975937630665865190337971348221894121498642131586307606858260435589372513682161287659640310849474214937752472498754523830995246084949173820728096092650891697063035067670131663280324304474157364334081371907947432335933479287378243762246444971571554826261328349809004321040830029145058788713962217995473358242496835450868583636206894669652299941441353601407231073355204375512136988436338099480053443059679050016041689920495956080114121526366487808546681995278236461748441872749025595569104474315125418458077913071589674528067088855427727255629577559965735669504107771850242725568251844699388603959289566541951830450244471453010802673196332651569013511059687140677651306619017193747912168986065952783639655410467533386433074778843942568534192031401686517171477833408716224558632052476519594845461041490210109609265406281399352003788469157191618593427705593853922555925411682334401370599608079929195330299833317229966705741931964043165417883328778682245932441707826559989206125215962474715468773283219815988036277399923652635736259227351406855443400525228982753542211333706768998391846819331647526510277277393053604215068460473137927731029456424269969691732480205311253544260679030534401025951719715041009099560847148868325835132468342574637262022803580307860938666086089240730232269136572751786969319355111132871035390609090426104282855151337362263485464380233006764965122183228957600579956343461222888393509165991751572430837648050372918925916016942330552676933148251558985630562740832814415299829854488949541245578987919811760222904461409364617051980781477305814150962173790484877901699540958132454791228521908761380449634657654543231639704134616240569742169778679773629748506597593108198923332274056415606995253468534504234771969702613961953610615310199107449668779166968277367654967556598345182237985549447463709040846058634599270467749193790667193768831650227300561143785926631330846086967586305045537606572481420028153265067002865163363528038770629741448423729516402969656054186581034440944280687182950856195007928201098528973559720710736750474404438237985228521573164930192898367698055438906214904608749343531384343364764177729612263433583208162613675901169667926523468994756903242083704364952407986682322058608810286083227630529984098184965083550664563774167128807797722924331840640897873391766535293119407695074598584058424246402431739051457734975382538910661657214778637163313007313022916726957624837074528655684499683213285432306182542681104895622296090964094791131050999257750269642811434176532789947392475119864477633195635231382736118609354775309001085553709508871217906350950277027748987825964054872111983024178227822370272858553278213169545502082796224338554508127518284704376781464911121151322755939947554576144639238475814949278835109828064060497368168107912773397209638393181246193561044215469609334665471519217884669054304122078329808189289267502086618592988287011836025704383016345726660919835181130527475203671859394720040927085862408854054188037868203528250984009734276189067758595367475447682714779485518687538587959031243231758348401689571029562216502218842529169572299898886628832189850383208286490060918470485055289978879745174424819608073892940087070644333376693848208862719977756798522044589796624894617158692515106913265708802683075545277592503651797898699599232232428049161527077628075281060910883244330170867970985523809059104786751842433522680334008293082265655960859775050168962895796938673037235154263419918651561460837083435040095918756112021422639633737072636577415220253232827214279949474261781322209107777657073372117204402492680656815900704829363413581615387715393829312154645947116342406949384724144314424049433183182302974791991086393241501086358335617939039633690965039176264742958605221753064529141263692889122010312405621159469826295077048618681251766535481080781932199614697363447887146552068539331345788836192819867817541717061724793212425686403945114505012098783961255463345189016910846622934842039135770154519243143860225093374524708000970650777882325818961657470375569850503698851339182457799733748650100977266471558134760733072166691373885338821699884963360178989533463735703985236956655607262937362473457942265059209448430249627643456049061600591651467604777722779822607490677659653040156629369145816461285195007502901267018410343831447473886021630752532867284251288135712123221743871367881538620762178470981307229910590740623919544312605534192870336456691839665212208731195154607354278582329852546608133349610568192301749524052495267893503242944626291038217070542144579382502777065788974277578982644125298396039490916283062964468462926756968237079952036477267222835506862577002003347813946634081337661136047851456984560176913010425017881157950394143116838144294696574717739616831330813097810595918305519779798117285241491649866105160575551550630306682937598004350058017766377484874369251718354617253718065180693384459812469690183309968610497059221981003132288138297739614488478427325788517464657670777187516186520200378972211421629535635170231083678443993426871914273395253404804988458775357782598041134879895227919452574838953683608115150067984784270743039602285119958344132664541055420308851974360217624558873540814971704449406020976790871151753239322213528944593535158816228140152831566356259772861904499638447224385887636568432915944514897169906493249658440286055348325628929224864160122133781206553558641056143511431253737761423835978485911660628829455568515197554872736671895484305256932483463918546503268631011906416206610971810235524861815962688041641144396438194768307087015238719493709282279907313856111808753347617324136796389723498090854303620657220555050763995301500440278596602849187926295045034939829765498531310766468816973615863432421534807901913951931847552119209324682423085500765723269816534309132216214464477661971843322209843403340792291625052618804131829157197746813051914707813717878361089383217779472715353882826477869253698505966916600665771794616167440734489786232612234984804159207964310838753390533698369293134872817040837948013490325678568080961383245762371969025071709254693005641160500946210417276608992315670292762730330132054737062271170272376128267148350592749519515534536634142867073905692376849729489727064857934134743489281761773197895049143630387493378760078141595767659812220887323043681605801104046946220721462551474657243478847266070799609382634697111095414484593905539585442256643185748370284042787090585653454696502725037197944305616070859364333339034432325707313432234325851231015240243940394356247666296669818842063892317303857773913685180871249401636327795687622391943569513706751948989859445254665918174758766347761484034763994545159741304488126242323567516221799534203474834226897056150510541043326529208131033797664395795526443434556756795270582199683472685669938696669492467721786581588312571002828523792874556223890174681925524537642283159926614311769196037605796688547045894646445244326993526423400908385704520123355291596071372002905619520602331017442164973202465487843924279418909372813697907692841927987986141807728288359337672739711363321773651552863792701609031330283701109941878400603544028861627704211471225967913609943222051136164421398130642451394091005914574045035538663504774179930587172714014708992396507384373639635996930692362570630118020196290812138738055867925016235921650339028509434456106391906507491429546080002342349408842021933773113054231703203630894420252889181703405253354745933474713691707550143380409923101925814497996470658429736415309755418233219574640381439012625626468600944361605558614971304727499051588049443347428529591180031901128523929470518308484910031430606938416352706485489479478168382395807758136347207497407580620952227400506100316214114980770464741065500824464077901253297491689284199425043429598590162974964902050848140054061322333144636594549612244072707790516856879198753751309826364822894689461724820604040590511192911764863221576029612904524442412517940945883128207006771708715595814675298210664480418335439891367661902934521411961396464602998195045538891585913097276142449726563902891622125244531432541820549685746786830022939561445165409484967025492884303320321419555464955578594795094683032354127434290539249497654102775529255251696798740857380974693408414838873757724890556535685496311018099161837617175678467209224316346809585486843177078190556011131629538492597413673308398016758414984108716089170197428053109956020708185923354363316970978265716724188860237250115652180755204301603746571627950818712439662793741832627030409647640109830827449335810053960242272507467201059188051062685981927106423852395105521159527253398173161157647979357403089466383195303216182330380417214456884830927544312325826820885395386418836333953081776405991053411209246379292322987910732282233550978856473308238643894057417837258665521947208962636581183094010157427965071888654064631269052932314019716000697779664552927195273392629317540635281798313924740733621344428026932015414817632481096830253043350433123527452036719109897598255334017099643310079279887811839562004254829264920381635033792727503505593531657371183979456050373453455989793825815410982736698395168037263814247290079170881894667327288626287875077198393644412327842034535052580193818807468565971272307471380362608541970464380143053842663801755501036495586372131151708860053765385477550364488148563086702667369748589491661387782272529054240752386404521795142927813341606849186966399191506343753736441695774437025676047978301617642543608975993120579573200686355796131496303655647988059152757693586823244247272383885044871813368788535483337150374467850033694398376399981334564198068412063129997645313802711588333119829504461611820716792864782913422835241687947879337710769200896994351162097134377676824459530593582821042420124198561547489226904034861846630241434373210015541362604536136921367316548334312756261505129015019763156354656221147872967896944451508655908628996623514280735322160075536195772107572243797029940588411076615520918055798727337574928578454781469505927812061554312889143244474518478280273143143115753045233515601365471766826055433221739838594914120007164212406495766072103029994400894625007785537779800563295353904910217701552390001450105329784884952439003697573806550924279768207749263002672217552084257418895143450780221737834572450578872430817229658337543645447776356271562006700155404417540031878361077747181745262516805315515557354468535599562886193718080850961355077396710982612079030445897058782389223268379853432695143685070417197254788055051898104900858325268697016172684524473476551595534973205688131394017196279700378631126908390899304807560051316405875032573232704348290643430482531888997435298335153741844584182801840886472673276887372780351652995753424173603565068767807933716507846234257675557349381098854053316841863467533372141309732326477220002657075074604818792781835571900039381934680893607033675830299369002649022580206468963375347982712588080300871242910612024706073118182652066327201911193895473640492101782555922313489399563563784063958334867962052508203906508682636307928849077025443965047096388203698419081628464135603131385171135333338954403402055820596018659243933337192107375485335460955564106789691455352623892830549545447080606136969264348578674373004473061809223990984167348993776206070403678117704666632448065088524557448572598287939290299661321440152787642337418570655727498254307476349373773189853828350028070177873606502784557296727829778179310639515217766603107506888817158073351965593987274691716024945294116668502229965588194231730243421713064594723857249209956326019662392762164075227080434856819053212957093947047623038709418094088501484822350387345812834070732491394304478935075124127166392145160356342080546433175698923881680802508155764840911068804694063685019404385283209282132799375368608488649805972838472770792882146110264658488901542806231870458139156664447875663196675622468049923399268278935218306972965064417564463223328700258151900053526455867948009115665122741425328607856774462267591185861655410981468524642663227732303707816681412539960233290156083130924386763894704044925882301484813490683548211101824553048172601782051042121216688761255724813933050785253416978322559736343562474781682764562725426588402617637281534648496751244899862249952555008113431735143604558499219637925333605339826732581401891431475914159765102068196891276314889338982617802067087949398948525941970415537180799576377578536263314324306166577656608042181766602116865406725806946253535249369625776103202553570477291265256872456119937521353002306564825636066595045176265774183592903681584524024541586504812098877840964112393328896768417093794163196513781188484510128274786981859166665243710177271424408445683087359158315909224608396680335722025517915243211643095276553619315814090947541443969934895751218999454029384168649207837248902819373022879961946794423979378792000508435912713506896726905794010773659564408751408385367875194841274512845516392307290390680189998736487549015038709331687135800008695416877126144097306995617291561560231453559354925438558804593225900448512041052073791852274091414451703885992633963948360845176448876884465379301040055041553974818466649171409165582900483976535649922466575696713983741130528205115326058845156374762558852336271773567791087308945308401824742823352961424987751612159209842649280482270083257724637456040192489069409641707962987026484751886694872686829641061856690525697574450946913747258785999467707459081126985969216064567335979884401061429716139397120193852046778555594416042022088318589342715243251739897594108027046716705206633833005725090315156607247130208898642348899601159363423051611671618739806474726823750623093137629349141555542752348199872221044207945617031973519427932952158796749271247289218938663777201667503933679083015508559333977405281717609532347948194515630709730118288281127409448655874073777363111043622777601224655017788572392578768828565435218318151462334250192214316648206004850120611652011802923074505593231074337384251123883536216770126422179854257204687836276058357618848340243773470825479687530703417777677134846988888434598279040695240091810777989615646185438699814661740542663559355673608206738837432607791566364925759673355921086334415462542387074723139316233602067587506302941539585171956636407358458555593115729903274154247923986197717827740069008499176822076235306876913194021506301151884550852094503915985577847034274367243825151800248027120027412559055726674229317549432881040096160656618425063504299611741785796813144521281112072270577948898505754439441029036581926631349947939384752976905219051990016431507730748462168736589007316975176438177367104693007395658380117580387230739799856053933136865645983842236298723296988391441694129798239296562478847540400273581078762017853408976919031952634890331556094956422018166409834840810718373310319003752111186355854238068063877675768875695144785510957825263763506484212232839903835987020856920431725322871432809457066975004585073043750012695012259607686954714436249111467089858654348928018422924609369861243237710763563893981931803508105759144472136295285066830061918421796870073202218620183062560464645329523556148345213740976000013997770702855294791758930679059308837275630743440271348185784163466382370694972415736934413927396044137729910381593450697951887156630532553318164468007770578217969321735455775630224430149473678398833678721774333910072714837447869864923717903138190945226499459552164451889775540745450387048575797828233751598249601337170691496894984110938644592612380537687627106979182310367093715931174767171452663441429418601538668673521839733873189468464251623931855202015460840486150586866001066232044114842762211614559023011455200181516918994146879694396320957611320814304275053791138408437780191952092708096379587213791422812497445203028612078326192793549335043380888599826603299959339057857235063673203092294401561083073639420729553382003716222007077001792555844831761717953753065437091148435412597998438940933474270116454128017141669952519583244704179697477482255877506962351045465580077840676129678435135451024683752586137834620524872580839189287307508731881155977346570534938759521453256498272461859558755337987395527008004705894398072499843937368352930920042621002396849743272677233710408095788528781410907281424220868005510789152387333536892448021203838523226410828040217300432933798468289363259301571372337799300351650278723294981361533478536101108592903043622364497281824899889990204649687572099866233808915646785352482396953177255658288339443898008791135847845076098834130934745296267808766633639052713813527273902904570058715279384620244026193058489483017191215369042729768228146755943481150033093547373146523308146078460329354745573309466499845427548588635170385579064335654690636502942221528182863826917874908024990760088368613564313292705787679421949886798470541438121558818566167086309072776916686643648223303512988467248909306906897970020171118535755845124140121124742755089246538603552057894640006458566743579715670111117992823171747797471641829109461211300822803475663568509357621302135322288562108949025532491261020461542685035882368946977576923552421589357171403692429031139225499386924070499972312676393008880065682785895799999947617206628239369117486526823265707605090717786125365032996666724704530974547671732983777478586127040966290574914702110000219259121688613433879727537781163883712666079267568819675062891624325387586323680292130018759599074320652043787438418950977339733995504174701544403141702404099866796969533392225503819695679482226820377358166731909700260434466523848310622955595725023665791231643845129680368090781132578118867064314089736356861682327384854860978733336069678801904186709026360381208118949142823600919031786838954306132508756807895224361179084740994451790340385237873118953879871177331266519504896933529264264004668456791817186678902485495449707291359535392111387878936828343506823343001167889398866486961751695888591434090042628790800066784243239599174466542686408365077299396630925728992769414675175630818200426970496112034233464381726095429666787528019149561369240604827550591355971208811746782733810742284552143735953113690804630956379066257394660292640963530364874807865207051763641853822239673412804223483608388163779494913088054980059622569504873953601461326490619853345051205834060875992862333812265914215191487670803532363067025723978477421309903506208482266764982501142689982341965686297338474466052768327911216223759442480209638658685368939432950689262545891521782927019279037632766255672754336779916581032632940749789287853036461065998782604904857056807628485029934759999331988562776616088159350614652475096510589220578226355208950334632475774186376843390027723828854189354313671237246972780731333235569497637272615551480281320222624946077638351426342912018394779285127042176692911736446433997620488397017794843177843937166404709996664171873242940169337293225067253133650156485199565444521381168957002376787760267105233707984454842167623994968315318554801235497882666940804827038934645811591228127106581984366195788974241388667159350548056480137285218238794943391231341120635271322118059992578164556705548448811701577453398716413240022476966222253530003348571273353720169864464875259893747860349003916404608528708755774397530079720752711779873287963862257151449934382005636441363750863030787275277129240033940027409386313638540637979585194901096971016004868529360348503210204017276982444082655708458941053816835595304736053151413644103039566585956588787300005510272905686315061394787491932271749945739016522422641314463984871498743701634485104137492673108368110387222297699734462716161986542663476568728250928786468359947444617493660341035063825649950855782804454484749240065750718706181374005880943021511832869770710390792862579557060637650683697436237270957995796158649671539968515094985827507830311719650234301408518307712089344338462349578750306207963783286608080694614826698200079990317889982138540208029609847208150225803113251470626122566423353619365227206396157497290134107925633393405432976449273011250482915965960931692062646300936619549276293340628586230118823119895884761808011749616350884714233213836099912503325231168294634675934792291133655644717820181495295428422577828747169604160795266513181595602200687869476192715699104424462182646380091147245045442524243312663090359728356607550632759166393671135446922764471791730006447825486146322105514880240961192517914025362711339849376876692036786216336562938819155792359304209326801364879853927316280587527582797658366325539088789490324722880112823428140304887515331067909280965851237902722782170924080812876120156727068809115694623966913475503707775191253511711249391388664178427999731488256908480094615546057702474446380092699069625641443438660232499509492352067152056036115727317230434154844055107004659245128158456444081106233259322730290233382375635115986714237553752845172767571568951985013719414357184581815237279451094583606856889464004460803995875232859405252856003700324664932233829770657754838522729878819144148285280929066997545146267447615689957916944702126746590953164051902732392604836106168345072237861067127778437945158902761761740768669001880662404443001822115414805762407880809967093196258194636481329771268377818626149326493146529551865884397725498025205650946526922385267543426272678659252685348106122552644631575147208178022113273606361219394670438399195665509816196642051682974452283250674026928725208411093688789437191441889411216685923142413195189743070572477179871354348847902216854903065218635092172538720981645257433662993799574006658423026434279360509182632615837071036215616808058813954627162683823170134220129479047811966314121324717528496433534055491024240404834001757793517812674263187055568369529727652060714950599805095115407084185156887668349517939214591258874517024603080151278330317413572462479660312982625663675479618808539126191184151851082563521333808341806377607485218879142311279130589050633826140524194302371805190826932123966785952038520174600889188135011622433090461669937664619625851588967332773980726775769612020316444231238719927141730202119704428639076441867127033538821769268378731444088362562729244619795912681905867340529195929138813129070095781054061001240694677232843512851045406328702561092330959327477836887246070731943024460787383076503427067129130481494756581222845510372433134367323733038846453466169223610057976803728022177481016006147832955167830621958189848144142757282580516658974895257017053928351777463296514646580608104107928652970332134148663525327166894818373731104748831969754937660301522853736001319518573983868542329185016912546952461614798039063742586493400915834781340953173221793377490586919436707032361038060395956274992493181028714625017591071526520970206970443285464614911726815287144857814906810655219148435264811285012354183624777347013309130542446231226938956152771028320029288323236532737144625498129089322717616619088280876504589872300024646432064980991638884391872969542939238352580260955770683280203638260611816627840329713712944381160851106621052046107398131024398268439436582859744131152713301174870952493550272559609135596406117229408262085392739795221883574075929642694720085042833112822128248637818978152321956158324994396606470537971256335740308087203289399837823192948057235584954558067202681663218446552415581203037368990054805767045132650045005549167532282222916546009471532302111596940432914800459865089639336671090689421471178235528467607355336635820019323206200408674661419585067421642309715873268991241816973787868084937831486425015376047429305278436353813330662358334186007946896106483726342282045890501738696576768458043092429610439896527596846267912725997670328960497248233651199170783811575007798048308002829042930584983830068347550789111885927160014807458957810544283816608476281330643399724599380009623310524266408600688003962211964035483708189513316558438509726143864182938685458061346929643365661360526254782652429268732222195253418492759752155002643579536372595505947450564615964184727041450772530462068190006474751651800469611428523355070815147207097352300699311715595112862824874427645257026561848339851176163416967996401066321977968442982794495792615460064982820883180751009380341528655423424898867027025721089278217263408994386776439945346113057607715679669962840277966543194458061873853362246211433410955791794727493595998473143748130118506538467850820370029492062517427088904014994713845422447299673868412571587593891159682028289901371870854992046925436083893112299008833442083581951375968596525337959486768243879866582747620405945718580652371994655350264093761847046498366500771610532270464043557388113899242964984218708319046104518359939446269989152646670468428243322558394947977184798925819463916446151704996221428498313750274724900188916063037423701586200586159087923477702236878266960092942822365169806771903115892827656425839525580444488095341246781201506544332400119883699979794029320394716146667403773762940225148774750955951140996092384431255885972533215645743649649724504239991036574703825448328201951102701526793491340854169190428887084613902566955432823513580964622934128663877279777901750828166747979316483305516110733171317294760255318704604507709187190401156030160818204120262131699156554095186286435478355371690822254100586516194155089412572336484267541500808668683700274725710356370391004745347094104936175670155851629041922673502334539737259541851751224448845673682832199099725761127271324762159585547070094350479615107752595914854018181114183030979285744760321120974583261367248778595450716625936999733797717849868247102632207650181417097338646975490691726273938082458773297423270044124772250624270227999881075381301816054336081035583181476813580376447170749740688740332434560967485741729007074284966012613641358504449843714859187328593124134709647716711622096826838285029146383288380928833500944633731237615305377447777304586167973891964370854789974822527031181847799381098938788875838641325773742290706208770175006813847836424105115881356659599246997896770340005153526158399286662925419745225826597890040716938652755048914052115942051679312114085385026595418514603144017121712535312094548048735148492109478668481148977102747160788702644497466581789496465970865555371857594764403840726388875062139611845151108298483306142360052801674456512778753235028147144873556067237070585535605674980791309929049311738869152076003204903731185972096499690488060109312553970609195765927361309282758539695120369447152559969256291106708163631452703430750067497578922629804834935482929444143510973533619460427883999805453925190899482913667111984693802210268613484707220025508183315003079631437066428905025519165085123667157703340683533200543199143971959616265725198178837693348787382902252413182914065598093940747539025934350260326120360017961342786987535729827801719239061082446370297577423152905780337574461548760289181042315759507522431621247243867122655865309489138968306983017494288619556589632566807786624679361030757699740674958166040821241114053479934547584082069063754515072417881464157363532621768931970677434198711202865456647471493288983226456534440121242220034469463085669772537801835698711047868013628516813412320929585108137423947297317521587988767252948315846263057524590384169295083100112123706713802445506330278644040046378328930591660255041838153001212725437354970545307913573859447925609726232074366510961653659718117792045961953332769204612632629490978865166657084630178087580258325287434075805592225311260663023363301566758293379174065069195770889945834196831337371759098318149793977468587826256755735390402340126677815411334211575013176137454531592786704435095059079529895381952787256047257154924145886213385343735515151955136454858672160667512654407947810283392403223966329740396697391894961330669350036765535680143154590063187651559022353820372412140746033401191802743076579125728263982876962905343947247595502985279265952321156368858215814559542169739833191843514560276777176683810704912048557329417783126558160618339875475537659961736866338688777435795418996465711591166059744098919188789733452111432499382173002479431322996318348176430516544494640302437454796758961205739826351951031351745944818932544853014936985341508044241861912782870999928976055937240573984849329636721617686206383360097314019021654822773075240248704512952321316431511809863707206046841414002821495792486185224730036955051493383533245796249303564227640862560024238053736134475830351015441248240205693223840630223641387091436186476365887458385174805390951270325044053262385642819848830337449046237731469091668538419429359869631951527798759723182542978046596391496419140992910560637380287809432253258632344888241555014240698661619461519225584435786429835469726772021916533816370291486570531281215278196447694042047257161949640981953911714690791607913047526801438368133904163600978927636677718339264985177198378477778729697890078194685820711630623822349262259293216520202278135681181846441115209089222768722018787234712883024869056681197915972809799117421696543986665184144395495162364675634005681524304147106771716160277458266273936344693430161307570960533101666717585411430139344954290851223107754531756365524116436019850152425076661801315489472501902085504470303148131738064626222285252833317284368833547178225484135155975821645956818114702675836454637309569488935159586912891998926006803449612615865460902867096191244361474411963822262458111839597312557613397521321173512216416267122750946318795784860546556804661796181113849625673153327432365149829570215087176725825253881416894639355752025073871526100218608510721882965554419937268328950868502840554948682453804642141369287529474964468539416799326347094593546512895005427604510631737572605095771904386001177489288949598983044635650887078852500824965484256960796462615601062416328033915063215455839394666583614344625069210674524005529883247421589071649329890010423716771226650180836394922863177706752547965164426267750547592130383934128102266319588914299860479050817670635067063770122848513414344587598531765721090826526896715048127203026435908618240705675345053745204026732778292222949535584775956251443756187452873563069590110491003540137082602972406748517718406574550742343952463029367550660031482207527977606490073440543096210328429207882839619968817218130549720413303235777285354352267979107358811947800542564380343453046189991035065609248131968043935421302298296088860907478449828794128440441675460594791171350686983983882240904134795099493623011366262031095554682326570248163668536619561051412141393885466682767018284172030577377475229578637767667261242405966283985852188905078028916791169902628201317204887193246486589622473986787111419501011155468387047681721141666356492334758065792508535167840633475973117488942021791086587202062609169894346203073560933519475808385177962245283908025234028249399623217837777559985315980135371241640925258216834208811802518018213417539153531626654451162347362053550037947233006200917963517062228730632238160764059765245947659776294021587227173619615153190924928691546821991175215734597742467822778945006068911812781989793125942991810808492605107959781486269927579487832273743250108292454958788239771203679312842011201408616022824329448910600394436893849391728824133589101230272215002577902655483609832047307460949315318554457708057338370833099836994328308923592350281679049486538569542682724275405864483354914998004703041755778258892331734156295216611809225562121966031832752758354112194679855589355391363097173933696057740696513695158456213138878732736858801508197303182246036802452599452593101134107313568273937143821511381579787183014880199234295363792891947015864935447755594175459996551959443866620529500067015772031637496924494720049317515272360093872685467164304329466549818290332577670410591276496818310640363328225646117141200697400680062463546134856535194116724582442220193981911027233794609652821541281044983321304470171269571920765258261176103464654516669406477661018643056832239084788906963466628239251334442613160357989471994748960696146163616428690287847291323567966544174838451012693477514970606283596974519751575153446331002608545638165450163169390613119772758666985277983503519135887348597023004810069319130025242359719453788116737085719790713429325114138983038689775146822837447752635031718535012306758404759557993209845693840076431636237829462149812091895069741081600607303444436081040715590381944680248396085078940500947522034332380178119298174515107436231395947869656476613208297071920408049244517637502154528631616361156644934740459679159596083750429011749116271336023988757959298134015276079484652808100174007558617390811013425432032214432002857523706355483607823341298074549466488324272389674715400232041309491319105178294370612109469095073497581805499676184831322596575860263489973287819142808368515373868913218016891374450673393748458090939313564554058281434714020963479667882846550348250783461044993902759828451645506820093291449865572276481545706309338591526743503131404977340193126960857497881172474969145507279765823904497833541492371137971647085886072245368206625124197234045128130285859500887449007047154549395804479212824743653542999145682628824022741526989425542231870258716099759829377778914008446562169164932637199637861910708508027800342175582771535485487411153543540715136981595896936945212894235568574353833311768608260068174609204900170142480279855433067398214519639358993960492275557995443941352989987497193303092491673092238229775705342480211451218174646926636026761690211745315110325328945903000345789920017514528301639451354341856785958898277988483351267254645503181312870681399866310497978390774836118203171224039818044701997937152841171079114911918362709241851726602066055230296976657537640620570671993311442749061916285317546089730056102353404838723766029489067235519586884131894712064081684668940906582245283182016866380944070403843275450753954988094954477756629885241199225738961142577721363875619561531083685268727092755015995584745668372816055511964846929051439836845267263010969473866337164316972132770158429553208582677288651930350653461743844815678805384072522524397365219966822348535117227440781976488366513581709419264610868540910829472781304336877429991534621983885007416786407230560641642703785811285889687241251489588440879912125669585124538908108500927817432360622381169591115520773307065133161011686676946816368976312414480039031490842103804397028392258314204458703115335379201620768206979398119714519194381986155208243260013174431383790351421673512225886111618207094630221289978611249861302371324781211371526189829385224440391938398270562716438081033957857063322331985656417144503756325558301838235017026241992343670373948582998451496576273875512965180679004096007448964010774745910589868299890800980556950857484248342330368021855030672014359219990456887923021582410755775161362467530700504769122957219291410489022459819490889352688301315990482801344891029740839128729914069997307289181819427998431546229594429759260136659860347166199004225654511643692859132230368915366854943698494136038426677132716348711894655944542739062253092503767204588699429885705081307314139713504327339975900459383982839293365600269742004574138630585806229552839904148200756709561356136894011405244141452168314206782604671190109420866128397616168622749301455610811587818514720923586208675063660056070057292246909824059471009675985768046377108966590810597215315632444355096786370318972774912837683564069943705410221688705752177520785134626287539199435371658029230623870244339575298257469052917998764352748402175699779814113123640526848759958335768550672726326993605705048588047484916147783929485466188222791341379275878907738936477998573823060684257005307437964982125233269382331461354393366467595402185425973290881808557520437801046484090537281796210454576543884419013523775872039088771815569879950479115092361286521954806480240666277186610898477592538678768643507365899320091493406826780044716373300516993367299956817055820044027050739718810239172704374699872347694933347908800860716983985658995555867922690689549274148710410412230681014826260688062152768977846748607647983525909414686978553350625314402647720911798484618724942180465706470119758867439010157777609713696935044637915319335536750748731365469117331422616360517470824160535745513931091416894874999570116274368352970222577529863957741696402414119646979330911377391972072436771753586832529801782298977898623226606278743357502140511009015049426896127995721974824362148265424737519765387270156560071764220773841066244740132096731095043295604409068972986708827951197546159365690792057512665787580448120015166818660943266075539601443150883191210772632655394353133869326601035940496894539213985246085763230843551672536600736499218997097749180313627088907350320773255982101430402065658518707715383431684404829571627851566035680801843469397178136571450645956517342157973956067940238490363526796842616474940146274163652236702252123256368473172201956078368669095886106207418825417523423091612542847040800296250148882474293645412774764673613225614519516071429588363755645195353233401455489137347896685618726149522534500654153829245138566665615509434306124809201928882284676994445533430641669823774744778749399276571289858275705012067999706707930553679505729751029173369761352065992928826897090035796732385095956887114783005863363860081963714095032228806512917785218829058005741943924653186099142170204433633334549649323179430050958711536867622838060408597105030577845765063505341498517384413574538235664486518312544371686103038059568460281730783034369150872411968899893702568338973499615747399374123924264377880234615350389425164359084713330727317617630550210058385196379195301376501841872203099129935943943950704552623090889206494300856121361265139323087418395881478235269091105168289232316465280978856414066416249558343458551629951936893733590764619918576028746453522639799113519668271237254893088404468882785331375775348539229213012309874184417982369855179117750478343940725169255849597433080412360313111679746907582232770745891833073553035163294500685775248097725812463473426015413747852485618689174377434438562759399667853436425263998363451590578732779126535908737273084855782220683237771962940207129714264983815508264692195009724434565332424387356847462244267843238114748308778634429301388638837615221896773361134644396775385105773383609872730323584764630544526148770605396045065454318575593883041082016894211465375084576182958501460887731746169536137740094009133221931708054417310552930582246743665340804921361809014557804401144426406240698207681185802281670726111255226640232780183589165457429532881157094285597257538413660624104971035573270770324586479569399862071957973402562825611395235348526072846022859485770096196191297771752838698905990301551803217979057228232213046523077855289463085357098408925959942791853578026996176124066075019584354819924744935310755949325724428156333489055575373415796971034778653648128710238231265388684544343913551172676383469153283375475049391513399086950055010325584735193504463717195705120134462925726053047380283100542890724839584221180818815767503011818886548196437419632702590522437429960268196526926826015109626998002310701660256634459130317959626149014069148139649265858977465939165542375051436825602905360222245280343313857910973210994351184335046057410334816459435569388128928161350565962346054905904640111180041937342414781079195539766797023098842333227802145641537564891195103080758065208518348734013453709441752176443238472333371819862132401446525515992999389540576236143687203356339491157617619897377471520993949341144508150742108019218581259696176138509745472513586250055525927184994575673205248585708976676246830322060078180381791400820667228570383101883064370167386955668297259121788379148057123340385813879242794912300572045052582783243648162043384072413476708735470714415161843829022572333737585971809334382488268162641402570992472329780013340311358889777797488271334595298560521425708461840874670482009194567996607382762923297744919519840468410335224555481143536665357472244590400272187276933713415253144775373634935281191726727429142098852268124728758642546312568292265938636344172752952366262731801736443889832431417562332925612848718955715947852613687117924905917691440508392543051448344019594017474289805157461627831340465770283810293015889426210162656534625578215702551368194861606121629532349697820463479414911796723713286610887776757890790925052885397838725426953734597706794568408387368644710185018517583813649446009303451322212224568202444859306973067229204693693847212359247202236425856343949347191880296765877709843346546782304782709956842011397417265995847235495459382525975123284981736284691350485570118858044739102419046641626787875698940788156430188344029112352564175771312187580917053781017481580809455097833343332220434201405106157661675218411460137670948913206236102292263133184429565162176006905268446150777568950935544208421760035250049802622530509993706518170618871869479425008661459248118544999302338471283603924204080866131774851234994941493555099863354742384280538837526233818735836273460275324711223433873589552608771919186136564509064346994667142522482696297585645938670273453742519402345159870387287098648428884387171976014525978436334558370511487562499875844035789025016110275961585730408582095999549398107650846622693445743779768655231988467462955564169341990135047041552610196849142839207872733487265833309518411255624519573896708983671735965033167945708080244794489482045255799599727243562508870289460671021948046172744504592546676015815774584500915251606807242204974511414628955186820934333274673546851841152368873070897140351958860122377366157457885958661788101845207329294549112076655431752404581910523802038041452790713148989894678616521446388380659770311465293058470008350745069051931030103825677437739765269121745768043022454267915789478483651726746314435760542303034024808138943697958199026389221068490407312830564524642270791074662018124955448232210861991212633415366184190613762089063121672325703836984127460836399507733169026106382178065470631720821175035092813042504063434999665623012791557656170277965405730493830353596717702552239026717934605974280214232138685186699234924839415381664216016385314844661189395469357085625975934400260591087687960676162793136313594333583237959250692401015828569444657127894125344323014324411062703715108648824091425957625322291962484308396853227021580755044608687763210150928792746152137353108302440305785140780948923328573248391320034705967194853891699774531620942712331191846246507117883621387232423757368344149079949160340811679742962507171684394371638212098563255679986733814295256480836689793482899723327670197925619775043308014087957751094607209276827404001164348045072283610982296980196133635134420947265083074606759278767463729813000158421188642080202742097316309826795903142190253153657097717263655207239850065958329770833783820231965641362536048067794537308133059085567307071006146159130048114001041987764879576859882536251415820576656705691846865686062943346937634462840161382155962244255203553814190356891357360102599095200636769265146056451725820948983785244462998627873953245124371772549041338385126047156498057292915818421952670156466679254431576905792451602702345991205590309125213805474358941032556528011971006903858908579774330958236284385564437029950443143501747201019646707794981939980803950254697923018669660883493667668983952726544014858883790790801371222253910439440849163491777114688623418772177161390780562965446341602134660231690124957487034414205779860584918711545930933288804774930416659666754745572415248549348404046329221307641195938882532406618117396673417314497106189742907422945314141900138179516129870281120983120250832137255718193363765460996419387016193304766428564319867066431464240549108117697426310545806225587063528909390539075543020647678298662996748803484664435613689536649735374803450942651956119785192225173908500086035143896515796291931798423655390679333915269374370445890247462173046021243998913489906695944808556453437037710930460812493889244504045350507311530431698128891139915999580346810455009754885462184958633250627569172637344553992644353723157543327810996869440876459090648130542785228591550274004408479804938621100236166476804964043835710839091617870385734366032382660264760191953529737040202963549760904516348758017358798192559682357759401007951034717312173140898729630035539260312880897202875384962315978350709696715401434319078307338362371840513464045055477118694543201559399097440515706173161543165974878471897608083322918231503872001042728977575674189429173098819427783506837312566169244936758469964116836280641298378258183647613210300727339544880068345660149501377095150225900832141767399000828521686781811794522332126998532441924062387335179654976738435909822431789320005077614335159115809774206598438184226521377984843869273005019948776137547810133560250092669192771383704143691798044263624979010734484540222172735099578080728445965813926231697471038208383242179933319675953059658012440357437364510276078132824668013002493188479829708290424492442859979802379290195005114968336254554719188883792732719914436137043990587846538753741833707095840259607524845831638172442178850421338511561043705089016303361343514207684007826651945637669794416741076703503044298885191752556824642852329578507498488114687068502553960360003218504199084787319209571633002024167817295996263505048880838775325255543089211195949836147447251949784817363745253102980548566783295195735096308788922110572287546378630495176385262543807163522945087158534876392250044422638267357796685346971744845922552682272504670969507785737041614302968454515117573767070093756368733797033831291752238116906841841061947511270368739507487715878451743947378911170863836921444692644441109068589537043230912054375740282967392259379838378166323485932086108235782089492389444729923280790630158450897908038065678102132588802796475029430566448968337233642219159633995159879351811551350201195919225774636076359439169864260053778086990819875596523097350460117910431298734338108231763264815116871388127480322842181877368111128149726568881469365981270174071920183435961268086186966843267185221929808438883848037104323633542200556909698536868397637900653357359688341181092595856413595123137004156618741868386539871153135547388916068575330611217656419886328380572446206669816979087514955780000129170465256563220338587572011387261361060560269723411677261903105298808941338206331560002935385200431079158784749157108832343163476563567649082531439528741632816094891080079364774210281170694702739861814415591275157796845202023799123488915074976456897762141816929330183151655624649799266181079580396436331778361140457351513508232177170851507132686010488028407361426316526245871822914950061968785536353480129029573349393671884024237284312932436925761664295976944058142987991215824848635807745794681975907456119052503756351032773116243805378973866572250626226751693173132694972022172466768457147868406623454526202902699525441875493620411486844311431732625191847346141977734525831823085221065164309056152574756958076194077771861871280317982727947474487030308030855582143355402965223551833623936869555644598762227427912006381822725155128369270961431893551046815069595972862119937957442198564531598884620138482635295863562019702124056544853764420385261210985933060995133325869422245450739827713478424157774245827622830093120445785161895306284243777172422463627762136680859813914079246150044524438594828886760149023876060223108959376358258625946985237972240588024806527790572679893958841280392423612813882731257931621770459857468320937290616616275373925451435009203164230383506835149264600550238474398306693759038525928124958726991366382042072134276328489863344229669489558576584450547499499822088700505047255934329091568581867135685780338884394395463981048531497110938513358809930199282692651148665056868991636609671845527229313968049189340595643400043631552352592385358858240890602368088095882820044223487971416853286914279921763784855908359517143189696525430505929842320038736149270007194195823172265530233352885229549370012158898589993084005158422917470278047500055405135899521662484969459282581782829141363517044867217573539256623832973282274543588282674997877319636841195506502839612479400006377814209768186738027235476122475956556114082024161127664957430262522981247818565457911594859714311571797991696502651083951107959609068549557959340357265317612631440193643005245109694779509822573352749509306181172791545076036383756030325682895275553315803030296307290625533950937606263485157256232132808492984516843701506125621229211747614644857787199663456649596061940626430314429773882684761073395521798639613039246992422385228234125563975525057351187969213390885387907410533464129818754738464493489874767600434124248558200367195158363751158104510693133121624069077515794168197064419582074851303535716840561524822378325307804431397429779302728611048737402619133985564546383053386704812701275016524036719894163938265388025065196482981958328262773278229813165314384916483853567447582671720290373749588271111312852703393050999311141358058869971790324175403443952568254764556347453375420498535156426007739642854221503550232702054584072086511196747641266696808671150211865039961101559341250970812182305545889536522887193096552353423915438554324321760944079450726421986959933921230701495308305908831658469567482548685658714246809271387481355865283919275187589073261981424299619773165795056313367169864748562985204449545706203843496653303031664850353543505070998034200971483327840375581411559020505800792214013269787178687676538869884756165265108589630207867091129469933643399887625060091165132740629779080081794078458532870876993199291399566843429506700720131305168815128417647428369847941118530254682356691463721315645012625190213159298881605168858636872695374372299277004219777126392212520089751931735183728584505841377935268063076691181543074536221250188245207499986981187910132888145388625173633022956039943933863944533907930759816088149371938128288849414877834909580021478982948330992362728605421021707316573784546489261221084439000498517376829580653372606096015945381478677888265544737051858680834045123838953034459341716325670057452673548702611250412007433220477132414269245986599459961478489591011255477448925348760230387635060334385378828022763142791466746432377278733313555263337945834896119661797928337266040843423712327245492316569662132086753191791863680781271139219869222683962381730246890695308222951794878819341875075522123515116550415631787712865127324649378646808330814702865347598304690164098494394331496661497791876679991800976405243728097366267645175459546279538081790446519278851062960897080722098265842660357857303817011137086714494424192104768909562373210736106078971281920787212319856632663982413623272251912510482805114957176570347274503261100164495615485813443205256402835910034032093034214380146887845660372193796536822803170483205586198551701850371354240142450260670950541628015945699609134292040738773070015246722509242243870451750445910439651704719498108537357999024040411706075180714086425146467691285216237012866787621042376224373208153385760473629532987768026892566436153714598256217753796934606636153358110581894488601676927979878291689859030708473136049070036759760647769055578959127920768725413551437333487411618616745168927465170203300696909313224169632880707224967979645597415775827569047976564124159208817715527121681554788730186946758101408585585212018849889902272650848908308691448711337449453619175868739893194335338307176175446404528510981970737934673470324920592605068686280453088566263680064261988419576412524319246693081316279315623244770328585274988807363256153078773027970954484301198789949784083680826466784538372644720344505737791949999641343243754444016892472379909623722103799040048798585595179173637353443451439346062178961089513355377536551045483669033052244250807894954684516094559728776897699044649817708294680626317256300255768759417977073159071213568750121985179670248113628165004222300037189468282778225389959566120974308814524253315298703654964887193326707815203342753332947018656246503973585277694409200712736327603500511939104590909918539338630869603039972573576499321948061322106200854381626897502110615564443093251835419196952944933623458691676384429741421749241011257921244815296505408518781467011375070983248621669670312856017304724994968575611111491873286876681480358780331542418740070809511299116538930640202975954503595392674583864736627819571316158953033401663792833702196746258807162145056477588665863223307014483501267748967354658340201222003435985474307617356331789110781516436544346414605626926968785831087885526256976285426287292458255628179683340601206976138254425623644164290263629497900130046388890212706217965165459940446755532252304219908283218306622339797178942940096681476258832467667600626627582770311450702791483847310159336822033862452373106937780542714620841232621190747153618979261926728458301208090888347754642660154108793777849658133788458805927483192465891644665485402073840922404360416185254579865876822258794868154258919564157174504236234010122980777547852541726674826679039255155517829650518965364808063996580031198110705139883746633324799264281068142765543313615248438658300148432752077544589591446780194013808624884143213835540082548559653396116699360460860780380898616403269225747736727601217251548673127921020242586306630401776490905154004175724486046435307487054139537470594091379970487522406375818391790296287379702709886388040638003898272586376186312232953583408938955187223941456442257588031502954271537561281270874527988970794750250206119541819117892749444296087928040284677174819334767591759568819672543566022986102554307203282275607098590244599660692693072916560204434535461506683196460598140280021894583555258911759465900295922083038724113520879534831430753812343680308284494632885351942588627340905707276742758006028513156296476279874045476052490610807945394896490651985990192914226861747198900904450920975422686271081504303003489268441392103148393660475300661320338201657315151208037964019042754521588153231916363123308382213280562283066373584538283537160872769134163896024917393281231428972137430498367846176684101313500332824908021571781415867149801750680682873898617214196572268504503677736416266664988105275189618465157835949671101464196216822178819617502650789276180475921725942000488723462868393434530108193393205768952888961711426658394386216662647878070243697150240516281396959144939055045416229202543924852446117612369559120294619287317163632758530860241749931994590208009530702375868244414739794306431874578484408187492755201181162843327530583770490639977694333554727780831363824058962621454853305743724409468479377164847020101998353133490994622754832756332864792996241186611274288699897976962894302195404991631220492502775924759450725806366116093275700002952006046582162003579892571517557462160586416424621322989959589223881411109696842741159601716785493750816379654875266400443619752172796592878179748340735749554776833324169494761037399218054221776432058130881685674185781059622416195905034654224399234185683382965547283885813216637281432173453676924166861132012869744268608820311843921005868129279517846589879651957335631694903057254893581709451198746012373909847197797631669920074611896695860306321860774985353045330806644790415640384425139211131680670185683392671751406358429055249110719036969783160396238848530653846766712615535506085833529233118911501996873795565778384710568520200293941427493895845756358537346392195115051531323103855674753793082220283749805300931463784079166596715259650747674738172549290747978468157924945215131945800483697836649911172892063226465334203657449250227502362497448598856146704143728530841180309242002509885481200554322315967265038398425935149501986147056972450287792613253889216912724752333229612460317513963665003884204732120052872970157404604579897673649741912327038077284854565491631736431697267798073781312429327181980063926075328904081501667949966617854625290879223201137857016683975215523915333671751202387790164287139633998877990626287877874736930943840814468478027950286565956020370670448275932028273685750820840915047372817595191312545978871272979356484041820037932119898745294446275772182596138440379123458152548083122098224966964660148666200787862351153025305160013622546887012901339685987348743131854740002940568239092165392815396861522320063876093577939861329559617429723890779434889789951537041962492335942910374115980751667158123843376445430606286885082451620666003805180193424989716636963444157479034590380498891924001731515166234064979416965567291831167972269425395135996214732108045800187930922693797355517806968639769812569344856331267410321746177045090201626230207088841536850572213828270887528233362124031191270114007378972262716455239513371870891466239873615731016245265851805398209503330292787227901375287589000699310369165169196313650994906562622868187881287122421462200755214824332551668272155104239073417124139653182968050193001976449611736783892421572183689335353102124570167368300182604166386029275684556785630042473694169154508993923068625646670517155339577200808073795133844448507969805901189668036080592923431841640025749837744661708021306436856434888760267532629084263658463706322953982348511536028307851510079204979219965242358798940938032160097238775943837950653358106795176744626884468657091757123482184251290110363881651598984231440975271137612344394561771574023043857445036491353910152125318140313542037155289050935116441156144915767917290971391853130589257958743720367396011075540807433181875354666736540869528541098756334724749769914446839967392955324418521903741467517694423694320642928896304619464494209295830093115151476517930763573005563958573222389242622446165715167632670545903058315844505117578188008582192837047918948379966846011936312235437495537520126350150924976233914672398060874230936889241957068151416331880342390856764439990475920000589683749684521253280333443366866925146127922624337210092285189597281414326124554533217289767920845586034771531430650271079105702827564712015651160627542121049157696380366463262397404425194301476024902064907570061968623462236292898960021787379184679634254550475195171896235173069262972160805296898159871332927213560564417156341643866963950266415028275672641774901732836682766530196554932762029951339265240733980431351774345087774542448045693136793375519844655470267847135842890286591356991625994036311048853165315786944473472925122678455023914906951309688236568741498324217588229592383575515215107304705523079624735556163851401963864367736836440141672798047587064854862811108020300980472082374152485786579152680721326903731744777259762678133117637418324913463902471046577865183876491688637410773539847425683129174826721169937080317025914641991925837743570586502446562142801194815373795633519375314139008113757516238747832594192977068613899971912963167270512768103952026774316437872737668208326223578746321246842272242419174579622847028106259201604962313884188850179040105729341851271371882320922808344457984659226475527717558028485110903527898203773244427420185730530773940742860946519309251650876047445648856066539275783491276522036006769981325736810282089292073409342148492757435399191329315321355378627041000829882500270048612130834990830416978843237062860971821568021869976635420013079032867046133030981036063842534399256520658477839270332191670833738373140149474271968748002381109803841913322291729735915533648767068719295858628039527126976446516764944998750829348656026880651663168480172547839823016822166026313192928195814617374343218842572847129577768724450766202445522851602204784501784205510054590776939517440745097786196969759521110775981092362457818821602005188668077458693987546517194402051938847044226135413618294934227117632788235468391822148119602454053906674842735451762172101166608422782324154770129163543701787024205844497860624796307347645325125696933985035154064346722062823536700765419844136472373609953301763569155191315735526237482630134651811911956385195722129805432097088317120314102692437712214109474798019663633617320019693284888819443239041218401513707009039954606859486723400960358681360863617691166533684302311962219595029071729762427513950271322777624903165373205207185011554286098464883919823662282179068723930576542303152332484260037809641271316503572212222597062646537475184316842036984486493651258500382141588784351862348378338153569640927535744048215590176959788101041999207120176029450508089707975508929536702972129442834918364056645160536649936958169242778525330862520299671605068681396376199433384103985591894310778400370471057113830743876859936828771092882249459041600978518621736940266539524912848030930240026990417101069959431986430936176427563441517361067753693454852888383868906208327511964523949795611301400269417733276910304277885944637016164786385871951759176677145289178345775624777281555915690924377702694809271167801578211324084486849842123613061378632663569409131729540749613028345056440044190505721925386354873847641864256463735566324022978072690148534697872054758108224760300738794512860823870843411388260479756532112842040748206843544885593757550431759004565250133993955801068381984907853958454802606604397318523890608365196533887597615053922836922051331602247490235341407119595302353870259611666072326986854801358399172597544359389444270864397388042950501750875066511282150583313551179512224338301597746549683446056316957880506307541153812175391056461001913498591367939527694718226697236928421355648573544916539383699058087782541590490255245292010440797553545563943111943896937226839250992000858523370425274032074726825052978750074398846400541792396366653904006736799099608630768705329066110574535734452366591532357951023276897297932788189412367560956527259210905312277181917759392027534284681178041284520143540607407847097656585679975137063390738525643160818616707641799218785851722750364882931312553824070028251766374298066439745812551373468400657781223586293006086172587904843434103606392959004695576858335842516602810611739740181687336497207008754209685954002047276173511983749495823139091172612943260095829867757634315008258744765822546618022508951631196323188514909062757614961804331394208612871776864012471010824151023254499208592676462925839537104788743942779780866162634669782118291520653137500643871292931252346561004312417384795634119502509497255394499830799195730940509743286999894080089371385959341420486988139877048000967477323520365751643266901559405952347688124332436041359890200896755952328265809120633922357878581582094347798624238175002651644098826566837449751372850377371600601621489017681111454368781722558248119991357750813091190444030186573127141211542479322326028415696034205467773739106072537809912725198262490370204856630893597576021503566796878783935929908086964121996289563889462087059431671250618221027325677777660417059940736142103482099824856376034731930918218248350836493685933052987214335327148851204566381967037061720635379561755754706596677062277052799757127473742774660676959778518191800065898517113075552283102382993196147115867330677130455279420232375890763765532589853264889131320910418064362077300799767745280911377664375977677655011925024762049234210006247657680308511575076295796054612229278098368643305346049914592752868521072727412733123810765407995752194353742900820711459129664861949074629424758707220372563499632159387787613057850084734310525951256509951090617501544686724559820296339018659535630986747935276740485789473239815408442592298706171866584606873546308360748916657594778823706087722107860364623654842522999205933756965648786981230047463542914917272422224358231104480359729775083070462964499977960893054652128350143766426380167504300875974017175897829936094957964287122630020323950242898455193882412779156685433715323741084666683523493386184630469632568644115716865244406403184818203314963512633434832154321503849353868892012706371693140028330469510562715154112996581299798925532573808721765768277420762595564388598047903528542460296365829673681528577971112879843239765067992450267619533005366909259885317798200451608712868878605802667223375532752886415278599783761394329266212446577843545963689588812345558830625169476778999541990312913479021874723213665240725169095472275935841782333855146490104745501352350045162093488960985833931656088705281201512487514079512055409642075366310153031881398763761320513232568232973455681162063527327240380347731681494979652297176980572688123988555391026242542267061300494453448240566457292270224247577060083371201727503501802661104540278510231957280705258312273705651536584215695622551630365610082952728819201546819059946650247912936591327200597073231124370750307214157226783044342172007943058212771727399734426894377590539500052466949314007137817082224575725646825298804769406125755374175870504302019615853007975614620922488565370236637990600457257343995633791470137027324388958316203610495200287914527638940419424154832633760825775973815714738389390323728041009236870508351452953335422367170047681259745976073664075037674136764346431741621917804182297605613652600417333515173869739653832986372682257092288145893272585090811761930935267337502969296415165507536306923512261490968071798332180935948384100213156767227746709284402138991716346619992636862894319827837095434867437709783035563513090419815540653191483202579402682448228618641912344402602971373321172753200057128916989501814035414430310909603343160203827222219509695971826827150958644370399583053685153501434687401797637557147105029652399719873785390049426344360146254872917432795239601053484859159341990509751053581977405389434197538892803208505259280877364774984262069685675029544504671751750440646123050288494968932055883446866100176722450152930867049278662675288887072033245167007642314878857493712166076209389190948671283056189385205695535218020756901419895335209174950284628636618718397886899536957861407756979655002885089190882101396415300346882478359237584757309552187612131749531093613491536221637136684056780561653238604871447571472718926564958818489451964363853290062868310346783031174817435188448710724378571117663797900162047343319634609635042064873153009567426375131309660633579471916044592457295409829245613908956985162477307714571558257800466120519431656803710795179885598734393115017305244098875097038075348377507494669090851774137937820917758288044062878454228034079308382113542827428859216849418768747642004877869087426777976571794639363770770528784845360952688133823151220145353557422793209803271425548430933024010719423781607672144463538955867051482881334353096129851982384413618840043556101263577999309147683692132107459953424441797304165295955405250545731956916678326514742850670986525583135009064276885120309044413463390260034169200974220709814740568547717578054340003943037383003494124577795232714787548377523513087903002242376457638746422533679829931697931279938580849080492686547261054172649701183414279160477872498780523853501491227368703266336905570420359649272636279568287847987046553773990142089466599555638742701454811205858241753689084681408879318993180446731299155881933079297665585702765760790747738979298647049086326670084017531777045074871014553927370458748441016220427111618318971165195984876636866610412780632998866922642173355820548092309453350846035069685248886068349042100045938516815221756595717353343972392023084641147211920805348382952636411692376833179534143541088507665046044158360693034944030326054537783112161264518005128654955382300053037492097687907387286271144337452685901813773224638152044604863399615419577882214272440605156592744425772118961204572735018784681085093668515329552657238470584717387406720653366521138955742541528013916106824375992325472555031123475587137905573734567855982114616421897420213892066312542334671617997816335752366684443933439418958085390124969388455411629644517764559779172184129913386579061996911920597707609031909136101514826435996255112572280470902271430921826114811742080481047823159030293288929902597364725366430226564738731139632891050649178240517308236679082768879833987193832841644526304563728469438997743708766510376292664248518838870130634060756570183734168548240264267005332180879322867749798338542017906189445034061330681030849157397586554411765075387113239556304053092239410289827324525955394263178528621968093190635475489612020601743549955373719417344864127431714172700391121783011329825475042859471978465959238211793842826033944926687609263965869028503367949360570998843052743218844961280293740655634932787899549016399006404678087763632579850254305306477483115145013511578721049112546815171107689264250523916525689862448858034141635308706181631140002306812080592866061576864525281998405496624061704568679387134953920484797358345348625409204626895104641845062992411747739892673767433018145135619618615155587398688002583820671472464684718917491225605290180884603008000552750928530518642451821999337480794602380505644748492676833875762206456549259870896992950174202420296088021958628024561912763505149589747523363345467933689459891989929875432452132124956796026173681717753840236488794240781582385618266368587298447281751286645954768063145974306216865378320406976882994860476326261329808366422357753451687557261321504828950014564839128806613012577383694686412909298981067526336744222717752774499467383472041737557342932729638133927948213880971555982920799829571124933266634247962718509263555917793788151719914017982382775363720091577722923049279173111845357397995245089518525420637371042054035141839118628348097504158444129219764469565493029053101103999095354432237590087473993793175166389278858578080808969901960311076076261444727769577526780256100434521997579924229825949945489949632932275483156533025763905668356859936050743051253105778893975130003912578589728603342717883041246935724471449936971979497031370982008294723661431793245488774064928486377320877794078857816488957315417705923903936159642861509160491429794575281108496089667392195737899688247575757909890095528721869866371836932234223626130681629949943864203065705861083195247591868004794198589780942834320360113638270619146686789123514690371017394042177702340406349631307055194449938266181364919858085550365581062900248385108305448367716095425083606599930727819385225882490480096956140815161085197715228512394518312082284360924990641999354422416126986773344709648758872643449339493124068940898335980495546964776120948503487971376685560268930091162157254033949160926232111645122445262304765075967186041252779913258363629541945479437253312069664466645657223890294233698614519314515421701390300278118483983383611625206739110457760121602600577218283253786350250041344358029427590766535277813100343303683537028024953917143228613760119738993684293685234000275175959276736612869910461288511809894396617221493555244388061303149982917215990725911020196270869706917954685752567190508239925341072410945136710921333207993802626374316921524941193943094913998922905655550479794632920131457491921491147645635519930463297211085811370153746365508176790852121806696455431358992504591077683655520757683263370375855490080665341145332140463014820280828115812988908129353967583074698622632706531773290401313018323741800043752726837476992231505369175596499439363923309585397554620126225872793218047756972090192091882556482929943200385568305262146049693655616778396040998908070329383993591610016547560330665272863284999370345254744889477176729694032831247303710871757351677151514688868607552447114495136601225142330035426716135381865464521891318586357657907459829277787525321834973855897117232522564397998383920806811816156966746614240974530413267664174833223165330120581242763183358033347004203606098080576931995251824939307742971026272278033039661245702159259030428414772749791996636199954278944060318198532177081060115113082757503839125481728794571509030672118697608688266770944102416774463559778841363517286026260419478964694813374797370080556040976420520082382493132867441353385932354512661349911638261343804155065030033822550856537237927617155010364645379645660632050421673867254045763314602823585079963991541203651503214584443868044401940087121236120505071194077008528657733741361758502402421188378559529494050983856901583412494127116974198151884234076287834837567293628134305639073056861522665940616059094596893307659082440127888010135500581432307126434135759141431300549982378428679732367845651252739928471253927904677919507815330621544731078034260274505713862772135664105915155249002533553772449853470830456035841542983581000487552929376401713546445482683079480303670450726544020268258339246312836691889774730025247679094192157470158981696011070786061949735145563610660712024049952037796219347902050503243276085197045555249956906752439129323483775864092375706371672020146318522611586786315963699929296572591604753982113371062995251398658577077620424704826637074534582192749959441955973375470812150187962817479752859199034775430845434735071579474443268833628303371421555316141587531551369862003892140564391041896463342795990606469864154809477242959087701479862292343265645422120818951956664607319574741699214583126641841246757559936971935887991091061315443028927776862048212888394524600503714794192169594147990954932843111619744274330587586804809301930356679294420517312717218082798289636761261735662531901465361984705228617394868636061547106729486147942138774617609351541845844777761016960074289341527152125015185401873875364232647290525753404602103357354803236652686758240540747474006913344410916736077645403367570028548065957732011557054453210784222736211526194970651061216984198886379380714691016689671966024472905196670256871625099750057063912781840389898470441146422792183179253290317542107143829432281788700705214453173185827985011334106844370944422733076507877367462688966906796076440296075348090872072832699296666128444714744675046819749671172393066553402861556255132060032676165230055677348488956070413008963445727330490077636629829892659988050792396549286134764124449812482890706291065422063055427230705454934827288252703060862814480618486616898128090452465746794877991197002690176243184101612995224306563201767311055704827352323399427393229941579522182311965892705820941434344300617137935543082419005069764393688845589677807268453708793853701325860975240230228024683818905629016661560324992595152641287274519147868200425806015347714831555406741655160566884053611847540964050721583081270950294231046731949308400780372266328490539306352483954685477338208007296146410212782117418955693846919013319488815165093881014692451984709306123569434336285985151708028847493031535741315745571829751074825905853751200961618222782500338079402905212676005699572411140568350057564874755340931593477536663761776142579605065087101504130213723553735402911640872676914858215407342814364366712487544155655078919851651383245562089399802856885845177429659429793223000144155456899349222411526612902052012443572206702262912119608695848709933116188139566609132230080545108461538087394484693121695531642476542361654871989447267918964719358549265582780508588728129852126030133276285739198128429207035423878647726175939482225282860411099798786792058100307596993008468181964729618317284983836221241482841595303467570554196902297235122621667327085933246948988067963061274155385960935751242927314693331403370192448426804032375595874881504216846414894433959418238544087783128071146736673879910941302552218949907182862887012072884420108794799158776597075358225869606614566427973254475759450219578564605668433328960338604315226250814265538794306453995116292920625866864526104982648832759145045201405836269977173351995151680334175464371120019205788030461168495067276718657857256203471836645993066120738964302402361777495093154604408510372052707355936739209698035749542252738377891265624362620504032263473983448113765067026445125810533829868990651230744797802801493739433907651933915844552739572042425341176619084664792778612595659484046595113439479906606518398286992941543373672633750468823816071239060717511604241397320742202211987301125585062508294873744184583346359164234911786432403144158512861430568602668327395533169064506456718083203910348461761179578641734490447574456253178448386662176823925990628979079562448411486127898696902370987059690067840788417341398291165922184229215255609858617619383385832860281244333062436952735369249789714285364342399230028313751374091795835855940073879333639548696021649457067862809422159771544642490327172132861973956371500392753496292069065429648692727633218167225361798954291643796127143543603966337845586530873108093825699881610171942679600023469420362584758272581393199272398313884960980468915638876826512439970000197646184434868417359246204280973514103828631416921978031052179796222795798838206264537965251840048362344362575123531754320726062499986561089870024848449464120477585460848814729270938640408260370511871739071019938159233068823291288216823515512411849457237314312465211753339789686550872622100591066790412626961408571941661214466141340010365857329890816249051330309952204959971346701233250687745518046079909428650595066021182279251471759096692486096402491332003627840077574638553437744427473387590667861505106390872368304996161886681734803112892127925476824521354080718518813070769843782155867639233680433079234859622840389046557545023298268655528867629455164808946752691203710255143325491672735167536664826093872322507013833924534991637655022266080599783950733117202431230393506344121223432097595509411729743255360008747096315607222544833445915773893766760794225568181646601319592389754177388448801519728240237555342739014269741107393830338291799772053169616543219204708439984173471354081034169618137029683867963719765582697688814573853800153383070932801996365831054673483196859629811106842780005314465348117136524274911075852830849516429006334210232683002713142535143908115683840686250663754070358032625317807615639873273542191823833010486375911576575085505637897363180965636228837356176828118903104411147733095520893790359284330425762760958031870488113537541924874147936543647777711234406794638053153593246213047490844177932279723944526278613522692820948625670924500143767769861643397575551324283833415747161831028538070877708918307676182953799868176822032276831829064338387588439796694699289356334448867764009844835922472285214586520025333770145445187912925760426329489889392220922396080253270507927093331681088361904578301674458429998851795266463048634758121090204634536695420812039095153322809804350984836264280549033294308463503198875668432951565955346607994393845263110902804672998893501948186148907495926324597783188134996808092763333456381032369864318927540457466821752444121087543417570218353540391807627661986884092172578025252032417966898361433188429873458673313525990045158087686124481551411630351502490853702692558164808856055338546961824606380638250382753914599704797198521926550020964320750479409863079742048132181498646462407210370001424078148345497464293348852520877297483001879523594670566722567578224682390506665959047493041372569259246671040140536435424281210304030428906807712669601603081608048427179092365093466248332024302000794113872219841890849141975745184335138070272301261074641832786708182371007207851325152384462364617110706653021901098204224036954939937558276243402579567368725127460951809196844320279360768442138131886290871871096049812230443466083235125682147301098699525821824025868498556791345200854866763331459994660204666189224893024153737928051101742041734699744508530333439408812461110614984762040031054456719586764027731569818727867402584625735964375313213369654864718515850900986508911097008008532899302119259018010986674056590509056691024740958782357054177173674322775688893174181051734636562708349465424241295867727263683657052880672732050082732111163723051740195398371920027531116882166966567818955442611467771302226385377551304256226205461334907821353085699347942735482667340178371899405739761239166777173213008480004451756545924109388707117111050673677456521015129449908031468114105636718067110006590655975711397037382832323289487389104786960978101095403664671753791327087076479055334432060587740749808137672735080503733855818561107779281677773700066912166252053447761682866115431014264596246745615176186400536407848321594178763911964133031143701699744338748349767002942170327518998556577465020054623267487690064374439262466793220261080047090061206115225207364323445030306160708286103220078265397479013136020485708371012509955435609573057993294429238064485127740877467762946344204510549359935295711220061703942518285485489948886894526584036115978131126881451000175751752658060461249490689472137425775106773254523632641664406830610613395830011581603436037007403442839497073339222819989816472849004719068427196822317950855813489484952068995097213618091859792044073993968670263570822955752612730613434583958259873377040354622055086502933096098538862828103807898560230769628251829519399633995893008219308580380444502809447855287495784397107275138813375390027279262365283752662631740498610966039739116412082666038606248006592415910066114754129313314828462945907250779695703433040269738093761748081116790471229324237682228853483894666274380533889012100632891407781050236849602119429802448460564327528064600523086864473944793321057606688084332462798108393886972022662171070113921050268406906876029965371863134700898882261767676286145076037883054218456292014126163884052391695668406842287231520212628538051148742065586752497900761471854745028331893229387389841074343217135941910092346436197983617311219232750460444691561251687382196009779654733041209818019262209087035635132846092776900769548531709182687519215302636846540185489689641322973163891594171633504819632772200134288757922908793353413967994573473094879464257232726008719953948067665426196947170284779310670333165554375595824570178949108084559767145473318346083556868143089388884675869420214460207200466982708517696746352914539419099131995980951738804721235484169727730629639486035194842425282070090544872971662761217134322907838666050533383004491677233881592170425363458018229589147500537559391781924754491430830655266411589091356255276646736927599190975279504677155122593246487834507686159029819420793178468919558247407668286530800972750740662371141422150818976526938268724738345327562490864814760019844889876599652855861728312902052477557621387443394995668834116854228874191672659421483187004861508591033064371998314642487339445627450700566644790488873796639964149316058984445434093602860496130287493393672495288964237328377994195562752333748322829399737238202019148440792039602035056161882698076396218201723085643684096139608200034702910619200923181481702802053403443816891001808625436713499234786831344135309791605206315465497617204593286667057676524853851682293506029281996471418629565699589314033835904592440259395609393135496402659971505126545318390657727213393016055807062133816673192610040920390056431206631934503857781917640424085497513811952360167192489642037070210133417313099576614088476491154923917584233459258107831447516137168234070084574111231085872847907480524535294453949363179768644894354070540224850238119213417086508738237668283022998915978625617365918935465340821368077758667109215968299019294256736790172918453306069811338248240202222125666752323669233599468370880150239128318465959648896437771019003077669549958915019184409963138361244144392870488489203506024497321188475445675106660597879058818795478143503343771171492652486668724481754702065467542791974827130767883700877365682888164951614851304372240842145160015774588598611105250850529340441307937451650072790266071616322651345463897184768469809951581483940125922842033896210100967219573259391443367810651303371476296879041235144244236663417038566004094072512751813221184758938907056476952698165437917141903863031635226600703468504915152756745826693236157269116165198357723465738547992828225951087093504559831964433407883618485850697844674717061420956447740162641958037836189293076026774856657388230477192975183335619403591820377251212342507189684087773794990397911485947036068230492564879321247398609057750449612984390579425915407353913776456394851995083945277696015201636595115886393034490249144685654827542374080550364821619968136193175907868727284034832524092824292290475207899625507432319093119505602901191893367107712631162091531605598613080772980654549674641603767313775209042283815751507750651364394728118151130443317522007004224967209544577328374556766956596585958736160617758585511216599988478119669749210274382003657953368830662092796708645941258714094104270261189055925797077008008801962912040324192554007620970757032795981066519799811464144303714783767862472451057004459723598580792028222580229348960444171762330881513348626853962151707711412569212539018324221794726766655235151879191863778664659929278951921996638154524746784082824602282800624877946981020593140135640749986934461373172472679871577880439039084491036363193734907144420026809708451553008984827553971654792031986833059450033900098134495459463321192347628022206334678833969641208602473197580484736796276022344561456927991587071774984490401223574136026210907217094929655996390993101419883269474979399816085392192349265296096957638936936883554738975015542690487497975744379152147340739288967655124505716195111768567488638226303732060279858082065658270334306034601339439842463560074551665625407876265410548707527765485238834385779139128781694456696603679441907476829826659491748685853038988438942794837742229549667886232581128865812810935484756639197514477960727709283309173979778801837548032462698160959638955972185180008718174854048237887412498248331847596015543008360120146864116459731314193105068090245263735678891143530088740667536978021793268550907302070094860370974392944876355653475089518173869393610100320158728979903952418285102479936117840399776528238683950663607011410982037914319136029866046648039286079436825516130920175484066202241425378068179713288571944180787131832497919566998746076910159612759809113405026152732203995955113895196206023050346178254967275439828674212988368952417373604310813639692835977408357793336693308478086164436223269646714061161677977160814262253031472656827203715401191719124163153025309329628290138820709091803795986765104759538684357930253485863020515154688819713312470135204531976481127504840122684419319910658960548297171075193933038963489193948708352961235815200047442840750490791109266397879748996072337890401865897240610390845246864776547865107486050575262397883557908923054656820177841897745955191508362835394327434870891548861529233218430222056533745418021649501484096619888686704774043620371103274192090173450520817983601063899679047286397229010019534026066136284023454528896172529350533134828921837084603631116639796751867226451514654622100378415608341676898661696623008098309415410516982683559802920953476112014908964354086428578587709429181316856759726967921232260725693892292615809213156596409155683878590516353598170082011482278974895826796659627070527147700615607263988613423591374611175698166678315485908618765285377029201394056897346453201205337602674756356592495353193027681924087703462901821632515223444656996822266728106471966318013319164882208994885341641270259261064995047012024603421811413872404038315546205155850964433431765386856190595739202812822246735532645965206651819570005814181770133525325262823233924203452542213591246833077079376726713465181405526014393494692699336681333227890423723508917943913267984043588988334641017040834577743033802896035734127291761630256803276222020908815039117906475164563146830120496174606482023306048013482097391947141472523383397351715476999640643756982462722963191557704999248262725360491145076359720856174482026572254945719287170684382830502220954639745381299812338623244120444979543850750921883166742628588318285111859551028644574709004231604791463299653862696790972903334861480887292023466447390339335281375956207057476864679265353983131678896310828265768739685448627033891804553935917618116794682801834202393168947675863794786601720141026454667010434048953250840595372635804546797089540027785854129970901304858669462096084629900995552303699061205107279147718521481502540131210324436463807714496398184310532761385314311843093988042782505536106206635720146569362163910551603808525045173843348177428698388901719865031258520707693427122694706054032812856627316324717805660606597002947147056330326672393518160120234271396413973847047663756486241886838344165813266636178461218626629431666018105707989342205300780510074265293656367604914129049923441445755541698709869203038784686693878434660133016690748351980010724760719254869524115570070209592269749190561582642710071333026246312384329498227520636765871741481765304173196656900971163682796077243603064978254857642183071545634528279851703423512792842120604530110644486579315473904811503982004647802247097652318113721050175490776976165381716691557745256406572838259223142899265455833510659554960912392306236202860953171047707865309702706533482960702341672535195825214311384973858223300618578620958463357932808914268082592698469719666972445931684565518794932116571105366629321807917311260262129693389910563656149927499529461202252564020470578863123094893542706399845512353548059159448063113390867850578500926829873105861970444221965699261498299704802767120870197393643616181842962728099633162555653958224347635651082732022866344324117074088437837437608156770518428288767458030643177769142123048396764866139422760579424782895613874380137480442050804281720555405068727208115876017617922342777506070965838110530088832976503460770127022369533580209174763036215579789417356533181857886609615296634334471569202166718601145517616404391805004396894513153578540329370000988262126871942302637908768083191166250208545357488138921418332565312710115657063773568424663259486466279151104872621085308007236458331911490847701600282678370129483829551707458545343498144496490419948384734875783170251800386821134427572430487422517195841309600207052447281872641410821602173846854530528819520243254359571625201299138140257527788776629790468772339854759981403265789225004154158530275883177649131831919165885939560791785963149652349075227506828607291888340733179474075536949492965619894766861381257150337410249696870057775507237470949278869895899096088708139702897904807146632475853845683942470704345657352075044801484322397301973114703717580710502778410401486242061270113619961373266456786965122176591090487148398266026893304386544577438801673748823865001700042592993457980575793212480151190896862435438287110000692039446999387434249605035472237340924842725367408348091275070028835160470152084803758453408813802686570432595076609732755335287685013751676318687210132908143463215411075570224478986668679679098229455859633488056782301205488856190281130223761277569656601574772696354155461603058265431496679140800895647100716933157516692834146844635357952025509635911679250308604696455221524773787366024413206698660072642632326506807824579874839321171193176734640597606526475896854879817748403734747791555007897490622238269139591685888954812268744056299871303561066489283711826452156653185412142630369153035589467453417746273176149844307971798913451138819450812722123728604610682475449071661823039744543303426122012383021355073860444025269900323877390625484063796385755159946285045733329117202494734379186268514182316558272045058305828822799609075053951051076462346095046372625434803208927229583238080947140261781387266703089988993915045485711041879744049939827600764972029389578336534957451975810008065748953618618339256729764247017582308036119585163732603569216094389063853780983999892478205733108282375830883596038136243049320092236568453674931641004347038826324751477633768911531600473586219899901591821558516813267449853416403776654575145541612531142333364037919314215996327373811097395604665687207093954637680139687420794519104705222337816843802489557466240375391648049375722115638844965603795140593505479910803870174496616750924577409622943141712800448965705360260084655577375489822090995691887322912093431253792772127505525953575802686319178222752350239163554035702072261850731213655007922116518814534720833520311379730124209237709482052418354777908757187550076861351089030790115270652990428839666170633874660887550207403983454600039699973104340768143153357065913949230225653502748538468529617620000878971275357232971804149108732790608969538235371898237774777408306960767971788114928349495151808787753103954452787454378507397536282664018653996136217120964113611800210276779190886058559324714398285969455547579105631560070345633271707432456577583089662939848670070734595905192962927158310930273775178512975641027328801345016170417213433970090627050208911995411130612308211920696152099143399574099241688244392657793000486232716752488291867068716961660159425299986068361850727567153620365660781200758963647661974551654387694519247710304718729126600541978415230859989333679570486949353046816685062981507707916918533060385315162740352252241296075035657109478146938102926475542461249118839375238148342815704199560045046035596897960471069687332809101420991743294610492047149923709748686648660830523358925628386381188685717545474940687876902705038520854579073420210917506173163658204432061305871710388118650533577974091330293018274646808884886583836322760626277837931414000799955972954434108986689138629277501366561931688658556914922012668423105307082531527830595946373534934130604776524688309995956933600809156724122273097400000099001178586358086644171875635158257423367840506731442946741324683155060979648883043893469817414712098821905956823670840500749474612969440113048487104534904428739175993016093936359679404959737722609015519473579245940454078624455914526049613858595705310349779683489828909509352172017976926260411525356920116678788901867085288070371714269897032377851301765587876527944304333634087794042334583314475194468791490503623151583882420706590226291773142501795807253048326916942629373752316632019027127135026890942880484026029398118459147053737042018737182985931656720806876947752321370336252884242487426009239752337607767623936264420051889949790197751272018514725631995509435973132321160779352992238862861921706785700298830288795600737593016548593527933103986223914787316175984903084977557521247773873033375519571151056289808737396321862714706816607176294687906339095893708794000280690422833703016170845488630808701194044717888888300883346721478221230445777606289075116204734128378151575237079190482013817171292639476844202609085836719521110817149738037055446081735597888604976098154437974757386090885369995060674017881396061016957912594485535122523788125750263429507754547199830554452764554996988433527147558882310912873917977849852136698015311255273410765348721395256592220366440097257131330880645278498420722010700555027743565649785426964355231714687509737909899351841989878529089154746575742229379915961786322229701931842601422851231140014386582019260512552944895936375348957283035906208843218444656590684065010419413587539492710528814025830004625295316125946139895575203791614003641219354989966449093609720274031125891527508792009575401210535460303022965897174128215708138331656763203700929485050706680485991434848923143190400532492520420423202382398591239911665441584302216524813842730257362032289911659738994893313356967832863056727598360323797987584085032069588593435441002622674061294082475239867672336634683044273894282962816079910828278839988814319267102826450511238897099433212378814491334665782454401734053796430886902427858289201805697243990099630921752552151287186388641937057445271581897034528825573162736683385559320477334802133165313341517097272209666383203179714356851428657341515423492661759542654634115901797308922282944990917375889092026905971215883407089298525901344506829731613464365032644055076333044796515319477864185508268901185324129287341551495328730082164847300292190061026836364165675322358192731231778659479223320427533593365562362956177043072539326371750731524476040725825739184087335653376896544812548525527709855274671856229688836425040786706388223712001623161010588222111373744173692148462650707275738723212905810933013420818836934240892003573940620312701839725117883946664529990886848662278201882248734659041802282149642288136253473746667589192460592880883494992457758467085571849291948833912109575925037348344857092283898304379158431100049862419431040044988289815004390323018712546941147275712458836212909197048924710770001172179651319479372798754934663968887617439602873607201194195663978376711492016445236259352695472831291127201787135707026377310265916752983687589054493409514311346204533795252193157418975469863071394667341236361069817119555434837924819882587558955558232352509506360355947155881408567237488350734176983307599706467250389100661775781312582357646765146151103133754464661885355493219940332259462408058988230193769475838838092689802342728057504847744078568841544679471526861159914245554532915187557312115750701156426220995800028303291167879191221110104454776736374535292975417248407829010589757192584752140522307225122262166026175349188806254727837139235124008539528656138160547944060443378404674125599911480455949361320684610989510901035009092163839225996467198461044005901891291237223484974028913007957440898481832152028114863929485772092552973507417389652220101246710873867939775361756567954359384450934297796267796288891053411887313683968367648835839329443250188332240182742699415232492280764857163197501062639635178201403446447480289673949676993102036491791828602665173496911886910475884162547594180543348113184892480842371893564579664202321661529789540440734709595771842596022334097643709902917980193719947734489658213723428966107450573777348861450157760671045794136603685217766020925427592354442985640150666016688621440591299351612183413309455717802787495905755638491005262510368406874263082752071180885460341862569393441892498812999899324451918708345662749037325919647449518230319907744297235026112838824854302980166091153870495876246012099467655077294764738926921732548066588703432816577434284288320988872984007398985252519180592231861975919845918576592983597787060450880503662044575656018106493993490837325768253574216772193447370771519907365289199747323087983516273159709597114887315555523090114404102461959634306034553669017182648590629383500814184951001608882388734872381663610226065228361725864762004362554092079710465680294040592662430597979468484871271126028789593296300356940902462983031208462617900805676127618962257904817867328979133555210968550526995453085304130548845209927912463575004492387264445918785032215125919935139642031996876788755118992088215610960557746817597369089853137015825076129244926006365213980752294680976933289259940895493220088944034791875825840245967761354356027662031426241360404935589953122743141782624359738755699349385965290261666092647018138111213345184323224720831215773652549808600588497177829595652126466290474218517579315687436986061770942344974949738748881222840016500044748382735779559344132032330944510197582385970322433176706723367175670050820297208630595171029248234731977228878444362979619379098816047882288135408606376740018930579411677990233714047931597325909300280328753855006378227120815301428290822813904529756258705123825054134950053272293994076682007353399960800828749155640901577782677334934438529644966398957066702603105311158250494654011162230010540617071357166928426038932706273593011906842796262173122363619924819608491828288586333842153584089085562381687172692804301759183775346542287171213256811212999338094837843214324945896648282226116878728073334380945724329182438692704156846214588771980444986185336326741101915214260621559298464773074922807935907621943013634017557430054844448637461430366407564571842393132816648592746933670784015629111905957031052583699109432563174820358230269310284578842957166778732398716993930852225348570936849877933236991544101205229309052559640221215897177487944823944721170841792240019245199524499985695659237600670128302947033863230193157528777111702216778422788344857164723951927426485200076301930515565136396413848730973449854264531523346477408467504091088446957855157807404666082198601214275979357013707845356898503920080791161875516122849624121096705374916163502757818161760786081589252072881497430510602138861987618835092513738115810126501508963374614397851056617145573212446493183290196081514170607939066041445742168619645119301121401202824655672261044297453981432924174052855710533752075954127105877467203256821752341459364753648854062324666931309695803257899503539577277954208123976143934638644970699840092053864539181643243426615525665617934129733006736311771839918338924968473016722744551108554549067375360658317676243075913471176932331941503620756811381296598606978007180695674123608188815836890096594926976947225283965513552889775977434235679734536398316252250111468386296700650058805046870202452426724886704829293054773636561716563755534270455213427953319728923583709103297663522774721405662353271645761587390440056061434453286476343955783285320473255820762602096584787542351414726440864183948356816938105156081632475677672478238083233193444873954776617987498066624213802110259547297094423975463296003583915415326410316650969718578928200676518103825527650757830400116566322617691170785785215359795174814048118066569193672163306577922654793520172771223509786206893813094407274129795366798107878385320079853464482521738334112311429639788010647805895195803667357761653896695709706542499141145659120274194697108694449141250266015676331052626016385240829964647388378593735286352199830172969976862087908735018792131224325815028737126592057358873350307576323742864865463228807948802809049233271582777197038585518082895104269481431523340277687975357726442742989423792204663971392545550979783480583620202281670524587610734121418320056955656918862326541855841003721537841671916933886705645311160240785205234047359764615079340659797727480438313487030776038689655470042018266928234901753208228095449194045314844618055765150027006200514192214064499924220225212480953235367790944234471880859401848882010411488566525676718604621677057901195542135654732394372498561695262659717250052708946074865492947371574816927706657891101510735593492501872529137843180410557246548785783295421859710373808596321509370162456041993080058542983274899616191405009977004011376937250414349920719575474564490021311865790232092197462900575160886185636921516256120155189867844879020662738051390411726980439823534386738171373166246458426977568468209317620239007020154198107283401153544316429588647634893220354582060299795237667427542082313954668995807077692685455924878802264028178998707277469116719171191231433879879430845363573727458275638096190153277115699420461314813161380063976722929535138065936967193425903892596069218613030012328040661702458302289241258169654569529628229607947613449170012763227205788647335078635691436790970263359740377969247644463560677332927647397243571361651858984819062026613701897240243875081637012947351973510090987942590554546676228739874147479298678243983605909238561407983740981366889881767059846433502556523007130328976846912112609427589781519288895461625049389542181116042238282030363834811512220800602540136956712435372903934459544434194696242257731246000146651264731340845380002610205854810785899274395958679790062862292799505266818319251638027520127705083407472052804878418670537772436317942498555020794529368089706732565800212860333882870670027847276970319785326433646674105962967486259496825053971708325881523372267981603463133007637226716250725165805336853240882521728251102051532772778389827184947091633010650501825818069857336469122879012782264661713687179081522295863681789891936412420450408477258972889489202130983078561674799658325420814785929768917253865570139758824442205915277965801395690166395133448244902779060343835668813611406060367146783240872920006114967090148453310139226710863471719238921951410598108882454644412368173906390965232984817439579543263867265061822951557654729723497054682890340313543455743894469930718949301294742486360222030670887538521296404663533448878829702750077088941670556548292752420861380163470271159889205592858688770395176436374635061709564522324415905024721536226737157168384869366606081492249108215056129152529739707590499308847492292590963934342942382063251658782150382127004531865811365200935532784717703967363766378789488336466265207841116431144815791114940455226026966695540613871236573995807889213287775684613439708595126269251930421140151103385882816332003080086422571803972873828918932515433405357515703955131360387064581341851795762768274951787949926624065972613909356406496648912080735649264438211315455216074766541572292003883493608544614919404502614494716385506251568853086958985573008841488027317155294592164913577360380284747874594346164001106260403854021087196211146907535498568090125613665981882177722733423143712218515933539802420589536011932440756691233759694433954730063763063344495975903885179030754882591620586187312598847713096942935348731501665748445326663836156733167826478446912095661778268851518462094569002611973405372011664433861952713869190942368721085144746507451372902936077289913630681395798056974775805216393491162271446434123182421005082935822512903638007287909143595049380909848302588195852771695292519201493396083463996150201325459357268578054462402609474781752216738981093061772835110147991839995004154882911675453918609859971171950003510472164518721636908240635336755360234510798759152257320681956002940973127511008785642943826989480333253860179849019480079194937738310774586364806994490248717828888620326026393964344133232143311039488621164206896790451725715868266306883121892940267251210827081712603797876276047262251973582062307467140649740084849208229705697120671880980799867746765106256499923555855553623903988038698865406057510591216754369538907581073494014464397415826405433388578833105811788085096786498670440881431601166472188438253555918671485283866358026727426215758003307471744602512931613981750465596426269935514608883390104469472523342418593918536897424018740395842395785847642031681124604297663031523949880438388236184779308728806467060996759322237278348134500951821485087459089579636857370885207760352253625652306347901015847690301692387430749656047287687381827991504337850751746030243465791027598029781136256761253047474752277483398429309926099155277484533950693238982207829164570459520965577923154328140796962881927016388543501474133367698590481202103978644312847845475283626553179875666323605934341932620339236939117869073658330137483407335275204604403631102543958379971408344851467640550931440311139296886664122197877349574747829963518111907328972241897811717634090644635592984190848950597255309842108561528825603007370807596323986466412944899418480485099500560663192652136259299978648076317311118826548294955058532658367715723645369998257202279384337389002025379353701751015732076925742233268302091564482531574702750843806324350740964818448107561687015916789347608315937239306705817384407929378432606310690957252016573380183454318271668151825656652658378266247219395157902256295459356955910020828308291716888028520188175978212483907690263819812792732730169176654896688739708498632023866181048388111291840845710510580348622444522577939082103821049365305582159581093096410797122239323577357294818607076095807166768212880598519757018795475204150221921239002179588236422268121321967150726354496262041193858703484733060543391081802947454463418432368826162428459152657672070791195077748902378706463549572155399213641568990801865028464650565789192315993084239456910217781654562590054027564939997262771724366133583491409049660483613988862276024353172053490481112308579806062439969757503802797106579229359006976645497138173321489355677824748187636787451847588622239091231412655469995715039560322267114668836873464082434014349808244004926122647138286000606394026285062927665951904764243551335009094481003109370389525347616369155006915558612676798427659440843969661899842058759548431330931446289264993524169280504766550842679249279769411059466910796234543126243591964484978164175704265658477215641408048249557938554774293186481109313978491504487149201993518929434976739934879266584852913144550587855044060387693046333782526530204696463311615921520081887004430139857958221911586518191870444819922818502559224900888991488641983301704001820126935311098202491703283989958506751474116400456102391952173393236747717276689601715314066957400670397395028314751397702622709328546565428242902366047702824201233540212802544895155149661287533256488529073758220150481611020925810813353238456497717060179710166594886894854022714691917254953868123901188716162023920308695367623887226822150280595862742878277512982243752785253987877252067511854968792612351997464340417970069855872453020045073092553722546927846539644769015303296804413901543537653486112057376018000432996188697253279942883892513267367255767708878954175065656033846242846463389895015977870672110637463241200189127566946865202001158117663924955707607558316325397450618150774644721844433753679496738368055846543639874711821813736685704232054216307499270181834065277096346270902208998750704556228708021160030746434302265219816820749031008074296941080459679596353169917695398808425575096924660412687134945205185202215309712927749425459678322860441104992305159376840850142784929052212044578452029802858869999534768163578050405269831997826444545690742830975170264775658511448391125982836839118699994910951129774449413566542603115044404306113001738328539484039053053477846963599533568946991157700237324254511179709755132574172031658283084872359523392198100418165845225311996286786535521006027063661230182596160967205211755665412213124675432741489527055316721620333404642563137965030546711000521720749376627309877990116123149596783671470080699013732817650038605757876368086667613249263742676188261281591298409812053105163635549509657863280582623253400737619106401609832554436028601145801135604501101081288717696445012473071550602340054384558957852476366331351112929310430862856710429698749394286020936116275826949685241295052477610820993845505057601736214457868002432482928687619542335098097250759895694652394277240651892538685079091652321809690872290237933821443830876006062253060523313803281387130537190869843534459269935936978618968974086343730780725956965316021706728802794017052417898689668413812447497301757689231008807014744419420360154897785351763920614755200177934636892891869825714803476019579831445552840645647704499122529393332031699794159984824680192359436565750052706914250767172334989932730130853242628421769730669055666143425753062964819648166767693828549644309036693304340009272126136429712826428283783428977192853523821167480234569420710692211165095852217039341306038252674006814023675477292375654498431282151658324133336843287255954036641547165093469736459189304258660691591044001401160600406654536282459055175380257420089486345483079468124167147866570513059037876866418398888021834584489832722367969809428541157982402995148409672434256553819106752519479243696550394313105431804524474507796124325406708159022201663834327273554424522463035332897816475968070001651280390288556328917427494725001611034727203112181109054240874891088485994720331046062148115948921245199037185711546889999678252379846308619090956034742537271188194218808539763212467854544405937496641923000841781443507543577683138464289531393936208794855695493262579539485750076131770526412418546948503419704003892189015874693447350615755572517573473339518378316652333833652898571440226542584181672571081899122876226847627886766716559767436702082420502381939316478244694816451023409810400590691202847627359501619370148638346082727897174549097857472491145036417590480547377155872748387905329822596402889233119993143754732741748194476968498888063071255902629626259684213852389951912674708512988756811857460714335411167516898930799410182447100453680844193983875479040289968499238857702969366590378390477450459804329261589871696481220394708617546965694990297213622974433385778053849669968426288985361324158015253509126889063274507204192737895118400891771414868878332429310410775484070136397051064001738014465374854417884270914319191953962653983295318246407134617884316442196292319788031847920341327174403688061067438390204807291185370186962306005970678549285747656992656973930359360327150300382598906954888043058015354991319832231895883535196856987285114862345444744876010028155074359852892669465999179146046446748626212495077649652227633222321237726976989707439672226260029350741144270678044904758584093768048973280019394636942379577090438521483406549048782412755356238415551833978498105684515633019758790403258335324127692409956630990604539041557749672036621233319338318701405679342025454905829439780472521084421875949129267656710854340052597907846576242574700135022752851587287538905222896332013366653668422522546731316843026310762837582562046845842308876566446774744097598050590430969807310587394456306742765347497042084039710511346507973977362489156822499581878604229698929846608741995103613734735975302818862836346214653989276002788518544464225488469649638982638526449349300845170328040322034022358237287188600962920169531638709441024672907817642888998825112572499792587900298633984462412394129023314806207217334865741662940606446444074915111418714619706703466380304665610861335514301008688991420739061838752916242123107814163092228189992199640431632332645969421917971479843855029953861250406709100394337489345332711191875494545696901131080040463222601424632392828624944050666349086663273571699242593875713409935201162817057767074266293609066828266851840095012150038555717937050172716956717664816463233634396174791426836347469332821493268294925680437773432656425196117910895573318488281448016574298082224608411983786803867606212171095068748892830285789195161651657966757159148013914867949224945674770956185429916980974462792421821298800883161051963750838076836155944949750646792319976493023935309236678414101456441207356825329886101154567566557756199884125460507913709201186652914992310860271809800855071630396635376337965739988480320155587064899166375623204610380664931623759249488812716826745339313478560638719041595080055199242927733519817545253469320447198996570033294452163097062571523848952605284725176589382879163818057275781957461431970880540500143422250919064931891323652825839649323946339921317295195868453048955849346236119810673465529156519665074046810663813696403568605406483391640301968469056418865590357186881039394934622884298580745190282740433087953265939131814488712153659786453635114009921632149717804052951833683338722382353160611940337439402969263211860384933533735166879761807796579885941174338169643218585251018266798905017290860435111910443515837163875424133469400580396535907182916217881465818180115726606234849416235210021396100288425528984645253377179816886127637736657145195588992070917723401418864426200980966234402097809396002927345166395544968732938758022537007917342179685526209377174295385987567272699711859056999453758838706144905136176202086797089661384990839091703753133408907697530135086868970346349127253071542687867571479535630143102249611792624526785967041256657363386130457889220174042317974507579389043111284995721039781385519457905965200815981224326851677844726735057432391853779216316847775772893420085799140007097360894436852985204444840580727050107262796715796446958659208252148366103346401111370585400379357494848700653180775429550964675023192750661267602875846598124981948448251915184762120621680157356314268758442037879769409483500191533605192569571451389688005200792858004952887352795400360900650766968499536685306174003697551015871813321754738133835177245973352972423620869729132989170282759193370648883346825323934862586078560320783520711257158070947146145459538415626886552495507446171913769255295610703125185989992943708055478081721562710604683209203950592720041663469942999609757127474213427152139821907530023783509591726505162937386273263380056032473747902518519344380786654509145896841845956792964111159882971026467514938874635370044866906471754563341976874997002004124937007257587980299709220655955910017716586438135324725842143479236348545008983394513449243477881955857326503320016039347212598040933673525022613741248644355047940041138384147581317125674109041979791723181999616063064603026145397448940954356106898886260631125324219072891700910249959012001110834687573423361277911202204624932852167555079147113765013079160830347579970228904425921135523185977558870397128109907687561978321512423729736792568543885791690850175104498007506144695719295590193430137499477333422835216584513727393063685286216559707855999490814302084141835458731770281349291982487374056008559439476101749183296515906633913657621086365105361114677967216558870814448604685705470995207886500451317145247895525830388035783358771258389245019565420215615785004041547554857235905073956438385465548514794124949680885692360031983205734829864568336819380096842296649852829626516860270299823070656368539540753256488672425382805296295649643836481993315953223973531913456725515039216967899915009274995191895246572279368311291656182869836725739762920185947556941814826954806323705790904007091955707555858082292374631521296629992977181605034519480965524955978196302283327617778756951444293747184231516905422548526949656179734743864153454921814949008944596495459924954803555967722723528753278614991219267302965820848490189776361460611058516589701319415323427988166675392937724999429946103685702983518085000120038061189408086044496121260477273370612913806212321574302820759988696580217716240590956972437684217160697734209759508750920635173603552936297738040496084189424075570513810870428155106558772126905019698014795492122499522843459975950952898497365871370935993873381461556481166428995561408249518197529844264168279066098491519953580989578975358464783667585815390433199444018277136460678787528827143684263810528168901987137583852641526418813749553296628945909609688073162395031673454196908331208099405388468410103161024115001801087819508402061081873099244169329425217937355130693498198027993149096433357148349873270985813146970815345663516803648931910667760242073626465475624554360430475351162258365050362256843306016079005378888244195147948106953491380458813298604732446519539205595923263687623080430399919752317069192489305658016226903937541605109461083589862142581659768578379458645801463863746960750803289385345562380533548658494053958489878636633511666878186592302035035362835653675699526344413092955685730110623948088404002147223142120103875444150918812858862250359125855765540434310145268766704858599324431070512416852323071743732798106629867650735095064745052541943207300349848274343269756490760736927256973962543756520861357088398183042098993416159660189565546585201513465759245173656695359679668363315188478749680179456291669276829909000043716782363810272835632334903459192964281329657218977572817759882799308658007850170720026767068589246812200987152200709721056450086649331284176268628090310668380377615787259887284141648427295235748580380509581400501123834872203101029983499009436101576961544600429435462178473711932131434480747336875726712454830889793871110603461196239098144574436305693857633009530068283954205685067085086170618541611676991649745214887551749417498485483872893089373704229239825848165688791121227886585094586558478712911083659388837372054585232325156952078431707437845056516895909271830381939447506097863815441884520694511505852081584757459280470281858420501330992296832593215935323858496825691258298301944998207354630761436792878802980585753684101108207331175439386068365501082646060398645645428684460627427554545735835317356058726140121315891101724386606382737849658159302448438975326105788124163916325790451086358933785404848218271455779533316917220057315899147125028092777256227137900111452855374221957345643711518082257906659570990053321259330608478326160778545461356573403380552355019993197905232683352846177424928561071396178401094627789552394352395435354785438256415647006263061470590707618315750201235641025610929629783387892524353139819855723634418182245375431333066285317740429964505256827427641418286391997834559984632898848168709479236152770190304452843121200354448556049626399635804739748116939096266721563807009656553435538955962368106325052530874436774458592536761238498087190733991726553129463964147746611756948111856576227197593886711084912343346963950801648861280024997228044170746125012449568826727624320123472102560625275502719843271664018073046100803014485781643546245416295863602798433220921075755050429432991522295385979511419284831406985028104297009003612601601189630986733117613546514427554325733251301611910501131053393138477335816659536081472002119412941459848163303861266927854096752407612743514393403219639052342046070729430407280824658534857058294688704349911109226768138228787311265926763560437893517514933044927236357300333266600375136138746929122677262083830351669651701582854281645336397112965852892074387784235393812333178588109693041195776753717858992482109093060543447490000510430569167572604699892469827923323298537189103910473721698309215225057295189509988679710546627851604511314819068331188269068840370915402185423232048818375079361841498857252722629476789674386780208876201731352498598991302765920406655611822613041381502172788121162530480299711299304543592533237288385169649777521128014603377956991346352930963922195446892683616570878817221443316029728748951836193430480124481674832564438099796758489232289939840019021831271407745235672452179122115177318716136586130318905622705398091504446614607987365255200132755833733249645608801317506146630076368606020019611827081667703918536260929571078155071703620021371875875209291466426503509200259330080858782355193932074236892352221316069379909548634122088132134656739892718210259545544855091465296301695491469216110507350150423071386535908006584927588704579373018563506469014331610159181435562319001227546774391231854680020826644608737348013187928718604724947508486434396418657449498273391463910547019974828849602463060626836714917588220187548877034135010342286349144231217346593235922571424143381776297242751141773841738222285175054689667705644782004123692541834545124558741879100522251213975992024395702851691702900899249794462798254291131078509224244425259497549548180239567657699778703269153295485048897879062021674789693412342395368665570671344931122943557470299156264098473647416663495104803856974029026974143142992027304774028670924685240805067068785982043783360292433681627731317329804701529112152778373732406791627623809158435164308805269886654245766558570089019936352253333534699509398353795831809090748366198371517056562478495622430672333831622114220258131524363407696618678744014824842242423459074724219890075351961126253310461810196603212903685174607578317465340937542208515301803050251410885471715103535769817936600406308549302397840083463151101893992712951150376405571817500749988388834519661605197360742886312473011594633574244983705163005003522635624987217884009610194812215636819109347137182041678005552795888748621548449938519773582201238808149444971893785480100171683728354498472334470903759829749691860554114090913000832154070464385306345135256832100526755020481741535410661700528172708395532949505339678119086129771440495347733621323172912494926067673050475140756499854136299253956316245800658974993412178263156043088666887548325239172224027376707042758086231112581975053092388676612446031140355932127007078490723624173832574580879525084263425517709167412240991420724597001227213934242655624458049805868701859277141719543179432171279075285104511663510555256575956100922826707829357597866325592104401176113807866745291492514508129159202304201902122919854679896212164343468098152452441299429762638481763436464622113964848619911569019027829279128954114277784272206105395225286701570503335358772659458871537251492446439689525331251984902562612643374407203852316509672120726299328137083117662443918908241721488224716304433418889441389368630157202032938415487068672919940398492519973317845145490287219602703644518877730592471044085988101557955277833906524066611076814659710513576822364658289135142537463253573667019781357725635898752723753883768042678755846166248086862850618211947183746930799005354030189401230845950454739146826994567747219355178812371195421113849331810924840594216951657380419658505855326226868401761698995210332283457721942046554593579301891442024178404504693383454963687214958213871375992413792703071759283243108221316975596955777665614434584277161103360061926330712957034667023104010552411821402926474090129085840300679802455829199656700607194690901758105768809226763228685063298061432207649591433979857573384183804381454760214626271611232832024346006185469796998608038476544626811328943970276142892443853734993183265357727785594401321253211729710445064871254497480478147261638362100889664484611503585218456483534089908452492095302380558633015724227185814031494709649485302306823267367356804155422413625698126864827920722662629594434089481266976550371130737483078085092095517184841936113032901121011693444843899864661140700310316843362151136262346843870964655347321688611064423133777895068187871987611318705847417474177279675761619966297870674652726325755596149741746186700173092894322802033910230311847707256846428702670811457541392471943425619048891906755965711971789918701556693762292255017996786629869829933792863236568611256658584260498863174394908615066762514396702966705813922400955299011168832010499131545409591244127119462844451780547120008532584597112583687455785250116989141681751475952055693270354736084860988299085253942529228977891088170080154525370542012918796063553759509036740019292577664968476430232257459502155606448135050956044361299475599543481974878030005059028679663204088421097069666632356997128167834195744229581332319557986897618757941421334760560674583485241324545056755498560806201822443619341483471807823207111703570454066141807355703433106372059479927573962658445355161579828949357336104982025256773639579207866041491460611181405833640994691690779374894951254588707211431175826027672123037250146307478272016742608785030183828624026813301889703092144645499099557951963490141282938384879025753389734703871829844397796016545288350666274875112992047663801098268250624544668852122093342602780944760783888648815636958841764549283778827851416229608905401852230265518466008458574116484633560462902700299761888972409892758425346132195629143847861917117653945532512001748891723337537428462955325927744651067228811771551986954530747284011855592343710044206370822895980504847105997959164657335302224976719576432566965726567928475163288483469721095036134148404751998697486243056382331379209305274218407184698829780815666964518469944022210346225736602317494579524919657159152239689516529208516318254112661111098509423939484528168664247121894797967247665585593634392121475891370511043913767211162113125689566027459816240128339035904162701444478638902163502316338746444526620551421009704724049365669454724643771559887308628205234257729745014973879559870073241531941574152931797128704698077359257226940476616974077318223414415512201699081889603293072928471103145641568857903632690851878709491598115083995044192366844393389318134373405656921307796932270560797909748950970454996044467352860406347289989662448817663606646596872747440290672634498395913967720074661668477858372184976684147738349397057786024549517944884029268090343122840709956074417715091382275739832132887083479976697941234410552225346351259103206001173142845300170186219573549280843712761666678021954701963004353622498705311195936356271370888454185698692821937912082634247189709919345224205921712798482646107998015165822354816789651585002663181928190231078782653514420400913625517985788928396799217392927630930428082231957957315694155671245009666946644847789873484585164829747430805181196929889237022684441255739329740620144577962012429921761229154117120322499071723042246063117971894942772252037425535753663577379352265578003888514011711733102094850166662059925079425555396383215335201364574771788127060263584518665461252320164046550831459872938306602000197051964324546530758437203502733184354788906980214526578945765044967213518861608289526273249619376666041468952930393781644977339182867035914040382703559848482911321209311221869760805396899702979099857807298236612507926659942431544082901794942236801358954598719867393165541687968324036603748722660441179340105868874157542260352207600574883340377708247881063233541286268691365288846276176177246433989445626183286685463908967062750410997379735319136554961525934610714212634838763623468613020796422257994375047097076058506832312735996076339288064655589626855176686777137515965759571826856677679971429694752308848724786402081976156412004667626296707895263089977342641549992943241945136743249058135842541161362853829724907118333359883210699724713465104095742534968674051426534259144384011318471801909332301822821294515614809704744284473370177393967972192363529325113365418442248530172235899726044195347174688917539383797373358492714601835567561886417588829010714205413967373840399061197129482406794778305928434745163323047762428655790093911989116286711828591091751911316083022814316170525238257299437297711089382942967564771938667865157445339859742138155959480344179104839917317923183449041519508478951777545379448235641636426634482363630573199536115815472237244289372965509191271440052727225415462274258976562549916978078458965006572247543746864303942784651229058736653464344769790974067924432013166015531800327701880034356755680655647389894823235967441748896157204455156215602763766977287106005229271726215068716639715970926770337266785743322771789129942765916515807688403628352627113836496609948829956049827581453353464889582063307873691844523610219699802992543640114960931648910324840542916187416081846364512192838706877059472225122331774428971406480554812174680390934008927514396553090298976873381624105986256259445658434359840318085122026031038941133864091710794717954497314856964044154002439616191948069893389327151142459429728923415180575821277770930101971188401441921232492138406544296445241602010220336644104252471390173742775081278649716522679315560753345069621885873374261524447027393952795556635719726433658613405485674141930699629815648060085516252186282639643138099968885253709337979883522661620644687339756229172074035035230602730465740169490523630079236561894072318287533241967386479169246564013283502514215686693430366212552308400136934542605239064872169588133843150091256855364026154318547987484771144378455045929995332036107747997890931700344855158667373415840658018799017275545821169287547364073864849824644330766771664694400295736872141396251814344241155268329222051777750602131436622030221645433956805248645417587772688047427067049768412780469539413977768480752746550222332599291175864155969767689357663233229786788726942344403902473160313367149827374654023179300371868555896495678098490119053594079123152851197517648960594776524695449156806354970382447185877039624725272630950239429067839224216903694714678703073637217060893089270980735913185563897662070953066280059724319480452918803373802711669489698967370041577228103253371326620967416801087580972716365064041572263652177922852392004880752084075813122833162807159858431765208289502905260508485400618678667155852088250316167722156890089768545915745972625132262486115256605360576941176235658629070624232592042882710858917094405880132947874184742548105834473886080937646526740736683576210784095571179830657741015322546318325686149357336784281962086963533889868127399962631778265510532024238397340385897399181316507362457370685560403681904082119864134210360572327745324742488224698943860594995889004161071003937947640478511848763677222746347748130954210111834067416979463408601110372293068938740075686271008047179416060227469477741676359792243772243741927848820216177361562448131452169657026345514580423571561126654273060480050958539773269391058014735744747904741983385100144076263182454834884117074745286085493274866918086330415399760613663534350375995425100223455907952331590678615143274408588782174212174707128237288952537168295675938670919267772334054858622572301994357908054601547057330729823943135324115780802957576025274160725875452065920184396744863880989578060726136361742235785793497948965595755738707784637824573959873988411971588372444576667787390297788079938569731942802802347935299764019926403774957316199240242160706887628742310421265349820466438049733197272150962538216859173851428764954714670340756771318035062310428079096359781454166782718989333912003466945325022884784483506535979966156095077310115201840576849165348970752301754101014819546656912782648952288597721362747936855578416220623339608048618210605983193000561600623605381131003751619954068297424929261431202879319772704545999215717094330858133759346444740609729846031629100892645685678402513032891204397659020603204687409598716458759425681862841320400415855575235657024678190439468639918120686975628460988110374405206441479691394973089824871069917052893742883559850668136864849625906994518329541947886234122771161200900966788287316811724679403029905206246489762012023527348843412223948719450327140989210978783322780473348668366330646489015075182878259301867031942861351470637450596867179804094473125105360940744159147628383233005043697158230563809011891251703459484236497222723453992595047026391091565141893380689778471685144875821517227549273466282822838441015697814723812538833670619569488371009712601378305649466875832141927848552345568804245080677231149273897081250663136402409006891913915487218401757751923406256377384531969076130069267147413244964987896922474352229255389811717350003790624110695504410793864370925283698349929233200303265732463664871798855215965908341633592326359817341507830712863754244960365131539613017536091833164994284580812700270712554945716604344993404313480877691676376562528284616112827810566476657203537919419021478365087290461022417131724918407977608582073084852624220591050894346824904023666695718016955047089248904526947570101858382313835173974454144189187581069886297046449297942247270855786713181057078465032415572708155658154790337907026046095654608174456406630424786502663953691990991004464156080817481512899572592203587844637180993251038045489436532678276953989024448372477144080178734366653885123343381713514355473956149784471631548322282984229064116568626223940308791779690219389595165168454624505786202654453499066718227055734804977873072418231259360277512415567869269145157136363738708272802445383279886379714641513822866955667823560968247172075127446054221468099670424421932726850842663357881118023973908411024668791727730058896213309444984838094000308794233682139445066614160607086963821010497217044626926794906226005292688041202632291425077225269128883637568162587756352248511462436633547246061164335496212069568593621520809055984886973628937924410710534343747262015671567818513723185578149716669820500465219454146766160349044653501083915193761639004970893142870735792684858315667597142512486341517870340001296001949936434915968358890582063737533296219008149235700983787416344621697093239683868003149003552177075716070881501506868725739102895982072303760170040776785054191569007762905748380012889759827822788477508717091500428654923780964660269402420188613866396533280953828971471948903613758470916257693405387236181111721934108953258867676466050513201161024844050000022109932631832163376753641999484018294384393476462156863515435981907159728209140556661716515190517720080703469522706962251324079060029350927091761289999246462579629217576747360086988021745754572380245477535065427523032447753337014258006120074291080313684708450038084632135296254616253908077384970773232495559340761646594052556261577235668676671362729371280271065247287265960512565274074077807103082735802856053569035229450271560268674424797821393976484484580267285903245090431823257485671926846787301484332412570478267768972802849696427245896176715400802021745669848757827749227318448346950479592265731723188422948171524492520369798475179719922064575486556497715679048730903110049558059929635009877254850302490411932211938423668751316122995328217219866118015788989332172899131858288465235712147730896887695723932415270135773503324113031691541700565383460739505983874169928092621943130287373549208616804841758769206223921234947802086114935885371780600401912923163513965315275213530505737985066998351306491949046000949892069697199965026494755992410117487659070865516656341113995884334969643075922013295864196630191815885488188277249412665383467786561920063491351536311512906926516658445108277389125120806842947539618795957316782059440696421462715037703931024037599438599427594222804887920485287462539850610228703642455396305647500219072459654393711873126656946458347510301344962080629149584310318845759069692382676752918196478530863384132978155100990205427875555339432594985541937599930784036207131685920635756785627543641073288370881146195098431431259238035922934569678426316794485774755656848149481867543150147880637423508935568669740546826526057349986640246840384785787908846703080976302810477282325942729492459436265706055055186681459000615043402793468002253175873621283518489507077143183788370102750815045871819307192570761542892156231565467431981864131098011758032427231791169031624005597344923329217818203679734210058031569265560500002896481400062973530912265220991188831895588592962049512062107939722600929140678151696407384335633521922795424897629301249809447197092458551259663880678599200713138839713952508878494539126398667734388945276298118996742985617857495256304549707892312031425861028495198692248761330175491829696537681422417714283192021338336285239778909346187840413446533467522697325298184834178138859595242839277604630951385024372806083541186577158378609466293896411036055206234270082550238397791025402292345730969330612456670111354689621799988737197716242897154907022900173052287079828639475521489018762578862400390390983091947486017014523583354250771910956007130240334611972915679509953801764727330524458704904514259031413988210107154118155647287298197658725528576343901166510107676458079412704180916381805421178254310567239821472800788839311487352129025970415200506357367348637184011709303486454044652324355867773097246379383622873691640307682142323155259102412115466215357509319147306668637321018913453038378195263313402799240022869792735224078056520213251569882616139105607825399584779282062316925022760837848913648205689729491090013223356771479566652402903242428318860206325080811834828992327930582361760632293596565968787085302282413094612978649608350379253810461667703526739539961800536516356242944388038667778710879667477773603286898569034274757322755953975124329567879447818329065587415762847169645900548100421536606727825417332807750367965256383003159697498546818597143935661373849003517954834905067856985058258029976385315433332004831296000804499609552073042820067478801629554503719820367949173979977846528618541107142458292082790339978333995213355593502043311608741128491490892632172346524931462120383859341467589055137133647712774606758068425575287440934403961051220158495182959278933968184176383435193761965936884881069291628806818186161510341424915265083467781846385813774216531501899848756349043748530525541334539214510997082340604353664736710991139319947810916810145357751900406785825446078489479435614080789147144217455647246988804911469232741975260421363433821605983252572254119985608831710339367393983157320186512351875444714795294107030376741310087781416208868413400763232009413620443417792491932204303933187386585573493334413504404777953438249870789490025843239263743232635687937929398118072686980638927766393825034791636897702175871157358257195592129839304743363631935798617310719882229592169616788240515904670668680484367148968321453516968487770729544334738118138586566089407324001093063283132588464566024280353794645990928079839153924632207569798504898962951613663137258124026853691283724167792942256190673910508959496806957189696969836690941873179937318368388064430427688853271077773822956715347759542152009193612410629400198285399235840121054876702563944862779847399950974889052937649003244992014339677763446905059564414450113023167319671550111871564892112191910510732685162018173190640846209632025528613165600717142186288818616033594938082896147590598151066696970561255779100770648481502346412361443073114462422063737009545520688875319738169728008258079585922335056445044285762494570446030665447906739290453114792813316478755117373151155413025500183871566823566673541321936117553104974540499544276748966307817962024015681150541174522147994797931349705658059505961120909249749631855450815183991370758458918975064677954670918351971366739404553177568784494319569783646900571176917093195319849195719765281552927658627728917231960752549988020764585674978240408071379062324462767377936018166969874333052519082836907078690915170796817892044698785158103592739879139500328310072199576390880823995081649352574849608919628827390622021296425135486785204095165104249478727792012630580880245468820034469132436983079737270094949412919419066266196420673970894724991707788074756439678246457029343663716892958234754683364041435883975130366237242419162215451594081572849935682899602342998268222653945507772732278504038212272569162867701678204522976563151111510287086761768426865850737198180996703759064490234393427377471593489203912825947358871080991814840082174106082373515846481801591127388332104059796016096423183025031474807551006983654401355267396061397337888380407299147366423303171249690338164487392183219259103449099748670273066184625540710844836085657315298228169006058325369457140543474631896828906206575297769994975156770205695005475654656414612106206720802774037540799323274495436453815535797878970485141869994980945344849173664324806414867889097277584060384952067216367654187852723255326917772204475938647080188728437288356562399769789431857816420379956267135009887884361022405218550721901404473549061934963460334590508873454276884329915843807727833682982840302562319351676132710033327430774871306835976309168033710736134644741518492540540888521948147516181181107349785649416679143423939786748246803780226932180913664209471702413183433434656608114978956094732861077734563344033849387896809622418505884131071812217101761173386818588566624203274572800386477739816197893357294270981160065853637073316868790845077115109619756792257119827945462736957789335084514406075185638829877656364910200964359437655702438712176435919857985024172478946307345159276882060314029695167999563153801680056541424883217454825985514230655978115235633493253333702056913643720139137654868509379166515266890693072150809837338208845575289416268387389510947842158843155706673015671079930334521809170409716350649705550859112092952398026272791303346609771304124510161908231660562540427277094587189748387685118241634869011457506589052151905750287624739738482112305092306593128007656019747888429402429856433063688590885324614460124945560290326339075970622264735408174908672819003450145193714985884938271973178631064399722582273289808950932965640916759655680405461900147044686648875417642763997596832602769459397330926697896184123587465979328956634871970020741579591283875035231317483572526917703423069796951000200056398928369275136011651280747509256834983161238734370161397329926930244619317625269607963628350527225617735966452627274736750362686249325299068126994908606713828651357879402575014811331348885909339828685555964876346172130274497070643125881181641208778787153284904958736586445040340288258620221215603240706467421637446317070435236627402505666317034010236832219634013035126705245408200595630142668227616567670106213339886361426041539483778624440930094773453708144880726083805874811826715645709400175512555915101717972431351128401433064321729618293942389523078482639528061976151616812217753611345139985469705434021959685447528009357487921025693568970680844561615138293202141137661910441604636436469797082442629277353196407332242820577593465090207758595097543462717624627529199556864404991609220793113986567832044700938225343500932976746822079444006761959617294393148369560977378784598881578948676192218596655083591522502220137087901271136397099092321407884871237142618091025358363682270942182758420022664619317546600973512990941133725052509577641828838082512545885538115534860985186484750467257173832283270880303051475605217127066945531220634596102259504410817424197221906839866420743727178427199387108679100938211350517855110960634111629350022680241971368493990965539206928389363446221630402268578936624883353502034652919684468013704230770100968442556875977630641397618277170642002854417465426980049150307918446592611414210163885450867584755943018698912347145134720174575060310602933550405434528683616509406403698548541685075539062932018702423517671583932502922468856557875398792456430035995242738801473533975061598848481733802112572681736188261794785349494807934822713192413751906128362532015081398594787982277711772057465918599531132712714755263836750677415016547766143913954832519987892351207555044900351752806543049281896032758551995499410534579367120114930143845671649345379059093168924088727816592884250190502468392391605824390744157227301298775729333297061268439129078517712760765565773108332030752366070411188003484982499073055700681169847113346850957307831324869298361347695668285322761705645544418008089854740008444604512387986289050227861201491095927217581436130874999649911666984513046275071686797996801276527063408983721296163676901813059564433850980154724072976629612798474642563092448066509829227729514337900535530365112014231455858729234690351669269810925508188591392937848589880603513758894310078923134064996508147320135350173265447769893354359482861329628313624771577168936760680743650819240287097787656283431912783520067760988663964244137633620314283658162829757974985949163806731615151457228528484238922682417955495485098806390707721759923271315542665266486977846832975870453658566927993707146004934997684472286516003920201543312124567563420147313980468584638026968710385475995542882870470049188864286891051936413359720030907357477182367456290556636338200436017462919504438241814801905999398294776737823536304985305661911251274165747251835623708154795807442736504532485787489500593717510363136537965014183124515884071244344272361390867021536892181091901427443678416979984390460806089742396218238081533554068916458212594315129104511449158398586359242039993385082142766652945680072494669062114922718317181371584110560841923845730620448786241442168065304339950131671138721911789646685454797681749278428274370491608622974872959951552489468515228313176428832024428925065873149743398924523302693628457366547453782618855701910975077603007517111265713599402027464482939405863895646756966752043130739414119383360073979013098484375141408995141815736365495016039767110007145434283308607803240219667306523568794516993691334122617254194665517049601175402905864895419419481866331487094154878966951120286035979810252658909642037470387519225908824055474757523023523280912049333333096911957191345236822489809268053328241106015585174575874342767285189084800109355642962515605327115261124940686169732803145638092034505619756122389824609981940342368565153073392380544317467218776592201934806255661250724020835856547009478164073330327087080303082925300082727624319109932746908432036826946277267834800657489108264524662500464494670583353305269721610965474023402084530784776638241830049439958723431846521910309385572022965814728628982285929764330134035715697748466972526403613340533351125008563807645393933072819166242514555909468734502795775878959873068884380847138235511493875023237199529655920634633044216301946869450752402921416779679072607028479526152640671683900397974678063222908061729492533762814897956879903305266941537886385293290875695151544751533681478754812968028972296975807821114946448791917177491812891177257077019167402082656578384421231711491588757369418470013255676305590949540587166326901592766826098384054922817075561292775919551335252662451850935326770591010561166306200148548882280135713708792458179162570775663948330339070655678945407391558476263302520503017858798344505960976613730253277418107214744709740764834088290958210463161856564860405040025440526798929739880391022835203335193501749310746856344854793877759212291088189297971280803079070296283250629650359696735734035271733202939730622929786222445133714321982391716410540787426426448768388419582441178231667754985737579730597264205888731997599751089407878009000134669621755705109805464472200280374167231481913293065866531215982167842088966150650313006639657807949032878149063523841536156284560785500048511645098569536490034473805274203247745634187599491478784447574749203999870329439257545783299884833816468783701298399498716460910446995719828794788064494996424615580984749555086172910851099146156716705697925650589247988393284245510202384610297597425112775231627980388768221983156630261183559015514729438656895570416412500725282807616402311127433891919545085904618769031000879038848500099453158188963582157931722813197797220688323571068077639437270956702565333775385491266080157540107738215340127889577426168386037484420565533289323332977172867498454367277777128437933061990110085986316186499563615343709083982769974989706745091755705517341632706004853375303064449145063573265388168688653283858761740471595760233317181421647322386049241313038752939230922060076264703391319362032759856906107886062127360632345783216509140979285911982354471440307809424926113771636320984236660166878114528759011531729840196495554070488562045688700173134962525748965338669184338257541315057188407100164894090739833513413431717313283411209254315008643771020084773800208091320963435920480805069522220284952310471307601320335089146362393410005581729453527938552746879770102624579871725599242573346360966587742630606785096476384878213337060538408978769319722585113095410795652667547525519131856679533932425046009765636434338532205175973391470205904273310291284999745878750380134233165643254960523239126571011587718314524479518462001212204261451106776853024845008823616593307908444588246070531060216845050676367871123677119722747848744429346013131931660479970314515894030023869760075304051632070503796830836363380900908016814985999915717288153887766436886208297217147627328686649107419294903564342061618156566693434769265164459030395665877999307510476190959711097034026138663795598559252884608232970890175751419740680550191067838977432620508239020335923943731352689638177376812782534161672671075882667400522389112487142353034789690319844243872552943319380535654969751325345241721830724238885580869700938433361878882713669382575450639811877630404255953061959562572943412099881456849174467441978378591592416011780427248558956580702985654902659669609112270348148575370067105671649425884314076385311796849912606418565073430311982640384704375530657956889253472878283873147990608453020508022073482005157571072800952775005683704646459035781295712219467006612710393238806911807910559777750164242248866262867116812090431044780384688647800898488702140769142359246538615091284105479469293145778595261359426801904451974860841381074376319593560227143600943734725545555018396303131615197275248812680155728700768485487006745436455779800067842883445735571233660980512585618756934620099125541676253991486193196318110641786881521372411939225264942081848870942381400182892463871847718535226596068962896093349737119878638488726209481613222218368051779483989249542252997891889037807706594622060764427124422881757066132521543001729245487747451931642239704742422202929015373973908768686388835155530496506735459044526454711996826620383211375938307079777063908477675422486463656229739029516490745312001377437273852442683180816975241069998467462455728161065891924224730176924706016022128113277753888407090865665710214537345946036286281436759879184867984029445181965397568034592549533204425954347419578768576733245859902144659581305181067974801996711261985265015114079825331326090225931931227386117375424243392476749846060408139277426677680813890132095878836507610992459341542132356029790634442856403431122638794019336378008567487044091081922512086094178264570591429969062342447421774850897812083317852293121349906174608369838798111442303402689307029437926913087757815278077081906318074678453004911265713339199142806290604279934762158028247447539868499857761951023135229441724676780976520971625409260282453442496466791217272595155329962985601025775438956182964811961131983272976516006335740843658558719391862050183835490747433107925795083205444807069411782254179853059282129681608337682292787709092479547196603596391593870372452302750356698510779201081867891032769404119799471076571722864343329055965692273404823101200234067373394066626811009208777171235888676028044935816899454373841640007347885368475327543946591005494586345576700639417545338918883657032708100001175835086508170942621119188639800063166766465694180052197258519913355182919886289981403761724767899094668405023681636738499555955627373223642022920646505737482649387585582448331817161144541493979838999201779010329116833495162198567762055859292633002642951297917414477335212651064444873321933249627335489418810167184103352492566472993397207359616250907820776860122680590776671686336131425694017050107986442419056218935883911413932382875083133859985106451601065849537470325295342713558353109623600296062541390654505708254925233036784575401633976235780791269902818842808185396623444117502448043228884370238558829837649887923231630897763589854580091967718424817820096438272328342842451191943686041016366879089899511312295223802748799349526886699845943910598605012934621531661670731472959301051443744965550331112544300281156788445030207925727028401341426885776146645418288819723473523353152634541375345457163562123131578941938157629742553658015493133128701962378148333132218486405595495865268466565996328804972386609677935495791097162445110231827151469537794338758398865279647753623627182999778879092682303733378229416700105283236291760062962465659358674595789752811078193670013309368409306160498875402128185396067335371225860744517560618846956170873938123344249776457882121799241711202669411353891413684508213953305055303346715369933103052474806789305602993899056775281996990517077172487630422475346312055871753085274628794226741230295862741636247309150129175425106382912799324688788699109934189108021983901129541699254746579341466605223809130468616832960888341364517884832421253716329835745036375186450281437033567986467463668144748873678612636110892792239450023675545584086780193066160964297465349974284737826367931966571480780521276167827854676819849308472987487229396455140555707057529533767208689454510301158915118652054825905569963165412185024773112623127251839107711703859501731621896808953633213989320675499847832808105984974544375200067705549211846245312976636538750187424717785290040141188602134430652547587144956375530444044058839361597506311522171899216038052701697397618693474536402329759452535017368499756849244090798503532110786199971581919482683623268768178306894894091834627366382900932464994787929882009030993303579513224108295001780552890911185287968316146855820526513892482340847003624059261669757678105605264551232148735479480134924746904688784989987107161583675644401298437805677936651716556080420205665510511210993586646567614243321209089522485276063396697711671257094361185034083718672643341995943531822160429487468848878085723368343706911419894003839933443787015717069546194962440411092535808429256465690235296695145598149762763885693895068873411557145639323571694618840572718895756708958308743882552127160837491613988605681302987051533107178771484232078075847792595985812340151850026251764596340893913469891320897286754565114189825575035111162400074611245675316310656291096835998678768154982111238323973545865539760754233921175633459573823240290061478635007531202540080229093598364462678500846323091274678750160625115261864256397542985734506762964195194678004858956647339709586862233541987890810718701363333447689399899742629063228344660982599443336733571249735965306459291104103460735506906375474549104918073717128453252836361593011733850726932752293168186365916812252087961720537212969934113927065383053854777719015589256093272561550118871496727473670040708801950746647585505115558255635508182044240453334977999079651931986057530764764759956605809581857902215739856174999245217918780677828964164004633345811171231165678459499607226954119028659012617697936080644737059230476478101299729698260779248074520477445763729495485414670775368983689489780306692419298768236789905244731899306491232615332894889624059592970293444770707417414879809297450720466955535470675987933137138193890770525936117233933698004891472807734363012553066127352381041392592853170110695270767355000244743105020645479221969492423450696367035959031146175472498490425430152887469411679899577292219949783745088380421426759486537415615602689841155330697052642564298315406071020772458683354555571055873197624968613778298663978736732478067782592081826255963742379298290296927328653275179121913750637484753378853898628984847844692803133719587824608936167983599991752033207950435935880572406822451439483195477047061579094802868590572279424046324281762953976241930617703489438571152016211097847075692694070708552599075678109281694084333016644738183632108534084596559041948249752967610957729849043012933623001595458440002953919676361441819618632694775143943843433438597460946598378776192002273186122414542177983061198095570290215492233095369557989507812293890133462687165710445807888046559326863875840896677377114003906470485535442913837856463124984659813824148539228755978939079335720199684256929280611311836028735418084302503097358946189064736145151767833619167051803851260220493913214060661769369004543506530883126780811253693915991752675650705098060583505329726506983021593376630812434436773967986027690844896271604957704276279171391107358668045623494368020258935114385872972829792264776218307721290287442977881161975314024972007352294590481723574257379186914131546075102368336056924475002235005824411669019404956568750136639455014221396437806935780639716346154601695075463142294503211443115914517670501438439818077006620905315470522218945177658282054398924812189062465512752823068266018480612418050692143895151760577209094533425232959859456721354804245546366427757250720295650334038267161868201337341912121768397193926727764607073622293826213278678755712720384258060349533157315301184148990707210904534183907815639398343523140088585787630729511604394379456411541915400704455660183755358650242036873036535603889770509814017742064850528731298893596435685613656910497024796829264752210469328586968552225660096341297695296728358646311873501162138926307779347139154910869978209368328133086208053379490352732314655985625518269311609677028361874202150552937717627478290275375690734608936441379935160537663050013824113040553259722772808077053975273095301993646919843005949209227081889049078819522733970838793453684098295977000294552513716629484018283532051206498931057118297193231531384888775819456798754950535678081678569517157446704378687610831659515118906567479742670818202489702401739769764399997799134905984390095732980833435549768501999281596001376415516505891314088574140405294932350117305143647077274637439146680407567215727571476222502787396819696519876977071307508764527393766898480473535448737541447634208850548127851053265125420798366106399397566575392656102813243901192066436357136898777990581829757831209086832268059048741524077190435388912349682818827710620889225438454231592782766429648616552740759064437696805595762133640048622919243455250708276454221070168817550076815655641093900995997153317330838984889869002965963916162170306168387818390250958611878973656781254133033480889142920764061332801857376229173082181895446831713062579775996536335426169002608398388344452029006424067054840310829254826688749094275413231561722490962237143980198686780205700684653404108612771559235735207060776041377044094920085497068899397012734511054928897559551708148824874736365995637559094153804318945769024075940727873218209852115238320873562988618420194875222216847314784763916025124417051603052791995760836202713851801468178152052644639328767251142138380935461903917399557294383471145799660583300159091940524655945219349501437947255328157677510921238957376190376622438542823976299413900667464819384319051296884506713354198801437166959367092752596032293005895282492671506199184861969854891662549280610880420008843160117183925123910789739108013448141741820612873972466034313582368930104411902245466901001136274276943081510093080722421787105205856416912480708796541186003680981370593034047184627137042731533895534824191980230624131198981163985920179386366270317332728621478563803656698362998007035400194853224292849503455610163744094513754972842382776166374402440094804396966042017374998250050213264616576934556492452358218012205604730942968006987781657587525563774823166049877813307376628234781831922680161050761234644945010623743051205894476503519006540327321720785592320872008240418268477158245839869524053178973752696705554736599641815465618119613718494908897040974478670099188092202676682883611299440306295907415527782328131758516893844612414737449254453123804698990878624732040278973340753797236810394418435773578119054953343670928429381270041771722641379421619654601786750860391713629946809584637171171454275752635317190256362899764331077837946491634815370837627080752248728339628574310324298925152856427071116001369835850825190382342941355766447881668004545853536652523129286248455354386202979749332030716147397169189788438626744576785398300165505920454704347416891252576571237678956126049561262562878236783628600130044680268429342856083437057530597998842439019488846267359996674470039123597645498029726430450348993105413516016781578405160382979626664437174409017839534089073265199350807348708734106361814173058071724142040090948596642031512254789197869183345634773261700490920829447618787409380671917448001332217615801958858267027754732867330975041879509100957052614631511433487849000339798080263647250780837843712829107585642818874104796602326588120308461299320438222552412681072143438792367767773398327221179343465423814616874234975346091858509179473761841854324739222697982330619201024075270646876431608657970705126198643890933268615104368206107655590991327765105635934452944264521624710990421347066106563831116486058963069922163409039899624544786052443744389719824510891071480142865496590119267929095645343681133624387970959836152408850911841576902129524919285287730255054573386467965514292185173080798730426760606936003368757776621757022301628633205130650087024743978779097731307444702835590748128477038185603614572125563915205334072135590767845489534740973954424227743881185876356713191004250132838174922392599599336627496527486591137980065436760223660052476081663207713716308840443745406056721897811596031548422509741065684760048054529667666284572219734834432116926799388794823127099381096812625077281069101985167453464056030435170808095090851670809068487316434369327232138157114387600061481557644920322900297492276118675161140024731065804182740882636285988349014728720567747398187552244824366883167943552050334391789194350340337620130508211725300318215647588733755982956489612470826456578908855168151659063244807672353750738477988366796673579449811246019832785305936011586598537987505899541357861726614652093033857349752531831362395193737059840101244110190640850835072145182351970316841308977588794903198206059954118855825779070779625193260206521265245714314705848807827896445002654209993345080494062476022844712866758574960377918957453997540730534246427362137111789462019356810908383323242137692441805329633623753840563626081993738475815083824580119969011658189003107003671174860106635609170898911449712517958736142494250119147545709001471271563400523096179697539668485400772684332143179390854846041875726691860486793661539570613244267189647683748646916539864072558396332633447126479422835692088713284605056065397844214318965091042167978781398590484669141672768599680512234341215266880007848663021390720015596304586664692664440801190879592016501528640653279485563461345605229969608138552260591586294578034738911764242259918280808446942232585893027064233937051755508210268118308424569638917880972364256454370695867579249170028259213619512003599700709449151785066671773940625455376197236684163851915239251133950382808910190962800366196417412733778935559164145952738132478527083389250334643701514132817992621050400538348583353366496630875634634369277103275724402173006862550133967954028247000333495842715774400196494563006614385142938682229107214787232401539984703528163538238588930568461413650972037697677224626954190089385359537321049750295706868831478675228169199704578352210178428258486792817671348461564046959971357789603909106311947995423097412510228686840614832576407211671539867178659886351654874333012034687406247445158629363330536531788509884789369462001308252076555855004482423308801560076758431614583089022462598766665397715579161971310095747137377086457209832179242800545329016724465084968696037508828315995805106692469023198619240476827463127489071650903648834985092856004797571183633361653232191443754943300138201039690776346509627271703107221198192585254789382977572450119769548010819362238587804419243429998553756370570846418519458675789362440489575740594543754511066714783967062114481176383431459790077910641541822609243312112894291741783379162728604661905468653161980352034408511281143656507157795845595222348488862432593017295674367833742001225517902950420565582582778466482982265452852222979581873332198890704147149350964376429808005437301377621233869113728757909624821516634396906160237657417361235439466282350342463936617766823192237803553282373945376578790507054453883986868991695512927586684859318387182672751119644578394640641023048138587993619482398846252976416823728829328199305149429466070387632731637956660764722125444766628680228395083734818657966586061042878472485793884418989248923023143762302435008384162133485731382725001493758572884771941337108818280877170875998424783792613518708486322893895424868488941569708018145756968900445440878333898494372532829087394866188502886119949080065743923067024201969044001051879694165307451539040687247981027602098774370297821275110326270498855903699763259626688863379486245970253539983703314707525484862179989573856437693574209528020222721848062345767559424888111493194446376886950362816646769312906480139438690833058194963955990478022959021583057908516965913419877743178736161212746357126639741756661272982335180932622045547221530229739600547243191113533543696559721286449576899355266673090032385882191008561654001697279256159104895885867571447566728812733442814291662205620098902587549206617036798378673179005167246694695088162677258917476697499083679365996315108250204063136807489784399847345828292508164313746112751475859029654383229443208858658117048995043212449732094582310398139250783032883287606869677878775581995002272741499436878805763108796551653787171895717854297798968925033065571567914980316308397886835272123939284882409338121131695439068418355802168897310945597388142663900355760721021519985228551952124182763554350314386200829668781096590822391704493122742762852306723936544810411166244277750133088025314248426206356882267253927038920018853988537478310426455983089395171926197890841853270021403302841473192473017071279301491514111446423243799940644455473272976580812217955156087016636307428590286832214727645102144775168924170406176357133168893047182343956860746814607759301075306045409379814894434920485176181802147223627289325648454403804709204403969341027362466974739079287291130634262394153483779103631290760278560921069118777591271436162838151290171649373346380748967819070887588133902467881675437873613724644187157835546914759239945215533166578406908720120350161176182017437890847052896398677585138265061754083641095574262634107089916182794981274072022243913657613677825984267279511998567184758599840065826974047199383994244759399044333719348682117444308277142889848368005356193713931879478249301833074914586839811749100037253533505439497706722602956621190022087303786175732889135302474509962954681267770748499031560378445498868243709786545513084419568000461510652676764026074388479116071493030608090191368343124044073455704049454245208181705056985619740553588247404037482655452903685887639255529008073138422867285580699816169532396012006393019533826227104850602193533363455588849320591908589231041492658104902949948313779559381026562504361357562910371959437315814447417416137894205125272996351912745244904047835440414522267271781083479610101372845411660215909911696132154168790952122949943865402090628476323355401843094058372606375112649564887305871119590746885746537751398648302974624573397913542845915657060860493010842189706612181503517629945386805456548584213740101687871303588772127144159559056379570984243832594501665657819137914214777046420246251527726576226341050750366062851981697599521781676482763427647529287306700211127026313187506846269970259074620731513920221266393478227323891142896873249933193946403663294076485443500792345021798711967746658542719074983567681439378804723711554496784237764463390307473315529478791462383747111523667354058550638366624883670726374432579461061530449917494025312884983123471012311875097574777478489929603527115984750943278831767568294741639407576804245125237082326058051048544219777948121060010484379975595416471685622717971778099962495669647166663841266755593907520006529252880644291954279439261037364461871003438081416846468785628543050807721628554116881477384628687794940517117747939920509447786875502840292629670526991623569764408276284119757502352483627366123651532344713829205638689817137900161778998032237644527743706295576720542862106451714415025338339885224975616364865133962757494861220702806058197855200719730913143432357010164863825097441118749802435310697393843650796541389050643237360033949939109116582968071285919529464148144816261214405489578058959504815431899842762046195182876885495027139043476547464921799253480428360121601603999153850325415929708018870237612013204961180796419369505033506610732413251493874228822468903279393724565033426839602112675797473905674723375837038522054332241824788817032813882661956785512048772065905641309227422797557099553646764557077786587420187498447312158736921736201841273877727919420641972158433925547425553034370495062328359103212639696883068087855062527200562742558984168448176510200737982305826598157005781689761373022631981336627634267101665630763756701191804220004170418549304471874392772096966065134344871168281602173415213655034999553384730256690563828384072237781067823490382642826959803761598510901686197477560644913942001870681461590572150938201843615666298544143982970703794923140705805997924783131137746912763279442362239196886090281610906914192848625185005279753755526125959602453203483800334904006114364111739378279132798719197204866481853588073320354452858940510892500129399968083329267611843798173426095314386212927448974759449612750814978605128632095939118001258016144364335043521140081286057301119505825121934988235673657775694569743159065623296965546840916191060138187062101429069190128755112436221033761867382064520200383642835503762296512242404334457313717057792272912771401782897876439936578687076156108231874825929404450221946538231690395784627879479466162714497447779757979339983132389437777423548745663821548940504252798558344250846678259574396427347777197958709166877313011075835279607496622500585469381803984227129484285903405641370631701580016931192378593484234204314629090145031562259945123857586838138410250996138335331938755990884786029293693746611727411365712189915594598929374796708271449334547977261887749525415552049784435745493134836594918592892034166186857539331863255523443721318897621681457299385161370768093939885796071599906590312123625233455124115808817000626111620624280167565880420018115202955875021089323807081293670275342136656151293312873578994613752631162568754684383661310806975839925323274969215051646112499216631294713674295364264420471452418941312063734775875714958554164929961739494013742281894741407766007838337470606678098018082720894228216537453235622072370274799919123284988673972136615535816835769819566537981667357415578940364258777558826272629322778954808553974826180610854932326550393424540114302512528568029001999459823240288435235645454994775186904299022502385375138038788908926193456890696165921802850777976193541237849626524578404036521877741209370160347458198190280651511154556894747170284723306092320035759047589948974623434823206674830607162985861876629070946774322609208093898895662285608123516426996143478809959426081261596248758344478604652583069680732367805530586336670992316135427994562395454663402318982402862268288005973058094023220580116494733139287730083679671124182208439435955993855851638478569961911042408307997469612713680553515733251502914115980481020161508062192245979441949784656250862448259738330459803824259742909455122834111810475654198337130947580614146023710880938899384408298249419336349615454856054700869028722612646091879867184398759885334092639256923143436602602318590473788357554095699539576131416940942150874207122518237573732715229291694013306073555973875978307830742640099364695075504610880973657603553112696379685969533149223525142864536923293100100955471977751205501250215194376956260967944230045586281194788089690528850863416682086787017913204582357990493675526056095259854120446091877518893863726444396782802999865227238321637250012932405031713959265508032152342691897994969313847907278058114163213762790669552067312601296894473994395719896007896587513931478542458420343533322024649875678091081184178338935197180485781839701724301151626694880355923264149975717537667696435521649940204398325619632299164399524995657123290918467691555169874743257377462618906156377821120616626167581877914194154728635070333377797336149447915944217048005987348654823992262899013740552978901618502593172673298744148265509935357628003046583709351836168068226118906168685023284510625846366507331641755718442055541874408884031628895107617697102170186428138487636176148403252953922633363493299612369624396771530672084790479844791155246794625074342493544658469941461468568586468668871741193053636945503603505937069874306517838287843640103057280109114902540061439095094409679407106402664976285066068751121142965183917082973990648300884663643896959323434448321015053774363029563214074579916681458687264050344784369224642597183272839057405270417441247766869887557496359515757850208447776565929961551440411373027520292275099629418553840445549909003212592242068668342988036118260811362471000427359223495980372045372819065483571102544748380450562627332607443197028164306766525528525663836907870460361877140380699577083375231207721685370741267565122397289883828541476423126868536695114200143323653634762376988138930029740103069626630282560518790804497689968317567001543821313164736419626182514274662861942725219281375124751351477954531161856836258605267241358673232979239410099807611987118208257614315597885313398970508988340033748239910691356569372906313110804439017854877739129285479745976676401014876233238872989871640706479252929464825590530629386174429323094178400007653555767638758565117155076396872651113175242889996355965760424117206341186298693223417529601916238429909571645240089484832932024011204778026035022994919798057397367035640895450904029617561000091442833208846966618245480347824174041571970397346416782860431834859958723411184079924414304164952948044896336957476428414612253289356114400482608583397195015765764534948775024347883840590842429898321085733820082278952990478881163496405866099705222328919513913953639548315074971544422428044513905010678026071810865384770916559437400788114948736357368316543301570532740672635768364657878785514821509528860373502115110747782679170593726831678191433243862149801117496546816278864332690156366988091691189904680020717854364898261391787194512522037423889659515246608050624245004732354071858526246763852233337470480539634463556608026374903855159502156808484947968938242921924226646310432182045424013695458249648014812005351990613425240101980516072729845064389982743245096811336252673504540194394421982809329464163736250364741792763973073869136517486624227146232605182049973817234500895613625555918808793902498609315900073566853541875381324559547843228280383355496162435875306761779966140593904910280443442377714093586467498830201395802093375134179494876677268109498369917355113868680318737985221288400933536781208058794650988600810085359372225721125972727191499389314550340132171982127496108939801744111798097136378595474728153988904841230920894276768658061997441637700168257794723918591558516323327171089051471407449340657573628189706334857841053707396675150319638987765094413982393075971030871922151369916357095887267871120778523196152586055792762669245622722706603588829514502852682753531953620450364036498212129884139058766900153757554355597704788274082643281339573924212041961011846216871161742635965032230156245860994725752117245652149401987345042741088745268713557051523875639077612750649798006641459919751518290123945272069280762453356298254192195568737838795954470392713525069264619283991265599651557913125810139349481000895251236005654080815973727648636409669455409655346609431602790377601514540845844450050859221067124616475251673131627424929867519750373323782347620318965063198622735813253085884018841967634570481217150559784533425793419500810941019315978863491151737906828750929159720019958118450437806445681193317193724495098044759706461070766459336459010925072023135891052550886132111730950285062924152707538766316206374151237853615658422829950942579148366573022003362758334737093235400012976205080449340428565594888423823085178446963197569045238341954533263410888827233107283240209947673493807252373668195558240483464084589928611562580673015374240953359513030049077791168802928504391916083527162683770735980304653723456627944604557375981174673145912487808001585754960795365389639549268373195972019104793676283088711481627459510589785688534421389666624626087704297502299620352791412282799420833545639709317390842902989463822577867234212681353990495923605220928678191313824964578059777177592669772589005456615835598601986309961087715623094112409576000459438382999721105050029807061711038682319200059077448596947384064577972651871571930456069921192374387900994530572972823626752737520496599148758410237126923469033626783528578133271048269691356193776320609698698494309754481906470058881655893571281435060764337167979533086911892805365816977838393130543934630881370389873020861864895397147912337116541897255005605462615772152674292802998262272731177222854555623980924117754525529857531745919457614590839891979098103423976937920619344417973646702894551367958497203277205821967518068693335538872129238589857444088111318593029449071690532497243468441089766072758750765963962831132717487745818975299809480485710179202277967993306626401493103741753602648143953308466746662543188565026898908524926760828300786836198248338700515864885362687584587943277040250996370749485643996636026734702696848104953943934821110393388027108402355233608637182517255902689052828327210691312698189248285543263100846495757888863191965617775206456063722662516859393841521945310335591971396017746437273581760665161192404421592565376800176598721809667415576630601482076573339631958337274198391533746098888040626104442685733666275045095945700617634254922451899510941459208493919121521591778663331532493840252476631150866342082293743968873886404949097860708509533670189916744955001775684338771615415032279376885075110492179518222973127091959654810656910295855948711603274699117841162583739105292185176533853618256503488021565575061710910253859200644912398200268750557377799308378276710087461487614891825284259936179099543534994898429432166761390703561297968303919103828795612696320969641399787576584854206565293545290874994711092222031463507476163159155767762962343397897838181952757163330435007291822333541147001317966992339350740647384977929531593112534471926415434331599777722167635773390275001559363938038965147398453341619755667622658622213568566056917990769985144205272497596328634484388484393949363150719758259899086369422784859388405641038685296496598599002868388741710163824334751635993228375534666355262973983859635289060743733367683822113463229495523524226434402858851797575291555881143518560369195788168214290460965058340379077562649571484801241107012933329996760276970258713404979347904424711980055830230715113570793644083587379380824621039841880695814604351781498253973378031288129122923511208429373313786341887753867062474941983867868094998886171465902888542165744216984884805933385293327603906322213621102498374960582065930036772786880720187223240755747317185623829879978802547259186102583806325018203629567504783813428924041029105516897510516489527863191671579578709739883572138119614170289166923246837902666195684498810361125122125148182009637217223569859461660769790286395807728923644466923350316850650698982925877209820358858788779220824003706480830933115833890701575785966309837738773549484854696420049195184267958982351519983307499889768480005075468602793796605405563152605063934325155467808005763086696484060516194122728080423694112727529788913881404048250485945237753954674426920360397399912561409834283078635468525818119470121745796710939772616963373053734094101988699910144841678459759439373821890768453284063409471968045594042301703275385606139977754358515735769139542267876598822586912133955107155001334569142756971738665583090259887274114870432314853870562151243432875340720722766299976294877559137329174479994823331671841214866695210266958639185809019070693522024997668435158065734691388759699565233714311517986184965073011164822485802697407197734894469365663169082870844179880496857233487277640951831179963290566602527600601956016606584273841690792037274579307034741677556568916874061976389410125737433888478092984706946444335462536943363916446443415474409796856528655943238546776553839444401369029117321709198712384763259923276141049316801598200835493366362605371895070007868450625170811007630245208433668127524383116850717754796562983227759347985700703714134248899143973596617392052891016157805808808557044101660376463464395611365761141041725102803228734692212147837593449631993742332732273506470323787658430939976874461698850119177855235390390945577337996506196498496192427223400358824643604244003490412682947180295487624160303280411939256664251513281469174751292936709247572085876156158261536922790453759965381931947301332161979456994537130211650839811246632944251776429089276330484033352138417106356993858606239373214187782142765461003092573199279850029227746622938197875623078888425371617246842729773780483409653096375336874511595897948455424015515634580497532162763896888131575241455716072621261892643034125609268591062777745397044916682295812576861650735306143197091230019230492603594905317915134322350712316449171770415687205927053082434785260841473516672604516724592637183132106805108092689246675253116912894720115359936194345794534996814365285379493037072657160195412954520435611826566630462220477870314564437859862023664201540583232892020339014663130406672750474801368662599405085659815085170922581384249852108475914061632232029486224531876796655761433474330964454801240687570913872738824044071048532807587816362307693900510778375694149329928176260910597761245340473290190900187300223586216534940423468453073558085605289194437266953322765891372884281982561933479913003699784825227372951369004476457777402285502426323175237646078254325773762206084919599272612094196507653263665281240470864932761513150135743371382803763066326581386514412844080113097220419964670499374021528969262728940800209983572870442495169695199948645808559399228348526035353727824147977015584510923020153476070689777552227631260768557112294762504088368701798269581156995644282035449534361353461037043195865570469140076112105811479793929384054837941448712875244397524898517275069299090146565985787123417980796261378124709121158430679903718573062314493094606530544581893454418792354984828467301194016543615204363167721059758608530147649160441290875547804073517595869365186680591135845436822962008748240458253916693938336279935119593935380391390041462855152357887685094255977926912133882190088924514934656740691486919445794144540320635808452388314893046079510305728882153672272446744622494944047742045978884256120209109674462759756632356719807191483391629081966777150391488514478876131350999352361464614837099532356860395842248375987947765181732886499520832130489430548766329502553988038787846740326998647876115023662260214540670193385449972296813176314105262202697499391505048987030995717512489064601163531496308452465462655808800991113940840662295648638787002287609695474402634026364162241116612375999707326880802171079732870759488417241805193879883529340263212079184948422669833819400865757707871594558517986464893749681945141322555916666467161498932896946836659439637667791800497527312610905384604689202545720688760155647537409685740013236450396234175401415500655745112755331798534764419292028665820173962119667158546577397953626745143999677168030475594781356896322966116879647585552339616529942727245826997817555390745028977175915334946530306906422309692389045909370032944654757735510140423996594736857037113083197215389670943480669455595841485648018266722983982920650288698766172078598437403989401781774956205446115715031557095085594180937949119475715681716101281123780395020392312650098100332483937300603466019574140312790508147100719316255241769457089559685458535684929254807867426294888294179934749635350324614507922114256652840556889868265017489972875406210760143227008449738282491500327186681645382994542090024093650867601509902303631538782039113056417517210801047153446624133098234360539407101477967570692124196618090869111705859856347492399097513430774349293016373967387079694153618748230489609415990047745917789983056743697291421722814087517434768222426288884016829725773869696923876839387258633044149124077439847846393529434388802524428440630764257367633811489016682610350915853960194546165226276746614359826079746018464914679528909755315353091424256120850727941710140539708825790647939860262451016434082528371211678578536198900470288285024974275230865724930544539696560511095437737565972211604467036992159311436758519456594472447385084167572151882105169771776243764453609985109391411173268455876764141836345877929416525944770318500226809684136173051931461179881354099364315177843853497186290891433859228121209214747161960125024058991038225964312651631106502499229404257271734075342501358789569900260779755182667443524366151482664258426762261130525999540072783647235867423045480222107477719620816291351718404896424682404038035191313692189625662018573367070626765532114996185943851680180418298689940370450883689814196327731416463265517761772928629616598684352319625989723017894924728923161671558081332715365547111099917789032162178407726553349164101328076355860595317642115783294437345740863391111714089025874809606354296351631571912119837744647745904802547959967143908192798281428557945750258029923749168924693344500859626693746624111968129620147155453239254690526186714751267860103039349770576743585350931241359106595365355692804622060845117530104064286497770424484291845865326116764412609255976791740144286192360024529660779127982843261151243984705022225796941294693437423505273992116479764839268807113500107068797615670194945081671838539225860157262528169122887194221602957438079974621119012755326135766257490311252365449108468129780323646056704158763177225394082770736412576638877452656196980866917564235315479144762819960623513827201523192774750639896171773348923322221961748740192848669338811811129751491139744976950131272644714496791811931552579300974747452902834654212626678452371400889825398097789819677594813539040280604828260110382336040240159262474149369454356177062454953164148221341272873953726018460549320633760334323965645691552382118925562766871608314873064681875641362590279952448010572716242456836426469831379487485622229208548348505904019650928359357420038089523052175959253217184811593024477852711524509256818229042173775318420235662110502361251221225332690945935202362129880812869175107747317315240509624681581324137851531172058311527982440016765606082677035820674938313359396000554852271712893322525679228569910635309645116172313456422206001932530238505610231803461248109157204740864444124001455421652013354934866426397726381950380921254459031452063394953086779948804662837499712037002225197278151162124312143235491445094246722628960676661032399647409676965185639880419295611753403700508595952512770076134945163511230048388038455019807652995060737968829647927486909138163760043184849950858329833421551799380185499206297448289287551485982450643651975920873576045019057859596741915831472416496838127888547000889079910016274944251308869517063286394915935759072599643797620938553344487016492882651895752854345489832766359230128407301435204081600855918846045507412579847282135288047058630589716053337994698925369678838582334391248845793745798439293729510589827528332044030201374341483931648899539771728694603272234022803195142728397068571473781437319478928602127477066490310466219733440751999491217025952497116267812626933783567708839923902122372146005794070777256250610943649267872296644883796490577494291227721909476283800121249484363451198509202089704475366402279312007057157650217986522720250894676205577902343075020400082467506746263217952798564568765416316303885811009858934389521463555442784120316687212206403759888942758454997238603527826695245339906758624577286964367846899805059087799197395066454755338765467497081046882672612111778743619211974967423649113388122830231665311175471096253491676375679505769665510939089723429217254590733159281108155642709514654330187106577066514312172443579808866195873038849436122777545327514468892665643204236636835323597930875872416020562378628922492994529138836260569440984808194895352226907679589338370241962457701612664107909743109374081933619309650483846112425081589609504947432389807900639369273116526144977174872741508191420333386934402344975267114397077803213778097865702546666633457676454590158479287007327074908305021722314950589856505600843573240319075574777427385803305977802443393332792601528495652558491936850837659631064906773102791992624185933055500647823342061555259087982258967416365563311762990480378044791520688470648817217782127293569407672664543866033680331431958524702243456927863421788039543910399933685424667905161694700352468354469130899446942420855893524050428962891902143742845553029287115677234681765971512207164500661502392011796397888784884853103599347512172285514996795930551193120001311297680521017656682942725294017788930130809268423301608875671304557195596370557528214944360541419220790384964664035087641889215488527164185240726681232152897933784207969128620594189756925474007805959499546180690244244422651074458875788307099884427333746566105405315569181278560910588006621689766327550270922408925176458969956029292720843911530604987725902986799480937843153304097878676615147257749874546105766064491464645641988741381270710910077550619413812930805256809737315006648363968353842869282716387746618145843777589963128023210713623560523997480537753890850244097758583785983252150861961174219716150404447199344570307835881016186911134999881471312723657136782344992377984498538306190895500378199360119788709223650528960538492605201761606948478065747039194735746849455984325359371311991948757260853694501889334919621519508724587142603421252949212860830796587977430766594749605936810474401560307229741024909229879694317561169531920362750843108650499137676160004223674334867683053313512041714490378806785391616864737624164167462797246286207555875649131857134332070254607670593804071973219329321379977533981570091845447723363087246610565479444019053886779840352875028678878930084111831181914664955833465818405575518932381937079421148180293296356093378043718772466295551528517715682118996556782745794709249066211799116879174701151716492194037090783119352819336215099338345427018773447438758266373253838691931299139560554644267420061766449835631518232904277043393929882638714564705583998808453502152775782144482804129620674215712833794678026012772919610772827447049466435830663664772701852555437588745638268078169287534251169957537111419961322593891702740083074843624348402824859510674330927938854457388850518349209648603800658309061182995893321091319925543151123089827923032092278234921551162512945977285076537754398943161714830460913626443010425212987793543512746450505657609839647966601468334162957599756642783962304824554468636881876168390650567490856837878817292372992850671280539657594151010506272831758188118273561237949052157340471200420746867844838636020599522155426057232814158859258572737346056722721614286577685909088207561762442578134726974980251575889698478870429300378107079150996405110455936456714291471260636864824400563477798303781563225784068177028769482555957244914721933381152495330031293354722405658692438072170903460948311856737491185102673611500985232124422139856494718020702175306224731649889476442638471036672706050831225198824607983409330881083333200712908243412087348681083441206737559073025481506261742998705909033381246762631706452921320379860402906209601726564699457753300416231010850477975406242163041757160002733398294517968579160017136828551904563972349509143376029488582366488652951072541872998088013692649429925680967564771212226918732144036982861680624045394929952518715373022287829347698798675307494686345298809366886716105453379486662578535090290392034748705806977693908455566884451791833218609291032115241241990606792855996504459614485253884851597380497110727171701636904809075899351834163637411211722613424942224202994917584224837765910943993180052484602901283440309287940593985696004670239402877659851899313284866743019036961956432113033458240731186792236653782356662969135413438073214936186046752459288216339879761525871788863920808535469176195398897514670600048056698597463295613606207438393079339413143458980684149805288127047190262224467445977028677941490180749308706105718525609350699086769780228821123985146762434263862948108171529076346433842340358561774491896593665680399845081683434472898189690287941660488461591247804823947110433757472609762708397187298461957998973813085507595590455878943773545052182743137358943472968677580691290981411690054245558708563141581670613308620118561128841703037019933767926394057722635279633141643198477956697396405424058575838218164824542816048671574298349187020225133316901706491527267549225781805797367723623773230099291465080960354098885928231086888446651498330038751570829348618900212857707500160269482259538135684047846933931184595397557210218313742534144925348719381417147208245052161500687778742069597906590217238106217471299238140928025047765781349709208189134161646551972582835025538167301606926829017810749850373279168727082490574887357020049703478936336807686711891882899626557710484882113955687141115523849305030230625040390977439599638278097591002127416404950542910359069922070021535775435463708375599341124978643472751389785161332671934664384578473203451079498970574081261509797590046970953465369873478763941080188590798125132432438409105272056813691705820642593342906720427237993588896305243704894373309509260092920362676379135544939548046860994696249242493192520831642890728760812431817157852351877506711721461910351284124906198553597258715547017700338578313364855371575505966127941987377228531534949823030272830871900410508375878046107185167023123617396311153781264497785653220863928524093485661501377383117544546089344341665008714135042092729292896318599495508994551708600088322599756404998308284382355101517930271536766218216160913716785182709009064139531296483304689840218431116220086003221776510765764352570722711076237249172113314296441302742123013559391405285125404328706867226344977918516028812271662504278914857100829179691227783312249169923181626206406344828534686481279010764137962223781398918804923292403385127811930920562755351956044937121936985873068540738532625649892827858880290791789880219162457203951614751251419646125172594892112139645447748959055612887465230285285377806370224567193379230974031946495030297158142369531268470327897013737020707701082664602505341965404728531954467469554157275081157509209726575653767476823493561193092977454998188631468691678980914606489051967507943918202313688366511851517395366411570889942175046673341786376410696829386448736053764817685890159587738515785740245825446432185504987910814969664955075053818213278620782509218156851165205024944673724157534894893307735756532317316012313789877402805975896813183699617864024862071359375237547908364299635570402020534622117016695236240897203138653582013714819296784318676044067796480019197298621673864614487391063936578023847046125310534809162770436294464088987101743538488651817421255948824641635997500995655535815764485006734139617106594817819930553978339663798703969080520483308191059313874155971339032388734460334990101607916266489894382620619774091239066981687704516748557446167164985345375575892594368111332266692250002821905853239304491220980798970613425504753776074099057299381696817225151636909473235463831885926755500512484874311326193019825493322502514671972333177906557347159125288812720552439327024877152937875134744476726604865077932010347361976026557095456775351663254148286963252324852221421599876364421165709059811073858183178008487429726885692668562491099245630410920357459126103709547554263253525613038315171331780885656556284885595326613299679748854523897820839409142599385906357354771675748496423891061106053583076580810407455790796427951254450252009363271011176965144325348649939529551832588036627578607407444367931049168373652666284693033227787607968049443703455290185953902693013899027936118070391651323437441781631162114513486837724346978703504805239818066061285500872950341681559384160407203635784202505188389628820926422837905029368676312515669518097582912708417414756204010999288423311206668953466135769052931482377224942086236821774958622758124394952052481380360386970823152728865556097779807030165737107212834545170531997476114379436097844596614953341162463071071413722081030564339414479901854213759995560787304500379219367276115069232876567695401807518418985729074282915391947121350739426520763635435926220265953540879459482453754382878313148366637190066184704239629727002592404440232284417048167176852266077362009297824260730399084922349730481191705914296044781800618844672257965877215468552653238755601888527151590449453019982147237061825986291561170798007862976297343893466532861128898480321876734408781285904926271897782168877300039597044474342710052782869252708208090048954863364584233437887325928308213975084795199898668990364490544661550350813513015096277586057078165190602263925130449813657353161588320687258361334363955849427138673780892901950015379599469683493683104553125269933601222754931705115502549290651771003127191543563774504212586379674299445759122337596516411682246252962597475617753380386010014717099554875843453173479469874938015584375139603296413321359854242833086016931902769349732037483360274425725383729959996342231940721983420927179740612389311154628462136915900929154077323618230065643480966913032594244598099230217051858707313572429031302656003875901606541811788127961636535000410830249986137264438961060125169804685746582236966787314309667810433275980710962286653253089575320729132825529973881824650751825946345942842739848323049756796781025677343406056860385280565507974360623291951414480146862219542419179144040600978077902244965858525863232669033952401892114901019455441393386877117673744853488543692958505371487069101621193748587605124634732850907199529730424968797306090567934240673064193905026511879595464743937491035692205038326985360890883077189706910083043763693466857950694168072327172461367663373796102985064612396927155337959192116415314872823652641779800283825474364213204446781421632607744333096118754551771510091127821260699360525047848771595296228431511697121835876396144687638131512609838480085940896819037559736980753614243363275511883640987783150361821820352114985861236446717544137203023710863989115522358525997415113807160945655613151167189455465796409628101265424245323455687264191760421434536543902155238229880053602775999249862522084148553473983120392806173711529061381353927639780817783281561740530014653031171195958491969150514038819516296537090827018675932262075644657869926975577408877559248268224539950250987652799618748461982250899223293796493470149956820554735184899686304644495319529842446519158083181712796030713675387598681528875658047450627433814138255553905065872403258130801261784169136442951376065086738968521045445131942315118297524888165779673247391582848931197294627155082127218909875355330175275338080330368125128007027111347397399607174482164730344572054307395087791951941751491820085674758785120159261550998528286467176840209034639484831663302839872273813436918823779421652722662551008099087726428172679477525075531933539054358013801483157261127297193444367904714283774923324261731004816734907046628785231157654079222575784866317084781138342761523363364168518298514907725536802613497304022180568023561291192823264484277882062421527771004476217653979476594335352924152695380410519162400905732346099851793150917498288156220619304032225786750046772640156379396012187765170819312880007542230237797099716479291983934510219010611100089139726082809910053452809443856351999680772387979663182436368837813740197100035890752818461170717826874917316415349602661571742169987643169999493435959024085987617374232932378519111099279784409679996103716842664135092109617616766904883595388905872162498159071795165632889225192817307508639079388073265009002791228316575820750866347928333647303128353402441054384309309478868857485602703168866688899533985997269166202248772300616483122125520044728658858359298838501571327900386326494429480052474624671520768024425870554534883599193921918950057603321958296777460971441819832605627807343159724471041704545306805020795713214956050537763391291008842573852549529438756296026372997145990432385852303946905422190612739479961376454752741728982917128928713047106787821553998423678837147070296430655441683969524744817326403794761007377968289140885318713674595186067964944854400530939589300013164498030432029356067713791447666749007052748469833819132530723075243636536640217318740908468595869176965095486666217110028651011905759971088338091685410713629858366079102633908825367099593160230126580370175728550047759683073138976302295260276026920245657710397326679240870209277155697175704762424088762605275111016465341954335632242132775455237925408756184134276522678802276335102895797406076888243443744703112592331441089704042895941094181334204083975377140747297856419572468102704890400150818005633681764253754244614569665339250048154800999889580721882421097576869752415299383577881126057078575422204753927654962358958957940720929518234269366412762809096513247200558345388740202533074746705555997547277130707916205745587976964077667160458808248380613970342530539181044635486375873199256604566428998023896603205329627563766416644633950669725355963660749567160206450284264622484775462016536364977937144605165162666400961501108329431014645960965306388154530834233963779927454260445656505929234871269044782104848181401129557566802252141724446862985799648473338478602854139527646578626781330418731947993372681320506593520436534602276543142162922200649294143475428596235460969666187576956303317594493650111768952247322100259982402956550590164707559907430224410215790264649599057662761205367408293479741883248984203058474372025126537971767532659477017365575654281841631834044614109325974678655581847431009133492586366789508134886727205795026016691494712115469436804327980133556884792468752103127954423128073882610937692962834814881355448611448109319813464743678473253959695758659614297021371561977869163392984843987675114957678072287852993273852948298216087120595247504505019951897655692037370083503771163522776458879220864329285909678326466349459347034684981556241989566043013150055101591270493856430134520143275574608239417414694841493061876433373389299339552713357331518323200315725252957855846513008031085430163049847993522992533251694256483157887210040063155423934556196945344810128932201411977368318322612018043420212295389611042771120396545504473915597625134537614821636073911444172960320902822445679693527464286227730892327035143824112425956586474295259496285437777086459737544977724688717909044156816680984235906678085218194189539702189052986637075715549696131720293702531691720466381165144408996099007299082722784402587068631245003196293192366123016293131751378673772717426071011632800239972898163167556973992567325071118241732123497053404812613999283314689482454187269910654747102884102194972865400788290727662186967186703023328483748305140319492561616069945389609966158051702505207013108728923165854866952479927600097063995256755808414028574780170075354908901560797061735539209055263640867211263613354592709521300343310575168846028024266224833892519688595995592504549121741370825090195501143002610518891112773570612698755880530980095848842785041976971678920642438970349023804738273478229576084392134499440893616893744012933915339502485598130435286438523631649292305097926433754471107777676829210765796154084683071615052896100952888800577065673922854150078782685713460340356737860485205521582840768496774067018161583941757637949767332876226012725703789804689376243026560450608965407625016370876410001701068711285805892141113512393336004497712752567146546487506155432987891108153211400740427406786285552581601187469357142998412919845263574331334711399177698310232412840158457380111188103664579410745061507490676069231530781756353852256024251881582474355021955295717914252299320396593992203973631611984012074588011067238611205531576458011121391504582210155135118389145540025473470716105113072568847511173097851791521036695991679019687008697240866485471732548239839182918842872022374326781059083301966434280845408849415114157946055414668812947758809845336440312551565268107537873922602533391888776054236821407776143969058295735269065483222858319412704194648090046804394776596683643085608038133879194392767396048960297595170050250758830398303158444391216362824047143958614176604557373721516667252905035081418808799221798705018939963054727064600382982701526908502937121557556631701874071889361032278162770515236164683573236121786396511733723359313461598464508008810545617378751483052503701172552087487706206103561804627630490743241796359797571160219428331321346042024825453355757525805795212181750651713642880528688973095831789984909777361429384642468504840652455261122541460795081457822479660752783055259368249534848145355114460290669085980748039444806133551280646866539058104544793157032893334894613031463576962404361457423953025268895536863907446186991324937853822621801731099396138761349853045338921298711176371433140582044645864498533827755430011325058367510740384585275923545781252862579000423386356741893169431989305071159530078140229869013212548671022346196127002971298538598336678230645566765947333672227907254677890622240948579913211852241174610380780971348394368267109348780008992552511138309760059509714104749426446393267267313667546142422136020081960145949399958745254672651577436333769236063753636781627890606021114062503140247206333749921356190049313443249720561663328684705105729471333849561906886211395653789234442426466022602714390397274225784965995478942036288091562390630064703423283271705738600318521312851503143207014346428102200703671396063691665273953951229722202382224865656764839212900746644885634217768405031074021335376087573738034237403130777441928649779315967492438046782034466783242453266453731352945970067603885677289415259720513703329917427179367162471082158107146178150543802944419409426226376262529592794753671637544058194895987322793994832542451710230678769536210950589054683643139997703606633314242362115674763008142896898510604134296832867097116395073772500032997314933463346121542301787980638345977674196660566231990599814191738615854442214844977174839007099030948330637953216463791521796956392100020755639555493344883902111490650169208793670776492464175747006347094012749633615446827558349448633042674208103092481223791050461052164060470094294225316322987435157186786074446603899603400184197025688850219785170553557677580344528078127842143505811770804373816957149489043690023387020507860264751253415962073536966553371038293691931844231870552437481017369244518945932477795518139764725930372700025961544923222733943872531204392499273957536136058131177627044734667873715561781664059730460906906803406479192176861458909756299762842920205786106536075583540676868682440919971427474733443215353592403235318495537426479959921566226287271780446761707429289526654026405686372824808225076881069469660490601466163858660092705525557976020101306260712093111627018389694824150937062130179322661694396498532882580113237855403698387094401872133862325015749758136205291939805885730497280831186429719901428255462792767959358667950675205836147448435710935925715595072206772190484879360672957388612047735117130052079953989707245348588266740739242520826019356759172693105740428982084999597568350507404722176747884695295293006734168525833556765772476809659439372330953078807126134573772646458291348563129065358358643649600572333363979909088730908983851986956585826306346573042993742737018974444162010821296780887536473076133742778085508816310936085753558327099138459207679357714167400626170431746106413112390911340493872198587832587835683732330489383571455181175328915128380544122802157995936619799986060420570986688792829794132491759624757564847776583999469596801268237030095242898068450083812702860945138547594111132993440051323889630883450191644879596428231986734792369965007209326178385722221842944176808783912931537228932380181759397246523016563913659432715616546234972664320158282344576857675683682447246519900524952214307841868724815599876348891734424362094790329291265489465509757874251681989955896641729771144608604453473668162514257045160767647972770900162784938814282842759498408924489955574401057605229865265673919488698783538491817606565201708422166995646991797049330557354020973964627447774004694795347848456144940590290921623979897781648462292089351296028300457000908779577821066254467479494899810670125393218366589680247320278843961067838654414349131890113756566908986527094317243316156061160285851195957890553750449713156149990616953974502545213092308169362197847558084382711943616012121031953344658145286769900558609783757106920464797850938936808613809094029238732174660481896726734189114929892482545686752789803649756400484405339500667372599382819852304831007476396205970937074147631552076926437691447860459082175119825543439210812475602377072717321991113224242908556664255067586714067203346284496518173685946587663383228525045126035923424716164893996801064341567007571158143320004026871027627477738391311825545994588776631812395452528126424271104991879779389801645411727175895929597104660449490647583151474886923669178026652356069824706188016261145598140148668490233683146388454173438845401478377363833084738156469885304007616490209867636909123415766642039376015485887835613928298949196014995094716101091158881351041732879578352613883654481129538029947237510235736491698156573539684768436906417419892184663933054976979410133446680192160449635519031864682325847102486643410056725827571604532827083752873025651700486720538889121640522853680658888215602853016082714524779282059232360125057668821997532915583803341739535251089866154573801130870650102634667361893184966958616817433483037316656813318225122673059446432432110613762566846998363976537687343074867618438829952482909282964236909072732299687032531858171569910477954268299890361813490289550397400802809064136971901446837080722601233989457531096613173743840983015978272558997309825184333590847395638393961717598486834015714459558140458429107502723053175577971878716357502668067894214829968844151336368597682262728922036832759459408830856733856612331576845050530492674201493339367693133315194354067100005401665321236982382126690172004951748620427765242626909826812106028903466662552525245889585648462141534343036582210172158229617678861978784270679052575208896954725657348999174118318224297132849803473597971283488182837224022720755804317115894667846098934836859190923885677234719899160996597964002549355412420895878635004372055175129999001864709108529833648319546827380466100330041295714856432442503085949016606255581804301114141851463306679784704542786974237980210285867995137415287724475789622318066307471623551252142250246276131661117857839927781683921748262300513498075427891262388590182204577426164258107145055443424239701769187010108065754072770957021230288465426337152479587938363189915641055289106968235344497550073263498797618588981393716125669635128102808687051468168139194382395426168024666095024222201242865919518488075747498678632144280496019993123550817154889873959583300125663077740589854506596058026491853850077240016151915261927196246156661526133478780672285028755325887549292704361888623579370806434367464048813161320119888969281300641988000780049059826034986759938306864469033218010326284224988630589049313626070464031352644088714170158703826016899533235266332613857740556008914581986540318841605500700802172846398807001399038785513333352817463075418931750990052326820714436498089923213033146518999350290089109766348663167098206461454556969531316016510376417493730968097540450463504080843106239888865506126595921502254386192019174146801780224706783432186985795947527205524240181011111788011073241172506107076097643370910086664374577941599138602430334285463134184104688709494331431150416641098841106948726869475654393904525536627444354958315991506068084472149947884030500452957642468879280374875910728001000286720669881354886098963546260670890457038257101619742907025832534336252880184672666292563595085628678778394778325644173049028235478306346553398565389173791526501836106334044329844863376828014426606544077011138743964931383442254347685317760278102312422506850443899512377685052412637379193245653237453455931661752763327888716681982687930658587078472335727158078283751886976026235679170871284175490934571728584261077941828189635892339775256638640499072937586949230870226219272236230926956843733897351378353513456384005686168722412802912124031730196617311446402945777997970122476858464266067666874024879163252475315233466350039297885055583071342722450964794037405068410649028828551248237377872894033508692062496198548111423112102655553990922056026156169481012536376695373567399464022725568233003566060323640125889345844862568488201273184098731828019561290032814389913629243566426159600618405474454752244495694463534143338495687061718220995752788127365949349593052287168137688739970463065695471260934770763973073944447283263982452854176461747917361851455155544458943550826592057697552281789983479820759610138354282838232546466276935402547330118614873297184585366209375870281413324558737562769785214249856272995945713648022199572765879458971483369310433152140507751010911010569727428873364789432787710668758202646698133352455231867913444932123406126070119544415440423152276214456577798304444089407937242177599155654120336972515027918536493622444593193804261239034729866573843564296381562049647834585180913491464238880772283962450914257325262309561102882496098426302458456949926496138035174697427111911642384951286844942800395892059186263892619013078354137664215715315870245561321513063669095130583214605205538575901974062685587323243858244229980918460679593967444643185391419710478474259335088668395520074442403591947969659172508594808099871932666737763254048351419555163548074507713573732988573264535033348090352694490973903618784981142659403422440984304058876588431242386349875754624612182101330631568675119000113844434018784009469737600157221048077001904693072846578685229428422139913317209566378682260564935019547967662562582856373879651624496162223894273726990524499048986875626316923885732781633847716359630980427913493883609026066174825675238145283620401707104753338230239664707871070190219175899408926855400480885925037968079547196661339864405056369280842574282733868219093943666015299144583141101803994704875925669510161100980830344173616710184547790285237799659741567098283183780917059546182591636300754598610015143108214747853400160613357898540546758231085389868584668786710278857366031683121105479104213388469579876536494048736229639573327601417672369388919838272226801846236605279015355084195974757251402560910725209507771058526015018212094645786521358360154088688107415791105763638419434939611057048385246222355190856169806086102614968025368880243454817623343489176042432224134309351538113088607082615383959816940830847860609699506200271552997737323258210552847921718333605050694965064509280981508456514188963930806979190402705340633836329859261478523084144847788670366633524083751939640450992191519310176706024054218037952599747094958354115747162671766312254697504491224851972650165948912388215056608614263102207315657797075778457746973634528316826868748390551943829148738602341089990109538309933440939405905505214734087663241365638105155660978064555613579350705850217522614517662179419479389770481022289868819246050752478990875166711788199002150780794481005968522056023236492916653403317608290369049002460943915391839109344869468216831670870322323824086178766739047612751698575563797535145201263585948453501264842023093286864946943473674403896633609300273891193362916835576477645178951684443974307973271085571254046410092116623466997316525619150202041776368436120941300267768765933832609813540322007030935380759382159762378715612731794943352747008202910092563678730365664945668569294234305097081798455845585592835202371108598461897957410229257017930021731943973908042608054969063255948763839359448635925326502269107345557803241417881912732971630697130870074448068307496156565456673740215998476598732499222598129139922844887738597867132059251416429437902431792884908629620178566515323062251590025161967719283458564879287562027571343010649858901550327430268258387697526751721924120841241259813201706115910283492849287601780655321565447910096606902270407049579853542121146923780489214454763564891118955264977526453204695683237707253373957596985712848976145508475786413261218851132164134714802988572357479890233449850471859978128353125957249387321970083080410906206702521417579331496609301276093110987770485031974454607268185112058079739918457495156812840370355142701340750943238472160566827856450109477937847389737389306630736104886155241198297237026883297927712046097235197281873097573657280525181527218476116265225537649243690380140489914784452899354708803960919884779299808199246875721495725691896673824051319813126605790545357696857177574976340567770972960501225361569448981289615736054465637591659484606332270940900857360141230594219321256525700955300074669674525415412914101571631668489721609331293894672419496834837091931810985928662442296336651079355630465221597656836521288864831124830748927937235682887443553638278147174642240530796052941590652390506367849562249364326696870408811000732974569354971511286251108352610669654579002508417523584231221079963887635330422885977914140871575108128203817229899985596996356966307154636772116676300608843664450473708214541699816992644304799823885085604991302047510146313710971655022959277417347634901216489094900189158326396447579517317150379054030500526732689669790969808106320896890662244395429217143126113820717190781921589027245295357335762819340656295249340161051839446791693480269364087322475934001038852698991591850991720999918959788369435468805216101463289022979164805524770934033427614942635436713470427363856519374277316936371289726032170349668596642252822307400047828089046900015339681426933581629832679907744474312024755403332418482347758202355836548787499587151481826819986695966386511840115661443074745796925485601380675059824900866545508587814854865361134190166472869514782916131314011651095413129125035574033708317318598009364517306351174735760969218545925954133952004068855656996894699853613900274262481167911686357403565068572189533172456607554359104544725568430969277142472952153628693858889037826475918840913394961672121766805701046076075159560534959861953601875534802644477512475629226806624182130379625929804251671593143745288082269356136235374427198381319242738869429297797534590253035741618775644846381631879485088486970162284244590936382778267320974522683580826626545317295585484042786485984597998291331262968191493397314969242150318216929651839950331166225158624295646527096024906657150999868652107517254866849346308394305896240763129943040596751679484093473964795948871484102536315243201615893867161259129113434368372725991153428958070938932229250409150722163179383164604109848049734497567316048459860978628085134975386832119326927993833459482468149162275161651321334403642184086508562053659101776824500020405829084150058356991675381517518387870499155251788842060752350633010985917737982573677230395161185254002735203547487474894352768264720302406841113335171804613283577390314104746266597998817743550871865227680654959686736489215149249468224257396013501438552098957613056417754107142745524713958856729561805895015420756921153954478506808958578392326982623469550463346648740556664583495616403921162519836287004864792495381798717660426939951760682188356097949651672594769752954851727133417358705323204173997133305024607455619798669936415687493160075421965604556220320523183427377382922634540151783891448780010068536480044078828196191642586454680197077112863810126116118888300939652631660257502889181988829526167083728064632873742729786083006092276004623384155431110193657100135490712748509609300068345418206533835309612576879140411567906866661084484992533553577415035331230869544610546691475045349144617482492331386260206044876332075941060492406800871379764113453994809596618922657237755171877702138763386291306649902105111366583312681900422609555619330912757308845512138712623048870964697765643952611472320899433465324968693939709884489898453928992325800902349998264586091582202205798762477503803823498697037854788076195325470183934282500126401039986116063469800626742857597043098363490148992816282049118538715680935036155177333083085321850306736459693226367306710122553888944758461186925252223260090435594368360116179769976562841727353999602361351897017256083908402181700989175645723975955438038501971815126316542624394638786089166676693410420440729467121568664041445967609897943782882858685201536816486458446083417654301485069167909046557967784131792172172611277641856071745167186012814451795919400334656077181830516495004266653219467004585666078676259821378115431798245080221818131516526393346916245055570132921118315827069379418570253089640129809616556577401169341153056264863794445374082129474032027824733048691941732762824108476992458774623272300783049046501854426091076422887644696398592149028146198027799196835078704476000525229569906394836363701427424852765888885707726685007677195162422560889711730659475690295909185790971884678752563854584718594732210321984197911817024055449035150716881508916511903865284380784886680653908602530607725915489578247514534539809340533116686366846311352349923986238110333800166499021747337682312594734592269339442200076791756503989835675390498049173106760163867524251593555643734517935341135212566754938977197991841415351411498336312132879854137049701134254116623187941280860413147300648645164585394723502320579345180395685011009050654678645992506046949060364496053573874079649297371908010211250234532556124987647098740561885443019302393023952985575798830784296499255388498141626828080630319487500894214200933014631472916140416694926248235278324214613982712280909357199886783697451413969772576725935160892827299580221870477840018218745923243888240307719956424788109672793460540882211959848623892878499995054567054223508694694207061082412583005243566140464598518538205090096273270522035834828576710888234585897680918544714318568909269561570879554667882568717159036604653885893543182517274970098412877704740660921987251593296130507953104615769201037776809727610611582940012796439660522925711030240932516299207295196726352085636805223782569956768878606218251344321776093124760133800473753116536963772870460092474211745004864366535861183258149401775083442234236485782250491285356969468698557951825961420556398702521311072718065352373357527720763270148659055678968453293178338696183353293233787300925892865342471287604518191446050843785671951192982720347776953826317329569583064440948839413547351439311251860817638294379900686056346326788832999951774557783985000534400614641274003132676505051614480733931615029889459127508719355221919921461497863900579424132621203648441125814122780709115389299040632059727972399132551884470368926477370452990957102929300139001963242932733874317745465877091596366494137043130337682545548323655059518793075731558247100826660847573911422196653554284182389486573091786341836837873045878979215740825190489684843956298095489373420769946473239861996313178139000413621906801580491574210678312071644713305824967016538962504283863441134114217184314361268353957722548315578569986381280211624368449843228394380800500094540454690417048591259838634743564320115235942394170238054487753402241577526445259776727644351486012356586316831054798992934110415210107569187918892153995703478779824974936483940557553188135705838722575404717043031205552158879935802549233635286141171511161389195538536048507300006802190107989090710381536018991335878594188871340690076957743087951866591803635494638206270244649936756360023793387465329312963175225744830742513998179335266115773309325915471082613332282198917570180421373476384882274602509578550462241646754282038192739006942098139852575952774816597766376429102535411880480175644701723966904987003550809977107705847839531115449354490355140977229030958629780766705489580149319538337379353041475088619783272025357420120600630321256801901116848634402080810842169051317784502602484734757842148500758242121857817552338413332544118568871792523532886753476093318223808811869856394354486590490480406199212095084939823179001604042962262260809542107704760342345790843097435298255552535013346637133312727399633339254808660194505384604139655170007245029439176785405354237189006305960379269006044070422692680700339421384602052993872443023107004311909645543627646642630693234480442220910225445975221722103611062761938267381923625446947326401339091243186268371396526616063364236836092479229010279537155200964728151431358195200795362390593742559328426649014425136796184851142817273239981600685345194369667302918299355553144843452059444530146584114816186933850540126479836439260729275826459074577164045071244470629483946253995489520463084886178012005877527544896431449047075351078648093423914242468646851640230662530963875901023110749614957366273112233610320484470934121638454453676611391044087518769489438961654704542421035498753249086674949274408896070271321844648202662252837173323837691982687423180706142552227934282559237740450970031998398257961466553370440509623347378683008154774213189764158693805539042115318244261066247195615668030032471520245209692100592623970626662393258521217948337902469940490257845191638368494809557193947278685435814783008035276523224185308407189992388133031154376348539702672713212616326417972970850653101038220046206444631556316494377220032401689701060167353676951303695730017644567352174935227992485528661461297831222081163206135955161654250831128320652020288032958415630821788358144356295324759693797109275003108291702140502810531175937405250593412588448257003443152403388339048801157618431747102236932752757413175080178789215848667641862654874044825014353250414183915967201581975178141034729399181595861494169089135042428640466842060441102502102005157798837796759659482924359044165721674359694267205260946801329868275582665456414277869448655138186358581277882171628869294819184886053893393356631474927152738704621983032472179134777976503867967351592387781540106130537377472684337824000843791713001706329588780064307424174155419976461470556487393003948412367188071995301892705645056501662458179990660011873627758730925321365990207761810628013223269854740257404742118332359086842220818970754097595558325379607538632737813365296188523398078524969585609413761178112340445620727507057417831482681321895318766573680243102826604594370691035465731686304870382428577512505605481424911396637116265685466416243944999914259094089938761792597218074970147284170008262244437668676586809707332780339247969478221975080461065287682672002611174206262846778530318071228597831792042762385935933994820502396186434672068919863703096225033944047306665397481396738737500099043030501175697717859815796166474928348827417632374951421626011030390089846050175121949887162886126267342032799393913588577383672379407157124313469378975881391069195012741402706965938754672776985568521918677519991789277239021072546264104163918947904552503127517617213196766394794911353139537989345960804949954086312093517854197582738059868858772577672283346061227296988417541996365809823575602833815141802336625734836172285548536278388977836437751640176622689747864162213667349300444746738546002565439558744325056595928724054121906198526327863694995867781329924571959876255918682928753568008783032477006917894597784088238364129483299285449074538219041053666320072927595863348294229382633295102452770340888422214951505154901604391062564331408461002996678165584856262017188402194258498569723574459955570873900162216602877377036200313317384360681782475594717084345035923251481821461002482861561617270470619373344076729651174316252126377526928889930219954488679689449076867167438120673466856808558119025121602755611778940581392982576163301501719374466850584756946030743056715374977982765186141675313733672436786741305525536315642167780135693499457589744295599745220704037586392744666245572484253783662051601583302372786222497700645558880073026666432369685178179385335279504630169614089314918258765382878979738070710077702375716727465003818136747527573623758780275113012944629678352917789825220764606486792488369429382381577600184393217907524270040722635129760329773676876529351526213204261954430903512684885282621734066874581354351409710128744626869742539611391723536064931071621878555973125204764340860793071002071934600329915837789855534411227144531134517095407841777492643498727002146847528366834003805695868169428135934074657828405119710781440617505963388743772489798873148085516631060823827805626663056259614980525208655452990226724798697570205360525759706397432121936591428503756971084951395708390108781017669380085621476404716121342605327475883471714953685012888023258890856849303762510554330901337478972860406152476240443483566455259191856468783550647646921383311800516050874348544293755000046839783678043464009206531879837081961801543042349844877672321284433211105372252101699674451752816147132394714110138801423427720635883232643900168040446215930208791727362754057902118837094993399832501118489537192888705922220288286372730931595284588439176539549952829000011291776035783925285096868405387441481794562067801508418779668855695202641053833638027250742363413261313278521176787385726197718539353175033896885657376484922266750027518743926950464397676768066402395365552201479621482025204193260584711966031609734104323570542246858213110843915903460574425274955791625777721168800364193334244834744211038082699286108369281029291270064829731780860252346873677732140267910494783091786787723458461765518367498669682524697096786234739362423411973602191468664137988469471190984291962697563403945723503944435403036334693591589786538032836132803569159172710194525605056175086907600707201178112961166216268880883032336570375914325180109159595359491589302238305208893300795903169603265768161783611125073439855478565239699320049105644911194254198209411726970006909198555273675276579885954456296282421856293469666684156225711957409390340176010619199588285366875139700424901525296746504862496387614012351422144552250582976387539109316171681351713757959604869071147722008102465792894005841769763413924091588972405288069585626363354562225955889754142238575360014886536305614043718185010585084629021336785380930567729070926699426047280343085428854349654572979201453589452429733469643989423692283476528835110097598460039926317273779916403139572616404326797306553005418510328569442189743776074065171196872139841976173541950848833027388755682948869094394310769901326448189058313110851356433429394725640674892596259377803325698052584375783673732410414353411652395770585025220707939772903225688070609683592019535747463420043740576642084088273517996974925055043930879045570395935978713312306562720345207017560424724122031727424477769229612659448625721058926575734572646332004393431819438597893914392924116002790527667924594689380235538973944496502955423647482641143625677459316540288130334917141385102996027092317221883506233599678830473737465448596675428651864473489419482379048129832662915650776697923537476596915071155647090368268945288450300897192847929889952585317496981864720324188459686032533644726110478637703564953723922854398496501366465668390267746422374280616651908934595495796761714255870069224940447236436128411996997321019029382905769799926755276653112860068789915766397426538340103044330501701389151600552871458365067533431752687899444944086897005493072271561142041121166283391489058761768571734881752666653406338758416688602059608130160820841772162093112356664329154708445996290823991419995032732499875841287768375645066365776270730287547541922273690061558524283699233370807205060710839827718621152072118185563900442929328639314215670124870041533337198035738150659991958982693193366400358627062048915279872382181134338036649622607975669449874680970022096378550512208304058956171605315815652892628646263290795830908336439438260009540622036933062676957991066750168794619661825553149125958671910284965512650558749282927185068149590073765076080956902685181530352257652991494745785117285317381342731553458254189818274046922774507126819159132604684595020309113630309575159223773195856857817088121345478370094421374124319119558143090880817557929218852848125117172711025864554103567074087176067354927866256252561154107600192687476176793150867377255329206277322122698343625144349581781857362761931746718271157636958971224730782943505458278848129925566758299695161486712197917673610199330070415641166983808580394903326696655721066087239005401483347341042360965515989107277567332825298018988188410425227237990556072494686961920246877358037457896418840006358371588966063176902737263314483476009781540110702233602796453163201929386938020349531682391917895120910119836977546908086794629624633325959025927786129784572317388339007490406747864704449284889524374025762617269351764330924256189538611276464838982075240106435575459806029450161483918388968695115234691731743805745883296507152935841691529191385433992688266634437077138509950652825972158584981729458118529322163893683944275752306010302816061051408370285193487744527119911871389077628474442789647188144901499019950492904438172840584922461179884602772996520930348831031029913006972002297506270139882841114002440849532821565681423056853832994801897541442481708596447933137790103808177772448307142558099394412154105965002870474968584144837734236735539290704705782785195132507289603194267257845869736282767313714415685176903954452646512562981618239109877127462962614584377818193398007996118748964210746431719440412130238917077024083992239840373641676486850126544312279980327044863390023561110621274542407737931648513904824042268564090986215326757823753180344278151815863845280345626773021108816577867345091677453269552244951127307007648461512888768610088983908162749089679971235487156979010736919425007408262209781650918892959095079960805123520487185274057551797277905223047683447695042697758400851633006605064009442308517602335348549773940304210692044132972704554399343229893872178720795670024679190530132280903717571992177805732389984191622535500037777336824984624842798134278997316819021779580596884010043523182565668190578831741951175562770828493092877066668533020288688809592874242004137936015149769940722485433268733234490361932700768467632653944607180338555094371591768676318142312488668576867302212247917039720823443759773037491590454436586767375196578655911774618211457737248729407124701746070385925259099215557627558132614540165078606311516823271835944999992623060670834828357068973170295272368361110405668366410143163837294434618253623480502628751137565187116030473502606721606004270177967978840658762949824741205310698708414621123270138630645776239619029628404285412723151646122086033871449577880895357590586127224738450502788114586341043976645296238872689689444160586856847080786497165723127300419450086445726859280077961302082690216476817346748312909060200966235622857482314956826314372914470422492569712374144498949719153389337679802755706701886900261248730474126576714460434046160402414497244908361732431424859522869800511676949366419279330347092589167454482608391111739516841752710022973929060600929360234939417515937950078973405737508414826713776324910432914888533356659934316337207250671734897476837785186638827214284611213694858584096342977247102998316689360225208671963568309523508843169962167487176121757832524426961735299794846844869050443080736144826732497496224481971350926328625799179637238716584391992024029685386386298000629525284765059284040601075873992680679879858038937586137539371853987738040745555938170099429069397721345271114584847523655933122383892483333521110303563908873122711845510366703192861489395742979179843552132593592309330218857394884168205597255365342349073551597582499223065416996270316041684209392978963474121005537962484268623764997372610666137158827318225104620800972918489075090473941125154632297505706579346028061404858904895884617785593700000684500832014402891169566333468167334110536634740553148017405323693296892274276906419037182516536757761545411303248785512295833209414402873324201764608954958629191522936761470257731756900384026885873704069953425084126222161556204132467691540677806869477805609606657057643010680879230301123336592624238294356995371282007934433580580383811006847891159611350068468943536595219384035492167169540549537203648835704558173596938241087041330899805555310989003492224616136295589278037921191103401392053324825122185085910972391687630044593227441694227797533241651250114227195305273308361981782470613755287176081867891482778943236243901560822913859873480041662381320396793002007458373786575105171196667269298632273897662469238650020886786588717699609544739991805034469014804170481345523954673134222653109959555685331746925645653302543142146677495360127109797303219407231455519970460646691864644527127752768297787894095472066379301503772759037204239303583979434493039345886336624164013055168787006931985291041442159981951985432740138874856438323676996771471608717315476376096163995326664135166803518193413173287886767054450311011202951998911022348251263430747097255684273711173505914404529464950036343277597560933580903276010304523316657331971484648120050162961901439743984407059509808613950945123595047220304171060859516248968689092699939870578944319253627000057650579679221814150541196555679668121127714901850273589909796582946416365584844704959972485384225670487132476307700295812567797434925321710567070633929529875210165118953413562592863251490083846500753481517127899832647832698162622996794728636114241606849555304224976333544749640859569195176229723237345754888406303681052883206125200344419250969462134304485244820976808166534348217805936727755106338460691722896334582296145606745989434687761775271445449248216780826126679847754558429619049263009825215658762562927882460708359080400107126466241085996801015578005987003992165562696306746813000922657092190813649831840338867544590898526154582878139241585811677941661704467612449902308071825266860726953605547059887606315986558795513873903590540310553087563184777723377203249310920890172110051219321193915312514247441105627343806622142500904192580863080771247410113255846077106504741530151025776413457670320373753609497169526412122116407872051242734618329338906807993232780982201194755664180042297448231812546781903086200974557262077350901467273729374310549864585696815216345107941254522163921995151627431807032695137408238227087738204068996157323672686541851674576493360177164299079104237018929548636953422459077963673205444277927292795392139065872177224752916279085345276115216082518195306952295556074024316301495142842772407196755472942949357316265760087781576067711075107593364457137501970767067452823427241004474422768374555616184414752320048332387613839907028761167088349980071312397978724259112035521837997496691740825959293670855816987255768810580061840473298185587696075266733428253007478168870243086799623756412388014059743987568716061314849207266322382050596767838146291643978395550714972869271923792037534539371233391033544362131316566240638976476566159267229830315344399886932375114940322694143070521691975097853845277866604095983950816034085296121984204315886591619827979659981952281491381445210841874746197073162285942759028719450236850702094173147271495467101444775867532187332203613389384749136597600579223804347779496332152868662400156096340542555166465357974628318258303965670467721241304957260115580663434432163584176405678181785567253073534079194960787608282203946381487506529031495418156203112697779773597309365741751283813481062706842249553822980062272303028667521759681427792471173803472096815804718951031043794111374360357313192459942651419998672581317253625671193714664319264485476928577470374639838131117149395321055111265147100064207809669895940919521802725954079814393646651649418232112837995841472485058532977050430759348247224441534145491422216763455047911284305893640393584539832236312825892437458943672593870924472596737136712094497599283578625369663468540621100376097881104333894571839408952564355536211766324515591819682732958116535556963962199850051568341805023666641200398011673302492233584828356764357971731827105697239181254187652458517729685961551096422940566821632281954154304932279715328686072878523095694157415487563228450394064933414815454880035459111013898955873687788063005948241230131244992459736201669429299196636047561550867267571133790634677665605785687367718545542425871702790894568199843702938816436300843690305803536922131286250127880546951121795359248190470871614310318139905284962724161977987612269545108719862175244827766798456988495166147741189587370445348571814491028170928408793736319219603598932964301690707590651513887012786962574176629541467469205532669079891867233044243922916652382650075864149447701914562288010814926182511277250791967788398230117859280400383877874229022331205383729789702465414423527003707795222016053759369325745249227246038203424083941440220396931542500881068312469190802913834340921151376130719064107998596095997789046110979483996898950951196907924587968641240255970516474676163163351683703566293154189673452448110775743586770229341642779036057109454600272702782875587866548652860786724763423755134759917619820682261498139479372926853054461934730508933735948028325715873037551091402020144021127700959536089567904257504393198619945406195628234008198907928262566788910880421078223192424487653501354514804689575014400831412603154749231207596096738896882929775644815430816952358067188642638636480512871795662680410066238170232861373949491276165891275586832242433501724384043791821763761635758260159894015442179869441943208456683069804280163657825256570236246004936821597348240648271081194683109233571203031335932855554862372788064089050179101936600875632669817819940369236770050559391426214321935494883038807053103147513804462816733653383278183027393500165451562979779409415564153084947780901109091487036295195938209870598481789548112948126545337362890172520202454335372262076516701935364829797772980009444088022977212385587669559805512394444691397483478657753520802367693029545222827060929038100949065071628292390470172328368888982742508995623442345273381179789694670563348245855196366959044885693340994729097830795524667721350956041952848864438743225058464008638295952733354103289419257833501749928330253285118841028093678918922438208878870264219260137288769602730107992067292067057277970729658578609468777911499259623238441682589969020810681266088055236985828981504858262397381854025858920788559088636878655487322293518019481864913278619755337635676521094607963051655616652522770858048265717759252611532096991253190329373828296967863110738733640842200813921876752430099422458598736697370480445980578508548582493955015015005799205349647002463379019425041173811159491163354775814711253311195017793813252297695140313411800537067163611071978854304455221299433820395181390113489063968003604687110455037209294776879848754275414385031182798769642074445621009663551646144493139571552142140248778328759162951454944787249057485369145717598711660034954478474504846274630759499350733707396572567068533536594238949673274924231743329364729280740456593222969652609847151226451602599681295551942995104755463288061820199007012134185371473924448781788565658413306745225516229655998036084052147197664460534764647251190317776281994093427517189765564341722137975766555087875138729838067646467751774507519164678503989026486221104784725994852870228358240470379947337503377298622407929013002386579788847051850155529903286221989199092722561864150527090269742893350800163732802749812373445074918651481720018195170600014499662262876389185689231547591835421498882650773926620105232085307058751337898377427840296327050183447864211541823313415360857480012244483058258380472257873645838459157275723801811226502310643776886419716066008107565837686298226301533645759320170429886385378364939698603624933526642311438597034749592035917077609687649711037077602317361499261612741480937238893735973817021157180419355979860639681895376935540157721181782956969924382323130604414561372854742982752807173502337709909999798263805024836697468249461260381723206702415799642874695225101473440406364431120352734699686776329564337986274699237345606662787907349054071206331275989715427488261058053947424908531078444941921827625123794984560264371353020666212604800741642289690290608191449321190110026397194199559672034113009974908115413036347120574580642528550772197872168356046298787237349238823927197097994268905054422470945259072852445701278174511693425140619194288156939975918482507698926059423279879237081972327255180803494162962567599751457571312614107572565540492295502696035902970008424787300322555038982647882700283659299220047533140400289814492103653412869966813148775841023973328464393293987729344153437344156578232369586258512914965934795671244965560966134041674031380805308144332077201991143134963487840301310882668249773124726837092200276513563278797081776450705319567882945109784784724412656321944823217026043779409017713644237456049781772431501651305232524394583834078642523298205375001924785024946345128647139942292498616451283357427971237470569298487340283803351836915772115179833773847010159302632741959681404029763425470915220673183521491521434343806168235548662502418243325271447878911223453420157771520885545274249880890673941091966664507681975722966651743802086942740647580506134018124194793469061671482645118287975981812477861247493706968264818890478491430653715168279849467390692736551174836299545554915617305615549504841762356048743597495448506451371909300182685113087915321149305747372043843128967281587814346852055400035981926064629467644404350885646902418859288582327697953982490305537938570058245479602460224944678418225503672264073114510607736462451820645803085905558547274146253058566893905541705446983545602388329773378954008106051804959072824786842578741178568183905107617010863965785746188448782519780603827450343239964381038606046122338725567216472085903754856003701117212854242889235128000784512207658008727684991295247701946054450205113992237084104148075040248543425457669941483801305262065347637173951654470768934188646543041423944898562348817891667714446621314443589092050795468242030095038880010100456921152388468442850315896035249118083467597042357228554112270634908213192926523765597762884990441119162529052056577547411541121860650100691746964006456319093922828809873644362178842644919588298019440480026018723610107223614717033920626520707734772319118546092206899588556867608225583113764435008736460233041831248224224596346818174660609150636781499588013026734363507417288281680560818924371138564331367938920911013355948556562930408707997441161147675781681674251270071970848316990572099709258412804852954187678505323235930662437997338352892970390538909691317519513177524746444002294045828940079373588373793667785449941625961232231789973597244284357327348981856718746837150773258054901349572676696168843308197905123963143336307426079640249036271895894270724797843226093127688804037770917649845124127341910651288431651717127423860214025824096211500510120013246907745007861785084170925357242061104553908899506400232887760035782780967342503538171707968345359877851142319671360832149720621010267953532778132836995982618250535644665006253990472466381840063649392883998156514653608933519551325912591400521489413489184897502995960108605930647220356773189337576407227449432703064501432563045441511369738270050876246707868927429610650009586117300004549189136775460327694349674505353549963013376421994225838435961452208417062935528440614995722444877132436577810917471094017775435549362218732672413053775754846905675760618877564295781574270892929010489791910146507582042505014283092973326764668992037992230586574280565504893534065576233789086364489408885330327622019503395008872360305930872201723424048604537176909774714437854864052124864678176353994381499052669858387701561291399382410478893899573489934030210381140183547934576461812214079173951786984383088929773853353599572384774795720354085636358464869236251732772786928534240466072800448555303922519212674675010917537109238604646584743639052650297634552745873974879119447820405521878724000063015646706352397913897814376081170222259817640336746024752684720519385010940502823532167451927418619521286041697577346975758220946982488436937427682597984288518011687783797419522506829400625217056542646484444814556660752367751025500206047389565022399501196252525739517880268011805497593059907837465421288498553281022249675347700340513724819214516834324970172714774678075231038211374102094646147381550137161632084981281687019306300955310042679402286953606219696250915827307216526996302584755585530872975454887288890582069793175656987456418439861955800879018176410698016680005482504866658162278118535809797274964379179439471233720511195807461902709320247435636308456019029786774081115160391314896529256414320308963189259193103502442030127234851431100740581092036049509386798285056239164795590480110920566658009787531491489861670714158094683622297134569652391284183954736118200501945666708729589879561772730616926495521007790322365192174515737920557549484600867090966444708543504555383404784241969830123681845919991427148427569061200136456403102679079409144491835879683256257384026475204247347322142857642870856403958618633550396369200894620657780278986110394843212845933025581411752328567764259217901844726068420371618596974482153192611872421011761379432288185627675327868121871992445931330084788546390484622301041151857464510811123266465458848223399898046221527214595294171501598457670920715773659973625540977415380015788518931389686012990637622863139814557359904402998155688058610211043367444697042318627331692242824654670178830645364970503684780074955732822729677530261657229544577159979612829017489221290903733309295705114764817360915989548386500824057352075465076996014741739493540668406448396387390623318187428225122488363386032967131367161697984845104760768936141611915827836134781040037371874399779738465079984705925213122026162724973880735190510079299250753371955495641153877962316199799864687104691353015362189967278374675851503930801598156782157132501294259685116571031603700405709173646680539395746236706104275142069400753456651964935005227360876204453200086600430115575537691298995119120185193840841395270475602011154009964517066943291269983419157302737322390138467721437380977503985402654748833217084237241085337770384849175671105140485313822077117599621352726951339941019532409677408490145213789477734048789270275404315503778046405408378112030001508239153887436498160956373787441676447529760521211661671532038463478510826805421014632914319693029726549369541591294498913608903666610958757550788480768573411432553894969239756980722471308348873472370320856631966966665528605064710327265747788352996700475214377555023457617029225042912013798908069348356249640817182939334092461837184866534917381500431212905128609390263261878342704897306191032944437457161633349037321112335096993595416761430290540142554547315152548570334958746696380526733106190089559544962923697500319318537459934255039850046850439657475541519012040925171733423884767201400722493580560000799408862403432669701409375034724790223380529032239383577745214917103579545696897465667718745215973045712734268787673357417750793459221572181081255968507631190109623482735017442378892696604489109967536057672300763912146184464330020842019841089533182482064709046769906451972298058233285542965097713558602782492039725561543020511052116849735283944746126049789031309944702521780234778330312296539924054449655072350446637784564324764068771347292233991011842122286157489953087149031270079293915251989454627615111446356202984465874225954600757875420212062871539201553780390282497351030691735845641770943673486684040284559898789301963593775854022823823863088321540061315224861109851933858777133982830143452711572741381759337877504762349200361682840346248791303215307226339703103170629152083013118654457554168276420387051750732004072308579880432425360708133513037867954161804286731009172272370701691800819490017657237143979094235377483183840255436482239477802592622834339360383763511138252978265163591319937089392068126706215497253558567693277270855517965983950409620477571108097240458896936211503186591358767978033731429560478415087662490322584454685184439176354396861075720984243940777009211948724902051764387219430917563111438434053438053222218214142609559782185642850681877554488660545479957923019922751109867519053211977153778833922847181519672149598019664400249515131748667092911347517878520795811382799567945609011415208789104060619146271299520192292198336701415026707076354818383984255035489310574514271624189567651016333537207194801028223897158235264600551492093560181703845694037039948928718468186564225905440747512270976469895904612574128377416206496870418940825394089376183362444032915422879043970314620918270072229561549702537358986179870505358261098314697996155859585296657617987577295479128049890685525155188670583854554629047174247716622346140879339465363902096720419521187601532076477281411307613332250057833538406398249649747431293641222184158670576046812693964564089601907510305752068968799063493729538689311694123328525459022084236634059717084394121805235773760211417929528912492386121151030566740823378113968973424300615002311025511813445296868744674869983707849755915487675302167009997374223841050410589187068180402102558261370426729703171066730751956586132028207384265211545994628468225106074412515786473606021424132341420321534109850666060918993353904334495810419984693214919826146554491756722343561188605525640002737799442868621000186940097724217828290003508435304819953719437439129144081230663290923057843194396643294918334220966176334640967585119340565651358755859066477638376201564033758477719893076326407086572736219941651503356379207773806944778615039869710516111766483306791708703382589094126524888050549051328421337918551517222660630064474831998822385064437575424010167910433461690361253592795791098228846127501475204975877033968362527577110084039886057920293191967726063008460544765741437034254627136205594177975946268176637054211277054765917920365894147972780160939042957355886210574995348505071056113702378846209777051887937280989440339771933899541672451780291143574788446266346312094957653089955846396506174171902094359103028080325988840911677779884262327504605083601106402087293707532921944787197617707652220431386954952279512986733039663281107661352451467646965360000389790465253330286496426801421154499828802369702719777447373351976277216274300393213801495224473846323324294864214104288914666832031165703755327136319130814851472567899641760690309521849842866237781832062480699975369787636709461665296280271964481366536424555636710353329284598366428436655983997167115109822871754407533186906349904578441116092983660979599801089124232962051512015991081080939196036361985098828141723558467621559831583739959991938406675362122194473107693448062265286271496692900488452190817444553983076345713645308793784457734338057426717990768053098759112816381757268761238967094690670743461172768134444103765518083705543329871121195339341628663622729268124837621230702159416440820098157925387530140196500466000837332969383945236573336984680691025243535451624609932584955844744782493782886686822197922008942083622508019307064319570236234452020025403220728125309351059691284171201954764737962474832227300478265200064521767614713361739089567557848011090305965761189791382937571017666158409883306362390961850939203353408871480603345874705370186423312846156374961868801988754234828269090176223113255900097166378580866898740780082736091130898556042188740672500904244097950088913545453922055851803281181984986251131573492540933430372333204604808384787467208836638859801275701959906895892959229992820411129308526938050055098216550709302140559774243363310036471927446149131253032647774730073025272311648894634794841890080250574195928590821285348446593043927561667616572872980431326023113134955539894998612936835400593932564754899383566263264484097203618713166398949616914079018793534437388998566568024971522446970372502062514211190176282538494052519427303898800670432691457549176172979506504949484155017954323773543713560153589939901104813851065027409559496565785247142507961152132286507484596886727840485203785789345668583248473488869609633307069966861361951801006820747543289013482382088544888288224719707540866884953985211625014163528798462642729670750350215730346968894084117406999588941494426597268395960056698317030374093815524559045791270829316585417816665609208290899305859311080160782758079839682985372078028307009081396838856130436047827511786922350295727966146729034649986537728139820171847538966059120769922433403071072163980209903349828855602553472639846727402736795523376519768222719756959485122792806014399945183557301712443762213977644284080628915160679267295948306225614173633001229232910212943828100491134746734694409481030580496766743570636362160782110172269723878270276898863182434600427490428514753618643064424847259246010642301327530256081673866644262365478056009404418827261640975209833054085788459313379527614068285845052111622692011059164845103721500120549640740601867653480843989766003853758269524834312209568345816668883902041351551836279036754296545021798591980774264538523078584993947949423886284175332744728081826138738981086892360485206577812888524572244972149691584752404570568859495241847069819117206583285263073959120638854799980990862817538380277782214645088128887985357130526404805205273868198055290704984065098692510389060695919732168562913695394852877264463276214066158826688860911731994373561675877617555590198193783939877801767990751657566412056590823543652798153937172737174445360134110096119706207289641801820118944334290612460077481939097317498256357569275012796027902587032203497183174757616686932962211479512850291889586446346384867202732393815176593628250973665697633103949670960084587425965441676227992754444765803044081807391609439092217813917529400364913869089950719216096400017899710065118815094867289133320246386066235980198611897341926202562503188608422218058458730696307998727475171926254571428070526666537464746055669319361031579099137649275021265353579469863537557913704132173966438076263807506644596637146555503610977236402070045048634412798363895706647603754271866360673097308203592352856910048124357270954835591841129488833426417581179066034708765511181210850848384692523386827271674661823577293345432902177753908339443477458378262463505821126167458538963133085047589011264773957139946104166907309017246207951426061472496883042249875457350635003365867515679824975001898816052854263115411241997662180681447256165321861443236280226117273061068746541078126858187159742785518885357060110063598690032509572044952504827410197435593777748623384594318046144776837550989026596402964004996078893474042438401941549563778328328743621718751709948337415998836540273146093134036904734427477346148158574702515138147874733385928180098416434256477769615820068869102136955724800670546679318635815730709253200499760941965342961706139779224795207742033040761473816903142135979214686842334400681234819604710761484994234965627614414689316523393443823784914299228079904783578561346241255632544279651912968319568925561247916192553422861192907441905853026418583689511529089629262194234137827692001698588961085816552179426754066989965288707164419464236889658924622812833709743322583004348676644919878469477101121409799505839801821089140702473694387313356140265477708437163735630868289823442404372106221402407245690501108536274865285819138898074778800057408592728928827542014591016867296563953362771800457335447658275553538288237193312137976590530560411987287984511796958153000150891169663164435973878267109187576501657325530011165648433420733335548889377077684170531388146044454334026875727968902666983303203118389899881074332225381865061311024773114981046648952308946608365203389130060078529397899470717750683720879071954236927119537210659048365528822275403443422411452177172504034046333175956327989929043912896079078804710622025038386318010676410514821664614776301942575860497147754174032653426002003488809123692405198842288787771802493140847048757916037184800566082028856910020863621954736008380189157856856809484855112286787183922635679516486042965455570142834113088091877707624064553704925127584651308424458769029646561274394847067072057839429304018014663352571167632988848179550309279703733182479870424909629030628840059583427224574675621087335555421105727217038799361105352330880543667600709996476225148242957672752570977585698086047037285070829918008213794911974257064361205745709509195708373619119522497214416456140310504837281142454368480531140442800036227239153456150266928220435773491741229242027825305047916839347229851665994220186428299487488826864266285933584455790632805873153918612951533436752591608481790489433197113491882806865853642568579119322941752712149396003065283013947168391859326734622835314134571519160911973141968125817314643801640544128001965104932073065937824661235922398715124297544674660135988342533467159258298028597956478877441369404272384974397348605873600674313214226177423776502427711839986715839470375425651511700038950109973230755639299519433277538104814796633987198879154264850899493288829838385880835986870760725478104689775538803456643039379114894395855272693790376337175761111368893381935753629974655918422876365435144312009991970461931246435051688212522427865025866494652526278760622337951011683238540213515610779557052609555314597686204380651615842235077137245628370595028077128261420477896505941571700325736785932493831128525015600534196446857937032015001789317513014027074038015443652484420855599476097425012954557630023945354630385472458871797623456611939623363149099185679118905493342602498733514580718060540522325857765329598809157871766231056923485104380456558402653456959122997074414603724746499785647738816113800857069719392988733865944205640203355423285560359365015557700214699827446165379670208811963967658123448345721317950096703038118548190461779576734633871190805492309933523925474574312340991839080545837139870157688097247549882716077188714527294791361496823708326322839056318208698177704902599286959060749773296613465969469759046979834311837229776767706325316348806802346331590991674076304669104284678779255905197064430458595568191411393969426945248737724910018891919806558557655957098118466362233738696894795325301350475844907704037093056234434195121237989905591100657041102363949158748837163099550423400578613359649263261671027731067605910383891633579752152038040041920277740531917355569266203491232484404716430414857630375751764527091805508583224631780353944617508736876674494129950283144907350852909033122577545237347454138035839739136783020419837246117955527496863536525339136994295252550446757514655241800194393128743338216491325908673705574657145393290118243877657816977394033408496418438149667276145235581738200171921535415711078439367665211684266594077350525074270334800624601339244322463152250166928919796259315308636143584323815148763031261984507040254917313161964719706838667144408990769289249962301267057916115646703206822227642411802664946906453267452011783307308426564108081056507597453899370209392767388810270878741568875482122115457131258074278267801032013093229248374921909859564612856795996279317810578406482244187150716063323910718837421734986464626627648141729710971573988455133555800519527466016926886384640968046581530078952048039792910277045208641298191940582041869499466321431168504736555341302792639978939299494417980757307034137086419319688999523647484972885282846833347544386453717199479645127447499498963429232707009595293729313150262720877385771750341854565368304555120157660965691776830019133907473829886809027115273135516695740486368724052772943245927209832836062502883643690416621982708525106904317644149816039312799518798611483550648041827855727781609480944943309526910451321665160038298672907530003508626204291423113498563866933296396264906094121168539285946407085283783604505588823819615546857505149641294371192701792684490130390336832800847268781082020272242602716278678757703207883438810931824365789673957112983000278269064442877437943947553302446590826200385995645826517581003562426812076471388733358830196579697251573788988710696430452508021057531889051183144437907141629963721214000093345566621895923335015657531289381665732113688950931055140862384611604113543663022471996673502643591698639575080140156795701883565485025466092634307526336232277174891273231385019797366707794869887742031878053300219424912122697099000500076870522929346627645012081376020359255840229906077819473897283097312838250560982153429494499809151906183517742182408054469865035864654698262988042695587622235134108619532226308976246056543874925260839069045061895014576338172344119756826008638260169037644062523957591649381995867652251852942946584707102712910937973944523599019149403427275846168204654040765117898344037115151265113566016432851517130903696250375386280438026980050696193745797923637993095932223311713082462310401138554387663051641668040350091639891674741558358192611317687348192130388529097370745862770684649062695751079618018278678875654527302481903930389128940238896884314157655765501028876550149218241339256213822566884232353468739282383284451180643948846795557374086854942640144783075628711040754247734433509701358094386767806092042717956843899988153226771889016863648566389444457239687591911863173834549028928358201251548819375307711067975159568286117452013369414681674993935192938249935899907429033195183899711683296708459670511414529839307924825239474188964507755212541613221148852467100036806657976865585286522038228790366799767715189272906287029956644509430315958500197816177167717616265999439267599301594781882433850507433446655866159466043125704798571461295856843653494579480263530055774961046660264497821259243892004013829235035602603290598257082609091114678698905703765671048898067814621055453023421951026050983120686942482865036893537524707181283612933234429989866635031050215432729146735746496284563908194730674041165518210091881960016472964342717333919572641857653425181281529303184354169579972313400378250019041649591358642018449593977154230301787686930646654768001556702927285809568829220250419315064915829243013625645303716698533599623636805146553781937849567503195416193697666185203408565480265454007367920109671145684751555552974313135910713430677250208235392678565117395738229160221481641648452501922024503953244644212019827801019157787195293789305245280396461887791218717843826122549743354652592286026371824809752297116643872630772211687337621031492024645334712469882347142694744942533236365355420858868233776570236007402254786535807971586664146645720098753051197991195755225089891780321998088645306080375880271700163092082022389844357642373296171537400352070433131565416441371201475620696307611707677982216075325139496647179031367808998938422567039692909369028578453554690101610017097730049353247847025548166211684629994791824939546717153962954120362777793763134362177268013455548121802464799437632619200110655136150526823573623690277216471711990591686585838889034282196018343996505085678447924830095454968011625487207287117631999120767521257025708205801416941488245278363537542634629402243311628072184619035465888951436018875199799891153918705550058484611623530534358249780108677336486546459681948590838355894208560691260830598044490863262675447418485914374021312771096701132006889623743599575710616626744242960397016264085230777186472137081653716191890229094806257997110272045261386856761083474280816027668115330747190530484845570875011213983919998873843283194912130307355908748297356644378229841472854517752814806542363315841264829463164114915045291801004515161348933618178871093295830209257213774206801657231931380714639638227905126950163240546832784500793254045542703586141145396199422080521946500896668252081509578561572201861365829300950144207177629215405378567664700404134942350223922023628990820110252803364056693682179131894064353696915656806313090178251639788877961845943574550990710334740020365832196625626022651870391825571409092612705234551735191193070466179544213729357593265988242181079140028995625536060604268424452476132107446413060634731473858655997584818615988293916613010010862415704949348483090569305229103658501887828020698193710305256771847238808784306854996868372670375642908319504180122500308032617186389450236775885379114080861733649592477514394930209580842873628574257398320238465573868005533356498564165267118436691446868685551885298853371901578965992622400797692429260784117135119412553040401535967248447715233632928543558978432717592679331715097923202958032986913195913223393550953010088514241217031208506746821453171664624405011881383741059318727664630701944817121948319452029212484877193806097917826353164275981234156072403943673063304407577238103327010215109971653069028589305301730269650143643785051139376384643783881404719717378917010683408872111987440889259495013285433647661807816227544738476795344983037933891655906322997952576837831660773795762766508068799407490613228669531126560025343644844762909052209296671090975327293933322638400693128354261937321172967625858824497497954778864914319112994719034492693290494480103949219320756763764108000116124921859785950562951085424327624841266350922581031700684540042376232348026751418943622805569941455079907523474832867409680640391629872387113486004676676349405148749475126589767216724293853793710830490669699373408181208432780688103490577623471111689824562657588251174452787334369336347680854177487316498686540957605221482460064058506557884454350728430309828580800755976445756527369086244806048111471250751995271472300188396514654586156498293475859279585725304882699443370506911960262211373584350990353721237029999111937746075717558577162265025598566111037997569847672817180863032755713232783545186375459458761460573695738059999753128195849719736555473643779054404558589618766549797277035565629649744606406855816672499081426531857257860589926608205845214001357118358289909022047472076238576489938948025872869014219514813918618178173444894414094038254347827136386211139965276754041999174991823581920772156141621514640835698324754725413842943959585620128193831643303324661099550664138849337113806211684363608211131778128549574414633123785309633782850188462117668055207422868230973987523206836617602040291659277122553115862717527002525687082122268290059643972314681727808859501872514567973293641213846661076761866217871168372944037793600710652860757947536947708006407643503710954039073343443452331178617425300684105560191303257082204528288835186194862861857647710699120984875567535431227408385266935322259319854862762701608347480026909627859080780924384037478158345422181098563559088518627905995441202093444059201485154387639619328542850833206458947222547102801931605691313449535957872783306831138997785268277213185410508744329339701549046648317592965944837077655031718692201002250174470375670425315361489965563890813344799388060735824314029672415058965483165159701900003238549650176553474908797825883987176364549938499426162566860992612837130435723923606971412270523452926057066896034996572790889971296533272852024654678847492063489204951714838398350943879926095925037664984253857147369218291206131113806694140290155054733246720328543463495713534632958834305905876721970774416878962865127045011934055004175259053882248106126491348985251815995086324600563815361866554015468309226290552971498503758542745871286664937859065919347189226649515173087440486089662277974075710732151250169650431742618388096547041625217097057402537161615683235250164881800202183872248223934705940861273352055004938509484446839156815057283863324612633572377515561372474108886851335547594177814024818132691850295423519687236430252544052142829678453244846130429314322760306661178366402347925889174309480046080530086249873862519295409172512551502867225729390997795998577647321861081239050341902286898936990760191575532412856504954557213613059552347085883157693317858975875840757536304259367133608223388035271026896049446871999698816536750898680640061580573495400252165114846522968141166685009183842882278723840947709161341679562980471784739529133694608610890795883885309202587878286809672279160868122308870797372864317006081580421935288222649433653572249146287565597264157065967234912067219859417286665431215182905339287522230363831560486921664176722573010709849833847759547757320438477415747916079678652601319403194064710506288127425548912783411435621250260491629299836368740115988646193998775169714885510648894854258772344399481345680628619450444087276259233293181287405515122304140087634272048632014681155774958220088379786902228825706012753648025477543866674460457800840110053879000006939990947988127261770307944753189663975112911072777260235454929898037960073535027686410755203082213278211630399496112305005742146197560538895854916141518553359985664537485090393187815978176118108983603905106886084719302953049850619139441757737475437593877514791888976220075117891654390067096565133254803218941202120262410795161908725788767118564964421442476490280181038298708169472023758704617657150347644190024237918081398125008070738366792364600355139699862822124406380160289549337121361382771231020906231547111436474896615872213069187794402630846209996878861435204863888257972624336392118758854293964468964768702170018998133811445797906975678309871555683784374061386591583244109895638607748939094398010477353048825767018986762852809045892870499200084527901461982704570640872131107881996350793260997095207571625968889882440331612029116177868881284534594574492935776662741768771633680232920810540238994653439829663547408717925908684609998126317263736483323710259597070272625773555049200632559846845533324418191031113632322008312487634917024982183377526152829843308177931405038247339702756995299231683807303575592547297083163711464204509691147241295099507100934500211424631283990814822107075642853649941610087822828854252232798650058181329022157910182429898539908552091255288992541735114765257603086908714126318021969674802346570665567538987735848025320929238665589732531662544980445131991343684234088538428603442011390216342750099411638859748886543453759941496430243893323766744822421692305588531616152735440696971362006243870449093367978881369512182702632709979936841826530184983141747846098454413107600714984471901887696043650508395034260383901733644171329250520527932459329472356614953570141521127767272143316742493819976746658569234546391769261748112675226360324830404661538050348924313208439824574032366398381243404383579339645654962500357186543737047931678963964020025163881600298902886027703580222656718420619877398702015760887564034024340931933195816870122528430697399307600003197481272461963862214437771185668470607885749839447521045941169393517644621214027897382456168138932750224654197601740292945145140979124231276254623239654248888496726463237246406820001007966264307552258736116781416233653728390198436425041282674571695246685032650623732477386579689280126390220447344237933186820795009169867925517110727085124308340882603405731454507049849973065834906340920266641505919827710342666611676524025672496356972776791374284712619613174075115586127185008996611285799510916777436930786686124984848012648884611442784193552225074879908376044821222890877385334065978556185044670697871196744068427246129752368061673046777199372154773858962331901272371700986380790655763957958718346365912718076167912429666777180048374951514815985818426674367138299305016307777172053825235259984193534765052708426311002875582210922480034086757930296996845357254381202652782315599875107403084509602015384067662790378566250734965155200364074708702975313196007212963377614526383723516674209910734105591578678975585731402028397086750633178236224205005044625311707135810553032048049098662086634038597610764199448245817647688057656700516159940503356256441059155092333508104732035532702869505580312967999998633012169121057839980237125399320190432442821920101807983336009416094458476347614014498168976650959528222921838816309060715145966863691076504255592913443720524176324800238642311637800595749847454367370889524043910078570150073559735906980925104750758013503551524712728995043380793817477241347402209243463571346778394525959056564952160302523795141733223044971399218394824403249055312383105795983678452931251317895799693307947422422862403546324553458026982456866955523671332998426566235703300760189942618363625192576237916297976914173934229526864053617381412209847269513444320631104582387362158599916036291740859898710643298284270182663666512455948516376708440744536983859049054196128806163579346293692495408487156467818810288200481430771486839288043546036522508973334706358468869042059161010569237532745053000571495491042832226815148529448165584828821922653548891812959528820940337652722113076698336028896430793999462726667019035483927536714495942020667597163623938485352186493284182036849595042944687806490378967139587938759913945320181083954595610878343456741353365074857140067924136936262537449318537748377095853487842006376233021852309685111977334170179074720245493099566548873680253528987835564868608383372243702721352657596456733954889095409971715555629944415397522522854104970052365661805237010481206968240566063590211425819916758854053537735847784020236680630391001488807531333451588443956998784174870867128482750229971612089087718470663271387086190344620247554952677626991996560553502506440524310503264794694013615215259954699967390942133944348459161448540920287750040588345044624732178792183896006755134231629205538323317319684560631870947591335672558330350501216861963512603459640161749555595727114023299617933713308746859687910438720268794790527826308011864988363988713264805196682849620295757881285961608328092149934425407859012627735727035054281808788572333175983919459364976442580819840296079921404337080868453966872808241201241567110206513005941799316712358655304464601704072085415439847203756350987107345752594276292474153553716333702395205841468581634598659952112146268856425092900270928967241299619001691323653807321853143659477351455810218847019208331471456758771787471231199864791825034820328843448983820835558892024638888185364311657439308671797263608582072993589153840352976637976948722848068118806805134850089327375536101577704597488930194178357386288898881243624127712665571102614510498088713306970047871915906916793691862679980672724224659528804921814058660213890217382185767699048703559463930651414033052392563597809375412315213791520144162640531375501523889994674903751383571573007256572410148112194775680379653160178320985957382087121147054766423030609087464596523439736751314793939743949233617707164510507607499991909510060667369273753190800509545878370782472776108975973004439523299751245596419519805239273172652939322377409080654257581680367801757299761877609906157903455820868016223173753769959347077405229504127221812862302855895673734645315342947799744123154156551256167955501413162632864473409286511908226881494133798467413857288145539798884591143115003971976475165699874506648292077098952297229498037962150345504195971457362608349555755547731068099918397729761349625119327786257124044391136020020202044259933949620066902159927822676764032214880249441614602500171650814150178575501372406560498070084705403466198284228245708088853963215334623061739200120080482014723664474452435856236576684182064716912484208832843657285028932279445730201084844370988884047829119084671460106285894465341056585159635588797698158249666230540443575737208876042977357696674083745245394757305219441539137751668046010410209085069557162727825501072851577809255073059812774609418139412495280016298860994045725479809404938206388874848660389849920493814769275108442578894169152502389373510562636978112619504828423428629918427920792486617420249208713476368064437404515495956993848895714167318528491457907899474908210839957777424826746079373494783428029295261846989353146060540443449027350484619321812052017906418245215023182314838247649563718019874856721593516956383771525328924523020693055958236347140846958480720373554260358108675858767338936579801210988626267712652027171624852520813386754114770870308996773788402157686456926516587859202499518138519641805199026910805340827498262773410466755740471872744651193914334764463738206371208899240520236978056619246735618621990293934488701292501630261917629219240547439707324488805334777609004267097606957690842649930282028173690602367007165884076656923702324317861109400891849322308269325978563673074456089996220717496783329286648380455252352105746905883331721266031910060274709046406254003398905306347342615401215872229616130092852999464422338279947556411539755517784365045577936405606745338988492316691539589546894553123963899591986234145058274660047659056971110347274878250684632595502145140234544771251464354766442838459923430666814276253601845228028797985723325520021750965909224704320176864951918521121946894786916057222182391623028800682451391383882288827495746390600708711521670991498181802106743278585620382826611253345993771344040058662221795287226564429151485014562488412212471417340357966262452491831230601996258446273516098348216806011798338571244086878658973851926129145484639467366830096691077062734360792137630174072775917863554614566509078992127100811051411179650011524557029082816859195010662402203816088580878577979555075603109808854634778250331120973821869979578092271139093198440554477894218980709607962792031096505511679323772970083015682748683860820011479436433321316887346959581436250088767968708314042171869664633416954124171913714197417177080612362076525445940096125268396982649384250932590953082428009327861237869601897659541680715034730621768092047712060667210776142008662765533389009802200109433645965452289596385256611936370346624700627038972516413033662083305698695580364398022230699097890507681262061343609152855399736297054967392065891505029144396359413882836647356224930037174831116189142591815547489163709606418319246447251281995297745654711334335197722919903088668506344551886068966427670692341656429829593601037592166267676413086929824584490031714947398581501705453437860525616285241519216107084200322162362358693700280694732738028394196234169963844325454781272134452810622684672356508291678553744566268623230504186731680697398397575118064647811412916107194238938943313106510565886799797227506872775159815258158733431737375646459813235407402214872033623018411440712999900700893947176956745721754200703860034919131972605137571199698715131710536410663995911021939287495376556728517894091253968462183732388582847006732869768542267927062937201881185400873480975530048728051069612026324426009326341372378956990870976191976388214293462163941471716287947056893944310549594271851258481730223510015701104867784395541815805073587834065579306802550800270288770686035538314718127866082490739484970851162239003759460728893316936647354560838058851559781471459730745943189301413765290918194411620137201761214343084225886052774289110077333874907942050410857148244945080625204369662756473508957723053638756816730300592968787881613493440426398804965455846632068180245946265135613400029723004288582490322007109948968063678519585351751943536612144554114447685927121130497030344644183946536832248363355333987406960741795293545577926370140090931192454094795767950845061445778157057989177442024357854066455202397578312110614924160660335644815374420422498692352368709205296716562873822022125718882126872103697682121971585180365450462002679099284413287965497345917578327386806345810307054994652495841694590271847945066126652955180589731666600280154736514453890664207400766241732055595775985588298970860258250407560376323050290677147930152442080176020955682141612717322405319910266544723161496169557261392678425570974593414231961014408504465332839224854952323645599223601637270750229446105241981669105700540602888991471421968421266947133824630414910277487764862191116938804444040601816149125426017752257204426717692045461604319088546857820153952543506286434030554004802703289941466459494037917492569926336505400907500705507880173903860354953045982471683076347679798346994481262401536550112099229841430268445813414653207634617131351248536145176260513435388216040077949905468864550235408635343695227727404186623897434900606810302940915139293218894168423973753474936762956653366876170803832471070337988717439598197048800425859083473139854997708150793941428744608052729312459420899169609463709288444448882729154099759068037350725657867124017161641275687511780612019734888657992164840955766159923629853514620897544736383435079466863009914190598194804941370948828755855527570647631807395789539351003912871127034277415168078617941809513984625223012316983421031089195793605150827835699328604024434987256587075247444785924800161124294339594303276166497637774057738164990351093980572487767311895223947602660541489219804166947668222320693053350265169352859286596854990175835681649679164871469193004638146383210732437395521861426285182296294627437390179739132261792016281767870432436019894123294849662261745078928246155858462455427655244065731141114227858452697152077855777348079886511683385943462757974467811091459867457851322648486870556154429434531473300759493140912825355700277824579698413199454976562672480006057499431326130496702946197641289666919481431629272141195940341327205256627460683927215035069946926126283876471431893668790852906720335972864904934381158254296738023582609945388902447886506408803757841388029627630461734471250966984734752397816637711976473150724492648719186178637828937440556444883433457088712034892727153730813429565437531161061038049052238584440777149131570852694127268808969146527993103095033475086904466701669741668819436439399115338524477569375762342409178369920153184141002144603672387237760960811988039434634768772544726268576747429608254905457972407423767008329763189004176183351295244375727547339040795838715214082537759853243763609077781294048134429815523282372095620170457352140362224031520148936044306686326690071040266776639576407532924561004675628235119090609597711405914057352062828917099083874296966518865674161360006854663051611813454360795258776343235926316038184527507458075372394697442631190313678178566112688391934372443480265572862747154001048185219290768962899730596554941438863669129778650074811406739274863792182030641786777556777681741747439616740395771906065178313704363892685453781029071104876650852389974773067759055141410422200597747165712623313986496234651564539795291505574605419758465537661764611304013685448437493323572035855590889495328272552781196823193241582414296074908272581461663308282534670333683054461459284970196643499378449372905200807243593308666337432044053962224239636231961914151075580485493579882290907015907250595431288092727405400019111805638563340994610316888558852835219946298128148557597826255437437673786002674435803042279807170142982242023426189242297252147787711036184015630709488739552944671281481579950205473146625816399612095734742262579198920239290375224351825306654407374876138940411253444552302875142118942410341289444492602621117240864970694222333318870990424107918361849196520910667052907167634290179902326619315325243960243630408485153338708391752967518176870443012493388993227378099608156886942372899713989261054200403828104623511777336524701068705656317481058122709275266592609292920466274458184070306243435551487048006964375895817232609608598791328749974116389131855785431420526075773668043833344862703315643551584664868373068275492262107611354293498507691019267374961948566301703467681516184016004998878970026668399742760520355297574417866069712006100636752838771791027811344743268715346943172917280781940633941188131863221957839634341887711725674760581390527132733579991160816424262906669329214453791767714759583963982149029595925595826890990028128291795053840430571152218055425561761223998612275637700124534499531042747272464094077190256755208851718927546990559568689268627405671152656722873258964057362514946937112228734238849600657262082402734934468357310746559800761647181548258219315678227647935482277784529864627765642319756967707240856153174686449186435039159732100917819252131638137689188019696128658801329333705720186054070115226240470924518363651938695888821309669121803676398620932697274858468317996399429372055743716590653298301098625800035577236970360707634202236437818114346680458446523757742425534955866573621131717781459572955152992532265922323631666619698789246691691730136684379521821353079938647818893651411109249674434103149307542199968092202519558930531164743207124705516412686883494537381293750910424049422763307086259984604642411759327989723168534415877595739920429652632573414189593433559367866050377986453944369107706263866122930369932148690693671359941729421798517488827423786052686391909490497945272503401804205543068173080638580184297524321473534846439402794996611651474827196506536562258455746956865257726680225066426267313227133072009275050919763539687096992210016546796797704349741345557153320208816475780837683598798806995736485917772194071785549756506722285930476683206838879306350606557232138597104275614693076297264478712276007156979370204231972985899635401897011846031047041773420436856324729922399764790172031229462819164158439977662027070330462650314158000390320997456659145277906073179151477828273580277879576970127633131620511835889031838369678898678769596904941491830281603754047274460458604971478761098619903217182051714705207471518294744561038082436759366453111852868838116994217115505185618030051551259521132296494001659595713888336490694078530968332731179261555093121728337805683715935215571514925707088246550207213687991414808147343505475316980560571792681766183941416568619225709992307385665352857868795909933643801540606124018293601318408351972601711659457601060694609086777723322858595679229049358106780932775934856558712790851097399546342617256950069190861463654762735977415428453111761933191218852807841951382359020021426662726914278471601778639167074002827392040263598428773162181286179153888725672043716780593689058553335695216548979634754680446548987802006189606238625576891432083006854780594486073209334451735374572168078563486091552718527239411970714780610735169368348472612120240861941181698999809598746345180668601508884751721951028678213287297411416600751225131821249948269912571908463300927404257939064035252065960551820001379740805986760226405542766854811436609436271029687138471263286397829540550272545258284794118894032994826111336932936397323721224031067453379167789164676898832046852415248175190057014760826025677667651122808820129927577354982305302109926023915219553380062306339012664821795978693933864034475437980360397160367979899275651745991298592818656816628182885606389698938687040287197251661826980978727084086983970446986411725633059865413676689754512583035896412350409242482786282685464313420411914523458177954696936799618488047852607876336007899325915998441054593012094272232911495584217855615149876831905570108528537535119212505170485801150296505192239777663488013739466389769609721350966490234544989034403389312780803939221419222876580984164014269169061908380400719115504433488635032766427456560038335106746090369900913161063772379725011279879624799126075334002533095855225821095363328029317418121813705325905819531013106862591470144707616947130655748824568130914833083382153744171210265366378816943104064389567881370777144640725091603810341743394498962855840877086616382210640176895599502682379206615533091747418092412724076114754753177698302784550713022635652403579345942860968249512960835866163144123687632135160063134942836202492928278555877789377410519812927728567866185634021764949560068955391863172841343981142781414051697347048269933816398535996735764442542305110292538896277876584883799241851636859908308583076903235334095487266174099647760022019090589933407355892939509778265805325951262811733121488561868047603595092579700215375593511578287335732837779569027583484605716511200556448116986576565096332873757121689549370084827119346379124393526846597373143742184613014449195590015392855606091967040412339990611923246806769321575346631144297463492906806086839560846189084819116941958877576900358863963063927686851453000087745435810053534118485475409529820095418668651457135757982014906028374870807694095460623361762384752064156056126925347405231301477212023564202078452664849221370338576954260464631675642882730925390643616816697292835794762121114921983400035480465622711761138151453427989749462884114390438203119615239107453046909882952575537189509547986591920608236525233192245939946953741783390102538840545053456878429048840758732590578108034920029349312004764879269141434059132515458066976408134260706203718305181176212056029487301815386131157662168619656141514979908763373234617964282280889139861264748654949862988563544730462689974896409728503661156088365268205633423528754564410186146231637717862820601776209718675708541039040609832333367117842348954898994551038987799404257405056603164292617546802893337320650089787549913500353783866047701101193690769334753296334271905263363298279824606502142937575396159257779519586616381403287734277595185872250973672691013256050995462044314193553062719626583440939332352162203257694015165404882502105759492914892649925660798011031973507816432230326470490786037702805634652119741546520031298051447571275984231245502542636161139498319481630723950933130627877761304879204915031780890300935311137951368017673110735971489773304395882363723409697076924904475653267084592237051918461716772016830963749946841252188106470037500745248916287612339682799939204769460462461968006305272176384836580613705466723705376505522431453312627976243827709161590382437371023804735917013651184858737547617983584249699175757772228721294434588882682915354716819241708400788019610328460982429509788532887306388602790871866721192006167129812985196758247739383224559518749593622534893050648425033232260100486269088006975397583645956616310433416012488615198935734613274724958266108595525003399803228165691183748043085940746443037343037247435176973831067335296491010009789722948075269177701712295302209336593097820401954838130271725522195814527656513305364758563638301400629978294821966969320974779787881649499536506730515655711346027727267594623114489419045521351552784172298933135085836016817145090375635580674725374358969071513773972615113033762821034188046407443396114568035590694460388316399741054396248703139658570932665191785495615934451850375325168167607167594388249970764958765479972312276618945671588190287910216363568147774123097491373488815274334654253349894122200915868889199637315274837155037471846184255000086290472138722163599365795677077612806017724680467692073061565165314373895393232501996643591972065305801017635763609099385876611359494789634852262877862497971847633821836558243430244828282013309196870378012106027996024132527201857369409575390786744988260229348427589127187627560693891553125717561254938047207773202430225665394514495056567945253755336332158400296763714044745125385641092702569037251316338782842391072120976259382811034191032473216525640358172773661409424394258296407814567604287711590741325899756840284853626172309272040583306984554889948788724045590294421780752399591932265029951561885564081011800759440465682333984658329670688023142744519846841320783121771613844550117996271848862820819318380598010562393533119677466643686148862313361482559332693091787146736977380141861286167544242433193007811195540855087823111366707111770015830576376901108807397410474780747314722177205062700403753141170629317086768816181709528673585127677193490972946714444423259503468576245749819976125072631805713552942941899911438658078361067471415913897303064470094228594924246719645998756211061993600620482134236721788727347386814972026276888234591377354465664662773438321845535819657247387228798442388936237093684257459299332476680867315268140047724467965174566616474873518503172272599839804908273070593336072090601350502463617482655967328486264587820818584577466996597649936772455419364428210882244293282339313074114884818579435323403527900746347037250900034508441179438491629696998194151934524039248002238805883036393172224227230119736480829555770270605614412392621972047043720996703137664339949865329029920669380406861303742506113725587910821756117314552806408859508018414559097230922461228106169645115463021345113205467992119336013975546789795445088321149106971341195959446969212654419512212127912253691504215061958675488695072158630170518295793222797602608935569172510583227185862271411665319645132512718702748985003609262416259109998028024722031969539420980468569485035727177600258442133539779990179033424552666256312858738716586673053099632882735367819504193273912746443112508851227522840077327882999001951836571836106778620501725517770917667707926747322953535832416122793524847598614785652598232333851213986986274901530282472073945725137920627173263185873338997326034952873848582000186803105499212325793226183804855461307909179441605528858893282301887172141439027226913278041598465111902627523111021667595315198428626273669550155690951336354557448245955958481712382891346608612457681249480761305502868998005336812724589000139297800868246224116967243970739173542177359183559708558497167246631909306038936140575489152267783715326013476609468672420577932134006990801833426123422464844238866162019818879099922082129804266899211027619178189748325111995175712261623701952499745240074794414085779215037443016164359818022697241874037531606503221538722687139653476124967636042458243336956257984772516083140802862106286278779396650973407481282764220525503105901010346071421315729838823213985224430195073415779418036968324719025806863130317480778095261235439410345279986090967172721861357553634665185332974816251784416387383037263418561063875811732968718069184995004614728272933758541017542681481748031759945349998938217179190175394217709153544774929401317085601585057937134905112166595969541306522584916112241103937307593390858792200830812851718042277108309696292208412657103848849444797700967912482540073528018021396977523247907605814912075846949384812184469190375504501494674001157995300468743370106332544704743425785356414959375221878339366115642958299703137015042932841378461153460088732602889911368416321061961966110235752746957097567793956975686492776167983665319342567456679327501709389662530806639441952733054009609165172954838971785506235442815376133270670925763678563691746423749448670091008780971259517853044045248144224934308758996026003395470539451623093002744911160673157552941774770819090383353434183682917551693592322771406793158150936474603846356444049042122308717249581190617198762094660411703660545323320882417252540397486237739393310832020190404321099911000024352150295929080300137915125174041533175736319398220533879586181299051055561176652371843883820349909398359991218842153903160524769810286652173419285911409500383289609984290666591202943775423068046390192992476382186663968293489071488660564980689438438897726174026480651902611381718193100186972651992056269949176294422811276065307829359055869565741961556270584973072826666834553471308206535171882188447894093763092276829987950534389175260828018182041403256406178034873973109348740979818495431599385829142476993964224487804946485900902821916114556895596780008590196856174142891694574062434637670424723481083929242054195680657126290125599219904296558607000191590663720872717359251163387902573121256129540970569932152516187123823066427684248872084098934887120060445364438962551408642657387049824582522879627312164540660868315447355968978124552445564476681420020176288596445019963686140305186865892362251218475634382109133244567830398699497267467852975872049967876474131407746861211488107938818601878754278979989939566357398218472949559231767735597566602789977707207389582571859302289085486223871719938940432891418499047603097122696171169674304911521598198107282492117795378272409533054388334285514558584582412514681080373770413249035801057253406441655255644294060646461049519214695025384766937280755566854110989423313078583437367672587340145790824437981580632516194644529475822435031969038398793200098683370551713543863962650761354326851909543251067183159228915647143263378499015418157668244460224115006021654544925704603740207552918005573070286380635715514809965246027315702811359291874301013964599108377729778509516779868707325502756709102661221862464074539077516352272376819871955592364016667721358699600450817699680996538101119052166209012782937427212668955716579167436364625038252011033030552041233092698147553004526287534049622849380413593460831736831066171023484521990679402895245472551289975424520324441906576022924666494492561708110578897691448222983862289455884330631184461330194153526861180997078641213259195305892108565855010215184179087074010290875077874621533076530344117863250821042185925714030487923829948516224735791015754727728124146312353624021720792069342584417117521824493791357421610910139445270376320631645813683831847463353916822633325685183022646224037045385926202827643651898912649501205118901449431585711810729981498433153330029025800690922224180904030662789030837915925595372942319628297293606378990492519462603635860506503915210356570593402102479470377024781763435285277400805565169928219194198988975280590468132751573965345795607147686940773143507706537020680990973154473596580140000139917884467708698985379081499210128752866143129833461336072736110935365222826909333901538027326238216248298261542785964000957950611431020172936510959467286448799303246738312519502393503632574525728063158535761654691880252393195505537558217521213138066130155072915148017430458012551215420203501530399700931531175667946565370429747805183138139950993464004623031288010405138765689318618919914828306990293393190082247119813582395503810220396378041688711241166365153627722203592714171488095533786576751342001301071140544183275480765881042565622452919012385452621853518751703393230473224302203996628848148805430320655446577318395329146337336388578625951890336704175045387856692276527518532742585329823940072180085960045747885013841442354461180036789570871731394840120235155432748397352938172414620756172972636370768223110924133358444204585690791653400533384128195292422189693413033309920582870347575466165357004158291180100235198289516458231876620863253641413537462509933522594569894325287061528681091984881405277696882579763021630506525087304594423384218253849410270180430259855272704748810471532030555282152796362099144846250314933718605919825323748217570439800396757346002970903658863406184673213684874220009635476510527817619477582096613392048545619251638926237555594095918044854533016668528616122170139474117974684773932501892973642126762007486808542636064994372137684017665497095638219524957932340134552227440718888737422459774500250964037947216408998982396419459942109792898902814010937483106806978393357548786003644012743482925805258542914499424852628889510808710203531560768732628615046421452614120328630788605367076134781790592963370406423312348735827657229419797255377400387284015745281577213006677957742541147562853294645167941169997391700118459994650319099758398938578030927768793307530448367073113039664099706608469029060034237794278312133257865837811829112191866167561944410634607174299616286188108667091153264534576993167303991938867524330230140303724885306471634276952399714170560653763593546850647269382028538179868982193385158984164084865487860448702068548960372859478110582768728935232202107199084798725909117766558918854307974175424421888179137905718829368888714180449730438741503588717452149659786332733821520738783101487331730227736025587921564612108427982430927245632010551001142803108767077323950906126065055548453793052933760302785646460176221434538128393542897148973467623475139597187859762733113919031445033523843858761542646512280688981375077526044740701304943754092872642597708481512083654292781716624098931420379009340656404431337540602775513288429284760542688212098017540525030606427636855276628456944424994444995350129528161305960460533649610763585825359027260646002917271877256521298475401158711555318729889971891751398661127297615779390747689681273999053833751287632893431260440346535283139834670948779132643859342825634404016258494468831185347778202756381614988315657768093873876028541079292529706081827290026539859966075904702804071543209598482919373895547241094581688075113434050541881349442652390619351325991568535911241180540556544005995988342575211613847610470478026967078298486193931811964717983266343909255359759551860940114945614693099648864444548064885795954626155292725808226521250475752541875213692324925592163538121467331543607483817495648458639224356490653449417300693057792537752019210833789317754787932829634529669564604700288598044509261060350781027614671141611437671305095088472324917472953039616787001488108557768926096026308759916855887829344421052754301660836221849154820493399327038121729010782558085733929472770685403863376367844538806193387840170626833210103188611384552749608014176150369949647105515119843676510151977653572155829169546110477942422899275330583358351911010539950121136721798427345225150229129629115693676422676545924952607233102810431934711922658043617061743423462128038237294376989565806564670310739168535141819570145585964252316888791385044361557565698952566433514093854444944653227424440426532655558212361258479798539667008841564526792562925910302993640630047486031829777156062396405782812810175024455261437396885432811549062885556489479580351726404466643791695301732532153985327399029252398417799231080636938752862511387294102655826892588826597131730129979242291825429518328191810812074784146493722623985237675384389369476145154873619013494073879776541364670769957670265216829288089413109610181058273076983066136161990285075203105990667247482169865740597199685797181670264704385667248740077375832333220896380701646224734130864650162026897972579668014206102705155714164483615973439809471225513492394212823246756170676463514663629771920980647907056747179052035957317857420080988438687410206043922394929315561865577593987472829861053713388484668162865233481556191502561708484917307673894374854973376501025236132248560344838324233323967480467710646188553288182440955499969641775312127540905405935876887468941044073534748419183535877863593485872183282999032191914985240281424388845303976249157516924150889611622521792520726104963772695574072511800545307855084888857178020106448716310580251609383076005424810549038337016072005904786319081335219512513342060025167003763293264629965546295193599581229031386322558653098613726140907686882453429161774525267050052420226526889447270324725520087482071780195363996162957378932514159395030654475948256904088219690740387734373769413261712557188232238170744819983366282198155758478054464590720880731341925775776260803595099655428543963990642825913202683471038561158972245415374757426208049391933359595038644651143350182786061415685237609734215198966508445374450597533889895660552652700600827342380703629401484413787771851518238483535414559967186954721535507675776987374721329681533985670581815041994791021191224455063575746008928281940776105194504635621497967931457815098058001000086608180273942208620067232881220756635486025548237739453324522706923666660702726376099412404055343887665672761249703990253428302022735086918182165570393188283547432655780332626982548907583607769832240302563436001988401286257216913663929538476447083832040236978111389474210161898287879542821012198876662487720850018185874591030540323607014488207443351651202420737193640727844168302593020105743773091934055715180878491091459442958745548623151663570789883888129821104532354494189799382367727031695620421822118541060664802938720800351287368562401304799956341949593189765733169258619263375075354697326563982011538993941922658901936336163009159049067993881766349790485694213220579809755956648536450329598169888956186874435687334575349617375142043807079460174644341833134090817785532095010971930705772304742058691508591461964103372248278825100177424052145081945238864759389959201377834597838773822968404861252639937025476782006091560415940867448421604591961720716713590235785657319926201140053171186666072360194221339749272008198139394238412319769233008783236947631032284669754049811190796355956039291106145630065961780267968292423201618368961626741673636346717469737421790864555785861495858203479322852780137123305291018622697570194606849464571928633169848518445479296148276143043042138179781124302020683046204056234145407343196900175894208268233152362399393159937394066192572089247470034909817796382488068495597726373507718823214587176996963191084297313448422462193954256637970095812006194980723422541391713100784438239796674325988222403364432138897991650136867227495517660385804757408358638036399660674219774883589804289788835572255114845845189647672749297838058360529465251118681273631921080049508493304600971172424503584486510741747605900279199892489589341839952043609258892747970603015536303136229059660350952880115725772663839734442896152942442342844806984732034018584506894793328152150126185826407720222053250720233082647206332869611314019716541217549696273032008248522499575741159878193242743973513542744648660270701487518715318958317348934703556926398253516508463632166249411822690048924209119684556848446214093624693853712460087356399661306761998730633270809853946678063279065579512339309760751827517844675560916560116619177151609617871014027182308171823328588712467235580354009156567092080053649422962549360119171260972567838045696612004254278785688176473247541732068025507446917781343424664589565909742721371655927612725830143488768913679959173950361408324880423796751104025974278074747842119934872656288692081110116517452408198179317276065689287905634926153004718179230593654108195071348921113870510850951231491635136031139954179965649174843536774707168895671150200374636306717199472975956420396618987116490892967881149729018668888243887621259440667319973869277504948180220225549678245744235937511110139315191023119545606125419119246357915053820767530335813953567839838622534562734697315005884619969797382279481981126348934913760087917617060130301309185976606361252938880636021713595158257917557898541067205351472851232042790676287039949769762401522736698297943570608416188378756285649807493145713757237659693322060814889856764896966945337900939681296121162300313616775277212431712732901534919244633448988012141475587164186140216519619968909665617600501545672382787606535301310505800086761297031243174114348096283886216726470004927568590231538664875001597261889316971973264686093292662814549865738393268446845730152074053944222121576087881898548522494496330936263769424420990086342575850783040922483368292690553798009919996640656724633342124628531469665646035840943835862514727669907234038596754600608295123434749408931652579071982363422506668968243836066613200351156687256405339643969844512368669038725103710837339224140873482710677851831195310895851241081821818707955172413031529810906737605995608001828563091521779762254079764453914201900512910250775752589406430316034990798892143410900629460855141588999038791224725104611865639432077995094732830076576494369314912513515665558084470236000665211333198041801954924036471705625052839126023321953470339045377230517882575377924682044806566792153704910800504556750828035423769250891096240283025841552384589206546295933570996815163659214325487428658157316450435664165072086615003162124778933789656428114993044138122858213580568541977112231046074554123730456182653266359916451397194713185256092293092500503316825763089207841571178518558162894099269564199090485725200228575989350637870475088430614132451169729687060671028118419283654986859018146003803930093149159513051563840595114605383249720469105336671822860994976530620349693394012756955625318883871898761976298050828064366739518334901849761934792415920096439973821207228348352680602306460742417597835635950996618237941608654226446439114506123937525325197976014792336570436474963249413679049336325443777047698829088282496412276483073153954512548519015907910650098539927261353815408856267734277730425144714860789929680257476015948885293565333484359902863785733188759147286127977299888556531897233157597241313544639842681752037372567047653149326694869117032017187381793841409840638259453094046757311930019148947937671638174399026929073769745130289570587225487379124535337705242430152565716132967332329851900544388542998385364572436233864442525278101442166226293711282998427349196276843408774339385369850507162537038395322675370689850519151726260928134589542374158110042473660946014360611559015713877723098438074953933397095332134470571998377266018878028473445574201099479865958587984937757250058938601678920974960484547893225931509662837291700182614690497509159542216060372981958546081789799705230840281617276906500663963574872513089270670427700906074975845724842268247035934310865497777068710244384799482078943528682077854481961093494096446184727088297067356714092315387922932545128242202731526138757914284356709338013640184795838267508703966869600428502939889808436486265445240447064271569730746973954964541160334549944318803721333517732342102205319724009456516473464536380845670444867564966051193943185600187776580426379173164686883064127657183227603263370122935554567687716548697583556199402397269723787610233333801205532478812251028769455873291116068754689727328586270031246223414052559490038516741752650590500963908527515974985847260484616465037940764387064056982328533365991720807185997636182862123554635639752624197048540157470912671088188837625528199183163134145206827163900916327957849801535649739940258415742387018526804319363268955879121622468198681729016010083757019291013685448976146939446847166941355716922953428731621562412402739889864667935518072546197155520418743784209724257490095191179763871342247437419930977315571176411414629790380256962577957315934381063947641680768764003915458555774673061800265665430786490316911091391446164730042674551283611149082015392253165638842433880057925593956439948794588249133892846018743669099455132259833239647370609731129564780259331888480339065609968784000403820662823158198732143808080092672397551297267641698288540855165342236871444833897388817269846202467742872743168535470440851403716026517801490822754184991307461071478026440679458001139291504621919301701893223206873047554977847590815153637611122371944026874656601876545698393078090471278011811230217716956856855297177025191956702432034346821326647057764265541252714885132036034113774198997258775984629051469909864029385588531385030274091436603950512688068331946929332997312368487083558441269127774013675363968692929451880089308760987361246015216258533363256554212883564616194643755569507396905475404599683100489512543625346926835506951022686956801725249292993269880511580893908931234126096298099710209406410591611551740731393894952116638864280821292260835084284945282844698597646573932332715746085878383742692013896744455001275271019936970978385280566303398082273583991219170218940796787458438739624128985875945959294925418534628413655163365190757375934409928589788903982264914943890297838879349715114243601170257365139065346110816428853616225988219342104451313924601458274534583276513216067167613284396126791450861947095816739572957022169342372651994102012977066497568580107865047117898096569092029672684520121517568920722995705844077303159970236463976321716990556525912425273445768907526548645247582365152169495887694502075036051918748634692518964132218826256391984664505417255087905687563984410254886626717151694691219026837114065427852410326969280000032420773628048826997015958285753701740525128972435270424292064242835327041260941689331002279136929587660962332225575723525820452946504698561545714063154430699955814146238828279698098600252792125602398184282928969771362791087060400279198606838483498995046958825671012420292095636077230777035240664297798716084153636132162808117868142264486074818194021267002956736207904523441245612453083140750411383012573892509563421931400782813266849704402708353154440185765967284790424256241258246383665344761910207378366980679785115570704015749449392732260656051666204351652780447551510849646456625708073106103436235192516476571143224088357051197251433516817505421304656902910851372036301216543232608667762997323267306889340114550388654604606927279213223711088610046141826506105152691227024455247141722305245333718009708837602702449311486195539427814983602408458586317689789709420785570325069929054996023062222226278416892561561305938409564823151624865354243220476813299141009704931815568566864745546227854258118824000990405826529350230215080375795556677560183611483481340895157809130720806233585560071071869681801372123324261224938366291237334821880204477562151435302326082090175207552079488509571499342369434053250491550181501728349563051273888417532981325836834346473671903975332402017508847398523541305537595033069730193714956272652118211218782205205588901598100316860429583262659387247729056435242101692602375821899326240112016938918997430043047008590236382678516782788784252503473507546979108902853770706483460894830995395812450399762560347595576899280579824036569856103703320741085171402724614025749957783271678310172439825423350332951035033264467179369976058264793589824164545489650117598421661431936353113375178800623722400417746676196470258420540289045374233953963991533405999849498686398288343437663594795387017124616856719958454828892479919307388174084525761550328354076993730136409676686805657659898919726189714909984322904745916940766293220373747600532352428756525060241887657919727189775909698796706746869339704907931159425001820738901538635626988760555209784409612859527353220996332161945343461724577180933701344802848259238737859165598217310228880785184312900586649650512600361555986738813293176828288293204548419428403362739938016646295400822231182925632946253926320180086939211242226775875850138686906992772830922224342995969662870590407542069398768384245889572548873061504427114910165190834260255318385048420306768803519908694092802143958339786093782428433846740643936711102791383845491409717913758919370183297601146741556310170773516089141274276221361236062650409390205643377308051247668329611065533464971924677093260984740484285828052251901641154994549437005570984605675533355658546236520731934109258592156102026682187564275490690544170460106201978801633530699126003252717906964386120943355625011736914734404197524862230074856660133287630549751868921296348553954019681469619330682100759314939095615535733073385120588481918283903829435596597385158748883334452160517694929421084370900197606200982049347184292184626767172532135314077529455289792757449310640927923891286659580120427006250693344623388067800342735206209013250079902506064440364335455588206615935361560749092085640011475236811702325113073686340916190757541160082351704081454149878688472677764898411962590563840322408394778678084335509111884540643483492681056872999322958592033066634966651003135453505150252366958601074121170412031505261161117760170138732584624444766767477915944151971401430785648238583970220236129187732804007979888778550915672733109694133641051440775563356226703485129755202194596560022844339041196383844257308086456201941899048147282780325565103858163091163947649826694386214828074295620527954208425565288265186307684191962271471420049716357075561368794811079413773341017908720025862387081267318287016946246111434560037754708604192510593832975004758383035541658966910808265158269831913406498521229611964876101470784283398706254220049297889040231892372479785217819714662116722317804378560707609096074078362543783150424800065532546779069266622992481523958640671812531090759471686331695319664391376253468735430417114039886270501381695873822872521351540640682080007653855579258215023432237646922119386983029195474818976840647808301237265084428438829596814276823234152396105692657694803521468957840639040895562570933939944746385616277626165442878534715224371918179650789042507714571014944826934766352328742188742785038357351214737547214763158431310049624937473859274746161351834196657917701281195522642287240436576743272867683967829846657091258977113612448774850850699621091075170219974722083730289157183381211954469395088384530934349489202496376759407753665884044069044523403224041305085355189358756117919700504921205803467154078942694061961716512280444497849289834771231586571383343468251630130854572122511106495206111447762175418138867833040966947548255891164890261403526350071745546351977653217467476070036839969144737504798043383995284115600699029417232913342004605721754810180179693773003331953623614934615834977521417235886155239320493322944169903266921943685297452952290850703799972063622497232277714388901953842165340467231222362292992636413230320147472909720388763446367789490651274806365445785416451234746492374850925404215018840179587601203853787899268651213539705086746210729969124713401041917882999989121666055110146615659481935982399077080434999354192247885766934689834893585700433920416070273968431235265992579652247500985516274868745248803874636270482386982312017020233027297187261327287459960369519871730128059107862517980132859742841496070154770576846260179873702082897746188766467405503966340988656358996435385634233287556566783063056426158438742586913028827655383926688354397313152338912692355446397844978677830665536165259341977575118342957613339541825226935626035808887285988031057189646181955807719030457977628536848107090753068956062354673361848222710920133046090048144361768729128243446478794774013108443678614311284603750168772585450571204758273959948700875762029882257123965789089718912646369224351052207366544038918137167186835608707939881696284593313815262024315595777227171514809225980099178640651780663441020438876266792201785326233132704820588200669595450523819049033150394975692057755445537209427694343709697623418328921052666001666614392729474988147501643908624231392975260393781006137460898105144759921800081121575268155502354889235514323476129325159515548218464555784691941880207477627819165657425033712511141807186106828047565023843742633041232364992393113902748682930880346761714409875845887391099483254218455403942334891699679445608153587649527664222727910872005773750967063852803521268710177085156056682360360604789566357760804796168380006982591484184129089518591969650283343727412489774560549876598227720046883256483886708808557940115875850840855224515386257506413913357978441366706994492724002839919600006477162752513796692332347723937530677764475899610251909111139061511867375104531946778988935760115185942783957607259853223105467913161381204450841486915302164770545601029514802920149514180047889298478226278945328609905181708104156291647182735481659984978610784952774712569861235079605775577711302855804751999560211770228029594622805055415795718186593957917694122769440505653299024630516439974929022451127836023525666335622569855140807837016711031830861523574201783413248739726549928272032632021464273185513820600877433514370167868905139446161307446916783345625540313227499834483672186934973780034991872241123372043868963437095271705476864728948929135580351154642396259483119502203357164246650016927852243016294268657943756387619196506279532866236473794215178668911708226861558279175193853412510893423508788489709617304609389901293551573508104677636245590695253059659599007999363978658102329236937906576006390556703339824883796604183417989260019235498891139395944971679525716137000288012780090940282105285042743052606632148551399554765406840082644356603685830808825036570227354578313472358832481745746293916587263163371568047237109543390087213223220317884615243564664673896916785120809435571767659087250097314038679918565138416200073215518519454892150409057669637096223063142816276977377469068178331005128084852429661010252803840212804448185160520300480488805197897017524064839804774344060760664832921074423830088718648316223348000008047550802623258262030577683727551297412588414009589539069098744620835800850416993905588436709773411614966360192085371413678009658497852587284522139423827843531392785580049032210516802955173549337934281315622090312085848820909728308215633493202158547507256052781641735675048347325628522242921437552604537606451258913329862715386043101468021924161131748054554965523806518242750671477250097203220255973289161837562672045128490470750135710258327144721878435150736802295300088029926379251439555689893996576027757815734128691050723983936192647920954214481348428025543783968952124692910582320446616922885321486106778221769471737306659893525660607284240028028865419278045455637221071441565392085799779266120873041221804795796053068647999378421846911881606120422990681899082185730400160821050722986095318025610695768152903895434878068376661971887173497793144801657797485347369864012385091885012306748078577240573860192913844579582671939533309209126922501094667499457052763276806815173922853629708056381207264623213765268592908735243482472005482067033646860320568799459085705294974724849614410768520143088567173533709174442502663799536070349976456895437289655472001628470311406602418207257999814369031369264958193857899911669090510150113181340042296981182124989617580772844927951322438033192800071693346223304578578492972013659264445046372279738547779142893271761429254198666627323582404959653919495393683681643300194072468025175470096286388904203701185302726766649837394078049448218293493695316343749398039679380028539191735376034280428879378625406998364935735900314279161566425562456137695428568931163605956824209588106451932208963012544938998417803889829291805114954437585339007646566989043659192661121649450504276838900155315190635194128476758171250888129506546367256080123222785461778198251802159925929819399073174326879902003826283820542773285911160781787600632910954288507082881012710047512849983853531743804932208517576413446027892190789619473471551283719617869841640901843411246044732037791392655548702127430200941689437429088286693401595030687007432913725328743177582262832016178928462452200592064114754782865902120705878945806164609787135624256651742784913312738873546137554909729896357462633731850725847288938431995485641485889330231312922033567074134053582501294405653454228510584913364320468254837419448472401040658639540840144815582517494092227005503274805983099253037954142744455959689073559041705357861998548848035606767334615034626518665010430586471823344179054601998979177869373110521805469189740548276504529056735078194345591563058501043983776978056707545717870056852505628919841253705580721045388714395545507611401594009415189120852073460728038069733028094354958930621539869007833234787099197104385947569405819239307796549213588278008662609469531985892671379723137784461013134235118533566854508737311797648965855873088447550824405457127042631940412339329054192992362538308963395670858092876333828983108282130108717456233108285513039963192213998578438655106759363890225254711576397375423416168180512500562885495663759102407493789237648959371975529149692097860958410388666293470515073284132270178732290760313697091333120355967062187101846125096916424061748338470165653827484394128704627410393711796878386951670943295345900661755473772598434411491559222786593699410859280420768943000650698570482573701437297541101456138035133959101545796395780896068970806572860669711516780839412889442410017713510823685880518118054940835557662096858993822250754618968237230072023739968107685222187842414412507766424461130237369661059654482554440108259037765325079105178482279043739197334497762075971053967460877087771867372552327142096533378210760929032134239138830941072351657935402755508729951113658081056825080635198755378597351000297693502110957612762425400634979481544734408654660973248190044266002902378020948731110640091958701907018610233475223603379149569624082781359652953816618056271319544287639238619392229375517254831671809981769202223035903213413235675580763357613802910547365871632952026560816535364057282774595677451474482997176264179470184513147596413957112349147085765270164610454790425715814015166869874768564609068278037366690232578322043679646398469607318199199745474529608494385999029099239658232253785069242470909841623562697136330532002478636420950087204971312596899245091567560248415042874750304864731111250221286085729288433172110168218727594175732366723240039369267603960194782494751161068767974824104364148874270215060394716957907498073216074304785520011358755351940102918543422340958123348718699305944633517296335051592684057352445437426074099193502699060273883584596119891631028616053373652653933000748558203415238877772151911560903330367193202101160830942421656424993434502273197818917248861758584847119892681255076565812944260454760182572736023796994009377290117137296313250254297361065596029761481627129194759056275309400658510171084531525787392561844597067189144445768583288747268140250689242097248643626079336964477181210797434931384479976718546257911605549366641217491899285532942824617808917484749696114544946614685593698544792527987596813381312662658447178385609084884496691301191796678578054570045485665529242175250532025027672563150256540412446566648119401396194793083571871489938379082239972085591145167795684806681232987740661833406367351942522671554872469418467626140157146069767352124494155781091043535682333073297623449086930052443998742723067770889795793306047062897663749545507115939935679326765534198456089471688549629835414449995907849908597074729002753917938238845629232752095596392911405442075361666687852021076312794980730880679667991589031349649062084306629688782666070460914633042731546461172675426675090776652043514858130571251271729890109986598777740686293755738112469538171816084232128376658212068522755853204083609311238263127566960882549775590561743245673321368723174456955338030447209723472649392678498442882811740286977822692125015771934571871293714528861985026290716880955059110559421242269449053291522571273486927991591813990878622634053317337607804662073214898047227837309897290172857702910853826707170978991481488161373804199493437925751567777030409077024053809927482952212965223228387274176801640330737707259708049709302888332488457630699358483213358633068281116723130428259589735522882640207108122513770836092002757356802861928319524305235334434940069596439507495119534140875142528422830306560256611605933417056995669003999326591851159259714493208835029493936762885048260637246035203887113326964955297742094004777286193295789743428988208468180405921655423447222162292694347056500049380166551139254468583158993921415289191543843058362191901435905172616450981788789702824302486912265756873553994601953707332030120574621683058304019466237166053501201250867634864338687519321564931516475823491734360163096036841129819244769134598633761197442618431870001068707646163111054989059485662254095931635842727832002868487714081677991030241457121050063203185651789806074895179859405340039084903473608179065021546269700335942657476968796885075909528685184844598204441897586305578408009608347424053820348290796287171359551700836722680627572288294483795997458158871339381888147623769127340615446651585981989873679381831655034470609825576427850804467012757200277368781768039511624478886051177469590699691347181608909483474392685023343792189509434761241395899462900706499440101066800749440750624622496486348622957639982524931652929847537943584318041675213443053864356243884368270142502396395500544330448896237771504423431754415170068955784875494665818031723967051809627333369861172714330096071980476205918617592769465103196319584769618254197799226984436484341550650969614698250398769668334397108371328971072246431314703603298548721116892301567029795260971806159485161915720542799357035262916930981424814582235588155139270917473302065879268159485187503219531787592597771377517939479723908649134534248784781509371126801845386321170698028015775568025405466438900065665255556466212466136302085067412567554125635631355232198464938486879572581771196930575067192752114909687636482540653794702344731266590227485259585965026444672271435457226468299467654757294143566155208081661724997744730967598305779275392520460245869662194359302244130811265126622716394014486478226095496319417663011267628807816505690837486178008256710027500494488735610272999378686902759483422563808121900617941864113140375681635172988102990345616192079902501184476185113794695957385928221481350707486804073891618885672908619817673397243620749344767718197725130093882938205536968302134632027827293353988071789634079787638914774931268510767181373391904610364706865027984189141349935491647050188675903699311143079632099146920515427083187215286393525350114284546583031044041298584936640448892020945811839964568727904416550938473071024100372370936686088944348112160719715844562617985910947877871192915430494147176608835498243555876823563090368825924814140490396292881778886784880359682608906874470633673988493975998589292708874239984111672306251899936440285908396150117433942399680386180139154876449718472382808635006413045541117143376486511674747936597459789351545901796671648737915243615597350807534605278553795970996861870273337775239551261555049952450697566243155683108373075152399194071721906713055350933826228045640652216853063851196336748130731351051469717695058598673532118474159303753485638774925455768148316629560089853934653219881921663312625729472604981134914213928858870906083501089835904806184663015555657463980663945332974048926348722851068812572415264554256523084624335624971714838834242420542206405237545171442164681938105510300873869425237535776849302126740799182317525478650503114882539911297509541765162913430853610120357412865205650068391020292432309800498009259639996741369625959966011152587093089584305816074944861217966270172018201891001416622987217883267171194839283199567428557023140483975592926841719897913448668375882746802015374186169651119996485903248857695577128096359494516663440255789427292560650448480479139712266808537800265769861742915014841851230948523963549744458982881237428576672367502834254394746810403627747202146593304211310345579012807957629937938774578711888152598938595041483258625567431287043432641992725338082995291575821217044984262576535683513252799941262110062788776855312146114513665898418542649510520777004613040764640011968773318698774656104491832765534936978863488978892413495005037781263252229392630832527792314371160771617765633418076412001055992180018502332413457170585272756844469525610588353495033870339332253979725487161822945021971561312858816253076509177339812106731255135598930354307048639127163731279176674399632264104810722484197546060111018806259840443151385964479130093487181491099507878297813938133571985475029188955529627054810238453795173856652202292318048601761972930697282397784444339145781668088056683485776201451818309137693194321639039702889399006645876508376978418444134449624524700067658785200509720323930203375259434530080511035465985906186109339480069952213120003187445560863081132966986788629966470108726849699094647832134765137113047328876146273969261890951649477094396630028224662648315797538895625591552414185406821000374670264211435346999896535306617159385462126650889710499433145016245606668546945312057157594004919563629092958026233595116406958365557718495367345428982834926057867250706185144831293136490619772039232746780326142194122951384189485014773421208214793799950647109950146680304574016673277095625608926250743480474108509135450637183669071139938569539638918721323202782420989714854372266541302377104133808216498898298907852308257871557638385624159667469219975537641737056044204777508497549778464958980163378200647993311419277177577711423338344446204060931106612048928175665867015648818068202683448480002592342223493011438423419527558358924878435997107820374237755605995035071153224823309591979697092274353322094872303487154177003147169367758666241626110077476965322659785543507023087421160647303777253376251422020949045949128213233258742237234975572179397944584487434473344279951125120122073239411790088791473218316480987701670384896091267156942366890919910933193446210207185566030893685493232508369560338112043077934516935279508259263633467020103675816667727558669235767314667650919671615262924823691551240459361844564876271721671698853707674288244344741011366106496440057792959006403796281762099386772675528932603217948318251901713679405921265729215017395449522552556293133718635709398004275015716503901326559261233661605950313307118004740228223161381561943027577236737406930418982136812649540772497122785495905770100282654196065849501782333875267787284912119455318465194102249768502398347002993948385839653647783966708028751895698653994794194767178534687827376764915761784230689093308828487223140388665686123242923681138867399269477156210147517123919875483175172986975145413838217300662801058256171185479289352627968388233198831798923240790045013468268922234197372681056299910871318759606015172166764694796046319160378510736083946342148137375267763857200368264453399302399148908448453685395294772448187468820909193690366199851145784748126857413172377297884266015537726296910099661848752609895750036220408482941691189438363532078412017262069948247558013939868155509602220771944770096787374153764503756462550415632005339576811920463464566729463509957571364684866093493323840371872874456972358968040609659980366980413813946837296003353134238777381366667117096096794216544645269500309586164824408946252915955310903816205085388112119565542360326636041570791049662080966384658254835507257351211115776814705505253061907016728016534587359653483591274257644010409936275828909710804000223930254040567473607180691201334290948213517891798532011607429803345356983146509137955932534179772793408918132358770429135782683443996162034709571622776483121151417119992070780105948916931379394043816127315205153308948675418475902339387060102105766159939228038589527783030300753457932803751742994002410497587891766712575597186654412367093611224762727270656221983462668197585100637768798436570400573449032705148982074402762936550570449181587286049283819378031625607444119742517143621902329817153064217743671430929055635446962328599776252388578113042260853605399434873619433503233839273062958173188222113714189290004998263086116656081870265801448487151780466410371573765489587058639652721862576573360996173560169165603089942574590173106478977859102327956720522902588891818737099954568386658874774416842539167067436454459165662376003159588453974472835682076748133029405639753107198405513495795203314022500707755086179328616265673486454240834342738648780342889865171402693376781599463624690105847122214744334095772246775343906051599521836481081848370187579962129315668396045182250040234220727245230806836691002822365335583255990573876183975524119363010083511024795972882594416490141386367019934332260008556551823982749235073703137885113239952368913868981430371112718366152075498939905026277195099610932502280957810005945921209030076109032363068586183858418436786661240745722885365976470981520025465087096501413795041692909392732566115192043305609812040210608125906841753007551216657903575495372220027061421178506958775071351980157099555146462465828589167589794126921400942434509257002920957529406698706353747728607828649282535393817876613018257327544487654485446044265785824818712719165604897279675156748773143852693330481393642011880693932861724265383094806027777002211700116431680250612939977996972340141512181308655101974388991380670699797868313273838843959622174690395374208234996645836816960835985269760062320427126955038531203833684292101059747351137486046953605605137054017263782927046801602567578657559416712314384116983036353269733674754127240035342914537838796950916805653664420319408654093009720650976179123022543042447091258918464663281992802560408515796653889555630138389685992053707160770309128889466223421388853928313057542128709630977182925993377261912363328557101970844903153954329651922324012749981292507415129876887659068511974890506405243404675897789527277736195438885909890463963769535998828038129996455743687883187203617307414767140102031409778326386456174962692396474396210570125624846440341428337607276982568670894663252261889833816052259391887350332130820633297512770093586236635245165606372032781858216245892573343824567927266748949425611512407525471916744162311045580946179679190131272228658988988610837194285622339381205369329521869936775600586452187275299480366144619439570611831386086419239998549678790597534646841907432176760429013238965542476029516159591524945463026996720448555050884361128164335578602584193421998438172826147717069916895720860593015887351418134965623699886019658009913651375055772509635310736117706569696273526312816261399069652986491639345326194075537856405989235963236353192847062052780451551090165594342663216219010306934745390460117616599128284875562099834056697727815324441213542896408137926551115731476449634900307149710587435526694396550614079963091884495457173432089709701824760604292964453196290201147418611620750296741982982971432801657619052489428251619737677277199819695824943143464633866076566112243769464946824636048697503575467582086301741971932502733640408306445528887213612280214675036092996990476891662893179137432885703573831912420820795861435683727709816331046408961094487442665698960327502029482768774881132268567214085750352304172206021081503636105768978981227292994943152818573149079138365080966026102973950071358566367529489983926718946687757769229426418599703483566793610810978291413372676742800432101725390806914019716662221670902684547642809896694545273194455877501185902514289325408245191941432848519495710188279736440192989592212405716243293578401942212341789075370178273588942991126833286115694923485144614839186178878444727293930668008753795981086999176243400255742133516137284762349546905488053756586363910260576017858343310801397680371501910489366562790364101531878831383036789912263601367225311891035315752874704827813459091060561439678494503064363122815014847879644770190271210786135282993607960661405416438150923298279062991286623809243510795893963103814058278736628819710063523012110219326836298902843117252976405264789304063573676321078493831201138970022606465947257964130628854822568308078479229899377016803866602362379164357422421921373414274370087202239927809148666926907191194544426199113402852670676463843230373488566725383472789753215895719565077858469956669448376567855145412658095972984839121124468639622309559416900685366891014031292965256472121724451406797014551288316501257738633786936943299121221624571872489816710567960014255488920925743181250898429837631176439895297658714631257610895310602908922310131818906741146468117520768901502380717590259815320490633820052523210673691583125039710344076799567210743248300435402280416524409332030048229024675557477545222758342449999266013407746590887331622359725936886313357247899695877613105845728811297820226483201508076124774423108400651106965256327741200858279358707983800937425323318364344448813315944502862850041858101009841020911205624503872362400073882832452626738473372222695440277417799755866458981156440698336946873820245808338899082151122608715560584109172229601958521304760217966527549341291039423762726748132714143311335633796395496244643897511786699573270635407085950314670585883662621254295101928384492737716858282098455354383463690740270499078534671952405259177875919380685576664166921015851234372920198859416644474669463378391424405111213692086026253874845844000879778083379903478164007212754037013317962537708148592898471872753065010064652428697636501252044548423863470132307577868811371319331272092843973918487392105043319815357364444757072494379745903286237814790675627419448490664290149939617803566441536324488194195020865719308212992940109203374579752471855124751608266384488263328541700395327068014389395012403865621977268490435268002170203183141935156850100800348496008446537745156630138638326113298924605805253261411054626069849050754212076460351239830661399619063982538367767294276680579504640215937569801901715169711027900175415432854952190502106127614689155526705109965429363075234322183090400846133194013616005957427959734107876475895920038529540485268720358731236635744320721560273649077069740764278976181265829546183870496038076710254658967880723752305544135167350500032562544311924750051818718161382101200431073046487588069304718947386746817199457800243634463963233450964408738991645230050885648626763974546436712447214453123450247034431621113370174428317652947668380208750364703020886636730052199694291380318004006317713610555596593545946926403060983649055403318190641862192481120857933277453823051549734607476067208042072582139936387655228462147026492755178315937539467047742108829357337869895015421809445477075984993507965603798292259513128078103520661002410296827526398360272437849767175661195747995281369648704248818218145663754301811440826511944290142469026179849063505900577843538652568371577513234739734561133830748050147803663080953308623374549518507757861305464958967139754284213443865082586840395287949552880274708256910549136942453598409794224326095620480347662086984883760068025053503695970948815763952255328222649710277432810425281407618906429674252296817365673794616056377052529747427473025752493648225334580922799989505323148680040146772859826450359971698318869891594512731673593402878654527570199159384343765945061693195459920524331501752895212104648468307170104126530325860839478731836117943204283464431648250314225067089053701689075704705318898904112482610506698285593786161580262950071245352075855464815824525996216067607065187385776341448870442979688679743142673241574136615104225672311237933444403530169777517308093205125494779235692350401197224774283069700208582225982627398288956916056849122482838082770430861336052328552348703125141318992679815253490809131567408164218503388843037223613998485886225138933338389254251326240245996570951256792530342099381294744405264317642295971587462155156284069888843445960104481691769610613397904128680926192788929820926428185510592388260664654504433704749473607613500681094631388772989932016365378665585007918789161718516090899860067985994991371454879354082083116699132067409068832798729204739442378554622778733786736027177991504363772836124202211910083887504035053132752147339689332010612328182256818641225567432604817327884964270036458141477926233208736708654502694996518792097349522813552912237802777263742134886090114041767832106359633882870168920927910542268393621037747106592670908923553153659076284357366002943468509327288363829228536744827255194536985420378527674255257098595815682022038348018209270457342479620943087982329727728183508217633298882058868249728831635455449522244702967666408472413261017680080556804076329965584812655404659141775744367897315622759573700615910826344839858110662942104851126712321541991808399377939060088726083592602236277192681456003621164287270621754328040168750454024687232461295685807844587179204727500652362535543274433207903134484378243620320446289839930865736929787377784940735036531681211847857167288920845125030496030126593078067808250953930577113093217808459783562545450883064656988989421973766974618681101017795562595938559196623606276382145628092361657441987828767523816886362367102229919742155775119818264509102709153698738782493538267111473527416955717278527461848332109913952223827816900226229799942586447058175646229943892200970794989093230611335201177480730290331602279823927418372019464805022697761469973599819829931447981376776705905118281286255043333397555419403383161398267234511631225256068534282808909395564578976568787791011304842271239748730173605389711017234632915847712856867624474222163941914966092132922791630272334932153043168080387080122664800515891198040944860315163145957757956171635677406573180504106816169721773892702782458552313009389270662886240417977883848302336195854136167339273518478262453702495856587174505603631722161360337372094278616973567473841623110092461454129806323904092712892860744263670885272398184741153399673490080865880208135743676394194080355970462785256577648053621645763100550594617002976843419285494603367326587141786335655247203085808624087894167497784672455740907521013749215493982664685676849238149902945280134153016327828488189812226584714814892394900811379804793025035962895355187313642133052589596444796701691304478245654606020869201917161308073538077686954228351873228249507564191782508269120722772025282413602876401050056215279117936784947424459240115173232917404683229986649346784852087111280960298176697879939679457955787972189904215093068154841084157854914063720848205550637003004475238310700651130962169155634202682952082417339959319894056088019491346000964167714571767799456041197071795610115144820391765649983974813058863869685188875484390161977839262110096319501285765866776146305377306137694165297896786664214782177581581731280679533502575519887258511605990731646968101658466577920029397169443207880843119403885992741634802423203277542820967861868264884133467179440276785418824952019712459822334182933534158522253080698458185099175729979852131923190888349396017485835432245564440075297408011198315997678100682776321050477301236640623004126925596137473867417524218388276148564653169461506800924668178794081114213262415853622559385077620054511848951006112815612763387181056544466933859953444103460876795349421153332972090113784458042682203977742284702414328755208350129344838546643886752050985307840674173730524126169059245306250857838843945850214775815383731251632586857593736224784457407190655956356240379800795991066218541332977555200664089363836456400703432712638506070177323209483239100809001095539000301057873918869905747276672011780459234723848534792742870677744201834252475288119657132367783803013982612317822648206695714237889338860809756664811201218175212828916457768942489552564424924324286335990453264893333259600217979721016221380720654543747112564261526018412860169613999219548168523807074382936136940146619570844639659356619375051453385695166997243433988470839118027259662145529468285232615979399180102883673255484449263859155910402403879288894135958783675512085451053512161170244032340711067174542745441460743076384913718961706878183849893866350672454583217327868278011592687496438564436364928963615889956711920696419108156779718885727585391693976071856923630144957737337608235561109005714093825241350113149835013685085704486720738596975042539133308135176545815518779141639039505830621372388131359072317876247136446077567256374589398761993559143049144124766113803273436308726711032083924174377210247237977813891686812159838151926556706935212592260903698237776271317823729407393294353425126201706725281956403077157521060216200225872457471422715408777679230964964000940761098167392521165586892049231378051250587618300392871891292338871660013123208269723507543493034812428747190128088604537094403313603494435203334417112633490220146426152346624490186126942601840108664808405882424365273432944623115723410836332137049527342247322996070935537600674010821430686354324141667547743295754432257333978130522141880286980461680551904271755636504327346093419800802702329498419113922294350496377717086489257937859155813795333037531761927439805544156556134593875660020209940230208982969786761528497346129012195586585550683544404957430383532003354339952541326753038658883601055982308234658025180049495414800344384717655893373089238800125504148373533761399170718648244203251955766177190081385581446484086751071809649099869165901910795456332060301702107219753808319580930447104072052090995710386229891372949546420335767840406904368527556973948308858824062968516614556609808725883379485470441792460833476432472407055773006526333710949808313111556649246616073272522338504962755261868089268038518819655252011740028131985521693608975738944600548709086436300665862963510555290899687916987372036014686705115545715574723904322611090180617305586361089596227837585050190046991564944336710421461470155138983674066392893009502798128568867844828019821403960687885932689742520906355650054109921008738384301774712136059508672478358664311861458683267933521705197239200104630020826078653504952303309224007933211858794980102816379274380410549521459803178553045345319593624774665427363211527670238581686244436165676776736400423498098695066784547205606684569954658616442682342118182677005404490420368412637871199066512033067890825218619577043734497679870124268195209549998074349814357848621512299593835729917097074425621345480391619721795204021948328015155549574158596211686875741883101758780757151723381468974400068801699772912926751475097984002476350730404022102308456660190613530358040119523772409488459116740633293614969788806653943149594674847336473707547344412880348530123987998456595010806978408494828681054976826683782951260873862367697748211146175152089111009101884587435511147260978540910497568659548996934669860161423820589897655402768684647879852656206069801237366118398539415326378512584252405317131663497910064569464762780296900134953121108010852460017949289659253452483326211146630506145279148145102553226659112300081596568968556624043742640472191019250568408613535787508048877847133536346836821369938816506010182040685087435538449133912089858888848062377698503368805440001772463229140261486202903462148164125511317960432756899772721615194381251589464035431597948141402351468867131395792380825042757319840919792244078639454166005376951377317701473868388090434511945836475897394690303133189613642734014380687440199926835855022131430903101061948170121124697099479789203786328930615307146687661470420906069898476246879456542384697963241796129802471261265212087524411186123331188886373278241400707080967542280538425246873343234041128989217347175822829975839023164358509131331134881709542479353743258165663303890818314204901961695190953271739767622361321151791706400513101711855622902817129707828396067537731006921408518686632271981239281441347860543048436210882304574191659681200994518613302060953738584979829457907058366161259681545355933538199275284432392408732641776829870038846941398114665674892085836762216164437703657586634649568433635130996891052310406342019561076380075005023131555959143992874011768063131784803699913806421551253388954519355644040444158170096528614884567925410573789146913912568896028112140096112846390843822986068077300092041326833028660185341884995345704021875035443943396941903148630958294714669605792019428924866636929092509580470772883852100008389291311872176006779043760424612967837833778470091080006732688688210120957649344212402578809635751408875827315433933494613260932888978064545010524307380463707525014488381054424710086819243686020045048751617894141553036372781258922838461877082270934351687860639115519871156760808956159150227420811756942145937460628304612990968789540230061977232448446065863174899438431332748503914367165567853112489233361166851165141189908571405323081502775935136214104777885875159313141278961769955278913327522845833921332766642057223256787038396384017364728310672344422533701932288821909988621916959158045642006626942220513880715994060520303830530732366523319406052267523234751591268134587587367323687153372801414888653154440404047526720916200205545424781569961273949119723501726302377765716838867786188634291413790030033899405133749099695726431445259016477424676271324846466480018582836681489432850999200698207678159303497681196528278207745409726580973885425683257078602684966484650217058632051452167787139208453919378478200244865581149636761521289779298587907704477089893768910023871893188646340938131933779501778308068341513658411609464672810208040544430813152181511980920249537686709959005814654517890148881814071861785124285883738507415833535964237001978955926356019038522110483940378055765458439586744203720786046853348558282197164201852344031938586644399539387592392651076024858009580445409822068467917719516734850522248347423328881209777008969885858278757721997156505079056872523412243676543831166848749792979404377631806893362612106319685584054764356515684509994058247787277221109943348090509270740866665752826843602805447104101707294589338942970882077510552096083272472576158875120799577531153896759437151337088732361943221483509525877069591129451737364709313953873159662124449248268928615284328168626331682853023010430716136370242346104209664849684987246093256895943149434906502458027647383947129950672087542342094259722044615869401144562853804346841466581240334665138652401174429800477132838104804719699346448791940493048673542386443251338984876892131798669442171356536495396032577557992070629438520137531952383972580488263329241306600032090051573249765968074133904387556273056399491748768833904692484994378200598027887954078793123533747015043504073360828116427808523656784325253859406632002616806251434158668484531510314726464044522815977785599505316701752530586129472470081744404719406441149704632040286631294074330293669386333604620723887780418965030856972227133783839846557846137245247701132651802179451860587042527672372699167651418147413756087612079913481799230833963604643075973803871392030005375096975621623930792410220988103660185091412946748756291944023392858011589649546779080214662783215390314820117102132949579264362869584092579357335001228791833293425317005937952156545959942775783387267729702706072139438970518340403216407058909859811929938395456822519795957045017752144219255356235905266888275717081856938412273147154996644283911519584317790621689986110543314195843414131189495536661411985740466977822346592050300514075056389112071911090404622568519129347220279939646427151777263278688653898703921692087263880466276064585310469624464327437701104606638412825864587044142760114444324867055635359110128026276816889544378619666287271508995543791709932304198270125355401382600258415172585205692884501390323270445924451613590613713791580718651292945636323741326793023425193018723284987724731508499010389028097482354291470557034492502017428940531872549875734355491222884066043665663667618916421188158900588917099085918398020416136743617840008942554096760232247731350916179982102584692732937345568973426101744945720829892829302959759202926651168763616478337457784828690622566898011151907039100619603953676327200514090802688908107701870808735729065696145742102292735640241886768657309409699307323608089111771506260514303336052986202168571010250546633795185465777586517014520675555035810449192863993414605769531917189845722346122531150493994949102664651412717133691760833649630364346716425784029611856952426223721019384473554644322865712985585078156133895160988619582670452574343493036885037384956379765794668880617431155537914576869290184835029568285126062897247586614542612942025297987672529521087409351391749820716673821739047591037626588637406251008552460667440874501712767870014668932385764750924137688176147259568570131475453283795759023215503923397846609087270536436708330786762204987556752457430186533692007790983234745635149084973807771879816190638660812508926906736265191581890359401854284877312371043939562290968027384630664100956329118587647591307029235079468110981631436150392572099766936635583438313838930075452937084771381863839626897107739975661023315273501875800476975403278529385111062463941696280726811710608564351913873499584891395356674615428986765363599820633825618022841941930518843554605529234521306206698699365675293813753012697931893301704630193701866330203377770090585700276325291111119903976708829732692846599776532832358306674741801700979640128813055030875609617236668832599802688357483435320042727549529637895794844839882463692791104641607617214565991248256631130605111371713477503755447700342562531419458908770986547369950584678864263642468827348721420043750791328833489600716681193086535349075318256819900039220767838404889597411496500452046090118946957392589287233920689970044281339152200254826533900649988668359135455821546117022471554726000107191941058014686411301410413529354770627564917688689536964196443683938250614218310727843594641382014808228110862668176751934325281367009658696501322979643469795671894216832796015621380609890055675201550675203669862677543083167472661386906069382904993652900615144978182887092577691154627303804494567705903290956678419249291649757802908898598249338986733245969292519085403769380113523227183772061703121181638977709462662471203003967186197083093668875101139544915680518223763819047162507223994764322165365578325686575194428415154266771936359891941614177055628218804891000556760536213254385771216719330620162930828893307860127114176138595203083847152100299768457666680989629323953778827437626940854046065928524701647638728401626842002534954091817297952624613121404249329811541603201034380116404927852415786854960058445434090646924857728258555272488948281020483177837485955004378127698624638474290064126975336271260830072328849090053204223720529698971857282983182714847463868703241207288943070198139332565475625695305209722814928725150671465119117168918668143800211318766677101517989505218744139532081277127743110483252684359942746452592851949154588971812551736056537230040316908219079519560874653056891323363425404412785713384260355631463076058894570199849046211811161342620500363899500811357310843518240964059771539013222784828869707771027605589405353008065784028166187906758172675260396533168725540143030698168373469842419304119790705793751721097054876648185544266174802203825903363371664468188209249567253964520344356811442957225641347196257441318255551582497261090006156416542122769192950537223285790649383823846575704705574953784172906997232021782944732791690210810041358328848044671000621975362820816035086621714296739892429637051737772327705730283566831250735160264568200200755271518339844561706454548953700858855110385335123327061244460487889988548576029032001253209425510814678775862483257374925018218135000059891760029582542530402339276308500601029306188976273431395439092100020629905607250213269836519054521153027160249941297066623107279058281258368961242535604636154171754575907072397232459113258667834742840071772246650808814143486717004764924110800520942718783866820051977343304177267864198818350837584564799809928114962219857743441222366861857021103223209408571805396539486745502102509534317585436079273991411068799404462437596350695149697546189727070111241231376984997143974390109012132450707353217977207217607640381008760622302248853787659920956269217865528820996491032350493453330451923653106203886302277786936914858866241776265565971426644481471891698357388877479862614622791043655664128623044473079682260980077958659421976304448001087344443955962403607028740533387475238656043537629992204339653663443139905112202734349105595013653964409295043349259908573158849887653375948208915371628882179209757446096403304670167904103331790271679686695320039256136026829979140717258568091233022144084196527019124718896674109465910556887206089248229619889146442061557556048255109788113834230660754903504922138410762692236380652086798964149548779142839046444220003646885627297889938993291605430867751772517023026168296591530905661720400623136111637608125078246338018448489166267113235867298679432755926732785177637541227077591820379164977050373811928412066434412728304525267114566763107823129332519808490889942964769070215371144754539236001202494663621687538221433352743695469442972541804480573187283299650994003597902678306806247246940585039676284567542771243172638360448670058342661336864623193752167237198033884316201387249339680082199636247498475149906741142557790403718719187874380801800766572107772725340758718279166312798088324366613330664722103047990935737043429877092682350739885172149506694653536575585031579522149357652996396167432767154145367206429507322397052999566347305958152729677677860977326293654135529461063176294135059264928398955291321978346067107086262967469296061547808748515773651299977717519369044812532708078276174836441713274532980092995775383600048973054401911822327276466412202771312916119236249070066176053235117952664644337775216476770660276256789245927033940281655817008636312288006728972064858122267058731737102036346655804426407823298548095077252388715787259093178031904731122944599271625903056403011830941960305031378177836908565470343912585546260744583985274055157516438882614654996600273421188208391820650956385567350374066281472136826124484709352927961600902084951611333785217928714289485597427531894885272684794689505211439992682094302771779428629668552602789783558309163803795963631544339546329787825805685169436372074917532238952360952427330642044160646369014759460036646643438587695985392228265123770878322171351785377746206817204220162098766609656759322998870894262023883791699733416378135379986775864554487781422101544057057428109690181013718342658829702877158610469572715732952802229641733520174187761418464107451516151224230570744473441424058192396244258536790880688874030582050851312481485980825536050327293030320823953713025507093868467183633099784969338496586422167223167366342584059715009001605401377385072397842711940527314952594195717323114606888694064947921430618517411914485293556811665190996634075888403153613420229115792175369832637440021943028545198173451388880261872337899770576363053378845440488338285529464280894271240843051485869898751815537733748474048159860921695849049261318545245852771148549034518950534519300967226682518314868605531737677249509740480544224637454512794155344352881255973081293647234548106664083227164136622630467804785048791296798253078657086317857765169196091041353318799479286961369255838816306114644505831757391762586386261531045015301811795566923309525499628326133265507122407584595301504795773357381336939485970224042733771467114503509799586374207905868942202416883831658752614035620780428355696098953742614311088410619774981466871228731446853051616734743612639681515844542581950054495762885991922497167346303817859413588172616855895442267595302005567904611068388956942423935477150387798413795312544696974349288263432970374856940598288274833089400312417413258458765782242137924544677420278713888084159666425928977567820812202581063244198788741927067085195116323818060100028505383340696562128346655892301459737378172817827293963243100894486876680461316388913847206516676810928424025344671083674187167675570538023762872183825747046920961024262071506100449558027182518998013669400765234446851754683216362490009097003738638034107473909616217019874949719546014422787630022919283236487157436267760331254127229591160054568887257563958837755345926235251922309971389329494608185955743730991580815391547644773903947162596346411177712349951336096632742160136789519855004704455078512044456205641031471234224211640415073524200141019799332921912209707796528001180700037113280788821927672803785731556740912252718839726638622325467971788191306990726681872743834382354041836416222263170803741431607494196158906850660299331175451445313075293897439890723013320365638055391368101418810812478054991686642538149563311738540474775463998893624930347482696760361063374801623949972514548807414268047440771965133700446102377649012000587033667813242031676714711704270946802702690738218049301166484389350158464415825176561252539977848985259406641442587190291280721592761121382526240422662702898555955471969378741808262862810330177785807076254514461800172639523991778760121872876545544777650334857282527746449776982455411553376691970382313392956711122162446562890936750986957733993008859362142508148279367283030200440946597160141804921969890617211890162795213171149399163265964988036830259161602255597513541102801000356442139523952341778265955093086783111958226012970917144042884638166079665496563118495206726781405742780429855892724510131867282648370113227796288977829372541749721287923377164161602906809379725794474833604373225395706257859257265608855712208383421946905735614093960010448304920386102035100060766568764177907280086515981507445111427596057286405478485565494637870595610410845005843808841176160351450205870750348005478911861284595226313533485051445237645378425600512318853798098208347927177541290049904812394260660680555828745904119892013393196017747294279389835541938765918981622000394942117145559038453867015433458287344667979432468234178763955215846187179514261361092441377643423724664892731552710172660006422422548310058729375690499419275897659889949291664466365811319165213864792598936895618706089913242522770705700061354728195063048215234986725682618083828969216635778291142660691075165675393412263536319277036371009028564121558200957452020556495943906532553801105939841895104808945902771858788935905982687884286550790243885874256545090007287051236758643647097533472726563955495589656836545975966172063424668537383868537647397836562451254781357067019305491766428656394414430281268321638932288151503162585214780275244315690362941537199815088107939967909942908076981217258954020753848857760971355627973601360823624995900395027724278533403152446936412797066190253633881818623392191155972523514043545361647367070697884443555483500026247973471446163005962278346245831295857255892250935135775801357373510890139709220869816290078993005328375811831272467585478766391860112311906756178830460581936870883924799368291051947482366616361196360361536126203280558299965888455092407127863799514501844593662497622753412680603179874197076730111033356082598346250525563131965332856312691562205393896176099035719729444994426759213974245406915590436642934374264550774752008418897086347154884772055416226090777646468002892573255758111078509648903216804774510855818816508843458532834450455528325843544522835293477795961126213095312909317072084184328822400189361715667270189748002210842933494650431304713371015261615203480326358278772925864491594985442105268111073366708246243058533206016683649150039981459418417446133769914612427802454532228155704059751930332126954628227479425117549096162911053185530148295563061764436715894328909320914199633618784061766518646105427061458178233384739565048175271106444899727830316441055483235023023266316303225153478943942966766475349608723410551676727825333858242458184438844659800982244687989547219833274443935517502867221707805582711019118925124129861854601026780499553390219970100659164134749315920032380811506833392898703486362747197841184591846572421842891910957625940431235015931913456552943125713562785467736567293498579264023774125574408720945795264749143287150341355325634947757982063794430302409756680635511718995336694612292317938814229445210891881428866286826087433365248253192502975625498484470942100493447879986008446749508525407894972088910410403446378960843001195293691728132289125180465702124291533276716977885584251220456789522206427662280520094023026173726807934119241969602381778759076709589462248435246352329656410404446851323724326389125191673167934704000949668519235118359235538243914207820434256249253437447574602956197300743259787238135721715057782763694276471830091882270860194621802181967789421508545907180841057716451316460334912014119265183187150903267262654078014861707239287138915225964092931920161425167475606781363531504205026479819332311705085472178259617240069228261058354267546562785218154359975366115838736930878695201598246883861512657781239345208031565765693034230972162579274012373193406201610382983420627675674104996195543898718724145613563424098561473373453044193632306840133030509017512270595209928452431142225520263430919256717999806401713496606014829539614665723921101298599119071429676288272075501656403360544901080746022343680404480235820079674463848921044829991858496633642703552766606903302659212302216902345041569216145911912742490565326084354783243485896731208893778000381625633670566301255334114062055968175411728373824076079086244628172330134192370153702688936620307587796019036885678167397985868373193032735170565828170511831120941241916410571513843742504007118954595310113959562678015205711870195847672234121678795859173732670452140580982756111506977712662545886359513300169939450236631761869118797330693728182097921602938217742220256316008875942800451802490560517007997614544699043411309209513899503840240800447604831448673430204899879522469836516842301873210120357683688633843141352054404955874660439914529873998190631207314992651099100430327821630449716175728142324828212755221442335505122812383998672828261536406160590332179413850495604790900964365903120214601031877982522131171542731445137102104906047228839689067239926634682310568728522989248647256306252079755263340133914675989243711086601181899265070360807547600110981971518201914708858110053748405868400584423638549154828379525617811401279214328451620651723031723012146782844506715328710291958204106837969050059306102066322306269321122803745358604842732906278831535858267027657677724337811741047966508481350320426881850394118141889448080978779653210556860679148591427084142008781654147577835858863852921340220066946258686474852673572382215266675187899230790038563256441887201879416636286898536674118112712174084030695076503523160360158256972699648072699468238846593630122512726445654401962288746064372953671794064071060494634671570503511772797851984844540687653022087399240652371305904022137087205619225970396441342979447294099959445913683672028095845162366051450474225797026799596212973231168752116603024725696269288571967350795639252383047595577610369571591635248636727005623122784300297032760105019824839491949761999315083462155842339007101387661718631785182661174247217815261265678987029937846436251862065918795095148864110033339177516337743265660411899411716766194932800523868908010010774492022250590028622662062423376636950482342089790593029806395071419877880201546762013344971103661542175660608427454009512219578962323983192518134116493691077746424503356138992154236676062359383683988756878155179408134242679104914818111402075005713127532867054838388353707098174595373864351643617907775346071968372846110518364870844951786956301312099586039140022756340039492340472573915690580871233228076673795499233293499087286668067179541507632607100428032931589806132088536162815156765759562238487445046404989773202708014361702604980304642877020460798410262441873310485199609461877603380303301501986331505628891207590123448936171499953519904165387691567655019384671957248100370231727245669794328680926235392290350738021836351116808129357370933025473119686229231605555477691412556783863473591436582256757549509995841699113540853630859695416647767005888744530215137998264873865047228910652575023134875585100859701072494474521204780139300558761398978493406109232088448675065645425424601974900314269862934376122800017296813800631804039346018216662846849614320701269201454973803877321030548926189090635176933918256316548443502634732010720669113918231340195352075865193660840075756675460505689905693594924285605798516355240332633912004564988774595514009142067089571258314152875331134174122411270524720238364743710825057960261860597272250025087866302947256863765898905627387411581640781387550571334962548114946156032903930740625456004710254545106356311863596686564537150184596374674064120494547590553745410594997376134060609600354224805608134690095923263838125746023490794244327016856094828985518843504526541648014277355052658762089133638507483633687576621848434962123096786861946691674422811407629454110594614255843999903003072563403068890627032783303943684405427933294111205546132229304944839714866111721695752181290344965903166634990465202602978410570937711357521675920414923322180588423530847430524987289287696613249539334866344433413706299784124223751531271477649712784228663989775466893755407963582261914123012476839337525043682220763774366537048923403670178592270560501667411297845795366597633578480153259038818478778882616927158121053222005054436855588511865529393776217342141505729589930954115335794991389021276618541087442361835286036004706038248136094849394703916664809392869526964456999837650413563272212672908641805754031292139022593063154744007074418146679332999537275437797722988728897430046008646571280128064605570122157899278595320747168980162064585344357114633931923212738468330693602478428841738279616331084389777120713447439968571800848288038352677298030896502486851224991819933769297920652218992745577762572879378462852509103836923303317763936840809985888560378563331721574546933389848768165298159447554828439140176859483088312361550387089911617142172896460118696788818426483508848092476216120879034037791511752409922768509882064198043063096878027385052478173884912416079720802793572136258975515601516014120872646812166613465577161151641459245157114230939475874036053234264263400892540896453681520556485072581748790702554244996191894219402431632342811261083513677067147136826960193177758195345161387241884495041909141101200372750659006285928711809522719980005702101396411270706903606143309708060835918537783842210991198545029894445703362494930383257662357971780452081169743500757158278038042537224900499071991402277090147216634058828925116037098471227471412400733814850483615668858617684058847419412055490161375691004670478418885459872511797103677135651143364102048372378951303316311451281643365969049417619433226697206808244409768883143209441258826833439613237840657693326637559984133589539597474634085004178843399495595415469494455223594509218798414128325275781324538852988103501249921681548960031786019421777500862316447114279097864549864586383977706057892772250456162467378300093123650140400627951119649506040914718065394266022362163446162696968365417517910892509989863840511885097351565029572524398892576835078103515420065218937138055315990492865146429682350055010304510999088857421209886003724203250429690181487514523719003637208570720741699810458560872108238648294503707809752076570897398508031479904452791942903901305896242319831660456231628079471854258655469607195663823207813972717081849323758505431592698776383331302959072857836248772623493954418079345255728942472479501487317496554701660517598748771151975992011699513927430879752120027361558415854348674410618109692633075042027657282022074155781745580428773466150197338256065398068884852359530312947343627131945306859289251507739831195750969185413278144721170564750040461686416313715234171798491249891997801917831530753474954786817714206650734224902718034302904086723455419274735294373190352013948601874192335436902113000853039658947342522460166684718292691268589583863206115860647024980593424743679196344530790463214998938640660649578109521199125888437487814020443058181352284181130915735005249567545426159003180330915567900843793328304503502786055107779888162571481453227794466295425554411495872884745594538589886873476024856416374214707851170947470364134345056364055048558757704029560663884716217856242373483233108292713977786472718579024498150494529420584750142701176070837459532297444553504655831999308021898568896417267354320830350649358190311287604974273293815697464705843042113442534905100157990311762288792994440514706246945492551575472374710613264176459546340505406153184886913788231462729800535259787044632135060014269911039461838968459338021821925720622543262648317455688793367215201018149429123552137926281208577878739539261110449706820061011236706955252843308526751364410709275680373746421246000564114266496582623340220970455459349060339570096981646813270535633331173549868995169798069655198959080912176304160703465084550002462017398125305285807309351633608077422459548988914489388253456271073952433201677608185972496644237690616084182313730366156306368753603425064920988138028822094032258126844330455951478444299029479848677727324598203579845260786212442834095760479192170186103131367724679930468237484311343016345399568097371752159123918206037892604068630830696371053235724739041471940907460995598741441048839056334988828209881468365797754832679463069895127500793138142372453620336950533369126523455458234269797983360190642311972352486601041598906153381609502575496694379037862205104012409063449557443656461266812808039658015584176021985425039399037880664148578487125664917386252767087763009038028647071845235006811001631868001748954512609603543209935717676503543306081769657565029693882151988475994631735189039467750787424088641467609237336225298915013761701519066342567938394597451655572072250951655447678598217037144453800924558634968617759945357132657972450006421115677256812056697135425854136104371424100417029376615742988855713322117231688001795486178735890885070262354324365382555770741131062857277550006306367322823420580628867518658570214198340246565500100667916099575412590148420153582712398034896205129568776680299579720361748347085259942834974186436499614769350745957566470446285551211640640003179943549612846581566094321536069102815737372287955308805159399832921333326439735228133398956293256726880501446115088416759278059011192083360719941797376770789273695802033498349171568412433299410326057050500738388876484114794066030133986031010933548524433932457181991626551949773834971842440786981530731668948438792355079235532010501530556729099364779311912608400634219866707180454398985061534132013295857670591731548470914628034716912319215755407719597068268000376664415904936358027539734022661111834116948170972577212819456810316785306973318315153210583549895348734438282434295007415431887710908080954007151494157614746535886204239439985346908712336394104976034295567448271206792184898700970729399818639528873147447039771822958513837845742087855488204172212610013261529208974213274894523574114639908571531226573812646024144270340481653328501095862189755946809717942320156319153000380861982054109671409023351101042110019565612442742698049220775242190561708540841152867563061955204578044315979091683378571837726111933143419572588531971112218669145726737866980439577455921602450088226913201510565265821742822344990258137792643637301749839683401583418557902925523163235379335560162714979767587496085568173144749670586918443169276877293405423461314945491550413564587272167162412882953466080633588444687061123667618545050200054817581865012628820793890477149816371607161207392916369635605741552483658025979181720710493867361039996075119671897520300939056754595988037166626023799605087896833813747138235792035818012469238797163923286930148919919939984343942841576750419806573876772668141383827889680624065560172621266022930978672082099295257710977674297543023915934306507940456764653404983961043319735658944790986209377237759821554609618580552405615704984719584279597487067513220088122229508289578348549463898580599841089953891676338213734905360657370089937161493386648698180457000533183180690013938306204581613576719631542247762619159237158466990298895070203886615513863884084714492338946173749155253293846012366625243456784047425527043659904471844710371751915465514524463400091898884063216427407068224286224542772782265555259594281016239803626895821207584075310473894703721400691893284127677979907519434786033808755773004223652234340275262569283801996708010380544154150954692822974196690336510397463884524696280145590031933281844442654768608469478132508952830871692908920480545069102476840811575374555465156603360408817378312202142391512337423368256365667119064851772188102757691977596645336974428824839167509741959411169106800401380918314976602701563373096578038788098564960559561882321386192317893367283593361604349970081292116646731562615177597671943055297359159680575559551631860824527253940089156082034221519087329213798608867108116960830963511841045295107478027863530895957342997472531310537844713547159104626389398032919989036112439485924287264418114224689398372927077148525548771964001460983261503087482529945026482318219110702162408244681647860063635805772410574450961836822106314318995272359729762431865229017311684925935354006391905550669648871960476516658493959616820440214170765725866451688936577915412627909777828169304987876620497177777132002735995910364885837376828120507965525540995489562528707273834022880128418365970934605992317617955465700228247192118323989366162636036277933938602294492141733502256180378172656676327919094294969622132775329164302333590242543599470468715906079142916098939639581688654378041146594821206750930101891677270800130558701988560208169699998374672498565385102639210001307286758662260742130868449380705272330618450160505558266377192764135852018320381960550133597583253729633092629748678708252450911159122357947493230102948150400366946911059015161250166895324376276450953735965146538830485030253279736220715425602344466509126309427172045855748739725746310543741585636753176135637147130132198794536702986756580355137173013318659263423889415262052928903751805222483065098243470877021237710774442046812808481959461070618529689815575143244415137317862284178934032717321132908596456764712421784872467825353865287190927556775663349364600841311085170276538697355964324268308061911361899656654637421418986563299395408962240926408647316505498261405686020636534533027389788472567313719319843199086970077371871767377485935030378158948712831512438546624359775517176736082239076771760094030220345143868767726569693776215070962831741342156131646983297405485170143657191164234637082042561105388398056368000982087184023203207602122298748504212844217871473555300893202235576625735650304326391540427066579834415966172891266770279376544904538171638559688247221269443889976137413503165397681700885300235807495967327243891302367623809568434326312873331792285066581742607320744099002147880415182919473511455930085995612131574398161068389362529800054096644848934082821101136088350044004498425533912695399177903854665527634161187204898620107738533125246854386959138267323489841520513338053174160185032017628280513210596832895571630199985865221122285386601141678057937845912961402911000329058476792725213741294779896366005466001120117837516305081958647799402324200745949848776107626146184858447312296348027105015873130225551755739637644024866148467680590059790302685656649948631394404986955229744715356668424906471968829958955250200068823334476737757503544356723182028848642863499060105367148532961930581835006004452858245381490990671422849281114732627234268253791235731069242304257114741014115885755397372468651874421681630610398788221331598341355198128577846296796802441826448465345695524921111372844501566331328006026216748633847712972699071276439670159842582797523836559449091433329338453100826731864831423029847141520377650420694006720509302567838721330006988000111372319862807940631612525853619946688795062109315000695683772845674387563044386017759370740393421635909002626300494729485050401910522564989683959321558601791826975738925278480059251959816754886795617127743048060529805423312197488815415156772082914622971960829136922340133781981389878558656217627081136037078799697784511285787057717945641966871648606554923817684484706772248414459744479156232599320897085400986525780603411930534888983926674611743607345744099205403835765108543418231950385647859315864025257090297083132361651736819141727074567489829396390145816139277858413376266832807255391447728872194785468896353106364843400090083751138962670952566489996891159383076237509354553142783446205741762355630420454332186699629673695416975164504049304225537750143797890710194725687671744281715831067370117910890760256479485238769604289738667963931045836037050048171539454702815717099464994087785042031406286413098162065902475964141839882407197403788170856998241128041084237144366335055715096839184094989483961002421454950014842846946974730877787587392793600903956836196851784372057626980395804845967029638665938681277333504737842188847852326906430843352341081557251476684174820169164353373088793479800905444134214301595432331768936159755939474555661952899479354221083955331489109807720614924923516717849989997183329428328763530271771494295818472681609841584478742611100187203477918725475525873662811937946525485570429165560914315602170285371459785320517247947294352175290153407781178637216492964933108578952642410094673124160346350771045564917113913751826277602651912908833598179667028426068747356764597714145859413912320169703903113833114609258591945237887776373400714856443968517138451674020441214534326315099096502523227878354793825261705195328455068279757683182585727368561997680607081420095493315205223062547172831734265751813776526190535934245065400357373446868820477867315221785762714178105702055689378978878355963186010578229275348607798680652984873798864429757423656862160696755045807325618602975827309168745814220251840273132446359431195596399202833166395482434372491294596825034259125863011905717897219098870744338400826580917684127720611289349991544541644848952619391520581384264873633309771527421890920315055260754863505525657546019481044598939858937508298174352177792234454740237445098554913231225475067504523731531886344213530371396253470950542626813926072566197705553196148454437031936804393916891411091472128555695121692543641786847682813351475604183336559832656091361627111982901479377720908342332932966045919140414168253569201865487086444664213045329407133042257820923582527041623356224982153843043862025853039206947578325415280723539446804803243663644581033887151933907094884691507936528512649016230860336481771829997587451061792775467300491724551803437780239150694254772446300418381124293840804693596410169864709051004313111531660109133865351480014991192946825690258855632322620167049247057097152248260562341437012036060669845419715210578610965757115085802482818770577543351338341497036024250342129588731078062939633585351422489466033427175477429813068195549432800535021049535693074716673788174568519341492867125748861813721876653749602948212014048340194953477767678460646183586574302907303920860131124144217170959989484996242361898652158100021118025652199923152568913390259002804686191327512456171555849236946401607933757253467906397998289749596166230706889854160588826230701225152264650443901711952431186928312614450879695153347714984841755294856223923152467205127474397037000068707087009251645829660890783930670009433897411054331424255883430212521754184133662087180618352162041047455969001490517063279100703867308873101877905621591979753078798028150943119032301342335579666311945594569806033337261533788113777003763239841342558528705293894358767329756586109970747448854211341631259364353774515892427175829712205602695671953544759620602946876520023053671688186188467722334441313862951288753430118032527787615200827901401301190847086801598665846887900831373438064816533447056448462508241490188138839463472895099693955554464272923645159612207264593418675541740080415396168207500071306213484671006210949045830659893745348632526608327977864427929585992114559755511914183597900758820209506729806306411066970189450180440291102716782118322588961314831058388774130792226243175073424961797918917299821045846077792781204725730504167865414237017777470464781771184763060694065210196757647951560620448685082537409361749242114208869395278520676412646956528698662816494156761351771042523331678102358280540272375235157800194270636122124253471632762715798586482962078820604915802362481307155882604505863704599574397828198612757124457016159622640740226762675846137117768633781265232534067390293758760040081488242709827718505349694061167473659094960184542748899269966472816355431235713153447926128326874527444379665854403297297345382178198974931047316484076994687427491011284866125385176627784585988793561097403369489077741448577840958439275317241072648018057661512282773188146077013231750144411119046101141963021243832200398902431239171781553096637197794100218909642657572012479512797708352394313948701570661587572023312374020438121320191206581128079127564710651193988485572594684367215476144915268034640728269945292371629123419649913388151330822999644002325068654966400977384853881711302951418388547631632468304624419431034019064825168724842133287592768219148979116240290761732585165425212965379886884321992275172523713923423890543144455951813599487768654192036214823073583967258259418009418192100508810287899574711930768104501865368086230696416099493421455846576589968199103067099830075580543862193652129924205429259803966292347202012600452539605961487463406718529883850551087481872344451394803538321340638077565158750127453206865615083136929861260529653252098476161021117922602810117227520185808288239319367729831718992013187651144692544339426178070352252094260719886179187335630643113720923726554891086059202626433357251915135543036826407268097353616860024944036994367518339550733936175577929385260353655889382147154029573408122855047659761726082620488306603587782848460808293160009739335334470527842985873102751989318882686495402812395373246228893655917180559952761646318963185013905763790112155274760960150907903506151460130971559585725297163856864738525669136729967808488204454527223900975569066766526303196438608237690049927122096202554734404680653054514336007393662361352383467483082914941249476616360161313179780448263283193021957857922832782588190004279100494137892129425785648902564569104122280227629137527019442437589154855345310745751927907979826771013047307743941944693626591449004175392061041132187635720826993286295672154494506944494955185707551870482006636756347108281750268871322057562076636971518643407729559396247664934090466548632485233971857140582411895611813891358229994217177829555267824543734200762239908069964506995277266036504205244302795505909650982642638686744934388979239785411244842050893854955386367272696276586855679577379860690960546747551653055228151623570887003469564479451652881777284339065613513988974171494954299019672696828314027532165439762661154300198778821423977341464098291339958071687558115397625974511756279108196707688403503352191232697084576801161059047282479476376836982851545519710705685769363398568510149731240664100637272716175051944012361693048635463320697284929378621193064499477186677173232150881074973857330015975262142928926813333309436196225016934017122641549015634246042461538781755018213988805301843450316840690180327361594043850237749825440493311459077341977256145168455571354279276333084552012425852164074187185194720449373413712982074786441088574216848274163681115901579585729900351547401671254525007672289476662019932559394420268192917089817205376526605497115696231902852516053270482781680278898055323167025746190751388179618404786357342866527277525914778571849955143479959489835899073825746484642558489184454592765267736601137965203014437403291515817005114128558205712922440462235611660491282298102184641304013638407654282163661049682099076700509141826577947473654716792380526700384573423087902210889829497829095126898765515716723551968658325824012698167675765276776902441992871248794736265911534476069897839325328745169199983279919057209276886812795441407738079526013628337298846444098766097245277619121739412335526219033812153669737109263267012679850142082632351809547493944081615556651710418864842410550951406732668551040494083415906039868799332993560537797584945586646509838463611406216101373559852433132176019390360939108355805666641580908738952872834485546908802121725767118629743562969702762537100966343299369336238125959092140300773342776718434571141860592831010795028128789553499471777911416027706601813037698921836962176504557753828050506897550252943233593069301880798182332165670721160300755693037679796794125066752837652934300041343592317868233293261648715921629366173293823233551944479022202738933751543009010144216632504081141622132132823643175847164150275896322138035836329699417462619682136757957122450891281736479125371678889448416606131774763882227023523638189335280621337553460856235850085092017109764014485030587962784664294052237393356833884292433593709395119172386653509915217115448638760787474247642032655998277000672097934600714187391926292866736908865647366683409092948882058074812377051058326988886081775703910180658409569297731752733727502308881877549737496668902727886842497214828530164553910097395170486511092114405913203239394978625884360849453754942189411712653449674758395476335492990421125093735310139570624514454790256188271832510600834744109690857278191260848202977208158716782402366006076830047314070908211753679967362402474988559663116556232971488132831570864966273954731676179424871130399183434422574672473292203793214044075328710788662576997093827403806179544890766005708552016640701964711980907028840057152084823336674404924991740096599751251597858887534429866822858638686339881629615562928230589225701048231274395967722135382111296324990446048392863680649302477611659092953181841400350050496818607482869767260993742068173911541365153510632086701446086874421707966570744745665110165687243260781691530100250751051351020218031510255082560819527307796288471525203051984986723035538487274139911137578666226667933839616774896844554843287620607226709188937675171462617820938990247063543176693879995264310473523957719292549224122581677106217582036054802800494691013915005959246960134793040388030340247122082591863919721204152372033168484373866415137905474366219163739295494938360723768177472915796996643535065181962682948802284472710424357196180797540193832127610747669500567324999938129982646825581055401497583679563796604394268556913677086878343005343768393595743177070136140581204780150028009735662360944784055775913236192319025230892421335903686267243775496654268964955435984886126399780473377652089798800055664665355538489584349406844677943866625054277693878665876010429096175927657969509654040962286970195870571058022777459839066873716571328367934430904454556602075327221172973811133709000204671686672143589633540114882169919406164546456280200219831090267376405618280705124955000506197664575404878695683326592374576048250671604254331292508693941552938680834099113045671201199236560719344843742351379029480017443159677275012435539347995562040772882993286604533021661087005088327431742945619204114626369944643630235711910894457393825003621528245064102243577209202734167705211121722480450921735684462750021119626442317794825958573755199919552737268805406498834716759976945055816489624356545956627255303903622274162616900638047357134610191927180592255656424653095587680409252462168443168487861571661425894171894160729432108691420192881672911316938904220828041386146697736972499330386324717865339371692338143469282729810796449706297947982742623733914566930513663692077192579972653949688752866123535200013505080798335325949973833761789561625789532883706588680360714689662161974684317811560984563371291261521008637934481030720498604690171152113708222817574651950340953670932122769858524713559097565097012352529125043562205271401155687089068414203656529206741320043802786991101078179762355729428434346622582869001169636893183589622936778034883611327284197806281688500067172398560440230549499800708192403966043698775236085242804077992508748242106585740898345939639823311324548373110491941383199233776901044428777760314055470331532617696103484682748913839419482333490986369601181547628675048549432568008035365801676012340381905908608144285681420918399608543173113134401477229955972995116279637879874982139924385160360820173796592609390661957574205603842382613537993869909732880057994083217363582148105059686204821220438282646653753570334378465439531343854246654846678110941599021715098014411763199864250263449037609317276747687605630847794602859293324976673925973568056634923330852852408701437014311639584400335011812242793989821314946842639686719482247923248318516494742782339758209339337619029169594708691071292892220067198269343175401855728378834799069374296079483954282362508373629267317818581908670962121648812966386943768446467263285974233518922601871500900307598055629927003825281694347067747821509844688363025928062733450439378275525542532475461930248431822504933967783605847767985745466122288261721585600878730975617151091859054405438272521439190733658398321158523623993180582361784134369103061521067208483596186369682843612819616166807539473131710658016747675467958395743520305124407554820902349090187880289761076025209960205056294588440378321573535374573145416737829883583681096797594973480913640944948208198791038358140547570808864905591809888440093474316305311579795604266173686925833675428346372168967514343367849843352077545009352766019566992628067817537956194856722326213549957706594634356896671657839393041944903916369483722585816827812969125482496375170109250134647856475411436602329902714688328673965203209498206256101793783993546582014345850852982909511971984977220591812995603146040484108010312460062813830187410539726964020927409950649338315041372754981438394006288477254110384166612619101520420970036679630451509576170223495416956317453030693395919764074251286171836507369040075047989641385631590877124499602775339021091168853823145347456905257133555005308658003103079585994419013834462758032706145078734101957702766557561496410490112125040554800014578593406805339318811502738908926706747476314133771308687424370528968645893118374434832333046507311311863870125247770585003567498388467021319633472015349353134154997492306244481284044629447687208667018472737541713092211038679172165081010913177006902008352397587474438064622028780296836153699792630084637747863032654987553263873427482681172325370067882742381962000627230172100241573097167913754158422516376027895408773562205984291931511697688193079132425650298664980411558295327487323393438461841080332673889948725569702076235881351376862472772728412760661184819988721777166163606347694266149717316668145418088026486510634375556164361177240592739813072602043341041110046089361292641750431964290902991838423629992976566497555322571484614955580206905499972273989744988210383025889644932807796088745316338319074908016838962439602766448780880114384181966213642368608066747422505604101734341043550164795943725842234267667610402530030584244738068633595286457014729623753452282293765033544628424871087293754649096291172576563236668188001289756534248922226873991103270358686958601535921617725690708598554675693755019276178096783570900157909857825845788771802737333487479733758725757610956425466197588357605011003257581086762459861154948478694663323182527927699767364722250540819041080725845233180820260037494303688384523075335499991166647549948431839831811742302975028783994422118721717904017611637041480186019975815117545420780215181921879446204646577410424275390564534065101957394775089588657068464146950650688956278150653368193747126057553366856554659512673854143344823336176834793430594984027602822739022266084685371089454975253214750119799207409540406338416084189167122126273716173252932935641626076732321212190834813331264405711310781441633763452813592895410208694814282980784022720032168228177459117466809222041892988508885676429477293884258311621582367190159500564021152313025759243285801916262334922247170579322510839074301616995768914032759727830099779010800474824907602130212125218994214422262886117104832866405674422210685474573930396670490940276039431521495387014371726293436302757839273002982328615311030142915941237605199162079220446100254419122230474854355830651059215440597843104581167090099702054217893648961677341860896580751641825954073601349341205131432639796281501039416109972725585171021830739461279784689325594635867340122117585634289514702477171963867871649991555214110956425332098340365296164987949493554562321362195616804418741754051677451827621162043125788909561149624987063274224485578984330877087650630320227201398546520603725604494203798066933708369042603457539832736882992652874327219735647098134153082956892577033143918143307851250165520083996791512854228756113523797123443656790693210354839446711380167038276418691440772593895297136419865654753796693528200452341095141118305779245219803642801300199151342276858917250122990242267407815810679860622465173313433917859984937005928043027051579475055040103252797396238896769732183174865990913616949172499224101967213963706759550788357613802131616537284391423128331403611986718894610693225032987800767912425532194299710599535268139261833419285261352593981093980002118362025421290656824672276600657760173844605939079063016883611988612891942177164974392133894047799153259999792000614605432618408089130083032424718014230209860847087148305605002119114318267111633170808601596552541652718400889608951286167081963619269268602833566805162153707224033500370861741631649172464820882785159962580591580599893911617869826102600924694629662021033569939437151798266221323528505782485106803048036021689115828202362834278628246600775285925959065871606220465533731475889191451725500835544934874839336774694585590222532944246722255198260853234258025521304962245074390231130885731085214033901475370614473480440808063124427100424728722398914817123389071616231539648793173906120656360300647851030260917850301644649500353653098276512437865247391680863472930630464768350061177232019837622086572452784418667604179848586818280852631430967590281542957720260448236464392220187355655059581637428982587305915170997508050051111433811187628697852938382402072761923561702773964968090864857113744712591247255509542075205558331272945228581139134059651378708199358521040297025106127983622623113139712634119670130339851857555938853516525770574911283551639929936648932430611856454995572759809223299272409048328506436895092109534958644225714523251457310586031966464474301144295822415415914238796964747948619653246832347329519895122967640070623453018775140302360042995434757322060965712618741950869990585477788103070965871964044880376403887360974460421587968755338072828646913213399926906700013386323952459113195264536933487312814304148564300920145427915317454373892591589140351577611152340054859052824006650726947128590616216454539464169560433239812507406830563497905175010366022583818730059278205135325880547448432913690543424626171741484073187108087476614911274517377442515397052921738915398287712286137986482276300706230192475136265880944284231004897045817879408388115178031044785039412677626198013461612985635471358670307430022445144034560307073541492947463354291849100718460283022485318469186868206537123752754653799780601834668116763806737898099000104622315018076913712296877293074852544356597419231517514327713476275379756815081347366781865465166108321092982501589061448740261077007493787235697992896182195615116706602870151217099038372711453274808480648389925268062922630661395797050644639145939059660952342143734789629846987046101750837804649481590145860635521672200254401807699309152912844726917520322781903309065220001632846006446927133560360123294715126560518242231758604427150980656834235344914716624075153242183341362840821814914787434205064841150730186988459257270886214542433014172378150119853934608690930203638539653913797728814891582479704214344318684919540219199811515623392396793996670108003589313204099743981008785883692492995951340727760128078207517999280528517335593012880513802753367634574485427255399157898256171994495595189044359166972462611054345150668767803741151422942351897876839917882805424064794624936970365238715443769763421397614488027818087684149434029010062461630685472406436997765284785470819345743269351708046160060303802883924424088949084631680970126414013277208113854630070173565430078130529856192841510201564108393738850477656250577702266358778614616159489867023142859140584319711227855005528129849641867915173009284056645731878293478788970927841681600616527925871608842597851863346679188025057687456230868933130880422270779921620589917863864228239176998782701856174697808230983546238237908611457451011025704543179242905376199237938411214581147176774339815062383325999561238448483868999665303933507583036937338657601034391438905142223674882410066741661718853495839648008214716213722289779491730210583687733216301767852143799639406073729970958565329116717681056319920748780305305819231825802158916740231485013914147021523868806671563149732678308669274192252961976150938328104381454332607891768062585958388745871361944332882025498062841518578614970366012107836277748528548828007441564164727664500420562859367167442271158260584130199973374376830581462279329533522915626451464633759420866138065451148566774611154467254587611998802188466943315026556485603710319650587403951859255453398829287118757845878288700673412740384052704715676048266798855109747574375125605084572164822425610199448228732283769296275704252847897031781748125944985664654829906476661792192369959339322876797160850256317805396913545531397006887959960933501763166868599950209765408957039729008991080537515672097190712505691173866794043515073032255644197574050502677694733314632059833884235255414662102185341446060430138193984224643803890965754216828300846418743270758913936314019199618008953576077570873370472017238881693944904122469821170176293697934083041089951796980747904295028448468308153351284103552013418939643270806621070610801958915556499255272646646819738571369174544231755336286739566721757741693792634176697131822956850417800350367740430513934238260932537630466137785339841433535205934679006082203527275376009872312489867439574303671321457991053635672767416747498624552961090627497309523918862108600370920897076627104500982277601862014066627502899209558098957498216560580036805132959938537735679432796120531294048727861179922806202742348329372838117361451585727880818873410608210315636105352272127509784102385122764456593312121933141285352967392132832921837610896708826324318635212499098753139760697675041649953338491421677824343105096451878226268710204204181717316368580658298405498504390540738354460946306915071333795694401026505640871597988142866467099806955133079327678613950187009297187267181501196886688662272861351061759556230674394751542006237661863898072802265165026517283576438180758716273765323856498951175234780555761048719091060656302554613521252746755290876355093508191767456849950558973107271869884167449020464230547298766878459354158455803237086913705673719067111275126404804276046468116820000717014865103371200824974083432240936249273990645242013703137007144510772098247510319611825250127017062968664800933659370881865812930535997258442845272178257530792880040860581185382570243584047148855435479373068472312612009645370750758976842647732518464816949953182099616625548862163334226109234989851288729824151194120930406155233100769041383760531018725330350915876232226591027362543499536959564458727234294695443091052920923938859537348640222492987769661816077174356419117640440756617249483877196449043414494662660449089656009275891119182746698002159993495871437109884721703125776024193389513890544518183027821489924389095753493111384006268191831666276970827593303012032195480476826532541685719122303473745897225690343981622921617154257202415320601559385321853793269131486328364732802735269883933739563638386176152649184482462074826770219567846140602685467858779298907038404646073555896067455581157574607928656152032362463550978837935652278096889153590224767879718483852124555273204778063689115425532567368274533946633531469113316668771806097864927509294889310197142127130042469115459864273613744424449003568912694883558016883331166762317620631963125963217715406394874281652880755832798565709672363146728129756988075630701225917647866806002259387315703082179583199656180131579220715371727449873088189883428646639899035241079008478994547190846253036465560538547069522900523150651595716003647481931659121525877178177838861887382490312988880454827261196637870543779421324387716302658017830583753925309079629090058225091649930220276511071684529480819409089216765127130119064644026980028077993213112936624649059283606039825563108046705728172677035296352254078683490029779297007745843806985074162532160584853662886941689026549189133720665422017551520422660008366881735157404201459185241809198075916362717682721676401360350626488109971495441282775255853372967632828277351751415838557500078092023946848571558371794202975159827227945521309956321917297498503903518993040493717468577211679586305716210060580336759073472871971814110574191426935425578186912360399536695557691662810932847940846146712366721960062669025503527679027921150730503592831867400767996701092524199067486788803462665715288464615039142953445560129165774908176314193371118159795785058945144019162437923201279982155514553038237905728333482771468847250663932972492414740190467522016951880832036495756868276731931720632122365227753225698843711232440657442719694833837723822037815417343961381660251234313461635881455615018470613667764830226185004942333975374789205434416254103182381289625794738049135163571876511850834428368347842270001911815753737701935556447183754315823536525031254606895205801556693110468298474812266978468339274319203564419010798929819733620443639795855908192560151132317962450560109829546132184147972940209148589983226500918250570886742748339067466797215622815487454580344350881126708579050149689174730421556178380738267208017837598238708544454507891156242839911503349651093130701747208815631731150672081240369596048337846321599804795945672831226316320648132865799053526524779093431172512739508834618796139773719006869512121235093907785999444035891931645133463249487635101560988449661298468069964456157499009191065498117396333783450362375762937087526746106842514294285928735538775949797953183529234043544437998684724980762942680383737286825389568424182309076354439701337102089123720995264632055486050602656351000615466969365231915174500620997309169853541133203572704167071273457143558020909446820365444135990879877732948083624601662181450372252433705637612300939423361522364066395544218696664165325796679883656110030306364868423485136065068714139830660547828058081361705581979810407188555583433782158654758413262589651817558969884176114059800241849911852047881331931113453922030508222629946943358654987679907956214020234783885099955607687296544746480064805125983853404201934738242024691183690230038444883552947341402441742770666015004739710515866340618903409870779938728185679144679972267166643174616156524746034197930387031439867041608891535977067464118093004931049153330860883403182251022795356836335293062131831926168039009295863998842330948659428630654737745526466460860416354659930372679771247063413036092054996144696507851355093787046342004345984651481419600350711246702502826106094645845159944278290922903233987009258284425218780332780448345787712004792234230037942436754480304792316312380105059129884332926123447334859014671681806833401125005181550295179987085070471320169934966736172772250818395102078256096212789174747017162965489961674330171902259659080549141709800918691699688044733270787352672274055038603089948565261033356342408100228101589032805184760777776315825206074931659986595531080720445995763119733876735192239001384276105485428959326830169958525814093304310447158536484111246655801069369107477379999916195161457600614997341066667696647174592320379866668471584783216519520593493364067928377807752539555828266642732206184230470668827471915687607265120034368464845434663657322032062393948218396936293696272371683521506351956930147712652694873404272805311938600145966819128420239008565140788204781541337018739228747117646987085851629302668755592885030370196792109030618019035381896468974189758203186779511598944591722969622183800060723427639417245890644333670972390731148920065622698866945728650458612030936565669101435684379096719082702214003832738811470681041383545720668590429178174662752575515200111607710278061278840876834507373645088382826124917968623252424114267668104985503679089872246073670723635241842836551580504242720623411266621288283809227776188562520423346228392469995313816356719098316745195925241722529760272649844168209098785363861336015267060519701095753602184078322082158280873544567773132627933617073438133140616430697751724345497842585763252581027610128180199921988540606950045516397066615709803727850652862299410816918243424575943347284983350342471511053071706992683811876275385460598467395423746247216899647481795616800088873690955637313104369384821121473429329406059399087362934415635316024359649007203582450399313469905021787117478189734936820150302524124315536099065321164898887659693450452689105098671061707850201725456632788516534887370279988854549284072447547382413750517580522900872285734199367743618846329541153419647515362484797551346090365281318494604916322649464200400079449303947133797379370474219832170945476328947718052208910078543652483511078692950754092079697126336705463266181916058238437983157138819770411985483730721288199181861149536241636565741463096987456303574680555561863645197936855365901867520849185359794072844803248220784320082487909733900575883828498899607030293860288152146926932080156176712232492462382074407804036828509944466323487909593357116248124114226079964955172820892792594929529005596943706315250760202311713287597844574724307862442458642681993287286242003512049736670341005204460903055113221132866588635961081354517644888531971412106567410948598812211351217586194769440281728018996016322393881115397241841035853954752619753410263490987024962017763656814837983208564601416368506691833182678064616840800641329693736889756494844648296964987718998234092605998981555138207925094664317212143532398275514813075885834098070735856118485230323845385416763493363251094279462214180933064591301663114016872036198441690362045429365366617972375222164495444667378529892528994603695776164664651121382142098898626843833604039925282591890946427566331178976722425229498331164103532502263216710112722461693550081880688525375894724254946278916857868239639548335349713056673303148296559616493221907684192793070996695489396678595364186804850277777224195891705178811975315801521434899225264156323737223820644943606517752417587277940903732722907587392858946047010313070809086155530250289493615697557415885550784386227578001155990253283191948954670324205126374356901601586410545341436019172446321147655813477683522641903944846089935781664687290550708535795451685491842489885158139400991883505361076266914138735919651310386883688473571916145124864886869238065794520944829939098169034014690229854525901447709747820634261938637224389246117320141354142653474068878149095219005621597315823928302044745816010279981561457163352483221309130360731992141122740955053576649466200095176990985214917100700038300814721739844379967040857664281232131744987358202263908115152936593064059550873700101430082811815786169018102675950225873095833828145078055839120831804086153439238788524990625483461342549804474425140289028170561593194403958399211814069482762495821257996573778670250733168743503999188674677093153149537978875012151040161001532674471856242080916704101097088740094408487595848801916104395316240720203013361527482324804445859817345447145434648947920990869116711819526672755313046197866744164096536897576237930946066040753844697865805449720368948121768933927729376404252276493881870800081374791984493721451585137732907151989118955047788690691306377036162228192638631247580016316783920956653666326101636658161170441731286998519958058098087899440431875687039544357424527162958080935947930553262280710369893071803541456742050979525405357412255216125037929373502074934089989925851423952804214443608773063296397462226832218172998023584367320244283162890104547387327786690211242908977542133687246297111087563169823947789029669048087108182958552148575155299445332018919703337033204567872681057858686046078288022819843904269877680161622984740960296528990102048622721695214460172147723580272139942551848244248342970726602153984704337339929874563486792713663059416745542107049834978845571733819899459830226620590674491334960354463178163362306947588579389065806474983822447323696525825698444452587887430273898791734889619151157295496808098329964255071039496491197303353833282436487704658166555662265643183663562451640798484723346694622617122962096545082968576256354018285857924286924022880263467982745221428469674212129491408621192109698345117924173862470804209404292064326092089849048371752170190409328202984187263131515508507646839106883025749462876999092599857952815611880846396313513730995676820206136493223248540401188781766265288248870234408736253124460239705416118012208906890571063352163399732232061050996226871221145801331586914708878628397231046810733379687080392687528892471938592131991668678761859343256294229879152547702563571143578453620034743283851444671313460922459181198506792311639543717231322041495479525480620113772993338211754957855645475904405775548830535150004492137794204466685698670391983503110008091324430454455760789813296576956694996517325686487145070145514632505185790756630408693921269156687887449504580351139476252353506423548749642434624480504767852227925566450066701032702430478729566669019656568437261430668355203945394590482882233725966717128969142397447397877470338417167440918174090462035680804725596934499424997783243430224941618168004066854981038652077136274106153899651155966651778320940149000696875038323259171327811845072152042226098256112971774809519701893972906748536971296738803562911689296661064199814409812542940307078329556492744511543016853379062651745889544638786349863264909005970700070239481769929799060178637751309759459899659825519850253283128973515248718541928198362654306641418581174565814570068242527870365530270106189606955346695410390668621659076870060751224363707103411246549666973328375396379153538478491730051926460613238882878911447202707071187926029409662465848262437360237251186054808581022871531675607041324044670304113597139144974420176042622223882655876969132502852892012179329387695619390876492647238626787489120209388628974706549084367517340815457809720698701038828689445270303344781386913855639113006959275390600825908001640386477726930197575069792057179003575915055315366662592299502197387098844288210896044440643772905520766329233934840132471433746708875635185311634335191805634944806270669366173986797809093395280480555854822336384710050578983590744472363308656206811599920364407097416989133275638196648029161692239567803532793905826439856803455389601010923869025040692545965790763361256557123983575562901614154688038222216115128990581081332334755437787427339004894236943690622331067891036115810763676267248575316387850424029792647202262255405075313639983375941839816197637302868581888623974552536103020269792460724877228225049539490847669417491145429269100392196972363119656499331302994954437851213915088230916322418012589314947097716868414280032412088327366727163893237556628451922114896588381612179791253718948644302367532348920835735447992345810605600470713389229187462776781559774497166974968542632178595708341993572363260307484673083329961763629623177637967971405400300677929462265148085438399986130678134592238066050394120306986157054370765793686146744722543885769098398744240821664362275723747636267228793961279146356491814288889486888958448273796277583293676868308652085593564244059901444687324080104842725851739473221758249818835129881514514766512120961244942493828759245779037346687493266132855917271045197294952452637980533794692231033079537528026819010228911366294325799000417473002061122816192045464627792224589922318642026677391988457456287602282760609480114332239890338251126969419552063082887759806679764766467933012622294051334190942403762445509115160415898614564801836320949812793099992493777917913255825031237059069618669447472858197439925474838581999521689145049089312763768612963957872073880852645585567833701739133307636749114472775047530283644501957298668506546677134612681206445237841454275441024760875257861202830378778995722865327855279297176266699958201121704017180893703659396257983870746800279103987815060646621396379230937214078136745409836464945711258308943876463466340140198105613177068779877280370864346940636758945183982851028292110345762213699503340025301532190828449178075739876984488531696812826563535210157386460034122389093565965236686747553620788891301819561740443167852138181507380648610895480628549991316366563458449457747004963175399137473326858339423018855570835295839511150029906035110470245924858137152097643647221120168057652489123777334020809507075623816235897594715732038946125050848675818792504079016035412419413350717676297459881114789159095283217711770733915910640860534053986384667733772346846936294067714216339878660025589968091268444563046642793992048687570076866427551745685805060268917407582771898766818445116412196677960777983689249353323327879545782623374195217866375643876651591374407932384889587433516180690555493974970873613348514132964399901492741896487732177549543425932057024083738541592906125097920315678580249638678232095439351493397762107096355042833975182071648883294547778521118158888300902014731520743045319576555362054361083779999185783423263164968291896346023361056541781687105947862281023787879786528709976271296831648630811295718950299718666736801915078013358532586465862514795052761066785319939222807218461564203358611980946412165270330498161740145020267492299758740312495522446441378860454827432276304477447861769170750275260418025652460795441637859334518995818250640668304353165012961599205430384440496046921877976304373454478079526095785563022061884781211936304354998907320556201514450390430680943346812537430142285829530491999294697801403634249800463272443386709158286879321112510225899573735686145721879671046940859242327829279551113718563308102691697388425625327513166885797142326255603316866750214503887319681383665115951617123233534977630201547732413489722451745520868647891616195210808570176309935569335472718074477706467812657927144316820350428452507542087182708314194780923985059613236906966246229575737292941903108976654308640727289980441972517335691892744513161282316658204194947678006906636241181040257953002860375202199095110229745449528023113543187088356780409619942632421728866428657004047718733616342358720300471247875704847180336601207265388704945272385065554839379053816182245180907176364060454537318537079066107837005672453741608491709681076789193985732698837307976222859902700361077366156703090812235044338558678352154217504690545746450840519192733967228100272802456421233916574942643216136775835531525866974624027422048346222860664468773481021563448328412804845310016242234624172019891227105800620438671622305301645451712628186263866211454535480487467600289639053643180161902374924161477948800420975378196103560847822236415422384915018176986363184863390943249649861989037627869657982363058500085405661748989216865007569515602049532037483328596286717257105600966418178354161362299344795185502103332455322839931644606041413005448348756309732851080069697698386873978913809919506394993951750708428826604671662527188681222855620005443727174870073257819152692924480659882264599599313827159965490906363997497914624826701907792554653707837092689656295892243530432554737196782881036359495129955803336103139028740990297275115791042237354072873728005921414822600901218797418863526398982046730685364917528633754389496043334683425148820664689372919769502140725444416307382693686241416502369886672669124216503486340244634543435928975134977001585564543594270382242612571476103496858947229794434067552471507374467618978504547433747047479030513605993484512975038149148465465948894239603557426863366159076598430928513450868967675528581962221816053848413759904157346289858525257735288588291040070873628321947037952278922127522521579338015789289497707354971409439724349082241678028434613743958969014079318962724916868563244118690591996758443228750806098976179597063924197738577635323234698520885650453680394732226959657866470281635761487743034331956772344143044707295621547325483008914865672472771267665408952347167197656616704879648851500972511016958473874759495732211507573450751811474896077309066557778666536950530550178046280809703635537125822187428552350027507174980849225888871665697196433333627807794252772206061185534092360054845513575762266692312236140703611720840155743374954826501557532849803990905194510294443427652782165360271677632445130394683897386730551839044273813751223198299297241814087368806749690180082620973351296640812129029569412468698620377017089506803835775769591187367429999730644019837821598368965180586809085249936723198345913486568373517819407018843056797528078156456335690157823247687322650570065843463880273577341216672173659225499829244640973814481769897982877271544385216078951923346108026956476538131689659349625656950384141260185940175125189535253283484280398078198659971702559856932259559681013902129349513248887236170504858418973379385927900911775673157978935120962175545241800699295128252004901430552994033267661871465924708526184508658206092783009986538468441404430033647815725042250284703808181462044370672697058119854680577255681095040645694685087398775660037224969252796903799484560996744822555468186978805229559756449583397844649993829919968538244012723516868328470662541705322824487690129260047718851912684137887542244920241852797734142237145127237647018873702697424487334644710871994104731163565086162049738984609065008696775492113011044785193668200655549697751270897142143961080195527957711925296180761137436081090631722942756868727383040396474140547122434541245983914668755413460281060271139275354944465127158216589854489299915255182162075806198446338061669096850931828889560756749980639130235173687568472557322298975424092415728611314466640985409914718380271776795212398453960491028508992274934383165190758162109416941286091589768336712502456294654914926018608192875059025241467382427658933417842254190685953401474198102782207568164881471487925813381945081826863332054594958029418382288811429444518628813221427948262007222063731810896104612263544540145258619760616933332688991046249472593179527923321545409989878399932759379900554287639280696098939404827827715833643071521912835742366404715642558951055707255404899833198302267080965878165229785109339966093237337347240446102699857309015816094256691581005009390617005378515867892231445229713496087362481272150251623061784069493385719871991641999612167471590747814266327154467714557423930984625143463344778806153228980903203707491588661105697196612110174700381801336089550670286323050117126815476125444121537010265842957368385569197776957402304447188757368092922157742881883261259431348043657528821391676218651214102741348893763587009523139907622946930318776258595633113927287952156667530867060982565484558055368346216277023171736040986308965169500000442428412095598036281068422742069629519244565742884585400285163841883157481411844231524676625247909957053637541070927060674277473645998802951619306498051497309030607739827492322634680002776176487541761420801632267083300503643591625310512960839429405179504761735919673118430839555239386378407097724787087057934085752473791893205483320351327272534193352840029468231370818486433239130999058749896341982249015344279226718296223218900094004733197093830207763991448439898165516953675269665001379432933216287488286280262652258530750520671904844902329579584691691222370338436064911326203562847114926866033246997676783625890687007790588334289772403076480110106492446531942996445719384009744420747773879401125958093733933127700498057050824705272856762952500542177940356262300925794394400755887406668656751991124895497753365774534989192032182320358533308676077629234722283124491371108776741051670847634699745013321490498590606600481602846174299084483302299601105598420295556884894924543672466292043280242242981340940119417405852475845822999901813120194722628019282898416586951542181596175447868275097584695061849498836314140133532770942723123940748831121380706542922861359709249323494051387688689342583728209869245612738604421671282466786430678187155288958917739202203400871911049069108121273509105759853795873795051235969370808171777686421948227076330226898338320617129082561601872842149563433293940151653004751559903191543371026724645135048540984728079515578745215625465928703329663909237262796332397880345422505903988139114191255984402400211925015307345752258944761143438355070335609477257836120245715416722332916303835015093544797560431802178393817725736510921913338010834555435268081575130164330803286258248975365629236486525888090756795538843183617544635519675129405768486722070805053309976963454907903996831951228436732108843763450908900153652018763199535555265246663879520639107772809899971550123531570770423444486053050325472618108878512722879019755414918315110706957552902720541508349398046846176473114455979242133925487734881706507981922577042787646384226918818755754251155018341658955574890521594124546953318304338525532677869621050866269090144411969114146319142004448701582545363457666274000122673869793741975196251630771065787140748303523654871368838872705564785297749782358315378406259113803459933307414013264871346912110274830655914117143788191666230736487368417899864872472447678695455739821665421070546859328959392944143260807549400766872197189625694997102584825827536389391934523866049847188451583328701782909652495515938680132833159484140840829974818242561274945767336645492347746472027385821160546754748145678973391023677816892904346811736247254245885561757956098553991784698597705631258890552841916178125827195438230413629000625384595104708516766086424900765101906313407278837975743076727365620630842895314243665528535228446275350397805505551692558713401803614325922945018017766228962043173483500598521360232336714095400277364475699011436474962610874734530907620251633457297010723019224879216272820949938207622762013104419803307951510830698856498919154754789734412455271034168538072927599032618865922959360984054940744057208446295998168641195395894124838319588958278100490982361306173173177961829748185159311812176201592005404701145282822926143754926246488529473842603704808878650371450236659695338134367573649951630614060069651139614848938017551027217911167781277956122468952067910931919215126970986958397768309914643096856055601919265971953068769416604412620108812760716749439046388680394798811019667842999069387710450390004151036486336637740728924396640207537021778700979989741306527795314422174804244080098009932684338198936168327707794331921020696226372760801820103634307414177494138581706863354302346393278065819793261890991509498429904082653463191933441407316236928141481287861347913484570074150553652446284748557408294750084387352622509055380362667197209929639238138660228148391140217000912295401177278735520967290731007206561363879071189219906059401452169116241470670356994751890117270504392928572714369137145084716656101643874638081261627629262422429034580775909763183018923374939138774403016843323539289562168247952490270832200677015124497394900333496182306167468868582191481180372091109967371062578425426517990425276771474269709504947269014770413748298908943614936956700044395966419009363976937649992060102379979032131610808234223295186533847924941425359880969119257915173896421733769361305545923904484337278780429462887617405420961064558934511497945240542799000929473645485174575585456181005806727037002028955702181489970194124342718547590227104192298045772135317775785739960999827220735193716704603120090900943824105769285030571446211493014455767149386468771358096802826304423002273199243258522810203646010626976221834741568846923860220097088174153523317366947461854033360530865292267534127873967522505107952363223532567870343837605179447544771360198196955452242153894393876306900259499405882295980904779639171576179366978014135819762360081235779438351924541710520251223279867060929663249036899523126294909271455420225483814145815243470826532432042147338784527743932698415022624773990459837673241420334101626807166473539430573712623376934392129606470848936425045414540064748423715396244396872667867833312355491509164183452648897527045430421802916236524063053613078656252287162144595069400139307117563024510603068412170343816940596712485030827341441829061524520729371496417110565388143667422970815293861474544967640241220510079642147418742685185257608997713122191728493908718808735323859187290214249717621471167869432451146766113138269543597913800445678638165877911603611665219881577439487879101251014110148114218963027385477884339953597906012024887723951891586363626764719005255257687797835690829475141317947942790677495195597607046475951101195838443481481913078854696288426315415528225325708565567441321857411921653959927872621033097668323396408971003481103506059445572159663749368018348398289361810168786558424394358566432118464820875482018516756475992034246667989277208991502902034204584481877427765957438919451543491249886143969800713140822133388323762582117848555401851095324698935762191329086098299150816627142883033692616465397164296563618025257412706982676843758944606019736613377471937527776511106547799102122544017211621826871484902389720981207035439817036629427945515031664110385393362564287864515559274294072948969996410294472273863135081212942940784502390054865465205194012109568422720874645862962970066074518497652198425737176073025371772084215358013985278680102154712042641460334577912591890087553713268196123542778106035953904282393314079508246455706565810525320591978141400668472501549488586685906950640115293874280461593890676066261656044343415690191673964364978252631018652502799504361477037018038180894105424374882468970362589585829781827234816979664241768441879372563567136294561179627825319652315695649069290149298427956021333417962833752683048641513431623721205807592706918085462617184008350410932157028642599067969238289949008363454924352115022258295452831085381330935772876813285136310444733772339229331219311193523712215827728199346836613676720513335022842638479481131086931960314064128393496090041628832122378466046369011159321188480651364703525544585485458413317560088614275977435235376440236428667789166559570241475382786067421508874493230844286305567934014340785350004639621984599903060127553859074298949922425146928481874722192530688376297104917244241284134129775425633961550867213670139953552263325853705805114367170100391859695683361424228350366161696039475877929651071383762212909119180419300850840931039786949861479234011596796885337892626900198439982345534704731138313862067210418789319620425294027448961938106682472844318346170532737538902335652037351771136439116480607489228471346424263673059223619047672201672232814751788146708226367079474966383109533612053809513107943067721056747931233673982878572767440507606858340976392270266150593563210749491829592273576233228184489945476103642277798138945665258592994684876158460382770032696827747714051151313611129147867227852998396380853071190944279162478101521548860595790944784002568848315838991993645983828054518207998247349986025705891236890085768567006206982034297885198902000955082188103573306296317031077309104734048807323896767617762206462066556466285420186803514475458227432904918304035208784837330157676982276028960893535762665650719676701859403793246968798818879381804654600250623411787615617938748267028218495373695763567731137823671557526584622099744721863838724672100047329229149648207095646007285640881054891003283608015502452627066981668816257611572034620617415829215510448618543112596624266340715309375258894082366840019959728840487180245910056849526607002948028086709182956496135568932895074706897912291392386290562861955760575151929028888250197738588078042807605136279149755819318551978146158971830887105437747940317614428998664822236104928115036870302670063818483122869503642812698902884307672501582897258052477671438973395441926729472109226424739921043063234752887861976936606884504437797964781577733110263831156380617354790559384299774318802314582315942376467023071410545859541444586785497767275861331074803236009116609700840350291625200388460818468202052602645022548165247916856284835408450291316588786223063173434563552287391218867367034359663062042288463951671655965713611053795069299274585664996180030002321304558824265922656031503761849441633561381490834687672015929230397993374046294784297661680446062725360215084972985449449441287709169315865841952103030148119987336856476640711474708821270992514543792131717985519929967828482053544175659585845988066180968788742791403939394103508303108619547568946351458714550496348292710233215058973202512169254151536512212356134293734177884208010657294403995231189076677982185788543864401503937492964112828998053789626468331904697040675929413686041638076037974106565274827983144641707608543842485491595431189070502532923148704420137974266845699917769043334144637740276928200957284851574187526953572974159515401819287127145021664452975519396048961908891208347790033265793581200299761184156104690889910899223622243754430541304469784221790279701385369477688894965202672142439633150771263071937400290918049946908540982017802655589289254800724111146932250169731156582114476622287726600800956657384062324012846389887605004328813326649376267937648632746804172147284576092995311434944366081321205893544783509932690720734187130651332602381862810789965963869531245123276489186493317027722863495518385257166584814586096518996071900325001024355539611035583161973152535806863983821833344779664692942132473729467141844549542923292831353721923116974509891584080613595353990883191012324761024007542453666693070622717230928714982789235663639728196133889324306761470982072222951936170114986046401320761371859748540593531684960919918858845445294831448193396613508142758826963877631961593884234849890895316907693818974345079279914304204214423005581818067746198974448033790168809619705970548374351820991500728939019164318770610222328640776694270364887937275623741968695554923057847852832908557278976992313348805729475050557705899040634089620903051109544909319939968761429658977160426355404539510812206192481197996436735544088587940412589687967511779295750760383863995368823676922758471487058468791428941921998461138245109023343001890131755332382690203999655993793458789006055249160604009984042168611913851292740475784039091346957985495883807800264006831800495559909082002407384130455337086694832463867986251767419782130339505087102641439794412586964729698866842909681701588516657953778644306322019018553974018258998157269378458060383703271657210309768879158886832197168044977971026532146965013422714733133074611010999176482416616569003736362937273492307947592690343254470437992799190622195335546120801669580877675811847524840931062216374698370146641320844666649454016218372199148116500196734063717123292291228928401726565084586816751328658576795725989159618721024535344928034002151992812813764082902705304223337603904231729478025576244769749889391046476857742735914075388381818483718495283211388427548985566437474587020115108514897111681847474970803693737284132079083728467698875397836300663200387969871543611884591868494512710479696759963079856559557619720530672313763874065716533176308640851708692149504262495822861820541395159360428826972391825605607259619785762934405555839260080875671233723865446078339662952495877267910654411954769134460616234305222995709787333770847885837664802166625276282756539912019835139991890104685578981505037679779490407147028781191041461573393521587115549404458431553653214170231333014759416859764246824748623651537545536581164508751577339512426299595804788049247769236148076156388702326843538790844203552397452101428515777728616873977272448524354904590822605804781780434032527640716584903062075196127682638267007172076930923749974318032716711122530664017936702683758476698049712539465399672157890820547141307670999904438082449009635152637640736049917348232619911870723154536497938156520999585757795204104038981677718943941092333400194382813256327264874986930672213268473670790849871017101726168576781698928116329572339508610391505249466441446841331940023182807478846865662348554227449068038765150075550355132716527621910862200985947037565412776369584374277512733794371888648524941296534961070751834393383378766622129665494313746041528416392885849301843239400885409979201406020132307091604639348422787240680192641392446428114152834178812438172395913408080894625036492894426890882549062761889145981697230756491566902631218570291628174738938772481331874742358604165309662990803746181875511856883850084202372996178861820540466044559855513872699288624912580048387471728815010923183938180116542886767978857449928571115135361332730213490845347824643046897914888566141642324444704549157442294731060455494329133938234719456711491877440310883656489665955360405703419176005453650048359664949105523538194723430213619149920732597151358131044415897977459825799582612052242960895490415270737604780114755482267240884387995719871296469680928081089187550542300185711391609343455258212278803032720109237450399455262731011686255381208809158710203738604940871908123366211653370368326887475097103016701124462746970461597262771279941101938804687418495432639577592077723208747881522690788080208604616102802941593379579070427930979021780488576477583440315811840725875615096056238019938474148646555093691855340099935210770195519251170153693317819530544595367733121771167739843112653071598116489480169538099118209551593201612122752209479616024756989953143841210615565594436851167537552194050368481334540625689626528980897086033466142457768943329219496440090683567973896274129221278099033352764954252437661320473768308536911326704754659461390115277223670726759163827155214936044095277177764573841786984217277101274504708122026025155858069739624332151032776491440112328648347564086907931942601863619425695253899271032574237280288792944204137366037708292034467077852735040267154499081513442288922288212849792000514832935406519365605416925369725660288355329614856248162762821943284533394058364339515691661879616410766776610475356976883518678041707325190388186693126611659756655154186509683477288593488672578886428122449612370253652089571966326022539259705731957938106460518811486625893234136475703826561417527635731241091081618057011107255721278291398153070514567992908014697800998323811509614694603397697665569852065936255604846836498725674934198659975924207143573835519667607473911133657503775657921588307262989760212765773934834887557908171031017226852086499212153517965771532978470744420840886531874176252678712302791477214708986592965071171784313106344727931845658557294952910878074526988436056716711610853710130420813074287125302241378213513211598497719181399883351187402455059099078084150212996707992091433460944199120447613011439733309609651358983943070981884040605822277007522939980516505661121831035333317986969223975216514342770172047171802412275376141930445243392845772928179614824228989275385851394989165023195734965904460003016844468564800971536825013285406933039098834341678210214303977186859016465388740974248481334887289955867960582457305655825363213051417868229544208777679922515965407963848964484961103473251706031010168461033490818683827143327090944592848022456474374801879573001642820732317166324285722943611200828234562065128148100931230209847404918325618759884390500207457666969713430038970287977326042610414383308489301834364851043302866906794562374257243315481832470880947169883494918850538311774991150127123491228061080541702870120650175970779662385485090528572232186992461838559496312523127726324184417009727320342755774819811980267394992701000360081854280876432439149468082617869549020220655843270877472467719853349751953421193469397560283861663831192969882293701877131380731688184813388619179049886012820271670030392635496327650103624762825053286276125236122941154229614304451732443882021848319505908070627433575608707892229299881318384651977129800536489439172013280735393234116477259308198710140515967586780492991284312077646552937033487934499100704989499282729798333840361964655332977078556680518567423935312850077421820119652877491995097267614197344941926363948480745001071631758388738337035671123172413491386889936282467428946298249440062136303772814941497813136195073355793996616453184344723778516315715421369923603322572028823586269623652615641745650249266845934074611158633592114730309710213355803906839668001932823881447317442751982830384569271950676752251419730413047080277056030681675515656431910712738130324338096746422245254195802525064177720775282919544746912666154281188560094790970522085667288928360656547790780063919962876427531797341171104786278068635670556350889835505913346615389794312534024144103842871727550026021653233978283968322555730826268244874539638180272112282688719329044159782884684816458270865865019232953340000355424039792489333140250824328487104529073314001493411299489891597736112003434971626018933313002567013711233509999414830740033547240220238591097340613631325452436220308443662830408295067187240854000790126808518510125718463040787302905591309518784889785307793156766781005373647539226713097762499805988065029814927077956168721318393393242855450783521531419330003867135559200461553499697244302605259732108046870219352081698837925682046551585313749914728843680159999127304965409789498794153806091075415990532330816503909769254195783826906437982674731090680345281368375980419296405855260101989655381598313383987554508398710430272786187155197666215298236085805330939131815504046860867593797088677229769060829581837623249421910752328301885752873923650805876031103139320725928532410611250590725555644917942559159479361190915475471075085177458476682089925727335206991263280045021841740268972200157868497117338778261296235529311433936226975900865271146603254718299602187772583754584581147577536005685695205195471876490230690939367352885853325826493736895098435436185798370340873786877884341520805857337822396827169680510574403957896075985750728406511932107476853159120809685583307102801212347812926293687872427093872361073583302664340265458425869171368051002572786665019239534835168570665448754912765311499551284943951273175260629091044668955019909367511545343124795499143097963219344809809947687951187049540399151543458102088437367986549914977617230621173013969148258261335547171583777546492589678964759831618840626220187558144860770454734611219525694342903538959298363320211998745536606390709855934520117489081443123423267056999637571607330583471806943214534504277705001940656802205377946428003679039609008117802242081646875966487021129557329087502296790572325830780974549650662501167180163956861259819276108619094295250457083193361523469158188549683779269132876840878527443062414596400360678946496066265341218915532018808313637398835211157312061904083245245757657012129271444293019968574975978071860691319064688285556289362644104205803113300190003638922218873157840667828701380857537168055433525130493327548591092063676295556872272288270992591025772408456456366818447849482878186301905031406072936006331834169889020618475012956830284429512558534124583566400878785925461832921169540575457885387379655609914104039419799755181317756343619731957235860743530233624945835990634408119984202039890055711375544858868407415386554976828870774507429067171569492957872279723635680265483090285393264139802634679229957844538136188948445346393998089298392032645125013509029959842157884696870892182005831261269294901827015111916419234525580210935319895552168634596986403730985081683913932901627890834637748779687453216893898033974624824514776124120091861285673692211214166552037310140063764480476434467074536076323826822378261534264674595784013374600161164999341197119894690527071632386286598577024724725791223097234784551139954767263161568843242426675321522995147042485082764800941708574529339361485285015684697355968209937291668364273139820892040398210005256444293066264981652555327373140338310285602619837528384290077655913402606641565904902851113846316089907588412155951510409795819661114481142797551882937067620249739928394049241264183412410178008277938677618992977399019007405566578685170571213296894585791813289362133492967419316927214934803746335889047041095219569138466831511484052122121547202032598240553548166289811074739532850871551779561283766245377075579150416569634748803976459900875188198953369313300729245661600037089315999087000039966587176853293811783683237045514457679628034263977103686936758816948788695024775602848107389202983368304153681198364792054352695069554979968603515494695746008172989452028905031561257647245436597324992914652922947152449580669733647441802847639608937217840427200920001175985405386363867171221890490679072143959730007002632565786504820048916860276681267484870128226662783598752261944486609400682888485848641258107774879490042657167233038297471351711297251042048696807020159481469721192275215197579835755582444384478230392270697249579308248894716867134199981941811692508647204233423126654235993461864431426242080451979284832704927299215645951469255212260917761736362097208627553340073361693294798827576114448150455956500911710304989436837194230134119113808718624566114705723195612667355776742638681486585116752202500188276009638047847178738981164782438630986791427740532244710107778176677591132478806298226655331338326492255094067058147400079454566779888565183245478826633144109262920020612306238031060134329682419152119694875989787990312756266605077102436783327006934817966251551173057353898452706750861027042020701739272923604971289466197648892653887496325300133953725073164717849434667545483661190562404139072329262636599517935890244851230873908840072675211205092923594727115290658142100589768805777936361458468385415137150123489525032368128335090361315728787370987345032154667145550037577584745904716151274550996840704637285571606847317239781143071150372308985264626136026282214107737098025902666314144338046996150771640870787277915776860864874952077595003863555825372038041787104891108567087325881030855908297931567904108095753824505255676619934986925666845147116960916082303814810499801338184884831444586836641608950477641197518497504843618243325449295610226251339263399262557771485635097354400398374770899425427157818843863374288720903794870103292174919454557512728721363751448800978450828051890205764312904616323557167732762503188363052518999707520974098645485671751296580032172863660926038819965735039125992998047256456373099027794164815965219702001493083475817774171707014174748420870852512165962973721790487728440737435484548017016103488865754132620827074958581512891503590529574731535874746175646580178866680996590363169372033203118574568975616808382293997070228032507099829606097160253804567579814795362152211163631864898732673124637298184832898885072910133320215822151860978702276000005262603546147281125264961879841012966580163679838025675795499141070925771856334764445203901188506683241484652191537904107307259299707441223070090085925350872381217760824669088882466484036759911793009105196658664710190423230918679175897914116907548763964753418565446025693885030913391377179653861465873344550467063798113981651833051088799516174953836183097934905176078532162392494973112285705182554736655770444490937316375307135574771800643727866434371738103064591381826374993439947267181045598726260326413384867180824580360859738891756262841270765818468278504404946248818269277194121618720659319733621825174099171034602726688634788741515246118677345384310846470456518056063871275011011402966363971344214189763113625625679643790722704102158306522193563377289145938916629490810897025062463922872432672854085949177299792725408978347413340690318034311471465975287619226269776945636952119335989478565326620901295216708438180056685092944998167567788359180937829698801598003313466425198982005067799040450525531692573245535819190450606070444749169283907045293596385651985335468819001122193369829552990012724115758636772181220910160215608172165616516649449057776554623681548871736468905775763683384525628568826494643537082480827113085210493884345761065470110187666138177910003729858772504829923642443598054357444246540539587497318206286214833858347781922234829983743644684191902487450411969141403129617545785321649883486481333746313029001086355198492955996553907145260787859449445036903383755415076478910613169449116855212405663195320872668736226302448436775516032065595696459993664939977068145116992890694186335621596655924891751593053129898242583182867049050994424390618993424978960366505017845725032048916317118480142211126937814398382927344373687708474151006814474760646322585823160874953792901679812325872349311731182491346921194463509586993521196631334000311379803419652223216342098681987984223114976216998269258359509746121210421490962504415340140709425446930482804973510984903082031890065541900225423442530334256280797123872413377795493289787766460929773983743279055860758146239227327686979344799093538447470186620151695108508511258423020969522247750618225055657465893169926408048904087455930015417109215750093024574975299500875328176910833989333652398530727709297421341138086168233053820906701396138242088093290880291827186953678857989249602514999203303338744400344351833946404833176399380004549843014068276083305687742963572112224923797085595755825818280578225904741638036192113236720158594332296905865238604179672922622890248497184242912639309558836358714185916761610235483760039309183780805862848420168398756660938427721593389898938805686982705217634468169109027142312592181855928549094321295207338539552619981423854881774305853573428368170914812628804982473485732518523050935783268705793486567601564477237826087323696530677351198518223896456511795680991397312511392802029976281448046927964655478292893543435830242366425632017193596662718317094332556019461896240998141306253309714715253056230371221237343575296379078974198612923789304294113442306631487741255870500294239788924888667196220987696541589409814080933829464920608159294229329154946619669966893670501271786735641295237050411049776897058766536934675266691141079365564694023027962154336393640924071331402333337578443156094425793586501855933321977219406319462333789855522880656775407727164971321410662088613977516414884371022131463492068734030607777331502501850105003646446196031562306221343250125998872041112696401311122184815585151319170734991687032133234236775993930350122006630786452478107381863758471919300960115031051974960407268144643037961840645548507917626135879342143410582869669992239814704229694229229573173603467968719129760974532289690292663588451843008382278171161387907660584767587923432864477924128378571466097738134874792492366055151643495501763076429765629249914488404141470795977534891464126429936899276905396472657376347306845464401969886201598967710651361120277010820914291565956781980960324534364863650511382023684112022314998138604808146606916419418761205874490443606078314096302416539740010011485499410394536456153217304659922019072075070494736977968680128653210463455295315591177815629547136872003655039756956762108133898280104910641122987262243257190869757352024160462762827640731511887876015959764456254087296242237147657004873738687809778449300592812802959046408986603905127045498101937004878709889969829330523130008579662804291975010152315010687287481360868458139584744565409580588222085025984206521187977303887214375142876788537957560490118842575995710114414408111487626744301259565934658930844058607129630313225252878617460446498537940154066093632824796946711083436105009379650182097462905146969407887386407980989826038831453131284884485165825566810755129593276624015962156267416400036776169237832417369225744577547396961026048758084762991030421117845030932663954162977867741084814919708907166830895929745451999403564250955402283829772166578307889022031090228288068634378821497502942597860270206223104561762452221458861817289901606420017067430597147177147769139510730682261515678156969003474594380347732025637133886253167344140626181956760788308343887418178358525115655333607192446608815899829037480256067684007761220837113197994460191499263153610047151121255652339289084754858845088310329286152092490877497877050022599882251151299660423359422380672122253459929862222503209234539645500975703628008871159878425315800883683030410469713834391834696580390624928263742633112081538590505403590808430075363468368581714605745378971546143082244837128582085064977281454193192338937651425468896336883621182019925938688588812693331750401502986345183620706553082645624617397658848687937335952887000004364346321725853361416053412021240223632169619879821707082168917759812218780341980817268274339786246297235057954072188119682597325642286683097840074878634948280804683412130107433870135637575536975718461186673598539608069735621922995363073610945942400028531202041231862094801450401666874016691576715800535103119225700684555368761141218751535476844416420918335561154953703430633700770513923546305415550721129805446184211149712730937353631749437854650323253392519952683396469373657308205042003000056550233777692224230087915013077463030845388404918292121475911956568648893035662500792400922453419773522742922176552620478697103814846430099082395246534900170941605795035483681228735621152581500865799443797492721848771282738272800347137429990542228891610576649020623272614255578059551646461367412769073048005715157915498502435779127039772383979634076914549198039686886674509542363443658349802786835448979901668693231502972773983687717357141912412671766740907255669966360599629834225649977834249648114301650671988737580771664565965946651398441266407749840645117313649492393304953588356216172695395174126633254653219636859641246680727120203940876288746792568904425348359071959967965021582217155283565515717682700854776741845929369055819116453348457857615982184391262689554523475377227450325075207820638857254784944178085502336333702833377853225371965905735604730329717138650449300372675306279466964207943331944634916218008841867980290597437730661590784603009033467655195956815726992946418658791842935675964611101000963391510096768641429355436591375026979059620772644156074361202322149570989969518963849214230494182516035283644239357547745657071937202950697140776184201553660749888528850988263070280304194750592063630042703105885649077068945878699610929382551742148775076404113234738721665523725824675179386102390860215188199974256648629118176446420024706180327456371423670534908303703177700375920971276561946632684510161051625813034602318280394939355448762059742354563622722682928902667701140123633793351099501144549648373782718636854778723931895024605482446475782347426624896103029852493408382967720042557534894667593657237817114262444408159387275325986273800679915022512232572319669385987615832264340795031989813737876073975969945069751785686127756115054886384550539921641700568437115294476776277781221112855080469255495730550888273316700175665787035327396849284844574935230868125383071883877979927143314957009680185601370297248775259501529077883557855305569896758000420783530631649520320870913064914867155453269665290549690378761251565700491425013272610973280746779419658384412355613708358268887410150433886122835213444091954659008337441990268015666312361824339835010795362709714472047342968268784789522769315403672514232848751680318539603883191620073233151872444020637285310188092154500146208017215838500686139775966432499863511937747596719854690776097859410131289857704714933307181822375319079078697277204186428495885026345596945457461020084904295634467577129769912875648090475351372437570389899526104296673003529480998407424251787856951468400271244242473818863630230051169468255451375478583365051749099225435605591401724197224172849472177829435589473845773281201830315628153056986709107594022630771254115348485319526960997289824894974867063156917286883513485767253051891901859522789797525520681868737865560851209044360369643454101375187566838197122035503447658872731979238348660100777091643759083594554945047081023965514024742884739772885466267875938734170434122346920955472267133523573399076778811704542145006242157020341069577261431232095176278374176998468635147927285819369949918746555573855903401366688245513235877505132816255650091472433846934957744390158314336667831919486006392845479989588198879851991373208986210093057249082977155284140358750059503292327326825848697029284329090199524123759958859620815542144874158024926296527883989185229463321481596498240451632779395393732614173092803855203006815578951954502713188137542962404779186835087732823631003501359661044174440108371490443197902750162905649376084463785630690601153929247452216117131955375869991730321608029075330711750026720726175375587713686502636069498558557333364540200290923879636427152059379837133271447114051876962003981326522736520421894418410211507019272429452381182102716008761869481316698590344075112991969828239156008322239514705448740677556289470110318238963436533990983506563012220906674977007803518446860100129201700412102406910148722996510045009478271424635401100060972980542667475176407607254786778779210890950380618940390777047869980417498357875530544040801797804440387584541455354127839567453335969007390483069211181342331484307742324942010785980430898809112800494826719619986575734553200742861759847915690876595230410174024390214377094719500208111774702753373808825529337395760829397345784143755832142091782580180332802089394174608924497526230053059263589553310611586571434394574286198281183296588879959433941867624688907441950405690162679548007644442977323261357003528622251167408145011506486240380072423921753484003931895842312084575082766023286749084517937370317988457268104703825046231613332717806817440904022599713332249689063413793086092632168573847391945761498672198700307031534835418073488302525411769799192368109919734421103679657772881026748822400640751881910532460244382482532534420643031064989486639996733968596717548689390385559584285643717509258064866642428625658115796041219555990351575597176328214282289929929476494071966224735388100616300975326121865265317093168603053812563016156789019400131198746360256066260366854540321790633511919067558088901132990004695545000121330469344798723720786674397975779313134180923388809858865353555820881204832868721189581915811918643553488944238584898073845637246981488829422509041920203283606713458153424434122170450819273287447288013620991856401655627252820277906066187369830278948883812909940530771446353026642310086239440037974633274962855420504877476098123120799827140311301145605725587175338541706909133624056638711831647312194696785361150846221889129094073744851517697981955540174369713865080093043198792450282534708981563524509899546218072281404634935806638203975728980331426309118907113853741003243883672464278252468289267211140714891051081571340989914684588682453319251618611347305033996761218293353856083201028157704983533015024082811955446021200364395195443681615191685621667433534658255802552963663946079886017825437085863359183093700697780538791861679631064847051831140869580986104338500008995452089554865304850896459086726753784963070247110889167044477470404640425849258012593951872469313988809765049564282885422970803151264307368271622662643266115960930755606397474040730747602726607382711516862086531704505467900985099489386006910303013851873236484460756822634605278267558103765601236237552981122982591417660969244870026984373060601919595307201282435674902077171453410590395977667621678966387535346991311991235475616770945148019532158020937577533052443264691344826128879507913383196846735495419979745045985772484406980658727181588026241688173619018032746290986439502014946444053870042640216545943502075416259525961656516750396551728440640827082413022168018518586060217154295591129167808757297084567310279523445315962747963414123039647145987097057826211086673318084050489057687283305949024500615051604074227020364217122913365585857464509524505350596186223097345970235119122708714106310987922844405852055575152869935200884508923559054269539109512694262715227986763293176529829916467499336492826396882813051146884761159734644702412641108854419079587426604996964330987256898683637100938416207182689367272227579456497192527066556267093345578111832214101034914849522128160135316089439163666046171965135053887777576525481879066603819841449459044308496157232303467614190511834733261109057908283428676100979176618863462865579367807093861900352267139206432803611495191224470910403186494157122143743214990576116914283283407321923376633369325057217511499392531802422461215665339872048741867199788916940756334959496855910139568049018106315311494370777747741416076651046040415685916665537209222420315579953396430797683458247691753944658842536050145259568198591418002293291615352581147936659956558116630239828274435947485367368592488155159062819395311408111219329570741098387492185289753301096563178665935448816680021178449694518165209073712433790969330218184584599497643741559774597968624784150392122238662287669129190407407368214261778514862625474182309039353687029447032971945805734737936205227248386306392233048718306225246491610925154512056087050319503296374218295646386874174011118735899633058174446308939785887192261268356667292095212403075241548077384005423527617298923155983577228222134320041776392290856995580917584864475087528360482234298814492188348032408711065121240595219097214161364356874412625211268497855711411648916106039848423879641589374009865859807470030753262851029045704820361619951665772494446453061616968010423350614840669181714072090221237995887519631624204344475457466089441168132284953963904374388299597151035613284314518824170047038325121523452934875201389749106336410867811193216339873893194526429070513280277526445791496122188425248575648358888663054536592116241869899989530312500925577655177967342511220685395199727623481561492457082081624949485320107209302460729905999539658635356540896207039887817844603638486345750725069234055449170547935830694163280475081531181167931125470611357320127281805741532749351302597792429056735543297095515601565626897235196458815712451547165312278949410073483535678503694030293107890552093247143024497883464231313213677922907196700183180006398865163656968496149644101523550267743614942024667095245519855972488719994166679378470233556739193804211032813969561792255528208935154796421049746023059071277112860010436933433123538116962909705498658074774221586680010295193258656371759287984025740972025170522228620320687127080696197820857071530680177870743206827342986146192746938459587591738467804720278564362236141435767349867297597366491127796897221873261893419628012930497962223812015531313864280448592623572891238860414587108389666064080528736085628509032699614546943432519667047311054197464874331296396315397066782699171438284147768863649032267175001992268012509225336114403187637656576261514758927119081748249243091944272711657076254807479846878540661351814817377373109185337851294458636208907885536720615638533955523465567816468868470470611148985253038493702518645834072945729374886525520993885135372988806458537788919052400938890585772322783995711983309433845188149726284330816845425282098242623057764209767068457821506160680747770597052673462863041085189467468031665805734968298706504727004560298323683519971129251264645717598037823423631598508082379156526306475360735215615800285949051147933138408077500039332409888482816488848210871885242345006298823782811769979026172410381544242138583088105011102956166860897699837717573886921045427103271639465116303310822787216684257993000095288698436368337292563897306750254680047041746136144366569463793758129811289061587263515145951325522422268868591732454080430385357911150623091788008971418519436330402932426795809955470653748073063225585566713518171490655418441978881154361394430144913630655607696501086692108203169248698338151325783943978198270818705227557313115602857303606836425305537846740273150453438587822788358429194941326250509368335441987349030763820438252367287153053940035404334534608260837665309028764050445126715805516565038155988831725125297861593269108853524668293007191283816736000946329631907672982607671864478130155186626171266434634594731546148565691214512338557031438758579144691739429065416144228837875353730204183505475710477360798566382136963770179984486030202375279255537599379512684609840027406298487551310122495593551292624024296167867565189779999281485413389694181799823950264947065979111120266272427772024097486328357140108911548936060439673237239368601864198885111467248266439619515958837217738141035657106137038744482174681513939965316225846170888331442536301041156486202200640351995464668301979208291327704596457600045590614102831347146933985298394678271379107192018699987572856157228094595740109040948830862251615259091843312912189112180035117625758826705273048861661883406937906532352027186031866588891633932988702017293512594774939420590692463400783702219733811340868262871458481516865156494182603438344757046337853978184424297833835310738994443155894055236976231454395739452971085933749525209775970773531388372547638658483100035443402490435772116900375565084577685512727506154487512430906484454745324096097013402491916344928275600298634106666108842740000376557589846212711710741240248855536559906954691533375201872022175172634246878048580077137013582840337872208369846307973466358031537850231644981175808373754651540302194643747014657463236562971669500632000897068471901839340607227289500993415296587210391023735295409629596087069819979956971596560095625413731097192921836161291110361371772355964947410041043223283789119777478999929945099152391543063202169281200905770125918152602857300436137908341384763491928063393657330296415826698603616096649413550503136707918484375836476821829533631151678698561767463655824934206299707179167820005291047900614468634738890054162273566202461441163877579394407441219139540595015795029259571467883345441871929302165353729986132238625367789773144446277281548634707982724315260928889167969327384564747171455538513736173507595853193366076905759368984484798082766838210603936222584123678770988467548990496493068309521845064797923471524766149714370837961581487996504607245658948541269648003078303555403486483197479312064569567664522842433919703603719200786213299399217332013119831858035234606706637982334849458957904576275462379189750879940261838413154243206192440806332078434074718362514282180152581449517298432622011560095414610508900998602788450056708364366643549265328810951644823763572810955694483830988203722154392298197960339200290559412469521821687970837481028930891393702447692775889014792866048361058981164677537752613674719968303172350176092933656210037504758698147563210453302787379759386805159290595589842846911496867416059686680003828884381248714777264052655687647833325325038723334176490335773530989106866699230406870630801870341411586001889439999363650493013703823185356296263920881306600382894085829299295313238600925479407858630414974479633470136403643936644564290419942949278761189207075695494901103988087007713727709398395283543229910288061507906607988565433882321349108626634163873951658168424719030642708825639858472185120106044436492265314152178538150909356950040289897903403584729910482728305841917060483305059220823889283439050833846985437706063696888596903635350111493394163206033825640155033254833846087023984914493725246790335658823831207031320284574040734794152995432910079870805706623119948575284469427176216785025077393970360175270400399645739556546714305921508201886581388473261104378609017129069963641222288997077999319187948950593509512185710280031244246722965158875733390583281894236580726260794429865333767636699701673850143269313845024512075294602665305323940663380542269153466761148073531238233221947732635839540522125766063835855748434925985178723849738473519775697178461462688265047158737560747676638589372702082991025484143767347839323683316145090807037788537485350953899350210827146413581150058655857421656911691606175071496439700953626419698012398266904263452441166751660856301995035598416191172816131335698015548237361292619962125454915756249837829226189486632582964889963502595784847340061252385381468456509286572902197511503887227846290311979337222502292374540060126540049263613270635347117854839274157875758639504773913157312055955361709185446584471472783321193822101654126828913915363961658566457891837001636104937842449601502912836232421003084588566784807473353242689169166281317135067583556713661185464991171418562884031229867236691705001056719328509143364690651414799175064147205757082061265622853402772328336578015713222713549553785960562055932781217018918285109111605165096371243488220889486246392852793465568470521342800567959610789293771846073463774320744270114026718284679786046908832638902408312681279047665593922065280555482535468488897160675341716691365978714433601041183059897963174651370826797569500979937599779791958798162278597870197892268619857423235301261323407139085925840664212544003163734513553355554135631537422724238038116477659267436397380463691101402969055337773145469171843400904453987337767548762002097298400306968860404283852471196540478150508681514577244543613666525103814139333356503236605568550388801277522058237382698581352514153404383119384310887509199653901055423820836208920219991439303600078658699418946729665781242630587011759290577022231429773992667276069001150096504741037621376145085565400618838979957914059791706058096507603766336257719991576617645319581086013853001201383844527474172034776916151037193370695721479829179188719566544402263609773609455666033466385931187454808781197377750309918934144618249768399226385595569590867317827703965810993585131846514156198198429943346308952511908358357206834755519551045382434960256385312485937913682803727250351889363521905323009667513520224055252532375166499605838547152484747574171228764434567231428301450815870249074879594573407683552245709465002254993628487944216300036441621201387322223279705238353557720026570816410203321901649873075540917429303565974937631336500266996739908209456889310351406209002784883310898480810805239614231051427250366294864250306467889779950612989196706138081884262086524288241078219374046088645242638326185290281420863937199218578903979690706450966842796967180442533189189456119628227203416850139401778279563500237770449985051742621865649684766270241240765213886527290577660617249366406267935225612057002847695593504578251650666210083275222521171743548582387661425099065249295484145303331242758012318904706281694817164613102596259479378453369883470017402197054615300112239542593557435151527923969282718197800358501381330751018275377904616774649015121046351413955131399838481957307976976054305175395654141092222376424697135970695484734492086113696676298376916946240994691820801888158195293686788628376752178381114389973436767746874625585417942381271744118222092406576269322458566941172303529911634528303970998653056687988519348897592109130911344753282008412179494899917443598729906051993083734303621628678371716244367341221014136368759488885179109090174318576033819649385656503797543367660369615500462777252381185404349311389885795442279160136465563836182381867698397875667036855839977236701992102177894077983462226083750959188927462573861185586981869821693779466426711425939496277871786717375255261325970152066771031714404448679864155965324422960836368556911002420528807233724124917839273420063055029611345100904320132807489452576967845353647805623027996570137918704242337827717230338566828327018679179901488335550454423745471404426610710101088266995350200008274695300218387372251163603537010781710254609957000792788465400762287593256142539094676921919697203575051851975496861402688951425249634154808041320259507251952511643821682725086727542525009207534368097601445727457218158831079878069974312515200987540104704272357790610273615973273683370409628087599046255446705546827874793884965174510197293651469891285481946287449159795779527833518495940580755725590394214692856362815571673152452287299974719539723407245829828211950510529738763167034841838653882960480727636375700180598435145354919761858313998527835566023813111684425992086601090614331246202535244485841320250945711910112846903276666518952543901759882663518794630804489752607780523661879622873107981110858387486332713550890395446045988377438673986965927159747048992080401269765153618903374952527541304199437550086247546514696582387310011272822027460116726308338771665173118057017513388676791659473517902526759691215395880895265153537226227339354082664545981314253102134924611176097589954122978232618770918295944878744975227046343755245912943392491787364605453946289618744728397409205043165714688534611703566224166928616002211876580869527390655311912819491799263384001317534334446641530395914609509094732711154518189370536423359697386440474146610065675358131930942824826187692693181917395789512846693084221030553231709550593641957409290327541125332511017186804281164998986480034151124461046884226551969159197323139752372237616521853795093717508940544741508186714797661010573657598380259086849750610856512826985043126303493840903187624759308332194248273250819345954137129269384883951120846068101573561214025267801622236066152798999397119909525984309691950687929388441018343550500897811780797040724482376706935777000670431806234542915426736160600152066856494179060709668035735450761302385572432851308526355175543716523386477988536957343348260635593803604335106406090987425458609166561129873447421799593066032836344793930728701448041451834723070599077219729095671549988687638781237708106259000037420583305937254781896108208858855217231092417361852641527108024976094132844015163088893035479733169334713031468612005072659871055325472430041297863162448914376635134719286862688289113816538327277158043706192159680784946261497213905837095557174588054630929562225271029416115233929831508239046846597358174089295854548579856228929039251469708213681260576620318185738905057407327639940067444182100228770812096984312542329300048518495716750721714696361012682900569358017912759389295018849410065558094957756183326497338616298853037756171985701305345407320333669812011995473205807869555116726361378411732389798713105996472429186399710560076172004003035101999980004915529600005120176129068478137048443951072250358414600045427968851904847294041858262466238419722101738887795691960016372127111602516180428463964935317300877742630538064938909079846113513918653421023490209689248352224725973522451161778609545400145266820693494489533986417891769518817247324117147236012719471876220459807795566145035995386531920776176274463273683629464702076053154019572400453698192494420182813767684196057926981418686905796689304222572053906349350297558779484505354138606957637327037814286354568606299738501596840573368754629166907394201028955688116919471585233059639092547225330662957968481999301782614157974955593305206474763453467961620295485411866481123577545916366125737215471428404085584324021865791622702796773668282954315510304055193098214243342597031945161776866406166679206197425530823875520236975021134966728896549837003768900763148712212119269555223903411970513394832193588280395837582265262542968383843100573306480204788488529188098807831315239683119186674135853139700584130323056060059587652037567122909741231062718795373466469673604853782849329569205178723948387218405300803670327928555602429780565516137733749566702412441639753319255661816714821952309818701256952376772748864041442368853709413600111435436286279900248824517990585807674724742112322455177297379425022773692125179051626459621103330598761411490649519890472328372744562029468985629239004404687088488862776500806544885263757708465579162071131578202193875881540410977235932510365379199117851907603209877658113592813155506148821484504999477399399878508983859344298179398097205426197128153981532512218075433124373689087284092367224326572610455302693382082881695256697553045408060001308012568304048873895546165943663298925709594192644957916633357556716802141835525655982911581410778150579067414596798531387258433353598862526920922637550722949762822382147626663246518973449507169561727632581507034409772172085845592868630117772728618709415114276837234911094765949716120622219254845015425115885781100273522021549566208932556691219682398705341793311659502836106046393217294628564003454485905638619796001191127571935885540689155881028293475828033153651111821758204611439239727749497249137239210681637827830386767790800450842984011440057356709369701022273544883350154432963448019482542887940041796499537840196119528031201699593550777252030418047369405097653297923326089589741656964612931223194192624975658560080913337154364247424068864199729953142787815021279571508169707137376183130058469417172155632810793082627276931638731516520592636440643746571898632839243784129484428817110216377798973938948366441167290728483300402058294790034210720311138416680602350242141828106912734393782180308354987056264118049222288369350144407183872866816451783146544609088852290157611454197264606134294041552134107594185954738843696884245491380491960777018892131487884779490505543491427258364213754136813380763570381249967873352816076224557166098031619313995076681491273718673705427419134014818934145145215178075111281929991597280949330798555309785446080705162918424842936575026452657101776410017039117017504998488287457167262031835560527285339737677417834522157589501187331071297089595146984931990055845993428711940654060180032103124266085203106604130102492164159039499477101271685332083322281031679433676003545367725020553776914939112992614686722543511014559667844272553749482504540585670541176594497370174797002247329782241507126216719817054426142816568438078130198671919496864476052497439185829982502686433077401431634768287502666514237057056252380321692889509676443445787291438424213756156385756833379711853703187911698819151128189276270270117692878083638099322612112759651608098534076666565655409888954016077152895632583404204594823424160443572945920712872813545930162747999599362234410849687152042408304548709050626954171000344486114435104982177955645074140705496356137450409987415541522319182493747757322384467712000918942711402662744333224790138822239878632752746213851686065864652817231757646484726350274111823588645800481159846792034716849910092576766129170871598559672727150100545966707763438826421833948372267245022072212471170099360148403011892615035876910177471447184761431154339021855684963038384456640686272186550115576378368884061895104243707371001529236355276853639324301790232565542657834264722267594098925513070056970322571193402653090928767265338905538607314487794167614579535830343922193001699437766529863114744624658103513385994599349866263635530283662424460772664992609921575968254537086958065072840344845103707165215680612287460538656936285785296113303077657037366119748217787156724832650527739659468171862109409594923340089422228915630232141936476319034924715464996439781751730095526479188958555264785386290916343638691546301738776883022143749295918719004744490693384330428298802121676238930455079337893427329397303168699047527979057497702806177944854850415561974429933120584947122209751506315104672970498102517809857049562986732545766013550447720400157317911404708521179385356260846713092490813437661129365204231873230618457837239284259490653317697414151963720501812895796438987157809501672069621828194839979290267846772504464923996434171302239499765242955609075466145478554913920444262463389614240841636666960581307814700130398576541312118648364610958644829895578649247096899593192829183453814568840517880044683095772118432372913142757473748849147902002736229319063290231655870228258158232303269992376481702558262725598397884022190659753763840104623982672457548035649073022852612646754294765021756919371023801031472634953053405604655899424176240259726392218265862526078007773963716878370264967475808064477451008434653095127634063079622859167028676452040052921946194098736764713102982819215865006351395221480822917584135295381566609570805094240220349973541292408813233508830705668756639125852203130009409661759141768639824925036845479028058803603869737124975821051009513524348043150361420392276799667687743719981683248034174964923497352143932274616429420693819103812173788864981466178411549135629901652239926553815749788188012159848083131237620181507223666169933282549028782285924111827269713794378460410814174523911198015396148088289090514651976847095685087011903768885688680871653019481548879068352953804366399105060952951265256459746561354557784378226641076299770287879848235353774808251971187270962538689240383120160530283202948705992583359108783758245102129191857891851883216252668037386129949851348947073905921966680409446651926771814169129965611919443642389276857244944886106205119315209625605014858306848095816613891662979565243500257940688061394952437640709281032820145344320202433508453825641627333433511425618416273467120322739307669167732023155510489273513737716020693366959840943179395059066281950338021946661602296999194505442961172108835575946229059162430998612902751122271738170984514145824616152062106270566049094305513563850385241560003827254587929903220627232890949561704593642184991871392432750378705403480323380081902759194590451821611180971708130286359560474730727086729481181438066060237160794811857826568636012418236369037271094435702308992990539904538776905785551353034497839417368647707941370769331403895285821693768460011106153228207637811527206576354028706688851318528352700849201592817755962431334835218199062651619620321772024764623243026525000309074559727864225191356685497130849028679558231551554313201886671525478827543022974848977972311400821456178800892063977973192893593149886599029822491320364315544744461181218860702300093071411657389413813713836072712547474728892654188845084097519815361066702788369615985893314431831339028099532284834078575853907823869744973809375831826114897019138878593895061438060823213449910281467734290797452114159036949674818686634391486317810111630047853942120826498336149407381401690855870496525089718394068222313034431312638944631803672500543897593068489398937878520833519761935623444709822664618098184178090607195099687201314781399964868953335912309740656427217338064479270059872965037060073893337903779603373963905379895606271029543791251387041072370633658997274571584781020191159201267933335180799741534817171302720369572254081041246177044343409474726590868571580922036342299138003291892183986030258380716502062421065973388989737120256005206205719745491607615907843060700073049910429982786047097758744890614322790444313463518054307164827288110936907322018780685864463796304672656537647574563068334121697121566027807212791092714811036827808756527768837428005178578778875196170332999468453758087773005375729645380584363307332634385731079459930465796143246362511863886268702241067544882001671318531581470599931283557246528279939193037988946246264995226190907516662050886532661091134465829090490124143352200038550685094975530935353923819118342852510171745672045893862611710013638341149460737677104298534489009649391274053755702763510962329323388919137579455586901418015039054386996512935080443145915162073670826484561239138021818210437715385085324538316663471324750339168073273311853606276497747050061874751559869163919269780605302344273537974390394505293743275983867050159101502315588710760245960818071470029455543553714396499580443853309516050601914226083012086801563948885585213152144934064398829080878884057806550800145850553239292352624679756331211449024496535430319895304753415973049256288651623254350149325622790365249981447794289162453674695311619104870799335321582816087362435213885765373456820310580670766313339791929476045155166239075871212869741296092947384470042329311738219850402747236555897144419464066322780055534859707268136029998048055705053266237379936464838469147522256759420415812047336542946485282937988559778217951920182592817499149116556331048415958825717483699498485209812547122123372607076736387554883013511988544116015132703659347392455830584187006766372997517853868057173178088881629968115964874464289698945358789885201087369960807001339556074446808053693635980157247584837186650870357005332722019340096959148359369085114883886598512410679457798041299832809305868712231233120427923415592438819889484097533866914979921581261719707983531518690758196825937961441104228451068414772476076372514914650340859606416030168199872063100738889465685383512620341729637380821343615058886823790271514774014735276301357561096213488532246852319906543013434520042787219251431090492191121961222416784507086196319879621432286989409853117165095173752413522661464815744403700092361957142277965770270990747641114007908963720429380447074905481755878039575188586919715318637816746297436106077928679656438283293092037760651084335956991802837761585723341688784236098771195982495656267168167473876665737270206191012431783376934276440749612527646383582637426414242075574304163387217797882483792359636417750097210588914933116743336523165502764200694145244519711412656665308777754125191017446125954864800307936144750997625691869511491007124778775351632114224755560810476612833036868105020355957144160661838637654501621933735832623860401264082218510957142655709183924335430188102985702327022598359785625586665415724567144723330593365411682827118404160748603947395785694057724887653252569837549480227095076493027657894219369969368045810044670181098912754480492349551327233461890798935006554845462035980960751283515290452529239570254575415356775627300623423572741292875649405816162173921756018941391862777101360129519665179510951483538593046100380247803041354573657744357125392757815302266581500468238636052630832988582873101443138109092484184700539009754556856332157933435271210222663199797228809374185056522946869835537251877091032449218299824332438953399512823443617140286771032484721881087507026320770456396328188208007999099124021017121592567448295656077218910269596107566511685110321971492367375994165258395906809839262809774836792021870865304166587029766471522959245754512476611645472464644608054567434766173580016526630524922625425189126541605650381468538212145648038695381611791506621644682901557355518476350650679733348680197421267662341166149936010158431593021840128669919208636211931434395293472822730075307392896401768180380687343955920052629813333571131621915836741129376142357205170365435225730600931539745419072859572141859230375775395851409064943166090959015828745932508818128020529028259459491601097307056678259084541714416154271580350976484342657012817282282519799094193985049500088522496849288914596780896404300178700904903672331454372282704067425858162680387506831492910083551167791172016847406911851619959053095834020160497837669175272613380295575269269319737244662112805666297414844974944132115900320162429382131499652180471315739478721974455058854655828961298176835090019114447806035446534071139212754238408779238027241958968755363196059626141489268292602606980441845364672608333972945096608594548352049609257693837729972988143356969396982826682840161253839123685873834496904529327973939874965780688017207243067709859224835453738567927962240519447869785582353532672584900609131812359362097793532008380512576721966250118192889458020957077060680191581042442887594351955390120306016943764590605351010264970412173887642404516289188254492651153331844020811842074231204287569710594818423026380844072300779235316868077813591714353948736944173158323037535160994239219612709924580731932051536741053687057372614455372542483921369862017162545272891657460158277697628866356380769767342878190932416842953419840069404190760864414913349992275694732462744224460298930150762517135013237458482127090603978915705625052505726694512454415654506752107758321990475912534125341620256911574041596259788098341160481617198059891409805113916581592803436065268386776563873358974164338601744080255441581107822019652752197234469054302873258692295156833600741621439674676356781974830828177812143440903040684953027835415546719296085550680887512212429620488922881693057032537392161262199459562154608115408240629651494183641034126801280928642917202576652625520263581499730902151284277641764868792478327055318575902147150672394900736605758892218172010056837772179373630384734151817155504877519400100112328120019603867295443844908137852044004917099365111916535662372816997598560311247521920569767313924632341215445328660563371026991499046560283513398254833083067519920132353700229823678537479409255510699871715474536141571714232923172185770607969888385169444044936791212850125050358772094893313185124692251451025320349221686928834685888517140130413727640455846019318666251825101444270537488307940781883097635613268262773471147259668977595054272251084240312052629176827320787897974872246057321949782164616792270484158216511487584899825025866345518105942148791362231751269129879078569395887534741566104651772516402818477598957061130163991233112988249137580810220578424455787372900467040725774112226699748061269615849760607581351682822972248548200897105802129091614267004253723722826849378922392819768158896057063762148208169058862270247129859542411922971842797467502882201412633679409350213169674852790166091719160172526610862829754774084480901339778533649588703501410632892481174641374950617987723697368229844198150064122983161516724089094659709701287625193556600190608469874838760856346978084983692093913770760849949948064815078766467017656782810645242717754942024105439015356293398006259595469435676241216180211205178233417555211861198783183631782938644843055697729188467474933887687069515260684704089458354781741890474684850849280619196712740210669919173910698649770654033652643818652299519101365436560934544802467091993394236808023102664680234629855649604760893909354175947551516644595168856604538534768214694517699222373844906490708130090086523553689727122162571906562268857741651434941419441752855421018155730030249670344701964780589560427041490733397180914599275604226027270347900261784021252719755166039770282539953082664725981208231531251110622250877840174685167849527345859871536085993852041333402698267491028826276674385452936928904187038436139760462480405972970408169489877100832113582639781375161549252293180855995103741388703347186415845243358405045886249145324263245403460343708661112553166070472061683656191198008464332522690397178932374942041669991207760541069625666500343592445629140855541460106137503981348975191214018784249839832391389245187586378041972110349715980568178855955998910940205957598153956171894751070373394085767691718925140182593791781924660667543185747154379151950773163307694376603722240577698856571554284895005083953611103235907755995667392055574888455619752996159417479116316716199147366552164974106649400249302453513278165365965953654200408751120585235426073412647945280650965933759094757422263691095497427905926280001128861229538265149230438805239888976019001757868479581380020527717924863334014552253961598453568262968388429786243200116639793311202328486670988146374890258777903716617189618509364435763725898737819570294153042268067168610363048552578796649276133190071958122208283365297769418350910726222831698236821811735927306744660689710693976829343593865229767532899511360496129303396198251800250042085028300546907222331312836840807538601866346714954231013462580968839307052174042912767919118687212719131129290437855482986960586013859462084110530654207641291974882976537662926808809369821711058242582893170825173533304851580977209016414085583786556678006845149267641860345616357700253313931005944001011726653394001250145653223123814967618617634187597273725374329513219241143534392271960281232367717241490008594133111140150556185523346651593112432674114992022618947281765688930401191656090541867572451224926235552739707187877724093856291439920433040860688350463738108328516309783204614599656564044630340734062514239905335887389033967365210421407088010997414124337518668773904304700558042999526532394394257999590380401839025398160526021112024414432517994238976199266190470811671651774234837180762428480291493815535817647058807679474353084902741610010838097543451212158552648184032000780400720210680905323546966903234586725715210102728431691939120097585098256648322353413376950212482132172528407638112607851171568345988081671948823060570217100015732699439812973035362417632017174669422129423816366061142045225440783899926414159802826675195591199475943853490646822643805825754789558094014122029967839897061106606075814307187673129327431942156220312580050754166671861347058502481109002179621364700622072144493703943187876823158880085291989656149548680960901549403964757470448333168386944884341364659106137520453928807326682674819103962264130514063209033383183937189981325766314600295949799236571057486746460443064330658002193132884678244857454453772493782201338058870826187839546315427120460158215622400859363350553125296592122421186026373904218674397965873666690905104726460212637536438846436355132576759615037327520849736417892940953251752351535869381898141664839989421799194079191547917751910143393652947919431690989342069869555232966663765492304228729908690072167984076945911913247782502015159832413760236746219584978668058286081857786018159102657105817055729190118384309829796256489344445727993515350587884225303738282228854023511593209293192814005437540847563595519182115069731311747635366575663119516749360646088838216533325255097285250997609161710958608501526796074222409320526177880636607552240026150577892400188643019073357978856017895172969876027578445517704034432319882260494364232221547936516586589213497067919590654754226605308206562562281384882632295049124097489522605390870802332743182692718727624311401851154532619217374449823136138628325786742941376966870369659331997961012420821392672408930411606310707482021448483539304244288714474017126508483981644079163464498284182692905867820601117780519744389168648258108019742079236332349180513060710988998226116616664981186652460448620975899707225557810926382891494798983028116722496688612271280164617829751444011505410506689569438391212484349096393562876835731662892574598001014757462451194816884684811617465912004020799470652041386900143646861985115492237721700450339237066072661747011023415486435094531509590011849785645401772874878886768979533821140987103186925766475494919251230675573838632720135629648096498206304965150206186527189110296050221997828048436722917288116750990219752468080078621090594931774452802060751556610658489792656220928206826866536186798056599701108377485371713840417883769017786950639820757632225959381403571861817539537620506442032350013057519258928831740670946422850273419824455153852568496775064225711411859321006319164780216926655830959719795209609735764229723227097922894790083056288940489164706191255866506816525126137726831073606267670565734031700881184071038169648601608212649101311680861455181852952210972210180872644130084252245555564408060285592720102597564163148500963419493914272231605179152893631701142305233674527894715286177636498557763157066538355380943805112174133952850496632148622019004593392898052242831543283279694260745728696930041250823977389584312306844830321784472678780230396272995792498028925428741834527875688684123685806739744109866505851244118027438103742047217291428896639096237495245236331481790544502953265652031705445619895258554202631650212816131806849487685509435490791312510187683577847541255859114317280839302472925232764331570917793360629020031294775810774523298383674255403748672759686178982574062546036463583003621784612166519089927961417406610845383251388511142037328601847791827321594938803476381007409826893147424470025553360151495120227427547680814144273028613594591228175326041159116992814754141185221904522772168243968520660716975219851666156823949391417075872428814016151019070018496196471651429049706105434501017254735385459514131628917550904116326154099054065329921371202607999514884967918416954190464446291455838111572585694126927663163667974119268991463822400270270249861999235192559291257695880363217448573570213139714288216066974026547770508591995480137661040932118222010473515100697221198186565560616993566154371417298860345463362132993487029152526022302320228082799822415518794494585481722332680908874458213732564511162527213725220879517221712977797198478664042038877382897202198765389925139445779613704437667752099632231887335529597367646890557668712552597238554567620168969854855043838950301752313152613764972998633215002952484959013001367477554727938357412578457735639202054939914029064243417630697509665241024782780830800621085879589120096555225835693838125226502065502106634888848338801134935463698410929860436919268319083371463857424790389560573607026780430992263110833086939049445688015071569198353770886570617625010483512801463115756147830999528393494827694119996195800372675174323059655276390027403268684326874046740969102840648968370092922930709578066970416399448315097649170942631457255123842854596746314819783891912599761352637416481841586719980599487079729203513257771384554904922741580384024934760780258599066418120554030311982769885738788122178267895445297448354855245150048644010919893821082797742440249323232690017620741259264641097634171287512999085924125315066273781314453729799206981459364206418335015817178385842277851454292623620002500636299813911604988170786590419680514696094391816577359808069763443021583609355113412491514899902249213153752301682539659224658654955832884529239157552242167586175416005134917782492236713412506079455785835917354667333471463804139439640503358594432467946519427563913628451000455461041336233328453085711364375779109218042075075254265541151947928337516040660022715472082520980542138404930502509938361598236894558253486810384174993068140467873285179844562056913830833741468873784755732449512614005497039492738375726538120946325107113673839705197284472421824836434989514869132671144051880344647966659995899226192002889339224311435539098884775867519448104554994905547914654040558821201785989493877666324382923038841735511635955723301696800597471257092654314153199475555423003306409480761532754177709575592410349422037958169570073264575720503468610088487804059670237668069887121416628020079689793442826939908192121821290834646514826501153105146633268750022082404191031079821515381355837036860133153094215960189843973449845743331640551651247940105539658366509992420817898919873066998464871626311091962452983866661275678137918240473300966927458593190706050754713757293093936193162379170188250939817173117986113151922869954937652579961107467911990462873872428685173661592899844719526094039455192308736564080077316776909512601668508501724158463342230374204609827866025161856497510783275359783519629871094426825285121323660468219056579066756100374068456031077088515473552198927564989341684449637283799267611374080612895058733097753786928757445019128454381881763763708106728657493843262065290097448972828538112331147544766420493007294039009000929759277812206821115650911624431255687706491744164399764473029651152323709628186040415404000407774916944122339785686474264128239083742206956218297801769065549370691986613735076432005557552512633615783781563871783884258543321226779150847961547937858169271794475369633993689658840970032509431954859622353091892026300415195791967907599812492098014418628974310254202160142545091124576527773828432192946127766143404520627917316218507673007590511005502336570464194425914619865330643886102437511857282489118503072678596439773095259935388967032090971029966111987624056591764341987658496712456351544356031167214744219655745892554596792707286968339154717775105581126155163782376773454577972799419143727398158899347080668358652351773684072468085058754609113813483472171182118907938537088026007939264917685543197324669964135298062486329295133759087616912090313490359989608133107176612977736032400347089548247958475725767564797844347839994708620985057568752940160767898488712697262139232717517635996589386035274447084230519625086336278830374808111807086076790816134889134556825695977594127264672991236064367661869461454883373836040567558489056109288045368364873837705655785790098671207106912979349784238437763162850614060798267900090421087374205941513591600904305631352422484435562533321716861362371941171805125862168607313545706577264764056407706127261593121584053940313683125941510163419727525263007900226179707569616248981531338087780797886378028065513924809578819398281059205181128080994852936069907908137801925487125931399338547843936561005832138983295723364834692804151232511877041176346775493014810451313125107666671434592604792625837766128916228836323110543314017034064135779657676393791263797894423658116158071514315785266467140411491393212301281279153039777681122788535468851051764795561587268309898054640651656220200836190355897154383794312425131103358983009859501431564989905928883878561270085949583422180297802732366240707563564003854255634769885856977339292866839961919971600999532488109096658274094889294360591701010969086779372080792376679728976573114708989022564363593910258014882291274332863655141107558045285763491170919452456076389076571474450964824783157336901162700409787327078801298617856161354222419741723321646007267248377129869003825668808229438853311922858060747472322554889822279696823676699364383254012774424614013076142137223217592083245352958979729107970243436296861333510223257230304289735739410363554764430518021242775431545862193144277014615150440054329176918222840690383787018916818662791966181856998287471435817957957381952249830578275248504910960923148747315754955115685269168509115257635901088656823754617243487344922672277471977364141072500409211620241435589117848137635524808589065799360557097657650385849720836857897167853746869327908007134297432562172548836396483879545088540524444048128439785476211858580731895197795695456859777770319059400766402867003760294403983692075062285001522176135620396912720882892958529197908859862914879028649947259023214317703925484314071388118434204219375643634705585537835253853156931826105222394129946269354114195770562991473408333370665546193393546616923396240377487092671953557391052012647367688577632937247747828334378926070926011431893214553816219486857729215285911270452816177569420808992997710037869503429164078701349754863882554067358847511431308844182145814500842584159599911673109407868353028810954610957624024700338385958258960716925741820132804183564159171205486697343488812296163485891883643601248461272627032997537081670354019825200481419720079416470714630218005381840003116870186753384533931086819131251676179792309378280642151015375894423388242568776446159345558608336889446163072057494711878237368856719724327111246535338638432311621049428243349462071661007449020459044020258396479382175114908891266989817280911376234747176834640367610604895551066801203749836426604920445477425513909517743621890476979913186051910425012230937396295322679451015842226437851313465063863856515151962112827577280798495818305776591037319671194428535441609118802941529596201453316733413351205020666840182323472161863818689031409005657742975737440800925306998666388461677788154589646698538733959662925274162943781714915517093225329907779202420743573331515003999273332511000037408531404415688237236556897573234506210488393583014201208683603571894548686199966238130965194007022923696594978353031203520257093075386654383994872895558139706139116050941582329143010867144972703851667563926376608170831650663238293848710757167551550907244982496101584742395305461103754466188871780035781154600511299064922063506759039874536849932657657642040595495545547293100436810564195393472679573930901355588124439390434987640424296404595930450478112710239502282930531465508973935481447605079735421120431263302214860736645900123718554813516798288014126814089062039288474863230485919240194084839796278480579938628284259802911364858031384145086339039894687993715326010519993847949330054206184024072647368677725435674512610719727929129897709062086957833862778956185671706326156247600870833174855882990100749953088823818030299972495483598043829519289508948727344300559365357612573261792497967270756617081803247748780668392244081690091741321014868783254319977088629136236429857403384981620619989509977121507826096600641028054461350931853599015119418990493839538656367969130505758914806782696417908152916863220727559988069871411580423176202787611639825981778743263904238256029492699610345580145639143959856966403076580640408451374119436790369556268790672870258664536762276489341903089538545284673703741333705145316833715508944139709851966159165113416188126204006833180399458061426170835863828386194450457962581455047962959701942098534761904546991276740377713645395033409486849842733316864530859736730741020395235424856562409283284724541556076928793713293151478463924031274321538226734267820396995720037949820330263390696122462909836440984649858508191329198544860190478473801818569335751585508845307559021184311611408818251996834816214698106681954583150578560151763868073002555124529591267692149985860851009980228350435948017087160040036625348353663633419478602660209822439114222188854001398250863723768332119839710798401140288515198999079495919723287092163741252089210076373016422674790963611743172070823775488332837131214102562093776238041471458935738721851697179620799932594083115000447674280887903663056154773397656632607894924760970309553317414430356618898459314522509040546504655126627893242633887968391244068850573535749138115995149752472971004219420984017044273168026773289047916821165671577248629986688916534883887975416940455918462452511704098434564404425623266845550987434601239210552872864030213553467347391135131804300033674701102099869516182974065886930110565398222185831607548748769332969492785772151883374714754465074618645098017437803627114587412523635008751796729526321073157592180757772463197329397803733362671098353491430092837527240216058849906761605320336372434643931682106451260489349689311432033193259998412057600439497481504741619396580290723712578344680585287781092205930715269291078020057858076891037770396174147353981786379465142214307331158744919397051196233080522892207182350938008981142527473101727493514411051045281865020367948289542726865247035195863552659794536960113864234774397755998378111092071174136279889291702969248686132845763495923684442758847852279165040069416426434992404934508762350351555671473683787606035276206927997258898873687138582216227557210225818886683788789652434177729780598722447426678376379387915853987057338843402196767498789428928616709056818864180012423032094425942094074838324553170794711555426652443036243429282609318574780092342706834338829155136740245786998098260862592906079896626848677149970310038217653154661337562788150076213164111688464650971452184497466359500719491451805623535198637051033576575992747685061931130317199287084227944935875860614494962170366580584118099256415283026054244524427390874465056319191294188581343252685848255069481601588005337491081812285478066857580913567239948567841855740649537594669565301624388221450983549681145607549481648492345182771938060350657131714124763919346191523174449553257206668078561819554584103505041339688714950034018376936639835879145654524658848932031059906446002722633140141773489389417475989898396479858740671025164140118602372936775190422111219286467132775759933885343960831561826370506215393688153824203603835162549945590776431749882398429167058953181578224500377237222101532533632758891586923122863711383207813922464714628741225024227916244719674558263285872301864578039017302793367497805635485602490583339619622352180910458665287381352555649994718152990214665102062573783970191425746780493128976165264471706363410370216528034903789402726231666458153230001644248245605846517566681910319075214900542586907472427845811356231811132303838183947240246651736833943069649582400979831234623625772971601246327060543220572290951751219439701362331636788655689144495089614581669221182574863413553028975543515557129142698641762499690402321628124749557251930143762971611151642970187240432388775734048052684777842100428280568463638607192285186734501359516867836806250308752295526116441312842595304348293040522623162709174167646532558638992007112588019184106244080034105698441897980890071434140936309289088952105566329295110138579621253257529409870375758916300193443312262888048519493938362874600172383003346905887338819365788838935949786590796294657364821830152916658955180983123909408486738687311700547112047032521149398230007067242183259121133936713713482572557750833434432434865206373965858800440558294703402826447623406657047351077865063163604533595645595388815286682345676470621173881537055008766975196393733114364297966593627635490175277489833027173646550304506958332953989580414548262076876704084169606612744931678743764993841955820181984962895378921197238096230988353525442859990796192286354913425313235372182066390462602203970507059056161145793653764266686788892947923563612962495050631019109125221010073903783967176992841627780214463240744297925827196520380932066146737539354110192554707529574249779489505139490114627389296128032998875234431547076719743212358761033718802059470791083610500885905516128846062958929641982480953262320935455181394809961998256648258751199516793935164433063478443558740798616733170915076124360903199526494977065802800287135474928542392669424856706957020968066135558572334738602126075281559609979258070731277466730075955604325826168534931954019103844994962648294186500328688611134295590481056236432708541812019639173476675823497213620099924672638588944276127161096268596927362110552121106107021048834987353661097568292685395013873496671708304870644277119970300213443011441940661794942185551297806119085421829568363953110402080453541701041126273510209993785225909942262846865077744418407186709988864773491630832695233228328273113101393527487876671367352198687515460580849784669300673894795039213968965888144047253617546152185082099202444363690857882429046817357854263942824155271025419288634057458799938212245816336647159351650141520004328243893564542854280044620635420170907208739034072797086803204858439215993650620206749222459447560519303412603171808002433901347161339357926106882689351717795703264543788598375567075956027232988522992129592688129966084672336428924674003380161781264140402784316158467765911982028935483246457941939417892134798746946519694826305268541654608276262729866817170008277110582586248185724597687000686399353482224559216997084708211287360272364618548835755178765797741631406786542243967763667265685522794477943832714378050296168155048451969936309644648341586646624454737755150340828813314771655373700587486914150141402544429640072947588901837106620595024692626185728010611111707217661039965647545081257173314647535256853217251009526254351728227770072110099898599825618897354509931747378728613067875232486107666505168679622222402384479887164606134013946408812908944645813052932717763779908698608269588258744583962997707882990229137006994974640786637460588208784286917176878143461194235243325151570975115897659356877193213196535945669997967017460944608784388491484904060009081152266150747489836612588938095792993237570264766738109458675383610084539321988223178594915516972131338552183681794865177469680602960196795565994842054017253008159191237611699559775901217645701154416393571111396470148306552937838877838891013494399461554642414754846532886582405579171715511702322322538869852294033065317854462294081673248498215987662945793926676971735072731901981885135221575124455770846571115327261817079586988858062429349178960936310043602087372492011817713060247851605335812520677116089828853008762038472966147153607504964952809517691922668446821699304732607980930202477564627644589762036889397714208750589759745962034403103401390076113898345244892230972469331340381793407677325815934913784176073566920514502242016738897485448009460229460055654038274372878433176580212216021284744728165964730831430727494697950235622465079903662649079657634293612643022866707640883840445457355574370931001117262822009813189571023251289612209634184632902708305734293932175844504510682789914236528256056767376552014944236442676979113155891897086917775665685326313673629441174735068283333573529421719467593850358593867109366503563719505856933171442432081761391191740132561516377043135209993398591904338514335963990069670437613596808703384600235088164306720751289478449471911431640517068961485783907562562805321837014201205018407689196017087197573954003239308686486112444094745351799802877532156740664408727406063577049167559289424992239769890435139633776042101806383698858975388800539601054790495181372904839745406806676647039533150024246972403813116820333605270571036050668204865920414379908348701760918186049531123130706422824703246033548874061458482025549179785051008703296633289084353358884724283419358602775757848503609661572663656122360643148063904520459538064096532571586853551309676301469041374768625943054790232308595509999645620371782969211024994546400895205177989808693668212437007220765169016799003824284125552405442242215635810701033735882113875136692837295059526769231873641361469058131766704963964683446357690513745860083606549705573837466159591166370674741318214179662539957698019851108991299337643894280185822716872963692946252806445553176479699647335703042101926836535175240373102339914036202776616542208799502528968495982005405511334606574588583320158992784296246887141888542020640987677219752633242504647871551521702357955547469574442573864402469453296844261243165683092530183577609245116065403454666002505043183648547601567109855053513697697938905803423012015595412333328353878188229889468832558153651086796078376605860981670448756040899793245757180313138879253616329581287485558227014112274309463307042977653161101135651563462730804041236019228112071153246145226839628477926109099918693083689751189028230465682895573581996524731909709358561939819579607927224688726229360275350919567880092007159200196745555672106071237463850373298773675566740831092255722963170224233124413304476912421392585721143709418264257757720926652698020727295614892248742439024565413285257389012514088926705468196104050843075200200380923233730998799224639839750559762371208086257615088397087229765112893531520677397075853463279843783616257600736166146574709358923436079874233795794140579087463950696506800741450690690698918611039250525780510901162884712406106049351292947462373064556980999886389026837156065632578149495111760879841544060246041825007294054951464243189347705325791214661742526250677501799614368215506340148418584819493971477335854319062914383646855591413651155041007592634997890565330725442626196080484919842319008829967334918020448676684976209889806268798538975419719045406831909328818832848229651004882497226624421706953337569887908947390762170055576440882887342039201576451931177901371645214169543074543950716523304002925654810050639938191124339733492313967273818544275021270377279025757515405191186594731994052085863868660624659197760041540704098612555590962294704483858294405342997471153853440943959380002748713265125607961013527284617965251913663878962220490177623612206629524703277209792116694499834433178812602372960215941486450253179808069562440557136630485807083010851082448628305343159314357206216123652010406205761953465960631183932845329373809651000090892094356880818921270311185302443819994364864104989133633973032252661539759591564465561801055663673857433006472984587237895012329926710776842569355712617477878472536769121320982764531814593346349697486806608593999088457387768788110094191618824104177908817066845316904942557104625148892273086884081123779177220953240979807045063815179100742039627253762298653902961138040696674296270122497144618131685695591357771005648923612428640932139713312340971468095577158866516117579976232126527372253379993613017434801298986449900199255346735193087539853985557739399097858214882712690776364436299254876635118861338711152279775693586163386896042746698779992416605667434429853633741038741364900766370594646856822536539841508867988743784088622116714480924961314009299005466795503797369715314855258712952789059947196394112432466492327047425174876645878980937729153554868807547778841344313870849488765867475813492429098511558614961017415275057615421754737224687501046352812044602325703712873729906515416506719198496643693045016150658943850072626990817437133308744787028070564216217221784001589552763514427962525716442733347491286127338650120679512884156206880848874295883658373279231802757451989204559351944944076033865385681977005134982653349603973551294630279247919919103060212746551249005937583517891636379394628163393211025752328163356662440312886266323052552036059690702263361099011016089698310141921414639836920624519792230809774266481482474115166833806641473584096331984794588745018217712358247440275521706345670609383434198398549259851897914082916993215679548052083812607770773768647003887472752090488203139100121436858721009463459258609333562809519533091439182784801040127401458791835008813530094004409462579043324598242333266478096032156512036200820853475124016850944155187853031295805314417851599885495510964430948607236720267127373433301838905001517864595502894720521028529234800275384779040008923516339792155503477951540601978690118848631573450203455662044072597861266570280504551115055085947581634354591438070942186560716796048418172291648736051890746276037995377335017913467565126411561694857616753863554743778535234937091531525900287877620523709699103732099005248265044199474715291654596014223598790918607536525445465100825334904863844136517304678884508509556932536494836304540391742521846371941515945375715446705411569081271814877999528446843502045714361910034034740116096237113218957369789820907495919732059389309281163662144103408484991984801903870244672782761146886425032339010107744210653347257813665364162646742937647965304562984152285113673608909266554398583198016630828778368751457482663467478059194419696244769405091611705709369713098401638934284313525526618932012581245359836430911515808457239907902907560801637036663692294202420242057175111422524760794578973712148946002089645383240138965828296107082381129528933478299845024514194645970434749976145363236463673709194064857956758503709535334997566977525633679123388052160105372855869451495908052981570564063006978296187051395034517062564538244267537410837897433385640824692351945715615045511218283147036451946779999971363859228218461492268124265835500934247095511961937643848235287493957518381445946164762843247296373383610994235343050111704502232376528058619784898034876991335219041720224257326434556472435273206018919172847538727731269245073490938104200437711164992188940109883758810615787174566957025753190963154359297626829015691193519737922250686198794443821375687474064104547336674979159857086916349106759716770749077590033494395921113777015818866088902205613886676274519825376550295196629164160779309245977898293873777711961130864658996348710006061350733760538551349797839540749875655576268414087626080290497078407602622638459368488602795507186122923722955200285705637934229348003679482301062937800942726423930667048719349806630408918862742613799675400713163087384015899160111213519825901019499215861004617555646854748329337270715414242286765266681892487490177270402361582454189954642905567373279854707064901104222254283520887190527798627199754445903145956635877141667991193642719333750500217206322649498635926639172960852527302710355907887574321892909632691378161257754673167508396278833908890037002475910991102513625620193336743169004955084927589954249298927798948122138516044930219588631843116726585597577912228121404516873340229156914617030618732368583472508647618950718864249917566029583142375573688801806237678103889737859393519716174246894928315159744786448841849332055366800494007954821079515215772399252727525727235272696718170640557080209603668146508863825286012548793230699588712769886425711962728489655667038935448550396455766274250375766001332725922603873162141051762675839305962111633213683241144658515050608180722654726194242536489406206142627666636287057757261253834781091513749475670403606817357970620908958054033886333181642779810821883804675510813750096639647328814464775562215307827819628080289669261758262369790072977337485817314582670216471560513221127839888991337805940166575274499060187390653538414466499141710473897467622084585526182480983098409106812291415712121723348827307986961450731907515288585012968244657710193887708624357170591265019498370418491302926519999294790453409082689257891409000969928050626755935066391314032051324602076957279309473216297816112302888176748687942230403922225260712323973027228615174300523097304303745660652436094961187840429093628882545698401988807670256972544627674587269211771570722603708727374064256436500940222039540421942353825973417596828331402058754764687857373913464763215490728867379267931131371069374885342470463058775066743683392785549180317239928625492747077488028968735281039872513208917505075664416728306098079831992697744569793668364747186216955066726847582297228422664574385400969375811126052730680371351246025119147824669178011804289413625395067161744579506418718580274940865629033500147515167395948355336224453756314004398057592241425917445099192079327357653723631621067613311284470775960456194775994703270151676724045447505798667940932376162451457898106888801384927880852220817551869661393581997898768389693179614227701521271008846154183590104835853400951761335194451319973575622654968291872169240638645569299911617245903691102885084935710084521849606719805337890076955010014760392745698772027018682143935491441829313578755631373898890358005809957724568875890490529714430319646117482681417065626478883647224467086366292282232690720736857905436879411481885201132191774384457102097084114099391401941848009089619767895993750428223121740902390871823628058263570053443685376169700032979989769227295094298187978480656026110367266226627368671474438900132143415355739921694184794479387750046296209484778869210711951259635079427716950681319938930975248580103470657151176375009061272896681483742132980228968654719303277328402572435504894423928489997401759506491977857861848769416745164487108865675249680441539748056352086737426731915043873899257183581900419219520609613460784659454979542187335228205136323675323982190716227994508085102792774776570823558358380884503259193456851477867429766040819639623220818805615364792546037909669540190094433443043248354654472930490299937057010253717625039667499602060649190373304950832208665844602338584104987664626521071703611723151764142686017146512454985516229275455605776645903793790055788613113950668534120621969312093864919535295486958242252297206223274862682962615455753353769895516149761623417413628577168893723168795374792633300679373738696418360207714247381908024594629232578053046927281132071412855941913013337882653033792770687299754070655155073122658187677563508533371602788048155518958357288037795572387002316400768437552266989796712768477947364345748072905160662043980367984760741250392050851774662824168772064190961640124371638209153079016203660220531021330946562543575231056082290028033899374156572661997911602032418067653258116966663738981741658545092935709728686801623568699601895353130599049087136224670811560945644331557719924663079051431013325322193751406004147998447073567415500402199180072090075609198597966607020109117491857676931776523581260606727069395376857637998180314283595360423058954967013850612415553741085620093838753081619925467495225737503784089064880090929375510121467845518476533966127393720759690960371838358152734505295168266495302471407103594980705202827781060829151937721290468138062314007004202595512875308126791323533649337563789392809037900217922905737378146714912345982899331338671698029910673324547730024790716030252010169943239414245264518785161129664710813985673966316406493982007676770644215762023824116663047290255755280664330105643366547016569532737317079432728918147690883232383102953696766782726867248828659893593669319235683537911657505843310440146899364667576923082652234871327476288749030646117600945331483706112528147649626586220764939851261338980717873389615914233038750739141065993449630571787052032476747104029271616140438068994975724149277772032112015431471588598976879632413442530825088200167265823074718263696404724485690929862286362555912026445422140862458910247964310932572627523460322039402769284830214643578709809195090556990254263960078997197578136750316152754666622318661989884056028276994707452933772898070657221776628824045619640456937789213605741248764302268038857474630619455668485707826362777472866097918133658811101815519704488653711390459816817791633846997042177083869398895999605879327587294759578406598319547992432493266465197751937173994384767544447180988669339229132060023911392398523018981802625483547814075446380308654609603806716787857362076221598170586474629513537491090076127033788989692897072935609966482724995085240851723740943764485248847483648359023613031822898816341503819396225590727809285857716141445671531393196907929198477277373459662697590155172639219455036289214799308310836378304983479165587015156758823486442915119910304930522916155762613457207541648220739229689491005566426276053952636679167295027419871043370570736682208323618708482146829910452286455060066637202241285343160909464843863866141086860711488118349575412721085330533040805843724262999714442476359077435004781957050911970792851282622047790748833875632953992467789970864588667976967656842958874702910274370538866167251362637700510989726469350627040638673585960062821625774535123318614298948862785270268384711158105144444849206898440274807300891245052234633949383534743069629690355492870612225024849868802394738673291713875905130968511608534590532843081748653198258087606317697488433195422525328103870498063110331031824976713262812275156841804047094267162854536149011176063501113437301744707298829325208914934728553095892512649895117112897464371848072143818961834392025126060077586853980733099506026591918735957416792520698677332857028298217657213905008521091838719317744709245579612312975638871385474118870702117200180041871613304509370501923179674477810553163145267915895884501381010538958879094070251770774571181381246672423663076283627374172006026795703858953163685438902955934729291002108948981221903334398081237830459471642303391108168488675029729333741280945583311820317192008646440634032210328749346898063784469093237892584321085632879464066058892451776761041800374429548891579619591314623485776839864841386430094305123550951722610696490061480369216113316243539304708699930522841181076647915257299104926173603704604550100785996276439913310847231273168385149999359927521366566309197406175407302674648083231382206867247439253991901387755952231396635045677389037808373933152967604492442743180974726410527759674628040009144272373381919801579836589003904565686054348808012433919420651435981891316979763498750093318393168397560478576121906369413434400623614680420228767537411500092706695573769967358940816306482712907001291625799287564416479351156388607329273597315473709407577200748821691264180094929179491269454581842548521035777510405947839803426955929517973303897624355848839081565707045256815405779599539094822254711166137247576543950363475285730763767773866639481905382557535507289437498150033263608589771024840403811018606743893277206498082656719717420604707390503610918650177343900855195516939952463990385218129320090527176531874964707778830666125316195633269317047436807114626955539503306931033077048092014782863153733934525221805255182877132152301136985861391757604214954748546856798718578891340611102735164079433188331695642421968879046552813913029109137334601093119430494756735880226765333724961480054837556150236690076079176711747867225680045930330359138070325169176146871032639690262091459394679800960601959516682403012615064132974120935134593136540833804267126943037853897185183628869938128740036031636823734434382595309421950552297855492619450164366032847355592899404771808325704227455427806551041158662124346793886037786839526489392741667262337958959093881065248539302917631644306724017999009998557748553576686411704139257929419740296247056677405201252045840820051671094265624421902727379591516908231787924276215736048518252587511399274159556923746524093971631200392250227767509317055968641549343571471112444318098016198928010898051991070248686209867308160700126467845098156714607038560447708151791949190910732278421820074628316519376247802131538939190969952404034565275653891779836060097996781441739242432884015139980403695046405345262228789159781595115040814499230509752904830196085114675903120214006219595126785077663355008840284115790433098421234880255887366740105162659955910133326334059803818293708453958973244565537953261313329267535937680497919343573490928916814207082319429336354743172534620081599850492810519718451089397439516546189687549094041103492114954536844275521867796495773823875051038422002620273793630775055069166931811423026496713895605185647191315619987387062502200938805040446264983339689332990270774084177421101698730484955249545425122081631649557436023600187417764815533408470620674242467473740597017483556359069447336124460248159828222456973554161690658161191715717195565575183395789053553857829795620725634207587908713112049134308650268381015915414923141003949952009471414998694111168193728893659346896771864038817294479518399664574113459502346805581545939548477196611391716049121971557047631367863029150592963428056464698009633523272871707393650477806588003727625578116325019804521756200252381153950441740727482684801621498203865309553274775383733732453399699233178689134615014646728391506958930606902811842294032545321259860519746927504354287136040135300086667899095714997899007555844996111741134518522269641247205697916249778998753300116036337941470837888673929637799689323693720720089413330071311019535520058693207496146619524959038607490038945296473291609196136991136414358307949441120384381222160228689802682039100239328792901532424234528790272193427628009397397045076931406687624037127073980316731035408194288752644031839889466528559794942007950920233161800348497282852544496701227367447935075232928904733649668013442445585488139328837616351092927208289349644824685994236836309333036706689237135547617477075611367003105192083852923058378489038105662820648937752258864233677359015337854895572242210150835199988308946163277649744981787198164362441830328349503649247352079338059400876776627161977785932810395761590546735398608397698815282351368675092266418519166831035976677161822784179888543246098414710469032657697289718149064357290026720682174468465462912130528874347754396614147432014017569660179457798021717261291249544075774927488694825561485434449303147241848972910158338741169668634899119831121650247417317584513020830391820055254337576086806636695518179568619149593392859500206194635643403081519660782360586704615946038512193981290430165661512252436018269673107738367304972256715778068034404789169099058641825650356783264518012994422376275340771510050964304339516969448729961189880272470677004009332219238540689705077479953337977986052452620877638645236599149417321355133752635599304558244206191731205819783356898950947411501944673671218796888166047156216674726791788832071409067246751859137362456173620940137394414779318067681263172174173693905414057977831309800254636354431631448507929166865275361420432683491861625847895407451629561431552674534064283306647236008395854394519529976887684477971551978740253427116242276930873696667453716994487620487919516640916025974566697864434242597741727118944158776212554494948675090523723687349838791555651235795278824034560764899743424869989891182465085678096251331040442628263911200215081561564226033818035563322431781561690372399822116801748665727587057466087084042915514050305090924599123130879067774685478896331345691256504633332284459990773069228701651904017264854911606960837346839756328687251980554880411468243537004253637804720148249095988373207502595982858739519326095147637319568892318252208605027195859179384039656107183495346690985972510123744942252987162322105746000478042559014648675918399885514807543750693980828844565811947486504444417369449613467487681636255407031399038322366457400575472740468819116278726215497002920386900219877029184696090298691086508274964013409889562883419888105775638600999587722994987386019044141737685729235088950518411063426790636544049755666759635459220862278336136361030772173451786331873596131259151773062411074485620385385993511440495801219840212723088424013328649005708450331498175153634073932973314682483971553629702893735607473296911254994735510137204963606815168288884584399579894597061410137165255876974848416354089082949251210935617402330149415033111563147989749183798125971650845717050827439239648485549203300042506735585864258406687101808244961951033099762884500366263318215088821602527103257026697212701365174994795324608552546408800844700144412783040207764078068920287219000399762698140276832718594712744193271296906785622186201132711313609547222770072985121109975634575590551020100511744701477666237349349801966853528676589542589831810924959894857247817651312305115193081300036711460972192167928648622673544080530724450480027201275909628478819429515237483798959779639176771086715853186525315622892341015878346098833026114902087884055301798756725032539585539829700862838829664189588121385631024177461708577346241061086092531107645873984169358438064779818908604646253824878350969076767366079377709042884823134663634609392756794347762659714741882195198196499446531526375139552267006523894166524546445215805517966994176321422359369780828596385685030019127224932184995143678471675887973601255805103064791736227342558209158941653331068918076765713558473467785245983508676144088171724032055498548720141218247506519441908744945426002349330811175423079316696954123682311157175449948350168152877426620651621025358874562115145111362845132216257431294911833678937915228310295661579493492737812348978696011944129806447542554881298777199006347794416761644320077995954447667093589049316256672704262627917004245699037697165287147948423540935922498023571370893384764822223461641767233658153321685183548654629665561774373366289825721046018895957854377663199462293312354809426120940714103290907184117670293804955210735721867880090264268818650360671736131663914140282249350364315660371870864346745175212494293395410934382372506610851500854430671049381893362939305888909499402637956828998311553139163798531636786548162816503982975538642790240741851080100813404315370809461785970032036303467749633713597931602884490692331955250338193158807764035551633196913749999792789792014106712131966705545673332932150620934893788617499060179274339736443586502912342444041923624838466706909438810998453074919245267689285363363410216424562086892820635217506067418971751513320008541690232132234156764389680112755474922642695905609805422246778516484961488085172659803069474520520829247001306136849394068080306071838013684592636460492749538462074399551498262457785296170085688522442283228170182083177449611794930089935644604209437573303009969893554943037588878338927669739860988042037179650556439568979211327179106453107713693190940090791358914694148084718096277067083214305361410051461073019514042912969269543001548540569887658483422720345815279415819782222143134118767143304463509795374138632690911332216143821870049484821069241713043762516489575545293686334984835467930639330618374261173453805993413430266793731985372834535905955181164430487071416432488422504564357058057681650093704315520972775753134812953835841063395944841601190713880982191899301748224983532089888405236682638444495360259705176703562852920290165170084211996007905055183979110600884827301777583794249108887408413224410209682249874172888478784928092724215386883014304972109062702112609115544291905866708667292636679782452791241256612391594406867937776637131277098777562023432188579737553966899533089412678209490312356411351214986053727056668950426534577306331399521145050064130915797776394131803568219783402580705037141621164591605137219670722638226133052335953557055906586604798542383551574903730928079103238334498447259708610093934047518570977546297039330903221438434631419320768942664661526262371116777542045719712236067732526501955671015204247459041336942384413363048148247759040824623508955356226922921230427982166155165263600836950168861056496150973881611692573704513038859628940189337882909018778517841578957637803440254409319587079734065710662098342993689996619720313193828742533469784780065787571673347923110452111308012807100193451710213552717518065639048657076852714428468808803601513383297108922138312733476403720888432269966255242316373912950256019363436816469082286285611243449316801660844648070436649945869350825304115082505739152209877379537730390200767000764108447145859305305589250803836166889896717534895871590643975315237178306174091081638575913358109893040876188615378425565662485811978206622425368117172642594594821015229176736273361134470345496189642449441625271171239061747278990664255378224247517170237142015756149496010488117048184198340330070800915663560286839960993819294430065171997223937073953588449291233649227019539410177485072992170598392226828367360622869620647841038173908514067677736815653258632372243275118006963460684104856157914754601276811257657519174578433983725756630606567088788745122458447175501886352731326614408300708536302837476124311353082648398272848330217683292612180279049285071650068928251598012956141809086761985597267357504918874217663570392911635432538686235744007548152727806266295131387456436426221363920685200834779620451629626730909669020974329502423642081336477967071732433050072156493411222378079606779395245502273074642798578439099902260736313951569492471163811687876287524373792989517902286001071939679859009465581720357941221484934730489533816435033436836883249640628841668114953456727938206487521416045305858886145308097705420623542395017252421361558735542849682424171932125163390469605289431574442854368918273655066094823968559122831870335739074252552648032449271498039815511336180509306527877041287989818700244243723814175767521058806880772597991648108113006599992791910038752987203158963875015399055529554021538606731610156896378049089361586728545651181598074390502179859561800705909859247223735143615138101233080285107321224848316995466841996942959934607906220767449255372762058829533130011531400448784868226001199632559889625733318337627027450474781403194965567910872572835603959490715729552488815546919437398934220805214168064584402494755692835221770297573730127416447980966635288650998968604865529193374534060389612426534799819178450783563330201616451701667983477995583695028660701304154845994510721863589317306354796131845192166724886350507885781928471528833088872792538887194508154194856153752304133803482320497335244612770528946667027854769470809658927578007816393416431304885456043711867411625456680275509166925947774060364672498064278026339455207596137072657080992368800642206426732306792481103062514069826925619246432188246170986906196609648133550117727040295334844713270992546293271431378555666499848431638346744575625178095408288001921161445144449454849716097183490989918336620977501207395666096170657847485889504132723635127941259318890404398763879143993126932833352268845844529139180706673470963198946749590184281458495613466131395239777548446770527800721602915256540740250149778978962195405500998856766174873749214265345018221135922091684076888552624535937777026653757732449223793508458385620352663334753963599669669078376868158899773267964180709327470159945427398685671559677675537174842289060838860647881035870870694679549052716638683562632965414741159262734063085160362645039580770191984751112958346847812205744095221110652878276848191462550470908376037170770884419768374114954528161117736530119285305292087698223806624320935651303521561649939097396470822747194506070919645269330437081052193842949821809797063231461909574094019194284039293233387077250648235185224093413547054962755123815002455506648851631157937668374328240161864922263293948553677652558429650200819376094679966999743753600544613786369531157573247110735304109928588144602876742268259264025435437017916270879870236418000096654398073554335319023336676596440579359072971996393095124935271029111395423236925673934316204415962556622323715607421752111946035852752120341303163143007954105309383063504347501197963706597039026162222780498549026622143304417436014303480269313355529170994276419592513924268352205993449664285522037059057485591785631774719479317207956270517549485710433065261849053714048373434249860459659376392219129313476079514238955633627176129507027856444757366254578471174396364003427802984221928553890753706545732634682332563546506722088226994218033580210836963064589999007079066304633121050283345239372348239603216741903152965855359106634214641905073847195848528108551209166169216071570949184368979883175394368996366974757522855491324329788154374876850509138830653972213217430222861786451354178963131562815590128432905513414385527984573204523759871495426030223076742066785925843029682088263813807957152294468181059038490452115158444768544352911241204275690577420790335171440193664305368893823630225258709474936460630683130277742543937237024905838466620900861462068865477764851196903521869236936384544462846046909447211388730019448232670964249802909716842926324199018260986054411447991880157483962182041950718355074857255494105618947168558528972629673919095328619874732361246845803549427091056082383343216500025032406977229987359853602489934226546072966438207223379657099822208667992187380628188362358160439204920399849915606253366216309379734732491135486656074366228333027577737391365584459144924551927852024790977292472298290904641767458966137879852527914552548487369505354305923472440739192321023971513785858782196648865516622332857652526562441061643194610105746818653575049159683922416432725029706570861954701486432425573564675719474791203967247812487565897748477136966941851091692660072358270405089742696547228492869949818567639857266408575510701106852022071044521443344876479216363089881924968115709845722285312252660750871452085570437781249019163334668730608994828060698724995753352810982222663724913406526569665616061069917125551871328120983983595433558769072763756162748289855567341059842201983014452699835312877563290908544895384848050327495086395542642979953332491569635356209765291581194551217853878020070150869202723671934098015441135271569783411470943767508895258365894588106341929972739718662429630251168341715403734866477511288448274663552173716538240501142131475925995815784262018258749574665857526903807997389829816219481770703577468705838294099341029773342406332254495607079821309006436329285208775890669553113503338692724219486100610048365735345311989247876021494013386325830487208298073129736011936899930389420844199506762160678436154106855264197597097186400260765108145805417004466024151572791042340879728467199516135502372930242790032856788013641332629197509530954441893891499617801238730389802106122052776503323079380453966103427389880224904285254189526138198988897811208632206743406369443093203396231970384389502571172984465800094976886004530136756700832597498365139503690802340663151470866951851951578656089861295499184311269583433642192263272555467812200439371130348578851355742488632329371757901970802561821026195144663484182759828929481088488401592854666539276368098541749379397126382277481789219953828714776569905305464837837126641075419178547559793888742046868524640799176727938975552340103867103994140791011058318714319570483676416532702021454717434299333951459167646409822375658714194398742831633247802804885083288103793257985676031437057993680751330151168505749403963011312710573934617449012600122910647843484073947236939189837164629262096172926517787448095920358776454701438272588882156711492214403081196527560754478985703983509970361421653287532959922835871915830284489273830932714945858296728261671746509457354191236321674313712272681531193183217153954142559993052544617776671098536536301715080173985609693213882369451838482204229135812519959866679192142234954221318885332124339906466644633000452050875268482742477831025466894112205088220119296454680470057569224670634454410074105681656341918997998307187938208696752654036136886605546521862442731627830314150178506857145291328711997137829850845491239477662565515058293393112662820619228301615865838167691742284142856466350312570240125590649173345111668819522539526767871972915410756374004906277423715894420363669087198753203960958047967306003422336512458059742069259856260722237222850327408610991365734361215476401215237321992762448680199779359753164302729946143627709779091706235697827259852548481160394164340967344112981063899064961543941321339984688342198073976651146461539251727840801171783202311348643271472195384670942952670821392382036566545572654077046382057242311527520174753070418734210783784094391087747666682871223945702964997987769141897351027121880659278441187422351991280590665826010670564636637334900550460534277676281767428846652632396402488080648120267731986764650867126248033272777524911196943474518504099385848381153327240572245717384671815518798429054810873429465329691765281152478094489643227509844612299318292170774260622449778015622618600194335760360894696324786667269074112187140332201304078997339274239948777420380007168679312763136459057426623091278551062743541301647854179230063736915364348277545066786837802979418977332819067092372108105552194947731453767135790427456853816831821293720634572475529925110489141179162403191490163981620103271004320413458720789407947687327615333580567758776666121070094996162844217043152648022028315033578596635747080384725129310751147267486250635087360882129101731670870914347343484354262789850832179971870299390341062275608175244173951825684984555273054853384463724649963682079182286788366532591495864025835055602097726030498480829477285936290670253023420507818593198240594365469428134317288387168199758837273042998354710408956974399570271396961733427086035140551899959872270610015982206844992578061448596185958468999379115824473766357124395353255530363508642189201475593188694477806431128529253297665759307270404770722462925094623271280448980620384331187354110617230549636492729775605929869796391670257915312639936101995557387295266458673891920439137163976344500411899144666820332691552340624470427269241880729405789099251992420008338738932144900214915588962428264052292436097749417719368555677377412249283751002025463132486273128234828176611278551266630573313679989024782470529414220335889133486416301774422445217385935955311703709601405026726703604308074000882187068582131561190104948819091227559029707552674970479276857078434590641775148646857311839383263309964568372886123035876407328957398099623278447876843535205821806101446073133086421818477324352955356261143581963251932486143221508823663604488306224353000050886863830247757023629864960805590198863480233871818900781861688501573686872794127688623670227517712486734048122896333967846081196614620433238679092748527650584719745330120483756421789687530755845263232863844945803948575730056641249079236607964132722115082498204697470991690314078396639216543944143829135130870522339166670011139599026742379633944433004319536517814663525380196556545894488200160137014972686568678828765232707814033875258718997767214228992558760597098301432849042457411133493359307812280954078397851358375070980948852692420658673266574126549110049928525527419701393963074445537700205302334331830472217668879104606815029363774544441513620935001660471550092911273220166226580300775127366372883232163602304533320010261595646309539244514769229061164992166973634062994589703800467333833671604022231501350665511843887810597207809046075048747754783231084328880750338426856378790834851049330877970675865213466174409513765272303138513985052588714456698254223244134397514568245265623893053247654460141837774578557308947536958795899315328451440808207207565062362071790219206503266278662624082969386260986796764019745473411477486826661201412577564010885868798512236701488760123116818758833326313752177718270725194971580456208809877978451846603707948306885731501985819098842293170151978664838883545553266848468792790181581428498169293153960829528897382455438553354373578704829676113716359011542160174442988397258476507435872359720303199531773129523701187884176994684074355222207541163464795957626160529245397048070746200067691777126651194345128356187520453442683917937891651651450978629450305698324755095190043389089091862642409684738131316129215991539352312082107832041220817708251433320890370942668853806446636625302821904128533956293944955995558475338497777551168471809264728667350369660650714073752259682974607307257463172648523067389262592789594769958588645043313772351688597771456117279852646740065389364269744498795298627834517019045382346775697599466040316396186001796192210675525740059027475722162452117666782305625489819990903047280222946991482449355079166151956357308707594495838608435382496461818802496140932298066630863148038701516301679736158022982000530759000640008423021700569252275064755053604278605986093536502849661087218098911589766341451459668851307664623533053570784142109714841617777956140755378141642319419193809450053815336089283822920939298665611601704042414349751163729787056144688604382948718523468869981920023172813301287225951519560402951712399134296976188214725636526498320587737263169670007050483307755124098647351075586725571336057400231989223876647821551698424786282479011304538646341781502739303157158115761791969488535371250266493161219878779084685392223418009782577242674613143554254331008932734748693639831223246417264786937557394948383126846626847517274102058090357523427020897632829324373831232609807916339311809234564442300586608139605104540177213798243695065588640084347059733272584048186617625373895631129090996682206475612670059685864836922175745309046182079547261495260983717345392994063109879176769326957948921148375554947002832241839732398866681258261238292717787389598460636639056377486031172651700537163205984068199579814258038916326110507386893450837661619612907778992135185446647427669522872916177283657285896670522424631953127361719299849883034868642172704853675301028250812851405350688284187682443227514205083112873590760225923310861109507376059412423323342451666366063867306680702190671326175043342964981853631045841202823074555298578431872958410913637268293893668098351946825178854976901594651806965701397600638178392288634256030916704440495206508718302107896309789438859252572730133220095093359003948401086128527510381616416460070887597860165245193339360914573207670972222207269582120397976586214053898908406497427835895700921079629822811311302346593499585394244957358914583482523898490147276971675902207908695746215252204705784667132065530089255343996116998836990837614778806686914851895916176822833734276066267800725781375827335226644054603860981155613977547775648844785568953107142668797682160989811778967796914104918544510470788809269565073247515187051633682926249346522308511968671399459089281016308732399513904209049211265847563497495587719392170602889482442738399738215135986189457370974553124353794085085901226349244472100994581462127413144383345780294962706630266399825560892120874253490936281425941765479816490976798712311029143494355914608917998749787008776866048969879368281071284196525321481028862218293214245730519593269873249195662290876629772322949231334873250929004674702447893913572196639112338908258956840938096007270575442195471282927844834492686677077883816502537523793585752696667708668459544708801463278983786139493890054121224433785739500529302627929883047065207157281572697259815270260875107444875662585968353538895686074695906182017211571760323836681597737418127596993332920352279466954726293606855115123928947099419846575805010318088608629957829706614198205624849798748128633441071107858369453768776638346505907016547314436143138769649665055416221580294620612442592682730943964516851733908396554008573710548663960832389681832332716507482717069588001727788559233575541825064216805597125623624238505917209437518833223222302916009375539721776414816487965389149673902547406973070833355800375145977129138208057071911182839758431914239108627423664355669014880219085480158646009335659611517622702611299375370190588169975926237362477938462322727510993741175424246298265307238317619660032150719926037526462956932440778043504840527320841123779982363273429854643956090384049559006985283596638125008249190536581579490532128053348250482317747728768240182179611694737272738543471038456038116100834657911457909216388890210115584903938317913800022860987361025997647937504493326428602337045626667459893367040458378394422391063026890817079796103085033802564561153666834301894113564732701214444054350147504211808682814051635581083955307779137439817648166287121673391160666976260605277299833592612423386476376484462197626459265787626242842052399736418244065409945024496966868262966198210003778087111899037109634796086821124500392399437201034116000101717017363051364657919767870682815239683820501289122456510874185953029964184287565479732511559010559590717255186025544687990626799471939570489742945744200231899733424017244815034874398310497591645587862385847558407905469276625043479835714765702110096823686452351804223192829578137763004773206501799024560796392169128852062735424794567715233117171110158235276889572199158449238192775808989882188139441452868521371050935246521526123457160739596242511244077146554214756272164358956085014584554074132057214423654078591056015773544612959109132405116533888335530864722025625575213431930133644464014508745339100576581325376735815293217348708721509888060069449894301438375043231271613511446087806393892861603155452472899913866546179081816355789103893128721219541222191005131079561577067268074770349090052634191800265485117202808172120404699075967632969212509391676872769569668892134586087603323631351595238948755536535077675561476812380392212332760431146290571730688997788803631096692357720533588317911979189235063247569111495118022677819467602107820916718642052573850395815833223467579772773748767060003301288527119793765983282871348290541176339296120250981220976665123686115749788998247150897187983361870559769979412167999969057139059224193196284412488806575150718800492652983004531398212928764496202005550398580962568916542493709578937929086028655911529621571099201765934025508036085283344851472506629653958202836220284808835759974291403726173191478446900000260978084984638685978668935059758322595450558521913400109787606282148122182323039872835235476519931214632806343097426950818911721056196743632681441457297187511237972371670532824203606768322542221176385925171536466278260226957465695578447834799120012572237994159959486640637504343934578243017826525313406375680376057784913099795264648042180807344974677508277905177534091911904930983161882563559323244665992785821547137999445790518404567878451059307184779132049622137604171091490811544904425584068414417241698463718110155344442940846300898989109393238864473848478815910640751728664791564704330658601721023535950059699762251448938754281562390249751097512585995151547250263399906820867338590095346562152938089028119497746337174033852548445258620677034735836534371325907483097078326402695134059035702019962518722443379727709779526798371319632679716777899799929110682969390095775671783368043342847341409311245300675446499018744625328274700487383407170318272944071131479486702233289520438903999863267295605132066889074923512526984492620140117922779643982453695535699342519710850163685644730025010326370734584392696156789204971519361492431097193217660466301198838807966037324738899297570536033007647955834250912090649671210067185737788210082429043456877568833503511404662190549377555010104072033676795282435200798054717123146293370491336989346843742753946039578312372114396320693929551055456750047339826247304995107700520976645611119345794024674571783577704564552239956968562453450649348152337981531601768362481533026819538278722752444453174639490526986688582728076752908402642627845962600518705115693768625999904354058854274491107950615930773140329765088065528899106556423626326735765291911394140344544610871905875225275110407267813772969613043794890251100663422268419328146113513197467263642881331656453000415259155185656472584531405527919100776472857487089712057960170160625279221690477191975987085119472742421667359047492023132055990680827063377669924871864838660090796779769448668869293419635637266276830531279224246568677843509490327611145473972576763377226857618386988334988114462448953252461964477896575884773220318364599104444409495705137363311541147093925078155987739641603482019306959740325094359267708683917069294011473343767461827729395312673551478460663366027860484133938619982533858700204634729865129078815378030768878368451727353362833711988775807647899309072510302900259393733833762212934666343672522568878192967512698022123832671189890308010395779819722449852666242389234372301534313149224680295508669633516231494664346233113671333609411609607894597612857272560643497453094853088746648169495058086537045479975688574300719765963014270300620666898432566524739847294011958958448180683529729843819967017636215878174410564928818610531015001074677033843393713899700708400139483491152759660564797018980577258010502892213348798294603052442376042843683540257355123320322387249643046589283927196751425824719791116551989030549316851889647727065802594120530599633327172132204658702368319441206278794722951374972018410146292176875120238844800794344909161719705136945410039612818113264970673125536753240121478375476002119768022993245330702916284266009196284842551043264227510628968312877719426386505983943808843256378951760995323371612028939242400061785480801768990683603240265410098011966754638547815507355652259609574626455823136417239409467453965572138018327758890501863401541528619225605769430510420639759742309590640673762036084697828852284376823135640845466950992740326742975146894097900356033369944343718748248037138212109392414222729965880839404918290195010450114269551184060546350520269709887295199760528101292179450887597896475678899711233838602188608915345059912074374245142891809499866636773952796577410930314140981284345019325313394917271028331322188201890690196615547007725388748736548611092631302322137810974838393645599729882281312900232978883957551164849563233167047943903283383210142734912593709269122628493475331245035482866885869744637783296952528230923185028211822404040245820176275652043849586526771292536910315812748288335482984719942762612433199528184229006093408278064193501770147613269093204031629277813651859058472019040765272885430477718550750397666406787239636665219606666736184718448759027083893360978415146404632640146912053425787519915391579060009054975518553833314420037826508762135562746898309849913972109763417576041285776734958414134045486681264078119540076116421870605610573904526964619968152590573064058930825319191481782328847420051739369546045375023093736741712635273653682612283093746831460459901873686636759818204806420174893204214977990686933870302487032531440516066278861971675053828734939440124962201663721021901893425228778441222871378495369234551752539296496509038488058716119281105529647215661468287686257895514136839227969106957567298142995033285220515357125248984847066061697933513109516297946852575538304229579989171225099950072670724870523996976928688167157191516078519129572259748936744960367607087149635557002909757869528632415413212929089684143289671959306470486757408382813851624165333796644581378455295313487312889944920662700823356351887901047624870117209160935616158551429731435360091266207886784057369302803715313068607097468192224278786660069642824108448432913071416256813833555972738385699251674772670524297074392505079098854004738088718141350096919288260478715317487473772921538509398471994982169616000619221581733607526633047737659115079228081331557506189792289914340533058763178516114183664125801421995605677269153626727158437695543843240209275482831443550734705745133372086667803693216689365276557862229776010777003979767346173976050228708663794338574570329340474734129009041986854469776176680373478668798387282984719878985809129092006021925992337456640049423977261314826232251301441354835302799689440313741717466091934912608933296019164463986206522163800515054314058113092305273102331750400618234089448192788767547622963380544138238241225285020817743162871988645142967820371230760269577623510121825513132156512079291441344511866653169165683464717624601658896805260667011420844155212519220695105264352283488841180651839104496677140156857107261156998717180455258716123049497100399897529777010764114897885216398697638979778570241730978884963632974079691595684004516404757305142053219236953215816879198261590461961495074921286013363948864673976199043364207996063273921665191399742736057898891448438275708514095753624095007671144151469695524004068220204767646388408697956778958125429615916826679395117665131261120296322740149204532989025796070115447983924190751561763016430698259690421445640647327208007385863784523464001632067331396119226641418215191807915093576292190456860459707035900425048007709486451071866990364465495080863272906788066853294684584799631535182828806266535483344463153103790201935319335893348003792586486690331027610713022069622871492331634027595531159821041849040926230399203970613680568828991758614017253541027315661826044864774319417777375154629852369124929023418995570219045760948540673962260946699984241474784629355770738059204649726351210492977634445439505947209952828802806614729187113189276728470678560960399245773347961113561998049885473227801890545590866708361091137868792685643729408235626308030380726905175501281453289211843801804864623905815404409224669035743890158436764073189885537821360638176465348148572000635588429616064099662184946188956680312254757008934771987869502108689614548993679069227885081846689527947120333304321398691152107530250681794524598318332506991086607357377285791345970764941625586701716946458766362983708342737267907168312817943200357012321981157944043650017446992117210080172752658456381903354062724951760046476089740281347469293690601071769137890150547860426737915390036139431749840197600928890292038424499201217669878505003001352191797565301088173561666205264716812226909635122964689843806009820814992807072897518344606753518550788209685217280727161059842749037431240005494968081867793659875421869705700523516207772613443891906513750070048518543366223799958627091213217707314364880308549749377460043675395074753789968004235345961153902659526783993830999196170783981998394740339490642343751434769255376548227967715165765527854718325115027522721222489337044163101298376393886989033203691099837390044262806054112510848753274760508196678642386480674851259650251051945405232009316135893666095948814613661030684121235063394144288050242986860153553892243922161712402978206647944142892355628088363621773645440128847804095731055976449519934899299756392813636349046834574105701337593747468192395630237777554924867042517905656304459277336556172787004452303412888513181010894590257167408868078234749894405857460998797930041095916337974173797992630228676437828989546190901713241717944947383650482690800673530064531977506169274364537077181684440181047350389665485933576664562429465985597534827529085310284121627307654480670085948047250840350571277984363025599676172353987175884716918837419994260554449602766296768186628695235604317232213248465516937126094840921661075533231812654881026639255581800936038098762285165663158770060414798860237088727224407087155246936143724767555987612019154542127090088125594666046395364440188042876486700948678429685144682755314342355787644952764434160146912735486629745571097505705224208997162410278385423714242678289884821288484120643281917280506285857565942056024215335484972082494272553774476772554271675565850447625006123447448718789252851291537342060973534144463179589633902311572893512327203772126299627850179298995467457485884725576590357517017289179376692946472649165514654139773708701422915634138718141977702479255331855740485053194301394820468628751727686594929272969670237817883053804241919827195135256873300883752282927226123992670680749224168238631089495126496859856497331945380402412459885624029879377016724065345373054761157404961935663025216041574969901013177228434454843460074779134884589946352167260230188583978043806872712687691260719959038520333719455668842994174363014898236354106326634711473768777445913408220861131286255189989051528944458163270774736242021478306873026870508022226477841614454237469634520111448673742463242653498756572956707446938130809557309173379260931218118094545555586436036545575683334470366819861834041580852600552716296581032235877982989936995154264591227739994571790285314332179272514260738900428304619345257413583146860243809481575716782070155081436384088237352880631651284186638917069670801998039101488162281039870020132809661374407108787589786842513008391876213372527773131559880813126226159169393521015301459820958874312599916965582199060967106214004960657126570155146921685943385266167971190580049401850092274141466631774428694974863133472956065732640687402370329991053623855560772536150252803888957519815542513820494923098470907092642803433640981529484982650922907592003310794495409396537979756457194681556684631541040232739529387176349328817671832309389994807340649638496589520015111957250629349795131752798552854785242281162046391688568742430666482652542836031405171407114643187682165794365229731960323304872793004610470158442691018788789592138498428679962329281460338749222576001632102714640226526932660182377875290705433704017210730867317813779796072087564616141405174042602236567834214430466133510554139570909473164656107661941909068328449690081350083850837672136808210226417501454910379750116220547308736981082990888875650107576135902391462959478965888806495883954016278452553567144647516955245912029204969911283916901667062770505654461583705699062819599630689542597441216352845892971207166197766397119354686670756704279120755486993319048203006771824008768166651264987748425850020112292005483581518077236469369345507950265026163242326052052402402364667528464450375312060713129337790175873549069677648593116828931365242118712822622562115228710983160176254006654172340047500517400313953103081841426150255945512444060934884729285963134046686214000897680443927845645721537686310244631694937637882388692520850173876753899642846763326111373098125869095303292485520459542792687987833115015970410596341626176966197979126045645537648601376930194488655704349061649683992249539681020743035864046068040089454373455052745849326871291844183659781334180057142049559449302569237077073386545796422918446405378463175998617078679408155120779436338832619953621527132819163403360319078402790489995623281845968205176097983712184843044763353687446163374839809594860124008196513705164358076483226091728713065477484712083263690844605242230539139029368457512062834154538555021817195972324901647082838583997442447958618491311625555799247191209973705090007533389449510347683395082775609794142944195037352647082788908389185210630589599592366510980320256166958595541696069400625538402216959790549782330319533006895636484354107427126582149726132078201403153076378294761598364335187038714036911780250629223305129572202752633217729940044824562852098338486156619127226110445158652918518864781599298459607629282759380372472066970997187441281521973993547508557704941015480908425774726767168149810185808893215803372039712204852677193932101290133226625972837857350820804949645177612388589569613360043550034355096873155568583159841641181560829537730963270912399689260347263299254520080674244162543473718737290504511420199070578681628441601985586394757865726636213717600462150764964548797150418198107320943779541796024351161980993076675769809047485499946210955926604615033772871213823415141608878079988054310120467567117499935118936378279624132894095761988624265903088887674215069972551158241549889665704448688790353432867546191988860241629478153553517182804122837458860944536400783788580491501578369847958675819232507473971856957120066185028118356465341896974560194680089358259840746005196264438841932077404541029791320668066626286199989635823965815372918232590540413104602684877007879772859959828694593600385639306713259292204189178721561721208493433242307454463625815433609433103846794954162059348391718994258424334260409923249892599322899132506368955395501213372923017050304178621686367384037226611752150027944970033722996871348722259246513707311721914640435710308909975759633549661107838146544080872077949367787270864136533180154396794329393875112637071384843723674831330674906164994459920521833906008434210024298714049055814129769032285968769093127210544732998895644129419866766452117634766367206260020627060965840045155748118138281666419459649139202507968987883122005461239892690402573417448504089952441079158117642961381737051560813682976934620616893771970878107115571971273935002307468640252705900678714203766713087113652626221555524861483480276827097282494978722936652109802160373393462920756750785006374390057724853963905119343077318978451970221864170167699435216647610488599471965813382696562673434096352919364392595086016078173538863617150596226907375737919406956018388454269152887260944870738544132237683018936963653282496735687461865147122400878907274911809357204534217868517281865330856463068573164864615943877870602281561513931554882970867882093181457713405107030579764922749912453852562911453983647486130631769535281371844174737635235697362215896390787673313814270930206827487578334087005352336614107975292407262569438395906717835754135641674014664693668477112815028926342489139014392192528902573516364151630047220031108459647608801891903404693880600753569556305279148211964028454035168827109789938540957364952516455545365255071120628095562133187182189097875328701438881080729751668150147344661628601825373667044705343082131296447072020916783747094062496733307278673424059743631876147324539410800145219915520424802137146376399215906073575270864722451038552991939994807714284812699224358119382971008459547344832621379491692414898432412759728351011456097930072861560831793130740223147934679686980756768738243298680088512142572383423174949863654625562269729443081312937371772406577296938874272715528427865293248985965703990671234321667856378154569079348715965620767365194783215173795689388815560713809799813285113372448568125136113041913110651177672919992201232620666921152743032893987232901860637537740668734744687750092136657554925980311821831216315834119486606222269789043067900550244053523923912932425038155530037178430571594578676325687903200180581763922855528106269138349334334709920960427555410496264581599536766755829413843236563530721749009792280153443397065239190905885572762566847290914777839131841791802234445177641352525000195296297480085375144617459308624002394364746202988254468468659473552952700368154559318915121839838108876363543674893136994355965806408366229537569088205031060463812925364242123736305958588019965096933419014064267870700577298567987796832989771827263013516194580397080232680434971059893450636874370995107706546992548181907946516056392322018971728875316362750182855894303194399594682739861500483522625533137163281768025722742254641771945639336678194427732133456010601236849474429315763841153598503638959727691070428385367067238487623825402684765565377484414711573885770284572664535422244232956632363130537395156075164762488173976082278283218552148202909692170357766853999246478306062192009231546818253349617576408246203142571013338981182581457251323762529503150406888621054189141394164769546668040952133280754452991541742960889453280070060399398580712546712308188001418091561188712636942038750625865035644384734805738260372225504773074444638377143321601365620697662113616602435885027909654442972786101543779365269753322606079053062484453938487222411727199148657768274477251911597912533842651675828520043749276969353317558306874035851239992030975909880867070104858607260641122170958497669990221599396159549330568852781158272283703664512916406204242228469280699267503600486494588233349375862308145003275186078380476519346849544910845778050168770204119325410383243164782706666077983088680313641948348734051681041331111028782794340312659897805686463388109391737327671142972253184563346059987774894188138262058010075795797027437586488985261227473424936489422089898519623444349916525472397170800120954327868482763734597511853981758926425167940385047583507267457353230201065253643693572244840162469070213837715431228012133360512532870365342868469916661139098284620499214033369068826364928228490698040664391097065182225861625878294004795022019865008262386669384158500102859866360177377055180196430681962519841283457892389834955244823478632305168350172678557056159143476469892691759419833972128108711652503996384747233451293067099500419770746788260086367405499608632670146390756258550845085657528618806902284701139618914987110850817343459062079949093671979320933495024367969393217995410799225738316558981240353546112355724432868778136445063882119880503299235298250880742553928034008629069947286177215132583324522663696298014585806024328856162420538999193181953749858685071747441994720485073178903386869655736925735551851745052043198045079075144113117148554622358582623944293482915366899659941582262961160422563081706376644528902331578140666187595871248481456955786137229793724715843118039698771795209294347224295506811528774091640930898804176016096113444193408290016688172166494543374916250021273035405782107382458863965959613371930231084202538572331210354228221094557384096475147129617286067625313259982628764928491004291462817122776051516073336379778577366739001796742798350469929825826273583416192053475008559978412825263498655030377876328464603601763351777715825086869345226509937656271739036059333096239992676658576325739055912022341812392044053204772015033274303366147067279702234959554323956940574521205119577514367376568142624525842994766428450990717673668293649878171620386384350762948131018148614561717852040761228159625454389927089019245046886307277067754382838140810424645385372558601536011246594646044107440287321313873490659089554766302170523063813177777076104382806140901013681670884984408805784367058529273085351917485204037881534460968020574773933250458881674374653368727633037069255687882476091908655641772544235492673312435488298883903767871132453308908130385571560718877917675220820039015041846379294737156294537499197850796520890191480471756122664585555185307422200894680376473346118004545724828981895758449937522321379606452347408953692782177221211864863305606499487794257788528354579947841635404938933422988060892741994032121382021605230886670199718677037726912046993384599912745848384346306285670347220017516682040920287203711627743669390098045748418436069915835982583666325746996854611076441390027175443513075941649313923409038567022316805898544275928799161567497681038986062035283380473276983475942638146109140689493389803510255183350853041526498591017717916145808072361770874951596619123612362744464617483623565131176876253982435457302011853167274034399627798251795030249465397411067389704330507758673586621003126350824155227494628519529408849046059485860441679554840222826629076894203318731739730498325065113099173253812798634594890137171395977126286604996483557640409140363252746043308153033594306559625391463894238504659369465638072464140509554144964540088901431152887118270664106469648153043984203334655510703744054280591568164456575214197516687696887423245080448456113922307954777513338579864564199442260460864135773714135144819883273742628307478281826552113443025229928251164093049689668379944810219674627017664026775066567783924745696149597591249230762927264972291589790502714675079939682797866217296321818197581331690552288054307550647666137136796304377000509804834933179297517653592245483390950194420632195048891321972291173784958435568035443872318030178639871555488037773114797505177339853120269679579970907598895864279930831089960629737604652160704684505005185724114689976073117408897484847493370633388815707120844803339686739504361570693341761298336389616735973489049600044195168226481874492572495994815661568871173418515490797593183633589203306475138570625851277498494989660718805866761478801601317331322037179293147725880992706458609608497171012655276865739211088250589486570140614651457652965283421791633021119494447128978743088134059067988502165061938987910177556044283843299547589891016627047520833009288434179186308900700400934604368852932598507553187443293818208413230703440624107269132474459438620169233174720187257374766183136954857637020627391167475900564539676934368176387295035842436771917681259710768126179699012523195306620937446006893113149267130466766741745744181048136784161962371292608474131384164605261298308124783047801978837360170041772817098427913988330413563603566604994030247607155418804421499273622899465146358099026439939421189302345350802498012178875692857339272307327524688994153771850319696403260349097588372906050741253335673859234936941711059167725453416527513635336860337907324306275946846462609911376855620348510388290387866017698839780634553562968742542861302414466026709956274988051687515077343633257079989326012541842095163523183701022559766816372876380075131889505347595735767450037024552381654215542267878289435233521721739187675368505201844533742435638152946648364904433619523220932686962853973798348736795536635976541243201045678157534430093680920661043770959844867003982687509268669221932166195229439446309201398909264400343829075848514534959534715047474446462654277799569006585458187328229959821357860417457259219768572516859666252345449297518895515972321448058738601400396638409164711957359841378984900461406275494170750775506879408877652832125760653753375413253509573560339089111855770162563034394706548458038892473521442744046604519262149403781552459977734495424818785118021713723507090337584455282974254346327908583303994732709797349956430035235373209681945258939469062408727692552173187702712303223359969687060504061933263129054709811842127759910948465517223146490506170480576698836535151536187897064697150409278484389456183320964992066262718757777465324758925779703576685751484480334536191261794674691176512945734750474284447589530157222020604799291656933957465833357620923251839025009799620237379538162555653554657721961150260158223181409600170824874344928180280146956119417906338780223019075838682605920463956192745829070276984710439373688353167394559045605078290619696535086133299753369349887344969973993689116300034759109966659439936431883507756654930592364962000088463960555929826131832355529215534274130028089247462223054444705885782531370733214389981485305967813420515740868819401446511577770271422375223162106764448246314902564983102518432746325730065634324569756688895726370415319202336597554648814962634390863495614417309120033531986990576629137612676919687042135580186150332571093567365584165230693345643050071017529617952363832661015726480594227156056125809019902034774373181825175681910811473162745537368977314262787981645888615936092436018606161651936061277541129525947410544237957409968153049291948117253159895595954052707995502583850811485910271537618588065480125589371975154082280867424917075817325071329154445170216639549446967920758641411021492970146218962988157269403269833736079034368995523988485888682173668912386221956729475051138129661456970558742186688378701615431434048010684617057981021143109221396757208824703021996514365498388205627660332821900890455839228879477327117528170156606166314885938640635556806429113892884847979185440249967451146437380059020730290837157004966421707441853742461277696922443527656225263604449641802114211753375451539418985279001310021284672837751666096121909801416027609290152658688561024739264846974347319038254306590141483555753203637402212590970675682522811916110225128041191739342212056550024622292894781907153097246572940374541107645543814632902970754003509731401084199453924325091748434985270020704720786242934997114794238164324899140705507142307512288745126776834713606014969191929003563700346008465613906632596964661704964415654474991313791813432888996109106564944021662130599430102097279499758834922400468327898984998416930879791006061976690926189741609141475823566669254046841014876044231446771836973436976884486356747045056693115633277668900440825613889618623298420425443045094445417115597465905055573860589033053789421996448735688807050001845863884518336315313440147394841369194557369508626687887685195842660926871230791544917653907002548292819213485053967701601976411479625008871372695516025299512848334230804013045526825552654180067441557972966161191758849738286416786374222884521623692198340769966385852805294089177248708258088089656323437063578984700347576132638313360916929827763315118565241732653528899633796336507468430424460216700169740465695980240540738924307041916619435628905275389459723147885638980970531112366904466260250763328152589669540428381041488261670706621834072333144188058905258355175433904268091889045169574910115610037716503546323622665181610845476113758768260589404962517566357862785446402152805719631880677855928197137255173395774998017880680649000090119989907522628250745607827103134673996538632986146452472715297816871970845559122423441431928040741170898206522508106372737730484474283491446429528175620183633843262750895232589010489712305580994237130195684492734424414080994399560258657831721400996279033149770082595348023676727435540355184522293426610678196743298125392354808240311634449018371002291210854999129156094987299007935614360601118496229117090601646083917963207885759856149248251288149981329542532883514361001257393233772578316906339591896986822518274911591831608883822016171909844120078091622096209956406900170617214938069658862758940230676781721635646721910974315055809664454721979634819261214882925685695065833882428239596801624717612424499319928006067860555886976495260475614751708188059042821805393367939486280225271824787316751614663001654330225944147557949733907255900375764900570997537722885933339208310775859872666876351868713694280806848466914672691395221820444187641735960738598129926114713435836119647729608497244272683112137350099041139394520236486875483060213092506603180641204608887133747547833397887597252506796909564751490815322243022351074469087514384090617299882282441108026446019934625375390697656312985315229208548056408669392734116941015069959922858675710066050503526241377015732422745691768231616984768592122207977752342782676801706301175652007857144388016303420902082382155152579777845116994440292828095669733075504396335470003998779417546632309826979918260252879133099761189612594757786737493575828462548470530178016095206217183831443381935345551533716751642644910417584860069144140904448316833494098876221397184701180107596865503143513039638185880349490767022242404533342577715350381717516684840479186015277026721378077402893429164744472704323881576617223508092410622880293126404968660677505828538483089665174249483581473859161846903019010127748842219451074516919289745949238707653807789860672032555691959563580215117951998320791400306709467528420054170799682441929394278935764918918989780320659486262366140090037958583605552985201941899979662827244947686915549586117093724717738266536145680992393438382977123022316644506337099575385268940340873428232323251294957252106959220258688624130406390295952418134365895835438787693428088830762822436322693061319903529091140826906127484380000614681289774290320068306007317860440588112850239632043797490473115149015839677398356046695306103282212728646575699426210035660670227618017659097335493095951385378956457575505922867266428391685788797713016007505253243358887692272204056283612982825628457659301869017020380072678805379214142720171543399873367662670903804999625854246690488455198277337436730075248040064731338004808021731618766467138013986151507037494352199354429773554313296566738911921144419491575253119458992463918427022558290346192828708004818716428210863927624007726744485926679170801678685732926623721257613901380382798118255954350781622769482995447096130733571082187366006771754454272704956106002570968997963124035334671993503756487603012332523798850850594805852316710282506225742872168331534286455221217231920186096129447906013128101126308525505528117407898373390273126112391032829162712607709298993027581961101589386363810293491961819463857866956156208466111762789730324851427545895681128509460893318544288487847293673355876055355003316534572023366993316530296692075261421814098741713741011889844245949280448630057449656576682524476526178086582012101334057944041514214296368980872227954214403591699885452654858576549042073984501517430361084330797948022699502186442113497623585008951032613328225005310877146890447270704316236299236576938719589876661372644853392482094937358127749073595543649934028939854629361750761560380307679334668227026189522059336011726716982498456633421923408164242517881937052007568184671283349505014325483995214562924750777764300097470990956978825827345466748743121916273743235015184553696676318617987805904428381068592141954436179889074343487890438559506812644045502239414252194032868960758463613329404556390686778470307154297947669010913621956092742673950377022093799627233681094539484038292257768402341895106698272028910244788665715658159636178770849278430858540118740633346354131809903930858136134122481611196401625842059942753628988811612476038176994766903131248075826419624307033331192587302074952736331806224601508528303738831152373215986694650028939695276960105487538140820359101287645859139706512026090367769731448988742265782768911913389257768525783034642450256393640329043233606071687866871511745774535086615098604609035206899927694574403653701604935189600460908799369318879076620520969407995389614898126671022220713941649729213321307000752621800024905184633505081546488096587056513780379791084183728502035867370196568104210044135512907687485710742529068898502145405425641407416059372589451185303631443317605754412435233615941096102789241344796753876800253003503408206570283989276265555520375120150379119682660925957241723897420684305011581069920670212822804436042362995942880209909733759689899642761286837242317918195986298589122413478588856471950463899762649305577273041471574936144680231333638854605921161052313596055565194084647274710489625685417418937762061556971338933665358312716528200302735237412757001864670875306654708049334992748474606516234039812807269521714908731504407424948368551664693190674721966523298943265064888294890444863424732530408146444836415267705475364919095118673854459554381355359220757915987486074448701404248402959865216654427860405705550719263728197811721365409391286033611619833690241982818632164564131737091467529783119035070058816439023187618875010349851202418794755081357154692364080147996368406565732292505035672378487223193221184581058110150947867331742920556749345494450235428277347903688230399932481710042109320167470964772160608729281110495169294133911115965947813605567760173877783154087387874349300768830079048152033492836007098738658978502865209629039858558953022009954281031289448300157336558958933950932389024553070881530801580754218880382597043462120329912442143919553901920177268710599643306322419575147559787112698229948928207799647916088830291958957746322024892008948692652577882987058122194811018186750573317874864186612263851965697845104157864260391982022610650970372298947564533007644586570209102011647829086520782795840234572085990828034098213777123153754471766639842525160903528047621888528885347630005717966498519352262094422092450817418913889804578181308669755155975059141703870246363520661350655136952173223082343373658079590952845217601530796962272854509117245928647566691987727384372290885133118353342745467944832890796516871127522048024575266414274330882863315405275959473815306439689764659319021000435440656331940959343078725298318764260366006146147424891885896487950222672689492635883641831328401460448952259868985539799083167614925898758278378485359817663666452918115394783039566171433480209991811067165981078491765680708691997887190243618784817713768287735282237851710281619726384296196083240011326820898843602944885682592749404186182277484299668127804060879676344109750813605820717379758288236117239357311262391215121661362106945480505468875079289883825826831327530098438122701951746202471213583332722905526962523424370559761695248744414286406471431201535885416276586339045651684005519669555265552796678399671183498641354685546700067038979244837593120024820716104616480970381351065033585216427335474044980999275022769760910917174121025780671715966865961844938445099995668599231265761499263627072152008408767974994412690394053857819646742250571078614425209504881118449291015730728384120494302200840761830277671508302185440007448716480795445892535930480021529154191997541288749831012460713805380092307295475278810870638089370956712017759711614645021552571126138974817462589974542653793331520746349085774207872585618352506105215638266123101038088266779575793252664247471362623994198852365918766135843437314867423731548000283447980775048727032895257811041488337339873982102641586934170017466990461882596357509208283537491992089211061384438546291756498255735501700350319393271503905840447479689754321872048061675268150328026037274968685615377519296245951985945803523547378318752572532793130746369513469347011575368622338883014742731631228943820892853049890307453626597151683629992864531477632973565818819622425367930392910924450131910092290737703893857655577599216184177243457489376562731776485101146295670041470660038899361254443516990694527806266439486971437973516045580158330964731331170902869328169531748624370802770050178235922801940781064596338563171074079263908406109572331992656137278238784887658748735699526305556626782972372157751975259682027065344921628666433893240324871360534145694302269297428762034680963560053440629505940321688527548473918427425428443119710695407487345953695993553578538722787811018397346534152440776482341956326719152848920960942047812490210694153144105273285001562475215278245431101849331507519479564655306706499870340922286566143738514579667388757455434319714260409347329060660752896845687440015827616644279143655370001075310726592372625685061793005404175557324953505574297368874029051485532257616978119523049208115644555150838438675541780767580525871383033797302191843266210012282917929397271556190624837071196238369758939526777756182385379474692901058454828077538066119598733509452798544054559372257140129625839367537826603822902774842984081997957819605292060648558946486034125587218240030314989250089871641254768428296309501946010094262935289424987954885876444867831917991760259860962513590829046763164241439243759583476145868514351059164740063310693319629434793668945981326511688095462501125416925134415530731524592525163543784345959327457149356772056015565177108770039893539919560795461940531755382447704182084339128671144159390007042627089936337700390409924631104642013929887527055674739234535519369023978786596758403890176517124661824889125956168793753373899382975516932489533078650029013207202936641575995905445708699869727843273348663083526929662319165822405231969370054641778598707791086085689825627736737619329697246622057878931516595430895847051564568091538419816787565559092543505653828111486473783051725685916729055856585226840749779321616120114075004235687825448713915177388748600660810278365207389834203018692265269230385588884996855943612174536593829729391888345949615347711053494787395265787225165603522000305386496728160811606533529826725261763849740561086090965816398866778210803806586388780460540317704632862043107570102245970345835392938486261599507313090288972654001098497543382136137573403461843994594742377063996688176932750462729738114481799604159890760242447805585042932645484586357817413860826443006165811742400741981396066147681411962416047131061436941469629445068878121737656317341450109651301692888801750310002066452957843330582655658909227384921873549246010385457374525324655544992153195493320526787364189032909285700158013457560772309104507080938925967050366846699763798352252954848067192115014328073427333421893370409076546119894444143896637895804172130819481339851618983040758230822740297831861055035080315486759860718981480123397388645944444540932291566719524332758164646808494262083126338155097899619211045864222250389783285265235565909014294883769437825720470064920507213680509568842437367752820743346510909839435988792963671794262774890690120135890585904515321866359447593659364180052560324421956701672391324157226323694221640189576798894631844000267242038745649422065348560259070135924215536543593924213047230219696588872670295425168655288257371518399247998294481066522412445345604845754307688209816582962988956095519146326209613960552082249849800755994002919709449198885981286922456991443079841629693282641511638416816861463182532785139810613461784450908225894647666700718281306595717345597536635096708272729021256436974548738756233911069526322806732344141806248375967312216964733339736350794516585555787803452285654076812210015401924491815439072951658678515426878670928261532811219397288055973541267608092398217586762040179545563520657329655200952253892336052747130058687225032875177473847525506057983833123099395673371165062690653959040305205759751152762958884657032023502981445450976306793546745752315052171903670680672347321847385928219143364944399908827923412120167403239999599759760837350620095043537530920528073826374348071550164882106823211438684223689593571334515587393830857871309009329808274747385166627533382327690835897498708467559535552270054150385222787348500979810742953035887828528920369015609717658494021718676980573749522574161853546965825684553344636783568390783025423468246485779740785129829076971873506564514876524117959447182967670759273245927656578676969288882110888893121029665991492773036071491046882172819781706765559239203534579743111592992858942580834319514552491256203355739594233321110693136916200796498048240747967780186646192215745538764536300860917748741233504782085456635322083129703058992338310531244915940232272799403320946256429789122990886017980370592485763540287168834565020271515912413359177936328887924615295645719247504278341821773859621161687776612797142441344891737078844214065446750779159015814279917626841397924548621725284050027070016346909122582736522942223415730621472009961580374771123814928451999493805510586357048469125516105946958960515789567902670851611095807521262988517193740462627324572665781865283800582556475263735518960260398780600754205969563341667578685833414306582187193249269479040929990907367133119461884330305485818047643619557929484017899262037581895688062508635030800859709851170737089244678163175931748786084797839549195003587857255063959465380088492349597565228434063788615564865002382856214797661925445827519441915989103128058636812886783202808518979811961046792120710187663600362103533702486995998318808908556030999932369295770646134529374224251921032311305484132084608104700920570019301732231244530207093806327466927092377475539514188002096623038615878717661371446087767542830221613009169958573508992249874995951707095937385567652347492614344360358320236433154175078148771013098336996595016585165251031859694054937284974001478793730514351407883202461948843517824750235642869418319574313615275734415120104743959094209662997939370316010704117040448426074238945704515540589181070444016042454391991331976558486853632325217276705828985438418528292377349379601446094549525401406822314699966265681595836129459645376642057754338276809633678788922132242567402642828350969114573891809530723046675826433585991134724057630671341478521405699041741444635591392878337787196161707576128302739776854418986537140792045369218239508367376860772531593610093147375756396731511230966950622895242248230674771967410334678275259757947936047293666874699295274412000575895257843097875735050057785021381920522707780980327003323292188935063623343588599637472541316611543081980844787864360398240737851419088904303078376507941696904005822981331287255739918081357361595369924483763568648706083097734239073548046244481557438653403806250970860183352201829323731414089842777358667558434664193024937394661366180678771305763122491360406616756831024459522479360336133700738929347721462210908692064713707043223257350376619932653460592986699778565782662827935623467548804728282352356273705126872079196469026777668099816365017979734811116652480092886930451918787725255691085771568414945404031426265763629843192339105988706657245131587070381871726406099019953155860631548223804548480298160151286163359014070209929352134548898981265120771994207169659847022887379836911926137818334158710944083978814293883268731959710029974033835560333221976964828719625625927485977733079046861101034473161809486122856157517554861734380721137942676764007246384694906966931584839963182281928563054343782359139740406547369393553688653186201638808851518557422723087283335550057390335397220582393399109114248760564620770304663699087904010159793756455614152148505448651349759985206958114013921569919658088503825161894158878425604608325720555782749230047849115997569405165521966592272768769658958546082772476815845308844499536732570486492319784586139033970012044788682520232752199747502261694189282697419799894751429223952655373081245778154586559371706137091007126430010050789509658421167630992612020464521469637394474483542217398343020495725247345718746062538757606120658809358459543998138196113014984581259621779646425133036827126414734259548829636548788511198195108101676163771302035833520998122143387931939974055927534527292005696701197159778097052497340622941263417395544336791426677646240476746383468524088428965566941893476506447079780762765097081209653326901449933985835903924564235389471639153705891970618159767805557594000785127092418793392059399909264900363800269385646107695554316659527047622305646180083473785439361100577086073987697469756288736862935196840933121203027522871035825551583959491459374878114217786868878528987480070318542534512777913046023275761827483661959158732927096174218042818662273784097852361527771320741021642034760809051215558241402298622269726293571321314714852112302615665276571386674570396795393654144393545199481186985160548669079636195174524080169984584442905987579236683403883636845204063388259406723804662226434199904467901872357273020299537246914810249572051907374363804820394071628264628926254726190768056005116814773785362455276118580204888630704193284760101475814914401143091420486074207393512665234173549103875455523149178692583261840466474028822901372150023448365464818826307807487585122986110987352993984729453419381791701567115190548887753577561368055887885312077112278420651045765622878707217642305137585808610150191405322761395202889439501290666351863244970679358672467639315000564473271084209340761702065084452493823559601739888969275628371782934870129746131580597308168495838958856728201855847765735088521490221690548955615127807431998965736180727592435583103635907020825543202425731849837981492991011591194937261986958126945517434511394022376311823612066491979987013047373439907865004510265701833743642444251130918795391334014714723952182885126979666994013452620122107370330159094942648544948610605696684629278908671770202329315423092212410008596129756496160952659158508956179022556525989165051547990102269489977285704772632915225320101586688462717591360501146358977982474619442597437262436132389537868343259369823619453889247655977019378573085850561285258974697970546774472316303113127986536229463552092282773084534308272055811347541798213279414350576344223793752517996516145416572916090877991819442082847569703044336698455080480330194398557870013620298297030564893055628818675166277505119586872597224872820189852151769528694142546875380124750078632718166362771750313701228512038275678008557251950776496291813582516555618444130960179283678183137472032218848661349547222750094868508967954855970373984425322522983874198115674986264869681391426854712765059446202188488791785069109984905874690848360545410822615886797493498918107080671347584364900161130700440248662768326303144296883818627151423015655215505037137170021681883440403383689821658899670455970150505871518985763939590145101135434477340946906254372638469774014751730287451538604482572249288391060971863805553241596138885898663652039696743513202688361810832602912437148005595202767137424433159350169847772691544399752201657107922641778652626473133628045678824543132156310008561033915954552797011804726484748771301914558161463533896503488340014373859203210817268259839784772204332566945135868574559563433623508139405022139466711283463387689459665758660128967869634862873057336434997864434805160685092543305937769409212681140811655417782547141980027971232129736757340794198016219738828703400429680882956922444374950898241516616237235884418210601780200309710699040773329533759050575749500324793353106429603962527456482178119935503229182332737560488673855232676650912785068131010221431441325096269078583949244284158329808387115133135012399022101567987609317645273305553064381543727730452878196625397977755092494016646702866876007679772305317507634020953142762940462959026627755786216705422190603656135299212983908275890840727105323221457646730150997729524620018273321584111376985742983672083090613218633781076903883136694971201098719287178030547051771100582743501307949585803509379173052449857784261177495416639440403660023599615330082502707634356630845899000686104457189898739969290992777580453102714846821669638767266219793719882427038766302460643856648233885628871805020058731950678693319123332044171671651533106591384772519720941004685410621104221160226501699258827413572829377300251195772327959329077131293503103064280856745608220069663456345400055447433081439506419157506906798696292951989864522739204186305877588236536183079005848258706673710692662753611604803670036375076782655465260288219712101486565782727720981055050987465018333785577534524221756289273285904694301026008330439474739494732108881707319464661365721890161342374548700997032264123085611731937432826690408076868061012327312352500724691959899201372073503457880775947534080436708099625070153273763329476697633747120978606875541947553934444161992946056427917066811586517344360135734686756835390210559332651969961729686800957596323655960412339006340587517373838871951500574423779025712534717407916163855324732568352249110486824376119333676045841833275307421224477353529793239662233857205512213464094229732449265045834810517197452374268570676177542159195748259726887365661863526422291206334366438699162957769650378015560396562587440564329531172948312404381473867913911598379905471322120034318712331188080255071909004290978063882085904285797548953667896026049866333485542963533704146422697427243900370417772224254772578448562265368807003835536919850922462031847601264204447537257491646469307827640051840212921077058607251344200740641201312339827710865147268125874624717982632317515234786191552075805701751123169663423031625340202398741238355766474377396201537428669688121315040859782257250128947746457956055425308660711031506618720800145202330791000999865839666779174525774433001076515356705893501563817598684828158728016795175861425306337782370593522619498168668067212883854510260086022032696650736262096778097965556054303052928873442058793448081197202514851769328122479695651940065574062481245401652547035216494053269032329999213296203539377608358375020352904641469823237049099328721102662229882546215501739629392936304312659541236112748278253670704432734506232147188637286262257970416954501130331665306610623742330330725028224416503588168743635833179661629692833558951968483357891082267709220270865500516019997931277074929543058524853658431411040359770439911423057996168791976463720234499948764920002430568887649298865473482121919820105231316984776166032854008025853842091255210976583580409138643370958270586586815071393944426167898019363317689227215721421068177552950949301087380466767424641780835026245491011744280187359119492487073999507264990386772151986330447281073780705012978357535272729384050049913204399134958645155803686909040706735750843676069082537972526114121094678451289201372900486723920925645237806951053159773340778920065618295717973230887445663852495561353401364738648210208676554005814483437605890068327481041725112168059571294632277592598650243629025673784161829196029109592580523656600299382439698719060380174976959987091600744838137341711962568909277640155650628537582573197419272457948109146320552028729991278886531713300203388140374155127345809641758761453551414167201501440629631337557555740713233622932044582486442266835216656130756334092317261098313151465386919187369449369028329894790470454437019707676649248074465612661888827129824359376487733882572887014310793503773258366938979453750101313728716471272089989967912099860154561924767135093730028714409423394666778946470495934276527367984992467919294330142503388215320464453088525688657677408628106177587146891286070919980108775986470002480707598614488233599760666744155692746069978861836475080278406189645522548359732303206537790276142629610296610987384517142281106675008279626615844833086142195704966282134754451379377512269343432907671558652051287143805367625521096465668170736026351054789819670546966879353228383136981260365440494356653861359177706815112208014833019636592339303065876542528179693325259529330747715173628206653406241330629156464708363660825821057383030980170457459740094299582867411171025872036994823251042415106297329353137195947705432013442449779249963479927788748949600261178396599451775032658700729196234634215479832643804778811016099328522185322017878500113774801150989929605736476622180974555966833961569793020121667619341214701076253431929506233229074199246211217532846566387364095609557018674515977802147781505546573812699498504888450034580072806567390492235097402099065297742073204854291900652498210417982534413604095857208470252442767394196393361000340576942217263217385662579910257286913420645425075626867314442326439446811917281864864915688791115952657716575304048718842509745183419360254768341995692164613146608509856703270791599638777197456662466909517476736719969254322596351927714629256037154887739254585216903063077938329760478218448534966185738576413891136602025678631255054695881611122594009631684433277830592913463943330510888948663858079921977280269977350036240271685576809561788927276095301436533617965007302082969082283107275838718801073070442819446457076535416904153223357680782669735106518349052967712336827160584970800200398114608595576165015991074221952700260111472627247657386445736495359439088320669101228981520090229744076712664747833367338678054739173949849810780238470494988763841848654727414337377799013696677569816491151603335005741811593730903610160164659246843981625447321114798546426820642118622857759122546566856066533975914366283899744589790094309531570106444185720817675089806132870064588636717128784806819796450874539203677848834734652262167187521804929724282655413287994896060742353838113844957841851823305273116120156511705290207668914329106767313981997904033987620910873701734996328097518475503234436396394086493635427827943247718333418469148685090975665600864009852443805558214256027567222624076244195397479912838945294062695570097610542494418269103120513492260844130063527044934313905031324136742716502161217724140483904698904420101911281815434413183324045835460630564801645093780956853208481428292789596838576203097892458485498267999257134706016333908361357984139862468687628525919447629644791098116030697887938260317127044378165491671579202812648383498291442618923252710647414864027708559077056567862875599685784756898684503656350663932292890037605691012958982848123669125330527327500327574481024976929460545264094272734735001973770344829538581643427484785567423319052485892354759796723019183134309326972498786884479835155200941008137715154231541671259073578605043220821328435415629523823803001422526092700272067461797047519569720587523929067065041688311602100114618468494621821886295242802097582049241111793177644255900077772189324217444954841098853664429773329041196647331195285798291634525710371543209750358801527525033487670352623313609696799766082192341499192477490534058776067436682357324391030804312218349705144382724936988088259919309676157555631975312725887489469130643475212143832297331005588284376770016274325925723085849801041378834977192634994571687959427748616518303846793960204600465153641999425376446351436990370579595761443984989310032426060753060930260597980594687180769654573816630573576752158279744422120496171121259462985842683384554846702867564994379702718293877612062741459518223205990792545770434234016021855969633175924978667886454602675266113539139987260529092450647637440145235979483950687104845186074810783559255060756131494896364991283186796589425184528212785710137315644624680073654645499719943623588435677193488338998798032796376720378188982765942391520288299677936934320337023924185644292297220428255422210257355496446906992384873538494857350684555995681171877577716549472673822470220881447500070323231473211044979677483742118632357467790301688990817464862420144781454841768191229055281506667524541043983830579038890175879801923087239654576684923281300543107880733552825561255809588507639171888215785886761218673798514346845813166228790981979794036812239789773791716987689436019233921424450451686209357985165134271408661812684650147762353906207368673243812809178876869892861232338627480727946958576602002796707935211695233811301203801855355960182092136768240460760722414855674602753859318680001370922796751177534124255645874862789093260404931518399634124474135668871382733088963978485721914207730914927700342021542684290770455225797888339426558763225441993715621773330584552351955296607090582841876137262477574578662056790660218388040203139125374747446984531341984600964593485424081991380490230554203082067857678094558067025910656963403017907168240299215203634088437646211409210499362063488063000669656183437032178086587009492753848813456020785355334764254626227900643419141172259221575657211448377120774790529809455015295904835832747570303452957918757895974006186679501711501679904677067658491490988850727171852565223419180060952885806392874471063270579976819323351722194005369388586383983835743296627957752134803149506881338372660793542473939986041926213611156178325435934845127019177954837837295462728959149713073997427344713308452092695006319740696983404427786725583834683585048989022187991356493225535919418124095272229497819044027114617843364320316784121805544155486956676099409067712970917717206763662443330382311340848336658405872078570737099471365308620599995357175445444002923063551680253757932986424057501176538735518336250013363239868179507243637434201751857263116262334002908739877159590903087593280521235294975929270634230491406094763393981850964669153459927739168927357426195013408630906372999817796221830681703109292695459551643367747832985232372117459788778280240023379525622932143881725481909876961353112136131605172165078111656141426522873494881677948641959323888147475609766239742991260790818588588081211461019373421816844433041714508091598189277012415314396012972837238887259349632981406095806051746519310168428877968866564730527816894946796884355621217125994101353608132408883185158322324035020106032393365367925025337700942281429620819576990112709802264331203768548399108676545679957782502396464248061447621385449814079652004547621580504418914708871736221191422998580946858924036659915363082899584832191362515007775318883849688062321795682199659039462439828116127113839750326362299280330190493113506899911866727761092958023858135789288423515013312338998909756815948026602674515592624374167650739016166456021550450836020497774482288149191269531306592365451093919200500858493480057910113748569995937828394685774654932555214408594334282441850944763313886599857806644927837970740517706970113158767910422018412927634367059844485461490046417530451130248651122126339731566861309608615782312222138057066653195240888037668493060956942966611523072856688687739003447907085646604113798701412516532216923788436805387097992487541089531508648935129327545108790422787958838423269981313136440926503422622404989229754566987317904379582410410795236893747525181824204663509324668031793983454052755205921657076544338253804159086305368966898362059484827009163601589710351044859609349175897987974056413761802326798676607134142065198204460142607106527828687159292974626829795912553778354717896356412275606103757267301049519166067594133714466719479819861956266200372500371307116284606681220858868680843319502020182926749423169692997460192870648883657114192307387243370890676792485691681555010987323449336872559358861652428024583603294148832799257351873093400569169063862322133764156763052538103337613042309060678609638543676706661471462266599268492160988066641005011635751264587139940420542054501706403153202337798749359591957235870022181549652159487948912770421072314621963870866396983349721762441739108753903339539475971647461403549771574944370792458007765514763392525192043292876232230458344030899961127882310022140343443506027007616891025566234056715642901450851376211186799400108763723440783415869758467057634139233729494319001933721421820120108769404886234305450857543315445745320625350623736233544931662937567078289991253561084829695475837811155635348221432511006557517760150941248163573588231115514505428580464756290172131594297666917476978125977009027750007100998342817484811039562501690954299305580728618352923210815169321540961540195052831457681860645185661788040042574636900550899292957669367438334105740502279323512459638337288892120918967386726526956068955835734345297944045234677495440618551471967778966360769967792221150604759501396758904168665560141965737725796246783095112724140791873686407636371203940854013806831942041160439894949695403680921759557023704080673834163756351664144453321544618988895169662503003475101647887140788050879512767572523822112064929437760459929215426325673133317094365425537530961597126397616680445584453491415429688937470934275227408337759251741875188749322454403863117097444817919956901344750436483648778749323903284486896598833398429197249245225776741678098120751736486227333086272154944785204192570049002804221513177807427190263373054514527632100050477158348471375535083673039528536356650081961611670856451237830774107055998990395199788328347945417806601596740119057928981181673751761648234119294504517866042195196860128896337956922275094785726568733739245647823002996730686790520287122341222079553208041800263939288195162346974655836529673616877216705697797481355285890937843565995823572838207515929175458564548434061360749003375803589222780785760157895656887426968500230268025475844644943897329958852379849995143189914847049209128024173567639179525668340160077909297214318559665588082114362025432624639619286255279322456659749883593320352382324828839167974588395905439893076307821507584905730571246176114103707009950585221263753013933447363492620811407043379928269408478988084936664619340326566184930278190318762167126317422908994724493149576792730858456905482524023417272685479506577022903953723168855731602414803520303026136917839658012915988708462497157903299523745032402181546722551710787965151022816946426729702845184256069265805141394042342271051030380408500386236898132072909672174907737187889715115488254531126682807825833645089529503103307426064415060820737930488938137704337654348727966263610301178545096594643845304915101789515522317931524154865346600140165540153812079381761458294147451039049404165600347700641037752707725107123285278587103692107627460795902390846931881801044933706839892564112056337360488183963688066898484786346523469303684126096455601603367866895757179595225871390842656707285095573955950673291051580806826921611969569505517432011888167358715330390111119473274360764671180995092545411305081833362056586077092507353689281540149868148089397089278319653276545330973405689168562566265603860458473017146470196029870874031483855326380703687171746943361256941310334248507028621701838249276845769757521359691336640370881266733311141711738160585568850823577638147431237563355864897010253028050960697612026461227984732162515320176841926045902286092436878186822364097415957162759096589301714685950902425669307063228665891062865122229016436438484006947549979967749296914793932300196728705904167287234949856886413645224995521184362869372473414538524074634012891503654228849825152100683707600475019478817141430497103413640143688660809315233850531202494482822089379979413455806480648271261101800686728633789626616789469334388531472366426452199244489520620504680250707299043950465347036257134731170965001498073284979503353407434233565407378998722236600627093782075614806860514171927600347177288274717886412854623278179261232374933197725959788559846136252490011065686745835284230926089813898867458519658929245523366175905118188267798609777217844214580386554179488401645615830715181951539877515544860549982262913120892492821630022218936971993810394209715196248637223992840509690618471689755521756439823514807030519961701696412683105382403584206561890253220176908984161995917572397521737023877010979489986605832507415957803135896583144652281941014704862413346260605496586298492482469946208599468027313019253472556477186127013291480848031326398840203238580820248648601092808519910346555758264809534187025501570097158734028189356227068394224675752622898256065526734807431183101695461780071462805309246323759725096390889878489077350596281098035425416790141426910628352451395321495286188353196588666167680375425843450347432868216174770629399973475358597098098051471684055067601367834418818967724692690500023948319531745926312705996543731655843490484761438015261890785694393505046280006651938917564542172333379992237358902846833336813837546089590935179641289257859849853897547493528271621909232022474024772558618743548064909196991417394445947089805206662763976047727152895473821562843396478646979440333374457682192657696800087145871641283432419500471837347736504108532363595972320392984065092633320747489540992038675653855590056577058088774656997853989849057998894992772692551774405982857478641584348070651566928579670703538234423234732625507769080130773341353418033905534450187310366572358853514505185815804430837922788098655658128870248476885207420818565691426356977545466734932134173603678141271455853022179144957587056630569389874447556320723600257468822862535577603726844934021207046758821633190184970512564804316798519533022049788478971378433628809095395727738827484190545240379096944742725096845929770272370095941136381002607880974920592511818549520634108359926114732398500531379179373335205077470838239833550583997534572018106286361396980668720540369209434244441902203942174667763298803456057211850307851889663411696356356178456523474179558450093031179038781182631265012820307026131058661927244649544864417150046316506644883223989021575727774650329999548119111033633581426239514486121570644808183922718186930325171870800071859023226039535694485416399182568610786171596274692049273708639115431735846652484490209258332969670733947980902139373884383762611375106251875725501410589612998844100349740161005129938393933775666545265139029074475195805184097231220356564433281207101438456871484660456932643052831904933243749428871764296132993025433318040556630574536568308050646672174546688466876127151194888782893421507212656510608513261003910431000315158206073733634210890603160416635316100968992689103481071626918065220587394751875333629977912521065818414373374871454419175287968449965431098084244441784810027261665325299430901773238397981458606509092674469795231387913105217515166615389551828925988695614171856019892272364254804646070371242667344186848594204526808845602285120658902209009063019750451316102138896875185440008057051527569337966461806707907351189129252752247053050418767396337317372283335075439614896051037736453068639747762604866161770885290072981341484575345136399123071150704540100844799923435630201292047863943382810374565981176972584957615011250474588872122239230049584424319321413552078494113256923265413705517559197139755097973127246602735106785296177076263823284651227868603114895086823565469447784455477412770096692706747259177310672904662689312573960580465427994199358961262847415026467333686287941853476080909446466887004392975264949855003020321645351266746776949118635881221288217498380078968651712873142884740329771250648397115779253535654021169248138240407319802590636025660191265944963809802725532182545111044596616232840070265090509349418700785851418961389326114560739715853497396033047656911688419822046561650347984836923405103766310088460652792011274490670405411403822915531100768233471193736637423645962914933395005465101939426445457442348996236085569661754558099270120028685880289114888068733999306314109910629202432438358085167261533467790690464765658043010164371350621154030133452176472482764722239388313819354970808738022431192599608025289164723696330093305746679315597101414279703872560302330093083975999679703741159177802222763179694205923461078761446080659657863503746963335840749251455383245190503285619150234728620484927522651719957476413392189077610485657270956250334378068277767626246513776867385014271854654214615693115842696704120693552658239519440631431937771025410127417489365784933239150133904445159682868581103305276704332660528947745554108139929514928991239843602564141939611373532610346659593346483864528491481145642466596690137065509310118419408493751803272272923547542608696743436761625346238846444468848881305827676649481813289126615910816222370774808670862188988603460547132226024246506044608402518289805947699353220797763276437967420888288063102325710499174423132226121837115056093873296893546131451202607808240082051621808735394065740635256719186133868342002405261776690103553421996852178496001810620490810088963097898435499315957368158204008336128444573957235945538135532136885220443214637474707915973032422364218054308845854407219412616383198299231243753638655362543933451804038391955411194339487748556654260723875740345444998080012245264326495417045959891399099116553473813073524785230513882420231562793895553457558802035900614112758128863018988722268733102723689755318670090020503353618796266735454341017261357098198087370748381726152544890279221409800263981285988523043660731027424781300364641603455205632144007593358951513837380805712125592358840688567341978089992089508135072267556496001137714693488844141943987833995604678791245850424734596106275303706157204018633784818675424915891201178571046545244863291572248732431109821241381638338613737013557292051206549421141827321265974714461832238774398750434846376375155904613645737503580732387731832483575363752823699635501451765964435821657244660352374862307170834672000576931411366924975216673260845029080749215657608406885366688315322933218486498892438025539114779192888559408889172606644063079760761672911521174091499184744111430001061452294799581891901572295424706832544994667667502920328438971475781105023519518989903173593732863237319805720856393479327211363750523831666397353037909127887652024886367684303884746812477029927290342734303062466952726805791675660146917364112916874036013765061848479960676235320465283242316804134838655677643410572649977361819613434620746310043172684642187464295576127387036360562631314259083881676368164468203262121139172181573176068721671075190666000888450966515207982760392682068783601667821078332268984925561865885589329333931092145583342283931415020005822218534750133837958579024722418412138044576240510852237484522700365382919284470787272765249292505302443878870216533392860628588515465834314830875612386293085637918952069230209356472945938552406584387373686240592978159781186066500217893387875053312106097600235914512794732960805130392340419706637697441179125098066129016900864449656518870792521691697798277962139324047585058475015561646735346112051818793972726522890105588243505166166507978139653726467900921754156765384807484023399734110495088776967277433530310744663636755502268060229125712077590292279186717571424816921703094126350435974981136083000290694167390336651286696973252481416253871090117875275139486701507027348976012725442912439169197076229542112305956842091769290797277092855812105907083151400718942583543902181991617366492637190881595361303950740103194504998397122943099933995195413479850171719250615783244412371126799960777956559604078029012576935496038848050672382863584171035554408608803488060917215107382456899553758729719351680793116941230635831264804179781367885300765966064081865374230166893871804315351562827490168520431411309527298313017978402974521755265145503517970543203505198472988860756356482935588825828595308915084475123727237510614962191630126744818528768384109938954444370589791193737605895712148865237012799300841204642786510124878978327146576329233247885482645029179343407620729017939817068163095675028314432543929978976281404194096619946178943631264205489890552521503792029124404607612536968048378902788157475500171664219442915278403294143489346134145583981326129297068658370675352990167376956717276278529197026548525406962324430447906041509229625488932965998853344738282490250064448693726747535698681547030508891958425261158388072681521892948475035245258206433521178293796225561530307234484552169692322102494772523944899118388386998543556557689406708935281788219506610094794452293685668179821200589274709378578876289219303036186836459939215415141016487276068862013628991670987223521749205896786562042089421784640039611625861112800831489149134229880306869917039972751999890555357173623087232661868006673333931747149169440560017357830669700053858624547877984591388839286596838105514555317336611965653247479420753296736276130468107120163894676456413274142027061240350873620369598297150292085263597603913721889011607069439972496336191768125090203118226055500621723489976320695091488462606696990099088205804409258687671844816992949591951413186259099541494316704035785346119211399256572386412416011243092782189742658244201821192505189469809870298085423040301638398958021890637661487959415257349654947498246351247746545360778312321069176737155303491614757784557446722218466944582656817538618402982135447049545357568791426404909916792777084970367847579596533991352784655420907023775566813940747331115674762899311384462141251280228392843293452412730334417059022676720461575133998825967059820683091100474687314071942839332210652307240190212824216123351783131410415063563312058730152019180040304875287226188120910567205292038719512222730851963626277431682188246916754193156896912113690203485025960469298429243549878069812685720597298570295218077829488935329295319788692305049530225210475772972504590585949317755968610763386556755926837707862002702792262119984385107316608528699198706346337182238050067610028729198412390662582781151999767107629354074555701418957371356733638665790597123921474090958624940084032156785254341182117995037445891732369948867947006944863299195334359469565435759296295532119575103159419144861027043751681922704160906443818685112652840938474133899829544850877076368747314897905994602657795025551605529953831241254899932121221461974919774227931282352729271341014357251342971473561259791392680150940357941740709364957194577574917169383304872277752059052859150356114097789811513012558863630657419504362483222771732631308854773211795540490459217129672281001375645959883274389594338952371567086970638477584667652460860501609435197457993212279166239999973352163434342325608813071741371102932254126442023865348551451299453276290046991230520309356148321907561610050353225973255505624166480537610480413028337227176835821365500290094710508533151777868801176788509572994175331897343686092018001453542817601659751432938566491433596155856441323327704409531305077060555652459125672654816535676259310854066944711468284250518849866822736181889808452968216510709206014223308388695400969157529765620358662229982785461344016123610756407432090973824028214907514845214667880379344239607344354327191654283978415499230322013730568325678887487863401376721847973330647961241346520331463645343709419534569019872023039922385613634346540566156106965467201959283176158713081823446972577890079003211820901674410210922477613722328466085314585345950803970841264369891353664827724492801174869115899200446297363257131777579153989599906940401564078774336735417206711754502620844409220351510172751969407899370855057592988887054724890518383062312788289126768120248880083931707313861580301815660765993306815687062654481491567812108908745104210895529085849786836970035858182663001420373554640415137551266062294252428080910861798583651956310429248476572891767466245266949533030251400443000898045195997225453340221537021306845515926535606849304965403752333956130587802907272945746523967345987501965711251763996393152838513414808199303610912949125299747625837119129192200684862287532075548477225141037426513715747087109773815285854149922719739924617450821784543188261542558710536563679239082602857338275713612021188145587405684287281313018320944027007484106398804660426352318615652262578910067891173670571392394943909122828560209299306406302797751282829991683547069861895477097409873947948129097785549398089864277248254467899048608084326242886031150798874337082253723480425949909411241011398763668967096919914032458353322953681565922162981944766572019907466881815897505568758005431103538596961079695418264486708397111318473833598715067137439783932005103324094409308023966268150704091262627447255862106850506543719548950748029686808958354051731353927038354987681018961428276257845551762449153271694947683684091737993089156600705151217993549433260837049875863878859280631066808961257768719467254276019624690656302845833410318985440374836735839326376843309719621888171576225204604808609171166090474559729160656768264220873301651169029740902209781066836967768162948403533282321567204520166111500742508323223786897803293492214428086225884210945071219180169205702425521593618670193454474301981728351573378008871311068050662144200622737971952118880150583134969010931501741982345280588382947536358820103061865004383685749460074143021054531210107629554721032063349784827870184959963675462285011837598023514578082125453136544216039064042798075543277987422787443259979336376887857276665364000632351095195555857227417398625403769346189570253117769331432526913448841376794870226817826512871989188407389304654018872826506325468583581397234583062621790812803196139128316539044613711575676036438885436947795889633232426288526904291050618248021595676567464982371314920237850033743262117395355749949624265000074040501368513127486251721624956136533823144745777762727759543482307305438808034724158302457582223543615160507478685860673412329155779566285684039419668979512450140489005800556039206160136742543141340881489014391541081317609837017356385539059827851863026530934997238342195414934154270388559857307205468487423693683100467676876856851045932167673948096327988509474221855993268539832201538450192804245252472778711218861935432250350353227069971324649421115377296850292157674688148211893981761996198643688765329895341362014308282862008833692016925762464913914114286671923224013862005841299241043657308502342504120605529378593544647805796756952580981522756845495239008831396813080845910035842108270798782841860838472591956575203241937015363049258800774559516823052603250877436132054661904818872724894827442260165713320510746184643124737571750257174195004488675566184287463964073225962751876222049418801014817324794944949168966558412059322311839577871839961423432103593770100970409265120189542515059281925315889870785847459789737101436107939775572741431050769274662074731409950724742629631970334551444374983388881178923162319821064473318571022494675126209689989613902971174916420771884610933587334550100832253784471155353158241343297622252357571164884189150938335774513394385825763167464865493715023927771651241098127540373199520970126827303126859133497449869754380142895366745381405542690578285811660097746214443325118439357063566375316320491762296182713431523978079079106052364524677491522405045691674168122497608398828702091420653074667152111218028494668934717913389904057579416431250057463171210781849187604144544354567123035543974884422661193067965462839757102053286370803442701178191717991243712016235845610628763425576894973580790955102959184907601728243243040529972848926277845526145272953784423288013447327387466319445397101735161346268450743506085610287972365139351734632634443070276523637812990376366741987579953679979140238281523980094070804981372581889688698474241673875072592925722955088294018198538025721708355295920554808366831816729943635480606730575892785907169600992534306832843587296145731009160000655539264233599434633346822323530017005260333311592549699132052155302930696109302048635826318054813447060104966888411712582113317138898095904918066948115817162728252653932644196028556291364763586622208028849436720249500799854679899421618924236842699566643572906425157246441048013222223117147417403839588374136758178972583237078165484968797410670220778665822453709534735399614466330832431680186105384216140812616673938349421532783225189004971864155686378443984781733131958439272448612103258031105759705479505205126373366975946676724763496499326292156129917305735056900360206167766497972542191757237140305423717939326812835810799432437303223393549938210672981823118899967624654256280505734674498074452874030063797072240670439550984177273734305053949362991687698339529742900444897813373668175527064570363518872131129838199847289128215962422102439849024497692547614848916294335824125593537570230378403234823024435750138674246358281460701814410548153833441185394760526936512350369084160978115393403951162225586844460458641019346627613645116188988666662575416055106257886082598753443382161715198289144023484580086834989450719674319977631613394317062507005129632172879070206263460010915678083872396888537578543872036331413167439713331852481399944589712371974851522350007067943816782246413836256852577302750992429171315956458736638709702674068329577339641449527417362266541521633121073893231951536952687080251584521738579220261959207109277415908192859157017286906345858870591566260753036732317961141093567861840821188998306906423213768603650019436163764459509818565780507904350089182695600679449819351466176789494395343572299397121150859130078453877696028399905969072792117463798006834157546711742608850929826979143641370588590660886999060832801332262055744540768298288874874060709357860873199834296604291087128586145790748384953016552471287253027970481917778905433378543384211367913862311175482717708246949491448603815474730891539986359805904854793504150741332551586645501017484917815964492857839314407284128914400307230359282244958235634749482332026303704065979426527223241046757942541102255035027115192079594390809002476797685859026531726124999864665642646727806520734713267203912479182009436272926707959599180177705465932752583913586660472984651387546020882878176293496988248483121473111653009019485400564360130022526819368652474170274194050860215109276392784094627112298306789786692494521953977375832042916154714937177630661070974975374945884478404175182324038062858954802972950625556622489172452289324457180819701362884449379588452007687536173028822372549728302923821647229533538684238127167537485599741518005199713876942821290757602727551807373420736281955660507415674545745805045757626528160009823193682437666630761323600705210065427394996128247904069031740455585953801500731797525988463501011526043809163655495802293348755634082423092772524274472298419579879450065996359404174130407750475495436541121279877076925190011593863792429765158946920688964803824147392868045227636579815490293863925882261238826450565829973742023439001933241791458717291792144561903307228761318389871257414828048630426142917998227736877191324291654597648353790160730069399079910237860258629708141871087252042455646278932947795058524044266624886633002712468676583833015738947426351991189386730934099891546602730542815618441369922238516075165851947347683253580570155603008984360281822540496714121905602261370791403898499579937776141858410858353528991352548644853105760561169917994084751176792193089782950422535488989677462837280942710335668123369188683160112487154172184593275341455771787834820286407894380567623756344232281174786798916184633705424245088800372238114546263768261921693698225628688138102251859631557146601107643716688112882200848252701868895168062008310035878235697355028504858659504229425472844641298924184013975208647010717266392360715453090831418762868773000556446086429985324352448052448107146082960647219263710345047095519169935265367366345479507514002203131165567480218332027139318375571892486657664596380324216421045026467495468522828615822768876375633591542058375122640530350954831767640443593592407188450108368363429473176644868855418884450901455157406268698200467628032327942551431283133738193328573915765162706618360506698519245335438538062609181074020869107709692665540435171953483245656791064874254693143814407837163298628140701122871568564883048309899370218035664121412580852281905310366394636972903285997018268260092790173415862954569955261681387771872560060752814581000076106785271130659808197779087434760438457583509397754509812466710626201180497224222968238661628906050971296663382715605517192970826701129482867350761501125499803367384502765649862396531546542635954135459350394933466938997907023274596110715790081498394357515355477816899965141654637993593052731002680622737175855910134132910751679338151589833370955866455116600361270273884404095716271484463998907519755901875585614154576573493707254009146217249391764024838045205719209427326738061154828917233395582374450029103465450022807593307943349718454365210346847249314514217280950600966813281791772394267416501884726449304485407966262056600179592327132616641362700695788644183116036981679458878782971747574336119244315286901755817409496806612873628865608334139111894668986275831029190660718875387651595663708722131775393985179015922047956770568194513592294225521047223161899794957932281765926080965736343468125880225467276100038743693410831180737763644639215652881777175901209070412674424286002090231527393458306221764292111925150538124619771668315642639312404317458145870419926898325032585430118820841109100303427339578938779112069256629688192639312008542645095752807435691714194358189169367913068681004502627479374421365377933048810038278995402821871119987490329773362951660416866522141959791962264827358222204241342837511184325812837905026160270268695214683817843906737493680702378341497111114911866560749908772343286459736620120185914521449798837480408924626635764682923360591285208921415702218124925748638685177620092473135738317733302168397701028553333416637326694616503382534794874457129542583493572452952357422041690350874579664060267500212324530084761333895398587990007348915685914575762934605960849209787479519755449268711815668049923444756401479473442834792612121766393045359212006154520427840633035519610570872375239941303595429065100677037811955195988416815801864267251068067274623485433157464192153354507775046242672901848309404939190061239195069749297218636463280549830028041170731360833140163153946048912996962464703372906710639970797094454130323063836576954291928253970189977207221919263323677172526096379860997686718236196444679939112631733217656043348923453575625238735166972446459879546074882146732825991404843221152707761105102583993806828364365409539669356978467388000209470303965509851821070674480340139643197107375735561025546424306998994153144871287514177858057806897467633376265745022780829818023481832201500955223572603267501490922951027325849477545012237676163147494368285773474967465088755751696259917374214214982860019220914088164637852240799287853142465207497267444593791490591992110090178050025666853268786289157977813563906816671251677034158887187351675786211625659208543851751685824273258243978646761329381459229872146243247091153922419955680338089550379381535252826254680591410619548627804272154371094294148088962437706303846042974676288397202274630257821983483160286435362326642553862997604885855249985745181339949915946871129485392957547355470618053976315732494449750387713383799238326495938005455753826645188806416826743469295140974452272586520222772956293361016122088947760881795610011460118423260122638597516296696475571251384952679716699008799580546187074990917894798744190516556299144044665806627291228866560836217169938818860942252583610864068041895111604751527877053912187075909227291126057629311403765538747036842084674956308226094374631277833626723684643993426576768972434987085510544054242794285857133698153600545295093463854066710416102033403470122036990416794655898881101461083425370686133686337451605680333252378819860801092212965384451742165821632792593875431732539077679134283633397986389172798864440560189387419821022559974630006198719711946429536100644328568851603394678780421822262284555670216472329813884936919767085504845544933867112304142143042545203801715464431393848177740005357530182256678163537023624355222716589124850555199331659860433023310734075768129790544040096011059178111466738637190395105334712104938902189721012329853249398784187413705374011690690812457693273558409095973725793815201255831649955416860663701925081250837707976234806248269016937665407154715069655849708681058038459016407315228634215182581620555841259500591189738060058990999912413575651191458769138280708411429464245388179250941494847002435472141585555741839886926832813996139581369677967941592804830067551253597325916616014666837555790915690228574879456281009640994071655094290928482214047839069682052368871296901407395392546783262210628384814335948352770014799648722696090278945065763079207133187275832640639292405079099639138630570396237222488992742676651537833525266133253776869913458218457178753257654851869931705004107115022221907444012089287759134283702093159420879334905139457717694583983095904975243682837116383373233677912055250933963861121453080408670482302466769597867506043520006438932600013512401969824826744848020149471569036659513464559530032072285856155781301073868110376865343059088736442670311029096179142392790716053412438151076708248162800016427294384145185945948692243854158007944605665319912296197890936990937695599405100505156219292976691765137780357017476189399198449575082726883335688318096599304152214550694681043747666370682994740379870223266942504860635460219808143486699319377799151581224156153660347240083026069994941690059304949213743162371608459259502713068021076163356792538959923371353971878610850403329374883749747948659572119630141095585912024709179602205726209257811806053467488040376051596434892846742052149809453713057369006729773005311591848147852693724088272078459859761969067668107496300153760236375328287945277111076343960577653019464057879026836442060573070386961458546175463656011483698279409315839756906642565115122797072339255217267826024781464795373790429962600219768772470249628882724488181661069267246966823997757739794757813015852821840219958164899845334633461810622359530218604887612980384643138899350895020493131749160201378594066959614808887541824476320843545058201762181059449222309574013136048238250415841270739786301868448695079013946262651449645025053715085343940457741567420940654066338823505176755316745035914436903217853187097436055198447122659529097493672157628719842036481124753288843673699198187652725322306583372650937627824600316699267778182103220107663160131527053830107672679093410600529481071417231221801164123993188167585473144068067879915790768387477493381553976557623617617077092037346222471311096681584064382671080042158362617587284844985546735652160107959218289846960995334588795493427861897474456517182639650769999840425714012459317551550333220111665049581405424853584447389829960478841252796477949172924527116869935062731404503131868696271952420506276503285101155756075953119530540439718305711229898752205288455433867930852854903676226421520037689334118868615818462300544059431092004055755649666394148506084343167413337669337792087934816342737218121484834017349517246980966030009099586062175150668165996270187089823880199246671522486956786901717190471730940856299055673709003727032878660647219397834561375697688561551485553104050292249006205928750099605248523154154147389192778734240773366479985530053503522740020587958502861043033238489137471473399022707299014349717893428712515642843215264767943713904807762802160773146650766852995527863599642239656298856311231338524431373409719328727676423262662916450338365673602051858104053896828430956230390306337012326705267089322199722066331783139272322437587048030371190750568820455777789947449401693853511045967557388153436041042470040427028590777741421448673266991163534569008226827920147840972524744008277716989774157374028033945644500488503548653463873026422094409408490950318926671697363666718251999579188733060819796887152360964203342562954162569244195768465260184443123884335991609450431564208531487614975350156456646757713801265415149704010835091239827676095831679049810324280833199686273944880722106418507418748328842710935178170095778589042764242640403396048099840516569087699430052466245642673444479284239743628135673509866859733238279637590800745164765920245156073478761747433911965199701341862818400625889535356443784206639833505504115180719528802116479358939904743498622684284003096358586971403545916174124283194793442477607388705191695090024536601874419757875654949066540205112861688870197855626120128436387097513920704556778471110325690303524599459679945033792542104014579512082452629941396980660034233440750907166644373294196232900163876784204512746552158875060128097803796613158638322168761266852204828320305079006755031705307572432238298393106857582339551203452441187676237649098283406976452939626131676347752568999416050015538485705976031669316249704858579996127037153234642390764021500005302407016674425562816673055566886153286061689772553285247455933212217856348341666096158553077087607749687225569505257165990319926651974227111187836993979550893341300349507652201195226570671390252838811613070469433339797789645859375514514729220808025893430312443388876556121214202282196784812118321457695789971163048680818730332831904741633700805161253369289144920260224588539500349410696615061472227833200923790261673790449916376170851724928063353226477140680380687463707138047793329016632793112406670492069574252913903726726005114085502120121403506675699407870769029092100358260383222492875606308625570266033217027050142075703200235739120052689060480425300933995262552160899280634535758849931477946532168312462084599201316978207828108354189641682845649459248849540130047430473183008907275759552279336461654935680353028655885186635297220733150879971213946411612757877852722834720535784692840510259970583694181428215489589669320708198668394359252466007403190159092740272618590848895697417120740912070311472685601124350661297615995458350891597464910940435326810742420107348874673238229574514551649929931615850924230722533910305740710784931766647861127553016349131820792815744433661028225346251337323072712946757321555850351668000938314135911569788084612820478304130000576886549666876425054464064498686377793184997325874101910774187698503338261807295384580431525912231003154484786224622207705553136165324533811858367327026172520500655105381144264039462027297848775199417806457407403994492737117146870268265910111631159809136172055931970703522119358180104542525031712675942985051712357158673309051134857338169636748226797892314440502185296164132459436581877565713812520280993498569554263927500281296071735273168700007196885411536647117098532924135776486329559429605363394616304337445804540482891955166298411846969487694222012114110471536645894359971955597663694472786764878284787269129808963238553322157144971097292416219034336259156407027943576314349793526176584512359590485595262117255815909257830817588834195719306286959188563517978924476641311288067667014103578650840176796598806167406161932326918959045917739630015457148647318401075430297107091946054745301323006214688004899530018259285482514620806489339991141460934054915595893915360531835386924682388781975683959116842701818055869256646803571735347623796376329561509310246831034157720455580683905850828233174472920332544642917647396035820280116991027571857495623615582252776074312050992338291024271701808964484944338798820201877741845950038360324979018933699121381647961499682065044593651999817931305515171898800787597932593852286569345830925166252489982271199244672098837541900981760011774944225534509435737076733449934700341784623282241970687716201889127941853336309350500229865265072830883167770787298314593093451774366814386252880831023938866017228226869449085265094865580762724603208486282086755089893568564967807795983186717781365824266066154209275439507206811569589311172714027065782032060241664311489634782372905197637168369805823918606165438583673653126280097547832762039637828717797690092474000658019606162545567165429190970556437800602128889767273773005706813680584414733731229825326165449228662453409010619567486877750796706687557261621610767913259289443168224304664964259064624292726222442707287667409491474276774121091452198344043835579347142187993782247905312532823568162047841734654601497329088790519501410136011654073184876929808478204829831121136371613893744173724379671255598507111565967355620239686429354085978492636519744617768272718382138756206224281673534859901314417733440862513756641347919280695909167523351557856626927087519278316601640377195044524564600686237320348178322070941004130789612536167567899176535279632068216138608031844101887550424434811253139483657889393361483178499568555580223847457075592171413192521834756687802885269353514369918567974546238487188073539037887069989161815431085926385421031351283843206877140463430291898153551353218907310588443199544134259386845622645599248600294204632866521423406911333852518278273255608070362970832923844274336320076190299611801493796327101744292510228263857466000523358645107036387566623365079607371618622922799433948511789753326276656175685766533731468784564073275192199045360246210683937577354508701499961465760516883752967337656182892302024677885002730256202897497904686763534392821385361643872874017159665498462539098587065150661750930552728491220288273450969182096604417609167205396139253399941855254703845194569496983544355362365739845387536373453896267512967270743024571048806120001582884377141408350394574366090133034425606007916101351065616146909491905096042460250480041305237748086625786949242121742839061431845626654591149884445864682220993137796308652828228166582399207060852295588345631099317732493355791900389375998657202822726451186899172430249785566330553093072094646725061918799934313344865433682712066743390831671354348366975213130791891022660838355854621660141946585763902696064057314363290903551422299501107479856959319148634317449759911558310534373759363315376292523719413895231084304033357427791319622945400595216725810446739532343818845137021831528865291044779457436995246032018923794826122244115824250662301998679522441348023727652908333351064060896834165651228058070619341962893857890342298670763420165908967244338853420672745056723411970687878192486337948188560837961595321045481566332196420974428639729977224371512702873672278141136352074383943363227422628114882266850920749053794205798239809174976545592372621069673502737067763234253735912320603575073228127714875582401837080874594085571722758772755950882321937006395545950159917795775772181852053287903585787495720977829163380021709574891199321133290916522151078392814423615154551435720109846207347071927047775686066023410005090090228477366374696982557611724983509105894845027861648490428812664230973174759344371209636961948322509357053868630620173112288486300086157764828391559753551682751007709727940654953195547012213103975823868443504749537861638489448279238986124410235962312455260905040126811061696500476851988549838741121024991765834242837822940107596221038874003109997100617894044197586900828021874436284168952224555776832834377972286324942679664442088375890093871807514074536504675759583221900790990190812595447761851000550766774219879157495653243974111281102906753054287667309877553870726647150218254248997088023224697554961697775789811100483234163702385970621934537839399733255472942038217787144372852093772633370841996834164953727750454283987148081961682687047930421614114792390214235930131084428691704428175567075381098861096072648814115826124422587791411659866022551692026468297467178327770552810486597925886126778401837857867919941977325541651103899605520651982241175140640556672416222454974445064937705380511701124772086462030647084155499741402965919121866361905213692811475758600483419345847182513936464254701548709214479187725456631403351717084696931507027372123736794248666252489345979965058140149556786280235453691799578111793959397726500961938043403611852558477446076579870177148826785791877610372626872276096238372541039432910925486262280355024042200985020170395767871304434981839143292112478616409398686929829033393686864155886829005379127677535126708949738608108261858531456474945920241516484828287049379920308319698584893989090165810867796797863854419886119637587279262933933517928113583703970933941879588371585789859440550146211420951718280394718765817599654834839383609546466834234647695106925360547729462409812930864680643195143371546903325144648342278833260772885377763748019184594454290430636000555495721122333936340841597479675178904569446297932620999269959333758479733758030515560756352456202194067272037448286230365009037617996320225761474091128900228161396001496607517447455271184149852752985781025412290101731217725527023453668845889705926305767284104173976894939420982678788642755833913095654076901567641368087285938833820595295261769369789493314493504990440703809894555814717235618314245685522576858956741709113086490066306052531499004073084575403657464027364572644690774143857336556267176988817939799838800162127386325578811872765953231085064093876072849155021098243455821942826137436406967511957416466378336555603042313484554335436183208059650917706735642647586170933360560493594908098794889228220069774331039394155529083496399781584745958765590198097721889335390942346855752664161027741869820555253515052139384514064966405542544585302381412745093663469497234765368289493866555892537954958969895298302241898301139256837811948439442650612694926649563386055595207774403943541329934491480082004690277847880981242557053047627360763112052040069652694415128822416931180468904565178123237443839401993893563313876912751303788056874537191281367190439047184347749629413464013872646760998174796530837209072826893785657250809986413149266391215964811215043088316996317771945548371609168214290996528988759795593170326984924809332377175976598970151664623397565004494028801581051393312919410729390206452530688151484739088848592001053272557538236798127893741300464911788032900130878071460087847897256233344001650628150249597346907421413091789456617626962884599240532891512762731058116333510615454958291965222222821077858953683915011556849740401780491399811472569735675950298717322784458720152622139535836645383918552349829179742965915261026531002194219866563947356503181568040686341740939594053844725529927708411880094432179874476776403927208101732110656879114694466158135323254106111990951634111773462377801836919453330290801406941148944445566936790745977743797190705341587969037485832622620963415462830467235367167851582048105241413655273098490143991097629232885207093496000247045144246052978817977249010294458232296628391306659943188143621601417161641177483700613917685156608215793837629680073070683838334544440028179376407129722813450286352376086861739413359100277819161867675325621628489935752662938317250573426458280617539180364996116085239307776936663920125502312714880751178378035553363197280342031788869411603212642062289635896036500909395465830413947886279350410533956490103222837355175806295985160961243777423232864763424245809583067196079748067810562332446451274167592148797157023649901321431542435513157507747060808634270321820628824014792549459111934528658986667956250457659270194708064515770083756233634357692103837227006208682476960393083327899203596760995615180325787582770574200406259994033479248709348090580150730581350531409602221246044408405400518733298108863199317749436346083589383512687504710999042711220418425278017685496204478650521370599328692934003661326245329779028065556419534374783527396775680476997220988512269628222719505923970070659816256857494471538757631009911148825275009467474597506062476461011544161807583777435723459746645451957931164038535849937998423973206818391952219350875662861518751236044541241848133261651210032987222302675576229819794711762763774089631674258349475595779690807080373398550955070019202389636912478537548978894860128712586998614849596837516934204280975113746351704132447595072864663593261849631010398999648252332819271279061365360506975284235689421810953871207024696944739233095150012921769349227314040768123998993593106879638565555766134426021389436273557157707895170225292577466965098160702820587441019498310953994152248670815043692761696947220382780376932645004125678318723259882831300144316223905031031001319983964155661497134551873324775482886836019631678142883140121713118390199698972794396991425143412375522600136518749614396831647095312828311697173735204575669656717402728090754111451788409231344344622673627728153392635609817558342641299103764514938859818397778227182419710319380719930980495112645081607950980468392170528654967274893101451229955092361840425248338999612629474002610132572710930903787072707807244013309258576684338809072125425350753041243078013288024164654789553989726750739072944387667753961772880231607211615140634133136719617491987537620369797077908623969144716237509969635055725492304708755789257089064820818611712440234140395304471956786509042455170384022131916367984547017953445358811198807854956648656444107978819574592559507074291093627346648276798280918209296150379458038602736683417312238003404873107431319213503996608219973702832677280334122391223390190220979172063987061607855349577633156167113666350382644972749454479333550679801445253260353069888994481241002751869818747583525314644146743108104783909541560726441756490981550024891501528164517825327094795294754542117019951797595526567120533664447152484611046712010468214594175507529741296075895910439135982879963755971538439444759662205366517626377203717820241949322866580158336556585571840241680087905984058400756789737034204487579950061782529467154139365057410937359715048275389151717954360811950042839602515873461152937320403110280536259227297708122383667531469465523337691615224516813610439220375000756659265843636092387490369679799345146826696097597968111221898210841688497368790207885634094115721350051523774063731109954685502500264724304846658852911583698368850424098843658424230197504561191599238288128138061464121039852267160576065568291836300839805664934934634866090017266484216167436083214497404033044382403286326325245129160540624452958052282440919290009676455950669743398242641000120497945828005004560589719909452038813953316876305095926107227165472429169749792107717114429001870704613589742292969793773003639790872810529621227761079978407108382319390301862442510411975328213115703406553793483522501854855594633759081306344748985762623997566323046803579631006155693826085207339239488041917026788069576016782049473061182109380541049559251967043371130714795938368148138770531349632878719276619134738848894658589896654374705324218370900110837706942692026437297519099295127774166882680375108131094991500341902412390121641707952020522149563796874358581735755424567854541372277093808601800423862517747543873994217104470367512423226610449117544871296144244217204003090631841723703549845645571418818720017552088102110024345568614230995306981742828100085582015598051469514684291988859138553551927223883514005107850885482396857902531061884499571836358617800155797906483374341401883455630892645510621360259340110786749623316064829364596436149616147899645736460699289772680173344342627526229480461402241235822806073077917405520302826838012314843836486225284097891304631740265822172086269401194373939454864173913957255206977085172189411293446430757400044812062590130714167323175853304040527633273683496380983200911227357023806827943057442661116604845227506488924345258136659129506793462304103109156839431478802368373367313731993720321655872715242353722443609723394637981608081547730624394480032138033155900488618028881582731462996744794754074469319948123580905903141650812640498833396691364610066504092334569325871521484218888632973664831274285756247368224848543473815720624757235286229322750725894929685209671008137659616995263986129349523833378588696019918886538348044419077473046972565806179588851239164546412783661699297644824785666513978096656128218938936350983113312644636416252479444066177963947111566799547457821911684284991884736059177925332937575832076580409240841649963631472395870411119488509584133263211104409429499290894169115921010483056893294795712950938409849444597451005227371406060735296107753161650708188701493412218856798660902455344890955321259880384593071769514313872742762625105776739338361198587549979050134188220611578398922519624375194986143651474831374623848200039935886149060753552292032673736937677769758914597881734420345251516645586931161689463050399346877086417302251847607053172687336448967268026952775881872678605430589335694896852205859192663413587506968368468591749485188892408820057952336802358034650177057598532801321770087640788204057787220005722030849160759383986760994252637641006831670102666359186585700342332318957133334626560109267664834490434241171394719726557829203672171921962104981789017077604814833200541541524147063816283608479397693273781796264954205650540551377758343327612837004865752624120758672953339376651835886496906152819976237747299773381007589430028397045836676287612027281438343959259091431777123294628036818410877416100621443146962316743409844302764375727533069063774296203912740820426580852743670165861359064317650887837127087521019695596282014772506242195222508778554857584904924318356575938786075689791020006793250729498171385834608928388203165016883590568934655339012244251478399097397126995092263845625803088948880260655991512815384644406583228888233702358727843984930585211691987911256056458425001163946895541387989984907561980272820152236753099460338830175706402004749404184364765491820116893009141478691270172131087951352470428264771992997356507008991291365226124926087872720858547939097268150372126855292572724679731935322552979077341879399495369112236300274290574707316069253346220960277974625232185895336917059338706391889846491332803919338856274601435877264818243953780910357501671865241904458656724751133593987659414401555724479737011654460724174148078581696449439310416889423818498503109220126558389480710464236218065384231392006837015325241350352271440442627025653710889239906705292464741701558404229606696962577044575422967172970499998277360132820053045398799118803022962931793565610907010983860227210105858174650215783758177299008893418714292201396362460927393826147466253784259339593511796106776659274718761677345508677958766359324249461260657396027764405023112732406882560124739526924367601863545590015789097744907814006626295834749935057821333912501767780367175537099302074014290794055309134106352343672048003750945255702529890839732352807859401364305519832947180690592038233878779491700237627936726200050605654218512968000584691218014738318209521083222881572871806993338220547839702655031454094111406499661381258536638829851780320862320669771025460183292272292652646151699060152283971200794157929189538170930450434956456709037929256093091727345113829863464876556281993137504178573720986701549860880549790161742090872882898603732026953334879499587498930935561740878441297716680824201492509029451335940496300231767469318911700674180972935563547335430798603474054961908936399119157720901817394536615758366473971470707699749623651730205160708520197037123765179799767546779028396624066253553414650978009142394532872459844580754558244746854555745926118902757052044989509863950301729711342161713810004253616259272941125392236807854555665123138043908226665903367396506339406231180807916805602580319267893098619606952127785818845085429813944289314044418263794148475011497383430769124713925109006978727570263007047144808203094034090083324435502467488139442742208090869247852233261761444538917812595890570826773675534968636090995133045161230850292683450290840050447641455330406032915486165672867185091286422535641698331440148214156143440790292902572273395448192332046988496792000797774702164218028831848576931626212360802509661953989470084650111077272173031383071341798056476753199818843369620792898880665943228984341000962156448431619985625913843117008675235385006576088075396003492492627304233616030442804721797454296074805926162657653522460093908975398612665926432721651247060583053223468416786152333334896496180241887156192611975882820902776224051863177705860481695099142726524320124710062650391302088243745474065018761971702842662697849826635077824742853449429348022769223774690460782548623624984161852049185510850830206107616943614737566505132350506661919667638981787426541193410806534187566613203082802296868528933405335635582341531690748281196116341395434137419860393566183260601176311083325927193914755898096825358545802701396256642819787360843538890038184564416777183834261956011100527436700877362055240365747698037063415742736654597009217043077874803103779404513560076678653466146793464744895511879178847670676586926690445917309433607903342582447328657416412240185184306984619503083153916101179452886047366200461793211478001724555033284921140659273594048965478889162497214959360086852903039935515898811194787762151050190533105375966869389268185367195864336980154614660849559668369499007549499597221771241636491013432639184679357529367022387825145048138434705999198412275080347586567333996734738522455422597986352835147760379882484108251550656666708586683345499536258099837676116053602922115163080624351624500508235472461056156574458943210614968625420346549363436729067812282666294736103391214512012278178808768229296617057719941004621572471543864827343071774875607374412302409483187165447524048519050437232154569732423890717581181376636547949557197261648504338009880197936273262423713232837838403105029854393944813126559869326515977404549954017701319761147051083085749246848363958332830005900232817700711505172689374312738536411300457970964831356047593825869170554239770291213626279629554202700407180020623394859724914339604648634728873933103741279846375234671359544434871745841862855048420969717129021864057909708057147165449007976028636199313215476308040721573349393191016388524079953434050696983332037458233066049643698076979711422866723963976541581884795971924115869012412100580964336583453119573335102233775889580240729030109782014708976188188795877595777120038830859546762317236566254141104462154186474117014164691982398107204213560066920063719873090347461856936877598328795101443760605680232298009464476207579101636886427641465894402237607975896402979240322099699494377962999381672313583401894534617043909561963880833307868062100860077467765683146210327652359263431687136922260785404111316408416857082637156340303844336786211761999837519786190549269878671794628715813709745272195869555665233444185652968230663722495460180685351451762775816533640697293705968887861989650002516851622333121199382340461981140293574741775889176229576199846953793060252044150353503695534609048249641193286140102911666041233490467329985146392511317032336530865295243562630249042090723613901806066024492473993572852882256889080530384531329964055240762209645412629700255259523224353036722176925079952399599928329008885707061074500836104226214053409945306545331921643228088170721546131476261531563749253638679506846506327192946088517733655114475297539186579600817535942605016837369696157570458530175289732751921081856774448583092354676032922981917648679555490106576582814747157552190730270588345765886714105210139099724151069495309143658064848018777797218464883121478115182527420166184134388943083559134224449079718642579747788793838584653950615960750953595702503359536282911846282043825088588761492628245934707483805679591741160786464911552076938066188226666090279327030315762451660485333326056446957091249917251704369573870273955939896811975074030891051206176217220978342134558214271575624572572911568589686338948392314200705447044982126005253923802123198547124352573347954198995381734546641429674321327243617873674414643312598783538774364885812156720622089775282913213262956622103466518738529064739761467633909303799268287910747862618915155712574747611627866783088551959132680204883550404950111425689942839819391812860334554477103362807643313074513578655485482962592718123749226811502452079964451289672883123661525852536751503605711375444252455042554215988802248750392868598723577652731895339021450248138373928581147211301944222265041736969125598837407826487797507623265837992984562995535746167934801066527757071002517875865106645952733945322656390349153079825228052913140199803465876037870807364863153997083930203082785478943019508188650592666092207511803335040661388130434364820465643487716473725371613261625451454251034852764593389033174399392764364196379351495924758110165236121366957638046838195967756402435593781915314997085893443429792902806451153109122613010542995150141657031340523071063494254219878747676301930784276415875185523409462228295300869930275075539275398492844435861742731240755873741335589356077324792202101645430575426800684545326792765079843647401584950604272818440257663701512922698464184382788337640683086395523932018908826545554476809629348338529542857783658078715270205117623077801356613890556380031686729500870290514635338383553343087069713227777709159613879516362671515984731303753622701115794628582947541815927099505612658519257081669685768827076472024518064245646215245741239219431124406271381623085680073438269373677722980920577915090462744518839713382058668351849330031027179508843131135172227756601143060053143612482510584325462728753043078609012454557185182643694454803326284275078998074891386621469650570324885916251996397842858314502161680850526321890178870071431777680414618351491386008609638895853478012832009987180081995790964586007747169606089525088369286477494761824595715014942864499496912484398766099905435027204731143384494940764652043793390763142860327633088375666661507993492034613558381229756635582901146531794613296319407300673669758963910463952765030840394216094736062097315470221860050140916118995060353739362784073982291608074735630290647514847048263758501431760395699847948940041350069390107209159164570789625925955402693666132495115228460810451172665781607366633266644580474060319831302287449535310238236421963423297161546377117900111418030303669014686131997809815067474233410220074172583603358041957901095510280593674259614344356813410604279450011465169010675989545735923040838512317242056325849007107326942464497916796792932969647778104550372935452036381644551305814493522900221323425314806824309576689453495820080084732304055033026886410905011640854737036146627737525913414462338440850313919218230212298088317487961253333661314832556169728667030512177078447668569286056423581355844317301562404741711106515406018829402394503820146278022819693930517561173967415542233063115818324023124505553582591957422509990326426860660653016724854916879842555711022246848272914480685149934047800135243064688910015547114715952705717277987566940368901357003407204088068579520803245009348455084196816359532765172700763236159634867651199049242514750682622838389754866261156953281527659587901821499576091357198107106305450050029653914076624643796270389192436521704076006281977928336101377934025384639099505709691955950936377640216292567141039433329816108662489578347089360599869463418116903284196124093441909421122486977687130191345447884081081084789739089204193096993751094955448412863037615233683888158943105170785106689877105612726308182819410667534044210580482634102624400596417584874286195143350724249710278589878207412824355711304723331615431660864013284293164286908832446934321805144015008480132693048182355162736423595564715603194839939358066791699246210719021656316707160850553164628324792478491651839206421037504312467862329572241859023638143019254670545833525418130120810406714569073504932887830894208687484469379455713377457195316336732750914154180694293863122539810308349429651524152032181916409181184713343860268893863438946356949755848320918533680684906881875366448576647357143619834756299673889024618007829614169241759003006862764711928744560281353821634734808582810759388673805006148129342079826168187447087431128930488863698392287198618799055562036559585726358493832919287361012366527681852522603368725602246839829124637597500404659281635514165883079047141129561313000289466118735995284640717396161533996719681907401833650168422407279664919485470110625384991454473284080804982557332516603293349142260158665784118692070221103281482154625269289486168832531666858234228356990256070033990428439608054262418164090926747054216490762269179501549051219750049607352556177079178685474533734551300636722519872740314227878706323326068273793335829364340929684540916519301398721396022736545613167698699295373179514807198879873845773521103857708395524270307633015947410324828048244346442948341611667520716705968823391116156730190773329798180230025888684382349002927863679376204218166539275580474395074875475610126071518204910089333013422542057831698184175341149928559503974317703071253081213037043949777522270881224323796550929760794527736691417124017558816436687133620894082392886095410786357629094145457576806006325378051553102193967210460613296374078322651884854219033453938529819512507349746410979816224898546019125378783319453217598247871011942969977426506758321997770317762226107560595897263899816118792004855240310390158271227707564717209261527032200974691277198010311217900302304235581861751333577226245764097806959878662380233280791101302731638773044910536389077180720676434799076667310052993902912033886624082337032011824143733020320114077085402619668652560283467769368399378973806958784757479192381164370291408751145994368761762464076949007409990713160358595314402502589387004331060168015769758750106242967438305896701936813746383234587502890221899608864126597177418717210401045987900298898736734752606835792897160245899472512002054716002939338149823828686530634497494248436801988705506066088018491642809749334628111068857310988096654402147153988456723663891948046852474957784934417116590495239501890915815013695924553707924486393457934007938404213427374916340733077437385455910787976455795651908091944569812404707625984192820973690519588122148602592044305369497386919723851193628548570613497551451060194135529405018519530137545022687640465784435892288091533368655756092871117997923286984635300717921694425407692783348966835839921412600874970913495293296163787046093147590530363897061537787629768660175426426184617892973563593204082189748508676972248896382141536273401761064097845935947607893565386759009031934722284202755777035272011975463431357369408410185374595764615262026990620482456278310319829488838736305909572471313916206605936398550335592760202442023185411120034599730419533219697874328846560196274450240808650598147184774901208179545321776828468589635803484595400347340765616476145791850567610967131651406540576732095710057161631548378270519386932612762303931111962880457633491938115416313984902761256845497101994968366392016981883512900074321951927449965264289940320217770207735421734488684468405434491405427138265783071279132685065320314354716167578815160699120961107448493564286426290770865594681506066744047072184353524223861514335569217977103172432147093245457764031036206716917631606674997912339834908563292844004363465417362032840307843057892038470181542773787460508149748613397942057255032692537893270333001458528151313611784813619600146911972323494971464907418953604143862497857657193967845627423318335655941428552651936443816961387509511843420860079515698149426799968781303182087109638600407873124484140707104407534996937711359377710981566225057706133187654848525677780406163720145784759594871049483145133300593663864454788228557173912639849114703364140995958915978143111830505818296650280321423470068921422008139649644857760890616071540050106823444767099904041873600180737216276790788615815759680181093033845767726348609214448349529908784699498040542663461050527668840738228508681281992907851017929148241224719614883379881617196829064096053087882264550373227247025216952281223705598461561924585018708647670751215789302193816898997249916945055011401639448644136546150703747724479551292540493280203871196318947181888492116928481188637841287166022543141324218595613080775378851834689259765152869253122640316369462877494670704766711661663944236303911808761050400698044813361208482859175850934953940984759750283450827871692363080681483941764189955399030049387919014392232192487360818295250337973156721428017437635605144692250874263136994359644607841723043385573483532525259511789550978349076909431637594222510084055716859673515192375223496619629949575920591249576055542474534867727921516415004788577082558901879886937108074960709741773301277405281473303663919835769675999627543577636182236360304662458416740983327242291061910519769940723654994110123477056988220576072607977565464129089912485978752199496692277402019459511580267286073565850003076250502990638279085968406512703175231695420678463234173655988345186743272554544332837426177758254072238837631005813965084693911303931784777609676711679247441135157324559476801260545724000507457147109984767490420715432206397475808686430717796206609162433068567247433052193523872105891603737646238322665453639301936393537838552189179404667946457731109085166707781934278184405564581463454504956296781093890462117643300819111085302342046574737195349360511651743247373412953586518988608456783493928538295262270357581814288671222879294937256594060808975376744486769498197807931878863174171746509165317617842300398803573287942365979579816687277582363564349592051320983931448426395488362819633224139141817353840970639091777235415217049181945413701659487901518660915652060725688475646619757578831450293780696951691858417587031399318984137148873759885578790335710368225575119774946305592429135259575407154001264183889578019970293627180104133675148508487960527796305281066303508092274330182558202136411868624696540966120886576564870053628666591192594382696743236083909063866576488820809344897133365309209444564618606307271254224297598929269600321389054584420059028311963914462767549840804540159125663498864108015592392279717780480832645128887946007546866518819492612248947591928274294943604835865843500726588159901597201294011774172400814144872531180579489962514395130675741523279239847385898045693014727084915272170169745232261920185477551976801254273528541220044875688286788371465308098243013049573241679471554420792371925503548401498219443335237092583994301651033103836783968680181784434589188033455616102604665615189868073710354266070016324801829650559988742956315378195771495075177127255522074299835692969396617494063254312321352539448061942611509033848961336129099902723087322080376923373353718272022685176527932889543314562864400490732764775832905957895641150115385014124345763921782114749686130906104055019108103547950430160321819232622653852464704474654119364430442161247317762824551695554736066748962541507705265871284101450272181766089004619385308584497464060824630289760056401880031642124232732397841493298288793299505747767860983050932960879784765806425288617270062470005848079975439684965445693135711493108034517354029151963049894634824732703656646652758830590575138018129559509145021576076945718369743682126659018179859342495689788533256185166745339814989331711593384073504135478725803488721739725793522920708974330530808764024358527868770853057999637381159963874989888261751652048677368379200587901426324240460753992391568651815112649735271641611005507271911013170438815783529890093681801505271127179390094713137667445203667727688286643290403801768555527115055679611467671871602576474037280545623388888328292638578267293606931397886082224245919870499730909668805564800795376048900332862610386765535859274368962739839809761921029691229807360649162522238087567641812737456290594119793290697661170822416257023380638680144146654640556664570163629701922676781329765469235170826787908729096807091725835805084577607777456806284644745333566752338482750219689889893513432240951340221441430289336674533914845571949822054031102292060351897540492227272716641468543101061885987118278810709993894124826154635357392102802412403032011357546033135096900936458548000433567953830211056658176861810092726905740958744585323111584106381426942036865393565585575510143463377740443268280768765702661099815667100242470462027762908187735797253736636775426517076345414775718858301174532502604454764477473963857554976451297188837989427975039435055580701969883631453538952486615077231275323757807022293363329205801019597957996144099363657758806274213729266054235861594376231836110261266101215008464671482245697100744108809222314508840854574792318267873247317522495053752374271358698921658246232892058720979908970984916614951168999587934645129213836212185986571578810596622616053147105234992992985915160898230718959997577857792789915511785031708967850396987655315614078697539163665492265286227992265396192557395556919462434284135483415813637327130040992390566594273218751228506736753818548588705749448741803761241332517893480903090071843095414462640496501057785503860270990562459083335895902299942948340633406062012864378914184906735083854144689093534709739850326186048398497494723262767554138057896195272468846287190622317051297686948364095977429147498763319590645824677282760134959868442513959131269281632251355556467208540726318570789169586163358670818731532254848763266070095829623879697650332352744021655579764343165967207420694123802050431260059951061059855545677136255965229304554353634572718442935609005548088437909191448378987476974982158326555983375839649492367965323480833690224850707594060225859650624869394032835764438767830362719229036357703512274147832125258591913000246037434746433066666359749576472059761937627153946553312441094475777585436831520270711379067038466156105753651400840320910514529231585150399974276744530033484013042383992465323002916069639647236614318138043360464173401720872723762384075010445912904667784788472771860925705876513824383370083634598306969754560627966798741221708930464580685388355589289668769090635217565642516295775536123617140101587843338225096637568727437413539176517961891057783660099935544938201397250884037100972237688384614387532009905374414734085402849367119718713088022354308172138945625493829960180394499152779186931529534040138855643355202936186861827570321635754712019292811477956682288757777965759168219088594557543064158743567487145829175952936157881132251827434233862178246807089905762476387256628430385816770044880030050570811323474575362246779638477985306708975332728694258585304900892507978677412779068991082445181114610806750702519372534493063191895659621188010979855158959235535367523179215866106737959727863389742750661255652498428600231147975740728383910095789889471052881255250349878555492841248325326849996378372289938013155130661224560153442307600140172124115722597003796921198062068430535967566492112446314595441232485304109652199260584215849015850689753796864212111864655484733144685033703869906657982112884267361735793954264991647993790819577640029597300252373788444963257373550261958879245185205048427190590831870173156325434060707798407811468696633102838091278368577676412866512551331463475213294005957531670075659770405092732364370468937162732277259437012696872048539901828441458192302272913320766739129786154896408834448633822801468228985562608801264516549616609665331019561800103958459529121964682464568182063160618529459413130305421333560705200560424818411772344684916346914056647205873548774126649519594552008590233537412657966914219447753242270475824301755778089339043582943369611587976319035834313950616763336547186523647196829993680782677117717029288681054077694430277898776603246147634504479310516478352484679650646622590135711434603802298072144045442980369516716752410268214766791878538517453742700882342128118446609055874440742901700642360340492605181667840912150319288760765800252134107917899443368207949778995972906143373380588668608878669429115652710809523098707040257183890592102413093374518272451973184640948152992835102108437666542575840700199709417729925420947696618736241229455710724602124193839931387620734795658357305860030754829336304104329530634072305734831534961807896617108681526041481178211260494588445370845040634495382461175950516215644032086785147235730768400169233521755091222451294808109603724044823472456112461429717356180558626069934219380364360243450983867939071025458645031050786526446958406432684096215159611101552129451756696405781121583199871051647245806342596145284090335298359234003824130167285107039877012382479075481548734969829452730078434065163589065250685677564933906002894499688530701079846119622457980520027063006181462404383460662114268673968305718477964139485506081331495403542934385187156419521139421116579989680631036887243977055062845146469467403580547069443001201109308649543431412174061919499845157963289167703192871348304047486604708738903195516100355141469772331771653364004180406246325421987955607789620851170966989438486897599866384330006781248814730859990999982266448551513737982750192025673835963490254094069646514213053544350528013546383268574595895523834780392238722809249907576803993105706495427529993821454672706552268017054884872995328961423139308112927623651366803685150368132447010358957112852922915861178435359893237913091240751523498982559564061088428599172836238531058615018456860945638783210790210207652358496936120308315787983863722784766878008383994644352196139498316989786717070282807705157986569574210808327022206619993544221832017553913978595274100272470321128443679749098974854439889280319330695236738137559556037337198820329659742240223132435115822200143608570094644203367558822126491372726077420722822766986112948171763660699802061501490576189730743140945514182908855955874260438867708232794108617697596328796238723474316181819502203733910126420723135024878767952273187978156167778613723047703095523057467333352733947338736738349058749572708603574124748941461072940691292732977809306720086179754096293911710190166144152769138631368527297604488629027204295666137848432999035594386419712737093753016996170704969195051172776061653093073341130663310495163894022708729395012450147604316552487947549464589667181087278452706542618077013493610776752639289465808114535928219918754663787346728188064790125905790481380064206918852752155338192778469316030338029799391402303253234097392202695483651256474502066753659174936143783074253342460066532247772546511325238287405001708085248281084206864602117653426731168015366890474800686197859106992864966627707770515750796418243941065699342057489932385102909840828620703808660478614199432736352597830397942461463480869563003561088475497923275110808311127091031830932525793905731840155654798852021651733961095679458078065118425045838680933366475808795180111457516409551702576297064068477372431845901239954917058818547341166207673714054694449047901905823756424762878338433557739142081827462441938934301238501193770150220829490633367990087235953118909178875507998044093373968423033619487330355491687692581833213959060135460304226984884910804676415918421058199363237720361697605540740129741232968835104334916229137728762477614703138361415579610980941770039098679324679445986028623737703966319305743135670028422372846688948939084672608955039768575228399516235038642025926557630392043725828093377201860129802881489484968722346806292225879534585434362937844210261614983110933381232239331952852591297032675481843511986145436357029874189059685402658595303778358339812804639609108497660740491896990277808295796326348680932134649462128693070387757681025781533958692851068365056763562418254197755484869751730355111511669382680721902968544500330666427343172962345758357812201851775869705061014251444162433100012192900020237814468666126748322810197772711752327933263135106430597423544456491924308765398073048963850018474601116539255390422191360143246699831750688856725969163130402422276202932002815533452691887736222115959996757889592347596704162098701424336548802842522295539745650684153612895741708705793365382550031651565384369337637840488773864255407591254943176390489184564471851620462382314103771600184952302549736529074437229929698507858971208273487494896961769389322447666790099341022688003096358337984797249544406210998129095076196065283592646005485470708687119279774712999377740284383182633709166052088434029068516481362284479129439991650033535319669864249188793906790915660451442359100104064955926979547335291832725370561124829775089092484123991118061108075986365771232933482808259757829575530257507484642432436847863173832459776648368582454482415887392699909017286858732939182969599090112470046193558717550252009261443366835628674509874766055832436036158626910353730110753688781871134060629784570834115133482133837928846980641827452096779094112437922698624346527649683867085065805857279479898884036885942270388557758803650491750361991554470133253424538746099874804559102035700940968891485343317668004868600953691968130207895124957100824015894573773942840496949755043844738200357377322638742954933517625884628100176098650949007097910184531057673144707844830701529249564976548292849932478285975811356796377681885858584052335730066677443691710324446146531374204935587245635894408859044878262985128464442278279921063789556733011507284750192530853835749921759890924522098451084086976034502741257383116828702450519762336348524678403309046696665574282855582420147622348434661121184637603457175114686736726581324192015801992815016155175755853151391782502932600739020389181773257884200538375003942890924080241138212288028326542469948184999543275219293812551361427533795182736576002369315930357006584011186387051244743250040959878420472455461743804325248305659994434008495008519031060869480035133171075990565399866477315448123805242572415612642168699800334876008163654880051300210332107885759933661007072709621596084385035809263560975422944401107001626674905937560745897314778959659570756685267081673988593473688601336751494311617835807337363053249553814704191437875446551206328831763903143597718780394591862501106571621421211781695653820321503169346468094799620436698396112040557722690208583053205531670249783206086712954517954508469728746783399004922028755771596860657886885405417591880912746715391534399186461623480252918199238678495180330164352935053792706664568831754576680446131836679547194337630949055418232285408415301524345616449244283368791915612698539979784492725557988091933892177113192989836625520641576617336835579042116278560573269479341969587476856310043096546131702206885755861327209939256505069227228252491949111729345238087119786120969234368301575261769525994248060747784325774831890949641505989497212865650218507867011754441961618423469183496766713645770092235215233636872308374587358335054183557841594830168128163892188526523713667529176676708519216991017409259752724777976754735071440273723938434252496506643088513560931349530043276777342991026467525670450508621578454597835626685549195540256678422716159433818128504800691472304658303356858200974945911346608238515098180836202982935214772561240661756919450436452461040077484882416320467801493471879734226735826622505572888764040364725061187137855222396593950761113408343834679440796009249205262982847723758361726666348821540821361372144477881612270574058296131152798447705171589402088611280748899040490549269642959992097034420102882375887428263340889798269766630544561553735482596771498332007694355706452639473085009076711582350271525710482705804171055704858967263438171074401024079047365457705471997846415839799007729409636547743784642059225012074427932602699726358967408933433252330937157254131880147127345295046024275342649657214446863132232092504429022006065542161398182547928136929237085404032179035262413166007594805511168855065763811768586696725828515242994455425362337680863659654338936751750816792314545680712750041123908240999754975569341251367885140021848416234424571374221391840653990065199018385055813046795455944368788058285083432444839574627152455195050968980204454057355742078540730184081327758826542067737301678498263260366729746005573976876827743405110358475849069174673425666548086695127460152857768236981688360989595974267005507262014263868915017585183623281153024005604737853589224528748325294904239110361383854821451970563536848867863667961619810065480796293999590631936491831844203340203562190721926535368277636328616493762900334964991300865315912736572923748996924828434175351298282166886872895059103585870593757821048275916085119218447469372224295979946957085329816875747892116237071754672850049854720946410456077963357795364352318628295799527175350158364592896629070070432377195434586705045596519578832378187681916392109106585572940836854792391980620218063243241924990858371194090413428142206933286759641421464115875736675204857558488675647862545273873703958795063598190111194989099052385814716440655197122645667471047158129401280550023171173107171824655014767291929378376443635682314669774910809609664099542608821168021932340250594940167244475219423085543354988119378643602882723278090911501763647259959216605402296744489420457516453671562290202453815601765179894036264543090064419457041312193179702763935472268193821924848552097688646464761799011236621881991279269694147006362101383871791679349321453167172023739064472090430389061131020353589196050901347443421003098885352162066552816308792211334524941007970684458432267232441151577745240604866919246648618725791327512634599484111153096246789798789513075823307153134518588322805674232383217039207157970083399491113412618790779147050952726013309048197012305577934113144892209453528989445356519931679332849222883302148394160229166361821140000858934410736701120504320473313164783297138904829215458479004117267796327017375916312174257311306388256020758584050472129419981944510996737416925174793084390465492086711141608066626429849739675609907190402790521981385748639981958458739590641395501629815621568253409863757936255598180630831043998675550870749459267212174591058881217736083097590344841913150407732369958775162658342195081526613868296865612551191847581815033408532316070456045733715625857510978513460957694569548917455077783435112013986703346305794853153581933753359699022572230347708052006850305934714035400691726747006573796340170496649678281722789032989746467811234601927480203416443892586745415205952285572210718730275453339884520469017438015586581659699976260749959166955288592743211803522702400677232585588739714791178714502809618048738255810284916148140857258086358395538244952341130656037073892691727734864070065633620281291982905881888452281470857236241531187481719296520697466688395716122975582803766075068597681395596525867711563133866186623737373405340466482001508482085508304036282777662806292771947031054169481733924723227085101887805358906631681045881485676506115633030558322722023218187281705677746285009644327431861169977456017193375671744197684236006561100717298602542586907054201093785911189969356239900860735621257437500871675896898603041792661944032287678818853349078036974996907209056707346355305566293097767323133238425278173981036856251730288095275611659153688345288898255681641485018683702297304729566096497380855158401559726277795173199594535138258239156640619885788021449048802390326673612727278361511541508743536412399496506593230818946774395571663673067551348345758609274642411805049663574926941276453630006627062591769296027564488358129571882723626841343905281201769102518186032477476179745235551734590149280019715465279857299499906927115964187715653507940876445973211196732470959040603543723799854118032203009445829616061096132946256211160973626543213068984127080237945889462740080933423547764959518567655747618869570177479320104745770335511852952175753919245558765474775586099464135955251051745465373834357549002526539062340382273998797054781349386560376442024966592519308078276037134806541644037687468520369491093600223745630647431585615925639758272534479427985309542327483579234633442049533216124338833129755048245714360262555922106658430473398751493557747530905723194708500495765886687828747439672740609385813801828277835347849789834110618557831188829273727941601388807340931120870651493545531755596105163787096557986826383560296015878360853847920359210912753284671790012069171355669379275114063540367803504928457601157349654447957846779123808253716027748308118131771417899897211548242231987065453519313396607008515582224009628626915076105109626749259471542094641312830050211866564941351539552008969387670893867849111188541412399331289923933092832404828660894405971229835300227825591319777142633614525684830457225245200972425207590337869448526765519333815293880812988191180145851959366920382151435904218106147094435114080654878970203122870086463347281876191826056566335281203018899066792854935272092696425943086151350354173648971315339660052109774304932083279997450183258118665874688952627627672640419478537265383057969137070303242814640969486872850238093507279938271471452993735184892238247016556321844485085243913702308305645543978959720149736342527096772823670575259181050915709535372905222242551325726381059824116730739687127762081347147118610678847096562117168522521610744396716283254341354352141919005033663947681100801139676568947414326410006125372360718762240335120397856816429237154437885082529289080922422893475940847875301381634963060545841498164794261143321209283527236365045788780504191350099047456915795355856347301235713661765297890793082158817171666329244646838630035999210581115109669080287694137687896024964585393485466952494229563285968247509628447728453219158517273164626241258777309884897179214379347132056716411947309868413422871670586578571228147185892755268365405669612897345538808485736428970220119570077254185335382273388613011504062208815656070125419400355017796151793878071012221410135502946907639686353594066503070448177917996309281810389761578984078434243872457126957013199892932892539904625415598942401658197004324373285033325659781397828350712712282878315623877732281056350286075045676382461304028831013297461502933645703131100705430348069285369503244900894452531473358187794834911055472618427624374852245626439079334544387677330495562142978361930563500842473580494340670600771349656702789822293598094996225217433030047438433265683318126430792538074136174159097030673981458947478717814553992482455674680084623396492699277290830870046596673364957393850643237032249738278179155764015399190514203122322043654812481749104104496215495701271054454265684476047868566186583068018751350068845713684535735713678767669575038243460326616975305146095855492899036334486910561553399833905924411124050707562622052189926844774665273575313916876255436375178348826751443057696908004733786599495825754982199098569570309586777683906733809113683541134569525457034547710500706661441361808384064596041686114673263351740969750443213606157276711871003255721615497143495882605993063201195888679721273007797466753615330823023329524682744200669390383890890948207601903186484816713945413127201857801652035016786177718635695599004829661406142902207267866377739073489391364103473826604504015423465992472398061297187576681504302467889164031329710228876052153196185581714142021635691122156573441580684412124987720229886586211901020225265022693724548519023164647601373651948275216300133041679307440151748853475277880716103461650097842883319516999424601154158764807266591437777534633128209170942981773259322077001510719562100703802327123184505406299003697601266123745017040012845752694613407232609911628927805392779143883350662346307247777893538023489851002460555808006029088597202277107106511944515634120027529708445093576105391390124977541389778664455732516763364982589205371852454066718213098304401328002171475128373786204090005527319808696229609434954648495232901701784068388333908050983051390347322474306936399163873685121141367977944165696955277224352654037903255084280110128134130420552321804512875096618045374765274684974653038385229260606221162991013451835253028946783433392887134464084353286790173673153777843164606928805728803763066913974221333622959009987903683801626598904353617274013420035907588832616815390196018474176734978302518995214406984965023136906512048407411308936269586362490564480027147262528118642698402535871320719126024362302750413171384317606394870213905574608909386695165348651390229237016441101693611584828277654689030092276004719377846769001514312512752076378178400361777672456151962228106361970604907544379951163966784679982080864305267220996772308047202596236437843826039646857118784063294254166016526574332280297674663804935611274807759369441165230896204971109854547093002080470973987207955554445245220692473926751728379711805470700923371991006007018525244109998901766367834022691745355278953924866659943131666326130963582058974414505984935301298175219704413175924072697040884281583836464818667084060502338465456025773918706377271363754441207834154078420078892205595996363402718190161103078045765321347251060586915052611521980349163427463823368942349254595443861764252024305139488225440441329598485375523493322309734768866060625331188134473188123379993877353690253709206147283133673275837521453116688223674222763436078367779839259225200331704331266418058757948768367675374785055275296173538948459555401373002479806449574342735452197875326591276376551470441299943687986222533930500849793227947986427960493710519995669143471003663273583885505336563881024385506843363931309975053199285418482064444373729974810797313233964835979088923285701253832472603108443730047864136646136827498615555093566106101621348894573812780011965857900436606628870345280800114671832218569501798717417654654127372518146135948775284735954908353920768676029783510558376940432922312052013358711760336962732740036325085597631931009263242807564077694734685217078885876499392819854810600888519993101749738758536220474753539306887838229515589042337879959762249203362147973317527266137323640130108175371596302647314061984887101265943976521002664562501063099645071383564320993790348220201433532450641403236443897063561137083548935629876970623948127110183027891940568709002981779953892568146570593147345931419286314628892379385518710714664036979205079909376120189231252136956022702277659385350919155815529960890324929751297048683102100446904718877120385569980675840843209950971326601200571123018389639542092141776802980929133503532857784935023198238196204998917183157671520007443722008978083481884895404716941925768395574374018559437157207156420202463429273939003981659070054387666134017242377769104547041486839890384365279284259599271524991270030396690108527033543794493781550394292667006325146595257999956516109179934729493927055459873427797496038576605746718086774063787429171005901761171274949958195917464071549169445955370631675484360401370023830980911236531223823372124462074517225128943010658109488807891594198897924323433351275409333940294625284391695406527540763939951414891752128236797562020708549162237161006427402342265101639846863062707979164338623724333310328943954014552019116249100506296551268863453680926114720917316878081546878082811627009515870956086553881052265482440684527088358982234351770971287106107565777552689403419680032641188552542844413618834262059341346852224129340413415709429568515494652609690711212621131972021790762432670899829575648008672514430965243219448158857835009564969577303042847692564270169488662128682295549152971300544901636806076660556447092787879351509071883735559378750931095755942934277233165337689587033803515923856789916009587251813354085452786857967791514760328633242834870719594460489574367181997661004039876940602853001026953553070737330637644948691836263446683556738619332646165530213796566432312222745343515003235764548147497430932796331024672659719884484239756236364036091205611055145488723110937455643985630098914091788896848643567884961923720314555303342135897890998300524398695844489733172460423169031941109918554101836996371482532512344725738547012502622171388223549134578244039294322754186056354342759712848756671573286224732241311283989611886058356546338972114162389050551777238240864614812474880803877222452932933067638697688988884347115944570860119199110842940211987814133364817349379378193540248786034454194411590023911149225316957453203521268217380281726072143003706952218442277235965060878704978708248461548649904313435601615883776826228328697595445848992712277381910756439746851540361864265861217449925116273704857262951878616623944100111956222857866572892234835859884512415078590817757221001442912684396708726434030031961258579566762605027154532401815928654673313779363356235229253844554031244411056762002858638558662144594490884708597436021264195858946593812872361983171431265340257312438279909703344297411087164867570142091007669452096863463364089826779685166422366537354707202030124825546912036094905338443931604759995539378288087837672076738419534740338437180398901774693054643854574102905667494437097014720427013208112995601019466800276707920865611017976615138911147620384660866776432688266429746267227968116916713612606109308297905973177362781865532790065555629716892844019946966517680126230899659791011327589518251882073556968441867778816573297064261556338788258927153589499266462489778184141621429181241822172400728035700759557249300770270765671458710730300095759570498614332697315006845164019122117993490846172339242875657908888339435244475563289272615569086593103750584789605110790926255580762412665215027203396590131441031238473623646125569476058218711886808544089195040371267324681222070181346847942262574806735990281490995414085572218867433900888241941803675329135202906501071718960380543251414903095260800715997229816368474469373967996006548475683793703487208327534772659918025668172488011925549209660404277250836402691457070025154322438339435932696188395151382953655117911307301383240012096587715311853391534233936842517687962098919517070472200723805995455307420303140350844702487282899517778804191675991160139689102101404299175396592446127406729408630529222950419335167388504116609250493993326122922010212982521374342323590912963232217492801393065007050597438468676064063816947650353939439140987885848840321422281987563674243735665637065697225110561382628815433548900751339169523239906477924317419731788406129219378127939897687803212314145402702482585638150013782215555816260235749904857394914132519045020229880838468106622255804073529313694484520000200198213763737119237924043558960011671660832676523123726831232367950429096594154506747382629311908480410915420423756238486077425031115621606543666485338338153640315649144145239257823345232319314328676566827720008060339110678495932162446441367974324226174763608572923749504027533025717885933115342452642236398805421643473063782591225424449863146243226201981939554100789670215499225704999968153377926078637492917938790875526308373248214571513953403406542268642643402204083353272827905277989010153101861102551512559129474546970059837913485543867103264635528050323177818203194977861270443825234276814051655131201809851256521573331146964048915423950738880302220613023560549020916610343876983446943263585221112273040561140224294488521020668816564724028577830933293666654549515548222481141460699109777030802147471657035977855188372592036016314817482309649160274748188033134129923925835061727350856027245223696565037708498099531714356077823219114371163633920502680568192817877834160739442578923705570460365497917495116073797841165108130996515283926728929561593560599392465496648095652553540807089656844906816747563219375140253385404998311644700492335037059139833714142434386381699132459884982828076235094683171915139844796057452612874222793292073543627525482390153529174022790130136519162173880906911983912745446071594347559505404635061317856253243757829320029434201534833740139595127711103730947106283979844057637013860402926008182833907254203309627620623072609744515114366463170038735084421639258754365311438367842444738667914317542788667721156068030391740606261070784522370116168697805490628886303081133879947010195184125274171548532501375771004667385675969124887348015516873085932567173829550064765689794396144854415532588267569499881856516352652772149500662399252279750637500886083315768601867708746688286922935673677903206301691100248129856303913744337853211975598224424767101780741610928111100050364116756682817379000624962079381739429238912894183158065359299641436638248792747950477882066573176948452387686062042012179254342731191296065496303350579119094116854582054182730867873654601308172330076713318183291235453636976345586133405562393720889242546827164162012033674136741026210864766550505898949330858575617810945355329121575478611054222684058858308988593086194751230915268330722175852402986169565584335633756191291747820811594221318069133121215249261709240412912578093914080792960616720816353978812076551265641478213367675539616801737862465490325272591137960076089535854152773031868450402431528667138425515079140366363092735966811687390841608393536108515518229097123514561249122627443539121283216176706515958760903431508716134150761888926482479111755107416815941911522468741424230761290031654947727585451928997336228633905322891096991877668521766774079462489343065720182890393438781647647801840924743829544161837530799110633831122781198088780795284816303722024952203323513053603689557390345983867351496380191193944549585152952925746615009883251850903706139803216495804907794289393462931691246846244014087805565504140565583487948407349532230526889095027560139802518182317373755329693057934461717471915042466228004245869628630007136917500271934065796593856362304366835950841628039487695564330889274166472928757013544574176108187878803525199796481489637719825190679497102488114106985240931932579004080303363180314935762810071962701151473702272117283716030939802421132076222901446105773222115619676339159788881121874585986558822502764894894585833430569944039410795732678023958117609508146826938918913582439869743242510111690110462544199767775716638292164155199648866714399275401578465873259482549743312183401508662962134092854314551971208252040417377305903630288760483248906362971251367323211884736343292927945756707764791832240382692118320681343757851367295669799995088514552002076545778687276402209095251133569347757015075324692467332221495746913630690047132750562923121006819421614246953983053760930543533284719984512725306226221465704572119967821683916446861766418347244019708733978638092139193865824415766021048350323903970066041988279286814770728609674712918944448138188561495696797148611278181649349988776012017672016535699005658145343291657359008059402791455601524853455234435935457273367684814413420714729375762967259826680930434394904993324145237883670183818669636810396649128961164980084785650349053342839615835884933233536470858030160469862513481340897227638345530003673632852976084021997214780569072672119013919999593702423962668705350551208540840533602277307032250401930677201247940250969227433990044050660055133704755529204131759941757753117216779225757405706202308404488783520508362441923950203655021798312722558592266648909799745479198145357153463085188946910230619835766737433737777214952094458646406788719244700443425534101611384295842742289356732603483470865510275598760386022002567792706394124963832579663140373518830891452268929766041588153560234385311087237075888645518195751005936686019138086571273179662546071401711433326216985511269786811433783786091242819237579053297233236680590403298935222091908461592216262555165709771951405881453854329337764727766676870734984132631190922926655972771922570968348164903595906738207846388544881797226435838907065576633890051376680928087634083373618032804922360456512149353813752248977171567118373991036109571335500130276147350887877719004945616533605383162104671404012976081966086986569894156719996449937464588154692386246922520265851647694482309413771146949635779315944662680852449065218722525396365442698225756802944779465139962118880183465269760303492041383234388359740120979214252728197002011211562069231085432078313398321760332220661895597467360771035612958970291933295267784709448219878855142462065190060606911401019956510281873092692880317815403301777932223676088741523723417068770724554108286267696097221563896530793360788837740168238724750182685574471987743004732794977410275784796433277920529509547618296434338341373874915696120001421116291000313597051553744545526405050053791853387394101254385316881413406369529563091214735613477881836394798173767668470796608029733566040895303196153579769729475124110302428371152595080871927434535207518025672745356894727983355327581200695318559978031379552930844646845012092481933234554033715478843800948262501663248949527994268913055257932363172939797250274123738178339547142826535202684620822131308584611494182005689162237479264593526651898385069400943295115985266056175337964515245456838455611814782428763175933480552047207339790494078175394088866586886450217650996941626557116692452945404569236174061424440408673323857236713980873477651094479099413997333407718004507485430584597837182422262848186604545889807599818773058786015324201951159952586832750769782982807422934254109129789799637160989392509962990495216599456916897497267979685184089727178996234149781032464678078667420810547389269617037172172600117655120903709842893295734557673530057785348363284009814229196915790121163973745458116583432120943476672190148606203453647600161431113984724613165361591379966886732190380002787963281879911740781794555781446499756466023278078353247636436584176380426135751595484403705021408687431192951030661987016416341996038307890927135938054318164328384820492416812499892058374831265427984715203510461728255737505019178767951434571843306262979343949680553570185106770307575310240024171580740642199684736236022107675877707461280488323165831668195526277723583099036071597037900334455204437673662562639696764918529738041701809801830900073274809879413482446364605076056694688141319614832539335969792450597029085550433951223704091302162387533729077494021556712491409806108502224043818208317593392793253884310777110898093584689167764544369269614690394563469570775660755195522519000675923837232865215268518669320945597792015286489224931062588425309580422431529831997736647714117390585986557897301783030586253192459152501431409338448190482753310377713002348285418779384983378939271087768957473097528049704463199416405978974801829779720578437654183104389543056569496670781489072205437601481220467702805486473085865954304115180057947649519093313413178595728820232570775755411264106736745796062994448748613070888348368529821881767982961127399796130212567027802311521815782163368873184532077243740864867340731481709972306019180542750258357348349176375014921013318171895776651621576883661650067430319115316406102988195639268027146249835077930218451114284904400529908864809678751666899775737944054099375375683542871842057302124043130995712002284792016312249277031863463937205108249508804270502126434553878804341191965251414267646126775894206911977996061725084354415758647256680878566313608944890473504798137804557778664454375313128270022356379668185950955267303136441412267314851026511020424130342383162588848476589310895045695065198615219738466618703163250493047337936665234691976735927712135235062185370188019391794606757761795381808933367548037292783296323800240227675871530579938112989744371128812305867080427144007335930378545132348069603551576470823797933626871067894825478389055045980071334708047592599856761694633078196506953275706311133381919771111523620529730362376892008920910948922635878187705867489012959285200099689123861325350574275176814403009284022350668740378677221565719665221096165081578788502201156103749528559810652575774636210631889280131586150450821421004540955708343001067792125451244479284826295855314475277592595903530912068819460992319007774905903000369908253862717786489585145682285356294946361231279390105615420853388981155604000780540644742413534501186759964392389228077454838435996007126566847520867924378272318717188122665382555640772127604128221924890388561502048104345861281608999472983575179465285242574266024663658335231612411430701870513743265230404323436940283907265816477225415385705738498163917632169805940824064741029732840462527057253898307306910662327486021814981747128156121785094551167347443908959697242346036428595883657647073527540846847165423457524104443336989280966627602115323395214777922911457714561271423696151324674956052787348844133084351093855156885453171121784639819150694287250754895743809428817667557585980173963253647117303427337645933690581484060383748444646867535295667227683073079483111835242367898858683114275675360886027198697039381857620592653861114691206028461209737914538924200232259195094193151115594432509415695303135030184020285744964117162870069453281177523352885489414213048532219517468213994748317902008658281154597652199404129536895036561375249739273619474094695750864119193362631766366472500001696177363466931595496273561782249382258055234463065450640147380768222114419396357705391915617040486184902664302246401503412228847858553503782060165138521149317323908523600848462201784359743201372718056550602526913545062058686859258500944044410011227008940733652412198928640067051052308454478775588036127753719462801933808275370237321975177564130625316111533568203018146226958070438226909779210602007238474748803990116110705440658930494873360728769433708622234874867268315590598896946194536501363042676983791816324367385040832413277591345952619104073701881350919639868728904037548015511621674595759024710266152811678463820483171250124720645793778684932834069001598000054161549043744632509020889063805707188731174098312600063028762565292073808204972843000214606816620301605799618670260568526293747475073475785247700597751723584315731259035184798411896512587534960049677485261049421600002546158779343228716358411659717698679617905574211882563549478562450173758374047083204781180124575808072991992129813255169515603605022736029106134295507219020618784462590975199870796597760393576293561191037114813384460069125314522782483464091527953987146499710180308585347624901551669424122039660624890806093542205359821318789131735832116071418162181685103280040015715688234724952566891134883216111222178618599247286181172688740447773154909054290725518055815016098790063270380718042502535105383009913855028691449405184145338474214818886037879099531872617049235751291468425658484737767518314548245143892931061816521621840857803426169082405252817923055541453210962228702046829099183685460880218579058139235426552303705756787880969931052166758899164845022011451035614587681878871649854879980097484033954643602767742724101222911136702804550425367871036141143757954231777626875028697014849671590550564522954169603840536756595129737761190039614758215728541965243380403717204956234900361544673791576113688536179623649069670713660209896418099167014889108754497864476997074666276308006580746385571254695308871816601124732365961685502884898449176905760598820338840215143559340644574586735251622203532172454455191245043578468910726918493149418802339923984230174605579834319864863508014099444867028666346104702448872494985249490093046787581572578071537443235494618688859977544362757264529528394058975044964165361878740361334766442243857666512587643928151736423717067099679980843003462399687251899780250870812366367091034195101762536189285814778919238160136383416973367971061135419610471513773390479389350756536215968134555425293128078832742412342105811992484900997375780862780799562927579756120177935053240544385475164444590947041563591581363224055627102373724007596408780380096213101417707779429886970539416211289460424514058097491582891577915852559195594509152248612778462216868767147058617103245952944840093784682690315953453234839590179481231067667327293583664850983899068316668285798620665772191747286580640064195121898590950849039098941165152357321965020557750300827144813375277690030620645254804774553082106720726688451029014440631073615699726273771222000703063283771428210405119712522971184715831049048352662044060175128091754351305566014238261730570347615542590392601727487457429827075532038716974974374757519475315344018044081004805781312055337848178024482297446219031473541642842686267936766452207409328437576557938953329263172395017668709170869611943205005226055054196727516295183276137548915802921160521810918300591364287872309119107554036378455721153109841419838527620898309742992470191690832930516120427962884624362655035046399594708567381434646707013705873167115208006261216353068044464463632608194298565630241840645951596946479013836243269445445939528524895701759408066495663146141319568839987521914773480946298665647459310238121901522277027452858863656483519721681970977222192322322849410740746643485368264699135180106481129697516415106337414584167149374543296779121915227330658906089766898892806826457031188943291804752935298659887483065231133440453346689213659442293278808327988648872231485532876342371196924410098869638709383627602486862523480671441908154997473319673059523771110380788844043770135456088423574914381158573859109443441190481882632201561330542235223540137188207798670382414763795012322020172704642002463697334523922615434237634635515223890109361392189231140300331848778501790420492922325510840479786232057312247806933263637883186403242797705971155605029406724785506425121978659850482858482627213003448739672660360131026483232186602781715010688949045096794334820216984328924629486772683062463438529854315472836989228679090993119130145973725202528677885866906287767239735048328593252923708889773785996396991140114623315872437595691678111110414881087723819112035386780368608715443286027186501142166029667688181108786178797542445129875081336508132729705814941187398632731941920685313652179208956075620675477335698518029403915416908377057032590027557965405238725408695684219166318992279510769514156708293057141473500025437768151728925956896477002187027065557369957892767327879902094667062938750261350538548922981403673682553684307700388442891655036491829183299428601715479819794027888782840518472779843656614717666521686935710820742716370815965285083337683939177542691270430572966002496132057990136103647056872730776945782937735041069368596590471071580977283030078174637837026115301384056733762412093308374741440243806243274023402283828925147892816441311019971980618044522828794782590982801969664386257192684619141532776030121279292469784614948073066543808378501773320659955485353205436234970148355006928552118924151748316806596832054294321737840165319501722640694190073924497798577062919714625919466607184119331076750922022866951760498027936822528824402560484986895099616172826580573751321812260218897920197499109708162544306093931914685542320745814037171088402457803882674298348967764230671807394708816422139981107029940998308532433321821972545537979668721719219354408249396109227800482166028194544325085329992412825491108702777166567162594792560304407458922941390096743150377110279355337359424703497022966066235423158705612434199607622381486408571361090509389581068047664449718758063129152630741097854712261816450669295472022815660796867665603554295956465758388656093653322273772803638095206150981981991352562892422556573453828832666805947104996952885916831451369209736352507695937844103743383181030092609790362542608547761418510008340157187934999167326828844605852792496896127743344770483940999249429385656837795785369583477264610409337627666111339139915388290517484529705645948397384950636297974501143495897221220773071696287091314458868020363938233614072849295637643678089822914201028715784923215363493544543085226431332225845324488534757841650397416861231340445213608249509956896068808685232185590773866060688753828581083709677087570542774998367769443236768368432286339910409579924993390542943838232669327345392354811596573703287618106853595839034961504643851391353829965558726450934009124905632074889293995814762870902958274682814129518959422476613466409434206935924021714241649113166973553160356313296508107713714723565790168447239918128840398568669448117428594516344080192829446909939061681314331100182875400846204762045149805389267882651999979355284285605659397391961534874415648511759067976988206086335499158612310524222716334586441728592931858951424927017900500454935645319141740636165020640062725492075680183197909541546304256830787366980037141803043403736814890900877496619863700453216129316757306282502210948064273647980499727887946173009578029520176194044183652441858471418704505755785141377893050931506292411043351935485149589705250904526534721927341032939586945828372697643243041720799447798423026563005837691784876868925141016118564324452143277438671829480157114434103481045150703463375209043770903853078491204320676903075785481527507198503227045171999033949379160937134699687785708305332762018220375436343713065941984276981560775555588161100331129935967648730125286084780497103766942689430208465105893025761510199771665557435645307060157148987241416393410529758408401251298994495892762821256185787146837766955067737686154322410501914112943116916989787274782393954500232143783859965248821185221295881510887152872425111866792363766378784449311284658974401550942224126506945090050645023340229218744171558515791630240840831784589983621141948424190892766749564148424780738576523601686133105889969866302382659841789652324617544958527191434085214664519236720319158882189848544379646611693828862072280455056962392019034665389921688844668254631010391835755414855799369569654540289368337585432487178783902341049321084183039664770034652320205635911657563775645474043395270050499867810278938756912095788010956598457985291723140659186074056540556206179075959036329234441660538162698440986909737255382840571332792284982427789558680534997087214134630538773183622048498698906069370398336606768296869805864935133683524585083963673403580938509750356738549862803109106550493635477055588688118505753238013900357699001442009856206813905403837413314409412536950393672616601272096166147661905023718442828226391086719045638768869256754490708225816185316215391407867622087092325645259836271961174194929428646837931478704926224798039311380120751467963284370891934687817778657206902565927925343983132301232357867422493544441060078914694618785884910547215096106233609276474357247867355978943695425090823210184211625353190633811177778599196899787783147724396764646627061258648789495565656556530418735620115645831402787580750872628484809246354363189650681876409480470719819726243295725116179930466034561205531117017408442372837154472717433267694933961209746901754243309442851643601350344763726648509309354554414184982415163429443298772879342885871642201332797332423211209285458592861449318692687729403738834952497482320057635862235675404361258905522344990559644994691669516062832348158505057404638945597938015076546984413196876094996987536666941639248275201646253375222124101109531951525203569711028312745698090610752872798218051685553022919773773403237930217888609506983942397393266851936315919813991626682353657159135955417633728375845434262782526659126120708353417106163034660874559936919933859907049739313719100558248125548787865988108601043474026984194343430289488732626175216959829236692116086070876099801382567376930354924707438713606919267633286337522970593078914190306236842788365860070310454204052550632683194387018867940142855254835143246752289906624588071723634979371017590578827876496202516726692156475992817494953745384767590343994128689688603177038634888267547304413292352929335818747487255561467316736516648699750590015307312998163397212601601442471782115522112224168065418734331822186223374698684856538342412673011767495437894284184742319504426722521695305608260061277699109298973410451496289060651897637904377107025105731290055167550340097982540439039632751897977612800938337728075245018694794294845592136248137806092560070402152467862555274367644645140619969813051526774083858051033397047821958706717892356727062923175118451039150086633832327316604729484525108092805246426201293062131068496829792193613577416086776362011475535046469920756819449551112264062266808300449419239516939110335697553539183586376382681675590206544741088850157586143516615664197736963931189586309476561218470804907049559593346195440522297397034547507964811573895013992923485367300536359972947581174566017235286961470319834275791653674714673425051305091906881409564479179075641351010788252874709618421858895659047482533057910314152184761188637277776188750177959528341514934066808058673518196313880415602660978320501211397038938992847513678532476051610380947247197639662649948057675409050168002372051829163497692509411726354483574480686415981682048185172960707486886840331891979400976919439140927962694834647705941099817229229177465370200026021806090066379959746071987081151604047680200262798011843069807065895819938351833375092369545540718839205283469562476572861052068809012123036238383470115031288021561111364155858257510228129803540312274787838998462427436222435716642611891898411714013570869562903711873187066917923861020183333975268000277861868898669535872980506209820830022589765412767297340326193101668557209504433584266548881723388821661498471427130126939092266592641204495913617035996579901020038020948985309400019332460001133497027734974566260057669710206020441002706323721718388621137348558084774619303858154644740020246481888593350420137020703056333096124840055207943070938619725625964776320792818571315366801396969186898489566975218545484226779562968133388066588695500936548063667159894880509096602227418167068314749535594012761773675108715658991295091561966027045626713188550403594898302149468300595610574793485662783832242262471328657909228336744907838821517794948542889625544974670225421727570147800428787892541647937452939047448551771372107715734872585354398162614173323088510024952365327470939747457712258440259564651894112306798765971762817781635096139719581192770235798218738324784230784381485925364305947932879823353025058988211989249337835783749331428284838930979980184684998159976818549832018902054563190110143980818685011387596699615092338658068519651810418781991247300085594198200140761199816271914052567526528407672593743332063810688252240252818683025967773013912855998916468391956581717059466346648027159526366500356496853678148509705875740673992349770689623190024806284387428325604518295840525396808777046046267544574987504429832102873652558305587149722574719527580117502848205069247370780924363862396000393190108896854334029461573046284930562968881124057749321469390575200169371406372854230186979820611208237298482376323321563719684384216173035662811224198808092899476791175101197458746783508590742011751850527556830986603765935755735589768930039183181908896442311865653955389197612554070189295078808126855306687851107377131259531296904675478729722823770147553128316698270590829813697211977652399707632821382932504717506487528711346286137339206933764547522539303913856240460540762527998819991540648215653388826907199728869858660277562421338316495892528702084555394377255536660052210978837980372155803631137394766111874491719530557298611350602419083075031704125618519556210556810378654031691225014580289199708538148280601727597259629151591133573187302765337857229253576388735943307337219686911205699722743051311572704498727246159963093738133134160688165763805342213424565436711976063315176225849329054898018263011054761903278946798675447861633234121797231633460197782634529106770767892280989932417678805287766812561724058743170816837882740135092526588112867068382005667444806096475794537575177548240403452162882412575789629322865154878574747240422762374544558613038909516388408337636728358357610786226379194779091652820804335036333081020821211166270045314360534061596189598774294698603406006863001775430582301574149500559328260902848210814078803961771701506998650702894677305605592937980014539649943906427417475404124775824790858320504245651807543351768082109395472643318996077316599330327981375275564808102256481892715056957866753602302429094213473310243007790094419730478161798865810594136521185662430946138731027559323458877362258424494589755110185037156753365235935521081698783942632475210029451106657672665128930471622225159112566008401054301807082172831117594275816592246613102909440211140944585622924619866508835551470010174074799167173470760876502978242155072296574327319578214346383757564703968691533969604561262464804414862250459363969856541672105950709498916818051742291069526343769319734248468420022776080790065409646099362396138761797361097437938383522058033989009499047066214034009002820283353449463630550137964376346401578035239873681780658658903941363691085648014950109127674555521147158857019243985056607386514171182266889466471337088012514440135856849093767911574852151175834736219851191729655016533540850121440759283908574186201049622724900341935987821043779271590256657952802904400821122307003480380636209936909068820817294762390071825271100854262201356190958362983216470829786698134884242593328657882761359846089698879634824103258563525795765036733000500310627630398293153806465730544470000045682750792045247252403318913148000374143451040484884866978194045498781003970637429273120096682192706273635649514711440551509146038542468914347833234920633109047759594468436673573802618755398200413564979240356956598702118803614360203952581693014246372365194503021242287370440057947390697487494742613881263274502270880513070296499767603279794096525205749864414452904400706721018105446195086391061073525221983605963067715722810480144531080802045285843432158798926336376573861168989450348181096304729461926054168086340850065470823498368488959972474371791817286791830571903057678697441768862306113848911957291116176267223548735240357921435312087896253121260846106160457240968690907329625451837846847623864743019259564506535073201287149840478959664441929816726260425029642749241683435140846110590986071142959630177428589513548809761087850442015190875634317063192694344726045884967983036897026998736380555861378839976042018169239864198574188169668452184414935341287010586873358223648151326856380529617117459369584133121520412087005609295592572804753405779861887076900063671460986305003561350724659577039882929311335408415866653631675739137483387641100378485319398487770863510878332248734229330363572482512602014039794053990651948616435742642082703853833691133483467698386105503434442703104673202129613215443649435477680072719834822507849861507787671938838813936387923959441605321553001727865923850410931344969264283857784276720420095175150256575196086165357132235160949040365201771857729697828459469608898266045560991753923409318211502483718832090016056366606241952263611406236750535960699335951883227708374897156603322225041320892035639480541849804707383753960503206009859897861787200498373614400462555932496243031147572238976122574258165909578566724202072158649563069991120385825974310437035287955356111254753428116392899582272548261779330006322130068329994262136467181589424479646961577725502014745454601619381777516241565110328484225788422002451285206771616959778461674334116981110649353628708089658342175448448712799499411514934213976662066600960978710513651511517028628367963744202411194158478136668858289557440710153182047059445033100549454177958061304872434601809080829938385476714939590228789288310503345811274480833566262012780322179602156003497337649554914015888366533929087194705272040226078258294710658549227727906394196484377326805031010929912806022595911599063872933226600520086889773919097754045746678621480519289020421027018148887850260438461647914992789248356468168616436742894726768999953138947492107594385491485449909640697093459453421566861209448086962190541162624459627957012096988936175314382120839416338159723930191799900774439828403568852549655198118724972121586684590141686063757324594391678001115405042704688514716540184034301225128932127756537408253600514012519133672622636426357811363463061470904920143259840543141358080080433484574115166846785121508147237561345687341880542375332997097562223373650164923975065085962246695725474761499488925606412066299832787869336276539738704556589178959784061261306099350180784991751647616133962083619607711235161545073748131046445989931015143696400536750154973738625781900219820287871652641810886561343289341774031192612850039926117211716701855339751079451527140786900433584839324273064647413295354171047091183507540153160273643033287813298254743877646889209530099853742515595809714305561286000015379267617891613919267576010331603365735199528360851214875299645872760435444931781184519689421012793379175751945020446081397843137792595768019087621783827023494536276714366277953347488352068624028372280637408555428490465889302508510987079643392933995718006835393325329100623330135203240039091060237692975751737476710944901618648822393900132606894476411071850574293481104679167205390269617546247968247843780240556947256557573003990954846435540543041077864375902943632532989751653253581069178885839212750664212804187787721016979269907659343725444935998813078559284729711621412936881780485627136585898306980467376132523041308571403815494790941573060659824057020692793425249757923810353845605283066333988299457937842101847730006498164142064470963817781157562059966103391422213782769324258495228688942911363517392175297792065963694408899172422580136746920366951916954650595058797551452963293250587376850253957527648877984794423254632854977156131854244010055832246199804672948881416325710285141292243671551835001731378999037294748340546547443683673655458057739938193618308108957168662068233265356711666026952388224977880624148398925569019572104167632781345100522754632483415810634924396586569892980293373990173551799305392254938322954120708225443568903691760220676630184165021055561520642928966907188396990449319256955594477910701592872075812060102246677741279853109824737677618612137081632532940856147345557921915763511594733960646695073358196697123088582197858096219577710297091768296067055021987314735293712384521912387372413264383456202379427588077894261079657378563937452614884840069973751543319096920707619620914866302785944781460135909560164354807307122439902932683892474646909371163302359183328833978239117559722728676879346872961748696017218148729813948779939030685345437103097720854467303596991365854168620249454167691561561370105354660620727003091621583502522282239234708240511584609722110937400192524018222149733384835106261617063056396605472864944027413764803920719396804643501461020352341331139785328880587675717469917206769929113345678228663526214767199900003829788911650610102651319448750561417042039130021700665032588513874808777644253318219365747024685534560040035175344843537717403852108160037349190347449419454855451537449159432431267689883327569690892117969547018548284420477652777061349631615701740372401775247842143586912741100238068905930910086026292139604111964613653701130312463617113634179375910420297117003815369233119236225141794147554080874806133304389651494359063863826238353787641029824351094212840766294278101869768544437551403587785178271376064827610206732056873496763768434937646255663189797151897221096664066999406390590045687075537488456420321654073487732400709332065538393404427612619759722455509499995281768330369317307172781140886666445206641062849182690576011294724030289214373643614170821153440484341946843473969798440218360977702158436068634813382798516408347035191039289738766657461493535098541022020263996181639284608020128784538969456003786350341814042495368294470846552005312523062113223183584154438424438279072373372665610743881658834854260797706556880466839113558977599360780148933934619121096382365684927102647930344653130605982822048351797406532215822248401133005398945943370932495192528208591558321705650396462791617818354033770968408071095272923870938062335763561351441261317066992974909819839139839577734125613428284356988590875635405427729121656806710413488727064444422364569200306239110671775388942147855594223594805475351471308395734404236905368635246954591076926245261910824654029846322834042355233710560272567324899875265610082830927251000806755513040971851979529917415384523832983963234495868312942406984068931773177063710075482876775487493263663735295085917406881790076112198693307521789993310515519595497838009682077851096732759655764118804054164656189657864722592191785806275923195314839654944260580009406211656209434690130683038749242540950588456281801350748699122139856328571437093433615009395128767384327180539519590169663378766755059141892295651603062002915822714042063688893306417534672380987181233004454357838848800880740516670173178198076032948114702181364133919807637777658653609345692976521367879526866452338778151391941517334221584990605557125483836328343912099593700905042125938485509124947303446049428613601010458573745707978983777290120543805823378834255216886511135959833276543755065800535974930403513733999049849567318836830835139705751044816544680390606361802862677273384876791004554355650538939375065729092399864747297840822940054300821910239620822215943734440156357226350169631831821379527854058840377475251135201583469499297226089193296844205261847139983113498519191918583755051541607077530283805721615661881714097713919481686609737462891636352413076512752402066169418449564890451739107451042979671041264066427268879301869580327028642621612483351694349565346266550494638134821399531891639265287085804051927752378402544055502557514443983961684183035931777736766541886408789725793434176602049495179776664531442077852068569585067405854356842732941069406889927034470572785246213038511732659795170096616989131709518897855009562311769182322603359563756145786898547556251358442941724873838126460668021942668707698246976791542339963221213584188342931302692540688960706523280317823783916547556485363301450561340503937897546545468427651749856202922642845590486216759570570338404097209945243938381269008354412048883433722692694133764949173672941859241222463657104837694423277293856552423706166634566547725709038033515026089730904146407454296828177612453074521932973612983966554396798101575024304850442475224661904429981211427024286089396312531453934792413344136894692111382738765509404333411544988184062002699812696627013819606378680513801213606888286652138960746182322745407338620463909637329972785789008727004801196491368386428319497461557438127519381752091567930142466190585263733478908294837359224637274167498762863716998662742136437783967731717138972495693105847046687223593390593651368459246569921009703183318862641481661399940008639524179058075174486959552481453145162718361465064756728587064572361500028363806190369796892648218895487108575029649703320308952656309214949156138389636977243533025437187936648702146847647375430105099654996671065881755126269717290803023808441325247969539373130434628781738821720899565051879683845815781018328161820676214364791447322096931749536285905408927755898827699636106008407479935536902119237170207937619133209352250652112920930461072583714520466275756007665827370668468585503203706060261678380310326860287009891661669776229014733412412787207429242565558243575173833047765744179159048529035698686546767335659684947486702089386758441555292092979315750621284894183411758252158141007801781179542016674595269129149287142561395486856357907669983211122407778146806634190300029272410002078756443591731814373643754354639722196827872732493253156823762381842938496372934479432960908204300578732334851682105989849033011526970314530149364364009142349380459049735951984884310268734443455664259750081314370938480406350539710942183959962429928137615186057433779716649377463062993185768721181674947628771099339961529848429811282998051520351598647517395750410082262314424863518297131950733765971032782776988082302764702741725455957963497284636192523242845631987603703739876815418165893143663574434075890261450072623310598238891583166720764925790272083942349057857117407470075980290587122234927740893809065598471772716797219493861884141294079585627057962235344687030037454302406892720888494194248522803236229989452902977583581901661721879321826640789878571160537045139559127108883039920059508460197447106837480755155173547214515194848383290451419290419979108439012325987637728298775253344536730130054887310288614649212520132611133413425871275237846215956790310556823247102908417081608355491805925483230690191750818503931532579445391205216656210296708117565930467516644308346331393121851285490647833252636011200469546691774543896784570963905777417343867761629985453100431275183612750002085155417189066274252472602734884891877899384396508790842583408810556791642686726425157749577359410099776377088328876829223868850306573915863263382239901781158203533128012317903011083398831902489544162634545722362817670454498030095676888972639645175597511171686071129448393634353824965381353386535039790863933944999721811336292208362773425744023745188890355770436380442891471598316963510224196882864555818976141761544551906426264498968590727874213091938981671412374007282415485890353986269996227677633653558042967264606530148201084346672384527532872589082937800835913169243972186185310679846366284660192276728210161920379621911316360604611686514949799952290360920429363495832336849374881902695622506390066944443506514671024637122539165873789093005147965640473836608101682556532074309826873611852689316757231540773503541751151845773443073239763369975151137865932017682879610883953398502251039760161065129372862336089779064277917589745765734037815068498997388078191881991305068864134954095323075443680436139311757432551500748550045287402294020203430404491720366259205692036286458246637513494594582821302459048835604462106700979128816801159695998990958411223989018509964976406580207681049601926505405721995970220949206000023113590208095914148929957351069160979408303706623009463038941065318886837212478895319270012847830624760084597863447485243488148010366684294871629773324969176313810037480049530442267998956626890607926375033795136625659074945565367426749703283575925723626249792294394878007769001244145050121478412492783444398938151132040122070875224622770722257037683401054205513628203775124336485136176845437102493203122603926435768121447490390115535211034939906907741530345082812441979008402617162469824650267327328086411011323556369231310672035558767723451595174761467421184485544624439731243049737001390993545612051505778031176656282583737291882498752522994368857107580168440692539850406805010719748071360902724782907817979865904371091545161043765037057505491723980884758908482545786582619469045907272884347490756638419859599200739186767680705268130850829348587464442030656122264275962980216980873195009071290797656399585466409137322381929879033747716563822382604970991721070807347005094441747440538536706148453429319021341878231875479377820721509267577684427475864047204322117600250208413513496756418619390883203620145818513865242820715980528497901257386491966426483388800605556849987876294310678479845644727217458581291073454113819099161483463796951528760832088401377461625881027325067625225397318610680218708505348375443282879993963546539286781949447866590747033217647335719893950704910438037344337963093018273018666901855562718860137807422460547503956857693715585253685178307582514484993323414052939978374851288684851248821772358826321673709452131151800506968853271569911283828007473748006197816141423860772352217189719355414178805735223332937676125943506839004000488009156791920765031293066059670139304161411248782572839030085690028089963117624936644615565864313262755130186572798673090941649252776370957248090927777238756156754797973912511404322231777389000445736230768225467596361893706091879805303906603409707519377695028175099511847309799165767021243032183859021044517930057100341206934452877549380372202312161594648524990045616685382303671176542144782533820053829395239114677256514760404161303108900962634740321755200665010410701773921130706485312215121836696778262159271327446148108002976213971442380633131797110293601355208682244785954827917756809327690754429712460233986080609352576083648591587739825646837641986432299021106798496151446623889352208886397409985733975809676164457399818212315825359719541310540151944968570189035842315767468834130363210893340372606293328786367142250355902550193761508367788957975702922984470993990867822352506822282120117196581263129797522490821795724450108692630207093078253597610473458600848682522224172928765298381460825945406807006181251409666399934030997778300296284730208680085981132691080870429038974878721060494544342454110356709731064755646633667607347573442942563086622559783306425325384274406468184711632680103429464820568945452628365220205192754716868718210794186393717789165595288831104444125349397780660587202455567573163063344755319723360733891583647935247887674002719483335852202158544789439333803493503315224256496862816255830470799726997868753920959952188150725278074653453221489718487427797725863815929013209226990837270793745457609841369320004783698229291160391644926248700950564783245716639573256732469070929047959113939526667452433738449749073228295756410941763823592039577162615850860034617181863599411172615190618121313115198632952455386782378259413348458432884253035886617871867588267930424874500397521909838941835077993642018747701962507877430782646364406416423451918564435631121966206448081209077873793071112478097852411845871913098153540905485608262364210936341619492805993973682906216490627394061257057720856146560359924287376741682781140978191556174880571887211360651688873791414052793410087888338796850238304556761769067698773443644943839934234725643536848193747894914603617588568970319718492328627114092867619072582372547938682808241387968831376765167554880394135634336067741620379634985022058766248352843189638305809269846936724361828699478765146410779056485087389225231892184108960619591580142587582343699410516840538156639187269462552985576587147378406987031735396640609832336429261347686846655027702159467349449599839236494518818550341863433953948793652733760791612552678556116260051586122485920314017744788086130812819870866901328719329158178709882912150708119356855366575911037767841781105443083755837740951692996665950428174851052691012923032152949424346037996212117020894609942729141861105107055434867212616577023600574429141705425148097592857536084889068545555349216972151101658735952599419283921933588333898279981728657558870903238859600759807967880539129360973347463853222924352042433401827378671152092846628053359602320006002945593841994473811497093617145345149372518115980733783521312601282719186403392742157042165081574788298275198259922769112229284365408133726004374927718311280152698730914395598212797476029613046980155710526709397381990477897226168175145816779545915327573277110895838305823413539940620020802343729661704315579805435893710713907673935870760449121815434164241510071906592412478057630535576682424137124100227407137519079650644968249515260575335442715567095277033061651917450024321653234969850853205506802135691087093307567140257528571676399623145473935380979819108197682932045821365096627411140475379131620445834932030310361553950642476329014685847444466963083600508654592075719982520390999731961183582811748567109852064609582504572495381348567089258338553226772268803530335316008125511767121552946872930630415352007468152066469425561644112671940590319617147629705720336247846415836051363126578031646135937414381801857225585947119787872135023183907609055636075236134044370123944565738760400542391916394882785970240804581415328637502973687009581653641505952044810737764797115368857974539732282662569298014735064372678741598818782840688834903078515135260457670359588911546829938107139935727673330706458311382995310929338915446701157378228452914443665180174200035397499452717190675443161804938110499632486087284575615612976909890419264900167583207159889123672008236592909175034058840745107542230634366908018904840475088174130413012891588902697513350987782834591949686252432111026906172667691241100739142538699202884682873102796625606354748116475448768096096714339809027162694447880534017960036948507952693097613787272588415548917035030457299662439669334295358622663806196543546589655229009099369392045781199611975336357342040502836026111610781734886870105627853386858469141815588263133607261909599614537672762676188573108563173934126294531609364887889064056820615776640636821592950514334839175496232412113029314692742899194334328989451973137171069147745712288225002339792885331489607015795981309343420973903337830770519580248977250697467642891562083284150946533076658567462890653360822927613396464599426416278679747701282873823196798834674314004599365282147974073664841983023151174952777042311773171245095803477277905530957741314199575571992104011276718028124424996136220823718969706732750963699000285365573972532094377473920539855659294278043436001829017472427429229665148461210764015462476734457104247955435472921200591800584007944496588428023716403981643480178455297001329270637627973103695053393085740445545315554760244494382803398603968816637869130455572095881165832421798328056015073995905326456847146353243550501495322351402359869896100825289304480590676434713800858417779770791399376759459325559782193181382032806644177616974100822988521081725433548447573026858146483210300004856756395312768631887853790212758922972435817192621641259897855735415680821149852151627799965419592786809816153810864347058823735560757871824959678657030345539713050926006070055658123924269786306054655526582850194539251310605876846772909040040400100102883425157717349979899772035036596218647403733468794831953268987214638818001525145534245784514201330492202629283938165799719064260562650563155789396306265014053038128125286548944611835915806028480902738368462497508707714759166541915227336838457065187626168460588541073410412577707465836615714049196386460130852248980239349129337786236884847941021645908456180775779596351328637368612111778158621186023679842852562011708177813702009751752275390328823045684246002882293536263518325591255074078066140000907541284044536310098542277356866228375433951933985758597553871105520483617167079600067405939955247132899436449650200319428157594313452457409437863384121065849970730350268421154628194976389683055962574368513272828771224331589944864152461842453733307921388219036653827127872430882984324244634224949382119680251215693301347949193169464779482605031529789763622996301160853302037069364789344936842665512679325714857251980636824424890908474682987335843095728661933524953325152062946940540527320322257222895158338807918128402557972347506040392203223392082598697357234297229510960370126579934661913714472695454295179785294684352026342164687126316171971477371835013097960796515314173536936222419651093898459180990413928434017298067639343644217760298134475260982396379545942228131126550555059106288352682296141425100413468859715559169031502151849473126203194331685296685989832753339942560821994074567825841658010301339273314921317894079901164003397275921887914433633098074460197178961221696331418331524768836747497388418324336215803299276279455416372267458975311374595553003421061253304099146332164816656325107576517870937333985109967805336282281258932270012409222679194250052444331718099563030092210090742205961901060913561736633955089519553321504283508694240803371674302796003378049599738672004082026940289217276395403590065450523425985305022743880475270972791613566598528644993214063170691261784573199383015789242148677781583153984320872356694536224229091340098748961279310648948802715579677233951639856854563505046435863537242222764267616254120766511482329133499038554066223486030523861496634993182253257613116416480974106288704791755659687721041509245432349390987230743948265646498367371573187213935303041652846342658351095996638006325809038733968024718686587780663252773047082507117517426267125515047209870938291053835376343469319233144799403330132381177584858942037257766507818385193122572398664886462261909569846179427316111184141293126605269193281384472421546949547574088483328598350204404168944839151966993298188557058327263970673467391709756404619074203740943849965036039533983456221472155840811789352000095889452617859262153037915159733079916328024936136800107384802283412073550012662003763308789451153088651176875850445645242289851742016585950093057669340703934889703813038284164123048507755689765664546385895393786901637551493388550418151696804549587436728557692706018550695731574889790483632035723501651220919471863769137786138281180289876288242116034657847246023705159333924538211442219114112416417567207215917755127755500999925060875049276848242766848968701488692397021061787239091136359669241200967376577739452860042024195388955547103463586377753071235260304088603927391532937771750389319808044811460139618465482331398238279424388564397225814559997616991126871301030379900962054441847716227434964994356798372701624251777472912722302733018453122946592658554953955780837232179965898825041046497650284328428551694802695130058027947712764308856485095820818186361014021159201863005404073843406574383424310208864946233861891537669926305554732934268084820680539770102228769859813696207724100067359994909211712994211099678129263537340488909314803549657893466835385495643651259103916123669891503648743791663616951903470338426037559923219714698377330689498300645578588518637157483769095173419076909959173589661782988201846837730316895691622199046404484219242646357317746395848950433479058244744304782211453834688394232077661468754238741203568982899591532852774116359836328070639394749056459052013145482045886242912292341570159168603186694240918694478481508668733644910183561224497250287554350017805532332335829305724662108674581286441946902241716029940002778908834863376328166659205555372879440683256681651544732652067436389829925827941059895633737568669173407516130873648407612307233583811649568236142852131305050364665939507955038977276145567989579881271000631854384203314907020106670841563604805699191628753819656409216596177390734945858545353214505180495849932316261968483114159133230972889687601838218116153490439060374302664505424889037035022044903593782940997810510186027947584415511053209708319760073917603140629469364977816850410509024328587388658464380016476012869724000099202083756436260074875141470476213739913409476234328729239992670018019414566302088644413357374250688866900037346900765078059326643798802027850708375797360689329894010394608830910795908007077929515027631970538785692880796135045681691770061419057147839403004227153616977460333049045981587590232798798195442207155130439980386880209032751542930937104867625658883214662437485182389329257800195281427491819435292590010032481706465290164232608928355712093155028603060684667821294112338730827569568241000320392185739135748694109937991337583154577333050064303146132206445328249210517670455456310859418132930854347010758253670950288039617696601510353639162188348144247735866860258931900061557827790306413135577057257895989290073245240545677051766967508028036816914543838551502252463425285949326632664734074723245787833449428823855849810491825633600102848526708880243159570960513856435459882069098307208622702583732832464325832079121475063653300927635076483038656725121926266626051767658397099978602022972365917389658185872549998957570342660601932190060222167345905634296498574895273791001788900203158408654845816881529052534315923655786741921308461973021356099803194515282725372046309319192121979264319843728049681361270768674595033035521470824098201829582298761849814502005493534889053482155046463557203685467879501405273296542102587497107107702245572346150413002388749401870347261014706497473983320341505909450869243329766725518088225293610816736906651356571500305541022787871027739171845567960701760131128799893827386560169345094510210764829524389842783870795051496767847832601673417274926652041133598590320520756639278140261387030925622820184417868768354561226153227301860461056593548762821311710204766141562579003255384405722827405386375989628802019948030104627305098000513283875731003341686363629196598624890702388444199782535407366947774024483666643330103704480258615258575414950377773703545995091543417800130271494786254103815107361638175455360143016924114739135295083971249717459584506157416553397641044954555701698447870501502993755702603876323847930645537213131823186950060186671250226518282911691565175593757204839494477550434185864434791719675936099028841260149168550814530885572017363221842098275902572005922844897814363793197023036571586468718909295393887323036936545234807453792385627938188796860371331840961806851391573827330593423381905868691066708214250874746257960286400922169697033820306070894498461072096269361428554712705842353612845381326621383630355716462712282803910735534243039604514417315245963407168692804572830903319578556172471606204484234739698127343163861582453034946971813531454161138085339549254573007330263243525093563188611359566033255094826694346471626406650683936389699526781221291708914799979469321888773957661996200566651306261650055066323140074709832156112801288316534871891240826495329689752399597529210803429584960761600048710435398401384453573495796009165547968835248084117592247200452624272944308739080224437812731703626309003455117481683854653726837487633705677771936610625621968704877956112136569888701136840417608636536425192514861280165818309188013891123104845334367213463634312704715690018891367069661325203703285561014698817758126895462735949258205589695568603855932774569018526426237033694846672875027080541219411924599740678068136690343863755917406344505791622934371820245324802147570263376434587660455315636104796550081655323553829693802160010842526841512952591757972299069768451759770473662769701449961513256323316183742977154799979062043497488252338306746171281139998971961910175273617434510283713680750325767122496986130867438955991503790334779974233444571316199599140915269181375442987752876363799124042875549566807842615210777863537744355457376436153403716566551195645141166326500767248536747399115060185448139107012305155031446655705596256749795024501008881959226276302102687869390375367885538628141311375378654581974915127100719988504757509021341952865664040434990942355991714181851869539237233695911132494137838973315015272798010829291605804479707417815530958916988407962670625540459851067943437264542653612813306929981199435279427665109611205971222387061211603664293314292252519156319139100575942887304784908808527937415185248706321534744635946709481530658762521463156267436671840421090139282961513839598059048390053887075940289663901454328448566848305980408571917769424246878593621355051005164836063901306983015305767031538107925650303051199883332230388934980468861456476357171090112847856886654722619917934184715920766539672967317194922992275859615069683547242111663568207530869901754435212091944814986814867473480487576024669543100354300872209617291761121883681556578232989266218234949582024932605035014140497139912854015112801447000939151421656836689397829871149335619252713012255553577161837767791043026836903452654656129856158854454545792068792359834322751041784125385648668975038632724976344790223491225179112231652899457057981596862544442569605903504867912617894633383543929256598497887928954513555388952041603140762978121216434836400433479057898963634208212796741410728800701887761723884614682729333201296783711240116069998015818899915093921971965803241667728205946325612424036186190887116303934768055705999016304232277658603154069048390551466805295569750089493227661141592105586699671844401578176181568709787018239105776606050603835050926172351900622299144083311575128820675724799933924870762633325633811788491809013867733461806274535394716114335430754286759011474482371687386544321716780638442696102993923469008569368827660627419490397711513134766741113446301694905383262261498526314968252411544133736448076512821315214453818924585360547888528817211189419784969669324172250069457389303088898552111083440190909395218246118186598567103822623408829155003543589214088898068545153808080105870046834852209461635795952786415489276762089755072747461131503075063288489899593581673242731556143451651023060781551316213169477474064081130603040164153241018531362607130344753418837902372309466342119736053554742393829497014515021194727672618080439612097935260315030836165063711733996168411296735923344988210749364089001227341543059282916945760614220412819975238382086765884211802784761625393206014455733085598228602378626290852964586716184294445359058182061604915269739076005917618291831692974331657893395885783837176479302975034955751828738615836129718508667175269688685001999128030378719047422717587697123023872620805002900883996112902436093464986713572925958559270568039890928379950175374043452409161443501395000770786481010876020780224033195914838187822904793978112824808128694921159629440735649392872674111530205313068955475172651332037143254096024651359220739356543921604034119809953798031935931680611362518143972740395931661312016753721611302977827976452813557336616682396928811838425514019486253498503577200807189111187036309411510818424447707695849229390107661536968204937729249570593700744842935089462585560840218688056593550511845303179563015084146997585977534410931484797739510823338979854645487543889659615451978842012656298742803212990615927386025760489852297100486297674715951991921990344671133002733040232588459730113356704448235698154716377329663033471909660025171371788178659594435872950891188045914489342984229282727663040418234948212531363521822867785355168690255977481492169979626421373948593719195639309117064558068604988037607704041355403090692642188620040715128742873170286517050913544118322181651265368474860345392581862007889216136872456644432947308615386625876842190934509998816806842233220669301478853329395732325035476966532900111876376540132742210668693152607494810791081570563045106025284976279380126789053712416022149024637366095967034272732129619399364152822400823422420125906858939548572700807430614357314666061756836265249504461564045646156214601500051195089412745675857230227649285782207495369185835079959934812520865594297617782606222418536670198182815658909685839181466356825864662781749054592976501918545968534897670847744013550519916319188046870436635142506732087674545769707806770617461752019710774633845256992061798569435282339114395973480167629944993581574684898338199878192529816843537089132315624012894313360074631884318495502901555839848471403804909657064109659832080078980023440488587457594854583814325714881577023602545423300942334727100593561673533589182309359244844866902359455021052520006408332611776018131180903466704874883036624917735204493039314892435202060642642161216386782747881694294945852736017871410514823632929253587620608745882297777266500475910446201516140769295319678204911074930404369174095422267851527208978120535563010874720092069516662809430169275017674726317887144757363464727920314221732068188191090872484818442765471491141265248675762437117601073369892273955535593088962214163274598547618720006901706075705896157719391118955810536576724543942172995233891402887091217301118100646347240480771910468097726456273643630274739209333090680888980058239670223651139048878289127353158410680072822712740999299215884292217549641834278050229921500877825059262291524249248164026119717216173381660493186492873888028167969331755871838780363198082658155770007704125203202074077173953894426983395365909907419056423820210547379203787063812097933063676300891309949111217517574368040630786993621547809690057055586824691849750223700316096275084897783170842848965027016320897941763425200582004231177962649294424891549526584014245168312849457761550194402561095836192852350236462850843161255041481355101078291255805679570781971736592374070118388142310760308968827668544140760563894146007173992833423659553756647374868306529523599211582101956335907474690987315972220375078437919838676639302401790022160501302505944223271108643286882119058383882098503911114578192647037942223025738637744890094799994353868038292615312462110122935221173258862710379033554884081768533618016746367342626282563497616589614046901198635914602195851192393236568686744994567656948374461650554937148834780517109663246641527590246791478502309642086395824592642910457756983751478871957137302253123074030668875299562240896159064234337142406005760785177150908281778336732049701281728971917670492388270823300971840372556559538725438015719422194049357508855673899371383364632746370963624217400516988887132194549715379295436146853489000250390418196749615892546673555398127513078947989787529411548286101027994724115100337155600054092542592975884314465591339651167662407327815252960458944316317577195664766054645607569658531754947151785533889579148317671775149034519378595352627192331471125947605578931489625020284854724233389454188398331376226362843370781150098254673970583193324028464806146429795266406357016269757091618726582113839022960556336990621075501104608415755910076209729852477753249601044975875801043916384929614619492171375850169820925692487937897181488312036119908524713753918235530902256349229417822524508582354711103699602436382666508195940160792703027672074071910440122566598931593365958053516888496070327848602101392901120249179709003391709181919383507311594490328690679849342648537941981895033485259789316725660687986133555594135905360694328304417661141163220904635638437435429310938529671499851413169728114590256346458069937664477501821242454745766344587328685685134569038170729266132921335303887735796103761851675387973879731312108976521117553868489935066672586036349655273918138022332679401327774067360253763105878552294880251145637190138268789283781513087780684118786773537488025592288609248732271968925205457747107167312209404666698330094812581580420059864170290786422443255569603041542356342521970677903471652684331929899967415373774779788101272826034665480624388430025935482127432066909687955845802863783699196323597464410309286755595420813191284951461885150681239052390473301918255805727986889819244574986613838455315826404025638159943296144102339580222761376189060046733229668327476907572259629103457075678952816913387359332159130987594715908638186027397389259932628418730575811107699383009892626149190172049624442915083104097662407138865122779753377315019563290481272654599213877602128166580088628935827568403716525811800262106583438444957000989005442759307284265407031972635849294839396893082575794764658346670106287148083412690086187630069798119061434025605870993976563493032081516123894267612451638131740978352515154981764389788298398721450927900444766229918116983725406776975514533182370005645878758577706203071762621533643615958873981170380016722726400273693502911487533617481869887650383092137115112051985736568990969067140643849715399061219532283488016868702607736685520685045157249264062086588870931376580028037025759981024338989181367069118909837711437802928731613772101946169933465277580261588405564655685833553790852699890663067049649176571630328564712877711651809310807066456776599008101535573161906846873505031299930372776108336268645179853937318529092063512887970341147525133720539871734746962528105590184984492328173919348246009559118890117168809699434125784308232746799810369603474214454809494386437576534896312372683322976788662335022052528836918114826677285518738879864244392968734440203408862040796909423254999755155537129590483895295190379054505024556907150623297208598395954826596136327478092085129197547033795954843800777850237961325862088510715534440012771204951909190806422046625017740676835798325473300658004465774161050689048879102108540012123997118115762428932016266394356834241975170442068111937185916162159977203606965480564740417611690594969290149063189588402574859492355766254694952776989161534919270482292327973943818531442877055944822735031416832678788440633910929493550002808669856348691049778820476454094647662393689069916204134164349738083380779563056104708542465365391334764451698975459900046216113382296343021892107251589542625205342799489138339528809392176154768418524812423384874132996464691187868850510439919285044192957555564138508375620035158144788462611250322194542077208894716068227232800046178979358621461810707483134087902892626039518814447464528318130576905762468898459063713294619054350348245264937952448541338141887090398158535258041302371882293796566158535867954521923383083557962481602075825916919137887305349836870992073486428585021029105747054902960323015428409066790018606827786143792565000717890059580110610953921967809026312223764124940659603847749025155381336602312398868964999039111058643923130702427395452724268072156200858086471212153781361475414537623038049102592343890108904579118161328173345987465141758029063485486727053532443424085697020382771540761511228473798079675568695670286079041787649515266263619573025093563628201971323266259556965682311782320909878451350758142564344308923736286422014239310867196255520786517119484530695012081737255711829970415930042633654509403143960518101288231191970349650742338813620993646028031629406562053772164553188649972747296916320428264945099832496463800368786639531409186703215937701406237479284100838885743414627774843909181460912743313132587354914064304682953070867692939013894840090850440324312508840870837645373101073400811053215368837420377376456286680627592968610479341283407952016949537181394988730176803056902524590197776090493155594268008667910514442984053911867803997742093727327482244974220313387200495630638670353894968001678250088095700053447174618648541180761270583340830901532548426028877512787214663057487813089035562659342702555334738410489054557108029115920304588850951272351259761133012999642284368325458225705209267675736213761185360412945072217002993872681352700932862529867992712372142649069642493067400896063740502337518850192676586569200851772384910294877036157528262690632911455940971710812683894838827929135540919113822483249980520189122690096937533150191157750632344888272234474810801251358977123439395450267014902001233221293619096219479037764038807355503742877312574014462180852985127619243743838972328376428664659123224391983184738670475141828717112138368616164906813354664991741956500654583370438595054226967642883270592213953340248798608765469504499000009549356790316476168359974818921096271171545586663744458015411713971576960382417362595382889415473836005646033483582173550040890357336513933091237548485090924800893376595188500194412885913434984576188233574626598908171568957552326405905514467290991744773621999363431341237262999799156421137899829470956655485482178401347224148275539920520460910788380368495569870392994849105010725007725881020750889770536200044035675139125015621820908114053671298524322430869222283609936604583532969382765416770001236239915758417282459299462769349892171933417698860837671346207262893872389879627988838661778908514720862542239887242166632889607993211009855376814655322445117712167703727928114938086064037709743669725453359697543086841086186198624914281259473372942196256350379984959897591353726989082557565078723020377145908930335849063889758895691198575564729803151222905850610990555803627533124848110032784408959467216479642448476199029374023367279676663849162535293769062859192901222146884060432080447023481095372679571847293770564270410956860699082585819161677967181761893580203174297319004953987356186633569232723823912883772715535949411712572000897733760930182816976173263209250445730672520506005051478008493995401329456972715711832756310371589253450646339554452931758359421395244782305021867570344602161496326825374997241147478913055287999562540246163762556264606611701518359776571556205597685689136301887211458792937287835406636494405714030745470161657629456828907475022824444475655301816847650253505822244569068615531611828773505596613072145918998217858044238442499813556756668773728673982855774061911773876661951760040667219569229503407162112512400828284269896152757880103959269771009057579976515284695651321419323563066042517451883621770419716385203697254609498013342467817132263357991333219165859986541065966868917181314126812776836884342464750781840049280291930835090814428773754484910234636930659417619148134647301689299456530465890138120199666403411137052657430682114525063932166614360789547660810630127143381152691859961336378750890025236587186250728508437553874951912055758507431455978347446100640626328459024350240403220121257350893105761622150032101152002238454254014753195629460636622835014433173199182022017967199760091104693925874090249896539416332006564893603904251987188088291673405053839042158675091933431349483548357811529830478163673819866702344443593090543623811972411607229555723850693566848147254458935121251884614904359567166394461714140898021416905465937465742248331523185129861885502700205873208236472446916548947338289549136745706935417747951713143715575657208785953346413551562625644765848769866898220923471331229403188417872015509977061318260657816294424279232045745896713178202640952483166093476438713931101039812680005614840469992825178895675408255429781668756634472801215497014568224723381568558608636895975970148062480467700304262794049193438143579769499731212369375327974774315437483287837932820940597244391185123436034284188431796796102776790135171969791365450383161204631988037342439687383587890497150543537608062093696739556168343213785524050480505447687039967945119685592746573078884182922229473596721625354097406410604840016264117233901475135197465756435192767768796143507217710582123527121978193299303176297290497166994790045130124948050117781129410427049142251368169048243394881402382166636330486339272102845745548537419476051096793299337702480852716610111953724255502776650855647482637420906114500515337881004473146378379793114789037995185388521008224943553362789537617544018850646710891722337050141866179440304130327129423306269828746539460368345541802354566486052958756949256853393485516550889687517515070398196108667403103816963422631550716923565134158102898101819442980906912161063977760154106723491085571228076926569217280292290133362750502172685670196781068866169512786122695389407231636517801524894710880547547470019483204929805892152090753719993413166931608668866393143733182143718993015461879676908919701299286146261549244668315545381404771150659447517524293305693314400478419537309372728436712403092038658958631773692152556077132821285232545025418168672988034805835069415883962909626460796318564930536030523050043711655068188297100273289039632451378584650821080551948842770322229789116080581522713969185307237827720211159238716951037725421435261447382332364425941308767264311236965711344824865043949700817563011481434311133313183428434703774913982163812100070923219907856781913533763624364586641680863409115877733918943260256026693070831603949688998897882324000306208959512689074646988798162696266245785327289586711094384038636763750241565261128208858260780411357194738480592156251945160187726489330958934996793512770194570255241252586940807700380509893162992508201448650563186156736935225871080621268699143369976804621995546723427716606322860698264285514112180063791656663811871008217584792051015297735908585487914278487719610664828728693362023523734724892249346290771494200812146802746002506968537017177781777652687727924510754751440025841375658563939360605854775011157712629077986216927270901487410751595567151972503467508068003591298375229852185858357553290834056125608912854036326730278645625097373256744622007362801585752945962281461706325502412410209090454181708434813321127156450122807217296354638301957117228796020479482201892126590396517587609012927092055191180775784499410583747002912805776313083429465937282552476866515495182035708054992262572586697001645446155665641569716901840451641516021806573449124533909116733147704547684795017690352924392352804248173056505555325531853697902681259648165527322472260391628071038517187715750130099589300110897318493476049176622049814979620499736896660276210387619424558253777974303191504764226984864372864312668505517032978376681805677505263845174968151397452062127924420590222772699442444561662117422089350506599220258142858709037506551221874613082610696299753134584347389090949531398133736636180202353299024793933853268833483057862067755922853628517041636542450867522644444562095131262587139483791116496245388867557386607164993553145707711862540583426496699453495994853786721438042886534370393878152033604417690652042720248366644075536994374439168796014186539660010812962407516109306495885159536657817990868626437804218252117830435185270962424708965145780114998794075824143989464215859692496660745589269896281093099140044564540834009636196635908340733748518992324386362065642084220852610653491348528516050697149504881182162398057736274498093190030775194803736318531474379926277551603462148270656374862734411220859928313038858269138898110813329534452519641676218210562765443459571871638547551638151054189839014423233340731463751093696817944139079015208724601056590540009156401547637338531252044047458159789913116726194482954052259242022950504123802392156116100375769941976772318249919376900228169845043269687490498677863450223325494792083007498757965775256368220338785926640437798730291000273514958072392969367589564033794284882399879520344143910827414005997010138555933474003374195450717490649468138899358383854122167486260210519723248335823335836130828666075194804812530125740707200368243612754942556675662669712775559603267672101681395930173266230298298495892275931746210451723899514083673853786139654654930934459143555696602300655355358864107210228567616773628525749481394619937176656622111338308397321735135097852271355120788832443614969573411743697712613920117552384970693971250622746868753267859672931776451084143263553633805103584000202141126376969646192476034702421174236062381755630794077646881818670132727886039393749610044433839248935871009349394372707460342440385261729481640210844421049794699669484515998648935561512969402345788950224734279991416842919239677310710827749977995996900566815477000438214249769288627453046653131886729641843124483391049865991829960616388361804054084311686717976934052791682718283823552929221808156452285261157139443850829736702504718213820856303517946912799389201939202777952455234663744707867256939335859500947064655358722671376891546215150296898069506035184875409028717516865214908067492873734584193338593724259654131267585739748614463938453896015817668815141462454193489525639600452553558244553205448000417272098436466145406957888443307889502298707164141572421331743094508390887487606793868791171829365849975127565464257208595951325235457939286487765516122021860772683550214224619065503120893099149320188559773527655868655318027952001019038769291715034176371324924521392541199595649275428215370457275846645360497472375447253847472302105116544880088267010176594983296763030263479674149974018463817631054609970649084789345517147241932140457692447844364586787044266802537744847708921119990757883847872175846241922695493650833112607202405139453140814611121947405291943099179832997078220054111856129580239832911594236683687552132460472729334921433175963824365564674330148612681649342642655442059720769018475805453840122757293144454544677715219611607654908070123714195235688289649850691845764409556829508574102157501154435838354869771787087278035713281566240758225794550261545125539503009734483965156774608950989927701108895421946285926357142969372186648853466895628503259756468994827808631189764414006781683242815050408451257251552577498264683189841406670547718416524933940321330241904218258518813485304544904737338181403002475162617342008439615833704720389521497921950095521884059846568846334040092780212000002254566124609547722659292564893790314669468078692701715047235737230871621946590008831237253916343328218280096060169145362768899329000108646255405241758560426328715117111214452420064761361614318979826455873239422981446775510086135467055093118581410053179416731894894060331346039264120393306839941459969231378343433862834336120454920074271598293252834579707259322878106133949726620056527591176517857673544125473530090448745325790882989351568292799027354274524748032850292357691032063216282565639106320058462404066549803530014750646920302447546669536820236448867092346213207173586899458835393540767614325614464628573437679820567230901717175419696374539259967097186474539083005770776476959781680532069859117293971573396450585540557968823730159835052845307582031008224472166533006425114593397480703024583298628845473280894835163603437067246428913982395210587998589468692058444367005577856521008587454111156438217447426289380925507925364289874419523163405159031020534536881040866954387683578326144819637184800099055853303021741868666171477282707049149912376489375768665525664463507949945116603576768736609013025379862225423155255886248156415306332984475063101798801019637634415848747641683251666678111775849335514286121790165666894226975683053876696488874416551997000442954231150969584868490034281038078793391208306097153672172098442639871426795322879604358852253556454408456825587824875135927175377971094573299591151079385666415295760157775514728946762565599336572144070305144225038062851886882818430400460578529983959495758198509188827417661039763261476985141883602110394327386214373791059178758654778393864394338649896733316967339685704332713518151886623206558920355053429107777693014818625828423385950279860628170859281549571378285281374943169443765250683508696489145269504538563497000724653615667282424396577398722569715178072422626674962482754469328991730603285376845648677803632228670094172060947277637895291892708522915361105083371962586492296990415221324101057095113297840619466592788093004912840998023472724617709476211614996651428771542319131782237744831290609457617339741388514889804624089235278853502261480734818015340148836450196677484341087384215247731879056193640753590232329993350451692502557252433266348870061083687662516566674665451881715224228234113989240335254155714033793060701501278084032366618104238470577978589255478194811428091220258264331268785163324761995641953347194142826263653275227811291569663688919535885539656724025514483780931130624147501501178305970311629561319953439231250199862615156715006042249819079838777445428757909208980207694435710280949050598788264825403406936493900950186622471846472712340437597361806319536985790413396337703096754675060408439680905809373456782419130655281398408437030095490317151177080712144160253299444570979632783910401845483006439922958140725362566388352674346154054030173627816658097814406065523412171893810129637023391538748249672944581457290951265431506757384802900986766402280837708438416664080269368319938493307292055535159409331403361995055473045845649648213321990402301249391093023227016511454525439689239542265511909505790511303371154951615696322934604204730375771626949238136083083764734017747862780954476378116260823255155287352064450541892608838600309977175524806239696352569544964617746484824315059621182729772666856524332588354549066489406263468751139769855200375650364420715369537252731990695033819848196435838651883410177383699571596377967416031769667021700437495665706844830774746579584203292696093415071774311922397482515440520186772346846403317875734314703841024380871470818997980666283278192309241438747973351723567804115535014856880190877853960519497247725414867791773514246197650871933265418103762694095429552429644555809119412039315269407765470013338775713073241204130472647001981792915198599684341289751739811601683616257894253641552520342094746916241896957938042088752524507466943525164389317332905291178762008554255929501401510900102204702973731580414241237474389596767368247753361289332230199827998816756707575443626105441646832287908856320511039231311030988063046468590206634240290004775356925946260873835796074274029977312580916855796110477165323349878363974209267688306200488690204208312234531153243994098726580382955083064861555798808455442426362174217984615497869000178369445305881735102690758162216189823420425556904669072024656454021680626746652764001887194046338362383408663017279217765653087750806519898762741519278588230165570590964290936502018882125189799837387741698460556025325927069997113031810954455159786442720866631668016929323330613063962118458250782297932908939310776091498752122711273843295188609296136581266590880979936845115392438331536375395504675031471753009163928123409349365333051541159728728082617814824223965495776307668712341817756610843690748159182935805179202774034247396040564036013972541327682504778615724573454282078112592970072915565129539413896864189317579575157091731937663563968744936379523945008959816610792167023094228938686268649226072045794843116213722032146751986939601098060344915913868541599069070743455247319188394681284979297283473485591907917841579418450349124812006878159586058651630619307363207895377099748215896620057586611272092400003313588930398520988210474288506949186910316999828226274736721985619273279532974932141377729363989385063461450273375983587740174233707454677738189824847112078899417204095798364339434571765687165873003975946305520209188354251635584142366304280286978027527516923803707639356291094672008320543613078706327364502993049895431364119050839527891796834583574575118871631369476424178825716744642092926714168468642671147961561937075624628156224478729213953153124087036028072446133210178166313847199053850565465129604814635272418779153165810981177531625960486172239374946517739612317015187112652028065905583843544281464974522441328013685023090929476000596065610973708306508500663860816753531112748394956165300663293877450854008266041806492074155313674361717929540063855511068619569185496114520448544556676236069242863500207909035039176763368447891428621391993310375666370143428015148474128635345251575664903495885125720173575002372282921258549778017307347083303996431379678884507328737797155839928585257486467397154176709069498676591323247377032459561599069083500063604119726853023292141260160541379733959398084137331170350803220935407545850322399846907558157061162653992883379230065869223986567581703358633761102390709927289446574494158026016415000585448006676015586380432441409697172172389222889706708066768623864130329591347534689069523170154547532378523882437135987309914377299536460134036617832116503388813961231373695514992659583106963320641646546157908733694925413555629455100971316824514554424523532229073545976724719796551393733318273996828765209607374496235664395615125353126822066875149416676139226911098913248944461565103953777491321968154990404566868074900121207784653028575002630602365925716467962508865717670889060218634179397458306155761828941001830626604979857112366908833894166356055584168256319879360976297977069209667056224550022144272218464932338753878413872328077371746121651652776698265183989700938088911463277492450979878132776037335658953069782516175490248189467434777841599477390984928212200883602323500667137744560087876575776404121875206741693732120925394700198430091487340962101613804597484532871159196392924465847923103297735928027983590833238230792637923232968802748803634895508520234158782015381134186536130855288606140946945967260610567248793243873507636437456418133434209560557913228718907497336357446894757996840928602456421408410121631530027178595464016686880769641374613457596699600967030906320759982490673035532743235043981514545255319260846513619282895779305416130866144902632378627412724249966727962038305268404844303597587248202820257414613633088934228355267733988056458138705723481270634070329480349085020676065502548478583527003135715147121744992443003902265550550226951706159776684334948404413897087071728357025373910455823823632681618949099348891873576943439766547237236966152468379407159938625519789534176607102209926253772200245837935252129427819685362066121287422025003258891526009037663697743343392578982063894520185836754577151716793581474595234831422275473506392338447001996784781095363448855147450473450240671293984545217115976150610185486006682180236652378844784076893350900260479113357116759149064702916079148621292334051215993712313688223430292214337941528697058059968033581989817307207091298644635290842122707213326825534364468140609068992424599191283502750584882925655530041032121606715255154253510893625872320439470402290777771860992846707144817939823635557417665779539803872421597034461575654532318966241553296773607819972137367721397936487420378229416945797305341430486688766099295343393296092627259142418606786818180065285385762384718042207681155100736432010869316884700487414197265646206961922324790984334730564779925370435060233289473675009380086260556427205968562529074877906821814860023853801993798054959954104728782236226932655963751664228263837855471198953916542616003924239102417741518655875416094979770770046197821068323969068584265241182639861832673774441889077712852925726089182127937493037579478993190919939440879765457276406182414615075950916931446612628058169077703012840134177321556538231801590971694553242727883115492969209049361777954975744072118298363450670657912848380022597077189442973166395860847270581780656001296013209813737443335221487617468434929224245256945616853104987150070531146530260814228775629994838087796072845045742911581668590574307094795379481870925962986299408753927623520616620956801952183974653227306142552877062446174154568350271685857992169124227350305833227149714148634149253488541028850781260056579128248789215552243407669975714989886723161690312194801153093720702644224147274284573455346330470339474008792860076271854669006905819241856920847564949580507949373399772254678101383747854460554035399405516768212573097933623920850664647258230226857422451788481569015209818195648453737880342039765519214344932845305787021714142394017469392871685541575237013923241646540607255832912898770643035820614010906722566020313563609510100196928856826805244192631914020288027694306540092019734309426612792430614476583673908256378422878069028030410412721009183968436653823517995978077742632929824840838652576084463625766417613074043897968414966501915210173378305152565117338486271614798249700416138051559151828719306946551594204797224839849688306049735252292259173443487482699762453599337171123552348997475851261267270637677368369556354225242941465751153912621132661373656346348345741557786854617538696292834980850459652397358018979656105404841193899003916781216429005225792223937088747406888460407799890269365827050757084695701169829325039369624775278991987695048954197207354539816209270674788726985777767739177987390462804014602455057207345822241646408363694877226829277759820018594100122809223449511211268324711357537796083161837480017281126058711432027837568457609252045880054394126211425632445003590241166857255457620441825603518354073710032999231581674027495977724398299027503617850270634550053397347703203532977980447761125326756673385930112630671111028757535767490081576050335892644743745166354770938814329233985295427743538787775151829891528317026014220169988571365486061813361472706292021709187209110179349175705785791566500660461335063916392771328200920650114446794431523141329918080875079460694944390955214657216158778463422170227884763022541520664975737300674461306648110700588835101600120512302400553449406739902991189055024129409087333868380911781735117994413472356763584574702614235933673355430638592762444858303138059430606068651487046549369162170193515365319288422394877550966117951452091555206107588933280424903212323498392794989368218533426658282727891067002961767550363909267722816522531103370888346013984911084437065053610393737853809778421201537326609546961481914281237484073621674151102174685957939981189555095678245923277228844024893483744998937996695481127344760997260420911349490242080500299106761394082674570498693320062212436341909885418332128959848071044989746023958634199209876250246636614898666865081466668269855425171077301286398397039886681523604072405094473529679492104485243459264567338947206859326336437010497686806266489442718215439108652169132341599084643877269419202830008757219251156556373940886657386990538152087719296831233288531023019300663998608051097316309070723699383778450901726412199721587901943901260129770807478105719742937771682006430442081455678231590560409813909789279994990760685172357723835473164985414346486641095483625209584684728423225269851339104176996406998351658568581222254457352125606808129362183916879102853452624435360324120509064040703029466236902221561113405636690373059407714803566767991021042537519311309800868838325121255794053948902657151260033559453350509075666614967086388397106236798305303099101873904998559194557347975174616944061962794316301273757948562008994485172492813075804561338435920189406307965991097947720720228140335714322980381765060657903566925833892473474891314616721166136312538317944430708776220578199152039145037185636466311343942083835898197610085113087869639905321885535633871258445934485128455812880395941956686151636668646221847166317085058515099271517746855873952620775718004495211356895957803368740403970501803065705123313069166878077123535271045386036906477718304071824699983822278148978636120503801014787648183067713112945866379283182404197519763270876581189601678798026352439221162703289981880671397515742431237893863559512904404572057940541127527919480692305010680905420498251114176582815494285063094806572449648954209405989072156232559471203840251485889069142190265773115681800819746080656370655347519821014429613958898831897403015206324533361991593287185342839697915955893613095033712795061502919457849393790372006782964299588276124196723661085616788804781529138575747816139015176677211578296238637143045389395618343552720832630430477098765208685823277229256309122701143433280821925027105961436174577710334256099429980948946146842172826296204279249833054118551491550511365255580153326316445353226607712302332232333096493581245023218682534523630766151108302119039676550950783924172644431369537835667214608530805604578145825649768633216525658546699732591953440026238667240136691698564146765507043711880533349257784416260496261783863845579066408849232658624616771312607532780640177460263222278833484327956228887025840619155313997328130995288890399323850879581116409844675376398751773675455454664718627457856380949849678045126855180678756723731549194481272828566514220997118719872481799548196576733966823271386177255347889181555910394533731077366805821607635557028587419687124023364156237801335917554916291977002686081771315460530770684960656764260951518758219664630878691951579826167993389823151319838583567263017666557596501650450665355191878817464930268816609506662966561761937175901594509396320291222757332388162474316461505015166103070929783665638782131705106401768579016541123235525777756365705455474791091748769669557051259538072456344832700943665099747111275428077854489780652714485385147522357818107997949859918404897853466432692889332448910696835752113517531788407688175173976301425911137747037009897804451166619665759865906804705455585011379066642348891628932876536520605750418874515853446451458998294958796007016138609217183768608086171742465144920735857385459334866901462239840232692210852652169012287714804633721199429920810702308892783496423611853145108711566640423030607737947333421871687483642337492203564930893683302474542366329684222724917106695855338149311610723183425905509850131067279833987238849133029542479677447723364130909352919145168278216825626284216116873591017171334967339565920205799269284781830578423615146506666008077009000819113727229082565792542302113862742474406745156990662483960090501685398555874896466109585023271898123381953648660312996247434085735556879807827035895570760214433128309800490318287507602690803555225171560910177646267553622083606674485828386520786442896468695161187820042040795461178179765302516984989326618045329475466528238847767800852282250824802031799862165169710219007462409067438541722694794034319558883662581196741772687003979724835798789652955907830330868338080081162002586997919279358691732222903185945059113248623831927251609527416776987962236144138586970083688961456951088954696259593981176303591035282322283068124541568383657634329806750200254254511205773297787790456961345379751121027916360427174079091471007139256667177770263701019879862747803497091257860192203244056221862041277461825316973207568796222144535155846773479793848533504469098455440516133302986483938892079901138307841722934327838017241398411471244152967834333201381292931161120343251159142103342466049734107482966871268481087625175345003355452462453534774092152354606204880423021288306932541101736617170933005887342325294421971730045299663870807174094987940787172915931267129448082160020753736251714684967950732076483272693410062516759493412267804540433500078208590029346849167916781838841711316536036619800860018704271337936745801420539334080063774343794767751316612749244119893985131832348613798552571137444029392279117454376584469257547811937150789768451146858448796697602544159935421573775402139647067725649818506009109009462065180677914513908848975458268783502791538431268661265615574472505787583236246014099189072539937015626613616463005788272180389931090189047793445171690147163973987905422741416548203908245153443613389092100137989217268306611577739436470486788920007245703568358716915287373412575490459418682092823719003426960320452695573403543699422780163710948847898345660279919717105253096470576224741392960312251050081269718910167948248812348709057498056357167217839943384797081597331911792655070274600864097920175896814727130065947724276620149729734969945800083673468533066354148416772489957709972644651472396763560528948419569382589048367569325753620787951599902056947452990436846262721087087756794548203912906220621065083112687370410922450857510434612116973507606480073710876665773235439855884389180140426972152748264098541719824154014254829131934357489175972178459363007818168543067381175447289011615694093145380251869974830030983067810863486185763025653939730378092077590274970807336513231527064383322193215495857621606369001331963151518792570272850946080087054356442897319413217919284842775232082377682903345705027051905399194298148871546520680392103042835109229902313871575852186074840509753577619081442643520734894852846395600354710264420688474557681576983715705882998621556610188792961970938751679283723130568843430926994092995924346847992499700308251491488541401076796510339969770352453617832755961821200777479062512221720393746741686873035500728589711526817082985189300872753000815923910593780063196207618042713117796096470490831695313081241792740866581852292525253154757722312408792326984405924175236404549622985199789217187913303442569933651384857271831830802630626992661878313945161509676468486702169105222569070663377267746001839462358740539143663662029664809162438361241566862792121195073088176663696022691968349882776256810394711108041066271538084166209476016445045248148605628260729885278781274411518491009938287346274456112641486363502544241068907216589701260063722344822921450897404404847496355700560798999706706018253904513565706702051504699183744106595882898080506977179966056901337440036015093899717967295064093274530023392966990405124527876411370224782522421360550752556191517530580173509271357510794149773841073788536716459159960406895688395262383092258982728758462940010715605364492896216891551933066420939297328534535014670951380712524876295963958383448084277434963175998322341820068542531451783266105054278868024959628762070669119825102866402231430787988609462047410504946711544405728535491894043925384041939285791856155604196336352504788606944837982446537321124414494255894104201221953473263168304134116283539855118703118467916878224153892493016162922093054484234114388763377575354558883999453720150742198492799900848528091906390968716040779627696315710244400246631467623112510161750473865930003004857342150775124725414192216387983752944231505250961394192610071280961339109096468408631372498190162156811933501529210623985891663802324169657692329606197070663424189892388973446356890319167675339663576395570702216112489427797129920482266286884428063471450599621384462271012312246763371102754277087291768096832529518285610968281784622746904679445098650594096829027575686457437679466817533033265847927649812440809264131934583512710913611121369183575147281935293960603847045725004179111258051150370202143192785004317394244704960661936793483329713820895979046334533467501385415523083152229510121703858219726475642852280844314644049096337990438494753091138240452437844371623753988363048299839346821635425775236123472743720839684099818807953865074121767961727650749787822296472707568849910666299011743673092515236742045155868621844765612552495780476859733021306605161663381704974950559692641328610672103164122397514598366306213049478474533594121347183221120060883805029165204276372413544218791530549209739149455378304526785947029754038252361520510949018805372461012688279703831809597927077368166103898867446040562764189510629007818782479235163562484455801417917578231029051733699163487418883393786899517943521724530087997160273785756053944174010098785483732982400870608949591181417955142023123849986377944519812681121011445573428348708928788721221551872881505835598540965562733730195584574656663942280756027148276508592786500614526898628500055029444804089899670445751173679915496688464807921649067828739630078698467714531935955382778112563003641919780081026954046386000870456305907393300743451951586016464626326379832395645701355100747638658129993945857450255836525715268110928896917643825460691601598172676277862511038633513515242893629456221818706794226524302314926911420065788909168601485208440379390337783078369685440593820906999347354461655044952412976166310008746351379581949854277794440938210337218920232423723766086775942931372133631539291609032999971471606534693402897853947453192617313257224075580049766013115967638546418100502429511856605053700308634104365260591772088467894439266200702695292444439868503913345336694355943652583405122617261393089042722568870566895725258924017948203954400384788846157409916738583959558879332635602562417987198760047448946498111296301776026298345739450971405267361651233828360348493793223787154357519366417966773899855439530554514620291936127638388961159805537693770322499433104086174212416452830322849360442901685374897783268729721098862467930919219111378664260693025153739472094071231914754932633042192118979800855961166953304403394962599597972394201598815995943649858574506644347800276267370579989725046942340263894095409855702418050295067541384004166118369436826645839823657411010567941288616828121820319484637641326343643347645336864987454883288180547728062359375446739845247249349809088156636728951008107794938513115057445808473713493239662308532061672601487917691573118561308596227594101950031711077952478347556912146379070131150321699081070355241754579575603570565314828314764598606499188280091103483879527972859209635238647169023166117052346268514980499511241789810780653251058672205254822932625831636180824225217024770063335303328046010279263302279410788535426613003184211521384186919886732226967287845034412733373075225186321743584887829858633109584995326118194421615991273034628596579938675658397141528801034874497696977301824609891724987382873242319262567434490746561301705399117198670789123259566952126274023105217946373030364426716485252877478515069665272385591578451594318279476750372563418522264611178404137255284486078624248376844913781657948663228603970856669345380386800091356603946555610304188954952886157806068667294525045766269190598459761743513672776096077258683916863392903603725001880511827228568192471668347414313973432001564726421350219630093390461659929942800254510828793779340511911830522657844347330887776320200948200638683298194987578241967165816525053129267258327393141101158607453951991972457141482258939975280409675189430298455716523388919799819727819269229396440828701886295360794398626258002220823139219446629894921882276254814596055064734157720850256670820435608611033143682975602518291339217859814049161704135974101781401073092996325660254160795353303319132975182821196416539065553510946606184687705968626709122460283195818594799061357324708421883090909108771699534649993734204838021573123722298872487839643650382685164501960343108845672478226363323868119933194472265677825512053613169638015935528214384267279404092123235384273120862456252051783609449738092731463936532427444399534226125569040652944490068848045987723788853449048596826369531640175523248832785667447499648842603652880145887843295083048013748141742681078232974277121708952991234638478309981669230663877629260093509349689159819027444902536385269861797494089450806905254740392122968156625463800493938052573744104309132963318900684246201242743210488899239027857189961599437204175687307018251558389999787824817236005034140491895355914325700951659734179774778044542693099603837612112650891858936252148899663374076233619898566225885967555439575057799215608647633239459199650486379973346190161412294034780563510532166743445981134950251453118237465427773948611809126588942270575377700416763260653775110178817152042406821311564128780291209220097126196030322917413755146623487260920885325406661653584195303818790434617391653442331226758727467246989861911682573573328066908087968842204070726357089115540258461287674183502318178761671179790678405826333878518199991246982208143801585541488676251994887645864166316248216864825224482507920117139397100904964094960518207807521120861614089882003857165947668316956491469746002815744200750318394750023118962062145776515321516057712709767730296138494460837069128548752897080592127406033033331432363511053964216615136676345437863299699800307231775439331839882066131248731061385013207632248619882156163035680519254114688970770597443458869905714675666663266463539835147138834733588134607210187163926788233394807938888856308475289305561478442727356034882427314725747193373061705187141255980524293601993734089796175918639817396093418498806194067908794653718050328619987216326482882222025013371809354122884472569200443486004200654185359444768424881876140669953826459667018512097401529382795629223334133330800575272663367020558599640722027915646680314390553521864107161521957511311422664529441364595788074471755896133286951909835826657280374493088337624341101054403506681145568026689781650042359387209342326235182750176439355774001682286060866607894544408116001475047496295016611862766627594844304386603344057001733551258081367699304693645836871803063190614936511738338250973676192446222970596480100445051488835124923877530848896721426397048494761329068905939097740096583778065148686955799763135025647362707099787720760647352556506404301742748723327343489928852179953873803293037628931507153717656533122504586385102671582786957747591653839317687448563218150709565341601836341249635782396894444940153746716979574478851865931840051783626531055204645566772101438253560735667086386931352202479841218532825589881365344861081238430203482159961240225660319879081842936584986407074121178061091363353396925232813406761154788026296546424024311934476731382251259034148703420945860059423518555858139440984979374282508009634115736298018661351988223121510006762598520333969374592439972880517249555782016895720053832877582494534554869980235833549010509822954381858003788226821544673711134017598035800161762532893628930481088248704142284976828980766157975375073790848858821658305334253233157648587642307065042353802782367060936306100992565754437620438337551120850373719067922066650548272902471131338903362379022627140335106870683695163039161018688621473682870833647587235818263102371128427517448439155494286176447024073435733476672188167747439692438881065574685394163066194694073195061786616038333198958889319009702166990097177261366693054721502695881754246416292911499257133326984399466577155085109049605365522693418400740915747467717440312697022074512530300011730413824833354178117908816872767454368401571518236437369533761577245009044955834275582997205631724375259262985647580061483665905669534391210074123865062225689689793826515523737698656110015942354683331552982966255322511385644641003090447374877066417773406476605673877727771170745711586322956556568348498547808432406590989281392966074351496720663491573164221628848119284218820108879007119934660644240672184654103404421537792601246469731624074908526696025261860447421109948959219103821655266718738131839251947855985339927955953413656224313865168259537719107938274297526439511597776627011796885683610103926337928652606698952566281303179816725237267924391525261402634901162794145339218581506152834947264958246865100306235153096071490049524522840655166528611442678208751144754427823256029210007805410824895255954261822686997497538480559491719920102175366334312069425725466164212727525618449184204116004952514493858575247242029753454490800147622154086550897175650789960197352286690422265604121055634700564757494764732163820770338722009101222830568915407631094339155600851534329941717065103041713077885450213220067935216178130448877558200945607704065682562260025818578932522832961783292069704430930665725019444448817142598827247315459363876202994876323503547652161531977416009415089641235457384148147181842033188883451398884404613396683583860562249723249185808607016496185890160074739388118347456509561526456961881086197944219821196230617880409132048412294222589963979838344751143469162739004730934131704479406615591916032618545447188727680284824334508366330579387645000609410720671196922769483812360165682814775439711047234534259806881117000854829659061653270018682603566970166503877790829823495483953713430923413877579971630121735234857755465779851606512329726540847707380876381731546420472018241355732031157487080348462613295033415997202613348106690986584936910571806303204617601121166554983988550477638276671045998865247881720473126325941942952596704790876983674464869912179399917014698337913751664240497832658288140610370208256489538898458752404023298726974168151331985910382465064014455842741407477929205560001627071887373080912561522902846181808535854407488774673695528548446672089249843428433881761567758100207650321436904790096664797715643609541142658962837246536839974774792287584787360911603611492101348611499982451527366597123625694847061953077907208333534180276639746540515899902877506461475053922949661576545564776807074422640137956857519611964333789603608901255012921546927357952988152430822407321770349937317706978927548755072415391711094316771669618820297596121695798425970759544678360563615954628561812738787039888837906293905563812072958347243450871539273964056290957902985478837039260624302434303092583775095067969611318110982632466179518948756589790645379052391224384128291271862034937353064059210135805251360641647873333226097017408200274609852524255083033515538102495222780478716108558138177782220283778457263034032167858068596310692362096402488428565681523125952212852829808910064666444047654425486243526681322378295928317191413644026383140630855826468368385222735565830986019125756303249351465429189216228156464659006531986338373262732031293105365402718338705196131746432691438435282175825458036948442564396744053713130501240192495517055232517404085814415193602531409189599754378244180393846963371543699829368766106614747327565499957268195277104808932712711181333481722855576727590004863909529198459599559203235962288409780524824865739584174862730393453252166189165198177343712600730741726936647556685364754135957875187744097589847453433145176530664102472234417404306338978857594004346781522029635657672816636146277131952924846554558887414174044980851058723706599330719199793395958572428181282561814868179885221940279588343069464890102317578064871468485414277257658750075681309306463894236431313006925657365577793291732568320195697584365800053162346956518914262868484073049986847638498094676586050550800749650620310854408710301198987929476070981735919220257745181291590268202320564353405135403953557302019763756418419060945054291334929387391317935746577942674586178701604961926156906252586135816932312887541376314512158073050792213325610317618318785270371439985291120566073809882981009759578479059269487477490903332610530572644670350786148484759235178072613220733201634425040627135559118723681297659055596036187226048156786997832641694349292193716439091780333114729642921734906657922750659724166544863715158510400303108442598343524885130461924305729461375625804979392448427347641054422463159923145708427599658115015037630819015632988383004528784046514315066917562236674809844107378263184834072470813012068860799099887072951410605232622173295556978232026153840947148307455908037838452292750082832928488787568792837722367347849985677151525398302722568590107709504698480675049136822468044754426984684125883499408709890760768208123913930194342860978119179641830491256905609680945245786244824152817322558025708321774612089513604378560584406242775139202497182470520737392803833018161911780153729972353069119078779916188778488109343134964541497362033577539860560425418799981893116269558973150414883663809511749941052386419495987884829639597103582802084421432477940391978477780780003574180808559032553663480414202445906423207533399880676846091607258870032434497988974494622053397496486546602680026057679626217497365628721323657684682319204068176984398087536584945316200350107239317989440593707831754485481998468270753563646539511247311203472801206814472456842122299358815670286607309294252944725001082255121552329939783623265498827636492507304534929537668607450882077739177683309996247670206901696795276705539249237913593774345616490068469009305806318621888994031356453116281120859626955765582255323258914670736572785141802809909609177837938762217519211858573386668915798435402016838582212641841335369696816675607357952538834836026087547762403093759083219126023622686647571365489837997671924859546741517693806208986614640509598980546639574648111918490537180760001149760850533710833558915371441143209860307143869420230439205160637195455468539609816574514608433421432622770879745293893876791864828681617885491919603859769090468504439267724572312803164424449180749186162174277723655452191680651652766438328971010491063089809395422860804605188913938169793685332896517347452950336867915287573764856251554099856647932430662782327243468949505440257961850288200853131888508116362020785262587950392466234836936337633689578354686556859811591140402411591991832583612958826131883728476449697820804858422136383517206275172905731020302055430419572445182978093708289625905182228026257832826228715145545466368013681994253218359615918062783389763573271927533694504532907804503898101564723274924261740940853147942717773549142634329647549578190193801539376788902182208418973358990692737453851645614360259663199698794052934987691647690333949045566142120647956074415145705149389613145302651143287121834576499342328653660105783055131992056554569615746848346983184224231458626737094003773579975697580425887823502761073605779508728814478283107961207236053656211695129271846991377639559684806251117566291572113982616843865368224556231667019399425185226181456719679909348186836145874246857116740501983974035932776606253177420510502495100772944727967080391776227073473056076686576793046177450609390142293498608624132179617495872864126423011364910497178445605041658856260614271131829703959741990757128177571172451374107853006831184595723277105692888132464218345317654733655865558326066040991714836077351835088220961670091758380336636080011374835898257762283744823722818152162424583051241400600431939263694728431903460184865837283444999409583319342648423900337625026449101007494155062560730987165994093566193634522860363012537174618974912507150597106999784908280801427353367797288676589051198182063048340111167370927630644354326302620904042830550087410550495615243691716896475958393214641843962712475988640776962617094300450266358578712910737698122016428240148688636083489455688875147944413134589669161692037784409200154892835077282259540563691450677288920552359821927114692660041950172131978739422229879735368818397756606640351632359193057841509596033774051295988222913056785086374890836540350087454906989577577571172628715733891192024769631481203062889442626114025422529544920166620797871354908182850837760469464035021935585160784486997364291301203907469007337147378259306797379094515546250292402887778060561491551388895243086915106345294497153683554206490412425469569669268986796199943903996307919242157688908128857764459212364549533485264150668860111692195328817311142735682687409433389207416819236788339425856926900650278222360560241926130710746485498737015086804352000349280633317931260028349938135382568732573815575634435940588575375579099327913509921405934919086532225795693077706297818789319385449164190118965373774862659976352755512210871392911657124104867941610052993159419499069845132882320349575545728658535562877900321704279220420006122266922851756985479600695914867058388865305099043503894401587085127526919023321139191894756445856910633382787864661309165900925593926129750136912387121225021166545663169120638969777881787985300449084357867153174984144113302386513560096020675481302818903711411196408150049225957252252973909849507593513030562441635889713535585110346091283357890399616017454016933975990731462579467563962284159323358506372267029266317726151853863183769588963120264546708003656841958548438200005353508552301367127804207510236204833640079644082648310161645258916682015568938818754887707639683383907288854540642742891707994086291659275148976504324329392788506641048059112022966644626260074625164865220574418748826373768880344548572000466017507173238224894506978574331780228580484914053776901605041102957567921148956684454424551007640918852207919278133011171187241859140019473174529735346102876753252910274545843151389253928272108737407552739011840027197726340831454998276749079144236561494566807739385841815177152333118544816936314464701264992769466631944065826400155101306773256399136534546345130523818029905005266752559386506008154294549800704350991336436431581528663711379681948504582912905899007921900525900525590441774262195172064947824687880668833750452337468895043521799611337419591989072956272286586663688155510718577876575584302561316562339684963329877549751437348953202533463229293126188341623134251552219099242857696204294419590162654526440519723626080533240778905915960360199418763991544464308783266624393935211946298425186764018545980812677882001736996264101922719052918010722734401863354406077897947561825541666587432056511260091738370388458868371254366733179866991869142340670676119514044239919621711877189467954564347075915933058093579668045603282435806090926961144391040346767322073649387114869869506117391067370574321594407984857136095455531928419771961877287682583150467802055392685871847373007866925376904559373572185643467983853983614285570713759576270998972862352538808735470872434435704385626288145437090448150241777225140562355840660300275730304609780687242366869128260759790322049259329672319490365440208265823636131424927329674879372290651657112112920382672874944282510130978696217443937821721506368915632221642417010198518036843543930885044692778801220336749879038885350318631888392551674453981287158748057201610463489083715570868984974042891271903562236981363374729339977881401070951090712296966254250778293353707743108828640111864046286248389180208520732466686083896400244205968839267093398928940488735986944316354787744787219376483898709703075587866182212802435616627827423828253525563459731795566777033780074490507659539402663141501390337357251568685095480876779494552974813360910899663836199434345521307280983042413758266336863901552225556188938681286537946226474804826701853281738882187869261754331003802757401191698117912335672074426495681991410309093946832221318239140461173540421722637464754421769325174644357179167154890908914937421378172932160980807070849783745897202118876260948922522218875445452509063328497790731778310273328850337272910124223007799509610592764853348567278695352894186798063580934961765662223192243656498306081493459076244262747680716838365167180849286057121750667040914009223241919142478387765424461326525630869754957842639408326625048184370494907275775901154687844630075204315971495308542874741902895489902477100585007277936369540046853403156082783887415188288673781113987796354157471855214224420390972940287457167638684249024559149088721195126343489048651039383743190970888667533022510409658879732506364903998047701998111770819279833828125037303427977970966939299197475712373600620700657145116509559445491875333074656822534036262025863257325723536168472352768732445725209132280491376624653584927514389254216639698168928496611717120367999152815555040319770521160262900067929531810544033398633312815649659559010482547425220022542813019345747336465304803205625844731710629197016606933033042399275072117357298554468937804477622655829660292150345003884752911361074331241131682035622804041171936826082365734644651599309406690157878121840599811467321277876955568653597635474078431330397655237112457760520529586540617012696968817376176193343636082702869680281275583089529536066632524445468038487913980230130305875513289623477580223960814939691137849411242746160071535423623373392508571440769654067854001430305941041930231168478754672945405589190098450104944426604922330955771805345723468666856685265514312420614452217927105664163243431714572895337319061102974029107878399555755358479862833983686558830124079557675581568131560022838990001980214292060307486046405469959588284912872719686055820652124187047892867816875821291532821412220695649373194127871060941465405483152289050156413912914269886421666879305919260323417274508537489763058767021802312139966872007182321498421543283234543449796581531919724995402499888637062289863736938046750882885763492383180948760676069844692105400050860886604770011236706100529480695348226270413540714241015894216082828121708291297379437270315609523822546544010322638646421719303085376381456639261444494127649014124951934398461067961242323724719038424844130701575426773660296501875999255912804099393031871057316419737289872857766976865512791489025640184453247476845181490598161153023278579977066269895257345665192914475637419869335938922620685956111288517695927049942844238994125443189417512619665218541293008288906684997607643994093778506233214951455534992287496899321033329250799829204009145447845381560341055619548531149143044056934661951665751033308331872566895441175679863149700219065060690814135144953835658193279727505668500175516678479326260137503415864656576650959929447724490873592084083901713828911713606645778121785739433122783773548537998200612742683630355933759865141288070735792735661159002766863445658950333211206730503546063558351058964816975773098590019923090891932754548437467437614416050703021334308294164883724648320067932259139361526596423311595654776494682492194035529403226715094135346171539529196973373873263959179793958783194780589014661883598210628342267077884714597133452363600065408779935753783752907108174669247401761307100229934910200658031572428042488376835948308822748639896234038780288932231227899753878865330700290707118951581734108296654469738946083073206688811571056915399620650616438306271386953038508467118788174142783517150135046723095393074311971506890045636764109866465325228769371661531964346931420222103012248593910542780992384604855376078187988252635552444473115945614887964006852084945924424505757539000350564646558724814831862250830657998727016425686270057678585218637576646320679690589951649944660981698841844483788830709437791181434383137878861614042055076669404832420022050599224715124557004726236178582401485193598542873589448941579607815666727304118568135527580913373660959665340881379873601240696413302448981483977934248166194853433919263294108871058088985107006021155372437165818425092477322768880535620079157615065685401061530658538734962599709850818426528014859403250866284308449316396695940604315330286142386812558423899593320372691837426355029126250171918801250948705380925337623207257408966388200056227093706642732379273464100087845814250154134298529652557368940789786609337792550652752888183956388293974522682813689474437939944116565258325101537388340077759349955083281251381177244956534607105979773534202111811863111379421624992539175900226145114135023662723062619302877862670845631513721750347271806254907437288017457639150126029297362135341149261322441526153661171083402362089664083460435342874798699752153867172919803162135778982892651976948765819886317016451109875572119806946678540981729284346150858386526882139234800189064822165814431180558933486488614792668086150689339643789861354264320312135905498703819863622191478682691309442522898102726094339331550666490927107131990447419888790164470768023031057488690405417280865075554883594702120914662649267949370473408790950855388022857520057572395022952163647648555357680316471050591869055356925110531821128617625397710447916891674495106538119317365754159507882219656368377371440693889794358777927067726424394768481091804795810612386848773998331357826281403996017764021501146432451763917077531314328555824524647974331989225601799130019428857471164893247573062772079442096707301521278743994526056963776067582817986267726692505614397176510031191666163492994219506938184944119295172295212649116527662156799047833205768713633954612069349100183022187184898881058707682489694760973387339837793739536422308820491049702144786335451842284356333230786525398140159797937683949804533751411246776037768886248870082507558241050119177967688897775874025076569967996987990269485887546117971863724434808655928762135170821294515755879638993289109964147820289215014546601350864221055864466786965052832680383410315857690035655135581247130345960954976335134450786918988964972948846848095847415435298162024879443063918135730516694792442321716169485276979730933432448843491750376597954275403463103844823850544673987443094595180601867989682652502538129028898030999288258300623515774484836661109404294636806072392170086960417811387543749061002253007784573172476727504638406330746484559023954658908441319883474904555523464460822195628334972673099727428909519520053535746279818452736304246780128808458857700556281161343256160609671895266299300015844558571464708716063020856632138202937771700088300315264412364573627618531776650558481331391034167427898505727835581410875852007595604556721367733868915632191635141342608410058429450443684936020406187316962037893435170713983690159080772381077546055910212069150748489702884721466265010165671454094269141802206831688318386491471996609333150045501358888224377183301129061823035605628079929874187617324384334338515629150137055949763561969630579421481440671000717842823275943475843270279175557916566629173108541077000572594184877053721718760035622226948566624368721763683732077603847923679991767084412179121135336108400446193369756211777595835487985656590618686036773332660415098204125527863815138538941771772179522887031925449862808736027693417960490415602600069117388588301409226268811785200388818884662070766573059741533132689406859310970755122558825067026930839596374722204305759446337182894119253879671836846993290023706139531763965524629520601445618029826975739927475194539091423615216129930221806129759325144759568692167785225690109137206658399577153469233120421123967503563280409785119284956889937536522914961403891977527644796382691749602383064430984074755646273833154597741113916654729048247597303691511178408750702513715837297232034807139172785324731889525617758468502873767470287307395884382913397939502083795169737921602620605324405385722012007757060504613086954322035175965645122925181534241472398222497242256189234395984748683290130710156572318731323249636854449813141597349079909236479173366923661441424690710534998449853987528774906018982554247140525613431218983500265415804491511031389297923087960425050245768446691009422701013431728734513479526142172730317262397250143480109244640847784805744251626443665083191640372962869008222041336401665047166322794720246189832264276419803723161188208361068382499175346722374227628611789950996096884999029768315608050234170858918879916518647060520213736532513090152697775376684963013469479003473696630510215733505932510513052636366515810957508193044634649869485108163428270190091383094135611656307643482509334868243282094938476025623360322387739435364538681126647816765679282355833114041327722202095217133194147891551680756641679962090988087608930474786210274522639763019406163469666408848628034186759197551973521908377905751727177415780938614585196204779850488201172065655410855367511232511830940366775691415288611971206218332277062898617141279708584805315938615954293481131597328240223391599926718667756049835338493799262595137127869653112694172900483226968779942927402068469898957475305046622613081882583139052820895775211747872711891621565954073147261460200242118403769348393387191207086334260243075971804398796126866517861166302836967282237841432533805013739242357887124393308833352721443357272416642845310512740519015075223693945198728842263868758460496924664433132095228413430927505943009990132426248162928132512447060608200307027549858279088539352505644083548504065457258739209820876934962200538617818685179375575730730944935204903228205047475037179196920205378494209868814347819993027859717429222274439641336470398225001597245914647117227774963552040893238669548146724779997086718811490473156648427674422950433659115894233075456070921351659170625212439766005530877307245637772476575975052063051582944796747642883025927305842810350897258024974890174938614875217601261722254517117201739599008365310745693893691116439328607444305416418147414141188630009408018532152372192538644444098487010585477821457810819551779163172988400362055674189877728170017900104775408110441146658218801842929065682643284184140603024212392644833678469458453329992405314400453566411020374016946918022999110870780472032848909162738089309754965073847711265046092928123643183740975209174013288921597733552246817859628070361837182065693268317472972572250641719415057611535580079323784775944551712890418055217105474523491458698350231649547996873450830749455775646050998125050916029948169275394068754655453548729928050668174186191265340102210878282959631267450288236838900830018558742253212859254658716448700886132024714296296394551069861261214881415859001251652232192498615749529615018987517374693023234272725023480764939434838654589910847386693140996613948791023842164513273567053476579283946598758575158757815080231432445465013249527151135067052477529532298667395412758453537895757146871177826754330508560005312186387846538541060291395340294602799363507503024776184266087922554919027986300198966706095758219401557603103898456277189616867325652847196094902808308129653253616043965460544704281088501968712742837720336567376480657826934839774937102768963284122862837372872110513585489310541876001301443491180360022482278195908006779349344233544734076424568388045601641306877673908628830922425761542696390808133140631243361414101185768195031946635401965978337189948576053208290289512439034018967030389981569193819173097445953297146702457401459032235201641401948606652725549954744201366486673660825157508894440625029750017590951149751095332581078427159107755591692539322325493584376954617593808965096603690683559992150410317798100326583297219137577183750700609571993656945772718653150223440671724007137337718792365306629970318483836724077445519984842248307291046855738467126270360988443444004931101891055882897438924633748184072611991141071617851252278660055629909640441784826753070249557181091441298056668152654034168429595879051027423178139390352403394784016727585050056521683451324398980700256069721778092253988221431433101202149168913029195980688911087785470768349407147144902402286680213546946656632762729664826048028950887586643474060134103280741738154909179294058802113032805263640850501952168774491376626122840981405419961842143131842041875137735359588320387433544051926526267165556975136476781000894898736183608650397321396182471510865772593819114534044557881258297877644377308116293710896210302756684604860159377276978567930910278177633163246899184945153494238765459836399491830983921457084751997785123727893642300436941565563228740040332564377798878280385795728188088244166475946755914334065778865594697956733503289571819509399980627205993207946176637845846709324237144474586597685436156679919481570961642273837138583103288496305474674488796859608186791608487129270267708443491552932492479421881367320989190622109689180969230372774638861779709085732599558251848552741315624175896429054808116350210088761282226589430947534487987721033986630350663062888725820924251704923603886266148795147521512608059386839938448815349720098934472505005273996914355501555258676654070895367392063611807725173741218838462000924783156816460120062376633419383438994165536359706969944965530903762373467298284332671854236008573464254551438932115330668107510762398452251745235528583504410523178054483714350670411967655640389220936461487476982486123877308812256517149795870149004008914204276912933262459682784714511805544599470584303376034436364254403251664452451556205406605466944768026628814498990920732847604930845415627084006649801532843178664642711605184423305648773817981126101898246663018691456996355782410683968275886915584167251433865174206502208560084256667859113386147863269984971508571493486212187379940295003107034490152760842194237445714737582699950664934999977066287914172935845873351733501915999390691268193349229158474857918490622748529686643076380701587426021385339098081723720231813932599094709800305257803874813192619211593424144090428747431450573411327835996547312001908425933604197870038829025375486640537906586933693181734902771693139165200324704881608143158599690783136712106716340379663098027270915869431457741137067141973038544062005652183387165458216125585951297117135054047071899058579459629925154463884213708765004445968358852351303731119747564129722216076093947543881348681505981975871925375779629930714474934745730713457006284447896776242410672902411359932825243152051115541809986103915629018356694667933344333555107541287500108225721059066687631829005574337974950484286333081537253889002332888101509071361036159410432923824508187004684274840855389948979434090280967422627920494848168030018472990108502286897950987479228211868735481295886574770357009716135358900038472353925651281531722883960494493572935975505137536498578715414978969030132453312124010809971320138324742317722039388658157743855190913988837255107681547080598560446750964538111793860806878690675562728168731356799438155596582422107675689872486192230106054226589078591738850495904730446817644939569012109952517580823038310497286159291882317303456071976886513585930587384661411135748405954452726568079398602127319175449233355663208818094899871822961416231227418040623053319131727735674835588792906744153336223324792903637300170981991932445203628235945174105245839257527242298854599793066702682354926279771669434032330348534692119480038871309952615244702440693251472018792883760690652557516915144565670688776242443143475039120546600202654228371778678327564907049845814334329079412254970845349733143961383079375819804947540573784930412497663318800146698784373106728186451425477870664445451956387068124430643956341844230997536205691669538004462752814670840984758446189037432581368792871618419720503856894228559832495193851783707197389886876068056152593498055476418303529244818704869918618174509752695635817887983026995032364708960200405648014558647516588408008167991161681626199433805516569410848139249785634230610092770295245920314023204855461874836628816758637372351783963663102165833746291402641096252800797086781846863620404451735293916053514564304273258577246022527317348023323049535981360390362198302714355633270714983523505892067967444129298242403691152245388488514466236656710655085593148903109539388462373448733710070799972295285629922285451247362808869723314963394606661480483122171150299895042639442433040104172323854911760036963709471713894102507065645034883811001355044606457260530721983007323250652182918406252145040475189236903543841051106322373046792367342598862791803950938742276611647133228591800990969808117532556664987736946355941698458341294729497796080535759709258789892563636831278078355336092063370286345298451399237550280394822570466230718807805414677560231705574167105669376990248431759781818866718197632279397724916447568583714652678795913748468089127312455424829425511086849130509072555714941867878956289591219315966719605488274318401570309313615609703068073254195656784793860490203873925846773812886740165630355406265989306698059733104370494592900514483016825609065341586239930234953276940287516282927935827431365711577341962730179056154440670642540481550038826142313492964585905480219956654492326931293127022737063941914168500186408701499738655954489266317157541305589568628399245819581439489166115287657477984733146623138033107603489323438220312287164370368392675093629543701975786742050498104530452352240374871452476706510178044003571000794909060870029880628331990637278354088049402995968068042711956399942442844037410097069497555123146587712309159152902199329154007904862273369412334024307843146017646424688619151490278542210944896571539799345434310309765417554614355458345335579215353479722936290281461286553939063215876017076045765199083749276752592911797105060845846618807802485152305614936557661071852241920855052009191246974248904992859353019239657181597466286892725863721551142445695990918777730703450348952481879507638886187071496170701502800927954893625143624257213847570081477795617235283659442010262055485402999884482569394734674276873769484035401531351973804653419307165860121606608497367335934757393899675256673260696754592786735615192145154004467652172312649952379552847463447521195089561573838581633292227301840198814245653539182827420368414521998322448949846056910402490702261372329610962020438051226239171659723970034242872406528510037134029710621284734635605348707310972481617473404850101786513960192605968140606003842699600697935444744712597061862703884524458642995837076591350589493692119144248312731366067925314260897142005204066262675381043325206389683985793105213190817102119106459744015615657867721709706868667600439141962022969691320230159817567575597522239617812357431325190884292787698460793359963975882683176428555249076708486919616977976379938651953107302431931146490079561310834192423729161257685281894826515548738834935783345239041144320940734672784463816243936576018030006398531317765279950125210532292602852981311732894312179879650370822460013535101220691315962866832030987188582812046461960581112954149234490671330633110844493980773573542110557024430231408885996568401383660077397313657627469515173038725066288583569586397631019172823701779643584118582298992529152644875762193465260889407224221274662470659552746312894815800402864289757739138784578001523800994642046611809916300768073771334447128955672320498487731773632916474446738403410657042144144492855343939197809450739200600009946616382206091205498416347843396121792050329987954498374338674362845560262152971732358132954964376774746070152972395725738412161599348943599092310200965270965001076514260107485287304239041552282700157881422175950830576810592312361012353833384761837636966834369017176827461142190062342237363107506910748819686153955131694561685511460524707145299714320393478172470844759423423267762325619016459543736875346629869552704670628621144729074375752201265126769420800574570107232246243074307536333872355021220984046645361624483201993715621825507082674690366279104301022213874969932463473592116667545012163568613525395294920651152221557934991572583841828602117194958957627447372094732342759440678089237352391910510889597625039251119407903064153735188945890970619996191996753583899065953049368285498918404441446964597574513292166686592456914139070220041766673902300749851234485440915080256088153896882741416668238754270709830497318566980079960468901875932644516610291307354436088509272703409416202839663479306080338641517253155818349278177396104876280969683778775650405417315791407164185006182486788809913430979654581379640652028179840489383284856136310405752104283125628728798210385846763481712510072061935322444623262897959523619986881139118050405811969740208816806375781422512224165907149084721310278479885525818330252033351550421477794092494480538196561023022921971468371834716564221768607595381338310840867541522602557906886236718862597833412715191852661560696222059151874759622416445172353963179330693406887631539322730985083604711859629445281083438305050148435440471059898148283074830879868284742124593088907711591912221053711594999279174947242327453005447082444435726164964978911641535061728070122773333360539972578749427098427223388253140435235796323683330207788298116773112451475950969025161304909118709116332466422966821965657589728099932557159552638440423776897803436191405365104483970562152077559588675791160675809582781123047866428148853672502811049409936054007957304590315874810713192030054005193989623403643104890903619621869548068631755561043915220017294156551589803169647353034324369971478268895961015572617328920027296143309199730339971817208829658270285673127824779839057219444359076285426182528262268195924179229330786014318322599382005651689170141369707518429181964118307641665890386815506645096280157672512698639544475950649882606278005153855954964236182494483968985049120205775765437670119636145313325522135512854495532327512270538310440159598962650955950339109439965392012892085810277166856871146595517728007927769356003624802319765831486738694648536407400287733929486242790783111168743910534289497039961359639973948851889250287598133686836592299109773943070083433757653831377202607037175302026027745295427088197367744551396242288155716524811580940677160801524405577243170888204953720269132728968976470930594685771899437582776414307251130127487242815629069818798158490648811665159128265377972623617685888799782111544342463125382560539912827481642898301122486192294377567640241605286903209058859579811390804429773289168700616642888630173930144647208989831741970914078973405375307027874339081248908934967323695734920273773035629258849014599272390308307154143427894471603811662930364435887219341285576764897524509731910494779061002623399391354057560888375922063290224515551439424000968380510124168860705204655947929462081531744857481850407816422972377677535613116596488686242819715504989036398413434138288757220937005911617414187778001891471363156838858522672774798552531446240954236045253401103920474957102599161770181444034031413627491540568675413201803291607111451847674667382573334525234303209398502008377611578846362280854035252807423490702177981795924869745966560067288804678710103081969776727442522419269350414808044333190133003652032579480592445159401734885451730536464354794711267275396172528711099734037555247400794727908100986043147511075294448273500839335644189292685208084266210053721148949172633634685689198074433133374684698889721775465388008053322913338444902798315444832584857209209236673055158585690702454966641105188914761169725035669026316749571997364383524872464842863437444401764935126178982140747466360603008749967837804255070785538088523501293807785883945739628273365757442237925874584976647087645003447840134345582165830597263092849681617829050951176475784824246767514894039478703962897364462739558373931569268342560906768679129651000112631741764560169826203333941201511783676559058134505303794428570436383193929024025539533812789267559247661796687358977669794783074826626902749856479719371906325234266032220167840935048224893610723688916400813455610003596135876222970303377471015042508519759331833268325576308706546718129615751563539817190830852202535908068505416243607017857790655386013923606949946449545910743416596471843460918538259151686584653352706150604263993474191267880833928119441095413269457758521580015037598062187737897480735723329481228391084403287893453961344253023056349463029716981494641396449928331048490175015021373861174922549969678472661347650756326040610259235889730679699478767770620672434707107565737950864052204479886804330245459410039794674807940109764701637804975274211518083865493736903952455391439013015124983420622569213819552832663262567536071896468800384799472067773177737720184951574328874947005417876500867779970664770175994322969190851454073865639800665233340140598914130458431491897588859520279826103523308564508937088309694311420223030338977071975335304367248298674532238690768061280911006605743414780787795315729349943168848577231759871965088625818290858352801278744674251374108892058540290441243725685892283888902151652413108118851455954576614254465815546482998261212328560748046054082686585497605555643796638762180950538508700210075261745494085011812183450083690053887696531832638701702866951134254839117072474873606860575295630521966272319031535348050548604077317955043202041543819277233469830701775647433068121762508115097327721554089886453196848687722381592131363233476302197848057398100332245166772295140392000229228488084432274996501665328303473472502871950090350295619858321359796185986167893664795733551023895501108837624163963889823860092037122875723124214463286070298037069450101060040303279298129244799665746251049154136886143598108952054955567214977014727621037256996127799362054933046025939920563068405930059781182838502921664714012046423824811098791069996549755361394284269920319560539090444301118328770089022661195046547917734294181165492919537871809967249943126798398731195911186623584843083921461241348742363120369987960358156423513346280058305094409386569543677249653891421833998406963306891674813611176520096377760901342667276500137953691319761091013938546591890859712883175170006207584915146687568404083473095225624634272188748243648295220125040985972293032691899209832245202897882532520715738793955724067379318946329035683225062821485688945307612091647662605130513802634349690393056963130953841603517762478847896663953523338880257353001039086508832166742990100951810775545138906328203466324699605788789399144524549929486539880283057783788548166987513411800329293335602703735346370152360520738408726735199991825984452185502182783025370914790380677933170285636735297509510204510651851624813273366203330075424118264361287309253379963198979520306759719682646308873294132235619367647384975072485409759002620090238252358808788098921507629891612969867929093809950054824447243485929122191485841132924827883842061622456645560948663825141661989815905681095275336107146139403304094099833305418000383843338591401215394955058273098092711121297994626948753606293209909888177597412388175351209735193305013194679585024677298920436414636890634118893895053625540238957996380487239566359000866290384167573877062648748680933533841634230520135913894213638459789267342822988288293478201950097904993048774644292995309026351240546289312039142989687305416117237557242521111554303485265857901101201651513561905777211519568194287129514725462854955750376095358566645750514992590584636804381487702508361291055050110043571935577992853827580693466648874506325147095999807230106568529926042830220811403339039221209087263644665481515991351527580227556375940090189764029231796315068297395612249739516585857063217741930175906053760872690789078985321362909379088044763587097328954470228091086271933447706845692912139041456378241045528602300578878483342829343438702484823187514562399051541357917540316272991939365366718341011341657206950681648237683597804845617744403451390791423339686915262732527747127361534714788745995672380026117408988929237925956178704012051958279334294054059054726784360233515026407316442301369470043980100168117898124002251468033821049151088225668151267694028410762953038494660111701534448467089359123591904640051477262998867868480943433054730102032344940893343780823311101898968115000686535574267135097767603594227810468018776253281332704285921554818687356360826617383395321908021881090937852336934750739436771190034452046892026593937393433898180684693079784265654445548215441071814895689267643708760084840835026677627894061224746607534209467563685114160707848188750901469555432884899030455306294829529225598563111268188711631797274918822204849277748047515316699718546397942977200844543741386139368446678525155621099004436072347536230881078627898400608935402205914863665006592198683337535851701081942189426451288801334972637682631630929545474200798977479255661808236103494539777114331792399623730260149920690804635515439171160819407728841521333485692764472829522388215715595123382376438817000188324351010355544349045437946217723220980218244380511121861604029744762756947203891395968891022880869318943844835498767156387582119297857100834926738990455279768292320842880226415490596597741109408068220882962740422592770731140762025212416062401637906291989282107674924181665123235676226205502184182193744066580695092718866998420344461971984843542894229364582306902908986557435710138446038603460488799961003491253550846996931607837268262562283205477468432329722521436789919238560285528493021625932420420307065299168260463442013537218073459410125641190460969637189120140448436308528903519975390234920123653797785005152704158386212708418311177357945761385540705752486876063054121863801099708473001141712164435811932854076385092245653695605489779246670508265333371407565877503766514330055524368317144106876428942738146237107529832370239315657263435314511161670951485490753930154137193320201343672881026225037071309081975271137332298216167131628333667988690854925121789985121603912027515757167533720458772318737597026911888705748892581193350612842170657029309489515248508701444491099071649173970000445385660669703425273545748843936160577869667744686016382738098174669326156240825459709200400166188978325231816449010397674467538798803737763324709262833220684305676310025883875328079073599511379998675115321053054379264839066161127455964602901972677325086737781001865763651337309364188987921627726462025405024280454477745734972187711185774763108057548977431910735224315818907067297989115747051592795552470770050177956836183128544446815210949373793441241722343043045160296784189068406274900252203686581044650353155860070998727796811492454607541653174024686664762519440015349368670625622707383631788135210520356527679371668819339002803392578269540794888538772376746936878732085881750723344604962413778853163390965628814428328551315857764465706446440051713339335493481164732568759838126029946982117330926610201015828464055187134638872762526468189462128264795507658652707451977419480986694837762285934008243047142738049604000762097522880145692832231165596416078926886397797642724631846923963069193922221492401203318532330201589653110373452626343112583022872557655368516107965246148294646072185187265793050306930580914448786473083594509344518334371609729465847208324773075012838150135183303038583294902576639537918716339833337102193993917784039325937101821281791597136167133306287737573089994862522145242693869449925364682656377651915857477575124373177420175562516806043734798715135704773859747311188796046712601383297130090665514553033083640519901423981041450721130669601447471512817166270734070266070586261418092496775624347703932040040861496681438011901231928059334530004514831465331102458866916585905641013087993120514045739348880330377755767328110882585847853055964601287451369965048666987412364460034379204217546432438549737391827429719751149279325726690020702342765822412189846022763145035419174318616211749964919112146082363014200320354980456422859776692521288972714961050168259721188999588884953949199103342525958049088965542009159646841853131875080120226330789283908433395381681625649994382378867338341725600340259931826805957224179672566539619263537515419237604178823993318254692694889886226786075701314438289795881319907300768815457804106790154408760935881572488749588238186398874842475346769933655397355469480439643119132880589776779085946870216566494187652394365709879402614108594904235596666517027374071154170791891814554272089888049623064857020626690528015354441195586138333500396997890162266002038584109860719272050243965150643063793431536462546723480917855459906117443618661700316628635605022880086833253600849629150706929636183522568301555984073434630297182489577781155473024884648336730837272521499514009054937582042005417774146115108628296376777912493472497022752607326171253688992594829856410503112175754787364937893799653321998320381004740858058671809505752322341806541017489331306407171204583972518964689028269511859716889620194641715399016522209788550163047072989906714958643553197947901167230625381430885539617132727557300284555395218377532259134673077711128750274454370488236220932486252791541124300910879633808724278901226916775948504814296391319837889302260222672870225895704971778525580874907270173329948632541721748781322685962800112861291679407064810554305551602275668700925716854661981044888675670598738082479535049655670429262348485155236874352833968005716047774564485241460148020844641472650430308989905277352051382360186024272032833966504603044121452304738021925337601893012825066655395756064570207490274136212461649189565028992848426996229624530691659715697829594637246038983609102241464464813143881012730442300289823621269218758993783712810522562176898174894754758377959965111708043559089196428632498775809875586955379468941391468215775271818896912409613856482618643940921352100237128724610719685456194639517680673407438706775446200272891026506662368271083435756537426210794902618913531107489768897717706541125775318425473590599096410950714851506627501250213114309088875775759638373315033745038404852966473608202214963334964409950947340252073554903007714897242985920927150944859828789458451138820797887173620156300687385819700930579649546925450448275579522897776905190945347596794301870294712615506273029434518253900871359480616280405210529712426128913050411804264031243386676350825985297342343567282009665713805238137231533184505362820574243867762861418176748533672569265599813877458178300642224967905964057744578938639158711618342103148567799958888164632943882505460714916290947546230720026076994686103005681218992293759485720821881822480432218310993703178484530564288113828102857753834039641940863922588282189646406115504968905729782985248111079733900213503261615109062467905889007208277384952185593406958467445966888872296526599245677363028721341481779986748730834526979017178729511897645293620067802537097649541069938832144644958107116606721943024753352094859008073855383795840047575506990279777316444048402488400962327632924477630373098935801146082363724650366010981943098730134650210985130531589039315703402016395721276482621695325936775342322989079364118689276370978646240003029708391375278341109996930205660205794749319211517804510020232679476153648260371069579446238025692019508568012921256135186538165526499445971519852838800471816495502413142357217011309783223788293694081709639535243718451117372628315850025106035618141117353020943619791446501579417280203666726773605857223718656805462869804883730426493970544870176509797462524898144535096038767200499882493322083578023428206719708306261169072661341957202871441842495386658908841359681216570992703624222163176593174220974604309847663109030844618583979115788605473598958853368096428742661110401909650826327210001664049467389367690818018871610727929887549479523512969303915208437448678960494426816507619243865718305972428703136419007257079559515999536940479924141840677217436050613865082589701428585515284381312157838580343593131528767753210859354517746259639874264465334356607491708112449072040130868439884639307017212800485217282462830417210131637886512413026933544303154278074714845808080717268984526745450398262851513796704750399349063930906006850508016179073818343160802834489648807091369215665017899147149557428957364855557717604672883144214047155632045206841814349475079105046116359824207944997291529460526714582685193570380288165308414184142034727791910768072133912218832914969090826528317040196510826718224708477495205335565318629069584276696285091127810537458920903738716322731247218244468387723607464082954852531277673415343574547505177593416598172618342786500177717323460310791259021699531076933592795461350329936826427290872616748599990600386756290928702974456350121811698012800290185010596063489642199936283960069784902895259338775407835903544195735364750672206716135974288694317182155898208705058458861868595291253805694782053785499721650150380856317025232906300928386612675413277913754040129741064103834896791920839578311105191811670044326699533668964168679090863379924021172184398969796331247917792985266665972138556892157295580571510314965541410430035826281474952008108224676169846275916250367440398800521426905245932486477108594613546092227751572567745677709201470841637779996757669862890820974485610053159814530184272693159472833401683432820066051087791278986664651994711904574533813154050276574709691183850983247991708640198077818983927460678499034305335420287129806442191119394048366233437241256583348849036386917546772085848174067171714172318936237660434817792680342402206021715202916875527392675202127884824148069417795232403512806918688531544109548898801989418919002259350731570851240478478020406994137232553979615860228909604621293461763257548923157834796410062712694616028412431170039419434707189781462986415558839883693492209006071178548875811592780869993820458155116064579671137825962520747270601508147597827463391307048945515303623261417498952615501659207297239742939633099019843247937009397504756990763890905246064990803197863402831784020200099065867804732854852103790746066105379968615044128167408576721996374868392260618917596460917479262107741102445742500123441427147984599882307296872219077176825059750663820889100906259638440857710306248161928063930507089657136676226505268250626729571146804529841447681883796927109889199493095808637384365495878086523038515035916008685158222999463267231310703702173891011507448246444067650123253386379287076097976530639291714045344904518959252307182525623921197024207609569396864256825858514092713496229460185760334686411619297489087924083185821687009769760764254687184885117881613576775553661094468169257486055417187208897265073896852976710898007177017421702685349008495398909896865280196466906718130569856990661855795055013938191370869684567944372669409095817787568503857942270478842909493172292648722433005609500487314209067690756702826250179361363203547691687373557027500376541371545056056482057969815526069524111363794158332063637640133431648189523578683632260225197749163602192082096337260262909305593527636640015869934548804601699982241057042844496733273167662776457289292661636832447458245038769906910121086432206262531168910459924516954374399954201574526433631168953250894636237420120286349163349100622476333520299637934085267267383875655729242256415215780664636095355335507649893566149563458217018807593250180213379497707718453878907556671756824518912192623181152692405059648850878760772824299680004937538581004712023358597479728172812330646405332381235137888512658136283109583910258464028862926891822106978682578404014527082213723829864458778059903927251523393056765686144632971282949741643391188938866184136543498345226756380834564555719228036469125559784832967310401740310584740645765224006367864671862580333814680836802724064730783303007767200112021738136916631806329878226098706405253877448888541446021119163487936131823580183845545501136755136828951672315201685827381412326430154330357297480801165724074715069938987051992894873244068528252210440687712129285333094959776489301883020808906112808003176613440538737252779228491736436921817382859373606902526885043190317388582245272961465880237600671475713886213512291385924536209878412440490950587744567764580044166278546248204028248541907351160901200256915200954340695820195869878108571077403094764059990001317925075054410004461953957286656549436778403481889759200983933364210277324815071621739521963737948280871028163179721430987991356256627435242648987326007655549415437528816222220115285165416578788882036925618766267448171142990759470478563733585935404531511862284564035297771060088519504328767242660476397617651967306773965616903232371013001787511932096363977861540778142146273981151461083037874201282925612578131759325412394184841376471377728282000787542714170715096027861960277393907851476164261399654362490301644326379671151942092320860943151276659291795754427969182935782912920008156256200109862475345824527042686576470060704186338016093983893641987318471164827236543925148460929261398830918355645299723297602443634516071563813708855998486670894372644978497752351916714725803875611761909200214575788725428641907548208626163246060879458868405085337104645807956492583694195500106655172234736590831872132813904140798131149799105427637009909051747004358421579096906302375933245982191126087175641502430297243689682279722986575735774700662996175623229418617766058427261716407540186305746155292266136940195628287374555392681468991171653900909059226020889281740440955972189403907932664525633407063509999803064143437122146402459451924972105003191331637593620856332771574220397561864908423223925560667416226145672610444923903459536020050415608069389776480390775347327349754659674424772410329136585184518881947350186634660674026812000731482793392690846680560414790801053789225062342155891526630816102241879526679156628660395272654798931149617690882002969602507986816932305995395412768080242213086758381197107662363051005531420176473769842699068662279697768251941118932287784054406717215464285676710166721619423543789961948127838701491294282720382355387482937573561479946574761418887946858562660802916854538488854578779500300705907134734823785098343464182457273397907181310706672895770689381470172655012475382313254798789516876362649870430236228176122342362428828242448104300020568797041307377969663454975111324461937137907238775196744131389265644227562397020141635940708707287505149199319791288304767249801322775773335926975801320930137990977136325400009235881016662363953530265873663359685458606032351662697798418137091771868462408937138447933159598669599254594402717077069787172171718751541206485969902465631895999681912846298383813910220347004529749155914300196725594891776160713089909809078540565943553414341880737587891686872604552307374733669593843099686931167816852858187351155633407652020957665842350768320267941121990774354025859125728783455305432364449764693016013217545404696240260104559159939033141338379402379012107864763285903138368446472348868311206898267497326834155647787791352782780058503262507543522582078837808730873810132993901285480271128266602830791413726976027546108812526460813842995799697652137923633277023175539261435624638473037844471451938965742833411365239158912054844645690136856797446103141054022810313851021142099309817777105092575473785062986759674085028524870599877164603614637400805111670984028835790219809036184222839416955794768215675062413120305975484046416300099826927528906255808833284709253248838772283155361990976564754937768611378899455498070339807196722137835299254803324564638710344906286995890414293864299029305612474553658017644600102637550423083965367151983710535267900851919517937925112395908632390163685116013059895094743306362360730035919985250621078373069984962089547646778119949960573960389012453455526486198660317662154068295827735582532547148111781454398112768298714490945255918697559246941515211585845148711992676799979367083078822320923160479451812688950955876372307016185242824818578917367492405885404355293848642082850854257501168705177177416941269410839496604737124558759500071269911780990628593082377343750952776856452846746215343949925773474674663421009637596324888413697041614877688761955594526181344344055702967438594739664412950295359780281950641512683554782879172340399679042380013377827887173698659817428435398259408811845740466387648839735839320993158668709391787315470957301955595684598691088221941885832417109294091361717677153603208296651297821530083742740475410095469891422345540675020849255091658493337189900069438378182568667407371389477107463302119938034532900789103201663012897649320521506691640221908292955802602408068192641313220809134690808875025185705510481219566782794010994547547721367300567543603121666799592238745106596225250203527658839517776676596306835346013361219769909598128275175289296444832652223093917744589174681705703740489382673977010759415691337246078175210321768060037861227360652397972102933024896457646480300141653030026450081087090851417982926704910199956620525805883706873789825954527277254480191320002887457644768026878910256881393005351845463003173770481056644894036841997337704319065660245269136360914155138997624384229449418614981309970258396149453650124712163295908845206515369025341933505904465640774357575260506115389862937043407834895406459168376116465782147596616318644020899400386822029553896486928267627288073666487291089711855425139721612232484079388963591571436369895411915372348016970073238194856005237862210130359417922607879906789375946444358078294377961808838277590017772767369666223113257368078662315967696865890316765343213359580577193064656793494674699805915422447066131659704919359984667442176335587872202712813466011599004562893033558707656579278044775165521228788754327813791265896205060759332182796695382380258040990026697480392034625724077945478522795399687610567664935490585198626192883759399797195368842836797706672919139117163506693008932366835310741616779424795518644034411948571918247209996930821115746559940279299696490119471527965956226801790155026976956215643982735711214883460798219958389034423173905986126243846441159841368683489843596518645465515919473942668291861164396973212235887470890285556530952635193593593725113024707112636185001941860390125164756165498302089368093696196300817758706277487885211586332325429957685166767927981011832169604092560037660301171721512581274895635989581833569819559960366604560631987495680097292935860009892439867477791364178651307843610322232149175785550384739428373555001943345665679763948681010127787892950635993837516238110148487419672140086192510716804317887943698647526377443223727178670754015569324512772186402372525802809913682011862418822766945959851782398850054174959651912268803748219594649084446522478831811140965487788848596512210324254261108834869066546114178470708111205469586267276687442744267315034309388843646656256234528701556143224731563244969856076001674774800957662506833593042601933694942307454477958096210933324586517552583918349946181358309012806818912014441010512943950197763962011332323457213229419544497831268286192112426402802261229359875727339959385168507412896356252100936678001114203274810854365028452750836587081739309631142298299327892971429748017372528105033622694529256034354702726382756670697521113457915857113505825134631410407022759451642767889669752242468369880129461622536851969395390554411830117227955481778710431066027545673725224498567772905957038119433233103864231145077473860146669504871141240163522103924191671362207336202911673712399350575516031785671781505447530842793377317228787141586465420017280813729073519021274321990655604040072838513268652741369191498860989150350601998277232621071461744854305432294966238644928072452559137844344662679742810899685302911785533141694746744599253707735636142728290222649653563564137992850325803492828936144153092925201214713221987623249792069824958764063087507761925309804595666678941192505012079412628285554949906332727412079096656743324288710407132617457420379347924270287564126359270107440832023895670917484291722312711194948551813065715800637742644415936930502536531623832330864489954533876521460152740456735784176302097714570612130684915895375858397338582099372323492219567032419593239788948159235048881210824179044697951537221096941885693198984951141822895324756489677829554132702056058397681509325935848729957892609574645100831788292787112436448094241049007071838301259579574168361057781319254976750892484097764403701877281791981551485690701293825039237796760636482791225101656069760933544799780326515767581387204306211114329517324527365774726595293790382549765098058126102117265713292665802488248924209132168838487764982345194241776994997248659040051961354273620989663478147034297909455337187096862307117099624057644637634758206790394227720540371248519214762703167754100024317447809476456295719994260109891437330675495193900522743449616676832063385387718448788793850164963531110041627510189316667581273979262387989467577981374247479818768267739069073968809575757863373291220292963488526756905505334306095990780992782986197775347104026965252181957261125538147987069091603420236951344100135033178373291537418611087557093235230419388455169747256595675823979908786901567421800068523579013916880533603259893446118948733602172648283230280351571669588304919325102410339139326481651418135173872878010854142912227615277068105964118208575282378890790728668842433283462827238480332073678350000269763659518627308267863552359478410733424077480741544806685936920292876844692986379842091580828162693166702524608398976002230341316234897871394573094728086626389697543950562068450982643548528061879176332016410489285644280157682200276469266551719726563167387570172403303224325343174666406384203357291823201784649099626507143264252560817391487798431164129126322651039409453604214440893347219986927029064319588417346166276466669336182984864450630586314562368721603409729719089357227543203653038071589796689184084022174349784088006182034210684254073645672257007255574847444906725233777262904651698827871664896160554121705676858981241741250120901875449632447215836050644197715879831592109320659881413954696149753028661257434893020198227105130393861706380760020810315434031678774755099525734225863944930361185871144321401494711625207504190344735654945431103694309715178121719720183062743645314157973342639131885173825550882061450736064679361174080346141018251600427217091885402123282355636895643935063977165970379543303383282230846604845014410764902905170850191762295163605264142980098578964693222721167838285739241338946720965250881847802593170630561832670823603683024337628454188426991904559828214600607902687237256610981911887680513431318745279895632131988741226071945522983704509504226021522848716505735752054332101333108198411528309840223361287653896746627133636405353818581617702337932751714511579044554699214083106348337160803751605026031246591137232147023440966024346202958154965394420415826491843355976518942399960985289163288960671604332795478639789039086289696218062740020620025628590347496619097536189408992147767959558545050238370406860898848542656163744416513432493404696682805727240839131514746590737759960737989916176290147317565192566113730969884690019199234891623766556976473626089980106992924250317395966092154263495822708498802868973746219884103173321170230739588400377652106788115709964497781178983331378200740699900394462151760557651962426476078671475550271485562740277703419401125735618032705113415960093654570438599028567590898291701864230832107309314873397181318359564597071811578395118400305663147250695509315967019587104209261782338274024315501485825140013323698062922827167924151268179733722091594912069326542611963939781206171093333951722820192146616614603881749341928170966556005729484437998412862873912506614629800987313812623873150161818525898476600826871309858932585416729059444360840601348279891378884749341138361064819982881052930244217957870325676929571597145560562005217129269175960273759420858920668678833475114959699392059948413785565918704300374623973062842191945811928516151344181084102964624904926426590804437606784251632330915851217480685309638579568706777736947272792307294570959719073484954575736948897774474464201457209038731773270024219259498467095518162783719507375709644807775524648251376763482428750435266303682634481982733752949927279548585814303325035529395213701329496085483883841877881414473784098507091504634370671646120106228542334810881338474358858740538328015835604358874128545654249602021431181997036276199894794029753130915293930301113792682349674057457614438715795558155011639025941299195704641372957789506342827897378406158313072596430953842573197575102242504692088389294946679579196122126648392062309936506646595270566673703857054968342734297588295037987726026961386275314919575843739384373019644931823255899758939115345902568039401723771038773230275561877927523791866989765502594435837546013150486208848937781771286585715288480684881345791159984913827447355579499327576715670596601385877701760077535533533956974394746897138786702816055472717014733121076793543616697938052248320659392979683512100022382021888942693090204153277421914839322253385159670468519832114982096416931645001926660251115652835487111050408736621688671086255552880336182781884594237790011475462515391091001576092615247668048908595549861248803411195672479204477628593299372650945686814664804311863211390498269710946090609677200112116752256073182289725544623967289994105904427148839310590159229602384447206810081729915819670613420236028739139072142923308849017295569455652163459962231814019474905943335799925602834890337105325712718436332968323995873255716861165174224221205697336976202323996113839783066083566095631906948635026392468640912253885472879146864195430640963152199222162454519835798342462257736895294384017958782945810894930577883316824119461515372217763834547036407392349924471084812606665567545625064715931024510802663281376456786060027435512760645289124898734270567907271048479881122594493003050860804128965638883137820746129371477832168275135153258153590095973412774312690049446331396277368542094065556699360734103463656499146132434197179197570294881000245403321504887771680595286811912115617471998134330448548732540352022216268779679969784538139201001623989213997335392705081935379073165819943330123574155438474257852051846977054764637501964729902433561811553443894367970800721812452173177888267247378440517363912604762192572588495868047989402346565579012399081869320189947899666704468180475200637095767092138277168130696024775719434554048504602626321643437604451730791868103755191544678302908919716422556401020854605552430118067839743906176299117285320369694242658286380751442198991923736560818867734062302412253908997610134924311486386214993648227089480769315936371398364330461479487750990672966580758902487193155866907629383973507971765536285671584448250465451763767936099264380089043709631299696223162729016088422842924665145533354767200582348483244643976878039692445643744306276115988195848341415323558139671352170135977994485369014767229457701655726862076920397539355330124236925150211209694074592725344478321389989860829503055600778015804424527474469797232975372254427468551411475948258527862657106522570857011718909375216411962469560433501265166160505283004732166123178324982209604279216317143936943524256030894755706104089904621151051013016101740460176243118788005485760400961074478332531805375564916141978497785106453540592657974788570884842445021915097805042575788113537390607637263247811082023223736082566076182925619087772726431523391529321053942377196130144660760326500874613266992932176042605157423215728842000449548170289139916319702033475450862014946578584178726346615677027506164434816147092541796717770457255439858856642968844571420981733928425328820974257589838715962363277549832026548369559751288756006823070527262480172676861402205693121840244074074798691440704660792091364134860143845690263112902549328615708284697425698333581924392694688640797613532402044466599047301428510340930807360090016269005102383791598620480929641576450824266317158738001013617501182189791852748473534408590747317588540183886473180060827541165529452136261182388001699344064953155156921103972205561848940878133156974264759157735284541246921564242875681214531088500091631469566859817204167318301789370724788987042087745049704568014369855678615629488813537424451372810950550771779468310240498797604935187120649983100989029400146724295754265355424857295302535594501930072111427999421572072424221704558203472538899710269316823387411110806004892276812825533490770750620183438169285600683652892140787805437986516321071274116411316834212756787384787420213631702937278828016748924092987839571135221680302815151551084481995615385039925107079971168121959160729271209505662634761586855726692604217278058169586253302209176414495250325558253161522611476870688713798977343353687972166206640788048419372590440327772140424047427200873868424399432231321969537715696520368110843253149220677008003415967652438583132834973522448060072493899405853685820466989780166900594846090100428753513106322164124303103702046177950427585046126256478459601112067364750969275554862973023479305474088743979376532269741125468411572667524878028546770810581187253462335589770959728712829431534880799945372082623387133294507377399051709241264800459536937002872116574244081270851547451938614156916614825602128252821925559564337485937976290663950559026201019470693535652842998803356840478868656447329088616920415113264713779747155340301686566899003904170908428746671791917715000048317016550841722193443350885660551982388847769993235668666619876500592313103532020637718345738693136940836232009268797072914074637559607874759165741484102450538547756466688899367649192775653688451478390199084617816254341341601839069092658135239184817326146106001492172804092026097081794280456012419344188984062126708568004531653036004563981019697107711139747889595089226580477238159630329217251920988378448072563516963805281305215475014541546099151576478238690241859907906490977050764898827148244051835139747433943860770005183637036305863738646569973075477063092931693971364004809855128545707249703516185503424909567984865194019015228563049437104419671430361280399414225860911214702428946914365991118456598379321823183253229487486955829292026658589563500177924643624637762476094394100365727257950940280512133427699386135593654591637305181022896380678136052082049885154022132803506999186335994624434670218020718969411778106841509834062752646211657801781126697576327914210965852832254674703105855287864693397313229806057493448383470107826804505904565664141222504067361954412746077799766807700978445550288549203351393824557429912373871177516197821658750190737527420401803269471202179890441763980516504656939370009319918387338895081501317654351079434215511737102752441130918479851092021905273953862699749769363697312969940892269388659885565482394614713859053695278424662799435203931979807469214236526664983365750742847090954982731175761527331397415099695004674218623345727283860499752907815177424301826764459140493591073154282125037006705192251274415435565922696447213494495501902469756945208247372890322931039896495141397634604077577615734989637669587229458276334354417312426145757304005496200513529217301157335257181915701758484118776226896470789965983273090944379430641614844043891803795178074557314150533345813675376565952766140939329120139591654167202083458271250531751218429057043762263335126087809658472104359756527679075266160065678631639213168045515136119878981204298681713736206063708839070150553386674879845088804863929827933741612399139879685384042749616442664234887562861277148112669239117360824147813800903963928924602832299543272442240990046564120790463894110117478974747447655421520483422031146594052536936995865452124050551694539248679382589260860966258567552343564326566789579886012401283138510633712303456523912393605326428893153885373633668231999080890468457117070541097262505169609015606833426026737805867207983731321661809321589410116939062213951479828072688259855357308673026131487463682282683222317932677317161629444583349834426900951904031900971432806067515160092127303063329283537342643624153260311167552781751897279226629115117812702851206229775000403014958028015243290010742290165594811006696219777249870980384291398474939665038009762885437164030612177121322448218772178788520555322810931740502891473333532657108359927164509061982041282196520787029393933380282055269051807860607619888758346778985776636599598309018820399346964622063498531163555452197904690848116840404026098073644671009779879631778167650025670011863134090640880828271318742701183417925302654620733318523898640649399547504712809824697313598140277417013392391917795661067447622195987693004403029912482828402948049785896029400397434117535295599173714571378595541661876961831479227655321150794793484341534344337526735905114679379848705581631701398608937287088443110581607780080275965441417628880502767788911798910139201745246065307863157995415525513968497365120560906480584657414533638018489716765830391803445461564331188707751736721409072391332309924470433760706111478733114307508598887933755375444390316446789550683742575728882861721538198216265833885663638020922592669668076459122766589812823175590581903566224110103955612133361476061222558088958614196269892774685966025240278922443873957585314718802354686568741291846946799088699366717008867821904174052992369986174870254214911425881223957520243559570471532316331881237409238023338976697362217051150294622348439988296171020194855288473112987927733797997313427582697427815618623767194273271762566976873114461588636146892656663389475097917479122075628093426402491523664531803046837391130157065345032433604117617293734355298388274836298190428739858374950825589470637849645409918593589747602591056600561229661054647943782148575421589462289506999952812910876790183525893817630359803204549665934343268163588556786851307743203937413780233453067096360108722708951756198028364406244042326215877929238181547145053267948699039920258379444597721994822426589963507903623481517497814791828221812918037784714226916651754440619848529242257455578944675890099911107200205608906242423716880083476980619565361701792960594932795006339742853084126159517594712344284793579975821150331871939045755508600985805889183440753491753790587788165410055126066749723570569478721501793299976475309726933872257528881851270943099823635384335471118220518393368870140498699986300788089539231949038287650978046944060588348231325022097184112031043556138997102724236202112888076531453709290161632841296797481792873549923052461305323883036406702624070360971067244312803376419617573224604579251403179381677218851580268796962535896801377555998708565656844500484686027443329262410771941225832317903902003542333534252422943415318181265454796326052325205557987009979123688317081768788889910502417094334520751964336173293410840233101054220322555013986495503072944518423539478864878950100303876095660663945960279100284864241831217405830555827055134920652938621068170009564496870782163816955304649934279181032903350148535797140651514698391898060092817006458086901515124372481560725580478877550546643143865037769463298213520477731695095968636367195575501129029751394391764684671716164718407311411211755264838662433575343046990473036020432187379826899585830657561893821457396639681048561254085608597928782446301155374990128955889109183962652336021982550992641197507084511461904963309715211342630169816515915371030525105560822289700365148366163366055533971379739241136796154956981948359992621955926711816771133180089987812468198782006580610222136861095940730925246780453499926954039272782826421951454412422050748461766840097450940393681045034584195419173628421774644504930164477369316788844852200760771297549455492256571964482841035125038527120517014172884686542068620451914121473768010861858641218308913309607442713545911749006463711416763515681719749953964059147203349690020985465727474780864588598530312786669617075987014703004280492385046920219782624547101885277167807015188926153832779271951264400005152884991953085988548670900439761770394424245924813609828837191700118135827382894224024792068330578057385501446441357292229937440922205318986094446601816456483474705593579592373433992784199335894507513958108250484765821394758735601415065970416397335457873589721896027777889522857087156090059571372225400835276255850242810351351844865880771688161121531478070289758509960136737054894335043576270981901724268383977354001200190759126374166959783984147750867750562002203986663877174977084429804658013469875493766496243628426383737294003243379162424976321004580771049456719203553496208411893492810579021977176975332458119862112912278290584359513415037529230725988666858634384779891440006264100890243468853134903210681596652941049811742607736092159468697479390319348778855256971096055412421649828455710884171378167017121870596432511711465379902599334253178726608466229497594351302286738617280828522161014457948892887669843865065222231527376623250285915770875088751462086007882922987065166765413123973625850165545562152350451206326347588678606353560153055368041080767297071887190978438889758128672187801551532735142451252124182442439230542276836938978682579262806632148959135055596746279486647181551473808491591656653647519807902700880491948725467136359771765533445246184965318354376932889530448780374063263557842480645606915895091821477243809913976028963243236032422271680256387945372828995498684761313536121830904941207882992992030663209474334202354255933078152993349488646106814699461057896718884952321770010445055250072856551414462021932133354547383779642818839508625634637797782921937777832991829917790729521084470915467520213623301660143170012656040748641200616510890403297045806982723084769455589428802367108632227682109825771513362557622732150076768194710182290393861239462785126838207588165529347220313608493857487494075909659078025013130643473970074090066995270413495290220753417805151378970615550233166129842468076420938163967305825703869132517760559110614847030451673032202800208186517723586484217946870233117461062568462522824818936979590647654706342106795126347532547065800662658237612048012850525451063889032321423803392144189081072001890913448473633761906929987610666640173851842931903942347238390186065007087030739636364553207551861301723169827066983519175960109966426120576617912909497410342490659297327876480599998799070382616384615679436025694670613043237814454304498487976614562639004315123550877181449576919337595527004430886440971274523774577128601479639454132114916131821404755712926945232833657328844125573900840919915233065677893380566732274213039014653177487991163280784493366376788124640389405357823281550398709464128557504117961381455166290294826662513359156045284880421365025705750349132936056337034788750858079735322786367763061694086303441221111489902665308417208625441928163371324825173711373293762794232637197841567490834340671008137654450254075222562057307872165762653976645149969845244894772341938071984939983133763443221291687360904180721494322350931516813573102615000815601950680139657863065597387159543960616142170520244489117049841485764887346499296626575639160045848770888425976541391657920176634373020172723849411596630784173822357303779583754845818798118039068811616020938528048216902738580305242656931737355683619860271088878056751832149337430665337717146781557256671153669757343571896339049412806698129535284318631188178398665754719888793443155220858161128195539460724819085390711906989970838747102686832769268756836162813788606816111976436485688220924804022419869662688666201327073970580825157586299539798700360119126995586400037536472017226897168372904798581979816086686056135222046605280593784865243189647001252923243018955657211758900798109022477744002110360031150387191309979051670990319159494159515635100489669798814072418857908414715157794850622169595394757342962140314696316904915438440890146632356465451142102945193420773756879505958502700568018726861638952593724506163642012842327860960013312392050316470864411808300321395661532082916101737924173381341623161136480598732864318256304228776704921917212084382955333823156994049851766517537763590601048589835333716406863644713916261127915542080637254179490662213266188914722228881547946021483414263858337234018341031328519557231308463835805545599156765116183350375646463721353088446435549439688672347391172098107200344244439844345645437069000796699287053919866236291500044845200238816743633855533851552950501980673832476737685225938869784496448232139895964067616401931302166222003200194836723558113375891025412259723117444665717609568345106272610641031458116897101240375849085023059627105935042116346007131312605057412837689471521318815425789129083906744609939508818604492110286111205925156378794325791594212347643111587730137129540389141325449306507374830264198322369026627727361687499025584058131656657810210487837768753624446642413017520828224036206212444612765682015352870708774440130218189356826250353567302242797106240616825013594335269312432849662017304179306151366083471454317425418575788584839901529181420491387557485510682283087463208862240189475359106555391864654765260322138169405038125984251703497288311749813555986837357302317793305041217405351482027156755566826477673837362924676863946271023073231207663587518881744263262179870215000016519842425752305516153324826874290297523892124794920535585846141978345469046517861050496738153607815624583755206453313284419708301715904483901775757170386555957784676514208881280935468291775513767281040834704499927062236014959476040923854123065983753725568107770023635758233044562957979329235587554208934280144586665141208322552151428898814794762172079648609562622806660828929363016674066086879215313861418416149381462292333691165729128725661562774118878236746214859154363117266577430876174729090654814961429273898363169299402166857923192571149398211349551051168983122795194736139704397716872867361501689026327688321581046983136587443755524965079162031419611840295054192139330595060556417200914062625756591874325797876242072834497134021706481611906390841351547489220910009630683832399137530622688400372586148391314013812244441989141625269620945086807933392562288319009815788323356029074409790676724514707620841670064109334198600831155056368194497246326848435433881729854687214176587396439922474013996715312601029232250561145728069775120633322032554796329733111794321205511731226657115618075886770400909926388937498599424336763950523381357454784357335933151124275527841106148883106380501739968284767453534073719907191241267070302960505600833244704535002833785415347269977560853580881523803129496946052507271587465714442566871037561075212144703473069017482551258239580132434999698517530166896351938843410083232042992417658717398338587381410247496306807798015503227932789164989592822171812574232531956635507529796086353568634937367184492245172291208327878656152421545193598503036390035375067800718238862812312396682090482189040089901672493047980309024677740239465860210724268483303856719742897891201156970960910133275501244374099280017694243884898369703410280397074999485310475723327299435284393836793309710451414887472115070415279944008166194900197465789609860973851414774064635275929200723325822772645043585061010277827902019621758644743501477791288104903198423905465321509767764168770147817289545834536904598760104562301668792364434012555037127834720439934066614874712448372655665412435300835065762746642320511092412417714528134039679148104642383615645742838577028601747503471899144926820289764851026940345270230884843865214349631546698282490540846991100923924650896214523117897972940170869387076099139461310626802171663005878806000243866605666334420491184575534598536171801114142524434455040957141519267691623796015116151937660085318010387567115843484969462045296231506546512487383690148579842838698170863395233476646164035420711209031934566919081652851438436137092448425219635827187798617309497357839031063057767612065761814583191663329251332859276192637323575549647978957524539464294064565314190364555531406085032885284597020750900242396302057326416000571934448903771917648028652212053356663656622006192587891181973366228078016772157704431191881259730578538009396059031983281664529796247389761720016788454718629727595407758241395608525900393138698968530022548574828655525651348806017866606266514639118372568119510535687221653447852785986898888910271767020921483382295398625257837951419602114838065167575002710279967146277452667412326898451533833757424061926955911886384147680554279939897182405564285286189981093696529392403280660630164704923588802940334662484851979916726141045720400942266924747025186943360020367547324668775209851036949751936240238058571937912932296377904831344600158833844223170976026739510427313257142877892470645066017732002702332752858578983213450844807570021637336555934629118115346682302580631410535244993533026100346510981783330530319314380153405747529556692746191886165354618977186980043159728355636274030717339905832646797263635521425645864568644535765759766715077058884924014777990555609018099752886998173666036110528886666433530460880533965158030935303420095118198197162848441703624666516454592378835133629684974501633061592025798397851539387163258494512090030980477662781256083069207634161351236719746020418886565823036331372578044009230283877194029369051170514346149164276105381264852837419079998328354705411590886447150094127036112325498713789057800091782269458124146887813185174510146341628831530928145081026749296260581753680939931605725843563340686502845024311713530714333644925517702168768244199303209025884883345656924961888607378251949114775920307460446515749943281831618910863318284073103182236394855673124593721088797430862276944422599285404119592529570930584463293120229444638943745496716914732371717030191194903160984872480184229843598676025646871162094625256691410315150240655513887976079373903713664602804650247639080762636307077631534848628061448724097751508246498310326514562067733011488120705457214731268877113483664971456785569383448043653013564938566169112801427743208433324452135413954039405842920124504991062876280072536631162088309234302939100089321415950989100162909149544411796966828582711599147623570229653475608047569685803051294389614488122080199730183047039507988823763326421283728516037922464791156035169317467163179081272428630134853379982576636736239376306340402379756224704574365779476818228011891129145363621281795223145500255780528940142518955596503110166499097568323490512190345666239948664212261278581979120994099521176975226061020846355065481561052769644516003414022604054638903630530423948545546489011239020467590718643236216013537100015726785320330763862318846395332037980501919979426535706169276393557638563831978618326727739970796622123846243544938908346269260608978555450390220294763406557600756457224180690948178653418212267099466129105408866232084299653694017760621678139013903714851774704105179710416330483161234530595829259690203903241562329926453134216759884700144867836993683760256104563887342540394870796441563003000615572802774709279497929901954890841354279422028860868257666245568909766529199882157658779631449523358735082937691651933456059004182132806645617003369606415789487188370603485332788117210915882726882851120352480027588753208524831901294541101861603660033097420691491792908184541809539524624260466703517587017079894457250237233258868113937936306943664136402148810611146984246402330302029066600595310689023680512318109787097335418154823342359652732861914645945938844427103511054821442494472377786395165703557690834360143476710176692592669897677448281563961256031853923652000369259607887674432097389502796703405646698755569677916900456387170575097026538636564040370479641148494012046851228453620654039177266351291078181504940062497101557282674094489940441750235945054310184108875961550191140863884521230998124060336633502399265316286338162794924452234536611585334874603977160444158765011731603598978087310040045811212101997007679684612598378484311307986490639597705142735188546082484171949085263284880726209542921052089507249852212090487056992535232894361420964980407914714007972383152014380747338920840291067814410091812778694719954604895188768776875902194884347309454258227264457246331252946426864655613574316315730583437536924820011013038511614053793600312047068723443596741481822244096872842717430644974446407222109981425536018947467434508096514984733231608158707619008043282504785293759170712061190719759185747397844619282288614757250926209021199878019885061347718182445380424853686473545380133740637470537154214664188912672817207125364695471272593928143404104466655293956610814276943491615499994318849143004208460351251705669715376866045252428132473660366316832308976561970262534272358548471790264192871805972645656857715765989555662477415728673703335735610346754802893485770024997285273722991748853740005917809583553084733220985790576481576014123426385703301966466982249950915610721914061418473669094858079251470588914771834667712807749802638116386295123974783621175145491553071469409801346603761775110613659190170899015869884629824465497709401449988137365057511868520209940662870395367475335647468131316385102726348160032583039079235895825135392085209708666413698101035002251212765216120330666157241904485615175277366310007737332960673129048522309606056883328330641410718194403229917848096732206860091997880825945454420550476423033690638466005584900407528727311120322052288036537051252117061570714409645737502881469552097509335991941400680380512713692336017929818880006922123410481183844342543535184782584737218587720027298459163910996725116000836520511602749348165240614527098356688364464126502936823312959269127656101463264118502959643730365218143383506181321426833193598132662813858138367394377516559892420210089212713744385957003830466810657526388749763311852256422313283574834134625161838814594249406083695481038588918223998109898770764625039850999656320698570191432923397279780650759977959272116785017377256059549526335758184832322737471727507669986143960413660007131044128826879871095827008918269835477775674219520564871100312319790476966718028275014232286559095175122631202717966014714403460708463018143958358952367790035487829266612322083522818367445773073933780012863515387080176389902789043372894507619497212574622067161214000936383396051053852208532171212958614639407412182636365632837780035919720462800987499322861475595369303476932635445984989419344987201261253236437330104713234127497582670355549732849549532488173363684253084490852720899470151206394093217407892268209343078364114738696459414005055827611054505625201664217200166401107754294332291788631880828729777527211406816767225184533399752505585075164312791676072503223170689838014316595713129380016490203653975102482272556816591257292628833247958084322022489664456545032649637104161246213158568197193864537759916945071663801070932381972225944814089549273053506039148841370258233915486612107922717100513482921044250748785397762997623500553219474562792525948987224964092652792876045181470652435461591215824629503651885363629531851565280207604005108310824059208166829049077040751890496653181218365739388859282188921564095763246936651813929007232798579922952966561148280714886270824813086111569727717250240417096575309674492292779634162638974662373784819419652041804067675420571401982342546897848317134111804334994361437583227509487984568249841763626199732150787530927311437790916141198393627776236661836709398424824150072653447375176251735508743414551541755716725160294704974153753161421647788609555639582674543665469032673089162352406705093228293314829136192618111367934503780023060957390560838706716631867132788631966357358389380029013285273843940805720329559104671127965706513234764183227599568841049897236356347722708141707894695226416575632400059735964965660202094045327039696644166926588933996532045299958758543268242046593357945450051815485722658764744645454463788065972467468361628251985326194340666186523575578782626899970179194757115226309765272521501637750473480502560594450443555821039247713936586355567417872731406241037111407755992181550568000436972147285724236022732753164739004738594953080741904284328357574852908087557487813804080468057371842853148120678750733354099403225811231746469495528368720471527705645031256610758608437682029500746326625320293086662042185994267941477133368357631519993621153385011856743835806691028466198092057368957728672945290649471357999546225815339915131301068980043712819318002289083817109743023063554083734659404299857566855723245457586975541477028371952361672227704202999020671753183516927461644946895436700370213656031256041568379837588068451217956641441770205683291293127258242813955845091423082464080989664695374495273603614568261538520669179793558819218810587093366606966683861217417395535605827795040871095304998239610802967930095327972758164054366060912512611046652497694511556178036448626757826828847659889127311038437775630792195282785371886740434730117047829298750155477177607678572711352965783090415720499736839138582825158101862394080624708087079509467885638423758154848369673500386248281431842855236065727017832159638011059615593558307805146845080251715717644092202691271908500807116506051385361795393396869488765611342941808756563182746591451826000333392256551188283744978797699529405492389633650392326542421039704333864493035875668138211277081400674882395102936642070954023949751870207709697533582224844424310906372810857081602215891354746176654861670715194446738369956697601583016589341838881385113357768593177802058826286210953236063612223891121288417646709078382934150762239910864859036980781162086372759916270103111225631152488050853845174188431524033517241220144733743930915097279653533349229106883834142926289408379474251409872211134747853024941531302737358526023204268343805037378988216146480253150419283177186400178064429348085361964825193287683850699338963781457203033547161278499262233732739602094324592355745232691216542435104028994126846113134305433945602067909707703960339328238212663740936797110828342805641409338624555575941789391012256953327536969643841798162777710792166245915075462189173798973437756366293917070953203786888379042987976205527484093760749884620986337574542560272227363545400099053482472841466192257214314842118675373521936837796413800113444447075158940179400928750789697945834895715539479495993532177226616628630337623825630823931913442027026121065037232773226815104299256549792280861479916162761189479751591466946122915653543439767876903778971429792822296146350005124949572636997840689139676288785332347968115735352958721872399441560133128443249076117253478598048027405669221955951262592977823534981163305900296009009819087150412964225451003937442293202227762513907862995870378843828274845802450492357602759488516341375090873599115759687703435591543653612656028866610109659918876912027281746620521364316398112637810824417829511206553316967433619549598886079885058269070086305723770259488396283417485288120540091977665961537171255540411341649395432573892854470536751800415492477659495709279339603626117455609866528964606432939083298976051479611537458976820156974112088225261590873846815271023163636532380502331911850627849186429412607458626056081493605188605958914120537346552355318121211189942066245084246339065365908036119939871571221932653037212413358106112846647744151828803819728086758947575299214566207411977205095684212243268305864527749328881646591898191101544223541807406889415746534995821008859593669499744044025414504442319497649578127350370202489311601086421527945430822007665774253679061421326557598105878912298380063390181314729763669835499116945629751716528296060284664122093297306138035710475913447331814138218627677168178775127158949674971418614029855231579469642222905078917806912597165386373502268919180467821634758599782148297160436024149530206422208791369459289323761304285111013185293185413806277855010912827485499647354281101677381787342494980474014751353581703061897002693476673063750769076507037261126739905822356251327939177569019773289967707821095264180892020350639100991776855576974265132011895583360306410687134636107099468912855729973745529272145382890471939395227803611873315700481839022473514242959691392139055580227310457601278143685571937054832611253868635767849229485875888778392222730908740740449906133909339767146582123711958289237177548357193485060039007828563244788182421695326234182770222261366697441653414814138021715409789913634791564966053023009480954562973768240864523404954325811882739550274526453500404835915826172692749399355944503321666646344590398042784001169032426489268821518345190093852205817244314584522640069737116475769831805909899433133605535252147038502009967417818200416750147048905386984539127235308423945875988942738081072197294950862856577733772032863146835494957335563744905790202552736903255103467568937925395549726815245411718245115515598637060827043525939487671767770189816426080948331409521998172495870045433705683847229895931155600204863990453547727439917415741276618031835941972129922870116401254310868589302520691511495048331799646591648748844936373897821934130071512999689939400883132898454489299781380289376064185218162099795496514196429477197741735487209638676606687619216431030285787511827825071879380365696792682841146050178586691592983412354043383088816716644056276600637107695737497916260338896625767441117814458393056192096052477594059971990568165894895445092065588222421901926660170121166539279043515370276822360759356517479753132939349771703779163609238873208534709917825909215630762856474001410496120448629312040517451955811186326625854194907223349038067057022851640595269158483445824830829257373869045983541991501507110381553688391444925307697588721398072439112610382258999448787772467581819006274323270670309943618232627082901786789360812747650560054153400553117922760794493975152423200370940307088663028316445999139506509076695533005644616901241105485383413756485595495583930793780538587298285145450266932152553371828638861076562080403789146657182866234962316791539949512618298399014706103891138759641192466272118002678850596364722693798109713190058263115028423183110241528838249578229607156828871205659821804861037626371695241306137969041996866736716794753891186741202915322464473601813563680495074897145982846487331764051907048150387967114823929914478360343085439865399176307842281493932360962928002278688685708187142592858643633984104165064777654274920821895079919671912089447909990564022226637654176674612651590000988402479905730878449884307228766202344752508943821653359430372970183844652531860656493762759961522583940466275060140121408569393918065674170246014953928059643167111769801509262820729006146098745329583439150921557961295515899830915112456956565914551744604423940947297391050915110511633181845825104775212412266382588547890057079131103117647616134337994213384747356130102450605852775316364751616096100512459273072920327747601050102906153298642426186453155263179769880869290238485193187860024402163620814855160848451190651093483457251340406950977591433660413618826512903404560060535528223378396314788928555713764989089922206483694757465128467616921056858554132308032433137989331282652563466395611855802662295236667986790055364276086923562297346061270025695373147272340819810538602562897743199241957454049322790691644237703757795571083503306094691319447602254679184885722335420280250431145585070527605412701618486259698482588994251741995001742627120177798869624597991081348606208069863435336138815159257277827072256956968643595592589556262124645310346331102174026773241141416830696755254601317977741293311037407923010323173820350951208054302114100415958104640617267405589551910852835660337091411982778729447415844685696215963042692286543505830731868791356984027871211712967676242599255927157040307558835018817940712280404313536555673537773850274718300520183450561200021680837361254456129616897641760378037562414574655301887067061823693087231856597452834319689035915329966200684960977988166282359743846679789970290400195260659022264766491283710064134006639920118261571316703535464894574891512707325560392877650445206815050299159172958359564502400323829510966268680166473811805401930034238696578106576558309202357324155634668857354751679579975783215335019134928648869351315421457952473866260733342882418921576616181946733406942800392687659611673255425880180713691794363472301206255950653806547106723058089435897676592605421946991776179310998136083736073166985357116100824641375848070132478627992380817502107670319291725087304562242710038665971151557963992101102479909247280891646454665812655198031875186096460895450069191997224547356194453448390305470352330666705001898677017448950258651635739113746238742890939791858051570287428893068956578821258590673756979593879793675049234123338569643342109452896090205803910117620134451370675168718028968259765594744614931442293071655605596580680585335224246539459188515553482104456532941373590887860754352818985942517409419983339113395457047603204766855169668742305988560043990773545828251066926630356246999739915782515925709322399169535417583167438024758506626656622069427688859556024697217502690395927348795688685620490592194036281459089381829299007574462330395990757689860504814544007667652764291279174919287688030183242008452403054734176257700556299006963075120781695470661052422235799000875489704452519900128720472051353579488299100969480223212354462253370169950903529649854103764635063750278792834999963115848800420710416252934038145821540516477725732513272572420178098219123057212512494633750916143024715998959743155815706673493514866628167609139415468924491969300891886654625000247048289167648876977361657737584573028267655772153010457989496865004640119868273677117274097323888617675317224102558576129808867369135405784838818402101787434385703122168546523636216276329848402473000750252807290713470240911916131361396623622604134493932552007072127374937373783941177675441964291249338532991759734621435567493050068889999550549362098817290853620306413012083075932631884335695328639319309018431264554311254192181500207319225309523418319850896616472798394128217942874752109686843760984910033273263934459579004451868259716797774719920842884499433978164878058869729932589663838835566916472325982535221523780036299206936520055121260591255615111254650749556346877696846856758466191235651926537620339046933145186023045896218194486580817640155620362673407516034055727885592481332246584539240947789059069246120747884825261845062472500756790580102635728999507094737372953992739885160352534254060146491135837249655809040355123699831313988318020958232274972882974592413831806861361410837185302637781600477207598304126970725184198065506681649178368272851477190894556203227079660030526179349372305163787631990274899340214259807490189780742021757066693775119075213416981269157779299851501162345339354856042038360879130076634192155915310102932001096791110051534028085255202557747542780659734715644770429078574122104111821659420504378255544442631571284382025921003630353468595821277419452536421229376023816387847997348349804287679164698120844707405713058780405709552402425146525198274408630588148221615967571411394983223098830974326084964088873022593678410187801157641664527615040920604248771400298720743270871073797655896351901859641943194346069219675386200384932022384697514324958868475458681875847739281634794280812616832508975853154630165464524162444274929524065577000554843275760120874991840511717099884598036863296325814914628866911408027484989082979838035169676859083082982040403196417606541530696128799896700547735505192427054345245270779154668385189644568832974484152255411484444975295575161013321847850111373994529956721096465243486155463284686231297887646592616088136068383119721980669051797606230539159781845065553491883883350120922417149783573869213064389580026454584505531773371919111936514075963919818316619713865346215204260711114879921966211797813295784233516667876477029919006592769245599651007311674360168791042259402774220815186017716095028636767940837405676353931086715577004211448464449234501136291645400564060583710043685471269684342731899107416319848646683993269268917686809350575007698824186838490820484971015636430295648272795383880746393466710954115433731770977596159372405720868583878892418735270615932592982361557984363382387919348759680856472276174524291375421271239702802487267453435328123821637911520587742435553909744189189001781072481864737842354423108099865705489556325210603633394920069952252228301368907835764295305833322736371338751305894518735225722350309114078242394002167619997635377616733155108047919646867076438137436500746353724448967096697059618452820379559038958997045593669233993272320965139107433340833321322815163736765999856339722646546085382835024563565621098337996131238062836563174538837692965190741588874822137218384691153157397327653079594025917091319161561993816334344721453970834932015306634203817784194788800133450235435969586215601803233260627066650820421668345455157588159114760972172980987749073365411126647852153122691964981315765594616984952773084965121465153972375203169055660712265200677111843361490034508713699808424629539902091310665725366345031984773961062383635482842454812717394370794163703948941708018627546363885910828807388630663244508638942340728341078511214223636561573221606801515091353171883557208130411408484937883289708148845050751329239841390279882273880410952581348675548625056951824713782847709569422809440043588660076354667217931082756466033723527259024457076704641235576945528365704667922340047857382153774447101522684691305724898165092929719523630538728121761988873659255899497412602355146537891433367261695549330066055333531003373118603253515057307791861731503933751612044276087403801716505076901457755514854893761318979732449905839467861354748347621565513400904711268149280174620202537255627517106011235876556193041526167294060707692834887976090939580353215280085237707269802741890445121466078432171001344707457048660987494932207881601996553537225099763954179312747317404790246108225178552807169221442550798295825622950008682029814328275651935009968775591939703077103945341629880900473018344050668806185351256933887840553213563675221308336627421364534947773009205144351386548145069119515841771391569215583827897606512315847650264053135443094636847682729101484780172321748501862699728428987331112251623236922912444228216847599071515368667935271998485718499620743184905256456717835012967401426505427399983879249924504626323403659875612651149265549865475919941015282816630185324174375407913220633431206635868374559596662082242714828062375232807219368126285092526536351380985946027207212738128911041790569104336597823777343644817985475815253643944600963425769041329446847719534674182795415392020919939248405497450816838681715596689867702463741015724544193502119739803184282690726078508257556291306867301773752887342893028126361423956430399441168187890030163591323253047273451770111506273301974195746281703053032331856321867365231888792838281818940618036789273397070025750085056905560951553851528019555734665509378420536431483726753343321919428056748422620827840554101220432885537963389157957711744014855865522878246313214834423968482429187005992419036585675017359797707660345991160868741919812699497034527982067086116174127259175122195868065027047079631002268228725905659481185975866037080543734600638626595168818925547118728444181821729814415655914830379910340821173275597347245473740628780428280642335998231558313798097639663433832493489336403327011433673441714389113996235538832314639054352448386584728102335600845264081674478861558679086902653402126171120535745429130888241245336347904532385473539931629267967551721685785457180297128561798518260259266445197922961003251430354785495946783994534299825394622812638091866198993081288730765756151360877421762676589350061878708037547032797298888706348410789953704000255713466004729687490822209083734353355129015850060438418968122892294306049313269288072548092095528406233272084971150944318947705852242844185121109779269401560668868733426587993429871536640682961500123686862959682856235198555534440122089383352745250868022129901235514857509528421676300080565538165731938099498556631121814248465584136117046588317617810335254896638415040633938236214217347236033853156687596203569629052709486852272465354568414979457028779812243648635782204793651997857544239709962643712976618066540807038150508451091079356536998437478916620030771626371010050268076439836982520027008225245715648838312592906692074671128762023903005322948660624503291395408975990610639229345056036743945637914613780695551175754422116890736995242392862435120345439438101693965630563365208596750862042373330271331020294427778746385661228608612273859106459127029562646741937997860527176722768342507809393757862132259370130108542385708782369674566578710169010412641973945427072846312574007143367990117646407464147057525612278025903588273029007533296891184549154403328775752099968222086445311598168120962710145019998196267616808712015157864374194554149028066048011443159747891213548332654473420816203252556573187803003364823410072890286718692921861783349868272275584221043732120430583057928638046342822856281199088327298038085896221077735670219356190283043751080326803002260680018287918605339716779774541496479434083785529426425430347666410177752334912075972083680727022991093174650715434711103178417179728453018023485367864468933427951924389069457766514382205971924446758024928367277793273697638864318101019014274469483462697348795806633527328256817979446748231428079033697463441205202870751426958494135654057167535681506613924302732266047855906576618297669419114762874394991746764107383196174080201978093642185600692282770687165822525331522236338134260080647859457403781392015277937014027617745954770529071011169759480381816597403788386671611045263358402664794258312667202063185331389680530432222565500719798724925879766611859047917570207314803395779688733268850113617529793296452580717252627740300121264066770412886371105566682736921399660224772479888442578503170131385867229412442233656827860132179504158478181403477780444880988540423627813225342245763918934306558289209309234825073887051912102853599585265432486981773397576444373282858496667581338641392969483094472175989599205387418210063088569304071324935424709618292165100249622627453818722591769039516293109765966228118811194455682869780050179003342009166636186842912285693994208955105883015359138747568564344651064514434778953947076541062458673981930447121473615855164032712379739406425737083198402516224193351325848406398618783020195918852036872631074553486773375150263793723525532200427197692228389254934386217880020144247243990012679372112802335494274426105518935277459085987960799055828406087199023545452418557205469421634458796505043516672959367485259259401092209132270235899103774497117670194964161104895656275602523019947219756133719219981977610524848257870170317422720333211674670666675170143795028898789477221383038105914029732694587889322147125088209564763040896779954251388842249458452911100961029141727160029623536849574089208719766585264930007997814161813539585245041170376409532405098614450096947250894964549786017599687616501037891936506546495728076284229337468664001714426566539556106283586123063058131815198692257004463096060572745916124915430847087328296410074138887047903428890173242066680553096524411391185361224608180770761044546247344861615537759986929492076094228302111845788222640389147548065120237622519384605002711278545357510706312035892529748961661447937870067590104523195291264477225214481914610852126452195803084959768684415824149482621698435881243074525833408494516325360913828278077582318569207788624247195686233001023383593899977777557484607241061470510842561643151347151118916644732052350905051780072325088321926483902194801382002876476688531149060549327431458020671605485308693346542422505123049921692458744528046716321744867976589818656117985655253217585088837223189938418927638825670707563994016112230612001025469329461007317891659196763996797116689724793061904200416240744899653219905318984636013857791003894259261291124410434241651428555862385911335842311816657182185506775127609379485672104602710377238062789421188264532089459584023786620794004489393643709346839910537034483400281158403316723438644331028850100461563149702924632037525860710262873745504933115020675536776570749747955246592875043200095685802428044311172378431062852172193895805235093602193931158636427694714125733829604025998724753745068320937902607587734143720035091302709397839294242402097406866929466848166606164606403424162847099350493152635040291159820019358264881606267745755392950047274366843789038454346814787098132982604291773938489081623392418355210237988022792240352967379276771299276939297897004047550767393457966433854006934180273942738047428965516051007263265764497786976046641461462330122759824346526668523374570373701127705171716326665533654851079290833487635583058746141591293547831724588961492796182511611414877062655913728640004177634373322987700807112523551887211078166868530872720205800961751023652881428688544356315203715560776675873603400565745037859002462592017911887086478380675345028119379393300424207265431848893013741020167186866855741904454762144585087197661845945653153602015934076329800341271740573588424306838521747084223465244108317730169978846634822047971106913469058386091403050787811997864076540233378500028873262959871293272871297463623292693422690375739105432561338170272616455364111270748249059312629911797959777778593954125217679602062618919431256717342888719401440873417385583580896985468490120640160196012019859008137684840332460247582345476417928051945628681061372534030708281496857528119171694517174988812691506292207383179028743375467521713436158399127733554988012347869073401153886812813739680967913812367888515992802699143107591018584883690115154647690992262313867577648200679317703117709400553405780785973013115282226066012888268535892147920323102170779226026858594743210699011902983177057918080113917145016467548972326307970318896520255781015066987220490741119250850738637484608187154937687449047058519932330240857693156042917793630833139366045637488982920851881619485610060006985479825864150218318708750247840055499390863601603617403867766968760146567573143461948478333874737623712600725059562852301108652067267973592253805447424457716610313666949371679993044251941018442059109881099025113581335981960113328032046571502282632018030459329400391237112691128261982722169121572097530223786603354707255020669905630153029000000422461424331999933841189242236817106997960564636874881615867577366183467888784557402250811886508807726580854191456080061159628369658667244384279599013986702526407555984448666057979934188280780371909232793439135530632802025068511060771873518512434495111361979074881460724109101378456617614386569112307253906782499033557530715503502759845321882852952130505566990072388796516107993440865486356418713171391320379420680809010012033153960504651926226963759598738368426958314468075442730269988809145330992258982711780990447243054279478157180775559747173638692126343785268574974924296408616613857562736655974219969626073605269885788675384377100443129374543843892790004420226439937414168452160435667153592831883431407234004369479838512920248594828278029516058538927299999721142001812642656130877812353020449302743669539094831761124156504240625480310294741864059645684101574581665573572804256061688715052620669742461057560557771446677161048779426433967226848771144669832377434297156609026431392725752113232662050015237107355110955334682379241822998576087691060561212086073169614501144360001493041069386399235938017994771907060551955526151483636353991709037144916033344555800875496226622592121342681003500838461011340994874330860661599340215627924486126763161852778164611660261703964238634142380657130883382485891396069693755305943307324251222995739175206560702962577008588852414304794533970266392833808442062536032104748460378439992598588637320415945053197086527741219931502742814451228810554709191422822554396094798440080762234954819019079097130866190559472005674054974615137202543969353964767214822608297423763342838017357181009539412828725658518678857802764874740356753354938503818450237906503817192434316684902223205073917758518053637767459880707565304868807247346345125112061112670061913187957070607848668385727091307236584278833774169723983488597346177901646639000829671731487907314547685890414739300531772693776056928028966471110531919638621596892631836584568261398705832858449709952192729442776274017730603974590340393805891939997557330190688574718383871260964276638456437584240813686896727960290156197947314364822420686692711574449248538025639760149280033288836844196826718272332254091855767858185612450964707895085805326355257848235103272974977178088814471668681847307109378327948697641423557105607459463393227434730507387934302693312286144856933683449312471660408521604665238992463411059775898445484624327659394234558960218683246568143577090246460110015745815386395235350711944555619079224482444205865466231525078919585178446239025301642942977318202076724917037928757543621676813144517422766595572482173139435563014336665937147172745001807133051160389524791649478514534610562406899100619439975230019057677261114180976856754130829558605103553927765299826789065898037306072566181142160501159938103049161685224380599915806895984456434156437168324574068595187531720314887218758792804886848758809902512510718978819845759305172556321225350674518711514820231131634912921019410815731818113353546767274780444563748276993805205276704699896808664230204384683118593720335290361737328304476524707117860921784678173182174384488916956919211007376585867202134657772223024330917757419956306751858540391783037112695379829240404183036415420409880778193552814949798252564588541472047806136451612740382906721627573063712900025116606567009452286794365903360259009330120671075793212029394488495094110764153593172802162629237985364766863950560361756522931106954926698559202297605342577035247612728224469866740824325053135020553539437673952764764137171000588912960161185390820486707052781406101329620309465034064575810030259228320222404817306782853520930468345884706365390855956816962240171748115491005458815726706552437577867427111050005403089920174681215297757375135043093142178273160283981702882179385647273932550472977579706132504462136169716319164345307061155469541671440610318391949998079261792564178555825584694506446707258135149720490965483639909794832534547365701237965264341966715069442533416685127420635155455560376921182113605995994522245800407506035862110660150883139813949046855970435716657367244986686468642578034713156929911369054989890807550718953023633631066639191225297163764675652834587320363185710018953802128672032616218225071844993123959496290767128765369180068294326965976480229179826835657524363081063264107363218622770641674561011139611040639529253844339431536916570236036668387573385485068551931657996680500949279173403124340643372004165940126070571992510181777680444097433774068638176228755767917324469466263301692578364626172467737695191064362008805266835289310806431242801220735891758482773524284217321243305546736972362249115138329150669718835495063741112176038968239903781348601545987526071903036298831003937083817269935713920586174742598616591778700885204622636369262955822096967053014533105484411898015988451859535054961788962389662288699621919094355035768673403556257591393332422853056255988362826838440844721567505216679610989469445908972879658946036527895032646415839182805677933364907774454932498727226353426630812090768091235044441944325582917498477153040109339451531142917860296487166811667075722734204260915148203154726078603932312029416112864381185721871794187987467032167758769237676772761313553032525270784984334084286743081881740635702721708021853155151507629519769397278694920971088574180167759354599012064706189405525336936319046510725667136914747112719450588386264815986655566740091957049100962360046495638860068287255285696639046168744546679859522526348978688238472203249566925428768795166614185381067372501045653996228082806883233947949735150817881279922085455803801804029768415819770391859071517731099042006889799639010047519958953090657538211427281966026645111553351167663455496497747720599629898604638150213845460769184146948365588949125503554021622202374237771606156001064098036650755532235842994524800985898679072094903744925627628400327808011342598101019578541007221007230373931956441371980275718697820037908790023082759248028724060207284054198883530219932535318801292068762250211135922940307014918691414589083485984163358376566606731254566807105963407340383243118907360198717740510132059071919856531489228532666777443607913821685867827857042509295566951500186455365300281188604862073318775425856286281881542743589313372237172695534391310901767776488728901511525621372571704962265309594567189135919609442049734871783280529096810409769065321198107781090419673076976193873037146538951105543292749069744892620367535794500588825828098560962080426189825434132260395491256984092142432364196716363619677863670026581319599608046001445619279102055014911566633353458578524375066289870927392030093832366295831504224941652847342336635408901140248301847068110446897338911744698528637925281910763876737841380832336762909916677653373484053407821295925955846936447615095344439505957722072219229019707551353284044583353075561431508607354481540910584402557948038375069209879693932996007773445188524319098296585287683116898656720423499360767083837796570942818406204694561290045115704110050900530869828770000036166032676112433518945306862220391861872195812213396358598510307870980318803721074049758327777108321851596561047199246775468555203376308658727980058895669024421767596520461626294817043302992792820817005973450000531363469708911460765036685628677229586839773011637990976219869693611099687411927978209007395426975208798984822405264733227062529818667393450936402953965585714330146797826722959675835062726050746378515955857655651578926046435208330448017743547099835364047390434805946719567235540760105579503546446938228476047948737552970615241520168729877269663921181935185162872938520957263834626459077309645590771487031923235479954647383536437127608315179909331870627502506125606082777959159261585940483054290225474227323431920382453956827199092318843099848231608866574847119973722872409747912667684717068828217201176110607573007795687699606811969555091019559464128382555039982459946952864947264366310534873088503138571916777308432089285406396796215377882821976395557408982190595444100252697247466207008480708840646031904736934690038722437103542655087185831083798013472871608761128725842851075478963172990089177531276054883588653793346155364280068446782863553018227774317887436331279925968985304921789307243192488160662294849660713440076987894593003315186186778760681564395500606278832606983922186461927229799636850290527089161180205597580161688060959633364918334354967601670432228262779514079231955344206425035401900081305563576274948919213322128770164096124233291618806209485031452919338366712106590121549222289130928720101480034132330038343348101149085096569788703147188937116453435333807612126430159235450906789142825510927128044087702307278612735898827405832171924143873801076201286557010333564649912638763011505490927881190127726436510449558350954797992000650627369106222165506964112388954221084116832570151890951050332527554715453274448689352954494893014706671610246149806273427556821172240901134336276918213661617469703464364215115861140594927530798918918828653766318373863559138493817505145103313724653294311048547459121772275154363375841011403595250420846256828929750619020183365663344813226095296617584389056902349479914965224191821744428935871475259777116826580733444672469726172530822173078943989766691037425081918848873577195740277398278668104946907683077869258436581497406005178056391440133199509736594868260513461703960671110667098562149999132239072659430985546614851847042989084877206485117810290720181013564693651363666214249234574695142304954862679242548334988022615074842898745230556728714119237906535207684108778037350910296897658426695948453910016559790643261008346662879726223432054579071410402409291515549456496931099574820786136707266256105490594669267187481988652703518819600401245593195531645035134718548104705437260490893382156079309519776945172198592612138440752993533581898236002708116310728508046744984252692492497656944120641954524102771668327474482344373473821268881186325509252429650035023844825954530172733848736437816482642790683582063514186053664884857395165372725674403563497236769417175008785176342697014410381962853049048450595548805848454002105115302878326184738722018435278081071923359737233873737724162950395245039480293056972588814012490947747942301502941401907442185338901142849174019313425385248376941625889350683368332183526487382924440107874158469091697158027106801119156946390609702530921150508258418413361546527422028284467538957980253834020266198797613587541372086027418338185620174417549150592511896875934043304086432884278835323727686479798300689504742648052674017531224098077410926672699454278140844861229548991528547970259329909281551671649980378367872499442050492170488847924256503693657521987989761731686843533475102942887933732022141366281810703133287184072529614484326759789962288338073759185913944395815567894677552737379146972653919884223799073665767727170837097952780636890239097507441086568816637703587573909596939343615107924718052722157443269356139979448487643950102662622966252674913140831513865488167502770126754016569015851691945841239751698732147525798193820784493520162028480557318462802820680318712643434957391622129682878194864660960058452897743901091175284211682858971243406554979333039134629994603240893398788793579851489339786604851132502113920405880031380133520093934844975452984792243628698484390956971146321952302613408204128061919720692353440954160870460759729276162063218908772562667821267446070022302996345926266913969831624205771586107818406467790411989479764952182100162748395968611754702521298778277377424103927657765028742911099893043188190082623433106501067597777725654265933905634320262758827222409542527252677486025604421817405768963825219765622001688231630216564333739282415284977511029147547382686548983864700182048427512959528236250662860188717514978872882133474641337138262592915725918496023913341888857197442815293374112333435342801627077592329551412507322866255226135269707870769827462595793156444733883456327015035449672024209162751551758562530028319346108715514657908784331181607949340806212262076720799382869206664874286335473773376327061817775068796444018461679026503022359591244396975085697898280682828814206217425944748179897739145289754994810380597236558535531973078765499269251587320763814069849455360986991490441051061854316424701276898708371257877640030183568053432697811360876817815769937533786938342951934207151623589017023048699596807264949555103987181764871716767459035339138930934850822492601087433254999983799762796401446270762409232191408466327537032036084212295009487024625463233869656409460152573135964445577810421172850208558865352117602928890177094845849203552648877690699100382014704015403787343787765284772943914036908151363745181619035221217071895870375783857182827073835226550638670609572285632685798414737260327918876194306608525825217683202587462311641761879886600556991079764493619626626603947749824672549799177614873614631433963130426749059595961330533208621636886329424918154225083261672544402707808302036961452843755577506570070610459430809967793177947266723773158481125044538095066221682884913961402462580770146470672439618322416154815976467159106996159884190828458519065458330571883556065551954275551934706888509252134917242605398812461384786441426937219262368710455348954196866649013697564059159575157473253164017030555740774368807521242933021593508471181654289025280277483875385545358216105062269970999056693872731897385335637831995338899324638147338743785212251933202152619170784028575860327925826363081397938987838279822285686200645330164029940123146945863627765932544628435111296006096663346366949906899741706234289419809778878155068486061102535459202007649957563966434137373956847808138043713594793247558884076350607868909176287737219510422658780218212648993381970224286947737375727309214767202686739117325214435482324044235171512714386674973039412230981132546653297575260868569210861958145422368495137648949128744863566796312309873091157711735653998110618503113119324865299544022675585639792636970067752933106732677537249021215094858439423339038538542380785562891581346862470443923765108666102672578378437410234712652918055452358446093142579920712644248919938043704139826299704483072682057387740986378049656376333480607329929750913952981031216359434782029956527544064935009845008308996761865750650005122865300519476079878813547158321653396060370008379116366848470066770412179137031281665028768809298618877694545604102597036441647870608412605226983468450085503340113736775091294724744632950420895376298258016805095681349063063132699707562490555255269742783568315896275952690285256107889200108985930532769032763977127516223146848794900105393236984770159546359905018716507229583376596611115456856597048398782292190695016040690715195085481566156688228729357466522357704412927404111204251566675735239452832860075851012573626860210618984149877319995441269127710500633388727408042017443430414914802784536110685239967563440771397365535175889018039983101007623723327889361038130262866945341659920075539911953652875113845537313780195983202754318893943320365110506089311043198829314177095066515542287253937289349535578132465908350939474922814763493239670031534215481737127684112185244802588266017854085227883424812428670107759692206775031480092559096437764401290279490710301079768946079971583662733618662296459972211937972146633650111095954725755254303484491222097055322044749396150140296601736410840255707850150610757583135653074743543704990029299060044868577660202524168038896783815306070935648080405808097468078696322078781990672887245289370937472986258102127655682332143024399482566752972020003027528011720015446410317242513790156585330002053627628186588425473194418101159311308092081847486765045790004718556440688712031899350443858997114570777303214434313265291292220681936978386015124130461633283331878390108770952781763502778507969619275465033620452686857221482136119810423914383319418363238594611090019122253869077759039548009761346687402573331862309042350260452252525070468964704987811256473754921682459703089033738844211155642516109150330481305752233769990811044389322264920503024163618829947762563211475546600789672381983913780329302189540860560983506759036953052122559949004573986590241128700763346113674559955067074430395580698614260990849813829497966459998070617294207827613422688448746974362428909202053013995305087170651714664179374884141125296907436341699261094634462393630991757481632359766077219034411759042080967370413313495890180864329131532592946664982836957677189131338211680241787462315283866329844562143688063872126641504297924369984155861337217876026977850095107186798523000851879047634659839136363357341888774503428486368114311732643560494178861641120337645652355229172496564889152825540048481234844423805162138576087171160131421544207587077701587508705373173552039902625441448752788453007720744911771035425151183819835107054098730105687962813185673222514298716275979220482677805569319957567229932000584888986356394781484718332926193340642228254735388156284852483518549129133186700064194951910140397017701803456996286241514613191352201630271459437564922942992272145947505877316778141672126326401713883930637031397469109364086089500728804020539971455063354065984738916541142687680141478426544860973622107615300448262282640720151108742018025071156218328803647673956882218355267392054802637986222184671319317087711202785597899403206107055736552741209015383338233665281778443006854325597049486541153747849377030101000855349944362271385962685436844501974151938307810037001880051131873187746132059531648653948915229003977326846958967086526539165271569876089843437515521977354012841670140962573709728028399915041199190286381933712726606250745026169148453365110444959703650373480747136810477265710989778464654198289866721988843843129709898263180963322315611535354301545440654124738058448140040120525403561089494281742180812573372638923387259341369118449372969950551883824195143380482616440055938939084146750546009900589810238239383547649151200794323516925376862985591484994179307591749785481910168148221746097612751700905821964060235788573487650047844005662549529913158162938038661227450956561905246897833476005942805813237240073797803571943144226445688185915585538092134774720925607841287442057153796459569604156404962674808068461415083954435070808181803853890954818182985656596121576894822028383898954714954246377782387672802483420556019205106697768159591867632916157530137492126906654949810241318781028387569042226588871045493659854914304383482666227619181866760834464395888793489830525509183480384464352331063583112293369996282814253700277827416195705446666167965938210204356964555828923797991423426138936026710902365250575456387512728668335203815922455359667636271541454474781776837409752209583774138614068967164843690471228784885437463286469078872654058862429002763128627691680841072258382065624663050391329086755981499071929800338404348512535262226784862019266822572910553807086431021071901057644258793295627792045084228236674654997351578020703457779807859456878828606399409606941521764035392135374961437586553137668967341849181471969432890140805931487131091741252696418689611116555897449505487927481268058584107279530850341282045155675354942511174308084409192637543639169053289350520655320058939964431845812352605989387100703909050129489082191885759784637135702169070452596707617804663469848051677953483708785287707303886674459473851993216439251099118155660887608361770827911152330073168174491272151214877905993441288577769389503331992041078887797550985878646603986210150881531185288890158557789449930385882226024857712946360124184608621219542496441531588695560566803925167687873392956097998827215525306554550479068803316648826952604763645752240173548673841323344568698203008337450624124841183143600172563050275225325555761767501457828922263247611688383689444925400285281641375743613443544582759210781113221403029326946971439432949074612655242697627274050703722038251053480845448607403621348687255499165118292332150144525596013706097640787903173328614597700212171199103687861644262738963413166721098388306077008041251772528741965520117917416469670753564372730510229718178284718107028346454145974161166705518622903388995497632123118433478656546091850233281812829721504775309912970211913151656416374272260417352836128530185579248862011116665889980158861900672716168666964505148659574123924374828311092562314148916765891661454574159850206070542530737230881220509245639650345853140480507741663958024958261248760167844765409487663944613933765268077804543274126856793333617809306088835764439779302316255473895474927474551551502095195819558393361952345893860579073809126754738155119284992324049176355929887984236664510847784914804251465759580132191809452471311367247026140632340701973349781851844113939562537778340641423371953489888304908854908324374308398641558106303289226235006814835415600806092845544763356523642344166679558667225646023132972807845921846195926432877096773547322659221618340309487573838010581426868891242690361904104743588018452912131881094153553300475364884208608467909631215968158894542860813653117004660033731012774495247282889211187450980367318735777480886278385652703035566751247663686456624616562669651691266278866711280707542962090635420531622065840857309016821081812563177388413859095009650353318763003109660896860287760394221172007572475498109472695023207156371131064935021305519872516851420437950775884848735467809388744853013487043951943389230618777721724191694128408464096189824599711777150974192856304025315401782669110566971581710846359555178473215565909092683836293143710502100204096398771585311618628506148746062696014688062045313681614401337306598539802946127531433575052526544301885338371005732612766911927009767643568146246330567259873906748698431320049893788051125768242009519085131270322989162503760470943310207785685915828298222997350994649870036494309844050848374463853165750282535457595288485211551328178035158232294078207776505702838242061978954951334563046956259737116792342925267992909986923357014955606884846879031194686491853651427166067974729501011169034548245747906243127193689235428376141297158866656556438255747670131252205220922882486996944771948803953065192364477860475479553664949534732850524055080051393430776161487895870451902453654991073372330769786863482389056743815879002284036569792773995057181950410662687667423913684899458766960615521530794321338970236827661468870439288227612437844060591438242832735452456207601574596162630456575263710038283694200424681974727560064385593667189883001486776720978068902614901542273084179290447551570061535275363612004309622334212585692878545055853138383724649826671339735252304624820543286428354358366899183237578434811166608904727234337536801712343581350476865624780718510744973327867234239404610793340426564499439081994422643581304591793433716627294294408432385533285220713321216731923016708098577417121659722918696222956663198143203759862212995176420328647836931672192410145247140906559752897083634962488298956421761255492365871196139463732472155138742842091923490423241808254995695219497250474797736670846228681122926537577880190462548357136455375203854806448802866233012955493343329207854454881566915297486317260735205817937835689688513346638533179497181788863452100247470086549798509950460358366835643002291791068509029390716675248375890261671786417186552104501421221187087456813995354568269587591227850534417434276273491291187490429048323150006062162566970441440603566061029855020887143052144484909739422626700775102559448212703852406306450946955059371449520375939456140976604942492902076830022133882921986759360115027830712680049896349415460598393491306833283838873184464775075584561775661819634701902906316866402021345083320074481965440997774463337396706622828702069389559118960353917610852970290883389653282249318274782324066617829443758329923607278184912707126693196570707033822308426062476784186333581326871430017572778276753419551218166699206052289733372841311865118117332788539388747476020916537755942894207183999831191745255377501970708753290250009857116044159944005059097383148616593070900655691783495805756820446684974501296011222552046640149688269156625300175554898746238007385881901129022253880190791768689448756368968767428677657872208616258887879940643197916486314590578885209602700597976852967751332430426874114625449538619395550020721125838640751941723712014499533724683293248741587871025356556117458159580532107325112887669374989697439316963952533726637641295673784111324801148979506668840145406655120935338307792950699558345192171388181024486851606575404413118286728198508353832596318781456229243023083676361422018074992742272513295066214484512078313319606036486364735938741340662695602470894797581398101848694632392229899509171156335099013746322200452226639510983990806962900083025970012897055985192460512953509614152990234988644324998467461511686233134993081746332500052715455812947474571683673790502928796166961350054875855305122086621393548181935451722243495753957778892746123839703156094357809929895599215574561478579324485493681099758412733909989408552601212940395613130903562486046482321970766468929453320143794193080095696282423373755635104998491136784107258242687487777354873746960523861502264109207307166897043737644656638750760965006561672375897888249296868444546047595858617533806227669959117086477405391792055104116981366336044283037489368006427269774156061432237285788791887040928610361752843133988057200498429318546683752418421406004779771250031257598286336161004895866040975922333372856321631383758671700704361071192923978986928165704860372479721205838343387005473168230181751899011739812982736858633051050551353530607573258982414489148470531988846846503855960011725863039954150342642299431948307194819836332653932213340871004909035036909233768392404413944355459467858262952059713919550145687322849535753236240989419778752496797118346011699509999152728928271258831077594457223096000101129498881523906254160859271769217884642503096126536384725984298485748419202127466299153287867982944650614199937039388136576445192229460002228232837173255016469007348556564227191000513683666803094947113373774523529555724098136385521757711690801479294474063275537318793978767126089836029626201059183450959327794746665119899449093238737081347231797596876279295319935894974224763492593007903354690011133816542738766117935694655709191694698704291493300782636468623937404006299769571459402211974125885824931380895981175232342263382324443477439014573483640655029074135189982902455270120628392434436506050854662088930200925055500380205835878668091664296548624339550914545285021120392888828621223579414830330668233011568925303616640044565401847799588352222304072540627249856947265238756282568558713059773474632600678741317752134530862962981123450136684956043861896590813718139374276219836427863979098920390688777849094135379243296294613336818984762743568244537177234638612076250473000493084927874357657407631779360280379646759860786694860435696272625207147655235324037775994100910271206164374756119944385842764251325249275576371973355342905309181555605953137892768679437454059484881047440782985738442472521131388937518824811159360963127676066744334160648541137098504902843351619210958642593321738072532888620987896374253141961020896529901910372379079173677015378555223180038177111582943393365923397904990077289556314497179766578202995674945253256196551384405975359622211692455513475352079026347057529572432667138701604736049839271865361874729803032668831996615653686818367718766804802395892468323007527823865357476732743146822991562221571917124291325352404986421927896253800191392152303040627081111117841789978087737684154299005563556331123938907994080508713576217253033952952022885918133618639717530305985205863158481602241605073130214584164349180040096251078594137036579586825582152262942147074313523952730557419965929806079343453355904797838601262283706573086301894152667376931529816716312267999868818816695499644170565531438150239225136560519233681180012012111774959900972466366639198360695848464718206054444061893472621285361647541450427955829072570221810243514548100727651250348475787130535337261283661208695192788144512144294019442757478457331329071011837705139258323381416461762146199108129724821799881962342076897294836554722325307878893466759071308400232515687208110963589306908422370381070289820681995617664607196285194231639856268707711462378409494568068129199650018962540261725762386091922169368879818689040124912427482970698352903236416801115454750732247691258653195247915546689590924601143002025463058061309886359273164641836811336403741862711154063718506751139183156777608420072061561428765598794944797125855886895249372768388188167787775872398115480558033782078994209617220010212850063085594026135955884923075619909911291711676980394954192114156621895839044517512287781845679929510761999606924114984243188090204288163425134295793512132718921414718872211084440721654919851655693448247482548093876256997822764713665952773885891356414868211074670951345084065514136036162116968471264462027275149074283108787005462410548662652519063101880299969362673106715194767775832200682621173277057218918183335781854158581496017458661806194924605489065524141453982653771349380392815602907939556258998338564071057683774968514997546930268852752277365378257567508528011695838735749746693054224677653241810970232576360134185052937620108735444690755129098468287544710211986074670342971869445176281324899797147245000054345244593179586077206931064176468891120565988505683345594065556881360506182891867463331777712597693671248872452674213776226990433024010275928548021409167015573940777007026633836298477157753754626199044216422515326060963874541862838257016104188102651858292821178303678389139556505672903572456998052333176175794991694843615403521722152079833047146634986194709642466826754747648255023308900687156882123150010927991507230962285103306987508913408546823579913505312306054975859700862969765773415996071106439068974742788402085644386650900479972944972531076314843462099977880409221745821723554759926982871880454102987186157157535212563272516702904610668086567408186812084765701598705695660054002494801292738760837755407039532233789526982110740036286244263204156031992842450920610804136901400540834503355091570053059409807214485691127397445297402369908391764440143945090490686742422955854118679750041937030783394058955483468621029106619589712300661008631383538036739140482034498713212870083650410190825284844080865359570265991038492086952737829976934922651895787879212602153612004364275422368372978252238444425164776108624287084457947387197384085813181119331837790554096931321022060236226749587481551419627794448040621445113754342155372161752023580687890974302293200372386334266064558653721483430896325485761365714915659100837781991493366163804082109161710999828787441880680284066186035610905739005521829556914560486981041395264350796557596858088665824909352466926433828342139038354557077266518053663931127620426838246239790557258302626574871538393424648876011734709623994300103526410889468976421289888046375507841047904936262564808996914111175613966293690273999447553093025523630127046234411123567816463942449387194972486321377440858980944320558030454180005364741110440862764275965078043409134761094578661681532303417793127880761649888876204048665586449002534741449590687153753104588364867018087349317576730181396030893958865442378556017406889290717571862198770635369586105398318081171931225774579176064978137291425457547070566304300794986504429790526872789797014383079016131798561323428922099910735127226664542763090023383709168043080852126623864900023383336616463630471843654947454905767334680410171796752347773638749295199686149856340327053387385728474161766231792658060792655724215845666982242639647894080519836730846880299009232829432623745572391081806233781044665973210648274869145031175174951379891282164591578558800072894279989632721663761825128339192070217462416130090716899321865910196297488349348907182750544236574223138860884975350250936961183368276231400803881600943506606903269796976925078203791189925040975698569728341249977701880910732853382860092901782597354319697017255483480052787177616397802720863173635150702551086255370448491730497595394702819210414393860135129760263218514651120486653632897011258935714784566197799938635397178271229502123285209435464070973698869680923846798621488695574454345625686020083116738481740686450812431802663889383036952026644078568637925624879510714303957295873274751592795703837395170477412291565732906567348656254697397289767231034852727452228256690929277523253968525116715656769914386443874107975499072356652860675894462105484302050099559428141694990069433989173240527033181432142911441016977267962329425349150790279574858031973676299745986555708120690622687502806963401395199820856193140962022035531124445148301591183475456370520425291389732474539328419674608091484570874824482738269247179701865867112630051334546181294214821020502597275023562416939301967519669981948880726127906535049536019507339663901758855312383732969083140646747114857843677355306627705153624286854934560611790188198599000869985166021248159964368686221135097874107710708027801904358025393846903167743669056143981183588357288918900923695640065596547895010998188647730170218262784810811429546405528874740355601258213231634754630023148903056713287188141095604198866730026428823109024266355432541479568448505410985590988366182245552837583835511586592616029799113116778565908477342296808042813607497697086382461153351717257824249553224077880157951951313788395454463348673395396893133077252927522753044679817240559080510958609563116759422778460335425471867231077824849596181842772629667874763389666376969809109282171610801539092697718393579625722541109204253629654739912040567102131235278280413392982448183267675675285885357683532688916289727266392267250686329323121496067145431832659954954936689900902757565634984566688726190986944990303719931698590747348159762870127137681468867691566695697804273432772547114566441529234365113337910823641471371391774645075682429937954970548602084814674407211295678017390308368676886853631218080050457632675858854865523260157262980209955945728950761409091786256932347121914171885834276967757018196615736552961367593057834885423869905846843883274504886684356935293649583006079391648461207310902371948824775004852801529323961101870328051250913294408140311188568880978266281430499197327709420627129549539012297951230144567663717990494739587358860595256274739879318816107227129507424913356017287070144703921349363190284950307979583304329012005071963763824931405510552246008342352396216511925816357975045281183409841816076040311983885352100571932473787084013573481788151835099789665350615342882422697539731348619452053286187357245530794889853830444058366213772776117547318192592548949497891612826745001391813136712397996899901552202990263529986219147659796805913064155707642545313545738710575396186798141151969714925739521598382029256247663657155546004283128965231634576174967590306919884125091086422314524308739896281004483545336454240420479786825485759832607259708716257030413025680694026018144907993802494769319983791385047449464524277375923059492003765358935936090408362320013078220670747599406777373859604972693834378931871316103654477514302680626912859912864900504960197912165257037933800368250283752639083740499867684359553663161867785940820494964586930701814528110937258388819918393054190627027575230621210698686675143155654447087549643334105426131778138687461790955627848848420097796410051720575136252959044155051274244470334921067292139579717793422025041008686909335299421951721051368145574882369868966875366907459372337775955824694556924438641243749035606805909088831322834709126942403470472473577020368190795002002598471854241616202665761341328857713953176028788423514496568785741821183134441896989536022198287407759919299550422402113792005950946305059834861868991349697273199397920641614255119531270747750247225866997341426077539318597372449789439557592791403140963140533523547621186618016274321648406936727874021290380115603093295121725855921000625200045091790203508638740370577864515342124860733555661149593411053871740617331794613494948665954163199302500108491207460601888848608429935026870207752942304679303576523632264973571293908871877288038811760104100356401780545022205888838354751180160718805722342026986726270361504237934144156471299887353772866075616503947333187126274030651017212499273551382906528439696163616500915637738645592941975976831936941561265858941758674725549022077330904609461251630230149181885739241626386645799093320197495531242968519619471822508697312902664788261578492416802297062590942299071326584303405149548574628159930098373009524130832499827249206903432233733764290113841201088587602118082041498660352554338569701232372741240828897117205530665753563031420758764447274436212999109674357225642066238838792769807347426480810539279814509393346773783583949965720818722040664813383971648334413026139404546152428637143503789989979223458135540490316435845431013473408881972078820833171961204973237265414240330740149024670083121299460056902355451528313328529087297846761590116946214612606762483615164947400139639818775635122871393761504840885369095298075058763468341465106389540869689043885054291915354028264175358545833258397500996327357552254129784526949102055191124435253761263017291790044648525451570997436431774989813577029485830105911557427497556495220333140577350361793037983974189690409883447905238835784663596375108938925782561695398676419912699418427372185875955489608628256955339170687858544345065486717044169902880265165984593109471859989589683589377937700739049825321322164676366049237726585626502292027944059607260848365495587167834189722696168160790005934804961942037766163976094043395129248215600434803941252864229856448371555678620091698731196957589604809353601261493958958891321281691969310823602789494804677243892185648695700780190242025252002385132105328186582342398835067055329636140656680833681275058067335899070188978945078227936960134527593993558601376409097490912659880375026469328620244413882931142109548648477156569857831441595679765378706050005059190921781077592601310198580421838106447709543787269381197037551729086724169036185429854958518927416495876428615796446776364579681814364771343770457756150681278503929037886095765921046987240135819337243296051988697757462073133997101839349982171723454843977679220526973042572546780154584581072997690469245855835873959619529443572735486716411114284095095761049343194427822085974926582421240627130493530788833318400235979001666200627697466212762281838427118214859080486228675635137393813673636701600010237470627514595884124895520803139178275154083674314191236989743697743795341050872561001818892734873635024399260489308025257106011859131881337769552628954575387837428897003094640729491397248469617205797278729186638592704708944905611603857477444018221576777351871273115131892593106668209390336345750328513630494303016011821516318654613769698112472926740467600672789666696870288887375231901663661264979695250495199360900114554164341844051023525322740458812866734324835529068646157208961322171287585566548276866842774250903030921282575877990951905252903430914839468174189248465851968656932214702305590874900264833417516357806766695691003547537971395138964558737325329691306715714841681421261959496065029701959144971537207741101609566929511248996752008565138653376568489846341072762545851564668290182910875561225404155447471476745010757002185367778392063568520107799133750856853391106619249540073316799121343180253156846000824571317802878356603847039680943441459440070379062778500883268880527750521756559163336078284842260606193633988058076240124133054534485302528120592941855786868180987836746281473766743269910018945518839082186642051887039889762911195868451771508074048881021869214206515362558820564407811345647555916859567572866189880638709250119395190998243002248570062927656592133362522708342868453646219479675001084306284239645515007900643415053742569490732231574627717060388053244330257422665596685989021167891447407287029418873009038340060592114476758969747188342295667303335757860639201811466593067338581868521579859345312357867042201961566176916009237940706542194697057082001845408570931021135475884475527074541710858366060207295541610342211521236722803011521043897750780885893114490137561314654067659867049239998764232559822562937814249605733224984441022532818098481169121462954765177693704489069262948332595881065069182214814472393605779261453753243070007355810953976974819559956507872610329584718214945358834578155000533603928560334074989674610739406837646049228172605317036517702376572006984977534447909643311752321700636851159321252860712776513546913698873995326125837197746671846301218930502976863129047476146092635555138010192947364471241695487190206673071952915630473892327705009327587166776247011287649574268568332303667401119469243853902983112503125494761942037539230334102274315905119175838026443531506453001795267704572976205885219341165076210522379888990583307629286923671577282924511569584344123783713626714192357952079715494308635395074198425588920579357583844076411356458586013035907110680246269835975874206890510615427997904035068949131925687883429459427008389101868290743524984801867906590410644216421271645366611844673345499493584387864709806389705648908471529268086683647828489798407498871098466320311576564650972299922071563025177545382824696681097050622563703224339519186810543941003533151308831233582442433530236115739003771195288903018829927244200640087690328580300631419092836921487398314684622706209852372000512363910035211458405345290151775980789353555075454879474280760173053755298964670039155316786041635441834146361691047790059647426761834336084586190329044566947494925343542600858127262234371944097733510447452179818994401891775766335065102479917212530610115346628373896198237471331307344558862691262107449010724992531128567842525924692698708516706603750898720843678684697137505319218447605798769330117798148880307578393636457074869093676959277964751371101995634758192398754956219478134688379788826176323946070406549938563954827132714307167913003491704085091524141185596417921305676608230574734171817811651247240494222181677845065929801817847628679725307185252312496577596234270960624868624818957754003835927922105365709153308365029419822226573235484327261621008103045195234056373097761531533798600115224953224569722027047121560056498448616150397969505087919119048881648806527056315536798715664758424999405443889003233051638352291166600056853076709123423357658327603927664584147088616836127782710130290521855251421683841892901387005228759020137982984238042552905452414460998903083393436201579599185866086067166248519039342537074020121626049885203393310618654800093708823366295178464145773220244585707985901711948042166618913681455899478091445950318900929917678241603188492891756947652616152736578356497621522924148714513414928586327622050658386290580725631869187369633764306310288193016001287147046328847721372121616705231692470236792649499590988553196551327632446063256608557648502821613177089371728454420962373165789731296298585053155507823560390547291241476229102652626237874559505304852772641435202037278546681831914351575349949296950522864951240890612956597862735383009206422725486700152109351977476444780650147313678426433654080610580109572385720307984633172188747350526558880458111713742098555057611363165178072816075991010104410340875313361085270243807834356062228786334898153366084853157836223041188965224302970105255399731876592808233820674869554736444434436645991433537046716874793256194251414182656253662492763804024738081697314285720184964991896932621430412339318570771781465448610265725753238117239751095523696198776332066266834875572146011903140500996099717156748609791276718529979263725328340920869807818767203272484502415465029202686707942087560428185997971713334814000313005662143345756717828389411315526810148944495616624990394959645975064518245585595459576629886366322917988885954177142585545189498948076922800126676852598929061216759585004834561627028663429003150521622630308688775111425690955978376197785192534361543210619154196957665849226921806578950244101762667694633944843894973472968658959986612602599951371764925767330374672750876061848136346922171184396244630348575180096430255936410714528325101179368826351593980672498252768175632382708890567638959816540597509809603713789449187065944240399905201238727350949955893472556454251248482304478442886507143443251304060128643021239280678206263324452937828308379359149514112843259014790443086665307084104323017307042809852938909673302570635267058380098803165365020258042896303705157318275680262682331273591256778696618305540869006226177059161508519867302993913779412526200495148307349488171021041879699351485156820627679488679890273689205630348465124386832629683716566010120671708729608250226455432743941087212359031973131245180185020313536060085176320282112328033259841519543945483187470562276063929323091093437083556392846244316235759352090582001387301676847668379028311639022789892064097400369619686794096262566235590427753653944932180661544867505379619502784617590813066905007285742786564979340925256122131141859974915243644200542339274916991701560001146862020003123151343370440502212283858437790122295032875599766608403996995205869269906356256728450884793463493197349271966122423896496315930766109016867882789929557967136483940556213047071773940882489409517323812776784517747559055384474625754198142556400269422841800501212565426756831220185684907086940069569123083932752756046746949383748465541904016676004777366094188334778560884444660987492951158002638358248413433267111077666015645504586218389682062854620174841130186946384404564375671854415242762529461161894115551616792396587757614487170853210862455889430522429946258281007480633581218817745067438459627156172386504523765650382247803013586543890280598669299129583086883376326134033244086432520828337935251654383776429598485538508164559849115759920002246868647805304414107922380175637395447192376462775876096899235366873900400996085615787093073898765122486294472000047112174339221434723057598932751523605722774120215832560213734212368466289416719490612828113327771136568289019955474756154026792690857333962883214775511494028916308886091824591178828248969452545299286405774338564046094455150850533477081777192114494322970169134726127645473990792384574557674403825331269063361075850193394942447723219351962216792738054487015318818021938458989749560465040653603578256212692833578589353925266761680125554640100995391412366526212240278886199773164805758159830412128173953914053303446984826833713942849494007576500067662285971869827206674456867158872127531121629117023681410543991635632553472336805130147567153633017975246894638027380626781650543740295938507006031849172032863892598653385589895818447951266407836900971019398454580839427049982400416115574093368180705223762521730086834054666870053885906534088410860391512684981824186421494437975186655943837245370189809675805054094619896607884347887118753828959761595436201616751877847129756825068254248477292950448187205108546904366760919579023230972274062477377120138228201884429841459827336603469702085403340293665940069604915033730176166037572230258812941882699288770354206803154406705565820765170733724739019823843318209625144792259601904280855151298094004259067766152284571980796501785310659045777253152550864352436705237856783822149523725147756419740372230963657714827545601559418384503816211093234901771124524058978718064164313425145214676557190716105394596938793983431940589419723660239724475864200133234508233256634409230890725039673028227721359623324298001568159357452857615876237146184023012334294089217509770773971247771021283487291447028278006264136236344191534113164410826622417939784447896129568732135359149764754592541971003200148974685238149466775847788299241945727309158770897367612506446688737172609131258743008428353868134335765866104008814665243380778562934100307465807301564967592152407000140805374750996190951538464404625334949259496236759805413786024350050185827407173609675623830574254718599117239145673120757469056686349592085020028745921204645842238732286984439771929956692693922300912110893379999532698200573774789000032725908071217197409099700364996390434138035447954421531011967703576760910370973315568396165101500877911096387040020329544747997656254254281923088862112629840646803237564062521814537135779519262138374922612710747630514758584608115922818791663343406176743046383668338304727611291872221742105444168549814465672562066179933369307046187406985637418620557896338581350915062563501028963111307935761554191853519355744191172425383359336324293377705924536306656850021830321227645039926506936713076909586754690543940064090074808175114579832968690748161776109419714715714832813533914188594380187266442746460218240184090576006788336822843672711049900807543764832527125317284402568731334041569713836020889278505104059119069088295612737144890394519835429192965367765194923258612615387765463364142864927756083815791158220128966827198915929852058082520542835067551519782044293351290718991133196534146217782168601669919346211692029912276886726485590314718610318267616164793809032075414727881470760992909351952840843632235506508561610867945236294624172868166226203767979623903527352661922810877796216335535069896835443519700718950147111570057227964001151676980297242295761607286941907190361876537298360438932360716861100050258395783268357355214831894185837474676757162074486162788019340701071539073353982951555251128452864741885231628132617415021483045204249554800173018470855766152799841038098602414995035981301582948690762684375935505182346864509275613873461520138847168384510146145870216829489131632823872608067333271317126198936008499334083451684681536418545978020895802219912279663329578866069693923698558573462828328184765872308348533445461450753116175476245080756774892836871462912560436008548215460776157406945728965362995830861100141449008599038444602464867374987678673927253941715974891689023821702285572073583028131647308234108497078179441175318329598364085361166423117804540529814082624637993148619112748212594680069632361647066103381766108440212440866312718421291343954110166708566430165799090413460982108950047690026370608301381061191356194406694662330258923798296091870420046003200554991602968576055832222186478512249109450886351252964946894351082101167303218466495428258255588427445249926316229079703217301771963121848893274427787596104200659025622604274147865860895892268135689012700309573924087143438027741424059489907997993918901060098572513778315323474523215605744440719609602881209597690806841182473124793816046367159653718202255544521948926595829359005201311147109180228290142449518053350323312603285065502270526964043741533479144267141647719593854316855843629338192422314197179124481645579735140035535380047185071588504770609109347821676640418082348529930846010849760553099582622650942033186975589918425148302092974005753671386413340685443273689799671809746823495329022830158401061661663014033675382815101939325868450408064972840554783314491425940695477928240496194158979029282652198264953633198237958472114105432083581675231128470139543309008290565482006479788227215106528796640109973582294062725331700961465368004552675925192292568458144607936387655003607324783988377209831432197123144440968985389647737106500239074139447852631370607554394898277622640335368732486147801900511953875814230831023111334821515168987687822021550433403347016606752874032041384425623849647771283911888400232746343730688505194995853904462012561155183800860694988686309180095926808891838697054827798005791349929113446360875810767940882497074080824063017387491406853256726537143172302181534946631543934348268786407370255027374287193391463173895768590632182417953133177790049256312314477740027876539763918414193522639545741060854118329521572754255062306591706931312837718361215531363531051945153778851288235046140270696897053419023142114404503910429272927407221509749368817730823050114348239313905928145864947295898487432301706646122316764009795029759066684435374746473020513130361883827465418484025351416364319816678072412363867647807565997986146216274704320785274327935408389655183386720449279717956819140658443996470457617529184842545376661449940863319716136660132536555761563196460569776944831340379860731590258117410645522088573059511511347579257811209211553862974264910450404237565910304836018823757879189464489998158718194640381475581741719436121743195730859809479706789777807723743024869049752379084680469799945268183271287787400513630026086612743207485667231667120915869167843654105249252296597631834406568291704457937903248538510458529834031785787044526161341060677417760920268153672439674723717841990913475440467765983598911168444386138287314325459643586650629158546539046602657155363469877057763539116583012483054799724757075373597428081625393517155164977007913412980357138974625014602076251618629634900659307044386523435455523927205549673620524466154544000412955244459145887939463338360688172402361107230154985822974686409120842323002581527224096871292791469998374033342945336026165461857873091515572926739964536547920008201948176242032696488376102921385585507887550867662247966845345510992984534821711213269969250798445817558129245373131781826191336370375952283793179236659966963719854986339654534779208577645134070387638842810767263379734617098531734257906114564879856727072282378903034290727145507546792376159167745642811165666530051474495748227752914044786867639006904563850683864169014107735705475369519739145802527478427168181536567325616009649845997175274718717750027007705415996891739990966026845704351951514727679201262838771360543113424245197332096880104216301683570223550074352235254827172648268378358926005551375671243992076318945102946681668383221306296005450588630108006756985454518578878226472319723513568497581647819862105978565573932112182409840791130831379245195532844056088416701608412732159945254380317384270475660851896160079506317484032557429542983348018375792130383610087174956022355930532570006408869088507999921294840946227022984937593050541427249280822106991932284068078745604521495120608121705674225948975224865071436828849553023860628169256492539792647347227985163333890768147199971957759524450476320727235899221385024863486518246747379121673414735202963075281264680794427196285320979688803229524659643293433929088258902407464295844861647282567577547383381170312023082831179310945710297661084637052284256268504294048940129963546202991753825353938634853825720768077411902786416206927994983619337068200755667496729573220722218283730484408275027414689300164924685761480084201602843662881878250643278783443322870735599789724156252668757673566838953470365815188249823619159471490661768539655135776104141685918325215032413914400200469751255431776412842898072091355434532472596502389049764222669298128171635654828269120831905827006470146579205199257382762293145062706183167136476583956589699415931699912857900578361680733821058163779347836578149326341666094260099253515347149843608696509427882592957440629269775684138310000514918957095816498287200622318468777232710039020295067787953091420268843796861550483469074399370186328097937976179969610950269080087770950741186284369944029027477838320842481762636147968190309535930908953302566982577806550981679835317984546707214662510485860127102416950306119028530193507486883459741814749843470803705730134726198306345154471943513635130701651177608849478561425998419326109267881286829122548316526929212675990236470043698509093060529520388174453401958463102968015247305745535644600057987874943352886969727508092412695759915928086370818519084435870638660657938101673617989383052900076902893940297578489107973980404442597920895611314852572488907769691256712247733157314602464494008214070980194824782100428879112843210565576526107662835805873125749245174315056547629451734338491692823242390552474152283900063341095140789624046451384884952137872989285299081557632003536727719426286036612600341968993056471844769117888937812967368244961819951184904178174399924553043591142852504838168286525529388593027242816688085154084247508655530978051747376549499487214381343092045911061789368012365480688418231096321904349445635791544111502237738838689255013529202414072067528842272221228686007436759208804923535713472166642570470204579378441347060378499136402126305863748005616787698237813791866020056162444419852742013574738343840501985827268381895362928343103655309158821576412280977203158949684446179843509464842687700250865581314185097205837287370734221498094615058414916300297998880299420528385513024832486143585706999181012167808906352092616821255653388506621285020495888580756055020588310365470327270652615401757025201999422063415848421903701016051472863422852175424622791303603953141693135891634106929402412272424152831210914197328994959942561708461550921971472191219317851544789188038998380044215023768463573892682028679204003355657146820765632584269655219296081218523971506815358603136634369811414760784561548093269442867110432603850284815714166055964956706061557289330877220212099798409293698242120937565490498629533311928188021611676355888459916421076911284305206899838298294624197801374179306644176632686999209459540368540105743168594315110221502002953975457394942910922021977590720016321885789396501458873637915484798673405277741108677388221414168332441531902031497521630628008088490254059846688773660712627572763400054755271655797091321152748788073019449659461491656509575586285232148787849671109954661693733963769378052565659604404435295700856498011317950125044785972530266170321650107173709349033566970806465831750751355159796081433277237371770286096207447555178232006924565733101865864576749069546686222003241353334607081643247411673885167005552769579716052845219483149292377345066150557171527211671447804138470610252380610931775360983268600032017888418424950690723555755559187352567604318705529843581283057264696656094737644738595668177309113034185460372165347902532301585925242846259546976231454585607170087772015122907617391471504205712928161411083673151232046220859206154725424941376360511753788167962333356396202793790809981723941269214111396449968883300539515239971463933114990695181957619848759374239251776842525692196739269552522534618039034240884809323925370638262941718220888138571648002574791598630745156439759549184833459303225622465525422973963963882448462893193921830510306286583502606861637986831104297728361301347982411758074555787735257479239923558815215640661384547838715626805999441817551231159541132984356682046822545120177809599187428508773105239324123754654789172338682451272458297406779811591256994404489075848783771484431583083178950901620645406358749841645232096354996693901726107697121945430481938013544968546119872880947870479657359610709117668947112994855544137805727014282905538970423685027412227911656378322345297781800138578933738674110418494447890152969467540284156159351314344210935948422537768873816747292023085802932107551346172448026091488825888406339836941794626210859248423300950400949612662061310005625954935924565919380688300882372174289494320724086874142327308687514784699686564302115146804434401393182386736479519385496336438372058608245255663959566993673463614437177387181470726053124816192180637078130299078468440973935828049529083558702178501834051783416239414736072943382770757858850433382095523095762888121047812460496144348137475345779070213658705303351832827208173540380519843275152151751754165665555451465053424791039514749833626521130520606524072624231693243400104829539516773327011406055356443116736554052418397215965574227512345016994165446689580312733152244295195829834365509939687626492435594822723693367412006795413054515027846413994273241511067996698071455906855520215499378764257307218540374975096750997855939503977474855291320623067609080693574122216215367679095801129968902477016820967030908913718616605562418347536239037519799521005789825153967477132748178526150756992839237995710454837736688541677433198246442773227070741325344821419981789681090573929324832042911517330921066518841899148198602308277202187850762570242158252118776294330764357675826577665184695401625711884252312179425757222988899440973402011290925783913705732096386627707444645805607824404692649645036738593949571906118319151172704734468375215031574161941427292121620523924822670847449943985280316392306698974450280141216933022625901008200985483880057575323645362828105739321680370454239542420496423275950866274078691413279173684042235669221848481574063855200148532144319390154314736812429161578915687164755146191795625188164342053477060201678330767670132373063077805663819206766848123971849830099934213962825985311501601271149207671741065620841495183577319768428125410133695347220663398558855775422839176278497276608300511247131528752688559133359156686746451013932661418359935449115897756660713556895589921003413346059008347951455021472633791394756762798185450700607679385299157760470922220820086052767704969509243421877504656568251996251661604567409742813141885595071780634277710046986567246685346162351372146846905763418362827175650999967279484319555260810143725810261492769404513029372766492948306595679622680195417631699618875814827178233701396862894898084331663809432055584866629684076138923384829938513351985079692284257167312097643001895188493569185514895200453949388767283812197811064804297347900567466156320426621367061870824634890542287960764940162011645815123722343483056137226891593043483659441210350016609313349266889280540405910386910954958112396691526143451332624510793885863435625872510619325413237783556947323637326283164125379894678871527668183058921311797823874902173440148030762312860656227551230063954634187783678910874388648138620283219203152762907825854201007796520465159983998433830318840186126851279005054366182944967040009812665207412093809635973036560708175074328045679723975350935091709276243395014157950274771605612114742963206651330925141092066056984581218051298132214599473024642086948618834941882843329820493928163930669551639664780546930805212535965861130738497898031889587407070219378302806922193452580288764969765734351268487410412058810685953445771330399754577556422606144608549960215483087196975227148589480332288201425371187460005587321942104804683767739568799790512431458833739994518292245279387734517370007366960123824349000027601603320012681094497421415616547063563240756160304057260352601362989615078231467834555461364382338176072228921318759799160638067438426181592671090612627546671414032920839788080668102158225635224937798263024905690141804714516822504517973398264809276743201907002581449222748987998622014792801372507030736904039255365026924969829530795194274887328906036685697318141619333415647120304518481480846480735743616194993814074352656736851188854942289497590700725959972455828142305553790173419282662919088435854071661906049582017950360561110209304304470425907917703312757377008756427978633870838876333846735588382021654865820096846782165954173865863197315144072942753523966293669205478104639856189643756639000182770430173066282568200894818646557036344708298302746510690225415653560748947641922083308968460857073857841249140518177324130551253988653082568104907984079292351395958561879370500722459330170027712307968823619612419551129160433607585917983484840309183199125419258563379122717582494885048719283833448069351589323824007493079725033128639722438225683206960142022636339706345990902963447542307074578217397403827055043746680608874211671432974994711964960012292671965270620084858405146363760331061578519148165451725367436516095114433180613286408548954608518288440080871859440129084007562794900988502759976775973070991523318332505699594674279077535585868898145733931849899628919518126197963674979603563228610328624821856484557891332838278749495637533010982831047704499261419820009763677500501611649292097548645788356759552487324847698221619561806141127789388921932813872798011806704473985835958957733656206428202127482177580598789945043392983079531884666215746838122284799025037738826364215720683319123897082879455900116343157584601633504084158739584679231926610746067941967406987554245811472044308138915200781644414445155035633991154816224675347019538638442572249062780601142598439196250959118247398225937399118294543689306830315393481237100066443860329394615459376136581306247870167088320104082957023777317628734429498105912112424415255823042031610963662764301290357503535924077624616426378972759188844624021206231161984622798963470430700298141275759802688661373974656266290286221247639755506105869821109082410023985014670919497563247627793072302734853655102778744465709696604533990116419121482038453563544063491031184262657187423197000683897718772827273232385011147117944442594494657210629858623606275277768030413143146996851279961912343232505681880673625126335194867889263260436246171791607140867668254927380554021088106874734594027094819789638061419587111931546998650595482468870926408387741697719927032524267077430317556413475387759860585686202670178560174641305310027358132831890081805185584309017350659052215650569047101237311692953246136963891254584926727523498041404390361937567540723734198317107625950494717255861238699033037100337653619752855755067058382109139247069538580623972845015930345877546524794300167840375847682974101899399122058361513463350045647774543226448424200139415455571245041937636253084264929395076721282084276657407734236295240781343118388712466763349266856777173370130670174350321859015968456125782507427321685884291574579930890794003338571901490221920440079786331703246575440574822435980229731652231944438535192501880550600018841021154418945040496523534514751009298057817262813815738384200689018167792941910691733560706352856378122407450480570326991007891526375313765369619462747807604586066670626463458137718301404631498432023451997800305730979863877407226188881780391933319191643561445559332497123787169847334225861424207145700602184694340560863068202898528880000179586878580750767867424712637105784676269647837839462901775311852995086813596182782961806883145224012415134634847242631250495159109363331938470840957259874252732700768284408408632061791826444844846437525814730510560061893440580254946016369394598478815062842366063124209228538509407109155218905569658505091022497010689614190634707784151503377350852492192951681430703339284944052289819244608800177777546617384765572563830657575785177369299928881449120091646969521623980908493686465513058200577538974931837791833204354402537348871323242355926179812965495704066175915306487705536974543255294526793862093243665458743937724674589436908973140915226744303877574388453905144817430381128999535309910070069162757925814955223391408946002810206907536916250842112887981940427700858455674220360261992834140118626922405560914160962406529610639508203604655908273442869782935914336899795443958885949993553131757477032580518148022408211823499035206651267859582946128871219035828878942647400075924714924151904322173508989182999710119188012649168196964088181322778548285161432581267853166096982786765315823512470592035225123507895708594796239817939066324909218434992752303842643305924131008065591139363795409322502966353031915794460073484808535156432609866914155924140427643003262175775812781099030203136422159979470443622386587836642635451886504333228396492508603104024100271284344214681024580823800807939140344579568997272175436150486331494199255160474332537468648973300487046644124339057838923149936654792479102636292981067521152883644727107455465305205613058714729204737020235082299682338801316516767282778926996844379996411788187458350093538953674365418733988951187893069732288018795370725083988898101098749234116430010129667119465291615789307739174105626480700848652094951991423736900429015695180111384878150187587806501666139618115231539431927841912532621690077869693284860390086797204848566630794490820758890861887347656352906972540146811190023115104948184936923579028672382714527464460132646940548537240466157987356995121890545652766009820085424782775651529548981585176652621788269427421532850874727810148611830696425918247209205481902297045599199740118473695189022696878671693992339672674013493023171142343971873833022966678421682326137686702489271028289538996748294324312598290563518801785199753204212834835273142752788200702760174319391640496929658439209446809892063213544318083461880418349788164395519114808048535556845583138842887391227228723674495238842420934215798918718731892989646159276824988663337007976250135219030209637348573290057969107409296259068946751473075059252787355206431523239091735785329111106479189987101048706872448977485986538806093643727302870833503898089024583563538449896173760042949381536080760250341801350257495918116469115373734159282827699103932759498702611127642179250861732007181701288370061439338926409724297333580715737735667070036064511280471480107199810247255580443294952810579240020389421458238482943088291854647155455317583732131145484481853378298078401565985364439600134137929378122837151541656744681602500685889847827555566776131732766651642601781954275443037395555064390613291585273958427978145171372074815444482133897726290233469766640318474287095640613257037723744952742723636785172403686291039326063630847245751121864273327057540392955982064977096920797716623087140875555527494796268046195190300571693271491407414737775647574285588673241002645571414095464653728810374159145824576560702633646540615933945205698193656249439064720599392494618938415857034554620319148677274774079191067121596719494055942903960132000640995909381578322767294650125554095339949266825352325817867065862149567776824644539061177592524943580148526293909252115199977273703232078026571259422059435901284581740393707884794918573914721053169627383122418218847278409948982825390658909257297832282379938388502024912315874075475595875390397670603120578681031305845286994045870377560028581805057370040258367807189579685434333941463936295557510755699653906458748770332344995558298895960240200593850292488341288946289266138359610865705930284224215403944947962966258631555814710711921672717981950782895515606679501631000683915119896171235019543511621395832625589569364064828126995588033059956488529017364159188428789501709393900723075060008630875416258532103387883589839385301939268563364356593818305709869203894239906078092815674035952644529786818120446127560762046980622744486511342908812940929483200245270818557536666645381049654476420504791308311907150990044480290352271820517260913803547436424940900649482595807269496138986450849433538850185407173286098928494832430647634722066580477600640140293687705239569337790200267624628879850958485666378163591829924152447259877941366375664760272374959677632234277501729863583316916371278532279664771914064002877455043209397509467354339726965255975668132172395722519726287279427886102231415568712189232514349398783517102196487891540509958528648433045240762670965403374239800456802527056830806421434971583372425001612327190347788062015607832684899798439573210609349962944964362192031806912953959604405931244582552057149320041895667268762066132370520726981348679400770955522814458897685383585484982303621318541185267039046457319099268057736588135213287064627778245959822462608172815524367959742616283861922615852327899879647062203031683446124370555917173146937859170340103884588183340699887620119279221001066783078509739490788352004192846390375674621788037985852059361149391667578908391678963715776930648421878980020314883955536352203532411382551536134093948716968354775215497414575720425492339521069308112110351155928857569933772341749761681574336189187657897092499501020741570258194531357492190154914584795346601411507013347274055986623421106920845133477942759853149798811627930883872199604467328357346240910303744121082624953696400111517623751312624427579334035483998109468525696978143020164948330838462503955715143878597343571737810502943337255803808484134006291653362450248627363824962882008157110060586595820364352561137833392786463848595533528041023462502931028275959204235418775998712924759461049041304662786804459662120936280490660523886120781219504677782247050587036358571357269900003642990226292977558942221939273539388124942436657990901817450310313306551140734752429162142930655997679185376860232356199115642976521448454651129823931384762916518962501504094564585776585906568662970528225656381000446813158934779108819261980115163470574659234241986545822596568403790959688904893766930704669284739211849933779243347666863432991668622039553553993696335935044944819209619757050947410047127218655154557625531975142752141461682633782323587463843315947867616216989565424040572879368770455055446959175675070217643203382491931701224163560932574985361188136216428899586947939570940016904782203938057953747051702494912923537727366814753032741110243775506123069432491128457900708486593689059097037406195086978887556028263387967267003681636979742340772774540410206680525777509184822854950551417746292334250920040889630775276221500668464733255944841171037328757359242831901030730395326958727758586460032526279477162340375608816143210371478476384450464368283948619042136778283832174979600789603797989097648743032194494252509767359866571095978074401464870191233603508846652710475189704758223258662127812886047250394053358291346025582310432330444816562317758490355317897528156190938193054403246135155833963124966887676286098285565383734322163683095013616757689265793526924765716804587161214872270653176668486545030531730463788500430891588043377499509835926789086474011119414623844000682472779922782236888020175233664183808990864374591091838071372913709288022228415769021827029739040081475524732990588103297333117349676765268141927293039573999599323781384591774374796375092891867943727551772872736111839097189253276089789566225833353322423607851945046686728326819110927062362160243646240812017911796094185136014475594958220602787422462004091657344380641833796278170514971086395749311814524965965162551578612400857305562438153494676192084468386421077403370090763842889110467154592860084592894823870404461596881668346021326184659446810117075600044646776776291835524500827740191689840827158368387706126918530417777796865238851817849268626808659276092332108633020833132623636747811476715954739789492893836631272863500082562415903054198131653011291190853135791466592862303315066767348244124917275125221884001651458330240596933096169821941143285774197784353937275042831241380650016562965009032609719145427289334489984756362608560947637561694613872256056983415305956760008027221524303824955397556213098752164246374570863892300759255959473513666968574238278589198577216405813054212528054394743308864609651692834233522019427931716942965344209305669025953932857017793890272046498873540942150441483726436427576473619801280145186371298695130329104016779579940864454618047698621901810373204978924682151314057303008094906533903492341731867986271321951899965519897454384669575774504425850248062632785453591903211768598531531693929791285916253430950674756976346639749561214314746812604567699937616797338808913895349262701057372154780967190237248776390423959141161452354524161233334141046494520748649382498691214900795922473426649876988249422003618711114458107312852135594455200571486475945459909952489772514592197581450553447316032935209510455817724327947696737177922592130367115063873511702880549531493203791226291519460803515709054790365377724671099505636969605626693411992583485533276578019685683792708239393205997528765074931628419083192406932163906227010574911023408764786085885950644064528857569245468984067728196036753080814231273352960507355212812837582019958447395164230651787764746617502701834658478917129442434541309423457220934106686376938601848103309502007650013224595418748404125569905572435740957376329946448317329826591656518220430483132941080038063059575950614151793002051385403886687930522869130873532367405028642368095792670300280942339726857421758990456522770435083624867344480562626861863936384490787183031239233582138547834589910584245752227144700907249940736965977220560089451456635661162680088770417025224998138552757251999432595930994441077008563973710738414248565780862782946492849623166018934559267899351125176913988954555458005275138273950626682116647196093344226855682298462677462134642227753540259865549582280932307413762829383261822909254799326822141408967635993195772155433164763208010903785325986744321341046825968609123044171697781686767895505356419985457220817940250000617468577825749598098752303724354644258842590358306588360082410705942918625294826533699111777216484290123885019309820965379297334778599465842101877545836610219145182724916822731918548074780379329577399313817322085022384000296925754620797896722396972971676302419337375775380210421449648090111992518387771242028869667197027889548107109494251980959291396741128956539169590112431836076156053513633614076495033525608290710756795032576573992908777268849553081713475639999894310758684644082643487093771784758387319315822334095024849365820359894987077151227357537887736128318860201193449866519260560290688022484239520481400777965916449379274709829437624131863999973042003964960314831373889296632596568158111064598030658608482775863932977653200327577100511340606639795839746022621355462441974481242390351655085042365517969316607278797768423969146517822121523202248282648335483896843104579003788174278108773274308721162458403376679440240779820196062614439125825379217859218530477778733539684362980157399106592702295476613029391564912324162171896334771507823393482516445894515623704416792526593240817273791433629540402119961335632945595686742039494904120545970534392091380857830239219992042991178320621555148946689367677710588496716805195845746266103115347547537439787588793995767345785350646522921905298089221243837753335159753945350455360607483831031280792014110142026630038958536586813500092818851579691347194015472403995940234112182548818873867000691465884360982772575915202776859387903137967989360179568915867604698603333956435533673137487570946548244216615212787676613900068595931077868237342166466493444311987560607512528656529515628775243977939190113556451417143103319356017250525594298987468987939970607056547652404235845525801327629848832863335627134698091431303470443405245281925129429507238944675133411546863076602695560360260789586344851374002864997026302773867646690552178544372856750651253130056531817928290183509653349687251126973639869587348329858655882155163435111674672598473492088148522448794542038512370899513647349703347264774964826124181018217373598413186279396701015017961771984703334694665635271123015957816876522364256611081905447442220655526996445204077935095271811121749739472148252286971922609797076840823408343935233358744763617042412758743444905349798381506459626858234490031179146875297758840124290190217175998913354453027243724129781371231682058111333198746528127139021992515775344972855701995669361113357077813402270368893748887753560653285545499765900701918647668265326625164111181196290458609619703882950781170926986049173199013167324287451019624162679564972547166599963887298867964450829414001808872226897196711744173485370330303432297514174716088528283862164378869537197306998729743389382554706118459096567400809594999130804135920278557379429541786235838880034635183759743361046326065182337983752674638937882713180889865166098642712590804342677431801939150352603170840637387164562206234212522070794648096604417231080115069280475322040898616626312036257991497625922413075060012397498164822498743755452344288149465398216917150775212740253052555503339583989305576262498667913477674734879979786324713077456753597236677942408279436622397233666878076510750138349379621561867280918048589652268635327506342192631918745932383003576732391431049280614530090230428331717423662102963166993913135595215515191553904733724863828602019911110780862332156411447418538461531127092796465794311574272522827536656632333396872660780995299476598272160888470972320531428085258634795225333520709314472421847701716483781126989241582221580487608828745870355465490896618647696569375299814997126414016357093812033500179501337952553124776773617065659695510263499436922642538623606805021063009916483972995296412979161110094341440074639321493411588098761378172876363474696689768808663789912048129179903066145686337152914386841706004583888537138711508343681147005797732379120658309330694621828941324762744318148284125768881222922679781732820534494161399384245134210742015440328296535632458605916942102127869776233862506482595137213412062400103079260963412753424390664596975432964391468138207374468041053219396529897517832147749136483674444522902612690683671511263533138809778862130349785581552178647216597279713259065505987042052867921796882386683400573932140885885563204036430155717401602952222639190607651127034192452033619042930225952723698765113463361007032605694409188846102658934455131720165225717582049190586879250257934214302355979525477698196464534561766297810194572111795539089431769539287513851193753454617558530535032188495947840194115976341478656173937720983004255679266685099010514645045065922346718165884068050920130514175997379907018257376851503420582386728454038253388318070731443106552976866635688876584319656584076761014772048189142982208692437970776053255164784248133121291905773369391578060079641288635965934109100428967170737258766361995307989867428218500684773189436436098884586350749331889230079115820965078350449389162191150841822229001437963336224018907903132050120328670250141842580998054551941347312786827594614005719081302158597301047883985010845922132953972546574113205240649875298449038863139533940759861875952155983898012943675030394550328623841369038473483856588930058612985892857080823173371914975581952291107791817253130904239525584643025638941505336477442645812415497454724836899529225350376515192045013237017114535459241882782893072737684181157902168065182079192170547803405668573768115796090641451655108840157512849440357205462622805739265890775954318110178900076877254146050683746775191478917482771044244021019259399811633531897088821599912619958536006557164068390972567284830782717937027717505915609433736969496712846822403419744277656698041318774071872200091800718044127613241202296575292111235918041087786577469490291471293671460960611538348160059804122998072784562641991871367282726565524029344980521817566419605129427368946146738886251397447951137015748013811663416720730298147994086438715789084629125205344138127646744723705096489853468191717317647030397233374041730014549539652006327810297407111557630442592069545586808021365966221649671366990347748154863063235897902179259893781391908085442928727807282035173434628727468772163324813261102807953287349871987164281886785425405854777999451187541346043179677490376642628662282439266060160667905700837591595215249211867560010817180181163210521658528047455955194921900086549074733129415019633676657910475902234344529500111850574820976400890355068072029633831916337011122642633976803637544492960098915629500977909344619251282188071598121406496800725590145620222240004127366522727871686591113502977812346778029249035824490682953804868585157119732505649506100211145216036431907874438888846734117514139183712467795706744871729284560298051934035049453901623749417158109618503311149108693483096929454101036531306923728644602087276266522067755950913275101152827750159774412967723068118788710030300945029202323502420124600944161215899521567608877097459203732414493066095163106499009035169326800963653920172562934131582481238811048293178213266186668344903671916724940220235065356194974712747278459058359713455045397992384351396873206903005036347588691398449047049272647215123819476624962262511961105957212418134951007408631516661013780194481657710422609125450341346248746395552993764735775145742038413716445399502837001293991203318279743110853898244470718258001773842110950461257623096760104555120033104503214566123246219917762335516683582481595584969821626614039895975089224435062488590282002888364825382863597884311907403413440927823157885473327552404726294094904238159052442525268388307505828722828395843586963985176576248692690209843170584261115313467669891440192404027145735927403304285916751600973382597047416195948773862892913404913266176356643505021739154799420772572828420145234641339744778588827655881145633661406973683467055013003137732100949367469977577857845646387722188027068525421516100753455586571062250852760081076615789804433332768769585784442592441262011728792671648507822173490657559037528848421257031845586452920697162051921570429955334972696659806244215115474817403351388105493468605614735686262992932835842274782198769178754627801791883818874512220166404378926334316876093222434054505494697763144750900169942897013125125773545861068911603293796371364553260742121185192148771976198044004125553763694882586990263129391240079809725813170321935669523548681927981711955217231220036228570629335919691764341125470538412910029330726327357246957549113825209546657997815830880004381939186805259439788742093749404966449808345132797654252609431748152993301342820320382898825127203822813572919874288199303103862276058841051186213118121248386832833159708606107025890419386122917774274805404544889209698742910988892646533869203103890418842067360845386747718229800780034284168334430184720674364230446227921431177735665307135762505371167784419155983377740527080891802031179147641618999758144539936455185608598696646454436566273670727730775342242423735818263202123342733035777212186233320592054316069720972785866757873684849713687090489630527296406429171624834134981228766599617613479932995467159053661777916005229451318406085220202125126999099734290380125559445417498822636101842757121897058953198743046360135272389031141941718539783149733121293508425697472762456635495145958499546676589544850909915028756898063611625136591194337137406144447952403722304898711249063099649375118761335508230752969975097086229451319858651757547136851435778972334025516644568586749631495873362141729425831824121816035588563698705002280965211221865092893976397256427697306309662614940154694532216105765169804623930418689173045944563602597598940668068331437433755919960734222344794080049891466200434387254374349428143186924800622655618068189454600858638302284555255789292229215317297341307815961033981207702957252013989710124508604865300425347726319193443171384055242634643860282302351290210268643742660365928366219682560840350182373834081592210596232568938515769185344062780796666340248827095376239369819313946328394849914476544305736498924149839097878874879765336182650606247133914627469825557846593688136085550087393802764027901316853047226271737999960531830813361250387940789874252661040923958723204504283829709833931256495452631723597261028045660000780040206690493965424240109993777759200763050286902415467267037216649399194842457972432886968648225334720391109027394226346658881221420334983020652390870290047854450179080675864303133133633793687333556969560767882042516398425394135991256281442640152080945698480108593271376105532971653457482294358558323920033229105275446593425118781254730094066504554743180083177324104059044500534200883325126573777581953463180723901517296450139448768249155917367545557642774743498579803381504857268713406826770076268163995861215557134808491825918933589240872526986914893127515119050688273009323496722693721554611801034085188041866525409284538122012830754471173658341212071710329242502701374590344901002059534649411986260527211041098065266567055058651658101619029836215163887160851457998501805963576126539410367507340330999150428405390394873587493865119461762114846406736764583278615593874243723789902043216195651393580686267429324035177347437257364027833026783656563291293034548548020942630238380054229396456507578689933619860551628741957817305779648181089943256315005849176283574098211477555105624498639809202411468018672111509757116546466338323064111221431375305635978171640302095108726516281137109673658995676316579203932887784856337412665411638560435465624690748203037668138013578129134598299549318760012538771193630952489482871097839710495833186346501065813744344968111908214421001532896048538849558774693222027541151681611991924019796470172859610349623499260129619524211086088683099426036447555910941870273366568016987104777372182643661854013968226020775325205947292167387950802354106134316283873578384247317627744199798943951974477299937680717931649244869586405888535591716764794543602249595308815587640605995860587918047314734732697666879490408863425587210544794816504086350987903061201150844853144064827185832946432500909298801802942441713516754603204164228773264799985866460933117751176243452099754728092342008057599525277968932355052917439520634121502127814222462632931277948060992170690940668765583392923900237678201435691195455683106591502052928206173110798084904934216849336695757110323762694453900633681208426168784288965490613293639517057134211694893659047586567092378171452362174278451221385519527052837394244345404544276376363804051635339839617353471849756406682072645527771628167408887055797496916588817232792301076069598326468942984546311040929982364875131596406314719145036581111057977457849007581540694714470229447324040689546064507685765690504084407354890381485034546501341494365839710594482534735005747448863705067754545361800111321673225034172019333839931390086067228838561133364510033740901568488639285673716945157722222990715177556631272890567402786105265740991610981690052969106241929331664378260988150464863574901571409829766090714150362852147299577798330827519822513712962448646407735717229023078602294846605871579117505846790046688814258090853512467961620353842843658436542570753387555780419389600805853649156483966344235563486350802366259317438040057488819335501849246348153223363783461837393498722171293998779702880012456946322930476799934193428823445819881214726413604454394831973477314462840043912396838528874735665065344800724716881587695627723284312784298518751376949145987050625810972500527082188785184124575846339234134509909228413313338074010285844323828498845726758212793522179931605058040356907389839175743913094340744497254936248620529939602951179267290416103714179991208033845951996696951053028538269025640964899012184208902070225274999957511183697629232451487235835688279464180459221280663847456034474318595691260820384659105557298690108212457711183520984351135353812476554117256940554189793731718991714987430514963654570788689418756262502272615961048950095930622398823389215362644817050024638360234287511971667091431736252856922392638780083037275616512138811805840628319995208391696195504493834795311278127807725407078846046334382962526415447711516262267570346868913957079005069035144660931050761170704625261199510483264626554643343237186494827235550275450029911213770606617024736690178646183661594772345949152348393411880699978686920966963383122116030146576591735547564761599274219241715142821437216547678004557455675320577543593513785656537766321158776947078752864625231997049588564972861054486766782191114338355089283726528570899100151350464126167877674096709583703893437954548081223746079298556011460611863480197563700273176216704511886902268512708233692928965749903863098794777354752676437995210619997768122988296542042612784151483841283341517989476305789901222261049919940755156686473387188768530757929185935211064024532116503169416871000244206459507403503170148724960114607550964007682594576887985510277006776863160562406983486128249281704819641345308725569033251751154567512243001806189856548007568814852721767823222780993605941198523446795753240067620628049066136565247789745242422238378781277887668844545583221787312051364663411704585404247212847253274872063756769621550373287115458323996842701947731821781968029567048232628920841079808949226140588045581082256841328875585767152541315535427555161879220431674818907315726422205214544807790393202265766053660579209404531730784339942692757317999316240487902372423402207341594970839658091315745506625283431076253804967644395228338339127586984496576131140235975908539856751571439103724142365196285656737816851460066359320181189440663246463243289952490331404683150369921442495119492584562572029303036044203849895228335102419839461967479626109154725805966177141161880486339623630468121264757287022452365326720475302189254463003342925964546262251626400864016877581311846333654709808542018146627329788313806210926107151290702413910518767095577757145896102192436427937122367847639041157607000537542250160841827302221404063432869978590600080710868652540101472463622330570860071159440998734607658739792726018459755150188771792851975507060534865253876785705230142278310917438944577304899920633387575217333243578141211550555101423439805021863845475569926315421759831695785921493874257689887172042769375806080154540925113938988366713843430870288927097322943664946339482022768626781976894665840942813068203903852934868727223498950295719870030903410253257974057091584945487329559178842980122331135178512838354494318333853620602183589546251762979803571003668324587157183579082902994563442943887269931877123631949962796134504352856885226671370954450954937052914485222468333175790550043038516443637640225236708716949582322752257741410862508799956423986383163306426634211812883926167158561811938371492370908125659839164778492257737775360400604291919843968560731178010622582420589686420180468671405656487846631575596450299896569207235231346795104561932495663307744739741302875739483267632126441272248633558980338285353216541076836993311325446083256478313357993468681255233331360978157867719128446667198161095733841380578945126813315453259016105978760972664177177645800085486608895323638461800528768290729904867644214916004695696691605671613827468215360399893818259957085356961153867499024748667924362292947135585957226629503459628307595295823552971515916472866707494944125936935518184904786172069315209033961605752102197000236203763053296829115505132618343592976708094099708313705113656941749614019548089153715362111958337764105432956565125053749269370833770888103926881777039331894067875775224590394405707190608276638621425640622350800607167639973360926557986272744503689508766760503806351764961487388623020836149238375134121958784577173689815012090236292663566543137496039489186167588289773670416056309339371931086006084496951055521618797146676071679798831438855699440463514920720234790592488381606293018570950238823825140402563400791079206483040336623022542645587650439358721241845327725285249427263793895558491900419050738256155394667111181226367332019438551170807364447060028246138474374180762036434062234252500487463428024148320701238506171991714539728295831085792609849252842070694454995854059328074400467356718689884802383438537414860650331850656848517640614901858190066974295224008672722224235205367834106441416423635518469978710532489928929461614408166157087862797396584992578030929997663445506692103398357356994234332051054460257818615000044953025217822265499159857103150617603724132886461807755910663186855349442191847458175880061355308252314169485004452459250962290036223082793715209145314372088232918154242899743254801467913014644878478189276958263036073352419161498361375599997409360867134743240940935784499011764895996146274699376319765327296563465221464224044946601276324822487965054398002256858435281722661191831230032677500495508431000024991020702331722791736119197440425019453990611456913303310570928191058762419845005598919404206252424142307555372755122758921262889003391331934943129078294095480941867554180318267197843842592464332732986690097071853098399012671324148555608092888809943420213010693960363936806354479179851776286811594065088419909656655806767626036853908436694403923244180715798277995811645522673686137689000593226980071865317907780241489828086208204440036288933233964319559749234749180483940473233322480548715723691531680268481784666240352051857066799048516210189942832138409936007351142337796795592606678369084906852216755414334119043966464876120255457767011029567933665287574847880299064068465448863587511478608249893376664961149026770280842543943604214789145686945595607969685229056193959269468452622885219246268628874237852103160885531382134744924690206722993979929765416078558476933034414014170560024507547581053924259566831100258560525107198558086038588467704303649358668698362998164035808835506014513181034538304973591664419423917464577933911141230925433167340284457651421831778401417307441524759921030767360561423211041342571661440589056266693748431966769830383989027237921743412369482794751998284510199776268068654774321485126743876921281003925004255858813510654047607927435727792434903547906091079465043852943486101944662198359157403578224285224575683893387840462449221574142090505716975968780942470286787987738344743940963799894597793412879342682627908741110395540533559009060678094746191178499197014283741307256755944344543235363731669489055633834786368927682838760919995866647538503877627512003488112875613541936568302960460196451208676035048856957369369105425474071490024194082681196063441424912123412988426772780278837467655471361114401293510085150658134796221284810107193004661619718782062268732412304455079045313402366134941800390928491792776056792128084756906069412937110429064247232677497778258149575952829574834495585353375327411863716959565648508805959185759116398948573567982828826109370874866883598698903956604750940923228561144593271476233501273526141202980991441462104500433688837825732908339678594642361617782477005044609582399400323945016936302160648457572296786121499416353774442207370244222157999199780294234230452467128829839402257468187347698089145679274374147834069397063571487355868315844237644971309117610685864476052582807116027131508401996724204290099662705550440416582853618974695503853487478212775198267329478665609446876683834258202751191066556649074080677723617755272838354750248508850334903908477274362488885466493003418589120454545830202141966128188608840830936923785279714953023186218181064827785324788149021047033433452472917322220625690693766363063232557268957732948851914372785396665864818577665835898424056164582935815224625833635612931930577270862317238100722411722829128269432276085327986291005203057529943694719518725038672011385297000508850458711042253667223247601682515071306666315435435344487070208894392856111341687996185145852369281811755017677416858973653204473475274020321782687633176887209802706865522315139309953886017615494405594743774984842876657308341757514945083519362797737829800596016008173574901974029415292007361894933735722340499216852281267624947442207401265180444570606874623710855195791936780288907753247835546529204679585715923711650109628064871021366175429403210616520744912788635739740040648164129921855092441650455325635688800361249472307175409199095526990450993221566767738762850868797373513910490430671149897058234815976622572697192294504870719108330810396410965829761834347132147135280763745276252971520717286828494202977174623544902327374457464460846585068055566856975746168566638310411666904687624597717770606205366615215758743837278624839304796218650379162816680821773967691937036777393033072554110735015622169537902196216022526372061806470646083846100280071043884558861761403380613828848494028137834540797293719392090922312340605469787640061603111221599113832664232017578157016842115338586831926246095079184059278440265756164542904591550545172712399550191640024468266905600697647537132389454372288491088522860878325416082450723594856058762620014749178473925102276606790316766808361216140162881378759007923385487437464401644269316170276961352115369462128514023005985242195298316505246600576904116875061945150949021711049478699430388196958123780958665162004784102369321364645043731170557087176900602441467823439826241983358246180385511506040422109110093840513986105283666574011223887052804634671315491579379609237825429092107236949924063077688038617952505958615035237796520150477424004388142629307306878250358917139080245371878160314924369405874073158834043327080000898079122050708922910618554970116438498832473962826062416765178686922628735916510045440457193131045702174369512476554236207556450844556292614328219469485957222898713249467472901395436603964714739662088943402399623610640958173390351641381335769985861390790005300640093701441407089885395159462830637863345581032443492715230784732201587522829569617823016085829797055313972649275922791499330775720999491857513936053478339532371957181508797776033254400086734725315150035502026867356299802360780738883077494170209842466096167355246653326303413653272458262881115494937305508413873455160139330276123611939377209447908145332712311132674630099088869967657616530762114747747215317907720951770970384801700266662950108009173783831719912736596045320760829104022169628714065306702352443153206930508058139190738172562950626298353921709202184733120462245788811273549261663720224649260237770921590583808982879602902918486634549363002058706708252254434395147187038254083039676646252716660377751699279972412701449706704344118969767480929120720818893233366956278239872681910107139744367713384910103317859459451780877536162349679869492092920345144650791096225552671511406051899189453187295080094185930031023077395925897326719718019841750349021519517060826545654604708596979445986845305294426352269330971093647390803510562446560471584250691479460740891255298046210601169433275776479034949072907732986491732491420268494236250532465659874727376960657658296962265926467213359208320420344859758184204166523886969117876068548279123377067141938578220596701679769080837629551687837813050664801125069327860807160184531448996522057401207253042448970130961744611050478902923689678325025966570240727917919477432731973087644727338299471114683970000707493790743862501282243980209727698000680515405776844618830862133332330616329431079212891198898692818697291549961895546769387707501112739189358903604771829469187519808554169858601180664644422972860666158675437585807834925988249557512680125902066548838686298937724552557742503809539395367569913803893569643656642826409329805006450077084827898620829481681339266010082501519073381450655853225169863212200614478878983551957077844835491019898319930288862797500163415521174391181933373840519552890799779510806258735920910643964840875130436886701188284953498593430840134699950382303286770094651721491119816563883494274254350388839006082119232837969767517045304121301797858576839070218750647495265939673164156538869287902144883269851816099494483046397294148168975814964371368807609332592741162705442519101257950794060671623463350511011656925592222784719365499673306533133454701154547854950400156722957022431045770631139573994353993226631159642086281367118972847400024225876898335556357435767962118078235083771701286766036859594266422851148737716574627851372854164899882949443136880207428109280388422103125445595620289228542919010129735952935820466304516507658837873689351657189132576531018963935748212095823332311777336382102856681734541460303489867971554830419938049855782149711541809372924414987364870691827290035899646393681692260298006784442340953796878453128338587931490957217895533995369035488962566990802196868384570915332198176039431178119149859599501444275636139142959807704532723559229118357589184704869411871244533965982089988662300138936444890624664256754338766954435030919842279603273074722498085251432552740967120957362419229502936867501950254876465879623538114996930794822450070401439089130685559195139668746454938261166605016817349433185745159348912754922340171717134112380779155979964471891756647226228385965500582312260567315528514118233912500423185802534426692237559413064689360010436475677141475982775343596587058185555712890240108406394578894141923908320322789206533439044165996264089427061578040499065883199546449157333760810020481491383658113762872087253337006853340904320478287206284727303626380352048518049387294711576609638147318389038748521734380778140926982707355171465707718362730583771178810152367474121367891929868016743601994284329505871561955184252623204406277464568007711802006801384437408242531513942953421890926664710920909212703466456979965093655766254784853033893144581721171469566346797142861785069701139632567600883844948547851788729120667714184737431031172418029657238136974911129328906246763169389343764280952880926633122999285947112789867103671495892030211197934302073154612007485532718939389165993077762460854094231766347666892237579108466035953390478845378347381588949750274866938897494484371715795131790359105991775165355795640831598881106378231242584955464452197219932264816883541904961010357907308694187780626928469246704571399766921781310369200579556477961350802579851475201551095606784919300498172390573006438848977163042251008554229004944259703395144542380756364958819308862129027778478301090596985458210776001997235530682144606635660898218021511617881585539723252760990845958022329328511504309154921804367493580835574000470399451806830869826578095129426166677727864412689120168471648642530285519946938709421570930871036888251098413310382252062213344566067980663633552564120493527965793542912238774114032535982513684175179919574851808769951096594124146456127521717412248301912207269222786539632063489240080782316135943765652801058966977105784367600349203098490724502710208018292535032589564686122068611148965788227833611506307031905414313698557926001607160862875563634621480662851592961776169864574834058471625749025351880499839478963134968576909323478645002479890419239956846597696162760424192354377294532039499266104009145514938011977591812957296798184390203956957539528305553625623505319170818813197107766559433447705632817713119042209599587843713924853907282854111415386856164746083747285780355849925625998855889735906853924898897276606663839471620470788508638453662208703072961196719293582161193927523761258859529297402888739488407475162732692768505299965176978702984250958565386405251184008068299211958862060900304467598814728458875434438684775923185929586939913642594141358678884224408456667244658512215046290478586648386084948644196061415670936272429877247668590037262134659809459985718959737858448721814929528623257411451966194925485485404062735454587372380255671822004545082973456568542652367515784710855457745935052759785935338503350966282020463195642937207966144702901613345704398680689437206775944985603207993568448852697346474895097912897501205240881588937378994591941216798073323951521804516594829776587720056013951899680790142950433079172682532071674962997365663800529680494567828306196089452205334270900612871920450843286559610026307290040616287307369098584422376639627408008556783913497926586924139010005808344878985864220294929976871212394505925195763877657623405255736275879723316676327135366974811305474524792432234371934840003659776198263249544446106051788914268234471352399054063205932925456223178795545351628956648373877991107925172443618551823904785452989288470058011314853173544464583875487485582814018682487179619798948040460266869601042182251327207390506089931645121998455953724343140359579906159574408109413814160376250518580662860282110255232698504545261485763138939128730983532415110882161444867490128153561172723424012363927973824799671992423515166727696071233705052419968628079695291071638669230428198266088557312335788259553076191105962891986832389362026471093485789751158186470904315616187194433973275337503074438782817089781222508464413378425538711939967058811743552570015918130939268213879548335470791080571138265817289350564996279891358669195049460878352041951054416509499170869562269536839707833416860827066309574989577762877484150246081005812633152484368297308351534731001812745398766314243137162053830781792972529170729891348993332640137688264101249754613807051866487860716472309417188350141065320892806130494277251451792145560915546885785940271611034766167537033147556055051775174450554976528934502101449863988485210863150646383621996958655366420007117536938469824185179760052911503084910419547508775843130236540670527196474955997619699442891917047636249986627790195653248813817268924790973477322727460964221655919369546274605381374004465959587559812161916962965331798217770406707811067137503027391364005972730918686158145320689615892969990910788170583546233303270390216338016592505139651690697144600280211491225254656510953047430656357248760718468940381966124797779778096230952155033149785409220526215219668536440802559418541788073249778290748825462728527405917099255473495629078834650354153869778033548210875656792946447869962980158973160945327167041401396486288646263439090935579736238950806537279357651758671119981262095005796219041146330001960044574762465373031474764018644468131075307188887977232205428306353259395083054814068113368195271681530602775853500343360492496144797874131032207308289555110087935666576657297984350992497619461115329003651544863117348429349240720400169739733323953648906532075646374931083398953290695591912362502520564984630162676399344476329922520752426263011223713203791800155838519044518458336335595150541729200712011913855122380734864609509650051288740800953532132113238979941657079817341674195827239625136833263705695720932120453807369739083304343256789522083432883730808805284739089383546019033959397474089304661131089929193908246816802113040677640096140985482936320299676001127111021216006447165087168626041437791262521614929129087136560169008008385427977985913908040293343804020083117772577513251657454325765245238346572003530421731987525808724467081944174603432799332875194551859387970914618640216601193135062033992687029221572194059826515858010299523998663196815258427057563408854150990500050185448921377418649564185556407611572624730952999198245235977209521072381961318004866751561792156701941600487104799968444216562152182207306045178602176599117420552623176753545257823087573295264662279971389640211351679904053977683458036991835586506599845939333933422227621588160461961978940806653859812791066755501395019081304333270835029978466647986719517709447256760675967888213183415236653813716293486465146591438961573939636077954276125655557986976364801055383142048770800714019502557888583790284125758796751185517137995853251386462430200966544369850481538451570511983594968343241151941088992926668499336514712299357094905552857165589900686030918276040379662754087737199949786202314702216107046349415457865534650117559337185385237870554406094655753048471751804589924916561635230253218397629134554629961299821948137240366900341117796955405463320624910191396694849394687098348040183822044665425319510237733974076937070213708500275393104670155066688586232327037499355822516382136499418297357436749261922409581934504271561303010366298902904246118114476686662142789106415900708502482089146815098334755692419267819596010346317427121302200746585689942967209601379448570156101944623929049684487928634938854309000919666626458824890530779237041981616172697436297485719683830082732430955423529281755456166901470572998684096394775552827516414034433384075096902528157467799586865112747035548158085639128250664300847672129923514336222843066292271169159506473748544709251649662324101520249832487771275186007732715753794107494997082920311763925164799665955512947518242996081042759597849459199612827256475106441699701764335893283992449817506176277397896497269180129465286963390174717218033065143312119478327412760707646869591677173454270786739550958459331509142782250198705720118001928381970245447822796585981856711551236703913920793994837853922646880980487031156485763898214362805233715871553256098585074874967580019657077161811909165948523269915638890791122234026575141699514314345444789521833151356293970699693339260123402439910325106408936284476462428388123272268388762482378588084251728638428857716673491669183495148116276647038437676455987597459717294266140965073438804980181971803687914577799598574812370340834976041156448683387049720176656459751160567590030399323265009161751027252417270669391177300043880879393410959222953886482621533165652737733619914227827726772142998264050420360017315106262274819437091733619184833885642980381025236867939778608396033794300007196318196890898179940238860577829995298805924611797706389049836616693186827097246721646361304679004323148986569960106052211627829254484499098564051566798324144003845139969854769498206667556418691534757420278691028962127486889198803926759956257336820171616177700115942619576456163361721696775406385653562955462713336802890743996473183625703842004970349093190499839022451756086014582635847633976878300180727307651140123042859392700556269392265246162598945448755082650175232742095938765816618941216519424866929833434869795255359649188288897497059807828810428308251324830477649687739961194384663534787139208286913361555620581193306937151741139536067812592645730637196733451782688292230708860689336730310943999658404084496065046627656759548274605352468917690760966698404069892618972787432632395460422470902185036325482951967071126517132274360785915229572272622867034447887154464295524283108907135832970885962240982374932674005986796462577535278105925785424185088084099162894264729475811869292247023443463669423623737004115690178177543710301021619066333089055754720568783726140624450367275325785420829459197339240820899006455850221001709083556207867777014713796849242781184745671936956051203332360273540116107390416227929111302964512197796104522953460687373780847254293041558459657803460544801027033898542557579985731624097624281319519084697744317089225743656796318211983168341153580299311403418309439575416678092618362141132389513509233024707540633591807126743230284709251741421769381398111627244849551215577371065992386818135736324761294240776709193545655714304063589804052401564613788309611753039790983150263227767902773675282856821844869501112414345772156439935491829600683467138116656454832792817607841727711100107764012823580908988817953113195549676663581648787972632296904593494520286146005282137778374481582368323513726421353408229107339394930986007855931192575013182580363367929687222156142942932591803792137005476767526135602846891404115047002710565226151600077740555150700904322537534352719851010952444996543858989058094631255237536588117796876984714261254236058826259866093922045337164696416514644642877598987581695346099028490212252130446549946828006448511747160619997826994663151049967670650128976210059209016512794506444911845146538765302077821892582045587188802661939469648045282103797494899475142861979948331979524288018324039346479151585759353763317918877160854107710083072833698519194725777929683209790307967674153069887633201915927707052933684567741477860078551414463515778262896884896587197021896980876207609978132103756682625634544914780471585869443636015607511699626820867842331776579993954049062385149594578211063952244410532803465875447306466810678242185079558560884128157411050840717612738323971740287452584454809760767488915766237554701142797007698375658033883643586674461750589911351130832861133382529202866495112497866296730135567691273547180115083108016591504502187291637406339119251766539202676340373149648103178532374377172780191251951382085544854546388739645977048527150009191301176250691119989308487920765293720615175861056262005820600363812601881911693734565399819348831861381113028946405321809884854980329565176468997366219861511472060040050151103838060866384350257686363682328241970799736553931440424384273315459125803730286213932093291908971381787775469914319261484712066476719909670906470870941328009563490123165539690287142446260516321705811049719243415225571269215140692031643712152565368072663226575370002310521990981041118888498727593056784471901004904459441341472205333621239841815396661707762257128661647080807581662053328928255041915732377562324626092735123285525272059334822775046858007086758689715774365926009392511417414924700577825421287133213905666451428700087799376694564495146999961039149884022174053902936089286654344502833445888178007273158971839001943831351970238856267021676580201958384885103324740369494557420955860431662649395200057450608490028105067338680215035854320506421310704106750671403034502162359123066801101268078680623541016326243901763285961241848509410669436678748095832079640742900987252992998373863674794110997057647222033731506011087762692931747761767606035659447344689530428460677283447926996850059921163895943359051492212706000423851313075432435654503886960060791859002873955914015077570439729635772328135865533831055042923882183997580722936624792413159144021724271383469432916801274141236627561747092062634208077826410288932888877771350326482698164644517429685558859186992738323875522073425041948244399667472836320247901845824768595867146362043454954716295056303022768735139163328767235002913002790204439941886072881301481259915945750594918637984519472744320334566897451298295577685163108316702915207322930634020610359587121727615168310537894256968210499697898122297332622187595354199962807458179178909402756460833387317193912901558658874168080687739409651491473096764074312411987450839045573377657308510230439029430362025533720726035058750283090925403285994133692780692679963041704083832661907611336498268164249049516615172253022391954823071650834057733088510877476865562395747866797648281815614818682194222612868514480623466261377186767971236593512550865634367757006197544287717940372160105662548921067769357352001033692646371827632763883610782567244532380506854103245434354249940754564324494174045019586602928242840111098709650451326421484267241018056067195804982529335828592679220643771634466322872747346418514725578772484429781606297303212679032305573056295837043837247396915844589076263201024956120506772220801397461867078800302938781377130257234575783932439028577153317545400875908613849080418792872018151969781753312349685332606772717507830180613299958166727340522246622270723038833948535154440466030007043065961396530396470063667576582275206773935923895157460491345597287107120460809393483683980987024630065955954879526171449296078011165739116901243503279650009817383256857386011656118157462008498130606023010420813252015234870830594491025859801949662537205116955649461723065584074527605804932983751242301545845538803777719823048855112739301321561347058731538740690258981451196645638826244231000970569346466559470193832049236779635545721069480778225885646585445447253822409269837890039960230351075038976182360630053066281883314797398240841525810639009009138955641470928786897733885336242957506775884044116970743757699362034036451633294326119342088557567396834480817304926011102430327494892823957736172106084348802274524916205108962289676132013851663130109656457883425514912334720425511203923953924491117474285306895277912565090090148545768228819195830921609094467420052102219596352922695826559635041704938279838875009798904682781809577103017426462896995564310782817619516663266846598030156422784967714764823460685062261752854613117281160721517330964810056929758799339341251988811589582401560085407952271200628768793320291719104573815478291183638062441439887396240505687775436015113060381041688752802358561957071560336718491523799491727502546091032590491039229310522813008844534448186680217542789530018491774465506645311988188858934591994411297318826693453149297359848217258243672995568568769628026832266414786129954672812772662049975121117834550413126711264150606771073751888990344349457343552565888455277274631056325307950916421102360642438486620916529462548426313860132243309812295697123321227396217184014652645126918019603201905324996541329396107033543545621597300534400041266631491091985160997504552636803207534874797532991828725512011132706440692630621545943925529483449121978148687466338581921102346400811265896707060117428505264650255491303444956218896561452252951445415633331693161574536982695642510463311171394144499864037227523850329497677095470919943790659474274536304285490828343552131300553206160048545441520018961205400414773107414885901366486760302815441733835667456872267338720433395962154856361414939794165375709537382845969535551164778193128508627521198035963298406517664165181957413415505327192623775236643757437800371524425572596438399427492773092123135535704834300903823475407058582656573677131446110624316283228311964469507382418899648693565413556684914012117865914281199057041765442338956523008390232233261729546631284145567164051920052509664383912572865807364625225860481815175943383183376059760661369278322127708776224097605812584782085973240877202366076658594544153031972351955178864278473926793406602786471431580771872473514853056772565759336814218158367186096614560915655076999366636040250612037684382437077847235833655325054423621194075969228190682119967285661172365137411006323964361491514043489322447896042951100157055294857884224561868387205021319582950049446453802635557690244317350532374662601900981371306423915175580834961802794858865857965859941204013402921081888406895905593063514557169012953697350602345055651931937447936458898624373996877396024795841758460788497161026690378543564770689754195855774811837218055502661531915865719350083326173099450634545136316241127744858835248922736307056735828825602447879272699547124602055411079413980407508759518117079431496757316005165376394525388929512242070568310888977294814200971615455819773831933412450804550461860281522510058249253595324124975394120487001658836436105017060662405960694393101348050631565698878299605846242504838635432946724329474449612142689851802328347371105099112577354575499698077622152557663033205635226620157344197930813997374830565785156546276990511279400360447417585047271794023092018403610101164917992862616783006595205196284708208221355541149711711602480437816303375752408249067808388230054248450438984661689453765579651931712120941448710966838949652009292398358924282717097187978617271432846230505055875466522784579369880328656995359413589259967028389633383503635113034890320014822831157933312392253876702496386048792547575759356921392986799291989949252366881814728420818078487302730306759536782241274343956995763644745292011707628976896607074747835613850037857392321462069122795359883735748025801646193867832150961622775054673437685743283869445617273113924378019452107520589821776465542046559127531578371153753612509756422090139431857493700968880848324129466710506342738283591406249444808264475243022390404681003980847859663330183518041942843788161118481571649414777972505381835889303116797759511678200204341964068821309273259237467995496787296547831345203251153419106508560301632366215624634607067094244061242475708941366532039439660031032516682766428656765033478922640174921717448412903655652443106161694607369081028145819280221009506637689450852219437666631077369228371096983938589139286308442025403760500562079952279639301531345729253916913499451610033095589013741275243747948182057521974681232684787194130857416598885723051743291853229049738962059500155032712069922391751260245990402003879290813361789817861019510620161693969703760269737307484826792173975713911679361943967032336543711227561641977493857156458074198681878510243682644144770830320564192738751320041956680755458198311541988057450918469811411677891848280772616299641123059052749413408490781941756158179767748759920419215290128214994512828770817815266739332128825079222428794993886547706333171718480258347366796957611936168074029600465931410289662053688616739754331623954912214764731989721782535307873030387623977753884252525448069105532956563062887860439052596296468037517379235925136163443036493573678149642517803244639163156579683291234084218467871657497160304478570872747738431842731632054058745652769449992759592847025145929914893494887300220785135519273672348927473257208613666349787241991959496778457008318325858006527802810109154201871943250685147206737829356771952378090432513921264757318886532590336244624645131293746053756253169984985652386109197763449432416172433392994847074423608966909416989172388335898263589774586227857234673762883674601524372635305246348667371880374066804181730113051214527364092195172893861808706264404737853506972917030985354417770365143929609640556369558493348821358452692992340218808828893577826441649951035587868850695695429657000103547182014417237469291539735683626208049755853067257087898362489762721231936249081107173175939000198934735696610874251322786714693413434036268564545470489769263110974107671579241567459869961105267729088285499724253337116314715307812890323087404695539203698295139432995078062024489026335527797307640449387755963030011201664104757100907542979611622056033947459178265890058161919557747953455478085232620227398126891950235898125519253980076920974127874840026620371558431819789945905753511737192871254395915680459565074173558678535661505660164672459019772961952220799753793024987164688993890693811756610091751725039489249653077816986570534923231188192540667320914123725605931611264808667293360207990663099129980209845983038391868783184325710721827157384493568467742155067728961517399411250481273570891683335153005027155419891521127793205665892689609829474049370022184127209813073948037220061784710179821764743582735936904366474779399752526421220022502220392482726149005851456201332339138778573237946669348295386740666524556638337277180632676599178781838620033518472859650052174883005555523831636974471391698807692476464841506720450823810515551179911520155742118517253701178007148124215258671712816448112083343446445143386279741938672219486058983984036380000960810417494229559256319087646925134636779982566638926788381374178871645124396274639103470723111607162443014492800522482800736152935160985439080395797368643673906885829968702815640350360164232485432152499097079349582852422533844373166475907653167201216611511498205261539033054176952959334902631349556694883569441356389953615027741699834826795930823237904583571389354982076256003089807671323530377041008115981829065972068293746667852273920258922744362017752465082477474991802382978224918611683354812865056280571481127387158545675165721458424754869032718483597820805159955431443757978412139393200470807959369378614485606166232919644763634185045267253822478325482359152458300608842062513025653549854774899586794446843933286198017516713894508589473556162804691732618268914394568624243640291420485003072461463589615266994146886399753570792999279808389842828043204748622152968620713600134405606672414908852249708142841434459044752245733962345883904402906009223585830538919108510137097495291971157795532636910606522909710425942004567963954567666047549044226353937421030263681240902793554199132711329224103558330271809147938314533432607105918793430340291237748311979550528562354816047956765000929854145817422615228300804218817176877425469727554485187402970295648059189620369761972694015566393904825731966459408441456204511941884003390971817024802808347598535427294629739317601405550559148668763124249590635183395226645793713008022016558698711798361257898059846602500601410529543797515548014995915778230097518290683916440970236134343820709326744262886626517483372664190998869518306782498484344475168257860200401366027763620267432172156702657611738034657676705515026020908576592756559331838659797595853511999132113835611064488070894452132796616146915898099785706719966963390015180801101275521839817506028919135287139171265491325721570668827080270369404610780434625477388194492557375246605435633738984253076189366196860637524089611729417349667645700567450678654549892819578662108972702282774769283362163079396557129940026271391575860089251896759888245467106134455720877327522144710417867432043105334930471308705293642322600604955066734363863219480381046110694749045740209382204945649300302889376793116680860994487347234502417529063971374506094914880658747204286610937016240675046770447662201302812167686198379607249565091883198447435105635466781813364504721011506790794944131548003375646026684318869284918682364131185961483419760677569709480863738547636270102431044036120034879817155172619143915167552119263203846953279775494520314318861788467621512220274613027887541040004700801797747363784247480296679056181551052762728317372335791419395188570255927751240439467407047569705420143393348438078253557086704452032866433073836451343017274955989943406465025293742004340022528395279465624587007784735213409798317486626988539406072481231777850760766319559475538604207434836346912409698161575423920175546064632285907732305642665259172321172977758827453230499484166137072551618752006714801387868661165027806580511503802823828106147743841672198807112451721551703657880900685784146344270699869692542949437715744507977307674730358477961298784520871854462290285079919499112110387475948283758893627087679545727970164384515970588854393630722791512680768256493452732097390804790687757263396903237823851734579457976337800950733708567409723071433910655717245841744840369367567626259949704095807469482682095033862323414758069839094828013756741799339735142949619600399254277752648090795847645602096646862729979209852734447015088179124381713247699495715420645770213947479551495868874421141896872346822321023241692067949671326081867167362943610226351422532812332362743372502360667299691358562853414489394781146234907685240122636387173091363280220559925516762615772034320761903756806742559197820292064185299797119364225526529758041892310068470656162263798624668350833993592625665649472099501053128272169120306346472447015259787970221727095042781542674173070328596101255713645602059434622565059782591949650059030473415631297180883258794150843013612501077236790555695752403237565783966533031397446707576446753407961390281809871358098653922606560010586213622251639215041297796287375644392151967210712555850821185380843719797873218447215759438678713784803895288969961046086242483340406994488034602535717261037639794534145400550019757100214206197915328160317341786846284083399678239699993662527286015939351048530869683742333666693996579370975727947944577665030747012424817936799031871452359848074094304645733715253675015525937826169209227193589129138366379998364158852022417145124884500784071599800380989651022480493314646422625501051458946827700478774238992658660178011856238013613980843730659415484796535118023669010656046283666828326511659245749698661226390360449577420735602938391879613688111556470983135263839728758761519307839227013029440259769292530040103739079059389610579865244177846216246715756310404277928375270832007498283285932257466541979346590691501927723378533878615707587470688154420028967862444135059220250953672537487417586488838070513984986642918089714196080899060880296675201639411704782155799951673968805675868444974743139530440637919122619220097961455212697552244711039421168939763197636225392492946726326268461410274617947971843232173062767979731513030674586423035739779324878431725823518559495907631994606886684931681583742632891972699220975116641762349042799752279297988239707628676842406466492601307659767273833987602206880965921571621317077698792767045812526894406747524930963230963266166697461452224076479312880103265651716225995420040416508316103338364040688547127982808126930912436850504266059604186195846598738382185714610268771853969579768279929749103169688970819531442947501818514119656814213799318654612418065662813329291642004402749570204228838148672473866899891873402263182345832872814032957929712765538635665716796741183336018903630081738642684353924629860140868358359329514165199943479027166091834760504633911307684831117580980197203875157461790141312300885226688565222832586766917436519082116771311219154393420540563472742201772368530005854989347106451882619026671228453957508860454564270978189923731091408163966747895619631102817956771556720569614244621839394795255187491746346636878744321770707954103790009031290517154060244696860871652733928394609037578351782018310498244116862833869803616599774032348212170245219072912158491026337551884322985859924771690320338415077867358397718922431058534089816407217958124276157086114692871542995864097301201955722789173038617516483427666032827421713694445924426928186570773471506143175186835495394395849824152341791890283363446592067480362634088933273678190673745464315274834840267995038697979276946432404349511979309952236100245132467063263830800052543985540211427115861455094405919073106524468169678899764106905726380446681900121648725800481900326192104178717292132531424752869301350192933330335179608776475998291177864693515607426527345058786257468794662259202258792957760667486064314932135096715478471952144473155064928587399174352654967933701545365742580503630234432274620015201698863007283290474418410360852758469695103193466471302626560510643867416585329633924983780556458000035423030804865676843573510912560801517033245760049556096155087413103520375916509192249925397161273948311765540393998246557258841308276083651161505948670774416540089082247244317974529966381268081920960506622117444104076138785114766824909846983991682583821602567681576540856995274594092820683642123571862245841179078772966694028073543185647520132537443035305474130003552239255274733282209096408732946218348663845184900655802145331248380803317403771437885685620275573346798757775035304070692264341623481171984797818634806458577998793605500159668637018688728654126005703715795316210488106990398093623766381601195702354836762614666914607436494294799156436111045862417610863740697393344840726875212923339438840143226471377797822009558900427976499178284732213643871537098248698396076312924606735265103904623002227182855673076257701028909918201808419950180260460735586432548990850826272841111039454809160185328600515282352765264169644819871996048412111934996397082705678844669835452391664232370546731052462624966805507721312847912787066448525982967081895855365429797595569932142835498059588864179965715782748597678564879804366439161503422018552087806576077119344015119594218558884375168644936426870218649038568229250886225875968842297181120788258943753917610052351030349633307071583431227050702893750239000353841219980706246725226029423801615663487869928433349383988658525777409366967088343180550794888093114322402500440456812386904505967519774695090498733917059648713326169587025778769194487296599709055838383369738470374070696732966244345293109347359268156977018209941880884445329371272200430116310008230870734966109749008841436777435619476613766512231730985482186843570274716013129982180495366844593252818731645655513182893600482931383705663074932286869360111882910510073943400531849145296120712427917190939491847513871968375711476675032587828196849311639110710471295482483904612583363907103613662253682253169510044484750179368044114434681628131378677969162596185873375405262261843110046331017387740474616964113721419621634820475811566697409374842325763428454242685496145733649748097347509634296264110572725887678629880575930440256586709309860298952933818594360731021144468202113428080359274553590841603351917088816773337088950712784422993590487916701621977036337675615897237510798133284644237878939405456269070634525325293060531248918101936984549025643120779971742126631178227854449660822030252281040985704870495611534061430339106979212236080372076814760521890793419065044291767599397946404119205448071226157805542561044491311029869921862817447161992462044279950791587290620757548735526836099134161770878848606436672765210817849650267738712649397153154775269592025759689391059807576778884005685939790485150615098971297489157379814355669339411763067128111442657193896267540524511823524574512283650097463067177244339353093679069385440139075430806905735120215270185912240371489790175300318984031860747019166698645886155211100109947955998168411658344465046895778750829263097893367802098690737422806493735925999971058562542510351343550815039680883587884884683639143931987727020729190196142766188222596440280403080828675237060941519873278131708551135170373880903619241468364292105354564413416330208232668883660352507873013417155880566511313900017630415097747566751035384183345501616220961450492607282228025314824935199565204482672730754669622414045677143813953860080158973964054618075010119051323588392209179898223894949218816501518073580603701403043571530396368621429071492550643508938405435440252040547138953138366112061088404265668858651581242408512718906679344641214431079354310353081103995957478444272398226268444498575128828065579655080254027639156590559744750309625119205670970423611457756763368130523418220429352371786178408329072764838712194564733378721635448460413287070993993473338961796967850670794584556935614529254644107165317774594535964157888737278743592043400735459766174934279065932604486179702046904402463592355282102043038887008500913895431501255724299491488337428377665454963512012971438517286653603722898975425980129106188485253912408461315715636879207413765878302793875197265152275591022542560203159507901999746905036219234105496333296725530906858312349898737898900026573216588174072327987620655406382522977221525784816313398659721264814208799650286796318007298095768627154911185449863875951735458582726832051337935242759394940012482014561658211371729062130223152722852016762191615176850868481026885592946316113976639760279242079518910858045677018975377774065168589798129470821896535462029541188742209595732213103103929847044529959593386694645870092767000048600736268351769954193122789367832617661594174122428780571869744351526167334111175264890571996908864236701243350763514616884991393570421578579050522745557584995709150932405176032262140965060643057614100637428038150608844661238793224592552027284362884763758338978754590491136675797211006726743996241763225132940185679348339622167042010698422722813685945702759837498754073760729490619653495679582448694525227489728401976367589600346825910865872097429901639114246002270899712911856921705775449383548870669280271868731772105639026722968782760638788351482370303457737578008614011880318967281378075147207504488559375058552639195471187706571133811230656552332800484457815913039473834529624158914842747539383908231694325769362105671495112892192734041456703263483447096520164566642291330389549771062174588541144760780232557573392218908127302581895520675156120725215241412860313957045497655026874894051524380909466748262579186214775443392372380794528904966320457576673898728189299407484624626084027787829304166186336455483674138041549341609946802443792520191847766532409447025228332175514235900022610415371222875578633267135257517931200670953813316362829634159104070893657553013083007365012486677760970448329003591670307125843635170379873166265359262111339896688416020523304915132213094173296559406011041793093262782228629897015462919237433494194334476514440294279651115878074686205508638756030736556835836752590210663628488658497292964420996385863347747837574366293934344545908146756398057714843298650506587208237834296890427084224501381594793563359609391362594440483230935737351149704169821101626415309401194975548403905104158178017457610800461163106782294100748148993901588741657788415446179359670135915604688954876806715001680529007261909771025511883441169503842326013377106640231880531436646808098749456037595194043864290002076225253453919829796103149640723905384852218895182915437447371621960026262889676902513479716154467754401228878188318044364038542129350979334915285370922430963991790151471123946578381924231726134852309096117600411046837523615645912400679941657430911441294208622386840243150922995783038595462028269455955220085610261685022806851577572245305718718755890694811087071881574203989040237318237732776401337558837854347361907077311188053997630024343802334407311043844336180966051041145767931772656267596761188515212659054890194938196043245799501525249925923596944650509252698338764242162658755409093008043952296296153665255193520602981319106913772057368115381785631790263252819446076219924614079716005075633766256995193883354855345179260259524358413184399901076447146161538372001775538329080560241493894351801118418819893101107171412389501636594655986264263806754893985526356811241586234428161814617558706149052606263722816137214661885512829389792177118090745228458857298341204233302947118445695098416392292332819059576944717635431530240407807794963093364419005525897703751055737837771300830386030579441930349836453779275805084861869681464949891164341776646202271785585677433623026890011933920395074626384853310167316239594072578555688057185424246732557788363242768022772264008663051579254665505995340231916132981386802546776149447310066422374551114383795876200385614775080437152681543529372198044270792983026546463677752708029002445101218701538417585512886661489926764367406802551856947104779917753797378380504353557174052817423983720568107570939524513384943176890012187629366064434418353158396768386250524292144584969607228185501102068829768361296788137215885940000022619893626228552831864340388432940443603230861845134275361582732714066819836561675255602948516204424017835171958483350151665575039695261584767094823101570485596870265465065075204720559896451156397991681518644322468279341433101297514240477587695485232851716791612502336771399466012111829540620454655717943169040621158026969710908986338645582046950944404955946634813747544984165608860215264287091305257234562063110574508460231466837160164719925518530040335337861687295137939521063739936666324329174085355323093621975351335413105754596265463009022229168503884669946567608684023971866709893213533868908278009010776253254498668580380847649397836025626645474180643957279328339902613954205068870951777738531403208635711716964652863868935240643943307612697979619434740710334876193105102482979471533985974804457470560524301400168446797758141717490794252900792353349809867880430170781796292154337492934369995556306171982630228079640893127758449842371775314339061229237104244084448919502074918073500847381974859161301417065290824410522460448288715615117257246628427934123923899985332927065187879735049865472511940014257282881596188219260204963971116502500952155652554465430619104238709447112537414588332364866758118932399768712737082624701789756813156293018163923580621617576465787878337383011030275156039918042597275774738070063768916157355403007134640819247427107856865705170045754557940234724046615708804517537410232902849064400336073987735290153375434091334275111937199410784360806509362597897801061515989658563036223010593970779098326532864808730226928258601660686183842028095331744254858932395526178392441245681239700199308500344190186541841793395259528610862599688238035752773669705910758505244235910346653858169153387975340650740894957280151626434825359693620852322505349323287433177264291948919428236030153342360679718432500588751902635220232047208464512409150321684013782250364636759823410948706160722952114444114917921720768733228216658860118888995384423039874533102455951773783652036439956139467005323254595323952928310805739783129147109467753925762222215931343880643308704199230560476118028495334162353605574517040259203793841969327372503989432461402548939515407011884447145349478192837726066627898174852431197670095106856657044623259309719862799898070972129004616088848215869948360387812381377749362091475816249813760715518574969668504049615004847686395720397373512037589232127110630378041483012141754170511709931664164309612718825010410528521767702177647746841096616874831167235945665738960256307553131698330358523046869360130258954072194799825474116031503801993079521502249040746095295933581379640683888345066073780474544096137672030382526634486098465048938986800412377528786251697365733284966058475055429637364003752113910827569266395245800509150117510338963530776588514459614609883245185008181959110536412210504045447599395698977783543356522172799929405856248444698314479092365342721007108930157774128687699328263451759723007507957769935242642670335388641745173098142660265903667734989404996884897909073883817084924074886216668335874637868722752723821663500502218458399276710359368835678036783720009892189352173924119665668132513118645470366513206487073778742870851333259948060398425989523178739705162640832278832180280922783221933792811804340922218516756139953953398438171099481690333372412242097406598109670400967538222705309349295697800409851123715983875042080342489741024638158311886339925468337208650639375537565096900480258512518975075237205868294250141871590118581555150150239666327444884099235783696595649998590209086812781451844161176955436153616143361967200007212792834103685178845741513798886322291379999143895623701218197814816312568570679985927121052924872701448643411675093609029157617829639756794576294273021482309321019290812523091194865010397777907199915783773697887052838921524636452154367747057389464185459451606418001694451431870897064790914479676772588783649372951641498456524214608642889397657392656037828443451839820677736926620563732211694319299688867243356985423205875089419021617587810778199927151825355026499403292013898899837962033951298698180353772653376270082288902451562205865014911139564975891028012623492636204647449631917847981175829553773302424821095907736796384593619905782699227925144099906867835057509248422687158122177572581222710403820569118353743794223853380500729825891355044771719565842437241333507466323541964672343236969493731864078330434707696229051556172451303628509123442279244161225027348879042017813876800741447224780307303183725397295689927523773793437133961121488873389833144064228883929103648614791680584972100512602788983861526999655952024840713704958637795005604618756683922208996213288905352339351018111231790635280380012566984535211269379412563218791755572724456919696902591493687253738525233518174841961397046731650336681210045332771563109271458827162151584642071351327732670215650195739884831379305251947234568453835131195395601159808233773288838042663688579072193950131157539898487126138489928295886983100962342275317223555493695154909504838023852146937626727621654535120958968362662369165686986730163148557810332510504094828649482311306024282269317939033991396276921742253344000148014646252170508295667876352979771270979687551602503641782393965585899287767909822107988262170243726987103821526950444362649984822310070984430805781746624888956355637970332745641537413380118544496665419823918088348226725957590083743129316438327088791091815773363588009877074615704779916839577846441240293073822870639250321320323251421997766667798912639050279504164401769681676199705150993170528024096217083210518489870089611927616667234114799714432138356054307797517863429546560383022904134453923885337566638298169136246541820592033287983485119468829816505244590103969698389049710517452275182076557815734500534400057997937069613409248390367824940201764202240040436252010010419442716452602457350532400493095740591180644861909101173896886106274436403161353466297136639508840911990349575920202455935303416191404925949715077120367890949583835979765703426933029919091467974401417708795463029099625932531287090788063317656806778371510563392489543050193417793490753229586532806600134921088941108142482335326606309970978468954396549063151330717769593820395990081348627849169989418109489239964586459847678966615011340181293295348326275986043529477320380750938573323599733966728200575162667200930818930438558649615388979336687702203279826734346451409207195770626826300049696380191424103515020474542997873806370138092491507975920119787612831234336671606062353287837631490714808163034933786051260879800306654716311321806459914773617629956734132550289436798481502118590101649096147858866875117298526518068400376227659296297105239941288679043139474670213996364709919324855372063059879653125628504857555823505936356850284323285507754213156607912373207524278763104565176150461414555079914722895713534599840534045553717055029204660859908096407454728657503260291095986125947392022128810632331512288279405226162012582848460486403914903144216258857609648919518483789481093293360939670761816057432036783154024538874014626148609541701017286912973739066578866073583414974520460327009114412472509074612800808470386322723447044473061943762212037940888834399909268370413326077526118682432216809540063743100029784707445665557245497389574771597485676341719666000617433589680602611896117162435425439687262707622136374801028389429623307863367139641543296068447562094082324301573222229212016702484712163431520390782513802732561109214453069636984626169404961648740091013480916492225719787473676372930873606201767056951564126270355318630817996141258018692906348370420255727736233406659340390774793824497582994542300927164561764726066519668768854899115871291427017021849153708661257708872474535144183111292865304821512541582605367148649900765250496464232671194233696458841879015852537327092899500795276191643066591825756491718382660807306960806110197546188148251980572555129625060218372846636499628314965331912598381573065601012403261286594822481529729618687344172496617618426774072408196638414595271043345887785709040497061060820929993050762737336707851334416724956555781254989519240653554463203517924525038529538857477113017435717577482508978159835648966313145912262344998292443234173444223786614645636237175970891140041881350023961748363812696561646600032814029752583132692374533921084954270128742015744655265713805229919099458363642654899516270292816355806729992569420022794994446325294206729830597217792721467364106005516618131174447006750104256692706755752534770605470824086064491582756118923345942057598523968212882687391217034346737356120530267113941743054463917796196451822717191627935897371191908000537131724577902840947749075123201065857060238325008046738957322952166107507623606855628582724115495204619498163208028889824972362779866910986895189484269977214792888781894089597547639318939380472045138847960702821223572309008137432923241469351923156990134170689211900872328469444768299468011523045898021444168129492524153354752083538858815397671632594900255839495737738030980920734950515317085017464277965861582955414392203421843167252382537205636989720816444410693321460638787719581734669687408539893866794765989300597259108147030421654302890501942932413238069068509228295470204738082772089591501067206708410494142950099971934587841395876166939467845911867920695511852202311531364116496901098974380621636384155335453959351021689544227307689773719805652344611412443813053935315056000433200543649687264562031294480070290725285137510236138910637754969458052651092951387950893314036700800994550137681617715916367414805880359311502782767759319693546751141544348715437209859398898726237812698590033307949540108524786701056997943452584560752000888768859213008962461549661505925836074930375421477623336933973911355778825598802570918873538055405359135102795932173288885055999753333462377477985836268493848181971738465920750638922236829353772330376243481655507450371200823846592953501173394339680405070014900236845507005833383095353920266940267841930541689810991018836348751160924506416995135874350588347113573899072749024051277661646207460214828924683519727917125286292125367319373521714134099637283840153573259811588890879709490100477326581685120936534086747648601781382809774577481596242785232235359610182871302419050784344550106053528291150671823567972651153566292798774102688070642631003303264199902592995975039063110757929589005600936866043938810512964017247908562056057397462873246364476685490619024141239803780054442721676214497075973323598248811392617063553312461287982123040381315746850133449299311522121396334236379307788283921461201873887135767706600906011471579698707501377658382542775118080139909212086936118823025439662902211458373650473246535679816919943855277756885411272911352130306697225260664917246655486712943291956004771286158398549937447560760498228579396958150217579873241448552522189042778797373149193481290097740641050826952673539959441017560493342345408116078610871639733267017010990990929468578313027914792156805844307277983937553799242724484910822423830592087679207573023290335811773751360038485535274305888116555523185824215991001919604570092154357265851172579729110607371826880148715616327003097809219198845969454422057945838442797028190978654788222780097151487327824359388375210572931535559726626699122617936874842926384901226128190073118108021161937827197018730378165087011797960781323977393196409626082037468321784685067933427930431983028555782613143415257294139651334948681174038968339400393352240960562546029825018804008926137582242730496321443413876149253315362232571635362960232757686737398402693399575967669274300519710275535394137227869906692985489110508210385736423694421838502611906640373148776133366425327063827763065663724897364056325722616367329415481455617182182993686929311750335791405170005240914700045324579857866771324281343913436940473130654228555233634368259421759195239216715951803295113524498311003461277082756708622079392002381544779326406791221189873922103218404572942193335136977907480032793017108341298603316226471780979091402696207244291358856219951122465075612000903811819657506508155827156845144215018832915861827343307182012169916333029042146315815285360435489042192240632535749400117585096067101564880007943324209678279277672869963358157036564501145979055294330508699370408756968055839003486221880391497396610154332891617443323037997967953497587222803008486158863302317833966098434932224504265599256872426638671908504464771914826982532132015343279601061667043038395018031685923883435525138861198789021202782495075620519522408082539111283889526951849821844678454827298035154914010875721890734712191391766850805851301022799575593296418277877017288327959939883863274500442732002703362401345261733494119730526049602309033164733752466801772581911980035048820459556942620688093079416628446200064903649179676755759085769613879908858346575786219581576402482941935244072061494299583543885036125352065461727138695298760270345783780916009392756854431496611340136855285338144910565181289914907916894929936522549565086262254570374309261517670356013432716580929670213598903105489692586486459365354330213709981552201041224740440444114291206080611046409657125852744896848741459858970392072381899169405587414770073164785071570950967068519052051041861780227500133929121910453255546739814097264623991715637748751039031042450494916524308075128753022912055925077829419690895979963531480850958523604498844673421664345657687926935601350692113871485708147076877460362294050212528675786106446001386526714018638947495613869712208908060600488662871707477880787845684176638504075378183505750066229978066029513151170941683169088463181231472485948316265781613073661346714179338965837753849196765819066196472785664415677693399634776712830198376327735626685677992346418652048282340688788493341655751104853100637745093995395908500869468942989955213735648377813599508984085470649299252683896193996192774002391699005749860633977062095957924685882037763545274070059381797046766347079963521338059338220424792115523035720311215995230029883283143009567888732892634741909129154910941250976606198736998255156146018890850740766227340548550910705497975066528788826473082123124622366200715518143456592883500362745720958764597932582213003620713768120793364385805150154538691742899126870812565585237295302890601819948137508215834644354064828967575096403832701302375839480213955692926873208040684475206286237905401916840863597680664068247719130999132635091437425585076684843931976345538146066811439466766656317811666386009537627772095761682456840522722717832653272628498396732895766553587320382047248574446173551290774362460532554644770418873205982583594089464130742243108038927826211532746884862327892550335641153951059571292634274508262427385048258303264728368836600771941774715770810656649971768164706308157018469807106307839450971786249118626092061780686116683701061759643290631606894786137984822422090558535987384967051496266647788109198225746344982103618311531408183052406150471022395480897273396852384699173959339207047770218161741167326032817454286890193664817243039127921004185779187634824792384902346766658811609643623765146303525743904519833531404091171098473992335162638091755486275095785622549090601255285341285290869937870576093008198748728765376195042714670297999697973898208121679097998080420267542263916048307871573929465797674640797290576723712354343629235442492525671227560716357634021195442574033326347090909025969266958728603003939319728253500851504511802189815822821826387265643289213163703791505824198820137015526274447910370313953279971155388248550105315834519786010561688515736963979220407040052736637766867876120182563758044858908767337710704889187691249458317591328958163089856762249845530617590375734415657762064344965793996110992079305498283945026641374616457060571823538451855492494666251789345867128393886208935520728197669798577345013228941116304259604974865402050773492977316263179307747701974288360779960767362371592073619200812116906152256985128779275573305241175163290782811940501923651567178693700947547482430856368753673482626269436289219594541005458872242511084452262158218279921253057179086983218671792129643713870098680087341805600776110681502764780340934322071896785075935945475620400725375746814044641110439639286230749962193913351419468946220338640373438815234416079493286096254061603681165415352309000425477671668365795611187193061658043291777052670812164657446262204463418538687907532976094105159998254686859057955664655156220335057019449629682399731403285537508325313489003752679379679710394471904966824611179720331984741272064434129097082406051609681734786225284295247595417177635145121831815036848900727128579617235878872398941933282281935179654050886488004764283614289628850854733529018071039435940641035646355130329005819726128630549621205202836122739602440885297281480692451036422891089680154547171583384309898444646867441632610512309019013643244229370400628682138559818850758348940907569661528880654921589948455492853130818286694759802681067948286603289586855595849059367689462431067526231897014505648876451923997187771047339623796589483750726020377137495413180174548213229647609579017072424654810187927668202608029782628550024399343841634317036103014442710246766073182162740506582281299393583631891714819754019177303168615837113167893273070947473220594911572944515789251714151547015414365794188072604513348340678484662124612678324640036671501937283882589981835714383571386009857703649095668653255537012898176568635570459061246314108697866000822570110110136788530147926365553238008441713554373258984383900463337145094104418461207979879656075836223727690625709809220619906502211418442216039127845139702312799931671851320028879861425534736237559976621611638588725401048455199148140184610537110064528497743524297638744757835421805703129784481599147532428469428367863291496047967877068062386067134456945557860905067230037909520829399153196942741463538551640420370047564915231549895999839835959225741149281479303479119089448210126174626989338367229259840009255870127270605694391110079810119477512199630900175472650596070486121496645871800247340738666285746342659183562123151467004483655292568242893497667966237803574289890635936593797291780280958184631667945182537253619804847479103185460310553538080620512517153370989644011953385341133487372704331728599615318290769208594240585843770419890430928381902723865320362742179836230058106818816847989471516407654674938860324427196012042312146179423518822921071022814960564118526067641708720436702550125420832477902696058556219518817580020860396430184137558833604931127896509026239976057831084162356290064284464159779931927295406331615458863820705564111241891681957212778536444887272891469635226523570757321824565797232236285348318657574100002466183279614225493463510652163960027183286482313916364687497041849290589612519287037826771042595995133750182138203624827638152516783757439806290764213632698799337798137886665240481324628566220206558419167910093012590935485969855303499099643734938803660754007326949151593595005656667443557067189315929275596972325237161536072156577345431097617967201563838149431283401607772144334380847611520974665652281908189759962703236227547116250672470115863101637313737528550651337680490014670088000804103825304727349524871628115624765792392014107734607083712167713656707616074806844206636465143334001440073287172061510482320234202620560563798092058343205203976582991780722000754261385622898646092411565086749799405473754096782052760213000255181983601740962756311913747914163377917887814779693705260638227942012361174801082071302359905947280318995314136723555930581250640043281263342419840625216962747115126097518705359458099787317097338577827425668228925761201359002345867787924313211895098018205689134258421140731557527701810955606180004968999752855933544220213105334582299780186874645897929360348646363110537574784924390258203964594628270562971968490504901707589928657170994527874242972894365490040847682951025096542024987573708777219435110974466292518343966879266173123978996927726086942406409411441496396727439480352693753675786897679495537653935097166501478193064325412561415907535119854986327461995006353038113262701146503078063118392366961610178820308795805240788136797235299330467393007622606387702754131064022611824297281926662616996846939099099921689216999489647968463518043062664080665656636896079563612110451232150867673991248732442945278895528395746572946206881040099747668766192634309250203722676606274694884630330415612031584793302746317464809073646283614737573242712310069159130783197677163084553360930084269606542912005160763955674259896670410310880412965277197736474503751728465978061990130145230768116160607942310391708091147139763300697848424743816138609691006382805459126922124861843068760014088177912331605122396459314626823981589288770150578141891917967046781517708362386664597796374306449590349172499061964702314563039200536659575560454043635959132779080260468011358599563503641321322702508914437254139943849545944141823603099397178156789071435529219843751695130695340161844902924612684695444326851140294837349599269503925435319651958553509102379297939984219629713716399875398454403733372409178719121608908352590749837756433895816600051250923941140612256011003816139212937251658850961778965941460851431925844077396156118478965549092584191833211723642878121471931436878913459252760502516407514372945471041715688946536962523310693124275427238472233128413631525827971648495633550588802059361151564607358013758373935944779299334989090129624386425817003344953280909977020738593560713701395581033377018910365339212517358154584656501301733316453166875529169069027443558763165501557792544344790348789979802637772296668600368937518437812413218940964614206431213916172158279170707572184407732016173339637243591971820085219932810288159842750636905005233355639649955698494892225341505138361208292049663044035198365317250102043636612564948581294444852008929500117322585902105995647043607442093850640284187352768964773094880298619964242033563245070511589842493157614067509800375516888691370934162347665126092043368306823139094748792494767245130711537312561164932820451115852031073510696631849504805451617617873271063019132346623827210605527452318232469253221129917530417644912756001013186493385733077537155108118875651867234237999474812086259781328307980545681940288519294548773385001314532270593267368924878774763115170219485737397409373996641219586932667051639571601008131678888903497878676009866112364432000111952042568734193733914541233229690908907688415696521855564459424052341580225680591806929415367324198257666667299384092114994387781115425307033345079614817401434917092123209429024608306266437791399691515584321039852234017632940461987200031365593906529226635605038057465503390253246297039277363006375453084624075591807258333038286115761057920168977326272276548593248039597421489213283376868652371752317884708845064522781557823506904482111021874869436707413439332165234990268691242002415012938754354965561684273105697304187447767731744874284971159629503265112389516009444643295050750275810963826947402097320756538973269468821688164892995448585650866893487582691628384824921554474649955890256004520575720131749958332570071722870009337119028568396600424002048248825748928233404404164040654121573279676455207784529160003763047627151510012618828485491520090074074293266897633627458302775597581975122694362991058939744764855079432010614284347062367729874225053480945046649829941220601103665662968389296763696519583316935494042851522076209899977037247826169788632483703585609010840383654827246568151154833549925971125207025773207195508938054247565649349571989920722310254916402995001995904178127727029054945643304225661787805370906311009358183456390905317105372347442726614498065275868103349151537350490296038051571755313579589746869459602239188238603193744115981881324678681807862694980502250125096355226254117590706008142106749146704664321997585154391876570371068537000505068394592152813058513682051304734222896163993834565626463058272039420936177485102988668602714832622374040646992432106114408964633652480599225056116366232169023745738561225231512537141797984270976161418146929886679580600691321992536594676688892241601938111541003449819322045606760563369078180903012645365903193215413105548426973128519747712208657465693659510970369877378059276592072865148915671954205210138631740229226522182278594449872936823143481537632058002037233640837438965796014114994345258185748104496002135966902273473394066489201680149413035984881054944833714671076069625272315202635005791549238426541812192323728584596876576844836817359435919158000298544283089369110104694395509971589394958427974497732805709176791241321814764891360191110742202789146373185787070721497776564682556800381965925193326265172335126952899323888879267375738298556820530192826620996135328787564467028210007998899477215729718009656369723288357586168593069611060719543940383071056642910945887786633272648061038343482086526836197375062217778806021768661868342563801128183671932350456743885337044482085172782192129106614942284234629456780904107750994959930664395948961522559531703914276561907143840467172543890158058904601853066588873346505382195965794064050186052726911658295807279922025794291072049036676664750716965998712706883163865216937451839035007573631315242170309204245446787987386918003962178167378817716974992357607557700567099457714830202426762684969040554899043691254091805575882912413347223391356342254255751961873551342700652927587704766851863735214029073224516243434837615572224206174973976621944324562023173725067057634842370100790271141885448138306217961347233819130675577426548023086490181820418418597815958602215998795694313279011381812916423852758519222730253131443599318057569926027897939527195606799915991435960601121120296587736107651439753831179510343918872562812430774402717530595652380093010097949441604328281022187040446408444971293708183788402006344799661794936832239660081610424412405476457111202025495693109862887118659370196323203540952393885940941758932576641025769030882346754760348477580786493377627033853992773523312513668211320031623445780352572721490207387282688172485840840478821743649908744679532012619870700418823462355742324560338614525961797448177481798880971027347161710239735995503730523403308675436924957087998530616195706703472308314050494580956378340410603565920224202902858956040140660544592747895423150255625323185999894269089496381779997411893536607824241891092650713317592017466714982208480569874721905846183415403049569881988901721486551819739099879882901706111025449842105633535079226993600209676101611528412553267864598841753279223661568750639658676766888598510345595170685329004517266594693130602003012234157134868466652240795211704667533744629238139521234829428396495489067635823934363390537434051845121629190571108132533010642179113823935929415489740036351890579602967238192054492804501218800222483671892533466027887432851074942725828112133990640546921295779203421651508430051683265568262947266939252772543878204865758598522460850245780467186163147900928498943454271659918052789961149662305168681314100701354479217713090681447216009186696849105058204121911644984488459894149163263907824727359720706144903153211297656328893753864738317168954111235085006699873410893065819282840862433283314367737605085279346422587754109479003576537922343938232422323331441914184597424282633476959712184437054035819564262554487986040098797855096706732623703605608250315764411493086209158966339938293301796241489464913407189125354760871289163763197702554671306671224227803322355583322984793459607371752051269743524653010032672732714170814806691916369856208351141404043634728344526415667927188630156946954811847208750846827423681615934222179942355433047883985303152393262314667770085649990159018882308172692039300842103742142356023820278424255075445147659600204430726415507908314519018811811527734518020927250285233140643458523695088970295910024881282236638853641057919588245337394143765781962181625206140721311491440556250689076056803353972692319621431907284335892192579003462034536924480357504768687026467939618962859820112936149812403780886276730085311499745376536761912917528989357832513726317018210930511312568594906117327170973884517096943084471954687275637890485151550023886217637894193957776116333909793255401348741117307537636490618508889625201059793456527375660381713897792355549019734011989427597975416876095625516348332043197794246407607840346652837310873311186541183626993195426253763037102765703354349779919109771268533327978418119558495379791989373349489218899627560087866623851257069775007647321427826978988438224772756212903311271063391545156025846724596612661906123824844489901441942590521216786950813370186899481002581222794623377026394209728427738003152827944424443527728128420148866896871385957382897623715478007800998035954742059395902343359883486173552320822626364004033189289505284666519796249366699554254287002727779022303953230510407358784912786951992651979878076446554119493597145204304974913413561974672026206400967180727819081969348377070663916348810221727297056966411369882410543006953177701042744028010401714470373484588484658813432054599487378008632843212136196121770374098601431036009548129700722415140868957394519523044154973897602870612913515373048677654644912869448179276231177000534649644199954364981276159833722515818649531396057702895782008650143944032800247755330184272552786805505952197010402037525026488862905921242864409168794580997918868198210973398042441457122688832752649409878933999756433815851403286126582907419703064999781805930862624864293824013002063570213825987282303474207115471861318515369926074493301303787940228838729385022639822825935448131216942179724303927591161912517720803580071863101816331249814490770729786835322193058779117285363533768741791521749844113875165200142342018596765062858515220483572998855572104920303735177612793128410209499283873542076636085993167028578315168120278149123591782505820636485040498057804604583224946491267082721623124909884915347475914040021875975388546912605946891457559955699776635521101216371815386260576715646857680791915006936268409763135538490047175238551482679023225035253940804667388452425714970419891392907942960376407172699364084247766365198959625883482789892545758882218688365232700979932509785764879104380355094886300879753273927564466423290993425772632403774943146297236547403943781797782311546785494751775477751877558948312087245544494493735140512228984775751234304560213654284873055315967935067275169132633034181834755634655672990892370884184622831342877409048268590147142467373120829311314833174893778411297950035745914899156996647758022843973710861578571471252469459125097718961876346192286719061090160685179328213585756290572804534304344180845093611402838980376815571657629571442112117794437198326572958861135120729269645246215302008760573954894817871853464728646604981986837240806622065309755610378699471514314498612259283266972147893060986737538027859387754056289609298207105802027066413781587827054727901015590511501699580401592919036890231181936099145271495460872384509998430383861083484511762687583419004664154834343084803688278003328866307141989813065338654762110678608593825335007887027726053563278947409153844385480967925615479769861893837343350357586796299450117450657838033965279330243255482844207669473956521052377203346575252637192789019123436349224522252585764165174573940438645617663075199971138005545597214971888090336340926368857820906710895827539725421591241468744366323604165351905712691681277181152372041734107170402576099502213703417131585585478727923943112155590588118106971685854662163234774904290904985356609197598567747913716819488881927593766125583364211885897551028400432378513823259857508085741181281874225494651575514343830909773633765527803673264030617804211183929077667757396068604955421557581712832661189138692242199312361948014229589470430103704248338252190457508428218756311780275074036629863141647037972305580626407858872362924179632530736759193623977334887652722965505581282122294563134388722503478071696259359944151271545016198374699534166659596290056561861601688322693981692398446909610253093132696794696220001201239067336000325619593927202451443992767733597390607928161030570672055004955453735177421576905264418576878570808054359430749520576054343918927198627532767601368391278833800433316369870498817831841823337711028573744412922437096258283875819367585181234070282271698045521477610141023388004840947978431422880600333817393294812687570309991409276682405078283121952027639309746453764649602971118577100559950958777304364690908795223417063380541304066406514740195197718802530587270885349983502889850826724450227693567294703691279923286757770060076620758986929574507984950250411828475682157538821695398748295050035500394244956318669870894862342548293375060927162931806995961638004531478597882370445036734541870254754091909927306314529157423554833950853514727383973910617294991214781539718136348422911996178864588671764325006996827595234084099165388611375643000642515285492506261167900900705643005925625703635392267569016991898938244982391746421328158951349996432517660160493492452795725392941055959326174618581788772707865064630265589903085826730446748183927266732759710167151078206526385014029872911688632201173945378937633825563807955660838313470404022851331381298609223804402506390087111807127879998799940422455737432145527073192297453477037369160282417015155001315663256657865703765540999555641810248138787802643766388788782764859630659923843706095349448552729753036359980664110751292276591653018359255085343745483388388785170174418397482295352168068578056375596329706255086346641847907170866165530681860332953353173173556974488965436445759785351004835368794268205413657658251780088939169291885836951814025933813846451727569964240865870792385987700576203960258854889164629945428534531683876178659822812304672878537003489249244346056877703059331466821609783092089698670118437111529201759128098199106362489427418235323275403078031890707407329577010602383801932333595256302415248965044228105372920624785384486838747400931795008723208271997081433841304866394455152123272460242608875614645650770937185991807890831645344468847954892802080537037793257475439096499536033606487143286242350569317813329057082828273889288738133237825676189652358520233070402559876088246854068079612064381434566503826201493553513383196595963014773725705117716183623286023022058103608820535792996817856278076615344145506873763854366093467696079174034157117291944859591813746272831690297135751231564133160873639638428499376188685452211720714366220586574366542052749490458377538612389735288037714313962952569686514867184974254926386208512946450794212112024441154133634480944153095110360290826799993152816005343968829867293603860801649366168521846574319353704226713031583834507063021379792545979664912836134481431593175777509415062805162838178999984863545982149607177374113233633627881831120397333092539590358873134632754743349661578886748130615081400641841358068786571720958974560975323711149079225459990756385402217750919762836903549945737040984850616287055533836983181847986317856367192258643610488605920171985172541919821330400356104755271355261870964649340745876223543306945854808419851189941256683107823916206009437335103895919987157763008046520303147162961512268428528551106924998178207968580247427862494919706114215894685063611578269638539747090906822059229199346395876067993913447770141974290861119223632559593954863056388478731840759090224687913372611878836168579758033480995668545939877327425837776014500686839855613437611555676774807844305323476336316358225552991116041227574843194980171048456967349557618119758605451617942036528925620094499976569058579899320027754989886168164081078479060455399476452057890154493194399283687557944230295833306746934613548804828743461799224263606209472305945177253892694356705954312401109853515955322968364974880617235851577161245965128262304907885348877869096251237612379153562895769040799319617375085275961765621377911644910348351244644840379629876934420517305916370430902555639352030169264414700778196606245281533075655866469117778527814735965472751912247191909709333175923361129590163207648449183468101155668833942943850612400305901838779773205373177860919711237101331434050548164402631466364923519922584159491654672724080144903725277934708206609891010633818870866059585820734856759251228481869298406534717440312911326535638716857045633897450998592888337419315011473145925777004963508332588553403084130391493201051896841390361691539688772011065197686727146686253633773680568778527919587953241669893950238482417656159646952842325596360573997634471175612946385876051058690139382365985016144850213032996149641670256824350946350083960774339061495137484805874616905240298618541432016413362263538160189640253415343782646742683280351939635112726826043559005454346233734741755798170239679428231878891100363603006421674393534536993763089613775194235911211518411326219122548107035224147709414907905626950222647478600258407838612604161441078106103313912951666046764061471499692331167560652525798640030164356220294326587769565513791818168532337914678083227311458609836466982366508978671545253520452520301285535545358168982767649967999708962417988087910265545029314067228052470851688535541411517937326439724455329889171269685011353966673074478856126557992127447743422709481160365786103329617593036028396130370758799466630502758677176446351246362687034094350835010043215502620209724627588733963551205105165642793589538199081049454063494876102282907603470848247270340733526965897779936388971972431424603825477986777553921156192086993544218105930479597442242793570314424140064395907562689681923066579260213799207231180620974998400139239851261263519355440633165497185258016943201881086308974182551048693274852729190443067946503824715923922133461048731047841754172868912756459620080751206928637007373608404897600051508181832645203270587375873385458912888338136407548422952661436084736212848768246099563954968509859992477895865781496525554928180074000204305346990504758376788549997473780977731392486531853297578846392981383102181709527810239659187837037756123169767660805726939485900484820323794181311406972825700205792424929873738819410787671450083209484133607011174784452722326435170135782055914961606431312266608583739573692895233808012654256321547733330613123418710491642361350306682161500486353900385278842884081324339691046660085108654485180620711084208995289303834699744926276270149530666319298476955705140315428395300445934319906430094368392732384293286064092895558756885042803160978979406921887260005923766553269016257952835069688273726538903264323761426420283476803537399723712005663668448609864905467120390267211002529203357970673356571568935903325591116568242288450649344396327658880756418405942113495805634168813850543791552072469193627278704969691520432872613282058367792641401065410136886195767951564247693979207890250555214100782925788962393076233468686381947009288522730882863310053479859099236960907410167827119995113975258954380757938690953719291317917405295099890717019686912202646084901620667393016981844602776359447718174679788002447120833510066688369716450773036026741914442830455569024927009627268361022514759972279343849493219019525752683481672032080645502716249690309529901801777224146373440350635605886747039498752861953344905023858257787724858133744245826504379136206368684453722085415731856917993655957192260115384625532625338725178916483265821485026735761156985875483862367886955637068098911999316643521808775649539289037332027137224988159962767297422477432410087255107758519684346955320702570911589739936935998789094796145997859414557245654147121041042533240977388075986406454228967754808707525937907033095952335772056710181492897820572901883735610722197390241551931749468435514042128952115794979981040846771713441340476926918475001879409416063808675715733959404124629230369805372300747572909917882615969724713724077441956692963395289726952869152541779227742093440943376371979543341363936092753699985851751331712822169141605674281921162320271334370920421413597318385475083060924894546562404061810745442431875004668788434106040389505030109996428327626915515328850942272468721677741520574013636443593268995114493901888539971919895729527545647193068667604503465959782154815338075382247891172514711898212234338491656058265438944199042764222417875433698710093332120555616673499565042940556015887427642241417173031316507524229617319765228370846571594168807444401356254669167881472886111945245747347988220370448570653923096289972975728346841969781300597216248493571962488723388037782046105338388870214713836478524830157564471222743775486932563672249607454341912597250733327597810987847777518282119196197486927583916559397405173912647130217986420021444685910858960818017150456635977375052861486624450357878601972836345538016346985972025593173042405983043780982263264917906648219437227759586568557113315339152287097122481705988807624266010314945222034605720123192121109501685707159178281078833253274445744751559579646685132081149173150841089446701811699155489867739820880050788316963763605695829620518274045337752911779316611408587938539038384841242210616957701441622030224220347581265101832461723104168595210485101256368924762137667509774570166862740143265872477231371164424862684230284336541297846912939418023486790949575169491407275149258872745132142113230084401048374369927730666012421166795446267762787683953843623496521734531698286111178262117127131822575285334788642484277556908653758105313681792416757329075822336934456316393573958723474986182780527803462026267332744913162071665320274332157133005104718684741360481375382249438507912591542013629752744165600834445309438692942715850157609621426716265260888154170977781391100907979018861046630247443034315011806208986296004174839627145403778811571880170229069083174692058786659722127740368225812879246237114947704335637427447401666001265955596459933906020158787942230837429556920191146582556438569882480536312285797403417238864245424633458955447902921188616287367941292767607528030072469237915534068794320059232985804971765894300536546354308120284980053274286049146975657681703174938788675278955314757345315544992677900872841871813131253127994468319728612523519471228602969432258316038946960579134866711606009239337607378322822203170708233319846385544796896484785718331346975305982645146418789821135190219563828303683654632904378184702941978606694408585538302199826908650089371033574949923478023080445502701236371794207247413894411556501018519443110083759413617511142256250692307544446643891601083162564292663770475160114984977299331830862418005867361579134126901518582315517112329848678885793323612464423628373232718824154624798415052628308365363355390414967682111696939959500611921785385624491182865243572311731636579808248045176679446914507681495071034496012173727831470280532571134270070872231877176171656995839577599534347546583115226787066149892519720560369023135316074598768489332065200123752443633907149776379652845488466793265245788033244898551351414591797430141942662180333550126753245257909370328179415325259554806519732256948194054030218366291484151164400347191148873512342332990251879379597856676748865616890956945504562159760109489195360650386328662069903684398563787439802006357954645947793423315601676511294342070799579980220229819533372049023051806520776846571646524941247145162742246161087240280254429469284578272023695322824406199174869095882332622463970191363948761044302105710879993255928281309501184239384839810627500870085037421781944304647716242941791135193693976770004286157359220038259889769699070087349028575028716307603133859211607818773246165959562287679440086622062894681512545753823308278555232212355087378496068362597216072279660032679811740273785092463042774505611499743810956851866407758847388666141112621654394130188574625967975419929505453649982181674556982841413807374356986519173321029526812051840237333622708542098191121083371521697275110489527903093232589068807033341040891936464339079271118741258142154045184208358112351260630086386675456274300600494304819271018513562326574937028719519488659335366976409308855077096625949403357416755484922934511539230124253836741394708207729365834233687238428791634160736814280560070697581535128395411839024787708577066227605039008964713284362360767853087161720379973700170944311490657572639441817706541646825210623383040216291556159834783462441196372206962213491394869951499529649695524348369872466360284326250736437854352171257152964213866399090916930085308832246205022311723832440524536965555213110422370827214056509050502520473121212106615972416437281517581451067241465410169169774713587780306359583920073269898271486773558873352946552115521552366492276127443746115256510144270797657408387678485208447933284979403717986433744106912593776435111248770091673977175412908851245426448430521378793323021278612460238708429609214899915115977011546544757283028249829730064980803817575258919710911790438258538760583696684098485878680160153878930850996473450014395602667592707254784466380710398509356677140279249776909635927505717789600504074969517438613073312228537342968920885559727771351203457206422357626261573207680906231754417538113000549153333055075857277140500657696988368221857934937981399537184418763428849222211636337090077545297608083268016217176308774286694686266269424052057261582788544168336352955482939237344430207420554499280046963505134841466010673640843257347250969031418916765945491340364440108499060937851928727562496342697172386430764315940581350843573095249337619011337632719997729620962628869330321879183022822930674531337188663512417082768801437919421279293261687232799179930596307699128708563338057324165582237821358785259373531029942935427731680841732948708690174218679362571934015430997032017923005446363846485697706551558531740911048482238591203657705579048438452285685069513807342473177555265758490436097196881011592136323476709274549743118597872190404431703261052685339221568429993704860543362630148313746465016533179298707293098506053792435693783459545731203124678530380105783578306275043410596885831106912378675485725174738775848598040404479414733310060878091013645450281063929142334971624575726359420355485993513363113391611338805316773064214034043362075646183394088211472354012076377978058244193893838870340159953833615637829715793061016040056055566446211635658542834919709941597312415513808107813453343255750799957529960679753963782159495477876640304005959913663213417752182537934632322896022928600075492391670013088206006524921231765428318426374488630843045187611167848007337094333515668260151613140182745903543315336670812582413923352338866082166638377215386789532035761433353928467434602333667204232166389934243069129293680352377800343605783229566032742252037284410100281290791165341208878958461991925976822996776566609692450191154777538848436562790008152660825525121553945568009518965794414410643465194882728510168154939342518137110869471218174456495412172587393121366590754561667466454472883731760459170586812722056206228731358925674057305972268817700257173308934216880114168098983836240880169461326012428017646805928899261731572598024617984059350560678985505213367272104976023426826354996076795148506393570380876867766198677367756292122288509926292637312617971583905465755680602464049431026551139212105159215070080652350426867460182880845947296984697746813076711475863295607907351613684055207203866142463890693616525628822634208579619075463727467650552453123903668071073931127554185124086127961775780710670008589278403321296993353770255609481085056583952628406456841454048210825919694666452375707226791921796285043549491713493102460817554245270039586157324942742697944134330575174680446685474151960199401180791492859753750726231521175842309027910034087521167615862603474337802153320197039912449878450346655632371219743494087299601028329193133652262594781550523538224116603839695969340250644478026867989982416437291858152287574643322947346468326225080515556140910739397639647619135881248883487030967297094489951158950437118363790578948810044095411981105627643667301970325901239370194911529979786344285947065689825824454988174522710337098000313059692096709318583224327237146910945251586323311781208807052060912454922468545240814673759452874714112570909360919260463062780782744466386508193528315616153920149786654723945870716091234789887564689447609145148382310091700885965477476545904437789200658426009319350467728121508689609889107151159458446937514703736076881823133935018164191308912689461823212914680160387944080840956718698783422564319792474022540254027186204987601199975964503848289830611584926650811641552081473532590263217425296987331793427427961677021574913534476052009506940306476012305605121686554051903595241466485474294723976495945461878835169255151979089946299249513164348747188983653148497882472373911414357707288658950981650762318262267299835846977056818132505694462595984380789214400438952302810634798669630996879752443450943284385500902264495587202854139483962163183886219180977803417311727350999973650348774081026098982135271320262182039722679439424711598530558374990688929753677491600245388357328573334963151969268582082113679481645204587575318646197728245362725794965149065676473718355610651833465839400958013167489950980982620535933099013954083953857618520739298974065915901577217070138625313860557821678551081653773071913441437573898106092384172808367662552095749056962522212075669895635194495987191938832897324264224443076787589937332977718339582118722074764942875971971242172447669862911010436359151125439396319813461875407926596322823937351171304621593835040897733413206916919672354070531659678876382169555304084385163530234320241809376421763431161191182004885905504062822154281151678534542570090937065122581669193223546110503281590885263201159460965702425091395707944151939703135602379711301722059147178673374177005375141338226589908438198648886569121679884834439445785608047812515598266681345420631313910477636772159602851777567591245068265112251313160542056663585731609224164888264676303078453509999386316182964328154685430605994272076108759293262252826684780735724928854950754803993737987677573024680080667070373750306830484126154107217369854309151858418749211833154409445093896691149444288176910697658415037407144454660586152261697050758002190685621564693810893308590609627390022169851280537034261515527755931758413815975496197434141293132932613090511342120433806537581098060213801402143208832211977644329463395938718376198534764831882904555969232738714597046021270465309391497846693738350387803857252700410934872025617734686433232064128026633675394921244870888180520500393904078584863115177260602277597911847904466105344545862146001996098309352471817588581267718722282577435781638059094269209331463346394434032463632566900547543287313319634524493826023842848134002446546472979529475755401806524139509524918766100436180255862070129798658654877945954763977879269906552361491902264193891660718972688989698220774831041720334497971663784024609664736686021152311465187117596574476935055997076520704919573344570593681223188512956900208346180935073730037436127921691339352649562631141080693364130173751960320309062957138386500419565486991366499225126831489987983498988023962098251286049736251826113690901956925118257612131896912582345828680531657335791171992273701884426355620066645540914579799777971166405015032170885489977816481782543568437305572402464730333193345872764931536238780618453929757500071041558515275782813495251614221873770515813439086756602109013738454117270885356626209613177506352976944037124222192303504249427560011670195580890676475336481314242704406412601331132684967832544236291641978135449873751337336024037561524079099363000710577850685204142320684303984768335810836057446052300211061590142802044691213641153341184335694627888328420990053050355440776639834240491755471895127741573884251031860532176952172527694702960733286148271257886856206238719017874785846998213227931796696140627370146756909164189739709209045633741583396243003854841249045264338150557812592893333670834035151711238680275754731274892771048686906489719021559197476964575013983143581324885703773348311091837878546567371109822982074038339144767393940164783569273841342073774141618950233356233214774149885076491879242307224307287372697971094754037208444682232166213038210246357231309170632660059181642355383538937740395038497444918860092342042271537384679637298772764732633767078988380012461561006911743574315041450820792815821264300662541627674307011268627845479318602619230025475557004183077349540887388991246564835781572383436524608664639888316434829773845171544319897948521325559838517237127984364072344315185220901279314962142648835048195248930168744068025781044100070840047058997380425521503797549909819632780910111438544105838858905079346633163505254749596678899684323006256136647509348645152018765389528057348793562541503386507378190058717079606107965018105244072902184985896623856187576753603832626952729387016163790750590477282199791375127627202200591933225384315171752427098388938159356908331082764114126224159677841581749299297929972135428573699537601727482701465587361874070738088512021258884854051710606595860899553800729815162110391401478917265995539547211978848508512056359730383050094328135575264654069986238134061527711606417866419945603152389813461637286202755082864454628299517987273568695964821568798591385826714936832118577047470193788121913084339715527816281135467888803438030384270776778936299489826277172239279358717412213110137964158608349835104018704915514026311262712906775887292213684047294670463210609047211525593470677245804456820742111595828068143355958657174836221048416094384166416394815435491935127232632357110057102724779783900988171419545102908229310371115964911612572688134980864400998483464135471868416997554063508677683239143330897964255218818664892125930228629007342176077007749749778404216295159788695733508650048598080788205266698302695516939945259521701709000199636758210436669917909532086539920355986257092509060150350308072394309033582156860401092934972204244629759595954042480989816457376655662487753951508043653764138393622472252404594468177995836629377710300672155829329197538879734953827460201757972982427164970017459476814100600972430479453036048720622364593462520284724510579532009352431588884259968580773157069350702812051490470861387696703596287694297173611705504120490557584611306729399037064173654457734261723162911743808321055334968479538602432491306175411666649736587753969437906890085358832726277211020292818080956519100117627400603553782207687941377854584257856047796900016129688551629583795718813053157663407538797492362803568396654854222247049767233598446997068060908880827919050288237303449050046759798929159803797903535761159447908097122603284634853193628767414837252035926195159256782488705273460952621061908457576864287105046291099474257287497592460196108503482000922708172042226544078911573453781039020005531017742119150391357740278512102430425363452630221842335578302656333894529883882197149908408913312801284070495926215851144050615274084195227106697582323776259582048267903579096532053159423633833185168064453000359608301212983333275008357819052677018307640234481086682670943394414125609283448024414793215990911868973469367747699792790477661153695035932343848482384533029497208637840003991982388991050563480904822087532406677051681011789517381187075273477623593187406035262484540553167363303639698875384961762221033819513919805955809411821897664628058467720752750563622082009964276844839022153600298593887688193308838382488044686673643716656877633885490528390240336578000175325500986591185067602668487117765378350729474294415888724837375614990959054175283717027425311917612300922467093147029164032848228256443408468083045241235745550541830071275969831314540369676685665768473058945647937244041313307953610608679218421855676741979161760742958074442513348412399330555387778537485196516673154945618047476699592584300011692452435325898576039820064778814793203855826477864707472214975691809445849102798064857703519035970189827452188288100622855835938081842928843636903232080712225199037395852061689507364124845706500123628552939652896561291899869301215924846290963189559977898873076922954990929399878464326564347502543385453213738356746495310942856441448157082722020795355062761778588104863890480598923588160371967689146696220042061268492841986009322090280782165389935996860766128651908195330619228098280621415353726062498577170930183316793920708777140249944011713580172870058280923557693723612024114147713829958203120199315457368675786810017253180439477506274119721094968048384989320861329628191734505783530479863013733114010493940518740427220839647392682697431965734477846198467017523402096854234736995662342780896265103781595574830068871454642585614369458040690480256316972404612737710598675848341627396562931618828729622685364433054836807126729890826427789366433063631050245290364266031419905904470495601301439366639336374475061131310314590483564419903598584249878078751195170058555829294252992817416416360130565506926801935616285699314545963781399449772802499954270521603989549788933344594648405632383441176841463837390278519301810898239539116031141181927503732236790596851135873306099671343418138329519016946248845837152088959014601109676232842292682166208854555632253483940309348370764618544164433935343871899459937313536967874716819211188566239950847334278719672142916070520158007262154261672629990784686427876978972054349568246618218565913929861385554738272643678758033594184036627774343046570295171121114010256441050155592009537627379355602196566629266071812385585536658333805089691329084213193464780446189459624877600643022801662466967042666783475568609127196105070277094308751427659346982966268037478521384935175885607194318887476122552675314611853268760660760183336411323591518905975456805635833170814574385638402755394106515117423041337769252012412689402317866620040761666859572595123664911734898619657497317326351956024820551983885163103190795621152879753058026570918681419645807843459445239534779650547657136930251522698641168303488253120262849341150699004709253653746026640724269170853222387710788535097097604410041710724099372330221894267892649602519250003114107375758139515391485442990176705234561019941794270816146342866604864840496088839066721482470790885565210892502475860873101987373288018268049338422900375083718410364563970521771492443954977898130671956980199115507382648925158881401579095043736002156255619119102907296717112664431369428727658892322123525528631101353514021406663921436197162733582676665521862174018169172079033767525685641156608178392436594015557211891298562801813436160749665216490439493081704435962026532087422395890976858946120226559628115294956435020579764342491715605104744252914602000701233611585553873273145238698827216023049554688571689497623994529287834072278279701260487569950600152397229115167197052997178018050421986092888944516614954475172277442880790769404942540166982480508161334022213920075143471524692283705418409778757936919924846584595662987925857156662346224583239253301759610742783370378883111289956988065064987652315300848190482521263321852304751607946394349976262465332839987374169873383604929771016720297769529849233364011608311785861926439525395807100851311298948994153917528369173799427522809433231492391821674059757360126464988984424241976527982734790874829134933433001500122245244300298682459315397310170524828060532997867043003520813300637219495055309138689859546352393545857982692000342840452661597758700812168906352099896753281303440882848942616178067255585321887952552260328448104949169076505031058160127690619367921777165775655020945008739841311944785005265003849765151172365779847618280416367232904453995976319118833731078591002459730150537197233185726002014227074007199614565169252707693962088430691211983137098481887904515743135022758107080612396269519719347660972338983091970079405873704584203161730277549110266532402151636581290804081342114310596413176326977204716633095086186428589175895974457944143465311634328293476790151499666910962984055700878685620778171250739468382333244544609161488839575690104475718967596129015725581800416715032555078086315610087349713152710852010256981198534407792239362227627669154874284650425868539206345259705885058463557196675755528069179345571045264096629443338228742503299640849455132446963852757073269285797371293675831735264775312294653938047206091904956322753036490858669119704993240547043805378697314926608451815059933215965093404997009225014090425567883169336693094633317894818870414896413644861999749244178686987877183761170831340897166692825298552841904735719009696306240361571432267443190377451780105106276318619187190837735959407970791041498781269231276006877375221358218645126294401006867565230033109728050480557928238248576086816432364318108294858436195436201413680991496545211586183554726696661847830530386001533694786992803735629579881798233683224597362073185869029375255344265078426993271986765875812945571621569844273985706218480898759248246488666410202770222226796739699843277316417260145310367752462990910729375894453947207467077687320107040062631929827105870515960007748874716310372319858271688749673142179750743425393132771453278164475544609476296988485512105346251146420212570654305389793348582062184118376333041039179811134244472711584192771948435097375535441838300131429779200772626950213829002701012118140958409624449739457523335679445303483852685065414065958295282278491724484698000286922638040122196927313009073248291082718796807905092129105876256482921230526896097278617258702169890841980574161306394757074498568220919698422646411455462804863048860829842691683655643583898577882735886660513834509036734893085412110622678796267944956397234637228789603081218415804194636081329025291437606118329440767489560314589896316740713311127589337386225412174959376864401729934139320057874438889937848068577710180608025216489965274416770817349208991920266646174110703915005812319212204524643061528939127771603665217943910416477719069407506687523307355902309048929806599589868490943683702694259229519586450524277248936916446791666155762601923020445254795543660797147780176420833413491918929387174011376424586014485584347554107818553930413295544041833553997064564820540607352957893603869450668238367560537816072261385148997716606442758263247067581813264718466409757776518800520943232094496784107980655363365360509685586450169447212064013400760307480355738703283091268523451478645536732647366317640106802154600598554536274308501687786497953257472733482217928089848786554805252332947404793061398594383358380932468226696292993692658115829968472506267306577959726158070221957009498590810039157581044205107659467498044438198960789984524344577935057969049707865449125468170067757302804136573925619860089389044837698507587741595155458655734936334691043853931277520693051858935938928052479262017125526858642363434748891068542002113344327887761205103853459717058294752380432692210557182073562255744438887707941831782656840944266648765855370062972904876286605937446113062235001146830415830821636579886524692565486148840635587053281615734407603556870880873074944310419121544459796954063950751374176223925581225878542220511918481139094158391439113743796585331480589084130708303907218970543407361209492867050652646300257852206704461014303963994551198440841896185270300869552271306637850414289868051860279445054658400986707357490674936876915198086245399976761657111239601005775575857707119577614301898976149955840198425102880700250118756473121872242231429204278795589860173246120266331270576181011776296085197490789719370165484456226398533178770045133267585165571479181870714259972847766460437471667101164669212987426919323410969814203972961653444091829154278209205941678346477663541017695838186211882635006916713625610644820986181698547845658252372929687237129461235476673582035125965129648255102312359491800827518522538380294781811744520845669607477996117387062463572207545084913389727030786525169909844889830882823077492775488473131977340892115256940449359438341920028527154868660452832327691784193888863952660375250023379191546280332341949366040022554223683564910454454888576443433937637590452729413192678002197677449095897506449260200921416596305736471496766702785520013608902489638859595881258567647192811365422135910027374099408458616726646849856092966807802763530337712115539830827061613936461030621110838776243693700574325217581764994578318855186301877795826100913028974171559125093501209828478835670930883128289652377936287800646463646869000648315017657268251225816576545883624562182766028719547964016765224506465032040214844400675069512316930769752391745501147063233183937681361163895812584101796763890231643848917671204399489063659001630347134612707965639243414279212633120907634034821947710514698927575120867769335657714108506452263796842744850320468744351305241067198464858090270027735959959107920029563782671580258063274530560280968133061464025851664796323542933451231006368893913374562296222904074784128678358791165329408348328144849386442214372412783393898956320127500506479780807647408905635585471247800070664632334394140633881779434105475254043789704208031982182423080910975039240132952132789125288830085289738702443893604528204704059620990922418132665112476601785101764455205376670487724995244549710051874996000285099978365596584072512832333973633137362002104492513709950747395048445738593458666240405093848888902292317577914240154594623620224119862092123945378600792666413994128683515836318471095303691832651096639359962285590930130678518297942381545371872732196058305021790647095717479615446282430357909660153836759142430820347293988533818626855139159450991196109956502928491356474764005292697218565974015144755870220208940701761935356014416401304556899560144904352341375188905734360235770292751034068798786026687080903409987149034184854776588861506951520428886579045629196646998025487120753460791840001873798810982696337461637164022338064840986744976720419839960914994855739069409049801588224070387397611467668375499552563112494746794252145315937185637482669340522154323408905790766724344064966981429738825960487806984021127429742417861824501900508178042212446488241931268866865860232989655644107459264634234998629336510098726202181802012283774457078647456526841806326872072131467980428998727314372228280790866015517944414914756804957566946480971234089861336968184630861015826279551815010338826965392764801684896137630103543702590529322991793387980562763791521842991956932913669692424872882761970427076851118557107095392676129994032287671663367063844990582669330519190276746676426648697632770858379639567072352549729633949181805437434104978756811210888257177858137302300030815674125265252035857234955887818976464945491222464561594185301694597122148612780660463779080845376926327209663069072153863158740554233309966742773236250777016296560710524476866493134317025972565336979564715877509536634076369501347368097612895431572874559459432833622482082649081661636444621775050547288781012375340103798013617541372623133717799859052848443992130434664568605083536663515531577589852132166986745404682705414659743581058471855690529163016212892595098409017278235040109115160598665251330750157169505264176092196774970504759814502090301335317413217926735406885339745138109511573865982842482177188377289584956148212836243600798445522167736541434728140552769919066102430749754959611000056588430588819470277746143254347927239628880580901119735257995105370620508424803699997071384292414123982639524636801879849109680675213226478479351188688355436689756166500702575907691897919333134227818842548716333833599843983385667773974399336483787183904307392696431852296171006382122439550514523738534676913887188309278323043044222280673105362286496665583309952125101912896459838693869776359814976585506980036425816457288436503646118621466745031507512642963609945104715450180634963584774005137584297966160657047285595150833243725821619942517353798351902464155725860841486736155956706415768713709208823541906406384420741680311965065861185680644215380273722322401111658238406518837407283563055875718918623962783286919828685107396105842926207764207702346262968846334442954924821130767715528544009185252794848364890169018856581691130466080046077650581752185694829630718251945586019776035364601173003483648987632488370758738285378853030820905619880676838698792459578780328456735337742387658170310726293423013625089650205110775119947518520599791382168725011546803901142885547333520808390980565941504704249646363592463346312992175794613541171711851148760415240887232621855624379836130620362814000247256128008822077749917648963649197809252539684958599702792202848572589115606383927732571258865914651114130616796312440889075919660546752443706716952797694791614739979823736086496001518163623920944213642527090056012395179931255552372786496347183222773543996877145545525350637849297600880516644266800285101648061439930872690270766975025834339483047537620619802334148212498827522179689401132420499406073191579010206910512241533084289336284863657194070760105464365898248008266629055568484516610934250827964623305208869936543466140973106809366180068012956844944785052548365883628578105802621518977374330403416719658747689557903950454134687511401161284261072759866736665728183582179094002080874044582970856902689065923144054543058296639729484594571717199365439318713778065011409392745137676196304580141948050825168093624683365455101582492489601435475316456999393534642048963860485609837764672160604358340861554702782915176184586252271010792642063788021576710915984253454109274958720308177934389103575644124590769515110309508495201945922423015210228829777789675535568406211451779776030124729280089509014922106469552582232638154656822491365780110064023930994501693807762841999364214783959793766634060063065045893283689484503460151250845969915829713990870646619019389766473595850791215288998010238741295949347816162889109713537445943424743296422718998378259993422968831634019275750717589973001092333165661235012280417565652969656183136111478181213233657219070843281328278235531727119914817061717095728895773911808553901768326878130014322566677481915126762206932574795953670909585850997673410851551470623750147858231403631152859991293204866895505298667451451834676223420594349997749531623471781954709976977008905483400444834858944461597452948858307585129829463955227473995444924109674051915798404991379621365982634232573543745053546526296405721711632873458308280006424388969497398263539635269241033499414975718167323648447477068190793785961556347705318320646192924257987252076612821800641969466739225279768141216626060730845821383411600079282456528913606270136076759991276127367256879951054609594557051654039795413383830948482019386398558197001933904604149313287319052848405086063065202721263345492538248294549744081703357329687496747077462753723542832103850937272645090884460136426896559837215426590385081204649002086582422070455160729518559904514778942094145466273818570339497201149197792430642494486131015821649928814204247870921484445308745759905292347950003940944278027103890960062317229562616428222378343832059746587247569263348704991526261529488155495268874910191578798487029241565188968957889388418681520890304915063037362353816574834236232253845317172340477987606195386505246515729463495997464444400546181327835754205392673953548113334279999365325522528577482367942855812035828520287817524005136131646893517390796315533950248401261080398669217867931464655937425678166967611635812269091273402343709660356983014477842526264015095816529100497233539957034048276946772097224107313559475436589889310933975544229930522929281849292002531946722972627752992384776354799440033216566543028890504096804848101416924079458936963699992069760356100582504673288112519744642648837254952691241121467707877830276591268319343224218252993030235551491723564814582518044091265948694122377756498873080014076116550366556502737331097131404707027295984380747122677785124704955545930053070856648231744454570650075734877328950798244678883551160997300632881722475710210228225985931711121799237076891169928526775759329736959891630581939317626715322296622979086263133896805247202866228293139947336969668044020790424151596658119062931828397192150926072201497652026661262606777864773808901584847385381066516536932191337575539679612378741407554248702497881005239004798434813422428756689313026713425657477560329708835041076619724064236878124863733804532082358905331408511912867043524430029851289005438538551872881570402018409859697856403458283086178442126659723369760919433287603073209504271139415252943535460549183735366532064805984854938698219204098624589912222691580242292248882825702686106013725350684279618450192405173463176562914939225545996699661648707597956638120563149545466374308886743613647713050471360129677973646445275333600263997793087350230197875487529839718701561150835387944116887063519873097650306660762147314121685775894743147502868434214191618799470363119533747735376329431825310450785510543110259853574116642489681347731224217513133093782302578827318087774151056879150264914674134368143212155700417646715566361294484040496513096722319978415557026243805292808251992264238862235282311969208908761292499429005996082930421585433508694408786038679140126840642408711564703339150142735642034991872810826640127286887007100416802298860548010343238497301125557800861893380794819515137045179421187569401137104541292045907528525032164959040324995123177347167806204618558180875697321322411790202809571666790598446906482866017065434215599174656771993725898576224045402895809392514849646248585068098637666275736885419841691878041322361950543448617190966024606329618462243834636206707540156602530096665611635163123289576266129245485715577815892747226073881524888493492786032701064615430802859965345160041105729283816841973761020832006667830115826604373714862916850413252427879344058915881930053002493393500718560352112502655599791572273696352737131653858480094106394216950308637399064246614109189351001915903197205741669435119656194087877484849039175239093622277536453518367789276718617015130895779330174768903822838079250609281523684148459506636710434306335815773232419659968994876904629143326526225003738552057751760364321446996129271349404717596716318403449535571726651893289764430250340694298024530397711609585865644257200988933582982860137746924345326024427316948709231886882287961899786726030900912858375312530797670038142489054030975176537734778443966600652533447959087011400779411181753459748886701412053019895183598341426794063375496169319081630899318853086798252798469146568082424395837464808543824916097463355078659957986870039097353513206761763312432406093763611087373594565440963066368716796357574263469379524895597198542530185941465090485566165375711038471703285888353975731712770013083015925903838050341474106921072087327926283352321618728808892542393758959775130276741959778524854573984446169421370027813785604330664934236292404193437273634928417522971178093517160769821856847281471416139597054506425937916228949297270244323547184358041674934429214370201311165170997468391745527179400218752223351420763034338546825105472021650490285755963924438146820660723310222111269811600078681556855182010056625827753621665293318896471671017777546633265482013859622202834583526237734936415123203102342826144707441976380355864008998075503659794227925398695115762493253068959455516024366393826774364773499549767793292118195475089213324460270337706406247475977313727000018251932898423251280504130712639649862072584251108169082316965047756171550444639758617900897554618239034453968187348271835339256270529396205436998989903507954260492444019753651132020189523538405245946504925864942191966226085818751206614234738893803512334709804036842857970265315489486036826656879535322875753495726034767482021165605090964571668674474368112176324664161956951325544479373243917250121907891932744197392943707122048380943936134575883455418902663559565380059220125072978184851521382671276459260594461786526145293539261864985788689584436752517991778063113379635115595307665237837963943809401997661177061479013299929786672442233053388386595819086479942821101976681434951070388700475480449346388262383010262520775989851425120805464612621822502114633213183956217582108761480396037482138165813557805314167447025172826025788544131541833519153369306114323165834998167349316952292409507706766332630143517239525368438970147496359768714888979512402966551653891111721492351854288726769769644744361364288460228367993378703685574153312563161302937700136275046307593104483975612212893677606660219066473506279126665077416209818491730473731739798479928907961021068763853369605748263793284773479584399453439023041160214072149769951474837458558232806229823133242059828505656131992629855787147732803860799160940611400828000416015292293437238989424384892039629055613509248527191493044317017938668996343764932187399316616845551386552516443072479473952215094835267168470912895166546443918326595377865298012633117915010890320320495969733325812357259375178571893868451125799605741098378007272556325163313650853782460181438214344442602088899802883559836715443159341503298198804566208255955116881468214142728782411427390086924289541375679294755647963854542408153575436490221766806778394158284489176174798965555004542932616451502168368506641750763267890547789978142197271321322390595599451254242091017502376680638713100407801805831926386902489171783240322657882836590242811109187341306356422675742699648048060580937136281540557544020493381940538330016140945196157552631449171454858596678239349961357913937735066845454630924696301845370232358919204416008040638651748072520552278174512719517332426864352844891107893684126600344300973052334596867527712809219287058433638269860368716220687264392804503831065249071265669033352348239760198033539177183756033279531785102538304118630003864659587751283213392428411301082597207319840445390832001988808878597511846628909289386903071260111495752007382238269113344344929330505406170734174387656735719205360798683204364988439639986656016747966577951863565912255587090702342662881215954803626072382037615894209261410859324570229429798326781651912081191879177748609542157851755589268804180428550138655290373628716756222508344786157219341147414172329946652614059027625895152312433872656569759524483314279894057468386226362281739807363852633929795065972481127298296028452905998806737827804945702410047260623439184959831600410121375099369907528254870913281558912799384100670179325841301046516419850370216229548475467673884918350134320948811802434490930955586387428589486256527813900254962764102013613859072278238175812032286424429768089811272635575969387603580789072040392378077100508338318727485837142617549208511234311488770610493565585615713147066654593396744493913112342184979636528017605641706860006635322364595464402853074551210367592871184046065611651287325674748032990980867315345991435075042062054773315898089064492585785452375830040227680432244644300277341570932548162541554472753508360770573958620782968166532291806195497681017277248828650521340309790549673918887735188055847722139506631896365117001825133786747570109666532084490422912345001145712319332445882456730221922264739789108152686590673465806401714490382855450550286129054437865340176824274854356819503230627028637363803965638340147205137134620514091379463826783873435410099024474786625298089142993840114941279560363316784968492415721910165781853077145742138247753317296868300119960782765694653246945664880085965291507588744390884953579627569266257611353409306007758883335242740201546359822040470505700492322629733556329431880868166588089056390746333882613729257128745223883332666223154267092716757627048407606600085504614097827382841661192874866775819011448211861046620042193721115505056411313380619099762914583323359198161282834031709544255204076539543384661547530130109647882491232952266184310271798183890740825403724125907978180012847437445539963577770814970726499184106487035819118506608980743186701553283654865262576757574385667205105500633507602573939773202016313720678119164605049131664168311757694002533437790489554038653171201694084125742105812031866465784210265693260551270451168879788125418018704155636102967817238861322310795201274924728709152760221104981029971096232385560969741408832902778291090321448618066390377323051302938876280719513229100703117923846881602834740001289834947037683632411225138106926308056963368541653563016784554928527651107688100239913371333637696994655352683174434517100289557749980642448440719923759311748975889666821027155212563684120204680048180682957790770808246383055251760072508855004644105521695663315299142574094407465013660159249218230204757566999657616904080241586564150969071148641501738550512006808116356089927292071050410598166365924084766939813328387150349704964817203218560369133210373386170151709483027885989331805071251947053972755356990053915274728695103240217526241090704812959333808306194677990449362751846705543841199389735003599838494432948958062436955321119860133327724244214427874148927751661291002024157170548876037490380072730737554819181135894209596750475184199687238235674440102970757990097764862694452394992110305564188566008624709225199151677489214258545285410519377591389177711769079481375098253883174140454602862041225540958693553675948241654384238550276847006878901845445989969156700815012566909694784196400524177617554679262701393879149630792165679093202664062029539261061649878751272815638855071019316536457844627772680513221057360151669641113551794494573908106572404745033180741398372407913771249345610903698456331697680939476187963045573595600358247912254929390381578470008984082637949009650606131531858657299967763189094141783554082830070406880105274282429931342559726860716465979260493739919934935060287268512068564301732702959892304859764200546801079738761059217883265288499038210234606361277123109302737554514401783701611728929292357665841635343512200222960470553446377252964961817481889966914011693048393795817305894266472757525444952592483425223790785972732164676613623343655088723344123391836757793029626915336653388462710810227158023491401153718194456926618102241405315977636833466279266493850251754779879379868212075955174339027251544578074773220477220921867382708147110473993796160706789886652938215189037299696823242077853974418983788137467865099011645817455165068784350100641287925590042777939115340819542930877796477709666876175900186888341693493272020256688082349097936777208967221160318914606966027940056593616058938196605743643390120091172296842503789077328914815683643086832827897361937591553606414514808729628073935121475551773298054850606913305322799470782898305671054731880076519600137152246293465428551187442302977181096334787896796680406687358726536247670521740849075700300414232216031205463852098489513674315258302643813741317239889668209702943396600510348279456700213265867938659989668158869206468741725875663800147381483124473598754294172383989676687867380943482817797152142901676928590347788118861931863776029500585726403613162187202934534927047233276125785647972539292587167088451133847262403981188289091913413879813741092182170955078242630397115568446410404883118985112141087480559599582853719308303242989884145395485529654590540828358377554869753313030409981472294668437428090511827721081561600260125043557861464646269540512851737214004544681951473958807191981787486396905367917404389119376349725721018271053475124573677317713252571074927725785454744400611290256651358171070695219183814163348073449038656296943221564030585749977535767254430153801083997087343649938312564196615728093874910955992942838411648494346901577999836813785694037923092172587797213044985191432669007044193990217288568805406063223370211399372782788743692291604730637615848370875731939836440173463489002505859959773405663522241969698767932996256213406056970850050807187374696081880249831343102611101915940804486426380672880230241834685308278712863925502599253143400396027086602403664902798603996427244752096158853652757869037239278646169857795735723575063370556887444168814464960093474370320508492268060829638085970648850072486441237556937766575424749364731861863735983705946568160702677313023914267302699676091412535825463738892028746548112267064614575473502162589522518452130752774771985463652064784641280180621933324929997472044777058212359535375116761607565045729729116169359000539845835841349187557887410626601916560901935295082788829841828212700155896597324979802235841353302733696552270165788699635472289698881439240921132244551653511161902501315955465877411917911434177924629717830291705754841963568947613702531461161023277042889236290944482322568852217187562714439550902660596620140372167926101665482232516951363967766483694720151820545121404806655782453702799020089873608933309556480031218757530287500524871823794935725587482318111690109963284957453930356076037452370004954372487718764200326245867015503474532216169477350786802853579483100999440200226792717816874177403603377634815401408871552035261311418561722795641960663589641217924111031786040288614449340683464820051695205996971821242472055541288434269230138541005475371855770162267019182673257986663797760795569400913707845247597306338959883110999953127159943844938704665217537439399103624886684414238320438435643040136053879367905647163788397412712497277678759573636482486900861564078868295062630726563461064472069288770372687795117835108468760973573641041988062827399237125520752745903562210291187512022131373095900962827239112724922335902238074572811006353734044265761092614748419632274833953694035005293808232319652221489432465664247944217535494741687300549064508978176720950140300318108319543209074386864202219124139650187383992563000091623341825069824388900674830256165838648899576797473487973605573955770986799387650777534407995092096188475956928237005376679332357890918772225482787408472090804372932448545809218496980124742464245996293723930499966328319459171088660700543220641003985480051588150156586749590249895199073071176870684743855777539740070883829991404489923428176641582460056378014390695482333769491269797604576788705880420114916528600238166946596941027546228840221962658622620773096292925665773387826550784966246006559896656300562851372336922310307263268060721912554889921082858322888760647740969791111838854771439160320592383059777546479767481730406589822472372675696181478160732713838889047989546499681608080451774091990112777134052008712380824154370150571390312153545869265936165779520554325610190144492438789538152941236065445375888616150017457279399646414671763013350082003594832940073493429284287828523483448797374563423367086709395330021672451132392327903450672015793499282778858732285939067759063749553827104521672358227232761618741260706793038215860818610681355975572271449102679763341598279250109611893013250120210944836918579380426614904535663812636226855040506454582291341189111419550046227491065552893033763308639214403176861286634026700931084264320427921748564912061538800182503430921265179681294644065321475578022197713904309395700189291518394955093255405926354411177773451813197103101547809010227310411956633241946605578219365699405698980722836934154526371201814206348138610939441080833498065686845438979152138095890541165760133158798848373094933357898179018170738293235299951658291009696961245367649975276259656984465408683221926826960115502685309287344784751922445450121730841339229496432491660510420340194622832874335476886283842632514705323086581153411478346512574510359805411082231318574928532962002103283704530510299885842069034424655166465268332757920830785525702037551516538648367968751150700001573480824825164612251314012038978452697873887202211262741277649849723067944578039760865749946557824256593801590586497220906763011305377362447583742097126618219473843510047440078684574552225604321167178491966122112897480649175477159186388186148347179064510674980413266971284584182188871505896351664509680499777741845235484792897866908800879817267784265419622656438340197214659077640942376617697690053717368105263321150773674414134864235268573741274640769856602881583511920611279437178006662593696121828089705771868640241266975989958769368853513173369892345681640721170948483554935402189462919493897181663253545320363117534716807930222211446450288339630113333904109386229948270896722112708282575431380976490677298485603167804411276133390242931581292746064139070878430785303739158328539032780567269666921503929494881404386599093887879231106923820084412375239728176170952453521747132806678750388295220182345973065821546342721525952758875215230101201362012590067776688003714189532215616449581453707922314550454795114927476699554845551649416955715479808620114157638057169248799335248512795642049153835895592586060196386581687413738824056118687558943845909340749713549524164571803812731165169925510200089355495794999188191028022650573043432629216915991283592966730630453942196655238909207470835690791868217023862129433940461850167252460156350118793463375783807716964678432096784867893572056611832612098787895268261359650730174956721337854938414991713885700918900682547313150200266068849589253441249330144447715299842964387325169295944724009872584454427223375282784584490426187725716756740193438482888372422814989825452586966816835098883301350707296904092526369775948072797623156462637229631692649454436165416863966581652371900327974032400821263081143905883099603725307402788865282121073496063453566293258543631550620395561580280097677220410632493807371894618987435892957216139448709391556393710359671210261111062851338639759444925301513792869499146486099688063837997240746479764830071685119055827283953372629210730464551328158029321228263477420820947080248476664246582511110457827028125145342652080606355495549570711085243292032029758212176847469663047796411281650811015318023188687576082155839301863160838896952665047369870318722299371174541644598837096547708546427858080339405252148087565867688649238994131461257476754871837656749402522491512700346701363206891121571893582085034661468682620257653861925241558313386603854174025795129204767425357721460093723981460971547314766330606455598861414971609290983392814857047845302230832366697854112313058155837958037617673479141795646627908574210651629197939739813361294508030702880415877989172657984673709649864187420582404310973557171878622939166057497528787754789467910679729617457578884966391071993535000827033836302848359414145407974563841033834389411022228230107939260975421184282206760633113761534881272295776822540558968024382090327200017618448726634437442948895513395987354491259209515053930536404559028603718114465817093033701495682920000946349708271087418295696768925339223140957681495367937194368555182865032267793580663529798637635317884305899766277676403777284297032218834562231259299330751207503042650090106605983877872519753111409166953467842892093993768468274085995787509028920904492970685810075592982816926975231497234881891383890445205993317667651205510460525644543721765828832847128608821166527833829177347977605237166773608575382161359303688046686850455567309567383378894173978887983696937642676116137357796483627500370075028792035455446548596519114100294480471889494923747334204035828689206334690275394887476680305388917024953140951195220776351142041736114511391839250196543739977963374914914238643759213858929916307839196554623366438611705584925048153419323254284035383826284307428332925594919651821996019834850804792497609146233038092923058099808936738363765459276452664718322663858093527232703391934775622420230654251397761615017382560619127204609190579075555412522058558225383309003249912362321373230135952007806142402958129677847790230295692219913808131062316179553172048583296877663784048470070426930234677399978472919773116881431417593544796240797299157330393695679310992804824292478054576090314727088426142366422743332314415978950064252994345251188965456379158686521126263918330389177610844688863575919010282514079776898244628171161489542508312096776165349701837614849159063770675604320863013369556750861795122590631929103379971607924456985417534544322400395825827244969935224836600643868264973806329170577053281941436631927188773677071574382067936784547439312169690491521227505631529311443383910008960618096945222569306427157076310326215442399745891987419016332388520018727273399680653598126330788473357025877933213454305718558648353146110311041428971503474753902188620285922641697015203781339228965460303576541613731941665834372852633760510982229962445415900496842154735193032483277844873761893654370453884160144863777454266832844903732388783924969492632430249719102276439305501281686881543200679230885084988869374838172107408353628758760899452412913973259376593671002055485058775248471421095736503381489109578292679784490224249381764881650588027864482298909365724053149047358539837219395058190236495300982413289933497651532405657354491466052344633295055172847587010598141186827133179123163602700232847028315639326751951085156804190149003675196586831071968323567384534159159913859375477781426782811277818164011253098311057875487127856640382660986657649739612741278062849392950250322779654579020200596484358567276563590760777933745299247197143528283989895940565521873087872543110010564501006901120740842622972082403395369856607738048466380712934657707560472084506342141680644259995607617554793046047430498295102921325457827647754255929560153665789345361500132098197707682221131833167179147429294001431539178865648969311095201901348571804562807487419517699011960984137130520045591615369680040573146614223917182248528651997933693925175709578678227288428846472850563558938213246859032062050750875006521382900340878578521761629064173139615886388153546048509636289013778606932366568745814928001777528790867183317535768960209030945277952665292956894800501789304701299206401433924491963508274290521755994574586139519875214382755881280146516982226310219113986243981816552188875870349232999172465960433060644967218916544483658174310209824519046612584681449774154566742821514605809027452384926189160164261863092807894246561251008903104402658442138441858549874124633364259874637951936736162930301821229203836248592061078842904935296842833635240624391154589656016688493376812919085016465563053320682610260660820542990303921785036817359611652023957662925131113538257218347999969185287842678302370228905879730894950327550002204032282674083150275374437403305249694945342684962010353657001430658104957493939161957397027332314984449348966091284174553095946363128673744091495998425834487221159498780864854148974406037460341090398082790666371386375827262825237557269195642562445935929500257172872464493800387072294756890658615496667831653966708080603102997796850712775950168573462322178307768359876473978840146034902681160289210300756842307695033659082322917537274941460006421933673470326426573966239825535001450232469815685929457927777652288979330573297395061364739615606604824105801271472115117428113107839887368151848703863071076757546689453624490540337002405173585113032236264584296314333267048029645858572424255334686896998348094488570729407968633615963050113695236654341726524509281845316507550159305796033862200292476680499942700404706695653434434534770065853270998992903394720735666142020079455964772389726073729682662118868579136018605750761803143827345765230721332713488078399198648128962205444085928944835766420011425276554917009155796000622110430514905681762719988608710340546691189309055585581438358515743362026568831527499376803402027464877714938841466657006382181773288511914455181789520668184268139183336141800348282856599737718881036512152383206234666310291097389668784603832129933862396488395252667358270809174688080578701310504250187264860057171398417765563198600804866751646339967036478241886217937088798219243436155494341242692296339402647908119443344594459312747964203568662670725404515005256963430731122388028541695500193984597520457919942457635101138574256988850016758757049497119771527580070421476140939785426299701283844890287654156950792393550751795120212425485278403032039885260997710500856825459179152172636732958550402244894187046898013808335851347687802597906434386835804422021041859031534164202088877528640597041054229766169317579624756335027175000966010098491828988240566970225864119699127567460310510469029253774716405827537472613587530298519086141023893100008305278564826038097285213435604671205548687629294672974926677780797474408441253670604138914520921361265873321607204298107942976200723643224969865035666481923409949539428546937716162924940671485470662790788895990557376528186397289353714175779994078018853506227055052063299980693652199653700796538376430885150648019237265779853082486241707917074552642099011377135067033007073434751372938825494583015588410314282426005122959514305435914912562766506557356301094455565763849516398580787504469302140520253164575601145893660043582424823941024161253639071777242630451401383250823183435100371772286171489249885424283796857095901520552534904428508657117145793236108480355033224387577846844656313535002832196509859390746497345794459737116775285459034460925880592599318998049464979275106625651869874811930677907350482297346144538692579621453524423299624525540361384029219974101822531447621455894306156953530788611295429915060409901471992875056709251484874154592385417891209686651719745490359841034253730630506686839009157778666756965547913888244436526061704970917874087062493953090298955647086238456464907531066147199394929731290502107040750768259900927004779313562597073303588685110419826786970548535006856458057160467991423078192204963567200299363342385082935091960118855508961251987082885313745649890350188851541886458053939150264862485355915540134036817808538748846330195556711002959539681805873358184830004991918181374456640228833876680799486090065776201465559010869022857411107109814127990649671180545118886590838196593789679898702190536449378590670607584296203460531381575528283501345775918286469723243785614220320328816353659296229228362165505568802088807323971372008562880130973717905952350685321322693449551142525452512927937578804005210446807175983612084135966905680288690020468157433286747596632297409216020196597887725617510483658761061391885872368653400943083633038413286815224368173828603747419287385142997928573446337013401415119260976553063044097935871270346862032157925798476841455216028460620861602408934177182392688947135025064047944659873722655261623193643622796346137123971259098135213758915086200976634228052728825454211895552296443044002386217323553527890007487661146352869596538824192021339672931909323146187987075456000697391770395588030665691135686470151772694458352547975495126541610548063140814410278176705279202912544231551775158156870217215555990658000861525864344760068410149167674729126631861751202059246634945535905616971090779059324941967517016365943682827373183579145291528480722034777068445342861579965299857233506104177768641233032794351967006613675783317165636810647725325068877315071324475741433827476743757230795326230233560597054784107338620329558233555518582437157405671395563081462289228768657793057834828069274547873219117170523093203483078803294169213622653637585010281108167453516882353512864476308902426663755051860331966093475075572797777565265619270342237863596683420863815117300976881318619817602960320525511060115729777822593937970738520174687968663772632493358894382756804078100119955493901431106938532626757314116705344957342333199892508347140779010376722304545089872446158869796456071054679389546193253308796546908920791015724062105419514689093488884762549921373355598803975029094439653409775127605558050979045929351781969133980664811936916614994882363547313984086230274630423398350481483614876276988255988780407343923037135873498984712051486504583509524287448522633006425677008308955629282071296296107347969668752514373025014825480440115253018113427058980127836564384701073472737355893576519454349902030128618966782272500759658054381978673283941034500372411814569072864522014539166639867237008049885229271875208562993932469002687887856453362177405813530690094960924547542102436033661216342592291601156711842494615164431491567958089206159936386730442924993606743368459889699628730050742513691741642091692150394535016659192036844653370067359193894115111656961689982934911023234870882809147828268732541568142623781865667198569131147309451817036610296904414316574209467601888959835185393470761270105361331758884718472158969955231573759796534150779573701329895690832068790130321786994980618246109684943186121102056068823794358633030430540409045247301698942627638140225693846999242736257300670115076644421956756956208163039133711926812774988081430977160447540930120144440428081981991676318048505460965050322968484030415009197206482157569403924780809706651294028422740791704551419104128966483879557829034200097612524468042536015851876072370750073808841939888046781042095572948578438830878617629293880253501886206711540545939387535516420729341173561880016271639608511901886250339575707095477578899315908823799557985743565963944122037522616030876358493271555602069131147585790315227925557043388021178633943119556163079621183372264663590223093770241891809246284889677215937534307879767540517124220064926565179145430472532127882677541847571522194863463668037032212951234870680694033997147565901260026039972581576010940909731617680923014784850198326319403547060141394936348806988270014596072919361032660239747997136658320700500486641047252211773647058466673745005463541903375035653097784383762099579890008638417271438426198918425415166698264073611045959936955627518009091400841144300988283523331580858434500807415904790773398388082695226951200575668319317053501748070396332496595855153771081245371437516052980788687562766629353421492487462891512781589984059494451325913741979069950645091098900790256333704138766961162882716507612667012497900588253868979255736876689876126264404087818962016867888653087262344201672394807007509938894962717852512828842257841154912705279984737660714958416140320172972561315283537842737574006969985381006822036402771770560593777085785901015772161361306127117917268365360861441031129362726306179647887984060979558669937292725724582251957134469473716869328635578807058566361155364656019561739971116587902743967466851776669135963353509377774124136930737537622416671302282409029608750261244770547612817447158642852302410754690787657947534528249245745354478400517609386674603378003803168616540741542416229432305749425788737104229994140220075279747429068821755462057246169981265756251094717748400385138025288071126817271834032222960648433492770510377538587016206891013905118875285683219127607074558767258461050544577265262465015417866800298159454558322879158497928863058265332998913166565849248566411730439250844136728565555628791301724665326002183182823359456543979914249650030557047679772056010616228375503153739396829857001594002703469817533154201495878842643619598963994148001166762950719223026086179732709916802732348288954277216501531214059484428160216061822202354828522372973254734371971240221958344073944911453499208280606899650243112511354941769678470342869768663358646818558671367301138373416747469936396058322339265761263501979350147706266765431099143783509168993599729461129676138844728640538626352099929258155298626643286436687865180921010326530699345773492032735197012571250029610300332847121320055404115912671953182069418729406490103636450292902494221413043347396262736907952621785005573045045236815525800733131367031196273262662276705394160372357517885042790673463508106768705982426966692398651098897844349872081701668483502098759632844316823523320541785434436133879887746013228144558529576033494363187832853738847490906962888334889108754162031759352458070622320545761293337654288336759000628616045319273633618394032610639690725518751134671788362358468940948558881457578109779482696648121879942283424183637681656368622337881139200811306064227059978510483277841613754574994585632527353194433866285175655232487893083947509383961272690041248202186892628849183765216260143599182031760919014874946480354493500510465617402629056741555600054196254270837365925703669543845088886544587982736848172719362578424698477254396287030763703099737771339745704642998304126922151407024141740459996926169885326343965769291872389834902087786770367878844978951537091888351066771324918419563492511809949575420387984534215223383990478918914201617688984509215186684788336087458041614930989574191356433799043799937158633227627110165065301990237967996107983252948431488229282763829276490357760930012094980528235613596350267722309386733369467900507778438488060108259013185391915880366279171604011987245757341886110017511240156986155802806064513616470294719322964066386159631887850089447909612467868147002252417593116153125106277326406022004366372696283019240845106813320710146567249579308634830929294868630149155672929557389034223146392134123408495147007658322120004505667967767588974225305978891675023344010806231823940871077112517423853830329070808926279734652465686581309788838103646519370760888554022763937673788460132911950087685460973189511344781340323971949937474026846374638643502546859481398507921769580368732491022362849601326582247592623840011080030482642878506276491282379403354944880175328748557423503963409119984922671165729373003527870236403035729379282067586467594653486942750829136258780553392825133760593646981115117108909852536831098880090348220430597201900574784899150547080098558228415368927694058948175313385251782709386667280142220352938317630831987905935546338644603693893315812151188657299291144055309426211966595543530651742933226834567107262304790311278449465586739829285224138086657249483155299441301437743003981473552469531675803067268169100081033428096254750633524282904991807020686279282949787074455708927124217118373618176248603972161277833635297034625267966884089209414145177291037846475285173268820961135929214369170758154647371314761655970458541617996951455888918493641803592956352395780797652009164651925394894891674099965492023746014165245066510921455194043552000904027987629441404190261744112850691730869610245836061690524635428585854398793922415486046509471839551132740278433772517217984981748770690607738270812133530918852144709592115882913100399451440330865925413976335507822801089756788882780900272476237242981621421148142234420636697956420309610530588934602322397154871616237354515846816742750462838323711934620481655970505799552758517591461277890226232841308475322089895675788982113123862936605022701825098146745136098731664453059780051803605187168590087829215617273515065212980676945480927588734984387795530492760383823673647595510222640623906306443529867829678101265668640167059174297893670200083366835257672019518228798416565355369411369861205183502125883411294656046745543381717441335934086503025887830626087708801422798471619001650408303402863401060488304418634638667883519777934018962661416370143906466612942919633301917234673724478083716639911958890633575264486877189069721033386600833794698722216721178586220360844476543632093747882219731958847562034033977661773540397818598183950516777582173631219049326614926204748085541549339978821570874172496723765623584221741358418586734663269577057221274786522182728244198036793547562919787641461462366334400212612972355156871332761427170939815073734583838998061041083872598863632957564852720090287441598503308243052473744791838660625116589012212236486379737600819587196554032555193347322356044050433320995787098098933751996327557852614505196301864337509952073048819998258247678701731358664657443541811059423464076339050593628417098117840302347548140438970431279322985033376493372324880732186378190993084292198503339349005271972945492249132553873407213744426032893376096329660024936465946964483906388317103476316242516382322752640556028386796742603902629040894484803382055759926511685779319807666542660657590889925951024875966138189923789219525683258897800283922663254649345462442201345044525840443072090884296705460193443639466007472983706119254729133630768369299556451312051579520540898714776055170558245703857428373383598188985324969481731745231283992798429316472915886870084609215718667025203689353718503119925027241486330057365347729494100008518599142607620281014573029551282395483798455615264269886104547391975233151987358645823658696618744622798901651954557161950917127582738654202917528632621910664409651998878614453611997675619210217991848255614273521969527173293125231839672526837591684566332584614405965110082015815832728330354340367275062486935075023619642538363756775504443136053499727154625694803274023832145831403692632206309590973469247862145823814385338928952312043147645973532574178619251854186808925087023526851097374895341286009755405129743445150766119885974861997209512478233106057093945972355866871710557298170827734125124736312986107033644894699327844760794271425789753948815572329006447342955241851686759693127618034186087471942145227819355930643952296290628403598008491438225451647025422002542372550324857690979227569177958308533151402952825512470091422018914665698393799267301455684223340780946406176965845934897207092680896803169562721125096723255793104595180030172917597966064248370826560988201129233292158388093619850125447407762321492315258778317578507366506651940243857854367111012428145879195457227406296555497588721205645688248148294348016455027454636201560085155504241678578662632410531889559432818987786116362346778277997414516516539579059178225987789461842440949251825319356403409683140035496458034577833778420607643246024330758418527912397414557388579588827401601329243121925757043175247189745828381200619606020168390500242050042450720440165768078553176499860948648164424098599796952433518950019159854253490121410330748591215286479023154870001848621797015817004473094266785888292563814177633613258937269559224892020424952154092092021182995546864170284832664546103529042798212666262733484934200904577059401760433952479810298508389840870097263702780016274938326683127392802751005209660139775306264431109779008442526350994626439758298368104343930761103679985274355063524639974142304879072273600690210210038020094908041933531710589941562339064022123437054098406084490955119097356292880523903059701655338312235890418758339849487117002374362505532954063914680241096452629789473192056418465680608389190169983275210763244472734480227411044427183343272801665580056912559649797931839726944950065738526992803170241825239407453072109811130791263121544633857682971106505064502145731158448833852231612527420457707607079788976601610526486495512281316252839053626609109679859504683419292862618517139789043268482476235572582384820180515575770554470479015833853934709296684540552011434427353491157263971794557964063356013805689678028910129582894925559324592060389398245400226935408100312246102255826881504602569778925019609705528823526991167669047696141537796983155335075031105785141504473657905694423699262777437200759174790226694036315307050874576694712721712832690379292990811087823762840178302463195266599711760556642018092953733899067186798674298245898512156788060415759943872524038170054187213783491611842508485401143101530149326118594210259471942939512165531328537310799648257211512511405852612014224880363941971434100043897365120819725361274895995266659544891122378844000278456154684699763054722358939236389245910468058844131287790958204665824777486544574958409837676809302285023007106038927043812303578619818397832168592642649677715935006606641970390577965901453137891724129265202506377189334095427022286457804162331609087103181540522131182707721070590777307454550186200930516338128517513303540757631890323582261451874999913576045700416060869572560408225576392799458433068757721540788319551485128327978913342449155475270993300223200142153898958881843776779584295053989178505527752830881865193425359214554782551941772904234781841071453237338603365974711390512587474076475739528342401755236100208220236165196637385380736428414460577896676975915005991743266561857252888963760604535838602522456021413858019679275352010076380497082474166639974014303657374536686642651652662946239259394290419005777034738823776860780384737439846424048314604150457755341828755417474603273984202117325185566131559308991018196411657002117500944107093828379404079225234721794498810388733628795443777035982854645292374018567947012113923291925302294657897551249429347487272737564202983170112363331106506275461708431033147291976129774638542924063339449514550817019214062506860949084781267142127962220314851785520015807016404470933243232545541201661138081165891459874861843688776501009425294128868029452181662516886321194777017628097498440793141077959421318075756464363735619504291968476985275507308076695721144989439122875362014263714050319344225390446922840835645076942498001373168323087438468333155798528820279943039101659438201550785756277570259565484784869049494967035334497383199454563294695445292759537436035206276173405511876896257252526316599263005788870788616142982477733371151248509463420560509524616407768820827861433350308183868345525920534292637688536079035947501458604264403234839725258272967491647874402937579701005671018059277935469594979453118566642583478880110961064954655112041675093442826047189376574540512525862817585022866709383815185316063339503115587605117126329591012108499258369955676925467937646121677951550949589560167203979959950394129111641863755179047871988112244105431933402946318038164820508187132950365110716480603467907604404600277717558789205543111336756643175149980340340504207885918866307340811700046200474509493968492246730242868559805243329806579230172501429539042135144302101261655292829148333387714789832842740089352212579195675508955247862713326730528902764690399744999204005763486648506461205689954003297826810853687234364146085728351713080047261480864204763502802476950387102359521788588591708430241640311070294660728066181891850943297223005033131465404759377151767942448206695986990421090689089205510666183974482619962299406185280718374860247770091678466370672074038134263943670386779730452583951947734407193483412359902134262885065280125564172851278913793440780468398967102215215774145920687001578346196904016578822176462699390231219843108752620243506016413496864400206588731940194287388372342074921411935823983507555506893236797178838414238895969387475696453289853589316251128279492158026031300133347817892472146299061754287708198619457112327033208267560871715520908011121895755375691198430452913282793763815028888111773471093084661916501727793142678760329641758758398984004333312213016242472131377069350390903223171220343123164684424378364010587195070260171409990535986477191908217888901187503985298809493327605323250050084939243006701271058259736687862265589958574572305222990423178428506414004566147754384993799154920187765536806787400440523097787105747671340464689058786920873269270450812485500956232610201435392716656645685226400487806297717011266214255159636022966789211612400017732900210104764236819631367210841352699987196101611245012346588654209479284245018410262441777828673537627027345450270596425507191701894461452750736412838096373778061074280794139524956356992778860175630333956784529352789262954314690939959618402118514526489053173415906737650268312476708475443758000607225555713540045015208325662035979639042266996933477737164313641279206733332826574627695045925188976035411930950181011352876076373616538447722831543510752628131482630204280465630938349103819445106338870819698958028701205507386105050076942286058965870338852641822177526333442217575255900324792413472334993193846460071322241025835412683863141089778633774619710581989983080889744464054026420206822720663012477413128842773423552746709934637636908072222371661062081758176224235232238265133216728115776459154772922773596307835104001993470816831762527337958523609061064977937772158067963052206303086957513833424398202096655338435868940138278882642062488992553142872346040464407519461565418373007811276024418629219613233758989103766817557260226387821545195571023672189692498686905315560075559840531695502652056984171316217774609159882905844672230487877011111370166430346150747188069691380979746958963674119147870209992473268105942212737798865777739764025845423274477466983488460264229097482000158499920817012453890012452139365265273379479799990447715360072495231408951886233855633582501603738449607768239073302078591514548402845433446321989554099998185547376028540007197776059257391460008811425763586398041276817086402181255348292460151986140995959060970317811509332190664484702055137673582713283046889910566097751019098946648461705850954012619943565755587013191745982668054460876808267609970394361264613580766029016291986245621204727837510651956501116443975476533421061512958068007409487743316577353397859182768247330462906027958016186639826954837064055251134087138145381630304915111553018037884548603694920238579223196186603842169259846308186412839256013331281371944551225857423729484952228257304398540641585659875334052995892230267354824349266706633875345060149073340596860078840125787836023465006420138705492053666966573888730179957762022121763076154179076967556716350082713477574997298178013496938324198479314437383286358149970735323274824856464028941357632232935332332519968650559990936812258953242774781356076343884696752006664267383513690913773064586475070380791652946995877736520862031812201004434491709878437156152318430148319156243659798225054188642140800264496670966615588852580245115977821584679562782389983503230712604408790145735721403205404885863266173187759850065147805310403501751345726312054601173439820689501707236965221841632718393711949447494303070659323504701804858788372663740124025931061102057447465113732168479579121946684977791194960410775753503994968065451358547112565565058593205136282702512432403539391482458761227970152637993225193100733512006211002099893123864695533468062336734636083638327121417003229244914311114831425271008562668960090961311131448081889952474887131184698756778031292022859890466040142936354737857270527882920432383324754262212323920371682638799107962571160441077860395469976728868643519379126901715723104036832817880610956743744145673785694626648152525889619106104946258192391072122161077429921411621400424884225892305676072380578169851088700782326748299439999473616543460855602160188230835709704910200136230849002238616122578448980140578822427581049888870291233859276774167489611613582860179681047656720083242668086523872993496525714258465498024849463424424705094556769733673105671630942417902069547584607289331525487273397639411533687179174447661951529236091253709600898737416775595904103431250443972972529101530354822313970221514590398399618075156154380938492351640224917094489707854289701099357431115644116104466204674572585539354114999746179775052656214211130125366692327682063777210526630861756111708297787887197967937638152530293075265765417365982421914951820395369835327475443661344241218088102316485721211258312510307703206682187884727694905841455763942806253135921540733494029935794275677120085604529282264938030487123465803869776965093954010947898026360671247903075299356788812194077083156333062864785808221710491137508426092270487971407183866560885602420472173378506231437164316281877181439105765705654527666439750884108032098059200182530252217026349585059702668186580321976189236116264764174002710047028474503604725139461494183138250167508358722815449645425711417153846886071593968997398867096097776710310056557360078301896357257082278125928129367129999591089631841735056764852790288016394306911123050463420111475636680975137919510188052394963318182070420344255595677962678828347741571516707667255558438443676629099832180218373778163442680762075085726931546253302456759040759459047374508396205054244127900192965401750392548366831037121177662092059895298490728466107982809547471635555891339619041661774612185833924234156959479116456103863972736274972490670634966597021158409641326538550941875726250353028682608151384594215997009742463377589598932967444375739123997902143110637789111957031667163616698308541863583307778249813072946239825626848668975350590464766583048887694418702728887885986046300272212727313872157490705687615994230561548908906508952980497030060085132165995897710536888992821411975010728468852400750173941285734100997529151560949428666955070888395431852258203629597341851364067003100492032342382942224850892502193827878073205768461922033879792629399696172805509123212656617159575535631555263170758934328273459724750889332720028279871126947873678133633831305964899287825745793388860476540731825687394219505015339478228855954627526562738086846418149449719487412728011786276953636007225933002546255243261574093548859965356837003584106426389141216546358724924108730240510009145970893463773798047782859066282099633573058695285324692964469002877949955004962078531691901096898927719122603380659646724580144485855876161723052772153684426062292245869482764718566348850297146730242991538112662986871223161601528608821222560282444257601417361219552595439410397534826858775400524535986734877484125289368668317605156546766384145021227242312310599863145894348979743790181167582783804716431222339872356543190926288010398992841851317289435569728587525896052660372830515708390423046409292896061999257838657110379972212525413165232686833073013779943931768105219894319357316472274439226098968747461459891283866934404751272561004813657434652893762366835339632956139752990425540487368234598960113291801096819226079729816434564651635595378098441770491555516889300643038205321635400056842877040992549308473233799178523206824920107250207680865716865198151648955191780048140772378171366746360738697917629932405433309981560967284080496851626096359478068978422756670735782975447320446265320559454318874082322352379145252492432221012455085310521728135700817762555763744002367951426611516912822630177818190034887033776720507419822956740893688034877675180302637269037040691226809241845988525080569980919798918665969336693920937802480944837831623638879173951350186903808683081495108158339531385937154644199168542091123412077007174140101059519427051794226730847699333983609174392930537594083249474419484352234561138264955532606263048608671880784843665520034270704645269358168675876363174019734648181007776868561076920627010837990839606975400912241339914663187442641746705410148722759582853296725127822161208200213867766763609140633515463261120391836979404193279030530954834261589925896628056075390440930208143620782095647382835429095816577863380913335978390663392017811994808380413127467166510002663569257054214914687692035850361019417287784575205009617111670286929110773342191947657563283457980749378001910982803706027146325671908676523202447115565727647730910755249879322716053936424944370581614423703338458543430779706207548879202096163638723438294954747807137750745896859645404698034540790571141790377220300944304260435040885676552096675287711858384461129919617819534150329098416426674548313122331192767027746479463925399760276682735524635192197950961865304443015436012086724916018540906977508908770640426122621912157624859252498034981040424911568741550037635843124844872150768366716539668040302546794300617392898993299036553500796871534437615513244753250002272962721318127607126419432703539584133453493440563350497980589193374025140708766094588641251423854548724205392425970591123431285512993744518772548490674343586826318646413464508272063880796196826177121988696608453003909548340406807358337925628538445770638778133152781939967994645168977939942190772640894748639111676298485520086932897903418014343411983556413360824747246289001215240786864743211202622177296626297625300172740172170375108369231760779813963949728831882668459071168425230302500350341218304554956170985458262383009958217924705213350515617613227182757059232582128628651505160955924189572455272597726041834033137631478014821016356699940152617137820978242425040212937293850231715804640842318511510013875381867022055523140841146242395879644097445119028453628487590389197849283484778088926701083801989267079563326441688199662730706416940177464799407628486513889944470527567886590216139365648532390122651648551327003633049521652932535407200314981195158639027147975337317770589761068212862585886650433177425792714357445232709158479872398298040386247412978617736643680162410577432954356669201249972234835014485294086037296403609837254582802800170830802041475786436152854295821789988445686103606855819484570793845322619102884830730509828658631649324740308072751324193969649682132573752574700466023160075399362549900616380692060882667214742553306681287922858010799641890757767987688442456543582167963621623524530893332869591945690962596179608721676089021034891369737323351426454738872026207069654567742903175622903188578547006396153591675985718403528531126043241365156236055498474201231318280429234928436972024101592568844951008138407416663398495100928720265262686954989717335745923772138408952654471707085561859897682620884176141658620860695865687700345085035512533316286305874092648227825292914640153068173272969130298357022400375983938291465452607960480230663535714281970983201784263532848482378962080917316635102559540763556928315876816676238942272322716739774269700314441143210919351030328512784735467004795800924347484629340072541536016307781531654468611566700022012739583622725820647449046228688634885076028449121888299369206872455973588733745930803652375184438783117730370224142264473820169687754508351582911818898965739079081165449122806363896424242849951012301149826789543760541717069432029292814674967752122352606891912611522766495768359847006233390201442095978954865966342824085256314505611324568659539651329077433777787638784493315785881465310257692649655577593294227104679228957178010562541373245111860941411275698523191111509205487480393164588862916640719599230035180846838135908550156989980920654727576587589404813347327581350118530273548157567284552961550637212382427040320307614401920502001816000685821887927565155519504713748528543577414532054184061531369557311926022452914471081962681868036492331992090797078192428776839734924585081127266971405105298892055942779356731499182799925151162836811706319739756579463780655601588027505255028440430987743805369310354856921006692160992410795270021167536128962227749701388097283590711870706352622828679148499633869583678316341509909446444601113255076873029267428519592962317216280238170763488238090979091099493174187749269328652603290440015489586599836632850200720163887827220409741702753699738722758667083459280148861016632859346667479945650319438152267345090985111346352199262480627738192024637958162996117501049538695663014758014608736516670745179865120012005125763073217266360364123321033924716363681013783827983013907494863444996924307637997482828091883196452186887312516631360591833126977910882234942268841585606495586250229424397847791302365617339412207172112123923506882673026398181181370412918533604292264065647598708616202308249323317398129638038569724480067042836007960942763346125060417189467379568225381528874344040379904655247971121597243032660411756246374481993549880181146909124708020473310476220620543818903437322707598466491012655277018575118288706228923653530676041672877150715697525034122077647905568112452530257821807520671830317986385610903144355167238321681473303694691753115608660244806105484466593108449333892381486311095926609585668993198182182286407499090373419254220246008044338802942909910630760289499358506312388660978715471937496214520845443706524780679336458498607973592312816353835051869174771029025045253513328821109927107127876429456268857694298080807426976568647828905593810105689455579543238970890593870998220923359445654948951256592633045001637433616380761751753412135480738986206492629247443912468578693022198783989369540793801590084271482879454340007506621375123860773891723287581564480535252912877555861276647552734975501345955339719268939572104181903272067275154369296575054292162993187335995281735573299486310705479127254120223366054660066343301719134140725850693751044008784660355270100712646998262216693437512413852628914565900878447232913696134126353432515631388772677051838400399965740327938898628930543840231099159896926074518208391655526564541723333998008080504808527936094083258617183462038397783745796235114070103337478923248850984416793526584436898740342406194733475592114375125813494540106298604865245767190056835741052676081312533488533787780335419113133238290750588304323128707040016181401918431547279110978772729477616704297124079274920499502267924616861907187194471088587596434119226404314201387293108269568177123812952036024421480481872187963798075983967801544301377078128462562153507167660997376200277804389745440681173317670972741464118644549299030561296752839164542211720948190543892560065447029288065689734156704526527173534383412015890098791151919403821432200928085456334076272105961850571038812642194949084610556670609342642809246223420222777088894255577076840358502764146072426775663740253278567267532524002316951477146205029870987484754709311825098203067673320457913107631747449027504694093085779651441567334142892522796216901446954210854958295384734070004192201920182437447056094352384454744588260729504928495980211943289493585844880921966819738540615328614431232891167585890513763238527056862539962941280254168212163363777512779535869115330293699652030053818939301521452422756362463472608068444751412610231374099732360400757513201275297142414385820058482036597828972874035435369255733048162849671244450425116549897439369771823025438666804944854820138358294586387669806733807130226273982643123050822635225195115271550416610232807208425180519321762492958677106149270786926903331482635055017959128379305020708433090314930322659871451681918435984676441004700221278861830887296332943247911913448043644304733980750396845449521419215847853216158884494877511721956422043677600470288900605975671224880519330142933501686033962189080825220452164328817925789686277851972444980458013760864260648576116893575563816928784147490608319995188804895855037362989604793268362753802100481985601169545754748000978362329328970775699661890592434572883293010193791771252575923136080851742968235512105115862597430541600574179313940872813810030929289491278128358458357719773799429471421048009850551952343201309244517473026342773205189806259365979170642337916392034079782663849317622687576773794317610565237952663972492285564776514454381070976018670477227119180117722467506306802543262380792366420400082190266977243447608214426565425257577961791016232139230581217655795116320847349571350373063763976590097241406353656613216305640263472624798998999394808093406649354059254770906578583090057531743709809687128545423346825636192646320277894759755446299160426639549268173585842812229442439087364825314034398942645019753299304867137882842371691833572482454982654786019517569749217370599919904322075404239155732391863649585954247448985039457934177627968322961330751266103575010968207298635445562869535229236180961520333729400880882054214996858836164456995979504746726987982886070403237990746414463949557196252142138567851534628811729278428079893505696912263827886947042536845489575484385082334700233740524031052942827852173700282369737366718601551359902488679818084287029810356941148504296671614425369012182440461048397809001886297835969064191624386902783217944793363754719951377787149026072228595606068930918643836509786972606955175201909424244311804464682615414316205089358394510541157339135654979460740796729225702926056094075278206727317786416251261296672650349914531169403956808581535640992311597976742686646852745879090449662953017152487119639987267183661836305609593346109017209991192617960885146185306930427901113557898910353683328757748510320207854077944971903707980156960759702449223766608686768770028287336949875366763795635544286675937871858536251385412035884494922835146696851860999428707219820006936742075444790509553165199170340137481767807300990253970551050586971830397706782622882480269455149327688681282215018786626031023664113949959682998285260185896306525718188256422146966179342384431447312537731283371298612107802416063783972957536616666116165188240945637469035622383839217428360822568189010581456648813204572249836681767647446701801177943440197939244611656912611868208519793256385552259185476517946163485729398801116667865103796985602068545159989206766803173599845029230777196156353936855666733392887186178779875231493057235495447877038999698947162132434708767881193800979600419746701764079918320818696349404658865309102777104281803485910685049404334760175205173955675284198802721114692341534076263725950037674239702456816417488927680173671431537929942132693013178279781845683249012068434846985828391498902242491812370352488849117001671574162565068702531187630240187580247221933096762861965754235500469076642508689297836222330076267164328726902972364583312991469555199752037622691284605190274814523438935173018846114708609308168319885517649542680788576443030311560405852248926982598936284205365871671390292661068071095269137775714150303872436744801281869127449415729864374097720065232440265178612454398082868881475965135344320931201608449684719793784982442536168793477445179380501631513903952871458354598981642517951576943189590458816050010188420389890917820491918706888806511199414326018382522212081739687156651694579439150621366890856524548058266627233875351038653500810572842435262988507793446393179048096337890025156537008671227989907591780043092365347354761043909912269220890255417615833231991643848965326422704120710819152916403819630351310133018218850253934569512967330476798294269324505128173841285951443102197263833742059119996433013698413789256924237859958254368833885274849311611327462822498561823493942582095574805245202687936538717098245047137706301660520397847757009024105888652951598392439740321634369272139273500908667570491641754631250835783334862599042869890345064072392854668873665595917570698858552711261047481228225031500016626211783091149324306661772197426213303591605384682596637718405856471936796218785175183906549688264231394533444620524194407767686985971849940981765859490598611851423438253924257083972859861678718085321455475339543915164279661920195144170175536248950883581121161646857176307986534257200162675833168403000282367137595629921224314153380999006713297755509683577737853684499700099629981352401320611389708226405465872180890852353955654344149588921423285879057074407744684715852346226374633658322527993339125123493068488884685040400244448002550970634588007568966396902466659361326792168785101724914946807773840417068447498530186260731638624877229914187153393511614565792838781735188168705790425806809004251841217543901569854872730494478044914875641543825496771919323915901400439151511660665744077167353861988960545587090909724398303999212986564059592374109331764163562985712358390532387597373907080701924059922382591345264187312544537561743665064018468785809268450889191643153237244120431735387479316588571587010036843380940125343917844007274896992155891321485144539053229718444600252430298556350873300571816119372846190656265512739134875804064545472992015643277116498217690948647060207451694883915075056442921956933268034230774381294504070275487080630234788089196162636405688521348051346570471982517634312886210245572404018609761182267662583162947071612968358624042388843108437025506648760388147518109804989125835742633247830400536160693500783450736776730362103092221305935697821174423169465703490270531733702558061184898611987966970134173311112386651546925677080571643484191799564313347009009229160117367180199177718509293663245204955676320351648787841550700323054729407672174548479588843789301209909585553602512089042570252464956767189748567530076957113282462039245430332494722247500073074887757908983260858930452025873596322279607091022613410223009530915273901662654560789625587270019444546651960046865790366299910469326843680687752074717356547085565475923325305135352399859963729771896214323711882493212009042761274267211149954541775612441423679588385730070806922520424790072963263019638065177061390149917340419560950498338652535032986363183410300522163422244515107263728990814618348610361271124981275079073037342667145943140349023000394201157172931999554887386085860829077652799785160943361961875793464080726960478431316762919436257087153987577830476170736927379355736113138929887253039234073551494153603399689144917855171469609793654080513017979044023476420385015822663321781892778758191961760533184763953783868103143502010234856303358413830185736473132458321120687370430523456528807276457287982909851984568738285728970921644271460978910723969807489361468390663234575737271162917231011532361459408080748409155485911350930655678307836719465373760982426327511920944216284529054916801088646818106538988452159383817241316646779352223307481906889776376988488854880465533599588636648517869536332175776403162110092191757530765303554182392585262865437792681084448819039034252091415897530334212933292610975323937229510415458039287475982605531259038166855333688896434369466577186634563933987058299330106637653820168863025420339056014273201728063279773533490951689984889743021096390509670918781348155864465083941956447572461265489623325918541924024578829565698992927254990744167815550188081446497065279975710338782964718956458654027245045052177126091025466398480064616471003735098917283499495239989519716222475228665668208090501392909265599077077384586722346282714620766977670562260899076177880117306890840197275517069165861736176095259195030652575690875575053273010383744419482966644281558132923763427045856181364842836433672158664372532515822627321102450561534284813210858610992706134948260581258274135804857375243195063157914940771196187839457081239706178590825838187716377854295915158137241989573005320459320834379484827463803325550149133769322856622343860302353004032834104219518328553923772033711696542171783367584207207065312798971830442547723499494016414637873543231946826723032973557021888859123114699018481631902541008173797381648370386476060255104911214296741077930653044635108374609619007657506366741602371141768268524822206160953952889193483774954289306247291747626588642581849862386973225170980363267279156947351766920726098096185044548542877954759084640420313240325393356957482690312650088719388452181639271422398489305076341644813914139095347715419913948037207023683002851784223288124994782313804234843060115428788208405492714410425631466048627122757977883383925922179546297938284418735619336580550548996902236963442270109926322661100681045539419996331144392245509883539748506757550720237464178659991025131718951257289511097069228652431417769110821622058196801325854553116218872881391785095680409169027893567684125494945404009740076577523461471576493041496770777484142223828327568970931567757703846896695566790742904455646451714174360783903239508231926325761052164206854766938537622138996281701389195343304955150787177178216456716944544311373551076872910032971712672746092637204061508170755354085816224793030729400450820404436028917817264104222982539669334045422462040153018586133536811361031444715088736274880143859369169802835789260197616239119182764353670175166949819950900959401662824103630387520136048264668599664553085683380018523539381794334290576259205189163268329555816215218341838631185317693270107468662972401236395440093798857693393629557036236647074495630640216911199397499257045578823684291800833792542207701704808542626015898846463636315380522354857906995950658225409132658085692683137034405100230970571364504682755965290243928839673880750968828346509568618208057887241389941294020596342213508841753215829599869900715205951568441272227930436054798927321559337504999607585672342719269881904852438033327205899848815317983681642404986675831854966680446869702250336046538620838395566268914154886487188608772057063069359096104932223661680891665390079515648861228556298245382270229337330211182700990884143412900714569972750134505929285416751218087778592904890874237360814544573183035405635246293387705060152314642382202671006609683384591143352212745765920173224024668060197277273011029200435253017690361785258620179521268331810766488114363397458778145995998614432405545275980620239809301776370337453956992030048614624027287740949512735600746092010577952826169646327876138962408585718736585913033147241128893146826944150823583091724737427431638969872546286418273865214799104960627972392579509478368662364535851886267393570386217274417653704072779188776052859349763970361446354453112006405687204222148821762805822843489956446309341126917081345568411838641457171911544893785285414710510100620889741194629230683189823312897432912508341624914650637500459174095752329355962125273288309448334875590494266067795124695871699221446245966331959213701798570010344865115624338253314153489026839161336983361531555521347537177182570103809115216046303513496219537720432111683157336329393522451362456224679466034438767172170903346400864277481035317841410549698932102282197071678832296680115982915211089287046683018238414876870049252651265265447820879377804268245708530268584978553913810760570753527156867672472266271161539159722557715266064028009923758604312127199044056710131931550152836889714375273943149299879721764639821502719892499871530707798751129745097501279997039253989018983164074060353842775818543282697315791148797404535711681306492011285782181284117497983516238693944630622996548192205995124931739413540367258017796397269110394935932422488284941340011021897112669863130616361247341081609568467940982147132396316469944072388063033556348060168731238065282224093149492754769724320889404982363578884939070806472642806081010789367762850990455262887485363865259096028881127660686639890259145672409665039694141652769250861954849691529863138615580462460452682811806165677210549862173009823294182129303605009609041177664713000907540969450714599809582766947689728337932756076884096698764079414043596767108773728893935615392360180419807997268710669978436044090361219134878280924371075217576779822923748957722542890334874280617084833969799884400522682778478373554453372562860143275003908036055327178903040366805521981745448931760705578446598792600809644169962306423202111774639551897565301020514322053659570213919890495397139767051905579139959488843088130599861461277222643004510402816915516601928701017785892981900372498411125374648778259313534048404831351705492297290382115227186128161108147044204540372998651977118266442935520860110088165046522006464734551058517913816499451537654655822988873807518729186821197111341462922206007894684018958827244488669818578636836047788223621966751114700243605466647057559153047525194311965663821413396355543709327749124937174423147644945738160518964855706953360107580764717647689371163634854447745239589763755696941373988278860866670383816244418959499255310782085537017678903411617692360987902247742244898558793954479500440569948243524604711616662731661480138237881791966491609223779509426127797824419510554766288130456444900992742811791922912544613630412604395428786267765183020938350060427612197663177173866150140127196294716303112267590096285123733606517458963720766930754633078065371487792815084069624359659611959336504869764947345916924761080149294107544193438447077493177761769042504007245948700653262786723971799698621511637375243460431467888528210460047908158956268723867844241235377670525325160322427167923576474383652267246249171721056298963379400692172255689670805656539339807402473014235251189709379435509116169927175103990447356181762416969753547936001148921395475255499573531585706503368658687449497158872811892215090719836951508934912174915860070738509492937022275649590758270208677701144720931104182735068547947525951300125973342360037813905129827054643295387716824600291632782396854313227903695139231784453625990033453673933165291882963392636392647060523124233120754432959989348656996271769096345609829225386770210806682321401425443261209940776909295657375481586706303366783359941780192979160200961921578377209548248894936828779051323208699267914199377796996053819398943334918999777182118000099619984216229205830240110751431686757378280234378173286181157207429193859422186819558308988176674618454917508779588386849273573256357195558173690802040695644176258361502643064716440534265310973220077930957668502298521362146694628595904865484296180773523649329758609121005067262935650213728678891676787240974792486748524894444365631551186321323298996513895270254879937805240191703265921731150240252989574422127263493063754821281364234142297949072904073138001713401844088953638568557561970867526805801759131022908770588214357760625296780929454300796698624273701652581867619552390075752331217819894333536026507461309526665967218715947053237377045190734593447938181456861733944977419691746451659349553898848073231196472372782590388305219310000845095257681650168892884355512245073259506257636003860550172520944537783095133076005760782424339120875209682511144532859012615112720537803082531352419125698904150216105829149996126909300999486232585848340133427030920659916752627029483398390747750105342091709570519503436396275940489373596981134402436224333303621516650777000143547842459643146207024846995035044091948216100874229074314886558185606318316832668856540620384211596550476601401743454163090497334272376097231434545759710501733986174211243934090205644657667625814657585124533727658152186438521064850350157776289396772773312576417025906484137351871731832890990852864266465130402209440397478399125792573303828062312786914954070763008610617392620061482717391844455921300972708310435855511777894532857298893182678827099961787758028706753787424127852503272605382659619545974370496918946402040106959765551355112641853663655039609243725088269236192042173530449887797263950585620224979565940100226918660193208514159576521707698779793900450766840348780465236973027941298343533754609847614646760106898496880797764703743071870728731436200933310089486141689820742356428143453525807747302275854392592088053811715542593732116202555865468599594996599908808226917600130206918060892720633061343603243713823464721673203500052143729519124948302034617809021658561667928630954147575968620136983121451639167008839140926361262329880090450119342016518107517530313785145617466009832339189424198526203307601765748905491277989782909108798506821475049238871113856239762436751926241848054476661451270785517741826925104584178686071881223403559202343575893280107857853015578253758618650544553832996864668922028643383829163643324591403499696431421801715724093692865455298135168746305867029248211089402756793519663137238410022381316991832751197398974342758356008351947883920309643165440381013905346147850915742693148846073195313863223993342918650578429098939912821491576132495465924683120440696771655207090440567510215726201598651473138900045254253192169267192788118152934836497237791607350129186869514203062955614831309772827679922639332179296387824510100392073708639108699576359247878602691221944115924186055491835781162035341092371060001558501394852413803374736389917739996434694762078472293854850320541594942969900448465370043320757571753800409366423402563078685032970878711619501397663610897864273875297292385183023891474997990654218483459601228433661658527724817071823330042697647551443210716959661805246645327421317967918949665639828840865270124600581684100136295471067633291160126841314665529946798344825417861958900448441845197429859392177928951026801973392360207044001882379575566107757239266629804119569467852377863102278122061641157930254357355531620517064287367155182600838089842528348592511913930923099411628801637064636808480267142888351179357319887564105303233460352736626594238563108067587243405052330903682631197164062852056996296259763258088390016037722886408535264237662077171078556192284954036602636660241417536386229360214969074634026332238295595527495352833042828583348563724888563365956991160069125450941902097193561140448528691228194153235803735329088211026851701706441883024870819702073317717470267520446910376543818946694258006031354464585000648635595826326485887460949838852553279947267900757256714285418725341409150269960313763213889504996107114828570268098380224586891797908966403317961853443739299331102365229919517679104240807366845140536591165670857981050754006603149247560046098766395972752381514167310874150183281632659937240698202002556081233190468078226056746565288570216225385529210813105536259050708262861630812706126699960992353147879148220398071854790418840665434910530001587602499945148216363863767893486662773970075160120283487306260249059544156630041241271251050935694261888689779615961130510787267559684078885414970275742685708111576743997226719316682835656953228500096006649792726161326617878783248246067404993419389773034678344817212495695330091601126110050662582055978931778367091394974492330899166337759841545395752935058338728631138669045485338721737121534371731145955188652790818825432903440042933612295471456525377103634198497857240232401429195743829347671623012179882822989725818428742157173109354541470814623448802996693251211000118901367002926823561729443427401265849480115856786234965936125088698232829864018312461258045326420094221502918218257153730644600256328047697705537598603409550832616763290361667384440471799615721859004192241588926171587246400171204432251910346397125477119517421693071009664462223599525323716596995184427151876391678130310195152076313756299522372341160983229246985852289204215107885851474364685135090070425000837402466485395147597571338784818882057468350546283871614421701456404079646557090129932642879139157357289677159318562346702496241768719534849596508019430080648936946309611976563459494170454301014691728635262040136312945808641890309038117205180044735335782803065213413664536075402124958377139072042270916571568545320267830400483072289578533740069841745565759391835703646388801383073474200801100488435918565465833229532096814949869238213891809146246280620230812563442720843682465467128428631398470700793385863895891266428776801352298948237376497028365294298027488668712953982807708774153124910464934079640095840299156695512945798847046607382251364986550073233290887385455879024088166411079718299316408851601836471109837867230709626401872019751526850714911837340472699803210494209206378224420976133023028846440881036753346895947413567680658291600872594876768511683129430191050938131451659624849634733425977200963624326237656473543815117797430745222031624260538611762567283456413992263889698245210119950961959771425969000626430451858678467345509216094903109613019701962747848329186313454765560000385460750549610202875914801004525775133561857067672165278198954130984271205169834824417339925341555348188656098349859851344227395296674657479298807981615787524360364865101783900043584657137735479514418872661650846202776012338404751794553736486762471348290311170340982560717926498370562937798265794566791696498492703263708026428062161236489106883241138401951609378860412037329667118000384317171849969821656325190034592024763077849226747074219313295392517085641675947794117436531810890461557316354376855997657410669426187856101015249899635454281572705675457556758239592789077067749825773692847293418544436232746251127992964456729328282497490937504322998579767305248632361333078813309476640971189377539003140161669361377146189449707803424767717290935351531163372033470644166401058901268926177795426631635888662525943653420703962167812642634253299785826239083591973298514583402317147954293181011227976901909141164491698242894878683076624359208895167607608483342779171580099545224378456035525486134012733033157441875214917976341632937214433840611389217322327679544038534910218088903596625911228483894627628429338336163218869493054458385348381789972148552648294156297132257508542345145691714253266758167692887374493924187908291835005074306133080986235594455721995655519714941462242023745979142916677991639460509598248120719373590497463900225552761954588329159140991220201377517360212151188618534118682744213839421623483840888975068870016597472612934760858448347688967947048801412210046646063813749788090504613655360737517903596075405559098725028227667429054835368805425059306726333982151718349340691697265444492791778358178084194851753649942734733420798425124325917832939302323617395881939910309026203810505192353344746492717198482722252613025164753504469309943193699850004228821396960966891521596552112483600805956059899090470306794535033686116385773163923413593066277147770421538917320744085830326260501876431810610743975715499877690262353330734032012391667997554337756906084836487770384681542931231381260257915368128184873283423665898189840474611323165302928922095279811556095871908328999362807349354233394404492743281391069198968369300227003098458831315553339999028984178623348113252408196010223052352130004489075129382938902672350326195934354848514857937238854500966038319030962357482043300210049088004215958863291721557019424711582694265091946929816660886088095415332820872532941734022061036539591251342031461092319778702806013876580428270157498869589119064926028934191673848918608365237104868674201898668745178531197065668734431609422320324634789917423891307345292406200689459051264421649896838855727183174938290351417350247842574512703453494123679272640274325019234590989672782048651039502741321335566981597316742708587177283912732640669090046445347207898845735125818623131606423905262892913509884316483682969542302187490407879550872478285847108516336111371207823435430365092036396556927938304596450365274835518204373155855042153827020016410201234895942589626030174974605719506266160061818035142360559962530019528064951853609957624666818139630333321664993661588998867181892928699883039805078568490848398145884662502370284605016995512979170799739721884670062630048284664366999538900568242406481510132032499344804283393227554806753573646930302698862546671301756538157642693358453665510674153752880150482299609625483590493201376908689623193809724102916258810046619479121072286518247646324088207749315545286695661359022712716909324068197913359891739895281696885437206051200882745465379584391947552835647259854374452577832389376160213775283398817128046319772554414495257264894667938667524478998445437952434600830624363150102023498073958317413345945202488240001643079716091461985316663162683045887427360190268812312307933558260110934277879724364498985481333740903108310423806240662835797263101461451261634856316794569798674490771600271320905564373366716123936732644504700025597582911635456237243000811500343295073036751794855935030033268968481285396521618676996022677485846771961012687426196223231355679869469583987002846536207469256239158737221491839393293060529268694604457780720889425353552461887642870449081710161026053225608834878235894205906910393799668851745731329889793937119576983511728525706296161701873980710406272586860385243754231973433354563126900127843716606136143772692153659448388863630374994321673447600057496291387523677639078211966511969233558757048186476247793439044785062009754946085835547191822519169498958851163810237737155903393395968774780332630097711060719583060706015890197223847073493014602142921143772380742655269715718239193642906722953243083266151602612056532511772467137287734740681204529014360326064810401427386098429335647873708130982144888046152452802499792526085287433892642213129564545966825360392231522558104209350043336270010713993630066416258436017239510650504492111792249000331399831324992217630127452973660121575965608469046747713825133341930808032026911695128255329766812759449292299127454607054314045414352629261184259744711746041059542921536770632572824799425452668924510356060802822877202539976404130981003432140371651349959806478909410978704848406336653678142393836782842411834280934393537301830300622632466702698103926329854658733998247549439668779091413904603263064659762705731918971004123849548145616757069568496086746068605670233707965271478264556027775672890031470899069261792947742376851188950593555294778896803960961864108540209488971366563741924792341330512606359698780694096557402945640034263823729202559391233375846771194819129399351450037839857847954898394203889426131530602162894787434206823452652724161723240591029707856860319645926143748831141761590744791320742422206158962001003359896780174600979521089474532722342532489930971358171426922260979915610274911473976878110875933184981514325061279435792173843369092411960630824209781699367507665663149270723342746125005144177094186449233455351566668374221162628883163144659255605521817889826102926333075597370838443623920230517695854543654243850430432881640145603951283368297828816763591797955276775129007457001113896236295699059504934103882848188423543446067233813821987725422732413893663325994747705963456030012081082334591335395974986405982991064770406611687348037105882794363885486336523337036062986859061200764148787644174495218640892505158575457764958134735721986263237485042152816736417947771405869068295090959511024770633424222738544658440263349058963367580178651291886739374577263928371380011430180428277001580187839288260357287157985115068218551700826488774754183034973598022526864573964119652907122376645811859172510751693920764625575931367887905656259269600178068814525872738651116363208780088844985292392208610463525699177164753155259379710491305324763286158642957431734756509074358580756456813775787740442942643924203668085669571629182180459194833954086757024778379558623823449742526129563936011809684647851757195098473976902622961370912722408415362968107429598065234033845597615012255652476746331133515232956641291911469049638680868401649969982462929503409045257982218973945939180707982319006303639581257828894321456478478945500810777391185889813017024813996064117555738774231040577611133257359998905498809634120954211814559072731199097539356234497103199061726439108520107993012761504046523103683308840278377274602128979825578166963224083385443765743880858440913851611921676354662692970167551873431619756307903712952562253252687183034312120780468225972966451487800315105724256652023318527225974937508857143283787758340828011421003016319013743088863614556330735297190499348626342492895328759811455809390742138744819215537427899334837356029931904776371467196114970232024022172954338029289745383594242613036021217183639350581592749201569313771746789342673442484694453410115546885701454472161329188586262002262450270053666673385209292738737126958259371171025594068904233587113243439611947990718858869942108653193514089317456748283556127033844202920388447171947878092053497133686627864647884872139243621471139070407334221573656616713634424963273346219149805812078709415710750606523070126461223151166428420949425265952400481008043156364073166869410180628098224311263823825066346715028877634926535793215295544834540083374124127658737012280139666889382897202380365631704540345378235120979091944575132162292551909396543996343807959003359528443185386575382631594116582752015385695749081030632320668727345049219809785026873832326341431679710491886743395156508020377621945583527043410518278874004705108728562070053942329138223572487071545709785182305715244219494989864293507913141255656044261751984881719312401208811950614751156134064977889871974394314351135919814241854453549092683618410623506281258586265144372311114970304708867571043918397147445988664565485766245120534600924320476659498298771038886380251414893080745135580477552336749331704117307230898385254790548120945052076000262983864138354414921021150512806074881950374069507522690381458918867018285362024174989733950241120110165887744845113364491694090483449652858906061113921315926209812622777646185473202396781607291664195592189799511358192858041795612510951624392390188579519606946671961610690911545934905553544675515977809917572804017615326091245915921363694779394601449453932146537646735625665430643896514228972742020273496479936180973757087773327468060360536418405155911317139242221384583837618095579674199089522902133925483858960208702807205808753961183910205178189444166000562406284515109836498257217748170594162406856716254463965281646924716465328293590992971934228447542349646902846677276777640372188270349179086865065140558013136590309828593325146684446415283134420490347718578634792810711539242039489924381653689779727874500831081704709326557125756591785620756814020273973662031944752274584542318280843418492666411741248212526980901176574142636818706167793677640540997379011409424952613624111512070630733661952860185802488310906028692463475841318369312439829934442516628603929266558975191533808944645256552121904578674987657887580192865098963629578971218295931218983086472079734278489561668649510559362512488013232222465176512901867665316527394907431988100484662468311887788219419793024417987846061449667592857429847584535642439451014440986449996415849873293361269093165888542832536155096359579766670583574633795222347309426662758358646580191563120382001211754733067438389658555035498582683803130416129356380385314521904516915829965307487129584683095709337131678470212360017166651140860097200987527560780892883521441668228636469373239185035785402460471063090520938139973995416571819234985658752392941411946137194200524067437077310034711930278424483044088755546940335894300054234159476485797673465781459659519278862708939388328464767205451257340586036651929742921727927532161037543788198192909649093564794094907784955792368174035315296672864310798394366784931511076935658720701495099915795509212758267536387394232812301777157111880052703636101072436342947766240714852661502012932064131804060856986041094908482923522802076583524836877567516190200389839751255536305349384941735165491540252441763861174686716104965740214449020791235140483144489987519838539290418665203370439109495795319602627586839993153834763882268496259429337263012224359795042892408882435824160261366964184032999667675554148720184677320518161605483672916396453181950744256126816686304559073130814609965493167183774768362502258734102371654816376066281644315838128207990331227367997493271876595017298910146360263666994354183895447971765678572597881648294681338684519063858667369372376923286384325217161574727405970257604765309265840804318725248580461737699965742603815809057431385916082160923020081230447573031752350734612488853648495814849553328430974245359821394262981603083189513757258703213329370246214854502100695956641873740503412565074313940576737411115723042227154154146740970282457152690182077425061896989002381649975589536528330127038280833026862657897576550163605439727662540185082994238483530224377361267624430956712244085274801549761181334804418356933009663995695037563928639653852831062987665114498926752272276198488997327621991066156774038177821992564590271231674888360690064125042572597657905529059039877074113079300282722524467271310744873870025896938110864753048895390293578374740604755295882767560690440215673452355744826535384704795700624480787845936016106590051544374470047163455519770069446029558424064670585852285354658704985147584655964954751865455531648390585228315963574056522850483491426268019964741609770907032379459562430034555896906844551530413986019275099582753657247830313365175032965670167724464503085880375167998061539175146186915929072700816290368130040117369540862093944071734834122996073131121543699156866064300085498909958562794339939130196371124273093049020606256368897426473111956268625097343021409934881195940651491195664347382071637744296408545862842117825198034471221281786097715633430846047395779019469465881234388627073701110783354354828381263367097060461651387889655818414370657460011541228478851590922510304103460598812712933986666908834095534302324276209312180373689077994088392051686172096407889176928604430629279289021004837120924011851201688651939526037144679739868748436513950005881344615327218084157236434224612598343444435940190661802271389788641987547440329280964658643098774151725956676725242942977114794900748950837282759038979793766362019811918145151310898988523494632277189551715590648504903051716121332733365708807401994230302253307882358819801664911928845567588440884532872832017017480964733989009770963747457845968257871190956638245013834783263309027365151274309880893173406559953751464368142137530474006035791344557593661631477463080245645718576398883647794748442932615539171974021904106340332625741391125481340613203614057575430641779455357028409664733140721734169344428091379054840823038462614808021873234209644778608739990994022443220645407345933818433766540105440568939494140414913750671992388126824423172993430654088819380948029624825033954482068635956621437589505060720299532544275834390936262967132046732660387889614348497144397818535436583825107253805799126524577317901807570828902593621544182737433062046252298492677994154915980012352843284042783519847898202564881123240606642809701107284924429118676339823005161599043313827044641797463324221935721757237936557783193126274734632022974783862198289142807026798980009981681790462896058171080578791212308752002820069647874066033689497698130579930345249054547597144553753692830300617157495278930960147808352074423758219457300657970324092243348977594805737249859415832971633371951085871105401888331798033545486267641501807656577648127289729603021434410790550602568889541278848361956782829713852247819942791179937376577303214112837467908923725205313739126307625030133343876664515112563935877048797411112185032466226857119413972804224893525559060565513563095489462955566473726380953814965519255986984424530758268029470211195786303258754124221892792318999483199560580938100814865552961369869538229436866339172797100369896063294881189496394785183813164812404251278943985444182049146598877474236014527202543890343418864931945163500188150228243058356701688183265851702391146659168609436264967715874138263767690034802007319366264657124594208375094344148379327714949896944140985007869732266420371253836701062761044787068535051122012937875758909005099025964438978759343657506902732205817623181947024812699535074586352229688467406637348639569642681400112594648088168735021609004574881740780227192732296712269839981132288282282631195548021212664076482617467394356002684928609544144378779508100045062724648396940409746076939201047388658095204174932301494802440913527237283662861305979537983692337891280164770556956174459009644067609685712289237427281350233768446883022443703352740397116249751384339576747155494281342631773535675080108115078815666721563686825263250369983436629433683609493088470717077133422306626322150705461845361275763475198882727193199552928617986702354075114940967850927781307793795039685016800754821027957020105792253501918174262497528238044499321942076176499096066848724409599459064770930495276147625679560708862023182206198989316522501462800761567067077389938308485063574006339700269813132003959755395623576354334573270710213782990826657010750237597299090133250074996839190184905355113126371444096877454726772511152322394266621601552292292379526932707683742272057159887606012070655521500311198686096278217190701866158794665484279648584704125174897510250524529104119780377617870890623746743725503689694947059842290143519667492486413984093852844996819058808187575556160617329860536923525114018022542929161352944611837906898115598915626358920660097023847267805682758063505040165653139692299118248523483728734246708474456175627204032167676826073480394170285642349120127847811911107744771048981560306441590529912681126461030224521116448744097218532722136073043449707936281421193404096303736204135423528053429770341553437375154039223627123198530347802166142625366325407519021371898380902698696671656960474241804489771561875644996992857522676217154706213933533159520074802486546255550467685372073320647589325884443422375758099155727616447146479713257149259895533707170188213446698973098563522966872963879611722790846564160003064238514613887767419564717029456706337874407024032722723666767825636771294769261619995281059310239825233817235820261013075172925566933797325951056381947763009000703286657911160400474463932511043368402674903321980362402647793699816240991465553648415528851167256514217393077049928133908629765170887252213927039749534873432036610504988391078403660489734939245287314318690164671787394049893258547032709150232712853298003578844052959176614385133312246281837059871915513992606031770813034260920810958380819411237749119247663566369716653807203334235671212300108651711118185313117122900098670455658619891489470177447713080165660884959424303397541796423145487902211280599614931638336047930599097379079451600638595114448707951943448426070255634637739495554758430462362232800591798494422087323760080482215730755046538247896542290174946846004349910434250025721928914752758961310062151760150548464026638240604417531237854052807829831355185990534256202295386641327268706770234685630621072040051682676028808090320035600768321792063240927469442881703453070407126393516879824099916665519907526000286436433133036492203462825333788220227082534917030893697487310792255268228881212444071841976455266557660359385931568918003249444472027707605969455257845335332993639666070475902169962695756111873155853182206345899036084671732605735307952141157159614121340180724078978457760803807933030239868559155994807688655346962605382430761406510658623150830884757968432467734606407598367409373448031242382271705137234428299864100395497468771306174711512561500452409833640799699374094713658543760892806771503322886219964413383628729544139000889075141113702769461724027921381862892387366306349918520845290634803950730067131049483738892256522183969421256148414089299184573136105700126530704441336471455526801584738817214409757753637097886148423882742130799266095259450010384902703768686330567232941966702051460608044156651227245237734974353680868650309055070461650013427617050235326312342505462897916439472649434664314220692855981570242576488537910900965627439828092967271495397086599849962458892937911500559309278727798081508575910808192227047158229978008740449929513049477721587942283640482985129359557561681816284551143261051319435741988883094122263244115173899943416938274336826043394332013712458177883888668615991482202468816512627598957803455028282770006613930099313121774661183096432777177427482983695222797568006022360358124527271423907560480168151788980640580316298798890093189465007335951482642188099307198517641213003011260227280155004162863202642668722959748159420664284713396209134766644999426850773872289909260376654100826462619390690518468474458436963519744852134455317331464303847711504269636953903057166417802633742528736762111665988078241989317031584149358502329043638203709947413992375907575568310361669371429242457552974565613805728894965128085594947133128994285066363797919631994588326521494035954521603429831359873839302502653546640544432190909297492580177569306884288473464431992137250569633043335005418010665835094150378389912867909644402218007586168845557530101213581756961885632290435982750456728123254933754381064246895025190292184126328906177990755995879703190800888762588043124087264150972525705948425732721182899798654558885183729679535408534522082345914041420587634890614460149023232360742684336956479892346309753724485188900351236803027738203451067526942875199307707609603461965337282811975244915944143196152776262170063944209933921273965570342961493606260931794374991269712192109319782818038209028266016643871749317303386661709186895380991597824041681013181056725255001445921987590716026775063160809329090858917628651179486843222592155680424574713702066573729316640103407837421013318034135917810966138117701477782420398878242058298180542813350448930427503928521713346247642867526038032251172427695783157827226324645568844048031299556692898356277610883481305323631761454290900137325068435659139249480933561395370581168367675460520742841083854854116366326316106415927198273254084570566796592308156086601009691079953444203006708973456818498948181336688745158090334499797311718293867021166207296720862919335905317928104595886234720696416494315362985391956375074675287205579701128285183425760774395793454268962579028852877293402469567690138207075737580332488231433959833610744521871548372675846523746373171915318947353879925813685619253151184953427795549136585962846937698946976629453712712347950105112998850428155122227691893362611643025495924765818471232156709659834117041817854999948294762701551546877396774300343385181731388246860200360788629213276943702963910267695731119695461712414814342461737666442452320724395657871184677933567585148472680521096813813719733785090637890735500717038586746480400451815886993655699050398947909840740631543486477783513492291271216738539735164984446410007986511525191441639726273213853337311797293800354912810517851923803729144272326229656145778272538462005336783749285702173295964351382054816644581001718830711546279653602922064431178224397331077725119335716234681660168167657008095488261615713674930396136834378605788342422060281363480500518079915558611503389073957812887332765708155513280347257472603346601244763233304617035627624666708636237407089067396752138498876372213241579776316544987326287494553551798284973862383816023921026286848304667361557737955594973015026734801257490255682023409283402776960592465856146948550075538891344718950522290048064099369759495558840777145405397212939461849168735347782411709418224822405164605175627832283297328607536643459157751691569281484648488566595800457060260866770316739714673998544112286235636874652647185332452928663772758730836534909877395173212015760620733379434909113788367484285964067417700136420596964210751983378121645460333474729589080215692049347751328352632075464766592790189199287951845262695501718487549445172964377833849743769345285119274145112618266093370277734501484372848971614144686210831190906793001720572321784372928147790406852977885585621007100472336115983099537549342153875946429530702486546191735843491617375587792346361937337261914022986062387347457654864742917811420054358552597132653264393323055412360877397246240375712647773502417484192457300407315664265889014733325459619647346077105709336028322996522313372848445081403075320443833718524124362714087921830669512391744364641537270541155544030027888960478597313662065989744995321485033446054818568443704112257125846446699780376611901667085906891955475098363595830245261817872647774515049874399399783303241598903732002351173488843258238242561780688907807702437155796097140661671261168698700212567263019540300911037264414226967718275640702754148978129211291465037753705530000403094778850664363346257128546359406840120197711138711239673726259195943161376920200599228235379528482476412838014845036607720570013022143403139763291272916421644839608794396419878086313889620786799709071312807908311988613175395350745195358609496311599155047210412612946764689524364111848544932545424742667948219062456033658409606636994454249237312878385759085389080437880813654759654195686607427119413183443915578086779546107361485408338111110121304581736040011705653041622046962161624455698377882433125822397042330584047633809852006160630873724800406372207956794176939420266599779773761338836633979019699708669324485515682969635482766106121311347596633859645569748126138525393328258016294913845722558206669130410214269009528963000264941444793110076136592586201295410431124990813328305653076076915543620994580305982683660431395821705571338600415922374781838354164225391707293711536821673886516823654092253671829839988756105010203885576955584267346786697679214887915679654747509416798385000670260953776160832062018446400040798505159157517307454691232331876766738672575445172316447035450530011611310845678093122433011483142407856753076590621031362839646138254760412764047598319377821011538734713207528251250096313863040337631295131695798534667835511954414278755259826694687705006132715315611665935790297411157051811773086185442122462371876079718215260581660897619965454792734406615931806782105182318490813629340873397393928318138166610308788594055010617780537746115904069740845182673567714256800121579441909912132217840672825017004377634793172566848710002209258336523818675726486127508433129130002467215265949389155978689875397752262310487260952834831960474776570002282667354879955745815268140066239511650536874725303580947728391257802936378147659431689434278472839453857433098714130190720494458569369316724395000064578836978990562011626058909354587518892476320874318859424154809363270444515102276621976874868700779614420265839186876765667851931169908956399390425149123023663342532138414301504662726163137434888256142294319997672114844927236267977054333234556938604238437234168807408764731355721283594133407556652255885025586897122652430576933229079886388574237116855393094886676175818438265694237927262957378831977236783855107912558747425957825395323019318615625634796737180533938528658877340015690630537244516106902005270429332481290013237450007045025792719735957507014625237572654707131609857893720631942228532803813432408798819191228173553482205226154357793587551826059034576884388709312697496122643141170347894372375489910070582118739418840249844535110106718659553327925408431766109192452169826129615991921070616155559513298769629318460371338161999157769439569962416442218705922839117143739323252905132004021957869339398459653007642195394602051566250371884250369097057660909155282944688904018740133667471202090316797695836610891895946057939304938256692500825627816600475411676045487353086423598535438637008487878582472976510066023460455100155260359515754111891089597415577784531687514110004796297061468226803992957584492227532619437679609580054409661711559757573512807238164911020900039034557316591306839979234469955510514997037922958733164715288900600213577079156310777867336762532499667116993047297775255958720277668874983825036167849125640792390045380757686685791289175547437657269161976061350839195794823965655026657741615045507941781973941059823341160599080379002058169877936955934359022276621487185264986895774160783567703118420056827966452015583911500643044666506090342347706153678582324708431056583507924012972609946396198108306539538342156294041429073901013133266698108660820522753009008419935820203453220241436942953512104891239376087283828535947685447588292494347696160908758653466480799220802584734746880774674677272011349038410698097726432914017131583134498275155687237986947270758779528468180626786660263079773641651325009843937749081699466232171063534868869199830367329962820056559120509473235460654903034959097173774079592956987891454461903655662357997682215005650316832528085498919245803809240879263115283633202536285512800440440361609503329709710765982492343042295144439900647151381821772412790210629945976444084885208175182351321467872305919931765890249960515076373165362368462579966567441172848458667696436748144091927241109958136981125907912648453672377986751867296016870996222448314484882988784739606905202776445024219091337638125422342257451382056987533683672809250874519339907355761758617010453832896223771905097776623001581773866382558699069888014527269704879468034525746075683633505207383995560637242728861219133649188914208003372892810078541347675325333062309059793149268966840493871839703569734513783342002715502386533130717671413189912856280662624232876433812052376569926567047975474903182666518303920483873181651239468496546741470663194034233130383216900144490834919291993049364561545063299116342001996109427036594937587628880369133363793182114699338373954342872274553935833750715389150834857176512466769363758065376415805057423624516414812428620731762799113820411840407917239627825140633331522867085530963944211723012658552096572772926584805500644843469059690577493903603293579547348688615811257624618530745778234756672361081552839192838879849487612243243966051365989809921206536987517540779819165993937065318074754917506341844686558574617880278929367291890295623425141010347617948886976646558243972384528101632762830279027765544146185789265269164907714234363517475409518149228308277154196690848205924757715427220425489280206900392180946530342824024463164617962881682606247846590684258184004485661280456870253048010640191707649238800936878549464942401766732703854543846175343587957843057717807626546213529422849785292209199237553446950958168993794785855446482474826342216235039079152225914322372774784138780780913095322227768761000360516281939979443938962794204758161301754294518898560877680838679855507664834188928160584692212451742699409191165980239277870602347702464886774706722888793830061073804259813418493510148347427822371731300397077598113484368097617180297432417652092275962970875941686209219602093598733567695754414863776570111676163292083682012361739296294756488042503074331145330760304562337946056774504302186786730030045806460638877318158740365000397861731097857487530789950778680597054802509971110610271101529774309829514733854478996933099374916288061029954374531639809513124127276292577529338688998428849613508119623499005755042596153546860614413908553671441060774704636329698689778564605429989372135833762433837681644676191393576403270994252768830693396310332695921719894335535835456646598121869205606926418080901100068137076544388499913492831119043323918251109334895887267878062934324281327900386503877145842243321036271711040230579878154353885197503050349017309252865639697254161413765328899577441310751108488651548120461799447447271068760152811559452356646968416126691931349525532245520772048177739020980668349673705895499229436383222314365056739423833148862721221732837005842248938253116712314537442533558745801919941781616860051033051939607686191180917491969891341365348885876805736983773167693229458014805284588539653597559433331432574139889574496873619151078797688135459098792382336675112012369245926030317481193433641275369617002857320235889822442118499906053627338519323771640719073994610724466852579504756690492947090924841401762490398238447246740294259857704972309242766596448211785587689922573668377188142891307463735787875363198416650245117619030741450139944807414727010914581994686888715496820540079299289749135270442619884142699080559774183591584081251085815887651390286423346998534199502438548958697539239779683084233722109588217468227832557502111921648275068126208509189245087130452771026656752498245062843383728838945119656667584423238878632276976476454028891753419353981116892658629871373823823408800171265401825190960065825927331013704444780564670032152672125699120463972876430784425807625969957942601436517361084002307166212471881338772667804079192953465658405884022000927796447203606548089130911267189185553938190528873660482747609110611026124444090056145489799791170312269869638905537566894451811349829538026953827716923229006036416657739977908942851463668396843333796291049559729843626725026136299297856116163672492159920565827464645621961686948324152316927510044918789584206306684332496002426207146557541481376644442126585088310828207262749691981840579595402559979577644193320404487033999140670265474769193287352063548221323461957447065381382149346583822143487025317117559332024736530098673850792874066985092579131560190337230492961499696030983869892009874359760257873345058005093955638236346381868879428745043478890718590792221129037490348009946299726604733078106746241674490074788955641248861287674435787452152120210080068835131260000779305280165929832026925321981595892050636307120803509285998035459335263864485219405553130816590869333106716815112789583499399751284128343168855936816204941819024367563393208068814563419862954237143076264375550535157087703868857678064963408499981688616557750413173543901007462885752279782026505402601535833570407947924406128720766330032994198181777783573354148939025517972919711926032439410897278017556059673551440565987928247722550923037559548278700044917107524287926720995721938218504633717066394987807759948726770316084629964036744082656708363781175784370816362995005521542333953319358018907777305916471576432878902779773964960570469197332727893041001920949026292626142075351372316147550147581313537741996805301668918582799401918410224431021559556197621969326278164268899396963271849114119212027004836338752524950043310724628213809940770144441166359600532906970727300695481887381715919861714775337223077435622471572667097577402966135014060157225077839013786507640462594145994508349493126925989648462851945303527603992569076594950894866009237879450353723297222014143664904192489741318768276449290827486224407573529804543282946527960053144633875526152186106449043357432431263148033365785853809636133685397208649071851011497682938137351523089631541769628204324429279334475865623037306716046252494059323637393766400010815910693483315322375405836243520618268308913662234668940673485977596649734022098194474229446812316088238281510390591789407351642359447543180978579197270263870864407986764255028870328355429337039871814308686486974841483363226155013639044872806835513152612933922511755846916872658023010669157746716040543688906218929219701573971161669451468003189931205659213181535866768895669514728809771159598851131958042403304329768480070864661602422816736825714167630920123350774027346590404678152130067250367406587286119015520725604002719458621310966546081187222415764679681719892186428267403589569133682375887534909389561319823156366941270158929257484583115456603300560752710277074601313517277879503100658548940714757734370948946461615226483771446822513853300247894763562374159289197645130199126063483747030190127236598669922210658919768960762508142195243909139420331064221280037859838372902808770166397074289844323507547972523733143639520995047362640649990701244349011552710193105375928979234324857980488379946031143021655693249107004636952679196707963699170943742989676685024370259115673940342464077745023189697164444212812994416431482248285010736477472136043078705699543171905016493188895766416557742220711165696253449613971819495535985124640472260750194099994570447624166770369325428666557252654832055576662807446315480926867866836679886205528650311620550469723811320472091276231677907653045504503262642988529292483815749531211866887888276141272058300652035626809887261153966880518705867355536139615130999023543048758539292368865274263231545248881073695947843183339070015790387461025808592259916226437882358122067538775242991001895926959904095441717207736929254235199625632650525965969077537695173047009089854113247642981995530690825838521329498013452897040146690343759568721671672728409054670744839187065681735310010835844632637859945797463842586480913883930053939998384762832528244223360137267331940492179913626695549724640633515271476720853219283030676743347639203180096618893448344976351953235782469554702390907346771085667106866478117069564684926117049821381853109387737575191397331499674303048250721208047570821171738910652583725158024202413894932085046987135953579394068770930799970373641650874663942018260286759305787001702812388490354739667423760711345381628595100577745780606329469067567300244737296546417601948306913727578759773787170224181918529472112917755249946262097952571446840542114636539834395253526786060840125369410262412741635165769689113031526034422995136126553317342380410970857985528785016824876725026929758123695347652475122092024765470755920561198498681664404434399080884443357760931906827656371901425398894496653628104779221581893816350279698591468701873803528910156817912767768178079774341743534371643913608039473568418197927930249019922724074032762043067370453008051973184747211837956627946307917965327337671156908496561665881950275931572261983614344578048186714074961949648922982560144205632262594965623178474482426259338856380973271412036628992786420313746867779225391611634161920483582816244410246884258003403847221306842891095513946332272435572417881527905623824540035802116644481776817734017043284443492464762988263307369600265908383560710149053155318491692523301466629798114816017819807739109193239031782915525387976266300101968320587782410421987020225921255371864188473745735928317927488883640266742884713665381374678419648262805999752673290258500705652832803802904271588107649054398840651648347177683259654953741835023905561345808203525431109126280622965183582746792871110508354323274354489312042420891541566817288237586862544252524893816207121494644988357912352658657807230648812969269096168284424638797968425826269119970527867932376393880838619198394076377099313959298680138457936206377521703516860901240875449011484764595697588660208000813058354115083817742943402607232028083505312640106721560948159938635268132902011975898825842035023598469001183942817948343006713374247295683699918447060626724777908822432421720337285689814987511775416026233334011582281582518716287424369436546484472927193967021824344216488709589706228114264229037217138098981250184127924391010991400366629790685714760931266555770310398497965411348083962777332275627006144288576365702971628556516635741707014741553597636869247533519332149479074998164446155880326520970609971020646108753092906993857654949120548893704181223630669408022307767375435842727954124391130069709773692858766913067744361849725476635801488300418116833031012219471223663655998820663613986051574728012638361919966844579876850907747976346579590906310756104061880114221458873099118661412746186592403712943930893407404384720282410835307016188841175048554607297141889172051797848374845464485327375297433214925642676219055155564567358331704242142994165384326317659545037015439411457452070510527631748498917495015503116586624151248190474442928463661637504973089712640576473984020019765299443923140721903092514821839678477285912004829281217489386923088949638256787157621101881093764698762735405478383591014831865658612411323966288484002179351153362808358167032574640599954572040738446563031293628018919476453361775498307128258070989245282126821720427419488569863523923979232130500633815632124427000151525116141108458125069137491558463617435220079565902076144516418559578465053831144018811774315167970572491436409403632536215333970431620803838523287988651089428758222795780915187248306839674572537866989670577730122491237649853312858374817059715448460514982680639408944097871755546510447963577458405327692497116221189263593438242642599989668913236440688312271708631798166070756602745443701098859447623221546573780942941887904873058944407257003810924388626843397904478732098223496432789181161454828239126378807795887516460256018179559279195671761607659946628365403467706361941875837337636776969207008193346136927289588358076953159531459013972853241485906343441478876407215432344351861999656412479314300522374413050722839863740491113291752966074903817005662703193385668435185461981379497433103474766484474641046813876308894418851095189054121080913538314853146093438540630526107896879228193231584668022494864851378169339509656391419971280759044445967182687792403894424876063674001952242450647645124445862805540306904647823717603429492808415753779197701574626727326255733436123818525551487094183482417719631592269504859279653603717583939690667269873592504215445599025267675668592511029170550945839545574812533920410184513384103245787406454225579659938782500644603980617668311329865028621818668596341108128418209733025973158898656341385468897653148507964336890530640161232025938785464244327055446034846636334788917704731564125556757862262597428614038168098342013877673234357778886769268523291776243731962316872651566298338698671218621971168190682247821228903854266274458440815278735735319172464597081729920574150332717122104039330449937279230454953988219028594446604959902770797592086053551942043654815978824680115774754159871520591192673742832394760871858266086111069704991358694497350598580166072098476577223077202968242723300177881689639115184028388400078677511969659333714707093621962582892294369293122197550625623198221012480055817049383141341846683974910496241883417663561970308849825080924628457294208756993522387350820862576379032730402136825773548681871919169634725091142155439252237140722854940509883323146719094971948263645446026528244571398424784277870490160379431263845655047390900659345394790392917226765570721031169739582383959907214437727166800695222423842157444224594494715600224024812484892080604538021573811769096791306279923090291054622431659968984863465206921188118626696394662705316121155078594072301633995898928986044321771190685808126005558435138896027993167287183465824397488074736058339427358901408268761140218067307741389104941437139710008746348041587248784351851771868723255576895381709491841529458106942337859616320574815708345748072987579468464649086671181938153713049934001232202250912364764081465339522211572275337746770377482041023854773181318217642727243140508033922417573075468822433434679756553258371129058873616461575205650509941394398092101374444123246350025426896852391145528347321839557985512247914285431065465125774641312485849544014808612021584346560587012673640723980352697317539194539019370158723671771991812517338529335951480920400083960700193044083928239680204162273642671510368917149314738198148279217402938843048983190633800650676918924416333573957544856432134953948503349102522346034715661798601099047303430089084574971614937923853664817090232604977241356654724449234114961808725457765434246508736149779699476351754425312056380606646075204581703971619824487091124394627824036103479008144673048334810610547356146980949616053747624688854041657673319902931851231945493581859140407760949071441193536754376824558885191237986730934017823292520762979335657764344419087962333627502561928907190314107750260703957328093302955945813937649007540114766965606147046718017307406541737014692623199588651758430188495496502024156761543378193854854801416213985608324534874894705938461950382075225142414386840747905039819162349582051907462399206251762152487978558960017817538479050808886544120049062012515021327916586777920128724216007789838930862569588057549680820833592594174894623827469358984956299551454048215660586300110268136936950633742004437532722075942876363546582279755309795196832785733427664556963911565363337366345873885535532867036108982039544067235610129658167001834596966849829860959436142992155848693851139298054985956128875966297893431199271752527920882541539324165792771405272996263136504160460333628070271512942929494678719146123359644477639749717312869781204122273142039856595456256242910878386604630525210186701709378259869659061984563732012521802884766484029789502330171378126219737578825280165798838093977252725970707776555887170282448850855262350818187364555829614721392867431092949222075131815141547596774621980923446933135497396419289559272959187653396152285151768009319851866133275000654364690356198243814593184968081747668788372345161286664798253499410943684814415550006996466151269768160161342605059836203943982940990124528993679812653554849346891999860079799369111095123968683586320093837584407389729753775121302885964753548388596644978580993412507428906194290458579093867677162945319807377694897262190655239979329171992384704230454144068079605078254189683693979586473219815853884382579160821481136245125471284006188504565743639625496228402061257663594830105969304630222101476522574867392076047729067353817241542494867933525754581465681236404423777485511554002376920176389665379631633761784027684657460100167895539619982277042815047673773210491888463701540643111919874170819416107053483899818635746963316584438474784113744746464149937606195261461156393069311097536333951540485582586624807206893179246755899339820392207009347440091083528793017986610608231829263634034307469524670678160719917145889067963006903048472759223202162674087544823094788868835231226939515357105097860890160961356849967422555548868183472577429249890027701613704200598688412310576397593584759591892448594703571180236801565838077322586928364265044735480678927133840969337541521074921752713237236390858547071992879471008349181090719349402427092611346703742450271323092667549298613385305384188605152364433419259621714419459073314731298611158106862019988225171533849117956885293963473597594296253574282092925433517781065819367783296126625834948886279623075987417739953736371025632237086011699557736741729573218348700461375924712697468456215558574961412227520609496187066232705826777847226011672968391881448299479620720822968933342154528468179364588382151225433379132342660721031790011441018409550683518494758724186472374861015959019240210738642074731369408950585040173174300533073796457577454664230248687909438337350562651174740324557515821187264090991242189558804123951759562888512146738014649011666376926486722917829250040262240751992781743726438961895656010810945468992430103178344062188910780938899909870079993401157040391569629625822882818474510254272227157671969843048966418532462237417594739282653989235854081448093014669466916928151304122354982040662490066353804554051595914163495166698699746688333411199396987990441348068654351195735618721641485337212201233647439904232115297655067067348778805949968596546419106866568827892938698478609174839073144001903271745201018693067531662135973075287150918543886484258344798734810902654826658476458989055910892644993285533019081501154188693863430933670839684326113319095507842842517366965658605059455818441328743156377716716479949727643105468007178114235558306861441080817893879664206666269363912335535641223077683044491423887974561188131864080285300605953028445499414954887387211976382297263501174922974461568562529963898537165934042043354545335108397367672208344641947652105730513980204916639831459795838377762846852337121816159976482274507210477174263212127405253093356359971461159621032327943841722319776198281774504617872108164638918626064133105277544260951572970433340231211008316459022094966741273560638131151292148226810351383640162351039628300230483711921693121476850397058273215173169307493472926921334582468838151782938190015242742644602996985294991927152208224644360292312507043489910069260541717279201311680603093571768892453161083093485407824230486175329409722199540873336011143399865799665796110581556925626919420824241911139682049504028598953417683017456132242469380475122060830851763744789441870776916342354861457575221178610512041274483867457037234115404623622898808400568721300505215636797712737762010233886478024413415229063660968604424351679873353696471496960411468799039996199708449385370235621508871443272977864741781697886150634625259641867172349759011729788962964212883003701761244765365559563585498760059324237113029326546086471119132880328163132108800039419746750058958188390020574092650395621124727190481954840445688073180655556791611277623757308641276907416266750002502266454857708163589056560381092643417103658954399847042105285646134431969579205084753233237060473780192722520798939821674241915444186058669955753212261906541058001308083658491832063276904624537629939627771674810898833669787251977019734095883218949189800832644549073075306150670622570027831183339745612042089229766666532617987366597202680198757352682484887390039442092579579133014130564826408539505280503006920759018789033599209613604011721425076040589815631484133010388816196208459402679745710874458235990715443181073147182102769099513727014927821280111556758974165119931412823319377901573694354924900209856266211146753828177360466092323272349180780949133113303668779701587251805003795553544494149235595203021119548097497938977293536138298198972727977159535791791329480707951591589035780475432631245412839121881527467527729815169623373118597415155787448130459025017649971379635866204526407443012260938470755550994292311661683841065701155663348724628646145455542473978748583789114034050974014487139249188418984527804375630517353587664718366599504144185274328394130782165048685077090945204767152186673700762286616880416029977417948531873110273179364717196882816260570541071643697173590279919693366753044604026659581185940279164120011301301213557762269929177701740855701731441683568367795660760055688269724827604053287071176291344401030627385546733254261914314515660918096752155162205117634968115448917867754260387286535046281377573640505367752869282115338869294318955688544379736991262630527357862528747444349736950426251570786350646438961045983109643428140115344784513357537601097037455109988233648163351947312913526738169750591630006749948149973709775000116784063507757304095894469752671125460654401823608040949160797745929695748734098625925685941749105789719277331344617703786595965838566983256195527497569533044713113863177287812364128522860932512167056934446019553594142249923152879380739490862984190011170506398348578942523166035518941868448094819300473287004570531972676110293673833069501468087099650868433639485301566634253789621476298452716831620115207234204173143537529018376532711911322686008325178319167780211839287285431184168289542839913671504683814317451410828802074057945883484043425236991678263021082464870236851348646606998429840391275376885537569457891509771822697240474816279795535496512712580438904083245006790963463679100973670812530844641566507546052085252068170809981817744143493080261142565089446462174529401869536101302713605795702702083194892597009228536441819934797536889860328175851192637887221901169298777231535018252944960996740938928301926090982955213302080040145348922802499126548915991833897812253647799597685014008705917365880300682810513763262016054140653388455789938785208200619380592859416716612795547530475864244093922479605203009483294354078982504929897998143257184593661876975589720183521723878830748737054910545720909755332561377151395304489350537493100127819303775685578885635690506057639085069654671382353531939566530312151236407829935671871228568648075008873741284465812233660243763809199361062362723328188206265239404334830003863441240268467545172374168976826861763642767732657227097169611261350195010959103108376033252085546121862217935931175162423068559408058686636053410665755828397822664685133816444396521160579985490555636984043540451272163212524680687355459562435495857107739477558765294820626347859829485876621383109389226784164130759385505891339677236581868067676901082655259523873061461812250459007672780638380585878445079253716084147425902898928920429378118395352785244561303269271668528413723478867969196643490691804435562073454961475612877727756288311933416357431110061137408686915657511400291264140857124159526819972523397470249959852767863320144252657065844323022492388961193755601109091843935872851277277955415796676448088875958451046997717322366028533000773804608589244324000317563392618310228020882504909503819329365721841524729601400580481590802286337892650155229393200495745880452620862202020673480074133839578834511431079024349943779710654593136870990208179424921486545415873603786011550979155955575971798469963925256580531016579418011424740109446731008485657796199806111646474290873222173358777014480466236953492934835997749977135974348124916926544799216017842253123324585426159693025966791657542929637010142565453246542125040494225485214557524508373222296272792793833794321237916422044432093203935420128603039614428533673724104537056032659550574272577163418691760062854024927204255548344011212105373966232080268600263901420396989223220581881796317638739180719749344061545132098369752244298039920432425594311712168420639154081736096650377431677290490304207509562457038897933481311248626441218800960599990090938290214616487887131797376901248704815179206313035972803260926892020652479766438595625949415486663369502268666140417178323169004317944190255921755229312069881767209107030744069802877039542071225112710632831537366979597928710415460093891590637680118121108414911894408131157589554178377755933120733089138622938820124598371610894612804701052241091807967496125553107504613193208670809143053816442019709372669834623617607283803269382383738097425796487279725884059763705691330792325474393134207892069718743072922209472858048479167413166781094812387912870226784729131431710559814374341318288011236928379372143563614884506695386326498337016580080954109274603643387830313335241012476736980008847975394806560018813090180391619224452111251148997010221114856977056316880978491093377474843017898947147814716937081885962415093582916910206324409371769685077322973319426610304651643149531203440351293487831304990657313991177534243100582749913006449785054565506160738286044689802493939935107162547700852547397206539361326533779327456342187802969589721806767364942668291080207380938254630580148920983833248184477469398489644352311396938394896263505639012464754245862144605046670913863766793265491791878251205074770326498630104847836617265824385417785166039284033530264964575022888874605577631483538339037993298351749385948998721462717858031583808291764071366481444541497318271151475559179684017010080675627730067345786354875696806300075125870053716519897803257525730483616282287790270762756860873113083869288852086935984774367734013698374571274228353760714874774230452137402555033348582962837727248509489784401560055517126703563759525720132414713244330116137765928718708394866044956115688451396918535228306028534377688572485177075091537647985792665729466242752097793685422711502687556169411545178100806835470875666430470808272810317358920650381746528496923342326896651297399011618910064145041931085368602867574752516050895507509862307748442068049021717481626905278070611046907523544259380741252961712365395415535372570316671563962603154346211264608273143430902549276185385419470499894865639547787817299869999189577819065699666903834334344752694007945198120068117427648925245150576805749814296608982015931798278929130196994117043949303968957424626140912109259379597610726979297220803464958586884128926470811799332115959075658771838986991708265058218679018676796357710603999129258059635590451081256004492733249583507878493887990260818987797298222394472254649393441351249983204230021955903121973434802052685557385581070000037575076157874970173076362898873335849292513878777363044206818015710560953576691110738591829024178463194250499492170759701377089439991064424738603139559812068569435786229984684112374609870088036923599709340299368495308956422163480794515377921310288626797433944796551862685857531448803636911394442880173173300208463457586627543294042719628381454478425169272201192022040667192791730242987408411434615858772066683954965728880816244431256989312411438006209325236458648238838211201647200570667487265270127876309165035531378545986129661770123082514909601241986000350068783386655892490851371310586066303938752440534857002152720825285339497318033158794035431564494140072692103377192271491068608660026571896449246011530162715816218145732024327273329292608841197021582765936402995684505042782673334822985064782043723124530482363258331506091059993138082112822802603069058583937201934144440881781909496891323506011387702155715908516014361921025521784633588551520254274873251313935542866234158293694897947430997218262290703185906552212594946585542141129778415468633464675815107824875033481094700740374638929604074692808547248767459430597330079227986276912996354669203482673354927516619794443593135476840265128185345368272416778182941898949513297137729367902459070276694839709568367887183591545187966844968290014155944239178614152219415051374800441442561677244057836706937332100435518636012926293493111719542242223946235695198963929508966380348444249882833566340430362984422095082170165210648218544179002020747164566058937466730879177828586680297497285021813865427030427549566182479053705353924864578627479668625832159583393716949829066418412564943150344414608163153894999680513640455980033105357637745228365453576917075148155811227655642556463476118104638569186625094457748846137604204705153044138754743694627406120385045398867346003649006952625408661293327104433958132695822591032421431893179587479685229701590475629747840873388203559149401686642243180337509999226820729295353944749862046618999967114646288776313128543631988121222354310654909594201283068414319689224793746540883942120663653085474276154672340631262394851772979765233055732913069926696769257730919254512766125889992424818903665376507750516085351630644283977133106279868952081648783531497655522527452797027876298656356060531044408227837789199408851084517289524276369337775843461472141864638880013692093714262070324935667564525277775633604113638683586622080790744250211492764646257649392963273516752067481937957094365941004164116110403779392224948870026697646284562772265912440187047061200452144426241365819628456644927736185783009529462182488159424560104532590801460385202519274548131563497876969595883392408966361367419432099447419781570546182368273604825644065164796843617416030070594299183904144103558981577974788930954193196923450147487791543642693262008239948470429630494529458315288023337150583216019903999005657368296471385909009734639356820715719189360576403977685645735289491275311024974756540133684271778736788538260732011193143526249757523292494773963393150294604455078807068209213053814684722821441448920793090043150200044647121836924405206117150145832081869510324000995027456275754481546632088879682743840552705762031623312315774491956037891261538613905852553271143025578854640751702950207089054311818536918742961621393903787260706548050919694980471972294948233046746469854982319968778450550653228661088582014620575413003104734651943209389122253813840875624540804181493174911085905393740482463741497196022638259783887172084012300785229636686964688394285752124856151941552321448677632375916326268325912575621396078130705957482975033633065438335709036538561845297540964889258427690842891834644382569497784654103686757379008161247584318121407634055612977583810801627059816502016374875258330190863694738028627256541667122740407074960236771499800353147113037865501299025533254727363100547423109012795092958528000567165450456464220135435333437046459509537706982206160327179464083898857384934287093861261371379123463107746372586960525933507002817461991647860948741520985793111262477757189811465536936314703725453733713695543149933776288686082304364124688787962784092109074665450045793551819301512990998015251562194821783031784571179200936244820011742212233551581047813710678955365718927490939058208590531589678921220273635159139247299472399253741564991330681437705046707661416750318678702954973972650206065481373387453114251050403971183042562018873720209928940115568886807329573235150631381709701769464254370483954048256291099692708440512343380706250167795859374328106535345467231955930450283729098379206815533232806959395380886415702732898077514357607360923934394481744962254372748796696227343474539488231981557660437166863734713183931036774147604898503213618780988458345328442213399700069451800821857634490805246074208465005755345054441962034141670976808857784548679007007881335542898328941182234635476803580643060319314864189737545206682519481039774745437266842857599418316936201893709047219448168891563921086221872790519445142990681069883394315085418546734109280985382059591603978232725632944376335330196374774473324175715925201024686899837231331960480701835010477192450829255795460218479868679192585834826217148086087505566260737748941948397529317493541527374515382944926874021697814784977091169668402464334616440636768066679137778059085709422222802546073973479606752730932936255328935189459792274095006101513032875947167687634722812846381850644926341217653256299192016300245274255805674024763660940472790514026849867475364561630446073602355966148737938727965971200238622018155264984314343397887020780879500824367337074549912874506255438769292046322441550407526811909784684042417226317256786486552671653320062193029633536718708036630445222002648883943417252221988403004022830600845448885540813353275406120410098631054067995108307125293839362899481339908258738185203191514634130182362631234431846173415458892491888759684096942342298951775572679731481491852382675285121327939407314249046451027276251918222087086248022428719865671306072694408231535728708470476281640070602945463588520132130553440516764827399457842413680111949595315281243408775084424188687588056744563390729596825077955673274720616288596558600666622942883284213766808885478469840622942429386418941721555199972195409277957871694341744957304402471671868558938210964046505777549521709530815203037029610457736121187386677968873890591656542803231722986364892961064663448592547143501383134992788941990430082573493407086951230919201979453563789076148135873158564280941813442989751596022759313621021826412387052726061403885580165167197064917672867708857242002009423394508818463031090965985731708106359671246498807959117927722165143124345110587867959260358811395975517017467459998718043275323836025149811048260313702551480854907608077882375250252442462064402957417029172034561788198090050456188826898259357267423602486708256022531438843908616433617823723802523219584564230055036057923721756075803229610351108468654140884394609919778738387430813784667739187567729717062639003448535743583355523214517614744934227431044626042025206293207508918882103843090565451874269701358289728588623699614683529879932874089310941384496944447162948603875771545581226468019894752527019564902394793971753344207810796661090173141933536710486086629411720471427686479511184360959171123741713877317563289045270188800044634868294575201231008264072178378776164915612101513746729614662015384985124159362098576516117542099649509286289083519375250360909879855701763193691002986629222971634297297060022898988222131848080073314354496724407001810245972991985912883903200535536578511358370984356023583163297114204766309152744902724534127440220612921572376563316275123999234617867636564977900256982831029631041617351273241699070612121419817411402350790863186411240375580619019500907853516121984403990767301100666543345001886490756893703381399730854052095997569916880891822896538342901566577990016923951904875155653301592509643208289085964097070638663533168613596431471449175051395288624123833173739624284229781027945594732623906233403520228807099477092046017318787578406374175999822575884122433593616823476690305918825209761547416593548471293288692394828349393470616258806007713681866789350350577209151372420986686263622629883908444931451104655801849339817352664090861192739770164401412185846085260729421786150039477550022312985566695440058673861494959674480680677169812798129508028787882283257239457431082971960730471160254934099271685539653089678252291714418395715915959062954616390464877355627792628093998367652541123637479069789894451458389584428361759525804140156133581103884817608166460482812556831441655928895932210597050410897920507987221189000797692082420491751331535876569095869259165519074353389796466274985807206692780632734961312888047516240180930633653716323878043218763308137070618737284330162436732529821320621491501791645130397005304565823339028928805908568688184945662055846910865458237509698578860246073676657768502468692644105361269969763077072898509187181111229587431365430650350657870915121816941384532499749285985431214596224384043059153558647159020823883126260400460191194560850633524338246192811571382164659680794036916671605670063913729449972527467694270482102322866562688585542891320040492462735380829785390307579474600513146592155685631225619717736167723783056297528064859646590904818527632605588513643819566540687159062953416075124623699162854560711276669919296860482881861184285656135461377136015243851755080898314040388018972756721636551361582964152643450529222689620997923123666427515654003009670337683811127815297364668295355794305176539491559059371566451912285717624845106966960868297445276248464170317290858600884065681268986556330195529006013564161245652593525676525770178821784117628399566194358571253883999543961211071950015245300642844202139697682961204148834121252023475002272737004683035266787508778396549611250008415795720731702009953273319694169846251285339655631479558296053289592973043715371831845788589416197908980255998155006365667568465991295202331517577550856260827105847062731000033989523050925511631958907352914334812210359773373790682809357233709557631459341234482213148557879700314220709337659261727170819575223785153337360666288794189969928711447928009253855216376228461353713691388518978313547487474190688537655769916116278670781228375585730069407209560208890491918259138624206362270680654462839255817566585044893006730310451178300106209206876098926771015648898804392454150373917276785466259860400276148144320388148475010365325012137154609988813642918880316492678645380620495660615633227780204145004081666470795625599818921854449397189253832645091214017272660054659689183729152397256683089173547685404561160397576927574822731483918333129575620927707759396933900964232164981718363157782548270020357819710509372356470399360999458464571006792599531010648870520750440600038042090372240480609001014077942552741675014163498388492968353023169198894256987044498899349610991969628683770149610474202919238540762347794761110922619735218675581800318957786658759074559729305999368665449788778340030765645146700067923580564987517532115140617786941589433973724145845355941428692556914706379823101828177747346175222836020393012511378308112400036727063721460328786913762797995289333779568308724003575279458002711673563050135492242919857438589357593782371708384734273873897029872356016260361830010260551107204820614707526837535116686632226989537618046514949577515721280389490840861275733239456257155094873195932029753770732761379241885094588957469871860373621701504642309488440254666481447671356788229769163983298740974650560757949295882049210285190367992495295416146845735029165961804780919999880744059095336767930992137936252534644492586781427335474009900921396001385485153814137201803801793078454814015829641919091974804832197571926684588174195728291001581357144058770446699355225168023897261976787108399904158861208925085701987000186232579832881108807402369700993236807335741648969191342368676796478700165671226846587161362373558264372528593029915755485017838190533575384053891293581561334510865389978252353943112906614842627404343500293360579492997639964754868205932918082658531240575706619159278839843002479573284046618393054033177558178113610586714160854719083478373807556340703898689715343379755213954140820540064450797834182900484467952758494237251827312674913773904677573722941366236964284283332244019869367500182393447374861450611262338910510055094040082625412720158165334658500006129015295288551306813305759231937729099962433329107367743491862216341978636007574366356752596927893433072238683118348258572263009551998736539300596262956845013815976359184212396532553307106531307977696403808662778854591721525031175015497322234255919842066101223239802084534216078239199046089828045925135765056616965076676183254950726190445306252873698561487044720189333473740344159910765336664065350381822771471721478906818358776586793387002465718787541034944617390045435092675444635256096137239508922590476635304339249487331405988031766802524193656356485657997643392139058759750701418885430396276482708522151269608794038708707441935910526917958858047887285618310285644750059107731226489557667374895111737598109253068142355872599154376434119935159324081829119478045387754238378439602777204733015162921370067306061651304189287976450421160756579346985167542442095535373650634690050700347474348502688631532367381526576299256197922818521835698547916307335266570400993905887078069369993198714858145759176590199449657232256556443261926692378935992773909492145068891818058424083419958415974506860918844334260990817902758873992670745489421335994404651134519076466303453398822338672922872461822012877886498681965460684367690968235026573831690034137602365938657720055456210373563057043913801041779421781269709523437343698460718659946307121224831937862311988368701503245115071445375476552381006493494724131956549812549889410211674665350483478796046507467113068229059497152890930294491778191352412992995282934818760033207421445421269838929024392718014416012827189496044759156148334339073357587759127622060745044360207988469425973751457347738632678961043812479547768614636907329800000387083256178800382028776841035873896345102608410516256182511860189295201109574833476106331732672139230714035181311544111868673104411835041507006669526459533069122518278816832943995138423126329726888025576417396790889887662806744781095397701492071676496658565133739490452390715288773443296858335522436438041802572463024731079585113314385906261747664118300517042168048340005471383195521863996316542092850629513033209981671475895460060835610515750679371892445258212438060283838222172914228765503847224687921393224646633490773217617493183960207135975143031022728576876195568898184397152443698984579013280429200020393016887077639266085437266802785128917247999947114081681699480196484695916301808117904963023648281572843864742546586480281641064971308595801868077519358397877277250237192578376200887852717500363689729273021011914066060257260648912345589686040142256392808269153241501276200936738415736646708945610382902283218950654904819155701995464318998285381165429027028879870161972054772383019311037317884325167562549686931881632462773512103186077133792838019200022517413726877380586770996283858994753449114608975442466925986093386939851693755360043579059130665907036447496980431345165735020342546878067045412392958225793657997722762938016412313794181315609291597524448439626666269061244658204215140033545196799691420501770176365638480088386634977706536981909527884569281467569934500689626791731732660350282769627951297253411616848647382652348215016651542646051770317273714548406389598425894646155748996466901050007642808627620954084124270504947696287561256125933341934025621116239832817573603871658638124589592821873228081668110137445710493851557452963267045016420495800514922855457433210270923634938459595162689023090373862033640334068821378401107606210917913442311763152124796172326459849212088593927663819822501314941991689669167363718763838873577505538434581640386255828368001516790015577996153171466915244190175322156981094683997927294044090482295954336803235229281902695157237010809101481856863815104393553861162066801535943231883724781815569084810612879734880327233492848765440183075493684337581010839595073503681015985747108746377491632423477853670054343038589423667798090455747463700435587619923336370486864712172398159463600557814228258143188283739648796202135464871308997174021162624691898203285772638958717419904959041197885351717289217962375792522360391587738037687400511840345835101478231588377746329472695167830111895499697982006948623358039476820304762268260874438038140881669928044344038035325989554878421531264670853851600056812746672024867852441809550596755665905145467974580095014884305125815640710303869788254281217650456329624798544492008598752951719210017427256623023325027715431737107562561451394664776189713493347444068539831407826449658413735987383223061227091537947751118360485379417901887626913688468197604231247111374008845558795763963752156672576603110074935456363446055072881991282877926497468483408363533454470633390813294463437279171333072983163846373448485604816840290729258371743864757274350149790977302568852548929155589759562478805117772180654990672592707147143251263537251796348803849105662752759905048343114606523920432173323699716821642352677145788916603702763711144453321284073237339218098700930443983820064605174791995969360385165840272642737385107734537030628281127073615626080253463984347316774069310210646068035006651275754591932436323367190664015864040527208342243644442054639720374563853218240530217123333239856446422230018047007226948240762603484894981825315181518838756701869448573376170778420323017479931414034571351300704709108447793290852671455770934609236395214460642987554447819809674518724931975629585716448147774621267161212606471168818489004780528570814250111161350288720724608326990999168603733803996919638579489832798490615403617256812134694993371430813261849777419762159733457646499386806963573677902568661302476116680593128805652235252049712720465216599999148276832024711517899059473514221283987508747842688026057564517464070498928730255734417236272196017410060595422525849479517483809830262470279592308369025683829827581001279617460274004343390239122375266393067631508408385892461506400705019164579015539561623037349161125822244080919211335125878133089388057770275118817380799090652180820622472750211138711005019487062946167990103871156265015818983304873473223159200033765648902160021306379322194935781363287194874348693889206902652070375444876024929961739229273624322329958999375498309804150177108158323129392773791346207381887625514794628065922676169175376348202122827409685605814122651860741837405663365561454613955002486237609304066266342847682903232224946383317664180313573153385496407983400588459698072207221778377285319193075392990353501761188997686074098639475968872401405767689602210503636298565861870261166709696901424794549408848741481454525536581269348725937556454763369773549678685683221599363214605294224868346010927415268597327442523588107669668600316474409990119016195093166183160671726104481073675013554314849068138782432808973682199068329556456230699260553369284207569501434315287909508740114565314379805433155104954809313650596704786241386010085703319159613800655904742534551012421237317853342481651396094309177651327036422036914926493597955577819979150610786415955791954309143522769373941265774249105965686653148002029297707603151198909097811047235705556400127664922668518246122699376723922124494471295584707335422310951921884498354001883005213120607132013179547739060933213354867592702259981124519091943816069971875206056378723164656189475488394951466529246227255299069296502966755428495157339208387742368069089041487133201157897744271122671963685695907772704510833006421608379659931572950613304031922577643941453007772168944360385922053987825390579734076317443693030863015020406805219224026809092587580300573890424240884070280020749293751294609429442098614640219359193369113284068765213388699302178853311565906196626835160689635816274447967510470611794008685344569520343248007707495860843719931860479640270875112279892229388047396694237678899420197510762555050569491582979547991061452725483449983284708401377155915847712467916052429207907939127305624256172044800420325905501152667575458552985975871032423579835441616115449896086254524638983879978650783174220533515643535250535140962778198695193258247185810946072873236237478468748678398186880997043467967894229898806805722767113708804256670132038879352932288909762687526040057486177321904714409285818975863569294468968098448970524070039150812610930223267957310133205614512386829468727544561037756682239669439771642155379459341978271889895114659413019241449785482119641053711620034798144654262318874160995852934159966064728834233547929823589725992247360599555130178652965324427009062591347287858641182342294962937096421770731997381768619456735509294335987413094178404509006177782130118664620376201711643931644894686951079849291059874252789003103247531968995163172201409692548879101765669132323489800509648922730251042674940688543065401006715086750425863595652616967328666538671950075752729004839793574316381259483764942660065452072949342050306598052544953824082926077035403956797552897840390042280800671373610753671345848629645819474406875804921478188881801880347896070802573683912943055928279548286678811632135179716707727333734565083334761151898203919071844648896116413765668807283557247336499218307622785957012159534904053307630008479925168533419602713177484013502975280472548591386697440018378930083760619186948806626950166852454879856201745173771109666603961049923017798796421724672478231603241947973958825741235165099151913467532653869677844126236397764467889331447940431636708166149550214708519688776019039820152973471569416193347707623677753054443152264064424855470109106861726287173520445774615759740453416055881041220107026589879191193259782883002850961244800215931183719468771405043644822329288570283974806952045612530661927690494939191310413660204622222200323914414272191235681523145076323137021201982332874161250660847822410661442543898264506540552828810342482364124739021327656723930283596784300757347171615092954494165734783100568061359220582628581216305597105733852828330250189650010252124162879676544711454311791069247989042039624266021837584394620239033838988019953186993663911397746980419449153027304271946043742833166821857138355341056370086266969119682109540811228662884146514591874877943874652006624557145482446553473138117763812593397426828162459395280637402241771549842971855353085099779335924412164421316067327294311424516895231125212034746234061164910642470063040928347673364604477707578699891047154798091278633516869504850199941890889250694203946949334239766051903235744428516838583303469960889963997355322794654347773183317977902299378027374982349583435594602775916539487715164975858101358871604087087264414299098995193638491822078972267810016286500505391720093389511643965695490059749603353232503931210660156446138902783287846849966983593278770834390420388096266762419807083076527002575967351486219600117896545644156385713158897325638371168792033875766794293469449619427221912565260703821376675901149505227729170594231860921324266122220790763585379385322198995379612443951483621930344729624189209158974218850582147230408756891209491607399340629769406674982909616026521018794583033029604061888489208900471407865122951975146241389736971803868025840289746761483831207416668558696859172374976946211777973650062854512277571613698783719432253808102586301404776517183153574555997737150621219672734600835074339272127437601408560483814998734100003127373240630183468668929366467493774219342410043201450072378216492724148181292800163761651694106717306138033873051762871944877384379205392440603113563126033624818088197423488518409476870558333483329621161693139255992721698365473621194064378985847187478517663536005019047688896515413879663251121402372360884289789373289543446463527644026002767904220132577445026898795068664637156117425906771641779493123849255422547040843742385076712069052190824505858139460540948407964416966757547231846478088879645305258850088926909065739772361557051632436072997162429199751878046219873356586135236438365071419690636358717333170842391974465270137313284629213369911716505355711094001689619589597440063316938391751876736676328546524268994995767202318838488509714292394842745483967002575226869346374027062511948451116853345314035312554016282897117509554753766988203537555289684991299150007237117446976202898925455238689660848299955540870004952845069430285668187830045304942208216906510307930740094821004552972150510307378989195751277347534402469560192212703066464214377973587020942308380971736447124298445012605277640829800317155532164087184222726713226413743744504659951619512220849354888725115185605282975909121225143454202695506208995340714645152804117313799367593311634998091313662978417462735625474024741759727759945068809254793463391109484375781815493467096352363076868331337820059966227493059578188598452392174257499188330906985502322351750603901667680832368762100586126920044799112857995492692213020184145498583833868457655415570031237393227729774872321159365328531155202191093412058907754802998288010712989031809250057038823865780640745814317280534568124489302823466839853075304322602668551583293364925667514700616926405715836800061846962929187511667834809446189847915059044596423060943502831853520208575113001749380844941489004386327144156944808713356331948591402887784539368048949058180264572217142282403856630149602302568094423641956695457644701955869122044683614191080820647001950658872110019440294880019566927352544514175661770430208053920070510813043005755367253286215127187441011965920703551513570495555063326850366677035353059004238651836849921510283941467903574774004992595582880098421862817154668524751552554287950445658560897456376453338756249041387204380965599122032687356786182421414211224956548348246053805048591911488331734741986914928884429381272336535633247233828887455669315035481514108588098676079620066045409692566503451034894027761372969331574429764350990300975148385549616714574748982721880939792719028746110453118030060293127759166573329173283522059359648473501874972053324733144551242371725811907513540641906422924910975675180483591782197948159096333867404654142127654670248556434527944429368757391624256543074208307289987177064832699606657943115872926124374506723377627043352509656735604369269005402690065375074514044864073316355846375932272565503020918341273626408886196919547547047595183284333589327357540103647901390392570675411150095772379332663848642459990620310668905982596754070918830452294736883702216662325403950582493610586797878342505608275432613499964608052449189988490181840784192522410201379694611062827312084182780779571230765135932035579211819354886024376803322626822865073608442037387351346342043262772015835984860081014645818358265591232655394882755448914959645511811314530402848665746593618024564102088842298473243697371531827022697142045072468004504406151561711271252096250488881555214519313374996931279373157996476775103060476348059772877096899979337642059858692566113554221201365838114898097000623071408559048626788486992157282443401195613856135756999793145811880108829676819321457350935311684295051765791133125199264809342448912587042368311490886232667607000062665697304316992202396358256709654452650667035511005314225013321332847352139242274475439137626618071178903514623826693603319023412048616945384252356999424337926181708319598117155537283273348913701324649549882136714147356650826001881195952859404413912165919449672523637105843804367482764077614526875121245626141707982103504114241819979664767801254839288144668181402840245536235384248354423195752464266455376620597070832862947299007748802610813831069004337996412206001576810035378056169538832170202380413821333246310410814022694272586706134525092052178740904593831517444068996419025723782560139286121415809309079044719366561324402595948672324924106882574587435100301345634716667866636556809438773747439786289687714422146224488929570308618008821955552484931990184995663383897399242457169999248478917779830278384346272651468584010633588451945289770388645055789247383615833846887897761102953364518440052893662124899436611142392986612592258783111131123631611590840781423337101522236543211110585478619839402876284985048132999856066612724770576989450526915248363564097292487271922775774094744239519082236693656441965014444800048044196144243775194387779053871366184311072703780255544465376180198893436537930144406720991091797063170340388237722162871348982924167627480444199295582413189632004480158112316699656096260638539068434625162751121163399299666229816315440708703086497235984467123503703112987716054531553171930669092444911831243681018880696380460078704013061010812221713779526946202432105004727311392484746581896283038077694561904420126155979034992241981030693042566245066577849027359548551662087714144469071262207062877317826568057592581326389660331328188931632868349461693184925818356613101499943314203415657341190291671846723148208875754370222851321393464157911374239523589886646701265602201568507215807959368878390553196515940890645757334435602637766442098107415747406018066129569704645888516775865005857562576741883557604649132494931117494537934826202906170660106321224288891147243473749673117063869578946020581121672677544116663035259724187882328996341618558540964560778735809074445592400882038424328671819599652028710693309738849184526786128400269842487329758093444739993932625505997840013226699908729392173542924921502104379776362941841003621007929715469640759433848986962846975904902392114690590353743838715014367710104289353965627253793951732116491141113462520137857746709169406402972312174941875362445270888493883398210608597666353395942509161307546522115162207085746778090994849907004135145439912896131698318545462635078110545461731225193810957442665342957319772250670701357055830499302886035770479419508094332366657931951013958751684308061120460272138600844570358776406971994458900945597072147372259697965969749684155171602546498047619168093048942253120771280147112229819719365127072500204865105545842381095453383476617479249072075265759423856105574339059313191243306402235042119822300133162391865825892965644436607364102493271368134817372716380089175182156284364070630763185528053974679656373623655281000464823069474525064091462695569538499528941565652912831675294911704105875175217065579120690396792212188397507992680078803654440485206196030114932424624442809373717527423121552159124571608987547304814678600523148323687137126903505071274017724646802254777409348247909409608744560550789754025553136283225378842595096540048661497436225853111637913966270331547095572577286234299859608247766239835572844009260562593874875293561099852096748043026180217351376367569866334316765012252741209917570940110569701026587614206461061717391847176187420399053248584727305820713938362943103546712781696063240268264217820915636646664782068501040283341307183415123393946001968617954342855730534516977259236956817145992395874193503593391303260402736844925559392285041643505113726249532617235906974226045634471766086508907538003485275037715434322674662560702626429324963348155739758054476007390660911663111816159893486095663463530922624699440920244497766236500849831727355173134390706588634189599465887892862828555787641966008400701612588794154656797286620104746929844179184363521785931614187621350152815215228780909179453718378374978969253429329618551252854134741730440064326553604390849026287988541048022505129961046130184068729706950293432845183768804357143313987938706539648454422842101242771104013738425937474522059523817118863122353936886137591171854341074386805777868007142093470843096996664348039713697821291456914171962358829025328571264703574920269858357349321047546177417053085091941306434788983680408489108958426345542947268566881114919836425224334816036608455437681100240445270591813079058212828381984543619911652046966051974705315456045852313092718066683395851735948701465444860232513853633104598457828610961883897367494601200849900947269802259947319505819931217627508538141614756644794436471310409016454713418824000254566550731202595789344981851775609462545977253936434822374771509682115508846345632271270300462284965432175397448347359696000754539729219344061846265812696194073161103024635130328500344363478898211249622405296603811996734785638295917219412653334644873748695959622448132072880431348465635812857665644741951545726990836974720955616794706470887970369095006114842037258341449088366949324204438284617031449230000359952252936422106702330683904005923179074048051423340555729170430354095478062345263913947885773681182732189128776681062907695659538582282376517478459297113150276208277704142739471225046108311154470240701727446953143808123876072915004379279985213229067632638095785615933347103038843375617599904892006359168174482494397750049865329106760476238956768632316421591253491462271114246421057349325995342388238188003343825149292305668469118433171898749778704891634638078924025922240719427221827518731647235042739259594391359320478830524345315619580281591151865436506188577079231652179737837774280670057286375430324654638211602720197933224306881567400758601580575164685931992441110135819811440676499321823558058519225412274764700196413237885008540428281434316124731555554273032300527064767194052154412823460908750342367247383686870153107967615163058758178194721026846331234312086608449168023181620380737385459268406347817045067405133829586948363421795670254085084525283499458880011037443774836621291316412327838649277334518099052634461464408362135602232840103477909524444979038401466324352717467407572355646474671981166199771729895100456479606232272852042328554949642483393407888285598091718877290795046179065991932549192454254845290143032868684933611811863226601372270338625421075363388212467759692776221897559067074424527638867979199877750630085155993891327557176746294680686968199409862642601327078814024291956401653094180900056868512316695955505225763256275283609412847361494872411842986479049742582319251978530997418794849038350139283589397478642880751187056854786170446225446187710460289107029711363358709661871025124649785613531747562750764140317379981981350921977949415092182679227774287923735464807224187982634832079614565762922442882359798392454662520458128520747375201846483618040990511391275350226496769589329044544492066482678959952325151824834303782119392059944206512967379200090344751601451493080959121966462807631450574763762623417427186772869612359142503977143481991764452377847437660474203288611803776758739689206548557065454491781021972203523854760540060462700193339836375789642537443467364950787575679405816151653587200194266185840461536530487451102058733270461638117215661777172253487182755057608700277389835528865879678631011003199472565821219373099688103534784748968856668276020344135287155897657534106446318071777122737415048124274692857596621569747167276745828106921122947353156614102408917593127843015760558462316362733112123459788667808304630860147340958902061544357987606111549373503415913693270430980562073914241296950635708767377517954382793763826166518667178739660956773881297418577562042828996972333889629607685694800261377900239922670843706683569523399194480482439166980323543488066593395990787354148587465465851229523272917133222194196222573401372274528154966010286494198206249001601957211382033663315460831092896926099328452925641191956128482267448650174362226909860822372678372294034304266773724133047619536260931712470499822417303569228638261037365491406953296056249824252682002054018012784455192162858620056192685710430917377698363680359958024394387137446501107283751205801243308967068484599558163408835653921536293009198427410275254053948566486193255115859139050732090678242486821832251911742472283630152895126035772523097330277364412233973503997914993722136713944293317743575794150428099971200984072790398324701388147149012636960883177077616869182429469297309833470996636724575783986072726431665496615634165120095589295247060026660925211961192862331194123615167908369564743383250599517935623072109006934071514069662979196272657604382421836848129717950053922518641769218279854770847767211120267121664726838588013552506357933926533448060026660604478070345292111565879452552744554715825806063029760290843372210743459548827520961204161094125663628465922158695768845520911224318571570374625618283263413087440133773685022256666322803770835064884748073034416812814175420537814329661226172337272837780098354437829931731022870834117857664238894609395303840862539331165875762558512202322939837196456957196736562388527433933718250315270484494419558831908096482544670187375391516703571733164111640329253537688544531877056572949640983974594226695865181679008086203466922339071558344977502060828269219512772280022768325036835675187682299580949201965830415222107806477297972728841504199374981692319402975467138860258878390172739350000339364433129494971846277447118656790218180898386095470161144087773486651049540662809569885932139217718985210724711097702659331861423926827635922954619625642335635898896251350668976750879930835818889489531371063269457284646044056972327870115250141544411006624722740762074433734605028261236218263889283449794160531196614317620671263856870169948828207610953191994066726604978540850745453741451316046588552119539036213145208989155203765823040700101267973943303553134110896972017605777088785772835859538447970821462697215080741789844162309517461263624956885909026956650067392918224647427160392687729563771140959944509119810330643386020402925922220801521718453647422148412233256408566004983466309578551018682137522091053824975003608140944217353311154292258624424075026191907442097790361229129328563644190970386634741831735983497621537467601438197433228331954558743137037595576154804715084941570466049409074181084901230096124523329665822187329839022116565256241420554296222673580229422945933290654649241018720119522302260172743928027327558222105168756401364417888054017414212832692526536994463128413548958058866338517454323674210747543680216326625481425554916376935490837223935033715396982425766887752220614656977510346825242940974040818015530551234102887427971507220339869653251864258115542714389264093626327870094676920380524989587396104690701876346717838463553949104361577405180618779944506896301891176363322097268964593822455812023738765164850758072535014339927476714549356802545963925506318873163779535798575563088022427343479724893059360445171979106393748626313470218681180128083840110470035002136486513304899453212211759968735866527327031058039268908613515887225893997571710863108189670891890777755671066073727839443594401818059583284547616905839608518028416486071964409281068731258911201678249103412397646422208990629843590054423629955617932016738570644698822140590925706680459012414925834539841078923342307242734457861164176724828597748504442609003594058327532019411926610670955232443173921617592099426014079284269273079085775196040595337266410191083113071177661670384667813752312189940491384769220102137343631166998530271754433623757283309668170834041111380122319313900261918541571840275977443396866351464663345907941310615055373432504090742771944624134063029250395455005525876395895232149492853601719585317132666325499495275176853372018391283484138461566720074394840436551320840996539781674651117631475969469450741448295860408243039192180558664574407753294965938250785208025428081259879524448207757835297177053402534212788573618185723112768652308085285832294050814834051536306829645361838540762216188145211441429574081841104312539248656937243037810861211075184860037237178436521433769191725869660176024675863089431268051514046150164639273557806369187773143194483782064976945790752940575762956347979537069011978062530679318699262127234756026141701536338126654802181355236736942277026588702617373321225439171095113458181864686845845916134383372658493095536861529180122550034549003169073893123762521776728547374197385659438740086754048616788519384800819552543709988272008106444292090907880294949551462938413828473664970128220383704962591402000281821859998778555502899144078080806331125939308095095234772694495301065694805376696743682116542719052663633975712711924112419602111731687442846012104169981254347099853357135548837310066747725734154588357987347341810963894578938157271092868477746321474358328270222283078623635081546379024807994931920996690169244751919643906694438039191798943114673922058138451091648509071672275397945155233451988058397898661569870765571819698509263582922528963557805456452851906322618888999371018031397888078003957379029192751356449100721427871230172522680070556094393314585334270827734671541325372858738427935536849573412195399856227847989450049185168166021554080629047512037167064426837165782769819587049940857628052547150487929576897208226275149889913385295742654133672699698181447555846993408611504172895836982338001846418791435165031145282470937010505650515149869144741311655045536956720911797778432841629203139418446401848794161126384746183528921505925351556509564708615384929848503534512232791669989076051401350946365762312723392516141495653077482428426692417507643373588486461549349529555310867517376099462784093765791548867778004789887049315540836823719041979832491787179546298570561565684524262640727510064426213165017503844718551656698861391317921079781132747115787061939577687363229210957859584085942720937112587182834485960198883258750042308841368350870521776083156579991538011478015512655149862207165116287572768054207478621221923841826847335477553263891632802287301791839265558584001426484029950782527941515243944481720997691471794612615667236490049740270283562135043208950142437214040831949299886001896011581043302057226012623274593805881356290278651075007780248823156323229828159683016733486779676395118265451813509438088742997348224620733642505944890666601479361063886904345084520592991683694801367488362319314623898944622363745263466718093543735622822022743631225305320513607854425768654056941416819690757589429308607003187410995825004021164785565357214112240329152597875465739262273730141153072637860454641845609379118967961564943972832125231757878022419695383435092779102884030883675570651011561896673184076909585451782771565575125327560252311172756248892726183657372018319277492431618120243326060723347587776020709003061578950265231654880788245147953759388140129607966189098211093366834995223863007039688238549241641402032475444548981616998214090166811933410908804685252751511497105933612851081066931118850165497210089103011918704685732254533276916014290264956518907642798467889175942866792522769117031159812206193570605425151070269539126743451283035078789538146696588663396557918754382207811309797064558675349684300964290496036775515553925492541839463613466168834922174517310298583814926407636492735085996219660205171437928133416291077489149644022971094713925894666047682015858282615672876059068659062533982314749758620336452146234428575408198621044844555390290282092128580770701276490108307002856960250450026343252859686906425863032969475131173382356504200717087012204750901502158449546612251042978677831774918499934377343849999795241496668320779716842592427216028516051216273460211001661085743295895696146093692874750577495215622785225217194848548583074457165818754695884675826733493782269226981489651462260086334122026855552503801356468051209886651221577766433030018959563113582722383088744926746014954949928322679122568893882413111935630936475833966647769262854687935596217652245257874591831555468555459449683824208097706432088629056861076799936949674107198789809125714485042668038667186822298877165573809738360888177853425120683588966187287533600664279289170601567086713095265760590284533966364790056204497717501998217131182207477696529043852105384880448157320409143403704086016217955344787144238023232759590905846391272781439765037926350695892154700255146063751528171790661422476879416276734795369462628762923486817817912089585126781595143831910400331805513710176002712893548900458889041222241773647584150353506601790681278724233661170913487039054369845896957487026980719898457459956465310382497671553056495930333606429477475514835117221034821912719378899610363249297007963428815738963717392885750709322959150379153462244021347962284028800534568976270310294979745394646385843339269732235038022656146869850204482101131859109169046970264772280109192325740606369621426068425498831400266233667923326092449368366683735802964546329121198507579683543204557495956091431908495444858529844472234494954683267612955085397148167531301206820987678369958429300961142961988113806510358652510052421150568303233852639196304213916063342627807692002387879021433766413239933063381668635110712916259869110413882913443548307980595046033932184401410128281719060553578564467549271125250882539083306862125312852010151478018780693050201120449375131298875319157524206417414789044498471115034291824198075425661182628491275256817644519263940964121258659705208552808105286722525141940143067142930410819568265475473968020977137746458535528958841921180807632364956659795976128802575624016930938867848403426530791208089468424483833575121809190301768159072689750474416515413508977580622953594920943956378171573304506556275622045910438156850094725722098909095544641502242375537819416037601182775368641416618001097786756041315585178848011229956542167540246396725109812399324637481653691523657425228337207495522350375204549012264297927363434245163622143351025202635198184209125793271963822089180997763244386539718347467996816827723814384100487154764327363357382787785098680529363166637293287638741478188448427881260581585341975730458829282201547944946069505000908493513557552314163087091313097929522631176693034571523124732133280168206924268741872304726879874785441340591316266707781556007000199933557228240954352136566797808936560515840906403860824232758590189913589290813338103588124816661211814468173167734513319028188927109702271813565687769983859262256787026912994937112638598024971984624394617429026550955607390333310705520352693627966218953149144583959790529143916051642325312443111860158024183217803528221870539670945644655167019383771418911941394134433198840175949140552253563622987682151357915046468006991065728434053609678251817087319943935228023497379365225820280723064102975825900897093836009366559446481389945968393080297296333612991856769517798147131971686101417913773387699342894930616861467616352743999568797534283952201406071294781560887431504679098057673662638514642325935548365180712550507776417884410339900904557269428448232277397985345782651432785766152551984387639166519766859112322964458765128929367174132229812577047441108814942748161676915892158374054036530038728359353514901387732632602789808100121404390020605873273635480916405704449590828111091795870672609807005476046390530941706804986733578298809766293874917066413110344134195393024005314630905999732269629048716386599038521818640015069224242287658237579207649654991584880872188693257207103175741058042582660688824513779790899377957337211849897510478978504146495941650266876197352589653969953558800725641175206043267701701955388949756901605378159448977963549930671251046364047209300892251747407038029036316569706488331602694295542235599708955597341123466242477686721895350651477881727880329770620918643185969267033418457077904624395351787764717209789691140446013642383045055102184372419010224339384518075205106321928361456233036362145677418541761958968267408681499496280770684475050449781215674533555224952547546621685254695596725905329100455587860169932605277903785662744536532508338534929952717166868980873517440379709538178832821134451952699067749162682156468287892648072579459543468326538511523923913328139665445042467024838499927275250997266307683048424618396144279097268910777265670672183069946015268442253349348425185611276214709189745452638305823907272418931645646195420784902016508238771839152847916618212230313122397457185659126494288957817233440914489498098361599635225161727000977480327994255578658860280060372909768337716876154868963882191490301439314539700689298998483137935023687592686163212833591326950478698400431549527958740035636298311901061158160053692283565699292869878278238147960226127959237276328687045081311498530816501845771370273755781219424868037870270721927786712985631978732249591959171895630907414236941503067017738602253955432846294115836246724288785470198229386952048712727450077057851140124453029671714267763885492107280506016175353748448440481607007531988099351876180693383728210101846092124442192041509654930663575795884642936965665853092273335041035319785945221727105200757311593694690480264786329727279133213149118917390095087444948178727363626324949710514681032661995022643396995690237994086441512928662273918412166836663826517022770616531434474324818175477320913412288878554169065543214086945165374548088819352488580309005940259075250328593226842905672998791330065366988327104992296752038304603110854367673591990872263882732868359594697926096652231518472087203934606990093002914869098191236757258749012299782651147152868854943971091161780958616761991996860776168983951297934480004426001379063565601658906437203615299406992089161846191622028777370278257378792265293646038691359157263169077340362737386749331003521224159510191644270208073166611599785331678088607053940594843653906910791873643534854812665786027707032695269596962807555381759444587161852166013560258201689271297001574714054594786760367740552432247345249179741155023773574273169983236864754628261412563685122633452921501652251929757512372258969149257596759388445705643265349535023311796237028482676655701385626869280229099984176949392390103026568594266274780940680663154615426905841380299430362624109082785122753158191957035734024996616135558438952762904972584449862837901521532480373163392918143796696448127777450266292353449418334914369462096894597205290512567495214228656504303095763923139651416224995273607771157604014429461532826338853508457754241872193379767022320327121682645143370386253702293163710829583530688387969559818353633052980374149679093282098817750445013269092024828392239638356586815282676300074643245161004439644972259257296523204227486030161509991539439987409732770868035122151226881301494843491404001580681251583315583760623148438694830960010303029698711441105817238345399474672028437493694271109485200655841329563074788287856595141544085639703568500452734717083953411415438179741353179336401547143106406232975170938404350787546448659107596395698466431031245681333022405348943520853365413083575233527851776822776820480373071574725140018258786602257095235021562111090002734707783655625377340539712875358266456737430347577973007758972095298724583148484705727802237427119151687187604949263772423254433344221835722771170675649468955456526639720813326469469551574322543124784192349507712122371317814221284283144979214341374855517737516786903884362296932142943556269445356851191494212631925833457612012468964324494892772913416027581646947750045558925481788092276407025656744661277078678153330379575770939792382448145991065023401255598625619790130059054375190240122271454209941233853647013590552981557308810310307704545127895529350111486805603197951635371923643280114649906339729768958460617803614859089050761077706218476315431624319060180052221706595307655150675652042926421365757165801434590517276850980605255676548233008921580326625086867136172939089208475089149572832568893723181917910842359555710606265227935324032401256743659778540497882837732587907596562733843399084143315345361190391190496669548584407073025109564701027463931758838869454770966394437932359330774938955277968060187913271532325061726140724139489126230932220553894783170895278764839087577118857567828974814709817750785908757738898638515961185057707938722333287277869512274052401075223429962008442525759567458847388768796655925459542597508318992215383277299997617198211752033589516330257892294164715596882696072770531590773366842140701121452836915677579688252000893665267635521404848783508124251678790790344985301796205768936475651589531124975204869815411390045342852681654794995044369314828576547674976738547453831353848797522020935353475856909124583624794902220698058069093038636840743456571391841826066467855445282954520892255519496018041017614330649756093959596592943905211688478242061795273157040913686839196151013987610302773582011650656270929938809544780840070324889805365165312395536986939093725563413926093325847085068382230442981550502332841570077805159865846079337165180551847903636728754954626635062414534588624253812003223962480544338105430195845504663194968619468124674955833566677463794798120134039864486668892807655783928873287494466666730068400481303698017187882726641502048040247778651302792783117449747737473161811315049351698389681804874294416598403759015107871320133614134662799995403101460020048093651776000031391047324411448458807045634561146026427220222883042934217153334719374895727983179834223228429536152191010955209381111888753306567712156795748641652142177030628215280882995435409447809257759712377101710961215015431076569629549191342043604424589922835072002393396906345916073973333006633907795054257820074002553353673847092417999196255334004751489872975677436416193995221006437281388589250285030606502810337420770967222474599973879039770866292473577135452612444015776421314447141587318294119680793551848036601501237337888483686381362137994412096102026056369232808165163383644009825226366156998734216576562745712006315243894440445937888535815015798909340559801169800402281783350208212326988601526703393111832780479910231417682665157427684261497026778321106273946583448252451375560568645902911325951480760287892565777103385666622898018955741731411241416703886276662892931942261576718847213390995068949963698086917734297209598581328414016713543821729668369137874537339591520197934105805616188424340554884200472176801092957794401321959835283813392725690991764985667014930574788769010674684481542035849162907692232566767785187241117863951130461565846978688165811717669328729034813115233276607924246564902824036215985427742791147395120884920256154850084027874546294876344074899839775003451050369820365794924473204657385538508938939811291792906715641397028071545794896834349010957532222959533292951880222735528626654565387150473111633902564454161712514364866560369963426223361101777440604775500177615327400189950692060352038423321167545618467565751433850949309500629093476781727109740613810772397808722633802388092931406532636712994835019544549259103426858265498981624119553716448317691100870045031147627429478898495818759327512437904664742086301861282338243303581458830796398486952127499116549050400410199252109911960693319142469122049957896347834496012249250152190253167315435952649447979511142608167438847463614843743667514442771151507741218233715268955809606341452341684508544357049740364866507856210922098571764425560132976839064602162242089005694139900468822029117052602732271890334930116086913311655127191935366057628877017467003651449642914516129632869981185037413477775383019657163708263235089875792048702375771206674980298567940041334101032270949300907534784148932632797869668770434252454771927783900443466937529328623339011147597316950229813765787671149171590936198818584039837775268348150419783429806277719466438493248533362307518927533564628642599319871106235197369093391384290520150790249353435206355410368657261971009026326892444496801347426413390684508680881871972309677251370959888587863108406797530442637692707023062105531957147622831792331400158390933841960188396429796045947362059882421277777061641551435585229263927420641252705995527206732779341473446915835074412907966503961585358137206908481850338069894486473553953542539262948339231516026338256650933035312984990324568065153579528912390623933156656073465978069640273588055723778330238951291573777588717594350448711485258453767251914392803330524251841945549151529847733040835911762695086472881059458385853446808168820012806051780278258962650150521613534768507758286917040540856221221073025882713525470843445260633445323204132831793029146705632578128419358774968226797339712826119139532279989259087213583284992924303248291026116805946922529512685715176730806446354198614882073243496628515184978343022995648071411957543131214310294304584867872012233474283520124287819103099723421897336710439068536765865161851033436180623043084386008409020802991587560302713441893302117279358934276060158722370106741937147425522735806751381059607973306108504515530726887911682929044336753737668073172460298063060433408220293211476897221330195965623205614548052480357737808393026241125404312308231758352220267253171575865044483800185537739469489339573616622591085244007458342998170365968001513252176535845102547899530593147228056994869285669868926900934108645113296548274026272490734221480007542477229511136161385938662309391834103583852842904341757296603863128097918497494785485961643684494612168583212616322821492524081366776285601190635767295169358473784255513776300426606309839747126188101326446518505299993469841229449735222881249312137139677472979003199932738074530338165855878338465842301848707355758574732302978981714512252740338173200944881941610031336978825731608533727322614256462044213526696998846642991395055682894997009711316675282790199894997224112547897517151733053877819212063986631723728950488459962943085166100031786128485072990045699069349481135424946797928045529341311800152217890896169762590123353995152663298022606451806608601550682445168560371461857439613675850222918032565798113406207279155996380200795739548937657513992903931611952403565894504579745022256626604344592863504582327925663751788246819806934955410744154484047660934527683724447502191700061967419654355775469144300264806576784072835254964135551650306736303905498513522496294717653703217586740704127395873852109615006452273793568030814881234271050764566523227384185790102431877340067628392380559848380077295833134140961120538578954607504888353975503794993392630553761384775783767870839240329701417541366780134494636661130975787126922404908296661686542875636730097428423348220148042804369360557885113281040630489232915953149504286904514157541239648325340481548874115881529563989756139688098371347182611823753498543996548436470298671428939503772787821755972188857734914432409226879906338541572492349483579542266616977354660898871079524559723152897910755194795493242905161248195691352511058632430665835713977633045508479938337773956351271655134663618775579076397169788077739954084806088212072741886859298539980622628881439917110664693174029223618693768261381339289812140687641401035138187294347145159649987543536989940935779956631276494253644451231934165977153329875286658347494488756569211428440707659767586465055034407086774159440586425763444589967149383907560916709009786613481144727611083332588016391183926026784326384700213124974603710612293369369077432686934672198907438555280196688727197908984413063227605328088179413452309878716392210115725385611176066308641749512619533647962982812407727661407652868390031268762577440279638101319176029665093916582649658220359471674548204421993094788901461282641028336267737235216845604981474671955920980221861246348598874109313951210588400517661622375780008132995016547514375104320559889643270974328430629968106789087522460416045796082464251013022713015481198143711240615768717618414539799962711630212081314698606650483341078964537547903908729717458952761023101548280001396996248639629050246215908738728427500964129531619656587091311447267087716180055366836495825792671867129276970613838668719589896489600225869277340775643196503184876411259605323349635367482417010618831537773477600903403636826323035482107231286128441825780935434139454469255542495261976458046110397374139687947874458120042301828835154687794513810656887057588749291024814063340902339353036429239293703301305060632782799516283482926716126877457036972958444195248114845532793165486877795820192618188133399014631266955973055077200204904154288136652218733838842525130567432526730257445957840720567767460702629307402223891067396965676311006287137059252050022094008374044594664963035182892782879107522854661836775034785707153704809419474014346147537311954044165616963361006599685416734681366436881658516782266120339202242245386967223302141179248522485227471575254426479609894712904923101549660310161324874191615308858035306815905667747201453088150455507699146531756875042599946856402981643459669254575691035850623290169823323362917834782900586193233615458373486062759317023829359044433297828777127304640059157625461176611150309968712309619457285490874881937139516936834466150707273829968111548210392823000548414097782515586300448434727906369672930386959295362085908622397008723583219297372097189287811166660018929515801452770529015223627489975356275029976562258301135721555507924335216539168474656640958080752120055058131299338583942847728846792703795260462205462103264629276370161212167199629960300228616449094202332017264779031760045134894873569147118643080436779771607623661546033316509769127973138674192294040707557580247471791230057418900406240529971439176254776838090339992700230827414915741310213992331205226889691461419334026365616324179529876251726840471183285512720127083889335108747604870711369091355299059992996296294866057694657837463834233557881987785992982150828828703062347974091253186957871513040146984147803701504531603653979670780338444395543501143697282319855314918795742628196534122068479223960372262293262751855915551890603572812082537484837942549715780588891093356616898158690606739974225562649949071421522698622160363562284977730140633176502227815332052694458854868286629986520974267395209175677046552220681521347691421815759816195292246715919267217726616952098372029036867894856380992088451804504544306028333773290537795657376967592556855767874419561548888290827689713091439231871960324753587117658194395142957473692228490848191808453788751884157145118112021474866887722119661307212283633517637834680973348165999560583822097569689002270296797623924212842855628657664802407574459814845613092868065224779869973780385195574668607435190173440040819947520490436905998463762198342189386359664692251135150989594280801856538071035513512755195119954712009073558219490560744972281933202030573545763213352778304205851423626383875415825512962713601195000988586031228782563586032149596974512901103370555396801329875747951563455849232172051577258296534939094506964269919268592014867296741022893444080698289841822562122373742580358696848586272334837695363905162490021520113109121917652397610817411520435078693491925018073598039667087819376334925642857399468753743686501196408273194698841212675952417819138900839228103727614741270885326125795778720400403039644851930498246137297982863151851983963343897718095334599227012031569657012662189959933472228821556713051482140180430883078134673243913475169629525836741240686428614650465572219078528687795397314655210199000218183601120669762351853241404535761041601427459843241381814290510538015253022070296310842050711332984279441654358287363376169472803132778208211030894742052158930997372783711618976827392202464358617371710256587185869820266406928608361437561828753487515541068226075604311173607034334670355413177819127772894506050549922713211623527407321332735770615996506359538396810197518863171013161410451586165658886438037946900431440432778757799877445709899102580459209674468246798354197501264662913722419105155131441347166756496518285906078054142874997642718292895432078495033163412408895690362915689554565243106093711661674938896670854600867088838121255392212182653850042748186052870447633592334877342168709357791921062745824358353287184692092524860530441303194043310695565152256283332171203176339836082785682305020183725599394671202488206434401002403370309001379287520232862230130605061799349280678353126014849304074965206161329426931565372037879282367813024901825671033732216524156962822555590777892416056025057675103434448725623640625779548598677481650561320208159948053166197162737459640847774318256606104918386131008087323921323203191327402201210835566870841741779119496512355240105826309236192034991142320272084349400323610760330375838654677197841075285159833164779911369683044869431813003706566989608242286205670736130834461738803170463246407475156568165508177389563529969936335804366137741909842218711504492787870190849519646344113163743080608864652947614777682292533269662635407308539436558544778613025916764098225643634809347297140492762561525148539260160675784216826916333215545619136007529449900337086708332603964571300027052331421442990313261740651524879973601563525218736239264806134162446088743685840736884180949870508271791079826539557007036007619824974433823630349015221919144575324787656109688248341695202256019542087393469657578059452847229131441434030797820386818958160875986316184082031045051787643190354262613287757560923232123762699264509986178228666604718633620627685570664738031516173921869985953336101949726939274222959203155441204062701932616594139266208334530158060440450698662793169935627037018012747907405854391432752797994197229580749393734871111056873377530826756548873907049087226730779388205141878125374711796339852673077540809749788163506868112078296709330419101242305669076789211667951385378359511722896194708610283045842018652331097737941559083127653014275103091350213817153816838927339850341725155744678364235378043486622422875365402262201731321850339616129840162970857529299000092227856474509027579746894300568994003646716226482866691506527610489301118026052054600083244147141920015537996680384531552926363453988939220105823810977651872343440313678707809176467716951088367090527922211751345469939344925720556515261796619359097067490992428066813424552479727546002494542899376670017921863549150319550939544094206613493191590564136569858530266816530952816033617725089026863811349323954608595762638694415127827507329020083671000230912537108276805442820210508096118878060020014758378134852421653284792991375402354443679851585483449458170243222525267029501650992299072919336067067269986908756121640604028663756235944992021009643427717622536607359603933913894407742696955519208200748307589704131780531544233074235173335753407216144779339550786922023848259431595792362724567094096506502692317662847572607922284772795967142556585003618441791872493126746847078918148290623118040033320004499092212376860587165054915176121557561520059189299234368285538867488435642356866302040644631850020763419001090239679564202685820770450681245591752627515620689311248416256555350379524909662529711570014918341451335713914841664785914992328902219887785293517791942818251047464969321479231573580180545243628896987845777286923021739696211096156741774503299669635431915479519405973059531921283038657377041612812575316344572457609382252568133257209248092826175872973116974723038626848726314478041651302146037274665290724996963734509490120778118248774045683494165592117749061505111932570430812126809857214893020601569280423559213418792484775823033058365468703406868109208166381006134953203061643095248636019568580318310457418088614354663961976316705448816378508735366432123008650948631476266657201217345023442555210495248739932994641283664673999847636717944930233820256115482401649080955761673618827579046948925794758536261286796331557160630539152764566650712799235617056726049739042629163752584554256584946952359300583907862418161802133324062087266028670930101109074157203314597057598139491935240238425109534423900497343345445758071485093218294227508267469083105536194122033552473552818321767650895189913865202960761391592878119413229024202542967334644846992879259212764174448406927949719144522404743760436023444994690295461031805398852043015561578301695725057912162443719466313527130475075275819926827232335686172896174585764044962318374610312316361631314680586671030053715300303226406256618830132584397746640381240796084354178773234779813170706503580821185485207382974814383450429686024825477951413504433238239616448733925490894363644047623163767576234864525927290347363828010256156412805879744681734372648903077586966195733982642128580316278685590368880862943981430123487346444243715784007932634028695381933491993023121975512679552727496113701928529308598342906598867489291263158629911890693011983631034997258899787251703702116101149874860098556388932350222604808617132080641930552074573201624693333781152285093441724940078645021612850572470611939300807253957182665950141257359852523979295536934015026673346636497059791471424092678004570960700578724585598904751624613011472447155191103310259509072686562636573617364331958597788251397600502782308669861105242978366334769351808508943647935290272378258041795850937133714263346310595947961012375773621603164011835186746268664302655600708044488170307539461205514236219646278162048507761888867425712483158194952737170264274581986335474582457744634189932969936699945042480096585316014044434164028203672447088157300173047816723061318205121807237519933198791343830961069323325676111072773955220551941319328828422130205003388389922440579589393911740437334009620996532905984451846442831826228476669245788533979226195141055517842985390674118037922600528208962393384044189915115457939872414460528021460268820496360684222584067293171077900117229397473786975321695349545876009316019935301893747532001818885860240284571797860313205823939245932584263963648258518719301810783095046351100822133440014332004317644666003915456995353120795613376152848051387684614491785530097868102138006942593047295641345639551131210696284177501053824438533696922507827304639786036911676709607125864367059213658251652509458768302581119017743391054978370081252991702572792079491262145645589303307871334933514585541164474054591811899538100015810740643020364992992794075827353135402727146387239416032258158402036460213891738344208545557921742183572109411349437013653295245068954081622904902326214599349705390666702311577558222461205370525586750435257390396472053277133139412322817178868359742383298176265156022726717564225511630140770287478342809847398127090312758472325403231049623949932750780823826074808502062427929804629046999406633613412435706596676857228077857107486805765492958366945582480740945327260425564317041415633462441273806067732611853782028607449069421230629375665449102466111614498043737530226798419455162009210848715168136543299957449424858083016799996381859232902755441856767033612658205317613502095853847444704154388793575302278764820290976727904956512591117358101836014288876076582324661515135502666658697163002382157913499602395184439048412260170586753930448179063967640843913137122339167651311283136683202559638746007169918759870759050602581640426922476138651977583863467754477968864523546172036484094951590000640609521690554665015136538093453235808199571102431070764411887316778768072143139209908824393346317715742353948664353630404941620215721902892936177685811199822873284286799500634355402585469996776359146326847375820229121687475253317902904913421690426626115294888571958187922018732129152091909837768191870877596669391599469627203972856771388872576439066557389844810088676381919843267986326410267433708161258523084744012270469633689632634574888092942140566444914791569188056703804597404613455603307509974695434710990501935648737739720753101125233335330720507460683300896573980576060828530503286326818098797039174788527658304518002156785218347775845242717462925001347531874267113710962911653956872886369797270397542767317495101542099494727997622734845613089137792994346360884710598261586984285631898292208542077900027503429467629170670186563634043277959993822515685076298380227052656029413189081021445917677641831453710921519051587455561851047360100291326262284276963487748760704996523879833501496859919031078673955442683224822916039857543477731141558185234600611160288532864525418385805569109336791319803277613808812961534228604212631282013153621543131455542259011168032805822700933651437989937444736721915066453499107161681354350241315091629478376827600588740366277605050586793480807003171249210914934236074080370690774610560776559778125241962375767977719556384724453072649051739129897339230297998692312268412946984692746338557023258445371477914452257744995040394657987175474773093658505920961509840345175254107336954738980186714712825936038361640745521225118420609151615751733351152530142777754243922597042736408008177338485331795340810321778150218296282847809536029015796836734820639974172824814767761590142623954406869677598347120667498037748975017668287731657159769916747043665259055802287808035032651378394466269745485656268758440527165683703447523412379966395723544126384384994985832317716167474364320208186453510672547349755260045748914269175398096242034644426046847793810995792035435554794881719926675875540281652216346965980073130374788768009709121946437134955599318940283542513009185407791648145336175816044853470642518742582115387694628983527226262516645944071098907184568468595115768977279330071211169031788604601809291186531247377031303785260667747161829151012678324567387265353672288267561406147686535006338206000096479809915716719413232346968420960056743220285140079015213407801888789598283907838311520312107798437032639857632824205927185834091356360688525757877806242424988168236626186022831478367677819542798930980190390214776276422710824296672841209513121722106216040322491941969120948585381134654690469033146930523848788412536290323255382661069720635060834364006185794817668998570785168904180563149296198752652217255105467974076330824670029743575497672117542030449836333426739546764009130036780047803371244345916338713637604757120444183029698821507431913500056942351767034396515943065658269426523303368152969462474564255110717083190693703635932970211767773349251861687672242716109957667935989049828832688618790164304358210841078653271950471077542824947616412207014462587469841997322821585889493654441129238083010674136633081250958592613719736080997174605435406473040333863034980347468083938262531282413040000910914956889060642933875839238135073751480777329992870418861195247596050360728169708962305622700040574461514601893243422981986814037223495447773707016551500189795797630894301273172664180391099030345804814842827237390240621269671678553165107516249082235738598039967403717341966547136038723225798515930556429632224245606827867835373140304168821429688833409401038905035481274648202906431017627599737157498641839278410783589910409475168549674453968477207807977548023124354327547051944280387824526853985757898285325168664724145135480027069902012563109701323692740329533112195686716847102638729083953131041314693199197202780830742777484329812776205795338203606449959350913274341798128903950238063708477120253716115371098218383569218858852915675484697955113418543543107769137152142577739856909869520985639872900433168954977974607261418833450138047392116163563657769982990490304760133669002623090384542285366133720233904538267657437016408985306701418231869712309535452684519229061115110745068554411057093276939187161856093447864895713275827797222760891030902451728565542910729037468175631379640781069203884914329404215475619555866168222906115359899480041836718310767022793354826281127139590664344233837913053868759976280334526537659481320884160232786489472975586038323428517183883652793445536735677630802521419684071625798390877992650535536502511996536384321135654252891835783675061804064574194465264065512099053463355488363106801892566730956771518069368095259005908775553497805350970735364120800472231664179748622633897872351613342020191836516690454062325058186800254118749901261751401971830478170192546407271964905271782323912474742598179845979439742343883743725979022465860896895980042703571271900079466403500233153185825051877924932259455363798806497148257431561157410625484834014832293470079580946892940096606717243443128564207188055724730705691078334001790639960152316785971500446554528016293235713774238501025102775947283003115089202912705680307494146251548743006308621873173856161900447448627158639046467650384588723336782792778017523311801423713256702317117032565109118863745815132142868155109027485353968455273673452831670574333290200728435531695844080828853673226050929671979196970355409716459678679071690261451014196173429235628608024441729461447728771819013620507468024888430969890298087705986408158062197844415633175483015400363514531941023423346929100344236192523168666359307477087453761646723868000386436211389921757086090140763171863813930113671682721640626945667161127627800494044821023261290631321530514269605751813739504303958095298114449465599159127442902851605150002542745309881374921437002477092057217884446763962544598976220906801251559383306638291363849512765373541060150767737387255837147378270964043104384677561272060112034577310685333656187641785767955633327790553848083067159587922544915765524451619068313449732789305520278742424803433746485601312217740654029285728314765315423521732551780198564183081277144080403962378901334845992904700673705205044628617190447215881482900260502334642668232435822565637892759059207630038880953022347042289628802676574291743297216172499333291805925578227234862731900050533973117399561094073771814103888403307646147763056315014451070139371745402028596011550681348779092724655116799048728983740725280538941275672710775049039516903513798005865606512774202574268661854548590058485596018548715014716485104878610390429875618188452294318743578263180826335003782604400862597021965944758987240932815871375981641830556147571277368188497393167578400927236431088585978368959218437183817580027914268754966279574557179888624632042454289626319183269010793108908749653612300498485089229147648575302403370069074642829248505289230833098820407164383001028973218665143989890900117555429154916873948217778791165443515038626003074411941365077894227072470507864611834628747827313806709999248272555539647247362742414503207499209307421899289466461763698123285150725752769645264747727673658110979137625911567408187609341314378140656309148680778002113174575021094287110210306222370216327172227082244016062680536438123006368308893868295807610197202884720463898773368142733816789387244356684135582262389142078206604888062964351113828570075425251586213011149870712602590209730478672242223196025271344849845196479234086003168794536233896312879716315507895655105604804613824388943012283908078916077471066005600764994781298943319728136737841461169985908933923495130813310596164118170061355099019356822893322708288453484123561177273374293841992944833205608287487787967653584967902890876933881959530785261701764660149744568875073855941167648861743908740271281224618599276037599578430791503900070383353797662416940652793968903063144640197629481643840381573338247055219796132428592687012254769380209831167434569359397339845383920882016613410918353936931548066293824333888933616237217652853701388202498858308831226338425167821010466937775596559488865757339702269135312121048759146207986738998079436212427198783414573385117761662026563201416159901063492718987292697247940527199523086340063401160667766582641927870756576891715675782828298347175764085330822386371027809961990244333217408557650020877758458489986023238885621445931954215115236153877053268067525890107743630660652164819775747976832351770349231401436064806900485801111302067453164290920081630486720236392740169826556852604250586761542861602284456671536106592061920861269799371528447552089364491513481537176762881482190351296649907024531357020983318864893946280550485989020397437948839430569783485009040397124085318448624755506038058178112572251499102757381925895983550154559491986931412931006115993514721691361976361896277899963909924001133022204370511631737961647599173331787935285936701439968581374362781196929024038522106685955336791068082273975785468652502386387454250737935715001092327438640928471038827156197031829830295339181828274561647530792596701937052657888457257788301210621967528542916519236529675475176901027059539581821106803193087869815364353281342175560824036540808112250401424873253355584608817163167504420183665886752335521475554685472433598086736961232448986773132876567867371983778982075255283347041182944704773273980040200094200258479073283080417457521903741656636740966035447312986568553166589333236947488220289759146388669148317436284926614494634291508876376301807911903219702115338797571842292214240119583455166727173198146061101593843596153614382005888115640835725560371477577131576004040851050874244099884758125884215523193907637897996551654476310952868896471392798215496632765435622866947513198964517289578670982821662017170535536787694811764077720501715350953657599274878432213463574954693042603597644556964143171546783399781061504570016536865198776050616379019550119555423232754547287084473619622601157225546369182497682945692397683018095034270349069360488126686405914742113030394437144167754755790108965934098095913399045462274792325273233735403430807330426428919412039348980190557435499902577632647938078523709378430564243597599016685739341915559756246150012732830511217170190942256113495241930855486518435034605114253148455744676720443932484375928038387040357790584884604001308521341639707374277665626370010027044096573305173741663946588824231466283270059899801699500180486253635994731041215469481382779068571477160796856962132376873360025040890432686018620721359247916172575912651917271377222024971009111004087546712841503170932450630542486149911585076507746140571439426419521150407641975236779095348659557790807468929750771713194708875503114334880950334838363687036548749204106672696812471370661994999673288407537670201682893755264219824592886287394686800366083225828735789138707715882444203535083465756211330674778310992505058960112519217544628494526326112271328425964705099603436485985732535766892079313833068053133614276618915685568366179948130585398746632530275091514085454686382377848373420616287657118169681679676299001487136054046255726191082547563936363483429947801548894484338193006166247363999506452872129590022878984335943591865186224642606096585171662188922935476722961037187176974799658712028828467445377685487991197756819770596756391175384566325828890585671103306609734376857302597133611153012550553127401930791497858242095785411187722916499077854924080267584230036212333862209224299812352609227739127548486779639832840918729116622269062415928116613094576446890424179115927608096507259703863731366341138888636538982373235547589242201445766582318585042163573753858192664769715704134225580055362412356090065487480430439565152722338079979088984084028978978233095327491058046102546886502490270986752312472263386262253456307939899484106804875062191064454900976222826809929870838886074691004959121930067921502447015076582519930555795236883829817211353474352112449646997896958296920346242839099373387906839761788440042205737349020682991264268469924073115688751041593525893937981158575326222277392297949284965323270703331454927253510502559266226280424723643345265706922799411713138862969693194064286833787379539660971218871694773771107664911826764342763751512642768267460335881808673634482864125386223963606633939435023909285263279502217683355684946860046837671111869068160534517459677776336935527158479351915124428515209630776256616152794614189729413381471125777180341809374090387582588710632207287800293232034360169519357187836866775754299465026140157800887077965240604090694590333703145917419763573279159537433017671789991725395256404886704640201202767324012201351986747448494515023854693437732078730040978198673644180527118003058887148011695830604074004104334930013855674291387644813942126135945773502507535606532815668898792695050558632897961729207573472976494535149951444396222830505229691684914541124263568348201258794641319767473652078976575457166530054262385107159421987682764148954922990137806890961835502280982843939070111705145052702415237668131618493826200965593677559628061630057078423330501146033609120597216101450634492113837558426051499626119426548948880191725223356642176165245490467759536472762954172996075686751297154615384963956725945737026884611434448005770026468006896825056285693659341483140896935679280532391223946696007933221751735915271552259361633215401102895387913919113588139493375605808562303043628294739454827995716423373146057260144064629169089257311114506597864153763435485125506492305347771266283413435125097682859429600024640313309621069587417757054094132304544723712831711887167892755814141005860003996919584122179079113696832852961936290879097615094035578433849228865982187827758848900061779533386530309739820157214871101318685908698792409579690269586766725213101435797503382085461253525561409524374085940121010471226297254197758014808423640241128517029131973821536985842951138004060081251722245668115908394831497258416214531270224463944821634962977179915400266689459620900871302377428778302795594961846022579483856198513286338027276278752989782195096813059078898320708428324883348306205202705714007935420003635862821417334782058615961715303492600291751113649041479693675321991156286922667986485066595454280147592437392692380891118474571715919070179824335972814908909280302048246634262874328808674798714256291660291534901701490380818317797827678275545193733793504100416678401984773073195109699699771481835535867865227935089962548004716457695406351340170882289326631624875469944657759087653124564023464080380343705230600456464913591030619421768883584353785422811388915400648091496265772519196519260264819953070465678926836549312148765152086587772384943753857604295359926382451761447371752196522779539848336927583286220248162096764863641769104509852680036150880300473118707361277745615489522034804693706316553197821262141980235760487216230317811816635601914838301791450675681893125430607412455762337939247065601371709056230475418540938637925333777238450501918536609484516771585711975996255944531000360523428811170888345991140882676463244800069808651243546401452752328354367021633146303823607714065362243356345366808281787825744305128912905242320662081583430004485850599912103452719994533574870927319603836601375827940878328672764698105838116793075975313429315741108358082029348060883485098049640266501024839772023144922543142922054439982310613079114578618943574293874479495837179218928784373969855131121308746131640217414039375534160196136261271243603411390119679927347505826522103759302966046811668029679608764103104211045908449168318197204332707620208668214333087745810991851171706501468830919938806730098212272172244526599420461759212845112885194717089297068756423379711618679702145596357315931752927949097695995989489688080947709737462731043376611150178239557443618591818783670053747906936633733513520141494362296767266439188972593822301047933644051358781188544562483479144722461854460792899520356041003789444436131727091308631759316126573675032782097485330167405393946441761145884898608813194913871019027522193991737267288518182932247365865139747431558053853812609604299687819363151978864138037309450303499830623975396639581051796049358540999475054705692653263737867614444399264274725145961725378955085085739865539426439790094592735076377658535391269609076487390030197353799361654867378202555063896112931042714315882980227102582958000536822208480703131236928804403670389000233321058391101486625222591781522394832283766751289519931525397922338653711922602874400056916784875325403058297944078647289918546688243009224650517164357098033445736221586258657621389426473531660236726110965964086481262991020298658393977605611765484010530286806851839403666745898253263301163929849342391269011171123663258946888142084179330729432417008474612857037603112484801042587143981056988591727675660082884680387900216812424823529679188146140450639106815667699529407298631342345301019818424102507145674292583658188147328557482181240433607300139797526030094597383419957664488319401986202634471880755165696162905132417455090499296124379026291425437525355066886476054659972367402840916600126085779742070861471593314230107109681661936449806311901015561530651082310998473818240210823109915288485982758739917293537008733420333108357937075137402434702704230412678437072686589981555676002165074415100288180943840227270282607039509986477662632290096866350520607811545181553109116460304326043778125900203896739657680617881778092574950687883040927529312494874021335078133986121501453730854135464590179775217362386089932882247694301834134848516009662193604163722533320270697313356932957485198670329059800522989231874861021238091776432324110258886516652186488410080067029771981245724505013792422781278343061068296061743599432149228923629445222707751125343736569617506447073460214998024249763958342823124647522111259480644536579884240090404541437961358711231987080976614524905711233793972552015932733465742261643461750202910526008017693706569504076848440578999798075491655895817435583739084078056048548412853957633715473811027064110671381288924845654991914405488023520010749106706684224902295140299530149063779734978783832843474930776950199571663103669906274366335815607524688676371028784686327132521201835545312347285790423462739853770109192874945936227307588263595340358737021247688044107926499822757170967221210052131881682087193901915513668877041702959129677310563671508583886956481636056531081290640841424302355384850459212521057449387975754680975406233416339765171831364997893695800638664495034259539097329864692817321279048626807316258278721991690776498696392767122328892086796647427691560105663628097912674205434530377952698543187641286315225749177199693039557966068872438904503544619712284475810173288233606656956360554311270715996423611878764363154671166334405788195332505548167586406258343639027261247509090135672842726317308349331229774867767138360329090375268488867875743361959079615586533653333272554242445572914417525068014884478405718061906301160352091214544462802199571406344222027075221918258446349236671243089608876140646783489218733396050297397227335324822193604690844775065784749292602964104671121488247235680388912121472327029672377983515097009933486406424167821889130943769253605295868445214752897404674346019384318877599122145953705473151806322308819458099933533073819268790338480332683721408920462025072014210444786989834110592304252020325902116933999830067764469193908068765598022317017999109085327496407484039290582990095648770182727826598283735637181699900426410439732920588030281400678125729258596027622197123506698537220000884728983775469112025502873236077740924198695626950476615260309152448651045054702589906218395983049520590792192003004515887190298913154845606596038746091877678446759525836819870862311826039978406626006565324612652419776845502403034592237435620951941863470598755117626580648248908572824322303913482271222915044483749959657812146699411943888633530875979871641878669304503193862882817954350230332278863908250057614415819351627489759208225106963424399772581616406637705106399980051077307825244074804912072135331157726580567069089353163957620567459351966362939902583133824478308552524010182151671693130481476924988676781978195939811996204586475653032353525843579840224955795454347583788873902560974891703280554565906912615355990342181053674610215601047005660713094594262309322141461028827996244093785688140079865142953341035200632591174641743800289969213165592177907027019132116464283308981966528014382010130401785356875540807069809924025524840261272711577965448948465045875147508280383801461780038541903344277446278845246583872441412342786663863668000366629812616817914968693872345146043526755824016143697749837051425582265641396300477251294616832977410363062450214269217554587754913330744081453773914243852946843128339450694184739624222139025234279853400981530259894699038613242854292567794787504906295895239651122272523991685175714942844804831277169281567141511878730580717502717276052046803716026864142892429257645005960300203022858568650686981845308177995483319967822312470769330114505315097529429887370007104426151152960608322290321576849053659137416866538076935543861978704259822216033557953548331654514695629587322221308221978531690634085767514099830279357136320268890773202901664241658537557806257124569250609573281596430183070051979418342031202623058377821370744020776409964356376587306995183827909065441678967632797348438418464792457960488107419970670153592212597612853588217496899400608876292493159339735796505160759683416800756259467969003516369239338772785959516655400602850617372310554168454654555727173169102737467197456733675892639809680316219990149833427977044673380019620538212313974320680046738844491783933686290889560448761727188574044177407285082767701239250028235219394857961415050601447724415777130111179933973402385397416422130868932908979357609591272881879653735440320465669351894841070720575203823395843718297276328267189658043020565139070337082531759248364031405071071746768299021426471687667585756614269858775988432249015746717611008875950893403601263474785088178058258125428904963891606281191315486141713558026666675285331181091078760229357937719092293435907563352398863564445641595685289747028989324342235905852564992906679114015761204406510212244428758688657851470486450076454638936598652771337991672438554084888634774463695738790542709027088276254152713639361200243474116064787750459142111776915886427195346219960850150013295194793951522549657653919632442072506624718587466556869289214212845906505270852017823149758715060409083815891472551041854147140229439212632851911588373115135792596167949617259536565385845500546931705203790133502145876686525781281158337189059359367128503523222222278410900776516880180705918157791458279117978851894753286256428426387784164825746512536929984536602356323192302483805377983876334829714687186491058922323576251487832342418829835194597091613125496863704069302481821766405739129993456262038404299594944603388539806177900066772116454962502758107328221866075795160716834562529311202070436299587789463040430137508817638801216147868982973046579244439563048786883579827862049640595206492103934064262361174275976095818247227836995160089677928286842068657360179729869124382903703142043023981023696357589357152733141115127151142310518503605489998802108316654232064247554640611582664369834084226830892785718858604659136371929083288132266627816194006295879145230343535416106173917620501090739167155386346174287473374587182736857156720337186807141211784616798377300279321149553349151300839986942057421703418607823380052700969689256008973835081995268132440658530405790996096098653512775756970235743055080406999756926837929275275861029559785904297550987004220818850785833540241261342241946113619234882278137356634227118783405452099577691047388545019125841829468632775920243907530912933970819731280721711367336164000809036027370407456904305800066175476402446019500246228629626390427687408109447689350336309289815639740408635748844331024376571883945123913596541077196091275374579750920162486673789208487098871122659821177518022641563803967474701031923737522370079898131684263566379864839690430336816581194089522142012939886127520375921321152761194720887004545974278299027117257522815911420607823982398968989268831587649135464653548745964015343855868487513174604323554476451738352122467211380752353493995961841663049585583780395727759400807482744230982615674713903459667504682847767623931180024820102229327254307124059504500649702267629657211988802704273602090722863386484037187174902918056100024763568933040137495130676933533514003079409198382964504651541726009182221928578345000230344294295415515083152833784788831032723625879969676598037616821140646889475566888350313341308841274627059025331227522583569292431621036238566312040889202904545478948538523253918455141460193720091962259467195465086536242604694705432101639192615916933980567826909194455662466218390070150169708254097772567228453381360035541116363759829387711004398195808849880667357335065994327347116075439505327391781225593749453478458418432815065202218084101893366776047512185723937698042623947527677633534529729880766135671287395880667867403663429593254325917846213011181046127706007075993782538664020552246197089373891990683238594773792716645190677145667932167733775564255418891593871926995416439312961619339198971159621634067718190541125263016121552581733624308457960335070984681857526199964725946918014425752998568815056104306564883003545801877351558856255821970665486431830154232065018644416955685323915196721814381465434918238142650871462379744421833468513623107946129711338902732990496168540856662563460641958706113551331827491070078420148359669245090004477483864488247663853107220841223264619633157604137090633686876704626696448426371226397582134274638562958089932146207424065683265998487773573754465000204510030280248006887447329371559690641442670246479068844345750620177960026260660251756318798187570740482427673018535695539094745274881083192003508323999432663789923858340954294162021052381885616611523944441428222071442445539740865038976406964412683968207825445269021182318907347066819606338814894006438861998754647226833215338986719923807213035824607389924004551034749888001965542214332199983416204707503830838043726011026005071473759839050255730848996503177380308480500230790062580745700416496910884925638048692291099395489958078638480574943415081403454148052400317791808032593361368777496997237661212646114523027845382472944197759846867732116842134941919179268265686967805841873833493437195406171726754734275602349382379286493656810612966406312737409811701071399673796660572783894464201955473347071745795541242759432708112978523775395184777036730745450691092911704052860976731984927698930932880061374838089868569879903403967571163960975256949356580069429250400405555455525633257606489762865147774290929628599269356848605691411637981274679104573908863773630787645481282234172736856881283029621250842000938341457673054161138548109541589951043299432992658827529507861455945251439352860133815512062474891850331286085884695656448814896287995448729927368657987836153652232641926605017529842881051153660387574691492069389263641472717863222483375832844685902186633187597390293483769259606472335225559355112311404982199628328957485359749145307947537862629273829830394074790713261716381746614072467767830923743589353328971556111621058787843015360609709465907311561906466062597505886932177340285580479410491336965345259843652845010763835126584975513150618188643363874430972594784409347671707078887608593254148460138870074014081958462595341641934774517666137556863059048033875489218903428405364937872910387744127813619300286257101076561056706178164048177537488114288371272967222251879983231088868113601830332727489567784615065130723262114566548298530059158849254752858191622384053152891315363958050333183636361604635478679466729384982991918298100184204634350549454492940680971713442571937719154053467976476445936335577986753115656660934893251383224947318395882645001340295457414123118286199148596092575100052672462156808114701950560721086919027595736891974811731512358473625619903588601240826017088820389190651810593546173253589301592704782155380198172028558890961966035077324801495316538234504550822442852766290167738162977726721282807571190371912149189429985664517721354049349863064862545913491616019684413854411675324109816967056433083406775258361762329190314169257108714483545206179675458078005723512940825846311580038568144574648077000676498567865865112613362282333478160732586496223611878913446436562796582429517896631521012935801286815975772144630004314063254709481407831290849804634802040354325454911467292401437831603510516609632533200801335259230152169358242608155251119429540846395139493286541334017056973428461810375078676675829595977409939444815946055235206568795447628269263758440401459152532752157290824725028072941950439963666568544928359343451512326994212185362501064945427999212128350035617841546104349927413570675063510977020719380375691867706656360416572419490619314202029045154046807692291235624836325862169656678187891983361453069134574880101188842032223954260701749683117014263448743615721166758657666093186508503750909342522063775115235282691081624716130223229112348388442802951466329482104826174611787994169264162079022432154571770093627216991387927940443801868298927985476541532061502439035011488437564164185257578920984187277060462936110054297513795711584471799206067501856925749269383092250472208673354550050403716334869106765439835434158117144698882526863226090906258954875972049665710838557156918954313727053580594348218779728486029922930711540249116829795412128404098533311822226436427141571661495295472821414323901730102905629923939132591541015572731457075611913338497976549856884518799680402142112012355483407180492991830202088186118711984325062714263858545100789417732869330003651609327818541856428105253121283025390175329217854452347554950385552105129846168329613598746802788531379010547147857135500614918649609738168894995694836610968555363492374436974840366875529383566718974553453500329827419401231703532010942760175568398135298399455103506464603839609302532905483231506564832613306765851270307835558849153936222976043438886594725826909399983570952709047873845490900666128146367660976569322013040005952653771808582764518963714783667562501738441091987369483903726605578723384831299307566840345399947504902658473296025518403431763702458612497210477819023147062051984620607715726432591147690755558037199007991668825848426393363163551614272792017888270199168258971566952796912007173438041777106310954267459546194387937400929313722634423993771656132430076317439468918524205153556183229356142247953690385269840147198152440189586089865774792132690021490488874663596390650285215138859293442462449303916875651179993584945076730147012908704696623360898074825223640086713083356184040162843589417348153695099376730998645337836153003704902427481366342443686789495796924890650493334127532479344114272208766485076991211275304587296171307081811631661317793709454156905601700825360177565345596396106602239534812350485128516476183946065844398022939940798110133326241936207423959088946155307408481164134344373065707389299806087229830013222755127728250372041414091844084587307458425814026485326389807402476305775666244484308494266597769084385110496170574944103864177423952338450790555002083176332964697106454359066796091496934798037814267325765212505149310791647578245659388744968589367561930920176891908591484076798981519430808780670772761115995918243979175230773612716057533607683584146348684220138743357404241875033863300727016063442138937150219242480061559772908191860858067004556308291651486587072682647215984039390109533992458895317447857419974057360740504938940107239376921189126005004481428005643008071541960000458572238108176143778049577692121374145341358710790457760996792873173297765325359717835542987997269448603301733808779656094490078905601702823259722388565916036049947718795312599953206074609283565557528180738940048635962065698478717237719813684011141072098817371251201836121794214115599552847527376824983942244373007678430778158315613291062936654309627543384828398443184186021203215874074749847609692306559277698298864595966383892010099397892271051229633638142808077231484968348584882000279773717810088427850526156579257770473556690604083695770512213430182894674683995566997012203005530298243626287322346318453938038110253552187888226757870107480717491557278633169135547175106664342312227977964793643942816673975132295625747703575200813224829882185286191324325837087360402055999076152252235069169239365323210332611076983987992710280931777141849007150640000092590539344621002266057273634565438913198604817453513334673787425627294173822050916625715414462410532096840488733637872194696692552201081982671309819224916376220733744727218833668983203174059419832947172353597029686964742263691423631885993531723835782969858853779061410594439755105029771075464526663474536216823587368618905904172740375373541721800935520937984332472228693181066345359609718308020356160054579670063997779559018980393086165750609144938246801126057065870365432831349565779634567346926240409259726378763906439998780522066406994388322020964445636109394044778782401208644376085122556583700624818616118611341867981981993061979922740039030929337403613412578807420866679762136034083171486587836723906800896134650266285134910842426395485175016451635754422439684079617186100542849012246503038006657963081632579939389787247298170281313378614704767673279518359062990836360087653090032936936298897912378510621452502079156305403390858449973628037393339977012628762524597831337162018920070140230103472688017834891538981214757034057768064906308963316669639591802048479978636202334822952076304698595320186675494047032130219160361145906631817144901266188097001907764626284749273367878167767420979522027779241052560170270354373779246599509151061544506408737462214457893335394206177842227541483616035425972219879791649868014523922801939721061137088281974602491623588408688618204917410806912404943608795856808499626125249222545926729008143261234357756446146013804489224676408583568948148211301021141990784197409515950743749255645386439098619108364620299421159504926691702166228552424918889203434048785705949317947272812255396435139387242198596709810908347747687906059952664294545465706315452239445578374890447194545868756323988726482970900651108800458517301979777150697996014362590673032732702801041590198110996939732176984564942433027859985157765332163020485110723938715763800827522302411567297130929376386134854471999544336363623046424015441964685164008998988802379796633121546823925696570607920483436360034893693164199109927248663373654640157615036090166506021749395979210526147713957945765575763304088779097861307034828855414530777845805764363192717376234797066383640143756014725362093312238993796493707952149659639934442524438598706524851036785805213533997196377325489714258137946856273384193229736580980242358186528348357481168472491536177762679931340061131685165268721037378928857900344073822469182213930881154710855776894208785116721231153256993022068086230292383382986987807775736281166694930941895403782978809769048480748895889634382574748177471842420208364314303589361337300915231530664415474484738557465734559823638326412471259800271718406324891090684277223981576555304371862041825323596441145383173556488137366135382820950415140915035349176368909712325772604342486820446562905905525442121366367898705762930233690140356323051645871981834815811818488422491247636928708186267628372463361420556938370163310388022139110543659951589997566080489291205879081843043796352797483832343999175709814681990154577822868796471800617397341685033590366778181288407351054505738978886731298294957358279812775382309821896498648062261669131969923590018025229781382308044742459010844947110337534114968688010413954612853189287997084125293246954427473621785818163491180246236282877987096123661365869692390024854617079202921457203327394684882854639424434122242647201140233564343166496140098545264722693315540478142539744844088409164416576582874412644588684601833152435680110323952773970814408272852898122027330581360912025295455799227061255936775380734678419722942460411997728332582512611970236725873183631601334076005096058950360890981349873977814935766240470561334186950588071358016387107394211571483378678027624432633752577217098145316396537778330529497831790875484004792709668791987529365550538681855038738868757168099383178565801673245100893876005216203898332453136363716670553459649589660068931401409754829347383241564286235623278608948939910339371281740530898702629536391301989760140143904065660617453478010258268463963323584097774941151791642579852827150400819613934896758453661845792883630577318043342906255880328112936125857620026240196299937190417258056179564373616253645423691245059169650466403311617795439593142232872926362331993748103642773328962813831501527502893501169567776709394111508726280353695252237753135539148193491355722454316489063615779132899391902531425278730062206905648500206341545143655302527330124664897103896842980834763089906537839274607229927979959945991097160900787265530029451029926000356303591733606912693096653684840376220065143281685969739828503073079514863367291521650839657011794909784032837144397837839152559101040392763637358161806623119856018281495098218407848905646332354606220484579090639179528506570508466430380359354454098367166523572860879422012151744813255885450775646760225478683428212512396220042372329839391432405399552760280724085164844903612710948047663831424670471305046762990005445512472707359216124365158809237827587621902311912390885926284952826666309856256738648488564020401204718254451346524952744175799846241494457761512376000856574310894785968117260608258794409717574989064443686871598860077356133154270337362857428663147348339655748525396478008681247072510532908391367323637810006032298899061310501073847115257387891429597779789600586871145271179969155348044245642788153441270289232850665410225578444772541357818554261496305155177837767081538561344143665164508365290788703887136000429948254963574774805897884604013573503907622450518969714684540473373808087989544417991357455584228161612762761714186451430245136972723002726141908365681660376009296136182620839689592434279260929363563401380023948309387653818571362494953223713916707075777038382632077842507476792392536072368382265283913658553464155784379622678643155053900236909459675156950819735236244430099106642723611249656319297537872173936173036556818003084530036787944988819615685274977058678904345890877940282038281289670464244784474431212042245159230201971973637767093475560598767102017704954908577560214782263951370379975881794314583292207716281732838465028699540817365934109292900381255132805250665826508505878995074679335119389070423801747091614001544758855253649422870071441510776368123938243138042249473951357305353070911055856671355416616665386136750114549915698620217551024238626221273853162576678085525143970731598173506426150325708367703370866206136511669086511839618073536017492596791803956370176709280957310754585766449895259365814688781468533488777035247328322321467567909228849912006305340886063041403464324444239963430198925531575152201921836482461066489541756511176427467377238179810043622390088784788435771993399251057368432113699876710454983887968228281006406178278533693958572821722764702234620110908436488197663261215089811778657106153115087571746462844967545713882834517023115794756141424807854942389404460035854616639906485023186040879545691654579876827563045155847654275519341466154348234254059996842258977456918579604895403138248177278158359616591130794470753274575673244568662017911925829237039621476561855876283550916949640008500260233972524938243622423332404961126280622160839128588935432439883827827124448953786392073044679826102535848013592543559811825233859878136096149453868807329889819027381522590258632001740274795755035529927515180736928927996837559772609598731289566743173291412648603205768168076989182375819004240231051344399924199200747310464758095870954936284389970926425715878538627846828674451744908155463187784972452486725920978721868599115717219224435466869997115531587734960173414397129428101681760824174844498461800443286404423237519075137756269225480421845706204719932489848354001388277146325690919145054069642819887683132365620862971471902672447992163704721223248057346057296068712788237091795881783723437185625334100475855522207318454959958876293581497400239099732395194442399249489241320425050557426757161556381881203417887210721381370423859719748468094735557475288388954933573173392867125094159118601691118508203895400827240921321432956128551471181652868840848986835850869444311760296288129256455565563376029649816443855650083765587310389398531007876817195437971182182323325840949465819550532394081246699762488598073866926063287636797948751072237952223244762221412997414730199669139358901599711832015039992459584724173174487324645203798653323901397853318321845094790894072071947415863375966541348115101258848180861942470114667338722590194187533971855610362254238244892562932785413071490400967523585343978776553835317365917540412944103958608273501673446214496248276247747268880470661041574242875144551080495742734020752194178881990943649178500984810234454656059189987573077673627518846519531111399472014103309459988228108277770789077043659388444786676195325608367666273271667499234844939763585913026768921983070940007467755210433792737376476063196387682883540273940124991031278947909673412000208749753796640368236362849157835539292683625301423159419770342203591575496081677336285476410987741349228737043068103845539461947634908532756146782927346688581135472394465010568541548467105817528524767063254415567121084495430964708198224489509164995204579716077580377226073175786172228277473638866434102561809405954169165304593181451808413916640643875564647117254983119649243425436475989380618993600072840510478253860836605809009441404882944151937875001277477503072675582054533826171124515752156193692510475731569494045373073503262767726021959196271381301427865709505691023613682471297163523721855874586245474174559542165626590894639352067995737735969661501015564722234829402711680919065218223932350176683000543966851940851718662427357795136410240268662051042883891885558815055012869565533262539287175749104144753557419790328954454510295374462648997075218916749144666625948837844682417827890983149676319410151509772392234107712474635873951667995077872013821724167204489782298263032367425690049018082720760206434891151835909352502826688276039431753119304089817499765310372177310105677648654738744411488847446721670885387739758822247067679532245273003263377051052883786051800117154324035974385041686369530270225230805277662949417664795943070849234776367662342659434422145060961912590226501702659206691095934278459186214278083915069368784669869692577282502990293754132912243009403741733354765444111045963244395175161050347783485532952804770786682197108065206803253095440345957140104412659609688957254720230412992665110204850378917703500386516259371077598207395902363586470889815446617624379880506703211981182277649642874588016899182054037909629968835516143825653196559837830431376849392868367231553315652270343396777464971296046793292021810815441764553905135503940082573463256189888040809803343981507378649171104916173343969821643134033253094835501940570213302771152728008992323850488177526746306524317849846858200603446334671988530783083278343456883475316449867858145529952889140479542046711470030802140697523639156281340980804313600096188555888206375977881859600724741405513601624216425206738070177593095875813447007445651443607065712382731822244981279072050826621796935081559234908121603863730115501897726813120219095249292092128758914972244950490040019490141334573847248628893244438141211885785085729723519243936905579253160864127424785581433081581175146722997344191279204887633410759638518932474637876078826512096249419055401843426011263440618161052401369686951407420767671236433046257408888843676343087497413705007544868171214835109375637947997484218287551726475183964006516358930144345075774897648609531486326912765929566155694821283080846154875921155872105552602083948878937562642363448013818221559890101748699060489059236286433835821319600951883209198147584677558154511877779255730603455494690229483345259534091572634351063562914276970039489905386951433728935767791851315907998930316849145291522120649340811351722256967970732279175956807058902231236539818624684843339624953259919509314851248379069841316176885877738670807652508176215213805302407418307829611232712265591688060452648334717434541159950467142938613961054467103155843547616891542707031937417441590471963877748114134880559515206301545095524404162233131351892664940055936444925973938100888793294036286211576637798615455487457895631634726390961193567843346214314551046634307232347113130886645537302533004281587205462768903808177300523500313698697218882559059132235922807170189498473099164613551209785643672465892851168171352873494779220038893974544777221779944601919145670961898449144288001360570569692834196187044799636185707651569389963670376517656512885710667224070409355323329394776366206586045793484811192119371959429060529686493740969628082518977264445934203398472622708125111237369190959953397664476772517794691162991051911791078754230664559045645408076906786004319072440589740232523474994081971835522197396760192016461918288686179835149248168684073192328776295952596300099993895311915642606991460343955135465155194080054420449765785241301934478935202076904759680832698231216394564494106293880273419224947586284797745023508944974589838203525650805259057880310374963953558739693084193839170189583225911222984910183804659560194523540731680726800940903899825445126492358396438848270196126223542413474573976843621743861032246321375143788946209216716501762384136007751827260255691131822788546908397043816386841720282387865417866306869455089230880923650073234480190113056140337135148651706390672461099829590170783995340755311292852070453706622295953360742473186825650961281275349856038586788033114651155994057620979043203138936261040583608864429521627766779454192489164863227788859738574768360935234426634061074051750738137323127739717744085094649738654704804148599912774791640304924582713430602083807863349829468961956836106092293682019288649520449917514624449900690960271422528724216904059751782556297002898507589429855634382008480763566555848828436573983890161750610524320885333777893132838330307351946228876124686924440312123131951396650548038724660101780397757224441899537368040094261811152943687278688223946917240571624800189744842548197254862075038807792507231141369097207424368250398032217762805527882094443706831949662314273413002638212729308880124324379504478818788464075439587294993217244591983719377820751726707831413381014861347726424712405863432937016623003149138604604816605219464038351992670981082514233845155486291755158961963641158779056373574139479706621571875427617431922451358117361270034338714879819417209075929597491797922248985834989530810977758885731373824242038124748339613063739333248193022588022562745316715366217594967438260530273902256583851817958255063466984839490001739148700773678331085164234012912356985195270938855595532073462496652424660330779452976768561066530101323280990078294483038129516930262407509434858700764669134217850870510582077081207936156179942432900973565648134100028627512370330452651960378877785070889563112471148725303570685325899591382444884785358380225938163653597742329207594559261749590765050355459977142802105675440510481388226803607031719545332774225002670871914139771202070799367703857169695691614117916325880031759888863283956346207496581934181592358677266249751834883431091909054521655285074510622186018480759392699586340709863442231033986179231255715277616505737297480713103678324903432262246367053202213162404491494585299197425799421878186652694407738850324130954122294346569307005398164058914716586878053158681781493915349879381637546221460829929441365553904126602841167438817976134744717849844330244040326074471018449046353273012646376965729259904467297016526168199820493114214936523854529789899183512170308461488520184375160424130740260591514064115618309068837352702071244655434674631849920960565222249432632852054025822559689797688833185321611079086555779709860507298618202637658058049742982133876352656816513588969967159628784036492196779833174313631266008130129256373707883390922808063026319941963742801825631605031873015801734497352740040716970870310725059325070618959533310649408310377445326091978804141942506535789444034372383509395730029444597589786309761226942364714695739926988027402355457109989105696100753891835407380271457646932756739540800732268355833347850464208955236976249358130017778400414118317518557926198678503885057537540942154794517707015536431189618970939133147765648330802987679164576204794499635061955701392564334587783475123552096249470677981906801115987564417810587798812161098741817434120990934997271559897547954621912846581207060973919953070871945400323158702725370682346926125772123705021136568439596952503859002105867243779187262814251717409030536905281961239393730098117497674408464878077579227941315356883430236738995734832192421685546719965605503418909934006953927571817606535475918212115827008936894469619625978087438762325099459127983139360342205388224110936375052745833277381406857874239888700251528501682494300696688088970156917821909496573512893354245001128365597148305561744266040480286672680079056989085954167110722469493666348128226189100428503622548564544138166628180613718411617100502327409318268321957302612944048440210859501187216408413721066531663099909427927728538588159674043800994263741153236002638193653214919561122100410700321585252038750470149059057418764401414720947323753236307223145302015236019040417167726260432082250878633671933689134327033685452913836183734481538990276531583420960703699525816780324947558782833905753559768450043313394045703037689523285282558600171255731905320974981780963245432994654113720604952245143112706360633236764257852731902212148860628304652805807462723793621636286783888653602372462936173452021335339965481484238259871695360457038998425252806750088150625182261256435063117053744160131786396499359351617021190226702566873150053041483320167929641384969063268686694290649070992564977329523048784028471991726044360156029767125799083718362596369435523598228676740040718079268966310784733145615505820135543808985370310501509985559029243545134664773621587016086079861216266168393828179831254457521344440730656420741666369917528065819850241664523202577395352976694877365353065570874871731363248526137645424043357456354074457481546953626326064754753075539381671766315855579418040569073595120171008102202147933216352351120556080178645531464719328221232427876486960790943538941118483194450160138340781260753398341019010684891805340731945736404962965357683495653899050327131447150776901810816051846567375042919721184029541206559270407494798670541535555386241815514314388247453484306456572229131571329728832192769656599013307511802970324794024408751553502770301670485988003882024890819898889630527853444991913409001821357848924563545378591881671355911138613289484585892372722367941128083081129625175884902175481399668254059815712805023726918512133059713684475829804411421127944906835873862718414332451726386499568880851664335296586368523180599773641055994970509283289667240886913112409088191762757445223850236491214044972402996871786225913564861261019644574649704892010772877562367090941011399523667010548945337028392192634427324093546780341468650757512168014082732922274468978940815081075154867797241527306957045597657888274983083857090247565709914717453093162927468041231231422981048543006328075897130901515605732836895990827187022577407936876332120806715873097645438616453116141342848026447590689841321652061790265665551408229263854060338343620126815039817039480572214917387561463612599140206625663129491000283558633238285837204154909061462996857767685910834952140006814838557729516779591484388497307845863408293350711466846545940530599961951754642926815360986036271065424248426800753469702813782870023602927917607690500255260348312072260223516711202384780955331014283650875632217467742056264293005638610340414058433185038744294498784403774715289753894325263209049966729233126727412994354756138353829548820895442419414893578815884750224264365582398037656595239950453180406736756951298289512977263447909721214840595570987400359341512993902532010547220982681559029439292317273153410348702900029538687159170559617283134952589782602514984991071502997413497193168550477807487206455021043377074038314490422390601564072039286302496727575407272976889257439283998159534540189074718004020250342760634487740085945473149150200560992888742029676148990995257288244435948245822370495285484791968809891218085326954614371848099900722363123530710044829132506083869277254911531859811226332410584528565801787303377135943226834436674055762919797984023780322742996439813707031979648507274549842410309150104659614222850841702357144824100957131576499201471040843519253018202198155977795464755143249141096006494966341794327043694762718700470956422678987850642571250967831645894014773821575058632793161815441025960385713134362129216836401765776716126771789070576932007718634308575318936296226184879288857098158381539600359402221544056077487041747930196302585939033412816881212585117181546131165853099179941560288594753669977767146324061107192212761672151567683546981384745678670289958445202950562710308404272537900409184693349080806647882010205721811645018761401823419785661286111745044226147097109462105874585805796120687302317208230448443336708964401804690044528899771227445303272783034229322655757462332130160040139408666959868810878472386394835681333033549684441492746163455733557241306326143596609982200979043493685225781660433980822974507843985739385387827229448823612476809083847287088817245710191127734164144067216106727694987044295889317508634488771392104351248382475610314867175875554059337354807484601470517651603211250302665468273176794152499548579447720477393767009407004424695691516651260923572510054630947921048901796695810684357639485717657068252017713536945389803377972165059407211523189488980123702234833730452866189465007051617162225181489312109846652682016566919610972534240908473467761839494229905244080050450207922831330184174637670621376434329230595790401811531850131676601192416104759296109124254333795073306737353469913373104461179191562146108068873260445257144458997561350802509439038198663439366908519927823624459066216332774250386649903297407170905146191609579831104433900214184183737367962524588175276577520690747865763465144193948707451287029855410390930631841692902514108188717385958246875863802371874006676697908061253232623737329398450162959378392118425424318052100568828104291766255695857298538833623103902395578110634608543422363692428211378994923406794409826323033226417115466550324904147107694594070946207645068964085203198495614469559441193901427174134799729417751213496440456402751256675252483325209721805494834393298849589254721451782749077255738032216509989448176309024719457082133792837978457854408173103281072650151972080291338116187646474843419025225956143408796199001435491544573084947863490012834190897611612997230084737348478864264069991772975967837336849071398791647317424777616339780710217970566503251989991584003017701209481110439256677469693030087836306830321530827762581000081831546367451777611203044546093215110244676316462337348680057515872186174387610943674722154727688710933126745457609082888301474490469341129900709718365886621274278712798571419359907305276281257769398921348840691382626997943774214996903793013030889391768167305747589772106675641775403201741625001132594056635143199057576620033193503528998869626649373663163444550971582508643700850166401949442807607563442052760356918956329274820301956080465217409095283118397824757167668681308119550293819548375532006357620106483344540734184595692159891852117704127170271307611411331667760060450138691392295959507782420637299267274848076463253489094305579519367389616608907183124442688809888387528202544585344753936588140265014615862836921058981405450137706945291870579573833206081929106792811798036883360764160103229566422145658837553586231779023236262595556889140087454526070878603162009083437860412455919317386622798071233413675576284872755822161685618847416599798862286976450418524517909969497189019317218869584998256559310272639952251116178727697357445759258958921241433309983431232192437523764501766174154207467817965486072293773613230254738177345658415036686832266658839271254381199367204838590171769808776445476144455870105194864995185164526002907902584544697266591049215530592023852757330579187833449645499377453147905245425285609252731913463505258535373669657456119406841571285446479948612853690469237915081183089933377993086237967659755925449991663152932824104444598273575335870185868232020635501953243487726811669683714920588239446066568001029932268512118529569591916045860046882414395938744022727581641436546004322769408807134573038543972084408300368783702128735629023475706867811470726969327148440955891898344982883281546678826634261337391032546345113042557680517022087343569607267485109043604158165632525934734371388040157914010531222714965843874262104926483605665754207153781416058746587465542210072670169576117381220816522766612631647625088471139052409755570306009391312894018554092810797340643601892653487491188431759865670897963832685255197281227228366335882031139282147377522131684521274557089519572600658814532825064481286043452715308505036194815165463603582056615609362281519034117736801994904621864564693948461835090384887316657780821703889380967648032635634910947147878070820067371800440527243835619977307652009584594156665331438425928744476671426252359743719867543082396632757171573432012828346141629907181772529089379811997963170910137857563395182259450030956347495586792976845885140828526024410416745031522446780681332235454777129263837957756411915512819093432026528026501371442360662391757828663532702424520964845537243710011533853585176378474747434075046471242628772199237552884302940524642080213285259944072419293854628604806798517339211357190018302465767955334134223942089571938976303582469529938656624939404380657798973439928518273469146994186547008338612366483614088462355476206205618123761025332686689428368057134776360698250205852476187662800732699383388990187154723323634005291503392258547944162743383455753650526569780535564046416541128461574853075544571101489529485371008199322910250760974036796682899213925866708573603109434805992648596399440667275221847973775191318909861116164518474171992930439464787957872491782355796884216327164907366150160079648240120326457998129115909807347636512670837158990439103489265851037321366501203250358754638975049047307692912766581938631274835302733257286477418371835249430372535744134289081757904727401012932785388057135489113742715152999715498141848478370731750618170767970716997495390492330985609750545153536216846543450895034147040763785148387389310616127911543011584238388228459080723005335852524267565551618846470684040663383196627752470972741529321672449494722676622563858594608390534496457653860855248184750308008056262635319121500288158851129979331408350660047238442726101399608688984379254800941376583977417985043430816707969618349337249814551783289544690922190358592474804710923773983021969781362687753796732086526051323775955493688045048708071420403637645840991718263276960265890321796185129549073180865356871400234869656936032668094929933207794713524660777555085944017948696808157106711800217958706513532644881009906752538998225021999915742662485850491649716565215585578179802725256169636034181234115990791528638235776349529025906635121446782852702154601169981783162812373767343997354792823228357404755215958045904501874239434994464967411725768096512332787260045805136872410212872951447035017468668258369236577175518686957904603018966915183630350508198379619456028498597215411752550318036965514653093598586765455004135468054937074409463732356872783657055107298625715314615870163493492042069655369677198120856575506692459304586837515474047105803516809522492789873547459109233561746234828890374418974997740530121759581043115085748657210337742280068835402454477192831081462710463980887186568606564539107076438703226731240170896577762832204171831871947043169249535272984915585228850838080936674656825235969992660221433621551974787898301855193834625613011323814487198470682453117372442746430719337692906890749149503008447634861772655374140808881886211807971005585086972424233902861490229190734813441514537922726249220576913973081956747410985905192710429852297794701659476864985760872152968819453548403893377497361441350805284610307388003698952520975850874545407374987919697136327969760986297488128455421549474402483379341194408293728694807883059605453081537623258546091541010444406707891235088015080741344468388779818108341357379866631706477083315884824105698476888561397957466106659552110994659257493347731224030012296786173156379200276064403621145727005147673374521854442277438908433938207969879516190630245295005012892080554041889492818305997263027998936268418082300334152008317869741428175253785392898642421146231975655467541697992215001622051922434865189889914939398650186202090356183014572982092674950268109182273118217047353068950448754688799222204519786341772090366436624392890937053053754174494119961998246536449184313644890898079572368523397828948895546297938506625722351621648161741361225206420488556673184555939945465843394373341533201815120342187829336542703894266589035989778817524345663145108019333153618948112986694413925104220665311363712582069553699422774635783595263053447337230232161209874527013598437692800512238911397257439626238647266275437059110195170728539791185243992371859230059409971697694790043436656655256014045117450519059826469988184169763331776228107443922010131778158395255853916860621647091925637943349111724830304022362571806802990650937269995082065336588244075895070277363210162924513267194885272510652882185022753799228009203976862466943052637343022192617801690716056347506468374031660537475325702292850858870125504732420046768706518575154671694803590170201918259186348846625365189560953246285470662294491950991569459306099603947850159728760426512794531108438701850835755382884405400534028434334863629433104435108916766836215068632113725331698651316251811063705607657803574122108016057777321070313677909672409998617805011945319481968335390720447451733233309454700823070654585018332930649363311476796450579078965195230552707695220897948472789243918213105842657710502431854802545313638363343490114603942622156806519579320334839238853709290621565026349074208314669215435074474167367762942837808142951901507454661652258008413320923475501724555917210610593196624914536153204084942333113061546112942584914062012394933730580016535952921446217976314368996918750211409545838849990146306645196864308440178314105075884998511592936086897664397531541830158488755750818624108623439469439773290485679309614957079016079342413371666769997534964994943949563252229180323796103807083766050190211660490315415153017358685216740624349513396430595508472551061171271122509722375959745808728759831917682919625906305194590049286730831833576307993252796975806683409334785290078927050083524380237275036737864425271018899602346464849749831509381364000394030330766190168370745177224400279116092680722878086423701915645069211870866822095398660677997472962063246227912098463972594666244797445071819119978611859727696477347167443883553683795189982755551007402276633064489869943341174969955393319177413143931655830737537889084574180178037258752894525001990808823168790732908701478807461069565089142868778949685510353729539038044611571721580170885021167982972122274691926714785169906257092810858225261529420024114092216353309299883488640305709707265149328317148929033686140092300137929150021459662580614651162777625097800797873458400113591127973133519081952076426548575542351751352365709941035392385794240208203914169545136865667739968272516264552085651876600087611578048790460724754856954404022811416098905472443060346556101717942681635401439554669288532891406967139897959812288023244227632588773488199744725674529034358430742445905326340096907941444428965429502027753621051947574568502425141011711787706036930728460064731078757779931595245677804319599542193953985860722569224300497676623681988052594954308658576837778446116470007349284068152359509166376562782843734927668772497446042082031825786269342124752733935684796577868927715455926892487915454687228261710239150246526829555236420717087501974442399109985842782137228106708183168629587027613362130072905365528240195285516328450545176816228194174792190554626411972965890463875171531378635776275740174398064552370866455958299867840823231581382214674662643645150424226171802125553963390391419720238173048934256680331874528794103661883244495351911771435382393235924012356775829443274176164465380184996137482899602729033907259687038739836601383068617977485449196699175054250422725120634365524302839362748738598774708954463581136761105201018887096738883679376343147756109282625438204557825249129551513658964702010663649270420088118815894119377709115459039780968067206346062795218839390683470589570146405297391498834876580887272268009857802732169341669732221769025645223861077044815917193091311063588454918650755805728481397408813288941022149436087909086275979565608083546007653646422697178848292755716985692408494974531432341083237522104488208661539317054385418584777945607065348230099910102841955619288761256288474008950178741311959761216932618797561786647191131243525756311007786283990283338646429072081533695103392998712048899112026476835901428034686791496517756816803550429652769969766081310869640709945444169140088880547534902351830486466940476860504412542228284621528622424057487590241408172622729344361492410753552747400244564774078331020697247599430715187057537723390927659144730040108855688980977931881454196132251071969949745572473219199483252185483995555637954320286082159300945514540338299188803811309793241227609097913415001853371320634452411470450058057015110582365085423437603876737523726634295075472253203020497457722293125242618773553166836481964118735903733172602152324855914016022600439856387936412961300288231019038184909689911559044832775821036923039184516137579869233637260478939683967013022282976684465147519024436702827372762408995237709416853974546655119937687916756214568430954203963339041332161181606376988409342534485988479104766014442404004897972239219392941995240049452733166004572508174721514096594071894454018585091481810259445642115334745279538763423171507675327637119081462203812352235553531863791069601007229322443819624957667491567628804710424567118365273222816881719407578261437907141110929126295356264253164804276811652050594394748340352782338422117748784442935799088304697439113490385418425246827337688434328856163272132021004485004656928741324514445916022381142110677218726847028323716854490716937242056033638652951812001295701706997516492194000000840542869111102331881777853321148780964025781015478390807865095670018496445990578213999415931534893938030822789663321572667693032376296756780345570792021301741603398784181078992840749926109055501321752049195913212585502556216410910056447221156520275756912212244361518012702166275129551371764673117938460544060035097012404926106843372815275247994423601212723664554270780942490606081557615282070773587571674373632179966373817369500206444843499498502509081110628848664419448455392202577685239572812902029921903317787877078082993703242058762423709415300081726597153814825740284342392870377116645591372060375038337465891171279695455676090469699054839072259342834415126484077676234308739645325169151865732968347312196170883676656463211750664798090805652584302646403048876063219704702523351660033301662295014327142851110724823123904909822894113616109631756964598590684122815710176622576360110631794163442548139165421847447763825629321133367529992365685717891050089943858133083593970795925529265140516399772352490939768681073686868286263495714173357061691934039346740500301290647640367525948210743975657077336559194209386036879201780406116408245375070921874889638557262713389643662239683775651417799376580202479603925036531112712625435876646474068521197519196903793003833728356047078797915685760511531478804175100586875845405042708132843301180605287886295803882345844792888728010017967017444557733297834443359573946665743755577316310405424773221090129267372855472835916746531367405065145999977347810958262975972724796287509616272002929299675658745005694548637363020223901336625138435037189456090390105514935732747055334728693743287783868447543647497203053244658770707810017810399180314077837125867454126101974729847422054725310919780952324612907725638707902864709629629496975820702235755743587308293133715499811792987583300561245155415378685693322657739946659880148498064942223664785462669890739306445403283278267083311743889073130116064696879837994450208863177292727279438494329840233195268124152029666672165606295937635019480947321278246774279410779171680715065936725938899126664045888634302076406981672273334433965182136813369378443097487487657116151257810140624909219082068215705426145289716166655516440021068084764197135047746728671260567670714255849765597554065834406954847965168781156376897930570769458213896248066118518947496233817491296290850809378436208299591459021041431091105832363435354628426328562960793324200865083752902652396121183077697990194664813294490886719086460100693147018806342819482928851146879903740140134750514801106196301641824215803208234339784780512344961450117796229589312261884027318898060188712837787532812234182720400316418918497125747425012697174633283000113875909924127891789045865493561152116578374735751963785614078830420931435443417592279505547263818838246777198695076107649345202036108137219251737062749700675142986860110409343578649712678552313455648830860651518813114950945291844466953104895571501582173383223195382202549235046198996877533969734398326212026824253890498469067042965157573753276434091843001544882550973459007612557397252451366844785369219425082338323092409714063244385640349979379037133870847087375343569127982541173073998170310249473147251743715331153657138839704288029533462828547875652190757817464427144920832371209804831119577939567089999147804456444617252559866550182102525680644810389760992201656796510664086428893626323752746754579912568334284953190048531502655271773395878764068071771150082132176669045773864703851876513118946870901162254468113358144740503527091306233111136453221361326077112194284641182821105356585568208260031377649613999856368368225438236875537784570295220953507994116271032548024511110040942338860348000690136454430176923138860627175640845902862759376292157059479062758496819562591999018218156765824952848117567898650494298959663038948754639511384091244621372588718555904095388156210270413294537245372934586777078378077296097217852067282863646587033881975483587781268993088855496622903074427585913886598518532571587947916057231290600784275154318753974557752712911566808657037181471090466152323877369953822638969600832354368485116944762049051096299898583094277724378868522385965202024866523140532702986940420101136557565556627935038458383180849781804600890190278426325480545817949726792984994389425479724332625598676473171370619791177981914135875913433587536921620565328195168094460797682735420874263852824988684899496655077820686825692014481902965111601047105620524673875673534830084037035224490984924956317108237350399043795479695262063140967532772155744406898734642966503974134159614063431495117890782580701600169466922084167300591012833859925684257720260234815159629409856640920608199948459143435538922315469179135759766422935909279440247022073322301665257939709249957665650379133108523959722966692050366241012643868167482077016929068013859297554149032428146677542918753559951468160877902235832474991221326552561067308714537443219382900614944438997423222444614968947785396401028271619102803528602970394292759770283871013492639711388765207805152365921677624787677300710436360588670866530578799069020928496069416955413792932907478957095853522377098143009533426004070626658403691682941915020439142951844108232843122053925035633481504324955218050662024434388799984969305290071045569912176766694695079140119509095469640793064678405996543646833639153510785428020983702790835329128013473902340904593054412471835344477816649942042642767410003882521304893866785032637261588429681844477838380086743974185667916325739038823328293593041115423305793199163743473810037576362424348067431100922222892464881292410564072045561555796646129116346914626826971245532320047718148298450575939083031469158793738630081580802708879512790013981377373396372365983768078780726245753648093035737154013262346892176649621609835014630664480969240681618591473641276651945766368300110167546380308274971775455776850986574140444466478555367986930472885941414264920005838683028199796613568553504516475459296832487412016077677273879415465714858851843926939910554277040098227428035648712802242756050578574362433404628049683208547086314174931763656917924766893544919642694762285452093449919191370495254788249453603772817996723817191548783085452638534450366854963131313932694751080433444917468857742147682351749249610879071474016747710438466717329067105799249934786307707440037913543977392117795364696565446939990040710326076454433529702904911528162331084935962655431047790724059817123177738292373481372911719404316031302346898958919057442819085746744374624989246781435523432434161651611340969668815730989206355937883996518920738281541186321189767502601816981463182027208895104944398630250501343975859978724550381956622758954772056649208061597471901740298223757354520602256847687014172136067123843537999121791186460718753015875274971289434069263708812388049256065184781483552862953491637183542273685912035391714957896905576980752021878419276436692783056147497681095015777966500367808351486120722767368725990420708181385594760363464834143360036852330124252050328884083158604642366455710481663668528189374230941530888795942237677646144680912611364205824153459023585179169151587795930989124100937260137929419637194268236757114425803142800783324076474017948773883316932506274578037929231500780106020114729492984889666847984296874667621705554166646364908635078138426654694714221530544009792233885634108203550522801863645906116856137165054947352640124351519722263483576912223174339869020094279570717273676899811885865616518992328904551239305313187400559038317014574947762072895487127124557647442397317913178717626975392180667610169277579840161684678052358254750506544071092139659358654602173075534347295294317558171208332092687235697613739983429815050480226750863613744333117596902499778678984285977732100506549247976313873403263601903810445480800566199497341651613372018152633833389352447109402685069075712048428188950719348432945665048243473153520741606034693498940873050863955570595343111368615239191155294536329780754155142188412699629274514023756156660414340818194361943877661490602924954890221671081601053402704964152531642907698245723105142155427215087833582230015270430028151625725921117906208140330632567873563465609624990441967827728274871091843419420262232918495998555698737665564589775008222592701547910536060420583207951904237562886926882756906939304527298730566415534180153449807892734249460268544757762764384228985322067429006023485212371508735561425718660937903587457676638100091398589888808863972572005406818117643133950619834506816992948972532622457470960966216844314944543016595970833280076368960185710603953200128807607200624419263714035239964144990571269297818582881014618834412920909933716057424752673282161410569020955153393470784504884128478763434546404839151534128577800488143338515220892485719246079412619412502150882911962070250610069784175376552547594926136075667710312821767511406383697356155519297507838875323286714832931108036965118872903831264053272096516889069608353891733138405554705407979025121136280617089825881170562326557477841230588025602189286484438232787347852163232728609336568066011329281120256747267613982859976663332296353243903667957275112084877871548387312781421024949507793097831099434062991935579170961684245155801900087638729578108603019457385965783782473115126987989433373915797307427458294905196124985011922009881227674420562283071964045216279582096645747294612603827901107801931955119945616887043142168246967476251572493051855872691406080073059463648173739246795103569961776812046271579227302131163165944125556502451899899806672386538832308953446964961277006218897379947581859303225999662660118927674918954648617316503835478131162677375885901217880092179687330121658403967325813561189225632281034804684385948760131042495014724367929507738162579609403343629554269542572313795343253871444744608959675784768454640248020154058763918362938745286257501303964066204874691294922376842791035295650825129542596699648332155000651825162145064102230643369608308990082878355163995118004970528815120247738108645294177378750546464590013864437682183821000240754761294292864529872797770676207108114317335993877126267890385529893082549739349223519235703521795067236425940811438152975389056109176842897656605813229101109562339796569787730681358525215753142191196367156300571665735800053993517594149997085998030479161046107204009468437284483005723924742764948391326576860095454409738047182698484517289059565261904646180875405113707238422744218976462856095470751995945125638913691796900645172349054611819818528941725273864581993453624854051413714847578724682874499678678853295451616340535884011843257395418068000902048998252212923988404258914585442834133531023072107480258826416494216756165111228036632204030581961854121411382387125288667608674267623279816251358574484728035961467804366133957457173686030903189142655184281244170646292708616257800059086886646321820641703628633000732388114926811301591333593442785631302125515329236511631815631828573053111511864098600146594365469165503537222335546289009924493684326213921129075681077895056739214714145751246278069653002390045469250074849297091752861298145430314720266969605508279420525977970472196440722068841546990935419460067228930790745915427743911696148106877761059847444269574624590882153128930093202815155237945279340007082591950250213742494005074687983220736282544215727317319532169686552101679814778655499141299537782482401309007086814721157054612708616318434113327342524397292425770295617841009429086986336273219460585053960923915879111383697176323215409794586172373261223059364228431774797141614137397443994493196205681471117211757808643454576526183689405927429110919789543806417843330579290416887483941195762982607851642597199979378949808259591644894763470489672939484065555914627459967085951242619213512592319203051940507743255708516066910331496789701923194177078229631457885840375350005133184776366105076376420868546487539199124712028960332031774417982169614775898075798711124906421025309783841334390476991978949597981306937833275851102176919850160860349049235100015484337163944883089852229543728199570670143172211238009034378468989037018377575245821166319472192758804222101908999001708326772000040426495607131700285649485516798838264750038036496115612800703365134960451622041247254482096253756700186593137315958091798326016899137345003112827485117612195430424114801938110981805859923622325260002157732631402272236401909823558061191429126691555953441907086283919462400277895038742240309219666331181427219899217579986036103246230343045452642198403299700588054143412256333304824175643580812241380639308169506134816835882770560426576662765634497789262537015924740258276000225684053986117913699917935285681173622816007414325281832090722017285669431230418717892562565107341063530611352971302710087924836464570008776415018418396530568405212993395796088043036741296554490492678876939815239240139348640131997465885836966935048437453156943988112280400390928841112765836164132176067495957173048435911919018798127942643948108870156683609459578647498232578344469046005790547996209323975997099228951607622264811231336408916720363305047372817478670180504920797305902925019692773943817484512110210427620692619475836786004531758935827696438910776519449424312927562782934402726059944174598763221059271326094481473239720826168861013823776841828756133252651623564664115841682527126123496028705806231551595032691415240560685362612294822308858179472194185001724351137278688891305340310175615434265613274316460382152733622437756477401612972849229501846719969297665166422302868300679802114194569285525035649886830653474956538972314559508277727198392073016790948610739697727604141064284013051823599168930670681451708565772596009608447383845961963326262633037013757182539565053514804085557918885905069675778422843639943513074093376395343451305579163470382060937166902540127983095195453662488075889493065004070618989715747647767196292912342018566656495900906616027757215587018218276582996927856055958105822901683078902217643743516444425553568826447545435826624065513553042062947302047054844272689177305915278635545620525620858124788595481889756927218972235409615173228035167549714915744005411500751437470755084283230380963102049048332675732417621410121175046262927241677255531403110021679780583327985021854175689795418556090896116750181394587357089446940641111937669497635992023065591936679753301000039283542115537069765834230435753374814803937057516955253283558085060945884493685133917066668575750613118698209644701683436212055992032254396395673028178487934771737500106378739930331684539333154742937950187436399204167400245275074252706676580882478255260733068738360223744214222018091060025286137201557529003790107825789881002573102646996229380950020154682560210799766252145974570708258062854527813576601595195791710048009480848066404149765305588321685996536051557326312712734189247546052886958052091305446444599071212546687237153379226079997295092120496331138893507534449794080368884184066236355263979778864836202756179527300995198857549924952324253341658320927912427821679795231458816658276992405939119586928868285757860779079167271224388379054201217430343806655196262730166680238637500769967672199604000755176395109465101956804846988215635637612989425171052762696523795969646406310559568198714776657185540782765304161646454839058005364307804151313817850501945201998346176610921766019548982144429103661025923935968394977597342117146479640410049437855943751716377708590007626084735826280489434387636935347495062103259866432093740102480490544538918385530827481614056178856338435197414319210962697718277424903972424670551577861249036823372578274069178431480166013637802669289034993522271127052906282959686793279072411684825125761082154743369762687814661646117662523727459986417272117444026288062548605830760297628829913577481951054402805978551932660528345947683615752644936661315584690723133615131550592373246416962283110900913446127851159759487130205211432411643810696903983410162397412647399671534942802676774933207381524617848456964653788384568681696034779938331842932656170152772313043252826323396018343639612191756001691060051634386002188304952027859301829238576136219979120048517428697655457544028776769587863906874235701651156451331904368919418522510371944318112968121781140459370577608336424888736048674598576478821208688988367016326931166854446066582070329223225930165476053140360766253841592573760845689293169402318205735601878715489905604155450677411444312358744721298904564339719481051450073265120725150656601046925242013736760636081903750711092415135065637855343983094838450037146160789460344144059103466951563558644291375340884269923702490381544324683112465967817415895421979421643430448604700136594004056673448653986999712638697085444244682100481233796342315069482953235047371137064478329530409075638417308866915319770384960163548103670394742811465594185447112481155897776400343044412777851266181316396624917349613955753487547687471279567972488971445722490656307349398742346330162516960715464036291648580220259319215664157418036153695817381353809502844925090896367372732055425743499671877229699285781366778457123724437433481257436256193936422348611276666209190026021351460215759196516406695656547543785467168117633379166519243359027217703100473531333501329272390269388803174110053126857174956134452415670057814935040267839268228449479974041707385514161261972154247463794678303318558594586492401549354289545026277915835709020185985343664295622513464451805022672429575306702522374690919725412143173206731715452877949730574571411019421297279137655752367911816732352447257147583597136090768411040070020890883112195531284966197665918309579701558663215484125091331533367693619186247273407794422467020710566170906843424092742646087041984167587789705592240697433954208167977045608397320020842812280783370492873723188285032676577525778943775876316792837834657687096157674644272279276353837119005123345122154081555378855076416672353122805372942121635773092095397869547280582113723373936040267715604147789400720851261469755913548207618460564220725256130553474006762718281376456891221601343329319927533143457759835977159473697698584255440366523038092538338353268823413996879406328470435317849667739795081342446164946573414081582100739798009040819661750010775319985842551125459559143245396582422717793937645982065158039953810001091177374571149232362525862529275040589976455704717586340986479677640603341411411833348224105426759230281948201362078486793328353322339497318926745919637919739446131867350722834553497145076476362150912863300238404134587431883003275546006459755082869477784914889063499588482482296682677854478464869423220554518617655557913991982519162557289572681675419919725823425428257583671795328849639906955451405445177356282544967388118581705020059055868441122912777321588280932723540211159384724889099976509581080087120055392443183028103170385702036730406393219285685230280701488142630752094277067155788036754633698275939931666060244271773199166739945390166764044530717182418710970628597003368030983441789418374830565047657691765820066810169984698692521854687795244521695861312307724104936170491366987972547904726698332765584119806624347740640931379870900431087610782057173507117494651438247409225177918737671048764014392322793004043471236353757362119306752501828656208718368169313082870526121447436507331978339424024331896916212888026969606245132348119915006917962237327250856014011783958504289836272745362088218933568536920082578836288242009745882810241354964002616193206002979271636185042370828791023935492361508148032614237672502622583062532571799768241787800607552310043525938245633870487042087290128687566413941140019819364364122145330131688947476503134592451850150332558412720531707365433136455195923901149073674631322845816774793043908426860890101408063804154230053305790676615688949958155178983107940664087079530872579219208957064639728688515150194702634748400866924091267891815813044818869459212859540784064376760878029080941058004939651238301280127015893824481944295260025346652006502950408064990138627263062773851280227209694787954387755359057022541828533758279835465638762113161599485220826633064626635813896031427028513862510445458840119728549435228665801822594759711212918355242943780847084737452268720426208607252158045818779738168016701544144517727458203003436190673716380932060855050240263275649146055040641124963839001641745290658286332994942530143181752077982477599943248186799531023830296689981822655924721439319967924263294359533171748704658146496457144470142346149865034854344146151251749222129351671911065459543589283052511398943990241375133779621483471505119833306001848306698887424570048610247152648730838580395535718663123015798346547078526966731902895136465890573574390386161124492495592311557449233692860586971753128924008630348439885627797137050305715460803748713189993521811995311209662419285368348459830131229775036612865386334094739490163283102822833776703309337134364479322993505084874891573664437365871068722890082115776384156887040718520230678933775700489389736052427721613254812584794335008675118236099090381542629834922341604327396943129027936344485151838787134366387369676834701088987825567616598253481348291264759998517024146701520675718289262849600826015388663616051146071133058977444590181541655844531570156542156358678448972808683004056175753983074301048255592605678227350803316885461453418512270372488058163513309804716975406530164676871502445520732139256271761491920845917121177156002520288232476234113869298060638206682115305155567837100758358984408507781950573871574418180749191196515214444727723202894401545929791037375255136216761456706518198659500895754045220820261895876112778333089798742255555750484402928936983563861812745406356641652783720872983787451362202659129865263715083377041486165929965465762359106729133725639352111353560741974683518716155206498690543791118829789339454242431368344671609226087708166587616978476275447815269173588617705816459420790613267442317178384006184104567391642756105406848240496542500216605837299087267529708188362514549941249116465625754862137104559214632369223579691193947054414129622511218332393111814281843914904133955822536160237469290728644655849156319289174568329278839796348303049837830696723556545488847286284019505481647100787879570600247844767733897683148084011802261438679445358261973631623835369061426765631033914115619697717281966653926778598119690441912550611000760868801362693447333219687003336454369405158023250352444781806301102605716420459498504362440877555306170295881544855436005020401931783382969390400232222216554134911770901147383831184512753003399941357947517463328308294091059615444905723774316062959103233213092091727136904857173986028365743249948312842833733597782242347482017974670388653875034032460263191502519755212501246120278794615155931073925187549309015806549550058539148981368030404820923732819210370938277528080240888459575864376004912906571739534958325445014492669367868767004506092648511605890296309910869092431641796630875547849263361057983272339452066578572793605870342767636122195153286508448732527706956903592054569410755739130711544889125469160569239281117027383298708230875563867828786259863906324157677852703191505848320828502196272651772103151289064768799009544112226051544924649497530069863190634466886910898220421674485047388096977888563780950266895733060006980491203727079703934792688204994541972239887152035373287859721291475443195606691679981525197327708467147808132660724600018494014996580061010435994380777970054754414000105040372081990598994026734967052755517077063320917525664666204743094028484155323897413221074552812311061465423494781795197040129183446623000120452536712334634340309519103837040318015136621208735500728685761132081688047150237052444576769259744810627780703432520184317385295953522924810246795719734084897223181041165484223643620000409937993130126440965130564390620695318860168244984982721541988641328315941897445682441159379569041545818496267881994319995853553203907644073353500860605719056876370391742749968848644896216729701419898189702668637522189031980762567505736235227112579435146306244899465883392345571984127617824084081565353469328017270582576750412567954285802119548268395631487897743296061071422463284729042666388387236369489844920136433796407392372198998797966016079194803003880923137328594244552808058156591441509546399525616144454708773180969961610827478692859276977215354975401516383724315825844984098632235414014313477029022370979996512685966099921845626837492855885346861150059032651517900522659944327479364108148721720532015959263305280692845300912619943419414604987939789426779019567740326687700399495441664328964127691471792571256489769120493848401998138895962623407894702708005791004245406823588979960856736856801638340494614228737175294231113259104658311765231859200828763082716497240203391533608169325974496632399683315636240751694450248425596351096089990121083848409928327457280940480556957186236182502385561328701138085388836555094272090014241444427998165967306059668101296045893281121879211613920393123739968814896920347433904158311683760418641927808229008154655657324017154845923487661670323180515886497465976514096051157887355692789520118361015839018951632972105070376494585121968054909282858263745655001509707477337362635237460953169672570385510733266473720412212393138708570312598037629733711919085362273487859954979207102615409170656725126014288627889996221991757612976939664205381656725760364480347633036673208089682910675879763841547480313371562602304109228342860410627117239707273981611441270229319386894128378031471729409571083629156125713370846942202494044858721006650328894137909511612654537583038338689478240524048589245550991331806298944724378537762582732374750258880087802854725751432850333382626287623901437837428083445512375338468682265958063940873704495214877526744107555450282495997518042642005717113604536874655689242283679301283914869984776196596996240411579137963959488035965097070855670281269599735681435857636396923110306547484902449954283087545593023099565660355448090484715750082539651226625145672405972975329523860114862053264313701979884217742418371389125700695336377905470567417427208559232952950224533070023888902365181477551707689845675501796744838862359960211730808264867256706367704908678428731912296742758827950427881915776462744101651450076547134905561188526247391986021693832620928259355048811737743229448602630385937558642681110796531069124359554803364679710798271512829748944866521902725055124941917952161675029996061865333622371225745692242071723517332021056917338105207949199558991430225253372966523736036297534984539171019766695935034552701954181756122213941054984895506096277357206841675534922346136120761069866248423915204056477522242651482622028349454455152466801162852899249541089754537724752765574118128402858121104749946225353091334367894285226426438518768984893108649356760774752369526266425595447340906480589756395247743362750681938452969427610437846117964830350005706425700543279425978799116152402702073066075720496250263678752549352781312730178223467524503288111590052531331328102700882561130242721506035150620069892827685645986870307124213287341535218910535149008630465022047171545710912927141564934602321348483516213113176868015360213165038904118921354258225111705159743605806420691289723317458032633994280897229438067922576542161237690207325376365834754430961469016792355011300764624134364656064160644949518759211077780644255393606138451811192885016888621724315148429224590239595541052364401596028516037192892736668429096572311749117616353761155541617277065625389209002659828192560280035020476059390908896483708594648024585792259698291169853584700801767863605030479966982713903223122178355287987682303300140690033057504390622636475158777942823226867333330187854203859547224285055656158263795614411938399015908694626237320744282128731182841772962689313575347892130074171941508999623397284728702894184741252040471868175681589698151485202314024319115826724253957141289703625825883184588614189233133599748873046621376041847728849326171028773704268740473281276758439622388361913352085657992921190995232761113756998370719409809428803994775815307054600931363260788468586935047290177013989026212207301312261756930643927867688517763365348644842705881529128026494881934511803341377447813568716150324140743336047700594934921666436287302053357629947607273165992467603619085961892324345443456546523333680609074002637282124987399443095452909956143933977152898163020674695215409185628803008825702447923470988558437775597575206251435561498307747821460865489060211975497707156379119842020432075128740258966791214908669434609576352771514854730234362264180040310994682445325318020274461974966413894351313163615702265572159988439202288949056604729740535876503302279033414735756055697460601190084992923285667948035375244238917857383610332106102400264566104032757061542907152021866457603096903059368629048189341880991987326965016730636040580531641158208582193807568923099737810500339259996642943349747081142188122756926527722872530593454322997396278721497026473742446046832482964091238045426107350938097044000464540647900048241704387711345997635707831662821274513033134276657874431544223482223918364348740922829281788824541679399608385935395309604428142165195939660199753662010075892858004136218256743687336666113973555674391880387356615252275249010319732918525212360615159412948477517289674482411611014807622432544373326807348198237650616166126828128755981393515387519395764569427803638833186533604838466434295109132734197378735132865314813442270652724128842240899333484488951813067707674749616206829577108214480751986493834137443904571912024786807347975170783710861559154463995960416246046341003689214754269547823345473945640815599202499435893849176313659278821260769353169682987297029825670028546452290023123965550501776803603634250648549701989658288829495628980638722886046568573771708700429096181159011242959152743343751722950457109587526495423242383820535261159540603838454778770431127700618130246434180643966446280469097142941095289614631727928924976656720293756624170486850390501966469572969253068394523081710651452428775437975788860678186985139045952165396022187644772227845844023752393130777791620627552168845118536930302926234974249968430219417990840450229116267657017817970743749252505901159015634358050867290232138669635842291726023236056061225013536922525381245906709540828640529027759945591824151684088492625686265999869644931360915281206878805547356709654529483781720470969920655922312227236508308471161597115419621420299935736260837067333614732690919639121857246717952840076633487322818065848108595039696364771052911891580270041842499481745568816700359250722509931191286403706274344045469635161637179258020675844473088816697915452798534359832557370747799949793812455741853819593244247753972816295906956082428487148968907978373857980397135276340682824054628030722712850282550517743951438314780025365843431736180046338454920057722171797962504759436664431364953322747751076682129497478342408421638971546748447142244098192501360935262207560792718086215501296983365007481132534681122189317410988545402232416280477774985757391480112028687202853065267713775256233216742812560612618082644290975503491877681954551566746679064637390457371210182400051690479563088086583663690405247791780510157735133897872169250657708816464059379925460421928129774187306627726456862415149855890860109426996981543521125223319497546379991292183533012336764120631374005424445342536628940753632233618109151857596591137824664008852422559422089895523488672563430747683937351918392864041535369420391645048812304141105537793344522163055326624484751723018652235711500124211272865544607211697995042438375543036205279003668133994893453903269751566116435923766634246210576267787890765752360367233140906407349055141894868807882942906364431509069162767140680858371747769522128248457103629106331133301205119835978001097876434332751390113631372591202113593200101244914431859627566045763318262488514536917071553379837608574732249120282757034751277244012979616644600258743865168523120720024815636233651453749012300939821944374703397936080589061085781971467615241123931365536255410746476215524735714929986581212644678715481443230338937096799905563153785706483203471795647964031099905971162880650193937857495155588445205763806755882404116691509881997059993017409093111368226400594500432648483057464704649595242720191516154722779887164255737784867091801410263094000814356456618383018799665548318505815538729187889872878982952567867489634101007321825353815340184158255420255753998719620473357941085538903127759611285889231598536537509591263875184420743107390475165962504049605706265916828112289914889812201836014811075269550043183718639728443185366629287178164108145755808558726940212298581367335424896898947410969971361036225699330242000440350734275167744631011568801450024863916608024537268778586371321248706394156198510335350114826720233600221298643100801681987229456645193194161481765878607875135187838126031533209918878182103748533496518444823796957988615889590369802377560318756930957690604239414486479143268682660475843552432558216316144865313430489037695716806174326051172064849340660380857502588841601333410851718966754983969102795050628144136425688747521605462059715087940421765287501588909261526941115827284645789002709633821459633120664799420511922832858847444770395625058898653697139114106941770113794586598475614109415996300006605125543992038604206103884748079444229740870601842346312222811560989027782236556642729429727906627295538059746038432575154395479565256175004883155317155980559622852335735846164967565876709864125522338883108263488877227973501441009654079539679989773950337341606587020466975555151953499634816377751186318117359211032614512195213336079195276704066848732388177672342153076989778726844247825972556268883744667934741897279803867382765220160865698804955543608988963205490842846608390606124186084053454582253348327913508213066745610654302593732946306906146723733316852552783223963327720588676427882032410215427322508454686062260649295862985359089255249021372328180702344733333402532634177167339399424483085504803747817736618406155912960278371990092033066573059487255189434278741121350625820413010186294861522665268567003915466803294424501998731985712970312798462851981739224437786857772535205085692865947286898388004388720258498571948273664456441223493878573189950714512823537991034538267577715899981586076240392285408209470753084920194560526267778525362351428917357683205818209805137113556717797429374718753708562049870643296374400957221557277181121062859668752984557479877447381879974604162285472897349137033722355913506453949413730758190188875217230547743955453902661141456600532097533309344712697613696293130540760584612163767871881239566788787335826615678472931332038678409290297930776153588848459500858174479699561853500236015128522908969145049642738308723192483372963750385424034824737032264728127751359775652014487081743202581371204254161367448212898692273573836939184626949684214036267781479763239059883889069996110339276567663313631386938890044509345032897758525873334672651360262565218432298514569510312374429120737241876891363086969204688499274196319444678987132155595543932368138804701394234121491734281062009169329339450045459652370869076374170814906217213804110999742509317035148463118087430588010871906732714595358018490323769072160176711426835101100356052944842571668974618188533464442199326813053605614215272598640227601371387566675613367595167831524716498880310544635687591989590298497918676899186915206346339607306420041326285873537405724996739803585743332026589099936025934331282298339317561178887489975378143803612481913532557526191617822151093929026681980409953357818462574729886554693486470134690875557033603811399350590990045250045542174179419239306145183057508151144778659901192278739641509998314035284892449406994221570195024475017227668394730745104611654362092385305304159708037777979631640803646018495785402927221365142921250008412915680169943710289909211370389937938063437236682056432516621459823607846565982395323930740066142749798241513883901766261589112776267505906259582486942673179473210544962621351589912015344821681849206453096767459694381599525318836089415356739232401010122188321301808536811958704438803736088421472541063787357076948146846835414037879022016769732531334221269682942189343108880350566592888895561030748175159496215943374168878440279837106429449044279753819591726210246893683968264122467517619399656847027744571103474791708905640659793382237308991939755523372029370794022021879277079715350215661628046032576997342282091848999608903792409567929658799120836901910355766139369032850817580260612743070907791886757336266504405377711637982277995475302493893457969927181644390002171934295256947555376030155467041229143054317427806680224497735461742681235148068603225388158007861236686873575988872058232826648366312303763181898911419375090921075635851881341596903281777961171812784111953280691802015367056291197361020808660458608423296753758034856479538446346308194025157620288190028931068838227627239417806098208072258822819248530197574412426055220360087855311421130678238716846108417467087995180254867357256494951450514053083911575430295514401754709293858406580817154703106150364162101304705258517641309961834435632600464628321070641374511313848111785126897025614558763605456943706531334291226864901289615110234358390214273119201322521276212144212646721762824303068546069693901616623580984880666294509346240678343449033044326221764069645533158661491071138075010925409029953184884445883230238042084534171701736399407508142685579597497819397066158965674586406545856912320888102836934889040263276155841933341896600239170643830804319110792368437766042547998207011251826918340305506176919104506310488002272308636910471478095894871661153007209974265173005282219846316151413632289630883457444858742620711184929747084663258699076264153354149005607922867905097434364483063756832771627183619491045684232680641732395372476057517019203211483400220133074604594380570302269329463298910256813663695170342348391658485825222453138073175194216749229575696609148253525652416231620543504574017732127541560647589047834981197049885163750927504067416691580110296117522294596269652670863954835770824122947436032133683424426886666039023076573062744733487286944424286915703442187196329953553137022778363693297630770126483641436060479479365231970477936301437747567179162211265271326918100472452800013877684752386356804336520214667208982852512148781160592058875108168096171838915881851586358185511572854142332392140987107803866282273884618597213610435361792207969725191280474548911939571904682718090604647890851611294412185400591954505014817164340552339910691834399588492815375391547574777673900460256456961452471105026305173038803082389601037468741169832441807300582828889251630548010673058418787507265046886380956028181881714742795887700553658523344872804740872390211010809625895820415619962817268980108146069700467834983189611520719818834385179786498373636357488292075190044741860876059739710004314247417559904074082981579694511621394355767702714027023229974915806192550639948623808110340364113035960535211089501901883967991527361077062847017623926208902451085043562637272289128837757757515299988398091171197336702979211739403921669486591626691170640971379042390237152802361042445003705706201055378343989444347222245049989486048143870457736770522977775197963678345395172338068607080095824576716154507390081940704480873583185486474795660368824605539311325845702627056884812438658613195777195775350165113750502166731553630013791774732578326390226653710802915954937834346919775148988719191173119480249443331962030709694840132659297999696345999889738396160877959779145097704066674151237835527282284800757948141627999043383664325615747142977667857856003722188315016803342208972180388174527463701371733714473345161740729714752390564652460930708769817239034118573394510878927136427203860360169889035041062752716360011002103970498727806881426188873232861414122683204264778115733046551452668982076654418667574481834958434477576898352234157299745199032553406415562399382099960125181957658438803476331136636311626367078491163559127909575747231936931220869615931830581172120460195659376775979657279866982282332150899197824333191692781238397770073421125200832536441998810791638469390111505118985343506797190388886677902129797665421090335849724204610210273009412865673183727371468571912134681145834166277941141289430316975825829129131545312486559988942198764562067022285335589680142603629954140721101873634388871870242505301348909429200167973319485456528377963019816942323950408590740085414507569729430305358873254978978482969694363336584198384021105559671470253629033502783070929085245655764925173461677864965555098364127431475423158400837491754386140509108194066908403486541641297712634795921820315402922048537828032726995363232195528696080973796206265197697963077282994780351800111514580747225155904393488258806044902511974869847366418586668360467449155312571841914350549552014154955638609780489179327179693444463294502988574902714648747615580656006449335851494858633684763074859250327679197032996988871015880675742481433284667758434439757684974862904195753555247093375348689054801092077294475544225645111152023630741611289869451835174154472184142918735890573916915031998582426748695419658323866795049821603170591283450419352777888534042554140534693479550941204374566734369697097010553612664411590802584028854742915799315515976105480847205712287022710129786085080316496908575401312463696109233063393264082835828522356816149259203106865702890190723710058997412827562189605694614855067271920634096567378604547643465224748487639128595710725538104202594348382638423914770564339542205238035741786629946459037709853083785740080139267186296362372242916150465797901092675700554560201238495383455797647281310054235904342083048349100253144690988969749072164835859506107285095097365712401076507206542127032091728058046438449112094743725869147494529331585102151253929201121349691992614281635332960817950225200048445885726134180332638768500357592683792880589274574743867101301127132213594306475345787978412208839180265810635260883740176480260996850737178933527965142652199132523000504910596467753229824889861550812434221271295890869746579942080470502638315431628216951151581138477739886131582319503978171825071140046510384724425741038084483325624437092942902423615193407615035823708225532988303927108025709271728340607568987665597739698539753555324542896687724642120069488814567390978230681605047121943363082090151122559904449092130368788852812941345750092473777063337690239320881306454591564166830366430821285081345383259676977362795159853280697057924887784559904598983718705608429698619474188157660772740761347919632792151204515821035433167974542110092000722025928508981250016881953427680312581509471026397136411190854739636028772123817561243503798604310413604347349128541827191140112884336435213478808856379812070509117504996905878338084467665994751851429545198963793673781775185642273033697564720205550133952782499032262563126155576245095071208669605039188293300956502376952101072305719367008355977427277866235066452793733070182214659060779009554536527012273260288358741407344793917275411650559048808647878008697109576804608216802179519583539546079272293399056066349726178436890964898266124827861981983489231241582945304183443266899792927374498260146319640413759602861252531417593883296270704400049646597800277286031154169915709759360665611063611030876078998251405381527273837879315445891107514084702432338699293449812984572319415772934433088796856816613574148410613010187962429562139169716860922906017298271279133622525720156689282418299890397742264189061719221327398774343113016281494374360973530466191923004461312384739924867204727558396252041850586655032443066969896091947221698428228432204351316094477506713519562626318271506301152830077917020530236794170544871807959507026463580069135346916612608626421664192846233355009378950266770731546858552332243559746529656888090904100083218307374140839154099636959542247430301951142754582455085594808201190368648594340210633465835106192114151084251835806444477349924884089031808516266419851638866443918225655841320519779571193955686358531022129073559472850528495433427283123723952993015511159869895722401863561629184150271372354342629953576027482591679139120082049586776554962182646566226723075657222983606175610263896564028858317266655583333853830118725426796927498336068704063234693957983204256614540661790993082009911934618162647094537516108020756372803134524504267596671890289910069954788348705118120311391312401800957511369035878626708224284171077736819855796429320381866318360300524827210670786616435429547805705989674296808464568313176544221345531590755811320474349955288277144074650300223689016418379009884518597906903884892940696199474314965693145363592461039649646627644829055899248845323612333262366785358530899742309624454350409206237743045355667049711500025228720983406849313260342299104567320830226985713016445826542649464316109754067511101012213762679612794329996815582252057370794704191058280671163529862215511019823715790717982475060816197161149254550777985228445626498241378228333777091661517043546139351120671810347322111694858417622135500068174604907079863986994075761889601410836776950915844405983703964198466984313407811903713463969764209327040257941235262797368841096490251008522314117678948961838260725525535085698150294301976957121907262443004575311120910978385963665951999436827263790097192323497451268785473529176969795591997711681797055961726133824915534473394589837189575243522118690707957530015374135570743334030399487235492058063580705094152597481687448690245038499143643045662745148011212450287874166503483230195530944900097801101149334018295470548673829621124130541231335255207077840456070259807901980299373373447148754943119313141054634055802838208338354338014854320122564897082433344409112079071899709473049429411574558359088451278612826613258156977388477434152709921497212635473898579095071952199021918115190343158691885155054483692923446358542471393777571815888884339590247165215177475167952209775304683775461482140135955663077558068505908382986372415172012885876917003873466751560547566829816536318794214685765311414835101517670811129596058009352345061352471890958949830053714895784613231583880927638528606239434109121021668623423211531948362877630926863057069102002173418927490840982675377627626933231635385240866458102633806864909776847198818155001940357679632495149901726954881023108219920632200990739419059801578671474460249161848501030750680925889786512945740823811162928944224432357444054594113348463134753124454900198779419880192174589684759926971086395723013140830332948685718418662682013595237435422799256681781898778673768342589001031634404762457555922885494562655607344561815737851510332368065948774924889551373759347611715461959631952394389343972302293275053891491854448198326678486265793319986968578790472579100892983109424600655940510481454358977581160525781161371851556874327160485323354231860051149886363596601989634084467179208043554990168809276841990999722791371279463862587371581565798368226680447558091291950408484896664130110901645601579254210661573636384762673366583343036975373281629346082911683662353474174335133331958421356026333496520002523042452125646751287047947532681193843310357570771483038391819034979044736022507400915432846769699216509749096314079881101762737168003150930943996464657024033632995009177349798194385302829961093705756341456501286055930132370480543498851562860386789842195239474075905406952442278213162170021923336076226124527338087534956039860124320025805620290028920952118306916073150890487687905719112671965665647682078351552047318797703654675683844673278126284418840695919268073550567924834006459660866835632149454996185997462529491451180906875416600783962922455121062409572704808993449629127546817475015668290285336485159745602770308146690776225945634423647712110627708294182378162345455644748517576626148205320186978912792437427932767856440720485355112021885807105785400679339317893786781994048468441099733955983939637762735499893114624949973914274306615104221203878961056087092344524162477445526750383641239869342688906554438227944129515828564064203564789436640207774131131129070813582394813045328789955997810162734552946800691953266244013186883165496465975840106229880845029479932715606146063243298638730729952864152001077495888127273040213080821810023404778681825534846588999530717947859591154038845470228251937482546688141826435043349780379030922533021806536456857824894089838314473532687966494335720935281517771707165127714156734644488787353064884762655598902903189302362810165931220309806619623968083312746759259306140231899952808468531992560979645181895095693866048428109216645314702681739429798115349743489421914778432858574097196292406847250392156507368892676682958473444094310275338835873834802533023693404497788730015992473731672171577449507538911506615594558691654927754558439490135020402565106268954384107873308225109757733603305101383459005624416691068063203207856440994310547505650362872689151568090686558603184116345659484007767824078337098283162201969064026238594505958323341767839566584130574384319859865023413767085321950789301492618399574208572764650105804842745952777243546802543783415021153229493260710948921716717449498379132232123860233239015015934326109285653308891396249107241174913790968068687700759798829895453022568460408236011451629919397096393133642564565629088198567070361239200663305289936339765411607233150686005985288778082768054127252690813066833026864964921971432815399659748106057408505261084561027200625963415352765547604158632953331110845512503664651765760730023466385464472882083714462823008175603882219141768833599781670919525001996821048505412551823637944437486870791775940278990231551971429993762570098362002545252435065710013553714226470447888433425239782419245369285965705961529152419113878900617614935416780464175330406564597712647168588669269504673733682366505876599403509550827508757389439559365346190483353325844372436259642616579834435922249958798627503297447547039205846831080877159647167547017328866626990060785535265665699717149765454531730364464146766860194167568237643001971403368322554088538517570634682604893508118761210389210954132848638512402607378735865410490805793532755931573432034717742031712339976636398968908200074915314526887443521144259982789478830547758147887497952214173434137400426042195741729596624932264619487429671144018811740626607140745155398478061610814078497873606764675464818656088526728793513776666359533812745458740831814461847475799695667623835975779328255722957111054795083029220975560203499809237287779697758877385425877163026730260305096627359518505470207392806676475740415349833713040096301826593652535784691983888939528249403374460819130731879222201791008197704412672844130188871855042749469958211640453347132318055317823167422843162580677644616214102944245719786756396596544013961676224267512743854480200082146169909657832083680299302985452952137022205187893306497742538272146140302289588470290591650794354445204661774136036860319014422669936242794132794862797532292852045464685292250199389546506566775764653407787810576193234851593827132543966394533677667793917064717913236928205553186137412697468335197942169139851670738425038022937711684014896238363350079329987420228202341864186873952942081153883116928290173980879339095265070893454165586793540697193880879286801256498931588762064385864603503652960645599548899154302168282864785540870215100832080588905680835233829733496852596051967180495779877636606694604017557650833332075453706857196693040464277092097738054519596388372730643526329242271301572467953434959158516629194128743430379652357381114030979419321550152164919912709211734417671061408557181179793504075840260951779466844936323580661197932396928932397299686097124959756973497066910734367418199306435308743724737203689672193172271593060304917141528292373711317480669438623904420097643379669442382484513243061366712201552352950983896620385333969777454926047925080157480987726022955111879522265527107114170668335378377923802555600677354013130848279447525995946762690496195857365319175870242436797566126263181343514938467893502286402410971323346615285838608235117910626039734394903034464372664358532147502404415576186788759653035567781461781780486278726759398203174724030136421538265908356241827040782947855919229722088545517455098170074917648836363033936391913575266101636510312199821612152417252845232090691825429396387343745714391236864297893869872921209619957577689382443775417793739733113451347740168975906979706102724726316173524720636768588728922373123187450598352207301209526149949220180064965508900131694855973028239872678747324770910202014319612357389069810112075775466266505887262210397468774961720229399142814111522955497220155762385281499379398674387778809476765511912782858064463781568100952358694525728113356421184640729391334362619166654241402202247626725175921505489892270813341346732949371708907062504887320397991582209497933890425450590664568506805180134642190839481818902280705612795340328163152380105103952383850270314959730234571229947665853694813793685348886488906685668369481617904597688899333962117327842926660700309881782249028395962664116786385875839126363434969051234662044720048729631539061034088845323196604614075049558527949483253583675633977440426897454897519532248722903569548689859077238774351175595466329035673838380409986633940747918499891939040952984669782935881208337102213270419799113744836529656904265550931777609356106781613361716241723868818386685017445718078411345153606191742074343741780953295720723172309436769044352087736039581591605750919856978037790017571926401363639573399927958081401920759920888250171221857366140556404294843814334444468008313163494513669376323819749015074655828635723592517334956210702519452002967061170938251423524224973937340284647340644505189242848873660631194584193578896880821168758372581103201765322922655017014945830841354241460499661882279398632367655075308733318912380694016536798795216657941866081875374977854804340780735851510643046871127469653406101806317453087433434425277665954298662063577087597088352679541927075708916718501911297912429430606378901237064679899089297528292120888462641176221988036833637323572649885130524670547975849144948254974554402424701390502380168178649931843535265159372289583640463434719291728070994068503274430585343264137822083896343451449965642616832897897086188602635646074470587779208006824858027619004679655632935268919823285691740186502348256145867978268122784430586228086528729131132238983970060992471230305459437966600496994797559600569333222220661034875253156188411702193326864777685165253782282713418665289061837475705061505617848973429504715016540320692229509092060104673057492096818193343788475345123913316322824366127611134250495698705071974336264306498848151698519882360249693461854806593496409306941419210706398491669866042971628671034511354062836168094171601626544070608986192580980108955377219945649275175838116334399188182598266538388601495010866140746865830994025985459795189226645476050048548638380747905562375279646773199970283384972330202676793013737559512106195629521070968381350940188825474372031364214032399366686561485316096759540671020697625634608462958862773217644778443670165974345401971800258454986224741127314749422418465371187627669180863720615264540007215892545549881793810696317762460570636407361386605341569593002968706505695542245800695584417813470920731389548364380129733018882099807986916515900018396638494164139752912235690460479259025628430877109296806613264876412972508044970841405174272314529352843017410135060680461008800130831461031810102048421095366242326257358880688278657788611697630749120197830602337519220793060533345051835329415395471124895571525230198294709932906403451185257039549400713206884750806806130544970746684328346715888565357688803256728878184003117705435297988585526856578476436169673526745456264547340920105138963139194124178668725009104243246857083915521738047024004515098812988462280326970364871226091481518109833784199687727903094161538717023076507387613501132869910726614502946196355930508703358776798481265181179055819266454232140068872901565062599706260976266464719635340352723275004344357751962708690025489605474000962470889402961979249462863095021961214938651320329972488316775948914540910233516679128556786391753632074457796357945149341378573529649706809421446800590887459517713890271142046105824912786553918633351843881747012671857686778243714446756051494726369425227888424929629690870024935773683880376116285459856813222296613596898163623918845224502064421374767190931935020575355841011186330490714393346131725665875398513101224019125019681075747856519844322749809943983177472753072350102951423627185392941025064549754391154261872456138192859444454898424943081479125180364207436597384266577599956959304075015620781401302196171747984121531633578572267045928504709595196999046930547795718679464643732306330994587791168055713308340744784203649028771254990470727834746730794472689702728473026084645486578168102897174384476372127303314201354888508118768442306570538335485805334453914591314110171686499459424327434279973577058518786320515724218120584559716173228427852185934002212633330157015231933581956597920014841336093399816118568750189412611231489500722962000376179256975612833898591775418248906134452140179217117965165144163878612930272238792872306341735622229523659067175696511271767864432977704708284718266741396787984483613220377479582809238139917349772246620452976996740312668036565567551474374374858461941680980564150979991597399230778270010415517807583529883940032564281700873175818722262656657257567551721683403607023399447650637651644267662779892860368107290751731846263814995899777571950000582077886247580049136630770911168541257865359615944038600432660914874672430695153168203210873143674973195720554388800218138724136649912342615464909245101055867576133822648173921842343551201755649527404916286388344917058089241823286203603732164524449281411470945499849035685553554714929077359715110711763791182798968247750350720435093345249188095006420938730614157048400511998508136301617598825734173670522321892824691130955470887239536640663968865872004962261695670046928002230098483516003614480883222570391121780941860346154881171644300977311504945893858865160681734963192405881098047853311066001516666176664798717457133716118096607104880054528536972657859129516153181353177513516033556512349955369713211822661062088554667775230885617828269836520084875817180161701668739256690319907596162618116501925883036121950420630862575938509336049066227801733706241139243330383531299977984414695831598398580883491851426333575919483190123099370139734652450546558947668295773175742369387025440691029563485865997079992203962310761535107818304677101530071235044559877908679504474973591417702848876871642072976548663395459384875735873112356533893065766607872216926770794223584207192854348200523435146239027695922034090841638368567691900608713569279078557134552106622474502416159032464447038700274947731100982695056163572582330158518838166632337636092423415294162831691224420426497980920243311109515027449354849985399197554920235765384446192929418103029258762280561811377344181176048198976592935357087169251846912635172592858427547427020995555434279706841807146438827042791409215243061746941927651765332060168108942156331520719983814538825411256744092742747588522303866539721813732410017820642343711692534657708609227527960812589518365972168944050849104992162160877684597809471563372012650817956683335464853008702332840111954744857183628171906574841864472004504038526920541588834730084531500776248111469017843495555839251084537083406090051111225255803990538561279824104291792107661473249148957240265968920520826563774264696223643946002670518079155290897339483856416356683404605957528294207744442153308347391609250221515943823354100823685334862403003884949246615778169976069242963251448360809788973111846548577682645953719989476134322566821683881674547171987177208830865734575617505401475232665640648484390352143105920249959803610693321101742519758443897770305901961365107498114542713831174184512967874228839742250163901606305808827485269652615653815167638660771165691894336884703454392421865909472048266597853880142229342723506566608466716217905244097157864888367443363672733726603595978854491795475386662804950768517124869827179466735225791615792799253842153798371594588199371483977318364322067553844059814060155243062191496282915732232130018752818156511965287763572280754380117920628917248691500344999339992064042133217176120511811075077323654850552293200207622651955343910437247903194051256033153531333155529953214035254757522097034337098291419172066325746541946667846270456007026081157309721512315888420394980222088187159595554218483165946081266287687012692336166712162023831161174191473672809976568182209448340063467613159811892244862425155262237097036874419468694172006181287741796490068868987916487395674166935330970459319725136773763867536560119225793742589182042322460334330204778921864763799431890410602079179803092159576407091850606117659638979357948363981669803647725543973823700472138433511646034505816030103943353715718859889695151727696374161431069847086813004168187161954123926427170572319665323465387547039178380061323976309595268162772916293203875921656002357451654834890379065640890337228993502367001269868262202114606589069608059715666608067681694795942916871093701979886028242027824453340175381463697183690996140153968730222008986841532034938115983448372420364231355323329257670833962159374249155306066376923454866231647422952833559305480172522420951348972164480690011687157075855976297693080494091530063482840988104677834512385746463185993640150967294226404432147403505905551343860994952147741415745976719974411313170548811775526842871629186932151074534928510233130993908693598821240742145107744915716171817134355483061099756761217725844826981191840309127588776729757142695372158200985118471171628549847731134068556753394085124225000439586916893041980235223705495258249625161330185406148913646526136646228706005143843413376350898610636330355880904373253762638058088378497304626073596834131528491852164631197464588839254786494453769774440516100302231893994248881853386006350555128434568515751770440505692164166757528509219286479112781074592726295696902518341497918277455692698601906610982658367880726421717817936258209391674367845054838502608320037911576991624534086248529515767165156396391146902296958169762522405887626870943479777042400391801590134628999239042202389275085242712552689046012781239155720526870741801396606859292480485798647483272398388286495948516759814307783762016103134923676211450754604526857673279256169346787214501119492878631819830188701382756456483940685412043814259446539507294928760082007838276537959602724960146205165393110799058224491333609813960504105412793989723796394545778401964006538600083710663484338789015860082093265669562023429088088079805939172310706681012284632924611433589898688930074488585929288980985652662628057422551648514072550178426430227688213808723183269740368465806094430929775574442686709561538478090593292603129708774853392319163483792831112028021522220944012910494382612770698891495659718807827266483962730503420164501382479015968761372172408685243099791198526013066337148274120124419725253618934794556161732486015209395661723657079656290782585514981101923328758198413206572078289823580951547247075195290825701033963729139219011377081872341605678734671491421675540407842736049421406280818768170435805345788033377393900508781771339270151400900752077574801609954154130957982653720383569832908191214733803750513691824353767679784611890539221763343777754118406149868998586885910691028087225752259620675154814740612350589034025397933657028949532139925054686546651272225640311541831027533510368714968957884813528908119995507147511441200249398829486693305913095280167385501772984210289140716787538039930174530850457285307406104542975114726211923089437967665979746218338889188772456661998028541047766893236796423345639541919472088957102169794126670334643529454181434635526986187644714849557580564879225654180078819090605664865517014314429827337130747137436323550601112907703927472081780819316040069748084157676071161582781671579003590360279312504041224507440137380251204400559551075101565523902471775308952850092597192103168442976439624683963354205220445208415929745924726139276029449949015976458972998164705135087265348112920313105724229645487156919166919059771382119958762567536205179893718428774606508613170002630860930038405080650846577116650687268292177124052680337635765628736212386779634966056655755929720649842737095725745304040584336374008875987352055960745747200417425895436043803736742266942084731887400665664002846667668197882884527525216345496945935165511754232544131305917913627958967914234550596163917822869381564670751675676741153360358341527818507032244424855562939041530292557390684320210572279478313083241298231220533619620715137577172354775880094583754221773259271515474644744740325902876992063141965651427620366221221812893054591232431473346487583384196051884853937968208455435316643834159600005176819560847629240683400966996147751306832012232490802992504928794245323387264625407474636937653076864480963849487180600689985281437223943729903270152016127641786164117379303488685841378746521474554308414835379875567391312413249593497763859455134914702516964182814876458143611844200355477231311632650539005879032887786060608110084344809330487969334748755513914349750496373380831088173583012837186796507519982880075933955311480813666265178118953426000458160976115047480682220717849292518375516290564905750167306917430131777787646503823243566401934396772805233297233489581150470812088982316611422934109062288488739373898707051242638190826580432815831346759552703223178735331965883075190390970757405117776426578178918637605088081321291964079234321028218770224606584390822484050687668623048551507583350291360749435262793838424512728076362677595349494931615651450775744543552528054593779495690886482171417181027924837051528776925777523296510183304014123122763769671141379576264981386534606988836012931679432175927742161799985405735129950432419745929507771022092005811322577309190060900202542700902191088409361968468291995247633581432699868046270702212149495999191683636470101985165418497285917270377932798180569009510598019968548994622630074425777988271837502259166234134853873590473226012371901785030412960636058001520653242516735937609579623870985787884673104701422918970027754983231591153933099861021731039382517190480142985478667092483625270011485505958606112210716450771028116503926578080507043053033527237508517635401813941591074386735252828839951760142562717099889277532313467283630569785930246017895658280926003546781944162384261510066424701793182126079118609658527224272443876175929443808898120793779630202569193452952112520860945229562747350244088402285713685977633749293395286455294961707217742334028820879247246635799566419991226491533352837130296590648570500863617103311101048632354266328986106943730879833143642530124059090140848655300446899098832224360530432354521623598263909931644840321579200861235120898921121251329841020143773001780948920140115354966482458769023892552223184968230731565601617589814796818040086217790450718253424950262792111699106238294692736029464926309328343559928684051529414669708219796217521940801375478265015067695663836223042259982495933352612336380002186170497526173194349930557095207666782016319646435310009147607272300565343316545775647824477243306871338365393006902551530640315927267480668304426962338465571468374799348533176327649361735752772090815482230324055953046550452778295909128565780152665569790458227400438626434469249201934005418451488131942908841407587016516923623669517478709219896866184733282705380082070155661237042027174467530237407769022677161884317637944655093572090570790543740706727491231610595663867775727434353954572250199672250098547700193406922496166460960826604172685774970269157437973792219550170861497201093078372249166347029897593236334963460039071469201174004359204768260941058778826961135456904872476639501446532066773358352572261979596421476457987089911598832480820771867867545719443672095585090023680279205319996964013510275009444118377844249205973117408337223816174640246633603699617133803090506183191607523867336457130201793343976014367077792714681465566616789128061688040563127269991990824124073467333405842497592316535211894818070389384502043717954318868196137815356311631026414842376329090228266398477369352145246174635976747841122173437088703183209535653220484683347461164511230685981077330473610636510918900541037799805351269941465850397602868418596172701268160759965417976500826199871054806498379693408007734675552256540501078443647556077506333448285821818879602837327953113607539336099901971081450198212611193352553852493931462128101866237873167805948931027895409843451055348023179366412325615983077237721857752116968028819304030690040423917995082931145927292393103629522385373767381863783316660008317177007700473061089091517112184638501226954417205191151179935270290373969124344212278372171092684001561232064034691187383079025254333347292652194587579072386027344657672262037954785100768464171658303605197570838429862773068095266158892554084930960612322486291100737537795446976994081931751480136419072957503478931334619970670108064729648722604158913922964731353277837839855534851261080879449471046689778099669335937422237406649606729554167582753689272515219723337842614769088412773219965806872063141383576082690594931840810812032955096866221686573469184057054938631639722791434246869864541311136230974985207735010462414295985378213290860438046779096904855702463793166431332248085313082457572691260968479506068054830682503854901882944970645961216900963120377838808396434243916579485198945578466261593921984226590297878969797492121320347107521222504676826306116298899444433956452303954821902692813632208444323347723914152381704941941260500817310232768261130358925470119902575835622676187519353512408708485499305283945137971021272607290867042128493855999920722050872354329788762213500349109605074628779112358120195566109358878578264838627352811935934543543519418012286413508191122359250092844086546080164828215653406222780460634766327446606011144522925118340735920409599612992712190240194693707426162817114401025675180965582468296997673987364307270923011676293752002189195526975418347287317226220095520277147430761991925332020495130575019578096784105191205490290550934244492021528633003333596277214521942681985379452229761366507419906552667027840879103339292179618300365408982678715761091111621349853973433932736183913800196130656435278142879948059977260681317257999144935438898774097594009704977367223134826944291683809768791765282856168859632525830047181556247925606016750227048547349923181485667907239352606662175680095134058974743227361839686673169479094945362016249900950972605203213446602124117809626040448158208169319025986355572374507789636608115323422421299125868131208248301001140836691906430904033400471301130628076503472633667556509458050829932853119885670109031229987296038295064951889108842348075830830652675479659947105287999732672167966329130136372688323129126877670056736938715646115266538319217486861838489350218079311670682225438718793349347318558466738399370707134607449075873524002693990388511059914148675307345997419795568759660721541458986599296962963734283063815819627041606446954827223760775236271332215319847206869022272119152495728278398882030781203346123459351378644077840210539296144243337876599083841641284682861835442424656997907184174649713417644580656234533649263740162431350732105419107647878662289498220658777090381194190304737953467210104713765193209467299237870208158434097776900359342862047835551055333288434623576196995330045930983857602296840040922324968033911567068353965481016962021654299800839400069070638750864495596161763715854191617751357459095546005682877448602774938596560221908448768630260100513853762991274786671929027026779904005232910403744167303708200981969342945539670364927306015610887948057854049410808244033430072032632295710564076005117809555131346840536130375133674795204699065100909934294042701249103097571418385914007298582862874441845334349234925537121835195766617353536973048216935437324663250769743812553510689240750789349684088649767764444544067185913436489628029387686245775678789947668632134011388986981313715511616526377223992210139878159672892288354900991602786083071249351236868025473469578951243718479645402579823124283278541972692573235679031109807396950255844127224497392349661210456498469581178717456380297540188300125610403287085227125414922852149893761424393913003658476392677231822947165479556919241610422118503362149461425618703282210109605490699004366279324622092738928970602438540679060146576314659689296029938823086018881346340253269840387193692409139006131131379466123641498130793946531626204794324879356290082997619616220888168307092891561460542634184141690606725828257937380514167506064323734834953516668626073647506502684864705111939477409805426745952946729479470961967566083553746465544139272271403723268189317586815353831176129791585341100658828859264376772708574220822775137773661911657305947154413531666178910971370381755951614022966350443697745025496419268718131089919166053692249788163999585050578609881786399096277703591234216708533461174353079784930460415375528867224081353732517313895904061475152198765670632196181217624802448682912970016466137229753121862556207885769809936281324598240196777838771999620175758725230715085506823222614463212112144810134807291097675473562881085793599269854765113838762626420935939069552443173843877035560324971634970074483423116263749168159725987910319166219673871956154418932287896657651886713047230727947110971490555482173593761303725972395624380876721566333954002569525312331903756364234718939549670174551945201607298525044112423047020696500827485901044261074264087463023457396092729581212937082509342253180512979111671531520222421630969919977245821625348331779650851763027394476515186943947383760013809147252962536924361479339944223709228797980614816815187421881516171015206175869546673835645306017669222440540766448757186377441525773617838968127753940273181396438071819003368843621958087097577403310831717373248515801191097983226659345233495679259467924041688627920994414355093305788710647055317934532232801693069475800193628269791086998817121503060216293852431935103042856066578395935446489074105282357141955665262788706713291085985734465444192690863415466178426204875896969988984339675905333808643094403987151737686232641753976959167794790359443348755257232198468988031416828589140617525196578218875637716458306778372068362483647908461720372208275973974713917603710294495064304783658246646144150460898636945444662886916765867624689439668728838605882691329607844251318564971088061648562143180766032309472122733081847975294156440573340180838109524815613002157440343894373538614796697122104245406878551620290679367059853067781473350472506567204389039878939013860254994689606306065910855018018507026109587871080483990915647522125404483285674760664412029658825730875479572169056827500530618081400534725115863590590668580867691055188962086468928427618750609328744754036150523439487810996193633873009393880049460978388884846999991923134197922757250241893100518879015154373032546800911829385465476345457149475577896969165922922570795755699884318380732113723207729541695457139343651178407297850454053915439048878468885788061350144747518412167744745766891623966689171495784943142457891434025428067783048967707471227379224094173328350110712028577385259302481573605000310505378146270852741667064783288271753229208090444463287669459942550077880817360692396211748578576956948728756757992916746138912727207623848154474995966658182118404734482588380111750781956772595707226279431353484427237385776657834879144863302017063138409192934760322272320024828388923658770688880737847658873578962497614775438840330890203631586509148188433169288952355609582612112334806749805650407316005857204001843873561236162058240318934449461188794737331954664871550961199474357870385979753160804985881433853068740838375119872244739512769424119661306576574168840142207476724299410592758716995206470808791502334297029744977512002098363115641617909853359103647084070135742663332064225517968706617937801860070897196105833862373253437992628242725649259007032175028650881279068978133802916352052476284736956222060322528485430446605821688034981264605224729836563384292641319870005303693366281389682131692992243396115482807879445365758430238505045024056603504109549116586781645005970210654743884719178064812591702627966694230657569695079799923362763857762451774235361756076023529083190739829812202197882433913284920840995463963777322080761184310299688763880990036328541292133142618859096213636852258949415939145137336934611636347239243741344262001748706559658777572398112726390953078908460689059495859476719071560958527736983424111622903828409812867412184545037853248937392660324114663795175195147817235871499926630472240936512595685972533814254129828478326056141091837037397666956554854959953235080780438087106482653515787823442032542228485820372345533075998281502139259527529315940153299284424132017259638212601513648417472379016704232121816522928340611595601057743951843223724124851744426069089813792268145968678187412982694052721920446206410495424444453250174114503161568617854284406975381804918774327853444212504181301356175119506173548113943615612476673522567329806352650580365681881318931309940037856023341651906763164910111361373894957812149437169561414465813992335557689002524720951069402252435047879375768727320968541657675078393620633543248649802792872684936579475204706169508505414685348155901289742327418551620124052266652342104445523664796507357509389341086529446626953985125739960326040328540289456595572094555889038395925453509923683077140809025023557131235537007348689793939248285544828793100889677310413721549523332677178925166493486493009571275185232832739571098459424688404564431706801522560139060749447808579809201030314272723299628675173070550380037442373304476923550454123399678383211199963061906375628925631287705190297674351415316320940503357978024316570188016723514640082673691890209531993391121167968239527595420951005238186078663264859662800000239779535138839227757737766596761354659489928972237223205371546351793371212701061720901970061630901168162194910622716913398274855876771096466202379170189302181914376234280396065180646738904732586150796495470760232114995486962472737279439513036044042944302906147860203114209303365307574375446638791359141711376346683518364221501722821152385236045922001054465190330967603779558949935529823298525575567522398493926909613800159653727443204095596674769655569194113232183728748442882659854187373251309035042001630301710913449578358049565436587800915262989428336078424852219410736022656637389438410082307727437701176602670985740587867896940956143259278202546982363325263737386304003050069056984881748010911804843404933117003340133377032299230513356178098150295730928189634505864741035149105099288268549075875824649022142042411217866903806585722568412962293722782503225802913115138215997897411917304269317246257711707639626303354853161592497040816937511219927018762605417071863541629121918882163463500258618363699246635735396370366437069821424088606124027446285535698402778677878947813825885424047733152878647474686757433968528235302727390901478912427634654520871927938614295704111613161247508243683914639889284702928475178616188368317482200239459147861852450973785631163837532823152154499479948995644424694175364023104372249935015519493188917613579222601114078494132435730528735695794830919810266861364065429488564704379983332432719592763694789687834891446593081891574813380650493076594986996270169121234372773589727628898887227437646877752649106167905687398819098432929489719166404089479676324159117013607652890390769122649412193437586490358215871004067129021510027658147724386793877586343485126999682903462800832802599172532284502223061689010658083054400446828261526903072949989045026720579191508870979902298142965390208574098843034664788189131133482275989645806865158733375382043499331708493085963104723286011180988354554257425952763810787899666632430038428973165469674816204730121040828093985768270407378815788552422671717851375143798021801150990280398369171433740464320914729757423124293099770820482521553058301715822567715933852381126557461821039233717248884386574786203394770540087019266742211567177356361835382528025748027492573918785414943675369085442486421038113270844340100490006171935340339483620934234998187115761585873489758330536463736301954706545518095786029322424886443362679888955657764756777717595731862997565840777472360707582700547120793842256050421638664887883757376932059956120487038660965122491437747552207495716785652576994062741453489068436683468570225707550541670484544693036686034018317364191147202254556874926579675486474125440830684145756610164837819960850642150249456342004234262749871085226042419976720823966812643536399756545143788237079457556309326534476860756474447761309079681463815929153546667576186721944923460565779172536568568851355737737843308094038153462085643856448255106443184285655977274689530506901386572438011742678719727453313318500745155023740493971236942723126588242392583408802807046983342067454045980751569994397690403772746869068582435802378811766314243604892922445568692262461175056841719723937031738161714676916230587520294554632774709251046525196235286737646655471479598059285199892145161067153546575695190288283527162992568498054594708565054501155758143837607242740791311894475028099721545033656188086506171816243575345435481728580161437496094741779036559011681708182584414568401321665990348901406545781360162188607330372565628123981628672877629070054939937596023766547093215170607131008106758321495472268224853100354112916035829598628832942552684493445804212169554965718792637860362562122055384268092312596314977489216803883474970948639465393783502520721612824779421903205616060752087178806413337572892194643264482357930315417412651323911711155354740856416780497901886035168039837633900203060193438306164130138928999795736688492147056962484716071034846502550199023209818037600871383382093265432999841597564980727852144183453112695163214634547055210711956190817641541605840617282131287878992420930137185493086876716399618003271990072375679413787225727192549281382455405160151208547111920340988524684601741638130328935919766141163957018561826187461606002873427256041236252345797286560241535485923901752384585621904741578113391885103717217593864530313853211367900102673275840317996516949988393415180941369377519876379490699627794160933998754909842785365270583718668993410703720551726683176287415277589389269412880183967912646174875617237766760572114139235924737863581791286694298063279645967529977999147829595311240764751596300400471128369911060866911069033250350990482525264339168166265098383360236347927636418105033345553854534700164126385249192311843584185596459166751992568211717385353378501380521332709344633730632836046980213217005452506876683160010736838030418182839902834562980913069537728120362582514263690218067920100411252821635140684274687519438624837701200488120945584775664879828365659547027274826268122107478923849858940580536498046880178170437643064485645160223917873838116151670570085070388862417477067468239288653261017739440301899621095333776502638210492547525078734807429739388149776747408260680426966890324251099774333518756088167320846089243179743686122041386014021715338847983392594825845562131352307989272751503045409100257785608619017760160030415936735789711794746913542284441037160191414535817807726321296789485574465278032553587118311311905436793875544840756463805603365712065306171751665522560643232197038343750725965672069566112340025509005262413059008185578989684714880489431870828446295578436331436380356429898276605472914904504830079725287594604659629055534576066961093924112992925360594716501382981386118776262432377960501959907145419044268847376004309827712818726058882967340758706538310566464694273801766910731099314987400119088837299403444131013747876478246901307224003219654610575947401822924126828126199464069544324118570493433136396234286405976181221656972691869881881230173023233758521269657826723974991211062153963331588826345921415900316787014206763196247047950517187321332277796914664395745966654185752684032172298953459726021730683454357063909730606822010019719155097045104048502350800596025330484637682952701036638715468617682622779539629610781768567335269051772104687997242644369936603030870332128206007607853675803663462350373677002034731963544078869301835763909116122731266141226096705507970976494403924889747868031394820422326533862398874112137630505177195252829536652016311208436019273259672315446300628972610779256529366976463323271543223397704404355433816664359665715941780132306196686464978581289347705342622644829264767209566717592376993498597266767388529280730401813376689343453898491909836443579335418734370817456010477505696570632632327114174431583338151259662066905489311287884930282350542910977539689621801407336549070132842478817184807754474123270549627016587877292100876595957074084288765899282477971577071310585351663736352391814771003538717633695536767738798949509889184848015244349995674570790868542198156006501228692597629424199996110666084979100681315780588194493274137002651441024657310382071256445184030969190691433421481177199221346563908582320417089711647719362125118705160653302691358478029801976472150474165673095137088522077052136200120687942576736895663754508770547840606341215920797262394618559449764246534722864802501432875818279514939043060939444971985304459626189131607467176892339559335368849524663093640517565562427844904322486251290370985124386534434585795537920440934497639111190575110149387844121685011279294500778165067881201778456474886310401317870784156209564985014051722938097973181729810429589041085834002111906225426816293875822673654908792043338138835558239798888418250965015000537292155884323780965079447819858303361214822237946460896951767888738893178275888829643693804945307106253167755506709233248260649861517515444789333878990734559201287872627071845281280502095835267273350150375816093282076259786632435119710071744359862925463740229902035991244903822514980838687498420326201599850511198824783257637799113058079601710183749049659587501112612953885192592631912934396524329447778985326061851569937431364345705770069409429172110001683205793821448055027161764490540456165561142758070436050845168153285488711579650230985198940365182832481501522652987913175894983987090059850225559901667823272660022264455376726382916731332541327141096882407664644281474726762737787749537627130673496512419844359633893616865787370385426001339918988351332621474239241412006398623508232191774543971851339410863467312902401097102107186221675453153270519870393834006778057978398478027662970307367890344756189175325317112815086640465458881128108776134670190769788921895536136790837321913434194593329690194447247871380720252671786678627385867976988859356631492851622110442899154259250893667668177807016580912279800063006124492383530976651348990206637209027566641159837651513890485632405163014834105877878719540656790195883998422502312369344533125198163873173871411399608270863866469731275751769074548717971569079100569983625237997157739369332514736343099535237063150753545545705786334479729099034003037296984061507617206839033871321150230715805416571397308437012285167421172098307611297922282255979774289536182111826600309114643665821739426647476490668464220669402501359069610706635769946282467307388519925553241640685868406518847363374808674146318661697437841884597939927151174109059567592041926074740894599918567582475499228411573946778827512089743583839527114042770083392278683922225619052455076808530784857264832512328033055914141792022599844811746856107015626536890646358331588284770552725827483403398509998624100626587511887068924875993734510888479027814778536646655707643749679257682229771369808860641648871175270569013318807951667091790725856914710694091063321447094615865151383919677124928921728832413792269942960311277799598299886642685341720233716271716289659818046122161095398698109535743863391397334849245627876456994805155804567247067824804305689215980331576730767763884312101851504534368645685111306272809599660453592072798068760298476575449118976336214328350934316804593850151975537850943585764728485770700783146028986703042353778000555545972667083294613604000528138280174847602319129482051197140406318233879876575873555673597113414426167866981032969273863075891090521717740788877778261007979079317698625728097986015428791808952103901509677532266769954405147546930636716871769862288094136536482594381140224157547449222615368284676076173185142907338714582227941623118706979771099226619266489412258227874332602360512493439904658066529771660243900054550977142549381165509144452347850081851793414254764416623791632847290200927022265586936502370258037894701823454352347204334813489642164107742203484722812196929560790421458630293177571091361018107219389352552589689491464577762046527922104946348572309819955286909613656703436126561110697911657318436843457504997792365212437072710070777915347344389209732388612377384212781294845951649918461444215209966459244425431173279448614884820731064763774194021143342988337934938089807182206009827964620668200415441421779791352604069453723363963421366817526018216683590041807825030585835689036114555431024547826265740483506429777668786274247271206983158313179930706387613240574533744599317133612345091934515263554149516525052658340618430871734521227948692351635678609021255069228915918012669487525660609576916419322326612011227407772604633266491914860922445783893901301387521124958890823008212447321999375412064862209204798506999029935746288288313801582998342341191631102516313340002656148318274669476982473305159309715185827985991190681433860219060368860598191272484700446074055042955142025175254742711873020205519600125019081879658733527244749187006640778015655383187645104995729410012122088846216337364767289636173423998364560607443301471943032532381115559716233064788811406951187649465677646968533945213398255221144996853567243468044315107628529613802656888037640829617184322347421262254868151649352360407889710454236633847229108352500573264637089025590229923911331129902207634941769776695726826961453096332598914791286637263781449347407784567379800900285820303189754756500939807049618416888977557839406585805724443202597871604556384681587710136728631568220551063354810046208979630666615339543270520505964477152298476956192679717963941374044757004423673922945131748064218751418702955581974520313396602691619771643963737275514540924421964106358608826823902923813395731396232664779164160159423296616474324592421580742356096539710863865541366804188993353913629911517830567172256657649128560027716740181855813535737638171401960542027353861787025775491595275047591536765274916426799093458437605128033912711840927589882748023731562534506271246402226866420257353304457143679588011330086429918003264559694559974921378209513678358776222228841579403269577504447963530235119884858070428255127621182207354375010682401013167168401563335889459706246185319086426199320883913540157057604048127407186399901204432903181262057574529791743558146623424528329288110178300889409864997783461848143732344318257636415681376933305840864692762454085740664859862318635613433136627199274953755699230257368694275621505292648335570216680739622525004059772518502747250612916296303821947361761967798205671690772661056047217877117651013808682892152127035699227551860936227538116122594262184678365181224589583584006869973493620429828884150539364053657013716882571239475181026595271168506257428876516982083346678775000178028170221404720313264813499568752720187946325884637959537954618650206297020792969576789560262925821005244400908090261629700221144771732486189256110698426631522730763875343519478055244670413108754761063671199926342592379721327109930900021145301339037371317110472944934478012217819651125870514350378604899480903155953149994313602415263041389745894068723439665144079315309314489213634847479249674035393219232436783766210646951285334305020626538939421681419221340544112450523324492155171140250154943595752412388681847772654734140328501354942553601992774062263513942137776541664053961319955161349181267067151260753356849813370668242264619162327665943280818319130826906397219713336905717015733451629629552533194839520523976837444134394333002097114952890588931409770341210234739889177283142296109295178393380374611277911519728482992761502232926302885243583101219281282686018067933520140973853721812175599147520921111263260126226949773932565771881154672560533381351810090762799429501579031922555139267303985730634768532889505617164154579498780361992940343319389854445463373959515547030716540848330980537587886344464569938950388666824946968305794576752299126297478344366347360041810699385719328948018179427606233620852382735272659431877604899717574695601468730537758652504932617744567486068374865696757312902041749463859167753626337239791575022152809652680084833136165220820438887987178826601331668454411828257973900004898750483484020911411835824432728751279571182214863388485962119750461558274004117496419706435481247165341304434094267410181864264819012804748420635630644434975382137663209917497685205223483753509189708562412165380189672103953027705132157491171253824656323016766643144000040827174746143179524466880813656178623843271746391999770609097760108920380806150039454308925987092520830114828748421037034147447549351151473223032493205696239195110777517347898548594038069004121120046432575878254126762868081035101474829560606259303607167619123868086802838075614019458302211173900839105078360559772020914990896179977638455921081432582052882419799847148927768412517756402421724945228627974273265334689685776988625880720576380874665346885219120678259495036022189696975138143867579675593062463451418662292589741601346210902023583893256568310297803126387729390485221093861773036206602285548360331084525892127141186400720933266188249390686978307747994630230934302323331432325603785591822927479681968395294201737041521569564402598323414857666816538519593746189577307167158578030069037668943378477720759405530697549598483739634769634507479649630506229167533681723540824894247686123319450968575686832305653184724472154126448595195800781261297770790688817729832535731527934707363254448848185719668788406577924017222875238796992706352625612904187151871522914515258588741641341236719207381713322779226078712752495329970751855620822525075389467534021535631293021381920754986293046825554528481505683255415643370845599811991310247844962053911396426272399876540215604293860026884970343527638232380461265709555845597462042256029924156652666077902394258626783563061448298349993958543208209258622022998616658257097710933581008780736705971847425988027449145274749445572960269630253875633938762263336011201005949454910399731272449262078013059034338652810503117805886367334888268286868074654295175319880519672674963105301398817303115838150940620614172335755887503329914271361820746937958212952559425490076489449369779199216244476961162499565160369026361907787879095017660909281204352983562493396300166738615901838237423664935724604052712583647461083215612394107194354239784836198249791169765613140665040165416037391579497938748376203972337581990181752797530656967842683202674394010977365311047372060996526311174877956645302891993788588608551068945840019227663906644872725873751200279403624885207730748658052801517616431276157803378940323897201548938810594544354513153623707652336415767546931716409941009118298493851548681974485866931654157268389707593153267183679111281077074257520744849672045326893757154005899541711724469803623500598258383631279519996538358354361399853698898789510199480325426307519479336163183780462241150360177164485153851973551322107940503156567055986478234534562204582428489101842748304546040889390536530933615406317159557536262996989023841216213415509155218874283430513468569159923236607171858154969524662479201908773585148127785164653776985675118775519254374862053045613779198046268048011705432186658213170554979125509838941019743757364615918091002394484240940074931866884081489936986040491318932517624478642281706715227786914998038689879077329653540109181298830403444243171932159232768003350522535766578137214385968165430347717297045086346743743377802700615033803431992263262533528034491858894183576334378951459434347136110767459000686008577282612982838500165414401032699592563627785215974168077362810376629214927308679892273710233103712987414930304690124432719127436024387443871237929598872621900385776778564956244354117439617466046658023161893467954260085211129629285840837571914494940826854069825309251074122889815710062154868838579969067552458116332290628450656861850881036056511152630974707526186478030759503352417467977137899900375307440509243826721324457494490730824539820412751833813079082115049066657720231242641613242560835794944404394959156144942870803755904599278451945200038511621678428814080324994647277097973876828205306771138561407695663967534299855649677863447051683230137563353932261459047302016412793060191804500503335921272802971208719254781711309753261451299804470975262521069916284953355459053056042508734588215318638703242195178901646704142525151282922636683575444091715938778709509867066861757599155054415976248110144619933556820672565909105927174526565360776274143640963977687580842324985560653986883121154097922507186600478766790454688961645090492551362652279162872159801524155227109809179136853389209292240498582238607437579256615470330386848416945624736630018550798861692604882761324290259610171018867411011502133476714304053282364363554194872740972504586551081580513393340711787009884244992173452200197347232469355143273795467576589067154628643581305894311599459707428241964260269892060786554665609114528678969323175610019504568330420110374925919178712302640272714778433974985196166432991753724262305487977488236498219156383310709599654965223271518404514257059510583460772909312314662383026226057011471708691763471708090319441682424663291270607732764835827502833276221748132158453105808704669147605541634486460185417451731386045075612162754024118037103129910129373704194166955121963775921345031179985387448093949339164853037203779028503895855664686416988858235696846365319059425204348750586319688375732928379804777179552882747254126085758678761401295038375622786835282744943222266898275823905088075076138249298697735381949982702299273648538193990055712868086696482033636287987080331977723092851299589711636612346976590557635945182983693968620573504176155460108346788610806635548110793799113733085899080199046971952935236719099117336920735435900148420600503051899104943563425340898154617587828477390059716450019544155693889653925346579144989488465816313970951548540867182394715455249464764425942100516275942129193254001754972895571276379575668983623324925049319688926526388951801607341044671457864239465604249057969839653521283287776902687623935575799211825914687414867248644301524907875239377781232688004343412687652943155131281797977884128764815241606197337205032050963269355788889796203028418969603996878765017762063532861356768593435615413202927167555639722080194231099910514247286587644490345013432011943893763720436203832039970491063342150280280402557791584308109816306116388112679389794196596091393824468584496408649212096168102764849833137880067548917975620002771090528464305871826074998333216461466298319741974337192313609377546059899729904854859777939380987543144044384532208268844997966256823911571738034136915372432202090346072332195551247899185619209268599104295262740256789547634625265305515948407897980648283555949899100961606460929514092766930686999053576807851891710562432414613023046527543654847991722797888815229633722222702393138446686154333496615918456475908846301384136101192999742399872156001553547913270779241837705292883321573611209945509401400200690088858036849703133669891364894913952301570107631418150277149643154570098084768700321424664686903172751844359609236358261008641164511618468203310150150887311231130184135198962413423961465203708549738835836494259744343397520918195542446475745821269808107929446682586953339850894391892428586178234926325270433173375050400528785569104146198838482080100145157518142853793070682588301113434465424540856349205005137588048820026974684432530973229846981181363527882329416358390289948035559157402119092993200927054827523755319052418224454967419216372170521536198141743369506243359221376550094494130740210273696438985593138796494149999868454700353274643444258890628269668861674765773670454360436680557074988570620573937500967777603523300382059990117125957312911310918929073122338967829942713149430069577354972927816194276343541324343009649542123176891875977253926058975020130868944103889205955139652604239242231741698756848607368050232603046839973901827515174809309549594398644760749876581088986214672377328630501732063674735158760864858533194643798503787639483383332116199330457456953144093102752572875025645945697030756652815236314620067860242961142245078942859171323955994021338036043337084635562300376535460827623977146962253601246083322342986747741809530567398639801344308618434749665788335771509779226792387569871777457970420356678861137456832920687624968869884666962444568949721028280647742698890239627228730550723628077808038468125006999957931355436243592174414575461369858870507446473892576065156233849561863549152441139178416723525244917708542260687365081125315246663851754963753066445984777351273748715297129006484542375156256155515542345400547977880280087888260503413457097357212641384964131384108423349627729978414568758282440430965313813720214837581670550137146469870037831825359215852303407635747152718533691006894302670390258417626600439700559763301803031246278505653380969732360581103495941276017275122164708363098915400385329678306629764018289826718178962209327212666539243930483617323752048287361111661420858380131202650630355267767845887864248471765250170725380628647214440618848706006848085617749682212621774839094380309461325630873396664034430327649586768953194038694796637133441468591558301833271538237997327218211654704103154165333089480399645749997013384197352003374298625586798009224819229911356938596691729267055777586889297305507206628683362139075603161517900083119146593686573670157152835960400302414685541680837365788434811817105508144500694069602695716537914094674588889996521419711552103213196487551776501954868200921539103616457141466974808656459613772292813032542074868364009489249234093125018339364640778972698236436608998251747377465966706962467605619633850870308515476172822567781624595904308596537850236023449619230492148986447567740676416039377278882063284106411656281050328928831692541731115135142070368732880060901828139258095287515392357877642360377862328970352236538551276841446841686913131014311889858476015966671130839825102510853930284490444672137275630461501703137840414499284398428232205258756429838786537989352302346637647716456227435471981744540535641914372750921262705073133481847164588634300627645615996478297009376598837869251062565212212348844293202792648879324395345486458250749201110773070561092396508833982976215426331772400230222686867400726421430969248359934037131368353350403779796733115754025240829622330226941781594737155776854296844078584016223580380840510348187152689745525812025252413674517750334846580600019634117013716451936925642343931222810735589081840793591794088869217398372790856143271277279927702913312023352152476558755734910320153023714376987076184443479116165450518642565348018528963199743477225354862823173847723756362574955183507072606854608277489725364118180120937203642621599942348617294533824661312541282025032626186851345195547157676593126201106870023311606810747510722753903905053030435863906949170806183519609152237405357963058354752150785750030526767339369150068811084418121446052989243688319208217901173910938477767337458598906252080014076406888387013434159569827672894321437056502650906542503935857371571800908112768411839777242868290021496642793327409345380632466392224628939263018896550478959587246182336627765371925275367035039153498073550053951818852341237149035966123151727341069392544196836577751254301155702596962552377819688754995501711689346758246175673538210907130412716154921109048828301812503887403981169442612370295749502276141740680264756689872792515216105465745493591051377106102394019820403697061782216067195411373397980732547179970056085192748436578776227123038142466333931423885676451560739777993779320134011594670349651624093816556149397850161809823358984592601288787505434390359807527990324787790334363635462857580397816979472995390861724913093734002532458358181679690658895855737091405789242458637094565406896152080095514808568108104543390917025624887289978447508557064419254609541345069279082545627457330891913160017593254928773980022314622100684115013982270927087989413311371181126471873565189078059141410153905503698918022699483796138048424189355785819617836156000525560769735894601218588013380402979536500588573044267708985064740386990493121487580058737877347934285919501042991709512913070463882856646977416827704050276310475539978791026049016713111084826162873176140562656333854204085881695669661980404034246600105201677436302687442588775394439986555915020114243104419765709182806976034442456347808414919044697406123008406557508247382891301922504340090958401290993633503999059621082468810389463679310277907516298490954368788374658765597683061645336105735709396676300221318458682069947894222651139969275632344590625581953419787634137956324117513036588013728045142776333112034972066538089426191007462621105311890351519555468656039644627755943546935473066421968257531318780288568643925230326755902270654439146104972094785192222007803838385432729252358846136276468027259469954374367819369404937524948625784384476622025387790211871283941388157099513610500957147560470101369651701789837395466029876125907824212781700005153132160510228467042836781670983337646067333998411093337304625436613732670361833654681661400904893050995506343747198338517680956558957180744113668426098632912452881201281193873500266867421818821441216907060112699468690154501689670821335764540439514200831650384273049478603246992626100487105612651435964283985863354328963236298010280042701659337723623833178877274662760228580418424843746795839518890334101940470429187660305406472853261180487019145771148552429223858019688708351861280524858098393104044071004084128139892216908666812334275637480175651943801209397882060986337378897446467100759272551786381063224062733000510359853598004650471527421208832926154163436705153823688557909761541793825850308826547256398847356501682451586586251728046344965143105466954045348606042815481092400844723993479795893701534370630047733642739976139032002634884911065652113996641809026559114674859737850309057700378948473957727706506500354951924887145174166808902500898472342345727917649703444283992405275279179514045267538513837633227701409102341205500637485579622447030950653272060255451419330894990676196163314475346079305320310820088516335013488285324948938295516879734210715007418556837428801109752013679999112872860606287549975856001827869347474479403726325905502902909605096883659381480107461808374684724802740541811785852714638215237690035830168800733039838663171259759712248082396721875744438890443981059873416450751574595957177722205028434321185916729602908137422177823114045291405575305707210885790965271390223206762686842889308480499454477358721868619886726806960131756321560021029636536202576137237786468062855827060477895327670189201201372552933689845113709885078129823491814885148701852451082978030891573452727186948555723018481257161500394099416449917083225745199291283509076108452830834420765919368552826809294797665912057343612039849692347879160758720060748599769925877420183939865727647816125371541354238232386815662198775495734041899821642307500605619404682639923259998245124502200625147627856892556675058096280174085517775370632350663697000035535491984761139378643271937242968971164872798824453304191906227139990126610080922181546118080534753359833597516765890074570745712910749280619796888716102029215629542244134908825366516819850538554785325691361282322199451458093490619935298534459326987703172751251964661573762703485551158792126192491475826762177830674229212309319198659983700315427076798944706214996733649189306139821580879672272878716511233815945872988885232036328622163073895196396828061292152144054861660333024508444514180445187361076011731929350562286139247656215272641803649015514863643335865816330049604922805249927803178770743160859739893078829914104973126777379209604979479414213404140009334235232761699258363468065106335840349355391245925161660831006535737435862889556965087386216839225581421964604945302305942777118269862720491967890999119312532731978155356346950715535329882621765642221602090877949396467765308610980363524657792816001019681773667137495263174530556732552895052225414431861884735725516021368988038463010153242560596981749722973160618761938694422845319627018222497255480419312836117449523432205428434368063173105440462148283875225249573378962677925428287157731033667651570335256802808572736722057053693515959087385497051935145219568906079610870085069582154896057704520196037895380669615048733306551732346585342317470640791993597934209413566266752698510953557577198918424856278832366894566674039640140879400767048151021802842602375124229176455159818090849738496701431652652395031072071468484959675049020938680094780657155187351886309437004773164805678337854276307245681143163033887954341620643278263375942178957989538677845284254418722016685567495360211578990223299685473767530646138168806878448276472923380910070862207023803117179190097069726146369822939784531032719346054091977213124615691851003525705001938748358189237839954547307557581500327843648632740184849263974580868696084332970097417931305580455938692368966163863278570152296832603596889441477497031199683304155870200282969946377879534915811455640392947479577096966651165748863605134415616773577897354427478976808953730477596973908791261154048174303671688685012539284971994828364062671552937682493893998322824835714992703659907556439333185339224494135799518837500807312883402557183048569557763043069468575488276333667860252319991305819912846805305254841488036887975594002835302921578128318959601420058346311824777473303414914806722493072658989059027884524151445345089706318075438490854581031371017974874637276739281186860934126838223110693513646005844688021237384032272966093835457887924524693596674613157251010822554146299813385504221998392913198054176210225948946359963476662871102525825961142219873457686881593775503883191971717800457987977773534690470262758438636574608820755787976862159558022342480202901832900614160666618543907828198350115638272032970355639383885817684472635916433237776632192864824413882615915825255114607637233053837494954459972624561279900995653484321890801556003131530389408241784641814642906013582920387997685630048793938808149094659013962210489619457685290519616702984080673147871946424872461006307529524318603726554586621765175757656874584228144543725221164432462966564203134538236174970688898233517706511512999837134238279359868193111121133194955531574494272215426612208173272200788428830022968188207178507923678180354837346619274718803821338183391683908086858836892510016151644711782846976231609055138977761240125585930867420347251047825439135713178637307717716646935932015492222459328298675556898616731147834809629289397849326237461146170404329739989980948391480506473293546158938259862997672326414804921692328815241861776993900744975271635546848772039680063854037836905768892567945341200296894591476781742531477418418990695484689551294574638191628577839600980537633086028114092194146669248443284651399930176379602787671354460278525140086094983418461934193642721402659220111221715475073619474032471917068885369329918395755029918789544691756613285067208720701906615364025190548059311878624544196460655647335258864379616349180686775166313804685894488049645770717786191667948999552471033467179378798028305341115392663354027336936359756265413080669791542714044265196230406975482544229579477711988350692880243744284557366144306524483759656470781100347960839689605159910071581472045653013281545247364915748666780914256534576465656439965585840741418544864786145967517598060222782372373757120768862556994661651200658138910702945060672119387346033116087101039497721297733844988690584056439431999880719460607592326023765497826057322364581353699288722195104150726419860843373637800302930946331669829458018863641553581879505889173801067638921663251284507904427104651584247559135219625564582790596518141171690253325094655849075696440381263967440945605168219914386395777702829475639918276610399757747280511613978644623425257525783532491167816726870305319223543090507920915430014483193452452923102100393423704945668973396203565398712940877749287818907168834216547541767689211763785662748061608395425612612380814492166271722531182483717684079203093408199827288843301839221682800283815118589733448103034194133042979829449556280758641415788224653033427882921109182781914613205266228541783978391217277423911695550685860838079490643882321394050767585302599242000510911977156372821960851064969267574003753981789259439619848659145125124441881113405589815375404566407572950123038922206739436464037279673830658495294920628919225275288298829117753604089425899572471465585275789689931720202890250292510787292371010648589421324349646198226709173222446881456777513346174191541503909924101374932665888752980757129922749215593213356014485378818424053134427258468840065747746862827765224884179963378302872088245799093645873721480186070095694499117865544936724771146028869910888252257025653865547943378975038353848459773153727934735385454250381568809719853478420290389155811981533611303907334538056729598323983908332973552871078942047028072729534820997904842309974614490743902746732653556698923956672896716291984894710751137876314627042950866207368788501798348780612044858208009843313020425992668616034884859245437060987606727933592663738379601848381256561870946561772252226149261934554574358859547906237180478906107887563683406068042888758306838112104414255353547369087017467368883878170308839555472128525063520518706613990481484955821594566127803931704695526360704555067469423804471882908958859547134563530195082468739276640547619167311331350633944424545080620782796068432538549720175311671226644275502073604821780117266400456536279286854647589919894071012227005726836736558769684539260560475610071593466279599499573510829770208955459465952047482014015682376874615888853297914030845090693999069602788717086334773341913962872965543021154338291813147503234648977649480969430606075068275951455115655885229134543709726432850474164540469610841536522862978913957851910058581010750768112717313826638487314564642865370396540585817250664147213262970317500759152166485363601013555206249851327777928565266825146963580044506521308396799478388778637695851901822508335680584390642019301111474980356827801487500092949223734734753062292383857108583247819619504695363713226751892465807931294400558229748044978928310434173494498838582891244680542739062072861693923354385039557315318188613115699231217379625014379212369947001502714895987214859003166699076149896798011048740806406850678110575117735686539392507116886651237664416332420422072253999469712997667478639382930806036127036967772222057361715071996593406247724018517164089991113002482398559080173468434005477747417979287425224819975824649712495533510104003052113909041434963244837073154070080299649772258313234328292152469658134914663855549199832726569611403895773065495732840604335892170977234550562980646561470283577640625420253885286397236685639395315759042702815072369723863926360278659370687956710124693880475882191918000083855012586908107569915270191156086610922976922206747410887799178443555919944515990410353411758994626088144346351796252376618683549444030427582327328267522158994097890507693601962603227243634275507700630399445952918349760911454505128854978232007426704018939045619383176891082000709246190691528453290452616017773241920238368086064465302022655135438309322120890693760348943526165856799061197090755316400205097199667741466598359711770252476228866461071698433260622684269353498003991964729560752606084466775318845797060828892458910449217744833018650616320407694811825445209315962502792576365945821665229295852983372772914930995810840138690696678251868040772765839501231124601524803205953564291347512993584676134213840233918490445514198710520566633263247846478846137166450194897885009718798533194656082438594855165755800589585359347177599478774568062431521447188840489067711133387628395426477939629111738855280430018469668559524157229049512841398520302732113746443532256176272763762168410472990797827842475381360697959949847572978775175605861168297751013970786114082715692508877714725453704973856557051332235701464227137479498039044801933504672020443106134621755047940035151042288544765895972406691774868822500075878410481124402773596920747133239466396554476155747878671796756705421063581817579509537612500578985503045518418516793939628336603372628783251372601984296343615534124404263183518046573350833274144134668771276209394786251669742730344068944399426554079407577492816476428339326113732884370174048628650305485219694253533773178570563602774259484249637165204390752545824557256358505716343587101433927185044780889753991973120616142004428792845138411345626590361734809711159055771382921002379975404781317341994305062348794591599093681690619549690092007568776200009906618831195735598728861167722557811833757304706371677856575490936974853384723927177005263995506098744414468835229206438367671298519799373032485990717135552688934385238513980686806290391799641395502062972923721817606585458666336796555700732067541247827405526592063280282364437681572061402908566393359270692109392720057932312285075989409645147758751042481625760968399411353835270884162384419133685044059858289977149505092575815626295101395188897957415932896199759432800938371069516279381501025096300029705611214975830034962188022135374827219048684265357177975225547125530102709750059879911081854254551631919389015190535420228351064925454042982306269666936637969293289236860704119096564655112423149878939807193957693608345476105242901156172813351933207252426622818300671269200347758372276522304503605399231480851005108165470081565696331987287703444331862667678908640262348401977467240713639502431437398733608700300419171234856956395161750250817037283307896987078849123748436275628694844665423905532346462574862965288282772990963852971423302810039202781268638096947806870315479429977360841917231167501299871323860717858134060504691061496195761692217982852112003209076274759803243194600173081828697343922461029963032205990685686174574947402179267564053980017085421733983363760917103189356229599635339239104237836257333339109894712252230907388859549289802725895399817076225274719595972111896898191059923736408497522323905030418581755748627282789320669219661182588408193577931052011536530464919076594220071570431549147788150198553986053198265760932084047205125513803241478205720114000661387688791024050629019710426114921955996596371488915757657179892958090934286900886664922949347392235116477392801207389937983613561191506167121357951204325380458630101276917560892037979448121735146048242684936166686241035781713825263917432231941277829366410356464779219395555650750739985680773734381264865259468283385601881102420397584170208823174861280976918338578810198673527290932077973293230579126502005260045209667298963871683195010933131075795708089236654511702585834265578855462010449471257090385153343566269590757457223868248160817463811307447991906073476414306170845975259515025416667294810555842284939448041809672363403397142651976209860454576379932938587469896836263053245918570261380867206711211462675872225241554591603114329184925711552553681980917149969705640555858498058854852507326656928985396711605171526173459380382749261650564554995313111406315002022581608959404467200096067978591935831184058937263668804527097006481718119219990806416625683197852909148862517086370428904495301707555190101848501715327782396456279453299990325302232518897936209240766206523673954345084655758050209000937758441124850918517281554403377035924084579614815884863603522637185115604108602132311044305278244670098895528749424584663530146026245293050124808389250513970446722447957163807316434378395845878170929058450331904899224449093297723868879613589761101943885302900136736611264802981116828113428638754133068739611270242273337198342454964017421972246254112813508917730960528044181672023066193480177490634989301585673469680110417389412044489422275406319527202761243982969437520022758059657800662769913622488463496011558595187950507965148031780807424584285020088015435239975683711429261025874304811930585098472683335278430148204655422219086906435742534511153948184466536483978142288728933976015068713986672874312303067240695134630497623512794229746045454793163956574496674226204687768623004640319328113743558496774160797929026888150207155050394695048976991544490192408631867586501982575316935214800738925483113883175329264116657884823958339301998665100779470649023093478970559014787773113270746293725609787932116466150266075582288563853953877937202475943927285197611427759720264692248592254459274269619636511072694545842106811666628724643170707961545609623750852274451254952112282451983185262940029947239562119823898012520223210861575421612274368668700495709789911750696676444758166711116545683960892554482626579741553818495930174628997157007798417249658598144968538290571804684516738051412746815555986181355627716514648938878177280182331155198910875090715998293687894409776027094214210654750437906709871553232204239782124349708613451686852766780078689884956713763290494601130061924516018209322514397074216675646986425770787361753594354390434029294669890501460208302526756213068515582952113955380783096209700069123895701640006124429971970756581129189729123544633407814599467421529972729983394800045093267656323620297926450752015903535712915159083383851254952810545487056704273960515585916114636243112280018242502024931121241482482531822923556788340684056986286733950699230849644438444715076863289979378666550867749780957683742215945665815450774526730799346649755465961475129264349825608034173082458445119902128545226013054139764051807604962216621492145619728210149265182935420619912413114102666286507037686615820256267364440159481289856298630372923707789610605355861062423242567270067454560961241001926429756422439490036146855630420690370971764929550073706268300324379623058323908230240749606731316424870489805350394431513781598354658519908943851752356886499878878707238608102713038618625145350854124407698722548984450110807771875788650904676322758302937349989111826999442662212226052714017631612964222571983247603241683295393290249114666178999149710866391086731494196840799351662954762492765866049590273615424632789606658311637460425372722412487539793535908335734555926057226003860574529776497865178877339449758638942585399206168530482651329337813468773712625988340888877946503684605168732540045559205195987847247463832789222258288209176956768133366138907564203151788360636682777734411914304368204128076120193068079807756381642407725243173072242780169261024294232832753965895787345784946691275840157047850153740413691853824669234650568566821102929873941616193644775895095633845388579747467068727715805572785479347599195016854030315322771348654217410693300738460409411270074536859551534046832056270488720126334937209868561546718316003031216514219917515020615583603506394844811490660540267878424502227303785982141561017318356981774483309900640986881058490015492659214402919590123236565214894349627016638792919039795578388509767036677481249540708803637450616872583935886639881300153828943452872646093618454461165097529247160482643951822525638123594147804398732688329961721582758554606531985171351949248400069710832135496962854688917919241642881389353758284269859016982480154088899728381275478245462031115650394386839406021119257366418191602825569672934730213529046996205419511426958361777957656619875490735185273045065426239405160765533094453565361349975949090910863708300265034302162918283065523646450910061788360315483711979527225200995030357461103814947411750938875078629969404059658199721249084726318388116897033876462415914425515534219049165457109061781978446713455762805679879725233443585057882020747458692482349930273885191701192502696317610984141782106011230630244699526311344583637009864345600428266945975754645641967388398472309941197388596975353760739957525355109248719313981161361132133697130802541098386551515944315803356979959709870361004490099207638147372913816409628057764665699756584137998324658574795022391665467421326114390453132127084353070260923827959573608691592452600509272058753267162350260927160956102562397991491213824867215168776231886784497800684937639139747775898128673390149699338173068248138110144165074412402031785401309829709943972744052523130039097194981479818379442569683704327692907436091538252365899392099715531055812974521461368904890020703113221617166279641047377523830950842939266668902599697375337476961131149478069031128515110982160620836841489844812475144007879319066674557856314749880816015954923107644217783020383419180452320465200800542788943563278815991195915577422956517453571651433390485604862921880922636983318647893403381431070123637471469569820507565372397638394976572290478409899576630811016374819937346376766720045297277683359882419427986852104962152287088201419737690539311005408515986756163007739518145410353939683275837228061216667026168802022641618158489762659550152564720658373256727538506784309167659029359956806657750501386182193449239832736691296214465688208423198380993703937334017741510629273346756234416408664518090159701156228754163634232689685186679024819758543050860243769654722047242786493221234490952987665092467569946916090488266271957167940423653918940980780265967558632625195259847400098767698424276101779437374304836754413197484981176852109203461583037956338241294813460205430886621409084910348531870223878908810325346378141953673575299313527219997548870526036569331862139772573444658703247067080342665448215522931434810677174058790877516392346146113995343679879050258313558220345800627789006951445359660352674685773944684520961414478579142376619449924832072818323629598698299182744287890137837464408916420612407716095345760416133492818066646882201978175570359839684096885367533814460410319282954224521783262232691751921576579900470966931334228060213532195286860205372824203143874454067931015137752553002629227191035077078246330616265949855758461896558864241327885351760674737656069183262098069990523044919788486210857658800619524961013981536295870446431549821194229705488452731193239347164952287694696180698094904074394171676483049178750165447047887615812765807950665739084401732373665113270758684324738975784454139067221071153927649714080646478274717947591697800395107360769253440636974171031660919606521974976205508536132193602023054273203896032147495496397400958387644850499624654925289082018277612605466368603862120211198461008094939897041779618018632604657573555795134846445672520100453262738433373377241362081023905688962378109232099732732729755771729460999048596238684063398372871790371516988607314276945684535177891467306195356403354458404813321112681145833202331649266381743547544080824084158447828311329957597187680955000075564204843107691785534635513896371465097232061474621460622997206813922587267146707500648857299876621380729527037701666936116707433739893234504572898708582807173991319644727396945893588397453345903364666419338548936076472216976070846127617649778551387126934780868386297826596483357115112754988320146319836162131729100660036803325066200834379850010355619981125278802042038841256269744124206055845803406266560967217523492288507792906483561199454179389193097605800496822996782579253388759668030549289594445853156333293607293041735500226745297261544147856965995205556199625155511445481676659629538878835232923973434508658816181827148561218664388709462222376147090130325144554531348446722478171948148877096953761571917451390765963345868297665035978003340692389782578405974817954581025371635300755697573215668076999490776563853844106481473471696599696522805114084455845142059890821649371064606197999611097423770129229623898130575537646886846322085410334911451068186381718086655700030494856828231737071118784286366433220177275279343665093637610814007005580688387775742211653394471850087086222935256193021694376331886661416060628264383101048691614205557615043874063870209130416637072455124896386104305027283554681577425024980986899666858545068290055023835548736336594988132675544100659040438719966725245334921567573415324569131473608952889809814314140126526508696041793129924391505701634819595805203180555048537241822791239590475747473792435569954763311432591249137476073888128802872225308550009281524929544350851517094136281592775608936538156515390060015398897022956669467347273796652394944713688278287154809085171002738341537531414412142177163996688151242137607793930032122415536791595266061945197899814212122217681119817375962793131779370298054001842640648106570276216400560715217784724111748368294870730903595645172244725246781582240179408075363676401298185287935987355546505842543531094525180670083202397428099062249091247732134207030918770838482826130110864949104610798125627702255743574721474142161238914047000650524490302582814054573358327794028726743512274482555125767584999131579610799721177396617198778175506153316544344422442714756891548354573098619993750645556898472787613853102306833857676716396025977375880604793507165241714136647099102183805679459573146288656052211986395023430182440129509173845069187832216869456235503774645735452778024518760762330049758811289734011134588157302517375623942856115048537194013446205100199885049186902561893984775099465911114121943868592542387608228137080214601489933658606417032624090612932055079603905555836267213415358063716113032731286266714327942824623385055331696395491298410626139013704413353386913769901497053554354354752951165880355215428013531594149511493997877954194645385750366917372316589913565723500508864970233246384187138190204439998063398276909354897869620025974679848757831108201455719009834025010354368335531010799935964741309891150223863055314748248437608370249148705530634666825421015917401833227147279669060547422839640832572516419699195614175006374051915341050746282821883309016877490028332918677924483676447076108738349537703403625368133132909776424180324749823974946889708992688076511220649034159743223181075078626922248075545685060141997420741011536444277565492279670789186892434376824125109286429430302021049151819929030540387230718138605262380101286555219077784996992844246816989419193037559060257234843131212206904788196711410874480875839951181587008578472130129482812428282930428157018873259917602461172956857857370450860122305819116277239205592048125186194019528469227231158887069118833002714466359395098792067391715020707884753577922724251230268918172525091665204658077027384984878337537408608537096016735161778646089719862076450110480523655684318624475123050754093191147762938434388627082207795025420327956033979186961270316037815892165043601607426201421274055717837828343440927945512962984846905880852145579647777519924666471997061176090323646268389549278318763089960449369996117231208509172486255262763207971316555305841070289929046458237445933946192910490578274670406341678824011016986291284951621972947557220740739950338005467522162024337441139563400282972833863974668205840483509370337968213071196527330793348231864712893039196714613619384527490133240149046275537335643717125179636572199618633490587682452161700700924677471833577276518681590154457897239372606919379763344135287767256244565777077376643192593837207970510968121539239450704869293944939742565233605696536021609606239130607899990032037571128434991020391872111562260507761078151818632136394443576147565709268586788784493987692359728976107399355383431682683061779539648122793441562115882010855663760985866835525105636091376529485182776169352410757003572842978871784122147810041991115643369801346607667241302801848308034593181753487883391961957401656176614099137303180311039358189369415212185837311942381272540106392503904538799250131095506941272598827452435592126933959790949204341132838396529421882337398786079540807790157256222999575536405146239601281543897424454638254332870689760874256868842003013238693321918202790780530844745736228626940018541890728655466299456534899647025051647980392341713923552481934739339871153524276179774286397409683455165471607301470039073653354685752600164237761106135385721333761495634420139912021296490484838133135319530478875076764791496970904764335337998415214332561609085506972122015184582837893503367105065648965355418565250909872669646414712221624512325856464091693440121667829971274810811616610269784293745671747307067395675677633221290704827943152067797568739740651075365012457317860160328159732776863484985178049441454948447479132875808148221821286572213578756172821471694299638279672125866001056587451061036049399526830076141287046605619633344480200111992430180583863951261139820315972573674757832399137099955523820113744040629128836471718849071416227526713121708045180886656825494211965788401922029332007940437568468478550062783282898657891781295745781581201711399999914611411525536380519019284023679743926407966338776875576175367155099148651934892044117943332019972149386946454578528201833244360764440970195833364185678283480401599262619491424977587494241083984755100829083630795369039994912324776792913236995201967324763775939973848204899865895501520293293407154520192906110353202589962951825781986967156440288093465346778100522507679098020688716733781312919610495572647369072771375749570537708374140124425612205562380133444243913473656958772656135126282188415967305944075759120210305900858160153770008736219421676350968283291708653893591521139848605999267608520922374330704117042500979432632631498110917246306381125287620522398188617985502103180485711552893935315867011405071874189953627239952385253692580651664473213720617695606599507310012132800677276626352043305857068461284544028413412234708759831472066372572154801906321885027794367815175184545800323167239154932866981244315639098274039754684926156872500684935584798599947581351593976601847102712495559934285178097795902512088485883779216644158357929167194634851119917129594652445203035748897259853454207759047077682769879008904278001619254956493347663976622521162096516840323629940682001865269783601572975881135918250088281297584429433526211895949995319896024370050424098727952647734012852875017119335560317875010259225414451182504046965342232486201608251510614858843399023083040925918560104801737571533017157106275039657709092676207008687416074271763267735906390289025226308257299303176572776544117586906824887754229457299835988284815139420800615023652380940132824129567978970306269632141009200841504212748289706019871144857857037010934328364527153271140502541178520513534309788207807187899933449004617182182029674378727880188045076125352943640623692676183580046538171115661744615363448034207229064856374944827941335297525758613433418482146334295239684314369503487060614166182749049305727652386174682973604499686918516037395915505666586212866732863161953766934013346221683182010033050664948955061497358351558839539112205290315654906939415787726187693969816108515800010364424199524052915897083473388861016252557843662733124539160660696188303060635559835266474307817978622730727909740856166174167683610016230398035607842600182445826209635021144016772058267542664648902775757668381940586256961866088108883341045155428591336872635368299307376234033125633796817428480263925765602748207967813806145575316301905593942706163725387810839758501547890597004823819333602674814579980323065872675872417840935807577565952469296970687155415234738769245287150130671402382482430644874996253052217471645480745785915217322156127513543716023045592554080252522398202058324222669253098817832411729427237583028639941842764459290397121506531487489246811134525875036676132001481359861020418284324684435229106885146525436222581147772254297382794225077070526350455048337314186716794746953922762200481745823759048866790570214402134023774685823689372773063902955490834854061059613842905289368857509450213237842215739802808371285908783321336260278576292791216564118219986259458368814628649204475709328603853154073974429300749884504348801860287284076358811079480000676795963626014503894525022173020738896773881017310963537569002000281263109069736636225951917640361026955506776648954077422689310418589413224235521681504980098165476743657793148692954616755043609734623758808015068015327254613249538343885403685423103322853095725348056492172129841638235532853316013742727674513613005494378668989648948318831938623906490458143012111786084485947785249700573697154649428226325335128549041522979448180829903139514097845408694472049569565137696324495428870991132513121992126613879415665045961695728846460401024267089366160912175160636263068082939331478305603153848052663220321840341038105014606520977835840781946770888970534944072692173072254822131637455943531226441585728533230212816879063003411678154744286126927147080671798787100923936185308739097012858414474443877955107375443553625526859688715903194303763434490466465334376594950296671113232353878896007530051247149777088870192732783517130796423043552005284524695578669677102759917922473516164324314263977651225209960005330687747470937881729602911911791232280213434221944314556855579528393362727556268812314945989995225670922403952159717732227247778538139518379317148148774731482273437887257990266157845304639484174282135256761410046367052817347206736049517292224681029745414216766905739807501283643238441911471505140917837870585982330398296042718066805542521446674319728249686446669963001939709351675832023128207933086741409432277295148281648784962807435011213471966072561791456600172822684907022866292378368805850053249936599733856630262007407201026220200800180194267884792361196478546284281003866677525951203860005374137049423529567127859562938142234953580271709345508195536701417168415594809491324064824740934318595849119626595947608981780863656790425808883948812683169293478943914330454562393401626918387608823277076215728187987191810932387355929040642082543193121074256067081515545935232745140053850447176802773931871483929807075324756497704490051325578965410677954298368524408774544401309245783699697330130220915441541888707464879052859346244573542059818277130727141772084188798253654647290829043165975698143988516740605882126510628041148057765918610294416909545505548228045851643988040204454240411695852988091218772448102866255761195850024652556326027107432614124647380732265521986966556274335557218026988708314404651222954240626761418600675308959816667274676880942204013339697355429027763364455265661115126595548138820161346104734119476826234828209276707053068238208916659053823158256632771850039549388144645098845679281725353492553087580746773417228472569212020412439935894507709650387810973374178741263868803229548148206152598285728442050774837283297447972251258262689124192914798578439425073234198589469638593187296542112016312054433263759238420030750575586905431144488723055602493033193477500157828364227652721670695467018354186850971108127013224857598564002914310260266572525260508928305900039696856253224140815174057304066733744158452021038448052260217325940820449876318262750614305939920065541849478940135565586969777309166078571260636182028707315215609814618167191840139449255525418553213406747563473963349217648851029093788628680821817835111870634558000114811630216082987869952439389811425230862709789614228556038867222196047233885422872548513858205199254288203946900086554578619075644011081079865083375210777339141503824289628214627121518397083376989914973839135592803774754454373589484445089658878258978790760398952876089570750959125255870333635165893922573905661109520312124546158388169660883367611389608549979926450251365291868230050225401487640163039974630645118418553066170892267638781711211280419997229793020048833979444561777653149936487836046243226722684966790028077235151204100374592518338398520877933191234575658125667702095321977844369295070626372728459695194943238116038793226850492336451177430256560253192427871205131811403420004209384210851264494250461650154646549669931509407618164768102867175292516623175330785613686443247747495189782715127358131182703692184951710824447492893969304990046735286377487788453344249999214724975188773633392444599171906058016693211241156383472514637347972286334879660279253519439071206869492433618095551135904787145206016164436659340132213851955444872138941245419018916591893037831695374103671441592608493660523975510408770041630196825920733259505107109653621161690233033450037987016682180258602036365899639308897234212187056819645854365454488802860793308611838675817095145220483695101905246532566149670911158459681158037446836042351804797590358010330361739810729349482012254945891884656969482757358324741388918147379731788897276371184343820954194232132430684112800797182664897602568522415566117989757252229193405109265861723918390744221418495372990930914973663440399326237917312086230135927393696509294696249361512390916637692119100024487418961870804985065793477285509747025830230727413307499873371760709159267153052331220644944647868056155743324063572841114851929100725566295322287053638211423103510926346590065378946623443085772424914786484039339825078594768292274744910605914171801355532978622008560070750685992862119867363655050884060569492649099943926545917302053980557267987943088072986737439102783611947945793764958812998723920748279725769493814169410132018740474948704074565802475044545956742427690218682885488963571780423783959407734335862146062174156298833113209361702364586808609746227823958551712187737702527270744835100298860940715627500516689561440010968525694626077031054166669472514675790815377757681988487985561977522283038981418727788521443803191240747937857464345604821102095038136970156484641599908861679985075590835274220078250705505947159318026781476606513437726446104983970890767821410881297635702999506728857686061575888985952504757339722277118178988141271312386935732107851076370761759224784798070009899746769948386714655701128952625498535730736317720677871758486902765846379015056663921159126997801767696689783792295670448997370692823190146774216408992384424016503642810113144437323460759521531433359393179545212863385001657850204854237232777607193809360884254472860862795586647487873880975754805027543168924554411974994774456241897700497583056601413012964186976572588136290574413986031150271938470898958537624896950584579084475984999029849890768600028667932442998937920745112101488731905559419786962296202880912349262739173082641144261331144625911457653259000532224773798042317405623287013003326040949869026078699906150591345963646199868599457765622608112390184071868423785827156055971130915662764612822483191419575044593866720704768083890235816873648519423308678064340264262598555042768461846072493745464949076190506542134230577085649441543220824986991270706159147886971578555662809424523627077959033684709687760949116164341767492776779619597166902723451137015790129631281842227004159010134260963483063408287616943825451495872891171471638240727215121398759478041059377941858753291046736919687774350243541989346537083906543438235609334496621391648403490072784319262797820690311260302486358642286569658030726422229757685900211026352072778655417736286004676148621703470220358474267051376358594619931664337382272259972500955628522952040116758366336914062561500906452348001525682528112107120804069057401407254682307277151640511539490886883895049850554927340313367401935556552054014147699207461610651145578731732732931749366708004496540851072057333651094002944582349163826661939496666094702347098317408180533169633023920429514919004113777633805223021190133171013234326584224865733577520299798506738986888820080670905687569190060749827990333210531371765623200790895314467277965534855170665126738175281895550575140583504774798817671935699916040213713700865797185842861838621579805938819401860707582611170599153180459348122306271160837814919668586651892949074372157092580662007249984286306968614529329544686805835731737830079569287070934229325788954654713768028624784511313850357328270813645705023314152556540290616461740355897141897202394275638457956084067945154591723615356796752846373904343717202740984256582974732788844941281259932820582553143947266272903992571815408487891495115046274866795044785241141389082174727564390478157092088755024628561023338720020686687117164275217905080952355812377383388060079052516443905715700873423061329841223333591706444643380986694070260547716020763947834107969314589175615352203800625240834301000936204919410388316220617668601721457578030693882037272492419158637915186194554402271241411757632725149863224285765096897509473957571238246118084154931013382530772825733793889317987269910380869416939068290560099643880475166719381919623384501840374722555211482458525146821427742482792116393348310290749015138174296222906777676991959070799193979192060153538437700420163371419998845854733303521126018500429801784850234561578435257852790090890124000214738109099230779255808352947906478335788352578002369590666030661986462027370488035005632149250269337458939337281641143318875256092238889060417763447644635038026418249217006697563586495180075292351109153224147833419213136101026450793697638013670526367761574792368832523919410666784808587441533808063897024206399836523111337215415060249252585685186852458669985238198347227029662298597183577329384130893212864180289281250843454915127849950378264939974068636703154863560517702148443222756407450231853759676014216318980064117971805077908203255779451310606700737301511167034396921195838508867866659078486475836248291373395840277076869532851663284727151344287610562385819989008006790486692923457863211166959106007886234139132758745051118866726177741961273892048582391838176216117031343662308368286525415534319076753787278636542260226841019260284558223541592675338335729745114075458188646509386461084824970124192153627711517495350473176742013675923518184989922109576451912681642123719123153975678360966517073237565338996732910970765482537080053027186891901959196743326254827962919643151703222913645831675428123509686276667751280284913292970368170430716144374007456226865490062649012325751229846594166906793442926018287727659357206888719921040276801764464534393190142922840926863756872219422349575827806936328304294892104822759889316528088209013559382975336096038008596373160829212782597135286003441155970504491460090623817315576955501394659297345714876573049926571462213765621183537134241601438726213341761828452894300257197999934484550687814008632655037218863641318129419604789475728645175080007898019040767473133165530850390443371908743772723140565546239418935576031012115306332706312412057510936138636938776957225912568608513654444326288006474680766682717116375330438131591569982557255000360345182356466585987701591284639047570258082805694430664626132901841935041255907427887077828804466475101630639776667960873983888937290480900940470126636698481631105793086562915359752824097380662519205059892022279168100091163970937937066958768493928704290054130253557647888616041399165605949749575925906304558827604788792854733003100579024231919911838631898181563190251339140647882673407231782999075362836910193200381725208098569435965728684502415535865871128690114367540866422387357492642450902346490555634294624238461964380130030448786776082803350032922294624726775847356524007081481477084949498431836750543440119176933701621587772102062699141411011985565802443553706698008665502595027661774248704466682065127792167439251645608292134231891241264628748424817859501463108293146816622404542968577638243042691389798899075053336398961492129590202715841760417017254711799106991472745572798931245487721540353098656764159220812508182742298333323275177772268243362585849462421888880197513978319407556633627830903825404117220744084075512441191578285293323929819544833274553558387858452872779008376935480732752468186298112531053871147359898332209449469098084678282935927722174925106904699189491812296643570431793860807069218847482704941363624721169359757367494432587841734716913960730969113960517903800379374500883236765897511122282613480822817124942638639346995841518285374680119932726657332783929923463012743275982355339670836432165724988963213750872066300977108103182984483241830882942243039948251495254535376825826987459468194553836237561568362111874298655391598969998354459963420077155274022017832377852199540505000939245647823973203035274132202328734229558866329077419837450383254245779052932390063118115817215614139118054946338909317145838916859553669130424405754260523043961476663065081708093985498832391702562818952940519665965547311040750679503438566764209109075241904940461668593836008291922560124099983038925188260919996056250768967692928914083729024915340545528985097266115763064322255133851628939367152328578148722792186205014143818164632867750684312305834159614170563106682348038449678719317957058392284398020577501785522173951558758008324585804551894745351377263616643189946513535558253456889757406317099664383324697060754020367115390067670583625810465641128348453134491756266668194269857383766117222431267653515746015110851549879142851607177221961359633118498845346841384805198002224936690249877299369032949483298406414556156060033729887980427282963453339198950241677150170087295304497761501713681332490743164430524102315585438222789483952171977765726534568380526221576132958059391645163074860856478111057523598320023901958332571630035742223302708368193198958936190513115209221083358693616150744204358933933865604589537420547551566070968552373225724635515741822678011821020766448863906007979687737908955824591651200854013981584281753436200209114356113016644391921552918145779615989469057389139713649274674876284897187961328843418630440688816903479445701530149514930923663719471904536384455030306636203232323576740474363240325076847110027767654454038081511186413788278613365198113647726853781569329533700758264406845473707401705284310952185213056434945130240115418288660838293316934719902157903200041720034828705410024577148232990927332935092296544118279657695593469443163370630979085854359769736004171800182426053694544798818054335315994803920758458024002922764830469126516399355710223710212874941880816740260620675675129310221203013692417782333979956342019001309247894947428314812946360926706754218636347364289468007733140711307002627119922377667011822743063652240440647212254279528351532406826842213666665960794480984024709425981762220275380615569810985902859057046367858085169317256916573692914732350492988939038214410491003287611938036953879073394532473736610225038512104841793101083101650030997567227002061269484173641423341973666027340179892216289967269042436052518227667271802940614614259418785327980610691109208806394531524018469382436611391956985115939954359669291113035891880193675477408318247088351960118921800169345145141906815930435270489423559532780277317593758676681173898702759353502580734705162945168497428918503384379305005857311441435192684397549383117956169985206342777964504057030368292002129112111657893430142584893406405716197553115224727486023332920376115325171158390275118654760504176047280385598952380189493683861210658181975675621037047333882973609278124612679739505884355961439113218201336463756857716721834919978203646960257601588207771512216262409968991443982406817404368356053306802737905587123982537068357745533754544824223523510174857213819295220896415511173555112196963997926858897632301117644899235048899417585085214815411584527077681494589857915097356682596537874513794613436840375716550923076740689366661675243955186888560854972988177484946269147861078817477672224879635132999437536777642387448354996210009218178873503487141320623433101096224538219818317218076860360694416641808631797635427559792858989760246826858772451098887031764913997834287125385253088117153754884554804838924139915534075833504487161324276525021175489603303035484947745926278621050104160270454011494123337523660916149513134382655762819453674298356064082108011564574110667142649278390857950652836339475459272694526623786480301549854135632120556043013862526973092593186273947318167760198936709038963504162312891169282779059978963240265382434892916850443995427686982268123373404263597703801991346286295928851548235723011620385189834681193005931730039599251794603858946487385240311348094467647341605349104478049852131355359252188968747451879876069545383964311564552333679319954070850119387441487734685492571989653944052345402509989721992629627590355961198959462635942743378199863641495296467692548514476302281057690918959868396070637419715065257522953074449330218763112591044742612614444622157268574938458306761303850151582765305010385339454150332379337957946308902493352292033262182983376703107267392915081207623824757248704420075421015695285443639344591849809480074951833533826226317705637955542695739472282923338947278888547091939444203627814526607043848251050283219458905186451425034649407413002317916741696776941222175670292637969129668462540675234275281826837642641173861881031957762255402911025150698911087520978639413304820075385069513274106376821377734988953742057794592570088002086060251789052038891721522798245297472679993717761172038101856597654180287771342910256768092069578342743764186097622739865442064805478833919928311843643245516952634102982358212137528364726606961758213631404967579845234238097028207525992762134658556875400893965591153500319863695927638993832547112875533583835790781706847304160606225423649250507746043657710312164764603499362655253347495368402150230086962923804229167551144403444067754246350025145098234742042880267148912275394048346097770340085099193522058767011102400151139154403071969981939694189597541989799170540423310740179543416850899439059089365741845765914092287576511109196661371676298593378966452533610788969468930772982157657243610672112869407513652269439014005065091564140141871661161001593343137725879755431657750001479046196848692317846864270755932801966536980469614719988955871877248671820736719857444744183624123050391792235967649365635010637550283285807146959551969612254886717220064387331616021575405256410563336994308058275907324828680158826162961907612044799422292552331205723768226790103139638119035005281603572879581228212392657816465416961511462534500721953361521671327719511378719167294289314099519425129012866133927459414157017698525423469197354181015062436679804508246668106064162614327382179833459998421278686023043217589760315088822550547166786312600518843930542707568733638500220874383022001420329709629524743371490692233056380949373792402024893486777067150229156294090006366011515731411388853235533625604231428158108293387834689355898781588834933208065338913166913574309168984578574160720269900342836086158327735900860459559592486548122169157608449412282745309942451709627516293163947455815146001658676699798147686455721993698868703449123233987199763477033841240632010763538302595802357835204154458149606012024926601971036998044445937140911374745220455690758336859464200316143076250990009752129497913862209116610551852677220864747066287527942017261702394526464093413375697951771258675105892167071938002655254656058862865543334163938419793057798454430598690830879811354756948653483052980902647312215075584721660589932656461949956333817463927551810608694694345749103152800121394811455050513756290320592664113913392469495724644494136894959597399167640578309396735962952974732263463413709666137218112539628539801443108612699283643746227785339178135332242103680318986629983325225830095555953978572916628245960325271305346240136550174143761174630589164599243743331738934803897059582150989327849188760657090913847924267012709588850198887520128439542698939177148116882769524916909238571430697284742393573483343701216803039690015104277557643457511045211297468208048715375021926579664954583091495817944254219648034773224486652857509565690499643350913346092433036759837375710203445468391630777731479035233612690143035370363668261008275582313196483287634026067317663507589603588385530664560011404706945474436087828872853758048529381880311008054505713379717985320669303473113916299756038238209813206328003257289492260548417435699666547756158554889577870269008441069229441874247486414466931362996350284181768146696280477266870982908422455716109397123191242746147115576261326606807326181288671332738898388623544427612361013715740434906299083854090892769565053658093818738664760916794961935267933458646445485211518755704396755972646538948267130134537524602747950894213021097219560917957998339809830253758599539365517588790061963140559053713004822714548249352729713480094244884548352669072577108003892882587238438316594091719416965929732243874853757089678503974597640199389426461558183644345149552481354475837264017407561847322748984622322763901660975665752751207511549073161047955630563762280159165317070660250689770971624894555570231614247039293169021138117967293742468208333961721508899077617754576925871022619877981285314531245173005244365859369883037492124471699546077920161155409516002029413434827780347182308282589681963146546704139743613083620654677906624750150326583686784077147212625560461721995266087348385050375573307393518276178614084276153529619067328812148960826809884163598834965263088766011743549908491524165608318043881386946394130865064671971142188399125848472094285753597506986348077940655324503062249190423754664248652574695458302758358197484966361057927164766094026845224080487086663599389461891973713687411891868045088544616985746669850082036417825533359145092602721545485711565982229749004819501500585800346730729036184885333103138596527149891141357101735308589221298702216105824606932139676477752888220640150894603151102363300000812056604774528087724663188929176954174504100456841797920176243768703233753696441006987155187542767855768770747499145736522485999437352856941954981120228442280922628034235219764961879321253190891499491939444998113978787939384499640355239049585845170410639284458947560922163819668636879073899061364949355059552014457806455366405761532869841783925206600060651822983248463500818521461502285815741317200288322695007843115841231550174780126851265238521210945594886410835003234726944506603456617507647220388507016987364715661967312642013795491869384180741978864976642160703743078570417704078280361486764463388725657673546036055944577379158014955847005233731299612695884222259891533806252276326927819993899068140334980424244199367883065587715907823442249669313943282734668869288045934638096556910882258882366302372393622235021040290208038298121759699626728399525621847443245986525625138308995379679214956636930257956604978767287379665548741944240475751176016801627328754130818535738928322547214226663040438705621576620671426401558827361659269484190505603536923030124165811580946975895938499754595734780603080182856263446190859061732988704032837068500964693156743936739874372266763354219511948585985240241879685798899593809312617284456842600846475129961919742400753352157705287163833021957273276206246252486286179008905190999716782905184886008219715102499259050680442048468361324532959531624719909606443200111276872496489015409875930799056246749521962538005544502867013711977951140468106852444389645329590051946200581396742709910128147475937368439016464449612195825929059883269661763118961780080771031144460691825440272454427183942199078803906903762779043793911979115438922900892990910544222893315591968840395192882478911125001704631682658199243770172605514272967131131390359375530606270695246000720149199169336432938985757959966773229796624184630836500526077615134412422528291072396806341992072097122501023184382628614783371268236461862849789692761700248656622383057262226251956283433756671537012017342629929005109044071424488048397175941832092089146627348717957525917640641129558953342924607254507319517808907451613022453652336672135189438206509700297587127593450490067827535899368538058869250537282654881506920858041205753376085518322165718655759447273921444281885492364551515274630863947211281808753979075293985262773991798306638851836359267414556740128659868835160235676846217746294043035599166548557431858447461165426670855273479439951324620047591504314671413672818398790469954750668932939873649686751456436906350155088546330485291360654374498238830850045806451433787864773779929403804528736323847520240035237070613230045549242727986181152194738266462208330888601381215096799368918249754548357402126960512349460024190399813081136689792458996256840454471380796538932953877819246583053344529637989663993917890038115990322024962660935395289945611448315481085771978872541621463211918425646438490242737769922176719053314404842079814318861366170747673258721985316525876130311006934580307368802337613986742260776641888277723626930066975418292350188427002671016626706742087336497967533414496025289193483374263387847120683741491986919247632593855503496553724692184429962522315173840221892967903518231057187568328170833128241243785908693117753595122426555904473964602779090424788369998698863386279328712969949688415863058168063085598536982888616623894943764554674371094944011044596076851991475480982892772781266654787062960702833530614778854058897668250873841425579777731976249246446102831099314657113906888972693476970660047820769020141348347051778346822043551141011158931692689951777519044596410803951214457009158710213852660223046071603613020825508324603451621344793240897665664532245780663963251032439145390654570091718878648899185149351928162352356414617960155317028695776659309206901143912953003268877102759166768375631294666304171974498991372683560313177673769720446391984941213226604525230610025472600425934693883001447461170701831115423867126085926597730221605767200112666994740656178360141593805748301045675060603723011713977856990703182370555817941487560306169909491291974765016788169976383233794439985835134760636623008361364697659309404373559135715361659602030419746791440589335593613344976897642934771688201245513083367906902692380439994807169193551801317059061568960140483643438591987674963150954354999588333120122297116386835451325327288962285744446000147126412769802951198207195981549635391625387086723956381383866199826370143799832317553975680238752625803510503267627174366643052117088201277999132946607494384150465613290431796001843737170152749312986548475412187654693938706529254021486337826587652556587169010214384417214312136061274141202432187001936220029307422061757373267600735852610385369598232075014947828601931807887326151438971684445220488984394461489863560128612118149265826988855437577732818804333476830509331679524951726101694667381563968432176894485705124414313080306269666004606242979554095251210552126502272081443266881893564176984794218094058859684538145384546033075189356488222943294337048577137848056418896488350057578708486950567245462351750464450369818113448417954752576252509954436393496759966389262572735236326825086011535039052737297396188734773446303017491663312061248711868371987627581767097367187183238618268047271161647882350836257612314900044274578226705338459009855531955475758289695220000914214223621272381779105660759848594669326631827007834532985089064059545721546179545651961055757028859227860994281841876871052573625683110078724982727996956801412145107009321353398235302306855798206745093264275085819869057401559047519011832240330660709743895703440487186628641359964258958629054582510293469597201728991464856252972641576610669801468898887756829033227498091455227728362257779554671382815003806227960373028295362754700857503780572712681890093693445049127211328531114973075651471908137031617694757289304887431200766578219184401384568495998370879872789484710107298328349071898624916539240853154603512038403460792740259910375821351007119768053527142293557253265603119061534514411976473067150445642880331789156768007180165463309739848608031412663118059436066279403651943403068088749507259891464232836238691711467466682704673982257646114761361563885939425394948641205918180446406976718541697351296591373787767260088327335661911349851599371726144589558736047576745780365121048359741542197646389963221869409450314357353644170729674086582606832408111867516099766469336075697551920822164281768569482516196497519707055700857427796687823837663819985917220834500561876487742007203759839952922270109657310812042776052111764046397220849343059464067314540830126424772020536608279817414470507218385727683439705649497652544533888319563825851640214897973124625820331927042474841191481048816391555210043148365409376424830606135297128360940538910098940243574094971441187079779561140445870308914888640366159233185926650048443931780446617174340899815289237373297898411481560281305518227886313473510544173748356269724050249127246675839390357303376588427911818467169359930587996119528018998761629201209939130634025992164665272669841812665272712083578617723392488207547869491744608928540645814884510800848924076031737136390866694080713085577698389604914582039988581252581422103038673878861136863813827469934249056531050445573385961968294441355145197909297388574438275027972562948895143582448237065317183385731265864327569945826956594666478792606600215258423957534889711030304069458498169020886370314288219346638882077335380692715240200252764552029049436824297591442033760357922003084151742826130800861003764246492341546337728039352418427266569846221837189970434386785501291946628261206720562974361678809965892022827796499049611635568935462915106230239857027779402721822340327135249671603818031085042819482026811279630857190891956064203485635603877158787957407394379558324695276886852257691970511294983578741018943855091280135049522745131652784272073414014485181303627484427791689217321789344953444371153466260350427857846546209360436031000823620108400179366275543645254894146936010495360579368205733952208404190861092445072055989363314602136084272718464295966736036690515912968157798507374460355978605190262832476403361524603039495458257125543697953008851025357084005449265921573144776869837312454434505335676606434858885978910773455373760870283408289306422974270034511868963192872691032252772573265627408666090792190459888173828007066714112521169118352150662779958160387216664174759359664670384448484225819821673602627217367065605849541512379526588930975919658698619229667388329324039650978924467897384440578592788521160228592552521002217781293412896765070155104161805056449065054072576161060433099524685066910949385684797548696261458682607912117495103054133034282055269324277860568962828375383854209311182510328010178105929834501078603344839331775384588992261925524660184102354456201534959462606604154041255834399702028166834070296598497003507822002931841306886637296078412054287861728491464121269610360225798227580602776998104618936758176387031897290575675889718537762628530806718854925382509178057764447432522958334961422494368888008069075698450816004912732862982237882665343084718631441004666103518979566296772793015152243220970397625752514856751543900372912749938276342932105804745188453786110675148183163606741831387429630718459009372555877021637490038216019870118020313680141325676451875767788202707528487563586108776516773573795607252512124774021752874173768201684824345911260885021100148749887960996493187445614155696888016169032977365997857948928574885023140833199878185391781426197328356606909574695256971815634398662302081761052505661782789567015393650487397523864134640230839359463153440480366928090475843780728919541185060433857691429009519317275789046030940199142524835842395632684122570737081788856882511867367634106287481423590074510821599217816202833675832787851903033926284004761020686896500712517835366324553101250690424854057986218683090917738619713078163911956146887040602872807357768804893523923548903882572601046376219735969888249833710088275561940562698053377457386403550753912960148779254695326318950823083131393742535835609680834939085758973687079302271442663943814133673223071415252486881176561883273306075747105093896450766327178774361095861520083009280233754942877719821285371041208025158633453047031318340895575489456466896520468698110999621072856987436108798752170475319094729035744853504084585553759947339921622543373968936254746318218681936368610363498722952337814942007178119655440596941113662948228149663574735269134576437954550132592133992571834251267393996181252284427429987666114416005193934108838721385964716042181073791268538819322255761626272974233210022074853226736232095287165152063857783216105195338405235449638601913724285642322987058582775890252540768410798425826204054289382770644959706096951903625015408948138604298767620733224165002686842631290646595776558291239082040031442546712720152604353535372856399095363271671614672947260123407627820977783969829872125576794527655204996810279631168345296946689850268093537015493835385098332778288110129767184803565007064383826041289971279792763488600732309278678905667532119543331156343463961644906582525318690796787844890935235739721206526105689323524974402136967480560876869332246593647485736846685127354650654915144965946415882406623129236270104448124836360817117423413557363226358525372542165265848269096870460275614285907478026680664240566272665738243303313389301579764225376440929540053775537769868480785715615622034227364751260411759222704938777471102681249250014582892545934363829782747755054404866647012734336956949857118018244468015650348950932582669397821034889074914742035035650149259442340139149761269223922629947180330544584117631648434658943313572507904235817178697651947782159849518783849569593263557535883799430178598853244097687797400560279408336375112389694185121112373036819932584139506814600702168605469000038784229200789052037491655837206152414369361009493003081544474226146485847555971857849340610261859766933550505194772102614051354445475177689744567903150158936170233422038525948311331119337850977547414941862636997796078512157921244437981027067483619556824975370359319513050441646818962925481268871112073425933937924881760352746995113046963369911464011722010969093164629892211945536722177001606434157706865642935921261313410348637518210931649717037099562808717876010501526531704504998234151136110117444099515996243942214753287680118077263762352321354757525587252385928980454040758555547529268094250275442222763984833322893927053527449169192656540927375798548455867497076965138847826268777206053995350292222143747245944351973391658128030566961935425484278560246008379645988978587921870930926349963751707968139590154925377212346547144884274595850448325371224921030425760135041835965861001197893726908528531232286709216863420170703613286010593302214236659364566292526771936403539168612840194470570271441078255413268101583173152865025898816054904598654505333773139446401985980399446988642041325684840339083051904458541275447794481698810272480882263769018010387337588029151026303622351312303552084030487913619761232380286668207991474630085628591555644998893821269833793436400619663535403168442307413285589401654286637548555818117084614256722334133442992205102012878593449740202901481318299449330577394144216941519156281292344601106936660637150132898147305857681385624101485274186178846510979049353071019003145541822669249601013180842677287199371069423208173309455590814934273705472251829065589328973499775439916763323268676660015983140563856434998453153708215340972153194075520678977056769217713531604979001010829849446188138454344970080499112909659041149395910850511213887324731646722346515712895142725456176952334024025216827538321198606441055075402141563688685814910716272327152303666144121546068901984760983711318060607437482086175666239827393474351293515543423037670637188243283101548662891602526423253859607638550194433928417693532392611214063641860067870936060858834955648643806479892489112718251225055697178862955100251922193472226024617430471310915596611727530734014975174445800757833309909011078478125815753710189485370119919983630877713556682746111616064601238038574746715081339904566330722149527243566286755359070376361690145051068373218727586758624730311233834886220257823964297190369294309709887316068184839627794036874752598031694382675305049207259883375440622097745115164479981639331143604300866735105158169067830735396266706548557000695519370670125851342524278961958175330165771936748756461145355263688884159017959292205344099482700752707568693966799331873644347751136585430749697704558792885007171542561205701391606297571580649336496965862915419576555734796878330158734377609821783209497971213903505306252674271712672720691523239104940337424846200402080638327909990198757078046175370798116263580624769205188647012790302326515837455001466922125532788537552671386779893618782968454193367258958014251244980713445104322069317488067611190612684019679786430565424995508113414346661245154086488255234728802721915785964511786592570116113134646490332353458275030791616021032506759945777912959827871904563187063809620097739126129194026035991421426147158982391815046943847331244222442917553479669805314932402650074086850884689598810475169788342847866260828746810481368141023854989824097953695101752864753806701440166802424495467428130103405886612838825981281062631724951098210792679452416986139111083980759109091293008019773404758704189864368681426155099848628082850583821272439977720899710587066912625019777231960279141915028321094304486096860270926938437614831257023200041677289285726699939335858657362505237774500588183812221079061110399877158768847498278694906652450233653346768142046998601782848553495291663586438687309883029065920705350958989699744958637229480917320885127884971572022163693805364124249772302005801201300663554787757105179439474148184314250305916538797897717888897004219225109693152894505359876297629899482813948368166259000475482243490314329764937567942979078068769236960637262635233416208261674381191062287259688943817517068367191116447661346889180427732130043045862725248877309168447651722620776001276255822111904965315145984620013051397542827461061367565832071746852886853871342012133460697436911833714689279397132715813601647434413658902139214004642978847038979373239997778636372546629234266157951963563195431737838625824016859235636344258788631744372272412230917972091310559039894534377928031648208186620239666660156542518526372681606772466202018584244563026431396640130042552994695046211420815222686771147555213713285244707164392308884040840181476207100287221284479264742408885493788684234037424783986040225945715380977615747197564500276921373120348954473281234662810820399695421306100434330987418301378029354389523705773587114454437808797175490191607653358728372799125558026777781636372232267244496677328816214502598350643017596735964323656023044290358326683053268229143884674436401149645940520150085585600075219594493924270081942374880371775886293600853870976620416807529098516039475358371315715956154913894733438178455671843183276380272451101095312085773234807479225858883631873553660169961800878020374809193845960226885888623290847543244048502877577098968857195971992466857072341400688118719985149306768929515332655465177871070404140195778770843555471806185816996998021943537710651542262481957664024670360076986232744185166100839835149406403347934094842380347971436064094084769399171167050545836738230464014382341022557721219255130109092988070553307745714215552396986694140622243193602890917480412778245636677206765345072608714446565659557204388389768745857190097971767484117716041559656849679945262314357519315684797807606983641502148310391299783424617303411024975895261945272132398770322624782264059499115632352141981088301364119149250380040771628690112536161838474092821502424958915515664291102005777048405244414658088765492500466071242229201457835542591491035930399671565333434337268206027980106131936866333628148091600844920448826853868629907301806707327499747004408720535230679112835726878987279777149105800766054217052433513146237968067718455376100737037733121470999702447125393215983391943348608075504007958264814427369231556401855444105524708678752351024256865207637429988644507653383416174140096862699903989542371268976015279722564325463552477968341876759609752338716103696228379963088379712931242287810664486162870765562794119332916552220426556986290163683097451724251933530323657826083032652671045220109548417615508946333309689939603865210905939361715709284019239463691263010072634469733019285900743692185101978207283171852416101080707138927799864778338909337651857453914030808313593286944034662500782439598809761847287548897032065431772444232223481742168102321794557365600970212446732116565406438175230533282457178903372034440052352775407709039013637617561747309315416234486187481497171093872499785573844953772039765960997131903074489830725336206161211927180093991690068900254516652645457818611337337167499858406200699762414893133065981784773491277649959598662183742476819231240626482314704288868655874435592806675859305170890026588810558204894037254526304513612230368094571674099294418417698419812442770422652184605469698414092598262355502099847087807903266123918150633998956921939635062061259647363825724044077497272576197933279635347010952609452198146440963140058018109339530094184939285791458559297126397468290036578988298190492556245786915778640784649938857616201928816207738569808413871777858430168312499019903759505960508762800947668197755477367254697454344361626939322085432009191911810837807889413828742494796292896798653991431452950559913519545520299732206865911143107949478737444887919424620281573724202896091911795876059877275206989718749000154703352642178611738730079915382593346499094072216327271662964597544564879227216183055187776702450922741696629983778395798096508592529431285694834924715166490142003759490641526237782809420915910261608893353378246129038505284234951086790411445527147284038166839280477963442389180392080231508472764112965597462478556206628980807931247138325416390264701926725018078316146695303195288675569156849981964074959452749751788554275679704316420915119542880360730768811136711915288925218154358807153987636954259796776851163792608195194291918790684760127713260023497157691006240307001520881301186432859367425202448834584425797097788440025531559916019465755016826859149166136976453538477483680238103399738928528679440861836183295733376118204144634587694517915249967913175570004152156224714020726549503270995869898394403671950139513906751803899477665883823207444595221801416902653522359453312004275425079500459750084382216177613726003309845396082972549615911208863457110698033446952401986726077268792298061167750174230286209073394166987554857335587659290022963485572975159954459198662233836242177042103272274654668724937957407784567214972105112903679657059497616193273911618681342339532051761499957005851455902544771714641335322768888387338910963978445793828276238296813664488576410431123706670060466805747801477097197597935841356975624107859237733137065302697631503065731212301327534596733598327145663912882556899586573491988711512360114709273220455929809738536936465994137798201209485123967247665662454623631800296283948721444427736287990526094113260527720741950059987900433434286063223287909050259007882577843973342966923367662692857991887628727396421504985591605165169221525696745812055307837263129095354183097865775004691718250575408221873664145093772577102358213916502092330307701493393873110773428196754371152357626275635175057215338985428408029816490776657814007298479900172788403438762488048909971909612362337255379385439382302707722047214404679303136601442774428525092553514101820659530996100291178900577581784728107544978081448376164925553687508077443112642558916205895335260580001024610401325402110118462291300933373585178608886574207753015794762578928135234007791546120792743725320471308178148294841792242569898049041781487281128832361773745368496850749831632333303349312014616076474542726194459456724930963031965869302263955537843001086541673022105979018512806476141583905363699636002822903709997381092390409261570477967348549823989105852536835814144144485760982255570585698393646368533261212989936751478489414679961963608954873117790170104476164657627071678624966873188825534189615706677394832004061699890214314405134969653388150853085680656246324363162242932669277261653447188338642029164714230665388421096607214511671408439946549378113736840573408981749658946585990976535502944125183605459606254363000838584247853586265956791743649009708649244257863043748310055734068776733262752691651284515070877484867392839117702738782866412860644624048075673821290574119276061996523130083218183835644608411294678139362277606671626444581192683307301053680667984969120873842057806352681672465722917286512417008298486017810236796489667683893256041863514032879474275634966526997432207074174819744703284833942283258378812968427514313516628272227315046077063667451698349300959100722505538241985870014568999063126370904528097528942231060296801295851334726304250697404443449601678120802731573071239895345357501551001890531799708121157868106204645782074144299049073236210816124419568554188769200992277265104940820251901702109651300630532075016824732362925298677596468836081773677520153171179190795735908534400712927271542664625454597129668127224279282721746668828154147441615573895077755070049939656255312332228996220462939749249485245961740978832371572053557498242303112154623633066698524680248123438602505094995137406097507569751400932133041470574298513904392123586539726706893015252305122179764839190827851371533384856131040355800092397429993117709993595374404478111527232065130302351480347278145451193072549163784258093723847413334593466389382875338178132931022297858523935503465624686994838157819559170919265303629286201523782061907896596706318332248291736968527293787808133372818820734849302203837273741056654404765288502476732685899211386297959329304428632335849406288842003802023982386603766251053248673826625120100191212861101964216692330708013695306051036101723045759090985158819147518796245614790513019247055336210446414385733743595524086643183643635967962622802814682202693130932076307719966093868820149468592380397329809620347269241549395533264037184029868330700391223891187610528374924154976195709796277444456672150358320970836921634334773677735176062869579710996273734999670782886654863252733637916320409512182064126295799016575776388721231150926927227969126524764223656177710195365222591376330346237324240757197164770310893517185182160754841093454858706183806788604256081886794724680571302424103423017184990529143163224336534985131846425623147471083080829246672374589741786291571515755440510846050029169239449809718746813953416695411095565217052861519083825635612131170662261627436554103516090765351828857861706055615013321778261104329190852539184573527134107469644760707585637444302045984911608124096751711866429975731827276885726044460463153207013650847959459488227771082402914783497852890691618818896759362629521723588403558894785093933957767672316323598466589319240186823702881402199511283027587369240760277263144453816727296194156783330855140324318164303531072790099111180671682573868431378547840645347059618775106415114586911437688782099152474707808861742837363113323327541271128775545234432872834560540252338509407140453515254586079320023367072748567877796181947399771232969920841136885469643988316430787802106927166004646616928359911699362884230267692439714592131376527797754860922292866475982765381452029748784868016986882516277284862950144021437803140613257542958719066305067638888824616727584171167000826018526925149421354961358894524204140957019079316528350152413475944842668952433421305799019028103018010229365386879010678987073269821156341400930735278865023016471951204434414007984143822900466219973289170127698226800100515847802567244519246178208776785200891069456248163283367257250287959903352737381130150958913121599272746112295450897238239030219163520326846745589697488070100162782122720878219625845195779179874651011819322889281456068268198407566981484839486165023725414881954826538247072276922510728159507572330266826360419398832592153016105090893098695637367379885030822111747534737366468077050534726424059246760323290416251537635103729159751522852403237178297954519217260402851302736808097979331960023527438954544713371077803798849556039599735272781175259989488580843085178853765862782486277448817585797849980132004975225302941462276291286819309161417490084050490007615229408466189476246753472034693297307371774726512054166623030773221501854471016275233419647977064995011903291146730708314102803605746129889485318163867904781770893878637830458164373323355002974941932965541805271651695406123611829570495288338662345843287716073835584897219524335866908190001529303129580233536603706259829528583307665288926678807746013925819183766915805568777164100752355553034758182255077755313972326630685086343935141844966589770849305976351355745747864693585262067476067910033412725060974441235429088358402318156218495796264681301324213595824181981316134345832769917118167877327157106460588575850319267035893102379073577788659212337957019990131183989860715375794046887013025271262502863272004951822964494191838613949879949358504612653500492097944057431536627342985392777893503035156040979907059338312976516504069520462210007623459270101924385329752897988809334119933695651928525207398294659181847460275099505384901011970340559095436960170482529061706597184194455823812973663838403567816052566381834157190868598044847464118908414795409358636285796504302895292180377707706505296389692160341528760136367970754826810011676347505531814757226304059979029628202123860705665409783854480947968892151234706616387506884811237536125323025854810009357103688844216752175780614737198618325941365578986132223037319459830347510008755933623888286878427626426469841432142617470455237266999313379078934497348742696860421487845075788184367050845206026798352735127461669796239268033754119859384707297341974691702484180737348797342327155285205095194861447603829732778658371964578994185337565279283668624475208882796931991773429833939036089021053248985325277450072850927610977837905780226778559301012508098712850439007710792389610205148639636543411168225269329702967925104011017764209921419661329750714966245880815286568722099947052608645460101641929677207722554526577163288938569843591848375157827516284611849711847058654834646892369680809203583662036525183890196770053432433165352002081799330734812216769635140036218455421289380444216713047961795514072771644714338458729547241176626525263735384669241766764486757007226903110886583935000656737998521778520657934914316973871281126216510768404366621465143669577730632531351573755857637333793348362076912909134595376774905326953435235510745927037867207658254308991788562992436962131453273340020401968693187638167464162512931136443620377895952406010570227891206335911173645726932628052268992838982769716931789575274623690031411748438071903117323097247457194877573716641464594413114060655667451782240895697803493649185451626566738606129546863482182563111188156845860746386823632187957447437706976899149960152291608546824496727752614953215082529436724155240618133990508298199963189417214994577504960151351027670570908881544854820073742388865965366046926278305095423938490226398921072469635713132052426503480639355859590710655262919594856145340788830238634715228222155575154951509150805298369978662594351730059087853346441873237917555890302330962646080044580117519324745020468384784776606423843542440785284965105070347898607749070912865618633764750942435561911396120552848423585693950267228625244445728633077293614901693667632507326447524979882835900129432603129641338842710427154230552112859108296126384513104833086982037872588481891906424022017339421233610559753275947712602577985873336627375151550515862631704310392507701992716117158732352294456195416402133372396610195721429819492351680961262552778976668825198466559619554371025296611741166423175838278583678975499349919991115092081587051278407976871442319416178260737093703482409200559033520249724904260594546617308270694557995392452161790696600073352201694538740817808610735522033748066576063439310236802013696456811275439899731344019126055626398694682055325675790211439032862038447758570698001734683650604398331301854490600026808046852222685751692427144097563875507119029945118350746044582322738451593105089324161948116777115414612747749167131372846149745867021729160150940453961203194168492262629631084077291386872271703166516987879365153801468137298657490386955970967739694084921648442133374936592760548250131401539503169626745125695281450207250715243867547732579800895839192989802707372662070996565719565066028728392549728050955674318938884090458577740050556216867711092899710644262199639377259434975016873033757320207215982656544504752220382839764296123483310909267001551670831042853045808290474392179210957215486028374820700518636329056426977949333072491517201142674445612054398509357821000660668164460830897662154373889712423312139595243624062303857303847021462167087964250167351216907880469289485206164009182987372212652105083357216079578020710322359810980732829859974796792105828170772236026878450308269387822557675858694803068274583459162053003153040524260082082903940842212129566357517001779682521153085755986801412387446621407317564067246900673948794511134521839694123876595286681249835372314306729786114912622848946776578854423204796872957686136671986463038710939303637479155873684702380448593707571959131134348459093636816752055074596498082731733117657088000719592263076179086774962027887751064723338777707064528761281180401419366703335416143703887567964383426917827468945194515045017295875898493138559559931589711962504201014476249725048949880866655926932307896835465881071855182137347743362933930345245203490054964395134923338637616657461091526848501313730833750882764165988237448611727914664002428105639199820081621759025592208550478724941521663034680550374782169683290978406063382216461150976841479783043738250950238836599710642326997922482358049364575726429680481859818702152749899847457749810236621289597229279286743303884012912793113231409950464974896183222339500287602413992996831782441982983768841966570404394877460375845661200406281341256076233547822652762471962960912689735667909500507201594103019342971854842743578763283184219379418243366972746317074498950118875641041858989799267891473356437360627476070128582434831385925387344908249171120263889160253319456624269532227692491030243354026926676604971935969795210646912542207334713473952036033674803783367522531204326654616750642844841982829304995179665677535359552277308416017219783304523117627512830177865656423627104757329592097960019353968316001805911995280989346561833011824943795627172745446647332766789096894171410846527318099339094650090495397846581128578069852388354288751174581105456153926441893632112039075281676401262361057658277084384925337980523696954732095669524770388662807630579786516435666111490414126240800432474727906697041747026708591477753238601499086025677556758908938774971898065386221332565352954585904929247773169000701931296920573847777234881707802615412493419682618751570577525734736677331511451819080230929441104488575937721941863422443932149767833143931247685438326370331792886589395122285024241938057666207425620358643936068292321340508529755733310268814029578400948435267572693026308537123902555846648238763806968803492155410377447777001538160342079058364513777603647909559662101893191297197713932789548294160216255507883226306332887312065409238642606938324981833331242931090011014102097665330023200626878194384708210679415025869025277088462136909063562414014580329419415456518837427280999387387866787389884935811667203782825973403833846817232217132715301590361623480411369239244151067752389276062543749758902383021547636775040241752815637235293326863865583244916048606622692546595482845172666939146594054404834403623017963170886223207844270541439104092754294950560690201883852253971577385407582185637258476750481225405962729986712072678605702592431344550328935516240353025590115522809466172689694202368243352337391597582434752878245291365777010354873708754698825772150508055363545928834246818343987014429459228051086446199134998114775473947784294079117592595487466390676601332496616649628520666215611135343103431397588572127942305703498416524006144577073768543337440633645024494396837038768390980173461517123242129206941914781804259533802070211144611415389952083641434139029232044402806529516979206650335560281266881002906040028346767033548189562136407476133828782982467865108062566027644365211848349190615873507988305338645149846362332819160683966558761724413092133546357433429596665977141797444655869436258974123409128545301878668211407834054825423956763493481721592696002156728378912674447367392682918183025444403391393831860299503386572977258423473712947946214379540750519853487314336454821743172227794324000134806055101744676221203965895702716891395251873783436127877510550078287773012529160516814358745844898456683625001697371524538950861542061300425010093979328203472483518408147585674009935993058398186854994545315274518490599069559624860454780016879343271693808252318997502574928704384757055713519630230286030316455248450972638607350457492185811940019800274547083849222666400711587187231539092804116272875434648141693897979135161218212243125343228234925349019191785709198684462106134800951858199248848282946542597905533573200977056466716596527066086092008864714270202581030151675812233504140922769973693324534957180031719246110245217987094803407078853380605315923755266505359162827836763265622246763238621657670640922747893574436141915063441977382230640170015612098786665245453350113647236876322328611837647782703957782618816216857598733793332735690519023462133460402771018159264861014316270238750978729100687960650014567005471262704377145928518821458829663433689947670962572430471648892343885844594704928449442862855563745327597933769105611415637910683500928060147159117036423526179035927655811765628129441089093137776564486992458083185367627488987940544971280765599270366281089077529292335345779945181168563691003930603880772771896070764753644373920270887078190994772146382162808351542071309435253880747002944215647745891044025378750800286648496169022930419912506470103603490332224374704313122124050814638082823042039560347260455380095419600501294159559718996763030836073404480922363571045768442646844181832397964692535613021193100689100776164490223902723370900495498063376338927596018494344911268340593651261571428912550478228304039912672094574603396606204586354643400235967839474024699510778606526128669152497656775197214949273370599065678495860048616414969661461900746566061030113083628617093118661517510057135142839318897727170015843005063703894449110969197026495224820785764092405058635406879412449038969065654702387908297246542082371776237452769922141802377125955443330294907295205452361312547147062756714515109829422314617356028515833353192923392327598830067487602243742384800998666316697136086453949300446497248538801208455537861983514146559950538238351981085370204325161772464227990732420811522321651825808049035272718193842022297609263503800453485749483033484673626035909548249483206792167770532392627262455140542143900842684737940597947955782410889834276946198162723075503759937985083037509544226670130979689788615868353254589875989725856874244061134682406162709185384194119137444091796720234077250737034201381601884585136530099561441438535989427947282617355054394774094835538084377601165694410327814501822928814059520101710314973036783569913232722165268211098559862345895584355186685321652775741594961833616962939956362080677817781968434846617427087347080257274602774749614626721004386888085394926396514442451734816311648807368415474342022032888311610674097017038377217661495834716353715444944212349012029964874071854864679795430343910705951204013495365564858902495271216583954318912649222945496673293902120700883069730706138926654526145238878305635386560335601198627493287597049063794298644293386672691838706504238131555726209863970692189597082523036644108925230561129741423452376818317412483374029344638044035943870981834276130982380427303692322998047529885899537111314814076676859826854167002427625497591203960218548386920633041255093122282189761474362248204092340757392689932602141609443137445728503722353066132710824535572859037158125305042493751634804054231841767798697015764565637338041216663230500693554856535490012797244062896804715233280442899073076595418949519820267556658814639780820990640552917589010992441600657297367732725609809723590386137847263872302823686165606085536740642533539391823782864446166363380793074111980035561645624353938191789347822992191682830993654316156678107345608347179743197982141014176437805217155824102337442713906080026347836494311440466422122997028404640353585000553332250551235929069484224867753754767778309214252786730883216586987373891292341981705612342872737671651339858983374781637037022415360455886498423512470917791408750535401340359880094454317663303521745120739405593388713662943903339991649644295081949514926449769472479826122319638560843085383749389347078592226802806883239647097061335594693120083659233659970202047320592509481841162324035138387176907520001206259467037166790528954362405700882546474254577565179962480915301282021632196156534583552499112762997485035118321879972026018164247086918969091391934118224283729710963389339855945772981048419181550202227247220887898308665112129642013066827861627025362800341783550471086029191432595321076172601814685754741694949945588477588986688202913206626711059865908295022338213972420252746623723183175985114281336699189689605378927907045062900417838768276970122809137411354054536251456477083742996867323485082265846529514062304918883311545454044815737426183964542951169962589378549938081589269135633377223272650826483405243113019650436700122222434204889266665895580817799373166178855206263017824928330751587689707590478373586548129362120394043347920280338838485193663221055276688965908223899815333341479684690788306221065664373455693654103745299500466954739609750363139907061283838213121786691539023663456663316061483059179424715303100804352631863299943031562104337452163352726151800004962968238639583642203637534555652664337691363875741897493237505304397507075283038126556078525089624452269017795150105906841445566533215162858207534679673743621910271806583972923624200072868364601442915146695046837379896315269207937101752700761474289487814572096079875856135828566427866904242403143623540900834017539502531046143697120833504774512475768453224064506397660290179158339161183164158155887511095832512802374354626478239398490667404183834365166302732833517585554904910985984247730862060616228671104931925613523426546042499143322166936256793222318537674736077295341321278058814149087136802814835129634837719256088107892569470247596294740139168972792705742637544199945052230607900858750441584745911721013786098883805684521483584866903270136843785358429462939217075195792316330068557496669287365531066015435644718080487542175511675518683143775305792369404039147353209707326938607644609359302218520036792865843442734846308331044736607208973234931931608662556731954089260287023381185082385841441623779955844570803378219221180393481248285144236635479313478242323462869949709583017016605709272987190132736530133515838785224080381979381521819384679437583804978739381712898660749312571748322060588292252608900962532966111983462957022300966581245711798481798509746653708939053075982812209773364154692609740421930177163696555805158487925205319086884875885629449803664239441470159690155273135779168025756025131186004527374628883998510715914217879645152146449230509273606079276099746328046536877491932735231137421549032402778828735566100292533265305392098771103159325019609966701712651318471277952963725055928301928587288842613407893191174882878221809345446727813310061323435409687689831603648336357606118980249344533196880599497705594626639684935699123527920810107869904216280780829488369216582766738925176349389285287432105768630671014449401648768830683705018725375495639077140724213105115983809742188589847927295783507134641817794420702401500094660435299448093164048318641320434194079480153097226939834708315278106446315223890438410020520648335627542008970590165362579441033555269015667235485660106864275723983260545319131312888610232640573536511190945286269558125510436464993980931663480943228720603469479701079222910382475894261323782472233229604767269399560775850418396674708383076940705174490599317798401693251066334716449295067465028120357366599295005230064546878017877464402326201562630219836368099983542951445325699930752357348866051439864099258958104829021415307279684707603406830044128869971634088715432090005761777150846977901013536963026374961930040312695460434103471065925054195679954118950266231318851659455882439578741357926333923113422453161559960589544421798094489967681597535958211077649005246659993147825214032858829564769894044421610235678924291183408438373352239197047842375876634850709566702046310966838078318074773707263584283793906796926639146132138952625984128214317101397928192222112068643882396356362529003755066600358708148248830931437352931229373350075553341517938680473370420879482102243680718650016166148736640763096271870621239685841911630111112327104881404839330178902077078404911282404265428904269138981250669334913961527098953896338439069672409944897006127047864472823270336128237767763152920282214812831779118726477307856058459498086080844139983551351297855615849350548099819301683092723762686161054221730498955663424192103179344666458267375272429315061563617174489386944119138939223641100923025333767298463759949094344840292567628028613136341754086841051738128585065173368044181246792310092713048070138700073432030099706949483639744689259759549654610528570631474640676672513586353163983105685329809564765657944436061208236735246685345526651272036234357882666751469171749039637245794688271171494138116647297994734839087219146946394848871141704787901488624016788281175210032055508034344478123909632231144920488682422577836037271146467352789451009095084046484687210047203614369205655376080995891812873110526895866300724106993244846890203401882236841228323337606545575408351862613774788456975328463727815204104970752370326480501024021957133967297218884415473360676789580026435113891794632304965838312807473084889740368203548428294327953114875935378576769466840480361989061479234014054153111006279227866860042089983878134631019325205443445661934974850626312660732786520867390132959121056006518459154776598121044687199949371236682755031430657876006704214571114251116266442704946177981005451332038828899394824960454113115766882500931148447776701052339034921042468186867373993712577690178443796556268691983150848983626083953284143077791726310499775018762450446763411082532003801699938317918822424353718922361551344042722145057304808432861599088319643123947890505680424652198998232063201346546784619423030557990652190304162918353750089612729626397937903128447057114976727921287606391561050023165989437734354539683524810417190454697514286302156439052451762576337627493437713302010180531930376580446975451402361851141337215118290987452277139660028602805225462626083342946995775313357120766849001446236987490695100850257943861281564325012519609202741548631351147785809561806918369119525777059062510603602814117634268418210763271112909769490417849885952297185228377508404606572938518673880026812162300832522849769199531591142591786051890959959434696164077940352695366938906249834354349284187517974335696607152653043396563057770762218108759120461200463211653877465129505068667464939090941984001906664748957676874538645397542420486983897051339843259474735964118947329844315278483502704056008080612916231807679266674207639814648146267788334948385422449678493520142071326687817234258773862655938705680035743541080166000172743255659757321787912496348653213543447672051777777283190901830402402111745691748159029119236821000951028036403462906977089496415178964404456022289605379432114100896352964712549863593981949410653687929611394637274496977941681408158263596729578925674008147018836852507321307811505731580378588971447623244125342349608726272107640028406830890350937510030725232718774257896147563648425257934204824309691534099573318942006286865158835132822548648799969833064286170669894115629733166815661851691576999337264573549347228052268347930811857208252888236357261122117307495643766581917033991492081529600802266118997007911466854753523703409081040112508410903310311886133238083612901711967732515218985713172360356359547825819288489930847759531630174223688034505497056943514358142969141982679477634214872137394713199313815733151318029820761768185617689749131234805814327534906983258633307946363981954179574259964905714001339106176316059418096132558670755541218024468213093078328473802179159472808097037614234075114277628010078234536491593333237200419314998438249311966278950217532624159489097374188657960974253570420506433654998408139346921128641389552735679228369529938867523379303274740637552341041599678733522902217367979648999132926354508400218196950026291155725859997248161712741857926000634707903876227406448006032266643344120334611813357116638607914730189970253893795833000506640495316480037140356749414922881416022445672979434156827359916583069340099869290117646977171243376718327482842387458467300425699940149579034414348284341044213296097185300823886090834321785024422395680257389420044869854175439049086445448869269432749329266046767946949948615003913418122600931020980472357262570124141103397220916241445041986914045508544649459005515500870586560705560927987979564601882320020819473058944719426728201895732506554745686301618917230840178615862270543680700757345767025679605626946287209113577527613852644207552329211888429782006346303326168713267593113285923121389514517603120736906605199797674764224747716579815777253641898442256896307282700730648152218668389586166769795417309431467002371296801439845067352634070006749304491099434733866123771711631280541613348090386392709420115667789681624328092012711437785307770729961286211361609283548322549729458622533707604173952856495480347657228950688596274017134317044591771736143940931016442158351563773228295639527836592474524260899222922001678478975479983324053721346848709151186508683425848562524501199603936179851654109199505724942700997866785650884338215484521817205815759598276277898152610682523789984112667194922787236207365702639823687119905746084865281639956143044619951404897175209060955406159732544838261240531795352594241262217586852890397649244556726824448617805391739985411150211733195615978692435012471247796149679891850406857289850777770610408013676706692087036608870657695736968988600557067445190663319305106582930800873150185244893591993663383640523834027464476059833065150783999424687643037875624292494392990354943941947061434627331386779594730658566215532494898588129340196972101525012148219611564978092885480280592288677284629557661251152046421428695206272594635147254618469501650721160384600286757399143474149011600236626695889697684333002579744696586767276198280937711956805652637301161398279650718063024743573761842979256311693311614352562813730385442280510502218350828769038815419811468106151952483806668589803602345038981074491284005173533506550839747891167705858074256311408602302227650743843689087724013486902773657198145795568250010916532684920466264129547092350965302541764455828336796174948196317782081159809156021419659947535122580799701065529577113394657485650152249769677467976477853874374201362511045140433069005358656692666080894041111721006771342006578947398808084443363591815172742163111833742630989699414457927910802298281947155576078939749722101098648139356244913585006407217259781415796094430951050088845696034972569405208074238165267508980464262072164093047795389225821797528512887466130134758993559694974458635656101846930242315605529181955472402592760729204960290068344489819328223335745683441422387299042045812000044014654327694641943059706103541414296187680342955217957659027198653848895067293806209540157505222230489016309362902661374139169165480123006990563745862997312989596161190989999023870595705499305200993535241199151073008653261186265310064554737540005598108746931180451497287090815977927048773390464777091720642956084466894192399999275357877430895894649591521986005563848844439389992495652767510064452591487930213979746666350560982686516358825227682094594333286748079109792563604924728900997158415877416693676876133411674869948186517790076541680353297816639846985655314123663076568416467947372414666275381382981355872774056615876227454284748259386091172840764703992264369309173130926352745432578523231513864103001659915252764590944705033769842413515146558062853440873108790624580741383192230956279046130409696976541728498635224727989203868036301277338502327162148602046282748004920556528225020344850504569782660959619875695975898344366345193403405706917270920068918817910457995760860215367573540500277946071226978288915376182575432043045047592967774032477326352591684665432548607093858141512440132874617718617263270553256300148264314056708981382079171336857481974255881635313427826751791928190695886367380290143511611044365767948512353896763767828796366591869834541185379829375171222442495024944297166730263441728935930007866549326620560743634390072656199151952761379052054409384234280073769575978331311551043416828938670134676252152635506017705288885237071057959592290554746754009204961524384230578697115873526080905239676999825070701783110557519056740859251702078616470271743720255510356301559233854312470418188264459968096554267583618193711091546372616711976676129459865198263903787049046430003353196285578201730057478270798241914824744602372429142208346510662931141385407369072929453648179352837674714713303540988133847246467773255870675006165531223707758886444916239312200304172792983728079828941672366137002081888955756575979389638830160551263271616438905256589214532045884900804310280600531950348178050471063436104109490751051892479471189930809070935499261764033990470123062199523500605457586541143006071993898241233773512214182212950153735619670318486318708410395706698956334316772382325323427742163406426773620541924890216769729846064013972462810172229380923712397294650443942684452257068808584359438456000973262631043173059998424110391546892428088514742642352146200159607069124436767541486254841108419925550496939855920980262871327073323956216163516795282571929121003906135985224078454281279599283964111683402936153220863620761228851648742094887458565135019757528118638439912315219329876158015625489852879767899695972565451516333866985728248438793632937765539750114599171399598111234460078178524623093054571262250065431357365464781693199814214752003303169894093464832223066680730415166396726395576601335270111869888964807737920961721333942857497797259388129304104178000240687754318823027613951396259598152927916218954708802960996685996600590717431326416600656136204025142909525214087786300998046927629738391219905505435073221924251907449232674101810096795069656449599242287714893140864322482770607034833215094842214885924662530014596879392799999277352893439667370114908723769151815943528032323503376742217681574530373760299333135970752319931729618177192826119285631618178602861638338958477858725210692483069907435355567489404313182804845044459756665197925227712790007934743853736050561815296700809139270020782985365212747001873086303006525401672129278724712639807400531720343542333392364052310710952130888817004981827657399330572523747724672460998544911839443363216911394826040597760877990806581356897400161569747602283232482310350039540441672487178818583006381895570538054797786399616453860465219514190617530106421340007318347662008037907189830683503188587147516030382009348760904926034195607174902734676804896761875040011342691922663819733281716419461653760784870514669890251149367727545368747477932049247606707573698127838995308950272661596748394794281217260837167979507100468067740967000033608274415170273460900946023632529519478515198663436021554420516390351870538383447416408584503440085126118338653261353170629679682442253932610414286920134860931560041076059352149951257223874158314502216644206809877420058766471296429559063380692511258285333752894461523982909409193441060516910061985032120596171067821105831825195289485656782144945462254111339696850763324200846063703947374427563962813614444225411459621665620950133803044145319267256490684868341360560385814949470166942921436388012846836229683661435399707826524225822320456811947164614563335334429998013690509543250857947016382521047244434105003374129155338872395956246872046839498180469148582415397725238918634107207808512912206402764600734119480588871232730536036013146064291378796126007763625908650126092227909915939953563382859945292753442083240182813155984561460308774178946115782097319733558056086174923827382260751261462020415562144440194430935524165672014527619293919310406629886245330043302132481897489489136459056006920454617185724815977190647744690886952047373471480186234920204595578547656464410957926524754629122260481027788253366525356065617002807352228704375329902969201385621474328480230953314022281153482178344130954764394762949645637405030893114811842995623630515750324840650103619837665171277316920636914277938656544255363905367056163005350362178298187202595501148620313568292737052594823172230291318234070436152434926992646133399695097480598710106039262651507919439460976613801980491022198661181301442772325819809046544178295830896123407183704309632872685362323758246365083613570009549897231182723501448653553702613842086816697213664848762215229808101130243907454328831153643068700429873271954848724920408377661267360222886154555635503375819194030929496516998646848074337352338594911684845429513156862536594369351574332428659283853187367588189261838809459367628305357211228423619534794379290699466711925857029279857403600209069464004630129330845380783186789301277268784569988483238775809928446418034762667905552819295488089218345948053075063427268527298804492723028129915936632591254569039572934067124916307337797124205556370253748420513597594867658593123277843246515598360010412004293470799543265131874757533624841959214622636314109412132364244761467493575174428779029125875639139305845821907190017646292391108294044367999468533243852270893187143513680039507526041263705947000256563601874997497239749900292229493731218160354829842181203440510592526364863108531565692942322607889024753091763228601515886853143937896965716070925791404066181643487099639145422452447770593530332730345092044320542470842713069114139918044754413646946326118679436792292464731633787999647533297769905141407790575148364467224408771785349374804061074403359806534232406107492669466668995298397837924978920571603464487988849322548171450927629022180233084215379770142599844500917704806400190340122890210414421278838282379669531441460019588509079944011104038621901056243869629375265662509336698136166672216505266724008677928490918945967776717695594145434170160130695990983367924898677481534907444050536349187936757574646147517884544422329072099448396757196578451996953331520635166767410980053156827229689450968333322610441834325231384343607186791042134309289339167965207613237607424723519954203557951396120305775835732534136751779784770981941433335533612524874039633357709020342140610644054632263791433540374524290795984008574640731188897967732202183897562933681930575197536590053856537568988031400158083507754348823608620815111330594249780060668630266865252538222235684209595045792953883815205871923916338191743236314149499489293369577033357010242265259074458858164625117308990540179745129339163296882393574473943265847170009058344808041192184622951664702797602181240704143281374975607521115636430200313172386754307698212192831144197359881281717554904185167044164981110027827520571342401811469248604502417067118395751951915858035445845926066874257248777765782633972133371718712446895793736727407460886960299981941071001007781758997997580591832517743220273913206403583144930273672123311419289497176930283301323130582435690991679043811782620791394658788524181153713376008479343600730737909012581745133747692049457395026171102014807991101710587107334156044369417997748644741341365955863262554390761364295543345417916760168804702690548042056436891320499929853742931233353923564791039271286319757904142480864011809530969540762213195656429512334291566968366593033949335983626494994982168390271435121704230698617934129511988498037593243242075476426025882189613549605663728027703110996836771878157137421695038202123097522454388950961158263787002218396291634192612566351882327866420285434141261567427143023333689444730478194984545624328652471309127767686402817146313296836118119178041228935873479969210840370990156624406981799689032826783901479811869076310461060476779225352451812657438787598015581411061186630540936156373176065762950131141748908360419193832458233301564100958198923905433620514258380759278837766260675392593521541437558641881351907544615602555874807663031126788916478414833643640412790295379167026137336792768733871048748256515290998739657623046594540621139276845492886537336251663436544924413077550959364486668737119007730933027650685706777531468659311095711861575527952428519804293027537225682903119846112614503063102835582043910201097110506155738918812760614254446322262423374732280510575229321458129861635098687000262066232516917618460901948107088638068533248570146139163152107989603739710969219535023685996059430778358470434722303916552636675288829507943679928068431278014453123982686760661516468027636534702783114054373168382049492237803337871045912365475954895323224046062042561085099575807618284745801362513444865735310209898639720890178749815499913019550142155317250605787246816505699922066743253956180555860758214052556002990900974535196447497259121205519030707595036093771600756462206430667368990447524092786149812793520607690338808600548317014083570720208539411074131975608170145967165037999550129856298402165841817514918255845158161002444197672549895671028405789128220212244122192922763297594931280743697522929483893447221562435171873257980906241135506887320301782265286569290108510831637267210959191372226187882841265561905603062590623613740082561821119002587691458759020156461144585136198901224761923073161984258270406961081273700648060176156061666865736513348575103908464998490639556978212342028560086088523692672827623777121219270404604354285948669649468486145800187840305664117576059291815971770051939261713781537430048598068272755534822290558624613689897707293632636381043988196110812692886785950433145792676117619925868013390660151088770925012393255334141121252353443159646397648140245282246568234854040151603925008499258955431132897940450851704647414518742189172980540988250364106901706251639910695972093151429182033959867183798442102608712075776068426616490755267662888021886371913849789782773955618959551770998682570214553063193768849064246662701972967449067273900362661047193421080175067857842596228563640614307142442431170101601131502353556503447994574751789474587915515222616829157902489541027250573375164414094553456092797287298148874894240491829935926993170455471264914231293048516683550487160617203646499247835756941716335430865637084120201715168793042854103251921207414401970956782407022258070002130634900451895060912823012238289073486084585382694305496603087762218860601077787287718937414597481703849783542035348839929275757297582299330410839227938319866377566835419291922219808677199303959243842675660234595928049360704738907372986033225524138189908541835844275917994189262659367544579947949093556930571758987075377140882878219468079268887423712335711951965057171639872895428039453103425248049491322147135707363568665287319895632071732575024304715879085100837014074954709825957282538215919238523697280463920015805833690004256434271608611570092864201648521627265615940870200766017007163316556029979394730341528895723000572020764760319427232096961761284403620045249503826028139786347157258608458068193353834399358988453108323768692299631293631464674203563094867341312163637116089967798649139653453041575822480976440525541315212879716534417027356544686645398639518035000082725644139145142408307510135177914243060634743258577395532323769804867989760611707038303120494998711748920884458941154511312282567675369463991215493194148981200189102323579878108271730911070989152093890173414262746954450851196808077517163306545747732600094247176370599800617446516519017900333216675126248641264720570371819842419898531206475858652388501972282299823987468403430379688507507563297141146081098008876048675267456050267232656547855666595164764040836739974775133390122625693377891116632102957104034851214606020351755478924317988475123412490311376974400257346434396030482370008537483763093236345747566839579826292105024402438740785906779865393473882936522146752146436566010563919604454960010099943547933153935555403708104860707541681715019880373614898355440555665994058370938371422667345333725058162078378544573914757456756698229120333804409975341219481191602199342760410329513604671821966219542339301056751237181992593233012311984144126190725737024328307335365695367810852708255078557929447793769729740335815900544786594119767157467285982425621511546505345819285616325559863663599306580999826694065802152292454501426839910907426799856159685425788988864634010016113732695266842337655455277100707410231754819113519454826487076498295033081144560882808710893456995987499360508318108871878783506924618782822587162778036160009841629494480270883528735058084105455127212422261267664087963560197072513579979198220848660217580190320565258540198872184487096617212349654003444017246647218672342713416871812395841629408784584634151963419479772152202864248952531357453699874335814977417020116219090897204026903776014403143301233104514836392381429831828595429228173438814694530571873765050304152686228489175946781687040488577763972370909150755959730573980305895927618871730611286389530642156401028792168256431165682083304143695218932433154353300878482036954100982696052424111464916788595861987741555851683840128837931392456690914134713939183350450170113956434705121731972140938081349537695807762218638824183750154678649054213288300615928991568656826315271088889928988188036325160847051203521122897594174202523557540817803954406677957826562420075161343812810614002223474689749524937776689407095423307612273133646915646810477463117687086509740677327761470112807916441963325355234812065809456448198307781421596199662670426253921699316865329481550271696634629122234229734104614420864756203489182756206211250968957424717391060091903884365893304805711439100168399388073134342541788312359734336179250530114784328436847926734884548631914880285148092983678755633171835311825131281405006294886874334180109169154104614688220119044757023257302093624773546404775532316789609895502044772336918456398601653685194763313397108011475905562658248457189718538420968192628768734658430718921669157597583394392363626339260056197802418582537703204775331319116274909324073046195991537987329335821032363767071050793803539721176754793947828728454647547429246446395124143241636840357472135987033519407793814467403684934591027982683450745868210372188523881623649793412664595734715147442267728997167439512928139689876585674449507373839138636269043084475836458882150393355908812314631804708912441295953590600708356563235714380151960463528087316998622210173282046165489486957233893701822432701553601574977833101846123979404331141616828097324020060606844446956562750687761278277406996410142537844133785561992562022197231948816608073633836597543257310020400351313722396927354870572020513640690883501311985957049341212251571672669262926539421889720515804309683754569038227520919558319460734761027476613326428300471912788024346521301922656050151716307102872751915788703783369273054524513586704087479614836366332555391706267238977537370475452410451235152726767142989738279732329618748510124362670133574715700137619114243681057249993880316834297633583211302453670391006070268202901154551400853183227606008738051515559584059984371716483105817941731174740615389313813472866143262404986380250929127965791435040562956179583459046967614304120304969021828574964511558255506253653806212533939175409880068868149765752907202232333582145033548686751883732499147282655026145638462919478843336274753916003038927559664970075391631951126839482828039433552744136190471194919139485987724384344996292114756376437034006004632384901144309321845481811370120880545958888525814513532170827134732740710048021764937661369944544845711827272069056076834425912909512395739545056388416421321394389901532629387455745902886624388856397940658920735777606589009581067138769936590182714824610464626988668887516958816716446402822264348784783991445695873640512991347023084402285107993313654606263095202523478717413676705426125785480063533513357036770276815022189633239191067545603227024954132951874374593219785444542018320778915570282523846965263061220622983885563970901466249582172358369275460090691877499991627639309209270627781789974348771159859841235593116215658836991755294377457151213921315003581553976734516426369875286618182851793717672728022921560050839880900548421675235213225256718285908704699906725290250622518133760919136356830110003857076890603592638942567014350574588465111045017122324959694303646645725996788800224065809685586076370606243830793588257061065179134634452241925660227300640269823840743460711014245729407002145883466165908620777910129511478991994107412676484620767583148592612910124487825000651856501349853355690404506799487624872525691579674840893591738056682748076078531098992070931244465161503200119212089116167545104912649349121896100441270781581307529666197240880843280158047733071123964937967208599791878927095437225229831870735345832266800423238726734282142756919131880342803537750035482769554890153756981648529767569695720895929296000330092830554021509386257756981142958957498054583340248489749822601886560189611306138386055977340003084507629615327904052087970493362316079865242619513311779357735941397246413821725098541796119969532353025309131449140979098889629208525117633411314685826457953186501121762436941457948954059195147048879761780879184650759913592056424660307841208980314157942827596461427303504590075700449164067935036380852185280409391127182449271033877508463253615880032647810385979979564615925844344937743670260550471163666184325385326781541749543889283371259153565193254783068552392427999060677333169920702657995969822157704497478424003486608549352657770974724245512473742865205389630681152770763518844069776316883711382079249729846133908233771290409045676182475777644475951650819186515111704254592077710489032157090837888872083239154064516269435703165981459599509439493550427182096085095473774323240543938971987529986491341987819721413037600678850555690258462764179017758209741251080922205547733177950759010051018670840366913896487677847448343182937075958088610127442832688361132160297531077547905051284422387923776786299738660174629142359519534578502205184198403009424900707287923126338580241460039478074013525715959111480101166380718250138660623983183136407830330216721021387735698311666960668283630600236801992630690692102960955427784388719522607456997294241085905612392503686482549923297573633597795662404215093761074147167728003227287004349840439327106810720394956832635619474865119315196132706625763759717617629307568923304694185460737251610119194318983669798900816221409687484169696731697453284452637497031682729904722962287493592785470425438418553221642675212016212972286010328314764854420236749128618578696987659616419641111703631978476141917513993864617785202203432447622828114767953107446439753926813886386984539415110951674310662345126604394146140411192675612301078738733046464761536184575384488195643085706992435756578400923687364298011975014063980463318409542072561207969030477085344429634335588114425346733272127240932135227088299978079229696074170730308252475689482763464890155606547035037310420998629624569222482562558531080252729852847442422147751808342157493466315011317779541531996346206536179187366438350940515221488407019995296742752079817007763863547445104127910524666222723546772139433754880383348864229946962716129763234899309796344336660642112352474110499225334217211050800121635943116280220921544095873482752370791083630777608973805712411862645210041719913591285502570244040018486064363200403008480900540690502618995014770318224961658689519553570271746769988050221987791271757190988207197741964530955731181811300997720388094703922302412989167894886981595484505601618652248541148095619392659333805371764234792860196264178150495468871811464559848881542312759731752052651147584857577765598050450583817903453387261346687082243315058437429633376454310220001876097998537081849409502405325539228745339623876511655505302741918050212076090604821110333846060374729415004598556223983587000794524172618277506898340916270123906321946285092519662518849810135797909821039137300205724427623698475660134625846625218247732716976985814775218473345565284649296409180048307961038621657457795815799442010159527352474169460512944544797669185706707928748665341754711203380119833249176686880755207949067478908603117678096435807106875581625914009730523959018524014061769068279742216253598492393490200901775916662147234371944337969426122361556243456930917210529304506740921876336971383418267259828753761940273690293404349434991952377839557754319531522828422298362068936872413223427777011558313150616345032556668106118201067611321683640699564977223887762562472280239393178550542208288645557032765886651056753629451527647056153269650798282875878921857643639785585327400731742974865199319180851482545894763452153164164854986814143402849494778354613951180414971941895454682573000317303856302639629383786029788364073900263113698066688776263629778293351364708600262460698777476899679057381620332114961601781437950800295646432177921727405696926043949378005269260943015632577829966947323268690726966060417704723465886073997911611415860507724316631021494205268818785745440733813871897578457720298153883022211118969291423159039331551641128871710325270753961276376619688813093161722078149367804108399147412673071546209868939721866756958585842804892335202468263581581296888580486241619909004816473144931856237923408451446849802583342056069220324934715000414984556723725548565794335991849692737759412897216134439077527846741010852085885030946515089328663515919284586275326212593041989820300023615310826486256040572738639836714744568022415901621106747067261220561496762174664399827029067983383423016103508592998160951456553590870201123385207895230812657853060051381813607155996760452847255279299779146699815580166550818301603925092128454559306665828968139491093243071810203121748980499263480190012778748963632680521813713192313318568802877202418358500551012448712920708411119938507550326998335697991713891815441828176273257168271250784756504104170948855777735666528537462360093640161580607011189165982711590189376934937909978614630753019749403744774168728699248603545807637836659318444048849588957355496031418014889432421268855810956401805206560494337709860264105684875553897543768928901960458030139250214476801867484029416894235835168866718131116053432018797439972545741540769428874274857175865060538132192919632325674672040986962417059858384090535273827583224134825029655063842279936257240874367371562381184515950019557060505602151735783133868430135111144445983413766425945916737620283952870637435058288533820414676517475165497659864019458697897252411244725107737236615139480126390892279753177897402071566412490806998297804063119331651224148738494429541043052392095020026673373069184608890844783258152414685942290328845375637799128858175803767078372651378353360561102522462399821776698044575692765324283016206303944527170483852091152917188160261789714502407894768599842361182022746426100733533257700872960366944160685696731026426847212565473362764996013172259404615826319155432828073908438631436251626662429910657184006934691250136948998096002822510694117108448739743619955276784576291977977878442168020379970175527051325277649159088960256341360469684177939162560549227634007194517196768153769005540360932415946767289163322414838518226991133683703000527480281063182144243455105659991848117542848886399928378707734151709250941487832330310028929595944437036569136612010527890460551932053703786131114223820681793111791791518259756521584423256455357952072658300184408520828274823824565209834420133426305643368087694376860515424395385779071445326181912946028038162335315645558943504005975453085325066200673697844158971975854437891641589744590872008401550064729581348290467849289928782952492010519992962577864367520421770036661889259291699362128028908149993124493877364392710420646432468523688317066844615110245582341720676977807020562899889230304411320489155011039016466337931790306711250886042484463896268853773454440848142614783510673537704947849147541927433397875529465859512834153737529588010070423036253166602340559100445194727750688548660773486354315365895313256853715750427692935507417494799280120042884289072416395611725894344367722078066101528596577103640970826371824937607253871072611375737387395634934544796126632840228584015787570365232145197256239417925668156000964165947078680994512141121725662731097339689191690481229059098257743490146090052982808055630422794488999372792021149589662984922920969368358420499723014035359013067427640267859849262740772785332019426763352902783812219717105676422889027421642644829820695239557534105571639285131435124228319222427300155130257020525186850029437688272061363590417492085598962206769766153724807520836293646227099579546345588009755932509463829326661085069582063325590291029039968244413771870886997358700402049491855888378201861081118955528543878472403397075186047922112847345539325055064645622324849096136064481837153016114288935086005105302061776899926901389915121801463253644597004456010144484617774468183821415294321506192399920954477141450903050108104864420095079624515796114117536658025369096876535067471126538818978102463204581799234602340944860010337162052424399376521311390416013247726483967812883954183165820059274743029832524327193746999982093408360706120362809234641099365088889419651485916773621979655241718930761082706621063415800433534159156115867628795244279996969763097785291678196396675482848710940847936740937450465318350679784544332497201865434190467894563435681399967146273637679940061881498877484803646551186596110603630487230675981994018323334751889154601302760516915765400425714043715631235299064938076982101859980327204542832784972378240973515009892645612256122847575569408492490070665142846155789185211124949904986772570832026121668216988110509543514412403016937376856303630480037609068180441059976311447103494025011378059590251222358334516333718674262463285170881631605715337027628351768198348448203120858136358741397207974336971526803530537531171364999833311806071992827051588872001114255920096289095093272313298374420506879797771671995651545563461516271341936250173817286167929006190677362061546203724829022683496663853296777807803634874430779413836541626751575065759659219377491552655317914001566327694612631968508022458664367416428047908074593932663128929289703258375655824970640295601025510388664588578050940150597105259495365337602276141994234573005169846446538892658780531323118238901847314394771413444693039093840348754907942257459772056201895858269519072586203733346836035918905148527861895049243188049409618392648377876799136895755820179320546275735871947070389462287236353351952019465006852458852967898163209677743808027280425865021399168092122596080321370674732656752238166757920254016431369682862550558486064883343065179109114969550349515208276571492643435792034757054379978605816115598802601153792998127921796569982829012612137228712791820293905625782847324812453601569794440776522308757248852414633407661344729849278965238980280729224332678930761954935979357174647287843267950545945901467024692095737620273379749679952152441910926879555429598319406495775128963479613282456559392018400100189248785666775917942960590713255204536648110043663042834087919934381407766346533571000586879778191412924437011173940536523975598099115879354700503025484612867239822821193007335657521775937111281210495480105464832272858049078409498500350335940664657819042450154760730206482500034693720895148593948386571768679827178303909119215163935094264783807718689922427565413166385472373184466943767106686638722862549228596296915256899956584173595167063913234751699380444485188422068599768494626611967340734592306737269082012480313499355128482163434202647411279854406318151348703110142023102709664526068436638548997818659373012926538832614723987114559395835614778726790119701388949443964193637815951570219849089442496907299619434284212168958799693953275540327561966179054714704180791691585052585362520318083648731898872253699838633769082773953043460831967394281483791172640775681147316962834606956363586521765344084687329185140728440487085085227434604647481795404808042082220543842046800253540032303761695989374237605737696819461897422131666379707689386292543249245438502786012768597336288370243547141137092801854837170132371469741530367288637586176327726403986290797955879015387179618103896032622131506011319084010022423377553185509283771701275956250432974989970844325382977813151816928379576327660990001215356221099408685599798796597268471277469755816347952247158781597341052745273812715595045852387140313155490852867402074425390035841329416348790067955088036034505613623943287865075248484137178849734469115578869217410903059431979411039607006854412419188719832714788944705911612741364454593374008213095767756382719033120878515540187529880786088380413937538363586554742206469223275942389083577153123006068788533192227867733532702836056409404658075393885987075523439100163469031798787922471447529466675069429693197773229431472893046554829328365078906159647534461111404408432643958655353676535993017780580510246592605583749271509951053822861769069293543850629471824016572553563028668775116793141239121395430764371498966943189498569147581654540034373001071752338577464215444557565465389784514641368879453655908315486451887953663970040615716062957896779591786115607113631381785951058588227381204640938682277491053841823090660007021958770043445390966765200066727852746716600009139178069969304337969938118421424301846503384892512494644385583560116460219797182508658838184371764885546981063246063229488733146872445057410898585175516477721118067085341267913689888839814539276519254350745212697179694587928656881309855520743909030484147766336659822363296062127733536107434508781284083565129011306397165810613116306960861085576258920661488353724667464003285270305406253070263028519951153365228660114545112137143605280543198902684390758492583017092980075882326092402647993129352648268365049085415546760761871600230141188230009172940314992132819961761929163243952403444302681256147621229612573257959840973345598331114771376116631945856544647341814120994946182631647984959404442037155504824827352840566461165065422240599780070778794358360458237901712638033718026359318435266602222494887062342527319172256324529512373030236975272010884843141393420838037343295106917010539447484242557830489825949669119116618420880282035364792623732133348316980615817406353685431392553194715413326675580855555535861620291551963902326959766079311344625821727911042327575320952246898626283341219478359509021054215331020726582146408925609876644498912980049671576078908258718136226935497126659380390853651017026013048881446340416286135257334251814209327803113553792145630666231871200363715197550835595480589794462675715247911649362845406420861912116894328878960278849912292808358587221144288762591528414309703068688375643550799283043129183315388787028133320748953173272269706374460578829708905061695385129561168781229457530210019941370490148339660359219891826031346746737353084121427286554415761049925195065956832794635618057249241963682922926352688488238489785633202451926908008735287768110918344264051516592091759598337102870242786119741531885374766982753985876791039337963739463358767497951500061638711059552300068982216831033540103028541253428407414713308856212191444165223003138803810618274577471712235766819454922118415470981700856893502870247271843326349642390680370450064938462848395285948166548978579208486263772333479131498818147265455120984340664425946569106908145675996354877112865163476141952543975890091868505254547572149560828949852461354036858391210981910948019196093187584279758076689853658663415436340123164096898126110952465235976699070489755703132732904160213110861565851130672430142141574026261403606889677316745701975063927882842342655429015270875053317574252765852918092040615224383762540511646235413144739744755750284925382388936667565069934206444731344869423812316543768378933171873086573800412028740652130739267960223056715018109711463700066722647566368565376091572109173463380067847131881484121100935455799353474888497498484666023383162043416784682379502462279384254483982497828388672675065884102329891861221081454320387507545456985398646340676558012499940137514490466394372100385796382478152214607915883887778732898461570662196608709966480779134422479245225058417841115596917957361626981506171785958115337995801394593315122721557293834092106928779173699192581188917827457662806367811343074984814870791699879847798127625639439209856820602074529253418936664919859573432395579336149982533317189700947941484944591884850363308042038382868056295518950547082000151862290850437918788402050364645429720331102376729727999721369146801081246024471943435868966056655132178081911136215821049740860335960802056346068164788238524504201944519955549354670790239966447705077640819803436091669775670505387089688221825418132802033440336531442475313567855178392186391293856431774075987815504724173628099526335360762458826533829546874823171766684248479409818242237809324506281566103578405969549683727912336855469750736856042687249599158510321315560917749440077866122304648818025493784011465745507951032793161246454738252459801105326364943621103387340280283995038282619645208749162406149001892352943628248661376213961910030069818153448640085014016278187479670769772607740140693577504399684204327164805494941777149735686457000269482551802400029641043790093603957352504556968143314059908779078902396370391229416564332133765764565544211751032568523836074574990086034536643302553283222094412724376391617032464864892011796941209941577156714921434441026267210226782790215240273161631877329124570908868269626114251577419031073244177000957971709795502581315164944352414226744884752828470784703719853165155146023699596950012477232867993497927672048284171237448216213404847235195546942821619799533841706090290138979409344127017057512700504488771842043702427397261545978001299652392930073997254079032913450215486097899871932288958277960902852407435523737681797080526387172653477376560151409195231752323442563992243133713812984059524719645106402286390375030806679321354488186041760478451997663537489806716642484162054570220455403445740279674129744342288622407433416101467096195299295142014222135804636113451354029017770978440712716668621696282596503070744008837515673264257919015554296302563899253143536718713000954332660540443985996841240716574146632370763458634142813268791146152498856538890116791493280233266704776139696967945142535835126417209804129199411927053537908188527131412116881949614030934744391388814991055395230230037521828371732640253687316902313159182185072529177127400160122695918925981152158054159697704270958828147147251218338306731461231249602686843598008159629375063492359815720548636250286771545285439100917017766816740361293556883272620174800089976870523489581911392740245162942356749113960797246570619504467505761549023672952052782739194886209398856943534766747209984745452804329186378227788429095270244002376159717520221374276912450649922460796837883739903616312287322094704692718969142851046259512255089095152534299911497435127580538014878791261406829018475378475587791126253668914151480072397511440106103926163330812143761432350280367104817313258433186458343325206995815136632690707311504704163864963366281096167613319801958128055955920165585136159627768413642637431371905191384374451663833030711741791865006107684513440920700267292430269068122237548356179842123060777137376225474764269317778395959658014853449569805426867734154088469570158725166968107485251211780321515294950697339522020995755597466300266566713939689338720016593150773340589939733050326370760251880076606854265163485672418600981345919324861519181073563609129243414526485848006226007693017093610125470236221471681450275938705052254824150766705000142015285184839058052231958651217828258952179368658333906270264213592756402556297273515951218879899328808800060893453094633448676325976706825338468987448353769185895279981179488558609594137769379309211506429204067742416148869447202657855976783978880238773015990950668540368318371743482558653886808405861827187900140644665002910682762252646141376610114979160452617456504993705969121438095291664693819061739801419606642931973775355776321803495970597410761535458205334490223077195001093315020794695464664914076485879238266978800466542354346963315411436462266490426543581042485676337855276176024643804531676131382510746040720767852272008576422104799554426804082026852228594645960204868159963693082037917880402537364853902069757506783716023558783338058094851385542908750696900332344278228472270748442119926031127171931764898134124081895125152523788617306257610077257259048166055299565699035587691104825106345713675029756988968365940474759036397802962224240856662778715192614110936394976032359299989475406604050568108249379304127690813043012378429126644511043970126721350128561791013870047828974930052363558376848555492730991361343169231842555469584426720733746695155382271729266249338075910800797639152528586556221931905828368559795621582751120151504551458598768953706865747968210138651913419062374497750003775065200320285026851937712991277798983007635535765332302526570961601900506411112756937529677755839403982238163204948306493861133378369175320800699468137261258278170548950554516347054637782472580590584664001298496779513570912807359878149218183003474177601818254644024272174919414145291872844222319659661922616828956083601250717199236532954319962720816474852451196209984386349113856927585439668951830604409641055004814855165372394612657250462956938106680547273792325837218284623227983199672325099916073940247590748482967785429154414772130695152976661757603151626940109392761524905085337844647059175658417184829546620191628212125566733123801391636777247491867530262361706577796303702709981165698465238137663666302022316801417840860059109381616504895999748037104724056010227939228339321172493377958144042425385524009223875785893770640139770870332275164294678287810944658082401891345379557965078287164625398205044501948992121074134218383373254445897379959523941518631104508489686338220928579564502135613405327066265056129575072623520458254616711418665527422231328540501714090752417033715567499430899129315830938051956308013908134488192069804529906157705925856821191901365883883100359223549299660232262047188515087503106234384376208867758855351104915173670225399534725948935940379294902764073459721144482693058584921649366447683592839593822925775534888650089644064524180821324990764310519716603564560054374263567821657412102712179044775470581105769821387222120693480201458685882490588545633351803026451911068776164430915864253208324995667863415374637306566243821715378059495656693876515715238951489987016471972672248043911433212342709973065530590314381286854826590449880383315013788914066508097797697534585273282712985989852520264628517617466538058418755707522213356504940948285097238775859368211495273484406420645739338995585257728239013843036372234238765025396606581330312480883577427245736045991631963165309545507668251423650218800214042562544542119015366570523635429652782861497896225661598034576381010602518326063893982171009319020175141911776751991205365349133411556532137925888480826064117565662729024148427055052340056205364577307739523561954449918609475905078432243942219303167564882937868826584353739827620396920123765225763873990512332098761097571217621413988896291792384730595032366852484469328755437246313100050014304737262993514248441848289135247060331573555844669662329087916522475299331295494404441307025090204431979306635223620448223218467044586946648953264128511520494876166627567546979426249180922132696225207264932601431020049178456600393789966014121097708350115341081058259989978886842235973292531317002422179105088444443747041705066196766981372397427056829717510687734250540086499076386742993458912586534840406382330522734763132475498002721958472220529729991803459497946362971927760926913028021393498573049395702152015206879490928343047680472588076831274212534709899680774368801082679690848300050183531268771467429214768459295706173402966146721810119231271674747183356003097014134418823602584095236482126382990687648322964428229104723211719169494398360502199152580506022328883261824370239489300338461181115610240327559208134244341342454583957591805290420218436322784662244596455081712740003063871316359496057949583361641794799264549285882974732181849453356269241137493930897081524683493762573006009073939449074191336416550597209480501216851691091247232160470822668244112748424511114572132938801454003971469094433167896623604349623392354988610017743418194071860028047617285739784606341999684381049780781784913387229564297264676388897396921278524666526173116871902680482690477536686142322194172365102577484423308211875756024933155962324296882992703022101081316456896850306833255958651362492885766270533887787046247900595779366493394498768266678756357639274468526302145035347754698609065653395174265685191799050620769977435338803987195292247888057968615648323383957371694048158215622648129709980235719015281658622600069347753682034734490528935805007462498731179404194706199397851156641417307486203415682530520156544087393518627187019918393618371117548935824958826805550799831876323612402288898278901213183425232776402545449093215085970468817575238023719521136083425209323177860999211628964178278588554584873010752610257558484945705476514772802834276268664859807793643670560442412941731526826702532861556679060458120097414616160518512955948323613611964742979437767984640262207386630853967123738562612165911975746903083339725516533538298219482403269609270315494649971538451693736894923255604275700121039617414887705894170831978735225790069065515663132721918401788820582079526661100777580898616762396672196177071103359257676717122374207096817304206053639611692508072166135521952757868174652794353647600899898541409320011899049488248712666945728543698241468500025897677014473190585806931115913217593859115927033470006172724196871944360381713476481114823777640112671983521685116280120425243361498516678918540643807538533046617924711424963747084873772378842096876626618772069727656122031813654714571647476060324247461781908085040627327018411310192580136930736755083075947466343611035392569835909524018540553720799198157659034890637956636526678344575997559373484058770898832147121105294014720770011176304874270589077820538943238905704820402413256973300474811434553973356117927549407414560327518754975671890214720869722092728617091494380043726551547193068637473542045177536025266123972711468259129386138495851254649057928379268528198440693660168514055708963979238077005778606746518031914615599599955473473698536809945873691141649537002177874844328770276498392540165694953325282597273469658423679080869444879741291440547897833861020960514927593722946510961449091924696197209485508301195367509392695196520885542698454525684762785053321582281113963909047978132954479379920435627255242380685072701135888905182942612485687702149406188008655213105541651146339721783258342482600555027453909347597835215043859598594479122769478505420813240745979741005491891485521158527248785119942955715582066250706207206091138385210990336880051739940383382618146737883444398394688864935624642167090512272159488346520009509610281023389198427268295020135598287160252276161270434769236685018088151796837108993269085745759562512839694033753523739084184602920270822031179303430882792972604379395430306472297006713830466309210184895941260796009027342222213441000793859416430583115265194337866448081778194267793800553462091155480799669938533663316158985994590633429874902299656168829270628563132901503452354007909584570426457355975617129491271592006992865437706864650470144663400625655645096403769663038913335672166613045460293454220351973644222732856519380607925211645554173253228350432958560143656508701700623090470192813888934250286168728497543887665314319375824538833046534713505632570731008477197867934564083679177740495055174133919120999539633564506820854038872506089187146773511370564708215300577017557629080190106994544321549431191310241011831433908142992520463792811820060879791834759218979270799164044953924530377410494356952627607272812183251461275954720311129221403107363801214174175233521901658590299591282577035716318797622911060200978014566351245104057053543972973866944403505183066652332836070256454125238041909488925549550230402568221451661688214308425161152409401405434943691462131398002818009063337640945995473101993695667031928989643296766151027842161128764101181522891367047113383938261214257562108103523588175943162209742802403386425459491584851597710008981631018916083327718339972006734027941332477327984886277927732389979016529293061696830856720965801413089396516725971925371705041135659968190022705638460161682867338349131109228969971132188486204463863517452981763529376895870988577366096678243857974877240826028082631020942910075597799006818547261903206959556023449026617376768684807632806856149262803440479343319942762489094425384550251998162708983797880351890204669933242831372142288896051405260778241772472288218058230972667050123218062191073661157855440074075497222316978481326194781433656750840334869150967818533388500469630590873009282210988140247192631308101525413125151314674318635642323704284315075912108028965404892851222849284540342780324018037735641671165100706245690119161334994785754559877905490813463578834096780519539046761823199320797379136049290034800978199639244228541252494890695575656195384294705956858792474373815766708966916285675251732482792643016031796536335218306169258148695624907665460949461498349316250601915309436311958643480245132908202301312547681596378096775139846060176035281782826458298208770717487172893896683838389264244884170967596123617691480487488745988647826452865956057883903483774252633152669768864583474508669662162643814178445080687361000438950341706163874054845979027373990868904710389234940792339961442708706046969842658467599242092485771490376042382535270272516925891682678783299985293966975730114508623335276644787511970151044546319840483407373420615332334012427097174017252178292012306498918279439454139312675910970467147836027952680249052508309807197554920413759488860228673152271486586180044370701088994790887998125914970617253450712380369738980602289607508445620868978237969305241053419491740310952950502108216414255005160193489890688187634610453091113293623431787428225848719837397623039092108716155259624763799404474775420581789822707747596927839523198989038634547907402930608621213685525092750552254918243128065576208185716928420533623399818449442746277916562255806040622455292220625444841124738195799192321273968823729213207656083563551576516175049093688779889815584595569210633729128891487673525594463239251673921638991202641589280742862446869426590530120364111508490328757411916587508790261844933694616238636502546690955379843914031641499641438603423905175310478142595080911868718493262900020647690244002608929587234542570254931318733681793989366150015705891648338657107442906081453172819696335495197152406731661519307524358332592068306356017011304624375558866634223063181446476829783118205228394841041706103403501013333111034270647827903909575445751554318523281065619653029132221308339523514504561627708892179481749056014813144555950600220150632982164764852831625019435781125078643103537944332960948591444743002653646374668325658714025898122456903927802234704819714633516170739010528198750598444004647538876810750748869429383228097186894660193862003386479854598002960933913484822964393547195459737269837860052429829455424862990058278514691305343002792177317487608293551352975535045342428031014582538730451442576494154326660300492013141197298245156126795821634337426444676671550795832461429305863683222542268864846559196261192311673707805976321926310791155480736770708429937425890266167404163898541384330860450772813771392344547018724054702279800802146366424623930226858681448757818629819908109906393627338448618541618104955767853928215674987410871923184586260664737269107506988109932886430502597562041442141456813249498279193016222658550874543449043753564682328574234745542372177613149101034119896907452065779262337251177138588115149748742835184118732703507849495162404907579218179403097407428445112706709820489616294123220358719496300695655283489990226078532868140129588552826440166009193764971507343164500397196821829706485467948113862674599002173194422639385329511259722525068008920119362221929485435052530376553228121933416887221274603127408388683975186812314342785696109055904942201290588408379528181190624739789726659295943731143381346234020613040989290481445783422758501113201205172194415277965539186060240963952608525871269160395249188947794953028303750166476035075166387236810200397461229547274382377129442120709783425271559155221161425190211495365521104759236785072750359819131666456560144574667541051647136088115011903954766793531458118222180392208730051669970453058997824430864937543542622388720464054334126536106233457725026605843260197376882623178185873201039982613064161078373226869650177563540426532623290580652671763750621617611490077730941181574560492784559863879273602226825860466348051584867663956080399946268905318203511136503021069280516793196188122003822691909023084156437190922848964261309321794729272616295266689392495520454207075213779740963826769539973591881355493190930748090869099448960585877063346046737326204204916080640867231275728376614064116498890405431198002918748879135214422921892322164023355329157214045635563610424730339278108345062862826919931876316596432997036939745383140642416509915655415421821523137572395098575650146538065590765838140559104389604814788536227643123532191324449720351229153147400727738379163652394438353068421827861872745731620424499287360033893768377175867554006939004458525473522227621652417001463208958314361554780374424492711082960216144637225021657399002727476987387373124007440948788931500851382583652236877679644493110766208812057762055927522137450486668078149266606979275847581449722405761211712413945810883594917131203294201123440275698746853952410355002022611222414152453169192970133984678585128177919290651054131535583447945789851305124458520730254774808967991542822805663708935665081762363018299630644997248621611599133135385589131915837306101206630125990532538609069317957431170924148768788570641035390664845842705228798695145316546248282535372634147333625863012779442365232815036969019553008325131559214494290080520796777782282272982655675500585690003435964630804436893560451071544457936685307307090009925704558949423779340271140652413348451403175783838093934423991649563112765056789547660710968085520030416318615823419539634541646498012146356606656666741851931347032301711270749442173933985152311410175964928058894435590204950931554198786346956614254368479240774765119172354902115646757579716670001630892169770864399642375990466524971885219940123688551625666049941746264996761289123797151296653647656524739566274204611229199686632537898793454382885207948533106324758515158977496504983556098290347981636683107605480272887041764918028036472862855407785562791389008122149922911511904909999787727721998092417439551493148215935041799167690426569188778958291501095694588191457705779486302458831243508341362697618810764735999534389250163985366841421648101332747734463810279092289291093389378738532132195242918668054953298515559050286821197968449722672374973173798021969003930136928642895207508381355061393900044790807333515871517787187270203374748516801564963203289873903390089864052459688261030499276405538204898377578311960609354583709180114096443775056898597412213607331117758768743951450660478108305753156148583888317055263558931797207436087302789156168404098778759918000012955905259325912787264701478480365212863644700901870053997604404188094210356844446706057109340247652177228358979323482331091013443134607997531502271704100071242659121675490312948103775526892412583760314828736074657473174706999988725191896440360111808679781330658588063917175893581087466790696504892708821957633259887775639285933864676269377250751462663717509527518503356264100683629391261631244361784624253712630796988378781386961470867195502395621948254247829015644515260620856235106395749675592672657846774489081616588778463358087663415182214535309501225307611763887231811848018912312356464721355375750507082131791021428880814944218216074639954539511276500837182126366133594459260376267700889055506203893857113285890188186741807758308359383198076805316937373938120501981495292852620512242635419851865404316771070439498785302262620724484943001950863191071449335408825930004355868746549143042687623293715020359510107744639135392260744683946345068105802838276882497192528937631385619195997409452715491693533293325179252108149846607620206430318422986645148664889970803718849281118147359295678176333964048892526822510627961116207397292079337347527283168624217650322158487589275150786363003357031000757082836885730294679843645971336648772586596719097330300632545533926430600144665660359561802954487443209089145421116610124485910403455266468442793783571382247730014273777662774051345095730444221906443434463338949561997844078603577741944396525741799807885250329226167581406764758928953709738144600568641434917612747056912744927132761712349254783758365726957534576383964023795386449968727122420820107301171177723428137317448779869324563812695952020992622892002531078640154287529524452251223414135240549496116590498480728497365828315159593172960367921123022695982372348412606296495000558421212252856443718219088809364505554307077472445419541807636236928349275362161851801989560828445401765439691181262056002802496224694940228217287665719493579011109215497987071386836303894091680776793517707021414949877669197627965034733226995990004558451054248596852080291892635436281850067994637817442850435381756416744542260613606687573058068304441844606042548340634927074355442970231709105762964622654113659634594564457678634646941353938972035948477213643936130882792121619347605429574933449164560368379076718472684368002546996406787399120304140063113520649048974839035409618328929298674920649624564696995478908796173732116652979324798218801116864841567047469731514827033617941337992464733633138335711292394722821581451844124896127544851623535310219661685758391158459784856592050461921158667340063352111837048268566841608847936566795856793941669402349526891070037912709356720765418780268619085949515879225524515631097665568752288658252153325338982168121303117041079806206384791246183536244836280202845314615325652062149248298756345563996261530124577907838142960893974093000493087732077060953906751699794727276455232979516638606482801763104622600365081640148597495669105556984801770976889164766108187633458495706889264882952204262568685380993834775016417236814687949602858680599723845279566834900212487236230688425658796846265626098988213567935087439956488007206322214198989277711567898400655917074570478954925104524111311055279611432442618325055422295849268257619185144196454148782016899400834802186575879768520638326237537317735054805104451109070602760417021738547250431290201335541377243608358440944522928202129017148928739199404933228694853555392309837125344771749226528879465849942456400389573061605365696133378022782752222174548159840409830140388064199491706039495550158375045981757739724082797531132466711731263620917965322271724393796690319572371060164168740563366650917435169099975364221817292231265042276080869603623128636235616492354936264034673605146448383290617873457001388910966053525754486628527305362302638629978203918360700291920311410633140292539980731686276808535784036223670292103447985376835209016413169188943337142502922650334459333975427078096326723320206272386462428548420604520148642883973760777577342737887350383818241477707203571706832103684336862837303920606369423380498149913383802079594470986517514961057340218101372327982669120939180779386052236218908090476111901491681415538583081182295579487875931758465852828581589721408148442651858812370261248523884250663025501187684378474350673378451797505693326212704903384184713143049391787666857702558673577883343043229306521675413207009746601479784984196663283306889499929397231256805209727482734775954791196968017622123390906957562031492164722352043183268386173075136567946043978006996128644235773436155978993104157835177442319921025790787649061488241857018393265261930514267488216306429505299504844281121968454350590731502828778755706344232072249059762367845647458167084287692829313977425306480341608031229496374688824696407938307435772435926520641961825953985253308784794244595887236325821625278745897929933173711021479392280362828953798371745352488664555804138277245417166608384230022124138177978224296142602800409639574638008602807472612793200446237911190838968444265511367033078947505762968585377379935097413699761443804198128713445587921267307883825200265579883115708933079106523878746325618974672885602267575870136773896008022905150622901075329301510085563311328246858574464831381449096975655912220026724269871563145810379568104570377319146346946580408136755748543937564315197070230801362126374691710585015971254575887379302682344314972913102533828163647883784782750588119575367725628634959958864453357747563866652336338231898085894147148862189480621602467193822150347614603917184574536450975847890668074519629470493906861394456091059598095082050638639357496092124987004128357563127474286586371207623547542073140675589091378994605596822016311800196851957108410720548593659092326429975805079648249170311593843831098021474939118626071962830657082408298782389558128009431069460095223164092274009888917026016869398618250876921106834047068376577928080654563642615998662295873026671001783573029484553244993092669811239896630178579132461623318607820207738208842799384829312632841165592689469893640342782513827915777802314201464425830514799465804495209553128982839714393071413069992863530809153660190780887511002274746781979850968292868438705886184819709211098963367008830840033500760793941817283166257965730039386328611648615921758693908888343567684593476793591210565378222500339967481275230020569209758320254992782235394747450956440209661033776984351775093555503441900836064305281502240232299381056732571633585845934518984532326450968608535176886695465810274084197139815101652398289291712697515099988521971099012850443782867843666453920147602836739636718324039155200008649984090714176189468905332725329691151778306826331336208580584513912887470662409994444367619504586405215645914042206967812511499568496048799726286634729788667409336929760795790792987837453640757277141605826144202606340160078540622202124665762378840725502214743741761551667828484132257812935583199998451814133083755623009492597626939843688834235425528820362382071534071679162102589899238401443515328048402141402543670862690825379416872638991614726059000996070070825278983535158332035210174700046935571586734914721349397508410762406152024184477194595657074592797695700461859250088957320765314841001179972492174000492892991891969662588899972732805535105459223338629573426956490057048715511545490135353093917214822452471306370070176861647341335393592731055228285328536262868549945375760838205947916612845633789606487818593745326899538400061456865041055827741157136367564068462032404747592183859525611318782015247084604111318315059477117390620164318803833879782492607429338411974111655609386292117653495810620070996913538110512660022944844353208592946539116383406323571268390112558323884405322126985180821538408502512540285785953607134640889667223416843195639517327852513493997988222658945147429990597923061706039297454226775079459948979689901290342558846215465809007256920000014784033261927483205700434870481652447803118151791595041388013433250668043294992244540368830692807789118747267451751663603403416544342698530485108222697622231497696413902143939103622916648062680613190787480980447302593983074633935901186555989623961306973108876233962742906264469870230020737100928735242212581707592988713607535433277389663145123234407019027898386199850685582125378221518852663597568056956410350082196041415197671333264207523867003030029503219596642334391976494004137707565491763704517150286608349357140460167884932279690005367371749492090499722760247092217802320534003047428575525374180729854703509230734916442985306926920686657875932140260062991652015756134301903835972001584980643978675395260206588217539572856767164394462798912828891091347457387128974139841620891058894527595696727462243329689490846977626447917281708441158600185500930140169097909457003564199849048200911772362250279462961638274923881202563690698059960668339153420006219259099711359811592404141371380219089067614402338948790129095751964458928053776378426247067331424564905531471353113752063726679492999760031381754939338495873036919944878613818637638944149888326008010036680935660735131511847494491168943451233779235634512284245115503800791326922426768524176035214240600893335565190012378953049118278037922774198493488873042756253297569746483037067494001600746326726797886429553790002095147593621623712273322795593121035366618692553999176897976046151746074757266877270754268636878239343656745618985654258167454184931542496017810169172462160644540260653651929787847665195356170185553727805127579975057262643348699620993656639936931430234545066393588415479473484101928865578071600923922310889486975568214033423744146750252762341741347575556622626521771683680970402636215350016579531800981990716013921885095616270895994992151447237109383392728549560415555572964878182338324485696592101021392703547603162015359063786368039789172056244247280191181831762844221532231678354811077899593142646281639733716373216384763696572090935637326657449364151774095281611302292420910397312086960337443321977876147081146909956385239944615057644674043953827115016780799928173512401877209048085202304012785869314784187880531718592070283339622132299189123727410183555480533608719598775970079388193844406429488945785573057155355594646691000046421637705162755987443120105366452149470644965229969848300736855553623693867739683763413894274779455437118326816225614264604437056193008774781774756289159374867201187644044356822204607590159011369744928401495340908455597182224232113748733546955408157724610135665730885716518457717228388186041357136658686320336511275939679341598070584226346641687687670607247938558293356905218248192124766175087459801723489803028324497281560813359903556627674317202521375617427700853673695265187950731135714323140665952834497964360091593888458604469200091963987982174001683617205769758864349716886667954956406340791940082200071518024389415606251963330648101042640462579174995953084003899008721263490307478787525226482899298358005468952711789209527774986101304127656982910352647878615225582115029274245522371638520290732302767572249874683054946736671875190363172053459720218475509178718630150820795958752808073677105202272034038859082812927368818635153739884325090374016526669818880945572140931253461054779749603125835277295029775620666108141552099056254207004786648100872794117706550418421294656230355895880915998322618087440613570197557476499207952450395225325753508374972673411894053869384184467673633520627946179377138844328632162077899025358525631038073031387682246318165262351089146310158569616183438933046935353853959819523869235182688742646369952312818255836950749793090085975989765580681713476219080088699754508348473825127202169319117624608760321561709891915736789056399700887705329151523586175876168254621749948167319295664627385767395089014559718207430002329617253957342475598801994962709424717413905678620681162304251145636067412043476448236879537981232030829923689205461956877309211715320186594655450658920783995218284605795201248843719601426923937775363228482044364555977990009049474996485706727244048105359849711663416070925332448924638398871465572760690068668784633567782153361076397594982496451929879491130776999174260821623436885555574413977366529058994362926167331860262079312796659742109486103434926723866435882508820235951081413414204147354435336022920752705511540413969737778249110219843378010797640468062682906808802422226811396809102962582818175699883337445004240408400502387383317477142469775810116375768229205501941806666351546732561750818751957766218508073999410057285937674954210888536452422408560326932009509948320539765792449576796398481555207634548456598388329353578529151769328911437373012171371783644443267318364838742494115298620368477051562202685135149023038948447359091908971461877381388289339609182671549376949342614062795123437963057170662930908177327735359266587228250331088412155329860264627809660379929408659408294234807877979005170415307399448135649116890746046012864906183753912092845298671389950841261580846717748053695048395029427205907209817833166802932326161059188837370864636386669392271536587344520689833968094015547604647926154894775102250536222441337879648083939592410281306259055586924449092864036672786963480085814598040639733408969241369217450640994628783889212396048378409645385946438748383672504163880466237178353655122588763675712071006295573297919332533939134042943170560782590882501397932858364733798074688618547429079267697539281352749250620737232837704867214531725735648269299310659969865075303581008369572712944035272783667099933581087712662430483333101199591938400297882905797603790111408150626116504091889576182928607199485290124654916930660305464899573390422390822189754644001396507728746797950278356596264724673011688066012406184819663784806257201976415830974447439511459868462165099272834949022978467063220089170630685916863696500589432594649121377388597420227461380436967415539820614823186778850081159573223989343693521416904891486882899546559278351511155201053923816272606391016811746079716834111450606527104972442696502774520078760175295049486399130319206090681006431608665439320340780305451178736514203540774898381084295577814723738559562932200230962468449725379936824040528296869620688341917033679657739652522158796010464758325724201247961978019742185792632950513277548746412117923778283637818904187014292260438617743355883679627049227564664220948588574617938288875336236145155636399014702720447325163939540473833681407007866663294167598039579098065893462666029791647940774644873470485155542728646542556547911183492164663659597726895667399828867465497865794966369595411655228370178847061251148559972926661827888495853721366507269451753971664045208828391474943109246228867746790326360118206072614753816068695790014527259077575041648003052919003852892465135886832125144614446948637938453070683979205886056352391271492832609516055463857757234582377271118635563778936643250272350630301514543511797727054255679718161767441305059197050964213057399981590063531696738906020125837454394608526496470293359157234048155091181621697771859925050229927698414206541634588278642394058694386401441608618271743847091280031857765703167021760085665014750730439282273133104329637301941552429299915796751499746422173441869573728573045200090027517786772484635947508308965151462017523305867004934770952754821877097421872898155870035077128713914815017907334654167759972639621898273169697937005472842378026526119607529769938964648506268285238525547460412563833905699481326358844658886819429072750937035724587655601557065078772744658429869274156508864766029837216647293912951520145981502158294234722088331562577592435256249110204913716132633600558705551131803498939078070321021145536479120189444728008856761235196817032973625347304952235688541360219314403231556988656342368462871542262619239320557102929667411104568942546938453445639469107228170740458595056075081940937634304444282002853425177955532720294312795024952809949622784414089879511346568183560492186959859940650028473631254857240000437853042232932699596273074990579562682102667587919835928044223361985384366323919379188006158760700272537799854177707380904577670678276440047451390104355282162200888790412743889413187992478034266774404505445505372280416147883555159108008658697399256482135294021967281159349759282445800854260574124774297998125126559505972799150407424750387430093201842627629230338798940102682648894047375728765939561126979686822337795453601164518293290233232225341359998623714981128440230395166831265018900680852760407564267805187079887285483782169490791232498329858695759619910656762827809054898503457872061951228154877599227273111445980517657499728276422243010782646924657381188901878721230676579930732286072754591641886872219350075940689589311012193809590158112692504822841890185517890841348940857386570142499988794043911443041274303411711411722720662907821067237112608795659900564383771146789999926473320461502883064366142994947785650173634501576386329669841139496811052615223954571499089073330770338417810642062393166713480420624939563500988983395842345776735801048034071471718936656929740053123494095954473202278452355009919224270126802730830372210829998267657466267033414188583555698845277450443042150995280886924162069196526630260698277110328232895741695164588627164613885169256547769374351668489180569365972578130414212457877504614521531125445137273566297254531031714109819604929181643228830239675364434715987504106105766113379299749915175947406856253961612893599282394926615226158441091455738000739348431541555609971450378953415772718970600347719399393742228997446740046822680646729791858212442311465481992426024198915929844934123755216344225412013926388028177761349092551977487348343229075998165225429633353735256831157253826628309065276500759372633642384049479573360090464524573303625393949224131538356164491155691857127104270814797437037900522970516540189641029085076234051620031730179487007948846772763614976872238851630396291755821487574159895419875824962855606737854546005455253553785144922955571709885904469701343841775825476958015645673323354193987200367645019051147950677241587932202753534761668508559661927651084068426570325022070624888884321265736487846952356126421332406696943656503913932132953883082243818436030836413563360461637442660643042803984081532807257854570726207338847839190186316860872418422468245681103054286975329543407734510170103480120608917230540482655705165267115711407180533628274552480536446011378820687138500015065366120601676732982188841824893986852063640063989395806541329881128272838847774079464104520614341430521831692169714518095370791703239059686774935565399979422732232776455594419192538328847205602528932645822555737827955689268473038675417674863668656614500000467186811012644229130087891880196078280729599773384237675527216831435716748193025145288404600582213466267607663542736084703172636290323353676318569840229995592584730432823826442428384280476331745017873392086147238753495224150088346929265955889986742978156030154575583386951705562133874644052554752051763122006324293941167811197891361986158056803702724416956543824405941050860115591025060247510481493836087446694513855894934939491597913049354975045149919890410715491926193694367699015600419694434028428567902999636113208407030179615595391518042532827408555808277228976267976005682436822885910700631206131449632900858981719428401089408206097095794680915652976961927548581430498431989357171137374211532638413234915481653361285533803802994258367079508823005643599520986820227070977079573211105354947193378047960355257240435021047907544860005938510509727450208417026613908977780016806418288702127758122707164707449285419831954455670816437547916477687099045023031926987174617704258163359116493236912964690144083096306248400060980019473459164978625566069651649676951913371768225406201809619584333051427598059611760657651743433620010442971823795646281002256840031960605817521260789105904268067887439872297769543687492854593424846412438200959509346004529713944793772753421072101990804000858208994300226354044121473346309533135816377937285099292258549616146811858036151122342695298329662340386397033715180827959477987326478154716501663222739916524169475094286469363748060590686917672400879305715034592009880140443484575303930678750803893864553260117044168909321325072569315557380765953444140686622500600516061183669793902744106677913737642237075621387066334307901611170048519718436920856082146833311998924522933109604533376734097782031379412531375661921221747625322814080591385239659778778677470154404055855689387617010238113764225359979651258764977651303496993930325045181917000979839693326858017582791342792588255554569019368446937946638976556556435904331197702263078259930728108617114516418333707111613682768283575250378204196974722693170890312201577755796855077953725830651245711051926775864015794170215694084476746509301330485571754951149946065736590906290662634864475067192421509485226016067074104526509600187485325948138735244997916544030339312773621611501372887889854839500932969300383140157702651511948075485410358413502735404844121397363890151077970444724204972229568093333419023305055647537944320828830201440911653765044571547762707070005684199540669553821440732249610036512525072400583886599486105667209815311686443314868759804634582968496273885871218580818760364215907484018854391489778108937644222178744515239727282335658789800861474160904975605952583721651848082324346405156883726827839294428873383814300680539075324694405978919920096402580942339462928642905258748957810468923795800931472106102659197385192663814322950805625488164493678608531895989142837803815422747053364678439016319706014046819110425577625729127712948043626552787055167661769017898411101134145743064281356368983214194720440417136313586057461054425857814266712925996153994962221624192305060729242986658354099936618036107948294521514732938304373415494079737604357819788864328969894228613046878880729203768658930837737355611896921389584683754633292480434341364813128572652478203342134902318851744036171026064676393603335563065002667137050161134187107098970623503452428072212829151119145722102187770543351008218626545409988766846869239744072773137927276404180105826043447148632197205726113621047882070242331112732873960014322126971232325737968229296400841949685561300745805347319410380062864264756642449815577717733967994531337065510531778655545183866321448605133875872694587507403422689282750700517289830375801182614804229947951272147519615506571479499896352501991048395111537351776520767375026788123680724023966908502227376603972770823188779424699116129335444118963981481817553893793742637593904336578320618795269528875332662331534500452137305562871048533906327351713884280972752898642201994378393205000136121383072841664361986769278731146997660924560441151585783795362292681948015654760595927489261170979501803293619009067336558199243110799576360040621152158880970493029033789436237294145681282784194874625840851979698438086924934793184974925498654162999212767619220072836187877093859424582239539239096789198947841967953825157355318554850777837830053230203208813785899259693378930547458994698395560025707908206972398900131777038173779039835928335476779062515403364292502544349279991182555594919489899791629383838582214974765545937315728567927488646519102362486015430182171585933401904085450502327761559428441780183940595927987899143564748276770290138781700769603112360212515772603713872850206958263375174102364165105202091213920012944029189903762100925093929609273313785119950026763586272029232535536884563059842219218188709621023627796355186955256342249921246695360147862618486867085716096355814836963515986382033595217949576467407281764377823118555755328018890955320205366802073543996636000856508371714537862381508651577017334315557071970708419131037404563769862068848631867848803862085015694448418021830935294760797571147360162801950575260753287497862732815448056107625138746912011373809624182996241879590524376190988166750205057274036901973272491886696345398110832179921938972277414101095221385989957658626381664606267112103314323889682647634576846661518909551791410497243699522091590680922145984344860450627394262527309901406307884023053112623019637547704956278733770567179929507058586524466827830032838896445544338855320297635053599457101416068252155826321197056038030059241369440689679387303456117362609553496483504504584659519793641486745724538847499957618751363458125504216443165960784693238761787552952355918168074819597759460300419202340880247145038895644961014361793746426558489524067693503990164921295984249013941744756815442687963549766657541237445183520826784952070260558436308231680389438552300074531444421610595137530646685479733608192581072821169601304450308047263656414579219378788760543280041362397049293466963384248856790043380388095107925517694704711289712229814992456307324330677341553024900950451367219085951387815809581011187712492064314840920806337847381526640837692949413629730229325817857815938917978527233592646928575134063644232111548355100033141570504549135062680270888995431732849817460072644970956016464200060408523950802788433828685397888722061662097958587711652126256145417749394463116073114141245477332617025121962378103270564588504790047120097195138646281526067289036780274257622108337972666362455684401970884507639181283478364048297948160783388243847663759738012815715188445950720599932910853019833227391746672507521667516293113580838790700791709130626142670887465149611007286278058675031897070196497265685525300825945604719024267698401962131055608360517630151326079211055754951422372480359898561475760539875380617386469483501192479494149843463770899048173657303752895519467719151126646747224403608256179651004532586462446961594434741869614986277826364491913971974619271293088002229149368300765966425299616717077581225704929551657197824043204623908121405358707707370035488604650551504352086936866907252158053689170313699369831669231073553688397767142613156003591031949662841974580776575070942242071999716070970742083982284905990220270519285337288514370192276055391285495573563611378645531621921561959001146095936357574346873732548493590797973718510836636209230609484269862243393646995190756366270682958285660373814501842965547075720004863511432671634637822691341098456001361371765918475253149645932880495482851468694438790788529496597787435147879632213102839822621553508583733194319130003372899758160001144130876598702493713415565526306930638699561857097850056615269567533344923493477231342926112501468881487788849189823490248844989057757642628987377893398501017836441770789633849064832479441672739913676382492761537838194681588910718760356261966202453185638768794593987551708381419284226391734699056696847114752744332723009193867245328946305245111013469511060894588774838740600593303298267244905283064391305400426177741737310494622444529161108506839012100701362510849580791757592791527794150100074268693638905674930319298896916653748411700805078577676555941832562930519177475065186080917955161401984770053256017702502603023434764419109855733651180137667854996267999942966490745124562138852087451011185737251691590089308636658276784773452986698097651718418120764353468366879219973323205686452356700057873768170861370797308491960478461027101588609422191078768221166207196521282426651247878675243217631065045265549131232530147106984213950759016790301108016988804784871533844551671329465485040540820147983259758294397321543670039802561372514171259512104862820168811982811137176635328242024085502595534968111263534231775778712309057930173728788910011768458903505506314706949901794665433494659562599444156059626648103434869151640777539309210451925810130421862685883767212093999402946395539569698300866724179769861520267280825619316778485526055727722647073056406075038532733359750355082046854927696567133079264240771108662414330529927899878812964419177650710073871214870498122177930981108253106804695837426878337533308854692560738852599555815311623217783137882304701062819450928583183006084496956614559639561227379222534140614984043422692899302346100252267662580551601366194189007391970230743822349252165026659223734846282987862093429245437475800324810570810340492874986177378023286800637724359796471188354299368610869703403167232984157693981558930893309910336130299863545746556614346775115676496625453015403787030536623874263289343707719849895969417824277758568564195088090111196113422287197525178500438624030090412612036931740123511118058587622333717081889319172498618126994186519718381203925523078654995669667723056968583570197577358818408340272758279167150975895122858865153447040623058579399014874347278612463309602938997211856954438932837201562906938271923763209171734217879343295448357961602771199088132235869658047752725346215699956045597417989705283726394288664974478738284590951767573805378415304215978005876379272095317771290436934188627779371869906080876664902082647532336085030352147165354623080080341659005160939696343864854095723542171755116293395259175147565135895469025964946998701304771294487923676155121565017360908265000844903665523702260584695813516278443545783750432602121295184148930210649317799550200090965950698857190301783003581515595335784820170442969712105779419943926243422664193043627704036207400728829060959610434586276804825764826530049575142305063485018764081761417808484894754699898404381948835856144497304159825741596000794045850450391156131003181574435720077721181891955539637304615447656204173895423302603554912013533711468159749966242723674503570917190046892365878803894918143416566945832144299357875326220218894868463745758584206083101724017697949256707714075149623039856296292140930180114609377150543365856596705015149830354150652710529238794057625956112066087828279193016104613143605301777449871896851074819446016970828134805926714409525827135444189598394041935928727613561226408810704679166596462026498186824034163095598999143538769268595070224267776134705153086486302039970114651761154641762950422205870517074683853832502169440610291158273519913140085135252217071195443944806792339308718759685269358742540550743097858904372309803689391152128530978194981796661059672113138567459096057622638417010472832193933725342421800365182859077504730042820204437058717711924595387810342749545631949875016432784200515955001947087852027474954026050923807565321302633217643020475260811427872136740886454564747451684932296395536474941270675830218450486641145842833034329228019906799421077713571891597420428158015527956937121974106358686258075601526180798399333952031211419874925841180725793951462034180845840685635297800890846307560881338510790477846082989635059699526660612911990261872247130893299557998562966325960610588090051392233001479070851153139705970249581682006513883048938471923958487636895345903263736604336228537803089070858012633574310580461288265348002228464059553784944334291945488809692989336689064946053854402181008914323518150089392314393470714992432197188053767750114000475289557750221926909267896331322769719162861174681231020324577177411783845320828044680924164877080356423294968861207907911211013803781814191690803869732151319643445604158358547020383102185780313906029530249361222892009368303896710370886985160111893903882594188020191193013670743988382122321382358406719647624364487119801814284923221264777467912664660393067886302668756070298806548264386539017909139576091776585730518068380968795718465516646737644957747087713466097004598060482221677256809158619598265148752331539909482428930974869453439271578646728371047582612341926445843575209211035080135473306551320131746024799991037437254645419991708030341285141715648557403039516278211367441804316879198580936437435266367591499581135718785819716968948356326991716496138998964115464376624861762252297699099461400253931078498285482956747694478433267251384563520971741626501470303323741033594982937537021743449271649921029117227723994412482821419197116780000609442449317223264668434131054814801948893290399169416560562326522186885260670283467604682434734556765301846901857085496066454291685327484759589135354011954943119066898555934897279190354405964384708773882485935554483499614827910812278609140233929887158388258506250021011512296653548461029501216294059361763263345717116778435548812686841368985572008070848750618125795274528702140099202399256108470815716927840428619182060130101115011669851184416469576318922337255271226805788546888223902249346391659922445877531505837758971034153492681608320314248890572632407979122585099769287185887527288784947978468563198878668122553865197536832598934909965908695766502541050512868119366936671118942557367087667064675895438399813390952890700692501739221444770585094758058626245865323434823732367663517589282728156035620884720497082190054247353160415361240778175382297079929390905782842933467618833217749829402305668755708622197629761822924354949081288050026526220994446998916219773320599872312708807449591327549590840538936775146692425595369767402016606345563666050685181450658937068649784076851821355719069133294163780677714461534345012119417923145240603899424208125007939314354355610393612743915546600774782330809065390776600330675981143482863072957796925930662178654695312799053168925111531349576037812542345670588196824752591540273122526825000779107886955516372873960106106613325081995188970953913236854534592698384110279772393983036511966162817462650919513096375675925789753747571880463373312401159063218709709594851151661269795918242893361983807915588943207177902654740236503570908334822916637204953298972281292890691517473413851981931583671904593067344994654553324236934094712341857928156214143148772264367715185436298700721214085130500451228690647199617318812423760539388077112034577449672646907038747699290479249155194682589006464571804171902259010075241088295506117834642283667865244135684499485911014498846209119160275390341592815848680739236483865297871661558318601966683937308170077086230312191779736896163235796228256402169340451706344650062655321011388047294275637083699340463307730653640550193755383304641350429638163034428158300376400405985831466571407842616670046103345677564132649246997246641943002348635981585595811985910189067333159942403265886889798133808638688587261015437160375689755509032719043165266304743674361334319154340778390096770276987966711098679330179874467359304893248271450156202184299000607448826773018689504103444562960840891597253084225213654854290550386016390007527511698912643788439326287041091088645087719645376883578596666829563762368599967670495257433501961730457218782984159204777140356957105703366017880480478755255026007520756028623297748382374885128294916376683721135729032281668767663931143543660604380106818635633911091459299217610445755920520698911212982946905652867849542511421147670941036323805918863279612847856246064569768153033568014776048658129609570052138060041974780364281691003210560932535389999340061657703623767375913086490336083962827246686799961711681211126356409325439344352259940461238625489795713462784519925645446058286119809966450797131960731133045598866844401072262675811703139276439635640292516539476110955287623531710493866307835463006845703885793804629399748718798258201818319897706628324597538527155387151359972396525238016529974706804640344442348806327214108989532713386853924339841119070044145181798004049622933812769575810758611583223079662084608174951957309036491105779540099794809123932091159602963401913735022678913517861649251538303768336355668873091692634485174945333528508599855263709515565478328192838762319494347968636537458593109808320275426656447370464593442953892548429251096258641063882108492746540346124005031616452306695717342028384304895713481690998092528247961802427116623810213006684636454032209440305795550987821112987334316488771828984693013076381069647261826826410604178009864938936857704317527635298248138741085353789549658824476756493936549652789617491482590366687942001401006086735647415717066712977677174370074282225948117371830947512465994154529937102330821471021553527657372564818829396592607842295945171168924361658845486104179208235797800060153532740249884825353343257547561112820706506570857103689481754115507883221560299710738045179662961355872252787402448095191977865559339070327376303428345914059593252498773782457175701409266185138813658744264994578067373936835058022652330970493807693422100313926092398226388690352886812757701164162051427049765995523044407081157646904484533354350011476506776041221357968717026607659579383568282107105301232778770149909821480240017501117887337068091624800735126772735615590720436657372078197394984831644463128438801778211056286085066701295913647848866142919388947756252001058401905715381505387014216440133035299804877327015473315193152008002649998762887854395071535301057933129302845116634038517974285503281587496464265682876587170145267209273763584244607294247522025899074519827555936223027215273975247030900134717805341751588131340962242357615848908744513040212297020555021366759953341550359152616621447159035650426495323596577056546405497409078810003649521750737980263666153616262204844928902904692745564813357669463340894753229791332010398274604228039441697857876844991354705970290941998472370637731563018313814580148783300224490307436641811758922007376302713252835402102351499317997109068775563187159035895264300525704187136405787086683819104258846434535458414337116753316546847228168095655984282865246694034700121599875824844117654004568105220524720474193147562294040483727080522082441291597219441433108664136614696559837584300435339654036670095155453334889162706433582767528944874337897118106835278202932475956723331276827443237303021931831628583491888807744101634213171834553882021326172887040751065660975289208425427283256141066040056831451148616647405209670797017296337494489320270235045287157626101892335800684243824038490151216161328192398666976076820577555763617847918783977380814221145053890905668205788967694822487262452195752917338400540155469813957921717670293743653313388344042581630991355321730240086528575164222678492495686864575769355144935575389357288560671580947999876651838354451076958705914692215262338413510049697529859670239678949497348773704683107195755450858172051306044634172926284719672221641972153214289352314947025339964546440431711321579429925732702433229525842264589885216732889090172664168450430944325035287467512165699546402628390843292568996767908615666148980027660363259110636225341364346208860023807351768649794871648754957163763640147255412073054581881118946234013287779720782007013701204528231063120060761946935622029878607723434911474935132298560509941330735077513035274756544474839788228014734252817164027358547221244480741057720156780372858566879795186924583623531335505784554478626158639175900653959577897408223757104312841372858377389594795641334727274858528851370863353766539589029389282084661516724046980454375911664872906338135611477407504828340696502001731488383687166258836316528564725975404049827975166449858302707706748635295955887352116503128437651609098116539844768309597144540939156911782283755658424577787473116748355262768147876050731600937135875589979411422447525153480665119822109373125766553190662422100861216789895060585316107463243461320878776372350153009724707954441848040501599104772159100087852876394891302587153844264419267473416903406673100707039199086416324918786985903540319493449274198452720520906126363950322430500410808237293402242654912159598320775026349741435612949757137764483297860445773845989817944240034645650315814303168368817738453198870857925977582301423249268111822795034763210734369006893724311762322395576540988036887588331124310136558757944447297859208681632103119568380747520053353938024633509000372246484698595587852903244094787478822900170309309919003338980894262959540573621827593873599630722558714909645992645715339566504752530654646732215398547272477651045787129554180914787945375938645266892223712287805781637424703655406609453793613428337052549329534784498912732479977035595219132728111715443396895117741083302371960957367398290092926603965599673002583004627856542375161002892639328661831210786844110896752277598713037336932014395456795224905425950756052944764629755417041455480234716425468917724866874340603208133711854252350702349275145131241662032302560751835556822864086755270327585243909015848678922725823182636962813325586878278741418743330655149068759083549148409742234399026002909950737083661395013336292476259034887283872437833128125490663423317551383414523621275139589246101273784889407052473292161588587920173834954234772645734551606948248767496836375199339057666543371473706558918447529551165595927434164967924330038316855849851873542932607237600948107808607879437375089789130936250020223052711147287047905861176752327467159121077239770313847732126247727604409745780787209563520854594531717731231748832433400213970235282306715270851392122929065526195857329468279196666789665539877243696643750056229791029271832194571398707218669432744427322595973783203627543685182561086541200979060900419078115240621328816183197532218310548941386975813131658718672844212679619011419148322659608508659796048251783449118929751469330918649866841004156846419142949837247221145322116858482769473265348489414722503856966745851906926700362706729520245712228358811284752354820804807164570161606452007730844237719163079176070139304976948253229790825385710497241393185825088654038688509908378978620433694747761755549597797291065525614232679481818543315788295039837205207022876922238216212168206419106279252403525251280434919102596317342435846951085934187651817548492568938534269672263228762357323393530141860420241934342476167309200084679567956822212311794693910931525096261685266381994370967074913315408411665907084446231517976347837129462054021163507819416420734073446608919066420712562017134652124481669651884604309194656296043168694425391881599595971818802033102616080269942824322918026334921053156345565875170495011114854473902419002881127407967327059684616482126558232002241782190077793427426685878903843126891051571709027677686378445595631049423308359476232819656686774976239843972377946192471493906761824426960742901752838350660991221450038682754379935485716784462199081811767635086106587186830244945097534778575715339316994549434882931682918322912913685804472304522848675330173974292262611357596745241573443134380745225505660800134645838618028504319930074286521694394542669290220504382013456880748523891526289191596240538594676686463985227655867552372224313592194975182674602134322916606756008147654523883599813608429925708672196842863597297138390465476149840855377238051934904685494862622522280596608536032041535000174451141764764471584594391795069819074430824943980147354513118933190336728661705459302029482330671880160780601964752776960624295582306260109522913060248000231191779085318339564244074030742933138993483082440603053493282445968341509091905547517608367999754395177060975650513987889424061875738355975823342527756741980738961090986854019964338145101737685736120386372847877508309739782599420797091245570140855833441859075665981862137948582026353442150530628891987422098651859177680086028839299897520449685564736711943075574892976534070517004382371626785680740241234724005328018296576486901517462527801599882507948815375683159186790220569952992221688521565417488403453859300485852857047864120343152794583366425935961145999423384546124214022841198421434081922328678027848838409148574943937841783059934660505592274011961730855401243144349226905891890459192913720857315908610930483771000231505625356172762461366859859946464674937011302710421227032500666733023531557464206607071086896897954177156021220136480639139129136717273873348627585662761320842853066198002282820319596306399588602768541564163930082223643434012330234137070584920699229107775867712813303165826588236441007335822118584647239773519795854874529178312463424215618451066861219743335428353063808344228753215745839074745239110270710822133525265365614862629230851445979986161296866590677845304310591303578880118286172350416507668717678030988893932071455645509217297512866296019263530883603238678546787178477894316946836653364315518127154644397433312940254592222894424027031268271251031448720308009146238904453221245478675690578497513606746561452189388701339820435296353913885944619189796993071091775604039933761879806552169377831234483328183783963414814622354487446121886705176369426637079190299322245885843651016555729081292455368792563542215873746970874721603074919454226585321916823232679058634714635717663270108561416299816770957764170993389705927819639492513748708023405208298714775368735274029388022998674286733784859499731078503172658577713125400170653993802975424640041167090076475281607058806992641591419559163506801746838701130206912824738189568163991977292388678287583832251815484026047499539872306397016099564055392561576724740748581689695260778534710644208046067752851245735955038386646337687551421223422161098676992815623484842691741087239370128540422685433451031449699983838438970097400726933219097224857606021414093148411912083348906257667593226040045639482885862785138389398508862044451006304613947068751736649843853913424240937933092541600257042157250943382307045228450151286264695673959478568395492855853388890361979188875747769367652392781950988387780879198444182859012473807378411363788276172884168574717238346895829071382983996191661753587842743286374184996798967750389515219858373975329555938492113686196319397512694379074704708988749229115083023705699543950861307361773387732600946715171148266117396964637736489845197493511912059664280064509954342142347142009355532836933091807123063936492860203739950348373532953298614947738524197975635874945020363455694704938501411585265133284259463900187515236814835966931764052979132641412359072267528588021001176778374901433013073478876539293676394617197245391973953495502414361432939826604212889566290495582860677636779302364360925138696931990554478440952843320012551768462554209478664944105468825881273429704773638071824752172488787231598555506359070376487946360007744681834293924210752875273440950881591647952340373553934177358103176177996205271653119517650825992593275263360195466975138454515423279215218330416804143155450031865014746054355702044237197792636778954481548398031957378293575782041803745276703676267909720778788440237806430895229915099491807369425485989532155004788393023342053494934393992042093843813656052873761688188849801565687012288466881924330981945872675668126488969590182059222708494829078168280681246604463022504817251427235760713450323206435881029798278724231942808732164732490735249023334740764774555246548893495115163731560497119136769402647678156641648796279623724558594288045949890680587495818376103436826687882763740721482530651935175493261049332836590456628129002318807689206771236904786655170068109169096205848507028283417315542939869741789072211889989672264369437760263682530590811148979130630579728737358893672112774603177074394936225601219316365627312098811296640047712262654484199143318725016827958497508320968240877068230092803569920229986039744325015686498965572505558993591445974348624144302941027548163431977345098114560298788557708696169399347760539034581053126577849404302253402989818122714849432526549772753810560304054344157954100156311019654371561992788387627658271593720724486459500470461406926776436033809962010771758774806968812914834961833771016627404800361223350382479307584816424420526098484528963648854552456634398382224528604386803474222374894496487926076832977050827294117005929604085705201339968382194302393628579315884755716116497276329032594833660550390605378998211769391786911945155122760114390623914324758097522109574467984103882679547701001383880448474698145546793147766105605573390918395782024891563822983621996751280810346804900193177188942681578299534039373093792831779200348909227079646532355844226498423453554074439346075854015523572311890441886783711877171617264759643131362806002493717952787398637015541163573397972515786176158952098780356634498763817213830479432140353934891610272435308588195614061170416668373703726981483344683420062205052224753352464650963169479744596974425593136374699122881554114826324942603216810107125071273191008656545403229860639572660052220296676806975610606579931725190025106683797403469207543568555534688918335976081840449272962661897167430465822454236564959998271949655840246701649075102316956917152150491923359139480421089345127692225619969394515224640058674758538145238270480316097271254543216995616908916429915737259618315341776071488300982137460455609952179191475913628459712736376243527421637519635913337296011826359525408157281599092534891674528999337149844891225284730081562174681220844831469293503589768617354043770740544622646799611821362698963510706140678871946935806179463647673154592954531452018046880087935192984257045459865084088068338005290660193231229633816882764758177536994698146844946503600181479348170018334470419416882208854548910490453682035009042067225802599604277590806636659365478004148889009918584801133334414893382994885449362043260126025361715834785686830752270739045114737351153715113296625301618739204737627610520386697879837151097979580951515330248467843648145809872782928342525960526043571610148478318437979968060980103376130497930280018888701339190600457560885786535990007864281532019344828601054246803302841875926606806976508121373678271719190233044359419953658638263942174947737420314344765050555962656564954102433537834318515073900778737648303189485248227520157276536932465119961420553489822369375834850555282010458105739886925213753454580340588236638116334237095433894617023805596923004764506136434208995110424586206456657491868506230718312685428057968758587021894831545174486390843720325536064777622604322217819210897904001105526530899222511126775572432344894619409832835504524112740662568184546793630322370202546486683686857065170379105098089826122787561798115169512480146942137771600268413049746086555780123274987695220199358269215963474609645209166473139711508386227709375229789220791164098102285312379760686540804133692568528683085312785403277717384248150360765886236386578388760078569407342565867250874442239139118821742668059133386234577666838031745189465463290927183620772848866737371558381621426497922879670529393697804524932527529314564242296362117319929985160336524855849546679541084433239173135744236006222850409432266348543111839367759741991633571757766253684621210682520888687274383758619184052749849730847099835629418604930805941741748692656290125571784779008685776219176206740318060265028140248244247974761936576493083158586153595915059138395340690949328791271422866755252212587448159808788042829647159809240531653978686262272538079132485453982141181844033891670171847433201998150799097874396021878470769142082192978537570739170798839948202583408104947464022148412265549590719691416063925106624221488878802953127283536614112760573726219965251953839503632047252445807915435873633595138863884260328578462215139085151599459942331518414566455420334053424469151621704568166944017669206489668708807998793510902667385563820562267218353115631810676138603315299562340959391260429280248140841460484976025138398182253061891991576845753107070986281272784604900438365586757452832911290936659382008622583187908429636394615222240346370321093126730919524676680083698021984758819065567516018187130270696068289678632479535205526839391268070875929633964853510420251399454766495593895443801751318705619745645038912405494266926570417754910698709645209311783173158664209184161786007881150693454790497296591062738224459958431432180643259463271319914604975555962587379070564912745496805348274715836541843072675166993336543194469946803919815722412615939092310768723920220878878039729896274173723938310127640292556815390356606155287518760595535072512553635496827600122392907775661827174455576067633531995588885480622446984011890479052695375255431049191710657524046760646896087860270094931563008366435393538270976036768002071094435726103544957645173524162126390667641002199999988194803174902597088864329350936884131761003635390835973359868604148093088662631082621024486712369264478482283956722617652897888849018323515464594135455192740888739763200800235527408622258216468448617487190424229146424880987788461846261628204154703552826096474660778527733384491950227880558699181048625576201126334813551450791185617829544114466594502844341978445503202284103635003212792560902108661831085915965288097680530918420498716949940158288386382559774137382888174078480698123943032906580616721182572089234314956951097646085898244209707765569086840573744842943000916685534539413166331260874784673977153909993750105944410746496516234652628725475475912383396104890984700512888550952516120794474064084301716205762996463839777945841641214318677863030820219839685629626327750860931978142311757734144783202414496830332872267326454421066589661393967384752314327086570546162681837297898548510361190712892695020141758993472544230810459372148208709078347534841868400581508278964715600224222127282503742930367508904757457331784082449393940546474644570279052522371891937584126444909849653109300739774417758302958296391989452635337167010056332643942932309137672870315864050567030598516903503784772178199070356382154969573805344171388562836071659151281463405494203615223388822990321015434443556310904265639073835201031071165322856559742938721378764741291052174066367134431711584363801987061514097835641211394815304080391219526638206765198547472942424735088590297814269294843988631562258890118293028197137808413483741601172872843919196942923111733982599783077034407175676335723374785032224911024540150254453742792807636528184875688694599211344896270996252201181668503248421981016930974419715793159822470268201065688779494329805505701269676540119959922018931352791254130992207279668277095406033835900725371003755912952767764957900089554258349664202677253517818049207280601972827647905597321958020094043229207467825658634410752926826737280019038968027763373734942064113228666412682318841660421797769031855025138175396535245854110682425758959963008533499371953423568960257682797304291233443108158445079748110040878283268443919414724160389304963287429332527690077035451431974508461900314652616216805316949761644451206250332115858107463752168703094076256165443050299272605185217734912285703726625508574390842081392561135397416453516707965505219432705099066082231333961591379115766326117449596510978274723593234948310083158572483526330908453653016384093745920969424763735781149626939305930738942025990855684025943845411733411635104760187146582332951271936292622449683011837344979700196600319727950312575768322759531683152172827956308803930264759161872671072633441968254459897503960626166020347278455699334212811881833849378173942116133070549306687345919798401879581601191799270614985785857772090909060706152680235339275206286686447288224164410854722294707732819237590858962489833877378695513197832035383272737114886196497369676459463345606931500883609080931221835652153838536310999370232478549756000447560476064569638050815660651745732785954745696242358785017277589138713730959067487361663071540303388284670835200358497772351858911582247658178941221729430833051499205830261810280818902801730621622625919931777831582153728395640429648686499235045319500692242075791239594790346430879499466591754696795198742140332069701848288927212745231159446819758491906496621920986478880677827929456791353257598267437826174460601741429359680486223472935886736980022078443552831649256515810892805445312676543677789474661414297420672380628816911831658501401626615903709605498439251956091029083181058548031081069264424300967825355535085110344260755500244929198521194345803866786578436251943432239881637335373538160572567334666414580641626414274623721834449124004170445225283504738649516320822006509004077029903541180198950738000040282845073519948594902615200530309639612825957616392142832865168905634250960114151282293859182596989400835263438134646494347000011072842198389285869501399377634378378968321409852522848128347147703016757843278862067111077760919678698452751382614720698744010576408503695078089229574684444465784457962221039885131567663788839659050723026254581201732937968851432897313380550935661130821823378309058504075183741649634934402721824460558481141451826640880825801198972951357983192973100254012669715406532292045878259581911882898377049805591587995973318802488173442103845244017331785967621788211313766796193724341232668819025461733070572110204297313972438907176880039165759471230416426894448301474065176772276658886865700087487272750297711407980841678527993490359956906099106853576867241212229022327317095429449573540956773231184981465534517286375684616359215258030477450564732820374261495303817935491406033469663204384047116922669963011312751198234437129229888074106562767684309841450613324834438841729419997577247111422063273734176510617138592860134124013869791220168285713009677802631764721134796510841616937061381980618720450731626281518622348283496639893100611315927604946009973045930631536698738880935191922552379401944372292541931656912008822008972204483577925328944170427338577963202970849130628630394296852535363428772830489829277297124728199888630274538977312463317856449368556598887294690418611346576049288977998762539262459422976136366010511949523144154732986865547240385536633924647110077027560497684846195868471610612720132394316357033522477026262567489891469100146599854353372977899685381588573408481293231266515503865086727646889890484985904009368426655254440901728066164145833889938124504790834168863807822572292809284359868474793979805343867787724386660186309934718070498237490838522111334645235233557070209094563664781584609462574334921090919730617764081560614507237925683711160567309430150966342228164057299811451292123368211664000260413594503953072156228075490637944912846864467771250468889834992115433856420509654778012910539147029472484149535379377392455042479924466555922241397012371605414973332382525799280156505267904473123480251485809068973445312106140391479513665467305201153340567644234754315984888706497966853129610868491566990041510109497747085811535566584367445421993766772983207400423308689439833020451894411027919524986431066981851403607200611104886793800788601225522884697821364278885606788133959170137319618678844128307512095332792543660124423606953956441644331898794570106866394874936894788083839595867312550746861531787904214198345968363704251819042703954600397650923966306977529358953883053608298140509638332609075398148080618905417066012620881242090983656909963311112109108788834211355456597512918121588710483086778606603680786931587341241544751841790405144975700719626597548848406233493949721305396306232148541183710843603416759082481292913494833194286461730802052584388700319288368114891168064063849254246712544029784550185168283678978259800070433919013978860663743162531571161748394831903682320100229338229712847434318068970440253910800549957901865450076329323207069344613729869294139498964886174519410916692867997251430811077899510036035288212305410067511587072027074455175684505290693736217644811958545078307341836338178086231531191269416771049111662523223531474051282745728855485308381773154343412469555813129695670913672802191031582962137457040404810667628506998882349767171896857396337760606326400922794940606335107773231267117373689483171994876320103204986766625470737316681028007585286492931131474554061865766094613278391748879323263608780810970717830093795225598107390443944585131354044768209783531123803425497763090532893822492854546553427746808343550337222316808654311348448728779150608880064648749818704372998113344818469518938384927385069369854154966904804039119640386877855508438208130524942188525045539936635409576696923625170754207268636849587776848810979145963833140780153557256526355658759589389528590740241546044103708919735731336133032315815896691191286669527925246849649665601869893296241941559267000278770673890576876336970345237339075503259418267707913259792593835115570644640214878597910529388656006834854372984548775211453749248303109993391093108697113242310594489942539610299759360537159486500649105352140878238919839500829742022008472991421018644064907631057697194373018452149145700219018634837516545873945621543376386646725103024201700971586506434719301724148023580867926113242748693804379721942466019734739796011680749918231726501539593663460896453562114754769061750690003165660206575930579037235104302264440859136681445546543586783789239753389052438207989544035258022914946698690628766101121223604902386306013904240530652137634438419696965702224929667896996250191781747448095209902547958583065869934124247747906017275532322302801258916506416699641380066535097591586250788492638751881819667981814717316164610359385435327441000653491499614604957766044899917399415674070918291110316188284883199467142624767402533074993293683118459503002983052929896303448014868103765518271906934114498960140341253894018237387222234524652313252383249610770295264746002969128594999122216372888007592479059690248697610855421969585013300214513442770584959262586251288588304166548382670968202546272454644803603576556778085950504514338164305929775480632583837523474744460304779047049313619634096522469119792770701786002670553404845327761711622337563675675142808676909721023025648298102191716747491639403153083883280089712344617852471615357914218164784551833592284496744191494071943399054384620153494109999032945413487858895331627817220898944189371439209043686701861371363140875629184996086020576102736005898448140790884258526862827635228812436363017375997763450937378004599897612932091325592562171276049067749312340180488053899120936864748577066800420052955320907203442094910565574849072714865263135195557506025895877023489688579551437473108341262275481566074295656237199627468968833880887287608384235864659502038182819963488442532046645508072876397877756807648263663162975201428911555094910220391027520626892731473837222276846524467444560947290835657689532334546609947404345203473975420637961611543067213701602826249498266863985518887238813493968221484121365789298640848196091577424079666927389702208103659680093215648675981302067372682996113919040069034967208838236177071723707679497010994791813021895059946663895549729850144664987817893344192369253251022959047503199169524457842734777386918910270002992346358104082347528495502893395038268175782195919419798504136444890943212998341773152693341999379430693583382220113303040044866744548393425520973110427840210750382212156671140646541686913555954552454207241576263939499731710229424254924016700612029522003183304412552718322328225978919092402462603167764507822497828494497194109207246200463209742499836688382688286124701504351738469856002992817991772705827093948772332379785153406627839145084953464755859566857128155645581339247369513830121634565371105861786376837766413360871483675404044422542668779057368972729631511282730462210878479165187697201854217116716473587848683231256223103755414427308312156795846572878706436710562919227343097023975744235066198909384800652697285500210931955959522617593034948089475241864918876806959338008422759543026371131357014026985674028358658080086012926175125326259063126994071829529365374321783042745701812193847750507576190781416934325327494199333052421620308279845634931731517051331900665095655129933642708371133333315625507773730141540697790171891860653808249431610480616922126788518707950396273679309823144848775509839567324726398658686227087942350192157846958426638687660596829356298306869343543002804354635396739285004130017842950305347419918263303347478696573964451740535841272247060785897099908657748685345479352755879370352090096469178681485161409050628766566999878811781258793205447101318671967502579790274212130999165776780086928162181884709982241083116921312512797001009140621208662071208596020041663932469092401252369384933361824251246640078650188479162275200949729512248747687435577510296501094636493855064695966988369355654726740945129001857491740320304504246715058395788340748136013553933117681174059541676311309502965443304791390607024429077185067471291136264961601129013331953197133634850422213058977632420910957576480954095502305460025992182292701011093125404163361393880872745192414262969658304887538756960895030176740705634851474361372283898755146325222869682153235236136549704452215289700840025755641827761389594420949988939631070459105419584391541154508297297262184912093306645489756730796602200924724697818534069484666444273804204818121880592373386479177434169565999515930899900835940430254791863856806091473038998400457756969178059914699062915940981545460694806387671110556523891778935150523067263746398379723932464085432298950379843074665604943157297978721359547362549280121573388341355210734174482001116267805039023838455574613193574105966915379724235411645488712202065300714732274440113903208450421474406972519637882538814059203597964992478339729003909433326082528062477510010455237589912727867173060881209836291706666399834015132055723834969856074126746646407377545187247655563348364958110536903510721227269071922570639146275197863183476105283006966913162029584014458067484684907725626298024479453394483167902617491421518983976263397771132846504957311179078643687949421878858344764739966948453325312102753375206315169349438678828907512151386063525284058469477200466143891598706167289969231556088116765481750415050353698135134655034294813881877559587274137761269884787051141826642259833575069256434604308598794316856003168779780179512912948104841318579027897159039558729570228553410191944173556119101710058106884356273657449010878934410057158455135827676685459641481845872105175874539414470683533441850602454682643457547802073019122739229903188580725192655063143385192073435180771616806163714439762817999554205354313134613467800712875636585563254570310040776412318882025584665109520183639481980782368388426003454541763322525809710096878229182897774000373234591159926793127831700215251057460235720301045959941745387083206485824611760564965395951528293543722782906044697749570442047864326460140620833020153589216715155558562468499136667217187625532148517590209625157245101900664023038757120882245109330747170678098672280936102615824865893769626143625629669171512207427791832893831302866550992914817051109849858716150358151000271856649220659648273216264615673311251734606200903895821090958386593817430473850448036028882809528468152740501181120494173131313986554964087718047309050919878243961064114365730457255047424003973397943922094932347074098770399229011348920340307719763212325807713357275670619834639329966592707385208762443950525950314071734829520319769089601685811922486524653521471694344260039101821578974317454641356862125104868400465766808150583172222294559046995150914285597893380718993818266855371358263174541728712693063755733367904035803283499572954000722841078936478807107382483419519049705225796990721882614203581690374108382343057130876907297579631496417178060388620803717217404386739643913988091402358910674408268267093810821968374508169799524467694626521813623925628148574632177223679431326397412610841155903100988059363701342931525099903576702733638803618158690808287192786279279187622953205171748631040713269006310769609334133167026389277421126277610434545204703323931646729485723457397869564753233068907853043389775219186717282966264417656187997851817787469903224694857824773278398330850056335114860299854806480630883429536319702201603442615470790899121766255018312961228738109051960248529103702797415760660153791626232001798076453701447923164444755416615801515928469516623420695100540142004879005472150262838322239549069228236576414210644383446183902932759673987655209127675724249064680885860868432240308339824754812641498565489843665969560063159686124293236346924520247796457365634554311574907030106056675870654637096004996925861525404642912829067627243988701759320502984409832598265567583667784424328169748965732200855759651602656555695446493410876363483355727457500657038248563659806436118731608527681437919438722963756686534758367555551447157262301287839347226703865019002328161412543011253087247060075025008540093544245144369285669604844152381760099683615035845199957862683723585642569518784952062447469571925362053322268579341040591524262045944171274054966067255450006842794618234398080009807240577195349461828718345060780440428287202186938130247979231899694079384771284955025135416476614421851899792641612899569382553510298653645589960399442090711154925449223743673035138206865867096605046566699128723470005554333134439926160176359065333529738522478104373163900772887781182924588403037863394249484441608089379956742348747511282748662919495781192330732366201006848383937738360660680032436044197676873071231587245612628108000094950016579973878136184408246073071278666466363202489122088150069084434441456301501266695577083812431147117529281350619870982041144730616258559685179799856321211550351376799378072443090241249452801691160292673889713918409883431172666884969429076920361765199553680696323799493822519199792670091601048065755341979796929981463746642973351058077359553672732882899147336364050841556769607628602446627801453783412935578698794735714550853163640159230160262816993510029503053894211195910259045284276680309401197884593521596930593312997363045157136980405932199027237611924551908465729073636688399261592613546131549706972628395681628021358191721144931288954277836433879671228673757441756960825263807836522226011437356344321573833620082045698994070975306245077619239036107607770218459890529707817411962849893570798696964645869493075025240642810717210524362888689439912866583632187942988272327617685003438433480965426517020088583649531760199888010622264088902477991431816461637059306925433898920816681169887051239009625846470848150745461252100566679084716917447305072242284238032997560290348865100415490780579720020311048017001145818031186453847397898889918625127215367866418248794524928282057033716486483580371129348137301150817523834218042767801745775476989329300833225413493999653189175194066443150544292173567095076891272404422799392827784098413698635239784807373687228032131836167134754008156316167632271648191274359417395329136767308318735782774478674871825123020229934739748153381796728216595030304536425862627001731267466039143437709127927152791141045161325942055527322714406122933657192842688409478389853432293016577917890701641344574297268730641599086764953936939653358164689197008886822493521689522904848141976125183745530970883000781506687124157905941484446363371821713687948931910505997203975974134529596574649792426781653975004868882623097320436874577962467915866620224920932624014331923799398545524225416145216009506516726559381932379819150286519633137981540062803090376536131340286476179088057063339181536382358575977048184421952958466134707817429795157568339594395635784457362339148370343835934979738740278587174744711318013642775119888609194100371864109119584187236286478938862724806628023531138605834688477080697578034370513845218115305294972002449668485853742606867719524560735216934694091522338330964906234314306736760754012545984715312074343295895041302632515484921985684104826925550422189831953716916784635089456360599151160515059626811874985423519758438764239694882537370920570562318501530770087579258061593469615285420294412300587596340474594898146121456531627942527642292993345896953115488906805837103910801153063281919132510619854540442639430705652242535539685239941983856661384474149011464995320365616808302253280702788035031003531114749374576884869188373340648524856617619018430320906040308994049780593470761679804081033341987303025135651033543650473545897828556174586742676635263201939418091328176863542192583878620599374222287554704269160354606083009335199768241443976331058284954720479292900931795671035032444864550632804174067597642500247596685836072863280830999879257426995007474177239316909126493300797402073765438642536435085828346478414172992548090897122240100909441851658252562973940134727427492400821721305648894397798342053950593215469476790123471058751597422583302183131802068133056137750655810438916299993391910202418473428556598387749841068713089063959403063125409171788301013337666610396670232237368749333229879703267936710890009046695428537595410345783073509992567770328494321882224442274788504041060824146194572652847823361045017606848299067871089513364142194561613674592568572598141514406825437482748994019458096159934500359322221531569333617850563236184182315074555335026805872575854594760715288111626372624780051286558570226869954114033890610577389030618151653836343714114396451857865191158568648548117602407894815729424892498559063578510118469179411752163876341273110121634409767251277052067787778695669459697701732214748011629495622537011907301457814323699799037415557245645936794630962191132825649462200637701466970503685017394912670757108139897970491037834144427318618274281613044945956229959671854559931639435384897122823115103611578220735623627921848874294219257565661534796660978049756787385374798967122721617642538723734246197966542134362157093488981008640291684007560809318727715020240413879932105118140826148948844402283308994536350359088254902101240942702883122070307023568819757426880977177540811517783056305359648790967544823567730616285916106205396526268012383039844016770073435849848672199609038383612790533447041339591813399787859575389537949092549854704380146330517127956358196859801345217169318064424204165641842055651955245175002019313478629509662590714139611002627398473682383724841431931169215300483071166525473588905719618484014954486074913330593574392262157751825076267378488313580391876341922569758031258281207822663593173252153863541164500414280581637198978460400361926324464059063300815149114397960242536328765031718769431358923496419513966460548486192035555841492236194517428195995512206510576975908820277333691688893205090315226635988432034150232366016721460260878228717807828762995092409524278929393276152417054529277891059782644518707209768333021800678328230250052245599264870539208249715486306692953679881888204651580656010786261195541746165725529092197171686607702375583834861370427836531346121824736459932203175517115062392106618787078630771892967297495434062776357966805996672927784860354064229731772396703595886553896672373130113758538834061093216289883631214993562674842337551033287238357166610306922649695613203754292159834802001878430967351753126395509731603411681739388550079513602034035826979132025577429295627345989010897251434221986973315774610332566851145371879405653357569748422176907495218565328856564490310402477683828739251138826804537056207244231181841215036001372360833194327554432233242289227927835730316126637264822385885810720359516437463289883296026553097218031587350678054595794685635388934134428913375544781220588044812842952250535958052926869362308932343037109247365699815844302987701618474005437833333292513968810806348011291555815353676632848584787223181840073707711260250287837842520410688544318007060135096987262071135669925600066107948713358145795800728166706357565675818588784471167986630046451135578279125995782496282489664524855116043782816665648139562357251920244335373107291442741320541784993918412687576246257583073359228593775294960154962430412885541980215007369693103287370876469779133648471467286769339515645031231572210177244460594480940120792687088177761697217671133566678498881236567739597443407651867322671707264516707088359938175368139107203951577678934389205562787167413464195075577329668877623712639192813113063516181787790570925928021206577823880172252033557588805010361278142694242480982827365792501644990397728126901642444480682828537089937573472327519362907809056329877013220138958437676885418202691723501366873885236983397473696708819996635521654657797796920095633632264210699664798551762281151942341380302422947204284674509285358063102211174300403542771416665433135112299193302325303420160735458725241079229805052028640118022337752231358910741379357814069346016820268275465984722336196944356026327363991244611608401789108479414630516172542688851654529008426468074396230348355798843331300675938397408592297923343769164787100393682834899723465171365214639989410140886356660328715101900890311605481301951296077980033665738146623725952358599227748205810063139278542212642813049236862639516164543442385519484154160075307459031263283233865620056191011176649135005767418150235991284845496368981317901966500973737702190991708101229044375733091310152483463121724159171464873752323286801359920483322679040416998495946526602080292575601253217227567567482915244895625056210802196278427402159307118286125296780535253970202212612328351021721513630893497125881047063798144333657968398259703967879291962938042123047434960450933359804061562220577905499395966229557215922764243191705520686539784406589502233825818736701760171226459206639659327477887330055007020629153711702382214962759675703368216397013489576783635118098222445332856525934114646998032186523361428727262550815614443098646643545364259935969582163977560074761644192302942082546648861186090770724146297919513256632751756068012030507657329934133661309935659361871613364824985909782442809666141804620816219835942291747556151402945084724858034113092306023997902580278712870178364889578806394381528448126592631433359933997156977976644344734097473421930139317824487906681051164221461444847604918065988047964350179502558460164010035942196912186802508678098902143190432741515367821198045388460974362727053710454663219836299100013454928705069678897743702833882765951034726037487509444300226031230340636565324523150377481412592182914365419194695606374338920256006877190729071100151366443095381134520568135927751553145918900214052276505657977728877062230061837944470308944041730454838880602797592317369053387958264162453449702598521594229410297191970319003165972666203360374196280917967012604311957514347370809482992052846171804759726726370875654197701570797558220306685261185202830298154824352420380703819595774405037944162800939799119450841151049488862434755906527130605368295207148506560412232028340771665265996546512120097297467469164409733522442314218980579618823941663792774028535416781682696398909817463706233028583777862457295761818407167683718592698335919646787365100065915207319464161227211539523306892951562719806315490072113656795728581734145129372966390836480321970501264397014174530958621520532485592424073563011706470797339250811673061161367753964052806492767410074031907690765170012204748394879727742878818257404753483710452909777343401396189781460264320184221073527171509243741731844413732292964063098841772476807974092069228689663430290544726076925343258966758137409517495160232278591979126345935440808293224169649025491328081804152837590345703036401319936216749615621758150698729996926229460737073852502619162508966517757832154736683993337357942057964564144960521604665570696947673745818219728619677204506958107730684402216112514145485389452223310820701314104817474142627714269106821961619062549499221578208809518936962171496055566582854564425523308148869474617306645120237949423997507938477810187101493914267222091761599423443343180096037918524854920529683609759481283627516302938609282048062770689438092476708711660092915260332340234917787667495169131261840382046472605691941559457602890692113059267005539792562502332055483568295523743516124397038293188200219598760485079130939333922440309965608762568596527247536517386701498981638440678489127754677741455337830622012565776609678906077874999918325151998819215099681222049431643511204217636916362262774789371581813875487346236651267245286822927175700215496869306586792536836037835568383601665523573570124480674958928528337004151414495958386227608552602524902154782029774573373974482851096807894500683564684983988306605917673314902050061210351353409819491411710918510838231486506310745412139333651075028357068937695797948444223123537375897435212010512364899389334624358664549143868239796473385403650850038142089241230012653202359123711193819975226823843553734002407562382813692197637966164240958268809986111757825709414392532823756309535277609587267002007458323127539476260053789171159489048540755369515231355723169050804341994029976077057745897345716028768452766608674923791767434534228774317183631301205629503194801636807916877871047755642418989331382410720778570147941361865681698910707612045922922009696997161643644105460354191989316392323961214569937801573208145846716866454067997652733550379667955761484547830155442410328372103788750419302243864802597996994134609923358867965023845945984359240701077990436511490482974883972451370037992134295005447017474510101170438919138396846931835325551586081550750725695719863284996693956410262148289695693623416344155021335755031510299294278266383941091281354287105511855205627686532296279133243942984995227860006842644326307128448775535072721018842559058890576373651017566958428408578835098568813534608580634148434794071108125673745012436947398801988137088744339740817148034206823205564023341800923685931284377208769487093237931258989908820106332685398110561752004222710288054290314906981412159677197994437460681125577676767930039325935626202541911706288011191924043798831091757042563466254403323134482440313332516507009661575811679254762389387181408545457563858981210286479612281444383392885011933688006294200315918874917523207070295764700847616055676245537878632506474490625780040806055301664434182086592868440447718500983165856673735910604380567300535982421101526829117740502512957478163207205778770685444085528324821007766300089116372018485562229591278418717707333479374230383685559032157462553806869455434485029478130319855240108242639893091154482902685359817560908871380720462737933682705511972567093984764470925056851196311290829461940846607633936344220661687507789460708919661968789718353949580748484651743542532862935473157049901921117496427698490398863908088856570013288617800285032471129814822724279655225168230887105638919890227652202341302638410369895375395352447855168028200535090204926246149011866425760733286992549630151515788845957785793412543655604044496372823711680219476787935836327952240936365206738005427668179991470569813879097003232611454983183527294369444676216629338037804621812581822927743715959806686128297505354018471527715205220325234094627912969460522733565778748471265109196492230663372346312921867598386281019097754959188363969455130889130989342959623160116230450257335106411454827014521261979502499999016931512523778282485684120163163803180852570605207167422137872169854826546181969693274600686189494768906992548757275928522152212225652220473131231553538775414021368192313175465078694464224912866615420342725481550271162694144273859274120754602512929521570680483634127286074457433103808904569635073531661116776213662804126414641372989204244104589214792047705990196553404370831007305991369670693815965145804946537671227641830087994992984642244220135953174182343712249211437808143541424371156307423366032685915729533785594526111839480957527419287230729007748911144433445028752964261562205163626599679744567120957735919715158156575578588928000325308081919338336244019348209455432361255767410188198059099703324609246941380392606579779917663184346249584647312196107181164816706850890466296360661047686327042653093560090855919770938068679758044193889897602609013684342300375933213872435862310939950624475927592111960812621182934048577083487943259299032906915219707604623847193217778695641621329843999205610854722632141305172508511529627045766728808470130626986000655795296364155792049753181710817061493259423203131509121190530243336863286244186558456547791172314155870349162402895952909198316682194632706891825535225690657570490630272286204515884464316520787458711469656691415903241072245737924437086966824922068631369367643566793323028566156370380284817104701724548036064285227176622067620848655944650197413768604050773440097866736292383412510676790744818340569390066419039553136815215718569744732674106004498200959437586193991523280233919021939993144941548609789801338855148955886353350459509110122822685970858947613761452625434334012959317861029044827901166669747282204195659768799869052385361876117908879681491518750233701494237492826541550884287542378894895744413937575090420203529966951165803832007419842556580684458825586513456673381425195958012514255141130897198923073984611131584775461209820944188621491471647659949162976437535895646731011879999972546672434803374320039122148910411189438438771627199696208905688547734940953549219190985303297553357363553050610330242658224700953346153825115942756189327356984672755894677092696475826233642703958919542699045114505056627713570273504893982483507729390268138328079357878025761920129138125628714779934852559265522151484050015095695819566868259300167928671791399426725485486035364951325734492756534636452891762667145628417134960202926156984891657884380230404767622487708092251851155394480294974385454421045729710170850486095630928040893809537994142209913440038225702036882397991176687787644305057552636126679894358891350880316390372162710324959411148421664847591795777874368935812955532111260670185759789204576756303792828609828256927200450295925556071322257406363303512975284580290001319020505837314678484870550415167171013299418481329350708250271661526005875818300546591821913885067660814234967305586102379227730076496125764685894254170657477508807715061437911287022322077925338513670806433808940826910555246196686065303516754865048797497023232230752112521656671650468109494180055377674491350775971670285765515949187261205949174021192914511871804729947676827139355519811344039048254074134102220792491063592460350925595582316369904266668971593041420064912949407693676717126741457969878543286635109805778669353006834861299228383970066335343180908359632915631738644739173972528477906244972392285264279082153370921745498310043130092548862838121259110440444028557014843883451610504931335425362194406075059818353777396335404663478732340718980331270321020850697991615609191060030378786781064926405476480669519621110123390784025859500996445956306066522801378441167862780961328976020363571491199002844555898895685374636162215616012290903504826277889911729198838009679602763822537338312784303956090020207453183557695456090639256931218223302259442541047828068655216328491221196401693052443660214056227133613347837573852901836836953045886596951171514398945728296048782627825844286499909146224707470242410082089162654056095444545691720465324367808049119192353897403620706779312370969260107216245485223312553156978039439182283172275094030482383108295774213461487971549276191823277072721378759070689979330799756508421834425054128604413603680233776212083089818440331847449232146798069399678362997969620235844155285020591593278953799271848713256017094964640188609443800726235182345010331242827490126928114021490365496258653891138638564468811903323021775326289661100392154989246485999773251411712053727995394396495122732094975797963029193972068772878755709631856538775241674418346223475447027495734630878298074279056234055132310596232241572076854822263449628081691087948760043586780161854142824605732887917254558800082487103172322078096163942801727494973135710120733648359775316555742914263185057593556841397916135328545486947937082312222773764605577573380652952700704150312898975979796360782558048080906835895437581208197555402334928582852250933918606726524189773299058622783182675579851871833013291955935520439000783460724240561183432888447773364814353390261987881685576423119333585448572340156046712422140185148679312328543880224408720591555572726111992560739998818664872557756234960121969762408370258733470386452422418061089690403680658072423395110693567647657599582139932597604332912683511250486422898068765244721003753239343507584261088189583457829954435069733025237048051868641535404299757625234037798982590720480705107555518457515856514058118525134933455187310050896506910548964252292222922393884705954634230788335072465106873441054193897275543334357266625032452113010504356447793814535758817505885650003312692637211726225209042702742568026035844998786936296778858420226481347042927969334255722011452322155224048324169049501281389543243056517343967591886873772913078971808515621607017740814510256210289863865429118476193445658808244889906439476539768457565927256550896504723100196614939370000403163791388632367671772689160462773846765658229684464309784355148845798108801945950170927697611294621996459819197992154581908062312359590476650401635172917217436157499656135386559818122588512888809676735937203632581032913399876349504203157803642552415357911556154176366875325515357949951083771989962032275296322001796844143896391041738355645739610578814566686336387388226478267261738545815759368997466037640861670918328552896723976739928029097331279790910630959697610018384348245330879329326507030058712397210112075989025569704520858069989588412133432262690353072596011396600550863386802585170471747862524035123911971369144898744935250953559173692020830115260550553507486243819634092064475503857935942376178823116457402587701108020484808133280883082903528830362287700218039076129813072627929730542855152279616371806477378852734464465839145057357141596118841588185955078919624336594515331886070655770754457959496525073726165811942580199519889671942464359455263703138499916905967835841585662486936938570325541986386880306248042180060760762084295177493825233995833874230694610363261310974812443836581192701171602702536459444486777522643300183068881646394521104989200036099307954897273815266485454765799007754434273031530824024383756265504654667244828778820699059437757125390948781427620760842919473961309656170357686140316041276072680673975787552246777190281171888911302991772188980506358093594754543375154907910680999337675634590461129958665148110317295802386520671969077642031578926654455903861154484995122842993457109363355096044379212188866240670074888374519740283808641723680609085358772142355226375675371136357674941306282965866399945266940937144789290536867452153726322713447051939109655354659467320600289930143416543265811450726225458513844787047596941414688719453645311923252443929817206666341033882103543508550680961780576894583531066959940314121328744435972817048349458936557776557623323661552581014844615702922298758538623835235833087991250374146033546971292636011156883399649609017951871833700011958772714644846714361584233811597095081000217816721116713308744014502169680457304644395698190819878749592594046178511313722587425542685830007953122968580616262509383046148285429408190429324427804742486362388430103542745485295521951282678635894562793344779074533135167257743373432667444912719844851598007115354982841793173929614931548109624673630269827161701959832325802985503682177793567524813194871773426074102954970245011524187606409317520452823970053663460826726195056881439111074876292752800722533668055784052845196773511231991074616367156926050045464082240997627491363707790714883712468641959374480113884879202985882593839427513298976241068561388041587774648121972510917188968503450747157868574976799388938146696066973827380740949016544637191958872271388665581746406510995272566959702432190943653825856259925706934228365248735979867868568866793851871595274772374316537367850114107364824123037770140619145255347802091883539830913282697725129322237155568538521718770704337234280010598842605631119372327244809011271834636838277156219804599914419848761929102897878228074848418042641358146696217302809335644826856205009276677156434892523978938884096530333051647369532039002489144388039470961596062527749246770529267053049815889239197606503831517094586677926618157363636049012586883105001169904685187832774345363158010191317786733485436958785019980916664936463058187280371669963754093720693785099285892408994339199627685834352617598133657621901790366571960556486964254578504742541675296060554582778504960738141396691495513946405854253669301306663413802139163948528614933511177344480266079749078654529782572188048796250669162045534648112804582588654835324949770089119939967787896569663112685908654083146782438406080424115005878983158569743714823799228270508065740301448203030879779247694897227489688340398378914515742625527514381345272236080111121572135520987387350532079946138916142720555847601950286462054327228402520114320075011155087718437786438803211133711982503174531851761957435515291339404933139353836164320121510705064898108016467024530487810615047371019525463069039401844345379357018221844032888497400878419631903130747976360556077824648350064120138693150036013503327401349532377143924550832073097840324080327277494161729923562754970896495243973305945819282529918370690020939713165326185508184357749146274528581060044931884056750255019335165416339097263524108653208142721293457982665854663583116318073802006272691933852153603697231626497377318049820877830471258289840751040463986810919281201896377253209149019957973370402599329957148024207868044950580851810988245309982219130362850043060396460122260461269151758762253960988313468267439601116284523378932014412301193668187110845431705924231225676047582638461978702028671722631307126640611867793671888943903126095598010110576171025811187172680137559151614098053410666203926385324226177207122954324493787158752282115918363702972047383472485735961626840026940659247829046384160580152748241413463735907989577695157071666108668918624572685222703994313649504628268189427102200445784468997091693191317999509248011421079505702311182192956757564094517866971767708147393553957522502531391441886813118247765504487602025412069893675679638717312285008387505863683915235222720372253172563905879322438142623045991373147990829376459892681874302835656077615178613046804416188421396997336661484629605968209561694112322741550829337657108640228750704227385631973556502175415152391399955774499433734609539795656774423206465318192760350631249090993988872206293369242464318910973532057886518147445392772219114391870613432313588472443420287643246609039055995318485787026929527122362970989992904503355360623490053065761811950983181618316507255363881751029400351603342031448306113435841687143284742616039778143740167853657768081272339342433468032734499509806315275219393001051890424484549077404619278210846863505305787791718308141557638129161165669173678521805180427585315460887768149042309572805829622019530232814300630248536729907816754877849024450859499652551862775280891048946099773410095127794089145017374981787958269928450684552108023745759089263497859741715572095939959772024124142203841711958186104839933681496455476988967969960531715698007396076910064680830420019437206584499656913094065157752307500378559962404633540595249863354163825322341807818493440508030015221977211627038540232490312171912035643470815471598263762220309297394030445670371990304885066297356479809385185584080017814976978111971741240899775892147608534881588647307693820879545882780708705185724485734432259361374741183504725422164426333904904328554383387353396304511339534378110320475308123647980095009558714298594952295157903691917354088835819147337410895717866501061524933690665331598284533356622644462255974931315777217446990719254677821124929937167953880557753860678823114431938593999243986779461816489524634183718891152416592570448710302089987388316942526711888558701348696162152985436374463760807880069445448076377095977455311830197587568128563293215412625962170175828681143090252108526065772723053862244148983952483534849244646822282834698740641657852244023625181068085467541530775184348233785080360010841597788731584293197257199304517483338193448811736669419516176052439513863835256237966656556163468371956604980288869928209336274198472577349991365938047982330981441619856095911435375996980968223837643451201543590820407555865522968874391151454745026759133560543206571227281158849280047279760351401024508345631620649953227904010731201442437561340282666430290532585992869063349261212115136653401299361338303153748668570501476877927832421092361983241322177349098780672659273038809062417206373449695805016514974262449661527180965402702427194324403722048285068782634163941044194389108846953558960171138133576277638395750845936203192570143129038034164587287470766251627052077940375979326029000426116057836144743994220374628190340500361962311025973672271190748061244052814394239159778355905413487575529296359861895986956210393448735184567138725841820644111398877434913681737056438060957123603693864283273862223532013646843032355358182917308142444755868998241526330438720936353019763131955673500924534767568503649918229118667667483459501862062697117608857612872706787807805105056196674292773190140343875659928563194594388464776390324153980722190823020345171008208915179009467942917990126984404348153876472302763258414653714300977365608312385012787272246340264977574211145185407967404002605586650435645334205454530279009676418569326754595283697484782095701819103197183091342470115029455894249912547595617107085668296086337219829207229677627793382518957720935890140977183665519355845428648214910650780789332479526622262413970123704303575257312222538007579952823725989696032802768634988076018194128888564199404574303533626308802741657365056788158798741364025946623714023091130535745630312356873661412066981357185851715476917116172192145641718882832985296229202717614703752117112824610643852107004724755107964819091993506496597367366416558266941953917836087615972214187926401594283630828274697411043697442608134050284988551908832827632014630594738946440346179159941860317709991909135332611883210042623035292724684352328474193480023514103095147699928517195547749966268944217857180819799319560178957202052618654848197465416668202446146152263718081104190504125709985557796224061669737763494800935992736980413367722297143121450908669418396103298722035653864478092020207627498784577121566664102745535278080813225003787070663439826229249260549151876914927394356094151330181175158237058215942810383183418586343325125876327199793311068321143959244727377319600548464937054676924468858391723024605888585391890387859266285674013193645570765867386687521590808010645827189736221853750627231876510705788929941258903217905844137010043002346824087124297385681110593348281570641497242743907706784094906201288067862591675282738656578852093029979192567102708500492601774968578811147472808845344880112568455100484143549807582997744133585526834688963824820270982522178959978438612565959732946062348764294550837440746167766732414203838350369176073963070551562927228118774870607851050667082571637992155758588650791390538730891580485721151355748434163316596222560051371425333758250316808703264361983832483631123539337891988323928606071862423548345521012934746931624667916968892578237463510030119697966973312459484914670607023350782348445841264314724403619625110564055596483793407513300276605269351431994776687644757211200423883889168424377092962192944971194227633895548684650763438922043706395631357925990399303893741108603102758441353152430930127786836865708594366068394299214367441238263592428726323812658778246731197789849715645807908079133119092300599869378729899674706054043606208706502634966165773309094414072032267286415978958387474848291794286205697202146979744361918565146315573607868643388635984863180811738413912401263193736770127193137328470713346852866898109541249435548763915266919707999647260647030089041509962320015834733216658503797617550456025477687033494946611628771005694322778100642859627390525821200942573506306700598860844669771370796354121135454946187460566821826000303412139673835286941855894363679402587651981043317987052758799343664418850570814798980361622051341225471102445186346580650686340353372029342267365114777789795571039969053095551703129493675624931601008250611653593620639776889697687280728801103433202657216837687026228381001190714247446990383461502164354788251612716455078980162229008601861599247751025825779256340835241915561651269614360365014738293926768393247195708021802347713953213992746771826195666326630064084061952849474608457453207435003177128017369838241496832913708126747354568325351301657876566816741493964956199881919053302363052618024705945177253138089321186283330622483651572128281049701327705658251244366705296091167244103279075098296255272251161386623047619363501714806544630052078382056312919579083760982793500617833098826551772733864490976034611786451433270435467408579387821259698169293089075282360501711266968090158015989829209370750302973764517627642108788074158591343008095758937556945929840663652353053436491008841661257722754068316364124570885477658751219294076700171224697982577098041101281013918334253379189909080337478392703819540846479858745972335587308368371500123805941127472338944431502479134710311183326359110243484753406836418274218007313712855363829886352178648898819282011216895533936987376632108298746953935800586017332934347254575053846588379029318809027005231713910137230418799939836865667846675749817032356180309825281516524780410492748730243756168706118348673227439541198503743828286143969755955023730114916793429700330281299522972944039466023107729822819244088121211992671005561733675015987505187923836920907560296210779858879789301826180720869430720180470921685054021119737429427206263543799011154662779891650757869422807532143018290271034022604820906130627823715210122176452093960146737988839411943054212439173853288749314425697356548448816238004313670837308268647564245682748040590424580761697903169150449143056688129895085752153446656723811956067923477360372279674279769345733177872214885089187198654152755040251985778886395701460849715412083946498506528191003296063823553657495559178291839203850473626652821663632389043041853369895513225570234782327422046012167324980190075625989584334103776888741954397145416963053823808676079185992525336278008016325315083770986009115262287351994779819820319539447733890028553023076068434323520254434092275921500159176779828079940268432506497714141608887820875606601184196303163350407989722032685928049759487439060396619821519312290103037870562002518791094843369054930522089776024689420153986521602189299892477166687404391801731851712209473583115583667958936233342940251410308991195638773465604561523395220747929565235445213893047954272270384991748797290501153060894372331792133309268042789584758493954773813837189030870435891935442607088213662096376926326858076937873290959412424056102618028739848814348453377129203068635693322116528486288852616286255928111528352047988887084120193712268990669439282020148343612937812755501070920488181147649788415545539681240549392839986725505972286623694523750766083754160161922735987318971309145507462651482385343824385770019124398856893187116194373495585578411501414889212573394926619090943251507460599791174059638019832933207720812868482208819084159736839153645301397628073939149778426035299659082149628392878897849030583056329657194352491475401841906951098582756357993514027736401770372787466487160992118465383086349335218805951758779575852224379082994825721108041942116329488125427206570474158225245755758507088488681794767580336420445494701522580950358419844901100740164124835644840495119905547642444340113018716561375424732960859859582315361872502183457028957598897132740073732262943120933563901320837148764931326989096519563240169828750213779373790205604407265235813904943975344201672566429405442838743742096682249803449683698801060932020215759073592909716103519589512553340429736032425991506977349873718603243415224001929941843823833737318165418605200441680716864637623768284519541841313119858500782286113867923261040414383520790725738975202066938446414747617231820478961192625057444544948031322103254803856264257010242849924453079843753042783290844566971330436204477072753160973794567457577868255265952645188564338400712763290580384173190634977754778681420409359090542503220787092895982373905658381039508564220799914851007951190468154575724004633615615931135834661007205530061741805441138672694554850942437979346634081339927505022764881171270801166649321712410380062708985388396203313512528103803402401147377753002820532053123232617073003880708670853324465749722636232239803928164118149034226834048326298886035183832574872856316933743135915412588407155404313341769226262227011597589791121854862156296591433019046515267418783295699389874181568202524103761936122306299453728153595091387077124951972491175909562870310561559394286597960483797580087981715329273659785106772881088542033456587672993610329960440568948667898644766245452210612559998958166357980573562871739822997887320422224289435844806538954294791334185052624440663085079727047748288144901254139020056566283277068631061441488991834641851345282159592378828188488944742734615456606899377818901379222829044390171582058491174161152669057172090645644685215535881393315252787879092047416342019671206034959276598546862084733654106952510073503274463848763036407836930071794445380584926066329989495031384369658279669584890251643261492491196316163266000535452856145090025549483239256723893921059657041278820104607949394527332313612695028141082373376376303886669886609438089011641358522688394220755569174263070579253401398838708956645192817908728739268565114245146774573059751361036581762868374367497651427496023788199945735288313035156741924331330332645227944332667780829080013898215079779159763692661023307945179357269914583183455215611172567039307674120047288602920889780885294605640953868191908928893156633446666976756963227711880954619482029872481106672696609144870934833199769919542724883799413613419163068261779817270869920855825936447528111139973530827991863038016495697168070836106838119168426937826725756079078585077468877612797831243800632174419894916596631139464639676532512204121815786585317807628887150726805727668457527406349442161114013732633753690139095697548223945794584354373225429839072137753973448140368188043932698035061731419272325761355455973560607775908859580272044599251234610992293361363895989310759283145823355662550378973562220992818974133660896600473952171002782091395854198277156049948866357411599132974655254988168374237728624721988876264093815411934299915852031359207833734088789153887928264774863412684821253363963122346490236468490469117002345511158881142929562181795591962311943831939442728771606044144586468253772820168711474112814737615277450234645216022142073505107161023777602190268436509880618273746131177127649521968549140502910851826457864309087096634314337034245182397757781379726102422330473648003903929933125961562818301277750234436021736720943891767965232840664834691713212343985599344038136369347551857731244049556565738214726403164905232667336824649362642848396213998752760692997180938247060362395623824250783979759628035993546538695989644991876814025886279934375214199966648137983209127963259628976846539213737881036933497948420411161999260043728073353702068401031567285643072528294691106485767886879669160231262041977202974734806488368947228990297028831059268147991473162069135638131397941552585815888251766012294825912563420960992145793545149031642750109434324669389637681448165080327509043618345589144575998974683805095911215710689922008408620407217455818337232340680917394154762041929874224592044208215976793453895815154306581890741189861908797332636822161157220515069834351450593488394026369522536427562161223612898715178523763108719596803832493646741885200011241254640808800203424316599417065728061728639832245152098228267227398108926110516436960413662155919513214487251424967143143236166952448940003255653882323231215210792558545497729277662711073635523831989597371190562643242224412687001084644895627760009168035398637538807420242819153042716833078146467558033262827123632847259567363530366868937372373456317839802961465542039778716458643057767216837500858280209588974858666326447285323441207866093381032075969057804560059281305947196167580162394513663211807941488100999637503975446591260758156321566424316811375721691166844815302809817605977243721382457309612814699846779342869922087443678617122546543772577666968255022209916423144189276439663673363708396229850720120831031901738653073267426489189345586791978912318362555993456039905839279336992125354736880985122438526696392008187832835681790384097404037216530925723205339966615933660854695230198383326229296635718155658600566803680681994976573666380551619968733509425759734318977921296295843649994657597861036543727431343407486883114361209784785867340365913248398734251595741148552101520275162992992515107981064610199234260215339288823460495733055643071957496995895548627652951579404924500953704084365632725974447654409531333543470303436605086720352673133581283042241115794588161662548761160459955596729299288541487688350808886994754845168814937580935010329570686936883130441738566197399863359724185237378691660452754744347516841691948767169670442563554977821891168033477796321203972698922904122716862696274222581891550229379571372489284918469762532160977862391438251045081782861952038330473822139629263403076981644333091626704185415611102563912397471836902958128056602820589860552356004598332785536283630670654589302637476233156551997014292653298535125028218458919002394711129019365720416145505487243027792256212481446106798928443460374832754115067935249252039002903284340049463815092315227650480698877859879273489450383803140904581636238644854164335901708487669687630101211777699918882523587229107609955358042323501825383779564829621998411385424728886211650701698475181062992379635169906893133829327714936025358001933098963294693830408742324890988603523339571245351511507617546655671220898930107108915215289907392743936475041940162191508797532833477965022972463555985726646240141717726055195346912244026336243097967243258054668528950584325757983892747475769229018982727008409081497879253768881991152263004724375319057583336862170843404414892334641658117724134114924545948027637279436600677630603598590121312194762151883997594665863894433974059322716503984425552458166504727172203237959977736335147979976400041627287923973173272692344667106074627369192316243327536352579406378777507573281145071536834532727461344265400069913916931518395803908510052144331877945905867878821510110167603575752158123477501292192890707215200457431391744282162209891668318727642268741153811900980137019255430851589811070510919694226462211813092363471470968075338021313736343552456225390483902034201366512578518626674993537058326845883270730754162135485711793210744959030886957915198993460124901411764224322232097005946365212198518977382132627860667250663363696785902594800178572295038788084873263112328779851686794857373909898370417196020442504957880956229233161435729826095331566632191937622117239083668812170670233458969113963773498190493079002335091680992488305267635868717786202390389080279437734837441026991973865656444623151803535064847900484956619187337682683701669350031995180061274551251379902176741278999776582183237986210743618688799407581589955487527359739383726316627132649596054624473149275736883954286084982652047988403522856734413753016287984790686899408566078101503854381747998805198537024856374655740116346821665853601821083702524930188525199720005368478584558928586518875705420475744602872066327830360914882801996383870895141020780642403233755556605030407493270474958485834768718115168213525440023692200792848184962391808059534056021733501847268505942081632453877067824864719027185458429056191651217948166442410697606511615512894999976699730175229846931586326888701507735009374437593474262007245581395722263479460908690434427707962781515584460885039833755546267429656340571979808753408821446123530689798798982023325895388427114467212035796876650596668095357161319448449513023455819043315973292698960757452101218836516160138245973421891095117829619491180172092733502348284045666402732703563794901836971857135927769953652598575716354173349535021778419801544904595937550718595051910815309755440389100495759043025405277123320116947660234654678998839271837353612555471755816349928830692140501775566952899322846420713748206951848888853201315180985246139668447977165749955295808973889304309780151787963142915705627444609962513181664806062195319737462514126894694812505674100571009093177563959010606755328719880712017725459070162021753702973526016388725051170697819985562772440537407105766146665982772921660676986433770313309002487692838456128207237970402880387674393328677858531763347873054299531277531636228413974237683648423342135410138512164155684097486550394290501684853337659580673844683818107390028351043752315895344893925821155616782220038384643448823476171910812102537936991247025078489146151398864370653234490959701212626696394001084500812064875433931325296728654425484891109992167820448434680488837989475631381859035746851821984332930014394916452329976458038533844282155971242934026035497138127418217388142977004883837887679006686081358787422638817537534899703435284738052427608342147583270966545321924167551593599955904636401673354215410335158863398058545660359043732483167457205721704816797196587142060658001348913482181103058871491191767534395235394943817297506421014967272863648159359523165892388726288474135065104370878803286372487542755797133988471002014683341338108105720080170790689208921888500480909504279560647579585226733506482957716909615942909319114776474495075190047946906386176602102007898883701560177554836261745131846528631198608206274048925305212263201973639890963381585004660139365487831436422998841858124672859943665544391937498358683131542516527258172657983216748981407553626516884703204356120504200676522968092646287667102354267014371120168269596215617573005187584709680718760763202926400177066192842330117668205411763902898378015108417750538555991027150883142453585071439635697634046881594853761048861579369110435498930830399839148159461662942458908538104116846237324822020265707502758809082454209946619512110559583050111971636350420885149409901963366673108047241591848280294489015122542373705987286205221351586803784073554114130239909278160066339852649134291075737273195145438988429801832814863549026516616600650109985729670541841237339715007136306900571472000449995330344407891438012736969304068938353514393496983844686970970883052557589721059982355688288647729264978066342193116600378807589901844160789664575211842076903615979701789777810240616196159261118334746145316888293845757566115591922796462956126649835036154945951202488200026834863977889559885240281119632671663480415132522985687846337675865392347087961736938939061879990707033897070857868855128827349936967204188649118340299185351087176586773314935789865185749302995016581345868823374322429417256862840610291184047724624257209854992056048657854848590223077291564447225364966309001764278725127131639926006536193734434370353867310598721716801327513801797101071288611945189408043715334139580061650286041161311033980341732063245279562548333676170122679070638916884338917702969201544853706111817456164246827528756556823092136243889054847501295834712710375954068069772334495981722691353780169298235810416030937695552124433286556881510133923420224686261542573645790970837074240434578986713432641921978041747780083981147855471364694412058106718838205504746855040778064036358307850520235861409997457263880695359754880291243682301029744166837992502539150364567072110907374309440758049636279606221565876133011364684347985745320819887108381896527415978547617838788243574681389348580310714387790372100013759549302983568276123202190487604694360224521199359710064092099350120176016181462563191758881323621976955526637748588731065123074522316745050323497613344637044454238755458830684139822165626617650613616873578208119872654465812760230885553943914385160421378239004432634988851478116159654573019324198265013985144070692497775753192841309302041875465189127789894822565812162197684436952460977910800372464463602003733000164101339675473953754955355709762226126915247896571073557737234884556426156065453816779690030518807622191892514800835256433389109009926568535085594511533226461106660776980107654948923083043250193998444592036340967990763468852328666215870665897299868995489102474893105544893399906017747012384045813198301873025686240183534716983768024832611805185306573216027563995255840735819476144510993972775455733439890715193596994606174605488822762910201262002824631694391218633064585275235498438525048652515331635157046610054098059825554913167177375752705153448940613986160552213926662717402258827465317996503634686160699686850552592084777661190201728815147021157402885544085821313362546013185456021553246168995181465625434573320946745483590288649736416130087954015956011828304949835258178989404393205717593470079449369697526703608997637181081841761613078819169653393665584175369127245803075356668257841527652175232328932264851886597022923689531239227632094212452287364113501012252372349769622123919735538797303439695604033422115609764947090416739719819323219775747424637983907256767666647851848992025686963117475504394169923339821458225627805439906025621086186361960405033188560996117923634527038090595719876971151999966092357708020662517487395140001706692608966927416859172698198135719807950321588845299746793421419823018314290230488165322330919703537122562970684418394005798742636232052978854991198999803754188965473216043124403759941314761028168126441095643109597795237913667831722384957668549835242557028879209029891077622662567205210840584808580092443252546323405292874857515267524098404372301016950765698963344483540867920620380429328812801605747706315929092374877187281209091575967133363004021729427318600668547730322926360656703292176331037945024766711257938027087325347386184726136550587655962488989958980587295330908085426361704439084483196397399555183754774935029378621523475026531974848994637200915948971877313086278413347375513796357355226899353851881284981262889302848652706344608168018214501262788436440754868917186181370506483735621130758530319318443598097317925905928754198909286659484100146825077531796274953063740351747854371613701249672488325316714480677780485223770669669836480467951831845509596248498156492637206012177585925331926767677667248345415701434545545864651110311257544466937404297744374520311285889363927942978556126862393737050153401403199105463828707352250255965139945707017832220102482027613419784093172760762698572285442277559039503430245085117526994608801856918638449715505478426001416240752360318506721727151856833003190445021419627614654378355687084618425994956454981029924282333890671148915092989194994085236278591749722923653857726813477254488291139149471638421452431473522771521336646950453916734001975788861520912893166859468840041291570301764486383186772080911454973108230327427691182065943462580708965881269457244311996805246190216500327129258316724069529000729519187960095261693596422164513820427079928868338915146863046747628664734590583847228074968227672112110528079009903453784797951054130660022073975980460896177311506066050236572251537346830651995011343981868378579275100002214086895604174802799504010763765722963672382713682810552603848487757159213972027037253453307809841567872287054759028277396702834277731020592602698437636304978242036694648017613703388571301758931251986275111784539452351290030238565093053585383932045567517936378712113851594941822305524097383622630245831927845305664315689564493711859897826779937478258806719848706209384237937092283184026896232427982809454808085803533643520560694202118782892646384825354285383204647843165366136485855058472315609678511173236206556110203129474806722631798128281806880396721711196519710469083097165469676928210604331385856665468389840364333396560762789447034260004042314098519777119834076415638135901568789795283001639151858625723728278270743956582048671416680581683543323626550806883267067197122583383380401677701819057624331862024079699509994770449347958060071727378470995008160806083669445692932246934875753862362315289478931475781909783335669814563288468120530112626324639144129495032393551575427870937253968218784550352826993239665134381232716341495550748391319204998942084996548730760595322191675093807580411056057145531803794481182693190448718475490230087615264149607513512994767625470659515415766544731039664352242322955261741220020679052378298560645037888031253090950633613389847727288659966975847933537145208643418249141164954070020275963999477022944008708581718891387430318963140347078809790027754109318208751006738269151745872072828533339898947548551630044394561985741606151809302268128619311636998373238288581108743075303992791894678365081073751090856890699670264944660505661005721329418704894811876763387214797153136640402857466141249738866805572854174626638024261136306336891220888532563152854662092266441236854275045809790778821553044763210447813082051819422086801043838719981035230101487252133710736927768451212017102472492570029385646363633175491752079749938604191900413394426255196678976381755501974773257395235747215476017190811350044838681077477000624864466485581028230180964155543721362314276932650428822212144474241084153153080310540806769239062433042320246761986151062610247431978474939592419791563135793197915123689227396839155981345680218804875387111283333103519815842024917408711172584181342737609008480437979989626603771796021725617838082390923056801948359831288550286196225952471129924150897216864241213555931244712256654760734399652228195657718808240399098758526411987980620075111917301601275846862895080523516293996944413866842844950482367352441894642171198222066375357738797347419253058390786653688312982522872006019219767554167189750220468495429704297844644256251338145065468670319663535176777882476930162175072159006422133560359360872020165905942924872433186713845557718342244375526625848009320116509189068813932079552029279530725437406639132441010456716198163777372770052740280299161599018381394646924097928180823329972203909808491030501821021741346116494321679886992777491600017863743479695808272787058352186800217880217084697889527423164463141931706831351338036005748341205567194352785515090589567101475753175803368913813622467887372848337138833434940762571294189012012188901227499389037693339741951547295363183359365696817199380528492414711414966080143900042685846571081856667881501768265093194339277680088274249861224571260241341537995673716180407492039519285506674334072968141697811679173774735485788197745353901581961704807631118249583175335312094941758129554886036171480318261007459800599234917606736768167862375709706026105759588869975088056624726202439665723474721723843220049509545899057544932675229124543211369522940568091434688070807107201095788112157128153916674605873896461200304942585687568712089212741296334818019574461320584162276063736319083831212157040758645174664997962043852027564186312260085107338826016138180920930882629328611259299022088550434468045519041764982039459602161633980761234390343431786101364346351573567000044428035932038500971729950143973470132630766957383091959964664954261620821931303857898208238716991030087701906976312121097632041176777040400675849106056955725095551659504940901484616076001960304830422639948450648330630877056576393501438349995718874698065129740175901773280230634923189876858302604184100212119096476705792211406107827532504724357280741150666185653181506847272872149176994887540149246973806338832763262890823920758611807125277982996956279431067604097935005404584354881437681777352034530007646190960215945866772002397426146032186891767344529662019776319877051071047752254427156146113023642773032547119881274365236308123075222332900335571573188255280213651041955629311353561407880472183024100632956062934725070083709476023117814028503034925901265523899562800478077126294220316406394908292883497717542016708190515958116950210162794053958249579025417238713456905142682323954453048675912412949941253163152546934862080155558344081289216538719640762848422730786144399901407890099140059641508434878647897103381915724174606674934769695448093818300879195744050103945474466049412668551667249879594446390328273251863729846458528757194643128464027771843497719069807094466037286531536875147060965595909883452382871896839047951116078524319126868492005902635358579444282128037553202910876209862582562030950265575988571803697292659918035339543302056377868921030638084999756214527066207335659611862973222312679290694412754326124702365423979393488586801364238387602842640104772336557323137753713482344957395389041589639732938335776353566302970407106346905288973031364921918852162351066881237406268768209935397252807415363182012298912375164946509522111886357155712544663275069063266600241390943320116633356878870539096317279421345943252060679194375661735695773076981681790383316344556320117382157370980887738372609734411114030688287085589886134974319714812618379750962202703455408173539437967066885240361178492349345185692402462066613294279975060475965170544832715652021905783713361869697129268377344596387694623837218467380310986990740237241800050758441279897476816681144525790521317445710459136174675819444757123645408406331544064966683116534442047472341550264141268986310568627473045192136676186010587014714297074805005619872418502171195743506503997946526761226138929670732245488157403575460414575863345214905697429691770095565549994588462331733342820730646986932228715170242868629492065390537977740938806055606398859677840785007396375409576630470115836232230014272498188480017217011573900035851749377518771924132853278878165807984186749817574956363814157983407197968876620866339534365266054654141657038867621935225538603857763257776028286102213615364336650082041881758312552248203935775420225990676404675295766151108912882771287793407292647843688794481250760485580973937820006592911682433279805803534192638238652173670799896698229198767680458998676773069668853365300045421469502274247429135930126014957844912625745514005143152843690054216018811094530822672517005801477478318972389617500346613990660066760165629093730585958882863894769951868335056821701055816901029727076090609002844270957497514908677324372754365082563684619039324379441341801255634832980351341803064126971746603922299601285683373737850313701012169071886430149696880504315908985377161002843407756376009513114390412229840263899631792210742757954973464310980164270508559104607413542906258806964592729560224901841323068684035266986543131587057425599811832828120999331110809841236308578637334088653289380488434948473175418623299210044905007856072561961555482764038276747404206164878460068858157036706137986290863344825403516953136137209190498492733290975145478002488462527141480741468334632891328721371229258235578257223544392210975106303868886095951730606211063182475543131530203817362991040629354748229966008686116853099861347551049634023521674242437729992542053287127906875657029465204257434668986023492476609938644349501581604140398509480806118335137503688590882259192171202619172973159996169718825762353591661570389827784361209871124921895691170203933461837474849625705818028340189287122122637993622669935880279245636152340477825698862732941293353170576402726767885204746797313652519546455987086234348019495018932517586535049082554240281845423698629195754442806735319717139161854144239737137228662015352834597475256953356775619594662164706989768178690247946161179732336944291496475963550949505265165996464767143668716146203853892279132814696790379472002104223326145999232658351180029108250265905492671378093224418830232057607065104680284868411829297164120702634856879806503341591103110728556807096422905963815170291925593839751690128360939635561919579389642467490741375766708553380398220218393744532521246479830196092287132944749279214117783529891309313994218582800794184342597817540890552136293629186171114883621293139885154301632483738133622892934673732259872395743763428474016756439475501197906214816430256660175280891394394806206625641432984232804165914903795670601091950611690041562519766890013624152866941005739015484692686415748269992158928171769657517703312131775865062991429157319824801641172614852084684793298183279584533706025159902368565937010567492084012745755071001376395162856508819790740590988111026925010358954894155593396625171344183307853401112551533834225213183187974745998005156243277478524653229011748251161267568489614888175310156893217922011697390903807196676002930816552766340613662257482231357947765183420493488505618825785036784772311569028052052105140517649432093542360666988531943789864193168894135869338963207250760177426768148145873815488231165748484059157300369347711180016857328176075620779907763747959328742417865235491483319091867395397825568956923132420224826928824862526235183691741130936758636315499358253144223192234887980320574398471175504836913406542454825955751828281536301798798925480049457786744140235589282362177493103279564592091513690606388306533551077772085300606272626078467519114147432081715938778837570542770561454715683090365785389748225281218210720752880383196773582652113664364541416156885720460105042400456930595303488499733621616432289693580139475054055474212927822077315810357486342236044948134807455007893025336641181176241742307771915851268427891312958520016040292890377318250758638863878916686075949849924188899846131916521385354742413471733454993397723826663225585029913785712147249438013293475646463467010433953456216992152625590358528603330266042520828817329033017974117368359036639849530478144861830516534333073150787905304892680301739931218327707439741543928038273414565503128276115383580348134089896892275436070502994272333692028493093227318561823927946557962873724465372629109167866143913665385791605464420452267672549333546455727590639941554044219685261033664495901635503641343940843387556723489426258481383982176474189337212285916083676808647877796268151238036422551941154389365447925415229824194809367616865712531126220430254237041479599757879078591019438654687464068452260994639843119380442446712572090914880182535849555331532281547808916814401975664096970099044977986060158256443323336092570293450941097752231681597762733572128964845386104908555317641208681640754235541912720317685774044466630174351959720718294425893199515302485443376927632208423806725764659677310106924343260185840197003381182606661946708907749709817877865830888602412942613013905846189518472292405799531956386906900081154104737284652689473194730679939328744595582660033787155474497319154047186535060792843227684296367527570077063069847199659770732199389249739211789456374242910399576942158039863980366507541208409261007248507317809097231292446101674845670645875513745438177182832265295640213647684234928229746387004595506925375758195947473318205923195399970161356777506174776438335758264985395872493796830438092680041935724525410559911402409034643131358098840198137568814354216336381713675782872387547827329973587831978047731401624763553568264895445172846849272125816152977200164153966738043481806970423963150670676512358262451415188423250070451642851126453142045216909188700102863554199938910303533345833182329575217159541364507866902465155545814425341212419131621298504682539674383801941256918934193895246635327894296797152812705943222051069623698215440993312892478030967761864595079504048633583349257053223552764048005904233359932522271910733317402618456118390463189550589605746747325691476251313812890589346330209623874101156552677128548291948011766005599011966814248810406795267458084831399236145659946137162374125590902220245876375936159526786824658708156325766094966860221676031179922105488988074564355935140758955134052800438223519289714417424676208954337563001458289873253022393079912568286842819973148837864303170522501298712230742380751811116164197025639765045515329991027320258528506063665544796207355442263370296257131705292005048616436398579473313510015278975866682042288516602906229050315477646807516549843086559945292974955491645734017229197258551278563507373651718646453482986760204663420259530534102157704460325971086800442994430942330854583148250254634892628322068027858122553121963096770458884381179618467452344989178449431380380675788844582898913288771572296479249319817415867360489658100042267043507655822950455673297572676522523454745373112450511910244356532375947429130851180185123242023559962790176252419768315415647832124799374293459469543767443102215935558861824667889524893277025228244148063353527823142350256504813299025957923633436983338955644344534805479724027345803663834678651566272664363271103117762644014841151609765518729648013132583413152675273215333297896630295809185440979815859863956823815871202827368114817243497446999393232260947627150098675947076314273080653456551207582312774469203506220816248675086183500934485371110742997990872137504876139037973296075256413016224282949756631162388741159167248460249731296492344086585356071601636691215229539339448627001457173953030249545616853769544613842784958789902225887263385346354989073976575603885622730539189893513517951216976865259608978550629057018259683071789634312564764049032115203234386358333976782449723974497153963806949635138717071200597310360766126094040742066475875607293123667821989825599662367974800282053977614170125059849515853450427877882657873355263295154477658045994769909018120407897800112582932401333451866333535292618241141569261215723989996402048573034137810997995243976807072711254996365645964587373427526067354464367922483447856111509418214733615324139356589223477250490718140415920670227390518044325130382499540821698613498127315393715105515290152488391327546082769578581764573722388464635104145517007780547668429132543294990075192305300639349535856088182601404714584542430430043882358130299678499282530831014320850962989021518371852660643947299459343853339924518849916185702929928729916251413483952122984486542456417357406132844835291200328762617013871221509050783229348343934389989627439686315881687769101052207979313792275608236183868765392548369870712290623423654058384878202355472338910810754023840384127723232603307297391728748526541408193712247442773736820598346768278438787872696700516695352720051380983985861598741417649821486670066681249615523614062144967300086730523343925177543753689281386493989069028301958007580641438771830671441453231134364368506510207826581488513893467954654609958296512288198026987078308430683991806939769577681349877625101142555732820655560936141848299030897566901358562269492617065302992034096245729601267429250230819425525491161003718891257002464748375743809972288098387992146547367783630099580386517735667764188141425571396254299159866765754667610362121163671405016064028669302205357984929216178813819502659463600217604160226438542306171530300278100454513265661744078158618869843713656262581703553451608577325688442572171754679418554110214267893749557289965419144653220158838585509140548534954076411780990342409616497910215817063320898185351698761460277416801449330763010347317073067182640187612554978897162362719575367157130384367736459763385052453510465668192893736665970219925005725214999317733098463500835043065746371043838041949971026991940702601233344905297365076143317101059110055669031759958490931613882960545012891581543902731555998481754177373103866352752484667119647422942236174288605145927762443264559459650942819180232875572977340878610398342327499681972022950997939769565423072023722187000782070994755417268280092030541377159798234726333843461788478100322269062529593926389789164674488642545212811968052445682211897778468346663599579423738445364524217135951207086090274468489180228614964862034891033477031447595169417065239883768634014345214174085806482632954051355044982477925242552115188693049022875819603546502016175367894568309473224422420705336548302693220237023412480775738763421413293772321233423838560688779646127938157735637892861900292617093366157165941941381742078742436706921537954150118033019595828783551028382655674582300861365597928006447403545912517682562519805197854177071486483592051994995881682951360593290792922042587107298877737907368661632604353288457027721037877791690185275563192718641589004268335872912380320148276129498546844793328108028655232375631823859204649080903381166083345200202194630797242228751861168184097325280253080267573718035380631152515499069717111493961284292594313420311006894845438874717536815470362620993624792060375699716149260138271291918213844094768006004157518051900984135508348871128383589591449388219791109216254199586090055032377629359240892720781212043363896251849805054135682808994647429936736398642914340697372928098279990197765317356071416098995365373668127377779398026549649852583059520823731242891475477863655767851667796486374034993268617914291123857070725409916111872509079770349402634365515817356416512412211165566287374231631408578636432665100817369375987196852261221407879337722274893925453148838164522862300154142665737019485674004074161415343169890506851143957287072333982093128954554898763977996522313298128868985529988958235093797583320144316523025234848926659428318425631953010930480016665079712079194438682661247346531935837996019511184273146745404667227745459441110833987735686734437865177328038931139129666895384184973299881443741212425796039895553640762520352364894155689764708350483492386548945903962230847232403177514928630760994907189532166432350156313031764922988413401374663170456633736380767679890418697880578935900711780770783231950198567171555488742453155103798193888029230434332160238044324734901285155042872235706716304162857786172198646945744138439785966803749730921589181901543898372705269659870734233485352657407200057463636915500873782348582851360320118077279428372719238732773456380009774220117775298312209499498111826923176084202601095136485753066931396400276989530567307332841251212672386752266656089265356091953638379782706036689011562408078308977297915476097608206488360131880263724141391914842569030858874287042232094931697826513821419945446735086616749149023467516585994972765491080290966910852834612660368900456227805471577433988775011585301660981335246746597731890711218180029544078298310136627645304872488444654670151677194277302422540841300036866867554195804097068977419912209569694676899007656219906100403701564595134894502208418321856510475312011594494620215358492573920370745695465384825282556754914239165551784026355670444494988410255747407102616904633950553833158564462221675378593230359782693191685642976923764614458844775424188948882242362553939353186509304612414073617919786174105506000626938755660183245364556169071780489613882761635572327198623784158573397779038722427678329273932683810546516258721600473429542358087360343773943438622200161394260576730979310063862773114746798080943139812199594735310344354722271625139608639194801615976178626589254220213794029729637980098968874572313931333766333394309285653576769646604394009073664017581629411325114348093507535349440997800688036004786134193008303384673137815217718220337936191955161448446658075596810108513996165451359090230970686563796602800783475861336579760652932770835196715790680996470597003471052514085173187412685771957573266511913796378290423570604149001788260429047434583165229925195588311056343034162033845574223254721452024720946519223026263856947337964546088760832949734631844940578306408474050091443080136522074209146755894961278466701502368902126459999686768988878670680644986713627800133307830363105592285283376082666654842114597290576909745035289437540698651062439519677591807271616088388321679690635823758321398660120291278515403113641655768885277658436506810961217571964147928471349974536089027111637167057502068736345209535932979388560622881237958673062737841712103743436787966333620666368271861847096585648671019867928085104190585236430398892566405298648422066731621598686214637602833687958769951283875653710852876210996367785023568508834973662697141947856564452060138735828079363227921827164384285326290646027633778695223915789286300301429795824460088388777885810633564540705269118267888898495589920327115340449868266815924807109863835894083178032580234179369950228836107958835722300304717546335253168588304720032087596625569466566800312606724888420126457005671236434825052894228177530867221788819084357054156725103131277312999116894392399643591392112428595498285627227868812424098092827849273165946069668008181394048243501466380841928066335878916470728428620243667474767612114369157966639968301395410801095552454780035068791077154140531359158459354320098168119157913203108681865832909816737661205492875070216465456095294604647122999328563926391906268188143611848149180731529621438989416801304548126774763378643224082013090726849411786906562239866206511158619112449807448040392826846347413522637234885910150803441753297535314066549567899556651081216042088583757854564520294843282102586691529877583447220555350120039218251327993091820917542051744971251116081944725927412647840216117239150912317306221724630884504815678292389757378652111832882357659282678039672050880746734684022822443194800722532176683898821409830913948153882493643503607341140130413899778993679762419585972763748833479805328709298775211880150160169795631273358782635233657851753482637279006200596837896421856331346072777667970554497989521865809752042214382499102748788614525094481192840108679769130416712035890858650413403012743270727504806336444368341877909572159580104070961132053045674172500946298699729572520629859989733671693963696532884507186010538473576700289215519167935779208968947134796249165411542702560603001242904479949924564468864887546877594734400270491600960640018963270436912595673611865850270132726577313021500106528268158361224845184055929490687900105291481851475083096144356936997372827012490997740147786555143146928945498353060810940009862941093711505483382469581531849147996607816410418888655224730350159245890080091470274036568807640514647772835686380067012301238128687212136749454405930356249848662557420415966412443740252660996206188017695026844710851221537858495271728950643033598665324176741981142972992326156376851083327192711076444555178527165401782171535413560872907474478679450826316349189558519321814897799881051476002128110146027051753942342505740653802784572781230120388551827397830574642342773053445750850609940251223154977627539403388450186030666973603735970416207411626739391037776128656313373765507493664536614642056900305592116044848323798798661804531913946137237904864606354021565075675023319196678596485088989396799862108470593847606895389717381597327676712672561780489413617775759092135890509626090992817237444070654799827318073719818316711368716915071587440918297765586065919434155433160124177442212425187456460990286887714284224959409118395320226265160119357698294658154841908805329475055274244406955449311733116901552403459407793262130999706213972296738753785042535792570793742523861328360967526473868313275765984893183393454942282977238332490088193912436624435422939552640022762769442907454266962791597419053574771838102775823593965589324804103488019222776755602439021588883893081070830515774591905030419129273915842716820579534742233621985992810578245961084735745724098440320560772429748622213065767931639388824419629618170596724321938997660534553556214978440260446189804765219884798112858782388597683105986962224001183410647684090852102579161629396282474072275461182754983770128859975121648532866869267711435415215033236135880912055588492414873162279202146767494034820146448986175459946276712183801588808882150925493009148507594723628326066325127408457738713916696627973540594824389138917547413369687677320060184442341158670413085878297330902773830077374440655095162223908170931141338638921553972381098955517849095140553767609775435802331338203713898799092807095203449421381152412881395639412168785041186249984734205731248605659952436761982975960888934385735325176342506925545932847079471526862439722494213711268659826632428691687904449851976919662004349471985829839620319331141544538781792530994940113742235114258378673940632624326178833257041889674863745814596219275729145690099733984211091100089868482618548300740075689220580455717061276383016698384996313858566745088450827368978480726489386918089863962849962561970018295331768353954425907642609162343369435539584971006772902912156266225323414344400766250108344525137095358825029683803780869475101297145969103995438582153374092745199592268861734083205472732822100396289061426501079208576845947797466281093130947479760431750502077508506525681125573211696453503570604337885046239108242480186798144414355125640259038129776068033367679500461394971505660586354104249108931090208020613351471492413269678955103161011221197057317178698276579634850053503816615078671327530323502922492848862300215602095039955900977134933572591371362515328276150796406725166210540252662837726361334139893518910553861826307911345376542040038155094468706026504081046746014744982627709570753505358539519229337803233576014356875985410740907034549287806790923709440715784709269687740426677369781376805932527282735128722613686793500044039735923198236212991838901714825697792200032179157712417952920988487036083697649071413065951169932701714523668841450425882015718906363909746275086724488336134453383875283874618621059470165027656585719427018824245286390913084135044012933514304004874159550368777771916921725779749638698909329137190614691780493188504269496151040613185541050311060736850289576318210177909509418470086629165058208385664915861304933132888930378085589187722260925292444242628294745603911829672819023957699849360960571443117913167464846413343199482795042193978714500162642426234248678591070161913369874284605306233206918155886453411268722714908921436398681930255861453350900490889651458499909347933015740346917240284742662534297950840537859502553685396220245547382007171808777129139732369529925698221281819533914363536299611027977450147235853806065084938392350767220632249813689983254009308820499573208447681877313793487253110219604234184577897063063087178722994408460601880831291716289006920775722348167024632977241054708190402942102114562777565949091249901697532761166922268435365729488051575908267516718589096037350246045732046584133109721949373412120600027833464083061308385380298667109512807772647755237721448655130934974799513271618487248759281875206585307774677524604919237691467208074541063933430223155047158038161164600342559793116809300586436222609628840724681801853254484563820041776719083717996581353712831731454445614715033081646051748424752755064018100375412631613411267611283368803888873115078897413512673581535308062215325574492223647724666914718667958479078460499478493243127834888889353600768970894736398069916529831726943997476164374470221149402516156399803964662432880799569302320420483064318733042986751359147330309177843402524689241010937660280866162492462519829324695662658121442555885461430311245505316218375135457635806200335182489774442325726915211709506006840916246469220991538036430008175285206098991922536364233380674907900256131184120738631970122892824555662499761694328604187705402305023540649054727854290129642116057422527325707869868582970305225177887364041670435527626951414040099517338765825378351389006138806966430213631294675768251578636418924561460805515329291528603013725091246820367148324320288949447639491555313916852460740327943313816043457286548566092659918730558361637845495716805109935542208213362371831971345118542056290165139386784744729583962798874437700708464796791351662197349313446674988745027993242952925131421259880357659089695993250560287008541836260644022507170715124296510971351942808798193289102875132110264075461118826908804166254994488723076593151318370622283446350900514851892102960867757180689223224547145132169179878795503409090006786963517944182436748739941913230831031757895156015976568441305238777910336933541884964379799137655086406567446562040999313689755353905985592818455395780615880245334801173260954912692255786282426658118615577644737953797223572733699146424290684023653684767697327547863917182948388046547321514986640706157331961808511181983044511456317583870367265423438763847789012723949263876237141304230398356363934977554676148634568174344895003311578078575154608069922169984871391398514045952913279241003027980918649307517147488228691468955795733208636136015133916347358588974866641224920873295501388213993341346729169943609882396227554725668940618993607829097657908535497374223731383743285255216489624266023763861719320142930406201578031720387810244940839936077907278321839763026868221122554998107327258463850493194515989652399161195440135612386676111623695745341370147376772685442445807935339929552893224976900505071974248131472164699262539724689376194750863638528620000334354672792752191467397378232415843498879852076553473830765276216801961010883446846330168321218291753316546734034004739928270953267633828062618997387905775613137286145006456762002790660581333055360837730555397124906395682040007141554456393643201228972838102993095068226461435202877820953021947672820300448259973601572598177394892465164782596601804211269975106822293640779903418750682388502584852110391715775761660425701656017771962644300981058965968125112961371346669190570917364637635412827988207844711796349079053651561603000077132066792219639811824667547689302887685346351608509317616488701307298636308105910219245575689314493784513601105573035912369235728840314368401352487083708868821467423908671583526712891535499219376466012807689564142055082395055205928810773956820854091885565838821275721020847066979808030486052489142077499337229226405415177225696114428160250884453438584977748008618463674565370586908816032789528049130295273351466989448511045056590896176755583335606688271256851493305163084755903959426290589007882646888392349697235674962628336741907530265575548098851229184907655791284282706342389454550313296786689960080162198836616932608975214454627250766477543051431801102069474922006772808385384555630669798033786510792199819572760223313478041798894786821319618902447853843782707800781864779057853617584292711870298416396169932230826547561950613504929437905211166901602077482670101539638972077293853477201779964467025652280043231909153184923538987194239143070038708345646903493872344834154865234585167008102967751553645789976408502244224328319194972337874707348451487359774182213109541593290369479476087943764487020288967517939586709729540406169872143710693701731129970281455077588780985592507320446118859798739632657913567377793521199858407308688980939852876509497677559175418483220360508223192011334323505938315880581136756286065679878107489480291507756166499245388610517287380916718283915136954754240415382103412850381119076780530214127400428663527022052345630932227080628267609677050674279510716151071186575044377625998234548634123810870174851915674393290471233908491267291059375060361880694676237823327994491649808613089970514747103651439346202724436043822623332488908195633261582895643066571402256463802845542355680627258203800783168490816344628336491230758504202789066052966655927776146143647962451587466521217743589201767743279784725422884424951951136871154506988316156965769733881187885242761798424437023540887148460228798469992001467339281548282180020715996363438569435801064707650017600977940460804660058155806018534318242900679780691438595325001836310278885894677059206333220006042772147739587666403831828753570604281901602546011519539078958285287399034027252533940603597790926780765715328572333071108663838762813631473003041500488231369995610755128684579824469110130594390579241279347436344749089282252270134323171837423472765803544287878983888019306229439096184066803330194122209133520907018556532903006488810890061057364505290279761180591693494096054583802960307092991264931049644321714280875626134199017586416716269732086616881745484249894912894033133061943920924334575487697816468612180701678830965804866934313823811272856729332510275613007809600537935243103152630772999439004882758436047708177565349436488862226446818919001065503526371546909902113816422983036714975365300265587815048774257625361457081425367737681287738216929881099115717289364330171214120295719044852013724399922375103262375170412316531438039271646844051978329430159524454761176426725862134175992703473605748017730398313851495571069671828021645020271159593728557781041688590156262280978641209327249879722464789518591849662502212533399678766646254567861745714973818810568572424679029468575070263000754382721851049358307345591353015048423252413710247624333116286654132663252913927498350058323803618580929890439566561058169870432734004333624496567678363574938980353850739130217378711209509792643615585339769248077970554440366520770381753507974745649596914304074589831252743546395231583274093718745535484983629625053718804187093912992025827608255522420759872315761497009352255616865373459752052624199229511076555952823393198958341512873072509717383808376138001659844398736915667873720776987862778442184879613063046381340302216579318764515714191191242256894392642917657882462459210449666793922890441736291247502435896280192379006524721953008962884133925588663943570550258993405704647514912435324867650044442234212917732976189421409674670944910410720218771853552479227059464569135442933121336567609812318305423500538724834770723916275155960474440806037009416454854321378595793004420272495531332192960835490098325681349701425288690190756422746810669928285711740870509968023474437364916118419700609038592782741797532832403821856054915175092080394276547976873961011804120788329597348510354634321696373564124717215265844420965219985565195357577437040440777746037422954126745341899160605135796755910631597278223168968422047323949069977245218890312956438108450903162637350440985102087271984154586110934587743877717552343477160375731856171049227661590723331641216299437427912448409285884906096074393044498550320084628271944997789832762454805969689597417192764285852919218358355956238881549550548088351256144736394264681189715917522950038623141816174673806816241819085122354102450909697722465262091972937124515660823002794497010306019948695686867728632514786036105206403290163936240712225545172295630613627944405903122675539141528075518655748199201241540487058351413817998496919878125537551896419346996864858525077858519093541937127329372670579876362451001412941935496433055203897704644260640192111122619528911904691404356740663449820327824726262295257920481867585472741094278856321680862446644101106105050083991165338140789085642832463728292781367536152930433501324849316635390813121466791809559798986866436726951403180231656993730657474654656919517981284940620336958270863430057258748920742670555283020405221088039773599521574202459415982997561287729404255113337784169465219864652474660616624738559862328699536702497362609380948737400551831336043532104490314434273876170129165507142786942863283695880388554770615058033664562179432478194274517915757824974828120833509720038872846648673534862663531345698544011502640557074140257420326892791810270730594235123709404575651678363479088222090534534813526790841541910840594916321394013417811656446353120487782556188822534787734384821164693510386145267280992952545026914541262428101896094204907025478633815874627182692970465463429545968037640845197901557307276181577442004208391056232006392409123968406083028478044287175422308737275863602967038844750260215573423210200600350951493116434313035295328836315092243597687270565114058427816320520047177091073631861894480123649573917923707221642791406501414793781249760134238571639506645115259847068425924456207279974270184577947238179404148835588351812970053060901492130896646997760673856760815608848463690647957536082186705453448337270451565165643384021803727514131758574829583476282018418492383535993760218026627107805485202712315845698743383085111207507967519644719186483865462199741455736982304297803057322437590480818991056767085666492278805964298718999326029223661965005625829219886052478631128291423870246463825568486824756594396139110741291955204355013010979334003273882405297109145404725223788133945746584398177937195649900179895165345515650563031156242063727087256608692179849916837341422567195244748729403854417323385732635113752814152711265632325417153905892906416449929065149619994376874397855723513632961035752753364751607864618861940644228539759332253323688212836163856893026274453954565379665587017200472882627661212529934250560838719293116780382051411254681495909689642856950159422884627144304983035066116860989034196928117488504623248988906945881384533403218743365806388890741274089017593302709286412244167438860295411323050396593280701290562241367219039893778747322808995799082807982889907310130751131341515466314839266105568743650801289959189085422151317716303954772790462705719730728739547729215515391541827977683317293287762615141774282652707867560336472104282202302101895305084783202838057729779167834553574052721811498900627199431933710879026948428380566285950479910072831167487275726055304495180503886517389223763585119507429098178176858118136165423705582933983273452890927612271322150122970374241609885734806194001884227071728031548204041185247938863608021555168399494666946311313732046340481819576462519908057861887459563931272897500031595797868208316319024066417730516331011000769076675356620250860710790795990866352696415485801587206609826820891722556965682475566677548091295298281564292964477347454003048322768652083677392783674764433540612131435911027685928360513762013125441656993160301675890912776415737797154352138728511858873146658962268499229104179761066239034305045170857961991300428619455807961648064938402236503025568602255485625321133787004072123826902699580610414158119848778797127188735696850125927634399035600309011221030943917222734516620829466371193479022894309529070924513235437965921671822383949846606243941881129836050858031858182609608762980940691314730154833486620096778176103919779728233752292188879600427035004491097283835875750532008030933813301263732276383879570887680866842451679673529754245103221064995317645055630258412813484924325539921007265442563579820119806861161741574426562451007571034274027672831266913509165558888655278938109649981878484159045481365227594899937257131728552265879017005043461504567784735898344196716690070362177044321060516941069154606963750042280676158891429149946909900179031121939463271912156299053917160777649962185937105385372454976445528597035549205278507159141146491746901899509872206919463057654141107760275539309617576630314151176826172412419843897920526485194164250870283317807335477275019691714112420699519265141180157032919380803179102483325389245464912983883629124834289899557786034927878300193941035413772216907830756155065325496216057326252038284167620523637951615105755128279457972916702463626229690461905286457379411603205123739242459146611285407010663169672934629731985499145950783698692668637943028979444621048882569174318789879781847348491960058898589976170542826293292793073004182912820618355758026948179797218778938424439285086279608683065989764874846718949247125977597499056110969244497268270883533497517504221497717207956305137376539241883838417509293704997117403385187387806043291168515635041257412675459031958621455437193373973647243474267727420102118138904989823387556035632583928591487172448466507441002361318583953845019540373325334180292524675051908943129891633346997672488108232177626076737452037463725602594995896461700231111152402180789559467147386959202802077583306093335961576148543653519321668641941803623583101612544293165151752448659501143260436726256021851009044348584420644753801830327597634624500080863197135385868231071161899092474023380742921428845762654291454178763711905710770628188767252836064880592392441305403911517676588910724205735994431296841306809637047888241738890984012270409030498531901855287180722222466797246217965063494726249869127184318299777926511613623469847916168981390685383267046407110383668577458276617356414961688792875648084467821187557398370854256758373710158773317594671607587418664359306316972175256315208529827327007522261975651512720583974502628060936058463665108971103255499620363038741319402381645290979929955299418742175537753955832330178308554373805301335135198730157957867317305997769358212966627735590292394006472850395722592963186892311405354553835660604026480030982982178667663032145364943389314892442842732721601117087431203596972799286894010283159737566466503358827051840646581170825954974905850171964118022391378895099948597189978057750513637989509750905624992836341977654781789002091560740679363483573733646450310548843462364957120127135821531566032519833975825683277049609840391321471136002046746589973563463735974062694329221648732347944129804870304131168961939411585606734763517400349762341644721202259160440175098501546918791467497788661752025212331012868134654307690323293095432149059832362510882786125068048410500991798538584362486343965513433707305637094586755659646594905956114371375862389702163591140569146169511613638616918869322069955376728567515650831969086404942151463148056436726347041738101432653434560287845578225910549015793320898771455365026382560754810461617867512666550964443555768944144247989300547635172713960603122373359930805118894791664401743289144319451321609152501731397416651656284730884956119448758206342568832845769156019802540923015608671732522824534186857993097462685625219823245453452056358688643779556103897416979068872054061585435007136853790305036230252133982797430151552261761592813604609544126004537135518484913071807625683806375910216232398339918498463152674356027000738300602126384820188559593377204216708319341130558453434579753432052539744550348061793968625803605176229642524119390411887219656929736994659276843694061227104966259164092348172491564911212028497994541942976269227974828462266650304957841839104805625436355635374530466903717421195978816001812453728900002899881079999554596627252661428989309336000420560503700028619955005009001251763934009764146102816511636238896257544456033565131692684375384218560686167732288439240869974079364528095243334242608408999903301875833421762204789220238799596152099087858802517175376561484178122291777977957836125936962220393701316915628003944948830890049084936609509475777144061871357759228194085194849418819010094308027676670201560879487841844394814289118477565364785813736400086421279367996635766013162864706250006439800127312534927747157275226401674650927533469748871605117801467475997712258655831001650097005965556336735165033947041804911588666786618199401045046992154704287611266218016732166960691996631063931040311671195560204163767857369414241244900246042444101361369429805744325306941780039924859733226493338170492181625263306148537948207130246364933867727777014062143303881229138837958803840945600813514103809756402608917294427838289080429279976093526810098777382308621614149232540281795366239496355942183447702752992641543300496997766706981731073039693883403483717154212356604287711449804456660500663888195933761062147046177541008734244274437747860914742843352124270421271850765872445458647778319138001549767192721433502501923845549594360733183075695666060703411891129439007611024622316653545509056803505345268270601639294897641292978883653537322302952735982224118663327233304608449433187591300802565324026826077129095833895688755685408714533132827681769997821520384992532713807987832448413207463315856822941357340805319415915880650290143304383147997649152188442254342529437763605538686607133217180408797265434607141406625690560015216578059907153356877195466162919437769666231328578763013325720654451379974728047516331235104695564054820236145340548663291971117332554043179673968735063996144345398564161125174586958618079528014476772863317278371899496140544653194295494761351810273244287666611446538233647518399478430097377032849464995640891807105559953069511794217037232071316411448689771841885207296497023080065159369042908257992623078775342728356460076582477528806069737016494622975871434031243712382113220707236148665945448590662218780408800668852539689732438533740614426924813993808242856574382601412037750740914943307551791491518668358086662517711273068477434408835270523227276621053590336522573676341662550212487077641029711714938889147997928984137502532596364362981934522878559615457969679383861056005966677012670622198576678762642630242792249971054087480919523979215521581762083040858650797656866707185836421427811909301040324310354681262190473310681917095331381856524174607696611319547736362343197839509148927599452253373885984256547629155049143172012903616552578001805566421176043596701672965188209759638260609325073232259991502515458156114345570131799472856369212729175033871212248592307366770799438782434871218559173521081593055133378581590717555091668618427506360413081666245320041722230033073956208318512751960387908483272385348711945666917430501960805632532159603314959305829772830995732406151866160058967076251957828105204856664687785762833039231275192593849614847108047752498872143443499785347671185237721160220186525248137527656333708851823537390421363830772478454846580767697575078947217334720288144311950726789024214934955195245316845946335723840404213591465682105924339021430661930808066315546909821088701628839621712766224910823165284936313612455545306249182761910964517485942338953954070021516621916368214432934909084514499031996057814195438046057232688294917291837866014369117090245028152175143424647188624849619145832402121414615785706880021958471316456919545055945028355277660246315001124362307253475469487393856334769113689109421072951867399811267006503220474578818315737458858184585514000621419258822925063986835419839080546919218082192839117521027716846784690979714342981085139970219954690848920031406874668728354798091765369916902167568683152432662302112024469598347259940828112508082574841333135586521555540579801706578616253189340153396615598003751721014889579549421866021841101662738888772495183005889151988418629072987924483809612788456756172300219455323867351567844620834588671963887790846601009619936067905620863867199168063754184139560873134237627539589166970971148477172728770907974243034775362444699979701663185835540435175345991977947076130953680829506920455803505619123710881604682697743493998497944989876623528871550142236640307564530690849398056328711207763535653662164235420574509013957678386636461445687991460744674944744437554090892726876776053863343702651452872731693865223360080123038114304954275597345591012435025135123508913755844332764937648463129269129105609088177598858282272163091291134371040274369433687360881165813379372351115326201446327180865346160339408417604119321675206160816875931603080754106045723121431523773513708245903599796119818051636963942043118622643644932898962800945648580213690499327510646411862887272923238148437745700214943117765232872658474600407028858853045099190835370777934082544300431712746217605861672648939501452955083812114777907284319962300516350659711041586769453548848640468839205356117038469191926245424057521131468943546188063295581127199627066091951124122531220849925735515877629102981989655541374496069284056944864206984930099107869897556114583732768811963895777936752887971437112012501684510412618079876004454727573564490599495784989700859439582446294157402662314941986645664930424809878072739536037837651384161226739874422998457797608226516434781446410084060331871357489688340681343962599471533111098194218510057027994295475580015650287525871917645588857959903188449909733311674725833110437148846353326347535517759204029394979523432065937043364469193701619717521819284985287160322825007759322067517031712733926779772820630067709647464271693836862050455760584135509209166505703452658385335605874667682047408609184939093544621440125346620720170033504928730967735984589061338102207113472264263751290621195890129330018423357461828015151744040158381477326470689821052453776217440980531680017036438740257774718504782195534488732185863963255264797223022386014581220743188567553171535257273276676998537393241157151534227520325919307728599890142569644778703922442594658305599068887617299161630055062595036310313115330317280930307222319725843260037168907701071749334739802783330995475253410487670794888154721261178730581077412393368456187264745293877806540029608434899928785609580788199104694059678993538043270353793480932749311574957806566745643426096041335007353050821953436117868611739563820820235910368256389908899045642042331916915521676025055361976799183481636588235088828777209527689643331863593521577107460132852460799709112665390469477938012063196421189012754577851921364495709817815668676935131582399710090703151974400860073384495944588913176080471860977114389046661375299362922506723703827985129397036932895247040540395703286373121554849208253982743647611277630004097508396513989804638004545721696862751951181898666864987802718652234469011747495481306121917637899155764473833309647154876964798876228075355542014386097851414796585953604405805328784828424240511782938046198402805858120269531605160822721195150045959424313404804388630208967884761496957660705893397372807144091794901240037472906298669578809347291330485854876637336568286324319929816079311644554990244186303259031755238407463736326373222402451230120663886468540736965303886941661266489069795390047843742384628447518436746798552102236177378510032979104332171416136052683714187030229958632381036137099333186918022073452758108130883216081279584243125005072700859405454128029084062722563862133933583514993291415708350128455780465467633831140934265956077889928278643358002581627495438347811965585099877573570884678969813698209648934739801014108548980420699496125326273706408549761883340489990970900083143035300807343052672492445465196546510998981683707865317775090446895561683193888468475155032012649645338454006799287601824307423388084036236076321444742966818187768109144346654701410056325051289128430918690644188583904696087860251518696016571856074357026546220200367331295470167444394633856455628338037763685648948992247973275438163592335167200252767995671038198500766421164143466214928277453155512777914659631527735572364409928159011267936046455031265521070547256607420785731606678767771760511221248353436119619735148465321984122948808424828752042168000493958246936324115166923291630919793051875850882057122769444189462782840461770537232501126815235454652006863906803044270914089276114664325136879876254439459531445938175161464515793582500384106024986611516398891888717737750465771007225287480343308149647311547833354645395863025907721596387645346983389268959786427391071270474753562835391859045395376139480976463847446015377531474911766743839245236981719902548444704264214821885365362422107567537544402713765346725919699083116448930806522359379757550218092312035980432264368376005860103877733149556315787216874954893013235150579784133387661591100858479657989219176363391156852748655651879869402776888575916500951991700093858906931400729547199589765632575282245125757507326465379384495058515205828677399324459522928625285612834829840029025755466503997916675413730083154904284780562682219632243532371673659741499580284927183597156008055083451120658279506803408048487230873285639151601455052158321248993685992521344029056829156376456123002309292803745519679724993681987936630279158677106980216724006701755273515831608078128186327702802294084889120135312564732608471875598930453018227461231258179524780297408047664281585299984767515381574079728579961222558274855101534375783660264339365745367301499355511375498333251994325872834616866733183710380809344502406266983229400694466545357119178174702600341179192688231089206046960349164094251837743239120940252648833912471201613877985476650842607872440200463878722818593691091252813910503949114787286092492703540032740662489801596957703992700929269909328715851051275809481571840842727017160568043517716063406381913892120453197876188224320254969339213724887491260919359871151672746313316802626557225141912703946909984237999349318795949592095649790579832959468215304316656300131456916840166395923326975641445890499956554401802455308854375924192609686635157093455306120798056451423740319294856465767735320187167218351078608408331889253366387521840074646435154260475867710327930519469536374917598660061005186546401058007076794136137291221682117393808902374878177694698682301301325631095262822114100999385470960193081014249469757538764991210180657599987156891617903246715295245414410394747677192085592451763263786332749795929674173813616382361171470741590967719957907937299158875703329249273264661024049625116302453019322258150701446516641568595941538902908779349928988676196133781768667080987665030327899948138028632728286238803742014824048547269912156387091296463501472050917944873348698495906886560411423556203842707062960678534176310260434878877870902054934579608004511249211024119591248098538525985608078186829853107877076902145559485143517681922216031650871378983177876372544759509148136032836966100201687966831634165236067037060705724076903915512705533166922986039266558104472326318109043588346261205143172783559571790099890847087452809439607125023651840829520136246040528023912560434290353948037780388951806069675663826879873052388037761378956134182121198892392810598160614710817874624747246131376079127642101714652612406945774505111848313826245076755135425126395152993812440099657722184908132990432160360380403012900207729982208888023710790850682877716806380737949756228153129279444337788868468468174871882536923721275199601465113604722831624280259103525818789622465193466488928216130146283336838425964066661901928611577774872757866834364711009560932197843060890524468824021547937766638515558231515905698342342234011464382460747417603904229120040485594942768642130397804473632370646024842275905240281888710662424704637895719701338685782265132560303001504271101010616782155362826808018970321967289382245340405893474181223519204068039395480502310077327539514027751200897748825212392747673956752008171077785317796012344919399716705254927636218843180764020287514792028424130760120708802120199902396873049364601380176784498036356027318062010444689987855019949864668132099043722135191954381488303403327966277078469571792681858764243951707918831609399520936057891014359744429898022978540704359381163018856206006812565503955911537773250162104667507417402988469589256177295184738486789220477355745295876327063829280339265320671002680732188304187701651752886125549136206026541943985867871447822474578414450453833722919785189483299752725164433913626484765010278144077337851698901026338461472407609277804574136070789388172463496947179040064377024412038681265083010374226791374208569511195013073030594019388941316363209632480013504601152120848737430877262366018523220610675240797490212530838638418303920278449299179168656228928717629271263670058563555088144754144267993175279446812811966641246265730990328254616726899688279551588339922644612597195550080303076622980201135453526475951880700742789645620297506651057751235217007600067037236257135721937132023328006202839644839721784537550903965848952181076242542523450793853314881250156389591350603947508293294264081799152904188923127415438754959240381785332134488997586522605401997563946550052558502507368641799899673338603045055513077038761633702432177521109224173517005209906203275840024297080637254118935908121494358613610855498439144486560377067870744153692773739140188825548411931593106812458262537184820819262213981362103607900944793369345675878023190388631171737631341284671727035013135459560402050461881298077131554201646450731543655048421296584340024745041811138713423256534858702075280910109356167820461198282232326800699539868286987099198265857662956206957086149637001802466841338573220494480872791415150612364825582393175708919274062245526800453323174010664631008877026308855267675319620031411754799831552009290005451428598133664739719746274237032801514262311362767314531826209700476533491017371618530300049144044120306216964826168758914961361727237692919017884396235264974538446866924867234982390690019131106471416415083042185717424733911642133278993612429907218807956563151298832078146710706563057096332377167219276531169985802532532521866940483507540551886382493762046065354362964168583942409396284322952456578374230580507847198409793528870872378274822395613578790833186964683893911859789510368266334262276136757774214063669624697743916951749923540675341680413077796224029281767742312956693548020195786119903646682666656669617808765836298846659307439797265154534875216316423544177755006670254353931552908308506284900403267911007632287767032291247961085760577172037903610170957384427283000833033538479508166204228489247096212055455033178358342819914223756753995346528395284879977342478717810487892251428404609771807617572028798061037773518258591238456534206121938090884975966642659192454128460885692276527631497175514497953451367931425661288344111434908682752002843729152758714563504787986022564917001423265609843517561285842078249821291481487743080325855190759191131440459625506852534872465657584974617350151353260816549818392175877102026290163877344624957813131342231209973382649434631040744680268125795069053781593426867128827444452887387322714727334843728222304855913315519967198559952363120119503880458589928542566359331969931687139022825411302366119296268756248792716209170910167718980034268038554021983137670263296446390038211439135519021348335267147913844257765411155109799128306922805144301208469530044145082372768811518415573506499425627116457281861748117517285158805506121126276287979626885699565906465218398355737440834642164302713254530496307754293917315881120443259608472401041550171573286244194233746630528928298579675072549015557731385181513861062592910459555397598654401719679362922661634977053385338097325891537464460249764725226481430833428099505646470517753865782505644314863488103077568442007957861084429485985033289681365221697440310303442074702901660733209550102428829935700658590995117222381776607701067313268823075823589279495652582238795453229242730282332308286076675177747693729423776064667802482842930596573332483785897034481095929747963588564332472147719367208004865476933635375101201577283837186000268411483154996718132498933096927156964886827937315715183328476909175249650326028755695736415693828696665465404585271436171392020472971542922255052117100560887465897672019101374585276665341484874306655091434247470303189199564405388816969757705151215347070711832242081380213727604677485986840152603652222115896611851518750877485593635888076514737523173807731940431463933036686805138311730238216420356940830136540437407790874628194198016590231112681979412750338658559664344761728872134068025456821067698984422661814325397932809450924319291009513462305243163113330373056313926491373743949465011147347939155729037892815464235843027598299685326300891293251000819172934449014332996947037929300297168553667207542685157558450519902538995483843946633774875028399770447203646311019893854139632807654971681475578467821455016427467213663457034782938157711224256674304917349424493034676269762753815766225326533580892716353127678380782454077155816215254728704309601082531435705892448316003918300360173939453219880914604485181332275362407727838979335277385483262634552073452020835290133245814172583485278226026849668470883749057136695842321692178976560710649004571000751518590007329183968181263382285094147424522795597554499701984953737904529689074006935569819379255084712258020277310216436236671819553186402497310254714290777631346166450702142376722642886972249306725815568338594467431441427265347002719031550222973774998469230204015185523727845796777263443542210765464352543316621636761681846987185007182327187335572033733606702063230904945508102098932459439590882294955188473080356440628741251895821490852871977301520619532880580293891502061894480991995992703680859160239258978427433216597992962883422176182048285224860105155808310074040254806402830294371705126080199697117922467248694777311807601124688440033173156113403759036542844684277912681472269148763886070810884305079126746404478870283867389369160372485945722255896846528366386089151220066484972643344862467400300183839912904244143858689331426746254416578110674573271583331021191653556719811927252695131590409350145014046790154063068824083055825381072695174424105721396666781989398967970133328037444975155263588328164291704476992509699954894119448226904994375827386896569364393921316476986814887470246480533129291152945064918812704100806555379938316605988336634806834368569536583730214102864021160541668217342291666215484124313187561571805605250786467055862164939774939400506748974621509178314348317563663857616995175922526186693286199684264001399667996013044218537923400919267186829928757349285179738167116104574208917253473954843599997696037885481878641895448320328368292179660846140894513165421871918619787986738821364031463772400818949566258802674462073076336506177348581730185125853425149786118136496812149769790106077649448448983328301876613920582399724393242988168136866534389338233075461312367309065397163614515495863911347329457356817419312990040225970347007756240286452499981897609949225000944428717894140640918874823362483787816199436488665904928939845283916636877691401262609817963776136153583990272863451910378634206302506384794765726038592710279848082934390893643613066826269318696386734372011901176842079342682216784865086986554413248973263777487961609217644760851800714069054612736117688696685669618311532081725009054971648961513349474589246870619428516374879190036729141754075278281514792743696939142477734612068775781971976948792074137190238720268193597073783780026219805814681510153585443313985011193379260280149406355670888511450918730615009246121528042228092010233641206142006895302973432700193288499446870958383668764582122837851868929000252862036620429537456178866288959883774710146516904373552557975384394480020965933512244030796523959037559494240941113596008201569302675555913858609923738451367724465607599755241135366898800137587029597601753810007439262769634951792658272253084274238857521919674668409964845001324382666068051882570356621957719048933566210679490999783525051339654405447846679456073803294490341953845191119121970450295310184096138914905485917910329826121058151951790984893803528562175421011798864612860732408444826887921019235767431550790420194050679543026006749360516169686775778063258199339084767054755930303915362174068893645231308754170348182965171543918384915741064971401034716022720024207267393043974586511975967928958853846783408390067244893400319982873959939228919471415268557275965594248497545040369260905726049008096197498339057032579714310160982340621834665472099082893882324211289639613364819090216861262629328662682772017749859930476581363201983736724746276945466738666976198372787276623700396660377341430530121144690768866606412566028378703641051310102896025399324804035359075113952140403874996839349346629293833798704562924129547334432265022329124469894329676874296630619825638794766387163994978809485310384584996266238669433806953766584965068826603543589368393782268009524623719134320625384353619204849407949791249885803239716507593113482459242440770149682573003305623515584007671490196862142790243647525939144654752012283607169771819672055220498451231869799700835011720541700593252285951321400630136357708199185498957508037469207203698338912530172884217495154779171548184367580349700173544400455501082972061587412806871439399711481645812347077779627003623643867056313028633924178882719307938932321886462528411920458385014256473266746221693842599302141567734711939911384633065358496584788752044679801721068909378104315220713083842563065460097251156854467539895064586188836043862904428668305976215225876641895640351979151374280912365857206087711637687625490481585169708915163576869581017003595829302141464143047002831696199924314393725602843845444303728856938917186042684945437511320793544937757536685374160344148799178910056284662862266666812553895654095981013226187156952383017707781079129155114870419696552739649506198411602114047133310013492377161668289891442379328235654935554626086126042521959838251029981809421888448378937357516345670772089323608835785625454757035972282966416147529776947157428873369637627374319785140346846271678303271908353727755313451087799492189546106888447239898649961524654656642111875031920399423298598653533210521803209545831452908482600123250086074483981057028856589799598286008811516354992020228007542768247635703390556682573923096061662896754121347769475752588650170804388206077621672195597123464886114449695002216461216699624447598591640634304468060593268589258941736778871779443216609416473916851684453303662697703648666562303989235622554596278233318024570645903001364787119191435408876592074757572562255944370782165320344512810355874536329841053213416364300196770508186147867118692234076271208517877502414742520908362369088682051417165458878961387780608881308293232585738113652128623543299681547759280394550301724540385139387416034177668805771231995659221650883355623669256444742903736390808225848687907711285982990474570842871577284613015997073729166621322390416311270731711035648978905552611074536694161939222530407813394703815817729676739126202241618184413815425789718639304699173959200906419850870228573554266154373093429999493558148329647177928868056788705878060861351214208998562285406191769192142390409453360642115637038775303267106316893334443867056787006587965991330351466320983561704487334674724512319071056152761487817188085746463904096587186489672860573683950830968747856043306674703791028909666397172349229715261485606605907413318580771080891136709586067923580849354049718539827554736927427472549458871992078429494800053717569328132776235014397968057980659673839612074213482878034836376919534023858930176957659956979136472799653216543415475912587448957297827367480606214466114196448073590919154733408156060160002954976392355088560697895467237382434888864357766469449942102912858388090814551254879025675243139185255442491866039475263804124162881297205874202938971170769521130913211894717085240046203169536987969053489532546086381257885238653136700994377026897035287196114714108477061392366662255617543203501949065685815316701109990784454595491429203821715661572336641430696627596445617839332872882536340373875793001453214353110511820974878047823319541850398933323346054359159440110878748501055511394053657016918316568515573831850645790290739563101082759771748351638813217702251073986651864955819761949206440233506202223995222909644935001172079274573204537933423409975792199657026755557083646164505646461181291450465257252098141540899186832240948944566380399323039769982366020298491992743363804972259790427167683690191542049995937264033763937541379987686082348971820965670021014476227700914862379749116686427794936460112652243806144509018318318503941547425755311489657459588043437218910040418966684824200935048849031234431300058787198900614317965634265284672511682182967562540394795401733657301003196900494583120163725040819457570562510290706533551452097989198851025767517628810264748293177736404220622286714243949440749909908873498513066220769946758386746987667576583976021356019071613494627006995216522780145953265269529560536945852910527889255965271140953845848043433605263461284580116037356057319895580453735464087749947433757483561780451193161128321380482528783406231135462534907488059101809726255276978839389428339639100093291857928869818525569620888656106682739296482166635355471754452073363952086446299410189262157768372168008469799521984208154965922149169122171570438159785617825018634407520089800491740886906466922493744987854357325903190975446802785530875869087440024172042839907457577931403450477689111330568175610756508448307717828534528293707283092047583029422341798140249553164501440821835240809023626547905933959169275953937391928175086130207218429061991085517499698054766483949529941541436525036603130442080261304924382654145109669218591421610679359363859562184419422027149487154252614683005043089434419509216979481198982915774828840751939892922570960416100690592348168478430569349390752866049220205160257953647172552593589867174354027532743997607179030256754991785217264823020467530657089006907796840282670896315888060190956132736347170316347025812048730197361298871711483944033612437796230486884517030585291217167573385969311392704789147920418679485163900644508092070491029758434136690330374925178853719572053187262371757320497955551911827532439812319467927130632507402587421595410881828987170823724317220303823173386407991375084356234982901414797311256220086310834652956554575012465358466740811874765046575927699982237629033196597974866752738293242695359413757271865137179022204411046153572434020302394466121778537454830346502716428133238370744558691885991484713504853747099860281446753622755428879437211063804076344648949115932923546066155116220693694124569744834855247118008859972706868137001915328682730231321533935296399117040535129208656773733623355620152631640918232493546155600663108109044436919015033098223342042616473528428827002350127010443818926783333946973715540738224390795660841266042586436302294627028589627905605923012577899913015570328644528961591860031888107010121022082634717692179932055784997778356746693067695834844793986742562361663101309604209060308980131762689499138286564083726321312153368716547039327140827215132133370342732388186779589671335494901870809957307193942342170354169283148146786154276033144464937830373371489430550742958032438485645488010687055642517171623789602910843445917418916970527765045339771383183101761613831493477170514718204889833281577136639640017688946615082204424447874290667971347379772291650743490757823032389950931029908274140723640668381719369093285411680140149135767689035821894857498373428114400789087019321157482070075214842550329348499609720967570424176739091156430092987308452447499147104215706513301377593268849033417437068818212957295150660174726981130722719555305647336976629217490311951193964428877031817206495868529853624667804812581149529026954675465062662117401057931838461909339754370630662837590898024313225723372679504938866191232991841633395339398089682555433303990842059215632277502863972867679811963716418955001803416690471731395437313950563804897244642579141600375686976472547490246622405561257725842973424661596851043067821785335744408783809168638575697598387028344698474263652038422160336183007205084847802408511825585372306266340286886561026520797676532556424947544102049693611390226975411739651196310569331763486707811056507903634095291578814887260721013785660552597476691547713988205837271823713880510744213126704937586718686144368655002401713864840925272436527448885603565060020338058090089793148154939750116112889034727845453162535524377358798177760921004480423752530375333565718293209267200185277279462606708040282844530189997112187665130677346944852000596884070967284451581478991775716416302002909388767779450555375734137014616230646895669354277853468138570010836976003163644252336458761097388778083530714587353092313396292213033310281165908233874132738462548917526296983036661017520620364142995008406855112050241066312566098256945270023102177380954670960748298433131386633630182610368949573150432707690924719295752788352764196611972065099385684105290318346823907077156024832870661152850957752756780070132967402289696204360134310328308001900431613277327616666780672317964507364332173193389493955623063160396226232537805390553685329112815163722335809279063444023607341606872465148462024441477464620289049804465531450016137329077236954242671045167147165160040502486836724576847970052930908722177741743484365840088793675214514728391513125879168013784087907978840070190057649110314111182899648970620805553098014753642410036373585901401685941412989142940163750948208584652231904358606144985875401279691380126666269406477482094288015538511400342135090915220868785462287981505019536559672845901319353039393988726066917014581072571075722000890597835026869714175505247787665514616511983660604089353168352603090014424792653479963194610847563461380100910885938623849733936934523063672374004681281880450778587641795546074598410352649625989317691839037695712655762324411445841585193059540493511941163429962466245523698202099058399981213748159731306392932849011023682904969949900532657950705390627652169424205609205172474403209431354903521402894624526528470202613408533254221444420413213311955401169830627172313715799327200294842986663783224930138264956986612041027357403932757827954655080413812593770239149869200345376895085445268380005344015255758110810720314382135934237838717206298229162170839196840962514019116599594973629830272577796920310062457601287689632402093636051783624562631190874226498376111654968446716334762098918181450064635314974939237352506796512595312951007161855348388704001949337849042161887835556087030821457251407045465430038309946631211572746242685659672437709606649645819147163945116346695902426926329982243774184031973734193439250610646027752835393766053809895612363247350646331874356593140223377800613156645886174978497553020798719908590799266092235552520160114369784407279535876952712566127833824530447195273957813854264728999065890323915781103899341436919805092109415748344638954629655269288846347230689958420596568273259514868564333754406273691938890178799118026341662872431554122837881041376067590832646647139382634681937465025287367672444998065481499085149391463030049751797531917585297077468234827343867666445087539800906205669542922608807423658977641677119263910335278561251904809729250173486668876497293419635292208508915364328207322426852025673360889655508358099452337690576040866743960375304762393430675058412008005309287586643187288630142161542299980349093383061454980741344153944564713903068446206962804047103172563186339846857200971694959048787517719408619260234123427787252575885413170485251917090153177651955441224649724908789285385042770942402523403310270283444221062699370597278021025950102281224327429132660099889547768754951042269947815931900009006415634319711014541805542230970048639886440664413043882242767545018671870419374556708412074803815845558724151721454320503238866842579966145020568840037865505207832665785109558666687050278395346512139581520238440982901612682577987009011339748138940052581520127872064515652965903122242398708950822762071754654706167233687281733216065071923038496283252502481321865211238603559019919169451408764618405799411062012856222441725041013752678271629269998567526622905862643633825447225908915678965225826108224288652623162607652991161428356868362740032159808100072829970083728433309908003048049819905628043033697360503820243266055486347895326442613110081970490728513290878094945550775271601370878518427458248816917215575994848994263732268728790112827376345809439492770435595490318835218768333186045232948785380804868302520248046113938485188258458463349022341623948561440646398393131012773406772497227288948252607120163984206147639041049939266509410936982716221594872889952633932044372440828432226809835095365324880655092233048217063575671410410065611149389444438049948886539002836632098286267277215622098415582293282501767022021571857599127028345361158484353199933898433601905142990869324121254653686992094726251675652488527097957684174626165835442425693221247060830883452314085163061819954415146304783044408145520776933189679167610611793988663064490842766449947378038194221902324383198617724404337474909785731919906175759692189671313716324835082841297065490852689211798387425632054948787360996317929139238975439160021321080742004295652151117997291356379246846769572587823051671423542486883192810934591754720133125083080869562832328896675105968328967316106570424701651406374865385412604105849999084835662379295485089988641130974450670349114398064356721953960909023114223420664081487038035900827077067774330686008138983375612104686724021318463226189176550420728822197528399069163922591313289543205542012970376021906701290848843989290030481189493939125240979311180976323564720448901244672489966441289311247376715880580374407818168707149320597102174143714926369227804426210819659332255883620610462104801222024369061023235765697292440268539923439516829845033166828668187599984517371416659384756766788945072707631168002020272475689911322946920297873773928136568021215015503264208239681948851919180378610926729950448317781006789805432920685235236546831094829014185653930113964872434272896178208312053290790398750834407094529427280361611457193540653695313115932431496591728196472707115465094166305204044628765840754778834914504167540722668779849955979002852731300484963468510144191230474243114426666193323333623252172731217818063528628587977548228048700390266067978458476540484252741410405188393111618111340184794081446967313304153526466962225502018592164703732242310905666587776690298323273278349197212384615902238725682475615115670249074170731655097629094345505393561542873191830428463254383950193817076389835620319140808543026686694393140869931273689808388209448399913562993469274243961703446212106632217653576640093659591395277071430334413108974584629332769542233700196450885171545805732445290372190861905275903818658461304257299088035365718104253573217506681610117406893392053169728270453277612466695613909406557936263051031849426389111601541019136511981447308072739173530524621187929988986386284000930562749165318644075512558547339629300797532116401610039373643791730840506831897168965233583860555713339815313865554016662674110238459334797120013032994778481629348883434756108598973647753855490243656224963421486004776887689020442405693115339321282176097094163033304404145657655891337849068575521128914094804046149307678652191319692922717868973096843639041274131512020481005729330484947248975638485571500923895561518514171247537626565284543728147762160600219372576327335860325978674054566898949927172290969825703020256233827759719965874235688779269231565128003993442832020900483903902435462523115138450900566637576964170595698831457676416902599494915922817012569252736219444043638596963094643705203430729925373995668192323630996500801580122374688315599371238168957309583512162873354649604870565650229038409692132319315333824650813248151450169339253397177521686728245333360367389476990068025959194007786240328448646049505712703330329715657914603481092919490479428988677167502625551305063680173380554667040519945567080547617678279907447884795105447511415167684134250285727916236497208009878617166167724284132835196753934080530993086955713197166013454920643547808862828964205951798629905568642694310742320449224263569549327282003238433794558705001250216686461265917071134170522528090115221368772195837464263808523010582554510396983470283991435527470578409801997063852395540828054366284857013358192724444258019107166093060792853901972112670927818745552487261445469656629762788066617459351729046182084394133491961906151759236634014180614191847872173372964114641858725511301426623526677514274187394349479690046675107944782532020856549413500281824371881072414465782493776730075167454449904843946466240944093212510673207879326731829694652220734272730503188754233808008876290136531588225268448794382623044488969256954890451010421764586637613970076467498101893001774245895755471160687690071678491007161319090291145295989340553109553207778326612943634654908251912716013847249695410782877088224796517396259887086470432061553868516309060181841878741710194954306214686258994000651775524275453286202879504353080111317941876285486332987048890498512817762820261195834364047914701966405289723861904300169567689477911277560575401093575113706501988973009904740035413603059049941738780801182796823620487499468242524963890831462361178662116446195389330069044217838251775344792499505187685500772825267849205633458240735504113820440703044302627312012257849754072343958072312062886599195752992886149696535333313203111788119950804576596101485499750751602932977736180368009432041320539849506228671703131581168017777572300926970712985538813330658274904082418558933332310012393417296061066950318273501512774240040491237447571361825804918888319508805340699433629628568475026928461683794776772598934395652763902619271597690415427036484024795538226327272729199648880450493764593537031535715041386775370307097253632458764819671349200665051485207199377535120040094486400018891280449001362716918195889096314691834156508014931150127238369333229884987152409315920046462081337414378755444998285835314073978019904264450898103541366267293689585683817920602385728713972669174300083093734708878292211797573962493477592863713889926886546652582742243693654685096092422947162545232941211259893620550204657554096221288847858804441370120618145522581600356659961098295440968691467277239446663299365028768499429714185297592628764617757140112138496862921673208433258778907379389189181352017747133777551183664980673328134855322988590275022109210044208821323202157608921849022735923849565614839170616786282568378101200910213473438932339347472010959890864330824724643151074014396207926448164063801664646894757931414628972907167333327987427104977979900245062131134761703381301034241365872153917219753933229533111197842065796201364400121701951861080909540423295406937159216819344182036399308712353875186080156453351195481762727375059911384456907794707065438086218271718803180545733814805860126201320944442657646347538394229854448977909446773470145418152506281479155006581880062160862228980076454452312290314635246952004367854468587270930562934668135114476792999225971131845944940755142823821136573410542165343420886219603892095390116864968251994056418886512719088082000464386441418158820715706570964820422480090188438337876296103699114591461057190428464051521422521839929543561246862656303009228761577489965776234835363374312904527408077405485184815536895691180009943609698488291340860571314592025435069812404071974000669932165579151911267855233606262650989218199799695468006429664038365813226007284741959634725356776361992219120988915499433534757077601019446430928888577879930079714605390389676547517577418837242433903935953666525393566396736583746022654080982633587504769382709887968341361071979664540766476743221447789499717378548635066720906281310392943714832605412197413834547967750794092244876372388525835656110381367271958663208061040343934012942286460911174409651326571280485293172276496420057415631458849328875472178277157346274707952217443409484727265415524541550628158169775935392346623016012424779667810748432512231937853471004938327044724090050560689103015479619432970841352512032178044112265938981048381606987377676477946575094608608506527010196603631705905447075983492615269935749390414963781271558370988164501339600245771580782885037279734851894010245561421901529158734403645415838630888382453091793656019412043072393008337798260868044187840761597718812440981741252993682639564202678269438458959487347305286820152450426789604431954629930668616596167888672074805845386630993992105216788444146796582788682733795992872009353996738811384312552618169160623937367346920541071317594144382716424515031841204344857172145561386375723155994330433683362398364701294760206172129426334103730462394100961727233625464230476210434253468059327744233662527654008349509844260846100776709768619833294866948137754713316632479709157435916833946667997863549919443918028455193930281817898261840389354635799977200452022606480685905339976561110677070186377224897368185893520042082913714914433520298901294238443708415599409599524687753137057558543648294994009277667144973786097509178296528316520560478370089103371953079135356479790681924588683065692487539467340306223084632583404392104027596011349241129276882796291131902040038578900316225775647040163876701958111681314228883055342185278647121934261272696794811037427023759758896226546029969915976877119711982431223882663849185949727578024222383739801207713013836209997272748896554574157534037383072424347151050884530580051282935783058203834975840425135271222939122386449530698831227071681651852007565691615397976555256906138507442576293527686817395622977153734084300163299398474261615587977070272490659815631971324975468943642974252332121484529922583460955409978462492625069377438305630367953268549009708491729586192636360262787868584250056180379383293238963498091747188260191338739672609330555990689012265521033977710985303412516007461668618627436745095974467491059317299398983727297202300472279697268369556638382156937971392131360473946284002123493103876604686866955348112805326914575274854294188596415595192930385367962487495763002589300090467512248241428233305140616698178195325011129077175397523071267944588966996894778099364962587740207176218295266150294696993099452033986382306081565358478197191538804060288666696797056232717766738904349786810473563564165650853709792703793512335357942363900010052248647696065900076216147373573736381994347237862663276810719907198961561052248347255366899342616282764509722737938755108774395672587036636508932420578941248764457825341462605246963509723387529089064003431976784298673482056374204993614270305903955639974376305119623577981521140603963244075863169423652572087470873620271364909322105734981492073777724294710338049817801618410590977747910747612478686879187368777357048163704432797855789850845566003670220505554395808192454077543764872348063916653964480370334627582039799133424054644888416314647644266457892336631730486247105670637139961926523337403199203427376510421913821017227917932636725562967622867170375808855522054457293397332508029232665311337033034756730370189924716349140224384759674025697318453487949931303808274686831892641154487821556853526588290843122528024267064218738133463383869161260215285821311317669295289902313369050120128641328563145620939880102821777218122900303120907221837145536239081888951400043303927006636944300206207301474615734696687092936097358713449417464934817267937701068010471001621047950988838878149520180128065608040527312692855581585722218446720469669979567162623315931005938920867761733830800498483365471245676819593168068046281390313350246702360501737701773087102114054804401128704110155359893662196764391396713630842551597438431659993893985098856389221593378750615654038119326085516785904086710728405124064918205520308275314778630120913161712841824023109244750506320289999748946357815696614954377607919767778939191729328088830522196707307584882077518151436460406844502430919277573369723275393437446329924953356281213530260944043862996532407616691966231848308015661840818655648083667906630129505241936347812847104503815755991819368412201407393952543115195882997885182538870843254283237737098713105079590125015921953486004408679817238554301349803075820495295552720426924059885708523663997429315965436116126123816131214554623280846001195788730063158721688291719806469933480777741954149900985535247146062231888179765357992251570328868153794514945999900787085936155097070914664679360334436511371278020528128802286359765620985419479521710580978086036560259620197746625822877583772439183209845659804686406678574378581743389595536189116865713944197376728106378099107795430392223619679101739424201733513509484710644317159951641032498995349157798616931073036611424793077624721288524076902090079735541708223280204653061422495249395549094760380994428140346421025465526916420303271089020269217180485122336744901939361192146440148605261594961271933420900446139888071159197827714507820194519992304762221865802070819905730298145512091712395849011451188371782265902943782317070944149716974960227175067689595801057793600205342152462668833825257543195475058271631963505785082507075814003391744136665100792578453634876329910170580476263435140186628994360785147397164046547022500815168641932535613745089845437285957333650230615761467614466069576580054589214338445219624434272408225748137448271795865037165738509247467046772641288694275161517126028492439338898272771562076230895856334748017733719892749338541353237657387007862844284102064255031995525390423207956760106022542838100747087208889742125488643591885705932560564624947783829580222472926966471701247472732199720410899324674734191750178075905590635121508251449246319573734568836740725885335790857109077374122878943942198914083214714290452742836212966466151206656802664279538911621116577375787723832896952934549005365317381243484335715112971452388803891762735331738890244159250159400965432438589621889348212324060462175692117719552995185795282243406167022906751234076166358149227558894983376552712822439993613781311418557895627291945486724174253261957904791005332528860883476372007703867655733834879853955865236365325533819239336768345643104694243856304915813041869466429841965765227415899015472922602323928953401940603319404028821217152282375843553684668691874545632216921547994157871752827858040762452413158672334127619258592250071601434656390990538268094956646996045280957571606732891135667783855560396458088953367301205899298612528693997593254740724353928076459820258066261786773686076073518689769224042814595994308427895684171035591054676445865418250281051293997146068752235999218477083286302102184270981725189163063751501546633557889870316879990467913965181722630762790070704586598127042052084336942838946700006502008172802735364595021086852773325304939361287257231221590087953782387642892064790648243532523788201391717027712193084482832779878476521357165417810201314091640207608874019713872099040908408925537063855304261245015466374995611693487731319282792301205913721226035478543691357640565672467583837652369846622197868960636045040957744750544233132236239921034000499294581082419024983725792246538213378093560570354270243483450018650860671480968253142909575334179238607252893537413026358399378037737363522645311188727730498260821521581582296900030604899770803936196225978925636116324803491529831109736444390447682940742862162201842858989352510474532140721334910784155239938792285728162090911232209502607296391751382779504348721419703187677873691039841423572326147398097647322310300982069815428754883756123340985648378522474361188775433684561792010031097234550060649487741348426042956166205268240011511014863934888417192527153779357688502428299459695982612693935669895415389119006999645972365343702894453024107371669894201578122559210022453468148450846008468271142990865253815730270485762808648600377234003306126470629708995739020122410591397210459370731253818691855713561400399588465887006522381905521949684190744076670652505146196452543904109402558992756095119613171768670048888552852415405234927550729718442409219029904746699286585345930854155891479958781494554758877760821907504707086250840609217846127269046114894276139915540922380563916408407460561451390107226802815151068191942375805357596626998626631765939357225687463058564583961516107929560624603173909601029240432213604102012298649623537174344577432844102638730823632120683018980094214857197212970410460422188350965759486254954729829109578165355537898131593561021143658211688297176597844444591144578322475318081038062977429015305045720374792097641171495088771113369295107392765806758893719781159467287625551729952205953634730925717442311561060139275365538400311161330943235378674518629712387194954549943370601217522250477587356345728786501193938720383231876721052547256677136707816675746520118767144184221512492909422312255817766206386114642866711169113996502036035152740660471970830681325093448682307111544883042880123766141768482816045898298385407781979316272369109983390584068601344945333131934247606055198442347022503228160792827908930577092300015662560675984033801688027530743709409923556064763080760739248752246055935774609222591379464605254648869756567330793075581114084532064124511201206694186594148256248750605645474284085697733969121267157811894731507177898937307894900877181228272037560739001214355616809340453667273189086490335515359098514383771165203264045342884623103625288428423482640381567384227614203428860545064818862228657002854524771112714893800567583557294917261074185304602250365632856410608335908054230458033876742885955005842920041826157013498900278577129554498635468963229096380123835909862335917239090564463108356634964941139487900412463743311320458390129350143189084701553972847434987813139019071475688460967393435151934782810449267557355126056857636051527853819611517137762628274966651134562763474804959292641413440350830877321311459239759701632463736900785162744535223542543549320597484796616692640233209072599860831373310042443844089800878916732452791026560359409904497589433539654697929489999869750975301229801315764399616524266108476627085326668399613889992565409287468297559585334972205227046124415401509840166326276984595065981248260716911173840895885052941690852601567113831789369718370666594294077443462179317066981715625001414161367617966279974048196050881251776306315364019359774079486738412438437660619731928908670029658813986019491909206547666368493406397835552493608528603834647315357679456400951991713793163049053704770795652647229442346438368034005845617168993199806715177401799794037946179518981144077648070453746342113570772682410418295559601759551257220591522952018932842183568591008959470690165105778780656801141487287964765468203821348975702182959386636970063024071649467487276217176848845452950275771325037245292015313111496834795481992688791475978075165609076032443800569500648199565275717825855467922999801777592091000575087786219498535370069980734574990771680257312548770220827557568045363241292541469680453553070731957559974843493780655725461561048635291815083708719712671326913394260284943023913095639201932314208164128501739407322054335291737247434853017083781659614109438326096879356763806337117974550700488994200206257693349449307793416211303077495056654204618017782959661691510115728257394038414628008745595534310432636797871325193058262341108966821544396983161123480106956495616480709100753546357389113318939371558429804405329658891014399618721221131443915388623436922150758617297551092695162624693522099038285538242497803280611801830810899481168131539605377574930757249881171056445242962367688359337848807928768297566602790504158440826034109045377685018853038880743980591579001978125581609483060673544039625153957135105895905521057151182371748672754389009964713400067644507839103924548845557255349242624670781251311490606719032331034756993680795816457382239148135344629858540531396857141177015578244383386192573974072826079629666043854102543441127615753777887363710704654549167497089148676592257575565879591285845580628085167360080624312743913449837387779728590740028656333050641493009720625338602189353389356082580801671593688656780293509493832397451052643387394813607001276510971468512405275706295353417118269443977867485659561297504891227808976323940937507700447248285541351454411942685022649414341563992264474672070767264231768642441696479510239890373094644835916912013895393096935214317220648515967611625134967995219535066272509729788407174848187899071176335353927522171056908849069892223657285247602964147139844725848632336795813774198778834065902992417494052718356385334996489095901417011216593713184696964740558584114573929279521306044648077815367660597293952326462892762518128152922946692400760286821644883011571346525537406463544623462105886320293341635974320714197445665772323833388281801609625507403579022378150602457353603591375747594492788827986035970308970057446383944525934625683902149587141126066147114813077794941571530503993900177703500116639505533967009194872478982297438774939122172672037418897327697292955047238861679974175995258026041946149890710429947770552972428623691268271524645513051946595408507871471414231573955035007986588170758255208325357308018848796048225364793298875855917181392196151579181068556662759023281889410042469328697571930139832718778435098556841029843073401995846401310372311905879140190462980744388536497972053266785579974231094284401026340561025416246954148444034345841909393542736302310396843506373518145428124322030944656476173995051285492994793837687720814915753665498300460766006611021184410558249702051772687349523656972448561810097995652312360515235170172948761693164576285961556065279135000547857898876301574649378980635410265287940437937803989833070083457754453700331871625448480833988433289644328496384666716689121156344388107938257871729519834838771627043185171669624850383112225819577778680672028677232876038060620854920298692775906291276514579320246737311629209045721185077816732136913123118924814432341300102118478441262837804549299758799971256014146838664626115429663619938184413831900253749912474014551348392557458098176867797824694302372425095866049612763933640426977940291491682298096201017878900600012135666491944691060837155115129689979679368665190108418657080127446932602229258740289865763462254746927641456457863586920564122724913701079786271831672144572668682889764603289730398406771070933317916728983535471172213491794701729972648085918142322728176732057777436713450265986959959683087432447114875310307610803503981489445547362407926581026932294570234796222030258111383975226450646890771945111553118299308967559265296232862505186720530397321352624407419391227231792718954279094275854115476897905573470107971943874263146057858159745878176575260992259366473191285466106114534904955427301715020911794158361402213997580893815722739259028506756645306837778471633848457146730419193864981036608553241869567974598165794183849375565120037802248439406940600643231816450703103818242403371341896412365422632900617183571536516988297699604566109623155822647543207758714102108463656720507361203354914958119129215466449399433009177927446420283365921821184496461207359033814528266155948270527233493297643088196361563590330628458039774131356430526291452949787810119136499579114744981090798305122553378312789044360912212109865353577813048077943923030785248601021842418049960155428792904082453896510547304425538688873360237908022570911197860043512138909360130615136190738283579876139944704251479044422161416002544037332422868479394691302960769692004216543775033386367846614393181398460606035502969125025721007105005942837558477584978825860214980823127259890647787237786731024236294922158053918295119411676311514134528382013769386789266722804594217679827832529964792487346515313520646481070179853902153667359641802160273402372763582431959296675290533095746795722681085573441255634760414508270308878509941008958352607099310772756653314097029281020409209020120330973460304284030771448091222425812051736686526241057102638440326645930928554032512670513586370516144095075399664468099467000690890979714657221835286394721908912467399910479549094512742810896485933951239015763655659004769206009532351062076480440438972173739453112086943112201906865821845315202171809142214449914614100246507329185648897724489155797640404577312612740865058607419907960378122659369265070831377805655132890968527173850134934742555997449217926000840229438341250068084380097257049499890165893403262233165423879233047312101206383082099994585244947079241647310666952321527676823344267861150311859280907494767449129915341592224685190083748303172556237739850060548721268777302791173765794043768815774167711033819881218331688038373922273898553367977833313225251471922406982487657857990214606411230004702377501676909726449930851290425111368037172798452153202400802699735841927127032468667313017054180047797390876560299236321101355939538865096756382061596914312405695878503795885269855325826410878240779993107001078152111624897475599236892460199206337341721549570365344799075708101201352308412094457747239243702516058183534610745582518442738807847947055161179079728674877298521573658546327434520876878094742664003885447107546256694728277895023254663569643008373555281240346658262528091284624958622810728493201911424562482192391661612572809998385348596567403987644032382100093550589338458314382500465075444074694908830105682556358517761556420210098654584086635051333239585191298142947716950141686314905897899293722180576323724780973737293032214130810272005117306599892897564147200129722978856103042192414086308548967000181940157147166445153798062376108939401093198992718484793029464378026808363291486469219721612004846412722552657898539680511108853239739419740362293455958805763679578746437434369516636653682974779291475545769184149362808324788884467902065867761975805454354163366243603850728145079087025339474266238001424387558028799472656637174397220600025159048574945855624147679471165433758294161623385759768461274385126371350401141686672499763502997332600208082796167528704952175297226768288986590533934524840563012711099156275593131684261723158416163589470213099185895533182155243243976602322287864512764728810114215596436524477434912255985409293882501027189308776723773572859323479448048919116205926734114854163283709413873565495445604159012157827519251079408254574566920047249024682122737707996947789136751670568139466224729230946212096637989826159055454626872478593939051365322613471163945157685023317088692028161232145533108224650549691711906087618387264524183111215539527421356369552323541515223961888777393168453482366654171811652132518913868197087093808576646042463449932042380316631012307710679997774550337467294293402913393457136351853784741706152862163964634876644166832117682970381255234276661240945265713102259925398335908926779714981105869489090772727894188727245290255242942369101367951294638016223846917159775094933153261762494779156898021392642191516841873451453703594065077834617102227608520797575599922325489594108591536762565369929091244603065946691539298848423823232582130653404047319366822173614238293827465191865251812670978911065803663295340606154528343923615427324798991669767330820696480451279953543728875738897059248468089266543771144422730295313303727950066377369263310638934464088651212278962177526680851603644202907588882996917016838325955829366199867802619507228958673473382791647535581914851758973917153794800483250232929001319272471656270192748365523556012618356778677239152113126728236760917282740545860961248391764315074113870738868566612676433467136693869281949111572784380536233956787711432653831252835511248359964490337440738991353326557430048463347919691354925778664683853913972075019698982979479416263742041794595353923844875015804580661625062842446895821566286163501018117290517419662684222616063702541649524428237635560958264250872359940036490677635728551878657188540997998533759997966227138748692121402786531064892753983227067105904949122180821804878846854834457917112066926213303527349648798888682086713595323442930737810430386092922371140496221616098177656042961873702633489035662587809847652305437867747358150418218192122527109260771829095241209562962170006294540700410438890775137614098933740249085355078012701948270821882318313517789862514276913996925981411121472013359245756963102315009477769841264747197040095995927948672344556078952392078891969506537356056334530213278556117832968177366225634094481584245282779538057445428201627256777005171445080400267205462314480178007680109744420305326998980232495572711803426526765403039301652761345586355137058975428542010381447838598380380362684989759383327994481242278552012906522937321081704281512898232404034663419287938255513182430659388084205415878420232857509296801501535236054597362831693505582616430417329047802447140439499752929788355171122769985087090370694542476215602350756789523028014595421211584789723680481695955671090396725885755152274774875445023991420840297664858151380543593738430594539016098113335798538241825372541890223216868775708696074319969759012925758731168667224515131154463528461675606296349790305164096958451042576435216882339299568048505394027967853775965150093511782198593249205694914518269468439095979751057387330066523690003344410937249090384427949252393039446584144742493760574011664383195517940303933966987618582442060765214763007701307062997565130290592850565697981471343160446664540010688431089446915242707110075541327307479835606095336182488395783205720939370762313491396464045858493835873137416359225084602332040499973194011424325834014470051588705494756365367010272880589912941719965848727895747853928804133593860723847595579169340180293610464492062572329440163141761149138206344745893591211095626787341356634792876754315189375388813630913028898861113517692116276614412325725947539382298190608455469519679099940674769336219365874424674377671953805254881064006054930895366616342691422482028963802932469773390859059446010521287237878602226761780074515899070855424918082794470283549649573023168000052072659797906159158982911657335600227460093851419858300939533298383598500210030378702946579739353646235276260629374712193040329101668071757020397821545600512630354488811811173907145073854850066307071988385571311568739278438862441628311304859280889914733268338389710036347038835134415235583893939145156681161396332731846971700234936736749875666462003792942303172780300507793775666916140809796913686623130793477584630769697690989677673798720646711474639691446089098693179516880881810276474550469285124467272363882735782557498181018918834793697918012761983005963909885472741948119625408386813914783649811521659152678359991782717096412066937941759093168702587821230540487678807810321277870342152900201494453937258782516979193486652249169540519713393438874172031913975767299379818823905289508365187772352836400140469967016555832593975924069125456759519999562570053047330884916212595752668450657112003626060617547824397715577575484487530966243795594455906607877039728272076955339368369216310160953396165064335490427587110811328920600378158008894385707011434046757546732524079139476331631363960601836268543949186860665156688450418383062622872990384394432665040537665990061985457362203264700863886786254835244306748225719046709737905691246443496890712159945552400544293662539888791922403402374438635777151233672981913879074445688620826708767496412134329789308728387476183562726464089606376582560237590499253068019255489971529547003337937793558427180759514790093682773956673972958381431284964200481281002471850972519972603526697027110235655691146953985317533988291924680929606600394159519032397499905007614866956704909285272785742655148035584731537399736896596240757815331367560014946021504524484439432505854498703924272800169885935414009257029941244048011158978111558509214695741667330580703588671551206995340220932987356058492729569190724223741614818845558084050388693054601425486109417853477999705535578837790732122909488157415157454643901646800188578871672930969566519100261184366869454715254940031352274849974429605367625466430481153981496232451475874944643226186236770526534540989357500870440527613153169061785029166163109634256742441270723106404334351653394464993372954691033778740631299788313678965804400488181926783476009079927801697431831206409343438078044421189458302164522660146386515978824582775503406668663393613824913128338579106776402553092478760509270074670575334189177758157288258636619568710224960855620052173791949859427961100213400755865415693570635783423160704362542626119783390855684290186087618512044261314017031910981360061256578994296494437659176251065110655821638857053895934947503712989208008625827073533452989520527331832548428939385115307058878974373606822867809549889635610416648788378708249168062803909748204788580910082634445037134938568831142741009911381742204738723260645381021066532586248250343987347505177626993926950231401692002526222670555175846244180678298224899483119192644349746292829890959259904085692110853893620491112311267415717416592645827635390741400396379688194687034530004674070863792013142592162954177527517287155351248582528767752543538534200516458847556469093891484525833642806529218540950447058940826364442807551786076515607140789719712237273333543330906572934191501882958833944515596104945162326350162240701829469995798212817376419777470092383155639407405264678984089200557820721832952267561262042047019516371188904815075099907430061219195640178002525230831672696470537920661354648400401816956361892627176794347150009872944741794862540547516356415300559142508562635036813378593815772730486089825078539155907227069442407475593917653355528400884212942372065004108967992348184713491037747023664187672545069111749293245674932273533678446695332720888541655698610504683963369719148047712204472171141858883411726288874367677925151505889533644519722129392547088609219096555900612832592058173289731287201776709623383759401856645742784797541068415652342861798791378705658201804189017516094889483796397844081100779960223988756309140806765220624115850736549123891654730516002114681049979374108285349269959936933140793837148407234414533421337250909682748269475080619081661143938968300900404476684466413450432553089585228504989439908082832934468016791530308251362607842220370318824508051569805624443970989988959513318481689717417428371937076678413917822381764509179700949283935172396402456854038907515164816191518778198069933529585004434162182705458246045564050699199292836662479485165280388286325671791407385439266500600223278193431703942750317152013752691055213915992619724580594272614495338451685867607407424594158512856204535037355433311828480618840835593524582214601133101872516281483224538142797684178165180507914268169609509028914375896688706948012448974443114355609078090115934893227471693704151497702687680059960515026761808091344339440757287316675471535497830212604769985918021517492949220202371650631616083534187169995476175766817166659993462374581850840637675034795646914186618381208214809604531741112592980655405385133047623699711212895648423606695116231223897718248969794685300918497665516461866028129701142718809155362002274115220312150150862506702057183442326350827217822421578805549489065463592946278824300727290409345941559135882130647682137719643282433520998124483684571317158526695352618191865147951287867414626056861044274022641116057498145344026952100118733796582187361981200389234012462382165379397516616200437412472912298271601614228087339605763663856427883265744694421900696354532717633657947097826654758116391251785024763177476260567351001170628033058048597952073576889805912192886001306530483898997253270789456971565328594593117324302995237648868382927986892926419392325468124969364592587983669788560049103575335600662051526582932626203493534987249344415971913897873788608135885618563697937159297854761211339501717461658056651109694754006298199688175903710514540055657860647714263839216461499090680667067183705864054576756586293523438634103061318883035290613477908585571399137218459279469422038420779160564046268692388569307028104874749613293859238418320411360679251737923337270281561521135436700650746060674121963303416443047290977241106414776676356122424889013781749974123978844854137295842717434666903535595146988172266878709261971864883939415458356445443348250316486793255036365884723612922830036298578474029198510588547343965955145054867745418981339450828521764071251887876203630236939611444938870221499164155595048264647736858702969002854118214920191424717552353124787701420706826582350955736057887549233136197175698078016030132574915581692619162589338758619196951195133877935063442788078423011145342869375511023204001021248370679361073573161181686657705223947785470451526838220894444608561307650218070175642783056748018730018822981891474874475245464143478925958563497770818223138647275734513463097808121437861665368095345982406848093484236340708143262836400527026040225424878388777704512264092648474338899361259174058724933219112178746735836244740944467605092609837019480590687063377937816993970464830073315807195480942493818143951773739887815500957720734555551967852971682918624590049272045891179050054280121701126462544284906190866732540601747067617356666452561302411897213725700499783671537908889593828518667231397102811708396324574018773459915098644971427218629561879158780784099493561339605649584215929028578090110950960913502883596587698101464477858079313079973992510359194240912035068104862215222322316355135091694773174368767541079690872122285175576190261940990981749652331317666827108437515256642214891379577976607436594967035725105363464018905871615717861700146239283361290446550662624509273732343977143925577986228961392703549741778065335655580406241596579564241542743169740630169504244193264720584992515821998260974070154532083810239769505866398265497276695849656055471897383355320153564574866462724916636206246777501817855997341271390849943292194276741179511797437259018109502476954660413202880331957483027244790409496215540844848495006266873058431838443182111768902304394410074396638580991734730518137435629841558042156533555541811236090355630502978369564859696775398100734347537367178348446637649831714882020078033788728326865447325645109639734966740583767117119091490341397589595973327194057947373622210089053363160194853232273561797200066708649499240040305749312028274517135677369519947369362903111788078529558656171715324121556821609211652647336465347603090593388136014054505636994632751171261967219765844205828743933336020391137203595795469673460006268569342212059314879692312670389229045659756782142392684837741918596165273971299249547664826379090068731441171034131781331659997148061555916898399985151875370694222657249938473432906512126165362538217661835613307476634896290028876449289640196134646374490980477028479597017854478268088565299637154436217072784605313199409267857611859691244605989240980068260939838802961312646146754961172112013937566283488993490631361597323169477563865682123372996507256880114584651616341311284254086055236410680547781319332495344905596845583791799847903278210592940128960367498468548829285299830865302708581870869227010402501621936894536755488548055736514379845275818888272117751150574533239023849836715479389670863249808620523247601476550738168808694328544613696466358529209350615257757920510195077661314789287304093008227810363096808771498541293793227943945001330740429559908052257769917061375541915101364788486790415417414215671694292195697712766797409715982464593506910391269516443882896831996385324214393879228355017898331238822772941455171343722434941452876795301851875272040970134018820722487808132051237216359330590068661559293353044907854528025787561321450137643611271150089609668044448839988360525015387207206611305800878179321254178989588100034808817952147453732116816078890848645383011130428743260055990974886616538552988165554837763579280893327307101653696795958526666238222119466711041574383098383615491968660425902622370559191169248704933828755799325394332533616059528908412414889349475300705177249930454194032865360572916023997810621013744877142124738461172278348803329628081584255419246175873137114933153091495999097819758872343359288630190604565525515115415392666718008667448632511055588614879951636337357180797315381692427149675128018182202119832098203682416473639575178357782669968356335471902501759387153219193666878086118161583860958325415844566615128650146908456440088381756104730529192354283492827312838030942762132799105072902303108449467137349046395851750286434047221747798836526165133217243058075364596763884144958914043514829119460865937068738272658846145332598085390259416573626181950344668573803626622707139230164213541542722021544322007107441862432922973607365029612242825470324121272612958081363592482151804278302054597823570520938111889822713536121859876645542376173039092071626651876607689151256826443620316168963048540917501920859071408641030045194906371316787616824594786710101874369297518893724930426700859272977431706539779728182505128414700686507957976998351744514031552115976020291586812666185968171227101321230619580649768881085073418878259662380781591021374832270106958720826558450348662737431591843203325823108098462885886107210015716174050792401512452940929925507483692568597225913797508429253902505903833046643045734288952899801975543270762417075708074347957936850901052309864212981273170554658863241518240592019116951618942603019639101774688274021849423207470085696838671511550522927320896092664009936825589070607346020788837618465242483765673747524562551421612316566843441017016080552990035857310526721381364846451502980791390950512876006917172930345361294171740489937005811630235840411756017690957048812809344561405041268073536810172023553908275711682806172969275416312831216350786078081152087274383524924531917593099903199793921489125814325717546643261073887696383654925560729634709073560580847774084364045757433003995861449540177465338299865839051908690078242143415043506707866862885302493346690559280468821346429044713840018950347405966488206441450130653649488059408122957747827107079077960178077152274420375487318910780618014448831759365363972862490536322026585800720251947460157925450781309529755001629028631493759586069486772828923852496915377991036598809201063979513792360375362678933551529339191727467603162404059641614285516824169896020458994281319182303953385881780918402835554434882051242024918345982903919721513110289351184655755795879040566614416675998868258170845890149597147900500831462409713866492533270907088443608843560668171785261092617938253111133077232127111881041093163746736904932781898548826064927043272846210992837771606474189547199897708564862826347181584358339573302756002573062572601553945472062608597112731374046625551537330328773161449403755682991761341869158298019995750545455155371478265635740445474926185908845002997979968013605498113164746518100968770213768147886051694280296502996280784294639100976153948274499017463158141366505442466593918066566874844849773335076762773490049451710754488988056734165346860521606347627663573616187808989312060051960775410477553629478400513407914474582520879217095819306641367981270356310704391820765889790028044237823919412620709898412241827265354690032808105192458774716765845161460402128456058440750914256448275350289395872686435993321670239184117807062592748474222371394845452618644115089298903106498952696102534366773121673095080771795830810523145728413165234891248801577333927569522570446936953679122988265638381399007556884414806636405166873877561133181214495662650051682059270049841286577219166725609886353533473843677632256571517986226849378874135178214065071016222514839105887909234212205592700780794124367285168086897750597229119052222144430962604715677128294780217561699552392099896296639693677757331932076741948771615987090295298667325357905410648650656567599256737778373335086266642410271173132115805062585304537010587138956931065308257536238256658655728557702902130340348935986842535136866540662027052674876583422035487700879550588812440348581222553714349382554697274450471733651440918661509150805124842659323780970076334191359712937717159457373362130704880387253998564383250883755174092405435743265604234089748208678984485008943080122357082793302458862457566452158698639688242087328003941185598742533866036073922880916003922114035368059090477466917428864962696207889658856455295582810619123482802735973912107583222914651290034132199586197988131664734714214572098913265819122503509639327308200403085196594804966342326635610289947647115361672262449910417366762927559623762131000835792395187544041652825380928936468378735750150161388724663069147057874440377689602507094188718833660117573799094640785895433707089649337081114181601378195955367688766234459235328659867597795570302562767230579191344388720126809040283231676796655582265541200245883556867466770462801489878765579377593817342354684947733401847056626072072387245982725865830349674373768860543291663790714506986538555866480870047348390634681618418161448020571625222091249226681243063130140411985037925887801728019119089891821977358278056193263142759720279209168034707162559720453249346399164823318905415136882620288458645582708783212710998264456770019867887495450747464234303172420618165747888160258429767879163223172834286355508710258031247119329309190816555541376733606347640324709499741737927793180344921440473108401503917781567399828135527333308631302271700105311244321866268305457193599207421991742361254812102290865404796749376227634964243917361714644737272790371595566406587025019860542138219687030379418030180064240005787772035874468095771393942295853467856769218594184349436064153050692527018501122494366445993332889634509437930463089748725105504999020154777608807208683131530822996787280457123755739554312024677411000692590582827800497212784650863823206605794286681258380213902783572840237100608313321744164410003112884408657869098906523165062227861192251181597523045557803747788259652747040357573428561669239081910172762214257016484450106966743725097893571095659878428503953904471210514718301193074967579903906735106593906258674609980729569469310013233956654388809375327204200433993983887684980400647239487371925763461852959133841745478277553282437311544122080846487858838432510897382518623841201586753393704673172807466976262023026752533608094614451805102679076557011772943473263936785624165103329116163485445352389044600197306403934696466150449880523044274859956406311796049121782895514393806863469832113004331774985162610666388492305405644510384243438047776177711462719480394635060090592730605020097446331992979061177324639612844824576282561301942296159934263238234103713804008489375137475841259513188464391215823557889421847200710911958556851830438367013661226458010811657831855302675705571963278565361627146263074643470467537645138816532068149871302009624264630727655251872703694352251842586721824018815604233152894473997927104404326254799183852437641308244722572676294455297813032529433741614614219647616438870632221484146596763389738265477665150529230500635382372108610142592097551997909916973326714511310429707632048670710564650755717002519343909205102897917219978878211506998584355035606623932760102662441478354547072214633768355815065267694058588713460728254502661253093486022964895768905680942728521487689540371314833358394669283977839123297462562073573571076096432894101233792717762586448211303245558650187976684687588744041446379987419486812349340246135812223635794473405787677445556236113622564759265426120929254765122068240322821658103856033982010963132825383863128698951771785079827411575647531634940946667785151854089034932162737647261647253195392037287279064325383257792195795429963995024004249112493831163252908817346717872434446549522855526983565901540591047696175002031196479052647387998323107801267886398583532769399368010889299617110724190115533987491390299120797589559023383468513431741212427769827874077414600928009952905248813173829549437055467980974550050194771996559735711198961994866720388153699888201138302151641049166883409419950411617377543951630176989586336160048790636162197942490598700703530471007837889779231223195233609017059128382633682331018562673942567404833219696358847015002249524697418458008050330538153333341012096903837470322137519054054124175070018443849219410216283665968991453603308496322873490589419501569698356716508461063981344746328019000778136681966825302456296322125616340579337695884420010515334641851768385816873253427035688750153141242703473347711749315562050680593268892867169374515463739557667179560875093207695138940358159585569224208159579523884008090844505103678533640643230992031159260019056454406018694779170961700525372573844969170296740201716726115897974005655849777083937633227835948741110143596602352503076245427738976327883493373114452327540879062301422546964059971501390266806967696735966410146446882270510503536409564157204980133746655688526326482611101664215532510956582438436136723496921726022470281014656253082365438802830227491199695654951581378107936234036770356973659543349133235480756696863055939450511930255268998735294415581269719413350527518058873660529168249112381670846358416361720086599385802191591129524091823355526278640166232048429285516439910471133599358376738887253961029330499992945211794928126487582842583904501627388706034678957315962612471632371662929078953700901863406393270384831296707437819326733630328428356442222093976118388115864972400688452080827132688987889069307164889147731360749834686212403459705496080782658647922058983655402537268255287546340716071705961816087879017705784264891257748173714634490695304228183668048320987529509561398909559929169561201068521277598559717611305393494979494091902081007755548367924047793240526207333946259552976248079270529665571347200523111142603954475608193994799363208750331824660345100304643754466867675374804737244388760702459226858239825557556378833238229916986883656948191927443810927665353590953401278386752188978721437465087792357855589983849616201153256594836489784368755488670183678952821384538628328110306687312434722445892937174665879610786872456122640770987079950601958132894981056631974060217436586917818010197048847605016131769573824082704981584321719499790939612105676636866666483845097582620793122451320895036148013677463391774307867105381668855921449624728197283426335429832948146670428405775927282118244167853101173366705847718241415080429576584231520734682954347465312949135892804555119288656411453010942022455625160266985215678262312170334277241512022855038825371423728582541972465459560056725823349768033375764310350377385459205670881928030659988501718630250064440819839820455955030889477518273784043191428348409220674296448177146419646724036790283804087815524136599983350452571127784747779124352992887365641539137250685117495062329574859785275295783587088091715252064708836857364278337666458080621574699722531526342704742074511705844270845587087684295140985464880672080455302833674187113882225620702290116928937181715866158507012175578379529401414054784443470027614955447186997711226709058229483074991393805366617716331004577189544681179747849545458377629800777052515193093105843069363655903637431142465035163421995157783386290965271440285029120925363183393378489316834705787319599619676109183518897025881832178099963533273771058170381968434645337315395263586299242083773963729469557769945999586383161753837631336495496124970821856645736047991666613892432401953080778168181536712468608472776576128171521634712486321338631851901248519406648645956646147923058993322615484093599178088023957603803400562360464301088772243613236516910246956800965976060415149907852439308341428535036042657863459474495293113840913183367578112868912809505879416778089763669951848813414521740157415267045399761756384737659249533455555897669617530062115379615650910135119951185711718415280223483318401369689420402391891026329853489764926961381126966868163895892232045645131026785221179617850241613671593408071137977206991881315754541931975452807858128040865812261492418631188186539114614637164213535780325720013425931390974498561081080496778638266455443206344608609265290496887341043331700023632045175475828200468169706576583566616564728700999112539801292393771532798052623848369725635755387947168469144878453344579024153088823141791372248338004537919209581067661818255837285517412235950323611102176087994536160444019768336577103869747930591021510613234536071020738402371842191665232194907018527243358385262982646206202699677954105804321758197484706862510326349748724414309122207972759481880231703959028389548847796514243185620616754120604397421506797144786657094937751503450328208702093379090175752808767615945333122113073984729713710643519484756318095683807803155993844299348340018603434762955742373489122869629367481568589039323799575880943949969051518105752900807212812090086108789043134173337207370177734123942927763415343263338980160827606714402221736705748377953189830402627859630527588804239974756073558875500112977732913530359650712229270539567846166211278102156755862620479337701628761050639878914301215955905228410907896676822193294546819348862691948649194784598674641005249184839317589810576763220007267606226322214108977933404769323490358447890294918166852072779204457213243562862949932237477463383208443313316411758325843720856597196382289608922045428137058155513778650554072300121191639717790837221404079016106965879659153321873983589637579344753541370697528688637057810215246367618774618311114648220703210042231217673375256381350844451606780447588520480433913346827862046110464751927562071667763157121031190464446224365966860021663902763467680798414565575820505339679762635056757821609547130375553061064772080096445157799206079793324212294394674374179533864344084632763869476400554303310094257374448537852089625877084029055498216762117752050634986537682669728411480787234153027920656065788882047102603739888266936670604821148472537426783640216760964696506380705756711374123432361355218104596729043134402171087015223687226333209940633574824596826215103960855328664897620843624204803048725140581890265772157035316864714749097186424929307387044334991369399839452673339813520043789910000997791376261522843163530041718887037647131561744829826783673140231491291125493768760846385696402546805029371524493857201032372740439865224303278678664906166445536517057700671904289771700509788335145278839182967710180124249077182674152523405053809897669039017322963244506514846806790552438906922294951581854861684784273551669341094918503835289969562201830646087176021665500730724326842973779802185727136906689536692084786723215146981211303689833598213485944608534362929604085811711185215861259759571939014278734524419509142642904027976129786909536638102110237276489532971937454324814392586298244098130633390263042305132694901292705398074028271702668688028161158724240255048075575653733387375568660062732219853225967119017163814106099724525003504945254674462369518019825224367483777119665968504149693681228571327864967795966627114244831472733571360959364494485818483713583572749538286274653945411406970971546630044367100645564492821369548130875343999344676867310928776004914259413957231331021119583246924165753308772776028132465171764622461481069633817828243949166585697065656431186987922292977367024074659510172583963098042330211066223627944052717813551062644814076371546161013892611474309912240440639502882961816175447407682384499861012911858080517479581733861355085175426644729236255916972914349530357059842660088945402510478247860764923602355796107561584430003430852598521022671074476797277151442542751654769003436055037203509419105989053530143157424810792966398283237902337344849126920976901325464085906011076570207743081062788910978166414637350717726823660079876469591654457625928841200070293159064012353693518294841567491238616673445997058738138442016338640179249069170680892850286081116727537645177962969030419966963865337940157434319818782664952581152681904220195101831018827838223165062903592055774000449562168117910865620787563187145196456444482546174819513322547542665567035101262345113839559218729413641364400618657460066897070783531193529316389576602778037864125703994450001246208929140163908103701323175186452780594181915192663713699531440615916332531210269386192934555103278652797905318136217821612092157854686713760507182590965859899531225858184084027307652351725575834154191101274394551525521128125248364915439104086012039255495752642930040792498039495076591849448682951249995115292188363684816033144595878889268594686533340937907321021341545578459481070390368485683700869346588711629183781229643102863115963785156109117433771321804733115935767861866169021032056551522257632161817751489765951433393196258154098107917007726792099182735656661542769689896043678470256554246456385170998524096656952464667724515892445628797068145558231751712497122728574152730061185036717338664947731601266409815071395494961421673217313834928275249481889151740865792067574625875198949756791258376603380467342450308997550073873952738292172757091443623691579521394284118375566362083542989233997799593985362651338804483433221911175322550333049640602774011552649986832341245011106950776286380936740144509861967196021738761307684996914887032284966200959564864471532975938179649209204671938207152863534435100921876205468516912379773219415344668716970143836537584946154898270989265906328817998002547429218366461500171213781177632057546213880620836234495702974375528132197581357519526521245455769621776755330868310502745458632060931387186090319320768435624407434146480030125602771376023175372073542985237203125301921003674165970983862934542002253685580370944764987867911205552050108169539262148145343492794062434763067793130731674296442161855577151839530161966010444146810294982320798565341160983970571075644604420814889080413933027779370347484060994230523860631951675833307436487850508131162057775926806339838806945779604445482279761793550773668583812271231579971110032696196157595215299785930069512079508713108960065445230665717438318825614365440599903628684726908995688368065507718563551816474522013874789300706821920901761417880099331935369588716809269570618081265341601282736207664448357569251724725424212148469383771931025566427748166820279255305791635080839613735460951561991663605865229202990704019929600788083971255706091485779389652581729349592522499275561516028098804023906437628716172315515733442796336639720436226494721857987794715661652157757956536770245277430920334060365293153762419889200281001277129760172965479911071669234885206973286990728784542125088756423361278536757840741497653242646600399373430929976138469747414932058797298009250807630814154352943451617161744372133599409371554573810001835165423830856920460253288564548391005560199147657585071031620611500684699735025664279996347878370804050800556909250447530197056535529120402442431531310118944797172300525583710675734722767411893201393281977630502433663517420300444744301628347951318990618388598063657311345921227281494159577896960052720911619165305502881052753828779892303911524010810075213002420829072224481252191955915698032892614012297832013039286866937951235381675275170369975364260066039754274603805090330460823163312882908709795932660300660811583010716340986621920302752251296091248413795092829487966007643289270285570890421434862870650567206499761785227017708417830353690763330896023442264358646593259925881439605861050511923682907632722940560310379421206130625166959483474116384586350681412164037953928796113802662299204624425877175592773144497478035753524629505071632151102526978921314139792993842286528967705703859249102628869574343843575361584150207491238097284497059471278068463223963456311006858732996124915958918157749092300970741960235180979639735987916563156210900754897269519889435710086665934348390850901320232763660541462420745208305596337479139495113194129275279073493626320426575262954289525286408169706215913885017194931872932082590654459389448760189403081625898282200697956845567140679009292600989466277516196429701689611328018251943494808391248488502004269276975591737700314157604663864092788130532486463428651930128170047331136232524932846828826186711556760214507280269702212955867338958601417172863392222176050114450798513469685876235870136925863424768990757145800014311950198082647560918319350725037407252986603718673039716881332173924354061567799779666307179850244198939632577039299241586986258338644675290337716522961504907387395488760321021260011980955227110441444261742809006586205564972298118324767961419772647851166151982386201962065488826751071208237388117884818435849493280412804054100460865481546812532134150206996480805840867399289870734645189152554494505656453986141627213153481384009604434392967076554701279753346349687669045608612944946055467250930106350697912752300156382830907614183106546220644520016944890632150485909367335201014755615218162174034724913809629583332112636438036119443773244097690726800017572577986332149063626144038979254359369710070192629756009806008103830095298660686256848353956442235550373364178301403177184528966872343494261882341699379668845445300346846180708086990294863994262798298011054298676518640400074832663096585033504276247174132916091582278311224091185855664565650645293195005293084235581893996118276962391016128745475983205445293407436582220024984079820395693963652933862533047185948840957254727123999909317721102267008683598727052248020783217609554425019418303328836064690474515293410701387958451782346741518013627299466332826510890455098140997176959722974136394683402670351060733195780176580785710110129607677443781743771868953796985927406045236906042067088483128440957744066357595415741120427187641084010080265860287645649534063478022889776753132590697489055987695693480658089620574468542466748855824616294244282003564426501195909935941803678901330123763008137967084667057635777714312458115553641949150865713653404476915258600808215400542386158781066860854051043758481564360302826170027027326972427203328997250873447875900052735042002816700243668971493729966370953858274647722003678924481200328773064216452222820846426830650880418975368041947561588277488050148151488325122391905139466822172228769054397114631344095224376933096613410875801218116575913164699486374668756995615012106724409407097926313964483487917325249157683469680044387130295185194592237603321758611678597102002362886768885385071661662337446654191921054787977577709755157004920244410636837676765399140641813388119987202382450368252689971540505422317666179730167481394928864103174562673794792058522961057576939356839858901004085334121808850300548816853550465916500085660148821585729548551777598787203225368256279024581213918405716131051255272974520576203879794375104774892435985309529312478337537343280812671751341763222334419951093398591160484010721044611456535937634684660686513194547501787434756654815681578588322587178177105385179726978156454213422942426894873215382601820725160458263893733339314654902512844767847697344035665633116580102675361307071047695828896014744498639642849625282884092405505296276992636533025395231905941921055980764657663395241929721724700764889087086224274981070423980049682351961718214885621745982645406114913027788951314767320900497938416014873058656162305961347344469485563978610834216618729489196905912604102438620185216266995827011942385394960010286290904069941818689837442946288270652930744002875664662463549245390254996740044070005888570681004893137746410584308578935798707411205830416447385298660774805191976782378596808042540546703550310746375603263907679131974783957558473644818080559347264450602929498723685337292354827153519542602826005165495363847270643206250155045551603052618196203732201369510086856225249891335026641122622298976596460526612955176042871168890566618966338040329599543614566483949519086134768893534807558637113665471354594554141605238250826388053484301195286918760413886866719026846458933524332463175927230361787634486536627077893136063045144441761748965193780042158272270175070379844224176694593362647001799097710999161621241209697583971942033438533891688288047068295023443030964893817210707610660481610896301596464118057960549424453030927142562022179991893666462181046282281023096954500774637308855546071651323242860399857688890536417417365972103590424737776095527063077470088395716939179872102224625773288420580549296959714761921931976963436483787223018779858488087453667363481079074027226602964701708628023938076598850517305227191981339721160338891849136829100600772394242364512502359800416080716613995375923061726525963804442970791290091187830912000117615641081931862742899878156257999983515657277086036260910986369136402816279544639960295042928920840777649616747111769168719443727967469335413053208569205463464448901367179660105363869944787108735142369924683243437136735996182406865370222698787606072966232179134063957388595764727720953298680011516626613550759078134585936302109438931561346789275518378853859194784879920182542427641264960127954943602724022515517980630110537282311371767203571270836768966538422290406081277589988390896366839057291793556345278235498481320106457928695796789822270663299841361928946236472779167483771120609945311081806862770452306974480980043788779217026259341995885516186533385723863674690700338503826908468824052305463278435816299003673904216566067525689781821685530938213423014940936813592075606684155209834648717751911703006976468425937421713487620023667602923089595887235004290464899514772801094527458028928810516555815712715816302098281943284621561964441699132401221681823199071723043200764462476214627785140728926908124927668926157872674911072353844835373999619819437592756166771090296536432847752439058217524962391954656492282858969662213760010183919018596087813165555113387807034819065506643397051130621810036747710282672724720838840883046363078476964188874893954531263261154166085304414168388868440683227979303591211766492477414320499398592579954185085546303142201049593462908248536625610895851146663925524979792122070305721404335359986535587811732419177162932096372076656816753233366579872458432558795677438284894387090193825438986041834974141729158289501695802068161230162705263921112774364488224426331750698558703947270780653446398951737541269222065035547621920234974876846682877032602941087116971625765237622613662828696545134099276119873086968736689753562510713118842577445449738866895080733734044158999745100177798047772920635279335299630664296653626092498679949133818463283291202804294342647640783670961437399911557420809154847214430157376749724777327699571546540948093208979514506316245880205343141274045121036013992200269935188939415420727773718384717072033039151305786939976308285722659607026856596757034042046852362100888538395719028661067659889239467441114526310453109895474246654998890731902058588421104562722213151850507770789959055937322288403075380032765509905822054059679716374725092473778128248874059450126512550148118258727313484564039818927572843144593514310528498165940447680577803834264406102105421617229015191758303082076439893079351133903426511183034437329670783619433180916073853651415098180216116840510034360971429937374963271891498888683017619611039056380452829934546929533146689552849803074434158024686084630516238617638252228702760709504839099522465448396916383933588974114333325430387986571617132936399106781946106123024642678202756132130013049643905584906572314481463512663645918472908553618738308398591273513861516110283299406989614407028882328216639830028048648491957536980081835096108315597281369679862493586991073055640299357059463318714568083233453114296332333895125372450643240785765500308266323732852071497892261705191710875837972210085442115164225640569929487353398139680180432256643333755681977689155508311114232330918620936339232543818656475946217882509797571134805187532167131241939263096508223988634764072745012558340354575165937431259547085221549776595086167261808977739835206036126699537112910533125569506353262343070554696677939494434121794412150493629555016286696636708494667731732212961386443769001371180749692011646194728032296120747524942343897862308569714015165855385413150883281762520695473350913373106348241659995677664358485186794385195384259703377197137397686391561652699978419678626644676352717079059010582250604591918262351159656505388670402239197766539474741814788317281565958285067209757427976099110235967287238210948490923686794037543075859661500433059405744979561208584027272021625672881642691887133170422619624862101927843301479526750649051938195196625282354331473466650482011386279452166351632161491198629964858355978462765781924898508763231041098805694375853009763576028657179135602108371589845308709186322012090670194362281850146983622422822745120394818029073129336721120634776296965744184780212289655608389004754430380861989185260270012801523619425893008815930294391767360413135205628049104310417061663624882571959799883928447051841063661154525140908924967579277122177468791270183496805924726624849388229397376233545275990506124409636214648491666753953102926722442655484269631393410885124581139811040435227496316577312166623438803497339278672507854273466439726311857996951984762109473761423182035814558424308834143892101802796870782537651026042184431993260970745811308441271136821243434094767069033048866028594860947211515394821727758098861080291349253954107198494959453740965430362259622250509988565242366174280157736990976189962619522933103734699364543225247677532385679187574750873345459227988926799453510673264810475764461730431219104138780515931051496666260534408033069612018601956677539076882245981313047192878565892413423365781128915845047052963026235079332377655424433475054611559847674043912288449844767708195934471676704409524192278078695753676736043753516420869275855727148381996755951511682602400237394996207122946106813582317936186851872630667583608066187492354629505943744829114631705463997530243355348168891121576014645675212817533251309673280104352979307471962568056049723280730275687250639933371707235027912556147560931712356846750214970846337677401206418045010061748741183901860879155114370230300387740787713616502898758332141135942116532543479731676776563131912055924798881874633978068685600514000645982363546710755795494285774577740764111048406307734338895755232862939114207179140325530933775067699416992117924509978525773580023294525881120754641326904635646531325393921155792760983335176133231701159592818494610984655819069835627270932302109247026417976235135197226603433581663923876994671997885952522516941712036155592884769511543023083976849566712008860007456017629912746886527302969188994088583143409972660341173415585859865553439827168883923480123588998640804001806865626183530876627228084538792325449730060416945183708263900310547020454817390152002362358563830976922099136643998509616923053140609504626156695084930490857624513196953930292313004834605707761772696867222055305711650572397865479237944410493276832352330890174745433990237111382738649701516719167835036390281626293520127274516862679490617204336631967231505352657208634779860497837268051344689817000127244725460560362924747368929357398151017543513890198956543530095693654013337765013449145794252784707869651504356685266222528640297744215571395027154927573924615703289170658335417751619200635404947068172922543150984317450498264050585673745291188295970854997684638708126500156307299889640996040417645289271989779423485092567977474328253713453108872519272163846618937040773646823570892326211823472320932662965022023256501293913656975590343676581738001229421027133281484186219429868182515804136695695604853932143953014546858310337948384894619447480825490205673057461002836254589309355592719572047387600513312655538468484673409240737402591510096895235153995373464013029839945176046280514940692848631577293482519496128299277312816506659750824561002019072073850612163857844385393707427305914821105462819312854047943354973623194343322722999173281049502261389287065342862336194573699982262249781678507274349529987499927976368267554459550943548474347043496808908740947267862636830020239112083167239138594659253837009491292729463505893706701767067221257881314615989149570992585902000639523244112525682708706015343159119409589099742661425329895701946156000418430777699228788207595751905194353066814801535751665587655955544385540742595797143974207047301330819780351058970706278377242860662950242808752023588818445637543133881985778667985959195058388938452443800731747788189688032026065669172870194908309469869940298015590854870094534121867086653268370961739788425174480873882232519552873913026683605176022674455077719654034382225766161430424572798209288528347651267085647203466622580315074641871637243268425826499895252708625865498361547248455674719747341045485406098428160070387214670910210275194225995757093353552624482762609913596765784193058014357848751923084403729756389745805125576175845004514086794682589514132226681615059448260900919841566265449910016914350712940225289177535452046573804618769888914588978989909790311955660060682912744994683564940898045451612841837091690703880986932908578336121955845032457922263503666519003417056745444859605141212638884725182001596297097233402273477555248356002901084888183919852178882971880164888328807841339736030448545868134614307947540309738078059190411419438647528885169047045584316948963105414255142590132824475518067700926914258370482118522985420485083698324163178452491359401595994344718200870952971120711302165917319329135549159356263081510524898214862695630390431113616509079983479563652451700084390109959247033746751369829600983553161170261387095682788879803439930483517560299798843130271375455183898739539046586799783043143909109190599300227798198546606097686995664676142748719883771865930496628230223183154947651072762364672283024762633057895423520415572295473472923253155617481798134819794302615874428263177764793857592102670801210828512223308877443987647371700534921113088882811084823382957489379438867188689038485909860672270442904644939820524406348904199957694231011797042610654703170504259819571869393312390184201120935692923855145553344544889127396397981206560106283676091007035552529433387022858460421451498220857411341606839904235098658579597389710714716137457164440460040510770571468575774826892645161814293327713959514866358245372643603921228203246820485591710388291995996430979878349820780173805101246066386217679929683552455953527946308905349226955945322725189447441316901442499725955935601988535316957819717270479123106451329973796238672032403636449032271060635817990725371152726342706423394009613000989319989797918368408637692053109885424305185660489992279815426373118862805227623155067938238448429678225272101279830089787388953354029757352324023741724571629598532218343078224171464211105090964818249272778984144965266133905810265032696360868952574635782158250294247331544771167618177593620474337889458251305286189517605542727806036675849004433503104588604672203030472092988322642839786113129069691820927103539860921411486494475124048888792119639138899144253249440008994464042794665770725540778598341603049185443992709514441036016139165814194008771874737842514025395000157502365720931258563464869087416338508622861064699585928080849028264966447744711570816776193661912854017164274561278241086642025027238815242880144743287691672750235564511402515411885155997387615180453175175995814000376399545762506602408476940120141222776258254674540066590013764081986170266121116507828058420843751272634936451944674170614455902959545469120731933075771193121379319940055370042187283982361523882960414707294273216212347572771008628843167401002383073798928546232253225170219410223000755142868879508026771524760846297525106397627954760521957002078692590299289537012804592591138679840695547030421697124489592313097379217855426562986645042271645726389784031121122409791783423733131788880730728605511469327425944540636034946435742246808251826870223194787788935513567304872213315950505340427929849178866753998448725448100841774731203056296845178015596721692282660754623071378073909119567257686837363815627795028938388425566428776467965965726072592360554278352022888239461619828209226950750370446495906857398928512211177748719302698733003376940618576616951264293359065389282708562246855484565616260854609594352152014789918832523506843410173527892312616846004270248048692672559614764286862236806736222757736295639936477042283851214473744356377114575398565249803575450491745957739117022458523568073143286507164334583269845764638261664013211755260002059253851006095824719197900904747016485076074615254765263485734992690157415913713461892925841871012304458140711709778441833853724444155893532125330157734656232762573287962445703946131055401459676830022688542198465704026089934366591575434410121266968544574034583494199521319707666081835117754891912143998039842340425412826288465480479391233712830650441791670933969205309691105975305169131917038857526008154624600179703554229477681853599656879286379889993988901620768992549477819076855941711588736964860620936013221836487135635633075687035164937382181613610726195495609435169327041307119903906834838106111817720164205328054615361659263274082829569554741624037170977523077187286618269456878482715747318086597570745809001496980513906231158948329401768797551787677775506578264506951232804868905092439907850523639308916477951620620916453462675704914586601074071873187024976891869635506479562222058935390323816749399826859326685724081496140560245430587675541798301611398856768522493842459551225767536156306450570257844652037954358091559630741414712863974254586903397060262652438914937564523438147877316761775737679147478224631843741556042961730303327664430730230553642793564408039795245159147250112682854371063958838203690667747640664396287881701648774332012982729785628576585614498202389918776650866484411128582869628459200200549110767381234946623962802928869481782123064514015924746676564283411304442150151650082807548779371012890685167943405049489494345734514786697997325815271845431271280508425622911401146215988512537442260684830032356343560315549393738078865958973358974242338316378896878159040444142111464245429269960136338318613321996735557057558048915502716662134697625395319462126912841068068357768961366223452849436636869693029140329893237472216568958478744012744234765268200329881564172260268058964040231376873548691309679642601100202912860934633085625749896276878374009891205284814197736470046984064598989984659142463872009372771114941508182749478840443193256873165681406290141254708726500782448586986532919297167078627348866474701133046726093744290312812134601111644471371368591993069424044082203298964968159339771111436674448187157234393342154333825786535142110449707805874623182792743592008054593767175088482285992566945002243218206453744840975627364853729145384527293222673270681199743951361894589955080795971334138984049128728587655673191063587447783150002527212324293781915050094804119288305363091614446850017712320564042692712817125703050352439065330715137754160367983782668397008951795606905322955768865833734795902114580452378898722966755502264797341481196871943003856479133142561371901421641747566927939334926676075360476026597551263642931275660142302985908658124424252862431253205714138549383801236931387637049894356033564640970904123667135948050096006355781970639495785403559046104165296741660503711263384810131930846734139982090164254221670817008747051386756431306451956834784712738881117507448817740472271608613631118898909152984305069089930231531997243737648819408933440362404715486458130085536762438186098237272280904814620833144843377691215266120653882188405021219238839703987192376760370151330210318453902855299827988752628708174669129734203344284898848133083074902498727666795575284160230906851073133603735681018554694997448522824969053475717064391423549758038506472767073312071443000962051374007333203367030316457951186645382977334716742742829120753019994003038203700229241987549457772378547729263336061781654094732645088312491033005814871173654183345103854962213578608565727510467185281668344084020484527604439345655511751694335501292332300828195275328103410570325947495195280217849014590437655268634323232574705343532148580579451179894860177571239389371886884804309886286071761719241151397890084333446652928361410510160110440679937875475181319327808422758463950925040753961146586188625786897267552401777779404100243456220864262106040567336349663527690061734048023909738603410206175663775488695763835402461647463225677150860499562602028357849300095987432629945930478284627262612452625816845580639337258411435945070664900702658844828495102299244247276649708593767359355122320384498628753808097688309556286149055218392003252099725911718729867308591824318347032933086689569249208517816272530171729097058160138883173678440659020098426668405719033414994719569609598598238678685407377036015538990966257876992121554770755563577259240230048044150873707024394521452917318636440516536773358262534840086177840296561270657150566109695931827391329087438805239459417130211807263681775683208105956594953560993378571495727806762123725236454552498082605379091609146659099319108106932243443555238683373943938033700999314857187521356952517202308610960983394481972364280002329835345434508779276667238237512845598511908005815231727112447395330335488396933298908827527562994474222848895968288957952780216090588818038142389465131967285014832851920617319593854775427262022700327497294885828292941534839252951440380556288536099440240588826121118108219286866332262666399463827540779028785285525609347310037129645604582126320923774581622074776219157047791445446375434068958856921134898717154184552754497300556541699068030523807498984185749676147954856817873854928140539116812544961735013531911003909910785934765997340508993556735909707805459985889380476929894324482964429673042838986432434524073498112784556867569017789132824506657139993271714104774952160965464797773026887587907090731889889956360535720492687176833365832693011846740904547282901308318562499157483059583115194822225949931402518115589008870223876240667303323247187303941502376919420778457038178629468304439660296832790267027054958832464464497987650301154762482679061747432505008838618154004651690838975664446644203433118500879659421607943698431804513020543438313048879949081625073416711352178317975757918010497786439981158166259042477331130843866529564070147855700710978577620991734121584620759147402783084261812387099687160945149185508187022181468689696675633843483359542360811293870573990714565334972802138804801482190236138807833278432738331102923802011973725576088573924018603316006833410189575252784116521252079989046643071545293059396473207034741201161344910444885466734088830397986907716829063535880913225290167554195860340805630022829086416055493298126960125346997550332305246138917762971855851812039926324666701645744463667379111483877117509196822777129183067941406161591508741702476345879336465523628874790331647941629008976226368320630825432249187335046138193448301576043281293329535550016163239296730923390230514959697759658591070595314409133640123921724075672685568338156849154777384780401812019770103190056829052477776733473032520369267592090398849348138921934248978221934800306546581023370636186653713228526664470890594690823000143208210859541357565936692183295787564104523489410889776018201235940894180115598501229255938786425452682703935161125071355029757061638686617844580824350382382509701405890685151599016713171814335060596853160444464906824771292117507987393421449923194726398982290416307346437423879781729035432956232297766120339636127070518800933962529760757367765898437298131912020066806477649905898161251338837866866018674442642313642597206036750009669543503119362755766631655135171422501466068008524041355016956085527587566785993249170902687710967350800283990345281092609217662387766666687537297059226465722578201403523130892625512386258893006621444449208235922126147537648382390776790517721732599311717396857901130344437684920747224357524881282655945503435132994222239966903559315657945264208447912153034430187116746528579296671595708703379312161219187311910181605764246728733818799563824995410753197407483688235168178346790242908339007391892631470603621356015561139710898926914556535860741640588734829382484652846783131136428036211363327647250224697846319048929447258941924903511484743766887962020488294890864679014054629826871358789335056299063674565423005673577029558288955495829580125876944362446793463789139582139368544433097411245491747038036061746905478751640898383788587596340079998655163824873850357582944627730590563331415999006930421813878157826764913937953058261633129788643029320101923066735625261793825219994115500908041251241788754659231014951065052917433804774545915749814452647863244959542715312484941875260607453803450006796088304055303231985152816893887890566766700441526089007171514798428532143739492976906132147564276794055581357153631668626419049908483820180656163571447603164758159650439605913777257223407799314258790437712495944282824024513853587281934865846271627180203867894652066842164275870725350741971943875586834609797914894812360581813373579197788360975322539497301154202440641315936298016275539314724030485071927605624041687582336027373119373675264432692954124591575275417901271459352814520395340765721840240639914679608949588450674635352655536449192659220277072140444198396068979559879962430839183978032054638187868960551712459011048825581017104575944429805397543902370119523843192436525332136314445763504886312122197915857341857991465096120553093488797050620666864756419667588582675868632338061733296212456568540934772436733114676090229642642876742309667046781421820155307776139815538064692604900860269194371952734730928690584663487608971394220676990872911654891107525659083455988949724894677058270264353394746344179220375166216536237597590414833024242757524145883214935725061622569900444610196059018176838384165061586113873863047572633900624763785031001820644994389507081401165393484832476494721948187072132822531373790550353503195536573085158674718690775898581420448180737041140318861179295514763749415654407128469714910549991325235121245608945348381178417374757551349121223228046855627166379542315379376491826203089915801161457064650617136968649761762311900548385294101919001607840135889288276642944380170862929857552269055776593437024553928825648371976042538001822873814157430199590684245752771695352489608753058846264573223367192989381303960307611936800837458382712945818190449800937853086470253019975618276769655256719013436778619102951870499305340219002686478589034566155511397747060896732855699609206085066767139912963267505180746278153846234684377617687079505205547560984301495969716297110832213623222444029101332817659565130081261938760521758656113804082929618718868233397627322775790799307231486708454193001953044117550332899827975482199500632286380920219336384532887660146031938366923395712488900244857216495489530503534268827065788517138495149031427420744124549809920622617795075035234038304814871460172208833162130725944473342194391294325718153251215630556635645454270486349518067482193925743244847231615369183492418853757496427896028859864211202346171353791993009612008553444913444547416178608912577722374740704968899311425115227673552561461558020698588827444628418551867413527064683865533053960204910368986387089673801107019384531033933760572148782520243382144130216637738212058712968073372458728608892972648817049144145116880237751279263398625401220565842979251994556532422702598706989442992958377453790872114206976100136799822451092758525066232969487431824160870416856116123806382617804235557844999776358104379165438065503824428452617127341460067619178759801293707840269876780264562203899535378670717070188083112582100240206624081388632126718364951445422022511198075204375121677686572538559609469087966647374500414558124538854760849910974529105879319112546797732182269788823350112363793017939349740530654528067570598630001999517841246782564004468627077303165365333469870736489070550239633385777457746229573764047898184875641318856413055904082050137969479554590057969078021399700060701569759253221939092088855959718042987514590157586514866860506485179338340584608158521424414519175723379538158310822375808327951510947678079814628345389079625277988954461431988297612609400327385815188848647779220756601774180346440867077187884871017178680791090966154816970893955609440108476453112280977404854621895682703680878855350370311639272695435112833670658650173729725888493711918239635454322727958566681611152470145139074230007038768277324721796700577363195058023995466772062002981462823037246601077206678642702651984055617671573137301687718760224667811649511418121720770134041357339015683448646777586190211261262052819088737999135290086402179833702627521522689649464675810792266390587811925031450249001378623052870212214311992513863016040465721033133686919855676311793096441369637065498733022193828351366670830458345812800138665273844705074977760498317034789621913701092173437883265034396906388252483070455143962606826045928512454174395862720732376071691113907678998914050117074551966581182610451295381674233464791458155373872766697372976040961501605584782835866392754233322821731242479946904417175832739125815215308292462200732544137084990036345574782613788325022726311082217417383781726772685158128767385177831618836790952449387268393703324660582915718612498744195841120911812187126104671065661549230886765107654547063578347633696737438526057550094855429434093393040294357296676047192869858961773185501017737391949574430615910328596840336435787214037935013712008725186621717001858674591311832692927449729622195165991264030040161277396475013187248993559873740062755892775619633459614596115974133370374159082603281712032116250483545455447961296602284510506399586658699764300226249793237536016944072343188825570852433949138868465077904354727025176786148215505717069672524522096105565635406100465630641385022569821489660904501698570304445253155811885279612480391629293032986944889358333468230772177686593548603663505888941066105350683485492194711995525769890506499189680314402685235525406584003374072308104002774038694238027338074637726410928964923594165619601092386083559157938368198418071469080709027273981603395441614026784513793017738769436204998277348706035397939653555724025523459019112231405678541080652217452155642332322898098458253101386189376448328809528017832482851280187031361177286992304062393412375205082608812653607255539849310323526132322496700938185567813019002291630718409717700077096501128061191397896520088766172702620708868003955839602084219463875754248660576761157456549862909512447211951354823857846215697314875321651914598429170294986636869824246435591350137165338234665062492714436430062725718679299052980418103434214317374383280363068528799703681150742488634623323408839285702425656561811156026710386215110052049334668944606478545917081916281409186620429648078522460407540413708274552062575537746674140558517485327958383027230363946921027853364715528889646337629264866983713528601580825035642305022126351518674357523776366093005781406986444588602207381252558284190966920277988881750430402682925349719007966042135573444707729786248846408883367854055118121188151198185930009098779586118400511836135006081876728009974593483759948199675036497322550551747124830728085404509647495077695876470609832204418138784180591374049016674893720073053215919994912727045882409256103033445699636374378721737922751972223991635783138971967844270496238387395207731069845006948741006546611352110816090029458290142541487440278252835986475534660623767009267643905236726551596265859402649563535996329644657923218544658574345600039585126984501426331633163085236246493997054828264290024068503882179433493542288284742879317916351726833450786158731095107227078330138591222184887771965061796587520637172195241302723265942714048120562058140545767143587682781968278957932483716534778606341960795772773247135823107334088790903881330333722587162843572409321940111238180088328321642672102820025214140939439849615377582497002080841654975108273102458853180627353002152853063932950283902701122566502674968563618857542177723221579772108241031121134145425294450293190923176790750969682261564245322481308286672132837667922534918329534325376071460245037473295984071111685872668389801132054003600293682212571498817347478415427942000935385518231243547146918787392815946676721839844775741180219956447225917227995082696144913197974794831394311181776197962057615331169715615124932581103230990685415746612456051104955785056692120853560281180138880565434916891802357180575259902078961988333627021209060731842576013876078389250984237890377821110128520697816348525603551841307670542623478493329233175041400512151355176270842202995816032931256857318283323248578773844625599165271379373793705535843705310130147989032510462270035625394177129865909768630824935649782100950945901156343587971120938960179575081486387500703848123168105336082884288529007724871888872229982028858046298966731788106637980729575289177608775669935621774649683714900562888612410488520276875929943826554267440599009405906305223561980875851741525418075762456079126098942614884630398346465263982925054550648981735114801537737213867804472795520392339895217923628845850735302933883917033211397549810213031499168381286876420630546258112714786933853147406628723227024297086142274079094179797271562069066505888634031552273141854342742380599019836459735480542851227683740499269749206925612519436974808620486596064589499726196849626421958367709087969564062724832272799738883291431964364706553989501004750534090777472651056773113269527209666203527269198883136135663926033168226199863799628906880309317688655939412791596135535047783187698473873502283938312916941406356329207704733952840951783806961448363737623004146363862777067470621055870330358168690614336668535795071915099607572832585433660328616661215617069644258700499270966150652039571445442312929712709855465011146242856085717066726597947679437427491170501772495389690628728058057915431273917497719868507726510354273266513240993105124514352226907994223033453796115227907144909778500451428167033960157774774992632657209328002296483268156037381441455107173408056325652739305124079651416112032171541097654823601183020920109506490309459681950462156013444610500403751601409001708147828106324464590544568652561381955183962716140451354999388249480293413135254558125235793341047046244929138691859877130819766030973945883735433745293264932418871617100016763691789720788833795016113621541828717201260598703329117149385343789616817715840861433333244356155005060543736183931568076528400252188168722810629099321758774147936146322263190929976965410731324319423031031374045614635463138832236024064011582942003951705676818209116345182446251644156215569397690573612281448727196782780503937517112575293250208565919608283944589462605069120117324474022844204702056251020779346071660076088550939025653168839000921161177041277046320666770334739599351379760937038386441123802750607724553443646934323334819179752858749267283418198280438965453860515133361656243250564105318616126223859920459090848517205798225491204465817583844265893074406013245669951660875462537827762544538077989486858237504621470913522764055703610171589961377937520681446072422650455008079779899874388729524577876117026404642552708497773714709113983933225000743868960666985530581827193709067048761854596541717497488298646338469391737363741900445858363871892434211177896591908081459586039860253943920297436146656529649346523575879665854696953808270509544044914084801987719139519857099393492152311861023772580186975217592771614474260329913085011791474253426895800826577361826834599846575246085979889206752530873386808965692570791502212824463191476888917914830777002711462758371153280386026107815613714024156138167989273474845189044204637737302107789523774696775060842931635059806257065373169628753974478631663527996575642872407957579363365624726248977595298798419602478844640774011214505280857565792484878440941100943899180076028662379893148903675456460726048437431956441719936827074194063472478720414608731811485626063575758915174352919440893616737925556102744875547787033506181072318324173538049999428556193368030677492443816482500472316466812322339909386698266533020971814619122307411270172038326287036597176254884729814816820122494693448915430846045349970630600151655342581002982530362909049006211532667949210607160299895831963461076213949518319897716063431233082855605112548403347997464203150673730191706949559975955141303146103602724273894556931322316264785457317410378757264421248566721800146748873740681038404500159655308134984636848210540363868092654257727516108282703688216063696690553986958182747141670477583276090813849767508859335776055632409664546483282052934654347715732986059387053204889117479142840431935674373751245246796862609610732828998418948586833344999749956441697104969595414015165292662407265545504461887221792920233289630393147619920667469487997177184606869868619137883605072387427802089947951572172909313460997291005112696348680413640523149744768555380901403400089234379140836684214160796464383354901629091804658130132484292959769979890589685356162058316225517731821322063266577749466094797092845334247147033063869221647566416101939622243965571060499059295211897433305478392733050186582954881109910408781495686426832316894915302086562721592818257120524535166072273869799013688666274641283940176178976158339896202675645415079995339795389915293535386526737859395316534558945307643618938328789902838316321893283447178827202810717102599714906915823287671331636260502064909685428593318919077214844152556922653984291396895979317627914882232142461173550718507681882686326867104310545631245614378120299575026339961662082097480644691139906626822714154801402808675366867825624207775143565302075682140750097904919502319467918937787981215879948112672637933436188370961134673450706715369284483698126445165756361142782468841863845689145143681131249206539589979581573653734744654605378184646245450744002932000484580938501985757138160917489554139873111064537314053059899857985129039496682519219038722611061453502132077108746533404985702773180088333356091377064489583678990921229374804962653724074039932578621090197232799220924405985985456615034139634562760501927654886487595352881454533663624923968356443760974428463699121313365138851563413532503206372336032483534863078425941322495809405842723181145590278156747524206652216664059411765293520961243771361091349076364636518796335873772677699651390722719169150620387742943293613628039604978991190844598755654857456122453972996985721392310608519420827596488922119329505865360251916085181921511027587446299304611980069593366334280149455326694043752653010149653251049011881415965569976222149925155423734325214399749046776088937837480307185332399651758409036721126901105581083687693482326349567295131081705472212739876153118958307485961675036079972578104127245336871872000642249024644037958849068332930893664017016814323737993183019687341051349404975478846033150549842743612429770993033824338698243026033931733616289316370345384542535180139354233250161190181221709800773216901641670049173261048070747430030595680445685243417262034121708604831516146804807665063707195753493230906943146348689134995738829773316279282543389555567329455030301850557334872948181433835751196254188037596752801281184722678496353576434377402031588276893978106444472169577185162588418008459235923405736340961312622061738127842337894516551625124481667455784576991418806453896465480358497389925199388818075399090550598125870685861575639834899822341623477867665116029157321099000980041572326047343944598654817674525376842370511147219198006278607111775304489171567752080282054689055722026967200453564979911305661408820920830350736003027924981162696780734626862176512722678548301081639241020619205105926244572977265833150030417065787504694229651923660955452644662764051249619605863815305030938067962525435420358781032045301386036000300204642075898768754753798030821271729613098779703740276051541517695477819055005879402935831821867586874818971178301917853445101980432400910112909779941549508462097528054179669892084955743474163593872134129273221937178514967141209875396546829669780115581826974621575388980720597244808591551458560490795129988061617755206166049634523646619468053171104061107866614883964845512658344234210404812956836257585959916503936084460016721860817616604830233636378583421765242453548158434640639433748019185741681642840269582383447806852462418438017731487878117065235679309229055817562402585275416170445746989309473713383643107590760553859912619345451162507938576307007054982440222328737691503647337335167627100413749344387662937370516075426981911008978510252326697267002283645604229732284831944428429284121530798627325069652759514001475740524066806356643025480467983190056423599028201552175193768664510840211054765067467155244526419473714440637118535656647640222339402221060629725476079840346308830708792250993588782010099797830679359708016189775559797893430153616280677447440362713628450016814990434866494825910298837368285081040880525758035547191287500026925169271365483709149207190416305753563705237056471297121539216750935364220385434231047461620365291002739517938322760025811699826904218801285647443054812646754603492577180640670980521135940956804620658225052129019703586635224739550391601826203826753273107338266869464057222392484110868461359981524426846429564885101162993957195955485765544780457483685736506132294086874646934957597213946204944474750980121075005315631692283368036080907732874492816078180996378151840220449323673189414371480972019658655643856538066754905965518313815287185755485891768575656569954831751237396498821256071968839375715143237298603904815198894733357503149333096218167251826867998169170772498412668707722166781479503444289816120230486430224186119162458121655026431725063671957413593147194964055209780494409728760846508058632890280851788223385421833043746960057506002186682475893887275678325551687006397472190733686955470855468444141256032486183339684516988370622554807001972926576937210834496008322053026825815839378300177506407290628149079718761974424917857508213366312650613301896607508280402468541076524874994730502954850261776070883965246215747878175429958970336481120251727511617052804369243939902856509135487778795494117731770445503629032175006218726324722037035517798098014821680379587643496170543032729284581451295494385386494619331977835669345492926018818179549842443109465316049279952726158630084968054383528233540587495809830472638033061716961246036889838763245973968265095441285503094743319409973567638583800818771610008068824722156859343832656273872787351547526287963841796805068386323931246920957829926075180524695052241011717271648638626277762272133748743079445784391192484046473993300920457220365772753836342232385888430977692535207874898215484286651909791615456073082784276169457143575060746062999228605108741897869636665646313252014760112279554410247343241977696134441236479774919189943735885032909755265401175687437712670318017646828307910998882656710212061451089539408790315284031280879267393392363589664126707842769334006582264814884609788973361645797033361105793436487672426048852658782111660983811130926702111781008436105339244160731132803882350200946728912731123494111193937364947139464720625243957678158600120820433165842280761494381171570944926738280440009539085083522403021054479931525599090213633930621743661656666515520151606205205340370406994370139226614779103419709511796894583433284462612661364283013148893382533428715719530086421318760615854895518539131166727461849527856940760789472994279785676980943177571128302282055614991998515750228528230213334744359610107816418293553188026870940465410303505466795079161473788271114317081100703909480826630605792055842196523737720611434435652182007718125945710097262896195276143922120940844827821139698531219819975147083287980673214890549944336970857566359845835843866228026833536522233394734251184207390626905804527107041209633409777868717763289407951019429521319039068726940661962268815896655343790374910157194247197801032216304306127497808205530128966974149652971529471292302989928637292398964613099305688696240490540655027095238546336912507370525745803626718949423184226492445832424066992883591471425828140591484801212686228601212405818400684094348494728631398644588054144101184104911490955273423674142461328287101852065922022232145463585782293640751380579668289897037189423862308031843580236303646229657638904314673756275610379165388595672041495761382610451559346099313503613860025523862865491929459124826181592586668565507329657132099925238798798316593288486807667497180840281326507822996504969534803474394874921301862770557158502038508497371406807239398478244657953109915121399118804156949019003151379290894957173767278238120987895509698964714612651023808104197093834931431882172334472566115354147782023274380694972359198232321349909147446674987318665464357425859755704936856842814553073739123195525759429533717152006391176543757345677072308117504874388723638026708943932096891045293390147412437146579221079824618755935940249323048188163971845084202268795658204883700120906781456601463560206201392147666268907756106306170502587999345201533801201975287867658464930552397530327296250010502287563095588407022601626688310514654691743530739966111661290601583351056283967883276360238754039444543260494098606733400975460337290253310061382511916391682230355025803788941318609650514088423425103674370820622752932682294946220670459146014978603778392924521562930169834084479987923008238642890219363067605474142068486454902992598640387901500689206289442466457189738093037434854964724018289230515773148893121425151362330120674133189273245597379864397163371910954180142352248678325530282754291778247438788796933864849396899666853061466850656217566621422754953072723752688209561474337488171658948405332837811374550740664103468295177154617354272063782408844574682064205039887993254013377678556721908610778899215537177523287244399114633688666574581123670872106276446452384102799260628778217300811819206696386454416340422339153923629264933684842151185966704294465976735366925400662846800602456475594479085553493986727988993535536875017505152477456056011287564637006775395127074029500638999161702255939829615101230110709729326735673418723380863717078572718581875023751955162040021670157881145056036508330926689616295739448250810818277583768015580093021236607443048951966001481524813532313125005535262651317325183439209981674632657852759802361365387519676578536657390704369476713677401433401301849099474585534924423194573648288493691565174854235070436185295662712076685629803123391644950542009872574447974700688997355667614484722651745215640401334358464678992326020784862351459674498765374380894910345241994052275417084052445929449431113074850408149134583057195865250371866961792949085641157685675520073199935467977778292395046694775830499938136981999130291121896738634663316988188227106399225684667616813583074739368816059813548164522252346859738751273494034296965449419752471655481190257404854855634197974255827060007415334247163994992580474323784487946102650209536166401280219870788108967292856790128118369091337377037407598653400645928850798913143969020058756438080015832526479708014575933231946299789771592890859854931456778789134301304922058220852504529340733737543040792976643131854371012806555470913706853563485562151312772983810740527092373357342017622900955415443243695473160013939701416608214497580551746659753278019230920653534881437301388450830665048834846799852396450924812747479221882111955619629556170034144673574454309855262637640564689214122247616813925182360745785839694422757593262440875792774274306467666910786530628990527039631509113194197868549974188525949549230295916942597188452994334556326440614114476329945591427228844826638907840163711135267459022697988562656974578180064389602701211985736485564325677244986254834565158505011492888226864541488279136475698270012103459614076332930937016715952105077004708244985396375972122778581836298215056595119228269722252834850644585231639281131809505525486546162991661433009382295180307159301744466210496785850044066772968579879513401659468929286388288822448952911993932968236673162453847967770741715750811029213745741130355315241286425323268542173873080215724613325850013544217337441945405834351747459736264276045812246733802078987124746313824965549079345790727467652024081789026699744894979224371863469428223217573920915590531611496198882694730019417497231019117173436919110813819510355268616018317378954379150272066174495221890453816544082701297549595961014173605343889285055766257682974985944396853389467149294852975178677821731976162449819357412065906073500735268627909001163281831674526191880824820513343717269242680775561450853734753575926698664063704067920963930123347753644295273650113552422027612567290863139361997230988474173616081869919845134900419945710403536558599542302956026351817790874251226010492301791366658748004001471647375581579104947328635317760592154764900194300508743485803225744293722305140438277499047531972764674594528012126309835222803238915782931548082703588587851347098446453039320223110944608975709668654233232933610834068661643927498160886960588229559101085571134615513469162417828996317469877050495568530312506746792956379561475562005489640372341925083216213643314210788453120448841448483243872476316200104272164198496087192080527275722818831786000572805658566142973032534860900679420513330487331185767552003309396016303941735193339724460039913524253848155275635863781355865489618629663587743202336153835807569292106228802613066340831461504613130201083682525297729750006345612192035450554226531809888275819009447758168065381446015128445035494329387568842369111406577936776864812377265098094432080063406993112904538149241501915110444658125345158601265654541182024461791247953349360431946566086706443345713431354515957938946527175963878653780794865412393498913876183472782592430779971140034058493792588910831570251629994005769064272690403355128706661669256519575454598558062297828294244063654020952216462860223497229754795630640336679561247022870188968591408235219339967790071826129425510271426245266128256219650873553423117534445616765938570235114130666727834730077530833342745948620074822055740931076846448286710235223561838915747514370383348603008035409670136361179220274093861886738563160396432912236884764147570289224047360881730653195789321879583832819596162810798090921139105711099029092328293483402329861937487874522229801538738345138357126232328570897581031878254241786308325519031562679489674668072168251618872231265212531175347049450433699323322561510178784898481831866690697238880496954106471534143187404887702487083261424739093944329972433863753535133652783793579493500295707372971107777943349726567558055650988561510798439509711079327256623949355597195014973294758194749389372944175061856720504271146597552410776651557266444962764557832140681960229470669082186113848102214470909254042726663345630479153224313789795362769915690735929396132927283386394548222520208923468291641872788578293911182995991592706764225227376766026814425675743718312166110995712143069994319121469109089168216800354699060164740759383806247610157142336386055694560636035774288726104947266899491586725762769386797592438206432320144028772204472321562959728434074696953889306051765300965424047863955233602456874589213816398546201398438487427949384003320946756495865832421171652911208356810283370403298968609448924695162686829213369387384745926013140509793125335272659316659579547062426850762805418080098093863271038720002018105047991218581598122234669541689910641050101971859885008591528565949481314546984818683170158798676875642334338879946394653215062769748142766837625002660657117574932751627304238997998274579018687864869095745214662076577157567195098920721885466799909714949832279044757635749493998838996593997149607826684950183676977236388637851276413988555553434591133884984525342481458011988262340289102909726614075264530400823475116771240502390053059255906484151956454929133330087568586891770629416550660110780444839212989871669348847012461525667919630446667576084037453952578313953337052905593073590392346108183937869267811042233627093826110283239203723447683926687860445707735035924249565015000294182783919601404282884452400028372174582931980310965566913432784585552764806240137998334410709667381279577502447209123676736043395148042303619916155816180044103990393050049705432163585707510524490005606533863528559194058902671898988445177834657052272630441035300746566058986991787163347278725165574215875035166874747725560784353974292921452249935040975079888880268518693107149342071066332009301939462881071188376597830425978689928220320264005197815835549188792701128019844162925317338643341294067473433570551722578550627078246317353106516877597007568484875041586315283260914507704315934633820263368003957768866417610841278987534194913823042483114488259646539510210262930719168437569374071568062142445094878786170002960181650259804719070375760353057904831639527259835746569927371671768706809241294380959929776214866683203350926616493330967287493971747502182241856182356089884768598905412857721077603125890934961261480829310255803192688797917246045844297267735079720593943266329293722008113372349012566047744447895466090388732752351176129937089661570728338179805634205641539807267685979421009970986902303002734490300647244042847936768955564709632613517129131491910264440234382529442857600617710584703048052886892615502662469014751364977404715851806010515468836816386061875532891028988312649845335465417315712589569776150228741120885196918578642166923198550378693350686978404007725762347214098340400668296915372938206650452201432250708481347836688736652457548855295259422558042881300776934502337345270264158663725976800526598638194589331153234499927429582528754378599181217369079022995234937707499128423894712765444880666675566988779228476245644266090993058626627223913216467127937491207942854201217259757245273501744256020402762100247661524232788292604367462089035761223643182783102721018945968415929809694943436670243151818704835390277388996324285276224029947018721900375718336077136376573792322603599845305704334075697769461441931472700017934729385349442123282533495472080802247646214541366250860603744424723002744079484833820805560586276051975195359003691693426188034622251647310044344342622538286466365642688240909027863734150395110022170465657275716211273946997271591549585025964131230219534981236969537970892534362900827360549848829389826628030484336575397093201923290933881480928322756555732674692577846033686794733583803838360708413069766604182318556047516544280946334993486572889278883021725993230098569056361228236160489377439863654153192340183822768894561949006272455175113233028109339351007982305238342783064125457108792828596610511136546296390491799090269266453497531051500522803806354932356138284501815395075687315605469361056183591502252858607872006459765808674620331229928065696564852646079338917094990110668027596591774131586960675365505620612604005134951661580677887092055913144821569942446218753754651101021601312002899626562775482491718647294541922512315021114774001825521811017564694266195761680211196985748894608772414738146390981964304640700598199944039924076555226760807610267363141241881263875541889795586123393173186889068405557457467418619868351807507854791456225492384018752786865141010656812807659396869564883769225946218877321812670340265403255260141093171221330248753568781904055146053154914035437097936165072877139448500824376667578364392644382997697137753471193941885514022250424525475609942754491814916636064411746779344363013462600497193428355450672352172723360794830672335632725395319520015386127207934131970691500686169123257371482596489030846318228726700146110006972577964741093430959421838198556987501192819859068489003110787256204907212895351198607058949453095754774948807548590375818959040490567627709570923342467186236169054542048653093786982220079538018680203064658820813355910723933410736245024580347479846157457406425533977623267494780619452822825029382725204857270302339296267758288676533281713965127563478645236400305816223613510014923431253660698763574851527574956798083439928743775838695065074865886310803222252432444930689322518208246062898160250066685875239239879930295189655500117656612269656280239644937251096343234133554778280439653060357232135109730474945178933138715843376898247685193355780462429143851225387962918144662252071059834807733641706507713450611862481366794600337823237791176913428215294239447329321391455092521222251090134470687759381870578998517216425720597036931618005292533012230146710826134665585304666224475584079122303121262736807463309187900055559258253560728238745011434212514171010532874256757465398377302896989896237019635620292482841197882825483745630811438966979282214698757331918084212929595038870023257284687437592492457952601945706290834820939765719716553947540806427893918285355059147427485277603624069306827044930103152847944098469580724039334785369953498880801483811089466704373998961314048143889350661753015761136108807756325663228148886515057596255744193454961231217627213226269744161425399709255903937785423394520059497646840323851035522869402907326292598859804304978707614297092117345319811192408499958435358542205456884153070005249726657968160738376721523821908231016441098878000436462659122920446944560555614508773722897254547836405136990037748431108767609502172839012760130384973215673594301735735214035439746085641788345903690683744487624489735159849824068681567469950111824613736181981878493354666136524687498098767697828539374464103709247604748562569731343938773168739444825886979792081163158071142392403717598475843607851407522808890903677259179597651457847454924164364756630615689766676103839394267500290329974498293034838441004414144294080651302607510548981649867230865716763642121353489069422524541504655869687691363068322273735330115836014000130789317577782927806316403532512864258718821121639928005211544490706962680053289597927809053320598309725181694349671476441278843388648332947682986247368587932169435502502866372724195808512171944129426501758110328815976747734775489624200387217593854563573572382708485378553646352056245048585419863725327479552350830136788295765735037882590314613182804123030779377260206830796617165774708668237812265713066078221676522672911546589525723783917230787402883041794406421117327437334974033699598654722820938158821023892885788766907508197957506098903165079484302531082789535922781672366159987654427641587505761738976892198839435807665437673923710909678586317165393686536045219646927822434343697031733726536660033750427469836183484844397093360114425353138657124915388913935407822179613950591651963644738145384329975400480768640823223848394346104641330705412981706194154401114850012604469184510322071377137057913023127138913965531276485664644628310912211008030095259640632255856577400546008084063228470458349071327925521287395450754105837957528032655904976308183703239775281050384623593742689500941639210914149583474497356206268715130343233923209562075245371505242595956025361897250581389716820058949994112590014564577279014750147923372252801340010746819326496027955711888319689328249822151739929796874301831914154424469181795162204069820958555866607520204589533598611102878511954026201477669552893923188201816864738853184059586981958322035245448422152895359208109384707606753671849821986513561965682020366710693494130174394851211877090281632074269703176753905117935065905349427905708651471441783600484899935149255657993093334675737933464144089137036623410870674223710460365255558547310917440192888019206075070340822097922407569980320453456421886914931959771661539862457746977064048514094345913581462449412048310664853236883688509773843206522545386452641099474029196550899585594871820013762948541488082643310801456286307373735137621832728307025458563351531484630459994796887822848747357497022932713431345025797424583301318048871122209063330332773546002021540984001569972437727894309457150307161610713178905462564555825165820576943123091146387175512969816174135553664644103936123474821044806143730098222942697280266835232243671201629971349589931660902266435276408063240152815083059672810193060019274835082610723502869680589657443702985870204852070942249370548375106660574082304929172172672040272184161774737489141573499972383605652454327106838905344051056393870023068596570980418813741106138497614689294885476310555459503827042701214105889017366355052560559854904116864480690532288449188128924229143458543135233874580810618353413881228255922313430627980713161787012063691603786914962633912460368532847198997531813350677457132024954448985900080989410751051964519493846312614864474374851097004339883365615678924878995097833610684818243489911870578941008151068252654149436770788510587059264369867131441385178421034472645876756175678432383536864298659329203509025646916570154026519549508072605454751998605352975506976669734362013738403044694192375353417163005907351542036798334405730555528905144407725742967018635349149814152810676869489540658246395033660970937150459194948235550015982502274901190603807825963136402908803643598688793503490719556368425141447332107250626649415077698418376967612272060348188261724156404005147828453634337101356726947614984826145524317799523889476615347958940783035506534031824182309267436591193182942283867848894460182673898385475669769668071721756776328055368014341822507377738109026313093986714310579356494753924270487733266875764444175014019977174496532405746543797235491614599401534667932738885627236873766272621968955524084851675294474471859350749452623227984659895183934256907642176532116217636276358905539985216002954041398642618900451215283853699539794221516684947980374504579159392469440651459999073239924513044385558875309154172806220184597242767152648562118845610248966502530994785318004355432690851287020404089939046124840588460883604861244941393368339485030180845701930679804302579021791105969345576151332769553953671143790630496152988303132670057086953148117412591365296879436053043490616487651008908263999977821892293039533967588689018953580640387219005927737750858744946421915692069761095003979837472426042570012623143999450481041359000846990086568143126360336812699618338686268644933299810771232922768802108450591177835910663949008071589750049065374980768135562312429308422370878443159505817966687890441916881639947305573503976673162020376251225654384819428095912179304047020660493274998128089895700213637982216737104985022534332544932641310913139832319719859815266965783093046700680182584401115474402803248235372513330557597684251258717297048179080171876425250937251524907672974863726200232085503235892059262727630902411816385621275121225297380659533628518966326484795833572719490298887960892686582976261560387369857391168385878096372345753432987250436024958752195383989232607882900019477599099290480749384892369253241464109468527136605449633776921210165165728986639711063105698692633085475203097178158107048961767633320991950021452088543927324147503050346949991076761715010951466317463825146322298176160224051819009238880307819076924643447376007614756654258724026442112439766007745013468630537410648243655666478820405956114407077926725963804512707207045700927882893023181726988874067888763735331920816482891694328485011861374966956704842880579187596272412045123323933507653712651099038367414965885524452151356116734276429417291847688066340946064790561627530064544922943379665016715753828996254756577438187395267610117362224826672327032283002629274225945274919147964507181252526743727612036602658139315574635034125983305562103005442271292889063019628635537052283848276290413455195098996428860804834403279433843413199852689731810967170917775773759830820890877248358521597325871901667614167090227887248990274352090167158503619388715668823075787806010325951663964470763786425875050305287725673460737113525179930368506726014343503518906983108146125362258993846636806407920560220224590805803829700211281279572985229084996833499570552853605833245577706811289478686158308300273087636350103092178588901192714915647295865185238826726910175596990726092467281413158606779505592940630745206097387377403808763564568367213501641531478099474288666441368100231377887981746488133946524700667936554724879278781631708730163084711268627580321150233946413413895994142105467471048602024651305947860934003309045656909022669922867170855511873006341621650183970485844633749295652570057551234113130485351127841642986262493720511831565623230753591370920563135133634974852820900133289399881580019858770393570566766163819376324506155897215990251318238604330573452436242860633210507413717617349799178655187755159857942456768373762011081951943078400354644382038955103353811667036413817331622379696413963765708783271392012552149226161232339719461572641056079142721715225848825679703239985718945468561106974725469250366536446839966394273057951405419034274815126973112421103928171539047434940920067964707487461218500180576779818041514838666175005266987530031334589885872764530186451389382906702668110234502965181948819324525669306761017964374465935195997078766813802442938571872134135307631449457700403607722295712526477473187760769854822664271791876385947254726971066624558844174542174144926141596442378909487659410611925238463672939488287187930424900984782347890485114974014245975265423482087380021444808732454085337979894916625151748160673328800645204361662296890439168516496486534785209464272944155801201884765222905913253279107681940828706609481199834007293207123588698497248887032915068563661000351985555827656950119553648602716968355834907507205881317139596888313599124391313690499024768229581002141771066116650677198905015671352260102983920844198602889443844530655324135352357301328559060308460666716356889673471729699754343052636794091887139791969269570713940521849956575919444995885839274870318564281376937059191285583782201609599259793076359194736757514780288371893652255221867023754616991231166440670237143787463394555518311445409834373766402091270981043978041074903386490183302212208630214980600275556202603834675068141493315853246086588433869527606336773445406164381223911785209181251090875137674158925782335109853925570806191496117952556158137700256674906542325056397962127266898488602521636671541376504153720540073655120488268616084829296858430597808618335935063155475018097107614319631898963276915717083906719901990671203168049192983004512010630810353180616041059009461653376045035315073033122377157940538369065049716931404483516999263419813604699702423112283712327477402287878294846677100488173327152134228934351434288118394950388021155400048439576164322689238015749971972647880698432173562534135196861073840929410877460032026056600256639742582715689804324529847672898721045499478208732540505241892194260995918456797398281264279271643595767875175803684950597172019900583263131760874470780692229301350399994810561798406711388716395157230392204542663768424812172813907226930816307112901544850536372738584891881741196222334756880676354223825545008158382798793214570481756577961124656365096855575843708085104310096404927865686139043228561089324541825573913294270602996245338812404060787576274293777143713690759435557994743500028504216736059777671527653231502393417752357747266031227036741825195602083552373639958888592634813385403969287461405096684751779221054216301296744637917274870299655905127650206958870415715459550525218554637927419420342909115213620451681825938089227841587634060352323554468353531675351126150668182119593726562761729937403401536500076840419154133903469243182507027879092621142566730794288274862598662456744224397931884806533275880059584384846294751640561055427665298675055266179950508455361985640610482826893378339971207483871972242937644826944631328519685307005823131060586880258871896750882110126105648755700018347798205416209315448121855675004814811844234371498072241896585888181239547907447066556273027872593259442332085221948728384706054048012102431762070551258268652757040563283140908869379433587343934882983171872721709006870624239452781125750496313185137153294895142205741044879968906868146432580658138905785122071434246819405222863485298231714173185092478827338280543972469995946043329072422954645713773587173034042425409676028088494217836434514019332106872645287144968726003315149923272088521963664774352640891113997745736680782991880598561924580022825192695308345552276984229162001825107941098201300674984389476822966267667996470869808196579953094119544001353808195904555664190316015497235413928079930980630923789974039096187385154623811133743185674730883952082834725560057715789754945860362651257342774861381513374587052638490849681545815191158167228284216312198357186201760830399889099638070634618302540051208649748059193334489643405560562552938809326942239205230263863414986355344497855021460911608386097293572149533829488548935601111664445104884902368881033796697406264273653227172982827120900890483012778965698786060802281101599774003076223836824815033427222009886956011435123908915609332734243480448113120151085767926646703775646793041564188548877664477997740181952587136304153864759453855781647510444397683275290718562566041309797026626198788757068473624008189400085147639171830885136662293240950225151309633296108497795447295713487571969063819631847171022426007671961423426656033699492706838693914273750622673484696666538875891696759653322708022304464192206713128654367286584381167931886468699300559955478118685168373033107210467209565082068047209077562691499275194928806230828727975481871655555974678625971882115397513625435781930638817436993827153522604635428446166879376436302472129488503966721503409783986881994604103221253493642217926808508337231283131554698125101707141366201058087567255300237910294616860981141793464979231268225176926602701773386089297499176276401158860302641676099111769394544975797047122623919299212221467985649369143766086928865457575021334630845697465502824785566777249225872955018600365511954425126344735312221255012256073157186022169112543080308160123724531861512479981027266706556953320780023200618182394025153368836466698345325297349369758548827477815970168443692844217999359801453396319478584077759179709172610432781680049596173935873648112534176878371669774169625535225564791179088697862834541881108232302050250615383691052719459239103002511231527160730058746143751559157733324185462915713185183422642407330770498976569311791563675264483415916490061944986298946081887445823495633747231870596449682781375129829541450347868405174755152474821604309897585387044936297966125707533531123145081380797104689588475100998478376336345498668530562070429143558963785469871331263766342547265643873750877765489373833208537478035048871739864302939172981509989896830833651659925644829187787177066130715675781296916404579493342879125252137516061822798069579830802752424207734076598235493549272637129138597743861569494035172982773323813978169832393308936629249471184418502379523152760538953769233738683534949616820527385576712939777978020862590344652370139057592963799170815755080685879121524195474368243325485508885216427932111152617588389753521197502871079753536958830749538849375786041420586773520469047279838724064214823460446766896258848279781293892077882906127342865972279406432287344016333307511453712749290857227144235251142131617395448638110999216115632314115402162021818182644820297073958985176498609598049987424989829668276528366074655001759545665576543537069353396565106790371446429760836864832226685289257083283688502791815200748746398891501362809474588951638072398013016757487321487359412035828244798426405345379884050297493654063433132849909988171522890795110167787272748493115697390794090893220541685388460478503220223115804123717210398496681479802518155225646382179124017972771927256830154476459159099915305270292203892374699076123306870238375796194022793770551895861000130149770120519030968157944408584761521985672000341568437489024874339677092572627994517722639714106878198816233883043684881669198045374886292137572096731110671013538634484814499252910596975130796633796414271486492003403876621841987717944460485908852453819480538585427910581219528154216833962502965499330733426120836401027202779164015610632991254627618987726271586361150136532422593283006461743465433942424069000924063432600543675209385379346660998092528554796485815469786843677491005612447249358441440549198171372246420183931618899137608550120464279636388085734490811386206923176994506469815647142890616002306886034706653397632212515759735508436592281223916588129929504843037510544010073425539533015760433600051624546536570145723944082647032604172900599264506462245560059790069381133266665612683829666131045538154303777237677937204130977978931679508052667424149292114145551053480652649588720327290324095321753485555185765021273532603018696154671022360182645078924562782276303948100006008972066439795779172177915446057066644213990200678471203859888309829274194576179233706673987531587811785424865251728658608412966472879033119655996006347676009842117337956228029948832175353023468512311480731516764905627504786806146027873742377752800313196511867035059701358378142376577111981940765635823346594534704052888036665255404760732748029035641332621918969598426288752124004696826649706062400588684846771718007718028328020089393286678922486812736569571631679876438874033560794166431935381759485239457244868735390088825128406216810802131816778110103769302064109281296105525775095225747529131509821889264691370930180802181363567235119538450303562892782625602835303196115142212107779181794682727924314685307371017523533695617527636068899274253767083919048457652594326886921579740236478790910659482583797807791281925125104126554834266922059248542335599013098186121445536845320631309999578698547540934873657615060594871079361330544856204905839363964364745814294358456854270237287325798243455246408709454694328691941638388796248270829264482648897468725196378151122779584533912286607952722671032786911317674964985380122815597136326690276047729124922249549330869350069571584912536940046394017412222228262913238335248577810423468692447991861332173237682313967675637147112238297082709779491469809843335082051706171693830783848124779913605916249218177760558544186753260011105628970443517887115166465660873442658320340784501295657733222937305262183120316590427855205551435847573494843686013305430598556948384632612993710301418441836014137540963698967361611214623194661076983703064423318861625209617089439379843136032924591501015162535810874968516141569729893693799099040739631853929669136686306782271141498965992733581475643171863164160127178821192900200441454841788767103241704270974408587599257619651612056700053855566358054225162466759735061506203896997527807960421793185328142866131755818838263516563819017504365314782536185032452443970004266004297172035502057680294931852055739323433877800832020085095241065945500682504377923605860206454414864463002282859981113952528893344271230240158497313879106631961700881515360617161259207989765759198881284117347803947043527883131798112474274097249019722551166410315261121839285766278771250834382495098145003155657285249673260041267017364719786185355089639192144702584443230463071020326508515621799319949393765152787722174021879072836892272718918625503044286494653777760729829289231648586601063774132461305717483873466097473820473690283668278542676926028361538883970528357350787137288407827002316422343254269105445145786236753475628499993953086006405253465896160207153544570186195452642147802063136828250973575852017259038818466619418113590692185299727683803729886488430541515752199455871241485238805256063346974654699215944325328613390875441495937622002038445221441574921416313915955337112959819891468396659995555234944488305774379129585656488834198001081255935279992285108732047273128440230633188146190351554615455175301874074146500979340888209227325011563195264001736747511634084441911424966534514937357661595160677709602878935619541694673769457393996544339536741188746420999327636883363343792004945923637520876473850103034752789011763635679162359536639139387607731045927327585920166643486698918053265746748553896697173505484278474725065368385211610156756921638756201836306332031096067104899229885768915283637821979159358041119146084209619865544801470289785283708768539600361220843692423680952149133599313547458077268496809139761250015569653340038037730777665313567251924091211408083499456205697329336999814254961598051082453671061397859569008854379851241734302108548976435238573016263579781474276388425211907340181988971594941542778751258432221978022635825007620250626794070944835417094473619514854399673596593252855170757410609182383354690742528611654555716514363468270391756258598128096573084966872675785142591609982619293226034737363729043788265101045086389162943285122249981883759838206163266610527218317625491256251117844250037006565984705765608260450415312208086835054916355891188913571510477182216482073172765058378681156060826903274611658397634506303163049586490942933083290245872014809535871725125804118257437404618684852620686228221116956196347624189995149247597915673798161308129976598569128768895595856833068926580349136349234276315516706353962162345586870278128551952733465144400479036052700734033462047907450271519838633443081802662055175201408175872513120693482847094642588044628003411292883612669333049040045855764833476532578789736996192438917847410053757130434629194905858836513230663467909829839889610866929005684516127726602073703246966590933179002337655714127067609820269410531643699204097787064698432674666185138209345069115729814853035977041430043744421091833924000954219130142108351920312356528342347620679023072862392930045222853368676104394787614106113114121587513610862084362781648159107286413359650100122530871821248732734577509541542482816752040627820644911055684338021082666535813783233330065343098212643354944543071483476910299444069544424529012046847403614889598716700425431667578407035692136930885074981855399093878574415107416892423645571962148906453535427882868980736756599330939288831501435635677312683544858627656158583581129704881257960132099365832100909324587093664996463788324020001118289162740930882858601878031250438550087222189469953475503294261732307049007298329364505100384955117831188984689835508228405131093063807186927026973829182226474712769578015901361131959072909292001711747975557269018087145337752277317168687752624046334171174770740408247329948487402878619232441024754283577108093481585240862288439828407231205729613589410186719813365527861503570452343234217196484438928958052034732566757140336515432084137405134224896623816596325584102909204941134755729458681034191817266349544723687520108070911217666484689401773443697328313307608922439598765426405682837835372491557900557757400812524358945851357561743999221872724952529056903831594130479219572368067453961530183282815298256421023685004941618254414379623028091754330944206640444882488762137330065865749468624497445563353312715119790178017338680741268016078164821866734931123780234519560136535928009942744495463844575258354399502678137773595714861826680781072092219386041462757168610278489033935663994858656887247987867612032389992095876201616235843557246976772530260510478008904398688277791374371115754527247604337331142402534066936237996339179451052813722707821870352501352766993088010876560774301143254070302415490574516235400842046120250891417404915576714928529120600565504233519541612993571081370339484193653399317796553012545631548178733866489774141067195203619466248541204689620144143959013034548969677675752357845040129665464100505127126060205518454677977443490768937846457376177209811051725638178888086149182252130046029580443982342560422813467868342029358177050231222821842069462339316357968902202179152023268590700778482081070160168658114758049316168867855540953763229284882452221800915564435003727702854714840987041064805800368397427811816749804927072763450698856180480098638895309912011566306059280403584528746944171980973573542710129441290836412024157279004139612667938332913055298144718800705549550582018299079184307763020524264412215329245659382578417375246868219682724802004338143028505280429126655488561653843028053227656961338862125722720397946760465379143515241251432876817576315528004388836400546817036369332223173924765298805216162788279159622104543313186662258518720315623157902907740055872159224899170118002989169112920979482060670388169394969610240263731256370401402727246534743945802355316396351326283825428562483280714753835663008684679858341679916978174844386401204179540194384563670171377148288467944174503387865746144655901835013476123112356056490533751436982535251639369415014059524092268721464122143102740025641989387757597014025665460174590335717446599298619869142173325170483653836724044074890831116122490823095439626774216050253115777249139079813628728194517809425175827252591276800510030098022533166235645402890445526474941404671140572111391608195016923552267691263651707950602193287923114140245762079345431404572151364516843541293288863697175270436251937310154738093310626609826782699979198340250324738207491678929981151235896481393129197337252452906716015523914231637921519879202681597004490706067553106995842544897939873120414094248562336915503659019528948619787812933448166415832800375947983209430751718171911114281067014884566745932429097150895611127580004604086606671466455451528586646769597345957432018630674070691358436159078958135988429945224311497028425817131592982790922188696836523425942579322029803543732458075829762475278016229458252030769635980622966490261546621404474206020331168918029733419274513487885062326838900707865886755207716164960222215264543385725990650602651791498625378953740472053244610813558684338853277110527316374893201100952791806148683259161415176434975048042105721913011305793485594104010384203089640891065950135057217879580133900413099679902611856461261959806257944476920591864787019019376384774259781363724447355560585166922945705614097487554254630017238027188704111921000422472121307558000971505961593676429477880605892322963603351927232964766031965991208196098538524658623233513427878639255276265141804758302991662020422584780821528640473329033676222067894227018026764908535195186586960233166801799258423561649590268142283079209810900653502539187330430802123478254966990142889102939889946012764280324576029029983424670620437959409992164998734936352389201908702253309116979503324558852587583130360796606785029469053541793475361880716227332890536556844140951873286585916884530019243799257126526988674697382809552639333300909436410873147551371143703890569873646405560139677346953979877271520036116151598770307907772849373623285604851298234228372854764918129015207890073144010044279130938329696147041153800724302541840226061227418525386706283499169019923797432600735761984137621805537061279446074396722346876516208383179592314198339260884919143231284867771473620749704597263307271883071617252731265775862849392467544847524594453445658756921429031855257871429877298796509267728385312522622522328678549024245549459158768128654515008784804740261376986023474710253582239977000148182967329398022876450918792452596422743215432704649694275959750888479848023471181353958733311453830897939754434814598353375111015724334146104729998191727979834937803473424568428405721222850925569437959088887140739721875923521381348708936793897489607324144157171238117515072173358165260904010344672677424145109057969992690978623863467032284030597877620555758948259275904352230277939193463853675752521323237097989229759213482529050476649602647346565144067245355541999658297072340232746149303442999791980779894369993220074371087680620372485958751688658350501475356309013359532333302748061641653453025057197657651313998377019220040393901265936337126292207656359034574717897616528054867688683835917871334547483265850754954522970294737317739912802449811424133093109306935904583875506366305626457083996317513363922674352752428075883662522236857836169771859979352902074261496545042770118439799279594766277463170293957625807429284568056954750681467169116707906877663046393114431691740200429624580443518523826114317393447901388623718997067933799661879022359850722766457810303040794994242679211530456359741562848071755220163056864251973798812160649657521934237127087870211662424878805192679439183321400220904902753288891244161202597934778441160854860482947251412091534934654581633705529062042279314918309190872982567738558900589221008448082689914329686490956282836694394320029203612599420521459328987520852022940589941194737780898614918215720474675976534675779744219984025232651620824393533557116798211058124476184615049004808499344158543930221278092215398270759728739026169478662458261381450677862613442184366696594385588735036749313211716988999231212971996391916149767617944849007212926369909690481413370369388698730500193663901382903430215217855840587593233816644460684897175688036944408835979007754755036458861211614830367460574649134756821987813798823039178505355755924964274209651809319453165392691763679747856373738072206987723538942931457446950977624776314313111326348990756560410620164168030056768983791638862658128692587048849309403055265749179788176932764135067569782148428051734066545285566146794786729370265284489966373852466169046248251887990049999116116419821559277868888436697948805440963632672833743220951657746095698225184720091785675185398247550474247799872904470805957229128801038762131826452354024605619094211463908167829593804239298183717848334239875809125151918620365089847195778583512958654929569544040179378093461273004906550124047295599646323090344313619893260364399726611915420521480821899295058895045621962044509519247038870144871710987866360524851433874066241186126301718548413958576678432825022096584447340784580708968639994245502188224406457946330917509770336430351180958828368751316312560619481437088967073748872965212048050649458106309191392613945290027495277624061407036577255970135501405492513977951322285767360943146263808979426845092240084690362853445786767762792686167883197203970910043940779383833931891585339830843603781699200020291967998398784437429236680855431734229482696228341650556637560601253750329655109153144772851018654065029669274517085074708262363698699594505025610670984858756133275063127799208423480056640497320779881523660770565086470172158533711788707516501770699137445737088284129233821022370712663709121441245764878042284904131818017103760711203781965202598371505933453750571142967353511536456313871566038615056961662931528967525480318962456477986423011676828115555416819199445144137644098852143811547251448939221080521796380828900904345385597874008536034540408820831735214449911461818954468608715420878049111923256586831439300594540032852080769457979075367551643820239508846435986306578189776575964128131484487373445169074321584918763921456716864747353394623021494221587062029890030912521186197566956872467657082194839869983405957912421901508323880068347069249013959280752559482675344794766279110995980096108987899291347014909859591315098436576489503546409007083220828300020611369207207214905671768145487481868089804063598703936706137950255315655947672664224202828492669102203046418565724090880210904105929221893648862343034633997412525481820291357565460398929461927270267634221601527508929834317016313231751373574846156869444660771459202573242343563356032323132235926575593648748356153353829013456728975983201643802042587145206012166129779172373155274831692706962938233509770679927171918036466058416874546115080848548550274631767457138404264092674057975311045028886723505608345152661968949578868002891388796816648933426181896429821026465863574898948951919362456378305075217797614817604566025523564723641077794136473054138934219619002542904954389143329623551501422073605448085022557872540345502244038013476298976588191041751505116673985122298864854065859877728916908184673136978233359231398441623998300125867440916323121112955031110193279219233740920282347785881840077314264965298930867526034475409155928441090259074466297019581471840645541640918237774576680050836649213679041354488127108833361567213646397009998241177800194400464715722353204833554795143231637438625239073083024235959422258793549241183124590762685182402348526961331940664491883648064009342930312341734349793447225047493771869082352472314840765180728325571757736740014644631161514524570517328965619194702827115565398719688585849612796735070414554017303023470752701441292450529265838278404618158044278635156698374828872504981614536100465293956729536470924934415697434641904318016951697587153174764840643186646271056784785021644495142552555585743371865389040637595491598981518994125066362149358530044340062114357496880474201482243039434725408425279125151869072844740128532440524024215673456193760575002469388450404976502651692063145474219160050248931857128077390274887567131603656241316901707356494742497212174979260369871444550188536574637939091416299848905207405391825410442878053882587037349381411899844958396287171259714173774110626126854466769997071053596024329628074880609000382224893983737007354898005050357009414334425705439398147912821682894525042944061634433524291486895518763342493079047683678417231915967596145889813604913909403399062187963463721766259194826222309413983600106842325860809841826405661875639680387003161207432029140726598541023914622931086343893064414803427120470139695839863584014108072710386054376263250644745916153200233025476835508297538235175031604452701757829239891532133776469364006062515136993101402421188980411384548547965798608482870267429671142667599774357427632224420103756632476009746990384969448235354237594398531435103742938678240506951871613448488460200719467246518907711735419672360193692229849565032189570616160377744141537954881427969168411377795012392888688748673003686147418264988330843079693827084568299776161260663041695249905340174707564829585970942548838537599398407713328580241668077247059344402371068659638560300436633374511796633587137869999154184136933118110121909663243493654706788271892521677322607578799638610637024783446169714955946571903313472121501911126343271885021747950901078209181493222846861801252096209758340551191692979171294824119719014171744588077923134266447326908506127335896034166710124529900311525501919785984799671703352215149887811931986303031557578103170604262863232177731897499529979183572640311298492551099019500356462233446105578727167089108757672648893503239709628017725871766558100438502246386900818958130027693877201522559946716031084586441572406342775932483050875335636894078372083791804188365612469525566389764112544970646804871202311264490046949430520784643551781428821769174905210543046716439349830270117848563317845344504774647053364913353523673631602520963678415168761010661025119750575020483344346919914536969527968721977506917457814668816437953379092432785699429059974505098547596881446941542636189427156664496317959740066827639154555192615276712300754808193997809430308385501814744772324220061685126194928554840921506203928060922262329848785376916577867151269018152238908988000339181613631085621405249762128921261662582851853545877525823353678651273157896172748376230683232107164677811013222287319868622049175314987161710983897960548725529931513108743671210437505184243883775777149616135673708013440431125706077746702480682280670857240750600288633102587598676812283786840427534577660713783350039224631101810890467217608826385235258525755227453894110143371174510207988645250568254985682079639075527566294486602925028805571441568400658624124314474520681118559178040650011313075647220619599699953699940709966146460094371579963499897065309117874642072096922574752588639284460288896611462028748280705997410929440775287952865276260192831330052537320496964824657073308091436574546541686215100658476618618647636238928965318453337106599181035188170395797378692647342869877152596690187472045449013878433555174874323698704202879848862711298366742482755271549833356758214162842238189459519284067359047778550157046381648515473842476041138030713346664307915647044720714204596538219360316704696848249086292157107883319652617701737798727125920452923245459495605603409161253631161318275413167206535238979722938863032780169470569508742714378069840208803777225731758253552312501113029526551276752364832458647800286861724441918563785602050362070755260477970833439589950769589656937213494790178519242265730081367418977450552666840696512852732169424915477618574148306259229001052900879300760815397272938437037732099556385348530180628927891309039810408636956780336392923996466412287652637514981607586711209740046537558492925632556967134887053239751278335042993091195194968164685786720533043814544762524581492744170286984284814115108037295427086947377731615965158061527587581533784644470260762120753619176510541589453192012637218401691736735088534533675961816565889144231951766561533287751561511002814250571925273748149701327131423237106117419996151688422013855973424943316411087830040499860833344056733909896228392145825502841427924040437567204083813746380560537494582418712768492975807911833871272015861452444252144746012067680081641987018349205392627747641169724982026359792317058223453228353294159734508955515471962666850379193617818878433338011884774368940697201348284556702435418128899829791096161967253609525068134386503300592972842198068484021922862988452263508186893423725692775670504917944861478274136999863635460970120972847702813383832561934332301980905720341313763324464900768757398440195393163819565443835125962350431677425381197010337687468224816006895422909502547198179726451688260893997218274485055892046966230111276590879366438464188770190984514867082808402375334842284389900174906616103161921355051966605748884027532836222125136217114914228153451767753598480815902497702041563834365848784629796498460131800144309864744818051213932537086044112325307511468164110386317811350471801210020704590987809134770001148856334996816012561700186471975420808284183666815098864953373677142762520831416480788613239745358710587563811829944969749391342587166444650319474787574303534752586965495040512276029550225306150585524614866775028074733088388419250274896540219687808776862315035459122381480127707429680712367352063938918331965536599116892216434199071614163680219303162005565119867390223980281663566872399199513233609110136129551681811870109785408514873849110273755340962178051876743600173221972279437262220355962779610798569715575039423587303196975269064848091342329588268439762754403582240868076374381385276313154421116313250079634032218239415408826752267764547339199380953612766219902830980428288868653979897252925069099145715687507490915640078210947229020678446831891637168218895850387442189059267776319611398124533745557251222214891364430850625228436749075518683365306319739404908272212458242021108610084898238943018437754076947306872114262816234796929005573247747949474384338082410186885425234087167221899992618584825230595271458675805328888458547661482911027142261228568512099113954774334128231981513687701354181952907930821579328399595828760346063915936156610447808341000106764431109048278058540458158730966879876554449408194649699134484913793238734731769283349834239958744403307745192584567267131243995526630943987540633965885911003787431997954790154410556911521423816649541582418647196066291918121821605777817407587802938774885107587130715588579276398801845104085864713205322711719565506594576939646883726574628790322128626846646846785233797129235280412155393418056001367955762526021736070176000472437324786777773778411902557775866631422504060152420512540745665422986041568627258242296251083874216352813860999760204734681094684885586684339384836540131335556727252757037591873943983110113060529349696924221670786593881974869306545293175089059882732826607467284236630990563292170148194990782959832590969097444552516508019483489082595464966845480116773827777044341502393704910660378485494737525315039739136160159038669869554804200937010777222570863306233605924738492347431399942629286771694450997718984552404540235199367740105179190881757259161388156893364691101323229487601318606382777193093315449068390143683979730445188419801895164188737679196299645363516179385210826251484583512761320813051292924976690550456461497081279580583236124660604205988671399418889633955910673223592850627520361272191026525284996806722669656311124808053760456525500969603455150737136630849171874457606612146186250788694739992690906383544472087440786684937660000592834301997992524469726786309166475767156107399882676050301586388165750303276655592781557922930640484623773483924157003446163213508256392659082959806726026389962515960245866509634345899270670997356224417857626995289121905561765528764713739897128030368107420790222665092479164423000976903961924318807577395996104740714789016578869102843694645064367645545524953651183972155881203043232543474410935465714119033392198202859283032883143140220655158305296312851874405974763847832478020126271473985296211768521990274783742262516247892934908342398830358146239422395747184783459105389409433048232973539946364674833449949030889778924996737304473896187521233459281604863236696698568919022770204469370165884934049637516728238983048400486821576028090066578792494559382361283605201267392824909545808474888629830365517084927345629842852049924498359797927216884173053075867418132697503319467752777402751648151684622958314323728303684511408433018347858613690573940393731967151627647863185151609738733687289165956905790924256720571580060656534829873990353977647823761067789447933832731073228375236252056138362452302084861505338444824478581755801888422357293561112406713231231365264328165218622732612138365225263779916000774487572523415340260710259682040490567635023795647887529445490541484112032456788111729628853832730090215468581242142214009967329326170208143919643666471812794308679187934318247744490420568978900849057171421739203770172782168063499595409583006023977462889865096788429305907551321430884867696071931747016041971760369062232402249822365790619256154014693253485178416128104060261896424126488453180591714510480401033159030970320196935148627013887920127610009441210107202131471361977902365075589133929330329643511155315776134236276423415036298818244778570783441278424174883592375410830242873891355969778345828390345603840924325072900615299919861123533507995813117574264138138610353484925723431810162706830666914730143058990007856595727342195666456720436017959445132949402523674003626671759081993937462398472589123039051131681911064658012471050500746491978948616777388398904186746594493618521866275684659041070886243128070026250313815907850964772158612006677138228710846290524492545094482806604458127185795243427100013357495902513153635485391797892336892538706772143076039725165479251568050094347858581056788288505600916654085167484495570366526438654414601263136863913843126451222922436543955797301018260605225957408036503345105601319359118356987643774509644779549918975798628330503609376722289587973169673136458584556599874033906127849296283799506679546221267483774362313411764328555607896109502698773527327200004771903807499358205003383341343808134510712040472370160658831372724728562555455320320680187601450543354293718337714609918693237688396688297008086867176021899093691786971642390874676649637881937432880692284044575569599482559169840989007229721980347753269371015346427711541542768468264158172874894784317505884959551831355499013058619847707207479968747987014163052737766615488478374323682508617280823022154356168332525397436943904156231956414885603378401015186150910178991358828373477947770140220425407242267170222502197532517290024514720439378346123831563223399791113717131288594260896246384257642805753492317673031062066979344919182493224919354344309232317016541877997866998203780325360823350432367435682565371167187101763974538736618012358611732387910811251659655909483859936015017598850571312845661909253890873463279786599247016413913412773046628015504539709168943292770351740905537608628081379064605203478524631742700112444617563797106439504222287458832353559108917718464143600759102560439346592298780060266284756651102618030068058752709505505791225554129566397987551483937734602528966638338346176434577439357853797523650504912124791635753854707160283711759639994808318736925760749247469438823129134206996344252023123711014159256547835241751537858197096906922599206945066840365669329207839425051795438437071191624630754945264059658586959743985915848246996351158146289921495843384885083299466098930008674008932605612490860386308014725960495444846789755403239746941069846755470989898079753272273744086427069960680473523140516246357187984567699579435175635557391329240009827883003654649642693946882724737970342751304083348880024253828476489142703737674418997837398629234095110233248221518876523438686156344769555100705747644439352932288016122349431197576125886037262289823517037508252690899769693077592450826702063109770560528017431818912238695847055133703935008497018698472820411723594112223094481497099537374467733211217272547889315783620485103671481470368268235587622245326043544310035883294092972674216460749911599111277154839813865274982639837072436135441918606236997543611918341016851938719373734123476930448184075417217219351017999277354012036933697747831478610499637827534042354639768163934927510587455681076777574822289273251194378147601784594062886923506244565626139236551387378624151124913748716343437398993755740743329122082627600706847321410775158557459104049444656563729117659634227475268909642502558288257844095661756901252221298767368179652000128380261095342991428470620556811997750198087154621660454452168550391005615225243040529204448816276737506353568240524257385569068577144083166397710436366264246187771854378868967370883110001084189056514936310297587254872200328261214416766897655431895858551712548966275019314912850450782344527664784720953687653108575371822515650540300295651563920173903169894368200702538191351795215596451933408941385556785029355485556888273759001973206878440126758689413117187997529934387956576961441187997225709817504284278626703799105652615873564601142644634078938710062627425033463723550478916178894742151817334840024245014061913719909647384895064836369863217392808346562974803479254861521209828294261643682372252059074271938485209360933041467226837135961108094209401302267786784791973463015991754446011750232317364156751598173023399396591277494994698882286736218460139569436862427509518624960519067247423064235081950777871486396716331518240227664533648720087390703045888377093062830409512768047546415429612867173312602806219618385763558525294834144429151368462655539462204270424647661243896659305358669032037671645604576782716006184805656687224062309277583411752398917830420708843623750556810855923580510267874431446831300577438184133515394383157726408593300394003734944155932205448968261404185715375098366874429262072783444035675547460315462777106911992622325213097792681655324813729897741563852961963554400358045223690188822739437910221044172605542547340540909623591694041890232713394317168876713645295058564346314186578498744942138377345578432024775362103289971578701405661660059306501079988589601790122956743548596702834676407694014157510393047759894609304661449329815352831640358237370811666457112344949406758213721121473789870103506255963531924751489998975750076621919301185477202073156236298482467147172990864798271969431333961094794234736268562859539368372148095255322730987288427337628239487357452755862727151676194861674331709347923686860878764726237912975976226124579718628289502802784468511147761838419089649715559745281071257037231394264253029973944228226303275154068414568920066167498675300154605423094098812670805628343306900120042849760719120640908284998328707360232812626221624663893226199740409067757066406385187742554853355897802684666332948107105299227168769888380285428534349496707251131681632664993588598921724956547089323473696296501791261636778582914292236943097483475444516793367257564547152173080412839718277574619404652160983937221182828405472726234935504678261126245532489176654586770313542981442584505533144903798823128233203564083812867421759265908545695559304548923335626416877856007136207701434836342228495359459062585173102577080935580733822250597871278232000586911314409413346140535989065311380072536372866774373224833268504652766133658937505568879041335394509497882968633389523742486116297302870502284424209890468402858859398980120371945514943161936080737642211900237945088421330341507736028184714531620922790160153534955629669084547443905780749666642706436842325656567788691095066381433212569320324081688564739652747475684989313524629242972143748919079831658733452344892724287876220140787530510565267053374144103457684545980304102765915082985383680160691731720766749776606446984854042456055645097536670797456363246796461381852157050520346244239509734957697903786814242682280546465066794892267952498221373272274800736997922313811217207323130336489904329060189297390767611172364172295393794817186197825045459320528019153148495557321706159426015372942812714858490386085929746786272353402500601531322288042245572603778018652435842214571437950220424450363176797830434326227357266344306776154759166938110409373571653933263400851391048235559211209130979809872857597884538614115270748413850804475417428882273093703453072886595549821190172015875085979730481985511003745571007322612213087391962479513918808407477396458044578328476552155473818667591397070038350604468160561694149737584764194253689825707016001419377125881284911867473901934683505299802723908524574949914457018674025244365796095753255653303337279577222963209023667375389723771157982388710570332809528607007581315064797499276539403327976701499433127251857892087742572795344819617277850929079998224094338588752255514617474502384990647378677272089332895398035578942617326949550016483567315070154259686011788135503264649983047186597070618644565193744142028871143143689276866803401990783335936421373849389740774773410684767603664864217970138005838759287865425856101448026554980664162011882047579590691049303956264288894867600568385534328121399908041056635000859599149861559318665862717586421865527954489872831429823730449236990652037353546440483761581420952293873960271961658639470966251558093859858145002003740975830116987290983666642229129229336040439605710825819406551786666147231126724546873052281763036641724303733849265784827915060703866859381318942253850122660649448011281404925717011116702465678339706985541741145367034148751939837179382024115156119498117967986181680794599993348502636323408020638182837843054252175053709524472983207522475103069230590177763685845687364655621978758146399020663161550891886191619737649895166673291655216914662612799567036465055499650831602575814008272971850874078031487113401017126656750547775659421541426955762088215048528507343488367458605072252291698192842070751590535298901957252804652047622087610840922114707405924826748872113365955633596792156384951500630013585570624315372485168469140863503546910448661421010931260759751220777472039661963848794587809844785182193638566217153472650196974029977284736743589431625072905517081330156955912893607577146856704282344600312965707343681514159915759921660518615218308766024365868562093075529305572709088653944902930817898168915476371283838176031091318607430943132593679076379793910551102176841751512792310107266983629683918339475838407165556850292410674942703320177523471212211403459004579903799699791313787610195231458962747445855895950051019962995259668525291863074944031280292741082558599647021956681829993258782341006792252151421130076190658001619193849881159431192813920210312513412881835098669709954057717087006679856251068207120704468683083483432071034427483916699996995468325031375506744657799632047627894138946823465856790267315147676489876732247906197894073957029262088857694781933846917745751864496881051433549829074574741867511737203772805967765858860633019762394821355655606319033303841392321169568846044212748652731607175645598504229555577522113547876652101183807020762585354279398335541164113307451542205566760863587226687653638585678423575664904499152761168917647602823340797515590149362649157621257947696005863081245296261855213879879615627467019108253762458835782176419599182461103712814303346927845388409400154124599466745105354236295596393489958329879911720786793533588252007706774475073362681887203114083090892572032478724158472515175877761594402329523050687610720616291913524366646345532087882154934508903863501691803669232635347602697280076488967109359678296991775402161822145107823678347908747350907976588000372692000512559836248980837877273434770705344569022568573540272515069677466650752366512024179034996134435335956019770058875582216376738400870867483505639075128802878868491085040401031242334411553429684767520804979550279901504472854281553599330177518458835659778261203506365408355156458558459537529626547067375661783009598400114009198147990694020037377374332806828848338927750896269989905495512780580282448919252874951897503039925834451750659451728667014963614073525100469940554179546629886468167276913460582572198552850892629253210273837749231098410221534245764023268191397946097783314570600914789836533987406917466688112560305547828112657736902285352873416112132953549296260178699632035840085067854902657309327982818843201743773099842263355414263453145948900864353198673872091859891660865724280933010896010153953404682386871793378520209906969805393975979104829266824650038393815020187538129174311916070646974159607233166025791289575115385344266221857244151846374238021143003722177536398825594845115061041785477452293391586046206694842848292364721117287222312348360426995041958354774529702043106365919215706421704291740423786049453173709197497968298276181608314908989677305962503871139486286712826043721563411150816050663485437133555506269091007526575133274132249628661945445134165856178767717011737162174906810162141894316591818385986898050619545986302286722632896473674861962857572854030808578389446293987587664710036663827597643336719594439343111780831743935142079393646093832888345186169849786698186759613875820282585637325226571506576098513393713089160484600157644415575451117939213919386037125586202974157939970563166463326774996826718055246075537838523441479052403306143194435045337974288787874835334648219708286273447102322570281403999665484185982192025442036571543748000204631953997422382661210934369180002160709928889077950750297097816983564081055820859663674167923665213895011369215015420023545744540937131102942859312379053494323946084845026825413787681165227847486331312508517118757792873560627112117474497506348676254888574445820324851732092383398302667394393024696418512078582194117356413832034447497166376372349112993892486705790730009012570700990057804246050719137457543131510480171354710374574366311450568768232037715022994210456686899646162020896479134010436253665110802815593663287521870349675926464802889727524401144184710520681842038561961518880871413302090612958794217988595714931328676010152314543770263844723032515356781828855710974137764494719771245422279517597185095155339487273892364598793116249517407437604665617572731665201023304920270366249976004678908747517798705052131590286312790083866075460145060084940949709076582577184232349625926839783070708870259341998027222746478017069738587077252581907354951390579529720445157826609619238353196674038759779101421049111734200727705546623139030610688299206649459478230839315335677061548336964844576384586468358175179470035349807366004363128532214566159224637883250250657859305354481137065226425803737487073189496070726171119104204746902409233985998686137146559687631248316105336357254014041713163123523552767646555405195918343103585526020371903166995615593693510608116238678663105141759916048296172992282399131976581070727356464934246428878374422181834090824213785029241347155813322025487617182105680123943142393781400051645446948355537805024476973394474608746528245786704712915379327864895318549764048972048668191377711664951176250472690050471611402185060216839144710319548036674978674853419552624596287295524713195968162221203233959628052895821259903154810934896332012654835806348866592983429901980380305426595706451684897409319074569398573112530744059034938032465500524166926957015584250763971712394573180586570036194522570253790252662706139893194798618566552979148660428579658153970426653627431337977592449631203105941016148235085555243360169787314408964956476926984025505551894140625320558448642806234905386813775379454351397453831551443857767241265721913873554404070326020947943093518929259479919699380448025976530799698633649293217228733303453260529761285002645402363114987020397629853164632951281581542396083996990217860006933293360686599205528371679285411788898276547567782574172832987768888983613005916426609063291327967274989275321658523665938843578164150451386296938469625977100765354740670635213303279665029275290585255448421933728896523489323795919349452908684011358815600137244518630159044863666482628394554286464513574637277849655843375512215102893612668476584198925245063293991853198833134470370098031138335917869274034978499095823359183682821878489407952083666385126292366978604800121413102744615435216093362354540248582309131182982015816737425273523303692830880061850370276425519431892395146504130238023107452554423586523172027334019642668821832712710535155262058814772014292725117377497422135703047240806938306106578542918980610288681647814626325343146786616893258347482221312450410675947197892954722164433376072281822490017483723595656690065876061220160602083913588587638093854485182423985958473195903953157197675258876345479135843792104849324867835292549343100926801424760351840272812027350887873316089198273001626644298600987979626623562517881758026887195562456412595337263005404353138783005817160542572142967429190497588393435026395975363294577179849150117522798347639669059542458494075511115391854496172923458715426834747005202083860727231475476624471767574174896218502048267638879551420014594699893978003557923336760077302619896335483619460582194473724893371464866697028110303934797057070516558964619261928234752995842204719960001450721984288794489416345123241127008068107191370970497442860964130464599679250645502642804748692053169000264684107296048385017048725478386356510372270728398744650051782805168098597932054653538327429305794317205648341345941822627224604671868819401731752901518493871552796668231393330667375132949425024816655504088601138148414502025005506496023624176242053980357280252707883166965405121347507130049662196118466222095157533318688264151107954529849218595836634572873801193150860137086261177724492389261775937784888893320096403610627650366212123155521998923387515211707155260361397931041316857605329352912166494755488837450501588027051487727494293564363100441567833460002459915580407990033996211555235537727513618058433467459687411949841164367192563012671581652086548521110763903067788106002176677670936867006316556165980220666222301593194198900987540344431617458796028512222336158010412865287975020870332070608082488236081883803693032361942327505993512197255627849911064010519848342349699962802713261055252485135455479323975851012538295412843064673618601043155219467946790371152444042000513882443711620820769875562560651673766838611504486027544909286414228420444769965930569689449777475374140832990274382074988962199094300419069685676573135830509020920113103930128004205873389399721092021773772269604087334094775874025503835422056845201572068902864725511742244982271200717187547821645304121683734992600332792630629004718395447712769268983922100147913546645316431309282722237305804710375035149635442098332371407678314864959312759201773519424617049818802373192858506932672937254715726348201169718071724512539136662190719326843099183846041174518542405975980209817092882867144838791109674968884222159803704955244063497674657325949337607437985746634093604444072427382878103412051372103604816172462468975381166016055657225918152498056584948773141199872700828378116506110814463268883597236666151908529316359675756431645036602232616304981625773209955351229557293557292242577080368027005213834669361395589019446285143796128887717388623822590227732152639130399726040536466983737365080754030985205718333141175623124162075607265115064693228308578761601695244482753285537205622875721704257017781881854675207279992925619519438617095678568167775920510597755972298400456229808441885508023523178564540104560259501465116704576314016648517202029761112543086457950931237090597699034784485259862950042450238997335054418023704933389499687231432622500171106928128153896453027562190436476205348746498750860420663979189248913377526959917467957270409679071421831801479011702381279704923724218265179266254818096822765859624365637770812907326882944514880765968779632341063022169851984917989689694477583087690471730685544547431049970207439285758379533335170033248658042096250256529988269045729316115423878146693638041523469709936025009305310902038271504372720635685939716843267486976018463067452170895011657538548532308756508729665923615094830686826769821694495357506798557263723593265419221008205935260565482631302210182199786952898769810468168117096609436167484096113098134395351337403028963602691501541709894545841535965998364578511158211773629567210129565600096479420704758451840450899806701679032328211913616255090636952392404744997192319344218186511454678952139727907245584185968822859989940755800538161761346355598643998836727289705948048180146376589685107563961572665283941820961653871504587940267762270272222617637345607822647528388374740365459315538285899501861193671750001479452441296271510543525268004750275412620630890438085734333378310194409558331616358746694728939981909624168949890804134689431522296178086845163807352268330566515674142981135531208881935836804622177382778064401537513605363551327879185937552111181909407239791703835499064768570068911393542854100677209830205226018143529474738390223526663992836120156369365282359281910304366353785347374804165213438387265309061634087268347779348648492105095966672171104128995172886852340975355006663727612091782415617748244357690294237391642795919945632309866355280265104192983014458202108441727484245470466746265359096832573915741325626123318635506122287942941078380836108516535710297915981297865190769547887812405472025529946296596103574497330297794770374935076633289669897445328680667279471203105600756407433508461431045148630620746067072553853679049232422824467088696856747949697814154571852013967176789975600793479448698861670409345497180683644953891483620806041197445025636220688955141385902768408641219272290673039382894856347016987569904521209393022006527085930037332532669574691051291493737276362812479671768486183542756109581831195736644681913389352957826889985825144041977077478088649631531541471160319967730231422698097012754336444042871735252154511143337173913442786055690632306215964920868478372658786190341155832523140863913129224077182824943298393513321676583188105493613152297499299691346144029376464907316663405424751112889567699241302790203721226621642102330560649165303406106475136091725828292151508309617398511306487612300193749962051825832310296523972872229939410517661226580385888399335299133649377763230827492425808255018528959890194712176269427157269626956207603438144054768187416229986181714700622297564815490814073628203881114517353449174670494582211399585236851640992659048788510426526890095601961334477515018714749155748440281587396527848055628591085058998421189901083485268497189049325375260027899741279113397279199831562647773196606309963524513048772193724907401598527602989423925557770076852719972436337616263554784490514372568557312281825838988316316910867358482335503723591754679551012405223799973360861581380753225119514285916375979070557218913091471514733831546463155102460839181674299889838725469327530817458748807475702475938728855854350622023636197413852352956324734492850308017654927990277142348849979996599947280377721904694544022920395861305540514342506977876035304477233347921268149953831626373322326516750636847737202364828109644087912883638482135361483691637740318103805689169392428798727054572493638410293092312621674359501836785691597842813943231268284167437580587662331701930736399017057152848062483986006149090026589325477568498195296779244731658070322452508270136674979706219650195085886936058936587397821336524800260974147835433173020041451447149813693919712004017634430262274789139458254980953900908111136356082932581551167563600987596228165520237655052420601378800214157651729122842208337820180806452456924520202043195550035333248503559690160785268764019712564683858599945889219830998600707664471338796038825691439897615395702129663050223816012207729411926160116992636508823098188639690868397450267900072902968785608597215165175902528562697361877592745199909911541636322888485983302685332085691052613318667425465478605249522557982702553106270770089024149248223061125709672089596645406927021853780570769267619444782212237961544146002297015194428081322870534398918694167113107139840444694353050917181408397762064293793153646073369873457917536812300758566120417039820399217483727418171276317701027644680634953657589308000550285774547350979690965996004361899355302426642537333273902573273020950499356576895708265846460823982955981098407630644907778540441650463293955385821894203312559604973188848247727794941316168680997794214605631444358045647587063593577903204531430676978542144616413229874403157634533297810250940155539888030143288775011071846990179528034361842099017082161659569056941408701435070853208066828037304471186480787145453450752653999022265480739948235850768458739534343606497576780951109921381059301797937192108783157029694972620652286367888124134661154709810510010141822868233281522825488460909664518882481350476040533771444921273412386868170233595146012077721915368249754844545613558870571555284555327098774711135874995539299521774571118128622872471973595602838006957172455946850331826293759351974062404312991132039649421755027596925571971554787967733138483930309257371389587932131634154636753820354445425461435854902052455162581638160097974289126119393096083650868378416316873266513339211786953693682324109637206932792048535610925051719419337545353595155111694029035850481196228902368872099006573402251703757024810609501154472220179716551216615327573435143862092411375005343832263877881312993230790253857358370730150807557579692267519348179904119290106317475090642801627878034645258967234050709034939916341993681537473994313179349961480875730555462968871284425805403649572261562528202673483870586734667926439827580498109022681387444152296968537391091926573534291780131370884518036383252814417590935367142905376508302774418381121092845317964083421996444658083728305256221733628017749831409417639891798508690246396843835294253330443221913857530266442825778401590454521576892848564579556013477801228981965789030999725694732166167383453372485886875244531916678868112422528080029778478346733383664657815672650240936429001776413296453946573121297697732263263698477309996790459916930018011649139906682840845929689291937606359399889248064845813435748866830968524579136993911723762957285699160960811974874005925220373975323406999550060617086937206313227562420425643048473506833745299925503300565266988584931851116044339418524914062097095102418265543398463380775024750487947574062977834615087935381671996864840069367728852536362709098908384490836752094258112884852920510626774956089678412804357979464873932165503105563253397544559350593161852993776753377954244790625859028810076570056690966846955599502252058926123958783139335232457560227311600803055720990803435939417716699644316748130730868753537562681194208822920511396117907099450543028121079899469665297492050274484987628485291474324829304464837819337430300555547506826665639389534000020587926159862229956913268855161278873442244550211368933656278124134806168653448023200444744465462266331430028020737258394405782690593483781056934051908901553420101454477725418342827845604920424154033521719434245535868539646859166982527476414263640312638466950655581761970831587109272790482669721611104585450695920068125038429500043127338312132068840653269276452257745637626759931478700468059771783434172881927857422163518302119743061553047582123656893658712209526184885097598476003828872032498997049057506638653074179511841607402452623693152612731439620336998611004710912589185475178092314017612572604520367084530644738951109990365236030506269775125547834001434489263696216192081489688501494500603806149786915464860963367027302385783797434594122044160209798743399019878545787370257964990356075810262835915735906540602092784940930234021684978701890936242739976831236414598211031927923914039492832476945480155064471305075521566373438616900755924828862741184099376508951139549110982172789116473094461083870218428625532303593881345597285460210711372693266956817639712663399858218511355189508024772349757919011371107894880554109761617375072109282832337770730240305439623208993734216611032871696112325217064169194889552048821848289458219395504280916848302011492757628163257720985230261073047707778514675131480767842071631697512270270133849881193361127822799283090652379166945390465691776714903701002087071216421294945162848241746734781657871613217751996552558134818132857943691310575609849860393745894339677135400257486425592142707267319420766521817902676253094032222166361231276953714028339211644609442714931484938091401480731687061158531486549767807113061776699189174866180809984206786698295932442436687565248144669816503374502055946769595406556633632111796306458246354621512744103552497800272928982954387376967193369360380274417646748314299424192067833427161011048698733685079575081401558824097033247663247670522822664408009587890723942954674970906539007664350421381029532902625988293299667139516565729347058215149638382925259431831839677970388472223572979246550788605755490412662246476584013092619534252701009890300854614159656555305229511293018968151515393892057652035890924426329136640820955154644409217512870574888553283786528895346220748110086765558088333281955442398577090268724968069085304492071490784098903976052477329137036597845026099391953795625338541713512332594014155243236858827487043473083331185316983622118368505295011859076206954365464618639844168381244075449410649610590006553310538065313056388436852908456930658345135153028090958084822558416962494828821086586926907564790138046683049672832931330675897471964927424011038852430083834065094429701259136486788499607166877268495511214726461692089632735696949342687274285270366945551250621934221224250064189030313733536873683614415186871855024831197788614895566138525937256423910197356911053827682748552140943226791846192534425048617208817944341727656670691187745548306434440966700338301707622987573173470325086896074742834922759086451853269332874873315312995683237158110049902175333690552851023691254951662113219494679685285187523624411062082850286889262476413312319859425744534032745398889518245900251476586836637439953121522122436125134390242913964494123497806981479347871294188909693198518645353867418615669597992264710734897849787783225979024138853512182086327551724831180709420052497201891610858366960556406576330798097418937218900939694805420585591018890251639263718973385793282732526487874087744909140014937674841385060287791959827249958801054606348502036209885467498661526493452109656089013145633215409188530580736058525903736681227431688315577967254692238562850280057244599052647197118990398546667953258837049088503876840903703868080418415063132405120064563078800299343820783869545869202343985834692589501501459377295837421302786883112106733989039654216724040597176646022026600895667814182228165676510161349847083786067657628057535521812806190777406796789753405684329060522522529192280686035842970263064525617421007180148060538249229745739127447557645605883081517403592357092176935571139795506385203172816126056392289979974590951719097575521345422252230619092838063467573450201512227963656519238948988049457039744245357601117164588471946166883039744182936668012835705058928684951292058088136084891118020909308045837321058467197069143978550565877828152846299598494117927862144748954898107776804314917533440805002100743501200637687124388739956976016937577882778982704084706392970311727787004192981589063060663705988182763860115016547312794846287574967795324946913930654504110875875124659618155632663667719452644950014765800374226824423306110992814008899461328335810967044771878711280021498602641078812352099157819484629786698052888128916002103718143292226635812200766539698819238080618735099051256580189124369870044978520332940601274184398092636430297470544577852477025479792390659108034424972658459137711322532034958876753983306596168505231914460857107571792325317086910552432313832624436141945473825901960618555356617900650801286095684953566573739478445575728055096166190429440598849380982207049749288555210448874365309173866601272758905390998963545743814141658856319277351155154823340916130030690875871983049298666519824307945115238619935956797214978157606623206588632811404396749053908704637962059067603063174074791357983748924752266002315280088041544493726577061086342976282947748668860144910302911031798511398149925084555699333848377409564323926614370616367261379943103131432466430996090603230567443418767369918629373451749087644689726779868713477180732120286397641387770052907221628922647626064688692887704028421380188437186555607696200383342158246176680338069686084886288850707756409675243494108622171514174857612933704961095822379863758712162362128470057703850442240011534726414714261896004238933557077557979536059235161606949122133055382808833432741999092285995588373307613666083753864405452063886598948696417696902186650736197231064603265372295058872015366177378427462441319167120333709284375575160858213303893354455181746148613013422542627766857737006105830112329692195419594572997898624602070054049774906149409295962915410985578014872929239006717652511179704807354804707163619182015695646734391036311247441103454827740609930157077871408292541895844103747977902627580329369189051389671922107470068031463760986343315516668425760530253351482765756983020166333610743686819611055424608326430922814949470808576468477762766606898333833708001113187664010811110693460649943737149760080431731436858464235053759844697955312843032019387757582456766114529400451652484050933497093995720357480526878067210979826926766761049509600422195613852311375147662891866705649288820281981391581483116471787993135587421660589302376997610107650724020026962748594898698243214999308262406688045101783132747353020300788718450361040078319961147025923420267603016479162192338900182850411707836248134958433152963734228279162153585075062195257715438971366816036469734281977907075443348966348197629477103721724924934431894904928910248163101030493317046769686174322515101882834423474061824060636748095521917743324469303567140903864865002933119659938746569891574666440626328532900921843099062940525041667020414260906479087911953299014061353036139003605460082716472471479111881126290310478473831907402431873048217913705318472834083554891695250881209379333971030870965676069056991627087527350286795171483802171369622570362776194136477908480430974860468728988615481765732405571193473605121583820565151530302898597123531450776386938445376364661012884795637439687276747451318237053804996272590147668461758688843644175790418533290528005049857760770330741963826598404724332817879591670182933330896226095455002496960427281132420052152030819452966686014860707232679222611358080197584726941743690295844556053171340705608792595203751854434450844236325912559229491667294012045724094915100527557813748639654263826329713641161906032305722118302870779506360116601878700190475429337534306967827215416480503331626874003067114299302077449775672526803045776845085263610363191895324877498546016601876503589333687231736496819363607833458830324433377221208774987668131305051282850604209450107563874354950122794741456645494402773796761666548133180043699968333853263120387655828123874312801663579871873951344816674165113793267619329657033440475080948885782370217025250293449348734578400074700805883047845642799690230014325303273191508938050992646470352259757427230774852491202375113252893829894781477003594095937991134108855169201487487497924537333551097715086183731129558651019203154882229533662937031190700167921879735974895193246771138235200873952921254408366835624844327941525971530202833190651255234354034645223919188163635561567983132743310164843895088130167696662381289698073134946087273788297046433240889296135200057402741101666803290045291443328063340381080986785792612667970119248994024614118211866980701872661883592589002955996562929545109480833664267752558275529556619450529235140495126563012877265430773094209332089264261153469174538412095738041601720491846011458641803933847132126556772993645773298263702039687156581779388475570563328714775036146874428437525309180617225022573512107338955082875617414978203802721575098636122797824752862464785203315141148867388711359357628182666024604478881587290013279878129433334466271818777409177479613034930332464978386998194698527396584942020217563706386301001605429242637990452145403195474043277783088384805625284174930390181076350770201817918621504235761425210233943212608336217316609181621100812031713670061699294534611373878431907108954529218539558120945744264540414233549857513674596694981434390817899165391382308286763124752869433524699409727888194369914995352547275706996632871833377690385589415141472824472519218856843686015474092650943387636991607690244642224082347720242511811858187772311689168148687548482292111816607505951079593155387257603678650148465270125832070950393085568081902988385941813826218812433708288942628161968068351647094917833492459129270450121051581972110394087806340082849772062499881007308330337017742744447585544350181997351218192992577985319759760354845351041760903376153345977929065130093592025556501035882819900265242883855879721787421526720425154163799143427855056048221428734339335505647331491538494467966312655937620874253887636227278393002855485737438471596590146580927392976661802673264280418962787068576548370564548117922282810468443894509741787919820199264553973225293315602972202093947883001964804722909489436974225649715702757447074602981502711990952783092186247335527505611711836640348520373282839821001338466090834856987357780367812096902002675261752434592139105712851625695214430913757971365935401489283299265456819416200371458671359224754972468965396971308708581920738076176170442404386810616128840251976251445789392035031869950537400419215697606916388554642155189072629990407545776170873598441166417046307401392751692897588936855397755652690105005206498063099694016017551891581174157999240345426747393989175380861679306469013939162441347382180802891691026661804132786194975325283015319626885948348130257392065008751925944777683920001641751635791745473756062911231627935417813134230550293107953106155010079545066535983961842841231993384618276590152827705401502125783769935827734768438097154286517983904585416983048206117253169565469706471413882049666172790650416519231859837825872153671046210155854456858915812097820266693945055821415809692242389014165826398107945753404612424930086649274411425347166570446130353329872725440345985324731226534789468969116027191797801333981919333429233501360355819560821748033305489538915299254716939043934156879015771525495054636534387525528693991281034616448048031691984242374027011632861982492612475715022171672436323054815928795182752436099843424378340970922084300734400624838696634158471640605761226584441108676346458335892582580700805188781441276896693980307570062834263851302547325864808619768637089306540640808798919152632625456882613611147231624593574586801594180732176493132859482941646128269493130343477264503173295926057922371022975295930223290341671579018945178300587596857133498365288535083161853762864878960339804780342582613142448922938521664227075680903393109243116563480592949823549444714465789208091200248878016221812017595647092092838283600658860815839852571036884499400310606971543745815790465976284889977308700353027360013567064244198590725965333905459036071361418834480112393735054842160896045851265780215465342961950686869739272442546573251251742386889656062953111709907376915734033559649905906357290413108217397202189282804159515521103913075342251239393948112944200885237721910141658358889082744552449919044605843383948813174343402544037309341869264114779544536195139408767810294919670922341087908357009840401653728934767091612316644840336162981734446607424720838437204146522761621804305566245248378182009804576235510959714359995136500406927509669003635087335407310223319292426661665577916891918064822306820196027549656821523007757987027353191841766667824594903116787503865850266000437124975954564449018783824239166192917227631333122190568786642050832762276684237412286664156462234270141325928884879311475866321585745613256853405751471707893659600975587612856518205493674040502787867804666326467029944405884539449778527730678990728753946663153263638692359426102998038449027717767583511208321675440494683009150742877103110018663790341922389686289128424486727978814235989431464639485208434934210318105207596798799842708965297340345300371468924757428620386986002431623773529231733996821106254071041166582129626529204433833429311790560793639732345181743215059549457653600521882376988998564193855583852137798554046117649772226043452383739859146101853302690744030579332857313402106343643254334826752733216719425605200841138251455612824852416479244567109020763560082437525902508552686335749736551535571312081585207387172395017416696726881828202295458157538342211583356983558671926448163595135639517529483682364417773040533081360171135924753848983202350322070817643103066110718962922007449985167086588312397892670073264892398592885591029762661532793382715929896464368151302820471788681167705461760853012355714575063964880693166480741902399146382992766419216904535617233690722998522778397767373659997339087723267185772689209144911112125467657166762092317472741789749537878687748391331635457235856624426714343961863296150936604050562794899456974187286661438815340791298989377441080582508635226428692164099541794422919175326932661421612595186574346757387372853388985988518575717735814576385532354441215942832518018168543876838691147689099148470060496933520838464254417454100130677758052352792018824866530522893989145460334338648442049812688438679131568152868475431094257549168857561343996126534975834569084659531118074678961971073385192000896687667954858642188874681499109882634287694151571473178088194081448105122150884633936228410578465487634381220015248787821075612018101837110332001435504006464217068157784703888270670681425072509239949553043153270762662004330092285777661287208352079835928054516279680663229662523173096372954295520543932036782420300128379446605993625041976894842272046521710354109366434293796987330721747714509564626746215167312212627263848395328168245688955806882839543255135688865586185328395853506275246739513985437733527788167030256073903324967798306190165626009773329016132914974743931976235030245105959598047687057818150446579371147752825233173969234373199446622928777215887520924281291676840668409066314503977279193798374645646723760797791410169658163376956625159510245076120723789334312362311145317819032173904115398242862454805465810302252254345594778418653795202477046598074375579138532382253785743238156359426194477750500376766565221422168692950087000434831084154811908353800931473070445791995876529619488175630330260788087096101225889818641393053934882156127917866222450881822175185547407899751512371634688834046005288308370505937746778930109817287151396094808776637593805488264143209262478483441041022689718047870432370367094126293798484546927313508762581593148962380893911556503777265394330080420333744788618846488761276174607402790681239500220274104585112814654679697032682329993272057802259197780821506655326867975952736787658711499152232828482588577057266351389763388038769976430301785565445406381887129341260809746348543268051438911923619869444048960519139847242209580719139913993751847544469013066981506241848633131596507121392908257634204293484798684549201132853707901340541102618587031290756057153318970292053757110769582228176119995534037941902487494494955340083232744036419215968589084869741480558804207568148205889153231621111699656094334958024141812857918932836573260823946012950200055322851913636772317535847291831947751246559015425447289851704774690867056241299137230655136936103647244761754267290370049508640464966862527681090054346118123530733192155751785546791198493425004605462649944404895910554706119800517361298335520186220694507538154420608461671170889285260957085185500307184277226463939991504388450487078565921552663430539209771533257896658814254930547025949998804728580126554749503003466877928594988622128450331443971231492057654567506769443646941590706703757440331933002643106811866520236626173597202516552061857589995111288221155061007118215274869615541207598298617436905375661759448455856193521647305369240971756051985198100468837823267605238230123734243753707012497339896719074827252232146520043415689576639536395964161420169161462409909684388607732807975503738602415794632581739315999396138618833109164286934595670408212703922099927990800076117328668713002401626284605849271758456745616656152471993114009273240670521314648685325352900375488767302755700406815220137382882861143049115235987924679726186473854441043352381773064635726310477155189968306849156618042516758338127174855289865169287296057322062433484869101600473885860635157559879690901640545308350215818486689944653029982829899660912899408242946417310395956517502177776234147613927006778647589616022740073036448435578801379559693431815238329766498748179552819486912722588955687381470490482569155473212345558214093662652897938243957244868896076476711863800303895353951235059212507560022448330685132721574233721820933515722508109054605235159078813609725969807815984281376057769540341384447145089306987034208809954457271308598270419390930325449035062211475357770239479141657432930361491903322139908611549723150104172603810879123823337248083046678062286099208793519720470491525499765868240664823909562163461124056868622045259596520085351563586469915775739320078850659341666173588229984198937466283517595006076301748457145415080020531684922849366056570932439754894566864732074662125291026275971463532236223953489586801026792880975805316906540870767318710048199764742676809524889611226328794042750156509213670975322626258108321896329928683778126056012783304771868996902480631815326582134355324827185231489277973285832991224659708199957223766429206083064107525907290841960470307842815315770148663843937468626599525634512821044306188577120293279028659765623179171942488988216522603156919738111932239123025397323742921455683489687562552155927836794829784201431501736267788190214738024755664963670702682668090248924353492789662462575977850376385914513089274031586868492643689142590990714183361417479457703872578104992723957023391837012334067744289260984978961783858138875745229085748682621343362338181767971797616153843521296278195331980116616547541973591293527147794937644844460895399996724719144151012766187789824613482475619034419226399622703502224067323230675354868703917158576076172623701687738789875407959483261856280284794860057660133549821966918142521024691119552400005152234243254159286027652957756688921076233473926543730476071683558843720038218009682116600534228461105673789065641346386847331078852373301020040246772280129210649897061716972277723692828592806410944522531023030431093347057231278283576635195576027076047932630872096694523728935608417815352581767904119628694818981028783256029749842049328356036226625436383747620783930573134804260691039967183720673230426916291807418512911854147089030762998518388693731921259163033464294248834303783952392822211991257825223971318887792877260410692208349172671077775636725074650535998237856717760095950688450195839154037113291592720707995322853452045103097588571153193259546903910199029260074885648280957558536039108544669416261810437923965404777207004046849035912302970317440400210496511256471323495910968360011819703006958220224206796317915544141506630551769661121528252835550942837557059889425232109926116457537992758774378169136436075687101575641267294021819189000902029087528564789269166618061694213600944563349300936504833622029709082193415066141818612988064788155757870906071844418078075866081798229279363175314306698250057896833432259468872265276330939233626230304867080130998034896506321388967890297906273590127438553248539036531897225837159358200890917582086275407971447041877221266715092060595567317264099218316471386662954706106607357085362005483789293778402153473510981343706858181495513488474165759197042679604762909741351561651961929827814932473702843102812553356843232521935880081348566872311886590660228041163753248370701429493912697130233613491009676042514694349341559277227061839172602808973059268557078648989459777441332334317979882265285147614412367367929567872191350289967096909834703797699863841082454029935127342450973320474682933724959439404452183546419984587477228210153085034097982704437675270171533971566519938482075101165288966245288102419479243031521471385362552109398651737498636501476231626417552504368930451285842311517189509224299229645997600970107260134203171941292418230758274045088874629228304937645823959335235564713146825068466826350349937574521243052529730384380371743584899136284201440154959288295865399190081066680285737889261658980204412182916331284925188475359492675324845066890032224186515781568321884853310332330426725630114954086505553448064530915188352485199154555109947237700381217325531976743331109986590024959538979116978253536205088147833448168125581504439683836971549919882877723922497318236110002145732638523827303551745529412855718976913332543095710040128576535860068727981718429711475217206717141599668513738204951498646500117979368298883900748172131157540665628174179726661671258272062514244374725461582637992052528554947739506817193221509382395205873607891323890031059277670960606270396885853066374600436197679307375816521667599515653101976763345107597020209645131486645070327963849286795364463253329604136827161470954399055690645300916153221617193116436412577231828679341493508679772526708490346526256904112231030842504935372112310666299582435342862129994944667386270779203385049724372094519800361992464537659519854741108832473909148958399622960080214930389287153732864313234676180438026544998005829749710674332227516320453002084573148191543005707037778159707486684863922751867398346115816461407312747719452767537544999498169319915840095335399083797976910455133785306133339378126185238227557669821144300484538276863005818393499480467011392288345867138325350830897456794107276217152069486523749908448350135623499167554736787995503579317706732648881012867488339424343560774043487676030489945141136821450579213812169867761056147973095410495181570649691967336294194443360869922132368395722748826560010323641193652979133762038182038578701424090831689190173609737762716743480827964363145262399957975156496872657056563534179982227971063137183409400140223983064708773821962198686055909591838830467690120355488970646152293412362656918718063649246893634738188622235035676677269064976419887319601135803673870069264509962015420432253719159577388347045824461145078731757833539188396383845124081631773833228932184916858555812973406018781884667134217631241787759910382976609940910815715457645730559892240958237090824478086758930111962812131263933965467319725736136524685187517925427660161592687928220587207433469220193208151575928013820592710806535620324280675903181384656092423341342672833178668699105741017899329517717697283190786561382006409385431717425237112706955256574742204331147700994766176234830700083606951947175675418877997491790384767804053118167278483527136845135094028597374675557946326593963955798293833888892458887781878865540632349554256390281904062923490760299543760090065416205251378355673453354310095726775543654290505590252421717023696563773819133282475863841123503884255361551667779397839295036261123838694002793413027355420544948591685867025688067464054226789581874239851602294091331676053255501900552408430051546872594571804644093960816192260733001904573218875668730768893353047635491903457398665307075330346056647936062433975784755070093340294528739694634379757066159497749244704406351005358424219931396068144499506273269583211058209736159911299262109442230249755150105933840088921734151700939994128599190440871214344739399964642631753262304103557896438904428453547726792132694357998067919384710513068249139663688148003101303862099090442974089001504024659030833957821245934749894541484004762601300783526174102763523856520162140087878055224871406289237815733557332680668932939936371983423309627332994113821497581444766623574895460894614362042343046273048474812960282731420443833662028593622825929121543625854193091287542631308855279190357378056424292211614594115031826615264840246158339173378031593677856795943993357295870517723293670744832100539335887599424022356370991231544943871207101241366072690792091053952378837626480378478077189334561261706282982831016209399022180831804129863723079588591077713594238720505977778333981605460890892070706663477470823715217331164285551547419489860093325543812271732838127630571836529160823295719204780114816591209896191805494804161461629872415692312374806361095865405063978222278869305985904202558364458923515751704197203146644016723351892207452763630689896113732363943680102033235612752037553582223814452320507550090043645165223643386300290872066800726827197729000857523757327615524275372662980756643227119877664723337351947960484886658635058896146769080240435567568480031990586345165795612644353718113139295066026550843482597358296207411758933670056553366105825948783593941895478198740483582692579811444680695629755101152431056304574696087553842423006884240068011643941682394783352261790107598410052960008878085865964698169690045218094705225212385561888916791166644767824147935444517216196746007994724138337410076778961453846150568514034417240765503068748512875056545028382623847951253681262369072765606467380604283868498148042989321829239221569516360332368005647030386837007230337776763415583018588186368828598048156017781547398417051046559822499518584000597290873727233979156464353015106572805986832999497420100517371945872183367824966810178697751230356310189935643169047828684692719808650437583910440731803902277732966622070831148393155414485263158880360306381857147723563582330650256660152091339041747702341297328847552047851266153681242531677695731339748388124388417939419120325895367477965739503137542022413498970431674517967039923169751746999639508887315457807178786915219623381287149918159913460244885229918922255294218098876337947929119438853073240521673201199941625565730030739478464606131020965831494861136583964051223839306389299900742469391618029425349804151567288442049239455065815427161782317910334602514388184606566100826351323812279499729685636122658540187076034940980343781203394919652922989919934541255695655351520313966068469780129198355332524046250853398418295611765279297258210363420083684747526328900025137932245293672793076680411131831831989453723348416534155627601645563739455639538345913277543771723827821281721143173704529072920717013855410547492802482896416177710359937136899117164219833785257116326687144398234437026013981707676436310189571253228877236587856770929381568238968707690602473797580805898542027765813338115119654265589232281222984207927824375480277816656950596384700497851301248384038766404600624072549729141360511711182768584435072257086643871014461424287406802910033016985980656652300537807969935125922535952321956680080609403501660112750746758808105744694070045464826916165344281611933936612138025288263184082673485053476282324888085972729532194092353878231441094053993039876189346293877469083884035479149584915888136060603756228312824141569089537601018326082859647800556104911612957479942321344046871603816691019985543934021279527000521828644991427397143168525491572192599970678749279511441004803955490941468582726657191793089196156632922479214385395021165854962909675554297852192200632785347238895404754649596147159003034030044460483495585753809840723184288219570869764483981127097895010927817407209642184752293354364303053958341146511088037639715855881706641715626763937356630840770182512559061442536349156304455375945594710869641662235340545289364873654632914407208164792704570197599305665525000827971039078841089516325217023420704479512758604992935150966020501392803304080822575340404300570572858255316275774539909757287712719488049983259477235700069738688940728353505522483880245617801781125368051295408769822926410361074277012613687367015598902450807143909248490473838443514511725744593221219166507051085897800938145965319570382057864331366239297552596573726041358752491764531643698325816563264189659311901336768463226318876624057295156093274475888977981035582431180475799036497426018904556341305953812787552878708293124482000240369648713956863565150704765669271115478414763725501793325016539308198686187512080417492916964771516210533994180675221564779992834327844354269134056231287616453262261087947956514598895066399323650051168293859652154807018031056525003256325630107217829672150426927468937286509854183241024938964849093752216124242984374445537206014903522826103037732595468422424035180745167722292815979279339489589070502227632537759009387096842096757738274842328365090062753978454090821979036859203884437460480800767692405098588872402718999694096875064873653745588579881634348554762901525548685265730658030064829746040269512569625863588620549761731140369547008699007525029723440900182699115778245388636804265655515213637432996625792430857467202684760760213728224456552653922458405758072128789250853016423914289494702022951955204465561206068031528696454497338850268138150807894109204350618753403912919226275119398318709563773073046356420385585564619359878393637241469497157594344262767767436921049955276381176750518138728311360572590794938288514200688930381553284513182768337488840844647946926943792015328873432023579697913226574639810182466105063131335971243611367054290569277169474086953297157716128517891862683209188515135083456904426899157405810634849790295647746666637425755576337076228622436247918054599350241596607882138387532301591249060778510972604924159992207794509733460447815456017655119769199138107025247382943390260748595938117974044895818915126041854846178267285513445970269914762698537556272600065423480599454443468553261685374944952695100216497154568032026911768969595036628520990795621154284071309907793080951156007908248217348094377900849352927189422013928674039567147771318883769738728502894364117427677505931412837245064368131902690313712091222288679801261582384713589041592294292405627309808069503082516629839963622047973521904280263965834748861362254440988647964059059341384206507869176535382450896746815999973486079192111138026201484697876175073156800662794012718685443510749678615992103925051782052312089899090088783167449997991862703249208544415400833034739116730494133765588613904022463764278125467819116551149331918081840294929688428318824435802901387185481451558685834603839414273924219327283178725572611453064767161612925089480197667918367856835478968061207345339618407370297419020983476399421771262660173041464433059070114861451904461949345444686260705450177767878902869354231437463397612868125060411092624904910741115909704396538225058678012040056827337678302188077633953313417246738298330039210890767790756524001024554185231247010391938336557556901085761221127330265643521667927981302100565880256348418753677896992106077113026320741128445834872791016100147150346101971490199440410039807868819691645471751742437961161185761744272640071647819613648412434896706909600380941374223891577800126300827086222700151533196426928149395518994806745320035487396157314347863070046509091968110951147216184411990759840539844085728958737211897164901757191525628973661093154220118245408352564123541184088864549305292539224605971524739153822042762242749014906345576866854670718257103899263979151450122079927264795298778000719448682119441830988938121934629605659039849513900430775246595186477729296528216926060538722987913343028006181728414455738228353166762339611959247350751130414860327000929406032851857482862388158555335393417567679024064479499347833442162674747823448187622105181214150595140619194411434401262148526536613665674051386079265801654482592954021150766845115937579754759571991592101352531920308606609261569819612043987559643567798059477042186653387040700872274515350678507729093753611657862334489253440587891136048944052579565126935991000244835563738662179811117129439549370067473433833665911839596891089841813068726695096440380086227382764542156594160946427876587659024138476005392078315385527015146920927471776246070949641886033601244467386840587051704595080599526940210440961469086877112586416917654914535957690210787206590739130209667493343923115902892817889395584171972734363979232341159536774312959012187625793391026227571611048280227084135878973158469820538452459885384555606369143542510077605714011760087720649224128239703343924503805466967852631051052191928511386250407000622272653902726178931221079393833378996152693321938417886668516235091613873704243101011774177782771258402253332267600288601926681192402405648569611289468529223155690210980338003569039878549754800197883562281457128719619860009811772394911335724590027122321910508738856974121888590642850886847971765893536400141384111659514758399649603382853994876589180346613336513966919585151820346628733348532739054915966722239742227727549598726004380482473837022033877376611951243709438159388354902957645334046591268413890499395453952343483108609332855800513823126207431377587596249185952526133675022818401492016902515692747736068670647811364285637510231709167082535516798417649859169643669941808014014181812711359949475063537292036442280397659037853354288303974778823731577293486115277396789485994988988003318886603704794944558565696002898810761512329522221296010391941610944551090247989491330283993251023213075512798682266900481518251514951010244624907544832059580121304958182364286560733804927664109892926749235211423933646408004269746502113543232130505029091319481460271478602285816141802168112291498625101385082273494661582992224743392653753771754291303045536798993884522578487415381037116663423887157056143411241314330994626508395545973905625288609949851945912863722349742109606772879719543360399068955012813428821313476536898993781108181314878887546393014083734266183504729924415624788366317048330015528860494199586734323799557249012168992266755961154368012994551352495308610555297408516760000882203936137656820909134231191882207539584277348767683300400078603242396750217766721794492903028968347352986856230237298454931928901373414296162742588144773162271717815879694877071905343447970062564443087371078593120655148163342546358338273134591012134110319319914553830822109581929778280682523702432431976179197657387442145205698596811020463899199971573370123573578966852051722520699919534081594991275613568792686543930933939491394608793529519141831329113902292118802120695518244010490832720311714032488829264539236921531794402311564949446830752295056201656490438746728584729967566543963118220894444865638035870904646634738053060313360244111126665350276744923226652226542781471251342992615105203439191229670543284708239369128212721918332444941099068126204351645352531789529665284714181396612465828429530829202723223541293428498492055935277929438524395659175060526383660304883468140217329073950424703693798181204728531460694404062914763505850486454706792303298008009504771994516790247591167125835086828295911137850096973298411423111105293099098692453951676305181995932739610529987249232102781085443792693377961683555520381996446125038503401092397703464616182284294207448746372568161368268401419917629541121263236657848886237642158818948256187690808056997791580925480908902742159251195998139535114489568268736878033834834062233038249371992388863914931131199080159788249012179402494590685731300676264338992100328976994930421368819731104950648292297710521096062018759397074446482047308807548450969218413784664741346842298397030243268553874728549448480490624022615326289914231958381224061936047060471400052882275935847365881701438872909065092467312783174621157462910808856492845685558384900344190004946916099818033778022958430556567424624778478408696425383574212123029186513180319317974790401607412161651094090475612770466748300884702366883086464398792916325324403716953027143879378222698514898528711884895607409281820699957865539529144531789502779673597411516293511452789059298807067384646701847118140797322925951305640746535905455297643932377661023289303912493565510384890957405684637292103884289392038479820886277802065705876487071605904118742879303625615941869524915887928977017598539194310128973871997823437963182182397646818749589026888888958048959233387718936215580034026083219577937664332517517117579267301551036957276280560029646751484870724679184791073302412503708550556844422573196810425290603314278120121691086653151837980880043125952547938843867799489853606293573894507087537882066842676182267290245840262871028261272583618793081316152163438649526645751774268224145887485612229465153433285921712333822752898813085702834842333871211627537231492027410124229775358845505686132045186938852312232837498876688145179246183380406920934858727658853766727775319606856418787129105180218828795633072233496252927463597555904809034882520732145081121866635264242495182711094503696225327181437752821748827535193305875526515427210185627004610841148194191052623178433853907217990542601764222536112331476603412643885975591301469770391084777984192124285780985119811412516450299000318168008547276357604569840346796371818682141974726497785374972001540171408047685107111842856995465993760268826429002621393954571051711970453028484151622091094747993473511687706670641971469112913323936744109890205912247254149769343839533160961169117232722367882835922308624612612049439409777510051251398004903857025990072434392667634544610235561555573867723614991783433284965681736544401683202000959618160742532412627550283311635483431100787238885329288285035082298646958665757569082601333432716094853603391865001127701307250478643666396894766541842118032085916423452674765058027668074380732726737519159818100681716033685485196506937356270596713354909588666261799644115783645512009076948456103916308540279840045219471703081189550603998503952110690245686875176602877957168068379964764939792343410843521188560554424962556053452499795418900333035182182915440587872863186886120267338019392358356383005891022185434555606068515036070816669794030042395787578428073608751122770527581569687734492711457674279954343171426948038179964805197076588701081622541277379954722734934000428372310841523929066080965995336683396929897060960422004137146096853189723258195441596813388984719385807348121514390741939074768578059641899189402544900684469081220112107544616593173969032763007055022761181634045645396787168994285334896616988122937570413492800310678841443658969299454545095528870305129515678588654799249301401400498925018509696138594039212349377874067313614465173329180387902595028050568361204546109716514159886399944963315640176948893324825972609650239807195156545489935022089464622204116072323742732490709887744509101400231801707520586335306076427078238614139681744577469066530427125673738657653885950023904358547080012320661140008183580683612269858481290274547048971924349240563083980652372963974858889429056017520195435454294278423586317237527040847178472173204933786714200969446971953763923798053506356383749636500389418105894206990472910557914679488104844078450303827885256829561006800804477137110427200413333619596433645169795292842264186163259741451393860677059605005164752753697521310748458780149239579883675691469470426847844191548511783314730141532060853041178695322922317218028101833895597994948660505294168875825737647535456656235818980342716111555566595861510720823626447824507125734781656782905412068031324165627068976268656642573453487678715660935215487738136216859307024527186398675564606632896037490444157030730825918161540364276276662002958076117317112574311243519120705731391782471386302677133182014090220809068738756574834575592978916919140132618608055414515182429207904635537642252833076042018593867784635784964957355780132144185344521237358083363448707947206378723913050058078002816048340471372883693087886191688775734945751443098124053864672723871417626005573536047554502330246713156198231175782428596722750823641964814045742842951900486341831300145556822124842201844813674722331538497672066725711442705288471081794381658264817654341588665240122019166259421421053368752904771402828350401512281522495544551802974015103392529599073812505971149753870936992979131951409399511930964646015050393980363552781511266168711411406809674747722896160913445036455633922433480521271520630900097864215847699992340826102353131705093250849908938302740679220508118885257568833476891986467193576890305520283767433129781340054524380533493781619347232761477393264727237955236451775950518822131191289992191007013573080913366185664752288640382283206192123516558493697658279877545232766660004621055445354888929998677538468474915739329600781742860403197071243286392120691811888110240311920865493797354687742497443432704023710020271104605526807241811570531642005655673385382030254259560942725308973294328243530018097806687417562102619215055341694497565486623051312178477307656896270310475925299181063638039952986548995637049972534946699246523680676689894721995298029767671214336497590392383154869392101317722715864190011287438976028708244420961352183270014938056138375917497435555552783777740530460296826146044443193197347874432096193087305654316157582187930998120588657839089805386153040606893515430723125419825681259870176991865454756949615190694977672703483163084665325504185465134806585641626023607741324787487303763929297363017410361930868456336583930979998178457132922130720679052852863603084477771220429297877856787050376839708508838381928267868924108792893854782312908603593767370649677138015030710977376576682948261250194867633431596632275100533126616179212428388977725939348956773125449697124438196762745732406112899686672484300535216706591268906052177145014160848252094282535057323331834619802607842193298834449509924420169738598655549104022085698300560335659147385245892964491861185627138699082041050433247733258457611330988852026069995006664070832455644366651414675154323582259419758313357428897213153489185452736108990744716092616591778936469920372096319653254162152646903830438244260390374365967508005271236167659912986311475526651983180439401123901971475329867270149081259079803518941009618195719862477987102109234604661548480403493444934644841601758775812864533511120406492164038627542913338970360783014621844851879457825519289699893113481582954638589714274708890426559923539562312099718324336205276636023403535060515704110803599140693965212349001819236047195447600294090168542717576367720802595676606181274756421994712104377558209199378417150646966104119465066399764055469462888350959512034953563397358208566501930868362909315529668119291713433751766620192242881224589640940111289222678272101943273688191867102835639740534940247108667123286838306306222814498536974470270324585412787773610428090315932405926749556043579379268284131554255925493212669249445639413780426627003205637823551115307570220398146736862830980712329576695219453094762361213749667132021201452060945426831880097079292783051269700981748687670907921061878759006500530091638722024722651723512017333079935173584782391629949124216292476069746403209139187398345895126565787750554439726164419870429033995736874680613228299019959227453135768593259434653444410284662282934012362302119538498899491369584684279280887957385943934438230292560246667849510323945306151258050135805074870405806115924720934502575523109696969924090825219544779291468609181993449590159916671625214284221271983447294949899377958147845803068046985555061418544004296392542570126310524155412812140645510169733027964646488474588190847921349338306678673553087018702520437628104203199281808889565614625303097067566481544983325347412214472659750055257337751820058565590258996649053895262230792001572107672150272853816417392123775214288040964210956804141778306543331728260496178557633621385750557447541594067664003059638251536901109203406102735384889897332961683744570028328866523220587321504689937475954955013929271504818749380265471806871857441197205020655174750172929110814117569958874781622370441702442687457979469877949207851152224273524347091302899779880544958404048231763216367892004476116301627543427499365163544209222327743741414049647185801845575255791759814283984515232555256477857378978502447894593336398421180458589437799086034085626162609563493169051896679074344740200441757250173417708556856160288051745444059855819238403182751834446516584592388826082401155970811975836092514188040354160943590164110775968191572288403136273028740345600310368439286709988499067345526516041032649456740121261397318632806249000831903375052377224761299554117686869056030067646431100320997127364023657881507919276932400276903268408843322649468780908896977326385579542257420901702116384496731962968612040319906640934854030488354467121244895763767155656965677833304483422843035110311404795513580236461164081934749835198254012403681048749712586459548391350260478438823480877458002121545425765946219947124928498598398014080876551847302659756671089891362532279686651883222040567013495630396601650016744453667754999406828298934328652737657289642973140191140521666400479548344176729508003701581433272180643980942936455521185704762795366188862003611117569379972335152580378435014048112647322459924619475925748763405554645362673234714688985274685209139362432705917898427744279897682084557451185519054885842420452580439087287193369225933258373025464963104925603104606611838362221570870304208375947852268437020630878116287305377681809280969152063458539281496085760440976322493257921917327577769781186842999792923606196172043665664662024525196434128716689681485448936271827923747077780272529472355523227309063479197598195809085727296204629639025379576084504874586351932203261330612940925094185737754144845172276385573274095947974920628670020249787229349545274992223254769174638300476610424688749595284965210964188473519699723361904998174123699073515598676434099304475959600960894193320681451521569147110530010885706480571443260720143249563364342386549597128909591475984959803579909952949498156348326994093300156280883179493065336936662160299936105392920578890396250092134161917508600875602225208394876715106996020697736931173467919231437399798773405805556185125868172310693986093805261423226212918079126304388900965792267509281348345735109067916911405204563750034796796294254275961982700624416005930892779703451465875005994180873043067260066802661706404681501036873354450014879807125145178560240809040819659861732127147442641617303018150912063773409044825383137242981996794090211939525797618964976284372704455727191511052883142585622515062882824152679672815805486715515697727893324348009178818919428213356135154428991202030078583138992965958012728319530906195339523520175187302076497019706497509310972298449666134173764699101546251754929120858299450427571410196682949127678138819393758920048323036280370849392800497277482969879500673610867797205163491852560396487838347116999594361793878835884501092566015490519713026023312597656392884385034007445878326967044978463879682605704527737328412970612060881452896540031875124106268257753999287647499041326090089625646067825197616572398473399731957941387146209947600191992494657862204655530044440570694259241950814998290120559083803362745358876927351798047174232564000951764861397666081828005032213344409356525824998249584691938544425774319154734319509609433308964809976595275269992962504433498520251811186253438566626314761319096885977242954746450367103346136778416809901354436373581894438860241684230316835072477289037206914756643381520775685298959815662230885546397989833512690186771040081427292668143967273890447595018145725008755677247235060515354730466022664835320482545515474890589322922288682894434451788370764987616255814732152581333258986625017577087851896316495181731907631337555640761470582871669897792759481826763553164959360407916740723797252551744143140719906910017112705156238021159298203644861589606201953412332241443087651626047773689167376920103403299019432245188326154983950011781183941160652372898494456329032485643150370126832622567289054669372652200868998771015246597049131618629808210643485129955824966905259553772890294132356188385991437252228399095817945617765296570480717247222413717370575088089382039957681204306586006949709810100523472061639773353084276653454918797194345758521851907856718389570441302145728708971239225694163763236488347336654526415830145128019582142587797746966691928212934700648933506439500841765059413934714629822349038318483244468566706746317261510874998163694279913002303626520607797664459174527133947914964730155087061684730061035298394324357015437941777583705479964019814708386829750202560173563984265740193559385419184885186516394684186021196598580358978179322781471803996181660716034447934517785898505860218001430969964901846640544563947596229792678500052343863149569796578348703180583101581741204732965156256425793422082253853513990937075922789303168299921606172496130282705311119135189826389998557779953543069690312833951145622723064940522719375512011838521397578114511164359530616099894917810598368167648891553301041950081846169395871508096839079911761305287652244883730701674467534303426048209124058724398563021107571988008383139499858377497005780475899750801675171509472073188215738612405284860314871771878891744437114171759443854704544399718566351275729251853759561471981923595169664358157029103708824206960529730089611733677839174759099815200312484563035591488474741429958276449686863584805647308033072876886985717092780648538345404315497561517613183678414776008753975653777891064944075822255921034441942756384403323976349650531544195846689864832730845993519795830185969992340591837057799762888539639265075765334386493737525230743712257271013075472161002902533341279728904799946723972555291752679560803891171372273751630455236634839049808263339977256763380969878420581380737425850583907590518962794865013047600279240221581993129333434619840250695937039729848197645897441661383209107240490611114335444610277294396279895850869533869855517101882777805203492138413955932348570335542090281464284613775655417049786874112930569361516330704434888306446602930004592554518072039337790631972398940159071231895804554659513291841522774646685839720105631868013804391754797672009608420269015564545735403749323852051853806908478317478271751996330711777264926677954681500654002558245330904689210083409188357671983807923607907064834377080459955826762992956801390104253961266228367759905663409879364521736604761611318801219397271168458336387826585874618201182766809116840475890662766314028571885864376617224108961673152848947690228628338349682450655363728847738084740840045127537247639669482421034656325247861252899246067323540684166326526274972307346932646038905929838543129614019334429982354596985212198838370018604515404633668695861664458339460203242204772396274067566582774020504536376424635229694638866755695367306934311469486195464130868207784401977505904591459976699523948117100498116495586896328439796855022648544512356204966123940351232358887076088100678020302396821254856018371717063279829028057482558065484168491163340925554879917695457288689673674136553614732159545663821452378922190483496290294927093747554764164896129883456156879484796364487681211496348277480014726732033226651335468531073567771745550784947528696635989724517683292800013117787074919562667409609655347281892582349877853988237594660771349992657736610160362853974204039970056886306636470090667516568910271508376713564001799631318060397943334041521706501806516538487064146207193725332277903901010275680678554487060237781347766848269778404262156978514913108994510626129505775695190746797657391679010570204719957963758858618542666303976811900841359577915037710900077785362976498151493816079235050623189189047549969528092908578659839102216920127757676401445967304499753198201799806071467876319304987239392873668246782087502250084293458828069191933181304348970588333931498974470545652551447500187047318520015272612940699580662253241322452934789331793049481040532989869685078635663809003986457633023598375124818555917059062327642348139521187514476198404405541521900882550561379060224866914162372318467018451097930786457811861820153097941878557031366736076750910024215260544642735666643412407147125630113345093810871150955288308516466432805678987705721959399969678231811552131431871662945831875879330912509560173834359939740025512460677147863045446040760352651774577926380020252070671962640426180775277947354286909495801208054038940980754246220290447608490918413941742440489437524687525021556743827360266302481400927450346391519457500806298922616412626834396232887663381136375055857540302534968530318022628093174639683162216709816012229428715675769065913231822385361153374591394638008491235283081838586784542581163818667254610131426198955671284711006387842597796921410596755941555978182857749553658458286407535799099105805043470793429973217877328206659036321487545938861149596173572278094841487515940684409821197421483416364414968641053352544221772674662713478057126014036878133347544973352143733465157543638798929207189248193407575698433758350865826717192534936715969417891329841427570308325314491870175534213039009521431245638500853492326885936993543324216211637690047233901601462789131644824615287038638329449068998341351116217603405304302935158643141600579600409438451643885989443401510489739987782029069553018446752188996923617572750186363193546020529243886601115211195732020090918568247503111466678042291704183624458564954945297608707067553227293183675570495182649661712085040180565827757890466161013153440861241818912918885358369542181127597415604644065216402111630563791553787480990269732031082373566647781756771642639550775054088010796956523975127647285921986290271768301251120603239267304907859666994611889136834068673139591370680566951907370724330417615198041167869794835430170259407509720641841245616784404866651679322036780087579745438916701725638746853215800693537020070197871518266837573508163619714390778693475182837726694324850476335926724793874839255347812537952153617738080280639577291286682830034998434695944128248050575513073907267330274078783696993065029279558294464328940409697661313381269394684100138988815988379058157193352183555598075608264163234251319580833089161995834316631536631045033828387235122581055277238917597246059094110799516657121484738775854368628023451641817393228015714282768400434348771617737680633133351985236014702201480746060493431406722081784401911212844831650641592890384708507936347596489848167354713198344354834829239656448974045749222225396232311890121802745371800335802609678962185248187902684579075520793249064339014643430858855224990820147756417397409289029170197905241967332737160475696312914782545025808939509593943658350691159670116135612717035028834861388513267400744888646988160985242333163654926710035982447073827748933400251817758298211968037630314029714721375249508968821867757789732886259304058487003393794941147639721861998154049650615856210908867499668548076226287976180335602427104462580278021046019246016620242079428759883392651932407814370454267081963632592283422335347464001265572090659149542089480286275305682816586931627888521837897674471742668162036406053942793920387983845107439651595675413590938866511186836527345767363302836806356789014323888906955204580204396975501459271514364631246021250703829567081276769430961271707521271171623366051058717047849088967376405013996724372988853798708020979002200013983082628511490830140470707058210832441865727941400343844237691799730187679265154831208874329501188662792104857127958346027652488308506092835569589966885306268086427973980489331072315676179352143833921939335371455787821830977405281142596189815847885391364110322152755179175400624661066027022738034935498903879769677229573126376763668350272062819585443664767889080683243272596940339809096730749177530825524087754818816677779957558035944419226366789064875168517277018151605659909100078397213590901578230356215856438477721502876547888590153199678778002526440448204023555603070212958363156144981187989428971434873382022800547807027588249728973182386764081967298102317909682973587381739542576177408850690108956423190307698884101848682072852571344584525362416333300259828121760102190400223998485636211651294020100039237431277028046478510410858102658416713217521884590506874200876422221869499287552408812861435691595714218235435063255213818676340674289004634648583338280697173586357439961991869250168793591131305706386141265926547716776895228468216310241636165068144121678932521514111043769260943315036068299452362849390866585446913283363014952229468933873071150855631721943902052952060411599805244985570582540061070246612078350229195186478130139287023817268906844275972008110891523241651485700985326275282921264000139828013547541887601239993354232855527586519254034574947948405940562731787261110743504084930184682693354779388936962517385787815926396342320886402876275903039514595106004769340296373609167043419960933267399239393876763776012858050686217922383742416139738461210496812225933823640538698053022492867541914466429494492331512156964908532635102147078819976910570872981406511486031754548833558419602698248251373981881510815236957723587255600576278881743717647538507024905238646264117475253963734933949755406599734677726728653498656448995199479301294528989397966597035718679894985344058041726621744988907588075298938039425200318664885564331650623262049207740584817471625515486515857138385674918996645461450768149185864934746625458265578160052353321079868570321288221550312498877748843963573689082051104814820912111040957149937828407558914196696905614702824065061537373110112152901191673542557593624787116529640615322582060348198729222302000800865825716376121823513376216496296043270274878426850775088863443250740284763043548048224497236597732756259694297343952854751135137692953925394381763335560318143742230347843326178916366809532990532602846356618271094360764711411117126656233838473343431635481513103284983213284567098501517114119703465951597696721345882036857699566445095489701419735657985855262040730750036745309346489035431994365640817348153490014597976328672675885789069819519363011853255535007467130826943409008336300769536665955590653072408305327071804827269181129971308671710709480639264823240998474326829112789348573808659899478689668113164288883296204258162380825004996307701616419228649606367862870713306329095590309510491542332135952737570013404791514088280328400734503504143135170547505689270576843642346343858933588946737248065166151891860397725389403877992901293186179847761664170829586448001880964658513198666460382304281220361462135123238434047033120475682215710618357125252219016453548266660354492034147926343866651277948827456057187431069797330203848662755893422798278690008704579903153116504794132651263097348993108186876301700454127292338254492578212815981087757015608574350919198456007949543036456050087629343197798184530890176827172044536008738290022812944489018026447157661263106488132228386483988494816807878541817596209830744490717819960044450064773064737328671931017187617805988415791264138462748767871002765759108884650160754930069469383327199110995847448064837631604797174400539343865776234161103050654265382923898751507854241413978228607426114067170941477653042423785039073829474596944245147851707138416243989027710350963506819370906792095332118271729718186928671328228218990408083794757477084266677042407152557305552715111577395838024478678178243986279993645820407199753453238054256729849916109617078544045091107694782333035036275609862531222706298513026120914362271532668685532734955206283660098609985727365819078147954588918859214029725085772576524347365362016548417384099373245369861857808448663800455835884083280345316237040637952368845229960558502442719552794364670112704548840281986513115314019263471686974071994928064117761044133171912433156446725996170045791796689516972696683946175359339325096457468825759878676580650341332171209663787099674454442087829392186382109918509038193805956514956564594680016498957030603778916024566972393628741241941960675321446616559321457552646082441144213776759921508080940164662320756375057769976357620781706269513944403541592045332587501350636874107804627153726612545676139484542065952297149401049677222437772639848920909254856026752192399931522071434134103120989132399089989193760749130920921649545189539523249076730653860098390103950906824192220441483331008068342397046340355651355113730221616669982787576025580160675803968298119993886473919546742682902747071263632084193905388091759284472987486523224423044198883674964656819611619788412306585214037335237473598491277977347900065445631795348578099850869175202256857065486896652986134045835039463390472125444164444884303110697001411463628236361952775609457441717212145324036245529957536565356608947205943895051544949175684360061815436051657429925224630707468459107631622349025708301215427055712366353225526248134233218493980088835042892533705038049812917012079967431851735619339385540751273227593935500081686602675687310240073206309016868806779610841858563759488029059118991926323104173921253623316910701283135488447645178583830564892498795695628784725486761483680556935585656757951298149656834142968125568270885383622945590386416640647573250101899758702830209765581696879650684067127271602205167569910671975283421547562450503635640178666728641466883637901679072728115457436867643860166749622028553927583337264652592018778120426669853582098149396699317807932080436153678557020240255827744000240549387342192912809861993043855629347434507209805585413358900351846386183994910137959368015083983453205986764028115097198560957733167391037010437857386865379516453094030670863437634694959367981933919576119721800602725629301053566352445144936885088724383767405816746320217895814717602986046570822261587646286283853214984010281592055753036848543690285286660606134990748996914770991115736498838226018892534255688069098240611009063026915430788841563157923689221125092734960474538336096101252832610670377531647720730630208268918643121762087095080031198867400751227763083994060810276455183917048119157700342142762001115789413075371733637378671183485616624353341832529606360548409557484947067522214427723760758182284643956618462375429189110216238895615515082479276848512846731789334546461820791554193185898383542706469496152422686029705391245615660740698138159936820465248935089593413143932344105591401528657025328015719765729841318392754553157330750496940868744120906882589174367378353735494522038380703841100155716418679784339019059054034488390877888309003813858605013288948480669699737358508924072536135009042598697218032173949964014649728415533416273042631983267584946433068444907644841350770115165760737152592293761723816455415540457908755578225287751999171643744133893266413945256420953546618465686999849053135602307726987710740273415566981406939303206113361988702692823925956473661930542459136988838890384603087903259094617938886402295677548269067395217506492134076152012210423125925026478095156284900946731752452446173331452752809142610385639351058672048195387587521985507129978153663613041578723779158640916432968988762431482270979932839096350282018574212115187932275796769953177812925363442577119005104568520517424203366257870831281818127957094109601954742420251182182420443432720322646946010185362919495567049399624923673918375573670659916411358971877589941776067617103772944816560963279683924510899214809107859772842531749658788542225358741469355435512220676443560217568623343826590766930676385133291845650093359524136386089661280685063277662551546264551865200352743694135297818709539633098476230811638298305840025583214256155435412322231779193289583687537139400884408835834238105118692469517854082010260217958208787602597160637679491647155611128066557035073470167905981946032433283258144429940299446166887101380426491058953646722967697090300147703676937184383747848528558638103058652808016955342510726524082766636302439635628101806163163555524310754566379807940075785563220910715258197952580867705987266978522487222093724470581327484601878620846482528373087219553660732340909336670167990332503211951340141096888194199483193837363099316007557203158333056709409937218818966223981602809108476030198949174877775202862312241340505788524336813854228987150109607471801653362106599496886034523792242232538901742913286620595766141662393622200546011186042438835222173237265272732796893645063945861397031905503688709631426988682040186328852869401481605163086292593772927932598343590414938289926064934039144930090970005229594032932432065224635608760499926536975220553232109945713339991808055502044198178425327425429949402953117458724338230085535001555164039107855628576941882666436664357268934299402628224960548745128044000475148482696698193021887231993106952893006712056925140790843264476228458588977448985185085320287780228570576758780614748006027149193571429163591037591772468514345704604516966409619574142522285077136356403576361538548069531636184566602565900752859793149824281142895857782833549751307766293651819490223488480209656195145566510298471112359320641305174397253245471627960220345184165558375907830959948343805629667448813703528514073656687850830478897331444917517359969446717640442950106544746356162515172340462497814569010772130879649726996308067953378055113977319687357686950338104681271906320344077363811133827135110336003160040499294663744111518334696538997683820801956689992759392104943447514564895983826299814167061017259472265141861045399918493873529729321992713004154006683375775996224217608701391480694077821829228533700948384532007875548235098385922844188626027813609110505949012957230448985704235060014562278494927634550668683566930369627295316907527688275627989756631841132528865665006389175712371239310956571083771098606427158810237376310439778357447164824525939840491142670682450483711773792080755059131582548702659832535518221574677196970490863774761746206334834038405438225627327017823046589977258204669297797730152027272193815784071209667592083600580665466892423501751714467172733800058712978467848708982078851042672487196941941989760387782868783861545743600203964072497695756901470005164635718640424838916825170712155676319656048306460892312860234650188205164848098761495792437794704052020743140949507988856891400188608561395152219173309476073327943078881833385362129546955915944346419645429657881656770073227607077462127685874263146252822134893698432261511475246433223931884950603571975462657765842532592522723349223742295089744128688310053167943766058904555112609161321885379954316135859581903231199323179249547564582692427982847031550677480504932209751951798503247572865950529691402722323875599468671916099744222898052431851912620828466207301912765849168399435372395425752294322214849186812009303323705597658796963497564141039760332245347824410361233920487489316080182155110577164568024908478133202666965083495208171018081930964075655683584541465981884881758024140669953079515033315689253544925182473494716811181979362490484180413775791879419226318263864441642457299955554730617640625837659114091954624087422076142087907467734876214306405676863260207344240544559446399161732325706437825472026574293906127902597761211611687790602598678190138447827024992475899010820065824304850060790432133727744933250289651966813122902693390899200365505347446991677239825605927289133501836078211256762283412707720534596727191931279785727081118037950711064280688978344294705884812319987894180874088677135191191981541691089981208094144617713810977198806163981193089173572402624371020696612382361980062196560134252881016121949009431492158486765200271386273353917329338797480156195563919961272125838498921488135830703414273782722659370373598707401750529327260852662078519593576677651229724038939505708848101523729347666675090653646104010595276665639293725566865762133704232772086776551030663673478096981393937322848045138457924755485797133565199671314925601931707638233257973258135753152644157398898277501928046861126245836691043048587173189477505631294414694445313031564732637042629258712896352118060400111360711982974153141308745147987338232279732861850486082228537039314141356306822250376940540344253373859593145882160055546710635528373998177021322749824298478042152333119549607862910008835815171741908590044693301566143326369155211231736793947857163447956840218435889655384766749160593590917133445230265456770036175426090057999714758694522616439818130367962333026187403476254619983559473519178307113854792019759397746696350356701123386686507895410282422207260760860932765548215499905381304515745031672138939633641867278780000742397915606069459359029335304804464714421082059671937927289517780347250823049724676777161095437914940916716590819435131999103290074789981505582259376761725524984367554329864036096580013273720783535155699256784162829795053618336933130281580592566526767376848991576507273694728757596662553863175773223587671112106738230864036057495515205084748286449211846544216612798083596173061706372717647522530385205852429740132374091056236748684783717943236847324884184750572679179935999585110994134061644659473011132507525348473161289187338500787610355254071416353407579663008366772546694859381542526244741022588355967261066117740054847592720194736891935822491883989866604152875966801069284909061449107325891158278718521662052249145907603981567759340125557905876408335701417259450109391196229158334186446576728994519031823996187584319967002759094919094717539405592529158228866495121170965933642116203731389138549091678872617535057838577785149539344959463965711933451586054593917944289506472492842599089126630239102477249453576010020897399537047202241201745010556916015153559196340920125417566539030390488136707624961815147766510661299179337482585579965853706283661965580443767100163959017620836196898082822156366474392395431054222340204350543577809664513154969072645941435519800848929849305036032461976540856410447260762923153021733390123984404517646952662510668282411236850675351553481770130457071376019219952640176506926386388317967231921029629101957766999375413562089504255538898349129618859977317015604701484881162538882114853059503258762504667627641620386580810799632493630232748558595683928635938971937365108068834709100171781907041808171755057044418246779853106977759341058241552126001075678373534381424878153846141174880188562542778924024027149018239617301513371866965040237807370795372008066613585629995359352695193125360673711099916513267176165851302654820573741974330064413754072638180189997042249433923793112369717926475395797807608285222571747432749358606612420871058073021836088660185646948008415070435376701704677908442112336305010280655710997275829568928880574314936640795224033397765759095129044215584147101659742478430063516817708921651389440656168663971497578967539393461084388368262281995062077801381329303156885054847036612480211566519968933433725460911494460277708991980679930061604294793329689555559852257142864425667286376868371492510644622334937482123697062074799264038777681842989181071972363701709752171657806912883755052872775717629362033989701037716207184843097534362604002954368997456914632287383093185498819786464466728651069003908906866292525861682205526539228180365238190640091420589347409594561862844320892573017820705830441760992150217526304087117708628457208688886185648377935303093824227853050859633957192053857455483008555447796936205630428669351108388445193994374895793659661597727435123934820977458510139053194999542404354321755253793516006111466359576036701942228798055019244326066138387098521047189125646622695385567342630471733658928421873260991302235642324121211275998264998764337583607509109678026499668214741566544155679840849440992722111044112390488506103370946901759205530039592869305534422582096609266841471246439511886907308744665412015475649576841555894384045802014555413839789710246911778231872443458437183038209203946962051096508771983902066539277547168680443646126585451438589941614506895362378271134378175966831125689971392541113497275617231039953449372323206762330845864781129034907654719292579978565810714813790846547634454004214922614865139057982861137872036612437073084227269509725920007381393597440173357976776109744510441466513095370527924229589396849559136052559264817115050210167497055375766303034616921290868093620909102901504437143559149076360762570398088784881149905611483012584172067661283625599528128407499205315148075142600444826246434923357502068988038635895290306802630816293986322586094900383148446292177763528916941127358933544564526771352446294086672962649727445638192052730779391006057504803196498449155446296556846228463698344459988564508484345832906965347054514193606661016368903388386345211890904264854179254642482958005651340592221573788533963582922730478083927781695694858375113026375675021076881535440909952664195860888340453093164121984445908427412130650919314932216905966655851182819095738901837816530192486709419638058529335026702247025832863908403551216540113507942695395628587118990654988969696470432554736665930333947377854101414906504352243342026562467548407487584817981323144005750692859935858131548731736415437696102066497036706209324988486827078346665570089520800451383587867666110813025180965099323313009220544021208414693096390144955588887716005828711196908810027204084988554753577930740941493629222631005800836037038558742312155276075303250471087467462540049571467169591064952708671809801607376481452425422830663206538800807160105807095493433928806074134073265555016680013928608634604875171232465092482883407718307671023373568096404238874555666138746713291793612671315545867405834627412091807568727424571932242818929194026449472802225632786009291567098510924618823362324924780637041969267621505862874882472626344930339493181164653271343475069046229434677098336331769313780801834144184117091553252008168558202652857413288011097911641838206488233431508992405542333642261318839351451403248225213517136615251709990189217093218782430912525932202919884895937700102052894448353370148916575739188297251074615657564923414667987576924709378229880221765012788950187714565629902739461876944378057361297646214474724278561024023199187258197177839940466883211848886145331483884986021575822031326212686773080800894404318740744204549471793197086569710002973974751797204413628462534103720459473005029405413258313721648711630517173733645501487458535369218938848927482324596227468946331153785212376918071972914086896055239050222945989180862592804958040633915433051854627686754047591612372482542452328495081790621590200597409772266257670024465786830619819323424365279184907185789907056813766143478186296839516901269125681954273396163048543871041572886221605628549830679633532487038775530402134629239029173218728546272476532951778884961468134637190570734688484629223202663144662724293412829492073913522227446378596972259107223155875885130535504728576993863991615984575559594982612922206313805750534980233346760924852526951099356361097004432127754750630457870364886930732701333403833271514089535730214706259899292173732007450093401926230882023563994856068819329674890125019043508447215513657280662010328113023404998770574775206429381852395734990191723653100851887271312477518382035514694455327747200460619858408099683311856297879361295417288301544295114081411548963601194991006696165408616360545048382381750733555084673854865710254087020182142281543344468410974315131518899889299345246885707939413125614759020267544748274343456996148376066499901510788781978170994253335644326840148592184104436653959187784413322710191644387394226916526675765620727682391832958319923962470430617743972632912923368729300868721162939186866023810820103722870061768478456980648445136622204215094346472233118507495770908093475725565477164169564841118439007620600863868275590848069411931482631694784572550001890785865102825928743495121353934882772116168301972796580644816073285048093575146958939741827178377041367436005739515963148168392771817339547538569719019820436688850765695478176744962016895563356366105273780833137214416830028939868742360414532086812779112321817659233069830654256528129413964631927650506010247856840707579927777903867190554396878198075842691543990564659515869384880045208661521928499725246592980660653663506148379013643952137339875626640887744584454392677754945207143956601477417106837444849618656139802555803035600719601010062831467440916289979649658780213740125521459531586018951356756157046211278508539440903354737553077595319840897932330960910319285059222197555675190286070001309123493584148004549525554940080955395289983887674170518496595009304289640794891180774723482977199957340336835222247335433732391490533634556461845406647534836034832273123236253829801278046654446772967402235662212370291477382666328628915723228033398781315338617415403471519958393281542744656590198364009644874456171273802529530943432982075028386921934336105808275386951162316386838168987150397599472386763278426125392909256382115161215012342906570915880870301248204107457024629296971137021027724012558603254106222920545443605910430358410050518689146326938761647035573674871702947869962685624548565762856280450363119499324349606118346721630105558459886822291755997036166073337442271515769683361875208528307358922675613529553848399432074192922620887106814041726248218273978195717558901617865352007411517323871154644060321841892207565974992631031828421040772738650035167784081477297572228574132964824544883694632757851561011963276528547056264547525148860700241255552810459219384742057415730357473298562418299922126887630376553217187630016989997625135342652327225584465852096644336952813592149426887994175248834062093608741301917970620383878407413090266514113681028464638132759111322665392732104669258172361956807036104700434920736160640050685186282239188651353508838032708252169135649326722326368883179778707462555409406835942875228384321331594517799029399097214065241644868011159569450759914636788049402662737888117140730507740389404309390927226492264207855515923413590700311668618018780599801337858794760614139892959880030930117848912863176348396029399685582473663484308338904336854813512386948968225298937745392848987908715708660516257848446288170622903474318979442316643488979377558389162840947765207489943146463611358692373937324232534811000546050437219384525155050117908677030628912073038965244115006196310573397870812387798673335884233154194155141963486332691392075646558295569646505715334048499811206879943995617364478026553100987751193910758338035148124780344710801967746547656739352051475643295350939678005757230098244977318179838440588702697880266365964917284605724193715135272031846664789061820663362629515698555102440472398637718325312311550460118181387869090014445215942858526709999750552145832169553053222665802754365640569121373796839708301848260661219248815104259955539058113724443635985809767913828790707899639165199236844461758117737889731896530948639543052854504269823747688506552318719600796139181048948130818520036448853321430534303815219969859254170651276726066187907921367711463635826572884680029055561693754000146220548050281448226567979531102101005350453033046266653828772338363661633160038257619866548951478113410240421035617548578338819765573554628312537578467001059629566093913217391231797990039061304459323601083357834046435557097808491585009577595643364121304330530402081651419111657905860426580142813923365112791648423298643353075733080336942632068521920335594862725534361658352765220568130351651033916031173253094359337642422898169581965539491019043622272642923670172769617781954750692678857910647617491971590162462672450497061543227875579058951580685728906587488048912041945135697215170978019160133097550628583512787083217880996259847024652415391133974562560666250338680771191585342242348559723462231648508296293152204075962008199264106751910242588907688000875070737602129663897415716346210722735037127748414582809720748646256520459408935763424366891136026783815055413295064901609519625180615133570402309641530404062234185576228061328974533176269902617366961098642775515568587210613068183573676333789898263844522377077422389003708018877695930554777366465768404857588987487779233690293386497770032438724439792907682970308603469183815179449242993501608575449731771674005143207484507211391976977394377468663088278498775909870205610463272769091633565473746771638317826573765862416981126408914361461548581451553165223441935946632992260396909265479397390098934886414302472717244252964942587426504425257772038935547039366178519567193119627892258364215625495723454624515460150909330825616374822633301728411085715420265079658995482437915531666527638023978908557615215826081038667778832227167151219238146881662114699063855397988861781109373693087772180023887343816851588895246976413312722628899461982649800818132248882030740362795545120509811975274875222950472397128456584466401837853467061719359805057327269141354930239509519818680715682171835177361437346596414175236840417896421695032259074662608692599594659178589734728133733775400691845613076766894273267344530825809536830581019391266058024681110052910083265086125880191387670595824459261936919657966293296788108659673628817934912089631260043717521318739785499419056780302709727494732793853299208995269778976226168231110728637609509031322950438697462218635081147117342454591761702376389332808662418501982329507758289525364380404168996718593710440758459184478054060780398318744332594627669287709811037433230242837862508563768703161514453752156940141573051062074676011082316295722472354042827305541989162728379835658500769737814314655968023864708478704367302115831589861138727631622916253580711474468980696747284745658310779775690106344068916313755170137800555867826349284403285977557123105792605572554745569336838072293148345259418277295994814206061055956619770957141149285074358495047270686827100612763939509479011364019534723436212321150686558182132916901453603513376972012925913298946524758163307765101554101921159994495087385735787963130911269831705972487851305380901165698923211992981172847464687223394197544615923645993065648335994884389499300567989753793471002642925281595310260958084193792481833851302231114918357800255729217798075635675411840723891644609633317915442206869169408742571098790905270841611869964853244061817054012417796266927305564977129492335641816688797936141159631315611389713661246737899790523917740224604783020256614483359734795353598133511972519507759051681573568609998387707846650139803865333125688076343076183396876630351038856945206825136321409433015759289253334242574916374217778945008538581466659240131552036682223308089958042398281208018508869499633519343558641431190359171414446982357953043265046615245218456533546314288273395761565315138171888383767364072827082737187028311954106709145336315354927298947209980771645744501068397464688954357219833269268752788175222515219278952983626016314226781404405533636939664849445197017484470777036742303152132723438352197571502667593688704303379301512360987723690767114592506117517515451130228244410893149598947126774825795692021338903365751930313433093792272043188106882182435662157839035064636371502765804179568088021385320228786263668520001453422106195241548168465558515113522867554549794801570338358637546653402378084763651217251174630591921692112446813187971812820933910867914299341693051932764015538447425458843147741052382746213268669542148313288852410204000009203886593401533081215685489821794399443345166274275647288740046008740038751139493712521833807956786618237884397911996971685443473265410625755439837048158469822127647380901978362252679309998516774537981711149331109533250318461112446413186496763658347498065537047976306762994522273859390694401754211207448881167461221735054006092248399898108112703419744150177613015078418448283596399399171320885257535860460446980816692128398214767539525734197418011630334818055790639239826446341301717738270570105296380385787211374906731913154450531360173987532877520460191285761277864184228805339844079151432271543680194201148649562794855281702689338246030697729392056396033232791331870528174845446093454343082064855791936593335392210903352805082726891110875043703362661333468624096241166327447766049645309362830796908939644303504287386687973309266167057108385844215438279352438052320325182300188241763129982789033748397181566940243579925509761909411715001793796919445395519982280435106519187637771203361154498792273548360018832298400215389280582726494876766941016516088131221670223645475257653122936145875700033001707846618860023132624212695389293339862155456306198196612427567602897374082440832423647825139843754367757689581659754391930322634118348236718418068171335333529073210955273055028640456245834059395469724533380409501115094315674618979941335649581428675480998928938279538790836526396565303921777222027732491281271359875839255831639190523258839955781335410201576806973598855962630098810548948207535339276932893606455902931017856511249846909149093974486460092300794502704301613953382664894249709786270056580905799976702644549155639609571854311775224301758290551556944164443908501005547767890736546787396389809428351589361940182911439587487997671812434060943638528433961147360858906088886719069330270511400966066929765369411016810699221841699882641345372058389134971644008672027201803442177094414625449332540039368334083587658162530563545912381020108390059409781029010820828593616225674879604508719251008533388661221357984375623188620281220441308196205157776184811376125851936268261430913775996739529522077335733275387070987778673785733547813668776315326754596913807579340505659224889947720391322190290328093752695798793419485458282799796090695863824467725872959842255020639285187911291729364796678490539778121391388501003555285053865051426980644143058842183717292232310117928218946775843434989970468019332665037817450960435543367599686705127006819314232998286603486151667737085544715516871214967052553079385803792775357481034743939947870391212518700438463164083569251695984907531615430809827715339600612095827897172054779641766521134470490834188242488537694508413347315826034549579689001102594868016480099661039105214455454691213719033065828413187912832600658347123287172926922030275375959983663329773321465802122372292029421627858696380083807050260030892883243795153379616164278487200976578363120114911443696865276523698976350487974796079716499064256797134666835166113403903235143030690248166131353088105175776177936766740546439706923810986026171945026597437392383999996553502046830554231238092815792235617583005976567635870754280582161896368621042086888232193335137774637946051509188187902291738269530067436012563674354998668242581091213960080959399975167568272223892498553464089740546374902380448461674245346905745008180053966091626093501003952119375340775108270156015566859893609635687495499215278429530242958496340466432477969355341308254698667232988266818527557515909763967573627423065331938306882851517753122593776713119511662690318302041202212564281463924192811481044465176585911791362139743573412017624218794505956106890317370396225534894343945248931233911339741594942923094622915678194232873938984626423331727569910118041711631643969591211143086587738328752312071647740481203395676347671266886462467142307888900928413812036966330035230900778125421998628483515212194165721757350182784453071990586007675569248174723373235624800281909169167368191951061883519127026313344851030982550594436176639767360593355869697927761585688239651968469085226007127137853990764991567768258576737458227115169884368690186312630886416454884825160526460406395405682019630662523340013622373028110098963704607000809759128268403642419366979354039269882045262605850679759035157357386894479003439143489322929330859537784157454635155946308456380726415702857810790835015424069560198351916465151839907564605130273984436508943191041946749931507859977526205108802608623001328652152268147793049553134490130950745009613079073630560370600388662950765268217648903536418964195861636914394921134684677589987552616184737703603535861019292727851641899378873849967394184643747198151079533217178263846176777039797586807496340392174903360935767456908628918953845574517172296126627351893129009090433203629606724255244848663505728418356496972710991728017761815568376848880327582997705805202357640448247872200326297678572740586348247658909597096218990997815037617607747894107475932012947266601050230974148297126885608693800282384173624167774112273750564089479330558504727360926638412649856011689940780067927296383657789761992417152881654958057914452198834287481647972411061952709706243222907993609327786478558034959388806183650793320131138433884051768185739454965625340518074704045550027584570739631977060819193307683429003374096076667995776147370650506472584606148788088530245609791068804834524741886141114725202036230688884581649384069151201293657965044430463948436933565982784837225590918547742732912828188342337196575058338280411333892309997779802096399059189579361171028515027992969136016335349903084140384510155823081722076072909353881188432164743766252344360285528933286232856940908002991507428733089436989884507637711221067471885997030268165814809524248045343232984890782248257081404468658620993933518581569999885590121339613329371066685550136977768328771566031329848072882508470626096689581256578604862970398988963307421300149534640709578181539496532809957596363358005224522509977479399865558507838824759907527991942278291826269554299270135555793183271072642781388929136816233359863800332347156975975932114433846711650422471985038684787359634487863238552631384187474241244300841834661513463777938510498113683364518260890829882366620088522169418503819093796007581534240963669533249646798690417604912857663922040687415274256411228633813135454673524709459569013556939009895525200982763513368533370603189832933106085941860331736155012394061544979841358542729270676408492965056712994589725712321564590272376250650644837792766940489091091050898944505937872295780314073561022198573788923760057154783933644291461843815567756385042747291929847275430383750250690933399425140714982575877221675082890314948454097133408674628863132800724815325649246727588573290357099823765389577610579803822127399441130095173654321610738292950034233508702305298463421897911617747242943282407952368455256739589853249499637413281453652446589571682149486225634095205355693822034755390584105262641958221297445908178937290428596148915507230194039123559263996743355987262999450345633320984970355623743978552277812998924039631329868525403384222215553020651660816780675832601233770799526548557820643465553897018628333356669085037581099136052776968559738843397209930114243840916662773761402343422589988518510798973556216450319184873371963890898127273746188782563676808798405198017647678068275363150521177980269441983353495584963832411254494801378242108662528638499616006597926904931301966467116002127045501421303237475858762716234219629674603441825272709748603668727442326795081606295679960419338000385412812705380648722758202069829558792066992280621724681380305831888428732752548893969394245791343836076586832388460270427671057905355123165074933835420692455190110643222333970794634100814958413103929813458612207276868708833777097594722111832430980405628392234665471106072758501875917953816443930766134927267630652571613232130763792416230574210835900876997944776226056939067349606816940590049783150735649688255617941180757074794117515648049215758633205524983976291655443384813981723564224691242540639367015991682275120331765032455119106447939420544488530497320451975012596511170974497486928993859599233069111162383090809099746147002256449712909506677313705471768095662772816236630673856548025950094522789412810552164522137913684344727850272824583425932139116064106826969242778041992905851266008731874014748421436927185771274030007507541611081807381053303237833244248735805116623114034281565857632159556784270839289302787581045603297472841813606670741337221575169024662598062534726514386945468832210734658279862352701482301578407331326186782001720903880505647052364725183326518144054278880764004104172778335194571500054497848808487891910023811685243372605954847366352101051256119345523784931221168862672874595837709647701310241145512964497805135278174911664667536053916754780675730391186566285980001552893529524857703911025804447241790344108776343011198022706381292474665776922024331703984676942478199114379204223546326089866583346144389397056888683931907049232128655402639014836695235743510646288846614911960723201122517739303306682003975915864303183241272605273524740054532185335983802071475060751439385421421342577267009061846827208816777260718242896221137098974120574074399402217139702934538659803936708135487924090095625120180805775048726114825188606433741380545936497781273554821777459190851336941497103742725571557825576490534473358578993213135688348378049729774162150142677119120668359987809217039964091781510245940321526622623529560155241744155789493065686038814664899490723109829693406226422068606123133671227886245016140093634320504815777128668840890099034946374339755917127059349774088231656416306089213833215436092240576305074486593716521884797288150552295525271882501693122354962603182481616168401988957029514511182527397683523961246869770714022134572222466126895408665950658562146271075512187943335904380584094008752512259838027625417669071587527951376365367437156246968252394558844003886507792959224962920842644765071095515355768514412958402479335051760047426738816308378280883822635008263325185606710643693630732729289488330702449491785495792879143146341255796143723199221410755101683420188968668849533663863898114129518649419941146235362408894385768977034496913683910672915407703730772059190539556396992865956518364778787110056674612529033531127370288767490058671328980657391607435667306651965428356487174313905042809678878843887754441193908297117353153346599512881520995787173776145438273529053335685982654369460124809797371543900629020080028268791538019350171914045294242152224008258150727102983021529797045212922113654328584579575734236165584516920664450286573147620902932501357272956643196647565472576580577568698240405720601800333736915471089657775015289590216495617347602367641109454110519890219025773827027819160711852745113743276661935206290365128604149435680640629285706041308067052815307513368303744270250217739627453899360786314628836272208691134288565504343818263863573154441657159365057569952086442297748552854775618895608969239444413317170084813639353504528974296967470501149304161631355095087257855462672052942443391653278471296067786104954923406286250664038295610768104265321975596326045533724055895109460656233093632588478927861828912719732199167665219209393912090534218686843005039001203774460891158800879630293330077828986946356085822172758848160661566542387172721593652620641617651603155533750771131912059839305449517627249931790966451099910689445478681716197138887479242648775476984319296963546823178764504596419084694812781296890233510033717978632817740249085257399278044400089621271994158449820440257237782386471009887160623892272161291837130846587312650466951326898317467448885795239680518484852225766904720382361511813574641965570609251082464529653667029070696113217761557489115909433964816648814187604632829821450377469837916916321401917536642728730518207682421487441713984513886656367518193163434466182936072002303391523373909354997989856197987955053643783818930507934489269668196295688198505957134697391708375115246230467665904126691351159335532534403905733710741034888978289754445484024935601480772202293612325759870906949384821843188986359111886530656972427959342525893274666706455642285779330816597735558612385641191680569171027212974688157745071205889838614012618236499866825157714515549040725172759595726547368033915324892077942130251274511790575950766310403198354283640163912755945217898561195671088026172322046806028054561515494532752336910488108995994023019454845022641178848128164287115635682046926046161077686479447132300384230641963734962233167543048460270452077164519425779567855733227527721570125728745339877433933859193376908836022527292392660379350766855268742806608162743347341928796442057466037937258524212586682232605454050554812988832587753530701398201500178936651054453328906910025443498049687019868794850925151245177998953597475012095165331089325651150438650439167490782432942493177678842071914711843825587597680691869561271846218414470621634348454912239999684821040322987917291215897651714235683706272329909518479836404701646872785579555457574900456055634207314310070701937118593448096052814432673931871912173714838395803525642739363756832866070898576931188238240981984649565893167260868204511778203508822963212236837339015121608213129728526986612752356912233801023292526618590469619775910384830402091797617324379106821922705805635061607139595315904457711718160210901006291625185906091643531588461819501100982779174132703247256069075408411791385364709148841970669095462819218010517270252527229325853071869592716770733419443477288640382471615055632250224952488143034180093519863257475551343939200992862380281645827776929341371253770788369226558202046555043533523573045949977431255929501890142420904613874685037203151258027136491012122888947718934004320996647842861371143652475022035872979937714371587812202950982301614653426127198884024515200024408755739657515137606573683756780747085171799694618163470954966871671945838959608049714901699783086243804457625342745561442741623027597564507965125681751959562964684157379345294399289356586411634101341324970974425338758502641050476442486170306901786242533680574152707607615920072994438044665423891069877625255786488255732131052501468879806840933681699710595368394117696091662056686250420037189508330828163167267938656821516498579158503735316740519325098002191732942636142400197226226364536314100863904228481353568028176334261377116361306622082106790063069581684689460418037836911794799576892742306398692350203254218064790809617888309818347319751950384750317888560457347108503347308874023563717960257498847154445575965978201468011297317022844752919506157605286963232424092332859265828007018377754534040882494875739262452421041472065992313204583430263797612972141197757726783949755956837522024085250609014210471948792201482746284381861199750587529617423896333033630635426648319929054820055851687724776654387478653453748708000751725809222891091355807776644613502098955065053343328574661368572028259854394426461936790114867592059843045955287186684029443812153994719505691776937216310420412007964071004046811190799728251142711494522598130400379648532022890767922907016385667408354066397704795265607497054048722243018223226173490211197283534893781110492758031779794792129767633853286056851884938132684963429371777699198387695453522421195619158599716852710858714397042644119156320578989415523175140096053969920306435282705978021071929109778883383812484087249378285530134538083831140716866923671006307499898288595982476183457826952531445567262647499132198812558109117624896782715674397626469638757112137665617640850606042102775552858068141009043260344178615868618098220531698522263028739314366376572907714595328193308275029526263431200208343280916113157363059910796014580498215614680635071573085322204597077912130330903778926107246864170434219436092509300694169538590325156026627510282526054335535161755463824429187794148380841601794902853822053018360641394016811656980814125585881160765982212529017668980517124955873029423273991555596622568749043699859550416575193097991820601284573125779979279518609428699143348292757572271175949177912651756205926895826673555495218945429392937985333253333627722551860205892509817061785843734389441102982238740206138803667429800685765179003913635213304259429621833477940933072052986393064402412987225384889598692200938875771614418110183775630207436225173511311411859695150115912156773828409173860883036545824662080145286126594433451896908016757652692228519276343882084874169377087168822309592944802235154801313376358335052342281028780379854041870092879348158597226444275108393412128749141670496127468214553562170079911119717429868471455294477108865751948043896893602366314458909015784534976574002767873375662301371806153179969466268424458501927753379447519040953249063168583702166126227054551044718748853446470318306684564563270860900318620458838546604662008130912072277990951790287993316793826145407775662642671941427350027971285929161319630330439451994449693445152112946160165052355555925577173495809933120747525359186097209842182416707216215652970855366263201850433523854126929851372550776349728187012174831719404379644757201327262837550802987362984396576968711759386804002915731000668737735516682385988196009770297903170959463014015763725238034325447586155585055319748990575081840173635993257776570937363407116598450897066107396106758202444132622706716425552799803876034412973990023225475839559915670993550640160963386321910493033271808442563827192979412512509138996075479803759943294918643799224256529306664370365017313098712799988563483675238753174095287082170992910377592098605870247768822343773469666478209236280993560207598434627764081556912935619774943973043098752111471798513570039810764095898225200486681680173044859536251598166139520028882091963259078473746616396845411539595788208292921973242828006886535582659138362654643266552662311425717518739672469407140455146021489404941347640055829307965995428486589509871615463665245864307648357387234362778553628651832246899491136391298906102980698600801387998167694292775555296550979059664851405555088758893614733209745575227939057596431442003724585057995541711325047669288912022691275340466373803571027553448775424035669671560684445156368912837679506914893881792776861832903771981891459602728909052987769314310409449055982440656490578662068711842008693027936516770668489119325712510694155171883459292829759383241698149559634005572097052365345977704382010655876728095917114515554959476130598085516953019651798728387113525553566387059404961916537675202756199328257191167742988555573012946945034965028748553174258380651810516309658630609900208677832367587708313159867057517799722316141987274670970913830267764515366718675635006375326142009812545379671722947652069837819627964316715028404989850129021423510911579466331910543768428101918623597991228299825386736822885824315839729136616964410324652039319551665526209466238162856512455841023154162970652892018426833509796440711827895679976215014207709031990902726346183841839090765016434524735136592721370508693762547972626182382276644263574165235532026561085146367806794747620523622045250186422212882924443258956254885208555384003859164956908165573165882476870127578366030652178660590572295821684875274180624584144762019064988544848423093115384688508609418299945822078854656649901374995213979141735904632739928177276855520888038865757426065553335337094811044316367896127238987130258007873624209340222772102823032987966922128464241973015859327299020465213860457053190685931018799701987812951626750145974378495954903869811611566730113411723145094892268672889170847394685683087363261149822070191059551615604320785097427561358771001604901447624949920751155200136472022098606192485669482189457160132895867466799077004968147385670679520840051774131733612651990556065849844372662951561786767199351693500076740747485579542073897475002742701227953907689952533732648360774268397923643596516973946534545521159554926523558964974602562737283287181487539655462516040717747394299649978994327975529397994282691102391215876934489979967558838451049074101721900431052069220838505713611889516919703854412128691202563271325178208688893105110055382002908297094968183887713816564422313012577512223254032756836073457368725116310762312660590260641268583431470743694228894665855102373853458714773568519441801861196422481331503460243519962996175835222071631265364732319349506824365615396454882223102604234100159655182159478704405979093362970141220291335900385158852006413482177517185972759695370634271389893900176508300738009825503335611546745084694871525561008051374948495406152102422200926976441421830316744450775432522944943748670279554570283927840433066097187437472380119224327076655522206206206564873472233747715526722996196134492896271072770476779688819569296245677232068274137553816790123198567298592602141247434429434449504806719519521077117604113830140254761496717597658472571042360950057765956805759004012219767673264248628740657102061769542471852092744045471731539336786308897800695134949283270072950110935088276386823977276125235059052851524568364824307639743389026918959775213014177625416279936840913856598785271913324100642091117935175330499917194367370350959266044853184934337465055618449951230693529596783426632657755477455980974662555403350470299904538507813546189545892873736271231528549708190963380526927554996019987520618683579453111922796993283393440757276031043751521740292417080612125073957569459967833397080516812707875280332189681680166098765331982629891025393285064774968579613733932749569434687303704163615215526750370517420815166097641755228282065692384902997895046940219366259708006041212395992763053828091801735226464502519589614971845378431214932949711027891360343776496982560760763947488176626444839705062045344657737722837505678706002811491180733169715946650764391060137832585753642900672527948258375679650382139515042900864831125727905840741309015405505018145300190991446737829440778480152797424255096018147338794874944138868297495156732442090821202188508930407613112647334086148503052999179863124052142129640362631581359156381559233393916248883817955097629504887332063010698502388804837695402389344872917240333750162812436653243753896480997801572644791332252058198060542697414520235208053462781392020297098654152496288687146143783785160528751521832177471263284207936720622000484233387492709255343420082977765172804156926011342327266694201237163417923593332370928695089602206197578134980267447704098512628744540637777056048949649977422909714204043152534919919614477730818236520769464051471073929169993413653743334114009553669169698899613918477744026420640622941149991997038206852508575923184015325149482803375263928911944042555858557694669294637633041504395114062410450907613612791658681190288163841848663984625907994809063513276470239712127988620022726821152036568018260001722331074414641760801064541695435636632746685763669868640378420719768426840097397950983081535197256428263446137847407657479427064034650531546018439405646973164876263947455493350972880360808598834290582061385856431059136734837381001002495561887722935745978419753931160004505151794642682961770313020915400317736066581634970474580502495516136643871750679212284483549538908221228424977915080356238513458998139385129587535873504621453197240225694871019063299291517381226763486255562776096855900243718599940137804530822080706165463931141342815427416713215175791787575813514005775017250283300999117530299098899837076730143301295839891438222738267936900198041077212460787619189248340434636744334387869711102631618592096086526957606277381880351898539587604425413953826306396988246209261501159527632994441914846052723084266742380779500103644558817386049406173370274215793877295982379833498676961080295560744032078846560130660023053754016535453480906085850566488830037481094779611069967832234970041928122131906426684255486499552220371160590017959910628021268920272428182356870717581537080192911263240465027543218729047731181988804116037373474934094360722926971841186752510387097917053277244589194902435441479880785285465078313648908177862092832432829729379332721825405730763540335647393446286750465497527210861279147899968286171344162693850157827977422385264915571553707423570718991315707267197752519686290658947593524947206202713496557823233539573342213510804970796105038371248459240292675461021156368248808082340965363893809405532366981428355759978559584485613363013859664457321821803820407452083348635522402607605162864013571426932383263704471708884519573215517285530393160309897766350692305004171765488459485133649640312643546754578200968490808403833057475836794113919580875903726839452090283257204254402776645297346291014105225782140201111274148460959774396036611423379323107469189391497476821159272137964076403991228248999350277614189404283592570056265173808214160037224553823015492301904334600882184946564271287268720323513605711853463191930748966130945725298895855567012538830803871867356232178890874876645949806296825119477254726811213513220568325986116470485784063320278636996707540017322947817585460932629206513428936246231988569386072332882897149822467344425905448137508605160260244468481700914270417383869142354913025484056747191448287625397296330367766201512314957339108074868484028697211194065836179942356529794594961958089433954467272376902092910370169034825752594332037762668266051972833198190338232170487208435887625245343456454099492110510566605186266284018027363216058904454937426740313144363330207935329532820667503864020978534580171314185442495861239667076573493676801275634671217241743648699595533534771605690135282458089074395618293194877110872942569855050934265559762831639973612196792812970992696407097642676342147939207744672756074446981208336683737760675878847363800736487390668031962672684213223257879473789038298437338363351716335704268678302645920405522165774357435454895012297245182865031162725657462369256823390037126528327614707423722800944922187250603575041753953909704123841752565887820395535151794814334238013781084270685909064155716609710351005477936214253964345001615493365459616664353563403658144427289492996922672874049134656751812962258643826594719482325149087910388109836670946069474269161870490466895619918682422350284750569809679969004578309048405078134777128272199382242919609789721019355208812955158195672000282271456326125669959911877926772368375272501041637715522519666079959772888345163317398654154894389222125825240207144027362831179565480144911738874823853807356136216020321149299211984392891690720405772750135858893422797794984445538649544608233746919726110702595336595255457573616351874106969251250103875352479721255016049734468258144382103591064746676333103107797058339808747700643199630083466796788949556197795681375918840577516959000432626396741091132218938421378468166744174179371915931680993882489564736573970816923323880279868845957147841919367085907587869112177723957504644305746539754637375827580894997704355033338463958854001146980312858845688594471142374060775029576640586443075624607966965597162921846509574889281794928280628643448061983739909271132355038054206377964119855667389444369197389007007401468038698820581806889983087597025271875665101131625639320831570953561577006233163676639598623575740324497645658278223399362180985163172463037066087422289953908596064145143451274888827558551078759863323429523649105437355573435673365784759710779701811812363297877946405106727666296910674103474033638158057721760035751318949057900871535433115832576974242162050338028601211500834640737174972809541721201089836897118654550583074053092131658378322727428492871599496533940305693289865847370008573310418223481529224873824244015741238627991348859499224891695824732813994075550807682683362199530546036277440970629725756977427132035051017351431081042726438855244109099337926466364592060079090494310339345346785223400091736007499166496166050493576470829279074324893315532932794545054064668767360957970468830478043428572685477038874332983705775446730914363875730199148196115325699525014407292965653644905199527917682251125743164369743216324805310415120614209172585642458056089367463453375802709251123961206498883917848085560233548916238782816753243008023560665331674509147380115141863990975025632187662264469152018540039746242222821463269685057057480039339645114096734469999292309211802827557232881721804264219096995334233547933374450114740906681368582989531320104967179972387583606476836736868168562299672233744688881964619899421800639320421124324457715941317414095830524689626312141213423505044598447340807378437564630549771315661742776298697970078862186691001070773171887893687532447398071486743938947297242337047758449808275201443679713983687442986087950848321492488384587144450333464659327411989942429986352646208945736131841805879533173214552171804366157742962114357953574574403965771103186793496763500239936884653717429844610164214215546728618097175387573773049217878643939012878120898642203884065503275812815949727133776150278465110237541009148414361152052046533963333129520472675294560181807049497077076524495962599664888686881664732627449025413664566176244443570497110789181718895220393936104577814378424437566728969507406411013103929862612171129216671713567168217473988127850092748189311072205659428507376468024625317827140981344152121926560681063054850284207518176848999439022672317511558935041495688308169997695086847044914173742374846703143595990142302609579471313862816706106896852590681854306770296234527605192515208011143956850592581761256622073738185954456989025332559366330418759208208621269857165873112364961683137368415466238063733183694895795931517091898531264819935512141769204736925251112828700833118230503910263863135982486921068330076272349511361748032859685305288517813217322933675590693247455258784648112168133976896199559888689382631410004267491045055012242208837642129245897812349868507409186537436393317931342572386882336491491217414739369233880885080706304792324947760031777718019630675395317481811116935586622318495255489575610570608574159477525677871234372748725274939576813781013440513672647200273432615219217315735284439077291087169657060418844420935582738199464815763079933625132538642587128161794590554976160946275300317139644125283021151541351818083940307460926259125622242238421718042570379552349237909214954087228092784708184199464902739319090137037570278315015682426938671471981865413015985101436820054565013247111924869848013312082749296663387298105858201068192788889597005677890419059310507103006733361725824072009742779543940478527931345188698145441422000748321244587311654217627811613191118786326016280055412870267552680191821716209168843922970247863952046644945646864515489051844840629898751328106794919968364046230920945948453257925366474457265565992410171697708515884153557336747385830372622471159270115276014605792763737879685134762841185521151758358691998467075461380600710676587720243837759982154444433935478284609440226887870684369296091113193750958062399672355357430326521655132046281412332610586666741318120015321386508433778932288002291722372795119148904727147397138059703470351128592160907607904983736289569534226801076442579609752456442037430817762237105689414711219584772700488274582815551962140110094351452210277326990543968199488177701268121736537467753006330938151390858001438620878518417051110470570833345408030869053812797015376137709773532170938361949688621878405149969687032791787682552182986679567197606252369059721625927892811521639783523862520530940159621125542622878400475413016390831697288322809275339255512596918558595308274596947250304047604631425241471872087269240589651207962560922362132828630337320810088819177236139990377153960562029571414141028433063893123843746228641239145905639002942740829523331354341825323005805994837761754282995667718336898199845189156548671878356218721261539953651825328394230299260576429974315293072507532584262328568409315957368918566562003300835165572131037151984367613860973815475176828393462030363578099807795520782951312783265237245936890297376089025109337798305916326793333199252388506581004118691018289777425309293161934907780660662918738340051193775413237639721317423689049110259533333157133499170235691999621692046041105055632869947769702789174547990097944601297151563610625089673255773167132587364516255204093399744386187405282825727172913425303588749249827280570061274836458869362713102535265335382821307821586412474304170485361261635323471115547209545271920369332203907148303594681557002473654143314664448801892841309904949169090159062623167889087765150989648229236634374997366343205655967648116580470398496942427895828514300988567198096387047836493107521312443360574889470063535362906383322114446748147066943310753682451043331200134377449810809801774799458651940698579597001843583810605219500334033468267232355146644047729878243665264120297337479898420466576844682931423672773556838780899157874095024445682213450312727034442487454642758583510168255227640379388534865256138025490545595974488643000154312871186822841731017718015091374131908008802778457133352426589995088273064374216964545294701232853926462186326141421039639755479068698458307706221008850704068418797064633234561714043981470623072786669513312147850166328777929054703097707600239679397194231184863878853130837181356117028248442373554458242853387110037484752765470655165209615680778985302321200761625748464216045466620630637446489274050739188984450591722312644813580145429007531246178856463339673923884635353030534821001363537643874979329326777953831963952033048545378656663960478561602180328133678443640397241928341135029228695661523150791764021311954069675997345569984650724944847136448770784077548088419310252741323885166758748053522120607616053232804672139884266808191477128943495801179875408833278887441223189812946006656652913326139250419782936917275916375087348268753171993423457566581467654999594504137352466620526596823122743758413040238078465925709513094775146984682606470836739871327610469765982618128435985862317779878324996477728504100152991255562104568502102933877595584001031956380427358389617497507090878368952422053513069373300969873557514403737965341705120165043056844808218411369449790292719414655111317880405107886551807948131681769742541655962051427271315425141901779262039097699768531117287970719863851427222082977064294053477307872464059762717831260398511710215848730004311417270923829373657691085283801111798565024364115744996156349431232641055181382314575757853207352107659960965718686279825459751394518734653529546784812377324455953469678880708616913076686027350671382701742913500275657359230980024425847935881422622669596995310419345055788770636595638207393363242081229079303490667352546710338050842654847198823123140497926380640995560594390249895642656635293253691843731407849893832701107487110515158120692120979342289147576809262131447934358566596346261022544284723007560975253845278778006653384763292060246974115471178887397609544414200790555819653731734183836950530311673058453601252048591969816565565748989452359171721856989555766524330719896909165412764692656181742385569469696099260940748755322628869376637510456802478573893231105105893637204423009433865335152413546585116034049162568831700897702374499355697551916060625828772177086396928735944649160287756072675642353555633881499714217753133407728811975786474829944858522336462128240112196918386118742844295966149822072322178715072284483044937951835225723017705811909733216580077900585418237209817209365091271596887005803543048942207206515290488345595339293125074779995323338481882738250273504776801745791830641313885748898467990654287555759408598179508691933954571514386791055603040686139855128121152739655217895189161277253820736729661058913507397590770369037873104329699650637867922527777254416090251997296404757097968309623258865459059370258365317298899217921556921207942391455777714661211840865640745487043144630029128384570856152005700899159233506079648404935831890320453881241486245984824278906504972293127832831286886904295859787376889766856000067366609221063493647619138925063498814551499769974980212451298512479810696341805959895016079499780169119742140223861772875857472360035790941140775147345448354710507588637946123747106901929868719060542174838548832583050938054764324885022490507353837479651410649557616527459148672771970670703663821878510414300013148180977424600667224791364919600689534709283872371662059183641709914839376066368048212443173590374008985810628108736077978902635078359400285165271391319325638932483928556436689662283826380597024902173823415913659518431896095781178163561473318248810074077048374403818220338459406767036096532427631212414160382789106760760017466204124241016373929026901666825044317246939429867790003986992485290802874896437016144324769662268223676300178696341511509270704802182961142343530706315288674105532290617663262232332476386984888841742235426167551469298580785433790488155399247318686984986263817937520651824037461904570190268076210716875146818261450405208610069816144955027911247796032190733953357670878019046368833858311405589743619982250697931541364791779566335710182813279973153176056071902525316419686597725850820788512273620436683949579888421880896986316915247874810691026541109123952041697442411181901331566245669071593304260382521781075088616312153630477698653073904794078183241659743788048494079643853610791065456839218501454710887033486273485759050585203260690118406120536993266700642945264937058635548222821979204863437671099684564604200422920153947908146551552260457941968550087487015512935350812618229490902791444685052308758808852476004044115372545237834326699533316340322487112816107528419801163986453233364887517139162753512381571109400299262263331208268293658169744843423302531051172459484741588102899583349925005367112124564080911740539241204605792738251587418500753423933934967148048287144182865642644451154991314292128832363857159032410313521412835016215014413379702854649236136534153571390279789438635061758212125306881777498271568041051532702616665582222428710641611385270881774659769046825390439318472115581570462300270299838431923831528353313001568578476592113884317666951658843817707347934952582881351954653704947945431439956779238950322193374740045446547458842325989623251437511212499243938449502421968547922433446365146426130977161673487512372017001380637336833456902286011870170162689561568846374145102123198343792853480026995971517449920857174000384644867603705985142216154363648814622348014765086672092055087905013161046865949782637509209525254885204805450366355911070047127466826639805256665043997836056646719128290998006890442554780857619763501181492976216874681425702477396061305160634969864594748827139671421892776610058818840748554309541682887109106479028539433139448630975386798743218103603458388385344829654343835747786700078844324534841910282497708227504073147676994479918216285340276360203128968905744961630986461705231238266279102832365562216761147998664953008694548403610546392178735002477880137191382515442903984998269072684174475372954997823034787774111117403008444600572478944670397621680527220192558441060313329497672996764937696363713759883939514237832957144029418761162391672295752146215041371517595634936413803074001866470489691792743542403056570423719943388298694088515496037999582744490750860014420603931043399002843035549885627537533754745501477844764117304703352936994687073666065401267914874727688955240700747836696490206127427130103028237435105521254225675684014570580381585397171272492874362520804861953744691554549348297924216408895743662102115820176904185270489972702709940985418281958646611329173233197974450200894098107015962630769941421850225063078009092500512217697750519965803440999417657239218864596383721683146789474603820315989204419682294100922499781030665330011534304889317206571950193045712092582227482786352178832369010887105250433955259744140808136107909265518946160518489875972537429786598486278377166143840257793823141704741128351020828678044651043934126147946174473996155616605979647445494477640016175612220947181047662738175808429668073941828897145816517383859553589567868968155416686429698648927838759689608253950312562284549499560523608642098012398220777123359503538819314928308746782723036955251696788502148438673198469827649366325048707652261402319275261569874023641507281435836242055573364776941691582422824367165605402734890772856641886028689617647105620689203071224242331898585608254001133156407892412714384261891378609124430612440844307515963048886228946244413000991116960092644627966615490673121053724894764321756488712530205068102363387430071127284849306788360697002642915165198211112083179818389619764039761809890739304178458628584015686556325317583944726856823548009436720504702231323715003276192824187283550468536475156845860063968796578082746862429600723288094761173941867845093719156175797814239617858983270496724579559220225428124627640356193554369208016010810334961035935645274849849243752116673541210439488542790633485894958659247349588151881053056635355675287483087114352927133392419776221879101963362415138890080311195138583889554226402590664031605044422204806298708993559860464073484501473642307979829340048358137848438575816321215557856103027610061192827686909060585137053043434119563899530385423925530162801996989733631066120099008964602553770135257541029265026714745879236090915916767094324711989928462480493723697828302109150604486942037002385183017883335352642995257602385998183824928773195655957446373645069645523587862905287819243645270205569666710230751476974487400527088578967172648709828689056912217863369325690205205680422197243095454086902138990445669214142586623693527629289027455724325013313975408018904614845663435052120895706094118981811324829384629085984599508523032347207348425332466296441303347320106616117823014935023919158093449241010683787660627127940953378189017397019710201817774176684039275394425420891721275314172488857026804962432202729202387737452150587347788750680844975128744902067258142248725113458674023807633791332733211145173226214841093784315584033924285515628462286922914075929821938398599927148727193269485239295814797228527401686022550409540438693297480329030982679138865172236845165709795151654918737967265261455039423881686472003106626838979423452732188759352283062447155068851311430796844463488169710843511221371916484192215070742408957707770436370222858675549805529711710434170218787103011179455931194913133745701344195174197058797803154606999003380401860745450355151525725958792209894398411092519585122310021750507908733141779496742531770086725446029808494773442486893167079170094677046509105366674956252417238380184004765957603466995238181516841583455155915563123123821673986080310460380302687493551825022067528231804918992833688655314846275073913601652777126192569494780233912030465219727881920464753427454424772521276222738253168065363653923744494954471396770219617993332019701054254335584394442396960825157356777262610949014145798932825394503995371870044259717386667322194376525731045045704699389520778851973080258102015947668245912626492541516453914141310572827439398378706435816959824828671302728659001659954173177861193738459405361641504599412468971244098674649770719180850193960070504327798046161254201390977919295456992194869973877737386777725638515007955675825397150952890449754486663828986866393410883679097936506038738986145512971363909985210246899047900997836127251480446207835763289409157244975881109488725258464421099459846287217280907110281604667229368099657146756168725427596199993557190470361254344473952292725765580692068983386318331106278346982311425126386856515109231900048416485000542087317476322324759663375100686500383938178198381043817632054609559049883296423680630040058238845064833464966607925576294898941342987018748876558057933452138138865631451185834686174346323391488986498506694111451030259420712705035644527750879942929021225694606483351805812373379565364496286512740620492055324695650460729442036165489024086247019588803706851554769139067578540968763738884446811674603125773405009424438708097356265325429860224273355835579128200606331291289954414396711341160578734457679005841183074819932868575628980933795809165163852110807752201735185780627162732075335926951016115881267944156396646091454286948560623037498494521880547382540002736183976424701398598892373756249785199572070601666665017176962890808638504546359856672262931913592752682154711731563364420098195799173328461666022083658731454215123140598039813961045242331145353013028749498718248890136904907895279416309394178776373020104701016885319013075936071534305584496828499482110994929406589741392201828612172981112997353517821058479588263245567809737408983677423565891960266948476321338002180686346965703460577886664177113327610236010418750695129656294584788512494439776739457899292018997380893847540288864589090918157428424384591805405023970280769655541101000693283237632861421801584005379380277273584384356137546058346700116419515666081383457795228759184395381389909674962551480872918740613859498702689124284056751002215097292454663119161723812669177544256589862146420129308402422724003768155610550259905578618645500108525313415714917865763977501017560682063549298718127981468859272832307681462643574472697809400623846584760507494125578291950084000485049993987951987292702924788571843581751861946123910089524507733291690145910492551605180413084170860014356084114218014197930962163312932936920541066369444078443565905069726423947101118500609750017267242968991453903777942628150682782043273699993029028222750100406943813249005638766878091559372292059537483017196628829419689684469475602211335024340225276513637248540606648639793401467544789309556786811722362179962332297115171640544355815590002397423250881555250624987959448660642604525906032110115224769436111636749022953460694253149082651633178673518767364983318086933366165414272802321805106916767976505837063179204550192769311731281497564910698110930531478122231634983226056029835530724809875642959485539739853108844814976248342981584869263214577831464183441066962253703606119594141296823772796926488616003399136834761964319074517894724201198936452583636864949890555558016421961935711469498140229314541448466870458813131430076263743045782057593668563281834340873470518508312823428557185376360824072297739998631899008332597412687149582221270354643977074000401617159862904947340107811485520934309930812175431175522957310592055860833963720811698584530884894046387473313274426932805442619232972720632248329201662751866052564770730291283609007667678684772272706893794074505610821045484846077665229363241089588932476100230935881783940891711007196552605599291741520216200357335948232800380226880657050677468023382582148756610695646887411987611067956955019685163874978821323309774020493980242066493976730564201001345927868772211097433584488369196642029063327277076346135583830353114821887608322705471513043284480670918911280437329162018897664580745936595896908615858065712423935928454847635850411887847236954886085965340577064725828227663849248738252359676359507684061766462128156958456173442333230250124862781671506406486497122658878010422496033161434578857967620014976982088027814311226880714970964628562616564851007327567252567283988240104829294141316290002017074249431752120507734780033201227782743477041819295965487108485670648307503489011861050198148131776763743067541325915655690445111518749142724966491116899560408662956202610343155261474234303465909836541282922170771733968701956293544120709345828352583462062292793255036833173279543419977200339674022368223009704778218183602747280521217223698343592277197120043906683385218342332851955488177884138348663389154352692550792996636760646877884402000623498879765606750341052300929009224169737385161749403007496407582993946563849231481105737547488157022270359681569413822299524212100912910370415178435789419664227944434501717401428184542788638987269381558451595043491476637336777941175359792494287738522501073085963747250427571498881860619292505476461958245819621872199162773020914454176937209384697210216006435740115259159188202260435434354976568240479823488522082943013129091097060584165792292399510326850450731472336900768105637517996614598412465175442134523857224725910336401645594234809188034053360006533247863178393394111903612687546443174958047796700154579076660374259124134996417977154360054264154799304945885118259185260547455053103451451472539617312375647406458844172255055952326563345482694226938259818878145676679616894666663321041687003194683199474345722531342462969662458523786750745039620960708398961363769883266626084873576740504334846103366576747979053414751536941837569968711072277511453288392941823042535305194210690687787517197654206626403976677378089129189797770800475455484346029492892573782095236013077173479888952285902123328478022625770795664226997195496882336183696593599324775175191384586639937634259190275605449992412128081289766542959519340303892484145454192044346183976297509997892800993935276537089429327470491431289085260326953261914650535458333105746555357655963378370829492762836915180017643882009837240381570310509917698733073139552546524958687815201472921236561345797753742471677254229527776686013204712342693059005619975289194540508393048184275362595944239007561936256879435644695996512328577060726417950977338437867751590396875773612628285630231344927845324680015558032566244781189920366348658146143585453257639626112276966991056535752640504689849216053568153159494689081649750938326665584143438589317380798854819539742303520815243153635668860944710791290508782661616896567607692406231460644471186220397902536835994456035198940780441352146351196742152519248038024056614596366993352695898355011395088549764482708654938210490209068958353159536132013337739228328840242669880348478658093188650133423963478298523122747813462944306373171348859044254277192562525406736300469818534196818739665881602434889313498744068329956855059158093740012044460034140893442169579128241050937392206315135357317709725371239787939328974323661765535764158991760781004190976779507908318480656393848494483975623098472784982885904187686483709387626388860746860932035018959846497230842951413211895692156219284911586920852436244159118164282488273571358335489075822853870787923619277755317515792741940642184987976005996220215142075717915784859563416796920535533402795164455756144377800362222239527738048212848177064355582426942126106320707652967109324090866483631087883416354344814905240494759192585043816545968834212834553649984389104239689165634260899824982418731273346756483002789352948869477532948209673577389509634484079439326081196089586076069553186603042357499373756838109652280881844574463604933466503836527360350763434919151587214518364495271402626265708835505475843339097859324820486765595576281956923563246753555097883994737902052472618637437240030812364279478154206240917416599032632564006223125203969251509911691932302106642627124735646423386435025884967462344884582028395517084218999990590824859964298667290841010288340411912198817328717069177192249286423957561357466061781379370329237930034372796527824586547683047813803896014070425919240662647240998775571626402872276569565480011172950753517022570646482534048847019685766383003222553213149025769055426230075280860829001323549559745278755239144369959787866829635972499620953230363932392628414084537213307418293080065968039895692379726159858902348120777605649612660816607957634321999106025825650991553046648668493505502708382408358530345920101451949307237890117723436070778223783887194954895553309892484738432587758497124973338866276116181284518161459487594691889875755025004019613165210156913001760460901558121294086212058382493243757777132740914112848904167311755325629396781895351076838719261999206774721886581463076093597621644729277863170260044688023642447320933698543384624540744118250405599650793463172748654165565399049911810942539737340131492432333763102314408465399555446180070447119790387268629689477010930313199771331134541250263445755985902306518246873668338685047798493850003126388320767601575395666657425814839738683944253441129502856227495075605201306977447289144260505047757650324508066405628385124339938189893459256204027730804505995458159743428021743403623925476679974148917787108276337076531241574269371842926017521810266003496308979946626652386239763567283895790162369282560469971678010323081717060522452416233255503824990205061235348116039731789324120779276399678496721753995051670504365739695959198233678506093012460074305924604467682079317751964815864170519350649734402888239822667386423322560507136351202082141421498720475865830490065598249907260090752217300917481789193808520185323292394582142058929796817827027147498837871845291449869531452812799227208718244231037216158981365985822301968471709953508102780747974751967800641758140099063865888241113671163097505724856805939011845194662315232311933544530953944254307485483207692823850162115803958824209021564447268619603129120200130058872716870560931285152415615716079585888235762603437985388652990577263096297709237233462269995094466707689171390616363673621467862983524549068724296463393026919819735304605928760495392706750870056796804419450146970104977502249377470842201451062958632798025495314658504466459295305321535266234612177359490775655836386881410274594900300843949159002115922749444090762933263100627897358927410510254441689957227896952253739247994087299898395058836141571981148824585121161216471366056831146374675412998751848550399363972004061014530925242231578747172582623147856239474809446553680183165193239748487819336079378454330663891653631870749325644348934240714770866394112397167940731088846613788646599161895503815885237619175383055443109601328624585461479003754822170535861518257566716323242622428469286075344009012285959044994903018526390258603050171162059040150569426471212164020874645860398939361266285989333684498045865285197558532021036027312641375819736653253559628710853093658666218662376182084204255542916723554716026343275396098156845640752575537569146264745693033821962244549238310778482764782322051783066666400488259583988245852731125013873475354979858836341400395895079857517204745904892325918403187879052668095992946815349218566228779066759055345462269574879659517207919357368464484985180616848737653537018350972125104831400532696259701371363423129490527005301472213179312273766024025598830014148853815347606804312084979023670510264824955223919569700303056397456047048604415992167857979881703985053873299241304566349820054399509745935353404320817272001484832619718445546249464891956947006858662499997756551989904943256785013465897289172464833595520484712412236032307783066894600002873827337499437709388786487752872097967057436906734453625584090460694887819178999079977470352405237709308915741421112130346177611289212473545614724802623934800773835335410617528681223956813455168547270120327972260854836096646533896993691790380415984125303499495095197411633253622760395233373077884320539967888609195091259066726862572583498243719527637829626191116758136325960321522046144971387992505470117609366957400495419819787257585046266418421838115884126748029631866133590386172033067470563722363579143893118365062789590642327126190577990908673074752575437986950447662625124076336433276109845511140829619165376114341152466532994422070048065095809849651677135672990312829041103536080383271085198849177486543154672333898486709224593308342159975086471788107011330377374064600586898829176617117922271238635982869562016503680467214772072358787222128271915060526889240129107140912897082537070008322328944145249447313293234308567825636906140346659306032014986500273904126880755674571037718721998467924889627901850884970558666560006778990218855024982587869463057385739185588118808955050602254853044477906272825917058655818524327969567544427491169776853381722898824940983036988416489645621778915599688007880856595883150022309922438282195696505189939000360253450465617019129616833378232986899803961631743520430792561577487041100087045514872197027179197581630231717309522616893745554890680306757279950573760479031493764016905336511655264232596294162831068577564299345792486529684656417577965753694269327438022024558643653004456001615587796812476476368391148474106804469556964836574739989421663928277830328687766326986110290070746727341267083543168350868311223983457317484194403693218633072898013367165541681225420033157984752447193541899738542910120106551895438822985524286735264294195141663522873700483568040149832321610279505362437890240676073027581665013160287467273891275581355976668929481730679421137087055029504031932700238974895772339125704234082339349196982791584250005208185128734858734095912034812707882686297929275817504918239864636421439072394775316436803542547539619549811621682699245575937607563149714026749530758745462336261311143904240748889754665469508000015389178455443722094189593510533677639986513666152370047045039763471638123349174340483483041529387941614744245475281625376997894731603551838319970430143002985310478818173965960657570808992419053490462908799575993176465271762771341955538184190177237690188776279303354088634435969610798034494225075519440625975299585148946991217575120514709550152881767231770291537258212007852164712482429090181062175461745906193231220922572548079055868735262108760086971732930080617872979682140209505801539859038031447273721401394148027855830937809330659433067773200611997946633059514207784489009134309955830487813685734148643045149563466163908443499160882493737611366724716319787226174906233449602002171825571982646437089133318371947702129922181461547094056473408434417559310099516197875723464079629166655915328858562834473083582944934703812696930517265175090084018662824787852371547666912633458555132580737247748814952353268937106613793935590769159024523066146759404831271517005075369385576595711476645326145642319159304117217026105049475517309886497558085874136027428160043469657238985721142768642806446055436237245427956641357230244116496300569974516289500428168815539682131852213818470122852688275610993582482223036998963049215685226191675308336386184982192388322612586094049112584255603803997385290226932099548828805049468954736070369175448236372221830526119607059122955925678752505795571663928959297930984015822392455421473702802890604240190073550888121097960967477624663941121260567937585221354301840667447992991458385244844127986639729629718846794032735075359388006525657865927062288068948662589450271392629644293085458208213708871063544999563652670696186611441389958816611022090694409598786546020124675849001163878484934411958418440161314496232739089778303089078337793457100069929245125847152182106412133593845143758219166150408844156102455418997230701515642992924769803227189485525442271154742710723328626229875302003261594879079823105384807759101619744601153385430722940006682134859906222449482969103286859585116359044617496417219838017022763716227468078078068509113410958918297601292805903928046389385652134094996936997768794255476450731168869216970308622416535086946711847322236212197702287906106656774322947555345863884804596219082686619855392054044461477899121602116778142439925713717305606950580472093018877629026602077231165990969209553549516739729916223690449378703329658191167678787650519584599378620627176183280396737276964594173491136243787520841508554728588758193484934383054707718274935727658614018337914069632883030317527247521567344075850178639618504814752335236435144838001905885132811815704360357606558964347888764832362774880859395954218730621025064239273711355489351976821875340550153761943365622190772252936387121158307826093478655911880602342933594952539221336507097198339334129170861661644125512480485945513329552937583767921422372977751584455611958469899306311709986317333465891475276839315340481000738139797185303142001680109629641590651082523592418699813503639719990485096382786760204875060289655003627914503524113157161867005939552119120765467549640678378733899958386880811265763562329314393330634818660954006536003330957961465640491366661905724329054539618478481819356075096107327597264747595563285394234224542794075357771968895482170380491170336746907308401563022383825434367179142821271808484485941914312008058369020117960721069135289715851262634269700832205307587162281628169498319790456260075723875555481435100436107107718734757110978018934751863876202410405379211808597571218002217750426640033670999299622739457854457764446011883584881193690141290017464746284854294686910956121523952645961895917469290613031923885647335728865909478941293808309035491401439946629121502341960444206334026805592459328437367588211732505422412900539625056104299129081226947271694103982736860499777702066055113275533346097744031231491767325154781343297343131092855872518951455117041082137854067902953160918074574707434318578797869273101471509699913479914027452900190461268014857847790943865041276185062153500779187952270521134399339041857733134271737554046235515507267012744110389910543415467000708412471789040745444847317500317843350145479934361231911713147163652783416976033977706398307627035389524017276765803996531880835183761816598892178915317392031012925106220822535918848306806805936626872786780131881195828916697537708154136182160596224869129751467338716522396191011587374039993613871967508045678295431131990596924134181431197911808101614006291005842861440400154187266247813805880192267938096646187494228388477674274333962576221793658905345075101162617096117696800106920796435471498475359789062524353597862750855972935093769657698257124330688063715267712124692277504492055978886623744594837512225114348853806051187073544506428021002685474256182043040301232432162087166907498531035185086414545835609653289916477412179145152536905107602886834424176679881795603413833093723133449111757664173739388662123375914371478650200643700977454387595938672617720441267973817426813008970816114855631659506582522285144522149514912159744212626544363164459545846316504363266893319090297401006383240863342216868682931032191184598740448466728994272578084147097588569764008359170063202087188747739867891736605422711194209833091534765014905434292527939144938039892015565533569916122479923347775377565070343519690397999936303524826375024533338709583739347098531348161460295115766232829202219811584455597888789324811926332064581436528109229881510147931723073062199660483470610956364900118031795405556303569933759169173015096818372449362962759354891033550870505113984909432820303115679551994524071466155367851708153193413477207412886825795628758456476885953564785409248383200887788995532815846240069153164972965935361685588855969023439122124632794583649709918185983688526806268635558237147607100911389389905234630018624517926612424719779454499716516558548149556419967631543950321492060430927770289559324073064074259480307789188143817213922114876714886341085455096855200565254180032360965407476505865242582227347586109462455336166477290148826532678108839084856575686596606690571558276401027648344098005027163136966888829040706227843155615706110739621864518299587699931648300822462551962619392419262376157678520492903149924794467664458929616905336455001660492972524748880192547129242785648603738193172458697233336213080981524796958542142332457525029750628533965133549597051999989460309825097891980726351146508460272647452390050949630948792523523229860052126600927885382417061077764881827237547993682417080518945337136108650381707625964640933891793337190275944392328616559534839542362290153239057014056044986752359658469655296172336282997562606500678174252278602414107574824058998040193208193462630321529191714698098622890098138449959313080153783115649399872575239107724844227164567908993590151243856477991766332524157965830019095229620674856732142367171014786623339019058498439109127229844672850775100013659787290648400279223086538539342053637240431132027413983001986828349812065063713731316023069748685286354270579455667905569568895205282394906949502525872695913940473090556144242585989050979238285185117223750546091092533606587674813311095896344414248376627962543294225732428200116492862544714414223536759970149826163449119056198524084404498849067450994447532454284557253568105618701527652043665800224891031232447944972686229763582773511317259743887234963331480716034767167759764582474666798438211447162118135660473037129307677795950236873419267027281109065324088780930992281441760630736107991518902452647515234630740400201985581230198063285304459164243499241150824757951122051132111689347304577426907692261843372968237110333211576799498305839117198685613172094533906891778192644957802274848120199210255651955277948491167362584306642809547509942496520752374134573058997899075840389151234266534054484188861580563404304324837144647731528317191876943218848420830609174312550046198715624496866607570920660385905411641111402916051670960886091574611780472606883532076179908326328020359868088523982022111784686168698088307110715502196084316376491596589341659749445575008096401526676988040382157194749460756537717442170064932772858669052262438981510782279696513074513902347085321797139359596868835162661508746939845500846305477623006181352980743255259702546430171154848638083695466907481135014653474865286520305007708324386633164077762846023854859867330225527755792683944074068058169396992337596429966817542856571682476979350850234887542221710544875264930415479149610866112721260803793175027963026769594297962646030440055648466154387952188005994187042159630067456826041932786610986470746093238328564678258047495330899209683336331023652585339267982743997938146341602627644576460003611030601400891061496851763468700262120193492444651762507675792040244002345697905164463492838946720711496942581023088940852070466393653996820865963922870032744195568840358029215080358637324345808668560229115913254455863975164143865340711319504318278040382373223573221533099319828067708020240233287405045201239521313665598621676366723358025431166241862587786569400217022682020328600731637004693819268390518629042375931478870362894461900723572258048089707903964633621198274527192020451918280424909517462374637240103457972563163447994636236365534391288170711808404968601669830801282826241147034516665448709349424004951507102258892302106000262600548855871461071399412926697039227106162365723487464311707479561038829301180146024510912281000073350807855492816085992136006636255160909669469313649784322076075675231715000646566647516863163610194223780589923277199792175557383623087221247053392754059594771447163755111608022879888095911597544022093500909513821505798263280268612459433980632344652000094815457850035063114443695208327196253804788519594707446102735809531061713286565738119044301033410508376445033996508787084876001890386673417864860377181920846425477620343685463942308804262018231812406627233678074047183777207168364938129452102987287359306182601756325233529030642677247902238173755177564542262382539352070060338117518021253689879651858918228827854723065523925671486501865411714631981349182864767577848042389165963394961123397474260319643357952575958839923327244061922847433467105371002444857609466940655173393201273948652985266935542867853483745152922469349407829467847551901186447760999502262854354504798406504873471638798027252691454197801877652024135452493001993844196638607276591281523289291123076264058957261848667601961256304910318670487636300844142262199998578277932578537620255663869619940319185176991539153930382425111359775283305476382028109771747898340542460998106533743679944871032659307323091614604826849334156122287284757486572995569913852988155220222079345560240786919795853943577493885744486340596665383122133775772325454291635772448997496534990526807699530803803887311454993586963369309803620327170140357139614221613755521587485067055410367020356031846324143196536121889365051981758051133917537981307398499064901843101330343756481624169865303216653399115438700000854184482042777446046287801825473951646317640679997876812726028153351564711788393976664739288320903973736255768426119811861862525406536333802405535673116383445447430658797912517855288156889003358762303351623836705511362080146053197900296370684061536600156304206884008846150771541866927950811516926227467217098447782036286815915501415973772541833955230048536853180788078861031930160695852987780751873719948331113982098565270334028195183811709992953688653222607863399826757724438580714032074602504823334333846710153031693681843369617715525480885494640614916952613291086130660438985439985622312291596376611490055654304101056706817835559222025384462499065120489421842715507488474180682341576817188730224033703414743887345133240480917995382296861797030823348309569069380741195266974695854122959523304567663181413456099412144667423415616930611966239411579196049735593140716995091337248185749392795909838803523226082602926962650957969367459176633950029926556568132318378199203789163074479522515765750369875146601830284387563642813819690289045195157089702695171944220223294813970791384043253582026396003967842734081723267801505087543464830198106223708961023533605727437653315288696004044335688048713883722259275345137103568926197227419878706193558262909584033098489256637530391582743276743441533763533978660593991570045247586415633084570671527099273018773299166556630311896318038040765935051854646245130603340581606855667788526187770392454835439779766438125577466112772748536765388111519753971033392866925912422352335055107381549756940924299595599122245254627805243742786184241449830262515297347995829160759501466476530661727469635735781905200553187625716459899340037189278671826732914197184214739795906280985494908985219305548087245339980662495622046071870043391505912241045593317516666217893397904599436819473953640910052705235447412245192476437371914271565035263332177246250814960910826939859321155131058523448685086785371197332069805342382364613399482968957599931639379968642800457938342743357730578269891934384017669948473509942116443603668218339652970244425026022385907043810475686308227450396650089351338697835210855703700395392947603638649198297263520354537386446339387535481694631023512525814955580876358392057800562978475403149778795254927677274766852041908530419499529709364449375925189363769023272006851365672260300915548522507080832720277587028166973197601665320475552546978453603580555422550470475477297370850034347659342579587268364929273867769728820806013371605876226629627061317115484858943703335966325245455361394429227793796346742354695640022225735403051730402548275549556903047950223074424468580097933759485926942935097464228906286631170164061463871348668188368052005347268769688895886334279794157078640731570931912930513758714173641342104352687481688772806273015650100947270342688126264500972879724592684674970442156274794046869928728750983638076008419414318688550039840554424048240948950841955633666232257359122689490547331593643874495045331550046269299873971248373421363038538419546934056365629652452055006125940137303094907305492904418703812863733438125138416697166849442895603710998319046788565552091684145441907288182159811633599830620536373577113592719439921932261107602174691264801344065142319189706846410962235271678149893765587014551232115262924170861501544582722228792629273153902910103256566544726162720801732634243455003226105049822741743067443597220050993493440057776267428335712720631742617648088225979559765043002227623153851858032569180540880972910076618126185346292086196230075958044842859467880849095468904478683123269307358266251590710176920541658047929410833618091498292089426656457595041111751654882238491396762209161837662431392269253152175433900283335474566712894453728532879322647087166184026920788231843864022318558779888555652219617812610239966745829744689351208014510901828469939064686685841401927748792630810587012302214317253261623656021121617061936842232736180067678781958075373943548612628746704258931810654584365171566338002833520252142676030038909384390552157096331871947365581902457115203292592412817940723285766992648363114963967898512104768477420786921767104038020938242794788412414106752030652955959659237057062671828056707037152709080982928663008258993509875178881463334020619210930169976285716802090406736232261336729733897796992549234497076112519775890564615466830585934560945349962639592455572957466617354648327742840478022179711750497425138644813315046375747567930378363903339567562988358665591515547981900671944217281139038277290742396407088371600594742563442692738174088320862026919496989065222186662187771033891037552482993135344008937711236608875192778417478541080620485109121825175046964703028334637100285150771339672217573891357947588130130208826170005949402390323518905624630969630624216192437802694841031205962592506660428417308791924440691056618869510563590440805804269872427606213979843115964411349013259941413002457933405200111732859173105893036758916111718129070913790665499318464641367514394917394998348874051997359941432356072676656262033958406600931559858225608965880767316527199378780511364697659069218483234175862551130950652117209522254169308352066869004628504028787112768299133746696807468451279967470347426226653129276814299562576135421845531426359873067899724914222124444605720848076859644819734213819917864354502463813368322830248380991082997347898966512658145841782443423549050697447101963030485381522012854308341364768099770325365169345841039032565159180683174099407691027159767670642866969428474121292680671439722892569177320721576060851049654112428150588359348069670557484269111664855301141488155752811956356142668988523034105576626242416826708995909113454692553271692299787160783421806482014514385679389583187525115226225559882558541926012427156853493823221533647595344789935583269388981270832195121669155482275442865790376014102686665849258111646360584003480143216584943509999069428260595609820999272924414825949137181395087089127243881834121724800451727264521512173797820091654964476690388614074166774746022180303549109694108637256217277715477255317473037505609197144458587604856211870624242890481301011219463846481669894193567741828950752030482310832536860438940655424290841920472091003026974684420088957316362401914065097255692713197432889461376278667439494559823773281697688389512387705009882882609239184508350336582653073203449135655763283229238501694180825698461158801185883672094380483085907677918032195369688530142393736848451464381983559037800105010907948370262209136119787535586323519912683079993429053364511974578130836428093990036019092311222184688897944123795164999399269437006151937685786296078519703776831038420968438540997231454999446729261153857586869671187078387450102138390254783292530464364006526304619600163317084411259649155369283310781036149512496012282536995366753412443311702710884097599094929119037615860788636570240470671050270864807533086506345408575069155842867903064039454509661869718225635827322453352716104782272775878455671416485045914102478033496036269973800786468270531808586092075378496961064727457716202433348552597552843790018646350739043475145506589213144732683852179499981587224829217998702212099571563283054908945927252543784357029345455279804828984088344637761349472371276848700722983804948763592375950008051946202694186121771927057244955111852940389366952151697655627489073260203484098331721023746695721497898463781927275777284693668394191548337878810977780325111343788170903995191271411178195120530037851221215144189048893141265644193968184498891633054518201289230758338280681374170812553239477731781996594769985054423262244974805769786399156444989004481853437530100819966380570889209768404101546994533044378488969382115643803956202277111772469350009583965387245444644133428857839380511979898618111194569013206319822375624837640463872135683941544818734193107326564553752045813552835426345794806959615923053957955372818289872595974192239613669447266897904835742303956694532451230364116126145022153706816401155799157346245233276264514264539594847932404002612490866866171407556560304137519376856978535700166237333571429565709697431973033358373180103627233688554727646035215688529888028272792484513556543538355563773808158995447309183611978978594687259548750981152197281820698853733111545530493381663801952159956817723710874937760276362224144099031543083690481730490863754482571842284053392424589090999246954584617890541011516246491990867591839568827831518417809442318105803728099669462624215837487796366227181861833214219400540384297837693806993066898540040860874066428630021785619111816634911336278705678692926142560803252715325273326481222662057348199279577065191893841205910636687698014531420512652289315098871690984591836852540855129321254931324609124080134637104167476266868879279595564229771136243241106642170036143797457441251354015378844775156253093386925481067384954807218946782341129152820286677790660576442228144769824139652150304393855156192601522619055574770533120908991456021102417142735617779918691956214320444446978156671303358076322278087645242850429834816122864843073103417634484511626243647146671084481290254958919506576271179655714808177939728313949250180572985886289959415724788059217680266054040731555801799257716734337347324112949376800191251633891061272901538992415245027237562667701841779557086390699244735762654532245768134146043430761533541020109142827169730035961406559944075982813552260831699867631791691657809860425040002295231060744260021165452812232418331455860520508094731073326758940405942549888062420820812407815810963758494725543983218437674170573673874722500743145655674323106419820930855541396916416519832843381269770679095209649491518132638072565707153391089005282021866496080290123602493340419059810501504651146858293453049951646236674763790618007581252700001576229039426435065203677999290805920078719631904791062368711109315329030202744424667782616724975775407619180931287779923534174833138781308708842363582758196402903711136773489032679601129076340755137766667324493380517459269254082606024791181513715329419733061802485416558176692386465461029346417611622396574394112715897004427234658391850996571994728171511998046171861939985847054810132318804663445152067614283960594235330931719701551483516619724709240687539194609944694178681156597569249785915245625091557232313316235600714850046177341818878166270800398601683332432982166589093039865787273189992814873103552177533004762335574609853448810559095298909441471041753466908532484733941106696204961219879624342261450824214976290714743956405646841101893688694975161551341122228650624240034898295909483584094043162859097387649195142628555372380482653628389382734613908170284466968644953760424760623947999178369795399441063948530765644520163512708880195627935665187733804467657867101665395881760717242961001668474787774894460420292566218632596118554790993109992650675267344026356594634433595040378247089780182006839615704748958185659687972608749927983784349571989228907980686910293290009156274597539470564254580744050771416335410137085492882920708915048087657104779662661791618677463179569264558737158268227334390103036511258206466497351027920573892688932519799632627639612291933700306296927932397200469078180515365727733951151905529693357796155535169455009757520053017310040505529410841149710429210828978663655688452167824860327311637274294591146998791374143618177112962971691685389734573339534766445178994884590421357580156728568837080302576774183813586151758542707704154174496312298372223477529354681087947099688186951234364155143086481409605585193088171080394539721666367874716846720342358104496512025152541708623003611208624716101573617009114083279810717392252018563076737880755528200434540109938458957884683553431779814375870619116029032156003574174642639310630554876125159546370566692776558249012503289998167601117881685376226804881979167259877641781234745621857312191908165550728105755697348161233563227369819796277984736785170740737387818967962320474176885640969589038968911033227996514736638791687401885175524211353534461864935513641381093315390944292768300917139563435712658551597817418263846329938901581276079851136503123187926092014238328999904976916006931614208464995223731296429253804340715983953677895206972848280325545459156886155547973347417787512279573529010100614143821755467956689320481509233960854842874614650760974645610757775013667555115099076515521691288465376813413099387248322283825908700186364092549073302863789467502488957991511668246866034173615926256000972696969087350158423617678087008743044699027862165943737244549206842945289446923462026550510416591368726489879847429324780130819210231321045718631998674012948460005368928551956570559888268549004131891614002666785110357612878460737108950969294976982308276775835420555850304973581058038633828460215323083903042943303482243435824367390480386681087665933495377512895175315240638747978891155490937037057081737060262170961308428941705871835290788528204917589252774495775423212195125890959167231720454464313167566875604208980473285462151412549080408340248191111924370358113604914108749802613577615775725484610613676320792223236725321884968306755700103552071661361606226835980472416948329668032551421722035326154350949957245745721475217252019260311323628317914235489862663061583269992921377531791581019648876588646751276057780811856062296564429959933604788079722277600537068103440310522457232531334290043292551403383220321221786625701484680961187390160695709303090690456924712401296009198456743316420911842811493074520255697043250927749118959656288221438631712139779649011824212378802783453939663294746323308963641020866459308178026054859686428680185231461095477579556624485259491166638345378820938326824969801174377894245156568321595753973885793479397039478927389401115674903370235997538064617829082277042261151825746992141633417223280294775052085618701171692099368176685237459049383757399669745772050358965320069318340536656204026695070916303926834022873269469599681703750610075119332343417388101081122232459430813104273562302019175823083880397412537143666427162944632170227446350330289251988854201721516496814915535301413194992571545028698726146452063824110736476297922317191465189964252112321691432774305831654586742516966632478264783424329885481717885073487081548899651827770391020554174408477863962562149858282191209337131046861579755043838104452806101809416655057615379884358683887568210794728520098517505080961369593875667194686795633546127088877059957593028022067248700088473303022203030942584696813541315162673393488958419050394603485218600379375607747725111927666274889081642727638906839340155058441090639598213537724401969503691332557405230306758001850181632935592549351998953376056621047853490277969220692747200185913457312625490412515932025402077538963936802069949088361136153122758150177815187501086375079407484720251566427363491282897950133586203638560269546866711867542091213692804584438224916091026793123597877279102094524911909743037769477068187061249289362411742199436871195233838516126843154699520872264425225270594910640386866462084103847003813730288314739236330624709071983980254460376442704427922887139654103894274893131815162410228509098580979025857144433196225165000366780847903425766974459487898395853784198959882555049605114484002331430067644484613552378098376209592063719302026865518730171011461813605398627007350109718617785405253355581428112740896959651968434061172486230546318242886228203713241091981203310752645420452709792627385211113044418900274109942619216681737213839131530142804484281401012930818936706531952525424025327232523072080801703173975791407191669911824939551709731104425106190388715237742885494115066899682734142596731963529862680746343188934833749134338000141566636945053761759271639279195351565514191008849963464165567234070313589496978195017590272963391204948906578424187192701646984987115047945787453136832308749591946565545117841368155351238178371509010970016706237458887997598734839707362642388812604137567223261334684115083639982439853150254584545218044147798098467829720497444390791043520216241715152701224522791163799656733952894779640718964817562955309095760394910304570170616470450853013170030945844114893814088089370560318831869149743518673682748510561425092659494910076852226559386609359682295983086325791509001410143025341239129582682222335250846805306056319617371197214906949487389264255602318880258117835457158935019958563922783516681334460726551500916644222657844881363690378773428102138642148016914633613001870141617066174141557607348850524901555062011285224950756987007077493727863700912292020131396456125951040592838494171586800283677894085184853768518355321399896105844141682857508172081062495458382339305106545350118607234994260555425096016026055925159653789555343785625003460856448357399120139096048204926813389121323063048659974326152904722214441787940932830386569928316151709937040396064585174863325208833021492677387154255934835927302228301381953619950315717865874571256255664103022932240823191455889783069917579050455631047345204419988133045368138577571885853832656979091487759922422653692782573227230777491902933906206953115571613802076286557167394988885237749747208891686670273195348618903069136203750551762687098916069525349544250448673525100455642238163194080693157940529476710946654261259281902684019475785110719899482862930938455484095566235380301028501013295192885913099634363569169844879803311278995270947656506385974517716971199402282724266548848581406914492697492746394413791635036204438354148643538738724676055965751470383562644935696036278595051608360176146789037077656665916665878416198631207919782220350707762423511932789625599182536266247475898986544834649578209374963833435466058373359092403294230933292045050429660589834004455130388185086535752937618388791833205861677757627219864284719642257510291609717360066388443754929478284261620627424061612447721414042708506185584830491915448985376325415607465423356348657359346618279931092287716417394399844207799687869465111749266033859903039094498405095441642491317428365852208948605822939355175592837029787464225185725154891760305351634588985460817389330098719679927802227561814435186112233659747590518846998456339629867132964047462588171028826408847073185103578107575829630208806198546379486968172375676744121093545187464973293827579780099748770455206475913481818723039797984704075564407124112688658594289356640983372669716211139419288035302832730208327332928476425697828928385511257010525092702341025007038391339757773270987529625552594116715077495171252958439322649356240731324884894134205270049451517084894364236725734371266011880960577170227975889581297998089817821117038377221650612107905540399862739269133892997979145040520899801757856436786574184413474416227530900655377259574191373442284965964779848600228566421401468463879092920880500372369831994410694005696368366596981836382833794615789369588487694355731224006313086825891339244650687117557717052201853536532278860054384229143953947145545439753989545162849513382208786533197004189027866264853179794180109448608684782006955526184084746638984586910784210866686481925713321078032198031808790189540349486537318350876860353423873715795325651627008787969601466015555002253511173975650158512197899718523800687985221284915882636368232688860021505611384742423713621769173257185847082512662004261580178728889712320940818387511928381732756316855544244899655302943023351014358051299472150966983753178575468794026404800406183017494355120379468805743487378755629660194826581461090721670451023092040297161362700248210054996243376731717953134711296655024574952669561789418365091658127194391097634155504373614384634820853816944950537106695708244724153534241080793963592996818005912754687523747245130697944121607823328466750449775075322152398223668020857734779129732304078268508819646536996292869011345440142402467773891358490225911909050855400522502859922097299121700234403777903835296777493604941632362842584227174049221246996743968528315964559401161166456708219436877422917114286310587237260790509775726629265337392128233037996363837428482223229864394491296235652765957464451821802227956515440865492774436795978922458605665096632931383616560325527630220990563029089580272177593570075229541157912710785902882863418878963224573230224859038826186293121143054897707517158168880467849474056842499201784960259465003882877824262068991392259745616844450934231428854730495795478143985003250638536322556250115818771599329353710089691506204049762834294778053111531471137947130118121097258799166376327852113882136127872148685258302535657722621033706374965147030638295576147562561975107567902405474725869629575816827211728143314222109002181250162018268878473714393950602992740530824275272528147327345243724507124502194929517716271273728712536930544298574705043144779150907320151371106940418163942598680445462565432624495585907417006019809303711604158062030434509658557172293418157481970439761217557343854841019718411073479016447076246573390386649942080469351568898197073250427331857313816269295890170561768204436151244416217286784483601513399678063543469825151891505702277035160354587766931007357956660847187132508691412227742032055970197753536039306972634621220155997661181780397021097809508431522364476244179355236179738023803242111316227670186540218208192207855379846231219223329308194148046030827887700273963529084895248789426101092906866505431377092680109067931287803588732689691110992379600497597827259740534278043149255594528145399257007257312833886485258874084032356546861964347467445615577039682527980677899822721946293074625672385733136041308650604416316925501159263779711354182985437920439708178967248444102374591676012829510058392426945860173509416650953968483616309048867422560314885153907393141963146516246295934494329642301046505182353477903625044657811442443353178122408105604287124091747842224721890464319790193223549014470105270038292546487909058460160594048683642693002477122889373424979454996481115513473488320914428812228537793914208735519773257453118884409734963005128291227829301305451054602208840655003445691322763883764752917139220687481526970618574772018715334818449317702375291347447555452599828153804565062325620475011780348666780900022295980809374130375625608054190543219075155903088675599887139752017070869079080489731446065930964887229926920445078657798063298412924243186012711078579589401683395754446190472235746741704084071717400529308760632452738068851683629238394441915859499477227982503591629886366841808959399526275563734833746170686119591085034508646886623534728417287444026277927328118269988055019961667337440949906567690293653395798919220375256524193060130829408540485313668827418103019137686545352257937853278582946448425147539536548492557586405045921847404755316833906033750893247177712492585873419963635096561132739089772435518960544819535103822793911253796583034711960942413933028158154159159244408865868568163851913001323397278670020602602689203464826950280809307169556529259577811111033594022258769567175319811593528607973655268653612298938575789499294153196307195172939650174334986876375243278065911644005897766336481028987193674715146360321434406306261769588174768080715209152900684956286446790701568130625207125503342435234655696878574137050062767362477859253960183205181735726729272410396187473036462635110877612698674989255285180230266024617770484039930857106118149799670195820358856384222505931971270202518741014876632043568775796849309217232789539138751933495803102565887744260184829118670613848091516722412376017341149954985563025132546988301120157342760708174425882994140249347802920459611229482289658421451606367629959085214791185552227119121415118666227520885042614276896221285950758098631880449165600291179235359296673770133336880196761557136018180573329903906594740664135185080724491475378479459382207215514990301320406472606369328038473173135792751041169793999015096144187337866476848212797615042312518157882938313991634034512614788818291544714190213597007351790535848900118433889212584301484554371509545456524056157975432661074826979177857544863795324619012614980385482987685013384078429635535887914404546964906207097248042418346014123397750297713184128635449730353833011587389930606246997227729616408593091892304135917843613764858259101062043676073916790896902207471842052754616961212544923874678209647468541464744496713260750313578192998128745354199117448010448385986187791959516412129444694419957228957893249583638218608458736028896578401797500211832842506017353163186987827474220322847063139613353020234451584822132393474363987086772067176086186784483465559431557843650844101101703834950331885559608428340886726743471461489980837917527311165848524280424500156410336312844110898461178975706112242239409184183670084606095555998970629265523770215664757870446819327448951428985838472645180293340278535671707386699640003780911315834698121915627148229921461843645489135075435828083783701811105932276917330929109095465056486755520680635438004284319437613766255198377560299505364374609928085738202470641043615244365471880025456861715051898776212461042107674154898867685352235354666784509423103886721968250417527741574956162659339129212822695701022435634267773989681267455720200279625432588953437511901798460926023423533968877620358894314807937621726788697410565384099245664647035587162575077865621408024969735014500281617888395186610819798365726322964780840437438569935765925774708359429078718146055977259540347929706605401706626855713958406825195616133478751158055420706950775873850315089701825886994152482968143736818196420468962591351641109630945182688060775359767729892900501516826087566225352905616813386867911351682376124034295728149051182638890283747441649468650451375334996654349467475605613477848888242435219922625988837509724545143691300594031150201909872239548923355313055921657937374955713729848584761087543158753497624901019624275274852654385248026856343006916873480926090408761780732587989113532503624961179447181582686121598963401789793410276991390859256755337482709278833183409562674185901455106412535628983375673316452099298095631017874360521254837581797552637100793034727340332191368641613017641809448001631213601362906196473476924092346530469986206596560737122606753396751614400106407204667358726752757746984677050490621535226322428087203196717683058165786389114545216506032711114232638716326162286651018936756183169951835216425961079633746019050482765897401910180480115862171289218910066319833849611498823710189788337219707065040983906303157218717717090187940990319812200903046542965241283002718136913667055838836118109198671804417839412133587527282260266822000039298679333130870291302950658629227149298894818573114697575361528169128055812956928597161089599970861962900524136819265207134722236579650425564813514342454034542897110248369024949222811361335618496974611248749437139939812114852317816273875050688293064689898586869365971152780065030633870519857110160110006080821554804630794263622653438108536575756751901876491148219739834588596985710396701499463667243269207741526279622450161633236992211258353104351927124379263489048911817570979675659444544453543562220751968660333837130904960794643629235024298556284593486740509480636405970667537379410783465030017872731893231030948855604498963347785688300437636624218987925642041099758656076500448601540809064773405665799660897208195983253134436788093031460516910563964224388631227614610162843599913512762334315968545767617582306984167494378444460161588331687046475549715223327779103254951548193893211353803789442597516351167816092784954640418709487177220502282908828625768979593554159669384344030325194777124555941665562909259827426489727540975047205032442739010530518437823324956304284301201768329814631623241416198424563998379964312449488851697356822358965792991619307448166625476727830316587187664315000283957043815482587130960625509612265996408990623989986911723336377310574488025832509365038074677247125360379706129205739537725369597403279877506105330725518837034398634754334084380780487222094983474711128100337270863228608639620509615266913585150209516055888000763574894222229932913064665865926340230056323558813631947947305564398766841176054141471349143682523561993604603282687153649055955782182825824024634196134780455474126627096469939533953010385979009315312707496886166038263488161857915733826519550145307242218233335519238809377231470897798402492077258423497884099403494265339013594283375200626976552547717037578274548314102727616591162400515796806466121840924207927060078084479295059656487358925766219409590723891744852974928375144064319691244952697921836215054588291715363761933089051373615338095294728847395430054340134502164542778467862894535185068797876718463890490298502363177265891131197625804462032524732087616889097841195558135243139111112969874246187751544834922596745909527228715643181075560249803968156651600521362209073632742654558108578929609275130266372294751726275550251149569701055709202351347534097774512273825270422121686931821007417722284289270310218918359383376017204390399181174056413980204397190889742186301680482319064226556469042365442379253243031280792191007754890324431261156549082369386922110040810112134775344014653302796531456393860299314200816299928702439183806985052754749507244436423435051875432607975339663080828471624791455334614219072968914411996165208845302232251717317438474365001116441279217833136780950402789481883761734536957442384963061003399494179572093734244304818439992577322819588868292683464442168695795003562232931829209533082773483033310647887392195201453430763506214012969424068652985843638422448152220574289424465251841636379567729373929478321424936021898447918658692406618774172046563021293737368549048848493207647370818887334584262045351410309806605615611216735563985038780733023068162401936979106078163259724249217008168254410064450493589602561139489397917834261509206219691122786564889360784774830738885626899559098009232120731789478932883708780093928270805091431061194900047591545467517156091466369846477101241664078890638601323096103178816227727444277018576617417087630787235779658117984030428083229431715933916715783799026199966151141783976054553101808886873923955569186423377596559702762772376912377702914651358928782514795283794162645776545453982335972487142512642710980755682150585955098930258337192465176246866898432986150594987037484454866389811873253931218457750279246820795993567560274359728196602497471536370597528792704072329585257129144002460454820166035966840610893402594049202134960463410134128903489227962396331942111884572653150609379662872208586236195814217418571390027840538795954703517295250691440607274580187400058035552112321744373048690533933992147599715515791752318528386664721315652673704388255836048944456695406291267940077941613569010414779520468941678754171961563755103767173277464896776789407683181692567382222524413053609221712479098621514706982094492814783803335609046920629121583274541489919059531710975957721332772243872102321416588420710107249295511932279322268730410501616676527937203394005268557721664841571880839212715393943465256723865926068052572123999168029702394150789326294882925991674928388367963029707758786553013821174856278637669478107478592200467724697393063009434089287762200919206959170159101328393867909171951555865302018456306293100507314927734534316451993161583576954984915973422013940853959929267958475891325687885615897974044711796117055956615422800675031549350227659492699630997434970294991172757164704397995930045375057098619260859698969845105429318949882241054759733005249119343814681551116449788851608933303110518963444374697409788073475787917107564134011682609770416981068681753534444954386582626818917002584517079960467907308414708446988619216835286640818960592056157190992047372170305311672282991119123972500760751717412351615536774720508572551240475995814460377039609598846606985104837945936996299378851659208581926529183255965076387341208261647138531146579727235907131288601044985107192947956095332498670454063309809631816854989251138357240539067446558348214301681992784526073706474634773889627974570262466256348178808112256416890382208705132504733097576619904071041584549648470458995665360888970006127367313293078817562439183655764067731348814104026804144950111527532065015505273381734295022752797592890632329352200222832019844084238373748950107380289694591061776514603033945010108248265469282725060378942883984394600425992349136194311732271392030134105073043876606065494044026198418128708123309742981081755340437876715695924479238113307754569791472765660203799530140235567914695142891085245802350288325910552207095736667668170779281210343302623168955442277281107974087901904584316019306324712936938252237929803076974539289175186109568754944109063168743870952030710481533850071328229257042100976822011128564835054635172285884197827226207299881638578503281824102593915354612652361136368748143228754639937638375490059807943963528291411562253280129711004675129729190117427945446101837325312232001790592453229152925177106949417251428870774784776301148167879695817375649154579107793422965263708705409655573277357776973486889696484167641596276205054001086678222464323491558400132280793878922704258798647601345695326259902343611973057877718043045463628277323398761997813552539432207722243607257234073519422841829189513298797763624297148189817290594150434565334083010380821967864302203436142149007132560941712853440504839055064547033476575979056950920132442159410758311715962549624549718497767185371928815774534729046633226810247765958072524175574053188255413488304125152626925798191215130965493627710574374733222848348644042705178223447031784210890682213637223764572351281260867641063706439584266465038140513256619617822603423091885448394235528496060646435666189798912302004475175725706723698138895438695335694628072289132916585373006425025864741772883723098658907948268638550412070841460641248217180582057324983531828775374637955719340196567536935311619708232085450322390548925776514091763002033943561992462016760797565811458088517273359120317779571624973153666954325828318270518622581479076565834722607253357037923440090613424953592496722677882997238571103461311665375128667394093078717548162304979298807689969718931753043704860082988420676628780313516205530655229704057479091357987884396243822516854320621625051673113348590450091919685470409384379349919820531619935264122603284868111900560834570877089087192640237724032572931845557484394047493197916644011427289877751846216857614410029539695265740063984896845342747160649648367806668497925731858148595972057251208729716177489620553994584718755623938563054171250404844830822455381502713977194205046006944962721571641397225731855237276558602089794712964397147502403435153838743840236127211582841764111977969543333106296472667586766535138085480403537024586176554204756529067780505575323679644919468014460270595967968229729570029904883087675628395376715351363953198386381097183507086649337855824058850394098059344342785330605448236274507443464773461726184777882703568943015379484652605010639669221374089144251605577849504795587047056238368294874752341162941440909856345765297900432234403074673034794322807547604864870841081819385438894848344549074128299265316225243323175424232330135281332302185513653340800321189501352635322976547694131702674347570613085226425723290555860159875135682639387887251003820931508982806816122856916861152365115402400884247487526988392685985224147011015016130761842229963946682731259578557661989559155581471194748505222667160311028330961676340159754824794230818420618820429594995705303232722836372018838057425843341024408632758473697546791081464938629204048191166243510339739046018515112636199606849645919653304003353253112710120791013559256917940233818622610497259149535974178501718768851259297114811241741306888320265088650755493908277088465392326352934847519629312391568333319534915572517928229071492518543063208464745369219738904603506812739371935153929585514395956851966881477290571587693509533796246978964682861379602479431405341249365285663689291254823621138234994602280941148988399611072091338414798874833426603252375591142009813705809626605860258491847444246005112696939708312908019890019104177049010768929079863998972188259526875686307947795422245190111249475918430259656154503535409002864810475532655523711045329902409178287838276150568318779525540237536696153338141812187547258730845322256394698527692556488578319930431795680001552513942101624063029243216211042595959293106420377981796531243837912066672866083414834860241338743389918900628529462325327036539476401165592002828919912487729482312611257397326394846362144620930783733655229054597696842019359011367174413149464671836625280421085006822446889628718311292243988328175761401924700639643011649568919946433258785665046310295857771932300024301519796277881593040875321984020224773474218303150749788500205721594350252304411582603012334967580804883753794417194141926975607905966707392319029074663594658902870292196493809131687427976175073710469305630425655908485921419033614714623889529712810904694617085811489887945842018451024192472188033477656243625115033278202465285444789661250819780795806268324924648012989421124124342672364765506603858065227181914265623563876943571270975846210934690940803182151267386261727851619529714230131534274114212031386174660778221816602590903094604856369570959698623668691979711055199707243798257368895516383754981255721043481516655728337661402581064870186707538003183852373007416876221956321885792275737126516409694303884399659728360583260180402539772156204940744532794823880356486683043309075993431111056133759562068163822500376737360510894999680747927730861291247407421065781829905966189328168613921534580864245761862836180997019926424833823848082350492209210960604897971164786684585381343793917824307565413517811492057352487813749659106775653657175406601929945451876412373839555840259922270912448318356781123394933198188155026336333058953210707229417485366592665969889676155764374700094009774879606034836265268101645007878695949818675279646829828296021856509175889300301607029442003345212318970804557155603393230935043202542535141459000019398652524996520118168302776218193514593151398907286765475592039529694874853135627394363699815538060143928805190324010406936484247497729649914794893781929648827160128594814902878031268891371022393903350906229323611170345161936386020988065129540200518474715611364593170858739071521021223726070243424932873947552495415363356944054974896275552548204714821629242986866178963356366950034581081184404922748694672495069009055935125219961029388264086424314253965110124720037597067220460176082207102075769518003558085665260135659096698520121770084640229168274241096873438279266116212218314432633215992168296687467887088415623011217794403440536978446949403764968192547599370918119312005351150897440539954441441590320986697119234077568510177167354938526792824587508672240767615157026791163228896804164691695398681607304999749412691311393482282396750107394252935856129948346058062047426247223490095181073742758458279188854947775108061129629587608648542522749333365495192043195029801259981932224764927736845102167158912442336741702011778821298446132909589210065182923131941638416522272408700205728236588529367185759835747794537506417114771690803596496555840098806228969460553762341196859690901946458412592871753149597832603865874881496846011869178970795207827003867297137044871947905029080405859175037614161842989965781414604877408563715042095838324531407368854074769117905457091856318049027616646102933819232911070070306078140771618861450300218344485759365198362651181222641894488501828440590190200410696379015971809816663192572529354020953665554821767766674280041430920756840497645557872663851858344863889089890914141182216072224322829549663546664315569343432930513214711620599577429395530750574150407724093455782153563494615959281872902996157877502471356965089245137645541392931960798683654472406124061887180342012306007814295787405020852283489388076488454111463216799344663904905658452374625985032118405268913353358025439024055589649561946506246506369032499912351526024749592581499767721806535262097878603906208797233779869461052199815376327709359740512429728600104374262560216535580259348777571233177986503043746974260660955774364976267686948740774529434299700466937326999026958828669739346147214999444052988315319811642950158253662713169267772214783303155075197089038415044969068888513520849319709366384959048998560920219039123367518519214259247035407171212846915196276393117304957682200783207483028663880565171822610255077610260982262274775116927815700291230042166930154283622875978605122943886193556313647295058975937540271866456646169265966133547749380971386084853780143619965766054280849237412422964432096920736234992190207408237492368130823652106544329567441493846026966502251647418731078305486423039294431036687687709395643919606196114809793159738989765514274018637471443391230303648190249439958536841062928079845068078696716309397235453276776253670111028883539955016635044963163867904064723396545904758955313409246468934928476587951241297413513264724044525508674546303555685767287805237914019958269072306006335893127158756138970450201753668542712575316336377339051460521743222559075120871991358004231448097433983396065823119256357599736254103035655433400005240433852043142953502369992751577390452654978770686774140727255167440336533335158830876111697729826226572763238527418549603648435660235290247109788289513497113777863422382857519132576985564388227318167832257978102914265044014855534831220263814575707713482305639551191137285851011911289788186370855763836097048382017402563207082162100884974265069254404263186764423707064018061396137067712518771392661861179513706307933753529106265643164805690935753850187026983949716890564614916636072198422941162887186277641892795790115710173525012770179305130979451286856682227986176925326510554850371939980129748608275784555962887750585789932677882180481278336247055960960442384848076673465169945082191403971341458721392478717512820224923409866803688625510998047843809419557001981350741724028453634819860830896572796609946821016004808649718914113450712514554056381760318511461154606688112283157646283403905222819346015193063510414477158448336156405049026198590001310893443173517437262708345737581848666973670980164923567423509494322306286890791858780630134468117212962791275879932640501502886815848613537829001181121122432985293017050753167908375479166058609576477271978018272659423378746870458288191212131549258593963521816731348709111069488996146811523153257100304491851434234553393154895526051537407995675443438755454199822754497199370563300350609714793670322767596225479262692616318340448906749661522352545048821020592518861565516263061433902026199770885528933369663138832307908064840735723700877793732534910313695090801675018732559158743532039294269723770358029313113488150099479378301976785855513035235266542789535693156462824558289447957882657066315877253105956658822932571469272341069624000016031582429903442044325157129364976336669885861461211261117225117178389542313142024150213833792582985779182099600767734750667160284183976127959846829644839128998871950238335208515889098234779769818543075134349356829732131629616802196819809493640275604912990343875157928260407950387486997950625385979533806920012456742956881613736063174164440392400814399963760775901265826516854120585217176862663960707283800565032075198027219559411930648689662570007400231521375083189804088183023414923853692258459604629797380888536172572902403273043180784178511947234218875890351945929987984833240948757495046373079599607874871651660874089997908791720853921338379925509646984542775767316817370097424902019811660951686403583388832381489000560777052618376416728322992758669791763569124114064489696986151294517170166894722378042689323139994414726239011329658593357706023322965592014183589789535561605178750880849254107008614469396491030366788685421063845866487791062175141793950680281411982771329971796616569165871500445049413228385477492604306677497273686421035096154866001167620347102722497884952315869043492228854134585571036593966026634948717588727784536314543263389403950946885758570538939873150492170742101098266752376477855706200788248764590089236412087267520476436731426960629386816932864071250318131478683256183439641536634053013441062994377111785215124584221364930273665077121944163383942193613144664118888291938126003235852189496442753275351471584605926195786250531122611314437726426657169275703756072153835833048287368870619650137333915323767420518050522028037111003360912076276548902360359053247481820919212144137468422017787268571264664466609974106165916457889966330467249094773576562031890319971830242052610930394726335778643298298619348220399761116345583319468288346052280667458195015048811230568333992144341564457204430816645439132224542054253626844476283175108229626417650608440388604614396249122326279604893019098153137692829537566658024229935750251753955752819974845528746337972381357797263930872671606768490731878023417773385887732493575660579283879722253758270465255755952806286328264466477210339772224266715343726918130751223442729498174092041215844078508835535427362659952247750328589787135750625787862034169611135015578378579546567920024381267321771423481572167055471325492876186901759439749414743907372608529170782552499196436343721991150805154266685373289583268173874944238892500517630441671572316903230534896993143803882474779875987364044769190533601188075485603378339115412025773910236005920703494559389663730453101833156203709969077827661026723919178756005482781993478162442058720355725564662906768532804791058798014271626662823751719047218006977968700489987556346179527977685073302062042759276014518394428058179468715135285051672533454285931885380515140557412709721209283975058128011318769273590224082752338424518387737707191982244197267296307371779874061236886514690776587439263531455324094626040107906124574823453588320177461732343193398292402417322807659676446347367068034131279409361683803145257555894693886279363424453053855013854473473329709124959163116218001548003456126333812995198657669276153163873749719396200390015797797141682683656222224287279480174456355707085429486747098512845544443369241483004074703397302226606089694505319096302121268710140864271267029355996821835747629235558191675775950212691331584106504644650177372692764181590144315492809853896918577080216047809182546036225554799142992018678137813040459472001683854669607717636141855803168361729071526637147274166195895796060057895390726572910436740130233082396660101981864108136257576745554232893306393669209786534815943707218140192149299548298092201498300026882640438915331266937094686904976617164170471582241311118783732852144878844303968731616715800033431653239048773387178291948749727865301327137481858645741777271355938258354842207150243171155698973859239334634033797626963612986233608154718598355201114937390718176010063497834427322958673600769392084101436100310201554139951748526061334435932462685361587844279349232278769327660616398807122479713388748648078224709433832714777475401016226289729941569489711047954600014593115862082282189410198132345787148633453556452220727597754908011402553837879986008410578132581901056571386669517545159677537644541280038598991368222578785063736337487423347889273072932796987072922192571277139452537650634577305766213080212394559290400253884690018584166199476696099209783518866932220599418850165763555542250708395693277750339921426899243028237166780515642262095626777628519602760328709405034321668733086315507786356566475850394673443769866644797625771325728065616779312332347788815047575688728236510333783590296167328881444471190073981231146941051501915539779897369645570759098862734417680277249358227135591893788990518793615278632997179803610321081533025124236850919078379393824402269815892730896882173966638287389986304003449847609873093428879991648897509692028017613588704161471623282108874234746301093258209525625975887097319032025656907042710433251101473947047448220189967003519531881700060336776211986257018609924467802580474862835820164986460755745902610471215404483788923714266025721047458261365007393153975202689848439121504238256772267431726686443568263248323791100056822092991297381321702890018013211470658281422204106685284887518752645618623363390778191415342786869898683355248658927000365699215128144927120234622506923675444977280326182275983441174298262550214183264863449157361039022150491351528732102344793159484131446906717283681034488470910541576227411608245905158580803146250578921094990274307042968289228818029203083195070166255510127296494003409102727604433969872520163272491809590309069270232563206370256119522530893307538412891152932840862344765428108359939089441582087679705260448370353302540974311337341026800502725122442853051056340356528413933768382121546873304297126694817640347876558478573714701223179999240128120960371799677524215253537410950768029338164251118686213305144422453674327178551595019408932006031594076782967567246157378537433190061548234793286525356248483189060823824780299133653954458595448804271382910376913258257157297099540210219387807787969930980010509748352061179850523275966978403231053732708729252958872312199820582023036403351030377107899831004797502675402607166473304939301704387862596476670646350034209208918076998126908216186690835605247680927411581044928467040114548349646133693416209820490604451171313454531780048602224769279458083266046675398196391383621859693285532702870563906523541136179077443307205590476182737739298457175422338068410977748839943649986811592344365562139616136128287103228334191408175749358386101752958622786067436828103912205718409016594192799870986079391341908446476433214320616037304740220899171703855934669473073667810432133128897034175235534538437089149672996935941848558970971375173372559444877950732910881879861101454881087778816250895608916347862348011165265842385912483742687518161464602210258192991665587806129162374958406240209791121617394803060735638402559229900792734544121069546279960920210215999137109927623322943798256320063611504713314862891943831511960214195314246107534380142733735801412620285845221062892764179872996383527857361285255526935323208288971079699550539098704530220428591267509153759148569529510111486320274413803259364397404650906267239990997809047108957035867259043943022720131005870208908700494491579987730000342435157908537109540507957945630593627818316168007345242341363578553258931337316270730679284598096262704244583685790666665548635290812571288533453715930936551642052857255598504607267439328298323008633699030593215237733657017871869652545560770719043958158352328200187992707943920997270462946331992534109762407999373474291725954806638899732834742072402023604808115802853827882896893695287899802487284509643810179182252756045039101807451595063229005510887671056513214193890347537289872083742490850586891403378599988054505776179443168295067577149133984247602215165079436493765201703000793280768491928691034951633145015955875480030396775869236572011560344076036263272755335047667206493845492765745232572912646034604722382053839038193904118149384159963190609134487265325035005798568959182270859147511715625616093664769270585475874949373302422970156951641940824049322687452897092774604185407433625038782864935376038007435067406192555591151769779042112614494924550441206123821640906366323811098210016236447990129156444700391098579490523195862728136732892933195262418162628263196255494575506666987606714707574167432710872820011032823982394072446922651145448464210049978737855502393143617022392212015997924757655821388201614113812978019296449484406811725078132719723162271991167666719859829274386732597276059351150529413647815457419547265269243168424341961303752311952067336326864886635792513540854265978415576752773037646256574338969187879409306711141200484830512110137851405670074142220209859722498732261660308031462475477632870284676859217873673711340315597683938709270713663956423690662820745233856708616906508527748813344302837871033416977875215707395950752354120246337174140878046565038990242698869149676299902903794779316691816552193482761463377818312095825163522497965514183141857259750291829883834963867821696610941700262489957488703984420481573222591558895623899058098757564458292057058780395979040316363747620794731234602796055181498794172711791447909598955472176363729015992671686792930398129011390449892368639297692959775281623392474221709949254417046920824477863300325251582241084808111285261718316920128102495196406870710287070463765914473943947393956968728224893292223972173838498866332669806550685168716586542598330911694926983598553667528142900036678841241246903728241269418135633967796631826087441588171539757920763886506665237314420474344456443689922100735177160436953606774346615068411836008095369982351135612720461616902651167524965764930184418536967568216403384622108138704247838849502235905562573781262214848808058159951845069677299585513323775396966533798680454950485735867622823912225495377492894785485147301117645234330525766727778622492761199862955188983614512030320982379768274998718248028948908326046337350031965391699652049221855542803434739142774453161878839604216138660318069492657247071936943995651179071632001959639921944448478688127356356367540389533652933354298234871072547708353127567542745181418296522600172346916321013326353983954847190043794019708856839678919479626275206698590236520913094361892602934051783661573779610583026390319161747184070570120162854036839622733245919456765724801787732935753730382269182037644814774979218889227787807359896410218137822940697253141015986845305229952309118486919051508340132122883828529268562759317702945977242373206218191613359982002091211583047466313526544431450615266988883601386815521144744901725927526649646069706360520260076137863561377202401072479742820968982092819340193222027918866290623239183195186193047819939758761491631986433188271507627312175097903083101983540190214238786020861410241640344494321731548012995303421854391236820423431723742413245243306430703630544005840097643482196248822787126992185855877411486483937023734753660799650322271370611307941091152906546920633135711944770626597688660622018711991821438215047173866633229321332100440509293390803398925790932076329449503907173588014915981332751722767635377015540319036270851438119854711627579186774265280895864660071262389575256275980440970502172424731714879316486356952798762830294280457308419435963699388737871269199464899182810005372080148681102354936564555412268821950780066306211933978701543833200118095784272601712963587388503894931332808364148189605973948099499117126396235360043476819571601280019564485194743552831304793915632405027563024654928038975906002844170785307897589123405071795690544670163327464671795665815454410960691254466986328050363008362084839179529417368698079378355982317080519138754073996987077353577330069065630545167914195776439472629259417495518164481035730190961872039919270709116758046918305693676432186924841571402524995161222003009972030916689894483932407144306927434158233326932811604690638367457664629093017296959325612643773770717995768171413786952340668489326439984202230335134637499111400856480553875202726465730885911451560386515177319619944554227943463690592960321806399000780124670282546846690716977448000744248499514379605716902097306451849172851546168090669099831202255859830366975414309161174582419981484545730041226655651929984397563274184888266174036033947922396924579556792521476539948382871331318204609204015599996247475342678102708634456187012212014202736297544347139344744845896221069283204567018163341876713363746439605400591620956207328947362088577234298244928844748469832430857199392755133111812228806249180269026377055381980757983693069645160881444196796926427949966192572796332788768188071955491545006239684762600283098488915765476685915816654050296825628185952978831250997527184212451953552896944318327692526400112929209226672237709070000404843930128981270507069150982055682311946228983481376034961896500447608177536166822256081788209856559385944965271689485945176018561397702383425652407163764759186673284314435053936242645021271675877226427804596309119824731367666428859593304004451146554091567692425635736585888000631597792018091715490644621715600410922811892003390273812430072241336272578431930767078310089584349881204290554394541009587543561448373760962494552825341891721973721433357483669232588983288920152200666384431774468216688435340599319631537183233110153614708522803273773311160637772611091188682127741752647973000145440615184100983227839618277069054349693932170581759963877264014221293495780239817835552794477917989456871881408413164431548216076661600571083653495233313302523637480232388843438540611157225342014193719586258000646392219425535296862858317392943470479296823519891930515425071102751614869304006494917890767036638912501784446803695827804153384181311764784943776180665166964794135559318601078236104893105533090802615144831977680491731694946746776426762360944764850525877703218111621112237416634346331915840521732005918163712478827741281825798730439114875435800535309161617820770403619696012378882301033527676010767949520763863018832614984415244585207622144136819594712177762940842440723629901936586843100729186125870124247270071700640510432949708106903016519106237465594684545964303254277570373186117990306656077298413124218818198718104190729295379960495992523797509045105042197300527936531155216923131162572854833219409944328660264235659461352727159845099430755853107292675848361509819465681662065561709341349783789532169985829354604284065707076699891031461046417730818750161939753670140393303016884412876335413781567853690796064099463098580259719859296102680896736692303697011362742840346296580586241044063246646701251618582144432330385043009128160643925689074667380801241517782075900128932712964567379692981361780228173593857579464780788342100553680023971462251790394504097339805897305312997604856957822644984514069704855087849800406756940683798861683905752788298286331536811849149156935651995875901340184826780409642949572750467832023765154346199359384466908338039798009814899236327455133269723650892191737332778480098487399465823038307327714945564601148243530966289257012446065318038319663979829959825058556847377647638445275712790123085555384618182591747744230165989092294477085486106480337271794957885824854917307428957269225398960791083845568272535544932497564944899748460235020244429512231326364468806704876118781530575681081839697483847795062632014699177087248001194181668832458629858278479994903123306542541832497784162344904127879483797784555177485914389087233277090772604198238945062498483488597080147567324964202386893382398349665525971911302085950789140416611180519589701625484139520008798337812670529722186044186373975517330785635197172354681671850573213759743985504460072672700136249057606985555935063033257500965279582836763577938454488771218018286170052719688974776005132641758935978967095944203634828030510364639890153521857533191448279997693604040169819928030104996436465855205167386637824683948316853946064224595596212843885037061128869856353359183013284281186095974427377650043762884122901900666042087468476906440263136548918595618167031776007925808450303228265936466383533208535867358633776922959271376191977728491348794055670290237507027180715713666421245836352933891891771770389626652208858988978677407226343680129670843182625864614493805710129131010678306674156542637440304900492932410186048017145535464697451224165305028429120922747784914764506478680391116906201114151860185855971124842219300071114095432077010582105116849919739016362790789518646667159485827762678830958354170434885251657747121400451299952367328942671426228537792302416879356698374401610478397692216660975471321736267193990146448016066637078907955663698590880577564638409103406927050594518545456776147105646325900428038509949359464849864393802409005577403378268187478178548659704468479305968958934547748581901913467482980996491958286213128732746691072993429951627798074488383512470742730424927105258504332851957354297791634790352692499046730378109647413213841504538293846532276064095085894117170266494215619273181513019920046508785626722178697765756745281127216776672921207025753056832749165294322843304192037531893582432562531454848712638149844138699954392479427299275279049311019386607900216012594196388827593808560029801947121489208193084119881563806788793606973822550065848313724090418414682963063602551355243176693285494607801696494787529534686617489331786589342428587927601349960485023398014166948514635639230875492155822354637674104200364593703334438623226001384393402780949445667765866886989592323327286064207552311720551641505022050693703829768523476608123337822279187362768235283308216843496501975566769047227394261083632992100605747584513720089397384812868626466819677122982111234996406608482882657837933301685094342698564083786286584900528613713899777576980748823580191910116621733603110934879542171515190167317938112845419549521255882561968159395049809106863349335892234258470756109274580529747136063166578340813427955834428377165881142021903480990401639206900589277587558453978695324963690780442644416645673117962335779069293536004657915207361312558930522648283823647851516770953238669300587987091674556816769487176447098512209026828744378999910386946750902103742506887842688209428111674737185628501842193149029133774381410148007808760040555292635940309276452392291074422354006796929022985418454711033673462374199290589637511320145424643808242071492901063693689389848058626143181296959230373819089833113895794597253299107010739587985988171979954821863113211103395176041862257862604774233516907067906465626430275391812807969920584902436205015337521598726246030122496792764274235551001135424852747726594043218248799045365473085745523168215137746589863873127112366518910439828190213956923812717328259274940036667406600785823587594126145486148394596933169483492579916867539972674716966878271394206967110914959429760463633433691275130667422989571423993619470819669110189986978961277727645246170489373927426883047031162213683666673446535647582582074054876621052114972818955140460754335974828257517196612351144558001906315502432064414628319407550326485536825941791214238462592990167712149862108212651490153813095428532082472788473857120304046176314456476967349181905473788720426777715886955060306681765688918199159609909546134240639819484965112323980435780702233369349676222967220891662143216601534551154007373968258499277606652515025854628301517839160626606935090132313545676108208228142118536657817053079885035568247486625272773920409156854149230333022851075868068087735964606573203251876726791193350234994330328392301141275581694842662198072294622135273937588986957845043037687206543565229506005327573322544308564137339242225990148319670782082284588574599251257855981017609897621270626376508755502118418815333992101195134140507564066930257697181483176527276893689246031809966258596632318870283788053167264186003750630438261888866276238040816100682413448252886939549165884008890169798980442071538873866213680302934898231782966605597264714676495444218272916804458950505763075705643897451543975574278429815895625267922847824670206761934303741832102731595574492896836684051775538203667837916068118748040297329051229620236378464107155428238333868912356874062732197196343584594486944038552600253090470439349822509901891296866944993264615711178185266727076304814863347831904742144741921135687087624773804205480399394348672654937105230838401507832666619456536937137164115842639506738386594769659455881606496315334404404764437644503641134692842802008032238568017387011742368677103807065874473167880407156138400990236775176916099542535679772838541995854952519219203791348421895952732580665918946038734671336896866163590174435786986388682337217714201881746073487106452456428154004416226274052488713565576099349053638560760748693667035188127065111232840121441663222597914089096841055154471548920865590186177122155391047635773048236592743627045311747442865528266123744147612918565245121319757780044254877809872117876319885294495184906558314120815256609674031874327187530384943293216931283507073076812930657639440188364418940682752045580203398416463143132474187255678506372299999091609342720636713499108549451119895590029901160284731300208277731351943852917671738221440432731023722164724266326415245883340228530145877498088623000584865732901969936592882708290475568605883796451358394228074445367891612860362576049145565043976705650469639333532429996036455821027960784196307164303848242328353295683775344430364696154109620963774961302823060887090574908513544145524979999686015403431802777402124082535226148223278294073014826314264082573619262024918939275437272634323825138467053517284517604434981458073638065885942727972592476390708072955640088873080155848119761816671560670035548324237666379908808804071060242259522351325748537199946543345194431997605345395317025694146661418835793149100616388004466723202505044521932979492866625105745198398298912370434051146998429453241257218334177497727653530533431569176316526002907400919541582735971541138858932303161852628587554062010256013397983680889291540024597730301900951923125872068589857028967824275716319589785576585300673769444548391661747630746516044971124263935353763069908606473231646130912417065798599344390417652832659529957135700695826506259659400549564416786946355630664924699829795001086688061218255596280246372645261656902111080646138025101466231450368665383426116021252144650530147033698116882265425355148777449413976419434882376523728296849865728786749583477362719743976304723201215912677935794291022291364569196864603798512054492154200781747034766975639633809945846469891761993246477384142043836751942254772864714099732913238683820127670967210099176480883536164062491975428957602567754890503215678422554796279903010752539894830482454561718110667387113038881934197411191932037290649537711312384676141619877896571834749040614151684605757599924400595249352997647466986283100064624468313074184514512214151870786097332671592866456819316109568558941939540098091280164757670831315391852143762321773238214820070288895934833963558663898756618427501360976321280748937156963688845287617414817746662448625798744672130362749262197938455278571180799330235105627531890317536642969202459155822270405587844442276474673252610630071060067347149009087117590531509618502911077031189079303882875036659798948562031452646660607851385649578182450259244274452442200501449996292216670607039806955151455230931405292243721925531123114227324229707895864355619914625786710480324762687645720230677954290277998654425152585492839273482590861349360815059319472205810873273057617662702819991047387910005167475600499650808486643603407290848105990349226991532347934915741161995072157629813520107650096724298975077825827156438100671531272653697626556130798448108558611247698546911555320280995647469812727009986612433917524555310810724726885361022447277460898571672670515771538321304140760057520974607718416422637309405839370339735508914774415765811548538775692714907982937279416297953875433026633106368095332531712967574095941874862997779134533796767388349861518829023201359041668377252446306269480363482359365362434945171742028352679318381117890476669037547439858472284995458106347582311248902099589849816587558907529771934773278029156720147166838267475053156754354892907202875868049144048165244499467926989695288499390343347963995419420586086837275026130200815497581636148669748420327887625330900322765066908185275559455513933385461624630422979938929765996431895351711466349027996079321349196470642054116973203805974013184879112867250803838054066005853642078166942979764874511001361437458544873386498362028548607990746942161662744243795570531350599158319913116069707369449802857061399515215281852053671561379846818035779639122506090882049815114923359241262643933825195749957240712258838593890998603511730638005481609451729195153635217817575589774550321898874550543207413333173021287180757696017055745153958571331442111842824624655508314115395997353800618260922487766821748588146983151453292534289467156993079746234710161153616050439810361801543318385833181987839586276632858183571747828773984608932740390311232743453249140697001451323080873985757557836872316209805139331930561744546316376495627785571957188520465267937254855957136425393274973421192156544792713696083979897066582622251886802804995189046147671151520027072480327593886864007525125497656450139366073234548429874700889444919534147365620996909047645321597199029445170845096868458992434278194022756314618182674965402621023258834508626094142099526634565751917060294399495941257719625063786716274138583182294406142852485830539549346577648599653618876644753072496470159759342752125112380534124390608389843464166056055900271227876932918842344998800009504509220840207986144644501057877358547305718409741974237645157194164915240084067127964705238067548923771941897476789103564459936472776661199304472521851644775770532317760983439862122885119994842954601906420467481987034224738260462802374944427857958534757514104395282379158533596855436758752462952581959507858750269257549430271079567433241701869228246960012298097549981343351386480962536397966239039972322657403172198067883505821629944318562546140550108886628628866204533841639971442750271447682983236208214583449388952694414539574557479876554322427582820867858135875503257315836599260534354682565561376112579152505967532390390733413002459947701765062617176707535984648085249371600153838926859393402604188915852123682473428435771766938097898130340361199944508500206694427305659535034677207590445318355359812925404090685981973757368380828208505108861247605273385308504307694377775493838030768614847578382882917705085170366862732068530252275882440917439591543610010367672742733299287313122259441530439999302068448215671395109807570310771255813580722692437251804048265572343980435972310018077250361939533390615145805224991174029761234295412819657372608497111134083224096403216710733781641815039662385630599131701661182649922996708489954142404097638979053008164383327477071235709676661515294496917921119116524176395883275335459102565179621905449161709150477864374360044560482175198724304839205239137555735735277247322728644231236422761000592057464068773020790482580786696796924890938450858853105992207708828882881719118135866610898686632987152796242433867593523311890563923991977280688532230074020363568986503331406760137654939034482788574997358959825113504906325282459797747052087099239080721745285886387411020285903938376389974214611639167194599399066928783197284497440466671171427770807115146307924766254265188570396344555557660249563426758947914951948618330384225586189354602804514657073298557162809754338151635637100371559660244362830751921852576303656084059562526732430662292574630424444134831872892374093190640192022548439344414149286924982763794165502813863998074479030630163241604480891537743258615987894398427239517142963800392411879217109428057651553928849743865887150515930472556317461316164331984584138977610835148739364393595510457718820188666502497366280738036352935395890538478836925741173913247385951384915708036026600475977662156463540357012950048094952431573492485444973030293852540946306924802347038604576581605680779793710185089330715228817736476674332138190169325741576332641934092382467699042635730775330398494752796826224223830500419541172913759345627261374838476192872174038994968586383782016833425620460938774588471868953889765760695037168700234970882709545044463995862428832777865654029323706839018508395534537937892370960831357488226076702030423429837400361369885944871753059160758075048578267507805396826728522058746760130712189429230034583164892591211081611926123808968793132523254749109606650811736174427802312414118722270497502305551367416200736442726477938138936839130543857557045582325652980218095937232591238428875489708807503686936354664355674616028246071034821187206663200447976969288581095296692310901306038194994845107027424609352374352451964193539566422529821022041841451895064395078474952573351908587324695603539558912382326085163043998883338930167464858965871653683226085526462829481331720630887546796798677347504644468774533659847109791781031920628806790557338458226515881263894650751846936429841467490495087524944922158162262970191275307095497892235046267091380675879401560210593025100246201089388971093633088744822560361566939754425961880639749326414188490485767140722693666894005880940540562586363596538035379132735319859800615034192550032468641803193402110818378616090465567524923955675977856075799503588487614457182872980051110152318439039632931992409153051657640193609558825381696458655625271923395199969232137753746243210052172469627229284551603505997484758886550961530879443377491376624008588780231000859466867724956604861762685286553471890562582359927439447942510285311450892325879622212660885702141158779627600833892074110366681063619699583005616485945681209613195210034820649273753313097449187318954313080261389069296376407210641614503301071442870426507375653083742391269443031677704799638864789450893620854580758263855588539576955437321530532871569226176448890939173263351832551745207730712292754050010157951890012487989519320850524463808480840646313166972422877210930075643044395291281862320376659506596300204963431346074900993487560672779138033085192318966800118599657398028594618131448312618882946426988106436043762271657287463086276402749003551612991560573544097420588635710219269485077451613262350245473124681657755369623514878690089084331895935907031212947709545675512391174204963925957290216681295787772766898386469606453255708135241245831325476408820260285781124326505496043018817184970030147740270713756974334553051673763889852977206500043758060042589872576818154586221485277946103852410202807568567435239447822336685675433093608363941363710540592906896121180539316680550799416694305345310104710578204693851546495703233082851227706282831477857197244488564759311198558940079086776850645864309754465109126730066721892967757790157433882358502403192330299518851259104104784573241754140674350587782955232494490811376019065278560949089130025041436365817078163719981448645822633259440516165990959526500857689814261988404473661910648378705670723379437155088164455303895990555975603371338575332953038708854965379389213964052711094044438876155648871556419860958612737697501175985251917060087885567523836704790371246446418600306001591092884075179765931149344737978026541795656996394407833627907529343469394137154927206967904144043745202989166788099181858460561387375838525179042916314293880267105815943180717859889546574641275639525067076738708169973424098401155441448891860104750536834017048548741259104598512014556348556753969229967973499889933804555452533837775646655965455039840026284941964758060829256899393557381453387829486837084966956233651154133552094980081793710701623998013991116345319022270259080268000058031034335560261141384594586150676803231085595575371341155231526683109949280900806359964469747787665012699592967285838642616823434579790115366001933716540659316193817857316032651931697727458010664936414794870639751535659869236122042981136733882722668249632317967033706201002810425871765865403139704786035629569407294106301467301075544274553893927927255514405802456139194383982504216425573215843065905725490219678777781029732204520389107727725974591068023764380115640682922173964712917225927958945485662423309579521954178205898087298065122146668369390324820006777900121691196980027542549076723529126451285835518471514603688514535753011238584751207132888455076981590820205362961142545726352220633890803939908178437330602308956060739863086741832819123847912587695912061702874552255503563705754990055439752118883571619911025128396720619385217574184664823834403433601428638447443630009334665923703490109809975749969982750440465581807838503659348650676238000990509229523890582277979898259231578567892306635646068628474682670511098461634358084452424754452979133170019740304125580697802013572883566108471152295669233426864028934428284600899051185379399435035269504440677577458228993241609781181660935720766176438445057500657260383785254569545315465961172547970745899338367517127641308456198963748098953045297344067079813954828418272561276725947962195298815020498857528080770901521065217355097344621395062798662208397262731625161745550090321154029349908453405573623902009636892149506445030505969464367776862130526517840022385521811039511446487173285503096185774824152905611381420354071247083965834729258005345504503526211437750366471060157234075007252060674018704378928495300520790147526736265996139681894708031627556304440427297644810857877429837049945530203552952750656252219710883374785339079672084954892857584832958647717932056094119676259024489280863493585672130022061568906055293218971459550063129172687425173105235719613682783504025384708458786719486668596753424921122466283833886868608223382972793016633948941953422151509438634539279641275820569209763714524594669360982244338947612084652441436473407689386498481052982665980931101392192493788853203948777380384622865435940286042308035756891071808418456804077586457800663874709135236113182689095872482427942910275085145815567987442640384452648714119453335759852172055716040929127851996776900517146479728938443893116913174130593685285659625631941833237517576334142701174697535380202771475598779825151023218277097923493537094040147739621572266332983733950083960999305632663718989850382711429328137308535601569919098363594129190263724034995922864514028968823180640240237984556108170952817930360843459744124896899019290453736224565718669705506934226505373242031566201557921280449448226904825006838619919729890789773708615071663776158437623612087717937855484781881000545907236302610247546064993280924190911350507601125798715298531645929597888507348176034045751146943315274716628844868484990490035441232328330847263935567233090147924972122419477376932837515315785031288563516590616524877243759312797432684076129571264092658828328825252240433046961129238227473276747768356812625018381856197088066469361221106561043733259671612910835077298496434169578499684068105877994822419445347618124694521460849789818657583831705905699702042424419683655061860744777415305877718075487373317837731922853961213745481842440231991039238609371316346571353847346680326265116441060486244667593201488318928422747674953867285958169056253467149489280796589279655978591270477279952618341632655278069320841733140546264155489105950253353790688841781711949526443376455126050852627342188702236675481084229896997024742009545904455646113520744771509064651302992311789392185988416482938717815246763717928336668061310966147999966800178015602378079330276457338125547777305476935336163290725321335309480025520748478534717730325742433794205009448891281167645294438253025589319323905545700735091500504491862485244414751213984637294107226110107931349313949406358899816835243860487775211186368543199681284135241962704753948120200362154645876090123004299782414907418156156825608912685254592016975663410854328315925961885786675553522045842015740799722865099401538872415328826408307259041137295477784833810972636483155277517365921245246454445919647916920073198002592029906244921037149716531162318522696335821897068009910721280645722560567317418071125322512966370061735330734908029897621984023646347092323866091201399557694415977289000969366741941277078725718366233798873568286433634434999196579904478697075743879211582307055513826105242170629975184647618844765385187140151903628898359567498432621764333527956406753186174113833788322704514635953864728923748003944348707578811372786204977215240980213602797241689215351756577498723976115926537925740698202773901223310115237706800529195158475372760425174280383907201345928572204974258857152559035775667175553406502118534877309822909963153589528771100920958047985003757025110505085899237089735959302069497543549499429411479289018169157606104614020244300542989114578881608525182662500697664749882930443760443092939053892515130937116956817615883615573291335583610730133982106044719772737398310506700459176454702209784535598352132784060527019374021800753791795707356229807455798042969948507121639662833085913717010534656294435178371212842711435264953486018704167618823907560039982146859346315568280056288539568725855347728347999630269883101056939549263380088589173207026249948195816308538101646219479830086230470522412875497188281172803289323389724395023893230689839884114464898834552948764819241015483110277933465964363594770254866995786636615255457757228536213118981870286863061405651133742701501383795093247033576440858622484372758980165026844212256504579122648989271511289193265973943205554222998972715798457782258566811208941502153215150079807762398462974405022609671416989732371494133553629401133997992966791333775235252138882297712012884574655294163926578129771139251361888904116838872952407756371045082930209849121492154056839881012051457120068104250282552022748295167182087916384461574571829639997860169855467088681188945141197559552422765270657675894595970228597037271935018184988529221501429265282317691144822507528131971110789795129893192913114405904143830487567648328884213355828524588125712468815264667402517862973843407077616130690808483901164715214447711437137115327167282275338737675785818776999941058507758673471447087583922313590878473530321141878272454096212208511065936054856988992379442967662243522945943797867146321385498340925789149397344549517205511634953167603563164769415667171543568586435388887445194468735327732021385705394309445942895219075597936563577652564046425877462569203115740079414531835011795270268191863163163996037176121821270144751475409014409372648448240439637079228410074471625613593429580423413051650449340542435990857532818659392089150392258103676896882245769944498969092868471110326080392430941969363629600135879042686831435647875112280067081889248119608477457754405052348876115292582616177156842399031519096246431668755894544245006945674554103795734325310792228465201753948857511714340100156871562178443511785298073762976591068317771671572421452763069926315034642652989348480524105542704141667370630812364435393809347137365911864570417010293892698211021486161337817711897884029043942782801141498469702242838182254707661097161485293692471664868392934644568117938351082007233295024768796815242365730217788781922305751924954799303054608598802157149989748117853351843053341982139967043095169097963056988446682123566804451761885753312735884448262981889729906475995524906518142390401275007347721886580781936389874017924741908862166709013483385877172028328588803507915174636772042090823902167407329255661951544043291402175069344142397534288939057767474239500197129429763294153094711109155641636396508897462435803273876961489982069979606102300499388966486177475188639322864712417274294400205677169876860206514703605078716008544359751722369693506510474546481221397570379836543434791298258347761268495116846163141922050767131474246790640404739204732540584213096561288862190516882663676126152746071214599306023899949920749018113347860659975613137374931123886414616729914956519404913013672152927680035924685142757613076910983320441398533934679011252892180850159891977832084224850498696222141521449881010302225475163517996681874279589628571484626273631921606314474422411252206276167330825783804804379581433150400113680809857769848998820740677966384281803854279401677088042606658106974757628991427557639819166120822532946032454697955027992227935426164020658205549271298006897835245802403669504496566151580877232732883777446500026668429643118189637332275935246371228265490983527736254183885915597349730079428060209356896491755460949219981985226576202451896553115505763821425394649425988403230151303669187759882836980101684020674420474030834759669713663741270519188919747281354401295193246371372711190743719388959178145446176433847140258807613239266306395319359210621980074072080098837467288647234398734209088434650986199594187790581121234421823498371874478870529839962703724076936672710630169928012124341411228767608078723192793918967317450091710102365034486165325426602501486006085995711197561147596426782596491630551882789016405118428468151069292039254734889672213471673578693928065462693881476381758221052825433446988793608768488937154796437529103690062402339433286969592069502852087361841435441921226842714717648002194684330587853334347687601510355336786532942000092661915942222539428513258930014208462832882063953102947820121799700519157142729406200356009779905631162569616060515994929510772006267496545697779353007020674148969229026067200061517648118061124953881782784067723796084349802837653740556409399119301059080437245375848287408891667235348848781643432071584621461589981642371464781061485265056854091967989643728966616926753444416622530599966398007779942748722464270379289052402273086561881382791445375876366835106143669042723028353744652260809910867480767687349232516273013984135361141636428295231959134991413859584499496262749297179241900666874111282427990320895441995600412946528586573887352030257467140796841779397425746570750036753985396747530689098943038622817654599732295422210275815062083944484439181208892117248680897628988940096189110301121094009255397856191176988031709276830678432548038669912947162691725475964054084256092989314510004628679459636231648386622212258299622654399269101414567868186115073014430285512832949762864580321132837519393389576098875795006108372197138826344320907834556006370078635526895153643315238274299382439954638424601652504449632135005617599392016869757075349298591183727993721193727903422821100787595155598238476540622171543887005657115335935965967582322624123988742132796905644940495406617128066442155129748295987489330523402924849898189246085203408144836059414457853416463821082143719582299871043117129208986481721614065928855564800270687600494369244730312837966356334863632729698101661426194518300191211760152040827753843754589429210149036720794345501744043129674959853132869797235254751704572836884748637911450396369329368818696931657428554149159273067032973114325627250387024666935951588273896553683904402188519289980239448260228536840358828967996410495228927399338962697371516654774892352635978632835025222920183722066790195481331496382374895326494241649545193701770259267021813167130216631503290993333012160991867320865667600798001438701651701688184762054977527928752276694452139459749627107395104540312161010145550544269744565819767812399965310684942026935967070608192861402414613476734959829142830202112590377386696445652834803343189424574871988792332476013279715988590055718422902262132710838977934134266945908956927919230922421287687006542287295919503934646504407387026054603343412744239386996216510477492010241239892779312629990365050145558767948580496780724346357680245203822763635791962902245937738758005070456686179109696665901926654629921916970116199308745154193418829365910774358937602024697166686711640070044313115548095298504475672514550332486618206207735483935080348340181197357589540522390890745307928387843436622328714223824801482742298739864175458049138586997439054795401842196393531951320099249243951846121618876020308948875437735598215210579320167694485782631255823295709661751049175011956470333780429295754046363994652661490046696342876930920153443128708119853533396713206807361493603566338529682497338617178055470750409645106017323587574935985413905487858941336311447146920279370571875208704180223886754160595402174611713682223603888432083745673070443154973572399890702146936492559512226783387417245521846425123144443592836797600648742125115618841862350215374452547983151472629609206341861977044026642838802846629599108051866657957028417650452228442439340820358710977643196062155322678027733699408089094042281813608061913427211165982017773486287610086262811088839299038362185986130868004475944540314628888398661438579740287350087694848876582798042362906809710054191080160219494848847582750722593424451345625691333341044658679438203294659180347136298477667805342173280250862545913045376102062690272124980760723478731683462166971108495051988580069162149094988443570358254900628129793051323510041337142964798171325398854304626618169153627850452192640161481699769157585356890093451100943478654923009298065229806084672622660821401898862054729370959037694117007526277667067638026532312090485761927729641206265280357988642917597149859118917932119307813413754656834787863643703162613927742482102009421178821877601567265308255001429478916703904138612459088846795421757658939072140738061576244377527731522193995341923313430315971894275848860924853767913122592060178572772984290700932798908968686970763125316045648509680510053301303616941058262078727004526225061456875242956488087351172554689244896160632920471667683620027860929157093105533891257686427116697080123354473959054641522597159814980903229612137599340263073213924418092091843606409314633696400916149612897370502358830090943176777223727291332951992998401181068529496876261054496806233114821703805559459043795919358220621915075322175487497501416081558331761561908775334227038667936915257337108952423790230704415365449697678933278413814726040151317009989274171984530010578380543551231929014512962713401859004711811835695845791334880164366097475646823888879909363136665343187706448167589995103731055574368307729437170194048250897181240517519626475754777069449124540380563488344354022872730396705603411236700769009976393028431497032736597720815254383622249249845011536414643129802025317731168474837166443531024801916615416573490838555950909228052756814848455883438627417546506930592365323638139244545294197845960846841620081905753167668107020237753428708098840996026634746079260601607511495386961442782343056027556103738427576716938950779887481252934152633422962557090622725616663363030641399098389676717274182581821699868988214504137390878650003239769438942651874057679433460591584666372818421687575202959466094071609374061546171314257308461572334605449187654736122162658355827357518947180903632033820931934305250779176640955605496772016099904129668154835096732497900885577943268532971031520123966931917549999851546265437107349926529283036353624872306971295600835418686605107536463139302108820754696485474387720844991850758964839928372455818137994552126016365909781650199837614520436557456438986844445052136525063330671491278678097652020456297460110812422626395143734096551401558844323284081211199945663774157572138801857574708464512006632293349686725061510956591674974752836718205000330645483515144307746538512244534067743849176821817264035241838512437013064687740135495778530043817263645856226242371163609413403293740927015387441546447276465222412778313951612473028596916346733940884105635699281204256261051608222008654261773978946458344859936467244457621867267780107702324102473370136578680835274866409356207138628893740896270749377913556879008202948061198567394098762265777606436976120411516177221670984931695272608617732741798484542716233084084917955900268240918110070080990678642448058680594750659573591663343235559136118259289455532445053820665605846544702362932116201464575421949845701019551625412169634682673851401976442070793979118677508535942832560670457450133031046028736664407183005104562131332123180005737553142381598774675218732694447481028517326711863921480448579935722678844204943639889756115471213266439630907153064528260122465058406365384687045558075821966262717698484588527588692535932224951429105272418762683108882059778180228036109005783360285228281509136556186652856010737719350768545374263234115180625250757341393890689863041717599650087897382163880573634098264891712323638525122199355699843869421507394552143331453844633824641367613545939978975450108234574871969651996962905123889814723250356206415840411842414416786453957995939323960571967261751798331723140285741675744352027325932023481594062031397625651173476135352358284011704320419138915216490091614102358477304774339820942032061432223786284145382578630690124728152617445995848109253324500671370629845555634274223042451082435451482578148756770893200677165905111764309978789128723523895826684621010192032263674548194692762648079687335115381578539553573054550019308359022554255178242856031710301327631090474636611109398490430106629819573648564039192069011483120735170150115013670484482766486305449613995870547595561082284376361538297000797545528904170633024647943271520222907567356169681532609603262081906879838624420479916933122681899830752627113714425943454466933374860233788163977274606582035432929671424552576477289944523025127177469464918260974616475497168309393441436170591338200769431976687296104149905362602973997247214594073723462585788555355168297320743559506529439459117547419770841131729469154603825571276103373917100866960637703417301783998498025184257869743093953251773114281106788230226437282304858474407616777617138435389829329739985250298547631800823695512598351057604365259434477501086011805304926606962488136431315602124571720361115994850822419031645882603324206047295823390358020522816319852048096458206563245796740432517513783104304878107698592674110358375600853389203498293705153482148278862225915490523980159250629635315084561392608385514270612755248162973754665080706029466454760726801776703452328893707194442557006337821223730892706611129110752676724591968922926791508980878907987505339220747664669863730379191086782120300902413750033646710710442159023754860403527114970501205764539811662170912068927427321754714769414436838394006468884685702632439069524016754728129077613916436288157220379754776844890385965584185040828527303471014887156024401666816113370904922592901242546651009041736733924208627555012160279252585479626502242682412429534631981127637909082076231096711949170654803875509297989238486804931615913336188781314639252696653943635463125666640295914481709830718768636757592768685042265729181475934896233407754591899382469120748564317716534437472096445132030844091532147269896317294884228146888592944773665093004256927633208057928024911443108163226995435956597413043541883712799715552728128404598291103030956224414340382377188787883288426794705748836951003878351097480468980967603455188837928088324088510751043829144402483197598140660088317881664737226198801769381917045147627428123915338938235914318825397062831921390292553654940457690489136707018316734472370574458675076407313918571964693233263875357123014655750358949963665432246515903265330321423970287763796769289401312456960549591111188634677508072104081752073427778773277346543809383488309604086074554608706779626593656212660533003402559564163295315133162769061342790860294274004911291344588178417385967486611958604317949439017195785885501026020154398571262937092863099858141406302442210471084997864820379561555828597684393431807858745383070731956247277663750276712028457337468225373531461997310631512993029115237212220568465046951543926595962789890501325639443288291878086870599632257855179445512022856107996388109325106071102364721614814026588170571690829524823034943074536832797847973977422238111628031130020028562247026642132497381750630670608326733609301932995528566735555191449159851362300280517101744010438948643766931505209725876010728720265728534235516521268638495276337829337320708889316852157927783084310059897937735868338817114363660706792885833438189773828573087320144980074559685255415758856231816413962928975432118569804815471809735684990609273985760413511966201574250414538624610846190877486041342866597607619332555571640297139353177266156550306161466610273976294087361005594126368440617970799842717996785814361102771679316256214698555096392745951107008473670668997661894968009286780620454937955461566536705510727470912338191722509805179362735549266240673702291370713740726035709535571840616549696182165019682694540687147884214428032015634224294927402870984587143595640281373308469729461956850800375577014422420974348735453589861048426337934634083851031416874680124796810347022632104349104164806789364094272642649059661014376770366720609314504666625877184824193359321622827604931190439710710499511394780636477190532333485082653089692798604740952888156039232177155147168120632184448436237797064348551846635511264383884689603717926742848823873656703331663712249097370260156522257886341933975539645333407549709437051134422538228793040230152406757629238939034934670981392611009918046751462751462823115274809578196909448051297027751649245139418274911519249642428984201438498015321531809761089718247032824165222355043613142952423170777512866469544431808840755372792501138849071627957180602542615880547571974167806649390191152490719259606269750199835616281149185264673644845268169893426001417582478142839445394142737254337328469053945929223623148085642169156238180005033526927956116924476509072096223155218569567956208285435887920550430027812183632114573269178834324243717949455296803174456003073904883608733271848112714761047237384168711154508169739146092105362681263111410701787102430026653087747685491070614986197544454217204883657289733956564124819119540243739846042918910617735188741830239465368052509499560391574590368280673343187823506526613953951155916936347876454339955076685015702455318203274300591578462324328424003352678067229719438764258723051018698049701482446987606307306812090771659016082394498850052415971823004954404444054604927158478102932749588746643988511811739758063886621019712960074115142190526946837066525010295380791806905841209797582284756853841331008093846332402473641759771027175816829922218756196199899270996807518876248708916583187416490709231372538160366922418897594216196166156715257453712804393741980871762830540581806381550821615237454167669439740985511124025875993988120443487579037769178987485976374394933126155547172587630113491017623748297224432664104846383645100775473852832634652457350086002120083692133006663141076443518480982579722404066684032211255277995783070224914529533337324774190548246878357463040362997465159734236249224787291577146245054678933678927110445875756668696566620039926460592357499957578698131882215342121662286115249260385230832709681634095734708918327688403362840719238082852777257981686795894385085251471981517884586532836031854837941634277436319298719207186196207790161401423812697048825050237852208922972299235601157835992415927442254192648675091983660372724786820514094626598934690855387435653539787866978324473834246851016627674850903365088181131795613970434213015655591884225128278468125808537036901307811236041699799782429488866976966325709464521223021864879532013978430198159213620760784958746846848956832037655829320425110135878039738310756323567843344112896731192393213157893480854850620743411164827823087970608068635550079053782513593877287573623299697613556558700911388260345241698769779277328172299781660006821875503512697530863734886954527257340812509321266703567596589378298557219835708594950234925490841376303484397363975804392922413214314748079775777576722981326934109944686427026318152702862087323931474171829865106758051204526194957226226110375282537797986091467398982298555264049318511456436831221559127436122918534765663198042964615126826917858532888136921766289598250385396184890844093447616799990527989707639083527236286902588825662064201129482012475617868381072890925645058956605960280922861043930608082966484069084194980885850942994933486395261699062770117955746873552516518511912451720861618810977117610650102387516215514692603320758116638481447205260281122068686454895739905141087381275932852107375548339501568696175871797817272738777751617120212925284099326885606324486553521508636282380684771924067736552950955639526097339053404506920110535806165529228678150178776951278795210861959566224781969655432185093111254109504316821318968297652317991490872737158396796744282680885944250390606289444034443830829232909146511753716591529728133516667779027375385313468686225716557741642969291623514345347074438667853851676506818330672356976809308284784622440377121616711584557884843011582011105173182205065394061279228703369296504279980385603754857427313378924700061747733155564254866770416497177298604253131249217026943062488411086113659180723201641467337516666338423848816916428290092789095383179279394340616963487913130702686573664599903691937807449971296457275615970586895162178568558724239917645251860393230175871238224605875858193283880427640877425895648861756547907433398149654208317963533322025597116457960432006711028046530761322024415768479957829975735596728595456030711346889192554718500987061105169398838329896455408287361855155742474241321183134139292331258007459798619942333864921573956383130921116002296671625532729403428088264539688711018050829255902208378649721526182307282868780840746644499984782742768115998755779295270909561929915273984901243834786795086308400519907306365890187986630396834024735825833276049885253816230826311976237699658482948033591420461072283059302658727572275025094513172963563878512754326163929688794344328518690803634336056800090133980136361736640437215973961977467254190015471491181363368475713914788465013413015739732667281765382022262526942786981664691314012258905997273957662269814788540857500496026517567760905757751526484502291513064576959202685096869707111505305350830325700246515565368482286810112127276695497049329249577563449368914854800187161194949840646061310032518059873179986930190897153705618042610556272745890182511542949559676596065758048834047181088379047871895561414009116614256544330721934452556979543620408711249379515711523599883146983284515055981641933271522025951120495039850543677725005345061392530898724665146170234098507373861906070401752841824769473572847231648868713374185547354806660470722148270158553442699333943380290758691258266601212017744015170009571244681286136847234535025159653069468955741287836064730909695967837113571394006383777731251343999389270571855446578284579491704137488586030963670142720610877423763278395372103685223390233188898923991086263812014770500931335286252784447740588355693804353684861102831402045896217904476611752112308171108968428809077469858806308214295755182500177638872103866064854224239735270383551537600600265864519306784991429450674074883717355588111182443376398329098917654697545517064521245562049429211774125608540299062670212542581390489322763962364529886504225798877838999047581679165079439558910938414452849450967512171975455932572028384348071149012505887417522194848597083659648345158593058972849761905899199092939687455034804449158617769460667832513901135134490050982261340030451587204321864140820977354584259972261001934460216164525846208888399128562279152477162737774035847876613649810506424093301695675584640287761871999246899799010831970955409569297952544487039171160746635341025042976240645099314508237607217682964880188696290528520647550014905127505754592250639569593147515314787203615675517192879984960589530747023578995481503893462023726190758662333288822072187826761039242863003922505052488389868591193622229077677275059815661269308521542996383614231733714025059709530585734133843390892007625793068495760794858474458770214371612984854616262505240835311633830073338730507377304210427562650599918038274874871238540431712773895348842111169406606008929068986801516173826387277441660490533564743871301877749583442538683765884905129723033249819611915672966284239889781102674910370159155203305489953987576795169982762021106296057347455267416192597100874649139110110173727152052332679823015712185377169540885528148100643660298074875922252593313428238084961114615589333881156039657346186222813423020142947436034834608694928773913946894036817867238375654769500595776807234266310334680438619722038812837378850803627030353704437972914399696691748279868490804531862757510311073241210365365723966917774499492599528082242673319903133298621838730757126096704009284922105532801937023765238029090233929231707328420434239272923055925179866439933758696506318492855709899196239644658905961289906790746450201448662618982659160997824906083224039256853926189403184935230732282160083611831044333986825323642570369509143652491948230990734279520322693305759160136349486019396164065682962499400431453294051879288766290565159638861689138384040277012955453464552669242036509921407018132967401144658855395927972260247614442052529578707548041997554990929769426709138602886968578563976415644416629043308050285330646372041794290430462237231762452488956225676857107590256006718168617208909605590480768154698288475668506978775545080707684306528912305321115451193373467398416340796363249244718707308091824440029392156273068845094912388200402073539831337481694745070836106646098739768230301322168250496881293888238126640493436932469984109272145520273373829374320023003430474684758726926083757528157426013703574773389800413234321051188219045367476255286856697974363260512843472352849766835567326950017638049246226674732314679835923525719340284505318450461381883082425863855757071216442270263985941016208325366117933460951894820580412369088984353794728846564449939339260200353718977644294975419944462984308780433670992032198075677542443436415446866470701195706666106510465992224802465978731954008328589941162231668173254731614026666164790743133222672343496357695095189557354604528339298980781274236470382345611971063903097369337877892196952175854407153036542101971849645634878565194483557142045570472346199801668127869546298085914867452160343036828408771433698503253263331760010932686846900912691310507983199238770349765228738670780321481927641189490495251372207269854864039001173609260765565845796511608697023178543774031926543751689901884108443152567390283337387889549713602428315490402138551398246988810519777848073943864260308503169234036016666672636265356914401477859343028924665334075929369110324269234725359078081036750157276908761460178151299568502910343476533580383292140901946999102996990631396872750392570582904734560824768713244237034364502322077308126768294332226136346875123842765426175255517667168163417168073235636748941589775781758381056004058672616826150603651684128800624555321026787097209547644784588867641465722412985984761985966611271572285860300224037440936524435333450959994291343428085910631767704666743875878086886926387633668745570926964626707881880684681509515289509299059045777482396715256632578287711339212103834714644194035475073466691998194003544319596084444597774207090885728660555042810023616864294433939312103962029093813960022928364420793120709407176765434501785345483595631888394549585047300389102079764136655684865712256035296189986717283362344421998553083818970045686812814241398684431086027026987692516723109704671458634206662852332469606959900101626107335290425791565559034825720427448469121270380246841202151418885175149360222547112527048531779145671467511823170941056766246140596369152016586125890180488979325686290774170955145453456451504404845050204420907248294804939737528752842597432113271530493433731850528780872048249569317436491072388296909336648538335771444223802764759507880547524089989513003153221110796347689144012897841862454988873535342502325616153751858410221216892860546488064556646465388631150564145970517950448509865017257718675023183321815716439585256938161808933189991044639462905863069703421964333030410304177130809665949238793690396821634467852575255026065093759441480860738234276882734956513410958305010079651629833205370262014755490751063181729737222690438015172486754375292440526309748856263211565221324735146814824868529189849078334721267225580959343979046459338156994707377304896759038804791219365798959340570315063024693579964345006443233062138858462035231589308937384488316488809066847541780651182547258506903527812557817575817254998257435055798761479296474638467346409928784602728599714611563148177472195069344683163164366272364329415756802370803975626640064938149262172985332998194496761704384422607693855346827401272485407850660512033614997527928346946594225279361238875154631344309354445618183378173535730610314005324769477997737839202136214258398322390988764447070620690212814856057668319911370423510008708513140142409285189860729897731347868899033185609808215411382867681076735081570607071810190957136508688084915827274544985117096809266847980092306863328106349384962536965912068620070949114529883091122578491664699194906707272121855307286757797751475688095961074690040121878771042052357720246380823534104236827806821233497022119666274242396439261582768513319758513310507780082650909484390318008962761553365995322361044384940599831026127899116189540938279839253158762713643427348216904750477510226159859605511769812314298758408506648409512156810820375005585838276632755019187276345255852568334713026453098827237609331622532718555042402618989372515088636181860427753099728829113191700805121669981558953785773754983654539132825947632987106579478829041108969461176578388673278745962618433996107552849953901943116638703677585275022153240510442583283187796598222679812569900452708802056912936536803555863200132124051089346731385342632897635767039819441589291246300658624458457039819895871639963362068651671230396709107189801896045790949940958125834805817024174862389990087735336180153874717189859049260350977234041424446489425106883790369854674705434172579384794556037433333037284339385588543732383341530351663709454890706609746607444109170037665767164926095309954069273984498205109794322804385155884987188396970152996432440085631342818659597163426573409251335126220556267394753550954036634542927353593084522404435034532122463200240790605809394516509959987862907651358474135056137868631114989489514225423140287199342360991663725017223289355882847306901890181317411055290197122633393128820009918229917620876087603433177151560310069658266027454756509370557226638006109514852408495903501175237497428914891992699653445637356229592583156823631412384711212587885952886937251135147175254446174115895178120100858360539261036913697324008486229239868118242174183989646449175621784301800788507450960856076530557038357931783045478401125470266927656099616406698089544177145790790573662016598693658965557507123050695917084782066095363092309229697860219206830997868445240671123366845356976868371139243220129625484400177124289394364318376674122053435444537920352140890731270084171095624886159233415171737583657406347908423106757852454379994363335778917124130342861974393870903314099999713528124871093223990612695478377979949917763663635424609374418465857549125616364549199318575387039805996064546770243708726001242523449004050854602038816091207167796939131411866674012143140344982518310856738494033843998944596566970415899548051411996634914089623827350849029697538844882386633817552491363919240177122088967854221418793932184639484913756518047556340406107417011315395306883607220919141249824214388409330351637774485923935915593927992367795953113325567970961480556971468246985685736193210507585743494340334945887654831649986464045848558122168108446561649436099372615859419179185867162534732089422485935825074509297581177848982640399549666950396775906541288677032670514711247034377380730463972669861360660197059345914522208468599032862802936843827122539361026260974652350021219095860887760573001931708040392023992002196884788351623767144687207504422758483400471966873185736473722667588654249981975420752488005422316415551807864498421381022842732674430408773442939119305041279382886163018322361126131930256409627682368241055217460459267571498722796618206015980913659263129559095800156849072133848355331465229985126931753962692215401479636682926600161944838613901582563450483023526701066919261853911383587026261761687423558840572568762348352648835319323181364994979224363260385356248944790064315521983869279899219208950985950211270933054983624394827463705024038898815272683183170185136411009386379428471551120444820485703116418264192709283144085320405107995758937936980597616204532920945331261903142561725890659566820844269293500385923132365898987978674195581532390241300051640795839151955855099049576259762574955902708148138321951673871410708051175689342238683971636135945435971306652005387011862723814427353669875845975533380942636468636163938541134645122279847798521479473355352111170765306849857338190451496130572702640511969684653201854331633758146553942188961222364195326092581651614801187309604446838015345141522224893018689959804738975763898262886527600231650652961955376060273083246127782184338273945431393770751395904238090611207424816403615039836398833245031911820928331091922127205680648304116988198424713774123193048566158336839801529439426996059412004578845338023931072091974140562842401767210066818606659031122132558548223223316152381114640609202487565968940510551793743430196909092217455491792273786156206908722753059182039887266325286924674890796947122676335160031102819274717871759427829278810796902481169019371385853555279822960678337706046737004855004120033107606605399014372189866575647650290965317293729076082592299401340701586110957661124334799566232504497998520591350376989034650853354304320354177051845665074111936054563107386841298078023081378167659672983070412419893663555762153878873082187853081535345434817568708429352345363414353117413550627762137152178477539263502155282233697321781908369229552100767061431222457266268190991760885107159281733946637143588249336269761512732691169430186644411877087433423431271182403303150954057039427626753577372534105016682933558756965231559853962479826762391053609143878392806907921476204896088435057346844663683441441080302243313109543071761248986938593837681682982207577940908564036859711783799802689628581525442175655740067635004956066959487276234567002952564344878827840493673028438803691716880996359037318088870744539157137112680665472829229036637193692739633036595990824588123591355444544128769955901087349599479949807394330286458428291220419531562913590593922658980365112109839663065035623506797588035352799613776739661881935925575964132073398171093306612019726561635931526218527806148616825958294742971485492816119046172561487807312749431619366109042798143064428808416036760197180169281947729042014207143502329789700791870237856546864190456800398638704527729391271474047035294123124597573132228670610353786610435778236534962357443606131072547302559321021760129877746441424327380491585791075963391074712435078034851615847635720519448020824561466928988998905780439670360807273445943792361406837562763774775826566921392315879733871073427699246350346015546593707618577444634669722373044341474059748819406933864980891400377194146947458345916061703059626396990908669556131702546141174787531334882215545689820561497686641038858202071789249252816616241854314430745658657803473271647099585284386747737130959226782856487069549134760778133829917465863759107982887792902311810090640605446743314599584028955248998076853558986454983902733800181559965595664194469998200596013339699624855496145840722518116924257949511073996137547073822316312104135749198146947177653398882866849862377993722474430817896010617555538035492682677740389938353138744165512924824843170287535844515229060556923721332709018515619531813513829949481774680426315985457001215633151166512747161107219424174172346427994786900296678363719390615379302622629069596081569999956676167381134118091578181810163129838164296767846826955915627796180415126230865598289013972247607698271888212467349573501952470615826808264265528460608888670665070906416154052344063613948349382508338003997199008718941633246351377665308443049126509590423620666278150086906350248312555794939336355833275627479273701476812197399636652521334945276996318530710441539511988245578743186800831439776119011139412933131710808148290952291473588017091819678562058632985691579621203784821676299164420775352941952046328968409007019566220926510617134654223860877375718541412081761155624778786479837308144216183985811738875305110072760367331249211192535108098416431267735212399417061796659739825612368523643948281180873375438170008458327210410687489141650340084611966943560824626910405115399847338159284412112393648571594409024538240520463545179301187076770781805385425286543943530440019918286420526172353774209898346777753197079383174953784507568765263222113592890613304457671241315478385200248392695736846133030793926539225197470505640893366571425172581673377896853083133116214851487906578710110512207218735290420633353929502649001299666866907507660633059638329968858564958044298625782645793271237112261701754956342849876532015178523411290957488017334468938444800653331726780806201057617516584669772287692751499700575387165746265970656674392829950700692437919883102381755718020658336034606493494957386362366294505586182485060981678417159482228231438484282516594311077314962305917894543742018391581798051561943848090946925448048543719597269692792956597809535058785095479199957824702048698548301367432069343277982787509373845812494238433168272359259359100005390391352814273329468321055265798315695045541346493993241115165657091861031556590290722922005089541522763595002141120238000181871386296757368405196046733358709540083635138891783080609948267007445870208358200827354193838961486997167706954464794523822413805861151447927584496810363799241128113744024427986503721855907695842850898044567296350771103431473918728098841195011140469231456175760943455005822926960011991010148029115103957702136955730414082083898051184802980406015695509955275072788436618067466534945820217212961784101641041481684339383142109079057453684626080661549888042187710296016467542871946349021779404106633872888130393616234851915709498063853558781337044579619771688849477220337893858309785246520316688807580576751170850724043505207643495761334141990389886369282210220873794037632049494724216733027388025992960903226803596720030061015598287757940068592945023155086197332789964958110764103252767072405744075833058152683467037934145281596879721790460842787501245740628672429139107565586409995510461079930722826891596625492946476097292737061702401048364619446008916234298854617079019609548837401859302925655559565972354113761443381394608347810946564712080309769676320176887083046125983631908112038468643151406511522760881390646575844794744600058090676957923567820414330266718907213641644460009521802420496413472124056181721402345711197636797396769642742844910387545026177578060080733780678652762333849484369899200543717370517530799145812598576934209392099665431369563050746062322003165110236862101118767509433374939639941224147510878317288524765528458330238426758797503745799421483101382171384026280503963485227071482701772087906263158407356195596535805428334059483335717214211652303696840512342674920241123640301121540751990202473545780875507829342449523360506907656895146820692966843423397217750060181450007906080495787485712927734764018622815360839235331433839912218193793200986793506577847286432722952494973364946494534035076158255380128298149536338980542473153946806976850966736100332001085842947142411682433784282093691612848771577311445971992367296336127757913214714197152855798316146331489954355884076991278921806253741534377837869177536703938021072801611392326527048172820297412205560148669749836467051102388210707906345355021138236787581822697215453786394671347624183533807812972834906946465559151278904537289201323035388335924480248555733361045911354233356940867266405613116115621572710536161516411316598597885146016202992007312300676303064000752351027449586067908925102789616420054666165442415765163987165130663236802604325432900637629473695773795342640003015431479629979152115880264530648185422461562894512123672311403785988741173182142376686228526535294282554853368831862405483548782848710713902602215033748166774650965670298239670173006611913307222867698580397995023186965258063732518873538471011296497133643001085282455669430269797405844437651257002985003985225770854629740040847444646015013875289476010429908772324599747389369290486880919859622540610798226363456098113319410120260779927356712014610474514300584682322955788266187782173761871404948396259222682179475769678834736366893857564634604504684396127254475213944354587438136691436034063236120623803976558503917167347448338271042711694939056690696995349439510644511520819328352397489106426877469696242288692130832362521774826553700470076449877800794037177504878108113876417018449032463602060875838815728491542491432083049453858530224097759840282503071953378094169297487929068488408964232299243592838298735844746078542044081563935088755180386155622240639967562756904912075209457583123872014149433131109170368839401747138145455703479182260337849761811472824853358065570601429081346148841323187442297802187094423116298205529234077406150736386658539972088526449507200786017771330583321746848572618552674361205868058822791331831356007838220129402301163558708254457859480162745120994739916876377334471676480433120579159364977020780887364004996939290698220046421144862711568767834501159248944818184423302410264118165807265750839100542742268318335955652507223479006326338555769242426486750135103234459760343201280854949600626139660613533481805264959404157233621421715641444692933163837434883821550965157692216363347124753156758883807044372046172919597115785133197104642604513387767673136842416525921173574748912718054804775020583773163499297755556860409437812081495088107100788274143054364715892300149821093494599291247114204069448486996113297600115818985683979426708279374890499748395491626027958452348509663584066300937445233677625915359900544857417004469221358875387180248150254663904993737288125670662405452279358948837633647081670910473406520164440097946623526594312353989478067926707214079616294094389789216249101620125387650101380334685838344894486119634153418620167570073956595454654979445539546340780157921327870301110539045960721294547661339682237561372961652081893548979982725242234976544278541676130143670281116736841315827201245268658660149853155289140200722754087334776092523492368345011319509045038452035396312763891018749409062800074854728155512383610839619921574777305590942325831441213691795353987975546281473176636626705828449787420144243976243599706060563470068206115980388497322870257634965345490058431449761639593799132839263645531579200980483688857941266900052778079755168784881546262313507574340114416196053104235321145420646784786010339622410309362215528446624776624231508286860946364149466779120763773700681674513021196864597841541308891563054037892879598045679378307001639069716886639633958685090677693561922597584589647296180420855719313324712748558019273915535840472198961002032701062937064408941213005209122892897441303961086237092315981857775647986193557562189937921648406855224758823512516813801950702117216341837101464050772694421736747329803055808751782598822141017068573782642591018113363275485269073561199107770822802702196589817130376184693677061345531273301642101443806114863085209361761471306314730309165544332705740291548427656216231229384649780632838689993347183787955821446870506545532063968457448699399762771562558572194827800122755135960371955135424224409687254383867279442258703030663172919761554002130798202491364461432977156656112376928693823779429650552828017039849938617470873771603175409186199566258719174052433168540922998313948533510530312067265815767839927808626164792289041541629141652004141665151316837511067294684703428207598042531031549106471604844273506414116097961474802036895223450344106315164939182097722996603710220003455087286043124640604803393876932369540359372151703066069519747044924748533230820258043936312485620232869471368092588514712844997815388641066320479814706004003391538940248853243399519971014337926041925275680563776548917560300356058895481546236330383295222689907474875639824862123601370568081790228586749284924805311815181367000883638456928653499287013005467131625030847725566814771973225054392289185202865720312644042360267184147557100061914647563726795550036049056417525811997611898946241349743636529717277482697826063676635542004463293137749901598012671393127719025435480344989037487688109687768462984540177093808457727968056759260450416969128972202509604895437506489316865831212471176523119581598136300622018010369253215600869341260365228200396544621883757128252414088052112149083592764643146572494207919506478946892143019544283261403322045611813405310983082278924641458023215038050010571742976590325786110889147290111907597712987774993945347973294992761286070028706809968531018807378843289368603543814204172780698198507029923079164515614095621276671247355593738784450838999059940673422477492358507245222391726680202114838228133581385569213192669248131888390811469816494103244736295922359664284980257011407577984667364957856456407101267838924480994813445999731923934763657454415568843119634413193859051866649214351582641484117375119211333379511823963998712460808766801505122346451974880050543545732794893433193088759915444749393265458779167119557317310476140102053868283697874485312562865587752759683167164520384580210865940201435427340564170403548113347808234033948329045574267478490263863253249663590662267474619615837467039700623630497002532936667894877969401975532530145378513822613394932100857019274136184211157257671055808942347388255961541047496801275379600449264521517420683640026770406469001214252895315808069701587525765213726302154033835151369243021443719537472876200640927611024479075459684818320817869310800748812231785858636522956779286909010234722833695483322057999543258761829392395757968923224261513601282207125291102588440965854922884750136051874889260999476738662133914853164808184913181725435274464736752209415865896891347069563927369425268798823209735298468266763589663316615181395207159028860625772984145050926810113345069040054484769320325796743848041996550090028518258718695708538398508221594018117008761788302049711408677353277594371144436235372534636290336931515166780564482067230353903274061459273991480179090833653422302537975735891050472447675020674938928272352121087593460031484171031071061491691642099476357088714596123608368292747926132695962639873050646708272930134519026073811921882409254267443466288285190321913773065402062600966742087755853790763811410425654905410596121165327430124255805088539268851512349720404876410639951886824281324994645648669182342912155341859476025912332677456645913769289770421517213463249142796979259892440117516519925879229463480783468439849800277164070630062616492303907297440952385207850146611564771102522716708651156699946826691936522999321618292323217958413413824132278534628461965019473862671034478434365494351884173201304008207411763587176506724306723033076298629505863798382850962555824771461497304562327428844519152311820095207313843155273148707406965066732734740130796734757103424099555986341181923589413961386894780773593871776394325647992808392377281776675774174645994600659569312324110673099710558732855316076412551848385206961330483239382215721436474463994654521347429824013479393577039761492905557362024878299628730002378671658251728621749785166140000812708300249973349692495956650496552547907653203213631251766219592856242706775428898428210641217183281371005252186594293434214802661385311450587936290375740730981433716572508836762110370157344559975179982513473924160943725399056911306034428924256267860390330110411765005899254880087578585153001958760436575717178018315742143995684803090584513934617362141341703130542372833183706455102705218997545627089714977455404405633675267283631132709225874423812294963353186291073237963201732725511217862260133577926598935651481982086145615883562969639993372362739665036953109846230143024073721727415380642961560396820031799985458444348985115149822541146377924595918661173927531589882947697534752193937132084342262163116709248172029753127032292754250851851728530748083810277248754801633497534541016027009071106275615348356813766577744724863918245212875840891946169991933087318156707799331432632095868951761885345817996965802193245854008791973788267989193451636082961594809994579345104245522035524211266276578487045004710823760295944787653196230390218525142747296857730746492384377783232758051088686342627314785745311709910942524782529317380216219191217726163745935289991787525012924733395353494980497634093860439156213864481231416789776431563339799000596933892113456282719937188320680031931407515343123284403290602998221394141807643395709264776021042348571705989764475991534149941145496018739500341326028791124386924852200800003149483577600518206373740998005775608758853275038531524731339945605201886489537580761297853593643918090282532423117594540808172697771771288498226342563873526177621238424558165331724308773398943101033723929499374434574581915212382576159010150156976117498221603031910611916669014779633224704209656464357270241507556848786836018526695819361511500383585795226483946971706069626630582362210813229586428848293452712148141442388148657712428227504692767119799967190938734906019597821514722952722364157596278053350286165677041471519926959681604758342130758307932937443799488532943976300125525042444855825856678844175004982157729184443121897338081537473337293728499096165047599510424984177392573634610258080032375298562421401546130324101965774019435375676876319575105046834824696552464190293143847073504678703354149134330673420674615141696211308190148005289270338636571778873244951750808316740928266952455851543616361048447086586462383639716079046461042873157755150589091846754282606213448877164369045952132997504318140273134756907710275666208194329656781038124262667967980987850328545285725730577868290055320746332251750078084691181691484245059835399970218916908886569425140526895955384620581164271929044708661113626979960091067140476800567532984718211367258793340430713170940160839290158244704676390996726192148904324450200878058334202117190824501938577805163759549432105164467038863248250372382284701290321164830211566108672879633229023070308166702168544882723603828207665435901057156083028295883928597744175050234908418197426685159093296284075540620505093608668134721264307018202750697143538119707730690788681674796945659415242427283553758503060486341646157378471911856545218044669569495805395558464624980273545327951352723905824760430813015765946181253694344254338114559350940841723738476207794109802570895638596854899503004181828222664492599509900417539982601546359676395368543749536170671978651044769944563100097600917074336485863966105588476266039669486241499668476774799981583082115326506570552171657336322765837524335965897871884293856999159823139529287353904816510192783009804300817937401373632155400278584722852491045079749776950931086396067106418946135895925034577052233312818185286350490400805450571389467460280560693794636201844541106702945047845951126506193686957448728462312558234865508146173035425977784929396970441035095243323713795446385916026386097567336199266646382296389706041664123690105838074545852820532408882606859051494949991168451788192759581274850029104232777302508632743360933154962201572621606276883621220645515873934595177351621847016959781464823173144378116229975974914557197034250151515237543655509989963130074037014981673119353498615276411181503915933775350971221791556804513696377356322289462890373202805444595408850527495384996418530667373696913402790393908295748276885077825611769521420422975504588618041134316803788022480481336245940223665267136945023228355652382990314725885361110403191775674890902197281119298601873618333767629573575051333648076065143704669999272265354101775230400723445017653001097067324401047170257311252367652930110801627646641252436121857592689381472492565005200402800185833713612232394034108561938342148882433350504666032887644935456608355046546974274594132817786942243223288882154559583576086943573722751754921152811816535239546863490503701000700007987692925096753961709447086195492658513294961633569390685260988952098845986609994130400545500584315127863694704556406154712080332841368928628056184163990424163537861199419501325056592282302856802339633719512569112773613282391739035153618986183048955079380063384142262360112554241187740151092428051533403748576850151167525942516554130770887157859583452314654643719901361640569613832520991787369730918273825805228837965182384197234395743154437233307820492938686770334737637543385232605225568393211112672742186883630671817629175382659299250272325966869859669968821553994693762409384559234108552777197308125235432009441259031598976311972326938980477018954512780123526424386922713129425948947416953815365635767636129640770574713386373144109843058386916834982309851285901114797152108624802602586315617402935448826962657222803977996875515169476935134999481872079859650719571345128234908545712587994824407856000710044433784497417649305477599533309519787146714177224736552036129266533885726000290128071002653879990493832413861398612029888318121958453568820769292532633858180689020458428153956122398184044449686117450560540063584820627139028640837403788988258792922490224368391289985853573450998976510742131643568909010718927774628299036993095497738185487847362888870834638505426425030903923118084474134768110368516411790961427296836486868434325446876431007980189465196400653054937248015804877282883049873611682497670116674072917997613128419222803920075400614096649340070812429778647681554910543226856831135422197060389288096603795235342620871563609030286052337716482255963934865239019043889249417002961826116536023432291219998174440504069042012502388717587071529797650071376037280182716844427230615243885090945051243125342531641860174516303041072173284740240952731200369661541124644905899700828636302234259166428967547181451579349521274051186263596394269915312516279138943374947800789228859619960902547685180269912581106403834693728781654871219642795878280694211884491619248741182740776437594457839018681894777919823874001796128334861480391682055463143361759797280090972446072301234783276303606690537942109351337667013352710074219999084171720142314591078816013407657657038309394006542169826881474702335561450166300933195656538024110746621106113088369076810642548293803494934854344497037390349211890377876949599938255814932200831621646445437995433441757889183547955867691089087764040262750002160541233212013305666879077884735322276034360361896065355809675304754883780104890929427020458459294353503841567179827476949799422364908403193216131024303093534503101497904457691200405406934355510459530371523148043040998910328935857061105265996763911608528231863420736780871023724129361703515914904358520610955063837262088766608770714951191043971784277032611697598999508024642798047150271193964754049247047408739460338726627188537632345263080082880864483030889978401060561395329541439377639011243793367461436266876515922329915887678191091357124933669286930499558319436638167292602891722544533206246664113085732122966829782344391895061482976834180102976994252405742834223876564643764520080052433787279795844383680295884077907803798804664760503045187105464135216417348421452150200057668861213718675367286287315605454861339841578423890760849788453209323922097532555617702761600577791643884755963516841081446154135596623179074271367147070246176109705074659255561989461517355794196583487371928022670553539751489585766676070221630560001879084094433470075927509161253126274915139221958723705883938313133141025677633991260544318222687814990751838903806070808936770175657645437916601175732733259031286483768839235251693991613397777953954017825779536664931488683479735032037921421347462056187365412062134042515340153497157382765217226474405490731790004469914156487346857420375924972715449806252825078056161693942401199433761098381160994640788685154010179300110204229450195100834851720245296311400441130823117317850412660590132455314505238399836921106639791003528229837636466518332909806137245315794608503487163722747448909001879414896293955904222543908456563643313021599973169910403134162698273031999141895294923855364952935288418091113893066563137891735398984039808019809460610936731009458349058391495766870921296525462304724173180938354684992272893533970422913243901083534684911297962112291877394883433057656229693029469489968207355592023479529763847395626264880338569548350430124094335720876536296799718937655835270059372299040374471110792765036637666885656828190441792414014524980928395845896758960023882193612288368452176393014875064724959838879879419369731968884797516121691673470664155815411351126632860222035240232721668418334550419352272584906546520397583872804711425189687029158022442460755758677882876985937517375835694763149134347480589320966820019562706382207144565632630052466553717309585820151680589374849575511635779282670349643665160049875111512589410140614687541354998893289705786198304938512842067067432719589608537266632129995899759583613563949722993429397472500508146053235705623172669995388810102639603667872819652323900531529322886005054953786304233301775975282776707824206645127915241114635304541109607477442669204456237743742266131378592056362030001878980590305162141130986363952679667792788257604813103553302459912617160104323877686799423861272349300635753993830838888239702660021831297864392708626387567995684552025538359227025791747803448320845121548510736828103292496387174537932978312599837778667935729365849147721501580282393547968871494322208017379643759880865155533376432175256563672126910886587025243808622193404468897315267689110870823333791038130699016626213924838473480694546935654758023366165332575827032585513121512828550234167789340403353843032594016303475348741328064615919620128420838921810814607656290980185821919939325728876232647014451799732755493809965053053373375613534046293768564689743082105655291412521011114693647311920942518826926846761953399775200277228039982251601276524196138096758896689453037542129475748673668730115128587369846003899903324990578943281392385041973733585867949699270770824656844465290867408348970021589673302268142576297775643957516997637108338762245466120915554645128562849715072193360268462941482693088882236838874477884258393053433543121553392544388472377186025651795267561940314041829514308628594654449518019817977543962270409583469405584807351352686052456310548909438467413688012780840713273126436158202235876895129478311226354902256354418931924808022113642877727154908179987411835163525333829339998685767530321655054666332118705598549466183658659259408589163557045049051982907750381707393458968321478126126701094913568010653317510738179107001827052435085361310686630928899796377741741770913867281202648702768729507756542685299307223187377661249419411485731303388034841737926401008746137994895226048386759578125105043781817249765070321734437057058116048390173039354227748492297409412039101868940534830152645222928211357778819229367738913303058119118773005090422526262260221149298262778316276530862906357661019147279671283502927141999619245497563095591341487048643434300104865697926932772501225966937967392347021470193737097963937038220978118332234068951093800200910159248084836412395937068775705742356222601070343744294514370289749301814086351431897979397388326918874278717506968896298408213524101421099382875434673717824459774898255129378288635887951116201358893249015054375746264803987352360989427002869061848343722709207738576230889455193376649906275478143628073225823598021446820780186673810844664106906061884952103278862384108117786114157947865371431290431536537408539793586413663764469949045604608146006754846042936703844013164952166698263506798896553374824655072399690241010326424995522441642596091102930284932176268706496812598864292149761775135795653285901521045409591401019132709531552314846785538321822248293749945845108593724889291326836733243957137260440230736406168739964071684985500219318355619973542018756945372578845201560055020789855054557623223875612959439716284110226599232695549026193453343893882825836045754292241839501190137738494288321236437533352959749697624362400907901801653275659052293179490450097852697382187834541740581642419477036529720516149018588856326052441576267125761137471733844683935704683254164985552838717159667423248238355458193284178993662903236631937728159759920938380844944476937098913682953662533121641868313848197508174734078830190690293927438945503373992211267488785928006560689129265092250122500072417671397568626534294606060303726248919295377291707233246636790879375163487618697624181022256063003635249859677781777076887518585742310372492035499193085724150837053741722603695660605049317295558733620818154357961840551995265700629332426746400180752845017133152882446062146861691005303909166082133086399095567353467452889458420346072775624558675424538059473051268624826217592284890976991907932416044039388602451933582115476047215237490765858725121637374557397073566556811776494892067250814640134764422039153360515168196771619768212155274698351889822633720469153371678704811036749955493292711888657531131106993010386525352451715066045853333064743402784370152902147451480896532726389323767081539973184074366703031815424403829561194785977721067484391548489310924909233788427534961000437415778832821987179766334396473683748117845040469695320041282601293374251896554441644295529592366734952432121130608883826850171199572059280236028525233787019754108357958372591250611768177112787116355190703730363180183007279180205259651683446429789951648281580198575587161230025669716279923499877900479473477304098220314061107796234468938087104570960210903243835559459344140998422199737993828770911753953794117890400365577339021533708086831681866808346822259056329264993396748910821033521888034652677204998911612131490237340376296492703845674060282433972178099909618584151271191444557945168470374272466123204628442788851309808644635341363427722950438199689742318856706378752375139028103405764614637056472318755160312277921532868945166201221965150475502876543457498357489103635835864746448473684964772883267167481554808007566025457103312884781706659873656082347693947489761797313601407916703025162622647618486798797301348512158940191075262435394059568619450521185082347335945728784612058585369453114765890704109361175386644128109762583589110741055639559929383947288912874173416160655798241733382241136432885010957412597580514255621653883235548580475716250461492503599889935512883310247375188864165559487495243182905171640302141778469377799071051530456655327424990145430078905426682422478055648741847389417283596621203993580082730069311627191651393397827424293997222395582099316109306912075534656972260274636047391305780955586756978920055148035931362021891508860311754459021440726900112164205688493886505776247402474932117479679235188385275661880987978932015792810669727974683166565161482219519598270660066217983320226027182567314193258907775857000500129906048558739212888031565742073896152346776389087484200694254441777084357649670686785002640292233229308867512849368081825416619995018666931973228034704072244308778513015889914563419004431974786395366366189973879728153656336247078733573113386561542761524171740534864561661984675317465257384392641552383795961494900512415309100184624669406141947350074303757517186055093844261626566982196557243757981204492360445072295779224031984137470869947768211604983981492878943833202037212949551372776704780819533940295574762003044097275507781619429007743623712570890293698309791737928018076352327759870916143606696853619831746371373015299191812017657735788584026617293864909535554071860775059442814264046774188497983574072304723040908286879620651603807169719020637705809086625282270691527263113294792443601592505768060628038916957928882260638321031576518213639117587422534930450756606854783523491854790350279496478227062990397332880414499530453247579821150292228720459873418209133590456332494942522260484440115454567538461585556447643442300649151788980681480448191349837146406264829551457496896597550093853578893674229095517682942521920031918626721572020781558238099423936934203841105210362795627180220056084728946044574229564242376421180026912683299716254444249299131399800558395288204352807190546987250770374497452454288823923979907683895778016321974825204880000338582982032913663162637834448059194620760641573503558362726856414415024387416861024497782416072385182214150996430877507315280605354671595103087894312760812335518552866337101144943381364973785542122430904087238143579584092041765577543144757498990143856801819109366643343018960605277110441102435901882246347013494289074571556895516091599092393923672395073656779351353816080785760716250447893007335369884257577772661206587191439695598436534779466591936671392135005185392210974659731588656398791257119831317455970472780155884463354661446811312447061381106283843828020073581996541116120026518195977916354875879100368195392391854591034252004960517105967659922904341934040127008559971002594648282531139817246012815452308736284013305036460092652112619216150132884583494525307036472025525927778549625372190951931129064818212047508213341846021551672647394630712965467456501649033090262259415937575995085152649724848228863696380111368375481626442721984686173647921294223053107076911677170680329302484439100687652012732073180918116496538455505630616562659307803384902994163960468559614413306759031544516786070360528837736462433454153105477178853715840376274396911383097883225346166437042620904948937891913726805504616387287011177755088097044007125058742706096764503187850740520835130443513084423443463181425405753614834884637317407073924139600452099691516830342777638542699851546303568121389725951597487842322004679025753907734251460274671384742252134128828741926218822214038309578257643700559821005764022538989303707406840971954909382244809133826309405162761836002754034694136157382213433707645854117913716589441847369093188476675191363127621616018744005023912363212327335967431199600136384340856748605035635956930681253696826378452693771608176011239377474254270559520111893382283222214542352344530649235761254764256703755816565064774580221608025218199430807570253043340558098736728058331789225875385541914874474513353904224013495450926620449785472515272672847084889674624494973546923202885453294553351376682015084585010369534639239106283320494115058160954943267140923884619381089656277226119441665148080681068663381889598269044577427253143467298084589606460417425038961593143233499602051246229227806500124574393229426842444332676108297053054037095042634268778192834694745197282913323224410332279318969460550746351297136182323628296503284377090711475450176901494970622240641162407651024920677770936165420492618734504676352323172548498250483427049886087827484026461776675217825860688407819629471057940816761358884890936536441237751775922104606138994090643931678902730685356936396972711012687215780235258865159779417064504442929330697998828697920617247204713895959455383674297792229718034335488993889782391619304596599857293535976915619106858259112353661320676971742145265535440815337211812547398208372064213445848882919850682086270214993612556520701984722216464073603797970717282965390835397651590090315072075438950591655056880731288908773198583781626464841198533814188414296465925454613055083499308159423150769048644517921328304388810136686449179583267828449991415402020052172156079108652789515638937560482370798429065319238341210811606541837876879866551553785115369293722053473719075071540562079537251027586993895967380343522172128959317717579483578943712814873984119984819052866732524566046996984646371465770757233185734241830818964611034609784574436826602871473645645417844101089180093414276867180443082417788106146499882609859664444054789251336824424950324532480538182900660373881674373949663696277018007066001407411123953134007990650754775974249599830338800388999888455127078763333167287964299677445996874347695377494656247882727860622729200776185948544932748390633950688149125930824368325266303415861498644051103530283426348133039071033072997299815528661795551875515743566637363192057108992295961187067891742544759674385743390681650534311974861070236965339767542469390591551879617345156942331644386011111903009929212335388010323755728809375295256447179970633059095483877878318996298118889854109282430148346640479068709465933543680570505697488843455294011521649180317585634565144682932486453827465724179511665558926277226662997067950754646885933789859534478950703088297474525878295577241055953686032100277022236428280560594082545667132310025535411455302554695368004217370787186129267860814617275174574450412192040200597176200591716624913415170595044530863503238979548350231622833470317873279425607391115283345324254460178941197025469173319163827797392044067852493349019836189481272785240537014748046561606411728221326515387826405600928232567401300213631931076765551254853740729453400430125451184984890894838973676675406056723206114729138864836510218568235507052767491426162787842399214471145550965133947749550193367083416031570103648294519744053809604587102212339546443321900087473938049190373678208001582671710720546858418062805283116200928897792737423597376122339955547862957493483755737264377755907336751272522546441291524366408186398969670239740812064665579868205104528322899368770283572983728875189588987518060956118601725646203270161501357618212838606632424060227829653825623857445338381436351729855316983321990668528762023706933154896530783622552620184245110157886522171222178508323623416050922083954308111825398177346810620466393753986689648682567245559314501290520881063081441852736164230180661441579334334129129592470455749239671812242516105838929548114013188723350315924909186047040555223971303736063525012852973531362947366267102490275952317763828262588487690718799429827679293819118463132239804078518684244643198052392397928736847874761023107354565377292601163182084910470429637905544327261888537602569660603935969745656551981976969592635639946845745592462482160113200785867454769541401808280554129321967505464530580834434237670659200932335812476678105196151845132825078740930494786669267014174879005828450978859708246998914624298851026336306652580922665529356480675323082795529884010337137302623141446226933631067072181325172316210324248421117179967371560705210961697636348000418440519297545816202158363765613633021609041265862216602780898391113268074272425056991866490228722023552234355122469824485480489012808832296626884718037520662721388843545387756895657918719113043431932949857953419424544363769509609361395239759725960304449299496511676451323471603356480551073503687038898830029824107248959503389748595318051186285210706130936021409464002956184779360118425561718320354570480433313193789735578113993592892262046520177940864731759780761042555987630755268076240790316970166572391276742166846164573203247019652562791175094278518499774079562655936658158410610806517803945848281013629830649900192343795185998443740756045760770410820979811946132606354879494106340582069946246580314465525877290160954625062348417197198891138336785149391183895964170441925423075686427967089188230187414487467364943602845408204249737854902879582003302929471062122226625649416627891576323754137086480136980702942184349670397232718369393619485214043492294767051703344325058161500297749523246332203899180404264364090808384163809860174432503620342740414248936882954334097416978112375438435339891510328706137059090166970938767090047301391924217270053106583148188067807287518957919995660485851917430969582943532583809729145252114979557919435709001382198542933721002017926193954618898217850034276146019263440484131248826585318614112031794735824271280051786686455656523821628034103024198118265718123037650194232049067448737033394646147615204287364374108299184210662876886176503974082161064882078586841505406822482240508270727913926613906201203333761727264753841489713365090793328613052025598470369581841027129002378857880272820377691259646359910011310698358823375299950815425236354946071082441868570202273137098685954719277962464991320840218598719060947154291036307444572023335333519216752664931542540547520703755592545123735173338582046184659557236306024950383347358006849094362202137455258616228305597123530035973572926280038745053854513012756858243121923462670473585400368918664981200552455994180585101607162709475568624649786048371448063177412199921157967552358823764816895112947703216995581031211674309885417807355537359164794105696177516038718286988583743129421173136574306797340962478382648953316634399087894843219282898296735011059413238069041090666660285793042021973222593004485132999640448647004370691504801864204671138899564732847640073007361754547208132168556560174513042771800514519331001518278532124901870047080370912557515934179531267217503521053593455879286124770116635570441091296090224236042834353474947313637907753258009121869507233118148481914339644188986058368161249146360720617132077804214010159792813382338656122980586230634572227982271676111184289933821580403295999988940912749090473891083334741103041198626383770397539970273060829181007445968049431383527636027850565996529178135381975882074509198941348656961278476858132401595767385984349209282428603689315468003060464404371152088487496432358990177996717942262372376041184813300399012257339670583326715430544637793381639639089887587430435031254258332928072482820281985809987190839591409412192565197478046394836498867789352605767345158048080407175753777362936989211489712351284076577252672341102970666679201429587437850406326487051207287279909047129726347607224475060894189479042255354743251410974763217890049442358078036721851200807061938346231709996496786115961064583436126956537910938137942455139154101877036138846706026083098323214424437821262002100087626548850317359515529248028482251474397642191309594115893608864594179610457804462780546325986498966180641449123003900657825076831066466621882397501144648607035387632121759099490046625374502837296539127590660524361007850751554626339064839118674167429508628541075518730952453686043378882926958741342651465549149942813425040784868134173879349532661254658656454303631234107509271565803599121670103397241172677328851261527112848048054529149956287922759525659764227287496996325553598423981531372311448912754200107601129832408139678140612702347720172270928886725760103128406943436151087872257755488528341945652221104644170335092269272837237856657589400685071243466339058610436825885392881188027796585232206063523879962567485787506485531562601082359257195492590672298453930554564857253858422941146879122851900864719652183902063011866680946742201273237489068193366809065814871966342948691600268905708362539267039565801792365170457781596597625710551685826310486036040879193270102381728600367218947661899979163685083000752504466908725707355549455253438734142234855070601314547650322091369259680658026569098188584906326794151995833123664794414768371133862186945937329525926187291611211480920296044022615845619467214042996354989434839576336805515216545646741280878843100934587835097434754564956633933353681348836593150904267250094380335916613567577909933324998111118975743004517427404831187939790222646207549140004631524497720871910046680746598111189941141849923218236051073868783312578258829160389443699930872261644138422448485342954494264052076905302574851923568866297620721622324566923928604003615946652333907416515590608508556289418170791805078480974454508284898973188280423483878896443262576996963486555474696318372015948511907814492898283505361756230421537154172165515429291414927935644101201151128221633609970528257339454101345611605373373005078906201849240102037511207991894810290082701783957158262247609232681583334650298075152201587005424317661397083377097113155730410617944004703571104671093587138927400061553694993827491926310202420042253632925906619863648974072054280514402157827892125300877694144539233141181578154828349483362298192115184117740710698989097092649402800550102123044307243710309179080324736992252182200286721443109328588371937267979695748626886205596701346168567735068080119713912002458301869923174522922749661263609896202269232833292244029139247683529056276713512389160369965813087231505356591424703533342937828923141498674582855630102868487190655927641039674779727483231367621771891061815412500036694574695319088192497928678237820506146234142154507619534474222246522830170065798879233964455769322208593625939107804645836110447030433561707196038606976548649495331361394133687372026626676821991785955228174515449502191651406742021418816485219905185296272808725190263264335602527102283521914454770740692334927560676428849188808725048381657900065465000693812227917404898618945833360659587984836134193794385317907288611440126717345024089518258807194415243812632733942244361190106377742910612404135617777594166743211621822734429557156830418138382845092841523763580110372397496137849503033298494144456918713317839078294196714938383249133650097114182563344389598178948870566596494005540527605099960094131337374224127804287582241280883977624680444587622610462493053689052275797358742396186856255267719450498197740832127346738972864810580126355376419105401551558131975175028431142592664085857251602647822350359308502758906027986246993105967246628475958198252486167496486200268856441691815840528889785010157202387651549505885090774641366366650589691256456216554609582603302265734206674810382210977815814058879473049132545118692206202089604875709149187997745296247537329523945539745128623457154896075784323675687379559034826529385519283758691335384398803532372909706941586584420898878108901332997860562816567700787991246656378360916814392801378616260991617579413104659816023716872713500983062268779868287270477955734443239542025411622619637034373446835525170867228259867263672792505215155982622337379903355833762976837107254754529962644770744042286717390329469929230040309882534472835009405714827402441698703682660149731061667734579113916107984047569069196760922273026957514835175235345242988473435028705075559836251373003479951103280852360321173086152399747605420822684014874663910927991212648191718446501065803826105457326364719858754218536597897877892438566722495386168923867972239975295866457137370750004014867941440249341584445640994940467303548411526973932759220927735045870919785927124681603787958309830513591161427602530452897887871622734389592036111958240637549828285332256749907385915475271043371615860562601207698078842756779791204921926556697430557657833496677577680131447276708749387971897939282395029503528145787191716451494142332657011749217845019702710889590637772615914133248537175908033920434479650163662549861062532570121777231176622576713273528412797380241963437851435677742655065703824768486240417496639600492790079001351003015084325555609448447382705232452202742046846135211048501792145044630161304476556969738981437217980557761488716487415541847337896731011213418930929202512773922620716036828866514458253466170195949645266301706200040853183950981381600922644192246713993540583126019308216837307270419065548535092360434973136988610713645465314452147399562025557841897370234706147694632649241968770097050856433072230948425075530603816118469175820733989500269176104260452053888704808792274155896555790164334091582737704639199735539811747627410247457491941623548968115401291973542060380555461104984933534960613681291798433155030834743003394080955064885284630875372005117826919996424083213095614354789421169324722893231699109558448030065879093752054457143199896073496594920996107886866319007808199132526339782313365024400446206090992555220830546721353601001009968468323703645652955660539770840043887618410595087581579012507087116090357107559606595334126127862777386248584839136639753543736209212833709492893693602613497212291867782913530941793886919790967761243463512427231801740353282459970238429772673106426560832051381646971773711887395288495684010161271094586158927935925823123357897626976477127042014587646083466619511582733087437779827355468721088943074801203299734653332987164647496158203930007960916728927638611830541117644867802754531742839928139409773482877483012384839430753573485503594588044875791560212898694249654148775941036379635756102951382788154694706764540135251883805582586220201940322286232876440766513759594409056694012371644504378489983671566313172439384089678646408351148568523012470030818672138723030678605493963400739662181022478328131933930292975550622986919449307811424577594474172503735296292796543471744794895237480541847435670184888287314740246254521696263830155894089356308152606384650834222199306158012007989217366070649865798067127718130817901475586268789988887922130810405341585540841649955980549382432298978026570084802848409359857149992758827133826981670138511413162860608945779510418136504094206210233078628209758877862554586564564109229004257809142049527671298385940054960491034168194503445766246322866397347518198984646821184997634152181017043386529678218569915395638294653461159833939176058912267422149682970420377349931935773281404859275366060251218566312097642797515077442568474537811101567801383844309785319578444713620748065813040700584165387890972293888559121141648985093620176112848353091212079369778953599429317836504721220656022486289169130472021929619535020009232102146805628964413962950066464313796069352178148091217628090197953314178075942822595863293950645549336998851059197951011606821486376015416506498654110847533879775637113059483259139351824303304936545781640561026319652927017007741702064779738891608031052020610780113969906427835892214755684561703065848691384273240151735181490946376596501590350540323986776400165196024595958257435934398371072890350954713751315157585309928136510042811843112611969421608668925783609350536908532480067882321994324847569261302762776870201663515069612446404658612789619811522547691402830908907278861261357235243141199160747278053579425172347317497940261231322810366280872470774417823379920962215841619445029872530022081007809157962155927552900981007616895481602303051765781562872059683504929924089155301042032688755072851981672590954345188821947037331026032797542994809119703813734416322193764967648043522891493867904224802437790261392067114664905212384601180169279870028722388565214878149462993059490321715750974053313571399689105916616046460199404919494943501918626192102672356709298954094579917663313739465340314521548666160888268840420050822953944803651496208202771805129230519345762499724643465704960605967985529923746577608955185270804726566756048266321180400646197357439100933583470495831645782721758385995099227359623902672190644542865542969821772525510764195099543786551160621179910304591277920120992979901751761109381409742695792702507315065890532816380653436175790694057231324559773882721371361262983799456240942738187037188021711759631129092372543805317219122871100728485952321573928875599149755364804580859954672035920605077754706069198189806973091938547994170791305471141115292519512640747351639888992297379056793101416075067201920900368727452965365843899819259143829882858456676400793466644514804522556314638596928332353984590796845571808555529146733203738093394532787885610349483354836087244521424765297437144013163225797553064208639521308554461198925694051341216837618166977556308347387732003103497802130020460482531541343447568822679830323376647699096122751750417622263702566385068126006959118150391916253773862126170681713834304648274063719267484430258423912180698323337171825078765452096536269220087565464369883872188270913105055674771994018342373104377018032945960426425196350580156584449185253931097340391961357406818750002497470490281712783183828532386491342370080003828579563742403578389893381298473753133053084829785177374837374663483191236893624120718697479953870549780749376163548232695845706406551551649003556781532912831420195874760239755999787451898634871161508406061431801087800664376456537161513649394917170731986274961458623316581329531351061343341101187839135011229703933182426539901709624617692127617179630577175925459071769169475446020803606516206854832120715100649440460752669709025809776830630714304112265742324795090974393190609266910730949710043691705764337428836187933398771142537572939974477288521208848700603620234457273968546483334735582130509093471525917685248638699466046354632874194328574239165671755577464653377338842850266425592674165706939582582082387318929672683055933084426158251363857202159232912872360874824810125272624905279330082603233113811163453357998603499028146702277359852028695754893172918231784275489353772888119672615100453854752059955445990862483272439137498522095525743390015624814786102971961597975295472280411388721015583647096621207802901972418390282501862576049056891990765481043209338531510479518821827647724908277880566696614386420893159728495877978142894286618242564018403480745077896155025482934749459808871213128839914371799374958902771336279874804724078788454934474738564248890723694393442807370519752906979668429351160126845007558383527064109809345275971649241269063618731321235356620078688100557636483441233981833804806963279452427371883597819465960189257622021713197680985015488817760941903447893177092828297369213296877567472726026704930135513827969160388945587617673917417328557773899537575338622401141788673434868806561924260519911062519805293026785965971708817951771493526514848901775722476678505240454728028540497870301264796014499423365526339652844995186027391211092380996199365892954188904948711901114497050361269236625338125147762430677579765742964960456158391614794776693135978680157141959817154018244980009850207777065826932127546046894687733297472753294212053737823422697101393968953244093940527256673549534207073071308350234767819120427262189075841567847203181607420191839527867938829181484854504696549750021776718147232060530979532254974996903464962239935166541663963888075704614185492963397150627378833589015974951614254840486020013104352822004448879777130481370726509169946863449913034725923620779601633483667078498259559992658358335906862117707777900111053803742086097777777139157540243054532956362069387756984689135394409166853681921688207715993691587313938087381670514723269314402613333704004860578898573434117086373569261040937097672488641955355104357904147493213198638116033731324940221062026622831514484735526839810727175423674663355279560005458485304520727343920008762832968107192677968684901528740722950961024009147546850017153574940565842542580025783110326569484717535902925561976442286446939229194974524546414817061342621207280518153627859885820243219688017962367466405728293120619899708565079727619264256484277361349728359613302185429602109425572136727031708897886542374442628677578177479945879058585793286093899590666369188671609162664925991411148975727598362153947466396314092138882807601462403834767570249725362509084535486134516969066118590183606846602399014755286119551969662349426905799872689405942529059423348579207176467363365492198341089431114623600236653397545617457939254104063885490036322247879943875736163728915836669713076886021097391898454999895438460064550449122250896211599114634903070905683683675069024967502563876044907104529944923508002109847763660709130609953680051078981736908969434300212140842250568184306366172815757330439964210421280811377282539170076997687652836374623270787491223106135194005999252831120523966208412027006097084795208009057614128966984883599866954959506798496231756627783191466806852188197518937342444815077983447586317261649765490164388342703989238449942869540571083273982695148165054453330708013264086111277127206621047229422176878044403467219360680133816751690124114046482985365142593980806408261468663771342320375604781394742164444739378061681831078929730592030569086433749021440137868966751475011228705729813245410403328334532932604937129005166745192855153911556208216412262369099947334090562907873061367653254512713674383899934927982759921993683371332128173507776856285677190542590962516468675487828892534044986833097272982002495642314937178419920406794882986361478537661263801714793325253804109837398123925376004901726182873806059339109786484193415183949723515217954524687760987770295955982418402682598606391903260628452973740448481367478374967728446041104933604009141837913214291284686290675195584390910375821787260512170291825220439083742803651374835895592973601884032884520137451002933402443164913134355723210228160264383048615771045997762825334228523347587194474268272128653950869257656802042117505667971018159279692909858579261648762381063202931219016919279659240436023666692771763621075375212846446761484874430550459283376103341777940852146774152495776680503062857124270377545408594750396659713563496752460507858673474156381343309984049905286799003052390878410306864704966451589124487264895540950527875700558769292411677304993039942647421126742405903253512773003305315264593640168956497585834359400096121219475700611496285803238195764625465654629136322952494894769775770380500459982622500995822370445987462652820210260995575694899028357970604752000524595865713060086276708003981696968129862751618148336083929074292761262352836815909469989542814254239782735519587613402786862411122276901580936287718378574434965595724500204590362101890753477500285214546782911395738872586130634375926240219573378805080298374992526517937107133556163822926437178151914293992802181153388534839061760810961629321560774743936869711270548795843306301711604927790027633910069664450915974521534475167532387368832337862370097224843529780584123915142185576817886947554087561483091270605712646501093680277382618233602195541322602870711142213932621421887950605622895559396539853166780970752244626646859701018510093929969130765448201123859808495078879633429492117696945708068573738090700750794300540714180357634800835918414414591847494919022658211637641793978509519554183116517935792709485059885293607690865331629211818695533808357035768584016851733069708615892798357531406244772076236079113097188910044393531566937125518620824799579503198055687174307843973396162486173016459544618067070353092079535378197962009416313546692370918427153256276272589414458318679391369241449007238044018812863939353878442250475199844913797953514809247232604457912105701447065325196111571090749770762117053740607399894713308429600924152296783930659330236807130703608662274541394694357720287707877295802034375828543925761144568940693483061264639196316897481169512714064525200654245356958657645039705073111259447676591551338369367058691176070039753913697738433655242843200669863475599587917141683822327184893172754881938685014284237019873527820891603473008723395733673275680352172578083432400836888042302048971793781980055983094416803556231890976637911958262516408133123395771983801083876898575579184690902359845409298834762283636336596776293527278059465339596553400380652751712087353061553569496828358692658662037213702219625148891598573306434744610036826404297368941287118560727593216964775138719292824144709172636878781928018629783747898548696243747916940057581859456524161117590296296203094689780018801793048396675958694852933428495126678155096487886890952160585547726674016833495315864853305970408790794687209926422499314693899511004458767608077485290931862869024492689430682288598305884119940541537187222194122131168431214255366910309536612985719755671868379339084267159756281787881485128684192510367333295706414932987424837192213841067188573553512252792898182002487293331015152079427286868870117911077987498741439806970722562885445942788521430801189173292677176956436186969085350917919538836569805474055104354321565161704226429736142880679558385405090300125867105626993956943865012911951223541037235340360752834723190035755517898095491894359363844625571217498525157185702354376721579154625222944267772360127106284688912021011665064622723393014286962531286128829439629483923065771488191119233171712838247301564375044450606345798634370027294749189552608822899959998014529618954478295232387678646499353974273605635145444258540142324318699735577304441855026322416997211920065564151931644576984249619357228823659243730254831011153452363507450912768983292142801561706721608397940916157723883244489651782986456243442039413391738439372206107198931614529813119704976962956948876346479564747932081178903304714731604748851523653973206031951508636073473066450624958734577271636211757008506157909828773315268957965425141171219402128350129416925913521780517396024476128493551944446183405028191589201882249791993581931761856685350487155146951862530052101310643305806835901899365063442763667115803894613519273604962726546042854902469212648285227871147115168564301254065279081420988529877689156836646151492792670384698659155592966835877743831450672990545447495604623723202272427158240710042874975872423239417962005398079793175983686911096234723693762965708844991709731294728170978086983210271895372075421170252224346413692050651198380516525302934014667667038703680024738696699596365130305493390038121464662086206226028554253998319248046999252016810867301058291145076527067878181020531721539921319079610839114433474487674260524472980498312568208452200446265810346494468794163409143544557489087406961875682543009207909416746905330395031023320806080492897439713788029416442781893221943776201336365566578744448401364444719633695055695462445236782950373538724922328643890253795524396315543240470830944977462366831566048397382342710061303536506232064168823304217291202932937436429761903963523296212644696426542155798215748194365876500090346428333572570440468993302699215976802060044683748161819663713352251512493499385381256691968221831056429466504576400817333273757762720787796256219331663584760237552145397101217738720377989712875574644586946299763828711942518490688654051362238195163150846617074338589774519930207444674089735720838537670902546798223350912799866257634917643849811679604467117109385959196828008318739639564580936012151978454323378148481551187850347510453048514065069471114149601737813416854699883948355619728911879933824483607971132795054793984411114954108342370647251962545902344185648277027224148753663777144443864990257788295602766455408717603274988484306704741695171056606381170817781307601895279743716343225089092594331460573096786409784300852360381402997036910148343908162304847447455657050513354555632828653873467510644157072570668700969796061210350063440997510261301362787126477640436462714774139294791477955652664256169530786720772387347380962325741131816317394638565335837380999749893762285471891839916865281191510355228624692537422107736793554756290757401548367789522046388227569384382859965569289371485360260280060798330189210914212507241748131714061166914031196598408792250788860230458469501180829822038461768503547435075052247669583503652798313403707961861125467614000803923843502596117993959537864548673115661382628616251640726254268800599370212014469626264378956229010559592044421770340662462681619413295939964064566537807048001823878648480605802369421030527656718162127095805908421614485830935437697983242332206082908926853163135065506240008854027100287827138188282011214826091048084121025863686529516647941325378272765694307539073430349291279848902001674720212871252095979894454790004855115825566792368684352730636462966023732583910329717530944953650162426837251626426325406412868022952444715911133636010364531731878537473716439010603678646474374252280486923922385230088165750792508616904326684129169176869024445630376702950006858008506207067726249624324942122923015174144478829761154148882218448361483872740610254639186661260095024939731704652291256506210834222307240852903521771737730795159566853443974480643920540856972807954138538153885962140749042337646783747541691929656640152161230293867179688376890839414532933970542658743622188623883733580717184015877620794396503408142938352259995349826225052416282849809469445191658943889700842607080034887692533975555791135391988034881887697342664000120407339234928714491196661128686490547539234599846813281305758919105679601700849241574664315776414791190105999061598270913633808928274696420331158245743142768987200827046483147432085439698017523779271815220083163032495136322908010958699597191234703143116936271464539320500920247563578794396237098933730159629808588102105676955651122062832353766017640359673725522027159320468120851110632569360916908156443923398163350004367102273424842099949298973094819319768060925745943520670328459282291624734623538747066132804396647558371288195348646001039930620137237177112183954624876308373767625048418825124812308016284475289864145077477473863982065284102824648882367946675811522394104310379024491445831038258362201509604407733172405615262837543107349330269477309638868565214529013198234154513652272743632889412918880861974403334113516337358943398769245643937808600230902138929865992938636942106555332057312019470015061679636004669735511238085763253097010170561906054713217994836962418437181651530189400204111404906061319409887722308099225032319938392598006200796681542010693786708502036607487983755204868745868659963837504277280245612838464401330525425396004937503298854416895096342703621307329174050899703030762801571572782977713799998814451017592343200931532086431564405922615579399808597084346620642858140399889983416499417876725033309154879104146122443034839394388592570117113007819550905474542138357461718621381044888479786295727689824104988084739603448233136574116204143204808158922629272275453198159812667895459087908625006691240323588563405138837060771408662927501369312853093561404912425949867439771665338965364318850837996278442081285540855580607596749467092382482675565011910038789623180844627516984669730253067348631621913858439619831975123372206672766298475483861396657431179474884221312063326972698321221714577414441513335345992942958718075921918339230530956213458280302745553146406088520210465652696668414667387661203689909362179486567283768422651025682419353546604024717211487156802706295720394555166146666974614467058661156468472176984239529618342309016481619658146558163184289163818334743278249528570649702023974577517679351001636335012974224245965340338011005786359834114564247948417139894811617415659051629108890723978217085433977413118875283143680722347999065528490790171018793124105705557256831169511135795737326786237009606820377223528189913567491697080690056825162961513958505146344690788136172551409660478626036893436444966811009377749564049402712870661945027325935170088622186680037706509927247427390976154293233449854035400202574767432653215152605939830971215095218253704637333956977692435359848330164511937248318860427695933912651953255468640116430226180723500903315641268121115833532755160508142400909828985751301528397949415090515774160742084287784070212746299236998369885101499390682803365422244919618192878071878938420389852065626119217079054576664036949204013937614846724654533621670740726161952225928358104110697178716150889502137605671399604840710554183206430842943886383225569301900114040332729511264412519722785071245280085425304262111670741813095186680369780745331654524504248235808751669302010376312717197837917128450027256160444956555812835611318324591437906755862205592645575255908584422044648418717381730205196689493731123338004944034151862115507654898253332723590849579357201067084502132867275692917360693717695561730857529102967484656820001339996613504339794408674926436275663867511302848577706385889698193675483153446965292681130784379627590001887011343482411466273404350832293833045626897911383634570048009918630880386991752177015823577072733856855871391020680223733560432352775451097136553740851137566083971408738589274572844283726594012483373446900931290999811959055010812823664199168662168539293256425280183145721050122430951091494373695553751855370798821372756170536475436096049601281916599333171780058142380399889525573148043759196292979559235394222355622904255596370103744496440521597579988727036293976004041738997397392637476765488149744997558990244468898894562689552534272684242567905028370097477265804202907090299851250401341092946884492245897599421118433653147038975702735900793515312149577733194009715207381073685783918776427890738380333210341205908335884789667472947653689121231088419691077746426440272780337262999072412168733390975220639137257557178303735667407549853883817071343961391799142868507075388832035767622211926860699830650437422182615874953911346832562414997243094294066572569414307800580380506687766089650668191644749708417893020582820610167374834112509581592544328838835926578020956780109551263007206269504742260846950207410745451033719809284620862471862208890488132663240636446420786562525102865601497553103784171516313980910466221050712209443546531457460719356096534586391106329699322115682565797190469701667407340056481436589982684316581188991261915295286070383098787176313347976868831031032788279697169881573188793602960585231268774240371062792110643534157539009284996479721812815971148370706411289733617479675361578379047859409876772600424219381584454094285450435778640776735369960230612866441945787973641464086790234505829663560036974069261573070686218627777749706357391497494375668438910049801195127005020906953056685674297085880951364216571130862795796777016131184178653750884165480373104899877446486410104621215787753998283244531455198503658299291182101197620137196565432264911885850127409687021609176526591974230195957163514560758528807223958750358433683495364191452188127843266414684874915066897480602494858645499561621099715225511877825588812048651395898250999911454518827597236853401842658389755796511622547968746409785146074663609749848583886726878971620264849040046842042905378695107302809263326416257148418960167128475873851973566900249804057967891016109336412452363103465867685222485290697714650403608535558074108171533236760044082764933831635270156137129458927192966478534597347693408684496879144498128726614783468123583828543998577693138650411187859386935304136221191991632681570614627001495790664367857873716327347144648322937587476249952390456917131632068884280333034559941388491945232911473941223181587244720410460341090723991111574513150451233248705460252088653243732899938548945456475521532040902966338706865782971196246397052194412274199993546059678064021542560361565220616185265978070951704824871883322386364807729314731875782916728705824598109041299496156240472852153860719050434589029377099649223638670845336456416303670910855240194213664743275916947459243835262719257884099490710164743075502899451773710867883512709917272381025254715121331736575243692687551682937606498395784072934952260098777600711137108597266298599755971272686656201079504201551118477854201578470762230100019722377588959820949268216803855580362477167935460013531923707849448525172735241874141983953311949032682910926218985708933868865141433593026606129894745651319707361048811078807852282670062229634357741930699436580619603986903462716867232561475737547451908662852717111550003421348192465090841800681722645780762925059074298201293039017994967015612630218601521895089681060825241863259729429882371431926393554411321556056385582785770484753380709274443812352248585772302486717786748664927816624414438684931132020695537930119901280868701092302756715429455848839486343482720640653686854393069612264057665567581735492879599585696020635054740557854639155576586562671895634985890909472176129046779565531167241496586670296340329138005086900315388812859781399489355382859026255257385116445826067152447952435400517113054034494132490819194891217180321215839873224184868792376796421014368366407600145138979617607377895561322798250409308386168895322362345096601778958905078422979091766460156074614362624202974235593922423584832533421177398287164092785822023389253452430153809732089129306865751796341328126588281615789334849453706510498391156590573519705328338672568671752419195973716249848186540705618152642609851800692905383314644399751728084527230199205004054185006045583500624084675239397430716056758594473300541720460577942967021416010448667619519832070959480234661656933116430528198714808765535527802768142755122771542397480561227362092158676309519811803405231620522661534877916724838060885457145112493126102065555748881158338139962278311367513676247461056881587582866153239101404564646498366520984782039342584928932407740572194531082738399725626173625578041681401857866384629758833271529385500140762134200409688794209958860397219909010221879550028339729233933654018773034930705683277697847182176396825163812282175815856152165846112855247909043716802878338205527203327339095453676346356783854018690854771988898748785718294757919906323464238380579454904333407899289645189556560493144080027291030493546957859512105848371523735256094317868673199410668799225775551352535869575897959899726379938246327149855499206963948392483789010166720793590897844656170422319956843954202141279075019878542347813097969875124624044513556421779322312037376363547973051865255240559869228873856598814233315734660695111079111300505355042224189574938132426225893282926195014007164801379964033036245117899268935121990328311615194877551065347628652259090143919174126482265694153173777616173391919342650092299314802995088378365469648299788608087743543152809688242784671659830853896987142418201122520779066195498485848294240886713865205788087085683775094382536498389232288195083417650718672164531487686130326395229646111788173773182061526926402349763557957627346498850454340624606447969644727679663257277024056324503887726236198541289605485169224047113576168449821693999990664843861900834218880465279795319926122208442113870661238624077328162825318436802781358026845521739486042843607091897810125289679289945051210392524259816725408519013862571605398125013830825921775275627711356276756555567276857259131065713790198448918728627464822046875139287692043687126861081967349110956017588660031465185598088199074703472568149698265788316028364812030190071958321757422531991220969249745241394682150601267391594678717263177701090754491491200810169743902449032441894753643892167305559492321981013937076475202828641736549644589804644396128473360858813517803320840035728578732471237972661898589345272800458447412669231313491649371554064733504922790378305265669636215391989804559860291495762511653747033450872629322550694835258521726576555077514099188193478226625930746071030667455707529738420231387009319114855983024580492647597285141947025154439334267180755810929812348368796277269927823166781431142644956573180526085208586723512855632258780093476989845125590463243165778151297293952731787887018361540065651141666623616241546965251322039478441449513229827483826094993747882369988124875464314086315783841923159517289552656729457306307886363631991160315415018938395139582153796497069243116388294473979217900056622783328855710840130252819798968248959144380241797347119734309656939954915859751275608971354706467599730173497412863381485576700897984053253957791027832109011149161870168721041050112783936627686577350324075140704835883099252565423367292128813509388167601844605381744620284222170079590492029092215110381850605101702714287118312648455724173407112263435364199608186668831908543980925280142695955207007569473948740167513032641874208154152762758435404122873391270132516939225912325797419710703798948903450285515724769017853423145527389401403435959416671228569460678468628981511294842882410685997193728235979982321177494214081206654065449628368287474997621779039968251128019420365433623162071665499422153221429743593057536701617545149857067594348171410227218126074699768017197035676077323573413389875798557149160099069904948181644158787329444403131034737043496307905565575279404110789484477899661575958402339612307431520219858133708834934671252895696101206502658925398039820806647481771257277660842590015392519544123015403439369066293872619280673977772172554254047578811257646009355237570786732122993093553105079135024106231952126484787935121968697320948158927321768991775563354031905835797152751899552927391265069633380155449558315332049145186495642835339897987616975470352315796987841636687273109249957139457427024645959299054770947092551966631453143916221291973883287139940395564389006239058842307388661016974348042889291503099227606911118149891987754139386487822601122685157391801773510410890298072185121996037753286293499747743774323387415579286174029129875531031279425175400531663602223882291760408519365178615715243577722621513333188748113265444316653699511369535294662425581404131155795200001543562877089888186132227185563705086057690514297937232364473961613967843932900573523215932327680946493516543738056823071517099999364852339149914175630331263667096613384143949526600254309086518029106507256804104026352813698967761026781954181517964367401443340134419945587369545133407044698873461579571669611112691780760750202959053245884730737390605668144285889332258887411858341503143239227486682967979890594439100796013969444063900171918009026876224566639531059469594879274290603125526197774404306985006444640159923543864226036905467988236865983851680884962714779614373492277916580557443782881507202568504672087753939384115554054300085496449718393614952764097086117114176441528660829261144675720328455587011897202176756621044122014770330402863250615084077218940449493246044346172716084693975171766921364650086300206626701959372472147869462437631999903626475601017604627599811789791387696639550642344837107376747470866308933809549163064633049280447666917591429928137753074673747601382116179035306853823993456265876576725577265305777087861568328933516647938522608605473904885411551190932124917173372291127686459404462301893146219381341227113045424040197427396111534645994592069371559066382708797067015190742973027339920222754925835671541741586196890329526014278789482826675089749689134031902968341731941443248198991268321569054861744263215898614141819402439372438877478546176841585461827993259712320463441592458839860268291572603304152431291585153070455377464648503730771999802473103356789261245418059892223585680942659978103664623114294978285690555869919379971118483680461033450539023337505285110078589155565697307473857854781357045298158122906358060401708952844405088426811611633513723524503992450893040053631344888810419029253718686443821174939897160197391911040528281299666477960942110973344175286832503306635525672516112057829285190655280536950869461742976436527393605394207391082400181009448700740975737685471461615090094547418531732326364704555354086041739953185452346879277056256723088691507673176803200099697147562678073293669258143553823868890146335677081747456547425855446368226714606330530888617173033744251546745053212539564130424345885421602728287490745712525297082212212315515994999085108142855882594385562285057446459776714740709898062880879665760703159277921748151966905260872844051716260399827088240505951776390720270530431558709705750545971019277982664617641468439317605418335328691792544409133825283554444207471118942379497829286602812139046186571808544579247587482822836113699360736685751791334212019585162224506149425513244844515213743679824998854066112986055046388667297583887314631815226797633298846735578255243829462289497509137783325707459038993823314289127479006746860890879916332329329617511385759537116796664406759686258746510001061834584237827677014721812933132276252005085898125403988450525787791345216204815629475797759642215265185386482282107238699972683124531387765518608336586256954099869627031884944664339279407314447500903855981802510950142362227274343948185109786931805653117667475820211942306849394950840860065164404655629454771248649843944306041294361100580001391203911078406922435752345666257249463593760998552070836976517352771108222371229027442144365695207963841520288861466468407759896412438904754500501869366401605391745915813167984232224006295682584290540045922494935013379384950348193050042977756175030457893973832605557316635312174467315868312878157787020819135033246836179740227218908863638068663307138404369081427223644129531538660303036743830392738005278340910558085623418925536910981054054135101850240836704007847077113087716261852257089266153671501942132477817525255232159140594176565175356118715879080678064569962803597945513722086785571029242584221261215276848544024306415440589800171277901568663999330771944511733298430421297972626547338145258551198282036747320055516706245736420787488553564093239191900931807959874825214712686205542062194743736520361315089585858525949658746318356175990729069740751511580375073200729938894396736301995935662468796496105532762842782477353390214637074744353959563937302534428669346176912199505284167141312696404164379889873160032981447661761816786706111779729712368779697254011246509736112323608559980412458695373819516089378223327126604274989824215357439784269853266617394730503583943847885587696040792951648272407127100360429939206799444935188768220537402203250182747445188047770729871048351834908416349666827681346098179572275279992380647937387126582579839204631624520113101402179808874243200066649238189861389559111017062300343351357932447798910509796486649872525082010639016207504215854246709784760592436187339863106009592749361953952589618203192554690021215996727994277047550604984384951736491533061166331934237304613445885369160795538298752233529031286914872089914137459838323324761105615158023574941064875164292759121343602147409363769409820361872698421045940172220613000207326632400127965741072085530108818575948613145401447390901580458674828955093104953554388934569211727043671841294538664263811288253396449462913677423203586025343529798254664912849327315897366442225612524254317770639690148884874617041304867607646902270596037528764952011332679279237887619354324690438109716824184037022708585454914813329611043981732731510080191822365299659505002142146903513609977502811721149281695951059417967935934588565746782640453344225753868567170965737038583638251812483247751054515321400934093309117742977461574336461290356775725285377579373545585131523556604095330535758249530625672673175176255200535933725991851880770362740259285089515837456642185444521159680240005119865811713218139731492386012108168906822510357947242690745272844952324547368335909140329259894531953887535045995885379030508841521003675339242981021437287030680459428675262313333521815436468423910651651107582637963858763434065384194089026751861231671443488917230855112943770529419715248181916612497818414941935622798276475430118014024911223657299331396306316982328237173125798769957801881379317869794656444490313764536222389395722690051584977768137749075935909902799325435431491180506562092899612562059694413529890886182344994213681164940169243405662330348545482200206916884642294327364771805154727425555358151277979954766478585452676141206830078953877935028248503396124558340875197820029515103464572942028222299136063049755609043978949683557732224731285612186664474175233482182684300224667246606998918733232780007002293844621269470837231464253239927573189140411432795404166325676389571884180063053462217835714401932885986090993912930381679144541490956095348683052046775785839392027182321876779165539387266244056626422034948777005943665993652690387227605683272216524138030163752782393426882075146881695166785197839286219875837524715251074748348446705280534989510011972848308316002812512954946573651858934779488924140098599253872576038767600137465777935650971987652902868257919001467508341924225943950949731774013182564196840517375757565828625487861144505163138851894201218796891286349993301092239015974855250641902799299030579241472327879084576929495490796389766223384629570825336742060330025461309299724627921517877661573855482594377566597926109213818072382928386003966031452181624855840810308054277729027541983808124393924652362531959693904767315634638460759727898572585252156797583234983826189726088939479215711480464217138344797633177898784508896999806662942611181197820671582000745291072823709315412649300287389511248410467281034589485229265787978712454027263414618307164553612429789538282183081994901459138595597758460825945908562479228584153652104232892706405734866329593161268476535071847347719261940095125870382563327220007647705311114318350911083407195301932686764474253229030584232686553242688469745163816224369598985039929841630568144780198913525243868220301847589477541535672792124262824238108517732966527898992666336718818450806815474608673243468607872285608638447262857521322398005825343302642404461602462482223915134422945094491471731520275400750638644024834646643078278120729466544675278863384119287254111711115463914061332027629452428758717145413649435114353171805592246399204634524253081694551143552938215703506702796897166361932470373741630416953716908549937645396116287835349864269802656198959582665029005689573105926357639638061135630033445519590266228416828519108845986693729142936365725741112682413578973811812939802040085540569471754090660577923733705534106840820773642675912364239343200352294063750792501101532099933999988171791848280369392136940835444846506291868922719185980514711368441060162566134615533286209861779032398087067280615804347103669386474956000733770672943023928217040363159660982457361362968070043793707793247358519000407898321593391960112021064152393346572106956996845023184995550837406713258799997944753288132630626543958358065536703543060664794709675222693359588507062916644069131886816044791593656905113698864213893835662215398953639089932671508025838838252473952675620065827866744826102948839138570680575390942430092590102506620646371171091197510276098393552306860936134718266010617842947832176280386198212709633836624709962730445603365297825308364908434124229921711303756016085093037283298093050681489508255721702518534717575619914922690463653169019423509304878279622625363741018915901270722729041398986455923174519109040860986254028664772602062801085854458548342044802585383902821709593847334910150682411437210132271483324817270767462635028934569903622566271393701929635880544573579941620175298047050345305124657378126126120043494915647020291843937913666130006005122821382994319501595892388521067647588176165777442658678415436545290180412650497179050456725233231159740541329967387578707558614415512088484792016301827027212708845234253524372996554342269278290564446733263252665071520706193233890665573677218885979672824987447926475708104136847118051718443439505320934988473240665374067728908282620359306144349432894007038206263698002153926681516057647482640048989181486098610350965467344352786720721310726646939460482183235710387743825333490298684212474289657562619330647802729447658294616573994505420810399485480601694206940371631995250079094915237359936811554477957530883111712366762477739249519436803481034375437755277835959101345826563376073735258201417132163138939882717529193551969889471315416790317971993981479269861130966039237141635192720952299268388391238768779433830621488379654682105874608449985202579211146091255165756983357885466589628613985387494523524424290020027535315444664792059980872173711761634146833075838897735099026013930972855834552265449439194681354728716854195014149879253196899232257928691743777649926891072620102079494350247075034333274951009937769584324909123415881547668023198136011748620685112638784569778035916014754998499593339073282468678976946584885329808177951804154326885898063651237369017401410595456044832457568042414297659412082463171223833026790776849332912701208377254061505542021207096560469603632114339005594957962506203038567139187666309494145267183979402033857713134383215620045791816267972138670791628565408769936601365663178297007707346916950100775445651041288645091470680997225912113342111873724572059528317418498461006486040859705510824148734443209722778798961158874448524484728262935790569357957067090572018333028511963010990563563731977886731024021609859503265264389710356246441786348376575007074349469450654216391379552053978920337043640042416176703211424407028625643934884252211788281093353181969869930003492902416623961486611171686808492745731304248292722400871829089945960624430534759538224541139642218998536376094742512998606044774943750288657884978340272705567655411156112346287982567409082288106869645927053215988277105287034724271715881305991951090547606309064159023200105300727240020743717682207161248997795219458532044400941153660758349591381163259059870898517967867318853438459029410189355588231660187894821196191979885350564059878735492749843342887158265691309457785936992061397017765821431039264329332523254335293318339982048754600838332487668560632172576676762958621453024741580520404844695588949470117765947356410631672650941933387867619033180431505408112273333751316056765720301132510609577258562188150503251415225743944281556318651133545540714393374546002140993242639450798763145192119441965133322785481850127715874489764464701004620613695210586887880756628046605323343617859767739559525028542288784204472603179827472761152380189461871529430634258165769405217891825441723148582478963780501386001864786154496206066645684588356087958654783043771434747689594686776381330741544562037908477424207950209560209852491085120816229346955561657239598641698188595994124419983213816349024486473946148415062128875253929324255573641529507009053386885261854882125321634956097391937985448617636345479212536566641170710896803996807695268048663303432675906014654574257612975764026080921612868971470071535323255505755648081692915373554441026595851053507528887878892485063865496455013416667508788623214079950837027429435895657183993333906164612304728537456866781367872677892039716402432716438382342325268466495718835591962788913843330434974467443910530889440246804547334164350500089198590043435072965191916086676431995408087617062273843408948821358955865929559992446432105555261306985387413494528888329149000573671261257234110434086598222957102091879437466194736655630384112712111506839416363342899110489441273731268631859401282230525246867600174703770410824323745395342768058796956070685014907131720772988065157895923937109999828012135522429404520110922045443660690632319631889611184842063054871077690272982923269084598685909624744227787600858128048504623053201910289714002328039231469446807683450329302207762114443442051458239344325456548845360887482421351861493981639983926330330213595523311697755451347851135597078667894807723123945402248705218046694118875018869824823480443773294530679316154184226060038188770490265718437600738817681426108231239083526320122010466638763852290279411102922159221474138028880459418678640857119493538581233992462130712609392678141743176138657769537011939550164254910449983809588088566253320396536780971112902679097189071137354204983581244660747419504627617510855870538854678649553444501902325418105197544920409393629402208351188426946271992622075563626096422096188536461208013834229029497400266750599453311826829673092068892024447934179519466997115763014515786038368008869732994221257033895284617323614249802071248249915045195568256804073890340180663673003274628211435744775847697423316447439752499201396311784922739841186370976954142174751498460464248553627458288655206568695754185858727876276490521895672253369854494369363077085549274197750173226749230772342598604305923785725978745034132638979553471534161546759531766219836365447731639277789133448351790443904105103443791254560289648148489490923404480612335534530535929171530961518061886635476452397536723760960942229009976776650947049990129148660875323546912632601699912285976585324159075938877449050140230071951189945286488348969319528008437582690657482367314167832848768590838773713394950978628299963198203668923755791299353569652827760947075211480752713444365440683147199009593674198659083331229606120506133819302885022331844253370709169720351855317417816221107111343282721392462280966924301432801229190239116734681022401607247838321394452553557645017916132944942310657383583356609126036168937760697218977868005139516623203395528399052054320085584929867152927968130284912941905969198258730952175738134054835390135551729189780642186984249226076262150550156974123749254011237576018859571720046385258563757144024252317351308208180196595380193832545623179901803176617341220947201897696588616363818837672265280013066175031702406615077481108506988109251910091303115965270609327393047346784687183624094786969518687797531550574074138771086491240513232292832215938349033132951140640328387268655443158400022010153001738224571502304016334233230658300498037513599749341884661355735130410105522062522958490236855903860669453561468534798026957116905388298748423341081821994050475639494661407775386174648808475695101800762649936021200062468505659430717113428055078575106193155896010813028139937906830009604133012030901695081175591721153931548432633403534420902408319063427268378029371490796569366240674717917204464532568713091804110637909871568810584945840547968925531176068596115193658025855263380166363401897574099210878579912993644740622308368167730541829430862958808797200005493639569931179787471481883483797184240124668866823939012124445298431419184497196864419622597207912098881602387795660277367973502742502899458050905395941983697065103326324558848209819460453739761333273470728045658289715219353558844606774881780524116057302426964977684611542020111395723878253975277457566220780386550645541805160930607985825227655108241572176596026122048657807195428000353744816748252961794698200481123737159609211927468679397849766190077484952851645871738398222826271756594505778806410876665733456387895996096481180404922625689523175147130849749790251331104697619614372551780958106065326106906500059954021102894985881854957731473937697516164542918972840876542818732147496158173843219721908025849393636051925803461842451824726674082026525608068702376364743610498963719584896434965074813308535366484682934427495688596462544098455549672870149437002699153607926555548019347531834073325997489393716285783495068539012296774560532488548481692425879907378622614390306564258212913670458810922489867415309957130010008418743534637858271971404681554596518972445533927284895013330749730701946558497653945187031662704619614161722593922809718154070262254694723708231361292382258538685257622128787840935235041856729870008767773975647021842618343620402911144750318133554738236601052296776871359818074637347619733244070589233804389507316551944044280554061236040256253021374271937701822831974115206401231744512711319338453499519331424490783013305776201676736675743904513013001094006469647983112836142592730947132904320058176401793965253797391094315969588693261699982162443953785491469998785985677394879566478857004554262929930478853204373215691466126011369167466517327732214456964630016975667567076201859010812352552061992236963481664615562128806602548735891800868012321475591012471224151719159656476721380622719219686885820028475434504597303949651200573929460723750915596107698640349580385972091280946995657405187293545170599561566211983689399448130733371186086570506250879919771225356317148762539481587656948519850702622131498110445230697729072733212984371995115853506774446981733204490500777946578491064127449797832983330437812013351368454336139084704309729400446406181340843717717014781214436049219913673100900916246177239358844924603532228904418369199689368610671785686665140323093151764404134184524001998838549629861961984428693227658784158251137891280967603621918590997121967784743654548149482396502641375678804187506212499241798909575701548112755123056761028924769748175367804828672529685485275437478493941737612558234256783674817554127332535004282496353778395927194354080373461416416124427410583527747910435898634727913515455925558532066549682392906623780780917433157082607258720674362792361160399374132462187035190848099756330260323981901281630551706062953441557505758943797894759497750252797063715149734242928552675271617745820545953352312829130933123834225419879690727690558658006401608806705719346477933410401167955992924304595365292794953587711461673027351982989965634418681877851253814323225403221847453467814341275215851398252074296351109397404337460428364536601254080202314636772481283797077059581436192177053774210528347228992951802820129728595054566947480628178328332238401792703548312926233523646268788304951779384715818316341380942317357183713838968923712907040051221959437791890916136125273698234330677484023923112288538139158122105867104220979929729968370831354651291917555399760631285442292166051874677441013558540264465650056362068275169057280340977515158949489273910546320510166222382058708849519268140909373143319443972209852587356974852407758356227049238823546096243592186350186438458507813844484556488422593192305371478034749085022418992081001100014197715401840960599093394974275751840438985816509969507682577975789493778900257017424764977665805526253719786267506189965044334491093060982550065803600437036666550328405981111210439010207246232907746543644536445427829987855561272833350533538397000421352109455217252580803430749740871641680522172789287286273810667595087614908215305598370471065729674678151117166009084901888907174580209310503257562361628703561553865223523564553484096259106460297822085760785119799710763263967010297082424725672496069701527160221515201185238509265431019012025033593376188601670531698982060704626839207249419502621315960907699197857580390989619759354258648766344195771418112518881021734562723615378106024568777103067365590404185727166229029866702075409386072762844328262244144947225937528567652812091581995357260480994057278403151328786868405705488810444877182605922015095385292127832912375577225688220575682420667886291716393638213451789606314514429278627065179247374605267385760473039235792274687854969540676461443214590794237929099227540414032459875620046121282664829085581162919617875437251106793637017958131592251103981682651165439624152775579261494128206073214662293969929106750048339256353476245384402914609395197812279856944568900935815584842971486912349159974065052224421645020148873625987165825849551124992274264022749016129191406529877800769239344308303102412988877324133061915847875212017068197580924950450232321163613748259598285702424669144054865377429190907753064460632414113750794773819556907729972733273072201893317822330438852721411411181967066249612998412576439561036967681555786635768098685141999868689466620679102391992488372146471076766371802068064896015919136845485778099738230989351289930939375045513520207897382741758669133510810019924153896339790760638504278135473424726442999339605437686543761068144221942533917580784804080503120747343209323548268154303004839430219246865027190236292799056664612531801357203988028375635282958963558185073959307895725655534490737684038258638725380729559396993645013259008880014333051975154089845526289030565942159549099937354961577602342645422685614183131922520596905151466987490924050744736235644044020811544479940518593292262108334339144773324521549626189959280947982761794016738384998281319890989355413183866177639281727981086060176136253569387725175095625303389256270719020844261837561742678747004870614656002943353293051840119197008662356397632998942628043702576207601913215042706060583974202607888302906759233213560140520130837708062001019198883912531339430510474494944468547180334461647502820155430858641831265455169919981857432015053795846483896803125204352514342763763387749601162185642332174378213670306829317353229679987751199595338841685661620605851224255418935396304369099331304648493537259438226338324489833239514792941222496072252874806580702861236464043898410637144700053827121810639772465410080516867484663759789887447978724774513218657829202972458535705513395107952278083971697678756117005696095781834557511197815125699447278633128174019529088633082191462526821025916090000745027141050200066004643525996260061848399391899458492771729245604547951979133083840554988143093505954242894832093191505162856876870375500584411108050828546823734353266866300428836129649397288777912806100221890413891086795082052529200563361415080391088190091648063925815316862528076613491485964431009754287170571508074318157061952283388771998256486638192931224525316582189288949436191487117507241500315695338791793984189451445546970041873660738950511590179741301406521245701738698027680797814067788591956511358301824280152643142094578226654242542163024208550808953582196662924092049763880983713491465337720524499356108056747277332783822129613819092260292949176803763263657491636298576756827551890851707174188601459808882708085691222294243268521021955163038520145943274964984117608585902965364344845914289217405602753741446372142169191306031897098620831142691205525594326824083669950111970641555808330305171531538762498688317735107746303503334769637823976344181621601580747350362828869738207590558096945307756758977056761718753051771402518633208581165010033642096293715015065151789620459843876630972623539242255174526040785380269929798889189382831696434559442909086660688833107808357130267122345439859178016236671405785673193073730874471019136770258030743482309760517647261998647508499775536595105201268043274623680694773648100295631973994763142236740207160163599168876724006619339761430485283922441063829608090471360901752302304171909483269799806810688902253681636597178418097674887790792168307194359652282338769200529729451334923998126416232271128755994214277525988382035092661173168394324091404050830277200854159192218050798450498629853483879882192386057120442139284197180278206977582813862638813669478741711295453466956446262465613233746009763043845951204196145962835995858642798347395052598114750176311517397569500351159495163901086917885823438158392380703459806110730582285182807566370907346559685519323905876608119001369957251493753472250404512878711683063935918970288639406441090545925874248056501428194341833791692536710958863755594029144126398062667601926114159687493495245985259838604495163704625739979934954406473984045260113045490138141131671149644446467360532080666691490486404707805520549126967921223546019675199132753746020561142869634348924283539584415720581745369273676839856441626654585871703214048214317665051150839610762495994006168342664927151081483289626300588885653031814011408851896836713424051692050593530470881794873267736648921961329493222831004197834196287926736229341714559703177967833608807739817059811263865462980999499385347040252474836936063058665169943819756913953008494067018123706014953342114829296359892017262080214846073556862913944345014445679430771711590581963375330621374074446265744013411220319498028393509275522810674148037000695626659658321863922537941019934967518389655079013512215821312304683283963316415938036008709800378350987953076565742287224485772633556105421730273197877151184438347173594571496259224901611423222885707874033978511391850827291841714737940529510579861396644171070870168835236089543557898171805485179648632485669827836508970444212496459827055248751079492722195395514718252551458818543874105577717119833881634566593788962339287029359625474791937962986430758289988534250588390685355080619116657190051823047285814408844178840848194429797896948392263171893379784799378899516749539923485732230408064002769249914009325239336430386471984848769866088651824491486948704752114422761347445162137851695538273910386675172476963261122831990844785007909965259078826229839138834455552900280397436976319884933385875975449989626653120802037823919351095639054541863207421116193892783982168988088436769839075266834519372698699867175626516504369825441675809240476121789831331530356691878636736039984412675415075207624791305885189264953834056300753621988574064565120844452648214463712710064266832537393305551426020346996368411974994691687120386639583883165870731562668397630705478438798163830442105706593342557496851102620181759191788850241057028933545008824244701983889979987638345382152331501342175343667182625483712797261047953868253654925871801724297012903068115089406820530081555889173743993059646618298723923089565833988705014537192214545164485227502896949744893323220932656899314235117895895766953700794740171413713395206895747539395999627184600299259511387257769507398460761864726939785057209508938973589324564807774399796024767925054267901403016957746816447502356456713444677147014108430169036766442831353054204504630323579048612160930026008936674853374191233171178195442577557830336740770145563176295765250318747940489429004631458833753228434091342047922134062538161089094840772171561324024625014332067971330867188035287419492515855721887088827115863279793880028557420941458562285301498637667856463017643553995946129686486686072830525229639383553786944751683045597452668435289559484592006346637152301463629912101139450371038556286912102252192632740931490834091078114183682769605972481789894269047336298914569445334598758107059228015925333597341860730352922197570005971725929125405847587923981465423029705535163143104064934240822515683555071044784784279760451530696183247467499731958899295710812973764525512784003990326899105153775875813111823987044840068653115772399076519687234639093112237976281277940553417855831171478058304151874398740942361112399338106199465032760699992492105680324408808155080333357488989551222692284347592222746824534051600419025684997924816863988005670268532085108927070501643412552833173466330883958414113104263460177064192665647492075710372237032251903681516010818860463570640034256580129307791909871858898992981328314993473415515067566350611366195395445394155484115888025155329739189478778222247363424314682853304550220237471675929020757115637359909304302565664294961074548608845718577966368589201350358667510153448919689251385506467095106445330331187596176717538921234750112240767803164413315904250095662059978762211210949296720617472544767689438382655600775129969913843979012990614398138790629572717806370240827605223341260369513575899427421695034802683633718280005679636257816812068478867664643727008878772872686433282673296048076356682383147761333237985274210905469964963546775209642430387936915559288962430332590189915579419447321637689127477339040285174733703780068583277981048883745048398065026435036610423750273737303045501424188024652962098237451632311761724871201335513086228059102206134402313255957080932185527617086870605956239144121562354890098195031476444225433265157876634992912470636570257541536587637853580559715379921127123038140981014778851868477083747446835579061370155433033529389951273570905440930325932804841734158787134898338482487162425088634987636586071774960579666566599226260826457199097332746469228442564780641120860540407557707504995061188750920006262916422591857045043336735917781154731364916590236496701971050931783824612833276337375620920982187751128559173354651275289118792192271549527929228159811436601967907976669195889455239048871469922001600295276605531717353004911604678995609998936391352441586989781958096441385721220639952125767592823980687741301018260533419614888643907662424372899166099010923831216535675351895210036235433409666502461466542391760858834914499701743999956972135542925585943497467959674496090681399499776461119675587270931081652479060023982249663343432306770376489985145387436754250652023273274752050715267741179933795647839667799825141551233668976956001624724939990903367802942608584597428134090799477858479195691796628727187666484046773415480735359691809190117864010480948039996338174254904977135945567957240784386674315639982462075759097828346787498568325015476657398982188901302637174756067446471824730629357234085506766464604312873680232949859591453102333948718646868460580100472209663118683055558927222876508722305622756537246359180413488905763854567494464077046832812538961003348188207127500984690497911750069683392824807788016091910255508865524081519997739036559297530732307416662446468836054023628056486018453205488554076363393165183180788893309254958309397459460529539744701960164984473093529358654619523115702387746460412657502046835501402127103596984272043466461976379411256263477125309313116601649251612540230637890267600553662997111720262859024538835244485887794263916420780824374260001314489252855500434325891937953831311814522942453039294381407718478783471378828257300038171479807830545168212935565118376630498232782876516882056736641564850974490192982813986481994884650049173624303778144858283766731021663293329703550008900207316090430948881481878178046566279596257468929258655260767785617816522250328884233116503252099965067960093336556485970905339057064932584458097939969207676015090355968165698581061531238970422298707373534162978940802804590910207950557437108944951039554840902697142759935056780109074258222834858304954894086694457174127750211760090124587052518561351542936665799963884325334676031529636978044824867101137831635114089920483229670553573151647977572280913924489978967222514513025908044507531731289584879495423258576332209047269511266922552911586367106839165813234086332652441444015400979285404194080908031342995317450833571360617962981860919983884204730404575181093370593007686465734392291480042541613790409575715764145516952140927085684966383089840841700544590590865552065144143012214300930440644248809790269652656108264654809844096132948399076601459956639380440822552586326155507014205157449920640941345430696845378158324210590587426181511132133336452313121424313834133754937321061731470970217320156829132493747901685980517292586717040317099201412462262964305594797063503644641017120993643998892497876551054321161833215176248704256265443938015474199103770952693752829879282424049043115864433241797987234079680659210166924810650162230733183555936225196802535286158115389095030216778973660487493815507793876071362832987306383152748083617836197454323087660159086005136564854898328895076657479503750921720491401927108960304838626818600674701954947133872178454990928231713367569989910433715898261237814862206406567810987361170021549223488551997800970748399688868663213186133559547697926193698455998854135888660856220641198469409261994596147568179363878500431765281463202198966449144037630864553824026106872208888392007750678337613588075711906809673733709050139055836185258012473942629617375985163638015356362049389368982931437338584849812243401029212049234670556165586201462515355132000993645028829982667324890077406639291672258418024975834528230256148441424248693311410177541441318952820292987807022643169964871646402870077814409009086411068488436632278298687199031430233776156057905917094608332208982727017180809493244907689080896382747882277097574704799017419241249666355983819955885881475086429329204570086269972193498819761045053173419048074843896477521521367220208873925784737314678115212231011849606878680044915417590313572739181037088045529029379936826220845342230228658803731533757918744324401486059839902087344303736126224914510891912097962930918446670301275245427329410778357761125258763390417367956080634133975996828170525962494419923191235883145628304910616214564191648218214975924292793399879670359858178906214287537089776771443053706296613641722179692112233904858664436787771445166730975372163679620930794686561532414469340442021493041417752765773553408138765744382441560792379796662974416053412865068168596926290090777060259911484462923920151621720992490082026982894917163952349253249237338572301697671494239399989865529182269692633365757656232920937619576520999435535592952917326152969394431942083732031546527452665025970635755794232919121746738857509643446488493042695744153150203895974253912680984993044409280709834639716343152794687571181091312146719588630621106723067973419367698975530755495601283163034542273586291880202367157696806550798433055225428435867442120299057491468351544718143519976721407245602400232201999616686886558292438311476568508440468250772025135069740873095290790888213523883865390413997516067168009066247892585748975187340925449735087756388414725685725829176105866073564626910197094872042159543982677704191394739297910185861230928107459606716261040463785375904702172719412398399775687599387572730089757394607901495280274052912257811595029023615144461935408193862609862136251457192410368877782981268350917417259935237434417835088650536957548636595269629581376603892364776383226784394617048901833602357449827827227749715428902438448185255183746258806273426328393754744010048524723678238118687045876152579862533149758953447509240346198790317749368333715361675787886653150322585991178713634821084137604334087994611713492475502789391092134339007349653584883750888522069390306115133487193952652354246809516116671290322149861175089395177747934435854897364584251052941726894496034133256661942845390285546039760680389359628729784311980126902499726675527222473155716371200636829480213551296116218410415024903592985501523572046262552119033337018288377462802013791741801152046768272100190466015448886090282995562199470326861799696744372790187801139152923153186108514930598574684077866245715578192117515530345609938073286352887630568644500929085829127714462057516897126680415068882268810120848358206562098053324977025991657930740622959950400019029731862624432438517591858129623958524459391068138480044238072564912007699437639266317516152466474481799586664426753424395176008963720081715610036879009865597914121616467836247862165324600805361014869541488217710006417826794286587055929719140472975906687441177496672750337239521075341868508924938758876200842773293680094703395244339653589168744937947400008948831738246732839012904791072648343740711617453474577760840743243941346636630706160933551283418654370734490538039422283734477380275643864176302226417722299587807574461137916194490895299448950323529325099483764719517859778493379161008600826753618993379640294867308988566510502396287573470763869087280757917101947001007269006792158636422897869939965271897872454142856041411976605083077896029088534784292748887297616908541789108319354588853484381446105720992119675702525188403414926422890803166127208866438440960518857901135872742092329662691140850478535486211648876724176935021936624646915161841489023458298352644528466973956659233969896215968449751603799848986729463239647453004887949804240475996118089277244152065051044672501675273757922784722685850374527258032211510380846200075211269802446790221392815137924356966245681577317559489585155225957746122457156296474913677566289231011620534060038943863067389747346630631420695833072065674697631807474790887271449520052228347092061708023198600427588108822500327730582495944665579764681828054395753839120104606256689595127164825059579190966823735478423770717289089586903191107230550551807352465267315888394996896233170664088564712118292002939370549402175928580623328125408322251832214389669682277404854776278277533901138942968664552347099266881686163331323327437879524664745529902894988411011127495085591353244672149819406897960841063452534642846008788417115704452476495616492775802280372906980444600106019722850126185432553174717953092282592923679541168940702469772552540312375270132449465890723207195190518424358700985711644194017127023296611140014033009442010057732734804884023661250590246026510432439981474155454743071360675082408812068763654896694021108223659129947663538119106734766968508649304350984280559294361310240742982758184708456610124420212751055947476119836075675056846811159360170263773531902630888355851378054043840619415250045132721927969456149277259666995943693290564870140543243050465437983713477979444046054034361759529365382031928281824332432702334077623356275747561405041390825820938122291956961068279803902315528909760166809347785856663692990353717486351966023431606707553096517712603864566691153986890126213797516032710685125257554786884309005548780956986244740705173878145342515464924456036844672632375111099026864340153053543431451994925970316286720585727997990766773966724195672941862589523324852801413695855545735789127351984152068607005989699425507824380017000984862851840382477516193899474397767528380728996519543468740349752344445329074669983213381196341159020303160924657745531863089334914375968136394700170475318504619326369303679820578438532435891144324121612876565106525062626298213069039732902329560545022907740509356039990203589305125119296473324572607673272735083562071921667230336755375342033018808640954375599684575792830327155267720624590304915438720270007858629240416119689399001484452527214136183460096557400487673648409578924991368457856704586042161866268080035979970047369484424789672193479700020896319208953491296127138258403067373848804971101970500005233397450490620992485266241480125506433794041897888709554718449459501226355018460900657045696815962147574579284152723751017749178307212625598822048980050602651881057972325711530239190036859490031320758293389330311879810660966372470719942443467022591885582097421619901014926115188003570214898875793815867258077970370956851593421104414334321175091818654098619355265132444878938624467499372807453892712017911644924776419986296698897262061105196778122138977447976923752151199442849757895899755042262754466800518043349649452628471504218980795834092786038651046010992682470081924954113870633372604847308189430371175243147671088791021722049771817952403031239455988608209265149149790448940385861126856075869624034034702669691913924445610636216844038013022235841772590548844485743915606069783285662289646293028759177850409792263741766455952745956477226098162882761581756896258110599128946982622691464957253200307439632051847514379460152647312590422763936953355063168209413164059125635731693599223077649106252755237924877702208360602729945695316986475911165041272264376387599026911078288362939826270527504811101744305619390276865158119072076072555617599276831555122009837023012404792972750277626800620373395972602794305308781737785130714385843773485846001303066612712423492642528437129693847350655602496676764291749177013618809457775528093848967649935661069900100946982095353753768694414768701183111173537194377116086352102710778868213642350555946417382596647833067776139603164502920028441095817419612312496340226321250292892197194273166469453623478767167634913119717017530583271738311578615324907626218008625824320568399227502822782590359665349489138232672737899758872544666506770297118836689134982908513065074115137544089700056681950923018414163865079077785418107324726596122606992183660227335957747457115862746294894146225264117659494039853185382478483145894656838368517369324367004079780393862737804245196125398682555087064323470352276169096350726494193386936599955141608535161931355677005749165789187234010492628535152908007315086576701754133552976624424068108401638563160782393426979894663892268074110307989485427250881395757861935045601779997383935903199881013266199107703168541731908214571338321296101648805596782306735780747462607768293540097850772670877327085679012081207895015550225686910295572274434571673351580881155394691720780093039448248779538228170710248912909318384669850397754533201163291494305364349343223450070338001040042783438871803787278055568950724377626696008492727388118792832857725387522226030493111035005949814959557642278470011250449944993759927263467302394365936666083515750480903955801069808236476045147171852087527954966544508745025050628933727640009465044546376840710597729132133889588969871327404961536393274635029206116101669682510254682068254550600628134755613645068796216031300261510281376298931758460944652217993103956690559707724643678703130351287405924525084263618527956999919661179178683140906955339221739082931037228540123786510869873733250755931701599202210010554719786809943086462684127644036476962443906108857553054141919130222295226498466469500882163419162714578684931362822447446350918235019635212051875754078090314683297968257369630458309430410799836036470274026692950152043269726308139317174293601030398887013721915850865598822048319987530848402406167200349980242427190510099269907897646783227381734317423838667741426250288642917651844062622246933148218184021130854048896604247732085919252660716696153126541621779158369539911106058772183364324283546057265943786940835924744375783591439840433809324577382583957238411535928703238339878857781878692845406049440233808939509479648255568918784389178090624867745828753541266393639411587045801616646724639858961018324803622026156506943850868064845042403549314082277626673279016930340653590746661174700125490517941190909639918169392462027987204005298455017533851467266630568268543858101494626953772248321508274360667639302795936220917745557390101784776676334662099577796046142553371468836026677457970852516660172893143858547471770270340460907054048649835559009598276488308246640054346391100400954786267926444256482954852089038634175904554073725106737120767326301807657606751025908769206272255443210777101790127522467920948449351577129031316736832194272623404673415057094568759719429731924163770394243873262136280868755045722001589748164510713200929807086961268422495525409497759986701995584794599675172228740098434038374510404019908596700986132558055631003245178950995622159696705163659768066874506680820087145175591690525286499689998883787993148492179223132631556544887789552436074384523602266669060714274901297312016996656534658874780814434600073081125100322864454094245218508287053545632483732871543824437485746210403352573531565860070032194033998267557895540543122415166942968124128993627646122175417733804063900082319161389262290318173386138886883644808600099633585148347576312922668287804879712243199284632133921272810442197966188170740397097333261088102886573333419632697814591579986849246803763264479220469993279778108984195756609809114079938312225073527241574828341347825114852428483943913390842941853233677026415013563531028000761593841177463929145007354854131870895865562450198450666097459181374533401007122083944493927728592257358930828505505518672233370689058034043595265880856434903717859469893895118383400037142363044504669255281123586786031755167526283294699147436472056133281258969607907519830704925706118441949274870885816799835946976148622633772972804424896659468176370627081735809950149832216407706939226940951371925302961455485030480781695994813308491272576171762616766794654490561864739930763807706516906875706893258597395895988890690984573712305255535903079031744452363155817421577010768325327386720418750134937356064553989747948085532102747145022976256844034650246583037797406239342858204554606984868285750268168002290035832574116897051408232238404740016261179487785895940341476070771880935642814977275199793408373139182805302906409965653893981008197816141718157637124190022143759567430972087066490971833817121830862304762686632763200093525681461040488225377387989627346298099700964620442168579904881025774527798699543342280702077846015539669979466846343793817022592871420859029535673730427233222208560749660357891215064570363884899936571935218492064938970197854466435276858051974242811919076389626447131362088839207511352903375061052424476869264026805794827095991936113553528196024147146228427769213312727700496011640410866147658625262139405996730665480593618536483109692604874412143356026563839153153418849405540795100018364312162048285914987295355086656338285176395923537639883312486083410017657403830248785353089985172818525782405599349780538514393320141566585537780598916394115823541144920125934122579983623537230206194290579292216833235678414822628124847620536025684146120912061256031296253289875985542679084500156882375259038338547601807897084235703196478114932354569176737530265089707196268086933293201306721259708883022441652823127597407121939914884423600990564979295033963339569891850051175798185528250361107436920919040504471999621076414579836306671265073398365038343562793757883890831472573261404760532111995645088193367061698036556758924756138896359308144029920827052221584922998746039521177386618529658650069630992772739385354471721249774118003970654554142450156361925516772622226885272863315357339805162603088898003090431980033536907691291403647037994465433797582934703398825755212896453056655743785241874860356649907398091033445635717515222819467142274291854950880995865752672779225482596376263717414485701898226356456050136637703134772331292318037470007368540091613544975450018393107372693969158877598505947836324653797550239949825822178336048458591044960216464144394546184105001925818363650088546296170206438234286798731886211597981741443884858529060843308674204938283174138711986897825582964747048714605605530405786360910633871975980588884229077230521867119266836770888407993657044252875910139094943309234131356735927537463676340224837628312076147522227317487883447184687609521530369738148908560196668685579448376881944453092237267996967024081980869391105449538292394878160984223613746847150984229229809202733087037464676485342512577265542294545968120689917394370103824464786178426026701579180459493741039713917160940687942299417532804752644925911185442362292729325477879368087674616848183564601505095373248737533183306165252996206884921028738934418868693287770200862949218420416400831480915764982863114104203838636964583293253561121065928069166680665092793253556225144936871185397910564389696530055825175532151149270678436319323080661601638450837667494419767936132961992111447401357967048485456927318783095704914690412904928322531990100193106034215190123635515157756760300004831017282775018885820816416297294521227367570170808908757480340172393249097984511828386856016576218506105180233632080444150696838223396714870272040798217337609068091606658128764489730904665613837242665331168067544114582380596066715070851980568208651565515846398279047264950724395725559617756437130917573061990707803595265745414009772843264679179624477061428347465459823246748529149009451964123710088170210041680952770769093431544303065301372777276312948323613376411038968603811393273065634798954351044051707064802405459403891225958070294530947048061821784535891083364628468065933921611553148914215120209296347217725484191530130129380571567329227693706199053808968954128287160137363758801483325370985197213653140717069711746730127404343001465307163615934322486218126063522523206958600088250058365880853981717713054436074467856516632190741642464039251141724194186962570080460343738181418298121872633018432595097741055602181322177887626235900174184509020405600842023450970748645422600656907046522668684598925503185368540605773865764724009672898902612678661691536584525828824720034459424583742415082476040935635458314682785992062382563760649824082167325691599814341227941709706847212239843985539585753990574228708685222972399939346906126963367101317820010190545667943276807094588871620471823791216826590278115837976880965680110179277871700908220398051511680403211008676636087299939903133027207021516352167617272924188310866229718890614078153267595569151066331245084066131555420152096072576985463748820648105071527125704803043226269109066698497469084514220438714968332163110686984076320251491895442431626843525758324840127254374964917884785976413167790157928969634479612885712468410724122913215108884705832065184143974763191490384488472667158412859624675767274207642293413024234087267507293190670208896851385380516477356392390236154712985768239609665116048806806764804957689732597907476199667640793513712298273133061919501217681783991574161972321254678247794982149165042396725155970577984437534621210689995260332013016282559205112482050544200021600116458305472363555035884672084350673527486279447783810722536789047617363972450211092629786967058661127047287170983738506778394508034578404107249674289338477135201407062420277307652361063016616937364919639514152279134895473489432672869155391114889367363899476062219114723614025415469206515728635906835855085113840113461313742366975395429037613262380322016166134288308614525499644064941537213268590993878769185336701546380943176491768655169866437508779830413984702755936015309569599926703133393796373783537152906506243486455342439665120473121436508699685499840830176092102435219480468718798825299096273636489050191311419783351221182462910529468745948311672807724190704557043774718070093221316438545574224276052628520626529152622530719585051078514822498204151978062222616033800970898492358026665689048164839507142467854306886664252791045288860605170420933374072664359595541521569304903729780961631390762201348848929012412889098751298294611767288089351728250043140724613611084969079954629847152889772500526879503686935824515888042670633559132467553726229385275844997878314181511191056593287935571400223232454401388188032806930398881754886300413111856794278371149940924557400913229701757993059249182131606500780065019188740182330480874823290305743542030547333330054893420831347189194550943990393952765629626023322221881244094957890317565910150704270382139117235509186994051091680540223658292002837322786490215100600884621078069461105814264568057455959054763421534849173299896121369488268360542269519867290148813080598105444580709040280662489686122592142901180184550838936579364913736280990170524059609822630673928321628852873633994003208381914318507349733927199784068398582462749137042288362580665617997088405373297404185608381080932654372147715990117947310662724072161683842653477589224861545066400595620598647361154368727544937897572197080074192112684567763112168604459748985618800447193741751758500979655024315987735244219024539552786850728257289754039564786672933223319398808795461586752372075560834144302403013891547671248809139447525901453126734480427786085658377675096145404026520055690723696337304573598906857905149320114993523308621799475867760436842720592426534829067339991993790791199385248981101162106247965753356049904159995312834781698599890791231321511623269181222732043878259267930721473712289725886787040506876696525663453509028742109599343028928119284866051632760417842488671996790180848489421521152879480493271577298060919242317191989182214150705724940656651034422298305941609718473177380487978987968340886239358170541023131533794524270439270103383344028556666124691687560617860763470449564962180076634586999196896736733191319731258543032384818155265468535842909947286641311449504179206514810220113414722306668347499629546756115713980904980495950990310400754437426038082650208379297589082207495142842629046549692474932194884071590368495643621392424474292396889807643558730526543591720126084022605361563231990009758696012888402352370377300220541227065450195354881454711202575616467673234901967573112773097516400495780094628732694169862740483400937857908657441098517448216343513715583569144199330652584667596538072121570486013450793071381188451861952642991366793209518894882920458056483171285535201638043492463880765525677265011418205707840131997077406278500111811741672578482481310605615345045321378391054851721906421810612258042438628672933748685659932415151744373362771064089125601858882582687110637937087719853132370131966661376322479894446117342195568549683143493519356254677013839660294561156536619847951256862428575773941985198135367436699331241406203394352521933719324968870241845276641924066312385484340813823521473139783399477318213918550962030050741581699997505648925587569615578720444808097106160772714436096465719424316788047176520560670245984349035868910312602319610772137158201125226633039942009600312255777024591898543076768316663117977914596391593741590544981304270575915531528474657504084588305487412160580838622871670475299522564015648485255631612747909657915695917753912964725883216917567653816351321981193304994962390927953653763588361767405086675175885364472317754147782492151537977887958902247428580981586765496616083316510883690403555123079518350531817185427464394901487998227621240187878990388991472010875031364280022028087062839704707665221080482732926191761546871383142039256597565972278524506027310975083849123328970381333899447996763111095352388557710935478998677903419924302087833235992060761519332051474119784601380076794612427585712457732271289233751914546767796611353755149558978646364397939566322293562469048672315707840564961614476401349662226044053526326079191291746050909997208163366458515458847291855947660162362761953880142920254345299587204591316254235086334458006381983313425603524747250650083952518837840775273945343232099003168330833992109196368736533778978481739205202209674097090913392665165393092543718950920434776438617249501859550788409053362155560504777572063389315228141576896487343511074311984900224434121830583881580790692058672873445665231665094369407421891153902561494492967003610184132269426034255649553067834992042274114403997881126777686927399145278895755123922187308564631647833457212957344418080418700075206615074990264027530280054389652940564817516767943758057252506690251805249761215782023811876453403971110119764285549431918061492090499258620084558562712521839630416828005091770935479626515959464954928864020234906449358866187342143255741611863131780081354137087711517588893363954836840566072210560104263684820232901716066177187056759625335978156177050385268162121076285738841500596550436753363496395553046053732820729596877574359974348640759826925806394520081841519804987704931108993991676884990037612212214197869908588453821214915163966728649296705806697247818291620822002605520862419660901367209807808947313471026988638468791425022787360339162555826522757746711638113708716850036736966860473888705330956102285162710117856644802502216183752465558768535263883612207127906919952950355894697085441820580183806822995747725764696670794387691830053404402958313802426340220927386896442640087509781526178621520218258235357638768000928038473221571154275704600241341598408391993205793302808454239870149858319343286347614430895386245506105207967597313991314823141635023767106852576195714979405034103394431389378267719185870759599460553953479670727282360493840321281558911684123856165434047635736619908672126054212533252683516251202980145837233536479208952643809146392479731320005015521192206772626787531844570634386821391729784808389715046659792644542079550083993395177187411695884566019345514090699466309416943489073015061702533757980799583029310039629567435650513387594248661809875321125086909525122123866975073099071272146845427802136854583768693750474787241102905970673604931937039951125960774340004018749443939038705616166197507241114475356065229618822899315183208252575177833646486742502978156770678569165752972920934380352439374505607022966877093741956430000627922871874617493005467096856611699104332758827347161030744077790164664328904097526656519377921112108353852265186402514874668648369197882633689733830474563500863562287264800632476591192254503754400324721917321184422516907017927094345372171969870427226816459958328790047393745151726880266207839443411578938961909265467358615116441893684183888073248028239368575192154186626780032829894375370488879552475820500501771096410695675742426315187366155191613472828540155975770920633961134270177376370347488681779321378760229980764359982350941309718454094332300431091828640763863798576218672495190173934801434736859596169545469847876179369184826473494420217220700668027485958678734481179237878991504740779549949135238066696381968095943536383046729858691846878852351352902047570650823877544757532005290356076670755653533009560916121599014410506421768626415473073914859803890584281138173382926704772029922400395047922536678524055374820942304355618292468358417461285582160731451355038122335560785405569832652521971412752185245244431609650554923078328971020769253697323604244795199446025480398317450514277671268650210240661163747080094311512504296338175405883750457710429432600036859251367137557493462583128132084032424518330255484855243458680201709243350576273048204556236107561083056153037370603710780017062593348108702278760511504309409628322223312008372785383160775970866552850046826549774191081651288096294879052997523060949378897121944236247919565051236176408287523803467193281935608718972736767557676865106382456063629051014735520107471776873436711778441279458605271330552095781070765130011982481295759547919558491360234980263224021592567469989498485185228443081051605245592289240976870976492647041904119730169026473202274942564727013046460890033238816981234247304032003761810477070792766834993535804163188919276307066973061976649732097137678149483716932573366877762738693430124414069180173025183641234475862264373832398614514112386005722803999872440408313388348390222589387495609864740605987567216973139981894498966826695002402634454779992981852901844658014098021194748298475479749133580937044054791406547421740891695635124193730562228817864400039695553092864954050960617182784628081681015751505812782154469746832235237051701441278094143584944286407762150929532745851059696737753388727777632798880170003537611061353559240825308050532126666881242423636825005064928580357701305852657357375024897618820515091329351997830640849638312166825056790020031011401503714153962348750249108449160886368869002856811039284306674096843577746610501248092851393038149481382687212926576238451937107179991664640825236026098088388196865657318428876045405289173841171280839544977445356692903884792784482719067837891716462046124190441162451933193124753201930585351075421778120524448246653756090723003159814762334397398816203724134227270469880069912148237386930552035107023899049472074375722307184555302985339368132290123962397550214144159352450801768808988499642022317412496893566173806110202277495894438614290017389014628981449873207994012418780170981482249513039134208450096723551823562728633751771832329695912012113262843864996934463435109960340383649176672969236571096210529592676859191229557804186595314635139005360951891061410551911398185586566578374851837554312488506318878394709808040162146917931146712964517390308016803733388808685178008574886249130128453427148220041940413885448327382811179475472121637333588285643338404676401606852823918672793418577767859511071471737588698797077689214337702461607610048403400644214303186731114499142174326111743141006988038269153997040071302827141341448784608379334220891145292700830688757430207984767107079175972571489787009634310970074336534003910414528664016981827014674008153859322721643523009264598074182478918769854259968731468862766149595094800266571290471615327082739148016145345723916256320036004952591270035292532080849220365451216990196146489697941857910761155650436522129854698982876799075964939408446323004440349184566616428538500718984385732842680783496398583839418124744105389690113623951485820574575735170233410424305117697644569151441126546699673824461624571550358864532511565768762697359626335019449709958580063489666196052090858616687034145002198937573714487892432983377296618832394828141269944148279261035864680867757551507327245797843541786296218386881388826126753881138618073092455503790272511013484736838453104960872876243780559603262232783566833310515440824391466789292321588709764565263530571194254088852638788806917238234649563013547637608516561260110781657058679273059705108265938276992014807743896957212306832780311827776334538763747243753690012602654155769651312658511188316217939543411000611077659194505607727356828338064522005067148200032259341800545742725774036606571606540021622025659635156264642732874613129226531318482469819403608702103688755456309045290105643185130711388261832911619607222273073737864600114454978967743432748154342395781892906009999786568360054939563960109653797895027760366115143309489165304558549788778751317318190678351099554272857509624662202238580182108255926528427280336609115067996121752696943886419426931924276249035315009730890263512595176799801342618898380994891311305077813346880818336511102568468733438634280805262661558451983072825731917145415858809492015739026253000861573314900332910336464015298368042604115592647874926677284937627018175667658264981137824181887724471760873653218676956117569633287430595294053736526004943783766689178164953303025623054258682785833112381224540733913071072465206500163075320405244207279067953612627762960761936872909599184611971285357047265334182313112695266082999665470491453476961677379232025987885677147863639238967925024012935305293551834285385045607224710574009816324007073268405907283281295940949432489260349969332779882943513078899031543281106671512257865571058486287516257825711794612951182608599826974963827536896370546016013712061143828034196264737100365943696336797084382932121163007929798727505081996786657350017660161546613732703591604571057268743502881222638402111008417189836174284929778572924615658932218036758422992575033465641445375194240050984340787364062697044880558506683377671837638220186074878569203955154394771910726085121512829845841220045064054794430841041255277770572730300198753673825520180011605830009195264179840764151099694811256333070779088159662853348680844538315649013676330917594225353950305888535852190224408958864324903308406413510905348331385331769172909737973379545551496498012627563781834517962112207739759443609856568551210427653496789517549384059059205570563421974887976303849178460966389871282006034798709301606957823510657213433092114598840996094177181650561417447515527396438047053135492478648794042849957576408723003378737387786895243410305600256817054571991195673892592849206081178348317340458850043796712470978074157756737996083932456660763354688333754386101778122741907006575704649965900383731261781705509221458295533276727865389916978362355008991052309278037452554271870923040093595120697438344766859940063881766213864439041070264472157422642909950094161908220235258971029897940395507409419121694824220400856330226308646599890147016259969391723614950058817884083860843004953757924739999168899377566689449890201839596124940552895391267536533218302621095596137833245447580050199395680100406466530938359957482891649950545248804001436756498035247597365754568735165012915010251740224432236055534026478507586541200232099141625487066774601865737709372957313454555589046236770474967915445383067422423778368250898539232435606461140726888038214930582188191007805372772416861128149290568566082615076197808136612441743241728904546189571899457228197447870820997087939341440629392326111927857827035148017506935018706002790659014750568536144335286981788780363580726743076890209229246376769168601594738631927386399092906951254994494208621784619036832073478571796406058274006076788091673545285692680870868472566793335423771277737141470726663360041911929765203717438340676125658095019470645224413103724138700281216396551046485473949836430826806321188671260311769045459002887029274374328304091024385844687166933013119309100440674474088622025428017409836102897880943191752753164293278011899491147221015372948955942964325095213865887902376342166614154448344684906326679715490853086748915505513593838784368235358113318975142974566730124153439860332294982546349229645554473882947737109545396697050064234390365511618872300251031426964416904997662169312968877344191673883044598902736711705428055531506591495262992349035959161422017250526361114850031408291610300950418863607886930214954195695694859280708285626789180018483504949582708233241510508891106924831701783505437882353756317288610726630405322671838600526606935483321041929248707827518078902037351967977210953844715217420091018093670195807140137495174702563015039092271085518552607270182611698398185546595652357606443372506200342337515781966633056975355753802948619950561348527143724803555006010486593089638877068762207069151770884285930947190457589823491962860793698883723024177193934188608835033757360695990163563055417345829206944989460583092191958142969741129573318043600877034173951819292126196397655751811700628662620755524687872785365220476668958059499190063565474521265622356745588026333872598451573304468408296518507037261157969862055628931529892743948804517804571586033763564078258111794178784987764924606331315105549766201118837051979730248864359736932643586490220972504169420265758853996211837195950289100216334406066598531801193023130802203130158375046207710547108981104586484896323958434391655248837818897706976920649645880994582953615018323811281332652337299319894674419084150576698403636701490613173741317796428499102156789114983088119503649692186621464538297411136875978291112605181997264288529005741530324088448942099466596728430612492725692951413011402375214387048697976924561589649014829882997463120338636642973692672000875155922374163143000857051427890635332788930567366680289290360127844073991683512937471278008893937032683332406519506529186423705202295142890185852322111034879295159296722216363468745159452307153926055873002927817510332006624071128817057022601415306165436292764405468214281069560103872087231648617740139912633641632939361566921295194404820338926961170899810246056884606445267930686326658469781557957138781950202692540564746820679893057216986762244119519912926109438926555708371174705211413795574756967183543391313122388412709087506456626987876452589209766636281287252170919246137733696731314437131828385684829520649232290079295672534452529597038821542948694957426390621905291939317612185691476146382213249654152948023224536415013033177831637794883727971829772591114891300980682810442067242276426881403882516915823361360840392763968180504706806142007833862708747694438287738827859282706880639520496461373771978956362862343445164819441710740624695636236582394907287888267064363340220021032198733919072185727748089202399095190153422660495224533585167947626659069524744838571215182548580973187588279060225473932861592695996115115729126258304370989432881118474447126665362133177357865645010339608064841843280202491810588472858670632016790589789695631262535425226155790557752134625150337834083674622493135748446428659875553954326891543230706289697600347567354302957982106730908329838203650849034639965298550247583773901989864707333427548518285351871686571841108517798853625240001750283132542831238147912008135248539373090484022595686673662065792351296449955733841755736713527039972921834692079849515080490460723193884300129772294913461410490295903315055680983955592303104227356629338617156750175541034733439213490651320293655480717236119768976626360469305093575803167490822185234972504239086791109054570128195274289548932335531295457034098913220015820783922499252991097953857535835328240763633814957337248085093341793266661580039901001925028897968576764044092827917139275506833844983709997270856151770851402624426996866470597279723560273818913990234445309309751260122871820202097747366277004134858909540674413701695754765620522820705507971362975168769203243178592368850381548188635532541573514899210070579615121913012181797364961530774313443742445073368750213811397898003431733323722253353492923815467660478486225674412083310560778404185557981377611074717117270124123705773781303059255922403799534497791874715061071803127334678085584245187320449105576255968383967303811585272330367817562184326691733939798082573612237056526550700927832964704595587574944737244551898716239417773553936458929270597802940345607634876542602230929175833445165168240273933778198592643592973562792662206289930425323029492923963077462476408811553126531470996197637277789958880439777733894270977106797265126091330681802087071323374309527284841054868197173412955856053765631852784740444542946435804568029012287252470902572492387992742312974130700672012390820627141572075284194521807681408477049959207566296468916978024339864013232377244640349058010014898146594278577092571264226651563937121666714403516483833592668828105370121933401265152835927589663011492941501231720130724972883755093236606784627004364168267667905967510138581815738604692227998308197835213870061654185239499393179362068115318336713807779371371682128236730063408062135151231574976017258764107969732614467663861018795912030112350660273519117188182579443640689210287955833308894714963231219956653466301710004848895330762679075135977837158089963937842275998970675760157043727156353452513626812331490258313063586156949136604669768197988144722579077282650462527952568672165919951035840368108707865496154519384894193704055027533774442212116282517233593488541255675627313785233237699637959309485986058347547073438970894115980161944150001127197014128000072490506900481342371296714558766116995434923399429002015952806142249206647586840568616457790504358881875368696059090683681295927698675037244168964907726838129390204352503085304710408044764147101925476962472482452023023645483248035778531180550839297058913073793687809339349494693654112101717551372588627086419604672343257400579674644037785852619067543311238668812906786191197004884516158070298770579296618089697562291083953744001236145865368245354868880246206433021459230772808431912199756400374894369732236632802492187988528540314059171214876155774066226519511868658861988826911433330715146343481301854545851018457479275138218955481230430609956036787962344125723441312254911774983445120041366253501343400187775208818800073533630116626450240265818087963330975027298106972271277788309903037071339695378872087903379948643223458728609385229490513924995714612404106631280309773676110745036867917627907941082644415770883550473379636977571152603802005111226796253284511340990656546706864212889765543912040241046593277022153678937711289293390400719815405207930577568257954621008920328596699368008640304386244492713274192657784938541536604424792745756109477866452376986753989404052832195146051130295066416144178884678898105208446102574684357047691325726271538446871588554394863836758856123544629773458744305094255115641981337426106421703630919675891432169543774080013047402653415732493848871929805491662926661736073008583845073807189165333056994229988555206314218254990069093033410356746509059781294403422765505433904587054563374004455205555527932238198223853302372216688099543139225105411221924077602303017692117676078199304474021156315774045495395125120978198292561911390429066074721171862520655800702969698561431937148428039810455387080664003869383008628415998094217971398582279114511536959517060633518664615595206969133475258780621200105385742278602595634311309259630657149010029982605344559409904311801503207320599680880744705144514658420353236712781791975977830854178004970748611184430720409632477342312027975391000248330626374450929871541236546740004294886162345112310024846478832752487963687268572575033449904349187729067516870199576721044810170575997330498474540079585443584613908186784928804932060859782893991011768043823144639497264632704224511297829626689153633976034785660839689770671344297733825648949496744388917273423897654919981592383957212274469973782978552380557316220218320013911983364849416274639468279200890512513249913933805327536553794455161498088079247131418548984436359467087146286628751855315657025787685222252191426009188291362681483915157415242977890584592436599198209516976531437049975742360820083720479798244458927526521922540829915075360658145403754338260747772762225630047775217707850265879690557067624503721443843674668198837132667452233586649220478163138525875014969224223898765519136281844942540665272179668096331993381562078803685747324311392792375858507539132943641532302197459186619436632838910755824079860320721576559454579931622575137245287727826160096828818153364318513455417386046314660797008938462385268472753815955719751195105969154735494416506121972481177381233806773390861720259074995492489779688875607274684963250899470685738419370519534750761314240778796131440056562022955027905808216569962279119526695166243634627476321032172657860201041232302583478677991657360805571542794111123223640853006173294060846061040966358959900412266169975023599497323696047164274780642959119023850425856901235629160598482703725882583037258438863265823695394032461504050862095898772133973212213922205169902430081478008403555025294184533953348817379041030242155298404229411637120824289174174503673853537387992456957233000489307188906341470153772589731578205025477697323158661509885379655154212757039883715429002596355454773617672354841689576416816943907942677048431835512966620363506730132756284251545279022425895978763844676762974029087381011830996649880051899474556097876266481571377782383455231510630671300295733445544155670124306781529496936774500480621908328080128145194375072212749154870106646075672103654370976148194929832219876783572072435809621637172256177806127077537774459811813117084742995021926016582147516299710230133994787901733081756930356002142525400681863673956187489470237064445747730787678516440215290127550983416152920257789908303918764839785676655281214594234019676311083508961978449608903547985270533812734176918755264034973992236786804481128382524769453836563107951564174610296236938502595850532400996632604816266341201755819241841836303560520176908468058544492008413499518137501962185048211175757667338819627160261291760479130962008225738689642218716669764526174343084505225740157516180892325680426761860469322934342698251013586200503586715766174991907846713291787580402739711699749777833130918916740346050885389790535036315534920695184919434048974285046330780796998440574704961165650573854645225687264748045072175094082767953401120862993758693251490177720970885565415993315825412219962295430858488820923463024047758564962104898834607813808848412503568269715967464330674846314011015939771790885209402453770764976591693381658601989300094990392918019412135216315671499847688431116025949635258643223093637922849504804801468933626050684506120559542159446481812409521623385512478635117421488057151570088709745055520699546672759912097498269215860102363032676907507617021324827267616223504847398564239218393694350598149653169056680523770227011295161514382438204114799453896519264264803878411207799094949050846121177290984647681774534247366894998669737649655823906143161397469965959331027378372108474372967538336302264594510187729671863770048056003340782639521820009761842158878473117490179730771100468797432857337468402033699813286059962398948545818756307422994185071305043070459629155468833585228608667616841962350220920277911985584078410935209773460451008138667689926221818286538612018918543086572335745661928522663219186238726357977696920105840325298036530795141427743718839006590587189909021342356365706429383509958668820785375130764878367598801239687257087182118329692377686232358482261589429949359223834790784538802957340792243822325312405298599299056274308907160811594162916169625102988180084928387282780428068628152091681289623640761989647250818637876562506220357801332407346999298706650813249086819091897382480371090019335960057120254591685225014208113597465991380754474051242799333726770893545431340541404928291915312865173745492164382898745244316921317284980599139325632015803326273299888061866066718051097190006652380083366335283722242843078746315742970263548068957693039518576655085133928464022691497576062114450063077581982891832850981249965204981548399117605554565048216245443148693016947188627907559735014903786972138354615276464584106098940126112443399515566526540936333291040281897127602692114582693773186344608907248973563710144257893734770058655934642331763961446556833894131399478253278773891885986260898680356877903194591241134352376636327479383804030042427623818343276677711206391530409900578429699984354351917818094006549495955549314418984581947389330300121289573828828018574478243148011116141990450192326416336878528182475066134600116092346979445870043228130628371438987439480215396364094332518520371413522858451586592097808462731876983699885956120923871716656923182257651002372881338267712356088924690973149635874653135688961129208067965940194816554388610395469708595844095626262354335324060461559252289188361755785534066028740429228846699078789268833397931540499012094713491384942790612025993629488139615732667080509659520339236476697110864575892546784675317259786966707577810502914636258668133567789203329356573917582142993305792484603121648703964062193370278942727255218139138546485685036941491121976893338078950212962360202200602802044498453218899563318430451341000256586351541461485586981830472178612924938585517460099450261319329914643873976986344436406390175210989092620122481837399175635465644326983403659341706338582293492577211149665707166335530215638558401203245797473056354891996441592970574813579626021128605871513932745846855873113951610320278942233120406269252925422988521042850903019594956832437147138372813477125197354879598458162975793862360021189767423684793089650675812718592495966825452592427509802604863943065732165281119741836619824554623201036419294910216214882227401670794404228456563974883383669427585153689910299485234619164614474893851671409874954027087925082479849372842085412728277385272111592399277304812736344300336211686719650956495967181258347441087694735855039971916244989301174158724775469564812382927734215166284528221543351439775656884909147738043765663536269535616752379235004104619662106046257414239178101504209966062071466387138690161291627578007452276579210416141730209576948527453568652978787365665121590274852775238148019920937157642204370498848109684524192495544028137051652667030633693657964453621462247933396194950336141429367249183611930785475576716001459070996898540359643864647100710729630196493060596269521868401881608749264599592522941680442339807448290446426136075001778230958167464136810437682244087833857864838867283797713105120923461910055463390657180627786753087566248661605511130120195111784548465278116901488103445311243074893285955262011996176101152969125524326449475766086774065658025546446700368994237514403269956113503743058731887215751345045803771684771884580391491783027868620183818016732036262919460455070334422103931008626121799481607199017396159581177623497843939696626962274312278028756864075563396038988127478673496548384791395068406866472201032828304784239993726756602126127944105784782164061572197522123548952486399410150658166731322129224605595661226392866513321307066666041087812910530636224326915597841565672260738438850757278558472158808085276585112807633968721373010704719139270374656925071694880803929620854558918874268491762275308569373914760348986137141530570821609491776547966697068658723889461960517459808167902174194018292384941882027256690495294111149702102768008244145437814096668794200625799871026290244470901905736093516489996208430237344108140122897712265100426505402976871592361286517102324562499011736138033964246819488469086025478405834389255833134914639665760743850668440605543763939143461189741090765636696644436994136498475835553401174854784474930965544929561074715674105497847074229455837625104846091224084473732057476309672640537169817493794605517479706585371964833227937997634459123421498303540173799471827802807683513677006878728531548006484979632522556106653835212979993259446817048580821362224927586031243899722302193285233346562762585697113861271273726823343987258060270673642111638591471185577115485275711016595145953280968151077562738679297561733137207823925015534784172292144717079407065847738061130529497397492399116842947872072651288049513137617201902128877631138031219141578524457640900531033542520426957596433355150788332750675517021730206870622274010027936416245141268747924692197212881459199503063674220458536169868908009251147048294766207093810697591637465323857015522408250744085482249942142950737891436449705445802190161308887644839675561885481629810817538144156606898603956435766795969222088565728900901552268655559464727509184455093527038551144760562976386186229124376891909831047268674374198447028572917690717448311791650080006588305630327573265562614830489080069932713978721688332203615873921876702008064621299755244548836308554897932686098726884910474934239849760236233401404291900557140209641742774104591564271174299134637909966123218946527814924853076455164651135718142528314098341126911556963698200323733984490948471788475864894845248233110707473046897457002119222539916374096248198987203792614958707147083160734810278126820659539301636304951846581623478326776722651521700639964119939300554409480536778078095943867157376425789999858651435140679010812391003967718364307729570923801193662416883457444374721919035644833279498213235971001531444407695047462283344034754805181807348815962479911827253455168171409537365645834970465052788342233645331321289940393137982629561876219426083851750334228675152472786512655320439614847889536076069746816463751493501952755135276384100172110613879612987114478950514410743384845533289463940183112096466026133175676578888417782720725946030948807372156388395406733032966296535993086561835790590913113960766798329739449361160848722232608957909958904164750048537851892305272292022665672683347241675387741112492838925031379055820589477396390716209606009360505585579378813077735467143112008348203712251883749518217562425432534888865727852358935415301510200993479710218888407815344932845141188642276283420419022487454804408841404434595548728064404143196905908313496099151526623625411111890068037066130281062943381635729116945192622842472958263309209025056584858734755933100052040394155752986358285356609601813876550234623026185073108864695134823749857341046189612410099080181811566081914629399575073258045997318010471263171162303620482376047970897971637601440865146858464042928217280598717820851453159128230889746917454957624001158504314749949702103551655928694030012762269841860953062951290531550741202235772265176124787348276330438266691742278500899000685917208536030961694888284396716112774391072353508073984950861534009406411368781582527494665847470394619449308609696532855625901790255503418728485561806652181668104686520326592155346252921042243140414166689743275603674945843614752033055385420219885013410071525986610085955256465175535882670750578345924959787895822276722722351624976359115080759456489034425723440641973136366081302889851356053658438827961249859743035269063025626363197221607773887771217878990353156844624073232892552490553488243152550875141920127155363658470046075531835371174955183772413894913651859756757822679589150613698273088887607497145256511964769542944247264723000194229971701011527035859906570269528597271198581701833274560085711269549696985836743730751115704120906836902268721208523105725063408424010931182808828974252381708198208321561854894546248218194035601345463365100070539582362844819942033937108156519114650278471299713259786653943677105038844651648710206086637723383196849772303838612826981249081614024419651916417678527605740931829118244511559971363628973213406023540708685230983818401967035711971105987039702499094929573049617008813159977219700016754113127866624928682332853796686521360816316676690131385401619504935111419605262075255695350147045859408204819856326452704222730441919777787990001150824845472635707896557504914551411030089801499706133030644643776983396504841047921869676422449007788419451550230642531423625415782098401026348995399403868129443923160133795326741719791474887292137222864636690609626951782251002985907589952661381762308656703491731156386792001997387282480490756448831491211885907379832443815106960907798397884076360706238487246984000385328913732271252362635701655072232035700925281973983057300234828844593266357763529939631270748976409494254172433612505342321962477743327894474826327158276873233932502615385870004869230421315066214795783079819329143389266128294869587713146021836892903943523111730905981609917519212519915121449883745495407726404446046335288524733878772305884243583857763647414183733526224255712729886451767496971169479826559900760599428266808182153946389492943252015736459178132061546251226253449304546224953437969224785423706178464918047835825577059316631935331908980982943767129994416657003733561624055041292354586565749578209880717110254272661354108452230042219273299712187236221011019947049943155005015988752528216444857830300512556088120094299779973431312493231969307128430382894183269005241427946145782633630539518929850529366855612969179600472190525087307775775672829544754053324275856454924024513508158351829038920353286779399851686487105438633424181758087242842017057644661860428156256319076974668821880825775008401585819975301210752582613192936223078604039831218627708876219693711275173701872074684184315607756146406908868951038288057911722111058711172548060803950836243462543995176885964098973816064573251921153882223727375738160505263328466397301745249622192423468357851383568188717815356917531755329539368747606094869546731328649060754093797059850450282972810688492539817461821741682555872888656806634926045455806070506546831774616507248599540495667045083140683160338273318775889471011690231961592185691594813274131810773234774239395594528929708812049486269844414028606294713648743336343825365057915599306383390227548311795113653079691995662490159509832315009315988203426498216634650098953891598436207051037727200196635856869235852350045602034893873955118997487361803344524152301248946820050460538520873015774946779979850286364492769314410578573485439154794836969977902280504040058451123195354818328442094230346735599669303706107312565610651773194643362114551216810641198165711154138038753208191953711542338179657412012493403463455612687172700749102882836650816169846418784406001135800371720676550643980253165381325240978920106829039579887224320507491176161335650038531715680989084974672989747016072914565926334433916543099142636128996398116873269077098668397379003426402262655565979032753010082329724291883008079446994911912963027060293670823754280025225045764344761228032474758046722651080098410807192138311193684902650707788016971938760552516693432940400418916242475839445066801845669447261707118384054724071315584225720084585151095502730871038166723948028960822186796833632053557725294492172565415880507866160203603175052640550462411458696282030480911943872537388452634144372294019017287590327802844750390088458636995604781722339378007449179623576003625884803318150054862744145482352906664305338236336852908925115060575873179922888041456578517966169591377037268069832703089168985997210433238493470956838799969078452521032438750292640670295556529541433071034409814450734101903764216509042109807891039770593492955782001414437645590496030125046403548799838607445608404074212808329427874447623870605040859847304710514711337737787649246972664276787901886811691190559073232233208125395864600644618495887786640560006872649831400692072768938611548414384951563971350847144050570166249341586945716619071976715858917658192559191110724429378358733759414771411388866178881777701881573630884330797678286309149118464047195861944112990150348359623864829839946272215847259556329508119949769720797390332538507928822683958801174663104716779116645938363605496666987445475053916147440113698793183709839922464631167575151583068284692337402752870817695280578622167268825219015939415822477743810929770240004192752281945861050836903570077887053702076413711309365747905991274811283152390307089308377949115358850420249184354123433482654971910519835480644478452020316006417495447720501053068600555181074277937686117246049646986144224227283194895875863862803747338870871360455628732448473783774392161160154366049909985578416044839052741309489581320621903059801250916708419568136989895355213890035737433854652231048807104747849844139292662852599721173718098336529126717092002092246432138062121226528115179285023183447350197774965871567032664876102006492057088711093524105111279845109601082142271606971636194943745262762032224288779417865036076957395781502946600210175819733390771246453087318997585295233634008884350518484253944741366422885868663546372939051434252842813675441762432437044432388103017106588315850283197940869743203975913228053910822811263001724015760815154733631760277320160368054790548096221006902345664352865554743184193144361005512263284096780073166702250279540145826980122172725773655117607634110777331383975234190224595631255974170463642365774801781463087473573311107962846573156608664283558386233514768673838404896101533615985600166231031074786270182848885520100287943502178375636608649822584488818382193091023890236951663671822615640232676241820388206384452972979988238535001479832124339392513723026091963274861901801209106813061116245108041482290914553054938707363648046456307495417836433593251074359824140944487911924073918694337088431277801070233061718153021238328349616287243072988494675297480577216773727978828102953737714769786214101324565426798140007935908680764932045551959298157311628157949101027908723687815774878268956173698814132940759500456596329425013066789284185531044806602572956801596480152599559438538932606923252528054070622021758408251536676561635696876027640987252279712850008537501364429367028463116071362594357348316731399770401193385609577586241234680607113403712591641737583595951098031992744060163592785783105451632958223208260279963970595575538822793399164589967884231405324783921025234156465620173938085434965742326889605971726599472920321859214106868892477420983399986215422687355279601312490407393819037701577951285108435902909377420266060788992866002615166142634471751816207247710469804382086802656250144819071890297275347840494999614092965036102427291482562431316730573125645023267511298577779903839171922198571341579183396072678070785910905933978818768671357966010478117966370581278619838853283187518883080972361340679873054020777451691188602801167597958031297982706987165058701698218597680214359811979217014433199261903784872642720742788988080867646248771209598486502474814784154755979387349285714359131011340006936167070869010513241789526956912633503762761992510523150879298023668308301806065163009199537237735354206925462470760580443419085963107793575082565232263990269690228303956392834058632177725922147084945162849243158990844609086419743565944322995489473015450998446565606530462394903683322069410000613887041347848353745811265143187598364022666117712129316461547252925862726336169169046803109613695243466495460997468992147530768196674894553481048023846842539775758578422872756257682461157057912137120751604036986734924805427894191612780262077644014029379961205267213372844828340644209093168572003872841246003724026932661838468073267731160552650660183546306930702574912980315153772077129177378649954275235068880010834489246651014743776044690655749845308913580100015900085788758291802845597878342917921294740605971156721417809156377986776042768134142754684375610666103982062595155812865697897358352468201587256142035455367628508906191920377979653457091724996551241290541833681834334022490944493349270863052635631457371491305825475903495757912505125215388711371118428457524752248173492615733795350288469175942811582255822059028231420093141400835077999986092773261797462387953631745839745888495922633028430690200050001345365469312876137851387083399012712654159231878944541148727567042794029508218210442140149055848541572756271885247087966948803413466410132409031509243019657599968922259448145886291892846548908501905053240342813161458419578298367643447696954644934588633242283039162439162442439550347379228560055408434521773272134498327849662836845521449303703366195902147799482300430000330523202349754445217079909689591730311388147977156884754333396877656312458370067908986623357621710095956652127976968256258983047903703114641413287591470995369617579177052647264800660861797403421209389754164154372284618006860950712373238831140131369815576425768782459756474312341577370435470039991893532378731041153481471872779809693347313766752769615616562886844238748464969300201210402376907040071213458797942276031847231723420005418223431674837815466029566284266605081233607356760503080462997389536249230955741709200848177972053208764839377176925773090368255281277606824722237824498542907264564579045852261977951614985199171293176402004920721822949063180984758520811330830520094597969764458833702351861245943733641314363130276275230463500026122134543614667848709352329136498534927302250484865511326802085093591057694958748992430428364010036469900546464001558482657449524861082971529617265261512547542175297460186268556217622587062937049218843235081556088464324458124671909036060371126555430255072379969235438058927778667814765121999953439080265732995688507045592979281559544526121718039396995233760611957592099692640634611897489184834783963292236873724975005640850720546242634000646062330474778318477242262450182901535636613284188311365460902262619495565668339951006352661313164290631631427753342281718227067120683232155999345989117799242505263742803297539438236277944718104598165932325536777023600128846122602583297114330425501289482484046289822212824003283206084264777953545531380555115142831224956825487360992170289942694099594167305616125076403717472345222538413759794343019069015629366257134698614548815301391777896796319888995531784184880402671521255468103075235287373847713921736154868223220093567919963324258718922840364852225323593038968155544960489099628521314764437838286479347169520273351357101645803344569469118944216298950563096791659183737988286551327895058667110696529550161400916494388063394275846860041150506388502710651858601236032591328261038058082372114438505024800443852370648479168134860082608062364890531753595941992409945582265921483673922198019395997557091213439405325185464249708951791462795863477819991557402824401882563554417682373787054491229499165084614367181950286719246315448794310709456530216059616571785926822842388258533217180327872342040430353915740797503227594062645736994912176265084672443169224609109394459268939619729114121123464539271308645527835715508861347617916705871722291835136199570838916030188988099649045338487126164740992789338519628802175918138833091996476156653367936352416862529597047878243990622095984417672679295655032440789379222776545222683633308155508638718816577124866212930683305138217546308773908554586675073154248732010044447342131808977616758517924246246790759251235293811463390780670891204031213842565338063028490157260419228760662732231780926647952039190322844654647605816512057592368857535270850361575606555941055201284459122485232190235300156325508177798569397960662383211870678312567353481263416324167280091822987424817605528717401788458393132263964031149697445824709885504696162034453241342774552790015020969082298759538030212643824792282428270337514204961452208451647151521509277070889814926316983122436700712900787225284980558918806403323821610488020990675494741306275032539702424538212587011184928415171517855362509430791548499542294635665808772473324557076119276475102823360474282391741652119320432159073787031346435001710132279616573643403284413164910023953233758639422492688269812375448082980848868678735756553055087837012010915456313918482892978216994411303903313071567544767574669817829209756542004600477184098487113532950606265281993031537886365680040082761757736629484529280949794374971152746595481913268642325065148745474683051783225090218232641343328718767401045379221226164637806721564548603210091013426898166631492840437753202576934778046301931820998731254236813207525670363273687743499764852501863362840751026291586439223720341833377748484527304559514935073453909744934347690024486758390561811818892665939200286832004401208752355191252084176466397103211872415366014224436510414879685725820820936801847935446969913504109172679035149095609316919073837710232969416958426322081283241888788230659275145971521998333546124301102343841114894552208297542364675237121605831369137243996202361610444350219201719092410425163057051810456681402926861376153164964075083584164962620199999313319295478943752554463759163301867118611465912767635506500320703212084292592019066201394850340155765789645927336588037932757681145741736578886575582444388444087982030633741073382024799419934427903982205766325327981523100930470605507703210626434742538678129288631784097424462642647431679102274951870174666386026790371699389365841854300023387890955019373430455438715013546312449321905449181737473110173946767086237211800249602815615461422941010325341953278261404371604033284187463860136040891901808653577490297960340896173270360237965239722344330617267600299028195699637570215708585904070292047989957162532615413104970782116367566885365754521110149935626128051363150803795958877633314626429686644062319418761007210783355380772101158512253056988607557455270433759475044770754792540083349070746467297607467539108738305774119395478738367108634572904731852577869977763474053546816802294448903660397380452530327993110544583461327065820562374980868225785382642985097426635155808992497025935439382829725401432665636971136383064641583953633476795414339223768659941797024509886902672098387513877557026608848249818743224550851533416255079750561574326658709173369829801525649670800473557573873743323922532840210556742890971434957170655851098270209160488941808736988168622560973791649547142404060204974243778607636969246882148120016329000200900037989320067366717268280682508435546619655119862242584232694621362960757915292021191311451552308580279149336998419830904918573208093080374759425239720067613940918918694742240860328870184577940174248243829242344825654129718853822551785922361419243799939545417997469303294761527894933279350701348472012354349130823237380218833300286973016177127990796150936636238385319409823656249997271891226581868879749152209149405209861196725007574114816914248075956741210258694040531630753361723432872517908486197232778235003602162207538085204223086514505806881492929889313776129260971651695652058251112305613170451962980841002707837064848186486108286200191367877574715741513486408036654253157307917228188962864843012986718883742078944924536946321968020755852758131374932893300981164478639831369061738034215988629625220972389665297743989257211288688048035100273075788607904477652854398633151992337222674236677219040294895025554005924204002324618941633550429304402625487496153628583986858732559557587012597747794643526180384559400943478922254484999163475821842837116709085504282843076491894991666894264918382480248830957526833975845237381625312737969374025403577738424499062434317239278183270420923281492766054095342604702490992142127788078530743933724338519675840531254710581675223518195021752470865563953314095781610733572465758052934931445114219085394328645115570288301330227314495022079541093062262055385162982056408427126610588171772344469720996382390020335168564031208896055353321776749220422004499374331765796033887629992753119726303553165914834276246682464387221053579974992011711703239175227307917068082825777685531873383523635449599088667855460337439823552885853402067536195801516373819359716838755797046228536122271031533909120577050639531334354883762086063958636924398148825291348874725671252435582595224250134877349972253758827333344574238536729950360569712711318188267458570478360113579283657825772706027043720607734436330008767516522514672719199152225633536786159480734340367855834489510831804060245247970185436440003758197056286092896010907939638885471957854108364639647723899788327510722051915176260866107650639443302497293985986494656980268276486652195509024486904881806599609549554241099622039901509976991144810822143156931909927470112524173590185987117097600485934177414015934370300183835633933778129650523691196458460565242140938022628449631978152270711517034813888636362800519193574374758959026385724081017104373086233723198700235119858331244648016636684069779796340728435673770706378084244636380253672802596442265650082763887851727693936577779368343929052726872862691981900657313648831385071549468354792908813732809730944082865975353401199999604134087565562336711780629715030584454504012836799034810081861824716979182961842232024907686056614709310016852112997834860574954155011410781947543800606954294870790423646679735234338863944245583723052160461510350678323760469429909152287154490248835794964927441225276140799528371875470473718054731206442749193257596614396623279821763937390444985263859806431171025752722838222883616389088113362529764228042455378456172552168913677816353781429372589222986075549638523505044875757420344882310964901575344924942120488981695484903922045123327000886935107817899275084954351306651878845982607636578273829662455354961154773905959762467170899464319054590447449655443061923271704306486203779106968705352387301997480150452207278990294607214435859877875274950205069508985654265555351418875552674617006468070953383235345894854197402654242681008463201388359981733407227603000089916764516008417042178676449915318344625913149044713171023083146821996239578294919962582398581248121218358304888894807894656514771374079633936555221855040358806202991262704351516165644762839487003769259573545277231365633934249275693829326704452526204575767300087911070366060808601762021310363266899691002815828066332026327635769278236979403480841276078999763738418085870264600362344557785810755160338419748858276776265218757368335425742791846407823856075462991008547116890891023151459455118384069765109490095614315569880013456089756556627377088564050245716428590965654502385945006062249418772172440294441663801139661659990757529056337738653899549867656671628746175701062619694602823124892993771599795424435647325448560755278895276379378878213894868485054545418332551781020271430360609678999228630700650501823749762414341981447292757880601746681710527630758801449041923420649688074844496651131435480080543877747182700359106961394682924147578309180586963206602923791003337159362620182985305699315981725631955338825404244513548853937566438770246332489644714807530337565950871604179993627309988939769342589362688760568944959948728144197082659426135451425736538916235544077864379292199404947924209273896650780939066384699066862086392195204834999862096234443641458173462771920886228987908502541460778814749704864414114833576620939684000017944525801802362698481848494141416528591172519138495706543827151139307615838676425800084674686278036128480319420341983767294726255027906973948753716929631811873514677999006777989931129453664788122117819805452020503873871780853484832289940248513612237242225952261533253619222222774928635016140426166712527013702677322532605364208244743881620550760677195130112708321226389719093800188176540985549721747493610522854505144066967195564654154576639663940840638137086444587852957861516811474840817635977187457766397520871013279921411540668045005578820190529890265442055743550818144626959188603228320555408613523710537611980136161320010403856474497036277614548651412877256690048785965718121819897133683679779493790647152782028068564201628860609482088117663147191669218650044323524457615351063644170863153899346491373212538196490968326292168171332380028707434487237232125125282934070314138802667184478805790840407298938271901615944967722813762909474297542960829412710980636267117487911384896500005813018543349938572168685376234775094998932101163452248225824375112678911970710931720361996429099612398312763317799051935830156104174461536101792777895837804615038024451258112284016557432775484825283899605294440256218193456363921779389965318140688810194722873902589429044986870178824558612416063309268155682570678863773846991765356939695009708452882146612657421151756279699331517549649088346615335009756681112698173258218687159037835802815815689967329867528999796909273233564695648148286248422458326023896651680313627395746503316784849325017790024327044312911647178733883072187478207732422523971631055354602781832031322546165175773871482054489895029305592838577720767781612034562478363596084029760940691070143269706862942259039102055342492651800788037326098763619034172495306661024944497376668871053478911645231534446191804884446117905210588584227573229082261620016942457389049813792447388021180457458764478216329964747881806364483959112808283214069567277564571136040148298313385208414243559572102579830486342223839010747293354307219367413678597745574397760986616579437961357783410885360227185064539489595901460421728380677269819076036897583973976790568690034506051882295488103004766041818042826584881996697802723350147638828415498135093068838201261124865834520202941639777200700516454017289407916977105157057819732039470336175600178418740417049301439523698650814425859441544580551445208262738476029929887920623885808407939854408393407547115857738351959794088893645223691956197381480456687097419007610895459485873647948394900218430209561348704177112302713092074997665812202668182636572004608996150559256718281410346582658099071745375050505842900552975645631287099781581243070424654009362255849259437420417450839595680618415931693284284666290111234450724930146801309257017295307460229569159824856089268361484148361063497633711460307332268757107218247439678550641620193458591392897617512285399832696520348968619100208640809864400809872299744307167867319062644580215470319072257590335058757191837517066164178790411593814397252803226201866258153361085940615791663202217094091168897266334378325203655796207828540865404112449751460260540675194311414225656004816811739766970135393498728405049528944533151970938575122959510689899989921468442748077145567747089067061224110706639025889710385196883016108504769728107631367404776352392755643089224117493326351731193526851926461723208159682495136277124950932454592307880256551877490490963048006186867920240044553724808059867563006926309492908888849093683726330371552943240099072181871741718680623154544217176114279158062729988142099608718000285237387746020466810280887531598424811472342532136697084798671209611424943720951066079076382652854287287789588779769971759173271325015039464128161855864874211882049396620223897433841586907007230489085623881595338974461337520928520769653064288537837774866850957936245806599021735251824923696368941408317247753008650574960944823015962143201918625959596265183745665619113181137626979928740630827806381822729304399019570889067189252378866589535644525764626090361548501931416556556764328834933121873853173924735930612762703118275270407005970399467303139771072345866498504968794741001557532836415284401079464352854399627550396867909586263104996288323178139279288735782104943070744598744621738185098414725033177268717216220765062318424373637997932033125144012734189100345014588752712508633524205783647429711657696159056630834680425659879352254872575431415198084325552185889807566747409533250090294497472292624293726333574898604687130552706792666729913293057972222802981797248512241591205616191191667625888767907127226510645990697196466696148437999440348228585993192176412672116407292640977334172722332132860940324236003331417198057783720383613174541724657557945505752233783866331561854871275480504226162707548947578372706363311341753626717269434030652878087908777666978329530509647482994666561320466423999111613090360686415876105083758656086249513998843882534225135259161653289206202198119609071894156654060376431369855465940788868046770260319276140712323996496397097108017527702916226533572831643177648137742907488813502652960628962938159478380758037161659316669823026561561280582120684552225031392762588309883973570537067026959487704064331914539044452750242195691178443640208404314446391440663572243174540943348231365784943673146886563283083357313076975623872874213524220782514697663084035741128674859278233339257492720445393209098044338500825039203279843630342794471555563255638191102544667039172509821143537988834274309109662019527790183472007626955944273802926640296585922914743532232252079032250668354500988028699012577412124820366478456631188986278334432628696186904889057966340446663630096762669884078306038245945329729390515668584606088620423021579452886856426830248533367323574151385896877701535375245310424425919575289957789334334114199494247580031528984954057057895772837320408691682882898069615808376728085307014575329897591726357351856423693159276381294089698067509751808917367626438049624453165228508988401552697425881463834092254907652314250925381746470012997668387812431832236498160593021642803254859237402582581283522061945633581681389586321051966399855256456120383751456296651191708613621260819087582890228394262929449306793139509868823191581057192973172437354664868604963633081211082760090419587213175671550011429855220462599635091119019173361452314117645107401735536739618805442209939207905172353715731026821760312756558735588441712924875264420406482128050267017612400635686972905035351988819023336398849992639218447087321740556769013624409144430192815258415761741602094810988289320782288202090061817777900474014501670562609193438340523074834584394659599064076459265534925540229495672655088074408521980610496346892766700566188767707626766924029239588944251374557730821299504677024936204378385383756758914758346587840640120807854692125839907742462938156406627188376616277271907184260976078787492156384339229069386994556162558628050716187918950413581250286528628384171347155433998824033926282638671634089974102626265869250704388978389728502381708971549699517095472938916801305034518166213417394458672025843283920504884622023470851699981165285907607724668481114484025214608446463063627632704853643633904391715663996165574786994688608941099186207763291376713043501734187523851251340857694902732438237816645562745967101829055607819846783449949857485884658773581791595728720499568759845018524189036663142669428505021028373742435972493035574907044177146696627563870930857693215934735232770309045063174113532787577952114597293228191925648626197852523269946768683876177518414821960111059305050816295692035015642459301075993289255791192429511214860611502602552841272858961010264639949674994216842035743962068160311978230383326099997197629313639119033618940556707657795853804875054038742925356592137287656148761657089192591960714619989992261287860574689068893912247655807946300469170946996774429031790678860634306892001850458661243756632499598725132960491549180540803216828274682015645769316794077358134815818741857353045705338527481463116114872055998021150004922471969376318196775273347027359642311152243296618337441050516111409548614405763108453333618205927625812197646142502690953239262380950443446846022514640634116742216434900145158872983990371241980200457526335869811841218530388352446045936099695128498629939108012529784418752990241678417937729883465812610902417757980743492365884779493411572998465183687480616203314682251228507289275360124127400461262887819360497599326542677591917927703096529379934186097722071741793198044848462161196458312687609006086720101149392732167253552401647766369518062904770670883101435658760614627656715868116656938157696151647728851386689217721066198132414222415169514963319460462639338540264587597641951592578869167267226404540686255808606178196971145486517673205127782875806177295438187511831414268208691115145744636281935129965908173337603006003475103435521995700735325411151932088166722131134847445531816896966749438940980817853393258682521381270988023138395076110546406141970066140191837727219820686499402891092875818360529105182168024701808423866928062911517810804336317036830062506468586359398479954841210721869845240932562874892397922273434888765531696811470230768312514921954659010452314331191881958747274338552031964084323299308633882742191031299778608272729729707326416344177380973208684380211671528752327500600187538408434763582553602314971405512255780870393716781792596663386310595139820346025962230810762954900473810237007017790847996896231317716333866857639932300357377181516451873181266800856423780986948396446543003538943279857911100651446665262686521973523122654704053923640977169635783329575867480800770848403106524435423923515548823920291027499810738762118948067981866255325450547816550724507476527192250152330692154601311057074071153807860870234803362732629907713027350063618640579204119247394500077793270064584337665651092779987713008028524642159205882134400844592463031131348620063300662800709931398292441481272667276234163558301017417389650468374420757646957007858438496149765070960392501700414343634069352333888037116711541772176842667622681806395180872473394908113943352704071658918374168740706371096368142187731645076066765823768650849585122933373323042723476317813955949949743080644394535280204414293002932784616590182204375296503059121421225068089141738332984747628690505006279364706475196425794713883201832509506075604508636763929361180862996353800879857757228570483903152395516158846210979543521821352198982089723614100739391462693557312101603617021516467600673091034142860137794313159223247074431113223673870206072497337604385651775872348211284175910327946115583126676407078662444025422125558734493706798620559086618707988960883537628427617115692934735864859032718921428275700424346230295535588287695372811054326165875767889359465884107121457744075147758897097549884495227877364422728958659586643526191301349355314105244201893463512123071293483410450986544431265184033113787186785371467986031060584248899314878710656478602493813709840642942614147174482896706948604877987797838510693071885666107464447776708894224629588771902270921789176788768734795753111939128926374727385433999429144822601604163330805834560419075687572552974526986420756950772149076773685976123010794503669620198898754309522572765653166387581609897631991210449761957139624805910856199642546211554467478320154204328020706964269773454559342082307955604125970644894860811774241276434151119144019631506493106163619597984248756115393908784937993365191939841457201862386474384800401561349082531615611021689174066704399587096955986653169328164064953290990526213081501772864868455583263337841630089971241887667292667150441612659113514171101899464346784606480754774374061625831613741754925499604883894407227595174218464530975213279500918364514040124787985144336702377838100845879061612558358825037207442578654884250180394945397263416750666365349325654532449216751353083689020010955311827793964264016167688624627305851155665224101228477979678565473079245877116671749565852062996547445192061938566912753265277956794467509300462613419762459526317179540174982049331613198142970306045881674197804212739506760738108169743875266457269823948653511184049918598418812852487504411512509528144405333337100706066454246540431274846254062020751731375025586505974307936680337404622999349260497500066995813418557135395091207182700725352665182493421563686554414996367175612557709387751035590377377466781130023403879901140612309630543846588923248966294331202221122044491411094380391761053057453410952322347939891458421896488726921776408292993954597034126730543784377222682921736318936988570761523598651381787532237174075625979506440749024363705345569721033782733877030892644628812710930796758313806366227558753862967544360602732476193930067704223586806098302131028899419495639723997026976825577524436299836469255456814551966032338903831543415017688321441120564530514390428757625799973233155076815504261233060749920283061064938968695467907308960887427000074074177207986107313697109359501553859408561985501753219702502590996529816980864747097510900453119301833809738726025177461815478975045753391195555312278564993684089976628090575324021258911949633958140777251870944664344598470892897958452516311179429324734849044336523122127430855160776378609166851603552865267473635713187114679742149415985979320630800096961655148471471833142878421530205121068649691136484518210665620058927694745283639153032556879109555066466776699297948259126597084680953619427172432769423922013278885417654824093106142561055149246621614544498383698479486347946387167029659398961407902624504977446126508309165810965653605502416485220812927552280054858722718126597914629095770007660230708049712458871834744904990882178430022182108667439986694156056476738867621451434851906604450842475141501423282513742740122464458627808252816442520345841960184511439822822011478355832272059759192052718214077446802231339889656828974834589223767712368612488531025041948579570628956771280682420976282447430467504277478590770994642308537437196224179533079898665832356323787675566049020120504818035238186371507236352351673572808901101713938710013307717433192276819176625065618389813746289565105573603824567548907566730004456675680168516829773423905945258983646316755694001196354728456804606093820499964669705980105116334460800486023852295946295979666273041664341191160795343733185031046190318962197823714310690058268709891605425147638802298793382947566850107388023051471117792802683028880938773010028580742844303954173075499961367966333791514577947854181332097214556108852006983293023383648891714922739625713300486309493015136373489550752123669883508914660425167227966212080502884057513100354754010729793705953192648178146526389345039491947425730861165459856452251789626454977056848851002176333538553002243525824647461582457178884589320217571794404146417675473663403312594868022507289627453207597679253243905323741840943950685701517582204574791376468289027848823470147347068085355057826630903572098063905566873469371506597873926257441641912383536908070725945387127585521032413120431310430750455626413864628996430906512340040192006203562617906211098070720178842229783843478256118513397902418702579651609137368398390576384015193314202949401122223761964089635216003937883898144497565290810050962550611654889085909927677634839109469214087177292355594851781034668823120829609811165182793361083642567572039014383752801237229207023842699381376194404980443509289538816549114657829708277448429208645264172507756261370783363802628972340336182375554138732464028743158922668046051859214904206181894218725044602410265782463144092328179540752213288044465968091414124524930885540661328333197593610325233721542513974387567037133072297869873281443919770104276055573801149680008297747798652986020755533084111421740394800669248966452829658494436340240800192653351579613313107167869353372016203389457202891265610909810598146265510191588503755938772501285755773144317781236002620493370829090319640764975678144219669853586648138321164623618687245507902831044420076877469071283629012848487821727070612456120743321356891381463331549623736017442096998280830050410417842503279731136512027730296448677502105880755729490290204011716350161310207196847502213100290022565938657374338680331691380250617188442516333492617865772830148472632213354634317216713918181468337628181281966149124384847429155712372345005563179952133189965153368530385030605047223714170356043129708674488771049598599692231072191547845471588265651844856184075862491716930649678640746924958325549771546656662022111277658301437534948268079098790905844358084477205018245516459700311739903784722997428261482357893305863464946677531230239059867200872244620673293707305730655662588142107516528651863993897999682291444691175209478493925632054917119764552535376271183809776446172983466576924630670370841038944562428351871480932258392632392513184593640712736424256942177275847330370088781446801627235936792335145758231084324080938198712129708675723076858285545269982634546478332495447736125265035444190272182304451984035286275299014777996892895783612223268752726666770681574342651718588300877299652402178952606317404078290683680678873682778988077719080709966610556952348745547084682910257605360909642502425650203457581138604569588439316968831222217600814818024633950733097210366188890972849125739341272904605131510510399661888785893131077437966111252198541322590827091310798129568842217730727825176075872373163261138470340912857397322166117373924896172481043048974023241021172764692621894100951729787845164303607247372352285244321157844892421077197196358517258950015889361616838233519207003897049733596744798499484087655830310609581550178903631795341915892395030548037577446881561988641468767963419799980632969436832969113313454744783882312725661110005530475061247353812654234958737783144433545417278761917835495045978262615374386230743330165144189853994653825781493122839442193217969172727266768547688046213770301474099741271789653010638254193322915184715652656628674003431617251257691357896991927623976616316342478258925165976893643928348593409361766816299742186506197533815381713705251459050120985521461101039734745529841553456218374940460958292861715269690838819998016259049501533503927363626542425869012693062151945762690226667833555555330658071263949116909982533723482599021335246135854935201143552986924020410546513961478349882405942304243266808093437068996161271285630405281369092213858121012614220848234373626310526604394253702011446481551423138113996033405435544081555076429213527205792936187198403759090976066058515978460018837467390676157959971558008095299112668558014095049635967595126339996276465979311707437772545853755046681968970971505145947332437907494086696511160330453205924180947151129036762586679035282443172345627783174310491683977310900894012570732893720199294201135083525228713490510522585028785783109576844655160896552400965285058710866329821692260353667996260879481026501813219665752032143680042935757178626541503950257163741535063249971461638836562167650633134493739367148529564381842321926366873811753081035137344185717130504676321880976898343858679863307672061626125034986186647587538203872329966509274755956441254268103584989373702656890945373258786942496914918304011451891652687902859703370741277852758410541955416221585465750025146491092492796037680409808717557113050452726781521504499771023014313435519819920248318153929529299804400342083554561195748030199515058230796801522889953861985614093397784457023541932417727580486730247402554002612032212746546440371013059396272241481298591510460726939476139566065255300225788546205465878124540408991642752359870810799681776396440830486343556853200969385496816907461862900896761262332103485238090160613310978591952571566456875695626217740588102783631672102782646383614579127988786037087725237174915100283474101277830097946796363975592915396286413096663853639790059119836280107672404199513678904351287446999629960765762745405379903167858599529823908184207886407510816704071829912014344987062908611302128475381999350712564568507823331806671528178339699256597695235890436347630460089977319231441006587178824666404825348231955196180375410894780937666238376208666221943082617328359615959522634871864901387140204547266024794172155845425848098286222630262361860591965099349373780445286916012545647672910526565210022827848035668102149562474271323408734606251530630732617584589131591211041433030337605452973668454876949022999758735520542324549514148335510765513718981983211782945308506492149037671070351184279039171071338546270909361795727424636403232851185992294729719973912326908867091676173445127905803910993505503488590873003345345763633141949549056188930764819118531578266963604606922124059236725737255627417499599857990745829648578881246548256685088671600026196388017286122751500335432997805638381368667303146505575250237331238204698111520227915208132356111667428997709007744250493276983166109317096325068018806896312638526706301363765276949591246455442584101260158283430052089270360219589101946684976320391294219248056226650315643867952235692143246544472671748823897937138239628924307193929330722198557265151464202611446494935921919808869320202773616547337994514353508010135480139512853044997549453794205306826126685999424652707592462107962971431628341748535527497511950663940811561940014908438944158450083059282141152114910230752246348378268374235687064884672120244932930928401400891082015604109737674629509522749882687380020981670453392820085409134367100650080110853786446666869590669522468067392025306859375830790643262223218243866418773637168039843688061678475468974241533471290384112731342588311671777411838931511072970452303055185007422530609561495140825148413925729903356158979805314820643375327352780711398872890295488215598901727828406570742959802598038798897561844437676388083121392822409279216665378744338657363343505886525660793377939346200118808354781166050426279479387263126608562475411281731950513573590566586125366489349351617848947723292235648577335780939881799573954918480554941763992556738079690740681956738432643429361762045618243249457156056249317217945004067855379756870838414969451185350606287297448590927765666054223881452982124540085085252268620912476418331092329884178088019187083137364377574520222243089282942968133956523022451083589088124576757500139457893478600650216362444916749572625564820732186072735157442460543462729708945716373198787988826319480116213036679835811566202054727310732683344077112863303667808393742183430313181362785837475008693468555514135136802938435151791272596128319964342101708122726053416705108897675462468215138987729448895882953742281302381321735389650493272814126215846920567547720077211722296702347237732109613875964648728786010937777187767376741152835160155266889620294792884168208893869094742206449162332418737470011728849559847070801622530850648844236660048455453933628321572182079070882947185205019473244988165715014028916183996429636144482131572341725577174814377883368971482978006467964877211221596018063082661745160795943904007908362167373188679330449466106541702845009198115096959630390382388315727925533016646903615452866068320594794448291712080922900041413808236246140051762069238459806107627420181465205332024719099260652851243586663485436777945373998835469994276799752874696763940188780688132575346710088712646683785275331688347452833563469994442828755927661258774261060001765432951347213341566613496441600602215621499411666152292274635088167140531324291349082455526187565501386644054175892741767004883064979600381168214565323954362803151637341387347388062594024538625698006872147356857656752575191395019014769791695092840142885738870970122623462796180727249459416605727652872590633919966267290252968137288770092070223838684121302307001687868086520701913798618999365372341433978733431411856003390546443461449203072657191766310888808939290773912394771722855411041604609457975087847552051920677785833975766968556811387367381631079545465744021717946038403037500013201878187177798714181429597864697510948593727289034590237543440007780632770430242986688457150430511236424717015159924611167595855672545569982319396319350060450365948431204889757313541815360558521694330325449981750967247801646482308964406891961620794716527828241585441749879195365354420591388184505575736931213704576885627010015396397082970609169520622771746552245596332719885732600558690639952051920209143817184127937088394124114109528225870752341809134868302417115146199569356154682655243440581343500566108236788280740002838408526093252461746478577487720654673590709127309695038173786545995664719238615009505365816530318599769690351270030450020596389778587651585675279936934376358244228139739044099090902398959083923415532617019225884186376859952411479290231905513969166925047960702108402406764251100753868501920561640915288383427690516714422898807375473999313304797411161952870538372052966353476566810073370265885615619109501352979743577375975965179860688182283525346004063601603148162630490329323939589741887644532506178634543270874440900811373999764810298906208904486718403941041452277757728299300349707234022348617685527733464394532209390216241194087209921102443720267452538334900481355198354128833007529459894746682987993452869552250638290956266918527397623276942678032245438560776496587260077577572801694927370514359877551818941680605246594577874153650735533870506881112011486098890295459543113073795016301227089502060492280531150444908412513826302562363461625422772456568355501121037972573996393618029582516202515409283532041894872180115507937905157869577037329956099832870868285261691605932728759334488267526621557014788563707142442319889551816588546472567057461862920527465655275127193500335065697518969408182093036342621266917713910903487765135573260795748633175499355577785288088033254879884945688401761520312518331449742164003723645089517528718578701137452262193324270018859027284907022287520070005660852332092438637254536913959447374513264085144671837315710192651578156795302337871445093441624531749852876975989103307805502725269509425705424225508185308577019980627373348240937288233766324930650193778867677786162809794235869869231571962311602343520325566784962758401595235209909257027371918852562689138483884569343803048609248351033503029404996332349142153195379543957859636126299160530794954469287583675466707772021869927814066621828337750600967102743003464592043833717039043847692447561893859914592306830134834802868481631972333768451911607239252981946708967423317216332388975039325455660945612516915052977227974001693815784555998363167138951232599565165188605588320211700015078515535478515795460138993152034486715090646680863893374187218008584702869970833204811503979023591939106308778313912393364858551199956013965432249138750416997222095535738225028011185672364891339233219520871662471200183082381129743777058366033673970768560992019506344795191813048428024993668432669107923839891171485411904725766430711913133194824769261671870867730058541217306416974234095553562184718170848434105550354764160064524892330637342169377120309733837925134371261777238646539384921978356208729426428132037680298441502913817864807489366888691455640776571036977082288224849820826831733974355949222613271252381920559717443116455801554633006004663704510616723872986966607589355764715097767687840740314602874388133041655441378353603761669018904352086996428925168910095966595225031862880744476876761858528404220902675827081560043970436776209560725308647301813549358089054630264227794744310596067111410922519561993621508520403813270689511920212545584802634102503208909801792167873063968854361879860731155488843735549820045157914253939586721590615925028328517916612635988638271768694541857659823847358211146673230281882493583624552997412018824671895777017364702584166914988827472469938072489932769329137072311176220995570175555932312758991110484237493302114676905611840244835206225295398951175201212965096334065970445180645868086695432447388761903944340386055155524090878099909261333110913031215084689158093298023077827897425061280316559889200160597337749097844172458729985254645706412753931760220811253408133478599261853369720972534132894365232413403670590696718327579349796648081210934507466261541768040630064380748838051637925498939028852942581113629014519534149170179731294916456518211835247693608811931486279975178147951279797829657915669629119442906353441528518437609574806085262695335456568603896259856993160884085803040953533760120039573447168201411588373517434350225803657832020341814467709026473534570349236423536203427846558370186517817052067176260755687841225050591920311022090412159714710576494981489615639643495822013072157568930479078498817017573144127060718454469975851935452518211122723589040779727531545881614526838556917468214247300378704411923090597704311379949652263250388331184768637611171372325191482245600995116062449062414265966914447168753559926326551772198150625668319959204791247803954209131479085959389311536038841099452380870210518305807733169126960065143893812566590117939096800361902182792652971023421363482734382005790340612917738356528062356593218466289365946548407054528478128318184055335640669202785751152432441705657645553941591758452734183200710530118561021488853446839548989790857730786011969110014002219377699034358877672794892255838841418344981696234851283355618842827124611838413127751619562829272659201864298739866361634593173829482333190315772884512801440030098793495060986315804433876154092032093343948275127320788664784228781221974547939254346787318954500392383425617885579267657272867340977749826069880656111197673635902702797086465668022905293851115977266247634898444407287514716877208369120343888810273806636842873940112313764568269666308423228077462702930133240014579661123696593489333878196053899304407305880303404271432948102447787436126962159152789799901285890955633157871255411243443475708932764642441690128798093173465377084373618291926633581739064122717890120758943003729722241273989863592877545440498834404260009962132316718492637291136975321263862232613431241986965642671583988536995060609683739168147667143860033011888294645429223785516906278204307837677635835805652251814876273310126773386186695132085042415444999826143260986702183831799003757381874728640786335203295881290933899390367829697437368103354291828077490601878913822680799723838437778330757619400359549643099742225115670010348359052402988246808706793256674633462230366865071641519813481130256411812527496093893936585065245628809334682756963590532648852328273445689317127067857724914096967961576061113372906939410732838524254172966158890663275702880506263896670365305111064073315645266191456907591229011890542780251343343224700600459306123755261868313808864555190182173811229622127673859130268352917275322826409558516963010468409824931975672432399332687454207481389868210744174067506761057994706461696091411379857848341059743453259055912577251787148355241738461396917541894941449320949212552234517570867031875858537245615777607844918059238498566179242072373603622309887207651581931280828408081449249743853999189942682735206443033163946526010087867567538889017133043580434658633197752497571515676296124483039878102191191886937393899210622429604594807900571600794528967350433693084089772774400475765048504230880104739561723548813752119781761069963542733401935152944193192919619199379267083916194103532672025245231579577144203623686913471472248953497536013242530652615358806382920061579477079340258382202364737270506699593943851068656695261463570929997332575891926509258424168309252362318337070047842970882210544875510373472032810137151907890950128489769660886881973737497968296090500775787076160921164322634933736809884808137004047057891251076423571540894240600327679138184422071799621028357788707121163631576977300507061768449471853665702067347172345036448329860544627656528422786181262396008535700270213110495338947952135184420361089468535369522020649397031732499816002389875921877177820844861702601654481912174862803107723160929809006625156028339570770903309544109093646361049153241133090249405183011565103543051631032689249687877767143442040653491486686885065467554449740797810336245895080968027376946571411425522271752828061288497217696887312593276567243489153413276186564301093295215870551659523204785812742753427010122369266023201594442114088735276621239321604708954962458002994558153684076249289290530462057112079477053537004755209503193625327931755949010361484563815892305666956165855172844364976382363212671280878788547148352136849484278452558875733262591931291023757845951943034043858972272908348075375651533694954029034920466021922911085930573590514310375810561152490077131109708260952363691215266255168639864529829170263424677283228865628662876767722159537113111464250665051906989125748849140211594915487517361791352545982775617923334369098805650963943334285528764431858122279422808432419017290168075664827660370573219153922628784554219136935860353427963949539986386345836805450811347494412482029747415798640895923294294495943814934821878484145908993962274217991571740632911229285439427324179226035381513208290747813796699296456114903617735875188880659755132921148240327348805331692358788360667251341271250852798554671769379033443895172994062832354656898144404290878576809115925757216326921301400274662158323611128007087115836708829638642605040309810831899224399026267749097871845511849617037598290776921552258475064740171402529773885764689784537686705199407674210355097807521012845005492580761737632110007333645377855526400104834032027939382467371359005064099924373456546809847266862094561066035960214007244497554940641742934300086635431874157392062219938119074050249626751474157607233412946385751974188189256496235074591386055698394001887335900933479529263008410497270554535430070042526705335309860121603471776458741485889109029842510345308799640254033480603339179745287548085710269909937534303290022117176615442692177702354690196265770935444290944460954596569867830458567713558274936940275645919753817493551342517805643300241892664141420301570496570770577355030927305730172260459349557594525478067034872245402583038190434596740464359011070840908575776247931154124902908501176882450501691892139264763833997942149897185366299032209811825070067651771596617501964303953995840659057552789175157261574928027748660614420766686001425881003499097765447684599166178517149256005931480924119145696318036775748462453660629495240743259290884363577478644995058358239154955723000888433494620431240959069955052342825238478803064000470265419754023560774452313122120050434275452888415448898457547967832686105577801438449980465968705675112905207981220410266493844664256080378011751873203630891952371835760897104598028924912995019962542689929377161511936952125111276133865787382008365507802479488633357895294506457210611962136849895370433110147896096298210115128860267755192759648207618434159907690474391214554067318705591152967905644375363571662399059635583869073020379328840746566405389138436514128068725272052722939594242158243982367704239924336335458051665539094377082820269050854233890017593857238683107123038983123333092471502211003614787269701271508026503201341160696181324053726315648515989029558876918341665458192737307381261529531329587024709884908564264521723706534042698921294670264146777440700228005379533021747822054584842398860249608510322233287524861957038949850388293039731547964683780157128392289817568696602824099334882909082834399713132261588544218111660099560257795284306292301531034861172301147575321955763756320355623087670370106010853456560909907283885056485319649418635323793973514261821740784586551074365868903201243120776348761390562705822064809170855116560341048186127123273323931095873879937044210251687255584081590309761677263924362417426805952516166047273387556653026933008234629637478160517708272602325141649050281445267521603375932453699116188611886527551847131007807972947510130015382919815258786864262787629403799934838335663453121994894491058409667961408984509647471419070881234293233457202565737125925846141086396033854082191775658362028454847142516297477163479817441569728924949625478038526971303275210127176226154990131857067652888876392001817995796886489544701030348539483663309502232863320751903638929041260197399753063172474361212104498292207495429196849083887552108635388223258930228286680461480298639153763941364289744808021813849183550114733086526431893816692055328573455782930028511111209004324380151688530678775219597644853329076991026263833532041966028433587919447102640304773632046596378075308393499646134994019891963514381996815426272318047744349263668608126305023699342723959132234748182444852494841786786713139318623866377626871490716073518938790186276608854619057463337165140715082896569528274253876036637279997560630425147937214429873459570858409344147401374843566709441444326359921033751508097791106265951769632752089993797536416467536639262327400440844213373503545885334280156659851664685074428822920031287897686778425282867959604064777944654749245360453747879061457288502724493034169662499727940131866536156226872449380711041490784294074626520889432467499709112077708718737057624702052130820719162368181620195987358866587221583717440313453921889519069511357183551449226292568459956395252252680476110721070874607727061624031610469242478034015669851415910709434048197184915642288729389692087511715533844591299222137802344053562217391418146146158987982848161314263091078265577323593921304327702668106338375845045942469783582781376732336845442045970607831704075962611266670356116281974777633844131825279304090720595881645036566162852394385856589653278649892670859464764725583499708429370024748296146792196888724316454206358502637811417947746090548351900094743983491993186381139693614724909616580682939472076114579378845404592372799038509338513624571906148895719150111729149034794095791111880130037000169963294570423362234202662942719040388332277280645942030404643150727753667686642725168944696670453053415574877906676145129670455440676174849772247274675380881672062230929794228482861608944989393781125032450357263869490363494837264951644683640909855029957386115897813868696215313382665815607196189462125507570251624626820146617721901989057290766700301543135080595766494092408384856772408451414664540222831824780929356702081592769908577100309682274670661758928403211858584811423856401539454375972033952403197740440469526525444826110253319866048777356996170528755911471336672158264181274159883065804815128818054544377884809378323084993454320268081607974977087540633969179203202185914867747942708842031319446792468552844253545639095539680165037044561620251270887491846231153537293831353834662685427826715178338220720581797861748741071251440130985647393366727114699270959012108720231047709838595021808695232733334705409115781178366410548146007883152947832171626781507798503253567351223309346700120990563087600951671440709626249897541239737427828685459976035356136524891794355269755788812937763245308418375712446229590769220700730786426379003451555246469202481767174797162318031444585580208136543207059776419332120205072251657056600850784332054493791151882877096242355151852850491360326808266227855604844057743684041780353986478412867470165852234727554330832461409459871559619132392750261585857097683398578429714075598341429062231868280675239357826543789111560823737597758564005463972496714256901231650165358961624666786184429672914659450750967976946091919563514494416892158320512206219880120190887280094894111756000724299789052766297809731012230378078565055895040515515694288287813528280761906880280187593895364915218456003553023941129186460326784470281512545252925617961750618200985100138019073337587434243918158262428272860194341197310623515972053591600650577886830759843131314810002879228495765253245205687129531702337833247349963636563911393090904551338982114679839579411073167115642595755423236341455265979229446308941432906065798734403147614000029476028369175240191590953162023821446897763611411643827063724646258131253458898098411447021161469728513991715000354565090399974577714701632907334614083222114888638336768998444645990925366298647302417376298644712437929478231707402024822999070516010652317372732623817976875505886035479309347696808011485083657589886771068578602586156524887913429480271021903553229976068869374749065842563353657185203813794677214420639482987031713920086262585450467368959595064247257900512357070117399617898426617185418203813277732063903933441993635343556563755846957766815627662531679524100577120117830375473774367423718152801040755074203123273153654665858620061012215146391219918588213866788432875588273940053138439901798511603894363879182181978481366502419688972984210426531220442762622812769370915450696457589100081859095669081436966671689769158392578969057931208216281652246446032102854785633896506080510322026835537173959670124062662809448588854344014879546707054813773926504079222976800826041105091274134440314753701660908955025544521902703304692316528578613250245156616616613472182789643757888761351136010428053890092106008555620715247686290802375416355478651722948561039823069091106844041146421125201324022001855926011737909958613941345801806524860937314464274025339437385180369836737355557408860146615337978374627429895704858385449689567866438042830007095638547421252525981936894027061790937676667723669755441893655018892990390333869523342444490161825976322113427007201990271070018567005388432245093470745034016831922904151982276256792199590905007207261737288504345422368606131758482021081215116388290853974997245613601660059736833108904590299872703163367590480761646862175431076237496179513950956212901660217993732707581172188489397715746265359566235536720227819549214374343692838424180582080882458923141149841290900235590472648390991774044600878817031214362787278257431920636101251970402130184502256134419539023310082588638255390895085897857394073616954209128508417049295415497417219317200201589708004188954108634238813464912345043490796490223490213749825724382897470078305046218109325139674643376050908995313138977302838125510880862265527656128677050144153375796736593307139611496578638375994564239676620259870548831180220973755533201915737568953091852547568027503386986844681828626380020320148616313461998447829431381681440367836125811574723484831835568103625286728155497585762555214003181616810788077855316214627039398573470237990081017549125419699289709949168641624608784633707544650807918880756458420352686214443877313956051465006556440565762421012547337391707015082708737572710086286510101537111332649337160107954373740218514437524581282373750651803809555519017956398811760887856055556425287838833556161571269425378978109753204881634915002444534475431492966954243696603679687658342163601513741772310631056625776905514927151979146943878117960776255706481789976155940915368572434121357661952424689547585900754953030717098458435280212320078009344104125619057240680122919808309237697583010690846660719962352127397457089291399784476989885618099589043237729080820283409390444409447382699393825545284374777978795574281860144622339094856757560562912676636999112421485007574671507802590382497484044823588143711656835360910207077892350401777780573307154563811163614724739987669635144111072922115318391572465376459423136566503467024434051596806579438287918820522721091567939818143057950654165617388122383247556140632449150999250575743043328816669656516374817616101878960263581303274997762175954655726617696469861605851859038927928159273106005651949840576939086827921497370797773931509743849513770575444486433555467758851448714938800344227976919054671617952831873525445959141561556898051522636567255136368539698693252327935480507826125831477740264842930624537812712880154959769259432919572755065443614441044028142053835039699275454825340486968755069219855154128539271850640809449081644944433886493616465358502801665754011123574883879917423549210601359555346208900177736082664547380388145637773268275892599451436166415642207998446986428891383861499180700806991397512883457260091187908804212096717749480983634624853591173762139764025092483352984317744005585253201000674993498014037290520442908656401136969186661129807858994451431055485222807083976150405092927854041103662441658329722621483414199611966796307775674317077340406621628119175591003594223534190266312524454544569933871276009006471298702741681708577751955656791809687256422522692930663297117110638693283931761612153826525018382368332732457058964784658625237624196307507754419387783838447524888980829837444441364574445966504370845014003001139564754526213471387569852658662011097474154457259814586579167302719298891111989317157733926712694248748110643217844112466129901400141349220435085138413970222857617958142442935228844523195511978204540602214198603433689900898963383765392262040804227916805495016933058670037820299024138243153152453751854222398012310991263611745307993309710343768195314182596866240484146079955478906182512739617730777948996469745715457694684311233482094185422195792049378755011215065569616365016628596988748639069897571283416162924569674645360627925096962030580512737678271207538674808543495171444505957217194860351426097361122702249786563981555862586558334898252325190626212978575072077222093865787582004867045283064012027892010630895764962833893415186757530468045890808242894213569102781690517723933121837855264382205308137070940008204814511995336505001759123216807957996673331380764888468314615296893736459823553671179708896852697237089045750270112238846278778580855922797794957805161535246374647531850971929465884896820704015456059781531265303285776363328224825207497349150827898795337641529896059703172023879709362259887838624845069363539468417654788705764111001192930222662307029386422082112549784288257021681381940447875303590356820562595106426721751620511902054243578612490402260025115065285442943814277002300835824867542807917945835552613847099080460053895025747682619956945477553855866803409410338217015401399551327120981361254037971036031672226585021640040614587327952020641169675175082940987803665004753574385523547257086674544113445486575161850027186547053796352599310789951809549019211473250823993322588635467141578186704620073664306875579004473938927568211096148183302539795545717215769339699787768469332545426116473814351646151391538313752116914549227854547985414000582051350855203193426108740222171382540986463155027176399089405651649731219715445637345917289980390455163917224082217250307629514052817123426430383321549606805536568516446054222759374436649304687078178777661847252466450067946625896016292573437448386120462048734129568659081199935399482573614861864057988055342319890381610281658849072372181734784244444086798479923928258364159854164751484400752616153158920244931863876529351475445256284581186802266884674731645136979682193945935085797899205611888406924032589984974208873812986876555615904474290359069109085415283119043040611589671705160608951276431768349235562411599299331685571421214621296152809465912229622339875556852814777524715637032818281114888535476499770974612264778622891695732777491871064056991326932780348992722585960447428245628619093141502478983082893894956169113195321225390693807231163583734997305291128227569268256115806122250488878463274818629050096941775201245595122523624315320866095071359863052517686335769026026635551716347838108823489527409041164339683353084244484615067667064914364310171794726863518579051563306966006733185750619340334504935830410484476980931374348512423113809318388480296304173116102934601658505146426110578869172458912901871878292563668825502078512178947010290067411229424264173817456816126517477907597367368298627016213440060127628596280398990505162484357725309881612720551297223446833231204514009310283758250306626201063930510321802645799560638085761956088813457179253349791423721495071284992008305576016172109136344510723284658608231203684628081688828869972374540487308838874737210906591692782708084259454176844450109833700064954808895313222843446004346566515681101388841611055730778973611434222110063755008923941072401266793103222437606636742176319624916802320268657271812438853509589145311145674570683131197805713633136952051958753769370667199857864595604368236417906894063482502165539323160865551676119730900998497785528139161916714881622912435365423367794864868257706648041552575170697102939854876487829587907641946782267116932045747237988009968230089783809886079599145146536239405850881185790590751888088265062165914331243047789413001282778928725031979596109349548118003898236827110121808123899947593647770726559051542739781911254982434001282859572945882105429379271352209637008797376661553670681090833417420269622243641719426332598816711269521089640086412390793364309811417661371954737277055015966924361425646509179763282318951039072566440341276454532948732674923184230299148410756364554932095557009353420109380709653782753977745542586411578182398241194094373977515719742075424055024382783789429574696704696511536692313883432826553638758242054175077506567611145940448249413832118372150481244958817095724062293708594373903074322187215277461376505322151569315320086903706210481860956561293825745073480712293610529252520936413740948841266406473716814040185840229238646649091180303027756419789834856616021278607606639991604053768426532392435422048711234101267503797071213384991713483966701744485988935799120786842211405152889358543547713361242662303349856662026091580401489724277578556790309030522356611944319582457728058132516430883537772432698269194972233067910579370776365344716772077113760398420786330390834585917313830551820594610416824970790148068947893998564680458919854929785976482590285665401514359961962869910515484849156200821921129346351784952325071004390748043751863965397166605103721789240913673389854595814239374073123796594770801658096539317990274946210369545186053963118538380507084977709186443584508238914988472271300649509430268234724615976600269015472517002894588306632491018435544527456399762597995296792239345683675168314183589468599435510967870352032254735423854811082278264491737536532408423373635435753247421994909653340020182380823132353463241586559740208014834335057858939281625785804984359562371882484687569894510223072042151235171127388171699577881910325965509404448360562696692276213360836803153777286135506224623076283413257063848028478741062171128477913178069205953092508497982575961209008543979109333705944243204481423589507026081373521054871290537043058315661342083935126212801574174896197269731355893169460700447567446339578240743446079246622784269841633232453345426915876864423954405407989655990255167727320334745285679903575368804453763487387981397262183080224227815337427595500464300822748463169118413005496982204299071154612312680027684336300145816081117642464250591039267729291516256678876872240424278043984835514848213033235262595365131732412830647733145493926481131617358718638348393589085712011992252530654920750349179709276040014248112479312804891250887559664874523382299448162885517016091288301515438326888316970907298940127177002182682550757427666101373911555202326803324995485759132929398890253420273141001902976195310770383672053598841486689916594187304419635834249752232173960017499121880858178584678993822159177671385158431236061457143392254924738984347025353548302026872042933824500880822572045456876210573444818625343750385844693638311178177421195105515074565393724602141479818443453903549739339058760298021549979761654528120479773535047252105321856737520395641994948358948669811260569634354301945899278251968685869302468826373534311740580142264025389130919379313300451966998659610676553224467046888862898723736837275942555464541967074166389648971885303378607402836075904955092867166848216509908905423245694039372263410514235231414967261733070533847618007378469790752787746091306028464627612375939904620194556058679021187319690121813888695162391574685585266672206489038550077506427602281859818435869695950293053938145482755166347584946848142381291929518000241132007452421022032391030800219828633739283369422590384381042299175501375558579719930783717982183890931529265982986760910702543676920833259890720151221134387978191257307117754396561098443720814014553467407481599370082068397450800921248133380382355517250013604282158702004970674718997785547270139626569285599791569071986669150231231105994024188290542305061309448721002930191724453064700470489087729544810640143836301075871404146564828501445502933173772754291923189456064819091590304086319969873350559532411870318495825975543719256535899977476524423690539950024554081681518449441397634295510524364339024208668756517823839425704976414699566284242669738094474488519906116433290701871285500513943046128658776592590834101500192272501566810405718879140653951808553091293292582830975869204524699824505707063585195790570807636439387941404656816765442678890451051561378593468032083708037050967617875188576086306857317948982421376873266093948990573345988181759546120468536572182335304197186587891132992454220659147455147109598946452515578446314224506920547636224339166783889657011154717111102833646170962979579750139059449200159652502885220591465272494004981728776214083190381928686207899192318936482322061793503479393883983395389688103509528285306878907140042758135989970128212332654239985961581537272502844713537245043686784529338792059648947030404752704067451301971001189361205550475988777625483158862801757221902521368389062406548820940714931162102009931215047124631594271743841275879126006798789301964561811077935045002604456493048616314796238722276291868864124114709758648431671348047853479099783249739532658327713869173605768668589203057545301373983363976549351482005765454766217302900038812236772071079179231215690667435005300544051978286305066767420082090542934764337452777305313056354814498102003953560699435409051998024581438521702670191349101561837491104332769786372697116634015256785332224669824521166353017701385756112997594950403047133669089267093444060281018176248328948120197811967568642768845296279925018678945694830918943509954982200126331754581701316799528992871821296273123098235701088343861069079438216541445038782594262532071697450816742515890088059634692669548574787174019921267485039989075975230589910485038599854996242414614481016770947201005273537463332274012488311556116490748029973585502839944883125520559746858180032208220198908174287808217412992478891853693943561560840344521237343356926758173028674707253893878749317536067899424998833716481595387771591224448250384620783350563272482080585172683025623394539928065669238880477323715475483691926541444709317815655376531239425931245951276890911686304736845862952831976829412244909953014561712315348864265717709702919662784360509038808567156407145962234281172251722623086757255770359111780472333179119131994877332568304655173012183469884175489197128673033887947992575191398228420525231677166267032551821235494560011307985851562668531827976761758625188519723923555064030804034363245186828241589384032457572071225619108603729778015985413057666247855785240089158102869831781313029957190397949630823348220731533661848512458183144423458687754198478901428667436742448559803848348323754060340835910560678438109459293875415848090720666311012550852220491255864582188788252578718187445743321213005695450513249546817029616159159193077878120947253426135658095544386306781401782386275836311635402214614821043986606382562255769843151555713785135521861369490594111914074364012456092490199900453750059295612047549173899531407373815690723655190384919331251085807783215445695689529255131271512995339372430002088758289929564047988491245138757461107096224606702130811430749330449415414057844312020252313318080060572673036992780085196231685665050597304292377033426076246929418898858572295880337835772245375597102236646345844036614749332789270629065377948840254620374042226369101795809809288291088662543132273966222402974295422292939199339070831192960408848452431422276142600674192830729402922121860968221509507470862299605836547318224207771452837056014081347197106387840122858561757370960566830225606208588798876875170722164553760314826694746113816316353049688650063697556950449605218970710361052343029377811368374452453414780050781898953296635503139871240925469271466055440053987302154004678854577988529275688504150237679534913053741592559059806841092171975484743442775258281595025372087539282397751757609438148428126490419993740802344182592170373974005802790690123082617506719288847001009159242628282699965040320278514812123241049976405572330930923698569837106392841042426053164655833928361083642789997665564173231038337933531522185783721686439083366501754419069609715666277502765627873803069880970798906533435479878263916190419964224892757358929745885403775808857806808146140189374309417640327056216804136276488548601136095058986915901778180548881042028029185625329407372880115468699594824509190872376357853302517465546505100947321518521491658141511390689375599135471796144290063177883751338492909382609921996382576322163154584082079065364573882849371392462331049642796362966257269247552016673837996148729130598005581990971872700438806206956402394610865399250595455914814112485419951393362020242007396036102518256917007386759167640893720312194518327849023849261971200336829603414311594588369419971107244185680492162152362679796615446884997668535698926206485908859726573035959323303751016672850624526667079357593418028116664071780823590488482135355751827932042820663289004455682809845568702440800647804045673596888534361938077875070450927857619664233716118171487273719314792758854011472787319850469741141383802186092701852103997520306746493166789545490605256339684911856077956196420388376533090958613729461071965328237523244116998120185930139801858326668158923922355240433275732799966815185005749379069994600370824103316069477141542679916545599106268447445864376416975622724106950379662387296354634566304152445889677314432438442221937394518789847397930210165241973225474514335870948649780894450482329263315066754847267879493345587000533254988566430022472112604032243190944415541713964957242575737852045908760242617118855102004574551853773527513011258159598400747013327562989190171955034235694596820332120329461519082753320971737454755416017986027390557591418085584412130036717671209035410022899646748423707094605802014117813656705204316012635016752161817946481950920194048131265088135570407622076589731956333627783181752023005655324184037191091698785595436135096886891117222034118990638760768253068284762648274867321484225672904553542699388565811787421158700842865780872576517420961442792924549240544756926661839787107474289893224894845534178907318036201423817540968145794622704065798098331703252291082889982346470878373183766596791036762593603093072928889825468985686636137734924838912301333913770773667235848785115735749930992797531456049765326475045264847857566607737441844664219497469935392689232890828136777575253586200151299698912236356000300114972404414923800180575042978207897943265786428182755735902381394730698859768050579690316594317767018825990703927107586813589047553025054287069530523980243644454552900251107817010369992435380806514893406373831289520673866945929180262383752287305846445211147827654332793117487651774815589153137414103774728230110796459440200807266905621672093183974556271989404426725140228840105141384776460293830404852028014285742663201331116312806011881270906612032502647490915604796555633891928065956697080099729142419841593026190123094995390996040177942779213974386156147640077572752386406384374365629864874174637758093838625777108744474645104033904344333574550076304508822743700451011692603450597467515564545914019196254379040443696282495257424280417076972996758576363256823305974206474720082838816184745379488451804597675904282192223863244378558552853398873147605641311241804806973077015813369199358439399809504903238691454721660369094225806732254088006501097610651801023344667217782078422354783783435336744037979446824218145332548353163483427859685523751257635728705026387637997395870207060098793472868151386113674738233362886657700061743115198757047256789743865682297289433013569318439800327210430383572457044579028101703853216460471561731449795650439645128402931549412969688346196963393683203942977174987872400149933296257306057910875437570933650381588040722305828381116199716044569432532027168856704892382447749583085211573466139350937558440657457950833288776968220266117023241424549571516993134665230961415181062387896147889626553475023876732155434714131019897631553799422613788809407934498789699773843368700307709486584418234608396856215079061570942988232351811042757874423073377813897236983737840785020476155229582997249710855372341419277908857471228446679150928102358015196114171649528142327811144793593042348652248520906728566719376351771758259297830263982568896743961861978469102655223673178555488622873755947065883354254291117373237038704103068129473836527494894526099095626214655812830514118150792643970271765769739049858561006808942221247797159660393770911589154388475391093485218871320276965497634772147752303397117023332455242412570615306138491217346395887637170150919887985772145282669795377590562603866622533521658944209509559857698192567826828483997499425765994387822604878618464575697286301354691005752379108939563880535425188158658417422942960667663780780593406012915708028584747103335387576269520155464989766444734894617589804144763822265651549604639256584560306515123721811035521466011110887100441279505791114820769039753354112197772033262247883890239905512079839133873531580173307650241826890211496043636352989703013340753845193958832792764889477621261988907908707269345713708646335627116197045704479933637775285426874562622911256767162472528218628439671510332359114814621163999687924758746993514217580562284538767659299357377699309513956886113595261845897018432424661433906713260920435599386660118229466097554056291107738197640975820048984277068701893674755814995695070695426681480802422779248030565794074838556072142665310183253491187751807827733411457765405367838968311463521451143347087179544291456753538300447599142904747202200523698049350686318281421108383310561189951670472468402731760373157017474846933940469065816830937898785859453486126056675975381459157652178428594658174761181949647759547260793291033062282670246410452679804511216701753388984996203949844844659263215978249409137866961908996968922441267107286589781831270872793851238100988621233002656813097262295696424960921855345240731044930169636693675614645028015455529327759005038708473815110249416924799904610698466454145940708007429298803229281229606336857570126338630652378079217100435778810838725763293722970754780631312106393523798178420793908219392400859045578187164286497509878933881748906987328447720002726198294447574043361202438120768873072408371882238027032394043667243467043737529526978456208017552383752268096540363022912101963929536755929810383557344511724940073236713321868856932673090508014376622730113462912360435189308107258947260768225740966715426706315015734427610201836623988766764160816300990595619183186907264508130283358171998883045355315934226660993005013453072819064830447315870261636920475383892605301142493753046251590703558710032643651836681776864638725346210298474575965713631636757886551350821918146314325730225900420454576075988261365609000253844234247804235830986272238735905608970948424850044839477299414834326511487418617978420789217981658298957055216954623511766678788278619005046030453210301773063290284271362972770715234442389757129377381219506219652254737689450499976569809600216047958581262622752958552126750867175896008123976840407618751839739435070300021592548819595603790730546913525863544860460621045510239068249097419390294233284638372019208040305602438439299848764214431411393437928857558965578687424928422224523524987464179043856227550669113749858719124668557448134320868849864377297029668830549751995021543531289478321661540081457540064028138261356837477353583039186086686153413015846571376770504426977775321016369166461994616024864572871251151693802794409419057091765634656808285139243947523164857242673060385391801265064928299322014549443487010768997491621851822708758263937699735024497144411911765662892051162052654752199948153310818729894200905705248620708286296107159557899779090542751586275343306117382782936029528671722675799181644450670467505395766516035622800762654052939161721516022144055568393794960903385664015215827792769902249527502550540984460955741263437646956152858041815981339982035305836894457627225475292292824338931577053017169194978575780333591208329311622273084344073944823578550957040492822615530080237265778251754462793299993139936878727318869150406256885538260928094234819158265584892881996287838783554104842526424278791849580836859045148486762992340312966988645952233629931674859708755302807238101879263305431929090686065656187811255938726564099338739280506452607145842225154464522569406228509399799786011505055053255382421629666024084473257276920666416405905783206710524512787813777843679141598827094278650684332569883484282652041312910663227840969402883964361152623996831885945517412539675182266580379594542137809459671561763389891765700748076658610065013674848444466884580923694399114465060378064610794598721268398252807399793764533059020722517568829203722467010770742310829484239375694076129378039471529047495536392781240113790072280530122810255010227735167908572018994245851913941198951214702791271056458653104862214192362773429024784934957969840637909837540338210207107715296108814946224441581643215903108780587135629861433223272406518035457907506461221466619472774412176322887824120304856020186549729634601600603717660582827516281103147523225496825921172686562538536088868311894095573718116935002106555776330685595032704436665034569878790225339162246897440683722517954222167064925270111033962460709247032773893991462346082188477110373330587764219059453113111500533771780976959844013789220788196353121770881541967678648202901963132654196439490131899880960630475602358193835329757587635625663914895559931726127502709343098878745548871461836840030907919314632231950889689028834023159018500787349198624173487901879117593231679796169021336732253639082947509525424810634362250028391732621674837396596095541882921170637703576863075570299208900629944585053442761046655529705030501485500840796620666788284168533661831667300064687911581541284902735397368910791332824690628227766070310236834605557731859615753752101462832752606564867707381282725704625420376736869933362802171745761050562013281575533787253245470771356588675163166906033932121914007345114269474623719870973446895911032953651127912385051599164976317019268648114904988110534991612407404281202044769905086014906264399829842180523298897389370503300017866536832650336313809135724793940632037611780627221966182939378382555822225992318562666016524757051125145865286816939724059425584992041381155311902062778145978983872359166772184823966432106519991306501505813371330079585599734005104480042820142913054872518807865513684680425883361530137707758828178201336454018811984929608388195193596038265069462149290656013067855843069414031272513998302249278783757626249122158182403436423161619655834652431174281238236401253414555955704891997611831935020867077036271918107139409265259594243283840094649711375900895821363546257871712631040768007290598013740001042948797480059098646618010097995150514370607889846821222436399295135945034426994493488884325778124885443837513436218404406314364316948109783331213555567413406381298918316921389316744214567514285421174989886558054349638252639072847631137737801480228140685337257595952134119655428123368008342830271071732015999445719623066084377563901011561662559517758405603500253425850800365363744719494419405305531846165391913644513919434928341205632117149648384777370810189037293039918731941219288306791414371057962098246250834585385918052412882771323785102249917636967677513170181127801423005557945507647572373536107589227526521112556087470769912958599734411049662267439340946942392890226346252142485586797461460340846431713414444607217622968272702424687206382698242361042975664310436127911928530127611600848167226353804673917127608693882891478985014858633206409849836125408730477429466100039344648791955394549438638507033990909033195428230043543954140801728929096006021163312507171138637015969755935294317006742717606295894799372454773780924212925657220087774882982453259210245908982584658499309472995756287212291676046032888028330960664995503101754644925723731046489180698904782307642883251144224505335405927753796636791720573297081250627704876384398513983448209784751879087477526852796306741047598347725648504053519628519520122060963472630424734769163627406993494062221396739727819611034414710245619235208615137999914303871525485731270051192611635685402225111915173927302800709240655111813064009120466746557524296690836855307992631743821370694760002047315421548653947902649500929860951742921756597223734571320927607010742195982572838414648510302615016468216990676239305426296576702163065043613345461315385284366039761738838045695037391990849340640151978399348298256501035526027895142352255736592520256702054768809693199258387540356940136002576651727107371799578613151844645301331857799508020482722927443915305426735626979116987929367540116285071589631609642924467287670081667545307044396984557008545948024811859617612621537384548840700196107163978174589791363244529117676413545921764857849401984784649664565477966351264940515853105146057317749162314400824090569986377833063996099218787027178899195995138327870053560818850156630084692285460792183345507617591498672224534839415299048461286275550401262746106667724866024867147522453552204549086149874204868503722760078494667601172766530689817843502004087744049202236569861965797967776776696263778723552445580774109363847681686112781072917095853858739821015681464577035022900453939197065365830694900106942071021430377904413244554783951243640951316537001657621235580958898807273872022784981194688349380425921350648808462068764689282491433528858787982435824085610613572909838370374708699074248393091001064582081121140503513893939858632488664368748263918868696885328387993887480884259678094718910500454306759162287608513249139696863734464124467639543807798896963906102545502055368556959867908914257493419440599902363510282580031150911950641103476149188804115405627987750558823843615969728956773481421779928053781999363329564827381671944234519074913842896908865432644592717945425415687498029687139632396157217847801564086859455094022168624876598365926771342673584248572421497704836270849434824864233472814792138987867861658095387529189780953939667768827485185823231389505456492723419824074170667466741792817794054672241269136357631425397585987181247654648546718833356252486654290655463000026474621819667023596247799105178008925806658380163884568446611664589778490962754509083159729930224311193051336177855954723300157544081229896501571025576536910662292984347621413652434725932890695382490259309591105531812580749769792725808857468397380212310971126745633076116040071552696785310096096499615735889852904334211284446364668641217845267597705221881866047807382838107652132351935186914893642687837084910453714074259476916526284799068484564090144292753103544808922538438351491738219840301103855490669306410534988440764397544803717447118123260307394824426766297726373807994271092169456935095441557464584776925345658239360527293459134959133782503387777018385957052467294547119818172747194292797123347829748756796165818264880995223079147899159147131622668139280046407665918885003083985912928762519035497157950689324180594417475347683693634919133007301410953512544482983254984015972127436436289713469444318236451239834922108550190481659811875447751023590484203121822027506459986474406458627177437997325696679039489153551708411463636783914651799699091916871809214083529073851568849209711779251702430681899931151971106513420908848421577642020863821521189930470666711456218149787491432443672470850276304092556107847956355932896745131794846478212664928907988320969714751300129854615790493527716099431567148810712322322751834230033374603204900688441475474476446246008413937594367473531211266630687085149574749493474064735974868162575170991416751207088588101988823974336457852494283390910917490038843865162435349207383745938499529870844685724076745006719048659233345973448566835252473644478787606671955079983656295619741675279297957970681454114193282041132060532531830079940934423009519931349165787824810414727017644901291657067390228309647771124536132099763339072722376867273268426901126046282322404465386684172787628653748879196279257391358845399096799285866753823907005323290076088716298373547971723133792141747044334874766540934850571259253150162129702269059240648674089680292866397936111874064488540139256434397482249186626178891493825287502873940733364316595414688053887822192680519527152026655853986606072291888852826963734820562162335478232185639436357331511370984772680235809587301856997937648716184131943681092731231880368359536347979121906736130051595922900769693292133891399048560019574024523991732599464880718752280358242493743984212227454987721097892140910317838190535272713205411019399462289889373053215157049893507838988362122135839784188989722853098251747441381277644456642512306338113721475786131207602394843717638573542224373098244299982385363243293396815809330130911529827892561605257693199512887588168366639486984475664117555707270455756702665941668017563597347933594872470299141475777775917719867521267941586233395456787921598397400395182103557308358308339530417517498839552678405842608322585551700929426298752497821011747142659342417782486215257174613391889850195721076744495860108520581317262267131665148211214532165721847236644896829200975176661320882047144311346793861183925687237885258618771671006433134076193944063743665154546159330051582313367766870019282251056571256983568611902448122889860223516003600282836257469585996362379346376018534654430766536287157195737383010232179760986081312632310117094232862560865241395459485359094820881806640598474617162414933892170814907138624642895303140812982572246972511147493057488442471354827967050257519166090543328648762622996501120083162881822875820585098324357762204172277932703506035478393495870803372974395176023056023095278955862583612380851283954913580361885319524314780129823329817206996778432732360539940508832887384687287009971610321060387079781276814094521754711915684629845032740551410239052803931482662863117171858797942452334272672983636885524526575341701559134206180044173931063576616612297807001284194433351982977924459261265650674436793127804037445926274647432425374627964825360279041163749332509778474370567226396042324169855232284813901631190904744018582459205543980296322228637266625293297786626928023269170147454031019892643170851428093037971681645110438217709687891767862085386732869781811591174046357984220461281280366737650262080477272181410141251506251440137641286027914613747785332510990995145763102424427712853982472146636626057609923460713715222341197383321900256749086378592671968822594603183627533954407763553266159328369423380696696753534435457010392132775276256347791146663339818205998989144475853089508606641050903481832808199477375791166486729897569101279781153515674578520110394494056649514219093300198063235760800406990900835494735377267762071670352910915499286177353792554180906187304853619272720007067418667016834185700606362193220266426457038820364175950808322880299043410393361768278075602481010813448305629817662522839317368484949209391716773166101772484588673092814766494595290731405361540532876722171220694784830714654759545469787735406938573444575630301754833871207796383011849730539303893211761969217371113041681698481437041709730009792859935857025334129001439157445243727849953599434404376174429264343387851794649900905808045014853299495064860406629019382251647872106148724100222586011078150718945864405397173986296207550612222018185621244749447984541682392119759918740460477764948422935493266678653036994758567766279363114842196403721051616220943721571514987781507989625582032237790574027337431241889884038369813132735687161019694464149575845865910871181269091447284923310665559448590030893774042706861545904836203863571234026766838859164149617598837809750197546097950281239682261982702155423692742793899726710305697281743400910530109391249075895958469468720313897242447056645351225222407036717859093440241720179746933868443449234323541867497219913365975377568072966381719967267793297534234523760744533669869779557590665044530976467037075795297325344535511590497375429463878108397304728313759980500872638089848746804295879817667218072781873102270526121913162183947930580483763323157236987275120320921669156499135487599129987724046081746504157164945557136962530660738939647550831162167195680287152963140790603634108610040824224671152966906868529167215178887171633387464661010080933852629468528769882195389372829927354756650242111415441174754305046221957673703325614851900891944184692600617158566634014750382248590246058644584764248232896846951965655134899358086462154236207816729601734230149804367914486070099984127360256890510754915258095071379214752188587118494445590396762136839479900613260695561519671373080271058544746466056551877975255294833001838611189716999061077256534389324823404897957141417794117425166081960879869032052439022700583644194531202449001189425558509902323625694513841904574351654037933206900108300727232157695386071812917063849887439477263513937512320237937149776347268952402457412186364704401419971121121993862690904763941182739960097051745853958329342499840941007814611513578187704759235645445289642098976187713411713282040856084906511330731900518700244609621134181371075000886725809921450185150257788714494345861222403171117639328729190144395460483777466642342187138823770963532952323266629935500162759459151843750503269073744375679275150703503863429888507693293411719023154928874031150804992529169211570858761998117096807850563783426875542969366492556342791319677441982452828249409105057263279306902655704468334729382866217651227464337267125666749936683184712597773652368903842251263772677320347971206346031631085934280177334083636884261736649338437641628698640035207672379357862793779632688681357507035533195966242202507548342432949413904169958029584149280784904691884620276308681507561516186780400558217995041642265898365410297266442429760804739244851838038489422980670697086544605315114370008633850754354134654191082514352225781389530529663563193441808220071737493299901809058012773292754251698788881192164197791011160686303811829809157111441307420457574754338251784704974102417259552215034993579362394779967154782163532819055787423588640276781994436262753297893121364772243848340541368231019629263947856252580137214687434023572173852734771847988923374116444354289671009017409876434643300369431110926958038553604655865554452389011748178703079832350778267399436135725104737025544357784216515540692656138385844815799900959126393041206610752352830706429244439154981886245926581595188553793884321950299527109318613356688598763075004230883411830356744710634131329370174751517200196533436914057833232821870799800023822786043792707890827033097290867451411452384964398146709415758147852855297007802141339220760045352909968209612905783272666920855925980779501832681516111859380101629903760482624660653259616629064846687152945193429046556655302630107831926998568868795356764547782179581711409594196127256347624190142109947204989299396310703759989943561357410726072981272700662353365604639288953214454425732697899333683936000158972897553395303197124830107332137690414795691933014440263167486870625243056185525042666150581764749324657926688973844686662888078390070552558356064245185867395351513888532939269299250415304017710892311828067616096566274344950534145606429087577761279340687740103633814961497829561458058190115098072575140668083421405365155434045870444528172223608359505545714426109346547715145463759719215171207522696637899710257671076486194011633350463594956936393061070262789370606381514107188333167201315910917732214893632854397319747332056230267083344107562380707216610300926918451350367110038840977735293261448525137925593454062318067456375398305109315140970841980809115715373735360596580706324631940074139590878462657390947481633335918030283639525783780800088722774543984274014026707548745714400364734565728487705177911538173843373854658945727192999479870793578079855728523240057143357641489316110368491739815333468451994804908561974929146246539418357545213706593820220509470234242185722879524231781371123707189207453105687088862047042983475432045953470494950139268942500891333114752852602220779693190984505553212044079016156577475134660933205699757141628668816449623838933797924925496444027559490689030314989255474023642005086585369681506113590795417675118515422223308552515068390427217914156002602325769107817554810853027752990019590804434575858874151153256721388164208130866842428492505509209686178549792369377401905461992403117468709252533780315683740261006356537548734190230123295209804197660193317753950189472550378605112840696413418144302462750817631179382555556366204786490196448003971446522226538428025040006052277164550010190083564176374109150403332436597334981099632772399367606771959849938000788434555555336021591033640459294336119405876711245071136022217862229541652114190904823843576064435890870505789901393166622687217939995516413393870418647812798164102044029723475598716055977096904448333374476994687597969902724953347835688935689498924586847659130968747494984261483625775831823551687083922722525733140835096906032775288705506121297563114079814627349278161606818716114974713230166382853445064715543911577289293544451045262306505599716703324273490761489405614220418635262400919314209558689793406608695034008752925936838875492836324664033353207099676904254952610583477647820153726099390394661349307937825629476926732301912037598223448014892605591393342347974491903201009994890464091799740042025255594999886405757120711160519201026751770840932372627107025208523978289932879905281672867270470204195133513953405085448747613387617006236627714983106373192291318028496057183959105083715940121139526386906987333085754102420363778631421488855640753319120451213261736913810119485210771799646104868295130055239512292995109953538825467911797337964431516070170767525772706609966241816635444137341075859471868633660293100340309235219068557396111162811117742302250825797444315021781982644879950094738642930029841503191305038294569675070998202828027491937408424611261002076367139553029397894068347971377844557868043385583333171745198780830208907995511212344755303044581837809169929735061643172499785963787000647097166059046143942587263428944414197348409045302094071396257793641765283346099599120302380506974390637957623496346221941286648156493300557538127211605897266528438979552378356797187405803985899705725829020000473295730219650742621956856483333131098018623845811541792377087236099780523263168444449060313872662734523876566204769771871469564141886766319481465764703940586740017385465512338978621921718222364173831168864307658266872337327497417810102655555381443111721494830782590768784098185623086879932181444225819285771525104199168364061072125996063693311317779076660009923342997551143446719016113815543385145670254658371405096943966851696727633630906717051320315917008779021744843772099645846393499453711605705748994671024345974807873675194748047292462046106347984141628620397183010904894063132196540806304614881598318612819510048123882660355187407821349550075206209550649195059449965714691234285522455644225819876637366178190112923502805677277127087741892329332298012552798898191763873817483352539162058436271515119135759934314894671314916224725620638633973665353665302776102758323593268145384435922266046679045212138495881359695939051111201789060567071768843670032082097680744191392460020632023294238876801452001605744135246331438797473255532249780063502485438562187984749957707648727438285600706947111811341897734870904930360531815971302541372360300126495375835308532070171061821697474059303474016987777492887204025902499943745257646743392385615092461538046021169051795380861439998148226904847662136359695105081235207583167116335689643901777982649135499682308858405890220816556436700921873461452881952604535089152255893405831245613580138003570216343563862066822527429592348252271764181899871870026257724744227372109078276237820263249536892928075122594710087001155919380330909504842302495895049459029443659168290773215382172640460070807762366198182131435135980537476712230598089041862039422569006555695654470937772575105797376123522730203069857367591179538054681872315302345991214092530719568971130640934713807055500653760901586001233435332243558732404500811296172104021211803528677882913754894559218875643162229549115670071292056687132972088930923844283693537487543990864268846428344842763592154146646102809082120598279658618976946822677888520541570988839200654297866129907500805325693237844171627364962478956978006502095046275227043815386403336800342797207419216990872259166260457617880460712131623990192153891145149339794786847518883271621465023909832282294190881073803144872764507702154508556115178154019538027115646844175275815030656070170705810248632048676972322105923244311475561242721625085894067598682846646448750318369689147986507017961419281047819458825879426283486380060832426751372060026463952890386667430001577318535541801854757183369303382071728850978743840059495078421828374089760248113270327794189713071681860378275838514588327526325992894038841449186970875018681319100361415213946550060049205403740893259694733378599357828320613820488092243291208638894560372347825522164480751653099544141602043808483368525595027273513191900302505696472573163832069609056270506152242771588422635959158350273859697828764879182790146759014477439396850253011506947231539729127153249794197898557169072642126363513900380338751840854739901178594627970823785686978300162369924976122692154223217031237150356082301111910204208965325360298158477625558360802965744517452707915323089296938421429488851603503096825184825103459283958774208839028100109132155996347024652020987844844042529518662970278605518342259204227269736151909430249270170774672189403675473828199602588900113459154424871471857774584596404250020887012812868592970695204701409988143986319356471525808770468972986568977060593815170306234571600716072307940082466757924620298995078565213699945671671056092572991575741393683015200238339552831291086021254872940443383217906887838024186403747620079375162940706904357816529795804559922972922143162754302703960057127205295808960767917768539549518639741191947048318881537362132037088159035775767803150971777637197191872571144043985101921232271938501123571632714513703589283535637470078315341175695651123957046564922269976451829857209571361046581350792038899178520405272124548492372601973996008798329350022524661495428949536836640650208505224173510399658406712698935066208941991208879191428506100529628570394001803702551996660468427781508441271560284274842594794703605272825648724278644148703269995281587876553142035360479909860776409757072478892043076099870349880881953772816186915402764300062337549005378986720443628694795963295327738129913280992303206789166860762360700319180996471920928925204334332448641482372857474520501089360080916306078251662364348809913771282330608771121310518709777303907719804966689131995131966737892643880401743676854540606294076726414632981084620822375152373424671573524008922094697130823907453113345028743281697372815092916514603183204534813304913608575221215225761324404362569630182912084518898557768998374348313141023981597529084581381190029510874749101809106633546552618965707704342131730143926983165183787835429094381166904226452049993094584947399209893945373403806314048844789483884307876457462020946570218537563777920601754276409708547030604565866757244023579820620197229804676455201685792247407180732498320046976485668475991165122925277124419869015641982431386122386745761723814128619076577896249188706036596601906665537955239784041985589758031231736180135591045028958512641406100738886134845273980482442366759645023870910491022880143470981232828986167156483156452575279453098558183512481499625557044020329798540857145683800139645615422023085927801018952662326758825134296626098500013919354060127112185082293660019611140377495408803992200852250038659256534240514530287919282061236744706129027183129895447930131626694868172756508272128723449255015701734001308653347742233276136022761245761272559013643968230407009645861992642114759860429742968744312594716345505064397198723961810902141660359106013835504234076448173469772759634191481929875129750694694442629187519971128114762348871447830007858776743092654098332668928048270253426708317902235880141229067546176927488201005463450579361927971810805498156984574373423066397635415885095674977138332916734569883225677597045387122824977678695220413278558016788665709725089133656973440618726321450006192842731885173069277840725022215896476382201067761237990566010812178910315540908795482092275944750363954941280187057148350426047629287395317174736308053609568561922872155287966360400088461414851609774102711745840124256630034195595961589328364036087879558160086337168239609825072521045042094755306558862378366748344958078998907062611127494843922942701281125270401813569722294639193109627407045854013776979867801827719997507752147444405278210470643156449326817033324453620407491288011551911902615596325674392751926509728580865727043508348357435711356913197212538447592998007705435094099126946463667484525002715577441735421690897043163047719053809478083044652119044864252149384979107184686509700114059982651107136933050581231831119946711792186300892027505807031673035517348540046262848932559636532276932625281237415208555359601461955548083264001374124094995992849436630247022826715892831430267903850337001545671822990643606282897310702646078630740205751037202446570334240242616072300444581181884189183069587211368380654946738587979734203217144559534936034059040920866868570923927575847362173279040613490272588290759801026996872913003361279414504258667594830919311803059255998680010731307685554214002238748798922583417518506506606211854073308290658543072856159337542915761045058804488311098250983282912268949277975757182330687908514089015132730329226928082481240582547203325931487402743506940926579195768356925492195407471071673586344866280600054792203950239341859718094299505500330977823000083393041955847349360650593464831722073092389405880846080124393710875070817280738844711647682577812516290494669160580246865119214485947732990877391364469313665279648428153234929921431119570767213215517150573992262453410851776157424877455432732629128952603251837341291019704452802938362511864068790947804237985890160873788013158948589071693895436148923219601713221062599575640463664425233601708883942047495182072627700423128314899722657180076942666608875388214994589205600987405414449002781814593833485919169586128711150924604403077457864988601773614611459697571874215956306246445154254205672184265006611079201449445385782518389628657080758007791450438125545510910189077091307005601116888882599544095221609865159437661115106171656260162706057957826745390867171384823818043309124268326973869607307354852014975258696466955624332275319024470290720585350166559629288231189914245699878211993549827493220157620416668112406297301696897955020015845536909078513785806175983005538075411547933985229074411217335621953890527249477816437531333286186547885505137008590691607234193400241837993319584140184502017270751140132161384106395253627479674794059445330829027119955615491465086723286551775521055760827955439493461529569254681113771413530871369083557938793894178801353336329040138122701557646936381533836889671285384483776714150754000493295340075237257408788382332749494345963409791855285548667229933400751375167429145630665659200166928514748257532904252713702442273298008507210413994723984945915781493317081502533703182651761998676028571275517760621297674166208653184126168762911225047801885979446914156236407931793617625047959920397402218009411631557814939629718171316556550763453162478645913073705925050163063030761708342640380276072026750264639124152737507791249031854304669615893024320329337348723785134690996419743665490587549314152345953460286449083103343773110642916006480694107416570944559660528405719587185662130649464303903822243136880808574014233928783132254367295998136936261141317148974709539860973422766156572030655781948848455425625942719781438767624842456723000526070415150397536261627421234620603506463811808334702745083048991685063512580192977299467668535367328977302282741552756241524367981251663984466927301893317268800318610456987981363860005857695688142840686395064521574942115903436415951976248513672461385296666248851818434014282142493682896792569828814629087647710392933237236065224632658486998566044351612425254002598418333215614195125752646724354328581470711895945343459258924341210759295277411240142393109764538566267492132754100687769036251127097905560252284985282891521635914378709687045530821341950591495531009886271698827101820695259022296966505198708742708557364855669738701520056145922719911472236249386610234310158080841106872341037258074652577067132101754774357317116563615816644957081653314309641574628262308067408373279167943686478098274450191802029208671821142491031833920615921596001142987595312773216906840623839117585081592671174904263809275232562332219996209845256261639967782117018326642846595842223700422155387317237545393061081673050783642831665990474806699039726487246359090115466512430321869994431513902329422163211401234755453332634713166365316537042992870927037548902839609351352218799872201151764653795194010860698183682076549349881426999888079864633994225446879133477836290934627207640092686070608175597965941778009856245909467744045846979294867396482035902751887007330696311212862199777550500245288888343019769616836916002798466102618918746570746102133108496240592379382104223963441569932272085524770182817379745294647869376130420040023264137697755173540311332170811350573653320790045621782132522804048256932445189678742393175986976011079844923087709925252484902478661708280960342170116181078008151642156385925145159243298557969163003640617959303569372330881563098958941725809420879768370771007312474084472897407357840283068245339364845330390187366720487499706030493743083003530457420837694427131940372606445057905520459225859924582171378168827192998616072405590084082223740367158392898725950985916193085721034219509960833363905422040921328509548238382281092055908705263752904947054352753461760610162673938262927298153924094266361239424188619250369641679487732379639990135863500050037165810886601192398763507133975011515721134262389385340760654508629256102333170050491794747785710066206707628068071413485413094724159452201673994768201171872703427122277473301715166257258501396964268520490638961703828294770398060771549270046569785118667190229905296430659322639728861086655120152238102643117991811086048934597887839808702415505122252869435184203232085516180280408365253857258493836504122963869748638363064156533138756022487133773530485753029035489260111533446141792121608169902108140162305215656281876986404813005649688840940140252946222966044804356425921043639013165859583994285361385823147965363301807207534274342257385251806428218348945827734779282048427228576349538905588726267428532569344824863667123073085218042152507682407209507854827125920151818369494675399367684594034316236381473681890125698846963419865669964799196795619194968556537099792105851770394810782289782786341277524200545680645557544668814893754200979810972240558648423119952294126244255842799810016907766724670550784648744470505058593789671118706813448702177411372212007364313183421103575679480244105428815421985509905610645364010131710688892533932622709573725690548283196547892087304872761230033721862269867241194682600532931047657723002522767063779134679378120860585992376471485932935244545817821163298736097129660377980924637763638594295847721061765068893519606089818150769449615647013347731591469144132461282293016372930991599452811777250597016657387127715214547254465566753179899863480617334231732830279153423688471818503241694005053255895542827158974980698864999575803658176423533859932624762625189615227915682191720996778735837652953868974367036871959938631638386853600059625936558009254214791631549418039690661853107005353783103972285456109908351494119155625727964063138520199738124468524775775847248197173700055045603509396713103340284487161953988781701616244284520445900707413490157847868606115859576872264269454889024162306605186314910332502155643080960634824689151313824601831473325237633662268988468147980777926206798330058064030740251397557287595965583983542625309725769968853626881375748864423351434994705021154179827340102857650031652872014320888908446375725395212085405577176519158365081171716578699154992317630033909374639322526210379630303320604037150970212496726678231294513170547155859191411710239249556506072771858879551179188234492901450588049615045059082324240529299884459050874600970413666471183064034864647480216508564351033768734095537158086146908674485172372671494301222090103453953132718368877834453521148930048380501381140498648698958036073883925303940035554783193587408147675230273801360356432191021054557453721725619044784883015134113196260475834291450703247401242681410149837165003282270076603131989358715277736104759335123988760605448609456190006234001765089332564187224622659649292644593029066752301652196850065634467554926646509346045666789286065169234709243779308599293340290597080274904983779806012060705386829806722771128389675635763915313030717714523982607495560747278824322658556884873290023188557572980302698078693079907584399545267015157540127708099007488625222951376287119967543728719104253693197514914145482303063368918293099193993488730314278546579767136946590468376811173408183711237216327555949065514287984206510480839900474442235479527479319361511359400387437356677742069471482721716752575276703007517171354541584153238634044381676139343242311219490305401460630359280749250981624884862443060734893848880847044784404211377673521517953874699343661946209328722095803693210416941331836011655030969279530757505360382010313006302335344876917160097863421925194560201406371014175893240710026983797250461977655446013200196076118386638936095091394273599699894915913231415084795766440129188445158073076596329110093084127354330709753055918149317300115616565634106469791470480380494400884081776197004088025230252402893603083573537012414426989378676279237525209760769487820286490175220973281368797731407631271304959415600876242876038536426740508394420269979996645752868066576943828299577433149837193447666493867907703482647784489189053181090162260530639455771099006503768303196041310653115821663338107824959821395321347306528955286402708151511981664530714843890175591829508326513965730635895785259216534833662983181873042729483217067242414985373044929965293625048771210015132141151203134023036101622891081647808949762078062817346457326781451421870583469818250682412412993751838751070275500756900410783020067834217805406390562470808246313063778099265541954648271300235029734087513448379568938510178775153752883232748316494136515497482017554099873236404036219955633301470937930787145207178713358280442197068464459524211581803797972024741983994533487596848601743473852488065419671425909812662164241445227580595816207755858070833987050767728130189091606236050561339789192754631677578285378813563455413705093461919627117790692938422597509700433419382072268314933048212564018260462426196207224385825435101592745023591092967142433739078561565720398477112091293990027532589902234928873150884308427383972527802807118747179606740019807875356903325484676438006806176339490740084025243422386136266186207397854641881230067640864113068861361740212240499201032920465303038328015987675402519209403011687127391723522772753410660719266815943504348867275913004245276315585731468116719347815373429824034837088518202261197862297543052829074564610459551449016243070673563139730693210025660667274186530569118613218871072823839232992847363054480919245764837848738376902710724982400968684706315922556101140502897417860322587489328992540613771887607841110293827048331406418181558193656782160699639830917317380210405081957492272160079390217296121905014141227778724886927307639572731657609167468843761393673722004552985781559981462422795033763307025967570296247243869152521034957692070943692375469472649827983202656890037057381743930135126343031559063663128926374464147819606508915569014916173889964121353545292447012110041979921991530566785828372193668779191294988313180581877613105799009264794907369016298425284885075809798614709881450777808428003851498363372284833604086468347977893084971091834388376468228890683789639140548323431650101218232544426543252726486154194382859178113919260035228693824446545763397800478120642330241804659215626012199663103161039077547450366026905765523250166828129952852748796316724709966379634244146028229205799084072940495348938820789579632001959778595828890237454477689707205655374379335360217057698348800613010340295716544871620291292849432449312309977656263307635372682847078519325081424918519024122690580750002860583897140229871210288411890699886297533418448150355372809598602430946372821222024268499466164049488938865216606858480186342372638914005937338914042892645853846017387659944099570842890988129848683354222571322015209671689906533585391702688007114512163197854038032888705732817386229615851207483734172403676486215295949138987210696445488072664335301528749324144494146524846610879986354822397871654127544516849491975362947193068653821681466933633583964912699569378712591343476309584701941806535980294474004891299774160457146205195211548682219022878422628472347516915736431880893914445708393951924794659633560036772231498283921527503008365786241974936024220946104785543805822794481633625175622417573264107937208025944228403618802792138883277946516287315554432821113147158308654063290465976440031851510439980789359996412397657890166954653453486758346905293709989694147878480764756654404894586119752779983511017177132122282603073514843590316136203153380378293491905876148947315817088893765660853345915174150014888223436004878590834588957737279168831104822112463798614617405761312459693882471275514065825968123303711565602271794928979790719116000648387822784766420172782951961500291717798862549710528490227564784894860294600483917529096856159852229095519125418865865883860439400153539084560768742809163167113145432208312606618701334500648699593957044176334641046745225347435936942798408332256868118738692504069056407292967635566156999808654607994040546587333516579389325074605007705080827516309859596829400645031455055387458164739815251866096829717553051887982194882634816148738522847961771325780862548495982089609457375129771021729900845559986681364137019233376088613712759931365186385859087718066739709175640458380709221385147760596597378270934029891847283831957710585907257922515445480214845156421177736734281965484344538542383754544572833339893656968478292130443846809319362326099695853933664987433685310676225295213598738844901483387575918670039815000064775511358733647470462062567224793229845120946016665941953029542615964679973955547415502937052412832957555911728995495407735872941671057602654290257432640037948405365212368935550464436672986204048002803813707213295908445269720280629211561749670400686586736855476819848221120255037896637467139225997422098827033292878128189341170724951580583676160623032704045349750213143653813993061847054183909200687819467742434071795563671735197707171718218164097386428226577070396011790154465011557376112242781028930126023863322299785915142917663176752920548238868318446245718001290758472431142271684796011550772615323474978601880639747622488796797483931547818436779919766006358967837926912140278106776844662514241049956302576921714206010541842582204699730596121563227599624645685206679256401116234907737894884181141973564927399697063898998143631231488755478528869008820177525897888506194681038650656463726608086796233077277730081175574251503622560571280987921970779805564172620110567677952564220007675818667023889104615599458288838234812595097082132045997623546044285377644880373240660271216760500155371266466552381428254692805489368614435086771446965624850715653390003141549733937443415723920935847776081446461000754527447973952187686310082936858644653452151607253210968054112270169472100301796306833355323075074432997942615197738774590512095870536959113913969610783400235006521168289564427372361595437127078205609758792882490612475355715489223190349475462854633995374456076886103036971061656999851635984148749125070109642251017741550588179603430394315393289813984352020660802430940627563252487316412437666774569646837308485496263296811227219069494149498266076942466735389198430053838160651343923410671696263101266986038212467907363369099107827083605423580941500194747418402514619943031284344726738567750611051421644078215505440626943204638910281513193646258668298002968124933103440064518883414589382296226544067127001979679858603790814247648249901904460267068846756720128580655686515651898377391367765209910262425232515679470843223365168355309289959010865527060125044764301631728806088269595122503712795485447882147116109655927828282782319834244972072546548167841103788159330863688842270786854264179351807843090926166276404870428963947449563550248200919797777613589533351339979593933052068630877443811179288811775438037161856040402012761607093972030319794070844204674741115159842738910269265421262563190076415636191033925388604720859594032178965624541525238516846827802624730890647228679337437375602006882023404962195282695005816407522904202421712344021226245476120685374789262182741132662344612404160090402292737972609117013609693422910821447374808062710649448916781897118055682797186193779378087631182380453963583060884860758718347170651985984969869774356053950678750027217662784039506713365055547728428957306592566201490538362807683905868367876269694642551149913783096188741514513098631323117320454250668026182342263795753489647578685816995667881552289146615740901017966621201864376787962534338693520451478292834421547221198030409050911266737652815791286965063936178738037517457794731858529748362025085269468195818272765849851655498103891282681265209038543094124859882683274223071877107502198987766347087007165013541359578524764021224647839333430703483401890191293362937140925582421159957736807561974781486060974293414104064614469911925082043532968411582192946016758313215188618097190542202166622786872132803198954331624904193096709156978554289879020173833210333450048351291913209896881252815512250623822431712005249071556014973004996872262627014312627180658284902720323628393280190181750976716839807359223303331226130034605219672695140884009013532453299692085394282717444562018080088542710533549518324331427815981088596857436750601982190981432650767867842070246484565191590832690783141099414267095525315000792795751962033764008188513857208022972116938574487243450138170164379211202559323351091865125594238938199490604986961906384729030452433730695922925473545173043080167151140323280509988365696261177522277652607114051266433789118830720712522183793794055763827111335127103214254386575477734517682918547325770078129235125721526603975641204642076870457411785275487044045098875785667568322226991951291102259830019960410542934669623338177193856265392546047580018766685924131239163540405000953512789204221646899195183387447246728235473755950472466242668250138686750124978219672595011279977896005120971061129773851478491322252500273870007874293789673111348970384900026684262718136163185533070023191289619684821373359214817789341733847039732868097343072952006049542574801214833983011530340414663565878601493151686754781513755170517701897867408515494808002781483414421857685462431805471944929727725593008727931423195046546781798359044462220046535832950753611705753497767239038051549564219390628569261033346968280785171316621952535570844820941800283915420632866087570832731698835279015544690307257458106369968461664448957031850976531844328737021485075195172169038269191824549650392390161343772077648487629862821328914291791336850854744824791443613635957410577512046061334639253216990414569238084514901309169498007622931020478898468888931484101558367960973372089786700480259426036562895900198296221077062543271607449625930606466459854263431873348169894556318737131790116879624019913396427808117693377710190038144211733423277676995540171908776246129749591328619719294035350185445438885643661442051022930736317540473294924963819852585830408584755291066087914766751175835208975290537380115138296109928868413019832656325978757302808921860688649579749284460412039941844284572167361246341129366328232791003928683203402355667920838755829333957982204816932838745061302696857004698435860212037662264306682375676596139403874792835550407186598934715947179647211213792136280733214168442470225926400691185204742937764694130152310759106395165984426862119431256426632354708852058540274510687301456877775950086854362772844051408507632131752668232907129134771307250285682672059594721950721114106083198144291615639785909690922166564871997048436147354021244496114686250945360092289197605839111160738818842722418420739474619733690891152944323494159494693160972505472982366142347942403781930276656408415737542741482334918788725049461112583432082225464014919037932301664553588989074109163193989422815569229894567203930804528507805857116952769397687127500847445709394005699914468649388225112107331971961014720815196112779614089454566547091201813185233182668714021885538088652980786994646595243669288777775155458448259626868265548361143404388791674146057548364246801461260793498165985827114060508636520028344216123511696791105897984921959327783573195573999078010011404974024575791204439994738830034882528467309605232850296629740925878785302350552936102908948034895203984810395208118193346097455268194651673313306002920638718233932655737394238841804871174114133367423752564930926671454666200689967490150211739190985380113773589096918241163017481409085922768700967554813902695568274096502180827575106208792705963379713393512753753556687983343116394937286377508389934049566986301962202453318989027317773907476476969042895217786442345087833507660368845324688136345571072586456028237370652098187450945233217542586433318326385257259997050611915225177533813495160865201629969081921726530636407434695808755138763013279300526694135593286536253692241792008820430689687806913998914950229387680394765387685267112168097034470606611584517439116345551901407538653007496798115468069715696334567579389066287918778591657611802205256337153184061650972180532170495287617889909294773644724145091015672221352270916327163527064498261240447695379834190913266659074317352060998787065753125877345739830097090343333741278017691319918003515879656077331611501771270354025421258338220185623058857006970061796568363840976030874714999196887187376300084888847656472118474868078139080084511113613054029084043408784961321136385485430996604364970532117561083228647997176961923645307362692031463811876305153064939980791675466333090086499018391200541068008490519224118876877843488511934881753369630499203342129966659218395252141018512151485904679681382412577176608227686523602956454098154687865107403263215149361926508696092834903242132827881577023187093752200711378953751959372083942384347100308694916361749393035031199175396347811944398492250824536158205643115850813793318875193597968690914931188608088070857172910336715669627824455474632309453037523359528116227225134346912692676788476489410033615187831123870045189036217523547417981602932069946166477925637397755851018503253579216919319775056528222056715476566307410026882020221872062021598164875109055835552102449694772381867325471737739201146779973890023820128449824949619734558560410449349529324321678182037490447125800499828557625882444512326636136451586081846991927616143663100018808254508989907079188728323771701198066877752546962209588404729020492314084343903673061026856203737536717203793480666701469838765051526502506346086150927674399508238379851058815356906906406339862617693440372662391710024541475564552462131779802167353267887707779268220274087738909885062896849903925282988018167444258293998253001963444427911352329673819933578774341394634267329062177071739296309594349952280959572305375151218934695456827596573170475671932605377353426244380696115687281099119573369792644312888405173701682335302022573507640234876446347071094447748874428633231874133037596885522211938559788612973671262764537319875259757304718507010260393653011979063518552797108254523912446641387800185057458285840680561312387419872269896231124397524108633641603812623169751394788152755681152761276104583086446903672004162658755974399914475874038416257008956455776472788665237595733299699166931712417942634507905856696446457220595411488171853845474482522598247451554701592981589680991395540854761805029721409370955652120474629312447410400961956613443382349254434479114449576726000480040501647186974865432204765328676589316027897867251980555499833036206488593466749866988305646510817930029548911934173200148219761489346281549559685527481357113521158538746972786553087712285610887518350517970341656125145527859244216135405884176936302306073778855040414583291165977577546937367930331339218824509859759050237786947275442414103649501591568689422642426697008430156344124750751948682045499109480602935582612027986785733962346968447178936501352126255170077577888457471949206644940068963979358019394386768435432088617075702200363164808257761411992023116902077185920449726174166382327693347226395995719031029015353119994677766836353709460705461380025852068260541983112534574026303166996866821317957623587421375543433459586279476825533186500035997962392103065085965547334746619929108741941777305254045153940078194448119370302720090836245716159577400785934535627873189218993350541163979778373538675967657704107592132234119237852320378640893186773280010285328021837885045018646750017464100582153636622391145194250203910414052692560150550972966033117091774521556668244869928399703175480457100663320926530650881409651463037071481441014546192893655296314904722199947446531569512352928200266830639690497683162188162932092797249693233557742544155199426157170204991140048204972248253477916737579592057818264416868365645848371721177338206093141289862167128526574683212431447351497768235139349544921853817894316707309328256466395027529839515862478982185223959181611577454299027057359928218330744067613811259392526228839168899308722369948574938895913908303482048609120861296293078502339496699405882125127600015369865440931385212721625572444428999421032171459778395089908764945564350362249578210260312834266728776360099725264501194410761104141038176414072128397675254235396337564436469544804322175543159019528704470829424313716536053852374707728575036646423191762576829055398260503792114337529660445724009905088815822741296917776314926998050897159242268721415142816569342182232223682811061837656604332834850036211550838062584289270935442562448882473172816081252933580878583734227221021210649654927175662216051582792026535761273617157911722443674434729553755235473784111599005235466130931834819163006531220097219514349550854444686384842584342741105339152255947003073134341197567881430211392793584777702638840432091134141941913298934001135408089846793338981281496437394012622211889835192939249776288695755816000155840215135096221465371882456093408161538125981840204643484707160380932571817910462997037318779606156834591442892124134893163747087147410474289542487522552680574305160453810432312623447262014704788065641923502781354201189252513336973764245756923191778355161907509335048766559340083937469515277457070613915684451302781935347099741107951738142892346978398462597321377974508882206180786904634621664229284536043864968524782711909289232937118911106907452142953744485500241726482463359601132424578953604668035610654574632306775166698155538742449080366814531499834513117630148168279134669927518457014471520048154535641613505182303408963503754494739819193186527026808066468487377212549876723513636398977316670342967841952557327173930328591748824105454366868000508843578488102056509946583583789079616933586132217115348110353590537554643126079981460134384503067741978672106973696070058092989269916349685184022552927755503042205047635057862252265540320375381590787327243339833123543188185201567481659280655760154560266052079716438745273721150370684816864861213867471066147075314231660142274897123640662481091854787625219552836394993183445249419995107128180621598304060876944684820983492839161860518634059515245443448968039669801693974362854160237350346276527287858863284738255807374095796871040358177287608710808848638996422561211920427615244546833143036051633110964089591029583022804625207398194577580343800086462654335873084332750754603241493164005463542409465612890632589456575581918674882903048719569766393926056118377383399729634165098911629875006325041819805945113658283120455323673436410324845166298022785190097360746829758706595955417747745172497289238278485579925118135528397989893603742813204500208615729804647113595415925618162829772914360692815860844753260828934925014305289246429181056806259973867040871166350728166523789505701701185814291292280209973890735956647001494281766267305995339021103356776519727138929321353821551861258532182500831456752317159701294045263996257495321619842282779278999479914794893060831817084538920264842424040738699775773665029666831450540744047165050076263757001600990411322074512573051860831114708477004709746049664902102570768866562662027182629108511477117553285431313722390755366358659184563893679682686039988587778091078262891721928108792912134433705437447562799688459718905294726102776685950509232918139590953091290884683682064588950705690824148755868509827089075121817515881479643208390553157462417689156132786869402481350988853606080030074656935456656082976713626864552834411880453299742145486550869354161646186418479823292908516524998374617281285501511339502385706974288598736046776488129498415814085871022746643224603194709715572975653343881944124004661427499703722720358283228889270966057615529045866122369687380535821614696151542000117914797821248575045548049869462614087196827209758329005474325086181370774893489102646305960978921201278799940104522822619090970825452711982864651792363510671073393574223498284965028108879350220402221527228396970531775895646512208599860968340079721699743899477192725323063076864430697987545402512060729955494360317583085775519227364716562159962916303779280851262859085992470938637148446330427343219426983030407908194189023523795882816458112910550089303458609909200256526715206406664149070014902027788967633631513615198220128703080473111590225956425169061020015284445114117694013295768987611922998706520605290251155631700650429283709811883542346564450036024291535315221325884131632923674173451622763709600104275452429408294009253944739704432115130043854239444368018218770239132301720081609454352345796431472398345912346952868033590694045066074508184472918785568126788037778082959233983757818589774921018123915667204305933607071297672392267345017312222236761510429282175052751157293250353316707191405412502147442381116608620996917032195382837262333824470961068508828169567448703000284647772271318898455104325305161577021177087432748055120477698261911441273388751722262998023991149282314847397625278290247445376407722731971035894182343674273870267720203785603155555579999886820908580279135509475133674608115829145605821194186641426243470707883346507067445677836524346552276528091217726763257195593948131144277158570292605785571529912719955682614362489168290108568198631822677377374478430720580518624861944816140623930703547768342924010912464835876854033629031342467691380319831573828888638099405085671010610543108960084842888347826383898410143745922903990150192529486571101101242952191159650314258140832456344844406996210481920143771303785654379985467714785179893665076558857184165614745593096123942598930948428489029148995842209881334374527185709590582638386502148440851512720678186062597269493226482610599338691276356105198355132130729134030020056057681584703317547318827026032234173064865154274092763282064085650349776179031996172038330943795992035821584106748419384911520408135042638745051536852392247872413823820092565161434427226626225204163767472620783730773834838473625578405698042618141077666155919710513136920367749006164857232070619534586874013403222389908279623722027544292052753082131967097122072420507393281054972112074810426596514025415079960969069675018482657285892476211924842967355523618602911028720190043484192360040900154865205633095785410990414982009326615088198205288623802866403881347767074946481275213276214819114034622705208071975730803158017872832140426828078686559196263194665640107177670619519865198710146183894941497157951860426723054099994660348758327263451361289688253761082845397223910905979033310281604615764389658259263167558557006959792920821014172116833200920892631072245006252609633282026930901045559251229396975122135509024736933231468804763244479674805149176460002613452123860641472253522323339224899830314641262474102132107241324813941867396375135976501489998859472159750243812737584760599768280551462121312528734866821491644426806272650485972058511551652897861518308648788980773548246075875380499496054502923719619957226809634454869415577402851231325765876448487737611321234402762071824857565996881815572591588398916038568585930502423504481765352374973022137725741837997690881538549380863603918755435416342836785510724363315554040614791513103768619741934175391243786942920043626186124629839431650005073669305688170238451610771553961659217484810558725806305217813204841403178363062100256371268949894092642268571695875265063220182023438958716659645175558910920938438328392433589069694157364623278318113057645837719175377322258727259681500776566550533469172412761509076432749200365868901952359907281542623864533076997574764381194634736615215085635037116173925653146103177647462222271927087158611280906392355226748669779372043219086210100984612467968340781673999212636259663186511946791518666459889641058808336983894105546017780085941036014233253831001943094774937747241002724759557699452363501690095860577598138772507426325052681400363766609240333640473404670257882142912638815647999714965540795733259178508110640045482966981848253007300571995016412102658144491709187833699981781618782181970601019350839687211878820853678523843284865952251013900643808863551222564984845127520819452271638130828163498427584799761675176202819916948834444431571171010230427891783489586892496722712749644098978940620459084347640768090696814152352990856370353523399224242315071667675830701711335836523402957407418908369651766595891443939451596150367167452257670589472580559634636672042226333259431677963957508783540382265051607597227584446428580858233413993843893479550539253104230912435733016337312185744467176759865982876182569615136170243790262797765757995995001262145489165549404614959988996739939446657030955977015751218638979827522761459478405539036083980398956161263921761593630887670580452220086738489786371481823437794046869730358326067841539333937810530347674094427471525950723706874487385598484494440880882394247337519564531643130092351197206010562400534394939546801305600634590313068176655898126301083490107743594212229323743897388489422429355006554577215213557920430877047119621081164781871243181797111249139553701227590546749194048196288322517330627533848991651838015865646209073444080528323156558272605214245586905081324302299803499103869629424348834129543319639111191897086781677895062859759209747464798494236304350556870070749036062301542322834925283672515170746225578640278385426215869712319980397376981265080481936826264469397640942308988258959065049360968010064086226664399822178783152161525345598762339347917221482489786662475374335184305787727120525573398423827992366396686506547912098088708009533252561383053931545851461274252221217868746453785003140850519995914200807316464604849240727429564523913357261234489783058884819377084838652651191138075297544035531342793954200709722036730018617756704043048304442523382456652072791487212513857528353044737361571639090446657863056765920136439741145964419844204545136721848880904276396489243324466760536570205824226130569383764165078139742314128932236866765320960978843597721927119712181828501779689929485235868737373568385389058197827910353189357837457594177964824942260293699832654015942173117421296740682501568903341922700307568137889324861206255560531890181922633336354766103207740799703389545362347308750556503265286152844612613630993731078991752711251207776287290734413491042193653094117076028338684296661366679444670486614575498767047303995231903481451311161447838947187908819218092761266826978486007681735532870065979600215189931010205537829722729664231082679789877136633221505589177148311158255329156272552329098125724616845130063479401346445904340211374739827851624047467172905582494440874852695842996349639598755590066958149089847416387397197767585890310586164213001663581011124497761574272149392141005601925836304800577775228209469278477377717139831574979438607567812444547987207530631573495717993338796781693211128303564307166441441371219261379315208544730676064984009313013085356826101646802460093188015699674427317158386376386127497502561299548411040020905857528247522923715457131378946734186237183028946441632695790719044912275898030201463482459924438773949360353412832459801945828213559349402424912829749028289846390107061443190761635398453726660368069703189390837893607692521227662192926191848253781799264088104256815512771411556373890996933573752341448067659241020218301938022256428406181923750626939661862672453625050558670563133198770214410116264177746786191231083124144275123198674194132421740155293294438480036726643203520711485886588687494349860990176538782556632463975292222565135484498574789699747559965976818174474918035823519356315831818500571305337619391712173797287842990756905099073451934205895509913669928035019973137048273058134084843840855031861830224318137532275519700532140390806749631857339649341263612517351078825959325040884337412404860151492741275555825955524480854973025234915985640573291990110961164718217933721261125865765560476543068005375075591665518830251178688729308499081555737169233424475514618602326550479048262855245940053526741425637954466117745204446786288286742251466759640363235243899028573997378523689747146194347767076794178501988242079065259695790266586407970222309203102660930319685584216520896019584945014883141272821965759150022695108063607327907251693484628198136003039860000056155265099568227646178632420466804326110378702781486590924634458511923417479733856900348162547536811844084723471554067344629933563608209959302055417371689724424746778603617780548978547487633989329702373043682719916895101929548173419742983855346207136382658255232469193812246940710337702401873542118076609187385222414997970775228692582301948524759083903558811672779628488912310197212392364516905336614112754814414130667159467505781374154917707892482326691284105821551780508916657408577347109818670401134377309321795269278723912525117147559554516154182292997388300045561935334464420920835368510066718932838320019533750241166048884871178736875718444350205452454535051091102967380774024173929187842509609809278221685039168955075865008138597690060797336160952413323112157428581893161075059123078227648296604730102099798195063959336790307783099173408848063794773459375429049830795010921562797772370523029214264492519325970190227158316034166299380696523623453703343671457322054029627139975688427618089671677851664009592814511866225738433301861114054865887433908094744026885146395814254003938365272521194745380874354390891835095253037340484372588983634073999206679836126642435272919444006425555335728869244085167701963513820743306999754723774565302067289209068982274425954896938693400556244415250999144705604608356986497341107498826243411520234986130308005534846097578804962381620106082448645853534931630979230126830859979677721258609987994867815650074303587815257335107112349519894094963516510887635003923864634678913364755003338378354455949989430219983792082948027619098307426529049349582224600226753108133948279748044183793948519025483156151183497086420317513019212223448378943012492746733120578434181957862970881071377083060376265240940386565254763787662555312455803677261898353035767989240075303112667583206360931188061852923438125799455367401320435978687553102602267188723168515191660539029215112794024093856763919905409313153535348395515375217319014458511981547545505201767615145191135581361879645570245876696105733664239985128031351438426193963366335810508875984291144601465093833186786815564832969563868895361045680643817288836760389458116073519885673344018510447432849140914220284610608780942081409072615261070427316494279300861429026884335517441838031080236444442670598393180716745448775006040086997267443391955005723488520888680207842587938529525464228663637724742629766508186392731599501413190946754395985572849050422345509674625754499008776533583816401182435405197196850954010581670049802614850195026859304134945859108284063201011623814574122059486982341551084599769939063185114801503245699389412537450761415217708326322980012445781448378305134677931582808203729731877018719085868656814267177436020451975050681511097605570563925931042830111159316757693600596722863550895814869807901562352121454850202950054697927457221673000211453646882950554881432412836175096649595027920039504879944834443527770062156851141264375036104283876316764283026788879830365479011327031641461426303650448067578184070589578792577133069493617289098075044008745889226478888293071099441308988080971670528893200114487350125228380989024139368512571816939244066946918070956351641410166258178008253196915786171757059940512590361628957507097075634892695649792503109803441935168373450522440093401944574316106012235355744270403944259994632103033541297703066925238131079315080201989039614069817358261535449385227514867115395648216137501597607549984237384811709759145511408816019697313151094318251294242858130004120264630838610102326307994191702134869016947565216826944444428365046244642175365645754779043145381422233774590182358544121380319418586485703682512439395529143003000471135944116318707094629821964696766330589208343742573414470611468128289467018228434083984951013263991685926163782982545066580035613366171663609744491971966572767554719776642522996496884208793146738208775223201406945165352409440388695927202357316689293277332538692848216766084295993901351452961539713267296041570695575588092784268099912099560789152522107593443556083205616680722188593402157982685958821220534238085805798770528806742645641452597451364152813433263236260891139065706049706628710926299491056787124753641526840002577696502605272488014495336716442088616895339565166329124059600691732772762167045344620069344653835337982154322666805417144977303491422900732477904966615444238504832752683538074255309451775992838512428152100964477733027605196289546952218468285875984220265277026935961047443160619845416749540260247974762107899982452393093869538369170601945516117871667697941281239214894741064038857692095077266801630701628017748875929371409718715992606866375948786618147653880830320943687023325552996596867680016127691797880062957654583715709223920705986497115821075730917017907266762685461665574278215927893428765649781889516110286524469034362009824938212194655177058231265472944872931396791661001910617381913718088151507204448598070294411281932266120239383988647678067771658142979480232184771081461932752364024356362252738345053347220547983192354440417969496338595764237125411773077290822178532852418923649323516541727488923364437757006927697222263927667468132604141651062629226569272028098281893722893654141912521036524855504926557608190502386036368467005504368519858975343422052121569378927643938664429511286446150341111155120670325347968831145332449023667585807457884864826297294313528581362653548090949535637472231812415753586042177028848815946966740310751302504057116276612431021457460762874230740032999070190220874063739593538225102784900613116034880575279052469250263385820770155487100311965947232613997902484692600223429876012974555944013025453494768599402787103923311922078056898680131410957497430850173881708283475441313014859200445548189271317607345062777474264780848262050734604355043911584898871425723871979314648924347803959536684785135206669449432149566961576866579837465349947293233207423684387586857288296989365769000147680503272090906985341465087597947570913626657549898078113086380189795790238198621490594257357635441841110755622247521871550609404644546112114343091144810825894508066453533259990658760244407788202240822354542413719703847841479391431660818695146306883007363051693930170849274741772783772629988100210970346188974630033815253585442382761789475057340234608805877535675789154438499534392719612522653271570029014890511605015573524847898042161228280786875886375363509710850083584181299750563276747494977298820762556161388266398723402794075627746378761383089526035184721964430997044015686342352098850660611529567466352038241422838880318168670537537312335145928765221690998371163338589337146286689499785090718799668657871266025124140810197281623797584057332087438990349470861247012967948719169145067472363007437700885015091100377485604704067721625061825885737257640533117081917168711649834297850728176962343829616596484629407539735265468452625296789802398561434259215989886469776162338097640078519780946625691665126615101311429923883858996942204149450865169242808801635774918745044098518798817088319578334278152358520326638963006204788341440178942772974035354653210750223051237326554270194405592856890553510936971595317024718235554282054942609122038955769249365314176965620149161529645432585779693556062621029882651172056247283904814800760840116718483119183247336071555389311519981194438231294652596739614973207081546122993275834426150127461009987644454381515198964280653151878098296424881917244580930772776733919836143267199263935256210882891255544626133652537344374018254559545488322624411184860418399384820834182471977695149290027725655538483460606655131525261554721410666802817819569879423528865616168791755981347195160015794361260515586274521922469691192593007714394951664960979378433520032919633778979064534088165905147438442832822549543266939131428753330408638808468354069538157201545912762260650737135812298634857573620891220813874096641277358409051913622446223424887506597280650152997168226600284458126018313868145066637086860555093100190457203853814371410631052975552415999356768263007549432525779033558510310247191178645665959309551324092419663148690107883912659688190559088968243473338762098439032198095188255268733149840958367539788500684372607681779143824646239381917447808905113100257848651565985981834496332881026605106502841746514274450318876073540470139854109089882064171160991562797591587495549819189316645771251076241472875139466855700739191309915747121451908239947117186554578743841161843588564953261562092389868234197585035379804734636575195495903143473327948088565970097774855558978160804018997088640676292599541815446774666339217600518642700576619857162526197366188159289986614501275138488963427062192435653596971746574474627721316268476316883168147347938277851610751855359202537348248860238224899005651710635955350525307132775560154857331087918331581124190576550600008277734170482052132809492010949227016626599417367226628660775002939355069041278988460432659336463979630170688234856779218266996197472026725466180897844607789636364166564351088315905095679867519618896481169602111425932628455264460906329098210062467462644207540206052761829977336138110894310521620417991780474277191377274890820368460331481649001297834046683785918759239102257584333501100276423822317210825317278153485627609905711571592993584143112526629713611741061038412443896271701458976601458368082534399186978218184908525259757858251821570822338928866083315231589517105704178985480873310371397981633123374458809463201604207466331962228314233045242539105150806629767538938752005391342835435132256870832952191280839879490978124215720154336998658783229155801779672479371918108017994522994248907582988277067482543254345098337417482495498599727657247542804036611268885651907967753788320629454836922259575057108280452971015499970885206701123774998864059596946430615570209690314147883623882837351308279928845841910070488098203050735459888059655764350931677980013575461649127986496432461857274117623971329589180920673423800743186867169117927733912922710904832110399970241970994883761719169823666277830263520254006467368901196954929147913303447633252957819314696322744823262317745333119155838932572186483833950749052370155654177291770805353456295168668901336268882066550507353110152624735373414476861595789187415103701963937811177719064222688788933780249178056919720838349377692995129574616761618157879526926401499985251884735336293541944506839733243396072388583321800334969587766362179641856393803867635524533332669307955354519958916192723928889092355217955521579601617040603705328177232576343161971741624998027175953623282615573280292987983802787658637507140513283480252131425489898066031693145349179619661223981223664314779900081850844910728514416503202764735308092403124839038080130170499664724305543702498945451263783426094652635599528485595861578971770215504499426440427162654396757489312957333560333766834717790549377257375409298886147769060594466190284733610347686583872399218851758849456727362580554423073805030304073118095248262938407764406198629772012325050174319938271272867672611431163861794215248376070324663876419654666966694038734047713201516619085345884680043209849755756091633025771200402138542473703365308327128756073941954311076757390400309395401401396849931979832237385645908869424987626274981448414607041984103575176035135098806973357332070546187765582802038587852616530254546505202479487079237307255635351515836073849531444979091060343035618346115050616083500249374943463376880538621299434641014999647967533742867476562244459343483567334286901648369170135146805598449393608469531263386641109277717257150831341654535605570643747733596052387833093064473560379500378656071932022002361869608161518611131568324930164218230675397742064943135257964453692072903332342650110928527947618869708508608071863657504819963513859957830520920004441118354716223471737101296242776649885921160951086384852315840667512633770856331781581050622843469341280324880740236239494619399470180352392000947965204043647003766698024869971465136132308903033748621679257326154060311236780750596421567988535809342352851279143003965126357785529165982947027965111671275247006560463680505180641071219282091381045769013454792939703067044017662057903575038128148542852765778725914758243115142359429335475881472439712795939702768081798427990025942486484206735253078694531525527754099997953663092961018362970216804751848002884434774207382599137728557717388733501098922312410426397770412684274786031041783932115456789113346691405401750849574541540035640999557493031882676561313465858780106690710620070452436786428828492835410033301803167181280455546140745235901627738624750088001193896800725265496088536517563996175464505290481245231184161657207225829508638960927578464646882001180814663268480264914112162013071133097945774356475710989237255440698157857840873439011345727289957018115661543638042217760327119861956870905772579124357514685071639417265214657664564128054585766617386923663259345140216920057224376488128642354595736862996131099908051227769722300150468347980776753936317274252982735424678623671854539631478746381130749863601452272007482203833295513302144080246997163927772501079813971812642558598748693488396839884653641769639381894110972153361355399926220106975861487536471551949210821164024565557706624164218416651098004709087734426929963589006593600963078749097437821945313187709914038999811144175265334908389344950133479894183834238996735596024991260274475704305022149684432790687664984630274496354645885434319583569008426583655262464663610798840315498332448942220248128960170308160598705016281343474538167426366813609780972146222861862049668216155764269362921765149274300032417788858341008607925732479253197630095747332558687069142834751579212115622261558037716552745010711922620184423568558319126549079547786863049839764897587515816477003952805422514537087011017482569772814325360855073062388366607882132464677992924519935206730261951080649514481399798755555570349513720962384643636098389237077659948139384165682641766353737508043494023263139457533130636220362655574510044486581755328790037075601783643353389424578182529780864982614604197365958010881182370904800352090790290573501945792332267584526426429691766568476114574492663915468292243577015299985941265842388253135879811366564003413773909851113621812234044567967917637413782459433409476585375596039554320146559705326178527071472743829999538547503130368176495144357464882337754683393991670075091137824404524682219423916314609979039603952841194057783385125076149229126943406328397144309727659549968663837257224683546623822845563755754532627993004447169077533746846085077462952622817711926973625229809833851723767468158471059465463118384125363689679597945614079854192281441994783070205711515143512587940821534814532896861657871692680340863234356083152751457961269260562163687837225706505079297320009303419125418643944405848067262943085838848424778354439519820501653387518707310628110123170559405158432264577531619213896677967147614350538823957240031307149041496257935589764403450763803985019238365097544398625515572781628622732716706531499169536907705693327209067181597419366984359644420433194257051815188763518005269259321148838202938043386198294270128782962778446127866710810849939211199131454516200721205414941039586026253838010670676875435018524343433109214139389872628929741272463997650741245353255395264302221023070011106909564056602278622855713437964839133430565198780006019272313197531797886343140565522628514894077907921541553991899532046762330102550552963754248954434177737231856889338388398681351118057441117208183601574687228412556767270220382004929201519286400487154633793149665990978133559616323952550597652784072919798875859154658581513054811981759007228263475462442382104338219065150543244482347161755089146532770186498450794505679387689032906407734320422278757527429863481236380291223600707366560440682735754426719506332750815818013213558590514690778524501685924527018141041065850778571934020821138926191765358224315585896242700174062801523782465598466740506633985935588218648951204615219856315000275630004550214580478362519512902813400448440713314889193935833629679805504000917871002009636900971842771552717902899163145507057824331094866952658956200477899324869342540689378105627160284114887000926691820246311915562017861034091801674861830327240067824125923804135778484945022541236124783241158938252475658915457270291785389731599733905952250193153242794994018875475838394348154943491111503489174722045535376962018753659363449006592756701439965331247569902893662261898522360214865883456941099415928326101541191487411527433043276930121152290699250624300780107680623890916660935344842162825071744363151471466011758760106258451247418138644167887927822769880656910280974173551663523609746947941354835344410025338516438679249343293844882564547596581126266593987051780747480635101565293446867338351635485703334605987417986706418925208299205946884829863876979327265712470571505549630686670752990999390055966002650263301089956039962335778324169469972837081286340395711910837947511803524327909179629462063424097124713235412801762764117108414381870220180178672632241585988953113118389234737588355660258603195879536094854677662804855760509366012515712950662434863079546152313669727825576033343775526095595698955047478703260151421515208641907141063633278883770701474265937768131330753513193313221226746816202608364652196147181064540619020399932861846602515583335528357714300953176554885498748120381804010288004686518531771609671562681225652858798520950610209700027476349361842881947893232954173888889298120433148200461646313314880282359202224771389817320479999232805204413932481510423948264174056125408498664661564249616609032062599892203918795057031237759454011935790479056996003452115440030131810646374621326178555912225603479622772286641357383108438861784818280477567586595285531192988476966568934205748053498072176978831237143666612965715689113732206627601223645517833171339543801417525140391555511928994154302699509708985699358600751858413074914029549952884259068928315233626129126780202346633587189004702270856545515309286974735734873481546933941748167516630355280769455792909939809360186930610475387976854606118991497506190264902966625342841661355277486056098560614443061936658635206316470250877967193477090927631655843785816602628057943772684916438163165170448865747323122295326375849887420534115822330379745847088411495962056460562382879218426840496374908944842969977495166144096871848284143690833655963567123157398772869501157930696537809463593081332533123788236553652178115854424450381911803382551079808500552924141647024687641299919470564509882155116285255487271840584880320232597883332893038036189697278959930077242144808625252856826035917676003050842451720120096213224075825828772053639710140543756139645739799700705108357757462265354957698206098511975898559189789064369978937927037009179906979814399970707449440800091317353647660866335196342208325586569469039727386504235899656854045016076462023530116400108611163922755573668990748324190623892201043668727381655538714654807225130080951559605390161298055524006223722266997980807659618072268972311797187990034162400500135982728356735976287857042393867128933400023793209781821314761808192819438908694062516347490835528699025958902995773449114788855345421594486261847900541313340517090490275785430212784725275594006892011417326171271701873586241460117426096582260934952596121872742947173729014813170591285430979445697517462217332234308546141747030540279855016866845852834679409207830526328715263099953856712276008171647095554181362124495981600539090754210559726355007538690104481819628520856316706959014059130487554805623845642094183328092143679700125725956915407334493629493445706489262901464037573286723592352055075637178663303219988971397203854128380839726453356897494528976963942437440942184055165083297206325323746573791443152585885991681808457257584268121469113261016836907385201795378707377067875385071739591158617756830810120944796778234471077306195303692399962449568866098034587328345627982321721734003218232204924394585597496925576246936215859712274667307193588145937885974671041627439215502113945254878419798134121410054537826399214098323710147053107334311598205351570648456382431086176893010358320416783470333865456772303605295986884072741057976121996388398120901864338269296865198554560138512757734220574467284002004507478179758293828378002430796451661492232985758781365219665480663805371677633488609084019211030640031208307361498511763312705729308401665952926748773809518277898966009543005852057930054550172353594357019300998874022454670636509081600204431901804458510685122144450382631766028108982191475102702207810529101859209930246709593743418093698461509645100301559600983075083866377565774878823787874119911879331226572603877412750876538594228435925459111080071867206749222750470769055591227309042048266869986204213489426862378707065941782270450875129403282202389259044871883589611983986804135723223524270067313128561022865573586061736044195490716546636442655592806782575534543017381052306652360023151793366437448504860647491364897083813829989496620206725207201657100220700741211016325012285857300638830021867944796063151086282835955626030827534654914231093838078041783170952192363459086675800124121195375134687579558331821618087265721990075479594232773577733577013243356350391741753762010373179289699739276571174337762561761432110357684427518159970037409319165783888409477845014544639364099624935863643108774183296348807933502635161881558107224924273182151037526020738666786154509120460278739317435292160170175544913748090301960602993418109379766998828618115333176996723614228839111838999954814115998592803527359816660980006238191073708993536235006858010528100318304288953830677357747792935635641201548169606860522492668552654254733101243050674507209142650656881738060256799439089449007760062999659435159708300822689022779117474448338998025923843405440146307041737159175975848468339684611165234811776487361506417132476907994756759412272379375189226962196645611061497045140593214597449880353594391156407469653874643579061447198894591921484459679009534544639853709886773018012987295022324585990138190473771002960195115968887186476706955766070707483513338772450167624665336239847777042199760653526497320638781312173482396442214485207666799468876556022477770416983168489557806066552378911910184005603400165396358817816579501637526012014015124554249575624218262932207012809013221139215075247790621611078406210309521314659183075097032666066022252944739244419343747951033746479992550913919701117117592320479735825510255455518470853729255868536949156244465939569476697273356939665458409234509405587597589738269224171034952443674082813372564037125177603535892000785550860745763435771689267664876952189969835045806863971242630819266502788249709414029918927091953760444275238148408083637572804470764972187067477054066262004420648537137960662570251195626875000393941915792221416053442925634652912697349643989921291720268766113769961727046492200808391664667019737802484727947944660687518498730550203028301290757294253866261768554584894000368946137285185683053293058150564903785192705351747443598748482289077015252449731618453818549930413848651755414756215019864667930622633285952975602077663374347399550480207674008441360535945806086245359935382494744221995325744942938682916786626516334465101936306753758623047219828139358222992484773710604605058992486942934892132516451320938990802097783302462160674156301037609706655735682670665652940382874740780947690083144363293241288588360689397163134196748113716880615240974974182569676377820152949497013546014990395063729468106033996505608473431612153315956911301152505406014823469812541437578071250591338329699793581594451906421316899245874244420864154114019134176978265667556717901784878645271862614640510149795788638144596743083059678118761187302107288774992654369517516315645767820612408349402550397309551716968840445808657106547159146549507488514087692290468785295510986791582578831210695340102302331230118649987059398279324099565896580976311332737513265842331559303274895580100033357923471505950629771800008997433740023391354567245210518299079700826481501011834235026424225786037127404780035601454879086841520598443785104910069186688838130304058979747226825553202017948656643837878955140799592895443213790960198574198777869725968570411283423783074447741190263316542076247593664412596479359946348909779553918669003271110744410353463926139231435779677402184668900226510483233111402356979183950163128473538353975151504027321850634258064052001506733916742656886511376348958726652210675460523183971060124905071904206156436462224140883982946457220485173028099067667357331358428682044498828390488178702207626915947407691040909580077531502781569675907666399851955145541582232894864938033670776797529036783418798405739589140325738712339248981350748914495131927089559770079501652157100417891006321154271862379247771869201772892964516899702829544511998313974668802898230398983706700401707245658610601205725609415913428742483796124837334626750943911861789990160339102097093253283236355797451190077473540253137969859445725935698602136194329115073458554067976276579675823173586402400920492118638188701298748223621739453293976533885467537925519974710990799140967091898846243408408306277972550515761171719855216083198069233502546103857960751486378534638147863974048829189697048493915141132090067658951075824616248757498890828072070735254945137433227857071173382628065017165875827458609286128974722128589545971250640282571534111995731095075796123056138816192587558868427550452448851736299040367648906290221012611937860024892377854481776843104190974220187848085805835761454581939289281172301088435804106180021471956471210052027222751159184481905204186430892849556842814931371298881061847193998538745283158405729976803526953595420171097762346343835643358092997121899367522318823512646000515672349813222008049749466752517671230261787826340370090530488839163917229041783012214956572419506718296100123359417686034443015208253849367671074815917719831549621650205161291136038063475302784572000108005339272176542465121055113244529650838376716675695726317188150371500748287745668395040597356468950706176526194133817485446000261247748559306221818255628937220783780153366749509558841109635867890410128293971117351047519887249933398151286728688735074332547206075761393761781211759771519220339288251526640098323153004169184521559060954225878290049333093138616927630628189452138894888648648529039554483368684165657776495988739537844952680443048961043863833609786031034123341837025925719783973553081632281592823269692826368520368823549632705447406481053045082407646635846483466754278287597082822050229722122906969938076048432273638324439715397379252444643436451930779970811880073917024200079043761975673146005312240848663686498868591929311420159249493830058344129229408725173950404168281232044050838792529108499740429693009104831748848666676362763265391024010870240282741580413451625178853658353595898220304643742232943313307372107458519700264884582257834944222919371544545713987052965264850933294017326024970801662888519578336200645804504935569031534274707001673005923115574183857643791797626183136184868952950536514420499578941884107262217950060330609746457054835930806825897910248620779546373018968272273849602778554760848791494833026078707423135757905749755835172151909109658421137318587549264179125221979492859373129935435594628762292335845209496406072587279350212471367984479978939346930455730325848735088371672880153236380919448840209059235516346112065721087923192434991833496192083988315237409394069073199767547317274228684370596988190874589708276551259255234830006081730133316563090570248548960375317968419739778939401746638453294304219209133486109324934371665757838221301228343727782121120993021203554532433826872485437522307902038887371286331139715442327178045625895341171332622056112804283368236041591232584794963183244102677058809734692450664099862726537107696340183016656935006601649802511490593328938023136676975118496180669986694319409846182457888305311689951432846592703981929276632002453842324841671687572378825673774556464415507220187980641636447692382609367956360260567338275520141619836582221367965572270796159184095838013716358074108925686854848528294983974145514051937591118153837156779263274611704696477799423890778729993969130284358650922594714156766011505589930005475101042608649067563782625435236412925793081926377286692989531194107634667583473504893582552699466991644826498868813316594363963717238098240259315298054856820594202170435406558374314692893784156125526287322621776988879424617743203482341026080825670496293853447345304397518836875257593236047078685282690860251211510019432992415620033600291118951215941927644983097673172580648633853277214549066998120163038216154536117402879053064227260825615516393126452491972363130770723790611572134754376520969150088237443591421713805111546406068523854537840703344692575214426615731958130260624694680443813793616444797828294480345107273360104874891249452930981628817707120037248811083664569799806088610935797563451906361375393594958246843316356216559193491460260141716950382325732029594095445499301042439717321005995789949764514451904021142334532107254835546407300695561429672377873403356171959153571600239550663570084880541982402469502621748816724876261395491843962128022112344794725992644387753740678521626606133759630378433750421762959425446394762388458304239536359160892078039768531449244124172343220769329629487692007157528732154199463410488725099567059420830492776138174210508123732816674989226221925858646421086070622759158205157802841785408080203568878481848826799570984635515408049650080382787556644609585368180816514896609611972558902273762963359258017520175020876079729828519763061249420571758294415353238622320468953393090265841760142424649709576132684909837186373771649797737054365752879482905620268198452209857901510926673406890227842583862184405605185805898909968568056960237620335098479343652008569558314033993696936689321927260336737710453551384616969085584447566959236364616209575207153668405488371447265886732070398937400227802262555057802991147311391515028886183876440960943124314973676729631519227743543146457504104021151925006525776748999064388457341541937000015151280328123238028241265974900563616064061320351042749463495371558296549215027813935336804505519594404152648152352134500749994309474758887772185559979209379218424225823172859092552722446830594580536276281178029596504509770574239387262791487716017129061537129280711254134342418990918118405053532807288471170791875223030933375204063271867556892940470969423446801013783694309338594285518016628567859920536364496822382677624553138789526878756069678795024587567681842315256589317037924599498303108280420361088990164185961125893880573866524654129968832940162813143197489266935096111272104385655309148673926203979404338055617911557481148934157588247863998419167344184100419032772120604233032642883217907515974741835737662019219159912566496057147733472501038762768287819147807246584012527057058727653237353451990282757430253079582280403127981096401011777153844671879794043006225541719546909454837175939447679850159377279710786055463508985171519958701768645522996525960029588038261069005292329327735522954044061271167531223605483869247227071119328094776300683129758884445360770787237348250484373456497248403179401990732294012515877527609841411477510657818154279419643691913536669113368757258448908793563902626225692440561177411889679782765137295316533824210775250146150227133951100366739793048047876896763193422147532325756622727471160903676701569504488506235889887603442810797631997730590536373384681469229890481008599914255772564200251337462693617635508028209419090107647174502408060255658744189700999698024428594160733701369092770943229106191044805391606085923797593244116713760638052854956344011309052048813605401219239860105116821781318839749057795011814752733058660216259566366908531267648650722415357202991250023119569659267619514535434546058276246893380188972282571583691380012372832326516750766889510687436758248491981675500403189166543923669475792406371635991210228095807764713161330692937612495987760474814926020617243454034575880602137780591559648682452905037671951428765184709573140222467250380216635141966717799761918363262538308204514189482459582919646949382135140382380614878471399105094070786951522333241509363522174220648103376006914237837043127754385901199737484068889511689203784945086875109100859664804326089179123889460648724926054319411026990173353729508239928737677895527182560070410175191362681956515931116706232523085988617912867721123836600489733983336791246729244766775432995156696000918874447260092793973635170778574352227723879362956522502319691363473079857361089607136758818616469493242214034712093219400649571552326099637919586323612839904927074019305775839708414225156181867460351005493343470427109376973569356536416336954385201202211481305030479103684226437787475419825597840224053302699880640253665957478290831505545415091576947117698761538082896650772986357685496502799000518888146239281733980808858004155048924385867978430167067408113182236009960857588766215295993085082917417861180029198065778218346103991808195679012957258358544005860170821190012729538991871653984706940029562469096243152689287559614488846335375450452401376551179202465019902381295880516171622654170133146637565928953724245033686102064688434734452601635929285260086943267364268022142085697353182754379273260485251294982320538773851475689513268574911449875309877131348054530938577568879624387893542460831939965725965461602655895398295079749323426199216808253160280338790470730035184027139304452835330422558094536036080661333364605080316730147877607629125043371371998969188450497735065824075592300931491702184629427941095166822009020347276180382352621058343138637184683350323859164225622029683249388364153474600673150697054015142213876016849706051593394034901546839644508959472007068375457292832739871296088045722847928900551933606002336546342481589558638615951731322491273246796058247168857886494368937578207843115727963214219419874010336558901459561397976455638581994943311918168842704404394400103410318516694273635168033508606180116802434513595733437309817921417011963236386548440018093388257625750692307345723823839389749448910597927001846214472927053364207275213551110285391937223920762934498594781626974663915116863225615837781423162381006635143439691439364136421852796681626123411855133564787626258457927683640456713070560747923907516235192855682112731499968881408457425383390009387158519165579131295288116247632554531164069549661579948464805324406684649218042570207705064383670708201132486610402944908932967682511390313383309935665264572700212693683892437143371301483997711989081518995827277050067172270603470083583619844825731084076361788129395209782652219723959046483974638317962055167270976352293236285969560354812283727735863954996593399217918194115776658269420083858768921539207624080433944861893755398819323112240537334613585068603818586082392367357159329846880644088164192361734293064163112140400105838299107389876086969185991149930261743384139371040124313030179998703516439559606552292749934695998055060746949579197734170967272203677277890234025787326823904194002434303425703291018016359153188518585737288680231799297360208130350071967343294671924489567553750721790775881931951195244842209453452024382460924261428618108597991151090196264344265719662096256112317741220625935000958283837888963031504985292138874696280988209966880925967214592690876075978242723024832575441488702732660694804348793682703512891296549878566459249281335553563794423419333959106033109261782485353601949002613484542367814946433134693427298207957792418431403097920502223225986487394909620018509899853325231239430097129035055181856534392912638836424135502734372441772793981488759102072427802166073199674784073731868733495696979298818348340938238261781453067453897507712574670360285333862129575724417440058855939340574831384666732395780700977960478565052291075970885761342244569927749910953618256098248274078353874289851851765317279285328908037962726820025683434939020817342817666761970750264229722828308060762850512849287163005939030582361928434940583970462632647329770106616958360147865486651626121774544065636497973779831030862829504986480027463696295992376283603159667080782750645076844076405706873867823374944118070377037199858399638321607422967784279059665702656633066733008511923566156123252334253827718850472835537727007584255167040780971700958934499803158318034806432504660992558383469060000544955670016413597366221795555756920692715554564715590340230375288628299240996809298751434967007507053599737952844055215842857069641383978845455898121291558173000565066166913111370540698251096665958500608032833126332718203880620258051659705381995237136406585221353270810150653181538077103465341045456646201043554217936697936412400542284519521990488017287642934928739196727544057891411499205980834368319397023452636523117475957448300543753393091995292383059564130372768154127872525609906871813935646087564486949724927903470693614905722720868386965861637619672045412624560953260542282732324187664772974695716196367783406600644333872948953487495851646684155681949477113187001753893338656194901981626841245745813256988862840837625036844395165473017596402444541973258739814531423799301020945817885436258799982138145135268425567825394659708090390248053906343431863022790579621715395897201560130137905146860362532770143942988569022526311683953325662325046009082267459207684413430723052689926636051128016157492926273692573247356742899837614067777800761802199844392150387501288999144890249747641201711852631913815112650682525731210283469559370741017155870449592724163589276250483581627276195864862376270045335350862257183512160785594468372096180225732009852085496065321563161457582855449049119799946022352571153261588777512216157876013522668001433258212876333276181301231579037555358172016907197903507137718942642566562936631221980408014034985788145820193423793150650991201151007397063574831850725199770224423059973918342444936158356579267659872331961023006089581585227559537889561502409984205006225504615841471412082174960294020150660730767855312802491443536082156706525466510753317090421672873088863727993715635678291954208598549183203770659891239844949942344434786546076176083003777935469064862756304674361040898518651286118883792517304994008348353040733168534185543255111541735880352440728955685069365414434471148869121124332346586388907144449532978185605091682666002985228604123913368141815015055565737379608880507109491885157196629347430388318377260588110215244551541625581625536615544190908382816298682609275661583746769879269171897631715930564261902451290946071401022785510423737946906658168095711264866227777474314401885313526310303171953465527388201967351310767400196845448419266935161920463037597075549255770613732602380849173089735555908865179044862709136234421346386955437607182970778411612800278805274705959540797259484879092218217433349645699571103818886032990684254129415738576540463275378629883437801198982837001611152158179430274293175648792780546792884862944677757151737599832629989702725406284209581327037178016639788795620333582396103435371883400287269075041546879474375859649662501983460129361875344221490065060682786933190999329712756690679442058124890692989715440150921662374396541605519423993328125481299496396962433135588653689568678409785284319250606711574064550006670157512474528140576006182763336293588627331085609095879622029619263523445364944414095768363578225994918317434085910381783508396796457094072508116613084224811092316709094586038335931867394619565783890913577909966183640011081892422104396634853313251444252110246204430879546946749822302696248557733939144258846488166726720975114333075697495779532458583361384929943470467838122226839781590428763752519920220938827491481892431371286293512494931610045347572131707277927469311298955018884927329149245039517916526687545379230612052602408606600039617053324040745388627562355602042475067499246775987270144466799731747560167110952927233722605463930791725506166543595391180717913098418794070938601963730553661347375331992879345390877215535190370771859787374748292839427497500237006381352353531159689222034132079260523266240793052340769028611658810564276017991898813278828620691226991739695976935422563697796427629522983723386446092659917952837574307602309626625403387311194644976253724181302766585618069403463608331686855798698285123930590222535537490143246868322931033758177583173112119463584959440488446948492474820519144943336077781425963378882065631049192270201949118952991842581189809158289110465171145983434845283476047486292988753674912546203764115891612423000998412309283102559006093383369185994478043154585369582058550794350546212732948980150615599001388812744920125183758948631471997285827840996605263691449468014989320143072163795995177838215949742125800700475003955831420362274252433637756355100693561151595369434962364722882996615672336291285975005343242885336673168462276067664931279515088021965934763195342687022923976954874922552534284194114729991654825802459164570544366997095934272841406925809727129119800417841650771879957425576522366361200561578173347343661898982613426112315261013612483116446756049284448404110405180592908192038465659985521841181701731004047261067657832019459496141282564760926300348837900308302899626863876779140272745153800918011779821045756775004516853966327657669578227770313761098743998123561100749244689636660641556215070220524796934392672649131596460192655398148604906079058785070606077312940141594910721281748385063428990108982733690552874620833953451449189098564210277054181669112240603689291635661176756243631953239602657553508435464483226191466063836870976926100519689321728443618210859292587761071968135196515421387339266654096279871467844575641701402999508684842225252103053118063971670605205871125514542428922236980656172379642613586427625231968225203387287025157841815357909680684246176148278386011201809431402604344403445029256698697202570845776927030464132288291827135884361584122603026042053096312399743382038740299775312811695286350527380854907944084969157967242556111263065398494202625056468620543460533681951585155058076087519980110433730995567970634301631361304886427464270373567409495473566501746959163727353723113181985384209008530110317447600517911583303140651282033410829628942149138910482878186462533365766306244256842415804748590435598465769929403049867356431533243248563146413145727339503353170284121767505114752370413874253562756360655590287386011587947617375195146676444219543923346023111272682897095733218582417393887649696679735546970711276627348338409765664577589960487689147318652174315088477735005214707608536796475448243075464533240533337864959264387975904689851936361185915336644948871542125839656284818254257735731447600955839483267042108161662428059294488040493590110762792379934087941895392804288871852003051549030910568896168808466920122746035303052076671735164453095434637631803633175462595756100142339177254220152518659415399542070501762061158458833326697106719940807733088264730212864951247217120359670225037312729968319116901923185804241527426366824136914359659758797200073350171852245062473317565106890197211485983266519688306729020876453030131374439492161921608106621946998853900616636085803218254838197951877605781164421589219118798551951665815780938350655739937191305103519725768423876529420761933012503699200496746843469532452329644594769237749337601920239152116306922691427663211969390170935229507626937816749274434461646404342841243447013791227262577883288871939468298127048644218640740324169086806934986801700826600962075257285857722778723865151444081962160843265473712690238959516145990031926957414463821677391862183607040471278564001639901622797007588548912989468868299623077107205457648103586530203851247953183839498952174318019808443998990599355446533673183532927124267602508264356872117806566450166055111363461470847163534665463791972416180249882703683792095775320250605820197559264180839353204427557835159212317561472789760183823039860641759884340108831538238311775559819425978079206509508042073650206981671999281874896638104505274857999248738198124895854409442506049723603842280465217755622734957268202143144157253915803586842875973134131259191499769952877104830642047998552531119139383957726271505540730959837367021083574125803390695788311589450403688432795509966968271400290216823869572196385511284255264452597879402186893019995110994318351499826648699191742946576833821671071092980392776928528124227285959378930290486514191878245293279391298297809254394804215409256481556534901112504729812356267096140291139349443134485706069035090433356756756217406874303365465217012195235550625682410315244109721194290605908365508075856258206776631700067409082026043063611873548704218032265430944943246263746365427017489337507802542854903585040229192010043357131465906172491342535120648364386174984934418705909610241447838638396362075278560717584387281921023667366465972915959305767526231640463665098204022372059761607371390195308202121392962464626727094276697611474641922162694062787739767381159750238261129961218411126782631346221162340801540578740026378176301428042234753603844240723977626503972268703229931129278028330178134521399666691527713609725777678127986723102165486932265312240705556758415923785849118290959127094470922133899999438455368443055567204725025648809974854842579896551061686780287225346391787001921858340121227253937440015955222789651695217548216169532713302125338419136028656868701278926527830166354907404130343567366834863292175162246033122725570713771687262341848596816877159274687214280407766549170174812802827293083243850478351196443316965803101072210667507182071529376844968690686284617926086767952444708811226828199790042401040685949136537108156671743660383452696263536624533109656932427968676988829971753933207734764542405151937921827569918242005413084250094043243275097856915927416201474364127136989541498920179426248764773137933137257613606920160872564367304281671651482228106266736731022001403911360906574401784211829657463059405949227567106292812303587663106514854707792149380226179505779821641107121506537924306262726525612469388264695054676828293228831967526106293129680408897017626716398154050304317181624730812256019493446067896860700113603398324070909489068161789771581483801362947121955680806382620733813709431896831582977938388114331879646445859922140020432893918697577318340755578916832241065747966738713695810876736687846606717155072095600992310652335519104961702554501932921422446698134303997727335836510961461364714840530435722664056500799805459565784099370368617720355847325450359047642689276101493129895426417092366704339376308124612006634524912775579764953461141124921985283326033556805992385327021586363910756448480789268687944850315651017730787860429566548396174671754193613200152520084754577382803267186758177707229571835354451311304261516529901734936144764568796135750505516596682962237170967683588562508147580065591936030100062206009263307929537956876514993094754804559568329023094294562203474704011386643172573513767225669093498096296894425879765723289048791389010455417964778507311543681722251878160152375056748811997761528475674284273680014510184920232991609955223067123131200043233469719915256755490016641023951380458216886734398576408611709770333745313323487609400130657670040948076133074752361872298647419052416655842885681797423291736296371346255480260366993604419238318803623731773911515565564521348230181077728559106750635247984489172628550593044038256308454153516248341851789071704227922050155948925113563272912258406777924739833023046393987702677148538397308695831698777467004410104871293630542888425937385382768368664963018762101370613564322959185668520787531043078706868235080703162801881764065480942745809408530342429051912927114118532024983168335763501267537459044503308376580556588285729952863425003889711075927885382763816612287353072982877043297093689919944548937521855810126162694318700507905140960911134787710163465920153207517408046350830505334614771950193040695988099321836737656565473300658761599280352738105674465615011483718854854046406177444552997026549563655194659331596702296238299267260837639763703590268732487257237696427461849753504286230575011999250227347322637720508088771816403510384699768291167343884610753106377332384095817813782800272815349749228187982143840569289020734999475134463892547080169805176547985045052320562850922566713808404692675419982953135087292842830906803961391187023197328804204777806771827002036110740757585112539747103482010826211447076532875346183014284517401509750142888790996950986553713931199895705418371023578967351173632264198610418175596054353826276113038667887081549807479085521725002684125336280815679621101554432052267869172577397560160065166249174998802581695621506293940881149157629122715380845449954805595912633283945188779864698351529543801091730221075299485656670627963222989631183011741974056848638973209738317449449865191619536662959511309464434158945923238979783938597872414698153105915542278122951724224928965289646153505125349370804488296362828734446621748487095943412279870712082456896805228056062768184521099039167014620324419289969595437611564671043027607269892989451460435407451818549572557892559317761193246985935018698534675977774283085727675543869761461158652196533332472192690918180251076591431507823084951153544840611646697300243782661370405714542836781804345610470571340199377029249810443863547687239567599970594303230654589778079025224191010456943845894399870887349032242927590634220381404922260768507601017282227825680334964959975676620449226994595573867769661678670900063378956165004544260446135860820157623152867406547509819940270026517930907455014148482368990568845669144374083576874065402984817236301956940222328688235723378834143023914189287550057350928523582540868342960723282851694656467997915063333726470471113438924687039825151920399916432846619255620305089913449403985523591831066371170890642303591222108895638445565263962808703521888622603980090037906627398673363033114486224543276045604649618503959053035572887909567928238741943471841684688795113073127343517456711684777385401522437440199857628346103077762250386770559042724129864009202127568298207709587327304934499808996311878848518774944291750328300825283109177953957000223222920435082649576161308114550569165295340525150433543849709366415611422572113635586166029161194277287303438141612890934893057468715657768256799094274234768127896984892729766049515046089665888829906456310084428096150546039625894806392583329342619441640469286162039013656111587187143029603999450643292578679978462256588051300076562818159117235791243098678176168757746959338140153130070362666341563508631216364743134552060523715454760712128916369891178574106582935098879336132815199684826189212534542174067783532877605221279734385509116862134999752200723885408760302086832807289636790692029872530987844541063702518245384783779763373793110378033662243600171303939387423764118894142508481245142360561923817799812290383566418821388762365772402432287960701045511219659095878875329272829827481711401196300683695440941994579072640022039783935480904635783061189733372357595133120632648734690577911490690070119225981706756191618654730826027988514909756039562466938612296509369888254947217569389013839954801029146261700588713860849897418932045079927359507235275639351669621097609779668469436161493195158966440760894297058969071294019375707537401071759171879485173634748233729614762472167986745629844099113739838264493252780635482951992737479581392358866530992581521619834190799376769848995402501699359313361924192281346777661410474702177929401546084840955110486303737027930919849823331448426268773713804376136489190815365724611869456386129913818205327319488518912727110981608757671602971889960358372863194180578284611711870659154868844867005097988959802796768652122271231583160962610095641729293933539644782115145283294260599781657965322900639419373842710191065780093106810764419526877574964394870337549036037637685518241454180995484163558184377305927787856837867917117666667556466585348159476023315947304324862561477444039786412170074456546686689408722717489966151860053185687397673225594676793217985663812815355391135572604629226021765618447665460298186964864473295064158058855344210698203632778252568765057502526761660795931909782988492142851710255149514571097458947548194711034529860234989209741930198216558478695387305329702538112422315853120875825818287586583350007505524157710469079445149687177622067867212057208618383457897769528531087338071560214103027736728792899548922826897782917576947729886013738480073679031178255227317448124367511019458705330745956215163416015734046065867888459430172305830622676932764094370965576227067583176660310811132006875239399025654351622537358188263188159829434820620068827499326414280463800937124651133149613573127058492135111247140814797875147642617229203395087188554192484898896598096464522530035933553169194832502723225931181819580039099515781966955103748121323711776632459793470685675066258573670721821993990404913048792019170822372159928778438172855934826057671056827476476646602935814432684110401923084182430786307319761961143369487967710168702977204204143958360075290578338827186936780853605084144975045928981114905101129578804167307745109031656383291767092316201913264208900887988213072935226688559854292957705134456570298755673553001997557741964529809407088266435784109026841987091170378433061875824742009930749777285540845054587455102284029234208264538507365753517809437917403631935207216055375237027821363549613690229899438006795312978951888940253659305360450159638102719342578376471872649463519839922143510204702693798098922720948348554338510725988202406590614843257119503103861676381473451348790317208312625930921349079385468267004327938231920489049081038999753629450270916862969233932735707449123342114034454567875625432035696970320632707593933617511245617899550592667885160903336147236124517164651741077727349837750452190948346094948304742519562701438871224304829141436634943191028425161180466885687105884964447077495871385661887095051599634490780157726820498103081741823330214698492859937148203455001285395475798305027666348286016371920035198685636838066707231462788393894709109007719414245249819440589079887103572442626394475735950003045117864087671411607700786598222341061634862170744879421150288666899065502349186220410104286781921568221076023712087018064566268699871222262158199112531862184465045245781839649552463820745450906599169660920874226200117667033899005163850165334828565437262748701245054546027716851485785636129269415728524400490134188617742380789920060642041812480157814476115283034692939173471117477055192495950083060212370121085300378797178643057396663124723489939112916848445515411146213344392481675722848049789745683736851745178660736647313946432833532296835232084605309153062558400290521014333713709318871550707016017346926071504260884536170838153813171628874271849443886681587870642693884835553811855931025703781157981047258324668006614297542294382395481940411678081442564182189860416505927810739973945701296369066726643126765422013437441615921983644791958708363265606026212835939263242753944504735323356242394533522597638428639949238725370499981641576047825110833063850267555874384989586391435042794525324866837966507270328631008327019626804064766139983768142770145271945317793866638077529062508205258898399032679480964546180402780632631721075559053449327851278698925304120664083433256193506691828548998875688576612914931914802712396224270794832355977855600278453780519340564071626579150278857300658943023747810732649912226771454919802716051715833536621244806499605464234697148273196133359888004425104807541718682590242594612045977676818781001600638890086975900460882718787382301667630566793500946319914913956323139353635248836322237355760197232058473667885210361816611057484937480422669040801052581968038821027062552801442818311957701839441474129325892364637493574750570547936021067669470280755995607723584970909434458117355104240896144184735956118008878349415143392533920265043391053551894575478447848802058053451626366908133372270107516508794733772549727165568910274317557451119656312086646971411959641512271296490084666066758898392546465382578875998352098877180759404858922724165241708974977300443021666576096546782653081493820647009030315023545217104337004833780296662712781234172014294453260124376585659141813161104317219211262161063361747109784632968156912923586846523477622379342901757974547941776628665845088758368432681130196385901663339395328118464903815451811486335479244615899063895526738198405730374950252693450241948741670000553884413545016612812482125702247012569748867963688515165876242963022216173492543634999541939894898601372156955929330214763724168098369321490606383165618606123661584746021279599292241161202764848584522486321693627509051617224797222275193432459385708503544146783022407010664484372542204937291254369401940679468581827432260921171157939299727773279151375987153651497006890988060254426257097228937492949084556792897719626492014758584143057227116754459803455306154071520612439420097214456916451794401703883668576873596199609948195478131944509404731428412584001505953196358953269821724392565173038187631190265265634334075609169477833705588176601185914122908059805349145829837085658416533684791496545745863078337952302076286219522986606708191042074327839675538755858111375511217079696236814750068006627473928925218903800270914652113401582296047608392872558185155569384999078263114182840257780488628476591506615942929641487410031314346343750521874878725879037965158768125687701179404711504063750144572044066719189363719475590238052792460006682819891173131418833989775703355168157951729135560122389702147380379222672653004124420917800666251067360918279186108009117316859588522611694107585452441790465267379946838615925412381035253420103271974698736262414107450962124684777734985177733659693363532542831150664114151394541208820841275213906142373163902339086290768086996658310998716837931617257812656123353343004603105303410095637278590134711614908491264662938569867180139084679722745964658043791681843923535616864827411907988151858710517944421572137063720675528725708763695227018358788095645805483690800441388084732124762902940607745469503052779637342761016309499045556449657761652268788835478887700366930812890218581702722908039154560999970050099206302979543052344830066521092290523629288748890963051196469519898805128330341038068342594831540600447058462056145845389203583651410847055920359473401600488999411094975590620847906657525249652784896792771358033594524520980918042489846780603973895459665255118229559838571021683563038153391879824000083209301732131326642580605415255801359456364693531889035266792503094667015537596878261919788523804083970418631811262534474277252050838194503239697155779982407471441022308177228248163412171264202963975123628493160041050352238343371738300522430836811059022804151240570086222559841697262332842136787833751677974846860412290173329594237754708930949224695147690193982008309635608306650130818916420489669031514786978685908878360072327344487796207426069087049223559852191554580863885503810637195496138047049225714409959677917105143144872566101029308590573324991227411845064078734495301322094678811112552797450402585588073650020256952512601667119785255370125165025184264511058629197355459594504398432052945481392168708522825349356253290377021995391843466116639136149842626285567896143795660867086887362764583118681791689804217511896128856683377695496074966801786918928749932067783657668376208253130257444900418973872264672786799450769618769412588120822403212181835877112100882191037741039189286971268682806150911861482680783665584293632217619015184304632344679858047391061734806338814154998499086532215380855427078671604747836516759022839210150463856533278483378707672098479920980116131678777890206354789494338596095993663100675268374012856163207191206148721661199655184689024137293785247386060774195112017743962499526493043046941305075439385862605527516260932747594573249902171317409064582582099203460514124574609643560467163870287658723970436541288870281768430847906812515014978307937124466459898938940986495314873157253313100349860016886166704777970025223087905078586191224527516529031990439329892194896167599559446846192735189305309840769653144577380085063384259664754127052223123047563546019174040445843565099636530874022365518811811134950164127788451343020824640961615760479004553275628399032101543482200631054639771117633509552963133253775621762497014090937012513585533653219558360637177687061012795598799124075320025605332890146776611318424870912945213983289736047504579464832916172488372560049651322363380731754216727709749741250757777682030687314830237395294890058394327928795511436740335546555702541414798548200378774711120265499903197215239857788722001428179923609786509490366208210788095384250957633534073025792608133846305767620629017276302049865583785121454744232911854309630129829454074019912797111256553570842764562932208789872462757708889982556283790733697811543867622130404741488886561513333054053546836942641172317371584827196451654219689330672343363736092262354573088643404721173120808168406086395633858390687000008992675461702442012391411256406144005738049065999801476497127947661847217006207601463634392580235716646374324125841237922471798579223375460977365813363600533089093837805137037400668430848577069194493626122893041920319612048866891532022440619881545605413129663776345400144035676621969902360004500538419668298956444500355504415627584046704008143771338567960138447080086949475727562849463270462081376319625631132772824400638215088459800607030532862320165653003508141142262388828471239158537443041051203834298948913722893944523822895677424865176494678527275619396506814545976844722245397329439985082043478719073958956132761180770705974252554864864096824480120270194313548314117291747171603884297072353287088962906680479127526026251942006716829349933347256524484562191607998776510454676440944133968886165690162130901964739053126010842647693379024248649432837625242099128779183000261949762156528855986030562128729465217940316205435134048919454353018287357995915233242357393581094377174269758937613370832906341385415074684181923374783341763735466055621893498306571725316430200290742928891892914829876570174068029337918580665848793236965650145442229056995549311304401900612965499527507459413235176557691016258661792609197294405424873605715235256225718180870907577749179452079186759178891546980524042703451437107363070080863140221729208654514754387525661703042220031961928004040113249567111861249594801114218053081125446459455794745742946499160461168203745624988364031678517801725128516593904348868131486923874214999916330109772631727960174213457747312972500416675887981447501231170018730262986346265022303385237118024028920072397651162797218739557930416471454380472556473106592245072211490707521369478139843858076777616693128276506749426675171844693908972218620068458147725881501055687737898970805126383283366223604522503349132820525607509654413561878984651502673849584782221826491886925057862148152405306052380328968347814059409888398269884017411727850680283390544702704566367519578031131023229996316251652152886962283724061086421252436916906973955564950656266301557427289082498687169069770355973270502540561293658404871938209831819195822833765519350461544566411369709419929348028313216063267616986993692362417078505200386587967393447270085278958977115121381727156915820914261240396309210880361113464042643527015041812852327886118662946272097550394204360370203931724456005907249870746185520375830439076609144036263931837449180192394229321892739543901422597313055951554484411277898207174347411374386923622602030654941083741240016782591421092306593724029374687647912131836148980593063901750092637132839291477447160951017490034967448169322201062811425598719780812115906014760970796036948117318783242876273515458838483622739145947671481713113322210964644295659187154232015371859463892314777054511117496812805044978775281312242197542268062629394664275841519516694917728562491718084710417967362144170019767247013520949223026197036247443048749156007636304352682295151885292769533784499627565809258525197546660049256354403964133897384098811928682814807840501891779601967576960388897494134073410816533984183167899935508181636844857685884969724362165664311343315836127696607019346490990653135345885788054481480827033960211772403558375814947228643096417626226786252121643085821788919836937229854428771936756735968545470535737433015262996399041522936087814539263705635517359293667513867193221562517002777844919083193702362086398643486634271509465320803312389808739824707724273464956305967308184040189990008113560845840477685543619241923852679474492395223772496027349490115479885895248375397966673885991859959599811448212636456522627821634672235654736711433140843813337541746723800707453709363663591753366518208230406817319506676600326448370258966893652542521237433815103890676581801557460065797837475301540278144913028453174891183521660090024738161258070955117439345896158555104826788731931138035430900769058557728306659110617463118955064512315737543585515163302516067385672829379822555174205654052694522713240895674055746676231292610327952230880512374460895804814819813761907340602653955553618124102168534536021635856186713292873028081473121586979629519791049900353979116682840833155424598196786025096410726419098018018656298203020878283530192161771623532754433032998819273205529925085747996255616268365502546328023285103499284241571244641903990039166352596409072066233206345697526564896416990803816909771814433362827767321078530390572426683142035761936091008399409071085151306422652680336672943694987062890619349433475353785900326659809540746927807170749321002839756779965260291066153830655086788236731516694954984062658430539395182158258167023656984947899935931148978299695631363986585357658441570308765231554006050777017531262442344011717079337868845884802244549494395881215802486460575863405773318271265734947989111229184657591972860759254148203788554265747246173306600054765035255587086205024114967569319474679486489561486609357255919526996840482149006643097357548430105010044001090550373552216084913340631398744674628501219098277241693406927344061025998623014652698416362909467006152507460470508613299492171118873786138950316534434096332044033303974284014347480955657017047368266318297943280375983994777380122112578996928410055486550480981966765242535309144051643662965825779600803577821197305803007829840910303677973836821811328410741189821391736210152243364734890714716938064367242309792731271549028276923651490756834789980303907971765871972509206799690815549341354373556379474500919568804535474624314842370535972923419335319589487946908920693217036254533900013390918757876812706201489321981079152444852495093378443313281702400171704111021558651014256392055651480947771009359587269630089836562328649652722640830965352774465630020662775476757822973381275871270140952522631760522832140323583025140132385818589640706087628281819610300404132930787350376542327763495395687359746137907779446556229686309035255622975775511587096905886939160533629144921332131102836249058702370844098397402725753516422847294602775721491815183762015727581253200684034308043117381283371354524367772250279807018237192895778075444852894040164826082490121399504289787420305982998641424982314406813501831191802570854708948472920237602607169771227578126087444078695636695660853223095080451304634539965152605312641867013116958104779443803518049229366903853230100894944323929064268928218769201656379859246266621656999197602997995511298186027760649276797934439882289788692158447850576851671618064339951228373603374777379643467013331449587874330986710431684548436617577022154768205966975654323845174679022148485463543340397166182091334244968664605200577449859308317522202511597388317711958336671059170929359059351510751854783089800027060499696320695918961682432830707143950764420131801785940452022574087743727511551582861098750332652247074215757246857480900085823316573261732932984555123571385968817111473954009099519505465786058645222589287853756341310881637140914564343058887924050619448268106165856002095612665374286131796056253206306805464900877734465942580151971375916969973976590373559086582594023358945863052688429711004301904224504835875550393957545945902508585955126738915181706604958141187104952635502254595955315686513472352386738800954699663264594353444905600876547948291081030165860636710321348128020349279846390984085709395380180981037348493377905029284558139643356069751596424214909631215358951862021483811576336470475743909744276820697133122457481255226592270572991912099910550818948762834481907131798653085561538689521410087403709362457124862639925460322915831829568126420554258116822246832109158565280703637160473086095399713346418637810532158031645644986564360487202048162572104974988917646063039450956865227845207967165651751522201936843210714691238786958010168881822566080474262708326673765514667303210215276991921269637057053836158066827833814702093053286285515859877411624411713437828322410056033115791237565794207592843691158412517079745609470777265879215537440776801701448928060653117866402693693536746032524736583155587565674335868411846373098783038853318936920957598085075955310904617620924872823769401624913036620625084205881503793340981078696984144955615761049125374158252361671593114720608988484621796202078789517688449794809868564185078940378951621992863539158200626252303527104764823449193736615411318235024561795700874679979947195775336502016132854859359740441478454730966272061010559594901288186741878055036480332805846358628192983452141066235273069652739959522790347205076508877623236563036942670776072836502760255529722721194637542392386395051067482296598904585039845386280606010103886676528662929082662608505752860074064378955533578827966897632571071110079860234748993771719440856153945270207542335013406813323501880094749280654248320702864653596911416247992014062601002781259240286466494463071851818445906163282458538361322203981415725485471041286798329125222040976254462199667110154276986965756131696646650843425283669834436430704217396940630997054160045853088030806456469553631737974356030395079250316118469587605865155890907525990885575237543703067538024429155450770065777572925941331763419668152455451543230618389004811454854589189032177842145446568690101385373379633201368699354495256864700069024303358534251024214619264402236175012126669266679750935273011361152865606099082058412333015411168750438868060025644095756382113568588313113601981470509802342101858467023603888244398343697111087942651352394245889715092874914650363316359203190742040410962655453238335306256024467801728382188265430271521807110430546258418178417223234241237992659069408047368223868131498636497565189980079156247279640216693022126302838050228627585585317802541379970237580611077076743970180855274593442909989066573195070597177622164980504980692305237929974307427457027448596635216020167760949182305526545674275475211941829030381555229810860226635378443991757059971398382664500545528587632586452224335080590810929847983877819928458455519803308947740023472444613652712730417349167445302367012904800442894836894463276066978327373094085598142903251509097299957086410746831486907457243579647881329544303211081400994988236588428546397811844956151835396267220864066104493043678531538516866889332670699920821175188950482842018991621895052495809935144766860110147839149760242785366944125404670475086981457258837111626581085374343205859702842763653253437135275545761577724207868600015782080472253082926263504220933794548647373119316800223287806229531883495966874621562082791081518407842067002925514647003182569090223260267118670108605030850591166429849651022633938075996961147673894133471464081198039175594896298867070318613047909887382807692954556922278419623547256316339013166909484768644476343448473572199016375216359334972462009895859200247893477354190870105681336527530420023712250575990485717191975611102621116423829454523042762100982709101663223078572296834374976688356519231919580043577425985732915504120220156331575489057059373553343134586187282288298744150727847306192704679533087645926657157029305510599185225237180008097666371404996060261342682361351215942370086068493767545531128641057683538653680182541748200515401053465655576277250235341877280582713422272626218338764993766667769888806476996647249683796987609475743568271301908330122833844508999846655595208410531802286984920369068045711226307039773732896913720876233067663816892779166521543587100034740956343282222601780729309749653545797952153398208549842527163169846124956399809595716506403792424636550013792390306416444714796565870936409943928339415718582024121025031262135101447252125134415775472976764046279669306295420745652668160050486067622341413413873582209372268245427120635053697453391180151259231275337903289677140338869682030517599281471917882215403288869571666604153627005848025425872387852703627200732829228036033745410931871219492437485365746801075322585009316676866312776970917881038664905881420246982442284941075027369901537508431767313742672786483560161458469275944129531375334724194857687946236473390177569036024297302992091405150581743569196735321004833944326489623151059517464615053007628612235482357826552435483037122939736354068699770196245973833906131962026387987538769634352345730401413345469008911272785303249328374172728764826424680302365307260583065308852647118759283670256708507483095048518758924954032741611597875024748100220449126767107683692603022999194841451111601958084592476417269601283537224426811600016010348739559224352722532937419892244532684378295466635778071240998712119917083607301651017233873686716356414438426419011352966477751552747110153294569447908453866985326120952905052547615182712924946170383217389024041018247391229278465833364018285781074331716974568811389191720487959708248368124882350339557619914757419822642708354555473801509906798931893438019306657005819701085790960756060035336461046772085833983326348637151367190252092441539848922893176300682635552106597218608080924301954497343721904640471222505459203184455976386609126361735052503999174558708450577647610843706910711747613933592144600036586102940714111740323904795555162243972652420644239883581140068978048166388416499361346395224621942385382330632017108766730499184478423819382914203282364673567687056587890408965785932892275563093135670871398317219607623389088020704861783171659513480602268993549386607116871987763750680993354112025569909875978585967042123218085900003175475544965667069022718560364688285213487494962335300136820534981411501579503737257792071706320798615105794377729526334929258403257352552457452867614822422099801615305681876296346413684874288496590444620331544222041362418434377968428471373663245814010908266458368165910488277248910466207444893043758895111870259289253258456008332146926360885214011842295249542742427374535803625752138645944799553537181450893129779556184490976102729097833730296260413724165741528317297986753794746512605027426836074836069573804916778407914089582744716341338112328476625134210024981170022723057070565885914630889032625126971321544009717210906835618031834512083683146908966282073416874655991890589740518380762520460729638658077703509447181876958597093629321505597504297741016041272410193484875602375089620595182313636896352719327886687584051752030493945121116279503847871020260924020676180163791148168795525911372442221845947692569121137175261395504339437701183714365956573924210365382170950492297748226964459479041875847826287605321094303668380680509553637076919288392631338741738610180976602357766576700686296837426954153386462473054591377281573124028680794513902638037238604926696299988429216580662252675072825228532506975626302642611415659622596137812481851081862862757536361882142407739157322790411280568972953167968050228540829230176310432168463841854839534386925259958359196770356616616534446964378872751325664239478605520364964672809879924569769296203053302389044969333835814552503671653323420667741161952451264147622719794978458285530995000355709499059315444653474128876954555767447227992014256455427313593775673592669953139946440133621012710197144607847115467818683014733451387891919688097093394759910375385518412228108499932264097324280721686878641959626691038283488511281996012149206869376604298513402637750419667379482778975847100151269196531439712878996045374191071377382002667717286211197252917283337125706370389833923839535298508601183575220622844705555261485772223849475469420245574143194487715726790258234030014923749797894735862210438297500530526476284777176477003018332834340468414977888333065374665802012407070340357945843907072039176879747248343592540402818489194173432858248377085970358443047377857524939217550299859508178895560535537276555379143360146110770432114685489193214755316801061145143957927833451429095651197076682517405899428351871875827139863027018360446804857797357279546317712191900136861255917700763926868253269839269554886056270721157017113540136433081494723162509850891017532462937715959259702736148385275107700188047357421914712720666520373491246398502781145616128607934259570161935317484816292173548598852333115391766235546915933201136453769313568167347065443662076188730028115451697970757421598959291402659020950400821349581573200727916107328557413135438412143137803360798290732568834983085449805184260492991254997476500369836305076574075700620266292941188223473139228024935822508666016827862293463737385426415450569018228093788363663654294210889531441770854625288002471123282187365954260143968340126604919965454790870232143681116711820538544805666077527746272342451056363739633639141045519841086544529022682661843759567670376554238044900902079425251124128450657000317198415158094966282883876539447207857702522848695113952677128073108824142389199357039212249597932822371055802553655991390967491700280573471054151438673825837038213729624423803811415404862975169627694838776098389645436129025339361149786218156577440313622979789143835125045109896457075938897763253638584641504704871792880923621157400131787107732948320695562303419776586903451090803818815655630352983708056356513688720023388507071242098439344242630035170221022906129832777950039257342213538193696803898039486154805159826696936038339848994864954576778091166888546934376287761820397282434854464431500947085319504945905332628358322245870286595799883918540463613428184917330166399173344373617568943863879962311531702734237989930658888535813390275975977738098969319750090884203279005992407636291183829098834756441420804795743632222599302707890308850318379521376107170896115400554027032691063853033599616791161679346720987815913140077569062456815975599201639629499566504934213310720611017557089760369792049085129726538751568781420494652660893114156282235729119155114133206123903177087220336755696812159271494619307582095625695097323699011716201804609621244828145935574363046144403723897702253541440157115277325100172989089037258547294624171576956496523182520601062384497495762890882449553678056821115251152610066562403158174463137632235211808758087710011118929320221840093728451522193354500089225167779414169833602506467759668313805397628938033686722280319550890043257665372074262376084443795370893621378217079704647064632453732142608592441966164219158333670444442020153903328967599778662998762896532080892064189552854455354384140334834291898725215530679082590175538355528427374441313246127586383928608155977242913137851782968408465296826957355214615677694495036956674510138356585113496985620853652232008098396873436389851299287479979779950990172494519807347417908339395163162651094827253408387339074615311140739089705638148919357094812007207362045202569710058057704321621314275385892779391384762419281777426339542506185361949268718733221228084211676264916469742023219995593685287739667166367189939722684285503065046508403570174066534547715517756143997654218976841941252752768328322199729734468733150743655330743151827250291858085618058954258633850309911158659260732539504886087113472498150019038622717917407740214439221418689164915368300400338303695774665736481744902632835800204023494780539884979116681253547316946538779573400218320207253668877413686009767886255286254326242719709159812658415291525829154044599096014854982320055468068967956311410219904566016119429814710962012139026688566344083669221909397591466246199260123311438162951145768840174394923684272403654565151462272945463330905331722028962739434117580451569320796979823717715362865315270762893444256103896161923915148732375052109007682919124854260228772495133403500684598538439050736301945427110716061146828558340159996749631933106670029723516322329655163121336572593446512145140419877653560665695433628548951374200081361978569057302366163116272269065757490061593489584435762009460097426717142166891769375242167990339678399158086656496271031725812812410784087155655500972894899497337526246870583905414169982666692910113333988834311393329703952421665196111296525548572211636541107376906090106408484078785743039825680267312004100191568172133838887177491467073694485628044354339766291490003991408937391985230002388112188228646158129101193345399772540624127765216137585804740124148838491764767032900631966651907299325568594378905085456443490222193636204838170555449463154214335197150956505706595012933510826307958440973796048801228517578371070200775380976294739436942290360017923762746941481389533040339157718630587099731160536433396892048346162284304729731977313563616488972086579426178849109415804317898183525346670540894055861411078455885813899917194337440521727421026057874441430847026247902512083659283001650264137582884187705631111942374744414591350583869806870498031112936150827367776033492832735525717820575363534430956895901781514196674139955878592740634051127133222477492793034789487623902727895341117098181272753819348067414074625756767658775122303119844323496216424413625532901863768702309352495557757813451552807938135047966427558900248903778922295267869626323733690783620408237097526029968180480331853508698773267307451059457404695827818059751117050446655078413840609060663179742861757308667068685941224521893720525096958132624031235936106696617605652844338283102188402652535369913115645365375166171596757378525585008832255970773212845240390568494237392047755286293062088363953117504454905187971514592745792282087542047929568908697624928862887580467538380765667426542646132884137577400053850826149203221993337868835336786375210337831374743795440909767475913197853939848471896725245551108622161815677506018745431755268901879193637817269891715534758937306088460432714550180401801276618068101209298582050351210867485990097273693129925962144392288111111022966800604126832214061436978979140065184660614587051449216789673950623470729294139904124062391334055612156083078904438427546654426493744719898373091099556283309390911602181513225167750449445596817455827026933361799841179370204520532627798789202246905205235080568105500034807468399248647222023365279412116706338224363759269048672369745946531916658741094019925005077812720756847208229305783228015064075756550730673850621803389722672960445006713835087726707159771902131209975347115434953948615742108337077558018678715061240199742199198574135448074294696393629467872629122577640302849403199667410860671408176911644907247075438643277197607523025851869699310660963538946885465729047212228760247051680182805439304221434748574166893037466846346257441736727414754875976337767154370170230719400572931133668490662388363914927384192636380105961699762421578374451328948659660830572390829395891505118532589899307897603688829432282200624533571925163571398698111565867760412285216024433506801295112926845251588483493850587651112538558222268061912882622984948954614461735937067409555508111525477504464025762849918139788512338577124879675856794822186420922199530601729113188055515633475785870841649029309227042763931875150654169394762844874845979369624620626437074473500551124614559063181637003666096871951941598424346079438811093896383882380321595245856311516027323810109021244979912079194869381860257890258493115824238915403999612853276449514735826291739216929781295269149549951442462609066839568212750201991472135934374486921286740988218941468117438389985471336498022687148686605878463414659514160695010813665145827663617203693310077753706199440735735064437841220410092101330582614638473931278331510327364512005135321178301076583204544278250556127556693137343696899732397903413645170977319559688113034440647268186090250511489976308456403305258334863907850835476764338080854453896360253162845090594131782474839117812706839434167726625672115024149664483770706768573243906704612408577129690121274336122284144169128328550404396986903106653750802249525732338130027762296068253963339744991943600472192908106838576749917865907034163718366687358780111864410723307283777135042263901812857935390582982463723805582549866475940303146654847205223494745142295020847743764792691033628905446738033173237890297028318210763856513946112030347916448107952772519948023493598256152515500723627368766608559006572606321653762799533379208993268027423436250942426766722163338928831803086284528470001994510746705133092951277048622939296592453878650174494890389335216355523233396023519760154039422596966121063704902469678348460075161816144250008956375779257735965358173361031030191601277123890994862365562984207606585527688968272644301675704771858128763369612178990324678181906035318925169268551443465598767321172241321468506374996584352615911027917649425866817242373552236496612126002748690434322728286274593606350176208787296157529341508621963925519532704214199716134813512528715146428129024759106025525780230135654820185548629702047991504156863453715649588721542350073564572015024458496649652231302499728050458253945304993617977119483499263734732167558371922462829885310994971081854679655084737354950211351909105408771967102986491800723715642320388224235887939510864796138273269845879217749276882164662946206066802639031116352964917577655621838807822364650978623803752455708097309185710877295591870977682373741601348368695985220654488181438417852949516637482558426006292868128315853040791606829835772612833322870530097931764043706663805691157497546849416147842467598711738021549299941900372472162606598816762506809822891702593901534046904039774631513602354039626456813144022261623673455114293732684945719062913131608987453105762452294085973728604749922332351228927167170981837310739064720938671903855914504404909448378864407537909338863461824567807808764154282373690761879956963652184243157614489346765632401724103071537503100057487104514428901480280407185133894902953523990867677846041857481407295890147512831390996360297852632104559013178646988126369567776913741846965489704995735324719502777017968963242184564068822363986849565513993438182312053846394535524580714972762790524866762334475730308229060777967046620171882924820803616126100220321742402641010053359696936178353210163534015669911856115867762729849411472500816529488162144050676964445674582870225862023166660052591395972266388028042420098512369062363619009325554931391642170762935794663647065570170969945325022950965582768429541259591002529838402647821093096372412583491502970458955960227536689248408043827670622571566937250186175678786675710961686981128836836476622036916889359906020828534634189112275430054474697311948608166958964617148377172643394701314672538702978979946308178577833866577825620920531129130135475341968729522167698961963527229716369011957272435690462226282409654051953368499241639152302233773360881962992724578902942251983207463863925359852185688380215127450764536902014493913177013895965989639846296758939903946011934029848432571966842178163162575365922107567957788542096232093668411645951852506679183509660177957104090008929372181387728715362161906180395968800843607940757736343389022399306953700495420104394109529170751397947007959406887718947619036530227109730051007087982790051238560069566815972570963049333939693932061363943009438934731088905308144633480446237864528176040128384567007074421265371995612618478692292095133644414591933686633856512874266324618083608481775880070680264816002255550787728098642208107448792468652347051343312758876470045388588592041688706016026668053648929479055343206712954555753514718211341759806072828759448625669512111886454034791556613414015281577341501265037460021826410814133470901934161627006965912828902210127045143120181178401925135945537074105112860097692727922632891972399981802191510666150867200570857388297313435700110008014221645003624430893284392424785727592470158409970338909953594860042562113623332566794490595508420123220836995254202893242358616385305112367451294035266713446334908997800077440841066899010011331042340801078911553429984231164808360299591610942452639992328475050129567029364951505072187812983401571270936562938668754693176939989813109220831462571087259709977203863814023778424116845459617480843906451711538154576197137382753346794045781021318644106583286178069608796304740447449011463149669307973421595377400865622322357186099094753626216748333193767274330780823066612621470835134909686808682561766930062119257169921214042594779868151372697678350734283116117170041216940791912304534142372258879518507575554515367901551931517545930525017247941556299116427766649349227285861268961377218989085321030766196405429172946212599275678343914667701738270604923473350020649447683503432798232538638473870661518673403637467692491384146357786777725352225018582327724381237624780822722895215206768631794360198966589916353668493444328603503845393125616437244541862279636975299467848583497869877176679308566563032855984690090685417335489043669126235696380038343178823289889253997122742970835639469992084842220788954215111158153367655520479322040813818325137230535969656047836136796015106472691959300624329108173103672992845301249334610389239005848608803845080335549021079098251935834320552375532079039438232490264422288602890295092699865852710577930588784685488060947585290059483580425171594645772910019752918802508315600017654747668222129854102009968925539534983560153345536526065885056870839758742080808006912699155838213529560834442856582509348613449360676106807557665787314901879180527920513653327829724269129983932920671623055421905855150032268072630985847392076152206392936166085591671554218868700640600358211764985665592875116190274414990845376896046685084850457720889058841009261654341480076458031037214831761728045900848435085789182394060369131084055428496355539817071980465200593212400380191728152851716928961258600105214601170497699100595136561327961061313798637430615751032664677560449131547664992588269739715677747956722015398333902278757806699508427546661820809547395057242734168123825508964294835991881705968750760043482939375220923266703764711798697134882083169484491685258651045491488191987882727820241095913375498015486543185716985378306385568893071557002660254890070748346228179349831294647155914689056606659720775173098252759577213696463662892914678150373951548491527059806667697260993241652893602201100449205432596167337575600547103868269613838423064050081494964828674421947525654741659094116685787096535144815090840774286265025180869085728311988397170429766517998622520003799216868733791613634168207326489156872495250423176491667554399703131361039077713757568576598277813051736130529450930439270121057650153029245319953263313166447604336498733375251336891342900683913991912841784619390964349278425755610414734936761350933957398256627160360245399174970328620745489620975244356385395471869014569104647649273903014747432303205793832089310218693034551979128641328321351573637643041247601210631535334488814792700757210575332355675258301794651944295471559075091125204806638802176071703538167267482031663479836112587429226971050439478339866839446528281632323373447060974244910785046585705268240118957399095270921179965684381027871102801703406938853884552087700364239565483852630365695386827880784234248919786199965624551631288780733487871782099210255764974173441825117020717603550280996580921059149037406180553188817561383906145315417374148516541784580714671389812927340090495158396465302824943913238922343687543692274788723933249269490124904966167652635085232887017476391781954273007107035079708870515967986719202032739887926595284350804075603160792615493247873796038763734382616250122108227812108632287361335121356955080157714190396900304278764895150010450318078542482767381077436634702483238869271743832940167310630382504798960801093534705489035166907493275507269571697212453644395428313253685463458465055395232131882164442523396397506310991766100801912267705224968339411798494383767105686935423676386248612023227133575897395228660232810058691070199055679206662717984707733881790371896524764979744180419107273252986692456997056232356861114167698565916232858929328732226483517548916655677625706820844083171876430032413852360035228907861213587591027740893714006022228751495616157298909591890688173285235338923136066602556971028581477869478861830816741048249625609846085890445758980655551041964809708100847807891885463223349209786653180922503296070957154869883454551359685493808148133796307922214662034301541880487984112803813610357561633326475655720211520848090272216508911490405081625453274241859237567739284311722551168958697605364062074789325704786040979578930185031855918221812198796093364289013872340101552168450538540629872246528830944287226739821857352402661359067053578134064352662910282468546801343939282045079056882648256295722214258579829541214259678416748360236945208226264609703076491907575446104120990708355887372069371787746086341786838999473648829705234768830924770208212611560398953207317441447728718582958325231514268549031213005323329910498484397506975164204609063792876663200083052349306383905299318092749993958140452488119470141513364109073784106137201729450873938470460419403911541959282664735851463717948541782838296912384663041560717144600309017806857408365273236598121305543418734555768373167466153748707153151749206616211265040882175678091041649863623021797977654169410900103024093791595173767491404011345844750057812375839062210293453575856923934283029552163430619294190878586389362701763240503304610704466072178464074456779210686563428529491127419704671115561999152956034177958985481859266010751972847266244526046632949246632312530820820325488303942382700974766445692382966840568794596848736966674349969552911490213448040069499903843237824542093664126053860803560450519803248687321975829881165524669104529329876293206661914654623918025014411251808919460831178886800243694447310896043747162655855739230647704236556808057242960622644281230319907134910878204480996304178804038216534530437060893816430782221287974598948861606303318979512178582454063719109752456702657584236357739237849506229576751960511555178718981256159679321785595047557876053563715028236990477681345807938685179638465082994068211260499534550768095379387863931654073986167588741302275468936250103172142761294720065108819463569190660398870788567136410616480959084281486583637370723273235459290662313614443501000761726044583711635326009090316168960521928801359974550892525371625174276251281856258869236396676012248742407881340946364120512966227984338390986443510561050595132245166897209258926170298591860830648637987161313219252546986529795481058130607869732450022593724624856089972912777812950347184099285509013915020167578295435459788131684491831680999283803718721940088834171856659694836347824420109302196184027138083035269449252539940447520689583074033828337919398371028954911852397761634223623880847107437140163955053545502698362192891503418215466791578736525322184237077245048724752932365335562245529726069786742259168389658184287881744484641075204625750187847121020443838413377997563900552455906691754362355640286570875627512824630853947315444868941119931723206845297494756558986681459326291297751610527172627309104580942014946892678195750077835228557216813791466155687920537733578319188488707520915596542907791434984941004631283053568400706003181936316324221109905692205557177257788998114913883722272850268634590780962624840678025231741511408052889997475872517447053423378358369821362304206449573721556997103263373807138679305433158171472997470389468235174521927032413642200470988294726138421475563265447600459913324665612001667373389315364048970359418675813695322635249354031874942594110026480499642466295088238453611511769279322481067820578125818082084820534638383817691059978753236592882541259773946639710145012590845546142245158757027413291838161387264835849031218750818055647886221557992850624662389660751152193773487027328274264317903701256811468081353893024844533923738000070784442433995090544363532188672774815171464865213305140858819877510823747131705535888203211783602876893371995466110923507536022902379231784848971901169637231324237268846032399871429771190331361009534184655304585877825982464235614036486627282366512573409668892545509061294745970648631905525739560844201099969184681071083093041441927079839747516833056735083484818094356911415512853704227210188117156738790113036394957560386366497287885485133830438983110285470438509691074688475138879145965179790200770852336297067731319033285961839316895164753491920319939496202239145451487149713432446862342724442105939308244332820712081032355866042184628470095125945248238584124832784207926396490023957561208414183258016597407935334899652847654301378093684665184869501117431108273707538517347294477999850758310561749671486598847720706049236094118485525781418209517979087052912165034057919135393522817299902576959485030466464101861929714759320186902763874703958364562910009996337998061672930921951138218393278544240150612250155071135984326106564542756130765451694352480568956226579806064457654587637937838349803458288788995319255818270767872888909358161291852579677414621609692627081953718802738533976255894262002236623427066185600286250339655965835628362178594772988970494497466137216295366921869538754960250698152868074045584938943125279655355967294080479878777639019201560377443626742520590894131773229124009732383701424105855154085972008891715057724536904276731412490291713838691902563268099169314305306427026097498878206935185254159003039360177240582360026899387746646110211204140826750288874625017869806074474056760405004678712600594914691812312410121125466209471532672016335610142713836080928554723950288498086922094534752190540750462443902832867743285220979350515999217667485215200317448558100981394638311482108763243031373227389715123174712598096271360387883687994750146831477152115106751249333660079961344143404711086995913784623836362187025120459255871015523513470730353962351681697935000590400338643480465492489046181664361676844279828682433044369374365870192545828691493978360933853977182541904629310074840490401098024982048073714861955331059048604841246053107679899595592503475320995565902568849485388377779403819952061284762072770145463368089800221308022165169421896282824924549247643711722197340832881799988639808680312247313779374122669501210633052482420759781841605931927064040748856955457815530866698218890582094315090308737393329916917836289852341809975390896836457262102881597433433628695209897185731129558845044540690619396943119528457606731695641957906528267537273293958869882429242894049112482534382887511027510153951054680453558345033417552500631915493717499666714969602644194364173496907388903751111319272938232911358448316775957354057606880684156441168536099608791853949339160958274797633461819278941575555767062859626193421053231156443889916337309487355258506585152015721237436619571573550813032317397054493364820942357855724941507826016603555506250771423756217447882119885957026367725698473964427475068055770569091140576915113009378311215970653876150353320980359796963150901103579631363270962805168691702247855231024131025297789322843375438480705127143086603528741551388730960788064096127662190873712855056893145346615454015995624746786434145455494668975963494802393832075609661319287488477843219652995596232644627931304931826207130740664427937750121264885469024615794475230542011968744155197806047407987461117353455284801777820292128325393083988232764125631094046303404691598779735036529395938135984452740606868167862037464467087687620648078921991221778452471444145778953861715573260079585253567260207927269949467087124108509570798265843362849659672878335814729077388045894301594526070986550325398464883723489092263548029234282654259066104148234806770471010946765037960076390538995511294192508106715776091313387679303760002982936492860939520605864736387529991203037136433380560779910407073484925745191649979333662186843164898500014630707742803702367511843178600827386461735542440936191827919786309519884448967795483529019560306559263625403048548651165164553448808946916672956903423899528847748738907205956733140339829110002867591846295564540980226695900390791010105630839091107993822801396009099531317874929315058785034344205812071461170957460284348575926902447376605007158072960021893384069918556573962013073850968829893673379674041789857819439101019864600206856333483872651037444076314017263473904785776492071183379025208401099212954993062045337832353768333467179929978368107098470693275352386567988606310322003478990347705591411764461641117082387451102989108987338080447209287051587519173800043390691487228883822459783023196721052792318503496169597627242432118689327700031521761054545137669307859574591580485843154110201594313959469094170480900920256089408763349269454766554511074962019926484781059447261092456763193937400501515608959839131416564767904134440469169924818558388419869017927757799878198359657603729131041494839078463972946123751903731719350496203116613216854852122764788998701895942537936079260251986508525532918967419240002147462823047929199509875185700981449891190880176064383942829599375332360576934186146406332572625631970642382716276525442252982393353594141763670314511939151076524769649327608493190659209347515269223277675827537078257504413700013652801649217364977342477601975194535194810900626980316518256863406240525421875703703004787421389887685907318915294272276009858893553454778149983825754846895269020945478154001127514553187634448188057454326427982319297336264919757512320219364744983941289142763320011986985546186022718712104644324464933018940927192281944433353454793715327143687531626445059235440318934728816009332799915919874239139326880038853004298368624794909734707288120168302598960432770332639442566382928509316402558732465279762365193336876092550828781862784618130238879603906152097581939841592055683983221327157631382367820942693188310713711225654315328343450076670478884702785138743849809522315258172364043026192344200526090310995376694468250811322046994002347442433516369228556129736981118529686563946386828729110408249457368306934957977650906592444212807226632996583705289947747414704577926274042379075413300391710841013695356268037264794414113670344207213357822887575466055938730413693513121239461239674071161675298136648313345993376358964859474964511800292161094608752718982122824312178791462554369231071284216689158398974160330459342603649965605681863019836938790864635887088987011860179792176444265832738072266290057119840600556770923991125005903586685668081118250958530193934371215516871706736147099143940062648474867490665591603380387805972385740832201889559330881266394114836785387289939865578932257562519358577494370442108849915100142230692042127668187194838321082219941162673881212250321203059417823687314284873550872173444433766115741319339363489466507738032248905990397889503473211968010805046053036765727742591864355874102129019557067528600200768126865010367185255557773361551698785159138537315106019106738219757036357197631149617210080180687975510693012807682851177097560214840451117183295747677104296748711348073525410941707205992325087128670912061110920748476377303182727900620666559621670632571369130453376013793759388865466065262112470642150926100419453659830546656040080257480762118138057983375660541586036687324338731620728954691655020305411441942857960206333116209609339762617240630869956874789820373789870261040159581427211127587616688704697587756294807415999073786055449937417051393180145248667340688986257727820577432639101476159385895707633735158035066446338945855620344039843861315490440037662015937320544269959490798701057773164075083095985730808868436068692088120922809743570524448351825552243218638124855176720812592225199502633551961066125467371097045622499848236712210423779382238031813947071874240967762720136108242236701257060456176688838717007669921201293944431148424429371353915202251720037825666232904512594415915757826275435841236234803789590562381052216770703744258217798489484921355433663264370354461052356335243570308917792774637207091392805616222463608643366711282331426164728861393275517156702196407327673444752093034479746444461606571846972773820471211078377697004269106695330011470398825695852438401765401696136857301909266575517272635374356652989947690525715734312498473796850517780312346693171536144326526451173432530927675465826493677130688391602367608866470428455922872354460496012965992977913638694449029803705334108797233145530464033113955573974682502400745531293339837633368909809634609130842173267743654068914084101751106577867322368666214346861730472971248241759826644517898034176540969139564047742414678263376611463685490614603352854238054833904577635020372958889324530946716752087782105557964088544146964073386728730367757735952104064149574075369704194857562657895411238296553064891286263647657130190099714906940888761454753022155435499654528200778784181224106256233141079233368320917573568162599327438992531957776457604677352861358326306843957660099527385779703429153559787914168051190413266298072158396012460747501526200916315457963312720675519835746807112649707459985620144421258922652035866944612158738214189392967502690587589669661089535928784439361395780697469272672950038223414691394605570718970972159138498778205282584400755161851270137996305483721348923152658626304050949773414688827398494264689648233202950046800619156075083703715069556649339028901503346836265721374813542710215181682467089754384748215238041606439867156576870773842480105837226502068543817961008192933189784948009395779021701366086809935289943239314116872639135799238766451331009458355851503969300042953271837717138985059620084477455979478466068651120150397320747171110040555231976697881146855740647420902707150626121181690214844483979853950211186400839841056859075297310543949215752233318550616478487698067102552937513271725050211481757434775410235022940958773683013299318052532857428493625308505978768129380922735575218224537563978308339446099914880914421180620269065704786318401850994490410000341952294292978529660744485322627853265079566544039130271836956491678679563440994961220536439539678932261687258330809327021816974171952384514858744533606169161399542155460528909189791424567082147824424684159551384639567965646999873509762012252181217850396600944819895422700324036100844130249901396692748695961476189013009896562795708647337224597420358379241514136429188460982436465273668496133251299326698571420747824946041792800842146655900317024840305869424811167979977684303587503070220453154295381890690844933295513559487421234215066232554820334798064271914258173037943919909075044492500796061319428332662629129046113674392711412021187438464044013196308776382357743558353517845937981424461624561642416627017771113303524897053325608377484468082896365240273220382424577270934817072991943267277537409251669410715527026333005596335543820955362896870726554213995921610983972634289002904011033589120392781200933004511254834250484546666001857713715998198725587288569939211802513210956910733756001549737895320045134917481531813288882952446797884793167004499961872692596142463707678014739118020380247611888798766113248303178852736229570136471937696645524069662327652421416510765420719018119769545390838655490398978214811094980886778555826944280232615441250946072105927038448969252693092576832579548318107121460584931361984632247423645042030487241121986350433523984205653406154493800609861995566433022385491105564508770381640323129632285185840987618513296634494899967235895811038602056826373131010721848318744450482518882369480332543563450640789521651141672404719526416882182249777381327203178357769986841578285872926936262283041092542674844643982032105689724923739390295156966507885833403660752592142234439995941213852543052413152785754010790318107190925316551157588289958010626172868312824999820926670462596423615850705626601993230128515257459359862871426825971805127507656764740940921336192029751752458190737012429101799147501873393439260959377658915679025958926493146963599306669840379727022184074973065562581252510054942767799204241357733398923362541014430351492601186985136216713323916571427189256995317798103585978757795306962599109701290146335846920614628383228007843770203300250494446095561492302101386308207930893873491333070677469800731597402193897670072112155708945747806192720185590266713838524405514313105483606404543966220884558334564605797859630208054909728788823479369736232891708713222810763473791933918733155467825912196252119616110003757897261426365690112081360009746667492746143584108642251717968149291157616131070841465568176206156221072755834385340427916185916226779537412478378981088774379087114836129699083331637687603234898306741639823918970332470449953584692482081636910355648003407036878705258822017284677096426084510461930090062756210729473409876913332215682935852994380284284398497342119124010840039376217015571607817883640009755568960204191983680476569193330475930882448571484184721602557062908982691343182652107169892931392938490925088210510719952352197910534048086975287879585129605799700903974480726001153040502373694733193499668129789458249721970133565973067923880622410390669251714221740283565634447350609496870384579259107686709988396377237650489255184929383585182585722607904804554877295260910907085562903298647242333360528250899999944206486790248123739276701517453421258097942713340788795279374398629041449473805650429887446127093216613729110161890292914502386531849354738730719150213118952867702007273626298469757871213712236589521022307427521786325380694616988816128233789186526969118156251823833073939917007164038473336308169269435614436370451178869249976779606437766021542133057430421297162854634055970708748032813091052233569524605954941532146415892811052496862251481577571871270327942333364559631904143601721889777808678734471168329460091877626767572533183259066537492551119626139582982120154623318030467063548086402535169409695212534564332528651148455700437918840377290945354329675265961531332548961110444624820185895124827766307716484585680283602944323373980591609339374595898610076608271295771672428237646345994084638677342908057513293582616669514125358916361524217036930078609580040421193540285359379195104553469234142138103731736246777504212814561889379921358784031051822066471484114891627314981594016082122396572376592387553207262616659400376991090993827186277253291936776982323385408878668417411981439111802766752069580445453855500302027060914874074471006223868787961496733376523564464215418316803230734216513023383217260297918804439899782884291883666444836833990482252686770427752421298692653007413723635410930338547063877669670499485625053150270057570728878618496509097995956325266215945585503578402438264946854133803377038911830959084177346816280970316496450292518081603551157822517906036723887845125752823599520269711973591781958405305500929740955691293011069107748878849096292023569345424229775906636921386125477442247736452757217923016655044279019482951559526663954649142269278811052134608497782379242130765039963123101256931830187073402723563332886627487878654014065567912843788899308369733884937249980040246773267136416802361615788916258713141711474172034494982022995639566690177337344947967697476629770387282875672464711583631080136950471112434596037761136287331060735588732092208462564085801616597617417429581578190410284760450386269907414395052311085657885152591431199451221946162394701000501564701697933753112589997138684030920297792283080510680984199587504840772066375696212833106179280394773510617795324658915762242149587977134888718829049968243136391014857612151753493158630722789848084384748862009617462034668095927589565788948775490029419810384368246343555495803848606323429489299087313731745568877970821196685692411750659464860606540655667406043942723233041641785425737618771217950534857294786491935578604855706837609070280250392746976643957086713355121531929150581093642697351347066940516442722437850352737766927297100755796775731042334691870575445034844480729820001791749768337486274368378255515133839363993238513957886029756328265111415915177858326406729892446514431803946502534187848132668746020248539054038030099121690692775216533044522709980672537307489268149770223130758432707781041839951612829223358098248380596125694924058995657265310091719443451530321313984958831735222634367662911921405031893465941939833282307908725835697987554473426430288202851778621530426805677246487925239870182107990367575648857136610915572841253223376711175594005129882093517684169506559320447237531004456017894577752392405860900654172847088272945818455554320446148053175631998530015247534788865234089538382231601385608467752290704852603296712656844334730169519654510761796813306364408320209233601034429190433856865868847085015996199138085463135451552823836296101900367356611290104940283472496624938631739332048430577221442649201883723594338586545739297925623437174766308662420576307360096012551308450933631027898913814015289017205366187553258369460294671821233334975120248988841540802438056547638186490409953099806633086422686535789220977071458425136647548432233416272067909016355274444316669727390311410734620363933608809702152461366438601636611194141473755724496223748839810115926446299687951762019859005191973595358591828105419048577326984238448008997486903761508832153767784125914720854533946767263742676529842692669364360824805927081956600647140251485765486891248647675255671029086837212325740309079190478967546708699103201710754185961172496845263205714675611340248361051876822671690848537847978981558133492892118984476907062879190264603702296180911480395672789390188899391255302636720719117971518738924546824104892395941877667242766493466895866827977853587743120549799072145437296742940006077426667489750629247736599350853881579000005958590934493499611022153700652086915407311193664028661643275994883749739634814186191617108553385724394122236499019956431663562423999439209530211358147193953054453329394395300365323930587050804695520578977136429293463069232977918182329490679506796364691625647577961425394065069578927811416682744198146660110248484902340126644938463239934584910023433876705819388409120314325065254358903211726776281818723664430396454285666781195444757537720063781992512290065996844469350033882921635034570756160515196032697150358587483246915900357123748367614422832634366034246807161744928959608521990974950523722758743261458133675936286761975606682341407612778209782679021528134818240908208723770608182718749451720872894875021131293148485215059372272972025191167457194974246375376634495775365471473361641312455496578897987365571312330445312188519183208353855743066891467161972527612152731776208942116524336272626691071303698484781889145682092701951041679950792298398994205730550648759364349620886391623585543255742997537585996859484069455323117552859002300172404919971806740860216258297148458466415735565814984936412817528837057967333509054706034567231517680033969981615683833865633715217659544381608631543168666267126752731089872293217800579170668563832339082073468470733294073006414931719050108269764716479128438154914210898333464672867453865507688561969727814500653731255652761165487320939138055424920022291578363061803269040600182306682210302785832696368526741165988736084872762851885427513928760837761832714467683423618919751024886365820583844041765622956856391879069103579747848249775279208376736181846597673142969576953327137278002841296185044923140624844927369164154742433480416655766071375881100768405450789880237057495591474362584182952313336367374763551899692405536371509057671327710681942721833672185056519981148078233058857727473863059785384344670958085254026163529076152682104034427296454089709011665770001227195239399582163749723172795445849940256003158844880623565613712777636792591904776398489311041766444261820310329225126091306846849005974913647485454768692343994180973010591928236612976365771677966349521169283178588586127143228298744834849514599507803501973543659627499634555513745412697277399959686738491265380761720923295176235886182429254940841356006121391407651569844396938492890912037356722251512973079530980653752362584945044126018908162691106938170506204016303884645513239249965276255793599936040586296055992070032425919037258703350861928660348363778319394869933635909654007116845190906928092225691751111152074207287062198870589708467251551703401832454195572737065268629268758053714938838974421252114539563357348214401747442787391327113463107348256775891381179632234403209041471329599826000427046860495890099119444321648022839444846216392774220403796657312471829435248572770456048532853392658928198561430495270780396988018423844211320624939543592209893687485593160147267336284103389169509409536597706066303066793396254072365148589569972192861780684762611814977000105463609613008095744695076161360358545604086188735601641140531442524616886333570116715020852488933818052130929652702938356779244379449201020854709818400513708659227073891050781429885096478609634713893464934998506396716525143226034810862069431904332734039255280386578882113720647263952520421612583821675161511881042480703543081001107939339442791016846170383166704601880777022999049702271545005791045278877986857545362992446137358234225482085933564592851538403166498834231899000831867744459297070768516298814338615429483567512296233347451133959774292814613110180981717490911487720132940533791011052425656872377786731865827228202739620599067093188802766731322409564594360849877488813288331030327159862192574476993923013494476540973926171584369679786538291888512297809115086759420759487988803810978862735240985652395156309683153527775942179984401276108907648735241872379837438250696431239063303860076811907724565211384531827712177510215724689175797372217103456779100899066009440820757844951387856087371503354622479083240543393903402982658222102538845310225440871163382244474443008732442963388110662803494141143706714985410814610341603089986099084070062741843120052574513131436476196107374257562691832567480678359966446258597191175575091451490821473638217487779598582814172001619229585227706178380704468155346336033916068891064754963353050697616003107275831535319562986580803431117187729054538543227351333348988748530308429014397245756623863850850257749284213358808941507091910595150642378161796375836287302715030279422332937993960357619034292223698332824526700314243098698374589415016397207544086940475905775962307172707175823926185611905432424664481849945443976852370609448182736511354866568776250773693511143015114885132929275523405425796056899396521511706697891454046506307649437879087467571331826652771187868719477345176364370235393073194676301464210421711469003540829982989844860921461837882078095253793468565608118157923657673640055226428368041017136252517181007581530577136845002231993688837464724392943020042008366359681704769427616051285388973868035293020884200840424679746198584520083785667260274872016514974056531647201076010379721714589339687184483766931388675178263628641602777388558940417770982984190040374083637373710572584507655908370587144731883462969830083238263962750413441901456407451596480825988275128431224019806630401200317469934827096368654947564110178328900211715974487002356841415404432356211676117827329206660396462657408566227696794789690538240957014023433117823640728924633849810389051781514227824367166759196553530610689018968080700736232747197713876230457708947999257080819270363661391270153625561887946737185168481284883129585820002373886070589908287381956444741936143026580099693686513261371775062392605440722592568340658096722025816172088408230859762727635391988565415658111101761140455205830224052598977552783258295011416912379708306022354925939628449635599992133350259809223423454788358424676150228281190311309900735329607604154693485604613044979226123567623877373862460771464271321226682898001839733846672667379683598891376581482667405432424211764837570057394194264245852842734279022653079370912106754117904280723427434200119258311611955521360261035223627201083710634733285766973081364287082264351972045104247401052951596730675300340272652222022070352620912705157037097447334607897651098363732435302645548162579608859978993349510479069106507423569312142753868637572714288913381058698263652370073948874991194346365766002801282692664637485382599142628747660450267596394942587011528095186403957586242860373218393333816345732706254736799191627036602765117273908981793081801733150572023617851139103365836397573003268944469737672011525658678128999168729868253859368539157702369675583178788830545594121871299957166606992117396449033562549785109254932378881215531503870023954452481917122413485605566419897321464128632176868917521775855546114886718047968031067329072696168856783757907820336229412478404127915447320648182046410051173804826118810764175912628173457337072974556454463832743184139107409390933918236793293098039545739201330770770359346597994266565779097483152213540418915872465204992334985272514051946208964659856873656143690933120676773072547063564583855665756333846532476009622078051666607569474481743558500430624391332903239064836972292568499991267762632359895132350655052363465257811268440319747076868054781360431443389775009453229171558569315737854598962175794850119349242027986736724292246379761558566930794396698810399609795208361217917963911660810927436011190942238606523484866535202063775369181282455817030800046127540132026777754797526217060291431097376277252794669082205774703867959767484824833571547258489388589363408268872350091593091505214228304697894515147288371951630800376759627912107971464673286854906733433811882014506608322715278222174617463828249445427574137530148219400462974683942591628942637744203952620626019614921756884725581231790219054005661140886942780191960261567715978673327513219621687887250407299630509407781490727181166233554554637715829370611989134335078288707919022891408384498835050333754616865223259823167577587669534820410166981945804664705760571015265061207055259852734348681293542510711271600720028843188817933868238695194664940081011264242158877933302526382275005796800378250559403012026220586672706315338815265993443342572750057310368120095634842698692859895944124731241627183765833471213447196971910648838786309804588608659366380225180167121228115054592676640692626313580311792395387708536465488063182260445801350800780781012414948495908489174618178834350452220047272517620100014338278312957359546738331599630702311602599733215053827918203196032322095573745743648871511878089651192529967160449411723572981263266446243448723025025203062013834842310274077688507143827140130850152804303361310606470844106785488366969911860608643773313189412672877894136804102080775547770064944434935604648123168778944295463338089521934729813796629335508012772183808150789974851677354084191537386542101638781957391914333611299811041135415026210687954338309726533671342851547639478441414304760686340985126417883148291330158454627736479611251757944786460379718549870098311630022114221552290045192743692931475275498721070773864499357656844012297027487154201726609466173800825317786869761702651795490360675590011041113382130670234646976133532398036493916888957829127674704761065057603106034383252281002058363326879086699621203584751758750231034723688084265887058934592190392987385732592081310702094563448591282821800286628748291695496066244669776976349186301993010113788637983919509854980129233683379855286432210640667793123924823722060876701306359645181969216766267443686959416853210602263092997165665015169218552388680182110419450183397275722071888917380365572660075062753543394649676933010260239105448097875658914703044185980708217134159712725137616269677745769814552464345049981714557101978120510468083603248263692973960448190290227963904459215534991219054259863005762670240859853800347759011105692895410751231702122542658062539722743363214487579371208641637526547035644479622158111303023471088629894020743852599393459543118243712565643797480813930734195760603173980758363261603499485456180242685386623118185294765975836296540484488581960565718458279131273541437598979679537087424058379634227055357423630997947445137607684674454470390583933722044232379504655580922772382669709838940926637221707711838448739626180087531214657054532056973908586595900751287820173886915581490330739534279929226611949650233659182417122799602881110849747486406563460906172537601284397284451474014482944329946744899702488225303961737671063373436164638903179153323140634718432891164166196328680204179717422187683567128255455287110402569588408360265947731788983721255874544103637340719644185575618055190682403589073422329865420333589149113646503780370806045865101617815843066495495079713228116326570338217648057931146228967174433370109220369921762534156387416490332564009701830669676042376628597553701271753227528268670558694816372208007366957303717236023911023513447140201069946669576822750249891298397162380375137096040684751648878966433374673497846515835694014268112096201891909584286928323271488029224352303272997718343081972769805111834459139463007304028586793796131190725085490093616375869227791537033695804585128851834348502211298712429228099721468565508801590329813749990858587111264176281555266314438502291187743540425775377436893811012360566756005909788122668257325214942963958666359294111519975296739547246769671640257112613431054989007543612816867125276971447447863865360914887886574741486415683688621681821396079447918294945556959421704786427491312916316376629556163028332968700047126009037946784843713715798685223253634011855711000055920963923809526721031102302082218940753003544461275219556375804293845393844364116767590370021681318920703688882451997150472181413525999778564964821972786629293146698730940030993027361761254987723273011690128690166226181198847008185100328826732700237982287004987017542968635075931671127931730512244855004283471084238819715126780724415119731880981854806771441279436287818960265752890452440968686794038133558987850883796020110941066030775099395719351194121350158632599824689776029544477587849252742750250547460845248706255547786379387270266515629134744493783354840284440871611040713213599627331616687900413507859481391431310638666958931259064117368193220808398151389322594399477871317078522048303056099483099405902106610539507987958834668271382807158465391231477407942507566536642974403442412605814851806161306993898704515599874445752439794604116321241810850680281923191007302177271627025686422105499644379457181625996843511660007658075431910315244848877227950579391937048453129108143905691937952589373228272933376411510102101800367394682753444932155924744025480401616146634189984458570432388298054518829854776430137305225360410625907989965781222085739820083348540537107561817380677171580179637296258549632652191679015591684135408683803313798691848142881251717220234940458746300113926831473187025309185831448340956206011467187850338913168174575915410361573424121852499245693743982323198058149251217771970681463918623132680454950375049103398381167641509312054075256566897978755806448163806347303071207160004699460475486070095734431794542224984936842334789393795645196381544988334811661609003977193486001026222330197644978027660934114660647178803774102847013559227093672226850629614620574744393231267421772487753094234337165114439094856376920953052334439350142554560797152383013515039235945747782600928912473832996117966558589897810847796775560176540075157382285396808563528365073537091465504271649468278489337698047914668446536655934982568074000256134494659324819201933003648256154032735720703448714471031186531198110810850136219502977157846210290514605970032532513780206206339596754480275352369035140750724213468703269017989253700990512974545571160232255106912916736161620151334221706623867609951177204753615388674615080309833966363440439602453917388570788604949777729081737562629841709950549321697365513862093619204062246157329015408983863813557328176860290546232669761201500233417069646949183217415453146342149480491664151411259115657830947201170799800141129962786720344791298883663336604927980583878825447199370709028025859950167123914242903677620213281831917710751365623934371256975606369751491656251728200331635145764358485033879207996007631596275884482841730722134638584761915933030312114840922443273318086358769958513399279274275407744982991507477713702695535211109768861126976089950128634220785458866859963722582955964320743474006187641894127382518755980104168129835388910008114519317059643130424810005670520992631373057579533554665645909761420464664976999882325495599624270271052667519883907808489238332303923159467523978436010875382374201064561843082620555057177550440240515809294940490293943283303691939746140253056860123449304845491939737071769083620733946549628109415562544616227835062683485329253313093309896337413962846418890929151601678925183915850974855747789313487575282213190595823075303658575264956529972200469468589627360396509762559605112479204783209340782373683321051122651303834228310629076549368017116865879832642807640755515733614809941938415657160403753458621219427982020849072151135918559353199629820629816700692047030261598887796075698162464026090119212774248108906309436261781066418953153363987985927660957451529200679187250790633534449033884293192320837585892549732003391279056207481739073067231522770469425558507085191365486880603421095554282753459183460103339509400654081371404916409631294905746713913712259434563444602013159011788136791896247968418417067944816016918635964121648542502239716740985876262796777551347553967202925114078344535041371995572851981848023353891537772776826886948520151782574880148151150529754755104767311381805349643899753554633672932237470709541769169197336241115401928293921980641212828616556433664068977148191545418635174748486691881332661322632784948588657645191888995663141857588963511331416746547893705019838837613876176267058053949059067704215852361344423622388841238255748094481504048294905867375726828230820973570655744294602846362096533657523874842265166508399110758357829199460270453847034200329962908194910469114642077632426994825280805646261640131458709170547739848379481252840939020373686356046604727730793670341812037325443695303046697322563294965357125576371561889713574496715862544335881598539280549525658149437104837643872986694862573787460077567364677943098145339615526590697387646315451086977534203355380684796265415628114160538477180017782122488225976009066395433653991515873193967049262732269730594946561740110722397700873010283633034740130089328812649606985050950377168546365698152764903788029498673702132189820757803985845976662427007669730387055902517277882573819020239411660863356122292766349652594224751278828119234082031765624207406973481887154263140254427645926326459002268406339383125912959939772268035451848933438563876286997147115744195049164095594247395768052881333805132827620406734495891320878684411387587774431814179637296923009352126677684814407511253617789354585816048822119891401061139193598502883544604848604073049488140376436938355821120499095731646279707375407258353264542760624178036450026321475354165714209314902562604614850892762740611735163332087535898934240591991889737679769140105197793409355525892412580567106037655568521245803472741134764173649516651997185119056543444023664385904130348999946400960019462741506003644034403723651025628315403292730807643396755027918567447621799105602005530240461836247260330782366596587762116535749879119620611089314698401520224621306073455260250981931945496515578118733468386310512515143838913092452901335349852657384281108206040400737694262101782874249434571552612467114465724431240605091588481559101652173592779105545687335777939199697955752109771803873406045629897524144322328426581320375050405913188073172858217716086240501735917194739968124580058444396159421603858709504303285602246900817200940840078555772134082652657754899058450685178470293422435157148188338698540508685796465933294685367297674125470615947400191272991863415031408385547399145363932475194243663785007149914589559344678806871419295378583464466110265563913066666496462321674010805635956746779102167355701178286286735804288947819043156094241388602488184765733707040075658975873053471914438325371739571955366136106669239433511088502196351450287484130264740239843619908264650827294047991835097073557981038028230838534556934204159191557152295590347105519400786374508794431096942645594600253640036647146403411914891682703727451968352578185022776963051911524615820000281838430301896623058361784099916375606551102881052260901876942636825733925549028167283943499297936951842169712329692955304609084859618614738192082234797263553271614066010817507190206920656485249973470631211631891113729230062325596339263987065538190204186811413937124181791981167930606415526453362925694721598668323841230857962214956815917298906406884805283366410970437791806036259532873511909862042807941355027332147244649779867155382785962535435135508946370932964710849537383398617175945713376969578900708058909445513762282854082786415983038203020541778441390363919460712006619011517945250719953564700125882596806033823269844326647999094762226222670010420924462983408829764790506648830353401586547897850919783806102435776215464744442655323665836712964345061577623245028814635113831857041949006047098436843002728856182505055270661721457558604978434352615460604650503935071269977389924419485199485162942489663960006409055144045577217652890070382664752482579832634846605902264307931758789582810465175257260594413775411566259279317710314055147425011622537089121389090351635402856649510341015621094062783550646043915684085594218840982363518536012402147189866020931579274365220059584083861576466531016601409902402962631497453393109792503562155533285805867678839351185901235591680729011213592482029813688530450097241817056637752595940883035524291526807238968117185550841310644110097608248932230050564134831089912720064642598205131112337122933478445208723191018568810402288776139420712065942530313547468995865078843497254945325604114479237390821621301391578176919060336914155715409855413468062008698008710333595535973143994791504741753203383284240458653741464849742168006046442872751624709136251792599882285995468183837545993501805402186850937334001280715751931168474313886079226164198844544221611089249714860507894262546862147928364858328357954909470571975830822365391301114669371796091814383928776245812152679874460959682617313786017850823544512376544566637377233162655679519079079049676838898601082354578416016620929514464459557087351691590796328472408219341691191355543853106219737633418674396878209658266593106575109477771591040390541136097683019215754093679308656543247670552030598504073442044413619506769308028958262441355702381859860747607489030789258098580438254059698153243002565458357487259650758667486544855152781898846732239854172270688830481645588380883690733817784814892806486592606919272511441721665439245274345173080448185428940857767654349912762561321059475188049070250799612043116827267876723776680905877092422502327331422242595177051940001563107529665652098909891117201499709983445606820795610740793798569766677698441865633869937148140142565429076928853562329882609041131509632021305612609381967815403410351967024821170964946930318170816087727498080718054036838741104048285631360477737654683152253754305840096643880008587588042907963905337980484673719322112850167235659444122548799608567617767521505489941948477886218345760095031984943805462844703087642228430929003264780389365376142512759796126539790718460789545568435989095793958552156202025346461774209616088034621251665704813801269226836415526277055839692535955959118190639822152792275401310062719072777211674349306592971766778276668805712679221336698939978666322298868702943664536056745176749660399422282304592123973172042411998306348908953466414618818233333750049806217638136808252902570537523557563396486779652488219314387592773770734937577211488473797837707950132628788996597598995161417452687921146683567612605202472017984669022375377249568951540634081925170681638612338795436226124720733596526119584679514900005936791234395890664095918123360723605766960459653680908476885439953029047306836978143752765979159071393009305326036102006922449114852873322642926416159398761507511091452142938031794621308466935103573389058544290837863215185472164442799375129098168154990644420232387641090006979991338772597949259670419810207934463696341132017294351628330571843463375006235110123895614403591571871452918157532969193131456392872917455690698395468119106154236453391307719046323809135099998048458329024326616990343495783900582221621551200371140125230744292693746189338290215058047570558516331645635535579821280719351904219728124616842010991631416945169236208956943355553621690250401651318190568737508892869014758930114187777140768062215352263559131715569265818880887865814474287323576187189802586826191718081355704686372734084123911245615948996027154288419881091434091092348090457751237047949432019091359803190374666425460795795864171243636256466434523092050359611490663669271849381571183724928430361010377648705275926939951952469300541408214111496268852749782511102934292795175630379439534129058542298397160857974455251455807638978756675611252304118909696300738931081112508772224286438281651825155813521826559538830797314279587197291414934033245016214112038098920613110907850448520595047090847081820090407207503661898741555065854229994112426304239760097762626125837567842612212022181786947118235901692883147533857197053145048589571407607079311562975466518234411949169752886104989377416012853565516201047481021014025628366468554490852182539027535434906568781593923375238886524310836041721229864544739405797099990788817302365024576254974068368266494672615286898883006612583074754342669835462222819432649122237596186251561428402664660897075096456293832343553103030632468938294999448346669084963759300608751661005171207424359656687809620988095530145838981393990390907286268676670822632947161418718865166327525195916540572463168996064713308552791422352829274925398808014943720403385239950019839709886613045629992231360388046286746214911456601524735476362510824113857921589137969178861209062827120695975365366640740972023133564056741490089414137028649623337768778673738745724418573355663676741878227006008976910273684271393542584919049115644473469608477124619456432389608427911561282307384137815191471041639888963753152953375626926464469683420829040850056890651363302081443229432154790679336651020632020635862991337482950461001181247884025701641790610852352932941028742724068667470749593396217487463855043010526286325675022101901146282267574448782118675901389991734960213302111775904543742586081008903120007404420275268988664780382462822711662528574876831116746852018306199563319860119496116160209112504857235956328541012367138574926024243404126732112234136362572393654253684689082356163647377488145979071420931952997716426718266887902969134094655498356134869529339745329779638594614682676702995704143979339491701473424573416343720665006009707299702057654554334568152206086921888104256507380455707255971105656876601839956145605054307912351452819687825127736140653065142496604977353933891236804971902666978409933539906627004810311520611435651609964629686654713109035738171930221750730979421934483352402967560704165671403066909044912041798091531903546850999130077917449454714992442159385315122608927068219587189817956090260699348133954008004336254618211369355788481029450625169523451006861913141543998701971282563449618348804947621267514040282687904995008061655078093572011716089565413319212824328715835893104795052610766042241993444886659066749192311917234523490304704002565442498834996511839576816016225461826340534694498511170525519706049470097076843865522216647895289301197493484895306769572691477357887755571058611674186809952896439237747865403322637789769339474282212514573039642991573308787406520923797617970909957331839513924222114827751710328197679475549216823890270670019627442165440427548942720734924830379652999475350826535756280427635752648221136539958283767342774765575648561557184395457340066202292398530457943175619363469760248407692070409028903649609571616328320724980340707588544988117138426977897975373563946903947490197122454700733657962869839135975224754776800291987936464146341293375008708779825411318123532687362724454088748542318719110233177228440217489683228822165804750238008148245448858356913373187139197236196993203875730272058837990066359995868340598701311494118602864256829932913663076383616760783660826387113408904964581012542546288756580279246992432166510523935974267157398910117895780382677443287310610702731398458532496216068305717876128631661359539274951807216376402744052206737016832144110659824820063572322780409040008171750098260024755086746290778794026781365731058219896647017708187373055764939420702576682386959393510527413899350768237962378272139763547394009992807306311610715414011728255806317351149972125990074452183755263958991342598417336058322267245275130637162460925544010434302796477434284452409515759234420574196799710398306060619284444999850650194139309173767234317614052562756114233922880157715694953679601870212965694332444141519530814497783576838643176886627478468677661366294417758127890947465551067472125927915181501788979121955454669359993225527621323035459734485941124624428248256719668958490700364813916333507707740073336765133790632802058866490550640162611706587603854805554287796269658803987802105987236481574075453920010041350968454136859201207450717534486951050124689581381316634296405884725643640699848039278301298141713831680685058178540559283013582153935497295770626793447507527622454791264643836319013407351621675650432268619599071513241909482962987799535545008459502856231736139457688997866751017597281304691343914933643606218136283045667791780086012141393136105706624316836389629981947365284787294948871395752641645718698461628806536296643645966260066208971674285897580666068912576898868116600096734608971376286420529636239117034851047876251766435655287105482588578821281801536460758924767180073112133940178676318594446154452395669385330781779984649381424705490341394677483240145751938404227454564824117822317635819974386736125406420480716825323193583037545812008313235107233155073494878120743170436088423772262891691531557529877668822537642012797816276346805037557013487814167363949096281353912066400785337996145888371916038139823683708736119885394755391508906553072114208488828927250530127879413191034755210650820599354422129900518051962141944331487496880894064886999065408861904301828371969811833224197641269183288218943136245554762477471857494009635217145590784031447355546570315470702283077604498121838651175473813558995651942263708621648738207983978150922313540580210207553739834472505105005034342090071347800120089174009068156549885071644422428630391074645801357635210438095234164869458848828515450351023808313983352245910397193087212311118659035224325714359212687964674959301924413412861015084977667291005441412449330358481120249559367024162207609492271313398676787389341162402253139401731724592272468416450984978767767799803364424041024926136137597655589944853244219157974828283072373967863621674304806279493903398299088816658597659818664757991631540246797925543331373200594903584577698475380789774312649280672080860691601865847717297363311451661400171340093079142597115056758607512660474353861375013690582912175462474448256160058570546605357510334245097662690961164536022835366137233181930209379121836176291459361817874458462742957308075206685199315665754111271191997139471376020923698761484840042025761625940745726393876300337648012157057453778808012802831033434070735545847894026531717228084291851903561146684844704473528008000778779138695859302696519435115633537425958066206843498327374624968859353668168521496086634954519624069009220291564782778661235939799445813183021056867281526792993100623495698935575843852686655669566098631865065114544737812968899937415775903900750051683942672606958277862702018291773618986646658626561955440047280063750192146638040330575420707702486011934392746120252151631433750755627721727415453239633974150706142360680254480526265819142412606814617921525162408378901930285481545508001704680956011242141795886442128249819149866986491451685520821139960851896222288852620084212756090126446087245126632484700951897762090413941453185596733799093156855795127259318208671934652229221678114604437202477142054754553355417278865279117753697296783721210364945444621256931845034510553184509534481251449344260869141662511359386543585629531628753949086248774836312905481584597424096676959968092875822054809174749920952988601553061691622011012279557636849695904386035057579846913089826422972640067452376002718438805837706551918823770796147907168223568590837641556699048907709793400095096242662471951633596931167845910987679665151139589867593968732832067840298151670926177129122504719994511027716349179791238756662504498157607676506548607890156805813379063807895920898982087865277173187047181634554193511149489478430835167790549235475017884158750723531538462694166183877434875073396878690867865926682309740400004997776833792080576648113442569627380734709643051317130912360630124295737938394211043180699884530239816551443964969005783806330304042188963807773578411701653811454067483476534343292803839298768974892088804358593372496883903425866302116806772169371945840999662240005956089967305526379741702866907233840859328231171494393742101335978361452894220379313147671007544657808093399975682245006308624278326778502214421501858065531636821281922534341662445486013637477872897889873723619753465699480758467736046992951906386071303598303132341203833000582307303332536486500544572713590021852699602769140145066019741264064661242286727774920071642155669318748063834964594431622693443068403598160956919100746966133735474945545288702446765642890404112127075213957824663234707301527748844739581994435007950782726893675276160143252778747487907400495751573100362585604529221995124916336486949646065508961143658895519118124166115615210484638160345393392733690720637808933066272046890897222169885576995751781805122910310198685252182658175531676868621386477056759064882253956694485050027604243446338902019886079822972430701371573146293277193317622923892915671270327813089084996460440929547031422405811418014560010764840686878436579122382142492968441065459969991152725966548607541659648550209734011086238441868161148148022464921444182328730398301905519940753207551277205549354583999851231792180237406709755378514847380091442898710263965064601882845640055977368889981730584640712809747650407284545833970755752503417855508906223623575708486558840511336233531886275014029148453099855329298433550352978983121395124943417556389573676695543101947171302226293510564071106566896427923010593152049253183310391851921414463226488156050457407800706868791567546293817480365868933309624056660543493564899620217563414762408178873458773367915534037787075070067996300218782993162411869452060411937215318023140278134833319338570142505288679918753819088194837203440494908494680280226948764029940036809324145106079026425828229353053186854199738813751615542668351673080693494959655985412398741489270159308847817135333069415137792423742166767382197928243525800510903348721680527982453826671531216872488281628436601966487792178788897281033126575894615193054036811089073722730384035359530570364908442316408171660728355037134700505718943651404446052974439295603605547302989165666541486852355894847610228566528213867810385589044031399641734177805108388908940631414275037480284329052581998275898375904675574192062815463018215381634981686776169018174995566108222132906761719368404275887323161378114671642363242124155827005704749655866921006962437830824082190158649138545845882717341425504716656201184875563435902791822230835673726422655352444975074261711196714303746197284239196530555576475394045472062816659762959551219113628146823645477021557894265009124674650528423992833710379391514040479542569924729362204336810865890357131323585376901304065706537720931256220996216511833061550197111286798013930603351004372187122718275976544070638674258221010562273988908665741642377740805253693747997880000500490766743877499546082856757558559113968776099901800705612841144038161615870388395642301533847818833230518721754123045069989313380843698374833127048082137406360054458865862703022425537511134476293189145613289490635065850437041210533246434025477770115747160464997630168507310776389401082234084149878142898215128721990517528984381860620620764813425118226177910714136427801283646445133565092142799792749803936655990869528566089994077085844417916241276271463283147083517725193117628920350239684583358648764402582042443904972594375458597135834823691712565317780478975015508626503962912084682607903089724085113683556583807066928423045607318967759278420162753325937675280340020635941626124115361803740977938817081073949151356962449141722750584409187684585884047199024497719490802186635385777170903086181811464598729588955631643425273521613473742840574868813854974953936170013871331791248168858353620032462069407923917698058830474695238858990826879503519282451589202846989956949165756484467941883058203567111500908570349002440709095230400017388386553165965341925070961169954172996258591940693015784446028385734121712141473523778225572739629948478485544346049671276255276811545529995337980269507269123322005584311660267986782742571577981213823838895448714882352617302548618402776481494415186335699071604044299783986268418884996748951842667358945344596669900075119943569187294577647469984463636989131129512380196491263115511749881087083095213140985534822410698698090148436943664609982519268374921168782810084147845961624562721864143167643163764228995526382662514154432360660044324524906885487598428614376448201180644360312966777664511336873757226603717984932119359762964363171046801702952914590313103106858898300778791488894649215558954291884331089406988602856113112522808489944002664817843386268370986402944175033960147518347980818432735611688444917630932258322299172443022192391248561048289716156022827600310506918358147926990121866867468773542600456765921252334208822279353252701388212182894757715786995476675158993856400340621513468721504047453021682526244770208079632113082315820662774710153915218054604860700728538278784679066023097670754374731647774307137544754012936488113429663314408394580012807347373766410671999932390315233465000410915443125700400742297120095644077937015085072413021702399558809632197496677089600551369875574154913637589090844395346582355650069237849064275255988909330176607205065215961119695518286420328247293635118315028362376391051548932529476195100844903261604064791391922550851037566145814322374502396982032615694593622711113298163833259109998175461380933763835988250677206632407765087478892335732776230417482334653691017809725118004774100047002509352852212141886597526689170360503564902826918691138397691547002310096582453599025596387364370429761305862091291356958308056351600815067309822984666266943872357732718074645995886349520062622292696382903382462254740055143488231770089665216469573955495506143157129713610983993341805643034785130549543137956527318813550572642721174945740000276783879027413958759631767879528943957335543187942065834113566193414311459787809718525389941733779063499712449749297490310127067648828535143794316503064539271481895753542890470264078418840012779127958665308263696569966319741990123261911999865538114512226863417898270519400112516197924730141225474649074221522881116195962644339441026220619672084054000220576662918266803796397798715370973971007761390288735346656475025724090610159137583141900210986298444187120019140103884087095342507736997651026138315399166929257465702345868924916363425127544092693338972772680586509630220293570198075640493573380676777810347819408754390597581025966025313329376342408067892982282167884864152243672240367193636550443847128459591067910310466808248777588201957458864345591980101764596513641911163602848323389894946459557588944630771680188538286569809815275196126716199964141498473787913068638271006660300571998185219445646784875720180626171478433468759720048381851306525923844379902610579637535671147044584112817859264604163997173635171031222425717294108252145164951647489043111062771216910556951725277842407438111467027049154978078459452401995012365056653102193643870617185083504580777265314030845602308709883491626964345511289551556540154615854688204983085756032766108886192793647144885392382354079596493141500580601686829432176331791213061766438731668998354373504752064966515890579498054952421003601057341833824784624964397797209897893982917769976536297898559652418747106453400061127382653670386614794748866626352167552435329420221250886165984566213078066946186638466053746326184347172713703279995515868385248331894680534140378062327842408256891753983343636803142621264950791058734253353221815822827952379829717521060349647123962961215544599623082630712183678720487289060168910215458769008624277430581685860221967587852898227166491506564978570057020311297770684534356606691470529982394364053015147777641057557929634676368942381297212106421703782156393119203070121088489350742822737364038854934830586809352576580148842634156996556033264890990015625117445322245475213800525097551478387237507588739993673321956175335607554220798553522539430304830781232642695163339030838284442700260973845115450779621036857772796934151914522095400217745470120373970240636471426380258758683365065392433969985479177543170349687285108086685143460580605332029145685774661596151983292542415341465975811437372745150651415103954423903834775085517907458194197062817828011806366573610902908320140083788833137990489956809192401551739130175973754498500589990176693253352206359784989743278451724836547513891281052502245487243578940074234904572069267876780898594134651698748227337771447526546692850023641234068602556030916925913427464053676099496999854359434407896337325158233851862572056847343625096897776494778943160428010105391624923747482269702131628205262512576788779071010317047812053846588926327652784923282447959631638705064657122304803599394237998277653664376455828571683427909427929810081809274820476585764089611684446243902622669439768510749628755811447129371919001511271267025557613353069771753630814028997041513446603445904386175194564575384914622997156618895306925202600409257235107137861413575508867596726291355925087231960288879465999608770267329151602212896545790778210373939319404539952558369463380175028960566036789346127578717969684904845020021888235578658526791535720872982365473861243587315951190172176344818117344754698144793094511761738739143389552156519673003936442044873630861733440146076930594172969634141607280544739687362791942822138682844869190702167349950122088108575483971030545783674269443982620132414882925205005490200408579242864332094439322062198592139764878762190176152720731361251677883673934647850227889180949122472944223386731974457215419424008605273969729567757955357180772288705293730097207456076955820319688876799664057321010005707289183208128195133455759090271137571403824603024250351262234841396230208370047020782924364958112049305225848428605238801716987533644706477568851273493822236995028392454060351572686287898472723743811999129202962899237598650673753062870357138475064851551005017859253225836758428686771351760111786575393568878189651897077564993612302565420263657212826764825405324105719807490995158032424425582533781869413528202025635810675854683044429665494438596447477107594742361013298949315441188106386880078078954156561015013528489251764348417166679116530978351560708256833007519330115521918356108522259174939936001614246499406441595900571020218313697244254976249559695809419475588129699015032832953002745004077238062542953993151445638180460271007145226223081888977796575204897035757537553587751630026256399758536407297721206824947304154107181624594278063359983855009320558104585204890527042606248601435267235274830475694558402626545779477966709914337239373765250046127295040626572764423922645945048321388725027186019645051299549323730530023246182180769950419188898442671111512853732063366267284697036794038410989174178126685697528876390308100406807159876327729440104216100157265207702172283040933043595175505508406915115572977613279138861699086702578172716923971428831788429303803588735997315189646112846235440931136689294667078649942666426957867913988749289237369565786905151093228974590269262176164368075683231048227628353892555488040976168529922352004174402416581579917894175204518613131718267265874507088336105122150051830588034470619681735434552004675858716009635230286050471209266117212980784654477791159487760876246138423092332078317794360310561766343476828380999152060543879569547415098038108336158923278207979057100231441661646192088965610680154387285799832202167061187811876883714496305632317393880720826261272239260067345741386846990328844502165556868328326065976733356641535006420973853222891900426444995325864470668801398186664896797317231654708427675794273084352781499744283534796036570164346211937378822299689037183598062955951375563834904348860348579220751188378611951312928389027488082759741100936286151673388625034644455654541797088504523724510711691154120494665691189476099064917326751603831235709768601626272340712622580751889814557405903636171935144978214661482762035439243466968852882634911378325210384888673938643281598503479582862807226307242648439975418345527972034673700332533444312017600987130261452215421419014121488440441664255234653847483458809909279370918908361149917206300714356948567750667013323415046572180525831166613965515787853842251666863965311824806452357956454555484508046795231311636605696589550347506175490376008504689668818502156290745820643921888016608011477391382766221897953690694494657765745914910711470096989986691659836335593056732240858822340350031804031624976917482539470552938047617332957074350398719930540379392076375417855926087466084524727489513678212955746732893308538371909089355097193895934174299607265051736537183456848948308194990313730194997035656552163606384072002281305946920813183729233011821732251302205347528400484508888853810092551238441237186472579831956962370205691382477452978528955714920057625093460492097730889319219145679759616883325243887277815682853164086667727997008214818720703229104030197238407891690108586208212982309897702844522327141395654663850075399367818311131251111824202202228568343060520175387167470090107140279836146585031373627016445954342898492794705224200725539864302028632738959290627622797000203692814396639894872544283945234275665327710482565599786258195087657245874398052770354994617744361096845219945514532114649658647420475719282444955817334792768720895379691608783662696957365801262072907275142249838483595910184069936517279102649478871244431607025501800251798663272014683845800320873679032087473060588700616647309670581937480758402516305312202022808771227983045647727787871452902890095850133229679192715965287152049398554450398730790236235105217209812776323175709125495250384791372509809432341755455114099020760215033156641731198015634120857161031087752278287810709533274094447376728311112404749154906620557768160194382186264709977615989166862988139447861245916772338923496555846047864600349280953071494737151743219119975281777877406171140520542423552237217361829558409135055642947830948269424534565512300586240870816307275154014234624940155695867189651944261534065240319135350414219438954243412557765810211004340150630452598575450383443811189649800821241038280206337863064940952961250755820384749731474173297345812523711228074001793258339641863062748797626328586979604555486394293053654811953733004176823959400416930682167362062101001995982967395233328855296738499803157008627244686784335135029266680771523109160251863148972254784701011765562018769207231755428060185696284619270392845723126215169653042204233944981126830036597898282323785186952088336433336829136384864702295249857111143083187323894518637446063094757452500993785342646643677943081998662653020060771283136043101329090275673464700372418198994070679738092181546044821147178998067706983313761614581318306984138486415378711552126200794038174053276810885190937514555656079082508973452436381417753243889403616968736209717347028282104666224689645783096791883391819850165250405691238682800162260262402705909777810842423851883988215739766284627160978996875858962474210039916955115052255851653636719994979859718384618584402871923351087653673579973906733257956423732895540259311123352469389179444648722943574647787413030856521594171509167563909710633315899989146472796560386582862375000430062448460839351071825019657905063735676017830829188083701646769862363957566942531447253118346802996037937055718146098143314072573889082852247801440905436665871195766689802470381698048464301286996751330333519620616051107268954018837685417850553284646822493261693766829768088630691980175781680714262415118323875113782816078695303739093703426062719204823632653628965113827687629751345685210281582231390265728657207880117521371884476859759377400486499517638777469721253112376169913426806060930002982337875616261911625460099682132612693857681508747658216471661449874046852721383569537403356803725880944039091351300025581727581690288325021854727096869631779424621257911239385586081312216625759025529959248343409364454766686071419611719708327164367983328888067018475545037150430944816185940290838554726924142465933556327312085790778320746858902654809358651355199111264904201359099692849342815558965799042045957643119171625190677060882837262851738251342073011988499196275377985266213712970185187524367380357929711864686861449203193106887959336005967271866273661915517640455700435746033592450243336822645947062181840824835335705508003643537071071038528264610661615591514851642301652835965388703712630658001339290044224478497802180383159204036795337281572113469948940513321918325613079318244001329984643198114158865246620614901237991836961388786711487352859455306616597175151127169878206147435093449638562118024626083412632925557381008348577567275710175676696440437904944047038329639758110557938126552046807147166437596901170537657724351896654659573777265513506148040548128243521308000845095878118328552219710975912728152964351007333144584640453948486031570494183878100239156445910632064774584779372140819663719030011779554258613293045483694194635957011282326380795199783315755590017766729347162972639985038992385564465181059297189873526966127937021764507634308939751544999865412083717735262698722876871602534130126380994128125031080580092152470350952645269898835351589220333183172215870714391990841340748926096847143327220696216928865389602793193159360189098992420678873108681345191711435674652765855476215240505542765624273145914793700611533240110213332618293052759844175805944077560460263572590699056789003661654663530178551022792286461756150665354386392612172164274644818827755540356875102202134106243757788222176619668591498809533728999038376292700720131412737383501795052447957635711812090446800670065662492897129947695203776400006365591353837221504722976340552714395827690501553972345464821219708114156337107323181556988140542938511014901465023247018364953697254902013771058549120533896169007315068704174393904434305595621742973442808945012220884785998982488536814309614707414613540425546860646783302091589617687613065832189727079496084138454420579677926620939224000302577356726093328289084832256656722511630429316766477962101979141553325782928325405692476238643899760834724101657829775578800075795770637871925571970730125365415704278702758924650561583163306740100486459197699396790026527999662340117749529180496444140061370610990055448957456664065757870783205679450072013844908764327599765095010032971172807478196577640114027755298077643342471244013653882482172415261148059525808130713696416290383106194986801914917666420309485969357695989367925747965837776721140135097414690228134205967551247409323818956975844752159276821363521595667623940236872430706570590476855377574244396150605248904843296247529985794189423190498515160391352640652291800379297179835433639950548523403667851001815275036906290990008387951466607434027380461583222601689940545154258807676943862973014110719158095732677743473039538014936138288278758493028524011915734366836574555139297434819139690594860380868883381475210274064042663680256784348535604186946135866937612215848117201601695662975658428772638127717774001834462520469403268097910903540690374863638820245843586783713718187795479422616190915482550770614050289666339069940764086078794385470061397933215711842898826280087924991026609505115340072859255784970210171748728583870570250737036582873754748158153000630844179340584896389881621499823154233717062055407930019094145446537267680248987606647788472453114145406276262554601442298331360977021773900299153813286079202593581027818705534141152370483307272719648388011138982884186253125519474291124856593875089101558029036767083414387201405399526040421231056145804176862725408252166401567365236284920117194709375621382154523675058177048401397403695632551970272306599541549851406192730173599067067844200690649979520639875819419110320108227478415391079807600076093897554760380880609732784416489105702501276176111336543168611123236687863483024391607530083529129132225306196211188967712802540020471889232760906420801914155598760337959480255928998948981092503047106685926703716983998649381360857955322240647400034785529350810738544928648261428028762767993272841281947707755414468360269795554215606954384205445779471693168466685028065055625629527208826646650436727466007428765947438008172033075735667979781322091808729179273978305153637673030384785277442933149875729070574465087351824253509198229537656612426674141208958701200833216086437203449966981772240119260224679908928341642596258667745181658399589554576773367352337179853507302960367030535114453918577510269212584644810908082967174329518735662503915179583738850453693808972526249472096255250966138799419320363247125910924544823406035901379822491931966345291998348699614700410515994631787127322993246576749292217407863572741518854761921676183318808511512324322437022149661808652966765134701811175100321840190559926275254036007901578506369103810722457218061606734843294937405068694196403491142720602255152817182281691115493446910243857583240904980314627308245689261785931825170743559246169100323319322837103805295516951301038006378438335484335322020056391246909269172196428995499464214191155070391250335180668258129398695901355509965186570978774207436682792155766853420145446461951537429638230301282588535115429423173914213342481232060232000529394137960906561659593897369714892833724074299886416135824512637826240299648535823133263758087463685190165040785317722578958742338219548196473374838617932837531274037470403816065131865172697954638137157353965702649800667358847185123332990144796036616962109868836628370442075202685026358308620698086462386891863908486993666113388122383699282850040975724487299222423699449689294962644663975194608369631224544161847945423955134812432574323293444877920137791902733447407121020217521677920117782199863560197004028684354686384402969141664385174585263142038665508108910751607503537926169023330912791176658385502245207219348536609258245623958419205031841247474193981548292075530080862011161005851537183229498421926859212921226091922120979449845121229227781600279492555008470055136648452028064877120553422958140250189220886848672586627138470505497450040417759540440949271154021575314809649444450988178949052242437461681648048050402976892189331425459131373644978684868712466883356013525787070484120525926751347144848290760661196778160102031303666374151358217712065661607423335533839871905919438575831589951657800617575449069473114635939998306534958058953436568097925684660273183982118390376700652427047003134333925155816898482173018797081664097657196933161431839455415745847167882928227308807624939394192197133805522841530927783257216252804775001995762860228228849599456373672188844641949496101536463594560826708812567094126068342546709151201917086159057649198962208533760132943103705207506087701338668991044165105380799129408428563013972931350879723476434657582863341905896868365189675934378609421009279654256238705094862220694613245032586312663156903619366360739050744778578683995238969222962685735914125943049105464362460763459275514802230122136333536669853763594028690865479399732957550068904348338971728736186287082837830628184197487761388988632790047365024121989336532786832117661770888913064231247403541897389974551027073206355124817114746033617882634425572424936163204012018004989591072062712350793273048909875467410016626158844444997540664077402637007175461103476036854221576509269812786028569623054131004907651515302442830337908187780262575415309916691106715565889014215191611626599625693528461565043566053237258654233563826482071963309852662682903248465348459864549005777233053443926548733220844124409859907032906183312556050914735610002123624826057689569668835660692133804341679563935766395042809501588055045777648596146557638335481368391148692422301924241637588045987366380185054609760604366547924058770055183729949442555331794451437216505779655175793149987638831674258354033339094280512917105614257377173581740430913131022818807609244040598791521196909458224363874889611472423761051304001234691162132370926361492000556117523597944230321901843295745441856111565612100827219051182714316321330905080283757668314039800249894517402587440126259081349053924138787431560517722319332437116586546788452532264476533254794750662075423876107677271982450366300252789733088369080789134712147176612692025583292257841224618121601799028886505972357158477410755895225104769199867619668012488235821982019550660490425630510519134759292865478873677753800332479418714882194794230707462791602125874458007374954556122639160425543468813042840496286994370725856882214082170732802296699841419306443108157240517319341100392850016211362415770288852044949122121886925261733264016922257036622283096256313462684903815114480990185276870508660700593817885094987060467994855568578216419765441191131025539691453993542923646817210610377885187744859627540185071686905238953022402886160507855195206828827187796693291061280191763587852295532022620252534620237125312825530938141492957678561796601639464420937611832603913953685823831205406439427978818044605950782263143300362446242483325756008541248815399125334950943100444698627832766501111364269701652885124259329060283878921032690006208102445995613728384345799751300449422846460235658971163131809008863420937341845335921704705206736634573661767925802510087610237898501371599797439456131236950531428946482111663422040251200788625564450044270654111569103504754163310109091196104568090186388261311435328524328647693885137021335827868275143780591292920898101489718204249735389390277305905987921661233800996289250111239536381736793836240799211362507528553444671755504961649665895765799470216602268936016526097988440099922030108767679997465440224623452058685198302641658668830168018984336013465229467200222357198849640327341484597463590551972541891577294014214118920035938207906556978555853433156316441001749128258578685776938792302455942810840724450898213369657388834749911749652403087569646160265221553684655301120547006496790078282082947914195887174641019147934580095708263859332509540899794441138067933992413035390975545596282765601291330032592522031450182936129253476980078458443333114753920179287966323078351698121693719228053529628599004200399835147665285511606280834854903980576698269809598360100033924569205540439541450710300961173660361043265220525140603038400213631669594247641503298394682471745015497978399379263044840305369891572394417432815318750915152051281378186654856305061427622203556610572290694053509451661816080888693564812951443699837171773701878476443592461203338891354678440549689476354689769240101288994222391874109501437442232328296265516771200094742417963602668793729139453204770966738199020856933667242997879204148924750366798077019729538524696262575269207028864432828275929701543452322401404259685638462880570594326621810804256808063670582783444992678987365284497280268166012603184807505379895476961247110622170809722761242705902993339527972193990166923707982367050473793267397739180534784842186197881389745329481878657521568666370912877074237643642175615258483029300020117508308662491838790106358329087765054956372062884791119609142698561404790923759750807545395393017291437309223689279034412597602604036801413464714371518772875983456153773877306106730238660362091253421575085435913054017012080914917276563173342820748704764255995209757074059061247955065787671734729842111742773169852775380912645013785173930441593942157867321878870942298633897891847935087140260602761646070377398835122322420790504817381113782796976242538391557065503240470178050037795392077104548072844562793274721197143934141301495431886103689858988028832681366487342578504510709439866691312400117302816404678577782153098046576225064875334619422099759709712906782305771013990386136902596689778462521744197344929672984826087072022483409650106951432504055579690151161517861977317701239508242650025826023974519895796634594854906346753032210362683506779317278773454060628027769997694344184488197081251336062875112180336104795673640365178606229006485558075009520485250435450461417506413309472468632087053505314306473658108513827024203151524394016293760352559246890668717319783387508033481996849770423825499861553643471638165315131323114688141374423988530454075140635707435775204758417236793762075453939101262696473103815142030928468984221373013240520999614946874734112460738605143038233377942381044491699324511979188463685872646109422666995998586928203972751869514247742385938514306341827522007817948425138316106801794597921591354744356062171774268988352772911554988632959096731606877864048605585300066790965535115267701900162645175130831559025216696377443591481538885161216902103563336584188064509039323006409473515155171673554522525981813970967901045079889559653220698602803131730450209332309575018692420468197836758212142489997316354831260965561033022212996497826373663493644031150796330055581024479299850318276253277726542774927463990903566473712458471881263180013548154993124811387584941634232803692400285450973041989587475220114333057643263646777976553208303855578215201204880810714205445888078681856633907396029738712913890558263795568186963771136899204108892006845269532823459415091421594955515161867924243612448725077011567053043747988499827721786967869070444553763964510156803126080578613662286027916922845991506161867225832219827946880131477515510413003210520278026338916276497233353910144775986341580826973453128141307096176970165099338166668269738587336149307278697031716490641939960906038477999280470660693056283370066150876568659082312463390773776330102867278178748368196582409729406066603891897812701528886035854325232248979928592262029433883121808944053318688150291871849673853659459491873020830276485955310204800862600875571770062281598485743959592449099094026490849055596037590775887222712108053655760604834412349302979606677668851895270357525475168551702408373547765825576359698763723531587139503510235169112937464697964490806014649928571211167073762449466158052429003113836204571414776802200116517096275315550672446985383296399308812737274810124449611833041500870018864673017768855639634188556534307212783181526680310907278414156894614989810931456433482860240208335155701594935088160331244996666355273152120903762072330113758301619479849724886652244412535551099661128715005014218654096130666698147177135541614410231428390085974789842545360776294703642786788570076480608066848397339135373359883015765032464384305688086442416569648809636864297819743509386541172956191268476527230492474736676670655736278308909136083183055734981765535156747183907584113824094955047839988709704437237506234692638103544794019046649422225665993836407579028193514844516473554225526081619078675850853677834554163482261561436357694240697179690478222378260600200638280621201115228466119984548351670144970597690551671920087091581070863485563509820683894896469244714657359874089879397858283999925628892403719103231261624901065387284562763895475214075919025357746831438525782849051989405441081070386812773732047208334801845142326619922079280193725874582049905819638767903151558505251740936031726733868316343284277012534505636793450134730282137308957785836437334427954497777730385236976519374972594994722972352324488242168510335654235425422230328033259772590852860615239679447235075357716768006542548340754530452084891408893063385953274274900340574748472407737942796309114471533482983281022551774568258445965484570289328399903893202072539473716544166782398210995200050465296188013570692201096338352188048457901118462540366222451667804975550580519819673850627941066730698131470917666679234738531452818449121282920594337293421610597689642935116289503334218950752919747519697818608078083989069505568411221738536180678143581584263161351822111936907506795592338431333721102748544493503180165674146178001660636454487434656496812466090754752941033430393531771498248094124702961848258159408856924664408407153567085202278897184626740434842587245356164086963260780092708976622740415410255921499786533286441853438083177871729636713017103967783969317736717398408585605092535896771110680887763291557313059231796226780372079826378285922727844556044596634775315857822446882201038037141371435282720820749674423878830414325110725649112568360312969236731320370020242961924324819074523770944726766913199956594962032830517351060724794498067413657705757489914088078160919267067628022743705330187379287453142723181565074190103924977041299559988735623702561540704353038765985157599063820253356111774663705036018719699539007754009781537701495540420303394274947748629111073502808938904747840309639042479844235275596467215575366459460477853300378754837693582716396106384729829868516116196634962145165637815732636070709530493097370708799723506218548606558815134505640843778213480295843276213048497289117068517481110351663594083880416355875951409978196354183529521816206498051540868384985977364634376461734177323491960046502603809672798660643935555016218549219333392623834445120525861599434365521202312589339994650423330781732069028354891856992713482559658186880243310759338119021116009566116617642874969692809759948073607678575344761591564397331967683048259524835787793758173519964404821852813219363547884040483842611770673909353228172487662038006996827279702514247484625509263409530990123486108611310311647199068531290085114678182384361758078859107489719219902581608638866075733494058561550246197088080766384788850915833147741030812389741941566465999432042675775498138712444153316925168264068215810942467111275433457350885889038148197076176013357398198401966377684807910215692684736422235292952817442294465554015013530527057288433391249575293448111219621357358613493138350484994530219969208298841463311423239287338473799680246154153620947553392124621801750462740559134743858575993171607622554022479606737898811740388988007299334323010995009365824489497310142977849134555503928301178479391572862486242435113148399785083907994659023139718472124433298292951422185268899819866126018596979192435580175149584095534244037088856032221622138857293811103569047475955984382856603929424077673537191514582487300098138423249651615245829776214662854162543139485175041713218166189758068626340860415120178968104600687027124038453671074693102248468753151469850895781518035188673502023098399409573416504770827133191229029131590703107118863725097525775088302682903726258470048215639775202281614574450800402762398178018211859452337296910988864585098231971373735201286569684742773823139574196024631920352226355105219112739599959548777806835691846449334696571498794929298299256586889899374360514487899308133358976231075698081757292939708830237856372858685956168879533460802583247706319783733635817227278798192257247885566620742400330882750200442431083600819286699973182466000105218530737551112250562307362348217825046659040247710023356794654038337188828647949104145637255238003522709709943875340132745532251667092181666705379840149333495367896587474316212169991788011705457863257290142338482165752287979212268713015102020970389570498541851531706806756947769117910462309869373941230017287000714203800960330786459338652069012389666189593519920581989583860556423056172417732040058776024545352179963034919310841652234548731085553602825967836829832744166810013986181974722403671870380861103674729078914508127957992422661340733514402087292753555848356732776317003298286723641090292299209524670808482619218351395049456925745810116806934288898663745599381257621583886806743513161174628425841645956045152247310992614866050783470534487232816777376822239678147913279055519785820578181597823569001992170595332047082651897794563677497061700983064362923914629137564277317250907784832842773799386070236900181268813805899912735508284947403977762504801319666744494936463185925076589328239278661985329214334173875946960412797278641592480848178518044560359336767750437730543335094619062662811443928093015333708640432462716326749155911730979649674174549718258305438782113189188867160910524696764783556304661044980952122454787206677323367012006966741257266304444730242853710047419690061303190536426475856303594863662230431980284546377761678486810486429971692999370175338161393069288321058367144450211067045386598263558277218587989917579934747676711276593918491799814793725950278017123812003340689518701468369759343864849894806602348811578386128859690850951204651228319061728645339057530196008189976339406321728889078579440713283121526073652778400263162828831570705650340750870033554237593695993979254678408885301679470649840849369861978399878581675430443360982870850150251199573010301753195860075916665496790543956174890511436822992316377571955066260063858587632042283599051338177464802174434686424831747336140086399335683669477412969953963136806046030543418997822147428255446812800680196989403506261986474527769121398168400313012949472531294040447575815664902289446364040818844087081574054430970731460302484707099484798673994546152837722879178241230136894460922779444957362581027750285334974304100127775881835146397607824143828192417372573423278071533671020260804018292979860554493257474317455904125846344994452189587762951075294641097201511386982184138560895236281928880092135768566985314104518644636134286130007089365708591822031890416693254737073490089706170791673935580737404796538553829822143707193909188166412085160127348434937293770801448348479728953493436417605520002726874605500673031338852963396581275668114545199871229135907462089636343217078548843841105004961315133096554975320615136976564311682982477911833346036283382508310408556062182574503486376597506300552884577779762510864866097295175659802432490062275429037969683564925986316928638982781026194665621312730157308221842406972408889887023493250200240670312811500462287230857543505003648571017558721545536750249377617131235847951779510838048783412115466282460023179472023199819067018777650872248245323164361248524188829332869991392423021445057848000371678471435011321555538604146839545987159844202181435140998595187311775675114180412782367075214799028977155073413324177282442031587520680132396299743936901512797160341428673583135631085699634751442461624035916811455198749106807510656705601810235340191313348486721544975774310174068538845122828814660713642945791293960522286601327455507388193254871903502164822532501465117016961009795094186818213478453802667026879676103224809778628104397539604799945192049952789741936584115413599062724689749973391053573584572238107957706442499437506390964184373993254818228085831969403256265395227887372986243539189944834561739143224378885936814198767987803612299577218500543869779944683953564708967306968022718068012510593711606964424163830530714384509718877230635021233569048883697030618082117467280298628008920215056614840870639058822177849657215326561236788853094650953100933319722789974098269220514299684125846621498334235160044997001034427282482372340342817331878166806360347868547489348627295643624988908288475475655527771257757208916162076648666319058862875946669023234684582384758231458089836234271379948110855839387961525382439927423213112735617864719672559221724318054812617480977355924331590632520009031897792728603748248714372447700937777788521947554723030566939898719548391108990626689319682466032795420832005196660871072287795397630077333001848122037783507702514528248657825212386157954184968033784979325716030108958266809536138418178793313845849615593345433696575791250307786471039817944385652325325385608811642752042483461396522142659272720131443329926812646977969449234851569563344027252706856939535918275886822960619682378075589563855814675121584802367965299544982098047073453867109713872489291956978180560826994930472148197831785351422592873526917178995654478239714267532690291130609032252366550394419427111423955391951460502167508822931536636830449724022049549060445298358481678826870965816101440482323877299419907190398991888820965541517239251371912447381632776879365685227473429156273764637845553025621299875195028262378404932684841460142279136398599329265207888767494615038533359890959847436573227504041095288444539218840557593325595933035512014131979186343064111311848175109222023952964231087722088672584900963132245398214216115584379045934451855319206724367752706481084255129817216005475424924515180875894128247454448143962982803200034535086293261881951995161335557756015442046198288226289371071770010714659579859580117733031659961072020077484506806410042166701167060601383185527293481191710871827847092492951570765570223974429992811473752934219050759946328673395452043733962093145480744656364640081532884867950330126973795049409025734816113321550413495364936453965812676372236198846288012522401817637507539261741144416932033069083021209161274016996298309612565166070468195467441403288244756298614641507435524055481249900377203631994936304351116576203270689604658600931216425195584339867082892959498791104262911720408031361015243110472535339138009141048406939071330147108713454293123450852439119426890097582486517560623768421731562543383657416081605542127803012286056351693953098884075839463318847168412008049815914737878951776984405937992502032898426988418527154923610919289962706157175185798930579407323007841184849243625600774529213952318815617885746506227944440895987944434176729769435966368721847560247996368456715284878234387477705902804235540544141731994135733736816203094009872743225976332495650954302045849538006263313636271251264303463403179632673064164338791334199328391562978818771667255075159346269126828340149727132865805532035507319526242668058603917922793306742572657251878577590880902069879884257103715816482760699889552693919852651964421063707274323726856069932965099946657821937385958521191136854313994921498716889418485551833801990446556405825847298540189330354835630936781871302330865111281482892982999285510159649623533681104569383005136104793734913077590073288787582941641966324974563190681867402980133919840032275468160629471300580736449500321873659051558216872557228920817768903066585579054488340742088559389515362236650783962537357538656393695175799107341627211529337427478590206056436825601812923991917190434182766218553969573707163321470586682015009236829588885755755093222084339103882167837996781060075559126769542775410350425678678284435749684087921662581312435413087296288396707030550216515489536774415530864023054555323588812253740836437677971421806610500716016456731834017474716559770803229240725275418851582202020002533367267308647678159212470655907392252030895107591659028391709457088064491325417643241114216122414579208383111635447426071181732460152784649305279484168955981094343528598581065466687827580244697893463872623132116832518063125300359531387518890865491802736477029829445840050333327321633589239658683762324141875156267829020912662591712730986179286065832239535892821534371090637568525410705746309798910881728375301256043982386307179484002591388508733742789299741341045584166309452275054417846295481618190096171473751430788677096340696418759492909418820002903142049835242691416755925508155240039712369692799118804228559675574366417367097022370756371435087520888738771226391451656257244282320799913971781829759407013631195617795838394049875185205878424574798526516070878404699158034105090207609073687070802461874654956662534101966023140283088630983312088785322132323856872280653643738907837938205158351035357778709047031463255583533917264019029864115112956756370532543306475259889785691421294830343847632828880497997276803415579115577946914496157463144695036824326219585038949699357362134665255907840221401843594709629894501040976941378273694620760122594439187270180253590336637950346991711765463130603606479356498005551516460445169501084113673789201849353875029724201402888717910022707461481427550019892392396112956769278000779181685130993672621796502039769494680331210175717545850580341359450656459150890288494472406180570310427269575458492049838901841776294343328841760236331791874213653726772666296424339635438403305514028430881615127842794603440006003442203339987380202943015806913275340968848213063357332216146456265223398873092165764788415470644961003061865375307134392211019936931549168694140422515067205773168019464463114237893819656672577052536486704270460126703047515048599619212142331768308273172053600693209938491903690897781319027207574772792906641351528667050262934503674159231011600709250904053637701317159280474323953721488844782178290527580325142379160935273410686386743364773818983086355540846463797082276042715327739465240486438086027580504497729333219669255868532111110017755433152269525122807007076299327603828525162963403247130820023092760688275385592283359022594292282313790392900272787021490841270361655115394060803304307087315389946848466275216156882321046899174031710932736191306133092871633030458734495546397495869472776723990154762625239984117822121146014807559699150415563790740597412555066257707424465218424632412446831140987155234210376090644626603094235951436588289783240240840758970920039919714983204830715107638857206599614400092826074736938447549897712191702998855938325233709053748873709799961313621791561644957624442199387896350613679629145479479845325697636122020120437103423335897485493438042967889601451651710225670575652120501760259752942434058558741700340587993627980697856982899887648557311602686339336674449614543536217006210142667188900741743819590068010766100469409915580675050424560166602072221922477814244470083905893304618179508921452443346835853262516006664657727602069419337987569176158937890352966588060015208063269102003165849869411978498141258932168569422614651218673860302890334715534446683897086951628443361015542347216822694376135970339749807424879528308028861380161634724090328069569250510563332176829316665023162138175881027039488769629363224311708410624263248281478161895523890318465320049956713074334126308075359000121382624312013580626249673967662558623287544731920205649613900307930866025065488278682436486240008661572550925141850069701395702890735355438783372950638823853594527731278379510786544385234606748514564362205014038169511395426380731873373106494700296380896425842477379680794747512053404951540961648534764392917624006568580651440446421646608339252290262840964768898986341338555024012461518887582874860851367916223626056383659344239259724067012732097798059126253705302575867909282541580338433659053720372577349953287372010434032510753408922306429011446197210726638710690731222290829192956327573268204551360424160347736207750787726696141725696933262159898036427879181645342081824461464669924573191172412169781781487072794441597738555785906218029509405654363706069974525460122778354798214175282259890701514616371855055808608253992848388325242731176107066288577503877780538728857273723240708852091032395898767551003490979602553762925185704642303272203003956171023615387953094294715213257481978220001075219955709376364328099726730386769838304250900195692673878782709881894634905856796868524898380799793367902069829924219695431074533145036999183062190140051968078613207617521835669821210085999369048352441232557114605559034116411942601011394339045659193829387555199081468889486763061711496478748989811891824794930093616741274012388521493320059407920037649785946121810766668898550267065839768525013507017594481040925922329331331683059246685720183069285803088181254476647294162688952685251958257049494274632616547533545462254162070622616744881141174130067273768768861359576862294017805112390545652094430518720028275179455698563047528890010175417022605184448550880842346352596964967976533542730277124518188406736900315460412284654184814741962159031187674163051592585018980859068940590864918185186621819004765413729572835247232697447249612332495853955134160283191361699724391832634315114069272080917914552615234975094440790905326861112641509771965835747535558249226946356044402894519009825414884815273380748719124651827079465728138967278158109536632588491427150419757035846164308917555568950812983693968993510948071764186957733104896467962936161862038735403588487331325617867479832081624397473294064201812140314616666503434292158435341989207572457603713244444413463912650638002409772441344689913024865218216504416480973693052535896145285731303879765927654539489367693511881969271862256518912774879883832477576952904256027955472404693819516098091644113190480922260523282563986338283733805049785384359538922836241723308516058879504719752616017860257323555405336468085745798531506930267578463823783677130054188931465250899551449027729581893250771234153360337900289525009910120921546298201316638963608853531858582005319565543934773354293605251748998426465219732849561522604406367687426690187234771361263844927294871176062367124165326651696765030862159313914329708636029376298209634727486318157315991465566250974056268672555984996029435319803083647428615433887497689330450252287315546199628761158293039980305951859215255438400779317157197184718230322664501132159953368289873080196585027611018810643423170662071099777044835258490628581590955014310571524996147801244989935255262910315755202879386961942876402697022880941758795768027623809622954357723651451238288859106394790496702841635303738679829659377193673618095288117719426566859444342240407389419097803413632649448821462254737614138622149890222529921854800889361343265644323088107754544834199214791634896777927176615430331321933669535395937463217237013263076279695743776018007251832596477505226866587569135789837871183874708226475262215235100617110337457267297326217031108763137824802306885574633509327053337264475819548044062635339803877950154425609856177755291820876961792616282949940485491048920160846857936885630756702940824722037546481940328997461176112001237081723170949182415101616396271562586751773671916738617072666772304175388130973613257132462366148723441071737625310855711720428334744568186621639956607594636308988222481747928488957613095523428579874504449503539690652597696793291779265575751172341521014011982776343533458512396729647516877391515222208108018815394764544447880326787622821480813054594243244579871365883368494615676318685616001453484509077617594949234918999858829209425696073598307508969400462869792879435612999324178262226797223785598161679288168925067072115265477306930618076068395031405583779988258831189156097183716685924445993498303716949507614047408360503682179828566884344565790181795204364410233482858906797008127861402694278003434321568296291901213936372305151820873501412220229973223464642947838860864248439547442995173501443424998043944597709158047164868120706060981519569646991883022243301709425641346926098748012444535809127014466680169223102116079663400800620922907933800485090333260381101698927369439251944693528357847842282408473896817676530365949189456701784576603194016681978020058991789636244387710867179223253180246987889378928015106341608731108090609474797045139737902444672938649902392397977185953241035748507863407445508449433563054698332176056149674991224518537224934075056080523388061091030417478083611203206805529762893880030509785911536963537594705826175253858895767073817225750811396807327204683416315609028957692722725330796141325118173862657711655257446734953288902617708479603472879506194691800077137200966291545190048003662598045287517784896828835268507520560906013116175449070489035285749826182973216729777032188536773592937936621700548574703359931070265847022813298652455098202132429668408451618655594043896202315459650499327871267802646033665683263286284650754294233924039270964981193161806282145678711964120158976311868688257887472144455100921043820902399112192409354341868354724490776961531012679974975539223414151083131244039021617690558576669337029081716557148969353151913606411197128639957110274345884985733061046415585772701895487139664367677936331087629127068961786190551988528432816758312418222009942783313038090580164128732276718989161080249686528079830045320042548161475653031754572450065230163604663526118100371705428182851524411378576235028037339293423499726619965998624592477098403643061786981756700921454917605146971169512920662339554162495950776844985680500304933775911328365975909943108500640343221297898238132269517990384939450403419943328787462425135324306210983915881373120692576249318600220783916658458865353226889987164445703795845229579934539057599697549814160731906218300625859297886060660926615771793591544648535454848267949304506603747803521003761462947671255477763904681232723245340939118725843037936639779130223057533792605560623068679769659306604808287656545502455876792821129994594100419965742018855542787613857054188189329405797339581356984360151590821013079558052360342838810152653377110705173954249089047606196746537949986515018674315009588874720984913041578022769920613336864704924430296919375020712442208373522221747644590113203597029854252149314212085141900570150729582693560294292344537945403548515430183496270361853537716242614045711188272337631694479124536643640920176270312062169058404959073612124268597838763157174246877474418216411087905830034055199617941172379497782115693507421622072268336273245492795754572058706353276125580861201348053258903677554211969244986336252246898342880495243995912543098884706725298346618945106559124387548648783957240708540483908883708213955699209969293279674712473218131436956167598576031394180625938368444740653441753810500697742410973130105918400698648412258480297042853107941718675147845157349014830798424776188262321408227105608205217144122861345547414552441894727930220141602401341582349250545170585184439900783667433188687387755011831550665334824287008709381856825645921070326451835076456794523656734226182207077925478453700607076201628965300893785874610345384862433218958241908774090851967642851054208071961261716919633615037806418391822322311817036525824341214100946928366216080114571735429664947387432548859074065697140345097652772191051072036638390825692953326047900435273254174861144200007776228369270846168711566727818746706028831047377136178569994735835289415999986951939632990693781118024239277092085223886298646387376801898170616961177949464733234074985143294018501847595868796726436802882418045792086821645754873163681580185112167032971268404373232949803832648400103474339091440913164663368718376359435884936693901358347942376919482828177532104093472785148270825387063987698209160190819724853233289464442806119995647101048213468942676842634269451209688087569072020177066943608464623153344523307688938461427086458580609540549358739926450518921117176540903187680994791033231348802812935881489365922733395214465490942144199695144265191668128624178043938162335713707661344008868717951910745099186196153024369809548233455264085634191833893545739957352615171345230686562586201212962612564780985760736911920010064136860778883779665915964881905733804260234124998424815117556569241665813780132837809075734173247343678129283715354157313761669884009818433252965641127054837517211729480153709298417465029521949771568668651174879999700725845824100919079004791944901338286940479375167174070299202618035863662015844921294060421331502945583467240705272522844307612462240325185942044829595963623913729358160241793322241293637954633249459649144259218692648173160972330644539068724276047097115011446064550140324544803441662517949968460784918214966339848960420286556278053913924428276767556477355205254117008751644280286522703617049162527097239000570628135895132606954755751204863442281859167271907279476275863523329774821465849990336891357187807711606858767301429819869266057323471883500182384893279045947644741502272903663603687633333753786822883512156505237166225292091406506397385445520848939040891835510394652071557241794207929093585152112607681501493774225300613824525190774971545642864375319683064887744683441287923397504977696984420855826585675706804462868445320332511469006789800708374433834266831110201850966513945796174242293912269565188728734758251265228104191507562913557493414432335894358800127793392115195540043258213813897855899234248976360222543354068402069382227125518019094795379273896962246493600426441545962653197030913205547661638889076281073661942481698199560035759879595534152144395188577480943509418964182916797456786842202434448920225984618849409639333943295616952381068696224758744902000680653538286400462198846853014411533275301232125171522474523423204770737777620624985098999096573729793218795247642907041582212734092506638463798135326096221423015278231692407684872976783248668071001802266822776193601676143775209854585572429033835466714434345874527992354616007100208815486390460006525963936889267895219672205195759488540871112806006822103491064008505377906651951860438559919544181695730210848993997829028266189337917580334231538870606922111268708875155102858771060712199757519463573533002963872048319442248298400006450321213687508355991034372105755793455780650453098707719700808244433341628429918127006448238468993827909073948139913901500603344109141789326183184599098426467963572156271643325926122088945958571945056422064563160369332670215532286120200100854398744781191141357648494604087613654410222883913932561321202972800669759786563804382832247796408292921939508572316359981049865644922739230223057084507538345621262733818561929750147083291676951967278074216842126415749595754958167613103975527501338250899110703747231950273583266449659533984451730150423293474034730282167226691715020028069557870353907183196784795342434270010231876724664793530773477717537137770501401522347253085717524746731096356846590779688514411781912170602861344220977611211742376941985730164827914055644829010069120246788976084738406462719833256576111750411308916590830327030218070287555753348288036976105153981112250297118285025798395847043150126186395330554337006317297967170484400078668836255253668261765012573302449872226693259492179192667718125390020639006519005999482438845640234076910570876131746999697531630947146220513474744121551902642691338731098837522723595601700796960336570960794559946295887867731557270977163657777519221995269907272626922435829191930548238979181211275268921447331747525381435492829940305166715817168435528452682960545873297173444740845272448051074624328819994955172462514909951307980615217038754091574192652009602597842653710124341497513296420846751999125603037762362849871801580929481563265123737127679291056970126340041408566467565539874201399172149776664490150609827930364420788386739969735535206676480659043805272890557336319926545692583906209241478091893529693510874163925977053145777410258695402911993529760205649679105394216648485724417250656038198189553111811752714159659730201806521166367631315929732401116826921982910157126017245330508502544925195254990772483735214049638732216260838724404027900662046020294181130126953787414535960856359385459791427795242901590812345150107150514339555577488197063516910908951446330153039068259454216527680713363419705620336347309954615236477824168181609659177517244518112056748130121017315184580348553332280623885229074282388173678062169617411100403607295315015891085555932032201408142733384548782552040073028918097439893681420217989827559669525428307834456347670331350311989632100725066292138776479498225708170314749080126724937644548137981187219852582394780564552573769366891810021424537050461935250315695409978049561203536070471607953520708460408046515745668197353169773827079441270223223781456676307359245439897281842862801341423297187811612487155988088238497618207900181118791281054490446663088572583786715497183233303712534547499588103892404099829275103239997200847202631224291667976163817353578808689992952623693615457992191259735160950774397608487209461054134950603173497630546630959438907742567994192075384910880388357347717204553550775588779904465138034835002114559573265916680610255688275538877618715984666893004271889307142087869297261717262074380888898382358051474074814156561333213260497300498611559109183193888816216896949285456871963281225052292788663599635723208878565351535806291653361311503397192605008777086642188279385717424664966941658515132843773494287360768387476005403971448613043512034192620250686850516637984145567373912709871011638494021232876470759732427143490965297438255754648676887064191679647073673447282923552107206890724574037403307094628432184827121164793421286473062000977727124021765669438652098288197869210284721497093985347517494820318651480953125768412298199409399680270144262747571678415249571927538083963626045355196966760505067380360996273186199802115206262743114728120316762034202017388754647209632070380020641355164126517876659941632979211630762707388264585279495310255333071013745524422248615339527077251723680158841623525356497163516132830538472216140808983643340985951886621228598071703573418168854670742468922349820091747169376781414874633272366152387256992442712018708253177333368009858744281536971615986446754038041303345899980556191987017255114111287248500069314503757407335365394587715577643859103254268684401524267931445656992659948741229887428732732878080586009514720275301170174535309378041858475191296040163612095363098313029159985120845268888264969417787425124288167723962559880829865903851319074013116415632518981554337611372243296389652939296990580936346870220969473655346546801457238944273430873786645765370593454501743553488792238557662360983675179199045701883170675353572696151599917441903228604034870678985004412719739737477695823899091774716603173779212261963726758265592883503955067859633600161702486515444299336075199694009420467312712782388024311635117290140080061337378412866884319465025380958743812921705852278002555446410168269131806887015867852585658244718795591517380162291456342534366272123063174139393907706053260827402131520121300246137967927561120393245486507291401524490668198758924525662453257715668770417645308817622739951267527757737589495320621817728574558750285391247621893511303562645574788313293301084663080340351525080798223406055606224391814255365790405620663131621948077469495391950980515446610852640618341839286846221889374772984582795872091704931116589736183568474175456469877845908552893009381835904262966717942044330744096633989237575295354211943389713652030588013109391903455447969791235129849851657985046953512288200681281661193669994359703287997004851232540086109444267261712450357820641207277990645789733801900470355265794341035482980502369992171184229590496505451112569986373340444063027509036818462170195933138693126370651053320073453440271810025253930685436151899176498831463627074755024394348933475056733846780859600455535435140948812717004922914059665710828430928825027964386124440654660231242459078485313016920559508013912966926705988825979131049072105862599853685972849808262831251579526420403203032837176376385582537912683927124577441598550882879422909734793551239358708809630508359683424448574240554548051434505863675448007388410978509592012466247970522736988409948609908360063178220946759419188472255406820658942167629741853030798947740314018992919941518504852688776645155674837115980090388726041879522819455018484898701869006175388520821605604135996592867165970277512401445741609201396720817223722861617300983067908105766201023613613369781909555471173529775564298087497616451709137976516597848133708468669270491357036986235243939104528540346788172828927264411283262954563964637992661385212897653389599157055614428942746444230926130086778670771596804350454433036229749455088147650163925822884944020886064275196300964017723428225695867588480793416239695241153468919157031351667017992479024765639567644402835800013146428006389768467705049960546497891260781895238555501091704731886575611561102558410676068347746229092641008806050529258668112851107633695062361201144310617510948757867816247491944361818470306903552213797372762813014467183229808680009354874392646100629075033020234597803180047505917932385977034560224943420894227038251752898925614942557688888438566887869050530084575563403201462888357987849192260302926022282671789268281089676833305920279494448684877023958078312890673262795007381810575424207069999002907664409902743750171045555275947322289180840949811462782505039000012771457197304841898786554255157494216143892026862262072875763517572881607878307930160755366480991365600270710039945302867458746964781751131075120616360801444898081607271937819455295922664537765636194602676997902170521477465883613615969653218424538050271205289397227242344231782554336926590589203470281437076267092234230807313487976263008003600023759854861852851663198286324096807378871861071385807875662951962485166462515565269263954180755151963418401811326750012838247997841195458467110897399849632530580745899601416029702198851984269909737058654431700807648560560242993342779198780942331737291269253401033789361482540846535067309444730911901266886521243177834102026618893256255554724873728145281441215890461584886054175190745647637698002981002772039435787309696390911626073733870529590877784581627207071406303308642786290754577158659904240777054915761064587220955089916847136113730293219842730726332934399755240552585844001941821102848576254018175290761607605820101067570050627705391663583680508035622883231746463208170098652218019263694335246062207112742762563562977044008987568744100144738799124477595675227951961333085872658016242537263683170489943510082415870300365739836565854365443683950774126086261021737619814568050335613023068525377135555921118662982285632875261668589574468323411149202695019717544517858851514107051050693170857827933282767525696151721935145812715855153378987001798349016485548007361334051051543168364729621526792864339905294731239356183277705636020469932036525496610583473265263481408002646956994546043114659557906763761347263230763440832939649111665071878750333898327168496163564026684501247657964024466294340161110383995720753089986063222210273264129247422867087411859354528558859759299170081015804069638046805132671489992438019603136912131370657501267617212614525977399437075439469793942705078706783135834177589445224742778237011856564906152118991834629508073121090214747226893831359379680766973928369456442048620664184510762866521213335617062477206315512491716961024422848132797784925860419943598392400872817049903504998312000145201052286992848794090540271282993801394186176491272643787495434954610988701489657310738437843851606476854644216848468763027481866273421017531685596872256187771796082038822861415970109615529941679874332688466286207215932230482156557554482679654866518168474472893303552528977635314984789382089820707786498309794692344396393270187529156586487772748592841450457277060480958242380832236020188329079852302705134338639506423691258335193037716286530803220497584914934509849377109247654701010290538005760048078238880399826791903880079664326022112067055526992686888714872435678029160148074281053503041971646115839378250278908759642499621544220030608463899670092393012606829188431030608536921072841517418864838195095029310640102075733295694666892651734294282613377851560875839090602038274767571086429794165224911875543606754182749174106470659868412831091368565513643008077262044966041778003832212356729270420548834885470701181349189393125777978850812124678952884974393340884536288404938925482301068100924807379434707053684253486287894568918843019442731802365860702728051416947856484768461574322179199615310385394223537043204896900851918939624662239218787889919385519438812559649827343459937626139851834153093614452992999974101867780591490924260437597530595004745970704704150942879894878762725376693925638460093052965258008577511465593603336059507385760563368463567700770301014656038523050287181020974569093727728441166918240461152558017676358215581970752971204899711504309748469032712108603423864899510913382864135890724552815947696249098005804879378592192475470201528416026780048727144609528552856213327255979916395467961328132813975137211065549123696028403232431096662688309146457316763583052080403342349505471131864652694589137344399818301364296636832481842368792260929654573196185149324581801581804490552306077691161750640584564923203102860661949302065948582940421063231238999094166914197138343204588397244687748710781563309769165610291886613175953855908646133264231228777571934449346587382791027572753430277543822287997386026260365949370872044530748962086831036232597926521779864539452716012719134709085603376138224686110178911865949678797372546727055300762108585415924992317324219472366761187962888102495034068739723337442684942379955544107852879365829732615388598165915432272636536506141240703452723887509134356698835063493705150379893394604735226400856054809290224359427173107094122681561566765736599436506945200677002061871655660117302379360537962351569878126869137556336139332823876831031085615427612038058288304313392908688248723783187114236955062372799823911593165352892062389838840876310557832999107980807097514287410654080482335876404895714760937656352950960636737563379385972907465598518373090932559925717013598183572057025250105334328769434667965913038234167832464871747300488070820163092280609895418890577341859566065809194182026702477050378733032763274484325649666048877735364168779360726355905341649579376036553753409165312843105848564154330364783430284357412618004640029649206043975779838534513055385696808656279478195979650145131145696046334849491233134913542815125245900614585035125993735280608437768638316516246691247071899849173284605718626061173965038597215896781406136530076944310265954611647403395573722454529247719962167163706340956414712656003300027547857016067477512511885254393409043863694914113462971875706167996377690053346143448748303957962744513238856108393206823133638854852930653156285216793822456647864169081441145130097543136708577560859944331789869889740419743888875839350889708858635342372549639169288087435748069967177340532776635439144059599541843084551117414825859655843339501964834694442139310417955739334084093463662876556213220473766511912175478433062041650862249116557316821841384656883874156684453699650816126868077841954636511969165985135167237029124005829313472314058277787525000939648227827673280983519300319104577713096328418642088170070288109452843285007911159049477470659278787838595866068034196264097462611604896185182541109155848851508283405187169855491498568462633885851585118219214084980371251310146059810537798023128234047620399947947619535895870367288773982751913224237471876013304169660433146188353998110568198134252449734370668500507095169936820137390724477289320081371564406220901616760837812466754767938514760488956787749850692199414428048951157078991385352577854541201434974302063716350343721274219510407810487989561943784844440227086035198039847971638637743102383208967062168889086515375275909510917261656853258493095262315317666634244855142102387824826581214779765513798261607849766139879045388115980088073451171578274976133582791786507561614972492875071518685202402385352144570111390560419410120162629041939528004340197816913770287666701582427551041876600687858032013311445587139969496166536836757023220711297955658564109202842743009166759899074127278456305481604750952013476252471272877882902166337169334746321231051519856589867417804311326477769914424327344327253026708031716323528780568105887529576831358500055974450035944411557456642653344821275099849587233382125033817348877097214967859474846821176311071812974771156643613931165730581378491713335919863356376990571723387288780040991538364730349837421662092328763319876446767344407423483509416781305276663190058368669417667150947695248460395989900779325109322869674931604434135329518405145393766554886676295274009100789982509242654984115996232770840111581697612198442161666353740116503614011054458247809121570932283377850465579652550781746018348167151035845687146301785048795890116846650318716847548958540904109073247953172070306757029586713379746009431354269796324601612067985194723131377605813204530960859483858322735343456048326496723408336737208431478094593880238506602475838654426880163487838784892797710681968963762162371300245761990043640945186013639657513122439811463547981578218186840620269353837861947462307339472424624629617877952907269948890361859870880819908965353978882106019147958872783775937201260068846558188278298470913747058917816068334452023049897099926310079307366546582996666155569561312044492588516247017915055509351038060399997319211087485453866690116604774109674204619763196534326275566878556890854817543247630128656827212639807818760201791711525346940069306288437078566143425879339766492124350579571032572933048181925268296218602285045746322282923964393302304548959016235103309221939824110248245052861443372773819667602338042633647272073030636595691623232728973654664076635312435000533030107197300179986108444426551249110149351587613101343090764979836687547256597452086143033647202377840993590956001914021948592996339159981993706582545630405682070645419994987310477370379767448994473649032783721576712893579324300602375821576033502141404345489357150909671732147940215483380593344439790009818440312369673933907314123666741960052591644657614157865220164497765306615168632150713372772841807755521866255744721231469057151524582000555291760731533620850510644482316214251166715556854369146663507950776558183456342327997019948076455833536951741199025973092191425071202140871317078008792353831287426086966909669976682946452853222693430017659756305436672288210508226181884255894103811454793380651693328198629531051154381943828480463528668654892999688698435734375852386920151546297853925851202654477650820291251319492096736775427787561764192794822435775143768672739078928555368280963425469858249281804186930427705378418237026417073003934134226083483447912297478013053563799650480296309415023708948147959306490361294039604253656393292584704631133774437439561523403163461090196796105485919409508730828546176539089903091525750016818393052487399608110212875145349357881612357080128115032623104741109861210303317936715503625979966299845453489139528464996566318490056996337726352689528076689430867455373033652963860556668375957141447249188024826292773228948051804880728723375934908054670317394619101219527128874657675940066206850664823000011695837415467555059425169235151907394816318503309681415580242317288429241023781471228268421358512525511364117170190026317000834541789092159404502628564439605599934494975641178256876010024920665961138961689483447934009268976129696870481681120130791872885617325212153205090278270622598328436740439340180007764099491361786587510438208496796565783170695510426376685674334828544396915852638804877216547194408612793614896942601203413100371643879853714759268793690387314557595734428634275290937879783423597261855011183416844642259655492734997056098719333766005266545052766012379303084561290915095173673437422905512948710660920576208572691343297493736338581819329322065888576143362637370407723825817193577904313970259130066028915269252592068711383612458200258744810518311738000088037220081713655968774667486433243638472525887142634239941262473933085709903311133137119867156584340744829611541837826296322219335479898468708562308161517441071446950146344160482407271741438396296007810286029350791416789626888354326521848686350933746947729562688169468109069930904994469103023118462022844765666945608077433643841133568730837846859935723321248741653560217843264824903784709458695733558271643349960940882559642766513966901465116687134046917068640539105979484109790385987903973012446159798334171265042572598194965573311861718314030134381095131918011635521466523058936034438458192649606052311747398181397449521219985317404430905137852160994191983060482597445678060086501717756607022999133355728046895657321700019178405533665248750482782933919749942562182235640407799655941434241142688815663969931304418265389590084903400355324822924073555686045642040086507469679529557946432922681708261678089173088701017525186226957606681099699602010403110851361597061709195696379723152877577206282477656357165057796408838958090760298037205082725143999545364893071489856289423518817701280755015482820690679960618417648553077730961507724931582433600012601689204241175959853530157898064717186852784168507327147805015900455124168123825011950435276984229246914213395967930736414853111270509736434268869364984270631021293655694294085422408059484922837868660986069897328527112882567171167592968096177389096464596752425003814565448254162300001153951149726914757603054556423691635677139073655260087512770845101199306785181065760394242264358439532492118498260382418719438911207979942750318871283251903538798320246995742894178738057733268252424416625540969392871397488996710168257523888985622589273710566000408100455971774319561864464190839469853047558887980041112326706777663870986290641584678160439853893609191077584568379422126965629014465010472949631124334799752290343700169020252970746470564835449752494229408813253714962054257359617912251246416314493908129907769730397821209149474587528479343039308067850430136189128118687535115371496731596818611490210329937848050309571738892159950598593294608135447675654270386463355457214362311519907140247223065117241941265858932825968906150063993452410562202076046463151181058658048470942040228784302930480658400143800309654730066636594791702504684056600683192512830586038692872597876041612558460096791497977505806049701185173466669233564049522326301018114265803202929815246692597349521829148388512315500079103353930531773893487868733947688626027718874396779696744545982294149029293494604805710235637290694945471328005692436885899757912808115425665089099476186807850143602543465916475592236200230441623930334748168183151748754192678720145008175727791046036912662905538031532865391148538242702845644731172837077830745601474570746544972296404327322938609253609470319811080131915657084677655266768072172429116425964871629278936580327490905777896301854909397504306634266369145250800751831625013195553127005923702646091726529881582960580162244353237948889536861506057189018653871268234440920290707129073371828574722646418614201930679097740573406789870177828510445879530175348640701191561797678260664982199999796908223411387452771769101287882841493654968689964615417975741237335602807129857571371136799597842413771055340583377643021218497605251016136565662068250752593279926930337321749881654554192969614164284382209440025284043469239886196511242368271275959856785801609175897230571585580939068791720959451764937649931708305462260218003984568818227786069553540919275446457419772240064859454334755770245143379815961228744539619157946711980270014888962798719550031551178153399667898929562859675336446168808227682350371590147586726302343092969694920655877787547800558729003812361815289824449001073999281632422407174680633289116418603743887466349307184272830162824163813989214148350979605507090377085918607446833843618191609627982259804168226862209565809594806599936835374895610880172779650047369178368762124112515275094156075860446697750964195391890017273084056656240087785964839455589193232431307623499612852028313330246635656556015966019316735731986395195008620257056229364711866682304889103176809411797201481293051875537066598410044054913770090502058020142591971448749249478541346918702788507883154909228649494309363122299132168138740495001519427667911599207583162916076154156022943321015793870509882994896737463524910472860501863404873978379189779864192938520798107474990393272479230975204483790150692269487559175479381765865447355815592102961802068249140044469744282587929967688324782367044486826899355884767859673447088149424855673767814332279979751327923717315244451282433318966256396224735991252585126357494137748772217243834899139651180239433314334057849117551295928121365549934786357518359807286507187019174403439767907801817377860756699685031640533748821017408419450651161749470815503457052199272782165532483411492111544176383903683691230010164025715762910618788388540402279791615905763514228812360457553025084029396647679081969483497370362576945608709114496758750873860205495643298681061475496895034206083754355820575288169855715795203921052066508933872924980383589772288295838395838972839165353234625214492535918519736038533620913105396095634422303877337647912978702190428041918606045060459458038280190059485370080364290696970712765584322893200241111218202633864870047972594856647771169286827625269249563551537818356885815245616292873434608773850786763224866226815989777251890396761723038695529450153463284323300111432683662326836267809487848594389846198573069868409919103956442606025919141745960084920540408890639151591495271638956977332292336753074482696042851394112376696371095823290003520181859387362042225502479885379331455142562025800240064723830212541556731328453276459172842386281559763248745379592991112524834261024230436562356444021133710036554696419667075476731270534091200334274583799176819718460144835241561598764077973703354442382590981541172221093390304572736749666017550208941115854997452951104503514699280036237644148124513683966674650661160077635739721488871924115067314446547156604358795367809835054847496342221836667179380587689142863942520043502050864588990026447922747384387107034678684745188860105850753086492750389070459252305091663096409866894511879333641007783104267400739635704951944938802997882089084350929879670065997757081473463575912418989162932998296918656295988389471816672380874724178952017911916850699889819895052939828204429701087363669730932048378534313467133083177351946985777756699132925865635796678611438431803449961589858022883551197398182936228556650182140340183065035716472256467799394003264792340854995302106172225382200086574901788676839088053773533712590419956099609589993148559251663993573333560008123995175301792329024710260784628376394816554139012636850446198345714741823893061409844673520324839264303412731980224572343407637220436534341777153759845782200870899493219521530655926458518776856011992237484441055005605434194024391552376819518544167933222885227584599626419314352267682173430255952799510696053585219604406418099300746585878899354947539227561527441324596847550493257389898694679055899815341612999259802646572214385163304854868053844470658861500554312014049426823122388546054086033300577072443702486613070312445655018472538969093321226718428124808407886046415670018739623447435941741533160699354795048461168101649061776253074172716338603416384863067470044674344593021461741701432050650880589552403984359138072458625457293203100129051399420423973323619569900327646767717426326844916556552761029340701219884610215763729261420110173396054186218377987358934249229178048043540913750438293181855532094049358217351702184004549947194535154658074758016406497660861931818682428544167456384706339515881496033346386665517139396314458818660611087415693127542336430314278200436965097234854125921572118932279452042948281085014367621485513956176566036616381405194184632528619943544976082396384736866909207123888839480575509102729336144950525113790714220448262391560918642636952380205777457084922407539428913186520502508730384401117753689441046891173931062754244552745578457757186763438109542086547353530172193994190396761737036354467630041119369239210966937079306723689870311319568865611902370890802194051740693478296293978843855857747317689158874488324996983852824985067302989560306830566487806263476095603939658261788160823092847827154102999154049896757485532699323291617469178829521671401431509213541330603019169773167655599486124445353987810895262807956354535568533720584046217542237796959886648591308572674386231014341933184861138360936063601572601732932286144716850420408604415383250012147779410657117044215203897336370641053144881888560207509360615171470597838252869593593341210290216688351529646030149341767270875139727897826897481777672146930446154128983826558652399499657699334168829402721815289883539930603939052596211487941808784538370983790744652427821436550926341663785431623036517344548570911237716794968369929750106140423229403646410766044320193080067960902977877130101001025675272740156156665826806039063409801840300893204471327289024407956120865135960015425839675119359384996410843120307218135157280268160159177037409839769217877967500334633184035876185334963899977093184446714255027021336229775579006470813021413549389747368551643977273895101059928604646694832639701345036893740959480820776227455728283131483096746997161061395321177377801054015166123124592759349014572587485119073637259412260877371500108440145581388903193169586792855596620347846354789502544362391181785952760897779244327722492343435734307521230408888622026816043512863115930010111358071270886504247163322886416741594953554661270861526499406481326443447900027336336232788380970774347239090210480857278181247141377173707034775385967937977775391316935770154393680764053653627414001900128288964331999278139378139361087065525264848121514824142103060363133974435601235011461326612205955318635245410457998055462257980976403156399911078567593467835103687102887776313815004995292926680736275544359091986650859073634486503198083725685177405148034481584448206728024421878176244438764971625394418060609347864458401748256542830405263772332006163932404905110878542709563367305432142848022430643354531193423594372032564212203249504953468539204280146499662614192786488565605252828733515814910257368844914042088781627037191897132363443603292707883759703249857889528707993688912724093745746092018420678278596235297471555050788275799420626274911958416631464003322972363363340748917918328522487942481895004624974073737351130609538987990269491122986892478328767235415314801114266597423654293829563349029114443758173527014589292891260825486424457039996238677981888317909809802864291075533197429650549170324025100910015716955554504017446557647315090118180829512688277496462059672319052116283638918766141926411290174400770795913138184510631901007145574398083542090564085228930007270825485134401935667091565800463433742672953133940738904153846443164688195242109814820764157810323840769945434199433566448910379459372735230775738734950251390613820131410983033764300783118307884796283137544778197877335537807630474196232988021164018374035232455280242912405564903498792733070852025765249750120120889760729519739713760378916123497963730550734404583805666024071920025139386456221637869263814837650496563887529163527566741552200167920865876524957077949826290834189231882074525936412567525824415834035777429784036294601894138091086038574901317355522358660073049729979951874286123627838532272710801234002866978995671265245141773992044434696245291513295614808038221698302454696181785589019606491012734097510761964382865246596499496115107132346752869424800929820360357921521508906307302377234363065979413553040651098620179844071146720702498026309171458882069252184942952191775984363358112486090235703761693267058117279318648941495628637100506556745756310229001937647619441850397457337792665716745613789967517288116742360299529687818303599437028788693450712764496746411555404107062528643248478915339926070987653305241364435909387180997033772720018961042855699954120104376765783196043163696692334382069665870197602622767303613083567884481512144942255077865015173582883630577399201401281288255532753940592350037687705342902773962748619150790609838827802846057346974705041402084090964490105450852227802900375622728876431686586148338391313325173241601686489476615715131854783467975590460633795477796735477483999911481799053337913415031261966166926104164828508966263123679829949046044253948286120091366497572573113625523600065031806030820764587186695058430451784783564118413986980017269025618862527032865599139044013927581054996389113345650965475780598484683345726416132316673120273564734100934373133510363265152431164487066686580699835288671910242646455528140712486778680755132097458413194032543650028320571167972865661978574471267896412520141311915667675463156172570546312990261289117139659964037727482568126501546180960775436920644653369457713039022557732688220039851817147563729409837046763757422194988557205395687009896530970048745472848540238838703657656601963306442155405682241217081947197230922717260596547102714134187523075461408567283400212270970919403463271127129691490849982924319084307020969337518027436708072010087173136266257790064476785235060899455064013410502034826768457075602221300261374625837875129786807871975268008255612873748849554770220263821149732806960386902430750219027522317279244230250182627097375752017038069826698898358004579170336183180682272883776807120442939675092905119785717004785328456617781573053515162908647058210074300302758318215916414694692316899367744577344003740761167180575780887820937969245512031051069204098479721004168981184342312284913663555513935863652652131605300792543614561088440066323800801588241034001635319021919767210601032621942757203375144740406914610234384359474304380627255762029473183474404411409640978879607618455149309607692448336160913612327244431859016316204597067527073931487094448983296037007167187925505888155998628632775371871848747248236073127813190884800453013226248583187018122939402248605249714748441864144485890511810842126206391766070572217685483271960759138755514984376181194834553668897534444296715260479644039517688944134509082033689299482772359295723657290149228814115427584574582218246272785236686838277642756636484061770776294993565206101299458880036638624985002643057109997543410677043144029082734750386062422151677361541810341384602932625567212074204371488354766650256353392743477961494258235133373048751145228157630925251090452223202183447858206683207660591237015431865480536846508956516304893650004348619064034451048789590002993231771746175494977864077281686381141710574756076524699788159457467983246324021384575943432840143092451587276119407740052675259835854640092041629048813821231825713633108196261157478706073112083181930495924415240427804257299811289639881099461972724726413759371566974844287850102435754052880451309149394319170348697567315515050814356443421423256124006704926854518974020127503150768825484917805661597608354081147517206827801012884731070322511751327177208027986555094340703567783814216644819093005146130135202092291213848717967703159869871018512526512865475961401263234476259625865230535632372634462758881380229525134086850663325687478025473914761725461510613369332403512720353628494057501349202823021651728311393329102891274686883731497803717322232519442335144664037073785666703734774530573983210094110283980103622012170714427963588834237585546569153309614026007464303542422801888769038183290660625595708832574443620957950461598008526111230779083687099796780784484644229808147167984882863615289399075948578652200417469804023680608104728391178390686087766399172743327485544891648101558424519797516743572309483469387734094612162570784292762241636089065433459238421145171650510133680196757754556184733111718990861282754112512889111435870197618530933068920114778259839234281207798341555862913458259954594663766064796548880034617698184638915891068166979978197265549708032169736006455758004360019105563839220153894766750169598552197846824426615909788423439841136538245813134998872197203293040975584040945902605018659626547275575566507251933808455220941909953436607277758959266686471743558903038971116158467913495413263608171474795488386254647651260487673258154094066999033610604169427273929962715763959990569855699206071551480830315825298080494102250976654104081075294626805355468450858206349741962694525948016603169821778528601397774064698351005230270361572438316509444108454863856527948438188446291658512468526244893543168092562588998612604979564584030960643448902716224649667988572595832811777034733886046389513270705439999521606604016154861550631491993280983508195586814540367108761994833302356369471310747128603648500514816986668176547737411449381058768154743462661479959472592495471431159218575140455256675022938775943389147400018657969685321951281817757051861013687007584322667014937204317446143245756632574140059506164113687309781016784532475331625136914078532279094367721022944246776319706846263730286257109680332384960333044933645669189543325332305824891283987540332700296650811927616278623496873722557640647350104638820033430626996625039937142308021596345654327765926036789256708535643869982091394547286078347825627152677398583229407792178466548112687930538301682627066855164822133066761410318088593472147311820067526650603683496242524854378466979955673758910259331000571907470196669135753029550041824713102512837553982306976858458430090700227199396913092208299871844335226331254325190516848677882261705302732912458825809261128711425497922594731886815111499952177703485405425459221169280413425536598070222671381276469950751994112416445760892552665099670447342869924124834113544727448711337379555875018364583585494975678402033120854653231249432492809307671137461771226078323207075769648887981956792554814280094440202112426171789189150150138400996705353746433317362860216197895224826504159003286858072578913782029746451041562784461034890469240947555674071987302980725745333242791611244913120836880713171300733177517385414972801200978811770762886790443386214447122244040959523692924199795403367080917763272678204934704163780323764116982738948386001432185291178442315470244892785465142640691039277964587700045630079456697312018780064888101270797189348554107164822395829876383399505173680974448892273787799965096795295555354326740348570007685764528761872567398448258054799366455871561700252995460812423980461038907392441416401897222208221945766116157893722890525114055366631850570444006187751735650764273309533413438805734340989585061805018197665247167076350127130761995050327926999236373119904320598680634001833391237940890578551291107933594301802238367806307565071861728930023957149868853853657819226125385373929329573455036341785899144971002774094414712106093583232613885306152490185038220578056342782752531934230665947395171702719231318277725339830733368473472682113712697554764404695757372671495242563597829355402169751076685358231110247977726918249168032785199122957087827856903213185102753001207863926006001153431691553788682138950533670028859472143708060138757411212807076057144354135188655234883591703388440625938325583723673685258957891220284959737351258473262730985671575159022587672600836515343895888921154910040345560316013748433785793584199089610698688961492472994421555582260768990088573344666514782441032578599677462207691197058034111045301540003573835282320132281263050021746490399959872927405736040436280736015206655614162223703111914470316672968628078209571424497485859671215757981182342868684324726357703794573688571332154308684382396426059658898864209905115110524104029929559234501027453544519131308218930670390970311329025006394006876746460785639551518998564807780809640435081817749261316994734064271519618504813382259238193416309131175781461225480416864203949183624509772333551905338675153245074265956796205514360460340043420272742509017007966792321750496548140623451988082795892944422888263990259353804362403427476416680783608945433296891356256049351835341868931449702287447501477934870036731856447414106569533270755689172963866867867944724155054569651054430908764558898608358380388683539000129842336646617896039073877976060907118931665185263647528478731945106432694911910907762644434494452110777196949390025176028267857925464517042225750533869196127787664034801288233328901348256995329047940098619855440630823951064596927035955656237590720248932544723680995874060570968106479152924147962887369874777348102725650815019488919279263371105318189241480471410593198190503086445016415891945096425460448071586277515875446021263500141717293945800283485560751610986365083474598220133489652496136360880960566796135363088587175353553262165175559034904633698309824225678165749009822432882897964443710563215432286876176834500468472987050472735452463364425453825723354154276019190830143207663926508362479477359567794937436387617102324904958853419045839378174899899294610833081778288513707121078938668982671544355903318579782990068773995336900212041636735230859882258948789279840943347096469151102566138654070930509117995872081871570109135943990810943510327179468406119256137320209187540228729864090439428498244075597603867316362929924547391216667330449239904303613343900841452374487793563919964141315191554501355968103470184264689095245043935983318437602979889959057603587693773656757268599733908097303090729207038301634009249602132972581153991864421955043036664288953335604211128617591049187159887580330139476250369021115198935986692979119302124327168045358675588637277428683049273790421170272282868777328630894229529325759853344029812052041185654550761166454570007301547727818411473352186830642958285177769580130050367327758373363911466944476905956048533773574890668568603397355167395283372343785738146266681828024396881825516183101010916565133637652538944021368656829172497913911213259054301927735266347551916532901146722796804808705140825338575573652566791192339280599353854057423210731786640739698095681243604859025756482916242073017540445477386336027922822078407468700678643052661106084686010086867184604838623556770337298107867614697801706427063923768216701388175457184153417631489425235571444866988339494929451824133963067132384501292169669354828678012007818633117080771307524105075342270768022898270715628498682444183701990007417977849230211587892052528522962420798001717212444196382137035832141707051331779879835419068932395656438761196147800496361107092943384853152080336005385829076560719418615593494785193403050630848935771025975844279921557498919577090066788352978241174470314321788578154987396909981917435245268857189160532362762843181660261569259417568022022057681866656620274901248664776591042655373618250293566246600615767566776233368119874471229531331754263460951935929147165612852272457601521108696364067006133217862399574698920378005941228751900081226042443227690811849256367322405073037612928034821658294961089625383292282173433854536332900443514900917123834861774540428561234029103609914314917921638589770293901061939150128017557379735392872964726862682098455873632892162217735851787126754289000011262082819352613805585138303926133366798538552039348154271150790046561864893976678677394374078632948606780630707983300171888774150378313223600059086926409630694222327978742588261329065356770788089404679216029389301096915579057401832078644977940780583452780093312053169039978939938976855681931025711589640303726655684203791196893792095018427692767829659275849192137884870276466910162498810141400056473223042761530164462386393494776883045255443111779196042705609505073296749226073030201499719219550402012652169756122209808794156191360385999798942442961729280829799171670387022282998741926203578865069705294724129076774302027471319182436143202702610127385719500980043205530623832737969139080274242396713354186131934502308257704922425650487008002009885804919374507180323351383972775903573617275692420139459155737231283121691253539725912543498553211703820289672228961104750378533478065702381675408136924264805183772071225871382115562042787171023746153467119565345183823299823792754740875247017515657356296432802782369802206516389685996597889251379047974310109622367127815229701244630312135177813937326362371660274719806881016136156836994462690492830494090466808191121996942531678912749354512919250820263595962770730068923427306560907952848685512104301140468717971322966473442389190272662199336986434851479670616169874947600674034523456101347991539472440498509572297084846869677642155513648385465843556296915154275003890158719364081218868575450038056939615775183401150110567684763162198662508645904800610124506166701987336405208651174463287088487508525941843535866838077156976458918927180254112582729857796211852567385570565264777474334824067796173755724362008624674539661468785922538510779699030223375643679492168206412835261070447890651169876116777440239164662070271259512053846430279311860053004193996629407975839685113513843161223284590811398485500477973497812602670541651300808727162860225749721733610167080729648019939737606705636020921836320691855792654086591864871677241058163136517875674469172482174173963920988475248128946400514245576165190800933298533456591591219300291629672994635443150001631747509788272949868863245064534188909779146159306581291992005018395449234850653374330431228795790999951582076680367583091655791243937396519793176685449774700754615766717932442997629586123713003653459141691504211994547256029319890413244152371095938310623620039887219806040593020108084458323879664120162667367213164208000628340995850577279310425495374706354650284601806811780885983864002369465803849202422269280393310076145512248485045045196369006052521551154054548116615288699998126151561231397332432836845968611194998636306175397037043523111987859739438278394105201871683897845564844800330403547962140080315522724641937334876041113617920085455163277089388888493614483346867588477832374722148322309386006677273171123311346783598278589564030323074915763116233132406639270120471716098540148512507768109447710656926757194670357887936162920963878641910809101952676414700964699020289785205630775640373235059428164083896324704102018456855713926572045689976048014630404836855463759275941143982143103264391607363986623248729463728206369850248305991948137109358039327237763579814188875652037718132423008583607714540075016981212895346521220059969812259854513356399503530376653003316271544040915047701352460465724486812850513242197114773031674303204659381589019414241474159087432432419973547175728646254006160295346102068356306889745494654521899561514300530405813373966610327495418247230060022553668944883798194673555132175680725852164105631747196783764914116778735108839727585409418395043477431888584711017586005047506904451003490921935171004969635140664099029668438660219592773848277989143136497804263304142900387344870574589927269997899705792000606954073450630823997279335098556162227770026670637577455539723304225852869417733462907490653784629872837220882240722785018632830835805254024279425370904738789114764390977374943067285201585702812308609727543933985337643399478013981569598930613955734716505752717235388516547110194938813417655309359247568802715052868478234517297909558574231075463359938184141419596324892240121053482758851769371235884263605131807189517562777332642669669912748443017663757140969406242370875001536303982601972004416714050917574551996157002289674978864845460466598368104416724967240940253497480025504826637208710297050564035236074409658433697101158051879462937477603819746455377383594881562149264706075765479207058205469826054887949125852578006763104980300137856864664470871207056186930954898223979430029024407689774371453151295682393057277136143938403444173398201254628005268244790583354533630265212270824796413630173447013098226661496820118883908936186129169647239621605372588957257820090233616528750286163940643579218869821610028206109277496550010460599613483261721607186881710491101315724406761355163752359017743155789665164915114524410463581393564831300635970678037788125286554283809703538848795487676729909114355980370583898387006009188458471849067271650288756399849452606433040758132915274505777295014782848002422935336723692031385900558270990933679151083080848244577213562273651449404565931749594157732859686705490846321442105555798426532514360939676765075142471353136556815645025229885162502962253881840343378055281982704404426798844245523451413177544764851668884161986013053194313573317937262100435763269804381237975435003488105230334057699566485917065973994592980005982395192797306539180667006859443628177216872549164591151571404485812628895694724657211959876948882078220993142039013659637782924078127255204228742596243984662524032130537186848725550982900258376896971137276946016751829970726084667669732150146379047479643522235561693187824783858359925791220533943629167225054496132071103979069943733035203250422287953807128332749848443766639219394584496536156612439218383106078770665641935866660377010703003448791604670355177229896555113177026783780183490780689218477380461436562818143310205068790061392094715646986528706464436029037969365583982491509152689457126426634965763133569345670920533405208878776342080428097778817094652593273044021378229278587786629708598131886721094471655247161813865155526539848416278330779038354701806708351936481504752426759529215874469929654397634431337285043008763234354141053205199422661215205374447714660985799744194594765080031559279168424108718998575824639561519876966344192247687210953245462382450999963611794542095143284422971551809802272003400174977813691796346679337901478332170594008598742629713188375022080421701243179427259332311064486643389967431027575658177046448791239494520776605550986772264798007133884749294512176075593978987880615710852187756957850842477773434051308911764490039373992435423751777427679901936035989011180525601373955143004453950199976538321504759078279324685255178500212969618105621551077951933784512543814994184435572178467386169528217177794205188788355168833726834547495517737444440657277682791375856721758436205812784313915816606997079711928707917216825755925752450303388969472912580102393409066820923686038362024313323168932918573616645560775373776633530737980908127862365513479119468676959145828587751311577909480101722613158684227085846814244260249944156805315005597434396795100012637543308517312728131842232676716481918408392403263373579859023867776297782272515740184330926159128318089734712845321402288238685745256051552196451685151381994282486946981278607910759629186395165990255282992431686564870909253266026541216144755263886777157955640346908199359193742543410057217138221718509552520781602207540602039471578812296460885966908319091856978649186148849121135831803993096632683453553259152440336733431145781113660459537245738680647998154264828897298606798544233178648724887025535395284426233287765812982836583005291836953620827293027232579589895497404800920245367527608826104489852542463245673893965001907528563334011362931707574416242572991422464145504677642199481973680344878057523027356603480429277703788227232740277054587693041668926538569839513209503732892824234850864522329386298596087211426647291258452436014829934393899454028179866377586812233674664333320590744316705654733917019163011812716593313657844318381706340370388453079993842090936556074965976221569980001165020548959633743310101847101664676315389464632758546604962560088231766231780838859432028807589034897569474033281092087572772289468041899705782315207872917854069459125411403675544075962640246689292783289164549661743496757990265197716641759399742231559462204371027902871128389411300502154330087403010901194978477370180453446854174317356414165423252632831962324106196544978853272704488020708675895722848659775779050319797732573509974183782577873364168710770548313697207889475315396779749392909151519988073286507691105119682189911089719964364373866633493450016678007129681279120298903534016396852635423231328351576927190315802331044546645802816989858774659093753718366395225659737356742636003896722755489595202710856707316688512429231289931870269674315168097401849093962431593910890019004152168649645171154974179974037268511251383932624613650263545780633510411794824531106672516772869249185772562800646967472018759122526774546680453832319890600880874152713025879940720702642923405051342781253513863492151166529692182988828719150023579725572464908983846699573002529027385269594522633084094460974668276656938063474105357528055723587678409148516105024422451526656604688350712123781884128612371030379478703690089611888170809678065412187535885485164391775248599929719953038726704158423917923932923348058416307571547874854942321920841300877705899866948275389604432365786404839773489473367375393687445441570278649976585764230035630372732746938473844926530294937181742128968182325424221537095954997903081510237542980224427943248965755988510336754545015639998252575370041039492592370962721010219356738952594708826057860784543055835430224268172672421855477298028788471807107850073000898872486980313881045778410174988577277228069574367276090661683678079123759195159262415901718007434350291509198333496727793457279116416481528043656024415595060771883138009454064034168284771977548186880508984719750752414422630727156466923353909971319139623973695189521573792416180920536739082961856083488268487929207658393864311385649136885786552983331700725611092822255947469578580255312740717191625011716978673665965574192450853345102451222842339072283155196160777341286807155682589404290437779165183413571696154752431245803071133045357594298135671444549412164730138406514524512014969548731263140783623824724395398795366357086305245029214141332615528124369320405896588678324771728290608448013285594588525292597590209477260452352850025314281091868440824479870893773588149663877416569229152602632980234371525660886696970022925295711544535202214065186932707563948175739204578058828722280297932776636917642848452323753248341918855279388213981429559784244601262270565687032468126782137332485379286557418901679317485495919542775244085192840419301705540956428965114683173249387623924737578567113808982873420275932029018178691207897980799997047283945891075345186545738272870825734095853684252117634079884920603267306244479815837536778734469617097163125533778032593684810119301211435411352003651833978060885805272239400831881020602376362099694060374159964854888103114042591923193683193409072531867169279817596868987211899180670041622851459402561881739704950209363924584198064624628281930684280880405110441675415074692765940843646618762811489598532828147977400412137797556133571728434515251504784201648977830868984252678794715329552491038027159722802629287608987571486624158613613831963131625390999284717282663016175547571715042932790125773835457162620376588502273649553137056286378173780855110286020091407802862094013285310961277453907723455391787061931721389301042222524846999318392476481917943403588872831960946913943778433961999805530765675740467857011774475594570275812140883034370930117183364440544643253936445822917030039744885443948282587456720251796451377167411929343227793907649398395365285235901809167958989111111947105483907170555567309840233136080175994284450579824058893620043042489009413284927890251982234880585108056239102817971043310324074829626032474491842595267461638287082731243177143716536125918595369842301103772169831609462848347549105285114327968621440502593845151096285667709465862067399058892601598900630290492577719237675963776994716311613802456367160141165605834167394433200826991845325212286407762865017949209181524034377694227290415781998734504034192776289272236196042765220371978448184155709305657409615052281052821504153124120314496918946485050435127649106017167062531204810334646620558558277458857242069567871053229893061704585785475155364234125802655497230213059024523244653090652458380975729597415952575144954271463660491102591436319400179352283917120107386423500571348054615683062834868433231155186878040735203080853970961118437944365996168172024572329583515423116298091522796091922046596280741547621340725111291250378063113502689572875609884176403032427421996811657927183588721051249023754101143785861531585982901996908692262290395228454473625188665655567703011558726878993083232149677133477718221916916509954883759529202085303402801621973731083783445184884946488828311431400070629994499387256631295033214034145684228504227567953957922308374116640673684254732621930708562425019293887464249630959987375981038634398702416718967936726466109964681431243295565793153629470408116335770438810613183031444370632331106267431557074327770267239927765015974974714840892632586002077803384955113151200318754323092027735409326560795081674054569372298263597051174750963307793084239576512080439872212534050670041179136759176833248646971305462971311921859938686942270640051276693797268803262388326775693423963624005399805267264668679813807105001921648496880900643566070369847374109953094718417464759134972197030235712384688912787122180387460776086242095642229858741109410796190323256638903306341556830324628841856156744862964680728923695113046097012117461365355147509478300778338776678555186696148375505870039598619296479043105610986264802605574912411124936140550303468056432038838775927941907847472033856826170690655513476540702531458225101757646094352785681764038781060235320450629864460126310042522915388482505639730292754288292628381503123821788957685312562557650670306611143527911773947309719116718450016833743743504467643787174272751861602497066797346987755901970040659324920801100621858696465881431802811422118170852659629723546808731766231270675650304156925978847981580067754674474946588883036612229623685924268697568547061458633959579711960685422643287943310910671059768407213930404006122883416391192517579984606763337909893407890886730059078633911060156228738563402697695248635837850436114310940027997331375402978324475748234893728955495724915035869275280947692825142692145305478633155641190229428128610951103987064407234492091631685142270163760911041276158624644367638517754251411287742124313862962382980931961680496013373289448340207131157437975292775876948485132869240043765893217771835348663580892724677975451642623994089953959247068746856326220423936281374681450044952298280382847459027593972491398001931491411621775173983308284485227877571221860587442898341883202629299886182449774589167148368002052637663911839030630876676325905778536797961868758738310978250745776024521780421293056775931484587639447304919553351405247712145242219355845342182530745326407954012438395689203184152590586873595525401903427227837230767055598820817391982020308226381386525798161093502906996679362418896812400804101627403893050539442665559081145655413817458691605121464126377736331110799335098504091775299986753367089567099872505751546071469735257563896301302782015533354718127011785527306950534768936932632594129090130681163690154350692944794928564759861845196196802099463653178409023847896487726875643939397340831733930884832837303037932942082390727153593757940740037678290891110210527811527523125677724342292397910717411893376556451313189461366690560269966625080008737687436625908472543603152936488238153392761363914833791107779417925283056246751684375972670430728262622138111391989826549764026418492731285885383771907347366848597742481105313442037619451323185040770768891059131490504861314443668625238613357710665457108820148716343142181091001412022023326747938880872923382585012426287725968178480283250790469441472193458884495291015879863178176249013521383251275849073978768755701722482917495589462679375983218342760955903769041738038886314173139097168200689624684013146177231967381651667041405210034119027706798102319240941578838240237117654789077980333371631169640034955342542779835651314981096224123996452280881637136660075248536837767344055473795543226689616109241887953278158212639050132550764728574588786379276569705776722567854888604321134497444765620854328594480212843079287088498648546446748940224726694911956466097623849039961545579416714791913269803850140916609740914324338557717819641383009663009266874063335756932953462123196365344790408882931231193675145019066157371424530258281521535044489750861879590729101094585946816936551972030639394842973484590654842332380909400993550350813658882580301724851693409097845789141964091138426122616078473682789356293250891310165519382295606361666612776590937146216060404758001928509399162597777817212903175845055119845645897128652055578418321525603731480781422436770308605413711914719268625784521253755293184196614222446885485070830828241625751064318385799206368478508026530634802491044045793236844474455728209065581537581088598559718054934508096277349041452662217784347606469193217353834725216585547289009464414891827989911746903334631763209019397044863178994655085049116074953872817927472300002124543031024809422425272451481082632183558288183094643905288488074108823639651067613421648200874551469508622562779979810888190752785033584827305471816710313879389162105245780638574022470012134717051371373476433431669782153909217476173658673596017678931049845046065592764773815391909776669408014773232839527419478396439456080225791610402082778257374008567340533674166408797430565718855759049312898921614803393896089105094074925317832953887525663738887464557698457938787100373359322994740191263800938897628893198801529484726117622356775060051100204819114038237895243288357007627810781890737278511417944226452074383339034819617878395111713041521993806250435924252646468404640161776919161556672123482686572323557328449035962856747057785641115898131644034490397264506390230483439775172767972431273323089390419230996245492066533852214102094292494601356448151544487873618025615983182289086313585405794917253641990678335154378385991605622784861201498740904590324622451298921067164363544154695953831241599152712934376890001649580882665951844184579088123608119025785081618726942009250368517089762716398375400027748085975178353375355325432806338277770643012565319776790015851859496821087172525851332010833929305117977421644310945484543809607153137756231642481996236219958396668047609947020930175145891416683449322923534196813554066096949946897565211143864439274772768446516817323746573231895447514077325711223031036171475575285245468965141189219921381234958830492697503635529256694612936861889913457485465856370261257889353750756104022507270841609240947814833804904174359057902769690444745382965494564290950068732149670336732034967050112721219647572142136846728437276825027972887829351325044988038455892833457258008681660798141444338714956631856283399871630930168154306811711764938885620170707411832557810723382843340196102052531877261599152338651992323802346721876738979754766268930876373057810234828749910847902298807222452518461638567474181831942664688675529684985648323574826196630171388977708777313567907035026158399201611058830010154530240770410259163255835992051299433960793529440742997240422283469930928014360249418636892434732286485981169087406081599056761601497510345386093387919405701035551299378415816445958835741589376157854691307986303452237279949925785748082275767294219486411073918231986782112731438646568125251352737745970264187731917137366225660050641792087230332750869276170360811114243715225796742678103806687020882222259137955978320800423712428428280365680563410235522928355841212247131504282217655824728448673612231204416282000535157419506604843095161672685401580781127262946810345630335581565287448364442799033493636173442265671628326057033143010244978833225736915189204992561563777220733392671137385274107179584828621261613442323848168320662942066482084270424179674185866081757121259752663267907580040376211134084355903774556815635000729083684035802737235003124523631286960976939321246651664703291152470589159203590732230828651337551008612596368385124858890984126106494503623497002285390873977633592578998908826375125358175853646726810480916533225108805996297809031521224828497921825140604259623174761054761256791175083739370101129452771758092683559596806464180794977029451454233462500177801728584086229876928377210705384412492458005439597134085252019781816164461824597733766200974263421325927364856628989708876243811061911811083701943906973255353153929920842140606458198078725609484590673364302463312056865401272394438820493957318459016047670257882095789514414175411527554446378585125046557542953738860330719735505896381760005497923779995868765885247175678454414786331909505174138495903330127554458584460975804066042301781771831093051468390639714827389662374991487697057182692764915462385739090635935752001031783260269456123688964764652449655939773377450570078400523799454459242683931999472857711646207239483398706859020752473519421517188362178875045147962819811782824028347870545527419418610776173582931102091924130868656712766604408240551625674432073513712732558909522909275463956341087110868884876784163163565765635658235685201395760534452223148399526855139406259223656452524560985853238250404370990913985621731218263859574529810393592600238198108256303243660143527744629101902239784662425558115598646837566024638456984469070387915696784073570016859340494040338446052414571544349499814684295975964096594063035909714669720256506013796724767826042075519869893124343214121171815342922860780227721447480319092768142025652109115045308024226584153248707446560974104267975921146671411243294332415370571607614902895579358857383485842369802872882775041400132583103253913026364254876172579535532740403867079348517727776978626395193943481842943103057281774297814263575832563243563042431673259774074653077646311773804313779496893245010379587888680487141673552265136529279063604964625408740582830308832323816918320163156247658550079523429770123656256930184615763101141249450631087861311380418057921189276545767590320222860437544832139007771520048531514711192569275001927791053967029001469248402865982087172958760142927694493824423249796114662989644996549821429800712652508589615596022794957242586539839658279452645183835264938490437083684950875737891208330980851544216624332571409775443904629460746760267308792489651528715226060566489621950971258846520909686723553293075484639503192963078587574900110279761459178217912072374687904541772811400449714810865717932863273442117170330236535359816465066100493534353898894826864254051750474567396888132107122556207100715519735204886639854385194952281097058726598537839669803262379602574270258452823498727916994777967274985125216676480021563308532470521637506313276708526606960347596092718470016114794382773518505273435548674815584454916452862796674177461750864597050829009615778933545668217441933862781921507360363197533969341221660996733772241150535390059286903805824287858445189638819629427315302714447534161053871728962235367970648353748799461250029984967463952290332789097532705178307268927129519033765089770480667655640575848591479463002409640184273711760224964936170747780968421322666962887329023924095600335360137394360373245361485896322200837883694932881451119774654439398516251875954746404556164098478788055220773053877454091946893352672920034819923213523564713306367599351528710448949128356076679983086979672673888790075131786867094769850345651318755161525687308438764163600448447041713324930004779806991431556893261952434654355760059404761426019435690979878669555993130429414623527038979193182901626900085444082751989915927667092436152387966558851340789979979818743403051399075636645582775834861480675485132351538830221440581510218399411622423046554534854506258814490468661340553115122406465551889461086617787773805653532106710484602864296732060021931533738075256152328024807695379389696868672568295276316302242576087611514594352597031718792186494795604526203682752388250632319163027000664536505965155018292049824276272247387513825754701270427198521011678009544357367886710907461079657488977867312992841483814839504274117095588180968072558348213733962090928379709278599447825828902909600953551302482081259698083073187698438859685362295418465624593091553246639680022895635823934414202230781797647760748481807989441908048293039622789079913792503127195117847430206826398787221560578134004927368882314752592567953297194222977034670510189675963337363205896156881528088548840187868288869955237155200132541204955902458002459962834611173326599809209742490896027688390753696317416320595392850718421931193902142535115586882421590999830239798011844691484872967789312617079234931108314885300412214823442674671588624591579316356472431855447356660073947865522384397741169814304534965806348435391033446981464245193890375667429715996173875064722021507681192400411868185480781497198708173005296210430283434816108696161641327617609802035445175128557924839242385507575781968124792454514972855763227064937865114660734672365522615230075769582926843023819141929769400077400135141852786219803546617697336747944767427925448269300543629962978540758646437705210637447492950089865539175567967133398973108872911719903961839206790349039620700793498088816602451397747879428435102188852919494713288337513541551797320269248125327565212767286800812735645063161389837480153506903014906667571933994085644904405236077173518745284128498126642100131841485132721881056678329407203759325664025959673775291797278717976701757275322023052938230127089238937926511378945397935176112945813678480226431379627241296225005014258707776803103558655258510830900631098370308410240038099474901661435386112770501240059402753375961656154994485277938908365407191881349183262575556588590437946916390976497675572086048608695838356737530891652986454162867761145126900126620381922872590337245760045793207595771222267196909208043780746021904263246495997574602738795495718219418054673556811803786933278432085946838638135454241173883171619531028647147499482490358738484075203195574827636356316398947019300950769375062421132111796743085137599457579217973785357601303169937352851824045215829968660283334540002607740254116233617921463617759923218048962707960779871298180906889808651998541428976397949418549956139379969066022550819737621979592071160670969992838455872745226615422199469581804307134172132746955483708830002817256226012561530743538092928651185851422380629479162522362031241754198081238181097458507204901884054464804455376094880735305150171901268535318782713711747485676305543671542074851688979665247574311493079041743275210213030726510821733193036340868302903161631629255034208422967737063929663980669465347351206888218817884750154182561645532706009821983105352173117974394139708414507352019061928789308932430658682662650668665014948807998499675931967360689223756507415476663852374529454155963367659099226916449654390092530141708650730079626860735764003295858225550018296747159247723414475280658447690830219366110642556398905677723449493790697468879220435837828703086377854155318303357628032392598061516740840737546048222117672821472243369896822779279672754768095214388901369124585892576800017588184169003965551574554360787402614346636736449795127101467881010752645905637346384146052442094442513749812674830143709508383225407848652965590008593686854887906574071355562309837967052557105249114896547661212880703546223791072952219133644371961522947051965651575295634024980146216881873591873918555069790653549336126307140536405266952064861945291643818091275951656591268565357052240297154623374497125392829544205558350301991976573927905416533793503660489242459147254184801821352159603925871026409556156895911908166544430794069763460506083277061919776528426715703573884088340840907596000813483922240132347178217859680769380111146702364933184616912389914033088036760149511349966935889268822118583386211042971599655746886920024525564270966539272352183918774007982893214751545497091103018071738478571786172624734135403733454774322987359877401065866613257761524180763001320002322118288273045331153000202524250749059131483434663210210336565032379568873833832981095274527113199623271972956558036796011135701240458230382848749882158755016974600093668890418134314225503804648947580473419306300313135214508990262979504251216421325713420399519015150222915221982698004359115138746093369924383562112608720312803277030696815258787900953957535358181912221200752380352340361725513071255591392989109331718527753346662961799487036238514323530270972328674484188362211166119274542617376243179121015822444996157725357641530282533967094916899691243312229696057147319849844639988606991124969966931173889287301381000212853326382128004968022449564926260131742203846574731931659873672279853070783133236002570734377587202862125386425158754956788986821299247435602778425368982868228057558430923727123315985439237369423491283481385970728926502646042388318738387358089909431953688539103230639289312094594431408731222407878187484992333359734245463348150120256870950698711138132424555573511203311724868752807563405878702475548250270434989779504761758525939708558313005867399644859870736513328215713911340059195185788350633187712489222248282169106305856162513001937087059439486618783286861027926775261669411868685332377780785811526592460072253519426312822685346741013857167343642811782015965691420481071917160992688794599819752846128225548802672104446537901804448395326563996455592124613185206963365341010018380453409585512671686040909867212984698507993545574007959003717008919425076214496385271186193667953609151379181389761244885922569950517634384231076168022255501750943648545617618870634055619659400044166814270542170660344733624784806436252941886639593024647978131129711665215077661442748648990586292056885441751161911278630792834641118818739916749406062197842024698566010929080851984145859173732502776820078377691628165251744702345543553619309068820658850832903824644544375113469597946869734839381718992401878461148789267064066316319900184838584894091797070273430332957613024950186045977387259401487395569861868580248556249016277420260188946199540716431007153861683570749237108970514134707146049177028098617743271822622895936249239054785791659860956455337891555662586480015829999096321114160778140022288973492601399150814188951967246184914438010001498973491188020089268557376920412026445492071777287759150646354854249427150050420689551078601558031324889299455366407240449810557555857866466438657687109620834870842008937527398666303725093208995699367017634096061178921970800777815140882762296769378351498332493690777333541958340765974161675742886538628314932763598212803409872810515095370864363816145038545393780060625758653772916549748979826919250397617792355653716120674271323986006567649794441408220760235176802088670017327111629742791560784961845020411438799767717145258840494008467097889674588597185908816442524030684142640064968972114753860449702903432457289759812132552330360527183766849099059279538345541733208597343668701030767125643755551353604759903464464184236452133560211387357622973037936868122288901241237893333409626604097631824456167157973722278130966752775536373145311500795256279868194392292245185491705319608070234491784095657158587910893843020372645839976215108879072877430429263708406271647328632725929624429149667426962846660466997654351053183443933065034269795744459204117487976112327360431760294424228164346059319359961194523328018046584180248423035471361146007260206543494149136568031668860419533702522150829914082341020704089299985810230524326616436273937118285970756290911210915434635968936754711244694496885262499037509481965902294243286705213797176960758553178473348614903476273293424705239505410702435024924213023476936087446796163644582593236420971437160750005718686768486466568184426966664900566527732995722161969725168168569161576705917695314350860462493293879657319469514409515899693388178721550658790934189157613924276117185506121391663893241247609007218267825153894298785715987824979192629447274549772271368227636097296628778105839649396225760081150390003972907675479993870165091920275526432914854966751785868284280646247292985892836998705958429338942283296408407552451227531483277114680287439896172930280627283225446416550307447106980385998656908475528994134636141722804313713230734600363282906980503182401124372816833373081889979054170690981531476690127611621847645284822937623642940991814994912061724810838960956795112946999529705681593432556362819251141997606970582769522443894681862545873690524530591315632640431175577885716051469197805875355040502077205360279752945411449085863297030505653789690380443354017865960369896361921916830454251179522613006228138798649478914506250069587176706049455823744531121305707510860431015366913126640765238099267516201970426413674065112664756002304494288484958128613849742624348341870393659708773245575331176853878431994601799856509244787043224230378345862733613117687984090975366904728498048837076655907706249711572800591356036820857096162422622480933123738568203316372442853648762562019491684844282731369019847418647982251055568061324985210502985592944842930249687423167182508470796995317310869165049941796917476200926107613510372542173214109098429980847145747620924485850721126085451384810087606788896487456828522547465076000978625212129377267634186386752698263355404412343294783651865519635675567106193685940266565582389469870297224568114658112198099695018971209078564457520943071437724878943799421612494545339409912479020664393865885997200797820951455208034514983056479197972628835400495665555759750060339685755983230324687229632458153450231285117864427097820424725292739467653301120917405313191100463162029456164980787107397271175322572448844142988072968819663458553526920889431381908258333954482701831324748104740048011979040885080280302627662052526855022079833570261495479651328279283361284207160778282642548208744323832850857476071884904003838834778777968647786832307641262961099854594683478251866389019189327121698966592283038840255518876166262046824177180678093792217378507714911362964898142755420907513783117613672217192212600481759304571931527350226920459980929729040851615748707459355956502529783112615564147257700467547516122169564009842531288656554478311383609243166686261484061079232366435926443744710175934727917013078553645356482862932859564050202329458058525738365075357474508617790526259573459315238324440295724996295819150171292296154750978783444554184234716804103941038072060155376309343322592256083517102329396229047860364623568453431458833078212604007185410283366965445146497805155168594875037761421000930772799779613133036338775185638813094283787513752710029097434137389260291238740019103067824734415319444606782677284022423897862812342206908593559164912214399988835719054949359854500113214329358147416436977647580729217670078794519769216439210266729162417815021968173352212617817844888556092340597951836360157349172059906678489217357581664777694766434323221207690452545997907161924459244860619377120607248846908408671544545539425708362936952408791507455297078336242375051417189393649974265333323302763195265894069528281306147397576832035183676048881785507173393386230049947712697198464627386821170508547975546956468655435244955692251586084602290366175643489945604419621851560283836896783311096061795773315131217427970758707823713229934327997753110255067584707251080019838932121825026352989518338386701316948817656602369449659616611272299720516737667602484521482705828489606353839612393985668168578483295688443799611764231108778022867980329789874924510301506148908085664784622028334906014372806979207811383226700190013354692646324618347211427822928933838684883901372935296605955208038417864537193088438173033023096092388231206465699328158659255312279109461374530126640710524451407765440088295627854475806760831668275892503044921850459694170337390108884568304034465247307276878860439942867115129825017769290338886280858715058519898672526923539378327394285437800925950393704629582111370148599275437427399101001097728585680696069919520360697596148640771579069746062837275964755153928340509187895357117337815471647222903808323814148991846072484988923130170712266643596835168342667671287607108026767956645540179797997497901064842179313587356146586103455507126838221148250334691169252515932736586026845871315154944826891775666565410956901080198380479953923082729518183694458826980792420929168428234383753294681580509619636706166258779688981188296116721139835898443379966596605400495913250677990914106608361590646414242372891659603282369365565710324843463793684921943616879760629900663071390201799677980507291734390348038843760927202098701550331185310763470414114704345148289242712031853741001687346525372850719072539496551991333020386885173847066789285949607714652048911279231264132782912291164505389000258757232585376435263863749165803845804940331763306364094664009995044472649371709885041915564831567834248308186625020680995010048441592411354945690837099212786189077693668832176904398035462738501258188994086619232331176391374503443919091763551922509441513668317659590273273181151829173618581967130470037578716567948912316963046376010861696813356634857377498556995734833366244191542967318025854834337526229231055906821460588351968992915757487296520081871434091051583612070731263403111119107598251441918386325706385685827954517764389330823216418158008294714310679987661330344092778110922432356895354294309751449498827112277634322159407837203334626195044998944266718723800333383046963681130690395016862842351211285245807255298465636933934164619337611484967671750704158727325771215226408479652191672372424954807908050733148682646005881602711301846212799515842258765318144176880628692813486539804283196203104500494071445038797455081633263365999767349265649513029235857944361743596995369785584073709528265840388358197080520584892434233717824373008954453404375583731741602239659787809440278459633939686286031687666041442653582312373581674747070750075184096920158882019910084169634430336442023487977197775763982000246483432805647231709723900702553312621805521236996818033987200137669841634728289214688417400596711700490327425945357117640009786642712705139370831461766070370490920806025813069770502057836207179609663863920346257818185760140855828640181362057341252071551623768535740309285386034258711603539956854647154351731904590949702978557704260444076803215328288291670072473086931273194931555749250818870912998803149488346192660043183715874350632287650518331070316402418943815354566468797056432705346432120374492153377668198867285008695793650486470385777926490318353264820959477940466634342554165252399769014237409891822750415853337702894987516213481551748142474618475566042129617956901049653720599228869520770429378979354689912198257208950284026784676234653082243040112004869210721465610738028301751866221554366340436473804894241561814511293190920418482693926013180500703804516251373446496956612843505152682839181851800610889894970649964854732741246699570255545431870329469050254235620224893779173314268775175560214482778299513062211095594694437893492376139151928400674929723847653047679385950325168566003068552822093098722719991562152933171589405631908773282211114838336800520833363510626279497810288353685630446656794766423610134022228979186173082021629129444597596314991275022110102401307288097318819619425103649917886365245644089559545057339495395593698175875151633020993356325397813707521349623181645197613119742558404124300422676106934715329345110714800077115372887143305138785102105751882252512962503727615193705670188746609331301155203491377910243138609472061055109548137105160275628710702585472367271729215259796405081500963003403931019245427579427685890250813736282438830378752768801915892743118511608809809385171414052208623791693543139448988675134306696494810580640605853637558551937304380258263034529127342700528914722563062089139979770941418488202715373122555723450013422075290553607814543809686671112799338000922954395300931071514349229665727555870002685802214157397274597780810411880994287988736806270791512615618960069486020202050465392573474236878172912513756664084233422997498565163574690947289115175275851672208295271465681911632780085608674080115319830095931122182455870034358620386197407677256803063688585336097668655337806229744167368254137140402174111490447013103058331195749777239456327676394131016882019444303798739971747817328117927615589513820789431065416271152466916828897172097668532689783521751002309015988478218272834085359890526529987156374645663802035082390564688700137598176478003817749109037664709903670289485164670537101212937911248699476901478153805947232321264584686436390249539188797172727095883424020013812132567287354914132077145481815769874846958962931306761051143165436033573256166674116593208318106736096206743335312472540574841076743896483805659317165548703269178389899403316855622722403234036699921992758979226791257810702235477425068561358907066849221302199194789844107464530264655025999369296536238320350240507860020716346542619562213289603703711842775376833917188053880450533032221595661185615754188405030343052883930899142495012035962547681204712216736258565961228135034116910158847742057893387391518467096258085266416356449196125767532282546558040816995281791714473808996606841731097024754976091090448324781571905969121001603448078705740697264865680127298619064124121691631926522815224948571002897878840366808616596097999576797384949721915811907824461115537548973269029849079424000337615866545494755417086939897354474629365667547572745524029806575133095715779755497128887703336709565840907274459390097668121272179394545434290701603916561710875900455699746972891218375037122184695992366165295751933973594056782598697377875970795979698170908011565141234546234725234980293362112257113612338442092163860433459721464096311286892040764527825932835454102197178547846808392357161974136591108743012545124223534662015794958033573299500470312378416375399699192037062265048245156997987965762965406278580047981875341279556402137164076438493545610794994867235337942669432314830555503891873246013296379706064759541716716192774339228028721249615884341756621214142187430232726920344805026203432087097969006812496675178160813478154760259387555059137326283162987241140988550646315011451866892760450788780659463484751583421342879396866533722285713371956044798509844787565458493471911600706199397597496890295492593313324845033775325047910375812791939372435897811143956308378526613163409047993915284381289402779464753271112789205338857899801229005716772233468183554543017500910484683264093268530296162690242343329386878944344547842330076364975573735118875543567729926738743305796676324295189577404757911902045302690392374183871437234865219432039634574323891132233033138990624778271797828900655290437050414169808025355145676513930991751399732128692806083108592574498850191336946116993879125860670599564229529085768855529439639546409273585762890071886802159967328260459985499153654357926209863260304698123805907007285186528656403740174163849083337542636485936261469778117721462039277881837640981828152707744753977436541109614167782058184109345901143436942227087013194100318133532778727265099312894896117142184556006106431235387071900219785059414760487410916256482808606429802661957586177836228013977506407354151566240800248522046442703516543426871406990142665633816762065068325890135995242375292202125308276477915390601097663642732414619576582441959519003092990858598863039243182460608359586596550093029137193902073027054628952936228987736556253959166519423319845402816560109590042990964718727901989223671176230911283140889830864772315805840820509207763924530947422090663318717615896598179667796621888538119177842684554653105686044997152953777146534468758410761363720966851691189268978180500477183673892574311002717877558093868901019727012572931858197323800268932687677609181047276016331159662419052768947065894805881211530524159678062821913647924834701951438197092273797935351578240287364687204945309640801933179938590992341542882224062682923192504187947226900554146460263153346821098491336963764388166928865764088638137191965204177640525335934454001901659801187733251350426951239099232392217623157105441490249261163061625622317949559371648736886396608667465673901692847760352797909032976362113506844568158099269204337415210779898805289479626044412414597689744822326803256724745672819500743628855970493174029031101570238810208944128655865122913662671772542621137895420863451814394878599932529274893561417408907573243211796756220801781180116773153215408957745920760052030115534853722658376172896568146696629177781683660241745428606965094193779288276867770174058350119840254245915613814800511082183372011505658936238442855345748113063333760027779839348706354826579612888307703385732767570722130648816121924214065404514233431879688533347951420659523841235538909987373179405045357467541783758775878120354081269304094891415210952895047733457080831444108332550906686452110623620069007166769744996981250838901966800678723899069903439684221697866193178017037033356264153855697260796966782048914699525602797049869408086949492600546371378871531684272132182798488064400356437019999896626687245350955089907064533702677684538040538722688890663114096792945428499760025132157773861779903998380580116289088110468175523990880105598892288030336000740054951090610513892451191012301191686428996638901545554004086452004971398686885016285371196787703267487370004306311709051766705543276223255055686452817483194526216932542009553087876169555198404829676635724063531582499907055647034753691094615075740090602595157564843854002723890196525400296265948896078795620018808899279655193583314844847902566562604929572646694831336218381839530528343721144767572249044706133823516396314282508567815659612115809041204797853426406190698353040809063399605287791428396868480224860418342471653150997011445161132487615102922486648916427930344013314889424698845204564848711841261143624735910387457043014181238268644427243473919826252317317609056152127135980391290307003066640563207719838293510576700880438243365495438383322447478309763564467499977024533468057127077154899506030138756611627658737062167753302762816306742487528759277992566123345807648410291542902987195571552263798057172863808560565336075816974408807607336705267043330634630200519072607833085603967657760481694412923656706737193395891027021799959903783004494468999131365902071589158113381204349656599146562845810085647561793808416833864397601698475124497314997499405384165568408448782854539873975965311539317658260877874060724032407392881251532176431731449099212026994595781506173360356965335053546582126813557128052144201498913983351460747696821727269385059977729161220927057109369250790218047594687220590812964246159131006760757264382618274807933946418950241062567306172804675913548664153386216599232531753710988374881999364134876468118819860474379818323659605373321482830348470761516910886737042358447155595048912216521301657418657279775709720439035900256812788936431163357352655430068213201561877157738943283374497704437076970271423712129854764507606225911648361268865161814156034458881128412674225597520703804658110252252869402735943586214098585673772557061535372281946427832235014524356417454997396130551065065254462620188412417676944520933034808867190000629661612151523118706788137567540761283185713497882694593563492397635690026937171197269328698181491329508514720533090610797376952358751266163159632757525913855251689391598912196760185747001644208065337457876821690185355301649765146088188694990318816803577019755500326462665823593653826231069944941357000374758285751786599881468952692891087176246258928328173343551207577991205674801747954131037610389992234777620301674402161760768939005424168796389122867870618128547626558141182735987689623465772680377298226393581637160933074487727735037811794575098307168397106908443429908232850789070810300991980064427238000455722098854009538440603798125036481364798823065215395785660208965759618533911838012298953074244689226480792154070151183918938552494012339430944363057496234424312116986918345828141564204753345624602149711414922665332452170884091073203496969703500331272234585562037086849744557460658499013821092476923650783416625350144477705836268792631819863881399938103946155033341288892310716896833061650515096859522845540958740072218196050325894850579331116621529332687423532990770747874604535307804414942653247617254529298076702777656941067200947480705504670845129633653128230291422977689731490840624824223443255560498994796317071636324221554271754788330329997972953466670003762263180043647750041823974900503916769683062225540100810438311890364867037726791241526190859317392000733411172721869843586450568345875438298635662383036953006701948708650974974338406642676261710523357202931671897321150787362743395668356528851206192821483405883929892050195618373790559545237882020640073304217832267399081823019876186993904846809334857711423722849945609679746290313502628666730013737685867535932856194886427842346715539057586316712658052257770394170270187117614199791158351733284124925213091018437576497926315142103028803569092868403199078831200006526370855343095764856139086649303123949939982642584454711995479680527528491906282220644320540983439099021803334804815659312892532742540102717406949491615854759348072184099362359548669850916586286158350283935771402398511258776243494875312032976694227360236691685666968520255096680336079675816469058602417747064324553056165334262939545773106000128977163854483321916661224215796064424033230643430387432446119347919070192771755754488576020746554840619010190795446076695245260984241886457837332764307673172544572660469521271370884011529588068064079875247156605115769938154007521275032699345976024291452988674631788495628134799248555028883437960767852433237512989772399943852595655056215039531495418590842646326728817747932794190888191898619040913970538065668100026610493993109931227607481932112262459624952835904923255330585561607297391486804449105561013645631761329706882109801661383868598266290559185870167359923431985254557763495299627376304261298724557894385527442558025989371117467073351162919286994787649246210406173682676031435847743359788880105784471315310131526352550041280243721456911224722561578642973182411775620477700397397110796727787694603953890345192049493596862193793619456201704341730448551863480443907850767390254005529910081708122956415199338695142146584151154500046737409832816681657049478267702218207793041791258716711545807828049276002888441467214616899038609006007641387046232990313977688996602385352860722512701307068924768649424358264854820366550900124542430223225932208744499290441986508654608387194801490338636413490917772971797307807822098474176178552813471368211444685955467608968045828784767118482061059882348347349292534834233074606081952472900709558056035366479029178900242802729059305238851658298202122776599675717481765637005968364465605584684286313601832737075950456399046692195491388992513839826875936459642736336953895216359423336823833901633202245714176150874747260317660911980574180247235438125233674203962794116452902620218077425806372092240753860619392165525448063078941347504091926131683292869287181436108241027982101771214881821076002478340700506466652079598777511588735712019952524175075666907430949244455656596730004326581019077770352378221626088493161745080113409750046489657886929879472157951025223125336462572031342257378789344476143836429022149346579958050177704787014547728753460064802062293884456859725958351895447284753706505864650172526587715587856575151982335652619161232408988405597959705894288577381296288954142087126143246502631886150689706492800425778896989021048966737624333967228616415386441490312385940155269908652696828632220140642288860738483041283047726048597146747144675402935358406863254511057570506643105956460483266967463905248198060311803528632198765506351675327820126519774556350875159712020381243600858565763955176098897406951814812256133415388106846319326296480953089053373475370478738595769414011458043250608157715003235691423122947154151219658345728194773517034887941850587686140786627694001338977746050734037602331766514722677601524333236755117421538173057567717228936988389102771463611067034478324554866324262551039556032006851380984283723758541290658016570314700013266628996592843324640067255752341744177732930792050956901471952110126660151901057788520429587378015530490257416047284611796701390403542442156130517072310415461461173014618735967640918960359445132919094428656696729362652895941444141387053559760391435284791000393926654219086262824474948845388942694726711816181566093043540461589655051566145615765495406427717779500010816349167957157375154814219648231548982972288714748491999847014110015471994925354090216995625531415837719764935238567748192093946259882769826132589063765682233733107343828853775910804652483122350004864894924854479219813877155190566875908335265277160801009733808758108759489676441507035965493367899294141738577053525251259945471037786404701309880578695503136805047741539558298495104965955654328504603599258354849887599576953149811879929195018979408089722321714819878227825832847374832875001258542555459716178722614621898354592558296719332250547731299120458034806539725184980944282213870925047254483758360599410208979218245024127095253589717923410113583834147861501580327061077317536182129942864116409967797487737216333480006297249868507004895251772312211044560249714946503351430220866327079503298490707415590363337839995998751556730724791624556954281543294009709078889339426748029757174309687804453841874406539323200491141271511415111574955265272378082832754019148575864888300183671587853424120237778543027350878384029510896528578806156282539167635591217566358196639495560748376932172170748877068303690873550453983437382695818192624071173729557676342619436147129057418798668095377390039750661162625455645141315954630025952145160947170239832179221558291690451111560108423015214855939117711669410336391607845981374096115911155149755086862550099151787891306946067816623840069517810372363746195031036757099580223001072335321860330686136353228757876469484385624843519085823057370002786333024319490912512908101640824121095529716854721823355805315422437443368841145121482009072525661403696188959710456254156444133707058847877291774135076370511149848215388768476554311147942258358763038724975916185338676292808912354091790952937468790096003694372530921483372648103821623631735259088850582735961186678808229183614826414180369814462710508761659612042202480574939631298821935667139011922062511345402478455756818071349838904759489580830718259394548473249431405670393760315778500381916567302763862043373433450991807936666970739415231881121862873106501882822362529832206376300363151379741119466311744264505303674451349552144792577541062571631115945205138447087575829006770772677134904377148200468326133513302470997098159364579478026643792809481549316574644722167844552954824733145498705491188361029578511767262587996263322236242845769219563870512248276879201230113983655892947517163014454758301006357780462809878037297024379650711934415651355411739659589782478807295819856391986100146377774159117672802590213586127182694022275542078570986622125100891327631233999803612589005014940582956255054010152251327753994728511122564488114572691401010258272790433654933175594597162578993923949502323404751268062425225519963740178161041926501098871931902824467020770111981577843250336323085850366093699951143527186320866041660591222900507595835525660839694501442012124431389297082872837587024711447040497109458511296051302497209301155606372666809024568139563869520831301692828837668532958293835252471998282099981527494446887048724657875979139612937550932670991108145944167026237505010726814568665330055234064206349421513523620584937344588189983054473670216876005093131441288074933243704180728263043807241027984593492028771394817207267722505921548098989915187568772223795429433699723148314987545942416495698749232615349359292046224590949912208386697914980707241813715796930029274071620203240747103855797512644982161694455263857372090670994632642254920556067206453650614581722019561585035105948201560599102367226290124124456273162849665116324173213897484148404330879363197785018257112729143109384836978203331658477577330856334435578180396954038075312126714497004654412742790262397828192202813953994372943727820314667049053630046901716421391785637604099622046195534247813665263279114905155173895124634458559237296396221087124222451472656256041662996717331707465823259483056583628860610347278476491533948666148531755271485580173400704431032690137441810948954072331980628595943508108940964425462445346122200847427039531790441973625382623523305535902118973572994691893965188885854105239297626748793530100602959210912175201130878900955763149550762511538975991579696826321258083526776100152615648564780624791746665600485000732937927661285286291835598004438036036053617103109103406326502943704390404916962749142759338686945726933143140838382244527728606616617552408795417342363894418405511115437941555330468847029866110036981518760856652284077778578065543999906301717928274037682967859841631860846283954462009754278198601466236130678395425129178485589129070421926320896855686157892596094746795013596954307657192985129228355352941105535144863035443381464434706363791308427263174065961493090188634657104336468213823997753426812163353215612430686648693512684283980274204694625219128380927569045791833382522370935430525406243650342005811658227103478266252884578278908075611523400455054622847710154150504314341232299633956392444170555603783531741981826670025037614547475660670602066029146592355255421671778431968234369985421627682119513884793739189917820980440609590183370625217594272028374807122860972121352209405732265588614763573430378214425526577668114815582089119529189635802607191436433578259862989223514509613147754002278255240098939266940293318375057717679475071346354904801938517677476760065786679859115458095840836847779428896782651928317985384992734794924740798135492434490816946060396612573107889777740581957331784069539006493029912959609177654313573161778478562927287441992971554577072103780663324419001516262135034283264779919680459942337251497962474807834795715534096822852145738056075666268398316491788910780264991798826845126410111988639302447345558412831376295857724187893830006481436924448543416506091692509009038527426534322585190197412060711617232781288458037051439339054967768392130049696394883292317298816737135777179963289568218585114643406568652869193999238063069054573272037479468971910694554804679891220590273664550941894864482655473354567143439419671521193112805899283459028521143166580615398260773769280760725996729094873508511243967941831702178298601950230537710164853703069871168300544169338772031702817597687355077001361471171256216926506097658593596787635528087969880239491070092843287796941634969100146003094188060586901687034976001626076768032316204627539384191851504319033081910890998213041828135588303837426186094826902292779500078529366294712991642864597766480577926370850210677108039483045769279722094600634348800389158512077565008873555075335875146284840372000769470887660742251409054602381899537387873010802958854554960317774304775904255391156595157273183044192297808461487925392552107075270969635758244614271196425190735890824802961206291652451245606012132893707122611766882145390531009622009984764840256855803675055471148590312221248341927727037349642402384354264961256695570302993970636095327124487974058683732804072311976983733142094495121438895130835531440088721392452706302277607132339333976263967581357187542810154203799180681538780607545325957796400536762053466302719291601035234044052458016219876449369932706983415502075779098752062848720618175872078418991597648793872888750710271995671435467065970428478950535784178850163775476693599660979028017409233648375168239404694113191958273380334678485579253513984176282924433589499045357747184985397322842045212461408999890756642388557695669320949076764043732720066704442140213084684282841649797926139402626874633991996844789069768074528022489213748053980996605017650924697875594304515096612851669276085750428538491649991500905830876688076864376821695578952136015910384919468458372984056508653129000770635109051556581025085242070536325963297611803258081342381624633356509301540633092735371509941683575122866450944457315291080830143389693726839483125829294360276584554954034358627062124638431686746811378319931479959343854296107388459976946225658947533231000962500635080738879848688979970032531283193266899039972341503565609405273154146769980884806537235432697990335840179743755649587943211878166100014421693494353819916150564794092541998873235694659954376664746328662515015785427362622208834445427877314267681204779199667731792158808196936645377391934691248365832634776606709772855447050332305391561760618677417273957902111762669662503421279549271788631493395706245741956924877537801818478328518416171767409589543956709744311627718467376447291961341121924630096225519421969978313075090078331638883457069732668234530740025440434120580738393057331740038787474458840035781027007309063363549007159638687550917769677501305628393250520407080215803004274305861872393240621307616181179433353906653380090736961907472607382664547110505764764933831803939962958716652205658978934037011185298472153230161261841606347736503490322866099719782523621421776928839116280915320279171035078141253427857014492005810740545171355532361614888614102076290042318007178305371666602133410623293217019240001450157475756222509221680684105818450706197487895625637985113649287032952664757417883447712385153187716657574407221732720919545835581956569946870258568778227959497652471250647022973547762986633793850475169622288230037054847599117273984874925907456699711539173190850097992584425875650796621069788724611511166483825820453640168888045409697609125429977089614989743540816935867920147592968492715292127801012014714569604039288258160036415513115992979511229739909281851875085834749224886083447597860646756650682513256995125448698165530098397451521246996888875442141892759002795491158056625796060840233326479909733082182529894344374914789730621892212924356989179833827822713757293143145041487674342340595241340127744490041735318356487010236455841188618728811384559511469108658152712275406177224065054248603087357727860611700898022307433629865084728604333395399388348362850797849866789461527777665823594207812429110297150514158547880809825304774361433548262435106840590608368027799321826536548193873306908295395485142485764291669103588054828920574529812259234772271080650279270389946421080084466368019890811504112022135435306402133190660155446173889779145498643613375860927616130387040681005581541333051329106371601880554605951477064308199927019012714069580490275082487564471475497651223237283292665285147739459607748327840657258012257425590911364814311340270521224074116131847377727056870143986809990939833392423607335780953126935496187830673456433398380920943358437206926775878226003997461672863489002399977864303424614800918499491708376473185909046150202188771324209930820690880990236917996842762622681954475788509805551821339315935908474717443722114921096758909803489264957086603935694578033274838732225547600058315121769296362619801566164165276215283239616813452996091591933818930366132929991943483975639123738181554575875159609573192601484144004349448328797625548876701013930637682719780398298248180161093709616716753749907434061223511568375563443232028408744323878984492423669509608830433927995421526615932114589346973480794047556179090519025825896927599265022072542126687970518931998362080880689784542691475217813795999528597230781218208105700183074246308440880816044216225390977772012415128239978484085955801336559464925970510256654670530578518255805976529901034911431139519710935130036066138406924173853462251149454582494647074807555717911338453274521106573564234552140847920846167886405027231361172227002537522542386764959223978980058974266764591251942969933179773947208223621141463626655531277208166273562138813867454680402609749257912554940643156864040977603136453708964503265136406399526610825094885372186710027085858614861006359353477597572714115529910242912291611281759166169128530090292677902024620488181042445951779438833011792142003314898406237614328574408259403538715701468845262380771308151137454109739717467632921600643625752916791400987107310736125694521769274981328501501680908353506002702662255170700461988544403270882658913229271183573078024667083685258909055693454321793611480462423044807041045119556041963194832450179579036717430641474557899624207434599040458008217420307144267308484900642410854456270931690929744168822187903331676900336396129407882068391994149083791086977309372156124689433054788139772349968399409268898730514245839608227385065581049852424293340903169319656151878604740161789469723123417731719995817504599153957198093358299110762067089062018226571388934737843927093512999121675353200845909450591461179202476554993947536549450672523180379577386281006769400901427046120314037767179884802218812598901807391764499289622099728400925911157787922895383065592067628888027997085802013120699695559700752180498582821271831941993185687217210450146308774871201771052138910623436925792926330102856727498716622214404623592996523027145147026786291666383990365718862262095728314818299103824810041756201082037882838377868136053856472783357969516089676380591645855399343395287574415034832842545537600473298599835787543717018641556231276817607669126663923013167800340675228970171946968174958510397834682221341642412892951986650598178674424998146681183789522388860543392595018121265281391996369714468091673275077148968615257731942897136638371974607045705334544692396073335599088366260845689132999351246426708417649726246799419568400671364252426316263334134658737144624119970636610358994729106389490312907204117538747867781564299470142776700079237178106550827834281135004098913680599334583479425862126808249710693075855701958742243554348860555100323760773007175884816116952408681034901154739884229087108893024287440695127834092463422491418061233961411404761146520631250387675297870410123226550629847585781596033819173498617083735752605584534725567627089326366514504612159178281928296855642241630564979607307228148359579801626920694911064005667154685915932746109796070541650871004092672733016851906235340583453396242924945152982676570477239593082359195273714226314515620168099245731110235161123359033640057477403606674689847321481574525977690706625599337622444163921560752944050796713716247017998830280727225182203620043658729012279336784717240362908943457290849404435406439313999687305654451340443101186654334099414718971391199417713041951115963778833097765658688250090518821092469502524110527093479468845069138588005115681739981007122641379685798753635330837531679750815501936056363322930250866536555158472305884316041749834451438615487638197812254262446328011712936470392134764902760774801425867434276664362311220130260217844315387196662586170778291468025931206314491871132742142525494224949963000616528684012374951398476753241604626053447436502401336210872779219939465001043573229757959565189292492490376562416774549092007677739816541569756094805031996332396630134642334558784142279224659314958462728768926209541680136750118440513163331182733459813730547260861933027821502556635253164841529630798137302725410952370703598103801642232667933845476031729129818445406432137961443090052049539413731440252603082581606659250515961612230014924964498611153981952053088976804866533148007088499053663043578420336408308412030882722904104765373172651286357473534696472778856882508175028297734246461694435775589996801793398390449662934081063256303610100294035063748086586748593532469756899289482724256853049316652618009007287999423822987372866610859493353984251310225682561342101113150851135578329567193353847317196625907984521886610880096775598324185942612112267766638477196872389351329668402779708756022821572661595805571056079035397855424094444609863392511296269839914668884425482275919259094907151219026587337134670218275182549542878084617463565852948149578912611625562222241458129488672503104944152838924540008273816824200032336040367897712234349711109071601247218983127147623992015328008456792896833836916967909547240033103418007065152845820765733152905862333556296680961188835463897059647432866402145016958457347095603619146089947696774234945365011715503547668485071312735682784168878456175875158081094975965321880818084185754557242066524316916609165947831484176145111531396438372496176601420053509494653657554792866391598427232878795854839268253562726833733793694288002457462534459493380366345660764891069659572004913528473469010451887029141861114094343184894571106690180212076810868946599878437292727185930303427201947630016123124940781861852626066021223765526956511933417521216365228737357546827204440704211832901693159151226723170777526511494500886559007140593759161584118252259292199873834135100891298319172604995813827950748473918353601461988619080190408369580503742602862598670823356859012364135872801423064249082690797155424413724552836907154643835405401965476726255806861370438933742525204864175405745505854506417213396562566100727164199617406056333922437559157555182570340157770602541841352524555685286214709966706109912014704152244292049766094320053953926587247903611538150310476929265900174306643678432117420418885291290305078472996258881829492587603779816467264785934907624907218423065866525724286335712184667309023414860217397894439330933657166107638766030995563702397915025185258053824874656503661373260498861685063929553756829643288287782499994326812904569490096030241258285405615232284710373070072378484860597221704446269712863033674849771728922569698682290744565365442906432552747071211532483946020049016739568103158848313830167618232041513650625861606469523547695210991774591890301251674549545191157871457372951154745958312409519073764810678710098391338626741703063831821168215925082823166966044731810105864284886740451109950254554757239826153536070689157671458861629890621674235452123535626015092556811807641823150506494943661127703136724845251562322272309076841551024138892449891313853219726511198232042079255379680892079110965164927507916276336921513123378990030773947659321883363387340831835049382128362570311510187230042902457801132512951238824878521098410855814996276593690013438727495021115117990103918729485185908258925733187772562455009779408728046749990564012539079906388065701715321416328162159934480805603768295642190281457380697001893337753044934739132822551371519048892406412722322894802224363696972620530708582639969075529762609566021052187115323061294905876235693900282098668329277049864445099800001336701372873690246985714796470843111093348607597729141540838321395961619783634883366321928080953554512607176162116137719466521063317223047426706061071055508255090711135372376563756626173596168681340720903419426993306433667622025235658481863577065862177798904929633380024672036184739346729064775918737596615866049564020101849770913399804190791703073373029634756957029721980436015592162105050658210888758643361630161481602427766618086660196796407698592734513203258262784727119467520288078006161065146248764580148959856185568543303206066103162849215129498789773838218083566156246585274946069818378464349475470910113650435121016109140354320517536603016904839082121239196150225180973394486328170615139588011478348016012150882724406707160683620965227917238228939957812712234195698742533837683369377730492427083512357529019353970337461140600939726365638280295981770082733423722963341504276738633492378807906713841264235831284281682534402594094872612214503314071999612188172910474466965044290341237451104246872841074150264323378384379167658539753145512298907236503999316897663966291642193009215380144751837069440560387452372425082181608142764634317223547168984252550908343124312659432283073953541032939170215340811712979350744901245197077760860486007127094516315194129944013733962014247069355621319323656663273660801631233660620880505187105528092721061568503083005143184317723545308237609992428869303753184672058653669161076057647767982062283135406395306390258249808849755723201281556950605467782850391031588780242715383322026625502256411059451008440966234767976004733426565946428631484796158833937727939264292095376507198143589786006820246979700753478127631997234156718412934241386500569189119957559488467649021381373333827812674726575883845451269822551370670335660770058577546604819425644632873293163528479959977532391322405284519912899398084010908810453460247664224691344835445813107304949428307002456386625267844241598186775602405639735574100772926460090772455758258140646438018636064413110780099027621711625983946228503770053790452775820334220598943319525162048103882414044159875463319964815465655604251312205874130243206792298579757136760122811933967336700790139019259211522506011293624866171249829669503545139122991571931618829473214999102302853199247265164577481428167216308989724837665104188722905911553444470955992955906598136743104179017079360503486810066019672182205855110891807467604135484350306019283543057254496338299335612230380613084948775725235324867213117562038433412466242977425804811843936168522871667700853060682291608672245352351090546357751681454998319433077066620773302492379477883951260819435315706822990723737640301978170413206963378940369571860902722603433087536449300004728809500500534977351854362918207131281052177487136304445829632013567497775170348850438067101222046245224331823492978376713428384589184660349929853770632517188956320266596577573642395113341494196228139578174110574141596631848753338552597563348701617083135350476611088917960217749521651867657369301599304871132159441405856026503623497196391080173941464453083864192153935965866033762433502830328664378018952443336431981060815263176013302706526516820027523219845234076306027990535375249718308448535116082683122529020318689387449707434338282075596606730630243727955526430527465059841009040749341316858608473016828962060360610999696397736392567280653775428362267143512174077847562537475937487663752222792846525354569730131181432773766903383672086557763961749681281463891459149741923352194937710948618750815784689335037826541453329172080105470866854405834179678628946800084698500485145078691298538592642542901699358435268385020145764792833212421965976347930006842789689805011750599988460872828807118554472962350611811723834465713969548634354511743250065470633674167869501229777945089615198921146360649023233100538746189204184228209017539755504038684592349570721265546773217205017281902339990325439075056494364873957143032666787843765820746034476184782485415529728111257843798180636899901816197193437535098146414374005519631868867786794303001294455410491130913092560403215091450621248645140803061565670356035047598560023431277623947919282131785760134889622549028420576465600740468357034992818291504798949458419598408414839728092283100268574698311009261128943861864156497234002296897267124485017747022607938228821415118425934549332892530059932700907676177165751870949439823826347765756916647572378355433050248182444249992193861116367611088871295384213046881260987944669309365003940151892260920871653813653780838000188887362290723361440787694565634868562026223339311686516945560385251649914511925764385507253702822668070833879660748562013160641857931758614439697502398803648690887844062681581319461382367801593721415475947076062174219740474199668937630748024085744779986837019476643804613181222605941537363024040073257449164225107031728136433960672238943935084381120229655485033755921523158362348592366917330638433298405950596550865496264905630819723891599959898252106993494676358918940822947420051140636538540771710279526047171323300909391242512836735411646825870108738786703887161348138263784624314376330925234545180512236750770159099679713762719947922541879924388982944264045382387799866516382937435137459618988815005703594048621970899951379982821506958332508032724110116298223555438762522218661178208518125644728307018462204274175478002765094672480505326861951218840077197074353924177258107512662951205670167615723704117527165555147707250469332910449009775691359173616000372694962066916613888908391886209002556350653831952167584581382692144563556910307492124504936965563611447264774061588566987496988893501690288147978456750300912783369295975380224407757424903350845827011946324210506074181045399659489066649211872696374518002429296219236443395608940119639057809720464048892882718069786180327302769329914381016031805952944963921981253636591415887082112761617936797296054830340794838662043024071257213468775118898403473545784049302776642620769031590783397072662367586951966383643899231459382136511937708388343452756266020783777807207969518017716502385612805977439141017355007894942736453315043154099036959769351215064995058281033400629321709563488843365367398149742556060550619970231381003973508580678003840774259484388815598032794978002405205045400057016501712026334765751096458824331951011857757570055682037704438457290209247494433666114937067253848035626429323383022092119803561622337628124624425411429736031457697703462169904107896282021520083954407329160315325162762303787923062976173651821643172240991287508712755588972161138087001740056538826460087217533627077659439037934534966437172023814956383459036821475164210599243510725674511769829298018653507275308927121615713100329087889755030524705511541751578775003860395095050725402593174775916502045038733798566644274873360886624026723183791277206266752654161985174588648402838275186557658403275119903800705628099543294838449727606365096057533963519888714176928337250873797073750933521503869473769727576248894956505738599982417451603189008332684012139241945553489440892135551205867512068332575138080642414715189889351389997489579095988924764351081793786707504298614523288117144226628238093673018090314523419967935631577510347784391232364104222291222676888315167992135896304905976616338218522326380320152849453587524537099546674499505032880645255612398711172004868247586669786023891839890492708644315886962120214083907012062324446210039158447172120654729655825742521518712070662638796555185072332716648281481888237459573703921011589224288953951275849185150298377685448360972606743332421810063142419006300761190685255365771416564527021647635650202670998660102662894208965965205295222867635072699115599946304136004279775929832303376202921263684866357796407855758751882147304046299195556571106474186135221939772804147742019818208320610488160927367371769188781120702149531458949151936372625168282312166162555034470662629952625532451009179263470387967290486831700198816211737626174093078415689666798414497814672945995766501264638277670142107983557814934916703994565388893708824085361175121948461649395814547778952603775392835575303613095729217837630894448014379733112980893120391519792102549086159995417478039431899817575395490302745607126459588731725538135954288340110525165767539780032064401789857256171133068228341488078542900541981740096492671727876252365056189817314854824542314088684159638353926471755351052938502437387753914547907309469699053157875787318852225449487242610364215983870096573128625159725318951311473222842161414459922467857068659595790843723328387700256130211726241914601086023920330170998507564970944560380955082687985831282877001285167272280895872607440783746570256558362151452459460707917623912741144973051020593647454740818907544379053331611112364392057470220806732857407540713124575355049466819286692373026170359324133098163521535259497066809961866089674998822435012921650610229485619363793694714476080342977101980110152670112686147602019622365462105021856185080787364471145930840801214053060946737904366450417150467842496516427817791134464481734369156426708489763457655017440484714827587273769033068234917969278455536322775377058168386656529683688817610147512791898118389172447509928194402233170013863985382454734354372844251932006536337248949874351474461460917497397218269597723990633611508840328207677909414906369401466846902481982720044905839370569036057139383381402748142474858836442980721004018596302143128082268838304644425506564417404441505593854300923804244794034997485439306344361669037392874101899853631986568615642337962398904096302446427113258873908026714091501773027289471193533286048189284766552477321021418089792691535583529855881375167838372885081285691400111625456124425552415831907740193037411627912966693706558469067941543074349781230777456629940248077002509617459389166793322754315686942924919697821053361851969012247354815779132687713913846166638334105131764987153071808362006890437305652915048976166257539759015933294026166938195173448040374600704930762125319507411487546326950436121973412838888906467797281801445929410469871850226934069204228249925864301187427794234174721345570943892234236089570129603278058436416677923987835286610653153058559701425493528732713333469747716914073516512792099112596077901364356688821916588568334972276457100590845774720183336429622324611624145705106601006625214425461097974032449204241350257427209950010323111392613086100882143373707724691850141890337683128081157568117176522292225890923788153420029003842762323856464886846978627912071617848726348354102891104748234268101724716291786735424620020150882150304263770862208961265885775800614878090958855668564633822690392943251723881131043277229971764654060834491297440978778891925411314058179865897946782699624079997162329577175331311047184968105986929646013241955193728608794105815050121056627586668517478021663230362285582431350417404875856497301403007766501710731318930414852368498489083068291908712441253209751950556433610880751659698538273768268274093981555562545278632968994955773046282613683186713839274219095586494229097096798076871650742323860122627449517897131434084794306989376278234598083319811846344338067716105702610072831218601561432394153322419550191154097823275000173128505205911360219748368945729249288348895584799534950478424633286628816156818186705137694845788824394895949782451654418298529051212839483852747080406637889642710693911819785567179261550303630928517682776509913851773492490197287668833529126073737599993726108954404110973784978509349812682583353273061297533915665177815526503333540480265352048998092754593614511653643439796992539859178258440754134408801343336234217813900023079027374446919165512550231143467927653840992034316300947218745275362811992921094885584003917581659138369544119871704130910792278931462405104473913679197785324330683510028042663246208024216052874528472324928403370084646215015902700537088488530846718148214061806511011538103379044137183639206209065774925212891944865666413668703331228399106843011112350759578691038529653426435821625104759360062649327292000060175395591836559365091570465507896433005020897988496523614280278793817264391599383172224897607120408440815708444159460533151484794834630538904519990613049584666532659381705213089496187055098713254859161474831735674307189905873407974147448264813242510258870821559036393267113217398407756969645706659957532113158682695889907510324674905175395444616585178457248187776697386344415505704128897338950564139013065470030943828325600945371344333099947271456683956115831331960704570563586522887018750823080056690913605030513883978576664907369880552264888191768994318193674591246888538827719878558675786718255348954565244285144635631877602071872970955597177162254943271192810367353246569078698016935221607490870593342661756201751505996951661615785771341653751544426525984337124536781690706505759128013822076814374056248279745166851988456522059040244369208672780273373775162384943690075566615353742015264514687904668896644462603561172360013434051622390242906535626519606644680268915527216373548255361205272944133887589968781692060186637580354769292518300561168107581061871337528407094307857480371051382320356587323992630978120500206294936183898736596768504351462282643026227799544041857005713289678081818107310863386465496556082017059185139924809182146813967708706240388102459807260536565222258089181199695706143684066629911092064745840662674944897610905962386334514522794412326908740847009009040510676492318889357268224569487330277931141756816322785205461717217458111428647912985745588038080003877920145571804285614120310677892851373239127933575717795200060543321638578954973372645629748412893279164753987051192964628655430040046601666513601547495678341328916081416677426903208476861166390233156864624624425171008413000586270436464558114353286822155238620122043101988411335699216105748340926363375643743359041162600747572469069382762335147975564306940821538976647046525086468421110091404390027146348558999657994514871557028560648556829033713191179813615332350918830468148101301476985302515595009423006682857588454075365150741873490974449855043627167652925478844764887271286605727926141009071556593626377381082208738402543148064373412821137182910140727995791528579125528947962393604763807936387545545119777954694570270304524129056705413180721226790778540652904279997138540557366920402948654656675309091526055093681536540468284264585047533525932136249411322676677471786359526618573968679245211249234717331337550859357944968732844006891033874359252315484592207689897670709899257031451165556308499102682955508538874473889231607787761193983455448833240976853861181108981401680084779894349058185393472375487749860102453605695093472409666689523652163021055086376188926416880816834944262014789990122490523945641384921892772728744216702040089687429444976898998898115998961777602481347527968079413944448215945152611197903145374690827986183528493449268382754624562890747496169118118688628931066076611344608673400327035551893575167870366244798741277978653578401586121015379625668305355790153187068989275601738193264464955387105859846222636850953024199010354126630836002683072097182468176595997929884638229142609747150061654941764074114611618688118747774724879245521854016663565570229354207089014851398790096800083774479366052198051077636009260734087536677993775448973665942416603311648288378779034344360351872847138835234812476909478637352134783587264404197832123324521299641877738640033537332273574274915904720075287093203455745202158207406989259284578679311617193157797415849877960079127160314443820996594210542235421215371357780919390546074352201067546161349998420102407072135829867202136713291977067748563762932865106319404811899605484874188378801791750871334838149830445233066847948032643349265397214586836983476481095413484088876370162025379513555145799455803279114244128212945232693947357075338967284278530554300662864292020382009382454798299535618528804998213069531025794127020451305811804783467718436834395055237457524849320349386491531342629632230073599084643141700536485610684886986144118358047653052199882686727846102714959948368204153168770743386348845909981214752814137896571375408862522090847320247250479992363279513729655674547350893194592829991376853708058722762430633356059089177161619648283463112630987768165148199908936837612271152667465074733980020799045449473795638116553219339261640363557928221552260860062877086777454347782481241292384298630447796787430799429210823961150867103160915688956188991034828779292649338639394514803948985899799966106677012887947992101909931804602354716094953018318553655338265780549767328321140288382723162299549912293978577023125979725723231798005184731637483715635575873735012420956029497638868364141968768853414869488757416561856971444823372771049545200732175673168868281976644736239602252446543860268625352831488222704926828742695028240046502052877255865841201934919982204157912957091035585635507545228730753653567744341696629357008194085955238907918725517389029853061714488756367477358773574308029100303217714903079863200631422920974880532340792633953588732689066155745279846220900905040347237974779091058195433954900790409137624319346333870009854423543419280387727236639448025355770249202566349655594520197911421101640813696550022646660245536550994885128422546736693611535635841639053212160810491380803018356203801752841600291079239546096781128900312440727357832874504954945040601533176833845913511771997220398175084703712908372103155091231994796777390478109538408096146729787818096637432469915746900882307433910050245205829311849914146887064016714981027471188740960417114393378863499377235076404678709777131000699345261916659517330237127573230385154174204148086738128371048319182709674320633111804554336988155533565361158340024061813816996150772051580883687096496093552734999547033910884622396003674641344952383145286897456071475525885149493398567515143933087246422625161143147160785664451313611602555376326092589569409550301174518720511837678057498434704089834878316521359560498966924899766128778941080064683042962649874868059354009934571613252812544561349717425346261920457503850922892127512405556212534370259778897065635496798349352271970897118476987764791981266363444608383989687495576639013745123796927508549380835820421311326171593420986525049241966855475502296814343535789494730763048029173502776114382233293341605660325359724653118750487375383001704047931274661066929651504318959406142853660414909548624346337277598979175273263067110734242891675537027951270756493337433020003878526395859377740509385707280924641902716787000657150947207295919780477789352252733347599615215492387760062087398667463758398063584927378045204649684262913354507581211014018401235815138257288091753914879129660942865922217024282950295785707369095196054866714666024492975011185116306302809782667203246973275080239317131839491968642326603602935467160647981822190839735009453483897713051881731394445028582363487830306907867938368863329540553559314379763014666214963331404670461976009331978200231660712862113687472353798106911455617356502829734842223945098061412303113562013926309650942249771541969806443435407649716488115633987799562678538265992037853116644306019020337129221758399951066794479432385105710215440440655146230077284400564361923538678251766185009706521918151375834316144492078032531064723995124634889392002289817115509666186290676766712267547202614262412297194086224427844300931134525502106339988095795865391982915696843374389027302678125238380398207506257753222831373908500785251138266755454126715099655325869884964416267982328476061592417747803332425411114584863347639339249921961588057683338930357673410534730119431566449140501746760976876643170492594580063972790171651865937467382030777513482401514600188147728059587427409160553890990132217011172809425841089384514882144466008477866234844642280375332512321709461496880802890128188732537844061084836789355115914347506919834103467872827150745865264494729140811144747974258008303932483947974449035850127337596115435886107409307814705157838109246249986170006716156006612996505986621884614230282416024147026721030566220843173454443539268793146549001487173242323574453382384665030205474882566728497313107277588517274109138193246839664469858503772196258436502472411447575606721814210450423931827639585560769458118496775047830512007076175039393728365352966052459890737657814338123874294837828809999903397795803729597176657036542349424057710118359603024150586502350276080846681228237430305722100604923061519024469043303673314695699552236371644270592861790196477341321693385074643808088756800874526487776040166370399481824442830173097412989906064839303002700147502982423744453047285964320009355036180394769627597352554661561782313299555411652948153965034911257828751916882474800447774105750824762062511122417749611748213110572186523033015370043554469115835628777567543383509106288232365237918167886696607956906276285716603202572754570339197608583434305574874117285942749415534401019200927607179794748179963000278378534610493705049307521708652625345818771719611896779298799125446723543597345304110649120851797800419891103599858913657565287584683376138510124281034566172835401169405800977752700975614590414979545521616468920476383932745716405757494101579809036065780460655311809212906312852651529752522012623535906679928864963791030797477792082478725129450721737627841805328272675631492026173330700250978502845683414826363284529774844891605347390227281838972982310640244264103885293525615915186762382318791817735844816040861991993523853714961472648593756406779477519785060567417329145431746105265984033775656609760247981770761684067743984274757197006813652954017028116153996714566991422311834439034140098525169140729934855565210651053875866780404742691678797746102142349571863396685269168218820287391552385754975439113999753749987495104489286322644503967222597337285017078525753357902914834865934586791527410493776389217472359284577571791668378203052545928642768221613044204359694147297263185549202027280899268904717442064124361807033922953904508801495787897989679855388611264370199550321119622173374701204081296421387523560294078639370713212621973491562657730931175631059142321084471911932008557215179401742249038626136753255568157780474198677636406706324357697201628939305936507331079849116439281784416614516130689751259488243025370307832249901441091703033250351741070940140058398889027445153219860722541403601244107468472486198753493709453018261530018314198849479673867980366941789146793136255922957004089629896057733415646981671471242025485065540818060925495308028293851795122903200790843151605861812804050894121466993130534184135034708871330492893653880635821780357817231765674680263342117383272450581648652924465257979127375328171022300553990007398488434944460649246900432037378261633888163447766231948910413069143890820049018619197757796269823423354907943866595233197454210526911874159301581806008262207521478369111602255661010014953495639493177406421839175448774093465851799176548908274547922333017687823408174958387187954356266020300921205818393858018336550995963397426857353065113212346750907298950431528936039130401627707394086749334457687524081942824284412175037232819173337877317296277775222397743133083391664230024672944991781123336478773939365081277065121860397112862001271123704322266520297876074195544950262781475762053943169436938330058336471458334465900320058343000497525144965315300543180841745754259928118958342742859613032850895681325126103189931713937106311000905731118933153568569498924057006832675919823063454651323747915217585542284470264934787814816527141581659591957232610401281262957986741773007431683935681799781891913467059803400419361099473221684147025348243761913490944278894184187047387948161291869517933574368054134492736739823637226432771223802724684487335296678096286189927665472189633640722253179386381127668600980514812874252140067166654982571708537795038725833591563087432373094340926496694886981302373321343976377933141024145951652683613535905118174324630773392418507116261002487497349113256406504883141864906370757332570384791744110847964646619584128864878414183689077888697321712536215920966383031136109726932334939359695656891922463694686922609663991235520858300094881368635023940364745969087947545302419437611835170813278412190687994113760712072416885827025444508510128052903675971252018657569418279834045577945872867879085356945105547218718164846502873985636744490728500212795612393670492844191511082989786466887427552035073713541737489511593954577871511932604736935612856772090291504067546242068014158696254078433232469297609021919372665870510670677902013307527753154773513787707754706117938846548225669926203954306154249127967957357533193907005598177363163522498029838617490040622112084016693641619656173174151327339554152429159799797260301119140741735427810147054090573377416360430668164466684457540078898362694974408996704636300578454635463941211476869512189773114348796882534280052541532324944886329110890324962287382347333910143708249567193447129644420290405393507569046994760401356231798094071584087500061365393355601998806479502532103383475071062122161031869986670675638682360201079381948665216407867917527078819100565936973392770039648388044416027466753591483261491129467876846646780133467929241875738016903370525381373197118636928774273239250514937156562490532446641343680225150120953191031157261824549868405521344693484410228416873504269239755090860439785543730719495641342042428324504052648660087709509453617311863822806442247511684615298247753665874116769398470487351835684059439523260791558708725205521202466994850031377783296582770785039063432201249270838344307663946051595895425871741467288830656892142386393799863796493472190608050155756415153180047084069272690798219732620813868341339711452665551985349835056862794032291147142954273658609074642129126140529745650318044630133503691799959142225700386848911955990776334165959546253935349025759654579209374382716297721945964624163900488530126216747140182469955445083350809824873021222774315390164787798677368151919763939842354235392185718156490437918387262953948296592000967991650859210058935074976966211496316136196043494006929015256822839446094795924391844487217194343380784675000185296238336352306572189235166080943952309281349200267280082164320162563853879479105770544582143654245306926316314618035814151998821413682899548924063080869362242937704533822211228689228549845496636953726968486123905724309855597739566315991038848000365687336038901210163348655937563470059288882185092387142751131220680452588307661220957826091515809625353355094318213438655195141192288167317463631153082760451573134494610704604099197088491433187097248171191831301772372955449142663262822786855321655398267167596727422265968533234222252829650551950868700132064807453091703607383980249389277071158025653366461328279530072941850675463306148551021320326989234067128998377612375671635784817602059904072801405324050452067249824041635562108376632333987216650332084036132888015197874972105149294068162244631775079753918463954222849257782940501548338307833871257303356977896542594005307684705737656211616157503208575769870574663954304943851347495679583061608928887394080533009533662798915381495127861417635299778607716528045020331368592756796419727092099007373424021441497273692041389601257000051800427014922538679425882273269038893354351967842405383078743845165353597428871577142301022731490149600414444341894697362395504867589470021103829468134643053568314917337759950104140786553540450311306324894450436482787135065025328992141190694972949904304525712150973369337552621233917982906549840727888533144780717524017258248797387745376061221946702489902567693786795761915928945715146172691791046835618580213994946855731484026718049710672016411023439564058021958838048713550349834740099376255243722911147700406135930640134914287729085425729010345795525004637563785268217622651921849168728302056869355265220887314294160274060075181803531046766760826510915434228663743015422111055898495021996541081188144147518927356666594888803981868142483545112872295789029675569900931778416428416844315804504963233747837148018039220491984014212977711847161826403714687580689647854475041271756701351897167680307072048215414739923057515365404571415547597983422509707875197933603974648507528829126550312058887457610167160179601403439851875634759757186484759262789344207983155687215478616553346246530619012607149671514208641155064382699502483800124383460629825166820491274537843503550548868546248882532403810532410097966292032992032055501282068018300716604469240479132184617469881238105586598674464763880644413181863406971889176305494980968568771890002748281037689324004046211238168989286159814342898536354341999505950922344433080585683609963394120705634109040155600326431784709685121680123866633326830338454103648981134844599284726955999367776608844016795411995401845487355107641064523029755798346978563838146684837536332409788279522618241583924336062259044390042913990001717437325252064359607525998204942303972514521189416341940339512041155333251377920071455933691745753418020586280683383862899716925609639392301708263360950269609680976192650586664633395994568475223473323056618746347176088088830426856817288415292953571383072550202265537642439297554611143468726730136011739063093406664568527175198479182968038090249866391349591172164584239258722871729111030681124823135021732366745356143219115519220065427009570110993351932555393909483124907831255122133077854242498032639595330731806527223534897737569057085722559879315006951956434193326328854896950115231928869253007475285086220914238426144154194223397478123460816067574847060143666942298617580848864436885398444696609827616066213441210644587988650228729071644760400949508129296394913172066370513967269313073158984405702330865072518735074741484409341496391569188452794213763551974446680206177558697633804775806538320864497273032699381227811693419549133832515289777426483603999010278492424571559971394427375432162144219259694999134422996911332492508809563410293477836002002109741757419123403866221078428586854590535332689223095947113635228867697376982521334865676937906697034546221121150905264730977731530767494418534230132274275036471199907431204727045329770131583132642350739046745292275517366591237601666694516018314781555827309369351691180069016362581159076757095986871946742138091994338887643058664545611592176187458812875431538682922733673671384643106636559351713646368138950968188427641404487130094809364283748929546066707739847448523892254045070108243146815669672499957317034928869564856550160159844626666073918048440149982067511958934260794068957756627041034124017730042461833815624477158155787584231170521356608614822530820189533995437052218674852868817258932313698991726618564450668866044657674475901526711659456853383110314670579893910134554666747572399961938021277391428882982924433791935741562195340275882809434568311133058070011067438235595584326021346923720033750734012320851776982450788561470327002099489879019163504641038248714444065575243737065877212126012605488266614126259707719128237497177912658192711909451790128079439276782532059247555320597218770111457827611303837648045994825104627475485209459371728721703212024951998309370322988580430140695462996880149360023414964013355823528385661545365882472150027717655676099871678863943399755199649031368884755576740471102613900881958424891342485852382510591621606557930894794221094182111283016934779787557461788697082565031944772686239900699877616100539193847720791866222007420350948983016002837249979051410735213912278626891233228637243998138713913979219160116611245968017983496977506822620976860430484012120849786635361406185195752487850912443950308069270132964582760318918291075586059240468968787963014518057973153060314780023046487209393758145718384950824617160499387981009759387671803465300051162605865705551539217012211619030325268153846205983078187460714668132168341453384960934742456860856397225794128613987924836785918455186130710367715538589001561560734383159817299370633638622779799543815825805294476419304267108640349107409602815397031299373151690200281601812036670523922878538939442211785109904182011360446464053997289915946530703383907301210565815556705008521996946902161444101449020518911533508420582296005963557245701602508676663468930650560693960219813182022115918806963526075531329298354309460345808717343436177523296220165192605702495201259581942802164279548587960737323052368222108464158269440635075165177725710089346747788266338657504535802969922418416085014246560929076244839100518012550223951769380344223509766310215806675047279685416192064451158193135829216847366967746674651536318245170239778302340695548455461875633265313262460976050029878496593575462014812587556586527410132982573245529714218907588579825030237879454858707332619198647442909327245177180636452564349640448168920310350957021723361391197002011294381220288992279095496171904404696775368595849867933764671440072561638096166314207103098820031456447337293158437314548844609849631752369607325839208368865858788389460736298055944146371656594838706526080430500050613805002100812418693231669184266564206509544658920007033879339455742783100220510796814108289631673333775374529288157808215733539541926805341715072279009118773116580146292640545378577796450143726848776382689187359750893618925236546032092670663042327881955836470309087373843216698497128801045657081530315834173832957974572855143524558668002895065564227586220395785917046171598588486918675356669454867480346723193263997745481465655819354746133221134412551503685942722831426060548637329507506351740818319331805412173775404502738348826668120563582293589743791276797797555052822678687046105192384931259009749606659481962039283577205370966120538269598599927369671491389571247259173411433695980100109170431346694292724404340674940789519688608070654486131827301711345646042315968817666236323563356040073929982954522668929179946445520117197226615221188984107015199829080393181263102226793104023794724093422363983488794866414085621700992236785602821559565430425838604132040423114562107559508148318111169476428548564078201123664901161045915377978227847110387119093638172098453159104614823909393832365692962116589989889900339005118987699016617471997074997443662420268794604216257814347400874820221834377932474236800073093276489545006403708045135683695206544933372665663385364627671967178543982213233267532549061703192179383562763005577769613220028541275771800564273855084344821896314728349555358736380026783483426678496527503409387839003084944326874013799413813983094611121670159292794046067077424078284387287554454425931295367111154255899339559211817449361449692472779072247074690310449976869384081056285457275548059724648261799744744197551008602893940864207783974105507168266681065834070225761603738617364442180496443600576636311632073985277868682899151866342445753502344020590904500374324675421616747483903282635467846849389004949054865689585940404920464086257793581664441758898721979350120509037982580254414668547786835305840495754802346530090725331147259250828112435539044079097960386807827329117846792106109599606507007766896001685957607112414612246429792105642821186449139506768764935721106779953885065093656898667301275304312023425955149485607415248913963943120429067539035866560318216552374074286399852352212578178118960656310865497144863733665087932059448143328704317966481299245126234653095193207723101816440092700852975244312935037243126417326135514206457910046285537119439491743084139857697392929268126572368053957815759877143608999012783642819225200549458907837816598257507051550222543774507805908999886507760600348882766072091859827090512050813650757906568374277106196241030840751500112102546658050363443289686917839485011316511370043788209195147626498621397472698270738267491237791231774739425741875134395905277636590872075363659020515839525842426342924011657128347872937957837143670274061548992847849607982321921653242307544533456285596651143582890467719115089018928839971535516611236041316515289612280156609963181197278904106727716092923098712852168502956551722826268218854227679041061180894758356465199947663028971429523314412534421264340589510875305709100908723157013829911349876645032850662199945050163477831179837474677405606216416834957608716357526212283985520941857494854718038430732710107974800434543017310257217842926089443267182799883846017122618993648026015619699531801291617940963870942419407175996941866846686787756397041060297013862064298418316126131318437423157785758272072117210114493756792010810439254311367641495867345456273763684077638263758247322955340559530006993277566230987495141767658224374359142062308648765611597749628631370441039195822685108930607372534340352424408158089747546055042229000262304474436268564549478301118921003167812584236074970697397293762280736373009070074821936517097846814912139713879208902031434190236269032245373748203467699234401525613707907188837886848150110432433594562263271192961797155954255314502148955835475726118851426977274860784208455584379951491880643257758468915615908052311913009897758688560268975174497039478388662963038628037207152272764318811768439775276494214537203701680520215627301147915099282320871451680339845578372135646088016780964415461819637579823164552816150067241745083221056050387312612583982077219428557045733955953556191840073573315250766657327625116133871396123818015786578179327159306634032672746168282008529436693398865098512027651512833068595536654657657989458140078762871367511401234056168932638775415628935892236979260485971580040419664977319174096713154361040234968109686397892267138105952378924610895303951292606296332194110024606039043096324445320338332642837383160021824460025332510361818607862677000761966274909900089411061137526239930073186075931949544583723594930997267906416870177039875579340766021834608861424473860763171190844698451327120922231269272871965852034001177558610876562772944381931985723203638277778057041414978273389682473490360231843274373496902358781200669930876151913952636151394880331233643785178901995458807129565764949401964730028642499924397807265335431121139479027078762705528654601156392084356227795580675709619272684114297291424275561532458218225761562484360629934687214162424513699117670559158611942197533151603344340108851287011081174728260774574269711699462437245861309698132294020074141606528150123082791412322299505254642466115382440303479611617627492635018607999615326092741691593718669988977896117849622137153956857545156993555612515776171315322298616993577915254811314652297023137787885874091668849615810470291954672635800316197304109388852253214217571404739541976447767541205123534628022148191322362791715437528254433601546800448069547710423015644745305763239624434330838214003081652370018013362258358275309600773490058894801655131156926230082668070931148072806580822295283746335705002127875730007047318384325164837977692181637916928988256586126702298351650899545202641849564501073829539550678990835083412459986316934312348697628042940134241092187307340962763544581299781811075746218900147757120227069174908058663467892951417985108431605230929299589662081754641922147640108081727477877831210434586125510433910923605580300240132176883515680569631114333956493812337681414284553720191044102596298481532217391236382094667568946442260292751574644037348184456575369186130341354891309970962578588438836939848734449758965522693252474962353743396971253531043544155496997941189076884292358552507644296967078847781427616906326495556090844075055849655579048371886174639290029648194892299708200829344266709112732585207634524823482329314684263449431363890827766020919783131700197721639272170281710696467118652892530426335163524618899666973975263357328848642354303809947496962956668847589491962372650305695114381867995319781938858368401716944491890838729006190099215689612730652003199836342161362880325567610257544219744505640004004742583890527312501176126712917288864260821280942613563176121366398402566686205945797636640586262909196749221235019791331472407638370523952005829208624389910681804333564883170180682930667395392136760186374855475444355343241689088899687297458276843064694023765002371525986298826871904657954220952181905181934589254320818629384843278465914929057027835565887035513352910676637984355050598641296953510184068743574315508226131808455998986372245915866311788834617785392609692145014072459346585475599821113922496100697316466046336103800072211906837519483064534539227410396776677966453430393330230748245447424584864105671115793621670029910013241970946034098683928128005318141908773595832771778216565143696990713268456672571823045557852210437519622173508868561146424054874715869679427848118315411695585053673128823081297967210570643122471844113803410641749844255575195567139552487195472869908129246198974495545650151217741972657713443597666559089744845561408502163369867030056608757892481613351307998159032777122749328699076337043228327455817805540575794814607089189000839156319874577351397888080667544948231477247286515023299917097349125361470422944053868541853646924220003764605443842441351713826417643142151825789549874900011806670453065101142586588405214908045654936172117933488061520574413648376951887828306449779521798263129054536556080545210027766952124866023667274293182421778066409214093757343333194722064309814144592241156455179552082416071928285527874975906824224625642408871358073156277733341717626019840546965454172084978988287365478221131713741377010543363942334134119836802230697687609193380851640160957084344556902911040453507247586288984148839649986137632967462637057793130671175261259839069594087761572843159378983350375745347896488934003848589996165633737590918529262950198575740622614286374521975963928770078751773694837877267418872716030022922419943104905800409701075508758761382521628352889043257787663028878022062281810540904395411179116133656561146531913021906409596532631396714082245165835025644462163647117674428861561538723012904167280650494731790636420603772256796200537266238807070025696178880449938916320417031477563696077899948657262099909129554829860198478745327428482141321343707929657806866927185469538910260199153206279683533442757737131527936757078903304546422468788173504697529566438414999006040352471110832213855456077798022409595987580171867842613696183164090913406740655746049947884326585944701368175156561613703768328419549845753780977702690252474331864346446393863433184448949229805467781339431343376494995088408882549226605150235030757930399466055365754586680615343483289481779127073217043372095904334534410352250324039771401779113658914493471147929894325806682447148091593692987777671532636671912483234641884871229944970070337891644661540030135041515914782558930523092127070672068374315240368916153013889153018760805945653023741860811380181357027503954265062148741610487926000253574459452604994782563775131018137104740063199965030624384200176836990747084558038621220512998723180769662469063700925429186289443410076477468563360190554354240853943299519346156791418675239038325436094661750754463969889852636903004997836791020132971040172768169599250291911147498696337214534761366683738115101786948309997829250544096475200446024906906912402420022047797098204293492367020964450765364653632499794039149414545221872329017319744640608592409691676531208253121365058061628451580269593706081785302166528246173079118276432384539159683495896394830658147822040453867408064378742034337566627977414407210736247073501232575714844615487035146534418421979564016095018790463406500930837020027397211273818657879228685449733886775374967893651970005727628411052993399380005892937408482176120866274141841525072205618448756442109370162176101529736194148193374843077838015177765325572117891216913037967124479155180549286124632773756364459330167511815504861516771858867253202521797787943532712722427591669183464174765528309236669968121108528850371771016665953240921226725050007380314135845584160092460011811800245840288700006954218204000157606493565177495567669079274198679689064654430975422432937578325978702270822514825023989177583143722368657992984565050610783789459388256843866106387749119271434775293126576562939858694560775053588839762075730328198305856191095892768051968930098920357428848416995582259287684420534749632059310076435126633833324670294114921985327858280283297328089297453841335685927460466815802209560379528671401198444493381711532558957365713164623756684877594971605076471367416786393059818174242710672904368608086117989646991815938711119289548970223351251562033345537877616980359773114745726748366785943604852387607519840882873566827169861725876925884656502247788963957084500468547978286395652605820210757436461432925061478124254566557251772685789307553973433233377108362886946607307437498806281944942524048180463994735031146933933582803159914729147704123177875405507223204116959982338398150314479122348128099272155605904460343131480548038823982589230131301750778178586606515510024708543192694841747189587537364635754024703204543338187776870671844713059312276027263393793195391604999514600634679986143783540211351266718075311116026544703911033918712573809895097685490810818444929457097856346928254164956722337574374128157284112710081336832975944243574926758124310157797953438931826149624373434656476149489668852364279511828118414568313250455095358969544122921666735236378702931301236513694831856727844079749150482852781452748399158935167061188033095528795215939708933437344588210482535198229506994611109170956063085253069812202650724438329816975111688580234680939853388236073205513179522003602160244447619991529490648877560746459939017062065759214475901784009295626367719455239597213886742057074788221858442366440244048956819189343885539581101180411840257509869689986610648226579876618506741194657125232081076779785476480012886390571975347813388159221623716358413711240603150562893290187265740197501753235749857160331821271094087272897785769422209475945712331314728019563416757388609066483973525910418633779166545313158266945493467975686161941820427126075557950125404159934794517555445277718647252595042267230307153601714183117753101736346074452547948522581720029693388565082776553626224339519613395429419506065043136758343333207455165319980300516399565738796064551519203282551594574882236700491909132628147599936326482346623461044163633691552425027580019394015770328891393910449883574706625386619396675377129127958777371474955212935430658621859048700180941996231071408001138265621437874371630624472600592052815241102989396306522204851507271350216925434714461032195121030182546362571542595786792351834053082667385046375747312705577790558282375021744998649495142183166560016501534839917623334309241787125613282043826889698701264604866430311243495610370639571694860093638858843857405986838071130528933407151502822015417033601410852942605517578523540690948576352960287383651514804368843350692379253512486291813678243860748467662809087922205280828474696165047800574526315707350405288112525833750403853478750689928419476347694561187488890287663287728727778457935589574191055377846787233881774291714272568823530753530041373461198614849483446020485989115168501199331788618492872185440754415309814130178298499006733259176862011686534354645138099328378295068975757445214791115792245837992741081853425371991347035251195689496914610556930743241241931618009005153830765211217678222957797249028652865857666535978489901814665089884192388237201314685235416204246197650827367038842854184240588488739423720574204036847103672692881120725124121194968830018383166582191886717183313814216920229001807071388812979114546417363121442991573761621503189428782093993653507199508107929104805522292832484731737768272501794184311439816461539329289335357402469467968887735545693368535219211136628636659259965845188185673203483107131145274930871617861837494419096573161369894397735334400592614817828339715556444752936992666185085822153176804023700493902709362471006469420653544474998154694082333411031814250716091026188148829638023332291427907013954931686558399204364047614552044772674728804880776688785328812966474764137466438582336036412146212460697192501095742770211286965864964539213779726298849543820568920924195678278307083015372931159875127758274200359102274067493878466876121594791572749648381294984098607522576404726242132822467219057599589636131449431265472371203930155405851386385170706611504004684839601430367454201011297648504886939963895051441737317011419810601119240474735898573048864948686651285730486544979118207356607599215842900473290255139302575183811537083513735344077198975100825273023962847594136000912642970157035947106397494773136366423928321627604641178540300706990856021088093267129397668469170891730918302777788461955239375577759327297233845447732739121257555053570319463743256200334962780559217203763771921947297334595552554830992587156714347805551020081450404946568758993773379275529148747841383818741225609469310984309073693803604601315180266498522410093750074190785964253937131676807994499645198656478953422393116998925537036189349733633959901078638241665849324718423573923617793276099964479962262956404239471486238891284324599049944816238127639111669559056543326163622346942218078605689699061049649164730339061183888637328393659859370476414337888488620632801201022771228714123658437191068775510419627201080616999250339825320545089411071704461996212934508019897419245570846994857984459982345455110701526863821457780784789434856626925630333847244132038357781051533717751320007517696867911470083833268849623852278424271377361574876835476310611064006463042538128076032613243653694720352451569634381401363824698033287850387590274725190469185716464185190071867098438467345000246971834856287114632318020871861220956281898375689942886098015923400197045077944360928224663617367780850455825920008098086861287318587587271204449542196936463986233891850060079007961886290633965741789672913470009096784456297478198146736527103221195043971703248476033443929442208884658805904542720901471796797330870839236504649720998980237968207426317876883185099896357366275684135839227289761629519301315675103247142385525586074577523471922852070370201140971067201101841006169120772340953545425507554316522230737849744846661258408470317139522310122917227083763593792993006897385352428560851585802428587757688057247926927276016275744596262377107864104743270705143272265027388704446212462817758347514511383954648189986191796193077496162570386727067643828602866418641514889155053808070458119177750528241351651632232118105268695393999346679045713136223091726669647404062873178187234200502039630180630140432450640912309150822680665165830555535482097612379397910642399337185075415885886046989241760993932032240628940458544522593974001579741643571936120115412916598775824887558733512043870215913755642778723244176664244586136683952197862154126600314101172979637915098092274417072858053332139916152619531191570802077877523603117747375334589033560943074633720223411197658862815014082030521690313864420094552449328163611827687957208272386733423591763122030291868931723144058402279975571332113401834015149832582756530473071783138835911195454620483440678603174890726771366697691022531043516739565893629552683213052712714434147383083659544719290830361674257388981044757347966840576171402268364738878917991963720334248327345955138309695798756590566731491611652899654446218320013086221076492742357588315522709055341755514725649831907048026168351236920164624628628937964676052403888362445706159410516260455879375273207258054702444492277946262228835967855950490287530588297588006122202395828836662914564798402177141110035151485347624858760590174005000710954244439714564230844732134617364786123582896385560324420337297904960491095829685981972879175891362275596649332925237755565888083330562061287499593756932928580187756853366743762817513144732498908022154040833706926189137351330783471348475187456138862431257094128982511640826053674218464269543368411295619777243987735155429924797625072864792680766064781530136527096971579332653226581108339720175653646457114222313393436129318477650643730455570431235956554607708909562622303420200704302194705548517614077374122629222225820792122604376585408120585012771554158736405515173189360049837859903134676899514917538839845873122741921141012206641646490147156727611655945037770520871160809293013634236239306130274589322446537698020376296423710270771819872044919589008174515327806366926456620330949452366852367525740721486443499948167191126216379747042636272428708583568989910364395669299161003923900953657570213411155747622693962790781331213096330364143982415305342672413662555576191011173993164406898026524653076111585337040543981331785023688604113849036660553225598365860863125339119919231283925864559040538056908543778898404976828966202134203124243122574268433112003791611528941280466561758483631748735199745733576760115464256815794561755321957863258987946799186221811725917112727535230528694059335972126177450248499462906949860005622585504365570496922077523319159051164883258370459081466922867941875334533537719422560589862750183916584534503191149937960378792026912691171454331333592738014523540285332402884756224951696773352876212920672616022274146904583734736643856638815914860959697567311774718947039392024104193853248838479045198351308627691723492657057634050985274895604823058662907727424850681648946224982568930256556214261867642158444897813832149993004202206972787233548559980695799315697097566509586845237687607497688998212090398381812883201036733861399748915490668226114250872275128061267385626697826269007157245700280944982031609653289540363454662275715019590823370621735722634941712321060096684069935378885250232496484173192787317091414738549445608935235381615758811634549191494220863437179429919692019715883367268869266655341321283578576918183855436058650260304275214258311054949747290641239552322989544482870656948417899971615641920026123316939004665680822403591617329923347706656077805721840005303819109122766857028009590520608544811206514693649519858208366723593864745831445764369349005516866546473887737687900098679638209269565103127348607627245858812198703556968833658797232992476098732071473166367614601871604754725090355442955822345246198132811872218640514388987897995504564635435656730007118946714003374286495296885092129154005060648476013948456345866462223723801190686140548028995443870783617160165319472728012774851298570699986824105503942556556795680055430402203104322453029047320816513810348868636256750078638396029434288439348969525719571909088556781458659567235313584395129188601283971676521648518606327469050377634144015104906485065430842967911465405518100506433371715392605834241814875726636896799070590949507116818277742593113688060824384462065536134352654948841487834435567859712974877976272016276487504962225253934192211858128347441313127665434939173170977324383435276259581396728201353946845027873720359216732960250434249207046709731603128798940964133008356741730522257551921387961151068863730407150533005006984080538742121830291029314834716557202055192378260601864266682548176554078854547365193531061556234196829024493570100072132723306240051559620219392230103191864178973003270782889956560499906016881388220535058818695258800179013036495679801307195654427695469478255081254915017740545763012854065657186801467059836032573122219661378323543627722057644359809162695613222978994401214642401999696068370202082622851359336168022159007931670304518396490502199123178096563576971659238543584735871444572141415284505751908003851151578809426075901065025152130718125372177812331835567987392085772270765232756285335825587827491958687409127703297889889978663182114884679037352666226173183615280385244627026763288111526866929263501690155709031618247571662154037112233339718800357732053884996752493094988458414370414276517982657857117164868273332317659111902881851677471700577747991586104678580917486246873809258369116745339029296938087509510344652825729867168049510994990142233935259954399691527635532238143965007452916037703752857328029089398527651077874196471851239719726768311450736221576707617586037681723202384213642848277325523883518207983158874822907665932375097037759970329751401073913265129143994838810678569996181056669106878778720937494438843445867479606193288695145575711362597216559906881401860391495180205828743543889309939433764048899403139828264149024364483918771227443754302057256426063649506882899423809584223090940866248650703264381783856055667713792896790088939778385850005421039968852273773107607779022896444103993449021951329566880425316528594657628267544126822949362960818735053115709863297415650954550152321960858730743240934331098406189784667445282742342198177130907415906142826124263900276115525950826184520719664211363022848817078055868398717414721621611383086840194997132107007260510350295680892085792581906760681506740052256914412006070487459765997900261994520710914365776060898610166768624568098794421144586946848448139638733009974826296573606525380156455089540005147188349957559948555958983857817020800659739050698183581121915710180041876640992148897031486384539918374985465603055639866036044085131835921655769082991452533341439909765548387225826309600073756545311431643048295436780707852285028882063753586294510021307372274487223124905693224520929988532459798374549734791162029964687371326233963566302126979075267001445307827555774265100099334531754456971695851796356167931662397346960457604469026293708051734473152542772167169046944908406631182798422942363336974828729548670082186912069839983271090027222376667894023063598765354153437759226799030812111574614827975145081128224592688867104788829639441162774038905796884405024819833279468453530407368489606446212644092224994399279432632158866425403191083072906405447703417321981589813249409886902976597944250352438563459134527224386941816773494372919283788205553260910998879137064210299161556842753472798557917227770420284910571415776404676215812920836151412467243783179980641358810836750992705773813175466118490231906921659110946812602293455968914206082348038961702589234618120928314912566956510780810163303209354563152600134782496723999472405096495341802363272821967010872680303580606965008814420311534102695118054494854512697699447777542249038553548632499033859917436217143726129884913268614052084684090292254994089669010329755734911167674111274874789532404681466418215484893945526091755812268620960193875932199340979287680470067995710832998852158965073701962257626352071588302270999620227334374658243615549200393093652111656670340604727155966985179656999078773455465151718505068707745232748334985231848762222029935238749300690984519953404032701819947774562268358384116841701073010466039757958526434244774822605393181297441213399147060064146981461565643573956443176404028725680048155245870928153371068408952535668167969564596821412825632375836590351876073555162164786773596691692248402875735642502195372210895715926297136272870202126035428385204381261639287710841681420014516032730091071164594760498331959280960490443794497992265774200966811082547850139518621306194815425316626966547639355075732371873665810050363299346845513677990910504119861021738363209769667114535364732178929846438770790481560541413784862231573182235512738711515832521660527970548268780190401224571057475992388565739120325246391196917606657602717231177930135911344385576597906113088306135220080461185413007184075507728202899270160534130631667496433926553893830275688674078729917682791224368067376587405148321517739996213405099641000587627916729236570790812726311844592397300653628257680304508231309343886054865624459878577262417587286564931680677476260309821184805966202573996759046541771882043209621068358673184908294051985891089941735786338316348860199811503144936637199444881128235518649924269872804656075731734886139007731069377478695884961632830401198487113958926720156308385348665593851137040780813926864648675490745921316647461351459184090089009373898372181744690710281861240710842738235796386492670866930733025860305032542438174257347930269911960096221872495418204200950500124255941295495290818594267754680983078725739334444855868936725665060111824882178314486426636734011143347277019623641414153241565325567678884723800264295918449125601937510778200072397193381444543984802930418326052360517495154195372560145045396401591875308768712328957848308858876749189091063228835040318926733922058193799100391954846477988540829813113748175299139895305945163742987060646613371491508855538536500161495600795652569187239073327846537137264764913001104693224173864183897382687729801985346474485138410566912569116844046902294382755322936292888547574125026995666164953784133190133576179872563563848832896402956872918442723198395754086466043334644002612025376595683379300390564552703407400230710518042257144449443843174444095324820405764428236513563504143047682655407840642063950651028297876826259690363464834537792312823323422855981144285464208562318240441404982971367784721027360908339809400910366305762407008107796448958508958184465204180634760607360682105331749642939626783736333473418923111119800826466208307156404276028692920835048759186363448523638641662758389308746942536829417313048477579275955194735165137077927712139486221954956138622670398192993911417039740500898662102934846414102314022892982612923503593064833165516320922612010420333576640036220097509988923274927188255303091912574794093677772862703546460245580463207766278760995850080127689447473874910016566352785327847494403058280236493251662797946413780603861438359339781989206764920857885252317017167707956551495489708744286542558827578720393900988676405092689059860082519864409579539182743446630767100216169293526132630333727095560502751890411889891261923648412872973132842192586254741478107544883613991267287817316695574205256145917809410879932371780081310737264168893783689469970403706205093066976023931995080530137782937078494986324295835147277526814549285250972882071895000077262564283649498008032831537827152705307519892493744262622028867356981885039715396891892573077644397605909932139314069095014611715982837543283102322692563671586424152177411871448008517760324322190691712061913370643413373600156863843712355771141229944823857924494600451212559542665083366464955758213552355375313176834839152022188100977221304549779235229139049693359170943079234897074662520981561743696577238171673352575990403738667047056756904151927549367169353001018381100318781299433589364163070506245504404674242571470383137829563033727436559087775582386697225585697973175731191400405775041992981186496270920665944265362516918268406999763877945426895280001212681152797088886825198070189831054447035227294199332600497494929815611014455600359062354622662106752242515137748247149446146323397120936237989865172529865038317448590621571002337995713606446145435015180126662434667898865847046848014353654307199066155352455297536026129493677340331934180378392591074219020157165091029689202395732686371577836719763597613320923953256417466325271041204941676702246903536611921709765299319752489087295408925745715494700992774782656677309299542530251763418557839908039097507408730666629867416397308357176352049762654813179033619943115687487226197994472876008635512182662113947757504468507054908516017724493011783813726736366700827313222297992860009457798120659758740130859389957909314122360112137132810613977521653864550459335645838082883758799357214433729494065920276467213214576562691993581401909512650311779596667710406723712242374155516733132659420037616144382172785155306689419422128421810189484891226379036627981423876550136787959699342631921178978530701095053768353157943607685348938470800267146573790157154280105864924046141120850345426895096086595906612744056037799605707207351718534948834659853475094354170426592219339243805722016660614344489093595653919609689879800673695604784943397373164518742882902296992897489385538845839256869138257057610757050735087290099625950525265369994634915701555616796186857104306358754749625429660990323247448359033352029667620609681500399684146639087300411399718079768263004692277705497334887519359947103399740620637010471185388649481996479135797825885711356981174702205723643915727619942853569239161019120945044280050791417014171482313707197158506502468583755549655449366169600390964338086539372765103668505197552958269810171536472054065994731245425612168176512062445152662247055715824428034921915431094035993988356178508585222123030299887016910270685308104335745615603950140968382099853062720395131271564748240778556657503107698393447512752534170867168080189717074038130905037903268717756789758682120020994375310765774076294639177603185093168997800278156465852274580004691013094293158640666318102248797978751613373816355705495651076597082190282202444806373334342310992142013665495968012052176204767275484114784256240803170873967551102814096023713542728261773949452908714238896273041367311272251908964848706824208500965767281616242659161380977928440594292914395600589082023652271281881552266595347872747566777018170265047804486440026793119034045257538700694349409437937370643310482991272506072824830039406372345514896495260546037763363215146360350620016484357854474765851654157235770116899876539390730505955728649712523429149486794894118002788499561043337110549967934633996862234536242904291373674133911657583181978737188507707334849137558325021227416948221593640252811432245182367755147492035562482549345713767279010562420162316869504786245199614729497671904006709460244574955139916458894370503314976477373484732735973649576278230823696817905486577123683293840749588339262092444549460721647984750612311429634981676614937772251781620129558864945589108652548204131527813081903600259242668879965361577054695810881165075623264349656738601192944668890371065134075859393411736505202507153249592733448901964528115536529930843451081811525874625103380612100957957081545759321211684548972966040971550154475939730383355611122076291569789667336373917736121562403153206617620992056312416561170716979105081450441735292668384616801362600427710841378552612427839602367458530152343789375674375937458143185126204436075428273357617482325365018495712251527003190214413656199350531325316009438119905048663834987112694230329737270175233493514080733350530833675895469841078970137141513903805845998907654995520242881922493394461289651597981762393496542632746075355601613980751262666332943547003496724890718644371922176238815055228847428756793808023879620049322404691001310867617045934610507712223032064311198069546517550592949550975619669480216781290878248609933354213560254894677352340186101949771153966823812073664263388584538673712271933934123991161860939274859571981653234250473373504458314199297772010406286345767506930565643689305885774971477865000147893422009778622901220227007528062276056752087561014389453047133232829584579448102003749829657028011012289490432422976331050208690098108598113872189583926075708658961846113715713776179404897059208062432298325709992869025983372629096846105208328728181241853324238737776100029860258046201530525549278171090581024264689547388446639718808146883813167307724515426189149594504776222701819420833234730184928556410949812558003719695193898158346595652662057005803875132029502899461727632279097533610887628706598840241973746153319142137087351304886087525843738457705600356659840539290552974627767947217040359792332719145525761428791914638578435750469398207970842776816298217553797196829678444266203219973540157805364800349856632403844315531215614089015519191282804783327843238578114169167299196491339947466153969695775150462153941964436894067135428731536645202119315370162865006907345497612201350605492432380716259799399182943323248274563390903815494402703652281197955904927142690955810761934028782715366485957817420899607478510288970972801124475485910671442487374494809790902303231417083673803991976737385774957029394725752642624035843573177472114556431328993106989850258223873186714898465389608592430043012883344259065692289314916210844005853172343720755744138949638015642352238663268508732649098597925759306314847007748419676091607240999409753626687759185358274441641208895394864678843396753053225876549206133010207460975135212363606161471950039781159242636798075905251654290326807349094835977934179034640100850280534381531586211576923639936666563208617764757667973273555486827191021682282096094193914666950579560427019191184685657202964612623462239698216550969125450014904242013536413239839109851465125110661314260836996566972462217395868753880002006768433293614504267628131503687419749677687907349969588795788225990840327670083670233331239211782159207771989038278519168085229098138886181014250550774174247008711196729844206713809217391487656842377832787083324547489792451409989532714545386819446257155493763868276859582160306583760545470035535882424447421553859532068287182315745745907721605991548166711256738832365815423444985459153969010981690872349213372587138350111312827617166644647984529438434484551005686967327812700433582244904829300993349584895875936472485210335183116194077720605923425442155636274369971953099716405846950638711349284632078421939141513007876638558532100316446260628307592977413154792484199458351778632221033340702136703301665787398926087881031298135632985998262336260882932766728472799626947243881376014840364011778444466632638156028862359180342665463688633904647744546745595162494738513170842471847412038309722192192149352090919387839708108963345554307583228401485648925042379171294359598333905099761358523916428340420038644549720685211066915028693517480076667021553131885029561820821520779720969311906541591656186664420914394370958387684475644737845583958500668394037042135000371077143855523688734231542870577147552924809903748137786371608541512261475646050010374339137361689704218458235181526848408399457502223470731798648365112157389288824921437389524606526165795554141275236871123084183090666483578947223333834207882249057455021316724887658894547705567381502673116892044969026339694705433291494714910441276452860952711110356951786855153951961679965713546107690468078005840843845415516767632997977602549158749677219231110746717305552082436367589726754045443833543177391551821689700701975750868762867232623577145465861622058690557765481633715235896718648171748010754721214500841750104999680535434114724900412612722809763850250612303393803223503842915374686385788871574498116150205576638940271980451956478672107040379782853121914281024532456381359608344703950496331799896245915495468918973240625022390517825275450089947916058228391026490451882365589986697959354691430260582884129207102364817713054641298896704636173120865795353793145254707023323928940667703955316936992206026751852836737652346704865001572785172112444633236414728892728852058042557819587790820992027221078868884166891829203021879934682620513839923633708141772591240718931748652853351983349730692291605788408205887231249089998960656931010954940619463416995240191733259597580984363509546351776576743432509264761807230960780196983967087928533961720550486251206634135899426710233993219718695230577181372169521062694631654071925039983146793667422508490455527372901142851957382712596189076519754876427457630963363159153457062912103106135840414868451247426251552285228875797058170883733849137393599428789646885532368936728915633704695841180582829406336222817469142027765571672748996457820602828095897747265365878761032279367278829444450826686907031199695296711555131823134224103590228298769716953013939004901765855286571438828611219331377407758776635911602317026271420068983615858772474578085489500675675938726835095086995987488169094458524152698622694280054140260267874928536136781535911699749288577732730334573274069142578894906896211261114221432491307164773792997783725102558900471855251639674339301440152447398898813947790820117772561884755059101548589741482610602524878083354331289342819574991694685017672357846789897734236860794800253426485853846144536684201609363723153046515421793788537035372027329401985821030411164059245898644224145301985813590401319042917781692229009600187265076321036972895683681974489542689294636106700426679499591618473293409328803930195699042779346683625533658974247754211960052703963026841900123246608137954724141514846474898803740923501384171450944941560127165872381669087965757250285630274945624804606568153786672681754267564040081164213875840293424748298089118926207710358838709044561821444131543501374480863432148860714648069076729168940170602138881642958458518615452792889656443644140534371687730465828126257137928994733579873459650824689950568521443062565097442085218292349183320561246806513004826745388419312373859641496153521643968872353982133926430305559524080333583260296477134180860622788589348567544562334625178930764350182692195167749679375582212149831038278620833318068460840715478997642065964069662405358259203734656324825265374060926301125963991586429000989113586378015938509972227691177226976326137012612826873723747925710910210428168555809642207211921227709647820648653086965523687394286549394795216039087273861406534705158181794589788319385961310890155650877955083555172154730159089222967769276289826649963987088956995908201717485421011367580732378507958496520850356830758848830629785710781208859265211461224682514388625257868206771557788023211896352628910913731335612994017917591112281673237474473601926160636808143026701043706844336801852225719279798374090603935122688658808208556444972329845928540747724197432202745315065757603142497481160800148003571691796011919223678938368863194039626383479837222526818381512392249511938988843652987181212101987130055737161672214630801232633723694047832359745945022435745745920176640761708929197013036107536350393338052455880020208066821070161844630215978866250867566907662490880799177011743781347931378670749339371973087101019941507848364375285255927296437610738592198532336878708646230705652148064831216973073421355936383764550861371788838515809612543458004078329859494131135214956951664704155784967839923380861543913896990332264205134017301165839562716277021559898398584888539909767097424664028804281330927348200551036938898948262986580887026849369444617560506494401646969660980675030490157724227435417695044026090373178703188526965619138029674911034538126303943491602385783007538957027122499726400197177102897383661532251261320177202339945298617325576073809656831636423200656582880614050342247812549751223183400781389168366024816106903207226363078095249634846755852481649324513195503851016602653626710551619025591333059257433175437428020261989305480249883732111905750494848359179996345634119657593851773891159739083676002421448567460731932309796363030168379776694346693373226632009875748353963292760110948972782395012235786038372174148403783144738762248578172594667088761553134502249946973923970671551975482739751147750615189407685894510653401376110564431176238580211936087770148579491613453950504322417094583110422666242044431490180960099925663838174699214761198000331651837777079433423054129653277669713898436465370104752679830364205192768421356805889016553346935097889216208739424710143459174480536845679189667791907471470416116961760551929600979874172167655192776236137420545903134167507177178290672411055117653082013172113966169233449663035501735120318675435456449439909205639009790496254460022112600642686350575989057497645421127352471355917295950390344548322400812577946989533905564751299169773369966733001374419024413979012222831786496572634298693798242354788255666468938543590102373147416116490217028590401854090048807136781125570195697475760517938738885283304891796042696852971302888414251802803588890348656215409315016849634648990553551539296815963947662798382859271355334955652709750866250798157743970234212170096678892688841910427368824801202818254133397822687218197264306360264684762203116865892579155397240069721421673918478848123200598786996656686564152954056621936065717285709835590379943744994717095677997734030885513728818132025088586821798168381577751555618754801521365805263295807072738045234641980307292200288284694226823231852176462794171287608121652254341270688645325234815371269910145300190120246074479559794872055618489872456105395084347147562893952020855016787638968270400385949710242013109871157339571342944561804057644038119615366193558490884830060631002702525680609040500279329199210739533817837908541122272345649710850024452402620162354942835013552795514562197814738204597583476138532994957246081036730658836214875169372517793458585221240423731280039904468105603683087257217464828383387552966262762910443235956158779748221810146328966315662542896495393145473494827330624952413103938952517975599763451804898057902183819780074528867636535630717576237432069566603596200241510516667386547588178808545288965297119988089398417373210885646227026540857518685539290073449987197626201259487745907609332465074399240519342761877845903774015803303312676559595742455840229454579178051560106817845756441717185495560154799555320713560084163712070403655161514304402271217218264646183797045112799337844661435026412983821290419514653791675508362348092618206439829149788691151505088293698638022679446991769180927479229531442418920159461007628195636309783299792975068937359706387617557607210742096682309905530703685062005738238576782811938942592146203592885359695667085773733230308222839132979553942841722646351578949484538050841990295149707843105090386787330445550949232624425659813863029848371850561488931164000926810650240829002813531887148640461084472051764147341668246042316499956463328605346798947866121635031762290160573644363327767866241740088915998360903191026188290385523409511424641647046939517987621801610913490591872452531350811870957345713609475031931647217261933882889008165153646268165930086499109132078079405301234648329170477389601973316508912794191096774592187566624222878189271639688244424322757396105063825632008962861848259905205999589444371083450715495115250062367054097388220124405897549778886106268437984998704242668147782177573637574343561686342740306707268538978581934864956848237697750021020216024676881545852798321989869028580119483605848255317704151866723786634819296708506586477644150276364488708458506156372976250056874686173349093622614741696334586266565133609222486721234240303847422513206635750525969077279681191692083954751133814442227417867971062696729952181144512592518898360976695078402686302987013970518480731174217454167338951275244940540863973179538758307251246826478272610368429383944795869033993110264908994973534711032120388273546233343611828998688737577106556091684976517241334862741331459259471822497930207566070993272332051882367223661020669761610890868160905182953225453441716112394532234501219254041168870728124694803463193019576256861617096522732439867112665073173964524005458065590194023473912495794866260543204861918851574220903728676238712080552433505405743726133215776180189860821066129323755284472069009395576228340674671459447226549639694380976653389134797942819491765632962216669769070120370729336615340592717469157906585267714625309178081173849766478701702889111160374621295141826071725409783005597649213424829444964174480787664400666086319002046624155547592356693409485725810334872002742900597822673295608526400946545117887265623126779266239480237918679656008309473277038261259298604026524366084467867845506450382683141405372673049344152612860841014018901354096521130595826265135551347265360866137268078462834744966959294822690436707166203010678935119049479581611212802367164126485881621045950720368118180580970263610414940716288612787204778260206880139891851141637290041504195413507385244089032934680049541633994496616235194003936772106766334952752171576228116984131679935098823053278807857609438074868224794586267424982767381042949287664410284501620611871039489631783454577853023612065706567074786861716953295231269548384440375870319647407265163119047751712376219487989556877927994151252993451570974744227413461912654041200047194744938559876681640736073324127646203011969025569882911256705069039389183019627467960459431576539763800283198109538278840866359292265484894864977202723269475905946780991112196499744527639898441500512068861162664507064361610080713118780439778320354546850343272348433115915206923098408917787844321801636894634790731065957729842632721106457799338211550903980804618860720175574796988671836697881927238462502344679116741608252539207752904797698851895626366117531790248205881213703029017750397358123626571266308826183987393150223384384151124660115880727842164165247486456851493431316435854993857745342003060888220457304061822103182109656912628832222539263679175068019137637932175119039872767131820639086543186011932814460367228206113502894995725484679441939801315138299832320327171148822251207441049119854361328796237910453052569632248364924650663383717498886519376706311012927991925181542643607852707559885270413111920092170246672568427813733359052734132877264082412059936170137826184298116933273622703386674473790616791118632002088820710221282004401677442532496196735078794926235262540946995429538415665323243828875355084186366855564243907940009922600254014165309902698450330887755271413674905991835120916171348360729561410277827181465387418599845426585507961413460686570155260931870422602121180754538880685259801724156173258644741595667272768407735130990621843538652543380819892801642487027321747342503351239777387311843962585816500805551626250609167403171905974373870327546261840854272241505202192877868600771846137958719464026132203688794672413111432721274054542578500307131631605923894660173954691528339070401822902957489100752695566790296439930689682937463809651283137552561501971244259433041893609022259714889930614078888288234255161001546481678794065555042651520405777540262397282874071747814855106961591781906570550953861897911227343027073281598884318551301010184670533680205602230558525546567782494150509224757958638441966686601427494387195714905072723675029642026467060822782595491041264440257309333403688937736105859086754369261598112535523202668084153946239200638456454974956663293301975291680490487338268451602025874168286666871504835230878098222047626196888578114801253220633145708832910124393333048374745044970822815776427901647531129300465685710338663035408071689123140031210295483601910070216920099013605109268994245663201929491469301913089509615547973918141336580321460955222998975909787928813959401919892394686731195522660509751090566506040372773901347207252633472105688796257196273331104279701404323390445616427651364059212663918099845390528879431812641218366275644838339365499999594868992717324290952513116304933138766660527517794998978962175635450481699699773459927381454679224148926879004606165749449721481339435641768750938913565481191531238486309760947303853040882087922207154886127166320178290622074447363996650091347957418610808238121737725406288141641554532283562767709059340821388087794039871465265031507245982502696198394786350405401249982568425035374972406102690809404802293458134854297012884408457732501817445670085383810064926214211169947454773618986099644920015683104916273944919955360703032387785762101921768740294892023569545612904355275718262612437472519693907364700556981936052501978819197291910302768454279938010755912202929396114992353231997285109852511165830425017465678290368195534321156140672495884051667644513294365559012599327515189215090122582259240454857526977147262215987260230861492208460415015816215194165230731040454053156758833561656346510177603716634555903912310372748111714635389364970597107920758566219799287769990450225284636440021495614228682005431666382937999627801698338160187934065320751768283002129610808169475448324433007633896349099861180554555376341413509866657160653967107745467642210276935324884082510282057598513959201525090511314805878432044087690863229538669514299364986537450518110938847673829204698724781090430688928537650712901739991694459239868611801017176151084588158462543254206276336459690166293759568841838555428111093707695051584347792087525797399970049717539525124325873978985273601625119178594412620859701198397900807796981778863021480497996356835893332340764419702114403555340386614269780192514106106779133561532051656463162634691880467630563680570062690183771205919470866751337464127972229763277979013189377029596321918159454119100480224562849935945386506822320453230992062792640291703890321734215137385953490336840197078346355959584940817976762250293346012612089417375858449925216107176605154716486993269474178279072880845159278963184868106747341150071939248699649497041683748298982739251629889937909342846860666733839765522433401219278789349196081070360483693357118803121436087728436103890864460927918372186212710344520130862709200423799859010413743097303858361783088037421107181706624261374953388778964225908839452943129894192348377362188474111470614410613716491447980389676972010505837976130949398240931343878552068352128801393643076564788562242532853821905566886939902450749644224813371947411131484535238103128594606847658175684151743702278638383561532543008649390960700354352748642046710438079308195696139319838955491619088745981593447526346109969917632710178673756089059569098850538610371266003536905102469585077649335739783855282923979170085771525497701145707808939173208108268268969617126934131619435810186591706987504361391858325644140982106175858171089606565678806066717507722572285512760428335773112557314180132612924921528622352331797562111939753677889402762194031134578519427370346640385327087009247707161024915138934237139377113585186149374969725046794579910709094290966806629437132215961074429883647832548790435509990601182235949478880564109062421009141411197313931660691876917989517985297068172709379998698453590513629069415216140672958602798179071880731673914656147859629857541849636142159223103039008414238122051078920805217721554753537317199814588204465184218844070573380471620339820369489365708087852844294207968224218056221913176894518522285955020498407796892992336734035950839002381144008822915846586934270151457820602117634495649328858589146811730023422875860402372537589063649195608522317478726986060608890613959102981261354535929792770626562111711863902414554031191595986593743693452155596483406983297669165664726818339523934933433909690559413708155339698311923053106280216107935275756396374838403636445779157067903850557912239912043164683212734501540647408795069709312602098329596750554134865701924718666432739325579899446073747287716291654970779998570613075762428944552999080818710902026744960399459333706743648082119814654969247170384472408275325302541799201935818731621865304834581545128979760681669777598948482068744974713570445728555015762201681801434554512334665374200752636403463874689171158641692235206540035538666882448711219166571252709295249159492095604305680150235094044615603305979606357070881988367377181522961699759706916885441030212618059817351245091799181702816055772451687512803044144540792823801875834282882949008713752622776849313514142552187989587365308647223523037432197464788820783772448204856065574546795210716352377059534760661967479960291246232002117132724955544071946100999559356455809755670869772449753285037005409781727529829475220688675875777073759078437409029658367267187574970571139816981871944035394872432860873245743366328523538055516870923539568557050531740021928734139319020955822441456015266051237102119330574598899279070896708888194808619218114752007326220593382649966513283223697142125095810433393082275890599267999529330960032462756156575943520136541713523112688775533646862807123740322664626766485899530621529128662028493729880167133809657034717397379884497238517354184629292898450467151038890551845811992989919072259044703997096241250346775566673837649508593382792717472654423765015149543110855677862650599261905491297571542836916021959408886079200264125231229000207632021016637205709179797162874710867611309453774432086845403919427044170218160114203069415137250350752968507278137307152636085272075604580247109006519214155199028047463938513089020018226488386511662573103324238139636122219354388176305226533878672266515741342751717748791924754485779803999728465848541507849374368702199645729888164617470780000696762781040560814982980490369602139041430009645944240486359998242367872016925132915477939315179323500161672690498875367201933647882351375965447572081594128148589543617103373249670727050943598720787310925739150125868536677950134461803712606256288712068108242197865652034314027598028509590725833453306909081707093849952895733235596153950021449143965056276463973802432153757042799212916334200539958076988386655948426865007545493033724648664732881948451414439255364166386404618561542685104597710539291775602546866889244570605130141800249226407611348285005541882237976939986558534081697100940105738962300653987495462478400098980498411100020757053042833285358251174206555489350591558475525593917301445159991348063039980175788882180671184716829312547940264466966445919340748029578378665528883268597745514545670315711346772153029498515211197988737517999314178002356688046054750996845928362482173725306862706271190978775809222600084828197314960990420319857062949361949423174281079075479768985512049499054990060390217128376090498939578353730626381047818371843779414582695231790719775261618743205646209584663231679974683133720149047331899129284761245650071623834282031635499584385736325884880428230289353635256880421306864085599241250291274871970562425896813067226277779718622727694185454899484279508165154991666242773381717317524891842303995870901501913989887337503777304167982110674969102786428476278994674610469667839280639113171938842982176611229906859585103354854758886765604601776996019294574084575720728535128263557774131593182206840930048304397984662667634586391860423693735133469183694154917296527451645469761911684427924033009523063465096541760522035668617441670308666091589229793406363560189995714079665909621627096290436371559766949214208765192053334212841186269674601913972514693106488541309855020146392197549979061046085856242412992663179222019026491046044057332712452529076606615668415009394446978617799035688959464209626634177252257929252478644534527945629344104601100198648011882888220047602501729014060887672046128763942886585336915992941510604493824263010975372023882644128417456183655728651522348025257706661281365196403453105275637397924922420483641694078602774969425042427872292691459629979100801079027802376321320056860673146772101974697824155470467544265104777782342972472573297299467699741110932470452628082993936113553856832661644546774384684919389240328288143691582263178946193119987854653690966825688582999841189350463489095847814880217354905196775930195151165945175493718156293506150239173051135410235425879470645382156424406783051311087194632681890719679907477507366466189075440009924695843352712378205302979076323106250037206572428407565335320405745007521154874567341977377565657317655927730236278895651581613409143708643102495085821705621702883840218124759317057359101532098740188214289601083056198614684140869347761393286463444226201870581356884433713334580324551662134298090660828738744293826552588681184587911976665925536625203634296448527748958820994452351573775976293967033547352704676985048676150809743364031499188608424063913355073624725947239099226564306752882846798687209963054372232892496436034050791110272961105333318703185156661300144769743605945839544335123702271945620875294412712783523577727922977191552627549552859510804328572735325437306748669454648426504617180894914642422042401388528351170818193478082471365933124749229942130062321279087982419435797835801809232441021012417894401328115812844405731083945682264610080386485424653520778228364639443385763462615044418150088270117207803978538586398611827819716067463581944401034898413530710443262458082265882440295043670113222390843337112130951665528988492061116511105771394492476787329446003536821564484480506569692182589279682750024540460056862507533745553438810849920770433809623867082719304858630773655578022565077460652561897137990613083142179809227987219519232701896425838326438077007835410137905512177266535124390012435422510590990056098716822007683850381037492672486850746516255368064919965875517387236779552209727486997153327438782732049250763489309535358425580193271389187805692155254583866152136805053100883700383203741466568100992559369340960902239239083078581705980340476882644708593397064286259481619248254763599335677472341177452609184096218286301367591416914064208022139045009131807265664830961173414910857385699215206031912699771371576292647638112405966626095550499864490997822402418295733312347263669541809149964991161853331857106216558996681563316274978067971005961609829976389786705689510225719759127247757260715474071087743841462279414180108678035424644510730958231397820251493105388608797786525967078272820388396996799676243622562689148535991710839976813312406318806076736104282421852456300022550209791832294233779675334518203246144590553775382137520788122818323942129830553027853473158167171116969660312737256482455298922190155473773288096459664861351203466935908024510517094138755945995626976979160134702782500381221956376761260141423900844860044242623156678305435680966614335944715980285588938708097363126020012950097591628776664250754034068639355947915820759500892469532469830086006692287126990231178659483945132947196468615976097941223171235524023190163154026593582530954718077456184871021351222368547816765572032757313370333091038147538870158294492782937471781606567091972152912260755734205685738763964262868341493000398399843871151929443841007974607918410916179788013294138190455476834232922647876914626710884205944485145583682462164263474704404750864006693206698977278532448885343533742116919609042716049745361044669479916001101497607621739217728574533463236920958371281023242825064482858500457017093393247276600284966606470136467830259967642524918861726528097092710419844471530044751452034785817585915182080070286884476068406343005884686984753393806277440927422745987056829479752989155074574428886908201722716530518879676972328425273908460689495189296256845720057830249917690806840457440765182041477347606302812351220699807816424720277533931926881118729708480561476554546151434008619724976563016806255063999028234745173002828108998008520407534090126519455015472852758706841629247715502201123055519043416650286772789940555870424186694542227167343205850440574844583615603804838574350786513831639619044091088858251359642364499741654281719241605821197882216561635087662160946052365817615989895813715882891330139618014114067308786127927956584308214878818143796788558235460222646077244185826596794966287694878114444502701049200677155959491247017411840361865723847571680025115170341709665959454994283088293694811337353198023354333032570301592355802423311977533214741334659273180670690743568847550889570855096201176210537401753575457751715785208649648856233850915551497391995368750052716217124630180898691635814200964775971488000049996939888501655293276984573238331949481527941370062240669185153614423277231694740237766065403066897993987382075271373624392250570573788950829600973760910788197682730590843625481354790434541170432630901401088628000525545402073402914032770361054817775523269985909810006235743735455846933520777899470357143536931683186470750075535539453427210197668501508484293174939995669993346699392053796179460136538959697330273465656967917128388343887752278175213967740038792136163477992122948574040131098066155187036271238460735485817984679724553513060733271901009119893776780510555070280364756375413398747974204633395508162678584727322620828143359929991300613610116372169930948514150262890818322911672952341898139581280056751152058583845778546118086293475022084336478330145394411701508061462742537336769615332372853679326332627721215368987943559989644772844633088405230503537025394937729614981726812412154754326824600195776755981926569212060641598677967068157107655797239878044764219529799606609742871788573378903368926217335992756880546315941803612952101325895238546239235021726455947746115236451888383529829528869820827775028357875028098707847615328344338986684414358856121814380837867490416976808729153990616420474729266255415810958074102819061616509564291355990261378988276982530907083892931856400002866566932710779951125128253176681407044358409725790444212692837378109647780259198050903337701535241052236817940610559122794529736437670615791081110307123306798633234895717787516661419948619102036133301867095408434851175935199994646372920618196670250244072664362102248583915172823431406450142725224431843623866436480444648591171859986128777281593508081092949573432580740487876001526529024568459416949517635376733171317925666738355056932139946017347871785642665995165342841706181233730142349314933390732861781149999201049858955436815718684063516635322913096181671190970873201704954022907906981525373213255541658905802348422882293589999008270101648333413753190355257459171436924674817911260419097006304526547335856206356017865801675140527686902365060935444911175826213060758871588833396593140123301793771084616472928329385952763530141116370594837240586704592025738616482989709449230236337359126283434880224489475350382058689806536628809530799798730762076877401179316373170216772120356922809758077727354048127813994218029404039115226276371910486422628534708241872813868279283372744168246369869021042065185916921919534626422400937807354734043289055489315535759424374340941396604182761899900700073936714574824820612041612540136913836612413279666662674592445278751501545481191279663125191341614326393309519188407312639553033088367254543622020780910505379213641669479674263538193608634703723995411650177107519317889952412464853798402817380551459218926616885029344143053672231374497536184358686115881297951997298358250687440240522423087481388996587951572514404643676521072755044352660603883117792467763745017927255580477971323391058502083327190286709211910423560626236886810073684693964616496155387438241328766359033861491820916597641517328591136102240378897535380864377571953800833677348252399197034416313260402578278310829811972405263702570418609486128495082792236517216820661180836247996092587839895764404489134037715134264956068809999609202121421915487966557451513913672738458169169213453033091149474912641224610033218299739260890925817831152533979862868290743955905002541522523364061682650091433824212695938694427836585724541695351278470187557110529553704875947802614197197328239700589360161771205493604513045754190768084139819376363515037370101698655034431580421320232777012623090131518605881670996175645524093196904415631926599006236075742721648241283754191027055637942165710751649696570186825037502330663732934791905213887468010080663938810301558203814631709747275232406776126143611102954377085524037154169125522243853566100468714336143177908871690805308820703681078768789238353549612370507132662201407751912442462697738365274454174772743490419939021316663055813788588492856998553570323489200645185327099568808636414989267171128355228265094675900305946697355043925708134593776718097488182933845073597609207252352823784507543407162797497698407935739126867839483410997418985688848968231980731322699425366610471857805921718928078864843466741537507288010656873353334210972886621806880376428687188203942789659072657008325612990775511790664628198055829100722686646741961802523997272346622873660302632771444015984951244057255545228352181299002446284420469160588633335723152674456040653572644588520250576860532783433262924112603491576699642797543656182795286638157190374331838218174364114426075889079993315942083042023610232092226946362475860736549170038081794780939154707654662590957405701441141618317737294551017016794087554177923306909627130760115338054430679292592574978181439754084091006641023641904466223820823718188219299629550484474046912756370961020037221413089393102670103969138336999629074861595905284770364638064765222400800768076127705350863699468015634903404249524346900295132748573107534753175227855870799777005257287459712621735268257042036731282929001285315355180836939330787324184952055535097971706082983735727309719805156306659961750560887095786648694905342322853481550705503467899033965222086305174396352891072927156995744516858878388970099173486634598871217507018701307609168591832486754003062276550009151467524843481331947021750103504898192125774722473632301772170701002672192135036767958104806774183236552707573982627039525327163976554752480177425689134256204054760199445224679169995294338975394501295466436455210307447579886122862016135268097773721438272110007828667720382849116183378340789097056188463389673206550989514327830534113926878749126903209563155418890069213826060182036492617182506839797105584075321854789917243966723680552713854511610944505347707022489422739732713413912839890737019105238684860470775366078669237983511301984513783826903003005508337145038942545499801438931801454369517049723337536829272057387798831303562242307249824496817932968140384874601884563910248948896809798028331817083792801456996887030177038769207149349301847443311074168453822856713830406871877653882452285679550201559045469307262569127718074582674959414491191751723893063711447634524194236739500613238566402868543904092126051636651947489143768809458038757221325030490183947803974939392073501739960656660404224887682797717461703493197808722378091844852466468094522369076443999096224021651376350659185664723180662561135741606900532634913595944823220318293045230447226376888996955633496389422948172054725191870213732335446472823831325583427001800102642606398459475461252758871571956638479102895077198125730963116546570048779621259038574796731681110922944126142704215373259620980595932990407990070526912645727354671955311316737384188364792226769377942806696709557810193309178681542598601536388206730805770407937227613154659406750183001179953992652709067704909045711508340134276176755600522906789041179582854481062547189570288187676081203188079404437974232895233178633258857661912081293747628687394918886089240446918356585252487856412247408150347687136578709878552079356429520841953069728105918234865684813311956730538115540330897455525405526199187651444599931993466915346214447640546788399427442092153349298054634595871529513702995945238471531173519412080666786035818419807875959552322644503741043514315827318722931154797474534081857237964263995622723993249958686915077617595132815308862974408614436309219265224053371283957981789859122065055506918011489357419438471532757717691376830376497173613856581168808061189875498237348488868156069202558338261422805699571052961075405730664701647006593272699644448723333613199101760876288805750773639596188796606716283308608799345813909897865512776454130891744960678559164787977301654482954365415424621417297299892932569791241849319454102788802085260051265810751704733125060864561884987432259737425941152931462060470311698243579966443870205392324095213011476946934154014580063321441249968152839098173568832342171467932105625258329779824988043422552385484959006350442037838051600455334498044548946979674734327094151543735349177159660992489484141047090265350012311820331722120203214390179201882834820042958947574035386864492087307961983779492779126380259837358350234645041759463454850089207102901044581964183180563530766132675435361832153318374307867868873623025813342203705803543057587029270318175108187909176990161162772583090172621650516072546461131373808608195352773717910811849472512259230817810962855193058331930233558899332147539958170681873778697083698536711863253976468025378989126700689694361392863464513480224066591840417626199089988935796048656367753780156032476258150802691586353530938088884502856776181834468549920504731737833090302469752658905381706181900023939133769785821446863999257431770772026959769163008291409894909175136747542576940703204749592251287890323973629108166372269416063478868076338158243769928227682466849909474129106160192375169138659987159817642818789700107093689801886949881616806311135299037871590084843584998342282007606962677216383157165931651075500715919246607513129981778000918635353390984955115262335497371838367282185435271522586480465537824288595588363474366774131959500996542556374803925405347753928685115603585762368133517239421679215378073392061822867238124285425430637054382220426070903208213833996357240908115282283282644726142166231389056850013591930502413558577935257648266302748592034265069801581876510142677804399936426629245465084729105473567110874531089478029707490743679002441394264434258060479291639498439342082627797833128680473595743317300586599971828955415374587452067078379830138737598054125985650375767319753334668059053429932361936613534375516112380715238613087245659053812196015443230076383603270050306349606506959223208732085776865899692799851412581561936372729524563276669429339237544269995479410720120099572728612824636354522064020011380907399192903143335147015707646222954676326982139805890403646593480397719381649147146194141410796448846089297545425970994301640022486788932625806278283464745136260242457753799937441197005407780315974514114898674057501564890228341816879518803878592340278042254584649418207032993258770786635685049932574398327454615550891066349893986628788671966650414844286956306645295533264490272480071785159539094491358910799777923675064047261034814725337204956007224258799624242572285291869224876549679832930263610116393788319572152595445092097917668458462663050232306763128884503642926054463981229217842552732556498355856559112728445749135731323244937850303997830845382503409440205078715088024341150066817544623358313770150947463185870264215867634796235252734078411065877602400431574211652515946466019942043042603296638422687106317170635531765889989642606232184136880521007986270134323731389337699534005019695943527068017390532895226881596302218649445363521207002961853634163466529455158354907281111904749507068423844173683075785485165641256932392925191264649699146959932204658584793958320005825834119791029021833227412835808147744847583892665027498140698152004451495334149486050338400553900793951384314795442878190393886109549639341785049676233034391825600589856808683616432332997024346452963254629575354981145466289284095450438088189759108303366378553500233194233831678137461036075727492752669373516161219514306985778543474452154383289158389399372828309897964740378659505085793469651965254471321081107123894162580268763428915587313407262909175931059634417599214424900282951143989244940934007744716731179959709350390240910242238122805251424849706348866389130656497850690741868905821182982975294733265652640574831132359140717308574890482363812238512819103775214860377013823306173717262345166234284087656008529242514753633283834968469981329102073948381191373017144033628045260071647725241426717621077439887480531898590456422588432709859644751126670900988480278162982982838816288113656483985020061897924491499525550199427530493843596152257122786662758991907085840151093570916296300470369577371598516911575381824154294463901223060527574958356525501883834583181711183058537310440656493950819373993552390501289190732586658774795784758875425035333039421547133130423877030047050970813790642508964546770106871661668231265354861720195276018073437337331373676049876150166416401313042568777542591493753961316590928278397080029265884251608854872464405953761759216304016969402522282823255142996089285189056159869041721218794586804145039408449985462438414405382579082004913412358413899499156068237795902895466558704222868917752044336501040149297622513213988961355513547877717349209763952832311753527473788339869274731960302608123234451397405025142196574294839188375041511116272773221722529142282276659856450119944420878787394002299766202234118745161300871995710505225708056490189155353155912752034359154567446653112142407110380156970501921885108033200320060803562530609802023317289287100569998926683704926117289622226432640513524754542811774871922362492408569514979160779193917336341578352741044977764821818816045354975540787389901001571633050070886085288460721328161748131187913317519482982711326928762018364283563020196361099989011074630150495672067905903368857273435720074230876806560188216628783725966982063351628230001530817225349553425031798004148847629117234977724236649566678993000741394858568620631266855437232647458923669577119032615377318822248603593254696359583082400784098729799503414378969905648792205868214185724848546496142832341434012597559346273085478818349863757459451355882657721286961766642971372666124820007271482043553830973161456604969971439353979487253648156696165348200784879224509444069287408410025057489140468777712088579366720908549646988629593881734961899241891655006912975183816849041799975022992736794239102192058690370681125371158985307544560707638422184002331229561742201045221214508722361737345554818016559430397414379664572189452435539186824078532275825293620885710564807921897032793842439565590878755375402495345279552673242412347705368143597473125727106891790227859832242043404316567504499341311787037997304165249157746598086756873860079460085429483792352409250043967792327048863743935332130527464037849872026980648885751424964520093170744841284281424639281197382358283105130566327869585003085626059847860240674896036451119834327742079204806560918380629311413973819427079078567573852003298254193632192197483334584760511313002889744069786936202525157431071839340754654364323738560165245919524060443277530317809479960235623184091427652515355510060437048060386910106052297954703880549088164537677010455631278165259098055050577296129018885982344925938443896714118679221567507382181137119739998646411489335721192181501222717606895461165988249247103245803499897609711205332268955640339431884113042213511126530957567753866086475908924632487769614329146992294764312683889512272828067253256165463701756569637474310065848838246739263020657388171227940879823932282811928189434119237171884124559095042603528950875309418953170844091699032680780303824057608769441201979754420508042917549675940933148224676061588242275463011578719901909907029966678664056414734531080727357443683705583370911815236045387549376202036665641032656085574457973525093485779147037044516925346496993489837894673705657361705534875747069087427252210739911533701243575119745527075844682299696753387044720211668809774415865475579772204179648145029947166854021150021800041514357217375502124323597544599545185832153175653446733284716135858868513429412973501434682673900598737300444655412627493083762374425081976883032203883002209085908197181020401577215075918867005097268363733840350072161093665957667182313783994443890765558288426627676233206322695072795646733094282808203805078551754084758536173668227538997632790245744491244556444189511735147780543834774213780284995441269602969782567450548349962724364074186759646322967530702971327144394660180125545542288803977340442469044062291759878789474126784459938071774628224261393101208463519572944045482868612759181707963167585511747717865415643327452148894069306878015329548709744230713885281548017609830939950670294858416163735950778546923101677890296540710489373047819121121760898212583842548005031607547225603765540426301195524816072657203598364437866898880176121132844984843286706820192656422769247119923384592225307384274187813948415583795226916456792875719499270217913610527915306229500418879466187385992809736192027897660641672819478956712330616681614402352747794303316089337488042112305778952223948334041839989024255503095541807050636329323624883113209428568930941105671717044564248219323471533323778325874944602706413216027665951935808874479018813368930701560799867500838993974253655672563495799607565849895566694975829734969059114017591409114127959196222093597695714617013405730381127813731934363628014321986432064787620463775067079905593350752194208749455026898761634306965385005955895793463113640018929393766499524584018161469796495892687420624201238441498397686647171529025886657681397403249469870674696443333138432134933862179704085025381314706580605629415054535070436637623966623753048709151837814723129511693233621741893101821561050650417460202172714244036025755132765713641228106126099447388385458468770576182153830583096443613410940079091835178936575729655864262546989060356486162778639856842100788498758843074821739394375160910162381792514444439447318304297868105546298377700400376515505602413644464753622874483239272912788468886200163768865234624079939900600051336958081080891249412306800339546057556313420967535779102054041013865447895645569780649067246210360862997830727498696829244747109118337329403465606539970738933623619421544745388298395759269411833041575866089500804800196928854000004502561955848891501337862760401980846308548279110863231592856723728712446723929606805663617027107375663387578199992433378925069011837773915771483511152947755394814788123821583010469292178706527502431396030593059937779668053793992309146682939276890330076795071353439298165966055086287826290578362876447063709770157019607149867337271241217798095566976165160520913630183210293574384775029023461420880793991156403210232474945418224042909436677319482791621836350685819926938416939947411087822574837385516933159253235441111807469305730761998855135035735160871213507984442775356413629606894413148564182271892817650463948730237955840410677495228288163104416950772028822642018273778002226540000914375540105061801026212893848495820908160765600731717600657432400722302053877596430155652124706384217260637714581597722644354269856237750978126269956263110981677392940130025049794702934094412579090705969497496642653114268277941463392118258733969193783346781320601434064909146517977497360431235408768755951901096355949127750017338105226771080261571178638037774984202339654912395968394622576012998669993438119501357158328412727479300894014929957323389960528388942772952017036856581644621073739388523917604655204276820844317690272054573845208446073060687583814603623595457064919978865416086052499566125878736843013024838056598055997151306530138794845380426329284118490164021092536277172678451017612150602568284735521496467960434519784921615992328610746388940639207260465302266040241813300996582905630221523222232404776582284206070304697011027193470006595242377369615877663456769897275682459755362495441693664451687420070911627451394244892350180904604060618867107891425265501202942418434480277318318653555592405309527191062000353219743321631997799804878203750940982610731721796604909959337182223825731015371031695759921366026532993070782726099490210649964600685013352068198328829054410470123780457525198466359964840528433281573472787783334889861817318431149807800672499410609823511335880804039624214332792140701987310770833587253573600402805154714818786599379806940107360324778741618242360843958484576150898886417584194430415968072701789240160678416306076150265359079776124334895528351113371474533430751421478398542317676884849903828710169098041462055930110416779654827715903085107086558473277617324187694366884178041672074777729787990686994551260610760996166487403683095832495309183002292870179636740154817471383412719923155454209996468385356582056064581680661955760686072246776418176354801361370903357457866753217359548292222236310986278738173227658052751049286829026984390010332544988673200238516102950295370885432232190020392626380768691104835115048103806454665388369364452695611585556038464958624296074267662137634390878224447874389949145835799651986501596123566788793760989036183376421296570156619290422046043821672519040276131498477279170380908170284602293224932227886460554476130273070224600675838194450936081467926857963938004174498734671369506118472307950289992448526367447761372569373487674569348138816156531802404733766115078097189522160493233437175570295686397687957913382337990911749115533110954319773354550055423254472066699586420896107520237100885053243808291985400740481978911803531634594110944215679455098608861202813847150982331843773987486997727533564940500019116207766021114076409362708984649464361493922891697802045471590942255127906429463556474947981192515823430541696379262983975469539049397591968551758652965019895602434753529142272370227210300612622538649795585416093669558309280488601572511526978754595581494847188270389554748607240676704274271890600734994354245302900771283280130719578034634334064871468254829270327750085971378801531893197070648813358852646605165333550936739202452800535918605103850979027624752033238910859741703882579961689545340425084896837134822551851072044269589084540570733950987890473526835250680309955038116063377744262067474416854627270494146888029967338398751710150651378791953131570917546255151760556090434850786258709453359361587822540786527651016106226269235856405547192392309059609369140146201173522230579318311183759811754064804681974421395710931896753347053449104360754385865526120099323562946237030725837407221394255758877022343868208637255642657676404552329728652418146094118198956561210439073225732752932027807075916020476398599440917693547923514718945647721773230410835915441023924675262518074780932578875420745790997229824345625791305847484646687837284533606238040248215915508939981051317528015907712712529022482597158103571377790614966022759602614670225925646401268615111875534548498326262760046126796905625537100656411663191491974042506779937829800577993575947180340816034136560346307682770187717786510373320962105210713717804850513184991954427431199161735973905845020959660554229680361536537082185645029230454977737771292129286205760166694541888359979568849987093020548930991974002354406356386029736987793825338639224493724353793682516039967392103592252079015630334996097263070086386035780510485247600176498166068503479167344668701296860651696246855824722209628267786088877337383533359547114484338524951436510412009826331223708894854131120541795371627538932311595760223542272515854460434009411255076495756544334186091563025003999805575731387056660671966032641264162045667553267585145619383455305203414354776790140361666725434457704524150125311146095616553216549700796925381181415345235426324930122852836462124289661744419441121519674591366666253395108471041415517690408538536385079053353673983601929819999284500777107339028405449511869562039168730603280136362863332882954042914855272161828767858134825483327706020041339408047423943964758906165795565021883526028056257090115436830931836819798950352831423973903832678960354291121727277852339771913569310316771154087746473015107086802728704053392699875403335425780360268688075715100758940658913914388912941981694988883165102150807685387429406005491427173867996055835014924129431145648414113210459275203175242300098688084672294010025293328590399634640080369680274164954945237524872339622062607238421328641856943698997271277197937020720007764083754139531226825647705221927619286923741607573712587312288364030973456886095548115177266126380667571763906811022961454759598393480974323477499324630317863333777746355184714665312739764090030725786837161000590215391184557977557456682307107914529385486474921539020804816337724291887242287229279595105196487383298694760299234465256438830486178740622276504886816159624034628002319811574749245715069816739067055404530198344952175474508997543794273869946266325400523449627918155075977337608473996830904408560991945456697028375421928634836995144993779754754921542852321133044060463413132045757969842262235093656891252524971901999243935631280151764030757215001847357656815636713970017186772784949944414273120363397680699030362668106223409865129045617681208882895734547191673301562831728442643152143925422130552664743231991973687671230612921897087171375111431278991226516111381166976108367641716111482401064705536078926488042126447074423831784165906309842888820936795524107345437702420359670360718445779293239496645880604711101495626732594153588397045109816765285619875222500229489445774859304338070240600189606633512105303865302965724983417093664062743120174123656994944846718432130067743889618506423038603622926181406941712714194659647030746162066526892378420844075010082166984999275336047791373646117499525163423831542386841170948078968639190342957976922545061722084508636455013355314825084342024361795513341509862164737123723723295235851230171351741761258347115915320096206613368395476265003855341034445343131645657126230174909654329311358028031397272291872305810403083822971986558268028606638172391513203121858420330573366620366197742646142980339457236460684675604044088978990783510838202570910375750934837640704924979879967407663622759190273563357154290232830100405556613292760727442508096889743107046244669674116538140957649936374219625526000141590973189606677610648385326984366544525013292916270090460736827725784007879287484542261088551408932463385281228056718631977311493171453401178760651226636104243346113811279191023879762606663214253100058424562279257620849248330745973536691300212296619236546811779841150602415013705306512373744886322705069452229621635528384953679971638643570377382764648219725592564350146121426858479848620579622309296066225777746410254997785881454478472402442557334113859730489231561458769364519263908199204718452764487420548776893919558964699664557099455621082050816027870034578866076102186451961898464710364236563333626628361475709124247191693010415570371341768058193147355077478424777070268878434972721269496696661553194822028422274146193861994529643016524957806314460428762959823820031206438482994049127555274538969711902203467440796324039567377102400584786293791507663058418320929478766521008510614231704905309500066792327289501520174203982088887849556594481930237215256318871551454294601483980249693996292451911279398430834273470418996384697447651529075961637288958521363319735665264807815502601713852040812227088025571485678930804427187914961254281452666816555538160942470157196511907409295827587870279495731813681656297205831729560685442041104957054509912011350365762117540832842097637660123238741671450710189995341945045995368876220833402197028293606980012494345624566493462495355207927546832614675313806109244901185036039600219902511956431787374744015587262026965391118333409880450937039766584850307224324048141081859096007803469905219455564213105322961535364014025852297412812377382437622238061864573307562713695165215641635924097645289282666452920708977964908094892453410104531595420243775034822452132370030884435668996765694975472175148179724028888405656009904519543343998976987043081808903326640131770583142072717715655058810027796531212102369333313523003105777943538398493557822492343743635639992208781457539532209152747211968509022812672003933507172342603566471787951814351141603175889152824855304704600331718033698674747408360964464123573411773520990070339608117617170550330272279357234333556667629984112328896775484389030238569272595196606444887259707840620791114803178435934995585686520953934136909408230432141147415291910129716925357354597653408016442777864075146853227220093378500774922827853554732285225977321240421408043305616121268341604516322937030998989031474165569222278856152430027375924730350732801470396494783049969285944012042773169455261759434932720115318072486501063653290927683164666708319358485083329592704250188652689888903784950262685258921465376751556100192187467813191840195358188837677907443487193903847129437033808979099716165621040642153363865396277811372467581509706118966476616464869084575705471926013996466205781054676820908452917309733754541632535487450033438450536789271330169083937457217584015404285163647876491899973237626555982313885235371237597126180435442066991802588228297010838652776126905991268699261814947235061538916011437319482561569470694990268042271924817033343112341695763333907061589801570387372279514090608410822693863198826718410160064646541601187683243554555292348849311490229202823301071924934446237535902611841839128886687489478001772516347726396663849327691185489808941283644390541251576917884148784665898273756483904351451886224567425627883111387343229445639332494204285427810678472687079833473613226466256823646512413532686173354376482489015495493517521422513878569003585376070745900572777488780466656206095456795359721023008860490928561733563310115729773741630482909831201637295015551421862947722702469211348945051731329475299622529647951078272410902223579073400480978059118533651604818576625970710026382405329725187318285233640351015917249790465513889581475632956253117154280735891355972434054686956132839967548419345471802863298785883058391274108529203067343135331927824421363523803916137073026475734641532072517427596258861360357488970223537295178827977792226372388501606764264666212924072272460438150745744090010317864015230107239623459724798722122995676385912027922780277531931684112729413047934290260069703718082793509587199375851598428287161352911609698857784100092312745248989739075796077441333788305344869307272128170439483353705181336613776856173853286007628499167554881516029360562014229020388067049548156074729754880982344937346467173092546504832611106456704102594248295092787283731451451939753715142977830781709948244082765464409573937523181861214073734243402920010096746602938136079225588095064862012507812887501346152346448686143466545976597479651286820415367776154429396652594303950218115109862604024811289381174025457920179728227572388677965231099309879663736915788371795175795689745014918981180794409231977388946757182057216383676252541436424768529648350594191042892917290105022003756531955574933239355773160813946986508828595353744262173045214054874111707313412795353228801310717154724141120958392432848775585156203437807750606109331014180507323743507642960687962369107158959878250552459959986040554773769411012053806898254419752129736138850684427958885286484326809343145945395879933808390467283917081307355280477743812079999547567207722990680503382811872330622523185382653873831734549509402448576096654956989698668678759554472470013380542044654116373633786591186919800297052911229988840519991332162549420164614396670499489285635486513973115629592434937044661350838266381997083943951754045029380180589047406879554488544475552545654819943576708285281162714414791601929422942076181833819215262574602101695567893706334245199388712075909458416855370344392451759634537157766947993309002968236328223839874335502869887061511068223459052319474341243036209488363396488081553951383143217723016551187011844022912719924442364114058844932106154435515071511765373292433701980990363772694446080341593797994528472796225422083241043871595231029727651379219920673222258536884626256264644633651100039293146922307078493006275839016727638320256237927987113324704101317394333449265924283305256551291371685778009682588464433449612443862342367340334962543317787200037039722406892608104118021724647514361792232357921342271965036829381228462569827938674483670846518328192432425445156494704922735124918376188924004460761953735638201677534857939548305072135337079442012793281882740510444797475359407530078771652585007143812650953567967696358754812684461864041699412289268140012097774461130188898278598579701237989771534331228590699096668580737259794815811908551290068478490551069561710245648885845679694020651484727033856058091260615572468281412564317092380508984735516433119322292080537614113329704277850233727441882862542593299163819943712664023225837874822599215842545542942395821542003888313889794726859853555741456091834878992266384094125528086062996373658260883150564963955632640685027634241419299962995722942660131678736983741914889138812578433662625465361668034803939044795242336133798199103750037705942946197158652731337162282913940527694231596952008326993195143440652451803339488593421540917251037972695554313052462356991722965876702888135438936539882746755913319055580580055480495595421359266414435407189674455483829516662808010293067502170019122194380364384982098566966182469379524847070595518062970387275444353918203362415659913733716940955862381887144454218573482272712176711171475478743596135793537053320477837607592780286952456270067355879281564530293909797209214733513549327947797084767561266661882664082887741346550324753253829078714293312401606107382953203210125928353368724102747120480694643010373847404688938149742428920595397580048190513501555150400148228612253259936174778002839278370433634690261558813730117312289597126067161521294546258738340861676990081040899497833950826615818539748524126155855239192250753036723061315492576105014011934854636340516321573418485392597045314866506881239224824108198189999098854718992407581403576174608831812382906390136516691345272921399454882077513465653838289267884511088091109005051358190920702013494537700120006768496655665774780724150305360236964415619192703158798385538106363928132531498253125504617038715312136733546144598350707210303692217380291171268045599371295389585723924359854063531971154958429535011318149939527102649945480987747516625675206527737058584457627424474822764686911805734907046030405989055436810148439333232172920687466725885754701231580202306088970247059169210959220918051471175056271960464686777619356352442442516841715620173969111998960912200653286339044468149135865381604997784200254053387757915175076918903058177125761158998075005747435023580926775812946545721764169386078892248377534757965962316041425844208040180902079026881250754758122584315908312866584801486420251691441232004758872977680490098497225473100201171736645137737252943510024469034785274270476996228714408473893454865176796625490417874794905804026111330569075277863950132244596248699815852764200006730891628919206045652628849180230623811683374569488539922382875058838424828087405968253996091413876231862744467807533224004479137394636835699880125096550638065252475325225438525289372726144132373242266279635318806794767403241123471527041771399982206535552158764539775569308576319753755916672897114483745088961092395752367871394246358882509932469891791700124966794288939849476758634248190295407858519928824473110054946814139713165733569649253320996631809255973623724883396335119386711981213405781685933361153143172195045007621170062975580990685357341972826260144675502575227644615141166759852443777643869566433327113146109561269213191510352589374281241308473211896703669636720634846004239121039797235329571667855834259767296313124289949380770013078523424720609150311932961533507195779636816214249672346176521430603234726777153468447834696558975869406793565247321633459736315953875429452716447478012256219290008905982922378146692630633595336750836420230023660239829765241137659515278905934511955525191358889153559918515154639732009740766876138409807386889141709235588687187881779328569700773801799496019451175630597517712966785308628313273493893290421485901494769407620330979376899560348205846459277092777125615643075361466871610004078657680076800117505106640652758395460882505940180866887752621824321553616177847456591188629198254623157771395748772874157672448979679805835434012097890012190477197648520057794747739851454164612277957341117446985238772058150426359769348095862326871399963584421197926649749139400850055490506466064899505790081690972730289811871523184857827642502946332017452336396872241934387202241033147454864856159719541159326367419978659792054543046193997771960780774643281607513548756676682266555810754387994896657073824535241068293433959649258919228351222885986821789762547150681713675902814415233349312927055419694460133986468449653711870364292497262573365771302741521402444292032822455592147643591120031890629250445164486187201294066425263017273350299173264812103862857702681496340116481300801231635935589958278505868232540321384550601644588699992433158611119861643446412014887455413896193808115395961194291661336883319624183173208923552664369142852904024966186055937864025261863879918991087109969949413166001717046576062248149683870136988324451075284356717500826396154164387272378920750415312003033659114203759529246956636644458236122401201287496198352764762036948414663988136826000420816093058585635503203535243652801372311858678574614811062126476857184007673197349231955813216982824319388929338797736294371095477317183601514875721428510453936766901300373781449684466900727843409331317475261659062001754023585580931281416435051128606351344386280134186225387465046363936838304532198568024461757156044807537922881053070856546611391824483079250462149012251796133290866179208883098010264053200011741079952345470539854770858465546965854415579192240976899211396897012826438734288239541612512911043887444492394240907093557344102656722315298136913101051817707037796703985938780893154130642039773397811959044137332744540734802031632408332519757635032237120208635820357987236139939294181980973272923664085487262186752532240643021908073085341271312455872827075906531129429595759197806084186868289631009184358200034600750966718629033027776130080218341865073525581668584461169730021583074627001727468042505242126475181924113772817076384001189327612132861118590663840066151110949454701228038693223985678958020193135876583644821915067116359419381720019231155299609798221467732741634856152984341368503951471337256672455617271961898942733138631021828840919976782787208610130439582455186001307544508256955406934995424074298847287659049567877169242468722942877064957177886610308102210358296973378454352843013598264962164303311149476081116640611402176105004661361861201087427810176503503481860793922578179025524147706424571248662105374530861904835532703872420730145921348542737658105874981223991721192135859824463658937248350688488488433178983877121305363795550348385087569109669740383673456308555912947754813414094850910495694867377317518661992959043478789075850222639499277798324475338424472359799945772499495024366655472636894662033142168639379203295715579725093011104064169861891627103852267967690597489776843287552586644406835476344074796352492513335784635475205648949544180822033488238162865050760229246123970987264108324285501023317848982106834466120179029681904835959808518958217015879601901386844584919428334476199738171130913814591897757632498471105851984237626809115430686290012124849106238942944350711017055824507078258893870242352439783149778809064216768284265333534449172916256948236679391200788672602983155050878317920354406351144990546048871661408967046753515216571129143428487193580410023052386696451067696510016940893738847732467941459650299870186621514357463571065209931732079172266455610161690487862128850078524746542478901802381899393520088605879146619518561106779406496433922521084128261955417278066787261100226884686710663882047003548968827148038747083031019616129845005194124950931335484397231697049535802270123594517932500022015369487060497167219801434469461474145309421065449078469987791232769911026286791223255113779069203214288832583566545580476029332417647131643743922673350537651116274241171709964442532383291232195317636380439254014314838064248367713683852603999743087397097151802737804977614019804763497538823935545051698424796114147776880805521701740984589804956522758045798390742330646379236208398398679481753899529504219341433031578459072906557466979857039373765897576062768938092850716097471237085818604405190970453926335049437238060020913176966262917375495679111806879556012672788172812918765804904897736879600805065394833545892269484689898305014789837245970457495288783140485458128330035243597566559968923870703777415354617252824360939875887935260887231914003766180493887036790703073630992441611013443208204434754231337777620334241143862797255458943801580311917765029629957611694582645259404309839072648188607006291674920682094216135983404425933386193480681507238523860577233711254345236805564110497040950191991552294045828270116298089070426507122714503607268480454460938506687877224012744623833935564026223406672964224046809305364004736208817280432229010685231314838162729426803619961029970182321816643795625020186638924717326681392745396847980183823692459650567156203308841049285573899989827938434625365753981203163331324318344377681217964294623739417110799901601619182355134781890713320565249275857898634674391299963885773422929775808163766676993855857517593999180000937404837949496781950320021017852786545746602190423241914430954880659145277821204972546817988490835973555410919622266046380979458238666197737455736988747931897671471554134697501841001102934066063868374700855535746090615179667740243819807574261584428094581211513443021569979518445396588253975881064955768878983919780790808099129388783678442167339276809188507759684551993465257838698969721933302759250551342068068557755842292363445591356692192133993597903844206393555478590553876092339420772223198428742736522759477685630813986922027336584426537642327732909523419392288665344198759045799799367548160568966024455932594136289492296230458401895443384211292564386808816358946102090354585604721541069461184864329473152134092140718247547267984523076937814197978497225570158996849322572204855149610727479863075019654332599041418841630256767966399068842112483636671765657375820298226977747582302997366706076444496957942101458124689270076470944318495085280132883879645325173832982142038321761342197763934822275602317844607870688522668747450597104580709047131115876371456074089732427672391409119885327705566676039059471056390203723516870541455206271484236372068257781168124121099959925207538323140872170905861913110224504442871671246813563105405027395601541660462211308252007776213076550295081170395126958768786914205316481483289039503844014380843611484907854616502874311625199653966865468410594856457797284884091161428472805636082716343599109885945194343718810890828649902710981839051615605442987333154293224723162172995426628961538046584816041568424887661927163871040544713602224020418255601203075026576735334744493110712683901984910545441412834860728116453770771352233403692432730739596965441665594555731823975445645912281702053937583407515984373236336301412600335244077981057282303933317104422206058537276837384937364585174807989928249077795312274011480430477073044023966588221373999599617084996205385442649685653973687968387015524339868355892988852096015977835597286404713139645029219345478950077716180218232454158967984577140667289115038976613305982919492253764314875232006207059586918055654923718020163811426743988632129691228171920762626851180038175458726150844504343722002451245479697474537939610579968933050944241090315958848418151875537748161027232553804642040481544911620816703781185289833950112490117452562039644710867693360935080734917013315871301352899713065866795594700050192536982272814834200811298180880775106876267252297777951268243714695937349473730867074158193978854121897296815195157290438059147145200383335163774190133170729634883847801522372754931095856382738435545865532552876537825717169348228915485522100843690374746061804357436078967673781203329907344372396508441955709388015964892531892822861108435063563627369568810673977049982752870127345195701719421830758570445035575890241391010545177148122874640979467607216468926640305897611642882740658917782531148717213508155494513988144878366826267184696995815114395952335808988060286321815292387196868362512159701240127750896337598710285783072880185113809229421947479066931543368939366735166437517361351199549984500689029838470049538818027505673242122054001453740986307672612076423613916693459668170652633034211771507983321096154605704255266433982024311576896024011967870040212480733265370647011412233682717088789165198298786549160704897833993536811012369648882747839909728473691378881342040290641538226355327706994563440093697753317405655586219146361054970313797939016737812935241319296673854701678856356346059889226721429406358639662453919030537318857990529698002368362651099087064695861777105900803750118102344669456080176992765232310681973218084542548313742086149980038556181656018405907747423622708637780570532442888351588647185644842503594774878377497587210541003893314761037556105636141850928090955027168140513535871525223149584651189845813661128099746827364249265816544237793680271008882552227874928882160194081641459836200394675901437559628256056384899903391380018455609575194039168986825140042610095225231842261323892450101765808828169753416567301867885656753272376408442660969680090031105112948990172661407580481953827932664435674447507455310968459452981019081463991742874161305625449994731052265472978812324754495083496107698467611659942866714410475813492218796007420158665456548757398672893246213422989928614730827381697573358591036820681305448920648135810751314671778332251744345700200276999901350341070486105512665556178260124679672386946641893787091267795179218493274410264298268425700388531037234875286722075405862155867105007085113435823443347330911634154742830493158060232249839057383624503066424497237966535670388490660995702714760261014729216694861902287795668115360509952218572203508504529771170599526891499809559890203488605695124027430177111850303363359631049766359221001811383696995771314206915720321259426557061180819962439496448668151014198008014176806124351901292676979219248644145238798341231655673712947538136215439085118753714290124902952616393745058367671473378234251643587616420188772141948088633544986063681519010527067749538785761468071330608699760628035685362186040268625916413330188706742817741479530625772914332479071387943634716815690892863296355809935388954048466395763169656175353543587281396476412768427286608931412308521878874752683615161257323145887887139354725272982737276661961705662642323047334127279829909145278264225861322047987557910651512115766217882050003820146805429423857678202522194576046294074559787374484269214390317722738762505660980026503876599261801654898031987914934844666110755534794797178383870911136873742100372889130443508787521826120759115660660810062830997460998024087094238797284084388728981747993439399438475981196848806105776055082801584302797042994897983067518894930235312381092454832219130740265494304362763057432591216988867321970034412704347228844263512074517385531640072606854779385623820442339552516736163221338844448138511618801517219286711287863959379981576063525614442821924156961249456572665890908427922270066359947797092248483733329741133179459454807378319755977865726723034265785875366924580241666297033908737605807931122166459974956369429700454149633138261317869523182317394528805643091513800113152760837498791775914080008285833075380868816441075171154656796859790590603309355573265476960787899825925019589529350439022872749874345976029089293555105749662691082354640443513976498434230543143251879754608464105025684657189458905158603738704693778979377982371376526654685342707174824308699994536513350289102893505772641132618652330891616955554720726230097472975689030096618537604153270855325825136090787504551686636701520028934477726301729784018577676752030056876660773450156816499723173030653848781511306703023301840057388190158522084099631347053376983319356948059752782815370839594009998380787506287611534010450224372063622818607491147014282010348530310011362810084639940437897091517211512137048306631068377347473060797896229985257668316178946860320587682812305589839116869929211611973552431016373379650694719067622317375967412574605208113931032950597032264378232372069849608983260131874784906223893446483655929343042213825793576186454721706243100169034822810235049141565142639397674717280115676443398130550216168783470926309289406581358551086112748604944130544329435367569275357163874741689249797374836982524628766849679070147950380902943975194642268686541080780867242383645156558488987256523106431308169412067095529404744148371551275572784965420400627375129502373762716625630885882406054716505544011661727216407596252166013883857431688880098174126683370855849240198895511498309262871384853562750261326972564316831487166607050964217973674391793737079045286131966462554960203591258067374057901743030650722679133808898976955053128887904318421713476195920007109783655042241129800636523757444474227917993326642649890639920062293110310563238956834477950115573886959569121567460587482059902202718562370037480337957878872585288009670806926178958395272177413374409386636801478848363553507527121634244733448166407375024534718207401914534368586657939852300782058472739608976752933232239381341541279271596086682147112910140018050099782618315205512880622730440130742375320480836970628219766160339616333951874897112941484092906113431147720447182066860249702609701681162784240617089384663740566599272919171989017116765398989675963093113438114728580166961228921492592910505301514301868126078384220310234760314321705927496964368294210047293517713158022016389218381961800966724046885924700523414588225957010127732872519383898490885408720317359751380102993354494633726920128785857268961264290570977107791884467284184872328333378137822143815156962990886840192947191235492492209092101851117603704681441047456620902880575879137003857050691014884429404619475635141699997713229421795087295372086924225452096583810049525196396192115724354055532223204604620258593940830020693518556000388718716115982120114618892250496581662752418027698814907948039776744727555398546026779683005279624747273758718324659248330511372141673487881498052600443209419966974665666162921843788394139253889592133801474712157275104254769921632002389521154841148136534495396424689965813756784913531618775975066186775036436778926447079476934966851643753000840315930850118782005424144886192464735354893269453343614365434077229091078431587371085056756527035938603713669057605481189527362349835619794929524119930428622977635487746745500525732482747663378856983090846357025929100054285343607555741203101490975303681675760243803139326354382133194496614167184653539299821070404046375861765915229036175675405062730949931554260442387572853710276277547193979603207148413862486751795664947361305438402450365653504091750734830698760905776817469486594335032751454659880061245594850494120341838229304197378792370045932927812150522496488191033195473826514796240150971991166748379877214204424931412208108839363392734563300331194055165132600531480912248340681798496507539854137125110307930272590041622423278490238860004390092855424330879299446103270383907884359614415719893249351041627230452711671026430259346050209258991157533554001055364768660342765203029025540717785612294566600696696563153866407518329661087440595681197794789541774769117607538507377631485487037832248894734945943137464112481838760595082959324325740446030406386592923523689974804830308387947307447563397282116081976833086875232855166843824280037275088422685399792557532463389224903127813744097943270509279243864081959094239343239075181050368527502097642288430121664127319593799287809933272429541354745381087987025402101986128037515748203699869615200971721644740807246165246580123407725289427354723877690224831660197290414921152850231020148849249244478131208724663656190961393496289013495979764664982521727359756897718298856222849522110467102529282673091398507343786868314442475342035099109011527136269934631550402451530624494730688395817978033882312138417959849867866989932346326932546477877478964522656135075703720137084505939390852766089776220670198350870867798408826652980901859347768119437280509872839576092134683428219592479900058781212572696697210267798623259473485271430907112698710666628114601578827487842402309518367678747539992530419941716337365853692498238188938716323972040520593097605371108913623460404423424743210388843008892264039537345927737676460903073500686254928904203499589451400912729592764463946503050475175878267358410751144924211858133307854778126457442871115513076175586648072459263014052097192310117319528207976579404573540765186073398808179053863037142941699931833701117407235709718916546048599128843952528698849521164592099694044013668659489892716403923123910647543222178766072884710040883960687427491462684787254065188182951119525957271645963954470601715999962462328879352703284125512074198019403818698346492332999976943998799451245859199348924596473326275363591852582220954146625868131198159735083560548965003530187440896158029034979501497533346150692105986591536975707874260029774761128673903419063551152751797000941153955963915195621159060468419140004840738664880946428413777351126959502160192209821950714466280467873862204043633276438182702030743533144099904025575331051906030737514734173384508740914460065709665634179808886110214739117529394133679813940988815731013565583784626150578170751876568039585648851294007458962292313251780698512589911396638966662040889273704500323897738926940848286624592302472905329065422319134417107467205122120110204235962977459368497391284946050057144300596253064977742557980325363605912038530855533773025675379425330976964146265698298691776227152347354703033591567788713812768680425560125263555928424774538432246181770711563239196209535120206108932441465976549639471784624122208363955095336858709022349972996683006665224814129192594196806123516975595760767813368465534369420230938507690776167872402857207856606930724392653056108806687489221356205379910036862723092501401245617488315258454351538824669940172921061582098863694651385427136220635268758928914698858448436303414151615024891245964379950178719348601506247547759444539709618739792953204083756990327854934350531997244935050250010334113016334009023190352399155915078724297438834883388783597280482917619005279594500076540766271208441546209373000839070748643883186479009749013783685621616817167746026343146408263188312365108315667001224860993552047382724269934894206768777216115373671719558259712196577731397779788857686659192468700255820485680362247407078436080681059918739852308250432144041163249075663066705374981732430417742243837046863734443462634669386756271271522993454029678265280656578600726419295818767558444592813544545224247132523905928985850553445432765121112298421436910610211407772878957294255850191405119856545723255602970321241345996636294242196080864832550381993159169784456583798635537948335784060315798593852040525642871897205290556302708800026655520388767009616088517205852705968250656956117187912713466301202517587097838717563990402025865678632413696084591614037122387511240586276088883454624452273436717455500759877807203759288902078274601133687384737971274713063546387719508533268139748804510874079166929451010859827232652051453920941102113630077368709720997031285558455865534562365910390909706434966644912253253112171799451066942818574765759198539819440582072926243111996895784666631638374654859014194514444937618495955369655654912467602523984885854150595112798609451781333660162481991921987208248579653371887492116261669410901869376501306385571407487922486055740912141666564103653252190926344238412278705948559666686667999698832603190318931244770995468830195988767506582618215833320534058767603132196537406731541237445133106959382805889934011360110710874184055310907946740973536298985786803279049575996081714343379621203463373908887557744096079142336995228177490618250635855064946705464748567230770676655445813151758780840126619835164628904632713142145362684768317717659254152582621430123594818532231013912393175983982987411209450241169896913761277767079931134812197815074499856795459308947463037795668691432216623158850044170782268931761283836694043168593293736332875720513970645018117235901056034840893138386935303901737865097269202548901914181924641972919158251963174048932361362719615944149474764048032359126517334609836737942780094312768588058066701247310433210519161304867210176693216522728959103048613510838312191524070248455137093346411429412588659161030065897591615354445067075858543614707951775868517022900957323863492215232251664820892336540541903421655511178797625081197058501032663110943908060086870964271720741806246672602602830258891044086508670410690185558864912378904612534773712177392049821841113556128541421600444140265104217983686337388049099721402049360134442811920386605055209569116601578710943990042245723944424328914491075931679840614126721407444972235064309070555430113878125634496207436228857656241733583566704114205775171185249529218868395093186227161001476342575937443846767132711106517798146683956069891291879782377499017153523928515929817748125828203306077929128984772813296685735448713685810063607006321718828521938112981717740462603277286682608483521893182432765815310989061106696836947223752839750508869730175232573650322358540443588829086777236018437013585417404277424632746964629678995443850378168819906089178942170040779168152791151805046900757600931632568392487892837760919889971413286630903481622159764988629975105656345761599182044459388614188310083299984842813544236692005335151319647357780346230188642936604246029307580712095571323043778821090661728237757540643792078845787536769949318039659168359557241076795482767856837531598812896170010405363498622405887599541393612369718829311684623077362438648218184964190932322927267244357090620526821787527287675379636949078965830687915067933750940429950881109957447791585627283237325266439100712545658420730631158350247155707517540013491491700246015516659344067849411294534916041579291301866440182972282570125949004260074020290028898305551035529060840562081217588110308432155788955574496660705207449635070139431932248119658851662346708812413228268061615695037606107254784734176624952638300355917280599741106671422638099799192588121623401874816238877752745254247328738564123474295478685778161068672845907593866103889748357829759119015570745815748854864792861126258421506441568359865783080610652839890969482172721508349350352693521331007525817278565174747171896184085454282380740982041215976807998981903943976108193680310031999585070822753525929224235378588563509363009098625855132557877235513647368003794859803066728387484881132692170341695575670495636380589752418546880449826514839749686004344101561130236228740712770596320723520732458325401994155787641767777265462842292624038346646890618150046258727296465520105327611841459255867123851732636515777319467881221406960789928316116213150204394611725166583427913246968128220721795877922133995591334776944022427863859387186174659242995312638486221144326895736314762860061215128879672023339683628231251896295786680706277062968709641218032613979018413276213063949625157057510803986644715751672378656998813126415840720634018711743998452183183303046478469283520703793211461244894092758991770105400996791101944509012211429209845240902922501209332981066006014742812713140821335906852677755311621755708349738870836057747730187677785470968249106999829426105132541044296243428261840067592085989684852192228708316828232570889811756327756332998660552801777694787488400969847649097204641091870432917548955162868406172363068956538938004842460072295806385402972771731554534179919342242268124919789983457720632980107198183822672703313430046335574780978686786973522564986279388800240546902690813611665720854942977640069366563932054544774495184211489744289371419764629351264818035563882583554265404879295038369739367829393632220581756980151501008691856156535407683809154284721515714533022599150409717028307898326706917297789615492093096964319857605801725486917537445144419868669712208859866814283084980772613706534734213461874989008285556370004077594769210527864005719577582553302017989511594608039527243451735125273403298561291427821136353819790076681314782935097197645429428950189056059285029237834760149135386648245188723667718653614629375903889713368663503640573293604912335554061853258524268318386890746083643885323782884571110257606659130819314536912547477901024022594650648309001573512203475129445342690223304536689807817061984156787554221965578612186505494692374355635623227763989755790033785121929327215090793598031770348947934922337874364443020200219661454453070649298836245428663232172505594991869682174329425595216748867802000852218930919200590445537180847552017026125133789935280855102430786075240275510508440311628982304560026844116900183021580226564815974783503981236112441762410914244333173373632928399915437853308105883746471549003725725711359617729903083462490547259130982077298848763668626427455897427156869292145323939382261580207522297642685063454058748825178746428692303543638984565150528327221881223375759080973181203839085326705403594134556879954530259261731079781290608371258376564296681572234472774905445250771829328045469069532742894061794279663275379501614945418428934031201894823981012957506467579919027356622199394811648793995966381221121325144419703744053159362037060492924781159726072346117063191078873203721223298122472970044617689697703149048658988822136801165126465068031748427588413890608858040904061352468805573620317299141144256991087372880077499232415972752595281625560493143406820673583737265710816395777814494845116891346610217974084550069230410343631503431093031730684372934089007211547979530749727621604958091522579746184878458195076670804858489107328544872965143378784266590721673219522539873845140506801655613896944754104799928298470142192537579232284024220673490271267875074698087871690686896781576061472643069489219053292911583561984893051738069976040210343852883265046515396021036570961870236365369960065463022370276633636874705606693268377034721810720120381908498110314117588055423965017791173778830420871976351646851737491803241400087518785729079589177660073057249587662033233040591001757829386015095966981745888459378487861585007465550220928640400812450300164311420024434845444701862272018827815002438394669588335315647162738227751474075571048092756859076817901267371524652517205183444043553735168604819584911753118045676645075345306617764664556220492564121551910916732071295558529629743506598731243049399017489086354605393253352880659060215073116186879018284371766169644941651231123180586009003603711482079914318149648048261335886507630386612937542981725324172753836245833235290171965167692281447956305070695191306838865641246746154430487389281493038901982083738739073255568261159027108552274899094672174517326408564042752421185793376497296045614809879994170602604145512532812250326080316147060233181212740067033773898024806780424251857400889711076298213593407299276627035157283886106856626203694568398151864910599209286475696622238399980104413103238809495024377815183125598643698541436890037440504283628221150052978866304884561906769061497899789819115127094945341628692803179457075687879455146807449554606923348666478446558207835920180579702977339052280353065841323476651695471380826481639441802890359031306036859020623215041367439034254575427295547380190292710180861981813575332791472184453621446412932142903409315164747687269919063841789525667032840746251682018329194750376126818576708995727232403519074405169324227489171658065141066945246747714043295484374011718970882998021198497501619854167645248048817811263206686060300328798342067637836661561242553685127539912983281963936809693247201571828055146485386338828198230298349174181083641179562062960566325328923761864346713912098926753703843536227819777078121163046521522701601180978414521215440211944212194278435979661230478684679881997096184054795414797855893446454389498516683109304177904449439722162415435937917321636235198608100806926982528448458245697219358394694449629955142355970006088275045094876479561978121219145969160492330886212392982292011676394695220513212438371528132543284083137050703038793351463493732379757458733639217818794339521042769544805929613756353841863320251655619667916895429623109114801405070594915223801358373880662203311659115716503610262177732920219657297592510918497570281962630947157018900976629378527263139143655368248273291870934577526057331276421624664686746676819325220682483820208638567742768301095588555546614153832220965888483158942269341951083485248710274755072820299044703254063271985089192581615681102068555244428755341002965353781380228086672612098392846243437047281530591626456154248257413870758636126595521509108378199782735133631492897491099681562451056953853142715193713169142705182025346836794478922538932364159141165220212748585122225970103551439941351309027651122761846280120866072481147666499788970064674413246666472371137082423564056025462829527191941271256084301391320855600463287639401079360258134921467343935764310712873995238665444490071312299500064947116858690437868001743356846234491293912557957695693405160972430139772641707718548586939197453384724896011034124397837140575134209236886549773890816345939367646798391213314670576409799330364029320877880053827829783143258540810411169215984981594523496026798876833714681605087359763849308559916097227872931197169792408265968631500910020614369332539130540895371806380245203215261378960172531808347360911051614399944619343006667683738654867550485490503416879935348384547612977852838889999042069927764106143633921575912714805874190030316843648621929119873823452148913721398072512793519164659987875119880582516451327032637906288371845701712696731311864363579264668306264039854215071000384565063348164025828402713137479623658048049031074619210311181250994369720554211724790690765571515861676516093884247806779015789880038162159320413466540290470551072379320326679756366110440941567859073234941947951762579821079006844378278842208131567810849662166585705331911623660339321683340244810557854744452780594787089252483317301704261467754751352414379974607758310158941405915042422731659559637739862234233659304999085070890747174350923470717775438335946893766164280383577491976338822206007745136350804500865965070564104159597379548945474158469963835886083481197055441303540727350844169689943327244341528993405913248283215344286304719259499016597457611134308905424969751056626627033228163090439600987939297894534131460579374103907759774546984210481475398349484618542863603780772606763587260717920152268021042955288600625180260381983043864495982084799926426518612608335467171030304600847078253576159501945423443236854220493316602603768601343886186979526531619231383330944610353233832100507634141763466924238164009206753979034650345362365316168338861866368725723458536192932020113030066773968873504199579338074692142517565341627237195441533871666574790943037979001782339621999108669649500945883639615145557036061584737647052721237502671748733941196905045842155291105929195207710084380050394964956949874054353820078843523754483934051076231963021392658384241840264655041814401436552412472232705622501447971225706666364456088337198178995866212039491768710901769916732114673693418021493506053741600611849061047143375764046603835769224431726299877334031184887330078244401860001137536433485711362091706458718907492646431036193839197164977000603083008991613748428352670056929835205135345984702638783479978979542921855908019660603416163991120694904526447156768633631614819615410064298940165566511378673086163625864833441356081971239510159589643460275298965276461870309766814580318714134897920152235568645816411717573424902729923120213307767866861541680160996260898386463840164573925802435003662498634192522789501850462289052820880353903722055742793149139963970171828742951188272098483592012932449600512620622730603094201320646883744471786226665568112394782295219784810874273908724797063626074652392325373172824242078695841831560537502413431823646106845829839563365578016584727244340483043874242386971150732100405070276611246288364291762199733073622447326104695973621846585398638891066894759033150703684155221093068827332000884997574919246229719661865710317370517134729134148778825056691528765752713648442418248197606380550293619525526483496241031999654779269097290457712563677662953838186648979787387609348969308236397550238059257133637371976249218808113767021313464865852686747011359620087335141237285144994736818389724307629086413830732634817150754805131718219127850204164026990996072104640946316416455800438914547733800185993119974194600484912280311683465711730334162555116860866919417592509625628468750124037072354150982780707345116760499493824047512503758571939637573215013668263919298023260032177709752131859275758660688928693612367895945635875528672735403260316212551412453275823945920221975645911324152937414895572858954055240353279266510187892548449017075907602172679968325705380315593114085044663002372990342805085028940070816777091079672608810106254875767262432735647526431009762961408929268013864073793542885350081019310700537235759523410032774849097529552309151261785461149656416742607343896214643736321193079424068156924286031656249026468935227297069526371049036908314053108250625186656558001562828733567559055449379642928400826710362526951125888159871990710469283741522425881360764254477366873514957032044744701610656005982513288237681504819341452296325393691219366127757130941093602935656095196423661167626360493452999985002436877467677141929548138987199875696038133756939948086463739250470806304406741914669966074542899713247637728374632111867482052074986907073487782034632200638505504532960892682744819839572829437417078410453155130189705392400352143082500579142919646112582233545507561078428683905720407047481805022507944360241902015062206754404253524566844739316776822044897364408462622370330764278897851236142863272063268213401314846685864246358068871739803752364009932036236357337953860149798285518565472620437248452229254620725416518024397851649473710654002087772272467753331336956857555839434102001105425011935741235066383699468723818575089979520816158058428030977310473700785522025733043241481745669108421723866641989269645072613482323309287890252099647363815710212428345741767506935966225318997420506817355376095547221830737011886769654296871772248963458115670460138159226280560719617550095742825759299763735717449248209297605238561498540241593396586169856035707452421581638497819498972368345661004788662170014992740253020708827374976639383302491735529426598291614573021545336058501601886278581931556797282914865775215620482461947985331184453506798823914422810832290947648735098882863638949556926054433274647412899491057781979287670101114311798941646914833606942937396690011450365967599073967892656641724785579372169078448440486172685563640935434585843551229650158155656851289033168190836393317947762720763455628390525910566905916511189023011468913626304117396365668977893271669333122128344246804650561216017894302114941170769107981231115667954555434717635461891628063153479603132049085024809927767992473266876535258947198183817781095028867841151115266826514153976182141441841676848982390202819608764235440477525899471838246022393230331013868351606266489783918523236344940928478908377809610965232403614347572661647167429169193616913757904789548817592587014501485846698798965487753982102809859964139287794441830782867706504661553334289368106065870723003127931553778365620233625672055847957419847893062408647850988465674705441239192728310968093369632724277945609712815025945913203711104726688606206983601869654418344250071576381949669330143831278204842206362389801981868483971751392111030837290298315473500237782959737472163499361535611692807552756393302663338283039202600994138342713713646102888037451142369167605706185001316399901145033973166045706331002310877195135884982435319048925017422650484150888756827108228541237784359050993966079343157615119342403308119809920959144914092036811130578015863417713716345794781728441580125969950590342831760638865844058224397206530975438269659792109552371855296373693915716680077255735615870910790140683150113069720107638043201790614193524893207170097864393925834614812445720152682026056179378682879729318864889119184938199077513904265553327468048697773898645393931080350506173407134208661175859159935143519849228707240727020329412421117816168424313330275663234512986222263559018575717088573213627268761974110850475799897699047459133218206485586823635828828992049302076439264633482190205192836579270502052656342307888003353145532232790529740215917225369610897530031145235786208524615189741414446317361934511890840831214318068543773210374297187759353551370383568254558637606694930717971419291317899976917552056086491820312597798670310421075152632623701932815781394763639415105316771625837991685072300296404249526083970812339969892224007027445684394312696431256170478946372222316087501564245456903237710907032994945067640026922640927523903866632431393620334688383569855625626458265888511951623536696721251042059809669277144809034423946148859845895926686521190695850800073748862319147815252497886119252165250724271535355177881292052706992102852453302252126833190949289086744122521522690995814052399494803495559331571883803917170986948177376626549557128647741772046039452389833646779002301052582790305204232769028054651951695805179893684686686174979571564923554475756984679642292745703718415954175648722331618749280804788220255813910153204298624056936343384465613775549030337744049696781105991483028658877003974260354733457506941054675406444599152839124415665606685748934575966638220547467445860911726933009968499914479934972125866743727873285859028572713181417800189894119943741226174046358361886527622253796383865773466850252151675484057167993672082596141409082024099484578594466532781106151559233683901374017936488265989058915853155764392911670480073228925079415848157405882776544639048472971451338814207368651438910541652081779978409892689402893343888437382923274136964638449716183593379144869633081373253664102723371484712995131023563250876437461184618546606770192411984327175801208245392328157976524219507667045330990914193961098638805411428541662039084364248169720061797254570796230376954734235909432486230694536570628981113350242554208757236508156985506436397319487099380379922140124268081541741294921731144710367706841582812618171874710440997992798032414589578004984461738704237385395140617420210113211715313998764096221841855160512581954034571684622206018434333658772770416323085441349372447939430283544007376680835387867164932223022804542198008775594357545108522016995706778067492820028008531053511711823680010502214316511867803906245806309227802102251132902458964901714933187104539170448851314553110785853405033680731722990994227197332409419954188585756805574939799997812730163553382008710563263443455718202759964135131038855598547829087074193991250737503753575550525597803001783866062213451723720639044807000368781986773135994800267116118054377446055656923897448307680883723175275194384283023918465607831284921558638265494145635676417678794617394425317031532207285691734474248365366214936901684293167715150713092515684877154698748801584290890264148550124637788007380691238727414629645282195433874486428400285950658625319663265812715882008078157873239256015499193993613992802462290503961623462794483501577449016656421460833177288610054588381603098507833446946991540751772745932794980656646477436994474273955517395402049926063312374325899234255528131738295831530760580417187193375427073257143061332192594363679226066519695383850906380051994753705605714877015196655790354004732536602612606556340817614673604254902980569330774181707207810863635846047002606694614931229332263111445219247922229402345570921525298155998671774768528274603785196346379901412281388064522828283440118232109029342095644189785736745271774987915331521986177124007683679240129020807529766760715223217551460702507172192736899260139639440306960080158794240855681696420418994676989235483816977395922995532327698075291330666815664266257803738203148220226565431919060536985504534388652568248337350237859911712335074992223584022680787501223835968407210983159763987435409224083505761738598045704740131339620474296094414949907240233162450583979352020542754172652918578675994090166017937925815726480694216570290264020362225732238054181924177640060250602017896093077490356561929161358103830644024820068825885729071325773372559135880691543545032698069790378417011531449271802529544225269196789161536472851020939530845845736567164806923330549232369611867668198479952630892264976852235898651588771802146364570799104517815005804192158706361238108474323443522198007235677614353721550178349218135980730370947409164017142505237689099333423452914714156714972419747315285202140372748952034774115882661180233964904642200438467226951836762868344483952209080549423229648130842827118169733917515161245358064537365749625360446292636701931931859940649931104878936485488671390490775115905688885641953102072130161404490328288263167769254084566582421780028134065965799433448668378291494010625673021972073884693379399724796886645346323975785140106685511440456962814544273178072853158416835508256106456747532513325572133694511817727978010976501631044128698644889459198902389140672198483423412766104187036361083980016536734748472911576620862193706899986374438782861126444624911965364351920275672307171602981160627205175303960005957833770477105961325337749187149829307193244518088325143374504136301520991468984984076729839075196047118795466322506768256301719139498687290468807588984768298031833403100473637010155417513444649423573479049404724364620854019022168919181173954508614723735512364565007721860759657463330389053081577783285857165074765475055827809414104987937962522694182546178350250499382489370578531487836123146820684576367527396863199728278552811002872255166717357169513424392610877407245921592719525453322835507161318661066344377674257230682457064117948962354372274523222056374993572474472936117330231810486693991550711375022023605519126372234354008260647014471557463911667557946589119552972359894534071069442652708555684163589724412319582533603205766728591414633671587046207757063983329886408699192790193328188603834300441365713696535128190173158707789008203368734704289185581941223827759488878164615511491969745751297815945789483201908923802676149465361030749090279376117468277261035640040664438072234296037629841810016723511024236765572386822962967288862177981687039074308015758227674379621463645084456911853061252141983807221464932029521555677288353734180818314235503962523740416391451753046158506060429507957479730309873965780391551962154974234243788534849520560635546850663862989387323805176959309020430643723183344387933733296363124173367545026887221162459519939254378542362047592153208345951880985553893367116006687973682092864101946718055490074112303316927777162559639242812472529814306905539660251914857255648764389422020790358172256294349359491626323686449217542847854795499439814868493530714098607627729241734479777483070825522574993878030166185828041364340169181544629948439490182631169560849952719845373349438747923665748351875492375755031644689244757382796412711949654190708687515138493871016709062469384273155470006060617526854738935764206649611439678690782007176446943026236996859800034828805519219353672647695098141396559361487474449020669774454896785024416764164707349721760439380910536099955586864293461762461106256571990560494569670956195682929881686726317571404370676303020485309441867867870123256498060944203921227796267934774468895251096564706488527491717931083581473588789195971474278299102422232711722887122729603938777074565420968122874467036026674830053311804185924430765728408931773801137119526172509800012565331022268409505616516132148679851528345907239335771889254071016727669302325111959045138184665414160909613925398098947772913983138928029790877945808181507098018267516546581496455155728404370581024977160559261776351509480790297081137678599597217241081945086240981074907827223888869188664596931872147166675367589798801327190524742342409511028652625497010122916140742279737803361152848128733835416353136561709823233900352538279272961036071531828429828436386941217560235285713582518535148628605656888834134233892968405707886963084482147095262121186970941103003527757096210761669479504808620376501905785115578064779017664932107009637776368431971374674718179271675922201794657645765671395523532918030904102950850818161106479297378762485204020523263932890701983075514992672870822153476338314512764287939334244142053695082910985286420696757372955083647490255406516458892150313200124637856544883817371938764694720993002055033995334537636351945437003986224470057428581532467425869961600623916411884862665085784138473957099064486800103429310686789576035468359204447895221118577148059273109175342023621055804322768073300855584271904195109619669202757354863743344328969962542116446984589082305531775956973615268647184991263635062833748982696530591365967276821875069535810306307819822059249700868577892415119706056211527428175994501219553088815051048329657237521414023340747153770511367950575861039081633561859160407341359408815810509939062830503272647134390964974374304267927713475273192862906011215939512131094987967335101369178133573510382105273143949351388431465480888993400663385753766554993743681981648345237369939548095823958722938413628003878644393409690936052554611801759986771487339990092565615958672534718836311415453744119400825976036395918949873079165590134217815322017308986679573344187084307803086611578299671624016212138358665786538016946483734901590432382164457767021672770074399200412964409988852964500114541678135062543211685874794505706536789313664603178050701483523689080666532454825632428262239646834098805450523906206032904616224550168889774536294912204131492141595870570281943205023596152404106240512601540159897517799765290258462821473914835511237850932939472315692802340025165245746177068226591975313636896342120128165796592893042345666000771941644472017344612018142972208168777394051870356362038043683277835496907011132272325870491831004810354465028197768430055621632264338672922412686619216348475298193618746185209709442079350768479015309653399344029336652463316973678229193121639264681539189740012919990583609040748467541272520641630783248914394645995477690031736889717534944198402270154312877602193699910144520083471461731633417910603708913740932138281865843406454121845665266836996681086270708816062255192479800501432613174179047481559590537960845284672207488283666994977190948925326532906509502039221685816701008148522635608098252105366925414192565533057961873084961928851766146138926460955329697423783396951997472408248739286739524405381432105117257118766072550618542361405778596295743097309509423054830243798782942911408404079649621305942540178067592526147575953941899833093510367010113621734201464883992364763380913973263027518315680651973292577827945312760066018374532186494623256372251566000793313077299724588475775522082806882196334915809676359274118252697090701833282270202549946460338146376348066123193743957659983513849043878944777188650580460248865466684754022177948228370886072285829022167473048976858843905006005461399746841405791087878455905744607264779081854197920070134356233331414577377129308762653190431288707538660127284012718767552497071674548596085840858974668791797556056125365362864006915911252387475511281556145193330821058241336594601804605538259064158763670499733050960801967377271424177687926932195062710056378710576148253695359852813217082814528616289896210189101097050961704988391153797531617427186655287597748170214436592223881473403972108110502370834877443104145184296430399102731931567886448878280373344642347188042088857713028583911409786973203338391778736409012658557388681935620553438963967373897442597856021539632712788150886661040463146533422136391024489386033298445880769180780240561603113432289771524503109035431658143076046504342194239976239945663656605099367511490135214738689591338950560374643509740928019482142155453215799127398170563289680357944052203853442701558187234216320558563934649093836161126275191421753035696853659901483897253542654014929070487136767703515243636481120100072812981606940244152686739046366542524107390759457580052610612653821731328352980423917782449559329675083302463618678554121251865506002881693072322751923641804887044666756215494465368177219686610074638169789534480562616327379984379049493821446455246124916583235933101497151149141611381056306436688910411210005779998146207199176609243390379774262362600467480264686382894508636987844744108892522228217133372806412227596774459069974919637385837310914916544005035078179331141484599531989042749809820016524015944772322378294709120563562384480435808387085864013542859202424487290468028737677970208668473224686627675629543113681655710824161425015240491471775957486272635138765671715611553682445917493764768734955415054309696888981532543726131688981848834884195049292589214029664842362842542032873111815062552029446421166808868472752570523200390932825406335956636533072095388057917061264611527174777391574063930986598320825947831366567046094054331945965193195388981380451919723711338414861426223680056393883831188006065549592914753155989635110900240480505755726437163918144474827324128092485727557995436378432175798213262594174537911259302771026670086585205687545761225044312503416171575958241346097441444381267268536247868899482432586350782550780425144327572012286751538279967787488219098531385865087592710610403091479629168860595983735673453321472960529526842218886719675856413769050537019058546139872806203593122835351944167653018975260038294715608641735809698294552523380563331757778626223353020498129019441412970114652764835660902663094107114088765492332504712738717510686074216007739065446088904400665088000562690401217362448626574582939060141015404255331082827197373880847197622750469022553149917665920308616348959211293805891945226167994327836730693551398196066746354830326810111137959140809239706967134036147577939565578660981115666284194628079768141719194611062909603870884863061541038231064584646268328202239321438868913844092380419452650707023420613274049040745951645402900747337908836438963338158871368296385724081662690059465766579823864690864691103142987608659976145032021650903516436550666831263118063823722749370900801104935289660713667555265240713745228915670033857117313644337872072311487563463777070077380366495254945963774683322045630908965278713982475725520916414191766542069346965609505791545472647694902234180004297042632957585496504161435500884098939650654085721764994790622535104544207628208054258040474806890643510883591184505035166890814969219686345997816888523997563639228443561177311475915233393934659169934199928314114188448881789545903035342464458696044167288690626329879224925089743045374546260956944755178432564219554198652198790347634234489240803185260273174169268649964970270128419267882610374280119303770667028736306951094628934831027653094184209297948644662238290760896205814751674557901226131806215018265634485235484972049178563143904760339129923893602164010624667845919238839389378990200226038311798746608706765006444102138527884964494850738328076634038335940042908387364613963292181529932628925257879102163250491848092405396504879789458807046254820194857884639484371690906368788343320807251658076150533227749167421029842307098181983752409486279146106976894876578556447377372544911968460557014116858119536449178433106439813703584141954187854828771229938045252374195857460927854329558842870901427402685529971324758124828648649067775073353085108783446527951874605147002233181485188426636900214068929420311418230394488398665830492394321600188014383579054199737895938359300159666130556820185414921525639946792828028056817957638256587477263557266657284053619202254667280052807134428424379451229378998527243471419786134129873253556252818469402942039993113522344537847976604872288589879649625822639960923900184806500911920558385917062682867111373810752704416709782071009268252097762334694089737291716381507688151533583029134364979653400151286795350331505156650214868734202101024286885810104017859255905679027832540889681214731423065286052068527606107462016304657941900432398862518355624936600307507008133180844031556674322308974794582146751202073438113368366114948285655694248010840361800110555806341020273243597991868976922726104793208656037031049950431156364745692785216806464017739895319470922965275174455992138342438245198613602762229889877756233941542299221617170056413058696468498589435907517674176069988221808321897694917965431514534541054817225022378276627065084592525643023264799516547430974501190110764228512508545029980465309985694737550685622509514929627711631043414646612568957828480348862208873093166175821608121695236382310647234423905453827513510161949683478397095097486214864177787147817294732401220879231052160089127940283787930826602093173813382456831276013199723526167099872697956182885087876799689088350673652581516009959790320701005695610494901547981423672453151820392873004540463044412448764548260906653687399295339292332494915459743249488165648699653549502768645899492731374669546494499020478866499865685936329048559712845981635509114137642315716457611127139537491163818723799325789647083857883126561050756782728706291214452557470630328856627673675351049026721237718255662293770504984072309103345888372362511201509101394803713171331944530258650675457158716773156969232598666147986453733763900260235311299071581775779329011741423415950418560205756187267393422346693304328802711140350613984379181399268638701587071535022287354533369283344759213737598604574494570137172126777930777082500079840764377382529598069317219346091507533470438958406740313364740927365368453277246023671547610270509728593994136297951290536043676268678912941550956318517331177438044459750538895666371941469968781523296592917546645224535900645822730252243287746672415554602499484819847046927235891104749270599092856665440918698329551860530800504755639848356124712284544333052960677383830387767319821819583602162246561639496926250346563877067420506047088455677487237213723074263618921412096101245598568792924879971064036300049356273382327226714910481995619923138197034952966871647370672380451678403642307210428752245749089725735509638261960445277754685445022559242754889691564192398682412339994829192141156298900816149220299850279696641645492377674452720135818473508611153544968572624526292172198725853802202935047824761544293872226464477453186473795734082186005901609534733574089074262941873091872470524904508912310726272333593941792216712887508294037130522294306778217774370147616961455283188272716362143183235158898947459128484357230735625731746507760910341221493148513174354168763174500619027341635969745951595016588228414172667797091423719985385430060398268582641215039492066263781817770329863948891807501519373025706574241533715425178909624888465979282857667336812520272516592909837648769611822269100160574919317803808057506473868884914275848151430950142866998391801342782781571036291532650325034770784201419334855558982751421012799009771777549918479392054575752118561428187171143028047907148415128755978373228463822012697694364918884213852710537764095135610260281440750441953512539179320191078367794771089322536593745590293037904292739889610215336779961584607514321918812986581386715687074277794864162589981904323336544855553648340580057432549127998898291703642777925891322621746421269596062830806749933987470628103178784234705586349651715368461193680952701915734109977912803549663247257977986738425172551910551180232359237952566783657184304361767676834312567747613967259715287312028867783422740437503286823146121707007126547434833722987887134987050379994886540173688541705971229387659883777995154193261549796484728375136835394749235004977894552643245460176526609492154043750025756415394791343291036856595362397243464284611575321439813563838290214772488423919566616172493537834852599345607878343604685459354300911520530856032986364570668379613226007644929131947097129199921631226693742374611544774682947522016728513361453875227722951742232885862014296586433333470147564204187361974288130319916993152788461092295218452265580580126609502136440884569332878141307455939945144134081569848273455389267542295631329787903409029520424997646428143569939949357508426951347752656069241784403883208812815952885025432722646236056029995050236680428321252892725192523103128419974004457983901631008132263723560625577176858416414842765676536946816052277505890597376531865973840743763385953716029442288601319750169925882270811751415340455936200325827700473522637963619590089790165102247626447119369565083917523871117314215439053191673785471466820051022570470457976230632972787266439771482775140139592795943603957459719565445656683450481260212068814767532465408802450775245611075797807103078370236442947837247840976306415645515628922275407260245392148970859104285123186100397400875083937314843832105269976274485375840164537586399204168073575837139211369366759603216932978380429573015757424900498875586776181184101528341824144074148539688840662133139318677074229281228074961332713295831240942588567615800772411166853487459118438839931023323262018140657716690535846154202649277675471021197377436432582394412422100353805422294901672809646508458322541539219714363986947381087016025477629317289676898472867654993131621164515471151313102618763648488235532710853935353681770913011180410361554271378698620390948289976494148501146976794628237332749230140911555083265774769043813186422166762827562411314454287855130606393104531157105566182008302590549556857008662897259386912701657136555956801150394996576017066266780871692459441902415629870815860317328270683675126052677529553278362073005275396417435811437500272744161449088244325536478856151185191285051071971566836052127966297398887693464211147694688713545964489327686518850127308661302151315508761765860074531133559160516400706908391113270764862201981145033560118828556626330817011882345812289518385439201886737292202336842353749055493923933951540791538093333201301148540705165606632375970281676795500400228572207184887369217427019851781353653262240006671542427974225050273383186853528896669396464840923279734409904573659651325450869045761965716887410886527393843812567782982217623843447298407800887143490154883921588551505227567272027273004362675601192109906843316488101134928394603535861390323582616648073260001366648740447031065957348223179925754228674052535564595507199418832610672460254533365342685603228972448353273249514935785839336432198778537450879191291966451944177751607826725047838276210950267901229679133675156607033152302529422471604428530028515979771708143873920626399641862789696565728564220786076496705707578152858960832524561227563092284968376818014703034471179565706620507353980263319716574305234294017653555020471670037594564806579291290182141919322932449093554552518056146669405044955414047507864920243961501722582391540960603352837446887450565314924980916106572251482853931777968984546708863984625444267488727957817461853687291324796278229713023021313307885809713888625931457483629717677478533312536279361580872803645795738155974730390901615659929463585310928314692223725679129691206746542130073079694355530887926993967573980836570767220313211166318325278250711880397595766912804209168318275345823919156519504822040950663457295130569037195902488619820601794827868017636586819903868284032051944986882869138744612031002701269504350466075806486328537534641528685106452595850917288421681907826952789801962862581404021827177955597294274305434492910143592473772573342988343771875056124357972068880048884386347860704559517683781997346159917210763355348643310190247961387255964986890877546514127138162469971047273551970937052948579047288868265310864379534743497071598533569366231404669440263293027215422414209205963035861159905947602039280936406128699916382492431715799078215553687961048119504675370306227899358002437460446255898691701093509314263600542916091078204657760913095614274843397050305694402848072188221164511924855373882076812259636956419061054261863712065032203772626635147998319945442814289216334489178168834360426100604508216851747200616098420470893603611637084536086215658014861315241602183086312560551282185351927994096396477524331732626191343111352159115328825444109023376413154205630038169342786422782617650360493252478345608722088442986383641629482140805754471053263563440542497729498709306370124912282026055978689651463637267502354394284833688587984217040940831149126675275235643145633705184066468420349839896411629783963886637346079252498400214341198576276693247773581715459778447174367590565652138356813945943214982109503720369271669914342180553532576511478150669244644946335963242851918094332799290878928919528227253522709419787890993587757462193439988826951250067043336146251062732908279850542508343117476643709087068485337681155269891718845178597452407656172503725698954547366533309664681233083762864171671086740980931051752756044203334099329643157018979477493531970628174460218819979961286642687169899255589419521964055331222199681201609529251347133643551799142206738832222075771663045169327512081355534928475514853938944295108074178615196883967037921971643152489952323610403196933028982866095459129990842123382220812379160935442246725743335493142921465086114154464657800249804112206405769254463855198571522098113689551432753820007245750073148111204334862591649142529467379205819514168967811221823359411693934941270140968621679962403420364060665303964073722371512429605146671692013379511343830538239971436853243356153002775032111071475023740781144308507293014091239385014143441557622309291168229611230338047266337140284353336720729939189710955710769581817984246479151823053014229034574262383242909256059578730835142086219469054976602512313858578454146309125459611427650696945168213653872674657962301581052743405989228106254677861035370087711701483412633204631593969111159908631207734164188135005705234409612848317189516547309910411112448958621950918561926981120481081261021330045939720547643792014215230535300024118076754395695188101736125809478001571205863407300004846583480730464410869315389048774977676496864020465998303564220007204556798245033726174778244950834588527818606580942068098745440948816299140077134327632408836132570028452907284976167773694837980680415428463286506600859116000078444071216098722963703214751599790524862252697871639515218681421276120121551740588527620454622033911023410133238625826901349950644238625087249866520590927640280195466501231303354791863984826781496913860445000788889885949612078518126766401958081140771584789208149065722508326517125108668549579477723206838227494010751269805406992259014983000911506072201105884600543309849661178967261447485426867132756236355804635424859578230067803884989076651194709532945350116689267959681729669057719012073185941351693424686135147458371865171448684954994913075442074935815563708574134746654428153423232396096431369683517771654795537945059988206793837613956561672981768498971929798834072956914418212226500663779868791779003173238513475444373745835684587936091987506597816153557086361135905188513991943083226441197476621288194818426501605227868660461815927054527956558050105498676101278732383460308868024708841392316584465489815405988895683985578020749829385050494687765472674998102014364814738721637112085512171137258253195557968152469994177760752302114973283356207350685467822434401971715173475569197049112172203461821914631281346319643767190640232498167929028649444579581694442128876228396549820913506632502742026924345693948378705712095238519036324676793714088471268403273350459956410151296751373901419874273893393202991209129508576216394326487056820370525859818567611895427939017376532639079089713579306370425853359774490521647750741796586261643503215021741141145665211141764122407597159838152410019350501840817815712608071897187068174864345338106568116296124493267425959593787164999653784162846748754419780169723179050950094748129294149420485969635046259081335497133463413394151427522236357080517526288718783050753632317625159737189748888884030993733750820581144426377824800719162151131112559452102257087584887375109986073955064214032845679196154888444908756329827551895248462949950224153992411674081617962230738750967148509695594187792554375902380325695623028885212991628428412812444580485738221753232546878420665075377137399781096658925791863671329051718079714462232204851460846703349441185943674050464657564847428961264109031574719742945715188366860637890657832556534733450933904002410180569622977305674296336945199806043320882870630057034147294048306448300863846086188447297975302963528672765022397631086985886800350095518134870045910949508145418017531200977618465300913132652760484913331491309204862531268159015597958417470929999923792813985838484111467313429649259076168084013273768889650992438697429339904176043518289306629727525585268970156612941518465965769209935436967186000505182815905938400108833892889317651954990021446282821670893990621799309459309580767130445735839940527866071485695506615299387853516986442293265519269094620729844016377255460549414541989722988997284896226775323776473677961735785193520226396485100762820766839342698213419083179471917608877468663716060502789441992414413321062082109237652049931279578753326989845369250263059582715132323786901981201435224096251062425505662401157123596717840746822928524302240002900707300643672846240156318261304325816877181603177576023706657184887541024645106546772717472467894819020482429665853720696845331123488843099567482369861002194097733190020333962144563599176540540724619422828567538016639611109566450999114945652181142577452973238124048587460398469705914609396058449436010931136764099910908554416881160899407918283451676925140336306371703755762008290883087022727885017274826541769503986415859902355293452905267746172459936299926442974907840584103759737274119256147105244607588260832573750633161463984424369620345919205985568544498966590173328101410371838609808276273605093365021378293841855167308127207338352486510218277028075879342495925549376408946851224478859653112367287992275256759253081416546768443619266036038570229580799961513023639282605289459428072439976467573108842122290184851691551526863509118195982924762707740631677599644672213242668087293725593550418553119016108597915067806658327953423175203753354133291783059375507479838486667138371688999980084540222940245915540650780494525763126796486471652075216393463995842502822190122831360621511312709182685934819024491499021261033917694081192286855390692823518124883601564274251886774820384579602574744423137261769486871530155503716498484469259230098580074589390407561966351442906912843008177752023478157808274224931774793819366094039833611826426010639872507605013764336939806739949790556813683285578160303541289545070340635422778368681122875984425803273005484907068582598972489335244718926555775553839608177472545474120885037246322142814917231255083985739030417918649342696456543911669106942982281178671693479765842251163907301274298843860153026077258474395691013328407008747598017498957885968176610226067498327711841416413235119673524389540240514780676638684573918006696789714551995449106036305251697755710556558898213028395496264687125150541323481729380790774976536358881396489933533336571476032557305617619186951816569217954446473199354875901925169660760027050794710067933890855833536885667180431197045629231625531492699278774398580078729683438722687962141049617713114410192565148881060837477981818127453737847003362991964676202758235898443294023131570293900362480309773434615507081114115071826472500478325425831365231095759417508941587635684235828592117938624690814949984304156410784278650493042315451377569330759109693402268296815842257824390922181272457082387497932185994827426918158398583788360640243439059020710223864629324223227329053177650825125852054077925734442453452203522953238628701203939242576013384000087777467485315119791402387112922313825903481053928807061293619300843382568743105621491682352325660516269137973366942809539115533834648260970888494172078036646064055802416857790477227770244295841395791048603217214698461111156901947265892051657292885853056747150951610413892340813073447513881848262868236393933217278209535041026423885114617043602252850038555491074770879327352321332568175233299866267251856263323745796494690296446441964903342656447553561734799074182722114883972160570996495490855359089979538187152929792262965940511218277687060360192803731130479059300616688581914379924413182074384123452858202368252467346639499625108811107749861550168519048291163592303543260600797463121443842276191803838206074579123794881704833511205667780113147773248670132133323466432448871935125941977663041572598547646574789673895077412167214139285475592817549263192496766081548433620131202751156775336722268821909550145755106727221215364838045736930318145350372130073890311743326448024319511590409779856408665716779641813095680358489921502308576332548595284329218615417219605555423664917776015617960401288636474135472895080554547939884348782327592585728196428728710795416848687875675258824361728166025169073114754718618353491959859579571883439606791245418003730525859267276908563193444385525941459043964220809229315547087311810708883755480134942372105035243751550987228671282052123951474159240930485316352197929231658275093078839660006874886765324447803674006047177727215969593187807532630893316476137366846237962163252046153009584481274594631257790156122171805310318647657900032546096812776169142609073085305761067212790011736917961570115542059536878299973806581755787071298143759165710624878410320208639777273461957879053258268129001298347459471949902553190401048438581931634865697347661171423757568746634839982148959712911519458098284984688741584955664602701239420498958550956918302766839970272920138996841313688164401295209371189113388892318237654332952445620194938657665432895262281689882582450218436533949035270682486411694754035888148112893273584538432978778706645399875246414827903805815105094643619420039893745318027996559675293603196713459404649293460178053638855688138973915307400858200576594494011510157134707500955500004739122325010711383020844614823970343456085012344199576638247761620022113652687209446195665685494809851773562245471792117049203867914221848415094267344697213506566183520703899384199690414371618628767225163151405235260444258685140003885447072415097720926301932324221218039663703579378949028580542075063991236550619703328461725997768610466996567537903678698415623444472938911474068624568176251094796813036340604530303925781778627542005358560108072574625447366172776945587013078833135433530546487823581439393743276334417552364696410435295374389641071764898514296106615222421420763389968335493843305037301067403497147242618750719294267396987293948276148117958940149274233020115757301230550413483628440161768782492093192455223274534143066641676854938331856495766051878885905042119983733394200928893234670457161624855889548354338739641257946335179493873370100957869398260458664737424473411078142347973931545769368608451925431392044352187143229647134899131211425299277314924851500932493399921407575434445850053778020316160842260241381491663720641640410855486363201875111140660471822312145506440560018070874874600831505113134019973051572946824463461765764987764592248627233528244885011129127385746408905904212033737640017184742427307699555349672113556462361018016948546001370265447893715330357525364338661711709257864067079234949316739044637951355306524302921697424396035836448834237572517569713726234219274614427192089327571852115357591979390761818119928909190553678629463353522772144401179234791072637812273803300437036457315717366843980480928850155403653181076612495476983176422404921730966588907625836311600279055614575117316992021392768010203920286203130897170428304745542558294852640650617330718670676025499444890903186316231295041845030624441473315380226707441252995256054188698894455799135622917985405113801190072922701962552333567975380157722193343028443177738704901661982974278037119886537437735083086765949050824730925088677634103825067244549411268628457469138629651641534162579837278432090170646245275904656407072102648606462794486049326740101300595002409314062165358093301285839510315986384841470164085665829627663726844659864429018101879593875620128899832785610776389396129724621949576211096888835093379593078509329669049536043138872408413867981018920561819444637604053021835248880800735966567388608667406058760380938313375827377285539545966557593777756112997009872718583372011635564606632230279526197367936070970445584530235225776631937529573287539416337908099296697155603850576397717057052739492441323454200001509642636362320975281125422673980530160365092631604092957173288375236650677932896311840938570228459223580920489900763480241256158243195611047358499859100106928612673601781717123743319347666112418736897028847169593361963277703820747178223757536790704420478874518490279975150909530084670849938750894668418052827490591586290430195874022706844892617055690593428940517618309146362701458903390420432769090662271848417358791379451340735233005371024720292709255321858780710817144820498813906872336723675529418462828121134554833244940147170040571930402197361386130037811595917865481805217579697484088118480445700203802607672569750409430132095611051531866949193419356143917298836994731477085246990413823497141156642772923498467783426640055685503627871308373826178076063505251542293638719839806458170581293402901524134917729567507386929105701481221605834366306370221806786500810386841125291113055422656242351829304212717694423528278620138852024055942468896567267305334481396582961812794215009904804205450572387723245706825721334423927819136886428237024785111804326101844283385590668102176192105048306577298961432338907583111306642099193453058651645703591335876803155173994042551739447425576595752867435455426746868983682698872554405569557914002890338837741969212288015603866010103876537014892114951917958533850142679926895191111615252778782619961479045367622605216129069979456108561005595582269084257825594999587828573986339566190462782884911474709378139433351898503098161363657333650415219015534982758461632208598630607368822869001433173771372116464541306937189278641833644353641559129645730523838325119043089644801381151337813992718703988605227028516752271885741585586453163025244243874227094233153584776350559012660083643775199884850006838536847275936381325446222122061114593046141834997307371896955078417689133671371657016344129887985674959650122983975843190636145633040914194094919497971844224138123947224464283843698482698788841800652788972323142215457510261921997261869485985584968515840999628892399825652302884669754563724275819640435868606075101025083918311032728949295618436600880566982942376801133528043414759998379760843406919807989095887202827017849163442588475290257768003983242707151269104098125471659430675226271771440408072854740658164200482462595859220381295039173341697875251474461997849920115462675438128871070212899147870596382665522496220247121569585279024869216532735007169083340967651568419926143187479149590073045134884259102549008753423596344524282968806471496406716203699288395348623972820870372255439430836856256945132718116041261940694049786816062384967860537422901342700314173518727532538983690284476663903761471128990845791021836335213264231402474297837696668292644497421406454738936267872902727388752294644800944322660064393486871420358823538762226907325074527347644341413317803361157947500941028165710531575231490024965218826570301079720977358782277800960548582644417409675215503572545904526515247470859720672180158573737990306883391887234863457539340302623794242479677423847297681827522021310546407109995023716127549933339338712424849770051118676581973297359106249672081768509522104537952642488497966755574484622559273317344839620023125911200086498641125907749530474699596425615685512776081086015607781418208391831915873936415184193506998514164398815963622802834896329120322214301294701730533733407559183414832176622656414701289358483818610347919884339492110997938636239545142601650897635108572987852682666352352931119925729495653097013322453992956237338715238190732379475337430481359115297321702483441564585456511498299992115070554534808167098912811155168903428381226311131900057789157821137388092407384624320102182329906528518864822995615191203756205968453401401241195117579137783248534779721746874608655754038174309525269599375631157728502947018041766262301091993284560048943332896568134101670761832537459631941335202991996041436831393580905297882949509479395235680425903407891926661555736394541317127212113581260519453179335578656662478933315217335689155476556777879605338009608484586867478976952274809896585606893339423009333154394271142649805054244123792015994840854233247342651261923096392788337685391408055537263827738178974708444970365363284928469546709958549961848107920361869606578667227588140004998170349258745321142812533890127949326548575717926897988620776412807933124840298853268635834569203850980302744086404732104205699454769342881277471161507019322040485932947950000126766221766006644095484389891106787107221521074284352662212624443667449508458432442636764339735597443949133764904344083177166698196480115075560778069788797704174631383955166619598317826247972552058561914387381862699708065328616462448748577583282137872899362228705919918756705187472351365852579999927804316765023112258254356620894475884376759350166812239828662430826248661897078442154714067093471618384149174179301663900551107278561400016553563635307819338395756544080001564513273688292139146632344197173104762506696496334476316307969733005559789397897346848259306202592646721680953348943528080138722191783969442739748056766031336602238643260092460610330439293162287071125482629926984522000440381794135652130322388854420503919244618335963471107485414209299362539388431436851696854451007064825166481043924133413838519171561702376339183063443368856919444044939628872547504148970159658632820036090885738685338650069958711219178136496102305229779912591086410986239244111281079022111881225373961970194991498779271587114469036485509790324148811430825652965312116959179769794986705883437794751981542914756743176086887205877536334022757269731135992424898220303632932974735468290384225658088089643326258208132247900085174060772253896794030636182372573095811369477360585345216766909181818567440591649115815134762831879899206854181869771700266125053195210716766164410154037889334490175473971965004689951947960076317489814917124104983200662059266015918021549021715717963224398801629955970932138485102714916994453867422127777789058549942956343035170390186623722369772742349375763626873188212938782486635971432886052064008507126514550179238537462445780601282926609842061067373877776227708289927748766243371055823298144814229152682145163053740928483019964189138827264219705780702233758649894259003105184041905586675302317607310072125678147931839577245812213972054376573335113709641603231603254465476421037468810439483186789115987772075814716728210507563280090534881174360533823487375188021367822482296008374197679455183581409795916348893393580871709671325707293968982456082040244699008075421990194235957531204535157174865303648479603573493458356066826540916602956230193652644928379105601323055899853723084594526990822465453745040106201094733212170497197858321715619115784339582680120307536519976478829112284872931355252626200387798515108925194764151984664478282737819326460946183133762183023097150601084809253461179020932069598602321877985753347981835325843359251856788552287594751742286270613884738036556541146462258611248721625820594660857039717429733167991340312808220748525338399682795637288499717041535936129127493578866286531072214718677063059770834850772660005215190066654700852643493389501805028545477434669830069952779408239284684771584338267909457527218044122011674395263847627735687035496220072701250220931685133655154534123725873476726471515945789549819877708749209448220452528948801385401115467534142680594975361653986603864095738569601352217833952897324927852221897454699814233565329009491319148971786355228521307340745951479133414167700686025095824798707316414166652283854298442972121554394855223737074041243417829590088784862815710951204524828794959179898897545329729962506459789494420002737200210131949001041401340193646044104978860921488587313547677132057633157573435676474229134120647092954426914723703831909059995546209486773597376579437883776023371242608598492191081281784903964602898292805022272722090598186029693152458060258321043841483819685590689826906993759382993208859716971640444040831430845134447801589926019608008863391393306567117551609658603627629627252032000384217308334837320369080104566623438188414221992146928481483689802206240076864617471348402581615993299693355305735483109238449155506439275138626292172625132992099731281819040174678059729082073228515567274724520316330746495840539129668030560320703801847676485917394802250335173750063433556658844504090872869243589367255607106501418465022930004077260948232682037683805686831827870798357766685007957636738621416091764711897877950577489494466828278784248866380487949503562487895212026739066090128120943794862033383719307365334389723010935372372217684942608372424618604948297724960218721074844634900542504151354440694220714195896898724472299351671448222065277033367461100807602499237861293334909527059112717246418561316376900122149134837387828905770677216811914451514291186435010775340371021438728910893228019822528011399338575234938764145060559465698778351241711195786330895148797282884768026047530205491149845693844375984695581978826632044898332148684529170467519306742675457220422655241296278999296690663836928167511588699440746584029346599203652737609547108668942798847575614990558767410370482444377595522828642128842487762759697185536319108818535299417252813040666086180348452832299034399409020042310923898964969008212154899522432195212281627242734564595658013946712139369719360299844661034566001821060367216617238499848810189901138801602502092440930569784386363569576676816136846294056854644124627080263898376946293652420058937863410113572510556770701858596232734448337142575312456721591823689335285583054220439336563816598264841052137153452730651850348882664133164792441114829452716942496873067963985349881740325334810379249883101741326735588945154403099390831638633224333344920331194566099243616510686173012473053036667497091351243561739424915485104959634895618120216823136227490739366320907895385806633741553108879037413426432340272922101386002666501971003791525522798554513024220179407783557511700805284267665938785847492037443341895624404238790489545215269856645337343168269172277032161429351070041162866513706045414932797835921615186595523569663820026889175202399059812146845084268592436662148652525973459882404412483174744863263052879763730581848928564721377612152013442561922703339738943398360063418078695183659935743944018089425265852471777934087363284390782271058761609862181264929011928416897312387030722868425508931579683817922658413442326519799039890725961019858846606906131091454961179592056025422080231267415366631994552829860935242630724555822266323167388932998875894240057852535149094385989135546442189400780142457131857138480088807687925744276710317208680700919447376119561768594610435040023144268450585869733752094901136839244765257059858800842725248714987594071517485330570346099145938623697100789974523735961722107023776273170562200790743685171476894803084870235164711950095715787821181737452433860167111573909859653439211847788221682180185671915112162688940361863970338479050929181630581612720588376816790213310353254027453187847107552261642574736232269988743568153615381612814472512195186050079290586928216564454034303350341254497603050817960915152635230319640353870430144957859390852428855166229705920376105868347971446955679202788653562757498244595131229030343809507584344924928439708373260091080681434474850000231794758147372897702581634969295411280157679592873036485426873865042938443117578757228213979868931453171385276490882419487573566656105902189722189234700975494069800977286969519132527462627746329594753361542922320018187430703964460118780058512568814779559810905842563751352084536240454900578831014014875793716043626609137201738881670145990651161957082554167313419787433837975366868119358775433087054666301409568983850357762619106344191463158649336017080928340143465250404366682815523064537777010976867309004322959175555748967652850057494318991071058791959304296367325969886946456310380438768916976799914867599958326874989721143074565370741480859955037436087208731418849988042387536019901217757956252057332038551418078698887827159210589381479240172643746648748808502568402438853623353086972982749400369596089547566031032407271919305178015155475155869819245273049246752487691789430870070609662157114251130767143256919109618621408889920883715415617023420863368751136924052944285414502808525556600504740508779651173666653385466566693397327865292705804834473430964444219634763111439317341728359069619340331232926849141902992236579587849870643289071098452559113641395256750449034591289440151741061794966110538316485917783271461585027338536472790641818838117758913006775794296955688506865584969616088195798271537528096284480024370645199633707449136626151601368543248159695718828435348863038598577727399575894183893427190992303964832488007031661253295183645946787061993156055171222907354318660799012810784411576464254679450445868018668666541255191282871098221403079338128982448435533113386212259901425534266439194986837777627584602029707452508141788688718876279513212551129822446555370207004656499051998032413609693881646206191555730964213706251986870975398546912474383066892624068878026547250113303372858868532549158821069030058963034790800275792869528655137623934274276109994302466156637701260467793564301719106267280350288032148207205849356206917707788264721517350913601662321837140953116185089049175731052269460624495304609190753677997607432916712665799480415868501217665295697418529996464365697572280520523044905539125071508026595112083767736585323305964113958552702133596612703678815678028750452265361899743894795172237979957411026474678380082270667425661527912138709287186589165254387506556202652412727765733802183985063055345674506334600574616327409745054530514542948119673951754939182793668229041964625813964631399316994949922277453184285180202294523709918539024791117639993715520401955651679199605687066656199024602243355627761058695523923599283638183628934286224241456899016096729536713552451984028738901265119333428736944357635311323766605519932453585659078453948727535925486033820586993437314924053839246131762320076030738254764365487137101459911969220556740784003604234469149676723151182879124642472191891203333990552548702685201156788114846572423602249230920790908763559538884893349732385690896881411611273027240297251694994740605116692617533810695762406625819128050457204304027511996505843788002716775437658474110500277615957243588984165573583488844900061913739545809415169171418296749464805667693158319808968006175713224855107524251460501697255559703850433310489176488226445092394203445309584780579534772397785997624944208323988763461114431742588063373055031440611184574683396112996894962420501133699912321520342168358867770351621581934871853764690824850844041777938194070007848830473895526203528280642272389503882371229390127648437503433241268364156681123230856884587167615058170225827794761105959259586626228540476743557962044602397578856217750622100341425349151660512671843728433880080763973102074507667209156875609635718138367253114902327237502401985877846484683785866193737238381403073926296529585096146101140441122641168197214152021783415520312980880472724016798020673115982950846782924773721615275651136108644354942438491460691104171943978574416733576616963636999026549565682775691204073200218806633909551470924437460702798853787727666705135961714581593415368738885608153077340170595049013793804057810013721753337926426783629551908447809324199124515447482991865666891243619174201068550687197875368910183339373252692865515831851001222740388110945537985384400334510381676320792462776037955402981600812022960441912359779390514933175929008321465553587281864483579611948032010543638519251800824336927599047439564303546981245292817389247152138928262433578549603607517984802278643457453704495702839459579400528784655574735993239437197178622141996314570254809376094717184738488405712862391146216731404892101418780418531596536381226350640381854101886410598666922032366014299662879412416513912113073338837731623704814313237577177575963766847753299615060700021730260575544633486990834801701682747641954812123759986222103738603630347929539256959516831846063263817968983295430807042108094999118440900841461282616876641359624561386777917309826524250645352587232842116873034414038201881435985957530977641622317655969163256351565763843308264947658675134128662797579617167721915123334803876268295793270100272372453346550696095437765295837602866352111623407681888278323363448653935714012501985980517550801164421624950238376268344711842140994798089234375635286125029486925496323142950719451022531359811239153752097965035112273373258611125613732256894019052148425836588871677355418306549428003968707974412046102274872826885992946559615529502139918411748718158498293430311660746988855500915515747775349420512772577376786187835469014524255171843203507406229284565087467640008963807080916313985123231965882843009018036992516521547365882890496616320721180183192752880295344754382546177234569149179109806478942517071736957614052982826110146855829285023529749617028484368060080837829525847697031344131615123040135214031805788286719173338022943722386248009109008259610575437180417830299696632442831479712912647250457306917566883625458698650249170952515579230992060523691187353880064923790006767179860569649992039788852682776512358915642763802948968421659332203961849499348243073073692491240717334868145630650804490963886670101609886658896925919866444234502022644032203007427002409122146341252558144836290988200615866797375642302359161864328544995622767835420010847981715698363869448482163196539091009730031463848314588040390612620471719028642601243154506535700678215005391375435779760297741468657732673097677636326623673859882464082179192903943542666900588848169585491643914983386232302056096799256025283934141655206084317810221301853894679569086595501450515273212759977241035778939716234318354210417352671351145705871904352897781294463022009253129159178424778942010849848506757649690655888557843003431777377291532627704314477856431686712257831705967011246652254935772510199989771526059837323941794930341838976150053543408373606495933157078337338453460101293538528805491118338207984141413607201315585716697198813091596878792107104579117318624063729080550655228114525265845861631534634089561341976809432807522324340626518762767916240605630259811278696603941695179730980151154374352254318251072198909319292002174057604790667889101145947974362074030754033476648153321344166486197374083622001290070735192182199029297002856960620341883810643274572893827415382446660309371683736095317219509974651901223948561445723760256394451726735489017903215402536728380272331631432196543238363319003546411520711534222734609813669708606708313452603972495165712784034278555544052558930543419201409016514477829887397922492741909273621829807313413104605379198157754609650591152421054195867135704316189197090527354714525221091477945872148223720018913460686548051507745857726775371459261278683739764833096522072410648755182757261356721475426701290114825953291901132013930370088017595406037291995702669911311466468352493929187184083283808802656339491023390697794142992544106187928895487353611611356074742743635002775206940522839417119735046675280261409481014350171533406870722833168273148559250333003202537496361797821544364654034603912397465168461107092049889014609464135237750700805997325084037811447725369545145635109651171637090796607730582857761462871090519020673309936039444170972027586468092847277933080864197539787726979639003622206108731395898105995062722008303195208930136550049720366208594451151448907913266032633861895704297304612644996506604712693060308866761210201788648626642022425741892313276203529159785242352037519148510248378322146711297740853194087447244200777405751115191741544049384453896977106479407624569684913020035606442017271033307089929681568217998455735822208052196873729431490154649511705552310602112444970677390735112415951173812016372916811322294179402487792053985578763245896658708983735089671834260795493039764176830491929189790081199101257521367703070329432096837144455827022502828431910711455416140352558312274232296364799572122190520764279207268483756587854654573772728010721443191315771358240246846087974717545167704306727293557077739991966031243123899550690943167603017378917765814030002756120439309029573248999742275167467306038029687003506142394324802450864614216891209948012793917823097492829125338128980921295751724458269555722687434760644896446503311408061898923015161444165264336404058104064140138673391807651324562358122849110261433530553084103187190110290140466161253128832563089009270030145896384321801422011203111773334900907991992509774331677486656088613756915059600647043489347676086033947167419555387635172522373360970653104104274473317620697507406815036882953086923227706873947299925887947175156118200027433336629198476597701440547167663016074468855260090692923315400705196961985582165265321856946468298835591580539579621715806267490574559462107891125446827083884676843686379459767533475965582424748861897427593913419690799751894751912454273384346637083011212947720574265530093930402761110155506943706949324883914417159045366064218656784540475593402314288079134215388110626830211773105328879065221246367157999158232582930564831416394918487541906556384411200485592609171454829362652966980558732922230315249408630467854071483707742869436651028681832632442915418382590136848450717981987385757328781727639033519085527260723726507730848334145355436910270026931579057760786260394810087440704764501886484430412160363710681818986438014329453910350944391383649953638717794744441612594358320968011187178990956101233325612012083436754232124268438643330708563035059740330851668900583761322347172691297063135098311851040092176312171657922504022754932175323165452346421328900988445887652601125649874134337070794024798833219716928607803336179720245632638263231099536385565913863268900857241051372844195200819395675689700168225133606672868965927711130324325894028663630220400622087862794070002919814819314847473963089490073980175073998329699167234220977348982891771913409378124392126244792294332021306843380467951588950622921453591671326276328269763956507538638848614040203657596131026127391915288464896747696904968417604115888775146800335283899675919940824257253242297963196271264297646656796436924300634145260507611040726722060022711634945583788450151870615729447322963651439006250663582390732607799992740130275455984626646415441997373759911485639054810197284456335807063429839393975280857721797960770824152156269186035867836269832056714972298465200062925426839233608342676364936470374966024652037109525627033398911105269597553679306231244022420575367134027878233399266598249138465277939162254178178075545221594846920720112495610177028734675775249085221318440425614370432170728540925240559641812005490093016568914036375646751355608936108554298106683724943460852610837859686720865209284304781185855871132585265717004170174438534847052492696782893591759023128449650822456296675362491925737723846292447384825935057347193665896731641867924613710857394411508581273142927346079525469214924067116927785706100508448330027062272176776559974659801165512198121126503256370358598096620538400596410862467523887702044970632689767898480404322414169739176172549398505164828288736183253526243828015809431386498005009113301656724172295550169633314410163128514703428231555632215253247948504225321735424904904150291133258878865107488319561644010744727668506497624216685965668834761261924695649946273897502503803267364478433041069870396248525500162929405166930467678858285155963550082675129788423711646544274266386269381993065393889205951617516854193737680413090061237225676727179330633188579403621773652283669448883651846898751951927018957617256501155639685789931905097717355438169105207434818672996053539022966487968521629565115045187594677683829337133591736050205763336048721558759298671377341309824401909144127709091139428838865038313833180831584428878646703400283553108946636497613380824557496920097009545488659321058722791684260590655163645762175967807360257744369942773949153691787147413425989264250509582268640310829634850620699870795388043842465327320455054012930353033668405697141839727502727353620971475703386728127992812756136662880237078017045708576924008409189336503203924087726231250862861226468324080431030525682992536908506924859013112733573038411373196877537318370754695713029667705862579252193306175764121595205359140752494562344770937951011491080893617526294607870250024219041343082835141876054973491999248135514733718579302230856590413742548604161827343761617686334369366770361151989536418479564409672117120687446767894451715820751665227265025118022528065181269753317216421840213111602622928733470534258162558898882799986076189945206893380405808477357986571671512598479961721200760023879044358203739611226636947786364726033326366994775667532133062626738444316508186985601408523836117721315696977568246374338474086629127183198720973793051322328832217500030645261302355189189402501573024570167039547082278233438631921493565354944239390807443945984433464924658511303756626539348177566377704802409410921432789745764305214782287592446762607092605511623864299918269860855192148419261618899606219690937842413171960373136531688143360391918398490557569770729440947859297711614349387143021709200668985096721991060712869486042860938927729439170747904531836060430563219767087038661496872591606113603310885378959394566512271044967728622937827015928651306758240380838523117895071939700098352871383049562111094790807103681924409995423841341049947938289208325421513560729681939477997798707077150264596105577380882627921498147985826027067809497427055220221899148916782354305048563874937144612248957974139796151850984166452432080874009117621933796726090896131920858338202909540766694869667385316149908761666142226254135535791079173586842558126812118471318673463823111159014147592953304873294380430051742963189810316503795140636511236210116837097997822723380990499874703614029381198021005744282494929424352781485135570947074657169004251758637005712983625542799095539309378635637651899458968991749043874618117221574712674249878448282403954372226471623225050039762984172165415106511475007259511544728766685292457750526846996922608151507253721836588450452316836377537737247605174995916701669039536045346205988938864627236565967833399328059095604144076003356859707266398428802064223704228901880133636718749877085887709213924945157426842407496140932379666216640027006872345988418434046908680691217038359478121081724926548194993216642172670126784365796081009439906050736258034934619929407649271896413685964874724980350927412712914151887149090029919296619231270321653908194215482927399823791923987389218963702370869763028566584626188048396438998671030320140557869519095510502947308848155931213092363364330143059655986436964475142024423322796236144963585294782609377735220256273558837152684909666122608549667941963454924754874802032164546562918825253434653148120869576922223317535283150765518904163358410975748213208512201645297838021637789908564553744453828923761071214129117075772359320111490472022707269091071769132021785779226959100083035233634349016133114141413478644065100748267228543810003282400192411898522989012822524885938323354057448105298444807950721391154282380325534840682258334511617908200065081997018330284956806768310346106791347275389316983912594756517252964785833687580994775828374283340805332674582231330736995729583574982854211329154145211404692977250207312806957577255318774617467197235772168020526215216826675895321201535197102411844089291821699807975317888718955948417366158947121527504150563730324138265552571417016497456790061166579705606699822323738516249794597085362703198317431547499912451490048645960484948336268639135233666361556818759034327381946657807084006820764060076524980221079006462366553721168545359352534713517643035937714938951594338408114666594610036211470139059547389982889114244402897895205628353864122093101587200741003538292132438459538685675313453869001870717481290649724246841969252259781496160051723169699447296905297093620934824443947464761226152976036518864222088978518637682823810120482113504333941132931455978901454127620755236283053979780626014138373506795743505343370319915387519419204995997524609117328871580536381081223634681365064154393104451519488962670695261549797290969140115892178487213737571806597135091898397429154722546486914705509279276624069999539072088160904588432374730543071492319040216909645056002117445811272207422894664595766697105936471449377329818579482420156377751418512838998386084389763124400549077295684464597524336198583015597620536142033503665707917895177597295621410858010233585709481063145029744102062771334181703108314289904317826211532849117047384427803802182431693563551356090837015227257914888096963610922082431943604998681747736775493541169035074224812539549294654940446802059526345642565266116031363631681999559707819803961706524408343709618498067238465210643050610434150792865414275426136009930213243337200733838732735727851239093995237482669835111513004101073881243897357190930223307581878179017497497239974822168123254572854013250443614673116732859761773300229877373168174988564497947549370562379583857280874167706482674441815772351146683396531596697819326745178635880788943688730594863733160858785268903014816905536752209233207314477860130623687697807271336166730775345728903583698499894826126953603649213013398470188693460604453619361243429834334090462272218354965931792302162788467597898286415458000564724664432676650884816487814101886055442693527052524109484998341172103330303603332087710565687623879363675215904170839525240010135591022240078366522746686294430494976199508826353274362158402377787423496355041387455433938412235884693584320347857423968849821414904471148661643715028289506282049433066462519545082194411811799898994934411544377655170181695462560483444720151045546431373936780099102322178995121840947032301001799090249024862054565943826423877517054873689422392848762643419802922146643207538033376786578671552372570226709262230125654396949958845722113366422715967740811481333263455608737828988529664118015138299189822831422546387030433661123893636600712832167899796778514493679252816904749336766585467708200474566835606839041036369773927523775831920012923468251843091387224519450988135083970804531532994036061366934926640795678002241790386987958356064082368077105467886366367326524883186066505018024956031794091229791993638656274049959225739296234566034161833130865482285638385301533530507004400364260453371790455807499779276965027981642807627090826952415394790062875422024771064759636648755766597365657320460547298811883334159626196586124069814059667180517439217130737995494124456212671752011070871525656987278975904071585476492979152830093044315896748526478625464869284175359949099818324975432787908784516418077970881998936869151534114771954810303194746243323612490211584698712165897920578629931564934588124784160336103537802379566172652255403810074140569894793777943285669528126973802084404676526500795146114347110464854667690281606579777584884673146920937775828507461205741097900249964823844988728903343817793597146900008386696793072766874535083937337255571457384557691534700774497927159474545222909317028452838615121704071120381318534072782656851146821944869319024357997305033875980099505656589676395934520428958170861912857211957907794908055638964951839471512691993158305284624582328003550523485637294824335624958622405659756124662076291018512592273169040813449065872731108237992051505895815750723445406803406858582289122563297213365424693945787791623513223793362686685084485610443211499342552592680015815095012203853837074238037339463807402263817119843512563534040457035484167770490261738879898712307094483632552187371729305568071187989924688757913632360880830922655669382112958160856155169020856592638113223752627187098725825019071514037415995951190135916230818561660863299060301392022539446699541237956689987661354092038614036292801138753509096372575664609334164543179783105887881828293849369844595590452691442422423710578145162822563807242562836912960944610162166068787208386227545132189108612582979143557572343733756206849001198685082785754767048592609095647467815582674647442719325606401907182298089032144331249009334609075202251300973122970044057410141923562685256901944051781083844765028569467794399164652612920144419963771727569900434414282282347455766607261596566354037856259092552739967169678355118158859693140897074265340327928075729442628428452697273406414189001135955912498520001168689383053528705242770295875478300557272888026592368977464973395810982267887146661052839819128028692860834889068804194837071129724219933800502368741263663158467241747245119178752488358898343897865498784712251460898851419300119103443174183377896285777578693081802738615043423306804625936926687199111538778773557400469664227375365306589045937088112245597407278279312644050809611047081348531410637241020654738127185402298500528594205613845649725246113842401921719035106712819041819642887803866078416954319240476499275985413875909771138053261426743799106329354192504047719944186090810212123529486708623566625162215605913163689879358132822489907186123695905446081891620258875898945350993877958861437734036275458086457845205098002030946722812202336141474253263545266215941541875638049398677484030864765786108847608341642248740817937350361329060098514979109507660727741952993903398527313411841660248722302669547336685231627718323109615875141218089969604782021828301880832456236534493986829325372209926674243131176883422515137234616475457826026463970807269127538890464700510571692263166018005471911787476807152885306918660346684372164505629902255705100601311298803615045384449980508171837789348465773217525117613200429955546871501149125292592180727127872655131113794797082153678391140669759742405545978043350645593466488613238721363506556621090716919920693673383289253893551325268955764418928946135649609050929055025995246146753947592853466099829633363087212494187443606394475783253960953585165040676012053277857937457307819038323730756288017314069335541798763734227964833482626079950423351007269546155988509539285660518655149862397242514682593042207414043997893309888072501656387931021247936187510158412280090904540918276111650739301479712322772167452828913325177286084269232389146840979081501665706444212400247041162226852448100710155022532726404950691328202795629174029919562991647417353158363431855117888310951841715722046357099367291302388630803147936097515080508757719407208439373203054080925424737214998281425152202616573847336518199287381103009140429182885487914627090538624384997169796322003751078367224566620235774775827298450469673016167469044103870041417841995227538255544066542527787877523534189717609233375652439914714922712325679218226607643004598528848513660767367608027241055822841549175887058601091096964027002914570378677300074349025477433205531140264618441960986585654201229817658772917602746296149858439339110642414241986747030331600627828122751142974317034360352494564412113332795813315871862739882941343977194426794757042998494259606459487694423745945430380906084948726809333526965868932787994317716112463531614054626804301458388626683247447691859483500404929565227937382466119766041294473126898206580482164903511570489230704285672199192931895269136185846269131723312489625063859482528320918412596713131911874307233900365461476796818171018329951588321246226592708580294645470106165101815029093121644740908928942775342796252857840562221865754535270721268133942074205086144620416238554091229387072109629013780247452088905949869239872145036124212133264375839269670681728794006806577617693465366698090579526264245230349083455966735228452176110836815576857756003897535391051610410885951995524327360763693680295031579367477132988730582892156916560833285111742205434349801188725139628455840821067406599805378048679797097987433074530623381172215104654470316746480955734946568596389763780900686782394110770187716589803621385632367113097549345641363677829419860493526733242993666686185427323954558866814097285691773397426444344132475387071204768450303675531685117857298280132731024467130872556775373096202602795894387990087400573509771046374106228813902230647488105517193388409997908353377026785705177255929363333741833373195789618932807926806326827099676663139754531847535220918056378912696969511700040921204977332844141415382173237288035237635839985005712757638581307532056013858135663607208547406902525340380090741309428076681081336087105866176925507717973862458274865645768839942957046043029536219799820370909205764787450202393077860181992723872650905164041990151457201179190807232340404501371387944409408634866548987813365994781614100817548823148733842951405913661313963336148154800867341176630513223558272017661273450055440446597801882845056227504660889200715818167567732223881091520321623273336197209469867959662028622646164341698223576094012539050068548130626955874905464045812954222369046877195005476686230404671245081900098097966317067636811168274405605120022950297766248178116791410595418088477859733394936842645942500815483819013010756801641350467198082149063140974278760736485769755441683097386497818433521719184108959559742046795969637900860540231016443169040227943670467717190182554373374884496739494476952008624167727476446190574661659825779112182359197220562463917707161372505503509992949505569251021224263937629972717815408695349535529777282131537425126999484558353593447677300262216604881203474886650101891438649267067722053537506281341398735075282349149974330648050206463255945851806623621070189079659406096371550186247652721041476889764776545628817769337646645480017440613969646972967445808131133716211331974834928401674395211849122834525054063555614533905537073976461254088906317610753028046438134761671171898244972196402612247342614666641572241782406869840211507774663552384696193410418917941835373514145219979769459131019881090232949183245796978476408181604894677502805304476601813618315194307806703546958704428612967886882998926940398503826634747916335377368558067594606480802489152394139235354196884341273111938547032325535562342985702029623861754608249438803084837997307004862416100574325350186182762904464811280454219780753491880142605468160771748640277552450447251401895391238008669339467849718747501196270799269668009185293112910417840489470324110927096223702444828865751784807370079751116327061019889604297827044368584970041110535001698031787449800825486963785556340501524763042812654182082718622532867609217252320770215748244708336402434827152927276501781376475394195380883620875499930087465681587440081409257105635760815324654247368413646745494717670050655209228624747252688233584597317351179324169057108708321889453398224385733076067471464916307198078342107071985677680774440895283944755419100792691561182620544637633492502451301504840978624840478299724649115949734919190568847030661957306988981169601117604063736756395399125273374079766710608688352168203630079650365953388552708097120561950598227431200660172881499909651109021294664947237626188171878196210031440170120395809151804939360473703162310354830815138717167690429924559047704014618705713956859908174765465542712898986169768520561437561239451190064592014198462452977730098272584284779832675312494139903725342985631274135369590498404293512090575625137522393513706755559897318199277705226506963858257958711550035683103937858647648187747793834936106190167742638368906471747936231743677633427980174754320272930609615239494751148658704447061021957920921917384096269119288733061120561725616470171614164012222804089172872393922355542434268937147141175128007379328746074225084571467598599808014182745980911545033328339835231434281069889671086328356608069648948085221115468014976462798820312609594636203939674745614074981974530915153293706514624810010435254600726244763467125404139928454046693977316752623396281348512285766700647855739438075059760607720809825775548423636525180911874134510571112149805067863239080522998896825633456265311111841332007682401185071144395495787994329032434007825631191298037794649312234025966118224453833839006978305158036989262691105137458891403491324681140202074401134450416071368098318003664074778738968641532360425749064450707783133830743262984141536672993485216935240927203136504428615867866061014596627134282710744494084593238752118453505730522546250979259793705384510742525015122633306854939391703199298375329689883874283347879319597438632261965627649036809201942385556983640482687301563355219219522516248887452287971845517069744444025701477492509484680194756205988781085039355713299431004793460317233043993556691570842811983966798996046167608395715253082220212177945543349237297554402989537375165606809294897083873889509465127132915438501244398574945868475578554610823696149512897532195227677344544516851804343349116810543578914890827200222503779661427808613501271639546594493975143879926376200046108463219591670390913744208670260236946610443176445549229258441789144495509237219242400809693614439030626597336449712670890734620476572284841958819598239877314657999439363474212812431245999020209741361346774180053565516593380991080766397094278534765985929423079819914610493529558413745992840140290958868290112115457272365670789489808915408785221114318804888745499145507256620068917756655605256137019475917688340064318312885098761902301267334780906525312961290175460433853825810112012814377016385952571603995880741387571921726464897159513474295271990207796420283970551720516628483470360476009213232730720356357786726161411950578850793042773624595819254296202344859971402370771839882113477224865192110226517200571301300254988576409028204066134852614070802173483758814915248063421617681095164764289121311791917535109004884342413038815827218542166233604568095957506428308291359474580330776557283770821771402134658976587706110714656024847849674145765935243465429000900358909986414603132728701396010620854301696149954150945871259300690034511409457380462748607451152989871893708810757382891118088471442461187983686756443181858292692521143989159364500349779157202510408337075782045017320390617917095494674765120452237366850226864575140724009333774673999035026807192878145303383988393962664419616506685448805784175098247973516670366435892740896714241068609355662076959179506869901256965698930637194592489703102453847313253147820192883476614464382648966218854092706233720109869219318316192060677918770473554772050555693958701970221029442642745733358421922234433675691818960972556271609784958996543381547852921764902787938825044088383497047568965227209770337481371547801204611192234446827310612697704067650614690291688180739596352493271313362713650969430346434232799571356048947356976197110520136339275798115708941255929937908811123106482905873116506861410453763056460858401625389195752870677061503296389025196319654307690327412582250486627318853762371338663319756848654711943551879834912084383180485219183047262376288419472734898189059009869618293207217296178639189023614403571506861550557009613138236591029134446328997209563184033057459769674542205106978173990943442003903634688532680204910413154593809020922780106694176007025065736529319358804518245103061796328961943760480396277981653280428484455284140396668631757481894354581388383969869413062704492127225581700227235276271478077235858318513894166870184189034467041231129527509547919142553334955126019271575659459134721250655511157871762796483992129280362446030774220648494531982050148805339390658744643361260564871876012510940826537471114895943075952664639293315827045731064341186244788460900270590474206599930973691215104071720987522259726045881938169626991440380537227300236772715110748517001758607321401813942137278582191912869560241934211124762671980818190020281483727891343379107075227542077351367396129434528238533645225259134142407309497056571142068478216196492115754051348226516085787250711298318088106345578545785892746021433855850909473730914756502796372307366917047341809479808916839115727860299918718580460069379459055876957680341760685049773299889854289493701349882634405671090413214733916827391204665688324736546955545667361965331196614363689957379265567709526225401441976390351145586214931626558633983290909458784771201225491658544165671264381385733801465110413947786189194820002296678477201250445285902557733400073031027948164598147320420961085233515248030548786036809416100307105786130267496269609720918850404220563632635929365274151924307344343904331259619824804860709970434783094908387099135221149745737460383137793291266665473366603720331371741448941850011598114332956738379313041390591174721600237530791781340888467713932864301342677437133638157295138601152290870905696275172175792181927397187959628323846124437936197580978852942826004397863742411598390370131819148914159475449539977245014956567763726372922939384664551328887714142849525900947097675207930224711065108609416964784383709163812285191975606862134358559311266217274064040693538482475969539629607565204437643554162087094382853682091567021289276679833196004521706493381976837711901761516428845473710282198587749845813813614790594876955726861075794697213723745021368760392073637954044580266933584950950552496868974995668288920984736429714866379397757876666513681410819123076473796963030274154684076446207031237337595205453957247639030520577165732228351877577408723168561037609794965607481551782255183771535121441972203265100093966103412874786287948112829084861110901990821432702534789332533056099334793151736467948081212562641701702267535247904160976597963086227905239224538994765186867781394986437771314710259188844602966920194959659586955552314936417808093898758140803012311084398209789239387261578774791768744340574740428219645869416299069998324965607932957957505165383775765745345079764619119753699381977114083564788267731827636499208281921710610858265398452662190318533658074680547588620269852494821120945082044478629157866303202384658657293368322933538218880728179875781385124702080381888454524219215355134087027040388843361444634206701914818514638259679283620821998307374574263564816816702529423393131666179250433577336003718213896428887820777022695160165881897212175529313760863192210017189207659457282028925655514662750714263331613140037650725940193943152553894583299826267566841472549586151939460597833234632349609866162810358575593278379976283575463600614722554981301283860891423266448718750269864177932465867417165304606831924470175771522436518643986871132355142096746450875210063046722509285644123377763401347855414363553450294794289956783003408254279465098149670817240520222357090907377679858923073122523141088119583040516952749702402684065334978203665837225334022107095676222581301181990593102766101822875724101833908016971563237887484386996584960384150435164933540555260220960324852341315654361752302928226510137507919234735693070050978111949974091523092725084237969157215209288487194119498857673725813505459058180573325845056859947538603676755682907588889719189680959318231308221379726754537271724216617630971177050912460380324043790593385371769893939541272806562874274314217677562764021354917856716583345699483776584772380266808002867980239711712402617826499969730485782754674525967825332319297276884185496725355301924164799978118070549053742322489398381122708487322636247474417115521706901517918156996023732346100950432273766676210979201407389037759202455305849648881986663768132321640729706985871732209795062694603132996228767222989418390989951774283757855811305324730744085410069084043449983597721249011917856235796397045580967247134398459042053342163684791432813401084445159720871814694892461019315825220670658370330089290447579780710795574358124240635344786039967549415697179527852024045796476664053440605806771428156150961252384331346995598799766814302609973657342373462856260292882929881332694570861959222064153072350263149943447051314385625582531736574801414160444918923309737155604458724742261941740487664592568978067180723635910925354890271455531199908427434438951173681049545877790209530439088534621910227619034944826472523630600306393066733164241059823995483570521796081980780830624478581833403743308208109845330101659259657834415582444186382285263759514815208461672202276141644639937585397076296196265752488372548206046781975258017817464528213315749969332795590150708580083036578021866448105050429166981911314177594713856983703299971990813934753988418699267151045130621353909218799295476228419626588461520116252107392675202775407547201275942902676673464603676833354898609742945326897684191422221658646127494932637571516557700000931267715193894290255704524413507169681078222985590672956760121267242964842330450218351618288648505537164281192879752127284279932448771630290098747651833512677778173829498304707852341482487639260654682370237540082799289759723664063671598770919707892545423473038107511251745518190465522034419766939328973958328659758285136264490418925700582947663905478967697230734019076322013731750260808750264178318127920345359676684775034452533840380785833223803189271206645432701380690029124295668654356532379975791785620162436238816911919240176596639964486257615716671655787429432189052520353962083582625238587122544878449703645515267482499014231187200182701069631234009834011039125480820266092697366669635083831596340280509657761136161713995064478885785702657271484855676077263491283649147557593294525316459277419445613311780815769083351870832965215678687821902571008459156873693085947292792377134331596301917565069954539445355916598652309100682639222950576950936259790175352413871985420114934797157332293956891128381028445683954088661399148539046028607886990565957586562093888915524544151107606997654868601792027814759250637325664981314512476443753606783392739930119227525800294006399306868652730378952077721712494440613177799376372804559797672328252838874663004989152424390987230766780000156338626023245577789025636193029456801854730738904752313932218530902497761272521341045703575785173404484402545630908505005087174861815558684996251359773198785447278343625083861322354078949221757649344481764256898405768001430332304742884330552775818997215187584480374809118891014375502936752969665997354751885042354383326955665935927699617364795817418909313540726541292997488745027286085804236756906653863029221356437582525952933631626027372652470491714115448399762639988416121319854710791558559214738407419325340756035324676865299939589836780223870542470666073092454669463778139468169050065699638354438242301642595474917216076509649881187766873436195519513671912519185208421265131261812753187794388647742892590576356988409993912690589694194453120997081087367997349935954551973077673133406777521877189407473822527804795020756356835213740401422284629425882966520675506216924956689184447856293745302530797263095995403956822001041285987773161528122187386705472402355466346158191186812742243770850119703685660158557693295381098433931717038605979326764399136705820760975914679744563964545539377654037526267290186667565723849558180937577369360887717703565877739146639729873001544550310365251956546424073910981119423889745815873245317016684369117815307807502691042980827415636946670606050724528842242142253642695711874551756984003317757493862523598955866364729324432280776731067928535250537086081929433310231251188334714508597123498655379794746739332780629232679695862304647415146767995867710583685373986701919774871306741573394648691750195916614664664723918307752467364342925894266242261482982165522887148389961948947972655338412575092173181864597470723226252181152061725925500915677402457131926205046602434902455206524028407853706038772278208536397730297862792757633144419734243248207120193749503213243145603298184940704910022096502243351945929252509435978105894801461512658497007012690122046077342076923666072765085670644085731749555346583925770304915480719099085719953034449920684220224042815074751293172256445722967031859145603027532197925353708518750906963561321509833413937001512635542982867164324683947757723850281614578682788358735919004433063298507830528697857681551068278349730442957212936361701435277790442126765047060372611983759010290875422914891589394054276216472260857171992325311719510691098987506174447564308200132596904965962687542050184275532521244178859089295576209685634657291583452800781941446553658753204523195638027313323260583675330450325084584427187098777065669055070744676017069023675687170920596530670668319421788953446625274039638927542377705109535284211610819141321325769892820693644459503883570565089278317818732795346544747434238056809922243365293026175285186544153221106294177462739149979818755130054404000771765138363412251652795236048883991735688794375717375610872507089004268798048472195736285859546509363972984857718787039917765172718482973254768251528973476242702088677931164227721853306170603111754091489754751946845515394541833834940121787145788967201012580635115493603132415411304809643896824376768826491077275761510998906584642043802931198551713849186486611232903749227980562173883718120152119361279045993884054031870630981591746829684930557533710593887555300306576070530383312047461282958643147622745826506684652910406022871499576256815104273288733928892393856935450591057548685447985681747915447399161926510862226374872792170645429283598601446769760626553939314448151561252912348936361672875029963166949921939345150655194223246235662966100002323057633638198377879093318897732686467326741768484798257622349440166216164418249794233128812104865348891382384418451464504604897907328129390050106803007526800470091914511956585227329642171115243630670499043628260400200983774497077114772770081021471764687877768826633991690700135593091883935473950613463773716367549486690819426630274842401772559831684090190423339522390866907439669349076828013384093545733044448949361185436604031146979710019310857850166448286097474269634769738889823286951234689440777576981281729125615776448817258568229507137168298040285607270845423675884748906067414259777339229688503780011114416216309071481132710182995167917886053827145850270902757530945177304348610488444953959361380907624219292314943240079012754996976395933512777002676548442355043523934407217604590739889658411864921694139462676969864672907255611473681491571481009814372654918332005903727159548062983895419591317699200878569275422824416892828865768611190728722366161382329285054610911931599197996805255102087588699116559223988453385210225672061336794394394338038803361906299713783979979184895307831796273227297123317822085207842097956591267569781035716447867480037918709590444979069733898891812347395909166731054206479893331470683444392921541485607494458278850129853255064316253882957932442641099496570946680334335986680222450758164233856863250592870779285408367553814016813868717122985489183928182891580060244917336908273347676412193384045869227683586350838419581091648785955497366256955328660437313388292460166945309543098552539411801418370204140417167485181615290103578178124949408289134187539772366529076200003863434380244093312572562761387625880219300406590444127493030326266795743561395385298364125496947567158465012331076135773135734761782573589924848921597810980760947142832234872351523347790303135864465876798590958052481137692025368412684227440963919463472510036930282747423414794730182291626207359132684717892905331528907317802587366793974863530960749736225714798431713683274494372147398596237722965743492954401182318488662535673024370962296497229187179451597480917745661031671043782614234823245375850050766119015820010009866579409254107934011999032886103394430928009939842707504690535411100554238088631384837812337020318445381170514278545201408974365143825736965052270648231955501028200329896164316553863738880359363689136367032552930148978013894613046498715501834949623550324662185986189104104569253580888378950243211684327804108317068078498713902705808939524717188032307278450070396208588196572931178328120702624875498885456339523241038293059847285539316553465493649162831600750112363689479664997010832037256559897184704370951125290325672460722753669167487468992694483275461472014237731634825244299385703688873023184458597824227029931556644840361122135162808506015003066019753990290013239215897377908126812229137301038064126486094245156437351560015256638039877941978481875956909586294865308764314190500490262745306800220297192013196239717303085937198116319858676692046876585178833387436920432737095320921684202630875481311267134375629819972307233874617689593049101040496565809018143531415831334627877205018841821496108233118949717415749258323898533404028584086440848753422770864943261092016103193273166423562355457173009064286080843629665266906967286232125337838764536563032199313583744954161920813461753819126009192044079454072137542714320632485035241657544619021486254304631811669308146719925606788626093478011003539531467934932685950645285366576717633596567786718204802276453560957635711476469092394519823270072234554591690635830213805068335194590065144751292753104738161285650121795877837469876153614751246047448541225711790021685540982763475930963163477356238748850229352703904328851262347289751863248206288212311859920299082415614265692092486530474944604878513868283536804614989225595534697652334685662284783517173845513188720927393090125075136452634836860535085752884330921449320300997905060197221036692191455312478225948985221494660810292454764920701165035049532295100686917987471639877444556446578469978002233761386490149717874994345473626610318989462530044765933529273475667013133584884470027396082567622175662326816121076429896953057167045730384349212975684315025674079191195296595037960358971735925185997560373803282806236721684684864433896863019811174691736953112750937260750987521084968289363241162293108735765372077480513538278801684945792015146121787765742110682616659185283134208162915911515668388924706382905096448288310582025585326357439605719437490768723125437338928399514626152951674050488680035320375920647734813395404426903181913559414706700930825193907625045056296390469502603944550955718223523486489016788985422754693998290047098373221735978862982188097995644583527951555361171400126106179684029718923253458020452667317689644203194095171774424431007705331762852934743613107356317722657400782383947675080927617284501706182121490603941591322207664592776651905662221364140435914488671633706889070377655394159868034785739424970023556601696832250783959845810650317261667887065591507521848457901363700928193446627786163107649199195816446375776723109891700492290330511107141280919964884969195907826349967982098000765182490137686519080335337962527926859636396438257378759718505657003537434005865169305097401865721754589117453520468782846070506792603513118774293069171849604087054707616693844237909763972493442176121323012847162821431472826002006535435540377503172920302615173117781144279571761151302081148945360371438243149462152132245634218849728695118658424533494603286260954272379194069005710626296434815226411949046784785348757756023028010929327814148261045017029311932764229866793541096175812378216056858753046663418778604733928753903484723622299882430564707670393703560777601965722709189245163927789229725124602158432053927205633274591906484722916942133329235626679174193665748740806466694541883193675732582283633835137463553278639032713330755563937523414213042417654059298447515899192302192983667217294566237847380143392426318145387749994521603313801545340135745731930678907348154353798000829261646801767067173440282798314390724178868207846306456605795694830207285025476266064126265129304385855001736429855466566748816984349831953082587886359687255781801009287580136689635728727986175559205217624117601857849620463192675101875610733348277655507715602828875188218145912045705367269429090037035183091926534112359494773863061153811186372609221860608242286790129958469043500858864681649357248308460474487026292145118025949841858127671657260268698996177771834556836845182712645408960862844875302855953776296965152697981742177109821248546054935383850997580942267054514569347332593428445871582937356498168065239596971330095854787462683520680516986984481185064347404064632097720880261274608582432366663342334299435306114073042887189815381988564449903069513754377799247777165526522767248108961644818833152174980670069454420156426989891240891476200381684321336836028206711946303097341511673567107162167821223006962732282530187432935216907013477323245682702125234296339920924461452511159593890773582016332062678140186052555655350201857005172660600195331702155065467366658030416349090054392799919353172937842752549856815838387344025422958076565076335406201724358899595252662815632666948328364439755085031640254580820921626569635530365457702221146212308665573634713891867975732277464967076647108987292218683005002695849011464765416165730495733395427010260987821868110381038373344273501833436205142269228800944739486530260556485379590912356414341964482998671936078085253604360718298891621506990924458015990987946800444542072605791837618254482180395324820386873690580605332997800419090324554295635388440499757726175501374137188349124441874092892670040205732441726444849003256465581407572796587480366817196301625426375332147614663999775493145322878748842293285216934269219620373959877455369514107907847959131497213034748957373906435407869306822769110077862444131067417663927626521172030952375062668717770305197371946108298321602768349979714156430524085666643865206292339301001571974081337548175569428532351148661377092596547428058329560671051930823470815978122841350057765681874774750916350335578320529051616800281212207551988665411093971405291441528496867393416389867503637929279087823092060977494225952413338989428478029511859675693614884596502592899868645053326751133480608020439874022497043627585500717733865302411025524728444514877694312469733526818783046471574611716561329083612668614748179062864368731823815184815608217686455435926248918825868850368884241323544505812570318315524423090456004519333898497124493353965411803606418542183201324144015201758155268156107773634741457790610183605015129483610175915971689977237568654482557958569650604897982824900641005891875253031229319433979456893883634754982163531426082198470156722246537763737092892663458254634176467616808634720349562532722029695877442962979485861358061964583866190146829568882332486035862589624177005809119489756734456334291462882330351626188245864122894609793887018661183818402540000701447339542601820587246839280980590254002283613283933530296898117292202700290164685590166733865906464216065805465154351266770941235711019568823824376413604480036223353925692265210261247757718024562000986691249739612308976080395798861805286466041814954256805608636286855247665417054542672656589627056622404019718493771909364411441455435746992794907105715671532141655042285678518680217905613587406690879949805433765074222153279386638747302745437913967540681043434271567244493873763343133718434212611289326860954275754560649317139268782087481219035672572864918973480113700398342956116051720436398331420118696869309927563230255938025254865745075688613137806234746205807898087411823347521375209769299526302568904904755841903052402141668429631452442496930913414886084505626496964869675198173373611413527077392879689316382181913648366493675123786653608921349807136321819369410798903154296863775398972491324721974386918589506841925716369458756946668349581149923988076417507969755216277879444664423615867017105384937611819855911953149123976094628361003064234641828536528115601659794320450412091460430237344773134991497116574628004522110220337895189289992360411439217102328333054261320539121475561008502295564789157112506578940751666785148449910453544226436339897925370147042827783655852790905667088246375102633957794543496973177705225621788731572840484551479877762859780140406322140296958383455275235381045703520220886122922906707081350513545589915196587548547773083701362836600484326814040751890752751126718282288670498139716048999038165194530379676630665338750180879192122230586115654280078302005758555335380565995696547522332431123484477404360944487587976661979418251729887445558884245637072931496821873451896711918655428241652443189401809595294324166044240677246287091797200675201234702335800639028522215198469271293111759882688200529845633673538630345314336899239090377101058223810865640770169065912089099238958330474638335251818219842682878908371587652676440169814061068318932562056394698160358826293447348773292748515933131941902082866769699885232864954897109931164153574255173590102083956718064295968509381605607254898074334765172939695035557013234784513748289785612283953706839087553938435778465300477152446997287645506274102752151763547727714346978320042371735461849883512493233386558157537821795560955376908439873994988066395370729710284916890022147051817351358048173985780613628040678334265045573272482739296706447177319502179325697559484779797473169597203542931851452210962695361191474612204753964795258050851754934850624392298715077187223142321473978373155609377733115558401166931166457420143075611166388090719893789792832628651583981379182756983167333599307674500465771347403879719289425722969986274625095989818263971628766168588063210107243022715183811960971735383974965445117185961302630902148144089920974235957963918047970965532443604996865184595044444698422717945818003177006115322469174689436590616582999606375007483785327684810353342270475963047403328330914408389011452172534996106086497164332510671401148496685493121224912896383512108808602412166736927752945011041998730330115232219289451536304598340690115570739272288611196466778684396342228424625740834769833379966456347451648280559033517168626838638077535585771998485255357611655118707339114641086550560047886344628768481311458670803713118221089582240592296256254463504725719390051322516316929424039579256839511885418243464510700275575489517984050243084354141145458488907385237139425880049542530100342780621824580443026843157494433459390620844716042515866200664077950490296916962173955430516356602006304855537440009531057090163906479208906900557038332828637358726309995848421494835757813909791163673820408859228494102411246288236056701060148174560326116432114103911504093838325073681906052712185128961406165927349531997713938463442376208697613184977742488488495887450257793286128801485357656867547330304683169381656411575458209485973466262641482112852692568798756657627301310038555199864781574758090240533782769508746777413656701030235250704042703171679648125136775154041357474115746882720530961152947206896476235062711608741295801961522889321839920113596151513882982087259257582115272702767543706229345442831794974128502298758560688882649838113433525991098378117836323579384941448377034348725293169151346214835839100747169419926437077383824078912433868031609541975361281073315029492217889084217381536282765341370375828100305069816846424459093218234128440030825900200614015357291226019174520052034375744566985711444403506001078395193355249362950426410244828361759150347947116645927712201862049037562535925084597515804404408852865787705525450343948482480456447886271796388343649408677129422558573271533929647766529989475701657218738832615185026378625925514991116783312635453965255712013841033092180703281415492857629056847859644282787136259456196691868226328382717024055248799168686640461058199376355144658890089373105885142153276943000183877256898017593331317178108183812486977960527522713356247840667181519253748991076725471675573840327215424788466973741175363306418148481410548706072204715275655659548434956818655091466812727851761568807412235309181014766670118019572587040820187111497545407813190371589547722541355013419450382686951080025474243037151611928465820343674151271510504593228027414464557681190670118965518423383160125131987481602587775596963887324143303324885116189032767208546826845756223200443465914280198071397407118912150528216515804447035041664292024782820016743368446963680559579474326201251014991649695529893554689484589679585729849528603526962110242618921828997880077293204622521578427373649193782204694411491816033701677715051464357298232231243345100103802341664943525108128410781235514109728967698481404644133308440075047315286793215147740935087685437463063768605014143239712044626615134427534472427964671748845748214048311249719140282127838811011725934116317533763906288055514933150473720984091405894969641278665727735445013290510708662475015822944996412702338122915613406313062917650098277415638224985645345492501038643593366111106727428327728093473800466447880045663454862224584760728589747561887874210884389584462728481533616803990611559544839051827919323014783280771762409318034776400268527229919278256263090953118339431700849174417434115344765659342647275719523658508616173338342082931695373726935444603179812533267873159504446507136651228711888780870308748539561840003729526664391929177709361060975634979722039746324109019412796210958374879727114679088716409923869223293777169025532305453224989110887630182317264556457122748145641009883941965261288207493619516294904514157930892485341408793001876755955126059488941151219566997889639973863865413063189345996084000508125534209810191569591784673489758360294770174741962856528298742367248552457826423666675779752285067639336957997811349915581048886635064474496253403546620278483456877579746472329125967642514951825829456197061104803051553732853800952076554471851676412081133349231502738140124980620778655099714431109855287472911199450104758049999407318120865580634549023255506126961712106140318315764106311358773264619668849584610030438298814095854984618858187618480984265820273148998125311640978143304620746083289653675557346919493205988568834888414039443482751838286791528746534109627105971832873721136339257971956935730942001742141870909632084463148014750036073485955480698261384242929140357943387081432695342375624583520017032358568097163481077801432107195383283056264082074577124433840515088321769273111351995355618408528678087689817577647267717816309211067169012729130684408101113584630762016716293011131382133397256527493474718601225537313854127482988493777732029667008847325620684686501905031475625803500789539562865811526124058887346753819177668669444697160138629943430392491362724431632830703311828127390444704240197939308337400485957122354307514305606676764038494458652778567142228038852445075411305264197990071036320410783510956333858168187257480018349380225414450579259111687958342967463270896952268655351746721216701412734094090550694343293950075309802335361034445662142292891133407627779734313319871748622293854911654964231469192883516561111985988882266620300630513089655406941290366294128960144752406594754014812652565872538559751353375420956135156665055368416114656036525985306376446144092363255115269878705981656427156584468289271405894666984477111466358175423613590830354560071600385852840746515413289619465818458223568286577407005030788325330694251170107950563040337691380750626785187175838303795875129660302590010143630989765087550653319875172359430647840095185822467335308372776305262016853719560507600617506015922925422766964290033095464305684750875581865629818320857416156030822485801056861712550389749324967219775215909987813545615685123169845204673920009569255622421529662984141361370804662853369520602628982161395371198387219343561715607928346000480623937599032782438820444768849910262602074603260122922895001389010447859966964696576067094118510656898301934060002128152655314230864307450176814256513079627930295373807800474518583149946474196140753176936526109772519038527012364374926886745514123347188797767691557344163674767656297610834268844886631881790275748653780664020563825459358757205133802603597560275225775677765021786554502248947868649930575239049488366585403814760567915477896894456269513059081914154963401012855119624136172303514445651699891376578660753220260995129966435470466206421982174233052942824537383143451129306036029445782846178184511003315303999996797221383937617474530191449129508601684131359628086301945412630247432438314675048459737226480644657988693292120018890550839833327637033907891604213942385690100643344602778353129075436709853423776230425097713380573933793632923355181035750813706630547030049002367148919492352318964236179200401643816333898810935690657039574568938214877734814072788514870079711807444954626754527101395267006952809853232518762973392744786911154326434176869762587351726257923306658101876174390645884868729011593537482144611991708143202253357391832958688804662009501626323071662913401614789162284870962681022693532266771020764366534069913559905139105416096502407380332886110492001345631772982349942519368059411093176682492697352105597815059539445328250107509008539319315649614290734769401129393000304722116963072347590590859147805742868872044580287449338346654504514854162168171964181088460473925892006127523914698271207971445626183305913439467882604741203657546875539715926877634771531473289015222773332392795346828161391110063265147545636482097832779864620533930228616055710032500732501131993234551673327636000810243815342601148598607713185831522801676598771177728282146566575487702994770242833946885206139847279092751360344770410603759980210763506231061868164369391045869974212009153524171109153652468963483990120464977594753925436496165743071374043554675272285366455502179301573128146672871693952173715860659340917782191037802791874485550741373576408121526515679803071225403726923282115729087329001016905637393670908327576390723931954261103251977222458936735240161172691646203018320445929063282105829484682575957887429589520856245468699537535519601644933540448674915279212041564543209193973998332820098481188629138148104400781929688742629206732550523432850783138329173121846784637367231206986941528690487521817742649461802567789505262498907917791443082586303816159838577847374325234889049816705336845162862756471448120054742339741103307376178692948646272131795136627301611648797728078721738235138247623184367406010279748153373296206222740825734296137235261927135047206800880200176519144395880615624984477235305653582175020979608690950470023781791429744941690094449994577480056980663993965222241774002217560368443527340564107883872421393134084906655050659245823883399397213711756770171508299126999931412473028350713006628412234329054155099444723833665703175733904789917525755323037898919238800656481480048045253962179681911978745557434201089796200411014627871478067172501192437831202612110903795192350837621240263194331969303798121506612931363941625271433136566992014976688027278581054713084955223166529050054092796425232835450727830617508548096740877218622522460111490557681389457184978565529464884326199428964969744684623930602713731463556466759946643262550273970855278218594232224093931834627370287095797548027046049572768896787097840874540136238279180283709427670951031102607060737814138926148168144402250099440227736637887348009945741841252877627755299786647324430270374493019575422906947468870926557283961776993373302652859503626997954155164125573687023643099975704254296622237924565073793550143727274642602575343423889799057469594935517120590257190229412986793121173604482282892076960692595312671342447621862631241072729672127207772810383806920601652113341617824283907946781865752170418914947341728587576795702809264837313467356923380053660744029376762903742644250465565934513080784497641758805630597133806793585725622975436050762552671365896809141305106977599284119105541407585704334130369233781549857594528400355476199863171995509536005987133010980296237935510735568125301088561322171599819782354093755404446145206188773674844676830188581564653583520320384880623873401706583364972167749007318622890783255348752412964935145522567574919333437745181457538360587191899251532336401338035337503589235213718790148687288127423403793215186818572050308418916912728307005867932777910852331924771261175414193498708109700072278668013674778392018600172426865053307428857663537651772366572073114128748961878186255841850284121688709446021585205255060840172525034625777786138306931099730367349965817232740260582129900078120774221775124135977961759266632925161819771288723485403617931439556489335653333292358258564912154543590213406917818447059803062485476797001013224320306207790166025697246703898779165260796688684264208565036041265961550767758523054377288884546722083645486369623922296539516518074012892840095181653722323345402837839038304648857047354649020297096533841968721048360484946783701115648786124288723293880030539207442521109506605546169673310999908352796587842627650752924026730095921934105369491093584006742943270936867973014638218949694511920441849465426227998180247339462554120880113637103071468007123873295903912649602354306014954427295197830903532111314222102920404931368746521462331176955017855999623083835643437558657323094952775905204915996640086659238287676445580115004826981703485901194409789899314061150267100040038518922930481815820320302620325235980353487597196799969596785049973839377631086102102344023401560916014087964252124135781589727842782951542935943914843499503344844709181687023726060788458671684174387751207209814777033804485932674554746151474581237316041375128932013274253271647008884564288133666203233465039992908552962371544310499740475765242551100711863948306229358040429931522957573708858556168529478015338718076022200084468664007277684563427242988727233997429570967454368500174343171147594689627169749764088249004844217498743216468777779743093904787351440870547045379901576199108443160153969766124360508676712137910166769756317459204367525001120823571593477318379041383204684709054319024633606255352723416376024875420244473907082984609983710560399915943862700346564824714961890660852246829640893961959017892144240924924056527270227892033032133588179575205785085750987627490008203315841961048063952622830432009572477928710772736374583409232133751089886017420442701702240168369949929505281412138354019629464299722173544504718204612496388921007663282809768847525311904726439350509801217009709214853767564118284540129722121531214744841289987043977110507312313167229495403499896067928078771046387747242632404663072344982133692324445807653111578872218051910692734847850681493361427706339375195619497908808411255692811602698432330757155851640547414988280462377986019426836783380358791243550098516935739072034036849712803176347491460670511279612533323940789443756297159537978325256584472533144747358480949836714504241931725241878709843285564219345527744129110082512196928617309710929533916177824748967471678718913136555024602301385186478714523961257166678109125513241843869409250606291562004535182865294594373437505778300244211399683283100588580497167554553368768182694705633701535310952505384988284082494127491103799816426673920256638843460586683783092209980345733609307336263871448356559978625131268413275827617432586621387747106024667890991554877508836034337459580875912853839836855907512597826519886733532682566486020716551681724421302035530380925849474498687923735864403773033188789919339337820611293979390966151660162702615407562876372478950181573193655933459203238099857272814453129646251486368762153501138749250890684988273397304315615359451927288159976950164662745821844885260050657128089803014938967978240110612366479347038983172464884939873848082697544458761477038692802504298520368221851092015288047837830169154266329696194296775486884020909788646501535382589369781968321329251944223977505737449031521380387698097750042234614179272971586736022446109137869655179104930358845804703659713732907945440529011638816256106747351765091172128871333463754181673615987034575100566462339220362689757099893347269536896930523917189739400928674334241497360109179043992373452964927892575531176357727343497539444165129454600944267240535628210556006933768573173626155818845833420970773496605925822153852441975933141187237542356557694608644035793869041886738059547859808217887284906671150655976029927451557823142563996650141159473794165077324488695413797388803181481355046944618420786917702192403478043457398777181503505455762723365414678147951393382019269428730410243975834031060857845114585618592124383987989409604106941266165836895608524482678365063202672969208053714905592901518993806293530234668532519473914736400417668337979271830411668129290246287906819759776759988135433497948128170197916642383069515321376931266273485799740269690393752865253919391830322124638654504095599124317749460567460937891096063893818855071441529937220046122748694787620674996133895885635161093616966899309314211250360678212154632066794105747937877205657488743210206508113697464514987232342346910029044643048446108632313796588322818711922112856942327207615131235501868368188862856766849178999489170486830589128649026222514018059139106865278840357896278647409071220339808049249557941357787887013908801996420697448899012524612756040573240689791657264386690932067926906725368575660868342180614907146776197845270017947352924566049176952480066763509356619476009135031151828330945820969536875237123806196984196838803380282506760700803174214015030311165107661496755054181217470879846290417183461295033578855542419881766811747188793367549238833126563877170903779622625244843945095790414560337602462732415421975921222640088403972587605206903542378143602046249221661080716736917901855867623540211092888671632569634175924751881136194664777482231803853962916525972506781111386002962851857059264313812334433357808037985461865893528786752746020253822472908246081586547600378791024302887272244336969119583029305202679838608714447779886533798091887994998928561267410548754590087348567097461123182556133237431490821016984708009779577732385651077875748521598091963622472615937110333519502141370196854879550356519083660483918779317261494742495798638939666643622152687600018635210105631704321356604866591750511975356902027777220804786577539488701111861397120386631717550454278456185378554546117767545224135533808573535759279429120566917711312600190525259727547807156192614007586518865741926891829477827223315414192286048286460904593276789296581131561544546538633230576778011292865621832126402383692257856482750232938884009143057726777463818946841061348281343786846256054081502803641724693642296029627655656026813812183703247392730099260115459631022273084701494848231439054323964493985528305528377392966075092588258880472766292884343918052278498854816994851720297217436570883154098223753971036793526957464610078355890611022252392608980564655026483420524498878987246935273668447404345852532777622813938987672040574167524740846527019017942131282522815640218999002104389313131316886997716748486578433337791725280624493852213258553455052770408036854166196876654660631626763255374188498246325107393347886656884798400245520405030951336747249475414378002968724959262289319466118160659130743603882975362698094260527302495670736881978973250081671747431973018619869171402565740934005979457525622632510382964298912799001719252263548506903607340323222499174075222560883653799444034946269084416474074313578058635185416552061575647110431041600184980840218951339423739306159829205025611147515751902527468734615233360899765506746813084879380537767454724641772990129089208368763940085788535939609496152185960907396197986114629920712919762379585864151562799225342341722050871772625383574467717708669219837466913585414710865415198170361238079027761913478209124467881358395782037680306639305948938977249878430276178566796203151564765015809511826847090281840597239670730437461068967319457075041338067798816380459326304958445967657384392318490440654559037309323026130251110534019170673439125092850366923367613474552114108129952460744866381936045313978821450627701884649671623784428009930452211462779279423418767691318361715879251380787500506365454080331409848774245617367987168782808883390549269084297260554152624918610394397438499871563941378264149975080567119341943490820408638928184241055071278602669123062211466921396050856340868337190231976173601934845442433869588201098748294403436836475215042411056771456417404155433370303836029974534883732398777305500181900866138087515815152728424920030411050239486013053311919344378782707347983881331458471044024110794921122244403159794924726436705569548866853995239491593844085464055448289006967744438226174311403978635702963365931371328266860604164206126566451481691753097091421030544195717085097758537848116325226840513515205731277206590960047845237670034484576422938917353799868701320330507883421839290567264932493565732682315103408231898799955287752336018600404588386474822794635364448686546129407147491623263425330990121153179904821236940872266393777117240238832766719548773406996936709181224662124557008923409828128083256047682418094223712755677362159481590895389881132667500856343469129948348742019535852584888093019616234067344453929010923989683698128223934729803740775721609068211151459863963154473641936943100973941928118223259914235658791236713010970963552279929165877505662097112107194887573222374573818489402272268949854575333984855194263143465318422564951884683849368498087704277038311685042374180215030201936473238154487061679810097804953194242855507097855118322060472030511892617542064892134516518238582124785823854873148812544365160151506107877511415593148823728741620834924325220504804853144719847319217713338361174360390792740444445346408919248644886110723427696437761269711058049441198526785567513210436327434127193502490500651549224493994542933444613545937375855938047137086029156974657536966020208178217894721887218589907434122405688275742624979141012958650460333916629412550969149246484355277043193845031267279058865153247502146427504624693668423544449285833702354685356527169078511568383822729992950048383080795483342431419924099915877608794376799130221560259663020817423413470969060369872796949230980237473600916622790566374706055029300469538502958549696851389893149197213978993313794878698791186091746120913706072638729815279073195304710814590807501069454224707427817034464425835102030261884080686766043969766782584300082743180231177749757002298866127802101105938445772298679665076314911252549110466065426090686742344185540890257550342981112773104714718553873804719716516585678164816709416096253803421177679797838791312019486841723095675595449738368169330137905173871243092353428958104914697244351495140376535683008280193213541895152499926858396176426791029230388434542698592048467903829560608421029503470990076132568890184814772624608499851028019478155924657183957136342829469224981347021704552463563803518350806957439582109971769281197296629919726282061347466391484799836248165302820835838184872899065770282056146767627286198042058059378571743267010198171494333457397119083644924269579891713661859518975686399078042972448897212748740527005633570275836036094301437066142983924024607998401505966337115058242048281254618112928397610861861658629574031848261340294109719507228974211129051262314054667342528099002217322432245058321737589061108854796802127685850032801231382019766090254498694206518940217670226242857727526239860496637912251743636034841274645320212737208005628174999808713437356565555961997342868459585551684823734717213616424857906669696429959634059357245033789265971481228799780529793094487611964328672715325349146248809373182732922814675096312272189606567504572342771730980060959863488475881509537014237581230281719151907676072539703471670921323119519569401389276368518474507581438451495145447246028024566415041908921245659204898907345452341415928999467134148084738863697129662002604573789562146896138324541341333175002174904254131581502608364934210777763157243620845151865861105563319566830339612089737487552118295554776345077560905884540757999318009401082100214935991494801485123111408825035250642895467562978105811751693668403397546940256317757765431706328662744520552143541265129454703764463289724452513847746897047968440151030915310139524167053661553772714606497983456110572312000334542261939254983660686906019689490496785786951616489380388355550250266680216356612451235384014713930383401807607131276398255529340397854368894210259494615691870989276128530805161089194121536176892969229057896465513789638736389842218395385379647640577109993227553583251391244884360363532390981458697838414009643013156451477076649635641944196833020809338081084732167864542624852945318495659253178092108446052702778860148321657121326029434684148815191098982476335435583568793495102884177180504687973683355829458421496321246288175975579188032644028019617527236489896370012028153389952059584549900049666850064175655947470255658871443926657615041595288617029737497749365974254393093550612251463271297856043607830491117207089931246915614339397330127456943459179592307299507832093159225826920704480410869854177821355787145577667833850535190329356141391039003446852611867060916466719366584471282601290054368639704674237035063979199349764735662052855540432358195109208400431616244718435880484194306162430326942922675961108035985298248451209774517731761117684093655389482141510098363341367490321947835479674356812397977369278589712729451417027764389490297708781209559363435455607243951806847675890996787596901719145054357985794169680102872687372000053532053491443036214475818543914338551912149496824717577233056146568198028445875147794312261377480165929321705308340982431456761916870406989616763793446534148404759414308507849593668528158690180335521389456653240819523374222004163407434414840300785104206095773074851372104921613098175602153753267658158631878013888557015243627218337222364082510015914956855258759944174122483609925058079709167865491807507261878200569970248000933711446625110723921872816208485400879341007353883308627271540688273086499367436229928047653419638111062357963698912884236929848063262029592148788401924236596951873040383429256335100601269460691422788331951840059811529820502612611321629711027472066204423221233183852020791762678322847734834254359526391140514465819279464574859799976991026515748689787049345606334949490862956020555755769872643591803661322181578249372039838798359621594375285088155298484204201381416916931645627132429128977439970977596370514696768203377457294463518328236924481830644552829473391369189544444269443561242731783913048315885705310097410903400413598858634579112318017125962985585392279601077357128860284810834591713581102064222875665136246197666589248987887444828706448969255476551716286167878825616647039737089973531388870275788674761114974557438514886090273464567758283631901947300518421356620170238619966175914951653754239347158652022995407059406425034012397021455391453619879132862393022806086916289872730025801757692724739493571080234513568644698162461062699237943095364578291462456529589450018822005260147126483587969120227573547707663474339015427491812877316999090882947267617742823106978052409078934685059076242269251927706925660603268783754370816862938755160053203301836036441885335002272754231051593524909151538677373978416540002732289051849957660874707135821801059792179192548978481411480227263714353923914854119038770327675383353512080482324147461642203364775223887355995199769402553337690651069760187253529699687966645208438819431028023110102046033223891576417450341825824772063662006335587827587195857065402465980447124064482956902517293779744575586625944096769647798515137237986579670407721332686918802644109234572307518500148983885519930049904023295283705592537503937881541553970976630654602931119140028048630845176814482883704460078530026060942123629419417842997788090718107322577947109547453411190654114488835628056882338364846238645193601212128342774602480631378234272182281113533065208279236312934537010668513853692076601381725260130027634716423332939706299848075610345472688651304750804872246368374305430782562235225604166955522562157318667020469719485178516074255048921368420694872404227354492162219661996776134355378593713064738922306763565973063144777569538051886148714131766978694275414784407534741915599288098840018910786498234816940439297356939505167931394902991718371671484968133747845097763669202789851587308926185119889854245087458094496161533244557282296934228450421093939753470788845795656649028059871335854038768387909906016320272076704527498561771168042447012187908711974935703259740410801315387043292884806008780350624235226853431326155329435853500146853014231430828851660750390984471205508228982206946759909925573502774260156369548714016170923051748374084312097615224642820168525295554529434929676909827049398056845484007028004299230530739623924111852308101205539058789946143933285485897215300836682215871984131454466982142715981298863798818111203982628380098557159627410638057702825260910429802359010395174657330854248485819677249246352314629601709414719859583692267931313372045329547722665617615880114047167584425191529927646724495334478095926794458925599714208431439494987192795797802471339637311485605270087382758318107890477532023751123846474631007233175261721403129194007090840104850049402246281317089496840270337695827545983748296441099086223526895397887031284443726755750174862488369321079851820108920073315955751473260779614448220097059524773359910796881542305362589960325396604198779754428695981280015206410365898405334863395766679967975186690560474092926587069883682945177387867194666716294474496741773488122652006446685765126632070323575656041915033522731338624952928055975451680449320166136479874947755247398531018906398158483370034266804070238305872125537408318764301676557736862405282241400041154137512167304330669955854678943881099719998270259386807055267784193137374975055662935472121892718921874387511309872916949015209766556630942921794136448062174771642944691999320614718605823035479840872834522805400882248597225305310925269744219970072825946738736010335252261487631588793292570673760279233314444602545793177413208783769373401164260273815323817483488322878126012610515243612060915284058573105129412303752873578946677227429033742103481468151891975529061598880854398729695674897747557044190266176825097646390970137162188007330105555828986572280377875206018713150815020252310528036842716627849948642566768859439737911975740203483633587480820010890614580090200077299429177211089277865294717180287054656018074258817583595841863064493740826228168623663771012485148052345816355959967575775580677946177079107460805068583846857672279053694774556684226263419211769396884684429577513257535320215629427201551674279246763064545079870559465589432806517940550719920503252830751164993885180836798295577581061661442473636691618457128139684396675087823309173801646043896107766895991114764493904064490088187307731210034107579148712549182168840710118744604200141720319633001474085682459714124154224649125110993518402060682547922850389716402264791185347183265767930130300623304654982836804186112321958466408151533434547425494148452751067981661910922734612797494286854802980039036016082535894281568355852796650806260797160519132042326472224964996274617461880119562882304090083870067132842766029879866480074014712697241438097511960115390285045026824729679946300538298992817791024175403730037109459935064554014390150478474257086354863614983722482138645169410057149305743739539796329514166908886501786439880444021720654706280014429183703056421944346962709741008661959048789335983664419402614861185009576746216183058890196033311443641477961057606677920342257234968719306793836541195232687744985364562988650451244250436058338916845041672108505913695101177133117129281810522949660356185050663964806419570792143731727909425117703079088562775251890745164233577179547487598928651090620831784192266221500518599867270491638680373350656961962456507379359779876065091964515218208144726504447954698220763895035381153804158099567467252055763391993796061523147832137909163345054540069002893620219389288526177371934412758822182999832312539093535805054390482638868407160885489533591114827883460284261216379669738371300271063091073709105763469647855090762575529169082888985312002058944034092925662077581518554459626544730213175347644384408136288616290582959823967231729000467736234994764795626259524979086680348234986517370921969261856157860621513540761244759847432317911960536597446944193511594144333093125976535047261891687106601686242167852773042829050899289612521709165695905312039316257026006729290274420267452723795100157665449683530624721434369688354735311801364376381779218012060255695295076726982223786086936137925934765326818508795010191079202338173381275313512009418411628269246182270443832813255598187384334799029622189559568140642023485525736747344915705677235109582562592998664684479861099616617242583464761155786233751216300928854361786640998481910002869044809843850744583621811412631732812819984416983043478190319631280481336933636179874180641221614268466512521596862158263751132805835456591268913852460369360525871891769445492721080025356374104127160393844740586559533552655209100382910315519059723237441672138593644973213694053088938021579708920017642245445868405151681076973546615997368191936440510829545565858945754091926788390782484350588770576457998031219819833331952474709969102593610517029426608712157366445582446409346778101478511864648100479009452186621426319016014655413113730145577293169218229228346990633816987999495262179208129735527521716165646130164132488906742481653557147211270241828035289078131156375415854714566318138321167746084671112796544863922713330976237057491385267114970249996167383938480112100659657061172865709267429717796502529980040996832950759525617529925699767551736715520043375869324370539059447707707777090521477899576529131212265447080491469429005648603599721462582157115987482903953988729894592919028387399075180408207920602688969125134489959221785183051676961222199342838339028665649128045242717696626442082128011006750038738270865929946222062572590765169551982639384051935123436164191536672678180218053956536772106825232452498610887182997298268906261842860996776357403518736382015588137590142739925028122059468777365108905734294712735222610955366489993916943643461998450126952204348193309318277055540076899158239563009200805525463889064022602992264090902091734239354966445581454114482412585100254013375570010850665159575389889619384464157122095981835174277692714572421482816982018786428385157742233337450047200029602639536498918174481902400734906323049938876043695866415910351824276323959337892042691058317594807989634745272722602685327577771341338453344232280455455625512242264797580062558613981883822166893049890714977505066702529078937218301050641744370142701891158473075180383055711621790554200013611669909266542817682885651532343478640991192993938094296544112997263912025784661343744589616336423833906319072969470172042811225137563314652910321543153855379431774074794684114389673603570169796707866110685752805510517427579165072967809224788315051623272905614233400287861223029398603118163083522773301532250998234104913450308067292155273705981535123680974188565434025387473411175055627026701655526318111657930813998726645536620939741338161304152335779452289120393787356327746607342529262824235686307963083740177729317361665337335032250946443919104082935716065687346771001173580890907640731627905278932101857588640519766753452333778905120302204011955305565597014533078119084278016314708009158183803136374275249963368978531571792031405714108901098161199324703437567934595947096276143175869307959277518495257900045031790179333161175577951213477597406914805202246016830574994928712701929275973279248900840527395274058170961202277381989378349085051610561041860546494320020683015237128490784593454191298075560578502679752620981080300605676800537761383422914376348546247834836299786771279092180488409294791180852447619550874632882218294949314161109459616492614326162759791804586704198079513343091925623910638251675570875720115074199436823745125931257236692983527189799126957590145944824799870534432003448230853576832461122880836369968000577000421685371975305165317266755842297666273223920046355695770671020756346331956837210600866111550759430379339615389870961617369341318974220599326632550522586409901909091412338736999342019669528134018183971890951831203899021265401241813547237469662694628805041666377316657038879813489183159298621866319181094476903194203146717793444393976176388318372408426464609516306198393313575899169692517687880004712894396020879897167558430948042987340754463340834069189047870384076325635938998151323628795020605910632614316591592852761555536781520722981196718338319391268877356805830658990068070573594189357767321270424000223183016857107139142666998810781247778588628123031210291295416447122942199515053807302677336768037961255676208630038236541695891564111069017024129691456441998173598661028159599532363547902732240690979410764252639746931125945029763126943817203397715675975940062781638413729539125885134433593274775200283838987741468072026344084549814778810664941090812725787595265344102187542657257880974355129776947458498553630371430247794602635707013908979991644368378019857689432591651151400762046670455523554402003365955036790144446821798596197575840469626680356724469540607936320968675302556581672636607078658807952127859305647096763117536690619022071213078165374196951280083153946036166292677112758518021052219188629951038560853496192775426419139754504011100845475322515691569359424699533840485013461034664850867571174654919466300701241760028696328094592831003434005638152291981277246188377405877396500167221594428733369754161299019800716067686838365040002852996294102315877366893516092196981558269535638242146055804330984390138766398757102832153900169786071296858183209318405004905259561043327737535291751338787085533097038481180093206987894998856563424822501155378092920639691927568158977538221055435455335803945247967584148859996114774588797027227087166085367604300046079009725043237368647140304301578724290306921223140726738637088650681042865391530106215283597237760044925834945631100732667246219761652342759292677230408123961333197564477039476953069358057210832438642851965937739159587520687688745734243871542358369802015418241772764051891116382455643273055646162816458931224382855010163619109735589481089161389684749614511011772340698361714854070214803092730696268998871407423664892738376047194631734748351652616152227745943015654635271405704567349702935026693873638755321680701489519530594626246846901921837256916377041294481980756539106166537357664815535853013704354613583170058853876688350918302958378661762115878878431970337755582391479835969892638147821641281134221753121013938298139987638081740657537170202879608967593094165982624970196628899108476443500911990400948910520388324643042035842788650945613103895088929833739548373517096088237552013428343695292679226202403160969422724199091772187555916686489524516818616230962172119997388313850441503481949488757714967115339088681797794689244038688806163861895516876084326068986819691024446479867034960343135454083874427507381558212963646479378197846304460439302718098201830496459573054374768488971856818090723473371640509329377520357348086196516298772584808719241119619611242907393329886117650904856792259213583033219644434132388982579980184617341527500292103682798693203773316409088201762514522732993828460264379342749102851669371330263263482903925059265237777335145034546712853331195882372053610634336871935910659773972674084661033250026465722161222342667238422053647497972727085899619679389407369196052512341601010714907162430794271573286036699724558261277906984988054473790509117413192872208691550075080968151652487131044480904630449752789744336757832369404167300953868892056587883192644320932389427480346380486049602503829007180781281193207063057470457928172057244845127603706123542116151287920385446205541960410783595703503718936769377958787721205839932136990977161518419878213713869127179653399794428590909574973509595513212256891410838450477147746973382352962646109570181976713120728392750185873655336842805059376032277943333863934931098723965465019873961152464581779349659845393313966570469919157613790962867151340225815437584800224550559750689839387509409300314386067503102830363292896796470897217630670711416728904266026646448514361529638399328345309849239849682184281226243523412436424158188267245018707965046899950107235121782534235711698058057838118634671155939073972169990527470489974123840249471667078142464185750517633517464144165078914435018921538387728488929975446597957878170235106679728061313697028965511700956639032040530203388043167094463206474852486474175465661694711798599254812390436138929359507785839212614057281350812982261424465956356579907943663880513802876121775632907727010003229451108455894323245501384553661832201697941702653516194438771125879846459218681286494194461940061656287625554550055969297743462510325552168561620577177741732897881648952406107293759662590622163091345533642519768958328104333989787478843156967364884426645726986548024906746886517649720501794431863623731870507627343382234907833753978299047922879321522079995638589760282390851828423084806148172332767392933412224791450571435875483494607919320280816006145027038484116541436537532842249630719561917985729994471468281469333114392089772772729178115272726084264401869891100005555304723034835932227610253722506493999877789479725724130635965126755837490240270775435918162002616328038017212357340831704620623568041352039485368304864559432182373943071634052886337037025508767436705413146987262887914144210218106979402130781382460549161251887144223743944734380170487250819825358193936300709883720933899766730302053374234710762563431571790386851085703250341986736502022121092574603667692476427939850225642768508748014343422206303611191000791715046722080103278555056197021138340749527278514670190679858653485816441284594224119245620427611323836971020264862658275835331021402358288604428147831227850078560664020042823617208680356505921406273165253118249950226095159524731333728626267974344310134564527795888897055001530141151113715442078146357170988415936100137216853298227842728058223711416598623282968007486545743068399090781885402134144016661689438860993621376846933436506172024493248578338707829402867695554343645817932169178063545225216301622643454639882834360263002684247780709080489189337138639109354235464116901863281903300575261477817373656613753840766331996591460439291682388151881447074126558211284693731925068078897178382082690139425040294962448366307542353887308445808064955149780251832520958912591267709118376682320696950123663888338764618202983840297071948872246129142752653587448659652344422277397906580146851049055345785916551480828447680166557065898876823527891312964584535702779807270481878933318693441855898826422108093796046516512898723913943744693726210140355130492219451504712241103636402985920361916654621847213730391882741937652967302410703823128559306332674484908160034569466367421044659867247210376926057182129715434831574331928280805606465678373864663000698783401143391982479362522713652782574457064258070867344605087726705132555739107630181604692303091233084909777937150104704661689148711035612024551297549476194565270313529275793806739306096363545575817373583304208799578796115045452664752748997538700624747135955408971963491856457018572253910439630488283830858400902016124881288598683415198126186203167933964014262360186447047361686759296946990662516723444005410162793319521124052544637826342200806553522632329693174477517307050333158959337247448809946997258695718782613372963414537122689923392380319498248484628464495180823572342985463851539361918937220421766790237839750002001970064375097284094739493201197200307788352673606188905498622630137408851644065295432429249282580653786877568195487664722508182327082131346354840016292469362228200221767797029827935834885339794983502444154008823723363358847643702874108165930006731463785136298090439637745237912523213493282460258012540707707142867503858591102195091635402655942227658690136213976262725238941956616971499536800203445297796943577359749577318299502323999265281287267483864227265660296345969993811425085455638208289644511813834342269937598025074674829787097319179279032260664236434728370764634227068323582240755855594954166304806099318710381317789408872323012958383903933930068300488336351230664905153059594533110783171786198728847891555680518160771538058945437763826754868803294872239990435695858864749646943365758645017985821816276645396045339183471541381983614649164554583778571899388091122987661872014968502105369382533107342244802726568900376105719274830250032184881369163019235125727802386560367618136142294735661838527620841280252829377723372065407626502549285303028898590783560139668145667812167365098872646313506014168931986659635878037920057560956355167536859645655594972345225100198836281614712270239428857341686816060734709212149253759878147106763943363262030834237482183571704649040261092470674653957028763014606158133527178478501945213015706199959392092584487661122082559231516660030295656597185448958699017473087498196613857408189502730569216744714477038404224800988016021111843531519391430975162846142612035528390452639041495831352804446818792801720664680308819986419444133909740501168697453032558999724996723091867732755567491111699275122677612911125491675004713881748819458282529474081273263076727737154153453219000865390611723233732324255605599408387526211065769226175152787743894846212769003595514650386913214616967973893830737643965633772296396906504892275751286703779355320690046049749538078455621451483326131064817267040474457131236801465777528458541397236465562887805818534849555322982837854857917447737859833634482315889024200233498078353745218568407929777171893789623767356901396162351957042626193754667157027251661657484840621690925376659466400926744387732382021200652482739539736728978890916737370834871357558376308816863170855886297230426552968492125449087406922698299307119813195147250394414158564809437561110896308790831241551140110710915839090380464432724200101605141257963561419564634166293234324904822629257960702490964346033827804875781920309852059563695560159083385087735787507674994008429977075752759383377032104073265479563332472098708164260215246945358867587894754082944431698290254500509775173244231800686285687575958932053075368791913296560277893890748965655458460322329058009091464304879156026411055569133015922232019964690755355413794665382158880508519681201921667827254584879200135667143343184357076012241595236202353115271291246884323078686241880180016591146883445859990340800381746471558231215256971855751455165426650400898093175197791245067139045955507913673834456725759152543871620049873429263893014906247856326372657860512142670675932698576693871387380590616284160277793676870028702862973745238054584816335514995030734799243018751049365398995182909112098289705988389389286925045442852993373892541714809783038475940661316728313689156176059510799062339649076129386158421297532938512651190856138839369317739538282851752942316977385428949208582515316407487127382809085773612003116703434913361435356184866300135435132719930245580081490911941182450425838322222835019169289000156626041657386253822015619107889579762629433117452296796923258566069359441543970239782236887436543126431510214184642728397269621403914575830170433561196133766029811930364865074406103009315824054039832659354889088020470280152336166001478134114152516507711166326652800573404896513159707683978182976795184245345047311430719703915699440927644246416176847183662289141030868323684052010579404438940288879397976755746336323377006247081975180619258880263351875916236512940469408643868412047947877867177869729404460653402865005113802374051865369205699941885180107878677928176851090351972757816322224548909625045113639699219463765694686157784296683033722780817895115846880500563086564305018031411628726289796475515016824483334695010564707898225564670777738604457306907338010430437853411373232679310844114885535668724255827258883611107025648634589688236398137148467396397154867576020717918088975373423004175454182640393406212613515242938327208948259934494598961673645417186530006889009601427748776675047085377574199951980101396614719084622588797868728494892563135547274432962808214655130616687031125912732739745973541833353067340661925795903353314303586626362488446430390218896583192271378550920021393852519388222504992324990432762911134732652824746492776395043621548948389883522779711720411560489691854112467717451671536968451591208151855862971106365750414215845444475105040137927458982010745982599653346119590733332491826972032464794722422945444871614227990321453481848989506741383004718404998986151892535678813978416105221411541760849497233610297813477036661151748976105196340261600186800993186218930054681546052137817189299968702814203347267153916718096553913080021524917213588940993925995845465254437794778002802548234437311771061348527155166797787304432215319368511890627270573594461052388753774040476680017529463135594854644617248851176965941752329150382898966649772257597567196229517567429698074434619719590726523030061301513808890736265559415357558614262260276295001117147834168389348022974613178192292709362606860194663825985705451848992478088543307235402110094362015337013840782148563348928135221635600531251488404994729858071786689932781621383796619009488192490358037403652731349316000265823301574094049573026146058913473023103723396652317909947319283446810404329064844786232889981126435219265835934731138351291536031213663584092024645126595093593193158332199572759120275011558592051262988340592353387575233693941369499545064551383830694822135015687033288309330763250087502493931963872646441071684223463272439675153580454513095776851453546430477824191149866199785736642259448120607258937506045852097082968748998782708422233912978365842845904928537038361117145712293700261446439415652126890483295436284512722730292615399638067920065386681801691963591665334880550776153774345196732145125833631116093682659063814670738799108284949772548435080036404119712376700071150675884436236472906788459921754324414104900620852766875383899990929314906058529697447147422188660429378801559229691138923678361143928877172133677084816654691695498416821899517378339848128470938238047791218684353581053131396079089313219156812442385859910574024942526216665538747732168380270385740312080979586354749446133525896299628587962804514095259220912927173775105325677157830994263509412293706987429159884517074815588507069633147472609063411899305345846386028989290397407078345445834630220075866767079209993222326428090031682614372272762679239016320331971381178049841444750736844730493399466537146853681719317960507543833512203290372773775731276922318735579145115075326845397870691293417300185287224663747327515638517227362254098638418718144997609566683312986670931077647758894654714844036222854281788539821654479656982151773900392904636580929557193550404211668731213482500542646996978412751705851408716454725250865721998610754804240405752531680112403812484537685871787476435089465655030104687394571554766775544468106504727835401153096823585246310184582382501924073901709278459209490135560489446805404369101386478492890305908967274118721898924406092679396505612436574498180254563686982579610958031933072916543695259672030704013474485875070962844786314813084531928582865021941419078513079666181464606161942506360305651222151023882439929704327699993963733387417395242539216811452564744639821385765428768432849023465579363992139877350349575540254003092557646876736810341773689198875164769441217572477861812144889312781525106056370643698709711222283816479438172800283851635352658778430741129998308046412768146804848292647367632839535464792783294956374223033885728763490741058598994356574938814688738996701345465798038449975169617942521450874534772063597755573438012976576874804782467805073767816960737877063630098988190475047299007257553962922153243247667205616097148520052007210354784846620483760610720849728976353746995591099424232685674317917514217723393953089538822320824351657207910584995074893743635324281995550193275973067640813201674356416389638403440614032068719344125586848720348056951999344523115804470085756389711544969084702219600712140823539007813264467690402049969028512186111679633491449826036382135080464048625462695077554775951347092043394894525614660938937489372205751172116546939066642947183825389053446534840098436302881816753976858955620958415674705883042729252113961457352668514953679071204992972212945113564698456420337749355623414042233941435044716602016856353606972702369053089652524406552104188021727097461934388767962409811185637354390867153396940579715641178960972069421564601621768526763166334503822900451037404382952222401701786383757675200222986178228312915444355086170082185252122970946291506943005655853742792499447778498064141797313367368652299391975180385556258895692793455961488913334391164586751755913362093404635360237823169130524689029738501489557925385194306347011368434436232516877943360045236974997699400628706397208780550212667998594438769138343062404415665677849009209528845986455771505971860695747833505390115630254621846726670242385120549210455964288501272696450009775661394679373078939312285157158213193577346546428194340524186385490719123278062339327282994942695137894573893780179508038976918443002834600641663082247773942101832309909112386122844089409842785925141752818746213093761920413444958685655305892507764799399688803893305293664533205113812230032500777886128887421443651227919500890752006308593615930120506198540627914634348903516235624399375573690467645255824516609244352025483177641586003968235823916157384940651574459961139017048508824423534496300679981060428172951224384907995476119609047973682385335260948904964749903532545614351098326469348398497449390117296482725645492042109393153224332607894051256961450213432629042989406788236557965304769316027817706136278041610959426560979193400568079372027665648535442945104898223289056148642833367924111965913402166011018305538884126687998742436111939588786622125866969197960354556340974847365899977730754388542806569812647119971924401425069694763802398574902896809709051147223018936296856173439979370914860238255646015890821254056678506395561173412678980466414152091644705366281043152600351336994827759098639660578595517802326027375268167692880580563581909689913146933806672257037060277798656663861494767240899090720208281056661745860361486332634737048712068900148414312255455597241347797351546931271688603350845379938469717647928133773783843421433280418310862592927623610359215545803532429296643110692448937967475564275734156817123150645877754269054723531363479129101115296837380416948994978260847753842580895091987851999611789878812991406779316888430029453244512057735098658042258875662845885373541063540004855417231187848888297140450623103656417091690493114329099980238878114601636347460472630320064738907246101531200882000460183586207159115376890458884571530302038435034634900719075730214792993821322663753592743037714991813327741377857064835448448769691848412588508650046344480704034252313130532426180171917416598546335651478939634854148371229101215854499718060055113773947460282774407482100116012174207063253185494487792020425670673456117760852995963622582856285804097312396457903261079471993752067552255740495801805260851987155190458809023991569300582030103142761672250301106467499709479170006479153754811546612948861357006864498470216234271107000902794707232838921169896892942442645753038592574233266394551213064789403844131007530827151370584887003524005127916037340676051210581434413265572610864205451144252729250311020823180401744982244046632874121141703590730198727190906824356243086973808209117721004255147850718220210947483792045840345929157042797210462296687208297850956534691785221937090916047155521310389411516136958659814877158656074048479348449836367287033142949135516585657777869875992478109396662821718914077509407176007562491396677244038376974147309609473413518817654228881921808020664655378103690335203663776696260655974261268348057222820597697845767956877541566501257994459917806323234282389860897501369609399626705137331286315425260599699142223860761875117521409580655204846551196306099810185268497183734121991686598202115517291838012475079824678757996390193107587712901031415013994681145189504962974021485844711015542115460927844439016166008664709884504240837976908813965982985439936483145525810833813679684345544976362438093327599298879093906565876815928447064039749210006063420231827958487735760502253258467430496620464231883545678621706900577285514297472415241095160974324219023629479029545459561746660079535567117588676961731533244256543658501940831735780430592553706053929835858847933922229777208231599469957214000439577773985856799417236404227167812621756232007692338038356849833470632658748309625353520467297017584393280662050792970512402185834722609575923065959743848573739789211056789970374240611772962452293647165507040731282793767402151296950347094680896713527632905455596096100080046877586751352849344792264994995287700324521579735824032489221816643358751225431414936700049219414792535190060999920992270617750049826080560806092576557048025630240066188471082685758380244492978585495217807237610685086738286225648014027460317540983927144480978072999477622858202546896360222563054693978027930802012938541635918200789733397164151389377001103239721612558997664456122554404131416116570542139725467404327623666687344245821140945283038376216089650465786785465876695859214093181653813512057968517815508821975786795721990861030294714497566454743016705914436380379584233719450412590708006135164616569091089165899836347781193308055342742942000758959600790136184415087621956464575347987329752483609491717913524132374769076687699360268994290164267350020835235627498652788544218896704487954258203474089631510404745223270443402595181668007782323302949492654699539399649813788630485425536428625900743066127510842393033649718487375160199616474288529905181847668833183167852790852434139452760959905903726918974030000304108096676418128734794798226868105863730001681888375003681426735263881838743464762357911669256958688637786196887941080003878503615857125969078176945479523406153963232703332125785063197730893915083112484241085156009857730882679121190023934117780765343162664937745850282269293810879278363411042211497633162308947097875287349611059867167247191531408958545552146033352185737968467627737106180130621097641918421114005873263217366176451905788728600227210917474841867720353020565649619569723872849861410790701594712821957679445897593698149091179962744593564936748953128999842113646260619890464877955916184572853861176161023448060583892100795835744457178847061168602427147488783655370288802531689022526274285375341227512406427076971112654204520594167010522688555139611895542631910589098977112445033889992299491905414247880651859303389251774091715363262976778081212577832632548206508329749559044723950738809916201927062677992017021225957745333168517665205916721579896644010867604541661787559889049474057869381258175323550905663732564263498816260992083269960535858276067102331057154432960725329041952048053560617877837710734060839852524892453043265024619522319460719940658280070438112772407056757312331811199283600038743826883287502394660105730702943433277430736523024760389520650218805513845869054351569461353063453709999115686171125549707067107803058789129228855829536731365483829788428661839954601805636195042158277948819508475326927919789965275116044421277481939522660097220543355153222060935678312252379353100110535184890013006878169876169836622082558909143626133728224717424925863893997487758443711725683524833859916447430936830530527158530211127235284580833966704983142904497352949190271284388298513457610680092237675740858522784847881979302243577415757850432057687923884794650622897632572995942937067932874404205707408647316993248903997251583463594436248017068003378086861471804075653611487182583048398373142226807474180555890631468610048850872035808727218212660106860923913393290983556417803135981065305880108263587175809542399034642169757231911033149345091154963644596830313092132163313439165852905852140191136846518194040629556931392052898709764316608033695277767229111478494217170969305200818973315532628601125135194505461857180800642388672287239471833267254741194347381762947972269163141128849018856407579067409488776851641463476221733977843618087579777280920541693883312288178028225324204625542934950026102723572429735544434215504381759117949752722991831687056240208301955839509354565673087369878391523494083848434523673908324793032753844901676965032252742113327853115138854309030904625780655073627946996839936083945705252374802653851743733946003974692074502976336002927248731892254775313303619098383605019982540370483347108570367634661836435003044390126156568446409615596537019608667484084644875111396210993534740218274671854667643896209456717923339725782646952858561320376806637020536071567403300512661148287180117101069525894463390159226563471380885466855159679577516742557822050822403957783844804449826567745683228838089607462077399760062854559032249975783571262823879789110609977183492857057729821698283438645469445253540876683586602529782037522816812600412935663592412814619531263993731331943290048703046621501572714634569663913012397208679522681962717130150779783678467326494890755103434493068518029537406692319644785834862066532218153479612941352287296810927182336979501350900239821917802632854546000244077740702332643657188865813711559230096897864302093463642620407629993149525313271501330124213918439150787932364552245505784633809771838375154338151598894266361665922211229060844076843065035563968323782838004834964960135793604501587933030649935012044040791915642264529901484604369275051758528723962471948508788384823600004666877529071232124602376126936996776515882168519645330341639885517827075116892350808538809571033407419641040042424205532660866395247032150373865973260047973506468330855069593601694003582691824173623637307391861647001070583254561152182977314197374065279552452583241095877986161906277992338951577488267179779781307812743226156831377514228935052483893189420694511726261436080325569779999738920129112814463543405399705395014863290254048068616468035478958910725684899308233560817826107087854512076577073880982641550451214800404165135538842577970678011869747328434175296257313699426438628294393702988791386584535376365482072723226875464130922874666831101142518696693384704049694642159926258972866431784827076704739694631853239296356689598666451567072372551058701903005246905646745955009863041304026498400167877536785097614074542835715890448603792215545568419695791215984629141220506349315851750815787125403191183396964630568962966916431129808476263144720856390003532837635116201251853431521693726191039205832462140770585432929718979488103279538678778906489249387887908655516465337854882358583932606479381556312323578571392123876579371587910759216598860839189257064468790364074546904614294648897867574663992997537186124614445909574249203422328185300754907828045153352954027396694699928803325951596659553189480565144862139474087805008625972921030449027441950162479570053721689300362615187892464530712171560976913854609518935940104280392183726775112159275638302517414885711147874509852734776864964659933924361102195398674819863621765040485486211139713790322542212905688625202472638532020772957352104728144496629705005705589214827906732795218993702613018218471248564402894362503430824846707230253344590763281308713635077240842146369485633392257345688457021518904588449098363698693262184957425722580171555006967228874829475808092124946148467961572586541123893872128750981280776905978239699767226031548852038903318133664725579120416849632103084663434444038661898772663451896514815991022987227211556685653543832966716213605876506124187938655182260206055472735332178459483651589137618232838819238729338789878617645055093213758642162659158139073488354575608037184457150871323889334290968644397083207293056333531220812950042135757266927184413558679023971667731554650283273931045988302555219553548774196047660348802228248838356430795467849583388522156690998327194887272139005180363187428205516088381662075147450866998694351005798297107561909708557243093743457006296780017046121575825306709420286608395245222586253636854972805949013983648487522162914448645065980484542879602577781222793085381493343126228982008537271066716467479473404459800589148573137913824550198370634364922107476911537466602575384851345548001739223181625058900137558946565062715493882413060356160813167732368663063971785424882389241547631448130704992121115830555505277412532883020453505641640651948159281949893133871247990852033483313803099663729699264237862110507910915518933913063236658147932017927914434509648484823524836166877210133055951562508242851734380015032008589348407492395388795931110842737251692886753199729604199846760038126799444652177989010593753353681429707543023606943856419942354831462344099820163270455526287782816886191515181611872727558626344355325180945291404537759135017699895649695431751160414273241349925629250788709799326892095107395258180297629207079213814555924663222277455293283953415528667245947062801040109542554707224926675264995913468238548735094739109784431335630898133459093805646700562708188573548098968973753615567393580672816770594979386311802394600697982003407114157127841869603686604067179957803038090824274765080389718160307530575437213487525964629640811878421357539773816467253182805015540685998638314291231908733103915620643573518891292495612018599526839641392491074779010691879828110976646786518270551857796012592390070372886954759909841500614330584178147864795066923930869305067083698278831414727868154734030586025234241644496054954231702168766910361477138498574755846909737323349907681619811841544827634368135507300036155574985173047341588450886003651836210353155041525142794437204045673293664113718132140016499996677268811146424901947498523112901798190714142507745082810113244090926712507323431376772192545918333521723518012416642978285816339739181434418448699216648503381377785085174274116238102277587357955007555936217076823857730483199890438321461731969202597055064581870640485961666252653321782703808541464922057710188230040152167161864789236187528209227639921874080459125033138947719370927168160349803771643052301174778758903181774626841546857914665947753049257770791706924457928402554568058860274558902967051097521432045402098759144264334084143738163099127261634580999584926187025345192883786302143865350306957024632529855032277700018745205403968642743960050249501754650432642483332643585917408982796791095011798813129724117137364332793634213317523418069680255868445600173338090104691819615460262602598569737228300993133970750743624186972729852176562999996288195338106889716048589461158645611849409677984663579300759232652444291021089254683459371613168304595862095695074585096621207875113150746641970623064183502991596584740096286479302998292044268903173620373263004445855670400523505953781355110298747871117016705495037624792387556873824413504366468398420755935388378312281001941547041389091719294558624685372203190070341776477129076857830296214175843923386427705491309120023528348140687678959639688115505804232932808052507228213310035432916018496613429533372150128726923862800312792139233789158498403511044905269587220380285447106030811799483284395231418969967847518609651721981371578707506872926895506942780960830605575465840361882068825618509305351664427918336410617465106643272361216814913611989333628614864551069212750736430465878804456608989621688052861191868480083639702730276265515572336572858580654378283117934911704901812465316422197088330164078919599972259623933134225705998350065174544439186955374531001995068089203539830620142068972851388319723751317257056007631561078298060967406089865317281303423459615017828543767338386708894175360312179325811783179657368924509066044834732004071623548481445683985177305601774303188454528701651415060255697972610650675196344418067629779196384437507564067857535893239099439129770812486298531969350910450142033428383349948577706850545096676693163907427713800976556705567054111281286373605447753219052608814997707149818231115878476844396415282506918935877974666155323972380844814218344208143438851856494900380719431231320559066022640694352183479378119287416062787536825034317144434374668814470566371361163151971385582248876437806871122596048912492007001880343911190149095116087745778081162948899427888607491645052377643192490990592600350206484538984374833644580186702232476793528885927257693241824009595795262961377001259666382905201210673407508020783008518104660332467932855131312259397127292505692403252773785691545721662450399627531026370349399348141504302983624422054087111329825741581772196219398214747703214148073472118923661053952171147562521251431630050917668913107080338413029977897328649162827403349232034883446231954021745659195504120763753205451822181589091923728081031473575414011871621524818666438638039798051536931255640066253071697006215684562846003063263081244092667185305594796895904155088773986363527650907054409934221207908917177456913898089533962544510326590116540761351461926687301667409484615265689824526427709946208555123295779207691828187999227510954157344230223794559931454229971598427146706051968906067567131212981240499697099456243931768071995076595565184503504488067913512969233594015971885152040504293033921239828436255892084662111263656524864028038225225129809035376302018052660878234718252331571151167432719535020412982716640521518240154404518980577746301449926596563690452678237556498938539870512972909942528330066582577295274796795604122534783341375655113064625306424232115788746258726908252012888851913094496592175552426594835674367655622666333542188758353902892501583754113113936155827090804357825250087787819627531151832492051325219302539742432704647746567503280872610397140197854977018011916832015561176352911499741381282712732745205181685015108559433754624584919994761308243739955120037810617746531239178888921164676481731041287850596243035886080296802384066155225327520076767196032393513931933930417572934998939060828110145954431863421175825956907443850118582965522093834582422077195355674460864679500123947549652680000646401526660304765274362155020081497175477302111618988383345821462086676975659461316424930191109639330652338427851823286331764240492997274440524040191714753322957449183117419245945840090190491973883536822408511554680345983925358501044163813604288696825428885951286655163622842279763947447397737679796969794370852200966781529484083249112636081141771709325490263088362537825377382166246903150978737261044938850757994699959715927739911561360176613526959071471379080022318904718137310948265641945538992408507138062083169359073648402932128481146488585742660110028485931175582305360643496341835656074090780095283986046646635905857072095102794157423936651449045592894531750295220803575235353296468739975751967651381711713108155322047248099850110219686604360389691477297319290819601551140133714301565476354809962981608829731782239328348847382780605578014731795357170026565272286871068225318856032400635879252414556244972339359401188845019470537985667587845083119221777573133090065517059496763712770188650775194220465577977114907154953974770621905850655185860233277301740404716505790957698522252626519384274195674237807315828555271101936304889712281614027754414978002164569355866827921548460196053388562397867665540644115104846157582072474503052718822475513074292543071863398544191054540366095547707070180485219092807621309109474523028556845988601321189126056846311564441110191809500307931685336138792389752563774447775815250806870443871841727762497761284071020069284766649744206459454553337995720725237122059087355466404065939956469905529286043020737394058775849576068886703960420732387110926732480898460221552624253846684194319365049321310149873258087838166137217583270787081386637808693989658397996281844732370839840241690249970853556103109756976543637953064039358938803045655099708103569093434741562119011235672852985846734920887001420601480187411769201098715479865465904353103712864935646451881361911188226544275689770330030658342976076157629576698967539868826382932178661653047093968033497935600966891690248503934769682648439630141279219869971563439346294952931694898812409413441225470172811533977074860934665710775934527629557488750401365360939148696783539816375710732901417813472952174059657432578618264165978028250613995139079039614405491484305030224684677883005607060303892002380932647831580364193710775687137915786315047842672842066520249163029432711726024843968677762390474582060255121980688684785028241074271472393209598593629928637309802546342166689180161478426008278144289756578084233354589727023684930213144130872197540837039205459660131728322980201242100548056468409608156723590807106792510550085845046349111768416241813077425396857821031279777471014252061561285461368447562355120165247828787156821821900945224118240480583455926994845544853652655213460354008700736690094682333504965446645211141685412969842111273126829682602548261517585993933900651514782364366844204255311668259833774955282671857811549798839648629325423208487795757706273546442265168219437884531144243662094677640308243714601210954745397508711016880624757670404507394858108214467180143431325770940120777676908100119158990192098059317571010000489384677276098839929498353567894138194886385893040825949251238969407437590033277002734879057785531361600601771002241773962705566199559472307755058046218883954975086930736583699465706085101738674567398730698215136572969729572170243628358768579084359387031866241710459928929201711676932974109525498612208231827954470197617534054081012969538099929530396543654631785474458214582882300987498160261863773861371080442548225218431479694679173350965362114756829306160577640891764635008363085305270962892994568117668888927290901108463578935508196882104058613300873084327422936884343637886939421747596745993193271176487673071565892129152841423339534142293068244566961986192503141272947395428729571480768857777524534193032457798983348400123143541599099434765009778658815213200081082224868354124219856295875534598189558032080046396264402276575335577546330625895926163095320964090081246317777355410884638212536298312025981842798266606758465888342772506738029669301335300940772677952171610008309383547958367899683623712326578600047330351906310330386911653640852706400047390539582142688781679421800742079875133051421817460038428070726093046983377977025235527977112707191754764328411178330229062618890597502072309489938386416439026060478276224436011904894873746457010857040616848804525395379918948219487008584952584479585294041928945135818427348288418287529198105534136596182539558128471083717508838772615233360921288507136658076013770706499588874709705102832962682622725788477513858302062607883468932661625903828178494467416104413291827790900335980185357767902815221977272238316471861441529929783019979510342670127430690755863190517566764521340050290618041634540496017265126646231321334357752839766558110412958246798028133076052904114027009073062954875656771096172409092632797063790186227136449623038093244083511032736015775822030863004040569381266249772124306810920022061615384022823413125599191210279192699954332860329456036443742289605181590484961742756449636419396209561479287894574875510514545605378827337314076883060625191599977649894955241127326540635660929216943521889299406907440101717207061524465698240747768860803735256652146548914525228683706927240733917112678699201959048290313766460691472727139494615770924802670305383611063236953345302967240055697010821446522840732720924134599032156590383187985119319842490263666555565776256988916251101455690991566428942355462915954546873007923342094239040462448512207478884027759168981828317102920089194278346672407152407041710286954664972147302742742721109928100565949904575957923050994920632299525143023534810198049288913608152947158856472144655079578840080590789807310293341585621384314463920809929148326740118842477582482111466852650328603274965776281837252491341378749159383744909207472811308872699941822767409868758840485967089707642640958381654851281939391650320943347841444464780229189265911250784383671868423223946789047472802897904392856058647163841370525140143208073541278350247063115767545943014897550006339631253861458250550575029722833201995972146991873843018598106803606399052903627495344410499856034285314188612342182451643381163121230963950507275492494700416985006584974917532862926979851110203799198692405560230029485531312098235788595791266367528906128852524671212676336334226609962391688684632221329616478351995875589229582187270743031211035039146765599558690974642628270112816961004428459481495408797676161690718415757652369455017165732534606735427231778849232111651838714584975128232083048494970704715910997735818864234645158263785484088608689831264680311950557607802100999025181037546311769419553898374939032362680436515235905999793473428824636965555240275841375940067669408929943100106975127088926183699890956467679380927530832554721218069703583460810422125547556120047628454360246629135911523895622822080678786236461316057940539016914735067223298374067172171239942368797063074207710984993723779364681586791108380226873627271450163283598190840505919081756193999999458773615006523361624234977025184229499790431466063718616655639627436431143863685101371873865741642307854669406227083789476197002621057615538504145363717639066927720614332705694510863538168143802962067459083610657881283120908664763788100121350874921357041898500480220129620082601084896927091078336475264435088581677868206558858128640660565440947728374732571247282755771643852175003344151344781060343506752614524355411411171829893468263516741994936895377262576420376292977122980769114566146869588102991572736192487084866742224211517250916735409702689835158641917975106991755288374568772263820587723179855642210110925060476151461632584459138418041087866803177613972010654168722214874598899434047440713452401621228587233039365749488765510233333942470800923023583603712087846631416904256697102917711465501118358088298041242314952515018162007458701097195496752263898124361204161125647693520659348093485251597962850540745410867760165378707071569879582125263675769589106652563923444740368635494335749532624036125164259862704311658735314632003194766617207832813275408112033824824014436690589596447224490003642796512858658321917299548612550082173110546635928613355339451519297989935388218594780112670972342149529306462415201351676444719502431124808453199838271585719520114153726173210839490529962157785441351997471731195528787727276341684848380096632893729697519014336269521659078828222676514972004708613527327089476261472784279377723078946798722009085031384212179494118154247501662515441828481209439560496129177669066710890227205283994365086921048637318146289936604482648729486708843097932441393701515171297298522488672079687579640247403499673521619482031323329610599548646810837766253904997462349933839666096388392813698838471875425194022565403416731116186316827154772421301172730397289487355436297603125883645270906184164278404436779376880101357055698762463292391316925501310045165108411659787726001969134907237001427769829449590108903393029866528557853307288583575091583701567718109823300055865582842836584236535056427079251445806653338777228606004558808288943351671495286351121244038033734912410967973169213299014510566912859124888940937594066137230631206519170791311137069509498624857007023998086834523769101940915927589718281581205990253636803292956398528778682929733753545876946812307644796947303169109285577847597095827103235512841054589119781515698427042529307784335873468570817120575183802047880069330958708655171586099949473004014245250324860569186410448621052552303671267235520726235160172440158372067993064230337138345480554128828570911933947489717164192618764261098147498916578432258346045327824427274040821037931665477752899141234411493688890917024850088634949075382728266736859002463585052800499186948120377179500743472330686553464971588119061769506190346097115001207142764944653986747180771246674981007238425481884997978891314343703586030938919834168795333638378911541709139457330873725169229931762863804160743903054268599309128582054744069371342237247520268912510927574145822376655611069595050939293459752050279034471497264068223608372241950518270375440413837689664230161337068887931557425567953967939276462945369584525804805428662771493576728020710801728100320727830121499759031428204781703823168162879547784323251160236192854212683974616011178094016723286518740439030186943777871897517657607930614910964864596437110120579754766142924845345534400861485698336496103530380366909077526396642484283601762184598012379463869231177791089408822953898514094040310486878132959274161256698062928437199499109353664901048805612370468069830578728471767416543410843892649080153700388497057053154901799420285979430350324963288451064082851533709065238172805649371496142308226288495201977835381499904253837017868390163217288977800666764009008697884429501919739342727291917931975510986783102667084050053434931551599270890049797668812953503671466524107747555520430202369971036493093534646876582902988152704129993056147590262926887145126727012589412254267988699268002727460157065026772856691496000288836481118021613052191303824962532680123417927996519344081427406588266495608599511606389399420690812435059518664641356495227128911236577050049587089162907357248387384146511617569413706416152375363734394127439645906465849393697150727280060880614325289313661039548615630933509077277579403162753229222512461991733704008195517453517907083566794437731015012410882472097162370462745486075832855908794846573087938884149122310091857324527330352580775064408977450436108761538292552124396997078986841297197304504803164760212396023094466642771281372018369023396870140275780825959536707724894985211174622304797608546917014707122832443986303479565343642292359013789561576330569173023043516323358540332767720192265309093725425720708074088851851846881437525887553154639382751625712609015800116520921434904527147992236998777481554375269491052169917694690805587778304776204860246666926689489747158115049634325358904559580769202295557004637932292273625122236315503463608143301038991068511703507110929472573723653109079857110633468705719557800216631022867790928372916849879047925615980642455294154806549327254347262394939792009614958766326856247282571345242239423378633967644688284218608516545789775549530623951357631304777609448377247035514387835167393119708848358441156109987968022640221005127919014089584785118378669361225389108607845489204316556699381949432853917718298244587524742212624608445865875030161637526411765698563552944215764501744528563404557883696633547493409308770484023353613130611557904779192052750642966233779947792393933385446687020524824686961564423386115200107785047816694837144910022133840987746266620741503833577336177874572415040967764102213120008450139442875385688226854564918785104754063284865711265237271938359184420606746142708033999439639731292163312503104590652679718153913052345739341677262821855794650885234635604358220355262450535771959687246364247258152233201028751046166650421733083710064203374324642218712555680725434719548183829487770712742579064686991654920154716265172278872908046857396104075862063082662774553703985323562253528360619119545497961430974871715357410429425604149946776312334722852191446664635702704016054041080110434303644553339709383272688163570475355805313113606788466822690602532941034387866625979504710940156307856997717896055544504940189835751750264988574334491344000608336835421387238420770802746180997455212618914017515821948710744208082759416166865397231728895213568757019406370920353658651935038713544319066494671754468465777033289301844079411868178682642833488030509445012051202134476296090619091009390700550871907987892124016396645991879943333795066190715884181421418184268072376306118926402537667133166481608334745394697916017695958056514077066091889052251258049762235422318269822782977664687789183296834454292007156874073342730066212433496574136154576240640874186519983416531086103596534598862792444809880514354900068684252697381030676584223581591551594582941389199090318017978145377677508295746315284143290808524608007296935695734118657597855668046491059586810929950376907397642654973696955696098781626566678993364451999677997158529289263379620732115862336215260881722524323006789810533103702067323875628080902579018570883131072168661976226233670345059162653984200168121970252289426634515393902301269773093112633187012744616739034018198767826133372724786497855129683787766957524182520351072211805964069329500803442683140252791964329375324450110147016738258527095332191327011319657423764667514479651570632168347233518309675204736927016159606164310727174130910868434781315097671576003517231285413973297955011471920244948674575777462930792923868128773597894983555070167303198698326140964614632749398587307389493431455506799409659868002798729867200115238075664664449618911406951754211715870923511426061605269908817511644342895068526793793945696484961080235561713086876421172413130255397103415311205740767535253504472448090081931073531247482568828184347610577252577974213722897705691743413837276914678199056922004455562533369765093493349483824403925458701685701027126351171619456615216368751583114599000129530757858187598686887841456514882275139054574070045085696762306304143095824522991386240590705988507632686091489484722192701319199702586977485796063417494715126560090146727175950779170013644169142309192881868054431310919516182640957626596755285496057457073335884638960693308399329574515022082552284813206817257461382402657840261578557725293486285242543972539363780110032490244020764849642367317737170536796539179312280231274613949385769019209234948532176973863055774841749059062780524017439622377954211859043427294222908438776529993084211902563108894463601059494963316904385387908355347707775314938138968667428790160314170831472673000357078413884459832136613548516892709119345234371158858087492243653767017499552510202787601622688857152665477655013685400510212250802552689898463534940548869948908563027360054600842863308030626080082866821450456425517472909862080921791227132869087012435476599317681525497363333152999156679623046311251060888961074131017143342694286283151377484641071862547020743819311608215445527789042750666650404478046468088056712732743280181205743480722738684913141364255595580234100273488512393539198484423522017543337394986654245663525050963721862615329440431766326051604683480256561885933557369989119118915496721351375275964227669268922792672107662334061476565162228022286107153020741426594172346949996967495499800408645541077116001855984803403996051452636599481920484892824779493714315951243938002298461987879659801685869574607555878141290097752074808671210552336527304771916112317302206346325201392078131384797944913758556685532734739887108361557093351016969681081843180361813146366231869205857720285627722025838686330330498602693188594066957583996756939888298307517057265577501524028222612287856698277609129819895795383032237895561370446100262371224023953207803398391497623005527320988361684928571604494935893181745058311014027227973247647713954203001410772312679486181471427359359934522933296092722599242131010121713377811786883525602904410695167499884834147329392390918991490766660318311454130650241502594603775135042652912177428166307447358972840832629456600332381230237497274178610782136795789709593855449624013062355885609120665470816380085213411218409026590555928880383973450403088195860367168946291775934770621355025505788074909603622573518669190933969009523760125232058498997151689584261266081482743273164244415432967580233064903706803808282593746536812934973366595824484266915967849346850115480917436206488370281510828772146960510201778827549388353367059732970039082131834421377765205550063875391319887930309899480245595354295026568033371459435617596964810373967783361275132931688212529680935452801716463540370047281359769706685782314248741021093892028366908316953174646023854443509310624374163019803532607415157594880237774760039357260762504452454371689337930436506242656073670946864138408806507266588442140438630690279087799656773647372389348781453665429140446906342258542257107226377566650946899930252288499698534952697919064483481598715108213777429259909064872868489578640720332193042417498026358988973762951531144372401518322471917258343851094505412859434537747134410786512747145037876227999802895461714688167662939677447313002253772352685563312017028369659202040266206296538550912429360067689617921350425337258387635626146288918574717263816261070848429858134119776568494623595353641634019010042971930273468722506790475459786026263178108371726928797865105137323703808937238971336126729605315526025520805751682404514008190512729376786346538356612082615103907464413791584041004837091997094679865775887045676933222396630548901786124487808645389862648839809248274733258966888407024082051216022851304499919157289602964553042093926529520220685226490183920394017827552444560842987996249987202218301888473662784344895183655089405356911791766996442808114561787477855943199044925820313212145914294975168663290873005894860684497703938221750379217397089276662496287196004105230241500048615910741562677005945398157082595550181713983789697741725565231900664047843056449371571231514304524625941667936580320504011655502584828600889184916142337832158988128171656257919523351934362341249851557558854165041134528497764375929034591906819761042114077638011290698486525819441229973679870286300581722312753977672944909769276711593092277718277232809981736039818573075794493665270995855753658402461154359752090404653456068752659258323080517992571784907343246986265766556875106583069353339356431736590883603990275700912470582850126001433914212598712938122393128454364423756117860469332210480278042916849718675297501747025220815555857128812933984168988175818529420909702657313171535826716128523142309536734351220468127748959130643284508060463204552925477937092224748688044885158465624936113765900222923690298305226812493790944752157840054915199699576970135174931749978714590878762981697449058884493831838217496250405965720761214966671140634615189643264835525329153900737348703210685445775274143908168873621528558722048891491714141389206964601334873422850873136308673576609839219837750204053183189830711388179311070382032536893565754608265771194896383909383473939522134675088639518453612493303143168375830171905190121718709115564506711769548643489960194003613169032641682007017614188097934293897501020847873859929372477946295905101021427707829881719362467041920778225810792864398767551760371662485727531019573684343594076459505255111915783955150348405103686563765908713372999863247722673880534411434888677120682668968484519460125865784376481240688383182727804901226638334794314793282392794066630727141452541591966596076135636087654361118867949480144594004950934210405672250616481595316678851350200872667726950039734778444664177729296912249725537985842923369278523566099984762644560098886588743356798797691856871145273012668387577582694632622256417630723404796220450237506909238688112167524866463666363443693989278479248217262036132047257083865393899393320319879974861832709345296136000122482366172468571056696591304807995927095746167925961111099799251974907338934070907327540368634496617207719819470372918626422094944819614046952350080460085142862956775424037425314465541850092834850722804544217185719288532284684225203042132982614831580323922152820538945721558195600296243931239189053234575767879082699144056430136685397703262394337439139063327499245511802615321068157566668682968123970523826363446315169505288645859865286999632734075650475784621187358843867180825859314605843065700330261863173964888093306497846510947156107541241443198109430392759168166818963040539543982965504834292885668568752262561072237412075163902394213348932179738112558314008071883368134741091614250917900354397425952716952689649975145662519861885373549448502525921847273423450974853691181047340333260279721116935481235294909826974708181338836486111643500980249466878833514131957243929772150437836713292594816360058194827508078553962249835220883056383229203107868990683266812949658041368816522071201290718086191878095485334386846217554816963723814384586157625002839131641879833381783744138339748188328368513155405123110175338984677747781092649328186204052302952554459774446489292162683796462491059721078084015859775802752691564666246834172744982289882380775007151299068475398642160255843470720459546678227092847859030340533460990117366885421839299175479822138387554294491082522140073982835923206162755576137156661908454404017376738057121072689506329421306286535829391729989700699862641755855758121309162762373059685318882550963351914040877732932264153822245100350393463906748329553092608085885153271845176786326911243175953392960844372738275171869697731644934269339713966445079664967216717652247543414290005869896327146020575265253528091974477017756930292771199339995706252884900009275928272453990724713660833126041612971216105942286586754374588109027631220933469523090429395872198863431933464569012400736554886187509476287201105690817406719645058457685564286253704554354200193624531511670369505879903959301816826369783171646217963946965628591283238713275810312597850426046055006906573425033871766886056872647307816132142891854768591606992445962289224948985489306990248108940959825433059353274367674250892822673311494951591242643551727552116415623915265517582009461870960815175709345922371916390422348986609289057270440632996024696124003609732520962857723664185274318670699314923073884680996163828815526690205142006385662125076504138734906987331550018928144652137828269543010204267765257128068419178520464793248409317614209026063014379881221023877964059137092596420702773678375980666086325233614585316086012858800996963937528081659870042566740561601480385458444826881539417047656567479610103496849918611924820153434904965284291150037786249578226380377463459443301002065444305448856456942995844848806533382990070197467694835271088665834848940430754040705527330818610659573289958499284139266475203429855851239605556832063322983054715725580420850607127812808024835967498969987675038640757817486867804260261035867707526647597803945391839545706691815416260846974374221923145250869964795319588732621313776807181736638185486548244394252881362500560656563121137522349613571345973480201435148539629798787148186491805364564653179271729648583269923250353230882870247041125202770194440006931090262725995190136238016852293620296422076963823417807542649055676266029997994253260030746813245319915165435502235936192965109587762281003545975499483897403429312178968952646839395902643764706934667471108254941639722475974403010423361742652864223755543737501014300943726571941308489822185504962226245727620204989366773549218079424949541327224704150449004580396873294929107249601423879662152644149838865100795020790182405416995235029845635502710103225353705724673375330805350545642103626973458862083775098422968491001699398502999081730616208776588051251909566138007282266760454388500154164428706963133003981806602430164334183759879685362964391839236574841729243904844271474576206866326531130299185450680571839315146325428493603924349521009906917752283345332808489958608928024457173514836106899343241154183994070189362248264636168836491970173018328565486782792537750780330057840565918839268312979973446655235117769084386547660372078529862388149278139915201058894105819931362862081512334854550924925549918466082677885851993580740688433317658526140401311808903530697011312026074258157731328331181288390726606723116786943727807767056394228569113471454990529846333748195507397641595768835556439365034135058519007822660587324959929019349764576998908515604709960835679269445191845326412468448625239596384851119511155895584235101513627842752350992719050639740787418539808792545899225482682300782192283415834191878266611048626074710218315539073954977753093061396828691639059368646937303325691464467750086489263994306406213815679590088927793485771144658962542054339637733076697426248024150074724106201664597963933286693503631947080502211492643798191345031648997950569576508220971705190343731717262635675164012244655351777583744233522369253149516747191816758668514477111633329135813859356940376135095897980858379201582589200543091729677374167201794321184105241002445337822752740014674881242606629807846775812527020446850880128446771283005720049429019452182240595798149076009083058284339855934530215729783485779835986457563524903953600685239925335303908446202554120547622364480849790539939210304449615350438162879261420344387977531676665697572157577481994045028155778616346703533218379144911538254993160531132006435637747727325516487809994075154708049724017566140320655932902149352672707902786711351541694000132200281250570511505356296861351665538039543310978370173733707282208538913853855504686594578539889613220089243481973394537303121806827693762742403854513204094951013368144149760063938315808901278063048612462576190756958213251244281881883277504939414053979823272115707064445048415695912383893081865073608284252448733006828305933952758913884411542452155397362390950282156300373621108892540613449690691250914381640489247617990408119678918826602434685213132554122042561979919157741757146799403294895481991996290038539580560621377761202286603900806454040097706194250982626319193483981364068338457015380302370343175627615475468356111756844232678817472432432685326956417011065532727549738182964886858125426495198518579475687232148059488858996685321718001321940245258147499707716288493935742963147241762492973577520307104509827914943890131707264946449285793456336618600586333946102033509474561823226724072703899557522317083370579786263020692518159253210346805967541129953830787015011745666549484548047497594100431265947346455690006306124882613602200203634497747146047434569271085352234762796818347669150577193163645545435079185135837867136720092068642557581257100764826615174295723588771707093992255188371723028506376555362907861416237689977127317128270799198796165004878535493730456568105402598528556479917512122186044618717325093757938408720485060511981490319993339175847586176770356021286142537484541464670832009015408083335512165086418121889824609307763258344623567568984335717640385370879813275536935998530795660123040613705611800224503703930168848444244995665766190188399816041387389424150506843275959318976095184592520936569014730711568034086901233757088479322207268730762750923071627197138575639287033780453518700186382917254964030447612491108738778272901005446466957805273032033161637598802243975066581176935545236269709564711405091168943782842810799697716556208224553317254419590061049027894414503406552554096642664090030101995465610047138339426521993011452137216899737738531068807263463070730854556668988675760267484679518022923827847036744017339930499633033108825034022856978761945290841778557230944367784250195933417181829945669370516051492238043905166173720285839030451480870621859740524396453583440431616719395477162089466268297897465423191391774916849449548307708584318910851091988767607803766206791071203595542244449997833231875894302664362789787823014007522369105581079130895889817216603565293651408546710449491702789333606318521547071116998961218407416743203103274402366146063854991273483769055073610105264436993514256261936226846903720390745394644894736203910027549094513851972839626649958106736558676957745245316926183757280829994447055775866397633502269494083518842674079870362173703470983160786363828914187746378112437806879244931212095344680848259656789052822172143509370669088510642654251955312268630792717091236565741129850999064627724353738072601011650160035978672498815475905170280036960753407119567736320437236256926450467433312063687009766008374375818484875329272150955468350977472821162150559333255265277816501274720252707276646998631825130520251103513508021803238819763006352910156005444895022094439382905870652591514780639826273364769306250423267322373222322875381358911510176496434150051783706957529300029541746049209641433536911064863124005595978276382981657911634321296051718007294974080367743550890330655532002441964799895207786194565257968524318024395378768547879307907291807370053551832343993120523448689759395024259196766788575184266375410155564968186725930119818674617499898826210791655818838600418060199199779133089433161553810803174279042127532920388504555836359743167342554136909704517463807918866922086834104977895761253806881741996558593036186317292196021856676579200751486267600979672783364416785255039724675203240366367702741451970940304214572353373592412983684070604841952515996218560137385312697279881634967297338128359173339770448950479865321712057110470531180310967302332789332156246514794865841470900570434865868795059239281687961692427576156065754127441865191064825559528202939584129095183830317271450795470600524992216422681629821658037237049660021109469234648636455836524719757797294803606532539052724803090815708605152255446350308735878749254699463527077825786850548929644714276309732783087926505937831477326758432543588460315239109380446781195453414758334219079536204569941172855474538031030481409671986654851844586841901769829001936637555850748780122070745998595819948258427185344344541146377575081191690650815861366509376484276363288008465774628935318368524162700793813644514032660865705716986877016940467764239931258335298355086212472088829817179441762854564174806509959410498525013931553088043082704459681954442955148958126113701058998237272171517970076053950283479666816821973794170667240959286286524560825034197413264652797521207259905311700601543121858236439993274317408409686158706572443311503545519227908937440832577780583944229461980481507058784269337067398565727759834318689839774006021438256800338634433363637720359409239511340667129416812959497672248912034839497727976805268295302990526880875600729935596294181869131036415779684891264397166023755844942650542962901495000027907079034642265006877370256942931448889847172090969663404603891953218306710822926360339852418239426703288043821143673979195225527246719958318897374870919927582782544237025327730029110540992415532713819260980749576233284148019471694771920925394166864159661557454089243613764834179917292107551899291248912220416471053737161701437219630817016844807972075044387684654601630251788902621376204638030792978714922545290790900489143694203142885914087827951615837161113521750612866603859022732693030937864486846517710615126536961376589365095177391063044983473681633000930988309756683578759862352647944744283184893475593571463236244617888181037456623917882989627992177447072096043684962841786124831791678080328377551091487427337452621583053241622901416602072943422641086584239403582306906749456843713234566456787858160247531672625165696292273016683689581697876409490697294882626103529336705730326118264168274093474543700321182840288513010068255811659170810252852565272266615613415687555709672890886873354995512679828152465645335708639406397474996145517110908047731750055381365719852661604175666785165861446487533473937220177278642283424796767557191671325287338115864922865535698442273425754245810441762967945044665423999239000782448173286698842425810010874078202051382848731951242732974267443324716946327381804636015542359774990349978693590570646036129933812230818258480327614469846705846275220373446907185538337075666491392721127793743035951346984105829091888785935426379366922456892623645312304855514928630202408218219594315263316126173857169292925916906382360355201350913441143188479969911268312071810277350592526780718349405265091758532542869042134449237265581462048012294468999419629221543552422361693646971883314959657870700340905335921863416332661503625155149656039171695856755810082516246965488447751094873801327885172138559515013444461815747464768718215603881677057759071569208997398559546986895145733986280265478787468028705906979695619545153373347929319560302161405376661522453228425540287347040792841177887398416194963655183269620481098007688724116405144768786004297018394750241584428284726985424188690603388399839529805380081460197830195137222800167860809403457111670819802415831157745035894538475898121820885720741937080631888281901322440001844781349972335975263271388009125597696489093934152036673347455815185978552055376943867217451993241346095728103986343230200127758667354353617719561715878361330576892369862327981512842436255543068788828026982257900036861709747907263503226852903650540424715106320602689294610876219305182513701995343821271732157737427901050210135292955021612852047168864485649765084581520504456579514878908311185029078828266440169547229990709468103108760816100855147697628406308644663787087199247167560839101482789677668274616777446777681174579943990777254904148288054223388043692946562277534029189382065933870758410685511011279095441755318260397873289261313293266181680286353076565886925478829068830195135441745799203716959227487975329136998565111320960596699916744315238078330523241939343434466568710903174302488551152284772969063550447416534386420201048760920405127825348352351908416326614421332276050696723258414953003032998872327061367138473348374647378004972225294165046980197402777693178671725283809799429708099213459676985010475230124973390324080443372420195454222538664341255253207006529819801136203355663898333047848124878381910458959945802292920953165505035150104085793841228134822474656630689654303996699134350149875140193356488306219400744938054722573993702746528270604006574933610383980234015899523130679046769775733801766277249151770476556855863995355643809998667687268626521355454707490401259073101017440987814529591937837955925686156886493490808613894375318597314704862654950800274735338210932522013924646384652101311735842603062351347420411149035661044417752877199546176150489208446530458578835494900794599047265618535182051076655235443136529522100014924495654044555825883456092035791382274037635409030420833522897281011808529318237570732401743957715668260906616661622232682915445156706614322432053039555504433907309805383115395380707788559791938252524158447912454887030740294321854005444229605824309321086693737370420145490513866988814200201864086771902920921543843679896063137777195974762633455924627512355684232132236131968596859881276327049239760580768938559464803448426899853413570480067903960728368579980116690124484755718687055532498664069433889344511567376620556345482531882582730660633998346818201606499389796658852635477771371987989886310588363022011273519237391411191248437334873282671070706471925149454810832818448587576250596576277476315425966565828079658529100714713797496698463989590317223862675157285188083011044892763074144324182013130503865073907491959617106511659425577900790464275012781311007048831456565347632313133990204134345147054416306145594513515891990558774772140537729265569679917299192928512901621430444112588200868189716733295427859045938899766493257653431844449299721445160903513242092119730697612386665057132869842249755703011917630197875688750474150457498864702414347423031263293318659971575769344146578295868427324392803293075244284238309277491920260757705115882359578239777855661643057813988026970634452102581324356930094835156448786886206766497167097014732643266327206116403976571379691306106078549781065432227174152481147736022414623731377248598898541541460089489583884183766457624058099126387100841523561762705902423420573322311534657532978402776636849245011707725180505671384428822797126817648736464432124807283481253549849123758873364412445056939655403021313858446743700062831700283068758025247769082811457016259229311731591188710940962170359026891216067502413241040156871490603739784619776018586314140045485813309691271342387172185991049680350365305818544020506612933598884611370441726802401582006295591360920158445291079328650957038377802289272765498072141855995525045515831835176557705474699101768413534980647466940623062878094935056028611353949011493212346165478135165110985931693879902602392158221531364377351151011459312526356123272248638577639374192526710689649811174575430375121453665174426824902684137586866413817987622524777796229524954442192800633002663129477108643256374452091294627376025177879205406046518141395002107626716393916631409276333037060196176162754968366563766649341658095105227265876820918233009674084502359560229455228016094565967477017968472067709473251827350417021970180262113682092067873733648242088705347706392397727353158132455554808877246556002087174672677985368231987047111172344669160315378307673132353701890698108807899998505284949175018914734018751715268472782549552160322463006079331775242421087135564571435281654204127634871634954846268711790210167410533981752368354454492970082104090195226618310721566385245070438507723731231452313552129266198822563105138729556344902245235714170558805319745827346151550094017088658624110787115562388906695757314046383138855995162193576124909431163370230475419837634862454920689307628089372623267637253228124391917396182012125852308872274295256984619280714569112192450282501971602839864652004436321380682716584393620221723669158236677821338597469354400653429090467842393715169149655305653763227754772758304757270488437541485604654204126693752179050641590949379696764232106529680550925164434375392211506342525771729552065090468851284520859875612357743202798064373967305528495345085071627228784778619343787114532985433626826068497078419235626213893178468315634863934829234194805921078079776602531967977646054899181696215700246601430263858872887371723139675680736193274717222437052089472155126310010148424996444651793085768281885348003275116010894505501375721763795138956251299840810754736260752506283078351958500440664956910119075661447188104046038333025568238998725796924261209911129274032710117100108261898618643762897277250175978463986611899194665777988748795851157585039631548696347205947647480716085349808114764838620478630653885369384678367124989458316463842416037895781824681600615284571076338227872627794762849347569951008430383817577674403906025634624632713781370458668064231445063915709659512025742482215021501426622297461449587507982126047953762817466097889942783555827425992654949437091071052560132732205776609437335118611277107185797831958444686107492214999179329104755324665276407595886428700706044020324982087752644752987137857268327872873523714264277708025866017971863008481201356004939395221900146901825261554244314278738858189944557162362513199429888274808067446256197632982649262516006114630025794457999089187929952315213856141136880308622818037164907223978610844353447156832067640949245236110343938406756480919597699869402930076366262213773540554581362757209300117882620899368898243831244702783198668105828272361062706667158732243447215897599728756028946853057715145139807082342290222123986909396670984695340721661717076731841152079619333728784882660420523281470867423518918506557462970876107807599200078071260986521530056562317253556746391613919865733933290150495071245610953861821758330299228673261662671687319726864966373765736319391728520070658580461901865514720540794134548427982965318895731678147615816035487676025814800970239299436752960527482530898232199651575568112867472102116587367918371157661112912685288999391932389248242316960621444726996182785887992808580843492043926813495322751933221192928406038340660285501803761468877513260921973852519478826669453463177501597240682210649634993556742626538484703479390436843519866651217838211667052077924935302497884991325167183203996819795564930691075657903743193628664370284648018519917610912769781107097091373870282153002735674892231637154761285946957463591202818558935644226450385931324520911741512991162670952578068374530049477118442542735975424670990354665729100673465660030236553298381732089558109305846520601259468711235770086082025650737467529524435170633982876664797773554996924821560288769098143859095663668541317405312725951591832877207204900160997821408748310806626115464535078911290432903449095420271440394426730739961089662449397510259996404163354075413623234997856165513048786869872211297328683681122815069213699450201690599263952861047980596040681887582837469674089187054592435050620205892508623618593218992064899698107465587229768741277387371875329047787212815147110665086454027578942235943579529419693239278885652816511713941200202194014973398856536738378857293387217413973861445540916107710279743380412314957976041370194775212108412482437448660672840529793872005223116351764917730083607103276779342187868909582517458886875104780063699254594540274256655392373815547865593412996386430108512051945143219280829520511911420088290387197867638107843188466849817658376461971995673218062636039338613588606268730975179006549800699947080141568323350327470038021576268754685095242501404683548580461658485510354060668311895068251620510130928159071203852961670327407796606635926153636428660571909316588803381393035357828991927857657643126946559071208396839999716446502673037106039837179976743827323354010071215888255651365095374971151174806077259988977853980909639735673475604862548745585267068515688735661877072019238499196893847444937016336805871348198197254346288509369949402274520897305427409201540319179938124067622177600176522002833825043916758278020441719002159242497836877327397411067180947404276735257115577754648166996458975726798823589774839536660863767638490067448712673898062782148400118438844074346667558651940707856971086377579924214089233347050250909389150144209405473740852438310153348784888641190942862128908244085668849190260233739660722728721934031853429176855225942791188279454588891315282352359674294288400092544118977963353705517994825574667334819551904200680327751147872837355849275134090767455720562647485289937791995833395115976705634872258028696580086847998864599109290973047890927338042533487423371749018602133680595627386694012713452387099975411586731218351971342345449418781107695563626651905746889562883542039500498043346744569490622145869301124980038515176051542487265371193551192031618715755850607630271059801135688164928261928801286895687429727263866487576259690052851639763057562777088361507300640924195426827743170427689751213711254648199860166203097397042699101605930201537637173285233914391904370674017636509363489671717228857846008842457072504236180653646878832077072443216574748813494205127980333247338441136670531736962829118026131557812624486169775880561810556704494027616696742721940452454731919589750350527060012534449441555187291709665049127593672987383789641629106008734773180092625101445430069711543310769968034338525953130335915940596195675135310294022392093244240924946230897676782522187659084755411407422688395175558961664842703550354695634243539711538589242789721655163204217357316126395862255461550386416983175027277810102874113431578445423159369756531479913041662454866685137660674830511323496736364046169680472445633501951976274270391363154036733976520238406753225342790352732326078616067897706299729100657280049673647205418645813086816027278055783445357197623617547652414244684385735334164532336381516559559885973513429953108847754825962739658434730074018992028658889562462166323241629408866739526048816753403618179023357073461440612589005029862274799664689517275338989056557560339861837949028738450044086928964340809365338668385202223841829571971367054673293152073540700868175154345573011766758306701633842009670045742135301929038803810382483094327112501568167200506918452147118566067423826836895112349417473107128063073484519524179770449193522734882068512244750596891227285157378098691235297240316573242823453926444032470308349151355482407453300517748757313853982945720056876355794173500271636436980739725400266581573915689721562023234259298384187018272670305156880683578046205659070963851495419206719730923520890489392077567757701446993576158652714938392026603160998503103371352053686658193055606208472412522481602546604426094171872057577224737238801811103704220272048869553560024834167080377091502547746702105280099647530984814845972640521626154051282958201074821388183604019489745516494428155622161909751495960823772048610898252549119666673376168447089279494681435121680187815077260385760711263506446878133270426619700081733330654277013885354166764699557873229012942537120341611346773365214084939171650394859393394930628891480761186962028605315595414859034406695258427518645773756117275154399636262731278803253163189358099701563702854113058520353278970559980129296823328976359320621077132387822283213160091935481408618299796258923734756270836530204572320096471091216934646024403072349406803144512311573740012217798471468029818484568252934349163277615106547249846234278826468777166493366682410832528715665506918707492998125957661507900759140270976738262401107872613677573510079712355382851339223002870180380070685585355007823556815954626992455871735108259774425178049424022775453709450328626363622979510021146164811209042197749401028875644788062269627931301698834426039648436808884452412676498084455418867260553153051554912198896864594487960393261487743236599945789324097297839079912534113455273474373463175392212202379524039396728761212508016153827477237358350571416434830555342268506928739324591487737770265544944874760538238718181143156705158142532543324703468132887963650682136841437282811070852642615888922251753221378286828769654441002315988978056332899959637811042802676462731450469944052822188457632492969097473220917210305243336405252997140589260592131955745215435854141772133279293302827512936032678093668703280132968445369881420976207570628493336270534242806265481029012143903112371723865505778293063488171520561028405128062582938314005701846321699292407742034939967449736161295661017057179233796834507859916109447760778647793201818366825718828366773798313742430330391305200643921160810030680511295306828494005239340888524815969338534118023752451761347783282347490791071768492372486425522190622725490319848599564425785131287340207280371516222827035444712059475626335263481361570550823679473889153097189999729830901252790775913532348286791744865659433120027416284535222187244688905998062310727200586108444522654967500766476679411550917122839251877312371361218308786286046275337367294746688473167123933515886288229095446713198414307959036276082869990160128372036222604551386556177100680802420478788170276960992547150926010735798541974370651168474718484599234433985353114201768165027964636805917153685236196713016498308853276654080759462730917195213984435178175748681692679563142134724605365139577205623418881889040048037009261026704878127344080921160499760261512670744759296022480392903353527364331873170084492783703209684377272649781852586459860599430217888925147796270365988709210187806207413888936911813741296108620833503079733016232283458607401015759515382378467106364872522789975213924173624446915882195119984706831970779112181940729761172201567096764548330740831838934233952523067956518768924639250552829395445649395775529320321370701287298500626784048148166329143759559366718813172959093705702537805655766064833060220189107082749590914487449218911953492379494585998818331147277706265980388718236206177247866854990521899834171412227013110017976794500143363395839973242596009663837286663702826711316253090373098351729437309870407275709028991495685160546600223907510808818876324565449756437071601556582575946121396773784221647718142766421897679053942490788735242856546828846838097515736958132493078893704714391078193468208080000874961744462319248902451242708718238069711527142921933536897565171094340508492511557431809774966646565190295631434823294112669764331907050220344395711922537766543712601079466843449141947048230921874184978804637815072235974603769703186326887529950400463640407070589871980153521994227217670849798040560472926524183208801499095695178561399218795173242873271356951259702219947361350594293576835533682103660550116648001830765595337722140003558213949286091375882509014433234533377979444486738835047801508179230701117797589465976637101707112667603526414487538254941624384864285244921023659412603467844580543217864614958584682294769605034338611078847826710278412178051070867949903544997855968500563972108944248101156334242829009350592587609027244265219274103961066085138942260103670898401621465699046249154197314169953383836637758281077076564239599133598534385771466670570313274835237120182090532906681567315631953359916885991290584401419522703077896815163771500946213450977384124832793028602852861858773840029142594211991036637540103885358696190554322936572608687592387097646962527674467295568940949995488769593965830889065654157326777384930761247850984426292199972500891672092150248704945294446477827282160973344353293583961145730937220987962661052005355615780701774644559453306989577417953781307918891616444708725879534397019374481799962439389216286417505702765280580713809840629484233657603579346082189061695061301065777730197612209714789317432114652743006775788080350374146744307932475602862080171530496613612723651075508919864093022856796851336073121083619366041861758849129906826854717134214219264655060002141296389101440539658631508960585309039619776976565980953461924334957530156261465374176469221318404221311286371373053822314860207772164780540283257395144645695486201789594110442240360145297943689695531820413618460605636441862657276416482018924965454992441314930266470311169819766518108254049045221237472369561381860682128056387646161679685755815345496242943982212361183646640166238737357634357225426586957300541774100113944356774775295217118426462666744965133740155497188188848320168441420736148527528518633043398896612126562295996094256893522838987869078356392114190982604545028657084304916571799578249030115975809340489240878995141223627697458829642897737603190477359579239858922791720217322681516890660782098371038755462611186180284111409830053340634231761238562309086209454306176978824352766511866914048155141816072431479304491620062103395808993695824442576255038700266819678827283348288441885863786402803509016842023127827495574682946826627626847244991542917757760576400611424237750275076714959453352687750298629453121307719976905811353246503889795864615287596665186730542007996349735544261358498619107943244715730488580344247061732073953275321446230060615328344770763308049809489891276328201300935365772503766061391378312841208232672842866784861672405626867477523609209005659579178463777970236997004508525961056532624825665045016998691124141505430410432656992309165140948162439269984533080987686451325509082094898672590688523378330417900496267126197735451279111160903965809323708004586796287904948253572146522478458842843643066671811534189360610813042381179363938953492159606848531088524557422521050579794113277946354685701315001559533022967116594653781487887782957860965226348409443069256780928441660844888863840943090626977217155461024288263452270072326507992828740213107457034775466131990782866819761519961486892625035050822958873757646194683524608686812422520954923094623479560964268129725944895178065054869957185705709466658623595805969633881430385574397910945097812985246743387177115035770598195100952240681745936297398358187687809573479890049800300663374285741127376597827723323931794514317499864551595018584190771420619211081149014626018299452327703057636948769106606295519213152463166154280632960979135311082227503667558447706060421284951131267560562813062293058154979488900138859567839658993419615063019610047762943417582192838703998066354169030034580207680257320319757219905999129622287386033722586640727892162056513759969564724851210742556490340557616848419621090295687859018958474634396576848665293126656641380803313203758090365477137870710106032838825185420974640775805986436383842038270099601979844846561236162436225691637639994468567000931776950885783635459531813183452423430278171944970899543371507366250523981644102562685390971379634731225209830290466810513754488499091448582219131540566953440162064719630965112329521871741914420542424589596673408836955229293886177717068706293468932700122547726952632822542164997758377401079115006836041350732034284244516471161074162908213653170318772110872377099238251999752204087138106455861341110793883960417338030566070113785887047561280241357413297292375284402864865887739554441875990857564000995602512262359622928889985399479834310725367872141534630333013117183082923566727132788458372645413431957448654809304400326740698014167951696739692587277403903040238365915086356494104212223997146386557519645737278497474993029799557855173059783860396275940965005541045966028460605101709647388571184662702620151856897459923416491889281146485442693694931305604369878447495097179762295725496599826598040510118116334428370598838229530448327301064242145513825411279388982717052470429009269588541219831041606457000813505469714691477825309827822573630807919182532250070795518549085306323660703943800110647139512281545542350075502513562318742928027341832187126611401314439927815899549251796400696049872991489978508977181655745757155088316097056352668921303205967639221056043374124420263285769721117943135477948108383928779418406439232060785104151796235237759779336677771430987459350334212421195780069400285746141290429543563534435432056631529858527396613318664919391323992484471905750109050579295241199338955266503565178021851576796331021458247904807899722679153377400938070587365038053521433101277100725285613074216519645807528485969427792051655570417747675868541975573196490604435263920158788124656250810467347314427878528789341772291510994235061102511209100741750791053244174982144842549167815570837087173419808514413077746007690438201441425213573609257913608809820275435179848036745864590130599897553208001724490380190667572249460218446554842641233815740554795650197914728505771399984701440532922907234151096811700303770195498163009393271969607638220887656118228697531888430485099880044571186301677846704001153571592686716333656806180503782689902391483231454718854931533256151214723305031716552225006950474020144474244863984173406218658406736414628490558826654723238721434304603242549331705930575160557106546033345930748711891855945176594342784405725958317559782512418868890630638348532185331009506577415719842685892371173287120159413634572404037684378216089433468055863452200566582027738829396031922003002396681552100306175257074577259652914345653134374886453582253408108760375338561752494697415260429468212772024433735595024466219473030502956398747655122879733895400410369141748616545503727716559970996600822464749709097576118819007801342731007163634519432922968272095572985750361005617550341222716850032703166957959973413527544407620774271724411816499269342342019097701678712193284180582484246268343741554750649044438376495916719168792198907793571203666500500002834965789749868697934407840775394311314712910267984571844478848655438680974816972684855625358823142872770371945609745842246384667319794714196700755642506300994894743062650668787726157081341461994626215201608099024213427987193530852228280837566284921415031298110631505022061762763661335490398440003134598173192918270649817129640440607426484456819313829603589340687355430263564299089606944248422461033374337640204226901753143882400011759951614457771688661442572470298903398403554054851738818223290941794070553464493048828319066133672962786918583305108744485774381561918779346058341327920936830896401009562099064792063197014888981335667747523335602590499618655205136506946316343036713455678612769097021778672683768615068698490922583848014935288442344265702449246021763264924255043334734292826189620499179229778510147382024283486989003462073495566244571944036444362501729198052369905692711894238541272539129281849007893516644832856348683151628322020241853875992285500535663305563016417078577963878241582750596541889991323819431932820321242356440700804115527099044310138709503446305883704353781708211106079072270769843883040379665839754852955687960128767559853078913730468368313670359808682041309312612630809065254799562458077804543605893759088845718309522258189780671911243856893689737810226323405562204118189939064860506583583672792879865864004282560084474767410688115388751800383185658440584112944214245322024083962151075104174999214175759605530136213305151353602396506262567893194488240940910990348674634016395114489719488921786061052173359387888296145477153307684109042326738246023236449838132799503775475645296287203154948717707180097856727234503676903593133421530415775887285594331201850799876604146074311358307632798879350483424108394978330798189288722400487607859853675576037675512656757705382849138566388841966398126257374956680693677866399387478149704125980060969541566669270528979535528661137750510600178291390195141370572774259896172920503403571195747743069259011518580896075058730631677944256215846295900035607671041423129760578304624120531358576612603484105820789689470024487992020627707308904633621746910052064337759117138437540998748700597178411214535778557352263862087436707387915031792284034006068392164545075650383778034245679695238011334977689144642575722027132342506481195513335394696390298399130334204740076280127390425424681791597593017487673869231567147252265517061064026229629058478023379642132605075609456759564752144340677882168621228374084837051613031121501122156303497586835914264525761577413686052200140416296510250124900681935359312374214625505284700526866613103444396171421870193106822317729544475662514626217341661689249573059013893383719340707708833817045699392045373751009527141061436282234542168686646963521532529819726309895359088035226619768149517139748320734432376848251683596005552368839130636314877255373996609280153923898476649372244186852406068515661276329476523153633902428382169673109723466199750349825045868772722349901290131771481042712539739277902552123132115529890773745386750881357024437387402512602378951085558593651457614247535040493664919993964935704970623810290634013714145601806094872045458340406601213748590779862335934725481275931082890967625906242481174416378244739202981515755679162760262335448209365869347718637706760239209394015659930334725744617160144504019106625621383197475485538174590348290001143302602235611871794380220535418932468809301228176380254040723070066591902016093353499279050317431377062846097313422853495943209798337842365042612925445830464575657820296817184167824883321621886737865975180609208517747827690092816215887670571813662726423810848262080182990522811328229931833923782104557582578261966060107825489372748591959196404294830347887315896861778198864369385790388600808817836520574509754379585201865921803079607579057260173936512328745423577297403580276087029834348906994266051712331133471822511028616536467494680108273732149707437118608073716968644050815395225561474426854333807291279605428492544517460671804652786363957858528289859682978324817214568957298306674296970162457792369748647029780619024089299874193831462076347592472585957599074141462385344021206961966976441995525236373397894889300202600858628226245271041214020339993306915911268507981076486957861972834351845451022395334686337750857499595398489221589485821358350244084516348027030224648228840986350274926263574596377008028238806095974823882191846829938394845790457766547012469272588565523210277320661529407807298462718659573359375651057841099940608285355033826086403005589100186085765805128035674543747508540063009848393168898390831577845432719468618396770669189106061174323817789526647874255444005933045860993019317620908797780984457964029774028103321843986075367211423750853417163944995628954725307363032616855786446286306233215815518628147511344985620282119554017684253689486127744862897527960116934524294087830365283613638190002198579581628417539697305225574701022896469290968272787566116304036265245501526541027268045018262535151630370491704738250291955096373548265243413684205027587364411729275803165360583606759207826713127040909743894089258754517479967817542678772498943156127643972100713120311263218970400966312718954308634584053087527374060346872987382533576589612769728527308143250596181677548231179048729074305415540685248534412512658242717890427066260606452856643534391286898952399711188851025945318259537229786253113667525480001120688988261769245188808942548085660026547154513438461537942764672830539459775445959805517023657585304237598378080043071896495737068820385179517873891079331353843210066347246268798743749345276401700648516320482356173280554688060640211236351439500809995541204999839036093842782582007504488025472388094304187417709499736221803119580480125908682578385562373624754623569696295659705780620761825786895254684670548046021896097799129006950283177397446329390549731436840733781240221733196632517609031649244215608574324624517880533453852633613336892608107885775808652173761667141871674804740873896177721208027847653039594359446710326647035622053454318393042383511357980414499246106166048050312664273489478870153613824815114270069646092459724522507998316922678804646593252118578849319359241131039286575851888260306106959522641189835451823958502095858945874651644391797805161994441789339100371561612765657759045643357466797216631072726773558304566302745320326745734646793090658064387736676814966032862501726818311547265560891807660984917516662502691017994981728241575479511750531712725063550702184883970013067762330182984330970179193619055295721034441968269685394433184770682989933063615149968034459776164689093568929007597509247785039424837050118799117201569348074692624026448178144520031246675503835579212710790043137184717278311628847762413056442056167990478769040157508623903687107396638795567674014512441794391956227662550061015107470134530556292793543373897188188577593380906624921483107421874088688182213885032677728742350462290156382629342888525229412417494180498492376787491481357094776500016708437793772959558379916539395152368585170536350516314106942646353143266166670570676292755402044040256861504001355764360156837194098790004124075059415345143903924065909553038406270956141228878122260005935006892396213126345460345215801738981947905693408679517377958442446762959989028407702846397906644515514550999494927932419640518362608345359005826472537684229950487316802869478869176041079022202793854203195171263236255627959265836711548593861242625590198381628194049972529895090066449214392148074159595819524709231260583887752462611698566684231438803164500056858557986481470589366350478031705525226074874306046885085452621753356598207696395232327846369055648777836615937269963564422779388380681727339799678834154538225425044188861075117724177178096628667901195617670500277484777283636071659800851179366885232682548760474297270668595518190337162636360914648688327982162956716478984192549304389288463377578517783783686748166042027646335132117104891164965814607024479533616504935855215493756614592334384646750564246982559432924034204293543932169904462847349478018589585852677630405629030359396598657698350966565334559580036673190683559419488101897170534984899560165130505077937167325722178696218583537375521671565627076963973861240707053758227266264993427892168806524367439677710302371451328824741146832421409029896252991839539307945521629591369493533205104972676560190346926018019530661736365792981040483639198185527828960114025193342206762979704576984004121461845760312168726221394227880062021842872151727516420125958322490362480103585518342475904585210825900876676906641661392114528872476635796662514806511577635868390016062002778957432812221860927353053113184659020356881140124153071925623601345659829998189373209462446994099607317055030945983503293095044390192925149764871718535511624996199030077228583873606931868866780772838442909021219102017462607634698819294577334625711823015048830148408794353931162765485161410115677309559065178472818517290153808114444403689142331476871835440508711578593893227888390961455521590673219616275396156844183964740356615871536694704941737224247689030463920525318294718859100845587868131089030147322112955778146040262844868348566681620214060071062573788785628733111654949594581418971205965450716298852516357712467394695996715543346676697913650502572848713154375809037727833040335610551974994383654677591982678670729503780307204999054978156952013129726578209708685328231471480457149511424831084333452272264906181969299472334684592371524743432039813021470896548219706586604741619850769066320262941569531972310351811688594939503592865596853325614291527002203484557672367860816921248757930145503876634015809299263241508160909708318091486568845189357590318018149458406357917835043662401491204906680670202155722753561071243370444858200164470353824251152218196089560655178665835365260350708165770515086385097394255751861160747346707089841312726336732889671110352739229112447713659324062797791833811258180723840298797572726417620912911906981029385179346558155478821724625677685863068327641319044546446453950687620124386642707764515562169107820252284810838268256074314637835599215095062202194414596997330197394895008528309503873169346405795825841843652141620925108950737820169560857366880222599003534085952495435789534142218100582690958602213743491623590241309934309528637391675333136038081267439149049168593149054024733946025638641224064750290022036992793928661302892953923367052056253814955249392790713704862261026315295100238324116820961080262768851327690026845684343629065278356648227658751059534630875443976267045056627442133522032351123409507707802006411088644028411810250759472752378423256978325214340143839020349155090275640354527123113467374588010981001867355357102359286983666358592097721014310891213445707016894335002522500058851568219328075822794242386745991220699265595159602338442856571617081264251530475729928649577186982805004183061082705706534782661043295377743901186807258702663436644817371814991383833923517406677991031111322396341478504936046251895232297344474507969306647736089602548693735769702054013058969281070178762997573514146172605429364983958590510352957526480983364610266972507737813919961273922682647727713086398912548558171065994039467856834926172781827427268214446766217126518604460485969726220973612289401717259970974064629999959714582057473427392950137618970689016241157772096138036815318293353848916762113992082065115577317545549775418789173860006626603613497845305277332841894827991872264646131040947676386102332207754436984075533903931453490278212537836046686499992042203667022698296529101266340900535815011927268565501909159339068746703863848956849336538613915825570163654880755750899725689093552264515591852515745191721746073783738989408338621598401152358999096330277048542056386480601601852624978225544510513151435649092280710859199624247508256220526553962228839899695025728250418706655851774307202094117649754319407587061511243926003043332267832604883641259828644146478863917391208253119329853988992844658567171817933492328933094713054748779992357426778479195654112190760233961576593484313961097671732328734607844705592414934999079082996913844132821071184613252139105188482885289309879175492477444336376175452848252272764735182603040381381916453486722905602946588603776677477311165158637686403927592464530587420639727431638208945078703878266879110644550569569287591553836978958424199828638161331679830227937360097490333504718645232518639630224549035950021575260875035876752068383935536267384609746097016915820446508464607084989652562250275325191395766509964712366028656827586633393150713147812973441180339049417795777059809693965851990165149857196970439990323861448309760177893332530329344876226358631763360289541377880528506261007582335493472495538682476211839668103742107153236479903289055119195158634073972145416746911019059155111334546697891791040103996729282422766128530278063612202664454373779392606495312995833569328842805442377452350306531752539030586729577309178877340724332898503019635773576091691963707061599749977197263145017277004516141075827724382913360209519971528593302474630587170174577686108422499850883291202208459958508482502691060550556643058153723599760728386924267966480807213135064716681146710895537337091200258443968623271797259131388911511700981142069244072803635456098645346439364167170676112892528842920654801253773015603629113646205262422140804340130309178371033210037763127167523460628560867040500651991228992730448703767170498967864424672381249413715063094416832748469581792675145576554645224676987690920389931928951001375755749300896519989848619527577764008298357251910649002903825857573016343429189409640412155608761694600927482524448358830659965323478436831952197626170166269191950058458207247104293686613263248356811441812882656241014671375656408774372386054381866786390165086265974744276528209261622286420902890817284106903879451717836070444273031528799196991951280336278712953887546320256247691471666644132307374979669438814517529229910395580821523199758683411354608259102719204103782280006995249233514035286991172781147903930520552802507716244659323194949320695132450530923103977882005897429675221869742822927619206464016400717287204036417795760301134910127990622201381178913382981881014232556873741162352638124162101073656592526090921831023962570477189264387603164034135617676956765086852070601510792241257485300648020153150763474573903809531501302041772136543014149788638145519217683058754880140316677641828490288160236450188994987582092879482452721981712205619612275445161975414221660024497282622881824831233672091085200814074473970894326863377533211987972626715645838886276018098633651404173564465941346378521363314283979372359548977588224862124398845186176108704871331705563302981659041894099387566053258197044131085105919346550845070557043070707822813718350695627708538242333034271111727361024311683863779616776035103752134665452899749651875166033871236572124465570352109749474789735950723636923264671969602822331778305941685486342713654828655461074841034387625027683191512903883867295409539520412029038281927326203759804586696039449778922490780564993649111912179477719519997994541518839895825026013178303516630524371246349969683027005219889036906626148447717043823698907606554946908272701783835830149260716901723266641359529867395078441705796714653931328749272032417964199178216596053311292874212371121166436586203221171571168646632027679175508270305602299983325783812315605066910813026445587126034405716563165822049757520498077312352897752279356672995822048902276963490865391903363612957851848974591838211514861330435478428001339463482887082190255966228907442355441040510109062575779608233075075239370455486257600674094818991085123016457759929263090675229773647011515009906994060833621405073697931339100187894161692218727944842448887906448750814532640144668088580807635334891743598580356794785275609480342585916137620014340640884476093435757664498784197755177563889676609715415341850058203612589189146140692119119645827730357104955233687248634248657499288289519658817283155593441865752194805966683402418297385631047298162860573054197454761364799445717065076301095880065981954919893913753977372005416836295745976581310199835168680881001415896191006178373301660640536033716519747261086669489414425889481072294044755203965404511669093884550358983911728381299388769541270614892729023146369678765318373579428240686517274468048496067456908908650185727546192141947922777768083379187900413001755885135063428879492291808263085847897272014967405072360992664825459617304205167100884514471263652495571375457433868260928697349834502462424694062552990357033338653471960372639905848439844847728137402255882731627933678479359126046352343195252904437277030367245182404495199606947628437917125486137336686324541335219662440019278514986152093710363874275803198464547530464962255166359166439747534476848066029762277565972608720146133849359023694358586668815999776180923262736400179184616361809355867157766684992329047842977188891499370672819259306338578144213768277326609897587336884921438432348516872820391834909359856668741177232332411806107137488911170846792478282940577207762991407195404537910649143845644293022686614553013924332693115824557490290660106098039654040519819422746478265769076045567621399431882367950804470474761325588034771536242196177398238200789155993674152010150071050035177804103769224746512647020707763870972839016306774229726411203599022539370862757866365918270783498641189472689879928948467202320342204327151751854035674169144280457632909280093975506044065722983241390758370382918658411826376951999018069804074177889529672149558192410365386897250176731418537666602614712176303764175004607608210173988634930679802803924202053134817781321128602708728030709239752869534852048795789776874477774642919417462123324280887454360869027406705861681620084819072727380105498125450995436667806902811872486531878586828149329208830168967794676127546428808344816367916653982199363436316709782914767665335847970395342988787148863499999796425005996151383448035650197101920275596730096354860558001611338947475927365925352613947184456543780379234828103615628410789851423164567930299209053227826041346873143036855077789365929351199315364529840593737510847738304739896599725890442980992052033096417236153735279651093739111214112588820179968835802610275306822667730657479700658340901434347501762127610990887871347576097973610671991650381992934822901099042967083566568656881421776134544853428205949677496570317378931937589557736322917204015760685657866274423657560794331398417576940816943249691395108787671101816485676155768658032218989061387825509859102156397054057145591959965230753700697068429664013930503913133903871160664955348375224010084345617319279006358672238031565881118198319457315431975790346301247758249786223239188100051736243823741124662549785392760167551254569886010008590360944051816962488615122494601024325019230624742747593689436964223054273948496666492639346466023539761562805591636216686772450597502915977209878344387742453539779938422975002890346715919849779231135394863606348768813314991784416245076459426554209759731877763919499701666180086785883783960795532398296583664197589916679545890436463393112179469072860861508024313237959246523584216640653832132535336274181657776535527126205817836752563012323773412992953113364830721022711002985795465688054801808696595036581570670447460932811911343208067145931402860333705275974624456537677071254971918374654632175124533507787362764607440844319730011212691968471469269690448185270286604010340640940421322198214196114161602890269892626311139363311407427566059795456833518288267495022432889208440924928301440982663197626251692805865280114422364335708512984097260394789761194574655557290957691470087890518436076025601073059094229833157321500659031620077708391354098960250859091714508232597073555707968762868605317545692000509218922707232199673939994457174694375565359033500816549648909452039158666630441549086486976437192410519843852682242512665639809777491607715125534921863247218707939975184473903990929516505232294601783833831088214096784621618429366511750386213301554259936081476546429022307822382912269312231550461545811569374042140045277272046823245132441366060076170295243103799773756149136666621105946462906852384273003910117507362811645237562930202723696649208608328930208398841280445718028936093294067647709754728091140763296174654633721133269096901596293558457796258614234594409955931343566305305930602814844441266161093755900785116004037846600983964733264607055719278831838509654962953451922583861417273965488021485983778655260605386108296901302582960736272582708746906685946081039534831033270660741432680337154243178728533203666056230751546447405964613579753540210535652603921298891871753867505093441063800164575696087749936974572922077864064559669130318975199740502745538306063478345269546259886151058523132822870571699181977414567790189533786684030075515557933431094908766820907401710039595403294380960480123271790112855791639161065574599648429777400411106850008800090704720755269055675161229957164260308083723436926774587870100314000091307235879550875506992041152034007191629038568503179928053684361834363234370750678706858753162469151331145090963760754740142934736141309248267747473463263710853101829346926573847243112745511304946024239369471785641878260656607711610800976477744231731490591303315332747527207873778061289853166356374027298686123226915055013925269361228289336136371878496381071861078021133146974158062836693345331818312415854049166771047776657433452524995614534983698120724465825415364628334288092580414340898768685215041809039239518227857210394249584261759537979828710961651030666203661109704815766264291819311942956542073012469401451643665153969332157807708760214402559658432100824100278582759188442227264235850732845407637790340815220407865223618029374073777590501650669229896598810441173199806614397679767852830427840452386580459136119408579728982899842248149698536812867189833210358402653982320865229144036762910760488131417232741945112649381128771194755130423954076115601467395366995641175512127163653519335385840325241371312036416868398268609645459843583859534285936720166378048212598199114350323485993608368275923504868802682253963451619618107948339291514953071558348283540251440226497907201756567299027187763725872322223948844174506841459122351345307497314566962200181554972723404783047397125531915250838817933692926946449056477796201840536722467157723473749674039453411005151394144097690295116595933066171028377683437273999089508952175556106203721129483534408674963271319366187112957247475290717795640576227500378119283117786280702689801877216599830754432850769757547490161019713880309710861135865639853604556489207640083714064645334911300158915539266048110277543454042368127097191641677528126556131443642440819711359820776178431328031749418493292696606537059085151038118714607416534847292551690541779925424825259155362438667720189006717380849940301018081352050540303765672452660756633423074827413165013534007614186777375112455441192775991505449926598858361511854609730022310696013424443471299541266712533432433704530115248475457801776265544759513772871717014209443546748844616493962110640394710712356984824611608261251292690359444998213379497225319860450153424320991986730778029482120870614648525272680170840765508201727953998732640454695773309334590968931298317940459247739911036319498158236647279362306484230019657185770123129890645306303030816484928129081092761455499436051755735480944908470577963862451045217029733770334876621119947531819405075091474115387611413538211305093578424067256210455109664714494630937001211993621568224168766215323928981498191019303594205313428354950845274408528960595009890656864554109904135107724630465989728866127532356933803728832448556931901189637686110831031325161310533714029498490053485764604614765535067400359752086576432868483093115977147900433500047363119878546460261867102090920101811855853128772997636552202959239713754729201220969749250836542677628670725787231382300641202207356363564168273264393842814228417020578437917011832561113498146849003565407356033197278370463497525092764244461623337320644136686272491012868126497961721460458226872043669523626838926510147283697474283210994528671988271110207705063170154481710405367750948873901090090951281701881147480541791828562919221162681924655764550629589762272438339066298646932255992723647205553134475958515636565260444500884601395143379919435965948026805440835617429973890504229934152107735694968306207078765688358124454695376017144213169736377896842583365904516795923080325583695179489092111107966487846784802305960921615313144382570229276088194687663554101276959066735789723074804659580393979635575894813327641106247787777399257169161236147857506791252102121378559774722704553231375971681065123259379688300216506070912608280863662004875494532992911952323032177202408219298129248605128956840077057135562179479197068764258059251539866235908573713973243418114350481666985079409433308043369862830319395068013504832888785651902729774627266198610022582393260052583325651843636092953506494380920287134321619356078544979960431055746373603713544390156897266423520176272138538499079764668429479873446276260452328291769179578189036716855914521243618730422825885875893647354780858368822510306051146277658498412347722432790102316440342506719442219084119725582285541845964836326233911950069386830155204995238542049872072476187284855844281390474594707108280834751148551104449461436631849215263185767295421652435928718658869118732685291700753673875164454639909753682771117649589824758227892392882747043536056390733922324490533219505732038640890396611961547454769857345356258686439462139091942046349810023887112298280688927259274438622408536994315300324283594687072388182484126179918413428029190625187647680369006070666498725405183169510224472387979008896476012667698511055881086808408470681401997725068693676640337687637783995724153339278818437880527839021687777314542820830313409826640460206026160665718349895312614260280778819386125839981234216493813131347398297734008418868121089379514685868551686509934783856193845075626686243252129434377910060922021977386826020924027633478597619515592780203263474242053757343411806162227212606333499696827042576787127971993252348905413349606433505373618029633558757115625073776544192928588073790597313490664070218721697664373121062642956719592416831795045763952139868987334970626915094292886697933783535241739917858008327504035276799032790331165752605168699104254185133142697354778703588783781056426247044295667910798045387893630623803547843119434386721176926478100858203506363030566504750691721129042275525372844576187416257403055228518681432316220766203589668471469289563134824921134455398344002778385726363018511420502508740582272964951235929239599586404137797282010844475297415297443445760769487233400389430446310579217689469885117061828675948616055165202774283500255797010206587820824876085156403671327771823303669823921041521506875748260639612564006275147288227172021659707894830582136917236820967739963377531948238305607333235407946968653966173656868779242622919212119752139704636596788470214314616810509681032082333949941296999366137629067920562864356631255475176330033350029064513609686702671998655934020600206114924348027033276049370465695270606991023465961195248472743934178924777738614071217904772668108865902123180076089599834683557147811674753517709745904235557437243082714969185304049645270480620774859680024721100753510769214383982091653605941456947406902402337522077317823538803657867277831395657028701976318531842957178516505590252927504286507563069502895262915984773895330601773621783677438443651824128577299447051302727954591648972060151727374468159148141722114490294594528150007332503461984398272855980182513561160747137751795112633126183603936023855798248285015467117040147807947901466014626765100659944441115249458169916803119154931894442245004639451694945893908484040944455624452986995123607474427142476997876924626267590587077138740968775089860554793514274643777150481659116001500711339935682505354574313283976941442284305345231981892165943437486060508168279411063824200621084002114581630552858864155474499970183903498043230449962546363087865855381767333356566935870880325818829972449110675962691251946249490021150447275978027510569755131369500531778227698469712805233483122991227855300724324884352813848884054924582586308875775757966813756685763151326896513155957732327692519446316589393021237169057308473020792182912737429767376877478114640874849525056260551481313351455870097783522206564969540302680183340358834364367624907614738421946915283230672414696523485348840028678673024713092059314008578172893242547109697994668260676191462003587491975319612963653774834211621855340472163010539680655069297044167590540428950486750562287227500927544902059775746540469034660282837378819862496536626753143364984345381996205508294943236596649117111992919421980302807076430710917442475534444539532748624769379993757759650906095776697433219373826462487015312332767361285153001740512747440413497806685734929437815415529253699115001802493361374047885886799532960990011870125411947790763464220578751519592455647107966256344744299094249853221843284461426502819739059736046171415762102508126487409247254687551446099551285314550216199183631279257962434289938173909865386700189519633290608613514662213901887758600822187082318789142652666104346061099465562187550154603110367203621730886349038398756708297444432392304638984156833668058277543823315505180824406184590105249654616877172542315140086764860666313721802275136994454802351434482106571206086043243397327721079256624320908556240496888041728643350788795260751076679593754859807263036118533813354685107150444571434215698208752186197598364859749497247561118869559217503665773959740966968650411532830672638807689461000739622051164796325525619172192001225477602774280853889086911663672526295228943977200633947920967694321029617200566609982226146775930372207825742161959080649824384882309989921301266222221464797735391165244397256243358658928996249352899547274723881786130026236998082841062118389755864984922339260401751889440479226093575722523245237560161753433467085015162015350435160182412381542192040221885008000669791109332187030759645686948426173373523857904500025207881250975370480682894720221867693194129199440359414224685803755921628664039768285493091826561691290033875491917106820497994894500021674195500940803624673529004388797458639608376718154393101716010228296739468158326551850182921208338794575303894884937755829849626019814077841125285793463537928195223590036072614885814729271617789409531136808635189350429129978729166336064840727870712551111319005994459813246081138054580820860695206901477971183333530176172943942524744711719139010930146081591266766154266068721944345817829959845606206607898704267457994150047697051472532490958186818402381701610253823403168549285335048457910268355247100886987202847302283571283927226872206127742917772418631272288415565718798891439594443787837333717393303569013779351547690788513143427312849067666116906032756943188639283735790227531872717722741838187840633049480544899259089241725251703894212694789536207701963621405834266335463172698175858239732143197047647609496173713734487747296086123942291202730424774580247692057956520891795964466077907250786403465139942263857614145524013479718395664908893089702017902640491170810154928508046884102221633984702634350307810904874677982389621508645791869489564824458129324440272822509440925176434747361192301112838750082514075795898218964621089793540191634140020241457073219909339214326482089720431768299744055908204261474229984433660176015175735309173864976445921776234758684689448134987263160635152928509071542737415557524253577500604527035460523472589036739867302368150229993311893314236661038123778653855893671793262134519914502985407201496188718325852595893196699454954489114847940777559519776026963500902867094213565068925817065196773300314768336354285991600819033374028317248009632757902545225838056237257399409305723865111711553161574840119810225495979515323486529277363421979607506563989234541497740745325604146126533542242148618787379882175893050326681870935966036110989725429444938310039477237838564020664488274765933991365133170929151548374094326612258366173904649433626389769209448490427268330584932944161426968685392787678575943827421386906303772030767428088062495053367910944320463002332332004615630757567244192237827393829551583270966122299244738311532662444211193923521865164319623106469107254017627675627771371421818336499767897416037858559000242021979467045961820904149655021388295430135778943169576341008427879986276179528339108892236570021507387819453720923268508598106536985029302432240774908381297710488888842806695881078280977531396688791324315905050936426827134268794772523562788801148440737352157985018608895333557804045472300785696056659345059079787616343442255132691089892483750923006967396260304413076699517600036068853633662807679103526631175303145132838804993721975812137949534146867903048899627005587524359441662048686512234384634872357057291578266889132425221706041108465366020913643684167348471015909648701140335702831844087750094852484053597172341658482745257835304081454677454254801700456067342608321826074976915830594330057794087283155689318629237280305706014997139657363437797672944979835212679822730984502694368782390301918966700683277866290257345588056808236795612353261403213215932572940602655457061575459813587948159516563529557280523982536513164022099854664371302106014226844844692402585084171616430922047432049770371940751219629688501601081851199887923251603948600023443349974040306458258266436407343604534553922323499550539638639349407483545481927665647395525403650020439306865672991166246508311853914229688765655089168767634313736525396713695618369318749025649248482856993460781104401899181006035612179038954403348710460594344339176372813711924790426550940025896673369006596251050624259281927145710698642144451228653158819526852034735230285331392514256354397416961680665885400853216744752700178681599251039801102659208400484273764005748123480737639820450966182290407592622264373141632008367194458867071397208337821541941339278297607697945293213970035455286932950176208603944624150049325817273358116082488902740391532933824468040026400042918770663312167266589922879614281495340650198277795834202209141896664923956620506525964166174527115086141526511677399944333812955448265638776730267097987062607490407100697006774133769026137482604228133541308246860764531171125482774478850970363676928648738370661673496283162834603438768901130372676984007284633145361204574442629691348553995010414437352956833002279760601055958538285990071650640741706244920771725422745041951334797073644177317152487655289363595230817445769407392195995284794654103204213670229708772628362283576155720108792752926867094581125948713480047948863952259774595279120589822173251901850500270346268578618376357993942949435741255066717359982570416220863302583683566953153943273665657272507648601293348371099365277987524682463310088031323704017400086965113569628433798396328524347092019015694882597380274100121107280130265351683423518075083440668385357277224493048361479939880136500254961677441651968275800699390457591795767967595539648800482076859727422914800379092633498527797382835148493382847380725590519600064001409950408950610423170225290065690319414778660027867026792500328036953779783399290933330087569820740674679572709808695568094798278594088602269282289237865825818660467929354095766914979259208770167522823792100825183062253587160092826002269696278481340316556515164774033565135853769335649940864862484328217386729540025100087492005486369335156686140045268542110274395436466396960750503441965986482429281730258843023123993056152689266221776873369339075008655498767430512148584803592187501285799605412751737996997440536612198281629534299515634910971678663103054671061357945237930801353291175918495787865951349625075454425563740517499657079064409214526285863108765279807704342604216353398046195013983254707672109481406088848225383652963103977331277013381206670881586350422035050559669372815977869145519722016686999806599137461374929005361194144351900639818632258552747157436403222570090356406301808052862270456247819019752762633281466711192983940851799292747809636910865014562480278925125619846752367743144112882068837918815583886472896257806760950733199095337243544698340443358894655025327366719587169947395274855014098852639889095145762982506763267054417100139238538601583317343371598896513141907803791824722455532987828401682812775486428341979938327726258229348041027325061974782215491051125579816230793387527881915074843640433452507118758220018816678496119076424081003570342658280959061719773248407324057208942743702062999865884466313831129138907805223489039537901343266223623092931751819706587859565766217570568854911564006609776462235595644709965430191510405687498583060325152124913237639834531362774244144608895272671632224783935163986710780080280901940438296805198574812586857026892953539238042057630383323129698176801478441028909445780706046812055684237585384431648157055595597347218755422329204100532171464563459463848820215658816319151336454299178300491349771329858850780301689186496512058865049396724931982233190567712146163091648233685427704513670737355264750717201563766022858360282230950766397705441276480936635859241009297291129704092182516646039290835718825640522340646985284484110485899579649627219642746168208370212577133069697282122757214114526078491437788971533208060567432532088136037661846230385818743197696860561814161121046747922339813384769048029830821692736629727562768261842384747244557103541069585942799465803547082335918891951572845747569852343969009048094394988500038382611791094335048121386954195081109790826566623249320952623886877674618362232894134694404067932030061197776742872984321587938144225559858404294585751419035790907013980248063030596879606698487796350420855800107048314638226583550182284763200226757592244497470810328560823963551742993526333970945799080579761454957023826762950506619548727473633695998941311046488961234935768240950359300035687191193517909046786004092121070009756526439977505109064196601974677081584090345268035092620698994303313047286689849548634557074000519821110314326731361096034659294682644227342110496797997921520754039681271893664564259991287609124509201410342481454612354546881245438977646691866006004011106528718489478127563692825155724222844408636014762297883346678560959794587572612678677682291395049698121197082447379120810629880721906287531858851965049899522734094946104623106398138879606831102064679059808705088139670591319982689449727432524668131512784618064004665756343025053880179416594302643988524410853433867947790285730698571775051368401300013902942694966280216984026898635337622259946814231578627759196859163436377706573304816564590726390669495617068659165506813798127094365149780568057276476009418794323205053410439603490361083344267938282047126013978113001003587856839961183424029519244224643388480324271858418699836394616979757264701517204852501916130926182260307983251094453204351102483244953669071528868022352594374219537396568741773280901340362089247574233408176593870213170011675054576851726754047927091633584270272629524990645490843282101850534972018693681119016045963064206952775927890838062501116821102204730255482027838473172410085009689110308212460876434690149208675381693498199839891682641199034676689786953532375971152432858197153484804125673051343824235497239116663614288877098832326668351811651008647966855919719413298781689432068001414489849901009802129080044248481338627227233621876423935069207352888169505615315997257620219461866999188452210616635869587606843138994781265764368084404562048004401711367354235782550258570166968014950793508044227030576398221489929602364976872835288330264270897545407747288643015998264413674020490940309299675697645473845761109101166647723117946160625236307287122379485750834444529181327596541508503253715210752392035375265783572193311002033220122746938043794183125514162739331710913706991461098008828493038976719308194954397227101736717681784941788227510495170155392778012604030374382889648233759948391337045295394167213664870307882930789501391802416699117345799522334613753176833417534809280751005391437199607680138248226029887508515197363044962371211829712864976800172500408222525219186428912488085687202886987800810116439320122489824906946187068556394345129534158133502807529960185748758416516775814906437571531612263075765533436110023593013505087769737669827346695950922749677752750918580910394150396953897675386341484986181535228090246055553248192540043950877292427990343343192284153847323685628244061923090212176062193925658669228798323127182950831633753900534422156014300898434912729172197352481923044499866011546070197779793198554918863769090650904021958350294928771271773449762501289850836565468384394139142752490783963937837848532765111332353306035659598635442563857073669694035084621980313542771325490931196588594408260338597646840592584895310022127632615421684179362577431510406680173957104418378110288341081053106351198719387762588197551343251717898866328805640566564610057783378005031470796162696397306381912207451726220243573755794851242071242725246583054421714483645834701060558654116728698466275135067260539262713738882275404925718149472105666828131388766483259685690248618365549461305959083685216516281642504803441331825159324665468697020492346120531793267781920128024635656478970270473585157490357844234042891231626836360676267953406103602743128040061836455579520413861793500541845876383448925030665875581582849694054365559278387936044391927532956395520898282225229027549889145453007394442446244647239435771481208148393899269510114424116240685640722445711023541976432054852006843159545745514266765701803671640217437781819780909653756971368229609490009198029335036220904780229453472143601483743976799783885566191756260806839346829421418831849191353321552812204668099651935178271080420100302624889407888085797446957907376740887658592803179061709208556322832967482323731921752224930137091525236469854265134521898966416694825492382125944141325802338104664833848408867645377664022536946985408333672949209402433320510738073638347345664030917729526439273044537109905788477456053855609391548021278897335669237349226462009936377077436804204061618970425035642905412958711443241033865312937994067691885697494639193640984026511121168448655023029004292454795323184972299682705225540939041693436885228757112071541535847015187214249298380389963628916712950197395120477492626621248557083478752174449975810572148443300923991427206447948247973991392687270765086903246242941006601977717013291793852810700985896370327764565739041394533744360907685684421856870912253196305610766109879071706412735166950663678511907133265529549040579961196470523057282461919510259011278293429417324792602201282863343446840178008918377142943981023731933680436309754249681206111291525618984150521483423890696870983584434769584186513123661324783638671149058427700894024818252808614392475121110815871087976065186854946917480281615634365680507939349519979478662744443691110997747816981805017842304386229816824673496279392548796686159896684881782311201448144786118791447235149054729354911537957890304823346688038497006978531510672301852399710874749185450605730187907885389718164279759362298592713083321119127673255204531388124633795988655691242044286782626031913357563428338170165202643099901232413781586503865952251901784317975691471897044208906050407409219634237911018771886260114037648175439388965229737197309983746299341197898292370185216275747009994406454664712402764027371136785810910508357413002620094168992486862363492204373604033135945965287427112522973422300136213724696430223594577335669333745197669786119263384010906294856268986413873284750378974856336996918006736144693386359784829353143957507814874106517739178437040743314087398828471117627624857592774350371771200767537241436488859947267888859374686144004431297280294614475665801828806083078342845407972342438841843771069588818748059356185192254461630160815006607560994518642467151840436249097379128706712733296417306090468756508300308250602645194973992147200120877745408839845857023590732374293559904437722302998901343461580567466599182763694254334668921474104159194812222618053699470664303732049564282062416645515401918560312523750690607042696839988963818086614815885789434300136450192983577164161104763298627641297703942275641953376945956947913119403863612854554718295419135338201728584839149009156748827677116311694379946400420973788115773196851463549805485110557659756171171538854882912469450324970646028435152004866059904338549681380676300755368208966229182465873013902690516033939567451788119697470897369011742165795999358409708853444447002964517330217645434821191858133310110110968520126645402339301330741210702981084033557245632266109167286843963540213743711909431980587810321261960629757834058389235414792319861876551676475162036797023989117543047324506765317607770676397042158472158269786922786516978199707639605718007091744496519072864293594183697459856860506001496251269873899645972896576371098416164231052980698419834782089702409759551563347577140446593623013263584758852645401101859565314866591970929894809378764302976904331789870026344419130842793950229025192683339872401201203154074092648609682317320259928658474340504937352593845240805322985213182934305925666664680508261283916951909978496370384675269894142600031823390961990253156524857469507378585007231196566280188887489746244918450421797218326736975262494959944647600442078264638795113567793263032707054841563048115006865505013282319339528257905459513356974111284285760545437730626868110624032905629382449668475133286365626193510415583197869977807287335913032661692083261485544569944274496028805649069217930121128456850509679893054578946018228909797141385062144878059412012607190858279529185520856490640406562729028281955790649744485831257534339098818698133524460061708577879037843248711034639134271090915841705306035172500514063395592929537757994292378497638406901486818289253554661405108086675290114646405427351075834224836676708113137080996544848342632507208857959953935260878906445044046809071537310615338018272715384191813745388819658647433320046328039903436997792789408261561165584268352694917637506615814964529620502078213831594807839431119614253136114761880873847214493957603467102790340633442455173302248983106324325044023403162167820984209769537548444008231857912749761025991708100788215343753286235012998466153581902005487398955840231629339380627833284105263614235228317505321628583715308570474221733019886772960755780200689969249302707116450135642033534710881968076856755823301690825203324564070518876425352536133298916935005213455833535409661751082413653072751370977148717368131004067092034943480983371766148092049437280459275939328615909579375084250448018016792183024778073826138068075364789196188426247325134290418860166811615975110253724111191993383892954001195854407282750057734517045575628912468638672434066889590062899066635924747149378206734596891091928593195331203000080935863409167032043638720595002606517198329744609510894471831865245331738719990372313500626732176873280534142877677384501165947862281062945857322467867630581356333251278152419872632134346422975627593843034167700643787386731610844853295912534579364606643587119258731582459668444694489727270356405544002530378004297038235731766267998883689838141070513819514188897646706625073462988170020655580877962344567821213601860306158135067049320804189698430164930313323619562498914421788822333741166703504433314112778675063636901622559979350548112458529285218301456177458429880377694558339105899860690825145531531376101488858705191456736971907069101311111370362948309661240828040134247213521811319033309176028395738607057414028069164607142246455892428116137590409674016948668121403961611829711397829761992699016355278680909701108191468324616871016267796279152972229245536741677202104437204587392159096380020511551501514403579881621770924603231397614055678355111082186557221770360261652897338050712368875346414795530948034891388111702265756214057805086355322582102423776852421335377405362247980406530843347900402220757149261913164668341339930456391866868581340538073246267762823747850479352091932597578044111243692183694581076990237519139418749538550886677859380938768552938216985791264436983174565255812748159236146638144860764840186147184432261097842975931976443376654052725880719740139308384680713518971537806512767246359102164289382990511898549354984003220620537860214790981725760796521093320121331458613522299046165688827078581413059015326837058075286825487175925028839818062344006628547245142764197567835967864152361491144799671949695362261443272128508812635916639667006868035019516715168735039878518967506231542349546325930321790676583270388637932608017058316166277450726800921915860892254116965253573391206433983796779357343457808514817817187069869624546539309545219422370262880680688986210522263316319652345247693143396403589308405310789646545975123030614626102864962428825351220491695287009134812857819381486634070396329558649662347117892239898831267980156727972954847506651564369857224717938317140475053516391646407012796273031091568376926206517284300847289419775054850098683267619304606910054723688942926617698216983013722026216400157282291924560717008203554886184245934528694456704831043606099887164425197964975916849085888610120190581256883503376431321761934698168231888906719071933432688490064238353487847536121093037761023605339412590757029856320851926351920315120935763894968489615750967604675536333556837832977797876917234531482410609764428175366980947680904225144686605337193216587388112446847004843415620702966561454042374096196930323709014285954665162583676578506289748381956394264615005163119793018277376091151261324255058433201073589979000533495697483052440485092233919912757098334434469022986609341894621858459129982048421229632640521173427588235568254607601420325837435601007102264439017320783433089723692416214867552387273393569601005032067244611026584755318125805382057772917216711478144966955876842218523667020621953527714470209271280914528697962066631906087571610552489475623883961845625151529917329626742643595126925454265520206142854357354963300513243517276820392669046293589259130991776605635947881324760536288486359445613829085857553842655407437286080840001569181335461437365243282463615648411906630322612130587051480697297067694321387049326802593495695399839445550665711604516064900661025587146486811743915435728738770721279311781248243504160696517240199933190927122891791835022469993267413629888712462891674979813724623243640261323489811359227961292299486409524618190519559933992027803373781014828776426434907950146107734087573560518271946235862346175921889126853546042217845180771709251596878075029240950648301174441894123889327490097124211973640756123758103459664418687770201875423065521837471290180491564240522259441061884795711108495360845483367562957604273508716935642896830329663884856270244319548592410371142888127549378506115913760970855263613421217929560680715300694834720091336699031419882654643585711060171424580335569073902519419416234169641484980862042920597498950795872955233436590675027823104300638398525775614553380035726066394542733381208636019438261796592450846102788245805491216180080389994577503868714254878300622097119934205908746661516154642063240363437096203037783781577702893659479489351265704429783379758099209005350314181048768370010299576896715319512947244174568181084887564216854771216375475108418917787402484258754290600378710358515556459273376838916720227010866280592472670327072635609022062356987886365516981834353622563477702342397979474625937668666830661215873164534248773212273815185377496199601971694503088902088978122761175640055634978117778098927006164327910218746830221941177525138370949591924752279737362132901442674011932724092781438885716243392650375913767113832405007689533391091795235072873703392702600974841079707085793048824068151094653320927311656705709501684724226872480811820149316362261129255219371449717654566752196482387933496980753749930899834823038684102372625863538609621940006147440474391547508789430562639616615046521970812235876588762328154303312540220140414134545977250180932303615370808737425914201687003902167387065432656186061969996576239875418057611352995358636095231934244446243898610566518870908018348367078041306262435556293890080018080750052092641577179236947571067164474381764155154710364150027062574008780190073072426116609458516767142942147503869252373955112661648453739587546849439814557319885074751739993771494303739886496935931878193522348968569887135119920273696148485540649114873758456973711370195043354997605369883193948023496461661496139603782828683530878976009746303075122837635960196451485289858195973674384121390643990434592977436237755528659446824459428681727086288437913628936045426283751168476778500557264064248997060854962016953597976633536063767420966533854749887156243003672348766335336183191411977674721807528954689912142374829351590590416129429810987236097641743873435391520649430243302013826839190095510322214238771257719211002075129751231719145412685131284705157507570567354063012864612943013063900989088924397372933790230597503418629341599965023027646138752488773340906952587627376443186485157854448334700821108611387610230750550987530954511441136090569513905487316246918824587484404502357206560474533749472467426398951723172613910577708261984013947170857874513889338030838470575801425788661475838680120698679975172563080545210401752662776803771164799854262420473680459115352659645262267470940112844622979028857228081877761041090635455709381623933909044058819316821099374728384080291213280090783609180519268769459733953755271398448654210191703359851169740584370650798402747846536394945553462978272620032305850789338229411257186571053882669620086833060553549351013102052419169657799736273873504626520200481985844445849276215556849657916721312672218871192247500067663913192601320397274726607083167357543007495005728206639395672703347963459384777631597139394009591193757851624290591538733152220930845885821781346135450409717342114872740007953549800089665069068739242098573296109098162313442912192848434656870650106547938400461167671029244421032370397167845886421880611378942789352647447725359283308682304159717657059833396867422036171696807988112924971304725127780923340484207370583022788914876179823206578763684821979532175687328647947995363066071888893951273785214827226450230762706074699654531923090579107784717425947471687274076715450056140379821966913805615055669526064312593669720739334367532745266606610177072228694869032800433678159864146226552748974782350167721248808625353657428409473614619064466646175598291123337888320843742118149608120333368121284737378052011387139230842844701056983233450217995451793212866835303544751737983479793347910842176708821457610994753601976894210372521239882340499184343108184870601207049129653373275749737608380499048878092850153887626411986218161065896660481354969246996689360620040256759427173058501965312464820793641269953004501921322085433247863763118733518902221347760892594305508510838903792102718203198255280333846865779008440126451237123643763753439843139592545619387994930562069316632092718873176202423906276881754833336278269157320697322831639668870192493885725788898511191653848499682944065848227890166233765117831494251156337877797292549368430446070460623910881404679495403328729735280619405452395790233719376002821857907842552421776888593249068548110086933049699621732500143296098331332511877986571275011592928560293743237858477190074257761420405417605957696430613055579883496625928834078040637008768589901305195092548320599704415620813265695612816524233241018366206887966245899983746076157399396865264263137534533120871051295583465159052713667729569736278923334114055753809818631359810908517110712610833022040379166021993605594558263310144292052246612033216531707508052250045361121483523349357859064883066092884624623414002429481197206870883557648513454635606131066114903522504018763714900680869545295057192257354909585404478785502336530011969746414203044456470824262507885656767525149113551481630064637127753203132865180070331358279759105612276128801940993315049940450610621318619763240760899850602255251553262216460999547886939782683328755602039398897875676411910408641437533895279949427526339406554200175383983736269381389520702239564597402523940674052377516889860243444922272108941803021539163350197929436329753319503860645325425962042434037808730413322869787700645001722432257927816988774293272766497569695047868992616710502066863436710604625517756194681093599971320050787964168175908698859478135253481413207584957971375286059483611278558198418369282531858747028078387216840105013105229531279620176019578614641118344985471820217703538744919736878148405814467877644607410770969469420062014464706728061817513594041345527539818234794863242897700857097873905241662705305719609969114028711997902187411172336169173953622918892688329749793810169856908859056882569920819578738123360355990696635930582950088686339993563824390309471078013596460527317362214208624864083864672496691679435073188736311377713948522762799524701905253710522158346946865223649281131566709363208681613797412622510536981119460451838102927903765246543881635653614231903165736273085666053419043559021440818706995894657845906100987489648245888955102416589822062532559527045114141174696118547405344518305450139981576005177915600568667786680932492647781196327072722705449616032409174482047041115908865411737034442249749262109084351723996723600619437164690781855694001078368413652429416258536279078116930433100512201856471781712601462064864732173037804328392430381935349665884151354202286915259866838721001996529486958240898670665031373467406448348627492513266101503184469789569178483618875253856231190510753615047532246093524866939824846159223163438182670217363301557675386090820331352616807859484120879045917749721242298161151763349212976103178057434979614694720907919246731993953836995736439716147050097220466154002376078881251599174809678459928209540082107106173429231447044712250835063855145594948305646873342842265726922598869921563800141296214645879058214987021502585020262827742935510892479749841453801066147978593414677698827928517637646110446775820839573672178912990155370479176523700378572268381087815185354978873676432085386672679484340356084590330554796373639321085505244222135501171014800130232958877104203420378291781457936238273811798814736697353923679550563783026286735372877065650883775446136424545801799983936102018159638814384742068806378058536076201398378809754492285297849522712699251714395443886017447846880764890798867042537377448781747988992016173732874934325057910070604521694325369802924169914155687596030450684501786865500345048283179686469379320238032698107725079843393304469421570735366735059904359567650982992636840582379604146314724074165479352245941975823605555308597718276344688896804725732966354997090701960049227885195163173578401462870785002580890104419764916753680688227504760592059306135253141681705397314287466293805208986765247949249929863375756932904130820612781883252384312688504818950489330533155844062991710039284872833437195125692657618660799561950423655421404590860225452147961806651929412429573221185767262288543959641314328562687340609213593259437189818056940013892560504437113566281930071049143583953821957042637484864621771511533476154507526062808225183795417444049253048866263271474630561697238098885966819825678729435731897098508697815169431485887513777815812531473833255137518855807148660529638523242862212651058939384631606052428523372433254435575417804142268383577297195986846469544986528581537495979024740799162799719281507271258267046067281620718755875327076518969077192015626653820997007775682693962916312936093236648680178290508024191736564008913408151342030616146833235510198833421530456634569811020588869465597035115622483094043323952132047410404530439560981171041416031581353653259549475991059920742484216306433920810755026627479573918072963296242596045757009293988810343872517810933875715850540519725489330559779073188157443858148633039399365893091607785842908974969382589523252389120988402214302420045530909362023258424890091800518075704446872394243530112992513483945080706999677055332388065520954497952902499477075393916834958084456020585911598879840028900076666450682931636456122324027341285341096566510763037939729383286028287248428167184718181600400371573985694397896146576355597623806053041638382466749336943452349058802232887153142205432818563363057790459090541685745472854705275014981455938885868188959613832133974014835986965412823689980088276621080778224395149766849604494326160167332094543802968571321608504838057166139185448867842703782682606939121290987992696173307331623659948498039927411062717591851162943149410658685769573503920092155612453858566277788205167623342956522172088327790014399724342788583561682121270857240404919188080871521532534201123042048222299669513501156070907422772596126513664693323018964703606272741750728773846948901832528459746643191232685524128156262404080693907221516327889113302388348742435006364060899928837072661887537013908055373457416915414787201830184020703437889684573833771636453243584338470359344200159210133770148614698502053285730596393251019403604060666619704998752797370670089115818214660953941100763559256369544450371292494572294868225068128873507786972802890725080152478506360734638194513853635850683488793958303458352365863032343497383185182881447442821361425504772770683101013447165620254558520736949911150735482216508766577956562460339227806147123020026647518392805588870896222588736569267928738498133062238536620273509874080776783483321139814314018866826208298062733544986708092511379910165000652688746607167812843504474832034739566744786889961702489984487007522701181592893077533578952466795383193318840343221593236080361472073130530757301336644863514954976690048798826942470923260256405699742779857966408830571885649357295186566196259616786912652745874363016478655682534609130055992399611807948244367892325466255744734670998891951626350970958806649087987208859238822947915940081872826776424153930125606351996732210057595835035374278390677118154607471096265271360144585347708091436314106902916327205349444481489639534136345297257723958225987264042370850337954201706650063921093771495884424028833774020285821010583699839810548897131641247267935940168053814685556278251246793993092316265976149492094409365598421434051483774033522007449997680552136259376978374270965680312549944921154010498373077294921344504425279610339763972223196121389800472173928504216510158495320376137606548617098727514563228288244326998878450454825999742063503863053842034312314705743314361218993413265531411297554125987068479491055868426741178014688096891110644808369474514510400289230283148867924532833600205207942393072373023833632829906782135288316358023215333190774552235285535506911664619278428094305640821271819762346436304003905250321896801696542276036890424112105103826684855888707569557722830288078314859849840031186835266973092871765637061928903543792180807880988518911176340048226007469790439508220425218120210032075764555623596000533320653360379609284539985212976689385480010986916188173327788924705884507778765922407601821239117867066593093444097606885550398357916596087085351970368188884279289652323103235878839165837054495849720520544417527759899536215401913735014871581828543513780385395842890341681752772658727010634362914766934074398148810843219414228647151133565558381638677892798666172010611429754085811846445631850718050822169197521897005012317363322562186621473301049563462863450862966500055305995791419650336035052990515844784751328441290666750687408219237699101598136847490642289839850213387034902594535838820865368665937896874465097385127952602629498426405704817876045257093285088167455862477567951504590449705060130223840780559722485872954315071426752964185745198344347162670858708720004184262628998114131238137136488222436161016742903601125480686670371987662007439644942753725224004126516935238607220102633771246573744677166916224581618297368998240194958989866619550403293430404426094802257465160694604849879041150235489342125428791625975308931466634817457591327856908389514829722410549704535555836439219346614053871429221093081824050480836179351665014179755527824402609853487929423107563354515481928109652013025996477733399545078800509442345782251951824304771558271281746559145150397529889348924627676980322662443017232629217356938287667724775447543456577487669351541343386133349678684602616776535658565346268990519739442800450471062483179046959775262573895076856247427060455959850637948727108625413342893065695418679320967479914762049466845521300973039415821083075450736726602758144052510862378860000302462211322719562300494988192785944849957009474593631364746131151373581849345350055630853293223457112897672224323239062347466454906121379078669890133242298558357753010393854898304261545724369552230545167597810617818214040225485173725347177465091730348956426294104621926470451091516899727654670906801208913524056309619035685470172112476563425649307080976151424138730887062730355706079443178167399304062903942586173335640205282388715019451013167070085207428195097875323616092947704373778278200822405887894596186071659145115007993168119931259459680065833291450426615564716544773450708182593008889141626376329956607693136892251932333468545564772440768280155038355970301019694423715394022846150164761066068630087692298303005068939325516050199854029748502235541571214961505449819289602490865611860251598034570119940077571693970995247729737688658582432292679122779785047581718910028712492948454965432835110722710098115459116992745877835657820897609131026911554192874210797571144490925250616012372632856290272839763591259994664725575416118104775196381766887137473604039763002667703805492781947415882396556281661250625665150559994731467305478928875278422028792548372928135770907013918352693614115483141546230338193627373994950648806024105293320610834764557011387163498615879773204524425862318199287843262975221124958998426421075590388169585120218355356115357254403359800431557234807613455778445740685614490102432346573734297363669262028385681706724285741871241312291779058274487223761668173749252091802275173827336755640537252442928379261772897600196736333266044023332308212923853293006347209128233238546173461399907322429094357267769076962243770999732199351681304877034195200568214603118852381880633400284873010256658221345959899632704267895645374998209860844542696083027774929643131032973303382804624096098455323243619308609290135153453173964590063887502252917086125037684045878937533256411853352571737250955506210297188457694501892209933379387563986989522875622650537126374360394742721397085342698904474712026660115815119929504897382887815803206443506096493558963424505261311309278428106127749695714754286691823504847346883663809916158903918177377474119916450052313539593274331951048161308683808694254170281846722626992779304719259319440741979449185085638503204241928431821070150577924247314701407844111981501158304664884356858402050068394364180665287824259652991868141173045591259679960418972591489304813038977133711810509643285438830674731506768355216751554134533355417318963707983898896444112188958974153452801269228864383254966752976460617931678841310201285777779816262376931540649258043963134936302345790362684977187868379861835582901502050833797847042275814337374939756015342664001068358921863951793790659384836039942048128903422888164065584919423879517951893344952426424594611241022078576677462744800671681261411597625321243067232731207073280190256929533411845202743885353818090249939481849411564713792824230693549030157791476710714546053598039600476824277799629866682143851270379158464908525804907371609945844642819247103737404337719690750872311096118773478695997830633169329573257924801549973454952694957177991924394038374458591537324211637573976644080947803000017496130593672287709821310908461366608235719250457702141153855552457212823934281982126011800683807427571604152276291626621974587619951736042606908088793984442224640358920548469458640335470977162958497154341138110752185707796566453818078175365080771645321888389273411549736632117546749282210547351792676389681925191622335515456632501347986160648162768004083704463441832800044470319711202050731824138163926413918949227768379020656623879966287699067001102224950825186233960345915794000584390612732234719252929153718696128952811393084153647432251363798310356956494065855927337585070156812716919414511936307466810177527282550617128375048136737563873841913009948068894158967082240113269689993708186650938548900520462357527696095819488419369752975504911628518451405722033542054111111920557778542938773797802522553379032343685350207933674426358723628892580756720762692191621932829055893329307579128148047194835486763751446055905098692226819811066033816836459470980291049685216598314662169323521151677843440216241223595140037572901194013675682302796980798647342682401494100569507078440418925512401984730222030087098930161480951337377266838857524514222287122895634239314828173806423703624071795746820543222155385371307867260900123856184315222126223382111276573494264248788523719936146662610871142069427647615329209523736748380594542111230632268195475740992000350027449085192831088735720321969559945867040070160654832812500500239015659037426108339272647412197233189379627673540232726127327129144717835802480127525933285751718773233735786152216462589219061962298790831584588243273828213269277405123670979180288731775357324708668563087251667325983919457684341371814845407490152503921468678012996290848467534131759602911842392716538583295336543992649050099517808825636116917326642096625084577741734684142700028945468971079506612958169638889887492053015834501140438089007305410552993065495828700907839508407068930277683577721972318483207997004359719010138458796979797853668871292181212588159370437817782490744570698007052003585340288898063127033279715616779280365958816412451521528063081702620622284766842911708872656566557324919893266734801976887636785937163902346611532177761169924071384222349061805756902935225113026828618285705250005603996134463645162640919133861579509927018386143568898411282036339166408260845506339974601845755479434886636057700636929138064297944465023888080779205647697173403381046350053832079931792708165511930593819392492295506572938241919921895989084496947829273933055045510376033673315139349619553591086266974902001503341391655745608418757349110038994556820510386400498230903353768939955346306192182441812857783604664316222855849327968211490461146622072096086172104324950915758279213581150710341013779383720561750603084384858919087307228345987683021182822189184126103642218139715545518985556380351927079618939428896983541324553293588916504523393018441150784671532693254885202488315069538297634682210710432732435105867924969845913960195359718550124265054742217295938506232222150749535427058125621143022011908006313577132433625414680139184724933231515940154440654593969175571542784567304896823270193758442786257414223500023289644742569519520935427356038306176161813095939918438070072741161235900088109898006466030965917245956137494235987060022365306983340386379686009269197201120339515675752503546512326786148070210368271973543618218208705096686628174502314901943284447671901691906985458268974667521867313046444146448200379929380159445743806320397842310272875866569077863154758266803256243251837661265540187230357853554930987790452737228799764147540640162973290027818289405294871448216313832884578151888101205977956356042658639623313842038247556450516220593925884956301056296496668426332008704697212660246803951946867361246400224523607452146902049667484756060586218753035422281918382095313926885336620037322654144866492484417518910466569314189915506870697036122241258917654458412081531447026250437555298975009555439683978129256859135699673327440106028259577034949503460751423672953875685121291427495063810505343316001713839744841364240329998917714626112601649747172290910651095130412152029320612711469617410915095161629731557154917053169053151386827605685515888055789195784403964667769065902185635236490963175279046742432379619164289836361635844893819130941186912687207530884508273166772080846212198669067230996745251341350321014853034776484547220874062278395577696319995132199727055777657256268559109540971157354826130143682855029024559430833723543983577775325458206014448801573283167314899255872873471599232165257231206275254542765699415053261013230661236598663471790421162096582893740316465365803548490127089004133612383449495267960588840756890486335818586930650242744357084695889681901453145000936950145822567807709668995798563753853437144198650103884570535529687365356593949109456096461509685363555245096283783405383458576586136676502597862834325492227455426672433591735121844176932439050812247999302337811302240364287295019148106203767868804196020361829589674338769465458433338658408712552058387309572311829145509675191686067014549824821303010709820714586474573356813046063753595043122793310252029870512061233029696736239672927384253343667597168845804666866792828228744278122406356604356547686461082362527477658754313660898282844942572923133478558239272613109984377227821225244026257347011009248807815501134692505676050016012557256331423551040649013118102276778470328248330882100204289858089444758795176778867059451695267379851063563512148070398049289591383504214912442937763130729980869066884397368589058508782149720237396481502082780624313079223825978698495327016836320885771695523304764924704946627144972751429170181510604274247724067479258845100964183308466682217275069675165670338038427406650304129774978453455195384441137357246587480618300212941405372328827016594129299109687329172602261957004756317732593525729758549411963474973748505393284480066595637605024735480769370752661105781669706014179173839782675916336119084495354792190449969052317922556026656079270932112509667008267006377689850228645120552098892600404571109502062159927993746905897473861602373278527222184986522288636909355778685133543015256558107624297610808258255783523414026747786476221874716968053806713659812122666697598505440848090668657146032946290590187725119082640571116151333583468405625537055195403291934818536027559203372333981156467110374860393665139046374421153185093450917901887210602282965837742346671472026198874760696405253938554846580322568419824849646633456767445803326875957853330498404530069167315576614499470282300395629575339548826307942559475302526604914765018291627916698575440278662701377383235837284181461178767418308020213180816244054298622208947203677494711379726063029803468562394703026052851651406306592137901351260297776582494195118215288157575908926780490110195199662289116738561513474459747927338741896528219054678857593070461474672486302283850780808251626086392858754260668516997729074508995372014831043559339860851725697572978651142187563283565622767397653516883756606245516298729592268582510224938971478170486581043062814604013001659488061994964461873106666369300991965131867497466913156709377248825198942837620046910526299443975516016210130898296992916769862363575463471546850637847681941477752042546133392785194350991378005173474206901074211801715677845095887227290945595539161467709367365867637898137231419904367893778839045275354523048966767231087336022874062167468047924937401828097092018579563715415909403023874006890382219469292632072904930650316470511861560750743945364152792003157802167531905014702359878929591064375485972596649869495581913061879140718248501731913227059504952088263140709240342687853882642396127596998829247601228113562149388383023304558040623391843457323015535178024545442824356265760158471033270809216773261006778756477605000529682291829927915031939124447438048852392730282058575966117819377791655345613236055888106618292950063523366577829855165748636045059258048518113267403894154611174509160068340963334654666249021122984270120843742138164401068256468049882228441761554906241200016591539831927521717241269103199851781381137923070576702748116823464028905224416470894119398321265856682445482442347768241816855827538775026134854763839231274192822134883028015207993472587230959733412253434493800916965440700595897881668198027254924773083551297281979278419801600170426072930198720828932615499857250262419527603798499632100466085513950196274030575918572182932803513276085510679904464884264316839609214673075733377721161165668265196876873863340813563605809420043830138006522531723472377175456135450177468874669369669410541934188354211840660972643929456657096530655947691162400937662733683209661093782570855033888100014337214023238051600909958801012523476373318901282401938354346707180170549089805079804067166790706060118298526713320946062877084896572783694335855438933038194586368067305032810749224090559377091496894398894071500294954042906345164271569069534465769636153601087943833746212327252885530307568876098908268953756958921396789220807065822851615402570026760720250545641698826767757468296160706074531900710450537372712800336676778161861165329437767942916230939144405793737140934300288726784337777254300928036386755397775483446425648680806065454453148008520142707428880798607824182860058663325649341410755415621596690394687024175981705620550001708178912486969229726111511794791002620823626965854652326149384198330328528902959323404971405211390734066195087825612720056724604255828057711166454632365819662311705071261703081231088090212096093850131125417411141481133691692426697653494208200533603270026984492782684897568391075336615537448584631193149507225114243329113019760525574912415291414049318443294528767865616121831716598426825392826030982379262823349361385070920259652382199456891878459910341840521531771703272294667794207548137638766568130929615841449894563301874600263940041323454973566894962448669788425667790195462198757238848648763689060783180354492661179039680511817926385513192807571302915758152177767832009954010576484353755222280311897409040667817738423497107441694360291311514925055419277135853726361078152268958285330278189936658969744289967020568839302080922976300178683156465317461144699061923523895627714686996551987341758948222506985588080604477445593568593707385761777581131788714891934509226264188623823338951553407612037678382439836851664770718846929189517730593441253719859942067105946749322708775707355701813214956624879392692763935669996631811159497688415162743654290441669130430890343860638396059012058759121556694668864113359260847014779233677915351970787435387518235812703861622410530483298257358395728525706445621766417711118001192527153529116033864711068893128109195520484328846464860613838279017734039485458073469469566327046985071727627662327789568726001288995675597957847224391550923553180726463066579835085046171299147815931224592961572996016043768040691580845947299332771909830619963792743495655154835038624002947243795120395651850912902221964541602496312799294112214540702558052617798568448295068148475507561170308887386136827678867741483852313903741524523855325496177640079071773788618654847539604792595675054570840428934312263064994869357537596556390079262795535676002615710988187447380061526813087720933607310971287311344706915256639110784853872998681482251544255792272505767669804912768455213261297106247360825574414637351380325287455430115686424423967380873043531611762058724103519948097967121485222957272458030620888505777469314107666081944992949310796398149970269160012372202088846069155655874349757208338894964155732482053540339949773130173916903000289683430656389120785455619745194516798207612083403832920183408855991366261007186350064065542122107152120929720566398385830605773788143032474150136097135838591663023163220749468820864003720624701739101684474987059736341709519983167086681666172455514677738400117250791001552401864336479706408851844908197559510578724073450046954802290521594823347736207970383702721560042436890261001989501885710227009429839555462846592850321299795940347002409086619972216284052157467663527042890697569512908767273497459810925167821043121397146353680334752493738970568624295353273800059344232445192249877312179147687760350336650197248632521161219723451605203446959905083920242504194235228012940644612769007078664904759526294050466329421820585113300599369408288765811041071004551871482843367831432454891633956180735015892534540039114926668050802476584687796227287750474552156030206306692927372040101342825464811072030216431125904079621335025073790686677240326283988302309453408928488555060423053462978729396029472186387131715694633989981068155722671834781446818798728601053766455155253365321563325447941273066981994526082823024694475235958871930893900875954955829547881543325922157046664931485790223002376432180018946715927795432739073084939910009696720353028024063842808524934939084735919938589896517750577718462996829081307146182417837622175736646954138001837222371370011669611934858088529407015360805304951753234358815652636300085078358434050565934754500313670209578158922492149382988849901817965722845303588751995976786852233000600080469941765090573358502342410329427528666874011461674223036605274753567388287465767308073693744589187812884383020973318772939302660088319587225706693013437533983303339125780035868007389144756855830324042060495482089149370190255099400929910607358737465445005853560056587777456653750466250773705444089788419466053275780515060367303689318297416649214534344661204713768462763765582467676513176519451287226453992241187580087745208572317343266713598929036077786736011587459666380226829915416202074715577470164616251089598462357111279551598623619855150738215016843930545321556315646713069920889496673603578677363099843819329721682276972411027377970475963091197819185775710729399372899019941122619408391294435960864220176408799731160859987344761354821865112611074351279708228800721749761341327750534445745795680339697487056741528602952139679510415193032372754427900007714652653270447682333834059516400366750601276767566852063808484856447478200413826394332993783635467281656895997520268284803112670297995995101394910904825340075851600767235145287762382103409227192423246301942901090030705334633290168626775478181301744526513267190104157203359577709999374612672292566130000790433260744898428438611899222666113225144516651204590942297512455533258117192226346421093573860333911575278311910181306073624794093962095370412695456022937131882001522686764769202740384817797205329291536704611003946255302881113017414071645209644825626711717556779438933304315493152513090521288358740057115248820701013783754077022296932418138494247275276144067363844202295360526110167735709242568648527216451462916120284796097691223330162498135969610913535497787094677348404324098297216475534068220154852252250237856786198319797748297145897511011667700115431429277499365400597677193588684205643027505104214811192631577986564604350101934441568488266590297314100426945849758481801989928578726173382642301072854601543374794244137989565535513267225204286305783062250774914499266305316279891369155348862063830998113824430317440762211937698883887520717266708765544741803828842102814415309227217947924282319565121890180799332006830487528002737844460058329061749920512075400793194126887410674995833084250769196791098019462845997775706936929405467193448041445221553980817622962646880009552041285447012712617930710601256356178423394415529747060698126329254523240078492337686090232493371273935590565575279982336586099293125781840591341708176750664943529080539737179285801846522878363401323459361541162530930563383120948142269204600604805504994296645195403147763802525663760667372204868339481485619808141992994864118785766790459042809720179726523110384896532141865884161261528820041421018362837560577135087514685139095105334053635153288341385210734998856115008518738893857778160203321979587224438113174854147697372431768866530707917521821837820330058902327267554767773038194830406994165345015355671606980220666677547219760010770634506444404964793264408612581424065112118016085531118686487686743192439654496163975962813836719673331130884867196574879204376656569420258238408871881526118043062080974915396804997455553896767740832336473074064754878679181779867811480865593185309499830896491956376574441888485515133228044005536514065893842784338045280474121313082600938709672689577198355737802424497266753930596904604688631799783935476943706015049328288370292584568171888506768661102403947163403996988725736875483169543213245189547386939943429249784037397084505065978868019241043255923315841514986981543153300235548184518299676637433823395110651685393666210817369529855392481936681447361857983085760178167403703552562997001593144799325162445556245247034713120279843700896094874808154383682920985964434031532423688305823757332006464645828489958708598947581913679364408603106883330250346263327929694411603713637860978814230653898319003309154213005102533125563198690108050006151335261085813934237015820129157220538933047267036705778992833674753517612766631692599059875344018821985605745674342181076454014193448791150371658671011103805747009914000652847645685070571272523481477715972558393783083027194845549328925291430802001295076223648010061669704762942302443928173677537594953539685468912112741521157157390586606903273633451965671489991814101949978948944817671482971112900048686835096721315967464645450164332415216030597761443943543972103803249982856425595218999595787913023479889737837964737528797493141754579008953024893195594407857024161103485185614481820935837387090632912544071211093414329812934435062914932006465753986708375030933791221696904814953459753993147012797340627889777426673291224680921005008463506731084139896164877762912592838038120923380617312853818818662683861652377864163723966377167897845739642100134197429119481669934690352122975557627873747010953058692530492796348693249777941669569540477322197311669349246820735430049959793793476367972478730169659652798273839345658063603123640521759529894806700364135761842675870025902942206031508005414676311070682415976223514898051799360477024228664677057066541663437660905643744799918023741855557566494883574613485463707544817932355300375698445749560334675360348055021038861177508518439357721397818220566166825578883644561220304996747633473629330412393506136360318549070442192933453401325570074373195661512247106466970168953647943557806370064065969898203591840474617922691531378300236803249826437819475569285820816313802191468818228049425536360224380167313980522204795200591577553146558053968786326745064808672632796539184602153944958221447355632419184989516102648258739603329540680385533260787491853712439112397635668856171349486033654597390951927459157835098900981492212157378440919531183138367193908119344192207765350261215319291643033924363726938244534574715260745702974184421463537881005004917261924235708564763799912127178496182474629800687203746772407947400994220565135145540284815773286729492796360309716875126529341035995122463436913631396448676270538629677724660377621380173897320361628941013884158191538799858165637026130340696207529972478324732217534167449712539843882611358905515815908876647944686129029365922125723480779054458445093168108415710007967017693260449484103743070108515048300679788714991648992501723166660973748326997846600466560937894213112712126510531496688925555226770997306020444027148252133177044565088251054089419366711889432009510001214791770716679715042987365909227044116776782139848469870793987627725767937463532496443783745949442010271538211165301214284256419195264522807966870316006397834220485525176369707848137966488871370577393898459008622898148772529669205633107911254498627000185718087424315959480865178134988519267896349788278510875521669022813942779126881516675191281012831077068103094649585767043410792444400412998456579595690284186454650347994650272343125739010154097719177975948578058465833644292725489216790093158789127176933001226747078663646014714338275878222091722261092872763340839053714569757817236404113532376049956595529318390295077531159399218705379735315571708101200244714530900554829452850756440005748475469915725904913635076635430234874234547672683969525285731003781164926989251233040380418341454194499484869388950565447677233032556960417820215298950846414172035172453457943823500346876099653679872355318570559374585182426326529592220757837516744615576127588091325661003550255480491774842906115677580773925811197535728406793711801927560200087996564755640356606035449290385616489802100317057810653005572510273053012278109263403251177656833686169120043804520122387073000550826122064579759152304757823881761395140839636576577517768267332197002448660557687289326216024332922807848564260146626794859339775074422715275362452003422238176665966569559008886928999120356536167939690541123258467516806018938438116441782905433335875934192645032781022346885338483440248290989266966955169078341381479087305484343403222904813382788804189764480168125809121860196302130003934355279701206023317231690345813111812487952244651010021270515136356360794957106375358795170618166796997744341372318657817143623163646555712164764914752977744801646630999904605433883482974461946635208897831644964251452894049690144152025978968650364914803270757168801905619819248937308178973645748769527963022669554234113335368478930659927050564836166930860429194483688446921782865628721926338605897589272710848908358948502389690634131256472106503318684820049924606726584594169858864468107087509450662011813894730987642885897367713455404375997849193067744025479749306076596695188160486292087446161810588172897999988723693412290246895617253581807809563959584730726626454360963829548201298112613342708981423957817545123948297935113129948604575247951871001963138585205545010880414034289791303514085543612533488177117399928084742858858935109353320795119261860615222023165746994239478652558334509840017184593604967931305512615259209090117782095654086355925378292276818782153917153526344234257752502035791479992905776114834486160931985143712649500771768536078574163411570550796919571486361555599082066911384636997300797946207872771346193687735540194440538452013072973306975676732016046187221863689775399416939386727924469634389028659596115614715593780267550820745022340390788863379744747802414628711985084948394925318852854294601281800270634238985881804960026951645322667622631567272050937502857061041577243471771595604379464845946485833705161291977657992659586106425018363233588304685338324330929751520233252371889716196976288937131162115525226004674765363928029106104556593787911252151209639644069729446716702103139144183886313426720637588863940220660181034270346451134992944095809529087991701031463555958284149488483828045665261844820035501204565197169244450699252900315276945433336029683675520278193256071803438597283772812153475404471356745078736767137493384520905507297436041869841916088327434372247323121808324744239098864973127384925103307675641543541281361336871512607501082342390159853160452771197472482467346797569911760427330823324516199221324491455957143979001335839142978197070658927451479383469966497616769996611604500047572394742595709488145925690571573689434469226482314772946534432021955801565382116321125421351815214566138694039565990599112114647443768584333499551834531222749846805376729490776209436642415154276142125729944168501181156048536126674214635048620402664667262700557650022277214383278538461934832158037117377155340471204042423910009086112455169199218509070460466505370117523074320199979642750850410826677372988828803445854840257530905205487653206080430471097327299543948207360850960677806536316509618068535371772901185060329429724962978548905125306640481435674420929558173532869248824977136727669318938729214791436521122348262622184778587850283058135650662532532408456614016895971255275866111491124786415348645446076146788183841489577031102621526409079692368843659622368225984156534195631610993414414025733241711338542897566980704190182760095907462965416888615771558822965979709098668884668490657858488765097609997664042498160768929743848373666322518285153586893015079705833388724462689288062436830166659030071253302500463942304664183154881053163041729968378559784337219437310952208254814509819973918241269866544353824524296478638371189632492930582074540809762427455036450051022285690061396052007212219475286778335304579203138956655316442694140739100401581384008614738899413450134907083632370743370156090256366504294711811948304697446903160925531524376773422273376400246182383090995883937405445279848120779284459697459637968821632338796041004312490618323954414667852491672311251870618227977953752138756138675740699500455901165831222962764479408633106429054320105565957633485549782308788707176482558947518193477553884275542035355652368499641122650195166367098816934213929656138432218692430190729422132268360310481964937831853057321408694762362957312327256353020321961544006106100478540650314963319098309289190072018289488110440662682109652320173091887761982140713664828377458169487341165684113220573826966797414515726295876532543767386764156513335211646216224886305540951658572947368207330077853664356673873056342399162369521408577154970335024251457910152033418657969243077256465306071908026285498559450730548479703324722028682744395796796087331700748918788127925803296921313235964005548720080412742984769542709588551784476298976968840644826889743003177660058071421471969131793472220929035118276420467063805164677190315959680645258107803911340525841786344795184740146903050904418208447656599206146542779159377060388804536696397836881557148864153811074184143570783910895544987896165076877432767727809462365462326419567636033246037919755105775707917772348935832501292947838359715731181797643619843967274251866379269001515365722905322072933905377297046064774718925546506552023810907211889587982083701048055595524322100827654584595511977685606173266282659269149930515753371504797728697556731182403068506770886925169427873836408343102834825595805137523303528153991857863853805550183348804479922690721655046542241944763896690576022634266793792443744501072660037081352425115979051035589828178138377566326294703862425610544129811521480691976995386343656096766363645323514155559364097610393264965158175181107296319959485330295424791027600069684835933468602857911557850773820722848069817056111819018660504678089184910315181201640177677711531615224516597320048885021506076637765203901103927186694860497993140077131515582275370160164381347395511998633870100562310573641509360765361842387824323945207357317648608475936705258363764184453778529425996532970768263442965482211375292000139508486913991494327781021218720495529872986224663645454733171069639013162198517117754028565477106489762037583110919520632333711009709282261536592010170056290717145459117988776483232149299514579661993529220966636902147941855134424515918445554322623954483323837755676788691996042241935021663163486034665317223348990732632085740372931393798671208935910138808446402158919744893917640749461388926141378672488373912655354237057141821962183592525560637816150669025609480401472119399215754941902835136445413207800736170093032386585255424817265038393617458045883216023853478166574242895364372779256691083055089809277422717123472526460952259861693916674673443107167798282787506925820521147163140940097016635672921111165824047596928705964104383828906427727305958551049177286325342701683987384028678148349381452182956492322860271887782008050952983645254617294889355422680030560790744549035611617019578274899428168534077923534649994873261385321746794401778891714958850910478739403590364644164518254311429550315296259816847557310781086560631119833491218408833106361694138851910516870894686254497124303115213125595740959316830562128504728564296316838189187203392069248957064157631514139891481960971452261125402117179896682200275089119622129241323700404745786359379224345418674502398857033925762634571805717376207406393918452786308377955257392630006730785028431074453412641803692150023669908398883777289593125847174867102819629385615528282846501768136912814771538720814676208548259093498189059403800499449525196395980457676415878661189943340391822430036076718227545878020439709298769824310228301566038802636131155688873858362830889058863299495281044278837659663719014178721575523956714184841065231369756462993500229995460028669467610183643234918179481870390594330122329452495404384189246212812249730281676646704847897825942482465337828593665494319214504562251567910672377549329379704957724406045887757850970843509128059671026816731741199645034218250541027748526344354202107214187749478664094633254834712034357504702284827361770753732272624893478566399392533161018740279229514176907376738516563001623709655428217632757064543869654069466358937159027787721195528709824038891561220329423802445406882279568249623348018538796258005110920003245067527184757132009304138595814931313263028375673904116125770753631425011317700324284644859777017249724685294517875278068216759255228899027593630160031922975687574133489200428603343363430211123316986604116322036536849911465669408508122112278447857042401634436258711168719111923887142193714568389613875330788982641498027331017815162743428713818229692281300021550355226142386781881576720427639387086196072720575798991772421082385186612764222864001687369824776593249646844971054685885844816914867232998253159439531928520077499846186688317466765762757188712997761080899384799204144879780816414550307455836086953452365301583288287774307932956974330924363995626993327423613165752263095680146137188387139091366414905052403197997650173287780008368474722877729283162451287441333940019949864644827964693091788297592387219511116324111227824092133037506010919778536060885170887558711802271008715091333986224965069212686899192413281792191867963735372133256587942773242272965148763215083960466319877480953713738002010250879553125862206311982096776888174983245091707020760859396924525322633051932895862505117234430213091557189724215452755547424802782827303943133210837298478000069352091494596688322544733888369751565693022944001771873913488613586781154660532685340019813792520237879588538127379857443491478769974397165973122060503790874415476270283534995230742014210690541688209137144821356675407524525775085211278279816172819387058525927515207507023337819857182179849374562056250853538976555985617452889298319870533700660991041386108389962875344957104262882358262473151028081897799852353506873257299017753783622402342393225192197839580016824690896314311866329887272119691385128987451545976907772235419272632146713785221715871331573642898422373722608112723906444478374105372959205289908917102584053140967488106172649935331420480851333954608401609873047121272618872469428325486305899566115306613452295568820602915584736350414330794712361358706678020656824989231352559402736929390635217550916213576493807131453442220040314602730691993292040699444542470829759528774780870784423423190447446015590746274816679966555608895932217911946998078661126532176484199173119494822088696223553402525850145729334820232243499381469948119390493139516468192256379068508357798675588584546297354841638542339737272222665010214977841270061446222256706336207271029183933632150543138949792698718165194738542814264950412372015327564977966612994429848337907421312535014430600631843795612656338122109261441889704821252820807439583529759361922399502014976696233452674050010410855267364249274653624272105140657820510618160177126454729244314389392902363199311749755978843050888616913476809523143450932904111678393642177202325661560772327562729025090620973419782977243535271153837416673995451920367793667460899801339132756429100071163781874900963515938521941797975865945650586678253134740210791466002410460303660088646895402810964311330497941835356698613959785577478926013665840653414010545927795376752967340160551437683803644267999906166836122810860360486742025561897433993990041136255661265308475295903672352345396948311466820998778142219364664424753318122512897115749831657924214136793249457679126828586568461484328514581399691521133779142391289651481484267230404141293723815331517672523342686879163181045978096478932756015094769345016629442926871336912112356680564533141713275047728130906332013377855346317610828348739381710373211627335009065384723214163198885897821703116027629235105865314140782344180831353956700395337270384190782431449147338955922178440601975305037592073647396092894587710187645313287906899083608622891644104133697471782635214289247592573180896672767317239755875539122005387741890107833086099531360311651742602661045529145585647268011641486582503362215180611526402020313651624982270641249831566041856061111102513327484343913221070794537268012667526064842639229538959685393812288319809261187074592330539976320190473606935338193954747986422784408814145162619207996497056842244895169937519105591266748454784712498105800878461113036234253346711746065771633481508632569188627431721090201674489291699527879865042042541311715784041321388614073193510231400462369308117357585130479937340913971290164588409598499811236852112450932642786987106714723133764146136733392834157725834755033219916471419596421686409333242224086621233377674663895992372847311146081110249641015158425245300860327788264547815006533760910351863063148316782796869166188755306305263792618245501445489362088648324635033503280966399458871595966733850764392882782472406410570758968054946950319718668122236282305444199353173498882872207350607987686148195887506809824508946366847057965819045906481809350581678088634953040355778463131354489255064473898401824348404856979948670298845950912467182060131166289649216420397555798897683552712305721076744186911432750913691189099774938959137335356728855819363356107258708501697802791665391263004447360917888688969788353846879918708996391122617097704310427880226392791551345201976856541219879568852796844604109547151347818619399256611204296463960787447494826862903176597458089694475342962724538772513864068681421323972001705653556445060194051274187210503395143408763875772662560920953943116488313895822834960173608813513618677383051711668248419988761798972350737635851378890401005148802141858517193827067675564366423705524551130352218572315601440770322556335148463117478375209406632430579257504743225545013912908811012967375005296459279656945690791571337821688454220587323419971282921869496696778537381116974783240669317994155611293095463903142954848419356675679580013414035663136585861713736181526361464808830622147355702073792909739403889814385522421267058840557646421217375101107835634082705584246490991177693968746014929589970911849196967101046202722328583714156052218111772278175305593647510648108762302922889830258135654922467681781335905086726466853533553143174986783797252413984472438191981479039163661786002814459569378972371525975710340061555882149009541333293972670595915861575649995934362977547397222509584422202375788550901530304511956362741511101765423366228966570177928509534267698049888000643857602729370429964010907885097728467935365123171334794502764463849019949602747680280608780313517707940574594016610340433319680155979117764836341737683247015329110453239315629117591002527538478072443109193512629583455138993208979845806700124146989138982119782884509016557849684207812308202868580825074726113524284455463867597304772002198139439996420334668225815886472587244422064868428306614944342416746107014302379504212004394012302255818376279197497415292207455977028978437915312268940749060119368323433061471490078347711968578542069876552333154945707987545851514007253418449962169787368892261583069106743979041419782491223772252264541751512337498949194134775754731072705881955759278039631539995510175870269388244346713775553926284189229869539952804717196699953208313145984793464716279438460638339021717357241005717018669462552704991422975423969795132904916862274137718724704368783044351867206417370468941470871161168321415026258600638215088142837737317407211511079243840042542875938823154321962158306917833543215659838646054051063965026595232164093091184661816369222945901887024354584269458359860689658564746371048236585495417224402744642179400269280238200155729572789680070150336713043827784245564488165088497618890945141516468028554940153495949138490678864093280875424249407590790639645813121955326568390915824710087585582728782326226419361140372633852652203316168671005013958839075225569948507123444987284174824196287291840042304205290303146266548056353279186896577330862100894136280292389825583798151261972343689842875021128244112107100930962836419729698231075503477959894681326220560832870825862854584355005927240881835474406312659887984486628954502506885046130944753462670106192017819753228233574009769064776575409257920503023174179363619045279199353763891610317859768327316093481840569173379691340935686436491753942849530409543433161537843369372483446650866951629473568670610514605541899419246386912358187917820302498556529714730264016156603918556058795125015139570968375979816076526937142684151761008939713875830932232868844059112236210998600394158413998443389328535601061308845579817177677082561833445392636167779375816341258975777652132620237884285449665798930370553285670876162781134806261493638485379179196316574163219610637169632824245164709313091173138904038831104790078743010985341221519009150807740600165614714705805390402987915024315674231469806099643915274581433883796369554006680325615602155888021020651866081756843923997044893633946335330679557052715296167251512707912135177095223383680258123795187165577768367811635089699710233012753464850287834481090204503429667098025684252269031464201847053025243344324246530768702983326746788622127962302867041425465548554835095366460636983932200144226530903931597764447722364802630183588589031142474141361597530471325373715607019196347583047927973249503562932934108835353375711894579277139046486469766864002384999199737826631903273291990612985445890233610904016383019984394719936736457831871586710143082142723281659269100230096207272130565816626703316326120671987872167498817023624672585826716045843231796382941511045997281600080713758527600402190666701650114186240660074268202216206461176438639088181939791312976558178175527842475068042070085105763143299518906830650959378813764628907342214877712126367343799732905163856315625352885045363144108172279485587488962720684707145696012991324544622388543144164468549760751677109565404293899198291559406016535394134142718425320973143144418722661908477057120060542585020748652565598994830019532740299843752889486182568919828526305290829410619942105180043994334555297249010746311756568793014078962409178566106733286045515160531378028246281691773244752789755389563842138399064373594309976237339920433964360922495673394144742607100177464255281819228342114345679181703033176951229795702040688944033921850606675576451146905322763822221030533994015272564796107020921331057685564299300816411263990473021681549709666762645253012932508971427193254595770346213743317432111995932359499973139643722514608826194295710740230860997426009716491175133621369884557109944414176954889571724769177973003053182476826990618621500995114458236425463862017439818371452203242338922847695113610548862844408089379067075281898723444825642849641298178099043573451897612592354719329840961922096434117456522614108947961256143202100729166970079853371811445283641769450569828231581266215917908214670626535776462777744595342550971665502101368919430095000303277056851115645048259441342835976387449463195722305623253743484234068997105722786980406607828879315714992925769724642980316298683383280182433408276816978172354093556427285557839168516320787930467332792608450399986963171264010981388680495473904067071507215576855629044018595716357550711189255763125905113611516440160897812891091224490678809642368942416687750296316304618824965543958734898480662768944475130329100663817895623891294708716217264904242582234768727865062076329511571777926446206966601510417937841223908751566427027536370115877241126895584349088286924696908847309879690169860031484615665197224411955595029402363653426694759900523673447325684249738817519135391312656942315209650751874687072389649599104833801183515456576768311694798462042330007042437007045542756907280760298231079860037230675955430894322540321421969104070158237821925612573021886577111250842548951766941124812198699790121734421123537065648904947085372344248191825849608426944322647270914734447700994380448693142348782051421474564917959040711726070060054667393339885986341406929720733208758284872343861908015013850743629913316818996183585281370469840458922267589692594690222813720472547980474097815609745303460639925472003569973387245505154675378070799018134190313342338882195992968487518884445274659923068789109384812847084848292550256381679573816224500380837504120681112070636052060532924254896869478943943410607482021040495299227621006935228927185372490761755486692923477796696639033533740475674532931477780263506119869641707951580109659350961033152202335894844115559579577900733614711669216610535630566949543797455254621060470876504677731516883328249091734496599658789370071961631525781993347430666187811589115888592530735485193286946026818241597049350176102651233118881423094564597630196151719970161308931268558863287743620148385253655299429998829102365454004513574740247835100568637091216788641330000025200982826733763142340481451937814855174439254985497137771942568556541806342091703391927433566496778183990971096905308612030168421349573864890831284811301767122357991176335487029957503349398386377046001072744698638568050638491860472622620291131642165197226768210514101033590857373486251958715305268439709026787653240443612774085954114760742731722006427259464935157540479740170309929244678930922822519120442206073883059634981893456953133608109801240790582958529621229300721976392671501932185247060083196471797545408514107883166243501355047028865337145508510575128960829795215550185284827560231217823935354804692481524830079919341323018663716193654738993494870057215200777078855670821602062186987043014809477586530782132545228751080173757471087702888390685933767241629931738471999535529822034811740735203682011956926452013023363164226178385781568729197261815661548887917767057752587505757051564615589153880694188577032859827852144754214637864239962039823735227023931849858322982036292869769777721749631178128789005953593849924841667176671308767803877267124304029912749173499436548499087543938134051526482732177467298303266826205105707466055271350072345444874446904465141408163841607234898859492098747676306958588343911906324275027566309153238264143304686654595590579342820063681892253283867118064271007276777156568707516391864320763882763495085680373584075538038402911296038281905376623355526362032731317219430578141063574733641060562351159505741879728870481473281546598459963084915661774585403278466699939623344594835918856626563410459476670138005533779110423448077836887115185269933178599131217897541259314640522073541714293252454549710482344550236932153814327881600632226132370847760449993054711456127974652540083936675564600303074502162291344107635660696827141550154606982382845971151012204172722746152322262375664729888875242591463799826395047499403873138537461863616151999798080435915204086906017349420539778866363167127774568489671919453402830772345393701263499254946841450335870450839071634544616344546697975560891142502204438204603526740774126772185267702535634355885640018173752078928219946200063285426792803763733581943063091131710827453449808068483584644169339718699505586208006389472072434502378031625167240011114250249783812764403442640214758995526012398015126297268523824576170740571890106535094400756076575408932590308390538756015226644316131057413497897431217476593921925296216870706827367863602249316198966777902475787508271282322205434959818677045041260629750379955547018478196278232569825500636219466657949421398837733289550521378361117501456797836311154078185194126724831632953127464394880113042152024362500998002441986697822208349781536908214430765349792759993489270002597493422989964199245354936322408442428624843753017786072283325466908936847733676345438910543254863961781488722807069796766565888245887709340218920241977335737647772117040197226189146440154627644813288960811840326656382354264931246021046569904177357835694054605041258549900739061896183746019465291307269648504779296470009075724440685396189886092577588211764408661595337932239802332525465015371660739896556659063070021227523225370829008903026599899170339600495118933530153800637137072302562501611171504758903036278008733019073139476297775045158823725650522319194465831932226489733177443924988361847921830098822138801424372517351023427194876020456857052879962051389823674791429515575985982268670670521313244233248384235042127662220562260466335373573768430677446687822245988771097059669311700763162570791183081443032851642381141814569596384833615242697767330525694710403144584330838798138793504828144065491293501575263961182156036366300064751745114766509772866963877610126913271287192501291459147743381007782561961293731290826891732008818180943471814988732125708235575550716059655398423550355802480396194574600659689749415127974388823266217987047551072226043072093125331672061631265923210111122117069451788354053364906027726478420192827754068484115280338691546251209591189378043746175227419064744097206118399540686972357471109045361164784158828401839036931251532599931301716478018082458072685540886551206262361728167025577197601805506019651618262554868335489726049196554411562042560757330003794795455403761828757620408737841938464220656098443521221455234011779276669953015865665137773314937619670914981566817447455149943580083445963783784075093843327572806401182161955283298885316049487135577832108638555561967448998584995058593603271875219273466850012881278933715310268939576790284165319614031360751221921261194259031156885205047776779082143542692957327116179260207959901729520563333881679339702774327975141462389122519754248261210184621001905612646770153475341582637568462036019370156865523485144953340626061098030853564916414308144125513440659573427766536988248209468405113459039407151042125113871136115586083721488590993294847852088702183722078674570681384663285650037180898245711904241164184252272205158481172166708387359056463264191949971208219990339068117721927038260828628310248126815226064619712522066890171183245004947801561723760303204996594099070982391619170499443931988592845223488385257791682897826181237433976815363817845025050693414309065670748774135190702858470127788616439114716783384260344543085749024314017291270728000039634186356304725324753040271886472470099028039640661378191203332171388442163533636253290993706213145833052601880669746345963556689658801387043619627238542469100387305356662391369935593308312496259942406774297888895513280085108378980083278226559727300232752595648989220937616411240267003836982732882406730522075626510805863113925528106965126621053984887422246080013773111900485642338805780363929288391896341052050536157866190220296446545119716755885083774665085370789468985012276006250729837911152679384773772990010557940938924198659317489639028651621326992126492597230265055197392141896135347562565029836203729622399936806142674291454484942237045588674199144288576557605928916303146141350811800867299077046434197410184779664352364142425080720496527230671439026771965254565099935990142023566022559704341867341448234218868668113214549829345419550745936495687955468820470461806845589617392128853110328858169615032640130359335443874762910778965300762612512654589454407607630103932704178225052262086584942519664939074568323943996407330949579375762773086333131632311904273993578581191726344122929196835075665413350735448774515217246917018550892562013091863605567679690026377172570382494952085790785206794670752451523947037445650310929425130134547176246399567547608098159843992887900904535741053899359772770628694014098659147835970504881513244061388787974046333066333384405363307847739144374251426829114781944201047153613332878385619338707180598148024119530584398047115960564904910357464186792555484891636555551110956096581776430938690188563030364270374541643235390630663424220715269374087288579430264153476834951863298622784290579415989149957501450748141012639844508796490768436473109665830875013437382512341621843757240781726195392332224821229042956215223164107315059260181953999690530924167396454937290606480218865235243452269711256104188576787338737015765039846949177542763763552605796248495530093610557521473200411141563908360168834289690991802501829345915744797018479756349913901768698363133951485356453833632305720069805305408514757511123851841184558511369455586369451757525762557146835789790252509566840595628324714601599602759708998908682721148590971382580763087521033209605499258704708709338139238278671681546924379186156918661697166165891502373752925430316698297315651750325960354000002893822072722811091692941334147427350502194416630914499246692726543079384452986169926428151653970639143665288550766103512271525033275132170066887823242129038839722663154975992535339687372193137381327262514163261165097343072312925580260133461428035011965444601418193104541189970257237836278005692349980281230158053717118175116448710430937418859346253905662582045104909664721898364883649582308568497633724961174657004672030982242406111654997601038509808783995851466300332475100940473475286247425011079364933511799820027029932745624480193322387350290362243187525018629236170227650967174046104436318166619188409658066461682921977945953829287845354441253286424229684112652080669765679515881174675240240896907210961583257891376004466363130241540051610308775332930072790495471492614978424219437118312803008474654337763306127666568711925252619548047861652999625032851836197080431515244456228947208916222187370615567645607315581157613903882573393340780443653020786986268618873734637057456516752757091415923605041676012952476213091914752062159384972631575241166592479332576149820856974036844998942878275499355997047085410721504006611644451968164304947522161506648935195380441731521253619198843375249042654349924670902474287774507756480327094725270034067062910111393393656501374671244696896469008331910269781229499606483350976286523517401725983455744800609072292681276691116084040151787264918734574413623716049397263744306627684136734033000844259031926873381485106496601094031246106366495532583680002082933164049133287120039778223610250662296225423947724861043472889544162131731641473322023438291672031007545276322638212753852381095519532080076238891395265983537336951655674399321019060808679728127081095285573275194333217266837485971105801371883100076419549316720488340058010089402287942558781533372326382191335636956260313199471177668784331401954661182797379121355637889056700430037997514551662112785917826138280064407196556266247974377643642051058678940748059965081892510984504547446018806767502895449620973784635135198690653154014431371079604533487687634038652846810044660854747961880689507150966122243928599698724833113185201166074503778743900368100392161584902658337260977485953842123058135693084605850478456191364975630575700157857589913016842305885259486079585138348401403266913483184915727788721818278233321729375479443638827511714091697979249410075898739191116861632293935449890656475597797589151129856986879257844911089925942962616056565253906526688580733571107328902284682560624820771214714050715562483078335792740742927186861852307320044568270781659009807259800221266911355986073954261957932298593398916757148620498643621460137032366695466299503331623937334716265925660347201901597100682641233904289131754638109698636318946128589922321295425858173191732924216561171513975152526295424956721803726327735141166525723460720806189423959927765792131279377798868236297720900934683815251596695835752941068457567259299220256770765329124793874685861287246234824547125792901124263208178479397345598100895377679487081343996869265307405033260674926512720397471267520145795926214687282141746466182606699015913118487356365451382449192261576873544062587901825741657487228759621891828658306909459341222413171159816222721589848837889357228984869788277449594372505265697501395865309773602252822512161088234551039145819449669235980840336343510061861176234060544548347489579597114886290270303795102563481655395559357626449886314098775874262357420078153058217140203757425719143986374302357050593838970472733104692586189168037801823264006652122399533435530960955247274408764901934347827133396919426754383071825435862571279556581666777484438480058020278956009090687959755023378818354172126187077738608816099650581157121846870430857061830728983133557721479460149669017781421742681735011666614735607997296060947604143706581374548875436675163095027951797836564584152814557632698883987061550762867692607008823260916823032075006447300662235840801371709533631827201477118648724367894037911160128620007356891110189915772730138153321127682697855754699539482510470424510825801553755899260569437111524321684910321560290758743740325349448775180094260583946861654971639874145468669174277618613994841710006618630263648549238251356213314390567951765623439188858902738609996724202986872949331053295286975014816623328441246110997168792249426653032527447551014724516154176720727004259543619743081987451417858846573197363142373841697908580009628423670982172538762936306901012449338207918185216394981326172387432599121703759903188333655315425121679814624237956303499743608907930511562434206404661732580583153103848432124998560706920031972587229231267863866005411465790183666308279781496134856790184181415911897943371918102415545249966154475850806879306507137185927970217802394015021897223406610213111889771548217625889001684239568137679437117009549182495176947286476576529295302578358145107663251454054026238012324735858139526092740776716664580449999888815266453202226362856411311212560628274354084249656868856719657488235295796889253199894927398482004071186666543793190019937659842245703563330968619929668569699539890520468064832959590505069409152669565010313626515247933741164775543665013796196837228252671141506516125463142603609005298203373500835669329569736842482422716637034407068649496847772569699516968758240018967906874059364504855954491244608561060946788219766269951847314241146939727622788189457889194077254030209900974863347319578671401922468187875479512870622844042459384952167768308511191426018599433969502476593529575368167491469117779043196271533157647268309832975772760269361883267655827908107516024732097104720965567383678050865922405036459625672058158752677389418347194450594316905514571249213790716279450412456468463037396981807940435801624714197234675279191564798103168356127181801419049577379776102935203703346113798842793060703199285524788463283133704354009345664792447651656242885179893014919001504145020966652459493823292627539581270119037815325108549047024795353221420248619745919352838962597801659570062173868903267560376844216793848985511003389401438452048921931115017384067233876805385969367015485333025723430221112071645954305356744048911287731145291151788343211578602801695205619721608406264865151210396000678222050249139158558714407397182454362474720086588058786344420853693701787569883913675848496016181057233780525356423956717607256093724274163093621196754329196621143068248499750541297038779233234520837428531684671644372464601507732461220380287278019821398374079192063726984410738719566669355997763269815797729997130109623631399160033612255225367009304307342588209083631277678335219063043460265517812451032489809087232580533875228612343106614926479212452740604474928898901491622245941199894508894288222792140660286700721042955778045465876091029794723218457810491859828592287555150107005667244880435581673102980748652285173435963160589715728102946067390774751836621921280168335567000680412981775034247780096599943315944524031384145799831672463776118267925445345034486302557791425515452386073374667121421018119039019598562718680737416602458546392679592895217330773673967557719725442214558050082533162887254663405860625675425253545192902166411954310907309680241900885166547147215312577176304258223511015778024795335073723942839836089482329713479483191094397352311214148334046771494734369535344666079937195504921940623130586266471969477967434787504687383083003878447515222362033296151696950852962951809261816945888034339144236586311584588313904282897299546455361851647843483916567542842182436228490020929382058910865349121843556396743465523715998362161491788008791983088773334811282198441801184996493948550615731539600217231065359210090427567458676868618774006915979652703943485030849854320553625248378472510025418882672523114807606949274374175393575054792653637415699724134885184720885421101438066276005503451380457103319431843683316683591504282389547326474525541715103187762055728040394078553413953223381246284529469271970433760290465203228525386037457519679446999358391784527825015967790449472860335364046028724642378622839631733818988225064360200286390371904656617182910152220006881260515661429364830669381130304068899786799311052862591922890485340529483646135787967255467275869800039189067570128403885620202979195994506729733659157886011767132859735416959193752445951777474161806021494288333331484691052885943302588613172271955702097796080239510930146514608570344810076015127693471113770033743998809080617469832200034532110785739204665182605494283761837086290061493617689035428498829650713207475800354891653257367151654398104127901819867084562268179170094455643386737811866796749039939700598783329959720475314649416686318331612307073071754570084650076578427278200608866157260566355007669529806723833922309278039090506452523466831118758201274132859873959459287029173604641963543425331981460762179647995583809390313819070090187612074344065866072818381005828449768073293723540595549156874588594195199765810855811044175784027246424597672811077889105571411396358763191483453009005327749590959960026795634972762866456653294121020148993675480732984693411093102351891360501946452739824390083796080576936915559320623232519295477883679299402787302341855249333782172321410914485566325786358342130197802914565603956438264998193043622520484760191300751734853530153822486707215601979811975773339910256339246730790129919670227765701483766060649699405700082995417264497641849119052372406892637320397694074452989321183547154187183788628218154966586949978941259663246014380841641299730073333715143939629884926241668352606922524132298793379773959542182116983439581011832718215444929342569880183073568101540744640038974744902136595073343391713142525671657093911165082732509491808482425402284756731503286318805872074764897305331350099649368275870904297267936595653986654564638116360713983832662681668701138075526366634789553294863187861302709829381521006794716090596607574214697166575196829695171855451631011729065470377212289246432126999361184629433962641384291899589035211165278016358185255998490433813496857031449720493689289424523055407120703581686357417281163755161268744297727539473994424819594425504814593977134953809743932265673435116365676588297773852143058193822648125290875749597892932403433282912006736655971586114546987890151712495532686963431250342685329756341360888816288326971573115526732904901885902638229686380766961438997929740963334607066091333337392351101122781555624812189035947231216820659980903600210454564044318376591065732646237248274838507373275575855525678233018242082933107779537829839926465469905183662280988140445319282905356260418650265041172640054940597151110682641082738673275110250977967538087585489737248812520758236031588977583965983284222703270469752222642885169629052593602797127512136249267505582280640425536452497459970386058767004542306040668713771993251529224090773991209623731910239692400037321878274207980392839215522780074190016618353616716930460693014744456289737137238744645853667720992042948630265215062020754683278020214405230074778661295990109222618299330329059228164627786890829909142185958209374542675556913505123465427270212983588381657652327523475781238764654054402021183715749269355678070006059221449266839949170258648379080714652391055994067207210158970085151119089346254456470153728939924391189794554258440702152952474106664975727794895071184362222883991372492299626212108705483286868710954016033640902564145241651961582202577861308550030579066044210839731870467813553612128835921991484153615941185109664187103936457634043542414114845551536386642835190561537447151839745615186653483922797884674215074963162972540138121011858406483219753749884571336158838227489081537665229007618465527528977791039759751810021907686598998380305994658422953952306772190583767833381999491933977511410055400465890120757543003223248243441859405222332411387797677197020026778494814342716051282531230892465455594375551534531154634466106204749389725544392499062113797985070594898201580825611841898915771123338899704867011966732694622025896925874122975418319595838434168602329832816856425772862824770036107054267342768493362694187542305843712790137119370230450872905756280402471028352780606285846238522544246988280842025295769412396458579819039602812688969029739829306592599491527228890471930597694508700170498569839444273316348659608657676618240093107689632922738718406865629740059229286172704156163356546584138075979903961580493889416349300954359574937720644455900218675950110260288207708599133993897532315042119559558276151282161262226980879473281591017948453305074845025040634534549926071932057839344597742338918172133255282053543220277071927053051149792167248570476271516940837621739340177191441774307587537995241211000514568980472084150082983219916126867506292217755401005941492617842017387470167420656763300490287299458175606769175244085042114151210180058054265221436248654240330775058346770803578181998223729452749666569522040195031006646406360247754744674255628638657674066792345541998277129364761886204140990655096946727632519708583334276158137481585197113066462805650871517250257026807033739402271878463909161558944775116486167865279308111277330568637477029089577003567305097446778536915410013637911759153055376462614749971446070923650214724465669561576101399111256166120367588045952397124445893145885589449936256079718243107473689328381149680946376684270166555949709075458845641866703299270417975976543575998102038438244662290285018259068161015618441913081567486621347076328946214678626748679382969283770313110622530590019401253110722217430797809311485315262904776316458754902775071646442521605239064669708276131055321191831751207478660864409637140803745975134823457820017616090876606599764503262977330615598415294862983265864528339710876614437750188164463849051727137183648863978030015203467870730131683567935500917499421782353936863436673350587163566249265518950101277814174183266797509240285204527220551548518156768118551255669904393351426561856238058149025625524543184188868912240002425578960418739059260235366211362321286755852354307482948992499894882794710746311658204072986488841381838949790152160291737042104707711395018288027309716180235240869442392435825017409982947927851497634522521576335785064456052228270302696671671808726730104007875849644182178222983570569700122247698546390573915730711293663005750187287549634524208957310982075519853017744771658877545663608409097909992004057667996232297950520245569917931336149648258397065175797599248677607060011321429071490649173071134981013152637427584937268604336554212604477099509452817703795558716566358317876490766381181525632518181909674764063659906553367535714625823865302387592346449043891942137563332135461292447664176154636236457900059827439086433703815128991879247260904665393086691871812894257768426958505802487597793499550358647981714358702041442805947129701081687407660380789164960686052335631698269306656470222833887667647463684170721537598651657444604004017342854447447442649322926362827472344210438319053975378206870996811200141572281834511494349102714364242353695454836315835754686955172644109529687569022197045615141453581159627147589935564764695889689785062953879551624378441097244289663902160171791420529910220662030517502012253887891093499408935072102991426239016133170297783914548057111509282556203253483857386023756010240049030629804901894124423931054726176484607035668580915484640194486151310473820908753355888151187715493573795122636538887953311793525739000453338651578093037925620009579746028895762947924658499672402607910231926116964790855565665930259281012484743320994554187753456252191398067240336640043593168487247129073690986038507903462192428008936586137560147551359034593051541390288745879468769357841970277448836924339822609976660481289644769614534595002966967390933681929716666822906110370980273919054490326007426277798923559543361916905135160457289448976870230909716575713210918449087805406744883710368967121201196695088666404014464143965219768349805899359729468940505223132074168097203406699134268646308389841230903113944305499002127583767188425358673023119337397274586290022581209647499879707142091429831883747571905596873343770669348860476051220684157964610719299578466264469498166491516941391432220278044521527688881939684650044596032197581018725570784257505335564851610381196928130188546026654941197202039037137094368534721870746154229142819401833295747691220107029800557815745584177145671928299947634570888773362975127266918230168438240799927297594135602925259127806929798751940376395297592055057708951498391950352979773748733865765608587415905082553536185600430708422374529304730765780024811601505367916510125446215534962565541507070284957458759057946302759631832090206656050629975040054139257553318863356253564748017756612975872575059878667860144380358347726085992400105372314337248233438858756991101352617771522730427938622954168046845354429748003121838421109734997088060359761436920022093233000659176933206557666200745888746017454979650421601921100945019496432804502699504521686272848521582288648999070629648400444330041499381866805080967345560750236448880811232117098297320542564565047161219102798559799408454090576450176243223041038091274715837105656434401586673729869641254494852700864649469611007712652083938329807489002588272667859625345787829321661938002530297703081450272472999970208361287959907223133512534898845226590959194564037524456108108322745774334642071967691077436067277158201308160398753092003903625036900966157521116806428671751256644568428353748429975530882989739307248930184853196983555016441951288011505522986161891211283747976054384858977471476287959450140474910982705066966676042610825502740580115300825307956881476713103678652588885863384383937793402183859020603781934612604314762838778210654182928612080750705698326048613140180318648957040420355473405683258891710485119314743900219688048046794881669415931827160722616579969311679905516964859011118345739867280697127436057492215956617488990704805695580762075868773409578905840846743261153712515295856981137321373284676732801507652426749355841396312025616344563986588610089833242530003904951202217902668245670256050371937684311024909821239782215598469984859690282446160009929086926931924283376289955019532666366158426572450156166883068046029382239575733295705152675564424134128930978539462392987558826306289565317457474657209191426658701830048109335142583697992081833952250869230219120272954279155864644243144368571026317564034561794837301709964109498940835561619814282865179284924134318813888061035682577234581263183117844647160598139240858383800840334908552377183610554341445255031506683732384816427442781318723522634887004208792283986618874321177728549311647902235025967598296444712042692419181173857236126570459012486931249307115666536806218281664339456419314333069585783553352721798718195400365647223410100984568412954637995304340225626195622201935436359954813722341075287946336584239147950502808399390433287984156624370592352303643925574477769824496959659723727345690279068920656791339674102305867693163366555213569810755733948259054884780368551309254533180153020099089505059931086629221268469740622187777685089050329893913726965630230498164605246492125041755670236541814157019428165729413194036999066793122136642414999789411611910319473363417639013970994010130306824305211117570602718838241165937659951621922025297729091772354454057341863950092931402365062383744192535772507494970732167418749165637628220167116877296928722780721291216578787193830460166508816207506329707400729413991595657935554231333081473628831320688948865299223007811643293274326714396694252552878991121518770321750569430016212460118894889760127327086062658915513091677189401326264020072903663911115797187225252847172618053064923171892456977586267576314820393301613113300007448628030117321873112476431553566015762542380712577306478374974022908596954386936753236921655593363892810464949612082512459807860214286410106953996675942451709444666622646746655086850212714865819048113040630989007414342322143093793542069867878111873282696577355934557223289305340801136069499404356479746529218918071805567045968573290983421339579918576013558637583134614609031259981933839371669207188296984314745413596879197371456676292907572107705617479249347674658844928000511700180930145109374035577102174343653474330325160129086064524386529945719119625107345320314479533340944129193790978665992781651302990801295626857205494810894010433917029563954397823152507696526316582366024300949116917390936780287687961321202607181295182550490323381889552153952289038762695362626969686868562058589320090721979447458595407450294494453423404303678955079291997269615971174419060111304327187587742896323379802673784165648993508131243484887305243338577731963610493136189120176346022531808765403015691866096004174365367571070010960970218042069424428226037452742715008886621325123426646116751891685802426944620886156192569594225818460959336421559494160284592547569935455994753861489890057064293518506960976180334753885238980270965507189643235639494903846343912516080231344534965358530069129599355619538802283298107320806667047508674421562835941286744939940273132765115228725230763914037035478012681445018268253786802811793356458808714889605148524587177908983062601638876205588433581172033066694468472476183054109610300927944599549205397295312588229671875178827591130520223936424729480640723692009424096002706017864861063775133855847068395675868020267786969742807042339128987463656709219904205332006368873983381943206455591314184930559571403475674144901148881412349136150924735354280721351454855407211138175058758202273473022876215972654746426630020332690211358587387435181740562548613375594605888030539297530754399539542457435625144143041240496178034653861971457363353446092125366978113979514487689874579302496288455577824788011112217904039348069735736284453306429527666011054243209131480175566967388625853504505484894879919491499654860419860973509019451231443980780813666042117078749370138433495868524838264293615516498607370155154378072077509493015675067276610108534703946148917211129311454158600074005159898592200935505998153642468322966887687965657086159752069537536644737797277124432239365591078424408697029037313181237558772706178191822425422688191020588594617042115187829416867678337135950840585841262341528493251796912217503403532322776247195130021271942110771703491725541021657010904566931288404818917155762772210015014398619430465488288252168406517196020981219184541657285603887124376830663324552846637043901354686188409039679058388318382922749149782006666600656442910567469757758795340561009943352876452258295066531589827601464011215464384771277571599423563820102624564609370696873244877095702957044335130664811597356861387125234442943721026742313740262007444387558323805223517404872850960905347915973098319163485683987190119588616163045464642966999062111247324046654565497244111239125520482077012966258148889038239390048643869737783464422760806233582296073882746425786289919753381817165724583830251561408055065879310510664191633285795843296188288897881085096152199403401418218719718216129375538300591034986887966137495165322481277541138298356255701578297373269643591150448700468859261188844388403956226101028900964020158721321263289227223420886151181798668031956150178518041511261885776691170108865594439109314248374679739202334025615629284252705100192038594396342954527834960249596739618106959481802160817846868723757734930531217495044598431611070191093103911849476016347067108799077194180130816955126901843184689501250860880844902948145579211041539973122361492760584700668543837650951763743228990005226886105738551978401220474828135709877510976465910800132341523195928668070054529415076403587231982616366092179295038377319860822218591471201826077011818528764839640348952360663830587874049747735886512096396755404381868025304002147971621000088652621326681677729478168219679227734519284153368172640134195286325711885135129129981314490500227066632592548203948320913152917165663207710991269619850553341974264868472070370964398927671075572990647521764176587848736075816753751739865239947939578556880230113075471244356741323887513177277355652181100158906324471748601822245186812635764336998240431483553296162159259466597633751110709278627343257212192793720427995002030404608735056602089111239480972572213350229276983356690425085133895775016354888993226099528354227157210327145881972876203668948243105660966772084747365797436107956616042638743728239427003750304584976205076834949463143174263898677622587694510951053044708206737870920159674693546904462040805742999889877934413098160680180010975009444405689657143740930865491189289519380633043535567912601032310951243611321590348212258247556012015208623485884708366362880740738049365433473995574845116852959463297364179600240099347099696386000365167544910034832053029695002155770468458924846242486367431145577170264177773491100370733290377321611691990144544414390449452240012571474233809618844764933180307086076458496197226398308838131687778822085879021365928708223627094607596759235873256321979807600271074763330628569415557802674328248113646785245149116418720231238047850730148723945829526975919800646831244340374304173969342405847807025079955289520270728010318132553946356655762981978482740745994028059756479851405954134772965953209427963798093600264604067541706142699757803165962714064033745356904764575381895602112665401427772696247220909251087668595745552804755069537108405777608319507161420096105595032706023831035137593013980871434495497565062276282389539652912854514544817426373486916521003352053935744146240026809147427147925431658419956713775334683656427637629823683574470086514396091286291789635467255184747362994728088559980126246610770456775957213193057523882710748304325498984796766547917820600577086267969789040632822095304318873782916638377535561655964047289813899600099993070978366165507272586740952906312153894396799138439380349966397833367764880550414187123624775271877045843679180320244559338603183206829824045091228494705924893923916592219717119727322392337062855123001666275117033574039663053228909279573027645475133651951327352480759890485781388718801712456070881593378679491198850141487506144998974566654568047510619782571377211404793948255451519106692938276320458435555351734470684181669239254821024869873346139358614391119201001900193792320699598272707737630112481660663577140586182838939969503896142762153946806380745256728031709625843255577100427611687165005080858706357427212927506672921894299514105938814165184488352916424423950262700621371099786870834255312583908285243262388167448811245398287834100298863571409864462894595931697036191644206594567717002267843974937422872153873313540854985055327573428392569449993021833046794053747251613066768650096578240750111347250782924652819898491004187713736431490281236289823090361159885682361191726444679932465045903707642658087962638883487382456581163817936707638745888547628280537321845668476754467118497496176719228221942249378691149026277748248553826166359958376035161942998945930242925484695945518089120430244146262858589623740202201724560152682487592797659615681731315836063188665109085088246490190862889977040149602243445354608862834037418508148844350973927439033506540937821703326516535636910960808106371416992669493878720842226725819983194317268113264696227297894055018177505891178569495994346941616295657110406156365430747751810307986174279089176288426738260628809076184864688104247951649392900948838350998862216837043430800517469792041675307996585703381009918632745095382769814054385508736918203274283402300137532817624607772808957377952666737517779607126934375408088746408402635257529904324718612827750570132794720617634058846892310961481208476764844400540511456967963998754993052099886039091652981176120412391040266923745787694786403706705355688258244723322903659605012940266539482490295414559824325712155386482081036311497588826186298754951924366444707417526970203035937761402792401502425920012877113621261198608740831000242277606057436599263896743786998278363063638843046133422475113417822688379072239985559177483870157753026441434348719338816794863801037032217149738352357588294249720091853827055346650802179484102542336204595496688112334322279519038568628796717285556567117240279851608168730675475134314957139580792838643699853175326241084701112690982127205240347992175042760291666549927576252907068944133807190688126128480282344246260971700681091090737123079969158051401990675137131238277781941855139115803188913762909412237148274065209386804031645305624522242418468185410344641639464059788078092941987542485736974052871939645867818696301853127938649472278532174377464569659965971707249608818743907299286759472757303199739555839518618050692663480622886644100820456611125315897729181494331487018812038678270525884474683700948413505679641688678037068587730745037579783688027638666609762152884537856982423867298906916333503543375823756771930709349439298303569789653169311967826714895902313521300778531672246430892370260318614638584109123641924610049521620454268192349026723312764836812181810004883603018707133833566856746554691336533773246927744775267102210778257017119589944241312743723707452965296692487840779584657615963334252970734176583243950146804313888800111361238610274672650313301015537042970651177402351990956830213228808166831777665042011336813184795557126517738701162556497302660474865545421231476993072339907073159811304257434910269830832049962811651716814287995141734717142226329008507770755899826905253200286643316996295849981492258632290736858904130422894205610382642605969463430883554943050888154465509638081076458547147534547191115661686046552146079319288862163587967607107120867768079309422904360081985104474318544764887415177691733510247444576721147570227762742560396319762154111377256436770142044078639460626635097371573949609388417768517287482974018134042722194266559415157945067457609439576003690458806927713045354887353960766754915697660698415458723256133442579932078554100547273894605012739290989566963466440734865837127234276872690231772661583854597241834329880968140179311277516274253822038493618933735442153523143404167246036411744094242084638754697741389900344035132058175608161771422062653886890893109984276447096451821328580321984316001722122435966188098997087082912653384031873103333076985672886672215786388212259322651250950184605941037743270245309213308004156254966682175319574426318625361781385588204674140862293576203932557196434062674508477350520681963333230089426050748398921317825063622201784800747504924472047734098990380870994777751444128192233826093082773657018099697208660697587332613518236658465228221198787115246496742807995113959342804229651412495549550428382530072058133783577993635337158354764783875186963950191381000182623237016457062942875443644736477448490387879759781878314662773535810908955267595689390999877544872863833355705905094093665410471972479354225577047806217159610903841339432495330482065987320340423255009908163313157554031309464491984134463914135973590950567639526435224187380029263198858376997480801712932277278211306608196328158193159624322891182796144195324896350123829268885430131333622167677947612625828522695847283429895659202774644148214876908082046224958082706578927681314098313266064761016030826611946949763330783006526941449380703984640117614381603120082221148560188067259011564139645549776937360201614086376655109508275229240869136831735434071713639318285205678703371613230735823507201538705787326971207647384534084600415527930898539344905766716809959161777224437741153232359522526949276946102346339088791260491532964362682270488670906299816610772159386875386292689773116690080501393459927971159823721375012266799519242643518800871552650938085613300091107017078375130500384837080051279029621853175471884127557155355504186418739630812119151223973688081139838126941957001898478596877464106660147002817588500083451801488740184767410649988783905555621988489660588917923088459168822107763929226863291684229498704984318261636784352809450264999873143014419269452883524589372421509456354292855809108436700732185512080695433574356821704979275779846898881008362875053663805471921880259096850856340410116923005412088307828927713499088523790209730064769345067451634718518316776651503375181465932034681620366018066964147921603971292215048442328963924231367987578136674885331469433295434529879447119742815057997465052543085870415231379270888879723349116081605205715767501909347898426999913588888807474392617019429113744288037127681273926638900312167994692547422001153002323536746475345354411224300777384963842578569188935635866072691365252254167017142417116629865754462844081385724146362142633325700772554348131330385823425568939944799324158670525395802792184834367092011697153465905971616936308065018161006851516522412500134193831858159355899441233684146851478286661432729806286433133669834426033379122410877281436196069538193988970934745069704866875580044123700644204520682125560457195755787541062651210562614456291114655255399936272610814504404452911071216067718913985408824300690585673843182169029906101013282296598264647720878758414713262230239816044757317700204433294354065840506279849862376500299325366244427744428776810477774083316903809709640844901590466680193002630627350216448850640298576285313400783786165874042812220258570033490643386518161219515545796055509635576191546498205267042023486278870875500891699239787197411757215276743468946278134208448735498882944904980629911178709196437078973557773531237916783756396783044697160059723064671000976829659412190484446327281237130042207703116603337857404854117106263706548260043176038927164016984528868490849062197727401467460937048339647389943763691384631885827461660620416078971519822953240678114478356482898585167435771105124973187855864835000087603345431976957774320365726962993216371866152731089567220654431077087036000243373379621197960114308748586822766991689056393682935465963002679221017672249419394083728675662208168675086832213291721847929696631133866091779180577829797231994496016948441402343333635916985207010947643684489761778738025616533786534743836689426239012421557776003743938661246183503271183011783658243769690744873068469595109661244661023442367360001134008516105591177901226700256498747958867529279742350537366820393825107335751243229291613232756736044674998320346854639551645378705681548884626675596994293463583971110614342324016901830979429393835221204256252987950033965866916533822398111671601669846059900066722119701010078059502379990947125637527146853104920081904812279448451027201938049565932751866119100054337379108955522214916275877814575743709398856917719192725238366381031044766202238549304655150053293495585219388467344937865860722314358318015765698520122579086770079863636516369845916371418387090218926687941884093791858145730136519012631755885352141118083057545703900051688640486236705905210807823899432482368191403034249466658416284620897304899248711954954972976497621254954683241151799582047656239813015815722985856735280911584698933044139418915956513147001710859389064348674201134181235928916474372765764327460825028121920047461817713779591663674597586647703488621071597581430882478687840187763384798452587322605830036694075513642059923779362454107759338949772837446235347556605237913067955775377371650951986371344274563657119560559706120276180177242688720059274849250880326748089945990323775859140470904795094412564646532634225938656021697875282335347141352078927589301355377074272541129963153533101273824731182191858855942270381872872015650578351053860590178285054282056074314928294705600189373843431977813287556377905740824926105947263396179898493133574999816387631381889272353477492978807292619055284792557680396671796982668751346283920176714937061326573935596635985779931897239150009346713619007287076241335874856928968020576357461192310407740348828076731550070562566700059837810955843769717572826146151726008302020654463457459204384375519268669793981814142184949418224571359072533523027160581975677115408154438347259030147039556638602101969399233887266751518667797212496707458349337275302554398147700279950754461246291805223897895906144355841123848065662877994107682208878544960081327913200660874840985842861678625852483461858821653278996382617564292601211190253883251661395154982165748787659686234351125878456614660998369069482957217473676495427976335204561029566577769905783014862508252494964171876993676854083080132560121907871662446736157042150463804518308593805143527890162122445817515849874422392905931979068639862194186510412768341523805025664658974831405177036701616520231845302463470835151499217268226929152046852925496954762312922035825658053611332233798164012035831247015811171584544461995747312773167309701593108780353237780577025673691995041090347988563705606436324396840342983934310299498133271483722014031876200355326592044161319617444256279689932122157020319447164873282407628381908683735179064691650704105281310977724143569796262209239887490492604740497148148108829593097516749313609114064718313623224316395411769567582704845110417375595302078069358471865760844634675509979830368529784314442535983943417025263997811447712928244465111191731901016007739945115681122097987944760838361439957197575286248774966690658752871121198430733255297054395885133539754676945811209335737776202631060152170088328132836254896553035774556004946531496194243112484427326821845565851086079194937107620798706312713402567692652903821833352388795197651643967938611696343146483479074223359417292607606160812815190331035305741738700195076305274727800105105570831824091912894664209832892410871129554526957104038047688010620955555736930041818925577182819830949401545106201267884410866280632689649596186602512410709473952368426486900839636460689022401884352318306525080978911983110251282843725369395254222632095742436959514082039867597403903780739425399300523295187193821991209217011806547887511653284432092865559196534694563628036936330389854379414420753989276259153471262080225413002423445258739358736948735424952671300552830618113021567327472439844054392733773531443965201708846375372021620046423395907013898801031018294176489732777406474319375678438407547687344083180417706771696773342695112344006089995910043694342784127430157988382733433273108867900373710738048365695271007400779677542938982530454272289764507180747535731998994196808147314407634643565894506671562877928187018833036392289408064945314825778996479252668438545963882488063943316262130061176821800815665045500695175766875119997803041962235947537816383000505965454456427251500537326855325333449415171556163973538305325858019889309341755836604516433522814514104155648270418420796593230622415098221988589477550869715647441772087248103056818122222286936884100604347752161265383451576004597160172760197798270305650433583584587317519263529554443348502186836347360894153439824499854886309614881208241873327142001683500959180038999550027895964954563430365804620785365874748798266404601117499998339981198478576227565827217284390682598211147994520282073261509367907648362083350630094890996673180663373341880974389013786061177563851610305862573545968562224646958346418133624990524422932407200676672494328098981398593498508632567225183295859109280051208197310658286534872062338595391490572702430728339869059462301220013261010161194274477842023408550360491772063229404430455749964507059230934199788946735922076396687160751178345785315653319229535268948177679556327674161041687131437954543556792276372319525700145866757686438392279373928296610486355662322866417027316046948274892732522777506645748940768683224193269681239165890868708621704326484166605582746851529171013838523772033030321733723515016509629520546620109389924803148078535021005656197474129042881109736500288491560059816741685934964554840939853719265790052392962559710542317737575614037536026324023819745446900133235571854725049152315309299649745808091579924489205022633164155213886252778323347468294039959112124353786716128659911574404486571302942253265742013669499790354243078532713963979761590752795641074542062415285745959891052001563015706483430062495641063106446015419785138755525067636983863583036562818474425174306917268664510250397999182892366039076162630146188698430078734222720979350042087265320791306299968634857486221980990327158240695923335998114053994375819492385859723823007675578514071055540500914592242845472404541076001185570202067745408697923330792080375526843766585819454992698540204897477787943067762839321194668327606081416923616689169471154243513730025416679584468253158628175872559592787360487817732592796007253661941807650196379763978195926242343909993614433214919310719458032964567483765794923348449837578028178143232807408959481624375327728175855982380496913447944761050017116119045004391329499604956761596454516539639492872315572803355382669052443993681176599695909044142027934629988193918941185802130299679954809980090834519215567666830932633975344081435303577117174131373960766323230358924488540668219331737931836826157583061664408084972899184390981773492766604234745515842892189745685186108903986989098147126730527202294801044421832196024349016212232224167281260789891292907722533581682220059148858605631791150016939892066473484303184984702869258001614624925538177415969896160107675075356287862181329792129767573151589794189191367633390597295191158309076741833060488926438147198307994654531877938150844377084358426112230764438568404326308280005210569126671315322440280089420027486565767581440552121427251400261400522917738803811601777788188404772160930063966309139009818665836019166389862549988965632222648844831698790786084993743696804498830409182890279341096262853907654503150895512911939174674920115090315800983970956647910011095003587693339079227215466253503635115889797570831589379081589440354803858576072484407381726581619748044506764408892588982432228597410731978423996484626633789113389619513217924058971153458623374158917436704008777421214217366760958781444796398784836620457041839037539217257901010253553950901594343507849043627881599363586472014530530584267931687722312455220602315403661176694903799316310699432266211246847121392325959011527897150128719186714606959540448749525833584103129026829580117618414280911903051370304950719405029971643479150466129655737909633870890010339209559452572190231064000305582872503187386349067794551714082794425908300645679806584102442202644809385709612869049015578150980791639232392467468749018059618000981032159423397014005091354448960817753196359600644041122193237116928222490171107894473942816548430849132882057045214149193840059777900353092098733119157036529020464771068416221752286487800517222323217208210514454333646826337820289140553278088905513584042438900553642891947885386763317091139321037993290924483906340467891952586342975039323527607118498709992673467711354433955501493327019398778164680187530282458440501833772119059512305485556059864789509718148642101967154948654666672921498133160308111167518803230514344339009758791243901461412008693681110963687711371819489342156236244382725401926609928686281406376077881901637497256077857359898546093335604748169924068114445301703106404470971777703383304741073723185285315148715947124864207705800905799737376132834148052530096812477718082278990369579583001406260307723990437922561998437556081066634811760733481711601676758885544491892299313638053811483433536521796420462530245614561977110258253321764108559037220028474967005891511313257271326598798464146922751125072014336530646574165837225688443843479271165227253894896227493339332442894932581843064411925013610513281968941883221266647429267277429174551971688751201438926579712215116090332561225013893302946243353819908559983824186081167418516380052801757181422137860822215147383961187066981113892909433954046658052219059164696457489141918673295414432255798047621687381813944153180251027055384234381253611392980807260300120493690182788511047810568898766278612636061469225908174301186618496960146600026278053496880183468949937142001751277769211743272246318229785236103868465142539044932849061375432435478478090554554463191635731739230096627407295645139130775659661946420374774618095142443100719530771672075439829627477650549823504619666890284351197386614886900473884790631624727239889476274139142939511820561181651137754482241244080129611406055574324801507552582790787268243053094414443880603872205384173221591038744244478835429033731290400599990353004390644679814237120062362226849718302231172383708902816330472337616347850990829518481628862183052915005948991509269105103899171931000036577363322370384272120138826592972735322457029887069994354364643206201555908230406636911740424928574607234298362772459644847835636779784481869689242415195909055168421610932914216636400726703002860417235595729928960111825663323084384314657751117324214990131188635470264118310986400655883864321462761388759287329436332945593734880176311122051173871141651810955467713082632623044385583456945297007405956209975818177904964872842391662640780997132146767676837874666338850459002097035703113901948937393312139542730320376745680689908556153654784076440020073987531783040510173636037155836156947167280840036776275775604166062832217437087070470227187940986710811946425267013907393690058612691804217239579878140391341166358956702973343040172119559286254875089997194579682696850842884536113599074774716988892972396111972359618620515289376031045453425762343981712075680619815421575013394518643825709114957137649424692696612276905116068522109182472910290629957717018294914717355875774710446762884541616021853119387063921397290069930042953739572253176753428680356725607309767420522327580749685058919310815861655659449102914618050849598423643682359620211307037403136791437899813255838119609614901059847298163999135030823771262800475314956720338717869536236662779016882719843451729853061560548113619989547732107667255478289509631816157349421857972585280829323865794413489642388742403763955545966820141758930322095396837986925189272159158797237480436954217185345999628246448086448034646074077177626838919731055069870877494891787160407084047808991848914418487833404126617775078947590104920873297621745489362044993459064995398080342762249575655988153622062331109350656484113510417068977812849115129329454629102619258719592028885091452581542543938207404019920612606331406113696529844950803062783750749129081676010808867731273438341883375953093921458396852739357762237249732722920092076786455503423390803966057021121997772658060543548495364900278889861336536042080060671027745490408190443985680348170199254455568217617284506281636045210492690672770887130171758186518958535674900292129426085510750859797896900409995285289431726835504246761682881194411904671389809986328628866216859424760906364846185902147175440572039208284593156793354452690177852114036186650801565037721384569450350615295974964626141474727914048632722879683277834866907452863376563718698935435631349878542125162334127693637524182552708794115500857237230921557369705550417665682369213692403460422314328453066850168664599384558936890497690755953986630339661301195648352368045825535928303343708654526440219823918794281674726737106531553451181674157350160339121200553746197295726429259853777291444962586238185740591542822670927899400445633247757396235896831989714134116117136706453590493832213076920605168546357259461224502400707637185755297013063768847237952932845252089707470189494120615370257438033356628403483746007187970581540275092233713001251224395378060673106455114482346020292498266297157459838211049081646602885286370361544709963080153415756067802693638977935847010556296880574331456957568529149173601806935350791446708608040258520549437962445343748138610547645681513242796980542439999446851903410463261216440711315072810915285147279473990866350672772752447813500344790143206262742169443404552055170794346916157122099597018490465599730937550055639325452452274673088343674947409808350311448458847202245847350611815823702658740190938685684128957073139792011871407905978201214579606932902162699932129894370056779694112008210560675468021336884227005687441229610200010975455891165308248816636637197381362799425976336544351374436021343738224972966054394942266583855736976659993343864118777580111771293596401497007112030408358219732202041609362606286514354257986060063099270499754859138438935231059677636888071504305848620450252985240435548418015499890715697114175655111598029340066097998982674400519174181573452222307074075838743487569967093194605489582944119647444838776820783653433942986342470152498447757135754184639021868128445058789559745484801395890426622501545534927560912035744081143619437756565070802425698410990257471635487005138176103606653336164674414390003693124236671075202561194258286119567684798403601208257832038344399915136772280892973889892565533913450379096375873914052011014282011111313803777374384981556997778076802117117686565280588057435025019166014587810280370720431457333246586315439047695463336037850002871925368384434596812873383392151632715521799831516753599480592384432132324628415186864365642935250017431129786844820389054733950764991721316015779085419475849846808640090055784320544688811424129681060199340019992303887852920104858443952813678062446789721843201890316051610699706949063114302150967002656416679936274799430975668297058427441177215721776661975569175145235015866737765594301627459731151826890892118105992361605829296733449800321853446094164078833239125047896531779235290034753547389761470435098709750616821908204729318455502969210723512106096921266424488436524063113897323176141969275147296540805297312111156723828706491620871937311399081335831101749758157971959602942082406420834640700522222403434376325558477571538856010345496834139434129623538195812864001080746910796086747453655618572400475276534230233250483307383981713817918228972196935579940317843309222730843238694978425225185961687966393021514149447396908066324013469985932702633333226750978451614050630294167056487038535969449184096400841873666280592442624002666234934443902224796503192095024085484411661177978419660649069565915310035583411927354379457384338386688432520306208315932604717825623035740619363286838090689585005763349106545176680415084327102326065740365304411421839272787326136500802743398415895151329840020343750810057012810492883345497012294262587722709217401551356326044326362303134385318357764667314448233205388969827582037970232060151973853902556029480656941482878554039321626833579460578835987172190899244339710804980797760479420267440538982633027853455962506820963708959215495582689884563509101485808048640844108571111928553381933202801385183898401170978535485326326771513717334781336853620210703066187338717877605716972251961348410796730307479448445602401028755002257424854398588328083401596510754823106065510005260285219023874786348073562217500531301223878729725574760626339531237577068241486999219531980279276292216934401670150809756141341603954111911618146274698220094276816448223434753097466590386892021063899250090914484034450510859549945714873156469714196984581642353340831348068807752004543419336069738788138175949241039907476361699257011840460667553662438829830055727614321956163840119257094069395974036169949272787164716140508183713546950655616529852991274327027790399172552429932743382964616992875612840715185007910478107129112331241276081531850963898784232086710591979682202680409094167086697421463489359347993292633538453201188106782590695497941571409569050542609820133913726973943644812426528351891718142656462095525515321429365939406317138668355763678334177744627490722077850216370792061751086940934638646667555724628583920814018220893862973814566531644775114957568842214747005824815898301507835668285518183686938554261504096901641018586886657595460143913672001418580240665357272084531783473887635995373239911315784740415558667971967776438519343267525942994603232490172257371991841266910509085717653366220480988257959396159900487414346724724377108486089307011088604236707814597376663093061832237038796006577455889276000845753193407981539957754745047922270774370469983658680565363557327670057949883282591128903654803225766261291163281991165683906049648373505844467946248719287016468217907612323313840354126350036415140646338122400150621905846545348059242185485039831881250044841029822355690131360463888319637555518768765119993733955525976056510702490800607453342007981944410093019242201806240959691874222141643245654230194113769207943835744305725708961423077472614197456606176573322720120116096188841632967083738105447793349231662593887797419566208049992937626732868028196628193515986300789668225176260823209977124157238211634208937816907970832280303734458551433413597732832017864230492363533280947581281720005339338772044672386112043230413205256882818798109120939032683159258608396073669236240999690844437533033370684023759319398235231406743402166471455318071845251744361972507890879052375233329165549764076239462038955154176320518996087464686694950667519001568691028384603428902141615615230409258191161036940576437528203767548484613648318569107493702977904369968294695642681569378141154238249013328531508365288781617147756609899125590222972293748710039835388847414677056172407159677208421066385639653086806213382841356067146039477825067459103768160721936818862934287056025879400966676856497758993349174071144116215166154090112405072868682606254237207963025447524578487365076027433784900887487466054198230039747627513860461825885593588169114806525621925049659133995154386428067630302954913424185448881915699493928292291953086105671132021708063850681339736360528539177918822154914320277037157346199425839246036737238681348406993445368719729279516398821074863209263907020603300623995529314072908383505267889888769921429173450242879395258469039830667432812402085823624720179048497003753175040113516475466460260689781613923630656397616709964816510331335923071300559195518272416152962182612095659063305813235864472640894057686152756891253438425833058141931781629092543149586214316114706160946257045043245962808685911615215271706439817606757292679323344806539737626766413812531451855871984473621210614479497277025638954482934728051280262389629761457669415018687491362049137484872489733317142683238650007903171107189298343650148761116883762267023338085815351164937588469747690273281126122723218976910898210468827163287954936652480454266394189525989814127263290180055784615130919457160257358529511416886014311028695500037066036574516202595838298659589901181332866697236624383999639016128226351710074924211836711242438103609964829823195822674548404016637082795418541755082905413317879311313460821295805109145679969943629340135185327972259935452270420197784791362126290962155377241651480613452147784691785306757591550917629385831328542803433311558161969812386111082254040901190399963803054096520549737772236321664937242609669347962845596216533893525685927409040720270952471252922400302453691465917621386031534379450028786814382609580784984409246312891003993980194318072652252722033260135469500892939167502506723980698722804187661481199397450379546814308633205140184367675297531250956010988076720763446476913386411707964407574066891938647611265202511398976352819793501008321344624104537918959648289784050320813772453454251859497110408816191740422563335930308116501841302368742672297878318476558191733545254454158546555762060188924599883042934586312147760451927555149356909389330286746484866522384589570962112441152751606516703916390848078602999206455525762356619479701982299009464111472588537987657058078723112259579248463210106608354815928117488379570621798048257314770408146633416343105099201889765734504672105834152565202203013430907450269702026650985408993262727345459914164086801980687992290531053581970530545261163852116377185612252520024392767623434223716975740429311047302502488411588098193747156748538165943984147579983116911605198225626147957186245744962601337763476497704218666906242647479929181116959031661328581626883202574648267604018091168804517466321331131424323479990290041279209530303968735922202805614367883175658873080718053953692466215235131189662185572090394063726211194504163319877183818165795165834599888072422603694086351408123409744779145801905100420729043419698694353792527984131547051328465597664822822676288477955444721598116696742421673467014343520822019912175966931182370352080231837602000966020636451423225266484064326310191237601314631565065886753283675365528217673883206256408510892232705090452922343450288439871043599383117154813516662793868718430541219603258250644329037664338208397103776024547124651366428558710776737557592088875553994893831362755215763819887050088872424020456488339207458281076771641709340638294344600081426008446700212024394423610745521021562564572295466618909652681093852694711715316940071952612289602408655274933309242357804430854754811694762450216303743023252909459413751224513182405317090876322604977611903983472163229227815064759946671472901636651247609808433888555853879731961282805458494799670351811266284661031805283956322608748690248857028335470105063603008186590759244882710018002646955944590812771342760804141244281530258624751277488357518852618589865369741689103100832121458947609855094873871154496704126383048482227081296907645381914303686307759998716547241083544047271716786436699942356217076137716652952077404297674646311902182673116684656743414776760519332957919985183559240168495408766577407497716629680919268247014709139001054651704083572274321402449892563971380272583579961285863030032482806059701550628742048987518691410466206626559414284052573914128740424111599470166375178795261692421984956950446346945918550384296373377547336697197231542977951931048683274319453079142698373522454024484048837137156821548671761897126812816752137042127935597563892621823037497272271240003910595728936204662085060960189064248453466543135891000830515052548669093358486534167700449138744069049523949492112114232562409620214106837360179797138275914378135920956033806314787253305055615943495911076788126365049669061540144185191364401069336890565144174344945557459633788771798185732197937058431628033359694343934759260084770676509683536292728085928802386057291200661147369304327986994042605629335848367593520017892383466678219270639776783827070806840918813622933850163938562064402254540323364348190249083120984162069088225034871375606580026390828286797747108895506607695398536896107567260776712103627093286141759474430001576762475630851882394199393188081661272662570374468818568443270978900140390491160914698041970104979884702853354178141704466059911452338533754385130987366788775794917780790044161373844812843664100040331380201880057386896449100789219703883357258081117754907112879439958400149665560191632664767390249994831206379290293770844200977584998459339586690935908845585959693899071137517221357237181680385261010892529793451788471911431327354735961224994739099142719032575147100205813162552628790412101054343234464882079699792652877399171153849106723187471465424486004093918479753558516836453736142011521526708396747891629906582028735105609984102602066771486361188292450892316133479369697437882121531146140444110040286786410567767996454506497561870324844700502825727440413870237824149516783874686919466856873290699528891038828150817889561958207836390394094790988458699402669488874456564895874683404538972506138568885082341669012568220496263667051239279186921170617300686443531510933340458607953298696416990095683119428758530483022910688649939237372231827484532863654517824894957681963786127191417640535564468895005971431751622102890013654687869690749700114609384467419908042878344791365296318486719522584667224808401806873132734277542514209512284123823105991088798668206874755542092376075233254318063652349827050244025055983627408945400178374893474696824437820561968414494331764977751300578800402065932538205211542066062565738986389145329427712366243091441389776833690073177168559870859785728496589581387005178657049817387887547549601043513905708548246217027153685516400036842512150381994028329595475757175605129400877514604475326890371018605612807686842420754215439844982215517663349824485436956857417425268397251204797550850909977244407761562092538503706425715782620766689964337508996800665324857771406838487627882464839598335596540573690872762737572519697512742654317969074233336625357430552801211682554865923429471130554539627395905420415500386620393472661676499859347487535294437836729371138529263759697775216092051422708821409993826134073592296084739580623162151825740057835205371081516786746925066866375116458149865633078668512145999212259541685814690552995011199298650839526767979971750889772824032122248055992595134318776782882926198788290813414221146614449490972181368544210962391450250311928411604838235602888045914526731325475474064069764134860471902092409083898076842200533669587443216815368129756538628419867050721871902351854184799707432115802622725064753032137760960142046711227544738363024211221028429198213127468726964297427942036031980237364709014108240339429291877215916157511922975341194790524220194287904828764220213648239441463906395522564213434546812486321934703564094094696952941357872649369261899728456288910101991937801445806353038678046552918060712430015825770502924691470606887344757528277187805654886935504193691552249865439454039980919104989009936618978566919246925372313490154733859139128074487542210731742109485153056834630556577420521419350348953431555014143489365979764982568757267925483949093586120677996980778192281779997322499445471359316604114342108880207413613345396029205936728926558241560907912794553579316877519441520226565133270677679139749355748805077799040883180608145974263519780419957979347803779004005707899831665007462386504204463429222614980304454231341704953953743437394874734169631720463332354086396862397806123452193782344593505782019208945181040748775560971703749185821230313868891589353048342721193518790906373299303005202536582226534766163760844600888915385117767135318428365161696284663164387262999977283492146972712890326977259168114149252534600750227147061615632851617839454042913312797137965672409258894840581496677044641289663090616059490740984866103052810731237980911624844874499224817994267519824205122696995570203661382095972732538718713844123663272648457680975811815267624180768401114401087288547150446095949593953430415358458661896144790902209473068972855826847460756500378280527541228241138738137358315004718518847848737693714708993983511096457583817134239994666544341117168559739514881041970992585803563962733827188451073101688294237947086097845210919828794094415266624438265970711706033891028825072334069912764572054020609287002042067721228342994438460103563165827829471323172005544447291731375356079056654290528740125653289601256964421514274646377720715917276024355939589558301443069904700954552219979920744933381624835715323589669256594520145518182499723987230140778082434566911550586267017790082388505139101090710845285317525056175158680154995296125652177246483714262215304047087383129131517747982421793381395389569070465640831155641248891709955736779457007509363423645686736101225533639758879045825790143100249846955034766767975061137336861040178552866209853356243703002714887968279721608523808909681543802333927707991742317029690421621806868351265511962701063422882102831561477002789440205187425383582247115245125002892764207895161654608041005508428500045029597616580111120350237349976889145072678730091797142153519715120172266062922958931560468024871819304986690698828124962360293978819341601864181389870728794917547847035794763003735260324253997459946861042705594605955530863877957830701305855124340902104386705003584807837875287607444912493976636203044913645446319727798226442400193805747451310741738099478026389039638859040369978557655671495014729307762501388476555214434935244605709372894825013957971054835456362337632287410980929056768940519721805780948616624666510244208649296639328608919302060135724549807221185816634673095206162700079454442129691106000674564038054011212134499825351574707453391158120116772297296368449569472146844446227130856939078623607695140448263792075661753271816744701784591826526197534064132971911501390197206410117569852462881283004340710212643047438158445279346511436548429245549003089066279045405854725699188877322514919844122550483108850771833856355854262938017949263689531669227915220880257428707820999403958251597388818375433661379284643476606922765660440667109009338100816825445952785575872423734125144306386685079037095568224084060715970839558769918345800782897366224001385263255198163947164894758535338855255360881603703752149538456135433660409977521796575438631118211782266016542658063122052973984181816274760225964283766756512143094321439871933739539835683332514375816193799978715915713616036365904862796431681671197438317825190183732216891442074597433892585464793429877346529365182804261900148646265397870497280934601685016549030133134225075917854005201994814957963510278710526756377292950711961046451538781342233952408611827987618121541750262733197808810097363417864311122251452090475489314823171860327765429039122891218805248381458707934738267031249534124032967939213442123063350386870685776784366844001273440181505917351635165717566526734836176349072556599019607970519449448027651820202031676961774170531571990432497777127441463944166059832204856005908737779695689580158748212159406896839051626346927042204170253359540869032524714676715105562144499535992295957743999449487675068253888547717405421067598875743978528471630245246617220488724531253854001278182936004323456368355623073823432929747469755613919390672737263988922110054970802747406874453835954932023133923354366850391322039865115920074192150193285629882391350248671745045846621931028770381364837605274780316511359906764278304551953983117740804175502922194669572272788298757973668809089466801831656163697087029533203386697032683327097254851770603499346697154225228098082558829489913906934445648312315400391014443260827581256806562982504547082658566512649073721816988796077360015761902013757096620237853181188730995426952486372924768516345698777584632949838919298146015900038871680147320735874956644579791599913063186087533701614360016417249835593244406764251534698636932966886766187481150804332801739243535057844536374393534934808664711570333625801858335803100718307848907334583972246487863079963082724910803325265740989164974289334576182665086854594930413324661774669514841794493153784319686897825926509871583216235871658315239241751676155041706784886200509483622714415617553846527172043975820046915932681890363279933263312355450799474282315229874932329536364169429891927567064357957480696048539650376871095972591874631732214003485426596385163374783372136520119511716761256142761742409380662627373735846567068849339820998185141857933290433824711366289702340810445763378124146412800801793483550225864074289648170444630507679210830906865976293848398470818698819730276893293333617319592852409338184571607716252806741645952404309215374926664757854452538324630186160720522834941703226267770653005437056856554650552861739349426259371850012146362853012269073345065496680481028563899958241771610148966519068721974383164220030375563884531204979580391239397975715429488603175199303193213713099299853628453192031772485279237630908680998936522628715967371256201497102122017160478497354197628961678087665219476095418038359715425002186657273728910045468032706323103670240475980825569072265063751613421757023136460148917199942878975323609759940493286928780457348366098345935581591043878694443244039168956959980876533059750639354469426209522137753910044124920162188900697470312905016131138691857417855492697389045552277975769660976796694768393544152442479411183634119557471965400945257399321049290427869969107317396865953236184797955212823063773815311239600720602852339415226773842807623379616279312043694436800222217890809461301955652973904842141378411636946711687123210578660161803018750637182525949980988641550624587182170595974809675462984523374788864709316239594605129205239298021530228944735043645544934933691768701729057779221868816973763670480623153533905173410662933631417174252180489429747274523222292560214905642801638877659075454641291434696303196866658178208076073589131773272310453463949205489673375715834184060478133012430074946404580636067298962138719392452679585110254421640238105294036608067066069026547065218186729616440531197654708188931333891709453436245304533937828564815488948073327073171021915254518062128197803091038868779793957595513026180665844291449079260546393391305242795594847611195115243678162594476479115842024739658862026800929536789998751270880286121605402272459101565241890747679755164612704040760779500565862217373761941336660599889520860002567914596607075216824804777995876271253028818434478131083255691116032376613035020982294130358055722388735349411670266612180941774614903373643790146076537185964517555954894401289066333402447913655374322048730593491060152561270458592183518698085300865165170539223519315064485354543871198084152482712999868457139236335937701576284677465759564709899772402368622527846248518524012393497592982436774360758916498002485286720649607372546153294711529834751480796441881001669463224090812168729579277066340210256105730311036841765601306618639891878341252732811388555100368229875098405868091406410554791354459280462322871475974687854979563415133302419119305005874847602652279608805768580245774208062573600257138535633120694119825053472073418969544260186304703645780520019176522718396883062829561001239359406242321977684692254176040147781804215731991250827815375220407834138939868364273362339331599351141803659817011288230974361393184114632654953023468034684902059557082017028391222329129158482166501397229764530290319495581985360521594356488182434975927139747883428837339084792563990598497093644973564976845774605044094396167414387397328773890902672571833865521919840826677327234730112272683446001214909303208331941437109903527750377087494553339639869343840068790053046239496205846730453275510257773288231670612700454509329777188008224078120501891069860554911005769920839577498693937699854830573647869393536971907857149516720158394419851899561749035025238818070093561273983504341879628063845358147750102521425847245484075522460338775033140845133263856980348231082023291608515157200789192518557778161350166634129842266997031575591481750603485977880530256393817437330594759469531655767783020402656812297159518874531668261042722848350176447000222629915715243351927059294110968397277954006779509779523572571311773914578422341013552932657900267170304527145186541488209540125105232430867546038658407095172864314296007869370417238977509706317601695855698485688022245560661637991537838862988343144806696353050304497571087515099112758189676287013994755116497966415488431390016015919311311603303692241540475135092872597206729288522713928784074464213104415294308421673758073062497324105060216325324918602350060473517801120646064680919673702843874182549684246048999025944464035615983537008864481898205270951254710916949074767806741669005585586055055968177927798590706084767789440261356035511212798859060093913514188587802300746989528507378619103575348298615014694346695985401164858484492510396974319987422169630518574073380819884562385982473504732719758558342121789467973048220367949437746267992584081904548708627222508479207757755865313281304578815028897666535930588231778703987214035831301099857583244944684182047240725035064773177233014160855575748276380277707178138338686451937091066445903963375200678657713217782132457763046746899618405088468677014093176086978226578438586971615501928057309721520437141434550220848346140655670145766395254157502028976504969319380345800499464825720031806713122212404430011381379780004022157178338063186585778262481309468629742754467902716015678964187973990084076293019824518219062573239239433763641664281243146780086083023365560974590450532460467833755287887163499830188815244452141315471085305481104855141424743769417967079313416843440035325666335993416548226967000457487216802003050376444948508849361163211521524146347185156845466164395798811647981651072041036803959764991696646551299601949991726680893580874901179987798767528150342808110446892603126638158897698037295431707130075110352812074182088185496233593804026973855964113698531947203341596452949665991447911297225405237202651022779073961792185020025684196276148370620428077017278874188923050644927003767733477107852760218107680156575241728882946517568762008019315045086217083055358157970345780746964897205265045657639736150485288981444636374378207572577787300887100232957704068847016647964484386981082731292539198384394249023752004360363856298120738746532699882582643398983947598114858588188361553218382377940181796784993409697032450545131379002146408210254114882285847462217971638599182135669269105215428902454787845009064755698934919586861254390560601313504641646527295099908419929821814609841298292448343847097752700265592558039487431326408521660419046612362833423810064449324579787750836140960437141295194827447705392909818686038514931804329089438526366927083872696842520578127821573191432812489054836770131686774212270392535708690878385314597369247467485461253111901269144528555514630013896820159024694706256716335153170783730951558829825528210514136051809360559908569331901091486005029387223095544881040202441117529190782942069486784237872681234508930216356393041313946131369656486677540264708181265243138551742720664534099211141072034395755679307997520738859725402757459789467257756384566469290170174315678437937713107856997918433213206283774275169481735162007853040168717001653608857795989038847123633380528829415744253003602230567951473646061803875095141301127948725871861363977622449390629873134201119677937998835121377963532250017622793075211541544664122163858038251097069243011485967287506033941790500894030360577426892051607579203547204203738885688999463750598302613705552406468375271391754877769998287593697907376939981738968706283055552233329115350968031897058696609356063960019085012180895610692935424778984740802423473451718849682411745271277648839674213738059142085501296011772311764325204768774104649551819223012477366395656125100858158118346766988680494141854875463582567457661606738721526038261632807946879823575910128482520311188065782922152002750304405990930597630876951304014439761212594575585991828122118745360503971048602035889133766761599152373876170013618133928943757574787262797378012296914184251760369866900489551621004814638807121452254882644077232499090016690966191031967440304246132889165385928609055397902520987942154003631810327435364667354516506984080148815823808876198640747087634657817682571344828436483348421670456260683028418235384833306129865698516041158248813311848152809449370128514645867890098972060172238653968114183466650072382714982498417844842237357123448437517620243788385729435130927471091685850821657057209538390558333779742427650796363152141166169186571888444331761625533023647136240109915912818977535429232701540924728218647832509224939277679552486926299626962298796327123596331213579778558687939916056922544381714690997908299292668952348343100826024437740278229160034428444260943946111686095395706742720180725337876913685101535787844056623777171233754964825783285249253235537898148070442929800155888081296501014875553737069663277252191686022739517525813491852571417379358965747244049618837805925949459853382927823501713707375954007607586534706545191515236005144322231862229629763557193705432110370477785064389333329926005786633978915421118994249699863536518049123759859939985946114906489852044711261431076747958381142182601705835759789110443222926386503734962764711207269537217796009643407886181610948164631965429240701782533282362486054698678242242073093305233454069559494870371007249849252573725511106527787354566727722776304732092914211730500106113862966213345487292963747840879010466057990785156899898852496378030381999080973277462493179291396631412687348014508099789664138883583863327853678326145552533725503501874797407318965224931255847300591370926787936086227335599360104601931943993836739374390373036070624005362733374312358917699141770433412153244037666610110543763769757769565676718109332839707439666133495024487755017800814528351656425639771044715942016441657666129814522275947039392175845530528918554738491825830210499987406259769032826449399516960969837677144794438118735050101538427660349237809725732111982453607392767334217835075104845640672577228252528628837762471458923207676360214143371868172572876982405220169149385421601748692658012376565357251237482741546595343530007772136085655574457425982520165690643912113104279320332004866236143015838807462588698594752312480575668297979015981464431349655209402481551426379769836564370484637224468009667403744047820485142193282298560842293535670621634424395607566084471518005437883780105184640814402456381740912747807185531069856166370968763726786135195315191292404282248639955146657944932632486503274912997902136838750443457627304624043836551652671924924485530462006577375480870943306234545486617347697414466078830003050157715538292486168100715859625941605062771579096779607625703440413059971050721113754706729125016843442798384908093014313875460887054661466250715338500593147619461322495175594153541766120049296412229659259089620561670432009420574993681875887711354024321237665587070714602693441018128319464063750067522818787867296106978849956641078023680300408657109426351804155219047666051963493837681664562157754163845859069777686870805075781674726721441224643208701593922153066899503557317028439077396691812681533139011924752780024216801868077906208797065881883676563846753339643310291288575961373216019196004532542563959548595868725042827951872705133019354654387002804171409811546435967736380258333979577004952622612225102011538356270102837711479858313341968710945950274709660260509261166415439764197637405437955983878532319262615548279726605560746784414517106365894826263948669188334491800944142233786002831495208156832934248783038542492191751672846428604129607945101876852088595492730069934522727314687268068304574890971630322907526730768546918389133438449179219724591742582816150243416313774947909488846062969805029119794085408283845703997500600915810520768387717097870288513312256149756997362206175671411227986412900241709282051497053507837046573952114372970445171987259151547559559286710406151310242365415961301635649713704469359828225291808864194141051913448422460994695707407415265259749657953598451247940921358967775714557104953857215392178329892516069147617530880367323280433577544054684214059278319078696270406917135572930420309325525986793403188139187151152078377626086744781960148142696559625906777577161125262821622594080528020131847669822098806942539599690923369698063879035020043831598081098588640210800235761113858588775489297656648715004545366943688309726185929850216471707738555326025478559696710506348331251831793625687701139214594396679712842807448043350721982083340815383437919047743456035660451717816832248745988905266710027549973689262304551710415830070076214737165374682223970400169123013707203810613153895633219803215611496581531950086997784909189181493043629409719456052450541061594502697833659499245523240079691426872361733642569529147676948886804208856952620644697456928948150080145481027638943275427393979345830685980757680281524788001486134512007361345954143574018536757458510217176226159868408772444855564037301845884769992619405180592355382908754610115906508195626859906819312754823381390801982929626937611822401446765969775252466088440819915981957658115185769113088433234625071448072031156110218810950126459766842156432278198297785171016324829325662717777389323502966082961569149180122197576312102513261660189266627236834274364937368278364616084485527314900975128362232357162561940311350988865204878013949064295433028544776901895811453633216374696554957732421063133701682768872132913249382952584868324128130719099632902602383301557213576978053596809944256613639460766638047402341223441675443755253490397823903672452996742146653866275858119875116402611936523297460475683942758611432221342895461014403527690904131093264871631598668983292085784121738159212071727539259908332118266269470578100659285114848174115727157219773503245983322015651808584946541383348752408454898998863147478959408541773260201993499276679495057573904963652220774762988713551914256643762349744657076060933892904606296816881056505587611138630262718832812197641811482333033392766473234835900694688490291590399826719436437579221657682929155597346969339273382032070832606162936351925203427620408473050784465126421882992935056977205406764081042685112828675526919946905228982466039299615288141827073982905624071202103091711124369952450793339548014378898285457383701162878744115808169547072856468947317473241657066898186688209111561299957277672440605002844997413382287267008280848338586077052384961525144804238625455311949082309507337774608401094546481721686177033008193618006689558204089813704323373694356188453514289163937088771966715462384713158893272798337866234330931645626245422743516459651486602547124636607360832525454420281978362751923699094951871068754448950838448069325715268321012056962659080057525876818118570934570248288313385890388165703741217295922291812715130242805227201357162158486512428024703147687581376970897888099893846425710454447871079104024125652384191628377438429274760583993927605815853123793361961093436231565579161902612157932971854239738679815120304116534259408233466424982340340552569133414682307445715412152261553773479400999010035268530987005173549170098973541816531742658843020159753766223911114253642773296959827429790207988874385412197694157551875975956583913516537794182516699441733970694968624884415389314640026703640160579504204576561059194757499245518616346906239631022168861517177162212970504568824501922767909081133363740993490254732546570698095369076180619925339632619887671149952787199113458796879493325417370900239334259354992050022494229958674687627029003680217644630588584236041326804480386730766363393790245885289209233882512135338369038790955670679478440738774399598477930914912889405220820763404896907431436511531494452626015954310795292345590946000904393167476074816385850063285668051536299964757322262213103088751847025212546025595973291800636792135834210742771116452462466397832316914922155672151699608327134435637862447080829618172911214390855251611083374070296039921729360861253761541237845377418907676133666736892718832853313699182142075557556127886514993306815659994833010305501757234912213710115247466578324140273116077218171327529216229584138840858590774338926323487651257336659718052508061260116011548766890659113725508739244446966478521415423626662701211936038410423826170015941320131809885121889323477714414355025171071327812523601640035709588988519587660333811167441450527865346257677045492253644575253960522749773557601476476715150922312861972425894434348234571078789733431334046467236775803847629315291282539121885277758860762291307218780005612995839571232265060313455800220395705454268860551165205107888329592830827951047249033474780904319413716369331149710123424909279263100340886589984356990658538820775145416596568839347456483301793124400543111610918073620917948916669411343503209317808446422796868327119736854746754967021699338917226698939904997071884128209530208425182280224616607001387750469632092218493674862079538789995277111863151811473510555747163854481943612843737408624726337586167310430620324839687971483169604374009290443096464021573772370801344764574770211312153655607714655598110755105056778172580075310125028418065199357605637611346881460866377187187100109100660695208076310433052526306026539595269033825437314743149877892382623665468096314154087591150323614182049599946532388511694710802053701789250719874093753257466294945996590708775450337830161260822402507514944750831929782409786401041484395395583881759519632736906303634205174944699754900950539048720873850828101917404080264747125318704108510822852884069744777105101578505119165891352148800462258518257673172684724559591619220905873302151387677966357638337067321439825653978118838018361463054677943454176433665147053108704096646905703391178926198628483779860409985070632564683947693606704664284660023601798592712143060735982942549912959081986747672710395397132399100725669262779664674346983172246199801906531413774940594990913365457875038836089905353551842058383464433066920100720188843149075811138394587974903071287377101142783579194805182821226479706457728187035182205518977198120870766856579388681598842929187037101390992725044193385684254288850455337712937384966002271988601347285869891101147902472709608436945128412194997953912548718600246880422327640633206157573584055875680971253312270494741595872489075608981464706232332342385676033203567527817211164141332744835543884295599188645606169306378229672981779105252008815736225076411149173087930557943739907685337914031543334954270147171004687676531744379790961819178987729231268193194440318531922281452980243625950888110862899962417637694723798684621907118526885745569707968649277366331869844594856796995918622547971965628877757354616827847073023569203920129411463304153003801704167860185051361953599877406110116606330960339958270375107296786978292761990570511777032826770362301386036183456855960089422760576967576504750526929880276631621793876293770093232850533878856265960437638319550009667153551869985150734668124001089899252924774689104218016248023679745629129685690750939833273027172464018581196536502817521749945228424885992201662588889415124153368283321939175463613571717630494171940155186846504473619549332662081925395358199199648955486014682058707494985484504790734463602025873062672644259727781518658776282674143807026599621869330805809852250189438311514116543008168551834896015915966913334260714707173343038140561097161919383020027204707685776020365670252947978624354755030556953027992683359401805654687121207248216089307133260137439438407839301786045935182181748755856233497286626461834800677275731592839461171573841595757998588217753981776331387720954537676976125729348894032111061067651093780988318539888424445788225230463257655266423296603461587311746188198062534714875367879627426360899123535797828041263138299398483375837033375865314423054299340539315734464007361288474190312126652473527949688560865006838291515277626595134724895476540848498295416256121960716014871434126353443635043087362362088618335164223283953559755004147898619955815668192607630162108472673101497533854270990385808865288131220565709516426567666495341627353305237696974009256588608394721248487715971259917135056433557830885527595729110608518686780258006350006730285905277423822618946186369780419952858494136358644983654826195313665759962790246433317860925976172119388179976536377312221047689084051640828070102362032347699422021657275045979919593648443288762313012385315890200906580033570875308060989157118754794648091430348333883128322951424519077315486813874937359827238856793761697239950732444700350363322057566673460341615516834736054323726260951274791195588793992034009041021213590689539571448164135937155544847540352031611360246517685933027456237369518880786211712637860276706076416880494660952209270382497738122447122179759689402446018560227726090476195077799421828412548395351145903482326352063938591342422771755079135134301457932400175565577551360464746931912305294595811735898094083626498090425057301896171737974958604943219669053424635061524290342310588812440126381780546025732406388138340482034121363085716216247993101295208632159507264955089927219175299438666316255125817673219566712917038662159317509070275518380107230721367084053212621156134079490110550862720567460612170708219540740716996919676212747208486798171928948160093975578358945618927314521525278621285614158326294693868678379315669433777163246664826462805924149921914338217330850941794185937598413740391490197690908470856160639612352902085834834477033865620227651389959394144321086169329783123779056128464435101906725558351560905832028968212432998711809208431997901162491350012155649099278124820453268564288748495373247152817121847149552679375079209047387019780467961816059667049626407282680070091958007688776202979743825157421871935472276943353410961656840670162365852562384118737293435711014039560718219295485444094138356715789893976957971518680151297930487607500983051368299513738154196876590003861491194656046241680066190170561961959923138378327181283493561238083484792365847557632925706135534728607187794064259535979670319228046884368767839047134335496660247212430776966066904745926649948532775026063620937352785975425244360506519504184437377171307821362995903509985521050676985440250917716040357514925423140034965230479715870662001259325688480638856655337387628016779183291415367539949016137894168945343237678560123548193363001103558352839483295182763417298469176375238557109948294529492880430041074547076398464720994623306953693026436360711065603126217002480899885663496279410290482471345150150449731857796464963828350392378232007521342903008604769190753320273579903616977788682293343572502001811363235578619468287995439172208514434429427610839901764348972759355815117966037676229796724444872963601079400311509563580599899097968283644897213609825223123375833062061161084592800634113156640269598995470833256424521493644984777691698941595925817875301365912092673973649571103157944518349894743576517454990208310244745632139486231942466971462504208348910480958512879042195095742473195698340973567909601619984718153239553386193092191295623520749681582637351844875156808443373380154680649792865472692831873966439737891665636838889093633523535191254686230926998126470371463531149621661580111703617902728879995338518219174595879232190346172312588387684017441179059795678336527996154383639872887485351892359761689006665095869307939026866120364575979607960558908100513484950127920677194001253478142865245037159264086452824591209692579158877464349804717300766438907617188698667936749946958064809217787917808663510720426621804475355988332828708075627158285821563378571373718917883441823877372586317292678708700480590199487863740589115160291215230185584163384969854506030201758948128949067001681498764622579163590113666714329251760400533726320204227912398761726633539251117478386083651649472564590776285028571299442957924210341789166646234763193027446830127787335817078806129460147259177731640262311924569357915393747656799283345143017109425057119864616111434032301317466239194239847428210813933444590992094643787094660860340645159517929534557265631333997211868889552100572241286706184998855940373550733572734636553748799916422542576243617897953378365585343172269477013245471954386009783449484855445617467390122005267795299726769911459203113937326195216520783894669186928688097895110051037751260469160149959358150271745248494170234561087213150283754211774565351670614402392260535378839346490261432700144839273508737833181894931930332630981278469251649717334119837089023521285665168133575544573760371586275868322186316236233376648557367040529108801232453713075402097712476548107231136069497020855243224070824342504019661949543050138370282094014058594587254095732641094905525387067215177859626940515182609035292484514551931451282296783612046750230587635430031640996714201420575329832012042089555661378021901381563198530151947334183734496223216988302880819211640982667510921716701317117164457384097779122924829199220036550655879568420139493146219982062647886407114028331480288295273325363315518244295878056952785993937398765461363837357479092008739254509356163900719490607218372595546337464850515597732327545637031371285057069062511699897846645598331457109891517764807542458823373042031587229816753880889027060325726663695110665774193578533235915776713160664523868579287928382563979137561561878963295693473837220481180471148957894750214698435634551662487911073541055007729039981991113947109433228503907156186162375309757272773588962999080269590253824989511449582356436906702595286439812219571019991388629950533883500458887567066758929781214644364348576855661630803888521791931074145253776166077850220889381596444976742882281041721879007544784497972305467078707288866001357845902357450012508500394372666621746214069227965205578881575738064063013064247721322513853850885275977082828008970533007781180601619474946022059191937659615951421693297962903277956232998429222548211423359765821437074412651268177599023254985768647417191096295722429827115798990345137730522238186512285010689836444453276548294073032166876060315197774387376216913014278783105633233273558266031483708596406208546389469157384275877279736012784432484185204359572773518629523881701975992122593553520026158318571219262160891917406416248623551153301785544109634796881369126522094843334308555134099391825116460416675886985129052481459587000150072586032217840450673099369706808189609844755668005042498842214714540474904632683252317521000201880831348756950524453445472705645095224667601334893793281327112977406878299531560110065415722555888327836099745367638990649335990839824422174084594119927214680365360833378360565487801699130280985462443469061608846703348587583316369864348489852786931643986883556856882659527808038734049054629063417700972641077979209054375087223466987999800878921179932739318077106555235961781589308567159970108991154680609350904158409701545068332759512158029664469441678343262368047872493850457549392529407338883043234660866451431201010829907122215135270295217703359848074165872516253475735901263184531898721554486043837681023677210321126354268847071588353750383803020768082234627770680584390753280967527757544124050082121320621561649418189548179417765960223531092177426901562238178479148521136797745430313994235347331126235460455906516708944637665316699422245318938550198406151281884549368986684217553510838958671740429898850629926115277308026912891588905194637871354270458574514117365342552921457085346467825574542555216676751872512255562217903931500514477539149003282719677851145969018821977979151457519228636558859426014927219176862074471859278442766907700665815037156510196409751623033502325029560422651624367711759240841239385784564972306728675650387330579879208113317954100330811354835787361907949469021883202659974459096077531861017608875520072210716629347902102131348314537105657909079972842766144920401741499768348058413061471657244069708346226826829428373202057511800320517877850292071770678492595074256192995270191958712581271227620157336411967579681531967152859584262723245831376040215629806475851131457476097648880410093608347140256558005910134931936137104056838405849942394602993006253386126185152120269696349743356734252535102346350677236191506472772032289480916760103622843570424609966129416779949668589658429778071620793533912370620472245442724302349024678357541963512852523727970517871637458320503180580345876826663487321218199599221529444171055629672091319532422766337037104202602484422287632094397868717120764171172752088157861888906162188507032521058857106427814717678226338594872933250415069740195449867910278337611940065502979502314467352802570888544404235463648665769498700697094385528803166171745043743453789369709849922787203909733427382364270109264957450211593774482273454379093942261946293223246479321985829429225663590196080204103166687576240794425102466381808227068888528645728817707550686133984908765178700213106099013033118578430955181764778484854709392807284316163797400102118935459546221933788732389982418322771396273056066954195812717324221124213974936127291171206095482011308963354800855197736800544597124927645406071879636827728881560044420499648882905664388621830167657796922218669690192789145428641586292000110215708275220148100009589338516639964432671385004499082680674396005811755517765317174940457358540620124537115215560537857120161986026892222579172331644005469291255013765487537387145693782213010439198345543734640329337140285852222373325926833765070596742967068083064001944647266082033837443971721871051120599700847681652494834389404782573344604423073345432061503367225861945345568460291774430066548101647484795348556202998997370682868617078061389588221248117554721155273990046041002308425580158331913395994268601106303541986680663547106714147637891028744860445984421559259621013871831044047218242362144299954286481801970269144726492843907030539487857492255719322196238755079832140646634763947523771340890543063498632711617043556552159787933823949752552037076215302866983455836016010134635817915160759147186990509643369753564478263269117846424574180689908048719638398527171015556131457238052680403325021688371073608499539775738813519116071292066390133968155615798445756219649837179163043129925905821166533552162170670816508967524232856819667218748787022323150498108862309392355019564258564414846845878653196747779515214433786817207904741007136727960014003782083878185390012768835827516058327148433180974180408467982613259556477844608688290270491416432713971691283640611874817328638983401435224528095452561343630538811028058840307133192305895737180785283477609134747525319608350059002163538398842045194809461148241747145151287256539036186520141326196132340254827011861666006247770577840097752803646997069258328961580435709911469731190763180407129053976868653680565578111865892124599721408308504250443819044187023136151003443120254078552457493937424858921515272116203323628690193228702629264190130062571442048184525600170415944902231890226862831458733240688019920311565593414833208247469894203194870217757751407407740605729910358138953266632216376413026615737933017016869615928513477965066668915015347873214350007183358184957377130545934291909955212638884790918171729403735379857488217666719046724549846111862945305066749279107331281351712173767503088829875240947302573549976018476314434630351628581965765121751351462380596434173690981979790682845289363778121576690662629164855860090489865822298342719438437942215009532986803720882553961870778138408792721636256273050013156114240460722347358646084409273827019908933444987032567696670963895485186058666708767454681402686499137503833921440279196525693140505879697503778015077037672222640010071977198308031152213313097801477616886641150293898223341854584360577766228498836922137283411938823132842174578786090405012851060087363229777311328759040234489777217756636879234285890554129060429655514797504633167916269577856666990889877002369431885643806552985014854354642102623638254437061967780068156141472708250796518357975602802513226621247780097102152099343069455509033106993516012263569682697227759376966375242704264290858656859669708921511138249581307423410030943424069584977298079215915004147282795460308929278427118802094477178409588672076462256117152040929947648747828015014752030100483772406241489334987403725905537769484779162816522243922336780790763645976062325470516485072509312140599067771902709257609203202534208817252063009992471394581338477985266931562180492836099366262134210291535193040614157174059176794341146391976630244868589805348001637526415078766900801346727478953921467504129527616231320633741456829455510836703512146278938121547094739258887637266045470450462303982869013376546837488875462011173326525730436920152700940322475686367608234410317613769804917787586149196497978748955095195071149000121988332225369076876830167187456306423530410389301780330322389494661753226156751533120851688507013887085420663944022087518273667039514727903537910522333605618426651893003876600165706098306913243013362753482185717344031072859754711466919662721026941827549678491373297784174533870124116154472962303456976671548367403769078172622975707997981974940294817894974164208611114536573865774813659096533232709590735661467294291261799368733337441779611565893136381428943849470029661630257481319807065282980481230463183196321454524847407406598757000548007629920496693884072326397392074544331590487568588609915393983751337289150540035804266071321463771457052104554571755334010941344330527924819387908350714667736143830779451213896802742246243228007199130277152637988312328134646753483286821503754123922491860355742168556900826397923470976210402930770369695125201888288013429916464947763388480368986584012060282785917905142742424534669299783270905557690346102837458607752943048067328224833528536381083899847957077164276244319635693630550482391570571926748362466307187262513815449073087744783734363216343022122344380003575731142455395283835314444230388447096443724175592028966052395553499357003694283629237227179643992136259227945565418105902393573313467111273155525460969927725350234170619073266318331605187930213705356683474129112414325170453570395054274678722827970902229223016075997184079085921227772073649692719501434347321409129476208140995874088278660984007244818645049568392184875823782449705567514411952415800690826766639935713377128274973711189292061224739874940766442028054721326865886466213411263119562830846658181252220815743326972724714256529473756829895044731070811100679804112391901152651544917578772737563022927176171998782988698630267295969121029614035853425550365193803766401835169953582573703183304577379036029586907715250696483007963802291825176273343657448025103927773052115396477266846359875678351999036549980534009809880865414861933665198679665516216202129192344809800544242870523597220333588857874309774861425446267820141386558779005025735854136083257843333728108998280771686988559160035501984409877228468860547122467202243685871293193324221872995071865209089497887747594901955325823231893078979780162531695937741529617770336969317341994498069702695495052669704471162756485584693851615552242340229481357342367183349105858634855240860588041157195701104745067721898274691109695049745963144568963015207943712178649968863521645787911645374920396615444434271563302745728647380151669453365431517622469096848582608334332878136908551963687484438496925160204894010710331274233216074135529301759271498753212426172193805080542031559047438119000776769040317249302946734878902555775023117795170090382007330156753137244565278515111680963788350767205304378984901575200411923702123340080667363562605327816653167048213611094194004658839101928900734220480994439109509781235265853444529222227853962964258898583468358660551868459464418379001220583017472292017973231848015214701653084666109738104036730559836053645841439376203970793334452045599092430892950902178169921703789804696978780320003376253812657668799519365973240453200660648289696165967977193413164079428708760971935202419488486412047927234043569162869468594908818532064465683550386947422222592986566200252408197091986601035020646639613353066091231062511618566536544212372665077937936163846237268848739257028609315633345341614925152182792551509840135400476438173015682420970523062001185207700925571956641643960198500414660104350283207193980318056394549988256650488183882857868266795771341875027761328791166088491530358882596914439044278259126522406222495825920060004311824311391054900811488628591409942967991374733807617224723743276148307130103141708901918847131053129845348939751502848320775101337195923414454672048762682086575578355525687030723931376687124169404709991319643202843173035287589382079167732866772725690782755748767298102570377344513826730796456762299888303569454304270516037878527941502412056330538452201007931453327325218761022186428909927884455331546954118397374192071048369094641669398436204086925546685053169067494870177024480156117630225424644795411939621391853611137283954098500408386278264704032588201717505110961971438984000173096762118986610688545899815362673829135268646884440374413586265855336025679050074095236830048113677669443588925938694141890540978454470367980475239996406361245831176996002907682438919871677336616329936615626734527729592740180889853463063208464223787056311211409932232992289298228680475714985487298955373058720563320566530099448605267712207711226990804686255030643242296317012042339334682907596357034498745310921732829748779615315323378261298711147153875268947162080068697244021910353172890525853038639119679100016772216564547328535170038882385188295458556218023047084606981533424675973423420237009226361003764597103452490561586515770298701158683146885120181964488514931673195224864563166843844664468464794360778579198162590627978229961568382919719453553968272723975241092505082674495406108544660808590299682403556868103714988486838264868945698525954202642533598081900097689665917886383605221898365064127912117826765765595777735128926850234429876763872523376437781338539896737217482457968928797981899237706107008846859656267337972021312090102791959152046982750759336377692846332743715841488456130629958710247078131441687640084060081898611631098691202309051872207147155345553383949465565248905686908294608908379350929725792358003684507434332663908940819814758250429554528404123758904780708774525389234233559404610819761722958841722374391378594568682589932337852901960151343976216789166907017945153710295895840139640511548888867002341730610764014287010214358329890971122725651949174115840496219178035048717084812800504519322957377264827068828086564965893753617893658727030001516603430796439611586104503830497812238731097872627833428953157061970456762158837930497808085253473259013863893344902814609472719439187324453672537976352953311999973250880909884340606157581153965920813329065240129130518735492844858878166153462508431873347450142860728473673361236069261290039493694447388088590748068370844995647191911356006785891603678174634620910228516177161805679024842533095676926718250204928690448945791077347176963384067431139110460718599128002754886371205015274477405429318116730801007888205632148003288233102656489740926964988415089629254200196043208578661941251164200278451793135505056561832257281661622210962162262383975230546429562625589070963603380839862681872142936806938416604555814315753922427213791692459094516572187477479151583370774044164628818268716755351104124535894009760179210416750254906923151827245007711040628534324868952248746580462900113252348361533225210721409219044925093128198481954993887490670291769202435879073831339418427463326173427699423931243122060505079762671459607683327063135353599697379931340199386170836735769062936993847223473767877141182833703571112865901318198618217886346602973713354051803851134519620204108577615430485367478647654704550908034574514038408074589076777860269719181888666050709871884190212340646728064847252870689761145600481561316931071331842821542533588563167570657435062947758197776969056456766518850808359648146376515150476385805815178050545769700643608242380722814669992958716919335575233277671802563555416257571297525887940159628528956729335655162973572865493758735394737506639028730080729921796297848151547405211621992807370385610756442647648775205881463490140292006971700694320335179737111037763101105445934221680931234852491988738575763024730591727068906762159031080854277171655511079169312775491736007500987897263560188447447417063044409420018994562972842392693741829933821280533370034035776368769945035618504216049750636593628666833996072084118584839185279752460841155622402637533208519187883796135466912646408353506742003520733965912072974075568920453978396657585471162693168346389142591277592634772592152403746871026405579901568620945353066593196451229034709582174787799034441812336882959690420055232603070630758425466603423827150360607300973651739684532107860547175735522185127910260827221243671907769994829894970139732684422663251522628112566421175486528050403854277154805024443530094702075197211648780239861129761885462881418876478562842806387800588988814289301713090533892461991061094916735143613562829690158724953505329096616294460308268698641855536937155126387535232508617135990539078649626980649743407931635805817222474947235427161460395991568484615436416013891715360138124648958853057421943304088722963937995151403007789842990961566068636708873986601011820738423963955584371008577444103465855044547496853714717337842553791493205611309994940210909019805333454513132905315587984634321251423924566718403096298441079422650002952848902045671543220699280494723034523422495154508159378602757134131277029429077150180722517291226632107688080746262993015650005570451539111796687440254817097232265875009258705048080322327315091353311722611656462987418983051881183318312705919986246530070835042325542896378601037087822889544232345786798512422354247244360804467567435481505678923464666308497174407337543397894051757312219818254789102537399893653108648649548189844119601083397893814517731556876658872409725285278755430327979186828789319833140149822742338470679006907023153739753833582397541530606363935711578947266640665465671243976773331815894942003186653436666854827339126948032260078524914114232338269683567815200523338246011338087812136448255204179943542387032286331823070781983609354984723552429215509373318853930687810871397084636900161031879685976602388105246240521226185372281590744131001734779923569236564911430260775631767499348328194303323276156133299696104401308926705977818893352478686952483152091697009688457183959273511701803403700570797029000985828527165427124907053038277364287237708857079040089745022324368847518377708441410161567999358425175887291128597834473421064482762316279356669126601816460775159043552352567374112257326180698134571189606185899537858048934671985992062458413434664059134625024068661287976719482082917717621562353759621451841079726248837283746251256612364841654733524286869094129144789674812302678266058792748938194444337684003725489163718454361893883311567793888027282666219664279070873990955052063856983492777425603315952667135186260571747305583975698155108851994554339118645699520598595421592524692222652209663989753568800671957009314178786541783673830034068731773555307313105925813914609743448845922166409176645855564240325658848662453648499061475941862811313506831242819407529833259423291273854204213377289120551739006882772689743794042645558917131942568312647139218308947023905648303579772201930539525255571551930775914781739510702059054429169827492365631986770936296944570554806240720268407006989824872648010795742422355467495034395976516719560806566365094829567496822478300955413824881156273267931896258810228610391962418781513244510346909716086283425000137353301257910634020216271498073155078592802189582325603113156257778564208477594505259592205898125772284654343522054665940989112103759680692947870465265757568321583688966356965693543906809574403982072931058161776183698644918007802197267220200048659373089382171611272588768116426205719789649214529440499870982661612924556744612448188999391241486678893965816462837218105586885394547683829988737412062230482191330955376830488832707418246182191305583551412891875478579106916041524293625038163962201859347718537591663246394706374033901872281107428480819420172224672005176516154522494749954779147247903299222437014486071933126914184355448689524848121791307548848927754089943263736030116894630391626781196739662419229349132069250448128904519594144863723228487633822104419400068165605048785997910318545853959330482453498024624948386147650081447528893170844606120804065512607164230808819765845960443657845806304362426180599626717078719233573306575324128440861441700789138712638587600800609306493411817910991717122685963971796134094046768848873033608962381854714768037701844057392000410337329734452732999332261822165481659467259879443234661712699252207187706589194888557851197044398996287058048832010164219411474561052450290050419804134763819522448906816358485797655687266534003269172281940743122040241710759606616333229389546859003689531223638791341761362306792245023023390407704736351004917716634719969853301161453272607471222864689053937814056140762090637247325271593262436844541853708297096694394269905346491650889882091322557311197106471122657592183256259987888485554756961722435717297856931738566740022595973679573200723455705923963302282194385288201203638769332422107332620091019156121709922986368330316710332401769194750272644416589124365000494049428538643129489228092202237565715269365709630779067457215964485292532067051313010024564619633501145420569697633857392429973000310282766008149211186177332242423505163684651985799550798988044855596543584271910598295239226689567454928646468871245263248034594633151751883176624610925326122970640182971917024561300896738315598353345411666528893284204787787415161645470844920294720202965812185950855163585265029944253913198450825698031024014685997403976115987708795105463764186742434670185953664141473299201161857262397816148239324788939902460836734093936919412496535543556830929703679497934372439214260196130582831880973848885039463540826610403133399473341428442310800739919523333378046139467547432135556397133634304030504388182379074005746396915929543087624242754922105767329356232875391495446062640180119966987739830239898584577013416951529617716000314347906533352858765950302733907709692095436359832216026812269970770982819760745230347839778533977589197728910909412700943948009423583020765114217098899244715395232399967361653567650918580235958540799413596394514171800216597601766890786354330859446813974613231405357500482991667392889401003371702790345236328856492620770271497652291349962160338148458855850839861183137013250420236832420814920521284491724155650677500407276405079244014080048270029180026490193128684856675553477191066502133484635763515628156206527822501857354714037928761711158348129494899867585447772966979881567058216695923152230677157327582444494933879714625585519308411069287607850964036600321065421066958310946384371763221127277317054276960445078114710318195278379278197221721330415177378989073772193205142220676015372824943781569437215043209448519674306843619509864288316511043335962626532448288522724146757348540019100238770224535353952721803986032518212483389575196549709301386410045224156402805358876852673067919311921694614488453458741480918442315752459687324539549057632362148897370158348696007927077543994994495967134238445114025113337637780450071695237743544864809608526510610712769861249125504089438001563093977158148534270585089308556245662528242212888263061151618854075854850364794197453940211688277247725386450919890190104039984211002169614312944725965131201060476124552136323201538489228029584714161219558004485505301740004792533425894586818389265441600125713244150683031556517196092848175353223413433874981019732883663692424769276667780663305973427469660396567659791154389384752877593030995835011173117119705211386786561779718132900419101614467266093452426919195256521746797856629503198481670501093988745858130770967640777863071726849046400573204572998938102261719488671893526493859095139502555616127780285284389283363708068221879065031419972226356828067644816826817714080014724077689336939812576086197051863513537206115010944677579396001077660714569730520415730288174901325128448239101873755464230200354502330000611416050536911030023985122698655220510278517371183590614077440778650156632623970072510083509097115257190025582557522987783588890196523299870957044467855090896204355575043169038262346668002543922890524698366785285236167730095631896814381581615055725490462028925979015794424282086295836252027475506347961561505384602041598412351971361797034188067029306880245567466694625112231356697556709314645504611994570967150655773652482843618289770985518294438108864926041548555298068563910742142410786181106036845698531705129484504729710303999230520964928653436227736200032087998836716498206261208797746716739417276950686548966913423300992123814463801563286692392787750164221415022159107246659159440536313329323251045083379106051632494596377919205164454116606604882941058909172698756513120329153621447725332135074414940316823346357159325326872758675326427029673221672003963430280100241098483672426408667687895512872823812410576860552031745239783857793458259434103234972361962692112845183389568834373739297784756798584997785885895732716275761912408825025729419416170606625305122153821726840558662846181893156610979449320709498028384491377018373207519768835786693302801439195589374416010551790502861201192048960071557299106007353257169825236443005796415428640999313474077661608142332052512367258207582408091702268268033143694652668113753592796275734708138240025266739784190946205593589408188094236127878324800943968773043125968982415485155762310914037244910146820946142453207680118680231860661718960130303195834855479498910845609024643581800268129970494238155778015406237038307864077592274555277242450124415798169465897152358912770436845608115154554148951133410262296827928897725924262066807004477505196046387926349834384991610900397522691488604451849732804975940494954894242667453749487855596580073857135440506556080348642782923914637020662133558509837663179633379866203433856701987593272737242487657419838233944839533611086088278442293258785333533842429278598920042506982418657300361869072853759311414808723848013328128056267292923099072487958311176345203494753432918966653352373660731316538553966613630884919114229457895989740599492367435534363992774636276850785191539601955807871161695249563798597431527901046367887480955461743075485038894168452866838092092579275588646151638355959946854660679513007642426078544972654142730873068482416508020198496937193128561690746008343320881464750275347590448203475262290438949039887272611719503301830611248838382930325193521611261584940685614650070669429636634958124445747227971087328671692102345648404034864033617395445424582731878935379460955206739466732984768469617456196945292681065744855758425228487277957061720065361506088056718769787635170783179029131055227095297895279737172434468821746545427512809428828873106345198832443043336559899687956457385913634508080626310396297495002187428757552862175041188824670870169902227334892294977988828304180823971061369248960384244512929192738015618789860897375716854158735479773305291381589855492024475806936715605941982199724102418027784466290285526207424218275168215724604800901304651759008982329148384063723910825795960456585774806894680189889358815130578774064020428062262441236285808469359746043932131776194770795155710914652950508505872203517483327954522678930449314560754247546553961076634432285634446000095524314473239896122439838695102208631892950564948479155986345819633483426803325564445495674929507364266516081616403985964990124295762525749954481762211185422459114466269946148419524894778359293247369853706401705421262115238628298029091017017294396552944490786282418226167692800982253271272462631387627151277900366133597748483083452962442885216968564853766902693956537182473383487603494727185874491746640342950004338041329467645018791963666801246264587085647580388064627430325837602942731440522806272334331446347861010778857059682366835880440912775295173418502246638633464303779961729640355514936471871459196645872693126149208612042601825771734601715635423589311625803641553686229869199250458960732808271519528340229323975502701637879147391194567682460316919592370052683769306821103364204909468249950636244325168622781910956361468927005051476882441233078709664186281193304697504262205800524110334852158115542177558378679812582500347153948881122446682276033546780903338976868007596084750202441989685074832388851919703412533221832979888918300017809902018232890943456376276320426154629748502001554481590780818316889491298296448567420642192108390158466659774243526696351156747679230729179041684156942464152556794835163220634369079136769022729579099318404585289372098889202358861680528321763254298645288041069946802828076650730663516101855578408936333819209793193344017526953084287282792616978115322933368095643017882247572577487429689571494603582449439814042488218924422351383969062262917977177713832489897650881778192485345323524338185930869522753900772259788188291046672917132251930120159473889719579379796549535248082228453502203099279445477214331460310292277320549109661031506072958371000860694367617258493071976053036962590443506181057979418681299101544841303114825409139747370661142404335221610340604057879794842194925681833450548287028587516213997197701555103110657473860478029575301929619166228782075797181728947248754797354052376344579596026278690254574889811373290102285766988353198578572525954050842231481750301762998894465305979532117001013473255781009046501260741921090282787104998563793257768136015545470035318316913719689629554073381480621066304821954977364834782375285216190854967491559345472281565642295102741906409438091889314689766891637727843985440357947219922815550855201562134825565257160826643766125086975163721675950803198540819036788077696810722597127521705278762681158459555887051832492662055930995824223267743248666107920516320410887633503950803619533658886974416314236926419802571194645564275535561397151187792960925201529735683507054077841331506072264555879733399122932443486570879690280912753078671718180957362520403287552230913146748509184984126079566792399028471579178125527957998296200064931967624625847091288959294424441138112380304911300359563967565176145478164511612407587592099791592768586547790897335271354032036088427307818425663074847958210911465392696764005437131133346131767930163789203813677582067941517860322376805996312680756523389673794826335088711257376557638870129700433507930204061502716651196098485916163385984646039725990675712001807935236916070875713446798604566809317998737829919949679157887053196458168464104786927116979492287182430637775430992066483735734795502861031832491663272794195158644592104791873820730327044938981046551463460169851566125023561936308858218545950741802995569744267144706702796998619310091397698578632984787509995019115027303651656036158700411653059415692644011759166531406842214163424393174222505875170678205856168768991209679469026445262153077938755189373103597431157794479911788705049379930638687375593064240545795901458785039756083108973913327746964801367969046508958750701531626311832241176902786021096806985701808832559794729480928341605308262593443542221939419500549375921531774394309743723171404467181039316324409417469780386959947693755612309059783078284289285630010778955488343176582803156490038952436936581478341391876649365560311643214157784967207826839824380336120456262289367830161572569872509382662395196040482324491467001489364505104962526055314233141071489644099532582665107363679815872037157462130572933989496448212536498810751114982817003134602188508094207346169832087541130683156209122558902094259953427783776648206856095502185474205322488942397492395481895266573810352216369007011501572415180713704869089652660288507414804279722003827007629710929543114824056154239801524105456672394437616456816752070111958244699471423769285856419062813434151827000320792530581373544594925787000906943377543241589646903493506602549231539705190319833782037251202616853111423186636846060762914251576804271189443052926651388847510196589793323680122829948555581329424715858573869476137747124912312930972660343998153796763361016874458123802526136569529270151949175534587077645869893498456514914395594859219846627381495211785680814119871560037625817421723365540738367603339107568813819231169559198349982304934397292933002014977660060513767149341590619568986398109028516689193023895715641244187051505190506291848101799714423628141713652252738423115878416614162198913271459605753662303324251877661928076032921146423516078864975967155062681140833158082724213806178793960349322310894503311008914814855478261928813821772983729768297634037631614211610455944620518784818508578499348547587084739809827639423029205980223804365555776975949417855274825145600069915481942583614899460246676284768017845363245687194631680976828168611716284639165751741410572810080058702430796806825058788737788641546324731399790033443749809337012577641598659902293857948917937087945308513625479827838702656337219239959076619368526767839311273056984858360649925524267356032020443428179384345420857864605393484631995794933678349640204872678099169946128203840718183876688426195759443090395924908061440115085527651229392611716516146329866297935625878578145336288706691370524408990493945865118203089309063284746169731867405849156248608421126062991574202095097593673615348201271338427039970603450463882363904872309615527674974026081648727645898020312913605052732337278276343285696814743780083552857169102184497846785354549730039645320563834078574076023370474525335306228759154963607689029924552237977705460614228583882694424959380482489787408227730608341073645020469924973242537158789343423678291173901449421893260698327936781389808730820885007908995664466322715983958182611015584746863144802643683326236402980612424409013313221914602832550990990365895495442969100933019318608044184401922411612910402421003753789944052092269428488302721467183068797278487711612268020832335124955125226373725779349607202996431010050146139557516352499946869464612916262309027707355353509855235580788343446688620523640500475693283538310855809100922366783021610113028662336452490176260352705242642076956866930132390860447913508288223768332346485053566741943177238572686486846225860347586045337369601513192228403780012542479891198111121947122029931777469405885009431264877185615985412477211961345427958591641937286010605657824083463309644946000978759366334262622417517868452223451693363174675543985526196074626575875031155928176547936037532480669720222945280698269873196727112422016076921962530234681505893664360961529631300129472900908326705866118606192707209277093053464610537996630726112438329625830403183466362353243649472479170417742709571579775610954943921436264051203380430421818614046943130036287647689403726540123166670976070413879919136722415266119453113870504828336480504782668915790057273950905766649533119402263957493616242975473264730709196731896514503400046836180637292237416329821588056467289241919684999370577779718774128868232690446193717028359156088670806719709652639819773362072991684550759097395843271195051031385527963261253937716371888680664648994751157652947222033670471951701740355543119007028339239266396990724281701193952865245656782480438802096535042439041617978954593339677302765587420277677569561939126842089042612757648659414430301648313139157939169716434594069999423186741650332558425334889223400249845255801033415019179371748637265172899227492211087459350443962853976780616712122914999995120039170344858315096745791857292566163894097485534383245925611642906472149793673078733971332569468920279980815731152137610957049539258592034213410359844897740358687830311012862248780283078221834214135224541818203949471467799073555762061285235651672115397456218785488204553878657508316729021418252613043231790261385283285217695752908313700222420403876260227755287273655146952376812604097373047340136593797751565934839110584899337854715743622208922133246207721225019580500445053517638029819302967920546993296481120239084967868353757886001246497991720751705231183887645479167394953072933206102068776796846808985406072976115014670052115207172611210705697975602789107281521320597525925467337525721008432735150493052814886826441763200235893775085420939269241106075144449089035910438872880457034322758641068998847572198644315896151042611627380262149065333848979155646348362303125233387363747150180884500719117497747235343778421137516961027322915997451984714998111113517437571787330479987620145261909374533076366984737516238015398830054875309887324215273023123218897161547910449601178598062644923074933668576865338795352624666062411555022828330360872899867602589424633125479138037480994154587995455825945064213379140891404016688827755941666451460076016325948667295339236661509048171795992635286930435541750362705578527889618706829181035853647654457425960393277730728675698582463966704095053126621630001198755906338662546173053184826267614334757553769861719006419257661914431606708291365841369747233258824174209588146549833967601605112524262495414564106346552541082425575263169656608049770375616806537763239741976847201650940085514261662590336218621537831893215187902969245034010910101816547517239201295584960601995364572496907365295952757700381433688984758423957135305185332290729657131577281034740307076597551671103970380254168819296891525769292099642853706636430971633361060065437984955024106007174536075476244873337238215031931658919626908483566176928329697707135659059865854174637755561045746823932715740542510774731450953313882628432345433501231829176452464785898665232052965844095123752956514949846091543253340822869851074477726693352539862331732781668603409277811253810556492601387285076776754123540723368800108486809421720150785211047380164744137888257984451613614675076096183166867224878237969638028056802906268459923639970579718180731025271661393652086115682917707354255953569233720351868486223125899614271507322566893999357407594275294557215598817518561525209838793687285004804459809835262493871281132266439300501678905746314449488162849955396186872659364927529476944809555560764972640222921199300776496669182707897852837978421838617915691458226684951296476693269573467098323512252102342309606601808206275567183712329292448464013771076045713415450748350151263182567993566514749764092669112151327849090541656843085452686739386408388001927433575505377615567913219472149176025656725164959165822727427139142600193022831562261910218103274949844975919463732200938193439386459558203183352939079359807602793145003614789963339530763873387939625510723629990908554273242310297651991587634090182010960751529737374568700835940659795623611089379128025381623946779206841084838375923095579980809620304830907580518244085195139909645422026780958021228089286874209354484457083665691304254083616285056946808497570625383819183211606950713783734917987189498012830048890957274895054194867002756485133993533825433790860334864632827920303197932570051289436420778466438156875429544638153695357656861853876569912814629980302328715798399844457372354725230334267769185309021594308833165751728255308928033855447586551101938903614924238291493498475664832684041097626429520353744830291107389924020863544856650086378196577894662540677988720234466171409875649151430139678248397412886075933223329032340649580126345618266322485307302043088042034546095844440195119415201230063621197503190487608179048998840234361969324777692296362881673496373149861126211702449091212006646919070738927896935417344820800317843059735564344066589129915314941622469846995240696784183410759449464411333516762969729273680507478626361759629346253786581446488347380919770953680458904648451289350719895382014553673623166389436369932801933860473424986625472812232274199777342964316704927139267326484208435080828709274687268581579402348589435018278974421537684914465557708192872197350547469709419339694275994729713465909949538966649727598407969034830715977877958525201392794466148580715618273071574937239168487873693194806609664488555684313253763099656667027621058821809340834950518159870455723550914648645559138311318758682207979198666346988046106227579994025159418273870017762113548858670352504085762135549679717363239032341377542982207705163479434359281633782841890716723020300161477789057080867683472156298362408685914868849438201288575681033762895581277005422035201820116208813059279588401638399662932014456322692979271033466559471271610916681987945518059501492258784760878582158662354456009868208253900594022796960528165994583912271782285013735752346262158924203804719144478031896756647008656835943518115401420590360282099363315358111330677591232324955436160534527803734841120161237771011404558648817278744174346403030010802494569045144231364692598056684888883622079190230302104266858834325364659614304881986457808650569035926046016098570988544584026453261741714738270274610153194779840168452347689820224974013249407751007632816191021006618593744473174650838483081473336702729473798524624903961261291607016326904599523945705429195818007457417468613691705607332875314704957718096993123186585347776785532842120331107399006048464182253590147896239638352123511905546845400549788377092081434526833253297039433135826989109596699961234644445958162217327490701114295599341252434235303013282465308007785929614555609216554549533904805347472357912736067201171213314648597396179334825295326747697517416072445639375339606345875571293439748922890031247732287634874536530079043162037404348682949235517127307614066588829060087709561010159974422314572616418199826032862806038923050280457646069661564209455874548747205692148311387217841440496278454717705524805963969622471372922068917213171406249304621985666766612469857127464792487024846339004978808895729335711261037983668622149192419290199372227661247756089609468741025883603019034659437207528319241285241638778100912736361673650939948679603945656817962628010541298454455401032412178406903476373153551244324661881772678437577568354641996513642286566683247416205990039100492591812708911271454058007299197221643961168102151186393957689176129485647090252183270587286872725942914295076759349241956199280209112698384618653718744381106781515479785437976785554469869556094980808277837876932548373185711043870595876707505192838365064627453044263173974880705356616303311722518606632810102314615502034093586173492673028470859149208265387965290319841960514814644447859045410603108834701773955576035517328043526223137104152968065582236195201538951660188924761864127427183622103358974706143547258222951920256453007347189214423359493586172168222150635167523500672970355364288215512674553529921999282283299965163098428042836895596312618062877754065436457098681901148935905269283103652979814029391401923215750446457403782609083614241512481722774564145825622819503936407782719676471578475209632351811796183623841338595911111041698879293157825736758392226158851641379047551187487154702116456857731830939399459400669816778322036862454967019979625653248623086596668984937080165899657567822964802018150852781904547507592297748713051009516379103856282062084599765583752281139725224105434204917136563841587059975763865110427014221397373797394333424749080561162933741752783562229672504350311591439400750294277537065684783460030029525973917267985308978567929862227833478671503285405788391663724604189923588535270074437074555582623529110071424192944179327827503544719142286819058068013320913848138104009334207575797766972243674630660518215777307931529976521350919497082649594900911642233984509137723600714895275687684259272645704509429978893306571633713235575290576818497499746263439010015703628168564267656089217456010087406293413223190283556772213413988461636366590420982741588505779874820018007703316702000529626704129541655103572839470619239125227675068517128677068281633905403922396579909638611905823881145157296671824343308355035481858928923527180284819808991815142504940609482876188189562198268540157667902946685009804765866960167064460960245014828164779914322730795880124284143193773515161087231222843894881940755955992835346813570842565296067331062047919943100178315226320167743001934232568938105636258628892553233525499797686380256013868856770330827975612697443928589072062078786496597049002294993247530360425540015379133906439303119073804001698342826921844179353539724955996431018808015162583373353140988507271987211681379370315359646001785428039514999177848369734747811427553424142711802841309679521719502249877716319448823827491369748555231644723340777666392078874361696349496303991545554878854714062925156067331456148487809455540811276925023245425531931888906797430215161655859200054623843739958733615383343817951930101162110945760432530816832538598117305152077312143362767554014657915591735448080904811313017380577458544623173420468847168048512950896427597587950112309473762216061977389632385365774971432682402804627165644241578117184915523973256369948053936941002968523647633479085379862532827834121355175594406226131291223754679646235797860256797317815424752922165598001030961048478064923702701721862700357511262677617210058792115949589284544335678991169717250625699434564729646007308665765276737942763282477517266462749183497787568720126348486559183630325176750190099064214870745686684307649900851603572478478757897743515103745344363251972627183328288497493329889863293613531458050861096227896278720572140515003036140427353994710402880358910955753822619485919108283996211216048767724412629724945231594101059253171449895470459765563037362330264601238535393434918297046073003815662926886706373259568177193520975549131437704846760539861661700463110907040378999606321074211026406219618464846211445623195342090039622168081544220599640616828318448716153783388554226895437080401671463993528499313891196786703984899617807745441034890383747197863273906561260107378601827272728278653309237022185119407054157419515843171140714295236428470870990509836306590791038844792400787547328328950655054099041041591153477976408962794357115032076220353168252293411020620732806218519900950975741095392863458047576708552034898327351119790704288632575781942942037509420133514016496620923750794311502264945713835190834800277045922171264868524041720430125553582191023510306891845909532170246437367087107164448647235758748956888307992247780692548859303236452122293120174266444698177125528324128199825334124841466420694804683044226402914434298270666223076491660271871515014189924190505985225154666667251239060362975271416645115011236442067464547036921475716666031421220314561507234519832450811402798305891791766273031221186333649252093946346089654554991058758434315568523287135572651561500740381103719258173291157812041335800957002415496909381289801679495772897463269932825748499345548573796396945326569532961173291589332547974594981436890078229159713909322847848408803557058013156081594986581570649316590472533987437463876381561887418744516432040238238119497104865549613046493782879631472897006387030331688138295923149202759204392051935083100507389160571995034567382237795009105772346901167070242992714367195432248930827059520768031800077604688982740816287069241081197904483461602246709442198367675772019351704247927404000244336074433499787988243427132525303269759783889258228586830521794570875974641279892294392560534153261129284750551039265328144606565172688917949961259987180806394606692872154768666021343498510513590146741204673070423764354955111432088586452400003517501180496522698687983523579402607263485671443237910150578107565742597042727038021606183283329382370412155539388847906199139377856062699678529003719520109382185411526924400280047894226409652882689734138516737902801638778486716146016060193170304196489507595871598172970750956269473239405039484372999146222222234399542604231461412681181815988535346775788439513824641947766576416241882955877282861117532735518654725909836152133371642813382106079251272987458913634837434458764503726795150758899432517700220498608262031136679695484378091349785920760741564088647527926130230796501048141376224018486425896797022281620136713486943709238560275454205844754492444487910920968469429399790459369559207264047026688653110142058998026118018848893536544974276777205020596337899960551878450366767898575947112093025660953784646973706133326230088408241905588141193895717337126021189514075404234353892341327970309816877169766515160380112221415343080744244379299443124717989999078701860800704512216231419474406243898529268063644408526482448762548788344890295672032983950757405001363865490650690778930242019169006009916201258937483340866429233431712475433960715471126715073053078760141132445718568674690212010060563553726051796540816837674775497024288477700035438248087738302771529930465563100750629514226196982500925958204889701254525351305929211151984532572024707846925556145395470358765837739362813459111242806911492299751115402384924542897845361031127752786261066403561066839485999881246567063666004131501359327349192363865060686544764224171051055470346241948082462193315918608892024384971503842618755446355525391148244275250322091846526957864527378004530845685805887658763760932921564961927521696867246559906621415110252236432330186270229296744032998006370904622861618927850747414058977863584661614993483005339845676361810966393090083946005431524405301542350777895570661951149878476622161374554509063645532808373833454633175390244297921467828825570455478422462472680244768199148236130982804647445548883106861901696729168974451320553052335819539032644497366313953147098817589296914050088512649396817401017161924200242679227803742903099604818987889595250660267078019725402646422596306638143749387894405278942347930229673557986250368533641009649833123707103020671438338371065639179352005274965603736762538401078686282103145907777992971094092807503907828201538626278423781394994371057037285377029142691059182785132148728498525275447072302331976712213020876051638808761899157827156441669549460771812510362051232272304357000774622958395636067255435049181116766545428411497359516307256290109405997259010692872735382496349077722256092100837222236599166328425259050356373065482231715000347950482421597974108354150912517003496728230357000042465747292950828953785317931110106914725388280470704185558416918567164610209540154649222408015561051716926086517541033395331356657877332538509875184332145339343503314836924386706249917684319165395691101478883553815108589128632225050794566561290685919642374875753882888635259488452718760205018533971514942600085727741067462636849153185279874124131248032078479770411104239252424545378934083726510767248562709584098827844142046549388196655704927643842095223609822730032563495927738109868371297017536862969413355739595538713420091878670532695600107546613740440315577023530632838408395520648259043834598572901895469591280039764376738024618604362519557483232327153902977660281049539643346256840728860802408756049839984379333995004428166730722352421154366917030725721903042115955956715718543179125445069632131161680928904897891021789414017557154763577424762703055173741722757294815749225117990698498477351140878507679958287596959624162178859786704904243748846644057291385611141330636804458999591497913374380532214242433762263651759335328318460276208923964036817220458899407683968326020884724856008728805893046191127212145951763433822275170909101580063984468814341674650435834644273911593026874577953153891134844654745189453002344706035086039613392537879585723344415174461748641401925722678487141462772991328058774125080695724277155478630706470009181111582992576885472918520419097408965114946795065434551547384431043764481322311147348958823798180382742258994058317793791143696644357707876304260131428269153331666217132201841029854255590881457684980422310898142108299164809178547072295250211493747464778811532345507618088436688344386330780061571965260135801018154133685562361750533268074154344982656536138973616216410434099651367136931655305870002370257085401692791797334083401391229396712936656184832907123747439873477225095429797591818578303335587383085637065158838473990263019411351654639084983465609102759999427926094476034032570540885043238382486094605808749671833456385552773433501778525651057541003926822055611680917578840877715098893899230572678577959512216263179071996009649030768203319927326121004000420917433973410654945856021908286770527629109673875553499173471266561114167712030227805255827380184201240520575209142029338881182801707635546386176100801923487211009599133254618189411333405597247313464166140184112551455432958160951762381037089180702283701586961753268463376551470109085491846223599923072896577772444172058938802688163498605396981526025088300521379483313780396114433536712229552078837167973486528525676084519003865444882452993549430253791375837587708482463003603235193900340356288253227865905897006684644530999194093777233117595346552819840444691833026149151926670692394445317624905428323952019337310660224507299810969420962954666667169733691995762252660118700120764987568962306527072451535103522000647932052102320964504663258781381555548444675972959485518852563130852991376536538227572067288049821391572542787114851692626131923996845823404627784968582148868015406554366044877231393540970060785751249237625155117334406075692199570422978851686140067661507395360388355459723548290437731143716398703560794789254133932308165549578316355674798079448921937936598567680416644739945875360407401346593772204500944029131706612496810961313477757613551502882113390373532968960602924094192208491231588990159846704717388372739970050327142334674358536550649713852389433238082256718925841140023891668074672994082857980359761058477428117680860951295910651386502300339233915078180727558060897608944505267082400329869857628810294535439762968777886377492787030188983200951175812228118073562570198906614395750109112078488450515977376093809436906454946883081301182864238854771243618896694414314888336200576524606271323135775823976604114895572417378364222727117733028721993224155378535037622168126909143968397205816282159280888279366847534370620740539860790314052041536088643574607044931476976332546660428341314268198029969959502999275586690419025654736234835014816999009991926220716777487410556103829142653331591223591507478894340190302090467266863445599251986277619295606615155858352126827363250319506713130875816235303844097135769686226966009147933315780131761779268141857426723617705713881557729541700574302213608828553755551857588326497286744681772287259698188507473079811323635567263302914732625963639796523408060683044127237981841120534560143356686119697124932941387890218512460847105915335476711675798395067346246864114847183947327817644218904446131495145973189000248820440412653077890066171020341228747847121540474741491846375012243023447310738440111918390679384611930440147673098096755588330673808009929500629331259709896291108601285789139266284363198830882478112597506747214154237984772931419331751512773405770519656631798430555818039400991727345973088195267257388194192274360187131688915996270344711349574996015769537668431942314293343353264583289029765079073266988496993945179385336718647413767326845299444990072595474155518714232713601715696412339194328395410208348923981302758723159275891746493770988451672879769516066871052907515737415366504838030363141117421312218340925343308862625455946513312509472614207088733747198817389790692267358583384715816214555111100336098480975992740753089085985713896565235090394272559345998538520308071093225417209896442976528188127777069371693213824700591395840194811670934172893547256345583909033670365642656570110653924471187715817180040782868957175686232184795409995840656140162006447871848046339810529343786703219681827046171956924306220715639101712064140786551402526453886674553155018198641126053839262111081457230010382106341574898971690853581684750670688001076593378876317417913556284210488881803980668035916529484603890119127014442068980345978646589422029927124989681772385774188511215179081398785141187559532247284404320162081796321041069153742925641334751679712800848455850603563746247850777770302764392872548435151951621854135778040156616986941998742281976280382411498338542232161597571241920159981506799910749530717238565347190625553589007015385954386801370141007188381966795988582526246155166034849605406963292973828404687637001439302699053720410413051406119570948211744981725054496858532598292625607361015055870139342941810033521663673779506873446512175462076628607636602582681384426412818839090059558000209022758981738784090493228709598279207598583641633562350155458049555631075906354352437579001484316569018636501737591211687367118753083454733545866572458189389734061593408871812334833362253239944877259088019351091031415171114538112534154321088196719836040762627466673652555655762451174474185138498229615486733095750101044819716774702703647682065125704322157626101885536574291468214162969081566062584471242242413067458353581673945957817783384687350533748886916699200662853527172793307937165080047189691897072335761729092402844625272474991169366826920701395850456519563576636300258371322205329244189580517679554511782458751583477045955102275147301375180123524478994391040354574933669014135147477987804201284113607688431884494342568957356371334138494809476373712806726982366038808522781968006748511027262028983638646946052760088935810415539580419736497092661048103887439166797250227054882472788608225824346753150925754273360627158301411762022068771152017330071402214717997341210954962605218057683469986417243195143219813283569442045431425581553605459172526581414806115032354810466570037740937864146554398592992078296946536616070573575968687527430199673835519735294502282760487026414096350142376958109563974556182901646809973428437013897070215087530708328630301076697676747952667947141368359849095090371461129951406579571488378071758640570811089292383771138569613239008898865657330984615316390554852686048639348148363576755758907049114991061399845525796895185217524987212987525179361098513761503269391286212972090325322426382986211394625777847788674047051777480496452890929010081410634410182697350720877023704995848987440802659312009022612098687285757281316730330169113782162014047695794464876745651856932915186361448637913868369181909760392238950418081179390751560031203170094680934877952238138161395452861014430588751188437930359826853485976268031546691766021641256430544735216049907447829763227707021577963969945956747394344483628149850135509259206879855002561218945810951559532858142862177462240574796106472951979810226003087137933528690871627352849440720330327352193734823439699723641248542545204192453448319471755103782677046738274914117507562186512991342910117998569826627278046518890826643904059093943115963492566923585328822816991725095874724360777612010295786949631524212517531820688033997631914496128000036170853632264057171404967641118137220946879733696798793886495485185017671806196069944093348702118168456714321537847650383620966663411022126991520525564818308712116425804079677261486066566739816772786457246931001493991919083422313744993089377920513212787511114973560844577910252084443117557121487093182876437519604356188541593320048191442055166991201255027455152771431838919430815712207892590584040609554129051543926490302355943881083849590494375089881943696768116091967234766956725030709576260231678859078880241670101316181122460558476498812631228958395773813142305821659194314708963366833252194195610968226749452041683311390088467595632979586011071111144796806578126886266148995917763632263629522019076609929289182050029647509741932796748925496714394613291377250715723961276024426176951597021175533729706350930120699548969214878094196888238230144380712725058553066377773776250237428251263731744035501563230629832026565552796531738182669210089031485046178723172414744606901920160779280612557865877923852627325092682235508858655905900070341548454765893397323047353032429290886291354780714621555085184809540597607456993599310075883686509324262661916025278905892117706231726812353432598594803561173460552881724454707895643171921849461361199891164681052853879736935385908687853399957549356676644843377275216858011775561834661074611916834033296754273332258208627184918355057690321095691334220799078355611463076294940597086106984017787925826408393014357349436320677080550117507553999214547287156918222043172431363427177836300984078641620300063457811934337922430693869817761348578532978878963072373646457762241200725577053489351260401716174198241678607190298695852317335370412375134526444068451082547590187926202732920757462439926100814140918638295443860417863864921206394457509722253930438746897336629341278537678393410182260429681944588644978300662341192751325677903644027619301530645449807751808974276412234908718237062876753415529044476261639239521741827718671944758514531275282922175081239356068871461074906732965053291618950296085040462345260008757378596031002686586527523546447881702980155709315336768080881106027551046952872961418134362644910510801063955937986854280956488429296531584291706393613268598739339367901690876403767293581215425778890827808544647775802133991904870542887272954046057809008883273274193149993832516656746840865179433386153205337574029995818711744980322062405325379066368769196981629133080397092231374958804237369648261090388520795157631381909567323275718932033368571110812107445053754397420888136762373030624845129474959890180040337741886167585387836699196988841321685837028915785288066606808620873502586606641915319654966017558979684924356020395026343785965448051903788786437458795064745393691332240419476838578386093594552728348399837336079188288562460349142199727930264205143484836956575228429527982834437434686188996225054824992674884301724869264654198742243341002003728727925688796986295838030443335159453686427697903246652235887901954149190859351144587352292990951729104248575000059727954711185184117628393928415942200519779956005725906467223193983672854364408543471852678945591987874929019374613563050952571091068135287389721363823225722327920370890059440147437784725327535166453458315993601454803073448568227673611110104418834179523860644823898968603600441036094337300265188766571628664407368027098649013555497945561007898499482589280476810758324396433361007773132677254932891902702451566002581921740598975163767227412492506826196072128192919833273987634860327894072730944702299773670671238494126868990712005477318030556709143302216723783587284005604212077119473198645344322966004545854667018693658510653230373985856003794243654399812754834000337389416507448869179539420197952312065568209745155799021414986735490156664659850732780839375974380160021530300662847030594830618501821393878444015917631835251172719734857973557603205876007407598193411828051009819859624298222279877248270001305583538533416965152736793424734327005510934819338948361403009901715355219000314183271313263247186196358911941899274752048163434930361095598507602669010741292149279243020442880017562967384664520605540418753326754877249387235342677808312683001179998790277160147342092013627995613333976928638772668296954334775651548019513267729414251539404042981531007116101760431027597678760746303215406547737117280779665193871680620412468245510348646127323777831835460542536486929660110979114396024110240139867813359428411269698401296968246763653048287992875985200694286723013610193776193115257749931677609498214208494137833800701156180459529480062355970686169938333038206409658192739749493568940300562116293577923835448488976835688622789839424133458729827877701071163831882590878660655940469294980904011972391382069707622020671755630560880325856700664239145742852009414402910381864891166818644140565229016029195219746263620920494107050415323074358478337778803709695001188658768135267555360601616831333545156240352540278500089161283250593993399067107522244107251830352037614499257294130393161708717005114174404554578476935955507289532337449993038306696646575088456769212853416132068648275972037696869299659013803364116065815885800749633926181698849141135666994306686139480956237246154808520585801651385046045084993738707014505713254578666965406961971350253093287513171869827995393349635879157583839831867090098646454057847477730705595031066926289468862066530450033999655872161212814709442872762033457166490073599224868718808117792906772706656184429233626348875131086829512884528410480973010811790018904772733903392631781172872972278809375208163788291057972727952889038365452083448238726438058683697959244541275913778263446886851183804625910137035042343088275231124763792304697122277954462586138493096662726393889560667031618536333315467815449952512017161226568935163726847976681542503128551846397664531067889744191249895708663261021696827887486705400704514807104986774420654484349082862461820443830890224699071236310422491077164604513199930403127752800776029896155882839647070758115766007639552348377003809888289926129698918024474563526986820139438588071549404651559041971578835569340108657350116714641292136973339392500094291803576627363413233493157793111689149595072068095634231190617761295791872642720218541587714780039051003492862607073811546012606293182616610282298470330548653485794920780517098540608157168638532835900940323208606319814877720421782360956907990114666477397412694446951898289604711360200829709808461219550360568896313424121757197456888271669905211309241446709875864366298382293393906189320348186842325214504648542681910773286607055178258835341386370246989018961411080987976924991575868627253126578629499457138488052281619796480071886883575194678340894113112664967204183927920066366713590002611601252189832765587523838662913003106506308504714775962108625260838432962753430874665427498727960775687403332057584555428798697793924883484365536096458566787523298990526107984174901613287611032762593673236509466030461477913288126342135684365253762091773444698098990299190529114333249553013173608381005485352763135932152122455177521011614085594633319961612247164785430514845686295330336239896972723876686758906897771440609417974394874172977675402478458144149765016864059010218471049662552166806453641312347768634633869052810023339379644708110075816953885948447066539142327439207687519094621924364115067837878683221984673058389291295833277709868504195586014357056749683165649507219694333575511305702844436102769167358228762410197098813740378920567305003206057028380107329373542054853581463228160234556832938848377453084345439690027639317351755821721630729072186246565287543516624019937489749815146213024824905645030372624720352139938728742372468580430302034770773953779915398361207139445009486047095030025680635278146464926307625676444754474611806529151781682947891661194484267062800980544312312063203142623964372758368879257165095917023903341553397357529414065111592846609064667083917601912497973271520206593723731761069001172569545271190400001426478371365167083591329775531133043535517355486937763190788348415495237510674932461743045256850450516298519195277485223738810193459965785639600028501286711639907563403668249137901412645784245507439817747184615776312201709700301710023811634391562109530602892207982839494583576014311328892084968512741190334946381539099178647223122695058602718016860792540457330964998213470303291190472805888787870467011156448573862301198755084936632219346733362313694050946269162795128021211767302954603713377734606417938532793471040782679112196032239192628259293489154438304433170115050316318025197795930452445599911316158127884962124323963676583175837650392670943683665079970433050442669125209086030443507079858828786391328325793860971034349339495453272300654835792878702844070127809244261279831541468748080345471658751903352848599717893490920298623709231464587075623659474782574003409357488770840998257674754191071452119806237035656600698126775734805799017003777458098515587000576431326720664047320810646816772132505557656304701223102300709802353822704715085015387384443608664071030736420770898102034560079184066489251001436843008248610653876698422773814367318928252690832662095450513259261518625285699997943168813571318601868231811841320052397435133146536948318394488907094273319303586311377261340693211488519413042057170358844748123106901594449089858176112536566963603877956889413587453273348357933651277837476007302252866101474982413589598247361185790911583228470607570796577525121972596165178376167929310181520523511709157006803697085973137492465599301812979904839650684067824911025941379555561148098405270314280283974621588810006173499524243399705603055602670116037571718049398237494193584895529368768544848927398421269432120134399345820371893453646581115544766325717536892731551085107987197210232590996727300973186551469646209294170996430728183656793898517087466637307895187877548890806459644065920372033899387776232206234690688988364973448036632374994026844409549950714214624051295141006111453449490343413529135566682716865359687342359081739883935973697026420615761419312115676390034613626887129255581379769880991716258705309050776140873253704639753868535149500485970735127562086749267659463464534202264555455997103928366896354546669257128929359347254745135680609862468546018699253028569258145533713365898853288570868523427366886609794407395165748837906890606933061951549136299572684192986826318673853998497523843509287301690100902027443867926796471280800924934563047605109186517635667107275675519692557380763528859074103807239646251278715530460949667544376516789958693189996056963917711542237062940697159120985775898427464627863591396779174178627399365428573150900688351914076760267575062434622211623090968497376061012282117292135158624598148047418691075910574155507552934905529514624300464705869455444745066988750856398900184763199967390054169040115483309199358361097189617500414195181140234302089864163814983480417157700821548484458904310804389213054939035536381499589859590579480493449135428498790749570120372917715700520576859230418602571542985982416215497420213948439934940579744340172243710169953813686274339226545840519528699516004015217685782684029009082618828781474486529337058876959004062779258600969956820166033956675704738040925983974626627468916184442447629680385858058575383048294366992910575898083540584660650597647163285402840293636652189105519059443227980342834428539872977838628914524853148170693165239299136614603757525440466713813311786964450170345641939085461405958142201829330429450401235838250208128855454390794719006481845605224730819810804681352016581082405797179076577887984012471007753925861236640442140379281704106297568786072411494942675869891187892683892273297460026106942313769131761131437633419413722806912861991924370283340258494508103178929401727830854565821756997844993120922654478290171384565243627268634931731967254091186356468996897995629425056535581599265310476058666181623304443232023833541093696380553931931024211409267467565435517740762685477364502806623711749218791807331026629395392698689948301686670668435211831574909979865384874486491065916852248934793168612943549189984897078624512377806764605897551209473020300921297284595823803097432504701848998733652069833097274667808875412846343805867769094832802870451597563615325144351370791560594307238491456964187203313893897839515876704911310061919718162715333839009461900103061121478564249134191647251784098810635075969000850101070451889127871262012246270703000994235685022048180539689718514434175595223521284800487321459369866017027811137545834726674413332799049587658949597830476108787992551291373896102588676700007772697620061758907532986554967886310132172184756689535073394685029122530486068246738635684318070683555661837852038139343312585694954270930093351330338538141054615488634273493227212657595954089632041554313207562225513516768727175055780986159048449464011459680602690328840043649237153743998179686470231058698631496231760630041741795843000423387426119139637070245291447266469759290198065131804253296303207092436459664602879537221094678647500836311635169395081185560045808608651454311024608733661953239837495733031328359335345321856823341621641496461592708464849935326052529001223119247412508061161959888557689347306313812322198583282927976513792788644277088877906710144660452357826333080923799390337578462622157170270692936315470051009705916126851787692232683989771966440614878064117985384397573560602773366457901808780727949133078538605565698890959337728282760622998952608771817050359352591980998197393537411136039967011178736786747553891077627610856138029259505274915362047786042906207453321518930916637504598094661018267153139073507897224280178483950193039917311269021139050451992198708732186733647093740124716050560694915145974199370099017443484357628613379255521173047645878933525465732201090859469498176537985179564009017588408862284267982143410637096650640097004008657119458357718304457144768062304036972268934941611926720325982759332458600767828142852349801367895124108844094281112143197086284761479070980381443183618715859118962581658472482003894244535519637354495826762885283096671055961646546460805483476630539543024865845364558868522983406179806444530885438163788175674925102907835587211863196972811120259815375423659376414824570415835604939199103908948199983751363919942371672263364408682667632470496168309007237949562010310579950647548592966147397242337354169656538590087862653810825423370199138983633425253776501706450299160175234143339704746540330798453950917092927180266011606485437597880859957972880109965494667713279406203696938384107076560468595635783086945613554894190100752490749343175153666022231079551121196629142445679510344008764459881168051755280166892967289318688590131154604837490626501265314148721684961953358920557667899376698829472411540734948311493495437930956089348047366385255558459943757523358054165140179946534321720097197683357756545322382420518405118778912354293717669538993032550186547116734952539017391751538870512972704796156868527646416465975552552803272044993512140821587052058717243085277579550838246365385274340704816290002401895905083616030616069082904307174407809206154769285090734356263244458215466109193448238577819813069936118277963912121387396266999061506580038303291250428351402183956405370958451264620244553594344082006857043380314644180464077522658156730830659594728181396857931742139248230179552974156389681902483769852568071915048331575960920621472391731864832669244795295663596747217316859027136313413844762962340832224711308904400109075655574546324970844215850332456344016504247741329317726429618502667065509656026370894212983750859512369696618483990137527473581683151698926841579990132786286374537913625001223785867315317613364208708549231766041663788049708578396638996601802828440337949006597552062679127939902741891073755782387788492787735289204841621186480956607464013352331496423689556058154253290368154929819189257850594316726301464582737829110199894190875588255146650664851057671960437903523443647808914709644685766439514080200738411471333173443270831587276351253084642935495238201242435398471898428514183197230712063896320794309590516417001572438703148323756448639924316407596224977668001808466634049668669725686502803165827540081837177200658009320100437497139400748971002984548989838554099279397276102769948071517699091080677975729438296089666333705594677793140449960710776611820683913595091906803390254996503418357961280896892465613226460560019974519091985626384712254173027205268525071207596653039587290466537336907352643909583428604782733758800358043252388664603474388999781501228599910898682371197947793407360736429043802903622282479160751749941601036173618397853834911042045734991757088974613613120561944379278923606070748179865437898565124481052490487993417673568614859388295186143282698511473160492054710442825253694283113771098985702494306892947460487014688414764139526421193289013815570177590874057681689819279332529809355050184873669245354368022492312491545244225504578186484357368406157143462175007764396796593535678914875893342195921862832218645638626818324321751173208205833803842576324560782669695192840819317808251318441388539312728785762203026103399965218855984298835622087008585700641044707276349186134789874614093580191103768380129333758798110342914724577312641967592755120648502694486487822009631471463410089597391194902690024520981916213890920830738800369193451102153983129392581055712803728824164471936224805910560009287379351566758585223099784844915660494493880662260274618034740106568842535110585514150650570190103911325221651861656450206677930971468232276809910829753552521770939265067018606135529286425307393025877114247631313785000906298811528534539561398489480138770045535796639215787478711174238155214361126459352584465953278955398126439964829871293496090180287642797757537971915937803708263198497944043396956864012616985288894578428786916399562333497875045040741759846628272269440090643449914772852936593675887081154798047070958074078043992084453841668234021757571020690509762268221636217969919245805694238051687218709751391808010492223616790895332227127521260934692063573391169267364708172490882918786447298704724531624272500931018444265458402388157106827901352725837081597693128895572253755557128855624788782356259230323878799382822213068743365826017536715635572568158421983474228894945111677186477573958070241278578497421548412062966012344779726562713495117031946860483101387102428896824618002888311259793238970721854636845565655979176871965991757909104138695310783636010836485007067778824139772021295294600597177679975248415130137971510898287562687957304361175624559313616078167405796246118830197179581250024472341285248026009695934103209874338217220197758210968863815217316447193855900183197178311264241234360063412556906791461969905622905268381446032161143781813017422280655606313524937260282304845964539510067998854927981181953104168265177807525922634268480192099243873655314820908395626964096639765235477389136374313443702992359521613813882481354181522054564750221654868127340657358905041694535452580211503989362541225534376399891072407408899725581151425428303013152406787195980124199043131467860459399194221305308510789936805021864818521480089158361792105089359109106194163434843161594149558878275386707233619092483247892728953252298345490889637151297511823466792230681408761161657064113519769186452458251128685650279183864579821275738013822424109406422201606503107068994025399588667964038699180846776096112933028474133863743101442095717272358053751082563819978472898122296370788965115641400787199177773351749529033484721228081666123667382556025539076690098882992014751646240418743187744144219279935739822812391623737351983430369932495192752817191817300966728981771440127653284226429514524746706650470324354064164916534588534664124800493259741088984070362203770660802172570731405506439603366174127463229616491883239274555351990303683032530112377262161013278693018361811741967584536200437986409482370156370019326784921258600566693283063641555413880478233086504091778235048588823539171427048266775674867541001617666291645473637067511879419463793332676894036132117170135931634037528512232476684063669242856689766760407492819774064598450558819971889098786968515747918046741236826342636962631928413015484982750087038864356769889440984115857985923410746037557677772366504724684461614431271718886320783262379484950727194465713641391652563160924480196656777645719562536244922141020042857909171882621547759171382844722904210550218280988851335020194480375393029714835207116672939984813493460657903355525913642196386493341476707249334244693182757153928503343794656087195021629324094276709414623013661828050098007094059307821964105794517336946744078796352272321872511568922727572102892304515778241891119302949732414218162144722970351781191957394602208882686106131827978743637127115190336947588933520734342855345915425289835429682788010866418792398603661847324010572161702973667072562608389422335827836500771469783366587912493837510132038023238451072336168102161524769796574368792228095066496691430591660770443161274471262878009406211709854336269591875018246024864017801311835563461399090535569457182806731791582199797371120674316620352326483451307459976123150511742315092132112229108780753338197928465720539645953389296322317368896921380212538393284159183624828172748716380522568454863575172728369307758996740436209985210539116339143792676062938282384969955421504941701354534071039165908054049637720465569936681327452506392504419380337419562684105216641172786364778257650155954458662505523738620280593013846613855868516606012597452233240847691287203286132134822978091992815992265878486785646066494952830047328966851084556699358744192174867276959979379704401183161807712847064524457864764306597033172043339442831178916722283241986476978699986174244772316359752001149674392850430961664001690969029202339465888027875042103535168651451679756147808277810493460822279579577604738543022363812173274228423122422473411244039231310009889364669483705014718056368118738150666180653580982646531359207339787959785157012017461260688265801630128028382062524686149299039185455570075700482132015699138031921875074503575618233097014304283303292553185211998410125587464488568672358844834515953932026339602532430928440505613926382106115584730061512541366137273880639457004342903355893058646941394576315626634782236214019057643285683214634312817041599760735641564777039850578431195474952486659577435200731646674606854666230954263897144055046204975304084604793000800105862619407325363102361758841876436845944521143686652023288998061291717470406782377024134406863337415645112990106508936842271117169512161122443393248077037876275158299260915434500762898231053567831046026007261665138343730037609810138450910588528294230795807336479213527474123444427453219439900557239706512547010649025395653932395478017061411019300704508455469102636380022050191792918021613030328136523860130699708658292746883577683035878246575514732404144351408876416796882584273409920210343653777880078862727517100909383207015913108314982741220258296539695285447176752316069966157957130270469919333579669398837542961495385194258864426265907333749200693751512634842275618852152766965731087887567258330617756749557242943589478580944321859651667207086971366948726333361516595848845248450621641632517814782360203750373645795430040966259437456526687375419454498166952147592946801769488737289114608051938776265901811698095474832219508754275219026161136302139024939691943326920972231949973744978903514517542348871101941459954840628500860358633747960104656929258415107969409367263716986772168023408540260661613589315349736377864851639818589931989801639600293785332643519169022160328843449688790485482782921404528506818488136928759224130517835081907503945064353862638281100497120943938354241186570460858839275461052638096656692614734619204563537742049993930039692422627704164786047292150545245133853500515906914844776259025641601086336147777086579381666479394428722778166374870585442822184065117062974527498920682122985375544081119364102673172229194137669987274996525493193870924603542343988903414142623996835069069551959260198498232156852240871372462369470364898798768895635393734814986746534950199159019314719784848142199024840197656582798968806558981404456471953939383367553724220951977955238315841561641513627398835724555086438450444464235008134352854953905732843857929580114677437121188662622657312189525230126356518749270429544644434402550421556180573115695324911606155501518909398552204817039342912780568042666243830469648583060111660972092439427871232476389891469676751985295789497778158199890166208145259025868381940155647098895401493697007873017684116113127260610193503425976066300369681679368450662190945274477616796720901451287163658311288744240367761364884070161157074662523703587550273681989686715056292220153062245959391113639229652245759597302138332379493421480916788221676096305924826532240209176871186483968786250947227131754685522753103382913751482003719655073321953732074551075133482133661938351119701671985171821308135216331677664122034724623601211678919714612082456135095209195768304796294664358161979028167299310351183905187760472141292313705260183668426646509764059166146385852977264601574832808114540156933880459043160296098952192474786454284621982363234368539919327703014238614893225060202978709259321517049806957225910870491668728630204275528424951139878535743435228958261917948553597724366470960402522449026111776161335575594737713781584372686077615091066911497925421098877965151571595765447341426386303115170820863765439648298173582343527654040100056356209317671490372739530292034625670355609104306470163666707937225945587913129199584987566585236521873904254569765734897181380740341119511949057835682950556636554480283945787117813502082829956142826885247528507529168730177944164237571540804824810080973739030009761442269740794559649441487041909452054040166168347291766041111508460113585505570660730150849452787238540316181253674109567136440202351707197481451729315436509158273262658584673767313614932099308249330340900296126349015074639668644774211693741379278460065346339590406993152568631302704820329055089684780020150154702088379575792165740669173580357906806959353349246860630699958562629681296982295693516121631053224727134165791125052571863863412695102861216457632512490834356358150676730554342950744623805954068743196752342606980509851421092631370573628426506375761986545285491240329817563260826218545936263456834152702898756936274625563214204530858541624136893287325276264337760782008536809177481603194960397527972855883221931782012890794599053931814828601399901291806872247905099355418266234041191842060034966406889405159085818648624037912224396972441827188334790577641688389948483444755208554908007946916889997818136977240749482415791006940080312410833081013588896343610410034853352148832543305657955989347316911353753050270290785100075112748854347030182053385881790425375635374585744328848288465943419916620188591815477174563573589229027132839054982581136917196780222322072322501324304472456211645006040472968042945743924965441332938531522290516000023092549652199244016165696910920728208570699875979518345575182679783957957546119594018190699629170178638812376419304342516794504591983063986087656140435579410459194014567501431015496926601037852277672997088405481763829702227858359730657881544482111581217662784919369027434220224977798041857866960188141307669101801731545722391264679520954142242982798608426717866687280154958494480698869025944057191233375416164648008804826569578428464748936170307947218002999853201034584161344376599482621446507765475670223838714479925032651454706948886217069189173825976049209898953332299848344850366457671663061348947203605078552311790504163073149788349039871800825143387421253383671745390975714721124530730375615369090627680890566485078466024415066438800894706485702154362030184672656780408545276019447701876389336729284404667137267414330589192511338739579047202603527449727467758713001977714928184170397165936746347087280876517417005523319997777686693081139947008098001915970916102655144787021054589699092259668934764673207149346084925811519023063956058601198638511732754569955146190786895307061294979648667506670533169766472668833640626434045793064018068176140561674535196143978559282574572072302050808713111636936676608637535872383788455936670601328448331782536544279922895392274186809014856985634387366894801410382331320523964239466153200784022925305292053051534762115873636131959701487397858968786417179724388830434766771132282909169617852599159763738586046568445178961226917023570412143119443208117642691529599572680919779285323359200231044680517826961168628764516825332403617706929861899294169301670224367373514423655438439771310039715913411422960313921715166799132913671243645943230864154176164291754340496194805749011831201473604359777312090783464273874748173646313528763806994093203761792855788562056669974104374972326600839852180047821057541775890069928255890692172467838252420626891623813603036830451094072441766740501743796598255718076991894251821028574257447865916531191056111794622638823738883095028806703766567977572752464790389656376681359314551774944352028615462224719496085948768460935596661501494338833893284026510041955051388069559383681624203014356967041129397601199552801055226117127735366622359717985356852465763346854394812739814957117084037504464759583575268564736641834156889140731620150283216369764662949254739728495512922752343235427226816047255686446248604959427550697672289949074686517057368729454324205519173548187027866378553001990701958707323078521350743264076253932461834162268890581315560545627179737081201198252746706493527187953906098970955207427473852691501573760082813840755610448421740618639736862174360852645638401712069527275226002167354824783066645378090978855198834610120673133616125130364514829041813151342932237525313139623692992178117539216998815703441197194458600574030895712390858624899212715052173312035351450005945875527945993106820827598581971074761553881356269826200257044002958929889062277281809241610613901935668955486649822385061235639004521513635659890632003391609787278600088247566424665608540396252694281492351595259144699810417947545808330713205572494811445122603317904374413267821122043857940157474766740651454440286561915782732751362224943437420196063435573218812924566461551977165815121887059017788717311897935937347968199741441305730519162920214961919479196411540326537389977268742799796487438828309546649417504537085065307192136993575982370894072847167842906137687513464694800150596431521983221191205110038784223633267872653762385140206090331791430975349167277000308784111433341425075285983206113226013300251411607923458549199270608797118035160227596328822417439328527166727496864653372255380259792473840339773842911441290323980146153776157284254514258451948985134740273396019445625891068672093432046181000963194355326152822439384313906592035189338907206500313562979741644823221993975217731219799831524179147220028310232286643349326004077958435765093554799530568770133574262360097455238937411702353802481353856036777233963719457955210789874797184174126967093624808281820639952280374941002055102769389543337188212849096382354737736019611487616693442574537855103788391273562639317137905456169926608236869191773412275949722727769488368270568403906821395019790078585409879006832317822689658049456313083580525358683732022483171772908158382338343971857885583676589791006501848638970246542855849528003121180980918174383369662345495850753315744468224521304280817841569301391009223787145491177889687443573625772597911019462266245658948274065666118437895878019720886296192669755888774552104736369740900521544203286625631443731940357166906571270583952787969327983042267268468239587999827828598791290622890256699397748546861374023941760283927224857561434001290662521568196838149142508441426165224679907600527123347108139895929670700743211283758193028584408093433293791837648440708666017903786248534940856464681026808929991124175543200696527738491046615891319554715340097652247031326626647580454119261196217851539146986316101785080844183353971362357039598668726782727605786365046881012376907142257049450665054689763182173735838091004971374414742752817487043494017420280181248190604932092286935465165891573279631478549199226168870718056474367850370881794813959181458961705689381317762578620413202276737223246950375659477410078982358910499866716464872907913034796161946139127151954345892874215321130139713801808335713524875070600705853022472866085256772043401108938937185000278405461053380235983125257673913515075679295362528166519845246477004389565272802112616321810097504505766367833811445828214832769073736816989424689150962272902802027866199599039602654023854084359957503552167033076309462610630272530294067404191259725009161093686242390600466859764668620334036547899043514820052620067257761262990925426595228046869742617885756647664328228519983195917870429106019397283476295577238966068822559041567147761067601431727397344397390558183075042310432693872373279586932909528275580425839299373580677524092156800510527119412794794771246250176031776168177538765557473576057034017773735774329899372650799209529365957167059129331021562603688183867894427492197031323822928999435511500873150223477838041549733960632575564567613669249396081196130408162427418918929741886209920192979607967517732201608010484057571037724467892530669937001924613735340049823378280381272123466353464779005349287443769746212965543357772507689236911573108985513703629168424888211495636530141576018058254072913030364460018437877664272886215218531824149805346160623813970216511944988292536428856030892416612771357637739526853154485747648973692304405029730946113430409605545946701085277552160438019080769156225376896667120276675911544442753650569447234515172572903890326929465912101422662951374481061773422307029919746813771065129676967598227307393446404283674092210229349022373708420578505095872840795617829521064216708803170018239701216663547547646277635440918426552406153363918761522693711655556607208982300917363734577858595338593829380664768094483115846480178916632271029193089177970296641820333093077158022116772878041542737334898233936499736047139876580244226421436492384614956059808804182739983991207900089658731912906347837063402833750991493749337726325048777863986323750339718830143961911342147464734600273338591043949370926875684094919411679577361431710930839121962627985711190206735207947289213672829511097705332283374770104933047903073248699296725356388742756702943728545476721760611283852153054988819643417630229503160763793704744284108363242679053511753162551865143309119698135294080366364445545745983661925230409897485714119581405923843458315117279916280807937343089262007720184844781852742871310007380368505349991093099573610042877559977846907851580602073706627468712795559727680561965627896969890640525424931197885518894592362270790761252850293811756950998774128935366442015821981045893877681805022703449009454095650964458425322175643876887084853347503180082006410411966468322711532143339574881658225896355124548984235324921197768004546647034608576343881493322025901750103276191831048889943799612800540989514187666399430596560217434288736468948900067449324320373624726629344104423264925962715200765523337225464103843023693993428824640727491567873888113006794875318266925077184965454675442195335519819136269557862387160192659222332073178254731450203953347511648262270855000469728933221837282681692920784611682603514887608548780898876342968895849134028752131484599343262041848865830421704646226643937970459885099935299097111365693521357718048682589008550224619700930648094388986736582562838549967579002032753429445909315713473729779273943525610682061145655551437998337319927326623377707905321326958929901563894690193053862748305442217116040587074578554338187551779348808207232828225206033349377335281585868559382094439928423281231609110801828972619031277988243808158328711842970592648620659326216760398015767138748130703916170696347357334858266490579747472573508238251304398206085586475661801379027193449644259508581179710876070164225740852119304243953436505623614663605294183355276647883462534260270658123988128318066295473729537048415773847559123587511426423087311801717078966163526647091321171171310332134330739473370623491562198735214534682988190102897953173509804083266954318083439392692610180332814638339354979456322935694573138443454198816980452015445884355126679074770603417946125509759334525890584870116952963757638237338686910081841247694398797133325076937368529634348419353701203314340598479859174019390729874613795302367105736483600630131996863319630815742194653960683099647826802095585952642259122202852618038324459476497231601032053120248108074705601667131886089671608788980144538188875099378069109803348644703694027112588029343749047236880247416456928494025746488970430900639798900419923052898900228009050761551467845852080009406890106839025002241368693151628792322828766710295355876308446493300448662038100715907198064118720532903743030379518988223867055580531411365200093336196246690642400202503414835043516269094242938945898938488856444062270572515586021398077584081070185574061522842491341363810629776231592244920296230972699925461741560964905912560054895399855810963354666430943284731330176483129123009997134963120634500076467381357094978069791676460446393254489507658750491246476286665626944633870912378291033413304277598287236455077037324053639114138392602083275455153548545842748782712445580504568096566438311215558637256696633543949275641853834434600876490161692283946003301555982820194137256445758042938352434980513935938297547810050702760882794758962894306736129137549222307487555462951324625635269264126503615250538431905084736294796613576525932835792708565972135969008292262681853003286219665102797807121184813633992638304045404089143360100882917321350577457773825844424977756214721507865671545302390006339106723307851778353559422384148734818280951742594895587276793292291302368949079962565615329403382707008721692848396868789731011901376087763463088820611662638455956650486725686147620283480625502436836318442222945206570979661996494712142515390922245931071650195701352625112510318645934098995993874685166278885697124597259892168551787129334603788962321560817906009579879393959181692258244859831567042614296002239952246507111399419980331032661719508703519681214636192126639064989725590773526468447990268152056014101875744883915618114416763449513686864623176492418996490729144085192541543883099162132430870921642357683842909077293166229459818763450837094227029613259497236946318295659968121008821561362315316140032253808406785226260970901669466654915100945903442941451976482980308776756312863320427282863138256110958473745664637815341620098212671432106328965992921929302033898128767219554888951982027477664950121449042419345346937557799368582633284509975371595833038648683112866542675604009942644138336812533592037596410528669553462086871575150847440505225764784485765348493093557908357905355014238187399415809380667064717937072353554633322373825021506215204270847360723712800490227940684679600118702176446419506883983511258459714419971139566102969396314808715514515047745199357087032153456864048662261712947873806836503002313549499117099333171314515948037539352555310182762875550395520670953407755515764438812352624544959741204431487045743648672863083760179134034677083150438884601292755432965737601645803150272053460534909165855798798946555888463569226805042266175437308591839447349124185287346795863026240598034362796374122985952164204903355278644404268076626287388646738938329477783775457143248627728711757446514631025401506490590143761685656631719400628905443664601010714102789931540231305575642630361632134251729911315466878712312044627952385892983765064749275571443453754357761270351451696350423064932819433117324244702839638413901771932812539377817572133962381045899205988677429229865591438394808456498568357709824503587222416191570673001339129966554372644768103235410129182254946198272422468080037880232710406442764560120175606406579051109870106084713615064436084078699846528710346290283369263829076876892520549026560280749939471823925365519727583468285464823514629760706450358808774580172343155373150837873742019377049079085592036717276745240643409423598096246274931628181400100041839283109187723599780060750948688902697846283076139239544568684457406366502225934979377545442278794772992045249448742945134011702859226820105770215158068146107009813634408676249554973894960039543334597167053932279676902740453692992279935572801538453720844348481496892925988188091533903931735265384317591122991284720309806141142699180710741616603491718034974945813436105834035342052087956757418455453256496365408333284469475528181331433495685250770971055944175162736450177025577958989570739464488431572123956348231836834388999689860915961425163674234200621760440154862177450436216724795559892219231921908059302663980736082943290676830201289944854975153321645457319185598578392081351419737306572130031109625998113363815058875430176599061543287129640988650695300421401319713453308907167480592160059483584572304011928249341382641912045462721560427911391476802166052214943236191352575404341786868050245979851499846781904433009891327874510136771868589144135703546548778480449263829860927927954177513815337114426967616688963059686648888531711839247346875649440394613934402065344334456895405838262815910446002738368166767733406785942919044951357797459155304977223974642350021520922525263250687276701218622294521250664471862697826366477161335635037402772988204046809282945774847284708531513024890896507040665557072218951926065346272922089403342138070230403943526384450741148651050253319719296978965346654734414346478146673017471840759416856775299025840892087217812991817168497615709741171116972099643793760896482087853149504696940637700678528652678369701332811915597761584692746974867192718472608957880382803006758929325670388247273979650916699831450673584176349785160445583049099288883133723684281578684781115228593767952197951880249930419552916413033499198715815323414311173754850411284602502397569459040006755347640802704215174823061458215045729451410742568135323149262625226908690939892520621553034714127877052671125016259168836769457024622668396624837279776985617153288633489875783440899453547437523835268291116278237461332291965663087465363642647254036658746970390759813376930602970020006235859127676420775815076205454387206820131915729214521440864741232943858418474629267667730928908480334201746362007412958702056261070270261813017705793502499797270500708937407761690326959283541895205871668464603877448894960959426906251225604365296640045398411091454399902566363910826459683405364760683108846541518763827099038256863679001635150454536405597934462183679221096419765810821196093191170675625124015189759826914151745416755730727958793761853192240156310050722449569776912088328332352999800152138028960454280304125953359434430810287051098190559091732979838142691769969187880011234001399956275555280217895920868895598494438051021273889537711901007500723443156842248653094671409279313719197905087660493758096671354704296315844216134288300787811964647316676717992897642449616775676322409968650258975640967694834178772810046385603405585310134374249900002365915214143751378659385937014964767074400645901991882826842203315617234965016770236026778259885358391730998506485088579478393592474952628561354339884293688250691471414440824398640967028090856682014753653001311463849657602999902999164034868939157080937441833658290644044499283158683237650646858738618158801905631022208698088624543291112330042958788487899912528133469781624418819794334237378408148446419020341243667551051074509315784817910541155881652839489707121079859480238751779085050780271922863694443293863996227788968908171396640131305599976929503444098651424259313857848128924156211220761262387938498948003332002400179481362201341269904317055049037090815053761137630071646000660610050608853018539751336248066876636395113673145020214133534537294507902774178141003919288030205035778828709663833846563291870456791835047947665030117413019269356967574702631055063276266968316059220568502870688300329829015506890445694923513746164117739509961144244010239006404342252538101790788429439255009946514565781691465227904984021673875477538564682509561619045871376278355237799167704565556079433521547419776998265847613679098822998780464254178037800036439482169846858692174152408202624602257341449312043186970956648318665018615331350869351348299412961027431671573314759387516264879743760619444250209859185482831707427414607263046954826642237417636063095191749777854917197615129698128339401341519737183548750206060651763620923901638604378739683877390673841096477229646772917570372637533574713790861797505192241543749160624993050341225071127843048351302474992879228015573492185098037904549139948093603376920945936786807802008625839271771391273984366552113786555332646986531506303451298011397371164143954944291461387657314820488263159758301721403000141307734685354081537402819603245687845262621090990153198128287775835437740872006268150350442571277167726962881845676759095930577324113246932737250884172864257764816518231811769982494686920723179574547312041850704420808786649549342634761706504098245870343246215282431710408572741648768163690839774991256963162827756774147827164411103126326048724361373233714150510201947255287326859338331618923772018421971153575891283900623744980496860654636148313120145718999498333139821481208025915450285773805518576814663160368821427601763164680154276961881418956137950190643444632142229004910116554109431537767255018016664550553203382488807137838480729890706050934274846784346073796757940027747283522144502261845949224223688762775257922842391130011771582270670152579102026897765980108664424537413526354551706500818237674149369500651780484875576796335098044738264153213229748428608646188106538447987644898298030229221984033876283779698876353704323036526712695027905987652001772231884332103930303155605538227215149943196725212733901676390092283290140282780010101198624559441295401166619900850364312490845612398289524719584061848685717276489339589955821813928946684287974430920254540383875545558691564860400266922638577155247066042344045760128073356536569171523872772803001745824006383147205209747490040528138454304849396707642609007341788893177196633471726794309887594475435783309819525423848106445014530732900424090449988440917488048174118063442481307572817197087890973403704435171038362948793327972413394341505996939679975224533291000807419835132578734030158215018459764030964950411001668175015214778564266916938679107881870000124626848090515881749352935788815849488068689901210924822815115795390073125393718508945181178724680271466957467284982186840000417777858124146985067617925006703530748437328625969169564168549100296353121316600016438236522680113267168468147583980454702636974106068964431551541038155482425975557719893864350297655961037680507641287295127391520818248951285096121057640035553560468484289962727886868888802241785773271003456311040664230796209711557263063625844525977003147614863463682333745846379737835281211067017624000256139558940481287688088911869089716417246957383752340410666246450791151737893260505157024705670992203055335961663514455880414616708594546355270962598715305821732848418082623747991702323001888458316735252714183119894312404252467228482161799031982705854583870325643474684552011966905320754139607054958199163980270843241239536012878838435460300834564804036182198519410558183908204986844237374205584964393590777678684892872065991199840249175476397108887834504045269816902373808975016196666744905474714656386518605925492093400643851112906260595754427825896145136744730760577747451426361146506648760877096799918257461526696104948193354675879255394814897566479392554084961795082103005808447870973483561273851104829041020625276821646665246706682590821805310306642083006283651490856934650392817729636177401747954078649137223671946644127823862374139053298498992915719332849873437806346441869408884994307328632679991862835120620644113103976020066018758884349271821089607394713561977005459904676295929975502376830267676112800724934349478676968059020840400584301685613828754457345030568250336830760614202557410193011397183874101084732170642940090780938905131754093147777297300455339904352994602794019117646760131117924375202168735285367974063494637721660984024633079946497678540084069956098059116899466095756032380252664549849525972158229539860372391485385860704190292231089906588278044786951137463687659925340864498471229505177904987027110530464214218535097960897855013051859161506926735065758763147702231210353452216795114273789848825024340162420909905759863407228119284957107198623941655979748401808143102580983210171605310305158162023881771136322380073605149696560130675356468747259871106935494130976834573063743659118532259702502097537529170878066839704557238422707481270212930117170155431022246654279655613795264067649864291939865105060595633030052641534891262622738559325559648497731526771942261523466168754141075590870031879193084607051471541716196742673147071478850442540585844370453308688714119671280462468728375098430001236138364601433918846507818579383088848928390971448717657035841042651807876729892495680614453370123475078535006410356278002645031013149944178416477025831012242375181472292870724031054006847364831425105373661952941758000271959172797465872873589979372856497753056090986186328596507193833730119928857620859120707192487889370830910036222997555566390662919820725856733806082865641983343739656043770081163182123311769215804889215088707367970915895070376801598708150023847348772861776206818750699122841679866462359846016865173560670216183836165991501191672789413304673927967728211584113035559717069124343744472980528617927467188296211864620539225763273065854824115728358097915886105924406862214028793632952669910252785195030024619014361335132391024884542199633117676879136093733399893248216503892846282836427417405351015009374766434708204150017733889357289239512723029523221479136490031236732850731605781997483916295303414680056570593993423404597726842011718979181073922353121179740954331810464102647735717460285798597138858871132972338259718042065040196917835760318314800556812817557982244469807156871213169894231145573196335124139349860872635210602610389613443616336623581817698331179808701320239818383659422526585723494805514834692038979475589778115229403635014655595474422579971404054277215880702990764805059929333296120694728024993772673315393563604241840160635315545090690880544146858276367826690488156832426140154838740495313980454566116541037519123264090536629217220620701816825769017408161468985742855552706487367594402237482101988937513975339868316248268925027128104760892789691413029783228930895502785959539716052581279145747665160507361773038132051799592793445851451324465425728031753762954221427932754187149316029097551793583185828035013539127797666421030638000891119394273743422358566229880492925795402255368366240381455596780366205971495939049382737430684916170462132587818960806541075147496459515170414387792709215732140059489126388246677642142382158271300350761138057487127198169542838561863899367471622275410188359513792491811931572016448289258454970673419399107878519035830751588770852581747516401807496324448132080437709612708871162881981914909094831410415338912798699602878649544329015948358740593226941190920708448692051447539544310529972072187855118577251420083059586768996093417814115271659406995770822910955718746168070055836973484585360845614317963693608770414557589719689968156024815961823354904441087478568512153027385516316873259287522395201665360480668485418347208903306318511039596418504139045833523158794306110700601467607573983852437260915797893878452914573286968166240406436638767809148053404143009092182348673897619986475583830420829730458723582076386567670021535969149053398415402058485343269568037504842929576061229262036364480531293109949800946772864692126658158871997282435171712874236467373207075221501068505042966591766516709744959905291259483674149862337107118173375462979890613395359036564922411796186389666926714398198735201070342951098621874200422953959859368052462026388962917768047141199888986496260535071242630376764164919102081022638735183933613750636463112933690596985410372472618606179967768164393206018748826932383203064540394672825049524366978983148810680288163026530618399292048635209500448924582739993102083396750632985673477691065917203591556126330006322057038161297258462517442490103756145665582197675404203297686452165752795315988865926898194899447136527180173762552613045239887174573235834690257771352902715026901574114798935879825951288091913195552958293090917577975140360574209575843754779765022780253634002181552830918752971574170306335437157245380942409714077152372209976810517951363566195170333805021626283320241948872905978235496329564126481117798802625375583949820513046324218083306051599278858384821082033911568989558054203586894558107950109588669806768643461742602649448253452123462947411955847027469734752067822374733237272161635612392525255611040598192434948342756397020282475666736972064511354506992337497607429216044620262781696845352610235340260090925958312077216393404235114772554464972448670724325448238288271447272401607977845080471529490145462100177622943791705934966639252397963853880814725207565739469784611128923587289599907806316159699769812710862256561089033960497483694570539076332368181454379205095228223524909919646936012649761207823320459544372081564556674781525785511324902493406583427518178629852510355834683861057699241239329545990375624098908271172799305331281427777559039144838873322183170988986423250442732625612705267363012195493573258963731227547583751387973686059162213999878692141790108645846795147755514271408346737818579287978663066000634682556390262255428259724418135747225601621674798612995152091863059668617026005656990518236156668450030830662619567565838659133316675528212803749185535092792400164776649199460583792535845307116097707935145799839901993745454253517365352561504373928326630024870293023387361865159298915506537351878591703609379369795039932763213504686192158966764373732458447437212022381272015370559561513456389247633773007208325080247402524527385471753943886818452304110055257131751137551218302053593089616425885515560030137817951126037848492728142668352205997101500463617406677455566721270022422273758337230193998272102932742841743535906596934232189723504108486289911211507115751737323851666160639485573256595781836745275125358614167376345062799201792872337665672776223511905943056730730683927428306829453132707737781403946903904623434529797338446701120547537644149485385418505373047164462324749008518144679927577173642385338238774447682924826920408053239412748511678162460590102904591795040863874279460427021637097585592657709652007304341940838060444415167190433102405432451746399791872287744885281181241791718334057488498801970646724344446362532985922514809090486284179777153935512682149766386702947452180901759242638217792993010748522746063651451634437761043795859071995592941312513217016407596557048908975369971819045729172405584556153061144724256791576667431078805568623230380027714010062353658095542337725028354007607049653054499870818742495619163309038393699449238868782180335368686799110139694453899952019069231728515969225129930173830760241346320765788257788356289755840936488852623044256416693613755977335255291990918500372687883256174212290001021319965393415346700984703966476798215435732463703808245265391299060283533456296036459646837801580543529611693760168541050761145271723339658000547905484763936024006230147611464159635069892447959427241340303842039494834851938921146758670870418603034742655285592104297351849693728004935151854650136492654057371110924684769714231040673002139031647775521651580232650588284167012338515277366975273898975305817980585882597503791058618171944741877058897141358736103656701582899678048445661843142139617364124380106360638747552488193645724445527056494505269904441948312083457568711409641731130110192102422995464407418705204553097983580718723204498323793218321467740426292399364707843791630188559936218400187997670296193477961586950523307582806771430003601821764146619545422182553371665204913955112619766068167205058697017006456619032919627797619287627132914995045159542871936347591037784088882972215242502720615844681044737284538378818597630147920215178341414830114685663527108389898474114764037043346422488878945382319577123118733327840237418199085105456749777035445117173487878992950107824618827030055680555464426026838498369308367847873754735674126445297331659415708511046633913267677799100731673028372942527942209822560045602906669157638079049852632328553974051275165752214320791314262137536305313079447584478142755209688670289249472707917585939927201962293563241714716031552200320587889306540403498410937829053031857632956799289894898019091235579168403998413860541457110810108947703048232588575873100220525297260311112510651345148394708566580624044805769472712841142315818230388351154096660006184264400758406057806635593301324202877100271022139398909631902857193659335951151989702689414208800211111047331893362158978394244625575526535150614415544932874164888227985661403852886438571185656712844500381051238467380686062330253357309682613347387333827368813290544345441504361118394330691179852616918543318374736474343178864220229822422764247046684342765267774696391956537778156840981625765857248181090630249590211663272361938835123281232092757636298647158303900662520356001022200844329817483701001072185044141180807082935524070576653685668158920727093237466621221567527185103907767816795850559894504281398989063856330047928748069296947020269549481436926294620275486452363137191762591242005554640851453523047704348109430433224538556774502563793431998089448067500704809396073685149373117690267659724375100375303269002894017716367799002276904902585857227817867255308720332788665457086760983813598975437748315660879585523124952406714483103767332211068750206063603345228554720247459549768831439261954161858546667719319501399590567526485117388720195607335797484025019734289659947235541132704539477436862265272997162231397490432016174545246884227137205142529626805333512053893725540929432958740599033204376920458759503414493997372820833145521801234116519161534793773953139457932305465255003821374333689788442165740042298565271747111928560609749280690437762760468545370508130871138610000356813367985934856341396516197831100732754840088930997637411141779288917657867809453921352745302064291319368470327057425374893038646178267302341026720124381200904017914899321831422811205489784932247583722161485652615582225051570473872760896247717926016125720751486976270353720781173723829613633124099060392316266257912942944643208110879371030198728557995252270030925057326655132548290582653396696852359831907484808685441627517608822643832331705546938898591232130973062800996062615906596467576895704789230389461953296971561419407082597267968066389485896001471383378476566544973855220841110095174381337617980363623964630881218780183563792286488057167292508546616258334478314902120002386179621000371672081616535996243147728876586899296904826563178934583307477844809395290322560662133848745529761790655650066036676672033322050441949754488041153576470354966429130926002889990049827990097301461237571823469947247374214840216992502121092027602134263290925878423596838505388561639972674342763758336198593660546377388751456849145834990227624413931932726587727272908875488348585262790995270917646659094054203084881258823849620459045675331617387039372248587247407657181084022371024031158904218382570738448696050006018571517929080169608812911791313221561193359936371774294354589898526811618160591143833294753231390440385191735335701554383120448881798061269405459885780211040512517308774030865563748070070283797695736497785012593242245911238052385434693203851414441200505506760486998832540086894426513476858556717393013462024625149965110000991807820468627660379287775237085443381769488999900412723422186200254024929506138780536342809560405439954494367125438418449032078867385595307436220502441745785329803157545282288428769251626264923565279044148654859542836695669011811373455271867160451331282606460684931944271289141670201068458957007554540521457396076800253307198286763691535255572351692980553286808499750347967872976600414123866695981353323109577452592893010557536250912596679272559029775914781603388395932156207639392158602782951576058997286592522339274045464040203769175865337113724859615337706910320387635651741263327889548305223939848672271337496651544088708490434895149796861427309675638245105078687450594505908801483651190250286625605381762499110481470327719542843229319621017692630506540566327156175953135288320499151360839996948984135339597739781263624874101509685431438146565637572556167678800938998997182291229062538991084351238110423871693734534097953004572725004924927523718046094273187959144167487884368200997681779083040390661770496618984913053570380695936540958801382416530472159679346993856854172687513983090283390172947234009705078224178444042942560307836517561862071253244682781838843203723332987831868184238645115324452615372377383309886777657114809202650861176586154193824612089289648385773671702960125998562260480283599621793039786609728326372855062933881332158908237653244367610610837344330938260564346332935276119051926517344972667337952744145151266081329697501068164540954855761861651393168411593630176304640028805530066585452056352442899913194944393976019097838881375136730095629648076181737846450777795930797065629403875518326512681058699415381687466708660300237598851538896880535122027640681841792370225660374148674317605760638791893687455255116179248268011042087010827579720941996266852664385954647045393197364424526092156454893633591533070673483853991148220881156182931106298441162005614843352736303928007798270362549656022711827625244292181488185933104424510171995420708008796854404284542554288918385847413302065317014155235896912453345765380204805543390154942263008473318911144884781620285644242424676055225399704957023754130808501247428882776648015957722301149389803160016050747898129235821475355198695667013922391120048661646321780171887113025620724165663489371428962403346474389657894183947760529561115627925708400286403808950856366936530041530177224880918721803951665582356214944111620031082509199084619331852599423004907775717593823959175938821379712357890497503380806848997289506951672598840828394170503668323235068394465243174008123708953589256108097720659341645738517886225546521413985173311592765315447828352081146596959992472746929483497578709542107933321205558727465962611229049545661927766703536934418422079759064844442496216419260884312476249122007444803799195261526256772350877325093907272956980303107778682292496753617100530390860900343778857986516123298291312884231958251939813147909340432145401093840590385877115918059012029666125931955385619176820557180555713556078607665766170261302458489493538498908962320542913137183944585208561572611202589364312791679518308595543992200178891401556611067431246846294427975953298273885174699636918789576914813282184788741984592798790690726467106390270489149885015165338137495661755933491045016667022037442763895595970110679156042632701565665604934808817524731198247690408591587210161929420714127695920681952193171018203734809533985612519857459768563938607859708913809930725574988610901925978210369651468234966546334956510046074870498645975265053976846821830655586220095121971270958568778043998195469726437649771730581578315369952677643221572906495127860219963933505745194855805194852132648514859479135106326359248551504941843932382711227333030824253213950706967199688900595807372753059309578223322144175467962734142538693583642539894723249595383121669905659625408245069954218623845677645815272476533197817842577488917155063624856405300621305950577117568220638990804473024630678587543416699966800995155431897780893676172021583504580656134213716455015500925783341175256096783538539251372490742456882895375974824459087459945808298645032265396122852225879229276409581388966305262319845719754475385805931736531197624950456076395937958070689390407422833455129742448317627985082379277269421747626088553022375713747175861453805213770479378908951513371748835912760350755731188196953218300413665485250604641914332224695127934804870088683490386719945667674282867657353527647961809975281620525478352760231924077681131216307890579714256795722812318281538265806133903231811000192866892738124055926100821646848362744763586513029750976468133893161385976744145215045779086524636643495503407857117879517972627950182102331183025390533045745321916426629922328565295245364488835114354091494329551609504652222368865420013726255434375023909264903654297949746075661079729815227099197490923782634539408093862568086472881416306355623591751511959357023527693163305975622079117032507598286398262832785292460265055848195631107107042641251697911639399614253222828042491576890160471504584146214478462416083516344183979165395301394178186669391652146799567648994067319114801448438352380691072591501304817493510397437136811464224946728571512922142952303738511570688563864302292081698182861875619104222764592188201791319027887861685837080618433498327351763688066614479923189641897245456350790876434134666251855682247160062688949392798053769971638159486491393388290340173164875056228627059189171116705308383843328903301013408063859355621195381552671369170449100692564478940158864161645082273212180548385052487108026340346996573999092302737164661241770984683406583170273212705576508917971601178052023853536495298661519454587878006217043999249281165762870210514062879089077267567760504273857992148168980599694163254041909681161621804107049389581391259273193992597425751187972332502491200487318982403262420154309761640493182709962429190780627487029521694929736070526269751748053031589848439713589325453188863894142753205915763771328682291213574551483878915441870409179984228339917250933573826805608242722237285374455509161159490368697790155700447928543704910105677774823935795815336237560580931354444058632576831252780107453492663915293671464747374154377172408022771925516916291877272970136038009358047811353046148980875165757174802827620968318582773792358251246622172656055849811725974211650248650170000756746441533999969600657612876747466748667420200458475530475394271687554874108788122976997577983251807195941910220509370687787999488565458095335559950766876461673767951819333018392097719080732234270011845849520169892278206548508165280748250939986959666944601375615670686095899314210766062443914063781848578654504037302808376035005712649219377349203212926215419892977142547655960808477385937078445473764198665455447375480038620285219574506308546455434392055150797750431567364988544909251520721508353489319766493563045462714038928989563688054893430205284394300023497769907156644163895963821777549384567702633809645247355159791819994669660727598339640637163223915699829501003753644761687798762505304478387894001059195802902546139475977278563387823225380738373771547467160824472626536250782272094060553279512722359583911752409825917758135954993359754424842135121395841777661641243390561544677202233245567555874754731473798161756784020967889391256280996548987403225598966695758310607450611531392690190817153218824121642008971429587141672092625909446222053962904260795221322985289124228892893277734298640539069305809531957161546802702337070854121475307870902223412548483344430143854335081786660858932587743284849471165730605514819507865689960055990519425453325475304625525391625372890463240098744747953348019618469427337686109441375318448138049333176179871143880144480894732326551554028788395966500407843871985599698078758091093836487499403749188899641956426249783170453413646233536202367666314400282265028812916079283833172088218030003217269231635386729441502946911216503219450699904720936042173883220122984652767671692677184525226262689301117872785106361574829980051186004387088400822021632330735716443194556240403562536795679638239118028533170460964248501820426905758976781761678730995477015427513107432421173692257924669896164539657190403517045110000427498533204233865752674099967305439599306478639060604217969668346068960751509882229407047943434372627810112373085955510009429393745767136735819762105232306983476754600464464207378582538065297929187164576179778883493933301129648024724851595825168208886504476755267454200194270025706604111578717076641679175254174676122039421476742345414728937775566394461617644520696123357974856760097033874842445263928494943582535963653532575105003775965580441371720876971420315917087379044189486208362394611369130676336094239715244985512602091139998749312222243658420933244579032991500047521870395568275392210867123707035607357607768854553474084177357512991252506061366297762209259962106959954374492566157452061812570363816995341805893584023841952288039884839075097367875620076384119247947105873359835631955020506882514288366326418640463721211342223715733297400128926588838227132232286470418779983067825530265718685835986970255413202939532894929596825535888305337465249265961696142665146741115308056693669192077916143496169140329889347376974612912828762361087002216331788196856772009558886242306882891078768615106158466613149812516341432727089699241345901362455008835934215736522756187683736361615016914705307011973101310377834435180788744914612138438535425969306732941977123174364392231720665998509754126518869854598765526923738418920622829511750189255213368329443216088139402135595568912325753815144164285245992381313813013201738627599887466242011383793495719075601264989578483665951557791349959934453527652827681552769126967177273027688178062079261232407126578930566675324594020157849213462429298757819230133571888607682151318195029675341412687345412894424297009050429860712878463109018656253503095331924404496665034220936513097532560102222328789811426938251903812120484802151460751056881783896044815517488770854434774527044295336222265834671507944943027169121001104066891748298289296161347334832421967180165873319007494034508986485542039372424829562311206670451851369578861165135528875898114243181791227305135537460403277091331661236312725892565972655138037103600061384895397860013168039081186659129985443291433524507373459990669911492239282072111006261330309897517792733471023570689553748197451029027647133855111705615887107417610092290256386281627726210802777672487963337443053343865928487428059687811472317931476255116763915043093859841176314258494056601630401785855044667959798406288548002179877753654216475105890134640532766070864887132409680830121260459979471769851608076764994056574893081830262983046203826374692458145642002834417504843229489311208653051390435516805961649628810795512803325001589376830682667548381388404548511383611672735560929794190765348866082263199559478266159556524116424513324246658386679084002014018157804129635379456254715046128175599126920274111239772226516824349943407288440646183698975921577639336887315554172603670105899368960953583811218643517948029923244422385625464645873006013295183003716629810634206718906696230062247734044929456760681751720037194730938183246848878048660969733886454626584256431193367341690004327102267887842633625992428108913751197047605114774623719771302166234771100971738422954085223284972303526483353709353551392591796086006052112227597532676243884201586574785019147118075474193295892346823064489431037188966070635816593110772321672801846362831881455849287812998123776449425231742102969236928282618001399465992370469796035368726657473061381480352335021250362710771364270807353607476098401251750795598425338096532099090730097972402590125793698539452469120684149414772848483625853425944060575873058697786179474912517019219081043310184896574373482990870945782891061950693552384173758691398685602038635273533098107668345969281441439506973544115560712283785886342000208900840047812713377112013183602510715419336355784723252384977605292636358174409708689467861467063226222479539745628684653680780225250083380830625747907655731582576167087321009568976805814580790916124036479716143628543638783905494937370843985657615110178919988520373014240957130650228823464995546281233856766110429884704760933560438954612843961226374217240069630481732305621747554383233333949573477022840250472279000242870205673594563273911925509882689367272768144202002920183850415676003860282022708071428054070571775115305664908631164211659878238698741162483063338526867822150360840705012527900189909418106605791720955027018907358478327024241194094722709262269035655286567420171125243846010393193211313495226065760826091658992656129799847733317199935674066935509784485230631608640328660053435486886076228792287932178986456141108271845104297084105125773775452594006144223312878265838175080526347257815966460077718813733414208935649166751126533164449080350436345014701280168247695265712318867985127306369752626277258816494685795307513409375623557596726639638307396176768170693664030353255015436504478911127410614334103277139251987243155555102929401990690235914940448568674003409143545258713194315306368528012633076872051296465192556186568752798851508908622521921231443021830772686258978797941825695697299878855220593033646611309403232231870858134077633232396058506501506819887127072535055223053420085757156772330372794092189967718546157374415369640243772424705357926801481123606963086223947477377577966210319883296095489140463722826975229880700004702606085337183515401976356025468828773620452308049409564648355217774991266693351752097434848718873467986694222128565319797092267667443098910970935231412894565056967098733476693095183611190445718703533815640761259361277575281219660337573853887231854809361890089600194537938139917220019298511285361421908994319403249356604707815806299325723534761579323461928678997206048755091439980474429814756308634150885839252867474643557792811122333479855551750477509706001136224947359048873507699916953692770570477082720953206981325046954097388685221582395159562069652994476647802472283622121687553942263548300401290757607053024331935679448429491497223216222068718291927336659452227967070637705092084970053822594214187171760724919308415534979162041136313625922408289058274101614248425194953924872793128259760653081430056225993037746980581467789180177176079222183182219943582538621077317413738662011456803158908428276234046032739601751584250053242532843208168800892141458716213332676225092640994987964478005591075439057730824163771531208751187045891174285086351764962740471941415385619636407295378958537469676381343654624526998501168796652402571552236229607981944942625363490240542787873668682948308553552264149741534191729449772144488695611457876661420541209446068296114431827933525480593508733461117589131594356905099779033791266863014228523222204056651090977787264003271366927233170302307917863132912436925511817364988037858614768907002670454072873232072415405674482853738874944068789786968411375690983918165283672911010670030336428288569939667488028799975648287972029889490343342010988648827404638403405215751091947415147464556657158492734550953474121244257666772550264922377559395676938367894033384580488412340770628302624695556766082576689054112794302774831228616714824550540833043663414086803296683704437753365262684731954042614909029175877314793092885179602054850512914946248480010934160907049476471723214710689900487347585921967657465959962768482615770301535707596963070855754229037248786004261479164753486100292811522789385143630078426583056455222885593476206463950469177265767579692070058290025598509268722402772994514477285036448165029047200854584091904683265981262809976379097773861616264824943656576313413028172235285151472301950983785393104211324023387239145765169370413895186356625905501971679480912262437125432389912944886488512974090544884110495631862679016283022588721769924345862868901675501153062306236123879816220709775074251889666564991005252118434772110140781560570061204804233183612528084991813493134898641904042872708871078786231258540792069791359380761649991740170767900471496647675121951001631987905702675572469620303464899960741763471218098662987272292590170438798106043770742896022355038718040401725084721853267606903679476837636142162926717566152812243660885319643110178825619107304975372922439563587592210574695006402538920413087717145188148709843229873170162767459353159325719715646486839687492997799009423593766574538548541797602504559077804581006459330267149957449132479250039939657595591020706752833711654794117890114556513967881444433713493818801733072943975255715021955202531216204346752035941410554555699353278859155676562926908831593681908184239442731976948657876977666755350223911098114108567209735164460218444054127438714491597743269828001980955693390110287115312338523092775348769250678874407198116132848198699802376502676947241392403081733453083253807239866828599220248318100544718835671083133030381277576173427957125901811589914056553060521372685080063056536342094503439177502505334635524223249080628403564652027988669518054355163526510489060883993304139408292267170821512838975464899170251174015714539810264862615291564614422485324699387992477037333973051777601772513783215224349928158900855048807367082422028698047781404472309099058429566671709462162594706040967340427343608978722905092293884926189322257895440342364271848415802709905606474033550716841635868846820140773713911444595242908206214505938271410079543245246717102561602137702709261954196990229217388528565556184615297091581876047733137390963080469745807209442050079367945115236961564966990628833658172259611092456666250149663303727939377584084528302232313194972468741654222564029671029549254066198969090428575017182948909147652534322353115567310900542244922347931490788180562526097302801956886213908947593736713399253464966538436611186093281866230557724427696277451325023782259922979268937369877597612183102879242421134642012313503637140824738367263271425172793285224886609869829101797561470912890317008451968414579766240318503386125911398246423896504601186679501537871665350462167661944903749357268278557003439823291862902484138904489781101259196986621382255011352977087305350225800442481940140956946555764028407572389476102927773579560180541028211832653137472181691900489453100544590575312224406420228226801895507997945865157984332362579273507721849411138782333565922994678942615330101937056940753488330303982533682907821909413183040859729701234297217327760194229959936136053883232498068792900806173422537424191083644882391534999832338543494635259059000766911281692481013473885933305629290589055772366212944050882446735150246786161860589854916219654777127574328427540485901683225537760480975709097428248933174463838508792955994570652521379317967692667161708235913788554067012673849680941970827035633794711534101571496503285809247595620770442904378838486195788918715110040876278674713895386921617961738743371263519894865022131351062689804864053574575137674108393292188917985481998641081997626617671606870422742209271041210483550488470451665384520331477370674895781616636865545114816506958694240971416966985792377104771068270258998867664974394639807971227397168392658570632906428967206430219397338066099242056719233366856217194912269603062620512809891441687221328367334297437674327047746585323047358599351839978643376909538730315330026308163291352314436097881737888767761080024660826735975620965662671900644647439489727265544675875836564476944630369761418723482279751387584749065328437592386983049196066010695431456765233459017647512432025027654129860148790960669681250760576796772318877253979400970025429234546814596550968956683562557628935894301245267854840730542487130958242804613795872577449188664898241740899140593127288192069097078525363383100683193879648744427262279569040979082059077673358002790972185309939069012298342096682845619758114006436352860600578384531665970856168968813237972076256248105282242394943248849797625968415096962933402242413532284423091327488234491834810247610581275559547889662312698706124935737068150775979657885784260270408958473357099383528411235721240029665920957023732041827053320629206983654336896085251812847551271357095506462274536436941713756461610957457161911614955783363240082469083877749686491555219411005219027281930800426851840428137483090750292191279410160643686364754749444171866794758778040371265701245924937244129527732752135866719725063016274984569333201103692954448687116812773870106196203723615106621546384448044543198235115044543684202001752086456334210747552277817837360302799632493478843326631639867560932833680663884970258155045175374187445213156608201270331648645033264708472117113304656638024804709670573326547869528761016451878087538425749754281560103193826835494741425796145793644858800289149847703410341057200480301180796825069827441956375663365229861773481697915706526687614573229559856861404966601238277558834932056888344759585589245327917358423805025337685759630559940722652025093931587051918943702831115420623421137606003750285099212472600482229287092544199413716149631638704477712052068554710589464592332940634056797934338692661076615601808143428459083580562599941060072242578764038345912094138094117207477590864816358954637721882822971635141237991439498424433409181732387058923322856646349619985817668820633373221010350982064958588370842051209640835219691580990121689371753676547381457259192536704941297495798350117304949265101310857171682819711085467922751573783213539204854464051872684237262245263872254646349566002958871728203353789430759430006898023796602958885366182960590828296666670445690810491841085932358301768430251257741248336255187291264998789679208639586699590214010193908705718804978105084826633462791830851664346172839813996493901111593682947893837125300695093685823556866568728768505675040376617657285324346679491804113101030698641891791633868427043099115074961670702000306213016775449113172502869707077378484660867530597283813983433881941287846903201551878197277586707235651432810471116759439295488251606023103241219875806053038678246484251958681351451566463899836028198863140231307226826311569749992093036649303872740562376449049148337404984802802076909876567011887580857096268623191216317647766417533279778658132466601580990341459286418423273747174744217951911285893519939209615351753537910631127450729677193325757596718175737088919377592011144971884490221901728044763710667941712420682582058938402871359623927396920593321215748645762312420184906491836924149487135068913271739383318600152791188590515634638558780810516734505029996729762744227267756105516621027921886112788955100262019901677269064067671686258890467189703986932562458714887269987648543724177613182652725170221203389440570216663359182047470741288900131355237929233362808856047643257580725302443718954223686223041853380323756494304033626701144767697853959301514114459634871985610638753633599613936546642591329883390372636639340762595636783672405797253353768903898147704136411336683405527963249665266142813210552907814364393416208538819075001287608126691348338471819453002411269001995231735842797410455240562853758421243156224113303245641785227797458936555242198275823349683288517849897005395378065004109470148312103676988958941650484643420478273771477894262255576388386892358294438209883806807875077945655966131766401571847309091715072287300579276182952378894927599746351210340362272015746313264151767082554980349641367984489887340683830519025367191655182445986157606342410100079267041036894891995127746088149824137488153569137617456126860317045346286461520293097134977637098297094467144634893147274681344788798351541583871531995830192710189154063581377361614442113166185501009494182263723413118870608439056731347263862658057443608854086365947664864038735857765409933134104208655601297864676509185302898231682764460604976563637709272813072332541971167671364231008414793437622212919873310261048199509815035332623349226382034538639236269708555420288118790138033650292091365320810123218435568236696509077613610042536225360288231420707915730151596964514721279646553837699062308996336699918158340302899700916897367359911352693223525487181621525906957259090242248085038537518614680696296341952800155229811087561334908387895077437405181161007246183703208239899540956097848436481819269520160038512065351424129693675434899395461387247519053288615322320198682417891699259920004154813039173965159362550193765230055578438010786075144260941579508121114813383254522657353713399052170054275810712350978848105874901641873260328626647805831025203471018324108625807293893936733155397365649045738806086813152992703377550539772221086749825256973097511076472286209892359980129133930386076727668442552513724517584614078539902399921203672447304423671058304479827791415674790500248128576100857483774997508438222133253481845873413381692670367315108026761549152119837302070075262752914865475526454279882327913750971639675031147417913065671578240078188071419967279146859042288124965495026296524403278502790648470633706393490950628128890289719755743301638683228139852585915676568461821189405703199145764045800361720888840085452920031716779321887936159921736781573875470406947829013067390601918678362384283339194562535803448388584393392152136234343672339424108279880429439538044640792747469497398255627016517221210007373204333792381079199886144629122391413086368741262395983537197412721652003254714434941852798702935266480580920778375586633723993489455656975552115591076506124373846228813657814213843730820052023627952082721592547337468936991460870885574516993258417570052405461128439963269641055803829952843049510775815743348294332575404553312639619567828845208291004352240191142595356529859275522781249113399114558087245351537769564612939474905107842598614609500164066262059334246975341254087534084542864840959896419753301119326409571522862132491231335035588719951859953457934110083647900601237301749094689355798851089710868142738183630288861739985832166402281895107903319905467775155382132522707488988745907840039381103933799569740926073820259799629393388818920692153222382911655767609213768061568822450846157896835346811188026406781327533157582406022877565828549893807728478465230539706385197076523077365479549236290840844609486933512169099791898449769127168487427819944608235777497716036838908879665884327422678535260901524015947371616822488880014662620936897723276340055857983155316037711051829270822402492040014980700138279541121600406814123949786847676238838779904131320418653892905162359712324569992582537444012264369104563287765502953089367884528850118639624096111262755301503164955013598578123296778927088887595003380558093398891153604801679020801585602921530429941974056656995161358246452796174153559422334982152960273047505828086367505523079258711121899418551678749194514192652175730813988513011146165421665799328509470182351740759741875027626913131831308715691904269147443336359861038469381767474176574048298074395452485037903532616551570803699320056257151223800973968606792480770980642305116129903309670551828957788684533982058259303675500624300605648790712181557251181539417137449982041519449965933434967303148842133280456030749014713586185442044406130694648274799526900680265714489104095274310291903129227212912099241492992863000519440162145917391266595160539345941338947301079629801274680273196305244622061089687179976239128993857600988532657311002038516746800816212767893992322095224038256713535333795862964641686342505851976081043666232167182368103155107220490269242549774445877343566099053999289574215931709146140671170173962514928180944898056875485755775669875189597671106114551457956811569833547993085871411675952841949668965594111627978637890569801100817815353977691909798337474310043633769926045567319302585798704711295292941442021847119896270521640593864510913661707691070058100598359438560082820213790268506729790468943984915414512502297570490638529098494204075148911980614293131500080799245133381036814697127195344374111603346661617596407339603227186699452752339503478195797652373996021269841512052774807394355607870888908513906134982591904203760960487104596111104150340226700659096299673807013294405086936059703362466522561888191235744495609627792065619050349997720203437127425610664544417679336292050339738484454129198656762299679659341231524027078554128662463841810263024120383524791009074482113378123376705974484490150602422431457553120352598408462031457552834373448594192895430961257927584730412836453460437921921679210782942392190085682279956848867553637886662789021112406591155862408256611277935220317030069531487715682493163083318937841734226789602020060307208076376983706400865759603357279417146612703909286078009422573887311484581561447505736326553177986979061499928022063902428640547489238800399298476393700134526834295680447802388099494863048021821572186443814165894599636793394212713696813975891459366325308407979483070750865692581569383342935101085284344750514837656423009018147205131067200244757003472941664216428289091853209041006671914901535646292831014698215410117473706411406026712534357649792150929995318935643777169704555145388366214591829416297613043073086638415531738519754664153968513973966700658749684087644294257598727939773085809090948841392039747149487482500488528587416735200653474471644943760178108272566598741685260828999808899787360679923364162678382790685115325688161936580919307279907392507042069076107117443545368076510782972811781348583216173597190896550361709413662026617166189164790707315606249963136220469923644845110104595314054248285118985616863046542781957272172201073678632902231539637034792549978880270060509195650503764474664695333077475924103577207949511087138267503939796125218627095476443918409433410738206504670408203557106489719159204489192453971663835930625766847580119814071505983132853714116469855103529932833363552172593596133482557901442031841189841004298747769704024004050140548584653668117225603646540718600729705768932698544238087219717180955743592048079307680839574621521022035025451734611481006773899489988389343565444018346703378025275731123846106858400552194827851041355195526440998622600772941968730534839068069698977648602925784583853210135873275046706357093880900260510328104871331049000290844326446679642240277962253857351789905693408298128285115072985844064368556933537310229451335447181787325643437187271222309899393605002147366196474716190344648140668403803383010218750133526976001898209755753571179971742798713752862171889791109080829802159481038388585707614663457504450207265939697188507451842070489765021821227660343843406183065874464661107622960248606541828638282157738094719805570527112169014365009669886222994578544034988967256475099141889543334998337698420633378859745645379116826325851874681352390026664876410952806432103624695116536109137914874314803792882374144618162410277365449738106575955672858628956654773958987118195606613417963042214139394500849836408604160235020662122371603071113848833710086681228829412861331262434264637760907501451226475946073980141170329708073699937265940469211645994592278264258551824156873039752764382762911016105994846069705642454661509299526027041965520454490531201656479997425142967919765487378362231225187506240761310809951808230586504941741214697988146922704229807496222449486111804356792075417002021379079881603989497466776721257726502222531539123667723149940529937202260341153819424946856011269473737803423450031571810883691694612591701676386418568578975311097663558541050384431951886419159389680426600766853678170342370134658571771364156548168156639781449162754313972018717132790369643193177775942606347185435654992915998278314391259150737532848367847910963580653066707242897048682784985877272630739145487748151517560064651215848158331380382093640093247801417957061224542708813229668248175232563739705941968176579290516353509367851973372321383793552466916533111034497064838065629735782082481145397136821206152494284115441687371374155613789516445589335948990512882451882702335822212342969915644130707111517721299819926985709394172828524723647230390472084497230261729006047546829605873072377057662140794636426841359935272690935240728334287079910746632945933083883458287413854989520672066770896432898583440430635633413342591917143293434083830071841443419079690034863851171507648926461266832165146090095417365157706043035458840492494088103162091789751967660058047301916306055968919928585188369112461880258185770986517163473872119049025436721957721705444772036220532567148050537451592917174713019038547974477034183167065803359381264540991516118485347803595841487216260194942600471651458440574217526701094499998798547784143274707363879895472275927124730335977440493583256305551826269251754448421174503972757389804558788438770236610940855239295946917407246906546253677947199839716166996101448961517401287828724463196771680659289030320436364454875069245757219799705914221277778888856957612375641411336416294201690927531595162981852971079507615487648263475107374774257786505901605589829423189451883370534417662916257359820841151420751264632574324900722529424381404588183504327945395780051524890146543144206992098161396254488767786785996519924183616337460233310143602197424582252044566730734767261011922187559688674073778800102010084136112753528477166540463570071175064944996571514627048733152463183446214510269571744142845667881399870638692422434719856686904389672114210683822927277566298284950934567603705088104552903018278618769178711285727807979429206265115047581222605738070570421839135964629093410314375365951256201361076695838963164962147935883067824706629152095633575594936952813450811833401602586677820530585874822415090480356453299145902401587303217693033384175972652038137971150733860599632397392456526113715291172436647458902014449649624841984027188404733972929744244249381495030625844564434707918114374667618896434305921556388747018705082379905443598744464429876774297012976523178684386762279613116902696386749154976871952156776130235201940695021837506415497314850877837813007565084958080133200163501455143897534582485942402585005102602483306670916297762525020124154878210772064985249669202624015220250895035577974545332903712310768516166453273862239311523173232451338305692521863154375456818911616956797568957494062534294303010530331301723226911333467177421764185117790276431732902903495558060415931340821832126049845045004827526845382037382767002778397378060452074476583772964749569836325241975924244974340963333621091799396947014145973118032092973187227148045924572756199181487471536221940572737116223768176728368722270178186941030935745917207265640005827863549368311863849660948911640022917517775212503095850904053803775713106475741572488990957384427853055852216033515357619408704131141785270611344738010110351592289087520201732079099650561648754458845587606073060191236909961059168005853505153199952632344578944261691894233171755645936275286261352275790417974366522476437785579769259207039079657927233872354328164574735959098987843854850719212061557572574249578146297712905471451661630845155743744615673258243241975343108607147282567031106350975603167964118809847854444002457476838719806680087404824029945025919019494948212070962035370971717053834459521623914988096918002146496870456558112856321370799131129926889134130020958218803452263664807099489328783066370796095924994716445949948554333131279133180136368716335926033566276842442673924458255720860055683718503942359554964230284306727515425491550522780295388148703155152709620192217478054731696980086995341324778114360479741702509235780833657206546924993380851218464106604522422692993551254491911593575205865543540591678681858930826051953928193031639732279681493451523227762580178555202942524692227133911736896126586948901656177794100055015934264087447366261805095906070602030004413177595489192952944380568623846280815522623612268492113816633425223117043164590482741829201731200649364271570153735221709711101418585580054812488247552606547064818604014070398838665018950188177233330760977346255225017871858905985508512748398383122000105528264054533184375489875829049460274797927539499702194973863642315255033518870416238282820297444216388815259338145086807444520223063255954701273389125519717919156219474426139815167298587721732885173697324685082705107983303460703838661926839493418417879399563224220072570580144434000962203846526861989300806814131170978534004688122170317533961363708986960544237493231030939007843249704436049295678490040728717104063452690328726750889745503540150750204425447511678746213722285686554951041962597663990378753210162812507719062857021595628518740610139680213763927283506451067110061201231790552581612734891927019142139308450473495607726788271449174328226663819641169738345905420236884190312735246321647586996062272609664640850309459032554516494950560512296183595005250436107528283045533846355181049088104881133376631159638892770226669239970031005225200867835649499727147760295477347381313024156192678712177479939003453964297045376471032150022681274810935189031221873525624865033637635251234895901552023140614752522657558931119588457955355556057698101510908560880546913112252669730235115782325587889416850800211365002793654565743939314129032094969556301065508446504229405107245772798382644086970000745854475393408800743332830915609840773111091945168773585079797320138524704663163941085456565732779827419227584973040042903136581017951700175314020901535460744723216609500002052284528672151101066420545815645980462686417892407184148440629980640967425245722832547094100093871507054273524733582222853246604418832577258928023267392118255383105195416153777833635805655155951454958659426975471059164363478260073423470679197406113642490681662895290414232387711878153937872300421817039403423826438646086521767220501057762772704940597432734292116171337237758783194754968655135617602997035343563832585762193288547941707901247318751061123932297587876820033654044374099428439655943139962914199045781978469034902921664901656517628612488053782183569962833740811876656369374794374219513598724673688532490032929710422625222874579405933662765408946516212887563479289651360224112432956717082857575318801932444421650157613765702480465882652993743639471563219298955925045317271883923917429934127572129851937799277636097091516281232034222235968900196512932005348191421213751776524286274822062779007252374158581830799904670509685730426904951534700965432801212431112552200739072684075613491511037219994029909856033797923713839655781809124449217826513415191918632748806708517707434712736249995293160251980391638589322543141660394309815682193563903603313790651160852382383019698676910933263894598989419361151382770512809080631653968953390740691266498907951348613677846227797700338783694181230668631464029298135341574611905480811281068987493716432035476713437511994550943461470798545639656195872514267839366319889077724366379575454360977868275082942719664873404656885830775771239065339399057359558019136628271042749566150249417287879469412530355285680960433377942748310304285076848697241424628021358116063686413183443390616570771656302821165631370126777482860335428703176223784868985052525010078474110950848058951947292995886239235396940297899421167210128975220856118854048764646503898683248467545111557362387899686052224367806348759530215909885935169405574044261966146720805067839793513407543081874014664521269885181406686397235568276424270039902852091296438512788423852543907229330390381951976218381648227607647315227163013364982300387213495281446375670892318613140328767355511635452471030417618544877380840490253804491649366604340643614752586369019426625775084715724476252497405619348165038233892379092437772772577566637675921852917186942721178433354580113104836231893278670881226591170790522330442762641234745906686202611097920697633547986073999780587649524770566046152093687908084632689912338041650009272098811268082537848979024108758053291420376860558720722704652963622473914803046258455391473518258889250179258165157256582016313622464279192175543282948411479937365382244308371766934335645079706680151482872945463580809602402323030311724052608222072070631459985826794978548236435612153595594143464093362998304948976083270196489601457543656089123947658212886438429820937707349431905165140731134805889643253481500102470955114385201808502349271151394399544575686123323230227889001455895958927023081105280060467920889316878240307374861640509617388695438769419413781987099756522472257386446807762643262545256250279533502139517063596393580154279118609017094814660556700713468265554424441161059305737348684021079592657044173339504721094826723210719615585490834771239918533016440746353509456879208843833978691717488797426357697081293212874239785028286465871545726781243167869285987750486381741177069485994272595396245249515297352651741454558916141326889235927795746276075047258441554212175808161251530951460011460561783155135401215622860364957572232702939517768219543304285411906904130564926445269254709959111547909841635476878601997460755059314496095055710691122754400541829258353429934800138632781513701768123477072639261387621132752009955271144651923601906284801471102501191504473498362723988274762932606815225534630408738743905425968381229549881381979903722579153643586619242392319323793743978508583317391486850142200311801270941296105598026122758358008756522303596649689275042184271087075877813296720135246078457464593614870519595317546973592905594084667257411341042081303653372050016611831099213962385296886119319564334162228910313252703535693890335573185815516457488361660514478795848542556753349052928828099538875790034487312129242582842713427422611654798635821953219769798654425334238287926612051714464567516276707814033970633507603296155201617419567474925298532208329792235389940252277917069529310717139059380904281582398418966343570961047675419859398807143834011341249236584635832618234720180842803777853236280621917810967406430781283154995103095129046918981057033278638903614064431318309031725114608039209773117810729860588038243853358864303063891798591609047206077170234959057970731415711515897124569340749646485739936862917275897156736244803518551601713335921362928914216916638774856289986894746295931650383773729132033616403424766114778094307556995611981989491953013383618629134014528571176581069682155842710598191815434676953471569112159011508306031769515989582950260021879718428059361565714084066297109179434506123772540937569862202203910589135938036828883022930865664451997819897838296374720923857763716465141059992709666869568530547892104370259727958809947845061569328518019056280219200703582413764625401678880659855498966467612340713123300804902024493984965089653713181824349599071717355682301190615813638420485842917373225963228599463718252700516861179994429634907767493897393344795476707640487478887508445890845118644691870904761972320854486548969370761314552675074609486451185931145306003799647999678833214288546695447463423518921796559646431936157365669710825774438826601861686593159950619622924912162161687996436359352498071165334518749033639021231577909297349681318365397627054412420581169350663078537678891499537647308808575007167610632166772405877973388779615347986532761881038154786428488499154462121561202369831276570433854747574157621482681823152814548969484538575018612806837521532988309735091326626615358200536306861066851301124859857946481956967154623624372631529403614152634985673358406680908315872500859551236031447592153070038814902974777367677076794524626595465055210606434120544423521974305630971959697795907744461007960838114381201761573828003651801016627358062297959397794347307151893980231556709835099499428594027573257568462013262865060651158419981324904938335131717402984010141389221436096008845667565921887495424017801219586081048947689341862231048636691457113363699490667632116457180826456729233499190513145129550450618038738650515233810097608311051196179869734420765798867135570591411444420033346485918558342950360524922485079809699246552081429910728628519298543487123731856920081725683275710672098468131451939945302695909447531041940794262302243366184055676703108923637178609988147946688835619015606413548343519055904842844616788646364564995036715495000200388550968727807903174742332624773987188585201924360968830584717893687694231763719815010927943972399220280834210603351721757488519445246933761847956230365198025822913986187657650941784307243958882589064055348327308917472459629501836489978412805100928467048715575648703719449081934436182730239512225132531634027111340610327120371679048786738941095314127018240027974395096461376992864583493503589657331559056426715431488372396064564419292774102175229505465618635450837638844168831281204950780762459878898413128316655263661275942157276177970426280501574025749356495027274366683382303235027252646489637464540123191174483695585783674860028245459789694192654538411802263922318211244159076184636545836048901684600745091424362773565719100640751502053090207678772978424431156331738482469809703343348612844573752542600090372240467736765483617507761007416147150548744593023410719535703843002823763596472075680058007601795759380291576484355885618607790711839350307547036828835815407725369761476346314957460436024414690184673299329427488415116819605352484687150217677663686561529559431205162842184040813001389991279643743833201647299935686565543677667384720456015666677029530199688875589226938424733394630426699059667299927553596640167583374888241796391628636177574405888834717715595388486076777178132719017670964379880769051229697785062774683953324540730528247148587249763605925744395114049495258188479986651908530412652523254050635770325539510123381957889027545211707199746377775799703317331968336469313090507933723694748840503775246191021702177904356899270526949035338552673588705737645048674509370245129707252698932616082861036888887701386419817276064358754324158320590010414970894872172708219760531109440065457286314863975702347388964955506237493296612353775703916160079720699240934373911541013157434467680144294315067751752403705928878823550882407685566474154751660303731827853663117030697901205329679970051642206531098812498928898115521103900585845525791399763622975659557088724143262691615412708250219340180726988866433559050085604696500518942340498717431737421510278362575925221663789316582031039935083719265003094363058918393957855122678384045780064791760026138324823912027270500967994200954580855739561851466833204148721207680840704906646634342384505067440373576187446442599127590883882336463154172467684634372081904617488064066137158748547943855977983145306533265980266925599841893522312138280197473268490004852289341699153831974395933633149363961315157466845494551561525188755758914790499758723866981682751840545787118879593733252104608017563663590284310981940961990902967812099704092501624710146969962964405472276047049585987437940511449416656724550176929535190759867332021749611609519801367952286669936230046970219009567143805592390784521570388225121664247135667443180772591440114284679423186386788759457590362195672656032222913409109099291224143135112617513646017460284563728637595139022091184788171855377180894428138104976643481397768703735464964384069577748259353171957273040587885311846390756289249560940057340778367540851403875694235281441247199920206722331668822990581156169051251245937877297778998198168966896049449962840715648425941290951291178952990312864624852948127000457721560179055405929307980640361507430256940280216302364007329012526754234750877545025157594715244529471603358046271853995460940745617291312360052967813707915704054479051350369842042020889841237815644144536871512398187491200426090953524999966897939879022709864626469671002188304980110327825214830397958112996089053574366608515468511895587882472097576623344051408791035982819749762806427391403205181469334017917038671035635115350209170727127653570359162296000760634864685845255139245448845321210159062462458998815413616033293451143024409693624427604511583633815682193420899676472376447028808977567024712615968147494635775087945602918430017718263590960598251512403842402198881168077727747646525178148906734685488298133984971202618781594647322885125518919884142193541721702949193018233598943388501493117854114228938416760605740157628953614860683303256557285456193524638387622956916557160052695246284738388838630208316230291417240700333395017109168498813835520811682369010807841011123326207474712532774549400670489464268927331067868956856230114427351712309417448151703917487794648904579235193632651411284339529636381399282820145978997681823125019928412398964896921910185621593233446707789831723488387433022618256195685508955023526683215083869645275871852595925219681653788509527066196559610648803314624297934989315224261003224463773779620617100499647453408127498358652370927843514755296933997174845652709468805046940665473728618319237999825913932928168600951946179479294727889341243274686647734472540603352602800618007578218824490164981593982072048834165865681499925179935795659170277168072813813400339589211150451792421105628629532530474051266371710309170613252478692371336036505631290788645609349719565385715006094444401017088810945455296721076424821641858898287293673503662603541382761974341644820628456707144139466964078729478949827182567991388722505447265407360820455931707751180431326919422679785388564111674084093380526500019418032186897088630729378506058789586426171958142655113336260992067824289388477735989312984506764200648573747976238613498524855532902128876863647343901071764870812754666992693827069875132766611760047149559297691103798173395089141291431108318872022483619964622336057283093223468271631263329302039144082517184868682109281834741502130039522135286885206205479540188978645441348167695324187963075089961241822561118212904298017564493694923978712739509691639222863706118852257059690064463984307646824985750428197241105137120506144857705164323608785439321010744949883423663994997997255235665945026651839733409605102730822498612301703736519434446791458184919893725763657107168380745017860490118271834252214454010522524362736316627416227566914536634840452607382171674168184218316592123495451583782601815580624333271199112135326752101679879537013841618960311185547938568458614539999724405770194751736020570120450666889884313092446848721620619600494429483543697040711887557366298832768989612140374560371615937933045992784063286405086654105357439907266625744173358312940263012207936183340097159395379946820010518627076961324424026029232690163747410610177047749292109007356491812620929170052605328643176908978093285686702359927884031026900344023999863433117263206619737785061464079763271164951175509936705592527501802272471582034949100801289523437732810202527339667915867279309097080358175602382698265039159316804380772269628626134226350919118668842317608450990568048023560573499223117726400258065559106441162189679622082976946390829083089758803471475921121230428954559894680957365789568500343094540800142159281409536297108857690693802681813260975729727418086295974375050634688104283792254525519426765773346668242992273097908320928328654641286541334547144801628654400115636469967415751964601584065578451596885663884131140704088902870645277277226788488289163933937616570435299666008944004712771929337759184714854573392395442473746372121402367769988841060729062367954723843090082181898654661350357588854101980538546573625407732189859851172996919524505107883606825462859186696114256994009108077216932621358172523042346763354639641097392517061347298835676857094633133890770939142262279832494837341440875155317602329550882673684928258881234389032808437382161157675360814722436179028574061099695377558909872895606447091937310923388665983187213798077864699287268166589223449097900836736673293078794410108699394223904811911380890299019383500312392425650943062485343873944230209241951892911059792292875988690641365552501157885023531319855365055016376889163405037688579570358169833267653117472633899287978295672073603514847515988359950919442964551044245393664462820201773202295928646309513712010117986384647278798961807200112840931327834596664752752043837996103030001301570181111151389974837960890650622666112022296058864012272738380129288309496179787346048235906779755790904618459896123482888001311657922936554866736496504855007969514427981139614211096816996900330236875945687259154613355368327788577283304673871883402445511039555732783703361030851040789252931639171715195620919732845001699266992054556490985947274387389170424696507752757570589373039002459646465172380302530561054387038714439543176664482455904166555543761958706445837930369610510775951869547289667052688151511432192800957294388525517536805742995118141213838745430497681203980744252591911801348557221882038785880458180237309555093001822032632395499206496309173698511860676064687643623071908352083701158560695474596935510664546726975765876610033908141970519961677030241982391707119523441167610632156670077870573485620501287557137875079825794842875033650889894736351636357245662539593909701654235310542480661400744937202114367571913160697594121183427390921558401101034583566466980641243143519135697362360502143097263041688261326211926388418375421692097222431613982773801228741366618700807403708459039834441356894144015876943842726297885258831260628841407468431932630378810940182266556061868871378781242514377902893540830485605014257021403275341129232331675134464862976461140753685471038398488007139442202802308500561233577221654685651859894994953935526009838261583330971247119558867893526030013342074691390405249216120991657947299071863358338482197483641750573038145818437519309588389470936050537796186105206951079299309886900502315947560549775350004487866727612585431499083054776631183855677243123543324541097841032285419471032781101290738926810191990594967379782326204230714623946068057117919546325010918836671995373417189419861083240440639263638343499210829188876040560318613655644808127754631893842039061845034062114805204836360100441952202912909519850545022158401991280789532039177336796296866252093698903218427054495864855163068201674922397537552373283773820001147907959204633933074274643661486102410645885918310279812971260756151586259063943228916825935153915078250835480969666320405797217615867770134597938655925227794113548140793033096644513904754495918941706250149388069739328209876924522069837915427772387453729123339246211441898250773963433733024098444421370543870469925286043012470210588780777875301440102106699922069421998852545248301385775965740087866222572031099660708343021391371733256315465019943406231692585960080436078718459268950439554748883405217135088150659428633673213380585319745995244924207495844712114063980230696732503582039973813239184570180360890731911636932668015447804452804747834604825252674622700715350543762358233380144399830193814806184996001200652375243096606208570890424338805970813481718627399594339032067573357219292245371521098589400475696903283396882577025180281406373726356022658074982015699912717357133839849198772836376856155587306581766811677961920825681124423336977105259898230941070751632327068174315030492042922127664553819272489952725569646587129305415985799479178514084234569697740261989959762193999729289162354596204662775668247957015902946412457679879366087149435698548572686429805342044872643213026133547370887279968271682558425325955094736519811092020935019378010293773776038124688438357539910354702749210138504011615046430960919347384435297891462736254571651993176584480922584758468465595764861367107293795382229872976014132031029147478105710055083038341131603042866070650935860956679658537722457939783956292042742405828427939540597797197327115087898130012396485394277497496708751833084233811072595263749059476724536988956186749308146524869735278261357122520915646427590399360818437231849948866536506678149250116952696726491864069053448828493256510302011216221595649106115389412760545788399884380160143542259627803104330742013800120311676386508740598464245842321782057608361716846408347015592745450959982145657009565043340035716209013795072462991729750713225564369016729936523772185176624817966509989084222803343063161680043509411626992462623180716439993866248762276377977221824319196924584776947539519538252548221682698508470260842646467898163929256355514346634583095107008456715076590206972682682012756622577363292491786909146113365497710484547050644622857767665299508173523859219343349040299491917425264241559942629472459922992039447774999163223061374883167860701096078218359498863497445336645249301421536343014246293526850503490238202873653761837665820948233296855080304298145167221463797905595463892079201790703562281794010973182231920859930556391383199977195043086924040330793811647513597569793368576001799735421942006199296707318028126863699987808398528173058577543919244704570669595047406768678917732066891722039903008350068417345430113956141863329225564230416997774496448031749211188941188785375542034267790141230851678714355244328062125561440553229928123753423975858693438701877934267776411917115946581074574586089447737642095861029253987975396729213310527475652096585619636810453762766022334848444769429084597006270713566384093378917155257877607618775186977207700276170532254848491793322753410991713201177714991322164480620239205137672644773153888049685840987191530518676680417171469719517829626123533735700740337234401285798850056535541089734833565816766578955185349619047164828022461506340193923865399087897240445569730617126239447370254475541089609239979060492674082819591380099055690845499194882433363023411593041497850803668093276097807118882133170300749391401114122320345158853257972229573267271368847595910858595643106189523194929784535678311577838899818974307829798127307983851954487324273131314983533337975513831074497486924464171155907314730545588157414542507360652517864027100582858750154399241476207276735831340724423904117754607079447079425889619150523321710178907184040967544007125412937300819554783114319197892677992322318536421306144992000271363191212823500607483955191905286366293274777886026412754636858135407765922296570882812858420661692358886577257632702750659123653789273058874506838678247365129166796820861048463671122564909751375178790533472877052339595240474387884103259974872300570741861375474212110794946719748914116701578550730272202400445595849103249345066962954904202080799906262629141164470220484908125053384318548441947651753828345184274959464608293223812290772586112429704637807835678267342277315537456900295394176231676100183561446238783613218058533533947266111051338003097933282798280326145199160318627182746400119018608318961370894387885082668956355481937026816360304189136566561596499565185646984288746635696299269088218463343053892156133236061831229840169726501469018787435947187714911175874511964683255756832810884608705158103054370735246288937373163612114842212634867578421155340835763908911328268440170372395237680837209409066648287838210443902927117238879490280364819538833382979538715838942255540402552440225682670817397352339014228508057405116794789107893112969266142283237536377459470330859633645349926270748992560146067609685856874096817269649841304374282480348162269861354803289608995720167831829142607605100678862261482301530128100361876535896123304374518587573389603283863362061389891733458046568182001121774599069034332706169764001264615164072585113311111855238409391460975865616763233290938610326726229962079810456455991666647931432321218136768129597884417676054275153569425763292804716323655882193706048266396129622567867974865590630794749641855462532833921349069928406968271770201023317127437078210212190594643221484017289490601539207138190894556021327559769741855498949726691034150295483315312748499883197651358289779295659819239655571184304756672975966088984669631579581337486867143657886350934788456113081452752546606897125377886931956507252002447196962583675605886105849423045478810722373193215928329983809580664121750691734724421393425705638017002347913733827821775687417101027119515189397555233059984997942085832943665758132665036885557814329000206157924058083830637927933083505443488120325105719818711984456898742668094052110347253111622033431422708797783880568753189486740018570265633800554914982626419157458365236977029729769581105679949971351280889974242412054832910762826549572187382383960741094720054119859760825284569750681161323570539878366463307002056167908019283515182168747259777359969328871458322857595678102564454958799212406003555768728391870729991500691773397735331729224656503583618709097278643049090268827393714317222480107934250376609132023058836345595103105738989651495708527248803589833254451270133336277942795110435241038529328971443469494706765694884905870190020934370263805513737910855272553323360786979937505312369508735264188700161139115945105983242658441696663518470658146437708769447740712837552510696309651180764861699904723000432459402834743175787912260191781799499267751450945641473539654100241455250475976337694607703316921373915918949567595759135033270869144959230712265492760474555915441141106029971852532564849025850891809931618046221551634627354339636419764715637180490116034004610551793366340949496466407831188591939376013584997603326775440470420613475394423764917076590551601609595463802643619356072631625118852055813575400152114834433699063975043681784865128919636138717173189090077814030989601736864989648385913609623784363381970460027063576269303307789341651438416209311447350118796674310052730260914512158589853445061142559700081772970140117229308639440874184695093030186723798752803146320944966084983235399159159736178304683050580506645195111167900696239240153015907610982481791067843105955527959927935692192200926224988914289856744226768002039147186315674650586108117922186835680751885299077907512373862884336571813396217350527892028765045097112069658971473659027212682241784226926312112114028627633084229862763460859059979697035987204206383453749652879804562206764223148848281700016028111687691622639058782968694643584196219830344428633772680635789241041866590602611958474155710941259122819563129798898197839725616424750720698992598428034538358305001594011990507266245504245621010042910734779238425005454786636640396409023111687138758164206195717712403852329104940503239860787982903646890600885633798435424354859271769444390788391736568187561353144105881798873152357682303275492622962711632363201439407630073276143696194984049595327671328092042743233925046240705557014210526113108226437256502253567927094326345882304732318875292614914461294161430745312836013579274142889627835403585178195909077876602520732626777624634646022050803710749366488355609001758062353505409553756113683386184418193817874009891237451952590307078521623585931257434623362415009417889838473987460955711630162703226028433875014825328927099435581858761660318017092429302836318400477847636885031486249556060850099551622856418746718797651877585111465210942696887661240262125102749819678693103013870664106089003239730268038307868039078116553732854433043108801814577337329709248957967802282527686119011070970301817839037163091555434343633549046197435494222896315968519827689317037047720416432383908886546157566399431054579821802798791220363261564930697629710219656884864700964534017597976242217970553463523881019900490201619302919246729606264255811810452235368363083162580892594667122245993113753522358232331586234253559391458829742974045761616763594663955117044188291623421264717847054726289346016300933868281459618059360380011754723118718125262267876082469922399684259586439989808721480994694289933508724760221649066589526054637688611064668158322042648391276333841368261029363468165699299225474548227293578898217566343918621432620201078203400995954395426979097008954009518208438493880818885671101708621894683076919767871843273091391079373646034394885215792598130546144870282996282557311743738189270253583527322041164043256143500035431868376154240346463515314101906793595466232424039322003546753974389290135455903055866442752859129117119842052831605343275530403573536317868532621790145780663724895132667844217431169345785881878590056265990148643632978951645394374743251656545570975407449197804279590245340154557206664813617824846396547603109205424268693084446298353903260124121084353665668755888454469911699636508805104423130957112548375190808939840644410793389273012733653389408574334499246277103836512999301188918731617881990836134045089505325442001370136443217373479310005792503817232947315763780506975024164683104685039752239243636500701352356066332750648873558351684347302680057493243583681849618082439862091464687167496358538368456305999029092962585379905031735685549012128479736387824987948535255792201057604409382648969358203754175221382586261857096825704480227867821240480300979741453491434124384000115370421248941416979608235390874460828557283442376639717606254517966326084553283086983820327858797543687666691110706422084860425677049799040292325535796179620411351074298859238774044982520123784434578031872828600926887949475303116040856456776482562063034493287941031719524145217944890894912922825758150120584960886428464554707244165487909425079235787548436314679592859196470595728415601339707985580293186132619790348115114504680605711894922050536242670625106295781563741507775568796786264647715907880896707846279984714211702461219210828481414479981393768798921193401288110423960843862970997612697499715839746874504789136560238659405766164559878473733466167472606384314073057867658476549666439410668995501831286351377558697814494570929564778960316433498432706268037910226508379263164784590674089472359381444601778556495577861890101346350215501352498092222412730830910150306627868596353905954670649066959527530376581362532028439404174472544298807780347933556519500675424132188294171809416063650461270982403207922263767731946178648444652043115427366307636523841556136000398329279082733358408516226461857224573546587213593185183085211080390085759189703721124173095896032482063203677392551372400564366133427664559905513954596248949688896475817485024663177700898061392105395081753812674013160659483779990403327836747907382974852313758281655987717895227715139299160167050665178928977891768953635461483668076898764289713853595714430344707322541424527954472360648185454643977116032439694779188140720119550622739903954699813531398206084631769035602955352798190730855117150012028352686303872885308681747276910422016797221699259332990214628358091875428606318771651625084036113352517418997875350625067367651003198146829496406923199667704794702719317074734555335181991371584271342625590237651934263106874726165062323351807766098737615328811570251828728363792783413046098893928847274019920170127724802976050828817037509299592275702761616153153457602898203664756723836955993248628699152342454397635541380432261501620842346899723703598476713151367880115686491390669769238692230797834615340846869702290012423662544431584671232589742971532591066625254119211470378974897660033229915614738089131158741539042972576955836053931314556737634987641064215968878969796242868335590320724529686637177384574938915437232996124938613057754768369889226115990869173324593503185337697313996245523912138959198226181048716326938950665314290588781373441836347987287823804042064188397607596411558746909333047965414877584853406213283919972077086487144319214860653774495439416503397491009402489857489096493951125175695506369552690552158004160984661479773341972695097524449945061971486153245255704618590333015374881346634666692159519339957738072867660514197813013288865050371053178663564533386777563727764993299841665572439984235846471275818447763632994875764175199359149551894161556672070249969615824989994199049653788704781546766531397220942636991048121830856436278681266948818321860077471016702336983853969659429354197099412333156610205778748177859210581246202681316394333577177766328102116334546524664993839883416522225558925070926907444655461460196324832462376115451075137862005488230204147143029979363101693748608553864985167698606552067251531802285038825375457029566177932767372149135751063683471343211753424464419033808669788021740062230930302109473709886813424538806181815061182991946602728681233910322756754056772339663269679026283410279777105309143472862873980720750204126476438557043391955277609021038043595566522310507872130024620400586264254034984687729805199349378662309063421197296138736210639712795301359296671607586799519407226077510823132989951342021610865830789687407576170506952400270346199926578369263569720069019838962740258664794551392897002645296852755400123740700357920909750742877119005362615260165933211695575465870145651032410870084911157921419632985000028274825145168930315045803561307338205203798521569745230497939127608362762989880537500704600970641787194191278587762883286305523646254697370400321263645654785183628302379149495082441585994797381035927575490448362754838339841987192771566737937416366497685952663497304509818558055996099349809338158052147257953777381511109584079196131894131342503635765679361821435191645785797837941999747208833224629859713337166425859580431708453321235102575783822359039975240228138352148256331477736214432429892335356984807063616768500776745046886357012746659074339193095996417151681751721055591602097156666887683392809244120638260569009882126079701407786324685234335184892175190790232517471975345355653568895322845523795280591614903614931632436988086081703994495618491378874729838043400846350037216899944949918090789358395593656423189516626562143523248984226297759807581571545070834649097867604106419494077510131079791446007820205418332101007970280234667494340181573730546980750064080529756552746735835579776666057584728296071273082036978522547928045612850771051171376422249140698314405979281527932689394238931469616287661625712891465760787557868916466798034688878839208445209649752840348553193258082723195690296654213552265226575581004313710685014640195405405259996102223275478772401793946433526007955744851464966400078253196066251284457528074572364085180670989078209993387372151937920266020829303551247398924609046807633460469748093815899585584239901524809656927553586275970314373025089734425032182925905597455281752330531362854047071146590755510847616930327564019526334610106987537003975635917412104449604194636880604652428790721653791218692377527492106112053923250827378482710993808580672489832771371511679967354103951213628455554725057948117473479014426209423826766913080257079069341745214836255656662322835095659753204979733894619721562890969369237435775235208276422984805347458159756925617036120789307068256690726158853118526919161790593784602855761656294810805645999210813597017230774642553510504439318688712544230009493078902690135804317933167764542233774721338454694007686563142522844122356741857753589441559064701416510476172217729326580920568877138632448771304750046199765774182660701001719965759971950823656463225480099660044530752789243467654183236573202377780980481222322536436853887943244949063822859649051106910765561785666503699791757943195867415766367877729619445604743494268238502705675755602737525158317282117360212093623848909928982863350077901652634419919651479602500880156832782641404206171117337278287196389616562838487815312849419930399697428246285261815465424238866181983342869485823888584637448847214965169595933762739056610465369933567372898799370069229872869994613391584615968169029108635294396904735161025977639623657885324061310373294070608429767791077660781389992247850318357265528087005728673608287236928860581384300826219987813407284845387115258663934203611756995290274589184983233187581080522806537279972779603915508211814106292299426402123984285145201351581744419088902221072349802155388796440388502018253301580965648091664074968185953761354761979064990710429552559797084141182603938257544601555612144897986787647369158963192570855386354526699076299548526524862772960943043356421766917951398618197210932758557532590506401183626410235131954712127145551190322898503617778578665021130432604569482881548104034934900374299205623405068879588516063077005415790671117400562356509124513128447736967124893457155943692476892067396631529655807544590475232193499051393573111106101238257040659222149776701003588416412058676562649000085939962217186702843382976463687644330033950923807079036760086445460423653842082685677548499404055514039750529440364318235970712976817815743245045977523235038785046087017894289334936322659986127348279519567851584767375257089376314460543461300860938237969008898656120650081961633349278212519132886308730479260878081164051199519263192701222293446257744617054557042689969403957213043722296766791788564570336820912716304077893838654251762595154514264788102277196514118756912904559864601844658459749465693633920633729885147832712726195210653901491896284047047054567666780884476122585491127631047863532472142638533089041528891948623721533715985372867442763980644524390261146448128042274246997991625017465611581614469443050723587686008134311281355219081526995850592226489184420239053441895113105258514849506802959722039628495701406672755627812489914137765650395008715415476510040941226048730611697670945251085615734708422114176653418073982357013383020116026693631789098901241011697815247106263979344308667360674362712455944067852145915987306428872939769861245328353346247919510341553807350964798032609258715250654722529935214467945280393350291374542069108478261699113168964045149378125711544144644172071901983956681422034258768252602903925865388755826439881515766884022418170690491369680008900019072333641660968669980178642073113134965810571434664834105899095954256969391127725638583214574730935333920633501541121719587050169418397441238590929717532091833609208920264570372865272647337576248536421213107735505591305877510791288380713155151389813201631597386303916425634280056860403318361686669964454397875822917105126192547975468619537724934337014598311326530074704312395899382035853813496014825221894688324083245234286489917790220710618415255693148296389373351977574297080371630938446685445135353671108006646151628203882818216091047661322621713582504607882797124374491438598048309043912462072110730791893477749862590683341775044197677504546183794915267991339161777549954203858958734477806962300720696542916772505789343020038432766333450071214292965633515934665721336429396492980244807931202656800749790627196928103399742764350441906648322526564181908058017626164004435571984198860180359413815278561779098737484496377886439796163137170401643232912045626563114425433428294233292487064721361889634521309022210814552135711885196279843626142191731892378832058625305507994994812207919883792212938296860441117895879015823958367134499392891383926860526790471470209778619490986926445097334983487348858542500725337857531477330711195038998651039931735831175133426843689189824747207983526245269398599969461030377533798549069418163228142667346939432121107637559469412580704851020050425152466826207159116797133342613901696350670581062578347957694895194655120729653147649732063226364417881786271278739333984038478069714563273917865161790944670544865626104672870085081784415514097574143667890689029109237410633021224093298733320684269562553298678839017494909722019048692333055528514585168224841553111466182085226855048718104621304644734703714541634409895468625322193099109669634981027594123372242380377199499195545404051635223069093675284649185716965005809366951728882598567224530541747640690565180312700407625297521432667232263138251761699038824729692393154354141659463882243226433872985008838173878427399402608297776070152948813749713604455439169844542287765819625096445829697225851550807806816914484812437974716862427485717430137430987173575115445218511793736614124659807747547452136624282338650774400350183955840778263099072174912240136616461693026220461301864495853653338910914763966423032438605958804935003329507566776064602083948701597201856358440511354140366931939924617936085348213601368857650341243613716168337638631591802650872515275435020227750342978305835748331933824314144761716861156543430925450182124001999287136226536521685491705490164545106495920318783159492771567105072743355399650680388348181337853037003685673610260622872387990344694406081122694190066416236128729401220308821547732050035482378935956542320755487469539311949089834199688139744445453787058404113152520634540157454524933455732495760991638851645470450331906339534452385277490762752910965551251965647642349316204725455926452237304844338883148994850887818480308933681737401296779165001792557370554848996301608468051640823671411205413520401418449403834590867232092678610627488123584832667675281181600398755112289298928595026152024272688362204121524917450705827118613551428091004921940277222139702938383281060306661751396334627006636821658983844850073724444891268055612294149826101525065114812479400908593568263988880190606477310581246555522248298368485048921539327842453598515952317343015809054037753172202970027089779255257457802918633583036307880928581952066413042203004392911252023535941966566887314550028093101871249055277225923199697208324200864252623150183577865200421116992609562511217910580861080010122769595863397615464034242526445123783243481136348346964222209488643369856076939888843889939223546279029601778506663572487118965859790799220111938878937027355770447399556911581875515104129972198799832464898453770268877249430111864112595057716796717965091137430255865450941309666697404784924294980178786433035366130267190394559137072948871295464420880425210800358706052370736110191245675062103850629981675125886896556775032781415368511220536134475103897829025364891211895338846475406642779707421471974250105662401960725809846233159591144471034089786487454430892263949949950792005886212523771172223622103604764435986832575505807651357615116503261344894617335657531453186256084381333662737231580331060620374410223964286874224386109418890651391015560540098573075519494249545497580409915144410920013866424968566796408815047601404242198866306387262959909183184260451649764685401755699379126498082516049247854225991346589479554679410338903925309606569474654487794421949624750004749335051348190241610867644220689259696009526903599615766658967216499002287454826545828000089472607978382645287168485712329364338206496597895105131948568815940838326189231951174635883701699987413248692886784891224525829721506360923626919176293075720965869146072800372711818741436637304529959556470315927580041400250590841955439390116235363734574511471660023239904351864306778366511888924684695604139425014857259157111096011736850075809617742092968648215356445183160396922487871148976211368286909168975376274352576232023689477930524044900728514301975614044324254597050302317060405042088073732109844371271023035415110980055916789428557929513833387009008272136891658486947705893195286961153497399508413788252300746472098197051238568075292034047087480973002653561454709215119101413699659776584164195299599998427169232821717926219937496585246332111908623219789659231103958279164423660187247326628458566781113697686106451916716773030055302360765611635946439847043552168568804800888329763861453004806820914987543934583912253697291675157708832733060655217576696944582640064906949195531634625644975574635365749635880618817923051556509874657964967902703578357972616386868397936957997961059389315565450993237858156299524050960781097073136316431883378344819947068906636256260210272703845218227345196547478201346176626624871969183693425665205704321272130996698678234689025503568460107033141102924239562516082466892694122620583977940549673192113566186640863594041640923410132934454575747257361567207456785475403778184797916841105745200008877235373786270489822721014465295890812401591566679189913144911804667264787271475564496283180375578045183047648794034668314539246562524145636064478731163075223698026087538684361543699280858971761504129366188251995932271152061857465930991464190352134982547132439130162222981278229238433351284588961500675417486878029975425957234551259859955684869747258865268336248760082320437019610918334730735193730757348858309282070191613723050992543257204132903975475868396708410294297841938499159174893680554077688552748801989713652935999916534222142912642761629027586263722304967512039384504298776232379664286556706801410673724933818062747250200912830421078980746051675971361802586352039951895941704548803274984371579183721868398038695747468521041000488325455706735303110207597138607494828851797472112753248198962288601085473857090537496450054534959783634844835025809061627395702653402012242982527526926691086400583342079098330070219645736757721059820810302570955070121734655525664730155337339689224759548934573659965210810020375856463606452699952937848203337971182542495782506936214269673358585891464014217059396349075127478944382269785064108643812845549163379046787075838701475857403820360578406412357267333158368352398395234891818394274039370667263048663052033018536952628808130538111781239942690731026765926123764631199894334177966215627079084222010089185996454131131209813339794785346926420751635420087040719450090182640998233379175915402169952719598743845440538676060080042616310655950453134050472601226458796341298330514837709045006805418275292958141297007083142018135599923518152521808256654909378885055894690434562288623980261252717164427429715550979861650174969106853420865385284534764564647276606334794953366866113445858860821982261399601907744381601652118941674988755366116214227558877650110618882791230429345972713802280654664984156264383672294721474688250173261876778157050519538374320011347893596038653063899312093736295258363949489619878606150859938113591752356021761845384895643418156133978396203529805935693473252167087598587760796551370178069443569161362450901870384091033256767607456285067955600361131883901785542739183161887397858647351560333961163521404638130159676246451945822001814168398735239333436717501517030933625587598135196394540046922959918422598863877908985432552572713283082572824915523164130875069164938750138332924889183662447671956387653748261106074466243307287357800746350695659232327582034403557032037112411869409845421879429457997980270739418462910418998778225491391810026928054027532961704594305810685992440439697288804798452891406738762550716021851169661144689800692301406102433054412440849509432489258663721928277904349548083153270436654306458221933659588782520321480179728358332757529998791889524030917712001748078097114229537774163790079297780544835805798093496857537616993127014432912893149566011978507806606364640253617748275908141577177718981117152313031358779676030827690672312208658816990831285976126168371464156822902273543595484412636720655377277724341510491654742372037718135174769547597201385450530705128310165893403593538422033108001762697791110461591432230411706289777127099907570989012623622985944674178835603716262996899049433664524955848418404569989271649554965273164234023539280709745247898852539827713262382238268461529291242566809819693968810400469362816669051504121232020796793981286966794703723552884013544559706070196695936450629692337739891258558975863434644462613716365300124547427900573195703786212996434907711255707516276657474039355926491360047197590923562469626647845366284143059610803494366932632699154440503491972247641282927449112399849135319279808621815660604984371108313308831996439706015118233087837998193417652344808574775054554655184993339852936996439972853739931684225751683320632172279668377204801927878461435561741506733208384956853313320133587001716866186226113164937717752946152768154934978397819518654170281285460840236827088996931694676374756663329109571132680261717160980600820549790918888378725851339487707769165067921485552595651772551626299603132499388893255285149452457786712115647640807528549338252969895102055804487735196385774893589525405234985785829590232837680776326716691081219722058944659423102745605731968369122520689821726439950816745537961937410468458343437497877288243407256264902499956085579153862723113257903059470794244230422490656689305881971482502164477854837880114839074532482941795826250451980383882345343537290489119540156743238256789851731883233352393896694946587540611645413582782590278787272364013674576407736682633304061217133963760874508124200760497113888159382281662811626526050729161480815089346303997019794026647024773533723430857850659829569975125305667338926360826051067858953708295173229700622217933395010810831191891059224722935303314390038030113549373605280665562302949304594341262238166313988353262490944246123820599043752622372982219299390371118928408513155272190672583488598137341327327788449081509793922116385356104348225703578986759051025964710955008086302675707820550904777968986666626519501487608532442999241416428739557255591028689667358647671750366391564009524379998762568115592642453703857083499632885794046873502289552923106472113866539346419344220521356290794335388287841267447106455624178601484086901097908192674078995734289388264800147652543978571355526926033697223174797314155816195605315501352839574993889953661965240492333107885671441882907542691665299160313551235138174964530362183904085305240503015287244240722034390905808194730997852219953036564953266456073107732630128290508838833899916296216608432960613087910569657642033616384904157525844542493509911216249370578935598396374169974250919999168005911574051848971024899950650270541400849180309067011282662846371891956404935807354952928284620136284397368885876631182055755969902968804493112663155243227980138970782911151470564834018710989344293670464070699750823733233188012531922626409214409304640819912266799949298499883655245755166364912932325416588262492021481702986090471926410501937199887021464534193463030235654227499136488737998711427411037263432885795141451909352191967748317263879863586398789700435629281189879591209601940801970874126965163712017374342344477208302526121545474250423881958670954285145711956797546522034255452587643329562883854106257296272826410883520927775443452410287252317088142608134094684892264094077233066722952393127184255451815570323260644114989712730480476510330905374551505652545410871746445380203217632882988521506990707272322060617948607983619711648016800799923829973044565962969988349618211836191869897077671219905193088620326683089414726574261458438280232571673708103955430925577275495221829470486693861065699626170362059758070136478120857395620408018154849080192370329756654203792766138875014509581349022869248247185402415870429451917058917028891748659592934067844181447850094524434283142308447166791717085644168194638995551910980120234291925931393461952939723077789074094375709360879916541139597439106455408096139713552328856085674542370134615029648875982864520989708476651765248903225188146841592579329700926522346997170839931564670584476118948421644317994232122187640201865376883382862017163259945906124937616681228413614923693176842470852863310990298132349321901156532469126836404963850643103463088670760714156307016257181060303538775943235393436735601600869784558973139523008614119808501177921497497797576175398067715742708725957286027525033648657957332391480070699600559673105269158705437496133511623239989364385500822891923566352494744137074353832513422192305625956314048175937680006044275712556383139447437961482663232364163778014775692447956625297411806864308233055399266261260981626981755493717381049808596136727262581713604081084615652749350787533501924876895993140733394951224975459953782368913294654789646753167840795994888036802425501316588495211725123292862640854232277354296360717173470146824787750430198113983475953183919267700199926512147307110535161559273905893416608274480130024174017191042290699758239026315459754405119264312196596236827595757430758205200750952336684816196670108874322488755559233207583468016456761698027539358469608553466245438026523799575655540419997316362534682220349065934296600217530339452200315103068777636412265638275612421581522337294410886418148550133623454436213536171969655362492758093517324823159754054584599299616728478553213592765667011535650800933408573607263482233307311161397221935314737091537077253509473088145359456745278739103021952726561061692981427769397597256566439005850600255188090818650870425444344951123763401551422415412176619202449880733751311196763832694113075644542767454961087261063299970467405185555776113659429663408513987973646209266898351888198103151630862345019234731663343613155537383848680720037388311163660838833545652375828862967939939543474619852206058995662140885044462055423053018199065871290339830652081923822868812755768128956683809906786364625881195333794713917805505664042316938143228622017499727296533815338466378617071158951006233368966252871599162274885225401648532031841069271193124776208453725374397532348856687652017896988332380029171316020926350023935999466247692580257659782888959957923381974383651970278648334765567220095269304087181797638683685447566760907570096604601902909801444353047248740368418179603644490062573193473541274724339048576779057435592764026506860369611195206603785927215818423109202956665611529004828329777682278978262733536591828943795240628684156004721083566778935744596897023381811791630597631261022608368130726976893805116690375350650195230559688617755762335969996675945175887352282274237647342272729370549274072527952182078421774088869696663390832739799092889808206281859264029829329495712195396180030402190033789491212503981890810237395586667710119088256206392895460872533867677955272990277571844251089579723605665898649146505202049267058174974090297480528735382819911376094465702584208738999808935677276253001433869909840653002369675404616050167799011565939791415571325725500839333070185175849909371429887671665034681707526817131421229200990959952628283092864754115674279558392049300934096398965852725224153352997451871455548099572427615196585745136941365742955951024527969870559822845703942548245017299939394549235779078970194104548673383762882528947150892005959347568113591820375746792417486347574282534013382017540804967672506039662738645965034137682794597350179985601084022578321864958620781033872860956509897679221763893241615961287466564771338789334765278251023788375146488686933123828266576798372073155687170782368070967865471759102423538023470118109237982967603633853937261574419542273982846268735505963131906210352017208587993799547588390969327751168373587912052614457362567576819310578950886331847781299817226701080237631432296142799539220866131653093108245543905880850156830553826454188331144143865267476827186158999047368210252314895755517079883511929366532344197894192315620058553625569356740382075911449340016022846137754748989445031265507037647776868403487602434438559976284472060133745485567039478932475234130984157290791807638435846741764061298563701185403872816866365027677656077660314961666562371777667295661850880619920026324198817458244663686097347345325313096808145921068196105531519291087380985256638902192800064814431393373060345839217480630595481310495144491548211307275667220034348286302220183963629311624643391791686907045209972204869315360454862794270862230934695805831329864586707821739221192753413877226051914209187223136953896553001840076871714629992803652972248723168272567068273305284362553169188408238142631305630662432960968790292335934797140813589914091864041029014696058378470311779745595879280492871900159181929631170428519637226653453786591612368760194519064921937620626816922036943989151750781343380629634558078606768305296608664744639373384221909338985765527618134242757254211951131015737990582103437828910544474761530241414747977935103955776392340937454373995628862373663741213214976807277061774692539941293980564902191048932127733059592798574429467224673620164083772768936611139579798055205113730365663371774979612838311299992220258439178897643279417402859567322761003762946138878391308834888525587685072764082985349277871514943783928697521303507652640215851399431123146099587127296765572330691387748242948802953907585993117142815753119390280708623601304317554255556418205673468465303342491532588103881605482265534941308318985544529574217344343171009378266709810293037413655260792444625761687294207042548208607495399717095210812594599783275054963334157218577539321607248846022402309971558229510727245997236211146314289327006282353877602084689367336401183375777202694814800729940195466799632711945248747095443753438524786936452484668997553042147547338772900909692739190554438477674201216620835386515362721952069571067186682363291416923910756857138257117157077300141585164543033666889181152977212673373104941230494967449635385140800823398836959742610086575328834139844930497296735478205023615185385811676723907974908445972426690438062912731834746397182137016601546944323133258772848700932917357137765013998591556778090501121538634865390888946733132372009454731412049126026882303145617385635154043063977034590972076322516524115763820403408742464137034558131104963266961716762145838553694157701134335903970240686797932359135033167290621053495575865841427617107772062427437814764619059254582000105194423139415467632570158584258087302361357306914783070966358823925081573692179971510597326132561980629763952665843153850958155564585241102984313611747668139485480227599548965994548291785269248427877666489648763675548851916679221247344643828021745247170456153903151569643023069666935956846739666529754103997438234171881171862160474831580025600499095899122955389920440544703715347266334037965710808802300517002429600323696487377651328037878790310655179076789930779391045846143125918423930086913875194891099733341332583631805250372200693821751057005080541043046721915347835802060617702698431499260893888203301992332486034041685349838146097888695529117561965491067432944320781891919742830286531814607435402266119489551539437581068241017131888451964115495618268769769108860078534293209227477394938395589023464308695145569112812740668608821192854596400771991475733684659686098538168140590456279135150910882417765542035671846683692488996228416956151409583355576133480457238739498068411169295981589773558337076615099465808049136536726160348262565864693561230665381351382920629365844630274634809112486323158436382543626580464214956557651961736837080671563381091324808368449433677948744232605837194228041069369836541008404764010064137834976723510841310425412040738910333166164577083530962645168208823855602805341110219357317588081287383134048233858672214287698183077880602330004876906950558872531941288282061550952595873590822991235683308289828872921680355054301200532929834585625135969312411256534229542664136197496136609657529951103295014457915070339507839573166572220176277647910877287980687331415973770148239406426309526093541052208504053628373820889336346678333582585631153753218766575980500792895594152475463810399392635282333901879803680316244778085613531612627235445442749548897213040261869074391176058661483430912942234263401242988258983076129144117270004248326176089482127300547359219077793013573297711564174021555068116264236412507052548950165225130839355091206479480959993163267578098291981060620814983470835712343728222235929832826653807835145733993709844716905726081149143317803834393371792226752587313649617346962208018810953471588643169827684851212880468045485991646410994256667438057199286894309257614546317654630811480114565204773105789796508542583203942882443079571951079799251326792087720913610814510615459470847583027178904111597461276263259453019991821315704554070701676000155816631131657452666480574612764911358542839391781771782144958743266532290205709338421666749147336985232278942529053146555306960913952482112603508498296027219220182948380196751954233057004396496648598174159987423026536076305163847354960546549684987383243187890170479917078822587357658490419077744582960432564678366558682463207353228491340474894807321351671518295899832103170809379864989909690446076989156373562450447168167493570533810180001206638799213793146821661292983743138814793398341291991434992444917149030967919656239270387831941712100926000352730783847359364873785792139284205752515441022417093463392309782820458529360302917356933722195304749491476089372994609658890798688507360724074968124782982291153325951503635812618968838971937159347477418801080821245688658615373935127796252197891360723963993746846929459919346080236118983984523568440066190506409790699017224049827783012732463455791208299189658729987309002679080316750700130034062404511022359586997305225276696127619987119862145616121736981081543074870173033187220050517829459173546972710190521084477056589731801433737020982676076641764198288439386724072743641212897336898138905404960758294161775859684703925268974107734462203855582929316637464470521886543650377951040942641795519237197838389544227496369622023935229647465780191631219766700569995028942883099395767505221118986312649185305612038343685272908822611398299754752929737400147640573561529679759910358774095557703600419582144984511944698760328605244272658503996861598146379076044239140500641694304194643926085063564291419547648078279003194791346387662978075354333106494618466703427642365237055896496766445350383218303260820682810279067669369754580112022460206755263477968660757834835270255221396432728187549303381278739821394880068437566218667737162421270304078028327346220419188585249968288458302759800747891402805074179697811621761108844819452615280506674418522878438848170632868508758935601100823324449878796110686455623337115720298392030345132662916007360668217976496731378884094933182831708093088132181668102293625671541669579045200643675579733753188784778389148420098488411653003841345155560945955818553775074361687386088464535028598005764577923074858186722019215223611853367320526682577310471322406816623214770744928703116001509464442530893148999053252162228421012603018620872719978759761119086719404836786999493895907021750301403932166286402500529533446398902851777579973615025795790863033989761335610755217703615098575283306857345251264318470487807932996910847321542889511804034075668396884038850258115579556649481746389774438161600855009598518241315844806162844549234276402138982702780419640881309939171125917518409183185670710044951864116067885425452310043401176880840872603686453913402879181577917189076178480057549813839953306358849639252524574787184443043861873869334717100952039110440049521162207013402867711503747487908382497043788857625748144850633420259879238194408744141822685283491732487571571091558533172249515984474676027006421097400865321481241130002980690113926312601939818048122642609486690438334813137756072489106646942836947982425156383124751176845158721114240571942992325958548427983080601273570997176080349255607163069766977350730637074359894202409713961466708470722736063836523199222600523943740573506396945033138458662671876774907842667545648787653162168355821925199715242917363539178962977741380543391275253440752224827061826239263512302038801102662518034675798208863919271985755935716818795594927499009200015569155475086910424072841407512063284626746521542992728305930343980480511751709461115693710059072346575795534833934085090466314352247156504818044392251043796206491513474776925069965131995460283176857101808465347552775580336290463767206873798120160508627993250190798028476183661594212437276226086103339395093206389626617346400874068542495547702727553044413004260284101449497027757206060762101217749525195677641565449210764717074968582770253429227033284264542686718256168636236540435147154238826307771780065341079335435548776869528482355240500019442143568885476520588178197398549391258748845131610103192014679958345736750662689072858480899827210565717411675836627501091924354498804403192152337472052012431090365373288311882796397982893720478064559442495299840103452874041025993320410553401913944900387961641458687569323644744660835487368630179512349298862031116893527795007730835243137982696847441930583302957325111263115408594774531084098460919493474693970473086322263269269213163707064390981376826333891428900957795515381288857220403845979872010797242884875846850412294698076484976432090778009367617357409239980835160478858632071486935482889059344127968688030959239658435076596123153356544049068300766789702577836929168580266513653469490341609426120331634416997252518836454430479425604097128933565496304472706718967599659833931842682094799269967587527962387353761312073673276952578583738614031716689834793816837735299183503699939530620101367398771126121058051206934100365156199486489867283355857935418236845159884596544911498241598739335928609198103653094638898794502110989946901780524020181584520408110763351900448560155447330984932777445501149298893194856575478332646136209907171776725999154805011076375153544732780785250887232026690749398558586249072618233633887194370896016001954188028789285786139803772000590623502134818739865829759284351957176262005521509440813964502228477792208610162582654815632193658991168099730314421627524203873375583068757713382785795492014805563325321421860388021478084254126291119942660995047515522350469765736124737005877407807755243588707764431653681434956963168775471524071362862476091055200875049691264401807748731222804729515765799968256384819541872191348291637002123423428869783277500398522891876118147218180433357307503387953372198818024462258715409038215278560064504798785348180525359836975680816226867064904670421793168061848709162925657689094798102687595211053355239177838090389389042670799407370441504902247179987252210870818367340354633498745459115926752232897374873147191631151637371578849958836277932380531726423439966210575646593149890671409795853812174825560640970102944379415670807119945123211895112117322923527551175393447885796983102692251966888696915240900568167246272355311605101805093565234486700546598366485730444165874249110890423095232646569428719817829628072102309086187759752241982588315231430008243762127519121150361964254475310305670812209302038162068238418672448132616373350355347465905187841002867927365571531701521279338725280022505472065971443454924589241003981882973513595981200284720011020361306093240375151627687098701632375020278379423353129229007624533310777298023068198820203431203467102238412217230117686980207923996778681839374704258815847698436640671821149863937877759038814590925832597033345679499629934326484242397083449371303221113414258404234048851443989935524244463931156615915283150628328420599579243366453266021942033219894677668048179480755538537109120847765614053622484806286702878714746927377971401713155247081650909819594746886151784828515469903541343826895941983999909015774574149319488336740896319148052727206719068504676219780476171666715086811762117359687183018555999951303840256196510057670769346597891170462562600196363120633723826811253636860900433537507165397255518478877543683324906591775577447865231878610627826155130965698163048275929121453976334043684706795973258523866415024000661755362424606487554089951732541553572333992738003196081900893222328709925042820791038879231375725143582032243515724874893872225325292829919784006346822688471116997981421187038859419254360362254902288602272940629424700927543090755938611809424345095452554635978328282529565148256629404563401840580109177610699176925212241691018969817245400116346780788601567828459621731860352743041556839579742041048493973523412129768207892723956138577737087301222577003974906145736793877813733146844886188439596181460563776227073478840967555765284391884340773542784970736359699539801936964357531427332706270842708737587073126648748886034243223770019887986735329446856500344624742742406447662286185765721918172287655467709112249294031437505665402575785207458712288369032908423799212749235389784324771873767797371089677098311158359375384388435964899320268517180503046301008466705277796680466514246255764156572014895851696831847935306844732579192850286728636499578862529007157689748372820364410428460430204099968853675025009856910225752800845171558465869822345429166094722342800656692335266653854771071500524063452347505696533908445225109450752732148277593671169353064012407187827300162083469562426159579736093782689542918919051603031152534380866260619769590995610292966121980157608653849496359488528520941879644025218866959241504938405148171715933296250000634647743566807696363040533496833740973484369160333029670186065559636584417862623354500569368178044459280917354397939410517106291617291186005181638717482188868979862272549810951134581516986218217613087018980199525122829499685064811733587658584183475102029669319816070755972940680950074022188008179126267430185407033773351860880990866834642953397067350004162237644501511696872758232301872328620415959490877840022493786611572903165506364297513580104631641031034951014616527311775955349409530943135529535100569276104403299103349724224533134026670234398979873977944667518410909046506863514370240098284500529793609585421467830127770978434666412763832657048275218658106616584898363898774793035554349165530075090594639415049310201918328449115157354474078736493822628357603324591770867528726321017093343720813429353520005184546825312583955788309473098086840169045789678889094078463506650021724860743171291271978705806136550803125232833389280223320384508370972784740896349188414720061169664966077423650392562359293260112347323587095427313201765889827852408687877737211688948299095860548416996993140291759423141847891681924109232554271389833440329206500629326925493528452595728967555529283476426211032133841086044217676993468574882892247392530662599989959337367288665232445801006090911501388671438250569480687828777643091557421567369811998084161426938651183599697498794463734166930289370612648685168473447744104401489007967736601801136498867169557333207974176375650061755838920825717470584226219675255470092830387794376397251563908974951072589057436811092500718581852545188304051018029645044933997200180655962149000028389368293974109965133431381958574362307254400860372047932438835111606979531686892038535729057094466653372623247578911152835506428844932917879605738933293959256376942521948343950741985474326764804455109431314505693986608409538563143744994839441965745056127476244076083596484088555308806332686489836462000375753037371982707698360538820570660446929062591857267194770565812175321049251081296541439284989728953902901084462093815633022120693506945789042882181297951799278539988378233063865608347915437791067557651600218162387831910670490562357381897491274691143985786533594045903978252768037453250625934989936841468163709544334580376149172198168178823643595710045035921519305473089920572256474779535492349422324376697402882911522747906899910857673838511640064732198469052492795247475803593527381709600827928518114239411351241714908856275679390191229589746349950570930753843891326523574953845754332746773060366689237204660617852695990501462198556823992332659184556651378347390361250335711632320269386437018443386641414315554902725119751819492329519923680901018633087125089938620166112236515369859861382919562832131053109935270954931609592402658534576817634627167370760647753431821304474507413843028723325240354302018650287225620272368548238400034072080161403272419102304085260862826397603833041801152936805964227830715606523408420312928994628601511417844501241012093629613545863688486470894338090816037587648844627087540616824995803891758847407210248384857228037398199348919601904637709511386632044709036010837363385890696348315808943133465209581158609171086520714519840794470223284971872586537326872790055864532189745999197279028258015881856406113460828999843640468779246391992910829390338581390265495974471359304065999991942958591326124738602044828589342576322710510269194760553306976104102623472440490823146637636156080863758461645010126934052232551950785202608100307032639866161700055819466531714124467623423525535502672205800414902030187056020641273734722877342384907962771344887304855913655920498214981085689185951188845612500949543019619558818780607518035821503606159905767437882709776000230800667355809870874842536347037634110563497236350811576493789255472095832964011795961366804938494440654599918328018341232272778278555908877772452124966580427985100906492552199774489328034546382016093095984144937870252252995241441445377926970005009306604226097630198602140543002827203464410205692987981133286849830796319705458223924440150420721264832935606438548802062280307920349986777889904645959768465859718499535650530041056648048650507125807936054951165973910038767092367727947610114223769689701967412436887864302624734349904342175368013397013259427750603001454272170082363074460050409069833881333058798657277170434979575235254356737615790252235927696765460112274243468990979030610532076354410215619070599410701141242743800947072010302101886038219171779725958310504172610002869875580596811200867598393976329385741515849926581355977968821446561254342333186113074400709191564301209770054013618468392857315966704035419283685658612505116759641293740459018619236487964942119710887423354715882887568226067191838218703794721681018292629579711590963064227054992214566285663217582302745770510713877494707878814126086156153944281502815421335724237369296189604963836164228656087924948795152498407601082819937608546362151957439380873826515536347885244835888285331032298788872620550993515048340771101075309866867836596358512289729262212470787255953044690626844347971846452862429659599538612323803542889635491017937541348760557568490079405753299827583509386336848281411359423005010178243780540670209896976030917731935439347664281922410216894697941648616420567293178266689128610288795743504436451369292208137193342533141516210454489262307984712649476098512273332958709062063324320916592810662323805095957878803076452503877464428578846619140942891463783185022620005127030923033653798819707932303671705452465795304095990467964649143712966389845355641268968083721230716102679683580005596799830179042885425330117403076866762773642061525462188595325603926077053002579679605065285037964391853810382917137635210520504626581054700355084234307128125504304408054210195565868983290149905698108740532171730306774716233949326097599466793096364107850635232724457151174689944708423235692563575514054948510179602614334206117083558684217024602839144070351803974545629005438331737398962111826846253055065977558178945737262598348607030587925252740254237159760905970533498548807737412831405163066779987334786716654360156031565995427358537406396403250406932559876228531307980492956638291701664921521456882681289387026169540404471653764452392239361762042038062190902729729294510179865522375752689441304191117875515616497124477422153733143564284576730607987297968950681844846013171961573720697833049933282178896139077393233175818174070561930070344377038693155352740192810729219600585087342722669720682414967702440724321322828825285496442432904059845153141751189869868413624446567335568798722565493479210965881017627215555300613160713599076940092844583812041920602543304525441089905446368224216882969204223833480104304238909375694010683816428552253859645441942876703243653488024280843071242371090445081119212537787907134039701582975608414283618882912814556521983657786403097893744618745913804072754799901001144350016851080234010210060735025926362559682974950454668180641542152878692058530996181190478215562625166719363796976857945116901166251836361302518541412852060144537614442659495574589015867161882619051434714562248444637254753609111354451410181155615103812929040726451730026835833076309974428853565150848640408579721112119862274862810336179225940958186959739067486555663238246437623099483292050783935154285670181806773772976075779268834986149147801520644522969851867289354854690181502669158213693586624712959489179306456485522221366273212617244815714099627198162210642179456393666124834397460260851873945623968466306395668235043837487079294190965930944495710496062110192721032886085030333052726058345158296662434863041676162211842048021187475494061645068140479436305536399784592166182408982252715699312399516287834125873093935456576543102292534356970748852949731832406391120023682181942661068497868511985784378410987460004291380928681941328657965545086896458742550696219650174346710523169245162322418606884670502940269318362232556638696109479519373323451587694986443276529940237690882885257401848437062546102897741151756798874934850641755714470252583865432935881909951991329625719821538540563474958958028374953107743641263114409635964444406633302889362438649692248429800931287955950043736106582175675910327606839291244466106542679772624421629143794457901212910509034197767190052251103510013539089384683932367479960395247235911484282906862265281328441695196136689479902605102750097101458069062073830944957463105925992843118623437457559678017074939361998752921346987821994919263717421106501372859664144600434354411789092654388505328277619799032416911605771516311849940451319801004445936455173460136283499035166649042693479439717936789285112077745213313041080267119318989162783211484009030519285342734252013866011462475513289905600928941962272738475970150379739857231130351828681623573192909332300258464145721407761661868887529414527609105191799104516469434747983618152240924668957797698008300076141406279109190965219929917388434533652185213268815049686989997956465741554423581011839924281142197314333430876413092816562479356621482536439392408030323130278017152179576186931381580117300545087953213027298563963332727803802296800494210188423317657592630834370504128919617782759363976034433179155890074017033209599339239263034214465065628849389421361609427443841512167917492798637764506792621891819769795444942369798664450174855599201969412447007870020024609999497463895606615534915247115132485633581299572216881572744991281733289254193549469743152055919196019456254330508931105809808726041319790795909320877982459050308928930638141110546654726581774545902152794768671559093551705687466479988625554198359103081476933624169347129780028511827184887307984302981888146530594761291004782001170793329709708522275677980761031647534718415849971095152754426844947350757896885150984171082005502544896697540993818735775552108212269354660438077354293467408759191966804030464416756991091708882381512132342285780945984618104541156193274984684896932130430885253380452399221730731384007847234537101728007904842352182636908886996218841945820124067173217680125205820461658621302305021717734737682298693092062362576157321118194528030085130515627577832070897785706621857051405473239781325553784956771496927446373488549732147517211062585888280988029349826404884030140713234634149659712917816839880720751669991309303791820187695865306708771363447791379394301860375503382462462859016089446217993876738106619121145140634849383480528021232924228768830619650070541234047246724174618987058938606269702633304225542013551058243406362659700900019646366782331405157034137043050405474451412859810709987920594762795392458077424095717895787435860666521408047298824841741510103828978619258797488671503237563056016894428867408956367140600402666593046944833370225858873117575280048945012376139495410853368295443443138935031097314595762353691022712882463728717735377423784004061942895407486865323538167525573244868992725350956664810999538673699429324546946781986217372469525244423450836501352691410054720539200801753204578584322675119706830080753562643723033155353894193080223697915141017261062602058137904897160141208079039382281360994422597334092387819495556438517678916149077762820420888393740727144527003535776991473839664663224625492520058065759052498830988977431637465000661339739852327132280476699857343609951097186270274164984907031940646434125089377865242357912340851447112300324212564753788437890823654323411488280365817824412014725144778780241569187307018823140688506457376370027300574785795594760982518447942568988899212980023720231972952573766104224548714198309077809867791959085902679953293008706776237145963098233146779106791458535982790995861547387599854065841654141396085103127641525165703535398005829846770559950795073525873811408769902418727154182610397471166459125306590703244283882403156983032330559752369353701443984388918935997367698481511271399944470827379980966771532163145589201585588997611639932747935248638141143415143151180961855516040436934888389369411352605392013977042527666069857250777592447591387427673926209414445228261516325763998085104644313567227588261923825600943496783812860163519884595392210460617796732056341995576352294786408660438389378892512096407891246464394469211787169880029911186867590927580164322859534511685128897599924111536185366154393440452300629032294532883873951888888848089726223882394860376216720106683479472257799653222692600658900131398320297421878491415384788789283946502679857217126727253023678178674534861879476784474932283674267944393578548474289732562269786112377142470576180766195629403309294637302966602850827411924686874657715171506086007563009938365785279906267604955833962676896465307475683914378235582147192073054335870669829819208307412787321630845586133258423822147863061930078416909839187151688187181927155574285692978393275308383128771036876009561758571081637017597275153328820213986467299054841330766743369716526201298008087915174145439649855679861740075035740540338119998914683653304349389126875685953298856753006067042175115117662604173486107391995830992250621285599166716016416484535000712011440920716058581508825443603617889763989024071620449943421487219618273283612810787364877226233738051507890278685335372925825266438691093708313579593321594830868949883725026278825650899504082560215687536710498733340571763257885339008839175944321199109070254116309849627478775237650667971906735316798885174872739018145602624938031622905889010454552587554739112200830911375070301087576971551565443511582720017991198253771278218921354545027668990859963719889575507012889805264276626921371032639420918854752108804599865230368606250092837677147604000863277989075122376243650708778431230053127918607100233478404901871806849661739124067506905072864827002320303620033788512819328429844227699352873656602966979930716139085675911118133030159661875253103042752188666916818443703204710122356919286846881537596047769482952053346473574920176655517167980279584694078130430192676653707511945078510638214958157676684015510434800057948675189286865794163869345369658601659031287129714238678041867453209901922121158395719932406898860604485740248979806513857730959718366089143006890393684855425723041896403994087875637982931584731605745494488307781114422129552546160886214568829648145328269208596185884207432372221056476752276960442930061967235225714837398580167402484936188240321685446336010381116610998336432554934407682774875580631781406148199035204946068173231227880864209049317360607921593777086567392941622302759022373525199811587229459418646940349967327399007692361281365057259647824738824892283027048223089499060658178604623986377963789314260227723490434571684405138623958835179402889173538159143949783522251216937862347129794266397040965516909696472563599390267254953670073006284229507048450394121423639308463000488565857193598698858950266133832402905615637657800822062476440744556583309832544583579542840336598412669068755679074857468206963555639706198206254995257198645816183639916009956807365593387123121693520044509795307500102839719731348328909806130417773361089240074703544224881019341141915095460272253434240892500675262324728141154241645774184259870115222846440354234030803739148104526280243399687510977970392826681395467567901567315423421024374678559808376589779196575270212874940356939065226449314754580803624015511367176362881913663038623132957654029512664754523943939389995686380613488939574280482657138727470583258005409141169202067725768979693478586349555349999402492541820461730052894395763426843071922241730478638897657338564597953080860013297878880428343973283125422854109067881732095388281196097818860097427429120682186505562683885205891868856222187778506668242590475121137524186659626011070153474567409966762505988698207020956919505543743531648164011575431621019499577025609170431231663220341476297498430104240693328849749390523666320282191307072197441612344545571430221219762215468124165990464793074844070472428376829396259424613254420794880647750745247857945453231145859832601526056474850855728794197475454646058855253477386661362064546110045041335357332158803493636881518489223412251448231347458113294709436577430830466815909378177866673652583681305927040549396530729374224121519346713336575155755664420968685835739177820972437517167832158089807619718215862842946103927750709712998133933736142141203834613877175458229561710619278064469524350901856129881001388024508761799965071571349394400837391523261887597727624777294777317698248099791170286131793345959048516632424181216440659790043012267013743096262618513542618513265955743758571590779673704941295338091386245419721594155675753376642871839040594388002904593415868526799868525801212073304469534476208673496945190418358752177647872572668180050543698845405129323874398118262089155657970358131581088151883623490990347393532528520545388101029332425307290333335994450132716490722009840380974959953335287029080188429636479220456074182624977792658399226079226233729439194096405652764378280424583107054977145465530968470130932127233652694722767204600950823177513982827343570093833240602000946328676546920484257181048567625925071336471637617696920007848396398983756307587553766610095737755532057953858090094493414795713186327200726985422802520635599522607718971427435120757022541549427164936911966600215812852402601230670307182417121035900843429088091140202222994183591607066609997812005411574552975066479140011035197254868108285791630660236866030960472459589844802592725917005582591918812625851520459763008910359221996218246006487422434104574439296480294338803558494333023731913395316257963301079016187809202682981672073062120044436531719004048772906214934602074227886282100556706931196362952164305138380461454778804325227427543120621767934003955462440927298103314380679584144012182843022729659791858845219726911751097798975395415894883231875828254012519780457621192753292465812635425489453906804688700364555185128729005078479250315822369032209273394023117763102848635825324173601943750191779338911426489320145928358518412496713099007108616563031353130665422736880248485026688697988702154727008813078805160445403496821622648742660960765880099840611597514827706986115510440637029570978981432941074619625878743225338814454878903562878417763007103809715221125937317293933894264387840535857771712362454455384438311544481589490271319962847214956550350753358118184788175081189250403212291645870829684337749480408260673441485973658951228855915633439789552933939301692715667939488980023564565311728371729929572769857351541480638949212680323972324327781714842476631038691249916227718484618173450601231672231792997893221309893778207347182158314331777290749519888376824807986298877270980029351112135803142518428268289482725207646768424060027005353138266173417072367236570684292014215247088175092755175282783013218225234488472236683602842851956051553489003958706886725169891880330671029512009584136129409061786222636425183536517084207790786770549318877111437892635556508314200791030187609669949839001880457518893060788041703158573792787976208401489791886245151449289059370200844850014136766765594188466087238517301236800509902448454306116485078296202383199968181058732382683233669408637643236713228428661365694980186961440735241505367894409055428566808854301732962773954529958161761069264665408451339641911773663230349187460762953200909968900292112812576211093386374204033507970803736302239614898244463623079420097732047328356765125534237276395433608784553798398823052216846824755532043691418134986038664880481217423803925862892012058760295215882546752963449395592124536467536125125219570297866614083457363318903590524447350142623457090832285302478795368044670837916460010585325081088713697925164296369832578622517741926157023769470231541424886567854078091596901644160232144324179564610314089779874207305886023403651688579755210723741645186496816196855041687512315355214494776575050264503129671326880188046762241652787996638303264992960121506899843264077834320544788728734858565431210826584400910900326698516686618353522146131958165580675784593818222582436565150403997527132247871306716453198914137624828399568454616975173755026621871722369868299580676920676829614100739440991925854256909086359552396151093843409273323568963610937582484905609735484776047644121321776323120136110577840851215744033155771551255796352170740460558758478564420064308463038335157958580791123621387396681782930693955348585062869003895802665949717240879943157577732447078994104502831130888103913843365428455413887681093268144981100938588238596815135554875091963253961398034894586609262990030454853171858486793729951238480354382790664463440608563187956397063222922789084372783763191790051205347258263731529191380866258995333132722497477317426931627173619148632257425954139437278098796596874241651261953667566039502844894588107071800033843284189665370232529225041670103100988598648240295687571723670377152108889742864819730325566318503651693921811777577064819582962444609286502465070457384516104463593362279618241474961110196294782808021943512739010228975676749105060192914612620460811596793215438137414292427561050442736223401580392660327366638844901847087062787654492412122074654991195680029678774094006345644026240803573517657044618619322239417927938759426373390483655367759377068243137154948605704442506762262712146509709010087767203150574054972838766763779126317562529947937127685256013268413849699958843319212221841398178609469954736146280166674695809948801725317412718906575472249511998456423287184266661267573346991449462195369243128129982001239145808536303535557005543929436382553019541486266522610297721729166514564772698673919319544769448441137011003177603534323439537241570443445736831873896595700111129036801995169485969496313891083338129255764913955196588954851813243829014510663748524343429531992270983646071702704987631936091686139040926985746168289883495046405102609965938744663636016065892814318991276129891432260852468795335366115703715620189310681332344703091132977051945626020871149757540197047888393843830090775610252954785116908335881630934934387232721061729558324405604970895633836428082766066721908920482000851879733097955512447662588940011207131067607463277526040283314695806394715779448043009258080915161519647476002173561122433870597833521810084116831253328530361327896964390078219438621279625094552157306700846307141207137680143933993740725134972102025425111080774634051985638858443027113482418507587426374316481729076872163333403760325283830939861865705381811340089405806342028023011997351307243996497652795943122143314107307995313940064968532594674160076590222843058579835358580367141767930106747034874310636400062071763930585445803787320194344135578746871516961021641092356229442126929593913559914334513818712019832086577023150845783985723620723140770916548207396490784850698938009537723912205732562298748462171482367380340091815600702748252558480883530879623808526131315093613184263289685055275630855117952958528211163685239639279218567522431095950599040382071234628872821934372497160158899613101747380688393280430782403940169350949200254722010304379231100544626921145337388523817698625128267686112449705127827781626462682237267818461355251297574719767209230147073350967547005806582293966524416086500234262948727219377669901672131627610662697576883234573443641651222563511375189248312539647055861036148637804819248671196362068812732586128198325645398247228247996000643497537834044993234648176752721250383801062115255845007349902719928664206276957747921279744605331673960966067625855168630381026848537245571644955845716155433315903496083123057547739631654192109118537283862234979035952829763280018311388536807962090890896392478247223867771088791018432559288561464363480145021566272180124357146899276870692160955262192241761166101150399929850231370801698129940323132024399684451425152268422248789538135115988751489560964403652460557539461827332617175429275031965767718636975986827130033803485061583233702805882007072496121283542378631062339833119693418103963527542529688925086862315211195028577803170406839931208811140955704938768431095602214088502331456620790322219127485935135063272599272677189604422590609017739242190403376780643802914259259989754432270762884910698609276244829286908244597601871569273618547247941440155375842010900203284989088324812162225021661997674314436904988116732162726583967305228515399120354589056523979222898606042737456255519017603764786545384014334115785356798332714936247533496976358722251846014229709017140030944816993741231674988170227588128679634741782123933806278304372856583312692565440900870746055406977724572122401700955339448380413472592837109593351514775265226076611090201589122061057016288991990038983705850176991390322615377299433891334785592163075478637987447444864186425650202041527343194586988264454433558870490304433944935084087744788906236705601840087343207147960253890578878834350591089416305863000259744303732816805350793041737736223618767783953166938342726861374496455077513348367374178239737037647369852034073283958282191063974037361699214888722694498982395840795787430427527208232809983191253928247030055324719635417859174814423975985602883917622940494111461716218881548290938044234572851355986675597605940901908514322490372388129220564642158550755806962427572376260402987251041361427604730819846751330865354909682270286824136648557729657683442545187542974920753904053042299712215029197014431181177291292132842728544872314184923279893364802923894071558047089559748913313189920866385118676306978551187140118436429343179120868541294507001989432366930697447570822337653750031694536315073902736834019478159595751266026280941220205936024830181301309952246224018676932953841525704385277672552057475925524642725682214493012793156578131354137908070228267556434295863302870186170144194591535448331126653484786846694353806349223655428686063749345808435486028692594599599358203327481228276461987136050485437688111134210064854417826438131025278236199375535197425344622359576376765978357013078151873600347497018759715345714554014488346369091613079811303488451832199299173113665568843832033382005780848612374713326156722613127838296816476648511876109232290187523135107834290584110198858728775038714355419362758345108198742604752697446195883804134099246223576995878061518789516514419812200459548524337021939143726900794653110695603336448288339939026880634460620470105492648320545507293985442389644858021045342049553667987882740356846445631495272742624148907105839381237159102399443553482178176741184124986973814566946233494327613976457449173724115711556367459871683254256991669713414219653186279611010944325587157704543858926578629199825278292359172073016534173930684134806538961109697366578067803180472135304395027135784509468796089406900262937678085725511725577127673813267593545328490747369482090618983172397176435965582083842134628065305223043883062880355711422327582053323296785701109244514997022992402999895483882619787243725852796436496066933780177929619879196022031918176363704514409720417743245281316904209796994930612651418438162019714935492816425233345139494101627380631182677669172852542708921578071934664553232265634558736923420007264982332272769127283485438863870019899280655691396562760253212696701923301531366040311467529537372061745958447526117796469033950380003083326076988200303520982260896949687962900503351399723255938495445393350420952661050825803498436439551335650150902483014956673534136672920831305935639033143106363290701452118289395759810223574327508076732745202806432804699205015967624364750120684256268877902696199298455619851194121849437935849186196818971750705202934139891992594628873041249111573285826762224752023509633799888371214508879599090787787258938964910837625306161011194789323077850970234113860575714928773037246683232622725563406180288793165938353934985939093497406309805491277321481812843819944629206373190694614424311784817583245889017229742217923149124853464815123682298860408441378540003998055025523585710615553351504755020761134661380801246672090755947410049867125588097984990910049095781126001214930788836678937042950285710900764014184402872678333515210956359797940506583831163528738407972999553849767099497132229239573819983665817771552325867874678354005346144706572925726958027253725265401664732909292737207503718959294641323938341863237664858034005686728938555180756550060391826961131057020367759990367753146689963778122646386561076278625821453796941244109251466524018222238477143688129844820464233051454593140685849186691569993900168177381751158523182299390819558819702101081429121355231476597740053713462942836873780428545012524896544764597822147329147740353305541268325809041007533806063330453325186811348809554343553187571904276988886296223541209904550624783787060752492642686746718166325787210996565666990927012322295502516899263221734834187358450948996657153697319056279383133536425549883294567288530866426090901775341750611345534800761115107273626832129931696828033127227509610637289239071399498690330239092973934264210864472849523722520645852885000812972203791370513707863053343142785379780586738890344037943834980479889980426870262421667964851790628818476680207632913454286519315962229747238851216137207202453873871485224242542132425246054728456676193129403941417924397764268184546702120589335679209511680159592092516812623565780282660086479184603250141490300064711389784662686899335096239054028897145688425711933290904538537676447841648716671850920977286260322625704900327567139976315713701222193740241433563678895874316137796172865802203755777193442828550648419296277938687751310047071784755788123124597193503956791877375239784521569000227765852544060412848559492899296100267462051299004781205502657899280126831831808603582295783373152803703886944759658568154293604661291609674156822224385735668967482204874001487793944813139610612339248290979985904554238160718722650035252114126019680996291456826960842223448835487354999735768254116156748041599784221664950331390888087978659837844481436139142017475717159486341622606942394895122837333211661875390261127779489688542581607727162826373708680745868088635756047176684051934493553665475470616494595773822685565739586451310243670481576855130198402231788137680121806928260876832674658616172708092767996320053978926207640986953620032824496957524833650151898883218041941208779375973333084763812689285341606697139407445271579853187895103001887329059210719319029554726986903225313833604582670922687030717300653554937768403278115655333183691152064959153140023629026284737795272869813073612359501869763978360122631200111785925446745287925401548668779228433601131907395046914748671054298889943489190337607353136772291086902599535921106424906728555905626782368482658001655596664762571012388903126236579010714325572662519635129279715602053804670920814187773739617598124131752802076264363981596204886489147254043049952533097952446544966263008596036878094613715958865422750640104716970671205748135226297432122610078211667807043393793887109869064347724259015295920826136398941884608851315286402726770325938251613878580921873272741753659797684570057324744634148151324133394586914140681133350238599075601545219795971005053832934939542897624355172232139296639722137207088281885777096337798616118059597632024169445834250241238224776595243480581642203953905922212021274398664024011041279498119396995036256185789495650512414099085422884866847377405564089556581995684385621566581729025573462342020674283618104301424045756544746067469744957710684736190840827245831632093410944306042488019342653061936445941718452975145557233004056244557595362582508977646135193886901506933663971584018346271905740874345536307964070364774737107790918857243918444123422807469090678321445842098506008318900020955955867238360476431039026987583027033537938451244648061741259751288921197466658056058090345979145463764427472624503742568780583507807334517551903103093094426927110611536753981119874713891588747121501169832068028265269561928334435770811918720541837288081882016297004183889502692676510129077808545275612497547542724675171282372896820516699784092687072727380825734135459395686934684225945440973997105131123609868781892156572554954770092157433172394039376793048843763845653963210719047781413629118782482262459997725956235996532900441148114309074675276257671220676077884986088028064066565605026482127282409898512262315319749493596585871913414643530587680314255544226886712658492181967790296895957802315512359624131288881033482009919194754886085112645770295429732490687911138687861924500936510515882003289320787995997023835817388126200411207146148543776688757567131503704834557542029811788712810404694689971193991685620845400046234016848390878498648122484543851255590320415748851770788844541802575613625602739742476851554909673995122963822629336302372026871656810105250378294090603963232057218782302060375180981981096994262699572290137048880129939198606115187283536259409852385388253731653051763144029031225177723532042638720291341514657544016420348850010489793517615776579977617666272237411906871275401019971179257669912603106301515054896990215610967112595327846026224501697747969627226261735584708450739153943930428374610698155896532082092845189863046138047427434824820508779155784323814058619460185427518618256214915927841088721595836343977748839990906421265382871587414531080792445090091258428724679112399532437805670140057661329891504824953323653284035915881607076382710255852348251850301026259071623138494858456392174938621223854083058970879841386611020147119230623898462576831767813308526867974726771511319324426472370491514086949986781393886673745144532574552818804828859315224746162832433258373984580180985498834821832837917279145087351086621262887981757470363262570806969582764282063874938316371949773984916999438837586780265380783707509747728110314175357983118065930612723922436111601147518386799338057798173850273353842981281710477718926240712601989137117780555112418004750081095524521106918409177155475740344434251864932166067980697392254727588623916749708954859403555917487490646636244928854896788186534055401016313327936316314694857424808987097752057026327805598026189796980902154763251453077176780883749416025570546080877719211309108872929746838151390477854283772341255964198180619895547291264392303782547176413687718543241891022894306147039175997150885493941967592045402178575587682275329635024174650199703388170723952712518722238466796656398122702574995876554205394015979899664970933862675818273837818245552513736833236112051498838359905521917098604979733247332188552010739377682728012341733810371793490210014954944918734993003987149218638958173624305861597401777406177729694642172158041393682817379699849128041593366824621948576700367724254021443099837846314662973957322729410203571299737614357001808442926243341978516306016279913846457526328367666844224537678386033489175641641794967722512532700958082239532381230783808616418179491452740258969410470849912181548643158319618379273550601830911058704631232426161920866636989019034578763572049068863910031894062710236137287766125660401625191218982825146973154958650617633293987593793734721357716401901957489479711539540524258167014155862221760502218910382823360267270759975467093275701957186084883334216778013515275472975149015356008325387334916539589660795339580604199690188709030598993049729144179373626023081582697094577882509904189179463757675952509370775264231677776370582961088903457574543448629294204730421889649921894463163413619432359537544635546690927540956693142989044081490347281995228802372858733122640678809194418375255940171082077124389766222748193891795257732958311445718328734373777519802709451728246148887500861467636010781388912783098931125894665491982002205691959738425898912187645177397145848336858479614009195348690771715062769951070840926224196366977498302444012937780125526284853471757532252198975740163276424354796355525162566581444317832411654082187903612327672541033236899359457470946746700541065924578246147633916642313083906216489651483487320098845023656713314514129640641483416769478368811925506544393717226458556655903952778326388985864881425010763332585259587139194242283220259567213513858843965605121972099815869855967624171842768576146282794657607908874627366871001596930558270793709017760118552096896806071711107501606147173574347521978517799104419879869911504070407472629864409009047947430042247042078338237434840934453248699440181986424731605262376025673889881821410631770019975657061075477373374083639369290846675118538146209842618557319694920744161291970983110323760228480784582261986983918528144769704280949779433147914933930552540005992160566140198459885281520146692586204937470405784562472956848347769168723280628112413702612462454432456285136567976435917759923829188816922092985470229469381447854735591439485510998877123806258008320246045776953299534513916744470741428744220782282181961525251359536051649593964211232780754320890963348921476950678203212691175343928326899496030542435228397557141191991116825190300366545246013832747646803078525143764113273607299706442542577321358438143370164591182591623754063192020260352770337669078606104229138799175954591378988281492956700217864290224433476832232007831301086260543514632231729217106067968440825744685986833301201012667862946471787004987763043719612389585373128087248814574739125017510931475189278117982799268464860304023106758163927383466755450017065289059950064920303907452893982213344468167849812343637768240654609097493257764954313588173442516137626642204918561528525278816917803408260741967083106831110282027612610156779456016860598026111737995078147132633143699137159210503222196467986801448173813525467973050862520584949110006001006258145199996206733576554867782307494825300858129901714926933017936273552987171300762153173765304697821096338309536875486540121493843945656724228372961316517073713164642769048088797598591040218051644950224322813961649128969682898074173257960039917891148898926843421949578958971334063043303845048933505153562487791424698786066275173149646373657636539424440667343550253357574518285182957425074364212892862027573573135764668046687696990341416474308395132445573389201175134670797201438147351528528920257562668593556550903257878910313103816188135920646749536103521947467358151673000859657052328223306844172009377475826684213501478985101422207017814531303488193495692438697576699723416749468849336156138386640751739786658948964562661654359840562654126968872590682519084717998639676013651619730841820320659036035884065896318705296980648262267543808794823372997850329172228746922528925887123228374922811750539337660856631809762682528925654728098379530776362981458778138799483687369803774155780648982112792413600414390460964368572646665913663285839043933710548011043856297012390393137868291379123748794318016163044049318339959868626979057818826143350058915700413654086553559996861276380375437541216575610707341822309508598671037536488926473920007958270130836323656943265345356381089818973749927169294614310860397810467070151997375606841699878693141771968193069383240840308682978806108485252744334876290228856989476984279706453330890265120802131697186623317083917434144150707247993137593724266843070784957557912903491671480198468242777309506970989417756554458434634700646554965704739112941547502247522366093797401085628977429636149881010044304635518749303910455783583701282573107721791412540412285581566077979673747947472955551014183643069349922021991858565206953459441529963578548766255318776726827326304137448584257902493679861164068984781596422726248933025099082736822057602440315760500516880072709307137937047040390116682471346354018574173822489608759657417116755207594129671079570594559396488321202954942979301332323917268989692699627274603119644312465300621156198792262802592301482439697163008427947444704059174002803721625551108981536786167899627291581526144246024455501152188960795935709123327912295146650460061942341018309533318673692699129084496094574615955773482804064662785851111195597680311951535114352509021675089244850410289825770536190372756300362479410358625810277187594900444658209903721868946015316168304325754127945403739571543145698043937176640438924550825082793741139298176911102511124320647119075010054602473236303220020995437474258961151917451652348934043899895243220166152539791675486262473914816600622329188067175626771203701216932649575535502035821951315171782645262529061854817466809642763043484733754967873748897226582389066921108082234888331074873787252961751753951468438486838338311244144831557219921825602509321529624891408337082797218107379564293968087900364849561270153999335598561972826644758506847970275779722455000468359171864251176901603216764542364905471352575901837304655403041529389237379646143003724807372728146250376505360677786273407093100211122305125027297176478688018094191709388884150482206237691130680490923943013616590172745947197225154751406778768676329656724050154998541910392051937239717540500272796874984522882652583630219583187378913295162614178436426098800337510460711441041516143143178473618503166697928702929418354254678474608166971160141908153564659750796302780261108558329530766610873181634570242092636903590554192920265564948795460827726086476481088668936863730414930583906663622181431824846559589104912299486492825121258672001285388838945307742941243743202381945858246207792051252811595574278266068728909160714296400628165288738527148622685798824214414407173576766416812542872880984619722200049786272499929350044597238342209229519012154422430072727356499499312407030227174682568697190355260970281176924200222672158914162716218108252379284060875726541046136265338021820531407235266975161023792985828538383001001012542635288858339720916307751162300376278365930553916799577598837624873632238014582856722946909692626047716553803765949045191648161703096417093532481906632219252598362837640224500441607094580283434970656095879691547924010248219852417038905474810450379162170581754332817307827127557388101012349172627451153215817893103874875385734285288339963229293484023252182849876711583798640745949956874293347603290253037802380202551589702207972796810593785245014774708086874437410211667101364297155654825466930815121897286561624548358474464413260637963768313583052955860489750566473807955097375585394328505901650609323507271144345849532410074692205718948317547974417416916101858284970586304424190745261047607424412316219123928963093847159019030431688070763938482264991914293867169951021684956664931019074426531868762263594185653857699781308381952701561201530754479806862909260996209534289107529873469531529852181566930635887090298354461063243798318968024378445684292466983160434253877624456419750716896270856305857319314348668053478203903325803464863672774980107328418204498379831903658392567931651292833756925168628922285632342429185220242589459560005292093960773348086689910375434475598468185193093913421592338032755448462130584077189446695068609554803256270323190099566300102883659049882631094295689279834459412701217084683339731264094347606372633678656773284949974677059995892395808092097903297363573804634977730528772724098793177794719723491393546646873863129993832366215806760521752149628130865870014458509189345332297088777428330629214740434318126779316930529274213383214634409826759742782890213124735312995775789079160869485797478191046540686899809097198558177222891146551012793301104228115786305646777041178456413069559632347140186327305363736720871190605168003110175300254747199437274910786188821277070356092777571936142658346046635384251401136863004933792049058708071488796630599485433472534344741980212512534965490259068039216236626577587070582394602893408664598821539051405291339721991384924056774666712959560374137129033219149508541457006015509473143366110908360301841692767455117500927712953682771442366553057571203217464891671810833257140233342131111918283217580702837713307391791427997614222018112095402154808863521099386602610018387094250772675496531837937443663593569623646759435866056652573122537883004242583967107942932215141165636171771175901413766552028111970097503445794197693503579061406220403886337134701413959545246611691379287027234998555254654685066525193843734572999124655919859500402573690390195738034417822778724801715462659073467337325441473594409929272487154337669083590811917697777380223370587300623087062428934727368315620777146703899692491707851352983440475668507965141368149533095998176418200941628804379857488744678164621050539071917633011178264775804018799389201316442936247279557477969821795559472938231325623139796376412993199555361402860430269640546667247764232000106405577452786267960196549246228875706376793056922038802278816140752959198590190024100187289122799071853557345687765356341644273509613870543545890668685618072487692394873174896676097098751366182709936765932784779538097718595202162841165162605983047704416273855081839991584827652536535468141722354624463988967511146698513020314649123662514927233456069976173690917990974271804808961817645034145626791780161898989990848620611552904812846632877549432378962315850090354700215733512764482363330497591078039193985870073779189983829331870459735516126024527278594747189382570921850526347989858994250406730167739107434284596075705178203835754304117384323161029605268287616471128101986655153766264487906881934294586209866037186338275512268341658366651146399680780103519747666644532581262028930927761939619724592408194920699332928105815639701277667409682691000085744084992937779109562254553238425818934406229652827671571976363857525750028866670667546977219747764171220489833028846185730972250191073282518466671482603882990277234274418420638479048219075207120601996931875069433304699126954614289288781836788959745257896942259862141439101721876968047277568338472397153804391028024197092960090961958335785078655260681099801325117055341275734001918232529439613417597660193139313630360646425019557327489145429941773076715869119285202672187157230776012131739574279565414272799420530024464033677562030587264402663624768988503897671365818341329981169728187742841313703060482371248763409418584971353591194753017644010179665133447900066793314373008003532141560066263161572589739574158677344528337664652421763371710572872696578005180925775502627281209613253517414138741918095117963846268379442842106942115812787022303661175086699511733702402753776987305013993002114468981525399237959046120656323106783177012227415632528092297528310382528108415897356411466026219866656559370817051666780765496007350517987413416777160172793906208990760866856609547524663075755409166911318775836452921920663420713108996397690009642662641141441428040664970452920774723377035836770522054069845315135573634983197446407468979921166091413099931863668777420174470434908566609615204820312604070108387241217218247951592197519695883358863556156602748479789940121884594739397299494364779820159497711477841181392010550049855261814802230298630461836933852207023939703665147265639767331330119138232726324740476951776490681822219794345359434634079714359128471931777750580434137996644336349388616480764186834353003982183693907263182424302649104356152934516875676645773318656793390560748595615480242180258390130062984321813691216723165152246882744046724163591763189007827497068236506140166197679599453545555230269917729520223150041808721439402741672224941612032460913149294709663877345074592844154840160272255842564244595726437999525014693114478040401966093363995349496842830107378790688984603710044934860361218419204915262579332002412565009913866936509068328472247611413832528567422707875734566889709542406763227011649610442192850034828794880364667593012622275218480820920788922626939271501820912210780243245060143963155007100031986428769375705238662568765215617125955412089030764861601334907811556751100364605385429687467052340658882692641444510259955303847857553225697645879159173905957035816552925428738417459903023983321631798353972867683609130405692284584664087744528961183037303398767739028688006414209737805332774203297690623374796558141680742829334638583870665472827174185908922367614961423130552621230746030969773325701444296759467283356274376647453424069865290845534873401814325482711998751540164403202158430761150203292923064333632446037400497584370873133128856401935826370712963809894881378748560447451430814675866045136240379805672903015058553050192184945557445627587839554735542169503613845911347634406374088674070954170316420627097067425461227325067269885262773241199955903383418872933282939769431659358182249945901805410215018626342563143751896430706375952191945570887880954909543258236617184753650113875985671738417073594505369304883020189059446667672846820573308564176928520488393512150320332282610402913619105367175224453834284905567441507591911146927788922244220149727947970274983735001866219433731323637030182402357373237099865983407073155058857926647918299619459626829130763129326652091485682716820699637836136097024778012633360732974266792536359447767433992588925694682697916366107391402805537598448469581620556658850250337898201026262143551955929181082562151912482138025936086489727541629906488089076420098081541118443605702208427932713626167906301533246931958271869564234631786745291196849665988324029295208746757237430455259415202443278889776859871721492276469558890410689863453474917624569739359139486332174248417287697777484657769836457420794994644403359658196874753888000792198558396679182938850235124292794170966948430502790566690309154660756678576350994606825852786288439515335655036696952303651344974901771604651858324295477990184733171420710720638740610598227831531715835050582817656159229067214585010710299245735320861199995835055223960098086514803403934347032279530827783938974647555719525534520725008204499650330037858160882743929178909285410033263131989981249435351347285538077815272154767529354482017866422713439510689483094376009872488628812857412923734570523432480841434043378294512824297131187953576855486420784772723873818104336544955830763279483802933884046353281849809707331635907339766844297595995724271655223659932526614338067753644856152682757909305057038388381870941033904545916641873095359334924202159010149486601352963413272770606358603283717399344588898270052526194397761185745636305850244354749017977587974156017408325772643888984273202139772701504359825939056752675005204071511434042532733612375859981002219561109170629224922048863160613189306317918471559447219333059611655870576100108735313332980893484461585857704214014037985124305241897894604276673032662340660854346402449450050446981004742644723694813625259578094840568664737736741439651283001337773032743719882827253155364866034389322126765622859991061030179237611425834082111466344612877589202860381921128576202201001991510892839002793522390413456766187019901626865568327911303861251021897509997107158885845723134378322194645555888621573413643282619515550281959304176883338979861078487307584778132510467903941539466144126410696543104481638622701402909165312292116504319311737444024115947275701813986125471736624212792618932474353614813745688431421264127571399280145793046097136683803286282141112638487640746054465206134015724011042737067135666081342153233646641499016109039043666506074352820217677730597399146784894694899628336778847939956524783293642319539041979347123974402575044296516442140885682672271350267352713193016463875790302240937528480974978607296923720921005811925194770511075233752520438178708244053647061578865460963063534931002185783168471838303957425893576604752115017327358800974360301295460926257632384900567232020198209131238740859250985928653126592319425759196052016814637176568890462834303332035204271544520543610376014704330326009049394825448959846439276750302899352416091500829026513501634451184693822879429921320349602119821501139939671487084217921389294087114422213140384799984286961915093105577313268378711789494460656940613473198280662598501540006029414232496287071244749402356465240744796120931105771577741706342246929302715040419699598564726532347532449243389412040678754393818460414147167427649017126032766077187324663341857118212357488869571726799316766160418229067488301380200485352919073343090641445541393865326026344514756710771692944332902304277754132197283800542188465121452046888791755770851087927851058068185209667999628748931565186437455378450365672977911390126957549050581235721019917889744255543616699678171100537120996567284315588320172319743419194921732399600984500409006412287679735726826858958332543124553339420562643105563845787659530577095519781044766783506161717994970438284585900776381524548345189697803019488036787757715137052228172743642411916938977905078666404521727539717502048609536086763814978707115357462957028455357833138328666750907138856205101886668591013958232125977058677656078098688968433916740517321845129679786852351338008336039023466233647152039274378772234629742115741199528326602860290839324290993398925358713924523362631737961859199656627762776049318857117042319304839547682700693028996540262367246910695491451663929859126469806151442477842866563707155609229005876689185289130359690413389148481246432426771174316523243219729195135923435433651089413607989568152805846779316638565253734863612196727238337943754068014012813035733295789223568190959820246565169521813405305727491350616000043756086815892552176603236973832025217044294737311602167237750843302975404700587800453234012146408159451600853583435893872870349706465710916553878475767414519813095069355265503276467114326634724100798004856532628305630044152565227378903213378152826245746008303255751856682101095436000735092347436800738002667462426748543133532894874123100059888581631467435670072010888375925977615003431104159658128744424930592410617597664212549011374719122183190941672932241743722609028444184453267822501888313409590065778298153049107982979046716732530831838279755073226754288085304639798165292541648236725199787716413112190372270749758065633839329820001962907222148637755579226607420546614334684298981454809730562346179112542427573358740171095763082393526560383475090478384798453701098367266296432411762252545648747959108115310378086354011459923617794330957477146955978633226426143982974306923980012706026938189186929290113259010818677712594187278539722356256383464162624473513220543835707132839415808034985766265685846192426840287850039519698724027105910987767601931280912505844394939664812949643473842879633275806611470138670387614541817499434501503882673206625276452120326555847179284817620145192901208791497580061085173012679663714570614024346536653150303606388093354553094081297422639582960522955587916708320007926689287779575143283944391931599737459628140379069639698524096829897635378370811096113273975084010140753345902151349986210945427660278771727401510709142619369709765855199544364405578399092683485953805776025152182023637021943895403632437348117625986662210542173058523413300564265183635607994080161611270175075473189608475189348463711441405739971648151867551024585624017952020751031651692595581305186821173117472611997239086589907995607857865707391313232100595264560054162000877040344670733156375251936032557416539891148079688895581542532174205490000993688864256474869681246408250881085823766814334523881851883247224135391521319364788289442974067362279786803319587063757552274049122423353735179093740846276299550900804022330983413030333748065232899846889137303397506941620684488249549950077234626617076529308716419046469021536461361447363606232442580828250889362018355767781348324618637864144337497288779833891544082126655149570204556433951157784991616220779082840806073927925221430454237560590377769158753967956657408752899155951016065108755938888058687166797219634500877830934921934029451544749106011576873873621524871556419877991833518953349375271821781245902216319549511998636037389302374901434791365421485713714805088645998755802066421753971536633533013137648233293282998280435935617678879851562564300623950253014878187700654551726213810066611931066721950879950408777519303908848087825783473365142321164333514685440423127923447191934018355164064538617940676459442205082271202851094699582402215297174372316635307928005273347324068735318272014844410864527640258889847003093414768641440550201328087162059828498313829354418578509990742271918716836500850880312658025307518313707759085549026456077993681601488522798878750869925363653050084290575823897682005567107421289506224699551276310283204246069040639278719671721734346165068306007306652108798240243681835618282861195385948596683923298868780569781872057628226791405039631075099845852475071223850552424403114554880130026163452771866317107684752326455312940035345831664718648182921496755724315282635059882110790804190210334142155477777441266240477464745887008369598855339718329212930146322125048197732788513568937545118452632797676977760620881216988432234851267923352283302463269661375158951568688267065024142675445899680904467513584462041285102534351844535105367118397618274915677831242779271962356125426515889454398642920000161379993815262386880282073212143048013498322590557789783693187237021070983537432288299205901120519892965136961595638829292533306997510506049690345250103769890226036645717028070684931301892087785676556796721298346967249546454489440369727054144635401500470059786387865444440898861610079486669271928648909933280455974323787660664581368675018889307458546549490197260190633785052010085739477891394780544336200926110949941996001192949956058442094963329642432798436636295212851114904680332032903647161555576574198141325982753392713136137321262779859649008954636147858494141235798491851826937659167043981430119033872461946893453984899327995642889275840079015389925025384767290509383824749934035179107778393644475119566098180869199690856731610088902921545449078325716882010580340923422920197514809171259854238533996988606925233955418009056714310206362722134537303724217029681545831078971621745812504124377278308864684630107132672332438304197564235303997242708145710628214283122786974383418302841413759173163351606775528148154178865156572544814584769498167865642416976267818351037790723455471424797453094338220295716225291973515133806456623108787667394205296923010159217707335527510559800762003895351887779077243247043040532008098460178565339197207853140797873655069932276252253390936939589814138506116059622287805748572875290295957248720939800461385161873024314370510661862304199832413466575582750508837890599052689673723798443759365083212294729201291858366932969430307362125264125445288958603124663355717212249278587620365620949385274600030163664412513010078314162499639921401733719434044794419994334034125767716600586759957938970659010540944235202397038303183490215681712905737743224763337026399975189320080159317349976984670595861517660849337727533318962573138898029490759812367970169792826213852474322840705301914759198228949019093153673654370059360608442221406178046920646362335781283685180799626718311640438681581373942944372773888717381482385827822589895194261256784653646718780485097408746641045652848306145909555673989131617769570129998849017782073720161819767103516196070581219506799867250400925913299919801653274492923346127843751029563627939693934639962874761671733707063731136515357826971100646285221062587314047345294829611526502506996050585065163290107361074158169073059400195992636774714031171902219937601644041776839905219783610497105192933302451646164234590151088684403656803960500196659174128474432611445069351986871636558759914492012228157709264280955703899425928833928789267580805394956115505243540870334718401709336603500433637742189101649501947171705132834217305295291231563638630071342773325499375361696770913591327571606134501510892852621710223089894308866517461252464724734684574737496644015251838530437981981322186533280174243699703070259211403248849964905770771292719674993623924150047173338801562367828076839480698408359817207317886038226023777981118606271712234694733839019822832997477235950652576750963579769492423386907704152938847494694791821708836524010248678709689159709441339516069578671152116982067788727779567427888832760458829524274396670971231946661061276668184464472532229145147402368990335922809709935223712680168400881128260051262660366860616393737929591679960245111701104923204616601323971477866127763748677737292914116467131696229775901358010229789313159810556466881408486640384593598855422205028994314787172879977246872271429603930874477394351212657454110759671075734030632113006413661313037651875395869356191132617135204491419974773583794716733131330998116296058650817414974696809403312024499958147574738189565065921814042229575323477250381086227956404422838163834246270008576255996229061276917442475875674193057324993673732350912744970091710651940022245358859262710698730041716492785494463700039172830950306425465733726877770794646287390845115278096617484900776035552625199044377868908494616629159722538519938624288792415148020513472056589178116854844505428658263190782481918383307416559684860946321373613158446667683996317534631404971155074136683484754656542973344856015041127089240189034029387364144607613793249689281896323911561416397979386790068545713875292901210602027935101841966283512792021744954497164250035024863886796890858008692063028173861543678555101981165794648634154487420289922270553191280450766105900446122643212878066644465387697531636285326165086793029224672767521285825606720736474633061472431034393552193717227700916918843978739470605095781274822609481644981885265325630360645356496689707021454972400522695706350602385550908999909403020909640666340927257579809554215210633714735436174938612787332598627269549494563198069149174720396337488670391696196071884895706307644633107439242796178209213289802946615252094122501970815893397713933141275614035249277895502028095691054079316095419672625468146758701886233092036160679986672913654974081479007266517988325935104587657326505351100844886753373244169993465759016014881508907120272844076981201820047359342497839143057037920169589720615860322155405684084779967264719077902586298884437544781551786775116243603061030916477617475838416213607254168206403996341359126812808443725500412530008924289238038291426843661090190384703366926496056906569990284592168311940107485651478461462643455239865458133992710474976375783680429137948243568156344953952090861060724440094013793106050406083864238000202173446749326428163573699272890878650228803888271165651642409601401786590214710230295866526633690310830205237461623205372766480494855845183683795419904420422920235125015001537287225991513757221714749522633347830912165111047452106175014887414266133179028416936881965432784537925909313665730556583936832707626449371378625761406580369281060089044007294611077848296870721788807749899788163770925834494715494924147782562007422393514997371325449018112975030128514524303432984652563583792837607167521473742699161744131556102914555242980987800212754032474163882194721514193221772366204193258239949413181155920845441516646350076720942749987438268824692152226995082685021611036648821149972096096988605804204848497883277902462278141608582019616875290720748209664777427227721828063972300725148180003030883573979957888951168638545701912121113528628265820729004032841747161324797794986966973100911538034402227575586664188891151304878378596185722163116342059869288283256113354714934271152966681311155700877374612051661370866319326739090502062118008543254933095206138130071597982586391604571369172839269810218879628915456154166678399488894740781045749575100982124829287627633900549736288049423536188254018760426212478803849695173298002872861195964023292154067345186208735218469073954078678083551263208319138142101813693452433142544489914346513229538784996350137897346237365142961850463312076764066605757885558318224544784187578209894357427016788670649233587206849078887499512464528490015969957861898939498559345061700488420388378852477134467812645081581179000640838930156055049991129127257484586677343770445981182529293247985089079215190484026574468954672852921144017961549916460454144145721938651824127610868527828128393104765658995189230461106341370716722932555613581803672269611336114455464529291155314288284132987973719141054639159509120321473331339768181149823375669857484860756140221203596672138895257404885176353274778095073300772573718616843113303633910638882964548405640267807482994420567895877662578035515288351965212262951689777874133716761381308121363085642008504227522100283380290624438815426515119940845308070721288708510190125205003826304180419452146699660639854436718512614160767551228295556907044975582264729754540747942288323412576083543591646326993061016362443037718718599742649415277617629078369395948376281754074600096320990330526911550835606589227445716684952112622683197289443398090688943973852998077006017652404972140779130971566567860533031728904220074419934084738277200379810379885365838268951618220635342236594478874063127810883021817518093923728074826933628645179227299796362177781414995274474630110532595575887495206200329450080218434130987391457880997185655655882183640177306653462127957665775344933388692081517534983795941508439561861508696008140824035874997087400035405016615676110817565452486948321933577251964449297666014659077103294766530568406264355917757938320605240353731832019629829804034481398536790138323293658670835999938938844358508064431729604969727034005359181561028249138841112648924215998950240161518657602889417048022645920736417554894458786529086638249898658265853623354235549357506787605050992458106890504940227039354048868278973958387102839331781155674527297543976265664909288352627449800927114273665313977143298430945743876102098339908910575090886460147495953859576746367509724265047733511431860665921134993725671438668661268323620289482262259454991322558191307149027501075675810938779527146855617588892667205643326902389225916942285984259649054063549714938933696211578984942592502258778754537424355113765218778106345388258408654502994636879671453695212306752288945234761687570359568905098915584691958411809746433415064574159552976106743699155532676019439258082095620533194484842619417072926159282449426867851030171039236174415834184133678714991662561042709841137041420652155473932701929765138236389268738576499705425039423271892042597814305724053650478851156298697574484485088466287614212084205835826453198962361539217252133642663583818223018825838683975157197319651740735767564980413911802016924664722017839843831609118890116123146303343646405026857176966676794319463411423029688877960850014493186409976886124049431800431776289787964181219408660627469907276142895732601202378928046642985304276225757500799342041970566709253376197126226483604334277129729482066857324387212853310150609595250894195085137597154523963444278827419780892982033573835350798145465493646875801013770743988158939475678268612843448306175220998724945440555707320541147797669232132823389482783883265694544159256986276104817177073426933330063441305422188706911726933240933616763383075895995965039741666523800122698837362837285818497674889084499648795089517006791772877343981514871432570099282436742835732905409155139099022430945701288815251573609969209351800999631802263140576461993662416115017079277810185086048235009722583253595043714303161366117245085387161034038941361699842389335978007903774351924073853607274894819988675408296982465162543662574845851362553368994760889522695089634209086531132431013137641153713452942267068914849975827239066520543816297957337631458969063207232263845530190327076676242720968016292935249640659168810480476114173509667845671996771731148678257283952030762524443196492210078368004544876481165723730019686228934317329345862449228634101451676366548475602035081368199811361353436205594812706984573108164585803836965580322976170091639613866810692716949480048124862496742926887153734735710474017421862303436726872205006735589229977126522803183031073980793094657829638486937832063179282393339789888000246321936205901833099000121850363024093424724807761711577140569787306005961408658369125456010527511743854108482412704612182059532014051289363902592029881673541017615338566033286290818099007660274408936969055416473160179320487272752294910999300972046371797306777372436104814887285585272385061773671315505749026002119843993265326212469781536745486787630734701551892470145430341327032741171189639527193082499703230826226242996887423414202224532148547866992024782569966827739273784675796623434242566495630264872258084591047673686941770910221036722445338958560657665347011190520726830341964429668569957581999022765241903869545510557214279217215510268625399413121697639332701484592825735095710692439434543964254707890652329849624903968121258791477640635993939839075100421066626045972010815856224041804527068022734969568171660472041778390819223727978630522177430234261720757867213720469535528666225840459147521878719145738679925362054654382357369734586794944031891954850638391951508183419061456490407761863982352382278179383304937561753908182656466985624216181761008211455752782938563018758081337424272912271909356333181586177603222128761798036171510398076613370654224275956184800551370080463734294784754898923073736330466567702541387969242851075151182725083909229917007345704975754352504600203439935473409394863520027657255462383467475177590746615834011809564212359791984572989370619869971365756391817975573046867106266598181014024541475269163279230266282844889871039801032186610600028093536397361330828621950901007464496959715659946409492469199590707507239882674165062986680381623236090492100410503850278079577168359632674360103254341826229428024941279596701229467425147746078337769096478200125468131584754249009719670835853365077449782764896164585402085156952326712660668628408859178231352255699103357094590236060537785362512042649953770169523696500840402453897791488126517577613912287808577949400840323347041101825153230331460385611365344444160135544796151888182911319212766575529033589876664593545838289561548146675979925984013200625076031107769270628113114476766760411253411898543105757346479383201464890908174951795362756797456386057203955266294509547049311663371964810332561549990605685887246087224317320633978546794567952252171218478225976457837097440904421185448675761410733441950804320562832259032961961628969621332414118137968868010186179916349826610242830731124482557552912146711691663312776818261278336093515821666196568959236036546383066358437342136043467268810254326612754192089325512453357853982940266334562520086418419498914943599845705622192710316946076091799337552254224202968189897449699640466376389286637700311920369213735241474278846045879361627770493665815628448235483229148362321183717712984675616918758621028430539333303807208217184718400725437168612747820772292696106306893572200557057550332658478659301468522695915751999976816607605720654492385841127524876023611684099391628823829952369735846966611019967775645050072458739583221088407602324839617076212680171798418123244458881253957331862620571884639250053480291066887827403644320566624704742099591353078414974699121875285623366155505024684849340843756101894542324327036374791064150776700397990270653569706906012399038630435084608930168431434883919769834373107737582982020404161395894377784457981452838824599112503022992970210308978845118809459027922196401099532075633809626038573019654046366992710737046869270923761586226273003875929869300461265626486200638475081790122553858473752135812869193881856390599303714286929113818180734496997859693258619182642215499357168551204671410162591463418270572373169692874827911011503315895511995887720776228035473643888837231227388876235702584029784250871234856952293714102364768800868630902100201537594567296944052019293774218971116492517065377586028177950078092500094279505156297115650971394155619856579745349409725100678167331422030204484545047911823450110930559880676232325560569626317742291362878116925275212861470975701274913323322711203948409307622223263469468078966028122003203407515019546761520055193308894785684197558040424753099704134441206515642793419361345077585370925604312418344170486403478839961851852502362017932452152683000355579129516873034066697299020111952136204920976551563539676955918757981446395432180727042983237087053166681209545664941186925391401839564895969806332690049720174382384326550258567939528337677544852651065075050551370542009437596472370673615775342899954954814888278731314647252454777482504123151904371380134485328876005893385922431622194963234079606049068709812513860904287850058265776701716943115141284683128288754078220459210540339033214240490878799894430809598250081895556655020723068736408701608556127393672283041414742184676318434813073086444047028021433168088104501816025912751392029556249457020054612285900447135617275907011937622629048003095387543668630555900983191529883350620496911618889866452210080679961910094141612115295622064937418372765357174098190796579393330525296283843951547934284305682106011710011058431925781833986020879641745761628773108001481801361768250401582019245527830358365206119048694931632203644569514953575999793415684892200037707687426766604354297460750230548111694701356076410778629200705759374368193138514464913638294683116866391031269944876177924857833772189598652602437198735827836609666567811364996569837387952583223122280349727989219784265463503531339165068932435468016029565812215370882459803401836102795590336645771093752261725263515222285803672876368571822269302288851911158752724427579925071474437624641853480812644980450423123154762933590058537760601936708993833332891852503917251698531042558734710238714427007849822225191011513451857279033597341404300666163834359504072584671431632728130650732414581158808738290790339226393006574287698455190534345057684687634944727813660908505538671723023578105949301116142757331216874662450194937103797795378146403246898663207449055506797674023181393160623056019921408743571874345707606590352011649421242000291907154938836004386077428004248998806722757492893128998333540344836426245799789406788357604632740901672389237838210670232981156692332099855219800510057509750495983075468059336145235372181989097948771387461786627837527412875456094826797016937474764269084235413835077582551291819900100552875513090608301740910558855103172813595338781946064320307854350829291143556457345657221896633919118177355858550344232435625139401402154271324379411052108008128926775066316187569521803202400618028234379059817015171651058189922985624927644706003883575597912173327754395478719871462647419237541841544658958043144714019612008905312260790643039530002601113236179705563399157503517543963636290209977693314403877669348639977301231499014229865374682275358593796481851643749114912056124378192868485914585786321691756062709468516318577869886214575579816875765258199604157281196397856077714761425191296014006968021209821864746983832620012918476625289831822886851669011048624174586982370787032652658856205366403394406078595929069020259964440438568500404973983108325759590148381077673731765189960069726237529817375221064912466361390385709419028275330087382473038363691974003316958614300887069823691556411003064736058770418508630965621525727197553553735430326259182377712746238167783814210520968854155438308623784140499452236342759613717674408216019499255766559907800557692224545930525101219381255107697153201225675417134086932658100831193718620462885071421417328174278147376700275583652996776169827919154925935706836659321344074360841983854779887419165266709582474893161496704606128294237692429339080470532600973139812340584872927764971091894748773259163110103668992469227048098391604034101432385286710970255188266329545664008825351006871828194576451627822348155130401803226445867696240138081151557042415629022222981467367634655057192361068875998398684171546061077599839691747398500281190484529113542649936631042725830788955772172825204864213772746327965526645562599837018001205027003095771296947796067616075646303942513480771585106246004368356194057405737899876454127009716962833562047835071167464716382162669885081575733564735205283906964177255608255877495820430974467137766886495741858090044560433955050574957221918769308074302727171917386862533036564044985623697959373598537276085527976383670552712686129113442270283042062879851767925965445001373447847490584841027665823282013244995642119740545056075059566598784562175221966087174455651588488070306938685493903052586551005874427009343162906977165532491545155672536927470219092355703928347913718425588080844408160127673062199096382973222079249994768742240042447588677384408942108955872376528542817500118477093730549814590389262681684273761118758544566855543558799303945819179090553903239430465375810516751160143840280889734685929699918565042039888423286878461320729061916544563999655459161075185317529087157628777573823807215908391326933180988570165823436559926906033984590494709252512893258206301673079163101243564151878463748416436654484571764765573468760952040634246231504274034658201915561712447364122198121715225417993456512237733613856542919795816607107539681751913159265564628522475813884355595973531307585703672292247325236641567733728305749194024067129912449524958235166954254165411813429179823392432411844423445825877754154033192785046997910062289344378079904349183158109563655035873509397052468111747518402882664731191901209129164348956951873072529415755007912604222324203957705787264831956036577759409148392422445124368140361280702912106596677966140644007660318782809022319788559626297492458490512301606092409040132731075254421504268893414153802752355153367139432594863407194208868515592710992883035264176809485228297449093321278699585796049498780009073473472264288176229848960384912197796564484288848093613563625947904020143167970275915397128362186594429735318143642262013658367248834826315004292015641476596196230523388565322603194923583441811391901784718885463671888723619705196234419443163591006257558808695941049716240375892426850047288569543158036351969541406529916154328790390081799817243252590116563617603048277202509065510363940897687976789115816074130777797639868586764796175752918079952658160818649065885412364493669185412294391029941457218071558716032540225484071421930757869471605583900272165559951711247908300818208626414931902086603475127936608988225372898028622456775516310962632772839323917607487322732221175103439924040738326697313745545274766353786639503633991768106392087740358112082548247869332791838606693793434124902216881237594034025789218102307819706681324467217410813343782210670464013174118722509535027027779796437440954677734341931369290413278154398000624891540622831878312886868058124686550544965183496473240137678206956533421621347625506607088729418527178865267077280390774178109849171431370845113955502183256866297372488611475935820215965136916776966361028542590976885338183518981159946767634865013350235141190721024934340193042434346278698087124941252022401853630741264446454711463236221900938544708897136217795774797481281407074052386577197354831692333445927364204961749955272882327040819798509891923756350107495487666930368821817604756890826192440778841987064932833658055182905144190214141217585462536336361488301697573969494425565012771035350696277222066426905598854610053270717035122353048830184590656723773078004303013879953582543814468536875177937895070816660158933661918513942604153134797958076868168173833672113113253562464944550027388813477922524591423866813099793334685755789552491788879038121043777479125629131970326275518761804565566952406478099463087823180578259830954721018390871729669330011939798515844866112894634365249948414700167741298037091342935056560516380807924222453180758008266239195701896199196527179361231543391335130990898252658054573072180037546921558958851317823829000863615420578508470643555536965588377346292438629977992706093275933455955486398584473702234525219778194847457233117896274215264960022618370898109318809368634855510950728081567576792988449246954532604931237829098209980777639280813487470873811435394808454604193273165485940121376571986795119412283151063821088079137882139007517636621442698748120639218845860416260152208517547332570207633655570281965940006010580436979005240800464471999414492146089666929849436995880731883510806819626723088217683730842430401563402262775640775666579184045358357753377506536660393517339511508749560611156153917506590467383525171352883359031967141452751895786968029285455120665843992086820214304337917681835804891196647074939773510706618473661818903283489156049627048476215218197658450106775783326058400845447342091081355778584458067421281556629335839336895355177135845811941783842320500158130573982410582788014969355758199944512141701737467171660538653030750279927782232438639782615666332403247763506097170020929084673887860528976848367246381650282251166257091001936378810362024215288368841216109312488043420224122433343168672265788786790508209606677369527143455058779885074494512313367947739986031958127142630231085090231405348021563156707958495655064750218976367937586416129891384717857021793501990360229448969392321898740241043755926247334984548959646921082637607157595280731895503282447951277596407089192597810010582706131649966737184498509447898646904871126989921970970452252535509867606994902517173727257192660718274811814802340753192994598651795305062917307154991221501605947973982290221274691306220437568663667370422516016217670872505994232429298671725232437818328062056184222942377593091137844165299076028291654257875229168062779067308255398777988035717769166219407385918070573793885557315928171593615520637014935559864803379519174313143836700269086012466670023098201896933461276361768547577219389509821364973941576926964174100360013997240645010133956563747842652442722676296332780351949013233577722138803488837772842689889251378947111345918936951564235421012732200254247334320242658300820994371592757287675370499769642272291281441545732750248174037951450239482961683811545452831068711714053017784896745867173906252443597382654147837552296873967242887494801473095364434143088971277217459111571531259761788464245456504842809915595747421702390511236986720813756087833636864571857349237940033335325264281394961111585126481255363630503563081908195143202016959821721873343030675166615728595568893186155888027620970271617816981595410662781928571252055756970508930232107594337010493581479607481402339325606837537789970158977767182361736213146128997119340415652990900239668623815135402451462104167268227534163436308957832127174283645701908289804945123471108177547607821160430929627253380545275627517992408160618769235157437025600984167497312824949988986282568413308704941601380307303362751418082661585572818813224958899299742331554358055535025259590198403163758067852072769128419505381337035342663991218628824033211443890563652116312130370912073766756057945107435989455777337913108575172505530794180894465809231415648356611020135332497452838877613532399222531674044477869118226254539841507632858382490817876818053658070229974082990434042844269643815699249287065182747090931079805868485416750214714848893571509504611328746516972688341911195201342306358079685927418036835200757599134690584537864052453687206449197487423029413750551321200278397224343985557837695043411702958972512226327546263257134771694289426452181594703458096754598849458648157067325764932240821505647324053415235553805092683267408961803579448640690159689473629413966717327563004154800640454240647935877789233193717795338613237676599149133923976836675407966537609758795479987455060748332823960917155935014141663473202589927641720532908725974385336685659905360272729423276332916989688252083582281587138995325476299127374605731881299978924098653070736940614258708035182851288795425743878307927742602861643020199985679380477597970506069111508994213980803653378355313726835272078960647010085804334769343655208625275472218897266563697801627111885341049553105934697026590283290133166678565749947182488535897987606344122096108184333496965128070347002543017268771881791031027540073889661124810135683486354612043636866927505052025757603135076725786219247761093405972510915844501373669997907559804157016461103318684548723423974538407222212197531768225363930108675501519402825097254662885261435794054787683190689239109957885526996696947558530194726759838058486033975304043721488771370559171616096254219164562721439364291536920509328362317447420157782465260697050511074480436171833411690992305677197102318030951720196770090359932901132491980157776748036994147915315334757558357982115020177710222250096531838756423736650803309055795120312442458041834409252606752254137510915176350586169524702629114744568413960518174138721386897120160640324089839883569382219206167652437137496222745604078770672069672153722211198446826844408642428606359612398837843788729609275142665878682108927943952271515042669440634543785590401961676558415904453600622168546669894875239222436500066050378351317724015659123378912636233210912010410030265726423295501672905399496773832849798830946156742383610970042256551414205965874454553618630610348846552131828065470922637856407311537100289875301216681395036922822765240757541487018242271616736793251019739942705589435449496230728328112175345733826824225682671815802414963753858625916582356494401001385012963141606984688126655431645395601514949295213053504709188548565048291525686253000281290680224570616458595736163611850815720148318666047174269430451271112342199874761532539750395372960791854975458453478845100450960455109853581906447936646225837282203063212770838349282000216208224359796262092707213643337323301790839804850890555374764488820027490132095141397545055752366143721810801793862935108484223324099868776126965866549277918061299921414745239178907315972875717591283772931412617446851387750156890338681027796945541275688125515481716502616877118682758534318295388927109817899546929139929155010124796499332709143114726895125203338727511634228587415632334178949844925874297957539076558259684931043924611514853186012939737509570636623443793948291960132100793696790568518658513845026043266459411734583530349011255429382933908393342839449172602907961868778670099734463198233605757149799909623584643164835795452972791628158305871772635723626334378272113760834831259429572235636408525424921268204161946248487651744939344664094530124829164567822324830812123519732508684418381886983115236535126263510257825140420210701259491618246348043172606663760071080592761213203926289424321390553312817842699055227229488713098225789889013103197438070558260576089929334669857360387218294138286856590848567845048412531529223456990040699036489870247648853813267398874628601919523448835347111897835393648586123648104054249803614754594973460122416413653349510718600920491911480208092954073540544522082501530847125357495963389583988150726521895051940184878324504494112347978553833036932076383643557699879417890013135247345894642352452769140193656238085774186372822795600856487074197770598743225350695223055984280147962879899789422025115655161863006778947548309830718474797646321816090053151634776501529421012357489511479537378208357338375184249260696756140873156319696885013330147232595334058133402183856467136671851421392796463277192640115909659608723222893994612203784569074328978784332567287829758830173208906410602219445891248702424095561821041237297074179377747222202695904993810839966819269119211850163588814420738254104599310444583716172883338584974288987063355291722565199012953381652127773060554630293990274094037054140423537507111211829839576162723622916619096824427957930719542164469923419126214731868614870387740859535368093496511498003917175751396084974587492130932037365582520440929491793844824699922932043720530353777848218613498565484101783907496561482868287549897170593299328665641741087468174460895498414941515843659363176613499242683783018672893173866237151728510473592314845447337123945253222641451718956227314638933118518445855193913313693107210992448682039606595027544705475974178626680722420918174397658569178395980171115156169704815349473649585759709480399364369706922675482514932340472464305750385830979546854060774591600953122262523369988298236110648859594688786973960777803454468565490456898040465369805436234471467824191824582312021353836038137412984791559746277338836521972236897190117070465814925135941764750447767142777529199801015353962360242528023213897578859412068464570317786846354466030942505187391465690743623784537745360161536102833886047519000772221639499575230562993885434377788520646986409799055259605286604334292347936211566375099620757368579850407903998051233337651763100677282262475557661432383728011488928648736173894160010312956935908122241881401250857304707446575037072554880072077051472412220164417464421762805989385415431066450576964844048491551758764058860640720843469896222055877063819631516517060989833715758107721501622733384846958721936586546160441015315542947127117838881243976870173529765270247438490308560570237460451315326665415502676887231814719798178140471331306218083931884419022162587734868262098146971647155412487328528094232235712621448162922828382524157421037655261815398373218929259431535587930088877272858875693943573630947850768746883594762226249014759553355327263560129377466779170850960393381154003243411209149622293922628757211553533678735671672986327507185328420370450275155000700052970024068564346009182708636885852977800649500346901338494451681744753844033814712245148234918873355153741383221007893856132270462899734161737557169493362377525882341911892824744058014509872112363227087092298177600612649604206762943792273799239118914136264285856741468872234594946429533144534378975534886475918229467480616656008419422232813948231708238225093037794608847897083036705171585515999358777872583483895225088060176646791237210651998517147941566113680686052948960657194034120686409491254945247463005643342078251999242628794371974221898862222708801908386900641901457851760212985220420042550837201471177395582261170173783548327131500388125159458243647486977831073744675400798063777175110576317998674852103860685902277342771315876745517617748200669783546206485189686204706500070079196952314350255204849939755062010001300920515322771536589840675150629777735144499588906776996826510525579095310696903521565508660055806887278189435636373191405288947344520859091592165540821733577853492709094645178307195339104989303556388379335527483633430412467374621820551184241704212125157655129156863989147717920581830686054118951880006200968711296260360819346604415906719041240522308098208688153962186264473699937720633169021972468542371842907507679894006409449975634917249244125196774938706997548128995450493838515757352496518054508929278569241522374544412481758290335947913871325729052118024020621189867903270504573845300729076580287579589754233319234847623683994959924697425709167537707471558234899073787598309571552363631480547641137568676832806518485572321130114317996906992848046616900883736004060355153948831637213472118342886949752809385508828772953279133886699161588012010691643630055609185471118979129259688263989262128337565072640241965338975535017907230363912829941522400188336727559870080140097471939090334809000888659515154602128456730963609879500451463712889573204101076052743837386825686436332181106290700265282580702996628301577336375484591781214703769254243345083685951709419549346176785584864443670036688605686234235068740069950871188495983537250978299816809196789244813860349117110363190759543068367904052260051655458564223258983527443104666268396764293210227298653080123836142916539565897424535826742134984499545201767762326775625768313437689093785368422718932800963646512655935078254840925900915757238836687787851859866336221575736738927372947891621768565196329800445045932080572797137512422632988138923557575803595982537627728824010566018057484264619972108163824213029826627313051007961616669677166864335252920961578119814565688278683059317339464998161471350712584052595127628309080129147208595509915216950598796583036606799984170438590624263909509352991574241608377912571364129279562489286881730217578927856239252124624244954531773922920110494533945340222900441613313469959557301425192293863531927389770895044538363982537542741380342835173593591213118242432543323248877079675359086840725813852718693939191051214947846890915768689089516483851747163021127191353400466672312642343613088263416223323081234580909735523230546712543588497613297884664035604865542383753404400036385405885070241564096371948711431767816914402573279656896878331358941783176182773339740495220256974324075423123689067642301156798562949625866600157256838293914067623603676321763364507471145887321541069456341762013634158055475523554745558536362956402183479209191004500302805536808529455802891294079867795064425840796209751605725829650524392211054044111324790827571237842968695148006140307614356097334678691931670076169293677518962351844671717611857003859547865670854874390767770141003741466357988566838497887155570649906900861150908589514946366673204865723747097748781985091409991881649559501139267349949207090959916279044894028021706571385614236796672873036368866684066445395796136159806650579646693088958087410657591607381726865185353876691164986184704658711048511413121494010897520391592086780102750215685115413212655300655679133169154244581326226362479754765126520993526368977302303620197696325891676399039712238085246896636842887829700759783597853439010334392882103380780315328412109741199258872080526547507815739783222478311727848643237421222860492070937418541742593054570618017045074687487001179649683479064733857297500490707267548815047135642617352439370175439784012360072351071269150889813123322889150756132473519447213145147662943042930748932238016312247716201955502006426550585596409073937118114466751305203069188191661253313142293081925089534793400706691673101163050972869614816393363984965912618884723113520226415601037425028207263414850332097439706507888322522717334055395263240057565257619142413382173148741118988000828095553236293529183013880288608886944441989807464058736007280767148973649407005340368567458337883381495086186336880502255609210402589486578654059397400730087496491235312529175062194621065215067409195515176691658539800266576848864655750888670877189234547630843128807422806644607566310242019002317895375485501779690695035029734619665757161549651158419002012550912257706684803441745676771544164440596132272733499236164162498845061309653119838567134552991816250495215281169532820363413532473764336916438786486857908012919108443869914917141928482238601966726866672614048979234853415982473924859656692088516035697965817864437783326717944360741795872331821137279648299577629978261265209143928002078133516736319723340131912903097706057439871204255849832033571219223105114053369928079574546849527382777436020380556632735037774515057973692548085802024750370156206349241341898049928960036705547857736958387637072744005968265406377984898172885580610922884107214344614088914176107470841835918968725319730968045189549545945612291430427578636043147982919839559836086243621543140803537679475010534082637589761351097566720901863600423708505792839586219053699861086396101014286466190156131122799120784720005180941044232945801900895101220374949840677011100428692338932029318373418083976541210666876667072986565599212619854519459064424545407226699261516009062451794228855774316301589610806981140079674923570397483710536620807646375475114932414144266162675058257150139361474829677698739532795580224535663956786687041039694201451123281019033016480860669304733616727574335394914602161691364724608910226435080956578056262549896591729695617276041771811266574078476049560653423823315929265734048337073297702053130489377058395152525351015590629494266321365839204988012365505021056889171677175025904778020170693671596334934178710662500034055209417680743651730381390201012140758887144409109299814656276688239922968044830289317860641669863640256404514799053176874161010095777727799182309569311356875512643039552116229054222907257369251046636707474033475816877517056133321831314698508671850748658977194976698142384121660002891725406430575127791858107822754696226604470078024095245391050876935896419160444730693858424398250170572212555268888059868744990190155078437969722132882817442639108774852898039015762731839942981025718696277472486340836218281675724821810016706650743081957678868179401020749893704355184842711908632411038476597771250285669934202971769161425771865264125511556002988792482499386400162853164514339020489000914212837145434186380005576636811894321691099859551365787857714473474890694768155460324730963200941893902965206095340625033240405174304997091236498766696117804943596967816060542461775886890561535450859459120239862514174618018768173423395160432465179492917613075641411728046442347564590096385352850786242293258746012632928945077420027789481924634367988136391599363205615941911690445252388547085745671463791380826998244823289322720217920970123084436838384234930086330414404814094044265991920817200417493734641190475794805113292233879520476135404588470339319538797078307422894369939559026684972677393851296655200867202624183856733530540683831590065892952333788520603858311085409522979723673118034019501764276149137135604374545866602869343384516045890032463369778283795998986683679258846885582971262852871252483898307760866471615694126423163321195266867212658156747096423382381372955790056660497040876230590097786345039328889446518777892608299676361901040857171086868472438818860851077753876133568819824178567838015602112062854451772409537713042322849241465473625366415676493116203994934519415404557893902681207792308580510184164623993161107635855124980732745390296682412808134442004340423619010571970318401177569200137348350276738897231186452583528526571097690567006937283262571827648267333614335304441223076657759992872892295769040757731484672759714699216673374415818328805242285021462662708356773647353382293422601249102503737701225316956130486573996039024459061746948428959116743619576002830802946185970377919901317066118185848581867048079149816501483929103907201684389644520898064892941604798488195418451928496215113701259179919907713130167173029263355632182407148112656734223665645352875665577047749664338879048557048797667517350923264229100161375893166136677405324558261213835349658330338100416229060421473251923725147550071466290257104172395022079379774699623715540433526888966218113515631827328142017540284807842305031614959482851389450892548129862117730344015892976467439313928408431955433894402933724079042053296051650565408333884228172922095581068355069535274676371916941995738390157894360669650173172659692483297497294688473138502251549990138954477499922945913996579461541449849030062033311722952216869926802063847616298788647046073025538205489360788310527225128323527955741049989698688008702310412379511719249845850851619683722239715997674269745608544648842258111925672485396028101939966873512981768787070372231000159561386945216469623956456706108473511234117010236442601514963271783856699173420327058168441771821602850892777901031994904631455203238622511051552194354487621943754626487794989055549116797223305944245292210589682099760640528361602992126485968508682790280205107404652447585280671133679148941106432853657673053572974874308923108577856645666135122402362544102868506538689980239383877985484657781889739514048187824476243667800520820772904721042139970885410434555980061097379892395813717538619209613287693674015517428457632979083225105974067201301817669610906631362076370589545004078328203595182646035674758334207325449029126017049947471780009970516018661567457781875871992657259393997475360002835842784863402685272034884077397415922507302556102191406408221393659392125317956897193533660367904040591330982601144352369025324365335379481023591419726192885895161691861390799309285609416914675644444024378412840177373064401701592303278085369410166856423903717827058290814308526150703542343863741165380879289849131532138658617131760184585121429751147938570065122167071240393859224836081297005268278292978024401528600755570135033253308814048427518521000062601074971628524021889973300360271422252663622639977409663044913141430280106548691104306753798871162893870030028354420658933833058812077399450424643125702151027012520646696690549811858736082104887596586772788279688568350723588837431809657959912367570489876896398745855265443867115812088770498830969994084092163762746320082389082361104746764867237225220106614752654818763137073956512497721880140697412737448461200764256037273402643016990942849174938647167028852701827689859639706518299358935083342210109358576491894047811918222153538440929677291460229223122449192432231267867120897869514096170518126887432895159598615767730326041974086570746835444912007184758273422343133953426421912729761640490552688720332883630635869966478694235492313152315480508856788280463070747580245812354142430118405441685337083785879232585124255397501914467841603799845695616385715264128283632125817094804087062520306493522123340001735214621020426476208752646613892543284879125919891486604328607453995185412530533252561106685412697898512998497763462050415521629868959281234197588694964919182575781270149323498774908362444778929886485223702200152417443614727543173526683729983315989762140259855231427260958101777213093642053217214369282143253019454275478618015314200881798947519522664841368608463860357080123730926753775884864834987405024966683141414203442183695331500184561010584422255256306181191846293116680420664122444247280573942670518824000489794234996467863115763340969357773830959913960101981453646320661749567469916883882393125223423370882384800391994095384636550183631493221556986650486161094792929415090698067815932264518594782853541681947773529982495942143389172184531861077729787531361525599442369633036624392913830997348794606662511217858082587286467969216007135140224809857177049234083730286563920320851805243526357330440152118146933625469463041142206695982950313024958834528282370122988101134965968129593742966437439770171374712993876228770032254730414611157259725908837615599824247828917204345347498351972575711482981499381392111556007601967138996221090314857332004731294052685031914773947256420961788122457026952489624434371294767123205613336175582022918285889013815550458893372529959546376510135623353945134765426307582938500711642356852197197674673274508950966984357259955277099303369103020502925406483926287003067504463598155069040828370134827656006058148299410287138773364371955457697729042313007365171786187868104187755228382880218994504333538134778226746846014742996685895742544447145334829857627208790455511938999359251321518308211813421019136563962745496899634051377049629085521959326325066852279286532021500429537518499603226344753960946607833308380924857378898638813398941861709385257622588801572299206494016948665516152299184356477429843865799494594191240720915961817498201140738843669275274818271241123975214185379201412705490083409269338215193692378801798513888915106074334698799611377888203311047548949432364618913040717767602645345832924449792631066473109615131361751055815174227657138487441013003618714847001605807796232108947390598119780356362852897443574779613201137483047027387805971824057416757747772249356531007017260205812794281147594598309565522989960666424925326963347584317701834294905541529014944809529822878560929989570330312922353496422977043534376177656995536395516929425959083812056493435122902764671888402861334111367280997363762658374025370309349806097469522274570893983733720787015391543560385657354101358186796684101940829187988833696878145646835578249174366657472635629553280702434767398037656607220297975727177240877886293506489183647670971033951853494241348615061148885879216410499302689233802559662760995041058197952315004018239737225328785522408716764047419477267731995966254976935864289859110727808042865580505739045396530625888744617686419781667953558219080963679910296769687959096363813229488505231859657337012011336113798083294059789391205434909905967539944630694363113950911747647433383154658450613270490041032673243441688557730222442775892161906733911495555994306568031479784898209364596426297284743592096243295569206586238018333024343523318537917408268381435990274846573727607650165200818346237907539805976793873634876583127297063496322412236790690358403302616749906814843693981749093755284721290968338326592349162156808298971875284740809220282235298943949754341656678373720654879470750978220134971797240275399342089600821172078996531235952248712226273098111732757449296458825510328732600610204462541546103100209214208272951943696987509152154465645941002097832592597371575184291965022398697683527535160206668739922789596210104087762213844551527064733645670790031518515409278597325363754751872107848338116208739675564922388098379483281179735244406684426483029987687589706479508211721497131948460077306446169754920291647709940269724766157297069095183201205845122123927126346256631042456493046786329277093757072337515335582118991336238795849669930131554243110742156951428284241734256134711618919592003360949508942175975871707836690800842901716617157323561659461437497942192588776395454323260579382402033620842702876575375158653491541974895377799893215789941484356585521964252784201345838762003451137243746763652147944731362570738590547647684777096683510096710652691829788710011435880922364309545598688896064135903687458447526266312917474151452864406744023377609834391923645748092418037033823333683708646786269824091535036302146934637154165023816015701421736269143308750260199740367383232788247312482416552033365104772547129144081708935529032053379221339728884425779936989903487103779983451125999921472983506322208428321649361503665346493141125285655660118108130274251709248301303242795744090465445489995019279141723651469671095847672837370671331162130972467191440263005542048495866987381148704361823372897583279708247437444730785488806200972875744601033946033264543464860883367841921928969626530474980072803523757808559061587462468626898860909920858891069968696611115996679932462546204077090360395870154535407485350776342013083585512860950086023521680154320992032412027413599784576132388019836166918038095393872682447832726493180107202171493488356287593112824541372533239163687873189089991448240333371358195101051318477572394184746764088234734000864912749168548881237279294586027946859383899897696492643099507367625664014544764360815098474490354868866982364606544566764087160953381764385534088737508096470231637724714263189334500374787035737103826098158148640256140184825926889286848767485096341349225452687177397399172897757168513906173809212310460503074936252661096033390109847230328855564870681426806404291444813715386919930522655332750875027489304818259057111783146168356198909164113816133679541864889984452280907829129489753317876916504655663497827226981032198713214062662056303192522147105538474712329527042898864521620296393209019952520358828961095573922776097725490586145455510744815460298380941810739134276942084870106343947339310390434589361590707190614916664112844153920135521110169803911146938410300964232604225480743271704470694192935158673654321988613371149610445391478003622233574656057396266126989529997040399287304231476759728545408689144108013079378557300878382007423556131778978511355817073407479701142705517311028277130692719743430066912131909985959983450426265265039711415480592776428367597869841600120232516673628887204947121675991769930533839072487725876402173532783911864682975187696253130125245037550398009757076330700917513974522792786823357573640579124061507259107799810561053766170912338636526237125562804607097873693616297836074547735351732476567189999688978534816366365382172985788123727775864501177077167811233024006252230567897192887243745553851774724057688085588541084261981608009169015345751393970472193602382752643696918285334303736149074694607938867961247282416494718172731488118550624212979787777441473762465188156735491964932384640200763407917902339114734363502466317823255790074499033292612023876270083910027760272356760531028541537910636421873616757046794148239069016895655957204189887233734815409014838555026959945519900643422268363249296661418008365482345187530708863857232987969657509293976449961048581564078042496870899340860896783448729502544949194683191860069534573044295891426139514951533584488380155303592072318499592678468453951825286459522150568494819121888875720858368244090681208694091911093949856463774929443974789284455834721376388779773766557042299383348929549485133003867607237285898009609377865892189811952427855559978809822511767011959598429027402885523852588308055767775990554986103570464434341480485231624114129366790334981029423200970898820693658282327196058784035260627680757193724575601672424180814548826347761871012593166590266172660262543400148773624575463146211340027919532301487134428447783701502815540227811108456448374105073335512288514289187996092725550398269071060039105135989173128555749194863107479458591991913238015360667609812026661693569173977002289504566851446312153160811135415709576968761708354710924120793035503231488255124883276770604036999525234543253946163499584735152284456401240114513712524320269629925532318625042049434124797771510978030045770752501323720592249678465288237555009611853139045088975725802022332346783539952179555739492841595470874012363213278056598951265868008490895091805869284075046994381638546013289867703495732049252272718377810880831943315651920419066717164991828758262788783297436547958137496189044567622959808439809988370000662682536133520660439489088789839379708888070321371232239452692762892732480170683436777201644650698528485344890960117007670083179928762695050919095555981847415939001076384770648889474477744559570968005755756012166373482506117093497942450598929793917472148061089021676404224674070997877104591185249690083350925291324186280475312296990886371282149622987485131927894273447489714076035950453780380556841328445266971240971978388848197756425714593968777477139925168613297496788716244093425525471551830658946914217363066779943324761307687555978661891887827421104775470094579815836725987692021584959416370769227775847093040711088075799301921435717140082089254156663336818941741104181747306118108068266633295558167843492824973655704392635527189503585676429186517933838995678478643695674025687309607714645950555687707039763677270714424077447804646134299273648038500883348497193064777970500332035476836328981412483969206650065075489294255791792516733416892523833047660696934202434250659829674209754471112335699618627977972382776981818156154933178507824178274822831902275157690370053114272093100035047479811561005812477463354725492771656255643860926282638041373000984812394841287201852127509882239616292462713103476521971176174646549551721866342475880453033557171107248003852906466738506809548278593034095967345690383052551796490488185418954662675578923191160683601615998372482065763292515162605105045019716120489250384329941284410089131280623298491866216493726645380439830413318986166899532499337958529497536745831023884796657012099722092894002106073521679271389749083854706868503462102890842435001394913692665053052774005256381818955312694328604434676494370931131647264034617444750762835747059174445103469905642499058852497837976496533812387603739532066722653261780232228304724790784130320198567064877500982250280752730528526472114743468847464658326265986389819653219332365711906274987687435387022622210407780149659903461779597284788916147315199060360792055411243264496170658052434144146754811273267103046572504875401557931078676297523810290331800219895549789920137361720715589426747414028150245239459325717611746973401474852353055201450600220443361607428167662831278702488728890724396679957566228236957695241528237076018345362572432825045039918117970139756800505852617855560881120378177033586257773028050255706720035523595500015191753698828104845435679692079988116456678214752551140302778422607752264611892553161857916274743826394386436269196306844805585912738973539603413619449607696250883910788371706535684034736451299781471596632785774620599048820374476694701098712001282441209402666808995806378234979996519226881624207589976689767995024358504169292948397631366215191010097526450647563908038983179086388079488533385904827398646609523095536926894163020305961008043364328045261697217956744054797214839462303717413486418125033102087651145346256970687871065771529287423397534122204604197596351316587818300185706240360067038275827839473227085924287364340448847131776976112729117291135207791347932693226126963894620770045685197442829374466052872277245329077612882314358733546715519241989159780802107917979709710944579145602221472001415393387592198636402072984297604381612194451116767579456132285029879356352697802160891358655815692759571438093690000345899578626216219567423256627073632883488094728107557733201569119033720423669787195622913079952718400489018161884240720184009148377763565486791440144295390288654604136308353953897538958135353899410371610065029685566107030671858222478287306955991593130597628314614780158932408778478878855007710032948442503134299896727400284011848063944503092752894438572088677178138035859109579974635088149327077916620596664376939575408364450029490024279353579626116341921052102510882625533402503375043294521843278158494602799665652920052675651166317137587568074329680137881976422114716700967538594992012659994811935288691140435915790754581539220274082707477877434745138262001242551134666021765734074531576838433817358730847810013714096692129230027158934157103182570220746242582931424235277844776300827635188785424094006143283950634770844741214288022237643909793766087693469000779690194203742348788941909984308549855627606944656388760629449411122306687020306877937097668810848573306816394872360686972298665677343835743047194156586010551611275835431320291844757580555310036887430627912796526937599752528551955447533240233292895228966272052127152590765137047691575095853720053821257588306871734216641466549160973854811868457767708919179928789305488490861452127172417002928233844133108189037664085095629589044060365560506077024310830143511374595391967582118740350803526413179935479054762916742153936876421341189626819805400838926257245050704685361338991083205305234680534334436922651036794685473431856313958558948102606491806347784219654175886223849719679463831609981019112832383534331820077519231634185795950656405981592657476963348939466155136143122561273113014290600533776519548063122060055875060896246222706785874803045620772941376292785269626729408919589788387472713267976297414669254338294597508603457616583311591506118072908612417223164717942964332961990074245627099081070379580854890115136297785800932246468339295271158743706786831843354735536619530001133919711796243431994804824929554365565509517443212184949253112400689840527954980915799949421760962828357668330040539658844109830211290210139812219002928782040142707052115939185209530708134261624382692915335233181488419743165836196329323918081419419655383453310355191382203465235453562817250693102493024063144595793425479387608791285843005474247720392286409323831310520015017635650956308631881875479012667240294340788284046473052663233404006866886669906987864667212826798827498302411889036068232768368083871239208082602802419771936671752223789756688131386352579823919189354080627857156847973374543721908085647889558301144626444848062049532605639832334499062404427052650083085598053095721771343176592447920763686016578620489617852124775881095930606333735575308155722251924307319659023966542024355395871114113679957342264846523089618114909108306816899132866704972751981443572830516931645870606355650796675730896839890113111557178378334229542301687847566609246553492262500242917570051660261925250473457376985123536120654246919783425737969680756279415346803003363629467988649923046973571414208378090596787317752763545379092284251780089220324788912471100163384161023974133335814167404878919217551208703508975695920722507707797253803071788004073741111127998847627281823514954967104181366982073846452451429680824022535159828788068485331150057461524951100670460656642831067544885119390568595244623877939511385597037978778650636063417662787423615156365282556579128762538970053822012671616972402309637016402245011481290166540265632848836048043906650968978373800391101140178081614929813842940892818106296657702777239707804705915056765100093873024353771746193336057679126186574716638990229144719779428598515075258614289585799802793419461924184520943048759888186839251243647083307520819046445974814404321160111410987123303704827596451776062069475910671041508301783793439465508257313550867050483501223014497728140446292932976883876695668879340603214606972694513301362167580203451857498589159534731313948236654892822771081116638895329501097730403469685065928530662947362255347256124037314006579074431483306470588510910865816390298664730840250692619874209609600257787335467885875538993688526719611929269972164336448373929551378799715263503248328568749739349418991879537315064140222238839052141407011922829836674263814902899755731025855122015374309311889733750898937051864765564048470983919074856781663416746215587029021943476340505792417914439933723283549286509104346860486421202998904388670535217561955123951120105918746131353881397890690472586253013101908990800883879940892739700717457644635333490207843020436772871507869976927429238389768446429121875744112503247834226226680338792701459531256491310249153907646449509100719827158278940377012066542411698083189257187795988114983322900656272256128159141671091086583560311125745498592693312806352765287392370738775451598101161572852400547610572462336077810028187539968653159903771755868539043364496412453315174036581180791870380826623462385928018668205201307627153763555585250125505722065722889182600613215405979114084930765904409619981089182935203454686304383640270729689590292880993537853678368058446894185560624981563780057223784521011782242574570291882782978170912457961999439082615314451556531444990541375050042063015070872108642252584661236181706702000713679328759588824865749892789227430276708969973746047381174333663629959257881512830394693132357845744020479256855953551802513710318059789356657087123993405578176347701263050262909230785855564913401751065628760900417496254879484373856407477168746817364184923895667462329977811310512875048444867359282933339175511976235561947708991303996066571505503786912281822987665366142045403641581683195522391190214231084445731508373020926219988521037685750665872985195335656963614299379667066496142443897203824890108280321615660409678695421396008808511800600269687367861469254411939055882582849490067861913860587811121526346053687633718930676122308976349436386999391041109661133869215307827586199216676880779139420261337138834626051601702839315845605857292011503941099528161846667125524885985386639252568525567448457555905967496496459066498709704668874601551931562010535960795449306233256038721368386714476339288930767556060048465837119077974031355183907669847706613479582472343035607619005687849001114174671427335530923239623815221170195268296959187516886213563774225590630752781040725200696038128692943154568380622461098103537241956035916665367024424209865781275905124476031830172689012331356176963522348424871622890728891868832160179620347195620369641141752215733561959138372184731382333966337419745539275262857506174214465654402867454716910602428526380775233551098015376161127095674798007337246403628412484498572964061507962113188587708082241315103689740800906082868919408663061439141608097253135046993633620271637532920497434990337156037353456421896359471226089063398287714487321046599474292369707899873885753061519635895181130772633229644399146135760736080258554829465880183158034664655776762755119032335213096033945789970467704293492715136702054538363148545075904919249464099575589593652537659352642643806850817003240250009331749084156667616776212640571968069040569051634158937456378462191635300923933883301415006018081174427829523190994462283122299062972148553436597841246235235283832619241617612611058711615666125116831702308041635285061343059512295532906256757386178560093752102212827543943043492762093560575516504526157093136717328882804020059259015159312263407203046896601876335230731951581436097948993957360245276262637218412555078858195678910227364439697094803205552322399702186755309786314792246958354072689006288027653393423986617604076768836858879246863508228842357043279070059437183949131366368343326297823031168621547248436606580249760359605131384526773955682612441815254880184111431963507379679098619057298295425490492511034774171811541576274825935044057581334194099438321556085127353261505992911270845573913856811640001620487530448919013624879557878443383905329711023241207476092496849284550853415203371913429834354997651003044269155157840330922161212392400939758086874934204974370543084114319582324140903175094287388472804273146145830633435439286501677393503194950027268374094819813740930592033668876430430132927921253285769068907036385909815679793257238632117375978612758707860196418107751488981069367308204764514739007551040438785824632447465018034301923516802474957443418068160729579561216453727261147719656777257785034928290229242314799182340794814582486588426655679846855659471961508005281276314383390538827864934207773307815401090484699907132025766720214466332675204731054565091388514700008811995355473956795597010881936445397983418861773711828149036511724994694773151111396983818095446221768775853969356376795361461172957617070719002224731846216351418401802176851456050943092542521724654505059521160932533495612390412591188122488697564553691279399078087411876767942839830018115281730787865812314834696418023079412744276029342653541331468922177331861339516038997960193308314244836890808592006585800126890033843252901022334429065612772882531728486744366797025855982233368472516342425673242751624282541893351858013936640356413016499763742744675427601636116309914066490649167795655864364488484704642648360577516148160887101898005593972465917998842879790544561867933395029725364185595750714140346466062251732975935410837449809306751240653964353176638945070898242721965453512409134174496117753374869515310202478395112166553686070195762496584958937318514698180934081767894529144948403284010734528777174922137607464367344470578660121717307095313738708682859128991632440957307759954084579673940720641071826595380621775177084954721350605512322849367894604097881514752721204753725445939502704250689780264857771531423617275848753851050791002672366987086500132284504242645462501510759883505669831079341859872299775255490539728035655088804082444227110945730134373088798962523838668217049621157869641635011966106727162617304380341127343707194888674262604729428405047434914046339682889833891908547805975438721336596026393799552485520389744080918255309194415638413321563024029886664646533643156578586121352704496192417972055810706599474292777622281493378261449425772028256424257320394307831251550889630179251680789053840702131235600163774927173068271428658665085661198464349552328274820720322466883012376994714413058495838098408795988725785504961313088474294773289057393978625200437131037114614423817453753794448751596854310996550799273466616853015024384861658031149578505736528476952246872231249376957844942665664378856500264146719730178961393334768086058406286716656226072335474451245967725281178334923452270383727328215292022048452449209671592058651083662055646631608845612926004327162148305266103925762155862919492908951334274661576827596918189889454864014730663457767356864535963294121738253038250709006676898780190228723561528325432730038083399024360836112264965232626691778798326139225760307040439805233982351129117983848766362806456861135117228663004560753936016725947381891318855104490640636617777603619786443108943933295581869446768705122935813725801159712411900917687489984687631661041420019160671398701874564869811720085135043556646878829934249954312844196051058240750898006776453881921406254792547012890770110814474801597388481960327125120330855385153246512137287166011485253967783263444218828636774173132121356212689326713865925945106084061162596887932286721459418840208239492262944288969075135251178754538905734609182732207011591470647138063192887493100861085560920339921453160383029481327762931345544106999878929981013063192346365382849290647626125202529775877132123350432106090695524123934474236258846024263718248124037806016540821512927173667964689839845771625683605229259655726539585902251966815712867717428517113933049751782397340259815958045971436320202271721369626771444931851457783365461419397365863150966667699344068830236996625148985965360175772744974750543974323798430956592893769900311475886341122596944222155054009684346493190685498424285476177064110006771445033777385590335889195183408218884528930483273676296284351471310844864562293582498730438035693772270275355104575443224101968631987084997090229771137757270471597248672189365055476396027777074565333217649072787214523076673441650187989892601510622612830877446922054075533437476025498335226981865776131039020721692808207769550085626644585697871144259204058920089038963738656456363520957632728775632712667539725460272801884346319823484529852920744999286087778907364036414718511353801996920168935302998028269259208833934733673241622053702100617746282637942352887674887022030742782150735713512236999439011213866180535001029074484079957226789725034709475242818204506568603817294033893880879957033843234277983964999548738781103884647896112592237305261807529758767520646940278502293401280177326016009726909864338487453002697564927461494742349815542042696686128908919237046527266152702896677264996490108292737317142006704223525309816311622425417233835800263238091238641143976129101550901740188192169356413113585668909055292624186781826351319454870706353489448495978927521544680787737432268866106058964188228878630711659609978791364656730450351542490291470612319372709690664553244059396806399027471030350760586812001870631967846433230567353950996156387889918062272276036652472271757306776309307456370948383412394955911781361627990764384899577344979563979032427942011877482756307454777120976899835090635236955203119236976280264595559531604802718422050006104034093887375327009679258637944114655087320342193251708372263735567548101293943902183473498157193613934725296965091415632477268574246349281873758894983110585831606030454234063937688912965994856023590658180807148515637017536284529916901590259065749564859752099605245415168532096731296099552661233339582504979565972905122944516340067879208509600903791460784199820480600266996894540996744250004774965542791082490875084992572400628636884775511716380018468087516878811317342268602519840002574260916609864386784140776167624712438468665366934182542954686354057348438002176902974808399733354022221560410387676705313191306969041652565677873262361755691899059542182812735206124939549805898309826109520054199498622349066012508181754542735237752183459096972404482085396068373635912219639441270920920778371483224081051055118181788760845348439166102886461871607117228481207173471082037636648405005232305886578911474832258151018999441275674699260613673415894960046881350243819380225541175000902902502857173369697070586681603344978271451751130913857972985076055809096487776672909204818742657779891738899260228142143649848352801816057648338711355860037215374884677559029762565265468505444171678577707983748428303143882225120792551608510331467243272931884299635805170573258420338922837401172517168868868297970248515153781405308382706034434849494626545763150266552454023975659529666955878819558764178278245252133534580481855505522804801647627123974518668559905524116041789343891168113512868442924880148375078964139455368845204452839571986520365375558319005945972925940508325353778615516280832919001461095810647236435580541123608660231273506541245101985417547595406937820208091504177314131200845897446900841028164413339385511616266456673468994113158494277653960147435839779062667923514812078131270637396366675167337779743316802423408574050494371272599796611846281138550656422179977759860465201850291575454800534824784676004184289325179990657219760941139065572866024164032587493783352965709337728556757159050279097513571543425634873139241865539605827582067609208547795268306611017879121247435644119474384916540163792333935642602984886645121348415494269047680509951857869394491544529295355285731478499891421383453479521833111114962807720124113367386656719107797838394801668555508313935099098444128740650857966198337230421411578000630602084236642826391632244013052572929325822297956572427366285270556597432548808895521147176522733686383041823136798366407717972988911307293422667774897571173233753261281601931382941806687347343516972193591859762814448082756543231611367311353004548262899614999631786270438763601474278564711663712322609852987672594525469736380325729813098949001564665827794338458093473884857959130245983679758347501040130289029310172985700489385312878829859114045003683314515129259017855176955178698695588345912591848653707869924158072169987858887117546524856255287471687501018270397769417204868671762187561663072276956216268880394314993606010065954935704479225021608254724819233038494709084484618579441753736733163423763568066591498200265715193738742623951522572390816909589031470971917989332705541590015704785139773125488591156344232027316791484216912768540969625212415297468390778037499199753620511364502910250047092944493412308541513741515239563263083000234665500694487871279388091183558585859384986379950860381261161505876146100370162298270496095989176537659535671930800812450536096607191443003494312830418856710906437368636845060515887173466953682276318657448593481984524115729360425209429945238592075072453279657617145534914687476557054900713827255612284994532469377105779305350430412270281880098636489838359803527857030996618244865639702460956998609073740985674461393979528691461531807163151953484504035811181448851953867196757604982618662495881340648279459055755037776709288350661600371525032481147987560513914498769928542729278310767247828084453302387272109045444192824391805463426832796010161227710338484757761557763568468128233240841657501660457674433009216638355842138648434792156652805633444571298032183781500841119235672303474394653881831394068477949487475019291008769789892102860727448466127626321183574509706369225156817718229069963346639446677806456840750019036488582962137676940245568047798439638140637734909574167811672632633895055273061198645686051693984635291209092976644950702897759134184872457837493862061032271154845301099070422561331877867089308078676240418827714218949568976498948130948892018238853525670810545459055592468432781350798667335735224437674667647993069554733684060082782781459875321382507897236175193404900644415104200777021432269379306934514744120579541495667572667455918795706265048784450474385187593865968171143304930518041067148487703846880883461762667740491674797595173059056192708446945918020215799085463056527562906120604229180019560788561754321913621280579351820854793015906383590839756950046277088968426936681159292865649790319265175438864373515643578067067132496940345254657565452975281017233272502624201731047572215554767714241754018279025972977254661770453656637764610545799357918511925665289613680703938192239251237252148862497810202760708875689298647490817255993305997605238407515150195667433165406173420289374627910162749908100010607586984325285101776077100852564856349614430208140333163973408403472871750661926456883090440168120420319626878590468488686601242075937916367999177841670806114023124445530199838387160193923236528221182362256464500297724432460964811009027832020510544549346682038611831530421975773944022025510138314785289283261714378220375419627259407512826792743210088448951804077438824117766438954549840646410260925726062499373649907455794758618306546613206706057900796755308203458742517588667613994276618538956625665295410653755748197148555273049601035241346377718308007433649057600750016228589243816391770356650651296323427443794191813215120251888293447006211233501575785698646448071678725665122989600288525778336608806525076858299009032184515914792432858549865530985785155704933939222974332681693127894540760539297799716070625320935809731030952013380663108382998880966338916524712820443410938522289780041110517126820473027368200168260781922346149430875854306093598861870023302268119754771054621695728974588239805923792164975618292324990878109559659658409841331083599396641939563917906163516270892332376708993879433279252237636516484126032935171606126031972823464624463147271363964339271610376472258629345050444340699003632137514637420461441700279233834975912415328990911437578112326198496793075875279768910630073355781768542038935721466318517721455178250242494832774986515551792008452090363504524635979553742342546061748115423814538801767198605599238775769422695956168010890299579737140563594176141989670027184455949916764847852354508267439971866274656777590895281089354558017175628211248084400653951736511774880359649104225052463440573060340429119863709565532454566993179300323458101685906033843240738216029047884140819570455605898000969517716712199742270634033694687369786391377426657254103123308912292874099197522431980775445801134764322587225303516114209123040806508728638145116635185327596864402188187941265938088404727241569361043489318927487202042115986743525996988537716819487130650023889045265104018642824293648632618700729145249303004585913215254204756458693917499339792225529000706054395285140383775876219338105152784337909735823119477337394963275587938142124441684189184928813769111567252212816346893741618649878730385097585701409589767157918740243314951733768625476188330058030590849716490940483085817390385416265783358583045587267499778070923177523004388131487034529082306093592385346166502841188778927621321692317370905678764337563323441972709508945860270048184284133173121261792865426124325691369535528843035191864489735218900065841367337420515889693652489203986786996437181937832886255326747261421836200308605151337482235304731018534404543231612615234937880752674960616128742479063437054969054817814764542491631228472392497993990887608717453097154304083943719149173417508448409402479656641300037182445167349215830271411980814463573603731309874656010299131245979140010949004039029171859696629182747524413713859218234945428646189828725143712836443979887794802452502517755076633172300881308881683976284216091201771370134571920486781544297294236381904953516757654905932391268744055984732462062863395192493686337455456938233459538169786453729502581640793018070183428717551379386980827916443385644022479409672164556210900840585210283223925800021520546776077903315109708996381078391643298053115561962900419833913865609436926943149588544705760470138640496276651298935234204356593536607294248794924296695250211123176059746935871476255708445473442252084432198200642187141806485462419710499428646340299882309612545410505269904386962964870577975547189246748378458609069429179004003285145618032144948448769673497720347380961142269057759574165714753702884413969237548896662439702827617867992498422308080443934607252390625002525350211453663370244041043577026330941864277031912788258483889548882281261427558859276650319568310658704416027054173483369114278095363512452002000342837251262295400230602207705836525126942462584700142495043157698338571488737489842543661388788708535507976788645791458643109762710816601031086247146523701132354372696102467908350211576499468827639947502163292578306099262177820552129726147482467918872782253039854538884310023330235759210508257080395373022517921921977096111670270476587248164703389816745818043390806963251105797338976027158593731583400629515137394707839214539091148042804102969607098196882146527175251786825938005205148186229075227016936250603116517150568781009786475744466968122482968981188210971019333114160710192394770940511183078633392303205587586647661562330859516745586395325743143372391975266952637948618471915814622071176295093006499272824480352853592409410574175780337140119388540040432042399040651746197053137082247169885716520186899317235043355258613043460035746850416250730982730727860029390230305214706229846489621988044462900060676402687902638777076760780743081821045999315097834925832538282056907914124369099628707196897102396267901850145045319864596404584335391099775932853986809905676730447877140754632294427725198918418488454279328447577967683036330089630944530487760598533379829284740226493245688629584351072651232400348381665492258531525752342160576305011137538687287779235698377727533674758576447941516655659984739025094285189985801058560152596791404978272539195751581150146589675975494530178319497612795224557015028889763972815914853256987255341214776087133070331260634111052026296450723305825251921472079675721466165613784086323975840555411744722505652922274565902039876698964907614074626474114244823091901022290073770453388180488700034995924220021542264720929836602784576138623643111605529125049229316221629640114940878404885222253096729869527103944669688361509590958016343185699093221126242090779653192758439041057783588270723108139383992306720326959946185308085717427031306853297782938215714212673268742297543776879276074249104461044153126197973082175432897758125600485181439040275927931150190078624069917484044733516042127691822289175150860317515752508470855735263898050302629798048849206364758466657687776964994426571915569137468307030458275414540136417182991096197521843825331439884748301940384528677929704337401058931597276546740067103860296622400258807429781761099668592618044191996786107379273615673203635376449358123445960595056547150633147117435881090387728744250715640561358840351753522113599314504970916793690236722395816097515201777271883453075430131161421143359015237410812151351655240232457208998361502389680271953402263657738942974189491591506290293780594171905647697153664850252996179686987266262309097464054212180495015347200312257901257657086315675277984221519950070417732360659598988016361239865119086008298215347533316207113662458733128705057031767320544301708596039358494979405345501620597371769287451679685302951360759855267369579128386939646376511494510418039987843390209300549860644155235834288479621011258447497992992319083690781708012079595247212254400320884786731056329942713202399198556496018174506797780819465838976617345633610026906114957811460470804574749719531300494682846444766092997741194018863290626102730740517854044889159881125132965818303124919382855572204814375119098781250035998788979605418278397968470953356783836027301065778100875531310985304892695650434542835612408530381138571898892762134986587553579366500727705867078516222799119936007854443749756662649788567098292672518735181059175866279971785477708697734765457381260351467913944181681501146157224788224169111455420665436561394200660587522975605619113272051864087219432649437529294445602205089548927454812012436951170744846997209193357110048750105122643268142740528332153413255632801639445541430184845543913659327500335579091475204205597031515384047553006426542617776757170301078650016035877410123092203455864312600112862351155961227679922290944873615035699098624029067989665737816782193972461000473913800736958146531700053174563891491444300014350745990518716229383279963163323834363508206013153996522425737488346227522135413025907976086280108687182562070271668113901751739222287075413911594619757972191892730087076790890084780557930601503924672889240089873781149287708205595534354625913732960347108005181644616939991483023505946143731629175969972238879771237797876329553968044462205013762737871287987582285717933429540076805334707850181236850955160693525832828706546211666036548361939543969445791000248536262974817101474973193864741982670502160099445345437761777660461164753283479060405096177246226304041783876105109225669353783866287919737870223672236662047915265360636232383449622462279881229856433775168524880717674789908541107632425855650727701292118909735062605806354261347681255306875858930924318387891727316310626371547718075672140436369381804236765829944978935903565012095389431136126877043036716287466305418910762551024810060468602897757035061997083549635787728668151926469415652055716941590302733905911836925667663857502649785818585611321023129280096974341341225232398864018828177375969784623319848394271635021349468535358755350951330448663560740424626854401087453565964005754305798248223514351348010306099931952885638854266012659781111613754243858164679700210911153735513690744149639973742204309909640848115925879503965266868928107764433589252734132231351709028515931718951070638731088338151373576969840957305851529852486433607512349288737721371947378783346725584337513019171781714426335163738848490784125326635214681701766804978863454530972558762076766812800607563868317044904815030477499257403244481839279597953244784920749155590602705708015072872715624427925839100258124991235960721181842398433825837361659967606004555718028443040752679124980991211270721596973171495445302740340405783259851491378402680553691082892064794759897440834595436498891095537261110129752616716638653011672056447777218496393481768299167388682410260725293851107487756401483508231336492313578557858466531829853692445438839451314663624630468832044606218944148327496593208870318750832710433659847611033080485214977326509055004926576387446323806481430996254490629301345276374986533422187014788353726647691880319176524513610079578910301764058772744693410773464099550097374225207577100545207809632164948583574927662432088198994996099951444964631444741311461149931920323923887265234310639564699635650676978722507777105779192018257518415314104304124034236383595524160139280218501798280843778457568823392318275472316921986642620490223707715743073457706167517618662526224747316114182186941697587198164220188770006832027671827038771242037112623154164217417893396236648731389568120076924977443211108701415766320388941990674859556942404298443986005245169959499373029511382717073347305321085117418394097601651292533811169434344489262890823188628320160651422178343156950228089950176421697432729166524598938898571965422432051422359703721931037433095146145754149664878704965029740166885953546318786341904838758918303986197520814899698850004440270127135898006343810519569595207882608356882955432734297402047914306657976966956590448659428479897225728429427541713959799901080982292580826108198252616006383151038382287160046537997592403002689490930169887957895751388450378575160525465606361842514544983505143313149078896594483644541037286010309766136094174161025878578771872110932072214070694362457678809853808352736006314386786004984403310199115673504869154271871613326301981309587171285093433664262396411363667461773583073628549700465664429087861500166662528219548794147784111909717781728757977636209080180699395591038677504964162045200468598225137381320849138717456030487455394319031992054606803561625748147786793669186134652376472108054920447210626289044918332217600656901291292967079173987534827615769074749582560745850680581447658840495337967915188246652823225716580853501123333987018103017309882521554614802698806306706532802762455704283650732699245247146687442956368022495311892387045554045151921983895453552341345071561086745862512350302421994941154921659926631558429775850657088543760971394755004452060736287463796977429060583952545120354973790145744320052029229162199519397628512741240066454005114423223659854870194167711164837489849792035556724725464484938382120693419608224120130211902723187627921971383597547920739504879129351286664762887859199513096368270530419513376475497696630275715064069268299502369380211814886005062580640484147167056183970888591582900627700715529644129586361870004057040372007229439859001654587300825570130771118259914101353767381969088167096232200961490009021868129119240301641289759255033298922863408456629662848536206832724199183069193595831867248673148083295689545510017069281945431941236135739777413855603653188188466299290737217977252226994296594876683481607704739705515797503523048612447004837579090499563858193110400544533059985383358118837811082301086932503429530622319474419611687556637291449899336031060948738047983090329571060571476638447604053399326781587347012105806466313185803585009204586389047927471112208781602990580225264232212936270917199649512784745122933992203608981197289245988377045852741090164896862840748882270654967731109295640918604810262020124502343979942712990980526004289911985405728829053833692526021050706909106887594921647749113279161610603977423798218277918601882049724990937317270274832533180002434675641001967438815551692321399998325435433850371508155728443100311332268202365717742511760654782270955157518987625421341992154384766033913193433532836277764796594915843761700318449430953607884813387162266480368591245842141722852988792844318738472819267533376817146613833155033913061986639699621943416803225958748079434988777245450991039697743113202038357078081130459077563695336698336881499752207861353943068779692133676735597366508161865478072771998868481934115931421837083845785272786636869834098266320989321059356187285105414602097041610109730771858225139347403004583825687691848179821849720444940078709193392320198939137531006788568590707928644410252629555423276369543395224732324169486104904205116840951058654612894111306133611984161697981653204993405702975009638531396221282665832083919956808040496928126264104732463073998013259334054356958425084746087526817382022604235937716197613898356754753997793573902710489438166045873034192351033252207309670378639204715243381772762912114112293023238056434308612558504260660575719841218190430796964730101732169625896836146992433256547068953273485781888996683518726336650338864947223558435902703505573678088127544404073836290604741248737686169588945944326853773743182098053971460507926812366551568874238516148112869690144437431233413998428479991877634171644496009188149360260730768798074329238838554277573798967580416947733668493461978785711183261777177974673613470704973535715220894493161228485873952661532672635243732817261913569196668156661685957596133870298223848192391312142026722548401873084434270485389254148469093793664356348688113907609796512549006355662364002395787794581528950100587653618821270380211284113163366632907990940057678871194196708022486641800655667733073524727321593601364182125040308287801880297805658467792552765135401795960213845167250568582067723337555249199638036494464061198462207602615988677400086881235647413610001183265618394055884976647471599528773973477402147277098158410819634108122939150541944643183871202825014327624281976513602370443865001960533740149168907981106016485015676976560527555749300700400703585465290741635304785698495315778087168468882642240704739010106334696339257170512458036010949092669782893890148101066287903201400952386239413372856377670487868529096156988544469757392701025263181097726601899849045027710070249569955480803594862438810401769888985082467049324925617682474704677724619207388735418149656926329136057912911349506215799244176013207121957639330207768345675982661886135656074522943426282791814874131744848778864526383876921628309781604989462306626890312253315955116082096570644745169451618066351010858488137100392563368305935554071564354719456803255860919858896664764732776590181627898411872481099536099859610238694616298929081269394623260961295308143004387344766110167177206304411899190840297163739236835451580307600098765277044505853387592672826885452543856440518363297126683595659165271218463546548490590307852711260775851163860797041301617765795342187433824529404199263551425069447186125611640479255297359814886909277904212722099233597182986626707332737241045687452247496094887272036758462388417958606216842822095100399508010590785926016360943831523990778421568650460025859379227878543095804491177796393346489882080533330314040997212718196456929904818184656866536386144197275034135260277615728834205744727968000648658536503597148251474731673839531775576993401735951021920914100811347742944202518204896362541002541044027819865673243149110885457949030926894268581822993665849815489926491449968130061092842040129641209356088385425974618991070911071262465258015462775121257588759559597338298503141487256190385959750339677172532139280115186998316000896371712931003181044401123814234000796001819652503735070640518812858096513899590780983037157241945859499892237932782883349466517583094404097755453994827355557993473541129295289484661763762943415416180839342523281452636438266960737107643889728979509306874471214453122823134002642654322090201534845130442285723038415870386188699072101247183499266077934500567335080063249135724936179220072646526947376462593376055025180407726829156840828270338314267513963686644499040162372130846689388525895142348136538484117886924056299299468849732642373818515260076219809217458755531106799158484231760456566440961746356473972204816237143785932539599674487063365250432376119073122667467778689399269337006464289101322285668615130990570935044624254632410790431292471052151112364360165401536447667173567798367727783142686956169849926178854380273837854693540512923052082949723625770103652809477856721124832394764941239407674752226682999516235668127110644818462666692958136419827341908126407181494067488901829947656137173704586646269867042093112665691521154500981508116385394311911625533969987511751392580868001725760292009410922336682680523680260192330207428943384259238577197105668470949998086726820988464972657620763521739165794048537239801117331490297457491875093014344681003259711829288886242044868137262452923718716208873399275910103970418335868440151211811323230414213439103407727670227755221435291288463009146247783454412235195961983930221500625094607992920552090457194908797854499477656076234514160447671745244362653421177517638284716684630959893726683609125693522378504548868024531101803496713190518499071103042833281895215097641268669660747916831973884955727937132428604706131272816772680693779989588537114242108842712749401388546630320219932873935325980504268638850953201400377100490297525014682482364572034341939737114159723060072477770444941557402851863393647356414494677976748929277762356559112003065870570588799137814550424009626843467149768121750745492503091045692733072033788079099061315585520582350638796007361935123347550295548506084790251994449269473753033358759847144819802159032581961958005543023167408935720784052273240618851170342379803538010743427387130598493926184499951526986136652875498191415427844155333954471509324746167030817422869691445375294768220771877124710981021836870839021631179547203025112867056053031098099957953366477272462769453849561508862064518730218283714894690057150692458204898610345503181361792250227658125967743678592601399087108001027983972052445438149879670688882225796563783726465854880363588106245098599455622020960273730366879266502340234988388071673596550134746541662540820219674851722582822917568823360626121955518668294137843570880010915817842306264658508388540833006906263858854586390868359638775700103569824293451533746870489147214210955198674116947154012610157665991943558965860185699108758190570882319449065992825571865609932029604504927699705617150649502588533750925166658601549886122072085933889362439008417353754991299567172609133274461877689242904146570812273329191877750767857709415053714758305724269516319280731270845443422757635491854464929890741010666702289701948485457095081614962027147466905213607078753212528387336542513209426853723360943182046140334771816984649936804659347412680371369032630520338207488243938629637489145620232751486228125295752058876056826129183812212260350752710449019801454537933985327048456398113633638259843340799187420508103062933078639029685777295304382169013301985409397823818492520330237145266437193462782984006566583975410078380594021978817006460784683621168060441670075369193480702019302987173622108683932912260321876223013197982229725303090980026637177674627000828233245615766025293682126510072866605754722907223728022777250885998805427090039343843592055525137514138322520015425531528585032988848579009562452889103730479974347563516838226826914156253153218181220828825584354981688768267258467654829745833153791792387506495837669774978499313354811702645850129935552081941659652514250190157986256018590396102193574072516468210255625321367241342690833809478854583000944453555035376735761638659160872016075286599264272142136976454708044589507644427442059450887447652540531580121261532104229156728906237770888695548299427251310333284027469013649884504022454328926624181675732312020208653145569905688489326526866017962360473583457214728849417956587465580423384319566180016917866222448617816777518152042563139832360505973776104136811391922609670675426810265906155333406291944147201228690440271434842649876243041316627198196174417348705239932471592547022324657436348403377946674671903658595162472910424421830087519123905220149650873225879058297980728160137974545154977933132740664537386113772891129729159606557328367419872957130109817249846325332258467112705903398429465290327399274286384141372084497412286927900221682709667279015908361966421815544964119079654434910293191707573611315998212735358027622040715056029404444150590191099008161086472127151068626367812068115145855799377988855682713924497207545198814658565092017106873229713353258862920400436923923482831484998157444772844504814467338336907570360592667143804076710462805107993036199904181644493208337918324995050045846930072034456758083530879108090669054516287947610991667090970099331696411493772020663702729011087361931611924162339692086658219891922936296340319041144296917909465084271906814939655543556277172868776692786472256265384572902993930280667036581121680125409589816408035043441977800865348858345863991846376741340730493160266609600161239371490956381376215396430543189603544771836779021300818701650307786363742490057814177431802576193794956776956248426123649727888688980359958737210382180464278509130470752741337247981902200041022014529102225043392120767240346570556006094886749482988213579855561769723797279964875313908868882292053575483628140268647318840158640792096398421517785900309296129490263917722515703642819644955026920723690753243088536282603288092957453793625423966006956981734207535647495365801149212637705973692205385189863284656998787234855028883653486728773489782535899126095902218482995926221625910237528562758826780840736348070891756601026367129901571846243891165275449478557343124226415251441854050732006201682891096838051387008120821273293831125687163842350389110656294457476732390602422033391155356546575667265050315565636859804510910561003183365969345383102802041601221411800221594362893787227056089096043878739336340700464254259203097510461712652394668367315208759376792270449320493457710983970762370273011838339791843432449187829124964088411658441308905998754938927775500746677421648645704136272310381723311214822408819250893228807397977271677009276762963667409965768606532507706730263306293052964130202846369008271358891588874196799763470874301685447828962712344104190689567751471682736092578239336562647200986047991488692952054592688385611738510366485375963746267766745962694022009748290013575996929501041079473715210667198910049881858231482800993826120069070466137681149680950434807782689948249127765723415212970064573800350380295276387832044410547473068640962887078692331674312523970778022080658885643405818287983918189011117440732161973650396075835279672690758686405787537904162017772126693236001821327779341873647323537336756058532292542041646997998790335220676395574971467812226977697894821528512058355090918680695903152568047784156253638376118914701266040451806057780024416550359535425868314411431404226888958090384788543601898801296634485129992136611565617442548076043111582176542332441806796763867132046412950981320665332952945662743845200777852605252600708546014162799755416338581218999592735446430272473007629988514664590650985730231346153060027680406524889687050118870796082986211461121917726633806528741206433473665390202030333619767055335356557061740115073168241875622167892698799382315124939569922463020456574398588949556222964666147583035456537055243684800523690405144841173614369717131771828727844213093428564255069160517467963652465989104296350472211027992715713284010241265455753307054786895316749637777083870935694692081160275207433437691767903197894781006498231708014842573849333889613977963156764171022826365252245140930523129593241161809912921195634223687323985164321389272844206427033923422887072791916680308507000911525048094469650127869675933650119134926736199448080314984125978505668174696964808811635446827653612701447147098657659376706797606916551423857360521563907485322947374128914062850972843184200716530285222915192798840035665631088652732011714586340263856595341253912993256457647829063790184776830572770977901958605805873853996941126684862656850906967759122119358229371205210986275062160799233262578604695491280151710768557167314512235716731346705381411074675059216707594364765363855796062138839053890984262917667800674214264768919806821963750591660031591278895026978667390604211358763019980435846371674591219562256478174568610185194119133127476091593996309930182974645822544873837553459376682086691223116359452722979388152983557782210605195565632416399299181565094715433420687765336704612957568813414018160462683270311730896245930485077942726248201438516932824672870297503240692672687057587969375252453528723382863896375196679453125616989552651030305162646718477950002845547072248603906696384364950306776018587346354904106748062251538978993915129495950237173113880005067048392546083024063154518532991785824339534054293140793339291816160526329383221737834509692484860130236183456054945395368928107562999901901781497355919833883428459635622349843134222465854261196058414994899139068033521458557058861394752201633644751584157446649669917056900425663812337881240499259774010336804653328162763930212807833845294898636228943371400954239360324777461460318559214993321637205551981492670322174638658571708328148532208243291694642741016204511857403338095948000929985065040171055834789449176135949715234799042968053439694605855589638763530697381815603446051685116982285397708308549918365845367799023427623240511239733898881027998984784469116633663750106023005160754583933272387608760256089719011467127053934619281297314911334919719042663016719493668444720878279160379571319134240873805322402681206447270421591548076516055681312988565757201553708941038766408943765875899669635856648992405717835140592312959407780185123382609587253153972548200388217667604545005481832858172269040382560507674432601365287772606454549832702570397000174452017662415683935897325071316946205320184831237910251613756575720499074218547156075293308807438994889303847948567396243997211060357381539785688374584416920659098261096323410712413928641627854306003113533267318417012965292200516655837139467506002323385386488472957932528514735920423735081017628984898068108570795730151720324887807341290367074012398439124435093003267311313498686306749824376397956461148683545891726791190019839812283443029583028025267283213955189575034470706939825062311536653081004728349762882011732067410459747113488945411558966820991343284213900924313566273329185288158306357302264759492151112531316465896553672207312324848515165543023332606510241757617049614985508267998357865310265908599060233266749703020516957517140167656734297333534819938156743118189086122205012637709330578153270283697258436382475135425590770093599511502823872760382464950323983494004714230405821029746160368954479075216668441500161944025882809888437110966553940167971689076946828520730847211157004761612358255150379874047326418885701146100473473272182609015338934826456274819048834122148834138962615351709379322793288490326989492507781208979730252324143891744497377451823727687096377016388670561533929559216451067667468132620995485428520368920496985892007010513965799219594002856565989054764509549429535345651834403485800252985149170587211312874622438081655241673539663663447742660010206226061820995385199347899850595117738508171695364103929952349606430911948224019977247697794205268693255975432686334553544140273079380900915192266851368765316299905192768001837066461705288795609456072941157039169493671245903482988625785556817890502079410196769414821115437798897321632925525204918427177835664425715332030487098796976613524608028490630402180363644964158576032797032583883310034691627125640498626591663194626758169566590778114179225774654655792525301798397275063170257658344014694487621001428297744976868322583346803039512162849557659595847122089327760777446930318124121836945938396475699429612591067891366301226577370706942640516081996595009781180087461811958222555352521481854489845215078525096436937243156841932731238295397446347166127272790610471435323520156342927675729951894966382708023425178977957686592037815605823869830447895595129908074140484755125527312557843656058552562081138376728149174768489726302196357551817196347102915826382996545134739122184452679915501336004261954109189707756275294928991559705938113626903433652632393690551095770384365998793353973462655918600603105593560167722788861469858382357976318657268866574384402204692688113538366892505007039028984151831385393047625951752525359221151226399614519470082884440145907668490741716456920959662707119175240279122434644140294759172820001040842465814394219166150462898213841033948497328046467173763942423452307477285979865241879067128162536236440386009807595771185757608351585466722400510442672063238182324497416986223931475094087539705602099702837179744822409910809510769687386890306570228899113741089261352260456123206876169783032436433186952877024840406740706136685728417492786599425051620868975674235459601978835998994854665278869739421428712266123695033842674561931994412936206224897127182227200966145015451172475339078031332038329056499328116464077899760348974924985480482390721141793443897873153830755619231128010526691911989591837363563992089504930933543224725023575653164447344250153768771851309501769284454891844214330854074801481883050864890967439455102780557608052623927872869697565611351699292283994376617835158277596969069888180729765172163465732446577363888503829332727145090018964086138752338544127685443122495051456415788792256187450148357423938917082046925040650959360092949033977120926677231060939152561423603730479508397288830449556843679974667928349130349076720341311861828666529368256802858441695425659557369041772785522142598602106600195832048462806216087606958070617500664057183773129628982037269037507853984783735852947369006644245736704226954541900372045425613766191012923439481703707518079057522040289930976567756421833150150870472793008017555669255391620565731677799585626178232505814413891185655810147387228966678905117556284573636571165226642313025077700233116855193653963059673221723480717978387503064570741939091334461450120565344069611907826760280986103578022514552481611637084231843030795314008085693993546405039368415210777563438568869121404899156336550171575726768759975904303339700224357349261925128657135112765387367699804331000080366375494136888687485476391774683141117608425114495584659844535181101664958654630266706155070782086644555292550990853818991609481363505918505646932582713972472301596925083894391722834610220723480274396305056070159917710832126200715300310428477986490436877668384198737042863936230773798787612525938047283411880387132301760279662671516595556574455157790404455557489023559057920152586162642334473031212859668317230081180127873886125965176876016463580535737648805314657305702363010857580667909643380699389669455363385177625564490696521067603349274852542897343677271187593118052321757835330832090424399415330818852810882735360060451453098348130204486651751720322583615490521676164611515459677272504594395337691686487565668879888635738229313947686740336927577771932480165318085559995985539323279528696563590997822839570312684739671668193254889659730030766775094896637191512020055578951852437085596862154922849989370832570172032797127280583564712442522541318108828496138915734203782747152069014856633391642507126930624903949038043038869484734763014046934500624859459499855512764233828414953645205013667832052094432042621627390104161200507801477700949769731856152003953568975261087060327640768608491062544363289122454776057302900866715908751268240678675898470118371775332972151649874481859805610318994129355661684243853794026723791500960442360735140033902098885052564796848579702260891104874760620178656345227772215360030669391184976099321499276158282925617826176703895930210571912632295392374783554840338400141578655810427552730726468126890657336975530460040695512978525735405635573882024158734001105524518325516551299477034077091238368229993530719427789108408670454782196987870580322236228923477383315341208424661635979826378131864304203339323531063820919395514065277355641440680226140273248375443154210896901803320391577437332491953251945222592826605514465685759243034431521022761428655867100111738974746150348562250150743941302601412446055710419465357237731902956177662377052522241432469272382923344879645320816617206735636588562196974343113319378495892991787102864508441216253869103753112618713877014616929724054273841266330745638440856624457539758034277937308520170151515987984009347849609833122291127509471975972371944125451302399592627406664478598442335681970933126214680450794801389418225373429165980798976108856298333882552255318828443664723851558779979181239839528207392433297162249526711795513386214788042995206543158129282183298368332276750430490015685102277774470806630676311906566428435260393274463142211025892406521416006791421915962046480462685829806245486104496311311996054805899502316631218800731303202571268535592642288210333615475781951486688187013973568616520959655624294903353632341061507429538070028440166258358188450746109811464964641926778147850094394579343184040867528317527217136080429447971310608877123091654108051066942517554898440729369317014612703726537571355309231610415095458242196483670771041639094727921379749479038766134490758905020937022648456485995162716917996677559954587870073209886432175016469095119757547220239270087478026094007259072010559997778002427658789618378865042994966070330722390427451886898903113943847017949281640002362858477639533453558514061037986313814067416821250897964404177781428280837932162772850521553082142990135287560463512703724020821590599768559001110197386591051673414706932120906926465437414749389968373513092389148882278404945004583297177196575544570076089903981372587928498124011419625730204733803944293364129548588379907638366162917816023424549585228928308500522180536537423104579722295488207415371543593914636903107237931375408994932638314660690201080864929732245222491223010567799229423165621915060024624447792241211979537268776959807676209929195834343057054093810271452767893010412479715516241463924322088943907034071337956984597836581249667954832375521470692648563471113265425998527920949455333799776364595761328353432192345350198613311462014005110785493308192285703987411946902255596348302172132076538428451805957323063811429955772054198384974209379187130460840607798075755906859095468905745295626049133976249245363369518974142718730819943476299680532191629422963308935993712180406507430284501310432579956568146547176671684463301776872628882041116470905631837120773244020052711621374909598324977053544299601944880494107950074539212488495993410759422383363212045911254214716668991761212376641505502401621346586186790062248996473754368298046465994874594698539664579217253180167921080343228349141368753531036029214305665384632381526071350223456697739554053791108802433534158751927205979170297276419029874712835054504620722706521005791500573204463827410621045732857547718827737474191727830993549836220259379505250898618946346510151733179279725333207886863137281114918168953293817134531022677867824481179836206496739425793505099539057791787340527752699528367795978766245965047593611138857407114040921566552101202941965279169650965195556882600666479242292289509043781214584896650139533691907285814858691120625043279039881168000440610403312665144259555997516636131064830910787516169992474277893832323806006181965318470057392094746429279375963970275492046570404861078966241706916839431541814358765710024067227292444152888530328151103194711684581135451326632799276853920858423164416668705135286085937919266620415302249278555313323684315560893366878940574950296908756773985734582943981420425004124639144074285794857741817508699306628462562442427350394911156244127657177868309758893769696887888050049540123928726656456033435083640296163866798927067015263728575721654882855590145220861876827483745943706062959545814790779201911921951906612283828399379720800476848982249890156080859656567666519797186096213932543991148932239010132752243735595020164308880985007229538508450851553154502445270105760069280977506481485095478577970805766979341878108062337309359151539829913856635691727131342604285201016616402615148673250173682551833668148276785095117722492826534928299054542732268324188448063137307088118829953280939970478012791313364133803952331522868095684228688552980226754486041839993146226789331121535666290930671583729705791669432331745307543971451155176765708038582847090288539844182325965048689428940362153006058899705726157255972690320927341981347036384598692530503700793650614316531453363365347988747699159794617429078414322842712397921648206219649025259939554514017619310720266569239028289825140432992309629479938848376122824725757246266286632733085871369900095146772861758074091449110985504060835347197788754621488091320598766612731903995043937468078342160735240267773830109120818068310534352169917635013513013991467168653350678827282702204573931482862220056838315483045295931151805056206296664272237750568697731213736223275856113445467100573072597950362813443271913758417731920593566592300326755397588133320431059613090364690468738826546200013309874469300995657669398115163513295205219681129504121600795930339418929546571931477061335151353162134711369709366966492521112382006424537426005793727760845805794104410256310966173953530215106369379569145328227605569102830922428022142150895109731971358774028769006370397060580109936517580353976971544066177173858788879092286022624933868551392888404718145461606836719171102486621522839378632110707999194156528271836266045349510942353640697671699353546271049880739282513934924123894661719009125527024074594938690595423590835805199699970053374574221054799279390447853743282270602367389260774107538938467236616478611068012192390370749340908230239166390072077343371761101160514123794092872443862051090275542533372001862746688261450438819328235577203231946010097050555475543858354431913659865801152816916162268291482215183013519668885873286083666779583232267750403203048928397945696012120143496922970776050470206874959955673434088712229606132377964022652309427869753044528589203488471608116872769235015206967737148837233730278946765906807924198848863017586871247814211028845492565659027969271898303108475113398996363430826681968409141103040986671180875834780995954438335695411941334692557564755430870861737371667191479721966076241033651164397764045916111140994032421891987061942845563508448665295670399671987149475817826511879220086599058148532571775711475517187402449360906435460831402558122989111508563611971442620257415896347970953366046334937960645958575120426317520607781388629323643984055993135403629050644804374551716193983956734066783671008883719894734082095168071149373700305149827743377362596173243869992392115548588648286548891779215128907481953070441066726284927841420739709304037386198033602202941454097228383972296037423088135489867529011747270275172026812824443499369654259372106638635661572141471905250321560954252436368412827977656964422700303157387054909605485037345831044290948788174399438914742123403331256894501390109965884910002693655965934839676033880884104711838449054760005180667139770276875092111372585130477248156011991015818705955299134215065660442837954798008353325005748093679006579399905217637782844791653214236088052295747016939074098708866558614276046793962556828238775626121904671217090307845558073362448832387646319223727873192113429601878498717593857444226727228242836133889821025881298960843141169774041117319868526702744460325822363807806758277031967367467865627976756133093701269263283415297447569700875319166585380319003269470617390000121615783099404075696342787635375460515727875903943079645975430167278328879887713878150315533235856794091458928405589432658124461373612252020085788670885938336823211653674258542453855292741533169671137694607177222693931928749306414026416933282210261076147374229173648933276911407218252664718997758329136928156342215997743132418073043150023047019772842726635240875237062060206200087947339094401399964929657993414931350223613656460935754900351476899650508070809584292927432143935201867389990000572381234363007482324429299402495373984612054600565614225085395067072040994416508366987581696517022842953514587599940002950483157828300682539229618042332124455018537151620400780550131540073936222878617516072330654383790684876571730755763089661631389438883401521663844903741603882586307330859913631004064348145519965152717827004878313199010602124726260849457848298027254782805974606565181039534716672958418683400499634940274914211990682488749066018488226522797524132249159427718654779122677523806499652962700307030884234725497100162016657492681395300637963483634331979186583993210446701777753892858072898188324833236761588746532068463415955028420665754715348842751065339819186321857851371785782094982222284359570536771293765183636809434944059318474200758258095499996461738214160687315911110275455208773400175373373758864169248806859976225698815254097566939305445847034282325873858022505836521827512649518742965662711398760932223090405324236585470730989198223150677232237517174116083308485982900973037787115410881831690910357934158537605305607297622498101023697517898443811740061014185488114385075299560686395545163391634309333173592461557742447462439327359215305440205559033142202987329729203465664079927532875527751490343539582938201831341814371336908879217867079583738521725577669297104860302472101549151954914603941262691610133556853750115144383544766930921168322177732809173541663809989640562642218083330106543364088960946390963008891976783059254922139216773409452924996662537796221276511977365694875942418681674548286188604140842650778791919518459915061359062928571979420073283197921881742739814635556327804078371763154987636421572376830331993727874600202439582173328519602759893364312727398595103362035597160496982112177989566027493672051769315532398997465227207118958869395705089340638580151507762263003571301965891080516448816240002002308656383613336337176853583659610910955465277973670535647085740894840516765195401393996685125700381636655559488425062723979869024383422234503997634503979658013562606061607360889267349161143866156355900258256043020347359638511377305001912895545273614626682961609268761125516497283422819990434598962402765680274872170204067476553679179258614118450609271857893200159001845076083629867609242525943293425481709095959561065792969476199793185554686223980474180085811554528954884371778711526487802393885212376399752410073457450194565404572689173983247243444095332835394020994570201150692604932475048749073709420530219729883128400614847317622582602246954940506254753219675577390208025623253341599733087189231241666525705230851372502167032475138685141720724128674462824805066402247116127405088707253311793448609199176431928021213008980753737113063933372898754905780477292900540088061341880103730599964048657303946792959100769915430498231167648228858023546777095136561682115772977244031623334006988888320714894805447236184320197388563600486875140619569560909370593508848068391225818373579895764991947354065403416582613448885240686324770753287615467838751451265590178676184951854772618501209172253381190392044839382935067702630175926189818838140676805297773986794429030661066484951819721890568812752084770319332033480207813481120217228012696154641454627026975092695578816958726209233192084296886439823100840923213802381094735539914540263743384634624708290352732975722699889270393953894226936018656685727846823512435263055616889449511854006457541280039947970642172050724403639439780168293909351217759478631195154656465284660459749022878145587639530128915265911205477013307947877505082726210016054089884937693649370434721341177085911870851224082024805814126136911564650688388480271974466341693014243061056112383123837085342024307516826575848052833458074320883768163516908340218394693631942806142657325435925015657578770709353152723370436498813170694767410208878893223522109062508506158552031167229396750070269603950234557685021023833170502204009137115952515221258288832906475172704666713704522012611323098126030284358370460762392677197014186846605162144785429100145487445886622085537991551260532896222215639334818412965648730599579531541270281721752943415144078908246037792582551948683434524179787646452606284203407346084001535203995521763723610833333944698718045557498671938541728851609496336232332767484510894068758991408659918533558677594768691303343900873696647806761172656868220398441349158370905911694340828108233922875257934320632520220372752428041048958382643631585873875517360785678495714741169475579367928570556101658159594157319483235639634109916425131676256955507290029652068082262675221085165187880592003553778642681698576490766755887698186715533679248574607472357790135128282083451750567885294533551687696896307462813304739613010451577421275972404741702880922139254238172303316395741697255393194491375166557176295205395821656845139780673458912961797249967417610851793760362778151124279746182112743026128244099216618192766100165803815803750433243991686306307807838756656729702629362675713399941148409539922527501294265200053144844766262164120143919468783035970825299397794103097187733167866902159456722340948656180558735704336644426812179108747958533004329552521296599110680881063220681586780990918125252892125970661591457678250124749478129536009918557206875518464894709866254028803537210630319040869614365471801446748715097105658603158206199910686173018044017608308612981859499219238550476557188767664383194518692035614907772548867032307863476547127323791637508292918817497312707398488037823678700223520463470732180799311780670217309375779941299991973138112907521410473697407868570255617581334361743644573596022560761568971496596375535831918233907829097912497074834204023821061484541871694252733294683138067494594060591822808953292563372633275264850242105545689529000054805327306815604617985548331172036909280897678304125565221802295871177336866101965476700269150014512934028968875490422922416119423637614246805895091565636208104292289637938717719986668895952983232782281513780267928918310237871408485406470809382297520709799181309245705360364411835613607695537118297553898038887972044981840632277827665470168994284038308832495996278712762976420513878933935579247896151846147263691608706460320543357473799007010810086236862776845254486951218462573410469716490191048160119088217400488116351984994159667731059640918957814906348985387831525116672983519195587545587371169363039701366474682278967700871234944823545851037455324667846019198438038013464800270042325306490669066221331156485266174869184434867864526488536684290279291726949663121707039587330037159259702047500559995900249769754508781784868572455449023604938444269515664151952557646784460949249900895378540100929820463882245536943335799203152563235289893745152384305439554414507616087239758001097892448365862235001789193755014533329080810030269985936310256478946646778697636138707817443493876249239835826940013842325804367090462010158981895686570532769541352665293249874005381429959845875388459733210562171133328846027134014004956191466694373734832942112666272313590494661695668233121186814863977037651675280624834807136604862008537856816283077682165567056515255285525234917319672801465866411060717836481006878462579824665726425115010027704144566178786994223964102578398698470790736347705006243217494467252061046427304903837604815608072079211028953256478090265842415921467097692544872558821141608061166883703190356879187042891660792652282694603749063676116219505899050546345700875686106323852078114170626845721179507173964377875787784578316573813912568668208156696986899380447890328824219856680806366784892100460824849890858114549519086809364399116421736611281800175960494977769083721107197612651158184733620123348500925052118841759034198300548134977333909251569913373224494434251550940215108991608063862070931275540381249586795358392025087761302084249741709882997033483951784964684661266071237069349274020487996861578954701901868515436826114465412663327379504215639240491307000732368106061820981434597652686439959928824696086808377061078237408196537708405356977888764955662393162922058077416428732060044881198326458205901058558668650108771002324374646306588263995930389759243417107797842512501718118106846640795725960712783255444659670332371209295934539024315679294040107001235928650795686453194301530720411580424194588732101119885711864924013081972054071878123659385234979123863820548628453225685603693380390314030925174898107317586302810444046680572519693667124649764909341670802722791385103577318560217885264638730864526215379396244279490567224874579203932505485370017698650334210390604828002178092398698716120607243696660299813128508110552128449335492161489353662255661204994618393175210339968969503532763338721893181264757586037559355248136412706544520206996745193902071102444469165896134534682925515328615272318786412704745828881937553740662837514241898302531613608161103363187849223678948964196479825775502541225194791074086277855006286932723457693274074151078559910749302137672186704224458130194960785616766691395629318646107234708621725633693840885047957387678445630017443028082506123248605184354191868573035366170423965153070327986642548650075086341844321110180714093206220087808044358866637839361597129606972592904521566290166247046999704588689043849463896453880533855824874344565024108301881807297271847741660927994898297135390137899825160275419855338338703586255166809924282491475317012919942751051802426125172680578554758584891303749601818123314398297433528888928838499674656522920880585166728207885454352265174173597437427966622978314916099865151448283568264527927952700147823778311849658066087792832387870179937493769103166663534353011302322787207104036663211767008399079160118659759415049134268700746459314953510951479331927545253023917883496230719757920968072265715208346295245316312714691892175656446523553602795603361789060813477271102769890759024846553137633895172191296586728951624273634725997178022338763264919906492243053050644715334595931885554817878058759863096855742709215394892917908659875119626036363859286180130960996963532261166208422646250579482698638210028870292371572788495161420626505530960920975118768195441481487911073715894750247111516637953295390116253935369026021033247194662433788941005757101105838014245587617786560843102663241762163315707799742989356624317405320994212766135335567977574647798364776217942267849934401867168369019288569939076270321238797605580438519379830422776947541598289894391217960682191645380705214627619006592058506336407121958054062253679701824457576625626052310328838475852546751348972858724178352122250565198890221856160675018121862958396662276968588204483487451199616537870724697686664143979592941777545389871575796522288599100377212134022048377926553921412997270697528307485775958293663540532063197341449825385464094326748700969692654608944930802946825426058624714270320257275662207695911959953839823718240612131512637194210959627311102642300734631375445145833900643565787015253445231887140000371488824418520009449094300811095561458875581192998987311205330110109537112728503713705665391932197092275600204524822223463181291538490360865911862075523733069537933042140995988505922948136813529523473837644121561134950075947079206658968032488274486957371283262444577082839702396046790670744448438275223272567654214234124142623109987262536502075279941884758693354488771483872798962391747982082065372387256072508606215746062560328322900794832221632839082484570678928233137800275796573804798782253854430816208790471017132689240039637986208781956358520803466538571135790191708394436877647983799790136586419080009992495109007150397640528641992199060116511615326959232780415044011710911974899584240092227183668258105631913367941178764050846390699338742956406989944684653442398699806249948087567236850271219563211271372250532090768349796063530938685696289275407858583905627802915928685749541829008359685285387471896380824846149086694840433981721874699612630625845014401945484242830939512244131113995231822271764919043683948752158633616338515132968092890649530316112059758120516879293750132052866563980810581479409003202882749312811119157645970519455158329546210911883528606972961367483911196806489697822411314409304504877964821882225091238457525311511976656601303498493336821354418631950859172968765292415618633244879923828850746816910142401902199427263262698210217863821125423386925403473082853425787614570935033055780977853446014782814563656976691611111579864590614228012402629800068859083148928481103671355489410341858521378586199806313061415230455329847429817624153942400309099768143134753260880782428665639437992525586628869526702909520237644778709541111560084472649255765698051596313642857201537735922778401923453374502274476522788309602630047669550208993146157190816827644025932624748864906363491188989804213342158402720198542288870711308845266525864561693726936266324613329238721159380440907041174855196900805572262891288559830648283491423003143332176267246168319698582433048464317476217121429089088953594815409834048844476676369484172644054744751282303076861177101977833670247147803323450514617895242690678531922618188113350617054915387930055153430875465547332003322073591991183883677041955823522074764750622524776953290905801843843103667998076766802239122716755038674206961800220562730702018931142818009795124737259608073799923960981888879939358146090565197180287411274184880045522351372686230641427089572065588408780924197514482751955162808237531030894881894346430855423887409854529944823403081129485692360155768008214606612531738402334576795111851577694957550248618911694618728833623442835521517802682509084331859623825206406508839013690257767046573145424120141720786018946366603632902474337011792969243000491425121300796216998957968502238161890265704988755503761847333432912542685618967813903341783835518800346190801763753137489920726765149281288511809306364945028038835093851293089640764029232817581096536064186181277914605942728217020005750988510684062614710778023821517716174842050315762281607895446047527519317897947098240436485012331912850211431077781870175681557188457476592699087070191035140130545605076563624913661407100562693740681696100360950714903979311587772455552414082138193646510849877457310944622461833281060563941646992139654537085024665374892595122839006453539688987781455830901034909866355788994764300976896950864782939092800350314067774868445193678611319248402595733073908550103133530783983767928131822561768827848848411073656430621619270064029643674392402273086028481867415568388978193473188425422588327148145955025579272239365101712357850196519295889930906637199301336354420653756548318442252026397561636457524220160564225553983418553587554681865987894436204477355137366251055556526516731324017634332583574673494015130354631560440587273681636770209336874338130751872948959961181315982072357582461022712809489001390009524084399462469412209257142605023875671924160949538509725287134395640968467061585915449751861728241615982630024390531883576920122669785882726448045446666356611693804562944427884767376081901371468600075218441078038214761056951583785204877647699498980868768656097519442512747179769302721085151702701730955420517812404387383322525636540045875470467873091010544212277362141869527830658877404944051396609478015911371928212393378220893704936326193991114503831279350108512528068752492014197828395000350199313142633802678121576358862031339092361625242386959829321819168926976310780281239788487700936255131666719242736647429842613911400568539465978036124692314876919932214668660786170535468046262785572721478474058681944844912983310181864074200412351782204716746657768369808989767907779176624463158367061829384944901747518557481039312455729124838089853567979670762658151288373241829991408040519525527829583675309726038181192228826907428146062428789084325844315036266527680417812557828526148707092864888038385449046616048190569018741401672215235629407201004967661363185339387026195757647459212455692297900800300471042506456378757331382806047878595355000079070232988202321658470130093358438584796401321895417098868833087310134180368098060329225950871615845892351608292491728193582619460504341031080378028724285077926051059434665803829335594815962698510247713690030309872708085973102830951783346313421263120687511956510114111010280151705585558349915336206378170823580068563061949652352613796362733469781766746387732315253771615673082444710627880282983696162987387367704409040919449972580094503592788648614240386457915752816522713214865893848472889423238239668218672745068175180997228513891752917597977152573314529711226722278272818002125951965611699801356034912114346501164910895254678578595067041197481321061470331682219139709160472239099213036691108831510853440500726018575906338328950823677853693922115523508026843629707154673909619940671902678607346664222658291433289462191753404625546435811651102033981936535584030276019971214186889068357752207092575265690688129817797183136223802671591852568860848132831756023789362092890995521477985858926075770234010238635237172900522719030684708318906969915250703349798554190612060998696164574189277087589939797311536086761734910282666029799694732221921573741890210436876392561990129260253104234567029250466013955642040471763375507599741827213616623053845584676038276182399294686761383153143745401441815938016782680131831206599784460308042630721633165303364968783529511426050695385861482325875103484375488905959348440601559138169629222127728099815289220786883563844856370691296490826816358977641282960630583432096276835611051784861952864949942116134413406236187326863649869193911494763857670216950306576277541522590018343189824246670908830026621790444296612635758666789982926938988929282687547554876493510527995262052852868673221527947410382218975238955739245638802697886920339207630201976549824905007426807567035353695173244644707710192444103866941970066730957046915790036726238907262796433718964688227710622905177789542756119944226242757409378294896945152848722477198661713709380582569676248416156976296233650486447590184750802438444049350907109960595461761142249723276120517290338960212503933139688815908719320879211055883449755705041738007163142428471604864003228476704105231087213149716212089860147288986069243056524481468514384239400633030727649684114927695119532083073686423736430533839770177516459375548620400401444378982965430830134328660573643398859816399557875226059201846065501759681878795434213880815403141307455162081383868701991019454766566723862713958580270563066145864912115823305116368667666943063184016007704674363576013494044220638652056461477639818091428316460563043473335938184226721940004899261432621690714812445991864624275149817203424275448053539579085939096041760499632452091733451741754298702118813567579904583924567486215560515318022934395387129768013379697826463060223406100140566738305026692857307271156075514776084807401767275319682301400139018234357991276598396173511142060321560330829124785680808625731073379207003715716660076155892283956787411212275767958681851493848161106990859360683420360020786301196191584004665453688238327530644534628807657385937468996547753781497208673892334177794713066648586742013171988689228709446467769202184237670421061351412180736719865036015137667146423034862411366396200258335023659258012177777499292241655405036073059744733402327847691277545626602231079660496875830504167539180050517324208559748488580670472590326112443903129739236686895022248362915580430044705728882021864913045533154891704859840618309777900196175673794164931835506595017039490174962260041285452449336608444832020763297101663117766890346139421902622703190121479364429467708251255452975883664324422005271248782686186361882848154795108677014196642607879762248466920238380629840836319974934931966047307854078256116878175568252105639522704792017073995389447458250053882177044687307690732074504675040506158172255952654773707497893198783024180543288465235700126439121487803425547347633887475545411677052125439404677655495621932011273161579317450505604676533935853928753851758771513068433275584260257742620170315503836969943669541449842757380558009267130128063227046072839698611823644822927567051824925210457771332903512453375034081344111854775154944780797736504944585504241994417950403409556137039569049609528811607970853364639487299345150320883678605560049169613260451087964718754687988269366263374092002205221815377466962499761160993985668678821654387082320391396028059372202999068396117192413406282015873898148494055498137418183495846765077459858785999212855164185594116536437919006189694478104609312706485881708397035395579649901199047096621856072874277938870945818739231035091252393211523851886558992097811605620236995104427563716479150944954879310299970110542136290045206456618094020940880688765934506997223416972958893158354070790341281633397712353700781545036735230776190311315183908916579631814450382508299382947713044502840355827311882022393186197484135135554034450288588523615793190475048367743869963673302468178486767741815393962937943484621096908221641548275487110986692333502937347294551707610136884927355511925871192144327348678398625455355815424931093031723228053503403703427168792054850726947076047313567308641800671396836839287970846580665634538764370316219760311399491190620407981247977209190261449424110206008428498779753929454430643560920743095551681941286787701546144134478928151089969609020437999855909966229278206358171929477602948045804188955384252303536327405776837915502041003961771471349350030242490510388593200702404372236287449603362411327909403792896600797385322941874250208771043134407037594297948863573532666265197215915837026283712413049764860204981751172149380063368238443336829076620178374701381571951158803498418662138590418001874731267988675916964877007410576091001121494286544809526746126444676009270123676211521720274521642587658838760132000484613931157862529116054413750952097067091157554372811086409360493986157954195960235212125245045425504417863171565959411975683522840245193991266583294221011596767464588412301446263612652586338332657735112706880787354949388964688053897478037197963055865009113246089538317725889452429695979575758251715747941248587480172169756851138186365292818423332481041216190075971330581420926899205075664291161580252972561223571067923356660210910043115541997046119990079447666261215961451678083383698519012872622264928008746931800822457497724572528801633526754641589138943264093664370157806024765428265900868478524407349917219859109372833219733911417769545633832515762840723490540778159394022200270115896155763839733959750531876747811318265158439742771258887352864141227575844872392976058521242043962068834198787872255256646276306012523360969912577514988371391765425407836347866005729789946354087690235960428071098587851587565886017916450463948382385883957738408803031430216652642534572076777782275850501583163002489808648693359049754467046813240429674018717559954295904147129909475092860037904464739347658010240297688689663907251215957316965365455692110310163419714281180728670656351309191521246814490156015059395239359464570747605619744864350510728703647175659873733147404801303992968618611726700189117102566188290982880896297533921756645834957553852302823056067037860558310326937052054189055812511577802739589936916274938145265218409351128553693486384377413576123275904435286980457336266040694982729808965344342981414892087042877320606775801091127804915694054818919650601962123454021794667832674752486876456442509698287254468644978132703964645389181846414412402399976930015011462086193742275293918849790888800257951089402760475795474503514449831008713040897041557780202617146374945725309366596253330470587533402040961583728420836721708447512592816195697644415256152772164718649584264308174705207383521496634195655974184575471265476118282992094274782250720528655263729975962036421368400001775781851849435501622965814037214073339112891545557529534559194440166240887147024821977781303436728321333231833802184438679542624120246902417426511568280558697686262123856893290987774110807531376157762546335278353917513023746666046021121540539314114700549967878450006971096438755323795568588264968290887561584711924794137699314824868843931230431553776703460059931093302658620847469719675921068218358877106519613408660654467566271481464799471611569821541413884666268322069835537631365253693377623840024284814483229821181685749810122686407165476576859643406321190869225611552652160291463355630657216064559908274245630874513204646027062278331991555008812727393810558123587194626071270664646379005163306452911694419313620814900196555722043001676565476828432865170391275411066190863707443650103210658876860087501343958656872057241943776916948504515463176313275889280538617655746540665338726878578998121421346425732298929804057758422618661356467552072222137499236072241244045631647183383762390366837536942356799811228118554330422876871413469225001540884457899140397729847035902765466687882772695126909727916250505021714174191838887593026233993089884371766907496468550571961304478147424449629677987065246484209660161407568015055477057094157563540728369317131517829509107753804085229062346987582536985117430075249643739546301864727551316934634897625882251434212662648898018509565846932248367016214657249215442524461420017146653282970540283378264347025067957986534632756442477969159282336496253456079157321180444402106646984603808871378224180088934468668997747779864965918296164592167305100585823388443258953023654595534886773227586101079318684645505879005532633589724469040788219699938446677183770571263528839394545774631428139861848279743313895228083815710332242812649819020456123909487443514020180526023270499549875538696942486334424068802985438596159371102976451763468963625051744842349350275312035492273368001221736164213003372941053902122682870463332035553828548445972327644780063701304701449742848689895657249791741842531893790262738099598018828078726855732492335705534802910350548682874371435282323377102621935647746146655565893875827906870364486724228460481407932835774930270869381085915992823043556677009099891782664941074507022210349633175050916579627029195358409227200943356430542567737012096603541107292798486406434705491265472238792360806853718004848704129518766220905415446700460930081395910000952164609499377528752994243529462928409703809761791428248568560568707466202661808209022939288051260633255979415645915538579853338860822913247009180106758470223631699419391189122757808111751632590821364334402430974944281449763765136227257889012406570989545292901155400132440484485524055267867987390813498553023581954272377482697811357557723687132586833205890474688122738236286432300827236780116541942783969122348970928350374999757375885562986017785921193503704890789166149258200643752879307986225460875837015923469819821338203543192747702574441294724315449577334558344992869647991373105138339704110255680532038450754786588672425977310373162752036410353769552271610170115069600963681907897028140343557524300028397723872390453178386852850134337231747175374094642699525875385379753577434484309753300075105335859126374729163440194756184492444067692459122715489871909144218393214949190483491474023142565619466063978822744841777449983185673964008000015674837730113155139483751253546151842960765671601805921073023884954226061713043655921730792445890813316829194553397286536129067801767357422552391622737062933120078897835838676723187620656180219488435002243864681920627205706010527844575856872991632060986100858808832063126125970131817163770666418028782262145685963381186927073497103860222327584056953291553295168089016452835774495185517010655477569550898889807352692614896218469009712784680520314934647863434379491923599266932633058473083863955007062725696341485339656711582109941381245212863104667469313744749858085412030950462874029813355458532778289751565787156987231932076108860712255827971346873022207048811519516868059265284181240177156701590982645839090184350041212705281892385432653710178476270126274308636122297277295819600853717965567830460012985090425663365520704872284542177582641461956631419887981781569174176542967559233175973326280047396787941816600612865854069922207132420579079286134597736237635804252346478173375164481675562486566284567251667759579412916713541786700372849412001623512677492185704073251389153978635273645379604410836646452859651665978127369695023565574298167695001508375642552520580245140994225806030857076943598211322603023919878192233534553488635029281864097514066088709924885057706013023748585041879020896663011630154339321287882867596304750464851538829797163994482025820294881600574268449812779191163135667184073133077314273785099627487435680791252521870600630798927321419437005180850659212636896824899971583654726366142134720194981305969847935249093668977102165399634791440281040634410062094796489150169455511154541345732747788549732881340873731321796080443575352779718993286429917637865658006528602568806401337925706587080580395155789496985872339908085682352304493965287777581252496177235798223018801264807028948413592072708018225798788316293727892604832149999765081801511225631644200501114383905004949628782994443610582263307640802305525946797550184531349172311088902813547635469334071004878332136055152563343372635115657261331648478038641976440906434762337408117505340050918183147973454197901063545006653684439023810517515356038549842035974785917061599833654132059185657812748203590301301036186250894304421097587908004240474822721191209673916135025345575747984589324642158027788581748394632438631207145162171504541368652799362921779870958288135475960875584384979665533157070818003447324360005302956971497836460305772526924815089735842707139178070470115041289502884481633556794517535544259240112013245563175775367091253522361464291616857906696132037980814479468847472763706049012404288715892759176716834576441256662445706581844270699603590859373277446010860364810470670240181998100476655479873288495479363591724849496483766944161577785415039005938504574723253806929930522759447628246355412768533155726024694767312563272643900408747944543982221987693338389809728978917864627224944202657754712919578343562949184683467496443748114830230860866269018006209323980395925462632687819598329342371717413531574643151857181876551559057911582378047658159531830975705044568088343291312796814408262853461794512028981428108217581586017374243495175315181014861110662148600511947311370039575328016275259089094161502974110439575384102240026501027894879209853645283475200243099243724881426462320592888026690446795448608957878715772898085780530699218152751515897169405802238198506585188802155186472648080584608362746650191055914870366132817001060341969824568174953205026819567299681381264517684511127005192143778238748970782287485110820701597558835496632501069469534388171184865791197401979891563510552596392635379354081918248104739632377567127874806361614632463067036883746750161659856373820111125913904211922697965962722471913976195060277459337180976324364431396584237927622302785572539684174362766556225295009180941639351498104640511254325191488920386996696501668787705603598749416742261840374063893136163126495174844835562941609939898647878337362235911170865452657633353518285314662133101978480484260750389342302661174907088652296966247615448901017737963639393657659124123697589297789985586580937712063774433646986080028161800258683617272599669796087555882399905354040424413507133271816195612374899017996732519039214936783272342749127453228217331514442791198019751789013190093180895008308158856066426290969903904895103384123982616390367466098853415233039872584874672492913832332390502072619312265503902888959727733396885840411782328553473300833572305815903743729003030446601644307581682449670082887462410530342328344478537212070065084312497041559058147526005654061976857664366378736814011041089090084487849810459459127416503901924082689166951838682422806446995422029855086992620222654975887167459608733354852703576821705849667747853447696940730717805004813508651385448957673415091016841903473390912740292706200220717296018865034383131446019876525942322324485429111445648907528265441207768315954432774142832187749255948150738818974358076627707055723842714470591617430867461980984159297407509822176390704774276354023893722811067189272963856350321032700067542415044049918544097051882878825919862947724216192592311128369334392473403737177421893572671900460384689341268800499544745497001279602753115259144453126905245200540960059822960663819144753388401789490362493982289953777764874669027811372674076696145848317339376389788404955723146060008000559589123545800135306294435452697497838975341809788967513940074966738595372662965470954026315107720689388313088566421732596143879643035108029490475859036170520503986062639897460372267130055270723866245572305545492489429004550284656852395281405077226830880260440163698658855893197867134094293065692038606690595532310977295468762863379108336916313457055026060726616326242990042241988628104491804781690366302937648860310007662323425364919828401788004594754280009030019774354969722675384719859159427774648877251065810692417991141288640082422499166833168336765144533968683450038501175902552221692494147802274437681091273215239678531298603181503506391239651071838808052364906717726029290745211794233852568203367688245894581962911747783219038723856022193313230864797311554019684650625389211109621458779546899179129166786562133048100860651994279267097827419511222271960353282728769047538019609082578737182354238295694386232379961231924404556921543875870998348376352361030371328417597398696813463885307159020784564466280786264961170566406289336323270631817101817877861840676215084393607982528013114379464607500365036170321443033172850787443280079806887694223874924001817220488131645782836430912159352313660422726132191377694812949146923314588197167477605547117165609744474585250689389356066264664589331643918324752245692643724586428521389090428289966066558514087443073741879850449419119689824191009429133065059733302313856997701713307046940375701127169567029697263256198266294771692711461362871360416320012491716490983496446448750305298831243165478519960845685173400846874181059518400115981239097753017812070475872295289222340994025105266568220182838968972718856829168749554341576859806522927759877980731985438777375675670686331194405863003550454190593710023589846801033524099375869804351197464754395290751330895916108479093190818784963376905519383703634963831390318551710747241210580137736184885292477950901249107452096226606144713976787621735579328306296417686646535961661585686982925574980266242334802339573619186084624483077734205682517120744139481215940876855334201252568827703610187408635103775210949485310796403516433531797931659313689329812491305330266006332959538785849263987365847066410161821775390953605282376546841714944450612644192885616165277275790087838803051391147301988033591442922117146377333960384474529584891404890530543560125783259878740015623008426478323684704894259636659198024203532743188063039311585892419264079298686831009432456763014975598381568865133172951787375490773428493620975316713938686426621445952682166441915908936431709504975852820995358191085795259536075921276879979739312187849078696820974217952840039624639047771249354749901872710768992514896489974880166398523421106017864093758426857206788696632454854908284208097908500234989676064130819845824428800216453166491727170917235471769504389399183862790234867029006845288747416631668417133441469064288824165529976661428544447299574527481098881477284419818929279116946616580336367364792972522862683797079818324744234332884203015982939476496973200699414506071806521542140447663007580013850229357542562135963450204909151244214288886890600497399894651717609797659350343284141780088310522219819169943767691399692944695665911633867624994015496006014121055349650901468810504619206699226605900666129340992749801698061497942675541171705922292941336981741794855464486179712610182365881039218699030224087537460015447886280159861920860985746898841030459710672799876161885537676925802791413099783616062320484863147227654604017577811734690372418579316103698277041878982752944998430571267540011791115975386576734120951693122358803187773820952345747296298409710021067180379483796609917018728955007169305945152413335701848431761475676450939482163004470646679777715921002713883187753060571537525986160082025631081954716668579153526298291264654575542367390545643750125449885358718224794988155307746119073362861572068230474433654698090515385778638723749039976208322625756233302497529030274119469425003661376204942387410124450171748323288896837638820648785911215024720070409194266245714947437254667233681395802152751906984840332389868803821746284948056471934614094974392170589964523022867914126259061130944944659458238843211164044726759967575702250380319817110276178081877578022890482461798628378206277426312076009093435941411318988215705624547119175707489625393475286495045367020781780734587290508544055541822505015791742653998280814572505799483011646913082383444044284895822161210417060269325764124110415146224922355269324650664801471413988226184404387509371647594575754880056576264410011849448552401046345981152816370891968210686435367239448037071415126534821569968981173582990196986006257433373597287136281621121251859454388381370829782292973148372987618507937631735282576724464705235686205356591020419998586201547675377738266848473654438299803682345372025526243970294768030619248593574542023222686428247419650515027646915598168996676627367116290033974230050860713672818690835855742087159055809417416565816582280890388404553487578180615101534951528294793650465763614420672708646667334434101924579034578080365331385690620431090257820931152371689378573542265455432646584796202567294212710101077973954095524445550713699569761551444933312570774131336174475536319427117618468070597333433172905909712056678171328663047246093432504819038030766408314881930354869663836865877830318573689770274777895208592665287341735952299027338750558585010473772877196876935082826834956406744484784139525929769111100945465843106190206166582418733015663228316917077800625859455306488831809452236270060511525283452395822789355692353363904101843150352542737046737465472064347245472190277714579279161681691142832071376293132981091886364652440558142481264052015684740058643600255962579241152602767165409207967571801682648358944220554168364734100826781754263974989342245921244375990455208402626365509309663212733999105701923308869415272176377063056049066048884563507696085313392326080823178630108575546969599625692753652542961524705008486852121248047339203894044483310607315319424222162662396608056691135848718817713779180779375046270522712582439908076335526085853267128316521224035784986950014360490233157905468136616261852830185136927351075436621276831385073862000683498111554794071544821284361338021931267268756530179059964142476043138521705624791413810611570193953756280254126983096151342065771478616645717654122345223276017198961312757711708683769335504530275037368430384299879407874959645493409933066608358711229857712742958148717939342701810913823671086407964314536732310657670628814160055874816870973956263225011312286237469181540012277880780588377967266403432332711654989895319366180429328749757249512173252553170431762264114262442186650340749030127956527061234054092857774829103941665129525852458550877451577277638365426360356700586487043187155309322597529602501154209589083751782093783257594501301606734719903285216738703553902357370698974548486441475785095754942539901803208710366871981547411851138929748887050634856233443488673562932368145768084132392599144200689302440397456603963340548863979817254384383391281047689639129462570673808153544735620761988586539151479441686914966578145283583410973420139792450938371778305959210557461766176432081452101135594803040794535259896627102255105775285972950808364659271474609008096779410090939579260069888432749975275628938156765461667231903236383215820563211226103417068186179264916181636332501468874306273405942579075674481031262947718775056800026170824747673690569233296182298180838094395447287364683926928641833399411353906704801286236590983678294492507294174227789169489041651079643061680224944885121587062089835123302388049765114387253274292933543854328069867267518984614990073791422694253790663858444453163957148654615252036835571344446943920170621208529156586168912617947561340152729959789704130273614282348364466258631855510693200502703653512376059533913855040775362639497896738738401663784430487057353696701606361724714691326447882567647313434451127641334539464304097522629605112818696981184912795937607874904094136319095334189314633651652906149683615274889034156059484000098993300987181517105195458968921477544948462316907071418943008246405382006710295045035516386113279846375280772440236864830373598412561737417988255168783752727751156998092565099296869493704817625783220598404312941869475270143525562820782883234005164832454254498066624689919762178482071703280441340842731379090213163156411106051357813936536651466874727137640373423543446183883283943410165840133767911514331731950231395165178926749249955724135976413547970261954513786642178267409432990858308772396804607598900033762120032213252086264279793157723070679300537675649134609717922971462731548452022967394216994844565181352113952701179933187637457200825049304414923054903654705287835712201885389546656198891339778608062228535844484277358596556843108311516734067909675582142369466011441917935707009022330598519623956031278587550006563710382833060794464891621388946942259928885027420284998979658580087244817942337547893325986634194933872071401393439081181990373758605163539694508846554562523698805014259768530172784334781139787146292599650677946971897353626456917731386246112235522007847274318246164557207059865142666876093965769263494361577131148502657653218924022982823242643705860537188518095114678815936614889694318983841219071254440365902720203459740521134002557516483049262948376875259646616611172768741382512380127156188097765621120048771729798960431013265471539835252387326432423086408439532976821281824871216497281853785206572127674395202415128412620575508221424757238682340543936532145122063293876237503685061265101673332990104590545296054330104368225910727103449270638684654820416835758186000106421540805104490390036264446733275442932568358201243960475366310903878109539136032769806669162443939162303887246296773928024565575182461303289863328370610563401703077783597812834833120591248538534203436046988919884520026698916860381022956563465101315882872988399493083691579708728694183140918545786530660597360002182057353627928724562558853754991593879731922853362828563401723951452022555559183846555637715317175176747469851089096411602354655381947675837475860312121009720860301490394177282142827334392389950159718853545827948763964013910038804352975930137276554982672411751031429978817698323640632937382882040536722451392696941676871887970967479151090931595452038813607909556280371784987244075235686636876255314873602644971184885671830276507434270029637300756210338271715860780895746382654067774887249259198100571200323322358503935206939596110249572089455312634060613828761947848674708234250986676667398484424585231133898192985044013523607382978629073630011376557539692156223308303298447270051585947753978347431137177925678748892714466582660452453967676567835636730782652605437231592859015613525456368581439374879807071267155906483979400760086440243223431848728651821468805900431178369932305707723676087513366639129468380199357851040099825964483593001471693460993285816592806199662689717942255816931072548858519250503390395470810779300637242513768881625604777173680946373681884901260061993525258195020891067243347293842500906147134858827508739733423197486894608946230727735479871129686604205346560836221645580649734845838471801220611983697123153029909897365640169081424211488001883577606576447312238389808687759390373572735100217551026125189388333737499387777501270985973545435350950157426337763342885650803979313981655437641586401675367242353313137531658558964866912162363853012298890993125621524782549029154165543466089414120723802177227498706123489884058558086263491833054115734964449968509243083873100880555563731487633824151072168372022469190729879473068627048142336930993208687870068685156615174215062148644587518787060862234478272907948311625797715338164399329347154688030729621065770756689171365894805225158291675688217594322722415211279097819239254827298184424307174453600040096398611018751816998674130436380435444952670473048328578567629133352543106178254357161193566951867713500038248616386790901663440128864945738292037356415772893717165952773013478000846978053748535639242752703527127436834797375097840279304296561213467192428889186921899465246840226874962920217855092116351414343893164242553260704706585606898942917530242362937971834112613534447630475675056410809653154092782905257517375273664208604407468099183879519528007694383741138302192939852962150414486979604400790050601628787229335843999685223101399812514404928926582092316479106146004023732094809926261177904372588998005085713885655800796435982656752517265336229766794777387898031026002283932139688535280117765303842616850104118660648788214796577358820098331545202950087350518086207273575436529876784169232173408153890835039105118731907265037228800460209501656972450523878243797891413349257693956520501936405407742507542168664126191331372715724893594093706168562385024915191553141780858104782961768455705144662872461271763359779356394781322791990551924539556509647104583527028955546019113628669584781397076799332259948971169960990013608945351189722168057659807205981758702999253565323258032156388491707277057420174084781800691542961813308227839468689473603802202373185271395002463411729989887193684893677767194347396360761338144772458302989429748017839956479640553947811880588522075959953067225646161953416058037327627794531208869277660764410577905637690775019210632160329786196765224152805415545323759085969270693175596025431889679648550078459163542661858133521779193818138269882790266130539461297629548681640826792402472179606642136917237813704800850270685318168058341030735525754957726288677839080923506917259490274597645502984958633464934023381681024957280183392499592465676127353801079061778296663256779080464973771424984124875329602888286890456488123689789290424249858712490117422289936539088152895314058886515762597441278132592750606336053713805688008908261187603815064187389985741911620273360605577857829337625610987501248748959330222808568259867222111352204771536906387871975288226588386481360493565959454646504268550829305926950334111003544373427732412717603387399887101861668355615353228805126875099798651870674291019921292269384881010020358504528895923350356339194639230804280611022649186682904466623695652708396303801230814954453148191030454386064826136681383009877036227372292948845254587828555972738742165899026456984642076028965835390574158900520701142665952066097909029045279886564100882907134277116739304772212285401035265563084125571139021951856762500915383271557600450611306965109831926896380565451515174209931053110401463555458759735046188947206398835075368253739521849931369612786726205709550249210006498220082484150975647701731256467895933794928661798574633358263185956880794292717903119778812688609847641783391227077242271102427127542972389167058448693739998266482013423742806405018536352150265227909021222223594136049030599755241944618484716096322577818125954678635096219890405945914968505812540571611779521318302734434149548238568797924073016809242134495076623533865429262352675219715799387252811872711024313574030291785062591611279018014241455961709616138595373903211005722924801010630998613668444627610849381795215726866037718519815150547842638852797230849439340773716521739348226294985080842607292519590956240297201426747614304498122882800418805808614558721800429828457992473106755519946234672263013356018834535176493086070153537615224662811253688890492070578892803205914406935365618159962742764808717789288785323925127677230016223787221177613245932148124720285889576436478762763392837929267649661823807415878594632991719193198928691451208928037381606401681772275317860492208783875405445693028107211887164071987954672228984983781674531858140735158236721040490721436067209293810551180428749066497996883992449292929413851258911689265171351059175623856019297941808350271089892129532660775945629187375511412322278360615577474031970493097330154996557991616223486473291021142605205003430985924750935269948687374607079718149910435124551767830583484805589771959474064659139029935691155736275219231658069098569698182749881520260428623612668899756027821619873949103522750503483147930653319312215929896950765046189216216494620248972872099777060438729145204520067890351063784767990389508905707106139556371242783226039133357810786338196168438086810164748328633088021972626580049961904979034402267817825786309169365421455495130162044771262831708826865302477743419568573962555906990815504022599575439826878548233133570440616429584337173672577008747008619241830866518146050209729320321840529957800479714846111855330923929601494258477891277751947647067410278017876149638053441780264418906129342056050022130935207183129173201388150209914290897892755132490287940357578180894698848476245252404231679956415929782410245378996295563616862283412744812978158097420302553804908577753234928111241425447765354718544255825614612114645259838588227476724870709303820536041566966946028329823256588424978615071304058334937220739439964293388826541640417011076262013723974947493682274920263936236301691194621236640860644754601354483597327242828466519479142163565080746486706631539967413735334550131300698975912239364722963072193440955554156916342442707079641614326732184958376323459831732556609980836611392907756060998735160206889433741772841541047502062912734011499466305398687843281048244682127416767206996021515633689326447699781063961189150971337784363982577208383757674806857704724075290990070998799612495733145776064964154331145171150021355801562773809102226000075495882225053667263644163175662657332814648772446107729417702730283175263968786893625625793989521390953441893371428436227121528112756150982070720924537677489867956003911325842972761872637550042339761791986301427242658137068257015430889908142317391388680575495385652893193501045492380529707979418053582401775998109964319065893828662081606816057967539275687615029728920059273348916022478608756253212147073261922063901683684283329862509902076057234857901300761493525637837885367672730260836988883842361845106073988661018373938048796705522921655116035900474824585689524478189588288586269046466460922132846437286834638720819384481374020269517247117539433607555433915933352672783565644241702735160471349708408252877026634771171563900858026518756795095316812144007727509774301731637406335889312464379165748845193114464961033717831803638800053181633204813224374424992951689464680773206164979691224132414454387949621124797254981095186769084366045635875813910948385646641442449313413841236834751607785449307929775337541527046085624977951615363534581627741855763762741895834554325484844502342766630122195712362956069081425916336190563842623825420286138941491755970970306600781348386494890180786083079287181222403416186560791622506888086995424704401264906501777242134134338678022870418205377680504178877014181731045085722798232069442924539681365431155801896283698426910866520973395459433054370936578631535038664082458913696004898244052034070887162430829901458082525533277220246949869629132098774981205225107441534917661592835261603459355655569472561870031112168274517650753612335276807218328342123402304850230748823467685764571995780078830741035112062215179315132146549409699538449342127403809231066038753941651572090270253117637632862242075225213956138881603763244137200844582298579799204816025116633087702422021892031239982427450405802951089256563759639588980137416530321707972431942684867611936025834228088754349537127052223347077234659642201388314565131867859152142182436530558777472915257383966169539372796529786640905603984838348210154488657248527195824085784935837824970008089393273951002672877486927101136334662526008594232361845996054886502973954155545145818624730147412475774638948571042516523859853578842474796416597697632096714423001823496545557695990785133978308864908990283469186619410332450057613884404031734961486623846604593718476536094426288652958444202083224054452174352424673776142305605693993373999541062141284122718223241707099043616520508808097285832644815995452146611440219138132135431263054092030285599821954476841989677287643509392679960535951139505657083198384668184872158367982280785857570280639768339681786459508014005544959925721776658269027104806748879656144401621024970012231946375287442342732499608013768570805138188948057382031948744797233051524700904497256616023121688056198982817316911862883698589012738277587239716349512648257582708738545973146316751322999914324242671341383561768670044638019373813588419154590492865486626799084080402072365421896026459640038049740448422352428001080829527670724302728819802295282698428993449660202127135550195427259996467603555307157908258408436678476676345575036006203456139499292076731266803974681379417790882443143326000930401659067697984460296782890679841655004111306222952521394681834733677947108872582518761281790975769407706922380754302471312537772759494430215469028457110703017042742052161409232608411179294707027399277919240602213434698028459544945527769109848006295561687415190520740742073780970633808734030768014531128606460469215613006920219729997811292228093372577082348590146959318077238318531306053744276460599413409093688565248208345244649124560623899827005156555330178479939213407791845191841306836886426763549133722120849339748453456738255214807991689051488117609849295051553486568073470153808570666969296610054696142789884256773847078813643034269604767385484819693587232924253682280768919000090474046129619716222971935511504259312396437370292696050193321936178002779708509926296536404022472960664877073224714747576258315030851429595515254575173518616600711262931783218373415213483092869112490628458512430515267639727325277436746445407264141054517524567361075928678515704316927030299893084731192872534560511843019589945515716401301539980698533319310882210041841211366352111320654672295759802587135916071081491018942463898013851281955823528955320038356846014845917811847651311106370633336258646463180286383700804512846911617257164508631499294119048671486265016172413548032463735751087256566410073955055181239131594315216271062932656579709390158969044131209163843870691801697968767882189840954469773165853982551888551489592864449024269573924982450732827912308133346127318164068263176972171663268305698274456123971580700785827683268228134904068899308784425204078401805407297868093487501849150253507675378916280801774581431734555621521111458293536045563818105060789362900376771545239429966740089441491821363862029300084738099395541971053690944645639220878123696394894442924381014363382558140337826423793832858765807654671380475341096932025410794107360731319941299642112447513928412822958596292259864340879946702946896026489041275958423167200777742605035989928048521048642713370577434360296803578796519788895052902451531459823497932488603757617291859438199352668647748948802986791357482175280427681482735557337966674596779655664398582170377683006521469573558190103067021489439694275683793823987363754230579768255659481479757001685648133526636182352955434012982506445883495640991496137637048346326684566638872073680397031589650297431030877827279126359990829314403467887100192632051968665777749658947665576919459935806416201880057559712617510919985803246893633624073863503905418608640685215818806614559571762191078478330868347334069867670705267026605850539983157795982308174338274017014836373163948551539654094481843606128217066408447798821121099415228807821798913823846283636615241222864953103319136518970962520225889374395626642873665106114915811783910564697269631296977829412465855413539870593534439529370052498588716345682519744535271487401880748861939340754520608054614534055739643712489923858376188016233573528585314355326859473473694668622527348754892243864199134423198563596108682959266590857923251390701219757951845568639904676072704466269211742224689211644983868365214239915365500164890773295093780723571359585405593313818184518982578462357280738177534450014583058313958294279891944323358456479781703079789053639982187152893799277737891397517590252634517507315769077247979145829070598257519979312142409865737642542470635062496495653602852832664408026558216961164394885448471911744872477844279687273958869725656511332913222240265405358577257998291384235924828342391898005561660617858429653629337471153367684247713207719331764146131381518639238324639140085863687032869483085776347234693127551535640728982617836635940982548476277249634134405853496107047839442566342370941218660215084452577181538021113227924524636461037724485855309418139138111772040751875459665028870205676083334048498052846210109018418768768024355577212848497697106330226493367412517840424115317865819113274753725141577038905991135246112302475615428011964056239917619534276201180253839285195288341811116130144151118834118251663021620570085286336265879385696536158975360860949483479187506058876672059889022263246210282610379602158187802162949665629986250203271641809379924712477307637497936175677853168933300277039413004187596824570286204079544353200613524732419049473512301345081465785335090085307610025234263247448638404970650935717394942130410742629417163580498220110976467133181254011379487859299856336367718802728036101577951627310243601050767208517643511259190855005470875495492846598928058785650251427348670089358947778077279265645435377718798930471184788008037036244487293310911556774828881448923591157476134673822140974983924647583092727739116190487480412338607975912409915653817150681984141911279550984122420923165118493146043874071999536190509368945482440373220550431191554710087887427434271177546789374999240845191642179327072511113843308556279109188550548503374087352731071477911519268775899719110999056631023236656632611148141189336313218619933044127506053297297676789719004117431020497310958368232693187021941045438792240989590494732268646696608320953634784763818451529463220579809301076047632017886443774485167162110447035779351076549076114342674554418137015792329019869349287009569431630966534146386342198436079181560855770562470160451393766737086319240563175906267457381708489430483298183054487222838726722617284099926882486183870658673529586723912068761977016136900879151345625132890163396962955382184442488577639870084390527386714560175604017476216470985538344260609839784368101896402177438845689228249547119679309157334264031045920641918381188032081721585961268042601276922482619344120190423275687712923985477139051336408222584571396391077199868125324099499497802623610607258602376076558412502109556253821624578375087118852117097224900044134358934373835497979552310114848398244370829225129775083611120160082058421918677780473499908736679791881008450035255831335144771198154076574563274581238967979174234559086412155020970333115245875114713008088112183381809138522118725692978832638601937843665134520154635493718793199069802562889655944110272528374614182000848930641721899691714524732208889429318766537471392955613399005563386768289905431156666510337117083970181285769772274666720737334139911515426541299452673490149587845444276346090275520836111022805293903796395396617612257933275309122066414077766242186560496213447518725212108002771476933810865522660889528959793257656956599180797026920580515260578452309085567283991741101837805522212879160249390871695836054989654698744772130499715319097581754022134303429222688826699652725999051668202903512694635327418017432672354561375855561070575403847467628074424628981756293709771438282952387911320896402423391657168395395016800972083639776065171938453079115425578378881658901887538982901417565325954600884837570804846980379164520605233575126571887116101413328826694892141902050966948916043360305558381115258960703988005866999229891361284656220868895407325464817689779664150828545826473030066909283629636397528972437812113883063604566485559317497357301493239816800673520205591733350071211918727380396189833993417364488436549778230045973399328873767244906626612999546937180245262891105833957942758120110338099188506758316411628306449328788742104297247393594453533547157902588985392586202863998133444322007978816810794380631284995382250207888166174741073429861389018587330315130440738308260344510166655553312908219235120004146280157443798409845069159834517119102581533902520106017816250225434038332787253447591505973683968926708934387807893660883353803019193982834139110880737396435238951807252036990965489180204475535922441459502982658924161750420078150856598218217772886140179393235508796150838071825782417799941117653302788429341207745398543477593004443675944253574102281357129459757574838189365726556463996278055517696971826987401532376955456586738395880036212490043772192146851868921589354515263816825289600221312009233523314121893708397572150059143222699901991582284929139277684516569534646906956529087594942601175215532035721239340532317329192628847992648664089591358946903830569287117385995356338560668104317917266066973304072382445200178790356620345808640108042950873518765352393413197270690606541977380532957655742573378835634927705300126456694235598118841885942234650825076645118983462853002535708931777960539585321947105759074602888185185392433188733893516258940467055612333319878320730178168470766517658478831998287117821752238707298542166871372719267447742247175308677824461446861951785167063572207450942443932224078059365363101205821369540031509353193162154612519403079157542130770580199652437860760408138273638577052545927906760818276011270320294268281988539203103949215287698489414983441938736415924232310513970348465963889183586521145508201365707445521231292664480433857142309504393849761129646368823853521152916700766176490072390290551014563425918211984993077633758453657250046443930124276819413742306948601644793889038590482155261081771591008048585551452487502266543476529327133466184582148130981435342777331198367773380774508625686012669034612990258197857783716617465701472774276479327537624355262776358708607214724844367859065616638829024562898142238538900800627092752437131774736264479681011108005070923267139717735005451850006804930947442300526457881722161510931388930135529407233198769528874544917963616064852900430024236779715634587113975156658076804099848737598830488713166714612984317279337409343828906082736231226318789170826373242084206227330198619755558857029856942697226700102980696877761995276710982938325304157643501985032694931124342432577137299268893370773668114378157024268457796631627294973824819981891840321250778448809120858714098375893678807480767511105024536798206162108831399021947618887147716430697959927583604418180114945880730674256576634469739376453261083681512574914170162325162900499470590592513634146550365997273581062836766363971725476816196135045768624433247736220788859189878235444019525542578073554130449913864141521375910693160080950493415440528874159383068945022460568218904679654208935714238947158088877082409274550391709149413885939110528504730948471873385611352863249655710561964452343923958559126017933904428091168688240834404993483571492595864554182122047429440012367826745502048297748318157606842455317062778975832312013229228199122207469330704858639354417524534849208425391814836191704471668651671828314367523117456865395024419555869866402255007191255161113814762024623874623506188715465630335953043522567266861838982627918652318105666776225038762097247703740727475095166749097566273919921613902205611243385552408344528836873742925327354563364478816230488033220997427226329680601648525867195773776670910511072896837478617764443236442191967549562369363849470351866598261258159472539795725022188457126679843462370833212382989919076644071066549822337023769248738955201283121467126500001078621132181008415052600552150976039739086174298157276780690496046285389566527918691069468978245209108986353183654828856037207404648199498358189769334189247429016064006485860760882701767807780092023252558472177222443613856829544339084957944180987362633207081432207428187970096562412105769475012826576357255884057765258179291157623917685072658587007517887851139892447649558034688725353796515098637911166027851430382659216581687603268286115068110412926711155179341684814243186933900513182418411198716301251009931460001047256238940767388350679023148768126148289740448694711583784622218676110577782496299467955704098517108369759838368656354252170121790307066930312410770810691152747033472362360809246395279768994076459971919341953935900789519765770446392136381880269743227938776976825358412447783249106129367568796107110132936900198825866802826299304934032214503377301002145092984619915599271702112716420568115760010404587682807641266353520079517131571583308958055157042542665417912235579078187861469408305284221254698571946765127153654590728029817268823027500963505012669283530024834956339718754578333306404952338164203521970630738701186429044293656194427887202493818870914244087096454496625318049893149207505598384497765985561854677691035627333245943948729780579288698351544250207972112239680854517278328104441565867778125724970667412220005283509725024448020255524235775024516597399357285336567312230519808688164758851519783793103981028987157941774197632756375818580827507565731444608750941237893443994782951297042826466868869596324512775523103439066211110511279645338338772178058429900453101405132350535967777067164801287282109687055156286657447580099446255753948782116158654939850878284939385655691886772478350826649179376943263639398717021549517136176232813805544575410066577098031670128619783653374837838473512130096605784419216050004551542048677544044909033831304904340435232638957613420746824924338433506000985667066504849944078655860262412082375445131650022080141517925034877225943623447433465940388481518836577547136755434333049325490363340286088532343337868070517657273834008785945901327861703077750651647614668635102144566491320120010665670329323602880529398078489654795130442849476903388633628730006643611911698371189367421314895937137419141512639863794491119518415269919437996959892390252672475421360911861152111768650329379160036881051891316783942998250472174153744631518659381865753877879066048265747165458119811291170803180420306633221444264911562331901781868958905438509397822480762175601955970629726906177742336121901150566160371719789822452692405268062211072314512206355665370566001833299835262064580773408326534182741578809993483636319530156335696095160706634412161119427549274278838871423845371604818282662505983220890245401138020049960328237230002069319128513361993981281553837005007075973856127216060586520888656580517745243211254208797773822297743623676093401195743574002120695909825543281094249221759873990262423558292128645370374327331709296896831169105029491684776558867519943928834439066683570882326509237529519581637519920923339352840491285068434738899880322603277176047801972023304092788968645083439352085443915601394205528212340148965928825999638009231438582170241861414433803582108897403908290895482480957558335841562907694361350851809693299390789514057905824351491831735539468831554234021597441080720921621497409219849826555441860359306327003931628524754562429733665148577314963174511505558396737319385378072710489819755843408882606038079412798175517892340128909008943345649235519392083116812493927334083821929713870394223637703251228205684182251655835993905147119504873926890599954786125479835436366526095645600510712993458443797613240677361358017116694316131529058708215053395815536116596467241351967524327318975635648171276208406483491648419469209846460034474498589442631413611250752260461073296076197124506258016627493263213776232502033269263699543278921459309870966146071516053320647473899937470955963178862795811849114692365606581466256423889871059839874774860921141062858805103649535474502213105850921903314008938675969057283694832218343363716698930693359879038850602219604171419640592929379667348357919157354672680767338680983896039786618010850888393264615104356814401038884595558136811110960730681653680589811933671421737271902173662025242557699624863787303729309471893008250622966271188850960980580339080616380794582190118718156560494363817798595578244387988282674472417791051329427602108267335167279637600775942579668321002017609764695205967597740070152903774355225923569357730959227582357072760771356941931327403807491700515765574261993991336147654279218085002707925945025210306234005880293194922261592248868810874599835440868059487472139606228402515480261900868892725451653094451447953100003922892401015443583364613147233888955819927470110507990507186151329466660328473454770614535643197952301933298751772832971171353528525369470942359312337443820819961420935999071944903248866708625481741284158776438840837333936714103479852742817390351782302130991463670547608124162832125202880998782416086193628007002522905393795072635952369762847957402960683178329311559409085990705553996278405208879796083523795480495664919517166268314401204548890058557876409878978841647343027573207252008653127824643072208383814474717907075150731018968308549977308675374089798910906928050867968001360387539617093832211489668563101756496397223656214940898522740680315211041146857607336670004134296164429231553744168610078801956285024251537810804102613328897136988474399974878222962272659214997831073218259692505871104621881056359424940854710959379765604386449044044479941688246983716016861212921548225911859365606921320545619887717160382669176537554330324311138204135376495697833116178629102327656161135352744693667035822229593190555601081503920197714891180831006039827635217470988272504639393665096559712842736971574304221615099834019630687689587709541607689624552696407758121326914278789729289987284241489085254070077359009212407665138322750463283317875845107363238734468029774639747435265616282644299169719894971390708876738724432620474394860077931566706144504515922890961465584250906829506703666702868415156649447917797778071911714863687980524584255900263177731165097559435268931023156677765267847918841070785408254038369052740639195954522595103465886470730098313234655590437963044298817843971063091610417666692443919221953631642912145770916143973272683137691839963240789873900412900609358561991449222386227961618986286466717216699430809853468660500354877570154910075980250516176103054387262738311845358243823249106414890221696041999207408916195306836702655775818138773763281132429574609982415388173328935081392017968343699270648012471040530933701293299565367595970353414982549769076861299311950059035858093008492514071039030799863198489334945178070447500067742488780139899605666706718905917703302242026521237729821918389634658831244828002239772481536358634072853951400726954586981662270272133996301198654719165720982351372988959652279374886045861952412606094720742111324837275294577610976236087099533953288673304543099385644966955039737710229551374355240347272096214791769262289035879012406029026648838254217166494324157035129258713305218724997607025004674672748800947513343896334931873657587284085179949134678853242955411961324984249969482309960929538763495306959850299859718634543603854410870591795789635109751777659922005365091166927534790397109238153894562344219248396371106717227794636034932077929001483605195795336334219837511477521322547880891107188295482935315880605436213684014629284488292118564649092122618893130153964945039557979498173460861124298648003192403818919266814345178316719881509471126691379041382744179384746763609996387061132597155338022903835223411303483770576898883865318189618496997951988386715585037480507752590680097700145424171108503838241991944483963453008779542583873564996519437213521828118540624163162157765593477496887726871661013336992518214908685990367206968031312350516396662518538831494839864279417505042221876110283515034595590044077651459083556547696069115304417674092880231838789502988819394017058036041245346494868890138965886796805829660466508229191117405844619482858561282386233607983860859597617746380458556414940128430768708166914961811122576989422598507691026082041713070466541135403884574401812247387780124962827253440472019357921515302066283874122703802267859750216506513468981514352982891032245397972230679234197243151043966332450475235337051406962669385919807627049407859096940618684942670049204689796125454797565206919914786450388277592042696287594973096974880810866408752067404658804347515976889295519396783513128765793811901151329597532470199196935993989455412338894029951645043553918594394473202278428579532114736696204270314556961200576978291313669958402078224181485594990475746656241522613999890376088605581845938786788500106313992247409185347968905640895061989943559516436016407041561159644519562727760991471018371385764154496331159248773913051732578373516654104084964190001956794893928919684141995733345010715015228308855543992650552621943269163772810810088118340241513157831591950198725537100969257201387868309966352821947170670177044940896695058074889694242996219608458598974814022918771944802350252103981369249222519232700659135162391736646969011217260494867695656756197958308068856772166758674457948394974156429934562083222141140322713189884450423751084894142082938486880256130035791387430988205946409700719163557994937643484145099217904965678638114605207485017897583929334897302039240246241204085298130557735098136350085906513284218239633153748357745523975480898574424084962057382996030322022478539762048757232514198980170751641037474127577640870292972766321323209034536999071044647847486098173172763171156517680178507058245046745206548817878315199438518051501761705653773392389991671146924109029929840814805804866827641220826318802186631411368363927543341380417118699825604431084643120899497036272244004183706950874059763926231873219609043840745846767457690849965879560624299717963236743073399596540539178179305501536584703429153791908620185534990944462288895887920674469636504485545157804673647113100645436236143764921309256036266499708404786164187484060638513988731188557620123549039372920936164877201729848148630119075002079849990657511859111900122311452153960943875617209817250233176614788736250604932690660133516515950393412356441203443543650783117665381768199686146772973475283589786869135433583557972004081780875690312355006662664490806565944080030144546682726309813273751466761012377973859106507624599695450092662868480622419049849658079050760663872703858908455028699157031975079623340874045287705103026044718952399947871154019942274442965003005493445642394465727444413762612130561291626566642946372797167335938077469415902848141222214722437157505330659995826390292132020030198074193530206586531871969796800536057474791213724189818757387665753753853059818743565624268380973439931356177314473849377598987620210511057668029098405957195753671727057659243496178241335972664946997218633635496553676932579157619939392348174177217779615408147689832572944495875475166479440662420531716255816149450776087951766411463291806325599436458162936280383150857324774494520919450704968704749785030468118810557740050347645148137118962422242116279161486265640277787639179761769186613651339804285504971495292719027451695672802998985024595482244881543141587698418397015767383287159608620466657765535828157678132358779934585439199783113412403324900883989989562268669802573037482585217758153728986478280073184515746150866388982367306529142930672938302083444378284737438888670515094155834061948521227845112308787648073258755347379213766481621180729019012723845098186440530310069695349549652889263817556967730576098767954705562962439762604912787483902274427794465185281415497194743534951641420711297576529227209395841682169566996090413721951917726342273865663772937908993692757771133435952177883571600769052921388054912123847071172919635872086788549876650900144294987248325699277500478786271929817186220206916058139169826898333592380176601159785245556310297550852971979328831720206451232583775882032253200384469821727235368026673372143445728249497130938437687316673398784256670315499492178021662636439915469574132667682271938532034509383101505234360853631155274196174445500572145745428456199444254922434941208962943653504689519181853914936164110118618684164827133048023592561085573416401030670971113286444911668316708646764232147163207248086073576533197253862777214474224257854617230898755174431679910842840007500208351871686966370748751658499270299834780379518052715113393023388573653126625523649405211034221147659398538409276797176988701294692586283580742628874328713394792385569161907328096865515069176764432816358753715564046205300704042743969475961892781728143089574443298729670372508011471952226806761690211356571206373335715993041535975050722898156376402642394192507529059821102526064771560440147268656237445876012020785492949171499764772141289041540320097147584427599068439694481903094038740351020415750786848972936927830320768935786714742881961811016103828345196781996887703514032388610409435619475717498354137625499332293407565641999417650082305070480623225286358018895425451929154937873078242174658503677889762334929609156179860476305422208542437000056546510162436392466717123184576745807968785012557046679333713833786283859789950996391730734433971855934187263571592214424166427062988918315216515271259980375630708057603096648681030003211184746826337637207764781190147832653866361381632491671347304350977879670145021795178931242876813950112732495165843680639966998240107484982228073077044504654828525747324569054086952647250981720469549382451707505378284439831383986766482433647635376764816318445919380131219854481415541049305635069932948677111955592349213366529085341634313789093874411695241647763523838766376710632838818620999767114550161594937524015214854138620241823086062751073641621848701430595297998838538227243209589334876021778367191991045379513366920835233123151624146913255331994984625336378191885491560952380066285947015034588400348898055964869158052157813197702958349708280786569973160866027711130149762809349050183518548052815290326094590078398728261857059433960953411795493990404693543829288571102363484225630106253966590961168908912150088996784675553205147202506842158428540655279779502327349803821535953679722111216133022723638579080980513874154492603269811137905545412862814138150882748177967611879083962376310138768774211644223709587403326092073341313939429330921140680906769154018607022994592619987993502093897661422111126456814678122059542863417262245941418875189057343974726412827692340152941911921595049830924305772267337363451936598250436050605564731835179349473350320949600092037480639745275246460187504619158570394172347133896743566618971340522453929974924806681160140489395096386845635700843591023921119955769064591668597834209836728371544359880528330397518529277276499410823427697080434722229830314794191210487093284068281662622891709481626680959156000345819554107569110143121602855926994543885279219690936178623357006533469793504893256593338058361260279134172382053604110288549779912320813875408567190598924764414197849047856458464787419223913299264496587677573517225313587324252257178874002438670519505173429670619719876372373150454840288446326862700671024268775684367246916599824094957057786179480424733572493709065669879811810521729178756110036899028988930808072750213609478860769558744791427471793927373448696782758026072116680828393064717914080294364735533290249105367336489704830665195314624757367126661764497317995736696465676804759768483919282003626390696671876099341938295676003794760557876724836466208535935989885129846542721360010803725324026699212237586199050933173218171585960512929764394547475303158737381261961520310229930567635544026055414811396857820490991371170966865406223021655328768155321896691436872261528768530232500140526985456238781707709654056718486667591824191945882690346966297986682650024600740108658617953891427769923229565999658479608189220645179067770368361391148315308756610208146808367577213826399792946048910727792100606742847925673429341045826448465725790334567640583598568042173210413808308563144504670035999540101684444610704052436457416577337487406888568502183495299803669999081286309227367092004405169275079514720236749207319835447949955682676987386573180141496198054001474722537993156565542906546563706957286379075932734240781167004266273186989813138796491494339838854433947256046803546587651432113583732905858792175318850803265643425945746800980286576807484941857633823644172718775296170489238477573600396020738664166613768447086117771073517025389572191652987891743526852152263568811467247662321585860692757220461450745257561094071947908807237072742467817769445961728155911589912497329206515294075153288356402717893971893127989833585965972638854999830476801596896593965226154925110205435424797002423846864339465876503874360981460381904214433076969824000397746205911193457155332964050002792648838368456879377591174899622903915931376102847481282766973903972822730026481210647751353325863095858052028882251945229722217616263760797197771538095048425794347303033260467271313662877015485339892626730676626318608307882081844744871489486172146923613252206250830343056323322868949579929730591607395495004047806067211470244938362814135651325299192475962946541877510005637234566389191514783619913936685319811196766992425333387028551861990818667760045077961504519711901826406487695857180356096073074740844101386765172547055465266216595836619651752357662628880432059360581113935392931050595982027689248681566202428211224237460288399320372795465730611322750411166215959654840824447534259898714938650503567184093899659817112825517931995594430801062886834101215553717967037871373537784499419938725589294009312642512010045035068087059887512559449330167059409169000335564903047967489567279365877597124413954998051923144630680721845498636774276902191976967936561307587912957208805727667205996907494091771020793157516491832395062709626368230594879975506129828469576651367560601830746109766805320642648617145473301646667384884505729450818241527347707661593240354016816911135889274352728289923868648476316898537297776097974082217479002957112477378121397081899410784463873374859189526743998618076601183777077990933894610709769277281092372855259629915964727613677008237182694592481906799743428841859903279248145116246934574859970630314808988875812479713515342104052816133843181857400702215015274224624271979187780729648879520667046872728233973095199455203010902289379056774334948139348522081273162753778891206335763103514187931260798331493979957369928956475890056014521413112537728469417170962157321171550132937099533961054870416197998587295645441620726121432935564224835841973294377020042954130907272956836123737807356758474283367721696012742737225329126643350670293401267209553933360578207528941258953388343074779837284481168986200154200428251944876619841572000119762128126217860663136282625845833524173863171776617516213741928145396296659868003478864137145193411234547514189767023101912427907758501437065004189782927489963780232153292703086354683070529818083740639760665697995358582002110535132565055906694916723845116959108492434507856061249724453996162139946558974771984678243252997732521964029250985656342112480843558873190377995063346963782580664702221879194080036727497898046828649504013840330501268501693311428508798752498677996972838561402412556306649561359923949553435814571326814550842524858963128327853234807171235804780462678813491885517376650772896292597141531496316989817573934006509596205290380039613884586680745445505894054656329663607597104915501700264637067112963005819308852085348688869077125595108225084960377994961366389434833755190408950671548709554328267732900884638137641971550891815049796789785953775083814567109584680672221619142291507487298228574248261981198462214168219849328186748859777283845206102127094287148316943028705973770996504772737921692670700106349889338636842155079169155588228090913430015119223235783482785905838225954010751570582810485391557616372589447480278630730272914662611080193453282872134757503646248898623630734727071559612184044468798945905621771275550617943250408210324316294743366662088658663415472278426889878313433631717767831454134368689491069589774217588862820132557353316579493247209078838105601928403405017852718933071735747760104945139898754053189360618052553438862383710375752772110898656598055828579254249501961223068741482874504254367932631715241760447547824808189400065032809554154413407901329750241261159933731892973260328921279667240676319741610379443274748422213220849228827908846157978408964359460774238282636299950672188582935189125460204454747767574982336225877520313201216781250982838655186940870110036366199042105460503025706419602258376701279571983504136544430229432388730335407724026278493745974062143969806551149765430338180776579054887626899705742674231994898165238365839404570986028325103989812719651276326958386055843533412044691760013356076427590523207305737990986379860369869015973815757762848082661357594668076619627392542472414092335952866765515287032320216848865056935590295004183972489664543173442374239201415414339948952544046279194157490329058180183362908304577431092737880020203175127447196986403685774770376206658853557459675162075099554261089742976881811372895268227799277395954111971397306304707908076502779413863599863637794387390935785678572716448057094561778134996700854140794604511912400339922220648065689543918859937361318544357060127441577754386004085226936468979543875957256697229599910915689871631223817879928822238890297522186852126715387232837431661500470891068947983710067603989660189760789496996441106096610305468445474988955022886690224384824844057957523982385640139759733495302638049812131112271143036099938769612748525880526007123243537181385165949561368501501913260505033320007439745035032034377695861743617992832856283152159420606284540791125963689024544765570599588100219846173328234368019197673739440913770159863500213382636277998257797032807698526102912219615813086346586259917877640522934711874522955464374583230771961883123714320638735246604877280061534624943665418445547341177970809563358946213739237041069785646673142362743145663652036364015691421923750019585295327452054637292758098258946141534433183853354292543563779764243051909771469743373568964824917244217892750848669987989355354726023256697557633668967762667405851724127523618165624744971822115851492186796244360935946487835290178645498967084352890378080938453855978372748186198144418718570195654357505202533766778414162212184270562969014147549095152024032450922891804725790422041373148089454470805565749400378447083713560525286818979014592171205504837864599631040937611615685606132457493371357503160183383108125191552223202924735387655100654035878542717898604137932456279130312725192540680064849778301781785676003227200653513635585105273678428653383329083799938556305746506426607901819576929451164408776396582981101861497723755211968733986024189394688428877593624452687343177678168672051016937753046265588522334645268123637406540001736231441799801123399933547530423165628266068879437444455297241088670078696088954166194157463770567191503919450853298183074243319633277269168488693118346038569268154855433555842345428965687116720549514823383570332162863355121740347247522101015128595018753804596060077599716186218945362508839270771775869511059355723667880194148075924450506166336692020635431779991221175357455732440549952521028964752898284537432528445933139064788141227593666851581602594589465837694461180390430158515451695259039099993537646752484625043039045233135733252443676818354126932292412335650362168545321910634104224659908433069549432219636802955422496945994295780340208240772050420197829264674785293798477686370366446513454172300223659367723027424206477110721346904202139349899964531203212295189351894309917860835897204111881970353267832419275777028222710654231376130155269938346957276669348507369898804629049062868913017099175361889092430339543643262613224532840835913844176194083580552963806672770459738115166122189090814336533602115703651324940189851148330082129654054328115694083866508268541239851474148954412580247709264423232552966158104749782002101049339297443880734096138887727251629687341167785712603122590737420358103178584828750195196590348725989275581867574414141792626316325914938750577097164052566630954141221415165148677440564854491869247036207219406630561587941631365615665844455314012085766927257471582284912960208990117767805848933999381779805571305594157846919443639610167640679047583471150584322162623708226677868228856936571568992914914601263072564700847708748889435468095890263348340959162819112456399482363495680863185464977777285103337325491454235993089992203304653432390654792844451607831879526634800478234732382136894699574384893442918638088485846170287946888284625621980911142317184314716491884191832793853361644442722188541621890421408806404359282034416433892196139645351669373703605817739445947679926796911351215431910370825152074967994354610781435975310307556546162548559128069393866826045701482683202210918863057316122926073025457766796553042716601713560218948000380756652367218518454337874763184332914803515379473034370933712698028291453313342552519665434743094633912664387244481085381371613104298505555285989565457839905096815017286458353251060046250885839087437928991097822379931360694557086312570291961780170426231413839495411300240858244911610884682004421175439176160816745331768614571800312297549327598446784089025748179675040577634368238157055766442274859003783548131495183636911144243133072085169332948077974276250089955014636771341880221283379222685123817559678252907483099822990459385734263256896395867413529205224308278871662425238724553274159158716624901720801790813993725127356381551733267447921380367417885430991348024891542587412426411134946594980713237111371828945243313929691082964379441029754896832994807063707885362567289010137994282253272346011993626539367988035249625070160013771565765522596947088181595947463655331921041666669881236149439734836703823059996561213996139164626637908562000292952084133395510970426910393027616463854184299479951226162082613539215318548792290651147140349511856274592626600182349061594115735213067345985213991101075194840891778243526720816060468899858840747690081911025257816907964100657356774031905463308914117261123294224068149850295629431963608674716949915598439523323706498068707503343130948086438947084193216485610726566646606497521162091905226128318747618885914500386288819758107582341359845714613978602214980760277893321707993759871270726058076203578648332524943634218524544551273412331421340259236632152010294668361591771487291645254998815161667858269229861691091479091309570655701712911688507444691652377343950321517946050946696579191422856976895589029789460852681107362740631816179639579313291325651029582709205623212293978851435952023482081055211426378568376261614091987880833854889556723825474267570506837247041612322192676550514517673142905809825698325861234201272318515424033948824751277174059348638937148883970317538452902341814739002507555128512115460165627151565800170642628679447698569713532945733180555259983623440896416660793942832302686713306005044187579675124607760462900933365435402793813707157213513928794798640077458545352374163009167526668621182134570160130484487225039403836527075324014465519804602066666415073912569159363284493364312809375832208978010340575915840612382395676639170043866984266457759699412177636628605423235663333121038811207352795462393443202337326929017322652519857055786476823284982922052861139517622600543263468602740959502384058485864385525438359064198910564427766586785991328564877305606943831186164942265258280109214974268079180044654699386098901908884809334500599481896592041671939982929000114225757525530230998182019377879677042237049807242261786861266168587992266231324116028018443385468927419900320759457126282401592793751442529959682103333807442618185628953035897246774783762779545336093634061625135635183307634037026032847563174055809145724821913224546321361149577547169539129741963355659283166073319047460185644972839189017359847478851521652702751901839929225106093820085993625014346206628637582728067258575961156830951857790014093801884388182608602401849746199345522921277228276131499673878113332763005625811947485239360216435886782947413214712797497324565326108834012712816612666573074977056919161233005637239716958490415974887390812104246153809715049969840966678667060642030356191294666126241604804706816783229366752987746521576586651829616777083242317334750980261079029071691909273564843765454205122659194203706474382923176700553548587866305044334831442869874255140863714883300421389159459824816942145662561693523961283377559496716874179772237506377507849044011676661336871127213233724554544385780622121183018385680196791837319861535681644101539791408960570878364508120538864416927221346518723373264783084706781840385287555342731915000253874094071157974618376638598776859956745839338484978765362123926411295520244013053399053011315525420069634003954614388845812312758850807486746934213189094628959824562376334333309587736634275321131932428794559818886229122002821044668239838781607453281086615677434606438435947703166130051943174814217819969895343846525020629822186247193296375862429092032493337159174534291896571619246392974405194026440303827846115454383907515028430396362981783366389048603112333427661184281916887752161737028010329571744457131208799172998809202340279522858468433092699420464047569781907637706764855879861318665397258315259893690551878993552388429442352331346475835590649714369066938033099170426750210740568387661336437610453779861196824701230854248720799435825752943340518575580657106548176058849659408611871872704032504634904651113866476077135220527225375618128635772669700954688945567867218855371958011780332621422949801310778048024575467173802669759758260789379161665577449832000280890934359878224470977563134216601570695359457505560703458762596856723262972028987086133154468174235666835545866456397519976211879409764885740933261070018414090481907351404409654206471329011524323032407649820540136955269039378710290477468328137265058738614932926099337069037543545138663918888160398329968028487772380452576059435853491178590965807474040442363875484064202179043774277227891126402237838277390205778026351667037332181436616506381863156099322889241738928859943229294553271246568137569770589505572416764899662429051385975146731460597669102363201471765212467532121455244551737622046595513095033425863777425596808572244517073410746464626903909438358090203335548223260341300402331126268378517734259914585340043688576987262706839093753799311302949711854498506904485346492587458389567361232010931957331710614960121065231062452411335300470473392165019201852549548928482786536693888179022042043239804655916855275865554397718766022697440429377080029774894583079323248655267673077079706082494054409129285021771483777922496687287478353345914591847375861327205720269878560264110176940878799159840321988504069891555159056444262675503839010267000705793902858344387693057066343401522767880132004072037598435569707171920170842270504666600500783091825809761522082739000207698258762217384687306143188405652154188529330060425548927831500055255339551827687917405709151702375649066286456692436275926611741344338010943592345487123066580461118908051155325051581542165523837883237146264451859869002027963430962425289057577794796521818811200163190070967119316177776856464134950930756171616854870390766183201649649786957321625469680631730497360465264842679118130331820347886792993951173207751099057427932462204183505728543507529002286998947635251336717155990480591744111168743089237289922085488447156168166241418598184785168167931538733867464494527249486870325493240888864020880700134058568528416207229285669724892071033237824349883734535922789430305152476539768582036406939340931064393923447616344879151181034743209019257630794879615178411002302581875671342790784639825209627239693829419924217693448882965266035505776496490847030697402675309942962312521846780817668758539490540642779512306935509309212960647998553576604192668924340967085613422710707649921442715216823350181424028019858814183769061410879693582026518742848010802574758285340536609350100601052547676049764089931584677113411485279467900241449214751062808131908148709963694093241149133968233374975917627008255564808784499927977817596370875725285932428819571562867776205761787723093911414104528213287507310270965494813769387474496065141992329022593783948128865962034095283633291305824546776164737065887988932235782721935806786129484999335266866358882021276501065807307068232513049360198219550793993694180930967816518395889616475760467778126735986797665534962981730818011706436636418052862898812767337682916446397104269168310919960116492068367066910631505197340063951537184161278871438190371971651581176623877616276388910030421050973968419519485503140928485831584944863442325688509277573131894426239196907200941596629786205038760822965492172613625573492250259553946044288447666088253430947432451810752241252574291496355650633731418239959175494990338252095590888833264215576499683022688430029988099619494595645386465679070696165293162085492364376519795151908024589681278499937454914114538399648158312074061635485185184498455389144783572946495149810902970348479535794333255963122265257201326666849637412533169550465559640080251922235750072685681468103548616214712304077981184730564361511068870732131214281525305683227846642498271000384478685171030469394222318918280973240206930857849571244335505738753797351905957444731694981767590192545161269051806251016553976096501321938534851470745942288484233754420563839129355658750706735943297454209699917287628910778595551755233304466507015965362238654916804228663402478995809772220103291885837963136077824419153652128539040293780084577178192360006461965422985826453167931695298386431983154312500940831228210889477582483490801404481071523084282710642192722714781269790454965940937060608674542515815566728349565106895062240717289417727901836015153770807575042741495748525039408725684562762310213453858550826670058158766892252522467037989786938623648978799006050251598541198325504336017517838851237981113751467359197158721772799584829245745014925256913566008581530128848650625609858648577385942570271646703613970293495754308417932037953832728461294428932167997747111603909277493840864793551201143491069230062730834987150327158116908122146351970127325130103141597624193796466149460118225177270518168320544929161976395918856002163519954786848381532618442533525172151514536021310344471111972864178056422601397611049692354178696641525291722303403112029272323021516311410938875834272722740864597908228636659861869540685727426505653749156395948776228336714513843625298783020419482148090528500160786814161438782180348934985065662109605119305844745916401090882412018507516936714021166152012482708713528335437242952997823053833844229183134021464097275842205117136947658818519712065915965082046417721188553681568009839513973389944965001109382063772734863427880422610424365197570074794705635291829228956259812754426194183099923711188220398252320118344375566867434615409830233392850466467850367352628189016339830812929810511487950354099921867543317403744108093249219984694917137813078714539340151590038646543755119505375494561031098173557337510685075222860546232968725423963173221652960877002131416660456700880642537908381885865883238472618988558270614753207744039401330177280895023047652989060201251605025736263635658924736557351539749925894093919200544387522805128374033654669779908117160572168673739963529270134771115275945219722710709119245171409057733002482033535853217045972270918291322296314936888146941671000669097631013925592685669727668866360280868195605511383783507685073883507748916926193770704683264997787797805204551977991119611967870064022200864213825700526470588902403375184621162648001216706866570662057528961504876415779989991700195181047067832716364584819241537037515316121034065905854991193922003478601552112447257077855764995611030352680357982271192350160311275260619479187575362001996507345190800723524416702294545301830632312015896782006238642510587535356083836167957149942741862001319806196474255292441211140762355587691152818369176375083485736364712673770732225618422807407957957143258887683498739169626348329432498652269566009752294012328095588848865060471555390798466777052684563046033581345360034517291686494016842536805703689527302205312622674203861347135528759851147217613455447931156796248338213486648786768734072499388848011750183347176881222081192564951590462505068797555673784456307668265084941474185092203261251993353746177473772485722567427603598781426983262189699524809345453545503225411671499449600144843190848932973134542209341225037161095255815786054998960477947319996194226310762664950334721666974337297665955129908324322502527395648552262252641078378670859099931849899975487440943172361901870264726692503606465066451914300039050081619763663215328481572988997882640112048407176815644841744830214170993424605844493110213104670026167644553904662857988133114277833151858690135446962977589095902174845298787162313029530595068787878506424182705706725634380724521484779862743197560410412055634060935001414123837330541289373812550867703960027455017551825930173178437366771915174116264322374416762353022288231294388559007910741136431007531205783275129322939097829316527907524623991335724047006154666713096770620217118357338566033977954673991036835393651014965621521929141876516225293971332977291591254802590604854457400023903916218307163297344173902010600074806321590930647681854138991646773168221249752098960885283027950482334276234910507043833122017628420530696572753717093305120017466574722134002745829175147082322640063704029224478488858208179218762620461332924683439655852115361333561263873887096211961818871178619049515985827421933120992473215701413914555384736799694276897825112862746006863112173327957451964131283296926494134625733956304693669911538147992154033168904295574821608991316726087366576964024664193034751903597838192228739224090990446453053728037990554016047340114902392329082008303612959769655873521411242400214272381641126088053814303171668556957203066045942268361325296718369224567056049131964576921937918577090728271079821836803089818378800759838384148441143718045720801118311642447622749377794730718575848078757234506654757439968668858827887265971610342912471631543700500670684339377163621957429004567666195065826625388172166363645863710603651813625593091741121172858341140434986291165231275989130063874128112588147705603571949987279264380805947018921656302883130501913706058419673010997282907610633562617900846041928262933187725339022555980694517917459773410204362754314353161848192770458143461087926635342284074559998703312752862545221076756892350484274816648125350075307066037696825055261402496376754106514571578336017285561424235079795133269930932058593526669870027825363830159081181575945230016695829806918855217266959212091868598924443941356135070429119224353069198247737904448039788888393413577101997045801453387063026706682211496764053491059087142184603940247624648529008429563138883536198273302787242754584006546297531218172694449117129121157805996911813554458366234129330548184328618072058467718233338862313849937642668723100601644400247364181739506090740850417642236585443505101002100131795877623628788600392051930184622280662962274715808701631724117533320618383469275230101281761010431553961269469153010610894355183603486866529426485480773065876991298983700453930500299155335088494927000508994229094426525721539134924221657858411130865000013200339146468785588021139455728887036434409663576665810315290582735452766146810588367377942836670187202808661973860336696947522330375043330771991687220961371914463480306566798309282094429545484807560205070056581569464118881773300351776644704350051471570919122740044473270573663374709316304971360014144046054968316430907540973452648985607141021544520012615636826957906777862454606482293387675331674724247493259369229752587689071273652859721549532042264002745531354374332671363721297502191334235171583619036023951102394299726355645748598872316455456426269961359572308242856678074077657522942963518421223893205246467380822564870526919268813471600878726727104599438449988707557553614663680314385304262057769496934018284759211579715764050115425461501715601834344374603374282310519624227796644859748688165058349041914972240335693779213343070871181657748366461782605126679572712847028149835186321493242260482256865227288489168376692593413699808353178197548893669993586255340369782334734567069826010251662892487575916435552323944683110376825175653943130250493540144439551300483206597585001938648331170659073184614540371047530967992669945180270948079101783692650069901670000288401783198402323927633025475985088023050447066566673887490146157073136065249403365568739744735010625701057528810510816447667270337504618387941977835512318726712535154082599906154561003128525599205093976092594655151679045908403250306164856730338165015890754430768220486898190215302293168896461398514934224993537679466964406323183587870661146708566404047053788739702778766767838350370986913708037395243161305348714855259071119017299469496367382248549653585780365345947747427627802143933350297934093134084484357610197474432729419326955268795622882348537883640708168239760275895545190042461500692676938783354638014634004527305718167890129489674728108917166028479941429813093232336401984067492862401202823347006335231983920627499812869348513301824539567033930024649993951422035455645394385463176104741758274822442038566821070351756324969829712950939037294754391832105546461186752176485142627759158264426004686263283323035295465631655175177396517960473376321281612969071023225308018284166234383328504048765935508812033802208889583725883640861837511747920580728194150021029412677878260506242262503220246408024585259217235036488993310859574585848780720360889528114711845608044801594588903129817314765204968525652312770488328443612657451143749880044044507155239934254418229304512491553891832638107135703286737887035644285045296506101786142976168351807397393239598045901711929246905521143978696372694488638026004191309411652547089684469650031125623782660906616681377862766077355396084996835186197843518059426679442965702340810449987793074632400146329977085565743030016070263288638966225779533331881111543790109384127673083664693875347668788931822642142240734797261047986654506802239978821060805451043711665471536884655107238672787297053084531629890515100957023049979195758319275905616488828886133090805577170215841507099655434842704608128509546049417963454117106723324056016828741140176880838369425687509531255778102015324325028074267783028978937921535493719372310991117525226237260947649670022581145483652595239388344091451562641266435721355725172656179061498282136857100784821193153538060618408362054728271218064779175192594540403146186988950906055392090525110770041557498793006395734446327098924863467394829781610689042134926203763305834297042827726955431055920559774971947335625107062072840812905410285817264798981222841123887727916518316864710916884887545153290780142407236557123706610347166436008101255610786677831431800707134044809279252595548429096047070784795791308120471966987727178060620066022052884161002554803332518361465520731576582076075222618708177208961068727208317823081899209739630660474735641900873639300853326953979353115830243238021030242353238897879846249135051582352792715910250811929489866627831290359150323997699024773666855105885920852577778099220222407445521973920823604118963249942116086927233329491626254894868538535790650112616292495629309224715851580183495617516329595702863500818276224480879599558125771369430830247640132380971573947171321255707449100960119706534727842876824365738615840168675626257000422250312132197564051436893383625885565501111276458448773246751436240661210060884452959455825141189001011949481006126599453019287529316272264239713190226289060353984005032145539385837356397049765505743610657985951856729827393373040133934440256351905179276689662665164270875988131473420924556155717672130393946983129368538868188296726892326752704060537727879886413629267937157671479755062011262221764248341247567369248082353121601022671972011745459326650871071795941005685796590879051604896925357601442564333850515245730037891328341345781932781300332448071034293577865813718422163344610263174975530325242142499575892499712090916948120629516986409977357417012994907508339571028783993709703883741984110079783331555753350990464214648295374210911630500336604967403180387350923454772061759403005910020074132515268838646598951477928121599194148567535308065609706149956586739713900755992519726521403864002165565410066186812302451655075460202859840824815671168553968279754847561075428825255223633803736390648677724655271223059179004036352455645231915045423056426533043262120594935983989771834864428957344987550218881634119601527187609427282423095861110163088116807282487936010997557899427914241600453678880607049187847101362134807593670785331506434198885744963529291786691232702228073399681522252348884454794709933264540765233874050599643087092932426976453128477449507037687334562861616314941035517891289424377339287384745511255893777693035822931467444804078118124373681168119026410465182705679902899750265904272396595258198282586506764334337467803953089148060572983088261288769345431376300191844899346285966056292560451258594843861459659838711166966123706958516063667371104344114303625496911738264440130552766449906127812181941583129369115061092809702248205065586522922215962063465079093922290600372927624525610850172852647771123287665609011768518162939019144262600686041958363546880091975358153484191746509075962837791283287516048529940917878072711940748146293264878764810616417651363263052503912350416666237827661179395253412064926851441518401770366077751443756507527953592578064231159516152869745042187562465059734274671420833009378859259283099089439856017067162974814740524820792554484114501045661045003824808372126030307955225839242754458801637465992782270810324475861167789411156642882391359280750059578593880482401360554468932995562640285101833164734155186479257529323455081479473597207538821841467971567813812314913465712247605688205291725193339096852451890969146085886177989165895732863292425895204958170794541856755816746591202370438134202252528235522292661303148301984946727093493140521000511903121108601145724593638617450888678949338907084788111440599911724832255253650393686425195310650724202000266043352519581947607707943999561606469861853700309089221565395306386731156759575163140080017169146157313261395008616834095535860070171092502328379384850398306880900932625446309353958008378954671237910282766019086347792776990468748295502638506505293930441809196910945078925931939548607242114324755529257701027201450357114988761835796948985554460262177944325787202256749645752385938552450757741546124928624388318479871486954550571884333110373185629002107809374006944470218625719433848134783585185538613036915330933314022535901152577526842073153686846893314181969321274663731315352306498210138814150545935359909945954090178145267143861318376654678986531772171506745485399464282270580651573581076967669667398930885669608120145704916257356612928644818148680231223744766982999664572871264696598118371542468498749410832198449381268586103409350757492933959678305491990211935367717066232037141558700893560237702981848533341268875778655789914862100527632156906301550974900678611584550565499735299439745299457098657022539996156413721227356194009779845224027702261805279741894921516726892252479922759229263084901690842923218189296657098470269041517707211984311808792891107934455551648180025937982922257684477785009239745321403621751548391571418785837587016381559556971644863991653984250442729035596084902567232543854371057980328070185254493240813950493505085832780658510183209990795375088313631520538455418716109471262834288124573972070654304439421050838109550248408422638150466915243395481051576038716398313228577602701580458901619699683989261020010569378636371949533895601748677735525944069273203449548254769114364917625051770729508515519457086287399791605735737603301952377490888319474830832543071421658933436907870375515798208676080995471497374341521845949179553477118868615878863978645423387410549982095028577604384532617020907436807711452362799216969119054546108155657792707410788748272788807359234805712561476035246753141519493337357522922204429148578976477491030510479228028548397690764425119961568191299340980282518122348609598015725440478384050446353398807048257734513607364454296123428560323057193910051333036176635330883068942370076911422137510677407830852984714000636893046621025400372408073188056957404982830507190506492703026974463570185226710590572520046393035192351657575891107055550705060365605982272588235415347884237935791222218204660319048989881129416715076437503906144797542386625068676722653211747179323761808500304139945152196428133129602612285828436677381836645852523310643733931551584788865678640142404762355708071881311411967267212018657082955027285301244659455893395144471726542801484412172709341364747404455019244844605802690116234725152828294122839854474784333825687981263963821490586309866688888703452100309791955151653438895305290160990216863548895578571585684434997372715818142273223636171391858511357375593461793060814429387307784216919929896207188434983363175012340024568893300795966987865770878450516931304161694303991239742435192766824824736160648686692311896296306047766779858920368343582490245366483838563788555180384093471969878421566669691896300250690371175915237534367527237376071457503640024642730402795828838234736386889930754970397518827364489441890158158109782005255337531390969612329996947839599521941668004060598538485765218812386011080466543863626317191999635676910268612678634745992354849059624123007779132809725087010436013547151312131454156249580467625694073391992157260769182658833972753239151695461754636849673434139681329973130402042144292426232836280905413742502115755694165054014876437162696442005393263899421038858651300801327705683882932636652967564043869777101885458356071791642649574091249406357913994594627462681391085146995972236285302154197498442479480031414939786263306112803164126806976904927220808611155890126942900994973111272094898615671234505658208466510064372629300583139612030235518688968155202022003194996064073531529652783628749488128301958536681137463701260720886869134173096618503440107936394790415855558532591386122433564685225961386295689110443659777362028614777354198035900538739238355491483104750604943007542392505482837010736067380367911964492659540391569792258859629431320481841629612586869815738412555270417370129603912061857424104967703337544917622690219618060418777633731430139202048095391061964500417858015890251894953177507530905857061980451124540363891060368540039331210523198801039157517590165503651251078294017617603762242375184412637873124829216957962435314179633044670526681696336902356020465439672484699993724875271380660377023915891271891927963268572395113331611721084606819097195225398658021379079926086911387474154582953535804116347871973804301322418693486062094040813683033251627497667840330975527135065632136329238431267438746422360148599892926119572603614931718659242339694418196486649841743840910150419508186350883625134935631749312980382346343141641390359097469212893084905539968086903797104036531277184399310573182412200532151565205066361351659405425556985920141392984059211086064095265550910060298939177414451883650446868652355286616983002224680801609970167550405068544790895254415754220698555444756270824232701813161808352545410006837802523871250809795498307995640622526060008324881172688174216582846493591205909002446469202576535265712581138130281150459213791373706185978318219182062025497297279891127383453227163357299012166535501751807182658403482792138797337852339262779648397934356046489089022492653573598925637826285622677632542652583219932792649583212061616644921717490942454639679482402227323783299584352227610321385080603343677520349780183426329180857149122261877721762742058539006463987022236841168059955063361968361641770724237229640940441609154211246285852883012357107237573626178936962627820371070447946552520879434515261124786988530619469517912023652927361760450182956358207410578145457158952372252060983490226552476376218461534531594129472502000929977449748445007678192498051611275016292584431993634430205764270433814418181903665043973921902237551345932543337167808980326254201833140116535654331878179657202583454920635169585552567972558836103858431424153293842124431817689777990486941508736919192116855528956567366614769393641265293724040474411160494587637724402935395883199291722345876798154431224343007957504085719795650139726531765776513104869676556829538190154201918620501968774256004543323710956887780184790426494410099195126541963227496183255704785540576371744606660757772187741871568447516872538713862975139504175989228431773369242363923138900775466148211919108059787006924199539026603293002424526307164764452697546430724966826617565431137571421239975524739543007674218121273835111985221407761817607057743059585293719246298311662871311087401674073628991251506255869738998283062070228254970855562299313148078330628146854962120530249690580276533076742364697084879821541449648132203683807048744895518969943359266996392324976013395534390381815037050567063885596826541800686682459026400597818627284967930168168017676545205351001235141631114715365354397996709725363157944094968683507837143860056063733662142050794497551225916419082656996410737768166839096800972819942239913406619684249967221121647975749844732644432659491919464862516557133919135945819996859895594912561302770375970333523789023805162394114505957693507099819919728028352772671150183732494857465574301961541268728958574489666342488984402162420598103270734210044980034595967531285234203585597373244417640258465568764463956880478403185666442639954213984565231593868991523099601246321691576692077475322554188161457748076351744768938496948297055197728346081381034281972594413038653581376005343888296851433899062602173094477614504155196202861963006754944624149644311684869393128761881095296755176910961091406836111475584883805465370269789479828430387603751138312927920067635347840868047520139994153026975317599019965131006864326971475600662242741099472632377809267992377430335973279254209269413239631006634322152017889438948030412766003320231037498355935458090444071422480061169808677762158839501212606167615068728281239466331314780415053620181853642535614345405327049664693210677375393432610620685621164568909080852811740945201491091788008150650232975455873597732734761912751344641643196806882408180906959573885055364227752548395263291135855701566835816613924169105467181873657996308424190113591504887420725838894851330220195105109338242775595550639399339615523989226764840477675766701466489719902990299090436775582341972510398486209588210829225578612251622748472364638556927777445708387890362851960434135596996697681714644693305275130018067954391719273355722633767118142388447859987800799556066372618892772782825110097957597849670723513905115840690574537563588596970703919488671331699916577438492665815057441622163568607879537137357860533658633387433665201761341290980301417599273828323250761919401546987337458041056701050370199581250747340100872245730308265647977714312853671257883316760407553322475913792364085081825245855364458959423100151749880135177209071579166237456847858567699928922277685020355024376903092582671263767226886713234839360123736009259516333764244633978195126802519024885219370477120348163688396087043753899261838854272065478090590576863567454741826689355950589117746807399080541502901401587413090468081352967857716083725505312540546177228070163206004728172881711656770364606849936988745349399216849394768087870445497807401385609687688210088204685750825226725736293786017318589380193972443045368461911829770284215017601970456024591998190731338196537735494237209656346365996358818376184882569244887146314356119799465744662454852604446296124926638673591659960137756527272300846582718313391654110268623683801840264416204205125553510092955950783979792201686486539352712668714566410517847193417828045132883961039158039639972018057671082425256142584236735723074229448421332121404774363417230472860681183822029088781351003182361638475559454793849010877204185773563449031489855950482026993909554968690126213508129639348800046181978446240218659514209289983807576715959018809486889414272383740183461837784730106907592078812172681786564101073523168076555585859484425348064128302563786993905292213693859515904270742902160548561055932741755010538397122150885772425633013223424985562719583133847057385112072676641376278066461939918986080948893061301278814394956351624278720029906503174402179657231909942446484507105246535301121375830934413045024665649307211890505516686929102195319651722290717892685809240657797691855061195956095621545221378653645756244224241274758564387239995686824992824504260742197771853269213220298146727343239441604154379594168370367081413779153179632946002685877754449099237765253411382763204871699719124445808373134681230981582314320832350372520087292556263374077539877792160875700346611775140815145948899091658691774278003057012710939125185255991707961519576555231950477072240001083464107610967445096400845241978085435566012570077153768974257675196994635780132792870013429868144998187084666605734254824578815104294239983417263786146601751196150168068140382909995658654812078252298822095939394172930568643453742898829239688758526152651662682080662774263589908615102672291173693276296441247671875915230362139125656808742498692310056769125308623584772889740194489147340985290138916411558823338358438151693050012808814013027355703842809649180765187484731423592829210746846012595969608353412598366371970476284659874734998281516074983850196724875629973734615317774762504176724359627964258597928374949892206896553629414126733888799519115293322021468502418320190022604563437480955739758920088237631390369295293085701953994887855267902433104740484425887387442859996548443682743123455132442560293059576625449205268359659953172841981602295033683446376937708413412470947018514029054529652946725873832493618015474046530836171087658067207239734460494305091039994486966723194593209347196362567311690963538919087035660666024189268460655355116826029701861058464135262753775395570077721680261113913054333930532871857744056249883696683061875061449553117722397120297997302895837181983200383510074033210350936659770125306739286838538872130173917265290375721149149636002819471082550599063254714978855389399797708642235289995075490832104882421629226474836514428803212820508445225344121258970887058862489486818182803907725385312254270697946878432767069402236078320828189002320308041983765550893822116955980951602267458592000338572774911508536062796729743333386021405613116118545385314123029385882192684750938495204600229780873247743970241755707189190286422697424559994839896870129161268422736246330350225028588582814853171404357458792065089662471480588217554019634514549253059045836440324691950645196297662606520101216683840782234933928367183115610188595410050031011776237387948942330722507022166518581677032438684564366743482050259771488862124497852282322671977143647596188921336917696903603297984161785668410992059561711687771424619381107559377349314717173588081175620902700766196433725660256570911497707621876278321404615029967047389742410721212139584075679775327800646065132417797661292015509610989620104446436312741940695015889095256615181222067509609332159193034588563306408493643585402090844283009397447596589601907917020277644864329126306378264399040245549214567584892001531992593069818180261120749469638637460772079844244881137423693499273191603346947663129507271821224210203409920758847732716072468394216648297147001886939727478889249109973047115081932970803831107781926354517869269473131621336839522491374074875683033281172330817422925745695526354457390512076283330561125718014566784411776564244094748595686296832903451854993835379478746978375296839381403584769047995584370713460116812433342033113098300507087010881907972321975716541519477535032382417486978501364575386966505671825292033666977958546121554331770706032955657905607138192840908748071973902263977189333316381191404954137767692247676193001519843778824566426509327753322061671666531379030637133745091366702992751745847458731408137966898231984521831283876772308258468002246543390932763303147305820647239821826365739560499540876398517176253052327295042561257755787841671242318115055728948500775587085608155558421670405175570135982182634542279020790632069807932907457777180484602699504920569220732884355663029354182177333937534878723828193494663812002417021625662869432700291446687470530628490499771547264235644761118593955885068043807139125609017976146226473837330993219257314210337321578211587573260332616756339348966481819640147567183922324718904047889685052970799355891388935805536751364909250390174295384925786849811164965767165131302689361511089352433383200010948687032723110005544359860831174905760820511751441450774203724482935551515121786723955562213550103758370857591002995869324994031028065525232790960557359159643208997698399941832054762562419010110039596198695621321020041016284465167097147935281385809812958231673085984748036691264325973408556996098165546446443071220415797962679227972427090856265816663885401531103080234394527905296687268290178307723038851862542195405262454632331099938174562723293475859161866186863529158715999551222082735816212354165896585432417662826114952483734881569675775753594864555261016689809199647806549618257218659459433684260454971451195858355704951571284349066410044540024012126373698225612578547478922684512333854533799739186314756607388988193438396243837544434745408503404696126515770367742977263167085113582879159395758069955399676701580493086811040463216173326641246454362540556740216700757198621562612709303715415550722992201354307151232908771401588427976108852404148990336140634363580027786898618383167537763987540092304326242888248339363010657606923687306443455015830039433275639308824104052651584485962700647935772760729237774807640755079318503185238354956753652369264700892947084459686616029292111091966666059094495364708818154385226426396213443442196460187407819831300087672489824605894935777553378249531607925387872305575769419396271099420415087444343131088676452522843881967703885102624816353893903719770409114770065250714343125722428538511188585721015626363631081295458504305107555655084696790345718978223944304824589089182438723530560264810452226165770625321211568052501268450914462876029362002811003463728506892240451302736014488144912269338810498316363098818494629368765491971954919856615954346079548060029094772798652012378953531928821915823287413566569758522397143315179538023860806226542453258598873077116546452598764659815539967177700817735883515673952283735582874203177128652080287092172674042215388043550861851896198810824784410621888221923219273999012259404558101165889323426611629885514146282910840492447157558170923529940613562896522529993627460650256876966604773628150260934902185022759049320779342945547729493157901191584978359898918900464125910121803544122491365832871701559135495479194249796817766052511984514110101881273727909520651239894001098069987382045059155929109768305350462825973174264756054918195931909252269279266099844810045392553773250995780191226003110709338406671891353105274474897836745651900455785903621768106534679057321772481629443814815123461652157636417632695819393469339336487369749556444974412609605890778880577111372046827424583925147935562682403406465984385292393447947797572092309537662798863020239498998455253951220912077435708028497594797907575212473098879718655418651882663834691994677625481807201738044748467113801482424366025535696313561839898308903524443423743580823958200446219088655770374947954056404576969178293352751400885806501773706733971000702427379307568647435893348875836491164431954965964422334077056524556244337911478164928162882332211980844665051557210628641413759028189980194541007035329756030205685792582225222607882095908213902090147441124215774182145176710456647193405113631405316142533570541854754592644426358671081736458684640208639474458360876375798427338807779820858980694115769667697166799128670840091204653948853995183703392902853692998421089753857468030218652482626963243483517022774054664973428989107537436873384229769829169018903317185140478504352525261823019224825245054232676917418306083468528703486135127504686864095764277505174836695161704398042624886494636360449158639069769994858987114385606262837657223103624953654578509857798764993715090667231286548429631100150143256027445523751230638605349481967466077788237089208151874900020404433657112940970610692004203666029691019849017694010953922101176076340497373951384007053269727768737552598823534160076760453727217078300577058852845061722651715950991445569625061788221752523405391243940099806146174446402622630463428933263993023076977068212191658342529537992474410141655044077677034386050649091606060473548108916625237095171637032924260717625294013779873157837521249269645536568355912852871228555677566933318048558950291279565538893872072570108429616499232742103038760861175544004378870597470043296718895454689090544509784314152646238403263088257051354413251935931656381359240918988140599920215741606503181971563663885406311367999418806761499933813844135817578525756759803238059532034375769934314841106436730745809769340370286997102466325119262196375030550606756343307964467074027209736264701234752505623129520909392388452548129887376506817617300811271603706884250295815979905083988926873488093001677694006158808266648223492412549919135125322444160622734203576379038764511829894342367303642040198183761471131359544808541982925685607018877186425557458479715461399889244337540136475761181444820041180648976207794157759025381169447687455561814873111134282721051552132238454262000852876305374761641437817637080902497781384835311683105791682018878637917916169782993134213556230462870422426025679652931625317096412547780708738124068553189702138874452450403360631930637664748061626147716503041656878015382529589877947139273413834114701058584699510266629868874505813866721013084952518487490371711973128157088334996748013516210778784896986279791909202708286453875578061669003602001891471309911980954672162698716148538504727629125229798051750400497046004957258522217168265028134738475183417142227345295981126376707031379967998276715670116838661845635952403382786716757025326290367521859290219304563744652291253844771303194781353816331861122925802474291082419278059744162664679150329610542891277888746490511248473797919185717397434583988193089120073684408155055517976146024052870886513217517958587729723719414070321039239751330146132990091556976712446014309088542671083147808144583638005982796927437937169939827876823476211816986565469458551659841756958898718168895993174146544571747299961454067073979882828332069916941917284192975547665318947803241504310755451965863229431370793579340259461635418362462837510330458358888671355547872460879858439225884591606491707529221152254358462447999442610511703750299832796276842495855505915000582032543686817686468428547050163841917533559651023916319789390862386506609522405191523160469275939058802870031607344759466220572761099713060048108045319844787467983388184686312742856274385840371464898336227913145970847522919595675437148728198772276609915717673111765707763552411769672701810693638934865404499482943963762206699202082749153287920270066327035909472102739858942108537245303909952207316340321399566089051747450016802598645809490012516883891515405416189013882245415382549443638955489680020144530257750381849388604221437806480752104810773063684499135452402084522734219311016860235502493465932546717789566573696485842749551367643213352332824045117902950807856035471398050288136938869668650928957205047336998984958376677983459482900277076560630755357905129852623705576674132673084696331494155504404614914142614416141012494832999788829778300559069828386142990717992502784754608905328437007571120898609794291550281275038117875975353259055558987807862617417639249402764791980395371957536190394338592098388640505970886156666474977247939752017151416628687747935459665711652452429084019683882810271360483204312176013043620053088403093357800112503688915337490999341075531567409865267008504851384287602028730874214597529335090119974824879825098816967687439106455178555316769427015508063232135648386198077003988594577401676625337164640314529736065449783083652831951034043498796724878967580928467898966051707669271271937635547753185672391872561153839828339790783756934367803391690040599654325242986652313304142531016667567254700462564671049787966192103249434577232178695341687224624955199691546048784352453477351184886181716901033863936129659663825146352579500457413509197132398991673635602320052710796428200477790277960284911269510848192124414492178759475411063692144187717808962359957005875228765213584828876241637856276935140029915231477810010276502734593177183818151243155513942519476108612271924516321710544578740936240244722554793485882172379214672221705982241314911257425943819332056854877175394815135810915164363101439290352121940252019069559598482047927550407021660931868703723209170492385366467387471913534615778877565471625165712250842836422525451330813397946879305169535191443471482508112296834416075258620523295817842827895529567236456157080679069883983990973954653144615226970528842505461671990181870719281434427288605870463781199164906162070388047167250258059914178916106936756708749105643884987237593497283702623588364666554249994145871546123242632637175451744288066357774496859872336861495757343735822750806854750553322877623109120446501615451292139409340315974326231591168492862186546213160238291799784509564870463900249525644335140159590051190709939768294231051911269966724883379120366497341839414187858447042949325907037507190068804389549721672512451477788743971985541666643536434294600119056962110546632901518702016377230805898381853220167263582141970943273052315490888329090423955755354423600640633733427572868702271538167292227877680049915626719230252912566648008580707593537814134676964966884724542358719407683733082029949635678652593879991319595053634758612286608575141786288408927507742179680666493904194584450867543654436742039302177425708257974493224347139260770910757528018988974992042159614322853358798868114173295596209681950908235367067871580818539005507981236053562117293748313436621658472966885872028138395288136897161712671873738060474540230849705223470899134129337880606130483040021280254524205959163043224996671035780719683402922032742458794924036849779027678632525738334750877608001878568156398302515109724477342208356227524446088951263068084316178961772772313936243759129113722997699611331510587153900332548935668679398520975789973318245434865365295898697396906044512264906991326438598243085625597215065750933970061306222152591201933077671040349059878548932323234059140806045695354972402393270451966760668807113109719808647690693781988835700831333907958604595077815629803178451890318915561570337019974137510453938087984749668794626476730731254471640080512251593580221237808422671145773144839222140239955617335116540266662820351921556935619344183862259734831799374845654830594879619308226222660647313365585639527177893394887335239915351883565164635529916936329494717033148443318816640647315257603107855767234902201738743294256755589913475823500400114298086533847514979743697995393299935457954908397928029736629488098390744795921055527422205627383673018929038040666902830040386806834902916987142112889849469087582028526023032672129119107223026258002279434751397349462430660733075585726545831399684055617767156252333424288123834527781867298226700867420946090385993563075402125966923658775954478025591118952637165700689213373775692805666396037839245921482752886260455421122907716917948883191122113757374248029645786625323279162468001235672371832132172911375807818319844863221379223201712276657452919610466588854799659247622109856451583484357646066218109415866021074248680575546774319473777916818804164613656721169476634343190018571915504480777802274170453546013468235594769268961475598482965933783485014111095772525720830505294946260444445049307180035903798994180179703375123238931410081596907530648044933904361770947320470443892360237450556710920451942094323615217636202166787718489762372897990333573598589050784961923417594467843895053256536197983735590660151094443204094578061296075977817512642790750369282965737965738089010430797085195939240515248796400810530593012616149638775878353965976736528418648082449890654035421915305029477558640273218876655504227240420258813920634764784370870975521946194272597694635782177676377736702564872253421041636069839534308133128652405784344722292939165911111556223784209656576472332607528774797077953496201717714432185783554732318632704216548719894488480631159936743178948148066358818266446489121522833954820235201793055153192581372646488798683911624297293870026287587099604118249285415548194385686070818575212282279392356638207190515692506135780690517067265487861212524043730245574825129585272129724066519040201817259663446751763887916635349849364327418821009656924605962420183063764026002995645023023337136231663234593949282301152041445151690338853990318522720499806936910351738193645040992364316394776406111957785011514799829198485103919461740703508936020520122849422054171607082183714161338086755688645116026203344392902014406837590849558870047913196798226111757116008044057317118535324165867406203049948289678154266859884370287956485755132236472471088670428255973464726094962515863074403137951082272734963131565224392896128931753325881746171233498432373508164908001094552428743140109014317517501287895846832708260589576615483225524629536076970054689996346059969895514529176114376890934687967647001843566134102140284853755266669467536052326823466159588018775971180359935774938769726869594359316431535966529669996648084868783236472625119255411832259674695639790852825078270445806447331422729810641017379901938407281358812512143180858997675522858984342638310237972127666819440830616533724777689539050121812253157072765559641275378461775104732628301537648409377892477481208035913229347864786655195997419716420845561390236599896779683988399131600334103159105839318223925202432101763531340104896987722044829058915188954736953297652321736512454445148000955743003448386011923097048686786630421136106199365960644311438109705655022918144242448322554208655370550085981920458596576271768311092107799633603450172365520283907166380563456848996959980837491342045971861948202955675280618490551640572218369712979187710620291299903522710713224535124910178239017406103528292554085786468578213822605074138547268755644797884804312514735109136586895384867643407412668354433291029901243080591428587798712602231881648185991598636197084601117896742228024622748676699875608747279829909500300536018294901534402101325839204793750090297660871780705709275953948918908633496254728105588159324426355776081069346585908353892923780204379005090622939855537106676725289351722232051497169081304247181417493008478210328402430715252261567028115768530521984583798072669536752741116573399793627078155670186949349423461977889238492225865119557189220282153590561806838683554989704916023699115163771616658267579603800157359386053570683031484449869443476803259805273235306145106965819870333068815031752493488368101411033400283045922848959699640310188375933768471387277508440204092339649872756572942206607901416481744220267303376092404445223468614929768400825414211901010561184425175313056050664756087885708955477078846101566085082303444646531488040420852570842023665704724055174931492923152409528025005360493328506750773882285394137500839307410878294299274416476194800760858078946258182430141587337300267094026216356517276019751018047458513062453136283920064202809510938078080242420880087607474402890862513927363544127642943212494845108837711645835616729495644661557892613032687532456982548460912092183412885640870746929649432376804361409751552828641229168432702016045051286169216091867577714855127171767440169376426727142607551816411492052381834828308110735398341824005091464385224509566999086362797601142727146937305530214241792153365979308774215243330372765514447039431811526919613499698598832271740220806792966521784347608781310952088861682297645484848144059240741163266494242336274510032631332208239205549712173850635966414973465249789838992371821753365503269646682153361061168982971244700110950370249084416518056401500407117016132847675486346362255980016861229131245814322057719672507603646836490233138595149404657442232177117066854106047610249476938720189138425529479268282795730568575148491513964325296666880288095010661647989343438439659680863406100375599635500835447650188441339120952104780121764780902300138206716483998735471248081403260014793870543376733339567439560707940110582352646792757088262343875322815375687393131146145406488348515541169442277963690791623459979559055176408154585496724743511688204249655080539128608581310480245731052388286053141546355856828085778119828355095191270545019432949466808542321990031137161839450937621848832301092862786861701025682650119976073545739113145320735477782902831307502523487980346781208164746989695249260119633589315719450255933406440435437606614335562795884660694433579024408243484953552122031331273575767597677063340995364851052213272299813535688202123752329363117030368308308684153153044776558218433572026654662819083480364924813238636919628765658765518132829128173944690469162103499667777788704831271099559184471507863435749836507801451663646879800605123157101016175872042516019976467492636065610879630464996326312623254242823236284985905129776499124584124933480098831932898883213304968583040358327039762348225524548216739991153423078539271987880355668048840020032136851953240735292621194890714195151110567197526382754730033119670989998988746773764923282169370259791588741908069485579795485729346162820732559477530669133201194337987191902760145192379497008483764136830124223032814670174364442624467728326874689551340995533824330963068606555256532553539784289705556568503634138251925706750688016120722600071845471809652595033744456396275542816713212768026794241410048040621083787395399606738564084851638591324193772433054682392793132053855092806243923690232814670714980410028100241447479259808111446012093262505904897874508878135774492362794752771508547158767940525446976219108836923534094333528975830822571241983610344270025345179428935215250397881272520968167096229331199069234061260176723897100864628135132952575228424568688338323845437142544315075088734251437882803424171197305307832864060948732139852489946328730083630108498378178851345269051164023150779049401105638930646223858586576732059673572553190944225744457331223794871422440834790851361005543490694878294596264585193459190657585290132663110543059968745500480370831648922157060980341457275623595501322316314021517915538200114919799031134935876944742252304388726922669796265842256508169337038170480337816446000124874655386181879900911865929595442985131384811088648236135817662122203375531023869592345186614826150697694575264566421901519208241182540557550675000492507896722355921946188809612100123142253712905568924639946641037551249596391447806213165834044258790354734352844995656742333970566497428572918993066047171817717872908335230459436427757136353947719257761227023282326694361480227326945120391778486991553004969339989444053752193290637603837638453776182203747275360740779993314852199724781276194073029538661933171610677522281312877662097024548541764072652748119623884098241038136085536914079688814695196748434862925571367524554491007131972778281367225530079159359367555998417749553960667551954867200586638508573637446724580654973617269649806622054644267213498777303501879336926288852131175681963606965493474464244033872176510356133680341199077004639930480554160979188021325102683372819420879303192607339016442964882770349155048163201743686422995365426609580843427447566972106165318852098813571764148736347585193148890215953760012498809674151273067814989374141482790123098836882307726100699408462779260889951077371364726644392386947259602625199547019468582287499870824308344490018568659492982655471932886096100226567831651583730394936294255127185184178523501165027934730621826848807227310426483704572263461017735684632250268834345366777686457776530136552497593676012952749208655397724974922218554160898599834851496009797326122324361286789894452197997054089295918706412582772632791726216148962834719500847204660362382701363539788995047482718534599649195987012395193454390714066167603985983527980672578753993350890546698603562950322308908096664560322520774619698291843318688124493960064583377189093555949988490086352714993120129482522358554967432077192973977738555905380932273725622042954765229475764951032152692595217038877514510853929938769067763904060944241668213658516990378518515350285881504243226874573723730570588421999590541834079403934705453366215193581161931106312711184025342485121245577856927904402540607209030208728560695749423106350674820436531563628128890059101537175497673595034438055193788583999181891698536397277950822693470479047125761618104022815898490231393337543743614880685207625059386655519377721243240712367358237985406668526980178438861615125675315004163170897199408341466869597036030684093605793281030887739042242026266387469251975308465247715820741190631746579212989247349293895548481278706074712256664428224473569459712219534201639202766754525784195896314285412365459236780327274453927876355948137145335479906228560445955660791678851967216431122281257658067286038896371090292886498916544326700927605156967874318944246130641574301453376557028218104127765595372545727384172245090873312188854667144687576714039274977577660541987747293700768332478483668414236321833588292296115557711400456965190184450587149391405287285945386316922110932811208182981095817194990492032993385026065453683361858870264504171153248584672466146239714170095623630586365587190735429752464455120971514561051898149044173836264239092168273983622338148139157629596613352018016663379299258608959534653168135955882464480804202120648900636308385555183116337963830138257452316432698585372511412086670772115604864165089051276905706438797962387281904293198727766571514143933777049313048363204101973949478231724823728051128405359498186134046370244646795068874166657949420240210712626366338281388655022104781078494070525056329328618802651036280154277215577055036198796489279332824889452693104327449306580411816908389658954423049165688328113561169290524001068820615132166366420065590802333297594758310477663263962249309084017974111989791539269977605379235716068577488516329907444090908387173921642868484849355886414968458480134956821762917753570019025382134019627951466702018572335569743665891817283310681667092485864601244962245559343233633823264590426259327908046215982401066111566311030455378416531647917652183188796599264377931041240262545096338105902719166517425378276035286293337844587066788915065150508908204061132176462114292018000129384218865452035403230820839591614721626611702135369135310727134173564932718732508296048094490071146162958779565016348497455073294796505711288510600416997065891312409243034578937650054466137896233926072996741443924567637591318872334596756871708528437723835353207505323653150642989320017196768593255841041538443176394118666798055503222720756217856225554250285756862065209816015537555875168740810830467265894251169929768270087432095065732343457634495973288779025962132219049722889199822148059798042482698455461846788463065321942266759090475564237456515736437151757072848835553696066605126658806535995850486325037734974206781084992396890573923063402514790194488039793239248752458504615385994971268826787439707117337312549643090551983324587917616198823870352589500013003840521884200174171772307659276870075624588935266766867529317250186817216165302242299153257558355531666349794215056401322799439618391451693766846517247556590481794008650879593708347441008995172477438377328018216397757385429130483761271677826545498009829105811955053206748224706700208266312137828197085758224610425467779562857771528439689987265537515457174276607441286342761173505616618125849916018465353993478948479484563832461372772115260614987841486476538977920976862231173197439880910016638753609476223342454741568585048283941891339399499826062538779589763435895076294622161490143622905230175658505109050333346228639610405673616874507547253754300387415612979100349557391906451793643961604935745835300706154009410837422246936652124940039705655781029584372945886416418628153651845229544528491132542238188171995332915375520777527077338741967002175605127512592945266003100458171922119800067116643287786348032268350303833374068729665469472856881882646439463160904809181808699725083365634900087353948546344528834513563095334509652293218934666486321416912644737438861060603687986927612553841557135885815222501173730644153107391421993815769344588428254201513152387142384973107372770096041316793562993360592149575804170201110439003831034983331453634899175292316986268913624334473232950536408114611284685926245014197596849410519555359647236642669855533729481402406009281820790827510588933867997185666565035944606260112066410556679098926509007058552561500753523199436959582001614326944244686837775336056183055906107577106951738236521199972547592293092391842422191127650659414848041262949431473263779459961463718672757080401169222086224820328250030322634293389632529513064015302080739191245356356852714102162925163813357090430100654234444614722140200925556791781124351748891989636457630584714451829461989545846372800349035998279767198938248899000040609749344764987764653931797054126052899110316927254582892443563392449959999317546360160623391138170293439540283088062326040686921334443004811665526866937321759956153309706353697365660545355823094540018036602491459588076525080650466604587369331095305188874602004581960665222736151230297603097238032525397692674919842455541417685279775954509531513667744071028990176542553615867126447783497664519068840531734500569688353434108375468046357769089128240872144604652638482173192867049017690104407176953904887671370442833177542751115439726545980443504823032824327012440428030719248495709247338153235991940114717880308847285051709472906833163732864882278828729276593104813189011771346220804808391801323733396896365332186176534468738405849539898996877254189603187067585147829024461230898235032939176507619958979556257043356989829287331206857316858903256810010963561477605777140218667628623382288888224036603359924942393280383420121163808310310802961709626261781894111887299359267672583461872476829221917105182944384684001736455776222879071672322197446080249951009471974328321332472626616413372833369511916310986078607798259441748802717049330835444391352455159804200545519568041660104313025872663972573517871713171350640916119387523320699971615740564600947727018008012344130793939960805115329682359182300612223972228372435541964214424802456956305558225946580928531448672453606870538791068001428738031094916493953827445162272865364610802956892873622658530207568343116670668549023820507662242316252974263023142911988287443759849133185541863728355813177845793656193595060369522500848056630275003119891197292154372014330724594702655793057800659219878582808001832996350995118334425664653224447319654077858544741455046956757644272424119271207155211852878404803098938821944312358532812184827594406377061870037689228266613781906614671941486769564557798895382668603619394962938777224606715444113789124938641844907511413586932942762210727056566296622610124322543554624478267061503919212609068072847107793964060884671240033481714718409716427260511541999932147797662790774757376007176155416134697482251024848955596432640023130606644849060369310813179973166674458139462791462054477640867862328105410558474887425242834869993505795863467629932716891552507487938364492460502069375429512460129619014038755442943507247559091622702282315650469723284148612269821635311100717712022268922779615143465315524234295586913041576840114526990165671367127248585513129486891667691734857284745080650283472048592927901415844813717876548599187702762124819457784708725319577307640479185083331979075195455580507765663932239105704291627168103727982874835923408448062775980458419437457764212820894281899417604683948155175030279992277697280290663846080893162546077967914185573060454795390335388616137660821637632130571937584773817668536776498552421735829531886406018077534964416124139816600018155288802921598188151770057320906168499250856872419732817641598263969291391777072090458524967610629228783434423892547831861041250125593253130328233673164705655365191437987324794846445996988273331630372952532681284509600569960449506414608607845665319933677367682004680391970161264881472185988089080873041179300229544656691573971052122887672134799811746055076962893467408140927511437845588598856811242483552006634335926842679622630382446981712297286362980454920094348137093754900289628462751645437020253697006765330273160619601576765693070566949137456079021627533436634746968119386307197872158929509403651542027014704218393152417790984970180928463363302575477257307647831278791170825097197287834946275056376185006414298410073594599243308413275594978135251382085091271348199967926709911552526596805967817958616663858328793692982919276343478461423554936519107660502297721169481624962894389985605390756166434826629131560775300525202054333360914544112376094831093030940401032845772305476113133322339469873257313914918659797272549534206240299386114334310438447303321913086647559836265920048099727648293265599882619275241865362951834237988145706028135292608380675542710545468645218744411828736207023364529541748758142812213002025539928431972717793956567720543901393475389781268391175806621930548710917906424680538038257182566197781852261075158126080113371551119644473420748791499270362083650671573880238362020993515890812840333643305063559316947994075517512495907501776179601949633635522669729110504257353989560887563172227464660663065050054694202554111586436223244294769813784271790818597927836698372548194638735204814054747060774995905139379837131046117908419047128387880224991435817266640619912705966675347514360079238727465770755216510079063058356922654884977790714191540076175334890519761422316412994042544481622319141972611486178965125424115601776087075864132668685258824257242735755643926946866923989918439291880471056916890831194360289117942725708246342359862095501107048664515233204578744272608420625031768029692605587207219807327027933172409060667062199506221991579634779354494230440775070595091206555392671803048819528606008695546571476551227477411532482351116801132756782751861703867265223147473551004384087464176351569213888722248501553963524994026007029801398888737500128688927719742597114619689184302134950487430633394851749893550298848535866117679617117778871401010025196685845606040482421320629588027883285845589868598467596865313398560179576327584770891511703834414266881794183853356392616389453599521828826498200353478785869455952267655763447908423476227005734509503768004818282047235470453757964831829886350265814757326613992590519986778768357988954786749043757227662656602336123140007185833430641467753575434758323843702522693384138878988853568542253702525070432496330498901483193918983407314157273058112285522871352174304728658716811450108022580407982986124225987600237698445763841822975240433257235553737683040904649515237797032602756704992326043514532863669648976091450351012135781472479554291176210432347479028395059538610486842671115472758411081741664300717065936734293697738048190524507180930518084035273806429533196258218313296840126849131370243460698494016303859743716253035021652185742628632515124736362486863702015263595767009036612034914679750489153691323419705848651143686605185535178684824187200732430657602348886885905904775415322168693380078307353350800838573055849224835642096459014470272424315786736736828649113578133524392415097345326021029408565320488073971950563757183450245846525098148176811691688932302612590803456459562371726584721150118393410343420047262384513188298253412073039335954065299924151299928677804105014850147462643294938860611727828061771454940920615810727689014881819589107512974440164687487751664536890760473456434881957726744584349965172581902438115993085577064906426763413177365237853156538671826742774958984358023412893724883991659822657831297900488700067951019518887958429176858697465872805804218432436610045816542344426401336543660214625467838944934972313194289110530370263036117081165544539508384885962729225102473444381925502342756101032867495630217968675588322391296657842802801924214720939873209042011870018837482847080073352679606223343902370295773940658267465501872899045323690150077352939474744313340257472521456663452097738826599470543738912453899003739754683874656538467386969709075614363634646381157206423827689684853156500564900017249524000206793901717052997744451527608828686566415217712842762037181539353237784722757193202448261731421984176815084978470699020501981428017470207606983010138014622228590122576498096089409324639166586265866649462356515203070456912122938012337726568613067399434912974179274513340244041202389076915676979104782240614426875669728511172809844385808744419319403940938139260889172639454388962089992285741779867188495565324899641147012067068901098182047743523999289622717707608620002755397468115108035134500701192445666296674825868536190518948512023457442223750251654502234446673255190887194646368307359682342952371659717071306752785959410999058576004446485340497997431616099998531810472023279190251577777585242210310593105444177182454421296432006975119970033736566185852772545166349432097311211317118711433611747369821594437463061663130749919515767290929768413314642348128007717848290761710767486049424623965843566873752102689256236869947499251231339620871123438642357652148599003878773348830626426802439887637461442310047895119664007088101223133252777306418826056269842224181099560928379029985151317688019385148842432753446028595731676100924581391048628547947617398062860679475366945742936759937640699825854299176038482488456537942854794278141002349307005191444122279370356850811080116486616874280376538564196716054438047897218638827164821470362094058677121131444860907968131848353348541118232465696077624960657207532968173459977834040229766284705793603718903189685757120738126264118196067181728114580913761768688441938776691836984708055156658235523441424396119720548324256855351612048974391670342907931011407912637678844076671028203567351726722673135937288281735489810754557262537057419771649065086424919026803017977014239362903513277885744347664256552005178902140831342319957506337169961249106305675810585827723489011535065448708260529845043896307812314099498685283047753140889997245719553710567240512727799573045160993918649631454643717769139664451138230967667503739383606127537485359854685396299834298041058816260772078571172937848576066951463020103140464838485571303244683767442653408211779664610824142151383142047668488202876649397380491227352776975001584934538535630375521779024361234620992588892542059331517719549977011514827176721860461796952850408834434335577650635375051519316391243434080307556005426822546115624636313053899264675194362353012176055160713567187962112187074613944747310427286973597093774964957893653493045739385742970194432055513998586522778149322442174193978324376248046595641462200239261799912017260707188352682998498887311692268677778664443900429456287862796989255519538109737201623733536871898158399960270119983421531736313514533989386751989537883283545276524055956105651441942150856476379531421663047363620990943672014953039646926677678656423605558570325443732432649101292296608979596646246782011412835816632148570552219777261905590588529323581300336989304776126635633760093316853735835544347297258566671781871708362247993708058176214433296595789819864008409889362884707064983478516023387964476768216404999731547203448309397887375452930284894215300854541701517411184750513829258089382126254451858645052090260768656575323228635722383163543004786727948941611850591556362896599935296101835562940942752692464927832438376950947716392455731194909962178812356251518719837534512943767156267014917632261382482656545446800806099251327905301237218340679000165743745060257237774195524373567663885926032536563232002091653488406244411404666201803558016182717926307224530213461661713418428651832004316630838815408132504832924245702377604499025217766416211062767541124290595197582989712367319895351151684733993908543025572179792302397038230641321779360918149676567630892478863390702214052231898751702597812246174189380571206821855577817020631198613588514316361987716084200043817430110624611329696108708718177290408002000749957354663707367868647972802376558189240164589476765324456371740279369072671817611817473138551149902009689137337107176065501432208726538588049970537341421193040729966711867024919199878468205536861887694699348002562996319980545029988277965277530556739479730974886847358328812063435676812712613510464239537241461188014333375760196495564793438012533159075992938528229572151199606192103373091316938305141208437473575235513390797706360456302106961561301795756089668223131991636991761260468704716680370133618657164700930865149417516951016351650025263067249358524227652730158168437616259912959903323668816531666954673117950997342803499227029486344884317811138547887824086027135623460734182910088493414920237347194033714152406694712556678027348013065837308365593204950546105725416553337051828843901603641228985579309032573516235734248180224581448961915277233079917150569885474945756489422146880459852815427402307008274222731429650520481779840920451318015604296893064964287890503788344357043247473408027187902489008196747535113986179574328648660511979930046278068340751158130707734914352630093076121341270875372224758341596408172773417908236548955801043132700432068864655492139348029587710903400209395668982454385737970497741420880975635048134906365978569596182312783498002734237186604114838981511389313992551865503669139938790422693230288020335659905244554633568978273160772649463935135730523103316929165715754507113124919205617930939294983619282608770478520308989782595490314992248298784577435013932805013582134268840138410917129356310932677631220162665454503138608316130452763826796192018524366673248779864517493590340937363620994548273829616650766134970161128888582821177921136472036722341780532515223807898818627551576891093877632724256457114670196327010625462272420853577754298701743012837947393156766080670481036853921757139479085813934821958328251958527920355915788966153417717459273319329023735404071694256449154095511070841294533289989340362954342822739518511135592717076086853034928706904913656804197286384772519422682495781055739970111317153730100325227342463804823915678169674921987509600593845221957637868929518811120171569308963285552548502776305909257914542970829020442316287340257444919507088574298135903196800508348740243552693046906840621120005851985383934812505633894731380975517091467467221507098773528574591648948098905722013120617830571669911846262257365738089506063543981450482655431940977449922434766415336668307180957898914649370865973500397233395764317522357448287017489319834536755294806310851342048198762078894046878469345574734533994690111095511684082089028013788187679517049952241279705138630490080273657748542376609590865973507800961565508598570151961134160904668771991394698015232847639344165325096369665479688711848819229524323898907188862181054048220150648137647963961086958535225423449302965446697156133834059543644971256452102456030571108088345096890496162031468959890411932737431522563875883997901692430012977095921360358821985109674582240425142976123107611947254331428258173852261389521325939889131229626952518742439911810244841011300032795218800811548587432742511514654646980118129145778875877455631403932894214678672714497948003216580497499667719543255302319145251224635229653021681746145807593523127593307114012787951371770515194589545759702785568095087854929809602729327649981219121720993685557662894114227158160071146954312511322914439341722940044078734151232001598284418030788664102450935486586306587537827610381009271093268406183680764100690412450320124601345236895010965816352954667397777199286593544281533135506057879649447789324106787095868416499674765671418877014852826915781267542770430071030699165770812238767158844237184019994040388467462000232143068716803502728530865706355592725144304046048221541465567923758517826416277368985598166524419797930510956750087831519096651443142305636131518127786704698745780515024661546727450087672029237468628965399605503615246970903408460343232433536387217269511060612780942604115399021024670785576326794965432635967636603651511560970364969868279498534723329807503025819788791553509889529237112863832845518506210966213783016145499907151486504067020183452179639297568654227168525400574787060370835620862601951419890541950207724773658434031000635752080159853032624228671260469039281962512248517017496327258751262446403863308644404235441418007063155930035680116310659002787077897637897285033981298826942424938464975192646251909053999901050023409496703245225223117979404849709293795591047145550870177814036596865760057093527054165201983330875667055354037429447912610512857680989322362626821916629710625088158638815398607898676285128823955305109107577619305692948670701366473495723947400436122614640978215506837141896569175144041972590978618154203366135811506252349276165015955777502183460110043816415364021236507755405121926794815905334003970066671398998156498447734547445743653865840570276954048073897950374672280388084333124175704472898129266669821156243449060703470502675907305267142842494823790205968554581888159959663940614399251965604770705660333821406461300726433886756680456764908227038793465786704532610849240716386195435765983614187835168499608827595955599525278119008196448549171819290640121659356181596917373736256649318872594878247479664386490775629107032480612422267701430055630514482561304098794060526320589174912491492347188575273527777395199370226025252539363562285572477618987194822478690329878009288918029622548540147917777267121776385907654493436517667362402451985798481148629098012076785292828445876146806543271750967941800724459548383144084827079693697469386735539467287127850435472355265370567900285958057356554064787786623538634388729981113549160490391250982285688131695426681574252874145536981719697960456939337647440027631819990577440554059307064122284777109292542391887117041633578570346399090783725880162577245023969916957366595087265382968713951772312303723155797527555157717488619466526182425379115411594906415780375794360974990292760234307224850007883513550833614762036077901979975404439797446682054948157789284006398116567145629121095514393313706339120163699331236633636584978787886580578575124989240743869791724438995523595973518080752772782663090078266328821963610136008819551076505670475444703838474741997722668529459595267503398524480479180318641758144307007316391696305098008451717805734980923939466043580243450705446026828776472263318878221352101992567076608518932683949961689176461200885429544800664354714172412773037409036560821771486738432089864256217008710262546024236044625924806525934211552576582003981289145764705705439196456931679928434004106335229663178743100523241840701808099944827656040332378245603490950770437484499104281701630946245539365341056379514355129500928642341386869353751586981647896271297225147744803637922419404880673349713504364760298237816798532741636735146223474782847992674833371946336025343979461991455419200794777901837682805548060081027526704939420002075287826729048984540211004861761594499420389020137976073230860503919315090965603635767714609111440297599254563047641652506642841003215541172180017389819524561787715385878246219735486361100167247971947659615116532234212672833502740321539416241889815818533509318443262817887748707062070350693555861833471380179890487974881788593001396078913142717884732427652147317600684433784513220744247061218649467874319555731647095846766234739125651510293527801048704591305474915002283380196099764908865855672662700048647565517267473942309356395909474654034474071711184701510874712469124372969797185057986902850596186238047624097680604062309319198587192466820714814913485694272096462548391753353779303895619870608911043335776259347763458434408833485812583647335817169967877142143945214457714936945702258540002190046324784473089905641957442881079889079296478802265733267499732571969359904212628831372949338773882469962091140024492570872772369894374706996128570482512558355698069384704111587153159608406205634301617007295987526831634600009902353978344541822278795209282360001599632353271684131060080163582536526391337069694310607486502941506336148884511549544865872345818435734972161914370399615459923217270995197465173034547009169140799394999178970298499137840306189431547636884055749740973853092231105693743442866200206020032021590535741463491081730127817109332089270095511734722983576959804990431490795678740608003430496506994461122560765706473006124146999638781569407688230412412837436169431810622983125457531880636985888400253947640636421080376781038583321238478710517363693953307081016593240323333678068569690591186924956263523534899082325785784130358070901037673570905998127814444848745599245626948568262986961045917485507393846093569847428952525614246476778806734561843653524097100630685454216046612851344568150766529190159274809339195178866324331916029277765590290499580617500787452855525723311404040838805735546721331498936654693345626756085006391689497256293325124042978230402165793080486746602418783981283758046907716796667402155419791762368257921292009854055474611292091346899234791487326106037161885885817920163698233525851844538686998855898779723789102493275056336242310807668447220759692115836628425652195383725086915513272352492727412171169144484504331676212496755901616279112642528648876075485253865966945548201103814210654055648810662930907690890404255901748551714260234680818605705022746005931015053237304951020922033161482882735660449499528323044071514925672685034609684756158098821848621938688528766869590327203082145758877566487714467051031011480770113386488926482126982049739263420598666342259241415083176653414770639317801955096757093138781961384143057567508894469530463880958713589817582832041946539448714502393960097999332850355953444830094830250465924602568360739962458145504553587028260417746810930561925072746502997836825216898132420933573034129478223497489867237591714771441868820027951039339156825455188788419601413940036703436823883295357801185115476648735350266701520799257446627184371550964080881001519278015163356737450826281828111612510780743590913683791987812129275274143242894043355235462339205473612476260734044010627216855546587481395478699841849250040695062480312199072229982726352960130334192319078991661635601767685633913030917927754785863560791883977898708601040048313479819176119751510698749645565082543237243879234163481814344387515906849232036573332843687605413187723043435371489579079949072253484571821131601202187651536730478485778066991298629140943218344048396756605015291153202012551049263856254004140993776193999768401808630405499221359281539917306720767160303790008261552546563677219079789065873627968804548177527396007581719183029157837620503377554557018195719105493718121465052528147256663447797883556505051220871821361357948024267382384019538334002955290181436409532707898873780380878408769603100609671779640035052868929147598719717455337149991521960623331262886126144354143759170947728554979746243975301315904149719923350616849499167940819276446766394686627368554149629600552533928282127318781832250947235490033174459139247248302465308623260255534669022315681033424073684493828421656839839663185655855821866372853319402204899064805032031499015693891671487331238003215081143540602142429669784983883925814861849117702954558262285682244216794854339637279099820751451656243720662260254631798683443212995222460279946341654063634914912125494254785452765921423963358401673268806783616626891189292198343715042427566171258264384185639414268013116454735715251916044062671845160600280431885852420248320950954039407746408246561485906497279907857531945004049909960537670795234696141351382806735860031173029247963044119432981444775776384959596531651992862415314828492934435618523016680501001529269266199661729679200027623651286455561129497264440139500830211127482070099997562813103237241907681623878861192203654795352502083536083140942953791211778076759825441872006652837334799295162520720085732737374565089973285506471382519901973305317453367860989957677053018091955660585677340044733107273422600249560274394235301236891999816640039903712311852297858400628483621421365889474797755016936244772454252414837968808081057474453707214245784012170509344552521682872597869261140373587140757976741985492016785548673235177655435369168276967368777233058229543734480414370851731852306499090913409578036528310117567032334233255216196024606878851090105294344451087160590898570134985132016653883451488504203734890079760802725262886701999343858243334341945712250963058667467373467278418875102653525535645326885607917781515077079204240279822952963113609958787870955929364126108019506198449786313779177155013139040169913390624630850622199868847751348290626760171192069945130170881251061579124853427511782227604391476866484022647039969137811771074204576718748322347048824603875600342930684521193311875748800745136542380386696278615296379464300368686041112122343154738996996908809355913729348069981086665121857019848320705008314330994577082858625985015078435999973160820843350901032175375494505272745431828360497991473838870553548862445075832120268316972403908682589739074857641341044470943022031842762788227102216732180281625914348704030771110696730532307553882930650341546373340741491088327369800704510071548612136373635782635121201512836004854084038149274186103504486694200894052923139456186863370494401195966143798564931591747620795136427559345125649514118473698289505924222834642579199942187845808149239778743505808525110025999289715750829352957146338144839773814212969757210834731368599347775483291626589141371793065252754605403105498456583148212393247773291238485536010555890639829255737874671822438826080038119551912112271742204289386402228712865542156776496204873045334878834088479650285501805253147281665779682490639098562636804723848136507302710019747761713561566754039289599416798394038618514810253293673071987786458688854900123647201937115418128498147039998161238031632873349119820579460560961834356890547596906741903437985645421072636216537382901749972834877427172267404853753753270456656833438815095779854510825891397931126707011789624413300479639730787594263244933712069055319798528860226782898620096881569578300941678232078610849020790393520689578713047983797266694143372500521847947819700099661180059175238970549970637949348960128704883731439620304161742449344907362639381250437164349867625694739285946432249437899694130364594904229108186891359838450040983335407698470121977662948477748660709107441931290323123715157272058630852099445883065228957717763586874100984964183318656135744103898575135720124895952596829633372787516938075670341110986518389426136518731651027640944149463429780666615999092246956796818892505237862032496202176748324558130111936971189496392018691487153430414667000188850745270742253821831596164262393849439650155444769030291373835862990752287329853016726639519929026723377516137680722358182713080610526155988813712843778095559872014050835600358289034132476005379860896429307085582273288375696729291559666195379586310110086543474484813233939997948231242188502833638096144118437715702800893985934302914595812907408699468737153490551301081783621622432996915368837656815763259496193306080630637664237891565210450314041024138951865389121986342735974617511680275857601729089343409633894995999540509487250133113577243021805403563729196394159110446451187998137279112276659154541190382866302493447170150975444932272425883964743774079275686860296627758407844849306477111108606758375438558803306057862177457174268292431745260731909107234046161145172480850661383837108908512665775344383112387747058577502268817685233236722016514383920822453625360403838483103102095870014547333721593335495579382029765229302260083271161801101664760331005934060035525623229462806202794103088332060645580413891153344006106706758410894031319592299879284907254846826685695791642880688186783476128901360074952768016397425323243761369925778255483145091386208848343851780535951683146949656593465728182881524393347477638096503688449632621171015646752359749819527295596809245237277891609811505116310998310744349663972648679719740619983864425013303862434779950192596314931861841062030425583127266194832211846164086310096016957771539876200996010802370118288843888510479515116492524866689775923378282389985632412352220887372486079807395136988762335417557525303502535493672304397110915163672846515368651822867285576660030047344228598847809154224465319031064224151201361179780652321872397276227544476433821370797830795486701084464043621915585043373225309081215288627167017813032682720903746136445849796917294598409048674691708579982466863061007157366850017195550094310850620252222849816489258991567574042035699701378404534727523217168851801314455328710825315687410901936929541772173842054943111408888302013512842548495493622808405621155600714531522471287763302705147096320342030800532688443219825886193090524884496767412878509045545477149993081184227525825513125580259197392943361467154583406369263255422515820231791294992141894602122437736641671232187455509824653088023276461053421851650390803813353372209849997757985327020114683016436773391386630512273454016547739675615870056836162276083319854029479847681571294831143521174902195377489150104239601784111870666134479125686681876937954207805089464503515488166783208082325362242027883996666856559436111374609951192772007763954852490215915913401625930838403623189886356938119598116959929798338423997562785097571246314402109805315850934327175477835581382483825410202272586134588070420820559752696138186414593964821302193222259448182277466549637307515092673113779820434675179003194414146880863438092759813002269042074213288108502676581661894693855246759775827347821498547430709532371494306213966828155891462445589269992710295513861099999098796270971907479123103242206320092950934762908741242238975082873563104815876713748044348907001043659535645565497604566269126813444082053292584429936877582186688751058722046434970717063781106562765395481347648053542603256662316446070506033809915551727726887274972080155921811381539800185268964387010157726901407129564955219929580132773854589735645721375849082363879818743694579456546482969693277199836130338893688221497167099454522330002455507939422707587238355830920579648905406288977899510657213731675004148415946733124955212744645020730280756922346132747904800657230011038377520767986077601359873793898969567491164717924516406196096559639029066869130804368218670474860374348456823101305781121124283385576738364695518003831339163381473607716567353568441859742571096300543615020408279198307061875120646018427749465987689007288821346639982138954652429336674857066044690838081933760403937160285079390239816778246176782819368247747781136330730637716642023403660282701714601784345775313094701969580485101035687691355603603518825370033508145523576311672128028820583917960127248186225166623696356141865817103625985040970791236180446830750792653735722639028649297656289147939334644793622437024508769564609344977549890219075822834081526268990432201925946826113086823840522828975684979128667242725736672018534164158320038578679793636059763426576883177898328261080010202538535439833641854503976176161505408373140064905845402555210620152980258811365777433806397648536496413406002404300587435129756829680149981316472738916667622865269494086888628870290822022274473392540024883055047969207233999041635593695494680470371385511525729008418404639582463496289794412407968570901810543014049396609872432147160008098269326637747410745681485299968559023984212509163888190920701093866950433769234413180288943378522553381919305735448356673850011674723411947131584665936141824656211347019884139676852048943550131838842369962876020516942690327414366920810933715053151308930236484233655918475291850813285614305763263300286971552639064055894385876658031681077613640048712830898579791503395804385930534298145932747251231137178668409169082283809546890247558559231791236699402672775938378092524033594459925660701705762819756402767691136595436908167175203840179389153779668154864898102561892875694879738297194964939419136035147883850019496859659196802604025930586467446744813682136561646372208765095186692150649991708925146218646409253411851700346454735297446390447821736492529555250160022538679733214183181029364183771603228488042411265792849510885302691543973204529667444362373332995617185463387563250549029399372591979948713357378523153380563986612354467287522230944138229164102646777983295829278382731181180491843960147139013973962243805749363692409134761051712757804518066202918449569764259890403476033551055961442124777183016786866254363731837230669576102365661289262108318277058945821188353821273812782694224816908711805536252843821448101731878031139868697193765627122884383712214723075403605136378570889868715448753839608600945443178907283933216206655001781464667618945059107591515923693877262151079510118820234612615154956777700882244476874897803101192860280284334755120430713562072796893132484239191885479474071047528628002912644114088052505193145640848330317645950410634207399866322720833261810282483088133651232422037103376303359769771616814314132720575920193119897942817807314353549975429978854239793818451497943878719625883916840886802064254201079337034247223338738881813422916146350337235084455209149770117850950402288059041908692527946864688780263755915821355138248614254441196390033201593041934251303755003039143824619539237702296350237749635036335684901082324627271069174089927583096425216880606039889371800686583972985712033385588142331190558402844638490877614447472890762484132044781397664697238949133552417778486346025854013057858395836410136996814257974888668617423164505872041476434375562663520724584042167346063854120376801796986045170537259585987948428472767574107475578519820688558992826857785000836418286036187891612872545100799113827598769178412925441741483773560795626325941729063956402466691744279405434756716614556844395542417148071974880682629164718591591624920762552861125801853519308919553031362851611394219976747865055691306297207240171279467532632528446567221461214570531860295085217072441023601337592002873417277739485726324772426791540981686787203299016928907215134337342674540364788878719006515751053749528099133447102611546869776096842499152952059788315763446487632100919731016994751361502641132114812292748864131764530171020540599580865943179325991001014382908106295159955920995185530273009602942814724983554625071287429152185252012902912509611323285423018747285675519245185533323876677800120105261615606668135736695574879261912005032837315796303810059800417673701522968033160540066494192183506662043626237363198842188512854774137048914986071991841166706236694601396229285680567662065465580037318805325245580581050159644516212800964314579795516780337215310235574268649550308814238702938307200533163147062153925743400419933721645040484207131072645068656030882188277551868486208738224086961134115919929631976890332691233758299321496141455619346554093989674056017297157741154443279511168026144147739537116893733658209295597895026361268321480408232542167212580035620930020830787401131633188459784897270087200185399056184586390594572132556954174047058891752040946646928610150119479580421295199829224331910557561460862415533941609993522889312140891969626020608961333938883765693590953268807219021776596835147388777011892103699270519724664989636520948563019946523990303777210444447421660499783234552789897139535267564515233475250473873172027288892078440869729968142458400323184205892370335995797107436239742137772828679951670487718416269437529012689316549969985805839582223461976720748749379749338126028441893523780409484603623626535960757966303413316032751017188131681959021203049547170538374534421337183612407005621291154391968424352484016193111821073659323309478751562400240826165672541056786875467555813009997826153920072418332719054713173944794241607166440544485104618679166052358418562978887005588362415402300752393679401742870731186646219864601099147722429503016918715881501996263883782265902944592057662812639090865720877265331373244978841647319168177248751450827576218954159349912461288095082011103747303269471342230790342781946251392812211638056974631811323729290592222830521485168837785106980831032564205245447646597803974569839923821743771457426355833161236129570266883165991731388184924341474505677589866475307550391616372274699901336179242778809721585325608017909226995588966384868596990060558440380723509109754733861112796107072337233218567007371601217204319237344364503744097968230182446233834272370530312544668279789288297523342329869207712905436662364212453586559010755207293328816777855825073019414976080729064217349219961791099122992666689738243774294825510004729380849898565246942128374773466118008045988341832427977731899613551440967542891699111779980166099824149065782351346328929453676800047666418901325484546679139179745102816908027918253967990000106239295627497831590910077397748449784948032890498443493390530101358762882031033365890037533072968031490648629652696360996340518251322469690406564634970223407358514604019583572344551203000874686512059381249842437603771535660898268186954685059902743106356029167483066966113553450122439419972611048822022349539148848065617419729424598293917528644164799779163903046522147317842447806674839398548018600160732918390847992196473529964911663340384343730508897587740262570964574817386765081082914362851280397996552822597235768326832727593684971078912819295100897173248807674267810917696869728662533197445706621967541623277937291712826951139501778942875997931158973798267252946444533597422141580173434322825438178095456293483323078245392914131907729413313439146694592037074251223344226290937300827867392820419570275531901283668358061168760217581308670456945635222570659388170920839554478501531537776671501397633660155949270569713010267670003105717553296662329910330251682784154767520993849170581317887142482921793381747141159911615814736593651993105950897492268708194605781927467938158994874289134293294783220780934342111488185107212390584309422666686073961936748089384183952350813130045994607844668717973275392235537063294191064659010683148827452133352852233865361010826896562865728986568076070402237758420584490767313272155049029475835447652833587355766102252115469440768710038992915650510885480045225419280243042224291953214587065986848891392388049493389810246737641387166407219369203264522434303727299470376338280892533059884215360326004459538314429579671576115139024616337002754362444727092046917598855059281334927672207926223830298826326806657372513732319285015981555912873150882719897769223515844729117705837505755178995487154029408124742619569953977688397431535601896019198906820176496420676395853831942129333654172979498361141837667461554516980635095508184610747069653577643439107888481514064493907076231604712176014282610122847640056170330260430392461159913822099704254954143843040842365057032875243986516701883338213396839278008036733403657845314021480619487455983257884889291429739921132828807912455639136469497310252272681615208493703469677090615630304428398419506170148736481150350441085937719247249169264368628878715531533233915471749215054105556145674925121816652865597733278302786204885183152132627469557057406236486779513668549274362622521027069724334988435437447392803187996980402909345510587147403846548002154860978510440958889764159145494804238986501444781897020942310584896643748869837341972960305277905451936420484433328148622112748683603229579204957670578048834649680031504834927575634805724926008666196729327215288587620418644705870104369427605992912544771132936595989056946653054696755880919621048282481775335065385635489980573523344056101018019023957338430155285176998909014535279685100273628171952555834332854614538040357287195726536336963776078816321681838042924904243431781097572086039881352077336552625866949564238590858132523383421934403433264319221959190091090415634645966692403138107470614651955361146290817985436941698078788441402495189282037866751309195337566394414256166998892630750818479285708172674499716212834142689356032956967022518731369814586141481291396242178200866224834275175467100688975454336197482493716719321007632861017852030577687475015181436178923877597389141620745636793182958930497178823865618487030070598428326360761021711159211502557417752706804846938316766812837858006935337644880379750020809533755697347231759172095816766626235893780907023930380671560986424149003209738335368773641601622499023907549987486882816490212350895401401485299638826053728623979256911653631936778329831167327993426324230477195697089001714414887679298456477642211666751213713414098895238733925093806681248617774583612895132280795694509278122845174375228113724387819068185587872430268487197848935566017801385396619768895645868381261499322976801774988114200579070624159793865717172579775482195603139568305150843517821093807493673978812134648029519980858097268651695055605006976371826107726799606717926092464856920838649589194448739313232524719643934954857218399504049086263461421890028649842603683236604346117546161825200716650545773673551126363180755274679563699143084839656373889591168011685774076857925843751861037684632203370695175954792800978738693560447085980156432941321750302861998053651465807812277905740210706199273762151671322646458074002462732676421548271505161640660337363082008570628356015778694087817431122509485887401222378335518352759096319080068381572416701826464852735860654967593512778802466194383890012304717682072221717044160945400927318938651829156957376752254534003099509602748624738559484422163497281265227405277969268293749750825535997049350318301037132094067689131054997916315930988454039789742357182786877767684397906158864495654389497943124043862342893858369459389475338387817308328445971996714085717094384550447791095966553202133267741132699248090510832688432885838995257371068674084217707799692527535966547274958949408477891282005373807738573667745728294562853926815643838574258900078332727446952806072670926346114005773474068881397465974653562342181454065999952843270430616541995545168267953790913993250787662509332326733371293492433791007886696852124818329349673017672673428330977294826384676468713045461000113263447622927210808442852469788622593779502693990074139884718545511090272917811796617801456681702353659484365883720767470349754972489725801441821115850803215730239326014033369323161750610714969796769618525249923106449815375822544642854221895427522151661941344337798010123525054639226113346843738304325825364438237253119367935513139118508294201004883757294492749769801275268061331500221899904387504909787109357614755237013537226457785088085143737369212859459567356136983282230838953825411997691792935815978276647279648118328137399053105207962720866406592317306918871446927863709490351678634156839848365859921326413862932478285553768862227054547838734561669650484594199344033524215785444893979200345855936808293024744881646699694023964841503894130868515351750763476267249799520008066827328857508560801034198274225810936968813271439577645348642803918941179415363363124947018107738426016878209563658818109467769144313437055403286321342255839827635653954932263003178003063785634301110663171275696299248546131466374300240359808875115564009932728801377431245193531233669716656674145387386400015122503539306721318042719017999463785636379287107884507888700691263402729260823076307734028092892265367188828669353026044730396619931506304034065399156693746985338908728815365926378731578629257910653540357825055451872914525341384810879950055390187221685537749274766602795167042135254374021964946486803977590252927101423020566909324939276978768341045322670687122655189099150374285637251741697870364132862221244433193269118386786794840343530070764065846217449923084668656214767371042753859128164824274437721029661845508582604335685676917034648518158333930358064327356649504310618272301881627683089968041948490143116644794788192133887554193032125544062692653173897494387240169266925514912697416875675185054106644808208182991799964072432060322646895430634824246650589781332209768928510091469217368080016744190616114450629419918337825692094410576986815689946679410496301091180286353391563602719388357873356350445293646772857739945348214815009798450095513248710576461089715131128120182746533791292361686207865027964431856572196425681989355458105963801498989973553355647841661816332473943869666065534881602599647279630196637376331968259999932982962123599358503904586965262649900760187858552332796361608082537989287620403729765126734411064305758322900832878463304365797900938543017700018642224246469352516296014336326460493849514960468118159933135421864689294925278048110319038058018127922311641040505475368717910459946680073821462520082641198870454050123963103884321728118448563438970075651963462600687606067687282649667302011225356058561371415391734071882738363987272676919190795882062026014114032856598687047808606379120846376929465332601193031161762218241086078154856101715393698565360239621540970752826704274727574845433041483692004334876898281958092351088919531076035162900517774133545150228287751077859434517255012517497897942343104832921085575182283379207950641664659507498700700617103305459096184938632798470266405650333454528920482600921117465078327779168433342926426159196774787994764868723999640638617067518064837631251183285729246763003933334246602786894239056436395980853283809741434715050639848327028376313743026899737054001847107635570223877063787606496190351883830045140469401264828905016644623868003278859630283570239613770985370300280952419627452323702208476475779796428324369857032478245693902955974379677137728740808519791841009094886958493729755155090886111169138738076858417929833374763408597442559592779969087603356548410211795028160198359123550727713968027638681127592730217640413240405578502515122791414991327334584240904327888160483590262799001048542956018604541238423385378708909731804962610511962957995419153321762222599711230618346023538715759281154143225446150572237429056322466176588616750708233896428250650984190224507290915282506780378440149278625261959806949402799438164196035929586934573777008510442448171202715189167522122196013452526651740811385834804545907047459088751924341358763147062956746498274137145380807154466778444040146775125805223716538334305739130252585786480551252739342133612883297161244580481093900181427915806997753960621762500098379494549361170326021642721324794934264104544212033897017553978478858026935540419894384861196489244280109627541511366669918647357927263561663487955407355513463937790604531695280400995546466133428426979624536457255242716548418393636221746580587434598838727642991251865347134188263608289633518861776680691459556838116670581857734067580211730297799042519826249408088335125076239592372116700906083899541994695189144658665504550072781064624031459006890317120489659278259968594964363220607209198232412434834441359763438973134551442434194105833649334832300754902375454003258365456615986710259550835811390506805001716727457951784326958651077919836709765240684826858782677925272913480301305183160996759483599834935595402338270522924564423356412399305245914289228957847769710926430669325601352341521871650175397601381089773283974251285873968588786620704688020951857034439801263444413268514431623067243920234450367269222526457697141622130172922267938386008759394780172211549760146873820678424222639166621023800485912458388553525008587351539892097139934972477131459675805601023670791081219716059415970383327286043945451218535954070961797089060351780725873127670742957450801912368377230856577019491942152980113614182308195685124713678511512578654746054782078908341844926821123975236988254831230847788399449725113933887453385340806724230030295989118287077102557807762961764703222436219601452482431181448994716538914356136031727705622847163507527607541881869437471459329763482344218815426773648242820017742564477608107468467526050594519838273156933942733434412390675836701575119569633351746797360158110179147733752615245260956943732724221103679688156712691575913667467656529734565068794013182898549782343058468704546752675081907422389980049352339952665564835124227585729225731451741607772864121761144796916707629727454227625001972896938065004231683517538327863737765609587141004460205422950769010793239306215086641025307401957942898985675291440936383506987979216798267052134790566119667246316727779372242044659680788076230783304222484465199599428137753072226061252102706513767428773354517171371978578120652447433623551572948024143765103328419058150786437446208619681198862376573126961945703008031732120271982489818039882342723204657897212107595269957573967265120513496319121018491623788922464132438802878504933470669072649287440104903211511435432270409113500957884860397981212826964997653998096778344689035513211805992020590489748053059782142903230647142919178026986140293400606376487268062517205224535690713842942632784089218562620723405517417869134752052960810402166908524994782087049069464901542343579544525697267800183620295641551248981978323463818785149535797876244348494235673441704620717755558741172256163793298033854613550318957514098975020570277137243931655776129219451623108973412775987000396899596316950364470960994706454264909286267029404920788510743939488859988653067181051411710556554707652332000197462072675016566222003022912317489962233118446737326898880915040026244147242957851397391561803698333678163821346989248084270763223308767760760365002703630156704193535419473374559099640209373033803057008137103947190621983276508437104386558196096593843964065220309320615150396455870724105398520683510314306807489252565871757388845527264448425753885127540933344516414212929907670780711630295471706468338933239445023030513331492957827408926120256135429545422230607929662348534063216126585795145030527051084133919171307915479821806053673747641847416644317259772161764539093415514188446085650840390442946731146673794209976727665560291196656646742325883000886134131981087805828133418193082448320920973715278413429004275046955990788900980183717158266256582834537891307051401322965683762413627662923099888703021639872341540626055135907320741310246978577598205713300184188188337525761733493048748418861600847831596544814105016792699297881866988915137289596316100502177139882716208179920492639737307021381705511458427034998558195908814180172698033974392585549197279492014205523845769110281222289138340415860447240596691086024138103100532213852686324147493259806860822026972164360394328402899267498590666454277877122980020967621631716374140443588341771662227244324178523882540037461773881541676087289211819515588312529562781302254949730728426916194888062774793880739717109755996889419303005438373721204907573674765305946004369311211740247695183519283579413763509837503933611253319446241224095326473025442627376272054833998241841574313891648084991474118239928360567562727237431561435672111910387828112097155518671055297861578712381807328469506864809839364847008720052174360760316599480269825203149921922679622797441398983236208999654981117853259034444776727433680595245879097186601036865895593553163878293885397683654818237765762100915565065397825770401526820785850701773855693705635766527382679202368213692067890501569229173529347593493244214417424895921839936897353361731754470607384322588423970575155953627818477863478625379596685630776822427901280962397697077970895244078261604755697452166262374594014301896236297149369406222189568768819127916681669627502605894754812801105690694859257798710011211106890874872513934340249177830983730874008123980570681461291842235819730801232764568984685333450176308367350191447252985475420206682715582950882517512199678661596530300913263003587367989039638323714778673305797604546763882102749342767218740411332743004685404461003837764879161885753289770932968446692845623076477961943954916281330241752695377594737080910064959760916736256511644219533364494610947838703673770953282406245699267242008377251569098745089566250492719713816361423349575270318451985651804444918046181009479075034587320319766732246259487230580075608582593903050536101256102408126467387649587558884407909747102096370651356022258733789582857080212988620360743020533251480200483644547790151462615696762812657810267102716735106124710392540933340942578660431638024161209552644399931841928759910438094476782348048345538885155934111270858500762053221207642574425689941885320622019676879321176992391587527226056261361836269116455341253307823555781381853598649588500435099050292640390039152521904973400653870389293571492582510904557817806951891344404073104896700283037458940181532754577258278879839375852978412791842186667207565703835814239207181783231273043953657492040809058066875762797383673022377021855732946026951097985650948069416694696157490306632024528834506342409442069332694760636420392052338674391936281641874369988598627537872616344775587767592316926120946121354766305503504414848447131941064266036488938794530091840925250483777813094018936824786248701541111645206722062789523313385366271024094210141489344867584844974063154874725947822499304411043986787387123912080155468519866497172858546362210588644262650505912237526278688760389633893703785402351542793796869292134085457729172534788334746674936577828320149971783474162966783531172923339457746640034660774297769750243327601095574560854029035047733141091298293651748812564437349040633681553051246009055764241272752964218056548622880589693849830788861728150597419634247831978810041590134046659401172600107252741808563893183214069964996845960962790610261993722151308852257214092162312741591175654530204139417951407405297823245096877553503977164249017579737091306287340388166748284212430566741503496357476682930772278389250248990697003138483379677085179898309069766125777702280828218020580042410961838027993894990020410679819780685607345167744113246321132223152723215897890598259394018907535050646064052524096248671386090866905602416284443365486544770248223575609889949172863281148045785637024637185006173670054947348900347458977777228300220902911970463563059655513102915147545784663295068886216262669937875896835669519426592742926527336977703435429796325323919709812929664193160526897552477222231123178268616951422586345338832165199345845023483956757055750797634516850653690504785972030058318687612200547886346101589409391163900712667092663646743308261587302797795725478625208757747086326662639152166586648864008670836185756439408797768837339286227881130756723799570673001620111549626366697346522476344373270225841723452400520410988122494737655603721191259967140127732290071404558954723671817894082449856747771614739749057414824133055408036748012450595332021509488137269680051666619713302947820920368718728584314916136711345565918525452084753972904084271978109572322869769823924738540017323552775852105028984141431720377646029361044218420997034046564494693880564118077923192771988832829005044474709081172372905748319979187857752991308404017957258633070870354869081519329751211631836408997965750693477690646509003280857231990285488515642073605554638523611701907556366128025368271505662692667886880346693008896654462760867497410830835684331196692151195760640554566859003418408233551318337348011440604483087011175196216767759306561196556990340655947229713072385182219587585594708779618838969474805461207789125027506360323855381147783595389442049168319389989000643957017167805340983600913721646261133528972424437171586689926000106256526935345296532559658911046915082900132782507710655435950983848055114608317780602207154756196089322273214085786995877907612710631134300831948047742635657185711938174165033648802776430294862903981800510639809351627938377594952679577423879719307143769138633095910369738403962164096501764922442953854487160485513391054702400031342515027366001437549034013788810256907531034352326851867997414135196667084270156956447522379858069327767932945454816098051518754262932677424170276519785200907512763526920343472119726625298647863531982564931924799785695324057766611683985532377800113328928712411840721900378727330441933017828104971639871726050202086526611311431204263430044505994095820333669222924590863790771185802606260526079322826517931357849635067683464222354149471903014956181596605917688624899998429844901745326537315006982659356387464116545842239283871454746062360881552952049954088779031358771974667080449901337137668828964074935203723884364291348109974873204541932170430361070881642417261681781958532857592597201974257006015734804337334213813131375075091996882056757992268298799977673432880688071659443116905518837685331444335458397165088342215761771356458483358920292496490426560493993140786479863332748447957866139992096262406734874094485295376993221134170005672321269618787532766652233491620054518813974017623553771885319995970411341547693480959979457041183558249711646144275312489661619541285882767237895321837319696300852478830761841171007426282424037514459152173461922136681061601133658421471183485780137196899219614395127266971924389420739270375622473587567145044245671338346390371266767908143201251168289936260150766717262938467723164894183718221803514888699082883998457007081073642093771552229677582917960076595558509011127434540700837032980990512537488978008888336442606313582712529182112254406991647474600161417476582987282430899948877431023150436767947339254096054946218439404176546399405736680622071236005095296644936962868189087061266735847754255973667102873543931642916377876601232090315704351246873024357814403284825482115362821624852241198863159326789773559557074528080078693054692890940081205335123493322903267153487437102558329689247549174440340444537894562646063188373794091238224764663593679067564360270959225311940661382117028057832609751761666099599230695953422415544033320638675897245724492617853253845318889274203208735334848468705667585294893287724910046515626569133737992592405607476897961819042161214659836080691640275386940242657874333437068368807409914431677168038459313409923486604252484081330965722521686837805089598495960663385472913442715111292834460980623748148836856912646636529805631824330963464262166786618114947894560317113020105888619173905560819192379114062271002950301119856752855495562617745069361767893933477759071723974972683798545027498550454910247271403687926052982134833789381339176289629440406454182640247941344569811444934710970276124850644985907697452595225005894627793347410311784951536103373272626849109935054395050789596129965347860558223304022885804628551135168629207889259235499035802465142027159917403062574101960175920103322476214375681017309872581637630421769070672157372667996477071251171163942234886970183280153511645584937966130729629098474950949261448700213831014465318056712582868624224565510084099922186869871902125083221926287822499136643779801892143628849680867962683207197662666529547518269288476405548647381950188236759495097319164685291927754851788496680622478597036102484751224891457705665458209228827442404225364014533721710529522703276757751819425397259794136040129644105786076349266675361685316882426495953644516465703510826883477581159014950052908335899156136633339351473108122591765354262657109445833831013548278753152759122055517477705276267811321787754967835485676974311237639075251931014253895228066881285658157314638413621682052329093374710451954590010605030649741517233107627522399496602828676609828593981674500044513645394487122279525504572966108311236913745374765393187180252968206230147721923409350919871551205347435449288035992028288603549785872858530213878196399343555534038913626865823552451982635636171381616579462561775192210100214858643490989108821673031665230492559106158992524973540088418763892296298539222306623719281741504679795025819849320286569162669862636873162387973962660400725420423590104352893182245330844057318744342460606978989854889860472747262086001709448716486730629633861522155823562525300953208217848635091220494946435287824459373602247985844531223260939416786907809726422989654237463075225329947020158599797115092952704104424335517065566494194437758330977572936138523014862257920816233042285760081653076332169296929656041675251927997785242585172690593809766913776292452200613708546585379109329568206533514724137649813440697768172133100165026581190855046172381523309577178871432806436656564533123768299701871364217189889905876979162837334710084325207674570174206389546677081192264037186830654977258380501448836096624660958786595971048655004222777897302927814938359992066671969410343176756852052281993960311166222402472235460855213727505106355068692684919313000155325633832082104421395410939824530332789862739025748049036329967158308900053086948350457634142981868137223716249267127562854820470074278818254775702291897175882374444047548594356554435655588437824073831604400956909460112800256843936545841693439437667828024572191693496833768193692811396831974624229920672437903347281893524380189138933356794131313544107143846544317739222789976389669326332216134651499190978326328779756635639020113212673063664700257205223896755447505564965300448549783569969684656641755384241999990788007703859153509007163567935307191351174335860093233062940413561789433156099285217492682076475986918380558528104598129111485216891652060272188548740453625212291491536687576825771305779599126073987704969239481916076484961015475177649843164952084615657041976594356438468450697254972028422270224036087358517474315132235617785802187160284882033143036758368058437777110379324212883744710040185002653176850508844459007322091642631238869169791390581144568561407391635084328676586595050142353477551246533008422722884053006053654894972127533617965568420791897863130859761677902529938303386453740242520607615536343798112241200944259683603747472951674426460185706730823902788204678087072374942072535951206364744970177470555715191454750562187246552952306506084890061029351513115837142668380015183861801711214212272208703894031740070479041650285097980952033808164890851483532625766592730325210397700749531063420546690726262535334712975144500529290815787220192623129578028313209975181691410001151176045870577737505226499627869368094382601531991192631558015823442864882659992383127251434594592468929893710859741850514149616467170910691633808296567485896593625911749457440618578050127264273049423100883804351320001883624639091444426388325596306082782293403005137067949345561141444812473195526522213363034563511335017149996164115804938000368170214451648789016048313964763714089310678124056017177399421244565866638515379886848344019812410028118327862098115846468900215368259939125038376653291708164084937187669019548123317079603163963803607656919378205978881218344549970868513843625235180980167756657773272771073973295891610486074390497739630593653328409708690421239099162194772701359420583305377321488671693425557940717365748455169098797736485977038387356417644909964786801993503947045061561418700408180347944685643403576906326849040157632697220313616670773391215589232968224311686589544116219572079491854002669824595625197411545860451308393274684141922322377292058080055280974377935878539695543136472546610968279803936440089207160097925210525791949317776739985829061567795067224947413766813512761397158989647451568029919898881130275045355649291815953656133083829779275950835724525690200992170560998485507546147604822766652643547078690794192701440371406977924712621169483411473310759748892145206991503408917161811446731353731857907663729064109517963254659371225448626495837923017798594385453849479399656959268433295336557526880833729743046344806333026712036072340958268539019686964775639101033407236014127769050457558259722735326733523345230874552057656122421213508330872239218206255622158309746513506804660800449580906587099805395340571208075335490687237352393492994467523630033841601832129951455511954804269792719319226912380776179991229922751386223357473781561425129349686017791956440774023355026201272672987806771223129290479167420596071068369740582211141111857812447986136957057620257635558587355944248158986968063947760407288739236811142781794460283903295236908464739463019901131228202091154045509447463712006529959467858577269245541589863559001656353602464726983414859560075216824316611054839227431203625632816165780980247597769674150171055214143568736371357614988692367303410650578998934806023580987113292793687268375702665445149151213147800710822919231787248252036106287191757742670819066768572659203097595032524489835094919342757301329732201917111534485003308441200087402014674403975796864453886592971515586966571900767478618069724984277855139828654872273856435358621888868362543676474917108825921585242774095412877006237690621390546145458997817069265116569132738991353315723832271187571511176954928962414195069730724631273656200504315090118829264163443912677380377685097879353497192115037770032902239348969704573918707399624696508189428561646375556253975326674079048789075247901475023468348634325303583190756961323687256188512359326233162739017258009264943545926993143222901958931815701517823748696365415190631046542057540287621155998584374804543157194009458629800009958680607792600397201939173631588425380281153960363946591100450956121753048451065718154283408445473846729594598981731227649111441141945280611044830249819074753323471758268816506971408185623990897535639799278349866696147234754387976560064954153743964307124999396729510968758559042544678369230132807200015521740371554465406516234474931233822256867234653580234206987325157822389533688964826116619500793757012264603055212290165959990471996066642141315931884534705206546094606497327614062444252662583586328646129785846055722361895918706030896907579972529644127767187214100552324846085973180072017661793244111109509578780910559035052636713762268809893788318839769030642678167485497031163002113666263628086340617111316037568302028484716031136828573472295573533563258965934714564413647099857776195861034760759952982035254419590999716237900288075557836865283498554956002228208696707933605376186202487815373794723818452848695528436494089629091249950245006672567788509600973800687841813287812795522944236701490113237842168431774341840285932245828198681216037915109046171003890266898605283873203363594418235138651104669498264427154264541051261390444757025436328468402067020674534975528993811067029517205929255172218753885928247281154889967915140472538487807833897953178682346277347354161597797708843995510440951180130554754341193063798206309679478895953616597743337006930833866740666644131656753212043460369385571704246603392980529275390914881060931342938991513404015351918372196512258064521494279833532914083652974168974617029663825370768163588775681287866061827967293706406403900049216126074130259840091404627000188484979777140016047192189880788994752515674942959333967677728829628551075129852746419145195785296034025822431179044816282448493523018924316678224708506217792737694033166172213441997572899844415220861706117477717733951921497765986346292729659196169323086570078467721496965963975860981926934190958403991010336966883495516513430588184861392339681172979658090996276855627952393237552541567830729196040220311159215482087910486915878838700073207602482902822148778078917067496280788994244846208035002050028657426261888599788917985005616072041528815051191325310092800548444252866311629380493282103155819637804086762613320445849021103965525416057831650457459238840807592544090340645734796191211059594334775817308601310755802136500750811585597941904884570752299276014475613822907103913270495568429692596235626292266691508350764175614599949319040556234269109206672550074296114646447521700872408330519906729871608331747675691407909465331544721742232603232262615758459617324486597067521985392719518948843225670808579741083604557166033058062369531079167408986866144625965835590598604715239602883548012345448242799714352212495774578639313580708664399661389759399909229976148012858888588945185465303035331035275278474436545247344312693090081199759812520810496887319428029418776705965023881262056190208521222121700401662062497006198109779712684212711854835625139594853968174091367435871733478598055283813259986222649151129984900762433056332730665170747269462408962902533665543415412108476072809155727003172682526163728786218797248562425798593750610103065802815370768118201004127559319230486499033210938777842678905840069516639653338840592597232610578285145794394782656549022949112781134647478250380104025181061210441254383740704763617303726713767223616367878668151259622082749003033349385027511686860524852377195469468454116224728756290687220842163956579399071527487646465367211374793941124065261954664346634681310627683386614692174066285920853036299262830792986261935806421310793594858019219067452162855475102615420279841346021715424588618449208338748866911977143308529201122190548573362015786188910944731522491367081854936812237447411603715388799397349497290338607438786798626445856416742942715492123600166476988748345072443910239867806644125248818835555204243192016245224938669843537709708518586360802526105731385962574191535907083928085300637915973828469080834495909870816437337521022886503768868465592903271455791836440112801972481887505028415119410650775421615970689356006357712176822823070512875958954533828770554827246728768884862797861906858322336759390089178453781552818563986836601009149862022214759202573627865050446073717822715845705810676702980943456543346033274484507918786409273973988174939054025089807002319915545863789196565865760317942786261752208904594988432389019051392471828874448828791993260154841999020754460288507257234092179297958192859680271547792453866105130390037863731573813646639886367566010733845320037572614064012545843143686866139285547904900687647625542241367805753123565141175287866333672477555974056275106742345026412663402326475402316278992165540305471785793713724916787138240160862099788152244201859243148651652158011578144554070595395106642072879315184791665407009791577484095490560461015825166256208046439447737414802421305361462482885155442115055164952323652179843974336759393796489128224496677379331408563049508588186124689137103903841447267221945898548254681763872552914481000384105956721527620379910711019465845130182197627989950688397797921129511391240748708644130563081034175974647584213256666022633804091895198967743936559636125981567955573914088782178607289168507431191369361200417489612552544858901761889790964400078286970422222213178237554565243156813950446765084550449810559893625094419305351428651133131912407274152508939155717918649012568083906416973587866396911439749591671388328099293891646896055537031486391343491494037193393128224550574878691096908313480223370415628053099442638388579348601926491964228244640836404411227145066109089092083326028675040102279958490044403983491030161986679357426740303340203626655545137188797491818736547299492249985374456401353878643631602759522722363587079134290756572180293371309465711811741819838978609150389305251422813313762926518035674814063743349768423749142565050184095386003447648377239703007660573066158098702466355481246059201982723543928885879201207451104521992900692433256045131336853659150624680825352588389331439801965368377709441420716113788988729194055590018871250674274298405949817353859608348398339944636931533653916508744228646352524256341900756893885655009473114433848213786022064214002906011255718479683397480510443504263970816310128435852095838900539381214472989474609159013612063676992670013950219126943898516196008662800826623133243934932903832801374989238013991945461188017179612197158017813666459391256589420672259688670314755454007129109788058338114291413573373040292530851177181168668431672262252274525795984645350862054275839527396598791349631423456655335430389197093343014059601248145098788930724272287131251254246383138961005089444640393820490200010663880185477561572812179361005065274477542644686915731168977069071470225186817633852514490540871136699535798554883713888543739741713980727580314494361164152239074258843753067620260275504010847823705795722000819720718952453810922096618687974891310858425587281567491033320456745450071521945276336678893070260327848650568418981729791714235116224631169270777697735122612082839938119587430212399302261971062050157049139296951813221210928014967326731419510357990365740506143483827621566879736124378568915815138921931356606904777754604423076919735538775824118081135739084216118528693803706130030008335478068766641309106860050307418947043242627658949247476056129068316186034236376949168626180840768545688455055084193766456723289616847704787321705601620855327550615584111562629081203207759102871510934093825860439591710751486100690208158568366334831403325832767389577255719596090663060967308406739975837753680541726941923467586299618830687645167544789751710917275476794095351587717369632659093799118923712841823214887685158337935483917538044796272046447855566330043694070984484578893740543820069348043513882342694244333629843686110593258823805266171215129131481928739080743908514134187505618964216218762421864856667264238262595618095488273884948696487946371434876615738801691101196470851045394267308949244193894758680971029516012871638423970209523603219611667698213601879865272797823776147074426968344495209674939957791877108902878936734517702229166888905443187386751503776890107941185700829619881640499674118528929964564052227735303214496234577687068889629864345465194944731831002152763009467311790060584505260476749783498481391223952523872909684052914811514624550440466599110516415803606327392375749862604097391455864160113422537724232826961078072206289318647580277480863768854861286643945250807730439569041400704544516370207672176827384241553443995982442109356554323852127103220035224255578058957764881266404029931973755324852674833020161175895371724849763788950450315893573838541990085008644596313417411814808736649914124575109650355917887275118671781441672936195856819117690877247352233909358892896000117907013411738840795570173896568274128409811246066420353670459280800352650937062604959093322397155316025872420852634223523379848570843845478476020013233490365124026090483589493837334126159851808258345379983934791104082188382801619778375772711584872564412380305950517175435861572782800187200377372863477433537861231958946018668508518171200840217348229631440971496360910413848571910234944448667822548642544891732279560936829768556258004654892501918004164398265888682606108245151049485188947337344722594957294730926545613921534262294466797262441548575211427277050238469209111928744436518998292112768298085897694198168282647349661946707263188644303548598677099926799125082108202055951084872846061624664115314243751414271793473043409387210751227825937830916493084504561608090282662922220822695646172825032664830025959576206379073289056372817332615878270389113493107289840993536049080570920017546618826563582703558765843812218487799411767441047433816862182311591036001968444939940239195556928936554276177902855260795260149006715087065670639830986553408817168441811710287161810585270760393444860509430360810685041560791943708343811611127359826462560035049735923488010407983007697687912419679521111157701532406851693246510534362448431972748540499412832942213950986239362510117766705886595986975699575833265660800980861115254471078589278810021082511825684832775321550113712481583800488425155168070350127724343490239921264256756935545528528302585090679634540871842925837223874083737778720312516049888870127504874449467167387262066818434541947298418356020345690523744072122527342675243021246461757758830363863685350230327037872945368234508140631453318470308990380320227058243750576424941281116440152260943307439474890771790529175804114387803195841210667479515632966292073607649001340391314999828134194105617159842222825278468243498780227270996617040490189359695248610947878413379380260370091771312356411158304433365327585875867317308390882250519243208761817775536584251169530291922843646790863467373977354385076171991442323428342179010494180369143714629525124875759811585130919653587387706655064381764536032987271515704852897134357688340633228077887410661403276690987027381404413489989836829614054546066109220228951626642580379818963686966843126419182088905536496963973425173913588685137542208191619029654225555380189360551997574007714294066995087900978053819984692708693799431008506624253912276287460628784517447150450612104351677348995722295921870288933186706218544918106845981004390038369097728336336293475300479977305622016084509845704469675822912433025904621552470096513219993076544367550024081653538018876091223327370625110145469849295052974365012730454840831753131755282059793731242471034070441685233300258778818251545184006556029285291773193927325701945895832496199133862223055644667917204832210272919731431205647443368645041195938858633278048739444410940542783924530167728188237426420126599402564847997722593145915959638612192058477195506857786322910416358907887188217629810159301827325399437438225084295278736595054471943646783704560261963497721098433788413231323378510814221283468519886046315331609645711468673956242471118953078977898144703091894293505009275381375417231034629979541371937799939418349233778460929033578090039451187396000706626219637051174052948594399175665601995709182706238379001300450703803903172447069956701828600190275770088200051186643535495806671446176731413921132976820163217679337234542148617906900899043583148033744989262262943917102981664059244655947499239031965261676038802453047083994294507265772364925583993377569705973871095458918819903575634054425898697064446979389728239955091652275246562703953613957167165293307235255385038580351048677269571624794565022054875604539040009575826060844044740457625172683361082289891332954558457951386433045555227100411175108058989109910751102947951215167410896821067724701350872602596043676929521936192140237451301712628230071671414696523547364988940517267573252563112078444833589681645573549917015775274188547107353380504011424875706003591390280836550792672417041023056935292366307330122612965505423600633595575000923663747365589470913825245271146752424548263474443215158310787614700137495735340364105730082652980987365216393571895323818528028384818727234467447400622347515539496164967753715244556323814523019677272424474801667117191833261558636226417276210271511716382673110753298601024381219040572146546353552522401272571727722189602490529423411539639904054671749898626712804256047081917333113053436099397022316430435378302346879160184463361854910537439907641559719782672598921688810113439234379391284415755814657493626719052749133725448405544946216407040863010011670184939412839239804404109668482232181793268264148257107262177864980239197551333462508246793065200808635105048496511954113452880061761678983906046472853045614496459252978765381665968940043686213888804880432529615685597562189439524021368683530979691084732280269647863944349217047321542314385361306157349195306896233731514011540899158720268771974496601280277694732805061794478919806585005262299010818798113243453102243485356798609020039505571179134369272967267998209790866439758502107646193246543180733088011234566292625792867030388127191742329729808063211741523258780979377458204608101469076017715963183248960688036576207602707432698925716902932183238321999945384389443974866674433674901793968911309583091085259860147156839466045462889731746796578871863884510857173762689136218937465006651894005909053447846170595261788247445136617240119301559857449554454206420789731072170635353848718110328095666342263355538167669520898449748489973513015464714029239376188518595431198531147733698205140074799540399715584502937069967583634015050442500093566699070620214927989156166947587377615723516143785335739085872115422242741236029631587916945219786948681447144752389693923956668233694822383614592378266579756286971983277012487562445370915091118946603293858048663812436664752643530594904507557827737325397491582799358522116411094998936592320301946422617424986508225522046646849719062685691764610189656057071929424616255459132927123054644730624029182106926520683654720132800672316693859996659524293191780934352294291558459656975959081713262267865127322300202451323276058782218053138725354916404962498770038238800004310075374227827178139686980281145491550227940350871961330512082822567179142672555638544420860774632252197354393494027808559593288422581277598954860508452525561588533745039627592164333262431416844382911338390949086247149613972306638464158794915041154270828442616487043740882522100676075927171823401073390764943038274981410522851678535628116210508991796212462976463484595017318156102093992057103100876716133470488767680963174347789093482376090141031904636286662820875184120614468619369034784557015377812149517992671977444730061578206496493156501841019341088168014703353478882810861993941187150515008370191236790180036392381306826898058552377355980695334749779882734367356027476819726521091312600586410617539085873524326326758579804830832993719311961713112672365256537451253286397294110850831776375623675849310931731672164202936241015945811463533036776051100319080381827333470087837313750312773557868153363390995486450043230867593025729097754491715836775949617778853362023089902023455956121845080168341716608877482733634693415844355019434938718859091229901018899757732552898452904152127509706823009113834064817296855533247394628816634687232298370472543862732293997660390568228314957755675922862414102409487765479640294928615963122908324184287464983658680468731282610063951735384649996506371107425022239352985614519321602541411697557358776024861627981192046498166177607028689297767106815043134683151727150010428837416889073185209018129912399292006702389058388185647330545943091475690276162605148429622016840278725309978224587145428524714577310671670627552515582876117182821862320285595124013980646832643666349204407141833391986686056821443693881691130380326494042181358176834554993309578778382552157734158172292122559140260728845260348241120500467860991305009947051385708699073762648798518360515960943011164291491110911225368408695412421397318620304518122153557408269178740937829805513147872194842091154712649178003653547901677513057306862013174616980563019828010563631090874897692025295776929991079562057256581344836589661194813836191155209346739485853473957479485973429407355526543387475318389935615817392206795433990592486211698494468591437346209434675014290422632614150917613223510101479782178194338345021317650207022264359868324363243244906696263376748016568671357728553044587399091192458701323438050580074372146555423434607847058772923287289914608295562720481413188352047268053039124170348793700097327743906441263409792150064534767957319258988380676023753199634833468861323961399459437547862613752226220168919018081687819982988870030336185757922599125017819760223255109054999783496755392611208944687539495610868895084797455196407199183446107676388323405065541537501535023745295037432376514413649197645258885212082530100297101918979548071534755236134325790926096771921241501271266529141273834336193476634661179812463352629271044494281126757255412134221680071280901433377074858326497641994260954355274254565068282907720606736610273608578316317539072863397186559760038787905376446705823916783785147006921318771570135742672656708379107205434799864874490655298673705746415268265019819601850694718780645803793752269163140077886562495609246572965457347888711648851795995105784394346576944681148998729597255200521665152228135397219030737263089063008700687064212770873359773532904562827171936100555881363698804645464536994795122522188026916954070209300330137016459612197836174989563541413949764931447226996182025818799434389152116781068591653365940488976383086396184430334292709850047897319764990820394358745607144564740811395266728249227491144390228544710855552525654698950560013719860930199291323532526854881811654588417402149624858729712780572086773172289478876774085035837694381583965548057254843939877851727237701374451939099777488074574734137430045731859450864962249388448782355024642046571406660403427512560042342043341669475220310734527328642873331727241217330218208265843119513537083838218977841553842184568770511705347606293094532957061905634447406134003843676118903991986718110584887850011918050046961376576743921199614300679395346276889053196440868723008410833985833035984095145639589170257169824651999550805393200962680736890211431888663513700810314826133560286617502669948978164137619663241799548719660808427450000919915125337419446284504985677846716378736734990465006756490390179518109671742593001057047446546118510880977297308339967259785730512947500457780786060318411875025571195990469518740797565434036121081225466014632490033376874230069073178353562608704233756266991657078276273380362486610929733613710165726740571965387628975465267171112494679788334261322638392756273323788824962060128727231435921698769983064194152231651305795502786529082868263840360027472706830379771294943758696970415246510413524103000571237481890054028397673203932741497957828141026024623396011786657143631545120057591298968942500546539753569831415204604022925060652609438462007458302754935181963127559950085122851980940182323625091515879728229132560987155568241718111565197575129096731346263580240222211166235909952444897819572481566810634052003503983665186665628638193550797757593998201098057762083474023800837028688898979882959014709351185041108397243414791408950890166968249399340141167574718027134763401049776814507467984820606806884453974062623989710373082943944692074644554546408178756446518090462603917568578754457738818460643821898499591137988919468803236375340775057127213885749304343708598533195265568429141060337032838109014645358706128216564753723009829794972623038755682408976715054515237902422555502898279619325969071047226912871391371369775384425070846254420117968902045950957245773538336679094837150438450322138717175579812719103485515847982089130810698867283038777962600599991386109883184689375905454924920418068316543033462488912254990636886597884645911903547029715333160316250397572543434839456450160754310403256414464847847818913960093904151451506421209588679810960741914633536445392607498236469476866893770375192202792936809931578253053918426295336619442703401286927982746839566492797449122499162430172381119645612272094390576804097953692443567107958823795690179429265364750722560881081563193174643956302625297178984025714216515756693802112379764589778423732978856163685269515485010008177133481049235277338275612354473576337562487985217175748792285767311983191697522520196076094582433094264567061915351936401331396353151189464462450313078076546789672910542578126191277676665724824300989472030246847432100198771666167713034956610612624177218175575591328863394686535482241119619828794507832402052343361805961970927920142001084989328472948947351960284106870940024357618126128319367916532202377869676905415351981572939442275859871628879697890333167658473514831630025325989037352650972392920101969274523070836356378797427804268000600639386482234246829800343457372295066006720218959208268918483633019893582231442489042801568151425611676447230361042597406786613351588720447740323038158143401210065006143808880676467356293777698748533332502699255577366635224513148795253080470849198865583143235034530997157295318574545558282208459762997794734937179068647399278151638301180562340415990475787511746432493182704697603666009893522304185878019352495959578953907339574468802634280474702999928043696638823389213771971298243959590600235935720241795225829341490637140382806644351425372846772363160508598039260154197330924660448186514661768598633080467109149043234949468894540221219878491984254681836355542868195654033863415048339274750802139113341317631383487037558483292100401255218974858012536790029872691574961416538347765197043461820443847722281258344505666246311853737097809859345696519687709805418937503043924550928145452016702952612860159873436484713535118768813028838361071604347770558780135545055618224040383191092571770592370194836019157759331590845623187033604471764884476001077028036158322065242604582789706046634841874626324228054881476369635377553357777682247346462695941314496593265825086306319306376866932163123976484340657520485863470801525618914297110024362741109860912464060704914477411926270380409105847076678098092441021511198127201484920045197533319836002496621116984954935703289853766808533947918683607439541740019377107204363870828522757390738758887407615116380528942918500856370243331512970241335834104723449551510417109733552909543879979502178051612480043505789885828714573981017888940279020324477300742199057284629125845992834234805845081260969166357004717344670374100269290044186583844680765973095807736910364664343278768042806008311782109869685771614212205662010857290367431152221515895367770891669245248579808714942505583243631676772642475256273824361416565442502712884998758053493110982313378316016921353602578354179251048133903162162898540633665297601366293428565351752659667099621089492770410667843690049585300911156806715389789355626666634411072474767544277383326591420933838576700274813498328598302153257925941988692856764353035854373222899460378246992994716814264373389946263622844159766690353923297357933886042290291792105608783855493404366361723636460248300269047490229686645769452116245731115103842896901721826569346993778139384053603638826179551092422543488329582207454307808405794037009913181664132244830364330978871517329300052007509000276042132225180549775493785851179669307818197102851513109546564031614766292397296807347783193905102857659105070449086437640100154189754344700944066747994541484326142665976667952760462755790299204402157770292613478732516734533868482767932118819472548903028555892435133821380344319075375656531541297732171157163327923924231944355431677229048704945895679407368416263939992213948495025725533192114620662288570360497410043605940638854172411471975062635550434766859321598746883034960305533903243829181746830126546651617853064139631987451644362398437304626271776288969909486922219527531462417780930296778851606527336123472036350142575728761989671730785809462940284899832516973280412341066079899585456564746535876982372330889111868945496136214447665785969124546176252155371296567279594054013051023370063462494813789193304154861190852168326780294173684804302130007534981095552840738940924735930857108103826482804099938060828469224700694319100203243074268618918228807220624077257946972287670768109401786334299369974326688148473421849231347664540953736322667850835196311454592231894975857435259616996319850708492609148410984775670946252919836976903628359874187372444293916291352518571280810156213138882751497603083798679274863524441337254982356535457427638366411148094913306110518145055187197147810399055085535781476891609731291105835703851750996021659137812034435766056125537277906744630491778942140235107219299048338833922995893886153760028381450682099856253987092537789450947499144108062366581852439162807904452948436757947391961317402589664462012526116498516777607127567765718282816311759438750014580730538066516791027771434500121585509933865569284075207919166163731802430087883257219650682520073675204149427373414718358672014706607425450376331770393810757850282509860287377617868501495699639727063973889444680371062369060664951649990629615658551655448603300847466925431792931127823050016500753415701642973322403923352388686909646743083033203632616486079137878246911406179608276747377804261984257481172960974968424058379963000905133456350413032293645763386770746831859206314600504238170456807517576897172544095078976524806035218651096932610562836647976026635198859395730305179918348343822553030579478336017076405818553820742455949669736120307069813050139574822139949208105718739583244495204191090873277977870547837280612300157021626488320861099994720154006998897280838670226534693933265409880978850328551296138219607878628345409563068378122648866916542453078939123465910261381737154798887224608049249368477384343941771766195184982676309360444993574618024164946320124040441432039018074898045730537635671680205706750826929205210378431443775122563444346051708922888299407275900678042726614557916069493453577310016479797606025456822118103632229105928656541672860685256139227614382904811631726264336824003590171927555016045463468650235668981760635996549612948362431078862197029425080193363039480237848376702407661162208698334537461795992440456020119175311609868186952907755964813455250867529344494318050287458752870757103222668579892746234587852192173320899145090660715346234627866449322857929507057072307712603983911121297633286154736525737343618937920515371141907832664132454932574597751129241015119234003233552315997029825698043914491184121776884133042241775799096273294819184556583888832583289626267244403236381375738254141262090307034961867098346772929128597376076825181036856461812035997683346187804788991809351945565530398996496956656921844803952401021257181420002850234509917011803896552942029179813159628874693898207744243811646915417831325110620178595357509216818218385167502576069652152700053280552644074447865077387946092330410325942765604972322771722040327960593558860511843112483994005988468363801863868284201516759549629688841722717015956032093543471671214717809412539085722590862908456403764751621172962032011017415413408345729471899207571740371449473615037556061511805414745302865725280116501398642810872646762080412622091578386763993337151928835535458833837464014642099522634111476733016497846449762055360164444786746422733895035683189261943930181301117554542061958876324836761498789424028083400742607060652563138944503842380801012116284453289964861172793933420813343727500670807126363926685564120246054060139020327819877903476459938967549805496731969005608518029320710714853461665906706010854488610006435795651381112904366944200721824474162818843955316263133803529852336100264682932292712928647255650180487903181815341235171113662193229438298778941964682998371272811957089457182283567956229944668202567214474255585572625024898224732820203809143012728276371449702182277474922859207284236164675093184877941135447043507720910700739726356270973792492621835919284940523973531744897228074155450887109957573775321814859310719582074807191454412686696038219582682831586453592307864856211659465038490509866439252288084060256220754097284348937555896274026709076936708305038693579964910963178153775058056762762017650699221743153344824149541226221616325400082210920610994257533570663385396744848890442075635956841578167310700635234703884455014683352202598956467931437628317735404815617390130907450392815050795997969883068140384099496391175347495691489908711427237059185191944178528955344183923917211086353015871497686268578934804009678654125657607382253050357615107056545080246627002025245173819957597975199491718903558214546214123996371240557458703390374268512370135398543353873830910687998033316718477662328422122239574207951624107112126985272704241957173068510062356505656663123873392537824209543911524389576708748256343909563770445709247246602356247475571909602599469000359542386687993014992877937802373473794381309670942549223042509056925910812119123252456920420884844323232809533952013180629327357049893544086602861168053629788409532305964956107582462039154885634291981139207885917484967312808795464051345462477203809466876554604369325150429680966070563630830602841712843253405623205297495895715974856254437612251208721679420649706397680585450924402110182055171267884060392420434872592456550942560506001477167307882658116577083402989814637184255004371574277000771601449439267363108667776206326226550231708160075607587066489422404530125850579650085473911487451269510745766232234409863046051499893871747483413991770238650311689891257548325514537263816382324324526573095720228086238011662129643757941789977528213882931576190867982980320528315018663947469209885739685399456015352607895017023881653250655446091075600007897872691977749750994744209086193266081331442329171268996921358339144017525628587812398423874385754697810746307873461778017501880412675715269737601404604843506129701752523925464643705683632725334868238354074950373054373666714802666450065491550106025104176020880279317127690577526029841823960466443987620058474093776116129367577639414398499355619686585265822701096523384366567867332245790136100895474428178803886293690813303235881065520073259853540037202640877428749132340180905512664058615554736462870158417676116233757611619839804967254522688814203298762952905936230647128017134036488818774577613538013697207891591465965805100807798834534611732056709656401676369139662938068189154051364984467853977324327092258513133605791429677272784700487082502768667709828665804085644204548543548644812481182148303754873934797561365774712654207152423346956472611578070914502780139164860585717233181160428355613888223628645088402941923080678121949732914484173779745233795047717734922877094991835621996695717014001387668196477152100200900542789878527742491965422725576424825394889340755368280649428638193389260896608399788985115986616855142730212986509033963050833983374831349125927576206898231095144971081190698929188194907246878719972972602779389617492736533680159641998065563346246203279364486224550838439314527643887822573770547432784902243330270089149545777122925599303528852875815720802110289268951259669033459630935937409253031125549554799826116395238919695288818440214152043849123845340946180853966467942393758458787298572607870918524670298234866202185237632188438839431667196137052872419890536925920620092422988506088680688192720504911946667696805632184618441115725292053256638211265658836525572906777524053408646480478277058414189734003229225760418185973269630736618490775049278509527181465633877772902879995519059250714445938961011280641918460199222161552351000642175512909389172713924408846235328430184219460146874913216757144999770778682237027479165998435271893960664507934596487964458544495175854043532912838215436400906912418628677654344771647156414795922648155857909467945003775596088553559220482837632702998274208220115190216971428705897505024466411214345549070839710676473432817038643194085538969326830693788315850327316035042145022786428216013955220013155968865540523734179182388389023325504941157300736206324413325114754627221920117528271979888029682868976389823023153788667296462689697852819837847938738232629571943580156564950243664261422155598090419068445616780263911661701346463710506837608807144520218296168518848675929504073880863928139200770636957662380658143268082141404895687033784414328450667007158767389553866398493810904744853811971963795557227292208771162318603353786092249382133692850065840691026263855323902422514483969199703565564033532774752429501204692591111450939151611002785068630868909114397573325550335496795909827565253901432485769744363796589376818821209034290373626475548627180758035837406501092643474429371915016920417388591978611505297071236082198772631574684945036100426849268932079796148540985302291675458904495872582811741179177767467751308730942588028731773119344020927063601274685746248654840185860713078303659603176980633923354106662323083276839651331509177868173663549687590196032961325386822818857010881639623684118905660801456720008374347361049996824757586131501371547392240406873991861999526599780298136810092287622920943668790869889162349358497948176322574494653777313862394105518559160922253748734376362281049601356323687930814712124928771658914076301077035339481818255948804868450745558864233709078173277482604281228515667850065981492985730911233457361162869637318015612541405765847319914366329492202191612244710256810073379900266579924167307702585532351220891622785747039293885780473760416852049324180401302522885380742985498381818551718052999260504424618776432511597587511753930434639729701151383987693448799370024416664986879165551570460550638732725158838246281149061573880767523841367581035565932143661282679300435908973780329541908052778437199700841488120864776639330275810003526699716890763812556825844355294304630325519883336249422053189921641830823835366552180244419435779207944347527991264544704231636606340146038842205997510274358426038092110510746429249527973008384769643549182456274283921949149344895996556155328725057150639779572169883996981950847658310099074222067940388563245529599381671321215685729668435976639362810379604880331760612529283906719801055512350345665073450231664272587199274310505682092549303986437385715211130661630669670997638977325559362360342479609693772922314851183923582154008175892246804874107915558367305460156980425029472530748878872340122850143960408820075676824563895625212187327705728387813245727701415109627046062477972739663205596924501524030712489321387729461327513989040890122979494594689814285816767233004476825058350094901966609600185700206792313896229541859847447955016755760983489001330762294149453816274443065882355775564962025608790688372071222541382817193541190816961972580969920059966492361236985627714621009985472871643863305250681206205112916387748514706426145559397617016568326914339415869845774882110857014945386183703575564797434479308488228216112910595652317306362797160189898876016084527840661098227585542259030649722018695430987442260577877986660122684263377315631277104086695404667634028769554310563914052815942451276983500588092721836296712758467398892260622128003632871925097109635368031494559811647837112045658549882523191953534778663889389935166802139776496924336763109492034846513627595280727557697502662105518955957274962393963418194489159980773226664396439412624017744714503317165047660682877742854248527081955839988551982246179961000652531132006530012749810245671823762138505123849610746991298861570136056742260442478537224033556382822075324358724651867501788456916700329602036353569807721719326596031773685034044021883540942832547366455834007709170655747461982792172731209919660727722064226643775128306654864292842706034583499588246316735043152633783863145215470647252644110359533115054209938270782380418316778320633144778839105298502681417750009161154365794472642058356841710192347074399523538688244058208546068074952564226909610347080453412746246229010467629122706248834882787555295394345554299224033564153361402137570224732476207286072945737529015796035655876543509307662945983321602654996096299004077620292533837464143000489779906231563073270446340642605884348899656065078841986595718690423792608403758101749951650748962577398458252993860671735959944270397602577299989837125012548992636907837903144495450692324017533522268432492263105951424027720853562576664695978838143693957877107894308124671224101832035190723384414313554480807251798940167089915152515485947900282818198171013849186776498420369655365039496387578247967515166505174943521237336841797158428348616498842397834811981014660878099768953524526628892029025268029040063655508303843502332065175037415653734307624456112886492964708791150967913408135395278882985149186079682683226231674185605754007071217734620603067868559745593154620484422141163654518420076448741926894452881301297083577539692451712496103811735413938499372596212904394761749424541296469326055300510649929952178097181392739389808536473580176998492888293405537244167534767647780012662249675308365730991399198282926727534199986529566866713211179497264730475152018017225657472985516284031711383249203962862479587451973193618190900056912398905296645303346508853825709958902146585944744561625667045278963144844761119612377601619251005393313930424631036663624152018996414687757680451415410725707957645862879937393565220867970782776022673801799000208525524541466230985658964797629169437991302705970225558198297063355199888429239461431808275931437773165440546616162312373644441276229696418773563052229282551887613526430678708787066337699076635877341492073242290157132541378644761852378901714968412572246710830068186228033833736905717051835526761461149445095419932409107197548017489232189122547758489049859463227991043813096275529630276743064200576179451015029651910042035014707631757464092548722834158286055524570365162478599878218005411706168716653782657555918925422641979808726040858836381363452886270228272973401578224589524759395828144546720353437627380028924803971215350006745937885570429243087635463673847497714979788739629993797396224856400954589604248343810568204659169566382331531339914180260638677375800566858988129345079361752015251528081119214102156869775795180849685211734188737287532383690421031331035569519359465342253617153194261373650823660312824974960512734856124212950849535428063608176686959729143621662963199945984099464710998792265784388237743964745432374980570450091608728179902368949232148257724337487648326137187786602492893542362570718793395074478892996079128238926760539306606964627817203305984693927045552436415862396885728360189108366084349894846242432964454487387650727002475872258378940272404278131710554851832701477524737629654978016020076503829180932656919051326594651557181060817069653334161579554921834042258072897287380875029300133958777943012600910321083698934103379425360394294810151537756581419850948137203324163529782038424956614727321225308516893949333368897536289237066832084707638537454707646281200965777903102495766710765118404666205087013477066744728524322496879621283477728703783803051524475852835247520562095043115833965842704150512892651607145454326134112532881522226684038750707696443419977681152049661856423875281605624334147207983396678191099600552894972993716683829826891271434082563609243922290161670227658125397751335651727466721051294624873376395353761671198970130894975768830988957117077884518958014753733851153524364741391510914083934964446650601014623488293604933777710297496033934004896783870165312145003598759271433958575368572390519313572264210424197442771275799581004254038600706133864240533219467581298014090676378446250270899202936971630339438221581525391106463100927134466692063903495666728767910784703758093327264715755363396548362476060126808183922857651612430829320651482666079442903217308130652180851285491205203486521471760455801250663245694738504309743182587282952337584654154473344768670936202072537577673674494807742348167245641400940321323822789606221197683688042360414145555921272076937068134995069011463438115484515981181955872828851400867116355118833500085947317736297194924073444740659775023855084689870488460786029567265162353534622200824535358109294299335376276431563051670457028096079448093867469481264140531979141758080256682627312623910065797944350066063879439395067423033687050780280414598115620774056360740539791261928821166568986356525731073443245980422836458669691968108065022187593683676272600562407408115727656585775814826835742593486283215333026978857545330331401893411753861998607410160240486246768745854925923366718474624842563689545553520593995016428864846637857916198492063047365398951105264131925937696504984692017419604725563158119130765798315912246406273099665204712558981259753948296587721346959845539559486361931508467786521760639281842276597588803338973641445823330649636532783436234140297997034206551811256735567159797232767016749392195586938154118568557682766113209442801251279048561947749751166347980348147354474369052919182983585810758833335441199678531289421469302462598818346544030736962073232529236738685086830522705355714825376865233631060096923659194064783660181485834506817462936392977580752254063582172650766246841188656013507134863305461009357234382916523071054814625792358138953879834133340172544601474293903340280866257932968996577329338171081504706534597629355583213422260205455562526301901700035717595610361578920062094897266696046828986013213652760938231166486347253789407997233178552732513095789199782710367616848697317024269705635426958248211468459253705128713357727719864568521758637261799923467175278012325430306557848593501340643367349939121259075451677156604839193161821704619490160371574517765486055525318623742044146675752329375408805400095444881790296710642231752114876774483519800744613580644147234769487593211528601804460263988938153393952231510711931828900057180884605913849146572564501405084794220318526041304011653331861650415113069201028773546613295801746962008737263803229354039737676727519171622256520400972456107829957346936199985709994405544689201889565351149824364781584770685080590191897566306073225777868219798013929480353501781184350376916731361152001738189451489933850693806373277306431614571756816650740151441846995350999978674957358579351939875809268509405961218826038852733382922994926591042810573892951238908376125267374763442189452118382725506084413021666213824120388069618176865648431611785569511961488506767112597686661096372636922405015514565675196489689910993490882729556256177036820126725478938788345366864504128834825227744669316538616587946210389602247336282889057325217376670131939114661265596660026448775248647440678708319375129024323454692989273849339541185107576194244449525662105325021409510724356508737741604944745547254037623024864497945938483858898918994242945580298615120258210965800236530622996127789569546661901319017210988304505239224336537820636711487009229369588643192510301113507669595828108312603863703404844058402639707502713924404778990164646848193031891543157951622136533271384685790985025055756115788916922542426293719412883026600850183639914275940192107010952725566198589006582772833042939799973259501902718593692469026514199434638561137833933938330124736269942585008451337889146307179533849232927643955421194677367777592732733816884075014080821760591241100549277826349953282044365506951291527418134485315448725693052817837081387501208229661561898658341390352553631634285280235416134930069497199413314957404262418137201776140320379564575773116701589974581964089273848008163814345838872068048254712238342234698304520048503252285815097599018165761988687566165157143618614161553139295865048284733110708415204871463481490845807565832837459717479953350815482561353663640078052179937354575459688163342549335783982775158796137870248534521146542944452224411467619660543574009669821508371350902245417878354562603376779740239372249107901046883311929374128582492815612779442963398143609558394513805936963065778611777292355643122416409451685336000445355023852671468552899755648115423938705721938161793155725783704784140522343435510283666759957895766703108859159639417521595575147695286316909101355411246218477242992671201001981663516468106761126544589703412659098121937506273881617033907180098473858714498034561702483601084905523156330924092670100381125199261304976593205728771206500879900441642114840255819088626568799287385034228356958571096866424058225687641685840091347968041588208034791897131454093067308025567520606770402305907456725634034498753261606991960114144771435294524353568697731521119353838931808443557503613089330851858916831378483877459271843317098477485190635853527690092224490953532425905555502211215135683067676171902341181351372330626208061209532571110041916053662497364429668402758113119073534619694137504742050960430399007070420183975016886202786523027130760453111981732950311002590614286023500347875752390757449854448931318852884753205395241779051546787131541941390069453055768260209129493184268050503082096982710380758893735440936060957092750893244137640406820198728449426832922391066196802418483283370376509506910999947253753901040973507696617345539792214046344049681660046140617796470520369800535945059302670770293570053617768279400473143699222110141679545890830178001731852970940888668206045022670127832798408898301332672937201369129566985924051291919706742028180225886695712020757971675832835059413590985123087487713633683839245354671625936628484481465643224506618711458932554755522669897736113570880349864283835626994051763124640177787496047587695175569443003451954644727955498612638596237762859404939374567646300315394954595201196748585893618533086400163996240262053802663625136576492871633928518756515464480563970185910851725560001064989865227663342665294733050574685488678509857065494962664340839321097148894331759656295861962426422967383248012923465862577773501185622659017426100543298329156109770045886426763610072717079707935503861218093092182356474982330408364409671451446444256954810524124254754194312769065971277043504509569612943109332002895320208108960660116186334876774006864488550825679934333878056879440181228297458401585325697090878137333755146507861963283856395297245770473018288781449853729492371444112733060952347971814420891275646271965072445425026611552943203864890758000148127928702451409209772791911423495525623705337135526388570524572350810451669438738139773093667812992423066511067650705661332440355002331120560281106991658497209060568841932910762431611975303887296630527093962061061557297513637454962956196688735070269247601526494729088516611643762421731001989584558484899767151333261107575608227713002539892311584600450288742718905413422618149955566220347964940138932184947869934332618953945748828502270275447352955663289958428668372862776006169946143754342095454147110737750843825031518638422112428959538942222519068406315469698464769795859700345762121941590847893417433981770346313443563278776352089430833483352179572513591535010419659707526695636911102621651203170684059115578502129740625611944175778376059443187551701294549135057954449882590170355452527378667855580931946435331389740849990656959662153846607049524982241203296032123417445289537000263247302486703768827878034326178089824134343140207715486886493974056518784310543089018204418316815576244574891247888251728829896812021762312124607286711745887534099004762509289804873900845217004364721739085306637875444751357237180157140925385525368598980602994384424348020517602088654745871143887777084194380524705892323996167071229411588814465851955657068936088565201129259019731473538084209400797684059944027792617710202979492837263565002488501570037880272494307661315963584180415702536240609995104691367103995218157347337922597016644015512887001920170158200002480413031054261598216027257999774775842419536272928973074659935617798646785303656119621725421227739883557376232329653749735310036315214001808786136148794607382998575548170479034545428418441875350246418332550448608429851780134188987756690752028667434251035331461785777320514698286267581173624745951434379297882715679973572346868480067986812836288178896293165669842928923361578021029128288474704606771422522105700496876831295715381692073361064444763927993423174641090903662112677287454621707976324412396002630156855976861703259788748314675493956660902210272690898069001361057550227274224579826669200712709529703878657744819873876368839619210223013890408188820102499250127047079673255334925542626925109248213264816661261255536288872601232315465412956513481894462734713525668596656160325306916288838318080685980658141982911410080460321824310606619963139181061517012807979957226605448460038368917074422010629420807895497692000249843511599756303801799374176996150635245703291899456426245669951140944078600635441870126723960154121864765550704031150318265246458118500995136701349067348710995986200605010642916653988762033094371763431821922926155755220697887560599349882366869984533925838661652001969845616363418483823071515055626048811908480739094444862214699924784797115914145460925156383208250950786112594188834553411612827233545187713134151835435227942151681120450264672890170639019320468139345093399622989831469123605034076262022877439555155726394909565332499941107234533803871802099847010336817337178699108191681602228600856827383141861322680701420384557166857849840816399995270713408655181998950615532838559862513032892222576775145849484953665053490491855541482562427809665197925475195445927394349340758774569745142525459518783448901150253964693185131844444948379840582262890964618748688317804442533321076964498399897924998424106908940974254299696529119350192631542820031898434469124806061961468923126141174010917139478478793291544325729290226482064142624256944793471885312243452582691644385408650738948291068541774167905226408017148473556620749531288050973687694886114153172372003219562274018592309393618615402646694938489837573005637402381782842981346429998128432498685805636255564781355858551984279649585343890621539748554654349726394409752894249956734009215894865611186752442013046057095886831774534764502956535379775116146635904776351461282802185114346172856128283987033763277555246333281486245775756718869379753472233242923651117008509123635244566311843439035138950505583942669406177475885782597688756513547131333600412771440128560246971768651239160792859583264674021363552192214624239026342787809521381373950744576839983350055450664025782916039042719341348762828241519898735774361413298812737197559177049289816501882684476831344933865641221198805012238165597689050580054034030195198529784528779624619278891793174681693616677107589166668809399079991156384663757440572409467509735680416791772452979605379177005019868874469402864096692809918261380367763846852474479439842663781893270194369726854094817821334260603242860242822653530180701985720743080590817860111916032348787695499761137569806448331857372355602313351350462766689476005305066836361671245140899794307872686523529931609281724692105812110189019232172660841500260657913416011901416027520788945487454427426831785923090029839408861691428866627471054227493288026807915093238896308390554421566669210146649505275581374160335658115848620549793854254733014010381729217526169113798642373768648111879545204822051802752457789561732832292568336749062706872199500292120913897192504083215632714046331807599299283591670456633555607723438440790486729429580708715836040560265414622379566410957925369474240329452828836245965885700231268536834947689971414134866944834706711251068322227986906300279922308494831881335532060625800609538782878222130834179889249839843012997718732663659949411522146300623884315199125586435307897700452214225833133294517576253834698547302222554748781442855742782362598099956078453504501860479262619242651560748457632793135842388491862848206317938405290335111101613714141438656436741799256775896299216414299893782028641788487055814868554010493312374788136048382037424393554598593770060906476484426563475517914608683249020039069233926669230644228147376338198350562990252794421369766347257683360177680454499878550667250670309741368612292765502888053992091535368152801761830075741833070302391945536312270795006462373239808334061186935745920788694617651181487119645010176016185360315622012449682402413479089180812175123023251011995283295710571927616110810676137781559944831155906659279304578707951255481160485508338740060720196831480842697956026339792287397770482132473122766635489489065775825550533533535055104892045264271061141771778241715492827920239790639262625677706360362677983755761382833843789966175717658075770826501440619593808646118464841458446913442132176122828911992047817360377651626905767352241224647098834337278441435501890242861892982004474181311307014280735695501325362217606934932992811773891931917967402970662014022782270500692584320230030293907720233568928418708802318518890000080053904972915561036167164473709993417051738280717494595558547775292788183528175567603367587214802589943166367011373140490191801503182253611200602307398730817324907654988716690392108930160354976490084312707604623077426769380545069643424853064044635021667018800474753470617879602015907229511311255563461170958885391218964161079810992938077213261805127377836734300605983681882231870635442174386572108083004505320660974981497505832350454541347633511638645420658139189456342990857313671202678373831333716743480098546788873794550041354511988790515927954993360780074864138291302644639980778826041376415162218163207872240559216141081023666263470250121797174868373859854504520746378564481682866541383258106193298834383581710022773716089062627626538016169444421347341613321044430379564913931043871589145170949873363730166643858728896455315056321525328304194481753059347312832875353913891811872663149884887121188429592392999228617749780183978609478787586004664463425710974752669578022565224641491827737261307022739820757018768952533643768564358917679733663091957655229233107698474569355337558105869227433963926880291864089060591546020902239938215921992040554480085068491948654119977913241103903914765294349605735075810384524906687793092429544304432010707383382057935230239227726345839857803423160072089725015761218192636427672373717100286262438838473543830973429468808913383601579829078639081797020206643678353463758508198704911461532367964463980734542498093267076012487452838298485325266635750291773912488337382085620711629241253395290342131288211499753585976524860959304480269640991194809716698225436641732030901556900886828526044705769964507608646841500188597683254352794494744009456514933604508628963314834844092220931978777574520384423716235379839248736706641791823933572473732193419206743591317891609177145771026671099376392820189310739695159399409524489872798079769137992618030541683771779488160340941798066603293507001576260426554442047268045287290573431389639270930939759823010780558512096720113466966801561073227375841679081376368134544951637714925200331396072060982615838519957916711694972158060837056465516824448116931372204951508404146061613250789987147209153185807131028565497697226618305861784560238760465251899899902191026150998735871222644043762237127484498481739634028659893150462448041672174367520511136025486199955393945823446534591145497603436801827442567402855697325739430078198346216877046483507806909544439668428758125078063059007954524116244275224948192263917031581129624676824351553252793550883049743456925963291313895198161775646401029945701715874963979243133677279893008164263178816930223661317561913311268118203374698611601920781973765565787174016278076071234513783666851864930129628860561678452401600320792154360742162968435777703725687116611245579442374818008920982976923758889218279259429417271295529369649534048607928655994577858114546440048663393515026831032419707107464435301073103533730752993833500354104815471819306697673554285039805482623231241103889331710931753339569384634750228356078186724363467626330416588696317554359675287553878537393212790108069088322363400510392697582572998779540179672120326895930529391073147491190676134465745686046122435909758744077011548181965742653899109113889358828714330329295974200162614224299787244384364196220072796886418708293175430058594827268731530529582386822854134867061668879182783876926148456589187100197703950498029971955939380984094338340245531136770036848321005387347522961666975726147373533503897711323023466795285283600810138564051681426476434330456564251951786392404840518197935440156992308301572409665743235180371898580688304195049450702177889007359486880613569046429340382489835407587591909664846670957966355044802900221292180375255398499314942787435576253847216231558884002835834440085200595334173349583631306104477708386985096173998569472741702992781628874387565643609782763935416892302107001942188366377963439241881678520120466733803076637141055269207698764169955731832808059986347078743722771929196679860393526439030152156560240425489178755389738480126534982842260604204167606738499522033996254955603089175745871545309107264418846461618710825476277755391790430903369269016711849287022634373090078769561319342165196884869579186493327344975498946462831244780455743639445758114070586170180450470607273167060917361454814952946296980784242952292833476192968604579604418112361911207937646111581045969877905144169515171032665991742231003225758064610925025472468952973004181486791508196143024577678812259426124536384137604765961843278802923611314520763724121774269044485319632648897125079898216021833056275720240033507805497941410483663405912734338088922192055892800814565950902009669694184634607380910943038347220527766516274454176318054019723219375712230923071664004262448999831483699857855182498521451859583613965348252657566730273255696943239499013194782762165226415140308442773386131985392427947376737694641630478609098773442054842394744628930721864053866172341033629650029891810045297093265374787791138056929082506895239925440325473670256231013777729124250533466769752603445435387342072502924396256858617087364672631406996182803868374654802095240621399431486411291661219830019487179394905802037034113443373087292597814752526488116587543730026901288755927160771207290110891941618734164249967965449655657861029995773398202662448835666048719914961515635601243197900870359333649704062170815297240291127553185833822727798070978584913839595470002345914569592233261814035374091849621366435348817588562270585278080632342478105735347208051204440276482271271557734531619936160874992342890520228198895396690520483036037952486685947274459563335872593292460633735681066849396198154843010126957074548258904769233145759311067338042575182746659685504190750908570013833257960313365827578739667316196643138254350468087384050573437691889893091169601285959167831440345144697946071389262926005878017050365054338586806738210439885462549497327824658665369364682467102263309742614638447268620758918788428440135630299492020652899364718525697107276554920957831486454359454251243864554216327965374186569541725019089485574061326430279313439623903502615535808936855713465646518853808295683053270640624622866706471646258508351674223695342529509763199374697974831435269270246184963013163449713729430018581588485053372826626654777476358756536081454439728067354197747193529681431162901263573350456231778716233266013848591560519117619090307694982654418974119909621296373324877289125916866289035990711797079548413603505129657364173215024685830621144684672159306352024502069649682455663290954584338162783227495263590063872485560523539352525403865750190867889090179838951011243919209712421497393265870316211994254780811035121694593325801541378877242082377541978289248235924895377660020378673238905195118503748237667599743686150268464542631140290992757029355832448353027688966161316835990319865643689951050116503975033639037165228593096170561850773679714172065387138280067755169673039629239272641166628090204704115675906470895985534250881956802632411553401828860071608866769770605074789573053172758631710287505133218429928408489574677757065996776129029986607236071908287681848442766429453632020796340636108245859638138848817119692395936115246982356690974207290611705848348407072635838959198551472171057204894278199619326549615681777227757251508974950867133168127177225493860817900021492958569169886956341985613538961668116204754971072978733355623242155690040935984818352190985413870764543651602877943461591274790959673507328158897711959568962675331132063138055846821007215343940108358028392646481899469794599706480815894194821577009898464549023375123486138742292909849298902487650514785746287436204896489725373187488863934025374719058039919711157610151703077621066002134454751203747679757299643603017844623004653123306060691837531237848025119680928406719555663282508886499647266058071670576089400562436868062489761270616759768524276818878629600340133570505607331415112083187793489293129954608421139160556104386026889239929254716353833687679285484822420978730111136090839467221209196827892669351685131639424067535445615144524015697269607543208554279690718564804022358297188508737358037535823345036355437023001036457894929237864893365005408764986937044306152813031454648332270080509237652180052727428307931177036203657755617960319458411110029546603625068215055656526710521004596469429557914444482116300502902708783399436761466955493439280480456871696227811729619088617928220130837659264470628607682189726960174867655617390895549362601764368309163560416997253289937619660791793506732084735664213137078495956283621653937145856688372318090395880177548056379747215391208183138606776520697076538377220740968343940869618700221379436454830183872053836088097732454471682333608005080083146206396180509790389475466146472191971314950180202084733847318364141030701702035419886853428407976640578118522378561432512280545290366147954522552905153118422740912933932168407339156836192212726143163038793791970410737516480366157365244697979956677127547145971509385074440886011544142456228159945889680771480769969247307300028625310292228221826750516651412927130184854936971904221833357082383931605627833918455766013009632376748724386314146406430822695698696240767280905358899151106606577211227233967908633398527855065767001379561703024920153829596578669159569529926614555814122448624035855596280328274262996584624380210295806007319298668255294191845385370938332212387558279470806599778190489729905878434356867311583926639795278757628717009885287092470203880137143695224039433641810871254088935213403953796546815926500641669873596475737958799614582644684306301784353626282863276496259262421793035422740734948350398866931711278635004288605901733175569372668002972116022754825562287425563763611732923674482972612712301655817336400140171254082590237742976851489876133656719941174798715686935173738946602203670796709101057529000600571899814230160379739741188463253876045535263693912920930020961769535340097523426800558678628287061622785456564685183688311709172809964241019725486858566224801577442858518509345796218302619684526223388082975849034367850089672261958248459792712736306436858524800692214385970799951902399759159774207531771306794939397125808562553143381746950748263123833563796006527050234934632899640767442555262715894572473712131436260982372465772129828700555792174202151280852724162029481874120923079662245731088282850311011282529982918581194225397621703235366262448524132525252087809720977848065530547158474609777069029839722937258361431832166922153967927551967047923950266957448071158803657594155543895850548323866777125632834115697548737688933411801592135907948254362797849527049030261640702294380138810171430143662851949450395347597193168533089005971234598694675049472169499781554454511159158985541891060302917631537877095633728922408102147940208583683609020122319067938825851906671792507517966858857657375910951229019392123560331967997618680152524668962088248368440287823313461654116871502234103746102836070991744235586918119413148712036804242034469447585033956523608835444938911408400975200333472278128563890068869939808402812025778372135679365887298589352493821785212108241819301868591752886445795324102998237059410157732646442164546976583220923216776535453335469169022490627390212231386521239815158220075902694971894392546943916384154625671887605451924799461457130109874611331631102523103470120342231531228999002099624394798467063689501381057828411484247111777543107567292544836911236125882607741133570747757119439734487477703469676806923238198975506250029081271599621350453931181484172591091879954404783952976529828102884927815849488116735340316802539206658028553023868741855850132461861815888808086644483765792398541450881172856552962472302001990263404000191522758559276925235449049101417396883630989584508153780525669345719648619158405267205822365293465454247675810180416495669424828012709183669548590748224284162852537729125794038671998305864323410675043077988846081406363105184667656070740237285697819703816888367285335872209296858919248789534645168623783082289065718986005044209266064853406052780186640507733911892320868764909641351520941197195538625676945875044457436579954417696908456666155424361585778774354356089894432617238207010640867596471758425593387427574250007390574926441780676743140110669478651636758443323359507376021577925428351032123621618733297792045281642547374640719090900845515815843475741215717081748624772258538345325726378569201057484736947347747903720414163005228583709277547857962918930616965308229251098133817866528168351039249245308811677562967239976411739383356196500383012892360411136453593467163440088818077675176598435803476039607769782083613874853041500089998025744721662454133709795641539183655641394369767416821562738373602080666947556871259236904423694463848520374767788894884340425240219526486116608040115818973959164275369351331748736330515235769471082053688275862919421688059333198932152076842972365162998855756937963303172553669841855061923849810970199522498134101588038000717447622825867111356931768778443040692743258996599025380221038740416296612087862329780717383947063441530030033723399950753623187099824558632867802873679350832084673925935565722445699113863332000676119199115783540121401482504018269277634678489715645493985530517712068130184138310705945718721119802712486182120418710831010465088668000527083953655283287372881662768519791724100568249928837939477693652102958103489322117687261375940436219248936728308019640796703911314196066998674177359100773129074256327811807721203534081252953011127181056746924301279576376170995662246245446512208031703119491267568374818176186887842266666574965351572088454141695425854937980759640362718223234318334887988021411444239511209270926448770656049617862048207557073170350424649553429966956273776664335346262274512385217121019697547924342241122054664992168787983480261206101505473609682314964584434013941019295599585380338371010968886451563369842848870969885260196244443893253723230689911697955549250349879338714306561081473473166911433629857699915973293181112164495761246992641505905510269998260360106718129322473384993577548378603736644941049688732650871282774986280907229474274464430024783768436051071690399254175452758741567464337389014555642695468831824047652862037014676144929787499166613649196912099423513120390831952682866081551891841272837805571860461338547394946847066776018983245642299090946930031040084641554291891649575143160167127818885681842247969579191507699956064516048485183510879208254402889744514629205766071582458798953184995427175523417614460932314860590753433967681787090670558200842053924248644204970918147133894918231118483868531099411757742476716115630911028618903950150425856741848651500148648584690343048787699358628749216589878354744615215292180257280274850488796826568313367031653730668684812486451570601227589753731432021385712562744183793135261565009855767765272213297251955925274435961057629881954806442187725120227725623313723094370693927227022329563563306469049963400422839516282167708793452983034990792479436621381760395533048569649747143328321673966611528160492237985253974229701798823337648334168025905620938104485692796737250242846584348555713931680596394604530719987962221684248810615346467544679264595413281375743633746879727242556994395066151998098240137920864604838251923716002818303635575138693220443177265271118685169586740361756965522510864908190321900822358256429849281020972001682764472763514562095785410126288758128805488493624358519647779556951856224364355268721591893104156585943398304244006194844510783255230636659411576318453706875454251203946655615808680979628279533081312984825890099681585035346689881289183981193040322634764114793513768700115677831796651154187388923624817368898170913543993101079599366137982224449560013377821173655376324131051869431280441292341044927484717800037537227884381006775520093456890235372340523639471514603104468828928383983516976543617046484006832574194731111866558923840462300060736045029971127386881822581510633170565054485208588852913044152277798692338099679181209350023242374213505452823947087179140204024136039873612500320296473926287351928040429609426852326022442826706201371121095764913752636574231852845261306075394651859528566020738729468698623329620271058542141544497506191349747517026973427028452576564638270818659422037524566757790649276047609770491445242726279321224730233941999018565876261700212069107908423738321446702712218584370064019454728439989187612704032040505542189673614932653494111249902824883267541902762943509632849128452225934157342262043233414338379257461626974063448904132906439587955974565589166692826496207968168876063453057118111572356324448856605852814560638155165645256911086743242278523169525615532446450042977739019397818613094768885089401120757404798762977673554553024231798834687972437025841611641942401247937534727019502891994377978964807657877566731496314506447272629860113475296697115030345591739188106129056915552028794755069304122705466352416052672391017162620273686892911241538458475504591904810932391822619730847975823280479617364039166058853993748736904321390105874596522972182466607439267860798303595974283891460583951921822157903520054305541017499689661701597053150664798220867681087931619998533489508439772319757313276660673485429510197286061713580268845870141110859627123731450755715352935585612272476341774279872503616163852761419366901216436863500118283107847972118413520527237662815098111788534100418822759385741275667461574464039286906398873040851789688654034105998661121877904653846097076441113855199027308670860963388699640108029663499586038758579476899099702169347099761541934337123286471044746048672001590095790397143183117446732650207634364890061433902203993343434334912985366046463671300578299863399478409922748117551849259068118238924008788948608507797994108604826802573654032366696843983630244703535397839648835975161142190432429440814440020142448090090694973091525121890591330595877975205471400675795357054630120914711989874566272778143900563636331941518514301764338729350951335167061514713729185259650906057153803913316318161176342167281074041355150418998448491262151851105720741137620063249041797070027930944102329124470356241102416472387812287648809455555361897489385813770716295197466629727721506084908296873883939800317903102755443371152001812479488546853709447980388931117715857360878565512810767487249408017977726651111851021929993931085412263404938885707989148674130672180442161130324615116250182516330114704209510791138202935270795899329301649235501446965818224826304524880591162017998503389673739551956353799055763380556573270909757489718906373533649180313636200661019197491490833689883273339477932525509606453001892898835073032510538042981745771016324443538509478824771563562969110277671646727460146644078897437061392870414963399456801774366529375171566122064864774889123705586297550381128076168540820780756573914291039559302729969717305300277742604761755599812758631445594550072837158594438521083543865001793634495620987686332481569069577851698764398590307228049426314768967015789417389280580857010686196710198900331014635516222260037333037679422801686489237704125663982625668805883109896883799430749733695308017182066152317431426914962740154453621184265272283825717152395745531408554737859364096166374249983097876411258508035484126917955412410045328599073080090431025732298627527980430758441583846868748737419204279473421866525505669114244511507093980463677588344933125223364635029491262460975105714399073776323693903187207593061112304551421458221251678371911459431796329348866132570772233379202656331726369572457704411445178896762180589312002540577104228507283626653703262055690147041399440633559505028110082560564923070555427831813427748805510419370037561461562293467254007312599905351949208270399164318125289837561314849205914980773140460703982713266327562232564529975358259672287823582771991664019105347426762742379982177752743231554773557041103904388145019025961239229290028138335412871553675920530391429466477671734630889846106885808466878543107464321582802131429057483040800121892178291604201010704437163480572190763664522481586996710920020408750673019151589245477685497102536390475700639072681953993580418559799327456610694947797410500711259051245170752197826867550192126088357936024223356017847588668717042916844044445366975870522006277871508827176891726407387812643423318876686781170463166302955168589612185498397899607241827102316442446860809082666039696606353453560797159972272711331559676487240657847885844064457881544825813695757654586949635185924662595758585196101851571640580724692996726865730240591853969980745923668560382367767722309952346803940980742231125237304619586749461798670737433744849745516873436037049089116127998066920033217709490326381042599463424017661762992926510012384696765913806407495749704572299715437607021164368149288179712738725473743110121717520943757448910611610994314828709751431999641361832689373781977218212385258280305209414463376525264324414324430807012817531790443805004162874082454882489703632778910119010786226633633372839675121153816716330158859134961196672699728704004002641584752041704529283421698076233219850209817090724374416930417665387590095826477112568410977521618120525214038044453086484744710221288506832867074269427571017692277575895528065504950268180835353107363048134532901291951690142516514334997721027975580429407475653415763486089097951726729334851226570332888319401983309130584912330611433383608602563632852693853472321945922541504765067308917087839954552649534298140882067421148626701428211899601821753459046168912601860813270728427759374620184154539521630432939541930893440838182800382554069681645661158714675944696790623105659764153915262453347290690586250865793141055213077664924429110464256737702949539280920642088377778185638201886136771885251387271095228998068773762087751164148832175197890732612086134853813300843377035079036876375502527796528387256848286068212489827517225697040091411033444195433862897342249301637100078264548349302204021652617590166895532597547719381064286312770374746557624277872057093929160310808962955413474169323359905505695455952667398701332977843020417455275623532343929275780776360560454499250156531533519479461711227075426700361927247260493192087556926622120630803012146948536127471711706126762061893375268747367880189365795063275600700214137745010876556726966112247246957233290748294759067934577374869660903915643631186264877149285757771443210422914900807460505461252277338017421017470454716113009701136003958378232511714343120454336113554071483313686167879666788701428739602340433466822676905435776980265641416555103513669957914557846978402529488748229747650888934987921865966256659622790787213908139844976673278448155097587816374543926133417471096800827114637059913554390347778310778805247236535729640080938772645382565072892491975836034450017934725629405649988127537509968401339879115582577196488438499119778429566923695622009492608850787518496403018958455194195973689665296466456943239203491286813120504899629919609394606575584719285885490113700215146804141272553278210408954274297581437590485035535611282216263978652203589030193612377605228713236125372409280575130440666605472013342422489092639793578450624918148913353137741704688103281821563207506420818134959392997254329945616579443196708305731043884060324000241428017882354329830719048573486552353065931914460639733620749348887261710848460236445014767288201109012647035163359636965948437362249243722922110741273498965329565757004344342744374431512657006385153402373932661504272695308847159392308729668016442047915151636255654045095460882476186846859394072103471644415634166654411911773110522613879000972480894477366620245254541311938046244876208440525049621697216829719940951091045589614507390219523443687305676196303735145063649990512601705763826636878567075092000657644783085116914541999797171379190806354908920425751943542691177370986005314386114738003951598709980003649751332327786373669416300812078257310649318901775612945834660387649658857482808744877346391553186006167657380613876312321548754056544749460014594102105511307399808802529459407488391646200323003717104135951248791982348278412392716679964919152857228687171016043448626472804637966611522721926447055584249404200385875116244177185548844533430182084975406719708234546322141818947566748844098057521064914853948192228630334525965711514724039278723294215050301788329021245027784405049834088450167764348748703869013049136059718443088750249814896860433569190637406427683344396889855677617176955417797044000895139042115104455774558405569269087049781696541878528491083041130771663130970685753457644821356436846412207544507208285754796053471829344173863117053597210600754995257963757269710654899456229098744069682875552898405026040328040661406090303139530400283480251992685618799446462425024534698873317292584851348892603733184151575891281756991826454104234491195483492390534581489970946316795556882603597474333451358222749754952342507002793759405127006646219218295883098971098494159995068517081932790215827375964517936781003397796507086649434322185094718691825471537613450909649698408253450457129909230793662633840291608822529056846994679282347124607311194812212910635099186105754041531037714348232487207804646809468426031855596955637460023676324195313428692369714201826205758809730389488232557527906387992149285197308037172198383493744564756958758614034264641365309047653725836947612904807550233522871379755448868264900922805685182084321883620080083474652340697760653305866761337134241558812175309875142104723516299036701649901831285160322144868172494754027345900881492645790596253063009813919052024912425592948842483129610581683628856316615191728434096782245952817267168452146342366054776077401243254445807499247919055231013661122790522197408650326801149602705926288447002588404928735459700757044911430899142905630905893482757929056964779447996163872163225824018436956810686261462313594449569794220920235476297376213601747475388946087624857943563208382562257162768983619749784332332599122227074660835177866898159489320655894087637420955672079436441717862371556475180391897838727025985964331882156129132240739263693430774256101924142851698710148531506086884428011805997451837188379105172935444662055596006957425668067323454610900346219323817163205723913598917230205305601108898689020381246032734832864241701696352013450553184603733973581114166955948360023557533274567133413101685590409597078408745566835988576954301959538964616502576769826715521160091509923949604071148273386447695934447889766067687302542316417261881313159011317508343791206079279235002573856659947895356961614224084845861379422884463782814961395361393327818502450754049644039535396838634410374425264214369092018470568826797832417632257396899667344999798786815784123701152145308042749387783563417791324878834427271983096418295945371159350435232912646439398354614519464706765972428484331053846296788535424017415719175474471299960607489031447407580217114630328402135063081879434402612098533123782138850109532948988840977947688878163547583685916890201991704539753255800259184186497155556240157011482694797827023236618485974452152427256566734309283115533754470710967582958938879602351844675428334624577372192167124117810042157611436390807433733869507976195168861961301087848938488900282007594150039879320527209061138776254764253426657198380207987446103569675815815930467931017474014829199371153837567487865406761016401943423141047166430998949235930932538031405604136658894951652038451780171782452131139195291174855122875983603000052427806471741511960940135480411149271501747943525325432127395416861470547083469377568415768564996513545848782463179031987628428136800636016991188331772328805259191531095055529689977523730519171867108785485680600537778524536506309676583992069496994285769492191869750056944992518120689220277030848886898095745234488925534308675669571458831052800401285258345700819525303265765636543834397036706071008440995942924214101382067642907309170212220626902838168681580492488796139153880295850476817724390196729971713140675836032728384729737892606291193500611604131998471926216287933012732415408007446434844947308414719957519675539212914043153213344291217628786251531756792604672390564315895168729073975235105396605008152605143086052952406623781552503609349849055780459030053807774090107000392768185592283479212796429848042378845027088147088822368605963392264352816210472912009796885805264655344448440384668815751208822521973703426353378299180844285353177333126974524436995366605021321582141723352478643181720365015798985594365149257086526288177649081366337348438217119720918632366822185174613155809568270156119771837866760358804550966288582656389438378090546601046673746160808657743412159782879662983663175478959874552761814962463187999057828461542774503457021420605057489030464579945422208405807703282472177100519321866901464441800998122079358024732541030194017892737226481669946645627499131320385534792116377913309947048976911553888464933752135009162165456343822581723060217673954110125327616692702939568348451712157442031345977552529415112323456150416942671261734572728389250644608452741368387029974246215610662711877390052181023605404819281703036519632388607330403523002950083607896808373826516750772383139969593433361762230290017986904200409967788994186178618532191988821910373118350946655893554762965177999560061260015141079988614966541419570778870482419797974855422995328873991290465135805899456475439916464250089101567944333736562766264905633904449705376974381932576161438009896672978019569038892450341192675647870426337395645720083077903119105379963041851379154939908851869271664968730789179434303072706438294412817185392037872024456686067547256117125679781782527438374470895912673224749616201970670811193889502183904972583948302448780668712094171948295895501939045619076879052432729311796814801997745925056706354242823651751787607467849022601213506987561151635302819129914439994368764529993242537941700258005794430553033240127280221282370306206393940890215260994249063228759042265622913715156719015485307163849725207455240353101987297221388861657237189506699788291196127024916489662493956890666649246728685608068140827639536288724469414103244169565443024419729189453720498957081133619757953786837025027175953032514722337413861064707106980886905378917928954810084311903298190967875305786665826462594746099333175359572413919383290574259086722403004526801544464276137914513176215840607659341886612237736464621118223008427659606738454879729323785415172664966425609628430241646667733689175280627562732852913838469827256704702733244066495618604239999391920687091352586113607709563222739385334213021254605680651160338383229972050229518482654016767576274302668995199651199005413889461908011742030582215647593860845806833481145801706894930567620218628994743652981121810260047863875629239915352878605016122995900730817677278327831468902753290488162496435117350881657636811165039391686320833901491571939318369492873534730792744719182418800906805122930384120776538789480496521966507291983040228359968576124942394184075114553685498263689408761744104705631426262898268772143025079618874248167839929504617466046771983212288807270136285654767128615262731295962101064725292461944360375785967714264143484128201542151904375705752678022136165297224940482131689881933340896955445297287703045767683505762392694099722217569523384328156666157303640532978022806840099202471653532962379022738784770982108338972118259487799900057414977611758271874462849573026248222545406860312000998766338607479467358480767824548568956126086373145881482775024962116713317269631702807564858026112164806612305504198893965237464630339750743850680828392537432306750301592650479223226702073356251713602939142207186738311156993514546062115004780967558428901761336224719250448827104096781056194093146998143502354339669100192881024867332831008059566114810552020871237738198434287489203374246304394361943189792917065704322432925224795927885985639707460324270252383733640503239545362762829998984477276936075110369511022966329122832042922272215847703130499304768048484255758472730814458087992881256979338752237267883365875803849445455569152706061210672566290227403764860270517976322165792292692926348739554827145747910372432166054552092720924471268502100949382280015936281793587378022358319589961993728211519932457112371793251711597463222403045137589533063998750189452059509049495133152967972893794665702716526638815173012027986977365626515708751055880693620492016282758679491971178281881927086485990153716013915566394404478143356937279933262728405055261874403925705556612703329997246437915756244518864927167174632675273486877523987479351505461153225286379097012014106097973884639323459262065029046594215514642292412034931952298720648372728031429546520500347403930947827517326081850228207787322536587923448107095312913738662950052534426365466336827926844276971630318275671658181204776357569808689101739549687799590829832964401056808520345726109126702708007216984022407576763526834267890477517596695075695837212603510831689818899640847700495240565333990401184673512554248176737185182683107049461386056969951393847415425072966712041415410796776964985747816432182452515119628676650716548363612830582998588346219119072559736770657328086562599110938767682710603756272671018433220728028750921271762349493614832296743774793402971398149445463426497531890625169769243781644878460162339987709799981482759234755999553963436379439228935463254546596459182452059024970925638370853206861583676899960889491070645528413715077019675411294571326266078329363349647144968182348686837395908814868261528699406511340311900650042242488139958705724003901768506188951646130705546380108503423513246207123654926102940198616976781142391694007553657006644322258992631010448142018874239404405754950323637346585904368308722723388845419459386348990638526826304283786250174243468225190455231857111607010516170201062601061399578175598939430695602419903819084113600330921818084777575008221859075289694010171883077173123223872930193448659670087997061041455600948004237744776708112514782830756975910175414601410825566928734751643182846811748594144717695267502715038250357008616514404809445272098363462366004681376114410572909766717058350694028913095264527661967977621346352166725915806603923965287906417359424359708385313564743073176200092989078075705894476770883304971921269409484824256383876898826706324874905848818963550429255273878304497983910552264579211545403648321568972531063438906601720412664166940224432776123938429014445498539408475499431566699427569440130041725257564249941989560889956833764450999502540142531751960063981429105564218491863901748964689021867871567118559893684292324556741252938069970225078495989618351987815963227543270636801576779252878113649359867095605672075822319549462303298736624755631954801333163123697430061118318109296500047074421770990915411310518408561714340589398373043351165513007082073335724662264504799132594541945618405898380340258813651439843657607082476325836903727692225875369329959643785855296959120366122225955770862703108996701591669440109873884236444966217032889222026091607187408817098353674676030860010889770502512594108048950256963954813663311837351343551488763851736620508482867781259422667588219139500033945507439386096829845845755219644148985151757190482178546384115525183294120561467704809404920195216638751829969257614704779652655192859821648438483393017751581285419759861217199753460755387622399855821632028366230694383077079427665994623338158264154802904128090490673872015898109449347976331588079748617226203132191647111717595131664835169625847391963598151818319643344511184707919431663795831663838745202326915423330796748533393283641408589486251820469747243689523572335695381891176583163889756909858173116912678604868540093237540376614705627006010258654973807101354512944188492238300729515019673881110827013498553478434711993728119280614983139707699460179771214217511617178774240760457952756336670365783607015186775860330995267313110012717419029878520039049983236720560170328199046661284894275747227394039540863668455552265190183812983033714164274846092584115099797696528103185934211591239024249783121807054893596503086471833562009628904554990431574806777229260785411768613760476863735872564374135435158623131513220293374246436901434943930983821893190404341627926489012737419811222712921200516378631351446519981399289068897831859444181290911517152116991906896599120894634142096999178245207007733334633230251261721703413391061530144960500643865556764952968508118765713806411013883257224428788803130913638346684835187277554372699823362545086567683873448955644722130840468319170734782182553657981003804423687500173751257209424485811231775030239487485804229090076378570563977406193958608513755028264641309785062777448556426070300332354155695624610452453435942389205321386334839246344799015568720955902586233129596565399277640554392286436065021067807355107261641979740297361681704849356511032146649807301840674691809599795546760576691363023987238190118212210101658707415715024971875075934145270664582585420281009862670546528354024440405683245107165421263807465269227498979086928255443875302600809506923678377390818713720731833731574891294936286292288227742599762774147436356551429522652241990929048881824571482517617095297097012373680139524406224108405868159681566186229233440421728621339380356346270480673058490773882218706563917757349223506261145320444469682559890908667086414000842171204846011706441754889438156478262163698813103603292805308925804345883462935214962650364264494305980631870399296125899918874337419934281244944388478859768190854724213610950697893296912447449521004835277980024436345096510304778441176534228598510802801413794875061672657714981158811602686148814018101964068495612256620523457960076802870025329139701575853791090983262630083921696696157598736028898346743083333419825831127431742925698253642497802680391658252190147392385249699732140961873452809764248031844195045412709521541816133510566152443867152154323873681022361086817674470607100180729837801842369617575396128161379419324829695335255459393150153431987247996629877198865976795591358761265935413438458144982461811082572452595512255608346965089089489293628390297771144595677697626533117386059930122374031246069414390091809059231601430406371218880499457842712318959960131690961962370265837276553744310804158344667027800951881949929171860736963221004747337396710546907669013446207099884252113383560354444402476714136002958952446828905714058763945804978660277950051317219696324988967450535341841196913023026521778850779435012517092593727792174779813922840284848143148341860664694300919300950713084967131429239982303313688106943983044328142885844494867142935541418335621554535774877843879971358417972246284787183048263149356899543457115799845460176145324494440682710358278649649599907896376623466731317389548741555158932318317978726634094709689147734001550203335646673397714203348640602258306745294664230142214504602176554951793641596110667342024482750527372682120652086022357456907613198293787288984449745451474736769884563728911191486869424514312819592914223284830052822081676419326048403382477527482528482219265647557420085011233112981776091062495667235354933278820935705223590492896503845637541901250511559559667839228919203125602972994401743514623758518349877400904470047855102879353486119518465329704011284988375981618803716419652007749560151339406866026616830784257073211734858372728899606942879628981842692448032329468127501538013057427847107237156750306510022036683975245534756370431931783814728426254160307683606296926537723331124913547134376175914222378182935470507053634502531083896183300308478823302913099312449476351266377917881406584735022353971539241467635493978561708784190194981058628516503566852601972870163362201359982279224679793274243967667997952851948648415808257087572538366854834928757049760442348228554495770396140349489481115128841101718880530644028663326230306316841101247839688754836821034353669942033338086327323008785149337126503905813853780045141526952607690432196754429268585926582519454305395434105839879716574689458493591925991864955848262992023630175196256398259866988232555306530477309238835611299113199700738825445864921876827139616016403403733168592624057547065545352652973096106911574313459554369950906703826942498210888836400242321426029405770497081885735709174633630802722380036260043814267469712470436311235879047687426772061582388236327541041766761323344805570077723245864597403578962847421811933741467432553204112071042681726499469040333441645389498971411742667119279685281788292547789180416681210588091027110808893808134841322809630725250579494002158764826809720048995564558867342935391930107046245589048059764358766442676789320750291325934683604227905246538152963822493970184737546087320895804275263118887968619089271719771624373275735592840321095933407524049673260907521903366790909030830684157943475989758239566996320670641410766028622578375752476547680936868043287286388152882269281732155449085737087994391337787663142349553176660707580032920085408871146392375017849234837530185856059797900769958437722737687144998237756473725446089341073144033598654205317080398476943286148694266988383316954985894983863783581483528991982740605962951389021638597569601344246888793722296237988639151432464041377783736101205222027751658211410934377969817756211468449632546457089160400333622995676597361109726054824382198586666394587057079863254644432697072236862821271519055932761933989698653002721195889437715302370100425713292644891597032724790132203269080145712278560223872666197261777142349073904566352850533670330565611462085672218907941147862100854512050519762483290488861466961718388274393988639791824518096846892566561231196708136316282583522236680505945044618385184248290653570641866139502173777659251638673261146120422011647401742698270799284776224620460249267260287261045409066119346628101667132962326416958092798161423442323886488865871355203433566125869903840756127300687314837387728900001159426488731788362344192944301933254783793922265357128109607598595373479842641828467585047038689438814065208382512326597947917165101645414644064170360813022837663896554147254242436196955366148568292769693722047412058823651552839621802477468011357107288015382713790442661209436883816023955952574470050859532283566901846873232683859560775600833809574701990282769626115655463617116184742715232138129382240061925646052290475253787197680822531200320591894266267208532747416203456582629867517451034989454081788589319840779071073230732545111482188045991219854225399479093368589758507121931973846198511674245883690737775368419459874239226001145500818859965052156872810674256395346882479030145536554193323357121276876720617939493833258232909612525718425648376414813267939858530526487712300062211044433743758730743558361736807185818031614754540589491299674602367277578357222546547536430739288382290998575092931730378261903821514933556697109522482738454707702650599769293725562399709758100847901145496127641379197511498603783854992992004124146793009480549803193273035858606068952265325830732972907202374719555708275398446251907251948041336839372926002701466863344586860251166038696466538725947840751181200113502225729696868366406959822855083066189864637818967690229813991817521305754143755779154375597203073982786562769491377364910569591170185254544697183891184687456971019152863845571506128303920545151100136659794184835416308082167539603565504644945916894510953273365827900087034212326777871899988111057251373644413076686023820444177230757660597746607201017261400294504206781603558620957554885665367131915704503086471888402417687346024281086889859039303918286924234810304853236337266084859297493237657833413776973480739193096907765963868855304890540671962784904232575355318563692735114723792105768911968850238969192422167409533968542019458651772229823562755438146038940357643084894957587354650407760437235448329561774554037888785787857990580572311080449810067096651447244240147939933871495508682584032489703429328886854312767194425138501413497087198054878209356342676808192198389663588336540237457055212777717864628186409439496284764219309769039425153785972605376493059911715675798008671623494650494395648020391171341161860063659198079874237756959517308114671422673414775559781317166952632039006026018740507287738427283929871234826736187449654766761561690326300906298680600284662949252401927150974366001127930689358568309066595347188216105764769790386047469570024548400156295159376963531476491661704842084838997194944696657314336131984733556908620561997423349453044024234362381553607104509723902602183011240087773417652236642716959108246618723695692915050982146823616006592670008864963480834013592006719490667909748079396027348806985735091959131542692215452846765268021647343938961393530135682636412917321148619861037018206115679827211664805746465946823770970548880417066058499175318883271035610421571233433057532514271259650384972382645413613361958824226748974556906330730669976513855111089779007680778991616151257099967644032495720019219740791657489461644832407066618798500068600658802176410574564932763478328255799625722338981166689785077388173602307608764511665880546304628235151808080031304860980059979797196212464912745771706484662747301434566277705791975454567152336595370410714777524490472099674604427150098143507158101865354047471352217350714309607241341353580153921969612028498307289039993265130045328307612264704641911012631806982076591874855011936066975061014295287541332875690829244629860780630159756642140321824897339209335976543900383288877303648303147661386452876625502863011035825559377054206102654076694701678441734829070234292735934710539279760454704835572261445984659469657313985518820001847429751277879205224324512814668007046698172040390890153960343507814473822599827719286341908910576012812488503446941716330710563845472034617194151255441925431208007318930328910877847742049417256007271943612261928197684586747832780454469205797808822455894900881690828878902241455309680635918754862846364699961528693131819165325582420075354402851092555806087271582947929835316920916437600046145016813483825866059972783505265138238653197871585662437756048349434164883421716156984087825267475532975118786390089135471892697017189167124653850881704051842120091460372599845579010898420451427096487863200680053553104471685477185997553564450368890897307538437402745037643640098487385766047038612337275837101193151107996453402143221208272984596043767292714611886307140185759167390651222415190593982615321192047939927648222961020317390399185089678251098975587393916322882162795161152317106625606426120724630507117526916100552729032134085884129214305865254326849330488357211244545331198312807002925266998802568672673322851662083296154223893459564966308587630310748115586640975209710569131291325745784740098103818477995715246233268265649357369178460233705665863942613221554803051287530305505941581357507920719096653381545678845378324874931960477697855939708187131334207767514489894072640363286270195839304816391448465230694099904288488629187433406964588629557784163548362324501433116409245384180989508914009132988516676079445432677650987313259099765444535844356433996248827592044974928368609497440160065853751211151201588784476104755755171901857107411530457242706304222106960246081484230078149775026355116614608634701053217350527665974620934343452397075293501282104247867540773101414803648677714882661653155254784487018966988075954148307801071343767884674586411944410297011410466697292401811635784978412256591586890911321857399413499635783280728965176912370213849171219529500817144443763871045865140159822923469159509111481994613518050701971903715897849269641404127075199871512494698035081249590724523854945855538928828656096710371828505810009287553927066401214803422310274056393043390069739722809408875709337316114182553382077452308370048944173278079266029728786462338198747005442897328936445973506748664751967674066970976007083009112300847380920606692188593011078851510535126942346392518494540940242470612812484505118617243549655670562735888265629243325190488050489399467680316529772380851463245553887470865843178663751307801438397358467290156136385618833996301072435987145473743247604081334859751884621526507093413872402785850665224542108579956764658280745358281925511867504472704734613924337567234494593134855202531289306536977410487190857291656944275575410065223233174752228463902185696540389237265827865789130558839057619226790966557325959393427399656810131500099067088591010236355769521598410249298335806691608372396809323303114924897603129592157237937405211600568229976801551003394957761133785134754076411110762333977751557662978995309148503982199300740907896218491707346948175167603460834655082478602670407788877802686216538456507151251949699261906271422342015406534362451602043508617348349196917601329381559772011109105533034605577928799947115861245775977441398485666267825778055246669581376338691490218387659595057834272444079848627233742920921939481594032383257273326051994863918594540164190555623197371441026818716545751659140200866647863504822187562284572446961155817176776816404521903541154876179057780254123744169587539721849076030292845638111377196002516009917604256047825286935992509626177090040402603330871089465693969489972029869693024382803013012040953957908609099499716711372139955340581067289746036665289897228446022218972241604502542634836741722954476391947410592859883803827010535471432172593988543779378184793764102258898944955328973137624149775053848906804215223058075733670744190584634159215354464678454529558162232124589353537728537659378399179851661127730690898107799826422341675744860081369689475345702487036979015780302795345682673972848972238093297685940647268030873890154812158362196402033651867568893831798357098744875124250881623031098250773926610951550367325126795330845248378666691351410088206066818267883550720308497763874253356975191145491895127974569405984419204706163252050819640591542355725034516996928682170667411676135471218286241640436010890280358225224348992049919138098576416086351480563715673139265873928794197989241716049111451490337084772292564742688612801324139441311327335848346870275749949502001033135043077585626716826036009333632149658402109414559224927135739228341571172948671510541081990558818015618794751633605351314482558133627712397312111795724868951092395947386136576784899056717692493119858427982729350244184210338398984149767258094780733386599991039626515141134364167355774099482230632659003514426845967368728561788210899000070708772794791887769086314316877114036367980294250460366551576187814883140632322553670444759672974305978750900568817855550841209844052907583657650860836145305096001776808605069253847505931668100905818743482651711466219163026280280031003657749954044922132502391875577172348763660513412428698343510643244964262739349766715221830469997012171783097471680447394480859736738351986570554628013633045186037015147978538507138368837174330332352588783917151076783406051134084418333430730958052489690520706287514489997498455527088560469236477961989225656042178156607535024438638267312839391959487337166327896089334997252027937251779685607486764519617240095752845185634035455479689141120491835897892502128577246394450308461805040690598730942708559887315523568990088186176199202833582974440434635214568489861023217025830270008443221683259756817749549524515638202427849288395866906977544951586705510229512697372534288958581675777283322854647701359660919903585736777178766471619132255576994819804157509761522076889078318076874467563752731162841635197823497219417643270404730232007560111750523445541350103052787118341862350922778384898577722463204224258737420147874243181929004773821402655863786089249149219906226577443007415902742116514820444988772771189385926045563041547578153479597501966899615946712111554519388181267839550143925258591075893638335846379872940877915175551221913889970466043385994892693039293859964556008379997024364279920434916615103872790778333416441981777702955305359236399660642965378240419143668307974471894549932868279420028859882153423507356583077790513091811266640596433147774085977285620404095670182879476589562741028453828276647902118393016226759795706671437761402904228561162067870406261017007202209752721675845171691505231414352891933288292301894739946216038351712069408840664257914228914962880410773312130239228372748961079439256300836275964394238663723734993291714302230220552530517133101889325824891381469522297799694979411433205059245331861735533093509828673371594842989600666248589397345458564786346758117066466640700264445785838885430862349338596340795245008580296536368419636366202538456186550836798939914286713783694948278525089586115250206193103658371826911292120039968654664917591175374650742606994783548726834898315143426177467689261628361244793891292018621303371777350287860306444495824405331817952063946167565062541435640428420229127101831150675007396821280901375746000889503006240432049542294914449562905177820308590506244575585458671838089667496274308649767035762718416267063092172978606159546169649390224330373971458987067184014271807196559485317397042745127086845277886934311101655917591606561079840474927965819008791226790256616476127173320650209963405972816779140284815836892585036552175462895477065718839190675658696073780422294633242372750210062120064870368552579872786523819405736743372748947471452532652351871954615702429076778313528446215587298500954846992283802386318945042845179255107471667684542105257773650579813336367205837299040268680297634795874395489552347508389547443749146285887029695496298747515106671348797439981138801368971331435178528426017810636796337091620200082549938846392651977091704319200034107816795717796496447946515085735894401295492731289177044026181634668098036773262586411950905820506892353684399768692788649344460054325283227061864726278528048136849288065173311824536110888279924968419986658327479162453206411993193929056130702478908697042339110180345997278419025955279616583268491220758448917230752839971593508137763735454483446685878058833337260435422057380589200152421235694922303268476301218086335648347176389933854569560196185208650460608001740504100762752362505076673683153790180380453403190777046844911086732944887438938990366505431526156621124872817731278539576907736384233544668906097834960787025869414766715010418283905649390653458871431559488603018637990155667056405199600591291396593921970305990894647825018657062391768506340932919262070330660359417221367028500731380788665902255330409841762590401614401773963916131846495738147554873116280683241942613618241584123295963943411148707236517076176447964764848913498537978388267390529676023686143331431335629561514772538421201342063642607582509450820021896380920538383659496716914241787933859245106853516415502260743381944652252016038223982350544618578146600706568958596313981629663537604016454934281263300241098167240798852524632500085131590380657207214305740210375985790828398224200471385808628175232467988399872868626710096496658309410810810781259621344290203610394343921293341491896332580719708820014997412149287144243869989043602635028853566386432801488292130658966359823662576187626502499333875841971024365728644359541732242284251777364712120387440773280986372488841093736256871713059065296895647997465866320651200040151196536990837565066670538873573566026389984364568512121544050122554947884122035131263588136441233146832233394164056885390277385307817049326261942510919711403720063655243786174127599040987137461336289331218169310968799844759445265494577326149272738865169118790072168758329630633153872400307661731748951325589685982046780091725773396958861915512643508053073589375635582024097773272942635110637301734076599521749620233819199140377122677952276592617235811041908517277863024424023908539907048329870933947084639257164193865155940500135071828941998443312373264886312811275650893382051525455968741246758141842771362375174961504530839704511181192351936729414697294803486863272323449207036188025534468734059695552162010776469378918199494935508087777118658699290650377155862925631826630929586948889579928351330888409882452124207076669709651016973794004460103884977163643471035859735925920255593541849773280405995491345970660371905365770505383721260933248446657522365370479551418098159608727139241905346933611499752267485736942689891713825978600191157309191824019446910399460941827262932902704148046984572855389646163808024851356997656358626274981009222093374182303607479750326581044092768991215860111581662278271428178437992326400660181721047667203548058864146173878782636206799921723600094986471474463433466463400350548144005921697310825438681120726044263069572583328380138896112484146026087600478808399067002722489224970887537658671048264802554189981900464722245333719331807355950615763095784226158559125771766332444750709329355445228069184123532543773797162447458875389306298323485480118261307434868952996351355471136877714441259088362265827118819992595477411979116210009153858765536995482740015764651310087105439087077345034095532904033401222478741393060525078152420339301514265400007762743640025493667356825035863871301750506625861983874917223115337151779169029760776964728645911629959582019925352924409616411095771210843024560947844572810867093422730397509847461831485757805214296398005257284869163105429028054632735497906587260783684494384693212261884710246097632191635769419346950999823256724744400890709610704467507477846969486113219722085259751931590501667711129426250877140286064337873484091896409151427404752901305047892070870831560390909977127976171587599742279626931389244648186608302578896377406137054926165539364535309098060042543880583063469516411423114473842360801691829495798102895565147828966005381309731006046256666651924300837022090280942452169658474443485910670468484281600888013340000190049809489667098304629837591313488720456378442826882320752845509443800464186091607843605949987086011157269332952472199687042372689572330141094688861802479957608159968367110298368077660413760323895831097761902703902388433873033383972563579356055682775035081199521435986818662374957514057859724000938928146331467837991443558922114535068272039456614159850872893638176572311324097980007359658152965640405928725941241046003760337718578962170202875187272461251912621565249934749302472193913817884116081937556286489975521183999449643255661568428357474800455376996740077160600161625458264580988362685828097880710753046434602817601136811955017703637064079492700081095677380466161642120778811877241470923640888658928074700265596998034173754702915548623491469186784611343661232789005883666217705600362178483911373075363229458891173005288846452577843552626692422762440041303701810511311677060581693733233644805196245835868772654419794266990632651479030827451139281824326892603594545978727189608849639856969963480698614285830041519873691159166634119960905195324820842486602158382879984950414222104765969366432872524842834423512487281494137421572652643411943489934774792272445481915065558484370263683051761005089617519678323729018687759991585098460606374012460489409396694777173191875398136878353408082364520876231233711253055753684217745530914395971896502296374280711125370380172341876509407007117482258955791156359510310366193804800712228928325811399240951716207319988936456054384532338576427777609629781143798079161028993778284530451190948976042878231481928787448179732239982725006566896085433853026677324286617881615878529432932647394308099885512290503089708425063923324032302083833280348041302913443785878480894412624587654015198236445663653674403930492819480143784180668113199301413001875347078382624560685597317024141579913438376813738941298131803108523630129040575324775005765228060021173170797187956233995942453407752187094570293996183652091485763083971877315412975862353017884199774223186015538308986823757915930485341375202048854591971534404572633047728005747074697884841711444326084457150806816661383264765202139235704407219655956979128928999777618629006265792949940570146944711306728507687262391707662122386029327160832968309999503681079092823284144075299633455948879463808378676692253272337258697852093604249760147869910725231365178482761583424776796196673321178962970342297461547937425844516178860290596114128056192942388543515368494477194267017922469037998998410363277364848660496422018914370143970878236822695471219512068924849132773223147578011175307215582796841318678934997785142664289390256180851986646686222890624065494619319973871182787765646891903885200396221046920895082993296077310868455230918191755977642583373941536875339945493038366752103641834816120790905240656752253808366713126905982463585711298800518159399802808554746250739920749592562483757590176105769299505713354457394249025300851219922273905509935202022080879177437709354371151951925241120170505991617393071997797397955762232589935147329193357122164307475327153130409481004191349054047858683381780280924151798067902438599739363128747510792909833115534115344653914162796829487283524577175782279705412735243601089420041130315296503380222022540389634661409264236161389189220888100041822483117565144633996814616214371333625803825745478168469343223770383692961968331768530183446929048198049319150490700225916495987709509013340672807132024216328814905515979812619461592907010827671934647875304664651223673469596474695678420618546500883709238944183477651241769025804389936275074408219838180872891069505220244865137154679885872063974441155080915321950895316545954877612037014216312096537235403407992495175307702180610383771952148871220615884976191158325311493048009499181940639153788605259190287003118247217068689078057973037627689040263899170689084363630065223184046521254013226838364278820379375286919260737215380022716886135402769768588243487845462802677301686889733283876980472265283932236828926679724179542485469332608760430491886631562481420413977310759074288889129424965819629673147964031122345602224381446833875818936685294732677862509594635930389394775767939219756596377339385731941001971476772848425460552300239175651619948103419380467206711076535136309704568831061885954602103858003103612138843419952387319388703902700743287802273166754789104106971752120845036641636956112136986135064243973508564529362819417811049080701596469478253497233692869975882290026648269357519909091607884218991981855162689502726816769656578326943081182812754948802051000145150427207571621825394042374834005695158277731068350135470173608511548647357940296241987258643875240580192958618420238697205743869384496516009584694089277407855689047302617041068466005847871172274085044053412054026752480040064994812331090014876513146851143164887700572049329139991434604639948427226123425853985935267035462957553178837667890031772122420235395527177120114705596624190565894241862536988829127795490272847138173066169827930442073979013099305601297856968048255272279542181658531981114278868070649915480346240675044590197324526124459811502851589707319541330068341639835298050150395784531673183797524427761698875162358707193428221962455055354945358934320432757907665263786001239450277593732119911019253749125957509746419719609495491267138491707289134273379742305271347638137321905584612222616483201597778185201268177083126019499438589076574917550829678322510222501243495473296585697928509416993984514953955472789297747628966034632513019825643411856263456266963773816709773945445084935803972866909491202520560670925654512676724901620436621448680039449249615963632271871643957040260720631406657268878707085205888915187382054794806794383923104014161516181315510472684681157884482363340670195611035650278828510001577431159729503448333761200349447977268235623100154521932725866473916847868227596866624778071815169324228300917653635943906419998696940500213731347502465473838095495471663049991862214158731387079652446776585842537598005542269358786797440607209748012917389051687224190048499302346537215765857404624497984830752849917289899037121833674333385326095595755006222661948220896092547189401558416758534445433792790761072104721052005823181200714826644168381071996066093866927036019764962175808361012910321006845580155063901444085847205157251240321129668778135820750042050731733218801064168652879504348534821226711662070589212127326999033299240794800518216363306951073992512544061321406212656906540642402298316955023551003744997830363642235017325843099637554710093359110389449902392142552022713323938723141449038969241144118625631343515234826715876705326388590530876606682558006299002300598732514252067543468168557658235012947047223798440514859798436433599473303243890830509851005336851991410844308724778730752357991191833228004379015758730947004112140913519135270943883075932943523287683177808362505227920571268191320635168218621482603190400406533036187773850637816343722445597354254611784995808810601520422526640036447722771180220749507175804007395395426659736949874199766673292555072840290749939206098524565865382710785038260173185536613871122922640880373410567028176138781580699202876642933660380338049011296570379369427976984832476542143544521449587848194880983335942986520422787632731375323724288178306251221634330007086813730683335765375596229687056970360934792531118416248036521666174929284269603191209044987131435228691048965960160637616772444058431318195398140555054630843564815884540205541021459910592095167935021082604672253835718418943479289168375188504433928877764665235737125737890448725641331878695036391447408337916592054574113189495006872917026322439673548625175152192710208116466807779190848859180702516978214050297456860371801871843017007140889316972272704215472495329940572752005702594579279139798164745295632514872271181370920759035015226343132457113996144428131331575445683810874321042352467139420164750832599102162636897939531026554907780926498068620519807725244938586486650753407716396852175481941626139887135085047384246854003004251709543736378020578489230948273868270112792272448491859942374354847100325392800492806204010136600189609840536992024644186606645189719612716676408794961714725093315056768774006804162205793257159182343955275058531272754429801235205075769872689982374791557262040536573334635372521347586418096947826728785316390138887849666385962030366133651759035481734147484739255414697220350930127666283694834727992738367191902913820906056216062287730099849312960455692759793264212561298733516415421332181683949241433371811021555362975302995755024220637154476674134908929184340728584984209280360604104428615663544879787925962034628819741836245462037852488591998043929355744970352449315863822960782465827714814340517983242026381889234759243748402522356465722779013567313369801479066451361923023279361658758679773723507218151431464505259494099144885289280951059753718469108107370290994032240665920103418474652290656603246113922914824194825117023883320443317613635017179069770856896602475354403548743633721866255567080684999456146441211866585060622450550675122671551340708548369960312237139926492949566073923471735795536001899934480524749937479874379363879378159986072312504338115845605195029439850894738390785086120754431180889895599347055612382365318233167077880316842963763014645579354776055489724607492566052042249569269272372193962546916397632862287060282018456494083049178813908245012491439005540956858847403616914244394442520921081769130877102170620752221463175165138423970799690768903804687744113361811129262724978387877066447659556766254837627784166892293947315621605346840359574369171821500090513033039497254744316582395060219409949707797938349505434722913440533598860841906963139575251654609602436344168296437719224038576655540543200643535504049385181866697511082809069717143200048861799493329549810377408301870554232126045659136818858335223051901415654674487151190118956944746733613603298604838152771236220920329660561344523936935774054011262067883179112460018959529031785502828680747051502944494462259398954257408559770501794805234187224455440680959895506364213325317577871881013942662192075344692139419234534169719081707898389886899087734086243363760990771377634883157183746758668128477245352806184174169221276134882570363213850984505291160757602750488335881202020586374279498597650065314305641783254766711257887379223370821005170368678446147756872276392122668627077989294319151462713911814398825596752594564483018757887302679511659399174991277938356444845841283524542984166239896395289550732214734937909987676229050199196689280415512227953833232752932144111878125231992014146572803553241176938067916835807544660730989592955843750481280870261205081834672922112400124055289789013316061641697642678621849098723459219712846295904766999203828482324482904751975710461068566970773717471787345221560187906974794039506203774148776873164360050221797921732589744407960346562905622634709908318111172781943651750837945164494119349738990089915906058734554615387945165913013942937536819339542207947773376657772450644614879733422992939237772949385725369797600323842804288269402407239338905057011769318213972030226389234368171114919513114876175583889423488680135334358081477482570636796707518677957744312678200809817392403310588414415497019529465515910543676606054134416833809574840984904260212653513090646689225067667861147090952074060505202989525295719105428435761388198453370347413126238210868547829065188753825152833303340164878569449833464380845306818264379999922471562664330497998547788753328948912925508895808168732214311866387142516895795241268641911992859091488300611207817639970746722771083640441310003207403042179437787376751753876095854378176049331302669797835389402154233633293468871994554981156134603053613667064778836367902012890689727747664210721092343544903078946152829487275946012515617543279032631945409497930761432113632522563989627016419431795304226627870388583147413547101678439304673552779867627952589358740090052413130520467753857876976758345507623341455819831983763136356000757432519571830103915480533222002399238154161692989858444605266782985553835709458943021865026023411566525907745059692311668834702082772950122003318983105225721142296577197975336278168872688199324759136197336067993708272475093723171562155202683647022295650331389317636529348647757866389137809087261938509014202069539451112799780990393282483234748181884338213462846808879114654471700974310106659706234148945959448008947008874531668173799727278098524855773413085453832732413766759611962550103990900978099450815503469493875551690325010069401473214882456354694023916266180827082895520075617348808810641161955763620079129514182836817145694608373832891706446313434444318338722836056377625022538058704250900260265719780836934377220341772029720882932964314529487289983595059188960369475363016829527920639005371365352919060623401139065362509281458674253967885145648559963978060404735267134362756849621336612548005199819648440616605269095484439483164868782134013557937708586621967454593414814565696804768776031863234330799250972521412919885678773404543596010620975863459523233866856655803140153487254378931327184379911500761153836042046588830290822357079912458779803852096577083570748813450111962178735881733874557328837860053805707654952543718677677056840629819807084810953840900023461629085514798111766018821929985090501363346426898304885516727761458911436858515712790593293144150849715240694902508637537520603294973491678210652462114207437113005179491915444105030506142055065268607120183519637906050664760369048779427901821972707363639068480407606865415641908198084269969275588026494687205961530760296175420813157517063382227914885573563328305678855964362156067458282707053222979520061637650495531516689388575288821718467348777885736030232377048987541534484258689126809673209373590283982491461777405699929683838157090925926739950455482033812576869512245144934098729248581529300630638162437387875692181154060221555915009590496210189050871240844593383907472892010356263328932911621215106663445384530551143826533250646600906508831304486347193127355115470096376309274374023223387661038019928047508462462995958243949899787656313967414185091967817762789163928943058589240566233588359159502547934156514633055696885125132881877122023259661889257952486522345831221925325171140901016117596703179378242197791726160131459778757252855178478387179725990138318512580919570161446940287842374656010428618097988836430558513342736397856848166133870868631086948370265712025735787990892424215873184984720567080198382252894170491333675980621456052439840751548817625470630114185949000424790152590457657039899210228558158366632058763145663459584941012327411868688958432116804134655565484172705199378156702652221546074782950506545986711631308224185858742978107054544823972116051952042104585461402793730537577898302737927964501940495387310722378989352323940820957964200114472999064070805364825890928571479826676551348728923058947835460166761355799733164853362782394895522713433881913528189225576769682772756541759005686582722396858762254035604680436715068952344003974958046768388067087881274883043262992991535610996908698496951941264285727767551980952239353108690020678954074344757505856560862409748557369163909339192525341680172111913163521328376318433720895595049247128898378858191052055481796895899122007543355210640669258556903670995652884864269021117940837941161541118055461776476362180649305367183853679254931357155337039832564324154112388122851986091185700104595019465429477500685759684548886646543825159844712666784207376578995879049283986168676315018700196046772858675132283800702132112953806854035682121266079854518657091265867900351224523944549504310229639072146959655857043614317156890409995439912296750295977979783462462368667470590247227016822722244127963372012228115102155638688746825490800121294068807771220529256024135117095543424286956122013011383389331836432290010470916131528861284973851129347508704641937958419391721899756794733953101237588078530178845499055019497873332250793213162958968429633008835610757934023571177592050706657090615289877383219539855688241457586828503264870781482235685341187250023939966498044816112380509758845016421132788454394401791101788772654582068092030701445087096593140088873002989538957427743477102316207872467289841831843766456090189631948479942956432497606313151029241894410386883230732365479717642848048961815408715995616953516604419388624426271628463481250504558914800307843427112710873328864881996568785477076455862251684488657319788155143141698366662685761587530787522173398680624428810230966163547660748631544827372462939750523417106091069068487266345725295666898497053319679067534677789141348052609821315471806736929899054753059597213935036842403453699610360302604828071045149361455171376564663453822586512957946387241552100468877672369300825616806161372819996926336839094692237484872730319823431648606012371296571794667735935340531181337469879441299856722777406500819192046190813119449184824151395687253118148019012151582008432275357851982763311361320041146160135815952686057832954219238333032335932882606827799519000031982132277831262473363700136436650421911278274074467979154842935704856146322678894481147417959131453616531770520381511348964857979727164238187596370758059853905230121381952882297623425537310071312086668644131891992978923387048975616545400836740697232460694209120039369203204871496023624598142488404530280860222569071098785548540904790912083250921779455209938782347266600569411585772861498994371086862070493633503071717525102032773286197026674105130178736555791104832636550974359869165404925400159402010529260244721154103125104697471212817475052544672596876476873951755171069849238587038144818221454775599035710806833286227778194958617653155797850223273733117474402646534511351600259029886834428240130708377101077731193839224721635310168855851282032240304363409182179810331976538216159520190875034685773343728571788191027145700224847828389881419760039613933583154515994913065747418747261808972709493630295540354834886407217488968106566040540732298579502406004925972361953301093552267288667565219847638814401246669711905329572454867397720142326995900353797707474967756946318159736133357214820335598543521151555975743955800940341736901945170036324610777869838671412283505131968569371203529015409979644709647075588558649316608675714758043755663553495043057841529756239659104671672288621197077244080512751910129741826152961001086204369954047785172356121709825428812176361938185126284583789230497563612620174725782241716218032922717499781785422088077811418406673513908757384639608604937088036505003762445197412771711404233948209153778229212230479143312167367595971233919510519927999260723961713136163103177680050411901825863224474826431737074580963563699261647934822949458869183592025659122630990996710660578967913727370972179289052545746578045868453339786579437023922964961836187963273621718849550414068941831432920197302479920155599545595999850168188968317754692011209197171056075779305326587948889248459734850975409645201823443051346768483783516754365149890998854435066161931407472533129898870892433458466564700697142985059553936226595622758088039291309368110351242597182344522041697634547086034536489453331433844396402716928910387530800582464867588026462295488716967672076067991119509603000500739913447781225659949976620688251103889640041400738162676262539663264806989538516991348539265684130636742185485922712569936016488258529465604664397102435059679844343828019705416359250261928683118267977373805270091413425764237796982014120034159430980841547180412504767380509598889604805796955136929993386817739398547831989649911020840909936427551185199460941328671236181415161089512027180611921836317147084500307930274347582450212553261073200275977135301539931213110220965879838690162312459974851873931286303941406209344604403352514498938869260737395589131112268828303517815197089889125316511191799084694269001306569116709075596081374121588011719135900145748512715356224714742445166010661349164112470471136023796279260438285242013124367640219483843416828374082246676063707482277230541110466462849749732724194888079547191468194192718379217900621848809595049730795904100508307995611378752776090516142670473051786327768987714312069718192523432315233161776296052803607951159144915477871143179891432463554604374504230904729865406249675681971363081527447501254315718416341616424153199387930952002376485379536099197415389592094480738997391176112347755271389331629662539080536099288896633011707753965780233756088195184371548243909989729061617308242127805660065908269934089692085389823551582204281091954384200243432730261962399729117383975918127058287363612987490631408802567878068050632340968624676864569440231085571163833637561902985938141469349240878907754497786621891308942985681288885539977873418960307302289780168224255044645836226208498114065693564954294936118246845827337094228096210595851470822637593474456215779413748140022639507980147262695905670827830554096330751685539764041378877298189747591173036654897855899238083415834821249840174740863691566998695060253491636359848093584455342983793144030941492233222893200018549802661783825184511710559642774415073667568223046888497853835654242791610903510618522699918830779309241013503053741350595957137848015834928326928369965039954620329103383811315276013649051971746584987464736074694624123330250179058806874610524826023351593371593037273025033356866303697417454649926254070507713881873580015131990395401714495615338151367608549509070660489694284211137759873087298922292986999723369923703308587130137506716589018864282780406142073360628410701366563084168758543188249904305031227854694619126192155639138012815170611335474607727867313327744583739142867285611942961527066239018723109356293998475510610363885542031032059414387060981576348932223691321371812853469054242591015893839825120254161187667959354206288728926349460607428557348936472615845913734914570922369088859101386660563112941688907408289533460866248160788765483552682278986660326848501907784391646056801217032815414941674464117800771349238163327146803844178433426194413204492896122621966523383083115876828396856198145728998611811504516618197274973892425093431014380820164890031469012286692532829391864407659436551507193807644656725183384318720810611496570303946711002906736636351778241782450963090044954371873066548150833303470734530539264913277193082648905183043664656300916920501497355369656112911188640824429560092891417585135699254507756380769613084889637769676790383421545457495030460763455467020528118297652240459317972727118937995022769081307699098179141292612267880139665416624587564804546865469208804941560287174759177832701727090726132299561134862445254592238337566398085394917614974104261539002740667349414512720305543123707564392512647629050355373027087359629819610886591750236523399624032138576919851121447232475526322586781406448895424821644086403720825733992609324589475722617590928864768495088187795809989304796927274161204000000835807935625802365517204330098888189381634316138156065045296893883146852538661474283798008080324563536187439800489827776556638311799253124958711721115591818634278997540496018831921288477910225116169114042785878670668530571101896300648144944888542278130388235104133613139572831766164521121529117627938612258334102423674098025718725903807858691852537240402093512426763255493929431237287363317501883197488014084738538712399698024660765283863904059347069250699372908698161537689537616226947584922761275280177627613914290767379251466951018949556231584663596687356206781651716485628192340000879772198871138723930876101635662913221661912452673584684583810587772791693709932010606995436081479764513674279798888047377955171975400524527358963655414632168994240535465525126226422553657547947215929021393722647620512206360065779848080750755706845082667787453563563274970805250983715107088475693126823872439500080389678694082534018869958203192375018252530740689322216578973398473783155111268862278817529979485419361974649578404857381576073653893323176508619898792601726477496821896485270039102367860134609523108191764837713653921149871772250138284619820703755007033749890187981343944788617643658014054503673102546950831413637247566702959440533264739042367727689564415156718224695391694860504432506020726599709084914562270877195264694315765830569316239600757703084825816727917217181894093056341253459256544117253912852286937127912349212730763777087339573601157191272514581391393778826566598681139581750026704070623028815273743697579856613729890146461767905224548174029055960353211272829547035785295098121670260939481818035845252842923471141637037888726058443520400493002424119016773042337430509787685608695850464616341245398829989826500508410023269505568475860071571963860590934718292839922693635907404248826526277675516689911488131465314736916078045667761436535279931729506886893578990455865831328992874081039545986712231651619972660317640661717501407718591731070889962889288391308642956931163367844620003666990921873661831742208545953365929959715490517193517165331674195215710834582794012328991950463857661025639286244636545107508051221478321712877686000029273496696617044679455963853831505973016486282123413909976072838152276201097518708713314986181683908240938978541562305684402129971557482293964472363490055826525008435517466070128074544742236354650109852421041724409578846233827710421900913372172801785805782789837071075346682733718473607403673684187733341202418585721673134806879090704132321394535304318333502921825444880616314962306728747637259687435987483061169925126400289569888478535892563638826305466855795398259545335143123829292119185945374285962398983706793431765487334443326636038954638465443927995672083048028132426317256025564707707383105641434061204714561623777602434698539466321448493552697752733777599403279275469086408283183068172044282506410304137415715477202935813430838402353118744940922682315774285614413938464794689869626220513984258520791597110325483446004633111993044351867187563800675436287515847241951221358976377370348701814361372826050386511642528401353850591294985675785324242359875785069752271753355235562250758497808258895229518447252154015465936428137874697823014825010848647230930215670508748690930239472547358064258001725576642975924828510498707859425993937372900338032202028187528317781291378576842392226604020494429374991440362779825658177176667954393265434806292569414917476801388500765325696143201934488463281805845430316592721548930318847966584000102703524936844155265234630722656386250848973557914417769302429006487267090999478144088858889973773398604229042767527095063297890357215854596909348113044139417405772256890362939447655545038596418195841886808872578826888504682935162007183388532531949638825662717265393821558834888958442075071378387600386498966593656697554120880639752144187761335666621855674153156403738212892367404812508224678107196028657425060822832386466432368260511366653783923840100221303293779443181002254014193962949487320890327245714981358449164665226339738952820797284520705389275934179481099023254686150541484117228952861663666816279060475958409254666484774581627115094523819601564963003698713506767100865181559000921599612765944105816609326660428542433933721164854871255155883017484263358100660233644945566985983210895545705630923087580121971849040205018796799590940379360451161343504423871334161824690315392594259667866368416042752002599719228756622691347527836062319224993531741464627520007254662171897739302051843422035457424944009028795853123351743791272972725660573868095632852285897210898228974358999260484741292990404954910017112478455832601095150609221709521511313236275137245767765495013023199216542250804385077009831275091639806341662720174138144306829188982715492159075051704659662726356916886197882472379408209945882455132638176582550609154897630663810864046743629731298293805426405353973557664662647348868822551618417505295843712992218315826304380817204643212774140721418229700415424143389125286769798198360299202889029837415661096357100461950976371114203934812384431522460123685937352296812420073798888593764126599879910855682330763634323531205239230351393674925474849302946079210424153768056272987143479706243606806155036337788928797164164872282884488701893159204232540876686063387546311640008550826245697110595864186232758277629870063905288741606762747920353356906552417278026591430647173109560795936827678568559437335212086433971592050149627703947215527027800962742445164445415082994440649398863852632980656816316513407381881238525513520130169562021901404664495976716044171615814818411120087126162356250491400213008217306996033118112195844286265892346874656097244346827074489288604957055418047596256025898657526834439754288641802491222150657915162167933869352192050909036610193549190077690179065618575499288581455205376228742894722992141945074083761551009161128304903942444702982480482404686399145582634521675974294822355077462361283648739790054105024662846747741975939080480019562545029315127728842958185386075997765742223765947348895032079364281609089567508634757223966608249772548157930746865461271560542297243284890360593987892573440347568196426276020309069296301206219079229907871575599509165213776233226789048859099201086490149067700247877567938656390557825739196486136627902821255218975241117968699613682633319989948960811547051561268429857103360925252395741916722104905051687945523608461409551083723531082188553959713247898453651031854396010175871640762192808821203141200529972583773038643383848699956494198214525586169616051076087818911473951555300027537019775886292159434571563436368679445730767998425230809761860607778209742669963721523556888970282235107218388034858150651454529428671545970086042479075030955538585689865110982457030483619513583904959945512621992322742086161497885439553316251836420988855016568053951044939798511479570247467960757222618959591659764087301018486054422425058219363955156951100979677665780503741968741555832882263877705322498151636611537274620102858593203942836235528746498491973610698700895421969171233491635036304070609619065607350128218848509608954746411071111079233422636688473489546775267691309987171673778959817162587021143810957101008614710814922051906359591220279692625402566977636339426372230740812012848744132981310161154542002179006176772479570509919965347827698862526848633933939915590084148702093919251675785400668490672645207882852473071084962473405867441057245826429521174358124820158967645549432089147225272402841124886461155450127388193412064186720305360190421272357977807056531029045794143426295446464455147895081694757828452308982025917244427533657236886946677736353776528025860352870762235668781391449354964374743774242321243487267266499845298512960572398118684280232973132323575906424371052481992345267475970681872038669048364315042671628561822000304562558169600655872807162940297317978230679761444744259365556665752373265840467304222968103089101267166026024462613156784313488548414364591682164323673746339076367883530129377939398388595459219382079749645857873917655485097187681071059639661555921900118531687152015976841927254403977320533617973147270451056373648091315652280422279462134432951859552104048371717104590230282740064996228979050485685433340557253731492015297872370308266473836805820463379532866134488254764710721359670576675673205142758042680268565264955342257595332804429556265694871764755659803230110898863255347756946500370143831107755747299584875917609213247543079746162181472440763535457447610392391694076362542574233014618588803228181739269114668682011622465061087019109116794232919247606497247782888186063748687887073174669381449262661813658190260581225035037098869742621159640172942957048655549133636200293016203231849823101158005384047897148704807067602259087798140551543182200353288919643575546738037777824465199461196132981896788504792972093439952437135480005712109012731317984763628126413788835169754066294518998183374664763201573447736715659093942284649111682550693105690769573735930172957519334785909855947863633364810994402607312333612953951239435364374890323707889225492520168104805029517615456601214821885650567063988895173044867170236286636112202508377281690775082981652803455938962664780387061713263343294374572729541244337284368087135483972348808175573197418885074201052706854033724081645383258964775625147252443740830543638923538864000467510996800183415792723541998905002466187110201594205333928392217500719233520701344246625279737416700637326631659541100985056741109372177289409702099103241165203400450408235351018497857348867221828275118338633351672626029161542828361265776851996096868814933617282689569836643087858197911515662912455812377477423900757937601223885501172636668133617506387270661790867325510075694893989716676404974712131961147534954967684349841359958024715781906995159194545696185741192598900546911595867453909482363190301079937890274553262033287048933741368408242037993220642621243714028576086937640123860345662801614155869371291489745575422085152250463546459890915238269414004763840937232122572952664630050153178771290752312960452123828124733667651941509997643293858335014496871708206940162427178506275497058932463658374408559393085793353218613626573926361467863352987506878061916905510530992929347421590255805817605445319522386440294553606130639103707568676315914212372696335784001846281202021277549354362030368871822135623809833065182075796773174456939741834527376102778508282694345153751537134662275221793330261563879218695532505996507694492050645457358794297840455591427561627849514962354608378173954073821216074797017357621020172354361280723010613093472829897508232695484137654645990392076128724238211737817283197357267881338410497481156954358641814211540607299958553408661632244841368770175921818912599719443453004217686308292109177986434764575246028985379447892386354787785318276209876885756635914494606649727266524381641020505742181373511772207978965686228392921869220587123453066130955873308467742911044555629667300384078039484412019142379621262035761427252871730181843024255359299246589264467409260017130024210437593063440588806210552145433133251352543683866841653631174963675102077273641172964384775176143995009916453120608440562475231543677536553819225215908015666020950002936671217308599810552107045139630247552474867955819869737291741799576775187031775039817057143206100501415462652791296070031559750132243070529374154807273889326934556936358534756260628090965403608304655012038103107598748653946900177885407769783126494893616722019869825965113450003490305723122235803636727319838461642462201150485818025970319956035598017537387997619514717831680420389855540215755789015772781573463551922589128564554637761793952760980322262578569085619743451813650262971930796845333974302621010683796847228702701541194374124363386592301268627491457377634161290817724646061609982802814110220116054619546985020030846272725512952862727515145438903893178536472100098539553754045069411243572942123059784750598588096042766737402159923970267472360332229484247563038943984448453863508845691284095240929229289870876247983428498010099676209054617679709018215575156555677241913870894965552772374291891621196683462095078925956220821551552439224298422729850937285446311798048831854628321819488073499501512649448452064314572996600990168701897369963407750481299248361998808420543293973041175967474192439383249205900212729638420905156057676158245303092417201502841719414812169703270469025112928985103035294569872644285195679584999284935264879395842201161702969413334157288113364588694801791875460369330173416396703580503391711340860773195195659488818470110483719003012904410143051512316911076181529734321569430591420986282838592639341719255701756451098307534300075081775178189188979609868311706083720347614655182677492371514201824405805580438479890215569183501322250725928190624597209481552493380579184265944005340118604571629848469206535446832474684493013484521963396015352883879980211203904753845222593954837089457881824836543836158120048170372694162980638425507056704675278098347687181234541913157538831126888381693758729983841089963706372426600020580123534558135813949753791048353622130654655577629215318371929344318659452837329902704138553705183952240720377825815067578647980388828235227565783653532213105800979169256954363027862916404042987180523537462280182565703888484077658850083351128362121502084395670521628894425779875116755555354898140224210601211244877476844909300671439753243574785965908628678639215099202695517432604755326011367442722208708069364746191833888848648154784242539362136442713949177583163300784507231577275099871790191080663294218335511795816918714221623366011188987497492525990658082591462165863007224843439741569850545037356978292658686610583868312660399309058708278141102494998249165932439828725570779275146501097169607125939080387929440959301717211807729390824632343283595524733258559874628648300573950819692972095879260836410598516942593626512509120733503954370421034869084871500464483304425935204460857918164259314168820262877391348204230228323629249198841437481792129418172664486429847982555650182048207640554368549033672887050983439524041723433343238419224176338065426914493208711215294821038870497057752026523669287029534948665498264937369117941110821871817980802171452387289192203721326631237756603724700242065066387259487814775047741670027334622756805923807347968231822200506411901038908153538539962827375539985854991419315181421357497184696867969545049255112617337368481314476919159605787867798896468098686753477923377642257230387595785509238581601017285138952462438950744431281797487342334371550499158415388356032047439855711523421831744488582439570965111337388994918975764617343762747019026594019480335677798133871183596608126216969058545836916885704745663646575699067928745195239783355315815716449952213325925858206416956213839801803265153650999447209562742130421116284433487955966439676746107121608021227411210749411043052706763490374057615341161178701482155070852894414214770645840995537569263269113112147110187102600686075189625802855878520540748378127672936260886573322376324860662149237860085392871530530109223320801412812390214883393038323107368124923292689021042976504107186674146893988741101044782017969717063608097730201331238916088839245942393893092812754375672153143646904874931043236345282248925783453034115696330158854329758768700941456001064522261640310298562987082143228510427264347612543652441765768307042160866617291226517381238408254030309972736476993289241299941016186542539877313986126177600311397826817916872452864291961615070453708352286768484314878207436214786654299886705316932678363970683473510390900200434593631431299616851227634581846031029214175389179580371859821662599901848136675776368520924660577317464523684995702703809134731782500157826427015861814489516751736303307229156165521260744403746521778085728500002490251971663019327184312326386568881224771550763603170650459311394140655151494521170478351221102863698909593156440058261707251529840701538739046252384934163537484217060532156181192493880141855174744296869011334114093340717375484543324068003696903242885269475493761375027569473467573000277662043655088839813208743945797397258443972833314236993069657479946895798182697218630601616394023436625931390528379562762775434326366349702538670371589879838789637503420062978325617988496482053264670534221332771204958479181706617786523940206633251364047238810875483083362284061259694768996658189634672653299129040034032933872210525974117728535427711753608593545038515119770938352437617591336911582247114014440746041711564472145021196651794422987185496728986071638264533068318812706501770742959603401640793295757739192293145372186580183166090138273668850154720762332209099276182405850554601714915630981828106052287310014965812143552669071476465479546378915652549944528548855707052559593070496169729719279564587020032402265946363840119822177551804868308861469439837236338340189626038461556455411264317549115944112096714496614759759630280888012337569197440683145892636109180549725983512452308600534604855184046961529445980806985743807358366730428024156345243023943066982228190298971483870381550444312212855760107908606488598664978185791239223702247320016567133056433814046689263880742175853362629201882177343157610467873769075544135983647961835386042997411080690644654075065706608654670158726110864167114372680501226223630195713803933429641526641953179412377268762715622393171218190460780133217957938711253204072932597403989563177596862526078760756174587474774981137437015873777941910210923284102995139682128741263469817908796403985203806636638651737258336064172092674830000222214152662186217222174096190545402373303587387658784356296909078997345170714862181901767972134776848655936867253156541427571484557139045952041764258487895070597212817752953974618957751712604676798954151138542002627438800086881956435306749639925005849727547579678075520336810377044861426740632026177185258412795074877104486200661212350286141759095943366116229055821340920305692815271505640830034476579803260390567235095148801969721581429753143765530017157104597071745956729278327196080695921329066857629415513596524925104553665926638769760035235860449356667734210022752583984768339431780965652374181282401450034419564767297421097425932068565564079555247841912314050430528315044705875080732420820447042700471330985965769201956367670762276782203640078199988246312293905626017238771542570057580875625945897410661558459853196208111065821674691632903723647260977861475745432106361634371959902114375928700833355352295373999976924661621556384539163970225960348839564661664997175441623507534200231479039765129839582164367318394134565460678388368989805952928444156535325068354237004948543088110149478302534549597471713361854802765624920710107854711382403946694025146005223293697810621203105418991516043475337861136894252082661955863366410319934811072521184683329994940168427959197069349648972602483936799247681769404606308010249293612036990230922905607557738688237162200465483237856343754924847108996508811822997484973133026933042704421784541045616453267234864835694906637874485745771965250406856382286544251470310484962265281987912059515732549205984731669718157862441575116621138530510107112536845478712516791627782880030820259663562250898029490150542430572052972781818595349365879394728578827538200635197396154410400658835104859910973381161738739117670289591751839308943125818223540704015413373007968506268926311603212245661568940191095795079132658799486577889398231106725812158469860871600618538847776105965871315839093256214641156532053497400889577467365707648725687356980560491938658358186797293410022214314620867580305761772971284492962200644695396883720432148193844945551431313111344753322895301074802532034162207657259224640073512549441305469502040420550415094544650709997419494784015122586441532303906956613832344795316942721403960792657693536214229581763186861575341625408773485068765451754423008915954133131446482492050329348304921697993473866515855139251939923217480353678633687984783872445087916134150972446451692469528707926392219649793935033420381766494210337346329471129614559664743518639803197256219919036624118152650116688561589382300622763901537852510107163218726401744182887956991089592739692436572744378832362142727386141180514652016850747328613057606062768254671559184616916155831250004831976453542520954732153908535201577026182232089532403090999699929185519630893176630775451948495876966997858216125622026195705367232909347637134976719970937957108080946173630659557391031708380879339150570672270499898803372850256808669653945019967471101665173783352554045701948435825063695162505856292748253119578669538587821872009145532146803997800027850749976337093313125929018069342575358973121729688089840431664022613501100947056660281215713781387135274326981750695622681356922106932208327906996161797310673268378373866351120890809481650211523611220671805001357778531228960602694053360323606452966111066493980073162714159201968728672247363223613267491376106805832641365997027527707178519391388253721931050657275386568792293301000230042017833777289524978982987125452540317786840857410916579117116249699542746520205730967558933044934887054932506435798550767293487536621045201630066965668203494116888849764130956089048357480010485241938473917444813267610628815041379422678459389316937180086015779117236388072468517994386384558669940992276596427272910526688987412551609686148609732161000760483946582834865365886517683777391271650253268772507890842167195586908311623573659183532455372202939511568343114944571672720356652385821374046759643050871417406364949014101384879506796191354297763910524889323542617521745421734390502193502870223119262033017410381820389724138013546699758906954799063340521456212400450969749754345196933252503044598002305426876465103490789945580079516316739970403240564080493310015144787218264529705794036555872486966706204490836913859995992291502786566969485034580428461758767394133422802917699554031313208485802725518199019556045871685431594675258943444042945673426068073790998446422173935624479922325026456690127567969207442175870762762929280411686008670280267587407763010792184709453435229445917276375646344822429676778890251321861784713421439643855524837752307451781125489135142281470855722022044553522942433440240100309575306190493743933267180186596159066761759931387192146928300661351004819198408854152362300963852692958410703239170940514179630173876749462108726321406563560025612450698452321120635757580551072051590351755904239721685729578465593393820202876405011879054388239749327523831957166727483116030549374097047667894362180087347443730265298953792914908448238792445930811891424390075138546396237140907211278856927109606907449308778579414856278514629395448428349838873474896163239837802815587862897265369648694990031074140134494033379742557106520313738086772652308774672025392931313881077871708824354165992790748478598078581792053116144050460360905648868467228793702794746804403696466068940142116489568836087264748622117838715564006690644288640030799355028501381240770347466195961238942668774409799861011136350541922837789035014746763206812690804094932057176827464177502563029081488478056874455918888648479072661022006790726996643224946615790795403743371247676568265648063409132214336177647521941222581055517796819489579390410596324889006081742334065255827244139297682897033460723670899811043641591347535856110525033326465860540297909595737759633763262979015160662527598712677675683536806561757862744523907573931279937035676619206845016556703694502495352033629181328954194925388910379682152944221965659232617913610316680742057595345562786840558716322504976683574012568563332426231606349508007923352296938972536790613432772141129694250755751172982857039459897368393939332645437401577942251696556578997660002893828620139224923696104571259587540715612983748139038313064717915939590396056945518160940141844261120335558334220519796774982312831958326789438777183429845047915681589451866659440079321161857784422584219856893635333055818658902769862347278631701015193482630321649569472013483817145985845576719398513271141302507539034006343330425261465764231730056006485091647638647174553651895979453166705633599204884128290785838535661060850780646718031128669005250158967355543655791397707546718667069365626597062848449848018217350699271964692640486798401714691398151144158207658743697435752123484743028850718271969166006831512375020380546374948529227317763404129881201394712371621647216921789123463769716795167937441061144751086713280199129097741727415732694714415067807582497472701626447879917783991481494478096694577333675601297664647587335239711369244552788612026467183261894619477867950801650651210563211723123106152370295599638132523235646311944235525487399628513816831667581241787181045864246534034172372281478579045285945525111463765355364705289591468124638587555934379745213120217722862519860695285862562079846065645982692308919220044157872245823095097940252048321542892223813630309586023184793641386900990148900215740720157549458729517834023403702280383418203348787109909347026458079810833707515022114537729895009205399228693037035340331637247940763903217072399281832210340098220483712585485808810648953179176275116250537262102817144007505059510072809838771199448007704723290551707729835672700270279064118852488475881615777938196853987092168521708747897107611681671670358874843128282059341748072555974663435925280152382300378312373017335620074469995541360828609459791050897034890725594565722741267025311000897106202752964376328476162019451191825856215416528506266679645213078070750162376024140042066837519187041555302913783471014301793358722928698539339714962343019763070338264792334223014974095801762608360199843025365575530839388433470041414424708505841534002818463169174830597726836565628968480908057555080709235728298602188116678989878566083854128096374256066443373457964052120665463307232924293632873587107747546115504895438747618264578041943512068206801187470073751807863122795184379968124640757365592360653952589965387816177377439249440069732187242004910830133330838967626398102717122147280363374057747325716985839389006681395232380973689670983728154499193026965961149216072175887481537976425658843365200133902115802144316404499355083524772491593818545867960923226201198620076077563759320684908456879678600623734385558025165323903325797181813075633975248792440255279157041863797462010177806157387413957412738268882037765522888142258519285462026116211697350502546846176505324326438237082252199906366843456839058343929900670526832540873826969358668146987049007967523169305194978026752763733098421125341182080120300798334984023816671504527161548260496208908344672088900276559454337029199762722236284345328005582985978186501116463621736754731139634473976413397129516156823640821003589825560439175152456155939161042781137231239801660467796901718096938620567245232571669395667251709991609465352171822923725678778235283720123675921812918067968047975430247314026344510416692869183798441799128063042759269482899102284809784837932571161255810402865566556968171135783516074555094674272585110935515637593384411180768178248543749014875164147327524316512564563548630319620542676430501825431422983804600706176102398770323355073064940646153454761135991781970844739429371102203299928271256621727975281689901122815622800354617250219828731488717700771563941312732092089402134625947788646924356551050364056296075375561448271700497510254384175051867440480052951065730040264134371097538843464452567129610766746297730193127071538232318751303186795833583363106150301534946580030036787072496681677461227410253940159844284989719852240673531800362494762295013290078162451818512119360932787860299905140094202584478810717241567184821668669396032269207593524835989589867036840054423885238237110801157169343575361351415966117571786876195105943530247436563135920493374186800945694612640638872032261079574457394092172470157097104131050864666425293943760210304153508364872144559544650419765974425759415337775532909880714218915291821318166511442167486943449777588275965222923564825230681834173635553232928349213418031744846643458785811543786978301963899461725489172350156477278911557706212253958180969926038418609143963919136348616019077648596524954949501109326508788284410763990479224559899994373631525604882320065610693378186219245308289129473373691944022249847162080964643318480807248348775079409465137462490393437077050093056950203429565296548642107090139373862246652508275883302752866848165429612681611105745069623477022095310642733771679720167337011600048223435229890128379743956908840128385919258148924719594948591291296841477333164619339303678691202839851522514290218676282556857072001770680906742740122235357672571399715034276972611045085235699044367360668988558906391868733235977299533739501366532869112912521481911152292920143946507668921424056302333880889694189783377087569823352254685193791229933207902181218119103571260368423878670256481495457780808627628153916927117706433548188923205141175069576371676618814239623300469574834720541569867527576092743588094295194846115405377227604817035866114193286665972632343463773412471204740350945815159316005429825567271688758476759486271813745671939450972745577209493223689225748456323141560490105541620075770233821934230898048136985085426630139461001680217010280781609359205609364299798442805288009227948460870616467254668915547986354828383319048617037578801697866790815617867463263851282076910545148782071636282885908371559886797481173071577363421752288217844563806256441529889332768801103149957244169909740223352376395491985682409240824403241135223681302484848445764656844766686535276398790786140316477313422582713548878473771829748814362660853011118321150294582147588291373635684001004224751691492457140950333528225628109062502919666625313635499345748251557109529754567035517970854061530215880960348456365614866249082868777280391763191875980562546026068363022671833014481963925947273363782439004726295607414315574836945132001173597939938781471484626720441407838378590057823417512319052592650265856865277386387476727353287807643304392320755939964211562240624854900387841651279010193822439025056390929261742566749767089481673441597920476968963498097445405708787948847204188917349061012793937887316506615189434332714400384280661654486440026956677299289952210586109607080671445979186110665055352165475145581568808119161120309668024557571598097199420914174104581811256350971290731749288550630831459403863281011389891110425839096574062750410474677073804521898510769106748655287580991807905873411610680854010840039677639965932513514798448998629653508686026077095825779406025086058716690894548583367593339367105633009979788611418240664880390403183834885084839563518750331369700259592798513934690319166715015964151975052837096231175033287211818330076879343462823205547878297076651221736151896209166454380380485795153971291777820340323438547050040541346756351708029321033464852118844896334197991020277100021286639122190088463024070706560999111979116370918797153391741847888454876922631955687482446328161358592950617667766646307166808040674136753309915203091817736741468558178807582431577816096319408213911221136079561894026335293265192408806827365606753941209406238610014375276836497195791887895481974447168815717751691657561347550315048509527915173231488124726065955841852678508067880294743137241066501529785858758693887640481148919691986624514944081010695922256321141343500255318960534212394772123053944199618957323827941277936053244906702380330033911504896383676462290032895073817185178571374901961792811954709699211723164469903781229811578056098350965541647026986897967742882297642986784862037851789660678697159221372525410055916332320880254199930185448989304865236881881282158704074762318547557880501608518011053021265546317781019610483159691043338477315670189038151509300011574521123779106792226272869360907168502814217603659287572192599554561696217135667406567876863806476847159696815538517347302467325997058642822561373971381895355721529139680065609429134280048975284235182229054922274444829393207537320424552899095683147061231924762690296350886991813514366238757876142269991230198251333462663959641851734105020750135699932917929808504904355853543301460427963782787610345653954987586046944117146274726691885135983278069178921037503532631391870210958092165141670883186923390889770014258746368025694257062590101487772639726054855639292313214836662411237507318618918497249742117299461024564349612954353414526758673333620830561987250300685446449007309746769334783503821376884621426554788517455159800415175882958465123475708993841921696509945551519239219032698799292053798010875587230435723951662606179255502483305691104308568034858807534596797415545695261844640685829052020115082195758646373678919244265406657783635067869141052049497832506429393528733336761122234275404215364882579903315991551845621033144137569300730855696907229755155297836240296027293845280071943426133837156673212146857516065262036618761933222513987334776440041365170957846325824820197028220870649883029569083397810597553389974341491181204350737268067291631197725528898100669165861577575376849409406350897510467111483128663632809520611357289751403654568930360948158428118870541432051444401977964789709183949785391496483124749179335845263193448147301689194395682972623421958160116936268180438181464655549832969788886726109432293601205956405331106985296501424335171282703773673439859330381044933108493708863191623102593347908283973433659804029402537050580804297070579968175573920870389450466521537624845190560903321064452639756397914626821325461298177144255044977254472520904781046469254571245634788017271209554712556719063642053440538961119385303921094947069271878935758895317071540927934673093413182863678030763999228092782515403132156244810162725176294450810956576907900244406660658111202625907649184701581129886241153782733760268564549309123333459689794616929271692010653961718493672770184191462222590559922757700613780557555632656718043681012030668578994383972084528307065555233465885094679043484982793307660338225032962938562480070333369257158528361486720491059397961560054643149015464390121212968425974306392212860408096255996897525807656537480053540218706843966989940986218787553629393731656029033148459669259746904899710389551034813892444760405275059868087146190704368385668864002197501230406463535873316580551091996758121075079123716795988949047001384080192463381568305124357157009795741619598190616077312373612235523728178693071853892888532820123363222554153718849797408541136927926257855458695580002777142782718486699916267084988381980991012738118974832912390685730796961275266706852201797694349883060479112451893443329862472829619970834524206214596023224109053594460465381106521572952158387044786762149562242270495445703534183003301338714840531577566972988632182802724193454205889864304150703193075622083103294839180873881221837780915972532569059650690948445420936086213947684819540059999517847283138423246495064499205210169146728071533872731362340280782455253955976593775656756436602442027607696197061827890204132544344965634368503637331215132752022719258450853050870600885524406306795950978894714732745516690036644930535178528275715527422994654176539972967126554941584826065988231662663988882126698258803507929435374040981242507204142060846849646895033974061404387008143474709920261823067295913603609971492737908307437196632462993994777747575556369474407134276204431841973913826047243133815208368385176893248133548915474444495573874733919376311128233544730923652433736646301222896164258705712941503303406050738827892887374186216880670764579932441191413587039736438547659654370318725093775983714523812835362706459391875358990964392597566568088239942818515801929496412341789671520970290571104209529909016001101587477040760378216899767696572984198810881834578351109971153844566385105900306364153184827048064188031575845414386312842676653819402273721653164498721149010844987998808673078758121513861078258871792772264884974863298766041045574759181774644455325715903480987399379840226648627593176321923370136174408212606364689258664088581458709931715748686771237205010825809363885161747102346948190878861306838463327908261103384631235631950521446578255082903607860339200000608568939846430927969700896891565033125661583894764709746320006654434375919277432941716310792643814051159639698083412721562279147692301060422677163028145235754984101334816197401606606712634133007962130374418927667642738928005029450988208759018963565613891001018782932110327696615652098206025674747013330818650818249229991858965133221067512188553002675345869082504067054461745326936054096838011968895267265747262058385132667804379147343791372710471845430037553143309126520284036498295130418435544013894239156402639404566700002775550049109107107608986005056716216346403664179283386495010225401155486529687793327155140648674961037891821418911545588625673260151325488768826575503056573295406629142605725813152683096745907823040265183779214989776972949882186339921200887464693335082908933884926373039336130481121593706291591510660003786870779524465906627101048314127887865870886474059630807935495607032503656235521999181749656360316612204525043213127890652793078704488296263578123345604026718368550047191312468085341596209521529045641791076936125264045578867077557441653531427510996815108966277912415223247143330646984153755278880223211637566123706913427107752661011094251958908808068926626316549451895843390207036199271174478923037413860387159015313047962442104243276474476999807280549523651367277093943175262938074222817023214275859264169844722289125729425137925658269558115714115715215957218786167638006999833793697814439615305436092682632654285904117936252923260335591928483001613462958580093107044681512837467318978774773251294443582348011362006396947644019640520784423824644547941558781199923231961046403001570033220157609186193557191283982965697973990658246159508566111200521044656840894321065310831476419850917578850333348390093489506202977105094328346415796194124472803074535630289413855964677106749769212147029369796723455514298560511840350252511050544152530182518100070770498022110418011863488281384803133589744573835473358946958257077395708993029255272689003397960408012033251641639264918210121545244986453083267577543929479084915621578802864340452312095808499923210108793984735237697457398304426063245554248111015277336948371845990114157368729251765252452860541005528044933650345764475063868708915819838126703634609320930319047532719157140825845407534645067041240074844975497889849958874963720985245677248325859179813324596671599149901547302832566376294605695958877410961211729269396027914462001376359611033355216812028963090122012641228559157179328742963614416358145721489010811352788801159583377336129489313597373079337661282780480804484841846089967071321651376534363735154208126265305561082541557992263394920708772112586582377281112207228246222605605498859090714668483711056152867945087008529402213056608206539069541402975340816547455530975534427871318295419345477248818011746680204406638754965937162910516860325846826638270868498985670443170927814152502351851969570837143450908482970727931870518964062150198473733793015980616355059206471620218670625897530615363688802278217528276045924573530468226409039924501038171211954515397063184452052433904695125744594089301764149929855052065931828244177180203942960653403500611669844898660312590095401168406415031897292777290044578267795387998244583039454746370107918937167925975160847180893060537852192113051018069624289255518359868129782597050775156233223599880929669177767421864668908728424239680284392409315136873099149294733106706567759169240353096149909235466291821469912806396454391456016877892402125981734857267107723517050977124640307161066713102275301304065407252242387340438779037306682160148600481322049036104479028002549569734803397421368719118949366724472990573957288030502043534573140895653317083204756837957930463594234890513406000407385716438236982574265551459788679989678812890310668929779628063334360426582568166497207423138780525483638792569165870808289703513482247287372004884443708772239106920214545316290484754493082150249143589206772818793263311950224882240056461026300320638750355439243140969295197724927406642080825829170312348616813151523947968287322921126562426954880976891690356108236207240088670860246932700427766560433600226904051870256776221956002502076593606788901305303631195563891078191278668127356304843744639756245629525192096402413644107705627277643520404899461129803519343555786378467152270302293103241086872991790490331748916476950793611349869357195786351534189977189922386929651122537737676761101191619807830357960065492694200303222255661593334784334707828584440554478133638352380591639000662758006542146948046088965220010168257306061774634885624958905690395579011788964021035449066455952983003396927131954707248461066407015492654448024618221524500943076397898240984737777869345551361884403999593521473068235115183512974626931594713156818593552550525012900476989656581897960662147079652739101305337442543280809168239194409579126520428705270843781052832812276612210292582211921130522747196903995356198921732174941142786172362265521256881860929946171474934741455064101583874997875095995471349003148902255885389362907833943252541123509131505518025911220185920998465166222693273138011889630698640217350271526482035758915619270003041821040140672854910649541712250151892194257900076181189643907180199662290212262549965153410875507925400122371120950633433634613363893526421773303715578061242931579442312397030230837791673039867368885954977157586090433199496793319856031352597917731246953089863426052334509882633773106397056879055649541078228560651938250600687339860567989835012177658433780103165325594855590929253516800384998786005258529860226865911324759614993365837076927735366681672831263462797078859979803308629599912402564939773873865615348110225945848791196779912225334238899260500286042061040554659466513679739612723942977858014742131529782460683544478764691004127522974240955883180377356876028719842837497289876666688069948553384092711540217766245195598856996402029048706991765741096129713419412859569601686512651714404137427898276101965857563561999419920790009838551359500461965583302970052972904787164992025374115866573462630748319944053480208728602151221613347487230088885023412521578729361555984986231782924869077043491553210649572170163534432292308910729803378461128889829923199883006399255564395259323450349554909836436800301506201219506628115111793444899298920166069684076429934004278841722047836269699439403562914419255897613337094192625761838649713387730107297185300808625727127927832208958507768380176324809628044445735660335878783854352810337478559100195934210626397859434619113281574234216049180015005764606789462337579991521066782533894585924814953739003722411269819914933550442690100252165605963289602558721031112705654332141702046059388381852904044024684678058844237680710646205402531731273347152272703229906740752610216896720961095518893369003127920285250923624553358089618209204281954764677386591440450870263585557091404670578824369139335230972554320532452831685377582578617018413927079696127568138547042057304457046116058352180559914391475520917979141249994349842462521132353772121985935871312932260610371696319889633047698441598689285207910650306832348370280565385197286087746683211770982310101276043410650131203007676702591406758108299961716099818199921498590133690428179333339896739473163772543897125742145728788005847826011252389138519785974341888374801117603951330189642949918567667126344117048540122218225934879065768051010466222805846487326110612039842619939415377079018491836786506486383339323293775507070702517814700738543616164460156323316455624362549064336886819478901455442053975822744677079437099152599805925003443538704488751545685947259214801358976506038020887509970197201516412505815607847412770342033930217102906732954419949096851739429548283992820012922166714626858602800122791712031862137912341031639530584430900439253778814143905718691196216298949621191535534766247164023192534025580666042466928098317339148467032977293414749720515579361962836225642532909319105134151971966203739390487883980141948538196159310311379751371975566029698955747897975220817931312496961832545068030811355176546589051129092237579348007660113918648395143297330130848586869167104053421645407095882861246612308857502895993453519930973757554879552362972204853275843194486406207190078038133818920680089722418943885640395276541148596573662115736301423334116198863709364036881056231060648895901110397180148430868638168740278801945934629710154343182206935274453056187930757663167778453703684435220116489181384026408767939250743263944098466940658746731778567153782097881374595764312194835186361375925776787095267045379674622340137230815472528531830222303826458221276662335651610560323332832227641885544814705444237206346315498708497039543940981926717122444183532070867804692810808169704956177121365016775332939548944040839605039231880353973329383753468534217164586240048442689001413429400169100910024217661832372578406896499166556720801263874744356366724147251510097176324637259144052399172432447525799434808241545387544566801569302215216022722896003588364516522358436301323328669969587780587156632356532362615904910094066689840198746164197579095336035822233511180155268981848827212615761341645343733691393456684726066558263914373352796727692930383430373288675805656246279548612450161708328969142006040673294204072977373398405834044788391328468325029328153320723991846919888436330931806224152345484397384418322643484604031748341267230490479665586602498432131799650693407541791069154765835252153435955256061259180425407259850013733106352862494758697708729060951205326069277158825943269546855770455119221710486858954802407192893562084919285433820430647764774452387871212083324697949161060142014402633137738706878605607272362629658837240340851256740478466661090033234671925507184418023771497703353884104161898189404481577917932267488448650303547496824607336298445046654582678866206639238139362627348724247445195211669678313285642411440827622950841184220045838663674698995623390943034773838929104591878453911632799999206468114869456058640649283576416860354964385471557786076620893588256558856511035796986427385712715103905172054921942471205553632214426336522241000156478189969057751523765264916349389047761661873838946827432845484361890192570428251689666046775882886254802749324260555659159992097299128304294579189767667866825495572887728597556501443193133032326861288624345233623039021213294426354180404072755339645606822816895008960444330730957605931639147279426702099842409887084307205522050288848045550395089480503365001390923714227012089644835427386286070411466625836303579375808226521637962832167174526532483521899380264505602656379504208630492739549764545346121882390341102237206854619177889130659504442577912352761455130084390275116317123641854295888901228941206552863821412010994924944127550055223753046356663631416489586417903211020823924421377049657927387016637686965383452550837792335908626604213902126425976274752711018804152694569062153578117137366343544250952881225147902612501493958663268507455667282800410559588314776890536289929722994442560352420551795976319139744319143964940353131604822349558197949408268148807301708965377368532579284370933813712866226605005379191170559249899109538977971481588091133603866336808137339009838902598987190262229016925681874701673590998136248920774827853314158030202289517571930754936700395509242065724699018547345697395435546732041544391236948581688396652284751697135137917196895865227812797423487128662205918460849201407403623819287917812408901522271105830999860877953664156585563331382062859210464492330074131245204262820819207381713127769208456816063749095704273473029640293377635078325548925946445152723613575001914500858567843534965059273781816355449046992164296051896329026282283994643963423057580985802999813170431972403797538896798451868651610992273534873089621976114295022804319794699481394609577307345855701085801778598314180021033275449032071142297290876293310330343802304107078619121328547358210447187729577233784163253499709495791564159144635393531656104609350239847074596648131759203771548216862427994300158280940046513947655662254367334346890175134592659189210673056713123880761331951853145946112856781582381868662339304620799487025540126410685133907736873205963268426178425529413884270590086627892598368950783600317076806011866765651947931106789156096060287262834486555819939241530808541138084761491094228808863955048729531428385811414569724007469720077929168697752139335888299128081937009976672717776091718151505185853138501070998383721219884799794885565885256817597997573195605777248839335413392077274773910825299747170659357749350183581265322927254258721213369803927255544838799230020608262710969480625447260057817439660610667603744791916925872465076687686966505494898414876065709597489016517775270157880797033195522980691363750747300861499723114606569373057352493122436364796836435821538455428209486207998105601000521321360799202438118908110058785238549106634369933201111858563254756090422600881506516139014692936875677025336224413138792580288777958534036680806559588835436151264704929718806846837684330702879091907224089939540335987649986681529761501617007879592411386370732826910367893381827352681450356175703657571253890341193528535909946810999860098794240034779353741732410488831759458364774418600604854560411524306175404496923639257593192815730097362912753076847049098046453547566008482916965246925280556285325175328252735291460041262569144657494942512753959421002386999430124105469363416234609580755273269817213600177609782012114854018270061609071343682160714927054759044385911423387364255681074206830470766225001684901452046667891269302132772227001019501973138688725353753624431949096366334911348901541824427586297276415364174395074312619087564450382593023767234283816389309918663832313277351241132416750376796441260645132028742998284822042561891968709252239376395844584114739125555580888892239605945487304031024337611702062074670409286831252168714798762914070578963427881404123140341058772086399194265881942543794754297224143386631508072423156890313138058932860316544340008995056191018376079288768391570507387838360201040248756922720259206232277000690765574375102772611073042544248971148304611073817462924489951426852366586575572763589295538207442668670382673974723088062030935070992215543990046295622671711924944589704367206721975734396047449909510177799908241059371842912418862025829335219791063937718450717811749473271028528980907414845601271305601495673687565305995782514914913336374972719017722067051402032232273886247597351859112347942027365342758929715967022278062693159994145081975683235165170150228948563452536819001463819761091657305163607648862097720364579879492521517241334497135825735128030735009110998840065103374263614522473301434682611956697580684604074178388997279215164182390102100231784581168495770414250080627423790652921141548734423324364833283055602197438190373016400666447624393473237020679573084444289417922324148893886906397620954592809847426815542590517831770502165997492123753609200055452771352887010895124671829596533793162626398370494460377595991440730994942286950415030696298409467493885346633776764361647789039233729346816578476250569731393129176036228194885216049988848442490827466908060059371811008875687094377311244967824465990403151507777491482717363350334102651291988731916140926885453709447480988844193084417152804417967867017601554581649907142681908934883904765084527635028239157212270895280967977441791303392930573687491254835249974279305093365012715496927345978269250178711912222689419460521761720948559223276018973500953788945515529905319385101464217493130030221144982858941126774367503876083509102839015481751232962483193261942880661908226449440394294159300203969612400921725687368663654099464742992888610657761809695274783423317205777618425616893958375640284772665737315754083129701131276461356059769491023260650915784743959276739799632574673047584811383383652973590343670062816355158850365725978417296972188361238186123499142289629762335067769284463669505077639317552965889632804905693058670868644613031491346242383819020217968621869694775409010156068257574626968447622595808896672495340177291109847674531092939797400698009948470505667985270322311235437885637942292540603657728231655239906275049679260925930999066703439259562599907933337110530287206579614902684811934349485498156943408143151415327640233460962957282468478661972189892179978957244207724166796315168469886301106919430998249052672983082019660251863978827155457096019955377597882042856249908746316400322044736978037035482267670796051245851771301705821380089612806431474456522370570338070754315561983579366082224088163938741074893654895175062680284671790009832879583096790582974542859651034622934599432665253940640487175499716177655539966769078014106610932553121830424924205709484040781860065178184006513842218005640718821972439484082642699759323838442151468244281789459118413526793786619680488498920599832671817024295732071761609192287650931493495685711329459663374520138593880845014017293704309940531077735863189968343002676515071536528926912772680504601524099455913291823596289119094774898540008726381548509348247452421927904782152476638435865881419857226456722796035164301895677901235916706266341859435748251814805222244975155160480084745830039023853306636168159232606334547729294055067101030898191518041597716399516682381078458359632160254886799296868143273449887087133079683924977751738855706374426074819389279533798799251498230851077338915524902321938653963183980575102726420754512555860155979752673891174368715823051499981858840304831721708456242644310143334478359548594687582959320948669715307405547418152059006217604696374244060036371668567093258547192607798851976101424884727938543459213692452787078150755450156278001194835806500243242626080576714994859510880006093518978695670055646905235136110112693320793629646225632320743172288250004222023396913588037674075102514561408642240208328971259003828427347643342227934232933810648134075626768630740770460601447836924706213537803114171287146557768366974926092205018368440833002472953664211492287475694075561828030871573193805948140675037737950224277234024631009425272333270282624574692590912016339912146641902718326811661693094758728548762264950009489647224777550932551488037084442333940393373867314561644653463215034885372222795027880570184894887636015372470037823426127214967361259337449512325828848699353700185216351123308231307111569650034662426413580993896762414640621929524454522105139619031951244632570403600409965694979209445271495482208732778944439293239541626656312642540969801264178164694472675585656929998394267528440384234947002788118727315822082231886487880449925251819044041099800945925196421078057685268150191010073405459802440794628073184763776625087066805593161160475847713640721799856828895956385545688991329888948169814929448549410575570271397140474587915857739940432303350049582553749298766586202292346953853625437137737373162455490277718733588954483475032493521657073751993303159654251414216316911738456887045512641880429050919608914037966257898971376732715125619903428605237534525880100241056831859183434587989004551274363202155548750469150190202690884120542425456620664206046237226902040248667122379981147518232885133467020616686953678526770694884521310454825846382894511142439305224360969871090600840867413094864609288096344290357321299351037470929150152648735024661162479371785509831578919429683343654560779954405412613678839111123775721279622476023226318192702969931586508234560049260630735525294595759002751766133794019922945639233567912176766296475655140467630765224526718326658569858663401086135410161046054552623850973520826896736529232030023076113115799457690612091113146451502798195557536041273550501911479996513886830192434726443677932630551396445077579813879415639420680945924150340653481290036461450216716960832939779852947903110335224763874487865169938076369605161021587447955280477908367731869154153701618162877867358564422024229595313710785390010558899742958191802233410134829467509561422931772259561159114995428173566127469835221081035007052515830416109741725992895138173001119993318670280938929154089665770906192706632004656863599816715283257361524574968342236772151636331213506962112997302104783917622656686374109452855583052605850046912945710217749479260089448635297303990551876019243347877103795550475237190342815788503779174685766608961358807057953881402153394738472272460163503726318871828197766851124203576117960819942833930839166703325780068428122572268624005534315613750999949650196082961999929146594953130034950792431756129215754656576845526465308183315299905986834269332157401950222346461577041791257764385586912136014524145358769034193661307527772821232427824006292014632208842401929284085564756574809286377124614772198286154672469676937816659935107301981610672470020245786079409336994202503513124364108176483554619656335929498364068270454727188216154776474496136231522677827124048130709264685270101143795360631357409247419706426722317760811538767388191448754508198464578478907333955773010302654638035840676485704149041889001989134469860818852598141040288426005425810902253348933155704312632028428331072754556983653762556443095210605261105807191096535574278209989272572214309002287053737751468382721865145377060248759314553426726466046132619034037979544897958662573809789652819816700869540832565042289139984196093975413824471233465468305756183619548608727226928917761757363338600896067153569050880762405386452482142813939740832597281753554037734820983846299605839678495394498279747132662362308851989475778670460996336918321930260100199559176735007110324007322418122440771569289861783436955356793142795298100782375393176158522995660793457811668233108373947241258445201468216883688608943911989182450908240625083416373132027733528679963390470646555988622248002381840515171282752725051211783747888899307161493274015354713119190001538091360936042266362257750724048658197071956087457215130208750870460086111179299524740182095345321789043602865249156436231316807746524046102412650994990277819022941768387182078132643096578917183560991715883185991448070671639893009953277746959159662976489922292545018478744453583814080884240874541259642576348167485120380875013518621976646003489969953871995990480059042959217903183388392002636013811838402268868477060365972017041108566131599125764953120195444082511089372243334381531494708153850333163138787654902683785002367231223596616669381019700073990367600320911196382876801457509970446422482267530377894101852003604651120715839465808027368191206407182716762455478524165997681416597255254027759982524949537567476056834538636220792481119667400903825782145549105589094580662739729678805290281311430861084167064696579942270412019384545385035463471776374210501799153367680008055938423363644590155188719179186591665138728812228684001187053118752608310395640279063136754286431848811765605000613900052483143312086248711548599067442748389644844564157891512553795416194594417464870268676340380845378200882779237508969926181879184392445208059513133503209586744633311788071691515503359040957186315862656147057558122643379299741130479988213496687967562002650433188870262028579444054933885491335214453889579567779095342267949830058983812426142113158552198418174906536631179494397781909760308669911287006706644694245392079083737906109694682549485965206089405440178224529467513288188308927711119412295322931865981903606169497577567627865208239434802506471272278282654820905857403393740587161486439653683710451137754159338174903776988534511133930047980430340398870653938090270955885745660723904690068476006495377521738687881458666055727723265495208983922416476602096809861098608869363575559262015238353309859297211571467021245038789094587403803750953232971772003281220465680640131981563220166113369775599140707788601886685435684796731206363836965401895866834636070854994311491040512471605549196659821532147672399563428083347343806948735086804396778647774327754022517157841176291781005784614978508424965390447291505779969729648452713690172032838570476213904656932224276553144684601010923626333126863169393556938526684400716186319859668045533003008449835594670589856321405890200000829694193439565469574506768442863104387371912959343172232139840258974173307580262608426433876575283072061726479659907433843828071719719883218620756953483221866142042456021564479541098355100853023740661213087462324386113816793735013909029872518242661254161785865659140680812024700590802306872113134668253898820107953947143725441229642450667113880931128699319904817538649219589708591078112747766874616224659122654368617866585764527166171043298833794436970331152397565383900295464486028969214593266851058793318290415367105233282637893705939410134721682245209595272424613725511915627547625219846855560980205372475835095396792994855787081064509425126312456413928470097969694623849195186697456900327478450224960930087425991711896959139744347932173609925660605479612391681498972923198483227529608689017677195680616683005970532999204346172971473076959255832714693892500265572017402000540778806022206939550756038919358348714464476810479823626938847433695338240414326786336356460564586226116107619637255565129443845438115572721271170539951475479168260059439009429405986472130560190335868214394385915110980150444536288235719832188104595961763078807733072118543078900605255307153404988516187727522802732703736511476156245779124619134407794212803589797302655953047893893940315738067501201583371772837541839809273961448894968121271321832087258803285621177873687178285209975535754851263713613333334635754284944105714125039125592409979835638817898552545498576949492601465370656999504453072728351421369239954203487825760041050935621027147641523713559881756150042521464804635836963907631988092320183874907344815510586387475941591353086557195526104200105387725121980737533718785285442393746289233912620723302431557995287364317807417279530414357802589637631034051877375752903889273306371988149780104559377000226510807634148527505801085766067008473882275786119867008071850086508106867686397446945110370177714060890269215426291410608856022392295213715694237010227548077373396902439040088240666565792758482473242152784487604879860773896377359119158373711784122787348430005858632991065171924158323248307700496342568674436756726485368886881476477020910521540804491204579300474927917004769447005503497429942356901456762601063874899876191566804000546499777894847481870675571583721220803460245383347397142632617731300380107384956809008216624121447132613648033297609911038205658267213078096227010732044561672985762110587059541734237126353715515796530559618160504906919691900667229792166445799483687614343656031066868514858959081868640029437334236369066860319795560110386624643624775781873861828727857071423728870528110570688351202877736475615264836262111490244179701064194149422653576796106994020542966381023668912370107946216177309687426550580398624213329746861053263245574037234651354897432871113009107573195008515106663130061471268659226857495092160703733292830940675045856732202560289676146503602879845222793096099316910163461392112407865219623143885215305986748172340104433646312090683776731905411180825990823083888268744155966239023483813771438998547521623359821587599411123144804747661479493330671308925435306662469632913091142460753163710955520151087534367129440621792672936848284505101587921554479454716937117290542983007289126316341123427494095676262794652407434127057732278404160224710490269960349618297687763951622224779118995338998020903660133322923083462597413741763444050232459346546360808653146799104785637117362648072164362831908092575253642018224405021508445682925094919160576750378555639140994696902645517586145666850790117087018847504781845664547328987033075490426792241550918170307522913223577189457524799028180958012305030609247563371876335352317338888773504657884454434054969018910800982042972697537735382350182332877498128995306507179047689040645994876357712292663815887721083808493517607339133850226674137906036813687992151092475798083007408603033066156199667973335881067668943477371894332635124485625182715065998536977970985188828557937022275799794576052482412288304723027628933818911076690212151557383576035658527475630907611895902947372849928040613746268701525602625618086697941929344368040343803447306954583790356249080904232436728500357816934277247545578365915032134379628289498998681122839310944353075429496463769655087149344348283775041653586989705051374266975742806708436422901342924664633837765364258756227226624131923357841731817728304144533769967036726804669480305106420787949412254858772841038045107589806778697078665317529400127537830168685695950984089206808212049373178628063350532208869740764204228115674728178715492400342071341202623068278753143837836303626260629325215578484329850414241888510269973237952444262421739461425996060007402489979248605268694465572917529226635079334938953380589189568901427938945249715144931863019407785449343349897979269784395166380205835824951869803814192912808227767826064130584419100362769484515843033541820389258011878502262628330231942132911635302935306691422503273509685958779919870559345584669458032031940774555851381098085125139074464288453136286543318930190786458145433562206765877455401332579446025404976579795885931752326134368503558949557305963627747947719054921060364608080282567401315308092640029607507156726432480021179627482126819380119422174254046024749061919089293174445566316987263599508664502320118945794715795036000120825850415225690268256582444496877400583899924225028858778145217710220585253147469309444055318295925357144066142508494140357183221925138785685310654869243660145267293341885067954162285711417378761034643027579094343179490747950294724565737625517588148198504989016369903049456763068771397822324462801043773948473678672544119126654027704934634413696707108259375246712915938657808964139267375265680959168503236909378075549722921607677430720592009494498527142440939442933657252056970937453264910384067017053076830635930065973383014600399734625526311194146133106291666967676471918396244462929421925473752135229647498235501700673467517634173381743826212887423156464655434999992048755465724424124291722553410110800846712121861785596721783178044685071207860890464098140252357945058856892465465715821716387078638976123466457094652751561700630132323104967314423315624730532603638212576111770368413795883433543632304733902629590661794316079767321856239517408631715453023306494870426768733557003294713387176672149119765730841162434711740113006425075499347237131951080005995365756370549335557138785215919941923785068428698468084050676766573070778659513249773168359770229030739882341982586524489506944591765791148003369751087041173508090676964424740950395839054250119434571785753672445770319094186430851058750469697562191418223867531059459122004807659045006840264556141429820589204823159565978955788198371832880760945854605937462539669952553488819534198642761058737622874856328696378109610399602232539139527757273904062038373812026888287329097895290777067194896494323656579037007097067244720977354739721942593285325024808531162945355035699969417319396823114712474428701334289830643243769571193404882855559924098074250323436946029918959725688739978382276484876903377933577021206597074086329495529430335877854137506410701072506981154486056116845594598512958834685131150607988590199653532056269454153057976272088755047609316935442875225460009418442003995685536276527099353432032311960306744052131611937610821493404811315176594061287412391186340995537790282961160900194246112542260585673336064698839591035353525077809873577577710761206213696223236206962970535555577353338503383304439516756970366750880913442980668063278343806684051691899451091964946137337801867616731692012870083506668201251293992788991739278128341626622841333053109416306727256443277204594042229190643500313377773521232363992109954512034810243355909223830818180101308568044702187659658099381488173653275004329008132486059919453402976544830587183015896233221680056516607003454178247518403024015404384536556411754420254937641690388227094807143984557982577921911573318405063307249037959757927413544557468535725046095554961829984420242910423971118029370985123052234663164972527175534156618735836390891405468323562211305879197310297441183827068644985111008072315475617366887760484835246887327535927523774690468748033506101875709412610497587159679536683889477390269714247725562421621737863286094122226118724192335322927567454487398387723112949497447784728924422544364126855127997882485608009105392878006365799236723644899461783363650205524268436346418887652085483834271741119956947301192464059108141715062749234864006772746536806132292501237892372993353451152409730535970003105789088405715970066660744491919613326680900346620060189817017718653923915242790895180801760584019911867479804310111492894258685281405718633175206333054769698055940347253228017530284141754808914062081010285949186733226357902077594550617247854907382013919147953250634451209334638473635943254842355631021278655575215743606162575608892466573235020074069856085040175023386342277797630754689405748617256296170558118438125461222217064754330476768685704028439839685588522885770369050876938273876705591440604393089198239130487602074377342817959293264887089391875530083509152834425949361837453797938889939722882734039200526392078997341378989595825385430205118751443033208002580012143649481950050898046355601094647978864496432973562700960889988292727206125137700552254076027261014690092858216715942411197909924942827591517656188173739048548121794794202891391296191214822938464763916193234405398403245390048581349941462345150763800889452107452782340711880661564651052639907342163581564322869325928342900427235506104841618169604477038793291209281444665907791347551050047616380952297165222990773881952194168162446278885595936466955477590711767236663151998389477477879494243881313261232243258164645505355688641193509292704018421604069165886783797797182251630957580620326290687323056186424255200229357475287242436331075413544847217149901133077988937011996419250661844788396285300823078740369073719239962927080230517064482409764838623685895092721129695587660200679092541417723266849705024491270946279365007993145764453207417934374871569521335880133594703490620701282304827522052353506699552864606144823452682750802901637293532506306248385417674646682411950599334237304952703116785354189553412511148057679386048110299224482387336423059600227688887026787072937093768247889157887815387689191057310897743140708387723052660258517972265905483523822062168069333236231427933007767589899006451663347752506624274698434485070134147306140662592894853501979318282023170237918791204984460813096345771541546405373396272709006483035024140806799955708082269130563267389111670919471926215817161102252736670061627655565100707959840680849614090738772198381974170581980828844086318631328166938941327663334682691158275800273524610275331298264961651046146242101344690897596503506974614982253710331811179907127832760172162404698297138612269262618487510477493236575539007779723723792540991308398188341108009280344419589877627509397568844215582283741134875906555999160294617911989906963182352498303327926690544318005257998196263435096212557034523304696465380766247561863957616004369174261771033579300124273349714738812092152875984453000415659790972828240200577977399130228993823820375268144762655331590344653623619996307945591126789242705120707166367822266637570978845734128169319477236414147176193045726410605163094905440682705713383114159555721119296185638177468114295801263986180639957159614436249797072285180297190645297572441186903753384644076930348893273496976655735553516897928599361140813145981433979661341892963232016659989185387863835151774740896450428441941801205113614351748415163012265226928617538243636652182874812055567255169572617262416534635452105053622998362811674716093204472613691613273962810981882846408595932301707479259155762412224860337030504730119997538805325083225675499010170339914728875844933728832529134685348702578713288549238474741297421564643023120531128825120143280774030202424599138408379162412581600930824493928504238241323214222837547529695311733314113504695461460602039064398490066987692401313232287915634027650819547904113612902547840650789169316729557262897716526518595645348339280955478399133207485733317640282823259520004446651045802911819006351770322026789648413503741232944658904289263849044815777903256614486544748404488102189977038896887463483637403639682576684804273685752886270975027037529487117956429856059957424054765628238744402892962257480349796235609714417229085732062035994213023324711505841609295715664176179023156247629956909704766368229351575136170460754538209046813914469716617561242974034153448352527919597973687983945657699509716027238521910452089247931472425820473848958118361178043850211870454668976171659229042767032230924478244874884453089973879944000314611668532411587219893282000165813417526502981827517483888991155782622553305201978582319374946337471222457227974092489261626733532676469627287278049891299186940631919338307842897919281843078149499817209191789473278699435133537754119482628573487209221980575179799315897101987428529927429503128835756439495088074323466178438749296094170827619605186545680896153497206708870997063375196718175006062835933807283090551066637212638400335283435263408024051650519743309349930459357007957749870787244566000634151474908769481023637654315341000340610378229244850494037848669441315210198567755337573616211420698542831851376587635524395419873167926371621891968649808206031508776004207154869038053989793592640929512267186128836734276810804160616106065170775731163435666662561419753820975035243138194365906138257582647276717759880302692387532817656770592814001227895815667599330758587914889517007960963557514485623480405646914223781792234025833551059583167115678391240605485431264483950136649464881948223488641945948809527315580634751595736338467740705738666323195592270378595314991991041621212507478126015193360493157802741010339946484845793241376460487451943464457729797187998101840330889095881172494268819369994876582298546002613218665957442939714665096777782629703330615404865701742553421100044740900893698772728372132378750564092709598232979508264116652199047903419792672176707962996222534958186316149047081012814625802738124220769726069222801147784910060634299208457620738222874328211406942475570302733435749097334039298305930999855054688898266314183979348253908361325717666384242113469739814102787909578260991096300338947654677113024817936988518166530441376153520421086828324108966488401088440239362616548798019319756316070790731041583665984155314090549241867437604492548495592542292505820734932760849993390606010290734901803869983912501160232195383246919788958335996175160742379884606861117414619051381229215921445185351836619258536498908953560888314963077412836370776767192762776272109138078772755865101851930081489482028424636794757116642441773569864194686864689741139185955520713155221095768269366491820655232787173765423235392950630548558200044766532170364974747669725790524363037800312107044698772907790050218569945320021956171662624184940505894911877033368246972696708353288747233707577628878902935443417984894813349717826908226028154658341008948382405304108514523810250472556947456265929643624865005744250061644029326521875833491014409725161065956370599689394831373016785392135228055516263401970636350102094993702657020889266654927561649516552181411973704164237449824629202197703064232006167536632235460705040409696830694337199126336948641882735991956142943808116540298234744921288501285857803137576330591849488448556234121956598654095190167296535825973555225378745078318292079154597438496071151515609421984942374854494543177161020990759909258061877207007886378428602161784984679249191648839493110857407870389686761465143763555540134913692432353844076550743798523634695304548702109568101701503327266968755883468375034471440341786420427273646946546768658847504383231070107621137329351526467277318855151238809591992489455100806055896053868160397011289739372523707941135810832504225648795206556451997219715466135787384380583438981784068648194578274798200255851452046908011658352422361797168590409792205776559621234759862165263568590082058042135217889255175355555034013022551563387111774301343023417280255908647947330737444056365971747788895904070013449072901635790716204557295878044555283266290649243637535113261814425249487111570524773689335070892285815841620193435862041655404591146402550914698909966691160300298708220976138031036278075292224245283134796296137243609748790486723235834582509444152293817921936100030335766014772466166901758064580079715005224395189149982711190725464827611168393510842838691652497458423964978378338737467771565696355846743882982280286151177797609113844076192791402857003172561376212735211349502420455754687493845876026320847688639313485610208623178581682918413070003382136724201693706489784564581809012996901489280654858105407073461405150973266019197330186364073684447465418308229583299265752120698853844932044022387494698752707280991176943228544247836514136576350790972068475898106197489235455631541772453724155516334541251358980318596102880047920344194088622517844877668314938639271726091836206441983850061403456695699683995773556013220958851990098474237964711295615440981577631984402700843922034306615242338224154501608211635344659682169669009344854891252957793940916064634657260993789069946631923333944409115478104769850194265125416736153188685647256730202115578013482548129235967110554428997039171300782704825615168811478590765904291709756769207147617111282096256799141703297618461537043392007158622752740561343608509391882639016529027657542502148000898577325008086605549686410671541353646352221161006015467787079377272655294622550350734735656000422552990808158642097960190055971263432855993301485086602385015335860970964608595696088354100493783761466483441119221422314534101488137527312526596464522496822970328688880870630138317622804380599589286056902603404588145201391544065679882495952985813876993058347130067709491570256598901120776662329028970435450686269728840464908534667732787757929670072110512829870685433059686054234129200093357423249003207824303526138155257602159685492084258342277779889791201059769212293498321910787190316095390808467475579999330914229267001523021946361957683979363298529605777362103819807275762948536640625335342468845829170911241128005054691852677022779743132376248883200366077595760719162139994838519071647176961741185957846783738874100277084247098609144765048429432456863776065223571532907622998180384318196474199275192438372634554114239321325142832526751566966850302811290989052929210345811086314174965414020137837416590731597052864934724765688896607237620875349955234836403741769024827302210917232827029130385197666663466150530629194539101448598041998808879113984728663842275264401537282942193687906456579341391549385438809811011494780940641805327717030098366151972392255634480732429873673140530482791819119017007273239277941902441153632308003359978921524929174805549303714622078398620971504945788401754948321269054964520233242689131635946186896218102733183971036684936932458694910644328463028946548889606316286464616991322387828582518977325280004481311731771987402074671194646930032053341267924714620917885988812923004032004912125250695466273697976090807680230232688411345726501510899815893126114253127473519175417910760811186433886895582879520021187412302132603154330773054599705525730030301454270742374049903669855908361025766008336473785729682682048340206104965745245344056083983434741441895849672459285341888133459207178127396838919610175259686334640265374784705699117621149553004009663747581208467171096485653956007935988455214610600053874547264055923234991346534170582252334973177930331558805889412090857918482358782270743771382990751664922008328725472492799081068444432880531440038704445763734873713046186302791353959729131243776056163996933866437493374398985725397014960838464191045040581102794866788782777683785697031182331848954409459931654436015479348342341165407531227556446545478506797204512313999530953549597388687115622326427027457954005051522477567630855850297785010207092606911228135877642672978593182658558407401058394396926183763066159078415674737333786553834316793682122184149830582363624829129263299987874771241430429474991851662740128076564588249958643879949937520552210378243548890985448475769526890317938203564032015235327637008537359705196195717610353472859263827452457436636547060149894059416915591046910123692784319216441881570883567540727975451181884511416345586676190170923429310477006159893979046570906322229921692773911963095931320467396899015986936457437396014420126529912319095256855274891838651481670654433138135454774935651471246873501397922534516991879868917218363997679819634924492507540634757710233114553122840027384078641248683302366617812420414269521210337057554355954009384262053181915013757673292380573013016169356305300046146429683717713376819529396012498071131871474430874095248405466406590196652836343995461042152870938459760690509451351194481184925887295589760143620384808481898804270793682961887041295680185604602067169472909128411182671063629936839686315507946545502279103955823167734962403445656595768910925574672541829062675869887672367256202980624770255692745049077688405068921252099367426189333046164918996880542320096552056244260791317812912306518515875376358235280646703118785065507474812412732396343748394612522210691999346635978416225740237300066684991882928447790902336130390604033090410469761762731748082674842858681589057205869601289124200053280552982355108909053367549130389679926562740933054062924597274798501873223812015220698765835970877217263311868040993244729335949566283498149194336194281408306732351811092479187494842006755601866351612078519418957196810824878742950688746775877615069337068710534367627014775150949674787693448561663515728340216384072953608458618258327311996771577871525780556564456333431956555397017800186135284599787998797610955155082345299253765071572555904562980360179952310997458066563986813173414937372889426748974401366077773351348146560211334274558765530883696620269473747488000220685819783537718729889780076339119770560308352261461918246715575379273425329343739445268794466098231316348483980702721663586355330256879708230776469347584573752989499520283834582972639962015666928090519116027527210675739093563907531313166829335845906288461716126483822841599170042422421943244711208349294667975516994575143417822534616740336648544570227891675241075540963706883130025404078057060073921373048758886123845962424887555687016027280565446828373558645079546698443842481238741098363270183956060514020117038682897468820847663818711568400839817777926764715535040007525672393138272971541659508802569507011179664633005275225301043304994789813775223551978647368338423322171671118071996088729971092595082610714819795256959235504457890732172799589856942331615816216964757309920369137331391740644951846587388703292971842899872443541448154871650325436890554340408768328054071836352704410237609743396786457516672046331281717365659132678353810964682742531978219064518006732797564052686147086853055322074468629869153133972125477255845528532549760334674324948940118262874372096079266151925082316423474104294239622420667122729030940564421239107978329026445910480015351735985343461664390805361663157890076642331250559433382207981875551919193644834943740171954426683033286774866577458391344279371778380713465382096038678024996975972933596420757231346348787988807331243444662310900431758807231512086925637943202160241585884202856050663258963637929452675679084740724888983634015485322394759049630140265566357255639110485385115584536131583315541941529597670079785714093649844852954646114581820945243620182339016554076708123459921809453837603130581739826588289272478102864133705891662602472104578447241720020807766438015615267605534807158297227286092475405691620218469619417530331040183667755697361147732690225747454414329653558230526375919697935533693848343362096532361480802709516791570601810615777472878580455849136044010007450170632426730811351708316805263427884295849750926345122293555633521434616662007079435778106500646706982673126886402744490843244797583507342102109753635037449655338114403175374328272609712158794243643097509211611432289424760862835232911511569677120696322209202697559536772545730521598305481567725050600676480639008633816515586897464632524013129964064770604395288682438440499278020293688494136101038146943064403146391984191314128240667429937479072206014151115413425168686341356993440142347465575466637005686269445893116744780026864862295240376452104407295518152627035566692331031553851221968560103866008879614612296800107403395329955919738949158028430603634465869304481520847150804390324428081073094606305695813968335720496914511695296896542101988699999524241370836884967231959560763243131925253426504075022834061133833070086459675206412474472908561427410282607015794866335769544480855892582744231527920031755817191679825213776123410439051656905511946778566993112936868615995747910007324473698605325399711667844690722242797650147728491257400580178903678610237042975416438214846821223983501634846935506109569423216981304762133183290111126456226114457989776825973166110783278681231074339785709313066440051364455856727319995131901001024473644852195784413246437313327605555522355555811613819800289696466942767485870624026643133199099389315119597471467432369486253960372542064219996358816004557173158833127123332880936885305722482010778160102900285475587155283816896873059193244121912004289221517131466617171368913127997461075996818578820649753081629174243319265027132289907685960261446613138201061164066712745018870889090700107925364622195539564281555342864397261066562043648311195307273228380415536597992554268146135503653858014939147535968983193753104786895197054233829886542603657362302352441382212484391014127731934576552695275702286056006145902463360303562177799107196182509058007050091220984674484799440696631741776742057603751877856988149691199881507542803009797375951831142863400030491342227424467937320519082881683524101245481387728718964911771989699374315862521827762004919576021264550531483564776626071719583114218687385099943800827059438961379390135432222079970955319178421463063433673252198327325778345751298491373951172520410268988878384254819374741238385946423582686888060757409547669485992359568946096085270621263942584203801876695746570528593765787592318572336633352138791736651168142411794272396603117887468657531204929873065458659538806614923518979365211930129845996596833140650028838624097726193051761937228734344199645382104029818938245205041893243116810303683452709545930678494412445247063081878550438137279471059387504466782061401434292515282282298285879252797668491650098380393134920294876734362346381103485506725876559470904642403295489941671313505240004284650292368934388090140647455652335886463344355045376464364714015035950447328501585783413928701727119842293917451660881516898008532645145312823655457769543075287339980018993364696251550413961913092220070329568333239538835596904889794302013218892227993820658034301039656872459024308005185502613218887627903923317634111433109375722317720279283729376478928935342881626630148745561264000326289423664855276586519486632345053029307157156016288775518209088039544372204275184088113758426479982524278106764658901169054697106169316903243753529226779712190106483378458944206346997985505728280281707680318181032725473108649919293488883963340105420364533486745186165573388757243699598920951868641494581776412709258984239853828298706081113070806526607576872713955103577906922280703084681339956841163376446547269963473857981728962144966556721352848378057335547561486591198398382741866220701762655890164784768313526598606065062234657437570318467696763758818039529050091225238743324797963270382803612507879939859700034713772630683480044860417450476174004369409407233192367345112994963086320653210442710141900058599366276298198688979763257550344310611504758317334627069396631629732738861057127909632035211584429876376035721588262963629064278634438661951406730549629476144748610882522329292483446612156957515631319145780286580142827390373366522410662495683948628251316014846373157238722506480432659581419500298291728029406272392369938658402487911591890720845124449420530759570243857098742132427749184749479352137747628652209199774684137393984171839594183519791054295472902662519232482426004315455291751655421516654979471884948335350698703411273942871625059065524066937032788543228443680092307551872017952376380709448001043518560508925743143012115402195374658890811891780342591665735387737727598128358297624208948506296728057376107091750731565746237381428164175076301697011773227439931127393647622804974098709338657528676324104534463799175513987371447440101749550005804131126754371751434134524584297743238407178272556225721614896333490505965174158717917139873445162672121913691898358359546291379772847045590257534253821053483196167919054051006757110260195324503530897037823888437282047660732345386969202406345058573346834767988788668909609366132003654926650147357892541615765920286429810234378314180703449612898418550414395508955902124154630574497766747021566849173842291751698577760032707384881001085004894608050304150214386134142804942046528784951477365552595241457150614981280474103028492911976895166360813267533749984157802967525877208013779736980788710666872156123799064248669469760013657364838915314736030333991220459501147729509007537565912579256438815271143557813165891431577428478318426220014458358584692814733569185964616310229309413463775931802871203586540579963300721151267152901904074198061306286708479386366080975205631031807916245545346867468849202273830326598662710154149894398278405990301677989082211022582771248060144693624758549726918504609925695544298916334512124189736679036383089128039955839336085701985873669485787197515347582732727102967645964374536602601155985521701721074805942685623740348844280312754005537691234711827746466086809885235422006583386437045911055435195047246588431812169747044742899822278338778487457419681985644115937618790940287074650972077057718653940476316663362181618560500570780718395375622351089361720039039507673569120777348267735267789746296898287207948130239932517893952373845017904463961931585726719583367649894594408091093067553054690583644214840153416537967383607490331434526456934746884500690128551531045483349095009599198611397337274280772099739440344931717735538281038098762195355883556976438313059343749032632345312505787811606837190915004363738284392987924817334462233810066891381342298175925883658824489083826144164080332324757028556373757533617133864512293872947988661995867002183951375246567074752932977269387315289358047565833003197452067149438924629005891667464154617586614856681747380568490060597725086452842838265392257363191907916701124880406258785901610367312078902154957925915768034560395446020021432873657919703567984287510982415397401460516268427251989206541711206948140533240882344578790301443210498355760189974426628368779859978878724395153880211052921705658695651431115185437989116298170617186635678532201586585454078953719583749268368512405783650445548782548093804400964162873686496368013044328850356404473177599801884662634849610617716777093459938300242139676308318854185083102005142463720935488797555174741308823768909644083916044995526603172888939336772043497314511431904494353271422385523547529905598144008951723673098495258602402063697194306046237451829567199639865714977181836662608132757506908925907330224535675709816600716419789763127470241151344875539274979787457363282380386535248393322007258767863155310705767563386137050013626932462856728496897950057010471672302784702539321162700437407556937227555359299958390414465321600372260922068338002619491517777118348085206465626141062341809549259410232333011939451581919714247852173336074481159573251165009291851397047880250615153637595818657826875157979555459816132600840101547009028549920082142774374464999544172915551923592640994892256351325266203676179638363082996329240684343150502398938758454767155959894823255397092499176740918480061273587065964943315363510831746918703771240486157371465445002119163350105798834052900480420983721595815897419467683710680621343595528380956925861780403034171740762349018627841639085399821124235690863205614343765201898468121445579877362789141406751600872070838552984716759642460398507141307444116541089560512035885845594014639166856588767004168353695672605000663657809788504041548125778984876575907796947865353309144384553890619292870086258983979572594049069723791850296771417489716494995912337565333154963296648721403952930877520572494189376863054761774892558434231623355363035205155808854687528122940522314854380002809293034127189207595373939077006474772927194189690644402502132024892678280543128305337310174593095889542596434067906982845930710683706501111311905997077360768448240675795999002456405532974440512781369739912672021501758853496110440049516572279379506428651673168620197659982017628541409327832261247831097681907760784302462664104196526898091915783223658001211400816051054232894413834650781082288503232019795468234474962616137202347777955097730198336089944031494307148589005182149746286525653127662421563920327526132852693884148884979841133871389619751576033065813053839608336607555777900681350455712547921530875177817999078908940305332141651043786231064485895455720769857717486429987837696961306280415524476174548394681563371053309004718252517107577249487030085763544267077423192241339620124407357678711766596015362771041653308781741350307476577949030200074817629248301000618715561627858817156007085889312064528995747691398832999393646978714539061343258421908629052546614422783284413749748876225271130598147143174174035872877764881546323767470791656597848089645332407533841450736597318203655490325357140050729164762504008318753160986185880244933999271513335561911943627878498440042114626765833024569713404140343332874811731100797802394983316095651641966902244602488270771234211754104794759442666067988394040772099947788918105249192598092745096122560632546079696554576483365673081124851254916446896500333715578615153693235800521560890118027855251423901276174223256642913767590672657891285155881309726194268713752293804888679470144901919515101363811356864493153937744988589581004941588924499082237210500303756028108958379135776107619276898717227871488010658388145830819505775427999695505411757604679214389177635842349423747331641963794094833468554329028423037570713631184512121481166970496274322811122285847500419617833455759869180952101510945164714755893280688679787113702298205597738875300966533021956021072217391720220663550044003350874705343863036933201811567561832536376298158102912476859706817927891021677152049376072373969514073810517492703093568918552561326363524431307094946790912051544682027798772570289931022774281616831636092737644473632964574725157767441171239952642521792845846822690935391685654870978913338481550053400287723985477908198399452294869510151387740450585121065325205084050212282567929308290597672004258201642693057387732539809289040546823251462722742920879627990719329711980752305795123782651815235350953881881156248663899962434751447992975069288159991099311447074027990691201381314224526498681148916436675006773627867776635603613906548343935871092724316700890750175477450835991144218449688289633215331166425520825212446910032710757513406200967952441115206123506655220499614259378053662950923310682930630391614562804549851657705480422451457447999329292512968746255957183807590187962670116126277164123583643654060384931089045134039796120083294662858886423129596784824309224600019809159888060459923670920619899671830436981475792332759783412606732263102128154576471261957023003691449108548715177940160170056830111005248315689448433783574463129333668571633938996832934619119575995419436504356321084935063823241116089065587409547432040221461261828780498685539295939846171991793498548186569215638123537222604852952708145022793239178648287776465699174278131049866095793236289773519930211172340114704616848798678008349907489824325144592110675552409956357282081994005550422053426318226545013894037731322709351059252873458998758201881869867208034231862964959244035382179729621199298101755776845062461032726397148750116062294519523239432335322009689781830625004560991148615144007846812173520561527216849492463479939203706257817461138750494617540947800754568720320677859855072426718288514182045822633740794724338947668281223518957583598184159239048458231362803196861369787974933433041208960347392915808069686179676035390521098918152278151441221607447143531352095604847774784970566651145365830259618755857484388752168149930850110895867494686970040069539329261207851591970180983748447426256234053305628778351242261470571719369551910789315133136412097996675664701589958475308732837569467232405126003218836640197240573484778368415766971136374371452600284671850679763989342309715675393338860277917266169488265619169708261456451492571343407157099387008902840164510976278832423612390620444210029842802020296776076524897393630067869121921259366243791672375494606089317986533008531119488818343653790940743294128856481203647089306713092857222009951506245802029100765239431471390740582314737398837047863656168543737993197000658440406812663846289074686445133729471283939082291521019322725911309382958608604224194182413756957386437606887147854626832331877730417822981132929105716206512102381796153581147071607514774652458204186790155394093072491617597068707450321731187507963947011472731438769852432451166249361714600271855516620739511014785891371302675680047871429917730870638335396446906376809309836380809784585739341267106988065700793964330179408603715595479352071398817693714556515657348414749257165936985255902074137400294970596590666166996994839209335919625757376974019887617283184836604584506662135403461481670416657509299507469308474983606536640009724173686633657313857027749245509969108250258706277873735699468039483840040317034945830119635957850534943499394621421681266191704457941718624221979308216316876403182944601608208742144973050524189650688412512189509257441799618602886268937480640396255649243296139588893270681370926985009886050959621129529069370038327061269876131020074182388861706544859828191793019867427020429094382395664412934006398218722690163177706481057482025800939030083170277332784852642193991542506714828063124585300722100016030074568736599330396129242029672663728152206348948769945652763568776749594039159590555378143202365605249940806486782911755347432082497233368145817242141111633940993196326241962964449461503285606089848836475239709774458533566223026496324083000550638567988397085172174851538085551311798935304497678003621884969388447473081924530272129807587715898699556079236859444276677122551082259499147796216251652069846523914087585506517039806484125663836345043484945444901500915346379554761391641777259220908550776463843039171845252043578201575744187957488321569578414605473323038158261241774303203018067533954898116041782215166388450407603435500408665504438771674374077458140416682268009558829153957935542462996265628760327453386855455008421611991254418977606734398901318046434116472567229457478953090027860262460099829181244744619826293652895337873901334856058680101984878648280377670106588169409063005621184001648584199291298947276501466400192825642632126600107821049623414760052534882499984324195158035735763426209246290821577494580235345070707368530799328248711627357353036553225612579348081427033630924959191365511943818761671708666099665240351597486535334081172719722269497413251476868457029369410248710512151503674773594411201725832230726629503889891089423579627573018499131827042107071590189279148122559962210273360087438132620955638572955411489029671158351546838181580879696116537390680267659647876694204530461621716751946523374011965975877213622268999802924971395054817542312088539766565140785049660912876421038420449588191257106086696986145606679623677456176551920809642833137283565816543382848441356234831945561261221217191540953347017946676288958373694759914018279394255441352693564039266011546665464320388269038430726624012823437830990478378848077600108242315814373953049697411145585089233495166181183970100757936037363306531031084792178688020802155954442364924160449708629343796740769826406595156028453118983456056910003955285534718504357444986157549333647683813193083253481198244777956203403862944314707794464045809554458248274202752187482191789594421727858290059714021461617671323369588403992874806032373158852763577536803812209181462234459157111773449429905543747207141862239202901186049158726073458570214279013589555092960742407328853800523198521863233180342913198406046454199355311863782304373196745551372502511302212674859192396964330412361945084324488088952643115291905869049344931618188450769920223543827972800672817730123922929233671014455608702659422230600338870758754235085460864664513310614828949655090456747247997798258572015610985438738971735706295623256199287352582555891416382656029853373849419605914428245370527734582878793465355508393782969384190127319423150030552148250608196706259301706324079862876464351154595506741960920078588590284897649975441219181500192189774292647537656357701194531357049114974944540692877755814631373941441134801520991446924682683491938337029456732314651095273575199918702666154812855417959599727283175389705024213544310979264306157276021686266791674799371873164607017474718864048969882371839819707029228523489145655050021617136510133515417276103308431118620105236030086999217761086023351147980452336043945701086486653445221713646078138712035932182924322895525229757171484122264671156713754044411245798939221060516367059015800730572414921411645361819821456136521506926182645064199747351347304804718898396722268029144963787391396622303887417672042847520192440734128304800713892946447082752252074595061454621434081444608725513912495328370234179098019473138054778170576396757524626203297865053246041639126224668392066980225162874146140955907913107688887178544453643710032618557367309175958535205304563584284449925244701779722503804849852198019190636959533221274018438972543787730034019344652650508542709431151876762976455275377546497814090169021290968887803386544941819356886362784635490641565641201962939595374780469982820790227731440548800546077347122547621801264096530185062459301944977595837587751887162503196887966164496764886568788237562841149313722794355211141573212563189454922819919314202438212490585693170383439455065508533284771133865292443908588146516831465112825086011539829241009528014623850163815687770936121756237561899833740717703283361211185250390427028075343833515583034512553093925489084494841685766782031607843469813784189307408618511900882863980816233340716538712136483718737661341508606685361556847462105730711025474403677342313722142189171895559321501445207068003744529515072669652089981638351128876485705874026578210580156000686533363689318175329503357599745386692762150672177244402613320342015729574205878569599123080745205446197162850308227031515309131971159280566375160313476653228930252388555693166038726895359491630498561957305821911332399466749892047348059068701949988977473972336328937009466934250451764599940061008003650698925740964948854773320926832719751596903621596357371850516906250468296641968183826503706459961508541448543277468663178994409485185876913270405990735822431129172413302674663514098960558867762708989851667352782442108481003730479536693007766275676551888490714341351391697867200555834190248484419376470351583879334335025523039099804180786802267205908404751175415995134837346548360637347120619275270335074195577193806939153603342224877340505387779751241945107653103940013619598172754364396435037514369778780131801093992912235615073047183144319073506198067002426474019002332123717532443881165386928496732947041915236589857682159155906573825616194885144795404003631433789423155576601161254784806993176490684024240100101510373484006301493287224759072243556073780990640532680392850538647916993325409196148231754409033039646243193475177460369525234654708719182379231471637535382965853756871580707855582926006070570891826069849041580183708373388613566915386109748337800151764311240408524478948001341939499939712555115377246438157378618957328657908184088662436561317299989376223741523323197692546982045542256641348147306557824807527167565606818057315702777877617378933698608172120730958827186898665663323466058121200701310776790032289826732428466758275486399572848744481930743355559976403421592167636592116277658696298847654477929823793018948313149729399784075321026083813155557118697959515951706030812847822501452837371572130986174641425208967647297016972068074469278992173129258706458383239888290400050970480723032873818366801581137870910958319439884427758686461739219697642580528575893512705711384470758348135912291903791967235712662090140339817893627065160648603691812303830684581111873319400832574748417263905034901774572509166499658971054920783848684518429302563178136731508940419671387549959723402668445556021314739422487304119662240666232932585160622517769576230963731313030924358538212375775827489831707176443967765495702796132074132810450135057103150156578424164020306118580917074558975613992130158636803971222725909467925333606779526122888433691264622005952094798151186354718194879735262868291457451361707441291477898099461209180143979174427725817362526046485257560476242575511153604883312299828624262476434171642363988571539947417745608161952141088342042147892905558339769910756667439100870293614370103138849185752089444181437738771563331235045387112643829025421111517924316113517174634115246326276159569351121586158380233453863792885831114741041591768537124201004363832033725118216913226840238914146359628819698525369302900424827542306093677618600888455187807623635883307722267664782495816431267177120637550188190607269598808463526105319639686833810476752821427576316551303047492232972511743715852400154373841359690754274276652338227060799442259883488439942202062162016838750325463401411137254092899834890619462149233478457133144630020878853717101367421026198538885608769851682497854310195087628702672876606278292560944345830155458345431987667187158159937922024857148940524147963629599891571960539848189324915439063775253832476820826988493647201408529662616179007331726225456164177289794169102677604597945991102131396439302735280223957943440242477834627462643527854449213680078225820131243830906029396684317211954798858440426380466514976713982962187890205513297400422787873959877890931597712600104658078204729061472641693013754346993822445014281867573841330693606676186023056303089592590626691058780930423355664183516785630339453385603111350447599465957031035491033876017491349600901308603059824462937155589834423929969385877296777158937575317019221987052157416576072862671409470181124381455950151129057255904954981207005107073290962507858867640947321771869417241637338228210925619865600270161845488292213360534262673542500856848587399191281278851563239011193773523600076568601290157015169049817721516194072568985292427889159211741529441066190009416872993348802408541918593207728395969502173191597723496999415426539537278479401885976045219572806723722842128337819002537500139243397149111948445933121354204566868677928687297806006277461986712376374863148792982811140723604951174782144643942051909479027226037060995079116552995752413430345125139934725976222938426318589203481507228640769057885728976982235653780972082779823847176020290822202702981798712500460928454575202952294278277919516086825593367402641025711184558354004252530014999133830437642404445231243214924478346875424172252182600827711163281106397165256878732022686324095977266310026632473023672421846078531031920290058553756096278036784019889644397500952950523786854762520427197451830713633497662172802655190606949961892543523720066873939714845887094177986149086679421954741951135760221469336144572493517881254308830822452711244471048059693435337805356307040971504314519916319011898380504715994492965404403103874259814018864183093403535691333569129036079378491686226199356258852414932258311633758319759423653748014732028624150751642201456109522954459770914291108383530111208853461063901788714660508207704312883182766954556400671605589191843579600475504651606963072246799571528661401912931377177306411757649111661497921940452256817959755307929852839761032106504052510888729847600655293282317191337903406368492918963582585960552156627756108263546358748031359621026662450100188172205108483000031973023923302740499105709300695299103027751739983128714939574637065666057152137595717628002649802563104249127945592477203113504338396320690957348799252674754851769618021988347328915272105993519812749858798187638392400719067447713238927553181434634557561545313082287082638797707980211324327160366499888589297988332357885240651187053451766561849032233263689811045450992845959994254286694591506491108935445927820242683591407361048519905002117968451987396857564616805036992839815483133619813539264083438334513644910822480909257132826410425419894532827882091181725786897889487430910442741809773585953029650658813863194038786285369019889583371396024933978440854273731104069496631588330863867562801360541838242879276324230757933654549471632465322965214497944403206904374800091602913828603030578976550900215332966054550157710901158857808533573951497923141499906638032319968659059863031858294560394964905605693905548015805656621753560219548798796283419940056558227805077321857185358989511634473686156233580429442246514263062535376097201103230517298141820704149207239352802584155739912589616921084552212475882017994486065325053378040909529076717124596419950445219112358564938270228042164004077636118734602072058011602076284843614274944738618507190105447339212056110303141971764001791294980555760385942597538963740278430999937735715310084021250099613737964652911948697029750527025455559069220788534588178565655507371222760217632279255475273679316981024140817973336817601395503889232472730519117673108381537551510598169702370847912021894761262013559489810932917402918799235824331167668412468362796196200304395987366492513548910306138450094258273107851172345001926531364794422055272247197317787001369250785344243826339420822017106836975378499416915719519734998241395741739728237811377686832391474023986658307644285420940350529725802505531538897181300084497977097399520284293846478548238661351281519127718804031368122267233422565836274002055544095280426337760765616849185823754428634744347362923031142893205273444569838219394455821122080199401667270118765136533078335076506999519688356857030082497711006162174008380070938834910804991808939682156436265044223676601969999155986789215503381261762357699501182385963614147243324379856577103698025740902044217474121213475683880099302152103479668946275414996714215119502258831308343725985392042324931814907768297920901531561572882172981396352493396531284611736892696275434995793719155467291107789502475571348413223649472519974598297922997151604419104982713627044222407816551301699683085376847890696850247452143816372384612586711817752868899405087814843311396187751519348544953648032432094997186526167566622081381027254892235438933658734313881159252687456853589654417778998073858275891991521176467280462127818855957804405616535192722465185126826198608330020447259049789035809682283012396930808283778794639790983309333507761408855501543723713555219262393842868675276504989850543480717358482022388151011464446404613314535719452466651592449911525753307168427650694850411485252747144637561853006078085914552985976760918579403435674686537279369023689234290177283239159482777927217281277637715745986866985143445281392457406652612114161551824499116338425209541812269145983852112765754216121352000981293211816905640427027132383663959828270148976484677095661458590190149570985322261197527888626879461221779027392701565924160621358698195151226588311257466942548955025255142746181052974705280548827333548784680243315292314957129696195670887488380327551342682973001874332842132407694069627426651522087488217194623568517842026691264833000548432077379874202126902355130470219757790511075328843789500589985018287928664823715534112098426165449715620563358419831449551961060190294813260621324714437947069783769174859725679105723577023136107181842940690951122707488185087166936772649981803491896602466923315807721053940945143385217790817272690821441946600858211075138158771917352824989897926490643281284000354507415279599683119510890183208020529284457037672349650421161675374621934019916378583883271323146160061039522312015594909572380824941020577756395829027078340328503934126293829396406942996877918610599440882970059170671907501614146155824277342828981932962035711980196653467043788629212762814605265499666367932032726532833189817592636985263637355605955138529160335156998010391863732648650128624641718948524276706114010216456591098887609159999118825280799646341110141003584969364426467293425336331650116786572749403539402366111840360725093120398617745131007084889426991500942282035735050436209814459032304572527314205851252527278274761989017838465664914599557762238343077181529170761513305174348917740563641728924335601723001022250425098778294092147415727386546005746236762629664286003851628517015782725919975197971618809254457192815038830488274533492179764631594131509832677888931443965606179925213933458212423889235827857574468277001518833440109792087379139204421991509469673378054234386461012760753236665314015115143293515092615097562727053692287994330286092800508575535523861120343395462290994588747854980972506282248075621196660910579744408970252661601752676547845010292588264710282973982475041706715785783043537607792466647712244610061458484164834219059147039977059853438565972398145221721696863286689219736152317164368110839126417977224463972066684492369565096996815639846665624515585780535079110430001364899303673322050924460187030812837915171943089344820085811019475480226378703603606412429919906879622718609139140290965361203657872646533349201462547888286808693503366088823086334757141196720766198568240676890436410940928340136427165739835286647909184527255426109499206697366817375992313597127449128975254945025250441029441023700638632536888644244022586836558379352630133910310797143307098554724566409768507389861429525199566702089493886060969034289411368326290004521105665077576101079384209096523564212605324134974185211853332454044639116373696998314179322502678996972424277122095015584455627301439253252337342825834244654876259788203957833576959891732128380979418086519323654991616331060661303386891545708718411325801512204742174811245243204255408349947435260854381219899243040937152349687287430520192486080291732647530971140950935588135004889803162303871222587060978983995034300460621373489667506121912013434410143964792613195542890692476734687792834985783839167552661642793007551604090974791955390241137181191786066338215534775636933338730749211076141780947284660184286636664658703102515290037040934158146549254830525740635435418136791646094815681651540082695577035595801970819223478275587984508738615813293421474254409764836841199595204865846566481300885481593796861155976066502963036479278340271711125248370520433337011286719414308412257727318373666176650423347581123251675102687780496643507865378424884302595531253372609044923582474536355864678708445129604444025223305673613075521263769035919252779209848946330617213976836916567243144412320721482763167865695622025671493560833187719499492729670939558222497954005128558104811586874037393346450531396347274764212946152192149641689708548543822273541616855002911329046964839328716016196180027868108608453888726838267370642488202203502546230313729230070358470506763773758437460352863079095053108194085919313310431837594154197510573600483678400971063198354800932785412423855492031728968504994661115903300584861157432994334513746808093593230961898984716502855814260265932543316322347431559717997297754482842273699541335401331632438982587190361067795171540886483586019853625338089215241590545638253364644197061773353016186932414908990948293138988015188290616641981673003938753981660054173417470429261751561893230466685812572802010976464936088528122281774505593917054527581319984462710712087436767503469258614888050041027181954531179984843772021790423272690782071224090224706271356360730585723120034882714677507666338894655736745159582635646691483536853519841864556226831308036795015129116198290551226871130966951554355637904408792684583723223612136701606014083764651010617632106820241024347566249872480303566719629114307520332027083853697504868361617174591358969432166940779620248591000567817906635847674750866999778445982000664874066957519691898131411544482459501835665530744953430593226122856935025886428964451300546265834470168208746526619629740219041644341676940621367525936111564761191727492307987192353492367060321430328433995390289034569606600213895810596924409893559072458368896100448654453510566423606457359607525520902626291592846913643140075127033530883093370651856346911494970182053044353619049264305507302516230544119733258571393716523794594669915958544868640288727058449203665122706666628194018189406892022662869417431413366291319417076931784974383904529196645383793692270638543312696879579102193286409218678868440202429329711246468531383374660377306276322128233932847058712331245504073925076838219515581218413675449917643769191286416528966640080964173100988712901152018802426246277373155886783681872816201121423764148291265307278444105073591344750566036586357495442092274875199684484861116795027845121330381387681095602459291883409962710215003427894148263869108729016949504233344573185461039437771453678737342304732086784309997611469580276814354544810458673233558428559558478806677950552634651807032138364305531318042649242226791675287626410082879741601590980867655195886771669964200050551997471575426776662987037738189952154443276366141059193513152614413229913393473979367658808471529689859362048134316965323725662809114121757266541489579645646579951269864839698985729830338897524814149474268268088013541156446340226032463383036892569337694369074595913859100853260248663939845015115003334736904768326858435209191231943107241065650873548654578590779918490784404799150624416543299287109218887985455466269312417235125461844706465555541912355660820533333940950437181038771535850528380670862457604444754318832300257755518715648533399397249278183533422303392950140384545617488165006253927808717290664868967833826488497130231589116263452000242536718551093294146541171179428092573652785754250254470282814309489238687970083299603201371279602485454730306994057419729738591423544525131633527802917189830908364673569167312520609040029699709824338056083116780341483255834949195978394864948319542007313651831252005175066573652812974802543824739305934087118941948906124371234498699930247653688503614280644592736806937629814318208275208288584785412625340598143240242010439713681526197367009063208366492861452176373325502526028816187449430423512931180803287992596181555784356939048303483891162665807874475752368204502163751864808909864865046626416678781580336166897504506235973888504225658192286354074609303148706763192866624212690872976091687331196546983609722379793563750034754201454858660893349449959119164872573435362142096152308985226335117842965064443753554610539332538860545923684280908203814874798947567871794936813979070699290121564084188575251620530025641661381620680087110533854062051940063490444216435330493501396804147407110537234188935035931373319256110503988613810857267047809656586199535920354818059232602178310538753726077166885069092608929492746947301509788550742778189289306608056280169299645803027168880501682293721190244295276423188249599742267367898314556669266784822654878445849378400920921720665644379344485262398619557038501758097920685372201570857221598622077478875809549645176583504633441007005360220916776613685079941024396517111060005506786537518549492586040266166321550820880260930897114989835583722939422343376419595389529826923460221139773582800371288066113655095436575680924970316437859520311132622047218731711315855449302543874185360338385555064173607364588579474355091867116695196456465640463547517180231931827926840770490805873098191910825983511505590753222042396041927658656132266302165969302985694829809602017720518999401074572407190664273352465625840857597983894427292272954400264712883792620469673420667014308399618910345831446183162245944209652008837425462490562791550912309387063558295436337083036804868798400254784809727069346174086192517902987604159692139272564007724601643258699692371164098259680849399695906353298207337638362668725954559698924393131668223791537021386616514416577065320041049770853619857544433338618985004314626129574303225588725131611944986953734146901197431682965168318827250226910932044806180163192353738217195649779146200979206950973739790425516032152128794199270219813556623916227980148654694496956135492404239328240149295910837871566421983225178653574800976257014789120740901782869891364307977551985041119415853978019946400255475753037446670207811162208555560881008352821015076849190444570398282348846195859045166686474298031914010632987098320589644152755737280826474773831966877938875578351984794115271683988191937983978079020159567771646694987462101086418258850119801032715856325591154677598541892442525478960620394053836634499154592571472747395082672644797962866915896225296746471143083134506942025335726473107775688674990876116743166960029074205025727657406372061962113990892351262990897507716355121239661257450497639507560451941143179562473301426154789348110399295699312509512484741141802396013146531277297860060466702470178709537091100423029439202282601454666881920071689245642081630745577938675161168566692688637369530839563559582333711004465772518903446026911263050173273083633185503829708392662726167967527620705392299847424417275927771513094690190734873192010218257297706199564217819077666719164343526704436875655757818712880151183869508776225340314912611699941584240956980532311460055753556296493277595601961478560105869492517269196529780965922181056282357555433516208774487657028709627171948415057661428339847308020161160264145809811007575922287355582492887798475101705528260138703049383674370644924180689730680206851265489705972501322660850406969067695802653322358371315969426249026152849527099301867522485833180557770371781343373839289039672994480039261282460641880992588423559719023073165494861948216426088594846082267122381593573115645068553617461826603530495259720195319087951959646879709938334483334527196692848559652524370707491631801496678738257832139593667791419467114024325176662447807036899409821766032063456102357245114368181040643437643744010006337022793903229434454876324709194067316675245776895984067711549204233742786636004462741880876654628713613254014219306859553457038141049683693240416008431804705457277456211935329903500217692535791948951084138588895684891385073735056296796495065805291317180039759845771771450469995058282362271732275465012917253457573956515749044495645350614871946952163214322327853515183558777921175361551620413556147542707175632516923947506762584872045409829867302962613076527211530442667292250256508966562692058185975410283269771524556952727500177723739161276911696281745983744081568313206102945412084186061278227253279781050052162434933566928651797147422702029511126369309793482957798516578675324151208610347688864749338295500489667518288814178907018543122805970190366982428943511631984241183289023995401643196789395834712672356114128028724901338439570092536389313935608634369964080310611035158624259915792612951481199407368145507679980705768257798582056831448975456934481801052702318918369987044123907735774491571282171410508155658929277227656629467143384627347787408751410846497132699292439374196197734148507496641747689944333446487809396296685045787422910360879418992892632265893595496117131280710940372460158723295382190266829415397175653267297814602755417429228345140774532927260551516683838659205503757135640215320869877612042846432795787458215478783715379430126957559657887934411908124088134842359781199753416861986760179349815416787140115803424979600866828264310173050760828856672656187901648562024194758553681339549938299095455487534638711622325425883416349616274345254226401798460402000910035060381557079653383247527346318121889436801003230531605408815152229245889080889988065220762378227710861240115954539794153698474706751968758438410434853626333759832751071461743722312674837647658532957161245178860196490551033999002622104117204967008712114574297784607578933880916866803225257960649312029784448684924779641510442453414314535887035366711233038127400844305868614833928391641705077523825733306668798085044140100439881676264833076716561324858832271233112127825407707114197259563263595953455124193246042670155116670034526101587382108779054376313390351667524079338922196740988703010058301457394001081694607161465420540674159274042034288740901746710223876251943692360256106558672006512109433999256122425218318665658323739173822166905729465043612890230059108709065982153061445170998727755065320317301936353704003807099214299094052540977655374915118465064379938846714755536564493224437688565398679565407244977613659440941571775539009892059077493025593353495058139707393087591492577877032258012111075276890832355720460547710316169026719932292630685978273259530888578903262483684200132520139398135962574328111411912733273776902652534408633488189697411927070541494463430087583401486739005945260643945819498634985048425977365559851402773697241362873640272073881355952321179459634843376985494537453124782796093268390735947732285709253835731283873697844928953924174981142321592295853590822143912224887476053145593068161249169104852448441527696375042630856814296863866015265550640806451366649586067629326443977238388682952890034199704432022723266792615868963521952438305337994902804274836839041042271298074212864749192922269463131675126526453590796454627756649493020899441909229231661636397452869910293030260857337921684495115900453788235119800310019442258614251783190447575904050685629493307404138319510010931828558258688968662042884810250696599268369728479437062904326942934848556317746131767886886482365241550225833777505091721058057667641385947583143116608904960465451880639864467890436761937805341228910074776357658980406692297077947622095922912311469135651057187184571097205270102183575210163193137330943427938366281585572237372268695007387492873923579333741802718961227003403575259551182290553758198703106540746322759532346619127092294825441433285277818876820049067808638486274281484713910476464286465536637768864372177925700066934388422937811376087143752897337326269155898447114273168961874850916868852312233672960083522615706039231574568166560707697749111753105712580384845955125176811993816610479578162878689182998206649301466405752856121396579053863323316239452228580444129887393653617813953739571819680283542187744942567617662940241673252494227366547270293775117615323824112384524708005112228901075718019162212741846568322701469261305718698306553980765672003212980875495774379946562092919930057760968307351848802333243013291531838227274338173973430683234778144332837838954078423737994683719581426467851000521469043859887407019127549316962843077363209195221382383426218263179956304084366464623488288569683132246966813211925688323972764457517856453829699055802948711516122178812944762468314017839958879888254404804121751509941597576867984632586592970279516541836663697181099107203857703872026806916973474430142372824159160493612922450282822635880367097450755177443202883327290169809221141951422332061008394239540620270531421171536384557413152768367319910050494295026536981225523626876674460502738789616150409665508179354230381065136715846646489171835421807747883818082106827664454692005800351002622246428630223069670859889033283711754179311254075056897922905282522009240836155892070170646918963106412034485796393221444781246574195296632759154314454633804710628249145821483846398544495353409124064823774143406567120696207324363400589739317389014216892401831847107341176176764180725296804581073417624794584278063147660712161429958064618110692717301026106624774188582960730600797135114593924609586444737354847234334233297488065694791218712730804502336316408641499637683198396160260302391430167746117634336521764456653698872442665717744659056221564975689527819601460056545773570374748895173195563585639988571443382081978964731364121560956214956083546104782682808094764308414023874007290072327903158777625008618196203502912612293304409711314656919879195624441681967176035558877184001291741368363396111052994034807906991973918863200119603209971138256644487713525643347116557089113954695689293946227405341592628768860257418656150991212002356128134083176863367557179371192047844649349217311878257090792844154946922087148432223894494728700286316545836764237949191208326899573593351904575389862046446517101086564462101719656355793567801047128674338672008291191042274754973560025438148356912338138863942903377246667871902999941881704991635415159759574547267146372078467229113266759307937728723726509585417479531511164456737517668351291158250018394202406667069033560002746717146625535602797318761410660697437453544157944605360473995343848736380369582688870253316800335471330456776082260141574760286546389311419587366154940170442678059875402517274911184577769428505552325374917707735079403461503825501054817136759081770571334606395452703734041792597123795394015246125249561500983027226397020302849964591351755400062257721772990314510058142163537094589984384833438304308860407902380668462520147642894347955272215612318352374074935232500855356032743118661784380025037762345095450229152555566834964712042827579746828959127517247237558624879373742467716249832869687868393487736396772085735975502838842068357403807701598073648909456637382948553180856760170430182447725136862535514870667067364413582587818342501605572997590124918681158621750046989729343172337379934881237858901143758204640164271138693826814343056025673087423444774563568795146155432010383113468313373239435429869752246256521198495198878174024169462603892134654668323898605745767259640763221778397061631324334352859206869104408515286494274509367053387475113866041219108589225658850851275827440003030777570899776888776271624838190575085666543652227494139050533367969367570034013331129744206165817277683994538258977068253929323481003036500681116533929961066176924183281646814198529161947650449678656758247048366641783916644162458174973403907998279950240868573140435196270362185348480604834034494243243049407552218562927980405074604050912919272233732982522940345093243001117025251303754986078148061088419339937247875868784058734197736256984544433283696248332994768536265855946044776648291769686183361542896128253377744026257084615572467164833365922148833303887378300436624216713020493447591978074544438684024675952475498854301132643539459405761775099642364175371084411724971044644589764317288724189887894774496628824217603144107791058045906430955112962717285314959895411211871054974626753228273130882915182253264701828345334424296627736988987186831796730485872630600811984928012703942657841149563147985747525139455666812380495747490718876832436686362632033786833509631738638764278120433896766059059877138706686133521591091481602928601567731752637610195011702896658097307409753604346318304101169030061749154371989879041466694706296225755510099504309573962682627594704030740885484822490234494776086877352982436023688521939060218921640342408958811881744210695343122011662556205404116011908567210475861472998594621585783838640625230276246793411935524197986662171162011090390859616498660703524506969880117666383039363828737578175555181584850541081108978737674297226846809721091688564744083646413601252774905897738969351848860959162033496881755655907946676763538283238614404592500452241738442845815969843401262734443172619149061389505505973069957654093840292147786150581802513911132934171567442547848122517215979966855351899106131369476786331248239888566560982771705500052640755680438313989947238902930659749508687110637474189458968507041858680842792381089080017623779959829752240094057425378462356510361554306557128351330918260247179625336575382082672805376191969931519152937297679309748796435190576118072003149236805265438757042815574081468046962090211342898984191591884323839117471479078385149874236171380341593870302972744421579597049842664008477036821857027109073615117637976753166216988999504379943885057912828152484766671850309680947572032839480479528723091691218535959927976523097218844441170455998590970408985287895107858194456089988856238388439390066927205336917902579960275708518660931424076346430547425098443514714009408089924057703315643267437468976497526327149499288478499606372452074046691409794065984942384118583957831706506089859299291989369080207918109396848847278078962423832976125159507854347481178012860315555295899819788342349487473401377539515684244111007209273674597670623770217192684224367313140228122196505218669043038471903816858367921255188933631498752744671264919374283738009600443872240344227425826510191881436088281517020639060207585240412947069474243576752746450609321691253607210356412631217509608752827794788930502131502328211082330960202423523676392925230689653638149226464627633016381418519235700359419213285231294009096175178197494751066583369028599077701228135309472031146116156859004190431776736731258460907559751933948245422292756576765470113398723153795916161978809718015715907105473225656180661919348506749385894842794413070160540304254048496059877661478539594679058385652095511344151748326920921989508543178178419004075266076708046842712386680400134334683264972084117015584776043532563991605709989719414922218092430451516455625294931725304233345893445766779130790096499403360648357140767621188589434719901229676266543725996902433787248140823410449405418383890508172003690632822133147621309289149630631657162282210349511008904101308577932222008211923366884233852583176755729626393272058154894744373643497645727373649944332891108821174401746373069625573220119587549068550149592593212448709573389618949589367898316414899617165493490901422573450886896176308446715114847769736754923466361111385630387117704289713802542953644750372240287305351187201054370991717021136149502629897869521418465167430660375821030857964672257922233158683047077360205039891632651113621417568190077679005847490990088306407512021220328433725005482491463709169768841317787436020751440265328695628152742062729865013575585086317878647050392099315762817687011222322839889761884371663025612259437889792219830633268910056620094032121855773991393815973237559722942027364526344863502054703921080675354875275365478201873808025008831160034361022684196105592328304155211986831545173602792507522112475479743977684853241244581317545987657518871776910702705845743260527014070900228637826759885463503725260655060577633963801666317288086769260038123597969243716895438196726333569452527986055323042994697082049890610876387894419456683073095735260979550849555901729873230189386694981499216583716869698314367621188822441069831953819708678623928383103319408018100544851254571757513015579119198660902392202717348602499981695919440121124151144909869965892541626714411260049889299559507932665476034210088213830827543781214701106261878752543589487372625388335004764590054985438827710085725090623098406980853435244537269571350903899795316976166265997759150698473284214042642071310980201277694562155056810934498721300731478448058515250482049003233774986263067127576009475468107848594215812547730563001637794072604200792226894192860579781387571751114490459008041673662453274246006505903026546956029543923617780066325291239776280196271352238089414242316548374285965346520820114214340241651151415139135586720158234821378497623714365540397938896477992589010391073061922072547166703734864916436123071859980169010060252267420076851477753832802871570375609176142090482228962798822860579902770665163266752400097769232961629330965851678940301352155126276680020119914426639619274327245203140302431057863560672107110000261427877619734153696572647411143594140623101261754867211047806994347835177113195893658084724448366908235881366854752142905700591730996159513520057693776391090630736331033393670866192728288681064771932603308423006632401822646638154876775859066926339957385751465936024920469111705704967122970544611889791389753768871132348893968093691005895054402673576602435225692152797228575296521995893773418357319976527786396381724289151871324826524376770936033440867774831693218334515569582227416363452541499644621764379301156833514926914970979865343914833142355543086948706894929779129080262016110353146347676989860498751068541113846279179083599670569411172646097075690740322106266400183349977649519461387758024780415335554327220166983735318324806871645943921413988034645679170267246197101957056535774902176677793678071638920201475204339745902606211205551191282669929369163752295896942884435097003040419969646784840725288861345740702543725606116210482654715773453540688354904265021651281474732053635210167769256568806140083996894718215425708386351104832597600058875652879223855701535870687296980453063245663897012521706824577888268476330447639336483882180860170239338862727151193694954918782543891157241891460189665446525427479892515489130034566519524459766368587065024032516817086142851769831947353959936205027660889830012478118482951099742607972056572453821219962008353045019968557958027592406647822101880412808734686251213226749716639631051100627088680394456919461461331979292010330910966030233014440683088557352593271920411837416289967963303292560471336185246484244858278342094973705383466771236329633230318262299999475902376652083535269154430567892607619982616619972540546162769170532697607797398884229736891375183892752858904086170178341390007926752374346031000118293059565507920974836932591278053005216789120876971236088655289239284176299129900003966792027875390355061052640326025226344831438535253196024117939350642204451538985677630441277946960152366418368952141554711204950067180493959951782062643175176658049398304562797673007151337082244535378289686573754488750590841018447388777916808974693932477177820086490291769996967926396688708769596161528095672087413232785267973353290386820698226626710008016130128874276721095867731621979413776186325297708120245727142332617464412043690480110321160135515218108728581617063592102699851867757958917926388550588436882672115980441428282735891122257902228998827394173516104661375092193403900658902869368454698437683472052913963299508127747868407576765757782701574512709809753279475087501916396503781123448265051061356872453455880285076165824728862710930898943980601570834818060903976336188824701920714147991988339094299356109316589614450184014177642531127904813831884434988928142708594530943753234257233014348261481227022281845334062483475696882550119659575453996861765476616113596826410938310252192073900213124228299854339942403531964210739227652685652420338471758366812346540710408157214086438460480387030426614325914291169104207935117225970278162400002512943496761942141965274237613736679830046687400853805688344820653301525905951159216368499181992238405976377492355925605506291361304739974540894762102854115546981777365815569974300481241524961921499998258619202355769917994490440598596933199575189338594042121005298630154518351176705786149853617931029942828548511691973141708788591450504659125475280946970685483463687384882567194300766091241351084388176473845076616048008333745533571191997720427015165427936493501306479008712758896539007561652294046335298675516439011995872479356878768402772485525929080020320472200449283080375566914739888013571104840920650471743138192120648723842972346297615286222508940243217950821947207146395208933535258985017420803620546365418124109492072772563318471922267957429157878434146812592139756862524960546234739638049783430202381380926054368808050582310366387185838067038382459892675881344905408015577099919460171348752741540350566712591680661008310767498181353715672412570657493302862975683319889975479304050245196273054660392836506519252473684206058529631617805670815158946838428980706456621302284800515696514575515823369978025006797652244410994851229832145670987296427113999286399897305952294311742461024295121294085486927886788830991231243960986580010657904148870093753294172099339271696075759570491810606797718055682402583313845968721564604414401214930095261203671868905742350036030592979417927926171653643745180755246506023410919137114317284082089399443133470927631057462202522838228328966644654154508554389315970174631113034180760167043782154478466982329074775287923810840969386565900043923991764207722730842634678399334979193244179493893532839958183945827688488290737951204577199433831810503960594986742041643315295004922001415275001219911084698641502075269106239734566736106204494658137930241686382290403086600026376812434424419400327287883915187145360911791876743563411963431443052445280817647971243796173692999690487000747072057660812035996885860188852787587554671640499654066955454024468743842447059470484855074513467605183547214908461408893642126380376335527016864901796346550896360234083925852637455126445811326891461796424394634172427842874186023398134193278976094537685556076120745468881551747984965650212758674117232794197430191102027355565005963269740455358690413570159580670475278815904893404336536250807064341435467205280829819161876567730592346201667195017331589375483175313068866306016053960781501849970226759672889647253005652627283225318377737842260774438881059093735166941738962872717224128581953796033881017341685103619225902544913037239019721437847357361639383548345749676348529117559874130743391496292159792116035072219867206782420631653830413606625899644301591765624472661656388613188971029529268667487338909018656895193861799090638644458757756167163429904936891181370722375945096487308698395429832492686418824876778300543175547927662136746113855129516817370135662173681735524676305139601079688334472816370191776341795846914641697887908782860992552095449553725093347389285146327460015521241865010802292849785470413271713731984090738613886752155700904412789374194648406924393416985666094809602947920699485774657777515944301433783772440115093902191356427699664315552941670708132555898775145378002982527978580632563123163517982986265665381131349763576639724853382929305828717318686686706949491739576343233051089054955460801505148922199604962869400755129414611664262221166279270259548984600826520951790274872916957326685268446788270665651551634091983264748704249349156307851227087596387079709258160957486185902422436798210121308221921420657024614989899781597914851906739373365474096342430988570312753482545346475765295655942690415272224154492095491689638039588861991546794994437535413585313691378057044166266731250709509919000980360538099077029953621097594320613974319794098676217720383227734376367740667285218977587996700003495049926459258015286475782665694099377866011573709202970826143507802303654199100656524847413814115245354709291459004240488909097281622385395063860998409175289857188888091019413681893705662496934040304170392189395092795517438627488493454015948982161347205234475742433494674215237112700200835141826829636977467711284113877153713406016440544681686753682957773520758823063268509785396101404139249447545023439187657147817371370381431006629690420613549685634776852670618122759858957213480981009978683844714289003367420253068768210533967594263689018227785262290052208500396688844148852321899819862101260085451923352898992252186056301511379162687459037857060699632393625587565330610123801338010095652158408162971331405955994272416756781553992698384997875219729336559127285428823423667938498855343483682254185281087187198950213245866999904786833721375067036546526704875615114623853214972864715282709985640610314027632940534980877941903865657778211617305731991962132512383422158128074145692559949922877644869885511848486595076319826723693212157094500301192038044917086611819496203555630608606186807234179495665069567981522372645491548497563474854498745567320849473979201949138386836823391737286497587510635646570854855859385707259023689314389647290563569841140869425232000251891186464004548376696415821875795249434952083346382068159743663121945244827479237365017657758735505486027237674609040400557358426185242867173060891783128506220963629001114696651297368735066470741011947566874862930156851685961524193252499505477851672546187845561691102942131214285196301963338892593749760803387370815213171356006105297291710239315808253440216366579884073094785092999201315823371870611890164836569484638889358986722604245351376300543528219737331410508909229295743424069557277809341405882679547086663128374326207737210907069706429315273197525741223490736724631066485500432721158141480048538231884937644656317355386818615057761982818119987476449551849492132076359737499141716290083250009236302645548067205894868991808621367375549428674355854012698919288261368910922765640894752004829515347012086513799047391861916185067398807243524211193695311744151589230828837015283294906439380509874776846815009293742202791264547817863673441406834716905657666734088147678259736958582991619769863131232794814355305906366808767915596694344223610138233549535424855818444971313965050041642308374390519827410198368993085751455371494014791475048880038948911295876997662302051771712271617720956517953427549229360557012048859255073700963085302658136792491363825806267305420962864833143250618381536113629326859032151865032536682511318748084806396012314845620272079021346708344854772542580718760101632443988639678340541763654490252770401493159489392479109463340088913028880794738757515902786035688905815662792053352361890365615801860700360890835195204933924565165540159336588752849634210199424972467571488190348135315883519428591134672573717218373964254423686483820308518599628887793517023419598800680144057668718965263390162744385489756044515002571372359814003848674832328539306977936794848126143485444054169099974475058138706900887259729781939271344339869881862269284288802109965082607042225682247075075202661363849768864142062708393298336693000693043656046707783696004936061090750253442570281962228652892519044883400314904363952045615423064309766459344436066379553474394445941585531681876178552162729200596825174365737132638139105058314468273301794501151584205287958902436467151621871827415586050662011540589321686207564487072320614498162724471984623280982133752783272925073522285228215537749272029277900520189435642834608002985173659313208261898447843737030820061149585165099695938589904705177346037505326253087279964125598662338721899979544060523345923929691494680339535468164056164202555706849469549649413779542713286950442344796377301447225707253835561379790088686926478775543885459850932226322395940029441991800840791208817103075142631090513134741820260574156863645107614746487996565169040880730965604071178434866673202400366165674113414542183188669079032525167684746274087825641514293528944685707213503323154974005567817764902295185157047801361351086204409674228753677145463927831431201260705886991599609887372454966926881534130383946239013915940531755168718701319065486244119206093423845251851745951359584112923435713079993102114067618468519263153880549600724892274995565135798592461123273141737710124088058877975679940455023251177748206162073351058304092621076122757010159915332998718595729467170476457554370274960964837992372313928184235082996625127949863717294779630269280478423933310482157616427783183537843455169169873578902840634246932759506981156648281214508931726607021676400649835671864031090667893165355004772205816769529428819402402910236661087168571527002588254972201668740431394801371427229942691501684979858466412555780149217638321133412312845759384240949949481922344391503786368408822091388699963699073431027426782203169457698534210912653928455442765399664708091692377303374814946494214754377402100840786626790038940246463346047728976944738072455742814390108874012144911413425524277332123856126434464551623014887869949997563773257285944618050306358873661455278689831677839549046071933730656665129924531093301407346495081058456489377290582688783250630540216129420089788217448387324479994835249766011676916710866243152934188782683358732569418272557491600943881036940293660784644286590509628391421160209100679040149864379913012618679370134861983308566574679686519516445328850570422810661761931621420970212092427024161526918341682780467857467071550880723823822288244870267540245796660342415670320998571777609457788476497225903900195614400875386588308586771062887332082052919823203452972639255195978534698031437227120027763767353239687987046175774490968475399507811750209745055676691256273748572924469145254537766552052425028566251021201008913449175607960771661058976894975621996322318418563449801857840354959244309110900962799315444595343327779420701445016029502760457051478527409373233856412655397628812670851612309360324623987499324319552583944431537135164739812832065497933820685103155915506863819477260283305406073340109780543240252018567533397879601826389428785964776826330154340303054607989017637918688747571567018117635262032593713959775577699764797521021041798608724309992603759538592397224447432296070596866655422405809044376209487480696520777163852436373841455229996015202396842670615278574111940813469810528472235504647951164941853311462174354235959398431696736861417386001907040869526192293846393318011754812891142861050485654430133907645456628449215982932413013935418703893893279548184934228175099039039324103120118103397582269956983352551507956645178127801192118366178625606631725653034905930968922320007091956547573338460532967473871218814089017635710121507895640114556521698756509200405495585286701324088256707180469949424451754386056037886854011383013963167823968108850918255414993945572258633933474056731872608053911323646121423669841419608280806737190686988142123269084710984837875103918505546545287031111692942094294563347060594175122253754361631193566388829854604426130526424102913914811036755203125422416091688215078341815428746326319133699798793531870755692732126779586484818018841830718404998694205580454281000428855241271832364806059377497807173615907431760031722782750464816665590154042940881643508883270200645238001790533085499436532681763936313838542346302946909394092422353521602830802787744218136170062325391515204877940737122167427698892201550640193245481975372908270454094942671652102901541646242545783859922456843328540391500220133558117504434244139082406116338827249109583622199586823936460088392536205823076116712746878855039895402745116271167179910681082348389455562187122690135388007148053898946326006670242738212276776256550304722102968837859458512387124827081942642441861190155245656144190357396490687668679416498854616061742158030395138824041740876371918555466379338221360967430881426280871266671133062766671994692923335556590194441847033615856925440788091865541813940080447280208318235932113618046375646187301240115146079188705791005508182692639095051381862576589958106163157214064133469875213086643122455552667137530021896633036086151732921439593597955097344782662581609574770300655854432482086761534897132025345793750407908299498377155022836658361299999218115000804479576364127918714459760193621247359975422166106328695955856743992462129581404664942049694331714334496743850092430844406786847236947863705440153298391395100024499836827427208029152400928951434248937497327896651344866582547514811766954667605612621830062208932765619484807732741864770241662898912610524613549745305261682967354684458704686063165814185495404865647623080383264714895429108729318353845810763938052723409776657461156756737072589559078353900094205857266997364150525399835591052594025456226178953075647461574046340109547483331310866210139519077877278470579223253658098648897445214919913390590695600448941699686291945816417376697768325296316268485574812102002421828254118170773776412155941587160714405967172323259667784378264658513964095882494144835294888485264587905986530766657116437775090184385698508389510270224014124766723114341603644564438174121155193970336610800182964850891821778818540238809000161141122828024578322811468522724186108515304907164784741687135748743709204035766697678743855641854691352178333972471660133871918902664548056756035775815399016984051408716728515560699737752155079356546697942343331950815989073373394254096808423296932495158458287288670718376128031522258688237669576476882325438048412139287912384743884330389363478312933365168784734969065669218276051829847867065984041704418164449980574650635798656701389304033256653868179666147725627960138453507864387665228281563022294706872946077229623549644130725890040978995183480057159997625266536218020047788538164245639470794451469672576415717322339013705693383949123588192756835208864966921051302901217136845512345580924619355582602139155703590900550283738939110326336709566487930768497462917373276834538794498707228915241002226026367198004269435154557702776222680233039427482378879708143889239766184004946558796335505408074472258862260604694399051355441220368111529393575587059268540335879476702456502499295534798191130903053346962637121382422472341463365080769703381520055598458549845952933453052274632035260711475396686741579195482951426463200733845225571244161673120937147534313697040834908439969713444972990873194214690000240711702293404014953251572566445593146160440155323100136047921233192009057582146125378767884998331160991314724275078685626132804685238500646198087776455497062308354817596715208477568907630418144528112568565317215925270341473540154672931972899529128606423009462673568690423929224584556520612508282123782441731541619235480695901852149271651371305261988390760628550821476525145099396444125552744770809944711060836659222321205545782202769725776392304054567535465199193654882295512172189070162692766738741960635743461011146155230825237562960957731109962209379724097225236887425009300042886970151803583611644026546252870828620199902187362570060857536871292511116952568768977858571220652489091859704801256136383293732626856171012327969223813845285183414889340370876740777705015757293107904256622773567853123490028544316500568299183616998219942405791832284764430360304246591542213704964857872171403815512267215625053455538670069107062464297929011369684001516181960650095216230926031411356413049267695688745042692153305168193007866011667710994950738205547990876352694076759682832185737396121741805336336024169063570294646944587623580312871620988360357371688371563142010322409503505379267703871932357555241502668108467110662233929303823989211627122148928061963978029704108304535346481482962446226669158258534148759727748005093079942234222144838304866760271939679503874173531923237575385364094284720431502786412588334748135309848688965026519206980203485987883153155306742594108722059244482969296540807207730938684828680779550678264633111719556628745586377439938342605799271766237953535795789633791399660199101800849501811374198283257554769019200888407292412187332332230520273020027991866854749476388712319934086145850577341477954351733682086049986220056383372584365211671794526171794723964023928504805472587518148419651516333542652831474504946944653830904774759895713108651325219936358042012427887405551335204220594567820261384379556994136505016669023715008809377081823668856941785374015297777444176305505931625407193610134261582553450574403674693441484024460264821899976288933216432601228369831209359450323224037541710610806771494450030724899990217693617649677124820562635652810034184409411731018208775568632459202696048682150358046222138013142900274370731861016389113065652437691336083280235112795386182441390656176887756985600408921788171816573305777728479836294201615761349462115765604248512505700207460675673545547942459714304472261911642860118432249408661519246502532201043339677963626342427298833033711639029403278141633267672941169029326995865413024567952643215562651069933638494400386414164077700177583701977103915361140654263983781734986433905840166632695866624996516780733005009609713462411899745972287604556492118445485835664663454729500490251467258884604755533008796766601507961906173399234036973691771723657780080530170154259017812497257255664216924932326050732679582430357074497195735593556625596140216508153767146401120812364430108541708817929388244119633870095070108317352991379840619920128960966289194835445549468499612677413133741921017227776530737952868159635367666157113058389166474304809291847747767050967155838792947644735777931136942039415715008959990708774023083092332496153618975401573384604491583765751449719153063025175754796763313442142859408264427960347805351165283594817067081129869943930178245311507573203535126396895807504427452937672875323228476782433364826276201207730653703237999628886434561924434656800005767798781251457024136068456381255066594981262617519951349802120747690375812753052582026747090449036913871853403535772918955249254618464743093615425816986105961137213345410291993862029698193130377857417014520334651666301033458663092720175185924351309813129102155711921337405662683873152340784592762966561223508448465498516978301161932935605006433290543869072064825418584629456671408694148640279820674875145567332941762744496867190246616560949688938720976152157283137374930383658123422273464204300241869307101542209183666644648921076845199536584723321307209727137912415451709290999102794279612817947691516284894243584016614723821863793449474257444928916246502139416738135211047397494229524777051767693797573422607144454150646441132345424277303122683367902747977058315852779938073592634169866938152009916297636812723409543675871576261890509858875662537644077863411987880447958778344996130911098822472597316649509927533096245231690429659231213871251289293218900144390079089019684461782838823636385487628931588128702697954469249474197564472855880215317179227998471091152518664495704716192158493303185854995154867835160947007655252707462254574388540368142442196088416819387680844764831062830729767493490895071222007284149075855504042896616805817949868470870558733250410505473300522755987692882991061383252215545629392228248336241636873151729767845308363339100557576026474334142260390207498501964461287117124376372454316307612267952782938042409371205915249358290350925767453542544415404504813254568150467771022853574184606836295172888497126210747422200903568739672452416506889467377788051570440970299165718499003174671515652255044325333596876040540320362641770887134252054409638770232367994893661731450753208994975920246450389338460146865011217517056313476349664278714282896170381309098479924865626827293326610346746898915909134983471302932328621155442820746599862845013345168862595736925779188640651760165729753662674673541285417739526385177771842165537045078572829594412891323201832624052355630133163245260880632942616409993995859853303365415824489677647717963788494588326014307461969868954674125809621383700954393596201382488996432419211214902056812159578971922704629535411611767639663533420217716996067599823520982706483311710215404086078293933043675683457962270728560408692114711386258437327827649506605819155967549910022590075099245380764742407363161348979856416732895004126456097368613131207966461418546233841496397084442041321152723532724670675884606201719057062882822162903236346301603664395228858095315542737258883197077517059155492927562963739401623177991142214938928080724234876195502562707505418880229011375551889105601963249426205627812141112885144991298334945422662424208281994562810389275587033174672214989820058381933523448166840223725382758433400156837707317507574377571330589821927532190156709840813498200579310074022867455947771009868195963414890569068010069388115694281339463610279891821573573019154495146777041299587794945801606410424338096259124099358916993459862233699403974368750855184537546630733526159214772122567393139110751622258402712004987352266769651503474761167488721054522509434309369748672120873263943569007895597043444496435010196164217334983812349811470897533286577094480606242504252349693988562855419822592887493888360055595557820414472115765139030119388348364826216230349472952281309751816920197642961396916906497563090639346283340183147220110013310053059033920503675902092198054466274022519542696696647304722285261579947531660447793099753746577366887888000167933946302273924366652098939209316711995917916869325657881977564305189958564782116036430055118980419541997228589647361195545310906048581014316231323018545179243456531102401722583320524448268343272689950839772168327373751999193788280303777523127837690829805577721517419769232261443472255768078700037350604411527106212710422533690568033659610874893812873914487076073717299507583755546341241163861237425330976316562853464624847787597030086735937132005482986515553484392221029557593405539869007897580882530549620057670289477000681851144304790399067071296843742354547114888796428449456858051350509451886821777220363999246643683321216293484285518361226765195166129897428176858348839092199179273945690068117598317987836649083220817407131358177332021891909158884704983535661724613075200400853598253223125485608250677037201679576190969459981471842878540144715980937382572322138397773646712859784631379139355766449913363537817445328575765163391036809561371344109803106431121081470747568739544868948824570526827807041253170893243152131370744569587259372582632447581944975854023530141590356517482316574428522829435256382294743777065770547177307606076975366924216432776234678524530675603890292775715858543831844829851406915507216261910852596649414659978775447759854418745479073060424183388311733258693279565648596127047789039108716260116779878090199290799733328861050346484581114596120142400847340418438532806239571590174054890479728521666303864464609392370737216540551645925388778222792364911623689430783724711038547186213776839947591754385602165510678976930297486242476109712658316091316482766850946062127170366375907378365183348355568848805623827302194045517658637156200090915494967888069314599897025416016912466257442996224448761282291255812153605289162895261219059924863272831618586418172797764804156273494679258726937775776874579625557585430729387199355753594787959613958628257853146036150641131949429716414422559278724922728497755165678515923029617861578617807428718765754669813785600961330222242780513204573556392238196594997845935788706268025065959625103922287798228196767001340365276896727465986230211983837220050088832309671308083273900377506271771088767860904254554468287625173272247105750830379579756640892919898310196082145098393885742153832123649850659601297694199922954553716770618833516566156114635762220003572297831647145985763134122884220351789681094565350446589789536372824425229493769439013302867259897927293756840514841151390327477410638012661676593317371156194789101458097216808474657501887404954619618104375104380275791212078296013424115271336716541548078965777604443194131627909181080849723366388039697741400078445572162658382922807514585764493190510387160009329509104070331290410451382111507360782377258471609829178241694619435707744118994030007937674892341833428541488100455009146876996290913535555997989315641041485216860119418880679925400246525921595238223700996034339812550600243930848725335046703873476740532276831638154708847077128086630583143833608776184101193720956275407456633820404572704569108016940867989674424979004000847564438733711308315229562520988854956410466442225753768506502063316211918626127887905642397971891757890925030559419912211188360582255224374241102063600698656681302655143605365067051221868653318644554934979785402487959628354143635634498388660721047933815283621346345464640140244903596268557512899413711990332734277929857074263546772680019315311398010619570515793729876745495325693719847601417219303679751349504260498083833209423072174927515818068525763837393782449036648113994601889212426282932876401962213556860557531705742312437476441374186429068886091177168324128972051764598591021945983610442348616845290236566658968140716575938259512191229353745144291039172864245999344155507017252646367766298478262621835691925713397102158451175644311969385987429925262786347360532645282078198887413676045791699133100114950785971017758584019587704568043082270811846238097290514732539167051888325818341861642776381360406430127285700983805995130293185947455986540314260677920075625888106759494671669888614326045036424581944988343342986816707409006398696623957418856893873867936548496420914886398881453132691361610848623143306785468154297580643550158113716120706882209593373819170760495074885921633533285183090282623551282571345439936793324240611628066285914593746507286701298965336214175931085567159185367336183266472812167234427507128406368733546819640220535988169315010594880603640206956581819308070449584141142025547327772464044607119783001432033438344522098565421141296449021928585579310892255735643033573998160925099197485320807260838586015974326947851039529656289720428355254988266463841543796005289006620057647169463184927561613478393429454310902602278353979260969435304175608715583877494063937598173198863960059572421773147357859566332117326931824022995093356412384263083753666188106864397039264604756112051745247448498581736786078085877535678354764349625809956342290031762414794683787985849910574939991761911066541865227804282617551889709774855028805886737034839373412320165087076200575717963174445667395036331748099176218729429431298689174285689847229728453054731767351615882327607956055807415752920028578605308951780195941969360051938655235071211555749439036196283452960492465999971862566921364032259919178154633598876474799788188937803249558690852924486007158779323833419950404163133150513773632837853522418031901013277746381486539959877435599994178548982022072959390461225464622842815031127832596656013301414686651381609729820451265881502387142453220074043349962931706983534459465326972669326429335178858818863128464371399101849843411721250801752045905971076159065996746761682032837995365884339351785577814403764928643923338087001802346331329831395328452072515741958992394286421355997720957567393881719409928483224418960301608279631965357434426926860685622259860934891027456420566072362833369244649486471600029488525148643745625673182778012728209492592281683170674221901059147148895858912979538221652321481303069192969167032711120662309313203339710440151601023600742043842109894072011162569301357599152204547421490490743653172614375354626318036170473663110299180987054856896281133160250759847105136628652899541572177547890722653079263746291237967288444290137247412577674154617584993068294487136037025521696732344529628374359458327386341677247554884781099934587864447394422229243134324124582531342540282206404804572308735237146689543742760803483089975102581441303048548816944338641026693150186269163162399179227065540473922095364249527936637928805119374081605681770294140759490250143485302204273348581752948055922172592672877888134209401551987744636963772648446745159336730174179268821709022424305363428582660224425285511971819522308785183305243127900478244488707902407458911321743122812849326860864248787273594628575996758265346745740892238664664406539104635473502786500387739325494962353853862563647216463918861557850557491984526476309982419534820813322274901460024490377060488309171176702226929963944142456700015618268952853474208373880183276799040402320026167818752139718918857956760745578456784168030517219043968871270540325728978772178058869642934877145680309810233423727524453906896983723335898637277076851620574739048360956267897005061726289464803462803718994094233394928615267088796682897117745593001164975755286284446040233550650506070498049493091316376073288659587234007354834880780197677446872635486175635870887168660981866536422444762746662896495629945981342015638981915626630775377182182697571629196961123832210979717856696860454402586670252967824563224987865373445904289600001296716432889606648891516948845627418654207559272458914443016419134817241177519919634929896595885573960328168127869456208787339448993981473540472942634499060298132587147066382724377104710059289698830114488497024619272929027769839851543785167627098974647250305059102297617735135525671677338793581177953485375473829008079282674849755588240754723582456885252350127548333145625842361258659087268647914425197796043710709707312803745110803006239937851565577068083255937932048920490730905710296308261064335473035461309503500072990808508227205586770674662066932513597474105588393582204630423881409313099979557757594997819492571032642002868536321173298870997839186458168615955318706673479922388767451981503961465914154241249534207031877771770005799634112641918661911897147093996020303497955573764553575877645753156632815159980649932182513659570883099403917760851181148006292437292164650586675579052698177123749923611191648358511189558629592413570557356069749875889787176629964349256363218448436485833952444716509333681208133564604490584399123412566152794581436732684198195517120456245588558294948654784325553439521030922445361136559132757486332787569852055849824253217089095062356437723957084939628896554587306679598723060969283899227004887891582940255133013597799822251994517048229553459457314569578291203620857502571172012351587124856530124782364143594423886084362986907160013071154700484853886308549410264995528361150977489544094108183386113053013783138958076615140929828245712901116364813337212837262514542388304524629274296124935801267648534960553422122486624890532534637252787323223592540939089390888466261029697776339641753011855740486745371519881964748190228908800222384841266453100752775386671838383244256280246164951358809091745433126740483795289775353971471259546804450885388981760100271340828603485681178050598080828918811081352495073755873293880930424584365683613698643233518021790888129616881150243195327756365377856911424863226034771712077581233611803849344455358620993873914762018354113597222594082865573995648889122507594279283543549228483328582927765695751365954495969361315810854421216615672849896365687590125808605647037125099389445787966670104762299184863284572665307734983494432541666620663529740981700460097870300459640438438563913009169942071549784465056077114365894379335906881110020023476931663589622029012458797267982164699064018545978410809472216500036911356779834971324248091801022926757488606283906112999024012727069392291956385100943705517554751936377033535950604513155438224412444471961200313230924237219152859614396048853338075731961741084553920172791773082125701646419425012678517722737378345986485115850906664258223195748861579898068335682854498861590998542761515493939873759467922882964776466848459114424679066320399957320675265152756496983363086557799501750257726657436963939276456363452452861614290229917357699604148013598360200408242098835369879700263013200568209178013147571058570698007401478192517805278003628831029022982223725773852940549651356005866833924827880303175276406548946247299875285221149566987277206764318504674080134874530440384763245510091732024134821123011187168925477900389136308492729187778971133423922942417999003253704507446146628744780040838161068276375304081464058409155338750685337694926779123803385464656657885080439582849056571474754023503387654043244623025968299717091667027129118114545140533617280326363794808432858959742624063075774759479052180989972526703300147575886702275904779153493841029500146812986577098035550190326100132073278972614733659581967756319525854135769017207984355832758080300948020320554743332973159496987329133030087479234601997757040355736644590740755357687831306634203587028079201157960466849190141842168888939766505408857822236202629691783100948535787717793188004176997678801006147664860031454684878783076145975045656802135704838768518533492636686538434358614578291596578509246215296579015109607130093230734169730516243604951499170606600612658448088328241401273025546600170246259585875485701717050506124268465960944293951341089332480580818490299536011050398933559088509938680454311069845189804718031549797206154670144287375182147598654191836365879160009242686660464523426334322218617550397176598987400145303135062276378204048933680373945082694188603047812838133237661551828662236819515446312997136305252305159851464810333098183916554429692639695536982488776675885911945939157558786378935853707469152476344766535764827979353682300477479141341821683844600885281193056547260968216780467010675987452629082088602088132579548725643179759339652226579432581124918197435983095209513275603593180442070779458368412612524501291512432558867861079501519317465939069947728946154179920672348299468368549094308093387892847417279200993979066933956717301373786044296385308111166697528004168613461055557404836106884289645349230384553311470157959537441815387679546935933045301001770653715701727855100562406742005372286511550103898335697040657193707518643933885394296791525908727690189328400556231382217547151332730351287914386135888234735793967088975430704291969172574978763795004180771672045858755776184761619389788021005608815879595625679530964669842518922282881055329812314492483948854314101864203970226122563655630279613528354482010080834268074589694017701246234264990063926619645168402133761144024857702696196890695115956707388982125574946432393130200027592910526037171625724005543628196793281479058761406137924150672056240411663218663827679006778054901652389309228609395056973195059834955493152065256263486572454171779596443578249030574418140083724965080086051118659798946985721689774982899295404283352770525428291797139493772077846419835400820813266957144280478061431159542745066598315977829444760305416098360197639153528117574205829517566798145695778259339345982974342177373949460881821012044558377786884389469630201833297323767455481293308227459999012748651434936348684240418765014497740108213102271581426345448434219000193656250409072380438478143241152984742024727439856943525590043695849167764173481209816532090917212908302259369998895479794515638960231773135633047126576610500631932060898752692857310315175333796243127600241876361201596560575959568796737169606576501174579705607059913658282157776971365971431769958453624451458523960859527422491117660362175684351564310246355988779064564231162296369408481676308593749276257045015211220803965570921362966599055208696109819156675633262059846781097831380555585173165611279880050603826674399337286221435752221604439174810192409564788003431204804138435414174337001427047414361071694577028545886623282591175836201432059460370181933425845443057956419706351331429221220948421677985025003353769614270834863122539113882557289373850237207768832036226840502406235431915991087847780520998237454359005576124678392142045525366629356873123628268697541811283794702585834236425061878155824842104932641641656741619987019597041325960587703754912092443990394108820476247079394941609389394971982776177397591678588524863440333332250182646995424533694820014556019871128390127048444457355578846000072189485772855016431861969336360896578923103393274489162364443851240586693778801622374430596281295511931809015557649970615638245625362403739534608483190266115195910817367055055833676325671435437180583769480446351306281111137078030742608891543142726867694714074865374871141954907148068171629715796854997550340466290291097221096735376593460579820544013970078608904415933259508811976509693294575325127406455295662105742586305532715455635280756747034638229560458650302308878035858027618702995652748683988973158687623675125054988615090128424988427744283700655352969189252426381694746835272562952246923786685573243413932687508668173271222208302474873403876954590273700094406910112058594409985739004891284059820278327007297565103907525270345506306129612918659874247181082167355086117907387942705437681226621570426879110347265555751050212668145809350834820929094667353638233659823152467736348189089861594282150739768866923728495249092637830928343059946898673228861948776757267948417356271354564543569766159705151619893730686508916936556660597350584644113751917733321911081141786089698195643886685548598258194154961554328317165730424732493919813254229414864547507250468048542520748165710145577305811988768660123780185662875562902983754333856424177071392426530806271649631891057099372053953936220739055746486872202350340929726773972689288785335821038000207525242251738726571581489708421426355964286523635440324109875576252453929968882099753449693569011109359154867324902334266818068635108602745360168456163321203062752428866014075638634886082590894903300364007397055733402546741426044288362608423898219578148360044126402522227432048623275230031025651510854594249685609754561327461921138557248392824266991909544854688550418617706709238522147387352999091704119002272025817727804737053905492084553992657874482759422243340945951911195865913191800005711722613431076625998590686183601836151153258618598854417523781940817258027590910484362694331713192632145210990978155610358053719559109784370080415054685852760389848465516551834543360017979973705065823348580177456894819152756938685883590465685228449947131349261150267678898750455099597376192360615033173080813855404100816570788414452608470731062603742403341182018657238750038593452983067390388862506333611913690069773523236450705188202434013410553038243699026365798645960674873721489135695116329031986459452940520625016709892011681654156719856070279958019217435599636698132985077152190231426647222960527268883770247231565922102538498195932693253298592364131606416558122007908871091521477895628170160985313411805353120709751088288992655762107174604993082158709549455259767502625575625683897163779434592039367001850055235445026036222578765404622756254789868588411239987497138815335249810867477046847297562839922139497860141280105509388059029147906010659303239873755628296365583963216334424057294549962895112376872636467324577840117462533825153175720435794718030248255324549111369108342357450135811409225453675150002142487278969777787894675430201437066847231536418072417865226296767774371449920202446624115036892068694421048701381949198777274881549614286796490777620955173281117282176277988318992814660703592795215259001376672722224163921062965707278431250811760320135247891986352946541072317281519015033259988725607247942835262174415226024163569751921416816953575300787317737686655122622724713460570960404469229653337984827607901205866325391349198978689263921448448650540894567616484404241196927088446578680516435879052997997555190100338645736690772612158198528613649780187348763274112515739319566182069745068766410836794290561993018300373273786878968790080124012666020472931020847509311912113611225311702877370220316575109655555050338409338180282732511030978985290725376478081623101881457847112201755902753338227779833945904051880636730163304002552891776338081162878936287177717948306848917140971998698390879871100386726565364478111944134301920202389422996603999070230643892539063471637213130277892920838137779971753361822621746249849261165125553057712060285926103932833100931737861196665034854457688720216383467104417870356240341874278680147409750454312451279213623671011916451008455592613616494332407020467687999944182840551223346076853166141546522764466216451513490209017877806076351132081533920271807327343593462638272853421209329285315940289833603872780174251620756181070140602624972116921973547109930434256579477880731213959102831283646369106239852440270714814398025524002779311632279662370537716922592404982213159496309533583730388404581531469813493871565609177413096781476104333122230724328779444294629700924251374757323672353751457222120837223314144378808671327541244531751782147078664537049805978996270691652844410321440743309840781047687859935268872010278006754673784326787715034902380907548094111683916074841556402683638962761985048980857931635282685151845842629867922523217857850682462808775427106425663376911003327390927366066876538437851132126540293660299698152934838987589143198911864087283985693038480916089519932068818757839539510301693526158165773191505701029091978130565474848682830021531873814904814576084475029834742977175167012306114829327829027574238059568264409711352030664158790798688302862165028327447952747003619425073024482216743674317160627836580695258010622294698544977924682729885966137804818989504038246705549763596747191809774873657319200226703314664526202368118507776906118550832953227109646271065196629219061757887604027301424404576069815770192601343477745953344481049729627528425399350442230803669898853995700138207172615612468498560009657118259557743566525980181161195819092841991491525722178765371584881962849472477209299448461498759403811512036237273271237762126245395728290939478979172773365795965789301262745278278390732859224780220913146758977214243027497914288110935517100069730854961778747634025447152993675667110671172308774458197574234053001178969965022144773705519287958467874863188984914760774677468528088918151670762831588389611232766389816404493080607136068194968148030322967672694875584083878930492563274154801337194696071831976730573968135906923644152572205978386001156860763828498888004737831605790245211180565723264197501208274986408357255796885120251942863408614758790993376082139313439066975665021182410567411676763947111567744776530182223747939090750245438449111683766773672299426550489645039803097833718461024946525850251445930980922456106638300754198746285977991571571228759508768722275670913446903707501497093300893686535972361976170109894513900050890825091302819695996284337713057257586718888334437068156471258786203958555324593306457470740292279715254492586060840832281353238382858634647078063598606132507588873477659999553783555702868562063335050430051146029394292475466210677639305106989025780668235950773687078629830932052678329728170021931954100923845407005207695504929935817555738231645405976731259343238648477285311177149448317578399650965590986038461051901086283252433405168909456648937045614776967459658638136334771381210866808920002217854870873029405022958651612090984560538586713048235901450199247520812294302460401130087981436931011787994064073687761037100862569206089886288313520860469157298325097426662315617477843119839789489442236610565269392122276626231133951731501868055606231282730781170531949651141641953773129874957928205988973261890535064483155568038549121278845688851601549681500404961537666720921907336666246086057893779430828687448864407306639280607392286805882752280354160802715781059394638805440809571469395523735264732383129656376235882267148403129049184390844926580657622906249638134515609786772181293945096677636914106625963616613469230743114852726800792108552867310195579899328685990458913056431191276241788786577353348683554524918030444805636899205098529429217899762437037162406580543816047987290533272550796379629288392062504173108947606946333264508950562010051914847057493397187580314417790323781678526844306137762716174285693553876775270801613870602928232382568712260323624245209575013047409077168269352537990594268196068602046376362958729516872008610829516888329769781503051079987446762822490612126959966339471329683914499904038510504347352021571118115802454184070801312708764651024365356151523930892941510616855778619415434492040781053975392644476065892984779373444721706384390853578409904749427663853217046265744141612904403361640172012669296732156922495601021292353382614083184588825254924833140267234408677326953331235563377568253309864941006188754190809325061978650414004350161119785992718890303107995217225269881171592414321120140873599716071303706331560207208606006991691909294906646490697777431639113111773611177875592426453666269093389192698843366308579744958272252113263742504354329654655324954782959422925053868040883177670979713594490745067718407010593177142346354012475192443898367687980713527075025156366274020372741909608278253792603302822736964291378830364662127319034941472129931784862267197852465782059488823148947116213488161569927574571062663741162002397492556348262507758920272831395162683740580768676305972119791765071770936346944060602612168361021071047067677429312749426174307898797308246970030557413949844457935237823665998870773647829305405115760637069599187843837008538782553154050334422991791425491054614000091878578735410403539400204124700236298367275050280669721271270426558429265367459924711147493187920589254950904340069490791594802921521540943969467153258976428863831490593772255252672581139401456316442357977179231782954979829935572053017989081733464883319932981519364665938005281240764578759046497291116105458216690106451739916239631652574025420934827660564703259271671157102409646407383223112400890135361196924258169571075594290670614154792361439693978087719490699000763385378631883873721014827941904148749760397281718487270246659537956745736951353609033908034784160520116779065266148768189638591529899770105063840273541653120087647934579877009351889512647301956986835370848310979424179782589731566148075079266793055863245509516802204620999545887510763282332420282097744202820353238072802422554673203298196257469453293069076384464213893843205292178016889684611039281902166060979999988153833830663528482469218719405283358789088921526926928843500359353191811367923292086030181653248224240945968944275219963985739685102040886214919443319185518052101465844752463522107351453267593662822147759709714830856739147146550458172640611872674709738186269072407103824848617451341308119931883203119048356286233455412982772637846688739048768208586969431232343518131151356125404591121365379299832349171050850032789971049624965227248208598012915593445573564358403448714785649446924649898905445078770961975613254691294677005677319559867421119773165361750104930432372681228720008953879065006072879348298105060341130919745440800490894176697603458859125573378086339219948760180631688677444479901028690578050437538320382631788607430634438568052831350004703754179437733767005693965391033596921635958306409651329935012950443329716880508493876509266317107815708848100024186526688759205688906865222542366798064375201995773800056375538551654675261072502530231013041994880507476855997795603764744994256282535973291710736050624579450756798159880076120419531654144933299488574638344969262048137267312258656248444458014443977274381313489002456603543169342277760596240656098663854245381369970665445264015790996871904474369266869032354000362232525416710211449155045680157787143010295212762712185867310085207583286699688652284261914699573850840139785151181225887531179719699999436508561420429035953858101367258370932711944069018257349662428753683996921738036601849552304527185991156210891292498140842964240366868999338466271151169507388354837366059684887923716468511288007797678788118510681423437235461559866029178494871103874384055349588850674884498924142429952970936623756749760153715137710848768929866305331242531919797495330558756049611385915910785355975367594831313188549812779949078240580934045769445979792192629630423819571293574876265096595242452683064395611800557347445236726181836911122583852516201736718684726396673666510683741512467315258474772933014949153922521222785986674117259218960803349579256158340693061057301312284627185185714702573117505790886619187195488115189530347300089427085661691927499695944534749306785677006707302885975690256549506427321045623640573160326529470616023666091969992984127527044146852886100678467502121530038701492975261201750538678003861245570658836199769322009509001306059107076906177740582127227337398426841163497751219409942694008563142118972599156340214636805192875495432642527696463791169577446679231069960113994198902910796236211811891843499366391978776257264644208970283067121772940550126493117989800949671323018000295175204831848576192378707379092609046833840313779588566418620203092159672500461461357552075401400591831809282417619676090262554418775020519554360831012013831675139304241123542503963835631320557646566238244802017187318668290183397216130291518747810622630393086629220442114053921114797163870583690205694389314724776179411484926252472307201485654995652594176342431301382169079894840991243085596762037374284404178338003668053587477731190550204293104440770363060531160775565982117982731570605235731947850865916618249253710728396923733597654547055197672215246386467724257301814358475691123937550980468587234429457256970635546707202990709109608244031618615030817172336496837496295498177844257630640602857369379560894414373001591249386557260675763708107120416666356394799323947296920946254713737756080977924212416234223114811972123256881552166170302077909700042403325410183642326172457470561056673567483858820760243621003272988484800907889911454735464420821622240843547208906987615195852335496957070695105937447162824338744398741477239248621758475219022904441194039673329262358416770371290839715523174509730657597363513538717135369875775353352148010617556998242172582307450817348407065483762545415716194869163937625927878426418716878685196748923031916512149451700801879078195125389920044589443504661605317588356986919474840406915744653390403162309374666562491718418296965146576610942613540923685873736636631429008616762745544404395190175409106522325544573354566669317068058389779544925424414989572007522345937073401249249789253152227293312409032261772085188054041180314420404888522593612591394237329722757116013677469892540599270328135283558674902700778501965991077993003844545743447928337774780858019646454329848637009464589930772214715285624858780958946765182130700049474934361164104703941323523443594232161454939185621574490435756730763337791060896224551733609006108393830117079347195714329133150095325193362969919112880000563749067148100328672519946277299641131735434297640469508513099570350066650873990508082410246295640707207486806998603255506312138700145098315030696746683175463435774794654997353286738078697540149326678063173557505125572347929133581119685817246113684518994700977268006065554502195472058348315467307811318135502098467481703891139450960834748490283487281314164834754545563175534252152405525936832113887728489958188720967990373591423317863583326761716141085439427845105345467787156065886547331423218268924007741775032501444459601644635539766875593792792372863644609554765789890535443982913025080655501572930978382301177040627175693526661064557694069033876305811646011392442480325702486209910990446150998440066560097981925858144487284770333025891010581436043398440505055038015208721102614911092678584957683146076582542504170824994332767628101290923776505252447525423120033018643493794421735416974172265898163110049629298640329399432836231429606203575785589020885550397098345376532862522550736333871088533091990945027085706980291111609161689435160582718723909152740281370480380785066508689479388058417641572989599490530837643780780738801526015630177350690516264912365471818463180134417623101320247263298206280042648541853487083425217546664661664983424972737510369184865835357008845952452701911011905372740328085540855492376023065367276614395394243720671179120018565463499923811519085757413897962703833225772002308910092753443370980904108843491774352560196416652141236154361583228541870319382235584737569879563451013575086648109369354413198699059798261315722697377371663671520164599518374210325177548311353352370568357050617893044952927738944849003392576258729682348858221168456707720158189995341830446558734440444051213785800142310808964638052776204852978977388567076092772985421712503010767616718914609636369368957138508912966471851677155416096114173830216211698785952004070344131907945570979888236622821226098581327751853311596987807586805942569007213854333250500394080489449722170776755034109928059560405105494945445822129735376882387212398718378982106618352566271937069701324024077663774869379417115923765069703345736813159621324153375042430153851383186329364485567390543609761410635162634517417413693309942574375959676509548260443365277458259216078708938629412966177788930780495236259532818600353777550577753010984795871913366983074801787419931077091871684838001616495918840477004517556278967790603864466232486118737148666341503030112814250793222938310272299828878306791863751978123156666468170961036381433804353817549676136205603763833899542436031406588001103432764349168161236546906612073472405001906844675813003490027542740474153284159543870997887608386290222214769021607309076468969637121323409599703314460979980638855941682962872069762880298842331222608037211220062880410546673645556759525916980775334640720175309479020182055343311111912998691502780041095654510836552879589974496272414514577840372806168092911484990245999852274033631130412505457769959910652076508903680276562081293525845954564396112875789822081658201265995321307847948847991316665531477334268089022125958922726173936542153544441441454761065497124420964058783846522531630355746662165410647476206920465493872389594542809205674380859874756262449383543002020697125489247252819075594445794761974933549328799711999822729345109568642902814945086366580761276810620391628281824752049173034434237444712779350994302629642010737145702373169180447133448860934585850939070700211650078577158303269916189298365115074941137353421592242332146534446982205395915059579503022536484118445389466908975405446288939039852755175485978911028452707195628168610294830211183715026532770121232298140025414928591341375282302491510983356148704967329255130566080110622273414724716646387908112169889321179284344200227451835200222471619441477345973033367508886299188575630573795385882620712376628459312298911168841851416586961094724897657408789713825340416828605666117530822903551401490138184055018533395257589728818165181466075429052921110756242099963138964060179469675186979768770636090354328561451031007212047731307097994851279488872519819548260984268873688328040437534292182712889886057815382887916244693330316206867998964542067231341946884633924080015672996334641769814081344084469807587606823700299011422296181692712815821348789906260462727639215866568189371775527211897436377643211262960754576426269959045259672019112415374560953765046589226663180830897038059374858907843887497369892541831056338486980201797027459695066871839538012852169316704892101076436218283016653967520391548295161215641776255633384664086853830994516373230011582386962187022876470685180080364957306372184705488964133806280236629569859474661304629204731212742276763818399672775872259548016836957119451477148569085180005822393449706354759260489206199178839674879389480922353660104243264351999498317351421694190483256372960151159508562334476902112085082668830469693948378222833413155760484163808566467056244580926538220563719259642959535495590386108334499504341822456761391183461313882577121587788713743851244537407212256190679915020943053369075691327304791180392695762669772372930676428894565593041353371255105751966053274557373665925071049269016398915845176761821369356746764483947974025253510069063404835502776468010548764585323519126468713573228643478992057096578705284134389052156443226711688108818769539868869081912440126849029800593277220208964164092000644814635146050545680441936808579322777328589081849258701022169041889328396833211766245602305894706914915399279560487585301865981227085115656885121476466949526809333389551396803821647272272287493392842417753143988935015524034120471990019445069414480853692192260882899997448119728341244882451654436412591535161680766344044680004649859926048461914744238450957195979427952871749082451937778501122084556317384325113633882678427028435848962354844190081910515325333841138865825431745345404734932275156056103363731454041355626564722502368492697112921587619534988938691909739893240521805514406891870511653421637137089949327032214468794181703872053159363484002671261660909373501901929982009278067638840132177550818650439232277131533354449179777516504082619531080710219313570497206056205823705006688801494015865229918012813495234922072298152327014513039121884920874256031850006646838271776965621875377323016538579475756168077005865779379593225912671109671901920816879914861290173081809801885221946995705598103982001883959895628889102178646404834441471203835004423124260918088279708850058590064332900709819080976238669701115527693959042239613439229843553509165336373880940481580695514711284461070256960147954145533116839859563189283013326284344432938103128615191821265200904472691970773185034771113226348196203064868832189545687268200421457954396926175504522131851850806092631453209623134794785466528648663846754296084592744814176436812357959025988949633329895843811176123365389767984839673024771767984344483049788844570709078586970573427844610187923541371113173742700063105055656885181188872566176310534304954253544439311147464698586568531746586687703309916948374944628059115623870230157047037361767049582696155000921355821921792679466444222812361327321164139743333701023234059542309289483786447339808439571203929159425806852038584336271753712345651677143171636074178852378169698154313117504885569691552847676064534486930806689546011330081042831483913295236946802145993793295904462469304986751856138111251562699637155027788543047888861823136979400436895173976622825479543142749859017944005914634061735656137884526513870178186013538961553245436997246471359839924181408786056779984828052953839868721055524022746638073321551020704164578076133165584343997595110096628507129530174854307133170922090227190634171849805433749444422742328509204022127541325736161661454695056498358298227262703777436601946999620069000401808808481656712900331634726995276580357400483407982063761969499490123307693246897870026126830772092356585346715154270674424804596319624917343269952323208952925016742639727058811221574928718276422991896589347746587557792374408274818875128354245492105683580137746803674590203141848396220301004929100711159995836271285730863161690522394087575755909704431942122321071147471206219960711881713300978617269373971712210617786986328935636571008575887073632388842988507970048673351619365554886054896683336477760385685179789195302864829977707328166825272497976259254171251350309659245573975134964406824827256548031521813883836753913883430010061864697388688574619886631604794517472013909914667746002834324685923255196765685999499844092311347411003964493928135673502902359074394202974857292417517857320985488219784782299990237072096359243300043930939352948160264877796672630955898023468332258857404884796301286576818718133151246636476139724974885098898950781566928404526178282793274641191626793518788772918902197374991629267845248115835810270380608115110713344646753184710916212167139622330981115432914191301890475306679816046843691749370431013742377017450716589329963594138713024086585754617703849457462976771675272173405240459700164258886373059049177352303085346082858143301645348950376386528104246452127115881713697136157204602518720999744486920840330587937800131190778891755112044066740048213153673835413043897632820529527629981870441185809930656455503050709773068419557035667251405202640685922399508845392090257398595885489103908237096360140407515360555938000626732267397387668756409772484961656909783590124785195813919158206515467410196574719640843440954820552524947790447576243627946095661654520793559910036985569522186024391790999490486954840611711508327474629731576913948386253278944571396008907815890809958219527087467820644457768043816418276521008837847342715443120542116575625597424586870183340777077296781522333721416507841039936451309991216446507355814246315636765428015717236202992448502856504475614163668748842225697935271881853755011019960426228679838163722345464146049236890631818454393024409627861698676772908471836763600471464860095203512835569228826513604201738338869115422069186022009118090658899776746642232406953663026612661245520926159961763191223417197191913754961083185485316813032196307859144995689601824220223764755304592842281394060749472675022816591696173392982643415833638688568805041977396075960340245408592231769055691539142954018344855501106509650509952970328634491594702003308709474746261683231091888009634930864028108585865108389709840378739341349301737616158081377715041227889645532664335399709817570822688047733709315241920878850531886136398205349600347049691410773355395471656976861007017226667723366554174190629510828517130455028864600163464749599116993291567147930488946152655361983599466493652357057322128095436978145752506872675622267189763088699716925407205777755272316797637246739095548864897176502350444511723739540648852846775973759229734068102808397899997215976516049691119019622424285778053179341795659003371396967128919387695052550328973554763829484225298695769445350940170290915219079400542109428701994200830066727016231951438194643025759593411632304775005936854758988240649185633120046651999484173266980145843492783145112725783114026363321741386129921240161683199625596992991347831019755132813610951286682649003530750495715386388645223658171069220146659197808132913414670121920824726256667874066044402173331391628717819929622096710264895804438883335863558969884573858010772401260543698550592064730729129286039679605690306357350498528985117020612835312550845599395974665486128388090802076155589849825571034189286259988099563448669949013055118116926216754318090147112131057523062381753516734168552811684078316117979214701481014369243301227934854641678147065980201876031397580007568720661500563331361356624482699958460284398122906409111301513750779964284373479612040561277431966952364713242584509738159877743369918708634113333677550825831192478805307673966269062347394879102333358629424282347545410131054815748350046755806218204838951163294777895772575147610905932066594994315246303811931304611724206873387949045256455784585549417736569696622292050446711456121902027430213163138069717168200323842373627519445542065331588964865570832258351215941443685556780594029578826367762123093316553387419447722579402332240243885293594758973118621593380884195752838821427370431817060535648697871701654478423746989984307940845718176143645792699594112044941100395956642332870914351292685814551654706225639514973218397072698442833570563041717655018459817173027356536425385528258318915561948248989814248396554716006517767392997193017705513466068325298385018305397982687727465321872813509159600848553714723468245989904228109385319307190559869677276131849523259967150152343549977335178060524794752709257453713239975933639473257235663373308234535653541897586264686162970547102017910477802450672788511825856142480666756342327248119629064629613766080088297265496799508161462655512637976208247431800199078966394986415777708975216305956141248529878445716333513462069686391126311779427967229342890892116295447303613204008212026457505418504882368156854199036544842344580891894814144659932340758930958893877457635204196164604051706824186988085149867541800852158418216483318455353817674258397167457482747243796408254203469741729165349449983805527291163196981213145075138277546187817206605316801431993381201819059507486501840313683778055067946104482535805392360272714394522938117876042789301491412070484495495760210167202402462059268567706879313481691167208558784679234717822298957916169275223619963873670318564396962161758510670102848204905723542152959235658050426871017206228539410344832940698488370839189723535393203780462811713359635070522061413181009173284999977310244864766658275696946855436542805536607385209479686410812823930571087354843580936320208552941765492392835198019500064393498489531528613239417383948209706205163670750657878086413156703235001806638270906716082883096689329441046105087850370776004954916311612185193254199084586595660988435373689658224502842901274621465332596422685181650481199412926699891397909118427071834014495881084675651477546420499405561655657715706098374724432404080033506133478863701455431583934339826282043953641127105495257285613520098327548415981718461075554735616455137841804413769601745293292299614996631610161108785326371832508653763931915131405495993131701967665591109848978396944044021930184341820531828532105299166975573797022091786983215498739121940972937223379870891474429468870097411283574499141540852065082954982644843113322466054307431589035588429236266025329226033150024912084031315942857197499126195412944878811398338988062808703463026398887131035677651572190873219512143037597393938443186632305942700682532478749676944047035457914523493516881063995400409742958244041812624704926272294796085627838736614279790810794653671057301597095548530418954135307324216782775490670123207521862319062573023526720458000426099719609434951605654955495268335175684052869357882265437703890364862665069050459817267467584763378425422585471262396610061988722220566616720436314278706224364313661153280266551934017468716914309452158721614704033018900912498580825447947324867554447704424427786276925899093184931901546429926979885976018279706300242527558103587280944415326137073077582647893626808180017846154858563020435281315663908234105805820132790423985274873328172987019254010102230264017113036820913375375669532800552522149880686193654264403963703962936170792118052332600636177023395916740352188487157537255950492441145240255427855611266967241531489123749435641853038210642085852120726997279009287439204374962926244712801266329252983831130069311358523533861495452639398985171953890926776809139331098400615199514051809416535256131838304457472016858936212933591832394560314951618114586907838728973777786609284738347752271174312430098168990547184150801164065364529236359697258717816038325924319020973731991138047216962590183950160134428376663667936008589084888844582170714502899057619458468582019444206316500987624700279795914152347685360074925948984807032760373982139394884349655460521389240603482778430838797582997987385117531341483310889715385014956275958319904840171962168762516667949344578607821082407473917889596195389482464493565218937197301106821190327541305978363651196482816455016341912357241769555600877886088402406224622498930029883387890419271588870685698691757642743281941732556031766515837815724137706834577587015825176113596213798151352532991578307393876298585146297459450997022526699234428900246419993055762107149980135523665436141708879507065808503497737666075439440304522084228089689445236959064223305998841763012996822056943106839853896898295592129771218682411851015924770176465483361525602409748076505581125209648625870138933136773755312105608366949355148550782205479686068029465091677952306314898077973801229388614552804495614499868673444087185365787794372816182499325771278262206115243131119686513156940009832529825305636947129441133467227826024692790806810927071004151974759174436941505794538535340773865005156926074336215960717201673782343982653076997449124656568918141585222743866304806586103673209865117313134325650633881780459603885948180868979609813854537642574749798852976079327456466558208310536735130822092697017190992843015334738671478482557615585107930744933955902187288799769241232977216286942649867499156566238173765957842445232147338768588296648962431090890672860621274846939721729009699584424638458076631303064097301279194526350030549546103777093270581629039444106886644421512362294243426203770655119125875073474234840439455125972909574810204503081059094353897116856570262844108043579877952658823887638478708500052544805473522809769628146412740163548400995856595569140425084484499514172101733946770487754741883331192308196137068566778869177500282102173422729991836795131220163805864555645003053292735674321650411122336428312408776918898863068319517284306251205530903023108272965091083630769198013948039138468248864395814647129890799663162072242012612833709826482480655971150435922866559979911739995482221407466987866812595204099678505018049912839026026311647580071553011604892033557383272568344695959566810737456277351755452438938249955485478527683922226883214735196200456378305120865624232019468931738280469848437760403584381007628722237520531398646047185566333122539280254685028731057295164637704229305689392264537637769001434211862443090746205536614839653792687233294830991818950745812016964575303434704993939430289530780020556625849736023478630826224149765061529894726168552364331670311249401633665629448965526546593218504476882277748209341779282828748141511283790101694036114379024191369985153272345943499528136884257107772355373508189694441551860141647277934152819655597372112028815742875473456719761717892429834587260855098152568538053948082626938106829851577165696073764509054212943420572054774468499561128871117612229547333670112019482890206869265679952496965343795185273552693873275614368261484734709074964612626811385025871212771460387130851250193809427449317442819751780021834068441209802369941740081694974166049190123724652532185678400497777578918208028399852705414989728813602523330897128777897926171004054001401356931744844999766209273465703219011247861736678915072069552783285592160534102892399259767263130379930376275163890383598568488080840194018007875167251661826330250900882504109120905494872988126701842750881663275616409238898275718598836013383144231862060186975153467054820813950652210880370691657342492624759784291272695709887017901849574898947809894778135783370604826172944374095970682514351126600984122664768392608565856146103397291571383629855459035031328696010395174614326827606437204802423889782411887802500171427467111033462023972967872979865107258477422330717615795848255069774410755093735455768958168280648863021341741719062215694723789247317531094254965857266025077379025623285733079509431078117084674993602121324818897288643434799671452780096116989768796577761174856753883785531544498479454362850383204685889493972083447111275247123021926842436576493117118714383186219010994199685803229707423943279937698953587016290068789930355059608354431827935032601502073581365470616417095219891960807615220523068934234653481817019160722365726236253865199208898243371566961223831429728168553369355902225205512741917603729839736914980664576242483193402694461342937491578622155685755748110579279448982169219582879643562129756448294218015674551012209621242452147092294093718502857434067768400228521280915485763566240083860360641717593319121007388509741268238102912451455540763425270368144349331474946991558473000922137270594650991809323900776719935893063336572192323332845524881406289153224525999384888832607340717063973325505581293158566558408050461909764728790082483076630858459387134300383093618829017803309138636582798331287312880948651468585139773190415713636044327530311268463080120259853793182991354343428862802737799986119066998406954423784444068144426572892387996601212935971190160139853477274442077656453487914127379002618064656734159603387763602738788866451616550870915648624640331815789178677373094957976484585288253727484870369675625584113559647326105898121111767731364625544690030645211034706218611087618340036738217218301541937467628548130840661580077738566339277718987831880781740740343342781807339263916609868259421746074469283050870154694161473062358861047484954874257988399565493249326709972577777815239656078924374016184605945123992852749373840066309765886183887110087217406713278675119228584457421339379883327940358423623256786938193087914228288277477001703425796188250378511765364386033274176078204249161831805699605641752062901194425530538225809321559792582615384759570042803138429965199561096361965486491883939549082294154010787038633554524727214070168481264837793471192454512360033604154335533049896434548307064048807777618080637893939710743095185144257963834965031135166640040120969519727496744621815034637677417156874238955833111486583980210716581618848615931888112777363954683927681785775198048004653426675401717404865063251614675986582162577754685316942484716621620439763998434566302119276410354231813026967779954486331672773934604340306811649868674028921561056036551318098101387890094612756786371989401092121037693946995723090150781887351172093250014806037091379687978652543910510710206882353749307340606442673936875665329352624242007774778007046004273238534940839020247815654046562716572658231764903845864820771828477037915443199407882427202395472759614053181263322815857292612536865089789320662628462997072535757410920478650060255001377121610954253579346012861980301075971125067775812815103844602302325273065367016759657050089600682978513703715382163214419681456663283902190698702636125459423351495560496931120833335001130783880277882389400409698891840079772515062082386652820371970792879881750637587690525868782004906127375585562768666734677565365118803159206033916225987379501756299015383944890626110881765974685380171417987371736243300140871211248631755895778039144450439435134134526634375464482586517340393352098696055018913385577493305285701331731347884006497117121367365876834815133960600995655131880230108191607990505378621623767264727957906326457402456917335640423868424188556886650340415109811076150344430630464429214109918517254948129977814054996192831793289865117207219374539564833767457139373419468180417950516143244849005169179238731545063045194870158506693359677470015332566453685788303144170904582619857614650245835756067251496204046955667977809495861341106610927777556291430345722027053286448808288201270709546883378862049981966032861898033888569411508905241140554459712727976933573821258743008402139799988361755316320710147045281109809671881845609364393592400864247687488057401646464464708236648363890644155721684430324592734257893704507152192517444776824099390847837284188437982466305248975157478171376793422090917143742201007603467504119741499631031077146049171307848869141903024144515818346533628725264384553426776606943590741959308866585061740727791717758327260100696549542749385713190488986874132048669766412299729947581991220648946323055263900827399910331538845387620403413340871172238700811824577089135476197102924185237405681051521660499035026716837239960294734163463781192136734765351415358749967380758867705962315500755267868592548584079919131200536349895710328085857668418399453313719169786198528145774908948249330407791269719473352462159179683915683112347954877732390907365889104574595025131729004045404667629576769833303711674686307986515281855478370630227844310723470917106725219768477255780818924424318215631099052778930662535466988338076177309282709822601186757337616475084897122702247994221390443517949139419172937985833503024497969161384374886526382477391440377869965896977898334016380283463104325602628189148197446988648900936401360319986610579047682055802602629717220646181584343604401793911609695950539598207317859370287882213299273065040854197713942139298087630783038577946174162412773769483536384281569679213898467846399515024128831253302866560471142070945953948564873972949143997176822207201627129856457134786961589122362700497711343952791507680758551782139789293461445938608374045565320208185974933733604802281330695969182529941795224171259649087835968412087991025051754990322133897888281530888804210196635570975905340705275718569041636943691067055407277225872630051701516415949612320964378433775765267859811629101046943030633476858600120303309793226516231454663067066607100262370313594454417327363876712914157892355760552589415252808947128377276135651236006219059222570601374914035540107894038740375468434374304211959566855779442008558774314660384314117324839449964862712023123234955636436720340070997171710987498988414622471960561071989444031211195955158575929691129144304422124716171218882260350574466640478852798610237830479044881679788140109895000209675455129145601144873265747192846810789193768259127718268650850323024547695019183960242690092911594366645355592921018358743470275059229147561770635201842420953449184350257284881314046572544296686284770852186788741242191114500531401291039343338963684996717622983019036591496762528797659805952188803975586861552927563576887912705441497184466238350422134071869960280412907959077669564310238306606446774601392109222105136511018803070027574857882277304880465120241573016685952261191995473981039873483997684374547984360092212111414188764840473628691085821428000585216642217133146372067169249497281048584158373462173800989716545939267321015590701505534072267996007589214300257125955484643478437482621869806594725093387897787389045735328588416045561223153654001863178536876202205961191267558844984788314406294199234254106956727254789202659518895484012848870874869385009868755596676054935613753092025606133867466718599272329492219275870302839991109308936358735952552804516606040144604390570394846883768138039403488172442182320161304536277246927610125922513974296116404902427435754263610301587179804959394866112680265647643838161248871878676851079190468180031440448507425676489210251003297761756702185614089788232260709297287700047089135937218011510996174279876216987599645021234092164580882141009255850027391568233297618504822732656088077964886635079931903249875403986909489215526630583838607328571704820411491341378039874771230853902047233083049442552125123163636395734934944925464652732900714509806544212555977731708566142122105772395155033621146930232565783841685153708318877323594815979666582163783943247675325676532842332445313256942122144092819696851219801481413708686470209805885232276979677872212096675595297725520847404147794451352925895045617715115111819817276717142463580822662307422198604761805041197425728959570018962033021354061544280896310530497701485827831400490883917609471867086708672585292224897239002884850659582912683246127189690939517793946736080541789728757412111419982659808593146763866121603595537381165296612314041867647579241608710505046368046782020487135334404315416260181883041497290740353307805933972290288322275276059146599866647118430016191562618343619674035862217782251480115477520043472365864888042810865868951608646228146428607060819271995845647281739061846584319537989214296226920743056455466707084227078590190502025818574678692790350653354143251418809875273760520068906433459864316123304617430533803659065741639871672144117958158475642432050454418273825356173768792466425476614384583252839910363055224397489277043349556244590306034837776476896753029548624186408583437264176277240451186735590572490320565834095003559139178521981402954665761167001393670713720718991451137744580014495578043630235015887238469719654169859434241850293041048638852182177958307648528793598319599105955557614245569645891240026267483880218727846689487639780270177808077117218327900010373935531497439542266285156162849288159508285755049519279979707479182206202982788196890942003074701071894536796511435798899876341267534033307250599081040134202450084998747142897732000899266662806967739275325676373828090965575447525899975815631797987503175229509931199513141837730312769268549627438317188132483566421248933521764077339376585331871525874314731934021694806272056797193124330649387336198827690283227391224025442969962649558133131519268543495974253162516804388361605612026446686742527189234876841402783646262870465534708991461657389913079409821414238665663902194889626986385991966257488274756945746720782483804883691467047097783402305329154279270297796845933476012677334507448695337103605290734209631586577808520346554548914009028989887164866585162277380341985030172866623071381635640848749387510302969775242108853886238528363244757539250908837844202718410076976019965429331120183606366373288810058767590323838873056085309065357880898940998962108107612939972863411363743835637162219426095516039575830349529301812126843880512745046439749210746281032344355612933683598881845008810384851518464826809538516939807096626230426443366027945585328139610476080843653150602495578751709329546840246401776894051772223111974607518107121603279819432728305183975824870982717816653478272744526974786519265653574766363793672962659401744096812535368050445513549720540872797769612989058482655680500099237377684586972569043529740924427954123081189690511795141962814161178668161275235786263686276232954837346491473482776646861669648040469109805063104671372389259656292714550473846898072309401687375029514409094235240296076094117809191647526532599731535240671669509527128942842632176531345592977747417208571590066891410629830056429538868065024556652161114125368295229150499891311562028477307505101717890752394077853756128641011649317893110390713424935010671702286112924219305523583040808042839386184876776907090192735312768548006932457847500704884591849885426486017093779537067294284671301218536846311880912010775441865043484383951022604504417879579282213004016804271638489609139579359337894735747207725752406370076711220942897495649163081429607051405035795293398527631471642553285215871016932470546749059915820731680098544676993783524683403500938839883110004334579940295822480040913209923443021104510882646165011160526259574463054362640700933517891797570249482245008693442474333981285945113270098909495821182280654679081373785019615783049903303453623668689869069285707718681972951803514720090130416589563043991469935086801204951316006071522396200874568007429967082302108338160340464097954865136184547884261181122886823109712352913853775560708059319679929565440545680173677188816497306562238773850298813975900208253936415619418137037845189354626155553378359224985046980064848679358198259481661677953002900943711878442438809867676852997444941896201193250082030713072676172888315043306849202662146924872197007723631065853377918163114453130059626279440883179850451475270873120704331082286554648747051404912498491265603284030777016941441074134894936615586620016025238566783141437274049065758046627452595953457989792282415468693757373518414290785251510304958423752301292814958853180501261431841135838735944842971943033952265694064279478938523559886845379818898613903821290204911650007756305905374070323725741344736368602089743717974821754861600455043279728128456062942236343960019112756394387071438426351095247916259707799244793492271958889822547762562291138628084353569252889938818253298382043778212984738828536804353947190707064877080304258538710449141882048545195581375920526230597410388191178804126073222419211537639729564501303191976927122777427464388564966953681167502646696955408531034300154581549863767487346806902891879375521053597345073658803978585331452120579831955299719226948825348168210638893172485633149955699155681788928169361496977934490681120177192121846634040782199623193799693259572907182974315533482105492680430776793818706103736579440462621405132956965011681051337534813112522420373391118807831159224829844326524390626073674191706914256988022114904538981515894954536043689493006501397887391187634723942161660695875654032340539451278271799049474894182315030799301710313992953474401608326635747604523407998797649088386771404999074315502668083370167534977898935170381820855192299242536503769367666976461906032933318085469540554038298729227484075920777779651596206440200440312686462128458234656613259487524624616832261514273676077679242394300156299316824028232266769025045638379322768925036872623497468754735513697290717645770551675815035774241778936029100738666013424266243763406420197941383610113257955825664547026308961375702903984928702179656287390742381975515666141083427642873766427250865703779614327942816085765573767546273295070442281741565890426342607308579632850678299438009142156090121495497814138215731789334385089487835965931701007022535086608153024144541743593254688315390829278963618666765827643276815778142147122496554494101000784141896283281436223233483780297551413642054758510667511226492120036844791841979015972430729405888851939629384961917968026664559455695907152601432996802164698943983274587231503070078720379678355578601085982801016491715712598979183555994195600507772852077408094850145002943370749046894708467838750084236953163227558183633662166701446929404304756240056148291012478503363859460810273331646935554075677204397052802567164911658957999577586187766029903160755985523894912893602777561720036821837523193267333991396195207841389287759611034932288835620868529207243141055681068343792786400779020638267513220194983394816145304323715671119015155568685427491133757775270971425153741581254275932389369430626081894637462992587341858581489107942592442344280003454871750676374964978497594837983442331859595391673492780118999092846585242736240406755932571339494251131171841994650122775086545175330325112900794675409709210634766094942600789677534889130532364094840398884683934407495200598490564632422700448728982331982515082546435369178478014408690213551572358592339627686663051989474800819143699678797798249828304556157015551496849947741641939902279160264459035596817732724864855208836706802869669531144001155543271245818005010859666323745054649473307775961269281948150872986326956681236237206835144501095127122767893960008178387771303022574308790321820601670739457265452366187990568427971621734776716528632905664182749627018748536512199475261700056456663571157988299747939566730569187744980895543680490968330781154742567461929285447726932698244963750620100332457346394344781913884192613948313124674171485189257247512340485142106251166144329239519857027593730446268962169622662964494145247028030879595086341762168571374933591580735254605583322321040337458899994348958091224734374808195704953735286700057515378388026859068586144691410720471770187057772455237363992785555968690167194870006903562884260853491085868078889489253160288259522495577049900140877080120200541381856676980654757505107896145029658509018971766094362984854263191654253953526146571085026512642483739762508255215077878089749971976849071613731003424627103918360000114529457369199204149944367840570901675232558344216982666483671860577882732120748514599381688422461884238538850557764068623186194241066897711714324888950655128428861435715283922234141574325958298570399940566727161649197386798258376792852136749896068273580166928950217326157730001846462694091148332833932677446145729033443634874513315508046881280042384734525096562774779528759526574681434715241456743480701529798948243380422325164981267803834869733444550177308676812479220495003179389583328233928622956553934971771423927742407235277302140285364221394103573076428573220377932061973637432688792244886610759859647390589797739165853948255375613174271415941690151168358688427506783436120292477225056103318418298804496615452995148259991710784593677486854391695264028853088969533684633009680222845635639321978259030502354853105124314802429252427713451356451209651531335728381472238596881452081940032914914128337977227901784189148535981105052604953239153456698287708760551947265618473723505861738143588074063026757570427150674063402747948085483959950587877387279852801517399754289480737272249804967425885619045465188495582622142044573875009598632345472520699683781036153875690934091404140621321272568034906026030097458422741034760960729012171491708784320508316107758410027403968934572030918954371494169544967254349464346333782984910116579487916178025507919820137139686892605508414082421387725585388363740827439144183472841583191097543080171743705509572281148154466321439306820918609062757157922877128330194449894555258799776303481774104372285571996856464771751349615835970475634627431918618349545342173031989862799398260598939206338842663743074068646789194933135114766628881188338381755890075651844872370181416081355585500931346011958770103613566166639539217092679091974817418575056750929312258631711813931171750611237853071691850931839572166650915666239321635481033807785474949665261619006299559507621097515163311806254310859536270524327451359607567580096013438507473976211634515130245190428527289304753563270954114449488187600271468766605142975108125693181119774369231350996819715819212567345135630400967021806342530811898096489956565223871105787919902184226407336028356026621733938784111859441352588691547188975958443542218193546799744209886654063152893689186468386045248683586327418886444757315477204923595562253556736810547225712756679573875957658429634366856001446304200143513015799998071075758939550166912216603287343137587129387514156115903343524398249197820313224322250784303045899502693954947330949049206347254075440440188652698291995689373745002591705507528498070654544294903910327336012298180459929734497724304729244392223475442306742561954806844162921709147552438593404071740428414190658676227750130181810347008250648372440085765217459195415901564447815785379106221510927278402076678605007268757859927055464130744225011027802290532958990615480041442953897363165959602505660608177670702926178039266067739237784473199758725388836062815483462566085638310758676591309531614270096339021473954739293768806509648032540309132063892546245596450176470420762619771951652133027555299614960357071966083410107941852368903960912173832610271434495524597320368560903943042998071122285290894975684332026983373854146089534558503688553449951484820885154853073927748387570637147859004820949134025055649190211185824674014470134234933950606557699873316982299661571842048156695756009813545039508558345749638793579251285252163102263419933490488602223369791492327030312669574829491264109462913635005824760919271828275794426814037072973287815660232610594560387987545218528409967276875394446164381895699022003670600390214921738666447758154943222789059418497189351507938053866407513046813546475037983033962714971473765923994609897455332910884383334214886883528388869853427488766429031252798219898649741517683154859111849745785199346291969361672199195826507379741893015562600018902867616621397872315427369953623411275085898247695278962570829810002237545813772307728170393142120256960977403421421101718903497754933984663813874074299648357753019389465082297501273707530168126113684051830240699536701872405269045973814664268378870581931148043720757981850147114767833685228619784110288317956695253244326860726836620545904753454259075096769325786858641910520656910748608727580400902650934303976976724827495124703544164742459326649109428144612446381018951915655641724726156031000172008689358274024937120650670001361478458382114791329561399046117713749401433276338319947039732928724236549515119571592491864166964531951622189726412891596752640909960989648568750211777360784002229647708784724284514360925319907491428914066310388359990983249649148920465411157975488250056841616490975205517947692537381414368338777301667758216600017135866876655486701518247343614614569612678096243832536570189908280527026668628794868480864717530172200091559874620114505469581507535114506202348410776074435680889562110361804321870142328569277642895593272940542068649919072478876180608531881229735058110655205085681876730856668653089813919559103184870823038282851253572778428833573363020382561620926166184776427984292145420496836110705383638394159606927912578255845170495504658557115297275743412109145322989794751697436723595419228260752477090758139315430283310515386653135299015734785050217882050116541578521117463446404284090172666140098131743428406770235270814400490726495013239432193475745129363692843175990702180787934608600856062321792596820794990399311848694032323610466880575178979132058768653685305575150750589329319522671505346263966977069580479167143174168872593136748576926498731177600818468049744386128587313467097517245479053011317462020006910625259270858832538232255230678661326989372560686554173826613600750023597324967045308281544453458749151231833948842063660258405832448547373566871883992135956732181793987419090774614197628086900044098351766510915907190104956877052180070585517072583936287199957095359918892900055736096296548348167686079794901152664776056831952344817584946153556084301636675499980495153943517050437366495499963825764266163425681013453245186410782891131734090051339946965530867296015242140939702300696981999053694328816945175440401619294696786152295505930527324863723548494334025751380633301129681278697423043746170074337653787843604209097572855634408081439334609863463198892253540264578233400674822857677852939766099695644452407454431860116462681816853134269482077880787584542244500257957615098687376209884362865320931151247752523141591113820676925460967135649909075195644688872813762338111084485267404935127131263501213937085998206589930149770125559146736504129470737837805425274953230904891374668832844851547518087790012806104247108484914435204418224275995952242361035141920807605677160506183629784487392488090246972220803569264075786151006323514346532609503819764034092458386320226776937467173130261971028199331858366698923288861625886341183698295343164846687598258261619738293289258619164866081557379753723076924856333046791881317232723024664354822586835862761896313508881050891928324267380138038421079280664535360990264954351645885645473576619716562770520650484493459515088979533656171738723196265191081404454631417091027068351240261787100669721559151981529967266435330676702126757177752645600050941915117253983665974511004070534181954826371037128328212969814199256170656757353308402086846345233696093748770955193117049001974600872006317676598218157455455774521546327704217508753520089575706437202309087449258826001865703415180691768566223877116645753754538116594155699988084732527998267114916894768537910395814922132556910966908992708997576952053575637107186221159017999520765698130822441097197472874410663647703676620544385376593420768919225525858693073601989962939159339234710574664175373305259867988246641260020751849836892357775944134423902992874134365996617289193203840941397398043028511665628732466558335265275759004932778590635645496875249755575569516333833491212222163342687670762466690133215755070217095233335385799990620097312123680863282601925634643127308254111035288330585400194331082703938215331645884189860637905918622816823045267632512889197753885998305622272520806793083500965711680070455903961161649101972035197375280094893465224820852833243176654806022942147285023286288577536813801853643728630313383328955799413729595885936760515053562169874909349774431714166590745019301459067630510482072458092508342510538603670436718041459063860914614461066620409822289863586322114060787520847610215140005681354965922464407051473033696698679797116197049372358363727869743941879235746834076128420360865905176289940398622009717842853142460184022126120637704717780500851697001534733822255399409623062126394840751318724330282787211687253069813379124533063747018742447906614396528633347632228461263782763131896073560166222702097908348614797768600286668170461928731591143173268556378374799366891934707313673201884060287971678786809939019497637647459864675633809033509371732669004729411929943450110012410741635909573666733397396187380043771135584567835775919556786163265883221516517430050232293872434948989333995006489294692387258299268020967459349078533812700273777690354373545416616319490433020552584543297377332616335696398806818079529305518647958680578576639806911161765322257379225023327047968931807131238095594495290676924851084974378136770622450752699467062277634914556915287658100758563283017018324699106449197944101521689372507934791043247811501351735963655588655013136675008705731002819639754667963616101113133720832935511195103953561281976381440989014188126987178266608566077466076023654212615084804426827607612038770595129919691855748961499598028062567546122714651918530235594984431368462467708589954599811085715588330169792242522373131490215937236549082316342041299558100143257759940533640748296329152232670821989923300050106913469269469184054121670242674377525824784918441306777077391141109909644842514385970248757699179950113474555434271304575229872799049325781491821599682280969157979174208825518029744830601956866554318942072760641643891558247591417331871110541724025970172089111492517511633293255308802034079005667979805331083896131363365588472100358402347169545233801034448260398477654014515619995107564509660228264495317558968112951750069907337187203691432535722662503539984622070383287683149125641731365927152964427576389726467088280084432613183400373365622342631744321678144981224625220542741486042794312564506709839795142082115666718086416243022688785775732598648286744515920473398339211955620877387780939861647319875982189680445166288683922877560932281564395101613753805475622328677127865767394587969801847782526075701690705870519439872081874514322801487391701631273544800540925066533185368707820337727406617790713470544835441313802237198618093537727782635201832175563150401590955969760004107557489420804092725134580969184588075709419332173284396147540780049850306414533846967830038479747342657040953033885357021339792281443930954048505111254089158710009792421356600902514499583287576796525477854859579389211841270323243483178514883437597241447169576109330174329454220530378208200874599752516597423055573802147378238347521359739207092309873300934573846798952317418446746568761041497649519837147865308862829511201722180584793449270184465071984542523666122916600222232092627486792524223941845593425635433168425349098683434137884353218962529426819906684953099165083734313404529818503728987711076908027079511976615858377051673825798979216508837311454875799521954013324427103474238209804289159418902375920462796854337391953461661655727145928308912733258234926608146390710900970610872327989916066739705483087175282158360913381254552843911912542510431763986113298863701797108581247691038761882850243181202484310251928896349489659167436025147791833812978001484969826836633411821611720525075155460794465681136543115486028785425000617798714128323450139598215909695484121380214251416329528883503876570023410553002534417846902890599576261370251077221747099596328662609258263298582582005008814234070942721377635958768719050055495709501338290397837148626700834336612687625520465405423704759248213501365301340434945490401009822716876267506610017205850995362484384035990586351746461251634921562746152323182705648593108130746077485162290149189480230787521969500748536007850074389273673882761737521849440572761816442897644633656577073715335235360957494921895566638337756846232936224165783816303588930649248127958354862270341622948777693775758308250491028222793157353441012088286515695076959180416244106776118563007139426890449034346498854601697798599211535408601557489060364582377694175050358337727033130632766669052438797852701840589941064383492880113700471104199197677682819486537179116783104711357310987989425585023878028298074167320667688083067172397871469003082558743709574313204670492495765043275245882413860262945880133013670607501488179348614365442516192891894839516047546325409717078737245859547738279555740939720885350898535416971760201090430261617659241058169079420273838914967940971547904311730723972080565204238777672416789187124064220734819181839729896639864728247996681177001482439280103271476737801781598252677860626227903636408475603730589283726183336230030404802852595631692028608567948610102763049932157080290291008030513595191512524959371145631568705033484076934902147051237070565128392144073630304992275945432139537069310419050872711327517613856062663722437618808465131320017251461817528245206922433780773528225108539303055794659943110992112107347919112329579861567576929531363162698085151643300787986670945773313321083181111706427440766498906965965983351729393341518630071535260202106636493156286003535823864516199197819641609140854802201051023706210415699540711804503352453882209618126178276888782741361199180133530371481457814616637136381963099700878172984828221205575898578275270127357553641190084200898643142180345392679681269221796857422504506835142830989428493058898607148625867026700456267454392714213144557042304991279753375798190038393597681627330545297395935870191361288044907559836706496334796290396361716727946026650249802140863052746539017924936201954307118529409549027248555240502369172829378365965340486288017473491259507171922488198014453985847901640207508810361139201338398174174926296207059274463665828656956320864280508555262496879378249645632907292483478008123833789219743550583919930153142976278028079346960214548706580009483723546413470704010257427659986365918340648114409996098467937805397273778528247438481964916981056508786350130725489524789008335053723138621463508369332287110713757287206474629655258390705280373817961042557738689069915406779423114167860820812353119964548315547431292117091216022967836859966887201245028596658467340425283490381971500347796446735964741023203355481316860437910563036222242381873019635460460277569364505278843950567180108301954327099807139482362750621333990724536668496011052546498664587415352817683222420435462586215226952100650791049460339585568428067179206147167572612437021018493199353192751709637595820927186801556834736663098854091924536643553929232497876708606688845990256344726576253529279529636584284882343247605826907500566908214715574014356854195783131769739592091274734984770466630132038967533840405011069727026827904545351397004363834822315757000863636197051411820674992283226048523594085045506931169603197975807569934668541517761936260628827864868720406344386512610382971206424863703674409223518066536770349878098164347678880786349074104944014695215350755148211588036841593697627517083842822502542722112529466755060112788857220752937643534497976960198320730356372879167560344013967291064180460129244481403289540453289999334965032029864385000233521183460160564518096797397017923774508977920457856348565303183627009016727198935182561304167572121506709030489086748147769420724676359179946264557483475691848515815884299892860337578940216130683121501796111650303859951835517084002800623178622674801615639067584928729578197638933755198606591585967188979708089981151005562262282040162018249960056560841764648664616504199534336118101405113341534355519100201033621118833794976609769543842706360453709117241450760561900307113369576079123384262295633064100383904756866455233281967974647931635157318757040783629902371040527520336478559229293409820947433628246999514860341462114405291537840706985666302025662598398416839622834611175376440463994518112468286195084609122798882316193166326627807134166216369548653743578599385933335764466240394434404102228219566604720812416782999696220844819629489256034239960558391035440831201310444894596937822361864088334632522578454806767653610256566671077121070538436848702641254819534256274262119686346262233561223165515067140734502101848211930018435844045870622468342866029751022087153520926632310292864061493672725629638464630105119349022835278877798401335729559178302764308137635523915783641082686754472844326251269319003002184690687668388036681966662946192208501115814074124264172511854036849390746031849632569635901789359513734137868480298963665326928602134260195630931213666288265716129790260499011876372083800949034206695760931900300632292145594711677885431245326688646572438675259708048975084938196109947847659802753635172583420355053606768435002753381182125350952915281585861047570231314294132071682665277470731235598753151856684968706069897028357682268892515476509041612661012995721783372613444428526597867139545941110274844607337833996709231528328403758182363297575786703012092249747138108111067614661989248824646906948107531649217152584100924381335078917133421222844468197047905069450282414823205965429415454119420352413829987817163003718679489271637094467767400399963469188878577035441207170450106739342091737941709843700490728088491193519498882855357964510007800929098631292299335565163479748233376195671101170148355077100853986002629637193809629979804353139266271586404211996433699380174329831573644130762385272234288734295747768846142208524470328155733716076762932555257067880577098015170224553176210376053882387415879959698974232015550135923627652238503513164442759994668149744433097033883417742586367353314783297880313728974734834594008697854847710540860857341857376453546154759748385261599269880296472502991682390624381832837444735374031735258249489505426904168255210056004634427082831584361641640088335087497500998448300956652746828786572386361751393427471655531627190643542749129243582900603412184976738616251201443968058377330660349953839211918964778290364118318953991129610467515300519905009519325818243044953956023379299134358889148796661131819544281087723359218305666891791706140602678122806383722488484676357974328367733030465859357788803836636620746134061651002744643166843962648098775307689078879334635901319685176275150037464469212289807410548095899941705958862177081801947405859060313444965517754518642460147521227811098697916373902617407975297540319276278529760110581247979790006763260528636743281637148267161426505124305011546806414594173715993176772889813228906920434369999553754409031178764578050456338550324872182468939518570700758503695792458004831311954248164462459803280395145510027020197668819203123866188699361921448398916978338019399228509914811996134064991574269829141420523830112028545581190992397057037529497294675313041415858670148024619067492428773245762301259041133164034189426880759909444202477539814762618336488038392335958997805591588340154450331461350650776784318901845773121958616241786526627883936352973961025102416424991619520429116848460162258566554706504051918470562875785556021126719602100706705361449504576155731919314325029918456407860876195054562721201328346144508729277459800707332031330701413613589739240326611041261964092689547860491367706547492701274063245759453395731442306716317697162933476222597498922598856422415278622510748400850785125929635951007772793987509291748631265921470167758507323259010928410724018440850985185875069011705828865268922771919016563958936329749089047916385630531246338919177656828893648560269737248721629307008486100295876894139351677046893611350113120420846012931677902377948249792182180606468217049523506281573425385247546046311168157534332476723483824653676272749959578569154159253605725251411351007340952309691780956238571483259154522210735671364227115686966116169360065950950530558414769691147360910672315464561386719520760787566265793423910172655305666596740384131414751660525185903424432117121835770493420706866974814646065497948004741339869254603318455603922966925636498901858373664285617276367432809771669968011864215314365534970412109063332013897735473780472613380582195251343228178641243550287520873521265792852040764478195015821493491693490467996223919023073804145565195247766777164460908586283709287666752128780241603514104817060116228139476113961108142448034929423498022510941944311796447849011835262340416917947013947577900525226996416564444912405636756220919290988145808248045266519676691931781910328858593118684693328720429170392676355578855005747678832563343605431593589649747576345885453498082658193003896559288586743149891497966116683802660126317367691410397894022329805786186260204806594095036139068187652617875158253734384660637577374956640720423435182162559812084656946667511789914290126205512874408669376813096274779822337170786483681178703793521228216985309346160972951882387077164226028377442834545268211952377639368029567373912902429476271253555684062013102170732896065600882848982048738590634703211574323304069032527048813637426561923674013463961468849264463075654787876865495782064248364621992481061845014611010077069421662423984843532409107956187132105071755119111752280775700147276267103343375768480053658793654838216197015888965085273356377685707774590448435618418389946623006719754976919636364347212187513552404179608484476664759664721992150610641931598911553785799435450349488986971069610905466497140476632618852103235447237072984808898539075657156810172947347374764320038095660080622813392884780525554524718845354419889255363078418739431443451802684668933825235648291660039591263953657385084167638346273454953575902275402015816203234449309503503476026254918715407494038588991626903269147314463962027725656063042003097090530786396126161691395873128818878319789595258865767039229622902640345946347808642996913120047838607092607368618027860951926968671583640591494611118738355396910939286238290366732851207935726905996114663140371888874774281814537760133868706334473018032255637896092983812927765672912641329586842718575841007856849204170770079113094421677881393914348268565231285183945221370378978016255787129688262515573188751820111056946860216572258161544149161266512038483253096048601995341997168613147665751001964667111508993382916855755619081414574909697732421658751195928402918504815133518534297101567219539704796751598282145889699840137030414215887673164819335798326814473238227418133820869886230821549837248347880170832935183365150968649144206645245323102008159851851962257714861631549967603085950611618549236839025886361927865164773639725251105000283091576848028543830314137251310404445815903367548310604289782661141435751600358371655066541251383910684021199087990658702255873231312140864947209137752369995561014074621787642951432625309465028938139117006338769526320317771336311357442393980358498788512606707356329610301016269406433757096584459852289603388816288298406257457148744753877887709193510849262225133799090900425080129273057296475283771279300196258146618809628822329024408800100676772828402843015803700462010651438358574639184693366853459318930200666723060732166426133765983337196882047682775925107428944706036431170280430122584160749990725923229430326633220255733998301629705798420738207502068054945193881669336317096230936086462329802209790630209205843269718872234909324622894173638673990421856520098460495262719035104586622921593921076239496532103020870959186544707006769258650637247999781382695870135636156059963597133594452291987520722068456990063036828019415200186496347373285206667229680509826362439370932746804553066893993853041740016471202473922882013065070832083018488070821382187130801152528773474741836082438412355991680620866450821220390265944131426491320100621076687820592579410898102036651679782352277952227917832682910365961787867367138362855886737497389848909639449389567673447909325794128142371607642685835436091995324838653478442016045321296553874702031221674349996561717588158238252124585328412465259417851110115002355889363834580298601711480134653418636493406145922422559287752076182182591703312051479820876041770317616819687311424320795765516705213107903212250632121926835468695854857518504610525087911553440121152097232873128443071403737338748489273694077173930051842384504450881047975524878227953275162420482495745601876223893417114664540732165684818084818915623769293325450155770640888144496203344924743997088541823285537042959450976933785988984289543914420747860594340794234917809056162227523865457534398586804987431360487415631489160104615687818667363540682888838418604236132935223535918514613340257997068782246275967825503700076831141626200951045289861798714821480853641624687585322653005595602612974998330125991580282187403215218821523069684860791684271218340899083807761976550627008552903781751003092366982982986629471358096419090415543487250675454904748740707388327185676522504156186593731487016075637457431008013761745168381982318930984520680726135540590713756891692432927712738024982148784227010177589413972252041779166691570038611466389990375367500531543115160869747037648587404047385430920940054527516445050603494820375306201969378215886704740688971674503997947276894516209932777820243511553409970576785200227618899020014182996427828555497804657415129689600774116208149087048056333526302117532576667970779292294028111385476484881041467737198952623910964336318722043840280561371356864133914735138681568516389018250166879711324493537425023071549896255867941863612060945432014256389863409608641446174901806335672504466441231596026548362600428797745173742860605563968206266519729133907045606357479484254128615991929993107112725901428627300173027239446420973694013067109775552641938620049028984293824648165681004266946002121932489451484497163786338747813874505519791972807035573843601120630281213754147033084978490476738674022993515365980221217410581420238907201805115252124673237227218754860205494407421222286885211530712235179687116876694839156548988840268899340495481686799712699102203987106454785413127213882418766095540715958284112822977872927435403341856540142889079906217541827604747803351833265647202212324886133546880807142802931128770887840733348319695514530169929971771354964832864398094624336507381003908279724654024416307676031025581416870466600064002577570158337354995805335856509704728935579309475183805408668140498875002952493653427331762436454149403968816755144056255821386652608321065071406132365438782593830762857407322923771946119040992304096207568653247128221268817156451880967682759171092424705284614175744657846636411503995451653188569661857987416074019217828535161577189211197176006548126280310554399882205138143010741626253047209338366237460822663288846205167325381329444829816714635549534561477035393854108516164062938155641146456870835991402984776100587329040606227799810625560510660025916098951404116782710161736552283171229579723995291673196449145916805241614599510454655366079486321583166680427728771103903872787481560039190716319960267121244069535687622441286317952131468796173343406620556933017900633715421458189026257592910066878166159977247614245207976155845177835972136841206466376014563204051969095728150414548494079250771270610738955180719342948408957387431338722152584884485053387171294704294328147375524610157018897798253077921376241608904140938868762669152031546150940461448562809767506091117016927971514546168594418102964457321548504776876242799876233494445226712545089600746104372407135963673024589739395944703637247704471212304676647825705133692713542728385051119202053468977683533023056638880913662330809094404661349564611227146351821425624111450597893972664092305937183981025048220097342441232724610395425728841991164570347779178075721680169789869535825030796935463110015219458650657871054155133256982019116466268495459214499180777268074369029057419320257499196404479790228340347038577860562443335344290135504436797683142625577722040950891496208622289367986651215252161868210089834325121822877138249146727718540610533238914409403945141253400292564694532700825814547699184875418174950547269209057469917604534661256717600127862172584003215931557244967848159398617807858794638343449259092704871969107524923342704523073900964232070215895509937506052271914218939488809065484022332582467278358850057279332279040846891837528105201397862414751267903177338384137617982879719282010100296928782627275778186266517948690135936581655939818059193842199882517160973465783799933034563133517138497235715960885998387364032927018762887873656473237209115590324775836756271422584620509587598732085549572921810136804228207775819500853810430082426169861093409243894091624587116634541186859051034107402768001420672250103504773952170089405442325866795685881428391634985413357091660697355801734907983893067150122228012266414344394657640463181355283353388969358517638931965964056736284666259625815861090487545751539673479827830144563134926736229068454862988770934476298288940848885369970662363018984109105828917846857424099834110723564527891709562482784024552501206492952546944036353914565631282043762834410617332129272653258788541413217732505876252967160642465353757136625260620821710878212301499571385178422356165327543175072568701280984186461190498852185634346400156870935823275808733958788069494866802848920185200871236124652220087534278729412039245566871200853975739177315070838475099781408474771156840945221902545081841432061689734560866152926630296968190512611260984568993045619520228041197640103527923976425555336622611582686755597613858320319536763443284500692211227251089514081997500909493786648514032384386971884314319405475141907053324803127317204621316058087937521332244617460591311901644067279337717350060892963472744741228776564352845931164788461542777630386324627874938300777060442827236471221178128996772292223953550163988327069969708467059928737670351152183402400770568740670732505079619003219696339920718720457488182282503782465047858993111749022468922158485889707149232037834912597941114642050660379489098955960149932768429597426158027652325600283320043933529460878138424926188159182165251153100087250801397185609645348293132134138422160028513326174014030516297730415430380517360144566962750405832662521987858858936767637099686039813035612402577884149093371069514156359112691816332522519794136122148597525259522188422511567343535265044231952539504485567137818959177180618841111313695980200957190194911202262714674221425199633137234567522467175034587708806048404839228107083238993469839660056587527682560106878102315397101569519496397797930305769653730841191305446039321764816895289817213530184495154829852243094668514592729735032353589093571297746727305778901922435754969538515289244739350955563178421658131917801166537368917313848688069992131095123669572489533557114444549843271674530534657115209624002050874715850249353218026644679547262318726699618616981598900333165410952941623379699221992748536808348326243367706852144391769747746039673304940659737199614632622063113430287698826153902568241869060843383787829532424802571856873098401910490696298621255592205758529187776697369854045720128464620094789206043091523338610684383739448048641811426536464966078758638732078460021992195959479356795914953316937437398089184199983653920521799891133938334749059182283185319902962806271434743829401894420188715725713167329487636506101439436519454351538132712022085065995713457214568920534678465610620175716962544651477900353577303583952800260677087982245373027605801888144287279785412858154210116975528214186216140567845166282707685407722292399374451040119281167471180766441620340373337373805718249281846543979153687103149939027910853489181982207162533614435120680447646036786862575578125609339476252456090246439412831609815148645863690119334393388402424303184592329034726163808529555050142450553799427945488433185854780142368424041670720674642801719842852939876288654052518607087638904212870305907337840877665760901410504108068698229583235796818396222207197959458752732250680973062311653490085235049751598742048228873752229055471035395333113072025311588793583128434351667966872875484425589045240974275529118143132349712200758357652597865331812033957945602133557513601232064927927001533018218725780693744787563601798388640104867298211038144141248827174094250832587827846045602189223404831430396769996604184143596642370179005973964560846548817544522208923591198514088839474333103579788845655757835069739350026968728508273734268712547847421703854501477664744235476571834487583284828812764106481540080290031671168959124313100675599109285448566146092983326715009516085449191379060868241230178959025018949725459168784789946948251472607038005471047566472220484622326977584010876434585366479491804937789413178191309496668261187579779279581513607485831923567701354349378179912892387150109596766702919599361679124278995399743056588523148522961032356662665759233910251088943550223732024139152685116503771542598883915476675063111951417143638126950061805914938569190430086520489212530393893327421064445471099294082825568827634510838743130538892967877752055895716591913144719159503389808183175841606749374122791897226328713303470237808826868961228392054651254851373381145651328506668181403516471920729336800304167948625565392184132348843719265060567273682622494732877870933009299241474731513490705957060460669434678209208656066710441535044955900554419047955284527043008266324818324617087708259542064039515859068402894771328967133640309395031033402549579112099164043237334053076129832487269343105934617455593349696897641649763230274504045289825282315086824618470746178605702697727692928526307271173412890838006912659389226810788059202436663920987099460286196262654049958736750288183340003938029003661104330814761843014915861073234635814985061385864946395967360858356373946209731226720585372260407794418232936825485831056161585016714501977341142891060103944893122867326076059615330248785817975529697540699163200913464448014038273468465906438763171147971520121578977082634055869448041182747734470878165945844234700448771913523242336666269423568486625309952932860572157416769148206756965287105725571421760720277988229850930479169791197526287227261676144057085196459760865014091026640651601853232464450372035400466804004978956736311419341927586397057675161439076741990908216154089544957761641074898063760790730282197088079061136036681078191208788212157269610033187925834494016677372392457472401893303113860251075566358011549416654896651758197933193566181696748212526393848426222735565964469304247177827810468825475693411370959005533426654027318209979845876749435779704530168082457454883859742537839847681725927949886258132677181267639238101000014992867146660681990719316028923299246558937211427910045987216591295589086788973116617464545761450751026485598653960218029223437934784454312461483122131053323703981764366861686904291451301018813603009734778344533472627628746855558101964309860107871192090407960402145621702497826402268130234121770585326768484779908875888586908012237300299988777741273866113956286787215980113360093357559775401617484583160252407578315217279998453892162292094620049522925513319512571123721418667944963979967598849420558533493835483526587529164615700134946182749403447777587266411071179221407553321090197559796260881538653997018745817016484832423188073281590598576627314263945908330816365588251002565989580581403797673501062081185889108965712464283550289641379095835115039995407372595526732382124597984297577427145404455111257380426821530100908799056161827982373408431700890431795290523710096343455535407790076876199146642247974370722156909850103526882164895193065815486184032836023171143463989283139568784458760258615616425670876060884685407013192190640100325488423704519836330895128854318806420589076228210606852947828605633286774992781286613505097939450741808840000447089862768321074032910570551171495235899920089770785821886751670883442509002612064316250147526771270682981043343608879054691730366148625725903339623243897439712333606052052381987274083497214612029154664569174507243505436273558863751163421421058476408642113716501063832837468684579738737650551157458948424037590511980178547395949217887631578001385405613792260043160929536418492135854908492576485206617169843134309481340350597654410868567494570338333412644601855537494574419286564475693753640169567875022223513733609090016346040193160056910222774652042395954930438623930722311519597068939278059034971586552191224764805476416288469865611663235497477749428915341873467161598904213774784358371663132511359954054093377235854103307069538298637311376083629804788146145053631419730503461573701621710417956754464284426888979829341065364741186380252706459727448712427192000864670801427164337791241229831603282747191865601978673491126259313855799510763877228127486590923917186152785241361519678150627868845635529378707287116206420561143505324484540007806144022963347020845049817953611840680716562968435208125966894505680915114481126774498763971429964278017442077902475295470310737241975967449279313938953433122382389422361117763466670433462809990357261185681706112261021357846476893464453406533076923015015187898256060817440925877175506757680134176341426886094590020539516182162345268177220227917706490560464593844109047804270933171615114347025696166471160898308246627645054932893405809961940726116165537215684712250195205496290749378784462538430358862379155835646205465244100985479948282958422430435387071785665886061766784870800871832330852848686822701134029382382051337300455507242533416785799771034989506694729787905739815174989144013098344562575560711058722678311712445727422604386798330303533431090123261727189206537537999315807357313315217143631728235653941907352219352214726200604440407542908329750714933846660189500084568148266159723534266165721612702297912661125735959254332261710512764630504947889212592911084799834602171171901242513795688846588472521454739495919139347755629744390691536135082618014247317381282474022520995261560596119591878079642726305579987179437373771295860526924098850991253897912176847018531188083154152543145998456133706257654755879911953796850618991511543136038596802419625134028640291117150473267969665954691361883712675733985289272588453012581754093392666252345228140576917622022629382074665469136552692020723915794715105405719681499808981345944348605492984177732691436896479951528713471755528097430472319913971152320916765468076217817677092374294206193243588518524660449353230912427950885541682160332894987354788533091859868323701895245583563456001200103144218121590633286599122684923591198116791178973553328089827046900502971216089113357975857112317432711342197265509657597968089672735863513446254157994967534758647732300997652779490217660721261969740555175229358730135763771903080878310327032648759975661424725027024035155933978767233856490208285187215897451375481890589791507775267247959706109280308366728984053036116838310773997383296164682772766495691300982484560768258484476242817734664628871895477510921837884035222074676737558517644740306958945490263607465507818893106239454398434271498263071499872651085359105056052622443954224682414232289881249319388165828109538843388158074472657346997963802283305258197923029918275281948115934131542248752293931101593703181772252633044922187463239212679775774245008171687475312952797949098525502456849565633849757066764870065569332656246847478380771670805353319107447636355990849022543233250321322820126678353245516151750413373812251173384823981594160973851622310726599125951244628418716179394341309259728143247293619287190273837472535686476423272129068391814936537867043429851738173501253294108564219403902217717306552310528481472235765299179063001153831275891906813449856390584493038981912204472827100196405085040513600780581107861218825772684417251984551429069134690143461713658435675223352843553194683642521155768899070259052491736634595245142507289029779673337791502111157725698546052563210741418360620606665061879916869435483132661996287098157901032153485014215857744071160724730932865031964850545967888393895288935353709613741104495613337277456509768635660155530947491531819349297317230365852570548715224228793420772684032464870740538336538008258178207939530186590263511527437386324104627126716037357213644382192548389289225301093782210889399471960093230800211043301233009745045138804619451410935327539498193757521059287560384995858990694257513394304979478560433586643317288513966214851232022440405255417880204610545992775584489879531466224105605362965071092108899909189709029629008455046425711357340310573324366497632115683136193046765266144047613226372536739452943272857397333633409782795916298893767828066476754956257703326585451243365202788232992363221069068758273228247612410993325638856878215477726570836472195031232567787208117362453592358618331417810992160899641520698446726052346635764110009304235076352445376967610503433203638052669731998585951431602286518011424423930465370459076968778998659176148829497734115006264305336206274998696652974280362076666298150947917061013942338766202623547647712133878919932677088066015981379520546765969416708001314868069533896093502991125661284928634647264849080731535989638138728639049122807414844221371256615522231086979306453266898088690843320083163542150074150021693294921677177835453943351228587248487035451293465759105397212605232133971429039953751136435054661754057498520111952087952497526364762645585345526652056488746680714011403441091774601963339744248025697599908248670176939943069157366788925441167514061520813328792520424561231613887429207493450544716903023352023518925246388547269090060232816090987770450902370371350433835778933953417011082556003953083861907610185308173196548445306222274534585426013658191033020923038719049830221985763466233538879720393768235421092123048876563063554771958640747681286603304030011854999675217966884554011568674428072108163072970207471300390183358514008346301314344190343588130887682684194537074459943196356414100422683897426668506188876164239382993412000316869739479018950135062940073054426519131728661486038416370640703884363548674829826293495744927380434239388544429856536944919452395652723739009824976906582416760332792735710295352900797993479378216109764207505667446851896029361849076464311741381432497231300757795161083244189937024391601904574371691996772471202960719107098622177966293663373281054827896754485411587954849294809988069428228877963947298516460478716072083809758786040593923234021136726116401206432968883836080334326443254374809776076657325174875173041961761188929986426362630622579260745959741003620782931570873776127544140019307144620007602550050083102964144179452961815609974217386073178062793453792328767167591246960931018507941812306965381453918732543154973256108626659776671568133475876134658741879632623156159136827279514605523866342471779410251241101037707205433949739507480684453909065761015639884448993600337992467396365168950029254489096572888450893102636976504815616466412909017642055857137828414503399051933084557225039613246826400039938472298453457049878584770352539243163133739817300648397509851281552873523582746024700879257062025467780373400075350033742784001307205501571781019161196612544399555131711154559417628993234834032091609689337347536840916522231630116995507507381856509844287120635053809443689975534611400008472175249409294291932037950025535984188563962597346268210775881767501850669779945826811927943496131518958317513165528673922078709200491738117469779052550995365744443433466470124133437239100385793284388718577122155476343668099813233229886872976402543956982270017964989587002442435888920962049025053076229935629546428176535507816458467836626647569626633388928870112259339798629746457303279473005384658564548817130191106213654445297166878810261863518254177432183258254819453611338526433781454977308340002203859972134517791093480944053474398508252178275721694700496779245926193304014282248934054099792025280741578442177070874552596743271566063713274519531620968547058020495300849908628521047602740815056029978061209815605406887269439592675489216045961268310004912266109941783489584811921948613976185631405841137536360116269327432372475405428219131327953840888269922440132879328750928719051350201276128184275577350476960388947941465479429492708472300264524229662598066656900560325145824575918619089702054624097385633252076318549238361320205785019638129843897912019261400149085260830197163942249844046305274132794813518852209005913826417053439304163119926869076589881312971298139697950474326207135225583905390675371341756048821611539763876196171939340625471478665523674025842935625659600054517862130256951594204991461227826225314824615877334078132173051797961326583199041911982929897828053907095623080078832909403141555553714416586645838165573169526196381545468677063063381700151765965313797560446852816307242401281020006660191201126146994731733587924392279023965646847983502613093354547179197170380425134453601055269083859473287965078312053591133260261869738063679316720651420082351265684231303401255977118472309590094198832482140987685300737220801483580231592843792689351885645104540169856695983188176774766532362037102519909174531079201860263845183176761526026583236226850185143199908458269044845991093416315682771571188140712929295350969042604927443121499674069271304738580524141587163289338593955679920352077947409509372545175085461613823856871504079249048733669361330486633093585286038681883922630348811484983158158702559298219671627056487764048543046593403649284095254670301495266279625501934312982844160414066712226141602412997084020787401902045671010445935574883285180367832968609931513832020731473008925906898897812764814700405764696728873199160185502356285390584137677630473160887224861948241936308653219727385963228619503547935687222040948067787974177748597537309855424875141683565439141283122469662818787868027805033747463777593932726046255982354523833307153480123044539050994049039009577347411558036903956510750857280942176037944531960674840152966065620600261974898317105049325519814682875225485273390062494645432899847406900804403196992847046096933335146548973092682812200456998514507913444568470123304642219550870600203804631331641976068155700122529271886650725964184288157711028182316063462893945743248412622458786189371010839760529966495503829255664177709108629360192242002523854775945938967787742099089784984052826735164272726063205520732640129986917780616956686866209972831806947880325059954727689314215041095342764048772340597590831085964259837630435331527631527340828765530495082149602955169328328273706428127043955238724659008261296399650798797128270641962568342269887546305528761350310215723181518559404353834238806984410701902787966229440578255631141236388739544617740850771597739499045434586314331515852811299748687742081202205820747632614253485444262433183100730844460265465187021472581095442078049558269357730273199516778247492953827959442845854895289370297809352172509033598379925503656825675722270698711156758142746438076114363817334649133312222107918346057431235867949460034245685388768251304283564207932741198010678682288115892955552325401854990155663253226253752464035416760717612938015061990247247424395166446045927968776347040971858020354183138155274870173372177054997761973996775677958712452845559619786568208313235381948261353094946836630105121382812154877699023870067198674530991609637355430295206324296279437501330660050738766422071065856553112725272732362746916515871417943576572484722749537819029489639386824382856215172052357744916500044649466723551489608379414130818457185166456923915458917263089376491592718988060737710657804973144694159520323082866147144154267609898481413927410656984669828749112840036035333550157624523035390041308257356065676432578064636979073205558349623510051823790582684047006509352055980843240040692303098233032825699662949508625742460437941051887922223261270859655946742643255464776995130660398398387438807346451868207953948304598412615523678145841020840488610752235866469050402147675624368974836847887814829952803084973235732130086086748818920736563639259646315251603913965926819002263618151652457667097548121177571830579927352571382963707691564732476895767872415972935280113085423879593740581231147928291388560520924371935897164105280455081306914992209215317966082875354557919484541124144029583384852679181675784088160766347083355453475309208694890694205101564353188312377694798726789429151562368431787444330919185123223451859260194134084942434672359061046257416541138505686619955181750601605554304885149978753247318960137456178471288315211824984025282785113460890448714029507715662114087418264193089105445253906824125020519897065955371386813213221984322282685712840604643758353775260940030790080113362473846762054143306872600090853634626298320080248103155301786988410685622448259309364847328320050036656315309755168996335377443094452691321079535614450687896870062157982887044031361374380695273580899323675839264592700141831314756920597431194205465830454435785250648436497178133931303560456312081677488193284763598890679562969265703424157280341868781003118535893057529777105882020911345767461750894680384405097849277012191783327663318061500167602790306081196694177663314203505143454329633984461124469765047054508909297500814059826790244688095749076262349318116939692436724070782273602486634967511072102749310468449564080108197282907420049587509907765001979328558572367000928083355128426175366534190275184856533135867019105554416530501728247207844636572906030882957892516791912697439670100341245345833440440015137462443819177767237367303429512291146200889051192207911022209960396038954516454690519749354923307678521027860565191523779384513943813453807471392238417230593824816874152188321206766632520748813880498036000917599623274076429750954495109961058893990681917588670884828759387812051097145157868179470934668604573592089206573086276997251019269119955543499654850076934709717133042375781559983673227751717768227175757248136570176198221231254302327147549274890571891100236334654460506524527245335078449692674533491544665296501132306247464772708297338683746939400454960681853534869186252162570934846845617595219031949111755717182884340750202693730588457775456973939467953780825928508702399881226734460835699012653379479003760972198324751567186076067182941628096273773029245065213232617298557386104262285868526281982723687656647636536389373570164525610356705855150275486854157890492633222661823615257048583436266674490004295307940529205816427930771381166403876061289199006376347049122275275068521788232527303321684930080283848586416208442416679568416511391108636726503722082086976267373171931314749620442827397667278466771947941825628011863377286356118514118505047153743388734924795455027402014495107549622692291685394306876104013843162420358924469018752571870980372961971307376188613707961519711571346066062609895945592934545443091450476567153559232427795217164660468551208181996184018272923408258602109789533954413287099604166496405935479720400722771823393481083496301007687434081441630580589431181863801608378073974658070336387925227700665595510272480745636718953262942058854545335644927507049166238520954855689922797352909767567334123138672583111487778336212286237152909873658254137428423197023400793939887974604693285857788183582115024889589920864481559219112563143250441462730125278616417488498750772856299894517212005257413410867181371190013063821212096937992121447244345585048975184873963566613549610004584795282908742709937712288310431521355962217933133948083251117855233405432818007322431492038223390295844609847372313241684524229720805735669570417621894840763014406269400600464790662165705223725540836069780766681272284049284643668753487585797828737760078160249960316848074665597277702175298220701203917883656954539145785812769776787651206826104657490461571818666763940691960894980616744749773893467342962604638808398284124531256784952716662565915153444973627616678520879892863883936657847018930930174330430862228952137831259264104862056590831315860898467976617931077016223439872149529277032869190005155163270335056128945870769981209160053440955031771050511792468605381099079533549430231472816632491380450470817282081772119149321694593782829746723901492790635194390348406275124287867542526274428474212482437751325279325252580348380188883634120406647608674262348563116976593654437772588634886129163131283067093692212358347552301036504756196771840446847212405067513463552881188870922540221193216923439338434924135490278159976403742303498733861503606879966576532643834537700904848399218939191186788988000591791783322303817519533453711971912370062661929205700596414456998476691590028161420050296924158776347905659258245001180624348640306622386092754078153526620019246086714239152183380696443911484439025326790704255773050364303663426730287849602657824174136804696745956956916475393401909247867100408513683506785276209579191652543241020481186761801120145621787084879265953033911735165314677040866909828546646092297127736926110640897360971376979249127379741866762848512163151347188941701512988146738530736807683196115757786739810268532667229223646797261463799165881229633085084775519700279587801704248058934167439044074527870316436501133573592518097391688322924756574387120824544356110792944635581568648590661476670732809791781678204439228419009664598124049324759578397452205226439488261614221850048216667713211955920244367342831246757872237118386120371891864299928753109182133783400131279329593851757305858519097521615679336190655484721366830927247010158768537481366909151324557296412500960178295453428559479473223154841035436174069815947068277043544834374729645990812497841810299238640093219949371566753984060743917481592686103537000015477734162176081908629879532433825164761574457980679710732795394199729604444522310250833511448061430508934675302102843281319349064496890151502261616624640758253314919751298991139130221074115415072258406072422113590022020409580042954051650501245775567059848777716950888691374736276752233490152928464763191617418203717394790717912475837898083693146912925912662277365743351314199039301060523508253252942316010414799352819644329065229840045235948106624724249545989781712839700070124554470779281671209109751780440706357059310540387489114684977240426954512764355599426439305130901189146996973976780558213975445943059305453661746745704627273881512608715804354052608815911391724784321583872372092222221412149048643756021275093558953714932249396223345474939803129888980420225279338888826567252596785056976699362980206448871635262944483065265322590917626251557219560741628358623879662959145661063188580326567147673395329405364889885015032137326969311303922511417176463967703653509200344006536779735387304651578141366944550350971050683524447546088068746439019373291631805564457602115760453873021543717236389988700176446484382089733637729146062879588885000698724439648032754709022863054312709724190790096464490965715739582326470701531973033091800137961714763721496615108441842997141617735166764215329399685250918444779302776112944993683733568291995204284113637252679606130763724933104094914618890152627686609077635701806063738394538247956888121776168855691209356729755035454344421277135149909733425002409640000690748584735934974478803714014765703168087614163371355172542590017841989966152613849266320838593480303692785093214614778610199007376207790949158004881535949630168559655090563507340660349192017045969783148159558271812969546058950796502527776870853311413562037896807454383174575044241242056628589175283842587508552769828653331155692061119779129116293343912023460467493154434135125762553028699170871973661730767575163722599296629201555509183034959888382670633893444579019477514037642043317820545590732409214069389871228464440549639836416675817807508688732349016932026645005250212352283405759998925608218555989729256261793423223318296797642505458276290312740802427972320603654499095163601750773822940563420543070500074408679952471536415829758876828784727270783636022419741980662756966965411749884692580628616529960933061054297733359469866035269824642711060343670724004875809179515804430128986524766683017769228763644904111779792736994730457238659189683159109762225611451871018010187887254520410671537116789695717549708744349098175928210637554863535993269430911363801285162382334497755808252837730320161904909551552013876841430314311709092076727261589079666201114181377342538875096870396405839947728949067367863229113612425041112070097518605677764642578491537384263948902710563052643339705390726966952499919944241181243312142637377126680189360704782804766573810558920596416069012414166222017556308778228532870590369089584993763818814217348457152825959443159498791269962534958292667709545823580096657680978576542282219109378389564609769676389453266119542422632792027543464060547176408600188964547624243627487199710799334967117281179231947283401105175580652998442299449785709358122759305928506226895340392692086289508420784927135557109108692537082082421709635899203005661856659816349922960566593209000392124699851822693087603356582328561131975454378199286066350198240853009630468309380274464498770079360235161871235386733068128236993906652487893752879538567899700063482643538999533988295069770034594181114874626639697929934296302188176901669388117768862637481869347172706995932960896938437514596758536614038624716572607412510680190784331376478196381947573974517274311663423900625188233547622163779336519684486862624793953292326134620299967101284499388460837031646207109780690370896198996690189421960257292853194971747858761956246827322588750463522794314667695477045742299598637959856691449150156846469775317413530836962757654412473945415196178182548445765499229156860762629388498065383989072520157492192596180178717524357931605971500544078736757225418785593121306240071811354364781441382897265216949422451284590355024600870100054753610276473718041215127587329168452883023177751870264059855986180139745827210110778393022068452623944924853465547122516123954030718523714280419082654304023429561119701791219356637520188902664561479170671222148584960281860875272870274048012489756563765849355979619482706525538542099908751547543102207888752934064122932615970918127091594306290230018173611403764216254251356228554146762232520882481870136098537444902073421623155945763907544312481310335296031769603242326719608012854265914783700661889499125821881831163967961275566820220359142609663279859923547194952867218958267646048676945026837499946615919361470605882526361704082031287041602107553823449470172191769914981189909816569694243219541290825492239261312337343414386448348261428797172808664991569685833466639034725672363101824110136943312074210346033326501127380194715564528644218092126891389536920887809395231727378979246653323667664703137154364465009294650735561883594159411771367544094782213814246534848951436907700973662781998907733241168334781297036348906363748146808895614399596235387285214433813620268340472029834769621644060521621840462073497854730047906800119278516949367795708118471065197055063405111711326266031392936236428673186900911911447642470412470007006142006203494443798916641665581947498225236446191485179276826598710629325678617105130346079698184329908480241789517638503986868304797439521563488253093756776775927597491335754945411762429262520963709969792246086447704582123640102324549591562937561984936733489073644288611297835109002444162847620602737491711900351804245740887787989347854759937884491560979816989478096591949167878566614696185989434473217640747427947088116005072173846216839185241402185255843534815252236650041702139554903578239207534275225447750679324664284142019010864987676486679409289407397214145938866327832415262592279045642106736234447136753257351868559707192958853813083673712907167704767055511080911725987533069181521441550194676550349860872932480890034168933162500909845294362200230286998000403514561981292096086045889173905234024516169721289149604942846605846799694655270098261522859617237865103228554387969247009081842972917297215248980724298361893095470502841862172526145117484972039490484191091839451565425003107200188673784943503279277904942806888579042570567521334112269518048827600663160413898303436011562849173139952229805390355512878337563889886611861682078092468575759809780457728526015575571973147401205437483736131140043977699776025784929001918925715318554469066359202924453256145653645301554838871701907203018813967363626137884035287950757391513375732343672053318254131515762089327663941154437790249462143525928109579113175101546538340776146804257904847344860149702656741377617579902808367906321579424383780449325843535109712562719777354674986174691795360293600445532709644095919365620683373320155035987992935833959856055846992985313070025658924584634547800216254051551331546074681274772655027670002588623299025110324643807266772851543258269863668165660156722242222077208056282284532065511755259475855227527200484946405339172277509165984086256547485593278823198285801502366354402311123511185569303250017175310898650622870476411040983873386363004116885028144610830364175277562640652989634017218853261238431997402777227737417756582222878881929016861170761694538834673209420423552693115341607511037991170150341831899839670403547113921596978276941778188177335015134878568993559254749453762150701991393682491193115487136852527044327902443209258335810959815291710194146236573509998256156392273834446895908507610094120863814335427078416121071904692601549171088463167099135425769099488118925784613591897564859280586382483403706691425738712646022047219905914770100406484314058391431678421724810520388446566164439803583058310284476896408448369593297029462418708200093121474801092479247249047515497292069492818909766075278357445958408577115848345778375207562043769151003158331370810985320518276784683537423197594643304817803120220835664363927627485692132760186558757984672875610160541269486812798058145441889878434291422776584007188461714935339443829254309411314628029373492355341622064293471846045185718114406559524701560014499894033806243770372228963299764318386970494154611823186340222437280561864949736834684865932342685557386673864236672776135158641851507633148346362043075606441697659800022425235377073507885419584370749837545190135538236594190420095592069307583680851336423096950086425956136880390465949084408285603270323682320692909991253702531787062573775873571389602239332147810850619542217486962121066267904177334797553756225498968866227007105468936056430984845502502963969274175174200175395826778063326268124390749565717641949234985815589673041557982053006175009127536372228651021937064610698395128370719341373706987952148811234430872624115331639355462080303538816746950833262090890038791683186780661500042760140809552150014539310990209724715742183970096091617786816741756401505866677821028092587892751169907468711354005798271925160249569213873739138902197525881088844949433982934643383184573788410740329584587986066958042797603198471599444094668879772509368814599233547168863777925612177974037919698378236094067906175711871647977312755921484737792807715175037819657312292228440651457299762095474680668976762164467379514544917740243648870487701998449090956692822786304184732969273014657077452682468452423088055172032951738450495162194411730823003990081404597815251280013392992788312578595608435456810209237406449758145293803468063669492555001643487410085191017777470357253770483780593522527810025689776430787072332040779855337757544849654521093772147725229921368743143265972869926748836684180589218053541786511287362308794172816950891497354277225690837196631774839766167502720077811794975022418019722247644636193485112429391258857283892875188832675440322670283764671094866510968416167158657720470033520626135808699096483227992333862383143103651467176789106885368272193503466087104811850449425978253504430386107698782473043253324702345838250440221371479930189015745297550793472473792119368136296021370860461131512699359610524364111281979421679012401922321088097865617392765909971985106099572306294722325538167353991510628177162582437571390764806814529500749793641973534930518335044438371118736042672689782110807442745291312648201056432521241608517854560468775577344353972247226578562053241100517291814959625276443038043585341319683139378280246315559695059854407099952815416966422610309630028148173670727054174407396978064032430412605672181002051046883248895802538519934933145766367168266961479693395204521226144706334946320927674618880439871578795283757871640361158789434225148612832210291979625507352342628179580379376086910198931943085678111540953212651856221533327274920320952449907479513324719823397301150103675515135603427095951031081085541653437649713643882335080074838678499463561456675055549918400092162110408150931322445834353942211780442866610846108529564499274115020442214685885958351635088538629269530115212793763925202766756582306211205982498311524624117463388680595902913940879674275684628322141708369588305587708111166898739397271829231405395827266592429425904322304143090959791567166236489546964011530439996024857445155315469456424372602486959275904955265208301234001593408414057862177938839332704185975198183068540515304563473382555456790401250625509066846534586600615333671344403000635169383500315372026867981481441688589895418190561924232059267593117667194248681409369957026185848425251563598303613903747243634990616420211093698944251544862583894583233314134414456139743676483706201456676492151115843495844505496874605210109977288764723818496849651352409033972350449866600770223684760807476433738820552165526437813240125427491131887209231636704223701386661124629253763438947463261073178317344063065039663273686684313717981209975886645258851307991806946863523488233387597059529558764076403442257162253088090034524661929626267500370433207374898030513599459724939767971372765452277122977781572344432735665960438857031391994998490400596749744699622590970562616641514637743241295869855621054795999860249583091131776116249868239026824593593955997192017193082648514774243878154366937124009645888821632524812844567698112185219651134621373518889004894383184854134046166522068264497942625119439447009465246920256192341095214520877679061809219592826150763235252233917902821928475284068720495120378903278195619839364241336107601613525325106386521791037317095833075517047215683380243789090933076647227191412023228358464582545967683393277738238411174594040384006430762045752778455167029078938803395018232844862659423590415962691217465881114998122941915847016198868441878397964163201541783862615844077375018988448168899021172668504571903523634061460325624409958600077294966680842124657581942844217322031021782218667131987343041028912368125687498332534254474271076922842573604705885868480682398303739352061547810210154052442144641981551596923251860399291453355150350112844267365403786231157684478841001135233243594893911193732060555246985326349733401560414135775176925518745720758313614862432201626130816465630392474537421454816617232303362866944091699306441980919311903929966161783251723501629697976943819677319551417802163439777197705038725313517961437635747378929858718297033895697540772012114315591106951971833157855027956531387422271231709996843197602688628532565522130186131524554763015779281117160876768271263179793925633472308104934704572165221659151546595127009634516544755380412252982724929269182662795109496870930616403756404262048481882177003697242850265283860688582436559120531478125117726807700561542498195169045292409036035128825961700643979173716282069582427934159958174461901805101292968097631355086764184779660123027435847513632868669700479730402351665364014535554237534200791644225508373421647448268623163720370256194626297847854869189397517282937888752943729332282808330775721369907687019273076947950737576420194760317773570385414865287636665263824908086051890436374903286918124534825491427196653394038669945111996115667432653546381283232349313632932563067481304431048657649339700515812095356149626943866061207378751914531943635692707852499980975778460535214959493784226881848637347663957527530729441287416243754175098913338250871437394617479380956244850496723922718598648661013677056628518168910082972994500785024186432650323377536583365677301263390816490814981395469301871311044294343162947505155240076018783180621561963823662781453729032413162378455179523540446661862686683602202170318285046262110666307326699670962779422249594627731117338925709761686199519791600277358985648527457230990596589380343252367944485272832548271992589950562585361957421734313248711239768041653352643978172843940348697948972702770528493928904073085543034201778982457098633645528164311841620477109669826505171155253657405053434489598415233572149715348206048066115384701921496297696631767781046821019697676817431271116633696262186751159802569569372560396768050550302004570304143416243652007174007465306569170317564022229573557566324386035218451723376561966391476758243670633510762381992898727938719778716330603373198919585790472591508221756705096127903372241562351897810624264503818991479606848427252865431905571729093375957065804872186331161553140965730702619017055166612527915672985930349403756745639374295138387078423809644077380310388667862508934016117347749554772385299926649845293976450951816042328269130365775546249129454172989424117590953377577661938004767830699878706593646131265952860909484282669183857480847407514645084673634602263463981981308787618477066978064441077138447095387051270452563592557922292080895497281158207110988512955990998376908866766127362219573685620633396073938565998046431411911214984999456867743223166326222314399119643426412135788449667049116149277711991570230747726300747666778075600025876120032992741827563728890798940730345007117914116920969439175615278541859766759379388121536028731185397479458220948378691121631078931117539663943277450674507068887823400077279863878620370720332700988488278891907622707861591144494779609054426080950673195920007395772607433324617077885985417096956091822337126368844678349703635520658879390371048509081688031352289760506806251321657023827228873086410113805049176123756112170514188019071306395906144162264053062203970178739663471563943143960064080402056592929148567504465773588486091208263245667127919423805879792052079885037964541012522632535970148996109413805770358550391855565115480452138992098680804072627011270586796030810829169249933538390037166394006328892052747838945543810501903798477868959522762238139287682073069841776452939915710395865877394645397044316129234198462647284664141499408892501148093117365816795044009673695749550113647984055438668949342805419724803383067654484442263566623634659876362724148684715723801558570872192576387604635380459987520266907170421861469094455693409704040519497934447918450877632167774458425277770532551985521978004647503180708040634295475953056998884368405636733096171383583622362483358107898177988570725693796538587157225067178676887121323357864998277423598263025479180780021515337854539157384289458739785869927299270155006579514689721665559022207307343978838866927658091113421439601361740263658392293618583106310147787334883599640380399840203117645684886130773647677276835623175796577174605107795451105434373978971787412595941693767440900645500386730931013204136971460198097157111427324589965538257568789564040789451702388838928508301476221753686241031667870468148914674530716857859914692566470923728870649208681367764224111192011323225933401642653972650874147636916401964448718144927084559693986069312872078829264227203788825699666034998821476868521668699141467516347569036188333522379408545642060281558405763293627121793109390912019977878761432293141330577045528909401806107924545667640266732301329077113034961695405562453438491851805420105821663864744012153333224645188501940732513799138075498462740643766764180277043359947164149575854383762082140927884671269029477255100461411374168326683462406693983878578520169764278810703392571452705139963303109819098221177306789282652339354796330896739269751230219146510688360164213420902467921258135346158865799996481844089768141341119683843073213480368184344118853929094698724352333914569591425807040972629103577724177280242704773637597424015823855643384443613160540106362456053983753359235139248400179979360990303682908538205482253978232095768155892971902687998049964035742165752670865432084003408925211275657930264319798799784520568664619448788882549277478889255151265285975024424378159315772600274845708401284622520582114426082653294931662864724997128597058430535947334635113872353896087352589612183853082828750571191204859540804816517111680208351368770866178447698594157611144301156666081188765883853484816643454638037915482658851355750023784842361484931968335414214616896412894301232020589006776325878480629901501607387780640554830115359486120145766641194933230874004393342446049898663238093652939325583152583640702514179163508209806761696853688754737411829425672921721616150879513320577630581111548214874946776384061442403247735202795613998085460051942399202200523116472947656328541923056891726983856169416427911594503110284816390481318690574221588940084374147516471910321790839815533641713132197292905606322684056808015160796185938635472243705501217677031116711392854753252379491880942056497067428594998067525300604139776013214961469515352687740253048643599775886689574145014969271113552241800294619447884132832819683521738038511801021777198013424551443757984828185551003137684301586139267539739094436082711401514981807246600523336915942968998157516051838664780100452773599716217438816793931171003461935609641162571642580905715174759934070646391198026753450571047908606529885041235549989817704340781027317250998106370704781950799056820402688739748589088919960625466810573132267198874042928942276677245541416107827981538364882621501409865884340531896072786675708154701726315456249016814368190879754628525969470536259501612689645264732236588035857557870358088669410091341042801335614578350659391191990757276714174917539760100468539772111718033640634134255931265913871812856077658926219925539044752111912038268738300749186853065712845795957348795117590835765490854535541641664677226221705073187171725593494388454540712054415453068820682019654700032006458695955004300809234038199961655760145825546945026946606568130941589064238487252077268257381542233181574204406961479199261853590326670851791347506369520154425885161528446548748756432202654860267999611606992270650221582534009694625510959912754243057803795825120037914416307080604727873584113889551947835978140728213506561231940454900917446869550908127961696337609293849107681999974510111635844290736050794006992127253896379755765714067356441403879775130595170601446016142555746080857909065593260036760755065681348946431559061699100607292852629212327159828688709649251457011602094001391512333416912290812524041468166500675677292533360786774759329988804067100941812037328105641563065803636846131651084756136971304520152572857517470020061862997163719602239353963917974116957813336448590487582491614171120341709725633605131639698830033618154539463972742413160241667501436747088323511588050622670787329303542346777587211804059140682652385329884620573414834586812184137522436494982394987085412602222918376267387686979546350406292831694035222290747809688241327236649513042088553743954083278336814790675639171909388724361155719996320114537752829244433197940426495080661707934139462568078147547651262557142902036258898940486461731925095970620598639968941617648722938287174175603413561014317427484729328987394199245922582677967157528813290111531121552020773310025241920192024182595223609524964692722817118732741549330438287105525099685721807885233473233378975251636882751924251885936570553698527465934899019296709132250331907337909303710856760875027337981545647099320052078885501662174551478461412636617463299253423103258185435784983118833718815683646819882364571766393974785931852209301128238397206220319085005751596461216057583863684413555882355188143251972983273855276829640900271515610629954743915052139399704059357874417533396648658251537522416000991840276099559701803223164891540271196976036538553486562089616157843659365986427908440001960205129076836884511471523936949141431402934648442219873247272741970217681684291041865236685056909701942266078988040307579174056553064274496461735706226914883308492493731395352408629481166612805052440646075095775064255901403914973812201860287888500928975041990274468070591361266108647533190067780861181036276695600710973498875253881398201759368248597317310059311504367233098581133652249751543777760027943776664075652863564046780577462761465962075249002982269555104240789177528861897853656037989223855468721434450292084588054597276106114920372351548251344688578701842989881423831302858174494715568074177089829532824242103386106550979871482051647423538124594793793839776335099755102988167033050093259157145656862452507047761891578035124412181688620385178293747858312812571156054643221427663498811896850465089085380526081759382248863425105975159556949711997304849266594030119681950006645383552369998729007630908081432381307277603866709888104105060602138556076974444963672753138269605254350411146946851469805578727817389855452417187669849810028346223137200188283962297855805555683087805544728843153493149253304259076280322775827020797077024580171724244181194466445488120991546974998668853374185352577600100362099613200575852897088163480526292577172355648639883822277587582212419205415258230623722180084630030080152285956588080878251966503288437263000816556298773713640864033026555186282097711066858542933927228273352345973630085294480105576550976674589065148805293610138076921255145326574440775739186233266798564010870692245265387508171236389393173557109901671251781094620626078847296188260439240371728681321347587913827979612621565462456247819910183621617733940809986079527292864886758983858796993070826878357551380087284477958293222144330177906196527147903879860307315369830909222227292422689956808504661999674292673511578068709550212034764302616109340927245039955352560561591291912074696284679722426782909484295717905493689411170844382921690569251692316533760433293352568175259269841436917844233599738696056431332835202763916034915770996528020641898872298611284055927397980531243719026225252914179899383305148919887363204808357200100435190275116690403337061865203205237367809183129879888630403846926288678716976612881404760672896678734457260457990501709099891573932245258783732248076784208133001459293419395497533788814782058489275542867720328886512845083284232438526159008584909539558693585957569990274000065109896600789808521855905501662367566994809063606056245354100777811701700558874665744025063888835771000385180855567256781854333856888011499902033979543199659624243898311294553072392071963977141528502042208596136401468928802154755132188038531132386807931853705979123968943617252193719157877507932771179624560443554860043456891757392249697741239697953867508234853223108984878989494460602065671060422566304359960035091105454985804464136738921661664471681950241424157517375379759741421847153515250652946672675138280142921661148385071027911555431259176559631695218546451816295926903874594092931871075811338167341647527115159663693861085856635797111462960500950927994366632877657214238306845737548017500664587296435797618275457246726678809518273244400257793522873142883152554706162340158994143251639587061152471707820898214013396639864964176803497256088973771769216912734879244405753984382753389804186819670849036219023816521501576062643204870995145683755157346934249834884346900608140997122140080875708334818134551350193158452757349414214892999980762297096102395829148723954174413985211601422007184888488223266613862636760633925052298609618500201586626245304506966670326073391935934793821857917804152991701927787597944416153124940499031229611428700996868540816869067317759711745506435681570495311875694709027652911384862212705054966844587750868565366132786174895363607846982090416066197295031712571092534172520784841853570955408490827151483545604750035935571401553468500941744986082989593906315746372967812201615469251252209692060066383225076390048348299462484646268024431608024282326276576615545771587820560674899440119896510554890918386505775460643669562914486942814602679098872698068441165583084461853111460441645905341311153074100061730757414795344279763217307812938596826698277874927758461737823030068877334605162969938161513811440487868598404668046711296498964889895572374064236869917513694938199231444644114532711678812038323569115203815619478149490421187354830640996086694232791044711684002399454233558472998767066663208887900481243635722968334335505887121930567310594288200690488714903732348890409137230793973512492230319536488492671187057599744882250502929860960989083084332630300358010064043504079340831579753202016664168129907508407330068400695421284380799936153288761010852801290965072811741115476801743116395332807503920950831498447394517182699452362407639614536651926524346461419025785068883628720939933432104408946115651252753471861959032265257562245621041269085872631449479531534078919524182945189424702489478514650093162648780627419768411482553875054128531151715112157373585952622432699938865595414339119694317936923067710312669278618153941039650510681743587888779539069539949015458761083580091816388340086995706762171760877446769660138330919702294620011369573806870042527928766945524464244659138765795178264538372750111532195373629946052276630545526411110192816592946704617404875016346667942876888975828963715006493037078146716149980342986111539758694786094978034784739444839238920467608422543330531906265668122882354059710554866576110687098464862702342001521750257142486816344329524839218740182909465790579350166161525365838820873971915823981752264158903924206962821224084266767515402996255777073956849665042790419449733731141069275066982300899416299469204589571837498957787621627602047786822218980982025246767452002470365816388655648539226818048735479547722657630564285291157993057099390341513937712600412075987925324338081855558315718749202358321127496822426787268469943589552331480799186815458255665350268037751057647478576753761853680950314351568785639297890203730900161945727418130382135343453721043513610993799621195820686073375277079936885047034410431121945973109836243384265600495662080027597291269175950113953753350611515646605483422633565838192470953030392026470201261259530208407355708998539801552760791619677205469333008729310152902989331500347044951873117506402006240106406904122865594082438262260906913653291936035849854339875042089809530034497209938304430761626081216759267652921556459729034402265543549540893057867662731367634401183640487225378787650339765949775827772553018431581180772765262889645800459088055208870800813246332806352896482207997802203112143358817676126849670149805760159661914376763519959914310944410863004057922943440805077349902255801977658620873711027334303465765378298573482215240833620780927313899755980877350126989046351919848738228253243462413601942611288275565981487827974030406688136027785062763331454544281532698738460370398012248788403375531983187113766505468811304410302955830069607995788339839367901687566026731831458356744984143209908659273390745687242588227357527703643382964102990884525717819409463314798511250374096339241910092082912057779950459990687406908235080087514689897242160577293931060174229482893500758218551763339941203868765811822713732203424554154250747133092656435432897745651295882007704875266891540634865079833047151812533423003799249929665267767913920028334044103376788880526933023373029604919141625516673218102673345652192014227131484255159462848785648229181663335583805848296384665593964526171185272947228564985643972711095904456611501713015826537645374674121795850964163584631848709381053654463840756062617523314480181360750991889005032537589276448655911800389670404101556946759905069203658349885841927183977686824979029722798931026653156719898327026735036783266331108495036093764641944864370237733967392954818569120722102501575029786827938863213046171849905615960934198382527605121573707098103897453130879446292485113267018877665473398733499606715731558446281358650235142330772645225820752636547286354085393274620264351441856547116960427452499181399316793064890925771367759661494791781633401942771015613142078352765743831588343420286083985508987778170168996376336146959537623330491771654664420003724472585159565383014238219710249337286095838999279747503114997857842434123202987002151130703042761008362282306366977077943915829009541744267435857292233638542535996498495756170140932310424858156293332648993916524370271602929228931084304658722127422433267128177275118908060410123073051026711120605999855232735277990194263057082156955821252592923286899997483878132076114753176597740034180265933288186911241237004463389760241155307626228857758426453898516062072246788222127846439283755023458057725933965102307287353078618421356079788008553324584375421290972660781058781005650423677115895844719696542726032333753450085667693626370870314857051282214098788522714061078933964854380835984127019890412742565168868872631527171763785644114493573504199012216575778470388008717851106884034854937007876531054665209381897905480067076843480523851750818899146583708063903614751956857001764919184050757365308915578639927343208740313028501160445312702486125818532765341263303340447546468233688825659058902802756012065605250730079844043937744084871143381465786810751770429458393283398528612354072711226910177475436588702609146675827075942993902161944725051518163292108386052785526219979664788591008686815712304870992767878513280975024147886551614134613767703151171754460589874593503828752216148396363922041242328368950703547603503744796369977822702583857218560076326011259527035770286522140348584380635366332028368073109144790813587840350117010918334176244727084140614068189873470127609733816240976633556177973166811543589814272915628644209461596486037457809288660726246623798263960064521223979140059159889050696236386433284221937418854701693828959674464858769439800725900976039779911364168686542301885673894942304445361855918962803527349295902133232912550323904781104252119745021522091250862205340078393697694502319184200777454138205809183564856780639686487000378062056289139687559582512310006896761816725803817622873552423492613429114326425025859105647941296177465611095765209715018002134776868722972051907920128421455840404874735542780288242146777328933265973464176319875018445925854475740774006260418324683899568712998236828730896824963823564748891059796940238122359878296945559063223829400589725071583687700816690164684897488779339934485117645987267200769180144881275309987975638127356525966670270439813653202240541149475968041035018061963409713665661097354265759744183747270109251515361474640722701353704758241837253167310411156382327419341381747560977090372069952225605697596744576097290858684313345403666365120326520664979321651554681899051126105596147204876835374694282672951561565460682912528339815920635689302747026924390563047340741657226928019586359613698373828315027301685433317893241567752924100320007447232582807392644834210090721544083080387286781258483834446385946819487847663938937203606090034745504746522472678315214842128692566164452150437636277521760168590728368316888582063698756360775472314936132958928119348760431185077507987260327273360050658211318017488826541324875292650871794546843255913509351019052538328176226177856611717570450387179112884308689713881203588637327177653507168777137777153217147311674733260104524425783597058977132065035826107270478440129099588518077044102490945766486251101513694081215031726574836909162586446590089814443130902968915146834063268777456883053369631355596298853516866928442195787300225167148791077608978622426287763371537712952332122919989553814941042051987447803395837838854385549850795929183186276405560718100836537603896511406389561756104254896813966518380378706236610904220383822143663942224031102589153330165980043409665307098516501883685450607889884655549648431823508382542144051844883195622132587206899163982130075174724249966679319958380069742552656997796375669495341769162833367056338464542041823173424198223476829991964247752999937588035295933975314657594854120705728406765106735930561451691850023335407507396525158421760174318725875190945910285629505195471619010829177942403772992794604122106997299385411770001984298958064676904245244465479537929120606857850718966079877173464882817045107614873663314702070814451411243799052515720960168239411505175959736519530054107251318622368170680968258022713325966016952894378756691973795540990921752769252822262152055718975293779632829500877569335001518855922164812827711378438063427324065613451307879651903248868771014663678719865263366905339179479622595892434832270116265081557121372349079145726703318607014847257810792866998420090685529274304451177304126178944244899968441243884634671053675767418382660558749393606041178440432345865656227139649372872031145459896886466618539561069725859659877013072452077567376720925893998433716849739140463547279099349183746442412513732074357103682671050664384779148466553179629676771392085421373678855281439750718220184506598539017960933935170594682024526612650600271465562025083582063690864622738523096655631320812515193885424040128299625345396165211130328077440675795223406285971060402523323000070779134548029966157797890845099023980293096952468484325604830258450392294438301691890803233269041931448425791954769815267543703914882032934444100080034418974962239075707711454496300857046017281854388458740925886663692817299581730482649396164676580494612464876679155132141823978937538560702992430684900301787355562661342673269713331184611516118030837830366637242842664688898661283957737883447107908813457284020682340124617471099474048190477697867833245332312915794070127061511427553102975905804319708028869237383046261864718780799546066295170557570901760328537014480454088593214590884704317498906439981587548906376565204161412645463107136169419506832571186032065126472058102004567258926161815264584981036921847433596132593506540064200092347136043663510178205584410142932016142999152291230569524801791970386819345677769414843386820575300889371353002912483780575095210672030141909299517341994812817945005144238862531689759478498003729924837552588078044510089075571132287552438523061205058445014088561046462476078704851513155677297240071593822942091305420884451838273703131965535014269578995105030122131201957917775315963582453537522054035673620540494083307649369100526025129431989867091367432170898348154940983661901879614379311524221282382683812960508742483365900816287413198157415699529332643004224007306925753335145750923484383328919794365563614801534681242335118282327932345438879141596656474822758609204531415527217758365454718413607220890731842832549822946248645077425596367852451115323253797301600202113001416911109768919410097537566770077507301675783272115216971758356994358667933393756989266174645694776339653350195052364464207636325139450895442944964133275139415814152481438536882125507477973593945588034133113483298401160525881252008820913491295619447946087386600962728836610701053376655778699325519488665073149349699266278412197191848385327350234361503699566987456813585320451879347516136861601208188458222000688871700228139961904922911771745210281151070135577522127742777480179936749659868837557800542502865881254566390442441507313928172014303699335387567943636601319027127235526629350013196417290617207067390099284006280637647595508292627123737538854454456011291128750842804004996489101449055154802837956962024001358897918282149013955904333515739535159787005955081233952013233262508601463080853068188493188786142377330470779067871453574487313509635993444723448412339656646270943861848908189463048807196719579578233331173933457426527604133354824581969157590310819634587617250562015198510157574112058525879383058424693937761961718143943002280635194595942437877677772768675920259131006356219618243675989337909180116569084542946109512143280698472733845383783973028400558176260886531521472473839229301808816998045969904449513329206604517490024415415303542132400176170484580361227099507929530563107866598494595481792629899977940927760024960745010084805678676692503663457555486347255508272658028425105469553452253109864165008505053525893872093274892843590403947700207718301362011835347917685031240657186796184687264926377035998392302866631414432004166870647390199606124462596332942388697001367364272283280154102157375557300705957331050761115331543502753494046519213057676097556632496261944527311749967391136239550506683913219914448878612728247205576516597469155758781073873487713384697884918340549030737713168476436845966292487765495400537667540159629422454242806194347158815572743473739166634678903238605707356351460324501364379335493359610722847450054225188316414398809667839695808555380243042326223996458450354470035461242182533369807451575288314702853946055548865191340932539956018732001177255080761711555857742697368789137411817764125377765211492907659814308953994509324736366470608746040534244629059436988251564869298852509523385497797532843488671549185276170058040494547501898690822492123031997712162519398019571396288120102194549974031011179200114332044636860808046289355455897622630090667389026965801393259162497567175718968289404167966875636303306400074753304474221948185528303652453109899359570956135470343183678468917580319082790142469189905558228625218903325602069349563812142321931464817381562255844790892646536775070108830412224523033646807218084784164000422586506591545888318452115304766448456654206531021698602863899374071287485255974984264322656015963952211501402725752843989361278495991264786420287683837907200617860389598041408936965434671350810708962151628048188463906712012057480976572541788686264253916972021326002433184633398912154926560111251737704156059135625126849014075254647782587411488746949040108169708952639847812165577615400427271771371581618434979327204571620688303983975500810441155461601057709481500152263014342210155354849921904907313901232697597587130006092127878273117625363692836277428879032896729849962286394494669005884836565692284630694501468679409220653532380661719165230868597000016490039498546400606276775482677635761291311007061339488665270209495742200476226174384213145776989663495296989396514752967553149274591558683245564633434361453324207560325829100502632502591295670930515272586789679065841350227891555300103688060515642280543111222278744537681925703120496269629684687470890422134305208914642011462899631176671467104176813749443098914293424215382232412808189398144089443396596352167869190533440278475634277131673119674868626664709815291748293411597660007407604859126224301260622407076501523613209369873774194582894919375734478779908815824153925065321094246236273316438366981962161515255829358532976618346981731121635099884293120497575279870164983186444439749424521891326781103564939917496465011822262913483232572710801389661434755744895988695101603812146866427754399519807462518150452504137748164658709616291037545955881560033723801875501236809762868388473319555973731987196211287488835501147070590711100099425928478843922902277647840145917925303618732538351920757244933699097541133775360010899390764112731478625892135149015693352433179643443176846933871301886721525184338051045483903127431689523520556167676052875232789760221283137462046900941924844943755133542360711329354929433792583646574281363900798546545902207981336095464154411701008102597662973306391103654160052389438331132844898943684429466057894380162585103534242804146388379353427335292448438472528692533429321840001471593159002525953262975363386353866880085061021613761561696827866150173958910324053482899550640415236283161784620372924609389787860112238503740062827128156985737780064134676136762210129214317087515148039858474611400739671496253085798188224254235065029376073723177844053969825226985343503091871449940502599238050715946545810123421259854000704211553710694688289693016071877222592812054468783649577145936004097870958883804176792553926346989210720364236391755136897544445206762511710939179053548861225502781083077519187647431441048361431798112753321942529072567821640717125297508799481715019791461680992250517056187680617311882625111208276657536999419727993877844368405104297091793799358606977513548390627634674024574383760935496527481345682068592809384501398857132320478679643658781134518199968548714362951950928654840245309314454015903616441834711982117075341098657421397203467369427703558665169946755993045803023358497094164564820484440211944335714558108675322066120829142607720741537131182209266429029335110281456361944195685012781931789494306664226590338000963720490559177429621073157539320075766364622317461066434439547456765845914144280777950139165304726600243154704519794338711714431061066822834075488798086202879335575998926006007466169646604414543583557136792894727475695470359771358244776505063763951300230601040709112209039058921060210319230600111981627738309013126732447473315892022712177606277556764412970909267184719787548205952359683361704265318934968640458355049934265993382116146279977952170232613559593241683788084479052964814083407723078913203805757213951605613569379508706707187516650535113937413568884328127032757445301947614659847500646485388473734942886169078997723891708463401733486959583630618093470828085593684144021518544330695887383878696596753566941122511045032068420695835723756479509415079119341235866743690569201464991217351476198767129899611723487904971734532982016670199690708475978890028508377047548862915611716126393997086432518180193195178277445851737808924079018147216094673091259136963759515549983360386499596262638667476820112298329409576417172531087763823293509682659326326543559228782588360942265772634103836124273849554281058488840939334425031161680780459466051623144237338012171322531985409027756927099558498110353830798711961912398822393341741394093982429779438831814846816177291349265609899545767514450762184460059977060096684209423014783546868362906217440358707450647423884427176588000334990769721200226591972909912136718093817011153065384440985142198401519993821798200057117436090071583915240113427753917711286306713360443875465257994024088142628009998828798927929841682330061836398514831048266987068870882333267123903556828827085683212244673059569965513837943890612248111851316537608651201397564839214249963281682385661682732644402511179617636267288373747686764016539011926554765911142416914198539747081322442218041705217663245235123090734151741445675966195690480702391196812436805609103321200123004909072665536905364563859892580427404650797808675511957896093946084193751989415166406750484346761021849387667049497830538899005905590644992672087654871443776938494908854711546151328244874477142838727923809640875735732700758508398233786940198684056937096950785311096465985067799433182726836755318941522771154864226234746245770447794808914732171536280443011731866019465092125152537998056532207561086988410921248062333787192673421793771997168648381658284818649817539521098155086823696547339519129726463773132148309990429502029293191902342909711248044260878869495809122984509944010362730755017740296520660596104982242699053299162616001855471372095837295215416783108879921655190165034891153628180820687150010711496136959464007810439286945463701938831481893105546249471142372524364304760207466617829702498952362420512202184960772575857795056964182444479235548983521763942270325248493888313747518938088968758512943125001414184585167553077769647848203680081436789353401293604184497030036768547805607204770020644389413324046898947330466195755219372415084431289006864423027907424094675974416332693101330178492491865156790293380909607337453949239581849113439617303489640473483689526414622530950793298548495833514515153204730373957725944854497316073765919123187449516130163300657177244355240532263265610112859951871331634024417847858723896263253768411483367532740364277644093074431393850045134320375462685349507168694206312177360741532780595718520701918979082110738936546001102997346979714688122747961030530791568291798444795429498120044375165236407781248003174270981729826672762056030974033199926254181553588539521369434491663679193371221088252666560079178528800041225663880613397619633853690320340723022360085022370913587301800292874126731788614995270282198579514314550981285993069899746470008448798473059977464077574544212368801654382354784666235720303657212509844525098548571816658188363756080026860995182221437768538465416533228617659384594758412296708323018325256872737146252257745825511770421982983138180715433675473248312176808569497766704239380001622142628427298133281042391453378419356737221708459269613181069492176590386704415758185413426961093364127841704664963314069653532158180602998289885990600276511885641619775997553818890164698796675208760824248164671023501913770863186203199034555724510678065022580726311567327454101038320939669251616398403920038290464122161968958938055700274303223618237502435276542217465513805710115107949457205307940457235490513717073475580883141933946302596434032832635480816630280426346843429434467040572336969404852111630123934096490128525340080318948841428178379211281852744605083184713395835486273824109827181573945099040774633990079850216107886867482094593289348032090038953344416449449601910334043154284995030095045677643154101493717467229735837839131377903724591472490817263073947780728456970135836998195832004753664059973456470580785651304240219572301624212590390658540977795189847164963596231909999100856515163861097643391773286412592912349878206804406238695833011982407599051990019727718116773767084510104013388406183917209188539474555315528179954081591106319176147459203636403094031129563235190703404403051990031185349826219553048110751901127093446742724374353631796919966706544104420613810553695086516610972903485888341971827914697469324055348341764218359893511092917217592432733897599139204507278682142201014920849488549633729686087274765841414700798587658975908123318940036968403787487584410487676391105681497360168349253788461512187525260379235023729055563042516870422811825443742242123972362332026964567862451622067035540277665157793693227327878227238205307964507021994940421708414345866536289249130364144354359460802798387356138265717535548525714310769579413423313391318718540958575427335257353886448333493485554089704622669337414940898597687534833655454171965641747248944165537462606830669293977236247701001025641913235673070029524552829868973067758224061299732111755305746251374119625710377225192709286284993364008833197526838042707586587999032074996413127480516770321057127889527597733229903944410920678782717595509286582035977674209101107235966501352378974820129289809510331455844931684176196863639141734741922089372183690202891914412752463475051845816004254796592986305286434014846512131305946493858190486973888965328911405767291669802591793844189782478444425529159310026916133527552537551916810490838894144193346758790698853875858952472695830957817763473907271682057313949432114758370178009356394314998589857743415145616503234210733601586215621671189022191004869768284487818808215930169227204826865824335551088901513940924911287115088165080341266532322274107424729672143100579419547537946954354977217105602573523302882787905560226419279449439918762598126168865091700628838685182285871286028367576678485279046409459297730832875550483359929307524606687390076401266059249524944857579332682719186581089751062479495346543570531879412192414984791774338985496917472424394168342856642755961258060049246765760679600396682094863831139259242589060944646486491079571425003777325912556701270367867834152434543554468240821397717157697405524085749350790877689663501718919062377322712877426167333682302652242064091434546547541572589375673850476538512867295706432776836471375243995464900109597481497188238253009967607038929607209563913574248028095220633740484007137719712645395357374782461165860192196732139344340010770265345878149601777218446253340298137228763383516601190295201895367843955550127161983187166299908551439563341361260466018945258871327448517796558665093839290582229289156094219015416156220632197406869720473081879380439566895955721134936826559101372965977619675017488218716790240601560871446831649078494882179363736029429108137615354005206979913256709423437051148564589431415800425804084655910719962096084803799685678005180620716413312237730630923706358711003402111498865638854381138647288986582673735983969909774495980105462646966093274867317921696366978196645862606851296418488282942544842058837796648018544180942425844485987742444533026853494588901821828705298157679624008380596688637438867345310204403881243784978088035754133560923408790110552146949690559723644387004781637108729406364969234521778256950959980318661541574392545699026353947209748645095760118421133129168365778285395179350916450393743566418439904469404960144116627736262616159955024669508680437179536126143725498439438643951227064906067387643715701985770870164583194116448607571754168730717422631326065005688143663145565813806968860691150798346255015742697322286386845085222657186181284294765006083912825236497365619755519877160287937162977523383228680951586537531773636915575623060923302627964340591233455231846732024104201291052530092494977642922212163828808270786305267808569260731524903815144255446653571498145142187405506373500417897020667959200874771824919876593846915148489166659906186591199167058599872504592952181102069671875788718465809450252344621416565650451952454909367849703858983775919431328386248119666755602138514874283534501199420303658391469387163925890504924981556106439190325027182241866579245304279421354282038867455946581128369755305629592730862717259836048979168725818602179732359078083288849045255595249349843912532441444347764830413007115232106981573784842625042320302341874623210775820077464590322812742393028594845414100464887408819183052493065449010459499179275439177316458138937063594745562585869209477164762803799509125213670048955257675169012634212514550097164113436591442668929011653120794742176563493523842744700578889741546595055838229288232118682111781317279141766066146562945211498406153133165320910652629636854309066726370379579907717073041103051743890657375293055440782881279834925527246498752178221751752548489662588159254134818919914219944770453318403023770604062989378695782525342497324468940690452951447902267202425873059897998121342471880964977540817108320117897377375106859037151848703226979563706566051251844052211368532566813513411298660665654638355208783860346378954897271978741411549709923534846607067827613731048004376846063598699836365993062613879516303546631368997754569968392952646375904287472817525847279154418619299633649753628267472254905551014103366239864915263891774210243849960660430644663109649395246311946737984993236760170573194940763374892740761943148993444969028435444340722365044254994025953264195251275328971526335919852257725404214225000435855639849063367773699310343683742069837871120210829905449780845158421191773407476763985451782544264767669436484455658194650008879395034455170641259621701607941837653471143350118843735891086308404785969472701794275080781269482737985507514874679503851367317330704023610106676184100158759214314729499957094331099199558937826627561729828903313141290962736841479787405387960752389103867150180997847799279870329991471678742446766338440014930589874660564226817624486558982827276396658848190380158538327390048546803892049359877112728321176189681280141396260442949329548555866117901160054497205715193868548722694839264141570604546877032935331410864014047354861505643130872406136009067298527728798201453344632818976612269495887287854332810759779971351507696782469036133470205458757676237570578588839903968975013740036851910340234156654400562144399960530600233021036379022707318754198328201654287349597656153171051319624127642972756185677129712363470990496512735490907082074863232778887093229358568211091956642219056704518639645746424814889740499338348785295923106000435666990235266965556707985645379579179558183150492586020863901059409101125533875116714517534268216892437664981367660547539302981289686078492938454310432118803726611457555350882519128913696918997055713778820474870018176778976035351653521202957135664738816379142884214616005933916262693838924895559451877780378213271786546022691558147825970626738323783111429597158263155987148010792502299632620071991274909124737871871331866881440481316471851260569205749731314214347680098794785556433598587757470205679880941846678202781267863743009707669907635686637220464268971033641962677949823667863961237845548713577136691979353572614497385296511599395291353857506688449812281856982697814311281908203474902063993870703665300821112808284619470055203355440561510508886299752905050248679739989343283688444457568316672967567234414651463364676722664157606218604033642290993192627857468120031043175560523362851483873339036877107859258095963794766069848633877323387825101279683423936127081592693801379571191130171391324957349153412132966901599540183966178322911173860535408261135712247033935697940931999934283027139986249458012002826108460953577040296446814380814132926953173173681045064843126051042154880534415210189288485905629966159794732970780147612557621867822563395995473015894399360164599159966407983022939304653310568711629024304863943641567922047729266911338202267211929945872361576141432522460991510436988913885770934682866750208591992436344114834524180233496417027997034876810357556262479462576039574083958011795551878890663902667691037908012530646346509088984972151827292828043521260771666802089047678114106847452577189576387660270914265270264940173310599574168893935789994866732343078713458937972725143856036269755686547867067619099308226010258184982541933395061610744550385060238163225861014810710361015059076672608394888267236952114704904712275082102146826392104658684763330608131386451005176107665299962881162439899811473195780620058403066355052732836579762480107920118284187342099743915699748761287666490896540640918481792847486117564825071645425910424912029656388181758874519558136114305494055805558981188597926475799014970174500989814293042090216374165244885256654208928345473629243901044743248175371897559393360512669227687574382384001714331177133216136803165137476482843439558964887130988062188392906632816665497873358025257082503633180651963172590814328980555087537940843638246003213262768376446908810149144900103072588455837429890501904688765242710522176027543745744806917481384501460330738712772429118181344765818866882358630463774082762700852279150904226486183890202029391718838276252343755328206104873177180304290175685934520709048239116635945719138144878331960541289781295469552996143723901852477273287223880379767393345623735183089975391051283973414921124979347065605849523616781172191377809692541710130051313479663251326910175600797949669126863526454192787336101522316473727937456084198775593868686506904770020638008666967483083473776419325292635526802534025990413301999139187422206783712713112770908306928134035788372914252493267799349900770946167941222705857308389411131209822006416108557928868796420648406195387147621811866287811881344207731327930287238004799069300837734462320806534000907240516520194047849680042372545085291183915719891361930371081299640644201944967285987201179431734658868221623225120800395526251670123486773749019583268190831099041386180306795841232386887156933900552199114315470748686120596694302809003993586855631181405079589117170432921852674865647877856926184144768983007019788764776354651995121764829181633906191378964921349898885973556797610174777257601881105946321226163367899075254869275201387298364109743193244543795727366530770941368932636359857958606120424016953724779879024974051785817740359011619548676061068633198485527459471101964744296959416668936287393233690213522240190012104553360547456781582993717572453571656205715065358209138910051245575083552005568746154491356492990983872797065606207019052958896818669109186970754888524448123174383391090644025523872959030987736660152690694177535057052000785048370623934468162829190073801387801909404290256453317837476818273004719949030276602760984723834575390271379469544636475338897670479034305116316616163355786382844764686443913048489713800561610671507914872115137494372816940235660318626132169251151568227620337423928172594032416178508811680921264234203713041986842836322832406791085710367642038229102667075465853486882062518983415121408199228359489964941785593705549837167603706772036736981951005071846400459798025403775605399401250208882574506516878471213986375707115977574446184363558218409527854147375240548156411716346910014007759755470222004494939720089058494210806798907927511495841892634708588222556406449299039853135934143860737647146874846499756707697393226928151295939251677567609262822816131115879940307702680836527018996115850998191206655502151614878912785359217450504439334028009322703540191422671652332907078941589762931272894616770220080188579344006723893380302616188866793847024023997159362517666440072698879482928358695730544242334466790340518317299488502155854703967478194846060440076982073311093860268517216292570670647500066174935077970329428933103246949995803383814045493389292512343402629117313847545968731521867807127747828610475644434969247458897148895334658938322739820960492395064088378731243857670387745723628472895676492466354854865352050176578028645231995882214647232444626903881366069526396584904978107523661933001051711097884647225402010735840778205795741578071514665773779923528748483043574228130375887375212760674963748192010650479384300041217111451311836316905415584914385820586524530862250633686240748693039310456366789463004177408745368674473824838943399560334332560634731015936620659419421356812877216587318067865794199751741865489059155301121545246209937003378456630802481301815141472822425554622241732858683072733591981891731893075803484676259069430153573547621193467223189273483763992454715497282128118293808071722827757162205740696187568648276804774347552390733981203536621526198261223662749925087196295178624818329764467763793951520761466093465209931483102140035202775725899090878401404012986186652745334432231936872665023469989562705961887400608458012675229385354372713432588996729372811970370221239025201325328636650843129079537678400958634638014718239995916101761038962904942347989906236635721119475344054376152369261706992862874553677274318793480791426209232521410021894999783069302462644808857993622458609659522937203381623795827465059414172546178665527715632067647695973205127068311287635148777118425672513557814834317701561923199215320461459386063153875208179692998261473181797127760892523678341185856424276076736408461269771224892662953859598717195570420830364663716749436451427179713933685187806880980423453493619450755869142718987143188641491906049434492972558679320427020847870178848510265647996274996832532916826518792120348113307235996165995114981705543028376005288320597017855503526898550637105055950883418670596890733807427417149042475876327960425742237271234015064496463447650537234375816860104577175039227205431107709674563927922095938994879817595550868903464940481417005441947764885669859296463820309334141474099116867179588774147745171432972147173651820144778135719772734246241412551539496270746400938707156104636914192806682344881769731632926622441494858573323169087929295535647884144933025871045093942573340506802248496571017151681928859831330731406477936895005264436467572298920537891973963861014628867660319988989759859361384309524503851931628803928545614999672930354868447481352064662397692954046743423671052725236806140012660093815271968711639354925636292320175014541063938678171021764992052825863092826372713673507640706334724585665288039899759864403419093370968048288770990787775742981017771300327608322243254201586877630104293644259406538608761396963203856064552177792363169363775546748366052134711432838325299959073219017593790213124327308455722463340067770584440900339641330138600149917111165636997011899680139896687066765977505781592952870399838790917638646196428733455517041143458410280269462650971732352645358675262607429078476793662968619290405021531546084271314385840854730578606735407521205416145114685703365279381696843516389223033415561182354877732258348686937564842660877741556153381668925922359235807826016020932050916939806175754220300974995790811519350283096874137805017690931264806898296561703740487011755162766929088954534426490703188923667585176580261113730706089160812401356332828938766395118811162002983959857519376609322961131769703539080358081182860410936853259632298061434783285335460386496121610502216239060990170688225726995568994209692024128729430554450564704944623111678041461456814802308438191413441732278940749725011522238032408843625117002045780416306230543681154331461732461709504059479561443003832657972039894961075022518993000790784251469294611158021046143280017059921552242944030722207500838245242154982914569312841727570663567087023317746185570502716403352877857278112279489709716628837589922867267467449697051986922545275737880262562504558857497332608224268646231718391922084202747764664861490863611560091526505898792167733861333636015225327885269674467073676962035681370006244182395649210921900119990482125054151058953601258197869592695106935896740495609943569769861974409063865092923827272547510612472404720850882522948628371645817958842457927865529150362747290459297437048380221053247733707528166144194065406754772945125606940428010488391664709879814879834450145269173920492733886416527892648801646111929965143625890263769548437000050108298001559264806838426436386722651180149306075626988921481505005607369451669198478255696228413889360977336871521095049518901126211589810647233327789947807796283987144973926642007642068029727309893008717794371925717670244195744556241438693598508419029657069348917272931948753204446824864252775826534377648623491089345166837490803302006690636983650762467585889569445388105016970641416926478847945312174017026078055346950052529745380841152558248211315929251276329877425665271524184413579474454198017334059716080036568823914354781294419013168858177998680674935084611071596597054418955708074576989597427256906735406600086417393367837822558673314989945963481463100242817171075303562611758246864355645235399895592288430074423977577240084858735522293032875167764215380342175713706168587786472370064971198459598418869803389934279236864438315266532937672003014738922855681987737940433947112598508630824924818036996131844688881536344914830799903998987023536221184087946250759849627323814197099998391671815871074447551316736709764683023185496715207258815526886991406348199883367260020691659705427715201971683114461232411133222369791593715891998447337319119397791964372067489378621026486922646839307242498710556655870585247660889817632539545791165148846872120621895484869937047494064664935711477453816105537856073649268122508593895731008010142775834514208069243825711996262035640855494954330305292276406507377980741300148452275492547142959551054588574906081344703074224274101279103873952466366040472414880494621792295053590748041555567595766577133706641855274893791327438408365663134468990294755907918043659381036985590394587994940360681179694545310604008802702392713384190289327696558187254809723956283960654238398766096120244657045788441571927658484436314759603987545104842424824797881194093867222535565900070810064524453111684765714871287598100525050253836740758199893021568659476351842266687287325422300398470942449907211148912284973078506414164576118028911961024441154957329264691291928598672072107389681615699710292718478040121377129363624158853602057401530810569543286889313982368296078616989509574674240340719985138640449404018421892432309087797102789377002512983566635113265955624465528333126802891302032066866840225385003036741639283352446615592577760362312484414299831714429933841390796060781823391407699334010108044330030346259957097033270700296820699577643917780698243406814347026040461284925656806740391255178506656685057044234165192918327366083228676395170246864172592086281751722225926863638878070131442409669042131789188552252891554020056922934236630467567251545200685207269911981255854937898282641362323821510790223864098672372389772069300870429189366807635932462753784779527372295641116640183637155603009103118792390532238904118356494001867831675677224927344321875655666860699569687372557649078986373546403803596482913991881544428907215744147260126434365791239224902442552021881528466016802856650862810093094496250078234978882320933562115904656742643577391134181880158674927880857484255575891305412526105752377214675282946815909589446019385776148458623671430922956868918936338550565702115728695254435598902440221705323755197313799984627324257638684693448447610645094119087322680179190717643401835874553264171949318286243592927183541630817343663981077590093008624672087713230455961347882618570391728851885461913290428454019628440229161494907259720006867916740837141327120543650883706106840610229027074693177475508134822130063137124868696758099018729753272197755494144203021971727423180124479177943737213069922553935858596429283397750505876684501933492139900504878020636396094831217324095079924108476694985040508058658756426591901185959950081318736049572630377507801746324579243590254266202767999804451019131209934088310909968589356735709832815969915374931174264560033585238089191476137582113212397440094980603923840217419775519986425903319539714136345160317544495548469166244830486185156963656716875164035901917266513417151515427242536486965579151848736363327412042723757723866294958980310101272470076200425274377092872381074572774934019537850410712624956389802663891743616609762555670393051793579660402162017001760734885101397936387878913704056847917714257924547499258018300751447400184004916235207956130203631501644398270835988410102601174248145179889331733597416696059967841299102422987572515072988758881177012852450894000470492008166843244173334407798197627911349141898004146326242369986121936197406983475482604232477125622631675043546986640833614170939154598840771299272581201437539409723935398669849355639433540333959570887846188955328852343397107039069990217979581279414336394858308079657926993133802556227887698213167319743645790203512081627152187842617199729732257085613336982935879048701926573723137788751772991268436520842199335694931280858260525168449028150664853421890615246963511533738332882651094313738329831844423733294342321232113480379502634596277344261725470823752073858385776419018136331980129411715009000358671641073864240938086317523280454045051647758028254869130186379367509824394540130009465768436094227868991918198079143386752281782983308355758602431086090256160323006883980438974635417371963384857343962889876395748313411762742814785842654709244654519894692398601275510961744747032110407146412466357331477734907465583623331010652938561931338135040609573542217079696142577969903386960074538122125307701913950787755095502585980719771545780707003009659198934821352657064468435943712867445783831622164669054777634672764530598161515164963062349564350156361488388506123609571342163203716876976622891437395169460772773557565944500786631281280488587916408477176032792555576587697432998541292172467890361981723041314500575708009113018728780394033498955243200212746492755056133790255282324092604155638379942496892542531774634406961726186551184425317321352109110049421025325800151167790167587356745914551528709768168449248844082941319838377479592088396244058169359570058772674387634451173429070897222005305639356695792169527983097773901274140280936688327255508586409465042796362597974118233430843440184507179553308553123209486385038028178381301749617804620725554654345768439766117959912522584644751352091510978704160824725548672867167405613744671005115755893536881276856845629568831520354602463876775109384349566014350391457513070865728652276389501673619778110161906186744784149387751493379864370286036530745100600982965990417691708699987300234068468430269594315088940238695455866955359293493527906124309587354304591510293252312105380386867996271386021415589082697603904362023285030636203624597614485975274283340692377575905079146131812657536839452155197954650785063369390705209385859716392062241141031035971211169307461364700802251161387491060775697906362697996245059078173785125053777963698085419562399958747122157781657382993152911245830202585818362271188012069048501834482267370269017603194299737915601982147212718307333489791961044664360548554363721020435194507605333080063297591327095431503712046729087010316535510382092702619930552332346712289469286964697459969547103200778929207847290926928805995324553818664559974045239923956991801204255278857880130039832530711759505546026785636065964592267933539538381997022208552654247498556385969158116400606872264181164780222089256507357362064847025158485009546294366393114512620898522901824208316371147735994673432790933393805130202223903923163095874021326135940037396676749082994322989924970574051994854587708396370845575365587182743217703280888576344020281550879311247134526235550565715897706094489925638063021370275852653932678408772100805869867878633017360630701904527770075548784546254064372660797607479681437148149861166024243143051106979332270656649184720492882942865402641348507471300044649736603828889449542059239102727560822382968291520335618953859148540910221477113775006457266941960237902579458857835817921206524167360133671980007968091929764052182632735247191502584101618103346713457460933766485983817816322939911266326437910158766676141895760033240231667315352853780917544927227244168657098258346863995662976519733543089747120691902437967486614407320712784623189505477388802646761487912311077243599193627968486604076402244216328434512723272597129758011464034267368028943586937032952978494500806582948907418337136456211168803861430765119481304650935925790838938615646678156877987949473566799058698790977422605884483210420294763493551946630616141363033468088650234998147418215010949024403538457442403530421653018512886368675204574541667172333537282860930371892716368649764268942524654977136152737411867534397449505481003260304979127722293527093063401243853290814118596686209375659369947007369453807303457620630545092312963900214796714465657864935651804185666087036686544211837821864160546817923360593491278776084874383011059388582062268874680538565376566775106418929068727274276230840357196061204224827159463593986384424608349877183280883639630123621218264903065481644444432642726916152476133483052849452369332020450551031336537253017890361652807578505030731126635059843981269464775462817835662556843889417154372438618026432168541983398708683927322348382685553931620246718853411582644076627978382800617321794456677295664504472185783148423787741462627870900358543251034003294565449805916102726567722496020221688490051255695560952561233718928112124875707921206799792801159026035010972967670231197785585172252615387399060324250630348460021989556751729863620471718704731484650037543050445462139778913527164640666038787567355920211450023978732036814539282798937698885569255111649226147041688864088538883516869077432207718531561193275168482483235018074686585075560911049295501154723842679807163517771773055036114086403307810910829355839615460877926501659530987143252333802546781970036499193665355342410405801008293845897893828116486206614440964029606071480775599664241319354000933357024044834553313013161386347820321501845782294497341535071092885357137329646912930833821492669645348892047998247194340771277415862044453452448294918607573453793708280280858113117257348206321249951766288915358566432065109041626223823544729751189364602415372592081277703660712075071445842670245097101415007942929906259276554894257463443337045170218974545494542482267961293059102283648502510421630073573468254912940221438379550067284919400601751079871009141517661262790549618780475102626139377806005208090123738945792632701961092190739436172502523824419904951709629597052899734838894680610641750870537684450091602612412782478512207769990071080151371122082351074891485561081412331363679752675905933381930570198802212572056888085719982139248535161825741557997776032709195752907535712790802577392629155649389611301574119178231551724462055306035803228999412926744210726923764088389738898184946571332756700338678884677879087472838061506964316328648440427373043469974429158315771641114094218028603320869490048223519897144289211833831814831955943272255986929578663605175200611948940465310907019930862942226387083205831578986151556887271703221658494924506330975332901468103258341530011698041234127737327640178453727718677149164375311640178511860032141410234845585821868305498636539032545076049746804129003875410381826450199687611914819657607257229065359198828289253115295011380413884379694517165240665921961766419913243468997683757330112301227380502901355911448864708298866467396079543921362887613108422119944166265600560534924016367755385835808230213852229183617242540567608152483965627182176381211394654612403288344717207062479369047453519310244257998026713391432482747357665127719961143777072506105735934430245567077577511476192941631961040777410838099651717460448793294843851373097542321341622571645111161284638198545658790895024375804570440770949379747457844561308439089624791904853762485275924806802011625976590037862548389141103762336040533721159989630964967309302311282765860327111669607933210936532901778757132356830644647288250850350316684631350342987946082117509361757551144529375183107901112021621285256637042572568600025094649243370347715323561519275290393703700290941750129643961567785232874035092951681877908467315095672375491254577246574069109779229718571442391496692117130573907996075730955857642458015672861948721217889896589611361629645614304404401502586751270225815507885676445277831338391739869570785039141201941512286788739917610195198148445908910654427413294458055775765071099837615482335130223211456875115525991559411919934711075602335376181417315824744041967809569042828193233595845537250907489808791406218654891620791458098146535074076653252337091696833131200537995254222436062547936526307747772928001252304079026471982554887043451260152647879043749261968165619947107040599383236240014683313088711118533347589381128431661142417308906037954261220894849358344943126242720132200957856650049161010692999635113063400163697446720558352947176097964410975479551776060229592046076318840026193361284148883906624573221804801630179583182400974469369630689405932958693993182863481694102556428954419225673980871919573411715554426736453636371033713065534618024419911200379648392080466005990409799497852598230334623863932189070526395290555658716605554862090991158130338651032303937440344119062146014430077407418445053350171343412134681659679700348616688837637751281877133853336212289641421418023146534823322822943238736843013777779343702398655518965972125509734404074393505511618003248351764628619850923223428644600798487912891386482232177791229025376360953490807192582673852682551761913735638607161942377614734593044132606333494156560116787298707610830620263982596036841625698912232431890593640515802366954768841190419260812163645673209743905230600319444817453416746886011071580113821482284563243916192571293293667750514107805039149116402104987550879700480971998346996526783560902154782998279529140261412108087739448691537137256976926701676725952237404997375118156359357557053584788562170410936035652428241061374013908539822258042419260451072999721438476376235406835567177214871738520210747325903709610579960028931096436430798080055317939847768640499124675625631015158509716233757647181899922998480582945292117477202823777986160365501531618046072580653061428980299095797490400051041255254953934136326047835345724412594879336816048232350169989475418001590757482851972228860227630651620214011733484237607547180070010497663209447682399357622213191914222151757033817853680948380270008202251178925570636552730449006418089794938599102157039464857333011133212927306395150376674593990507539563385517016600699671767049308261534130633600095611930709453261783442402894013199429635549824110564575800458274862214254842078568114443226347735781404917772482337744550611578142143694058761396911102684902822850704679633927896200946367873750877051128932543654494885505748600011566333930250796341065941309964815216202089794434352072560721987089595796093489427177241452923394908580748771576332780398154534763467788817303792126592325866772227018751475143953331575748599833309909955223581667894237222519207622782238111444764034138474688910914975362471753062444398165083802215529878635452910709356638033132900252648390476145246000231867367677888051381249874201822049426350633762842421395497851553121055354416718333049091530468211228355325426067038300006851538190455692327867423933933335759018910785397676087994909257121726256501460124360727363211470896361690889347659994508251332984022325649283458893461773555518969208313012631744667952280791690873930557564983348007394446744559818949363472043899642107365956850753529806115998595654789663890620755741550969126043014164810136740580777441825449232489845643889327801618245896380887143766671134783077730489274449264619968097019668592815267793744026578197171012531155049592492282720344929429521766201785536455562811922313289832336920384717472940589260801459393742237625339575531757864268171439151048529655725242751213267302909194116384167938057469996013231961456813076119422995073693438939881243047850237819375606142846442344561728139148645404769553264363029694999260726061281283009682410395975247048030355268422892565681459452592256975179342932718676804401991210163211080631758427631819576082015095860473348034098414430601273423478619334943056301385202599269865539886384171226667146385328185835333616688101568026292139283018936088409581998639746186465733484691698854555571980445312966436725948479405559198698401372493579818095392058497548793197641193872025062713930904964378211811864918006025952593391956308929442742622628674356080992346981241298046991821178858260083183668088241700864397377521821412891461809255673519182706364266812576456871610784760084151273773793646814626532890904402264541964162079183921311814238340341337966678714636638506125005355601032599932502784998643628284629617177433730338542854183696840156565420134371538976000510999568867741279565511912527941705232671772839600652966302293936487733807144713478688942543315505463501301704832684715223481337113543284468764032031578148359033141926325362940155506938073127073859427129255132952464161278542911934699766735761161193684610451098380624794685031857590719423684507393824847307863146735039553893717243599210297244461669852517568888879751095454310378763876177453995172060203432298818724221302153934849454902145269656157186220581573648355239305911312596836138078474212187722386110316596396215150725290988256318589108427087703288362793452909240421152276005734473433035224168609581547578389871933607264359940576972828690293021515155387785604372344622082526960963262416776395266000227151778658776909104879400587601209807764642897289497068721145931709366954429714191478025267732893634112578291098033083574188779787240106602761681386768980173165601752613069701185375650284783189877350646870402038693435787395899962391184997126384598206207929462690371308431408187302679515758299382414939266773053715638895634245234476738189419114477048501870275186000950275632199827021168960643328325436229448276848232668564776121677532106607889881826246575588499274952952885072320089748526775692370534528127032199608615557829896745335049770348578485525086042547249179653272148445458695799805982109215956937439175889946711585004465273109570259905903888014276029045492320601842220095658761581870240121167708287053901595806010631507775318685545670572655016855517155759165521170660337720980165198448566371537241830712974835422221701858651404917015059580817836554358722571528937228038047680415399991844297826134094374890578939076516249331486811337567175965708686653201671491430306513609332015408216904346801069193803450257289711437836036653348338731469203294743207245197178379714506148228558397269442080579003439654350317990639579401340254301507219820809566373600040884010509364381707190088643462230601618349860819125871110829420637150881956004470214290394556822200976529668508661733815014834845184377386657335409848752850086173766972150008751006695124394511355491207190059632133637832736523709967526017218374963917401587308939575416053079542927665944650227112363767450748259915182899137389614143830564080144281528515613927215667461918283145405872997158721219503453688974867951159283735796337228543946942522200483822498148477988456693554701824500767624045779570672353457610705125268301870000083583694598818116313772199986221354075448457086547669149580942180168404040094452508655385879400607399246278135432339784738937760699905600504613205556127244857705645347052724695977900514973606477306181142478896377034306394610191059338072590169467537540577132380906006513616279532493175792669398829854669683958369135499447404521527230611696414872957041491906181211181947125649599120197523060634857468524477290821894178808524566589195646410600018821249904163375746251967630689358725344227695902170421793840229031923667446131772417942741577995097124734049772237993324355112425369714975617024566917077151653192011846251053678425517164889432780427626673256377846552734404456729092204735771538669248319764273955267539919933221658341821263410572106414201521303974538108960910417097123598590058091187241003708201248369317178754921270781591732396323663089804794573739799757894143144235871521014540334693077389854904036357527297819476715693552565457756638681485283229562036468964199842379928860467542021966900120507129373578355515051660003368876136594538096937128334060210611610899887462027967950152440335016377037882223242030001566389692614099789861820609268631491298184255781442032481680426229355680853912882022031513400946749037426216986020106425350628154249602176751820494255394435126093323421343999952487774150934667636149164092433325494883462771805121829033398848682700808842329858943367795300533468172897640772840362590798515841265669851650160858588612443448226908637050157967129678525847362810543176547176497117555667855564686254292376248923606581127140652657504404608018338545311554938547967196465888513189406576077315189097020230005767232087731136675290006846523434764777672877552176601582658218801444441644930546163008413963106476483280472784290061605216364640495600337134830836880254046512220945983347095638263926119185121699581935493682480958976589718081695434086286705058170972121780087384031832356035444359544256976148450295046709700710686101513686168885120004183743642908764015252350655988260741745918416503859679093553895317306831517124383029988249630858705082902121092921655093616391426566030395312086089535057950556216264795431550575477514173368309194147737768123515316021175336969185213690204686014046700454987242097470297155494816425413127244707698498598098101038242238349509340338023604772154489356457130191971799064786307423426850002043108010034551809751003876412697890294293470668095856458582903691250331757909948266844744507778166612039689846249842637401519647887440836763738511118502307047079462734349938982742304937589086982080210561360278030005647653737833285001120862505479451099393675138211352506463157484062487039943658991311314460461724592474795013885416609134192700103278151069015303038312909990644594362210756975828143843876669069323583875206627158261692367985846044922835853130511981714571725956509793573343225113374415596237940892860448663614198189062353542550525176092094770785022601889823854527937127601227507447490631621641246345045429134834912857875937042827077675936652032605728275209314796161136511919157711059356202629343327262089531926241321327367598435705921415802496066712513972813359596498549341164980531816723712410685180929999001623753763624168732810077285539630714220371166352371822800908067492530628844502735417814241359731124669302194956595515602164790857132952321497751105352276535238453702974564184730187047102955264107570386637259834416729076919738056817733269546859966823394210213765461693626134819750187384408238508484543345828342860599042259656481082276912134681189574425256895660856047714556361668601731900419018672902907108466494501025933052866012044382651783183223596935844942491088651824830171845105689009688600375868522475913104325265342960358769888985428762852022470520059871502888235568805231146388299392512204469594831696662618418199604092955306525152893973463578318509235593608648779770551980935091209111974044833701607929592752675871839968114236534305362325600916580861558681834916437474106639582727543929776168508955077880857866985758099208425689845922804970965445148497629403918805632393196283053102712161381893322662022985648257001487464481517486751890546825985838080274905710684962382351123089431760947423561506263639503696669193242186997939712123622568544787674763175997664360057052893390548337854605796166850918665673844251907489354796000749331303044092142499111142632270766755955678359651702786213993244162992480824707228893944040552551618069812154737463281250924445167255696977288849117684278972806125905304298023120540084252303575416149973666169925274997358062897197855641317639345684167155505585281973567919390931201624829304382411669659851680464515724478076665053970674326919743422293255475060033026674143417399547112295734201752361973770689652846588794206897474386624751597965171061744656538023695380530840440347529083855602413814325177442455042675136780714899422287623225934919565623007627862234506077889470469483086832409819577302545839240176842096948781605427321760723688001985194010449015257797270959166841882768820133923785567352450084313952242401940543700569499001651166183505789580187041140601308709380673914529633115908294474099182456592463259706415896676282063675283101846144319934822709004048665061336153766373175423539041319686772859432699656542010773420131195061763132909092954669911320864143774742502225445441560656844376100793349429958830481657134926427982587578134629971227456714510275829690189502966354693367606673761199273154697707214059402440564218885259248327564874705709941523109307889779512314332444736527010156831301615765024285579569845738364312588832318185122572995819721076430521051919313772271539995086162231858397094495067247328803196557284311015561755267537203048430547307290139344657904195164771026856647915332097575688893101441182177470105176377339792911987338091603395567176665152350366823944537728161916694821126490018699473161416349912177043489553576593851078030463986003642849185165256650706466783937095067500348150459693666087393903456848782299507408727874169215401649029120771392836757964289770726987712043388250792506291921456084878117359373809945304550526339214813839437299584643366428439696459494366363225132246461275043490938458062054596246697475105650537993450108379572734582799870280336386500194541215857386002183611616525421205383239109464974500555186380168747629065630845272353886062685108410431433575596828702092031115212082960187650738154099216887885100393032775171671121884597151043637341944166611986059037389724956052871962152801002135157272771642050476025420718733148587732105056154622123919185705768295306504580957452225375540036632212087041671109226707485128850111451623182754896667892525508910127515447384280647930049906373516086001453201499670640700255391973488421612680271585791278625256264460842956627335580833394513105169152930686016388685517192129386335514721216608844483772999666154115206092320714142501241983624088512246870926473189067912166976071520244777583505680079665817287346508342692273423250953169277419118192010855827755673474880498079375795910011590886282084582780007589481900148652639752266948063375940308378129003166277354025080085521490071668813214312520389916917090296571282622043020802347512849721708585508422517094667063610443058392020657026449106322318765394832089477621840024237204178821236239461098160432576440920671525424492895372542452132415978868210368865509188819096931116473969389177184193152350204934806187733075529138206682759979438390178759729048242374295170069026484830111711170584712638520499180519690486002589891617555940089188479461397547669534483783757013673877697943719728742597419775506950913165580764047348314799961672528137611949797970730329167748746276827907641549551294040356630760245407448773375280033669901467407394749517284767830691651731115338520099717546910293557245498393404597769322607483129850956489712056606081250642191083910498313819223384594215019521802828193199402411283090694418233894194592992690901803529763022332047996698602057197485960829049105069013078721129051391038370731634280741615399771118125855190951957963635156990736123628684947918977431800716037511629970729994154825971807360843368729058606633833931038025015702762339945871249161837562971340488447610993280104992900635172194250079941829688201525711165034232548749877971901382682788546108807795090719323875982303377317627630187457109279719294859894721873670975695120203158213558659207462982749828218831388719502891319533893746910682140520496977632907777466570825059260861224592728259120714913009892611733035687668619126914838747706523714241278744342587061389447380133923542522524296710378702273167534412223420576616370802080663532571373558622986924814884469867002720879399897619088213876697342856831189737696553507800775476131874441913270861717081002019698814608840387779351175731168761278851061554315106739430153439162054536847853816662466609505479969695788827639786575163670556208315480548097516769123995925473890465458115344533888661483122140065763476772595350551282967792127043900510159246819304628113633983490418404595946816400898790144685519390238509186657546121273903289741034487813566357480199582113306380630446599121105203345515579989485009184481212033842068809975869309401285229403091743687780722451046203045556114800926558637352345887432409944993456437402290731315826173790567957427014464956028832661039184119743229013399541966356434694647088918831331897057467217567885064038075275197919961671950600257651595335483902656324220021707880685060653193990067286050942800499484237197712185342158780181459829965429905729098394552815500133006892856874687990236484872289604325267623613809557332224716860989373875773475889208862959265790382123944287617418048024713640665859976350897543082179824217139221672027886158765208883527647501406921703681187250520403144882687460724570461600332233916539615842889646412780182708694359585220836966579609387777721633985214527971175931696607573529400118267145995381508624467900083400931796173504554114357317056836544681457137505585840107205166812994378300239284414847321235481504568286218738044918315681406239144822355310301388591564069543802139981638481777859320361254885648120359182095907253760697085979250171632636641965564278382664842656531787769556842007848529650846578257967304479582441470208035233188370319627206860120220289285592790512806180387114705276296317279607681437917647852456468941366289689103937331154357252246147601654637445170033387081251188973329366866040443831563437163910339247554158480124821155031548056742245049547782019312075689390726337460624879862019507896355677033157707330903307370279442944189003181626093708447348747973551974342594832712533772342810165893846802660092423648649574461554022593115690381306496589740676647509339410420776633204862247778360496421376215726676160555239802101110974360755650684147001085254310196211230066084002049414914583334685822163715936906636537259929265692623544680795323860113274622518399650465728698191198604049549328336381435177236897781102848677707828561066765775405611501100823466299093926156168973547320523695888290468716378559385257751010331766771679025105585604238572795526940609462828986396042310859880058064915831897250756915237638116338010969539634396240702165876179917762825855805195551488186494775620700591970212386382890036770172518803149106682793459951195720609444031157989210550316870642908196134863599069167700888968977918073544804602090244149289012644119248527970192048903300903562480791821220776531831440989089851783310222498008212030120446693934170534355712428428510673743228349684486268978434056545542402550183237859609358798937995645466367581447696483073198844621367249517340405657614125591509321428219880038003602422542484469382944751276660449930479228903323052789984559048441376100829175534701697796788742588804953407118792872292629367875579301119946987388756127288431698705486889486617769705741297576200452331822489230022966655531746855928884175224419426138159472567868193367716221544865131754047819645226357174155350737912361221124051099853294445726304162705005573031688768655308398115821272381703343588221737839931054470617471846148851169891507907611472946271537808085866085688645272148186678860561859578737732852230345916662532430452433633654723460008064337692564930444148958671295325781384703395516463507687344974693422759428330399671092435612043819780338995038173466357928505057689453745835376360941239038633357775415231796355286665140504427781193590607360990106761887815035234030072363452134961435229272227087713784116011084542958448250195393027653945733862678159706025580948566099396726761376075744639894347404517844297753087785980924085905498027190778637655576904634413558625049875413372301098324468004267149745592566638672308673971122146037593732944918652441983437553507298162987158892888370788854329542479026069724100905389099545154483849952787479542028836800687737322770858361999804478268719291517491027924915476163767249060340008034534537213124141942463214948395577172575753807450906311619080577307519172916974341601007157668299101138329601580835882905282174667729324469308584534641850818167219955991165847563186932223065050880161276052384470875296828460496469260959855412478416910943701077286329819687168314391190472774475714953202303383117132159551164686406697218818426213739108221858299805890039268028513491032783606208257252318432317047161689272447152997558993139537567374280405363964343929926973700141420577967795523491547901780342866616457481194142399829723247666103504005902510778533481157494219287454546756600763618415486838892357757033373491382193026630758889030610855964956586560949071966469591965946356647709442435422051682776506830373704139589652564794458999049195015682493208947310974914106616199435481874386020823685455361962202300882647193703268977064689741120112782708491070163043368364428206778465850839237697533422556566822579477719700945308712717165624092001833600744386862043081941487282389507217321273566859081717940339104231731409128666462594555285923987921827150191008421943837671356029418506621900254767605804958416935361719398259874166739984140099677598107595918364224819259789067026398802641273088225265968968816932964604086541961921756680183546136229053185200817219827904337906294212493387558890360846746855999942661563371490202638138693110862763337248182369074270462458063257957862673559937096442380493420503700650344175883803125722601646468308597191544733580488165123606456794896499389446534134935416340762026037559782487825718272229636353743758469633607398435115343079158654434714606286537709656010724878492302347389978579867106368929690529318033114592764659454735884914750783709715310240324064811460117777221909735415522112425660264380716293696044139720900417672428666635521490577008989829708170168695491628026149399358095605764142469579041472351890461767939808856760237465475674939735865353144026024912020791765407706859832270862540458630915446445588369500701225916048660695917123125960302616782610420596133861840077762972476284397692070385835260082982177516706583189598651542273339031962487096983595662765227713982033679224581605291207549490726236347829846806091860078674511365549068218011538605291290156748037568869573844337585687385991555088719119674936595986631565590281378826448079207592517862236480893562252357706985683313123465686946292828348230068280219994641909295559508820652527569511572658084295004990682439761217534686227699193102648509066662614725217951589350254676050360337584181163967182556508282384525893413990997677809231500292107831597555895025095123263124175426554855399744309765872774109168892010120032190311653463341146328919721765029587560844160957902094888370964527729780305790541619643551775743959145857827329595429274978521480930900239830543544534203530482640821498058319374746353974513830255911998338883720428334126077916833869311398415592688754751948301181292797805517076846274048765659920284807137169514911403694325952949414069148865099871875863716420073591991070999527390119211797513762250825707018477267271052066817423029428772008756708414157164159494583171032046758336298603500827744989112629327061010945994462092113539964555373690477254472831735485762694924367925712160252310939759878524862422565309835730572595290449956413712625144474781336040689507296479336347202140442433074087316862488281930920137593938200608273299481684208256222260726687029467819386224301014592349865477276939379630480590027926345811703009139817368061270494931652120505825756411154873403946435699268296075357458765143586204442576828171931154513573517170201297023266022932311163988258996134949820124190664099775476897585604643385292242459334857052854664789077807003692822494452810939663114620871586912002364916005173290865772163000409160331814843361477206729290880352901962414716719853439632323451852284576854664597046375958659728019618310155056457713059079819149835571779634489450595025551804869251831542965484373278547549758042783466573549898611390652616574205118519584674108675719896503620327408515678511539023118193444653623535397847645203481242560980343862598713535786219869571025660962773212424636688946963386157724243210389944940239929595757390926852199832018486386172619108750558540231584245702426135783088420529382490156986926563504004581706050716316217031812156628700259521036355239527607145123012695741890839059836220386858737962352115394654377258170304357910390348602949520437077986443113134423114166353700476023259259755392931704014737074147928528812672016543300943603768572857613080346699826023230147168305903310834558762259822879236204109994614077798836157682345810705517144419738021006034810977843171895608465467606419365413502590945587031036776221169943117062542747746842655829821856155725169360218583501240954842929256170948731622142732399492094170380692699950400523350734783840842525712172609882788620684161675199721811003245755853215946018646671385533672039318082409696274516288634207386881772617016695885089892416967203180248808989545358627858500713046860251918012292074141311220528720092839792577783088481156056443492627756796052774523139794053142091267159873347899777448605913704781687754384656973161618612962301279904122048442596606213818625407465749930495564118869771569864077823381354193009556024910991951459851526280003606813431111082524542953566441624077243317648516271147377307029175942606311906741734208173349178267871111980361752565388143521013916602652099096585940560627897799861092034096563134080181245321367009395868396098448803124803304988977153333421631607554318130675503361527216779957417216056966180650203348763097288492947013792531336858519648551338784386579767997804658255348771700105862234025170883095394345958142791297945893704431154627444520728168263297264625173638846489697276737421437602993198794228342201097973722673308971917115540046768565114059192809664659312014389570092136610903145613522618296403705365988212028462186398682385746714815512174736870663614969526625391387786525807938990199303584942528931961980783109855753868050603408115452089553106187271157590205122674276860576501242459770601595123357555303254379049719836997686449674195238145802824854366600247588153761131554668346394204272693551596082147511619042798385223930991544861388720466583626110826813092894934683834053691352640124139439300938961563747285227621070117454312775811316669317372987566218284290241910089318715076165791269064286653168127851148283174518458899587461500922434660078446078552712827816080348612003325318021301797912124607603610464080384679410218483585233831005480375395282393877011675159888992319460211809843676315324378203078670049910801050451735779787549085843024425479028827039706152308951067272662040345655416499786117388407393695449756201271592394602358513868222928477374732956285357938313027162090170897048557223415813793884445025913614351184060112721310044495457159334153108245561246026976782284513671928400479147144744430725208024023409151107580789430971276512437581438801799597197572571329411208005977500879531648605874396028181966560913786876083371552575744779198411654924114874966571846710137791621570779586388770045401059465419934900075691486235833878236435126816511424461757707309026173301834387427002453230297523475731387223197855172095211387070168186161227363148279730526498923454236306466590668942106114126021816520958692714638556113454444128906121433321230718733271908344756202829553986775221381151098588692749504925382366648542215161623559622556541914438460480520614142087803813808801836953050021929263899421018111308550466193635995684658767133463660127527297309231091976326836061140338016764625110966058595919907062088779043547907842244741737930614145199449530700559673938794548823962009450382060591029075636992159590456585534088656493078916330456916260928601037696432976008901876485891921556619157214227975864213440906760344304895025614910512007585226832998688320652892992119390347106189138791966200279531977169233452798615132892596380092614587677249517064667109173096323155753906749533559645902682043774660918310298591059860738163477654861892304282466963269193522659494639466063973094978959429100559827759543692974859643968275881456889378705455212526115598852094051899693466206803755004615160079473445151335377252990437779436493531097818060286777572657017338435743215585284657475019233238367881140079079030817580020853966366267487317632295471934917410442238980602888699974616942924354534472175934578558670742192171143242594383644101340600094247723136317267525010636554829354826279765849765997961629569889439431047258703676748702372050650189582223972187401329521438281065955344771055995123989547454773613687455708710358656514112303360678159135830189290279050123015237356696280636070382658208458301204332139646100584097405470636713092881658103691217164677006617938999513751231660934781432238321560482218980775412077100308203628458452842235895210825909771273825472213571385886387677991442998550712948022802513350933031443864372842574349365100379711136927004217122852077525764045016890398053502002370908044252640956864292857983180038373446183909011421768948298148234437513188710902738801599181922523526203398129126980469242057240674849891674016019518165540579123083025848201808678725153304083413166482216326871153810364514859130075915569038272497014378702051349003643006600486401624098943249386717034995281246178823775980235954580736271761146997193578489281516829648279072831037712829028163860697200670828602268858049251861010276110183390395968459293368154563753336080699086604686330953925509955753240319664299167511973125358621476746994785347448801326252153849174197712702571243926420028390522915139538522867202142256575271818675706066020649203116313697156265423101711806726914071524129630038148705235265519853833420393367705578804643096513711980511151126470364412549916185935423503859779318615204914852003336267915532536813952146315535989920600498696418004412691901029725752232917752558016901544163998808322270015708351249747781094946320224767812102999528816629185225688169835382921699947783360607427532633418909497427949007142453551797570678061706003197740703085094207231193291085574466216398727379028316190569712443308213461827845422733883717154356216027114142623943033357163372151533519227695658563594314458825584376880400674164268626881356328471000638165799487435602693646810625799959387399863124412445332901047857565655095863025822008036242062756945248743667709173330020703967679997145834758815038902858123428471613092021592008254462252032844121117085783023722906703537391460106916644110725943936921242385257716372936299764488373656331453040970158115243786631557007570859254952213230363525228907674907695010156888178283128358859095894903036548167732035842791125336939870154008814539038808483379606411853253507227432961211995899822661868186917373220915268495239092567800440905004501901865746872295696578826128886477465732116277336698129605242470511560406456408623281520295038847126370869506478596687016824511502940840975013535642663318299151243411506103753667461471908896721629372954153315559912333504716836372741495530466549523474160555533718813674642039697273477792080283206287231096988639756705981803886247407942038367828812224816574785249088868492143201632337863182378108942387168023485670050812482507648459349719402471682853938782437781004605707104421641259632543094575658478198081294707961679303615073726850427001196132232634029416008781661261799356333771630157309704793553824933962767824036110346560414474832353107605279459824049467777496495735016247572543132901273382022999447256776039674948086143451765920588002018873992307644618172480905351592559710830272165544987437274344165877503408031790569244678376660319772656330441865465811341995892505225686108033377486644849824488557225766913031185990496450302550083552743501126819743695412113758203102348527663463998591004358519528813384170206936162888071702140389678202658099542911146178762904905561955443077470548081843741059773221911519272186924761463900411705292139857955357756316042518148043029281454776223195885804719137440090690501591244664980391149590627819341768552795230134368818996833558344372420207349042796328380931332152512717887976217236503624836402281770624538182865528546380318013898464061925139065240508192876043142132771120830674779064770894090912441530677538584050841971397993945542565164758842656517048273402569442880374744319924847128347887279383095374350596772113330901889389289611751716288118771432562884064776920205755297066842196882048912593726328180392191444637605484064251704232871667103171839943155240693825911632202310449995155002631483242550651121495415853216799956142948954846337543422985128330920003790356941437208724487996860744101380830387983234681358229505447994716907252525350106314428706358034223900250649054399771113772646860759648923840580728859468266725244252266425809615682816444930749123501184650418514512258750694880198453142168443703073858746016334568301430588413115909069189773918742452361446124975708593801983107836452092029271393020722802767177798884750931327210906665996416175240042003058561997854907053055216642410885269031737356903981228364566579415956963554657561367850519893123744930778828108090262847352559694368681057316694292445741016786291300285110907044692148485224157363000049884047128776608394766351535003082370052987481288391837498846297894998411894120154925895065071448915294521029331509976686741364254911490764699025994043337554517662614325804704398313765112813391501011447206716656603831941676595887005309707748135587250874127744140459919805281699750254661328090806231121095126150376210098683265559891359101923706608980825386357987524448398002723784963072327984107618014641417499646142004869237142700859570803790386026958812364660896106811004494016597030010181141227876234680227363478067284072665263191897961854420527109886102109296703229537908312287458396934147807769008758543515560673388849667762259228319843708441226338909355237779998201871597876626647825950774151353421287712174930443404053602015305039917200097806875303120763991165511657646828331865309207007426673579348708984451327338557936344204436869542083410475492457227846915508089087738513080739186841030233242350472872547059587988073754108756718920066313900870661226716844678382837263959830602243735195034116697347270805319802163557148082998274598493778485495937276815525552433996278061686181425731745711046440725037279728658411969328092450862020889499850492984337611646068963432679302743894999314745910565918105402621781691627530501280288157899630993176205693543999209471789301025393950843492549541417220166538691016276043566632663373652548278846117825726877656271819359218062830712060331975354461838704731666415727132531735033827364130456778644591061418960957080216213061989013761180892652129727242086689011131400757631580934164498164717868058522710542614103830205218706462174706944280329524224608309228036695447113221857364649011209965305375041253682524112469586256661017975344262533243527500121414555988153368834580024252749741609269733482285844472090263272018083864870056345365656352814301265733195634800761553166336183665266030210905399388633062180630483239238697766577826391568976589740066546977407303697017720392238643411149911522449866570747331270498908888921636871937638718888635089749765952268631310836087282669574650182734056446594369511406962787156595703837880919251422053137982688634154226887312409756272699083493262655699009262572280810022989813342553818192966001823451004294755958530492951760798886737094565318968225929383035074251188160583189392498074991989719141326908325216419974072553786941332890048315458055256752409627455382359285055942967685797740743198826185872417800129433730961235277895853457229688242708433788582802436506604051229615323717174222189953342364584375713901543501433913184915952600282407921615192234190600426161854656898092688434247834116656931716631657337550775502048854252245793373493760654160522468850605829684943372262100885017679485767023660461703146264264377671335785422009859059691404215911716946304729967625007069201291971114547708286559570467933835983983014605750363858193212666244454404565317220255523649863057504563974469393505803466099567817222263212135819976143108108099202272573932315631468119945322939652009900720577219226870693239943379458368211626862793683144360357513784494177849454022196800549229320494782738382162283547294367263781458800497922761044810213487691336872523409383052957876168426984151447061469089563750792772668691893888596922623453497440464392722543986050995487337236880069893785665557133232654631049619353982661998021970440653328478838863787445858826659766453549668735895036008718058181607561700617126478080026503560731874385347632566344903246844831892714193395225206072593661100923345778339877079485968770927942516444661431011211453404770316340568116706400414729422206042349245765245480495951595720244013660134215878804775696810510428445135073384197394081869146334623988363985696635478376903798213862844124784626265635862685990676940962667154575866131481806076295623439369823435568571095600274449790963287303846445210854076441905162275118193682279377769289647923370940433192419431042065442218393698823419106200561343597921854002720085337524655389916497668232485559824105562305967899033639743629854315402407266080286713609750908296733133135483506922902612449035109550412871531732490518317732385301083862094796704020517530272326741556027614331160030800392292884118386691158502403162156846124671923308437570659273804841449300769279509471087976508432992552613067287655050173337684727060041575254043903761697720287389624032953013156779314562931412026538664288360226439008499453320938380170922163261380246201820746627153423559130663450419580160408643446883633771016740769415594123166480427582796981533794695533748913352458025184009672710582818748063531520064948357625286083942889398927994566824413226916013844013253450398796096629482916195659529129107216610613942128561789435438646522092612420106182843090185128314028100546968781841492774313223559360820968639789851693057321971259860885455847660349973923540737953089895025540939693268184900474615605049828397439910408082377600875475275899507355833307346678046606521992743764616470584633190557514001698138603283310381120549792740545916969698431061447995160710355174479716433082344166698578323263084732458818174843401936690341332242066270206831394080037661555269260589924814418426371779285569331325297582682643910912041194748687989459880137551390388106668711492800236156315056863123668002138398138156119820091071188032525925001282380926312454317936217234169449520161807901042946779751396686669505349568233638962135324805948784538132654730675774185385806073833981444148161230864162781103461837896195338496881885018886665369850504013204657824514924651545832731405130668872088075823463183823108254705133884047415397911173779172714378076444690088168636320600013320750996052250267306162348459598758296767013618130845352646795520784394736677219681281322183625136339271469399637993013477678303195312162298963847631394512988533314211753859337287015346883846836073752141471822938263500851256640614359652798419863564121837146254545340338060244489275058830933306985095018750365183661486100035872233240376779514957859079493719359999480014478034408033223944802570003434051699042677514996586464634715932921621142014810702670542111020253033501856816483108647963859447879388262340719691377897884350779499447212398704775604422997336206183501613997165412856372444802946711527963901264940528118018366899547390229540383256481168387316278677004753060435657358725033826845891958665530396778292987910077778316375634127867402138758451223264606126987200015395690481854301046410603882723221547344729384772220031693969910641661368861667529228671687279820799639664601978541004101202315635857789157144582003666455684050617603553150772158049321763547924600593191128038902843877647901068611927667670261928836862705316933457286605325513867863428166185437473854976702691412455580828727614080443534640264906041412759339363825957978046214998159967673147412582054144175858972945558657284759576554343339343282959237753029808310646735658066854304350672843875251571817254054571208568609534507006461665217644710703501067278963185012331279170803890716487022616771905309776974713128839643644811107216450936016285329320863304666139912736090754045753797149679482549155332507961879257023123326182484496878546881778614604880343721412588866177747127677307770093843971724966990622152810022781644616076472646881326458978009302438078011860552070387149163420465984763391566455814628183576263071258176355527201203990939218930518618079851645356354769320000073195016651175557226852269156708414467006661641657916503435198258066997747823722064167569026641254546175409116708120507568068932093708256205976029008717352620274676661381155788151278302083693301099965230743531016660635889616890426689006102572928071072593338273527539546272580487553302061604341214063009318222607370111149604739689152426933207218685076584897006649542294184568856205754666002633680545972986772333075705311054008217900272733334041272588887564888593409648271468495460455441281477675939613249710081319220655914344164962126214060636632557148066163197201647998793841046280250620817754123045070778592547064367876909258092304668865943929573482141404090340812010886451641832538550022637825859908905619208354489724384151194842301700979356845141373661657277478291581418840626322404214615540446019029689505460065753262635849485017946832768402974190992831356794220822169726913486362677917096359402902764176915497249647205264128193757189954382408013437875753908378538077537054320240154135569083643032486636136962709208647583718228132197378607138664580498688149712209953602336340094896140464910357571213960134188513983186218868553643077989773406179931207542845614488584034717693803238799665336880224383067193831604611866918042896388616399876004789429265636027100218848419831194264318266095441755627817286891275884706273070180009945222072287294029896634573338193994471502891428094982008588053796361708837421945601451519169406215439254141953440915825628761810209639817834780352934120558758637034417886107115910695613117255397419908034921305614483155135800646724607938554076040168477307720680316328819405950546599481008519465957056204643932383485737188310858615904058279678512669922458874329535669807968768598789044368352733108663995781380944608905271513441942531904823957693584116991680286036669920264195125528966808393634294064695672184203924413729780530647929338863038667287056456701668208115843163153366242498453345549655529450877691700234015214582050674901425826086679927988233107098199028363546816716645315965245521474465931817826472121465561992803179253160148335340295801227805033556552771144729986566765177613702666092992905069321835002883508708412583256563342356890173608037499970569040755616067167298292869781010986195291952559340888206207843594643921595848830732241564800493635835499040794146648069703104186556326806073769710025042077089642964621425123715924119688578148340811499564735333836477993592248419855018348089019139089402228792890181014457213658193401508164053230068875967370570984071001408957669267280359812690184165819688905923443401012771930237541373817371771479284008342818356220579695848290734521276672787733104391245874130293433347143797486603219518192869707221769465950321491143450260574794561752211908946961983030652722347971541446790611670918785872238550146168844500644637245280299208936433532662626984026482280419642183603976993516499004194693541570899665838477087592460604010480210985149965660674520864816801518648749246006267628806543584023195060844814635924617035028026737654399373010195623109502273869716291506046083349433275176868878685175951409348808697613452534937171433236397888790696261467794338587849326286134396882211387623764624225537831734234929598563087980686458753727678960407361191987274291426855783857832428171812756110031188647661856271331316576318596611096094996507066829099683972351192621284689536700226457548391164712980239909674798643039903818839733677638934653895103405318276297425985971528834669158503305364845091626377355155634865172715262212721686122301360444529559213398502927217629000641755171644584711574153669095968222773870484941989141520148313245619413345523531995477920639630099912996992817859203898253225442712012373781082407339360857793749411143511696720893336027758965041896709593979554659799454333902917297950979922117209794062647959133773009575079965130231776711475709855534468647243608507461061002655586457845312635594315627798284631825453159668674983072370191591405920520831058108897067311941107442258318355362746395147695859606955443760774408408289135521138418672466744107622445610452092132773785185052057788759394067553897094143447589497762852102858455497930795217436798810804732497926678649915591557288506197454684592672766503601242019830034716037254416497294488438228444262215057606333128900526106461760101838676406019207661286959996597175833814716715870951754105450648293827738565835600620728179857319077605643833343960124964266672764713035434723612485595195130936766079785111602060678966392717493710560560635406323608463427248113322929417252460072677011551504025278903672960723441429447633738800893137159670005663525771561415050149833347856763519558657549265923976481636938614558359937508256066151855685438819881379184931581716945269569107202478070474083696461600323763583566431955941728571263145790708123749040330648279652645640311493781324072184716613594255355818032422244554974131994616093284276701490351467433701075440603944402919067883338405493585168708390358758373797719641434458350025562210259880125148252614061517352123703570338643202006022188553693617349052823316119983682295960780102256298021215292777295720700465088992012630383944555088680312738297202404859276258500051744421105888494243545922339271173516664448636826087761049327576515047147739856234801219943621906579726447002929411534998658794910002734201467978098088984022245298364904516524191659941592476968194261630665525303580839050617750321231327212216832572441228952648467317542771608623775053844609969857815064243892019397656060999550241980886494164049839374983963350439872288124059418322707233959478850443672687395363717980509798939168476646706626660452218599194853242388420112881305771810537509654458701241492287155845995602103256575018114779975008727294044492089582992140026125287304823587271122735154102826782779631123769252776976690091443528989654053522005221295102433097562278054121108719615078071294032082953644931712714660280440946395743336990621501596496883646983801302741316659852679426929715418988926163828967556103682117053373272597818296539893302982144117747456484401663673828732870881876931478245872154811103669998052142244255347873155427798937359704585347994057365217405016534045308750820483684637288637904117341745368589003995074159546575694933138676518916397041976379047153397804482896959818096441460238759057474480124801622025022400280568115275335814549193573262691345545503402646825759828119170393795721295447550479481498454238483226835343673515753617870151300790542346140844361877436915624154431029767357645858026209199624488281996010641231490162111657875927230219081158629789859221827265612831546277442236757267484759244014989190977510901888793920685858234620988218127013637879909562558819707720344823580595479878591432763407500241571980445333382391505362585530597378857084971292398149276583740991396678028660231473136439860058167057625320473156242741888344492803758466875678629334557800674099417208893085366030763323992630466603954322470758402247916420642418302928084616404841685003203353441686119405012510220083326328205438930454360152766138904452669961591314431368760708384741169434737475551986385200860314902382959517263648772885038308878757694945534835145108475945948075548511972141386045090218472641749268783526455130054169754095157826493817970048765902773169075793864753556556631016933401912766747634262854170728133245674161109812168391520465399810318718181473364955816650489710046218269247568520743906851913600127956267085681577305218293904647903707717409717973817874390489953873766399656551479500053582630298001911028299586757268810211374277243584270052954636340534317413928260437607825867736755800361747318325256949734669821767482981128424886071249132414470422569049250302772344192035842995652550866456461914840752197608438434945067569963065619177617160373492910881635718938941930992288977703335748228369091314427295181851813092871183355811304944042452573316905032116287831923146728785253665140570712242781633325068595981682684977370497703439501265323275662737006040672370079529988025036891530391230332932440491101838618934139093288271921889234864763512737076262243009802475931058422675442867295681172497930114219066261550365631958676140450810960582139293380674472488475851658680949283412422200375994101428868252993628322690897183293417095119373087082849905156378820361130462702063272979416142125047554177100287041891151213455855034299256615014824699118305902087406206321762789607054000305952465356451944222489222174106997201940393428457960655075251536960610827472970488673038570114435470191100286337461223694228981761713093478936098004097299572314700323662709066010372137185438406816201884500463967821377304328343633175136520733600851268177700843411793500967498333802637434876139799863632645115235360841740409369325447278269322508064955339956727669122715541881678749560328938599856964506378800364621346569660903143507671606683591747914657935855765955659064186769017689866707301725862268332529236298973724343821452250112869900046980283668028562045722766838126249119786252949719402693333254051722806070859954864331300871140701232122035588755832366138226077703672777979650390388114889776613688758068310396699514042078261312617621158811292742769458490187339561747216536668413435728255408650195724425856620072114794102829252100937663932842427675635297377852195164946285758114441085419242063218728422787446855876268437426027507312065049312383545468038382899965931084813808557685061642600479435022520848583581004745560496649424243277943607453671188510275181158097255072594940997923862103053384146992723739357426835616507270505032594680256043930425558820117431219591053818302491910999290077788264118836193322954187317796146494484792121188517848477332767389887816214421255733923798412033686172323927033124617672372380182601233581361250951672943395566567221061473377086002088979040188488724030969730102431382745664046340122613707641748384354172196248536856589672630429011558295703724704801865768723946730828845463084570859982710445849031093373589197393732581769885254451369904407440183067671986719485459179228819220976878437459839442554088544404004455246514025388259231228654367717644139902029162458670064085560783638769445029011925695200329370517739199124278132550469596241068469678261419322506081797387802338667315873173876265154673525310500493370628218579799126230528667569035990695536988992160690470318661064163812007691400256948985685905274380781828018242742821525243388105635992786436519756487693837884013185352561025515583060005424521634623095534061916849357977764740215512175141505399685084853772876524810011332685707366643514548228821908184440005071686265086209283799573273341719779243839444024354467378375127354338543560385282599930621324363014014271038357559779588370964832960749158910785611169696320086572423206652216150122576127088702929197874749996916159206126607809105364726143919853970174140151869398367558755685409537227435087399711656085832495172566639242852458388222361936359690483775811304010502283305152238987905918190485101502371701570658414133293628046696088741947989589126961693780078251330998768809228319125660224635824624650929402027356121664668994468415636434371643225862654562214050983170324250947426322092158281967218379406935464201067095619398100006062546889244240017376941324344281660262540357020092466309437847150989453514487922838095390757960897558591223306973018884287087611807152233545431899173172304017886467674730464059632464507912836808149799162139738360190552790475149058505680788601486988777501682587239077709683465083631465010034774561215786685611370924534163702598179426844444102420416748700365035476529510938997767643218170289573111857892314601577200761515681676033312496260749706436136621383785346236756417789544546696508713699071537304954732872833868453814993103379319762335344509262140051579170166638998779326587724050517736144964621690174424287816615668099612634582478466654648197862115049383158603917541701656078314048449226565185555801694210832804713529533461782862326338971086259909800311698889222417763446890530271488648554093923418347455202585771161030272766737161630410786014217616369162666809828488571749543981977292730645695564139692616928665044649669689877889990062447331233189486954068093830678018506296167600817715636850597891096809338029413366586554188677009119313693786673137008934725963156313567854580871831476453602823497109137516880992123305614620541113618291077712104958302938510859683943499353625588410006914333116734884997023943764349185776874575259021863030646731216997018963613547236962840725758048383781834761972780560527979403507135495929685167148438057569550379711919365524268753298372492849982968928642830392859122168866230068120053646867862869665290569665324268297173989824581071253245713536094690279564574746945107742773232378138858667410625367593523242623139618315829250860853807073809516718819976158128925350808470431728828274220970733730695321256951723596116766804010443186555477244112807038513578846274786838371351984608855234690519899256797585484585223360061198299632530620826826287342814741749938081523492702778964543851799732355343726752934296285090873340836557205633446093996166178389894972973524201878585007469543642156692430604227901625656919125195487178798687700975054634046655143641834143800412209071610094640354049645883724326543269845366604921295629750395768621497341466307507409788663832264710835462833054518628314205392368420596522874509877051290105407512843374485041888187611113751444362984692539783163594337099428063297917578698185391919391772401571994156050058276463179164245189182799659985725522311586477934558199809137104812416433393337828035710727058884457183607316756246534930706827356815317188462273058735445539907252812313678412370586170401695906164715582227305116058331043659073810852844857457457906476860617386771823386141391524292039098004034544234353687349144851173742611103893760007199766676525610108524053775139587120147098178726579703486441096200934317008372050416110603396315841449316225236496650472775139060978178084924330648874342557189005553416344900077579354324456102123250893361596144921719962280201461151362204754330446767616417520070561955875612854508516197818458425051429719465451092542219239307603585290064318747003193682764651989180471639858395846314755904392033125164400430418223487182063388243587382514892876609400247867107605354769555109837502989151736566163471555311263812671865977731247096302620322997831463474543696164529220829358872592334868210379926538121575332267730572065198906441648448702350920938491952836840277428284057253960018287786179598603975554051232115423845710121522269584668938842863455246043767474107445962631831070311934102288849733679683988592861039272237862556897047035450406955207853471838399238728691243685959127877188825801502206595884370864342139471521246862770436057832021856136162533691381683269878711930207517281096927607390135536361215292165571880733080457530634570070062646794773509400911138409803010412505958648519196191981898013952726869009165967808036972109592300235085132017870664368740732054129093645863054232465255112948707978091199809180125446895899971147101378066757825568729491013596567851787586717388956529900583340007395960516375351126008506348632754286610390945859437565315970670288900126252445956942851110988750657339356249625981795274422627717419949533474719448453040148037960417750630298800447257461677574940732340262506539740444940254565938413153174480897991553997734283168276312892130159978364701151884906326456228659649853454771970409927701491864865652916804180566890496572486513650163472840051643814392743405496809486365232111550213254282301537685427509845550079378818885879323568867332281829511059959826437500889276830979322584739060650772322175618617120329261155297658271815354992105422922184061866562281110110328042994450762205753243334003217662845100077920889149200259297888305476241956431282872804240237514969105163785978352018502925565664291841411942824511776649843878139646420126434560574805545528367921084297814249377677514964549465624840832957618739802401910255177557266670536923330041326141991420420634024396156732235011131700534031697360999436222913159564473668844199057459640801807549622397178941345618169439603727458907721348537716791548216301703391591981164415128818993678256376288032095272550754815968639664797751481438055523016869122563397842632464180325435819368850503504976859268483719357155756159352686707154205778802794310964801282174688970109263062790802358405848025999400943398633370799498869648752183061068473063750131953305265568760248572769356479837748508060501011190184559010200177236070050564792173038210362260066652198492191932651904089012189520458490798743047977453648111019954733826087712014434333441409774481811806039206205551066752177011893028704590253568753727443249127356777303017624980794206559890713329798188843231766373075112070676741340537600141897627670627119151128270710306238560271093084122018431600588411341129296834113072772025714402240082674670683263939923904847221780771171331392361463479656852054549086003976606335607353524919495771586333825194091366332883752787894086238534514828931609291239680054135086084593286837737745476999570102437155379742415432808389929662157476765162894621979093976419776100652596526218369397970218121724267975680523414219998484853918588012295344931785546772054271894554532804701697644073579588668746968589765649656531726131544510954763942307422555484407028437279237473980950061469266974065113921719919096135061202815448970265761902776751774486935066811784262543109650816998328040094894443687851190467303816164854371769247227438071016901202845372038931310181713002295937950527265877586629192766403281750097987137249018931789405723741698195129643942190771264941061439329865720348178537191145754363250587019947830982063363583562337071995247566879301651532425506616447459530340074956466142974883852998667441347566307981311282420051718999433965747184936004551846052612233936270666066423436463172241198343201510595756483010077620549914885413504004237021400475479730213938761457592905509110247438495727046191022425287161328596422382924494811828634688601572592305864165310275957337597332691249852706688573430017193037239104095917083638248584128092719075311558900718833881635359283727216359748074204389379157512403254802342523835865441102371373800911585349543071408771321186710948373996378515824050360477729781762207211692502444844523947556729134784076493535805749090155333241049526289939232685853931449006736444500290706892298853540935742295068025812270438949216513614991437673072482342125399970478756201771729939033813085427497385915535710564454105633773535115010018163686231494987631976968750318965016663447220678457495882742911173680465249113072205900365537261038588349380399937925687287159122842186996369786263636056692093353556434181534663633568520146848771597501214738256395704063630139749803439090857106181538526527132438473141262119778472076032935501292400074027985631588743883126508928310841493212470835788959273249743317552451477722270790865628517442863956336113064674863396707994842075809907499838381241624063004701358059952290301406861642440410599164111181797322864272740669565354707255682743650406765999400206789367437069293420233381702046196681590769558322765975568828809275638913403619134458436587000295082952251315614118808049087606757605429674249053711899486844897472414476274787121758425357944018735511755579907844824099860365476818389211040836383936028462115242453032512927852527002484125807553467405576561077352993936053016955914950789270913682395379369100861278833628656148912212723296343378099061729246733088955773759557198480054180793448636090346870588526190842898458916693536561502595331678211128177048557207242926722329494307218790468261795806670002692212521933185005092592272634206034182716894423164807443839580319056915376367573499358598844112404869621629419431931980083686462989210800439070232626795750516564747468661988115853668912091642801482734459257223864572058359836659795324210252943934779197258366522443923187463548217871930638844972804777621759633816045925347052096330327008377868320972882147557712851082611061912396389551801858849662579200399289574478994347772061976266065579294751078445527076073171404515214134166874279320917403785734291371259199282954563764870843301818242290364553977187366815371415609709372436816805339680679336083812797347470597046715855558436890889941869963938942275161929470318214163533597207953277428862796020925248549771385558555617260785323005184869274148767982461713076510047562581568728541106094472679482993463821380185983385655200607240363118811277558583164658167492994523255648119161455414920822905206275798853523339750737674731753892916875337149516721701923643831408682990065806438535106824294145533946617247890594848741994385940736591486004630838953387719624893116670525710651241369711548576886810504584599398555046142190030205442571452459116720369833684428185914649233322723214634037033264248979557706972414119535235610918384480179382308569794896744783660742769728723639603547683915517280221191534098721087431354729048830383750786531901498377310180713075671950892022309023712266409987345421513013674714256452552367129275391526125688821291300671761702494836066630238516717295433800786056504748896622771259249645882557498708765454761451110427666901043230077621573335489717340485860097629560305686640950127019772222285638834227419150818746249679434527879526176496238912350818509921654121166710420106136935345767340528367707737367890266668848059817263186236211539577033749116883645240015546041292610828866932646119854566488507906265919843411338622278140468926562457952850451275786641442759316626288700723279919107913057652132841128541954047960220806426528569804222371090205134948267655492917306426360169208943455382523355173178196323165030438427005946386827013263386244475096851345544813558227358019195355805411247015972701761253682268056478322620480673529377932215334296373635556901665900512708624523628017675181361506795126299998288242351357079952685445424815572450763499685073492619263621865048356113236133626651105759277913921470263387790611950444413751800593250402949736225541226923839605410355731556182883887594172104971574674979672927508062161908817032739443902201230570279630920223476189025284267909433148850337261113065541955260096189472783393651265702936747027330506976447707050598261216286545914962699704415043327380695586409963926944942417609639061281323948953570461733250395656378356697439554991579353184621165909996310287561801845057361996640624133111076449933435770906739953825883026396282880258085011206458418364094576038128888172775309952347458484309406868779120194381026090812936593149367305545049937543664695680312473272107638211494793896815206268639292131855465391668943536859953117966303481791801949848023962609706181765449617392268254169431847029645674155098514265814294499779395547937915741818602760780224420316168335195801232156077774804990539893679318529227899280333441054119153872507723376398223213248995646454826362283384584813789228285340119338553166468350549128812910149178580944002066537015968263385424891225109190898610838182629770477995753521105421087168086396709749686762421177723827864827260558042900144167471729157739213530792886379556898402690698953902622313614375369225697625372210472056128692662490794018023159220915204813199284347260039496113081350242917144062531346130115382541899061558783663869698268074659980644166079822520349994403298281298099496098905838707977098745821616832374922397475722419102180218683148352282043137887813788919336372455028755637119586333072315043139125054199451202493529852491483558196806190657955018548699520614563756087053279055354631622113433805838570442535690037513113635460061732401250262781592064331195097200177557521663884288808368883482279557287009847647252938107476251254073523920331809716576337102972713321938096334248661511052840156650529559992646208922205411115465985245939016082140918903465407948721023587786421806902248442159418033403534733773617962471278351023127098829801233726573023280390610743556494370650204884144601404359708601756797677976095315542059945540606719091529694205110517577136191484284869588914279927020055385073622941973535140633108747172323540688523285170652265380186085490119434828936208160832040300703685306795924121179675708797708257367365154182467454715786948050666663682403824518461556786591788174529683694515981202349796851654366511271088494602693031863621729408607235632426044575573584457809283894202289055860299639173573102589839735974875563098450534624655055733841373026607485404561600107777283472184252105082267033808997508975967917216776779098257993189819215687538573993413488608608545748316886551626454358912438631926955239198638518318686551536439478791463956576169136630389140758315140785806415652834601241730140734098734785513249462413665038355841585707663565965438023236519770745780464619407869501122067231557848874278066654015994385252988490697861318742667177879202990222951991375025181510865340450961826674663392242126068193391679711686983206215225841456030093672891889982193222018584500972143609513822156625480730727727225677024943735459504078971512278248029035893650592624396186255530972386344003051372863773494802683175798604292178284814329217836729058454061887833710185931173888544500704616451672537791520718254057001590563641704348670223666475121166121935592173632526299962167692550760494844443027776903280965669039901007863478180912734647330923161439246374739406297855844471788186531982459194977737401097382019616057264381291969470707437551210492248485518369746076465385111908193447904970624239209713701370049685402086572883365796039103304092985018087179196776026168933558510335109200090230042896641753341059035491227891680879519425951344666358203885186049167832013051381303342131440998357828650713568348120901802252777975046212580091865238194835439022860441850640917558914343748943496653492508032852898733871965495702871163329206738064772671511900053839115192122877588204377864946376055694614739631507696747657535646331829804510320226264285346444977406034711058789791599768961686578812953109725438038412747205818672843057268281374299818441003152024125535013195906741676200200281274909542325835577228026621136851106623128022656653282093250687511299778888619496767132801460501629819400679174060766317991505151692043846980268878525679440336109296756957443935998315220224919167907093283976768844861455958436340230285537752836933870081715566893812000761172522872573643999479202098956506595182644014496244183010714989999251622716117460724087881142974922057143723609524958797792864837850749624274388961610283704026191491659384521646081978348605552127827295149148474171605197088872604502450165884378591127271358142032043157005570297084196088724306775756863750884467649812068414153886423551650909900359013204170663965053068601060525564222195761068233336384331342734323465666705115838529528095467543697552786569367383728444948326691647307933951194727830500827593115738620129850464855601807858624246152214840218099993160553668918522031553639787433534519035812965856840692180978770831350482143271832974029934116406377994903032442943539422819348633013216199218140329741117436411822948080695248849984852580546109625323221346697752844257498233444462487324791736382431020629564459579939564979802549966630634972909002968119859392486701969434834744501010449989204832734312496834814226759116964663340700627350864609974135829729455037822093160643796576763351256698946439763334752355279022191972379033172139724839328357719752079622130076743686542143708891305967621727315540604771607528820946448607472616331325058435902508941940312435100054799422336375478032808765763640069675380462122101344428752207760695582419063822284276783252082230828453782920850723132150364681558581147618761276571293620106686908830208325106453415925486365063040539823202871921205466918551306746111801193248363427285313833708566453176736210389695826483365131316463248896260660763583155591472318946502494618143556212373878178376220376827409540415802050777807502100171163077168447865204589409194015989401427134252737266035669203207351827190102619912424899161372106692823777402995811630817422534128682285956549462817550524937254578891763460913855263266288261742526912340545554304745144041166608972693509499783249957286745427889417297896145065569898956296511242639366605327464085498197095046865379183857822372401678831528480480551327556694097578871784343528935603285761206818263776906828040989049545644972919620872386403077636276533842801599883275994661624786371739815153596153682519493620223354891734029548333222645163936017444529141023207512572195207236530987981823207633942566416437494568540691441747843370974531401000414777550295398082539418718917183783613043803741684412914883473423986397938519001666274253314532742027654826177570289915425825731601879747706575878313404564350749009653006287463964954727730617245090930386196102966010259663872228760899062262056030963825758380882885843380679788276886419442740723153769903817319376383646443749704760285985776713224588530466566272620989717698535968120783504865421604778026790261316139342280784856071841364377200739489047107477530674175066829817111961765922670449725597270666122222581221409662424954113367196392541643068051115162558122913978185181391241060127644983166195053619190851386823406433285965338184505293684472325458928766591788996548313904425175871650149626854930207291702452559955169914261932351477183400344405109803387239557874307503257694907384131751524290797439607131437773224004676683336995293933296649218009170852856842386236469776733187453335447725379636489204796211647656290348897869279122898713327347624969340365909329280531755299747387636507655498312859747611716711702971183886148252286960000775177103020564204319382560810209461742245855429110877214781580066526939710924287024042563550793659631606081179146616377545867187126123493754994723828467727520036464785948383303809105113895267173957062364224143526968495797878411231517316803008536501759163248447621683738243088557031243326665563330971182406398277768808727633016421827209064508481830357347821158500352047971225349140241609030187712928824078114815371555294285138819257057463703869424822663945729231886946236145120659275561538017030902509487250993218555790042946553244898972625286998384121114302763956809157122019602839467168889441260404418636348840864881156433444054372502019484143969118281690016339948851913696247002412114483490337718743985403151636664068812976121082914945719234730597248085386722201013896727282294629474764736049030909040926384673798178507440406243121259619391928452072059204966271461344779792601901524318733764063461387452985661541168969632358377408722691673933977822926299160218966906906790215751482621744982261442471143350990444704642547478247175002522619037763523140318674171056849396493961133869039616744473899016461842965847805199806356236487589737330781441830389162057104302975125658003715685267333520924629908544009017635397008601098701293288458584173466330523673769308010264730935846122754803119368837943372056440191455210164816192146967024112166778855968620554395171720661211504738663232256770144484868568741437517693282126987359081074165695804605205003302182862393913159983287468020511650656376830088686229504374374819477132311434982643746144098514925408140292672925128158285765559355996748150122394017595018629325432497002738779291858087406790388099571259113074185297715854873546533902160968049827923310211744371679048621703072502047225903452249942032776818631616093742230680139637500708373347355922861488353476893801294057675515015402255518108849079807915984814288857359047403835539500044509540158359614105119571812563310741885026198449407940585292203089598165076036228896782044119554951373659527679866243140757844441726975019439313342823101056919211040652701523327580140396242265512901723757538514666202575010378908385343973339759023936132678688139644577658091247637909255910816582945294274777569639720793473772001421677770753226657680689824989633269855682238598399635359083006975510427281888773513484493828599388358352086222091294132322348178495371949287333869821284878780189526309175936093595385208928004442531959311475295237552801158866302955987470251494987688339878458412131126654785486100965897473831620666088267973305329342427575757725362209382284919243381615139204192603183538418370755421583966053666728668759065294441728020808260523181335442813817038153715068533983250259970363019716421750845336302475285097539789225708499553804362186300269895790276273756163110175597158494218029089988908968394032794514916384047159565452874064154074020795772518824043956761814017254665715181387567559960910658725458027481794161877670340612143560086598092287290007249633815048319104609470152812747677546978460667050010937513393707916286661998298349419423337825050418060144082032918084942706708632838485659772653501504679975273277363596243743564221764737966915538732387369922513192964503182059189163008633732664268673969957922261363572634305020302863548966245962141698091906843374262390452677575374993739764291427471205239506279732580965781689860331105530358372577739779905297574594115820236163970809456282865788016364080028754889037913468695791114365437348123086991825266440267357304487461269055211110438290822525351567745287930096444965309421878585433603036641140077785947885016171858667218052982672130092833517086789748771720471463983077212734632433261546070432963013456506864338309887276464118268452611008465582696930173957644235969677833304087453949422180137064156657996470272555622760085304292743381026817434960308462579270608989213951160207082411454460973064146776508677710163409852253535490643555702216977518929589423770631012417038490171788425679165475237456625995441359363126397289372896528501083888211870991700555912685528346948439468258906358807122949934221195540895106815087680732988262613133812498782428527679203828513157536529896885462464795105610640865928131929237057769757644459849705144930403742115265410198114733784775732866647898121528079065557839614629641922755810335897567923935746192269525278525278082754000346803382432593141358295746635481637278454321225683314833059563613434219897376949914930288050700905018007185465280332313409285462181753054068168363067527424986462112110716895574598437281074294053777319829695887446615633599836301658661734742138542099671351767068172617647123842273306287274938480137920513576278333003237093195950232483894105448250665513200266160199071445085679148173365660325867690589882078991585373682062784007753065277419394451923205616923908073297725188957306566342767660145458532491131115438223628411488549371826602103421168123251011224918821136311088598927946908257964178514153039217887755352535917476497996304968390369709990082692026899942395070783933994332296895348751284005396174956744086549078283104602975801223103920201490772506491943666509180925896336390824732877930451651162331392606076940112383037675667202681567290357650483500538380784594014715697958982454575265386968422701014157007520230988543124964615137700154746675574777881361342215332001831517331107838614556644188189730456038759062458038961623429595538019410054883042289640985620138035864154706437619724273003285721561116428483033844512955657216116466164348277939773127888241985509827255320354164513706973374360853539964571942684556878172880423274255589272754924156701504165433250529042774472392799117265117802899256978497299706083754039954635098330181824163179213976651763549760241720368517352610721162803783051160470089713832245440182001322846502168220910029720440776712194016612356481792078759182729607555889278851209362530865042990033673164091534960904793632675765805990523271661210461605849039941901929618308180427250655677335251325731369609629201460184006126475712441867287864196222322232511748299504145607715676897579663003792593301669608218406678744395933714587611088626580990333094694020594167650903143663008182615842242258672563966139044906503915607631691848355087903284630182757262770665048373415090195937241520007290373456154326559457658121527674482743504770572729249181705555127604904952755777182653228921119356343800214282761420617010856185519517579647726005346467489745096571735778777600089399084260157745232499194777082490743955659695816344185640629570779601863230965275196039878051725820909633311940510873462973304874313385161590871664276128773228851543031769592135488803916298711198443063900459606373796177095696643091247305002962087549695704906406398416219090635526699663717920586045380738684317567621132599186764377768369390585531980566034029294638008226958793001467441411729647086299451193582348640300834373494948055369978836276441437810692256612049707727705869665344866200082558174970517995232915527135539693013510901038415886904354129009367271904041215845168078365934509460434692470201389539038969678443172162152960130547983505811434128754547337171778412472295050586440487421314751528914256984475868187826280813014704683575697464838191946670687307202112016165349294054450286748950669958359141159182891171114126626471229122089148619477612057405905451828825702580284523785674701347393110866016399652947749655255760035420233029078016434745007125729948288887914569111573083992336711194292555930874656785854281765712014667167854342217884595963353128535132825611461112025864318488712814723653624430463021099745568727581985671471096123758161732660095079915481417881464807109751192481314108021368252133872867473367150794516386449933307944082890032953446280741766025077197013297583577515009424468347636348448519112464920633375225140722826616793447293189524911178989611398630699681598911795875193552607252984019485400879405754307061863121476540418735473099833174838434242615451847565026502699884647246178210411494802659492126583828618976319666198063786320141682054368141770513802374232442055929985560700038149176262245313486199301395485036960851834936589878896776195056285510447797016091396344683487905296857783322021962927153941612464013887106801300463715195914369524169550995057904662939856212628701621155911905865930288330916512972868913977411717597686623819735484498499677891428637880115061164016990726636541394300364395423311461862391294826674517996817952832809113551557848492815971998492059188805534493906157364107427610541839950050838575402620907625696565223313978040596544617469707744168840882375542091601840423010741495415735070548553001641286385621258630910030728724747567884202681635447922957735595320426122193921778279398989800706678994908916159914441721619508654151304183519221593210321450429171670451765535437201833187791816687794794340119531920860124376063116104442403887373383110340229166456932655675453970849370152382709886684785876892421321552764394431429592358515305363448859458477441660278816273726347332970986275800562150408071316632400762640696153318314204384319394564896739945871579394786367148489721556097906758536029783676446085407960648382837340646706884892203761958511553736144087841320795914256494350821331399004390536900001512521207911732283276699953297781203646246163703488603664369254556848864457115420850142162545817754006063881734171127258048888535822138904946293292826965241178783411912113088457519884781474101627698471449366548152250581824041515661756178518368620028127140676353936014243677488946155229866412203232313907734110286881294637366247249667693173698969342041657826906769526909839157655925392539024328634901137763675979644898737433350379462759417377470375857310991766600849002167899765712383475403523707128752717509365014772047372285847803494788633662855169865231608733578849691334733815271529494803385413899254876293085026515260971441314813902281982653785380801709143254948153008462658881125807404313074423213876646667253285294771117024653039608316649712303484746316517276825418202152825848420015784974347343181037008202411966576780893841693768162083363340303083818654423780749677596023704378937384940377832324458980559452901046446495806206455051964302093930061276357573161521484751153297814849080186864348866288890828675224355793842837802301615497745317545466799691192633775338910190118795921727531465223431021627830975504194514840737631538603144319464787197950588313436342171377200281237776755673916853357287947749403365234327528864966312391082775940074002002064119654611697197590217423214964196157494913710487151417391730777264388888995116091649942553610212500380893439495832013347504436839472514223913374667138789958617690728169848747437047823318064122862478585533108463698597982821900779692159497774937391289205603198265667556249946871397653976706608652152519290347195513780434558224295006334585291009087987186218117788118572166427720486352154420225182758195173005812165706817834488336716371893277509644992124440226800519909064740390965786664019452800880359953744738898555580967243781367335190131771686172468045548279622716059743218878727053939189151641649809351521991054059538209925445366119283112434739240923464517131735372455099005964727589516056369168018106856674852489297691962825974201893697468372120439548340037084355024455445841792129986269747485546912080779569594901536395323563701382443243971491467723034148669461257574771050930900858910583756092754093716520025332952573031385728684216148302277049523549170879262663969412857348594417228271518799229536091143965945388510624650330219179641266075770615674360858376079753852705583590223650675516669186033557678842021264444496699056961900714886599599407050090212488901899640582730143326899947554220733748067747083570675052056863875918711948523913110378777525111864686391144379904081611839095502699237296508606837696173416974758259129442005600677174163958709706906903073873046199208090821067520744027309729152810246196992035455917143219504221998854400232274100270665887068801034076917328701823548907845332547840001110653704194560210587251730904446623037687969039551431805654478957652275635330283884433167906618599486434600149210302589854124863649224917290290801253773734668760084369863924031052523033677782393216371798673975739159734651922763166443149913351816675474568424031765788419950187622217791551309312714068401157679670082115394164654297279749265318949674713178487141977397092107828792590226198198135588983154953238698555585676870910556994462774632711860672641698218962746158252711146360466982866615054726114873040275744027245704562537742118405653749601322280497349770088797394932946098318201841511087692138800556578784688093431041867751672354002923796250592074654805763008957830321213260564242035690880177663425850916950666781134278749590124836514083093663488682941731142935453868775237560212103637410028053736446970305019421684616368803436343838979541133753883212557853845331885458043289570426030596274789167051726393542122820819785042811179511383381737344623869939580798431285721913656793852253470029719942171215869040859169079442341002236743930592558850587759240628600035580927214963889327335831921989231844271250959329555975172016286069032252655327131377893017736365617660086314700437539812890245440088117339233978301098406529558931388541969336986826060276618361696119988980165618497578928661591303813973263681317029288046440015186352020366525028565179400343580501734017983001261981739782614060741755597673736662343305925065951909360907464188082759731432815198301781958649260339460711521811385504792260290117664985450865676813959147815618624959176542407430411309610055689725387889045575637413329263920990689695364817087345441293375045675513063507126989786166633585076111827325355732449867259833518064875277036216228204743929291086034939715082018274384355335600186391617794241608826808848381590086045185870655616753697191311476348938970538984214716357790448189084107326955510989942919881472080394879406784424300521548768607767781223888626247629151989421271029747345697255953595795084645985003631902316781901984370423808850022403203220168453118369796632321257924079952427784428631894526800097254939541025959344424872236173836968787881521892743016363147805224042171241384626994668509059450439334847949951040606793687582708976978321040487760478905832878046927577657419538151753967626343382067157730491300315740637724328379240683836137665968261429672064935908610597426857806459806410009703520504354659315650458469519105992112893913821641614497394272463147260529859810338821723685500294820720467988400011351079606409039161603934587753421171778138160914356405445118348883737202723365405285079932190038601079416702988854433044541641851777216128385506601356200736404791708924617502641080298235562347314092075896558946104289232803847705481167625570580738177991214792038134779875607623519518025807684013762748024900739287950332875428150627140978383598763492900652773202622560511410474202090940995789113714751208776165219272854812584712627755807587084635217290815221113577960307690844589626183718084066625333793367890661758700198362136598226385077908615334861212512584428344288831091393754444441163377498959438900474452533836863376627207682307580717236435349893200482958360663370639598927711272675800724620469832637578665015917721153016970539153404670756550939310079052974953312397579742744440836555736790001311424753726505218114954815052693096254352201249832375581812006326977194343233109966073158884892553468975899160484545552553631991871522809294554851837859860688382521469548412782425388722028749657274832082372535530968340998593472284343761869575069773982682531009568621611963070984565324374053570510416470634480400737976895248602246288503895238302294865596774223815382698366846638142478348766243395626930993827162154495123229491949017431964783584169307726024240731317664270721882711678437692874471854532816019906917351407609328460614388983990590714919203123346609859462943707074652336102815170186354997878183764107215919731091647045422486706335884250973193430202994879699520252527441386257851034560938755923302386657022618491297070326569752685827845045277695994326719179744506155369241794157016672104431290791804504644383936010316619266303206262623450645658852823131488872625869228593215545988404416681770641491379670250838584265945509471043737374052307564805391358706139880441615181391449388267045508069872032257170250455635145020758381932077341286035832244396472093364871268129781912921261553673885948386905015193489958174967531505136856376779368217833543263218218367459077857352880032323515278763438041647049011835524469333644975575627612980160940708683609415818671918691238186731162384897497782847686130840720499708845127806700804884942344294392126716925113685831419353127783139927532347028244462563475766244731343208228818866149862376170179067463437328423287839112207615947700915948264926489991672535670197620562838318165011274409933664670724490967276677002432856731495162009891616523779193136303163217206755880872870573235981106944879793677876179748241212038961654426486716686716695188805275609985386354756864903258736921263193877731543649254723506291031604987275868603611188068031972360762323644466020900936181778755528086229927424063252113756267198903280283441501987469488953557248286055989552594344955360659392971204999053393438704577112402213846131829156526203252020496878466543963409259261434696169836948167202768827946287887518176085679205863574065121877443719374774642117960684545322022370731017482739699198487658903856307059714180682286714968658038317126318116603987114103823817796422961626801520956586651286952139954499542190757824796522234125190210508640467633587620221844737128344217948145759600695727600668764621925077713353679584266437300961277038619558777062277087153760200994547500028576743989849239766273408954949626893032407810903201900030900352348625883157430105984370800762877841334866206860528726158867809727446539073672441014135194899031423377983397307243425581285749831750840536830689955373737060442532362422656866145434460596788178254831491421603846170898577844024539139123988433699272796031541939430672817149644528684058854526774842875603771950576998900977934434717111214129120524709985051603205474379223287052872497361344254150445560695935704360606297731688208230988419493473179676077157309694517322769095819341896727954373344493282543531221153097966266316552035397244322495140550514013595890780771319388401604785074575572300060374958050396148024610876002367618171487039665259220853106444782201073039821454460847691922937594755650898774709738038863838296164498193088998984772894068185831886798579867419013838100995301234937762960245967753009687269266588522778933528963379589470230550032672606399109053633533534253499531351926705771108036305445483174379459233830584700769603157929669748631572911486993807018213452982345665474156210871532064989446266428746497933644887618846009061642507279397159935796666183030502087089652120530825574293337647228321352224958859774585867316317046506559464520690238275969487020419281258202269860701315380582676102639409451668072696782797841740142341907025898444366261151082193968022402870800422467795778377746833148251687934574864220246199229325637785402804056255427920330591102447882294478183362871596601611315022538198949051712677821447620633436474055403305968456663497509924662364756645507241841411959003869271324392085233711576614777161271159876031088759062303964278158453752979884578543021280024237343384040856832598435897527774401527651963074927647465003946554273590555560958964378684274922408712591461328829506261684177549197388139042516200650818510352270207027429437925889443890944080906784651309656873446662820398084789586513628758020419930824283850193007299443701725073401628471732980580940627436340564896710073121786877041380266454660332543168162592369345300228963150263170323495550942190129756930662619652334297020474038187832846997315583426910835912317115927438690123739816463035184460852155959555344259152075004080351778819418409822196671869614034427492483957644576894594167040994501400971233774789752459237867150665678819745233744559901111986702094307942260086789309452775606955201557996887626135823151384701611134768811488836227488348504996308862743499803779880092290138819007109821954896822554874572612914882177056895598345444469971684837159088707024211714970339805460539688262009783250058550441953206217184017587371463297192643473542263692800209247595967329829070342628941385462136173867093593211540427219854156071807463252701091818740007698767375953767475872513813052409809563399779904269415494803595376911996772665946921093603272823607861389395817404366171290408739842353180747219731805528878142788752050729150682322450052339955607646557326460442538041088342500412022131378975905297104787261330220439194611272893360628908269409772827555443362300589593616258378978576462364955739839142490840808901992804331289887272354652186211749046068180614197503891842489795833123263773511458819994688913436142408756177982771428947553353457197407921212105947828011786057071279926992800295899026769475831963642965529266972742600222090252748241393682964413408610993470583067565624261749867964103295100106161153192875311149251917136764320851357786311857252983835777700809434592874568715459077897877707065166494522430675782051407096821468041005302431035359008443456921734768056616551506355911421222155674314468386894777389213440116460021046369698671434448417112748085849247534237638746300916064192862108315920155706465006900629287336948313761314578467627528318359863211300908084379376117599967609916065996784915883636279156303846260945461698555605238720993107618024337909608368511890023960001621275732436513457372266964389739843585181635606965036607615670150251974508667648809800339911420813450351347619986139068560254119183167421258046189276799825093888345007927633229363532348575735994471271857612936855530921145638244604499768274260067541060652946438736754952482165527530662180147995740076601799071316158752971621451228302854725858190800422080291041519406820966284136967008097224869858212695799616647726106754242707342507798693113553654631591636185075767806545549441004835821479601074557039188544408743399093851555619419517053091970921203191863645309154287459694837983982159902795664889472832927897167278518660574052875322768742054018405763044204695794274906422729550443174825983315886502108528881708067028302322922540449893487861133205735042267056370472693996725778319026159409495233130263407862334485124472289783629671140917993159498981849595834577277593774918142296674789164711024960283049699763667532320788824092069873071720678960480121880314865777959367099184185414222802855084474716412749238691243764014181623844015133143729673886446902006063618629788995540468998525930140279833541171040482475055741302434032931904765312883112655417760708108915405488351734165831852955745478957228758928636406137582704147232391911184061181294120269165287630862337211006001553630830623427235279593519119788443785041499187553182402285936376114845166295997129415085602289853047616602939612010038965191289427291484498125502326704119660807325440434388680196008523083019533589977536016440926527794686460169381003962239025201145730667561186904928749867025446831942790841352388840495458936471523435809412837519300522072800124864384816398879772441032121107914638981031719041264944045033225133017493858236816986574046674476956084601234913212695944129652799036759225334918435809681732390236053477054762197888623244314726528168300574067045791672126152949632953780628197606108533132360796522193452344313836190294012970738591180908696771820526367275149433441111152614148118248091208113540618616180488757686655903470819736509130838035723773653230033348644164001066724946425489711361953824174867932589749246022814752597829495243128720893275299672195287029699696578168100176698183631550354034402227759467636842720455894489080355454628386638112829121539286650258235856870839947987128790638765418563620185779604337765222705835809662727302137632137711317579694277335380304044838262499175205052529635727055850864124315094245397627459046122349326834252258997328490277284798023774812295548700173454600432911426320581472030758891582185347981409523022074093611453779065419747554075933625745969802646425454528759610183121541262975804157153656684986547243495838083441008131100071212415570993682820355236327689391547255827354299266837135330122003788379960432174630892260693679196137487154768605409473526583254914218781196569912904297228305390833907948574872786819442745237331033597544385447227422963141647495786464003221180148146358902222949726729970664428510886883976887047019267884575226674052865825526252889723548678556851422671925928955476285789931331956421522265225875470834201377967473399447828454818161387059355672665904375680816998841670152168790859074474579858750437949685851389463914739041576090090804258039930974599868140810272503768337199366205474971270421935044764242898043482399540668540345008849375292114121551434810792396634410534517736098077557590547844636167704418520852353124315305478301533643450030304519574412311785962399000640932447496315234315442584888993650149353913727399680902062845429514709919853726626636946794976497597961880882580143193461835334740228738467135575982245842269822989355490093034039180422762338923993251559732072886266359678186145027166500159764607613998335136539996528573265909910193986557727576240085725722787505513150281149322871812975381929202541592433231029639780227608058030979985380848406063223324312061146877537057698952456636086329219178803610582141554091289450396845120507043310574060392666651136136789501882936918012727841656952044054516411902163850613981430989326837460035691499730311052249302130889127137538122637166268963119181322671015654786215243951660891170254164625090975498699512951936560806183565613450575213411613483288961831458588193611998474777847931865012252554505336005397901009800919757188171632052125261914725987630319317421674391205753026418581357853295050097894868313398940306426766358958936636240423378098255787843877858557529067366002736609725661250123207182597769608027023361832055269816238083110365681724624698019164420683625341475085414992456829030670081355994221329271868696953297929922539562257600798319983566793151111380666897624011982830611101590487059619886625312521075386848422161802774028945839445078846599319991576054235186775117679398966862355575153780720814182452330758331360872833376338204497808457466044782724927659391843791992784996569370529541374131579870877430045883610563997262487342515261268910211739576359457023065668771535083528255183923165163071868116176143481120930903286639355102017538233082157990129192130301665907977409045184043363828911155142713087129585428239412366634746899209326988633605568284032205890489768501329590397580624892451069947613410170182245520922587341910405921998059604053592905999590302698248321907785394609276156645653841063975878368538947570665786630070977663578271122724258693119635539431406527818315849176543984407183947323289591815258829258624737867293774061075775897941462072386865783437633308793805781869207670956682689895193925285379315386974202710980762115239492903812233164734074783889091716383819325218920888267575890981284403376513795409537505786290799931822387414129897970492343288573541411619400459208171256594451135287264388097911906844448853331459420979368719637561671324539121910369695603497689292208442993036284436015742859345511937406017325169091589147494359005458609143522425059501124046314063914027555675704293669449612293505681342512543342415398049987671880713165320061692607758059194313377388802158047742269520546193909703937325520101270618443083658702029954027216089317095998704646324613930170655794178895635326017073969135966989176727105672120208786458702008153962689531876639940360138611706426123020008265891453052577893801200160482905912233227665745769723311569444893339799594195147324732659210856682954404497555102031997909392301766838566669526476447388658906861907286171712966202492108628671033700263208147694398712820457031837453328123193732766863041023633876139996308975400232677031632318286308798040928182540924835698160554316304854492082634637061923554634530960129618278663800466389803333128819702112313115113078193227051756450215346654797832078459804992955972685430625671917559505471939259959943111334792607221351112854870155295270452629517462438833280072845814909159012479515065272372234816520619148282330739582448436728024915010194347397483489204394489129954053294971416161470909149281070680842392034951802612942955036807802255053233715061647808162023197542400783047098440434567026790879484617694621121565764264593220272655146258811219862679468422149375345942978404747443930138458445460208529745447684136872432788917507021766241929887462789846939229552684138243969334629855282145501558235098255355341739959309494673933294386391378472895786603506556587187475548221856017613944094999418635534057337925240724013630751839501317875342025959721200438265409402354470865796167723317808805367529061249711959003315788154052499982650459786786216572396401375015379425843665703409366783680597377740497639727912478402378350139518952640712689393456434138070841249012685681111502226852948190532883859144349948709244619668078299572728614539558162950059495446149100485887297425802319757077212464714740469508099623008141773637822346199219073795933562418316141569234928675800004612035106646683360560212694141365673643687243299462573410311007818966260291509609214329212219825222405894979625240179327661903189821170089834132046754417032057449728074083167863411801620630089344206271468433812570944209258829938394298767738271858699125203655484452415943564076468234390002932287719002564493112798710257551756457142262710951819156847329894816349430494172257042331761043798516923745079707538930119140061236316899867904467169589812381924294468012915091031639798942592653144969222445228654514859603894436908494485649968287899089785104730888826608468493613723645208110084159003876455261216001857298899040480631934748443738991835395666374740099475589917001672474126111385420256924719088700624497017716489927359511514108440788542103483048782742397495914088659158728570588781630752134116732693338224622382696743391091600764069393555845382641724453049796971443730766425513258083176160389033374735035759672048949743470846025415264071723311134582890777540076519688595974953525393157917569887851146475206747662944038023619649273016198757558944530180036056802503216531597034732394409016966077742255678202456929133526634043468330861974087006158208817900383899416675940257468701230654788039989401660303306471509747392102227527772268279183757080376126770978597882804433515830514341844808589126641119783590716507546390774199312876391932841711129406197186932602091314833739439442952496644198627365225790397445572962318105320453868580722711277953027864257626022228903382456211446262760606101641343913065321739146502512121647477610544452268615482057449687026604687243210724412491409145901578812187059226417979692196432507197775642209395502661209079445431910301895423823369660183784085048434552979922598069545442277498697841495013934533247009573130842024161706777386291796851042991072034870726266801134842763763042424342932415810849404042796064375641623969744424025404912212843894977891446976615296561638232161989100222011057684494226091086257886368240304880870910153928073187777487502523673146531253710553468228237773044072521109653406086830722974598919122688043854747722238888737970835612260888410865280286515480989728103230060078110462386808548029876830776551022527922152704761605335694707313991697024394080176445992659805690837896384544764972091429323663814456154818593551912831276673749292428559590791276239608297653605153923821546531038954656369603233348183711929211523143562158233984006619781490642287465715125292599380920991884965982705004249192286910887140400612192039072508024066376453796585062760407877195165587669293842242033618438108159130462277081460632963725073344228971903665856325100301289637309819359820657133362846305662324473449776978959651656275722848027410621149608561907908800063185310333920783710602657037389237414185436566379306206265384581696159402600499834445924028701081978589622536357138382774066429147778443393172537199017792873832260463766870186979410271242843668612819023446873196562557073299717689194874013244316324892479945348796679010160937857100538674236987205160241305440838463390313359265680003449401318830393140824920923083123906268789575341198159766579566907963547543512164173160925275604200597357356686124701394893625692184850201259160134264191521387305354442489054910335364197865679699522008471237658770550181531086960672969255765174751725684327002007170017137657431179678867133443414735505734311217137825201646464319497163721979555062638110649835333703146744180622183341523158506403101119348293589626680426734581541989847638703622658359858989167237522091109231458539996146993165915313564085303075856899152566333881929894066916810439357528205483827207997041294375967386004575979086438015157416858014740973044866825388021150457332401358063609620932201947628922258501817348394622828061421547669194901151651454348821926258872531432034938333493942581421751702184648382108859745608902938901662265796969604824125473669093231989147452089107792277833794356291537093304110558669019161553883105347900508216594772303654838205455354797683905880294056267400309990943961209109935922370816998211467426953386197566564442582829677305344926767975416198588937462638640926618319816973881095700883569350585043111297405144358475511090148037364552083654726613054592538126133236402938727190414015182099807013251507204106659603351129198070536700651429275717441751338961752016505443981217727577390694652904852802004940911399367264302256347649032877043207396382788630263667179781597052651294067404797757328497553508008379990802884742032786659290080594004224072748372809460725200666419422489644339435108628303279479147696503900356829667177335496372377643853465820443059111193097408107284697068630301070864690996430791352679897068274479412615877144930708323405596877693783482597333838627250952825441441079441132588024648773908025641260384960633474535902962818443235415943559902680575337892245582535732709451157907304850001427614197359858229971894442063407202225173243768914907101991419946272653542381618218557582342750555643508149916762496539238772343811496208951879574111481696766819676157140296227271086455738412125735256334775297990148809620189409614927094143492372658426478913226653959548852127505321316045137634116564595350384651455695991113812084000001523927492010188047937568433047338177988554585919755660698869346770150791675843729413109914435817747902346770766260873866157262191069721018926824113181013263831099054252200886095763771020497479246127657381986585356046073706619806396274033273867747267369763777132509475206466567856067647818034452696093935555379401714204235680024683316526164840170765618473959081864991861598588930208841951353584318817917884246305442407394450056728538870026348428034878036212726612354425286355321660464561588436658258775173323704978513970220721831299498696404751395768483808843408651161193958464606431019377926350992822279596378501246610484358995015589960571437687795023668349971888618527255412334766297425174742615174001807085346769942448909481933877990679663951710373535490771004552801035208300321845142200916632263545322561795459461034142857728280402278021551297327927476387236194504169474320547961228098604766976650985071349835175141575274255505664058629874938007378426358359622650135154919744303295514092767806601918630237571788779729067653821644437244769152227395172858594637565154436036345787284704374323083710258667065729218072926007874051815014378823895670178653013577459246558570192996948382269214900919028199217947004263019073720634540613122177199477623970997931899229584606033690792870275060765465473555580802951155474214936539113572488078434611823467335901210504218094324474081536532359589130158846318520342592423810373061441977613223345408854894842000316815752119375579799197201782529410158230005428045889112292190217277415653812853793288157957022518417406461008125765625043494507984113477740304307362787704738659590849409469537828477704308323533093539182287119900775442869728702721934995810541350490296869982561291964094408568012260422165898709135751232973451782032742593275407401665975758661168663573516518048465510961628740979518822075593725647061154641516631684263334736672276386910205659253485195761053524004246203030030362512213535114810990627613305143021759191411844507102325202089745449820792586471151174181181246186430514410302064017234279087005780811106900093890674019113585556466364060036347677407330879651417462608164981032627011569037075885540611253042074911475044963171366000559897856656235256030861605177215848852558861559933666998590471382896842993310099334491419620694159072086589392417183273095322201528798993420611523683070017160709296101398193374972331770494162971216858196433079063714312274768641072729316546424831049198896654957274107916100593198410588646340974001857837470782022625914465224326917496598373555929766592015870843028415699568873767044278223460125095588703585777659399681168809207047256562362757341646673807739136715590132924106873344656247646480293723826887382686893667762521644618866694224355182813827752270213423507068120812673509476288643040128446542459718090881615331240494417752076354623159835146824805538058294296828185265719143657086302654779553994756814372914952642334421498379371437028296479490837015327959292528924672113157472849264863879663752679733957417887864178645876141325879502755294917046541781904128500614341451785839613875989880907403757809799526058849148069733024692545478146060895169896108901919114007910035984941969426073973500661582999811944269041686402297440983128395954154076918618084145809110840028288993324168537625560055703957763868160213287163139216524043366176268026576643633998755691732223259110262126120146817705257578206205435013562816078270557890628105076126064009738943326518382022453890716758740255609262692971448788162223171809954787649861956109509680354287384474049264615393274456523458853377424392663833084568208643458204995014900144098394491601614188108443343094650857909224450457870107623159378299468664428214558810396880674892752228803874224517571127613365411159449082707766012364404620060465725119576830045309976050870077121748214464925343670134095579643898496327641974860562552394829694182819566077310184501020785842805505253002121400082420526976227164265843695244098964856893801849535379906816893080502701722352229044373392773595399982598100178506003807619455301937804351971488140671301432081091930479736896325420695181958962965164206273645417056734392501978895020767714818378259487609661600705029701518508394998444925299308250485112171234195017361113119805362602394698774526671157211792514265276559517626857632923558868114442379850831614992795414665224871994791828344713750042596896286595365265896573851939654202342993518761666480627320815320076752934850578263658774006900083129162518848416355594680959972532698965275745980327636046811371847255153049375022609801136327297060296265457671185267342214951899727085972750876516040818471474118589373479315814984548965938816523303659047953010891304694085966863982458800335226346164560440657428292264733490733004005360981453068446279320201186550571878039508191723787114368151206282960320506301194453176918702972915782460178794777814232718243993292855967450025055053429546767429387542153179294231768402911623440908484347307357403171090166874618305968176880001334724603789577329219651662832484753624147011953202840562521092108555604318224687884146800755254103411245954477477780058939686533899015542558294962606810087032446206019868804278043625009791049972677779104624771265894574974332057089995310087225042356405403462511946332269234874904959833329498237016637799497290411746466334423508814241566018181209140369099506031372252776454362856665424324317733543285035298638181159220030973829906529768541149309073246063591344682842939272360092880039891982992394739678856344822979124273416416672162958541454074529170680892346964034144306858402924124492757070676508709271587839933665396502466913559529528524323125338928386316608678346909858443762196499593772155214901636588808674939933678983996417606245509423276172881772691639447621126751954902288342290438281958685762131355129058967863999128969747163608139616661737715072211284093976141245639202183784084611307603685247296184121355114368992105198578430529304316390629136484942335189890242421980416971864601458050087786394893832647353782721886105365554184520164334021082990099128821397171916219521156030120084084037223224602286337571496713791391089782008424708335428603977612073181728971904184439636425766212564280701717272852055550341597685705472781417159819386061739735850419350142729029114659515250458585387270416494168096691462213604655798314529497285244017642245179577496330702634375382077914105252493836638109201695915205358835269263084257464292211732025684912895472679761873281289674137431358551435903836161293627820792688947803972439499820725311397477171526809816466972563283659180901940746210983547255820327380561004585631479869468230304194824093866297787297270879375689612707098424294205548848075387716640180421967704487179363859454787900211685521187592667584736292545130426697731677418403379372171004664840559880566287979051768523360459485557411588498630832615220983665711434188574070721056350434447594994891275199861234899229942316488729327067581555322922838285861870565888829049058772035202629613620310788527949556639017065482402670812536878782294832108667811877309886716831953605659075627531130840171799855677124733509379778288939031565526243420315261222963509323315502843979876354864833161106289065366852221859856466288114498787475712249328108197962379209105562968389086971310709207094089456768486105587920916264675763360443982534390345446941161958015925489423705650008672683275384995437562162382955199417591330700318009495717946722509578119746322100792898625752458217289085923393927676911409267598859265700348084975192176523263114274828448611606349016946304447759621655931346873478719314974352561127690821669697726299335006231938158799517992435952400715705588921635061867365885794846169356495367563397909999341727323400528042883658038248086096202849916735861390481512348928437210844525376912731568138238915711479302463869797723121067811362271098348421109644811176163284973063875669493909407783729885871159032580837674112013615084614137606290963293746497014873179027728159240616712633589640207194686049760402441192127043928996831587308455380928378367891447666979333410514091456987226404477111692599608906465119772129379357907110208129459151984631377788449943675058702985450782380044346789365040943224085780967650135121680434899398915725431719524842002970544624122497117742653737145961002446297188382182989954197376388042154110528561657697810653086814960095266419920153965337526581774371442595715737395987762502674370682229485677302608665936294890725926621470752596165505386962737191911841503935909663547666013742462418064546695195862562164774510455073380301397391186977808112289416679055134037265871164357757374658413474419745064846934239473426181747557404645090180358098248883693377144756219620440291896689078928161810880481123098723669324841853871402195634017087287958920459553025127382884703168674662762860806957111172330382001294174702921111302628789895183235702763681508758008196746066859970786929031232436675696763207433605239176114053372876395469275634777328000256854385283038681049323099891528057028577388764258117934619032804116442193073622833943416626188618821623560941571537216935379763589817037040764030702181341529467822009847522936833148066073029979207930438891252220101746591017458651433158028583965278669604559528145093430478332077226327489658569599961672666252252795370386151254590977016698194341966771306706963889528016050324975429529897110338391529786809760670536699694713117284798973842511509437238609088396621975642542730337468427558847356757804044097342634163340419695189197063084714265705248550622407817450787959251654666492104134501326323295270354009663467043194010268915162731802520377256470904413260051533906079846829300693022451484194525026180808388128959884118968938197854010791557836005039465412569518087733448725647491618389068793602301828583002651470192286355494908603744642010699921796213303660869799136901677123467834805844487246944054793379856343293500581084039710454434464432391980671647027861839520296988625578137040257616804362013336004668455911552058597719412982504272569468700321439465160016038198335763064909915104137150554320186640454191515431910678074303429192057286213548625619590435692839410535676669160107175716744128914118929950974353578502946706535464370756407900851427466242938088324428082265249809533385176211169356703077554660568928356094547013556809832486701967379638812042923619971383440675418506787371868081541058843422392699739974973168551985361038689674404850268612576698239174783442565424933169656355508513707924908979313565276117671870748800084855059396682718060895595233723798667242229273775036020114709224880205647789733307972161133877456316733840820656884120882148109094078013864942093683028021880429897909830647616659878219316441715688583194696702056958182322516952634326687778087748553372618870313609564164520754979656235419137902601276631648492225163580279182746792306431678154568177520786586007788197168429319673537487706928656192715777387841766407675769206930816301400734332300017500106084570741470758717230410165370471952335416334250039808946588058468470375099662197964433353823933646047870885442376051231197597563389019963526307246890746577347372470052723479401358626412878917038567276892442939405636411619541319658565741175331528634021747786483196378218647208476979495165032257495168886402413366878509887481546446648082076547151240511888666834701215546810256995337500810542360298570395736318857819168166989945193584356511064213649952091908972135687873349233495894184176321679276923165429604427636112998141487549943328363888661275624267422612134062414143756598550725727841376669449572491261796043915020540507558865879581173275979377632968204804314031383772158052421195776944254369048668239364907457966443679835761673498651185186008622088843818423966909883706892171923554938981448012816683475336621489867860250574928296773098366703763539634718881248019994419530919512416053742467471257341175038969642620753908401851937572098734024411900642479688560592015087203789545781566379715952931615000871920927483357148643537217773857651523600409047026410011568409366815366172037332592531490828333312799504801524577764753276970163596596795859093054738090786160340864207365290426675113413456218473328122883656692677413028236045003715961709651294199005485371945411960566621532024456085250933938071613363513303519064415045056515468415637522269950972966827629234199571919955649247726584974309361606320678248779833671379292335870641675632496372226318787781279957405028681817729681138883612808793968403207078882545271967275313007715917106395022897511237164591656099796463472523927475288307961636597727024038248420406259237156654398093070278721955722571320872431264189562043556374038360496608344681866437098687800244343774815636221796393564698856103082770279694692854147740731980020462455581500055226711622644177601930359531862686998543368807848991177975056194652268048543752418771042361140207531418284404064090240678951841039065162800152847889389855819600608166919118819656537631860083455360802519562797164171061756848066786746850324431542651858610591779626787080788183319026467461749794301559036294553237369526887343295080752853088165816560508405998233475068496788663274556643822783009468038614066736436019990920903885917813832501469832061457815266465056770198018915274037278534497820219319172070805033387769924760007106256762446082621412133614654917687990004583752483993217044482667727016760463836160973769073639035008657572674439428676770233049442399631842848516625416551349082694625507461535957804567942734678356588249671714222324574184875488224024089276558650100706682798191982025339612938252859008117264654849186835758143093366620480811339871795508203078273828379470464835174080228875993083984248021020933635391622596440184968761316357427446665464673016681446497652435362179375767776557200024962606121970813802555779585039074515185036411001333188640314383215178694109981299285682601550078735288754447528695852420322574436567707320187864995163460944643023689650687519508212937005718457944088579950050369908995202421579921344080035293191507372213164198123907731363840038173560601326575464169897798033011571888630196854931413441460823536436315516379461277668698816780368112749951451008778992621975273019806101856489468972251248956909067202349253646892271415842368444268893668597813228597174546327321529354995322596499137881732251878744138776601175691531621137664070208417177401448460027935213747110005351674786461225335050904288969862306367979574649338678539571056154926495484483116613126463796289432696419819909689504121754413723646586648971687846817709479196711415701036557076534835766666058202667565770587685170849479464554005519467606864278172262108540197480018906230586841502255936352589474686167753669325056582299671092814647135964603547795435034313946096149064043557692566997384653926946471641830768245054943362896250492804352372470094361808901670174518445773166576099435963580922411174610325745104222315265326693145088011427798515424412766875556221694580772887479570053761772436768498669910878428189425091106788182978784831770156447979206507442227895464051790521602507793021139110855791936297129547806704613490857682690368151315103209879612472098994956902784821617918211750683401980361083135613072970116570251252840976611656973090996461325602221283196087652137756697663957915415067825905149948013588773584458818062438764236627407683722329328497814955289760195850492614422223812660435723368096204243610179555219187534808591981596114728377443000142826574646442469223788063015525401851851371983872046653146846629033534503688751713915500935197165389628704575759478022155798924552553034937929845574068449239460974931677219027277863747458813943874728164295777541701152521547670213817451786788236692949554801202141868679914710016505080407082536352589602081939434157891463068852269128763172592051188617136835060433319454011286298921030181655522437284819321092382726478840968731036699417855014501587963069058280159975371750692751871357311983237128462464993794421162777855382443083308632384095251457098050558517947408239702153822003979196184732424951635848200695698585378698390999698398557185927530228880049634189785009504582230341295059565012576104432815043088108563172252487848359822839178082983277270848584551190286420160067448777540621303382777819897755601333494290844864372834225480484165205406903666228692740351332843870129952958179764528223282581580107653987598797697341156902363232959872740328509590331605629783545414052716434923704984608876848196658036202493127730625639540012729635835867850657302449492400538775028109504560004380353774716254741563179595917512065157595412000802002726781243950346908907764611079790635365945376680834136097022690811351768593027849835327221284211830342580560542657511247951142916946294969866900573621225329753247000502740084296210533848247493716610531842231209664581690093589345772436800439809355730846241191504174826395810689797694940612434825676667430131622410741344554695857552445320307240847748571821297387069030269814382748297736695971510940797941933930457910058817124768590366220255764494869374052334486674699712263940996763361053987019605562427717024354598818262866420663528189346874683872717610421399840317429807824467893208460328137866894620359040888516728487827622191678581558565866003850653360236302105333646004971817293725147148308636544308377731430523836676336115009823334209034618847906225323638881565946782902796345141480476493782768746902078332327234616492442728476970786607410695203783745078169319614491857033402132768679453962189289056658789454738557126342365704725003662144653654767191794239785446668061764076514985468222502167519455537435773333624742782823831761247990842334693344991415084667643873690419574930673075359665008104990741860742295254972691772073356828422928704845848818037897681539432223723311799624643968862385839409146562330968111211816213609555240030446712637377283875013613507036843628559427586324643478613699312941673566820921503228324043510839763389401894622115041660757579819419735552989980447595804562586431101190096548044741152817630211228903581670796516992822359710859411417888513168503086398429341372110437115274656674563236383980522806956854157945661818028988808435395342642621156702253034632515645441443706760788459515460656384907812738684451855432594001309630050121804876981955693501947510417321079644145535230784043363515195478007624155509960948506781007791755025126402685404874619230888513298526435389923711281317972903065076053455599722867640650818662924103315123095454425322863000114501948328266802550206899589119051807684579127841769924578253985553468468230661699700780578864184809122437208499903361315169408459026055075880628483211932995747362670450985482339220001977414084900462388615249796768717960833255422459762550961197802550641760419022159297919909005906923075044960899927567151035915203072401174294561516222765635758424103239593332466243888923960006238958911825500142309365686073769288266324749883955790629785950950820455597816688617096702188293959542834135508054934606815937682665195194054334240549787262566928664292537387176006790141369725850630088331170460081057091894635406245606422720113217371253228388702771206336128683164073750261090580065025610461139311643927284833712051412431539014497618242268031326646239760249799077109804752021441653451348463122289519836657643116307530706830407793035593880061169186140425286547037242191082200807956594988191795442544107094275087345227820251978662662650987115669346988547471403822722647509401428030917909628307451264739571918480471867086638114336143821834881183839273830747572464330386986715231981564171774049204600059587356588282449250563548130499217483836742489932282994256769506734727319349178016755848882782805779601004778937751335091979827299030824968558244352538203698274550305613239697792689958352529417890204604999260843190905307737627276647016631183415129795021193735983335637020249817219860530820469492056058411167815296807650348179202730007690330304683010446388983505856050829403150079110207325734685407747116879481606931512243070550094981481408892396160687968953213757742982126371611888653727731738660971145356168004428788477993171109399232819846734323520170295532799877602230944232390564752000669192545843853417827913447159654059053523885117324632676649627065432404270455918899762431682704946176795866063801412282317424086645749260952984416670134659607465882964720912142191469835323050013983965173370549872697616799530308723009565417804002945607665762784686586655889113848859335218467819444187621446388867704999969059503027559225296879928646809718314270039337969200079783719899343663724925353541698241553546872351300951650205436597675544201028148747243824695552977174472857317591506804924648353147959994229919291395947566931790601094751443080974708733598397914019831361751708763166567604323997807932242829121952549856465451101207815714430212008116939563657244219678172575022054090784094515845062567317251947806007177449155097049622301976228750450672867607714243047970951575260004836339866430415689859691910576492823074008220566951564476859288792816503565410405819774569574999828306720079623387037699872866172837528634148485335137660487603526619015719304079059175293934455957421947075611924359206320954654441048331027184465573089483300104432034805778254997493611797324149026029021888156821364965599538647700305568179985958770345931854644227004202928995931852297761515804036065759911841789614947481927128714246131515696219335997456529090628948991080405745644165654945935274659684658014420575235745105640434746009596472153554391065095975236048765256784260933702150075135199276908609070259838634652805840266563220676837997949045412955782072715236540051077936795066333739273997875541449785343592761521280084013725727684521038845367036266286391097672503503276095338989242087208573471677439705388399980068511246268407780508494217009097333208335336136196516149974662330107860754507417510004877203673645321981666553826189421525268291237198469089316834246925570114244546996427765967910435233459069603747183202184228242242145195247461162133941235373470320541634979002706746835868085004757719171347695960662274693765549546508446074143702110169553697937281475109157627622413625887480019169127014583341136759139468728257357162531099740327943201644216174370056270688756868541024178251914659469223573030011342569673451252256446408894000752390931493091264948987527952801344404976880299555917059159941417321702264148658392752076382759107529854458968180301078532330312714696518101164108050708146749147053392470529521598817534202486050100111382982721557918301413465150870742707097534729919128842559523232500374308695770905804660010656345246710196043645939014764996012658494030194545016017133006912210157881618394989801077518343070663294487018063682940708913701798582531181533520952644552611063853541292787491176804994420384994584271780795354520901081491501657364221147851862416299747058881846443922987479814138206618147665114360448448059455455151645414895525813482244860463698071774709225618273001256646750737098186964081591229252845166839539138393263170617934220256139421564403680637158328664910468873474674470469121834414765778860505095923267918236137994175361419460444777966612358559586674774735317580007544621663681069111526562127530803803935553290495972284712802132651061095363149781298456727052461090172171448587015570215387493454789991609215337954584527477460222680296088533182268802199253348286318746676580751006579348039680362387167852529578864465026233515854644324878240936127345012848015459512977657530925424183252590788228774434208376162701638974879937061867011559611041952809110020461701800545466364049233023578413936083563829633006986916198180842250651118576888869086107137437937487333868973817721843576698540076308564120659243718434426828198190780573744870606185170814901962833490362130243573830228698265178677675776518879042578857127148578156496452621145750981118775586546619385970546241439774727262878877594338986954060629281087906578501823189020152424311988278719403195931971162957383179531559226487629265076509750506761402292452114485359326930713681853747441952693735298665114787994519654091078388404180930680963606737745859702712628589079639356856439399557459322413008132066830514280993484669371128356435675859470565816876784377404729793710496903799908699133869931319001740671279863145262306331428372595554598175832000342746634737235266155516540257855852717554672069911766176201773153389496204387172116109105685142802080126987723831963717393979563537467157778833827371647193320906779130789123140203009039514109979350101653243129516997548889755985572826315303964428078039175609938246376103801745502709557897646204930432957940381944116583770049490912908160798818699243884620637213326913973868333366955426573201890318687381058470903531314849455960906194795665778403829037617114737798898058449907613417484229625860514677294026357669398057241610071370892605197732036876809751005230937844450477711723595819185897324547816567044174334236221440961218093529581237937587433595825809425553105975543354435999750120049658292587210043737166760877629531193529197157565509677551152171026069234924486813410495958161127443039518563835790221296784593890421529238374824205899805229504700661896097999851161724071293536615846559018511735152294903033754204753869744839496687175898510359865550818302433355843026365459523580133929318294531253182604394835815067831732757677639354032195063636367010439747061350489355481414775105739544980542818311496613337408696226968038124776669098054136997806563656265863234440901616771511062368431508354256693650941890878406160741757801546350740874094969378277683474246402176180374334891050902485971271851615597922678745972670924775088294045502568206757780920667105274601536571127022347507167427467902007909772056704906075937961581303367390922602499169383389030892265564694212023859763302935638149466307005474968670955204577364267792310919246022238917482556273464712584974388284714137393992301323123995356669597773936988461658711779239148008973134935676490967011867799963732145052018688589075252277248688234826907151211212901923025304936100798336906793571019780770379532770720581497167700133136894403981344750163792365362665843610553353853681161042690468527876948812325516136068263460619267726950475299801609200296486572882904283490597565472611088253861731644724686644406811020576745815825716063612203646273251426943248818042289374972594751033985740300683544802555994818021460596758729193100605696789193381881974277684579504113216117150808434633760327326748355533284698829526333792204056224757761966412726307503688769217824240008653400611133953250661847172340430489358164595868792800994275410402842864036812154871311655523270534504063243653888821605754083675935814179124445733124891812879906647039438342062913089377843392997318006915334207688154724423414565401104763201115904495892504479310263381125227531422827742284710476421742098009378458100382683641274386942610377442351141991955835570406540303876954733105996031946976379896228388035148248487655499513767613876407039314421448505736529643089366194062979618587059041861305746088269708250785841916354764148054216164642313323228228460787770496227762292894739106838790481371836376875271223528135437530269305645072254485982741098038251613100459131966613092174923913191891817125759686427845636501929187960365458256617488514508627065637807394524120321559824622810105701083670280967839388093722182016366654612938619758515634216846215909470166997457871528368749944840176587846488725055375553723944531757528160216953449538310902995303369592057756005404212120671716519273935248982354049475058908447289206597076135954756568184539376027536530142154607309202043935809971489391649876199972961824919338261699874671233157744711653919812385382077875800305195312751894791256178995391851964063015818502610207571474081075387661699217008791675796862663277403503709859190348567363327174268183328870205344093699288903310471723617033835363134348044945934116275014657418212439588824256766058163468087346029445263358568080772488540219640325667822356085060952140433193565889822180269740334559907823872481606490417505990635680223376513299997902655934370075186150640548922962691110764244303864309772662436867836557763017153592319912835709246975718509928296289369935400237244901232224449173121603193418760467148253238849012057641566905651415186933384939766156727932403755289049412804911526680134061552508407898526940743413598704740875860282360536777517410080934961319993007450159760805718097012879288297177822886623651212749659598045418001464509472562091039584069458787990663334414146194607902989826738588310735301148574606694104055130710711122388387421179970808244993445677583554585294964371718863547680628762470901240920365079004920077491102036178449496489555076828135473754982913299737294092020157482971409136126077383053789289748788448294364128049193115651359868250203184109658242562446450767911266939199958433025035304998467461600251596333705656094058260335597129659095986690574683139089800035611168491740248951988023919041702142421355106047911103165803368475724793662621324352897767789477900331850305890856210255195983351254352502043324221286161505171286534686527565749470692204032480396315516712505345591095056349866617644502017416284368208812379141277886031101239032338486974558018362551931353675384271958587241290620535110507444018007200268638705907546579815524658146034040490404854655198490165937676840367894781443771325909372022851821865509871201939128806541587909559070051808268051638069359405495427050069916306221444393004037974864493008410826551800554796233945357027064413345287940917514553129424424213495131897295230241469732851904329246371302277561080335829672721585996040334830260783191455905047002573877586152288733440873854996509183314014129935520919076305749479714293541203315607255565147312273885044187386397275126333589535528078070311268530419648260470081292111235171736878619143635696546045128617080414406716260814567599027461415349533925470009465111040523171148051236773253682646851491754075702380824800261575483854232074179982431613824631046283525191469278814602885729255484882614491634926987776356168256317320240748208227188294067744425774122762713420655597866107688551792609223117633084735374772365604199891670891935644647646947955852095954759721664662714021597705481486397606784784573758019366848861947094739164749491430590864783632293523597638898694952768517714958883110656935675630618570030546052274336610537153953787769738921318930926349770463220880206148572592021594819591656692935176032122040682679235332645620989668402839319866359713405564647344370457227512629144311730348046588597634521642462947804456239905631736180953777084289972255728302301121557795637587260334275863567185776140875551971163962639703994196079452322327558274033401421574614882491464104538235832246555818561048050840283762138031052501642502573606067377365557464760940521148435243321468228090655558500321650556141094766568944679550845673925928060724466332070398123384005698078536133813127402015131170427334398561531524744822877643261334818918887651715777546444507937090920571926947011472339393467390027505775368060953247076771173705474024254771257968455120325783512343173586019466640074977566730987821579354188632384565446056621142244410465313319558708687737063748480620961639532673171501195363264777115334051246034244912480043540437573489772263842277483108682265214739367785035430657086397988651572026499407976069747712453173891346753251320226306756866149743622864049132368093005013417473190298769403914263342126277477330985001629224820958571848361939615514245659988208507096112335418610560559063043393898058745833273294790628019731200555311267887759168190544159663806870998916588422749069764970450169041792269569093178644570301516292617808215658939069825990321142789454421655567536242369744558204502705530343755747188401906130036744859662540136645484267072809378038594905575756530438610901223676298740917578749498070436143045067117233894678069474146293507929209994347829950067135101522359071447185480666682329777867648241654161825070574574278133198001122897346655682303742690015802804059100819354047386917095941330506125951840073477849100712019247163348574547660726388340466420117607630397789742182060433125805133446685207674154412829339643947168165998289387738429976953955042711721438319672921827104272710811596103655252839222647616118430940524500869735823394068180377337600260756845494334471888894365822316398337918017537261811740759670966111379772901868833854480129862343014522750097376006778206124234024838701593738587223850351018738706514739942528406231433181076067102285658835477635301071676501823906134796033474123761552408098510395077294864064650991863540441124579141482527107025737416924474696480625729797374508307368367124440063787699883149008110941147861939111379162303087751106007199409505012474940524426565934768576792108788680479423787813851847308985949535273409887152957965647232317414361986602176847901139334109622430624959098552963776659335878105482462529824923671288607945506053168917774529661523052672327182803833959105508841642395847433806400471540454021593075216736167326286198770320947833961479105375717415644308846332623374374278395440990887926066010071201093586501145943440611274990687294533398232226706343206831632502153888953889097179407892290615153770075971775393305586601334633273305427202511370261672505574109069986838247142050299248868475283114352147186558239221155630442798135915473419251394494969778385464574674029109909911649944701367581735377207129884949895939056341018938447414189905752217723237213018589568931509773370831911248958505794030867057066519640018241198975999810688895824271241635925429559642558964810689019693872685241596713077604887696664653205686616405100728999245854884056650246541557547979131326813759960183295838546314871197049416700020650134427030901142568973961312690732066396762689899248957491528475284627631723745733090392236509315276826376659249464844370114942737056770709683804199967318430555823779871944681497030077526588511843536345194788546302492171290813837625713278023605342981230610042303351831213933443970016439923747709575119547613546612054528748712192286243342263641759781535416014863640626725080596739109548102593390030682496914246137991916706142977469959122601951611511835363354214490374262801365278787737152081904587366162284026382266665194187605543744308432611166444858814104477857608339346808776524964710976323243002611930581973025149560446595530625459089327035191593741681652725492139906053067516835060935139574067247840991065470182719630974801240172700857991452923629975676097225913494945034726279463425938578347345961684050975055927128853136922912122903302243072648245629657179898253149352823065772686619711238305401560269494021460164711552138012210503287600196335028045785986593647510940588385463016561094067555535830340274789241562728097173124379025483216811986298135543461353761949685041592287789896484961605875078190158398912748733680897733797126610904839535082673623866212144775324932635310729878832349190963073829770346544922461833437611638751306443320210514972703148349807218977842746464493718001461418137739861265573600333409574802306988850267203392893487298813715465222475356728901077718364510014568226972268054876123763030306231915600326520665161638701682635315691231738817573262182079143501680123743544405074019759488204722981182818798511456291818064706162601349045737687297297834722786235860175620115453032462542325608682363941036957319297606191703321812160446504954612567407335328293229911923320725978492196628743890553601992241593756547635141336241128825395912221225565363271189998430584413012761529754974923675546654426743011425059825082824913291322295757615553341906771770758060239441232995914894099839575214971517251791541124390153999602839891721960774996718225575436947540874600181835083626254713206657973277111020436759483135764718242389516092554296314157748729206805340978303102248457036680917739712340926206837861322537142176714988321043600764081817926251963164009707265256569812659191852183985045668607076062921066744415503052666118709980658231611264446745569697291659201786062748681747483329650627589126973191907605575340923602717135494644892598515285295497202616663202256352239942391838772918478251947907212704874878565028489086591348369519095343273490325824626045570883291218158884247673179291930607399002754740086042487543172557212154234043394193428575674867955008734617087131988204097304465605393345933266227594002597136132237876208975484936524265619403049669142091694367422250717176990725415555203745628926964826363384963293909569907378650321379748491264698373015142945371994184477706245027887556295801236161489709842908959631791726143092111696094786607382514574426038822053418460187688867813243390844649894309506942565228805951756906958949430262518204224400642985727105414649969583476560749168811068875216267181005353469765973381535151007923222690237129221871841752852032375045133817096811372249113569943099896302837890528240514610344161872036561678502475024301644281854027867483167459328986994996235883464679851469892929518431708377416167013796194566747433846690383871406385463092205927913341193142644357466425025379903005476758466701777414801586519853217919243023350700651276692145587287934848295937214327808941620324287052544419117398941057986650404815572280139987451705330278183238786288257973983065295653791318679599649867506489525342492109704452942949129980278535185632057986285811051009671201301463987431059623777392021929615781748730975530391849808980307160605612512064457293737988966617841553162279267443049152522884807075305584671031712645836558599337751535671652332662573156566449456087506512084881022540471334405003210046341545727594190828451582109554164760860917311516684725851947435541507273466524739710064811446960371582154179485588000659291422067192284311753670992392748093973934805206106635131349355489642157563838443715107231117000453573853000616696113894719026738328657711679795983797654771197496739683840947269296202110191524471311492657644268435817751054885350458811767716624775084633747087543043037028252759899483542287733890985106303145772588445966399310061626516051537649877445634503649034529238986257788402331416324565741265638625269348539254279823629750960212191144937297542667671122360479686945494880782400213644934965063501228415164686461878485084975492341963113585584896938577342781344724058810924358907650771868173147049587607646015642953663024092120947141247759221741431138298899869519574882402372038623841584425961894601426446879570357277482114972808786475736345066058528456583084652626045673867631344148278527576345148719013132522380066753736095988396818747486777099428110604229624736655644662215982391639966870745259369150114811236176785362073003798588454326784011548120981632120279180089263656330123671366960218083987479118651962228234607929461451295243904958432408963709889938131710174788710418733423566174481515060614545479557045599199546683709658832414675776263986730200485730580931756403114321070109612832391606043665229933081582831113237376723847677601242320291390373774549103682449153125527657922073956654210589954274011091575639377310054566456310783663986302082003740318239330162271624971581924382212550728637937727053067966402479864736262153859457712877967800657352001718902753864441137410482747551581547781904109082326410963022932265544555239519368814466221045281130085706128417506655250560265424884605840463720990544221466447771018186048578082572302130505707063349538275498808006076261102164122629612363668628123515811756667123776084061012578309724388320579077044158501657442192887093233539337803194472617760891874877704351690467459350556818498340367728727575178530375992511387469751973613264581923888366249806896558228372559485713896737224767189646960319226176868098838970587426125464503473992446727734667762592416370442895870747999072152356003907601286141737831316701469944924436844684057485606936567145701691104754307664909062414478870138944463405441509381352831208359812514134457089106579331291660581155262224258056268293081183120922382783091576993180900143386782229605651080833718037300094879208937155735827652011731784988529210508501005334574484078897864597195549756591095392829119957596351203473441122748072622133691677720248658245214772901762360460297640060533622068660187283601964485213662133981361489562958503191792836404706863615753877987983295767838123887747488785139566541937364401794394200505052857537620854448674899626578898647730277058581059036094195818134190729928148328161257351056007597795323179513197279402173574383404672359886692672099207919513716616604412640994160650606623577319668229385966399059132517540281356851529449997905895735129723451724022478531377773466436103118456415806326936100384679113043483703654547391480859861014275421534962494732515976072007500714584006926647343632243554898953644631610237827157746263815129792399662974917122440317331827952731330066860989686386233352977420191929513775253602730389457085562964457429168603043457303698016285494555722717949741344378659584235264235926896062370307825181739212088592630766666903478240840553092473933501163946294261061933994737085557218586564522752038513557199661772558925718245489041406257311575542997321734428105335844344233949837312718592100439290301102188222540082986709668555962590792390740358199162756516716423649427635415479776139584842707439367577274498833359770534101849936270836259138227424223104357758139009784134157231396242516848123520707584922535841523761409270070191281721021835326127051965293175861048322917006493271371045381040755097737837712148411191862976716168928318923408492116527931920157395895554230471517959724759491928840038661771453311456530676901653871056909663411551848517184828748625989439366430058588793917415656910425199723342116317838939375986336505382480555531360828554708747034065939349063935977473675177276867169581382150996151968369849352017883952460162107554762490565241002792041677120124899587352949717528868046315039852247055776085737496040765498649035450301191519398417489484541237934274636190972231287688265720139304558409770026592538248164426471633194566059272956017813980022966537459401871142713915382249482936078432393141082114537152636030371220370319019167460883119568718094889402339753219381447991305534802847043136075064968692601138853328772944556731442070808653851086034686450037077832930410106120312077979060034146555705788700648892148325918598978492519247921658430979776630782635928669007394680902056751916473771068926763281517067668905489431983938024478777459208017499361542368867560337592942201726178721099710660236338268646127390666636499857877618725904108487703173128307479613244442395219084805429565171985414297525570585680611733948800255116638750751774348896880598570584458021857556983466585907679813259698482445944320312068682602942559528961430045054175002564709114416982380249470689701561708485037224075219680558339721678282028430724310097433016794445052407525071995975950561941306338638469550872806684612960992168377243966806758387241882756981811212661881945891213351616362087067342811278759537541140231811656610171167213467199420898334292591953488763482912657462960560972682616426090471136886294007658162108535851785595357786421655545020197506438277114960229464146288130690187693467755315676875473638113535197331365715554753426450929106000212816045606170445880967395618419658431366257168854595531813895208194486050692612575994256601405234601016070841351104041252137389299128105385557729435735524498033104634611619124190171219465095333771624357669420232217062508487953320530198200171344359080995391392445006819554998178651426036854202298840269486652113096696435353186350906039450312571975969326215217036847825865450606746779123929932016733672992754861747946998880610350364545882560747711719164843808879530964906266717303558408379403088012128699756571155954080507593383297836466243200177548994816056624355592310363271177084898240394572872841561570759645799299225229963568684073499722247646412012252681976940108023031706445174286985832584267769996901197386027056135878074131352502117094040563068780101996372868047186367060125560192033288887778349172832794683974877539779673430545819111014005736085212061773270599344300975008550373169447360165595603708437918293683220535595118981021626441124133938574518858295459182764346227905082326611746716261484616914383392984189120054108842047982115129637914190604112497732041858926858751429050201865024016424540352436118364401922947282019707661693002295085449377436315241037495686989269160257262804231687342997553123966454600495264433231226866975340748148142611731003899381212091015047503246721913332156468274210191895510201202826554116294850364597152345212732119114585610121255062222282938982562580111318451789133543952476776464149202695373190017549139178978696112002008768316723479151227735971535804263229295215963065820902345148597888801102720474243675942057935312144367231186864624402808726906422302891483010320157313929084011785879520644530121889051018401294222883926468046116612223404994415423213717666538057884561206594542581574695688393582245095458867629885588985389457866178669107065812653084112022060570523139925081315462299894567055871500282988875137063987892672057635342263824108041185326579828809254312660203586782756017568643277693709497043974444535867694207794552017413087346401265343837631769610764614141867823067139396359287394700757768617884907069265130564237001750672515946617763623301635951505190032362021037990864941859214827290531585528475372504332131980695560851524925152775896564794262577396102452589132759226281541714703500728143707100557434319705082409542649080927972937303831745683295580321200426335894411766828593342059029444803351106685191363816900681654124943423283637994104832932797057483083390779986933132272804144390821257301269121352838369306037898377895578783818721367441527480214224509163977532209360959047793583634960243282400733380408774769660401081135110561262489354975539689135695767614846682611004167541408426295260095940773573048130434642075038958612884084492930829682527002734790478643177543657542317004713834819640825126968974244781647315661103305157618174294030748179119946063638160150539043049445167926431871041244230769425210508409281971312021374071771553536821924613627964517550032741582362770254107691632578492353686226144475924119920343241354272189562793655876270453676044668628121797439449809078682531393891768738110978396495500456281300357578134515293727755369923021113422145881418381138393985802407832010128761519358328034497274591854593468568201291867358112281263508817487070011142499637841277549981779362537613522128557063789299436466640563215705539965881985004295074233073423927551638377665821623525750636430056734468600439566514845151882637676248521779454644368684859911692765446588079708406141326112356880055808194711123378063597100143253707756127637987041067986543140374102955741404296987347173817422297923890468799335454393931031010218765797073282082698217026695898135020268407534101003108473428624270502357529118744360844186879453350268122527783245797367037215609978956245296525512030535739094458840965557119984550565983438609863491608760493000892668741674324652071016330125294167641584746008593040073379859708430080989320300931884499868659501151475766283804936294648385763092380659864799342072380238830460507416820688042474079298570850666833170422055305515972363615322906518910217295804332796916734833313721582988662120410128749452615954854761608408559172686504045934274431534287047638373014263273736693069445143201415637128406586002512625864068109292720977091895607742054534506413281413360944407144200587697124245153483828576230096702290578584237071272270786542288284461887242358820191412282354490615614877672247626629300110786607850649342957446221864762640184430313418824030440613159098618951044436843016277163787835750480569444328507368700829269002886243553492840874929782336813288527096912801465485877298701176740209086232661577103828656121068864304127601507179695727185012678318752626823631594126671061379021756641551416970621278290064720410142171382888220319634370199149802220929886006524256217654867941462095689790406170455101777701734728382867871628929078788418317395502378909792008346880481146773119026767772319830996902576201604639871278365882316512915781297209491495979531673764735878376460973730891160290165516171785300771749902751018361362354227618275586782371771691404303013463525555858386749815359861103479330625836799042606804121145297061918660436028473522572752774937902859984003425454424960410393771746682850574288090064052594817243521839718990907576347485789858718472172675933803506110620205997819855977477004784823264595555878338278321055024826745612187923733675091216671408176969588021508987735226880117923806048552373802502093926454298434634309202083892012587135458128561576325884832348043882426654428054191129774018505481490901012654965343317762648608141700644006555340853122536551818141516348846111980399250369165414617306326867143510854544353909358170668952387524581510858563038323895323237764501723576191618869533977458456082483696831511291636302986521833086243267128022777817783923836596668036694268423754422358133083123625950690839622490037726965796316638401485931454315743391912110485867171996115678107245978886222460911889507673911773465269546219608698562114913011222218438325762885561684492636262412937930557119889949854052040833305507015520269781186614138508067159903482997801328285314316558501967598449259727768704608172864958010312275075321880778834499937458946603138542141943324330635775540727520990506732800420132006848573897634454693984099497406597875511903353216992247316942486098644602483251280189134412643768725082354146441545365225528445784780211135249635721342708952466632664059440718754240791590601507493013410870119637792806644741847242147851566786433480253834304260569283389819506591795856338547334310617811855429790134616878352171036917639545336491085273998949849874928909240732759469265947168634302230262932622659673323630877893085711124311892599033049679500545376802265057759234750468811442580030794041123786921354910317427296569355720046298992313024922906020941041286301428988662180664727214020384261756201295285697616605593333500784739025367958326026515041064979277290766938913604373065491241921242381582780331180518612698819024663859672166893100484387972344778270440005744990690023401637951249736967228614728789892070252203574956622205385917279848846194849951313333377253692047500466326417707578060776723279697519194333335260827313267650932311082925007474802091618814297614693603768459673313635741872976225573604357230319606590858990129580435037866623533622356873620733964941345053142304667542976419946916651818435724378429558226268009856783973792394870146042105276937077227888638548831362293107957426767816510534504120269704910990008983016011763243991437897007759060295501144350774932931435330634175346190725873233520382171955510331703464938883964808035229808096953518127432363739170234498502035767303001835867526516238035135994361207075419140800531030598782562558235601644234734814751863766446239317073655043572380032795573700003195478173451299786665434242788220115747666452933734718728199296330999807494518273558254726243222305987103175448900227152840932074726678252506595500037131744895717747552293707080752948115436479782112795580464264771439791926462343300739407169436455922930053484164514114745025908092589886436715051526345670316010040931144148255431633745993536942165059157284198416461222188888840395367336184890059046719712126796810507474609525889380922753369896174549565329456406305186052442010727032933864628715467037900770399995696075027047483492211744272167595868719126920512512811178099294093175932429860318748263908397326923281340345393233432651682531268415341703053348297479208127915370023972040940273452155938856866641287384284783575283181539657164142853057571771310889036560944100453326017840058571634747662005760813342239728618167860812501694980463784372029213896722135910820138428348801645655573306298494683911705283134106946345268121032258451967427358507330343279838058146469244808677622060540600101550805306414389961178061456042080591567590867029486938701438742410015174853907920655997298658517440268639116339598450409144947204447322874352787290577979656766407371567002383413375621512239370342556258544505535106740747887637036372081919184809515588497483807333657637171880687213656082315732702845994095098729279502539184279382050492599789151121546880416971106495889480019610151142582399852285549101361656431430817158952861105199085603494898648686384138974335698161503084333295951093489122801181528024480056936282125833799636802214967191053290389003355096005792283879272813280138999511185739080804769834197808703279414290855939452222287128208671320672926790924905076856653231705721127824519291958142554242917730326567615579254365441612014533648058736272865874346512297247957266852306183845005567406489198580388749634934064290669161814126210026542444948320824913117583855544032774415902801834641522299520772123934746620083568726083262207401032945621969397917663608373655071779993100460557171397184701237334571677419796518060668925733514220232546484133777475335414095205211220039725458551981787810420438642456776472403440033939351960141608265109014240938363318211672735081901666490324722804892103326096768137788878735052583973945000585195534281334689792210127315079520047100814399742541645957590258298593261251840875991999125484104131460129777131483741091725615019511128362858438045176714187138084365059355353935983145297839555573695319643308785688912774955633175204706577401769854709857474985965507558693149548853274115543169382737982259357659106379628651515975204260459825258511635853322031085528385344240276471485570861488516680323478219569841802653075250199765589129391869011626054843230217594619651795394483911965732012732212614228212328442128168305262123090069864071262636368345551117315409921149176137477059091418210711540164760099217157572750673691078634269233225895152160287378777256107652933364254465118992721579984113200297251378700131981890522336305545401344460687341213524826317966847683964536712396126736296228833136330021273805229661023337898707543153360795806923670512109107168079670484801202445764984641025287313123652938766717561688111476466139378666991294603767194689965813756878048881170134202241479728617371524109632440241060937877012034538606806156508626676817071913255461673715788297646800249226499289366954466239010116165672709993003895734943558566302459751709455217453725609911792811805934773074791688591568205545446852936013803450596364467551100875628003882917672403495228173592411633937083482406382330584752137356346488871232283615577005822819485244093724359564497667487535873537572221667189974715175397136769641606684764464117524112697063217750859965039634164149499645839593813081650786030728125343067135789661607238841635328160292638530858955340921058808812036816478690008512179673332354039069886630055073331405416891655794748935797176253043328370553714895187686586268033028263508785145848187034028578101662290289371657248528931145063751131538447285622653028651890970817917998405768944697264580333453822607907690321386652270398065533221279320836167043375037563834958829894582093003858617785105034201845610803205137595491803469447342347751930411811426650441869227022730343599337998480304274430059718771541156432860898177928947009157552913220754572412535717508332743247378282955217109626057543188653583940870186190688562679721694668523443690779022211451211917036766655703012803998389295337800864725985361570858355985022008385760682310034506276259729268919618629071300711205808576744486569780035710373560590317985319802833626906284660895450317588207348302758138825560780702393817017469248581051485607341418444779193959539529882509109320367382503890180980221269591551029058270635701898803880068551201052970742380547860371284509460790848316000694558198928855399586705366939142574775045901352603222716672740920498702831607853585466026792482140573088211230465485862167256395934675962988599867355339785213963610145947953190595882599316635171632920612485500918268615148650201665121296597981909321905637276244960351255322560547040297722283246341485624055400791346069496203683295973938015485587874405706809364585834634420363942683234028719461352885997821485592250107201736856200282228574221712752170398403516086423169671142427714963750814353361473355095361002320883514000742774721991065213477146946307974197645476315686269803711673298705686567650948488925145605562774962479527529254638556223122824867175873103987151616473139034900749373727352168443611997849001177218858194399067940210114986552112131944958659205542607271984821183106183058863550242445817793222335366827479735511496291842411944279898906582914092672222124306750738315873782495902145356416430200209951671685566647584711396017904547398321775278093335855472315269837517551914190595355892908087453160629403015251110990124822597341787172751453020062464520114439984506764377776320908084963035453366544598187865625206030869166361627667600144656738574995402886754926751918979125656298872003772810241200171906047215232873252657780023814575753007910464726990758724804705970786968045260580644287645793913899472927269290867547083669289216509252707565090756837365183725898455146534456826615976542216403403235891245751943258497487812084620027722549596018381387389381682799051550112157991505168307863140430107408987726796694249948662283369873177323366631379799100392454238292269488427663805376328369717123423556961745994070887335124144563886217376394955121345647763226026503147956776000557881231972616269029630135678073609811581150124153008352421482213681097360438966920994169654302634314415100166233936413655074057138142218288749348213540288105644288328518702862931436074637768148721837950833478401949453953772922603742846083227608887366118397018879846056672225011122412686449878518521133252306598866496480807841618656766136801185229300301126435009104328092285508781532257642842186181138380888727710870225177378471148612201244634904641218952763850981871945438847096506662922183342377871938499670426413311402518556463902129979050684491876071930831367821091791626826840182059699326128388558365339627305664191590861907292522931509504561149099069274058243589236774010551067928870082747553358259264206395269747403673726553166849889343569650879139191662346776253550713860016153079438456914599171121493339240673858859315178262525058994719390650727307492356849864067688879979258427941725080631491865833606277200480853697841177889501788615770617653646690276475590226757567325499193406018642280374804670410116363208853896763439607447759513641444824499405930658841984569071121072493186828343418408810204034755101381411544010647541831825162935136681455194788349230679556664870968303916495705380026392566557927779874075739797620590491447661215040001730642773089168998334837909043153929520438716515565333913300934920631885401614862573997672132568501942479474300752691879695509722989382591321670192374921586311769444874754204997338402636359349848762800346722082724731154086334421370087550191769428190973499963445965024802214149738484207524455862833071231520897177115883325464922265153635340633611661101411489758304298452574451847354625090676815459164548957372384218990889892434972568207947091232963549060796458809026000340142069353715505549021610565542757354612564956992562628597161970638580422856786929973970646960375127954678455578736707098635623385680851326873276153080784565733658114042682289995401023774478455079902583735656776768042062547165332992771808507924384543125969046511066466779584821470746704702929642267712131748707227363416869821032438690971526683372107837686190188169699095752266623289579655152959331402475829547581980901279370846844176459798568809133392507011825810376201729481943049079025491072091589942536640052960466960574578562451775294417413011752176390181158085064666823587716644045601133820600563825864668840465052828134804599699297116467008906715754611478809532079681213687320245806031072985719341494994192612656991234533782341803729029162751123055523246812678648358038899571377406470865094997000427500614634678251705538920106770993906718418515982707735877461098628129886962568495683273087257107246052160091537488025066271214494481948853443577478828425146923436473717275716445142997055618683907902534058333029629582423200581976589801341621704394050191465872916068424593523607061279541821988703547561847748510768083190747781098802502195821533527296147016438929176138139177044536787909437189256111737483855238790148115088806247643778158593430940755266776615839307540391941079100264199313898188697006906330045103648977013869603109503844403425582327198548517278826771433320425638632458950923083638338493351885386584656384740984469944332858477572771751469847842304947581295875219558875422406818776974219928423628498731164493452240762885374577540056921765605202259339154686785505122602110341548323606223268238553242827101257138416562377629943493447402580361904840111533782778277903657138465400956097054358774615103355660237944611659756125823952138631399034579113869867895857821580455694494033012858794231347084696258990647123993877368391156055742506480703661629083431131711250805938743303849536560373663497669767428590131184544777822943220695840288248333872593623893775732800908074289513753491402860571351467374311460165204288530618362064011699709703440740186745395907085122852883450262796081651817067389635465320244619875968240175872959531486378736776777850375079143761721872230971933756118968322666461104526894926752668286713618329919156671080768242934508351508573454474269549896424054032924779290515089228962435358608128533456734576631425711702170308950332019462220774315664127302912415664431413652814304012493447724811099462748679713666377715844228963354735900403861229427290298565198437782818510804250183991190391989499168996837694934094484351409436195767318287660256729679585347090658337889761666925659286064193891391382947317341808591349202064078266097816183252501648989287973209501616734847527928312227578435364239955772061692259341242633558066366342780598440688770602996484093936488831974581389760540433015604724435687210229734042832298161612677897744890736832643904751774026857577197045263731365709609964012077842433462988464303297168235732293127522159906526132321166743900275766859263294310454054639622298715118294550005552421386158413483617758959459918841049442703828298671865464939677153632668130166279505148206631719963043609578485224977298590093834493143973775931253620913608521538656349126358159637180495984118795049164188121837312256701971244652926978270400460678888408445123826540107287812615823040460823287846734647961016202103713746610727443488738921282274115599106395727561901132342230767864819894694861829781331140751434117005022688085810215821294254183456046441544111120596009692692349682798536657927452560534338608242877892310541781712584429930219248457200757902526749942728037563822828390811453845609906893213015585914388412930622519268533772959349247550435698592912174389912211127668664500688996611340214568389936805289012257907050769215827453478163535527291083005148612225777159339148614298486970753783424217636382871785816515717942646443222483729067158042653140694886869852430752436585220911193370875742317048436512276817740849274568083352782388504025015454421945194800282737468619836978574987966490908769710646057922563983173584487991212424574859081140761571974714408198343755605641588923027741227451474461492702801211636957556157148567728323052259078271248138102536835522726063802307188206223780805706345322219657959304502247459880738068918631392996672512610856155104878736151619339575377481501477996829308509484549881155446989529389199388836039693658062420980310219229734475084158320684390592857539850986993581102852584717025609529722381745124916825667618163535813571644591423365014424119264699235145756564006935586305497697916218579247644250297113386942273384133688440878530171298582883805018300885642164682505315182531115530882479519378057270489892525460615556078240778956537656560201868747047173795555347211963658695014846554423369572606649103643048459711350891537899745367081485143814971305364741004867414523850599672953598279959787441444426779153722370406629572955170250510541510378234255571341906325671504356643578391336138363544293829410936560857796518420560748186164556861747109189233131051491693650701832987149891280935041883610062729140898935908942877514949601659549080165614458441488647315616690813159242207560249998734833741741420104025426765101615729668216340849428237868492590367446027441733192933917332735001127310347847188804566669769345392449986671272044839572716098528413290515749803417707023501715150778398266176364702825268978575756018460389286274855033538233922563465241047254342333908729281100086082459382262369061136637760806690532895187715462451738433127613684692105913109953235104238603986168556368642843674413800112521748816317787252989850794460875640783749754236168711513739554720576106017951760269867932676112951514238394789785987888669220969207002219414156330082815717130648126510062519743170228862127188056766604896062305531047963399037880711265163349668072631311364606385046880872752671299932308391397583155940855349039099836368673178588749320107946883257490685132888560810682015122574678828584302145339613879028396248336329638604628005428815574558599227807864186602915103138267404379497444753089195299663143087230548291507280141427878251337238215479665370143176968485677352597258223996668145642148978525858095828902310490598021301014344761517158636191401782990616163358377563968843663735179922719758461049993793180188795553126410369085475954296592488038022087670176183917299104291844295738741028858382324328700541662156059388482711879637710975210527484422054322864357204006326235399263598315067101295718469910130295444192035498047205501133476913938985670269085151063284468481180210888942795113395260067570735144403586962578193276967548586448392680503944973723949117277118064553777032145371703153843375656162749097916880445983846345512853537967916527139977805707916359819693025551646462053928731073904538233911050740036832224006944065609796397855260944581959822193932088793173236960877727850814913960459592604586411012785887586408081103586814723291199467790557127765239845022192562133216091905040669149091201099512050982913169869823209973805562425405873655695910874907664634123222989737090239662218711757845408930305346803297813905461423731927805325996460919439821221466938550551518383210196676851949656800600410651324767646564667822577205011513447406768932195810933070805706161082162315724016625241067547270220907579729854503233043635783185912300426917611216733250906938135408161519570170535540561169562312226016216024203469583423526880616626790349267371459580480218583845757301229640372337968274403661407239524063235778163318532196751101698963525401625786474761507558645854210608595848627654019823063331786015223040467278303610455043179505902571981285828351939826667205897965388156734028365056210596580338740354156964309869742939773219207180880504934344645361074039264070432296126188701079433427938739269836750835244665974270065823045605837931266615285171324844412164507153007970046790323783087824348142920279950547880855894097989896736048259683448171235217904003385564418897131552446629027370605868933220080089727321227366948732572329368574923288915356712092886219945913780774309826903945046760683877357103573389921107187614311024495933983848555721677015908637648661248371621818241667755420803367342209801320126753129757317944993823801790369529127514317910980215934831142519551297086482309777327130044809260330814640323633247702925380475094048169005675898393627131529221755025824118821171545861842679834419144352579201516347915210183936821661732630362263956277428507286222729781941062204955668301845975717448278189202358065527983021693987544821856371230091114878610845819066644713441937669908456722757864247841576582322401096236476840823896937833512279344502743924271778606517649999743948694528604063995725473380882597164881813861374971477132342208126724485351143030318325446479897593165668396221376361908390117073610486163197139835702465945427494088850568536298603076318176042130716364363868205843889150225621663400184268205169280990586465083317824265361003803737908160881626164213095724462352487550727855936381018688740366268972394002345669836420132625441628671474458074778250125903715617030485289067774911937533542885338222541983245666136548896361002908296453651913727398399210613029685057813206059129548304388591685134898465588151059902533744051830033859301124426746378306571587922825994652779519263687855045353671926029738078668735031766816959624888916510028442628443841738193733027300562948382753671583830581592387217003753432945265818058397008548287845652528538963834888713994619660151233741904855653711394026842872556730748246274185926727073941700289107644489855166493672417038155559898581421060456773976756724022353344787590183256479902891000536513349517621626536186819525011786057979983572000048337572546421221733118746066720000128687456985485604249449249668847286582701521848929348536270877869584248345154327460114960400278345559779927202864827528173097543828621127205325823809514573658281489366429312954731410476198454065009270598563998545501880843343052580997823515969694015038256740933953602447149568035156388989809625432902864001728446504752706292308015944575032689830308227742168883476388662325125713830529212390779196498458714985417510383807713513172446872249736107529034653258560206440508770833019772919013754902982497583521489115071373215202979072864326558019498965352804816278139654946047718151978141053585866991198041160798694600467528600487468739011765716643747796876734563704216871208453692297488928812929518150251923726282592783486845996727264388672641156727708290013796026322354543204455675179828122971701518276831785028471034128356702479358218836732522034843301797444626646872531012509174341579269344435927828994877086388155412884233795948421821699801362296749679843891275742483505020494607808492529933961912553508702065134952711079259713056512227138691237157456568715405995530764036255937457239271622809959490728481352962936678812843389720314404195358776421934651885389742219164095040110746570260576309082254540750598500908207516026680165102830372069339417772328033386128481363962587849926386170260433484271118221681080797183185758616096075859918903796577638823500713037665982689463562615387233063810138840189956370775536505793468034517752509923841573197126576447175636053136032515487514691584580799826960001036175147596833950003868995385959491061539852694583119789104513904691189591504339755421419752170908247941376013663189751734861943176982310242840376810036504664101058860909627868804296942274336911506106917153846780228023708472992628137989910827821984182071641114247498377513970519128353569610157101345306512074993247147872462526560681318845383586351741230723913202026750522703168201082522383207243330492595409530538028674777958717318821813183354239856173401232849666753632680276121357425081408097694246350722829320142722308588826612441643938663792155196713888465645937435472548133826357970396722371524684037156401958365260645972519620199236684895263226344550105836803577762058918865979287221230800770238639151256992394761080214650708943828998588083057813890967811384127601550197145633572645342050345663952070932619653332993569006936217193688219778561572820798830668527705183238519114074040220911172752537829238153539617867633364440084848739617082850770096527222437607955193523323217932943796316799917552230657116912867114588268451265500158429853342771985720675173756346869614177343582423459352030737915150882759889169998261066481544028538824344187247550596677731433246759454359219691139929740057923808248829661605447993531193943250906856115950714879469319505867683652325166673056790133539167493478865262847789861950050703840303080876938863150366294491110018327131573790007935054100386481621758321920835576913941303502302245820362784185819127101251329157837371558786925327751468239660323616741111947512886405335011177017244307999756786630386975529199098241908093184098571235547987237268263415096095761224013575980841130788938409240506063636008898464097357315560543032501238984395474253560822824367661548779563272095584940076050015038541134236308579738761983197514464095897705817890994563103946618296287113893091948704317305917935348354121244932614023018331957505079737517965459911263032530721039849208348273975460027656448941377177978739839825835604225193388027737158791595272001842431159352055740251696194703145981783826778925041853199189393263171457433793608824033394486040442677772715264292182476576894516164053791711315484167095677322619414236850014370662192393850091881655686805657085830213061731579112180051928095117275276146318032889743436630027915329758034361911774916503270791746893498621868369958680585167783227499324653925259154525454168346817224205620844580817132978646864138619907818418477584018425774270243200123690769979724705525173621392108813169583614999298383741777901615086332850168629378747331927089590016719973025347221867352340248283538798143949310533849833414347655464000160180603676702973097402245233280671360634629431173398345332605085208165500506329186289960409794591673778748068519684238580087207723340428273378451697547386836006308763690930501753676217329452926065966778839668029828643987685357742689363845620063538161744132750021997392346377357795477487847107081993119080323751097240741785975619612536751224885311349790730468367871581809492580691838194757270516117983244500776238438092456789153577328713956509556081427042975957354062105888025795386882784704993734991633936711290874104078048622046057985180113855199135013207307525694965360087684982752665648719243212983147474523166670091067165824040453544627193125687767434358925951597831174989781179909040924616281752011917594310587691422033852585847368735241175883225012758083156059527014361367636473275327821843533799553574630259043807842629601703366387419574860238505510161594451037603780647585227690519171328226412101161344298829258992686672561743369260189352425910464862013276747642099299525345520040057142611172738897316447768665078563156534574330492116065911142148148950414083984450052943531986303230245308668065261217833350924450957430774382421848514626247214977873638035159680662451012251975170612295715382679028425768446812433501286109062461375356591318328739774058183535064626108233234522194552650341376441872725611865580229687787817186232896220008993704054690813627636666416727780483971565431792547922613499224543642657798330555361340106611044397372161019335190606903531378340401941303111301575196415598021634938287040793189609097569777955275276725312316548084488752223954816298853738100751338859225619780782665260087573152926366474280623513843343350092799714368220624256244937162357652434234535321954137970340040940593475085471181830651156547655164587090071988461138448314149321514369268967166729842947059754335525280182702311068082676628632533938682772432754101719321050419666850890835515213482109511293531840876356328827598360266180343030337879691991769203314775891579140898585241384426778070858333990806323673498249284811191140677066302502607637510114689257909559509862441852979719842236578997021266854805514234960391350796249525465324823886406002345612623208993623470937446540786820018599834470229347027056403734979220859371859763998433516328655669431245991081004774442756862744647541214197878668570784300354922046268104425516003534611557567160925222715778871134792082977465888686889092841665395059801880439247222461198922825019494748936581754459167389474548303149281082724647355294213273219356444587840076095334273489628913889793355852442587066945634435531658584239867452162776814327239675011438896210398884803430178525309308921357704696265058685020303852912291345606912474409593004570434671273123522362239775631670783265810336782316315804490884597742017019361954303349625393756925156655855454558422525496897492535630053367519386301509058667433188923593390957041373252873255683623727435062390019291410035428410097757809254592199970529014761207807594938781690531861594392204771072910786922478404666449549354084449370409608083760949013991493579002202594362134826386847264558594048993655254113202627591382762577721903896808383549904810045282181238531553838475628857008725883565979869422633559140214905079835772538043798561634178457396030745466951878288981226097864004705105871348877306376355070588735954748620100413143058593703117962114768123890695417097062505192022940593732775504351223417393186750342271605855839337640341599120445827200422576532319784576220931760748542905868446793300541224140866493781072852571566155496308613272912689323509738293315673076357359381183405438519563590358831128677281062537334695573975302908897687154692790986638685467487201149034447290059917762454203786913967355691146038831684514490304768220098091407742742316985569476244784135997452024806919291733753596960406496048746377531727328522793772132729296976865266114382972464339464364390741067949771211971730965353801787255415278307034285626020335618953618046909337340119406254983591735499819427012497236089279291774618044227396678723502693798570424120121016951392012481587263657240805963017795837754258434050388266410844973061750295296418941736675648607843418608527861859873275962554382557318430478213575251059130709939800055122717041797490745233837194710397609759059052791879546243751566333039210573628581863779986307263446158378377809535553273994203411249210908987245406488708477679759755494376007223220636658813657744441400202716374594115191963768547021355147471577182076942212769236304425536784269721479164639766773482127519289644584995305684981924459917916275549833225384007414782804414911140053126466798951559437872124791171060834122555263544048964055624240393026052384658004566669595955372106366258231591812528303905610781342707369990828495934041068564843488131967335689482487366550425982057606387542619289556952808206324468193277207129580998405107377097428602437675412199151408031664806128010921180873778404378970071893563338581740564571078702931364182122968330333117557395263365457124846333073844989220135670125232031741813027734111698596554062325347056234070503320080030557548290887251212343561111727900350597951046922327331709233742905355248813820488574841291459073041524704799647303534291259013961540047324421289913883558895160827156104467801829507777886122664677466912347623543907890214598322576900580076991253187776557575892627815747602882518936901212645262471602587497620893356681656628430199845833770212617922884775641134825598309110037696871096230754329454361639649327795850308316003735368203296878584564134578005860364305041425655570927178019309656816029790195447598251487861152868315169607588390803999324615198364426142789517157903994986944502657446242882914614885226401987416954688288494584478543633857662247801102888975625067901988014320940102432560206104330847534076412077777580597332466011952967210498466661014372928329054586559843539157911922525966122570092381714018534335761248059590929433832498544990722582515229634857724715920321694940837975151454583401126113844500960027714803287978692203963381503075604829931797664855075628687926050996096279591436101375017092176733703329616426421452261756466251888801944980380379828358216299847791303231140012811865288600495841476284309215871861317877889104011950856014722546765569368077282512303634796804460309404253215841147063365552999376135448780689497049211426592232513994861576139472948792869169589933257232233433045815749691542424769286935332146711326117749351706576790802152157948314038684411871509124607789027439815195421135008982046717752191946026375848033269028103981476052594116854854683026617736359169559833120027931198921324003362647074070962062690915045343843167754612759898732939306573961798701210740549666709736363370643584766835584435073828437273049058270502033874526510149307294468104675508925914314627901703657862961117415966465522397866343104656572054535644008657143441770456500473265665820837508245156901023094476081050339447506400736329520736126520499721148211622615946713539510363153542790736822082470805453525598534986595770934926574062485742407848607386382418441968126273430657004538957714274452263530840306038555965154740886593985038206597231418411494153547609835525980516512028568507122861251994248280861264921127832404635149720506149191326068771842237070711933669969572086136871444683979358457640597609259124353600855864730561325607828586523142772216470574315344133786295024984857063402517423468610797429921833432986342482765126581272233672150399698696798821806264543316450425605805499996520721749569155063263641605053862176783483478993464965141946495579204376981824326721799587106123894576691926282463691648170713937326114389659029705938858888333566806186957397175662369570161012178939561930949538189285337537031999391412658362908410641777210641457275382933124305388182662786094168191784386726339701160846740680780993111858565150416882345176605538765755133449960445273692388286150557309085867929270660063382591092871357208249355048245164506400939345640194147012300729087426640603486306274602638622668282294026600514263949958638309796238870228199736120341697620315817929390351953459612850360913143024143650965414487683469681998983719059326445399677895522705956094679760316454809718431870601819987816546507043594685596701306579271217334737371459635033157848524036713919648163168780728226707764571848032827114294311040334310614219456954115723492444141083526981964237027036423770515940867316616015348381566739923782815141788448834217199811587341787483330808816093933847025280976811685707633599583277507115672709998064669839081381051569762119322280891411860138574693911045939730545813068649311521824113158584710039477851027083775392188553481804299046902821376031210424933634256356726689030553056791094439342164554272129817728500874529012999863670179500268470060109388304185140007494048687785695378357969083400338901955827373117130147917240968143248364161437560980928901379407324908201400646031637768996240132344580098395502336323550799201772986737461528497172482873584164521412499475275112436074913387314580026384486454426199793884223908659857999980274988072668642151987612241229541588526809739636717326899287574159548264154320961950615757987252512686957968847196755073357590080772876226032310223362375639014234082019190519949130347536978102695661841363606172619433458397389404867324087534983645569111424803372256407940242990317598278609075875190654050395928813027890009029913832879515024343242499157249182356772885822174061756495300059420189904720119199254247557735755839263139364913049370459271954373339370085294105662904374953694700694839762507268047936736282963413365917272114890284583014182986574578370013171167555685950052889988087918933640015661833692289647513242232879536510784812396014341897575766516548718396004779781493320775291766586271290180676558603832763425800465390939436958965557892548225646711179401599400437264956615519142883971213980120957991397769224261631225756825723597461503337694350165551908816638144768988449969817613661243262614840906456182382658976277887461767377085420172351213900751043571836075319992245820219226131960240846225304666811320245415128314455219129194523523122117275015871805945849855403554759737918093042059259473087529723648794381114141272374730112901489324629459157225421046873971313597432373373033308246278832052022369307450235921186183466153487585885001375617017893802284671164800503054496559333041617023155585084207330654434775326202650168591332252594717804949352184676521771899368514950458089093305679330682703812946457556638322568966132754196432623289211579344307323964934819732143465536607995131124126333762018487825273887507070776111943206520110679988168652888192823448938693679792395067690386769252947138083923853061846382809657126755113308510690305716488400754391998589291958322672277768422184948941759087050503125563250237833580402787261827126778101360316469136959756892504276122852579743520511667714721570094959345523525244646010719562540000229294117497403005153859992366601253039612139176313933705818837156936964033049434884684923644747307731403902700937247003207234085504474626071616024416432191022917913949691634269327502441439928800216199093311788946457987636587307122964715735987753664906140103762759272047441400413919681463980208483972656788802562062274327936246524989256140964233918856129203567302125827090253918560422924233029161095017285086170368301267494925297153162356106289955312277790901866310561504899073654406190168130836332377235269209999359753748290414246867972116185745812436066281663009516078476628062866449788125424812929418748955047690688401749943715026694697822316051939318919811544559830960438086179303779479285453617862595721496572855925743251064494753975186314007753264014973031664135208297532893920280476783610041049961119681977540690765108631326270734824525816003239713367013686752992949030305379923046699814947456081515309909490127779787502619853930308230795612732619796331487034492694512571718652856832461951399326985618066864810508142895081648549596693948884309730542974508749159167698588819592840350693421320291351024279113869036853974638318808831963249740675071704726261809045493789993183748994039369823889256095821307468713555005205209438269772874636496763622851434542689742441988495253409800715586454202149049582669146418783362415535407222150239855020900432525355111832838022843627589324531171215053466835339713490126370302527773123298278191957724618123396966965315920634388400393696985366836282641405409501491417992029935332109625208569365030165176657456361799653085945114974453432696568923956604950012129577413418404338205619892473402134182498484615245649550630269104051651110065708164878547435338974585671450663180049853171211880764031544070493392584288883056406375092137554833174089712518832366081816337779614126484973302574632453314859130959195570375757859949000408929002930165973111194119934754879882322562742312709787334316263604649872172497142008285880541345242983016539304253332449541909882619071555876998943922047079010031682185252289334632382474747284001115615206379980485613238342080885350669804928566009228263780431451085023826113968008360631814932237734249661255976871697335496162215959984987064062943192110875235943331574467903467526855555168981037660480804656575620259975567109119459633635530074871978624218125453614157343134134496982165016087545923179808480374382976174723627707501120169294296740495603966823263691302593755840780038420149112328582265567811425669512797182088795740429356741779925846031130954264585854963773233883607075136333064551660683962871131716129040343402313047824939741731689296450793615834632459761928036402918414195321871714739185847238940507794065508208475653285898707107580275432132553154444271733792543160734024205160245323066397086126508469460268876132908381190284883215852977868793834354200397942651587378139948869505517547356501484911134515066186998549152612703630231400513380565246839599699038511888037275804855221744527206351098096778606808519688966960294194312498890216072078478846813130999150783790702046731420886216849000055400727442310399705922505288989903941009217941595513728588675134999333084118620001204352492651801062491906357219352097374526179502275091707915959770538644025749873229936613530452859905427590174052564392104717871151099798042404276243453728210603196481065493912527644257035113851080173223450198379522595739602278506042369296607493468121724707815720401014097765471149528808514240278827526071197661499018167971622185867989112981578834690790408615735730700586313980854816618868744873882767263331453002289629510334292573541852772896446616127227146094327507006679490679905694050550789631602263623577267308413016851596538298391547416629925853895410286845965699965136805338503537048289648103763467340827566526420590573454986845613008018556727387024191990136235931380439520551600757910278503949186197798269524505739984153288080143737585031414556839266575845773214513586117883219373312588474800719283187680710770538023827697936207409153145849676079032056670156983081742155315065542633618151517079589080471844658566356897416177542816609775365455327796082841658106292344269531220606684907978271949535344301043275002197735063936035226992960924127336977671239076684842349153895587594159306229393463377942555933361992251158986665890756556832453404237696915239791779246269456716808622886589964689970544106931469467636128834154016774816679300396165926592311260313729271860968100611934246582465653251448264371936895041757779162661558468460448195281430080451106708290191080849845853626055903290819946141199930635307042705448640100426037554294806736436625538337117623530797599313422225322656461833641522831135903426681631874951101259766695639550772390120123744338850968880176953744311985754720094078923672115802976350342175841376016332046570333642186126173875660817674790493902556681371793401542815160218306036838060930155840112377772745938546678857794833889443344011393784301654930837614087466174678628081276484362136147406469955217957641113609898491859466650654236799387853137042670678231105514401660732887977799337177376425696701607700541999171921969275900953277381316169989544762407719953529088087853878154775813108513396330717737143665858913649722066026798863976229998465463338827634099899856574289692306141851316547596236303490370915567802174695483280490274184178706093762233540981937806547336753989205737425443566099492869428402798430033070148393766261987758358017368226428548763081117523863743731989697233251355921090948620858126195257912141230527732244040859324427552101201578592327925393454964657605249763085196425356064543944600966225512387036534275253028254449032591827532273221612828337108043689673790714206703331629016904574873037163051582710150117097356640870467466073227811735289940443482787545122373971093270134054552997963006187122364414109324209334423776663161832196272305148715461774907841265774552523922342606431107495633844368939660720556071021600737841941234677935672678374611189015132080673706126377864395383435072066796250115312312152922041050280597975750049992096973399203093000493660449135411256147956832467395817975791240780692211867173080140684035590757695373725148571277090811739193073156795187932508481807411685739913483148271756470722717407727789649926389119142791271786093525554480365539204166492467444279908818140164626566387959820709199237995755199773815625162811206731299958659300596807401107382038134459667504855020623562207265658171356411679664011903311136793760165616332644755363894832601131577659717186895782043756309892926500612316776322685334126448698382932565145953851669794856625890243179520078943353343794403242482020529627749058381904123418518225531610631212676931700789003451501428889327947295982181855421972260940186675196581419622615867335807792865073303113364483309181760660909812155027570159436701211019535429638121252435329200431436524960609811598028318119367541583497225038851135997596927601033175371962929638036568496508583381356998795421363012602897048094568175095898638132611232786012204235348420203863098162248992285193515192030489037522052844111061123229789468308916307104852564012191888916168924623735971953514716636815797258590888217243884356860236675166711292471526468857045794428305143597780983133976362807027338928057682058862711997762923295904900216022026333632559540970156216728243672827340337283820089552902368255597563899683595081055654981233878128733460728791670551285821588662620701738545737112999685012518270520677991590208507075914715043018516190836238720948293475188630565337645768796162392561653818496101058437911453609597906359471166285684459995326019151824175451085893610033990113571261759631107026955281014805605487157445299268400007280515096760726643300283896414979350388064926880336171375557249020007175001140340009166021545282979841124581716484013529038194049149906887001353061255882096063008656201937606679561221249226344617978838901329979790655556884327218575555726107065120013975132959855301052035571449631770822347121309532647515030290441375935993954951261991140108250233536697159227965401091335959535710969693731854822158187639896457539703083247391035664662905892533397407851929935869418831733930360928589563252796767451141111974644172254220481372115443585764121584809571725924277294912870846013301750877682358228664450392170527942818276254685264055740698816681304782141868631659331092622345603493368243968153262704644923529039989701723694783929009929029465502332050971401319657553521261004857713884523140954372911350499638520467791287295599723479880953276549475340659980139971444360883057046054026992254229682744810680136090934094862784567094419381026234056516187228876245026112644092702753455847009972548356595757850006942371472121175309761262612882675571759872232834002118890003686520121590938707858028515149158703006848352843928334040341232321018409855595770189722066592125936523186091329959746321626835012427336756544418812156846032240649990040051951045916330367078696272918926250611218564192928291346726926623496152458779203174732146715477836052864549574963850191365065153847810465628701645578300312952116400681186870299506533802143005940245086596330062899535922173049900195007246992463974366404542780528469677389401131975506878141078570672459412950758735475600394254661335300317679142837519225140316114411910267780398120907333544493691365078752179652987325401104001763598462915516439356133356880400430847579714375315834492132415620260361380942783497679274452478411297207313547152316346606657294971499182502007340453245832857057530381085005835510436081381728734365656630834490770341262606449112249474638087649219999686349292781027109707365374571369534431264927176606495106240090060269972197191993990292780525726398622179233111137671226740894060181370863693144327729423544723437429298764746882915224809502314311622498901289405648874425334048616434521725955366538982125611381168141411006523842110666427848398837983166638872302999290945013802724730484016103577623802512880836268649545804593140310531610364067855657337533304667267403542462031128971448563685942421917481930830371131413819735552846786356944658588106164352512694196222472345537060182887432500064962128313054198792920563154315264708959188416695354781291867464958915507674197266631122379646972459198964013020480860429251854779639284166325773534215018231517919609618957324149039839749121989136215297032322487017195781749877938641802677014024230455370771315508534719057479699994507758197602978694657301981487735253297395461225082595573029097473465692445962773044738825202087280570405280774454423431562164767308696197331603001658806273623562935615138965285747629134603240767608372249995630879231553232564253113020696323346956310274580620044878123074331054749423308788290320787028132710865264916802572697277213493529142051539657873086615512829846966430178567816757766959740125755557428069450745383935116144724706137033863652078333036055375638660906846800234482601372330221083539587401013583671334541185481037564671530249945886040488886111249755980100793507882887710534587883753590024755025210072950135144628288346283143439565614407310506371813513144112894867068940554220021450314307406891158297092406453429611173970814283357140011201056643087903587883253429452712688679228691551304536006484511568728935737255353561021176567792852057838323636602679371512848400184337620994410566010287209764176624999843975180346293139043412567483443143241201926190393805105035464739105498028964043456609870783576682042221822938416559366094859345062354703581538854414996256193484471302669715692381604169248918567157393364743511967517974323702440912420885035602352273586386612962908668087389869424840283582210121475242727194025683511022691941825511948232576493113818019857554107901523299159492095821719189989584403598340724638488522510245692625404854129519394407799534479624282914147726738141993416568569343026716765701342700029718528377049506907757862613133870738856372461315858825073677253134194007337575745295397834548115573526348818867998056999297318375508459125391700428184699534164072034799547366235558581265521195107786425152470625117437754317201927166353015808802588216918085505054346228920688938244981500028499423197588111046601026227311338991589304905170802803506170611211354372692431205013966436546040671968828273426340736557358647943719114071677706031931422609616587471501950832583498226724634960823090847071508628127905504524771942849147529255453781608920248338595991943113670555582670412082269409005647890672197447108960539973704410936609610081224444297337909367297780528051037910275353341333034002741745581506315971823391523670085102544373244705895409939466298863566283244165987422418633203992556258987838788733547426276313531056679047572483538399374900372223315240037694994171666421858933144971582083536515393471683858632917826241066699695264086248282276533455655404116839268056242363315113789145732531789866437436593430396686887539484845697484315348891853827661504621054179035538252112698646915383892305399687047511314311928516682216852334803241430343684974917043214395895653449760424137177333689381104879533560431338103129007331308455531767310184820742819691876464217800156702216468885591961155771483000402739443568513921216237731880808411164108177536898618836052419197445491168639294284614119163243759562811295552232223513074180264357001384527949246953941497544560205928542402909767163515511211339485702194340886881894879235761540459716419021405073338852626380667251282640413527506289595721929512734261763880943985348935274358862528830746308461782932501047489577907646133778549145544755819033721115873258417484560605035585038180365965011753166345152648339861955786755058254000725024835458247327539349359345726591713418437324065874438379697079702018704475625215575491121085072476295687889961871572791690647900225282849535535525941559953766072942005908534041010876547650484535758398511895380150999419804287504718143724753126068745630109365415487658465319422042832368578912308540337965397675834704568434049420068646941483461394362664544390579955331809276699675691497323644992904699911345988004333225632292522467891695289631306859030678506360585279000353254396806431944820657717503393791516663965185248591952813585995479402722155761232310755693036729027387522601064508754584359270330328636386099188967155435722192128742281572412876221474483712407422139842175041958945046640598855841485893615822436764209538067856919150576979025826820145732800707131133938337055851773636200977586291992660453407669495263499759589611336046228666237760874669646149793327891752599805517405876905333714881106105099767429347266291718980087883994808152901355755012795086251102530844246059865063197032835351279782683306832526777624475212060093686474089551239063465213972609706822364315306901695460266208312072516467447640441047176632052901591590548814472737014466896540551762238355731381509837619096239079661783741449848257367542099897804149130935824391345711106366721408978603570354048646370115355200621773825471198058473708280993083582607750002415553598029866478447678402314741331470748132359622389072422321422810820583439468031289146548860715902439981653751582157065703836956614797919068550039161090272521095675966643836795704021787655996605416500659648122455234769311859923716100534203999224070083688011115925669652927356566494817341121103768976722805401827699930737343813092661545123175247441734103985655928326850119073964542974021007229865917923193323493040732181593771345423916463358992297778170644462736729570903073826648967179788128697313468881643889367144748522871779365030322695714921440530448349243516466493282218705693580799441585463125803128489012515164867593936076181830164366259611687420559405069479727186409195964446258311903684031838491110437148193846892851989100834978041740953910190553607357176252795336850517308579312725264049453080267790950415118835970928326937501619355082609667424933544669264484122401620795650902834949136374571317087134983222864107152549748361631637008236429703113822006339094944451017761224680469323633572506729293758766714431551996747168502570191714630748575284333039016554670574188472557829138445715041510981598378399234050841648492313619840636904942072394950224692014638383584907123009155491289369799897327453718571027550593530794986135148702945079482673649266005715362128038839592562274631871776280378273313555400969551796692338881540389315922917337096218181815951082182219751198795554607825695005581295614299687073191392751511307012508198139265422452204204533808972054483211392139550128824039420604624674682435461532582773060036960768889560020097406618398844842693632504156315335100753671095753140802133401204449251840845920058355520407976113670735687374928425182008647923823722031853806633616370976214831909491888598831322980504229861300652840561808223009565266442694319191210010089630587059290298899951846382688295385540018076622761688189851560332829500005008596331328046266910920389041391755038620969781618686333201300082444471168691106510035770297749828888733314610843564523969554723396921717464203113914400911951341483804217643909296370201921815420753479004165757954808706923406897872066879473644557043114342594877051041267975868392101532381727560270394950788765705396140239067906587224830375579329508989316400408685618735168149760074242240817713702304961991632863347751885459830469526553731638966332373375878110096207406231405764672346544639337673612433561272473724103724444756792240171521676144809248328652890738195750370807536628749101452647633033428199748441900955952754998755031147195474985896105640275970798109472575159451661128719433608874950207380664141183901414581255014807553902082306830858800648159896415810560408847081550320884006021939693063111831815899084940810113792064258106369078493618866494101360137004903929187068227680031950595965608432561877302146582976546494857476483717519520888268564050333796213886497982997751822127614247939040827840499288072097611265596347190495348633421819862879856991240817820927317525175335608877539522498102313665598420642664952111488037811721357896015673816380433222164909922167646270232012916657687656306480012700823027040020046473824265546295580702085177180926182397041330986152799386186534334346859766997646024258232966309006075662570569012865463029844041281170751892577808462241394795456813822321782227539655395075812328262330211265629663298632418857490408406375022373370918872328994861982822368647315388682270047779854151954670636052474704369910435902085616751592228644130027150460306782377100120647885602825529730031592468421623393768537285044784201345990181956586024626078990360602951144301196188593609733992285368553258463960991001483148705323072214112431932229640760556054143663619568614755748351559132787727269293164874563427808016825608886722547124201604414157281555157825767685341864470460198446162628821991157088919905660335534362830360379855563644302997188310815824991947098952109022454437836175071914507029223602217464028149113868926284734942286637091877919701092982366513534698279774104539327364886231708462300834582596576924193890883779511647150831889316212144951680052130704326242266627488136971970531714641926345255894560433627728552261665253829612922945522966855371853477572172292812197867722694397577938551286957517178402194801632596301678951009271963860996872109192197516136868193524045782704110046643184538377107301053389837402732520577253023686755519166526665682540655824173976997883181067390856868736392364196029487066379186646175901425449057549683242275827930603368994779117407075738220459381810309749035608510550398399955873768738547599375319379556597073290162452591106166858956193176135239315966003702135425712765684662801123421981522398444843609491851771173666670704222872374511303007298074794799752031756650734191008761911757939515874038687817566583831380955641744617980183579105738812024173396748905715854303075099142998762416194752203100657052964808059389032831891196936583156356049078372887323963500594702637342400292024024025209468486587189530299606120458945595889135123764845968892557534671930086385800821395453245204381551815240292956060317562198497089276542176968322911685724566584479789857692150137708479529956305649396378624616112092838078647896748536477419050788029863905657823826086650052065796056126477416280178502752910399467235824542342977934417760610355416494526057281172508462200335440256800410104399161584617835497253752611143533829183604838689981844119257628857493330794871687920757870423321070121972561356555904221475768412691101714675448142282448059248502553539442945572080176967011459766559071960202733875093776744065189965755305242842643020833523893188547162466074768981553607477897030966239341871615141960936132236786325495924435167467094213203008688258158661902423223467576479948718748995603622804372409741197184963249236199380816052826456263247913746059663437046078418442438283994307473293199508015873906524635560092457786937276072531319568753928831208143939415358178744382629128560190921453945211811039324760566583109366427276905113489986062778343125933152151606438926599767579447997248228908405775608311133724748382941633137387398460458021712834904334827528591807607045279846818238065307520421322755313342145403715160970914829629257110213179796194433623742694032282741544642326875881168698104818299655323925887359784140126982112347796614943439921752168821278229622094826941014599173527793353129065661475029704906034682660338786602637263088973653386299243667782714097221085642357330325376939198902562319648105289110075722146931978883760426880094023868950994349208243314613451784045798330256329202749629089458860708581904234465887579340491341174994907550696505997573727953557706940632971638334840925395630038061895599506346559677578786282304802810001001822621623443892770021403534092435394839098975935157843423703280536848031925478478353589652455905382455564998725761287324568581460307249394236576637280589829987284154675741542620796779504700778918971786716907499224803807159979622800726588947657606779331821416347187038158584539982182406795131926278731744462795919982887463583716620493477760129509535681861622028281586451314487843408034909385551909720855147761071003887914569646403492782770350918093340573347289654748178369806222030278917844272166601546297760720223192378503866853213355812220531477452404995729404904327818979183601800525734358671649355992513249996291033325156943795722713207973394386560584307726818656452364781568749402650689980702736088317334069709132871319152283318901680141941617913579327025769214583084921911807407373804325600498610706642221024830228345884880068011853424561880757955419899341984671212078652539762324029987235973968539239687229866065020263148541064604870891591232820141396127485116275343751167637372982773599472214905045346493516974451004713518664604501239751968233696382403286358133136629732758778922635745580681745824176416071044104084690809969757205430674197295229751485777121385723581675145021534535194617952524786671318220751601363844917870166157484824106384079117232632006563152349104640927176684029204380560100930475627339100182634461531090032977379502288007022166841755005601379719839224517530229571869955896218355246306210171844581121855599190772944308967422766238125911805735391718257236118311323085957776142426383757721558035436743806786319596738364046749620287798597863079430876898214536819417395386554600051036350052729621550019864570816093750525702138109013680650249108807140810567054954237509530556216123250969100860201906857398709384247586123301010534983491592334242919001999549986873721320383806972302482188612854542202284902026967969779649867711295371338495717396162957353187901667814105972556419517119925334320171420376300119271332636224826099698059076901177704189254069689379055856141490045108600200204681150561613157033224862915809789418996102088869969555118646753578154164743890086957734170038509559854643740274283503934885363839378564474699438665584526278057834574376609973609617674783672779320815250336470867437619698727504406272161463515223276329483235082175042502044269682244183249851880512077881885907637326367236016572320428586303453085323594595914540462032033214003136050871250174044944453391739751514138293236086598205891438711457162632923469761874888535810437810931466605982105059496673249647294607065258899751783792710326111012827383056777121707857627326290402356329568881768122724155170924382354361467507692309396929085056722447350543774780065346011929108079792210832100858207167553843580555466657386177801891478286186133508286420851568594219808232170915548170243515995860495537844351165215353692989163380372161766549189057600748639873972238546166001342592112471812489108395953405471371031972500576718269820564834823928523717829196169600440466349802225940462496740079801724796425459481713720808983218900492394335654579776846949259758897736482071299991661872175385802128960648286709575791323674328848978550151353596759897545108496286551257025747672677691825090224576161287555616823371110083036902232789616613747135604726320896258421815094061307103467800947839089775452700096458159032400270446047394529647173804649723816718291283217743415655261125769683017909297935576206024272454210365084685616260718877163366314984802573864294022819019536030447035333077731405713602848241157485458844681556750898609891016045981511694866802913954594768317895772315826825604872914282401027756834296638366942053919911219346089733909781635520033581121139515823088765517648111346008515273869521586885692849154331271475730952999147110915396266909752521483807855394975450456775082601175450495046216403206626297433989952524960523192524101113314415300885517214008000734457594377454145145731160226048243684797333859103129356168490789183748317414940939450671494439723983704185321450725800778912727399683096480581666003038204461032262195640202193704517744246222579920917368030741474134914641510743882392121707485047673881728101477012311189532590625298910202147119232648083324910092323797587558011728942243801788434027017890735820786189428567875376926567648660409916069078545447249725885068436394326753139228366477060842236433735288243840676803725666526684039848756803558241737978934130980710969282195357971074196608950345635557048257997586122654426682453883014807546395607027724397705816969120187293658681883634792566334518254990448786177297669136678893279354300825108930356036336611081705443583269335710711828004474759272744430546051885567840196258551037673193006851707543493895550830137734436091481908390252843771916493064978790613649778902225797925206679098408584629299371079148204451917789988960597359013353878149083918528356172697447938492274358476794625047209044258968490030558477624817374551856919747050684873377061012269938959560965788637893912156998674515105069476014114621017655550023662941833640737145843923567910474782193345326345360590841905538695702443360989587242050386542569756500095038454177317855803763697112946192246579859418460624628649134280895852801880406665246528604555363116189609909601498940154962216285867166353095690855800515541237648257612027513579316189406979295618265198738623099579165773530277587998164486577033043688472153970207883459963943269901462308135365024097428011660401284249299273545222600037384271726138136265495388447567566649703784447157158002693465958546435534902055408446215844315443552565501545154480529811045484468615299099467640025590547338390100093073918932822039601244090771586430019544342471533687061866701826280580718140229808142003186360590555113150792302788058560404539917138366993005009495156936948908058601122154408015629392450808942692970795742471661289557844788692545594097060513938448387110167063579970261628622746741989863311387079326826308661727376827882788518255502120929450875323718712544312577557803409455775891162140848300011788237925101137153333927988200075352907227229982599674755697531022142012337332298733027802921547186416586907167827869348112494978922826156606007307434447772850792579001477257759525602806983257825205462786641534109071172709285402004605892202919129123189766597263082806800862013586984289501230242088413634559239327668366086391545960184215658568243255932408000868637556751475254809467030076948967577715058703312455443695102512249428538868516100485613349319797211447932489723226404284170348366153397467194539963979668175173173742755816046756055011968153193532356466722863465276415004098127449617274624289206020823207040503623204029338682868128647332201693548510923984767781907977875113262593134932566331631535911907676181588778159138771889194684788015208878486564124611163218616851034369062675329027872533207144760701220285036796585545408229670148474134826516162037637674869992560451554468432328254717201361425625376579658886712452337274686705553616122980375977643695297821944972171400957387503855091357499844667213845881405517097790687033203527064242799240140919743611151179832741680900103678854172664373502674242217001936609727173000139773975467323458304040641012142189713489616802717094155625170592199105586218884837237095593384990649536499023515428510930516083702923016545755346729113419591294990353651050252843454136477557242756889438029018776107716752904762355214312005903665722731503405456138246670482404663163697171073550125446857650185654613595794972458346530201964867200658625873617229116287515962554174107845180118376525998998583495372794081814598351030434135706666259549412784993933616235588081403917739915037030947240538997185763067395338238284412523821905173406531394536604912930780062354083474276647870662044034368197699808251990261043055512849689522440183966322064460812618891622019835297377665040146512642028897059314576004116737866112214190993249871212318874293237771428791217266368872701731667281205570761937954441725068116796569631687445004337596418711645420687615752759365238948031687062460340732251376394718186297306993127796258395617650824907621557361777726234494238121902540792460410738591712006695255312080519741353732151562712428663683336139334181626157544166347859877258575352247136096549934985299488839934294727622719550187451697694675426789759371799835526155479781470566791712246894040701453406189065363456254516521305782958695971731987980428163557845021650629464823737191182095769398719862751862423416708138943827039447004871103563960054390112639044772516798403565450022849722309909545812188594656340884829023027677725701224752639642919575006939657110847908962777673417358842683122406184650028529351819020943945245446219110633949568529435981578663767147080442165486032779858510938431341940075613043625645134646572381691900514946615065767428665622140353974256604886625247820870810103549874628602092791463278426543918195296448718786746851268791606231933917887385659615361126053079233802937154827818516582099568935269869730408127107590588390589307147399557885115787330421871693295098646451454985814212578063989014289332476841979255781180468112577354287291530044320054704636231518794211137163825027976402242284542929310202582726726267902990331181187371527901282829387252755787136273700714520634775466775188238077453624427085441643957777156868888699187410932858582131259963114192513736389867099156816149565815432725020172343744094864615141643114725356362094868278042409801972820611629958087015052952807964757807488981371438160225309101082546969435426397608779823902892754500939226111633301617518638489755900622479270653530308493120371437506159970376691263724513865787461079563896494068125570343346496873218940209246035188828320136052323497462632209542089468234570038029410378461188630127653037353244290155111505727527663299766582185238692169558958838169475090216267045314363759242722124871968442885027661714985823626309898507390068011378134000110855873912833739268573711907981264090470235274131470256729409695909884243293016505079362457264239787741400877925255152679751757073955448382856276537287809143347221077979460771452690913893699993834250520806842892106785750323532695457449223866887375788094746311110031694743144433172492343415296176769344946526349464536906435835447212301646717925145904552752855989640986073813408934722152398023649400078462490029146720587372671018894312865071857056202981505232169982883329387878861839784577922769704282302011857496790595783128590247262966649333091210839776388053564370224209845047023068499300658176461471271211264670151687138200685479400147094359029148844968719535764088058462954103809561388015334390407902158281643550644154002960155137969866092671770550305238869144570442382394938431026856213813815937425532816124286158939580099387433694869043221701948142269896940387735599017163187970623146381881338563437161005375327942327409486518876018397133893228410548103351272962757784824845726858484234912342298619777683359912375930784530462636900340217697455365204358914380494447835519173894575784458475922136761409347214613077574164897461453752083829674670079871191210297064003167718827642906246509844625008083813204875031272098114043998166938340093158784227573869832718732367843942285241447551518614251774057322679734067844080044879491743380809130376950687045025157431890806051515439270250411589798842119610163607121976372851709084634399517571940037024964697153398204021320558424363084207931535424776107348836096723590869879311365292063939916448677031058218663285794474356379670894033982488263257957727273149489429288547983790266992203429801448901908657547447652447751953416395455041459957457537990208490635015321486068867195979621679564493735000290907063154677853312914806708978536710485919800203672716242213886063128510041017208977235153417595821021532220442319889553918016990616875459705213900680038717746845584768938295898442905345071580484795222343147780030386168630900955085787242822825792840335886924226783684697127411474392941482412675190091223410826260587437670711351117734477657069518603289283865417376071347379420595651474379881510783302441241248324369135985542168917695690105566050821842451235649295383465118854247208838479084603437409222464649370020969216310777121305777649274706053088105357068773008102510391733030025039421876625826210465551555719709780283516228121494949034192278017028481133679674550984008944988134595937432350586581812949390699896016082935677800084498327927350949080332716613599307153110357051512947714001029409934589702063600719311358569680700445356080793618804917863137286139474576593340539894708617433828222928242202669846102506824532486214928729401069663451291496297518384774188739122466284657617105646109757803454661985278406205973750186355875412170680387372992807812144000771715978361596261651370968256406212513446548617918180324411831635325847560881656677657052326450393707932350868042486009459912337980175180534043545659698582713125573289630069104673754697718236356057841856468309699862419628375691311630923913336997356839921904151957057473708681222319320878246179934040733394475698293317075711250806757869356044572169992672496535135182503077809466340462192406323436235087186318056456720527379584113719536487559288913659034892162175035798746378864213051922197586397963200513516575614493918313154606078943121470703737349628647669749939367829062950195279776311844868884109529885085997979515510106374474295995130855562684008344945764687370046332844380353499547891685925953253382924848761084303280344894560323856169673000316487907962483145223975801170673473791266539235008654513868032869498709440281369766358189410520379790439372700717089802354825720636393965760930949024278910076734793267536977937721345535786367239688735740615157096319177111160536439234578800784020314609943896278436720768916904543382072173456410877763652229771314046943302596410940057971082043445435899844151774552498220696471443056330977129672284330878361117331465674937517840818024115604866659022410803011425023124150957130052355670928739421432525683376777905851364879744058163453084744951642658602609662083950062004789917257229746720630704479940282831098235792193127101259835284996361923227314112577363491159272724366029010838722429628241617248601892552768300540759898745549367397413985005697480142883610956835643570868160503642638362993233154429035541121552419190670979629196823788545094197736086936246313659789307256359037761644470881514925706727677407373235235147092978882635866447558865059474853683501226141490431134256646030937501715701605950427008910028858851429640741856050925101359783413182481047649860669393397800640550888579774880603819949606053715121526945979579586770079677090168015088864835265533011462885240107715809944338169176222690677229718396075825333820877956348736983055949622092601035429189333676572309258463219943014167448806326273885219787359972659567670619786380327028924427145101533937860789535709457605689791561543263520744133966550585526338233842191194081683744657977609191709132364950249470989840903702191359939263228017036192261292061411387923049375007900928201408686818157607655619831619023344139205283887886644426075022977665305897571273366599829500774175307869830820326859390298116034366919963425418813393641795729040399314019878611756512519425468997212448295915403846464657093329550659953962772827114406136318793058327706313609332493552833916290828556407385659852900974858823844196198208142770575808455875870483243850094074402091762108971884119505054670084291215757189618069563451822651354985983876004137733805004075306306711882011629206487691860781786529038479347241049347689830512308073101180592988416980351403376960385019329241291437291906384343779003967612676802735926870468619609495942907927396259587418709915550872634670966839916583388014616878480086722953891872681447158410204805233618856697092724269365039721066295922539044572114444085696213299263527211936103071516983773585702623508238846345543584157336961676061680177729542771940962515592587687904350583341381272896232547652567647583742741452882802792472696458001972483677805334033367836924566322052484326669893763267483807027316810582444384768671130157720755456796446752529250227812788072149033373804022969784473191689315986812369794682798695535739322491241037808165406289663948226737209087360503924410045609820991428369620385531401833550099101084113810796248517295831467721851815011591604906276548000495453954204898555698121203894932000435829784258656963392735221595407654761882955477868466600309739765714664483287391525720634311743791917121286957073111325729576552329567796105092557182947939896374887048750333264405101754441636132546066469368915587557270225314951926844864743341874310939236815207614638464734471596291210702778437447791549257120003659552965139307296354443485680493859589949343025357384174687814953711510172953378371852797061192138554161648485607167103340225606559921077959005306223599662282129219323357041781972668266288305399765144974816982053887561932747510259987254158298505360810957063911818996748479124914533461641020837170512355657779093574401464258086445404861613388326922375173219938414831250668469655701360289794361638029153314294373127121000787922781386125468039462072076754111765509195963601089338522986898537226763765731862766853283928408668120372174109016485093758423395484254924378920493755221321872114040362225307801746246731720019457919200907014066223827950676031594581929801240630737397139689421886002020109200266731629736977071863255249861438795863882706110321302214545478132443926812438566790892077411252444741971669344536282714121117177035585903112729839009776643252960063492449383949830737149808583815273697866422803530210922963096775093296573142927629366306734011717239667865008664566284705124681863355009171474625709970635772569504608638542923142584968731824741769787204309579847279944684815060315565500930104311242658917706485643620895435527252910053305386094749592420631265910124606998094306553796844294200763586579124632595688108060072120619938114289493743711909194918950297098834524424581148682371254450140380384772541940662278605788118701178882397774178437345274196761559169679672120336330220871170831724803888159948294775895455578002488987529506287828934171542110521243732328626174999793441269119135166123474250236254547149537898372762015609383245314775940609536817304483661168590193423833689377817780173156983357428450361358852287789034802287439016333227921897251817514489735305205053882416607608744133780188832383565876613695094016285135882569156328030304733369370226060836656252177325986488647318745732325779255001372421729406481091779376165999283449638594930040409901403518325411046729349790831243668479518785452826735867879120219809123934546139275816223220690980428244816543527799650701774260096984714979562449405228754138226322417266354349041339869092927064583819280570119599621259767560867881068698254572473289560767020249409625572453894533180622331702216789755517769322300792580679846276321072157754087862238738337386214472769172545136951226367236263312373276254502332028890481819538754692626102413531683609144613045177749766134054856090176917023435117542825752234698795218547032658963825517800136786680762470371788797880146190737409903011317991669875301740675807106285921454590682195348163439317222323525989931445046426667727687173268813776099442355277729245703499762050335708011544982102758517710412945964246559397291961076512441884554213262729494279931277927620495505979049265021888337833042107218501538919448051446929448638018204841352011249918412815993134472235582411803633580149598510596921197994862304886884215366209136296072542201824133689948969205211725358699231109729631928865609740309122922308067509622967987016321416357521182271948901164359571239368290621568608839331452414437332189577090775894652043524225960592363271522330839413651274999423996187267247504544345237244530093546082314178199862611823439661356165953867780078697427237971877853064982618903116090360004558991570123438749010574204454470639425859442540586608198261413335238154296560187500315227134979255064700924587937389761060210085577307196842905798380754646420222679637608587559988275817939387801914226403216641001705449956364595535304911591427316254467884043485430176021883413992107095529103743428476937087726253551303226856978209600766232536908026343288652470097817400531032847557966142719345637002288623057052875005373502816197221055988193401059055154451244708270697417104930382623888340132502270650380184113973896621920701421616323157480364960644429012551022617053982645644971064364604489430262207983195562300928531408767189454854757295565883818897737398145369795965249009514310053863128763771862652174410744208113782100435691480458773675668114379699993119659102972472800786580598317606977804487103687351010673360507417482413527273555427065578446205369419844069193287240532454602017279950495867408291530024047795879273848997545838677858178972693365822887582720938620447038326687419745978109904957093690055018961970489862683834242422450913943305811958795208237313138455345715434009651301163025854526679978557599613764946010125387183216441196164066230857328260582309679321858969710080213432122136821225193781571405466979066691601315436344091616467631936259046267400411844245405118561792652757753153311562772522278767056664205103897705025944342233211069827383180804795972258828296368730220719916984271342423364645114689358007974474290476035297336081906510023967160925418336517318313857849473495716669035351410227013368009012621350769196655607799273581624017678206789474418363328618306237264802617522233671391988905518695652469707558099086467017335911872364060813573556511826078921394354932928124025359124538789516187401539871401278555496566603604722421624018481026524502671220688942955714122505513305467959015546744052995351793486668892063534777282780233032076418696776261100481308717370790709028156077693633222984950852300757828352395657179956362847093690016643103180310828063678554203272782364287695490620548396286662475014452042136771528650927076639962730765024050417806055882552184515589950929262342003690550963671741283986749268903417736717878944785946398624518531363963575550299960213430002876932247801173657609056235054980216556546538745205642640404791354024930474334331784302798607107007951785912279776452292064853486138825654241151634450695717732863277119138793983681351534132604462439148066788041867378543225943960043707003343190467143420593230012629583260410221978593219975361597291594972056134421719054879820167260081664702807914665814551106605860522168951415574934356701662730124492614623741969838261795773967403113752918993175060761596700302455009636394011762873108788005165565967179769456084378903310442001762509346469859123965005587615840001998722517153115297089879193846649420560057978688694473745528019737014039162540610947400518406243671919500990759321397267155221926926249927297239537095297926381854431764937012273435898273170029156247206924942143279847077285471349086796624207887547298009914275850560738384533390446541299569402811323733520760608579422089192048598697887848508919914688956356146592931249611999355904228018597455521086491554337000260614089371451130570256181870257574850491589774112168208631374368779411895319064131109323267804105097995883820401097531728919284190329122891829675076938874570669573671975350686318931054153494890543763305045962833916219982409799798686167047464575943874634714350823913024167390918020292656010641387102772633360825072978334194818213077951102879083306497980363024732119011713619593626703327964558007133558355065970013879838056624834563672056304300685915413879860517896468270247792567115930244931630628065822252569475225585414445179737681972210443449643846657347887229449415862106191920176151476748837939341843705222664001804238462680749628774552006499883866301097204890683249516864333247611021236422135536090450943534250496812822442721282411016181118171379590639558712879281467191351194040448098438592397211150469085422739591126875672954777126589462744974889750080916171538501018047931606160775723253937280400023612626383407106642015246852263327750129026228578338043238226051449604419834389927272986568524528500167485770304297776628485770933291556780606006636550280185330453704954433424632021442419480828018598515050188325171280495456051194268517420827935668942427668542840491703320440739607591958117499053136674073341472635939216213436600795073189576141371437996406132414079285947449441462817676730095255590946024029557488109349800070176104243653627608265207510834078650098634652759460836725241237043738528534216886451694394063258935209574672262199754246733616094631914700684679310490876982883451187758088083511085158701943181864186047631504382584437378462336201821156407094846746661784151791368379677050202279822707492019459106069305171380925252575379111954512827502610468361602336605361178327303753541848085405446420806353009195841855149865905934752478857076656325296124545433270536840362969168920045406120652077149618922607597300694552574773887517685561639179610135469195849380141487420612913426863771947992392396051499512281968412342081474345424663044407088918241588159835056285505712566293453922584615731942808957065652849363915228299698229663882589292321525971508408436705166092981558219498837747220998364747615933584259767112728771876545103684367600744557259148637679935555401286698324995181968203045639945813217295601920718648459631372939129771059470662635489212511816283391927132497679431384888191242074710465878839635837585472212862146082583541899465633554031963258539643887185703940829636842499394860792858352650704636767437640608390709675499917058362840070881397555972300175390612225357332589764598603666303542005383389395216566885228060901488593235533717212228148053868991912544796413095090747983372072110309006743026993823500112902519688955731111112899077248907277123499365032725955738779975432655143876001261172572563918451548411542679491706926145366180531646675358225700695633389844042207437135336789967476020764993451198360038520943817895752838272532346122649390588239287935415482631391310407690657673520825626394478270023651050667305528842977784833519212733544822588793824401357125988563902888735990470871453361159970089170499673323277008279258614297050868438957193436877517373219372582898921119866053213812685550071591936357244421662229588857503533095275797612072322247854180002733448620141753420598264244695919259572210918632199420086687610183440722952954848914537847247390231327508117396316096533182938921413738624164115796316189340270226522926971698101791963829015458644528502906634017538818131431294307450602986540218595433441443195006822107125415234369940980046012921256531958830613771784473188228754643826449676795910072724241087716951998213498338626241543438840261406678684019696760993510379776885782013963253710833036687368231487605286712073653343616079825477569099508756347720240968749638112982925871635912112605896282427527278254203841450478434913569822665069062385666764570905570711063244619881965864215007380511490612123890098284912929035337144397022691199443423407414643653822893194570197096550227186839983015685267971104952875309299375764885471264806604519765114010585845719670199217850771534166029175353233852245946332579231831878064915177001665590560222559751355247273746424168121911395171403321044890893364965390899158155534444201708461538100467083959306566193863280692554722114854347007546187888841134604249698306375346765762258390769627264720305114132350519278024164507622248180239766925833816651467099494340775727185562366298051889931291817704314976214599548926546213905624704242756153379911355577229727383532323232777846939016049388394570506916756112274877621837306676757208337593065738210965453643174472813107595637200808493608222279694268440496583628500643089895570515127437348641043119990730109038195204626268603884918130011626102852121118477211206383685606467197100560281269525210468085133558014528086113540516411485603921245189030399626511144863818760859162256456719123062100103039345213829007457458807141344471607894986744717970802057410361744121589722142168756270454378739556449315695453226825138052269752460440427025141239586888599049005033907841449710007358565150249235827069184337228924452232534400117395468677967530164762402793702014866080381763603657609634567792538591943704664444000551293756784384537382430948256725662357805742506615753640567587994116736397018224167161048368047074266751930550935491053016810928808107002781864022145833971436303007340056331034087127522518173894224661210034489768231537025857428730956699413389758784030003120392372638151535431051383142058660114536604944795912723021407436738902985621043186386706084515811327725283651160637847182765764892254456401464378441557676107181244527136026683319132107636562189063399918070421675627778158264539285242306543108712047523223145809402159161813368383033191380002705284932007713634848297719516494741777990836390254116105299249072577605222591513626545626756798491617975206898392843979090566148397218430339601324363646951926675733308817663630792137369443076425596865120198912541782271806556090722554111486600236372483083790690481114263624863649474066228529449799695477023887419709033920015403928841629331756042803514738660805967138767442328866276579870826790758847839496013232825042307674084584693400877332540012563918920123046692501769757284723459880698136581989492366595771562141678172982322300267392450309785746630573374014800103472136207193335716539895095250112731894730489052746535230296047434432610984759986024369929325948903256965953955984173442198518398418924057085146309495355103696109093542429373617234847342159167777830510443802138226620465329039652027668789180211660949274773357718120095095761791017051468684114462106056075913833273499981796900065306308999517796826189737723241132651137155047265167650637400025623126053496419950983952868294830597612768620044064440587185779388856410241030479753544313726368473800375997047884286581262973446117480743669362127726932652009986007934298173206909725344462678430369591381891841027006653471753725052611107589268906427116626887536848992488071134661403134319444418272884159037660229883385332037668952197003644885388851228351123885987476500759161512097137715793748209920365088892990903785957409424059094560480996906775358532766104509779822634265891496892592406421222664923282637424612649942422393657382505206100160586665412787380109411254222231044958856928823995797810817961329172262069471778412937232743599884567950761582636435259259043252657887267992224616548964816091084548331804673657515885306362172232615417628076928895352977898236624320419957379982742424835404661608022788122930055047285094914241895343546081618516956209016512072789226097593661503061626234189533464282175793012025225082968226610782016328543979071008151192888888643372468816360279650301547303559634159354915592054329851040793552541867298607249763719641517741959199107144603925857106227813872595354136600058514491231622987260877050455375404377733977492256286547906099306143460994383550257390900488963828275267794174641841389973011708044194572195239707516425611654789312535480536285261716332009830166857347742476413591804790855721771780543712566421528564194398422328741719821635295299775963396035184848974876842908306539138933980721591741378457680620381409034312461715143941047607824074896548344158042666741484551564252081958817186094689071849167597021228952046650217845158428134121753156868736143989259279726963669830145686949192544836215626074726911557187970162026606055985790643650138308966739489242265794776920199435861284102358209832852113689866315809422801286794874274070205457510848425207591050998635377408444922016810019103473648197629301895633286461239114288277215314734679934527438244880565937590053204045625744134018086464642948304703219775711807016839261623831266403301096269302031501799506705441557155132364768092403460991162907193213097214005591251768398254556850623278944083533164639918059988288308064844476350041107000609001844477988001470542805368365267131207709652613959865540938885957968726259541076660587986001646467485748699805592817508255001464131556136828424298068045379954286489984699633935990578004580892108339412060179000443583056605584807140881982275436242239433766953596139552803799382113365039524891474121698203248118749095081122518709023224348230047394840782417519812527366829126493980610548896957750988930093146843699869449266200711616232847790116013973679446651213456430803828073260960351548335957644907310160066988098545120026709847840913670707734760891047744430308899151823199802108716934402074196005319370301187595458439640278631531361510908686086428577390131563743096228943063400652018062935932115319657877703029783661954772694899985314158853587143804064097047735635677258915954734454279605662386519491115145949403239044153320958488228660656155193434007183681974743865771703418188097502473701719678487096316079538475430501190070238424133604273017000617988737074555376284503155314536874627408182136587269359323016820833884318797089273778318805918923737876907505925516435737613209749265417780872727976092674488811049591483611601115612720502760910571329700662159536429333410658132990372577123979596537432709678902160777864576141572520078730870458176782403631542108788221486502445600640694315215033709982657209639577376576917566810002303130929818463559975864773931663872551467968006430815987455748824183671481038735851865121492791481199986252457331833479783851385118609804257743338362447153397231682505261551167739406183880518527987385405408854102874356343438785353438414660015363244321465299745548765292972003892049795446866593261769873578841552357824405378001331096071323068464644438941620231439346356276549850699466781556025599050920697393282257464514287232090561611751376564213982007831413709987194704127414627415516988232952331337003873797754609381266107249148054081632779110496941999457330265584368168278375477277128140709888230531535181486567404385157292790028964600999966627787670047215158915370236355999407240354177108756931873498896501076743365269963496586093016771401359607727213739596275996127350264925483167760084364715914111671019158079027072588542910844980462278996256772966548678007036471569504876926360507817444993958734387121899111129878659673721279657635776384066985409854782371208957431867297377383811712755673595023489686454132585318799074067238498530741632040779675471353506875940340469221677190358116344941339765911621691404522405309771912965125386964971190178109686850730917771796499536598045829777252088762047690850166185793531639348972966373708695126772106698785828973984193668523676981543203583271205979485768635306251064259931889878498285626284339106928031493384373533248834927088415636414530196707129324298900213623627194710710536954449514820425798844426468196589394610118103012429156365797284510998498009540207109053096465685021844577628165150148972959308836451206211152897451884190024614286871068885434058056141624311054241476245506077937402617582262756712880389575513719850248929548916871167269644409840651451728847307297517356771072910435271787114359356924958458937653116942926053941444985901369295834581994519433228155730362904100306980563403504859424987799750449928116738741408466685955749558867734415364131472799118207051833039506431930593709112770685468162968782249185467538513081386085351146425981348617925680737687976326461971984441758865738277825035588638387629386016106050768522083737004789286437958411377734293987789774794538691593205600778248202717217933487743223523441677625176551899798741043747250614781530444036571000631889350469941214596272191588682156473632482595058356009760485711972723947401690897875724094478710580639303687483100236390696338659150244054704848613195284219504567294433794160702568370659773943369993115671636509040868888419702640285462855191030764055943009108768195627633451627335181436676317170192791131773328728622544753444001667471323070595650280554172912285087621153905995276551697144876502349088306457691948858215042971573149002681819015578365912388400432757372790401290196314524401440205919217298784154149803350871994763012268002039590062392221247162526736884697781181639757042320003832780554747406679070634631752604094171547713793429810614063220372386365329833425070308471833791206837707580100831844824668205985739809862959274271201086403770532506280616771599435000558911500986664244000863628070524201556101675855762123692930308327542722636960892005153029320959407603252162139223041938864424352974255837409286504292019410091581902182369249207387385696465270284141755995577938242865989949047007065244927523305496331254561044500414511138945690933587755437072086466894301833839457320791968869091659665425853561771094322903486843424200492165595649265702985069871162931891257631993358084848132378624569385334027226419828939998080337784268627172716711208705849052965272887702211666516239221376310968721798354216296213416369016244055770326511310993658008643068416896376061678555559346191799358251575772515663701284407334364238488211785910656821707341326429730011012003787328069901670373964972113995342534272939330065452914836861452554435603438908609694605977091923166269580707787418686041125595639203927817578611650042542422182668883338299621916319399523838849539078569778951112403345544134994549872494814456072422485419419183642098201693050953193207588768772075597652126753364147288109492751355939575436327945150328211788284777155734802379440786578970619028879329108587316878325144393484854299083391469837419059440741984060543174834395061953154765375911670237643329871806489930631375387074858571494063848420795361011231996414335979698601721731822781224192844803071586004309550230091780553463761251756980873337199725884264763340093945717279240359217387398258032826927241177717373894593407834536528069479926027290574255351583867877712202956650132989009124349138531706920047577928456742577290631445247964604637809917567471491895061033755503945125335832677239571735584303570639751211052079418901114205139021522750779479429397661311403757325132020980875926650703103977077785128092363930601726013298215411812917500203219494612976250243123430341279220690263391676840931399658448067708591160447366691800990599758915136244503640120923194380512271961375948683085306721764101863611237094515679634065194650840722207791641697571319237495992222156609939635004962596706001883539087851623356493922575655140506168534845014709626812829154113483297824489799758125173049397109230924783113453028731211461235139568713128597171564376441450992064812499911214599343310874760020980096325517293437440967236339597094403238375292042054363725404074234158123771968257706364193103110398936199496873467521896530572922763814180855567113607213955608279138223972406945299405740187456786778597494432094418170186573409153620198152229012537716154852794778382288456759765102404017844265192181700679886026998793946797462629507302180187259227539329070330117984180282927113567203714056807741244284335812736274606519742425353264518201009370062931685915638726405463188852612201340268627712206959082125776944795536263290654071096886056196418271787597893840329189734237838126939514017317322838298401340985278652614393312439412856446257345279205233962851665859287457356771181372460944471131314229226865905895881981064321520786620898023744629184561154027843076067946020238940584654175901414477861857582852232304132229281217495342227071000714795328383565751508256461665748339339404205269018247491818044539849094455112027774329113198884456661507233068702707780807065469286105794933253900370519791514628153287311003118845813908910745998237260850223982755086764473256803314183779058682823590748985205192929924027809713716734457946542410647891589298711799093487401177471004505450724719121833427593853287233005944349529949692422731731363118783619024907117416706403074214281912036239110072830967897103974404693675944425817776864809701982089423555346452995804585203996360571016735756297104865945840840907347311582592003159344745331648254767833919247728535843768865669904621013711990388982850688434722273433160081153335013040284347991065586715885844938092818473773066719859294178740435576500425907793743081202108696415429049851565569383404469691060143920900174698304409713173176693176553757034694419987441319859367225376929943107065187014220780411501251238986170600204474312737321102637676317135282248711722562940341937380754689156379812941906603931115387646425505843826555639586605880220688875452330751355234459316420625037081143031597878203580566266057523067455141036871347049239293379983958024271123770097609469385799079251101891477726789247692871693999190108886887976596547547339484217318506103734823860940137194526291709692067524093741859216255586752708052325427292217013665434024875006349219388396933451980594522004474693029983600713389756442072543042187771394914224293087409409799952534744948910669321102242280630983207392788028811515989193112286289677228007820984645897885590072770882394268902253943254860181698475599081083651611551447963323461663158341206621490205878312976082742495533361693872143692278470804932365477736267080459262910478222956837206116350394779952854060764183947958297546340612611470500724960120322792201699401701563486419831444323938404731719900869675683695591346064404897518849512502877620890068288553858281207468918826680317096795983317850237038564318848267797185024307029721285953994998456543343033853681903615832362743443295930377438074301356011081440737636651158195650341817208023143102425138653315523207237182521154254761060717614711274422545096885635961038360472503526278059198340180689989793243046438433303427304687713978103422278904893062777613154260708390538743587735933725889999969269836034149589433230770515100692774486390909286500920722965997240269267231112668866760769268574085492422601520774125824348992850323497490320718575226184600850883941585486166973410421946715091241936313876731201295828695852510762011454830313637624639298375891679664549357722732562133881804731187760530659125832105688473053255039976180738342863347900940313886449396911186499386093267837276691930591473586901056778000470375902656039362516113202020898373653603838211592344234061965098662671438937550484588739275270197696297983940679424357893351953669948032301390625965728182008975104780720871420584933070419591840737124224896913189486145514591104759081576098773884541816772717589828145410368226654415349245796521346443273338455508724449881630003231557363853789092418255406901739142976847293834462476341138441076545585156074913682782792950566628551501687559036434741775642762999652786065195718509280217266598674382803767218906041977608019536307685039718770549961332773931560893656427386674213938458000367252749015425855984255232478030289915929002499169830778017960714226132773269012437367372307145643215517162512814844831977114658774520657681840304573610776911688177288798704263606111515438188786409494407917427695432015930573760826033988900408938043187599554465564253014864762446039822657524706950190414094938833741509534133788819525584412779807178014419716534727174147302513041375260271435081517197354262327406496145296675513760390475257572236650426750014913245600123674127644343162336506319842589796058736111020700176874682542614924327644604581137520407764394358973875153535729464609754346486177473650036320139973646430442836487059080068680603225695746263834405854389734571766537665341931286267081976840660711560615397936554547920192298228470046817203452204937381646322086017914851766883983112763801152788761731767519242960342852918965337491856823771611607812522281073883332486447644513692794130740428063394003496013883366843909724574895259285703874840145723032494241690919134616964095811577132300709954930915774591985204305349569461037261911846862206937830701575689998382338001852953884515138358046742800452493072710226361481518453703985992653527687243233355023348116890725635840847384708610602482478244145596487728316388383933508269524669039958246079720673437147432305887857493037432276603662091999450645714826231728249468982988782663584771494891448022424677166353144492606632644047739226450726865985709501493102820566283019892372009593432984273752018360178235097467142676299791859808221383306160623457822807578764013443791387905819900046780170582593805350871401004626230884850399262336604833173946795058558312483712945592516146766532379293647905748154076383926920285365452979583884128783091652652476671772472822258599957164462313092029233587298798824949753454084880143461376806157293522216867648888238069628936515646191549673976305960475396668101793095769296675383663334813435924522975655114939033719952189470330496859247275275447177124121007755909628699622428921998213643662014636778519276728712393921670214985176125961050648001672356463409788765760319018140453244573342141741954231741543416854659499884132457612376754177454387901193605511241635480642350061598205170214466005974097630069158572987353981190340962887929910803519080279258170680256459600761035884775171384847321588004566263694951988920175159030477813595783174115689620294377365301764197987785491958872959348239781982244933533294959510952002201723206851385231449091394650193911890820605464932467004344653400874755297293767077381637915197575014304238256327771225782165440444288486036898703554136838565112704314583107985590706213838505002143320604253456339682435904058009524470333457470162970786303492239600132550049201742650048373145073771981441552339904327181536444939149288761057756329361891049775423074250313308182514152914895919219661551636864353083344880327138955890997177865873607201987025177085510007216077310924925837721146236464012723799240140229285696662117343089529759962483045571973322362559913480868871300923473578935603064013248297782288013894186513636669215743659719766420617220624956937939883940941114562508793005737284255254984189131927157192734361609778874648520138918110800262092736255755338893221606252494008870018164413765447700182498962476671303804678650231921519049323121795453201488890789855408564536198298265861580033581233560723747849817008341011396168683597389300131646506066152821955628695253305606596704478196384304526928983076015494011593480964348753893425159470498464628102962183422667104659972982525003786764318946696583387586998889050015197923456855171412338455705839233118500771176062937957349244228354184764594579315349732740163687400785175787912910661701607414328244351724256235925962564798809780030520432868911922243283680988970865138695179597104266923655653005862423242896822161612478362006211816780513505315544323771327651624304640160904844612292998161752268345457336765856037462252110577501723735733863859714047977995812527143031263697182090610248339231853802437426409458158706076267160356326019558920818359576705072932827155848651542795219144853040731290995005344167264566734673664294163237980316860270940211264200697943641092673881324700397633253026347823833166188415961247758580500725803317494613752470186732842469416252515163042070016952556093441584224193875592830974200982734540000993541610799220513624673396554181335787447646769312331831275841092200492010605377340405146122611840350957318917712788569019937194853323814470914160453730833297716209257117184283678951218758460178032397411035545251521523984890394715613210388890806631364698570898172600697006512522284533708701562646999803237487438752374137115485901708448590511428334229358310892475279579196176151335181990751214667445436885759418886621547312084159723509336481979054610578232433209866375669679583236813601578862355340344954221214386882232948787922912884443612346648839063696978464810037478197274146959977223039695047328927349643977698283208962771069680132231666643182565289200542455576093726237602108370881702571415647290188100660390766335455385885536621044444179664179651037184819678819038663306047999825527513666422463779532819270766979014265946335733232209025632930294852724669562891271783898869070345745391849684012606407190878131067374245033286789392944508460490733882611199025941762693043352841260626175408102769777265783918902207700979099341204729392708935305294612272289211282203165649251279737557091404629759589509548591637348750986758363960271763583163487948368102767980348835331303238416034825299023405974945038021671646614734660290781451001282251326830941224434250022896405737686336679294022088396016057232684608506668019861936225804150650236503320951455347651559927982044236601496037572809105356796627251633799113320572969268965619764719040033175918464100889417632545034577819200958740344263279420354065430175454355486378807294414385829124587715015306521705619231624704115909311992699392281638021474207539964775219113437753582838557803630963343334363202388180978551365698577234662494048096969899490054196768612152140251074324039857673266333558968833125962338271452220827659180384452458947008857018018736442964014543449463965919763202353504660028327402144189237676173883855586511951627339766836502056759429698301441038137791630492071959883343777357762476763991163812425687845623397809824489786827356653631830658552534791766518913048148857009059527373744663442910088223753593994268862321435671475784442370619359908494421149350615094324423667082863078639202616329242999173654018765083397921402451814465996302477860943277639326200000435137975384052519478804397044303722852360761140239290760227900172904074062829515937258868364868065398003139576814094193301892765583767514923458478347699191036775371119403588398857435458818361048434485990553871392641944301913035542218529723498988649123213137361396290404237223802744870508140450236698804020682747532816688431341621557911583817283669640051657593699348168697630800392920259018026719222389170849065726446861396287677328775649354689490340288026902278369277668557955771796789937355005273928669165607047902268905869717336009218436896623284496950707171166967078777127180157366786162032150336429751351685407946410036191454991450605657079332564222767499183253643190878222571673700982518764659258370243293520079390900018024067224060614341178963979824097301295320019867204467323074783388541620395432550980829596737809999352008001526667313557099836511106671966792205155232416764014831122299515477322361899945487779672528967532688070768844371809023423578924264175520804048111346586119053303171395952860161033522144909701332285701802015069377770421337491369072077095793392206649617368806522735171197122646840528662815218908311314018418916318778592543925028541477953865026479652733418094770827970264766589536974538806303119764024063665246820811854451824544108588006144331448358970308505925803479814249787597279582019761916914559920842294173709119168376021049201252140533668498389748149839032318807382663550660436275485543050779522411092598705813597726696846057124546178029613922619439637940683316476339706298799999760296665908908085881323981706185989411500330297268203978674672121366551396399039073600027319159196059994911425815653150482556677741340540716970786338704636201476960806628021688095663145270318490572288827341903863141944549436441178868678987915262071069894974255916807157091911115974526806932608867251607925923580052506491707054943698837493033941884332254111143335638039891811510135875823415648258085781660827250378346878284564494715578290138383122889532037516930655726254113055998946270035567200082169002158287257021974246201287258732264990708424192072929420566541580926840903491400938470110846409256692898779457427502032994984132006025305536308652683437761889881873228219766169741438994483847076933562724833034431926228265161024921099615119174455043933526875888483030994405949695276008203539588647918018882698018945174505829095362530269640400122145274410770249349933484558306483234294593617941660804598004657322185040513944538939716121399682729381351607229278146819102080685298121573404801228451393786150455383888235148626719624455926058188617089356004410900172974835656785671160948517691743979844747151363611809068820849800899424483547286207777876499331168943796768098997790975599125956846128715859418792725782552586654462119105458269577260620442231258783642457256247804905043061829090811831185243316176758793010215237543855117982107312103454787083340329154036793952355332254420510835590410877363705204742398281699884345498068536072710653623593626102818782106384770172112836039802670195782200941584118193574962694734484691915783829868225671113066508539129500555865069098137010159897995445678590305197105326669699396999257399925491944736443451844746277575491461627048186377883040314768975951607227385495689328907626288033792544367715712158265209914979381198536425390077439024113658251163281636223468824166145412585961381336664914187948444543810849697654243014914250964534904204667020553806630679057129264802853271311986298329900205788003044848466692075400234768646834616784464422518176654717055130028034188806710863927795932385153141163532183985413335937931221991508510835174749138183065119351682152000178809744228972698293206940085780238844447345331473112393358197463668765172248300702531605948514263070173734896546045999842668710474010829975115321683687646938416550830594568053457525590525618742413930501035803104766114587893661177443009145043441831168624126120584023833451430676797418523513924363125451129107982094571665000420016356386885864158749383903800140058864150017636752318623180731111605310268835402234629606730460244790551528810217184761284562083324384408652798167744661389756833834878644487132310374984435957936436076835704609137065583894158782065486559179965158743820486618149317407895183315873490813579217000762902627622962819756034188170958342009201848025380724004169041232225023139176750252126994258943784460251788030797400514105514772364386943779194463671645697701848009495873426229377189581067928242229006975346020181737030250674980450056609406131361055105821929335204129816269615690815121945647868695261946058309437415547757071394099830627605454829340686861222480284827289771598929399968746044084672947787055771438185650105210095259398618881311747280529482004624953414768835346191712740728600427851936881316877948879375155342689435192843124469833926033536923145295009348140974103416106356431775982261517854688888807125918337841273798191116618367210231295572908211588778315124120666264584004683159219139657775130093960414973810509097766648846770810353272707359995039833002135381173486643465794618068675705915877623430264348418767864839807675088870552805768989103993214595528482656791634475614994382947732435684488298923554157910769662255521072840142710885640571635640732651058889348467645365877274499330839327820836529924750409606085325155105488492418508207188126582699377742737435075267780681736315113027770534677528457763874333282864182582382083878081497256299942868107214392300129802031490056669843134003152188088033190817220288369074477114432237211456320735401014221397890470601784650484469701691743540347445831340900012607504412266923206787141087066196536506708696323532141940592853681561792955432622170216308835643968614842794332237027521793375662123405759998850762265715084434969399177827554986745739001630518012633906157627243599778439521533373696217805182104373669416217084333391370961228219984582743339492235258389398260888200136150111536033666382867317206627674395873283318788651575386212076759029643378969553129402395411023994717969086922692863102950936487772302389616087550471796865214887589183537541213640544756169286179483244934781811896763476276353296302665993744309188853448459132204884260602350635058404850615881114592867383990721231849679345650966915379057464207556663509706195335735141634519445292019087120515738345285685321281520260016871278706105492263625539749797895518262098864104301447569472543184362013886545016900660973954068296175214491876335074951331742800907452185677102508587302655996737936952346587478635635849999395974434902004194183181749015424591812233776981260054499225248269507253215239710364010715056526042201234204517938775249646007881721590570034127323166709175615030033625677571615995657526644512757514607086403985040234860308837932342599525689248938025660516604035591327278577999020853425578046072081211280132529410376811707441268700504259287427286253270997418990672020498473428484258380989390180853321047639969390805694880434771470352105116327162894038413206725589350869870142891103470079236498772876294157449417852004435009706843839655758993001070791000819101029609107212332021496427776754591417999760497904676995633147232502146415083143798160941320137456941788995060403326606352913509195767387100606644572597570693898987307710663908645409491442629697104989094588433741350430680931899096619854341568771517844937043878293469553579137698209608011104475393255443763436471829634873236033218181378722531613082149823304597894218858406332741353070998380021816465688913887894065847146504706429379740945290070787218885066026150365706729172787592687998079552032503622497062724097099796610350176397745827623397234341352795445666274080138486873738868859380533849817917559598188495352807811452578720717173240558455236447810454529175415762291144710220588745285684295298927675799724514526801344531759016386725193534602098620939863664698937478039790089467485680220569341924803346621425994252532959459103326852642662054968021944106787891702471684791975622331311842547712166401649506437167672584616624168110412152887230007973694818180393667959918317437278577605830932815903161319427250172754994323888601597891436115882182292454672922263174810568313193196982278124808588581699858221451320984227887675041408500789324948902562284753418268858819253163629278837074983042438912830797681549367721281386182944058541589341121546655421619357825671663166957991844829005086541819320288502774332026346221086875766724857771915211653404531191773909257364903886820063358904050939155846189346223653358115700508609557234846971764548988951892490328804236541677632668951625919991514504147217546049219126163454732714434749788751419906014892723337666983954123283654374266912910773933021187350578237796108442024265141760537568347154987243604822355788323068084673428072402044641452487152621002369805859367348040774980179796974596761548320189888184244274703352270466422294745936861226901145892422011416516958079007437703808405705659932633844618413646941529990978066428671272225596751036372298197208070294000839755569287546607069985475507530438181285745009476376234851350939066291983542479242554943413013818805269753261492457402848582749979446235278073573660923364335631828262568904456274137414199801229521222426775696573785115010260770335417477065011916154600250214729207489684683928663460958345975413830303280020362976456373263562197559667086181129953422521159087240342125362424979686324038165282422008431169000744154555512008970168828369162400582914760465587802274489913354079450027105234585615033994870513010675298973068800683828358345095455868405877196504444758336717042722415048099859487186060025414584902236038996810772959780001818608506457448609621186739913075435220488540522814917096225841900304559143136226031024180811094180716720805410195719153677552810084130836320371932522797244425582696579752456258017727362467675813350457934263749525961537019897925397384758042754186903527843939537327028742733386941996189633964095529564649939825030434221969503369123375967222435485306112080187006138207443951671402000324687391342257737110418701549074987627059719670812926365175386977612531211368676520166286107809183707368361364337035907178938990332608824766831686168205526883195895966706941195746052704698661089883525941716014586375152180618648262367929464735439285444771742671963990820629941214070422952759314651051404127572478558922692253390289649224144864858269766219117030174981991045613897514382970712637693733144823379036772382974271043561421450453511748330348502767470536800317004111381420309721495059328983040100798779164397103231594491493275885256290370130801052746903322651832381340944541679502579720775650060263883348256877700294453964985184061236804854278285476419269172440317029762886333894424676418611337911719092240475302637570433994619300765384906758857902989681075330188406016530555035290626178893409190697888596307776783936941087724290802108863046908861008035816490173107603472571563445771098644067840193966480721266726428858684780940948173914215986235729795864460827562050337625079804310382374173897348848254971304759315544005131876850891698829081020289562937865027570433000620451271555408457713865392372518899705765857890005070540973575641654287630045062918351172218979950110945716944156216308525723215624052280516225469432856337889841060631063512946079667706622887122276338486147582427803490637378808018723501807797407432289902525942170751916714444214458292351035066943314263000131498486660851513287941027377924486177805816456620733062403315427520626365204936566550953323750723305351903382623214933220115313600225906322257882718691033984724745489659931948942211208716303711229265219239564133172164393064786407005745789081417117200092817306194859913995226631962710142302685837750147793477291710024341183038524872598570638043366877391785118470979047490527921309785986214784942546932904093851082726767388685452862103893928972676449176363593621250407190705214969184390188051481200034063385891544117851787123703591403666410664164814132852804750955751047479105487966729343324833055615897090489004826454316635275076966404783621780754794235246671087740265683468992913664295947615504289606174202269367604304922460101879017205385167569019615308846119262413146273732194612649391389175705066151932324443417335215204018779583744236384790342988640238343139816119684805452739400494826249400609199172558277434213393532221890640905761608605568392767971407680320415130506097962279020364664447337019060914374076855996986485481976388688931685923510747158472134273097709226897122505595834335318156014799253587649966337539703407027100960002064362221830029208787810416200061910188035997591585096521359200791156550348475519897313755484072597774628829649501473691639576558869908830654869426561161972498641506704399867916751937488039032777728409981473214652492308299769835219442331480366483316966079338577256074053723069066965300633366706208813955100351678928395633058176336560083337679100209539219460434168299733664462842507674623160773644108316527784778309858833054137109073559894806077941377804468445113693455502847148090589576454212150988893855441532894168166633908853471543113354120703293694941197064378601686621332602810219139943163499961988058123709760648319618615551396565320837137425024398491920437115961422870859607346661053931991754534321130046738720252283496872549903720737270834825669448731908564032750454554986522847462895169881542972212155321045436639853593837815484154208585917818724546318432188465104287504276795745160321140121240503282195618410843501222881717177522446493932833919584605885510104174921681385894179292294272674983740527018306963111994336622090329819623949965812834965510446552473712482745195857811839527951117585658073749581636936819974329845756569159934619829186568047790648674430870281791253353717097306700453233667301977292147691917293505572589814269950217943269390547755293982745040536144692883593129712363085936072776900789692523072875902543065142883586789024531930914036552799145360646699027915259518032384185950543044903282875644205390617849262587024546710928729228475856894950126584430394890513175526029091306956863122836643255146446613215659045571821298140275182787795945124212025205938084554800552585781343940195953867227056339676516476784044110023669985347423493789675387883795423607316141678327470926746400672551101034821810306614452186645348291613636616137026353229521882985226037515136660055414486458897427869150879438221345665310412854400414586634574656636431724076023621034812920508225753796166802879619756369191292799153837703199952121713382217123423177755566288229284546687387652514027650881907224972413255926998387814306990622827210995627232570304366009904083383918784661627120052020162605608141451144933248456155355501933471775636196414663381509578743733681329459344535616769986091812005741182088562646906251821732539432845582337202021182579035760976224200330681538461720772686709249126992964201637981296165924618464391285292320801324423491181954273460600173491613699220882180951256484449752996509870192416496215278588365031189879584998566050208394342320692302977454053062449271005895129480461277438112535282539378844504303932077090657877565974100049982963962097114499705115022955005570105526533645695352842165809558841718287438775778550209200262468742071706901010433628496102599754087157493666924446891186579198059105606480316504024565080701322465295354331750235689638642134526251924274156257464983809712268824238899939210182896081563951270660072640343605436401755879880542047051132375846692174686413373034561115365163377229672482679018768222237999072909901851288742841181727618493297294660167284168413616709554359123935068347185996744315872922137081078137413439032933623090518385446758378512302525865566828199779043033757889449322045598861422161014722511853967975874437257862323195870670021357067344123823809967926616063292761580188677676942248982652846482693419741849185591284956135527259154816158193121778776242557052991657394227170622815511618606180963304627420360211936721003271879082137145029513698664261974235294075515084531558795014835513477337856105469421034278264759355491398620819336954522209428303469817291471763933070565024337121337616852868534065812305896731843820345959438754487253490163430765626406563078422680396065248358991643376302241054098852537645950366432669676253208776953565671469887805311626568863819142822933514964082245429103004265351551667814593540257142620515907509654011961356161247269393785224903922102705932364087749346271917362103934182282768807365979464844581632929804792466648825549402748049083226965661646497929268616445317669330109128879060825965281427173325659371581556122345291114252181962476220601579631891991715052583661662927802961222451334185942028174283302307393377962746316131095303224366587503163652385967345028496621141780341065152733391460585183808998471877543817575417906540114528538708439645934228870386367364365821682169112757727905674585375044554669583957509420794464874246013678793196472607519450713427610051419310498561075641541819972493273096279200513036332754404509979592253440182736406606757149287642827406929107070518132132372519203365806083852948377728284128364395723625838350571992766696335445586124473651637127014259191181856688704554497393436916812201456560033841163180898978911447929351946174503544582146944117999325585132021028822507002495983577576334023952854300242148161896716649993725344066319349636397309621229363185265693164916555468817827687118692498182502559445609283386017018317322518546121808013205401629799073152712458083892037668702665001885280731914462993131550508320954890757144928420491238816741158910514470214158736026634349109302283831653768976206384890768505690926224854663753611286688055991126517191580191755708058673855663701147337286603964581255830390015115465696416965192511922748718987262491915694278007203257648309382107805442053248938848751634174612645129338083382820200219436861781866290822651410041295719299974100608178704699522727154982618378509961535460344851880327104095028341463373779000759077219490118257950080915090024278393726865501986445630072121965790888970513740351102055395482532331609804951029058232550941973605349944996833339658313167056557325116523198750765647975433915709283755337300286235073986683311446888379667540846677359048235883310509612005593498186364668098610254051519581167894109156178852790060197831782437286398603936083933669734737614510473570438280225165365190577794243184839894019181618335480967043094045587527209421525972796019442449561451889254072253713010555379306770177200369249512029148956127855051277596455552484272740733254750284291729001646835103820073509356225141969227673841516992783318921281703061936094093952094839543246698612852895395267332432923535120407012275306275406482567015800266157637785147170090682028407333497162357365052941571777461297780754314326297388570606598955691550208954492875854625586729686174785291841626563250814021783855936440186652262102160043101565608024401621165790410693102436902851269283045429298276271147762487525936418814457547273315543327475506040777577690559547138549446706630494443094495794364166009068787248647622063108935419491428230863431739989224124346662845835553352572738848422080284989867389559223967369448219373993238452506987079257631724681851543647652914712984322669594146823729539511509148538021900482866318157494711225878125023138975574501054750167868190688177399646206322730291738825024408998844637617347116745047235984424956686785676700454918494606736151427271842727352093398640407763033439714587724100408506907395275114406213764295326044088175981753790398457305916749030828711186795519835096261557039073907915026798530471674192323141670881069341879053501762341182417768975118903607090292081514935169835581321234909751819224368185102443074134650321881546284727968028239868494620059406887584106465404457090279709181368249858499254139113296313599887282690400004212328982232522807899933124246117049804372055736668351060371001275708723819383162734552197836234590748737887084465331001516694080612013742490215015294124686939982801455744964989851878580621293141418493811264958366082934727363673090374579824967187007049264578166900983946841711287069731052883013065638547169416316019268499929183243313334857728348595993767156374477864570876075433500820708076968284212015212682644120193209637111850839550684632855398254688509067346262424889219541047777205668940896530702700912967212284291439902765486653346657398527516236231752599467491079859678313310008021484176639985940507405646873504562689821305613369457434457395545841979080142218161733350660728313092754340971677441187225369801650508387516889118142022526581591645378897796438670436591238592254042465629476283841966347881282241625375092163441613688389216969413045723554420475725836078207670884774831395060481526754131635210926335219629920596087937600507505247223398754641752070722685193715706820966552266599397899630339765976834576294608353927579165622731472698213405526975039516722023339019079584846746361254672278485824509970266629653772405539427742444625593258466940805741154918962265494024018699422238516558063628378661319514319430239981559812220102452304094565701391289994261402570954431490423219596399472588364262901683171835747574214200435322007028811212097434061072478003642937072750132945640886966593815658557177758536354914573800777467528890096950687691097891437499239612159536604071707600841379337699685800555423670172533419354259298725132593266385031641117382967048321682852838582684376796542815312930620713973884984129714420098021558969840201724371582787116572382609831336696402514623457973308138981043506082689933033030096439481096718910725622285938772706658217850574615696305397493424299844538546593141810877057609285883892584893827022883318400383769719572143469542288277884426610432180349764464177642408627374422565602261283917322064846537356889076233391040494310380543736017481597432163875812005667147452778924904104346644346895289816677867566761768731654236764753383726897365005925989008985875809440709776951882147091168837014308400510442117583911697965713312736857082706896879873542946325838423603625349080168281900843095017817881624348860718259059653793926513000501265090789194769610853567383868833400381423802863126280812796336061840653433712069275272019795513439060949832589011348144696202836364813376730372413324182945300603901797073549281696984533682781234417893485251090536796926375805432799866322006415380707487521174872018082933721124174320049867384322337408834649922096456194719239773115639813133488225400329017016953380617246682980653047930129407163032588722402722916819464098868748160176404102391727427775288608862599275435442896836607349430672888327332090298968298123717356563613584910049128930437801380006169634147188408967653070417677618741752377781229120298474277786376056534714622845286375097903721558275336688542004170018375727256508360964295913388055154430804721329148452162879728494696780803117939818284287707547467344450607271427185470651789052254576457690974027148328194432425951359980862884659507409084515444964213282342630310170463597404075297674439530503455349415714616414233426142504049984060792314002455078469812999097974588228875806117817967062425885344709962159335278710823544487815129506811415141739967120858635542540818975249224065307065626421615756447324425157911147296962565204111515544861287567461425381739259643618544390704256305868742245731893375476178115892084514940554858988560068856683819660642243633171431985243537224722720414388945122020139785986647408780013131767395952666141246528812721300285788476959483787883442099692156442201091329355856158808913856085757112929639569193282469680069050329643223456279564524788760339716772638481027448574588011167872696125411853382117984378338100313804245057659788034656102938403238772554975335690532932192505911446483546814294071817268937946097763795310506463256866744230692008704885345630152749019662888703611876641367111361134538886330360227915474213371971254141756356589616189309056734036755908300061044832463167685075725632099198246114151051119675903816346381818804880814855182827746133595878434768664401364592271578476421335674347726982445301465307947187709876564459062746055314779039563468197774577186333561683572604263375931768943019119397402025662749948677647604851257134870798596114689854552371722500435801067748793503805422104094970826105605110085643261810032397390221568598828859337654027833855885884463147694854322153761263769550100972697626933611601726080466963090144090640032006478674457167399222985188474581522698491610500173957299175434568683814552632876287749285111664564510491166076339904462246958438989123941476145874957992740989398102724753165285587624152776529975689549601495058677454182042204257402820093028676743950703008152835922219465234415313250169293904337545621633684696150875070378919661645398403702947401899709581209285517242145703193678698238304659103829407446800611431433924581701947741796295249122306775970683108634225334101508373918188565661999258155594364881230602345332183734679949250976346490584833595658363239804476181259105777367583902558061295448444301057799702975303928312310444655183547085322925365822662995266704012953163038067009832365502987506268021794616504672635503888683564525003466041404309480105341866709079113146072744324919865430087826882462140659721253290966058832398320142898812243366012805610365557498711224112519968784731276451204660706838044122653793236505021767323495312770864082212477397132185339275231556185834237796749609069336496264490040143917114232924644066902774390826715128440303159427095937906422533290446529514022984140365588651170355792873217619562928538830210362302027150913395679512301514469036611720723786684963468271497624303483320662996615499167541044082704383390623419587252007799143620457306208445719361900693843612831119125917071350828578369147529860189269868754954912396255058571187576064792533081900403659369470678373067117182698607198241398249859185071100014549846261664026149274558724990664378908398672274395774869930031541064471433411505496822411082811925240366821364775923316370238214269106749622590430970150868638127377414552019173034833782855485050038414760190057511985670841347601222650000892252848116425025868138619912313084248402087537922045028947698479549543213287546600231177783329295253072666918544839095569351496397832969355141465602835550560125738467802679177487066537793049075686550297575509467490617224638126555614256573136170100414854189062320257974558036812315953113147251260863107634190363861014638014005382952625155456831935344644202495679678203426103059711022268599572719064301554882044448756832378268137224714284507327337523450559128204341040063231345128556702027695560506473022654942663286017498675924972021673388688872775330658376313151232112804715837458726635477100551572326735519793060386645930809165053134513811922827692997607987006634051786903589121887525509379856893366342839578072876529272482430370363293927148118367030130445032790133434097432713067932385658917095663037549403708384032703451765249667263026870885944511304487635293531121076660903778608542059979624800242392427426698157617590227401541172926128239636681300805378982138926312013993117999405984680445961314461918569967854934039542924609948367926001655840759218159650187893622920650565170962054307840031125964844192284615198745542424487100268498307258594984732064268284609126452879414863954892304746532677216765805189371023360613001316393582501563946949841335748114669754009000155791413166979422333886248930962204967084884156983135071831187937011973097000648012051416165601412337923000447411344442634471237342668982357871233847725460020150159126715086456996631366295732640663412735457309630666266112415513302242052302885736576483952577801563421173958976332311147954431184344442703884737748652484754034859674038679758182229154613347321152133292825029888963108943228580725515697510824046913026347781671790499323662022598074554345888059518314502998542926687612685728090180828073129685977007412328388562517302401302877174522388581745252953145904454429128902816265170933863095023951804037298825104559071961644529497444829034710336498635071099981813749838187971315406026396040666226070795027259512378054467716929104165906386515895268412439781614937397938055539460481945650742816212752562965884455473958543092044610387277753335233867912720861830385219299916272995083268584182263626363779681834151404285528374615591302388929064073538778711048443639709544019129911489638536133235761716115408779089357446612368738465043250539888360041390182753451010096199218428198545560314051974217938011322323196934427880047310713581835976559115966569079744293325158829652411198005564021317690379045772640956149272677848378228905188151879373345302696564437988062437367346308014348686040682665218371857738677581336387942064269442792072779719921827640255632523712215147383545719705526832131042510055854648524707867733808289922193889119404787444671294919732978065750430870347032196081251503965952248865204344407752630084772252051849991012969755645344866580018860907463291132205581460485014483183078419475339903339084280599406525018045730892221414730635408835402327013040571757444111301040404124590281051932811707063405550063985767584504439486109946165066877157530345498681576812773942135263459161121648522450855418771123016718205978397647506109940217649935756023446221722243200460080266747424696046943105321175823270320957850906950886732774052113385144480207746779632652514903392524211479738133076437226328128067099259270648910207397919208388416005466360850849620244798922123537802225491776548294965590441574924909904406564063545743411385028710842613511151556135006340369318212400518474444463126451658859804055332629612302957969279150795562070764192878190968894927249347760884012791102483203798551538115643095011139019562045891845816309121077881960223319301256385863818872559990794701269824366512105278502945634927500520704422544429442039556817054007635337630029995250209922882981081192435386670882327092622831172876028695613511320909047382069126103793268557795273928843314797015210357483351353170026765846386598971897291764861510222258084304808116381441968737179140770048937025517325073225858096494733646052055509973375386840484931888053987162244114750720567026627473086932735082303674075860571616738010872921832486973987993383519657778494483727883253277133663413477521767059582131900490178329646010084573442133867419659791471630033809448810527888317935299568813848734060708539660531737167392983851193446377533176704345644154451747418958278301253270911546958320313157676937424759604892052992377831050549726294741594650445915967452188945621869674858071455258861785939791086727773312522813896958841724426300495346347982873260763669054165375286850088674248185277270674496645100983512214351122607009883823144297635580914475802615046677496384889834983972892394419224320526911223029639497312808569388199392413877138470807277943742625308087200701140301112782622340627336925614994799647486041397744259479557379906246993785391859070417546946880695315613093969285167610794346248383612371491002795838966805837404708816051970217559336312677490446546830264355861662071126330091566519821007642363245795111554561705371156441448790798443209296680496560008218959619822030096207861606708221048565272489826237311277822489913658821149944360330599414665209827942102850144072214507427380432720535897183996960316057315647520181404583941023036227269598664471695045574036438264896753696625942743443872023956705834195155856954173477022799301642539373107282655849946242519573916150961064056424114105931122992064780439131205033569298915183899145849920799459850906472874589538189491517475531227896848690035261237312933267561617017601357839229605292493960631791368851392731685464100793449755560913722845326057365333123182429442404248901995500521016196133485113244015767770696372099920395990422101531458946814250426797101513119785972159486504896910278026455076635523141314132484077757810389236857161881966447452874153717892522329849017005207731212830943891362428617539632364689657140433206578573977976080390773094782476875346418084968789472802642255266346753919924766278199269069210322978910357546288969497168378572330648715610985540727456214410587883105363574689169712666993460989979660420858099892395914333497457438746796361781832121927216938127059908227097424376057751650563279229190206899576021922881518672307253482779104425584292087248955206242252888157083774958322385800058124547252772779294045235190070947488650632482022640971169220540239938992218873929291755363742011809345365025400302725732502383805528192645825344810251095374998552735548566421541358948716007305975886784759989489331748327062959998214594454614013633285930161039771750555741735844964666523499456189938716944236612250435981723157186535335519679210303790607409396046096127560108337315832551713539698140919878231337098476964211214860031600662332084649916517931442255418013161116750587383413505312093472414572949209116824954704384587091192260730402631133602020159952699270199359356171321358566983193012564417594723878254803583642507691862247773835267029146318218307516946536301707658840772894990879117461111281574327620197609042580284110697474066598266353708506817770460524084781082806568080859014136147690924920244569764830717241605582581413808994250076236754073600439572683640758678436436432057631251547031831544376395626250255649814342143898247506656054317719025401875281817073703895622863734173197919007153240489575459485769296697965792775757630637652420318899598525812764266804863858587192883278138043125152811312367618637545736776315296313246328705994776121209402686259145159585343725645325984379659983730937488493784865962079209550128347765166594662657861359854026235726397688969801317254921124937771730571287382184294616083253741840299145682196424378084624474272860104660278148409357604126391113970171848804947484880139390955341387073264021629458252533836291898407300486304318091469826278307366515504958632917607166016703480517943592536526528191168233987979691522556936602077938261910092071945322939154796713897397544370115837434814800418949897638608471124529957765132608300862444948918987526995735543407073710842913788898137999643165690164450249576595367607116096416122863024041225856406005539616558881887193967692431958163542237555935906382378796765034977444760421445923051316147190790570430183442178849567264008359283896743448878460289676166418849445596786459704288817262495006493699302753963626489222774095866152243891326154581285399371238101186026660157068574349731095639010041536292206955919838169941274994386957829179606328178075378131227761849971919390828236953744869678748671851412157576154547445513140575443517120136014566356273076179957673528659587282477842232869205462294571228006059454923515906814467433759279335925298351415620658890117292065829576864240940888179250735718952739564705571725857563047443797053737447538865990222744274944527669452129888051873428817042355021775297683167229953383498256183517483229637818971490466219053796924826079810310212007667230763312553716263394967061664060447893971739172245692396439308810038272910926709978666703227815863389090356988680705893515024503722468896002127187135187235019179127095466564988516412758434014127284522965674911691126488450136046191943548371645806820499633152143892735778631361784634479218919962363285093113411214042448234030366758558881942314355030285569163305097296730299899262722705107540343380996457816940224788240439200838910689102226451498021105206893983819328242682073988055188457090902931973626569086469841582379871210020468960739692433248837610358116877712963817389984778664366462024062213554370025656130995448704393536176033055649871544271254736828765963237760365378175175616633746148528354497969523235504235588464724868087420772980931523242285490286388459881236955952299766836601355356965616859315071049676202850097140299763336035898340695518277905646072474298785443364077496759096701006920099304802427957260803101304705308198542400052486507554876412794913701415762194450407215048778991878313283715394006003246053291165392379781486477543656956164610851389136842253081602774375347415494256897676926814734630142824390628876363182396599440842255776308389811951388247057002783286107794890413557760050989719820773294587494550103059650665117946880050754053728132557395799991495117393164459050770207748888434244819745946599654375089031832323518126418072705342392109001393505507407384836520907862916537215267679331661874562359898584409749464690906202646220041067759221360729048702667777078634967533210656914349143570496365147811734451226050234806802038158897474455813974141873209138059402319546965466094074405562028528451162667804274309282343743474363960639306226664407755198312761993379527999574333536467752659134550817649630597165389277834709210520186235011964731620010642812281652162431569196764457330109886015693109175575406639058892626981454031692496661519984116911795509777034260107999195737123308248161484301751321442565317017854447779558777818239160349216451638734931544110655788391354680867455712223381674817337525253267564372310547912235086676127033582612397189611418438236701289615406327851551216246258488703376169697382553887515149294355228749158734894809963707217998356565663801960892223260986669957596020856905831878656394985026808237248483908298533085843129699742170366138331807005195739239069912382627738150411397139281493814953093373427784789256508124492713967215935742342991427975690580401074985235619919157042541028710008176539369053405316291303243911602029315882049636734709698963658387544063110343143731651019995672098101644454562546539707422565730318911606854730030444090055285104776931792921539116461242662884523964126993939694344162926430758916906672388127600590981329831801640947643258396513021096329996463672601184626312404464662199544748405506514047480370069290369181694732870382472518055771987581982311219438023371696902124338981023350217265990466619068998924228436746484089348568597013112270629234985273972337128455912132294769513835911016123136124195368358807463288768029287151944888439487815516035870837156087510904019127763087638610625585639417796270650758936645105519531237782305264878940974986417994491632636018690332106814024322872571833835382557012706339606061956591664777454877559421831034846852051820643877293573638197212982912394131991957503623127668347826091617604236264470328096716394510927632368387908270810695172460428228767318622151557802441698617535533193727771171552608737195924802292714739524067296314879045248563594655916753865358990090445416374040684593350204721464592313135910858465422651636283596247898088889017399928748383452008647221681167839024139328826981090030092416603612583709197448645036605466753847621846278776996892947792635844607154102049697654701132470700339172558264502542890725148103979837630657535336518657525006269771802902183386960999542789816263405822926079665034062948154360637820452132942032336407325854732234081436656143163307222602944474762373152223192724559001597019663791376740971344755388973856572402261475619614622785784820575228227696888112874510197978780377350062528912443841959012567054444904118305831253307318217777225861167611287456148406253150115233174210510595333401132646251101012433959477844151927145378994917735864185985808171263154637681031154112704867865683785547502173754141313241453342388919416828927613834811603889237497072021411676540611375891877038285881958269143362901689764860527737369106707773665168081845202343929823952128621669743721930435009713739884334622865360261355368687388150643367238124386969764498676074127662001829799671216944243863118998830788799146299192320410338947662436019496608274749652173875760300999503450342262447603477021595442086112167306494013494262897502390685898803231393966057402382573569806393225991571238274521291482767118505954805330674516027443354198563591974802345478644820092622183873626602787639792586175723271575674710480865550270481730377973602761122118906125333642831680405601130535565849291192782607104748941126045005315025610788329683189516946867763269635338950468662522972919224299883511402043563577819377544351359052958945005016960267164523007086274459799361556877780044052019550786733005501559927596580239396946633731343488966636441651628161450444279944742584637315889438320578015310100268840210240904651638951672166289563878603181975217262283143860785035710731460614084155820669306532637055211882543079359170792953449195583156662578322429770929911324187587369603791473604911558161288676327923186201716009818189523646680573888820123793829960713641957544953854710594730831258704146376544474918682458640543177782663082799144047403281978234516349901802656041764287170984059482870400114800664624618714562983339792386914848213971949231233446897495167557176546121799910252856744996028428136663786859335728680537828568310605275926806443900901682198429368991290488030129448710157350652535384311069798194278330512807615944560121538608074327551138529682198717019718703502960371197418470502534788986841998569264433026735705801951856146876393996580948874872920054508326325583744974241122515245690563634606196890178235633004113419134443395281662546031537816199384751374298892163177956828127502006944385204890355123854970831207720644906243885275106129962806540773079106341624851621787309344929274858580014308827764866532679714871823207879611551397566976078041219177088126453691985691772726467222028375753378524192521682929799467821322082125404799971553835850662786249593298125034333003345798356884831683622106873160279072195235087122795303484101589512564147942952254037659489949949293792669696524892820891692193260778278310922348307122243168828388874763505569381244127773034521630017460185694642414442498251075233355071307742605054548070437781474952691249698234477913183921498120050782978889143597823834446897235827138450917459354928645516386338936804530648445141222127754872628465585450610386539103961973691864012057210015066026624774183498683656917281027712553599418988116899028382316035084100662882810658698498384170637107862190191229346399158829305323512121668149585872565418267936469245033457460737934568573540842334293473553480889781128884353514968145149675370537557236910190246861044634430999933977314836496396749844049191517214133039483185916986359964488649923435997200640245400037203536202890064152936728834251895410362332189296375240064494482373866290456421494666115240370546022154131471890589600044475386362998776900223251286045346109186632958728742097372445510392049169686079823934877411608458364714987895533908353077248770196166328057474720034240575408455231109816949447761079454435316948023170524334540055402941849433798379861196589345033849682859301711507230230455227262965169693153565035336930084159445979325755697567579516140923908912282457461600003953427740725707155299797327203329969104642668025034648086209825050387756494930147424754111669205629178666005623305162153129155161135527233697833444050978288205627696180493313007118847214481725113739352087878570780875681510611631538957576082235685648105010928102069554145731066060655715088564713270516010727854244871593193006391818963469290787989696910931158536890534992192517337239078167265792265678126482258248091783266113116889726948867797250889792304265916357216900906134034645444145042086740869473949378166022611516767065538282951168851543907955146393862310574974154115176989003372248237437409507826662197376548779641848784964101913604616782409758504021914409396928417558775499061829596174044122648293868051049666114692218160934180342360453196367220944723741435922476096366648252960608795646200819046206401403583720104033321857762120529479066198190368461866770788171991906576671682891585342527836993486560012948839566217289992956636434815812768335574261854174999993556228511569337796433623603345073391847951387782889844889089129222054978693676208380590998462091454163260961497131007230024315815002431264685018853288193491798112705524112185959938769923637048856380073885311050613603167553404626314592746448840752632639145868795967845311597422512768171903207499435014569236167021134055778906622857446588739021919453588162032994598199687248541714941040764739843140783268012052586188075450719056486902799707198950446898281822955815028228959441444058538112431599622776038592023841229771905514299400729584319053637699771039213381003534279388543214393198856837967387207058580421886640450435859118479721080248341381203783580938996628935942546004256423165137691551007988358141738597745787632589471049003207712393424970092976927428252311251514204583463905713163423153411537747702027104290182179003283400593887006459840791867948609255835663641460134781449562781514738893952407210462028526310399929217888140759467232551837003629664626792019744848859563395683496012606220913423428714711927738118126555520488429493883924378898061753426816700838236319227007913756395823586692349542920197699616627354589915392864906723463839739142555467205556101740571626575113251347375525057389845272586821179936308908217306802744001746001660878849362025136727620858638124475662696834255280368425200375830786026820711984958462828257617733874147134256941181181008624158170256505002046665027709266517279948975162087095744908806898958825115445666220868880893568607681927133665882922576119394466546192276434828482510273276610667132697890471734874404905731343060106538919035185083605774178722969539035881782968100262563791294932247350392596157335181377495893328321135500367084467926805464757194839073018170234498441629002961860719151705201914581717401395003794435285988151410421962944178813599535227322014166221992181893506492606298617112020056441696701039087647575435728004761086998286702445273110453566157308461547975963825652916268884327179228825897440880898212729772849728274367903631387520058803769992843518013588389338609395820572781424815112733904628988606531788705272060671753722207628744872058124108580846472695168527538536014608493717059590761407689945873455749459425070187152835984133049417016860012692969612030567951706174321736541600407483342497829963242256017843440442540747345522852331313846265091897390712458046199400027633752095043889212252336786661433979235374538070380286409241881752916941707586940762645437853469131215046383090302478099853072534988189474952226842694970799301121877365874014468426412448546066273144733517194973023316404572295356734761091227385636264726460194469159874988435941983586732939914414428192989763451820154462823018955286538867380290606061569676905960375618022937151696345208397270311712371060025234537194354062209931968572056357446026784537552770238992109950690924120570615947337862396579345252045967273387856230138775768521422533214275368365973122090930077623201996936049408502856850531955319953950324757057103218367943541611512924606906725144068212224088147292466924601818367878683258271470063479583903712750534822681066553737549728676753749686653250252473821747872531622840516330261583158036851164154589324591208456840804340794996219857195358193579249738169043034459917004190992210489607707586908967137449592054799672727539068306005663398649541583481907162944738682692928579031849674047867449856973636246823864492116330602056940197429659934833881954887093428892310495572854925049748210539016118634178079509758836700881315960481113120687004969168345648123801034962962387934837572538044199758342513352325537336056654763110309472307644364356260151882060888312954565234609559777606596892630087705818754572194980551215296593057721891501496582480154523005303114199987682082530940312226849023982530724400211456382718591618415301714696013570746426172952635883193877792096422350266796869816883578122095250911657873121529160744076698487591323540115118090439219065581063396220792955731773206554204827217834533211417005397831974770917293247982926462003062104975994041819979620039880388949446506255093716809766367538932735999639584893028331102750570372220463929946917661800598273974500594921569140116580731979300303243157504742426116812302812264826969065701424745157126761404994722376871016335112531136292545980528719315434510014836867743339915553536903027385982369996242473193914308170391493825770640507500269419240279650301352849438023004537109341739820253865643677931945600828438060106145038985629378590427920127721176960609545557810967358246556371405662504213376930461413772532046898171076243852587736733449312636181808573924046919036898122836860328384160640805445413249384678127171121589919665339787943119123587913982218794566145788287986276540175885166318130010532653642166662799535332881873254743813060608427598334192375252669455372227371903717065580293141939838632412974579808364786878326982084883488692154032693108180663325462659359579830494174654362385746543591108141011923536969914162716456774114002707890891670952066882708823156910913944012975521124638209791204253634786426590450732577323785104552103467683053677287957913832912673179850541947408180483705934184504733383377875265440176594081086659393945190913733339253408688209655883324781818914929142298919688606924265011153011276742926556413573191897815550025619537575869627716572943479983997588087537987390885596800084627431570747924990791537755011892423114660574894214891461061198518843286079248446061982682372455834280636459795272294176715325343975001158588461346556836757658992805404367662414426730715889263158098755884699789150822542384154868979049567409363995150691456851818117739508722517502012174403387251457346223784475246663461457169706397888676297107040129565414479820518211860421684526074569723893978503263959256111974154914160684757762903262919470517721988134745716550741820376135218511791542440851415712999907994685184348369058204572670446591149620466320970539401232532455464589152803004378314073854722906019596181392638248286331022510179516718013014968689501829217202475985241251927548968523418212374420194810491875328484177707808647842723508600285536116335790166148109363382927152295232710589188571476517136457483384285302228468718881141813364581144921371858781685878332642974615478392361343771464865600171758194130761168120294691731240440403941819746849947330595805431431096289171094100585279234638105269745436576451056251878160946628252068497703458700230992315620199695541174463739050983782975819898132286868387615060325620211017436302872949723667168117102373160010568908196084583263180315990844899930907832584660024611634198683522999252963253476405571677979991282875980185660419179515241139415667606637323170256908210783060081594026730416761928497197618478146585390518814493655675337340164557557028083198865955788266592485509353471666163752591099188965604301491689011966471695075431280345034852097669218459321774732205884423773301317288185109307640958614700961695118792704177171335048739657751263815763953695523111809931648386030619275053033362417344562284008043627873294440993040489885572450149155079452388829265795495467656646879810128721757204510594190676302991428513540903522889038918691390027389165882984203427347157668089327897354562610693892492538218616701384251769794843190745601004114375458326358640730912997025964286904062223437686297019586347656445690973942597557913089277618701218388366287169798517407928779490585064783417839196280521486378552461583221273427084440334663992634681320311412714921058887512569848746445927417296378890394349794461764545264431998400894004439243454139498021488921264120707564064603518768144589428227828332225225386800891585737971686198577776130987043004821978119641217015614353733763989748501293417884866368709108905293274478944261466893340876878294342564024154969264020116116021862911192674771425333391945320909798373612237178643614269082834072737444285216556293295185993730619966358952632304301759879263008807085013313151493636890764001494681791368904394026795269725638860489184745815270436640155425491261474779929493827112727899109146896466544721377760465877490022024197473279808316047169549799343509049725405780592962951304954041900179681583455461300513353910239225502826557546799002399811707217472059165663615785213683241945794498468596658133270815843103552739874725118201047156503157369806648740188469053146485298109672611045552585415947661931566825311153676481813715268821416476868228801964266494106864114531302323685007110440874635457402169172157060334068714584153476846815961096870142358966289356465743038207516979834907495690762328970695329904467350838371382604164047099152412821494531525189614638653993687448220606242731341802589607906947795720688204226302784387499222050728228656438939007257780272416198364276682750082914870451051056481146634314273205704833662523061169794773174558899923171332676792020447775744346164236014268917773966820589445548112139525925803084034968253635610110677078936463774301429390214880651971949743376114190392112024454552233046623092552208344914056040065900657544722592364787615157383702728710073600928650578052539234168365376050822550410217299307114982995212672028280330407809317022372363204522555166866074083291243037941415438111246398231115637872635048003005399946185903854258084579455084940040754929296072416538863712943243487287995322431813384392658824850691168701327255053145597055214028429528326659066559482306534850230399336354498939199303197688841324944372528223845369748740008818631814242134313109034406844759273196310847988892130022261662739162934382365822127614497755556860650673067334159462064836276472324812648813512017373232178593527067661511698608719500660582328449721728726766644828291545405223462409305871362740470021061098828946643774913849242752973275515792043134494871111946384851321147236949977001294447025140277757609643339077433850133758059766261567376890263531305804778984325714211057389428154319363782132764092326069948990020934803137857849794357261597297350134201103238239431363769696623747181291502366882087882845056126599310357166994003939711550460878093143048595373070667549258935358320777750978258899822865089429060416339654304299244564152662073284967232429857163331621762810882665025809221106116008710460680900748169013073180356202293403373562397844569447723257758368205727826510988315627172420360272688388078049995136758734154522480873176308773252400715946534472600516748768659540937901541375712646172084738467940630244846857186535407779294106546063468953611321930495802648355310649205441014406814766035805672576583411794106914488585683628420977748553313100536005752415685172584453806880217399573743401707362834959875314866892710458265607763910128353194290210183905095076210062248613597949077725034587352056427805386939831995796890670064002901129947607383460640172245916426438776324260073903770710319577345987527318017251501137802553596664423649597861778307426756438805642598493134199081909792894520372448665205965123366827003774324629349400056121825122705585281367639043254904409336183274168703096472346635483359601438420945678288740611775296917680065677190906583189665823175591588527656092024459666420701534834795208737251328005768121182916199972601178301014513702215620075002160324427796437439682663832603462088937560549125083225136635810622796889519519718806726957087877313440756832168567460015545850107473537378646279699299118260771323702717026448624328082001363769996553100283956257187879962161776458896453475389136032055610697486059925302399863944178898064327998124874757943367184114675493328346127114276749615405828105166347289879211190499112144501867814256854295649907152668473361013327646678233170763010156842997141933097098380848343785433473634792707408817403900176923518570672118338218874414772392260332547733672913679925530320466062866848781747200981057016032498108015106969607438328318271101301744048515825444531374305261459675481951923663974381847208411674531252091416775583480595105988730142422134536044245268589340452571913351709767966440869142319073544114399476484782776288998533195824292189784054711061862188565491961382542589468121504310206046935383019478712867005514860852870755196522199074580084896624170515736027326263493612488385577755338997334445777825793547190179868978508577719651257091996375272982744908231590945212518580396750552854483092809088321970230971735191711068305183381487079712113604317504568303316548350130641626893626782775711170820028288789410078692985366027143339466820344886984974521470334947589889784092204427121354013003156513306102675271515336412639497626028093311911369965398138319833136522754333646552905851646654133687701360469817052585118157945309685829412825405069965654294898224525197866249183827343091031861080912053250261472260819478423608637761048428553539334720148257787605282340490713129043321185443278068105814428256260474912858020491439327420734369667117735836558508348948158677304201343125239816057269879136476038488860090848593341412193981349203474413452457556879118061929353948012125767031549723008104972634159185226284219033079548775418056188921707036044311820828030738336419364102763196672863804860749405025194619010324860326934010118525392322014437668323586072289681745081580041668446274952108144147117341894510539445344362942346415548410952553586924742298309435493292496649641245069476240709245156770641368065585972997208449959377903944021984624357819573233576015152373828462124803619701161443293234957783928639182343586390626378314906405467748634672768382938946195965884801971195859508596151451615336953275555047243176076979447125877903597036956140953374851412051795145559362989533598610354696750268746576795096714195176388565560068690687141410556078739240836248731092744648406374710734017378691429678044167005403819227372373688281633790325202026737881580808878227498855457509193157245796196148548766376178711850594492002014689103425295233644624703268881873264558806750571993977447226955282843660282184800618536388271743698011359586348604778798722413476671386249938131398794528496757727826485282004845140391892408215217198757341738978900800362507567902274621704282310643253144492455301670448056818926382678460149522465778735218240568149661216663674953891851279332105246894796076548963896144286627318878175972194252930869665607120742798706357419169049524883744531577937932664381642094333207784533699303006437107620132605384899221177334208395138639565573120733746608562614438234210763761222917700449639701115366347089854260952685187011534884004752285629430509761318737886051525317543240762891257394038320043821611339384481224059637657230295454372265320603361709973257192386276384446214101935548099693072595890088357705553070135555877768461451503073093266057697891645046435306968697606756688173247062420452827898361587282916754686962093570975749031471525030189424223148095264530503940689198961392254719555347178368807105915736013011543448264552797423231984816633393468144977096983559697965617735636468864661952348856359149062292314909191046320235755209597577741236932491077880163306595888820777970657883382396461778300038203260404049761370728125628254330799823217286627686851927245700184013485912260620956642125333915955516428743322350794327201889481231663387634278795561692970709561815738332457491705179079153351166595184893472235993647344364037802911991003895812958662815442468052063512090809446278852460248287406857351115301349997021563302455012534832240853073367481229659947657062727904815115364862558060796199125775063971410465201824084064484270346600712670495231240733875696422759715421321145205981239999889868613320305059808905494801823921270103758634826926527250976076624697994529461037779740026158694047342687480239030372595191579070232781748065332997683518416811100681979482211982907958843866856081685390728101015370063102089815753083881517271802364116783873435318930936589668441577191863661594782117527866591908326684541956230006096664874592142894210328805099045878848338552520439999736032682134321941056110365364832117718240080653825758545496441638748607878883943906478607272156137664786721410319735650589318282334030356191567575270961805005170650965091681746507684929632490160133264060529674825021278037429197221237880337289494312779915747895958056190936235474430685172506122575266839903675219511009391182046357274196488019900557092255824502237217386611793585225448258956480826242880949972623391014448314609359708770218371095593564731425703451148509082349929522807501316438257892963402101435760640680793362905520532105692116551598652978933147814696426517290407217156258670626727989913601701115650051599861133630874391522328399562241183455189162834231160215622327632375046267920830157115618700868750306784509805398101523321294685560726870039014155366972180683640595324530575893996086935887041160094101064406860719174893215557881250436823372155150160294445526036861860385572814104560235576829809932089957202091578896675366425300456183683913263298099147787758507711217858567835475943750144129215171711254000661007866558397716557562692443791128705068029274426781463862383410971186431755091393698049693279683374561428516468323961348492820159944760644901673228108599873749334985894635859791057643174036257507139235311315115460275229734470640405172451427473822930287762361834686511912682766799696990237506848493558130052024119705215792582359217833453568232192411244162173393928450226100294066583246734726605724793569018371508556675707300242260533056851767003555008381902183325128053067897733309734607656183039084920852212385193581003630906188580990799395011490113310609173408333059798601426426878445815321916337612793055965979614682472517667886977069421239740503660424951970891308004091504244714524984231456604360592799167200529068305938502599957644778627217849718897922343040463549425580793773491809654369649579120268429404787628820258334016111914710770023448637415905201817467139953583207249630921876489981671761910534569640097207612203292894701722549580068786242634073844462933445178837000826161306277394305673514063614858550028177107209794280788888632241072544347187613489850519879064247826952370239179486088622303670248429481951798340985015210608898219602044777661699065398264636720768450757049672946807451182878274319465366516265781886787797498317694840745164680479737886845902876215473289060937327680714418603539816283163248419676678997725459483805540200095798436449602211512517327415598122744768572216245888722390794163482361244666373389931087580205017876713553517428879426592486969987911129079293491370974103450530646210970915959109481600836549058852748637969523274696592086765734407700958693471437155114294152177618349375497685590595035427758253179432692743056551877261120893681307299530206940326388956400745938145085827868931792112235616080564423894917023018214149898759340529326375746432819233217383237554447447984568499307436881041581326175335870189654301193345112302380666223143521866916978294800625534284973127741682276600716405762146940644772077646870653430555284271028524895740535595666844115893039399584098779302079716020600949851269895441938665563664294618238969087797250294847024118835434735594727874846278256285509536968601297150868039263835003174266077836231572718551606847010333964614332595036923372024867797271261994001425608681597469262048620959930296305964550735833059941246820395948239406094578408631314291031488809667558392276914650585973962165976778123973585792936919330260880285134142030170404274121531911073271474322830887060094349825247044144330555904377012709008834653207540997483985167200560766780743098681272078548310802871659076067837189105471263389698043247198937683570003564608675017294375566254718074603504628487571577206239696725504888635176482367472790235130194030063454099258398870358862413479800532612993782601718829745214216953418690982640763793870489071442168651426449450019786788806060039371455549690464193253083002525562172149821967016377460176107641923269436884738563397546349358774606928063534093433465704153336268454372966684825775300457696480673628499895329175122077805645548927920873934797924185397281916804942215711288917973141843181737897670939396049302581527856158789269294087006282326145237860774506503736555307594886502112452676448383005640844877616533583736906060158167614230269936078644556257970772846363704909956753303379579516866092586479221547912519817614550619524275868254786603055289513568330886044990064681125860598259846454593216868942963165127412112244139110205167969283995961182056971599423044039125012131323164470131775917178782996691408791769987538418687589262779268804617769726893941289040675573203517555755853313350770992983079855885914713033493521551678919282477486144534311231267581245469747231143522525376503220068530773978047280860860732915347896933909237411273255329404173974033371204088133069415952758718771221541829937553872307093586529066433232189544289810015656971498027010306067870091861321912459772195302157119058571579775979941046939154175207656593535023266989924647283554709196949287259942972390125031414361650983069175501686917984440832340566148261936093455192982059759632880635024475772375262874564006833531306203991470666037701246579389148988791666250153357059799117037909445580156885414393490337332100055269825898784280409588185972547317695404921405693529220183022805259349644315620731396771272906543775250243100474114831669862154628542002455701683456683343138425803599379666222180760835140331620803446094669140265248179007484445471827653150059484254964710736047073564953029452913605861876396791020061116999704672747581263052133459311805903363558448238784844940783124122686816769298152959938696590065792269181149359255412755703429740886678170252388003406252598003667184490986476500808909339603564433865530287950751318753746150018488792238238612501337139410231409281154668011213026590934393690919183311133315065595717847493454825324231524751193509236707038218848398947663193024507339733027752948733238562721781018369020152423716232785510556801180334953707285052279040336144685009860998043388529177229884331883090875427841156498483537574639578760831087943413475980718499584894092759539876487210925968869210628341684552585499650047539980501291530069892113748147316395366237259822269859719033213521167447377294801448724558262927209183060440519091002979669062675219394172514001190628457912432429493823527502148963610501929311356411720345270027461695842597246593853294033901080544590813707286650172687457731045514358719496052341764001222784421408750301186409964251944323297509819874641794696013774284298683893248753599982024111878196002429209351145923815824810023854455751337156507469573417076542304014043060530507493156496597652440932630026638944908680961538313976872324022957519711427664079358153798015275133178748647390172352150397664100718317806824356213159869779723934402394599867792040402266379765272591976229120440651905237391841947823557971443121253378667824870579751424338936646283382276465693214044246575560339563789164968446387756701763609971740064231376828416913137404753421784650513952134394089982354626530509702706221297395112463010651557812761496423444159030542245918525401493822324025046859145675534773377917345336082076113894615253566739723803159112982434415562564521528136231095874213325480435922962915669626436850495247271856019438632724265031699996291506229645321325759026520126863724722378347071473838179167471904994881490044649796782481438710987688589711359371042527396188728788680769589099272458784948618439686621308858100100413287628506004471039984763013571344785418805408116215708470663029698882031830410836938560977647654927410241031515540993614829874187821907182677033592118484145180647212290647284499161243988612880171186354899158937145424522837142122007168774780253886146535088042417355371821449571815366802124247557782780934602257124342556286372565615486669464757643993023573852302676373824094263389037163077570246403047847357814646733176113379869271285462455431514672214798349652550427261653357744212991291735558521733293709136524776466349558126813972405165651403001572395832646458779594479226383596230711888244842650463349923414861053428465329008644134384485113969438947406670308113659573852854705471478986721145608267357404623536637702295807621033232344020465477953673520965881939580501890095341272080853077844480969176126031661605179591877856825622031106518602723900620119342330166376887198177362046861700081606110838593569377569366369896833806623168256836577938286216376533005878292833999002886857586904222008872087928285187968978264111985354700792171635413505084646692946703153307674437896849462800473115783570326323464219971833370429273447158981861795598782819583069022682684009521805037416894634385283850922364379975425526335584375244453340593848612217252355885551558308621143145849251522498668354687144085771991101273631992075937425411489277945968758715838329855156691773796471098713521841908573587412228624959443436879484937029169498626997209278206357169448909769901929100835910953098887586593966866025462331904031998755668771076930362812202911109934513699789174501562411059606552228069943831840082994195946892771818749514112636181747531696184456373952197616944324003181073051162689872435843010220769579160124902574171544506901715261526051513376929509296653593904600206938691737408531108546144932208814013181077909172572817258022611796974357615210826782047165253062724535259776394391694630149187690498355909843880423755332585436888087392084993577580738365038361543874376206970712716600181857327402309836389070860417239428037697766807376741100446833194495317297593163549665524951726682252394595746829460607695259946345601215710583574299163515896237954693225861070464853285710308294476995999266466746660276762308473155619818903572480109222184839044180902044185598055960619094088024780060011037095342696871067774930386613049573822850943651668075251642350626382307885888718288929369406814959615647504325043993254960283287687366065263003271803606045050687525318273614049470257769736314887204470220965646132665780034611473532041948762465266240077128793270492488672780201292745564892869576977568823263316734198526420661374369559409218635417259304598352439442223045924088578049054981716956894586686352347809425374220951037246574743354355888403780066292580453578951694703597627710606948060796693846884461813566955004372469362900233028853359725006539041338944858424845305107997827363368095630049862747020591098198030152944717903113062044834935292320261694804658546159920022131117678890125720141516787078365213852544791925310594960607438692244250927357663141750208591535645246417804941013625660532346585877763335054737801861920494102402449342496811404807443326680187383148836949572342408243090907307305398488517010079678608720385916579627908696127853069976656295256746602970016705223494339305528387456967529981766365657197517019076372511139949240770152157098683355057652793505271726003743803142963323047583137261607494312687845337071830306098608614901514672454549797042168431110026311275605942413231407419267346272522281820247594723988017110403421066719196919864435509371442398849089565028815543513716867323830104279353144162608997275142525921663787280162755870316592225071603583695821801160583473596200427071172716026488499234438517439453025848192062276261374193030404693506561073403686342045195002905236040096285238743736057052335898286727526255844806736336591662845531642952811358131224605770038682032375577482680176689975697960758858750904140849516427002413654103233892548471888388578424381304258517970136490733418908274256525674705049994885120076523625055904538025723036315877194557182218298488267965558256812771385277080018090665575403103493536508960603399962914908983230643425291459849446749474792767047868325745143057420671968028452613328047079251435806555570862586339888303912203051279395567896405774173072631149997978831908796387155889161978851757584084683357181783872513623469541411552878170828892911488446197514101896901290983667919614855855807132357975907861718397462800036403701777172647228508949126193352835389395097888827924499581670777851353787259727067416328823502464772129678274202712021590246894779259603232732400077857885943275788965019776798269929014551162170463889903948274553057392494069207320127105646012633812086523247653949783014930366201015951007986550001270544265458230477652205056414912234024006629425848621474246337177019189492453151889385810131506645654594475350699485464692895908434602362235697685945067333231890318808240517433797826062426369657705202785722809834621494995593180154948042022713020429308141079758523260085330269208667518265929574197625059142041819580234628782755644155297949484002950334113797553017764166669607336424583889816649818714267250251000242475670949661799132494673001094605764048326847630930031780517262392188811844614708506699394747006542794243980426095718808886182777553486748402247486994625427530293027196111004977312856305275756568305275482094303379440405152469339239320095521491263562097054740969046400060710639090031285150499394510254246912038288322555256617113882440337543905809776854746728405116798643334760795710174527076841347818962441256527500438165827296529857969336321110114176860237200526807003323828078310019950685831960505680626900720030364487430249218742733790654820407357763803770610007795272077970269412057875142765436367503902596424312283208511312381301519917667168125701920914514798617138467396099782640925287530421563303770732698404431698949731317844050163937752767513276225722199253627684540653084376614416971159513518373133193922402720136792902411996859467839598289950544406637406241956605079727145775532318606014331764912574070671854661444441982319270663939362980390285184960696328896609066699664630740737719502091327409929136211429037876970313639610178495667252076099154105901615890047736798445621024784291274386539829653255390149911608478803257364068056210470552377681721664128939573102689815415887005830030094864309699834580606379592378905219161946576220690597869679482128122803433662605923643293780381388815686347595899462590273873975139437735500695540563891210670672075157545808886183719743227231919401638916037069406414124806670198931488066874270196524570407662553886052760896244033029707398577749868008544607561721600363240586008260271596626277179469600458891554979812479628519027951792294138003338435410688041592659804764447817482159880014923636192372914148579663997241560643585659392324528390547405804523158349776214388993976960319870032891867698446327406736320182708719395614801594232262340879084723505375091428469579980564725032791980472121629571090096788891229405404360989419526206147704689397065804947560531828306637856998210140950374476892340022004477157924380135130492476203579196938780224000707365495129516264508294977693846169399522685930044462919479846800963240154760542086076979308229841940681439194963512325672590231807254546152160892731572799931130636337699669153462663997054293613147032144396454547540873605041491547736609506443370098994715868697091674655686170839454310423433029228141458772224855872180405266389001198750196257723363362975793480932274885507876875847931062942035927637143406827562089023169298658086512234514358624101182875098200618539112100092667305729367621759336799009353955455719399016787127711939165445072591902120059910015526482992043633197244252724010840740589978880798143774113620169056470401070190038302525842766489351354522406890578874367558892746486090131457958403011027588150145248719946272732496312447525068270195318937442511321066169341177389987978970652610857960690737850231264355936720074705961055568608339230132899798473516319855178586698436640874640282446116698929039302373091612340180476229954825696751306281090912477974126229749743942212421564362268424586749046895944459967472652486371344295859993197777696102586755599737188907047267527155369103621877796816351884583467546183367341400895775457798932891886109004959437064571081458443461040479654418699086098210238887471448712484410950930259601969789577563934441825124516269846705756471625769410147603485683965001181477077047739408148363135751737403299162628105936779432812269981916661597351443559997974909445349980411899670477694669480943263715876446943551205235879339792768950021179690872219976275311321827468248687706329632413302587786137002376240930743034084934185919515069207767290649445672804822739364207166506753782863922016480805523732656335055581354691061867250138497804603492555434492376341612207400597536211022867009406506479912902017228247689960115500229553824896295916613197919723240303020017414908690268941745443615444768061867663797313814760615237262050377827851474163225208934069407871358372453135030317502853782621612543345088665253149801767375384345201595915945364000158385906762012635103014032368105800827851448611810645056867565756810129945639906055028861667616095360009860241049115549456720762084191621153111246053362669457306114096775041154835189522262912924720294406870230231518240242363633658564033894387735238994268863234757475234736002535377916218767824474385738007889201735433120238997509244146030714396855395563551062223765648958187993528376532361209891287024579269860484429022260287452193237952993278891778311535187355186052123915276242042072084999352622384252225938088715214101603081370251858591028200832726208379318728006656466583611638974740886591333116901151945965726236335940977222145641719979501444249937453951733531131567045145039502736931057444774534625755334013551333065485966682738723906697108943670226772762831470819351313420793905573611913376629588371952750996419792344136734419223470436144653046493816646046875571989564358934999748505990920511048033700012473588503349579297310985280493600771095010103236652071924424358523896137676737147743723625343884597819240038147407667536869099755808255183064134383570382348933327983277900706698458420232427423808312192713425203974550070593671988978324973254943071253004413550951739757733801555823983385845563532125549218807541058862243695885559213940545944790249192878585672961429380096443068151925180507404650931399566835186822748302985437690643698567233755265049380692705317780529930787892102198160287147301983653728124090039109419705545142775545375862661456925315909903173558665085061478430987340883429683914149631368410650917839829609519656065958875258350076391403761090290297707397083581422317479921432419509346720029917380094478935508232419096979265576148427676922104986412286403769670849802235511063220490739223433481273389728802940244719347813387909040135958366809018276878611901905166079323253942474927750589588528629670090885325152873973281175829795989338694691370307616277963455307031793158923765233470394026725522740699951212763058763446968746742363891988903261068736317430563289145923670956258466042561222368244238908333414533537219372453848228521750887190967634010659802634202143758817537758488396106693698288253297576136389280696315298112051998133349062994779309664883398118423285327869963838995465458945764773248460624137409673798913104642251338576060979245901485433869937014026432387822227988935065089357843381757170200219789677652951933466865780249414218456298980824179809461243077700992920934809379396477510297333279759908641499585021195767489036026749539340071955665753941338178686336547197910371244090334954848461462043128155815893035254289352294404837777472132663169845681118264702743663055002982722502509080771390298240665004777748853215437872557119648434953395584631159513220038183787585233398087468353816466450661995806585326612853969495361065566985202874769448669261359502759203491809218291276346481648227433497059494413543691722149668811380194605325751642207847969834108295506383316050153927591396053989775478475353907243419294619104811515679758400025414216332708710031930899025025588920937649619515921156728854937876605595931720558563202968087913561864594570472493905118548571562921397935818582525555635062644087835745909488098989545037033865373779559003526497013873067087637298062171453910184853267281794643139181311977199441643875906890607126501429961565838415526893182440286657839611149141329250039083357873937724862114736761970847318332944959892639107393053272362304949975974748361508383785866283526204323822190046236577050173266176484852093883383727929588819999207915428065185328469051633357476267870922899677825466706218985438648230106786956685482740229923189715652430269510147621668639623327015555881952326360605767290918938582463807302203361256275737393612252525832107137893086249771924549680333225522710665565099749892551173707581769060725549260831834210744267861798220088752729205095543422462260044120276351108701614781620458652115015411199289679503693988647677300594872464079498611579841262332359732654387398151452515820944923646588361412509849469198525163485007400861083990059131613419818364427469986532720496818909976541605091088796968410209509510637232803638567049304760069616094029124381155493001557239269607238074949781308762452681191716461828157389265770231306565392273058356787094499967656386213442161412662020039820769953760035238018900827333588226702087318873225362899457706288377055898036927103524630929104026344107067724628255550991975787100988759089672988843649676875875207534146789735323576824459379105928175378936393517013756641906181134112337733718231648044332500016118333183668911821449605391995486330176838582735726409654113194952241288315077397600389936967326678797532390044145791478643671578745441243198074327081582633032106609505551651089600795646401120135588262695233233233516482433269061371440408891385692934982988834402595894215760516153113046644886175462290518565293626371174415767681640401616903514683668587213265815188791026152075923648112533453828044097294711309349293951687578850793571270793274057457019219613653763815611329177558631297759614025953422276582357578800834905278084589669536744528724896911175333581614467784784820537944776174991040309837236518066485474962512625558311218213115787258373449567867622640086925370994314220343068342509524240305651789977141565769818592323052155609143371531909113992333207379769760897733385876385281097669378050400493452150558632165826913690738383546127241848353409131879843737277174608716906869100630051650401392226175878487954583287068341247548711396987673361033809631159787453024403963271509227637634449817007345182215798581533901481140622659143767660634761044688178556643860230091810811671625686734996881199406785851789920585111305096954342490743359957822229302409059469713738136974654824877213094390736352391010079293880553998692493430799285991924661320734862982112050060729811053440521828392573215745107909317065088930677794497074938899657455467131179309270369167721268238572759555404036350459520267787629244232286285770826812816530615559835030122016859870033690019119184462918874169058804167023743648483125503428060716779906615790330606052283538745866235265532425548247352113148110474520553282010339403010112131718884224483757327287386123949550253839701153670667707779191604394040902391852624356462584056071282597529890337674990492289758795845163439820809098596204391265856567959877801346904993868269494343878778032888034130817096539705405820944614695781139796111482324960561776598858405495741878632851107196755266516059510223646398274299092700972472769886554245690682068639819460751927088300281479178961085303871889164626931176590820850039134433510625666274284369364602113808548405826107114964309882215810529847443487283025844224770688731487325553784993888737866073291803166783991736794912753094741645001085118141763017097264699182014383866526647917308433678732858569897069173874111335642785672165087382019571750791148241036774595975517137446081888598214695013835991941984725497174619635512967356937248945074294072649453437226539577430405163480429388793770956018614167473190552401282732817558791083390258863499599364646327989091933387589502506650924920328765106779606973438621700117125784828912392072356605045638306629400630523835020846487553288623488283412638811110851825626351466505622794709688877695887580393160027122961016608091634578883349357197360738971243390643927325375574883502060038692162834027634164488603085695774756782644856571263773425043685186981149848604330403431160692429199872906588031126853338263033108963971606646985406445754215101516364236464421337272899800876716319495205286594207799883312724996666359659734111048084037177235586684429585251826438423528197624748517692408999549324162225190796194483390297287989996013830868793384738164011141094998488065609420770390381642934517968025067948020512479840217863224914712193700210394824024130869849600584521646439259287098868676522629381279018456032998130996997935136066589955151379115143677419060925438389328230171873154634190476143658770788626498182939121462134556842794120341526410436317498966299046968460721732338380229517429275256805192851165543023499206560693863910477468413186856516816092655474717035697734040336801873799517245470227935307557612947632759299322650067177119421397191219783443145175371368271412232786875141947172754118124962329700055578661520190083078388815407796545870077545971946716453689473497821247301528099091622215500119772956579832309424399695304421199945432473062903247092834830878069442065703305072574661256977274204445857240747997331985273153267383216437886406532627834572205627424834289796957459126287836356540096837554728761472992362336816573564607288969030781184029056488404619168712189935175614029688521902684471932826489380301239967010604589875883162929618356541575597921074764119138072994900907690556029988775493658720430890771321584756584008102317615033802907499652540964126762404029780875226285101927909646328468067740845437107483396880629327309967062713914714911697750430744898419636669949927092441300879297232580033875851241282846239090571395876867861592474362975103343554359169478553595358863668729397240325829037398249592634096972880581867477024476671264367927790215024020588950403120111348419105957033089437596756503024984337666758174349942253925838109195181059450178514233012600345290679925416112900021821094005971138560793133286783684026505506950118159435354471733024650297964340936542168225436454672742184955479952848654951859683224046281936281722578476491884032567373689535641323777935164200797869960917779764162854743184381850356513985451140409522942937771931484672018618571724627917661805074932784198846678628526856098175431658763304529989981583733234605676212748802350874037240796501538209813443703504320793961764749771368658290294514556815216581538102046797573671686450132419848616767408551029399534479198306734491581094833583371834798474528081796096077396594640101429537897355237164873086989635584883156759050561966459215950270048152805885785654974236311472149626702517937540421732690120144352994202323780304185399368788204119438125510309619275329256300430983164390745843604245740868649798447943432892559235084610657813103131476156191511068380891490099289607172256921692518413244166763219655412653005871901616589672493671303271647403944522623521282483965203984709659446557359986899606819193724429283970282528720786963334549912912880270439935100744137713003200624119006047994971039888953967472092245449610639989406350841092144781026185622489643361758984719633727666155118795452322397198727833047194824937989346720136364614830202943602602513662211638113817502504735876431698139442893638781112466944805916370040681946006170415423622101924608643736251540923971389457859722680944628273135258607015315339487470164678434993911429219860686769272156425493506829040401935191176008504986920724088319655944932456412133459067049935983034372513670211630679956909377524461894450289102076806900332115319554285872670220241504469858937467104614293737442451840406176448691693383412591605385547969375794439186619280398307374584860711656876121523874813448985324357368577557217747420950085144220819437834846107961325736446410209067989108704953236770942090448365381632198757065463247499012545656263152416307519549217406318080640289148033102450397732283698384522238301521298702687429063630085100317053482534186997173919051085880597118484681138177824179218222881488621912304572312884374174398195373848823489138857971123708399796339511015695123228454164286992249026302932485271341379088044765798130115919004098595046020277259342675954277204807739571913220152171394088681219186019873977152381840779252447655016137204269813241234864715277436750173767835339592819659801663324663173066399171989895178095449993373843924100466816522946526034523291798925748059942087034732355059387987542205815829939312168000138110617418595334922552017285086809417703023224626286071942968119977785573651862342659372795160530151038141950051098806102450580362606504826445660651583795734867116236176066169245231585821697159546167567136504114527920789981885505975499091978850146814872901828151792153857492463435122107951832534035961049891607566465021781509222512308516371910843295431188047081546781010662282865323738702588478045712116718650286337639631717963898060605161287182433947392913400147761412331122074147175661973084648689496506165915834142266089174434400957438851380663932160389511112392989691418211370195365085917320073686143725230946372102297806858855364621346698231489611540800521448875574632066697980892711110708562130412719828203871626694953330539857643868730043186655940716454910838393616980248359664202218988868199651237492537354083399776391283066595556457959279041575292204264068558639717464133420914961823752934002248090043549582406008662047403741875531039552331380097604206502612726354700017863561513107892260875730425944700605018519050513891392183287386787456516715766366893673050602136260819381013861013048728042445387705829522072239968913375347104382785137866971184799281747346485740976201749063306544429570642063182271778126626745008990742267598726768322723923997185421631750329863618318314114194527122980954961633982103259527607998455616447444636287530081276659257968336711805104288513988516996484582731407919359841058745674846977975909138106451444269508796423731057414706525481763069148668939463202530770995138731179370466666012231853518914071729985965152639554408135661028569745059938792725233782757035567983245476955202639946564667434811534053217058528784479118369401797037216229737481706317861585812975452864318499293653780002606957721340524650822979865182680500786442964875273404380566434478477616531692626195674979891753234213437058297471283156832696007395020823608855452137724183950869542569634159288712621349555180895955550236481629389351799523832974591477200842051591090060062800661068300207099544615197229457551670267538737762237119409379634146820504643482373497117148750355124666788663197306485402314878524601471569271292978679526377084745187294603731556649790515972594367236617261495600611735821783981990983568065422004746866423224515060380315340078165737249920704620823605757698088467856404183119616278120800332136655573357004055998989721718015423420200957967638423696756498171165661893918338215938407731976105814523082961235340603246767938279682877043609948609753862500945209101972221973947834717009020734839674244431981581300962496099309125274904571609090439322222628091386932901749271010684169960612365391600320899145280730736034938686780581100623422709480045796558363686448655532291984957827977363608304947413942977107332658451832868062502862364147974021591079593177589750306849065979719079457407957834218954779401442180887750131478872583754358000619387823092355522063066164021498589084618814180896937098069525294032600488174086416819527941179448845490775970986396922036299722899883147890725224317481152682076345102683972220716555077606440214595603014040953475681222792011243155271646017590074079182289513202547790523963552239135098498538235614749647578862084920101477710878949206623970483551546984277187005971836232739298704304937534671921520184978286400633038066755620356575396081751980012047796013662587319835643525454705730572144357784794837614492761085060386789897415269891711976211429602258562868940346295799909437730928478147097345977890347527502396064274913204960538492978572817105388246358905799429049145092597944545135293404933886593503774663507163989872192349933254981184384002297087040038795370532671782527018715448451147706789892374742470118599687794900003678952575831396010944890613954060109740050375549135050073717498737094601100546139499401029422942886653039308674005294813811871930634549843681267851220768936594117632411100179286364565127078479898437764558392696859039051555622409676155452020438389517676073807899949332733546115875788648572901130085924331555749756533076817978758804207198871621473398924658206243354036825261890290023863827817368689846372666296226139286716647905993931741996834975090069327482199583996007430914341422322810171461582299637899913059020775168693626305785802165079426858780972011340080907962752811773540680286655016555605799454167864535873502528730542907759389099082118462167507385627185937829741128116443498511483503122638912662437074830055377335864869971701954519679580356241406503781612561236484361354453579675972626414058039958516299611723049413161202579225981803874051702340469685484282103694073583544742626015536786354440386024419887252919944744200300659454499733912070560282790563086091406166841432219485775632095364883121315345120128611408947281852310013049450999269905198800555150148180194766180102424691906024083540888960725674219906911063083967833763158795470421532528626048610760223092572795035195917224191174556681423542593476708687289281734086187497273419612131024357256289568011109984970774646092594415771299360134499577265361386310362902654794861975015859889183540637238810218232335877435203319051460412132457709247789080106134510418843481824646062674398161926184420444518042563794349264724390149540693899315069593852513825713425028427454678859876551820915668652796819010874870676965358130330663739068755215526113706699339203399989534372479317493272779558641543613086224031528543160514406940463950934548188141176153720487645715114425194440770362143668407685111933407029636345675130318392776106748065168198831039443454551923810148991753356450195032810022111749697089421012598851158730473640330141765112312198429988140714578887005968521811473002049488461108701495907698958465328385925439702966227062592297457497627739901371184298336854420461593782952370523931753905924480099027187097009859498940609193353197657526850565906839451386245900520908886073773017798806571469032791692178406788383467686677255496895665392881885838270734350343432616612185420347728296688574462577639114767098154259133569376905473928231775009391780993667264109750616114584769048553541632710423217572319079100105905638478412170398857558786220804592830479836492846774698730066299441677851208226028817241388398963984015567999115603032246813378306153498708982539453393300629412491438205495338069570006341835620476477590324402116116699052066122200315481118737979310822760287600047656487377711894981224979137332628915347495985184803307332126451409438763154804926603276766261050094730478343837496271109697162247758734808666804013611553646743697641035073723361371192403653437529052102398916245198334230440927133938925043061160109896360369633219435631321924141523504663260396513505043922030560013492849484650304597158711631522271132581564225538315639540383426450242926655223471936103028517985431526287348185420946600896201734523941943292825293419937023407853634259047878700583020082454724430139518961772138655386071763372172698137149539365844336625704757328350780448493476508907021336218004848234250709944683302552285975839129074423602814185340628178866592747555923577753076423114159174639661308546654887298235208950138212926476755474471491600634285178755101951717150948726348279865010714146617288677120845303917863349942681331807469616107170652243829130020876575821890455015836505131346115599860443860996386902974623285632468759948527270994533116962939384416319359038986505432887970170821385370565973743715507021961236237966814352846148919932140364642102068469760299074032951719625185139098992264144449611936191499907346094607835659077712868394721006896988323329996083677185202199733696516824394609773995929944808076048083028740733085700342165204013009797102066110539763377905489606179965879120939340844428671391826208552459778877241189110194109308399713091547352053075790398530029567461375947667147122341823596261617819196565293703376409832196871963708025115519920890182502676678458918084788766738774089560382335786088434462880287045494200958000233954651879944602637632830152571449477603056356163107495788485605462078466727624346313849056803230463119962462778720941984314150108615649563173231542420974892628938101236285701253092320043559253581470645923462318917943299178591640552382467616720117955908775067612548804491809116293256041166865887137839964454556678550884786579209142617187495382315939870279431335840315199980831151745718525639689206966363290765273036440396167015195103546115218678996916513954189464397903214318926264090315598797939593649713846472576856684899094008839473289825162808715349612387178174995635901610631082335035241612122476020010518882287691675289029661848110357351508954766973747718251061357452158758813235385832140323373502725340071199689673856790245196898326906582207287137067176877134988568502204390243916304313567739997124306588864919044358818972846637768199762228236064871256171264248670903278882869619019583181673664602729168682666061865886020221979220838632894962516571459388128381345044389139441491995196237413975090769764240642020392874060529824509300298012109552514349887538280157618001775897032456293375509640080204298246179841975329335228183612235577408873335171558849979279879022333559988678856906298725062111567400856315831406356554396728833172449577559896455021630490627980900240673759043741620853827484128987951750554973399020425539650191356498513848657253505118998904800163921908173491318724512084970326555098805371804403977303630060222710020159845232259566410755406752405024753349631170254866691623678993296243482611953731732847002177755389767610371111620874500693468404346725885344251848713038387669919054352812302797985163583912685763798921443300666140994689206623989008987068051739702924626600167278277286030911295145167480248040609743857265221896596441287517668468550613546592741057967475959529143410359660009306577914188757170050755010234534651550999228253179576328101525967912396084943782761037135350763986811519593266342025526484807419853632922106946708010141800586502755167759020376500863430017758459963646134298562738039612004606476576070642001123559208937797445199821119897294940116864167317986329581002941837493278217943681438070535261637844574964594213746512396312848868479562971391510697484046770986932907816653832400644780350274985131208212421377057702351686302938112769257922608767100653689891772063820847829820077259116951287363302189508614088478770622388663810703574139810318879947970622487111905325805873764067826931199288160851113080165008870874855885451977370023871818280867077248647360617348475288650393568400618073931511820638967784773439574507512497547659094633609281820155356673266892203271112836621659534380855527736118406655526857072376166355321313716142495437637950544835859237539265227980422413818289927328935056713491042048758799371729586994355266415947908653920342940868929561393670036603565735389072086452691290046000500745622196142157378025388381924509077410906823208612381113763375654977037780730605484712160819580677451649598076223092800225658970807602312465383434088034290039973347131744720100601038649876473814473270185583867128335579946713014573622287867695338568059299565313797029724829940434778881522511274443110780590361782908275923094776933683765276716813480227614660430454235973100000345791705525925338136900691682793052012055135253475679422585534478123427444767631364076619133224349800939841985726254262327077518290081782162863909164183325608964510712453677435811579244049001280276207276077278179420360002851402621531314616201454108350547544884325578001871330929023873243415611065067109000266536820714154730246696220763727257694909759985143205077682146772676315223080487313973407130231320320850147196216880240157886546357776572005901959870641643702500695349919784504104225541596798017731241706593746865202544900445012058574847237506732502833202924714530910601223205039352581744090696163852952831342163224377751417523054074167329254801337059946293713671094174314448300888181690114417813260531220246690188489071777757539302646228243997518069241132067610477018550371768591448544949970047308483136042359192873139985222776187564643021259072672793378773252315475846918500875715765842577270615406626825136507533683980430134270565721786675199596209676007274969421471642843138722703880454449857590227788705642539549007229298882793407122915073945448955806355712153351864604774425867042192188663543049388448290809452386707372920898683692264923156051324260053877858400672662069443312258611401937924686700603915555557297192364094392786054583573390549175841563788284054406344702203102002603430636353811192489249780370898177223437023813220787570982621424119240221910034423218180243843228054927460197493761404661161556213653144722660110235509608126857070256827473231126247020793528300805135893981654851562922494836197656580231982923579409176863154027436184518518971003552607274977199971053134731465871410646349449396913007575759467133571339665870006950548166423056578119278211278437019703846650672606421478661780702405667085669285692386379467936083316440686932567712859562219071533463342378224244432498614448709682072344132183143058128672207180937736579013187095777312437342483281523679324264076933728407791039519257013053023042910930743410220821752168005384161972536707251356319737898200194359208829029289638301420114864788342728355304868610225692029693256291567812080044478496946618496292926589133904854472854095489047460265822940579268803448652179747407901664397154802483393802717717636826772019714556884874766179244530392426902925889977661734061969030796293481818665215231721074972706461822487846496608685693106387313185661692280033034642950818523742277525925698440141779738067978815342490720563729794969726093774069873977679567118502014774836647355730109667827796168270130952487391557602842847393376543622575294064239815374236226643273643025680891513220646097856690739744746235221426026635999339986445896269106366731838119777881095391040892878721804773504423003343837149229732582104446843110490018027902170296316179066185820030191381161567927777182426717225248627850216775131642424009364608492218268443294514145359580401964323328283798419394210527368474870145481255678603247588742072636123753818917756813671882698234203026520449836963108865472950540943605772773668345525373610699919916209707428599174528553409062002930527972338730451930622007663700553486939609596922906665384959545323502749025069615447171544711120775161704813202185585256314318201127981313721313831972223558396275247450265880434630349980815250826657704395182441612522710129128597266305003636551287932283639112800051146064689348967180537008850294161449586426835869603098688265250465334055490671418890865991400614706068347855161638457332309186704658304649311962516737213387065521435231600084334133831601670121224624968520960222580600130287519817262926639319053964940460386155313434216581212936033132120394268627756370348149942724088174163769449673056897475938368686404527225264403170304352089272489145651219654709857068762296012377771187227279001247506463525537763585722152304106018194341395796838709713217265055274478230488048693790455356312989074389379529990244565222276664474920130477430705272661255842160834179991932746594438941214178438470354856506589647552387079832778137320888117776639138001684525466265926629357709449723533679284331364567408933612281361325262643710131577718446414989916211297818440665507541700834237302809099446055750470715679474861035688324069894488623442961555077904591994684950442383011595415678757449784596413711607779658654875423390063636084605016261473387530296506891082076527918816175435949246341427602127374773581470457526007527073902459434207738785766972724402624823986429658650656733140741457826868688487898198484916624498240349748169220445175039453654598836638074241922413862826441986455793050158429598156561362683403451434648598332226840032511757428262855582280452274521219776196312676175148263231765055896703121895912912971292360906399348160223406850684788040027542597540952033802003306564073372963847278411693172582909063476979007618322046715667197767707429159465960484248853974216965023793086893333786577145297253989209699165281238739792138037056548712181710707679172088766148411350810699637053589880597085627635790467437430437334971282806331034792126578558586577848560510749521475943236016527645202378134891789691758566413212629133829415037481606601027500509845265795661323160362123791383151352028131664409746963963336923724592749630716875671097505749314875494405640291160085036666963489263726162935879808488915727857473019058666037188616348776103538046794540575971283979695399588622672753760394319863816778961916172364137529746619540326961582685311395481597192878386915663342724354627663050276922189473243912651729959646070596175024595866070703455502455736658007920814415845024181680134950774264331373233442778656003819974255149034207251200361732211192255321306093685414583484780300974506510931056449783679864170147255265268213864603569066141760597337739428915609224867278377516807964896297716505101038241095070444502021872447153860500189615079886941168682943403083452560739806720162494177969427870554161487753341085252985973116260377993338434624521113239717169231669394271922574972736614008709231521433571792289774801195527035417463693340459871483392032319377466489518313902668232795084621172130742548533934015716537759508518571311115607184574029922323150813981907257862378337880449935094551586445643920353533264127792349005886276645227887784052134849826743674344557514280776069153878976829428334267382741375265275301289522706672022152110764193474910594752394295421924724130806555002789468016053975841092920862871536026233840728092192952201663577748836171089575501929739820919339774425566551699158741458612539326999229916966703202221201284207101900826637816598573333291348845083384878622303240303324293842466439110547208486526716168102585897943552853932501473886533803384523923278628296325770444946250328755168653655547584542239249051040295428365108009985508040976910342633292103864852930289884484611538346167228962293443815039208808608480685809649473857792395574796515953194715732500869562279966977340082311146764045916011581602272950171964807991579312703708970727106820958424198495368112131432922018901499008565270633963310592737911808204579699008793619454476757029211925390569296397441946726863720795252043110177242281188997206220995716118523117280740537686793122319469238926739404013574575668146594584449616690601726163715492619221339186455098005240875901856246829513347239671927801926398640535872066429601373628209816592271023848235299168725280587617792167485270229486964304027130427032621216493539181572979828033467483171365940902583036104167839616472381597067912727013182380923830976653584601229504658350839492741659907114604474103391017583414948002963400345592714245564717481170771738597804441702939830416296229192491296560106223818790710272229989854298389718648287064484674345184516702493017185072122429880430134688584859655048535520200742194389518101704409023551464817478959887262159928796688190047324623906833303773704060777377382106588225524691768759119409727418889752839371369930865801261048949827414648602079609576458736975815447390345949564116069595457123404977359748354308512866759749306022757285345060179291144789684761177779621315593550322893385738705194180616923367675798989790262960226584267453410216041273789614285552286880496377007619778018874442188015131457329339249393187366815084672201758036097108284547740010874272114744103878826574046225032709849855831903031085726627139840159742812549442155504461101931409244973759671335929275942241059401364514169179619461307056999601082333831653744498459506077047203421061443444651221818313202148968610372263712208811626542065030573783579053256101274054072221171522145161720551625849156242684627984714647663369881072554684083847128450617312832321907588555077878745892338011766656060674627597180741315261379281608030949324130274342482304251089141155771709286985774763253087430027056941470264648549386961389609649438476434370975780761356290896129104013151229936462120359364076887845828243006789303877133893927483574138101348738588069069411980597732098778397619292803398805364514460175078650340045829171313092480091663408844077077127048146370872846829781603267997827510551223537718077000648478072354597421029551206992963714806209208313998893644954250788808691002721551794845745852190508085454324836736386201819269484357411842280870665538274273526659323891972948016410195312390131850298802628162614936657447216534072512268171909549164665164783446890006013639077345610888972458994835896542749399692767824190911956756166422406686365314897663883798587687224541344023789121621987956387145250939826853275699355115067343279593845820757985839926141871501597726927918685920819453931183468955054305090289398604677663878964196326213083101682424547505029092688421237956578282235773251877182666378859608544693387926208290835063849735382368863104162343976214942917121741497040221449412711675067564800703954138088994787136038350186081661857027269709979911300674718352373731718542733318040838554710060383329342199134972663283675173287531528733839990442511221721317734235875787752768290324479222385108449564382476240994404399761169890043194354908187781831156370498231538681796502311510158193948523732444227655224245124658586919555384759634954734805981708825268457502590998172147772560845346343601469979469724746110186591793216580638781800131897776951090658187022730317726326537268419044775597153114819711440513645380364003886980036608254604204220216629838054835582170177396301113181428299303936303820661443218198613486116791160009175314509030813886185430464180018735397371644711552574781592436690231890290927687304531741052780072989519611125255231135562146216828312829199110223449825684396359309448152528732822453046721723009739649207713568741487201408608525473110431871701900770468672970573743698941402716058219863787333999380132573127600199734811826656179947886555680225893038898896071517330300287806498515840305790300893067944654646997038537181737093466474772012045880363740147505678786779552161968177068189769303192871079335176136937782813519170113691865685832146681739861328934277032011917699833306724989160589785321693626518401499270192414904466453241068162260016663664758464097269845300756871266984901833273889210635354070541084774623381923175429686716975285809725964711820998669902106570029836883419991121957574662442779862870160484738104376639079474778004209132186170156395122270812909742634352122191905263096448280089522311078411525308298433003532079574963121765014290223040780956356219342502155828188358182116213148346682161305930340015041553917767012052620543107194345600672612908245859933322968290429561940737751703952801912511117607919637785533384931930847919260730194091175554961719518222623799426973308120587854798838087057198099713780633502651617735293743529543954061830619081865126819650957810967899007505252728702832836806112712768474505543371068457868440038626808964746108080017322860779342954170388949103242862998557630952376835857856923648412508440926052009539959503039038054929413211586997446776219793256347746473989950105925959640112304748123836739149204597348711116729685028060540419558868159725466952445509240092061201521456346215335876273414914659321262000281045829162925294013609100881659760781994153441463273998934393871943259700075788855593925466810999600353552756670448646330388445620758008150409361828999147798864823025562164480723307481788921777223859862576573266450980202849296044312745292448029213584547550260336963906736433458341053079014659674150842222034935986719748401203506834601197454609347592463464600035833526005802103338650327617853766743935468260513536346326261066231458209588509279658606217872490794994698709672975098904141613501105355664022037018544924379068129392642586000120569979106678044189354073380657115602956268119886123225831928439596957947559965436852434985746751283782663974951554316137640221400650863893466917949299689066075525719680274876885228512223905082046348122280248184306359190243997568861307106622039932207801318088218618119581870767520730387908978817339900408178552183613445836024613768396508833083900140602228646129024393988523440264933187129391080869031557531271825348262621216690678339824177294457089561169465585923701240279631599323917670357233034159172296331568984169338497312880905545087998947244359984859033707429860926469687327684874076113033267236811448830614589481362421863722202166725651143287443266578757878681248449688430888162917278449354628915697501733735614814978712827379838599506725021664612083741864760551897743357225439109502688004578816707316084609738487160454960022357384958569042596181951580437771066661859185662862205366474750087687454764953841677555112795617913086844223355996402924430112599470531344587809615402287184342449941413765107906363680506130975680382415464920914812745705520390560851959180328964777074079168083822838897813820855040097130988207846037452304583834605041035053024554001066709145960194365350616665074964091467714785315469646040170845408211177323900086697145124923717475388234117174913419245879275530625739742708068776924430460910455177977088694863263861854558792993339362641945570757127692240722276613326089672568172442544814793720092514138784991803495609206511062121163324844014973426415841260572284099975462489375463012851532948306356520142730990977322356131900648936291422067634001284985750177596711288690764164348625247278105422570009641154169386511506795596014680127907762855638927837151161205526046773517360917532912991555452769972960660778357235080886038221774834923566401985794287483050926397605529576265145598368115450516845939949546486599959604964307644689287868348965962629564397917752199066188960145667071679220877616040730885923057538194463479157868441008918427635532237216415209509235865166350164693475297645479495716821307098544772085105546954796833117298405144071216903691992467462075893529788680242593928780791547253238863671848865630584035794512757183195389980643410436438557435816442529007854352693785831419628366223033884719298843855255215026148854420239649998500389945499031956909062795715519452128944981340286685043317693044348590314710518382344420020840505940900559324356233151885114232435880500776867311789438250126779775958204360005024528790783167618638923677233596247897998960540928733928109873558497243295967881657999882839992187628556925565367898663142140440776637085066655776487006694109610958689794113863231529659624551064735902476340976867593276705971550469305289549009965829925079723749381457458108013022973140031899263835506074068290833017594747585154716150290604940102373770166515651147127069075044594951130622226763331359311792965063335440569266277934096424698253390032230975984990701876229894503046694115643312020462029602091192188764776905810008361194739253541085853924337486270813073471586717734822388250674871498324033844804987969706982069731881951088161320933252873693928935167736519416358699615974554160346311679890684974555247021022404782007341047640153622044301272021606568894910919214687180667081971636880657974006503286342543197124005083753644038080525953485508040402700508920073748008667098663192721749410708729262161142767385580098909431492578714581562299289038832158075533348434480590616125144379672665701885706465449412962458771039278038773596480331659201763793133848610691478015944008991500735327328299934554789484004622478559092056352434665057353736170275340580079839972336126388064811097195174107437869898304887267671263185344768958606871566594647237723501868608604524291796226993351290156564769763452896877043456962858510954934805047804070470440975765942240323283222803887574623741749819706814363080895538621785980315755937510978824113327812050944528679871384639514818584693522015587186968192430650014212933853224838215281077151539309845153461003675476790481876825931739405038736042107815098556252782309525460994147781029856483463879304851042625149807762885460214705143592883153667151385399134748429091712816276462656815188037195886342072676490165827452345595370984646203110212732119024199261161481077750405475311947367191707219468647775837210104725645758643391861097282957766830504281544046066451545895628974740781762075030727876511248820292743435257353110556005986323969606344345646780638835769247420715445294550265646249181304012648871456268563021611005774546855171267019758846435248263909179362674113485160421637406602401781303747073874055628502871481602683655198286598013054783658595148079263841018706832376923623250033894500010405375090357859066116624382242210260233874713192433285940967900468966397696681093466673222940245271799893323911367471585170565288303902947058000550311101993458706904987864594930475920163799972365371998308598725645927063944906213632670445468879012277424934675980507542766582434970991332777749099320900170542939597136337960970720912766263019997962911233392778598921338143259843629638170973992018180160839767570308164007356469438088604590617303028981111485660192035647914546957869360816829558016639023801062275186727295139280431410190323581214789344685931041481375246864535180217105728790584716779942306760086844281542586626765449334999331168875047390609390491135065290980124718214372497971769566301734571607780863320330592083540195001101035024520662897858166354089410789466706281475309476837619319335905790003760187211776468647902422474166685659266240102562661088470902915479612864167489039009528334238985587970699643515663652710946593780326058008767297656347092373468053136267915911996316279182457848154485735438114469928623881907901891933746975688589109936938664016706011994724958290356691574530190008715649996826437084702713256695390049742716677593064827487661370723078128946815350019089833858791036712538492049903601216311837259763529076113463627405153664710378677998219768554356440698576793212676187773957307791596263948689154412628402197575470537268642055816416499693840387462593117060897758830982400462636760085450511759263474764017593732051623219283367244128590415034351986201857659454803439137441340539874016667244123768025483949089145642452794428351050693526275431092750617979009479466735300377318100503927299997603708727227507218153466252269951664254557140567816226296426337528784049204617862002092043486639945815546422523522834708901795704072901508642194521245887527490049503856219527047120217002954627875492550566375780156721965445779993112535593666369381507559396094692812463010086213694316282529772686429289718621492199347521636270748494390493868663099390038595200254278724428327561290482556356564442856343125880069906506163908458908988143653995474053079685963856144120374106546808356021173579843162377244477737362613441466580075400613757833498686964681954807712752387330980095110499480963461493532524082464290514229970309221583216275814510257177614930515019107694325016411760225451792916438137317224022300656642114172883638103205729444881572155590095112074862613547618560315924999518596288635366254140891048226781374298227533038671496712788070710598490750068032269638426695591824787501092093428357773944092488047376024078629900832228550012836476039484176598212375029912695620643868063215511543993522391867811706719543295457205623360086240504614626468658662166611281895096860029222514499492177721678597008984124811579384770213538404151765511205612742500649825549779633145046236040108094413066089726269828137001999686873304581953940478435296937735980916061467467178869970692330776598413292928440333888342166363894424315032480615539294730297467690594387392273298456403517421981997148823195991246436351828864356594054373632163474168623169677221028542197626226007919290217598634154969821286571535346817596817335253774108013788735080776909252725319397431135897433784777951981824724321608070154010458774714063140910885732687243494634970189288698814950577747585790823980715578121640080671476734490373206996461073987678599234489487076834908913902427929656744593362535180925598653229959440885288897476115306177080736853028290292986102940968861620998746695068879749415096779649358335756003801075229577224114034431901398038565627163217150092463488897616843187885160649344133577205791186691779740842728122917153204212608639203750598737789217452415146959175656536656219665303681092162363953236509990678068843102212043882421255655593353002931501155175465619382698962424230760497848226572513458225923697840228985311393533607239137934618573707450544832179735384238828539365738675880951494524879173064976678826354202237078651425541567531611314593059151261329800613992502021050397560574537936185386302293927836981566360915758173518910759285637585954010411774178997900290412965827623402453447049289153313118998099891508824905677413145253816625396228419670749877413765588887310844051940610561492411762122260274062395408011950391355592592766864463307230042297215688393008652078927325281627005582657257314192695639248244451375418859478070836621888072184032703561715455244838077818938365859920078224696287383876345911586493693446356995917695985332093078833238136033057728569641891139675191430305646709864970704622393210638825598793277545363408252563703768859562004505446011985510880759720608944739207611413860741874543382405109037109703705269266366264084263237154371023731451869210012117471590058426831869995781977874566404610250827254455803866699859502639145733047805227628895589069004691366990369245042657276845629605845479550820178085811919293782166544754974630059378580324935606503582401001131270982777594815877679829729690507640286002136065599236312841225545523382142442979574652060797041153417987130573631444286583066391805752773716073760429223192944542225082854577281922253840506401051580905612824405344590347434028051807758814375112397410707664930145321593857591337434343366407056848800225027390518307372794514697920029650343259582364592917304870561852141872090200360839810724481475027307989566982031274886674570721104859269677223222514827442898996004044643165598373415796995614509581123408388344401239535393143454994561183965811463697016235554448861093081659976297945374378853722345763337314601092043107808665232900381231685619389932735533295083562658368365425462791638700405183745228677118252278153457736103189713040689594190445984041233828837301712351520434674805944806161920019384666793389381925400906592344303668030481820591719208747985970355780456926073950353888676305821402440562395163851191680719634616436051671913712713677766429270290785855734244255021807851298356195634263057932712986776670092329033965375435218846852563424655341181451049767734967586170624476886439126888886530943435960620382912235766277162046354197061765563391306734333001947452381386853882589161440178946880532841178777379460757140774888162241277041369667469591997140909068402651733863787962290445998054874828060094840767548208012455503473740904473179314692118534509498987179697705433777505191655592445764041980735659418618383886685682607196038603374566207712957414083734392024441388580816425483617183547247885952708441049863857781999248481150174433907526446799631976378766839483165580505964053276313839951201283415823990201393110552170917397219890378431741499336056428866192979744681039141706906864531145563141832949374015306547646528362078044281121131169954288119110456978879073082193681802030387671024539858240105175897964739543305294341498299318228038612756755372042952423872048667083197397118210754708493392360071308048292415396353208823466476990932924201493951989428507458146687361504579308149904894856060340604194567966924794118660486617534681050660586745994497040629686641467222306100928531298225693596496017122116664504197912581821400939576952441868062626309408382247675503784795019926755371054515017734179489942142821594194879913455229255325828278220212418471670282415827759242855595974981098869469023557756458784936261612417945819202931329921509352116421768384040121337982547876396946683454621597965643369798076916254106843732368492230964029663033035949282259728849825708718937675868244216996886728419652970903976045903672530652408013854812598632522239299188327545366761642593914116965410718723149047390208384063725647305796503299279615057851227002616986877067339249884228894926589170247488835152318623463159500340522748694468339388851244380608055669755646557472538168308439182946171941604969387862766895427314107390769436452706880253085967762747291360820668367867051191853712220523120292861549102641716838072342403899516226310823428950341553747595821460014164645496868220985342651756195595639117868354595213049831726761973917377285926957640091988606871244623050711322121427365189127832953916266903574803380711372852187489924268324536413315971938387244097659001440195108096190575650619320260191999697700743820385507603369439245608867071475388294688803362282877561711166292969121138762418622815646756260620738220729973407485171015382260595673074434397666139893035827140489221835770816404943188494244541567319118559732308217849827781627829333933517703595979823910839496466827135409792629826403545655684059465272281640768497465807377793485248025626013314623098297225411568324663422882357124048248606725719042624029944679140523173692010298557287521064795715053158365918026819826376249731024842449906467758977279341011314806600835705281163075830182407973279770987901358140047292506792853845093810804058381007888859379544144470872942591273531735972714931124084001990772315231182917232348078932990726524721637863749361480940113087219017005903671433608938640424731544033662332603637430225726680835567469118069525010584994475192950959873101218981384112979910656737947540996159708420502827056087405861444945365705367480579564150215363367548661759288817902016808704897815192380280412742153741889564732687692224709267378529843443897672148096362188359527760362548930265045293737202237841468252670046489416623544695517081395393713664394960514107572972691908324023826194267285367386103014677273181547699086287228687414311921657182307934234251134288166823304591192940006016029082811682931198353953023710183548244308662784956940880646719182295913682417877969155861511323865730602571188274844258482512366371331360717584344968419347190978697030472556948668510374826931871938682724215148319869755995267823135434954928005898801423806685178964267082962640410044467708964658644221637739479802893189789074433924993244336364911473288184141361965366367097507018117411139204422608189542097741181305366137416609793994053796701328409211326434422854649507796136897698194995732417761672206325787033827475603455352625861334639266964801586637495119637375876957522073584985727573016606147159299277647783648950436148854028495061919621035350939893991073586840252686100676025234363225470610868782726498470950896248052920483142978310635677921853946824962604614076606051248898496743574783976353781826455020720271873394962217027533422837643007588685902076121905576554751023778175504701914798688370791896874002690324146936074272054077194740177952421083931510143112297645051423729255487317327418625684372378348731219206725544547630660389796689663546935270301660764974177947290084376684948434704456411336211864441037705153482690387552123468450869520164908602984948335805449519338829270018721967774183497649166318165191887409201276911198809265414194624639773620842013886925461136508540421980733663956607104549738065898693865018105203578778101343336612169748052507739848117362396809622036593206713109072904971967671473099699773033681084153421781972629517587598127585153174202741465209585327881229042610285078152144339550918610915692675773524029089179412724603337929385813638129528371595041723194954426549612307758557548650370328043120771809641295611207908729170995864878127398849615206101694461552100882038350476717290930992201951058417310172175232897877939583394457809308623836672547179903393011166151483257020488097475894537397012230706337294270033125253475425120276204625172453798736478135498079495778985723281981843214707603522544133912162098108589556376141342922839218469191933739504616930912422159272493545321469899666628302959511625395431962198233948465220568127886495023607601826538763359839983318174867900551075570864376551001662300930061033891710793494904465270139556892889873961027595438361274951835500152512646149720636216614330539238556557791448611242612467674135624724621069164863437176369791709380302456760438297670796988112261054587215141925729093012717594905864401805394246141602243128498919839278815213198911530532841030688792792001310015242647751653730294437207709458664313426818339093928294015955086902959621318267355103317532856247867092926794576458034271338985996712736082037665192020103007217341223523975743834586261027606988889454394481272638166232004023813082294805190741086309957176082831391044786298058106355899769579961187033666906950446581199967828882239907117008834311170505413064406052711709721247630233588858482546558777983084679981538937389158123530836692809129468365592204291116284687044080513514337296907676366115417517843854546428404276895484445481138962218580986592799048390270038135099772163256240259166674160589274704004769705398023454489972901520570522229137736508415893619159150343472448454144985308177370801499866940851830854029983565515394831266845886976433592622675874692126474134250338011764477481129387177288810521797549380099950050407689001284052361055899030772146385720504681432670886651172426799408598994098968336113255561951502179756224677534085104511337985576266154607484459319568054195948066543769566004311786040536667279182770519670798278635789612451346969428117828174460248857807260106536593149257774785610842166400367843453266612845216206032062387260511916258227382285148007962321802248849061770331170906712586061981597069703132585519976863152554262609157206125560486175721221629722960581153250777230052777581636676713808651325161770354320443967072044614101245384349453927575388656028296690417725413044691222962267453633496389193829431312509769081698319542524319865593057667340258491378244000211981154162264244172519221262325697550668562051929112247517858533351057361875218875263969766180533228159904646992422858428856288336773765815384428671541443969718980569128435795134349563211771876282768898311114691698987756300917573325570422518637391229782668949712926070880548445007956487820828437693931606931215118714418225265160868488308188942030171963863826310754076418499246733553015148949026908820722604165995449194836852742020542174433627759975019983633644595833720842244789974660396147918314077863397784011592939433401290963115051122469283283838277410364733833399563292023365706008185830196842938853245739078537059280488093391834564964201514044759549288383260301271257515887905287829719567790476692272804043145927056234273721257614334528184836141965825672557756528543714585508842424612013834705148861782651657927208192385139345369479059009617857256409159211561312197181395087983292621129170522842500469238298708351468858325114398555531201312688372087196963406734156928438582318195311394217723082016433276325091944703801203645054554691026918737661464456297507263664960830027507745987129141349531876726039837679407890815691967927051451784162038921610125857678683815793088307221872210032286651629506212188078549332854461101185286492527435099997092431722739850191471106183794444936877007499085070024667725283386678664415610449488497813440832142108293000218141519277950285495093179672508994557342618666772240983393993907401488520787521828630588633568273834077583984060037498005991819356160026476767927410511151317950255971358770320948069343536065662094372684393900345624628617092644078011606190109837898163682328349323313646062411173427843777551696453213512174716569936878036820188378685763591017942479149861168560504233961071345839038948415217432763030690882417950093556066246082928924614370505406516778837604898330499234424425030713808301481225027155943129847581707821278247975777968564180213548767783542916168540381108561290883974068568374581072647851245804263799991907360893378798751733279844490467183549111197908885659936828419456055473240699414028592311319323560759494039516726020730897587550656700843214690244993793560613998635512627803487205829935705612332315838601800356789346139712385335066078997060773698305355268817420835704115457097250580124760291864078961117337730590648174452653737753800383568847499327347524956703718987325517891439430103329958863564847673426783176006062041818369018691750128290291617826286351910342949915423313710454008991251241228930406330203804907130642629412926048794827555639585772152925447626728689734172435486163131104826101636959265905615860814249286702298104067937301629805360837712231256475786597093611621922041953563552583218349399430930218405692175441949501259028300228205340511187522151874870554201688987350442764904960889024742812698318840915269651850133381120787409847197239609684969130943210981359407369676096342687439040658013177121784790199403573753136479076097793561934731121590483159739295674414296552885228115064777431462337398029031463698939337641888126376877111659982902414375538620667645272774912912827765974699763140796590103287768225886449450721659846343244441161165342155867108180908684332906146437480862332742896635368171298661395798308385541917940440010679318938064306910012252642024792520056364183567838371701687569259031649390209314330401071152144641274370168737885259654726356165403015440204845699763093174379156475991849581720325563405437025816436693111645224271952080452196311273928948254580165376597664165459941430959114800923349853889816182873923524008884325376593913527530303951303452993628313877399436814363627585493430851282370661123226794215863732144538813104947994240061379094435131986537425931321433953786198996935060235548206919977496811002361167977005865562371681764535661911557031362618062348450250023282041018518547398768601607655277554398613588378435875698055201900586332608338424441901348738970055640135461726986408832992587024135406379115832518496754715118464119372545960161357957566589938965754667670654829450711801175835556980922643526901669923913251860354751143430137477757506643037316542603261237867722141576932457238554498284001275366027480980194993125593034472003092823764685360735657542208625192796766218967126543998247404941080386822407055002941327339662217148925210158062594875383399551458683815664638805967398402146711727521770294514661501403403963491322704714556267011707300843683753261097446672367987229688791664399792642180281466503350121152888145949138423499017096498592044400614928053216537570729677219966587259686018274983642178495530338303295492465389196936642084531704995818542668775870174568450511585317378273494966415483647048308555413386712240023894137751757564269809126353430532477061395067260644146111269004657078077539739067522208706077337687066861971674358478399936714826088957717704998927887791157362422579595750631053407710381943142414872393426190766910113974072160885000303329732279872909840614835257322946196453328830052841376164666023248158094320807893416604980368530491005870205092625942254820972994883059629594681498298054347922433510110100331140133528751932744157167571851239833311042250347348380293087294606831338307068234787564462400340965119246397953236987573872115976657345870763231712918127581051441821765507973353302806116509396382838645500625667582464674517485433781915441753672706084178662183911963152668487569669950214406580221228193362704027074318575540141044906022210757723683855227697708484231482280451056566712541225524975322102388325406744141520743812907568729494374294917056465572049281638518766309210927028203718798239357425180620329834451156887025430382884715737353496549582998291686217950046710966880923118565175432616775549938041112028553948545065376958141200485840678249234520843295630942001596517706446933443092160985238005816361488359726643608821101210140824792068056672727711569521155435879058249160438568382636485371757566394482270732804464891676308774335414298365233348853164950348782721101783426714079372186074648124703409502740447799528666902881687541379288471620379526212324186025666026992037268929810003086219465760752477854765906781614593270552081946430775321422566096533890381303191600763440338209262415665140842392421073381324226999409237930259019399022250572873035449795235739512035562073634442139249513080261344248857951495067601812585294533756219272041523675311188598019268151476663504748179761411246172666653078776479583996150797667051600593970766783466013179789902410477756872926976124511022184089364608822986129261476832572333699199671541363672274667047656354068037910327056443402836829208471379136194924379594674503782864116929655693557414279335719082797686931643065999051683236939336700734889882626448553258366880014451383753266350950954472563154027127219659149735504596733534469829274600838101750428578873385930275306223554728342867349317061811008962478741390886899124710219412436963612300514985152950310922612793655251193659278894115844748215541157422943819729220625280884998829850576006778358338043283419976912109788419535223500288615421239362888582778095907623904809336053592481351383299796904003898487964175819453079217987871428613286487488819020761487312097577831492928571974277948923032232479475375309379790745351123407651147417413479133201487757309599137443889087445318411372382972257247615623228281029373830612293811344582116951814769521545103261603961515984330411381501684359162437428115170100176515425252749662848823085662416635392756978611091754945727522687244194591818408375833478651460524936091054044063996274106895839357863929236282876500859271180991712498150950065603722711142255356112467284639030374656222315057690993560942102820532686381152224663913069719308192763665303594704101355793094887710978631530817653630145020516767301940587647054278026766338956787272723399874554252053109144802712775284975996537867350562626162823188074719318584190295525175687107375172004145722389728498110825987574459466422857431811188276742049084185292894230041688026460414350330453900728013099351736870965216278207713296141048450923457974609874328692151511340990171516170920180777098954343633287480447442281189103136088900649301998071750560781656155296027896094409572866670103830561120310786120894322401003702213220870040425187055191761060337478794002183860878473371796790727395439370916404887737713369567299817110824899932145902314983964791901243053265783642646762497411190921442046066725758968423733925721335648599855847479580671943516618653897993821824722831061329927480800820889912105053962238055156771320428739708982928706026258888278728868917615423890930188916657756008906639280156763802388517437764451408849137894593762714819142997076095209396007404181949180851763180777556764451497848568938307288628761599855976108219712590119832898704767105876425896102514651523676640021969584560981185355365162247099340644065993235256542281085364378328875874100803061731883650434147183716478666574552380143998496099548715864210917313622341629416117176816445706744834347158007661333761898645232988004862263238417820852625521833456125175444441867649315724145906514161718599963836159760607004272020374238958136316818752466944644767494293249047241110418405025863261813933636622839282928387431705871437603317065808097013964221536083483004298014343129056443673326901857776574286847900357230510054281161235131374346378992523980511009338802876141922866456920672953109177481485574691748457362713053046636764600869043688965300126163469691351288519769020143140020873941250615514958719391805362802696606278924440642779009906241412908019005646227941616372676524770029812445479709003996232078253822283868011182072050001948910519030031102643463827199952804980198608725400506552276043658430843715577552761119448020237067378160477660635008087894741990121087906950080591226035896054160715936728259276519170436256048408560896445465714323542103549166254724401029080843041760003545819823859647897730606144932830181914347818934436031743931589810290478658193726848312366582164149395582009678647611890540589670265025415082897621992244996750265710571630552126085898367366422257002776523223197638032096751886262067829593943070927884137921584488472694241115087905762209186430849275812600395839286230253098402181067455936653538415505992590022501434288759997524972917342051320358826458656680939509555750320733747683468498918884663884842043133261572724377879758642914126233980779278090642057947053166332587884693413944704777386679292978155758115909597331405104603670699802475760343933567630462654882892896128863470535788244744129645279295457350691868778298639170098192917961374387139520947310166104647689258164453100424976001976446155370428512237430615677559535776221644407109036774213123558107507539709794421538649627821411184667431863277782751434879518363521941266031209769573125478262310035888221149664705265784728372750412666250761060430512026769154265061822161186020640715743279533253319641768569439771526819602007156586823651742740254706050574464527759177684667528361358304117039749247021903650396170815407650179663625481800187566615077223981805961921164497275696505354823803076326794018769938080387838962488921473313870400091562136167371353475195409845364445340980566846579432745963193670048420897237901557659891807556978832231152365897805653127639818609896286794267422359228408230859295328693678218995727202495022393121227943808397392857330599514007715413845954310808747325482349467427200927407608677619585289040110388959163456031054377042962010806554095693284469367058035251350844327905982284905451133536788698901785425646712436115348115501277019018490184131572696404060631820501975060258097692015450955864745304959672408828477959043426681837774423980537617597974673637705351743337596097719382259963197119065140463334973745001521939838565278968913373584487602338307103315104796338379715972171189155270605654100896571663757492424391632973428903200196049559730048406472496358835551826074742825155943516272660441129722020585576912908685010961075199672235106869833124530968130622758926403737791171909623680882555993608444210643572726572559115625016302027663406288658302868602626942526448191675403635280403585857346932582301900668101110178056890192492088815166004775046779471011649147511513662737904179284878662250357844434125914848939053885285886337388978091416501674037278771760672153890856477147776387346492283402851541236328888558611915735966253370303328810925728435947923389956998287084218512249879324042831637043073261464475283788354196547110981561302575741494672699163757601675122335302717532784999406537506617086385000472609582170117543144172456291486347472746678557700360486000848710930881931489818396454075685258737810022789844154696916870246382727879335671394555787683625897139109925784149152997594994192821646483306165996514956050842473916775747003622831386239934993227826945796241496830234104631806156632166187758515133086069816500683487000920531996929786889008415880145501706089791169282690837689079970751670128710950479999241612883743402904342954591708897459078209018415517995507393226542600318407684162749210179268928604190270205881328018339156386630989748717873718493661002668658875938152031066285635282739210843099635762981443570584100057663511567023358489304273708595897062455188390265467760518935135233863619336021088764442836105800689644756885258352539707351237278543297474813424401976945865493487335752687021461064101120726411312716111998309208682666897690493098903992094400254997878514110224566326535439830873251573728042579123618995169222765501353631097612565647248486224726868636324417184958556112462176575872290032428532239925400290225109932558673294163491379157429478112241192636918757544845120723159900889745950646070044410678008331256721732019481075164587006134346016123124982313566911558405517278504259043959881672362461314907781859797466065219864356227707051048401545214590655478819916291930478403871363515630110767974079260959220933918600178422861191610605064172576636400928234079561099241877402572444474471614159192730079434906132469868720387166710714454294845957323641572278585082352064633725090932836698016252161811931454881721125949664218086085079989548696876601122196222391688147050856348515308496735848947627129169964533253852463514370460905497664092497935612013897424736016043647912726218456477411345441906045994976960616640592061313096453593104474732748671801484946346679370960647693280898111412316916643779500823938599443209390196119938808002727029830070571224208842768356251205215241698932173505686057666126663062418224852890782805203323042263682527372411585665435579432985749506498725703741172468441544354428798496895173394418322162289812124114891516558246258402056453842621059493827122981806606700906718205391839527783648705242624369802974183514913734146809879188491606672153841682998871243107260258658842212515448100301658802530214773833593381120758288077161941431117478760141926433455112630527124628410095552681038712001855140826712132085496975044499952492860119021317179206840876460729333591752906742374533271706392967586087361243001778695807676827816636362540815430852343905082178666346746109288160108299987495828746054660805017692150260698212408935935509406691281544470362490047946882505502376630067784708267478581150982805931093172728157225659808156444456207968503919421067596814955026460575274594999880532281414984928057668915901141551450406642298569602828582778010756615983927406298786727354263452053906431258615821841130243497760841609638589444649567663720102612193926138075366790727534752023472867078047097053629287530958046599507626158489651007088678868513952425843304157906407117251709997336797761126398332194515303828692822137485713727957455349673324589031738422281471047557605384665733225615988110037816655760151705834559996250028744215468131825485951131571417899871278825321127530833327167109491609588526506866253758941056615430237011019646599766250653747666047367547513957583590334818889728295659017043406071124934433785074159085473155575776210308006566436374897139018187564190638742178528327680393938278012456986928068626115428018608034409681370060400424908883961786767859556882400834262404500989405628043175295385626789699408125965456776802625813040987216082728645458803082715906740690093200685670428902661835750010902436360815500180792687695586877172721220085908269958102862753754042937257433233551161490532100133926866381228796692420041184312826948868278956963929955152996697054498314777908449500918989525891735067917771065775132781221979766099957275120085960108309818021029568701116542116566771210143884943048378091661397951004561482389115526994736581484039301619202097506643033460105997100642875161838373889693249137092459379090339138911342792229285636110630302831316978059481017071018433020431491414820152286512447309123161739964021951240652768221568088854800444931296913145034424530526753662487083296748647691086563081873729850193701428263798975814693870935282877189318685053715654689553371246126141310592903861300830850954468409750343377212448836059260244333458422172389931453616420899463013491310502234617327972659825255551299960616794638599681880689660570590762574872257864425223863752151434180072781416642637243830101534656518205643285525587402295799281860481947917136286613139872663695163203314992649064393057653666195187316594651821225569284416905097567820069561655189006795326156228056204864352910093015360455795566293013103222259655201352724864297163860745832053992274879392654204110946392063980389249390731581836845748327372580868307702680904708498568391914036359904674639520254899297601602131017011144466330949159445561660921696466812047613204995488706370655861120407942971284036687152716619654542420731674421399775397825089081126951318664433521057985494372745492120729800231314603524358197597157438153867794298790240733783101958437907585487078371620078779742697912751635867735332695503890986774835602179260344317170012513847859573661993318888967899212821192305964996850045777885329315897535990883318943703058348058952876093628957131856715799329965957069293520216414221876541755697221891153053406196109457603606997768674531731485750930188972927543833761516832307075606085028429983818519996150834590977944559706867667719480960827682174874596160540390767772820503235449320494937825443256866581094811145719345719028623651550783379110375140707424060689886029838708394528341261313341058982576694134633356753609127726991683943222587676098298262931215699372461398063997428862778942826074192295829952968460937466712274879266449730870416912291107825784223119161307675682690348902353137175710995836488788821092404223884964046601994554664828897784514296801495331811545532079545943933602044742358303347643302714973074449772959614564606920022242218758687451939938713070333613070063231412056781304231409967525788944225138247272428654169293174076599533210458144163180101890370123481816085110755139801547979414070237932061081883277051701070740768570193788428214183393303153689778363986584305334379929055876143908482352390870368401687034994657662266652053426738394821716157865463570033336473637548551800971814409082624667109451745292444656957237889394924917358495149985384865586847689962899163208864436140529866271021098805299582396389286885435855253153424505062831064892080933231785051032648208662998368888674402022549063264438671119435414424950485129261678212937363614501283005358381624023751376496604189164781900052163596250652809057691558513083052818472795089950207917281842897291828684615449247115513026699764111072120782027071356431922467690540988608719532431159881066005662555853607071482756743361878110196749206013122305317222700964662248639140407018906507753295694507611533666495431967782285710586432511330236378290279971814301450438857645657379083145280742791666259552108967228174373474655457910752218409833051368580607366199308821894687458669711366355365967707957683448272926426729471680067898136839484044259678435483155566378526307314213478725464152638517941403505293794985489382106313177167633454653655770388804715998993712912609587432341025426215933893869152209653513258601700154221245165875388839721002190057813654954402831434633300097074133058190028292412187858988932413432138612189623382269238249041998686153642369410952421646999876033717290110184599683905986606871717442292064193670934946217277239413740336164650488423255244709111673533157641794885263534502662789199977680628839101044986716903312361627626689265348775576395092111264024526341139564740961834542010756142544184861293711754433080975595086568369269679667986991484200914723686946494535547745801950082746181451784798541127441188946035445533004932474116222309481363594379675917713818300017471036839317201746246053888833020430892391341863742686825031895717447894714722298327492527452790601246368243112384553567082210087014205406834523393980961832950000231377400870934419307863198576601470612580829497679250628194523294250328159925501810238587649169458933373805291628541447507466674106217324013585965789981445398760220517771666110189764134684305991591895448149000431606116481609004602157224928645030077268387432212989423456312180875479063946140280854434916819431404966217679228057521650217597469389527580025884688347893404634712454343985171125725716617572076274290103947231955309556284852252011042270183543500182109245691645602903472373893805179571598819404011993584988763702117691180091672989069266538980654535630376713061135546038430218197045207076958498279873590531115026860249034002037117561116899495875395849212346166172402261489707001477332875049739021074468858268369549966440388924146750402978726674845967214034480341905077100832321427565792395891821953185804108943426520266520691424962700475159624483602201270173728995296570111014556505060297793161164775471689472024435609614629362648079533617459138608330182642783526063148776455263694333366759455764964639691957024407113520341441869543016671722146770859315390396570834602421875421942627797240562991330510809378428413536608193628115684672097255013539472824224000183054781777111333385275301671273527384174047695117212318173495682642897828704936247282878751730390956571230012591129177042499635551872440528863895672975652201268610616705901940943884213332796437795631370765685689211978793235105075005090726770295778690441439792434228987533138677778844396155869610215020592595351462136976726395230467397528060481955387409257716935853014887816779396364176872104851749103103260105848843263819912271616010198624819098864657449519576406871169570064572844544741950835990094696628309020715078309449611760850824209374489292170181857718960016567725033810144645569682809077297196972668226699089613146997977193833884594469348901818608600981102309411177915786208412635483324047927353570396091813164535232840342051965508725342146476937242564508501629652959439693208636273241309461916456560234893133524529517482190187062256530292896740988357247680388123674578275185639345749174818592708629552828886378229683139831618814507224184732900718614311634438356792076680066555071033765243670981611779378356645496685541025514943750985512524076155730136597790513846718874646585800244178988487289870938781177854708193479743419908365569020642335487035813225603216606029686519614419035648929926926579148139404857130170531059490371682867849333794186446484733599580378225586996581630106417945483894957808636924522778832686962377888538311465240925115026771566272433634598428763181309498022490606309295914396514694743568371491817426129155980616312675448445141211081187581982573688008881222462837979329164337501309322932860232599062566668603808601886142924329019271986651936125042268258493478167239765365826452814095218124677691374530262664200149228216575250086956925575776785442025962099944208976763626210610294000132597922534556673769697599205159420714754194658423502358336942501170154669049701519178937320650101610850491972293466553957246457726634963327995399406027068708180306828185043337482203387946970918293818286790485359805718639127508766114151737052647021732327186744482619465890492459688665854283249600367242708705767902867174759469161924039594061993905183908587109369346060856004218832037180741368286862194323201987862067851989797423588262518165147819866291135815376138515530555310640212486495331117560916163990281062802162324458645124375346384699004424696324499717015517783917744961129477520344363501687695750075329708430420087332851050605104020571153932636616933188716472826363283548331979166625383202292222246499392561448597742446723660810993682826331562350897592455930616137538285309963279568050212481829540257741278120859297417529485079127263697849522141660135930687137331824788561506232368802604237668302816689152627498260343530212907762194202985207251422470366616284586832530513473679504709447023866675067831559151346455993382391277091541613968315827710302566457854875707076784028703422923480173922385083397465740742155655791672285524998296010352895361461834375483967282450509622845836378553398598476743573456407458493110612641891900014016670167990269546091186519591858554241760532462531596234987400638874191979595759398158059397529998430200547433182687877808640561036489417265446837821692761873208872749134128321006931763619999657651638596380367137346139849381216294043560284190203478838414017765149213809722055411302951251121718500872252871172421389479161448870884472060535707509853814123795558541046416573884048905067966042901721590676393541484834167025794012539194398691713843324787171821690349443853590302239861677044008997702048756923756504208658477653981685286541336747115334470075742262273091424745634507981603998698169343458708585638386478814826324425824155441981844563956400453791438566675749920218605610829053627873395037589421177478141054775977038690506791999510621478359214018642707179248141150852085095708068331890266589367988715790533609736213871563300240294305726814171849009096523909500286623788915826996560800996446492327351134092791597322692603426695442314994192041326386691777670059264679252313198423536830401746250033377999655027773511402171833767124536618589916148273643185761110076077522417045763151016071572575957708071958720960547595385300863179857911461621136727075350609638659209553621029005732851004793361326460846964127290070757122018124287901319958876094040561209121020984313676381477816237302457125124612144194583639371789074990780412897064927682119230856095243029313106800525547374373289442273476998284922931515302807513998365301568004099012578654350337582297552076550089034876792939303061687033118464614619882988029703092360312889353888664850549601498060239131014869327189365659790154914577256662389395462477153008045691778938290515267845600969373850544543970164335886280302976734532395739164146846425927475151051953896680938428921453075018782432892184635336281838341603226400297781179966694598676904382927136450211832667561166740383604519264878732605889531695507946181149247437353185729515992524545671509215329813349439857189419348831051938614244746438340813677895414045440599173289694140367524078254474055338215708391778155198639060538239205578878514636606897086725867753624068922611908278242634662821753798190945645832116014873725345325001029181481032277970577300862611438584850475212590082247571033658428319733539242552268405492825998735285083506347143186381191442999253314978814189634510071631147325797791903229620814371477846501698806550099217143984525248463640405862534487718166615375014042896887621758148093002686632348181684094753276554137936582373435287483315782422486860813657281588154518502280289074445918679033661766809981468891386599849058818327569419603094846410302433918134553590301533129369166078325143024178772238873341001607394213416005140622027060637643432790691456555249667308194220340858633970867536801103385381781304648304170163043608534467206619106420861931578763548461076507809574249843506474370688948599099711620143218325599045968562299537619811735155845842865453537451277464552023080687435814333642549643787197525243605971870051356486327368921771259067258688938507489505608484281016627327671015998512043607639350404448926599029206865295524100090106779003808418407923122955077170127862830810681497312629910379308118937476913656642698383715333048723177478574683662437988389688974583464824024285543112089031545892782888049355052607310322647937350128849988279976681770538523963173582881469656658655643896651691118296796249789996086163066063063757481874050552986457460762097195205041149219987669116784295877795484905047405916039461654427611718625243796216653810181374019596805801937923018068122661709887886533661063949995843691425582755909550085691195941653649093469237176041756684091027489078903987924936044313968392114166735006267590266863769612584430790364294481813784009233559028962088717194040883552781469210015836916263440500404281767003792337546796613051883211792188672649933449387090649916902690174662189155691909141311239700175279033440849875506149057042636576317351607037768568874263660698317327789834690537175649244124823768603579516016741623231254962480878066155339260726252097631048682412971674101117469695850967175505291972126940055097115277761422993726755029271812627646540677447595129852619942710387515739956686512446426095677065294495360856152491157936322181743778069914955125694990226243579777041114587464935402493240161010589011326537839958289566268860204524166185548268051248278427186270005521211348611171365384282832379283398469848506025930718556791552936111132595987459749847882198311237109075201134614359225486549749716938851707828214970017422311016981924304015312259330295270627821352060913582091261277849253044646568813633486490367969964184032369575408963767884749345646154674472041749588837477250523797666907799088701431887855511118686774166385135715303496555081657153444456630325452543405868611190191725656583522328366411878956827630852056657079008715647909698875151416142383933998939123069660125416343892094437455077889408621412523486085893580484423545337584393237780698933125193191330414081885853734228106567062042595091799489619791957744988131830795106095822250299241147533672508407452187085119748591391718637690697650312109324694281239961790122290510164649374901989591405879482829076438277128536013690670674258830458361344364833500051318036896672720481280897361366429614596511455390232381908691887933683627160337183317762100923385183766842188033257138910039839534365503723811265418552671650234365020448953146415433381406919679101396618792449199466926870798025145290980573371902022609331586069677371436307678173789390998685353259919336685841374090632935140533879508013251213670557990337436704271683758466265911542002539930266246317283994634639629880923994464134099392139471817059441434057988491637702346066506292934091801219770183027766455535661124855154772557236285346542241714653999417792085872467233532361710088128062776015034484284339045685406870490520411681713014302417821437826878293500854312556258153704527620260903382728739905713706025620487152536749913859858587008538881775125165256797612211202027265642784147266584935487999026394739166063783377511069572041415897375181270510213984486338449355833187561335254584431246542773036355495100825472957897827849385707639910275163394721128786110056934110250458878263411614998817760269143653060061403110917979209182219297316104965078028666750927257554707588227845355705285388235271657824349809696480126928603659446643076418360373965525753711121642543006058701599509714816513742352359028236614988375019582168259784372748156960333935757129310516832618518869349468066869192121506617350923901419751889762149111355460026173052323327026769096841728385150977630097979380173887177220480004639075547154963697155506125413475463802102710386470886170489279960278964424099685000614005869082023373715218731450156508452554242632955896113631039409806119727940636440521560159008116596850353788164197265646371568608024936409426561412769240634202511795674735541745562539284458616168933097843634317123907208318703858254223492082848661895079965156697816977582128362224090196844390098415541373942578075566777160820209327576965848175367838106260136611709473196913614303128661569649670946673468938643493089047680093509494307318330173291828781638025608975912140983713806553454322917310098645412489408700735243411270522170169403144125499973428104409682748764764595321616712534876179467357539937852691726031240204925120789773273092435285122758956294574297163480676476221882715395104218476645257502176822266844099144919821892097709579790871542182123419882398487843422023310539103890408045001158812260254183304341372996451387133278015617979482587067279575039838158068531814678712751221623720447076490415791143668151148065079091871212870587670746434313238133142105997805921256191612120084734889611645749928678303425180775495879224261055774580173080912238653236389488110776255374882258530895069558756705562180131896162737755688242534814851354627683446886412424422526821873970625861242634120655499741203852141393014702790908666680352956815182012020586637149423608373987499143359400392627090693913188662370336488384867171230243711585247471187124589734987196519351971570515321254842694047118970665511132614857417319969371674480708523912934154638589985104674417781554110644874432400698672977810941523015287995150820018929100424926217680976359737650189476961391332312855045361374569729435696871504919466625744702066227895273418901748033978040995498779194841110053038270144222371199626943523768307292883232971714528907250089648128000809214364087598361718659353629199758437254789693335398804238108350996242342940035076788796275283527748840887554510563895040029514752376709321408517456775226840609787016043979017501585263668324504870701778716960492877009710836935828124693657300478114574399948243452766216473048006433275967917129894732344482727197351777449556913250298776902674396426815495277698724528482620323870933209981899027471550736237904225749397897115517517050064614040021884175368417278910591041800602858766197783147684075031669253339524427339802243866985124587893564341262053368979075475800961856919459516778469090911102358922464998159129747522757648022294017114122480278516283215430326047685642129451740900626209017996873865116049954260013108338019403931176981974579921879859722448153778380829256167389857717007613891633614490170716596093522335688968827975927261932165779613805241266415334266885837050021052813149344718863397759864864128781844991467641633213549215670869004577669129193590757666576084991592472706187461757972058645833835041082327851351993299810960673499946908884886371364727022591538913691337146115047603279408527808697385530259200610800381080329389280400857465718443117877239834610128619450828470566972069686889022204288290009420790372449868205411302318745530618913597233481057552414476743034714310366478536262911394345682560763778495990686468208145391932289793620432897423994717418410901592269221290265210431470861620018976839120201741878372174211971500209290462805190334004745010954617659429119061357292130085279123237099188899539153623601705367945147449735216621533476837425520508734628328372354534133639647371201964565382304900901001842731981765730708377729899156514083403368446666316873150472883778859546365016795540547247245675245681603053037399625807440770965115873753135129713919599716743977195168102785278265777278958997636369604118099210161330652031642341457780757262343859812498528724429437836165079322289355633728937455220982178066970908057729182355479443195271952013309313224694333537930653960245624177681159464507949051512735237454873306230231576014395875919557026404445115430304574208661958148757126758032454875297575739984546852246554614633987170154377022090439895541881245430605206411072640423976663984260152592453814486319393716563103424935936690541519689048848256079732592266917114509020387797215613544093224863644396552724426391011292052749368807704550282047480217395036422816877501417714994305184451612717119389933641850217910414367688363622187312673148924645426625830388746362472657277199484282392917461325018783026931203762147941874992174255070478632307599185313749969175802681572609284206714031134305626629522879697382958249797073652280684459726747457440428945410570759269601269099181231126378484855413403360414341173839824751764874456598121776971055918919200457096470611327907030348600425519350154835807161519290416200837145422198464367952688453899658375668622788541980421228363222277828520191055684045953105323155025833775984460748548634929704593362035227966925755269578792354514640524060645002845274992542856839606528555080190737081660272229669096664272680719167160848751346077060946311842807513588908335667493214781675379401414215164213222254684828741908586060513524148036352286387613940955923232748962339636476249302094789105428016169286420616685695596812827313463859959704744028326707994010779049345676082654283872287649222593894844038670418700563860072302039077564918897724456321403072558800505497634779669003295179303145851898579297426743078939390302445665653481600241748056845056657921277351140547628060423737229955424749346780461838201102863888361665730086584875967170889436668506535715616667005974208843335390533335688780245789095568103965963384709607135236314736883850145672323888626271250461652689080864234568431358909991349151235524141618784686529651798681090446011551917022282160089392148767927746281800079538641253658344223332532183696067195513142544759962806876905965039787887006133187394951698534255698775286605604176307041100849782551059171340525027485462420463849710468022300271985119144358182984085439811543619646845242720712985359674541154097395061316668376661622187267096079995541731015923066560217994330739984732180798035325558163783562981294391640595162883351544139063047983884485763855443129630652730952933055643073032925084554814818472973029785349919534078068818734104919569292511488649606659218534136140367347816474044168863452191245813992240160608660255324677414261893975673693902615624514895317746989589977420753661567481221585173172714516979710168399918181861375310085752802663135172011500942965423421083719395749158640864981615743576191184544723208877353121050543124717420212451129911955380396339197136828111352005200958585467447126105803690203844915814660313405248358289486647906412732275913127715105147812985902214218263118533093266100688807598582700324387283499794990501479671700265160872497088236634479754787151513508324827427397607915260207305315181617994298394228207047488301770536207817897603759088286360742605865974902499486054986766296417517815997297077215734165891217417085084888639882823305942569602845105528666704026768801263220414290967093039706374620185250462063789047999967479143835268472779610529107473612717599852310694620473574561738419929785566404289117922189426263001132978289705144532507506848655716432781006974352130997969104899831260940596454595647450645766761980924549516431175401448464835270048135877477795295279741232076807924512270429643282836439956592084090652094101658673953790439333493111145453782173278615057466102897529279563338381415170128446516354509136216484456952995010423645767685251202929276736826998912689516039489589366679802729507397575779434644568621013034549941260992850448617505225688590986871114220160800584378686876755558921274009819813886010533093456117311812877454229228176322509795872131757844089099809034998932111911987807924130424839780942041674823584373970547065432416151262116904696666784864695783576425790079031037971563956274015000545019443349636758634461341020448605198896997984815736975473651491113397367476328967989054511607957576592111009479199153050173419799797966037833963290795340956486432554993586747820135719496075884382624295177869338533443089197125126426888101668041336543684402568000484144724471503276570720300723956928449810200685276602781543326603738486686462550853505641982647655170929848900595449543029056184600258111596833488589876624556880770439923098978460019332454668872927945396835126409291096945858978551299110002192917874545240980572273682938736734389256801782365630269912666829391735015034433318940612365871765024865102497101535660355855612213322383012464092816897864754180484295223910200946808366279599629091579182405740650262489042514359033147846775603730069675618140791647518146710907635029558627048265781270142180720730449292655175054351441654892209153804921641634654296914083976037141446725489450228982166484066303243103521636575931006263469784620277890572222372419351335372447423024424267713426256310157665437996103324541277560582320033700276480212734758394973954027849015745371741183098110917741891769567779138091994259359669703043137019123308029194532853263120493230371569033918467535937056167515122620635135395487667886669545482575753993870968076506487677559456908569157490497488151201361690210358633720295087264772138227101218364581329653134549477295996362006071674926281053598472107570258638871783677657899950276339182068790162026355343757010886083063964820229640751846510515998536770644942393732116624205707832830707516707229887444256676236158844294776981066575457510919293228000381787997086261188801059682637598810457741256726981203126329738707735038776935166820019328871081024540277013822319782090668897176821435057586258622382303249759052631195548989609267421953778453858599584099556750806645291085356917435454378759119191159775332223618417671474367470582077795955245564302994952556742960263254737879984686207945031878034131848750217835363716100030010339558948156129347613616436165070512533906067860180581118170944582028685485546958039099007134154218275925752992556911611474407590252479149704144513906282876989959370444734295186420699755965750123595007381496618337859622148110904978495500292863586534836326187215855907846889567172439471451420511012444063173601505596743103029954199797907044084453728833276393012469490436738695398934936542934187775401544768633379171374405269131925896979827528881338829583024308118502910922236619894092518203208441846289731073179016938365969045036132142073400574041732517023578041208164636149810252410704565319575393834025445047087501447175429056568061376737668342747116665108764402931503931226686014252538306439144916420819648807446762972599678739199241423225753947047781833949831540646598215792438131079806259884110987959730965572617457803915370708733757617805946931115066384921796629341217990856990551933919714039203557459198301108101129903513564015634895748219011856059494260242757544537030092876157889581126695674327885833680209008556078591757351470074468341655155174185003136427067379290825066532038798971222320195225167880911467059659313718306295399616904544794489417831923497901234328183344255628093402739958132632453427533491168115408392885850486600843970576942153309085195046994647182011316833246194497904472394106191668995367205751330777723912351142128684384544245928587969243601468257271499394192361070749810409063239348227820028294979467970960623382700916381337502745579291686642077508796924913820409135643281653805654215497495711448251351303216890056448674600228728266468171006686100954783780634626335285090170077492449140453558275212650142601794832685306529902316388509680657525348456742883223516741340264666253267037751250164843785202653634011718429420327169286742408765416644701622522132933220541940904675222642702833262337408928138191284306996272212586387880848337763706101786721015399671792513379290602436502607463868665959086130955469733189293195980823703029909972729107244586625716579952270332603718488396802905636278080833014101338449734310831623748094164654971196572422282573337162537663850344599187840425827226039833364794463420265493779214660679918554968866285573115036418080961352005195289732920249229109645417581546547378307791942902488544467866579008189412587450995831709625027704839435834195646744948107562478349720891918490923439314308651731784292005127142588823487281443397740535390992533981448408399819095320397449262350725653730759320443686502919711949198825584199237311441640514264819136860935928892021338708336467087149174256917580487651981139978548294082790281356660197993869589777510773393725931712510826183954401845795744670515856791849529587218284961374016203253427773091455957207669583499418231115826247072815646758345343820897884831725362734941466590765656171705440408108431004651115103223336691739010328229172978168178928796250395180566569119537302613072059134203155518599771981795392244735597244167110242782354825697510685926439879461116315761158451491450584230018483625598944671812762919763666089536154848769415356780196824687380625063221100224514557760068540444839121314235094851021416088486126137012741966923832603107426468811903265084485197387203509555181358219082614185147223840937494703854108443111203948156489099464218233471513064839193411031544713815506930841164051454646488737084161909874417900969974068700922026329991418766303865913040074856482284983884249738375247793345546836373639383340276234697985356629760700062766257460255996091668864762544725687564302597362221572892288793922396385212003096678678602700981103040171081971275604588104026058057439353401352545830584324038595470963466955140665445037028847413006871017635594795113120211696579783451919236294287007177714564513995072570800474692164934019415446960993379603443702068193755035080035017231562497210695255494402430342444404426131312309149235043193675297903288862752135573259939341251123217417368571154503436915603343441900280255117628095273111252027385442901106513613090904610464438064293925653803159395698353766596553604024160163441631713127937419864604074906101923017998455713947433069090730386673279488468271079106990411580102228155458454198156344517355551156913784185920367460404974493307830088885817087844761518887586899125443508931849569604290198103320956976271476104664325348592965371925792022978111246100409235231620457939490258448009980871317646973676337852575119156024054374519389165166639717994274204250804713524249966499325820412501630057071122355132527945102877960776912817285379585385066964858693884059882225500631149792341211821776525943800921905845791789650079588884077921300870132460091363085511871439836559109033488443946147103339172127190909987368743773718300584664637982534906369318566381500198687995553048826420201488927338609137036181769084615699976652479404682029284256479869232912786371994568496638743376219447609141495643113031912321878022164946681158113835668651968413675745397830596915099343592277055807002974912611011106197983933828108361987451361270740363636448498993392937600252349736853772756212981554622870629918056630315365708095442868810545565377276221184084263632304767376842815574961071680837004042488759665063320949105265971432716027478160990024140139193304047243493642306418621393633410026738000071020465929362707249527671533420371808706170229146266228976181609601427088968468786775324994532017169107514597341444144938698793355889899495515838740425371024265659708051881425136131915562692158705305279467255157927215168231024966256496101447749373229356892134572472021240482375758440601109693654384419528873742567096726029823590655248291086729287047293528553787263776019813461019788175206261073464407272283297127293392444075593987056505388150745510723685552996299644676149490598107225048869133147612998768303009681017358591636251024166419312218162987390968687389126334405122196874420725101585589584575313356628032593767989729638273848523089144894457261233284576132129594887827893278898875190357347206463039499780079522786917502839165112839224083627670804482199597470503127184318980789170094473599204514384304816897995716667215516106832765152076794358564670490934558514271075198014546918373722375183749220136437968592183439932791039241680534608816403756787820633732356006075820992355422236027686017912043261200239245666565419914089025826520126056454278901677880112704993707911294623213398264835678655648586354268331383780681279572200147226022352489903618759079496944074248568159573711800528381564993559706036552650110087382151441958277145709420859976877992294467222671467772386694915181613841165734396866629540657179994483055526604397542096791145749986319356753635582084567181593249492402723533864549103374924274341143563107917438847832184016644660364774093827250669747345208967375740182024564341920911246344108516987647880452253135666542568295598565676470076396522935008352868639613964766010004726762606804182492719097059825095974574245009673485998775636790404018782963849296798077372113751101908904454819768833408785156432190182993988538924447051525475064693367408523315556551330851317157452730103019515938030120453295772768567319527080616720471494914510288797524712532885689003515173210731172999507274456213569594562819779922209300708461963286528228583466509608090676895172008130250042414474458030317878414733685640533075009899514669165731165573207083080653924717490019838656096512314251692565633534736124042538884266270867153506949239736359268665882729213179056218914941771413714632227935925565932584951381770061960947319564046892190088214619589488375799922345960615446783422521150583962499353840079771423376839122830314423489764370103072639406572638920401235910719427335456705010083644035408048041787508990300574561992971289602995106782655037471821780310020235118791212715201127684341358550213339752330956756613428681848580075493653601737628764052216677611407543421943418461366129997661808054074727052979249098143240014521432118149865222863541010911693145231219594271476074194831593821557364895506107625828768063552271140415249421368808423257479100657622273718225471600781995557947937646222406901984907434107071293436637656635306867612259579893026204489534854287389172302206332883834405738048574591039710471034330221616027879717295345212896911366118482646228066899194642052963319283497562415536320091413258244605017145685314338506380197379865275175474644201930352745811981131375279210024081126998483931396930722543950572134900522075563319267761311004352529038156674615162843775254005610672465907383258993251639872666900203688398829329760757625120539285620149164108115784109803766644759650442237337271157808982056265062918286850028943935756461093306059052644171388329184047841605692317832844000528196418732110589892536843360198597516368883953507835756164492408736352290464940651532030105626481922182419174908912369133709895748031250737175172795538951101616035471606129126267796609232648738770512189072352734526045670050540832036237694059278554849384168584403612746147326757377917166506618301297890200324194389800351317104338542940878945627502974151087501107240078026810612135886267253021124042447921918668168975061419176070589215874694417295795752207777655579785407111242204256847626328482113420720945352842110467275697235603527928310410289225281498052946456099032728999398363094337383760882002154505998317418852461816607896971238997304817458214700653191705716058781529425467563864694972921076671262208162304989601871280958432854055979023531252058879439435057747441420213677013985085668919773098464534143139503230320215441212206798884426609669020435662941070010645667032777388467621671474010839539705481378261018091012325766903643370812275508892173163956540447287747781912726507988679043147048523287011939738416955254755729865337697680027797571234188742913287690299066392647952116561089061928169914075827552700650484971984473984662662040799110480478398398886398575705372123733691527970763492162627893365715204541705466484455304638951424003834490296140664489119524461836176416329075127265174758803085172518744448181383345094467418168359686701508525745454111676335424098095368299193822025057058953719151618542758853928328684139564810778036797826296824530387134505796578955561659011934714840130894871560559034940336038526784977421531735681577906476910869893332392378974233339062308770910076231448380570708018125979924967368848274704014401777530584464417231638455716340532811815274683551473844287305228926274362309876788438402019396324544341166796677142244290055621554117684313459008920421282875499614046467531001548049181602895094654892640174042015651204470770580092185022323113524805513226964875150372251831627174197251115750114815348063562626701049486028079485628377738719195134352924359188231014413536214189993347785267575381063978735407702606767321184858828836833874248890924585108412617582977113196948034033855063468693459071497761308385716180562395047782663661969173930935163353533462131804390338632446361160081181293843799378679409091781535564408370003690804845418535005443635782751203569131581530734044329044899378534763063459335027686964659003736257498817879983852748227276215376063862707142013632684581282740330171249485118912856161168512137810047432501748115029640304442770270759482311816266161254939337703539770370825077831296302506777162344946117855674711482589986760815530419222944716530932704477528143731604485061982265188863570734447585032366758011320003440713150405347867434628927022457961711795466187868793006728566456579659627900242554241182778587697894241058618287404375275967228296936378792657539337695283786926055329429508699088535779218191504011908798998453936988681110051485956791742651194496049689022327442080799400254828636731527843731880641123606862286918494863225980893001391523877229472996923322375184531077544584065956340657430176739231230782197588692158716606631669616488519502328428948011517483141411653986758350821167762766465232050274344858180756982437067350429249525481702871358468278358228066930871403413081497157947845720840367254269501705597536549727145558409786379634966081456933195695112367374661672055939837918203535945500614978634468821352411581707743672414922124131534732702558141487049166102621296236591905311442183532875239900492012666319391910876765666481731352429381074433491500191888957849111948385407693031970648300886172026743297793033608724389731707727052911868955812700005948799235795349192761224555425813604305184224855953755420594759266972401534364132912994279116302502502339875402405447801473202600001512702379827252708770337971466861097351109387252267488075387423671690218020584883981441284580213231566127044095310400258043478500977422072581692407240631901184702026803093771957498296254688505561878327024728587193756289992983474132128064099738808170869245525724027411890980784249390665869846150492113307208837278666629665640150793117917752584009808260654201810799117272499598534790924412364505967740953354605885015836729052030216759116362763576757288936003294294698821261203890474670869686250835473908612860303444808170528503306619301601319101400263610741965258352733473377332432428037746841661888925104329538732845465644340134163863147249653664425297286809803251460352090504744483488732141190934485242124295732231088916468266466404989813245406161552876004217131948015742067443410921297451841293439630424490368727240926258039951507419922700879787123546169768315841171070710235830417758906615822550816585361389549465307107470072703933851391795594687064808210331736396404741602057481104037460826423963095801900724511644967682047769532911738087115408141501198048514663528788067797504437900434222175883323617850039641125562682972886978788034102419928665345997922052065231016408896450194694858539259349314081446014200285312325126410239019334834443464737768931445550167122301861161201108255617660217489207934395991994733624804226582420458165074438392664434601086134032618642766599957695305661273672128896568154161441719418153632122354401903923272336973724858588399115396380911354758482279058455057113618301537648583540847498607909238868681940475372153621594386136493356249928130236001589754851017373072809483143563392933312883746354422947342435879225807488809595403508818624435254896452202351136904091276539699400371484769665854369161763965843227873216858911655330240237865776333131401215600741361164626709434790720880726120698684985505622224207524294720911943312889488996859959038514508014309571260957183455474955118389319261865564325440863758290711369071688697312686505316948388263759126370864448139113332549595069454148050623181621671189468452346483024989987309086071203261306656165332470012994707657790037903861741190550709834329213765028077805928177018248733268603590651925755416812339910335350256825895935138285019415028215711957105064444894899644504348725821139778179262504484460329993184595067422642348600667372807620063376188813394439829895512726354080276817481667451211376425547252907219549921106377098893077185796623136205606946055251171327436056384172371780454595663991780066764011266698694033072808193746379003988799066078264185566395491215861420596447771208716662962947602418499366091348753132111467645215485922643757540455051930715656399885281969274761651628816177358887202209367201468734484732379092290444278700112095609373994942342072822745724426328330926613345136852225391819819433213922770823787366418385420495007581012598390557113656589301760161435164219457002218758755542801337793447373104342325487962682567588415095151345903191370102877532172121515796194077175676903410750922151094858944334243244022802129589441077188484275456774183569836823477589575890265937945784145120694265338660452355328112870605493294768505893905637454109906789601290976447043967259516422865157080484691684271339769334535576185105018076102796282891140092350116718938287716162483226891014729483415061569388703637595648511448471946603644576294973064349512087275882500283908739580403215859203956269836459149217849647717932959001349211438990506924035998148327858728032763130585789344781661625836231873947770801047527129320911381715097630089452530070702936833273924609868731986202885692511343688729821819444263827927949098888882133825336075392228191252111395821381105306888519677746988734349242128283338368089065093833371387225446778096144828610413855841612538153031947212004491919360488001012806662375621634773857970442516639189857834595181685477654484936810668337724199491900782343649261893600970875160096587825365170364020819116373893858155100237608135308293062121902906110076177999199610256841980672171464936308477308451045171895879143481214552442346709440267917924216811392273854476345003567362939091019583846559014288744570810641060122256557385659147024691722200512297260087750475790018944762119694744143114938007174518770050398660277568217575352450911707993101987271009568728398462358901585064369101294730693353323790995141267360721420683610420231059532642671275131603259763027705808156607640993339491136425389249234582403852912456940103070600569546212944916809076853265824394699567892738075597595486871323419485318518429587210707895542731498976700150073702342354914548942542123999001151771541277544382572336678388476560782310382030308741741502166395877564260081160948579014124439929434566920716767050396639305841738063970626050682253818136345588108292436265825290330990536895026729302996047811865395516534978366257810926639066486358705619190321474740705089413289520905720632504864540484909485858259739084474420952934816610168394120411988175487408066723508887999401227208846536659360002930725188579571350282786005714614770940952535492326007322462227965057540546198531980006184711669850998671511846174976392152968078077526121155318952759385730582503258586151251977707302509644420133273341258069037390063223672890923175934431470761181508937639887776736002150113619506381514579126336528336989775109009308154836534621028308715475864579225321045047940365316629924985901852917775747127953653304857026219345175070780349926910243619064134165905494199220934984941197309590124306030712544848231813273083455643857212421543720949113278044194951677124594630440916693931416540780506328817306100452248746071947589997922218651179817610073204286435829992592475204483740120876392332598614556129165756233009829061307584511619330413222691268774045429344312049885908985129992110405802925329468323085541385108992617033443215504994334739608880577148404781179761433928379996965746435400879576677301381970451905985566997501989932857115539941415314530225966639387564283851410578640562008370691221252087409192015669951911270877491049335757173736107458843114602509654038999033237591140706444201634662246355089035857094302332130921886371715407020794967761064972220186431157510747666968503558302310668586839154959412035006532525945462137948495727570662204860904993879998717117860393076687800795414088210892932181917833127335271533797700052634557642818508115494317436258652387541944727317811741954905568827580721288303394907392811089650460939171064519813532494191910114362053084373456999409755963489813491551172249754035970385997660546370396679194137978884405420597033643412763676552548439700166458371025696507680626713888622439368099838110554663120540776101706586400945742866281681061121007683575028912421985058615436647643583842040984552089555898830191347572560815798696321398813660790145238268484926423879856321090608857228576850400839127207399304182310166632473925181751122989239595483112372918945178403584505057348273978318424603732367852784840408434908271192505599943953785513315944057546784979558475206911141690179567953666551313723323865406886656142996849752472126613898656309356956746561171503285840780044918015587359119406225735981943309211236683745377891325114319496513399521797808689500497758854995119155563393229624438580144301740176554207877986475045902395171721873981161031847883857447483526712963945127716568814078088004024531907423216450084649307878982030389368023129607589416274842885651898630043005839888126290365833085022569891131047792503913216060235148884052655036635767313346961741882394974809828752384400308312929421429565790559697576155590833559101775707454943263650708420827118781501682944324977090124410756275168747257699433248530831246095706279798743836398042593570893129696560688244012951294198688659153069384091594404532917547251702612294461709593313374083644080221931287359621351010669808765511684613077835369276481103912990554478208057005196591976883755398189531755812585935178293942735761436926549958969100069727635205956140567759169293039019582342066606165692294197151353650298151285308965292960574171441670037046514276752334411593499095051399891970334387012842311384781510677528473562803640707464083307883590003472033065619405631095354537140070659052693673346162050689518163087778707221206646623968144371405664744159818416695852377549068580991589016409666998671922849495022524187145300966681615177162446951528033914192047617967799822537220261851955344632725150790617831313357001763610889221784237385376971191628762026614730612230354985036072641460698975822748369510988788004722752027589799115316620249336989249220782176168172123750164113946312018851555814914408618469371008540700766089235501582153236607931440030667239955312152987048123651434211788556731176930750209004308510110130368760497748152123622538476675396160344283227110158333458456173951066729098906563952169986439125048667199693450090745802833402989499620758120426929904178391789097435991702052025547600055799977157082689095338210913903583290163898632394338780046783659365424361720739223071699629155529187974482822486709154293976593531300537105880728994472208917408491662260625967390274281994678078026109181089384745037374299600982272000069286421962293174536002481447663057530306617748484952362242960265917940686279993051980964765797680844214776100649151048270866486783470417253388197175857488870693052789089305382461909746819204867917428525819165942178920497190473794999424551423792766120612661571286863132387153708637890732226446146543165830531016237085043613874302418773188898785659744312785628052461179895739243180448380447166480591639315623341359340289361606428216333958748340994952357881221475899261563598177884568852760871669194582124918523862691712004598113660189401485669653785602160549983213652438605578209703707678209734027830688215566934007467358509239328480267404562485159865127917044332127508389832401598729029627918388374853639073861837610267067705656047505016356567443405266876458323753899414952404031721191535093502840775143325658708200390426316263291587418493717576049231147296093363664219005140367275360301629820161654444086645714402592861075948593163774404121026209912184552043139354070812310299342318309237585108167976615808517368790829200587136841214083216610901229077821739286587223308733562151729711156018340010515891792927038749115543320584952489073069251900232492505399194400959340654858712040221843066980750152873967818379770754586268254939688253052984891398536005931085811623653138728164196111480427185907426882409361381477608807532502348949281704594201764850575569478451564422111311949883888046239860008408463963872560897257988798834521548313836003512406364923570049112510675555859120591657322408044161979196025520060438054686218504925732424760314629196964942682759858983078285713276192102260669029592046089902568776149599413069186459961524525114655635950244625995635875799071331063150273869561302420852868339054913972422632763786185190385961772552526287098153326866815662726348273801325078808202304657667832933644275855363005132980149389399878250571299443103829656986420211315227670525595475396292121739968795635426256742894117104588965534306973616422695327598243808414708159975088785397849766583791958159715142327840881094193329684693619928359030340099641774969820762404730187949902855641562003985328007659064760954556469862315245065899555004531473216559711718460664768176087646786160410686923919554200362234203885378344689762662915587981920406247571242923683155305654339867395988456590016300526638428327184328129601944978901156654522849325676760816946886728988381687973017959268808725073291360309128962055893325747345767732674809168876532664214556565714845779396117760913231044164704357872902114496396683108864791654206657625475707698058484268459368201196519307118222290926114174287538442213427611501755791880138419896776170739495247650188888295284275427760534191032320858469706165837422509275768885267309348143504083134824417959174733486922673026651715552848867406407962352811211779373512781792026946350472633283327391216242265974063158785181190781451429575653054866739252154157496380678862046905465243656834386005859716504996348192066820847544927744950496307852343116698695165369197284384485936825790097607331335714007924178107078340413181365300033579534066434402345561141541404376829913211049142961939473642532194390995347412187107516996684600565281138888856972899853313493537065846504716655638796801141856421760020147860910177577483790676271329553474255319423650078198976893896975098138743927777625907174220990310410378214003388414806849324024068819711210477702854850537463353695549315079791584672412648602530799422991807128881742238071548398194063937683908295701609512253239178043385762649128368401072586868056100581400815880048868393156749530367811409588179306939353398634935563006379769115682605603685700778008598874797985502249481237147461648476509022236010381023980129183302281942335901915384524107920193386782520807576738739584520982069355951756859066617302140964242588439119896370879932518717654961867656984480877955241027200457009278564692465192274266928945659701836042989841448039439678820889044227454541812636443467622131623811715627909937119657263616120607512326165456122659278781698830419295779751361268507343524159528045255269782022353732772697960002364466323034493009067012508649613796012194328479129739566447007481011511790069731509314997664680813564864664732762067948671752285319593359636022329159642596041186616900265463340665780203577189672600482278748799326089229724630956804066810420996726997381531130993205269033250704981955504162691060441467876114357877558024932368040807440531143966148228699251759247461335639067581261594759998968203371691369001729023905487798718176431821300866593171956885912097109261448075425094402710440086288973385234735213786502340177171112852213882047086781069588078278403109137158623482964304059367387675239398421756113009802474411443252982672973413188882114707433149294220781752429953198431150222602675339595078380576842839463469693570312031196390899743198545869732274845679638791831750631484359837009054156841296754786260058588738399362894120855071235163742228116233467659930153275926352599845638536813285241377949810661960729597638369041404636190406858484936453297667025517190096254638279609993966878246366021523324308141534701140597993446575692967835396605353684556280552147857435101151709520813218342385984092488067272755495072908687457871312489401725197330247986305540000782620188730580734643165611582516058839550733424481644005178735127779769290209447772151874096183615915613671861915491051530226394460967236638522623695144335918444421276743177688981003773137934860955166089038365310877031508502249236085063613964589542823566961087345111678775644376228592808209736949916846319307560048925061519095171007215883618207003034977801444048460008642342593023151252874686874075659708492113845134451857474084429831090611416028312536724813759475519856541639642275053138714281722035588171029295952217422899506937223307766627688814561899113845292392802120725797677504148601141588406073994006955635745738222087096767535324908498745436563794555366016685473333835006570475470578710910330803311810535769436251601750049875197395199341571438078792554728374556199252160602839015621012232248315867398414530547748504177424810972063294107003611412973422697894728163529595103993055983105562018676368876187037977332637255703567175630683702800936102009705996619540206723222768100387174639517964569064934790349034808341430972292504391277179495036203705404289505947514875068432682181824415989659170612904296635114177540627289999653862513207587722927248598863304137413125543364124561975802644942580764503317998755024461379038878630217950988888514245726137183224207793887850499576732143963698000119873153782000924504903875467373441236092471371103652536084077529806362534725188020716711788439296787445916445996746280880014793307772688753727803826646359824354686364188248187139094233332781895448341247878443066021201405590291753099978604160517163980435807243397370359431249895244829899937267758706013789902482624200222296796690456184254671359360549089230008703150928082735205541571368455720589010541138652105036437011479209914403942141148434044331925977807541927537121820152888791531486650966765638392810800580317151512084422319068529590057592013966401820611393870157062924859318782409813322062803036421825484762570338446257518508083058066132867159021186241743531242905469794099083732578033719006822362088047586709685909968950602295599836653059995350563593990170824524717712962473081398541824362433231776879568378289510360249410043521299386688143125774085780043837421152519734899532211231108374584351746593552705514580996084653284566573960224224864681508143771766830291252746507831661442884121333962668667999518170873345979268507278183426389703523293033572025274500551451697242211683713445845099933520161942300281294397261272593207943609048845151639448239785575630937036909190142875766321225216442886648316292360579742683784415241843789581327364292245646420528227896434612974781264687916319493019503313663340263226536185427342603034804439792480610995008275272832733167091518469921388244880486848654394821907728422679928061955155130161556363685231599016854710519367921584783708682141207433596693185789616683842485097912761571633272527115817264465438320141638589686777170987778019300224776310939545636861354333144690169215636358486184583028584040051602473206076485347055373549554994504918844417070811759942333233818056624289208766050175563236073820046172280077119346646221418681913270700345710899127205986175339255787925507855557877559188619216077832773668791479585091641517274787916714384785818993849176988711258260531360750220859582386351339199447937556663025068939123500929957664332166635400405898429128149094048609863648269091989598965152126442868074271987128200371310286733301350830287364484537657793682554568404048436463336579286218015859228985969329171091248927435685985059583033273559659403161594865120804064612558773470325126106870087804199350461559543858774470938943196516694145651494203856270194798563017520812168243178187841622791334259018309450707187371644660668830290162816221027266249899933287597960476284584764156286000648881713606885761375107690987187908749522557154225366073632809879336228318735985736917067839888990837000659182476282681925095169169816667158336151457247188740552271758473283439708357655496326524309657273203380092475040577672937943884722106475873872670393094451310733979429551331190011205673836620625897096986673911638517981085424288636325679270481263842373794030162525526385937834121711617053686408139730697826817239009684643305530991664669317665800003771315788781904269201819725141339605536732967136447131623556682866528421964009767631282250648261844739421287593958533007712836310270620531352827876526115504129212677925721165349373503930571537842368798203623260373866639283137891378786106395805482187224092058190944631714950848922584934768431591577332072557946262578016433035011517641406330591072598832583370161168744423725707122899938267389374237433854037154242449464610023271566032320309491271587822811722944183698052395692559405942812199795171210658809954588402327946953078329817520465902214038709015070177545325439319012514713233492360229299747658009396290562616245524895213146050649162177625179783112017094228291420466019065183087768745344008355258954212907836083701540998456132967495555851682239169356239251099283741459921993557422449524552848861615747306957274359059705964629868028256838300991105038372802774627678189495604168646283146872461437243491290999795051703429244944801058048452321009780551078561893901068683862441486396702069327784640382052270105044512623340945950929895572726504365068530900531675486295773153078657313286516974857299708147510987004530712772894045962217855944295799086104351042707844105281743515636427739018217682429576202692770134613488169979838086763459791360434554861972399867376744736914541346362617043778731656103425576165672095042868437233891692759198778586543186544850617024426717857162358190772940204370793129911646177300947572336329779101160621978538877619176939703926936061588390598295494319167586437009745703103360604524182518420008031541573541324036132375782160326126151515221610726621351231386993991779609493627866483415888929643400818675304655289753737494460332874216766835949001744513628357265769361979308466071976281385264749621726543343960605346071579214527625662538074812512853839949391289104606467386222009227186485740628211999911485939159085618761550321761681418484075123459486535341369932734277499234641887025464610334272739208822751180283266551439832206840816447039298255964966234108302003587105900524231748170170457538616507321241496104641856523362755933169403247744171460353959944424580413842343491034543162289301057503394790791691350644342308130011102644472886235682462799646071658266645939012030993519421533054499108146463469887766744383766512827695274857194438938975709358343159089706935845834018764065692408540801938386944696923744700478301025546474583001469655033697951198215116740155613107838320697932999209559961989077337586984381252661847389960065814563364035910481219996055477943115297374286642522621450520090098941311066128259048472665047780918295276200210020127612563494086155120451815337672147937761887965970930917342400027320690002595878234364376722603804776411733860496793107398643845782722526709509109164517147969593936916495541635460722361996497878020912751000069240674232728345561644422816931013847072139146976172924978708953970274785098532919536221150915640335430496129356665472151612007675534362932636389720241447517208163725821447559003719810721215367476663125037979899823465760180814372770449120007517723776354015927585533115846074853999519213350252161429372007059813594483123252048157560244993399773146381093829579159397859705832110831645261786257656662102238437966939811482139385537096863373923596196451978243583052748795328672543969645608612069699900418548111888917660268807986554061799679920369332868391264720403166866868732120738234651731387251415855320999212398300943390846982004513387130017162264950624013317738202000990087659966244045549484529409705834351233139224467744177937896778881094084140913734810888839846218649292780654242206624273912183566689995305861202081451716526153473243054927831962122542871090700005095016835696710005122965621339859436086681003909743527634695873245310752768912249137582107873401534507617126282047386199677398720601421247385409235252515145353647635824229431496870389528141566159244304332793872630993592495186325598245595300650885874231238145751815407434316358333382892989289164460903243664262837346386612991272528750533817950083839206094804814985356798450874818558486915269778983876907642085118222185552691116249539029445299469676869725836302309801863790088359601592527061149946443968422979411050339601512429507357171575042215291212472391945679155254756127875402580891538880219232481756559666664077444996131487967291125320638312380388304696483086423308911611719067934533549848870969539530701551062480975073782074909901267721888330695144234049640911671477766870033943763574346619758859164753245116668033567735301363944982107303947896523688063582228547292384736326307066307655508099380792840413214791302509000631395280565301148030736422195864536629573266912066808023645425155836448465350703685240678196116206018508857962153684048055773777795094327031449223573692376780055139619938552839827765403292192868074589017438575488723160288141401832498689665187897756125767292516417079233937150943283189476424394531182863444126112106445654988199546409052410396126945410831711599212864871837319655933271783767759926313236302266388874570055723648999643152828796958710734945207211076374109327348734072792102486776538167873924881501168652943443286666613894486009977953003435660606460670385223154796204197625199960903054610610301028886202800968320569375211003809324020096599380353705312972283368113334800265621185189387671404059759469973076401133431006655570281889341024747029236831728013141136612100702522750409231696444884212181391950594006098245251863637746901478091270032649478633534928097740317768463299287411642015963918350336548655811826407550000651692451592553307472582375298195930567170259040934550140446185440200056814360445440297374762839853182736047997428005655586800778436388985709570737520312584529381452390270947634136078002108637822653881542685482440000147025950323324681449199762289231027203550790564961699610385061596971672787171140331015531974963752566511341033668576356616558597543415717088207340983400038456234968170755417948757816153388496920532252755250834262748528446476923440146886025885950062532062186734635140295875776649693899498036932122773780826254904001161973022716145287839133824510557393135229519317765763228609581881675662545342844299765867119926179145090798948240070632192581271622064860665621198862621065243190905002147712962259884890036153469271289683284492269006287914605343850495923119305241745307682955389735216548003739230329381280955770706396050548434814565549572562200507243771520856792372566010271882799430206531614619094140867365064090773303439637826495093120768952436305099562423265250486925401301298221844579673832392903012872189064850089184962019984219230360544451463984471212848136150318282695998027645418845473874505652333576303087161804391252189025882499395298340370660590543820886131868967317676432665350827553492508072221221319802615526828269399817426182374561989849004201859502572393928680403378283929439664964795082268208330312251811695894908584296429825282084984399162573415468797334306916395202869077161894325361604874741756529824203455486091568929638261969446867801432389770625068074252890242358953875436512301394931023354421725597488381127777376399006305462508809910162568061863482040155000032191245567091601985547496947992770720135613352179473178483288488532645948271364830389531771903677019924924875875529346245814746434474496077614452439100903181215106981816146466212891007664708261068687874076246369753091100853176194240569354767187954240309919729872735720278863958257991390943109596208564914805318039122303923451646334985696629267988129079303273522348302107507520094232331881093358525184293154442043105966267610185787088385531002882973421391637840652304351304063868303683762608595635454081279794714908548510962811924117907746347038402548355284669900129814490589189148598952496129140156205922616287010225258759672985308179635188448979975112322855283428124280663096530243611546597627746877704955958713901730932823733795331813325682933146201316404568098075653225874041307468539888542452086146978236647577738921088503938898067899445388816041147851463923522401439829119230090173842302877701418709641929910562180108280187597152313100341232334489254238415777535640291532652852620601366389467562151725164375259563659725730509343193051688738725073547447521524752321897053847207526980483833915973919729881659577112924960248588089439548010476078686094457607539803268099367043735046233068542930941445539887959022658116637732212416122778309214568683544988695061224739347074554226263707812250103016417878244134904215211362192612831922746209235249243575323506553515787851529752361056795610300177142847172814731070113934191335706973398369990207883051033491420231600327889564092950991366216518349125919878584013010003256242437247068685613962992080024054935568495407716059666961020161905409736845066721853187266684961384993950654040640129102596767054148008617522924373470769609403805342290688282575724399212174310787683657098567080979959370115336258131447209490813865984633050709470615350620120251540881901931766514472686689393713474172934084096388004882065446739435161077398475334697977951407725799603896410098117828656338105088525335079268316629865411138404689604164105382077206374688256758364286995144333024035566496202145431164882132271310247584718480482298864569012116257820696099014300476128212417693584629094932774111002626958165834821732372396478830536144616944048834403471972886521128126375751522389955700763042384390780963377354531823263610672557097861794100109693095089397215287476347403801479629293162818010515112466557264216717071811966498573079602386875707282489081466440718727732340964070637355487669358173746324351496179475789368547324215930578581730367420365315480234086396295834499889965037609790004051453139553894253271256581787884963640441859347480523542164348645702838830047313849014636099477829854311837100476775141374676493131284654079345490329662373016927027138244139979421563141748983592048213453363839076208602423008548786230963543296114259718658586963638780268976178261210446220629850118096609158477473989147045863495279505194472615317419939655733036621904050139219519750197260892261268492602570010191214965793629494076503919240966309781807111353436147543734668222970227387487225194430140636576486457167879500157411751308671705176467001338369519206408175852978608430064909074389184562347822360909699346425415965485410490489689032356398601441901622991694910044961110603878387861977320275075159888104553802712902182175149689138397534383345857421597561412879446561135869092347651103479533939196709793046722652436825500695994999637417974656132339458419507379704828771801371402800976763863678071793176722275417395284365992816597827994543931596401386517175366929885197418465763627587053691923458040426294690870780908487106211704962020616495312224661718294332370252991081115781737717245212334764580124082584201124157789655527186516437841341769423023258460626576431860484442326288724876680982568879813001394705906942630313459044669575814028393810107427333732367831588578056624646873449066497788262706092642457938055254508611191370742755480258272761724091995829077635900349598851103904688550982406909707743440303478863934563778870693727246552305682876230577410519223588520595895031751843802009445768823444946822189209103908392186758690042491633906257702384357107176629134216689281539167502581750023095032591745473221298759786815575911898348091851599597950774118325138521687948878144320578963032700939148098201773816357907472335346685373833099360902721957425920164925580297689028339572231765221222692524827571357841481911680475383818795272134200349970084158878994591994588684349607120589301295879254432274148671723820120031918895139630978249934019754927015309063772824763542844787932560388945716785257719895660823611289339997971412764054988097261986354902807018702122367253336663028424039884936954745835544567586035540299934124464944935863469576555206770969179402480443384856817905125741880667924557825745818192914603511166334152209809417404215100138658264778403798472303151833682608954574009666270325893449949648446666142530573677700530120278231147132649789595398961569503294955407465016778567182735687934190703311698951995589286892318293272433891568787351208476255252104797738059661901158952978727526264822690526737903521811787006734800392597938725518025010911747032761807071796300156969021686551394144059768875526099305084707942084226476008666464293448785379761608163992923800835248351858049644986894168721598037569258099789064116118160968292933288353727385177268175784940852093935819173461307179342643634896789613853825218941492291431182208903766703854407690596580591890417678481672449070022812971969845256082845105227638950756467113680671250664976921165775821448541511385747867536632607907495307430036373491762890619535272123986603237458194730696157600310094449986872840106521882024012910700151950530121071092044232301849254880562340333982540196557238228223590424138835796568167852111679093111879969048368197170494062400022077455104324037075727467517263056717387610845014343826523881247588474508330206290418832356475087344147053771488982130502846240127591420571133625530700299680860019617957373807016664186468507500181744437656358017368976017257056426509848508746699837071977862691473352751104559340403353725898582420650980760891447463597137902930445980022305995844841256080645241493266306471560600057921065565825448271338443289890651672716496218796858231580964751830667514704986831630245050723298306480238580905603050850721464767042674594703659920167484768734396821850789990779899139677269730414135989418424145373779185228517413250447232400092000447547454094333145322294728769188909526326406311399907687102477265966951461596989317389273379085162904134796134734974699682826164810179969431995816471194560339149150519624465421963184803268770712587272836964580099752993474548344406528065537990761249015498494043545203345328048605015792133577870757883173869029117894294515504631834312504327064307973365276607263400092601512747158001689429398076038760017846805457651755132386238695509763622930441004651002446470488006360593538751391380263266848381325721075141493469260791982890342725882520824623998950683323149450246495262778477165687603576529241152656185991504592856793040066718717350983375387208016832467424661782397159634805980937907594390239587598527280494562844620102153282914830165190864434740517578120690788634651706190066071868787141978203203713418882085934345823494530554557030609580770007070138138026033797687365586860156757729782834131376391563463143748934128705047064766067880157309701463627371983873626758296941337378231054480999994170847545990262012168824201915457720332651094434459198292527432473255629429767854364063591633712064559118090427726780156829721198891282554457592202562843656390424003382257563435131608613200976049018655647747934112585030147576469364063233548078371525774993944833552350940578079465630220210382846994752758687450874668012381861500301098032018526151122667501330774161132205997520535436401755152638927545149445588824148475791194410283546071459667601408679861817227394779612487541189670628466097489844070520906013596588060326570911037968071643383961999661916171217113946036826244718293227791443942538692045787519342783491619742536266055896768510636521843044346831290806550375807523447700275710216386534082924898278590597309719611242906391945341851526032559831375875474856030321562075664654832340402753139956903544610726922015316221280462797154778366384508803797491274989871825971591396889604191752994247029295530023296236393648674875362467021999351061937980697160627729300478622172827597241269500281632388523415323997850548379409718521488900317940015827758954392880433473124529126453329600523723485094753339271914065924018340232578956474254676081193704601472322083702496945794136018742928807122322827939588766044742559726572607368298830301411319478072095390253655498185893485400389027189498904188582953402509447564207799921624566411554411424800618166181800374972315528981998941250907335807580503277635727263460453855000236853189923828839403339057089749625959575107650679839632921016839505774474684018070844883399488194531814671138912701507922963448063232508639992189040350072849788730836065177257960597816518951186651725003134586814267924109147636751631680093054212893405297684310974573116559247410390399390783092954998091288553898324783231522698276106657581882745063218626605669548614376759188130141180030986039057671716873603126739804181035813342538850345003007844156103579608757551036586059340493880696338261786419323500988048158810185074564107727593735536562904808440024218902616197382167167133914921661224539844650515139659622935287255083584401423708113223404286016062314456635255907107458137503729047477595101655695175243455664991416046620684482564475297276360172177204506851086709419418615037830038354749695708724448349175800241588704452233973813379505250007397293185973668279721241522365079989169735987383867928775054384564104179758415889859838495355031246183602067717758778037232317089779116597919950566717817383333162963152365083300112209840610783622570964178812041283956132868524455300012962879709556810694426525083869237603048555848313472964272256848868074161025932187074343724154988956413856988950330074712508266988492636775442455413791090593016038213851728916151028857680222586802184440971511513388366347306588532142520584939270404785128507199867289736589666569738195339736162109274000910742755738944745932941083861729226477262212598945332044602208648812302637936011056471311729540296267780521601425686430373356415493694556363999552278290077858698294037125022145528226729304069399425633431528674637016493329769671422298287916380475358291169335225379762818712789295672515349594331794227090673846573806254917134482420956650163550971584701035074683895342680321562475230662939877546640741454904163645790591013007825405556962631454485708164122174492248089266739972087711198424071621299174249445034207484326363078164895813763732315311881606395024814417247854523338214341691979582092162865313039777639339833286525181368071695918841609317304075535378043048118217671417286771467060845359791579696239064932987151780052114017472862357855294175879588828130509146825051862704880147243544498000730079112488480780652711223328004723593625256802153822723879198537027239531308601791796277902800512605984703691652193067644352877444532250167410051677857831740047737521954018728761619876588004092609532653182756309860505949105494818616039756949780548336670527847599667458213236581653451707011704777160599191680955679853574334543260981652901671360262536700269484653729068148242197558259631960931305264479689303169182866340107839680760079751571169753656030580248313268930189529442901722412213711455793650438423051786349599627012016252438434075930064997540076305930976626770351928734787463491618557896766140688475838175913210781055416909586056558992164076214036894934606855774417116499517450785351971428227524394212928086733624294472930261579166421062834847279828011343657982227463054304427110631564851393571755692964297995734079441029923138341695447583742781969827471638642372731379944673389810875407026059772098867776484356798407291208465508060340176000798066825789829677738257636016506591419728617166265714880946126074076729402559500023514885441018132093568297863567567221142874392374581357696223914868031856641998124103169917679674926996122871971045558262762974246202919781048093272720230725052776160681537852130888875360946764307945763305479741320552846229434285362980789979874346055757291217907821061207574224937106801798137820340849428672758115926341162279612921110984138501840519357832381029188956015071556757252576556620289544745396612799705534004059625542470509122942000882865737848856358754795854484079730694542038857842363227984877305389792409674116057905903312685912739483486336301913151789522555315501573007819328720841688280902405192220277252935355071863807844324799953289961355974165515316246173601207690471728493417230347179894312208236777677898691191200342128594233002781537413988555010239990088209723679544811195223438416800563765369154364410696469255098852947760504424859000646834460128052940512496945367184227511586287993670115809430076777820550567720893300410636776502054277967479492556659362886426069468435318853043330622488850105498183054125820320242059584780866938106917879664185569775691039827536446012306082260548507589364445533614884940666090364551088986236953806305938815427872699877578078227815448887631649248026442831346085398554426814624776257226013224830832585842822538916646909804311853915984376093788384984811435787773097322768098446738282122128628673445060114350674229617772591635097604569328248778609795588562743053366592569151313015458113056371677370936118209035590728102335533845446908869433058986860584342749581703481724803128591436467372884050040509546049778174996263472050876871966759711528945538876936604488100067666909446849712883018518414110150162608073929513719841015239714368412849041494106855051386362490387471393581827474917167411178103035866750692683134196938843814711745751519209742753802486763863320224227646932483155025068642805600287609269973274636192535541335350694467369706582124545483325566011717918583323528257413215307417615886051199896754242750012045440556334587907367338668987924250046388093436419209885690033663929648859106809162256481842779292011323039162415379251124913526560273506861749791058228749928496393699679872785352487638323043525312025562784436612614297409801685079117970011565610047202415903736600926034627140731380619293102659088179804249225308692845410881229730840423464615274795046777255825461524084354800781049500278141688217158845055146433324827342348517322141620120241255512165057567822680426972297504609319376081208282083615728149507787081353734768318908159811872012917232627625088798289204831860222248124927324964680374893544269818104638458053439764068287134006146256602687516440883476728179691409341899568052131878480177937573538844798285382939061221034484131844336990548084626552419122235373378345409335123470929695312163021556030956209777519773495683583002537644087176018811886724362459348717447124127116885737003098178141664072570861162935696352837901657450743189577013170567750728766189420486845745657532250986365186473884386666107591991859173814627433786202627640189915509359830198174008166260243957878387751380662900734766101810444452038176748848736895059962977245668634834595551424060542151957381131494829985185115616760132107338488104322167347244643430735274412888743340861262098147273343615789629481100054821916213649883296848690456953402017948393715485244504225721518726882338946506423081000797900276502705228762332298133721629666177184225135388889184010422657223969401690169036696671276037253444619791492049982152592557456492694394714776763720046152949383624644177820208410942671238477940870953141210989513413134797103215085073952516444055399829195112435633566780739939044739259086418547697054797356751692299802541821758318225859170601157251148753572521893088413413838599939978582517517591718257601439048377213450527810944547311115651232408852200016418560279935262911829382657060870537719056340790754395958813869075014491693547886920797258056908210856866114579592038368754491573017237287558171385477138543362278427870538211362729006393765845371916634647034984764337895660998762887543226148428595427156174222571622555044147048771488820975886607668472261868219233410805385447419193522465018228262067953475450553360487426584073755211348983674577432781596154253840197194173377217173610170631405740334914793628502292262865483159522511699141081868104212444995972943521138727130941347450155192602174724361843648849578368501451768556030349795288454564074091138210785418504903656781939285150434468155935996820705536081250249259683520696022424775143924547226895459694102255654876549437852108010442317382248542442325369213470060696872770481337373234126360877889350768252178911005727903287878571839738235802433145975369311704184531617416136371030272735469617725150643512078429266813713935247458563962667138384221031403394532108815274856364111122113180599041382165825723546635033796461598042403393256331673560319046655792907596717434367657973454174598192107657604744986961682538035270282804345616532460542116738960091800795695037031508413391559567724223414039700261837950543478151628472380567765971381000319488974064645417704312788576528455388950297240723190115270621623495635037914892624305846859187930506392821918426682769326256686429019276916028749151573612362644017740373327492533817099046101465930196192453512002449446268326805930715387040355088736968903062973709188759999484313558430025001744914909515424322345141929303304405622230611443107040036025238107958115295502776343024301994667803147904828745810825917468194087068736535140960573811177016105213686531093292456670137269152016914711943424296263623484370807722375162891751374785275455768805394485783343999766124876790562704931604579751359119602935382431769947459527750296995731253871812582326266340173865983431269905401164803410455774455004881679334889362108017930734820387438378662953690095048595097254733089667205938836989505379860926197409511455760021063522466962827447791425896277336492487509862216727551754427740835060959841373995088837305428878959729538936124541494106857432782853224556824115131809489100136557106210785305984541467106415251180247755329436181063604213649130461242434156833156503642358373049126819645424286671664052209416806463603846901991794478925296171735030425226166396054126950485981820830579080720661706978322331225272097280121331525280271423400166516675267795138400183741826357254829150770802117613022048067134993839499157331964951111474935341503716669383483228146197303377101488751890363482227329555498448296283871633688754668965759887600753238904684556260362817813687128402083621099057724963591021354630469788043685807057682698874036396204020469485435342292306404543355006310405535004926248058146323474553226193389543676772096209717870877812601131983934517985055024182465650067691571072258044424006271971624413671661653773821177971292348799774613676571695411960127976502699996346164579933717931087533125002741187833259056601291157553115978757018297810619272056539835316782557294387204947996341221790738224620423450408053341627577246732452731131305921470578918036408263821595212192444124057174318108094008734151612683686555801442481631408273932735612381881134674088454238487523559510100208320720392257876031614162522480488237927610324626512919514337292492363825570806584869704978590182402982811616835464708002812418684183278450385315682360040940941308639927705676158509305889434206324168031380490054256776333931581325049171391401072014891314228388623042890154430216844033706347675039824247433899920387182940145213612028017648833042097918901590488615914647960459089018238913490892949895475122387139079047770368742051667211355429769795632577253661634477655595573770122355922556826389845825961574545077617748342646970341460856709757351267285712052185054923243952487376148253118842728749395055076381408974909102257002035095486891890708059126126195926128721442831922032444954888679662984035977466349235491170494612948779330232495645905020702581276214820971133303873258496438944494864396910035173468511458558406073924976903230814076511534475460643630221777477620463830143678604192172313950669957043227848744878186059959436412072104501940969765217771929275582809973987842234108604107809147813773027138405840015996381401345205920296229725905501211504379732920379143643044032134934436531363167863437377079815200136405329480574040089087569402700941527724981039717757775139284867194177291613491884012786080205721088591906310988279810073087070265786171762911238979392394524798776587722020402066821609414983404798335757157241224466064625677754751614817430583905576655918984409863339661140113209891413941636847087104757254518934510682387676807802885610606670404043078293076671659874381481011382678822122792622495162885684703964519458908549977261018954245471035347194950387707307155553864259754128652876776850070108981054336201521336044763399566874116643120393984178090836486596818335321204243853690781876647380358453917890157779426764791802853152341802482734690798899858503005805309544952889147673091025577280347012919893290681799356543855788754646468743817800283880886508274306096056811172418772431475765708369613375974742363123709464250944400182879716125102933063687135917875291450599729998915440056023982369822049126439781103359325332332075627609605587676245581192470165071545815636845785321655849857545233103604629538318599039681118884243809533628536737619055693047176117444402696648311846774445972325229278724872060453761000228709952991245120125929114780062420691773667554710827029973880762818622069528333622604870948477102344037088505865791829034628843630543136463242170064522211202942681422433667269151552922418644803348695820489240952740243494170286746817815636135793638873754410899418456716327494681677334618800355230081675099930436679124395775889850784217249954743692354548937915424273719942975364652607057780292461097265611309682783957533138436774465185312683407979763363870128794979577963126839494067016752984707726517886157326164469343955624773898854791157439034867679486965938337056567899071980489211174133656242363282742403355663944229359013292145849989090675070334939129270148223575985691081890690690623185576111020094934093328976544591897851038210499667503830266327895686912528565237890945867954310092242823535308897562142556283240874094877002061205011994489428773485474399842009128651895540381481947346652430689066872778262408026104683543917136620183094195928049400334413432349781179353048909221653200750007446853617248427470737850780762981945949937173671968180063199306773922196159316029434342684092793589727814542319796314230808218041163307263809167481673054723810525480706901074636500537956689868788218423873065149451761968845108648919991200078865450824282721726489421555058804284977714378917093120538201878919786681769652890611579102695126183343517083853755976757535611242881358627353986056113076355272598991206902080474996879409126314234023763422141495441207313992331281729585171598228711158481432294690728529564898854806766484610052917266350014203337750467653459515543914323350179032004068373126321271753286966866096354765388927368817121741686565569252445915074832072146962740776230069818375815437567048593404754484731670835190140909095439301358979992406736177209447542820551008700494259632452956472008531906534130332846542593873242380090903909095983698756277497884344158764644177840573178517661459415030868684952915593919282398032072412063977313196931885524490872077008875888712239588685489237410878293967016820203683782495414495668835108119152058779783924075829663813288768612981275399762117530930376970786407891779074650035675399920770665271596391207185701967238492918432730603935369530283246386356141101283261349513281042926041096753539609882491546843574336393747477060893380291634447114992206596319846507414229068661284497844931755400163764846250352585864106060960494931043242545758259174404106577180488922980983613275800062291738976760600183109495588467072503410230014176369157114412563308703037959561200140186603406542270953642028227194695323668126723158064395408286828845348508811229422842445963812896436559599632704308416225469100120163611209546693301359029541785966568282337880474069434640905561192537039730863666591161528474776506424071051371844086634736782601931471930422996680158040737898939240865270055528089870274049366722725263379025450303716584450892991922525386438399575458509274410608380620761941179414713724779448935265544074066578189896105846716031266603389891096306099620466620182647591684506193693148146030390214299463209833686450324070808767957507656406879301586781733330601664490643583803805055663007199889191972362623271657165328678443341191354206299538211622976872044916888275159083555076933837140976819021772794785946631502120328203574953652026187028107740845689667111310024863024493944035996717432245366302458621069621219159585664943003570473025185540215456437576060966503676514508130792676127243918413297293113931444014471424364003507268207396787685036350279231484390730749806342607486494142467391173580108270747112216664070723619216551083900199364221374500271358576503348822788632515192686198780443636531433742778870775733409584953661354272765529301579859949899997877417525050314421876674898609399265665386488120316624152997637199769488085873389338262357954120425920113591416034381072424339190821490379578158215733312827099623978394677376219710403954075951926218746964613471878384910481665656335161892143586595064728838916501131068525378424688557681064179326442088979303436335629150625192867423983756335120427515217804753510120783094462319722098409181471461249134310776065853411741404417885480113080618902689430062283929446799515472678474453758203900991989943252473421548476518222833031845649489162183674723486741830969064153895108539445388656347491345401623822335742111800898705925596257827918192599473144087960487368174515711470489477375887246876841921356541838842054858972608971963613449672688630663930006283901740035533276200891972275121227563706745920682752521172110425991678639592982897379192574635568465873001818538987440118743575205089421322321073463029004884048441888120437079107513826382071730135050652700352840320065702256411444496941726158745816351011972551721105696352268543492625803412975930901613933342214099905051861699134234737599038083083730051634829891015142480374258780961963407876668308855302961533511589872164350893669244681248450606698971865141755640950150986503234636212406900216723860559695133325612880330940008408563658716845776558105872853677980980216153120968264344596421837789557572380304451547601480518655682249468006600178663768982330596571535435169251101959183874360023144500059721281040992851370109173627134461815439340233640255721418661710649123252578986637264451421416076610358421372926671642218002262470263732873925238820838440795657345519422319489394641070550348679653871929666088295851169324998095991982910245838321628032325215617081129994234963384404433982813856407923159302111152150766431213450563876549064659152828239636719519799784550833393404658971541441914610118440131561212043867752959935556550657407392887494460738450190532605649913937216850007176867659742156324992735825456841625544272499328528933098922955103395333471640114688801805045065823484122149946297624745986276286534435569718224176069314503565866988377792643356369645943331901738403709440134552905387134611194427294367657423633270983362028851043419996433629953658941527220386402560910122951509916184347960920810930331235926546763857103020536417048100279335034974881676756450988129805190356678112372647893434779440272298038127326426660606557807384054365694482433906127099954817140146218170165544106111795210745844354550680628882531796787047959954704704471833497437956898712256423327452195712307294144175954132554220410442583093336649147771922639033656539132766089422955475192997798412319591321084702519075261406364387887149901876388759671877609066166302919034908023629843397165749651084886379236637956324159205000521449667849612870853188778953326663738413339627524136841775666249938599470568402385963732250988933256531744865298587822340489927402024432013976486182471782105558211598460623825286372204966325047391806455233671099264809411327493479849425228045339296586109232857532600396730112337907662083753611433265030474721833775451990211418442629895014674142262986264880196585556087158806076911894654396814334199734860842659585060448590712213428927394512401346842465203398764344078397795713903329264589549595855199594979040272626473635544729028704099292081279035278675421914633338900948276945866570268444467040345472833863521592591273396007600194584780971371700972219761662902391243203643249142880828761347182719559699951751813632078679198861710129004750024097670675408912830141147298087138022073218210626937904951433765281718522313244638437530179093741488236922884477100146101625006977444742413899449599591304561593549059448531418242315884327556901428548959398834807109388601631011941815217710004538975549196341594694260719682761162022900858394577667890909425576426414964948798550134286692135972467242326652371727335041257516897228264768900324241999472427837565006055215517088996505127522205395253028294374300839600863348815097981191988044225575433949700287569288837835679727006076113840012848709566330646773436373492612210658554227016189323590851218216984214046292625534198661189807129454886375563148791254473122362144611813276661137361441557843357290482832122036531736369875784029129086468544416739382917939794364618545439334267580288881184021260089780665978763022224333546885666058189204027473728222474257841024599441922999754810330935732509676755554910077543458938796493270217308132697017947892948993017979029082789869536507787848549748984290276678308508369069540202898301848286142750983036348581081346023909002304179581828189747808246299152342486059510267911556094163140897342793047843340251627156836067153589209646352039037189939853930284439239115522133466276181901734540234325217461676003141068353594076568414981845102758331601197034275561735678563031701879890293311042460187198753761192780253361366357103392528769445651799425328030234470601018443007201279374869753894488828947871091629366590303059257521292411583695515097363649121058056113732006177170884662530404172218213563673630991028012800368404928286441343133005895562031077259914224101062135632463605239050411393633216768186570333649732525378544840656379027335798297123364913955925270953894255982260672745824577212108662577182570891802097871406212830632423885598427317115059022417390706941898583173450713155884166360777126249410882105417734428063598905545299015719574523816014284685281434919989902432081663793536615767928630574556550510769211052224208642034298247407908430947588660994431046146856170942499051771394244978433563910858095319145955596547065395869866259187297449052603252404842571560658837709918347848549010512376868114043370965103665725602203009866928462736915432593095374810497749964759451489695556451823243899859454703790931555215853005085053173048345070136729498431448984446341915586269608565867565988670896198327165617078767832867485877658837809059165368911342168747543576396186834547774332829921411860116863610420948410773056885530058387785511586356253746595784894904716232431517659117679345889380372586441447163244914443502792904918774673109002123643804691075281772906356804246785724534501161163332822438317147031536477790045611486443141128204444613585083831984207193528143111596166696152947212321152650978636968416087375133728111704091141831373450480326267787312916524834947164440838355709556745527482962093561938567466799169109386208024838879929801733076496483804738943293146259023497576378802064648751611893826475986286465186007572063389199329121714744812043037597138808082517120489108012621058489643808130304322643774044997607140770365756732105206551534917509978892745409943860644480748742453970940967824988089743240964254932584468674960402258327673830997376737701942483160098008027148456381560032024440412875171005176292529192517295956685759876878527503661394776643931531819912541699553548616076407283328727526910546852250211473510269428468130879666065785167963525392179929464673871886565104590066289989845677332612786544141273920298654042069790697657811502976884408109991848592003721218500041392681162816291023622759733057211502422495938701795897820352101275162253515476188067616717036156758472538046565924028074572371347154352468214901034310513611804590099581120740028958683006541403332734554983043252638648792191554830173454255398599152376052674536080219230015208454019384871970936790788811430692463675985471274645934870194809924460822882550858629504825171406099655253140979691670515777552565425912256384581715411048739528099442387107471786450995368397450108122770010456083895456333204091263428485199469040014022616092591600977578814227102623225875458575636175662362209170553725977428975041415825114577000091810429690249487907816112195388941828490682298337902664627155392560829966399950453964375898473450518108548060165781244342209938808353794990827015482890554433784584518045897683332106089019720088781965744983371149473594492870157935813642823879474658659304004059937190473043113587333316145747453422448372029276047825918634365505897972599229811993133201778197867956974400647484010316879847059714779921717954243197979940892721873164206388958559268651953706786619051292636180092846019634400003802826011750432857934835879158375496619725467095348050564390106788739695724522786590418646802734265124172090743014225291788140054369913246906013375977936276354435391049455821532510323976975316704093407482673188862564979241973861740338649430952490556991386175737091172047851833205564081844182735674580883095808439371193018937070910748343545728630968311882454718603158720454001392402923135261475426798536425452830098596991427934610882623395080583701193568983174784475341484081882872523730899993985337681072667237376568690913097023060014970583028350931979990727938966361830002857622649387422260120439813424984277549406393153548113046393367279302351081905832973920542853938531310135400030625291214979743107444050100995009864411160033087237069184329055529049901416323692790072931757040634321674888605535720458886448543105158655195569701205914072617888017243594493583207290548037524207467997993033469934931542923175993517359764308510117387739049499728206257837517097071784526226400172073660470461708552770222531292613076792366919231982061819083305576721910447018587665867547014786053230402236169405148221543176389287514323061266556964487763794096305712780561568145099184330436730555821529223198467701196080519896181524809740899521258516980293958409347836521597452144796150295547601182706666926377409067839288072596733355075687672720191752863357975281332647432474462045391114628411167820860889043076006622480750479498407161174378677490540268469862238474178536569007682576852905233812212516257623944424199222777021901812425316400191819649869656566628054840035389533052190113095954711370658687024329132384749034727684143766888472606437399144838209605352573927198410603308114561887692267262447721805549949301274874780852923163227482501532859667303770599828662012654096986798021984778640760308181088103251678081278656206330284069049825942212223590258943111406389929422583105708103628349116572543015762496070863483450527762610492987244375045997142833634722020967293925266635208275328674864440696754909562328507142579103477127519794260871284064783797002391245892823423445087147499800939671591348131122204353813663238528327373407065473380406089439521440930733837828385679961907812053713463066991931432225579398682849089201473236531544015182779757298649057609530514879708161903849796870737288972771028986096495875922427336980333272306552802616411493067093974694537041528685654198164904232127462040873723704782982742392744638886243218006626174018129170739585355333118224336124032414930461800994380616797838152367316400783787796787322880001221220919456210397839611084557147422077839442459492408653229551414243871699580075042287979949916359209874357823009938439422710140000989232927508215851359088453575116609502604076678838661725756504579267013153963711920358242207500638876765123477947825770264832148910323811355252388108074909937225752881955009514011371540502721303150808539564826628200786832555966357533073039738324238395972239408168427830075223876372305538307202194135064648871350850401054052102021198053117316595730118844350002104433167458944413195494613379364111336499124239532975662173881278983933368543620943780410192584353913766528031413938695217563117505598591289143222363916211704275544967969479799274304550853966911440433071752377544027350843641149917570517381506071339832192778304259754021349133108678287993160813220519914409933165736358826775663765347114953632166224649007626290570350863667595878586801087759206711329292843391405361395040941845499468713366319613281883307563790243036055193843979062119810764201835952175209515970011199619891162784801048515688864708252254818675911166880150327466900714529323215374027515311549142767854724836513278853455017452554341672144633457614053992368177029728928811452293392474897942643961419201281589042577426885848775265170510908537519710042199510467103042484062476762044869311139765499527471292900953243538166959366799979004666011330884716537756747544339385135015606652294562693518835886246007605149691566278389885664326938551097246133953121122225624236003184729427257308223244315772041869731894316707269714317744753972368101957200887420695120496790907692175762992322043832301908922547816092746917305777341012071227402899664381706776586148205071785740822309916527970358776867117658075428048235232476034006607393943478398752560704034663560508918216302147093384951066125689876112113030196772622204494897332927141095166832077393446459756823596960421697203087060650667688131656321737000168229821368661543086311725455263458624844509807780475072640271505545878241346772247523807443967955612508777786402728936092044560036789333745598194136624503788658052475534814222446047971552500606158276420537348182248241583962062175056277780807560402069281465052255450542071030548496458300593185103129684953506074940662330795278184289841303175686407332204921556242621952566269546678343107993197405792452934590232771265645495164749134216978918207144508078936228688754177288274276511401965261799736047976412520807071158801436902191048915830011919657539425540759210279659132726830986253963925702549877817563834203439711075866133106833921906654451884214400170552837919292536171556624634762964290260283307502117020302172526813745079926373036170762195131664438296085105135838075556396862218703967802907881701131957608924492178619227855906621833206773046503640709514143231747072033096559486740030798737014651984392953400014134768841629990511683554748162110959124060884572682382339246407618970268787341572026917594613484215532840080207751659432724819334181619668678774870272515599958174339622293991745921361444447564545623614017439599417747723167750655208233727334985852932172767538361533772571310387101055814392340623495142349461890692900240470070905939441289485739307284761295808614793928557110207795957595950545740808050375256778528174208322556096802676714182058515016039472631056746849141757719836585083196104836181467703766007261877024651674675007986598462037370347036566491845119869719090441645469975488913670639095672463858125462519902704686651671304284383647095429381844838403369636076381724079833789191301207639830211252361375199355955431369024249838276747451837714030570151528726504926494348784534965225464767576739742536034005838003414098208362098236450689105801824314865481626962041117355656799667276638523041146961688634606651823727529987987378981973138702880744435397383743872763353479323045605769567214462079285528771050562462598840117514000592863154265668072082036620643156482981610088921940879701890641989100186412559066351616880380102816294379354970392429137474137881637610412209173139357651860739529560910167344296458118946821073517519905858849907096839025446805947642471525827252284990827312855026121648021898260328460986228954406615325494552638066286522062524368436103539840989722546951033072876593563849926986884358003435431975236864431525037291999465660431553081455494670984941391767962520079458442842108162226106872251595724486974449645332196793011478406391545090657423914514766172934293670970503605993928317130765334396486246302103627132506040222137611268285011524175403963445718719501796343291561739336520079715332131040516849335036598987933402890131668083661595895178020961911253459449228000661508378594588287123584438566070791471992553483261272178955614839424035011517251598766656657711603249375347544544027818431369418796692047818525678362113181564280434917879320279579527475521747392779166648118553411589918137355989504797100824736387147741936063949587984622544661870939243278544916573026951692193628467320966095703141636275871700458137929680409749902460431369345971505197355681835935693686959395308445158957787186688695308685391172500146819486670197171389143874208545498106581436605172145377672699333214525549823208593514713799195351444656862401678545850882095518649733190695797893666333026036213789798047365948509030064171861206745387484041321505113773362923425933505565139112053214461956129532116876526897748904081210269324836050134208070546047201701079872371976192369652491514779149191570645021095152483641332686331208776681384152665236296694749915208725970707267708731693348352627680488437573308119001507303065689365440667228771621890283766706667229398424857550130994039561330972623087913042195497495899737786191223033365721415386770768710966314411212141930699974345823599936433374222523927952254256967167627205889906733339525992480819375375896893831290010428420267066984550111227835769679713946340802142889467232263742657375340212577532023713900265027117233104449592348684242494039446814723844147672638888202929851318484401331416216466311748832723655725555003502640006547724465916961291489904798616574870290002795156902958515749833294751833032884145346860905067093014414744546405194130972014661081365414697408389636006089039499763910413340990079914058986844533952600474858594975130479947886552529516728228120718352669999492563993619605246968257180985894623009966384324569870194842127477210920262654325474812510782960112967394574307982641600015280683724738870781594212257764372206047940115622551727789886822350367284568951684304800905442135031216483619685737858482139861789296691042992869363615213880783798081628808760741384790977294936472310021455907355748063081766299827244747859182555623095811411274934839692431508211410424014164730902721611990827276884943624534409945431506792078317812906113511512958804385195292457329714856329257066618318831446863461366359673097923946130420032829344738960158435908539416712538961785907876655721749881473484738611719690765363954415990521719211554070895466604356525124378332812012697716916529231660477879194376702947425955774892922611356442303026305965025125111775405236248863777910741865547710595553873786102629390165969992075449303629766418747869519991993284440062910542270366268035621837160458819277101612711654883448391953936165225871797088908140362194518940900354596007947317860835846438523948871719578188597443136844127186914139499399964399403435272913065993905826612831530873281269080693756009452851052718341620058385188491930934498035659623464188900359342266338067362494963157842706389756194008016987149417862020077970493589170915489586356969175875307450596253732617457734044729855223819563895923124764077903097730673897732499628220914829645599071695252422260747211080038025162689128687746028271983321885633296605209654186155133539232518976721331084233964313804126842722395854914759971638013602119176544439617939239679530486412673175301345463571187296385797938470404689791472515683027446415496260764192470422590970658719765699877563160907796534361792575965800881445273030551161638256490800397019096787199536393175790733828454248352955796864009195123784972501550893964609708686701659245624161331502353660980229520703497096096996568170579832987526193057152682601602036095482037517814839114233926747539995637703926844122734903268057253573424775500736583888644269141856123110661732517958164318644381345653756486505824478315623061634824665635006763726929203615922539510300210746498526104237019280691937913892573145156180742102856247063199634205554517440146155694077484701264888002945965682479166390226415748442414802304080538918498929952223783894412823827455919357955355698544880771641763385838590822823682900149426964545830853310436375754854533431151185976715369212553552236813180905320416606674654493295918495355339683638225969861309907013330802293767998699645766516636224413321821698365730204715710255161995884830615056781190309959521682650988947470560215816142285938835436253886156440083153767652351677904032527659505177161756269633111290444628554430317531565877925103259140591658691660966639561322719708840766475641439654865483745083581950903799989015392602471565282486493170922906336627817033384788466226287114430536622287010081169883220786432264206035120250216232719773165616221629962880670973020195484560501780653595483230785725723344681940538351467241601251212862664389990546083852733889545393555145542948265849396296929425073080742847714475796054112881589054603030457825209861016038170280344916187681473271048400895783235714701608290919251408941479433418088695671273015220201566213581521592198667692814903733460331182082933545193005659720144771988227089023285679580289448014111796521844493306582072829299033750595342851387095589826798840770823099881143507240147441352906129403705594463413657685146567721531006437463910891934170268832574411001302948894662906204237172172632184340004141660019033781996154501942742729664310624528520614034201309132694943468144505170550152969381897494868938752440379714711904080514406702467994521758082060306675486960095217221287548131101040994584682421648015475614837738168152063950219908270794153291049605430146755140820874925565166348159646687576844662522676647292597083476548148772851038693006221394363717460848148265126870127544315669532278157344666210524568115528925231318114597209490969387830946882530486112413528578374422428967053161895209814672203247235897609596478624010830787918962609587169890833485236619439463958340814551154837217603506723400620719369771603454271734886820279928075890480795500629349544710865831256308553700872931781652623335874183079531994693016989247857975087558600921421435542207380392069889171289331962166833776039856060988261755745563357231352131967612985092589084544995582133900287042232828798961483008768124968315640245922988817075157815680766628505673285369648270853255806632052697543909628685588086521604786557537782498317137446272483107404565443300709832174132261298726503960270425796323471233807559010805767202824455867003632282956344775391890557074314176034804664383306467871362624221588962356429268708813115617821409525516409968364323465221357418876115897235492424266296124667216550681807942456014753392116763700472638354093284870949479936268784153262723473282818469199945946253065008535589252220380190044548642596658432688735982861640769591036924047038972427403589805545187200935078828230929164448558091500453466998233273152466878405165893908306677145735386934334805442906073448268269497654567154273635074705581408401647391475505350026843616176788374138833241361007672730512062518327372450983712700316296399200929997089168707580902864881658836723192550685887145619812548261082947303814968944709494828999749708969726025038130295102923882251294088414618600244797006527885751859548602924547285530311733908104733682294954443632789655359950739856141349544021563266445713366929951807096763083876125666426606537245267532626199007896382832075490019113069241868773706594970656059429129847653907899359371905548185721994843733152894581024629732096482402557645692454226790709808991929615358213226171790979956626478739140310047730013799012449756668295208099840968249883928211633805551019711654738099075072542957287879904256162292600966092381627309690067414819419372167304226926397448316206626449963193681796702305414244033131924492910909095104988280133634047151233295511024664305680197965538099210745037255398863252364989935987417398661721918919903593105520883553324309585260558426770988074805325245458516480807586679000654440619042151373612257390115384644238785252642183932043449799972463752944735860333187190686934586266463456291982231010350728924915393125707365580377702551220467500395460608108653577359745355553254705022528077674011371091323098607976161169495941680555248409684434358552100854885459928563453559549524340245996872725444375325607819772019905646648067384619904077098273335902191444168144715247370150070469273284922712238503276980260495225201672857330153161258119044923718397814952536664790499319497256775145485445839043679465760391563001494025089097458638569418637354757001658908503202177120838449376635628739925210416354945107069116857684426929884936657519229368141199151770765602979234008184289465426256304839967337086376073265593631541141103830773098486280430887948626508677866921254751957653056566379983948865260233887198995767780648499992519110349972972123039289537701731210401980263006602963643945277429560004701574709976731418362953665405420153212625919140349424074160670420900774212770698869768377279357586801257053566519818165378081332065498551158838865374252899139942590092160096897150309276064009301078206195933347949083599251671918927883771195081059041362755485372072062347878704099157336326610881420357642020683559004177295993217022942973886336858812493874038435371158321683349122205063530507071637911125062103145473755428931180976540891280231248159966759769793910099744560854115064376378381942829982563867647258655189395749365774062145087637413458054256933229803628063273432021167108624027668113413937102174048291132171941090280690808309151619609862277035503408351268495553829394735565486728113275278465761271917819095915174902973473377690867820992679250754300895473842945170562584514415417716053590493052428174620556943250605070915766382391669706973220386192653955597704084239715366709565603904898851880026354293179581597469586474194885704637898287752224659950044886147092916107718245918375340868807651499683571079765858175487609457469398034554906238947490054659393151205280489234231672184066000475813382714069853028009800657767401876067547903079849161639729824492966973427310979949234235234018268746960868407676463928657714049445326590464727123299798083930844179052988401214263150895850057378966339625032321924158205235359300648984727750246140060095526018874632087444016778355871922154060413271289661346886403301646674409999178458723084342899695440030327684810043792230518050926808833496493656470905419614441306677425860590455162476661264994909441006717361798024525954592858054850595025045935081297303567335698016482171990229056943602086256700302942118744758339582814838539582350502086558898287653779375300846681927918866467660799836546780708995796946317836686776533409015629651089310689221846872024247005725367246330643068222872775476821545019641220897196104019403414135054701130704590232282168881985897305216832523636557383372146320573607353014892245487646152885911720716806488363786065132310232056727346276074932677399248000246462364496764948592544651184846471075902381387035041928016840230975972893982169411794211670288887750845521219919572739750968587110263415897318869891042209095930878002431819844736668426944440000987377523612155150976907780035868862240672501939896765292071615153255096693237246156106958097474169125134754536070104707458262803378221411317932304934981688863507324815172578643869017418374807889849938156329847741067530006116479576987166557450035794776642284215124396686645491149458222815109446776750987535750599209288109832962733867423178614661620459997112919405659375040694421278366788927011578438992342873599053917909978085651726287170252483385630706279535898015133988098219007708891550154630756549617387354863470966403916657666171974236137744482588263928473515397045200633289031485727738205127069231620497474427101441269162971362741853750837712974674458222435114821932871547453525771055858742689894575884655561696014747947314128982004287424643301633087617534504126351476302302166648135204377121787159620357053989353347809893854577447336689357135397630383849454899792615591876701427540752929941302385937457110828651976092543262378125795243268505156250130184271881014068484243792592463063192775370065164760448246578726816011317287376224207717366716107695657859034876294012447622117205782018270324631931833024526811514823756360418666991719512477445697935440061732721166015438716735698042032201572853116084688091774756563884480634753809379296727630810790902377744561279918487039684191290489746899505228631885496065757899585636687296908688141608938021803932593022831045438835167480142137087846012144324650888657108764935657815297985078451221135770759370029739650295340842276354481321749558573484689957284713949251223616572785486716226657667232787482420344871839897720255458625772551826385646441168052425836944730176395090753762999326360214109350516406385339587971335732234229745182893356199980018449112675938424697028160959139413998651969174103363477320897628920221767538276159444102612050226820498161416606602560716308238045979884746684683306258397074223805089524953906459883073520907890268858085369968631647679124185814065501841370211702771197013555189489227865053684414018135758390538940456360799382636156194720019494566875868466206544512328159048013690466453141260642814144873866116875435605445007854789475671129230054947277004837458327899622584700007220932392123341775896431921497024188043768124783514268371278171074919713481245422257774883953134357090381598707779164511853352680257662197031109892620065083774510987649437131008562958090272155130375227285495433590208951138778523501482854232523794882339373919887714669614677463725971003481943549469931946549739450600635766861939600994356253230424508622171790342207275420355354292631583504063196864216038031876141021522812295181343871621356813050277701543722169517931380996639213043696263609551226862696142703473197405039119462756974371385466003384837606966120563607238589561086931013221052806433560231324065243484489712093305018459422641983280931609601800250997052122172886913130657251595402418974894558412352953157483251629243416858785898815699455739156368297978239102036814229330267166120345208600403133631359578836249903539240712602137742306773992219265970290543644468239283930142529730539954612374918769569974839858822767478937468046181382152617991635133739468056821976225643864528854408188314709487827668366957046849822613326781261272000147316373566964190823977817402179768351996989356011238366321578062610530612706923391273959663594906166326241759301284899271391041789395675639409558286822140201182123337017724054969427528903302506491292516016172339405788901663299281053733891949497753724824818343051504778888357371195722792286344425762710775992430752090821254932192177253936535886184004479197177433585220186481145497222565835925594057561329171354170204182117903989898820273042818750710089379738498641767957650639024017253002730885374309496144987568797879142478861933403193682399127631666284832724952185639453375116760648608784098718073007051053328064675126321812895088023140305494892773605527997924169695057424545800433234432958974440623922643065205640312614284169572493367334709267548230760741346977364395350418752051374188908975216684389709817211460318456640370339087047396282324438081706933612968304282822233258725225094314006274337349055612489002574020538370200653720316231905794256668839057677812928345142006486215838978476659297137998042245511291239074706665138977495967084940038436618472117159008071100798984098369717070638384080493772435240502338110235032039393567752878102745040332223765734890752178388072771153637762326417350715696041583953871715380026386674402176596366191765860313921019328032610237299269066468364302424792159448232105652602257120308581608590095261871197747081497798984214038583837534560243358043852241533297482274924884342039577406976466849508179919778971009105908746131420119214169617368887123389863611212444458322060480718111943344656970499307763111879091185665958361023825844401319403415356942234731706118687502956180401325284568785591060224046316797851930901123088260996374998311864566125123120912274170720720961346657747811356576606736465129337484814381107170607655627467853171611068674781016722605106558248558847478679317456200882769887453200609324496427979465584309830782044097054099299688247596890809790610767867114701181881099712143106059078335677223367597421914579141523811070589942124036515485507451332405873907806270295902755624587785424590984096764795169956272171460053609097919775287688097366796159333374997815853589423323331856099591638542407639767646562518924463629824773028732521211000951987428643733641759909988150187040911449889481994822206171086049591913353287451342632646444669095910200852695297379047104171278245811694629944003183797913379083442757546884745668721535394350118755021983752379721733259063971347313387363846013782058602845632247617172904233032510988294311434872900087619452954869844795247375509917200242618826241604437088657763051425356522083561616015466943155959243859134159168964307054579609017958758148201287400433701172158146429747793226649738143015457604694436798314849227376119370199756439768918343295214691037452253873925712031292608568021558147554216184845742785996691127369027307781537963943890786201355674686274363128860200421298765348895113689065823725936402018093437251551434151989084066209899134565791348739284084068468266921445367674617733910063218627351921031877337610176464655139938032019476222725065525247443246251689064377101553816417592369065111360914013221784931261371936278589127219387781078198640955166848038888339518318609582501442368550997085466018709302326418491490991307091083995586849848785080275270245669588836824654374388002345782772680528177384103342839940462594024619242955331218886191470699382189949314227861807458296710630186194767269362121133094294518806260560939183392822116680012752279214006291249058309294384446761110200796006314960705290431882137380219353265246091274284735588707327042192737340204436087632906096793071196631990259394906210189066871417934012842867760628107290544947994699400778532017901930697718391104711347649386584276171382138675639978761745723261193688965256907297473917915849610678429899154749764114995188439778899753576691551589656988465854305799416915953091705656871501735592420047885644074353330462873613136710893922789402505771372871142775714354562560161244742131288015544134653193874274673698811765541870284619525392615027473315881587613362347766876572958072022891884004773471796745327822618968345132527484559845637222854092944899274506781673976224991602143386665417746127967378008835278385486825497687398714729098361901956765511188846877952238535464953009597425017491189173285846390314780987634952628435642529839155133172081743051464517985608279916201881832512698100187457333945178820317368284078464105665141906521565790621934479980248670686905133704099737795757551682882961675648384371772106872616573434887450037349321789679225083647268433087933698555786069672639876570092364540524625536837959804318370329433832095443779817307743985890684515351061849968442614852429618389008833361500134668021975227089889769147538812403266337477717659050916180442736130111452365990406946931277394590987579864165593232235673316985798928877985257709672783123467592680819919132557117902330099556725419157818023796913866463096205354577153308484280545662631259016338081964725956938600462436171811673031609858685702539420711244246089263414704106136803454855897748690512340252968571291880168383396118122556782973820983325455365999451082195657001789715099528545465673526260222171478288563885579006484728715215244237627574563477248773980863811827938529805550774325239401380600318331538325951155990278278273923988687080813874416311046560196141025821653357117462057787675076350793419551089285481036083450116003132205103934292514952542097670997033391742991514532267213588251180565915391898904492575088426849322828542490524409958958433150720563945580493975110579294508274692954427527372907803602290343007977341401765492014596779887655668538039419236967804614350050804330766632148679164260401280150922439079723909868815330508139678585515784869300686045280336468954911399673888095614364094973387962752083383927703167854445090362000121003220340616928684691137651489022464086516787119881681153150216726155692568765605327915390268361113268626879977361082926086097510725822553070982569991953691551324173290572541784883228247321410988795573866313100262960146060847814703580759485053104359311176839241244957749316950126208255893849028962436268877977904049575559673332526289643255603875990914136332252146164975163928339340282407308928696790472736903653761659050394161414495717019712774961718266269838303703908857525284617863780399623349472109637320051020373458051043432913970964220899388111034607767799374809310263007140073272060358814224252759936926360459042107584415186220501020523010829731137012072085475857309273909823363734867629484644045908412361194283297294057888580066289073420613560190540892428630937676722064655012411573938261692832054669220330726888114798421353096233227986895375772657415133384315620169113567410338727185869577939033469769327170435322815534616375782366012810913487925431388214167415881537780071524394409733623018061669459983314256463590942327801417015113163646684277640679653606615920810062102594917572659219523124256781346552304665998698353758967434128883187145400851926809802485581384096019019184546654760999114955165310440805349806434672119088798819672997680973734825367610944571409179837759098031046267019119467410035153798094957158239288159031673679184910857966662038330660015604259499067629653524464064813835967698529737344945205680169813546894888784381804095575820593801856941142695378672986342045536653541513159244229400669041282034023481578270035793313428663070640467623575862879448347455147083706001985554562005079052903599644957167208573391247753678785088423845162505876154401411473246991793652697398986616544262794780462243481808108351256746235286616969421887587480765291689944910442266752344370953103644275170018250445061608083028965883242526374491964408021844288002775166854327127317054347524841579074534704942239236064168528042112636902379500815007292080755404440135411042623933360291282027305070587813697789250998829120408962160348444193803021377386091220662274299659207165944159313721488428213912733119292482420954836261651896494447179495988183372085260421923708893028915155450684229368624244932841430144288948317169255635140073775055999373605489036389125405298714261744214965385229000462000549123187923535857616007975425770315193966451367229210832593344166486017809092033730663137979641974007017835665394505918318489477010725286987014870172338713829629291904591655591217460824463904414827876797275872039005021794467385012412675597181348357783002925116025841646408820863211362367403152911980276660141181182866926853644516676901674188224951451705108232825819355287230908363067811149683372616166678113863830658037550186063941175639282716213898114493368143919170484742863979797464529582555883234847155830581313240957381314404331138501733108553930341689633678234133999877116960192714328135662883859516587555008814863955280520495975207522824685810145241375173332121814958988403349056687229106239400051135067462071047150531286198856709394165534969986029557573317515827189436411581610691735533759651897238192990772479165775960446283119671923434549545019721627413253927922499557144922521939731143343479940013631568001682056924951522214861955085614812627337904353913001025328914690067898940227622865956486046201582616149061906151096718644895888258962833527143080026391270961567477438078051141618738462159499794398320138442614401626322707472354678322948997662458640190817464221150591462365877506852154687479874500589480859473344868107134382001206861925616919383066671270932928845126601177826348556294888882398214509453316899398403315417592798346719891112542056279718269296563553434996768679947258658202564644516215832245137096654296812924722426902042297964213564362354871411043306939085291916370336108752360076896574523186204082256502349056953065906016350127083996828619342547582779228461067555823762824590059309683013608706945768664237742858336368358146188221255459952607372692643942479583150160993385640560320095202833024129946089834315294405812677934789939439237563707473248008180784446720151737961470463055183977265190415005857361198151841386586102576329606359458944666674142065133183300631847837103208123238479601440259468714351624882170955126856478608678608317824736178841485187748617219157056697591527715073019074164960266198286694957821982612837433044109534413412878386722577569211037134568921752317112026334247724069334259562652761169391900140694718878849890804723873316716316772331197223513798356586609230595227845526882459590625643850416630446033888794634497797122626264748810048021118992124228560249764559162936067243838280426877934084863905654603876920713971934586779701840194207904386258813239881769938315446970250950935312249998773729283810029051734977652212968475725464215138587493452724206436153457805100837362269271646061660677272772634479015216911911387531842087871555610641232896405253369334413563568574255571732887561640054379681881706645092622514468917122854651973544842518944716443431824158027238774407361690324728047742007707869915089345534729916684940107376407452180979994905849291651023678554340579577201774272368134578233302370551747152864140686362652045518889001156315809635158562027173041229522084760029333197519392226103986918454446291284735070963580762696111420142450463575272662185409225503113846663010787378996689498664106790328181173792501261596794833130294118293265417682975412610497241107841840996636746591921808625280423532452062157582751713754923551861922372291562908646984152749258212894854766493082586068742881883866764410985006129105490162020226881451346220611970006654780626191205429495093208150754481319387516445296285253801219628538841738650983078227047261484144921115212102167737922034700198499537402568239397679393699835141292473104272409407653365550366233543546098289380687307952669480947316975658587699871140677364950527829659363736185262611688426748636198147920434411161193430005454544746417192628108043572397652355956927045293876044970812885778356107747199680726759787201813865116602362993371214557246697806325738993738320457182122127555049372756456754757047400187901049536625797649743750704981008907887121476673622632666205749780407210774728848455642204253938500262646287494750318815274448978218455063882714596208263641422766505495874636908603458222409902497230456341526949176143024764953050543386143812729455050706251282291432447038579466185590705723741701570177241465528276374508649631037569611342028648868809655078835119947670134108237397772842186957440627376817754208983641527478204790575252764983971643282409459849288186668500745269590028936596547819158920341460951972604255251096558963289658171500061796383077615253625709204789085487615653627215924917661373262809783603503020361081086943642481611676811999841255390877774107747333588513865409512387596742498001627582786206851299297283728835188591087761057784432571554375562210829425246228480516617777519544646250940672448082525574339068056617297471435928360718372877608201284989698218158935697392231163283711438638208306870336389732364368770589931836260627535359004332546131126464176845099641402224945210470836434673224550764989000382172749214283740383609089271688516586520180075973915643690888690853675995485885855935363411543846738851122121516811258245429343242737777718542364564890110315862709413610164201395796820632541957407812158649968874974698098848853367982532922418111454620501162599281279611248013855216096357183463004322221255204768472060048508572162343041380295516040021381430185618170311182051907713605207548769373400522893678892133320163812278311054419895632157822643955033410084622261606949560306774591415806778487034652012884261690853960971887686098684266511508209899100558795781726342886327808086967609137950917482884321637983288730523116625347286693063058973233124012731231515264019985856597043838774222155849230268386324256172453013175874083895297807239391422601189289859855235616413849867575948004575223096704275572559684393340604304456926914267108932508244153626066570885625977195677195381521513622290213364054602449092862823766642767081272504305797436061612300571159203243460680064123467110929637009733441040111840563010003263550209042447721697280430222756039074105881977679485792073163108346937755804965189082744466738863302496069544531925560140278754790733269471815773751708394651605221979750567273339576059072261508215357884484049663971902075956954624102175909769310602831168948858074831509942103072423794129542595431712681481375362758697034794053428996498709604999466932925116219165988162745655675757397053226804439174920010121018067930870507645770760703251794739991114152219535753087955200882089452918941106234859390937394533746413096062388114310317452980899497547755513527836715748189319361636313583482537244860168045836447299746698454870070004676436680731486745269215319506291926135013196489749600496374482413271909500102371799976404461785942127037049114007327880562420046571887523716332546972918580888517200630880689726463302133647492881399670106026529772891766841704335976537325739447657832492703791158217273505623551184366854322513187300794538113996523739285300322551330167946967931873000765173328870916644772286359344355091403539060870032289831959153775938644584616081114986181535731430152436303940025903450608514224119618493604646984922345936704408139762182338544430960285384358756312541252806602913640517447146201634419762444381851720675426418325309976868561732729359040417759462710914959226381660333786432567292676031937681285147928352470794623942669701157511893692229248345477061109332266463619686727580858190149619436768960306577164235133069880745701073675452248038509772813598032476742950009554105456236463370107719966465757700573756909838298407320638888535160501175397840126005028029686296213797434118008879829771380195937028973449992235275198580990994320163016416369081940429727014463084262019756333138882404867162203217043330813333373221340762407249949637513585402336307680431917748829858808706312505559295246369889506282857092860369261201287406000774606040580246116012785406119725912905650240546812726125391162307721710061798703022954502077821694785930520124651136734444908207133383070619330328559041208220293169370331137301197531923041140948992110932805865072851944235623775937867693361446294516853053104983619572582353311207601323704098794805147675988341797528550576649182873918286281633841447076537083019599579372660341943848562893783222602559153718022428405724269982756615190841196462937851300018826552065454685334420260569236117315362455805421600489476851289490830793861292715620359743062890119543429566070606294736765351243437091634344490944496877967716929952691809249478824608993064241145310109739794541916085720080794128811332725252785350392092281685225922008454087696384567578511403128567828661127008548468202403298120593965079893649853098457327212857288111481542569805627071595019484582880972250509080876697774816484598765277295979803042232693946359449559831780894433498883178044232749779240758414522138146756917702965120339683847022044835878319189557110821430928186854260637285163781455245198980709650186521901571309253719893696948286198017198118964453660049112862763870805581861902679821544137610136949399387639380298266519258517300124441070174664503270905728569693093254431102711662509469401860244550249884097869987946333002038364609369417697786855624222340431431244779465105854730201426880251105913946960358539319494173506858047224404488438644717776855620391750155409568692974972911828164094264695914201381624088433325281497225133242497301136159707172699969721736452924674266343504449264097679005527337057055260915216121085748015763905864120952361107407430194942643862982719915583026252914960140696846884732918232418332979737221280295480417817618909217420087074494302783640860148145269437548603794836028282388403789257827752660765777845075320898329666040830940304834901089928462677390234913364097929102113292384093314006035484114849792010704615878131546178094605944226203490734170541647429079655132976337753088662961783100934127926047315164105242296179228625288336502063511267555219405434966385313143378237625984596945123966275847625002731990022086913852231149383542239178131990482541984953527953533412189970635360201255833102937785794446210533498133609989091915256809686869930033378171703694403167916489588912321760925580034969130094489729558688400695683721477732116567244242629924853875404620499157465763082083940669755404960404296678764546179461704368131926868771114152177454290051627337372377059750991294067591675145370744596147679722891426148107429579309777349768369440282127465819516107027847030308156117444806595758531251760947918316035965727845080362985264748296516566727293952340329288177062949144704023102331315208556695331475052278901960943714634759971444867122642203983977379452593959620498266906415233850168700125909839186413671413011078774457320228964445113608170637758169724769512934393072469994295816967383659269100820903886149122901910238848966654886952032907046045233299257040963766732311627313164631472158508952559705801417868310499824093373083831938357511700684481759039691098732661786745104721855702023802521745273807229848210474414309280079858264060360272161739127825923516264729162483961261179638049419597235590759297387495004799435452954355967945804906358142841740221743984676772251140611234615263759666458333880305953825361171653802540989546997810742754710998821771399461099180222492793047859463558223542664131817299378877803226324287057644127432436295349080515630023239640510426141377420891388231447346818297476896501013562085164380286215589256560460816378962397377162146843497655235839568122400223630945630681364435273963521330127691629546477870245806460561706163818224307179301734083334172523021346072499893917377217208882936414458039981277503531824080412931871740573891200275581847443096381808425509212697434995586724625018072907670313489087655243878760378884396847688195357860921518436378708416954444029366614551569711221168827115921115264377942241244664732357321922037445906141679917953095156533807809825216685504266575461018614238688526790917265297056012053760559287606813339420496912816637957474234909362805226573493124300089528959593216975784310010378152340044344021860863091471242474116101472815010040245564735805215028881972156598892289826713612585404081446621663296261008341569796636384386007304557533949142049740290259039425190530038487535011108494415895047690640644918585663839479901237790238414633427469480115950722081935873646165915250510255683803450825291540482060615842582586737263211738676234526940839282433234645483262497799013224796814168438651552417532843125468836568681678087597057501907846820431242822544199734383505202296961051307294341036102861670065025547818035421909021941743691435226901062283621011897517034801777571703998351416631635332924924374652623929109963242550145344627126516854839254464195836079176042089598529240950222326022826941424596321994731997877355642416848397773354043788914121229735394319777801130443855557173561040177612178314908732865594156958405862759298439748258973062180839016956759011473894888826043986265002770102718332743983286117705320447726439274805210763521278763247088351071660610762291180136297226776254255787473170913605151945332761294811460553925920330029640470094164980325301296116512696772716090557337358651577490670738676142887890263009681134637099710299956970023060889022722348776398098436390773664272544199923411628923131408712164603799757474922100897638344969143975804978115226621664923627681203958394092659155990160107060583458168594784580103246425639751957556486870235211356957040466131336073018539440612974507316698312586191376462353498122022720727151314256613371410702628555696393025239678334596841195363351769543960656343812116752672663558614692794840685320978524771361963234908473336963349041427023340592318334795778550217581028301261024370151662897807801331139255237035983381015637210434017006779857204398093001587929251419967578397692864720496283261331489771907208462774809954795968839305498660579109864800272223881286369448481060475940260865340949265471510471950842616581346537096240133021497649454036787710845525561028209372828346670207443338836419846964402049873202208906551056929339845936301897395164189491161350027929816159912035370526407639425492303166329627797284456220833837741299084584552547553297531834679306472498954811083918052335277672174117069066123984485899344522308499302897824607041152531498067440115786078855244148961991096433769899283588136476849935707378691154236236826307925690818418508314193875838666245578905389060531978279617314982544151505487240514943370984429886573207796931397555152448671429328068847810981422800382354986359812043411532615209607235753247599065085725836845085904443480413862530285864816259059352851138534367424866626114144565468557631609432151123386802730420545355342197333905894678883188334370478407822536782269013594566392281784231002484345972131239562715719685177084341763368781796375553986090544299261242282643753930305253074855824330210375945179170412944389234195760380817946615614947447460676511965788019347766933988881713322756696514261669660182107782275268892572158101022750216514338415399662834666328229264929864938416047622275713375665102779748669530783726821604584050468117646140164599237081208644124033173334917493257369586026964960647560407519529947723548129238633330696890327729200947266119159627185297101033786360221542959634884646797169800891998728430293463904170591670776234319051046015822093489356607514219053751313820126909514132517241053099036279875077821120943842967902008774773207937731357606659763050265612785935005301774513401245485808411281980181154686972658967494329941387314719175668828838458642792201569651028340593840212301055340373262876679911057277518398418952550895485368041951143306597527252253009350772334106770608663363925230424182801910058192639323151977684746616955947443632931787417719660544884734801482335348217045580417879293831862429852160649812419705358875145169346188118377002717656399935844730252119696469568167294427775068885144621043900429074714611798291462943561411243054121291128179985164595967234020981505171052470753735992498179305690988472118459716624994860563778141094668742304037754878995305631365666143660829761853216958946388185816980521074417210218888018513079291764960265727814910323004066424994281437403182741761734327302884695726486381229845350270690167248414534076083974095773975873052892955300804180671621975977557322613756121151315518379769503048553210598356403100233345144475722242117258255047336997683846496930614763994740198428580821655245486538360099612331751713150484671106340778994646543553708902256077860054835436529597972580882935183625576114300831425461251084774619276799968257158375332923095983898676851277019715208056837486427468749583633152355711876132870120842299205989899964113485574881471584439882685125049757298564724526594807271876431945310223565808145217543639099478776819924719922364430789559411305908679678240885412821781539037061042241296012133875896757877272385913816250105483689295091282043195671925837755648700549253143866998197513842823743404244598173503865059565834778603340332906260486240552937710450783952169661831236110240532054906695838093209325302840043134164000763771633921401912536918253772664617335468564221116993910404476083914506482916437803253473344136441379685542461277305880517077246364703256096012523964791766081300356632600935917976077857428512909300281890682523538785479244654347749857830604329558666444806836779847910229980033083760158030253807416316050449467492422248699046263197705470482720836058706885981237080678542877691477957819182975841631540686372107295794329811922166361007153857092335132708078775412167463939538551164723688363662068234732995166318073968913263892218142914465722272533514938810006913685570276071915249018198383460510532198008103730061454065627015220750508231794904774812944259438033941140187760940884927661870916062163188345541889408470618230075310650161073348556596974343987008250880906375839305709121559499313220861196262735576886595772467623472452692875043614251102466706991138226940750060938890343533246912804579019025751682484058498280610071071485546007794179167372113763041856995631060058213279691388834544612127181313573650650095402843171917834945099940436591776501799042472766621718060695608836418269455096315889423298115558702608854059905843003022226065270666996571627766761148395078787389138288178179230021328991517433151240561195061149208520037432540062109022175913297103203857961940031378123498970531990838598559386808839410117256700940294172679419201837492303360936192302374683541531388173652840018802259746816051166993461638470024734202211596577608319511286473344272836447332416639526540337705493049841163367057337395693235028484168932304323020788917414950051547664548994906970459566842178537094589462132716360490416855073464732071566399366484724033265820007096694925016881546571722238633873473064026048751432985836482773216646686029266523950119201666183414572915185398078005895742224643763390009275460060531489823729449481540082044415658411432851588713298164615573274532204958954973096421640298163724154317420544526907670727744822953482367556434710126078931538962108560787367966529232676915576893345148003609851802429698037343001985192082799988852401024315720841404254054427249307034138394492800534245908525696670757375983833183318262873113260168402737763362625478500756280727788870177065929945650308437021770088242705903390167723960147812182010444629829551030758697656992245968839206237383476527856850914339685553740817344367907235852911841206515142110088382513708614238064398626681764010583722420058215576497156125598764905199936517554377807351476451471439363873732757060461215301059121614135024921564027701595907197499093214113773630956517032661099161408967806596262796659738103644750718517408831254437159086879388026899407484265587311265031632493638696379580279335453571226730645213855835791211027632075415560493194485836868642989408590202228669172734095932845025710859780187083594605523027901228923914743677631375207475027714122565467703427976294321714034442364278498709144905924514422809453553087299996555484456456730107504249261041483472413733834286025626622193063540107236769411166499071816264517939759060733721630184518920150623677486724022452712738366398847664623727515858552059508010936297070246002118258730725552244700992213301182463316210587288625896861794762200855747744694218759411239612200462097353304576511469715809002316176987594480405933042191976297205012600319164417735555390042662632853095070848138253682259656016398409665370017790955041632155881385335997901028796549965981630338351334993520342026398245052947741528672222006877691190921343069464703952740277666211860615647499955272140231168434927560314679873787104061933006368154824583639603227490842715325016204994086040972859473487105895698996386390182574995454565360032829655429041870366912818397175612244581809941443474949773605210395443310760507621161962211449325060634058917751505588213948257013856320416097352843090797192464777250044561975186900602365178374805842150003247719048044212102916841399873123065597031482842041542462556597062898391834732691394778944493833147673568405698640663652716932638843188027811124902993821647224105695569990146350246340556902039472901410309400797591839817492521596602130466374222236634139275849235702192994761789081154592661813246004292434241403026733434045202893518022974271373841275522730926242210196203882678829366200175262028238823397728991693919494663469976750810154671940462731100654238058440243886797585011841932158913455890427081527551592406570583242565074544071597792544330966126548718951693272243980904452498430835720107213965445130097481658625742247252559939096892063635324487690852596776757770576171082427028415942122057251847473739341967891915897156375465960757163918268397971829075025552271500897023733310192226090598759764433935229404629738598576896410483638962598701697862712132102407599170633112500306922443042560805865073521728674674047628809175822725521859019494672461916821325776222414822300625988254557157396242907397905408710019793956677086854228967181226221476890936830521191151677067424235011526735532274958570853933783212506615411665272183315680333573016118537746086694471224343516007403759610692435989308374703787198535714699662450417640157247644740882702155459513584560626972262251657915073638337393860259790913583219207227547516968849658868755205087458722260071810922690125699416683669885361038886682571147236883329141526999637798701019440330235163583623318560472474872141322956081959445234850335396978934361144258882470896517226820527867526387081019635349172828643931567795202542882141252467020398592117040619261097590989726876906663901491595866627815228409556166941927792436494114345266603649166712231620715758306105872789134009108855536226462333578182971284709184469008306085124423304170822432386173836382853926887205002732957257416014126875856000566688575868884051799718027910689053154067240318000177252904373727862011531911640001584418846049448175411156600478086615170164183217382869792343536253743204694482871867092092323340041232948135582806339256800369325067697510414789438443887178232181372072554222852310560826026627507713271395270373284743052536076966120926277871620174081965258891811635154123186152713279447247900099390257977350841227106270805587918171913725499882106622783257254434665434886518033624159156802102082801036252654377048614402264521845485117323083539269032018860228124192158193204675983810006273642966509120457315691807277627686342216211882082066641989179884637637001736571898075747292757272501417489951991679597410373581272119444668669711952020279873631155280086953906028661322622267925627869067021116738964144151443005703127489606346736923858952670906144385766135581668602378238814201874617885990480984562392152133927377586449347186610343930682597402804379295722526143932123684114105074275959518880503819096394701476295592205916784607500804675512171292672832695579012826942371900018955644627191839603266467070210104121682385540935560520642650048137018431645610826457683889803749016057912364884315439101743915552506015181922433257604463388495852760332611612202891932334197988969831279301683077129963376901126755851919905369690053358987654044890070715563016024087275059910334127836374057634277465265419812740367121613702638870237960796424568563039233156456061776891061133502455601676081120580065335772644786614540496904964854623957976952619451055998243112290146985025690973829496698681815393872788609652713850789496088863053040663451792274092976558826956093175349115085053963006874924737840393945133533269736442263376583736267973568231405428938621307314040277985985751411118387670861119902769176065431868344067476787847695764906869121463983029762062237467223437921827706339740767112216133763989856451970246982236675013851657563463541181793992434011445299794176557835719517839654765386537186765903733577839655798167303052781583488810120958312770273724352451670281655603372666603553691693580940512751700541613808500358641605787039290079046785286608340795424663706510257983895681179439742581855232806637154272942495018990204324638500100157369944068417508581023766468480642911428173878503650186732963826465124286786096152792252925453404310099091530676970677589295441673088307751363839033776483972368174792051033958261507905151804565207096433870339606287085567393984185041588720469397144360628953329450480903976294158367471332101231875660661771281852599665402551859319327719995541103173143987436728315252964627352810864345458357833274667722102187951191646247772680856014889998032505262860225190355446348883881984209312234496730154668465751945798534734434283901431479097779169791548923545925812874787287995812031620289329358084169805199868392430755410323812837795865241870340995278682502805379382878521840874997934847793909512003927897049608442958524843258052806319223915456198115069766920258691351777773624092875706175633376204178008392953630221852126882176869025083352290770154816072596384781741118598053055933911030132297244558555982313968442600072930052897694657544313712991308891509088230439263603542649877178531709148664761982293880623884358046032820634363675648318397708089214992454429107716047937007336105560942687610456093096233162619729814537735147960459904226890483046066702671036963296292374216255696534395612782257967167669346876717425451024682400128807499165429690246577920271029247740662911659770495332018614754844470873888028471913807302934120242894121572185081717075284085906780509164302516971403096726584073861321075477093887419162029074505511067288957767645455807047680613248290797799089623706488941645774925107371697816325945695624667274676845692116933518827742338243119089474809786230096414348686619626122580944085085203424241431408562127336983725559157026229589053835545668557532265082717376801249123936370468130175148718712184147210202969340032490301172037579665114767408956618443686329843130821595320689852882047193836595329021800065584081868499273468703443578838115569543965484970457021596038769892921513668375903215738195732431818483408266067592977289982950689865696138580823964334508629600517845097354917129780765822206494798729818081993792936858871287777622484315772436607665963726212733014083257693424986076931714342475031795518623651752551337478390928535933882636024203042029738170887609306170920763687185745201350205467325258093531751462471620431221043369520521859407418610057433147173593668086029693017557950542205878652787505826593641842244543752824397703160430999287424296421719397819961046818996454024318092911006819072619002356620025566936571580080913665862690677342798569760197407661072050005367210159310173409731878587867993114297660250915190231321137893159935921684935552254665182288893062154053381318051790672222874251169689836597972834725905392905536356599004412567534888296011553394952663313845723372527939850900301217944419940368589746800781006768096380448811226144097883660918774298480040817530512085257172237316032955238043083118760918086123937748773565860632467947492932651415892547725899843089346111398118549362055726368385844541810452258929986121982745422358803816225478949418819285383428241067638029775772471930658437965649350929816027832133081928649777718674921939854744526218905411760758489454598689196986017147254200324908634765353374609059384045037277081817740695200079047535409673081761291721419196695196246631756137128967503126810660736242510446854543374512205394575949027505178719597401630356121876081100678783460744286853500800118071043520166667417409374902886409109806342463438806669332179917045743994339784848931367575807637715215906315382614463363408436138002380057031792406506507141383633489699244632977938044848260698302356949854804197831584946299913361027222067491096661477229913098850378837138590447883026746286037826022802730950214493311060996868901384566804542278016203749331941893930000167193788293690953092403352141172228122115707507620855440966110368220300205065643264628185617505873447618958445173280465549882405774384471448108510878799487457425372660999622710196155603984227355128575007034802174711305062040502536952942752848029573101058608402760741796273910392542684835098688072427858211493753070895180471429652041795526983934293296150481017731774213181901284083374771125449962882053456152317010232589515987615101482917087727826031079191330308539755165450509561101698933941087976207663136324202748374241210668934253182938242407663292616141570716142656896248969759607385275020571601487226683639062015556939353284690570781351376510570141630583202184994402116417696198855976280061502015917500088452791120149235528495646086020284520703019375495664545833761776095074720109879117161502871299848265313753489870940100390474729731596480615271472688284809238166497277064010913753358794597217970908316612564892232157424942360943944489516466095523420730595810107392984392243402015211470391676371099877540559466907763934552961079914946554268594976103844318813955314360547193030306695779916964641663061415386616909064966789252664938892410686876891473710892245304480494489992078323799898263338590826384450344545749261567021099745924075352565809013509994117536106466439884703408258120311244439857458734434517369152776258632304549528944413291511089923030146995221334139882895132036513454339128721664575949299174956257067374477433443098341518409510648047756293492362943827818194534160324835940098465265517515058259411223744479555252482965091892269040063258455440485291012411235534588506702103002560972075307026692657803691519760805261306853248347299032526935462207442238379850779893323203594528927861467536200474376147791603554544583665586295479354291664394207550485957510908599377129572819498420179593329389397702631694607458402445071087907380993661833634802053308787359961440602548807037495806145724124686681251244014620001237899744234515238715541046862077633627372410666453653477103442813599696748001052620554533850775499729317603810337399515940781040559843952225245329420634140132995708984554168989483186114035316957917786783733952311752052938582597342670900183890211077107301785941782942287002532490288142207676246854206400102984531978933609603897113811118767969235252808584533398619071383757346586555996291862408549022763118629205882968714351399723899628126174179444253144659380883751789086378962568808842988189901145944286109093383910939499236085377728074407338980787406820722451425473046105724067665643720358538660986261398352933048942522007931158902262735635106112091338659215040630232307041943514060482925737033564231541381727516730967459654677474597547500319974548198885232697722409658720153984507544668583683153030650724339013618997268935454097851030581427132336051638315507692463443911028930345435010102383243360103291898796421584644168979184235658984760944614017967041980808179176119457048325507042130526977794218708694430599889304600293156378083775631315047442836540001703052437214090609058334514759249820396073040042753633266419403245853963328462532267105969244707153442433241018088300200333363776121014748962019281949444026362505225070090685129477245404226735923647436177407459380519792572487609479963441034253348696749048775624340718162153492119846794555339023500762810329930836661630262824625778414084930105196406075814279952113233939607544729393049155276346676543158176386164867702286406101103626423929828886567956660960917830749227472755181942953568048198367678961110915646534326121319344750715600555698520344994928711848827908754704306509975743652087511573539462684891422384893573810130712306346585571822332870659346160147428580508452498804894825473163655709326026571762104915342845292284874683184033966453183241515282886574105174028286165719322978695333021335050034674036833784545429538436959158213275041425460602631283337968658206127379396663552238085278266900447080512409289741539462682992035306050512911927905456381495042471846977020145222651534367755993930255114637698069960492148302362456401893903637891133962402600396009204123031596555217789404485016191542695578494468101923393166267491185195200788399080871844070040585629371807650327142438184568247924469215717737601538560005909514101718260734255702097230283970769169241709561343117000121956085504574320293339890407403268492831712172505581944764289290881760491220846010660262452068816844422835123708498010632134707868757743111352590577390334557637569777391027992745558037130435442086760620245483655713395345481462171920107088164069781480413480637546688310502998456194435070917222892674790232020625277747769017591869459795098508741455487433495931197642917044552556649725653048930664612918907543750991810042058831400208041861598942348201366066843825068712582035167151147907998760699039700709130223771299489449180780252655088744565344400231464997542042445758818541497579826326363346296913946186843714477940985180747220927773943718749681782780884298699615154579798909508841181511610019752920212889525966939276267175214235556192452690294831571818961315363899843112987188097785539621441910444030845014827691458731305279844955714713092998547349271323331157737725306054465226983929130776569267697510172958476679678486352671872618909015146891456557200061130319648818615873435687534088866207181615548077573322805738732331215787085409484951404046697245844961844165791487484074364092237628175123729057471295103335504876340830045238790197715506530724336703604149539348072223745598287981988136045758396870923111281053064040759481213546625383316132313840624635636659821636374744192130734235870279612946077493555729961807716798559125342494867957212840742422023059602320070833800629409103347995173827102464323716520531082585329692418484413099884382497919731721812689784020673579075526578719795045768559526442165520386411539439406878831307840536672437914365001417567722901291793104891752701079110306656610833121179190684757405275778805485475172964737929762461190285243687905737927792906215826944630216439676729635297472810979855307485687106399547251125201578499161391866664018650902913184626219547235341347742388427976934481902481560930618385903912401497775684552549563180327733383239987342697719535614601390100640002730257063856334836568049992131176206607573063097480700967253057263087976652131962727347302874583023249888483965960337115519328443299200696147995071510082637384214454424488888031807275922579744134140298341065177814855856379236275708944257013170853740513293087732416644132404564194038851127796493239880843651957798629929552316246822889118409918720598994017853408834941380331507331405361557837787454140833721999614276110598878884363035451519088614575991814293441049233829164500499480308933675765716846945649466142422291816710446905473572680075748621183728879713078585428581131553602239189838939840650669011044158061224870185691622838788707741902532248133086174439757410878952370312960117076710880172073126953353557355780261730857762123026559061263832696413242256942220131152251637202402845570165622646992230763164932054650753135852893094983551745578284500662474964265099111070318918099326141143650816493178316216705936465274389201221566653287063532850442930330320728274554142999504496293257826847236449241353531789880113231606064729921103293583839640653120097591819708300120412633774772663995393608369826616190675881765251515302556225233524490285108160239091395936658943524461377480175265356592939337912535013139025142625275887750368648253423093403551285509786059706169256591053408110083195919354061300832463171820386257495196676432747526706940725488851707178591768021366700715662238496998379515610563448740372517051253245882139077022772337852114209472577387539895266537906749818935801324465317355850038675733123173578418254721979644564454253001711889359324855072109540309685153284112121373463517761829630528927756036389441447740415395277917463793486902366997024764931641576502230471218751351491001556650805547106167744938332886371205169557707294469203651557889365914993979118328985335737241685956689408752843806276770457382687665128749842749723212554971996824395860897954605906406240238988137651191063121580333970979124557185759411278678006698550253285042256815687546792571173168993269799961436178512936156089963214442961411187308953637211177735990765053796357655846524118937092097712929017915613933816188345832332785168024696271461971781449707085687832527724362567434808608298566703620998325568136021861286227061804080863250133522911464393697410870375898825543474006114632075887518387640446236489756452550123976200938613052201001849348798553598696797435983161717402382476665016015400529133660416549338938139708607882025484082811347271662935881721933737189144477486706419179046760825789078850633253209424738844117055468580809209555638558615335361570549344816208285343132866274447435275026150441191519214733768339272973031957733432422238608169466895003060638205113175343914399125056713441110234423655810107770153686267024743712058622840162684933759215509695791991138547652034988579828427274281635033802816776131788267335640919721689688865525552458062679772793159471487062401438104508782605171318568226364224614116175942252458076744968058757547733860444304780952299072246819709832830576299659979641375797929360531789059910070519431955603804598848425001142356594208491933838131814962080618540141955106543297057921997756175471507879567874173910061301428563118757043580033086761737532827056933714253346600498995900442866704109489044435690899328762060544237300774901388061937036881107440730538635759303866965207286486134173938921173415872610130173112189039907555010321488443333312597831872280363664642664923442537242309837697918443746420130330006152544262675657646871407873114846694029458611390688067172265514223310635655272996747310739934701668428352527679845685869940657436884757058298197872503021092420000089527678947000810707102332669463717382013853122592405971915050918796706896511538138284993020443967527607084215879094637421021560852943538970110882449006324011880917973365595731407148056017329289341992751790536441296680464482089541360479546437860938955776240224567436331894703439497747620905391134592028994633852456601823956750013417961973582274497773058936979859830633920550414141648426459635321288301100131578460440894118759824905462233264640109770655437720925510744431017507070660800953944156391688015135270445270385318219176823510933096874529340164011866306640007009235495316246917753650629679563062600015580870423362180775975213760037088800430762276757703162503112695811757648162234597116441860768348295582525493391918116738060348258669134589881977868163049193959637549300638992611700640846003987493047981356409586675872658142525787711545706345345979594570402061584873589187810372851162005579697027198314961594131301045528956919676073938240661436608472098866530921779573340967322581741829549820637081512776101294225717935121555193869249826195934342830268636271874473911753861564727064398494447032035770239253298600967907249058942243086617943918764658922691594483283249570718442389076810632195010645749863780630159823802624033938279902181543057245318194395453508880080614926019933911528038458114158890966192949475373944459583478240693765691765700006190710958540033415458328189048324063274916317632162221816116714356961772374803299939764875195800094913307496795957931506961171544432737954469178268784123598683477745288112000199671230442935338655529569877842003311461941350669700835361132954822483346737938774549971668687956084616543567402629988608604745680236156615835707904760829104100388279400680515388823669701437922402035975982213319484203496415663668663129794733562333207230147642132891798656728977979662852787071933649492315956953713770732876638376602974681647790606846399509560631893843946368230469607022255803130359116132022667867969532567442226369752444675371482798994256649477616954598586725173570776922683650593213149045314895833061360927494890255453727325658432028488010090497712658579333653306778380910344665403670958140491509075853414382869028515805060587497472870792651407358512671437616730616692754075256951976944558349259083896966652044646631577462062553163817018306313513187170917069457759151361096742225827037848962602227288633221908944835188373623892068535765460413697416971911146809857714305044620274850603537433189094895191379402968623329409570916225968688047360247550599609219795920533662089862396630704760734244431114449822522450353130175427248265021551580626464269673655079533633845379052406489680906926506887293952937376630548559798859656349580002210259336035912845308022449845714703467428556575863866882489243827497893009951113927344735159053859708597394732538673822954306051607100617496430466838299047029863988890097780512225841048465259152904953467716431052171824411934851706345889852239256223811752814917963077260323136047568136282717205225987832495496623728888394347972586965059160750515359949269611898443616346939593333368865777246381828036038850675856098296979559500366672198656842198876545217876835817967533248736777397882547266314276790926641139049777909751219619384207577971424172497687393360157815476835525566945823865275084919925549790512296570388297922961999337251502409734884089170300832363476987315914903812251621125356856651799555674010134859857523637803796047437613785960476466728721117684707996293991436259296726759629120324728737598045818837998247645992221761589694405273537493903919222469891655361378603589295083374991413387990708679376452502367200252501169857231125661735250107835645622608875396632517794976624792862456931250486565370122515660891139984155267224048860465118510030277905732306582814098277667409546680942673554775615919809544965983416097433272020735407587248211367869772993232007713060625308109199620334505360745712477870430640247795796317555769591949848335847512266727093696920358609695126185403634723611759623937953086449708496159440610526673064633632487417101974046182803735696186378092499236199641627862655852181043659720623959312821655076242985493861974751510965652057101866575630360351647048959472192764677904294278892231108695111472441799378215189428917045578531790475763235329415061023272790374545466871899380449322313251460038221560073110696641948935380082380414498063003565180545562410143596895144507294146577290364038609936056503327880079618444814346480444273115810587186972305463384854020267953085414074349430682608090655016634630302801242909299166597397088500061417245406711932404826396517327550476389942465907368882673776221806517445247698567226021937778506730779220850331574938336777796339332780205399695846035253773302968017842719714013558492495891375159586488294456210274546249874839327123813419206179264483001592975104276419736185531055819943874248223220646741678438263132275691566255987722530893260363616833467956266794893826863581185708729522892542829666633355662156013923134934804039070058458765671260115480898100690385999446191054062530875294296128892502994142445943078185452767760887131573467165874626514675594086877328846346497996282712171703006997263716047526438896625064888076762360352255205657494420021802686986235612629931742321174343456051076728195805864708945932731359471380072312160648772048003719293594531397301645316711694958019959471299374476245091722866094261421118880568434211862597426962232693537015690129195530554920688618083699046528509158447470092965579909487185592932052319802318090194699423882982255934255251993646850613866309940920483740014563954774978148319415674243030526822138677615868997212422007263182723906795654378938706280012901194200051517223960567441400191860660221845720437686061897923763089804847119576366734545372769713026470157524676292525480550165048308682441961010227265414655065282087972944564782973493375983727372038835630097345497797875504830719301078385303257168213890058311513213366042418238202241791096432856301050440648894847147781647955986898109811653361809560153852327942381648467134142902149551837988011264105863693632518131690029963346783669893715602109911235330014658346043132065013804698549991264306914912888811266803421104402888417211685062400373029810262372827805990509447454665886998917507126854438225376766062886933782090272704115756028935579752203992282814259029486718146086134063467508209596997273891268721465377853242801967555217987467059612429104708337203897499101156788474129444347880895751570053908685269235352326962093494680924748515484882235312127233576671065609012108092416064836610903749753223144784940581127229878989197484851828433750533788521189765645827747001200702084999384862418303411359389645686205474737953219873163657813815450241341990196861336520436280770575500542268541098027274060434604466102195873014789622812044623170237198772245030384060530587540071693459826002482883218259734406616025023120610886756656817347404385571500768882558998312461468952595114707113049945844038386140968672068375379105303239202079600679461277306698100144023724239156780389440941643350595728135290774463838019172201085987559855385018129602112763893291431386559985010916178140827123537425246791259730592261987453881793209343497772491380610225617719577371351143122601117032772043600415900161859271289405375851602141190273911417373378667344781907807393275948639805159354895641499680846912562309562929487937443610506620015765180299027358060147881251034913660564184396620381359200954150034521879512158170823909013704575150581968777143090748908272600762448736037030575617083544943561294428028024838617036775307961420850173397122414793797892282994434005148535380408608662240918904319692462454621924778617436939662015776515778139398013459636232920871151164875942141942722288381922034355908649245629793085195523722048496461742898514038608195294918272190504317094927306731822509645278925260804479637850983123636468321798378796351683957507074520734931792082112878325713889120489413361733193890124321056164172583684053222963517267540017910991782067110492577533927382322512338494487705450177681088846471113648123858459745952965689678027712909550394752104505157937234530017721685006886105517502231269242039193243654348738212914440469057478850374384032801619777415032967082921012465023992600051994206562317290096986797942964815002501139317586053678687251427133352043473390176146392010250016571607955552865096622519860017693914639013305599559888329728925938719953051672970994306871608967271412612230088267778240067675562080292073335546854075992833780734045628306609376796791761600843437032064403346592624636434656555680638994425461070111838060287308498397075191520462879128304972523765740577549377753584183369709435205437350855587616357500727759999434275384339948436988760141628384094265544076704996606843302365827547936756754312345841550130677978165839821049720908667827725585052883313289327217352348130839376396265106136207227216731714965457461515789317943119112137292185248275430333420566545609458549686846176710706803939873509680887358549878151445006503560900601694169050577287584258988365488255265284202585742234187105029892111651048246374993363220145264561447360485411220936957548821144951191111986182450658127218214824592012679259273515645913656393738233050865045504078031339330779524089646293777182199197649273472105368468475523866240074554976043133683088370417639119944846647564857080509028088788109092783125659976494821327784870859903019252130767892605618138098018083564582413801924632653928733111685301104465391174913046970659579010189408821869021710984701615544456086953380828332105444372569392402621645421649133245164707524493285061202484685936585641340501137121694699524328552291162017725242386812290050594456064221470966933091563906302880535364580792964234441592857462096218985532837750882109132246881263471356959739009272888527337428554131990193711331779724245835626467863079410461922884546182107900122118340831766499539289409444278775281513590226587560441688060386462834469462156190154540574710127693658837869996991231391133979924799878079252316665018177454757985067659974824997826186022212387001009495918148908612188427122837851372308081115581528839872023984242288530274445635679518651673052182222243352645694635175728043268070160527930039685075435508988499707146253242916072318971665610403528993971971793880163110513239312338894594858648515609034072494114747510754773783070946514646225004346124047869304108701138904375056109462329256278620969720378407812076255121939192990195521410260984370359609630275683196764972332609530053697270388913948635901600442877621443472828274092516834798026859046901531751564235628131788060831978066952444401624591930928668864874500829243724942844391531105029594428510362549629769935548906866903421474116986841451113877210796903415205538119642800155882211865021499506345883002535271238392456684872150111238338538788172251467066419977466690976463806911809258824212232923484068410004108545822742310729566687381614707916429702754838472191298551764854697172244315145395411767172046829365942780279780235084798284373308754581171317065977212827376756735055014563850348760023583180768850650434670828648926402480763282064861091004662801649716914950525040056137973206943798244961803907160690422890349830665976769078118823772953621589267788308561291633435256818635548710210774814658227059741525528863824243591302185888693090056834195575371336913100276678383085195446416251875628520605252794029726749117587483173166488877895712301441115543627523029539831877177359998908859711938294388398759116384113861195317576492221119122290469311104634922492303374697452938484291374877590727777284440214206274073135865689569744711345250855879622467705177657209373817977246283743161145597294926594832625454158553809101150675363084723057280534099356437307907290010994487238889032676559335457995237119578804430089246873351858033762828961864227821393647014526573812817951866009935022435829527989553449127631603881945325660589844483767163666442520101672053972331369569018883046654358474368581599738882266736988782986641179403129600249226118746662434263650382867743516965052387667541477286072774921841025451129410797792838049409214118399411616360604915587223017945610795294261374940287022836780648815524549670762102241221995838180172665494404300325017045645282554351247980372856800637251399213340082839332621456496420744839568606347629775952184461762201525423089920654240695867725574875845144258710856852456153858331597447022607720330949616169108311038743070888931123357406177167676263899179114846386847258511289556024217102605147481201181072388783542043262013783725843395981536743199631899855455220615118857956136849911148469040896819605258683425306941506678911361174878476389408340219763362216359223996626763381685046681351913508166697933664724353904353014645696124168650454354096107417200556387039843247465290878333904875767628981122276080034372702733595842691230970021939799295773214934545902959313918471898231704914815802630888568362282174241836852130248727317483360557421601998039510740083051957347606282258685268811937751766693676058496370042516264810586438598243268874638640477960306129739918149466801469264349537741367368822825812925599236166370520296121922612682672728352167585378658229684626742884060074455505420881519300839570456215248211695176068151448985621228092420527842436412706708079950702470101499338202540127678407084100048297747831567115157920050564962538161934986722059394652362835037103186305174109657887824842985946762083011988703860354755605421718226749190537896019843616789435204210447926485777101449366357032698033829350308499139132848194440877191979638175850870314088418844997761168631914144387491156311864305157237107623345788618084168617255711957222766922497930761166379071147081711930975245640586127804728170642210320058657647702251328903148458072953604939503199385208179687874850785977846782924804032551653308727585026566403764231382557713731505380096150732210852913674543084676377671452488825080103327474173774250877118146880728469286136814127578778047155250002372877698177778127046165830670601510877965561172883789888680312103030208261187113535590795493633607704776207046701884200000844637350878556949526861289385913718387187220636244170602110452757068268018409022217780307037111642405463471094149537758650451180746919832328866894513796156111492650098385434190415484786733819115221322642795822283074838095411202629810100600201622552185725610452392745698337732978904014394050185977191641778262448785805567764839012824668683270157181069577377774957119787094405533171846675500558720515185562914751051350462568941758797877289467886361392929673530805044841574185516770502264877799706124742463942300309188245036318175665163810974949700620606030779293056369513867115693205295051823904482889516610377157870488045333215368056863018612153477764657587926411772104639920989795095651081721568269571337224235127566239711661048193547219776120312845708701795171988306229901722598874317488944766962525411181718683491297126062457087573254510739331877468440229450307367928445439478797764705964582050838350473353581790334303419648163407758752477763889323121067337298772746967045262005193351917517265517092305502986148199594375264032052409127209621849215557870004786668940429996212138677974026883186991751327720829169417876134251618288418787758136472999708711485684898564742672749594233441612949137914350566986058952256334094486078165732396693672728425254391354581702124623700227489438925144737081974563779742523529215485568356014203999209136166762554142335864881463659149206289611276240585390451593809263416045681197643374084065612294822235196706946310030176109071654203173346215885844933417657526113731774842756998887679776024477703520509219004096910312109037580503037561612825986464285557596525526458317553150059891744033659181258275959174104206196855340565632207829677000600579730129446894609596172873598487432349499918897338290220710563850150199119938891756534576249866367821290991759289604151280650942435028454601422161052846610880668266816541590578386069650174066038956936862348574703565489664156466122037038601996099222101002203241921586738233470057473406602387651496212754040541657576958265170564090899210374783051198455632375236399616698535063572513187349997741656958092193833925030126710092793500207692517081399690763956027702789543991719997541958687887389986285459976137463915393711923847099621890966229454942127314573908243786710769296835769726167674508488214359767061082647268202636637501471863671647682956066212421781229320253048805753408058120220259008699139543696715448529073749215883067423197001209764734949293160587689155252420397257062216537018624446635561630641610376202895189219110544951711430843925420028936992928797212993120304451500609642645628486705309216742452817956909262888375291610858749604113806446076752203260268527162444432240476224414084429510979624499705012062656826972885254289089532930495058013591934327644364053919504392367515706733299662251885988111270771922021341987388195639292935459399607047920511027834506607479299806790602963077368045527288680446731655106900578046577281197401764601067780168298822643039691162176756593178906274507565522989158979150180552801105688108179833774894299603814215590038402213164907063567382590618674774011949678983322474959227302620313791918044145577182421565218455661848967595148182897838614335687084652862477035515266571469556474886688159812074002558029127059603712564520371540726643594853354094021718380417507989651217597459628540415293990381199285071088720875380342352397875945558407975488365391721682566914907766008130007550072122918505333477146320384286566166001739490405261267736140865901467495761859921271471606881795529191546438066418412583868283514749013004215884923337364262485169477955153531228765646175186242158473742537687572311384521296857421797067420805999791475897564011349927587417784523165505138420140670289096172347087677191904639374256482877171732672768232044161902750048453185052518542541725181518745750599504055388338251566879996257591105807756400856041453488859713201187337325783113285321183744859326121973883702008993476040275138409444533220922065537183229551360881670548957643430513012813937498463791277562303882151069034522672252673918900297018012875662930121692616507251409004130482614763983128088334303692339762876999910391293704066211552767184647678351097038889583807626439444910115414942202616431525734830641118195392559861459293168517858877032713817736561218383905541671741834662586886289070985640948657562544080558189439456100544173321700041666185607527060350964228504751346660420728607362532596100187799850576880185737407491348560924668677793111660231765116232209396571743593488990993831181178711044464594136862025070734869011346270129760981297695834625358960063159190373298221279713495673473253282613584905658387123920771401133170783898203668021187237292070470803492338413572183679574255441594363888846611579697437971626850303054249761977650937651467591362433013984273348260502672934987497324320886712422505232356756152340295403191719254222688712702941125350497172523209420549089556493465285400360564481956185650736535296574148454188754175020079371883574868882719013923014811427149885844663595797336100477025578467911545974094521191311187489335223784004950559525805070557691035083273905476005257713970354812352336313872194480033067180618479267113037450171378295757568003052711669003704169171679700849591228005146371647198997290760281382370771934797524949364508303500776945805696842413424661681369775693006834020554838568689420295471121177927089590734197517864023324078454389683808675979685522232904773203918171666461255922465041327352284177381446689743943333301286717952163479941351340597678713692167711513605942744587840848990423813495093234558143424817660628810386565467986193891137573247955055820466322304097237660864424446445376941659736493640831132719219811750205402358154612213133885799308882373905862601956520524684951030701044143941874632433474251794025980725569912287343602251109208849953939371614706958278170639631302280002250297397868340861766994245943410299658398685732166474910386923634968588271531520119910883859296646360291219352752388815970375544281619980543882811579985715238133368703789720241245817139274568827208600787048842930403910088241334677691676429023843324623210830382805491579069251144390986078205637689601700597813604968661658821061608140174276486669732894029280243993758717245946317067479180892338923783252192298251708549852280627396635353914998108077931241805783997593801199392481155640528048111964576418157146349317039776545083147545237499804888246768398103002812684073219136651670593314239398510459116045645824626711903508736825896042287875310611308089489181060841674182980418708064107054301335046009465687183505328456001219296404532710711061266506820340109383614096904233191751593591088612382786490646568424755392759889920227639781111640177725670693827970790456667496478795849381747215239450950159336709758733980347316998714192463528850151366603754388659642166542267387162312488206585282936695168345748181129645353880782448810644735633618517467735081233621219020135918394573199331332170088419337611795125500867666679669411981454228003369413385956435323134320635497351692606382410136067490929580427893039383466578311174878453123318674361602450260016311573444319571641294460854505593903227907909941456159149883720215725259180542574741157537650990412282622660831441829449930701460037179628399750994229121519730471500340523286265953337676725801169402759359604766651786855449571185628168002598666475124814559949090263996694884018355843685814852119979338851756318015856980539016660678935678900858069987335544346659108061900062491933160488746868736828988090306080183345963530829644190105645652615469259771868000750787014219906449393086654977358112067594065464067832021933231632023142756730079902508585275458409805864371800917162447050619712765037220966112569211498235966109635678923509713171054791742389825205863304159733392110126196892345455888243304083152874328537839525313932219847721436814782846715095644647239886370120759966689908709939245579330033337956912876822313999297660370023143947387363343500629840531660865728620111873543056868506830095749022554397980840900588653123550064701666230268959065393744280096661382520001600031563622639776327113615512686733203891803875315148622560088730794055087763880086309106177851191712068677653362331770537188085416914001651921968054804094293179902677872930726649141980180744974971401790691429520053114003980722159773984987678897641805564587022564087405369610917478163149536603420431594105197504488169376453642011787843651880276814825413194444805615871185870320886366821339567973068940893090890146686517995702132379257380210551679148904288345709585361571141521764210751447398360801931168941590973916484276926061281787330662365155694565657217472669663890081211460814882294626582355473103696824080438942424767036289293860101447654430214595889028903748669089289343426797895807809776292967226586064637397362349272168750562270675177863299402729652091755353215711373451262247297178166325791302074502816571613934970349992187394580929934687039766256443895172081711194182784943395454754688988015063384435893640113875507999149536330738797737486168372001902703650023489085023694316469466496377191025480789366115021667525892819206274533934168440663933408445077012152664433437693774961185056879761701423581894400439990964948606666620647730464211944304968293833765011422752425123927130606128362837111731257525590187628504404335729791455823313771628346389838750451645313446865344791548580767816945366779156684201015672901858086404817023389139974898106437606186203461201791119846826857923913430466317511882835013973461144208771500288292507323308437677436796829899644508507016742368207314616957608371951929878219943447202461950148454565715096469691825086177737058459612842100181217793212119913843685469691286389321650443026873945503385960940902847384025963922593121390519970581119342701525953107116677292797474993043621250628787815824450156631994683554489356196399948227635889961222919090619373519719530945682952367982669956354563970556473353558062309342026576866916751124822237888676496287426375082774355733443020699835437155865574882248258423683604108332404207358234265961400536984134829754252992044215004387612303768576261967978055527098597062380986365917076606541984240628920376052634420129434898492098824755503067082568481747397759930942499213411408773061501059577937612179358199531969524756629494972791732215236200653388478680241721645272292193005302871537442516586326935758900451250625826261695195646918671373805119296528424203844717893257732038100620567386159634881535382441152359974984043895429641469827155081741677961865566506293012700308528421688436669179928336189557528599771478910022922397376343583046703000064386264930484382450605901964847555582258954846915766671219344682078155883976710144680374274436290314554370818253328009422771137540653775867535120327750025215333988276597004917497616090332684467953037414989939316163112837430884968913576094432934480868584027727121036255800495622847793281340636435988191272532054076886028867123861288184223619807566386378347340467416073658859524491597787706367442012575869532081192044333110437253612639795973714070307029030576524592824174971640533486873338095749096351490220145369283211622627070845906211252695765153930230034482379054612120236895055965573977194783709641789903628116164846998915900281992035255939987035034015467543565150066578345101144798558592887990574125900348693131519911553831710071459516004650739258372361473953659855540746085735489934049364307227543008940990452007402167924265341556717185781244141926092288111239698253429582635585534969006414260782743669080208070376009197616491214243168848509490199141272345765899711047648171108149750535872465172114774223769435725538650978938496158059740007529485838318648485087314402511951089372269534930017687847434429637605769506179040051129589163413981147699919272060528470152715204357668496744363618814746870818143931324469995245638057023063089300376667778888940909226499691437034525176455233101654951566195037230671437843754734060807646753270069042065510249321178850826254402500268475648136430062272646971165917481656031908319097803407430217865048563294968897096242151094400529173286658328235753987318070627980674961633899539973941797421751669894822378091620911314089188387428938428201665264401884176968460992000298730604997000057577046401982041414482110774930915529333259637744258591540287209965716034678174169815797530012772804855768393792450812259071656393103435921151394842776942890649354185951564946282117644639965367843961829266772302405254899576832149999296501546278459741669325325011509461915453973394260051504714492654802823078159158912283340599724421845346548297739068790316625014788364411507436240049395312248466749900626605068531282422179136291548107129825561122678625309850952672239941308762209696519060062767887626594461506944028026611620660139820620885638534727901506568539600527261194876477492569836707974938914654385499306439348492607968731768926161007073961663193543748135956241104985760748508389899556068361683940497289978739930814173510866763226264147039265900742533278305709866056135804836390455144165104937791679429330935449002201226791455320811997610485428847529674130050710365712426350907966439716368705928449784163913928794432279606015603883091090420730390805864910234111083713161808944438232648473808727402295640746715755333908268044031186111807116577618770276355101748464117436827026669315346530405676632616342438654858377332517174090174977911669526327156898063807270730046107255128704373778268029510383891511897918771205660289970050762812887029089045348136983281532804718635764308992613695809475868243090306495356469799936163297921667964091283527273093967224180342509811084980464088576611495310580875029339881213413148338200051593480876026550571050849432635572818841030412920124980507577642967265983630339735989210559030383402513750140932196977548624374785409144660639280882296333028009652259678083030113751695317591462042722588948169477834896307846981798365252032513279599734088242994005322967156568711937046262274976005508603095116702055193324026181232615139682280298234866375939501631375280224939500623291705097448346138516087215519276139955169048421061890423298178125270526816099941864906711590383033522608061283594803143869826182408015272329054373454239551481861275089006180960299698914460734346658788541228247572326720724272316215381846317298437577897199871515896580982924088257171215830460513989427053536229997324838709632595039994737080898186877491199610167416818137722145627248866452868400132555046905176931720011446370305861908383760291296811182297235128163076365080888427962600893184115615401542778920678603502493438078204606279154925286898346792256035356483298051016382720948905368035451372316605818543097284467460373729082279635192325271556397327457114649249622668541415417508654501715127029414890390102325580881242997400598634814695473179384818191807264547362320864516444326570769257804834489958437196354971341362255893339267197160234691516000422688259899716587238685072769015972346049752165651539539923038203201462283913887112118626991263845227256062690863508337073598415908792660479809756846329723935558472831291616210852333293497842464650576722211609098194697243142986713420673910669967659119455173751652815858998234645687332531916193985007232808987555882191628416915302480293504789542375362657431630467761345289486015655190741366294408005760047530368328280462485664529090421330876801300156832194346588722162902477863361184711216032987748818509378664083217970332789459474817018726550402791645919831400733972957367804565761694622781847719211010809052841051237905825854660488670695344065444381939484731262027757891825528499233240315610567092648249116652361560041300952018464458172206782729373515788438017791071004998481102767774760069828863049627618479082597617495420638707221560963015839696420867072122360998277592733628522314216878481561697228721717400094733733663857660057610634109808685017678798054412642353198265346136301115756143017732290352056833872549253908390071379084804699755637527652107921893259999672523683156015176645338955048415339620737758266958543908369168792087611123557402817075408438612273283106973112711330036732000329193178377420713294080697616282043076919759464230187991382109767230410011013812237594367642457974767028992998706167041201318823671274145795463263346916857538713338707186089086619725098267562360710464311602546852362423540626337470581431983222514380404262536354466671571251535080618701555946628188317465370773773795332984481682372359904338618848142558689465776536583007471274306555434920914470445322994076839717872636910340972425064869044219363658153219756031176564808450381416240694251040268603338882367463870422152894115992822755210211021318266834199319481119067739729507814881435460880570941317326282191642426469175747430902655037269717421569522507044406252798924134917910630029266527443502987087337778042729461952897304043085317797415355842146319599022872011514186030136159199453591481401335635274558356209571509723476702597623670905404213614469036961441447524961521850301244108986135652582101098639429315718507816663211821101358506261928861134433987796283222068992071673280675859746665220057912227280376271376616625767242347494617788873568224697161753102199022729465249033727628449333738801699262330786213830440111919431171713875142838830062269510436286276084102421942308900543289355751493780922898042949546898117701840217420059909924534352617324082082025613151086173990879788135227219076015532760569617497240046854979987599211759591562038407015782148020082140626034947049281512928132745271329610878225864258316332034336110596597889167730913301612588885566724955065688598884344004857902859288213249971403943963023357988899900326498298241169156195185641065689549353650548464046903118277970147995348852325682181504333078550111684574858026491532294947614881453312651661483960595892984288725711424356908429451007494061527124624706930799616273302746021379159533969299226600103077783011707854576689073204254057444203806366125045568265589320432633341836026548804879078344888556424201151406020844494042445618980804952121242943048566902537808394932078101955389435422787134598117454873234133995753939965095026518723199292665239701468425898192087931559430781862985093533570938884756034455788680591660187639024852403734987349565691026381777033832639108063867705363605752783152202578737787470641715537555984160061475508831725966236585146339323376067732438743682939065256912516599808631365209686524078576223531176652491308058105619317632529254572094502397380161219364487701122655052260791379751216037065678902971992904751291024355282153341462457242877126332635672961841507534728840119816867176935520112369693850446820615698088875884030919220267635235029853372996932741694909202009237799206536704837934339333105325104298822459448192462219542718885617788081961354427180517287008193964495589241830808542737198983091247265237407370708472678846858828319864706095558442260429487922571104433289451383219727810933736983743792992538044770990519531270789716330010117369029920000371600777141029071912821575440035154484370090975854673722513361570318364279923043579003081081946115283007162814246897004797790001885338167128727595348461803905159819674654179952339197060620915357412229193827792044989374194358779700238495134954882608348081352181317419121655905164309872645840800096446931295203809978409895919704233852809671621828057781145703218299215287705718176755385902455563307918765081227112550272656420000689588175852149091826161119850088776750689005961788034599076585927390128282375498801975892001865627488073736804638680920696778301320271651874954967638475173335441653744034767540680444812236811001798464313953782890498290557913046777146666856234357600162258831417718168455226705729862873763854974318586816244919077216047926847665919228859915257602619887497439365249893200767505215575062014507473602099967172731336999389692187538953579857549349960228987618781288512481074367625205298681217074223484834283660714254309632894702761903075941297997045467929148113527660499091130043290259697734109318097069524790075473454587349968842904906695911408893966565465229628341697833191651170036959105107959735460708695395697038507107268404372789333456000964350638850058739540641175861498396299081826033345636659185351188526031609075245016592853759725004715776335983139048948114663653550260617501470307957836553998388330897771606671361216452488930222159937429071605694008163641421841154758373165128428990935964913706329169028098535912873144155765437904375767724536957870128981258611299182569766768693948923247107919751584625934765879488467741173289248836085070458827203949885026817450084593855831337877761876378898115934371734539914200535215108998973514941955533976117339475320543356427376630639231115398683504196449243531058814664334489413155862643330110355234940455297237681961366413920864995502697442880764663979220033528848789753487758988933079758128197598539208962004880895469486038459686765264174490645787089441890895399652762597796110670057320147738707678562378726886126185611525895441644841459277993400516949882454842840182677888680354703730919081468578985662162825959739930628533326784802728702405832986387946330792977864269288025790120518801138277977751882751405607927780265519206345319050625476527835970733472623299041443265036516699652314159328721464423158292108326814301906451697641161755849915377150480516982812524891637781248158739120710320248297217730935626421439680515616816219319258362883338357672869966928949232783589342228519199592094467895449274599507094811653239350426389888498446345689251640967255723666932249918939359081506817957769663803561632174810566838696658787773976210028346715891919422846955430437322154881120089624271390702281534857304145058920906455996358120297076927644962030879063462290339399920106948750705045855827600824393282661895026160977884724938193881204170278037897888413553220339711698971550387349921143217535932086621896856829454411749860791659880089521906045236892282758016295487029841071435559434670799298727395765542323785718829589507877313141671008462211215560261408810876631247824576592514435845920185255560041641856074364212702235960365665872021716317010858559642472521214539388415106221211231128592522660321558138257122679434603110083454619778828775428370953807563452049964607816365648547287188810239283969998934341952040559456793489197738807860756366392378669093770683837561269684188317437357476649033741999619789839836598038173736811107611813091414150222171850193332671392384318800340272615541454012484310598764678035847058526874120285983004790062363312782876119853589594521620566634000102106718924398536800842861607352866615527528498633168439677594241751609047228667997116959782807442216903650004939776744725416144294535804438619658228167922423134915692307376561058409518366007043070321733967430787321196373565905120820942801332029889732150870581688778799998176935190271902750023768787668946729187679807066531199566701899724620007960780331955292214005667564325754220922664227723994348683843651466533007297265482980084580148494162475883894759963751468101965293967017929974614502874533180940634071675606004190133797860301667593118622446400740572389328214109401443081815360262814370479614051746452683545240217330432141868917377522226323818772871744669073806770479087747784167580675813964257357324477769454582563389760064403378278245521118721783889569875288047014704005298943549533945532528678580702688552357292630549410976163171146826494764575409480651061979389163776874652316322278675016387154135780094636366345271770497393574346291915383622145703443952970473659018943198950326683862796418073845164061650426419985516402844149275024056214787876621170868461049686527231907076231541120328187701416793190847450954742953377234739224544883240038412391838729149299379343436070112628588967677575457914061282857107378751102941516507870502355954263069311587369112945302845829849421171258849373675409135184683595333771628495839678165567328750680677279744493918410151475462641851614275048017350538341909581770862366665478617758792612981126174211143903053806015056207080945280247180601262450287001531057443458052996310907896499550878952896148172112280276949072465428556419015115561073265500929454824119374249831961587114424891201798376909882164469081839550436389265137678203025930037120675552765288518534901267098676118543276947562504789137518871283299260910590672551012390812653373398745656841497821861760089237584042119263665992770547079159520757311478211756124114710160011108546658060348383349329791169897769987272261070337018275020800210041412338381197068938420924381207680841928086347447928920922802398827423467293760284038866981928598878823183127859301801907099982337567613028484996424859331246638114233343225396552100948206852247360291037638969244775960971854632055557196286458993249731377162173643566200623856765114195756284536085544413433808950831826272136489160697741589165764873865960116075580535845747883042575200321714220252868008464958717423407514819984186698555244550561766449354490845559049788362665051587487262240861061375185933341349212019026225162468454342965330891040194550891014309325972363636663189623229174558198291736909203767412992794201024854030091276266734326446200825461940278717317409545199660659549554729001034754491811609943729093290845523967739486257279312784579060496046456093364698616155208290274745125611282175503527671665319133466432827534106145256982715708974742246959380624445482210739969885215641559082142870739426537759855560001480986694856250318949963687494497171763261357435646893587234859204251181590738432640299085648855365775131015858491669704726082343046075610932062134542553438326021139547901273462002455032691139102796647532505250683742583462101886521856746412754712237505218657360994159381193729546236878464516323502408536479393591570441378293024649980194120841238043095502214152273732604555416241386377534741346266455715404021004642347177761167932008426588836607797922671389204576210813787550751691897493443539833028328081892863720854935147972141996456450978148401067676300402226550723206312923003405598765053279986941840641706401869450781891759162743510976781950695765909179136818330997372174817150729586355219118918225100325522256796194512173692877417415845342080934077566438316898624873381253387479222053256595609092228438396024717567431241413532119296313547102987463461557039727905472211345951715039334488606444322746256438115938200907403052074884267782244333594473277546332167072452764124490897835448405771817095410625163716034406407760587775491266493791139152175420253878182071531691491703343231177700741140892171268810596105369545700790266259252390687605591215051333562179057598798154264759154917157845921852339042811768934121975840427816618126996036542588377436469546489132299792227538044436380078217732326842161331512403008735912501833860725378305594389495033742495429736214875249622138462627474554824785206176597476402911458476586947520043123610828760024688573506209514655408106083344432137228935539527879577470503160810764392586955451283168635830444376474816284466607497189886654636241993209541281758969715472837343553017121052999031943607724917753300249551537166680055312217332840212400360511935811505333665280677122500649306082630902076366590059836111722291890594079146487298613257251755468173250177893227041872321530698321012514645106741959733979790056128981778645751757479903376892403088196015962404583924672973057399602748385123930746167401822377245976379144937473748086513597464925728676904340359444359409965523909550410097189215155184577790308940365817913850387983278280557856676595498884641524869460920368200527490180393509759215430521297771501199208612656566347284680749370325517395376512545234311902244128536926906318794613514920069217172795304287387920694066862769253874147510394083220156715905374517197806488266387760567053497007431020915982209566512209295170196847449508635416313505161701140548765347929084598350917851788080286754432489113895937576983539093548158558016400280640145866779762730104504371047374077171896541884526433918633482211429245368427719816414443194541282204906012841810427420118731988964822206766267085696336197270903464080251686669012184349431837560531623627619943321237119591308317374819496392999473148630747066971854788979174659294232192388099984723987471194698613427967727247737040892744488335389741316529785714832413581973373338974550447616314466918300521697939752298823722270860377148515800972381413170378150425039118249182569688311630395510225382925140451068623899033797360033048617663077883579474213021386661627933474924895958826461793670955727123024091238269664452759649953907165890464083968290348487948234908226967784585148557881817596107071737042274466772055671221978658472790671700763969431701210350630801286300690544404938878393077403989697421041944447720876822810741668297215400834465383947747923183261172012504255238124081629380356122839468050239368751183013733996071398378724009378003869002409213753524795664611925790870164831957719560632441277962698354089271059819013484539692772187154569951689256477075336686356096500218133301174981759944625781247403548657015938789460940687084502802665364716070738421896186441961879582800508583754497711128559080174781039488533701685792820358968775051023079525018008860766854820229949312752665436692388367234285520879772319298747717898390868818710647770412189931255330792849588686423837635916320798278934963913973241214097188876626759836722181860922152956927915385540481788557507813657622425292840844538964118623122288546650289677794360946468047395285541382986053916326007433177571436857174467978038376928304725456983830083161675326238945271776643375965536152606216405081238560197595548483934637839042747442980681406819029073487139972804769463875350777221620503131179950376538915715928936014546791089414219777971770591989487325010209560012395121223107903265556545255952459526636936984120442909382325826644017576812306965289966612786225018636857511994664956254565458299656003111924899665824803248361758276160232084760289654137818404799317285459935328751973148460743803553420857238060341138195101298571829094570195226049720457122301735516511777739634326578995728885647710754606651781709126468098028581757222177319504491269214768057839490679849112542731958583148761671332341548137347000523513243004867177397564509477198383038206095181832492480015884846213729076469356426109163390373737143836861804665452015189338728115886226650037654478131098702932930811234285899110663715322084827343802629132051343056598594693364736675611448441709416612619482709820988662299101476043497574904085123924929914415477156160004614129700794523548679918669424113222252125928213313653292360119743254606905127831732106926685190383397030437113843434395620591537272357323739121246733747881454818164910083433928187230274117056083309887483863316079098947863473726279789583889269913539213644350059253495380371015481835086119581563990889500382218648967231746291605068375255300198850185297318100872319416715603783666883577964931902276600049642733021322194143239534638127807020287069788675674455985943286125089738892046030602915106987549455170896529044928283244558928300014241334171886917820432389213976269891419319260376408773412088325288981198913434893286100604582724007286281640223278113530426833699109170386059203907792521692498233796945197948455943040944116851969050787538120912493808207475065546996060894736147172785133425233638057089891814356603449327146520875878603198450164915443534769955185111127245486871997332014817321077058386791611825501107759662383393613041113631119715700488957040741462324196672542549567435415557729677742534259711229615366518439320867880070589181504213795071781405760367171662542410938282615782296801255167882580838001103507191792874883771572185736125923642979820890370768407802712829358492572374780347677913297872367085057088147814268679863018301466231537974948727369608486137573088295874505655610495016552486234006440578157478168558904744757772003927819174308845637270364206039047288635984417118977820894577787553172569604703950669468024154370402910332792648233131575960364901302849604587791514878466106594934962911146767300988322084267330578048898485512235608067220495633474787481725625563281385666439406514587216124293739752154406031199999632731852645317421166800896438920284206428772874614807627861920266875011593322536108669025214355181192392751414861976302456085583436101778527218567245323928671938851824460259512997669915283735822733120318366533466435066598225512698242298712277010403852610124550315324415953270635583585118545507265956006073774169419288068645184338846542368021327268951094283473078178055030979663262123176491201024668743437584841860560621249909653387020770156099640910490783221052367064195794386242745596734963971775431238609227368601516819916539799407675289156070521422453723848973204897112174079579979211715137721501448698145920810820195780970048463365794074073352548284005522686992392659818555893940022578864996177576399711997776772204948934941523935164754781763062837789134446087662580673752936386942616464250761800100596980628622844244488776448403570933184001559613523619776649947520635809218766266750319561853940799387517572293362220108119389015761450549167790433137271570069881517008175994590108034128980756902471352004924459763269059950660080468683329193222211387223220824332238349509488255165204780886971581204667802480507594383533416545590724184259444494950159965224174640047930293018648791319785416649632314875663260974311779812285268125606483735452579599084454611389921354771815378631562823929420510887295398310581556297058118712914600798188304104682500682503145644589357913196648248530654724497381435714519025302874551799941190055126462671912342369739835658685496798685754335219183689443733906946149128255665874974651193610082970438341411337950236779309035443282730099559524669519990221491676208643169316357777717526201535425117978012025552371543709461278682635231088949038168344132966239725579684456387589731220164293493595281549563571384906108375301415889872759273794307547531545695136453522933867006408555929925282235056548194004646192672793286113549970636350326685812303325919410643185790935294057980521080763425541008738580848734180553036449796994804944759175572951829213566952444875678626519676699352419604975028389363251342790830304976225871333160453621727807699249257428987315274076672496794384189922665581084788288055903236044929827478426484894393963481976171839095531280579103438531296252170859237500809353277123109552831865979586073170260265424269054139009855579956007977157678340942352549565253158254045992611550645292421833510653249573123230592696932436529803263018341600841079247724315639466578338465138280947801337424918989919390505115144761328469828174383484637472459268368930667389986640055296641642672864619177998447763969236177660000930416843667367807355732063854433008916750731672506189501418209456095151382294043129586929881187036246814490828101072927039716415620017967140150409064655956466830773793116142863317101973312271899871492138817680316665890320579611316815386924404542751580814206046626717657697158003215244221460048839422587635115797070728104904523262630068448774699773486411741089990411835266117153409404090753942036505223331699761900435722060119128945112227252982923552614788403305146501191221312916965610349570776736333148151634629407022956895188955116032968729809923090080021899619674206579972890075335375247881276205735531533074527148555180792370003463487543175443859108770457941746267786791145586474653680906719004167247192562795713158540980683255511216416177406290942957353537819369301169594692187977929405869429968863141040375133535991290327155443864041047821832500427878062117964465449601919282871585997084386754638688448049847452825111540874043026777705514641939061727089572577448295912028438008411550631927194889850230308171947465692128564362767288314098271823905625338202586583360964202116228324289587381576324483831399762136968869947917130920059971761329231098266207005228351887323240678797332384219333807219561759155733587225310249985107978380744180225393363538391420988742273918342922095105818738108625259930190393479185538091853668159838490194559247275118220426792959017248140098997906908158978657360144707845912064202415723732052518476935326837377373633390689547359240114921765673941443325501652618708932261941667416344180216234228016015284577969060348365855931380133631773743464593844914207693384908659936983501770626080727252442852848410679177042639752264454635366197021018878812807719926341847197412089251679979565803178469336071657487940487579185212550022002759831428859978840982819579203593698651673413075291982835230852392863799301108849501009291216780273537941649200899969075404404492121510506948589570224439266221359723015535100743920773052416295123868877557354956464628868106749671202089362407605344203570434209949514161484121251771208149810834105731938298175086458981116997283772109486619514925106830465319597909104075918854845047686956402211610338721251549657748085472347712491321756023992376792455570106007006946349977301402918646606261431190589951406638493519339316970180492069918318521766666328782072149937782348147904266058055365873977446778065568653974900838926758736410485043301313445056130658276562612487751957443521745831985543123994421888351128738918812473331770297037181575593829647392291243719653459798244992405808181848597223637275174961655786878052542031935931105609186883502149205173557937108130277211927698035287569249604701705845809972850917642669471465907190682376603501088459310458312254849933238393133137564545929583958543735387737178003915589153570345446959200212036964075140734585401535647865478137793350042670716048216917819435022535780018240192753512092228420194613702966986117231354051151458286366409158731414031456604914036046426497596496466963897762982481963571508212840643536021184966695074567160698333207481365992685821687277282703485723776670814245331736329446701773662014108214803936272239943391404312598729277316130645340440328806248314156412658856575619644804700240691058475875280722065751241484245754109001507699556427597255081924660514366330251676988727296057228514103882488702060621808425399370825731427469468703598660114843421797570415958457700718139509368907143536313648741429724518256034046231536050554945070893692216140652067456435545621501246525923482323544535531954143546015343192328107688114279580768908961191107586312039489045089478146278565825283828831813150885109880534026156554919003280745101907203870435146946332746491398428443703538579485328759049667688922194166524943306458573012894663780060326199710974489843014775083198947976967228267405708307812456991415156937183267521057937550417608150070101153013721009249035331599038212697817102644658502102421070363728947347127580358653938580306749390461992642878818678528178621751531693648341610729015124647081440022924895951965565932483832792059407815805927927263408697137169129944130706775445486993803518414902938233752468437697186458838312318796231448905017924978392015338266794918372375441250205604292866955113179327431065541623506435209894890539868358774299881058041589177853032044871266208023588150615414622108074817649491965087710168728397588120732320066099075332369440519471382269886721755652833463640003059558881558351118334139764291100977220455339213336896217835639707057914622936332626789513751766559304894861026886321134515448252140960998131599478181452759012286189058971916575695055387762621404306985345450242454929539931084153233341472129143481210645536855742130215605200374829751099697684001545603076815709826871361053170461182074374486206603595872098314757341669979647818267041709606316133441240405822200046936782357235240388046576518714896804435337063920732773839915407640042800209589930071930725754823365183367923859889497832056573492519550251969097030955253455544570147354226603195753680949523833129158240611689845447248485917022920518510572720626008130165183043265330422297387837581327303305045882025279030286240520505647530841251353328472987463989868889130579198210025199261720495739550722838930633462236692411964288615029649124018098741416741676386539703904158120043889225106944449320792843574580022452993353832890613958363478235157404391249492076789418269071549301962672439491555249506250322285380967802868553004754789297013369508109331886816342602924194969173514452308426736946228234263473995036204373992800155542092194740370158324255599530749730069018549155616755098238068410821001362412872400541572417255078151196440365033334711188399660339367499874461172584572572715190888374027733771693112903483669132959474324773401412100407151787306579286773915634860827904948968404416075197996249516056432730891640718380927163342379922565224744773993467666928855572838671351896321500329097494910296404442647321734111400194197063601192973470639343824414374080696897731263970347773842979235902370028959709706478291465778112501751131497293879261053574187056355054173477681170476746780284100466545262418927900461118112439142105003996825270574709646525499927301225324634841207875867015116193745757885120507919007505729392857035324033824371479364432545290783101663845314659893944376194749001478906132639957307587729215962670782550484585640788702533591531248875776360002802517415934140102415711929799195479875852718792630828082404059020202352843036645505207381299308462176793460046391833899353193876438920339423339853395712873776665457520607087906759256326775882922965555567897527659843131647246306084870931058598790185956574288702466625611405718445784352273675206050304115704358186127532746205200971847696641531874314343941326114802930878501724265098081377457921861567301981272010738706754932213210428536757462295198731777937122408594700049561238613458009693225857501730089956716474263293122786682693114133641611252934966833490976165650219222877016727630658888551281869494140919839229692902315595438902715512779088238115656870658241035615041710246189131806501234185076896104873719443774103156915635716252709432901489561007358042889270212044876043544101685525013223785877477216282915332032045717581025395626403191870737731853335977158013149302640982553257644146414536790012326674380551234497161889024652427046701590659647170548341967575077438426034864960995100889108193447835975766605815294877136077132614932188750171745413325252904295110950501460358229673322056631785706575641941901288317269567803155451889736434504930361342555963620715638021614770877217760850967646090747426242554651792551745912528909199208168798914885178302689893735613340261626182151769051156881590378186456091978374405030841786738644975777388779011780249567865882466598636242037602357103539413740933870510470834233531779786561908741023608028635274567133609496566819060405838792683688913250977054691289576666584587862876650895706911936119045241381031188720128994124919880277986161650349661721217753263044636028419860688957730704118024481147325808958981791222584465204096920594337763668151262064309965088235322501962874256877996017353761579818138420263276620144533498519871067876252375042504750350205579172565286999873224998634510416364409739276808576508157339516227175077026674670913594168740012528977025218387701606852331323453653066033559616569922831567330672810881232071294275104018570796209060529390837108878914365835734786291453024130148359082101606734039658971888809086861901787648833649826631239290230022358599502860410584073699035831475526518206629516385520347054988801785006732261571313546776345238245753996778170367209058458312084113801378915787297829689083596848247695289491827052968936176803244762410699983549582161234170758107843184945317283030764377700036672998290391734851721605461644186025851418702972642848860816148445738333672206082602130674952619002305764196745419146253131737500153520970264070522720941819847960601308780376151127425337617517258220551077620797115583996861240745390207289439583584204510229234571323377164968452314094162763077171224909387580238579558608430789926547738131054420487194027506273066683423813429397335351011587156308454040901032235051653521744945640976102447687491752521129212505588967666183621664731739105863804314354326211322114713243033661053708232237891050624763659798549930291493840504041881697642362848519284054046304030364536615762522261440129194946075437555513919075175880632308924571339764817904498850772244504713179575335155461724756973251798053967600287400746511198391398444801942140387101424390601360473446237381228024574953981177695612415495273581285622984025731406078439665316821094915943269124511013265959957173389198101756449353594171202494788369883102176864696123516931675755882592045455528980051867864732142473562537266325122125708144703301600755117423200710739840207409047231210181947836365754051489894694364525333306208758134064854160579905437735367071275577507166193268349949398035059439934700249790203173812168243120375690556362813714746865381416193078790132259970477723247414977368478214886816405805543750953709976724584230451503615466065477756579739482757504084651858378778549754604344472667038787708643183871717873546661400569346718413169106165145496505846699575330758570375485175572913114592545126670543122416137201581232876590039222477459513947878226808019553413471550885043012950224268949792998342408378119762136383799596371617568243610492706016252030597334455805393743870408907409083953523436582834700530855736578048750051380151872524901189001336311823686850652366837193124624629374979548270405091685291941180192723797283352898486735212336951409404408433951765179375182881575979798220641636974709528065836116785538451228792031819246227910059158568341858148962669768247096094599406785874247106621701967473723267689966300742936173392605488741189923206653040928865302374435361317344913420443885697284236818926207961298620135000102000208513613321829473720546656860443190399823113829991152766012487478316305781592230916088792260481407392400074585201194807390959372521613246383221610103565232671195191578317772295287218588980969877144023054038291707515078011566764933963123660987447785811247326046882441893750476741828473530760022418808092062681865567766304372576259498630392754743741741433993658627688389155393720311676059706029038132519078122064409019624603515956237319086417918927504162860298248314174189925032704757202922117826625422840014441485603605853604361925002727226803936636769952856190526865586975820905842597025932045473827427776548157298402320336311842830140544929820899373314956319585349823739263189537794269243615505022864403429681423110338492608120476610277806526934918281716994386295169084856305850848762841482979450443892615501968228324984579120758560108916207171569648779910823506107038424596870874358945830870961504470008619069027195633962101716693381190959692767765540274415190548247110005221792762836431943537711433016394087338430140160406271731969797577256694956778116095563561125370522047565511337960225434847001036403711050168504508192471293984356210760288014043193188537486938130732150301294612126355116858057474346456595547366564952072045300822641981666782910976722814747611233060445559693147183546495394632967221028735836549641345064286344942002472016998724237563565383880459831133968654685522105273556768576703794641933513261434157548497768162210276069357532735320194957706835511443632803076062617592327715549685829807139060961761442743263570769698888219470549875407341139701118475819027951125426136739022151269854345894158797856977762350894199265146227156844682197010522299749080458147794387606670324259987116680377518007710639613152292021036923779668871176840207558948462934732664098935868433473236217318540200698389349860760148539614915718925570828758343381442273579901768138958600212822739131139362550115729680571680696868189396654635397411189822133225664995459077271601145010048895656089176846149492699606077480899255510585982673633804997488601069854926279024085292979483367042671155902431299371722173118169538310836882722784092445032441785553951807785231734011117335015124193791487604874186929648491510170152000538311905176974254904380142681757916659131856288684676448929335915073200852709990420767346391171536330084170099972973988183482806412160239118769824540477652433851362382770892646939332415846771580032957658533233866140060920978967347287708001942150357750562513102110142847506127799550294560449570636593738037077422945430416034942491663652013742054415194631683208438327464275535415187297073252929481099786336886002732046436796449248441014070254952162183193086472914997933478582359324605978525328745165057874626984962124110746755283200345289973072753796256992492869625674545426181330966039512388753377934547149892295744984657618720763948452551677801967188319712256473634011232356030813748335273720279931712052979605891597352577132445919244023003611164710652710419008501407611802117428010931792064262906152393231094427209308511857270284295982031787488170170085413358617807259037217054787681153591556174327646309847701125051706664575105531550555177076360336778163366195307272547707505080624433812839297507783445158083782119039672227924628178145598629896572004980087379219613547627442679696780166797878332574854804724859702223478587527559275871719936459622538755017558405826093504057860094166648824158484514056255940731707767886998097905933313532516890185772630084886806329994341634497595913474575705479907382445308755837907370700158811171449358526903804331428143031764308531482780614811476644385629468288209690506611934413310400981370917426885498875077772386668135640243197658443002659985439062897466447639602151155307286211988766963962245572208982627281218748639304170499619123462603882421800459225048922277337149111009904373105497467587781360325159257571583399667863518213964073829348422074933917363824911757650695856983280694595292085967021203485889360354082422429876630557402247847644972529439495713989555710949919057337886776521144433583371471693741366067109008681352764546452791176072672436825994925945299301763764928619512714255546317427427679759007831277417323863269436818217305151819218188744210522990704946079564499033682560108044351345239949358555567330390659940690533157547689628505706266878327066217401425681478768723110129858387590822394865317833884224953879364750397814285687055510434018869120669448174568155263593861711739474436694241897601866998472384218511401317429699155733200737723417638057569887653896902715658386980827305573912188173937531102575325978099912631567352508321018845161915249881462109097655072360687254810008738606740311405409977018176977491204624896605200075120472361955490536564359205508043006819952806893362888174198298887837009685529574195117342613506708334425019471184990914962064524483134720795772386675211392611459930889423903243641399481783658819766008083974710662970886194383734356227999300284237051445275308328319526304996872898483350816097880521705149497958640589436397856306227783516715451883409694717290973360017015112039031797247614375754295875119147505792918482910043034605219442299854782435919536934323345269657610213176554954685499021227447539163231081861713510533921568013866281851502137359409223127886085115221737624054611032203574677675328558191733612015589353512862584784197607925961846544663525976868096721137938922415747475811957919406909250877384766907101173361044944469601291844053433864676220954839074010939827407404033444607600741885603688669822675280281234524727070601550577126939475815288171555791534819952231405201184954083943965789829656813126782914077652721695539207945476385058765474856516684378328536005660104475219882857698721245339809979109455082409301003394939127989765868571132577489783265380344918648622853882382402808779965089624693414513356006758555908564061969933199951837592646047232499673443940112088650924668864318256209830767880081960280579314123630935802344484606353684906671497250324680196195172291853320337948314462014214847538893964385875265720878586660491946799305497392261849625932532845753935646727988583816012400507333226061746586264601417007621364900159251955422159357018572287695406414620181764511235838337123903558238406832549290922827859098915113042373374451900853392773708610909767325235615533358452142242899913987399263646564260418975214257829257208001231080744653719056099759775173682084769189919679900009212113435079551940531682008259785957992839563119763617961300826092806801019400873483889471048074416974985150036840006464550674136255100245083487694482425931439039172267171567521552414061577562314071152069001947462037280158733258469107931714941082209335894296853675956657067672388300869890858363423523103218585900556840928077198467885445303813222022516267275192996308778505794036438960087953718811050141044017996430359111372196313734074809227053211787957909313824300263833248376064828055915679586270525132854604489689278074617579555962679521548791897299078091061740843077710419220121774257552328603192503244885964710088435096447259099612928389699203801564890947127481308008820235699589336666773511380343416659062000541868713781020413401590145841920913323470875878923235951415574975338781494015807625116609166627684299511991368488873346140565131425605470266191480048515509071021968408895324393265940292135503585688823153728626265822869308963051754625052711508053344197176904459098814737025549883986430854584667193633516438805767352005680153541155318662633427081843469065807655837902624082653940037355927731644927206558143378953930947832719453718700182559743694841644503739395121613348697568939114856690085314118017192332565448519176470525969911262409845372465568960406534455104099809461464632657853535180020485208672859402981856565121421307977280603481163065023162954606025401016868289200302067221075600455072583934185553396654995257265357389286042522342558025100923675958698779237944443321470991336505091095784633698068002068991719431363717076392048149428894636828928296012054421817324184937323929747990118765704756255279352168522787900817113210583220373108139267442979612736596446820526302314015182680549592838236429480060916860132931866820852879781648332680475243205006108836935704990114570346703833639282363906945404527427151750350169041726428920635567778768774166683441834538283855004202472702332689177485897615454586503286683516699912938864041384663352140835399771058794019466814294055595732256630628150284979478881262119478683688208203669938811053853121151511912923678475611548499997837968861920675041264520498483167135999045434229841671483763179202483607954870474102007393789297291941382119683153463566833011507352919118675081214204960780237509812642237879691785532950675616658052337454844907373756462281985157703437920279341759130662750188328514881652303636687750183980988466226843529451206183891763942594821827523097654837235016406386502313544574874438984472647100361558336405637740909219476654601690624239873008234180555928089922065005321491905291548502473687518873226312799539810785844288047581449611754920912232273755719289335726903807108428362489458871120271137417431658837407028398170224405623951325203874210622100026919253991716101444775573503024746887701963263180446741709334489757774798431886633276992624307838401948700910354412169517840279353021385743111081983013017657582655193598166159868192149650938795556125817755317326746967716736111720628158327564382922124021502566561276513127329599291416408362209437065375965238543866186921897573768300794204906977009167847748401063532652185995599727217264005116216733540331490843286043920751795631949267861876755124777421461634241208792707870772743654890258766723522754726563466878277122460513868641743046489621916922374562295292225785623105407624077330222034059347716238448677767446722950607658601448860279323395844395597939657138094998354935519739430790700334391673762441378163431349613213794167801839489824851691407151109933008020150223378208520939215794166958611454641499515441351534856487751922717122015567720958799064722918587235750934217491545158482384502013170191398558658827568409967423010089756898565744906169038350387919548521106024172405666022337809747424820768402523434819225352037906576518098269725582256441734444177776317291188774496501074196371977598179270501884245224404421516358105192322254962091301509699910555646992493863788543494930646815460848351530322000936175536239152899786241722713022825187468172437572742782155391704741281542112945634004807189527494882300630160862913833625505509688335644199289306667169539796238414124502813250151113602040269317262350486206049855713494856308147254630698825678220924908405300612551536612991912417460854821802747089649346037470161617596510179762460344136984307515431629184863809183495297685378065607389571466181605854924991096657710050706573506726221731108267605744664425326800912847884773543695267710713621924211212958105006476588940371425496772501582098605759902601567053647884988273977147788259692684392046037578207066064296725697465391331173943446282824886445457245969378606502718604141835139134499828521786130943176998770165046746976047152466319117561146411180250989488362625514459310402930596051057086091287369331605329014387204556811000481364470105442402694193705241821337469592332450250497047820942445921653470571275991531414592473397151169075810450279964729597236446262780915645159115916468663025841870826070028591490879064112250343417919350145159890728799691830894114789876544226661618855315901729168164526298979332190850662615238221683980160542636947660333965511961025702115916281093007859469609878173544247647070748372925448031474182574485602100226304931563313191710799747265664414014377801280551381922153690046294066787361086328368216463738757470422901595205927005982733003894804198414684751920023824157002359420060502487864063861679800778919204700578891219340848715891543242076344993673201614997586613174152111467570860229682577230155888699121063237088173550367537491382157249237561489754151733242666455761775136788251853413010200473672943719853506405901189329734885954819471879497072619231988048445693784143651067744413568411988857090188593341484334580963705454462980660319175131979592875923956044994818625322873070368996267059909190181841479869058570960207456252880535592842413685715090520575763339235325478750317528876407539519987377162643978767284758457131133988411195385075872093301088749058940606227369093085283223728584252668205997277385615278500716905593014223882504295518844318856934947001517811297477844468690495703926847838387664523619373988679227665786083650630569906245725939217406398776437908468426603030725881960836377879075471980066265387072581455806002294704053198503606480108424542142927998574281199781380902542482771085162173230308867456322279734955983564885771389543575390282676297940142847872403786605754547387665771606357926771093686818986071576095532376340628041924585039060528328246571761253766300836998222558934957841647213583480352463340253566267593815958183066019969277106802254240065697675307891451518945372375496311281722992446870277758654251647904203748315676494089299982946345439165437470223025087229258376592524812400214194302780613035530100751612076512839124112350871551735358480321935016959446225843706393532249217058484847933513594053130542390966113883708512637119200685564566702338077419203575095241034621253046198388515156853987586917799370860792403330332231714698016571133459665623645092791742670153669975501274398425174124944072868449259202453856912019830991385283571038921734928646122462613860805750925076944925475714477141023122470722272631031971342406924921017528827119184189718923113417330301634170259813403333643345602783339972804018269912827570366387788558092394102160000082762292708369840482211506327524862404353529914782825633847318885487617636706618975809152598935940727344813121394879478350976197431291625172192800628753847251994981563999963004182475612497721132852269743311509538704028039066406323979688525042673961583597683089476322747684461254940883941028222950485159713933804544652585365313682713413043223751560549339609142497292583224036585085895765538479784137133353101356176777564210161296794459280822217021069111777557788207870165685188803654254575794866527256093563011255018918801602834585058957471940893112609054014500828674704023795935870614387635527420322874847706657822162454890417971242785588667521944950016341873233799181956056259986391781491345433562714310495091374489507041599213035322700584029843215570942978836649884587413896455584026915069603336169589870555901112684096588654491947234336608378494063624152234190492786466844757551720649702577881465031714231414661430390648614819483122469397373439541669736922452110511398915532653375391795436241181696402426021988651482524911060582678584039697975271893297503029277015770449188621407495814959589688629425165151920442905584152696333056304483046242794220497373005227181832058496420675287895534461668672418672860540238278186180695549483376992972492702747901871592671198071737430908191535052664100315786822430578184026379150798288762694613031000093089052106659372862868731301993081793700757823476709677414695169633154118461037009854611612619874677114886300476134129526661446388277592330114482078891105955301651793989570232295884848844952525347152994036763595345461479657258836948591536579949211901105825121059114398606321293183880277333883267510583074235803738645947005796087109971542262766251727719958504575556852503504076876322154868020844465862594308448559618259585047951783334264138857460857481995001396369630559320345946509213166934769098322755175332540168261068284594724588051619612674573860035541831783597127504122590346417213775705264507023621862739507530214351896133113315434841057413899023788455704353918612897260160777202389715846967793256016754491779582886304468042517996961873821778498893713662411370308487677096472198369467237922629307287400602670646876447101772799655726705780954954367471161337517026481218993538785374068453193306447310192637007181439960865222148125934317558485819725216209842538050743401900902607507377615905428995906682254050146662181072414130435406711780463562196187143572103901975600861273307400171583193260157283191784764595179129358771728323670798315625788341072719288845804844624355785298575654858787615297105909197725691237003828768709689121237364547758000603756674507922218384954389158210350883027781635979526711334261122818068716810620456724586632008339515514079167637049316592390358906637723696355611439095145824208264838945242254600397266062471469472173215847567913854764265940047923898660463428201026720373387777510898887152936089368295610178260238872052362688375743530814051265786579647324826175337593939888927114666307664814497322455831874606114533804588014939636547346571202644878476116395865085472133963485038260257808487328290023466398827530383349263538874338676916407328703874757987056077764327302878660445927472932156863853577204830281409983183381817376256492220342267388115646451370788715512854754535265007640100849378314576065686557558863304613669393827911322937904499754112996537328899719363345572900924493116019144649740983739931353103396786514276481967886936224883077737300651130934783477751267096596933553764920795466716695190949809336201728085381874602954963681570861870773659418376909167716120466351430240306379665868054909206300094605737162948561276873741826469729692010174269453601129851044377746240858689953826614065515556293071804322606143919093418650119619401637063372929352598082079507481392889406862595779457804591185384809595983403005975715679211953421817692282281480330519423750878332759803278297599708162093523901735118495042581767290578357078833834057485500140499282887840486315026360895527157816577425017072034131906011178690045793957993040141740048540625772719609553992579567165850757470953874107529090700410110381592734298830605571286479055426505831676538378575052456997958808750846589127790384038549145652618496924514946067593538305641061281559317719889909622753289353494963189933074081255951778489399823790563793752509280896167702660250611784188722952134892625638932332101109117238812715244258499777664839052305522768513889958309311325459085482327564291475505049744790444281438038067127313013844715379078345253756941718240246681349305099369760507938414310636643656522556363183172012725635111346966466645786688216750330691340407359232226133149836068490236122694097947805112964304186288205355154911158718927597553083957920565315707065464558139610082230106742316729788186090559375223727551804950611504270330616905499124868585068922105314491700324316669043799323686090931445015245337271748354689569794518658261381328444314571042905795965568642134603222331700707823217071459843566741093361449525184022669607382823862184064044586230256150229091458356562355847003512812145766531757479804480372991640876178715534495815214414328449083199070903712658600243439450262818516212933602673596253971885031274111385430866543642710688355748670966753674124147821807564143217476867016900604438025545729603749556249860452112938988923703440457187753013500409508465924050603371755307247904554095286930585809243418354991357665512316600474830677728840674833620316486014367751070140469166206335187953319401602544557961069649201069193657672455309343132429732254051747469635282693277412699582453764091417736961922045750752044006105532135197759110903495549330316808311356146702775246901009809094907946715879545647886089402410057325672159145090674905425161820681655793724197320240937525598881847199176928887125599428246162284709720256014969042843458998776426699738121656602997935301905017175689209000060336003864843441602648818759406244703715920945502498608480953019588336574096652489929681858794481858780591872969392524358956383093920281707404934929989321059720571676459395620058314634632002729965404419322152530399864572164599637271970845579536424704232223396518307542003393782048542391973533978657497957420152245048099203873233005296270472902015510993485054043429199557161401627476474986454418919715779077551386341137585626973257763498741492694239739081685271490746280314346743107090739119472629706475837286528882139479714137951657566217220165636445179999379674615508185047631484488012523774962166369209382391632163030890017854470810326348554171996844209506656843138538659516399706997993741694519429489129313039232442954336505206362815719406949152148788517973070883557474957126609044754078786930062416966020366993896161474580795068166917238101520679872302670604506002013245277014767057609107359767233220122165812102571222314708979494677781547517278853737687956416259444148511314374006027728229036985900452254107344834206248379269960173766004272608200422611158552494952089534329535307210300526951310279026022909803003688778912998020992148340550850820560546494288355904117865318863776940947409175784032094234666773280592220687006282041752952930294441739128712860772970329999699319562568877611488582203853103032877803553048547033212534290798609268661866591246548866311688821127728678382127546143072082981730950359796905622296975724569523609201628343249932666991212087761830092439772757784090798315884495395739727043208937815369488877455698688026721569326146372441782522875337832918858815096790344645246548765294460662328583697237785676325472308841052108646838487021144257329172708411950303354058706851669149710173811086285431896845184902986803354525372839448972449835716370885510236693589319566425660473350135564452704174142793997998982868791205615797096378602179123501960655913030472758427943718974737254390690406111768465045604142516772005035831033239421732338365610393094233377716294818219926017687246317699267020491534012524042813016731678157035038320402776112926241146142425124252288666143524526630476011575388093851504332666258275198307070979044893613717633039060888468005021001178041743824011277786381466443379005750951101176888816111200363073375596817398938509413120676346874734245083171802190568473604276355450550363030131641381820019843323853700369149787651445066698012381672083775352249701067185886913901786557912275150659772899394251838416209890823793703072761754458576463999785988561817133028668479591979392247637764833606030320752842767357679727767109185435989390036067798574354822005754358834375198586910083544359314054455313125246409950687744024018975754480118441746508963802715509910369231902684996288448933257379554068835344687575960604154299050287242972265535847364913598253280157667484685119070707618750865061554814257452739351920540764320215472066858198528942770760183470900488390506442470368382031697460052018257209201101360792906826822863327609495743069153727052262267601686334395149105531375670314418047989695653256607547440413005483600129361156971478411923361081176479463673106908074053778299662634395402731333309284614598023681795123871124774789149114801540633173476152544332733358875745975759368348382123977567301722029367850860400388959841591467439520258343195616471336561015911167924553342435493140451358074384032712527904707691479304975690867379618141229715219846927739863250603671514754539242355861881251140428023657393681997937676756227267071703443477552158736678154785242463465537048689925595891227405184007050998843720031438326799851876690214923602668010931921121888470356227485225426057325493923984361389117787726016435091417653951512694500828230210905001594627230875466451626727444696543267496712623191596786319910027619015678011172851512979168817556518953980032627833507894903327131922262189020315043839452932454652041450982371915277390534604031219530235243440213054507938735544660446138711185413608567548031543369493139164030348854875659627604291696183316153223457523976714494990273734961092106583868471746812731943317559458747948186310177092685456056823775446403692488491661080687869768895961920327152982333465368243772685686942277388028774457375029529364667563081740150792414290259497547607204383360549048883226339993685920476065848456644917034644611544039122506864378705369007920638473719589222674751898158451117124289917016934490678916312389324493957981276238792024887352752325121249986673005885195297691608673654020515504647503984133307835159524888411670141347896822684408741463653907190429725398601362611864928231281596297898764120540695597783404411325451136961276452057496489502540819559590462731341198099706319350383709760865141824924386974302602149847547359666636483203418910350669017475310103273580592958284605014684110175754159726491907494283565885099020561445743304482530379990786967654370885018492372572168297371123166367357524675145514862199102178165135661812778222331889832741725886430170757019674300420734527887292258421037286431253009019842061606540175410615035216828651622822338575166208691439444852518605276454143363473071796975844355945999979181940848024702438105624333863803966669480058598049821940093784144008153041205715386071708362437486674914480095565047124795309705457093758692039114081055131927335068280990450299890767967699990292822244610528969889385822503864850914394251498436938118131034799273875540104991295475981315591881457965741692098707772481084677572333350795906863482589590516683517268769760579068284349453258485639697680093330069873551142052275256677369729554944287569222643310321100271019880606302340295917450571354981197321474357234683702115324424687481992482251402797671970719466640493678008173459027434789426981972387102686217991893059031595720356513758492033595075193578139013907946534147090804989794135152341474148185769868590569328246749147500494110203902873391209808600340437724738771626684164129569332306164360223813379969909026717077804723276406232143089961193861414363479509500605707774434861234035775652843721939745507955595499142821002894706549154678142142236968688634001198580624318498895682400828878701539555460849117164787475728203223517553229738797238665682461046292477644079376669266176281931167102176389461619201704580298770883140029830024456037057259604253023398562465337639656121885120981069738513707148824140330005879434424958092883863879351137153578675515348297049382833133328750860431728557744854691676070450921791566653854031340897304843187385586203084275460722017642678764733650774364183623532449823590679989591850216905025197489222134671008141299373099013750352501125739455176226180053837470421226943574596201128315503827106279735053008845605574223159623268230879605611456568896410862359499495596500906146065485555509468073036441279387311697902263672259173989194187791202073013501360853075402271354281715358600128678809989099125731598255757185707211800342715068984846323646880352247521840315463731420112798595954287322887006970539209092731147157270456465263725581663262438438534223074472128978387297459954012626912973272344874291900320843967397035067569541429942143428064722968533576268333239214589859024742519624405427842954247068777539173025374925555175233593634077800322564753263699350835992847680866428068000979361889465309165318650499158785983860355656588041964805382596949073918570201866573575568845919511270270807075633789189268323988108096670969130466348884415633470215119555882976853073694478732464838202732582357228008127923685259372435505295359590940959994760379695101636693017975395310144510408796338696373213108190851364279208059891222016399101285121728135663502732528697151866495531009424102829865745589533725149947198871795636201206068669012044283696545895233169763948658292102599323010123269547442973824489376511175436041121008249872631089893705259267487396176446498994424408700479601843264005064388238099741691745636680364092985463311989689427989188266306243557329947472518527966955545652090162384808139479561673251815216978712618970206021487689445402301314665238439549482063377153946281733067755510016091871511033502582648752317529548381062764254323597581531509755138645164091545368861490872330605411740649340602201296877452621938336920584195086801099426164518152022435467018690606445413125517352435433456808239793510361525531397528187022647848637364435231152013140704693505040368969467053352896034260437670018800139132922977307893219462018756428006699537810665882136112344192358804106047495980256958212471873913087013196593890669352017994365921426443309857152957940536399329255112651505734401646872166317365344219639217761787545243853354726652600795395563419121516274912175651871193681475938809415403901407593381403777893442731266714935799114998112407779552053800726171863516507704456380151211402301481414743881341014597071180816071891820527963749719551534766144105052610494303144407223733124139551186912163731315161343563780361237329347127115335876568514184827231965805280724426145477731342288626577187018026810290053185590978920720180153897390490345069953283372437513347121462813178718244826510446861169570656656890974610167120047033866753756789056208888685993285381252875528496985671898319293372290487041980701153222109541900156441744503149654658322074733574421199378220723619307748843423743691995929718973064893874180188362906467798125635721203116560258900828905614825817227607351720084061179828525653200481986658221272850925375747291431758055982556939017161970996267937288738246594218998291873569921630793812816476274185547408425719130388354740506577240704665863880685067763910357035651505511415195954495035355912617091488969712368946563522902185386391283413951814945668042214218125497177950189693002180875056290328242230392882836409121950721351156089935385150764744298957526124687592038583718100042190669264275368250728702304051041103115499560451686459240988436161820459544870618672290572431851332101942489890617425385120703273131026216066964683327612476141723092240992163754092939255534315467943331193748915795042953637985136929168995225894332127187944723558477733679556122919535058794466159495170202721570041280596558281126352156782296946950916112066977238183172980059477495591703406303742212487336264882748378675235259580568946795532702830840746306015629996486358924139856670693810002684990926407289040824216187423460535554002727035462473444903414634719777567354740844946600078093264870012146006360886821280496662283136410681017320931436712585064435854908959621311404833036227381829252752899316585212002428320767379959283400040510449045035178758790095116136496273432042948580315333239040030651576156552852651390080602492111085378859670711893808542016451781482475773407271716994795636603075986995082049120884520684755628352393564910827246106031625599825940309695651514967573960851464027030813571594833472396232958731609167786778642234190822156270011396362673138058012937562483070285473050900486308244907241106449519873372358028629579080872641950391606164399023673258893287007634298863015755006068680064851876956164439056061684640063304515123226019743916357112985625111298115476809991498228252485948642472614197545175034443152480689632761758533137832240119577287994683496592796661137927471383136392590119866194623565651475170255389693631944171775990528913033547434211748533356922217322073039864036779530004634213287153038320572502156991771693614587389413479921235455923092891675115544687759304975511620825482311923390133452863827084615737554234266783064889050144343224468287701399481136276137247110395569038680459811536915080996167586097163376076648991795607975947400216214681951807780574776235917746682384602453074660943210811132065426949663991943417709004051475642642396202013193580755655459746616310094476981961983380665296256686492067274705252417487426595845083584544871210215453077033552424604730714707135849401264918578208795810073254387280498152652619140878994834072106198900872179559811531150570137380696513709610590297974929256273964086168185645853609291235839414390963421017821012006367844245229702371490313135127749985653278033080596815417266614445771976247840246067018741915429023577708844814172764469667229124251924577605698841321790213758298666085498735130641744809331412245773756849423083649619939716137520243506816912694022085644596452572411501349786615361072946753409940879434850436996195615881021552439826335641528211257632093822525025659312673038396457040401770664894407374202622108254191300538107153637760857494733519989975918947860565865452163224657713211806744946953255272167970667892637941966103667163509953008118542885013526962030102351927512050376529370141629135265465922413946006792914023611602263733387224056443037469918960966198277637987763773701436302729562071510424139936090032494546184334150516033313029530696756762116854690103590677426632854579474999330352470350073991479021953951605882467970084661442816840440339461348188298284673929915195500067646687942532903437962523700895614397611416026240957887106400318392982775445982694917650207880762247054425101733604761860813582031452499441997842726062331233784550086882289005144348469698324312379234525326865616915952407990965236371837861353553614092829351146335073955114143659342318385972614699870590642062161179808896068465356992424735612397267326807069998540119003618354238118590726112391583988047220108660759026666206784247627042124844325271846136277086752335430435683772077742724188070326682559610969697691948030310386959570363081062753061632876810313279136050164292568285742096046424803262952849839913986714813926067531391958169156153802438076468368614116341340217117290082741732520986036511912575810855209804639653776540402134074341759005148985271452139846303559292871525123004737266367423693978311101128354352264957573912731746791213065523072362055690162234386986934992338807433817804084154854944424978360282402561333380663410066600304749790666140331179883025970244685584168544444104342184709621244212888670849324183192523434903201079056502104707908393004487210420567640031727167860563420730395695165499837349024772992319869051045129269901770237255148384453390877145308755134097668367288880549381345786381379580412451314983769116581012447058514833558113780472058088282835707529609325218274467346745449861829649587254699784946353105632651768607055509423319560900122927996042456058589434847932557773004987524128250248914201954062037793366992768202011287605233521474699860121228284699428027874659021949232501807029472653527691398050735654427340881857015105239559458398245642990560903396609142919258225871266210659570646376389565851881357817280425399013541967397927286399300694678829089145180168785987536394934093894745785628161224154615116382375259145894163195524161940936094647331340361753517009209027260158624116669280131517467758926354396903806519929893809328955638213990918858157060812687226228539270771166129022922891086581791000893300305427509078327617730585539837238355896813213411330274357130975078635355955533975806254393420068908623427174167653500770133493060243249801657921495672407854795984100756257082368928097606776967062678452766874423231287148214540844942705524136847529900661660659264065051176634466913192835354372511297193571684490359726579364620640070353895233331623545348039441195629973922458794556359646989215187935257485747613483850001821220831114883059464198306280180182628332908891218231950217116076807383069294125335753331512882682357755636389298353407315561642836640887955220833813174523108174216772010354253678342843335774859876194538050161613399310524765286866215223160442697876559130607212381335668265721062684911812615048825129802862876655460175784119270042669807404140368830371549358756186410252499591716617269342677373062894229210220898276803156809732776444570169275895098443725459433339389095051915362820476224379819788645046136534823847354881323261863355281312217788286100771818107632434448429750155284947135231553658391292635582012635962977235753115122198121328827494633106702271301536519226266398445353038604126230870859780559455714100313513345530458217389646764145934352007899775735790352037008141469896933920623367897930321041187424371321609821646849086706134069064883013757190883437911814317569930670315132818874795870011244996215296639216711662829672442976871008879339902118376242993287213877515682891143203429746324556945633623433667956970516936630340946853860762535747192263420227200749711423362127618600862648157002697068069755865513284693892808070115764872933046765491161656355443742551295357000292335674389986132213111890894717773075529623933170176881417411293344635698597925500898686066947945820657798907791093940303233649515612952445631943026112166922102536594354043371958766520833828603949413869140421482782292939256514693034786273927228253318702973382278926850367420434277420851022858499474910019870629116678273538617183100697854721133972296545243763498163879041776693293973537122202141466597958578797671083188112266375162901009444526580138512909053266961388361247870043920849380382263738712850178246405939428060038356965078912675373828601086794790524875976821470538042243808959867488164670148350160465017111092496157066170670145486250174744920786997519000181423909326025428261742173138125924561576819144200342569732127215905893287235482671087111137304177390625413476612141788253563601917760371550279168352157723297328320650769597993431799968639234239666982893134024020691601346948516653814369433778198469769675937761581209418256703740108649213413183884274620066599496109342891120347282440317457869995345378709342082336689296843920829125349543124988632716624904665073413131331393538696096423589632406182793094470074642522170263616868466717753191351420207227716316065586673035020875544565969160910341748378000213898634750948339045375706461167158490745566746296567307213681350389763731794850833853203131011327640481887978411911097784882242540018242143244366897070029749874465457737837219559815167093981545399978391954431618944377285068560766954212442996328695852782140595473003212432548771280798589299665919708905093554646718602588305405634234259190246592960784773625199652427299732392072541371264659732720126342352069954147652162432633401020363352229328667444900790972491013316646191849110700640304817251751597785828485836271711876344705240306614005060622907826193965003465159498306594236367750371972406143528447261882080953151320975835571116718794616242954200690294072708227584896399360132485731342198609829251992662989392676648869356585498169118154648224652918866387934096369885139160190688064956441020224169287864765283932171683847498738422864739659082544833204680161114835808833241562431240402292539685953366221077165012205194816742563879708519709262728892311442301054994653741937956530262077176586726612394976399524023930534038938724218076056134460584541353093330230076542630146480452485604436746412309133126079983087027657002646029553597004259673838912612766130584949459707494144249811914399912821917522930250216557925126829412137840601109767348199331284162914910825023713510879460064619338620109721414497106633783646334405934081897010589971982124384464261714217764757275466343061319218605274381098950732110486639305611174413863374194870415649898719875290318165912617245768300653787872740147170900547224488104009368817266373391601222439399170371342992417591043410236716667907527510121762138692688502271802409747191812167680133209073566059893185695369947501720987033198326754141225806735175107730511396846589784851447435122169803893587523974219072338681378059934858512945479874669142370733345448846400945061316921011861824110176400063749125340301593197130067598345770468864910516875739045350512490964850436332474756901857458429787708341045103464675378997081189856681025848726046872049418017325795617791397863390383075813569022749940230161555699162591736997180425721993190044640381311427973675570137855785432505312497124672504384058173431682889897380584591105294383923167741040370333746638140827578882758499986251672474425015882392343577316685088213538722772879537480406587570255616264387248449670586477336205343711164413395562133002688020672419428525058339079408582512328957302986040663414565153494492764986496761444267827851032550001508268521319641476171999518233337947682734674061326605702237838104369466292981666109343986777986668736372992573935269342301981089524049137728486445789323665534108890645982358393658362909794565895576613969917370743584705467295430942641328305877597609807852565024932710438765752790204240306806162119254236205140244960239049429349232268206489557280246786069216875023668723533314716793297975019763672169706270925400464048704603778797571331581720428385981750629755394873993829596305646886514247887370820798849223063904342848739863143601913555719005453783660799945568790225820086800689834059345867632883045470539209567315952137249230802875059783816188479225458559917008923080876844448898548961898427217246441497043465714818394940074591130651311465729711279213189584646444911941658783080365697090897195083850007545206241851685810306915382759405133140557699571384916920858504520751083062011382673208562458860344477653796360825219180702361249132521384269460974878113565001786464405143014431598142089645879043483776690299614109495258095313106231522507238184358220102452974861205401028439156907350803212690790492086489301031374794107456918527956610149179120449206253583783681467033553500328138761252691366151067641392008078662091386941229812248736404379493859302314973356602848278252233855333777389035686331290290119836620112758756803717718430198643249681201885132866222338574472626895911643484669652810773408005144384409411112333933140781158487673700182970174385167898879228032577651340007411885133977930933804559965360086918398406916076096567858110590401162324089453693477626128698283221786551276956053662303777161606950574123560370605347054467001484607959326964138257017892925157427058250298305016306079951383738558820984622183230242235604984489654327074706047039010234069961928008727479148562976495837033226767317394996110590917400626712440606634756451595109069043318432946798582658124385632358458145517012306549000478021379052152910045697980509050914689541797469866806226660419115415818015809891013172287291052000447459357860760250886460508834454425128566522382006899415726514012225947740052745289636328566013131864048910072844333064356879832626027013245232011985859057052445867478798786298832005467879735089714004203817084920317004655442164712310023494169610298672489717392773869552044964386627142865483570548507870181455464558986938276793258964198419294434236861161498123378889827119559787588823358576854000129292926109083097224578951464160477649990518423253508239148281409155219497692737371503275974924082966639300211307810183814689058542886773934383827185166624872288357741985286886506967408675458184268686849577542487561487604910724454721188940449113443656213310383237417332368897365444279830950403129725436128530018914206588176663094751794754402422585947692202886137656711511885532368804145165491358922675612184073605402343783144158275808096396776202730457515523500834325308520444284884341088831857277801990764719072388566738136003054210140561530230770493674604223441220626741606352708506310419918468598887601640602651943427966793307847600919095506076301045740947856498239029102727245086374698270990595136115186679702591338063291507762584453117901206357977597728910812181670954718905113455387750191898529792197567687264370515419230803332610647890352302364469758520772054600583018384012831530233580493549563479355890146906383549685401342057491661790595463549693191790048820169356882761345607378873015751402698517816887563001275191917913114680147568816637613404855362603575995157005989734676862474177474112925945678278330175550794523901695160886334123122077032864475646553692170734295668189352575238881612999212217209128158899229518660501971231851643068055007259282438409434298092281824495193227964450004274338239303688114487635127730794705846204014183390842205265652789631823473887056192742557601157040419555811357987518051588686829343357302644459542571297108940495396444470648983778460213064998622733430109865123175403932794768562717286485983746489484911452626767113932542601556679447628680126330778643133431903232066726279730739838652223699990413216072435556416536076246945012062552143881874948889315915085573507860409078440684764745709159271485764293945120285815818833115997807594765502646598051867653673086338801434436656776470564603042742842020938361671004260344155918866449034386679713707952031073497306464338648677455788932166919311938699197575773248192165159189580660888428772090818195561428513814813306502613712179057155875352507072380349359593896090210893686192237216297968706315643033497781550939929501913867149950717160202620912677246540573610048629853031758760101255777330667124380056660959924298083175981322422682513881856910962117215537285612381357027096274679335379684966785083342466953511413562322184814504438119564878496645001591037309141340184965602243488629595315504450830062649951655758080792596070486336008156116681786486790260408848132313122508583389333468491319715647634944688041007044167958110251374350402026249135101558108204652145196055761803057291356237672387403976550284905134250999400375666605304174076021095145847026061770223150707132759140021055584704987610767063511792106518990537847155939671647885070716600092301222011324219820855119222711313237421235738584922580651306572532599380933310967701198205084942089455019014511901280614305602670522989934101999046549295381883833641136641682036817962036721772544397973748223522863069226208300652539942471556319751241302543780304353395544723477855937406041855809332144606985888357033343959045639410540107975752090603532889475462100944916068898558708495378527966327903626625830239020096541588294339678972313279525881828655259107333840765581758149099659686410962746464384536377999641951007346109684999061934458700769148601704708354764227866430469714812205953458992864084024851454065144203868498387215017113253682239937222681079118875572310229162578543358213960133697494872125604501252456229039147134996299244561143328487710033997782812597661607028568258564392664405270468665996991131906741175031195983039756957802098435285682083610222904809891265620741918410376939563409039778119584504080361920781688198501145241335262462575438823257142655536924995101039882421479102326398998584902745079071157533899063315723724049139077432461647596619195601171728592393531517215285130300137484297365121484562976134599932162816905799077768521154441289387094160037055434020120527340643279727820689459309150456786196235945196234839636432589465196617055763685283462802321499565313005518566630438927712499565192073298645729972006160927131581829705980542825330695578768362142006764796178330381458483245778416548837583872515140237859721185359989606932990097405476751573882516265291288549578029552465124921372133909089810288109019289555493974057406073188093492069567634360543876292058093266138751057798407388989810424223827471190708496227018125285760465517483909257061800881226086163822545635831464942887688605083681540279914683538173844225840929400513586549857792975053640790070063263756656937081717275236940260609524452785307619207858331666663130594557106707183763825068585553746199688147301825618345040523509291631937974598798425213754093180688049850374511504953989910101220651162497042546312958244875399018224384860472855196260162493972523293122675912595541252990428031903216232187786331276503720689077359027412249431555598368023899044955452090825801307564448917189193466194971514929809865288736474029327816780779977691003884869578487510267963064295774436926146067158695989153995374595309394872764785004866333372724322250019840798883033175227070865400113178178222492866941464655652104822379898064713276924292019405076114646427460618362470329340730648386979056662327229435649085902931700264739210649979927214539578968300634664198911153670804077317901580109339727793042022112049742839567736774870003225132016788193751472799107930712336725184661259325874964274153544049519602555521082828948957845282879462923615532213409852347426712691191361171830010529160915361841283401614312109957300443538350176886428899329069550221574305515148256144169081573516763836723137532632247740812810101398268631230950015013124637700687246431972918736128053261944271771918442380970660715781720730760809569459256213489783972963162158648065269957928653808137340522606319715839100062665172341258310930294392664091398567471210440145924744722918905724159815253972210188639596557400888952526637448274076703240787192453687700658288691462452806248180618457178437530246210586657913013277818050233291390040548082152605156634594766812006800545883353408951024183308651308753966976846449032400732381741147046187386136318145921665509236607950858538991757351321346731656120316463107100486489166931556405216624068844952567566702527924491182495522385747411442170388132277867119934417461557780123081198251920858240441911188490130508610131216169279990558066605918824102078901365843517560034366910174216600473406746303919709948700989608281923251315091315058986952508902749261375754233316939985436567101393793730068249373882483099699040510380125244871695932711586024616490593736208105546980509540833564918849139114677283026158048697616180100223870116178232890916521773297494193332261614611555222551075069631376088194797560380424205732307672962797636348503419028429871751445537036801676188321919634143228905213895774389362702221423190799503941600871626808654149527861317339296126308769633812645282598250663336920946122825643602135468005763202774735045295407178720802934907931840143194073497850381637492025854390017950450831581904594481176718509207077611476131901808972867143456530433017197717654900692316324016491677774608157591332682034404774705755565568842372250296505489010968021692254467285432657456724663156447748421765557688598490385940509330383045784251577849783720050717646854081652382507250952937459001525363222739799970441244094712646283617739554222850681278053800928925967410348053008570283696713924654288158638874819749411277799836198115895586748160963314702516929518709873114564402712906751674098354191659515607123745745048840765835199797901556456301443530662774808991163308003389050780523114698639349373747511255485209411354098028317646863274461950514929031937035315599177485117375937689758333635019379794363782857298595690586449304281812769511692256484099994658130897885047156823055664216728941786226489920022271866983735609517149860816465230375951889706263988393598119908015517273300595707400437018507954207258412397483307939474145768773765944265750985398332955692889013856057340266907072788137005590122302140001087787498779419250222403697917505031527608874193412752893564040405530097358831425881602185411000696739408723152350277000356895985717409034500950625248766190148254061173244286549296978615666220634623933597734263235792960002759203533677263078682238807034887848803532735237665358523542061994466254799605562504221894164349987264712332999090788697924300486273764932138988516158023330463547412618070653846145162924192490836093960287302328429660607214030325563640827380730844775068067502180118682225796887441231662196993674503629955912898944606479410708978580068242132375238860005584551978678495647737046084749721012882830169551547858066580291225987275298348298256417757227081695968268419274611123808768019739355539130567004113509764838996564435770662558328115357153292874421435639297280155034350213791183342735096647071662787043002640291150964655575975329333420585967555170623625454519891890403714230134995614349838932366576507359275859128715941069018569408340965088792783555218441110612315716950418482304623148822404127255010122965881916324421786112085662762229887094980567818828952054256170682987486240031328337205300712073421707004228832886541889794459606798511519531856337962396951022647912269595185112308712397225736992055631886049043877185118661330297046705881194309211726008324152485847831870439779749435671227000676119366394140846314931544499985279086506167127849415820457129064624769358905484866653436158989281349351093377802304111351850194217706030317909575533550174908117929288436042962764731029426651321270219245535035863987656314357615992508146498045026543723752662719492995154138779953224210391139749794649103716399493603490030416332270443598936630510254937415220484905690991721164663866368601234791428700677700926220724847330942513561255944937511090958413870738506054794666587430339485857496555192726984772022547595957280524850912609130379930997983888637732387291332324066695229832285962699619573486540583602675879949319105234298980022150402467909064428460725579933932276326379557898644331323811257057031270727377699796201497952792798395368656230034865400813324485751557371619797282886849541436960061638097065795466935125139306833377418703760190769018422289601941004231982456466834881663380266791075067409852975173042532288367949328784792462951804716487670095670371611639222247971380972490989378148783932744618236997582766562250037281514680846683930902622050538912876207663909643643014954021375987491188589364263462114705029008553722318403019310898332655888186347253004102961248578024584139810483170895356608556175172039536587856697891920401232749173834314618714221113214122267955109379372271044974270377460356314655811872228744634220794856812423939183179273611102512315739328735290962110275814419389204675593402350013707683070110436637338025890454720262658180241505970022481830327405971991233209066309291377377559685946604835266680249047591352448002378472140983811569706818704335099165612685142542191511932429623408620076107594326061479322773334363424890040116899413970824317589641365739769207626472071342815780993107250734159361395899923153132645630695569934765600660512697469660875380781237618539324210132148059433923817749999549543220704069472524708107865453940429616979944787657725648951515285846537904178057096164263612604886522919253209779054975249461767933224995236224568174740576288494345783339520605730212253290904064595040132918821468832676292387707258970611590362776049518463367730781590444273124307529034773384703534001072962262998683240129118433153133410910269904808162615607743967867942404833221409110824928235875663512824071840316458690416157456587111064929400969090982795129457172407979876329240756110247457770714334255202244340219459719107349001871709090445122639786445041838765221870035461491833684801616672348262788310973596886900198598669228658260274398803877104801436611439567164167204895534949970107990559274043754863767715814281851717897630192775956750200399142753575731998993888821956700090145016162009245996455454367045327558931350366594690868286301470307225224832510029899115795956845308678745120999720401964059436585704066868337309226653038127569869555949960969101784338907494653665374578097621286194630660536374371034207445291278438546119477618609668118584288946733949942486180111983286773184562497610439936367687005459800032147167853402748451400093853639642708714054995198795460047522845243976280681222630147231849871358394441137568790234351988377583736594230598514321583197885030428615002752863731375688532320291012644403936310252316862034164005994492093229800614450032040990675338683318665133904438481220007893808850577150767242723492186107518071084006134445864842655435744713043033486894731549024812689027757554599509046588937242092723655628622952834404417162040526158441889056340852316552392752684038798923857864389863571308380958636663035875588703875730116160662516977176319438390524688484940995529078615041866544277466355649325415577224137490195750619412332273013628799354194893349900915693437895154794127596823979139215357603760936543428555132291170867543148591506345939609889204110685615402303383064228275342983609398314573581970643084350892477954468880275156099680240377997511987966634920545979466797274888503424795973255444356382094773954466276389086115826430718435443990150144564752684659183382412449906356292309462519816184064036034163176620789607555183098890431476950280200310588511413892999083540602349401998017799492992374771610053249396153593936875287354415876993997151917823894583515199945158061728206507951242102260285620469888787118280568135262134080247535345091341048351126000311120482414281822000403609009961988699333287579379916815267252708320782515154754129437899667578366708002181654549045226836150084848991238374339422804207219685560875981637104060333662687146976476331155581153121893977426997411963543969981370929710108688310235720001161296252465269993278649422674668832028454626505243483595431075520358282882579050461335825287342030735319050251195183155713556575066909546500635049215091693606211393613435123234456892316691255354770504859838726583964336129380356167623232310025622662114414444637021249789887304840438507069923657828004548440798306197564082418623486703623352512108374623052178289478677184865758315371763881801145057517800016186029924223058594429502131905678364008034668681328115483126874967321128518179213261732063568504822998484070563231003845637464781509567198314755946480379827668544344594248351468645024288582427468971561681932916542317930827396436528638381136369843099035883798223319148286564835831389752365168537963438498455077531109474766659271827870026078630216270217287726254339070559668834747908036596494696404029877762110925658364967365305440649972577649212044987996202573880703601198269243211118648367357043030418822136153122722155092629619485438853024849046120792115872713561967340801806627773766296728668787125947705809559258965165490015673956924903624162280073020058982934441259502805082037292672164870479229038079722732540111767585105966520706716762652588376213310626346911480422249067709194782187501697015432961588428563387364685465782965961942757695246628363367731831181136826672437745813720641694502319647623259963663084895554744549866662453500235098124428560083049735881445002265402343209370945190447273863722121088845638716549989650344186125672727649740567856748403297922380467089179400532273779990437756032973383551075356543368905528440085904703963455822785329639269400080696419522990222948101286006877862068355114409505669291643056608553375531423095273659680550886087190274895304836166215508893464746898421443133151725025998453379547118572287597263519025254617249110519169709152795186749463150850922714964581688387226464483111589922217568787741247256479374108703925536653442630479803422758235360768591785754380130178243570248883008526261817542217357132430800294235913953142747732948374342783627956375311550758052901775675954996285948625817108189159548612891299544155589080841064504526506949116623486609168830944263755870724903368387396043868409458314801767262226871436159190053211228287266854539435560436563930147616331935887268999468284001246126847783792558903478320932647851667345698006868366196313025026162486026470523555541109548498010707278962089836524134302265158540735716111497124617908727302170975110318860008120816770542406731527343093009602782445530020504090716812462719690664707003788803355759257024812503060728873542763417090522921868217333731027267871909253622775834647118664276189515366120062335650345058934189101388265679104275239415282943403770336656899002600576055044706377795960452005830040886349158992744308613279166927847007865840097909028932742365691671841991270962586505363644161802145897413043191166402731848826130780042622809639299918825605990130181902013682921472867177585171359614964552317985932475392209238115920514220797783303339444000748237315748719596470616633379279819895447629455624952713012079753624984486158193741235558094860721548532468150739675352573560918280517810627652662367396410737444453663876407875140654528197063055063027887478830291819272687274460423842630369991425393656492600372912212367778808169563974574161104517509564317275405061573440274169429665250061949099562243217725981680924482196085050311712417516797846678696462463932281085633069433388991435198701398428983029131443096718805436231201859384445611803459141431954517862559386448185493559059759183656960996274530462190216396757559214132875136700580130075552674529142572376992453674196017680698685681732226219337965779981719103452255148174034975021843612725624031352145235078687413517424009280734271535754152447810600862588983345028737896135850497971466061011448649943387494061923233776353118247508424910680973970989568988753162294308341782828964923826849114973810495377869989486875346582171598098854694723279084681424768822629493451971330848236931843050607387982047824215471903617509716294460807137909052141677466146237439772707202772928150632119728689495828850983176598226255775487059207404489870099516978336457658409404785489108426546369249718593131088459270293518433632764440321362585334431952687010437325277685539202974781950654831747299732368613865543437976008106283348316281661192016868654850141446570007390680441241907784397097603927091841423682875425242986803538104912862786549155929608987198127148474645534753823570684839710446928970696190478842335163770299771576322671719576064783745595005882641646890307350994624302960097495586750848387941199021744851457318599708349700263153449407880831619072842510401533122798877320345176307339274526822756781878988659478255215478567861466706480506362250474282656347358132663760984096637850005506376133504775737773826126384037905111767402359518344334735413578595314912415394207005078167488513977450928075194365357866875264840932189212260807984367971759535502199474430299745608449371601469593561409955465954566442460042478907047385180929230792762875201870736572195298852483127007445010425727658726476511021093013021380880537924966075858418744977854280174801920709975738074483200376562699414621515571536302443473622730883618479331896160141308194153623591710483516744358956703413017885772485509304755533610441374956851207204249890484949007429667276628502810375210456378103648609381695084102151425696034016915257881519114397317593711012510895427073998492339405632686452700256892992022748359723163017874122033899418982218235758141873918042193793451220603387673241096661773741857978700764212610192690830016972140748892525105690201786720746769758532699315661446982134322210496380140781112424886447402767586327280028902445779861307399884211759735354174908338058469536290515569613898324319857463875676814582553366382672592888015245781993520489160686688921530405716226494359117618616911570270851599757098828318900308947020258636148450701688864062555766728602479500483365411359622047564917600695253449156206627586391109212699233238416464391262389063186794353204472760399044634704500654981337082607281607067443345861667205320336471130315428996647014035854975689212116668812794597410604992665679804874092892738860145617814565263634988530562088957643850260974777981186532110963510249259422698448650198602340907806415543342849671434840208154068676948836461984013012563174562199872364878237920244689852306102996342426086055953120679026981818440316130446735925652415147441282780816973238182906393223066364541164911397904641241462790903136770037845357779367464493841054656639848772243717770167207358399634364869407683768021697219391681993366581168911992704527813472623157387347190970103215373344224914083203907389005242323546868982979426889128649446940931606232956718536882366999640943519425591022995911200285593525767719710587936463342506576287784508850883119559776476672323783724515531836896275337123964003974365927600766805061738803744044144285865536950858451831257281727961139695581149677729683262214335392048829978854329074934351164865459787608688238134197022429125334397928100784917116784259795979703567908209301671550311616828485955222754397546552355901202083320998162928579491940662178671458984996646461737115744910950733951616398849264537018861084899668884995926978597963617030077924014381691644827224419982904276753036273078767413558361948052800324923609724672642825095485220080953605937053166000288648042081324837107812678786487508752988009807786198800810448982930353467132341309247149565381910078773390580021500494681402041329932873022099446758811780794317165586320673521138625601187551940928578589005075955360361171387386548313037586943402342408457305896548674939822243328951382052957524186538284948592305856281197320673607020370034236592785095834355847605491576862022901657392264534329919746379900894985900068417260817129394480811487844203381178013375860824471548292786756266552135499967806991318817203320661822613691611543275608859976975490252940862243837981701072997889991251256246918173467927507513771172890753284730207211881189442579093430052134721951143075996172933747436062610985409206402825730593058748395912025218925025030875602884170881957018079861537637813349107549541799433987849031576874965038874954211621036891173843325274659969992439402714517923810110137379651985491426653222844820491397652684855449082853342347021103925563336635061660846580623253064289422066631967386331681185849847918189242512050734301573007091841103094655597418015491821385513219863199890369252248118201657169170058190080435071887328189883783716603614027180885257214255067341266921331960416240534940204136041448166943392587030041896087311797130484998147918179617890537297712595627206449435834730743892399959862289640613506726821125485233434221395547475815002353604922881965483431481708763262176752250181897796874145321999757827922020154598498050517419603596827496788066544673857140230170451289210125825202175685544168147739782602707571846633146779207250377633312345922029514020721935810589056655598053920779875578509995278394401318720797188608311033199436217678064674752003998352220924130691340214501788658060660042020874972636488542355211846243783029730412552439360815506471954081355790536623549735503475740694328880839210272206284795790439957406019173886420077166314794133293172767454897603186662725537703665613523367353644902521530692195529320687986899764248519706644349038708077610855380932837210589765745984367362889759232470064570783471607807854610392624951538830474205841074905086741085106394116081795299375417349582465944098237088137233696364753025282753110151556429250822962870755620589891745772733006242656361971433858397324160101425418119667939328441440637268584124327741530261410636024793698220702155232430195342175124562613921004601914581257345028375741412741740602275269342365835428989314769624209003621661749215269311783837217012263118668187743019919047829141190044475863640104048080152764889139360085796814084109776281346831563758364203633536932014249246656919937845821614770261037951682397146370798639682157200375213745931693144286067042236443231526198364414610282496236693387967111323090931162368909201464894864197435061804472628423848533431506110161404449804097735662032367930923773872941701750730689638444871324429072919264078523603261660207524068335120894005774004306655121872670165241553960405197515114131388263397899780704153802701979488013378795053020480091279978999167190955768175060362347657921106457208890198468781396247332141941435769594993452727361373435063564520621769908172607234091903697810447711605265326978201798339087144257420932122060617257453080182600395790151551004894704911819119191926270527440151425467868405523137571427610338363819653582770516201955952039023146115174693176012665586420527113315221097921411031728642253688006304745067346038301908543484928825870732090627055353507370657121891858601258551178946642430985633483854879228626177163767240125035114091632323129473897056718604303319731705788515058628444127061612567843186593907698506026835870250771407093046384972199569368567064474316214273929968435654973884532416637828592631649538342897397578756473759013722665936704927310186804272505205737048020157227197136819167604734917747954899962753201567186064266623868611740568694679276468881256111271819055635945779150423378149227000260741786515272415205036608488873841984855058429519376412763888813806426047224602054291756190088361407551538330693108246389911313859721601618633200400497045731640593755177147585434968434927325472511225873275439897128079590768832286495652030234214041975010495201905755979963567825148871022511248424892041103238522062422545057176300694174962742857804217081264809901896511763277812598304209221763721320332128566871938151476947106045076643571018489320566634212127427185319842727565445238338243230932307566296702477928719193178319313737252606065393212256457397850094561346283558219692060198226941199452075414457375696148474704464296621358347995365489453450112490692300002233298013042870006923307130707791319681498711983873526347191207671506060721938408748739915662702323823811584761657814582594842848330938292335994952922884972874576269234801599474737682852004408502013553104161399815465747354762975961909222714276917688932372075440064275915192463561627627236897557181647867145730073865214951642439431310376664443806944740282724558793749635478463324618056952889338153935417747089028479365143128373035005784671690667242402321152205740798129257405168819452459816265881909536286936244093120429992372833007426022084698127896641011833635749386557963896341732191213025183575566703070153354286492839602087733514127570860932552213979067514737307316611951883418645526202243665590436023489351496145255331020527329134684557678574171050992032170347812730008793319916560575689775074505704803174902131441528908001903439271834472670235092965328052761238752647476623251109055126237906653376106654432500136843942324371007276014456862133108130953513299060329258834436337308961375929364914167212913852024689842234650776994463836385159953374440720397661756771764207932560292857949342862729620009843104181116087830971962896062386487589221789157923384818475667576745890440583975375509586951822437888665705147153045587876072625896471090183955766795546071808484017364816946899541330291158888364140460851040079160006562185638195962329313525546601213387697755769955377672859822991018696779179840906866475324251110103266996162827450210211561906398912731312591349929921790714556532672282250525090282316267101049834956099908995392216522790267200912571993281565483284083744442177200658096325534701780463851156725224709897543444371811742079848020363975009078899554092678674939650383735452896584766541956366326487696566670380246808876255199853703715221432622600616191873512037226412818440049444439561900106930274434692087967090592348339834009120141166423919633458667461111263833503147467578576645732410342714380450512993979100634103683332272046751845134141010187758036380038743914125539962848676911719734893921684309110224344231797635465299525614956638493402572232474411615517897042900074725457419795222966299363687197441086341841702387129560527437536865613833008622920456172334058135451558098795948397910743716314868813466264826879684083880376941224700710256488649704021210871432734687512824521767465553248975836421962288617050447432881568121209378705103204128344758001428122923883089567266940043985708613390196978195363265836538340544301409454119805957266380098336460851165901800889458055356963729841563403780451553838148323109416225266593356725330653272847699405900849658339890128785436310146618413936866285756775339210691946039366768122158870405719844747348253048051774238531061490879735704155114029621885898890670333722219325161588217259231980310964633449035715644829461386248928921455887883774782033285679218757522137592042734000368798251903103503218663513599671602735995764770072402471167099644353929588948063999116808749602096992977799325190965810647722615244920618496981340941032354324424158038358693438892284835261734849326363907436468469945354723347823969635454347428493293384226996832078749685570620684189249974848169261053041987489273622481338627373686986992171694304125534859799775595795872665213664515196756735345248944508631456663741751083273927628505095523525933200915500559429418968115208150056132890159200856017503900968214946044925202841939064115453307331682720428626901846040014829769990092503305038981508398024013191272053475298631617674787164737049700459985932178261224925595970003236596848920983760440135225999087452164862218140931737155180267947978977599419680825762192264767431004109360240344479392334288966529931649047781915349880685852536209339845390330013968524449978319056935786146577387830926958826527235858592036489329088729465130335571742442991815102014617513101091008419939636745562921790366471203953567800163864335947460365859273267381521929142812953449760120576379398533601017249024088778447881155454497050251868637760129821271584698230154368707179132461003201589517553044192834417981678218465892123348442052359164063313278600112633837265209745821650962936650411828539607256427492576008294120745319964513566662518750369063465148753208932968895070633265541400311031320954236218123533528119710409622686290614510048210732560519838596248260553714517580010576320449982029187809102581704345454735326191690455434172136711546149383138606320246495773492290248251277191548174869384462476962974290460165999629611027135673116077811986349105643045050735770058938547322311160875552598313599877051743128400602020566288650490798918322285539679317504305571224786873564918651373242557986128146922613477515737066277970381545017288666662093359725067341302994932747461492467373397165719414005927362536742307978879934580793910143419288361632137833165398172535926877907210674263099882663683941277190564817704058799030745609753063724199828532708368540487993827679447030214643138774142115977990722080289962796832337481207466780139449313404408049533200094263576902219588739802087684199328880030199655749880927607834547134819336341603620588575177176955519131086246730397642533701081043931731641273877428394965277093833077565362521886413478860721936819523831129712165985423321075636502730211035913887674380060185280101214286595978217131994785505749681178386268477430115757374497863170707779913986346342012742431800461121943104689458216698461249080575033936525297875860721690112224070015617245268382433798383127085100119467717238554635061562544912383363834310305603356041164482938971534735665888423291638935652497878254545006511904733963315544794555631941404083762676116388398037016428975360501815185116922411010069895880349095320731372233037059190558977364695667599126724469226450285340261711919694444825531008725002217439701405449427825648571257602815759629047065051239459695005494579176950619010625754330648389845265780371809532559159629558307424087534072677926896323421200460619916343950700062657499007286271863001125193486977918496683858344105889980601062427222942996252174321571118048034563601993924329259984145345957202593694320178552257261786044757183591431076252992993664699188954960309676274713241614297184086374900341231538176964611804088032256375421492855818311371802994100826144948004378861650461698680581659877600349469428152807617551082575161736837397316261451709061920561425224735909879917120163529141466726178095994977033989730690073218784032269140038859050803911398701379157739300504664582603719390788956251596031308130638045791229933175605501707059877821946128847737153012883919702635879535689423593936035129903865431432254297499439391631721647340333403427344493948613849621547731140904541792477359595894426555170717781944296504994724937363436209994850323655761244346096046543926140377953377727354600880761379069234324602615862408960185561387619203570406998579067762404381669764549804894356828711566910025000198725372119844610654918811120075436799589712275932418997979322427477786293535491337423083074490329082578962554281552871150670092599769670501059465402584600335054399145232540262218773224496513054028099263154324827966710369219976259572408909996936030225060607469093365363924990280954909325692951795831794610010215703339808466237169575851366937447368457083946294033272268813244644367382285018316481691838549398198656954859013560486563776655550797041967409530738436756947643056169128831830098247705387383001704826423948942250941035723909683466883295293121361934533301897634018392156419103580113526185069131141863256364948832347115109966140345253642316274986111596684452775891316234599966505672840250130306300834727739899750531399533176349889739315660496056812088012407944492746349958182688461080926325093476518420152812524212387767523810747321896421918565429643130081676764656877296108301257285477534031025381268216822117262451597166890425514822046867333146195148901429733557890647153683263575857331592701109105058602900583883533450621351933123507357909083459601566947465893627731165363257937062182829456202010368285593310632230608119450364033352295174520612210573404135433098619002166805466972967784970655289261047923769509459443640288124352583693250100567407930443430617509580990159857292759615666926990031763266114084355873780710401770663657847614513207525671389852443046628352853511346875232027311633458685587124935439968098064600257076004714556276970605338525973861692061253958551545434265732063274687134099631954118280715940626891465606942653859873507370757159163003260960158891772356752834115868665330108522749862457058249655140672437377626606709916485529581240691991566373854645553648387485426491656763909454905829088845207998954486507099542197985515249622900594901703589813158877461031601306585479074124411045439223080905234642632334253135854561586428344652543123940273355089390012771724557080343130872331901019671232976661161721470159222221080393523882808573071076544001925830730573028191690949534380118554674911562813166199814710796135629269946474435019406095716737287940887031827619195271776441728889097927322099796373153772763351801548272040104205077083487388045220133042515990397980254293506937329771605584078241862906601206694298437404635693661000978226997660647652733267917025454702331676970685960269707663604754159070995780381358071797416598224521210757148306731900342748736639303404305424326426360537664593474545118591634811806102687580213349815083605365939582714922001685990374373896363014815140227587983841939467208360425241890146250996911954135555300789232856048836466521241720445699209781083094142910367231661866796133017239294930522358794073006821418829364286566637107936397602365177545798140185343663225471285392388650480952952393545565571696575084675430038563002616444312670226735582064919804241140251813749525982140717239977791908765618063039399998623697258299987102271092896895650341013884578383084965149525401381533088818865461685731578840521288548577654815709424846707906765960786377911861169268191530359695709441551081537992238438042666712722888626332439378230549746921983102682128936487347216579064765366141564523279453285007338556971116015710856100234486404547335515469027877001690486393977974482688793661821892921672028852091381719978480742826024523908608554450037721009079650679343496711230528283946626988482390841886507261155884814591829332109727662416137894180147893807640250632122391626529219679290576223580213576342046574190447830060531860057523387534581577252507453195402931875145392614085746444493175903279293309160863200744912858442720458580002452921797469979135192197332531467388006737979374466305461106161371775455530333760349115658532692626534562734840573064777272242223100029388337032461708193470484794552084541658214108824894895408902480884807168961702731393394150109903674384872975553541189897176806484357700399453662528043159783916647976638278502447930228465586733690690572724963150363742688157923070991906508954759314000854705729724484165257383793245640725458797559862981391567031630606641641292839272621269875306212618831938375510512435450356790912306761020143210368519827053859999805934325153986971058042070906515111336111205291036213745649361851694146326624772638663536305280961218099167256579350854747216690128789725612015438460310335349181711614350607832107677241637823797710991635602177215331508293135033244579130521467246930688332130519290683278384598865617185219314676567474663812936639347718665267342768465004892303650313643783738804962787161844176439425327873245937754023502197215887022740137061080079824898812240092289182718667714630335802128354738194045783780044513742165172822538750031803438702354712189722673478061780829746984063669238707383292352293725559524660680377054763223077762477643657181904393610699112747514968121392426590681136288746745055165219218077066341897534330109848967199447786620548309561290923362289893454367239324406153612182175806891497415555421447102904231807902186191803797008302053863913609549732191859846224582587228522471334757665712653104515049021203540109586435228315165892367817284110458063305588103716059038598711618949622051445097494467142042945722352691255335926579021384361699246937087183815136651355798820074018752347871344507240928227286386082414728965349261291539256083854263928060996257494658005293488417794914475416983366226017998530103084486977088689776190938596006818062313422386009006397664577700829370198548420930480629804461644635132971943102760609236653108891193340779132000732533677116754837490370318993738769198572067416292405546848649078921962329982269724563823020631388516741845198719218470678633346909440709744908644503603860872470193992113345077877796866385772940127051031736864919510668394076745355507364657153954805996078626050996005568333043869153149322274097249680011119351942078613034564948508287472783932060575920031201684557403184027606600557368270509375642187747982455053725642902685177879647655031574846621199329349502117443430613782644002126898787212298735177454002652901927214848882215955921854189153440717797582930223879672243878023792131581415278231357020937286684309269191651024242723147907159316764592588264304925696816279014065828486767439852517351871096612822582875223758461442126890601675282244379073041637780519118868501568886840923684024689611784257184724038765764948992969876401932737190748656987233027551560340316831251970904894831156528673863079425116807004939090609679599384745555564786679058667420113452595991155541218295867767404352523644646103114628448336857145283770809176319582509476894340920116557351546457371549096072764057673478337438024727084945201032276497197578999642773666065464337245038306739544627703771873543191838073508444387646229679570987189402222837658273936791129336152285888507344209469118921835649365091550920994857591054779908289634874647519967626198011288357867794277018501650447963172654410277113643402566366402379202633084311061710595688804248255576984635056339974264563961294565584075871849425348931546192773993082800398195630150167476950757557138422503568158040652878121742090530291257174557203980485546541055407377642951273289780771050441325374927519449230006480997837146136801443186106144479752314193901280877928019657850629497449330542096105931354818408206505770974826916036772875181956027811703400847001727903676314305986119963658839951490352681516749124996377189208925953545157589033624327100804954883766745392762275582651495894614961102711196092819517991864546521410946426605908990730692309716375622361242039388158555106519469518088388293080962255706580392801024743756762253847166878457907518330485589178600388589037404150463934902730129832238019632899961448449535474030770201762733395126915482491346151780694640490232942020326025339488428116003743607448745328305886120874130719416454243477242709278252347480411854860112465923226092333651989192969347891955927651080189506093027951627216887817265109071158991895080983998254914469943774913671239311564591218637654765932483913074253305983933544175893015748845754382662396761028388532947929924223795296771320316611577562216911824910817084499662709652420853483370790623594738449290274037945904073196717569419529773909547149153968957775670990519696328822371645074737963346925298386342160888780275871392106286986002634107410125138306466415570137760606458330842382348058091378793533651719973077815859664698888295375072396763864649454117028139781255199643851298854660547913611539202705185584171648538835988268902066507997800630354317811648990123493324116894454468678818314203742935774525518492036588573567097813206401714535971618200818945637740760626265013600044335627780833478216961515661227223126834434183620151546013859119909076782847055693209864776179215803245199846074881679725577421478806849356699641088436723678463802773633385707109692669602149050272788059784228876769207285206920398233267238914451583804258362670864786154570588343286861038509511994615060380554562931692519968329934424713363171787702078271118396965456233602900693642613041152858122989626328361521890577738267097156014890722475828329681219354506151218709775793505637287453435325322430895542951878475247132072704861284152295243448931172959180863047102880290930380320258434168479007666147625937362318255379827761572434221169379338685266670272676331810351856598679691590528681657434933603703119401969840166837711334058831985081911000967130893746409925361767708304277061361947139179173290892853756573175535011866119826165518034758759868410928305171433843775929997486392039048442542208105570553998332233004163455293516853764013255956802994266830314811630396785600271163720669796408740078557378857880847082798562530031821674899617138952366507128897664033722488687657699431464304287897252715604471907542575795272190691004773130714031792173752832878149489216707567438600209213735026346650472483586131929910920065899643798512496650573360390966540379063477340323725706305236185757403198458592691164465533427955547725867814572358582774974043753232097105069631045946759000306005947076895538554812126709732125200071474476330025193385711887558508201563108449120341723170772635174774015183007141288060641639625394275963542305931651447827354217180948191510946129733445278874311176330918437412815062721579639527465892950358507719980574352938542377329438125272885766461911386700135356203464470997385211051754179069315614748855767474992067344104645114629173349224737037726642536591347088107489614169641480284269083248763316879975255005848642797345990677802287655073180988607140504625334181812326744299568243105108530680904053261659591243830347104203345269309336560711385789712598192394517194869949851593024507944594490041706161179542270280776069861032428920285199133502809418569450003896889190252444158395041378347824361996812886248035666887318238956197728412488444523172049205041404016521847880769419887241232759108599980337408316817727708454622636246776134164489546045576626443745511673273892397518396034660781516613739263929190798792353594559728057402537923746805791049666448466099137124016461304306076395746518884951017889076536056616291185560990454155002982910941949410402920669595030230265906956423460853332788744086343560517003925814120676802738335484607488048293305358810409924049659139494249881572907605190885572704021271579636930992426744782727904841621820014798264703673372524582499049737695604353149095012819242669850029069143262061027474963921475263126360376880036009176672050159801037688475154689186802623826851411198748502777190717512663618119290496038320313229273157567342246988897897344871752913097135232464907817031285688422484856777017693363193352807173147671732460648257204357136825236069408231822286796561209227472061506697078659010770112875597958262878296037624756882879509840845794197125810531899223800716124636054803705039359646354606672789325324537548560412601505742453581511725056664068593039542454433785191461905970586988613914707449593487819400530097986552110729214992056333469901271286457125247246472570102360279708228705129723355902578740160478758595171176582007752869688669514641196817819150915597580020160748084945703615811744988764422300637964118685819442819107251957165057194394859605953409186224242658954781147264321056131499345400061255841504877299947867872185291969408666820620467020958840272503462238245539490907349682797060318263686879514927945172812003171873200917499726480282278918568021980328662007442095605062141033963800587126720138435336057883527901122496581115259466873062405232230266490307796743331633845798340066950150165056225152495654444578163134417051040396384943320865901300434336023626415003324954407483634135599247009956345601200046139898204455388558241560954553548387386610360389503424109160031223931302870290238442328873737616528013309362644215660216371868377423785558089496378102280286426843532381766467188678018479538191400785010435417465683937331484321271665563998647429092224965792877780214987393156860045477466875185092188329407024568857636583838096637236984232679810096351864585797327976462314200462811176040857220778333978328288983357455762092217094777239215160970884020208185580688095365979980243403443246125320978288757795982583657626114689498792678516040925011349764191174456948808065408050106027671619192503432022146092276657078356035677143953310267824423944286635279183106470927327401062145454239539994446623564307773344331481421626128716853290029726638083271705483975080910182186109404686223486835726365265803659178866985552670959458893674956690169193784589383352623134332057714692844902902374873843207643084541959395485492830272308504188920319510481206566054182449290966590365346217425351912379481758397454227038484382303181063296727763902008754015799387827644107295886773217199404747442025611603644388240437607174276170931741500421388092077880958685047774734720068360897909944846253258749274016527449951800210309360770739573635500814062091519067643913040511692130809720478371371710702501703374889367184557313092925762342560952439773569473387161147434216414909243415239199411886428967501262504459152036717567103751032098222611746269355314931372195866314731306196769486743895443284715974697451612035258268934616383145443663836947948946807941447359284546238685915088270156864315036741160956156920704700141889781912842373683103655712297403828653358326778488495334543008552760511182427732394314837327661599010975167849289811118780219058873817028571412358110569778357780480376328718142566983121399619148979192103714016662489134197532437642676046692748675995855667890521433353284515222095825119598309151273371534974603526817907349052759862746863482291142464726556467998764278468137665308126978204843046833539223697624203659353629510637589197712607382687045990199079508342615552391525316967370201152976306138449679609540951446166202318111283826721179448841700066903759379034584370191923485080227709212287377419555169081805156571838613608198517104483155458363042712609318320263666267300199825837709269533962958262598525684889439056854288205271918824892272181627309322906531429869174958519321318125179835998022216479786923346130886196205812979764163110249319428361656240183125735989176947714657236964585652520122700823893686112201342264081220408268537924892479336062446575388125481815348460437431683482256636237939392492406151168764741890165900323001761107899381754432774389880159173316913727121876398440409296798481472220138165625920599579287396113227135218809258394530362175753200611068359671862872524947838432051151282683748183891180264530422164593950678591068131370423396801422975064184966587761170685153810666020088688065115724080233682204518886730913074064803413456767246573742461271105852523516528855321327295220536799259031733162999802262597434176505546261260408681884757643044137933132293451009092008390290707868500830309425170657047877647210403094858926510294028926443447799894407445980961808225148140040090243912059471251456265530218541935400746210804458955342650985702712354605761676393449248221519237623572372450114540887287924521882333597080858573571801618221485605610870952006194945228335071065286475475913374516886411032292309761648209434667472903707996346903026234463869458392094688631352849615607977001250001105139383552736246544308449838648852595600239636775975493072907808211595522884805870955954251585318977840463434889360849413339203980600159432274307266927223616219515530123423711476695446800626598194840773301748004437465284767682324108542901051487330443720688401210944056357416536214229239661058077411018875722819059478160564834675329007626224812113572842465464772063883439383522200987616531199380683116436009951398468584289530604042593950526604616368841160790327203811703365732624334309467433052633672526060682320715001367278788663203860927729299675184781744604378453460602477331999801852459169605380475164457928004891189336498173725882862901812553290268264128730732437205304200473010432201411701748246871584117864157184180677397856993690944240534546877606409568157610356908042965434933711645706999180520802489715158005126439875450217372538692095128444283472395366405508570293561115219343572253435244472392249753590020077675017558073080900880655934864367148199377909472180694941294854475253443752633080615195780754199018855737389470632315655726577716742747178323107447987945670134031227290243253959729105986920758365692500772876708977204892116544173374852007985039244095678620236314144428783103650844481787766569825065053048237100816529649224773035078165394357011782834777359064462274447357298797538706433434848504486886950418152201936959362078317959071236709548022082323426293734492312249550460336006997856250008963674055519757710749718184363769474308767047196915570144314536193481388072722665111641012480439698436224865365091939088912893772590055731447294630759072730863987511535094241088427895626604650947060172135137535114187007137964091739628450663905142509394998917391986893701953529401184189843225625725721501308999093201981525743187111184465226808261204464942187901419173124076798862849278028386773027639627146391932463577961087334620412433957347407441648733922832930901061573940769294562026336537445625405362786808545501583729054628799736852471735334379086442609189165997740222938550092500436478587992461405243283369664051756023575832077310362932206991830985916677012860589448854056784095935748669867800782716934954419967745909950736699377741496649855463420228885701637038982192792625584320221464304090323096150344447246892479390147566549035984745216293340996174914162178290717322244616324094350038254399472481031267382222159617241746680257334300234978550872012521241275111184330443579971376886233432257667411778272362432003362363105697230500201608390479597201737303757424791442253315227583985431306806486330144773892951865204728809590381364521736612276355178252951503041362414646170148345022291835316897268096357251222181991722371847716940058370232117863837497693040462274324604092943946837459690258214532249454766281454961675855690749904415710123849880384020073057514395534381275841434587370301768329787132560003956139076553017064520789878040529708875398085399162094694468002646854081615593031264109688392794711803982813634180190567878608237157575627715995205091656332185146861311387930631630079406596730618505948021228584509940702030639515919842292461706542679873093307140230868082703013372999010680646041155629038696228071839889335045104078562815679950191722546705687521199887324409914293037291917756725300608414730000296899714902014581632955666587712607590285047719424207405887162858848474251885514057839688290937458135505302235492195709630619030961640365318936493969416105630576657020945517066564501220706677780990562061015829378403204617128656732310788109590690872827107420217399793165598119808161346136193416962087643110026788147772063762096003624872693062375182729422290905276532958814866894264386598240436811054471291217058907096464304528295807128313082461960476836714419897176261508046841420731610174871742524806658105264105656130898294074792522550298623032062650240140625896364190629356744618170024708275019794318590438109139889228171515514135688638560500550571662409687279176109478178120416400980972392240946827610881766903312253724075995797920410167325942353895921822077981185218938022818705762162330644579258928452882075725027796816807018142416603772973208101429915904466660388658115028899711374370000118355391295297678447885936775151031743899596248306804039381676626075734784209806085486325632269876826913031559720071737803856709806868886388399597475556605615009415003547764895230678639742329929761742858491773700273570184305934004861505956736143421184015474592143601404925244362256191236230263988578832955955594314741664285224268955901726419371926184128671854599181997250162621336708377453818827343157678127387457634345836536005171334034924450949157075013806520671736909869308325373501269648882784816662342134248143997919633690429755218187573834806211545874339250737614571697332421434812937317437217540040573001398390460805597310042033563258881135740423569061285148181620586184316593146836887259237665526304701363734480593491757231958750135706569821792205494180918657359247079977918408089534015696243971198502271900445930472442058464920664895278416211570014620332762930084093395480378612605863217468810401583227853122425011222529453623391174691470428708282113812969890876204493918331004083318363966456842743567702078678053913420300109506234544891830588046199214895308350331846715856100367860425382510757852503435064551023735137646842135926773133074652240399295206391779899828760501242820000947553604848561070546439090863236057796627958484578222970256874948637029744123025578065371399340257003764211593480260833403395578191196391236590797600593434213055633737097965152300176768379015320564577894859287648723868772549207576882565317492159614081706770886021934274678854236538783706769093845760334221961754456536711978708363140632902007407026215622324857732340661020038843877177368227000930521078057319806406794379204271062378277140247553129198742733854347212498583810331789966301001327611450812969302257457112594618545776555315630366385666186354413467954281929885560251968681036042609084956541596352354155983914975519312677225704122286872050874466040649966036354368593293546498271235924258909208688273347707916398248775081427959775604831822201309579335292795633964321665266709738779373527387107981703614694518207831097344746675131887116329369452303700095324075809116205740136667070883220176222301709174968744910546451613046548621979875300952108540635038302831330312093015630429253335991697176536142778821746121797160952485098291512901276538221246957634031938571468801094857317769774625927390435800853834747110086738891343137504491397168740569358355127856902153327039533755358122623713614792991534443077912817788719950681046794739809259693305077991587324870479237469572015507897092571478977697315031872488445078487347362496909945538431544263639510132197848065311006549545079346620636643360489143070905769395348007683530896731612518727182658252442768484313082265391802163424996017831896961992726007378175051224843618358927823036547540713221073570101901432115888210970335438854922018725964869147672894047222411771330595077311440780600352584292540002406086653821547385821226091793092571014090837282255276994325584203645376713575477167640618357746463158585778473681123100192415904155009224524692092237555094125839946927360562612566612397403864718990749276212355189734947777804663650280252449667881216410934903583227662648258874966086691269548246945979023354922277239914969287953424251041438102005696225508739589475371483064442759178526374684596783158723932862693119503980818120743653771978535631368121911020067386561288331805441374765236899435099907838118317338515991316610338713317414058428519818479297865271986952511082514375567202962943659176590930076254823998927457870234226500062011968472370027513985946134380114985828913769753308301126700252333525098740320688312318481707023227159370428117872401329257241013795183436625155500063623779608162431447923182200264306435832786638660878416724465927096607875504802617378821773801382246810600695966001495033089757515201295704464776395751365861432792969426745923145998514545440023981711992062215320574601846079375078755281802555820010579462593923892724097993450617945856298875593160019382463788008330650493712345477647175097129419918124518626579808347888385752754715101686424398385521423169894769961346919130863273237418552800343014666249017248653192599227084801326168071444178378606023401044838968583965540033704214266737467523758321576923655859914572029366857014359581330869458010072013651345217478690254068892136194453201786500524962943571559528413287789531223835937166524035730208472231658902196172384451706432227856280046509966778774951927044099918355468981350539525079399214232362794316450319660626825113095889115748243371468639748144520799036206470431989733824939964063095446310228063201406097343860900844464883037071003924982948670689473481171678798340644352479277882300742180321951716016680043660657653116562977460653713987439470117509203248013749798969040190935044514043773185490568087353834322871930914015975541302067791155560989935812140348055627947957349620436447036838673680734078740280998369575099531979171860783225312003749703780640369103115493486836460627130427636855292046122873611882585717883870202911560199403291515536189297324074308403309996747966712658898692168656158198636166925385940387849854654530994191360054913289875206805401184436236390054785783315430045528425091861274310332770576063860276543280022454081990362535391252689829878809325417259895451943782647531007023808406331423178085591347016360758874550417463311006069956983507543757095160599678133838038430213786488442669401714406707856757622865863657697004860367600560134310961811073500706189894689233209082843977240430604104419361720007448552847565553050682362796561411088471236208497503566616795362075009815893408506934539059658170983280246966210144856089345668903326745746115433884559110713614169084347905466483606330281510636428463335939017993954686273326192803154105889694945248962249038030773655617340179489823768894260396282901269020995158419748123623997709053870311443939379943533198181715507051455850709885938947757447756319148205197670830679925735206095605390770685119279337858553654610844534686309841608613060884687884996115650043708300335674967092718831882988162487655244830914867154919602438644481162356295994106256331972472084810938913734954966257553191061540715975332078316619291521705441019976491784524988708093196078260957014054932889193888844940790610967711893863544131677880467760749748663203141595847841313707869759330492971030959148493023606149386004253384349555975064118150864881758004406723970616361767868411287233816264321426474136523130432775504136888670738320506236027042486540782845634102940133393607050975414446203865168871847093535745426798398590562837374402838275158326312845379963324739141775510622982931261683029834241874366940580896530742916386592243725079100515502984883187751498831892057566599178211411724449918360233639579724535586229952915869994065732908454497258694614165071826792194009600615039668732122847342338537546733327183079026253356063870250798044600282704431975959708553963939645984070606983640494581927976853817647886659818545340776297851698658804344390289349881270288279490279468599588602806338685257432834196594379202519873286873782170073809364987059285949794341590545790572286528356890316338144840299524769311137083226845104638537906261379660466824545928717434638064609829352602851007433170550995313216515474825769837845912176601816377444653252858976830770075758881109806400084189633093505758603450573994820669737333052029013217212647807493232210170528466787515573168656941491056112676632459097816505267156116461340029917652582405817155617290096947004105725324122175620829406583547850552434349813802575197699815704672325244472327759105070620678411474982350751030943326418063089124547801401503451466296835485573172574426813005040815969678876845656655865035547269297668155563672252350415074658994752377971119649400305230133665125795263421858390875785180766904495955278456040276186619321686010533394438627946003952319973557993789779097643860793432138272993081353369714849813087255789916994675921973046361450184209050968599199728738588689088003625370210059794752248124479258784160885878051225555385811079548945615509440220804962506959064904186019954227057616860319885378073936091664839404744916723386268389242623367736589605108715749459866384427725818746581424406282636408483171053656889697822231865100552945843954142453441228060634310999674200565037096000645249954906546161986447649107935167465739203806990507972145321284132491771405134100091819093196327030223559491393809165752572432916004966475614404694956302660464760308491068436668195989481635795458747831695803885983334672166510462300487415723926784859518744215246586885723928907551314576087503523599242123619709743386685378600319844260306590232151886796247105615813719115883163443999509839182534799693996512612206035840692523461618860788729640436987760106261910946650755738449036994725414037113242770270747765225835046526660103576039290493822553376731696682913724412272064054707583076884281965323378712963315881204841422904054321592048783179609220877433217319077172774550299871619604146856702848855776043754010667702993695849892891888897031447953701345330653092829765333097696270833819701592554324601645681752508927580613923993086004222093594515356466468526023481023692529445638521760953968666490520703543749516575086056625376217935586551443800391189031458536785886089374163872623273373676908758643512347304637517087695593112492516489288652122138594057806263618621191446034707891079195166875241081076861447277765032414627671095340333208517516678046459269821759740180366165578357474664472122762245116739898034537939756494541816948922645483035508788352112894402805715499252878598727963707235117061189329683579338070883982941260939922399138420062042970787286331886358751031643204514832094836979287608313660342448016984082892245928575917686669441266739239395878993454061274819687539716616220431989409232736496641698042590313135452284435871648284632886301641783299149782451846387278881837821833521945512843668296407785779971378393349841194698123782130503261034369696749963608946082992133560898787216149411173260405856528181605057209822081780376215780648701620775641562427431684256813931171068245470140386338235536008083933444041184113657806480460292058057095647980903032375713836283499595701213277114262801744539766893677887650788210661642922858656270764138281415081841781100656162372734921239046378602110164702539821704672274122603950457237838365102393476250658888676237697529056861042802364507939638444415996832598462736259547784894232573203903996794257897871803634867879288931626809004968566969161424535570816032613199693422226881808971419447251701387760238695602497390598993599442895564855794921622370684794574688105078870116326545603101164011598160328980739528598988797519084967814409347010549811034243538801008585749598995516462629553503749792279373365877460582359687561935369705573001448655567446762774985166529377419952069859548343283876340976901832152566016996836878402749865297291500971749125021958363187424843884643533560794675456213722457951470932898712447342202314835205306620039362904989445208250690883129093420989456951652923758129630943978605129288772398955918815134942483010265223474684368974879853437398384819292909747470345759468325230076443390939365834197552603202814498326849826634242320173984053994201884441936806516214702453893998313176554327307118886349522666749226132102374291613051598360774394483643846196193035796657547921498904235649167351971020106139857644075849568372327122120512705508259714802300290660769477790797010029976817930038572373879816584699852675546736662890538416355644958832421670931574095187999816718393087162160550558390090305070959027029558219840592434219923363838665037178179388431232552073361107361925031281633217969786715192778092980872257924197903968405892797508966168539240157195221487118807096614914944312898704865315952780744563639515905451794026724949372404224073068248752597287333698462604076113443722867908786440634753368483461403422408140478282732371235695664847689607892787081484673532893014978809496888838235994950455900187278980852091351744484148102664236871124220279317869616115397928876171715649509023667934751288056072050938606628050100125989604821377631427426319398317796298114618688959200289328897580680318004374685793474133725448499932566938698151438294825710419262512213406711201127668361790055581432855681020264059812715384423379360061600417731906828698234794435174228025288446356916013768197257976737106493300841224438044923546343615125505026998480386161773737253264562040749636142329331854841159354732532071376863015997793182129191681872673644062656999968139679036450998427067284410889617675987797846089643072314267299329683765376284676164975405154718915690241283308518677438667180390619677611396893252164660569114006974602393651955248644769988016846872080382043913331686069167678323222275738062467059988215007841378096415318717383292010360536626813676586335069399370583614193806692133940877227051684028225435315334834680372947457872127074252407002424788703136774959488391121868019405363092294857568978904192815552676179211344609348933785064707541504103834978683339671151430856383776403370652990563542677467078293535389509673263230375189610463491922906390217226796557878434408032696661384693204691727779803547714236103040023963463917546207865009490105859457154255215722389136759660866924326397432742065605871801527035045459988891518744838479123276947300960432036940857066408370788566812589848283179908105401064887261356649134156553680686318106815811379727917944927939269386356561183804779392538523108583658160061209249253418348303758504918309496666172575402575777736482399660463117906843696309559338563737134709050929462854171166717671102501600619332054605693956209848826721294367618370640433297159710982890341450374602506003730392527511669600390590189447605148725454769270753891464148619449353921832158633093799030514642571313763229816921827128267374532187429787051157127051623828440622948208099409457903641231331192161402662743644860299997121973220241768619185400787297975150002781335908400772601263307842676983415335173677413237853611621435731085823958417246647979160719012581684079497362902213885822887014451301353063687339017970923441175286579817628284808518923042680005404553714241769350983468543529031369677813856819438989593807957428288477433827145102999682293751575525943771228229014433841253287205488818933287939240117514983306592029774514923603996909816372326943504971500959931533333981781695730197168382272251072863885699337217236756600629554228614963326609836480809576273706330184892433364573734254971858510840337807877139143125280987846527794114168205645919376647042111220780952929334022076987991600516437463743720625490276210580284623235949911879606921774520098197650755719369607708422079546250430588520321282666962433306150483594955982340052621194715917205194028630711111532730464488267730519858406634899470033210887362899958958629182267375129071237139315031128170053551463401669471631270146741142484873106453168722963605804015863580170262789766648435707388393133918335369094086010290549947474648976656544940286308134147680054405393055708396759113213558927798205221799155625043198118559209032813101956247003409266682294406588901222297696262837958259446941121052706954037765980257462197200234880997616969198042274240197658874604469769347839577680469870195576358201776917241667955897163972008739978214400700477431225738130213646871101602230394588109034062275247847752326200580484035321922617546128350276190376480608720011637622414375046089632196641386538907209103957499639499470315292020149289342327845597159081032889294423132649323503783155570879839506169501194325764453931541946812539476689862244814738010686667737727119254426201230743881902022193019553419296631114811701694571249483474984512065566249861964056010784792217258218254440952779450040297032104898534212277543726747078642391220610933535934397387671393479085190347167612880635048459481751289527589644958775683105487261167648990449997448437552226796157434294149225082822445107300621134496650112264845696047954742059579573607861055628217553889581994833634185157638476511847851772087723758706055774795577708353199511078433839146915273586099817592369392816097972198154575094235849661052222263733174632288170682100160942544522326887577871911154365975464183754019445575848755317974742398055820732195893993106722421843409608985598320152714124567832060345359053473548410318401852383707916028607234271902035228294329046527575720280810816744663179206824365116051784110051899251312969926226618832411332556465373576872481735539270542093406307830046631415662245383232380888540185780600684048460475380780756431543072502691491965805585099880937992009488416262988849648622018406559917890032383529703106940742259843096979843863249987638475722045478316799940723617128036396190319718825960800783625010800591172489464231714186601275875984807392154323947350381487704821824934965733524203267476666066796885688224738683069364433014998384578258459668777944072258843612809757366566381850276861219263572759800295679438343174765153775811420226879599353037815801751090775628975548060181171249840045567124715999018087364086992137498632616230043569697998255541834742321564185374219557422304082297704630304695022611950432383849001453145618271756737102694087441500362389437491840773711639729882772992804596723716809992601964610647479792295898292005105153332786096155529963577628502410280752675038231911334901268841121789467521133329203169856997846334640675997734674187309118224028954501596354794834010477855945026323276599194392439126999029190078482517273969171723989092309850063003184629937147304406644989463782431006576005866435573382571965881899746124253831945831697611646863196843444895824705837037180420678029892482080280079380504554142615347135307938146564531760860273711922267623522693039561499970315271937042296318506110544933747504017202439392709715440128162906558778205558246110819610074093340923960900078089296506810904113389738935985578462471127365291769116835611797006530260902955356251507774326008404955230816302251611141139447466601294138655358309036456307325776739874286811542990300134571027393141662935593733450974955679582049857197457125895399016612004030239216785630058564077781876069515991976730571356317938916151384670822256395166702667256579959333229293410245543566478796826376852345389916739045571289544465668644820411934512864386552833631783155677946844933707693733305032161913064332518113407581771161749147908188939379071828309431236013933737262191073491589802494766831780733568892348055260508553521520017710659260419083186508173741388127122622399878166369625842989354698165575143537237841409301373913674494948625107637130902993538291073375774304246706086467585095945029366134113064328084228390622207001839769671426888166508486908659763036251978190708453938794044805241462683831793082091366067452876355482292554354414308562800651201088047034530475797396828548356916089727889770074341040072561625489843827162551700026196414098267523174101571374421542498675110904625480158731119057630254434407298959088328376305706772575118206908716396265738450340473528227560345390296174742474050399455451249693585588226660859475263662796699531775223701639446057580606448004596449606825075441577753673217084307285291118098011359932184292034155214549413575566161496549826571012772981280045369640745853448124390083358861809589016108984105554089045632563345006229486851746941074693506864268439547264622050557786211590572887780033541253567684474105994201119514083738441699496393606010829987649034119202079049995180426838899700472321664653056077742790473732538560650382355247583754227171792358152636134989314908807107203929666377198707470488146572207175942546877256767550152622451554517755538566907479241285679878637632108706153504213172318114343827344957126123529770156813520716614985256029056912826839684085882274072039459890655042809436392336241039978175260809758806694588153606374643884026860895912153146132149555782129189925851132290464444740227075807819987568745699289055367517874791321507938326059038205400673481027498402214886527226320432931299470191404678377904247540188602694837623247222381620786216088393574876921925897063889388334923066484364234768829266364286445574366466976797794344767525566601561201163865528305226134474536110185966179473993580939209061478510885839886269412021291198475052873131345181048977735333438597127461460132371313368455851830943042694339349680185939590971718533703918736893478900972518692803633988771369752043059418350803696569792335729911313460330718149772921758625282687383926600818312405933628418574948414821285902138902830605192787163388891930126338348267597348854854358141078479704915518220890158883002928682480225674966484852601256983870821221367174857141512067089992154949167860857639023945952387208336540445267174539264712308337433331733983717660597910762178812125393482162914185892803606336893712700926432322614207022796984428545033578592043661044719206676292294782776680184915763984438950490664071985208938901323586288797825712297440175323859979152391194626175030244655709733600487132152358547500827848153052426166842779333208761281472518266550083801874755028265791393955510838270235900527215807928626586466434846512547823973189761918429507035895302602627707721159407923003375150991790291564041329191444035429696865983621730218996280137408550969528283248634940886718851709890647741372787502381724872191704519541852995894273050486604495157897956190433162623628326780113532173386775323108187759830891705503685073026050235448857957013924590593994289706125401890109058651464494230863523389119693867406529420234204911866983640283969270567358378758941947191166060459021897608235042210358473713383478660286037482813305328643725219227527604775298531205791645223663417917554485307805572513178163223560500870145473021957885079609682630664814205502875208307649129870101434031875904123199644620357080501245155121565593845116357985457451146539433856313496319632556726800231468006725742225021010581428520968927272351397600424774022446228796820981430383245661958776912813280483457015598179160680397416638851042204446518918721268983541345928631148259583557577574462058289188286992797251461297537573608143770068291280826763608113181238934838345791687941376369193078130131414219196784713395735425322722623249760887766971257953673580186805420241004245876517932878810639490090979306210424529623541298476725933950723411172701412127085609647299322944708555839315303132079083681936604242667193043986671710364228235600152195043046009946990445855110602263457615631384955421390705370897328359701303234060945968126135837008765306700556374632963794509420552452172486216567403697555684009567223857592127377361864147646532294362678536014899763240670259165468356650523569225451553935884786135249295474723879928291425495838397566753902862274752200085567395189215491070768209779939549133049211873463488608834914857072277169456956696567353112005549953486385296012312636978142683215466579781201410735135307926476676933201739162029522970042281576751719753107518027168200059720403342547951005657499346361130245827039966551732828036588639659022454891201824307897071819222272831730103791664908000833362587037407243455740484520440865838166744049512123340648965509497824719915133277361518269714590734315510283851354165310583533366560312766039387234024332849285789192401495050390457503754365560885547842887026388692177160967475689337646065183210451838879859088188080360045826775707345658281436765693939713927603869547939115537336185672978679577480769757487536687118312338755473552881672843477193719889171621372684044825194661995296107255136142821487459781435801949037698833508548466405475703813727492510156002058952807105698718908626250431616596223783775061269700098329894467337345449242227880280213515394391280948994530665121189538769652656664142197430962092338096595665879412504739609069250973433091760856734051723655870735676771175154463937087753485009934458549178397364052743377132347883400499071322911455423013949456506366642039402679099670412458582593361253697871515011271075887558336987840803664767346055040215996197067174442471721134190398131968613056024451587690284000931425564333212592635422357675972830064096672057338932414568133381386835485315920132143936672246125306362222679683869612666573511464475919432125800048543960116326747171834883570836598967719888657938562852886554212983047043798268441019516557892039375291132831542411494639102819043048918998312882308376530409623812170203527168720035477256965897059396016844052157741585474059741225878517608376787655954032957358371616003451684460469694271040746590560029208615794162929414877860851081117594253510114397647243880300085755649622713458452871285871591571494521612153957406182296051968866379743907142645027559744224581452624461677322497326860591336063383565564308779251729017930157418167338060572742240155544229483166972964059338620974185973201655899224397996637967937194259019883626634709683986203420698500314972676739754746565539537370581251552778529539314284057529562186878513419444536310723303136825617503185579593014244987586933502865503013435404870891828493240047846605547721513750778438113853520669381278207903486416671940331404861162480147735984384921650782113777931996201647143565718295416540975219134849350914430714292994572307327962465344676525022524049823395315527992542452750683895291845914358511864349117070034320000587031960334884475221875176717529931271088950432461255680630793959624702283995729243607139889486390168641963526641066943618263508652112779853399832055849280005297781928931920617672392455560115179210974169204821749242565363251931855593487913292818631889289714714647742527754243083271855066053509050975769759955211878396560925092376276982093698154863408034075096394366130243736536734711686562641588285065886318123484284509703907108212847868212116897263564144107930194642959509964144384322317205800106778865850168588612644749046476555953852249405411504320243939324504448886201205280824560133219611899629256816800489876859024749692493728426516450076175656221840026239241315898052299564645098628509980893506512830426649677624350478247660602187607696668255003409014823259559684071721086481533144182378534857170197979212969567038973209017401612849112128097235747695291246517478013634042606354316029356380074536421356101604069746066605056125660298306811129604189815849531720840299474493728037267224296926071857318174638455945491944497953516317537140966647317010353365892310040577646053659511617341537802156790465594847511164180423071843844575325456491982261381921437174513634021463991543599846740697318105618713518937649316873940469771517330331122171526208693430121897529365538977130159956202010651206090743652298372690003134527026232061496503202635839328694359271121137677651210292657164858074933512668667282728688305249662352251351259071834878873475149114801717735458697228319757098373900179078405572405513723474842317096614055879951301427935274424215037263097250561136248778699064884952032603901526491795988866809432781573635533960408920603805118606674008741791978359631275743484066708960731753839899238908306263860171407682342816699840133796045196975211060904126496096592562104401082318791984451788446152311247609726193534500820889624004620716847703623165255426364395764519327240117243062477292361640715379152253675920919959604057332334082094191309652881547255057762843689569497354514477307964034433772652323226518976562955453616628545373112058754447679836883200287523288296085684830291218739602976317660263772790589650272372587957218949917626694559177114521537611323998677499085172544354382163350247935452674826470949338245020784330145427263314200410497068922723780100993046662431125896680406482602691615458500555453327618681608208202842548647095601862010245566115333729706781879122991811086955709447518873144696298566809518084664652583938484605728593866825755397516467251832192914771479151230087091252015993578049159966325327314312487749196030585158870410737100348379783652198427693807880787604040205687125007674806226633055459557252831944450987984971960222659170469718101427319744825659738351426578446982995005606018688527953789099812149628656635616687135835983770037480190313017333653149380175169191718570529169800300058819195514130826735661613150397790445716757084092135553696740616538841016669213195720369701681524529939738501056487880725580420367023202554313931746069852037070645243734024288190727173573091165200271146079362599144487380431448049136960335531953805053627006129555485265072690803526428329872034448106826836616883872032909024467607650392207219727563261444766338758602067751006395432978532827602424357795504622827650021113229807998115472193048785842631905560470905754849131495109560844839865932627744968212897738663972461380334803705974349705909108871747494340657641910068678688049220161440029577225876469858136470393871452588705027908995338700334487380086740373436536067070220043767755667763852086839896513296386897236269314998241334094076714469096559802764433049801203731227702141279164753896653220835632640363161492151945374215410561610987714182069806265434493391845923132930292299338339673004288590764536958361176398875271988926665557970756673355624087334344051572455525687240297828751244085792872700003193923142644763086224238220802706726651330391401459662071895366055771919627675081100028839146021359326725745800601991759663780250605241986395786323724549652555764316017612501316079530745012173947364744129396303793002688560696761473095468458048352284464204177581757786868778416111802755011615028184157420938735291355027280282963712951833187797056184238744635530628271750606074946881960305076265169945964438452364767174156491133345123124203749966267281166614497440050886704929044013752225947712841657071286336489653098542917195715580976332431815495957406878059301254276679221317860849323410547190381055995251531501274772426254070117796356439073609053413051869839882896613091807756744793137374255051501442087724146035918995625866927808597431362073719526049744221362888809818205540511544933412374489757716418793615750671954846780454618855737250916789228906992037226028055895407708315477523821046586936990340462747873691615567156757484067155836436666038577321957357326104815568850072213540964971302739798888326723115701105590442415914719262615178908365389405848957517612356795233057737843240121628713347519763193277414590439120920166361908431172515100439946855212760718237799346209208332513488894868080325642258799157285023371589452507314371908236326209003164880739372417995341237846913269048764344309287751507864317760265135465590650650426756761664501798548240022466460035078954116855419735193727252332887353501350879737419114077054508582384682066930613451341618394126091554095898853740756152690714083130994546310363601767795185272662429050531125322894717342060766561325221359281720122518036881339860629802708373034615096884003126008748892887251152068961559652652696952136751550410158867184571318065188469150014091730683096820602669653604019568975199421854518099782140288685751978748403400500255427248251598980000080644791678932690946510284059218873616123146729797693570251236553087203310427524143948530305469516104743996064590090678038331669531607016906533543780832603389186153587770640379996937115544411750444183733342893395324918299432889985841747030005791681498159589784493965604260515502059059920345631032331642744989847252269116416214023051522340335548871559225668389097301598505360328607844813255851121542714386364034083929404264739177574750787393370654801280210626027761321555509043931652619870912664850918758432914627032044851189291914429256170905263490622557093877460018294921854459222084319518742525914208091464999583603955076048618912197038130278503093314699095899897499174855843178595236128059997315716181767837487724855633923505088449816131099828620537198788051485746676634316425417096732596787144009370008696590142282274980997496098501027304535950060684944223126047172348923648751328125481303969416278979380331876596378458989800740100462802092584400900873344376350444599210345840692902319345732998976130754306642742861593036068209825074903488417934637639965894691203571222603938508721201370305214850682625115054297734580249616016882975464343254319750297043523181233331739057164643866316292297370546464423782307285012159651937262607570556776881574149491416303648168737365300107077647252337766482015049521454748819353088141026088474592066287032356799032082352513019234115568568966304702617447360105550397552303915698013668180411591830037335058716838385562345616897033415887351119219281603832566290352026450684987327659850375748266582891099099571892545411874487375088777674342898520318230503043364253561140836257243866009020701243619274612045070937422670765988857887011052175332605291701780752708267038246168693557698503924158830207902318211993091612040630377421475830111060234728728009800157409480933893449020803467705709668564832240040196540503471537792177283403704669319914176710900041862511888765303395237425744773369587041875178044882858940423029191799500473662113632581969861349634454651246680805872858625785896266824869769354632680961317874237921415161317642952529973475116440156305357749128680125715494491478471476167054677721484333383447258962310771799167315631974011743326441119730965066924756049827708989197271154221086448406218493463863201899165053412642747410745801283884425815006670431331933417935633171808524881979038933806391859269639125303741768053815938524078283266618254676182710095458668249708017545919496951292301669681839272285953824291538786429669117452486243632220352453993093927396312057060072774948134770834431308282721474259676385296473347198668326619366652773446148645170045012459892630984109480488697676048097293598183285715671079502889420062380473391309205886019336776817785211817143973111297567607794726441189335452524584896458876253637060979049917736950360013217353914573832632354649614401276206710610287333557333353554812520741316797613203497320888469350591222310409810412702462920049670578934192564689174036671490600876368425070225954650884828601482820282679458727437987086949556015087315084800419757379132316162558338442367259459499306560262159864534000209646779351413968744174291507412679922874994628877929530695042523055269664179164132704258472724277949613722254946844410851271745911092634430998790165298628969968403254916832628868455659329294112782045630595253708480001581411155987416696329134751412853916441128276212634345000851050552049833299037350464545016732001246300805975625322975074111121562514369831248888546085166492465231112538996094157061334400030251752404986383618575227238903806578042591888548488200966272308747883549017889196179267949580365276417610051774580591905781076726870391831828332461247752261107096897717059367189389513446111415096349947446050982197860912117942061242333973024416106785741730158202645068015220188167661769239946473583101305142190964621199242015210659085255928649135637317071169678434681561631159488393150178827430044796206147681900848445899599654364185849985850849726262794855401659223045917325284452539807051501135871917717207601713110529947771150705414313549972741508878612515477568275262381128962340436327204154552378464712091814256148158533288421921674671972466375589035803174467961656112004130676416816315728710537312557517367478760293494205491967609804869439656959307265780355961047470531734363368709810305208637122308520107350593634942082653602418435869931353535255699357245363910859558214237869932777124838938029693412914028177099352526322464953635596390316449017702750615307249517214906005289755733881452863705365983797209180031889390499329069726907020780850608435736729057810229438620661202880356275339773971336074989579523647966384493189036810175789881121952684009452973189883783342291987292115968155613667570540192380034702629429175159203233983887548827093636282582132766690993411889360460680443150598307618831781244955071300344735749736203938991043738222431832969600422840641268919344580211299824425574992693181268631927055433355673274685658317009472805395393259863411879718407088103986411101823884303388030530650629449218375315701378876102667068900338418247585472642704371973862574255049216338594268201435936399145662215108273901336367657530853333436767033279343413416549868940942671641502284594884246188086393400319392204341716871971725374660218975059536686665494063248749099837643263897144179166283833070335469490386367376535761820753070946197918599855047441205757221979656689241414167178853923185109165417858163632536645594861915692820944295054295606088662004965453685165743581652061257745189158137659772815541403281443790935623781985629803368695024020660941899168882177634110305984120201169801847151046824594185150525866907455613561765634924394185556235228359319659588296997523189118788152589448603142658415300206496786175079121614725224833013908075960818942316121096969000687071481868380354673642438649996139372634765798216326449475357512090426384713147093013401062633297712812773653243185663727812148164639829522165859072044840159443868708901177102032223823656701722678962412206086543228401797765472108418537722435620815194599794205920800275365517344755659469088139563244926752522911738832437279680005080888558228109590514208603554809051228676369895980853800637271335247810249386526691703398467653344467292495637364443264441078340950266059883914498075611144399439062547318296453121747093338384803718183164737786450013244778710960284919290530799014601871205891678640593553047658642547600156071195436414947790938621711718774801769310988548695675482398228606073547622528830007527796577931672920695919622082013807865717319564076655832968656354870874045566787756442280210117518551462413451519138319858953646511975997381424449530419546471329306847665153309111083210499387711642872155988371100221506598529590614375219277019585972463832528600414698343578429683473401271447973096345788754020788975399670845373479329085306490960407986162538301014303034978579458374244070195459118391793437014984930467601218755656957684148184118676617022425518851208411176372378258439746731107905214046259079148452795366957853419655865464066396209941263894592773406910466772204787638275773744576607514139614651591775291391104841275246234502178951260750947892193961602825859066436361757271869230019730271110334654026611627435221662776163164134706617645142647101078758416384423829825659874494334355377493079385621981788868586868705106745223633309834927810512935523575927263565582578788582311717184408593622460732693480204364637973951850944621718752376585463208899313275359249910282019046728522551214211865222530965386935879770023615680844547200053046664880639225611487594795243840549798328439738028439599829182764579071754913766988921792973906628173417368743145244879848662345398183838398600743021697097072409002016102363735326462832702059372432327315762672219644842744718939489224402235086628859736457397259645668855642962910669029282483798582334333018122049024215731940430655078963481077332227398631711468201962464063582618116626409942521177444760166615843168121470872461108546664125925570348677982355688385545405268082497417782390718835832300233960080179596585299835414953293629288457439672086434698026074130580382576688715756433551630921408084492403318384206791223922410172781777315795901914577733899395725909362040973926964425697205217970883801941103348817434915569901979664258821478112409696365819442365482625390467571990045396466219134025839161091350512691387450632411563026871466227425160458029124220611456802003804646006395166101376925977924869956455884346084605074361835435414931387946352853360050915190055915458862655582414987518788734692814915158568120564192263142769567226494958333762745249112908481512193327047616128680564057395165822551986307820934810992359319829058515709131629837338113526574828725638582753568271933196049824655742889920964754534772528726544445228534294247987236048893002210276644016399169355182724193435039646654077997372645611205939413192513978769763444510375729131632503999043151954778311086731961292747937176404440293912816304644482880189244475941598366705129385174535034657081283572278533007372348451502203991694661533618810034000854238744039943800092969126457608873181690418324823140520190565374440971127600350365460860264763408128812331578660257290440852110576954502623194454572000111720580971617886155051972145908891185312812356786176931637368747760941952525654109493168486881359893155531888532919287341320102481928489095385451639191321118892650034979175922560544973406295890714244151665230945432587581316135855764968110974535998325420400303884470893909626667618348596497596552505081462593998447600318773194395801532532590325714748457142545494336736428004439241483315533101403472819168060759404604806612326581175118408018369413097341611089132429379846718429770940871314150497925364603433510634822569986508509404024098997094753548624793208114059872135841017952295065727024491293060727069040237215807461537245075715945783200199330468909341412199218534393521565124851489154361823734904002377098462049072690960443542249981088849003362687203784412162301373794388152348416769502902847118378981127722192161518351491533418386588783541878072352567927288006843606324831709287803194353398092878065715266753851610672181322667530296557833222361221041034963244456177474543570406879045744604009339478554259122885012969851746988936184132464191531080060261424541103397473229166375150891971710252607840876345492801345255580059419127253804577797575710980878740036280880557377823338713035480456176250796133725816467772788684057725066743280972553943078384436122684466507500959079105852131199237369753756107450287009177574167368845063507233372674191925430129063714805464130218025012180344896253255906070795193817648309473895643581068111630941775679141327190707676697233070990759959846508006219933052659184849156339570342762799488935064768069704902955020421136196216027146381919482458833753115239966435686258274388158534789511218854493817224110717665707955415274178854249413286001261634240004141956244408085144512279661771660008672746970205366362014103926080354665808862270574407189523848956417285907402026620897455750050516219872750141779527214785169904197697603687828333011449942574689874415862422661790927268811974781111365153843983540943540096888171487124278073582378145554745735442813275941546270571238741750688920297684603456931035852306416575491879889251359613656852384635160411154110925391675316392716575310526862254066759091859842534499612975857912829570762020290352674092491213351900725845618449650654343861619066171651382723329662949133689746828177665039208619329052979557840170752571344660259588369721520423077647936648074995027594403480750809328978070457203326549649582016599848331874274051935816175825804058681117306971856085145481519863695527673066101140110841499968140399349203560022826168882244259677672040215776541679886655430409393819636510833654283846923828021384556026069746232876050389634940599526131079690465045419223217427305075564856214484338096111245854146809693823151061912835031108853662859401534440048450708336375260917218203465023596172052085288520903173127986515391949826347103971564161574405147171450334253311151560557320467085254666245262596344465744205898489971415851505203954104380436976829359910560147574407520703488926943130006521646289424140309614785903290849314038207756235982326593412227725433849645138292831926423015381027877645307329152484416745469869396907281746415397369661393765216948599315806833620592497028489598179997842710998375420832411728901978846769489832398313186830264384200474096683183434586714832855406796528112366776354856202528776934088009536624792251628002064915656097984969553927964982455127378866756847953177829733648123056181594661967036486585569161183052625984782378258755080055697634125312512706267019623179516377894326357566917762079537157551914856995684501132204209966272179365101457083493088024914468821601396849319126348902654014632392016797323017874776418020059739442675360564211599771374437069593850603432842816224568134073121087362531183210544991402605828968130546197218090961294069846338102795316027689541399109654374223077703587333347837995333875818816511762503478634006294806102620171491570061122550770929069069337122021521991481099283948705072637722902537957800386293980664284553883347785503780803224219165277675677975142401114275034604749367936904288877252254312209167020306604706621005496809972252020706576720008039312456584858501926648213321024005877713375627910467460352083328548275509908370807303179613198609019652349408862738752223204665828789702074366654069298885355196534544276497227192800280478074063377320430863817017665671848794593974560106731198150183903286656893275809427038517654115711779787616793316319474156477532547765550914384506781854086169363246394173972401812064106228480282714362021152711082137584828590048377048862801401416027135352767415362933703654435053269808631586305535013667526253801518635204378513905703662109460322771074774679709967090880187346299489020061361759185304482483418979302613186298761094101568085540194974811380937147032057950101329224744547432304684655402820568851193495512836677988224736608752318411864049703767517014910148599684756055683914725852663058823555097778399443718853172875219476961095327885583234387067053479975477761851897614288182172974786535037677308527961868311890236348014303703026374723537714645966116916587963579249165323980803304151486028149467986788489689871809277319146675062655867158837242046027752390010891483340024334310288517279672970572651030831656136865222621175436694424239820091756232968826073346402269053643490851835226382506394544340412422486379794631975422744831311380572250017058887353692132185854680597825744677277472206526101563936722024907848468339979061733894699656788132877801200744135072648979193088326007153659861443829987843028908597294414605356899744426986044187678070132851812237066758494371479529797100765487609657924367134081430505835747081079075670370513975952216135985255509366584930337431308400809183365881193890029567054421169388519048952975401304831958761867989812590304018469627544377673272217259896477512955792794546012781685146562753516412013900988362441676414734133036129819383520372280412875176895615732724300273956781634855740088558445440698638555638740451514946961059646444820680016679564958515425998562342861809010038571856367976150733036616540152756824475276153070692786431495736931547743926235041898999727984601449794877288932461220450870231749064364784551313401581639894102127437509800342673214970560879405169527944988918055069993303498993970085432033739580553486735768595297081226460631261808202872289172277950894642823056476496098285491039350806651525331510202556733685801066492728963217692108429731266211843447526468782989101857887648823357457008926796800584384815821349745695985118186364779705977433615905023722682155558179847392628420417373792332869817819930202417716320932789735021431512918074381923525495030737833758447857889743181429494975894763201057703623043663274935963629964553231883089104726103128168994805700671640135624331504832861260118136346367285989788817461480392500138695034135573420009813151150113007240113609738585964994349123521332839899035179775758435320889310775355322881672632392082507164650993626261037617308955802394698784164649744327634853780008496863738310361811871419200267620467274805442577803094056679352992806740565141446744810957048949642069945310123084055401121904476774521178725818885834456799166374882774085472675289149586891169826741405482581831788350768019598507629393786625958027363399227742088067765376124991113805173160214553350434252188739921990112656302567476606602237002935105341699104877049134254699797630060344067022999426757205305403111352090748512753832442141909890059917364513573875769324135649675080461774056078143888954327684668021112162898659083403303394161552072442033434763394898064238150186312722444003141784688557350247883074943583454032871736129074093557707482376775788820207204449307577922122902517410204090948732204839783972454332117371252023948517652319617653595463146514668946213660312093096405896734706032094015868889839541919799824573630664919367146114996035150583246570416646537633634912014618204252466103799492721094738558159164623629474633613492715400310167025022749024401789613876223670862911850794874323759314761296928629085827925327537216038792124184770998376642927154925597912822251700086131054133498434041322904552635551643566362556437451376173059422248822379470025690069896209448581006099216552161561143502147700251557116522941773539232219835151146254933345104231229804700812459453139291135532425579472223378854912467961964011393470745956779190231574318868488916308092582141805615749889438614718788592125614698865945635710295389976867079212819223455793396973037711067152100778334276858381872426814777467271248851574894291704406878290089542795524843584794607826297903510943623448957897873092304676443718455272778041038924421257136183488547901306700715267162856791483326287491258665525780010078369856343334142546999895311848490930892827403224231041082977231141481249356196699604667204093460076438773494687042306100481971342904703710396952483038065356209586275311272989722261264448065728960739553300805055884556546046992341365959921827150235576352626966361253166291254312896229761962010998143984616071463600839761249714199855947287853992854899045485970521978127196928936136024873638799817319632040265768633578084615393057310302562722759627911445226453637572827654379725120016004669666907561078060842002300771712758922640666900868084447489367891108697877083312023668564484341723451576557763501350162711471356128157280668778807250063434748243635304323786860736201473553125548646067111220202384715503925668655572455885171587354029799911720929988132554353937948665544027469747211347808606467084400046256311471781368984011072304405462241713410148031095952083990432408233233416521940628052650716607766328431072441929813669574931443810588851422875179010332494815339132606680878723268375126611480013266257274180607922403361588639603949980911055327559145627369118822812398943536859188070217968683800579149426517345266771141055649179954429268626424186810461804499746369853396393674997877157839431280064160902703002617437644746935319149145172998531715411307064057209626349517661422058024119121970846549360721515080423795829675310206347830931734315000953754888747205869970180319806460818236431539361992758621733772561176371465019345936389174017512699575604109910314184300343110605871553495668859256666249259451603444899710330593263155092364327536898872595740109137639735129924503493302511245513870324869923090220681336258392481939605621151692157900907350292214404290759948450657201181168741621770076819764981314805206020404912039470125736667402001421870357290079002408001382835394514282806662898124729210133882249879334011243055735777037250661395409930038928497563044137745187697680204710862830027396233856085234054998764709357500011689087353000831855403844815044142754287789432711823375459247321008755907995967383665931484435871858644571575588408420203451927539394576497274529254938491728960005940674210699459308674241127008227177032769499215555212007998137141230154197322701375593155090886196595588291294385462489267853762110708057317747201713554931676127196620325051377702857005539854442634195114016305035858618699594388531301637165092211577498417075605516424740912596220845143076093543805354968588165929968243868103693868186487204039722468069674097212970195726390526966818588064606958725011114371094396444484062461729396911082017331686876489742102502806726404087512765854921890106132311663930270105192479582525512590272956367570729775409179625777551693908908221223979936999546348959732536435809343770035259613144128164908378248983248993427528420174496901327168509931742567167846071194974264849776828386649925491020323960935866087992315320273346629977660751689828804891058303135108401132761714710752782287091836415655097107197871276209618084708107101816581170883637229775229101178396820640290090787743806256501902980597957533328885066011374134334195019664881659217156307092071300142656072832779334777777439436949271154507572793243546965560563028458293266253917513076222402144573082503666952885182047817226800426722831701708102104612215471202488205702523370233894371851043922175910221580358758833063306050354418188746253951446194751210023337825123905510819928887510757477634711677768142031006526434349878924004555194433753437194474183975813409931840870168726627428958676587313177766964600254756883533262940806994194661364755956512960310397631231344432843226178676324879197359562316845355794310897005883205901328484006756764178839584866345176894868104912062431900741483050791648664428157373344757706918181937824197951350441905075530548143769849394366813129710795446703971249599765652610072829554141855871047991039460011198806500232860294881112630256206435158859955874138490506366652640665370501884780593254847771673954425336515683560805927319027512721778474987182209310851263556943503711262932020915754486322788797515854969075168208358685424306826696151750572009143072016781958676966516095110432601591009742623192957986661702585887184286982193053935393196437407817204116947216864009178383286183282595386915946872260727907238942622708483206610897830661906091736255161562906176125313410113226824522852866091064196869516143172046083203012572408753754531647363275716890801261090745711925255352183605283549346097931041285150830461041039579000846966797374747288445659221134999608317756000555506227176475195155773911041482249030337947378156929727371168863858453449377523467777714007542452641417548284546984072420837352935647472170382654319094065114818597020870479173393047299940783794116959882491163350325829920405744235936812750360224164502379489018439035189688965580526900746409357111567110617153844578058023111087716183075988178381723786176364934936037487382455507758305858610545068702451834140393359035553330087079828316921009583187567232769871413836535216905078100278440853809196246817444043895379160263447369712286509591095356560786554616859430581675572520318305775828692970075307184827001913019980520304284136835128082646253617698132128729974657581975503764237022103649129029888932039490584039628536024378904504752604797604208595759767116464477018537502876268992499535224731962146251438652177908406523267991996970221152031834299233616011023250258040126346379192494964866023591298938621881822242709130671839886341689762989570986092566291673256205028645307163657850330718185579484365578771332611029974706531750073939379256461054503041120730005889448498287173280120480032855247927044260839308744091687245936455849233607109114590807230625299126152015272088809069415302448515740132101056449892038294917811258565569106559359559155491543075602958467634599435615964362056593528138710843118611760420382686740429431917534054676838587452468134255108743317482555318074712224206070075673482451961231735962090115077208483775884702327807607157675240702246699205622954712065288809260789212846126132470931017189871853327169797315224800036255919095210913995187788361054561040834113917073490511717475505209539999262388374680820834160799233169360352781452255626347417292454234645159053112313300749309766656658045879784757302089622903374077340351946749059462901982158912582017245862608968219093570946967832903207702120245590116488345646806594305721723428589323086708712946653649230522783054272174676798481263085403822175203315723560718789511173598710370977243237241488357507462890618021968783266927878689939016448685335157837558601898246753955722765122104816148694847096466525205945444426301189751202503038508697180983188329814761108208931670930720596081862607272704529157229207162914249916617905566950646917438022111618301065574106764299016789835557656933924089416611658798915519894548032512317743399947171368368960399241121996985173920848619803246639753126949303860113598404519921954476851758178229487753673454818426900201871302114242364776617960855813502979635357087589413983476206062365763310065928520048806492634990780594737190805077467677958554946638668511508673668398569632528913653995117726645186971908084262097942622056465726320756071542009916661478975262844723192021746630436529928847848029643811901113628416455369529908251543283157115142793919900678570625405456785346821185457616056814161733508479544003112603051608853428519948339964209280146233804028907445794242854914353922299976865953513325408901698880990065036694154067246747542265458085709186395583743864020664623537614469673648233588442318028034425662432290900720128222234694353901219779268701843369098370400379717091735165793322070553784103103547200438657988686869516874928348556738568119869422745872342748830853522210916985754149330335568660368803517831949511130743579145955416246210320118236415673497971069323182018259574678378504114638465981583273873643809052343712639940984027443985140786772148055759284670970221338151068772615594292788694735214667911629243095518557889994395230790352752888080546129954405350548513059567779940085452852963044834254534438082058912823366957408529220995675789485851153280977488039300275138989845341383884258839482360513737393029207278096176715641093713338395963769541367737204584444714346641631701793119281645272347557446660761574961670488706984278501754411372174561897358844700197336542175247349868876751666537430955761559286122698485294654951091221891201293809773628349196908339660016614955217684668521741233305018139891606821919246494616088915326537492380868265066248122948945205272460255154660110840506153798015762779248407717081993121149719749127739709145899756798550670513526805686422134381597928478190408260333943205783380535023506133871889349956549456050469338966036287862562970802016502583794289933442872016977854374117003461547587242177361784551970673188302969192581940855998109453529428642978080626763975862483279171385618085477608690779889553730095572570020879778373953883878168281669692002869303177865146605929612145962201776255295326181248332995299265200561248445558635689285800166717281890118459896435759844729741466906571298025928056849686719138943657857207179131248110561536414439574816566725520133584266834088914476932416201753028876220760655840380188467519885046363189182076918185302159616666594718211756663165029349307616564765179101853830366345439843306893262260549483963797858027947248503876407018440116524189383293561781389080549803526169766258726909372920249708610173959892592575282714547893746838388119413786333751432247829532995935491971191459245368244615140026290081014460615257226781150058257005695838717116647734720257069421016650416934447118854620787063922134032078236602876663512753149548025744615482997215269473132283108076262304636197797835126912639686229866138298621401019345536567146672558754091108442207147507515378036207840172124549480791732787320258244935492084956881882429053860224301999989087165267550009353532918073815265673977151693377649125229345179519146446859213638452637874851756928364649925993547171910347007872022995706601992904524501040783597361912607701311505174938287904470876802344980343015430655533010042590961751357599512600101554724249824938271636870198172925385809447437198170536089787895836245423672146240311770100246422197343416938687564248841443781615180563898425084170436171187549553662421043200409812779931409253736944931065317857567029971304153647176805716237556484647658730145036436843571606675746029952093295144223797184316932800041090254600354208007370313716947153960285705216735433216683389130310896183917069010986982976445220187219463965073439408216415879540197620374310386637230433684104683900595691716316803422822783184737567306561824217773850269013995372255492057714544512531750402793003382166681181985147944454936253239864108605341121904960070462647333321983101152728530365613114658714892210239707917417028191271864557590741332649523282408067949971909766665940291823879533973970439018267620353787163685888846198787566299564710912796438475457844833455709811070954709047626920042984169844947988159155184624201891158960965400957357199563441230547008535775800569846517452342274542034142606408961203325946112789962613208540779877624163009148412643879201602523893292755686558113210330035080012772782360240219348472377432989629342070288023880853978764776100674478744902156739769644752600086326417521305507555707836418780125841912838670288138531968715006666909773987058336327335184000518885694296483690344386647452775144696155276789224240386396566072982591877676639070557084847589547290881110236825683499006824105831546996476177544485446209083191129492908899420459413065413115347490342918013319399675463111126410194659520491067505011620265500249957367722750511958503299126717052774101024506537909902963044484989780236790318258108644843810876871903093065446798904756114463167954396252013934393737806521472405401123737763391070500687343196680509010115810667399394341432087615477774313040079847777350405891900526336235232266627768234988157101888491944102607892270226299455639662623861849236583568885858051155915011447446523071953576424440290100489099732566877461237059699597824899805282399679050436943495855851803955030656936431474353717545897688050402681438812670422973724426485830920403696474860351510928131927721803201656769438224263907019893629383145705469588733046708695724698526435814634114155915189350740347435357314328148947181498003028611960395555167806608062373108749600806193049265299662947986303183266570414987998925336326496016719624078218619353158271557142118345132699740426477078615268585944856252000566966442367808732858091610691198257128210907770417450389309769659582360668528979458105617024375017677982928546169220602105773269011189905380733970989542927783456303253579469623743706194487403558684540309801297521298545796172523474223619630545128439765395085329650361874625346552720271525428140180494422317472719500702417681385110449111620045800218480364363804467817151568974360687123733672558324257744019267307207343979163817562611353549770024567940080154402902474601302300333248786834287378787881490664642206927036857439359373659703661113092769322705529858449854190506208367267439655621176640966775677298143044325609356169410940996026267082631025359301039066519928458380299448119163141076071614059509084707002678836208494346172297520971067722655948057800127968413528984007706377892089486950712452453672618876449170208216543580849341128330391695967322130013209427073391867734871168655845180396393125434812147893318560302062270762430602983842059044747605786656356663762464308533674686641455520927301844527033603330599635747849065125759665201483034605597606049412201298140041052589120041965982967079627649163995798458597167698716705654127045303952574718827445853564955741000884031818288011318507328389992567813023734642545295529109586780729955215253401208211853788474386239608230520195890818609542827839190947199941629057299131294026659352892629782854137336896083889033939442332528083666001389774096879271185157248441709964398875544209269304509325731984789845112382081304935047890038805032171024438026719229432632001765526931802089616870017754908146426484093379490747941585854316780615036297934432480730420050982653460241735373790738792203260478477969346176934213378890793303521927337734525892692905703134125639502357573708489263310471580892507414041588559574627553513732511012386325098322514941316894824232222763108301517657481413915301574831141504027861963237950966665343648935726575791768574096647312081309123302202938502668401198683233651432371560485455626691788148130229275786695172344848134182847079001355457378689003075683394040136640997463389986463075306877797226361609593107502510837525619906834575077691223347343745664397460537433597109016557700039252971681753333227642172206309941404644390312899607771431266953393540515316791254113091178675976622358761940668993661727609815477695122024274371170531543389908925946597610705948574080192154722667925249704367954395709817272943605450905787854286420493331927479679975194947815045051509534332564819997599278957184106183340446638892496394178745087081222969370682389492866821401496294471431620186595120794677929757763935964336984329222920208397540896958760655487996702424100915551275182412264657380632336563548087132008581765041839250456994582203442680880507682542271976312862824971392980806675321960770596606646016675887333656462932094401671293739411467403144489664129128988440956035506495843129734065844922928272655608927751945462339281217988362882189146678056305589519473260127976084525037070241990436376465052245432254047895749864532313866835621353968486363511249141346437029975755151812131166247487435500592702006176309803127057009762854528734610341236679917478445723614782664954232684353623851088549582800414011067331097288641134734735448196688576473437135898990669549372540688549023618163024609048727246948896209628772957098284046900954480782179985251523132482049952939074307465929215899431342272533960297195867946290684007888981736565283485583058598298075797591260857732631975361566777313279256511348973747718589387823620433746686540029289417569853599140741704293157885526440169894928653541927462440232787054644941473445256356726605030281528802441277943581919580810907290462614693610516894394305376583088800597962416672038135884588464941179550184684850658401620779814238270103683505719144519445840174325140429865588787650241243270061400545384672827099122128638232067434384067111032396479371547837537880633061447137683182357046811768218682542824952511837583242046646312871308384710397619000269081720854294530811969124064260860388665994374742182196643424688108852574448846477780134157259348646277531598232836944469902195181740533567115898909294154137282367200099080205302884023077676485806126403996649630398243252117496301114241186222852973489402556286785636967434090542329823176506727879233909305313876955172350787248401870156058830440821458733742557783178657967071577464628297690617785232726871078817807150493663270398207077921019940479072261850453799238466165279638163720580497809866675501730811674213329378294602215871393952192008926348521804682678395440206256599295306219957175384655247363298986720904466409536249917479107270149757176443875461214998057715452585821766081083827939751446142326590855422237722835209728377670688668189142524951920700665952043161689857410163968096027479007038203148289162064852463554283533001117516939351011565822978574987134543259747282734989039704541453379337383574946051974510345078966949634574552147598875904642394764829774980440449313085736827096119523837178036049998153684859632159313644477548769181401795882891343543447301902987431841061385696186918402359903499184404134688069145403057374469584343698663195708070136974104425326761610591214056324085519575300706877944052852622483111063896474278007740819285605043100203573626127692113907454778566995148071044089492473040458997114887394600564736206965601926975495015926593609567872987092889506390375384417770266123605794324131707709471262072036835085631589059820391146013539588149202616401766791109654147720470130554989707231353858828927211871338650506512736723899607694869671975437357994169137944833911329926535632033810209789768893252662771984670506241566130176105689127850065854468226858843278929132429095315730948712214079487871682394468623662148400660463927921718364859859870026219108779052678437756199844156646067185506851861096419764645525245776903286108753116184925837318693739194977597823838507389962691522321634607104643329772218626557071552372824965116471902937971520329937122439998477599688326788034847221240037450991741025835082133209805675870937530341596032174323219250470530510335301186347172529457489944942522152875020971144705371306850150531973836369764836617147253359510690042489808796722544029594552279703955820221691843747586207549462647871856997706299770319746224169160073412934211935608135638696907255989828921535811694144194781658808777858537469027831521841193480634716783632020653084832649243819353698928491695896863884947999884037448887330091582764896765070406061502929622127530098571750070019788946768822785809890169972552808460413075900699149091743879455530583493006668128133564346226525690175227046376776079233116532099662459454670253365045431202331943104063074134319319645853920773922710951901553954062757869329939999547430584802211976812645974618063418516729052135325894593202185865398199144956778342012134057233579350192702488229289122941096595840213162654340807727069170965596848144427868601316992110158427153948474006272587171662251609618112339046290871814407366633833351632209840652511936872502691171542288353886844687593165011920502587580188328313581863575081755380890174906023726679120186461120471363904059323945651099720044687657354330827339490249615585925055821555671943755763269894892862493582439586906267087774437160000599125261855329407225522836616874838318774777432371312672619828304616805898247369475366058832721631891269741929502575654711304537686279013786624918235500701959086614026540147040879490336522783565420908198542544181068051963688887272660362598362914263777362464211075518969303132186995168048357831343265312042742620808019692083029735246841791025634483244187874618556263308010774226747523992317486327298454602766348690659456136890495117411564236812225132358304929748256481696955639793354772208559458145414620564930157208458560970847443470822018489938502381022419640814424129180288395849979751069966933806783280832205014169791848124816328546149965874005435308891057363100624846388371143363690092695660958659673564221422689824873889658652898005487065219430025653114499912735755805143529027851579265127686646627765411839895646018823979941200106762074500045375236650821209101680435592086359800643128025046323702443963458530908823670641168474849734904998985927989322457866062564572787276527172187896988411135560655120894521771467384870590712755429148888283458650491619368615445739355957197277254812442013221081635590174413906678819450710649017665583150416937124986493725972534409869422308606063799607185005395953574315096161307578056446776430696822088446482325004011689058371420653609657304563985353739006856968636738772454822647424508883268755527901671706659261989497479869017934584977451289042329570900291760755166580839742375423581364746376729419670360367530546885831864075034806699978945080520575308609363252496377691754694677133839823689876355171828320731910677863248411300456546592022861673430611006873295440401973685426830045911470211906300082292759482357221072487799471322318617359027724375949336339274391639777223088395082867230925323055874486428561374412628373607061888524367508137626124315692077459046780541444283620120780552091150421028974921750628063526504795211350294403482675706927314197277895798478004724159648744187354409829028520126848630078686424524566313801137408146754105293997612259921884300689373939784337502250473389537326508015072582194013242148798836885531117989200587135542869284168261795671390014579939372209216420149672139135593085301938853342286646072364365224053975414608111597847843820164507837279075225198153006828077039013351439711629871691855888470667303282018108556392133317868882146211126330561239091598832621145893739749947062516560971313664524585945353711396052246604285773261634245132924286635449403873134187749871681259538406638682956926569511834868720266161435764548293992539998309764830734562539995152551518585919304707438114820748108776294403421367718657396786397539740580911967877914144371785454955216331674406751941060836154459925353086711190310887393796902311018653819328424903436755142519935581983080110629853226368305518958555708939694002290917485499365351869230598511449715441022843940780619833418862336169473669364126519845866916674624129962598530361851787068507608692023179497292861933791302587142673363550817887236749879527750799111627772116512609240730687361933406565094926223155425800416138429632964686963797217662581271141306005196843591840977975271776900071905916715339601900333580548853052713643091973844235898630612969513263353624573674500676226607241443811330303100839557076273524909661653810312080082377442178680724468446596966559459679137757771434713939243295339122847751341796965556473642665387207480473564405830399453597994971302716592814659981031731043493857154059375406888950955310871835581690707732364719900273218965908682761220090351298146790120231487211747339729731084748639214344338700717751028054059476316839071288281687832578966124408498816660620394494660795459766571321526499685214807457440878432989950212145325746369271010469987358949747587558310243258067719557223967058080569975380483622578356869750621054416998774162015898006439349360112423087514830040302539815200600438799592670645596022856552624524066038637516772183311238853836543460285088593301718700238705359163824419365675506669234850675841873329496247604879722672245537519007456316831756274581045396119226492652619924355426922335868364040769886194232008890695420315795220924116823507757701666791712666907771224760251096386232675123771040775640157012428634604454352463975956893168485217050571334465159654319123804237521457679283922641179026055982863176236110335265337024574074953275490644182303501225691885288612563704683569802530814954588658101462523452882959241531164609775167354411057346251855575213664215264757808655506362749642839696964764665301623708416131043467385774393849200840240298156896865565830167903865531775956388675744526229719305626477013858823225303492374420034167557654927820343619020189755802476197450629183619889927659853575661108218794040238680931309371959722517341769032729312801730781200120943918815675996389227611063038954118010124071527667372229015719391957211447043246783054724314297052794365685185541877280936924084508405449773923164528654141535548942032038902752688416706402004392886622605237329397742807651354112987434965060196824808398942560012680929212934456390877840426140649883715049380543568540204183857846107251278257367282147256067082451498962141172332820754468261611457939972756744980275003751398447618818485536922108757275249638287426512774866528803556074575499069006074175310624020286971005514198018341041896594353531714848140367894216952276464359370050221569051242525157755696161759281129897469923850885355846089283586920194416110320219753730350293751644912652787351307386345180665808699644993835387297898687840636839403332345722740944690977557394122692793344693510313144229999214261185323126875693976597126691247595045916773542364786342884972818181939926083359976309287001906529980499420143063330208880734669690259541994813416377244029657184721267781455050754144237923794967483590762044750741693437467827589205614255708952246023766609145238380348436698589021531068533619013844423203019580358379558699405822094681929745807725790825040840621246305260177006443559955888367486971385551537877592319491551757953780127780257884978933756143364951456644633574260858674657004996746165559492673506631974610308232693150697447796749020418695764571529801130806713744338678400835424022618699167303806267796288704176986273687751087595421172032480625338947776495903959717496108770303270502813958547196858912417561656863912138555948461029563818532729682066710169580073402796441455692037102649317306637207407298239700693717750561697939334196157961136762563470106342196328948153505978141455551093752163355124945194507295135645189245901229143882841823568359283062130672630689239653733436618927874003259730586415843017238481676751201367068341228121884556893073675979747633894826521140518130327098793081320759244338678339836978913055230956477410382261429523979438358446497298283405406284109708746994970434818251874067900618254200479088729465830906866141905889989888687898577208443624535907376358685286145480291777927321789534567582740887606269822367102322266723576261222292567638558575653760250645752191137344742499153515616591840706044920074624488911346730124644880004030928446563436739291270621992918381369046348258528668414963023287136938187683370192282826715162503781564777514979922555072821569753591295799702138458036346404724323012900437508007873878092261040607862254544004386961302330289211361064075275117645495794168508391703556671703077603607049487042576392082774302220424006090929666016590536533413569803188221484919055786908971789925537940181804826403764629488356569027723198301231084185309899408640885598289755736998531501888790960206546020877648029350794149215487748139638076335351869446537979042620747838088667984479984252418005373216166361626898948524902834179517341301341773840027316703067609639516110548012767350110523628928578862401925169591622193910463022735975005169887322960578268029966205694734366657811733807704994749275347053648581056642491824015148273435148313732583296964501440934265980584753780909160984668216576350147650864566403312010284514360511643501747953408189985849077000099748593272644445371233960863094493578802664719589713135773877065169964978465583182365638719011273351606805419127702983157663688728156344228947850723128729587191086008258105519424674707401662121568628072983818541097217717686583028868103445041960858210401640681458813681738156532176778813004773408785112896151606730015193467509032417401265582807945080986982008550490582102260901954459619472480854133811542657212392671495554167829420050871215700268923731967632174481115465095996680676565768193578850183378753024496130592488916292033583822457556270371874048168004353277859514300497947988259701380101177169242964710484758717535855922316055536794575936671202629739330750638345709100853685803518427622459984583928629455410707661228212693498660812885133699868558890852392659653774889048173247291108269043947325850783411598943868280088003669429602265606601162367976032022045073184378152646114392726260342885949464498937030392800260700574211339561084612612412657238326921476378660273621453712339164976317279913223181693624766876282391351993650039258828551285757214099694655817254834723125024774439589652318758178485136156300078048910808930034338318747989226122024530722014973480277628758368965600732756900992299048577935971603271417718583766649783885025594474449978940800878627298288604258187165753017238895826427750447470221387079087795035794976525559799802241184600872870508680670036177997589450188469581130073436577219555390283370474839799119407058370168454309342512329121162955028679522575106134908945282715193972482394832844598343466364967084384943458594699936583319136137356450116868699067507329029058827757928405992187635829303674543775691597915605014494503186556117624848788785674158335283797789672755383429368601068940046486918572670131679617939275884454304743503368473662531016145628671139473002055466034166992832557202968080518473277865910601117025862887034617451243847417637939602189959797782647455307505732824854208880132583023266958606596052484694891641668774469502227183026134980126659937278589659027566199349083292301688720545475823098810834610555544561675861287041902089617462961555487634357813557509940698636000656647466218111511227792724484382696585159768165759477823762703781062100146606997918484748530592141535888464087975451741821190970709455556421745162507646282579667237713546829861594227258401213102612616164336410792118134179375440759807991208932445087423251645044539231481446002653238679008941885022759293105854857650956759209498351634144336453207529690980762857022963114816877984089735304269082033962614764505599474737173174848283428181098045475941404970249085708565412826964432574062035160588333441527499336345537069750444948990647803430792727404594369412820125551672017564741183068805953251255954945636711980369238673845372752541450921176492275877111935935968041988202882091600316244421949042840494093868727596378541087086453224715434543112703718205989894059505050312767728712267469486351585575117053445970690214089219904005561231541779743893527695479221046393066764305892706719796428534610665405876516457257307690869664850494494171633899693179379247118283366680401583555749710582887088388763774286887607440780192725989626712467013972675660441830685056826826522447673204256179670666746372040559656415681034949728498037914674184766626072838125873206407938280363164386778472866215720552669250682287970257062696364588511874378842142713468708789517655699672478899936988797567666683631424060899343954835206843489849287030765839267658128724373131685844334910776312063200147515350444527720820009516454994849767774947664769110571976935049685991678396553650818245126789896128208110276547027369042198971292761377018563637686010212883649084881112886468121756776812208206167706575110196077478405950672552948145792752375068994312976351671365089116625967739610622449466707875862761421336237860016185482547250871366547695278344688444884769199843536205872556565976532819650535249375344549600881853323795016196354168075649471918115710380157333401407029572732585887187680547482504158315658513562798930913243644597009181410951606518216183135661077551261669538144491774268855731206785013090093742330786564598354265562990452122782458900852577378442528968522716163990803487748441698992274673490491664908307256284459770297262049449973186610239803211368652556334760642111563334377723681380037938627493323783799443779715388514655039275246829336002904693409988777308375788642498100741695861273037551397466105602042984836709053679655577095415453924691012033033635322990650264106876980338657524103415540986068827081562602873862125566513661341683601732870506688963188824659752237637956387094089593474996421508800099259005406282899918619176778546425415380544632768574940189572509476407233572138476552927321613289751714198282652460043124625601943095698185105926335331762123750715646417951262446710731545906230715038364071630379669096028136625103267448547583804247634177446525178364377046848888028708552325431823414502423008011756243126296312848583308996524397413526585590049402566299915106323271240896615528785931226012251661108235475158489996193885366116714077072530693747279245383705183972663811363064710739784042145778804745007157411040971273709384196729366610399797165854353433161039685481018852949166584104006596075505699962199496247498005157254264681188333814473188119207799267148884042413745786544676689412906057170961299406242554523849812919457562235900938290809020349829419270754144760625283607698797656094739516299641597486138388282882741476281825215518602512675751070799660363479110470917297983530454503904122248075589582341553064242535319803421075424544464475378699741692170224243369939522021747323543821267538507029312727394910244012460400437447791111930964308210075852612223151811421742967981026635549882820462435195778919855358917342507164491722488917053164457174557604964179715608607299183866910718791132498507940331457076375690750743956063502804404827619459173576952047169415875797592234413986835692327444954103923758710913755358035099931681566049163143641539241573803660404068124381249824380601064275805859280501161300706548120182497192999591783838169151437902833233627571585758228751392520424753876130274645483407305931427351983599260889290879571307705651218841884243255352153250463637134576583574257767349760547169066246680705304170190351733274118169346956341975767558285345627543569059257155266166870363140352780602834674911497938521780441106104884181132276737335002594696837838127117623905527731439671946768746763340510107329016006762895700021950066649506776707980359466110663895504885482314933593705054274428384475272082728669570721663577329192880901339832849914074918420624760493599151327050661851716004136284960832574512080573207767956472845342750859287785261743081328994359583517626516969840193690937276943521487374759193145347653923038273935798094095544433012782507115310019423918054906466111311557028998228848467860140871614240779044789624260269745807771645724624770166075473714705272287587767843070947132426400532727048238515133521280957869433264099093860545119943675062337926563294870774789831937974102374522752687414003451628800575361166635979204862749049259856263583411709805115191383366970985596912860979055055533214122485869626861394976707413567441649804620221030322305252192500073764992409088888614283674655483561904045662383345935040524420901677729376130180233256542878093400267309775195763711618996409247742314566961351357319274280418776239477572643546962573808550907395215183155284530452172552652016802008457365306710376556549225508481333603243627273906231813493503023836041009335800973913731019235682922920299620408511988954672248245754448466698599074358603436563093864175066352525889331157402584304939644787782335354660267471329908323863914108743528906978646609190040372115738537887771887388493615971622505232150230767151044090820602757856990018514079010641264407481965154942014276939708099257352429688204267803198396167906012434028289345424098157720566117381398708774520770391988022584554934928002935937428928778893208406394980956976243848754298534523178468340647410789381520147969501169189435827508278802766375060592746880832470037025370994518808416482728862252389056882157188116369909739858491168935120886549580363834355050850522098764655569808942965172975837541929409576386270048444301822473115372875917480170986498256451521004882431252350310457928715962764336941311834650786846631687632453185825577786369161222320598755788322364869797387855176125995333572725031348488368923073639215330310426006405979534709434748749924512437090505146614711997489411889553479642938696254966955784106200528738451011949708669736225165416858018767127377799631011818345703204486580593166376747488885546565115095747038013741764223820113301860086312259072894563479920647303165800826613716572986818894262373619169507819651606605234820213896728127087196073652216023028151392324198256109961077593274873184024037372788692268304206373608460927063831784359587206556972792816340568138048251529228167777028285972611969769838099066490754545182362983430037724111252350286034427779085140942999970693704396906308273552024399490937992988531399927902256269480314761852470162879937182409472862061685719288259490100349020439999782987532182238247655880281684735551404538184876129009163839538432519111873367562148789609722412754187695267682860167301296968981329739356996139115386740848166724716115429399233388752529199451562712004089360188953318347050813201962150490367308517921207615618105056069830673844814385043257822180021163136081684759814518659868879664958114204468036807845806598149841660749706253124024532020538113561812860451705607088994526299740458422805484557006541148299839033375283571701946025615103788126516407449374881834944273959445931011389524663502472864634821428539254331545560955179638290062134402134832860080950256227056663439458845926337985125958748309192465361086897748248663035341555078994440162448147157849665788232811167353453881656533492572498668288847324537567384245609135098193831057108556946471251817907812141751372531709088218344103349795304600313284732243690153295426439563238747813098217168376087459023106425715965236992102062061694446108010014087561865398688549715666519372145421868668995177838537487700003971053083606485667206558578318560399326805371664765129952263990410016680629951483118408337913447474677681832775298640345953513682275616514949167575599321134891988373387175833088176365255975591330380444557813647561752178337072449068844863668953828631467608186024849341099770016640961020648341243720258159303973513862567549824699316814317931835743717884442435268510659286201601520149254580338239591123143694729075608040091109597591750778315704365181856734113819331946614683711996131638132772092607804661762564468633389282770639107245027653389819665027334702558934860004050914848964255705982266119089795044287404763181807472084897581098354996899126429362144680892707303036994364825441349629493568863875512622811732298460500521034152562907329264762556237971651010502038379724494236397751605020570313785384048278995218251098759191559262343068648393040802159469461184823347859214158001357209200873557702236639592800068146943359710216304629035341915168800651164434991036096787352147711414329103380218512414106021465538190561462843516103121918453548439628332263846493552070796150609349052875996399776433412584914505536867221927075360495072474986860716450203688480073294386642826214391759699729167648266651375607138847543954176220813484863418083231667201140692549645356628750344362889730695596648493227723502323457662723525236738302880404974758985292529171348348025172753973952034148521064699107753764901559909496857473838031626395234036278406268237996317197672404508150708240706576073651409408462715630657248625691658903887767411856205797484637455885871735799934872630544963184884739483165839202307562025185172548556763247507754167327738719628245280419271169441174220764814557548588490513935391145734546240007064389626279022635754885493639110175115475059896025320972654151386820423758035386107953130961572233370248872398873272367533648561789320605768397018825494323955831591316708787023716648197832031805177601981225588998890632861203179856009841612865571912194872027742209005559638177839207784734843677965480009999681116955752896870296659310962310688285755360563601450660931990995538120832843517225156153431755217157941178700945619056187691206023712414960245795879984326540585314973401223039026511235346627237039658371943129575245295807176208591246270010977265794713793379294503509389523971176117902988248197855537692100948733564624361443994906786564343432695892834048863647794409160488850286225954466146759335850575185097666822607336650323474195945672889826512614626401262618452873986466613280966969435846730953328307200379301465722133106870509605942940269333932351092933146246548104688443281612339682991941574494665416407828227949428573082219484221036798067884123852629204533678768681454003149217948087204717174788072033713689232322658781212529979219208439127964209766638162986109210920031321087335300415818341927287235918860971494918964281804095962738565635832376801893129766480205085779888356146012143824610431976880047431439633907582110717441286921189050723739586391768733642857103590834912831461098960724842494816814754072353039651318410344918338494861322414417083405861190668637074348104744892104489682391080151792029541354531576713210561227461778466626632485130163014430461063000262967163780881692103915673219322916932614550589906228662547448433144221555685928829962587973971619925202374806134045175474572774271440569119938482855039540348121962731483887826563466710282060660092122594882988098014319945108555176115806838240019977865069360604240518022956241468745789874842866342465364862710575747134374890605006103953939434228070712564280888136218456907011900090162568924237476405300987547823821595426825320384541262599382761049909394107807306463102313454924467413969292129821059323324348011570832416189346085701164016461508811391711337712976601952306810334918680581462170173830521460410664267869316771900079900333773166149915592161365868173848280264812740437593446836648006498227066540262082803420912415475804661654481346345461761336670659051279049408188508841164754587267562686653298654517870805538347560985259959765971501399623159635022785274389372653326417369550438291946231064657160309455150381684891188833899203939149495793673195040747737672382485886054381272091482148033201607478758008247496309286452155055900423732660616244194746023368276351480099484028575613981198697092307006731969971297098742840152166194224086690747816399922571302710386034755072259026964309048188904196483986306876167777287863153743447084111609473039001249391508295279207266967772039757435439130238877644854505675132280965876515794909162679612355548415524010388371757682530538341074480770106352568594435917116856820949605248619452250784802491942755499460467118035014765170236911480027949050623458135973044729567247632918586622708695079189048657264170027386996252386914963599890975462077899017811217888994891264662400961500094475160946238932693004035901919753127226250470103014579964673122362549787401178396943567922538077869117978811867944280993911805831330940007272505877832365639615023917573263279299158735271813896788518633471995660708950020835072275050280090999485869052350630859616411398324273515880692156162165783630447951155253287853137958212745308486452227531131189950620333879655044416472807571102560993417529391209413830602192623725188574385119256605537235841508799782725992516239556947994583110528025811330905657439544837390825214416154821299633303728435850221528061145067923456379464014534426750570243951832281455333233089385311245557293488001171485001428237952934467825656031104305475162745100629046478591045158688332990079466236373536143954867555263025589846495044115315490259158598131078225424856915763844740969168665025553696303419182638443516185891869576220414505744075498025446683370712173890451687081406806445419101326476291504767080829126790682184299856622851000866460466144435173161893078782876333240559456077933341900687649305432193442352604730841355993773506360576581918532134577679797176991113424731940204037933527220093221926204339767412268497380915559962156353454045337798802232786357554855625371903854577336157041879144536259783378665727791826874905956049702719537661713321075916530666308465622108995940233729112127694429563874732552287050089511560092528418451912890734354501610319811809568205398564346894706422572000015967685202625210096115099451143370630417650358997488101445657757613405074189339856173693043781922847173655361916808038496274208700825509071070713973370401522674969851183917313633532412429359476439743447946295475460227534009637486936040412027736604606024829105735633976544194971973433361232458358009386673285350447438817294985681610708775154112585915723379717485224177465795589832819890882646310691133916497806720883921137387629821463552090881158725718586310949284589691946178439362913331971808999869511577310987418158453922721694103766526770712241103878622708988362761500431022921696473438440332331392939999326477290346806044575206148863328281077540678963978379349556131629754304559054016625960460610450801354352955102652187830403893734179053680333443447378576153367827357706779513532135916445963988825435470600873951836442026059050000939454095508085433964256330544008292733473964211912722148842381461598865857051035653469286651467140466200983908099042936014730822633831330351335321277822385899067386407123620438321431802951526566408829970450263430726253949833909569246450747686329570949466107227477261373712621606527844438501608174677014415109841936467843827101952898421675931715629704802593779551765393700022057352951545391176940833403875197975853543624096842145500463649165928667303682094513196269277093182838036285309562868695618531709490298232524369516532832248466894516093895038552089462492282469687790768239890361210367498742853003763534144653616596015945346919489600823114485707370275150392239987349166456101513258195225584569148010302135431157874210963395082714829585749316841683390902411643192531852573098688378092247818742600645923189430705463548550324583797509815894767532288686755671765448403215621313708274164560456754878830531375921334797215832684015314357918455398403047508180781352858561828970872847387985783858991387804740639392147170475549563997589210906374388431110254493011744575151279576478182983925536268479509664758059103252469502164421188392718601282162708137248104611508871902680410714219436679832892222767590987592941272685391242529139333650266344929459717666332602080031965552345104189506201526179869010154935623481547935031771642865447307158407422721531581948991083140186040509536594981898950413894268234412413535120648733934852811228025716263544350076150086055072904053606210972368795803327721213907801287957786097763261683942892909925879325271168803463894681020504220750471326979247757226363932833388247704146141852013514366378877037858528158251879391385654122295594146477065635337565476360411993648147311077190835375342929423925683706106463647750005085484291243376698833415998579600863840580224865375316549306013176604365126593046751408454585929256876638505467462833600944835663725125460341448642046346573502847413051420491452667808771686528712787724770509980598965085619953431294534832115950726887194285058732560762237685213433516398769562139604121902884112733630508091192184819662767043215012148285192790355507786585055839562527597755063175674289598032949997925036131930192753262656078976899159230771372183856001086276808015061161581576002271413811189311916268374504985104422991389254740175061534655681124715575774760054521906238312785926684551433445399854242864877382733077213846125867246551384278469183434259505054532558015594289571255557956834794715844934395428952989916646376397372117966564068749292021023212110441933900372048104049684787087567814297304493306744805669988330497612319884918846812286001061211061781364023725580811800268395811843046008565202374313350392790544269225580745365538848414550819817874494458347419988350755225312948577443505481378372168719545223940300916436862345476854463845276135120545698747001390039461542354187850762228109845949336278203019430949934771787145788052472600408247630206260565003573780914819850969086233909954251265857058144189728699896379078737926226830495309712539095887186374229483232788772510611988190005954643038520432303215049519146678125460935729222498599786154385958039361911289738720777999566436069636483461569633105823063836553199817064821854647341533998317843130386171709969537539508398728794387243947466878468285507045578145865920293430509916231575689027415700760476489974223083753009736221916220981183863795668583902086684256290576302079117424330990899156499908674940625930605878862558365700372073602797624886890604228319453224259092019581706854629586233202993733272829307730154533221987371577076545666659265558524407115771112799371979458372960297941796088219118248972943996573542666324145664821335719523890679343740130962024040846438074684836313389094249313818299674135040854986234651711808364241930506594314702518997557779313984143915227516084768984367409452301700389237165201269036352277780735173767448979273520090290335728230642505248973681525074628072621366316433950096123373793174453391435187155501196995200262513725108447470317437275880360851712762555925962728074702118660058744320655500940110853784005127540482889716085151718344539542961446893354593672883678669860791315534006682831813146973125355641558445532861196895555851252492866087434775687084890744072868961662898967176937967211474096142917240603862335027546578630380786025393322308821087055476505018080582923794437165674591302676296001548191219453208403614867435386678756043143222371076099311013759320397266747308883891255308566649625753932939781012996384629250561173841299481304613788142219992167605360464500324301941226145711781418481355157253877080667200618055027025310781606724305375543642659345362256198380692425065848530207448289748940156108022142710848777489018551255083066088700303309988282582500662180247877652445493264800115325343137562252433407676299093507239024803797388035395590858266212838239586253979272742078367552742195523697889897977473431246629538383795113206934496405510832252256968101994360086184694002819032735603629686012407534364279780700517912009932140322775294311600672575231792669290960840461607919634512580715240071670972355349095196156923981951808055575107956148781641333023168217039748957587906242927334143767129150961786338924881101234396146583870795501299108779776394612542653729399146637312022481730877407438354033188603889719940900253170712398691181397791303887353690144310463750901332018791230389336138888256481870382373553981935610050424876631463190165143413960983673863661283879682608962688083490546178386488532530282852676025002314115519539714111929814555842839168045785154608105960166897428201259475509700645210984398198731442480967899442405100426704480288482067344825201937174549642795006495912610084576368075861706377127168184070967299773831589181685048529188427818730823722661702293507417891372890646253201784286125347212879957666330911523538937239237291335625561702114740833988955665973502084455151768515404256666727452076533796136686523788109912768632197482374034537455447312375388249575084128747841348382207717204573777030261919046967095368438709480488563296410044359112357432088993048507029807286401234044899010904584648491601891164573744862710437397520658019160491988991621781151158923251083277974522824301577824822421532721285303532924312596114443998933236669031263327772229566503419749226214486936975465505066563016298662819287957774793993146105999336394425471482786601722366762866651987838657810956380989030515773971123396459013891870352131147125594091004790889117305499832093248345081492069802842273661812566654633496364067312459692317876685490490980518380539553378628545093476238512396129138071690332119967233951304097243175267914901545442651558985149351242469384895314617424787778480738179030313211476351421613908493418547793273894461738843795168948846598699702636970221557293882496095644924370405077647474883480080247404377629895247757243288885358133845854732395803499810482444143324270091508351234396398084759706121281230978047062169909874441597730683505469303510136575333429325718725262786491124185617510161463807615618665434905335953967992068721631057057562420863876399442062566918283839670534629668324482396077427894943669056523935104774172276315325287140661471246149295279632868186538253247830266041344920705916401227814945148441844848749127637633443302650623962297602837135175705608141131295512267637566847609477127548370527032512505690609833977701069641552343494147201678718169464616999377075302494707738034944444141798817402421196978745220806896021435743218487406088345921190068119363070604832557428806553000965107476809801317724643502087209941010232393819967541780561372059115764448121340222115613681738697567081206879175751130529314448308953191238330753578459881112147681997410392123883182036513908572219599663732153344338539110291830112445587742278491702310077903162903031037162768679124163234535862021057971950939269856617681714774664905166240018319209937165553534344023547173727592992339110175866756043555880396207757791740715104063070259962355056018820035834266601670048704699544198029766112321827673967864824601195119803133839105308351078561946394687684523470281982770093959731525410845004478929768088671148537826915116211718853106113128646454164952392800567725060150587924024126336228547748781297455019705933295439686502877094718569155145985981500819209210643779267927236813113106631175603843971602414511011662359956354291538143029404020336666549188172764892648821525528024188664816768529660776697356873274411079248790272739045563041731889558640746644377380920889191103200029504888771444789631692086209293355373902442825138281881824301903350926770657019203804037824418982430215418892037207694819889466802304886630555504287433686190360006791872683203918044055956850265287751433126846565528793422767103225945422425880009895740154012036045877599885646289357219911959976412019635405763776735907485157662411410951076919005641902505677045754577431632243250630034957643122341546695226115285166341955760318424482719504834293529741068272330934974218788417514342804508984285445483313395233940648997141193353391224638479162168502277786414980751522069974716389093440998749981904931432326855462278713662303401555993486384969714912806346779386859683819214083934473147217794537648078809442924919442883439666586824627863115741922239508027559381557794158794544526351877229276622591832839504662501586041815603251214360087094857479154459220991831405573164722193267341483609780293912093216681589546879181429225207140492473719080619499866471582729862087566815534463022440378940410250888803779544651608771057454408117338153250525310257145108289366656065888677646617122250727573828841297740505710747171086344845753365184499278850852923705771080923271190478672213945746335555034331997956988416550142553108591361249924609468810497124893477177175385082141735055501631023454520323866341429259479965822174892707819401912648756950965242239771794542070672510800771713905907908097708989142295829158489100128095395309614987504355625529107961163552065658386369951947038106636669459667072585472361932580896495856629185106531909555576116137172393128556905079199590061779269282927895137455541792329598785853055545710487271556328286475218088423120288489264870543011646133909350094154083342747389138139955735371733723708635429410755533997467049748499292279407645481619139837964342538126575116446593428196692238164698864176334131286826985339722900476692749554005331058194994219184250563724489737948714850773189635896200599808430300526631997918074149674714251999954525169117497293850381175985847629829409176772293930326843362503908444989954307896968841274038531774514624900340377649416423487236221228591099288226264556089882646439454135146743978637612184108572709756212607758095016151524014501972997569368306702624964816148601568043883856081419860586736213200119297277218706031921399939016419068050406270238798732891964016321152117667178305228098709590371409560145728251377418056902040221868010381602661219124533919609023367630827498189854971451987196722265019572329967493459741275460860814936293125049039505372429364926494881662234034726413507210197103219043017063201664023887588694869606653397455063183303987067706980761889354749056220278890704439775576133405154538964056134931502094875897062126260085126852830804395014470656236675377976218235323162884229640731994406488859034935517111800210532571571454824158384829195333367767734623398196783625965067926000991057616237910116221085784522881414509183409854409201085845735709246697282734041680334372479616869552282594341697527306176652063604291785740183361574751287456186344056035662727745129773512005873573553906373288218873201569938034488053471964162409078753656392322633726433061931390605980374370353696360455768706814055737145338029262137247224394255629954207136614452593018819489569168531071975735357258027594464097638523964408960568984539875776420554044974920967134402792130254770042703535272214593657176645277612698027868360080381914815126809452677212422378031775105259396803262365619123845291044071168937623030479496436289854008229111843338960013799656270666865857692358177315412666326462996155023299604191653113212998518283305330768837067884276286260678061231441712047451733360243152348025315576463701519712340590675842587562694963697298905845620707074478576380834705632058648157598515025975657390601358321856882790939622011870528950828210390178528521940542309493099174260847363151196887216742772823237930163851567754398629989668372811904663257398021923706851385300819174365249988602661947419795769219832469088860040852459616190911076030556102271889703002499473630659330749656143222929673145033650407955880427263687724710627710805201087063514193683090373521397471814308494032521145198407935776794911661362925135675118433159209776942995939474310385558029684584345820268411111233059160586621757597803293631267834943177621349009619701832156794077099669831250802413593798571680349193225243398266811683827381688976059437735925573366229671321730655674437656829232903971250221390109280966107460402753200062369425521586833411667527032346011579434042086214209534992291548896160081859577978225827410079232404735059170781636683746216626925071141263446422410773951692178691316179868058057959741143493857689536351971917844118064381560317887778395079366287398218227877484815365977717297593881579850516086742432704124709849438466008693172822331899782004768952946391285085939794177141497183548037138876952016795083104130425054119661492260877923782985573892036718586102538527987069403160423462386682265574183039279019526385720627405755015553463495905261329809353496040254680650493048843303856297090125701326441386374014603006885452960066937762168185175425370613089449356383963288688954615234896579905724584584599709087045651877315798186464717303390090841419571744487028361216387013504655297320336831853161013586808825611661159228232218813086256097782068745258869039652839266348325202813781131522426570904356579268950809393216171465985186210418585680248939618433432087452071137473938120239273143534689989554202396315512986651366518578498984585277558357833712774865995551033800920223842484974605644666207257139284578467776008322733632632961098121849037124474162006218698092841447421140237706021592253745283962119888897548107921945784292905422050186263243427150330925758093220834838862517868280091825844220801640183135612296333143307249670340891287525474731516898863986507255109865278809980001718321444206820014306823755535983340124211137000078339958586379831105719153911789979342169088020577079325529596707591256354581661279052669228807007603549842915503266052078093343656064730552112762360574504235315966432847383817135295283039814816934625995420765735354910322664440108676535325204599591217834102756795216334230355554907570334838956022903440398033144061371264963206195501154797260774141722920786424219855055514676481125217156937800332009829498297279566064162253232707585662648052348934923489629164390863804469759760059771177436212929719692579322296062045518095663729819586143594737710365119747028896599212627291149640967264324961509896413088153572302011541548165270401644333180084999702397512568690589876110476974668127203589623794336180557019143568931740567254052447553875970730275620414814494817861808914630187901316316376521860480835393578689257497809783076224139700129640986759177016467747528553072165246425240357145702195186712591452056589593612916105567550865884067276995437151149903382515203777679834736422117200713276504151581064028678325041233087331123639583886154764067821704360141863370984572022846930900069443094310101378437825236787212762198311724610891738342367753045091701859749187399715609016846843565099934563498058418625391632040691162278619170436267189825440854503130705419442469431947796923441523034231305210307469907326375783037846323734298031971597215923465961486440590637624978881909235763953208369540971429297401481375786339864364055904817817700603977517126739901230183871009137055992275077740150518508281022612803433473354371328213121987902930308583067543386266268983376642497254957457630476521856011855409419066063876629126094062366624683484420106474097630054665824877525747799629270242415154117516383824148786248305768588636881246076684106548035977578018250959885323306798507965671109000802729849858713017133504330260741916876478235096283405716507662922807539711297179143023103575755552575927347788641656694053939514920493643589262225867353588166683718834249649876370839185457580175230432515855026337292968271679286279358061682256641101387450398168520731310751991811756198448514481606472850714035077381291966733798744535758381021225053344641996400452540437954443099300061258025266888338095860328613694706579876305883665737536082078183070790816991510023955478816017256306261161934003263423148900140834333230258191082931189356702406141854325332120174697634772415779146544654521517087195784599021331660549192935844446744304096707863401554913830467939658635710462453256152919508416110425628955368049490715840972713886605016706956285917057336984638195461745967316383698156127662365143811506298531461749514299815552878464561301195702464189463348795983226709286157594535185322679516115133396690836214002113318460774272532188860021466644162134120187810643145435978431012603659826376110682361972407134838154265958143830766436830145802301134650342853317538544913956366849262903140217628169451382530924229932028610451352310634783941177380547540977228329594944748532053085315876552744188526290666011988180328528140282405167232551566436025596768274728693719681398429458114252260836829912537589435511814148565913174250887570330145132874607295608609540202190309205977325814588918788457504765681649341472639563294197466561174919302187143855549454318310168920857724750379334052574937631466964128854288605908252245337843796301065881137324890511365642348852351325459623291812098594545969104971272600236943582660582225041295747966230442076373947745396927587444500057720269278201975821706311882032302367880107894708290186379875254444036695864507920637676452600082739949138342592690686191401037895901504365657095340596871831372590908308993586538623938310387459259818811093325300189619101947567951121132084542379663245410901314744931632188743821249665400325071329185562413714886353961115880754395323175211460888623502224576336392440938143815587951862883465246459738286930347128223773063019144352524920027719642807272461411165336884443080812794240028774121036215892745101599416609688050359783221023178402296742267096298130634382357150256552740687773442780143820425591841465259845660002460071458162224700323306206990066049049061360604529093480202862069841807223202138928649621918805790592937428573033264032275923934402020868392386856730044198089265351143843594506272567281865902753524473683429567920501376033543840333167113237732243471687804343307293586937291697826245584049145577376319076055568197612380450481508485879986107326204677737124098369415557099992644837832114157088321096614515406642252963357135613561569737094797988999050092753049842853640335072531781746208145629374734474932200701465733417681352964480290513379327453751876281009932231701577166060166543968586501846669876223815912599136174732920779146646197704263822098125766593278963404086514904466308830832106036852038758087708009669437664398763140427450518149752169808885769840127653327356907027151433939484529903840586353501763343246039418276960724888067622987970287805787580973786731852744723281938828028554086198490420338919837459732295636959179591359889455611516316171328907641406710692754710912537340503178581337641395016227254459941519030001208415044483277957681707892667761203902438764063738995966507522712970867418968284420762041331267004592600878570580120467160553116694361082811989775279838429609284025271852459327189116381472148541779072072409918524917074395586786084662792727885608342832671790925688808062952372422487673504377318787220363576509282468398469644818114897880223573638432258534028942883292792648864316143085184483181794678178995275416805339303226214577525970843319196639118119649112494126984288961730546644330527667654874888767379612675333074330964948928849066137661708084305426678000890029347456268802897455304637550309068947093735352755755552983174658692593225338709504531876552455485763994318235161519547972401919749298534478457898415547159060708426428739830767113245901777128083103636911690046222939493306334660600972310395211941135202103689070098175950764020161832942963780618700637710278528879305096376746190456875627918709490132914053885671403263716799657862174919241241481033673869489546493539908421885451000869270571573878555995348596961799181248252302164155195367956949602645162734124449606662735377377111091791785281394717741999063507718538012087344494204467110856653446248082817074208973395344420025331198816595467035677522934599748644416807631722852350966152150999833341584635950208567526737796175284337162059072989792032178618431208029789621917259246092311436062823473413889687155040641681564917271359152599080741846563631767092511657401651871219697517254842396782262393867149740717505733802610527946021908014763022823793728420574334827603826935856354772638950837625981726245436357759118022053120580782434331813528029341457199811825070085464830331334272574564651843200087763628980640733068921490741098764131974899721244875833142106872522938401779583393571248287271686464283269685715742829931040403790947165429068351740492998528379317652695117864063711737675203896299209209371619691686204114982729734754920368678504772920092149125745732016085131937600688095319854065957260844449593013680897977834742241842314359787131785337088623715807835848372462817366517071084448706447425234682962858799966592521575846172468402909106241426256592934747373555980921710332724485695382354030641119118717917981105026668817466741877152916073114416526317955533947192034317296277109331732843275114761955026764271345254511065789026272588419550330562293396928471451312511477214604903112428253857376735888765475622366592156448409287011701719299932858687676203837074849618798018228836887447061535603830796273374477675260885723936200229789122268092540719572408725683587875368769424839376819067402936147746877587272069276292593346567450380984916078161569565677226536352842169696493857991364983980165722855117025763056927271123986574121734244025583887978227086850860992750356418105580702438607519843258405791470565991330197436886553854993422807368504670379621866071447473189699169963212854530343033956459001166699138387939598829160652441010268531181452968963251531217461198393423585962956572565284516220254433874252241160008972306531107872291866711595039952343939203291716706043684006668270016000752144584936529265407300780528882338568716013133335033582853052133402402044794717090990428741957498725912568057192919522989422922486669979547192340556754128344619703247140138093619385139452600737687323709419767041636708106816828514134446309015424231244445733600314921304243989563460422817152136049726253001663826895052923094905721472323819396804717848344848254304237629966385918789256205821901385866165896058776357326721656342803599676584706008131096196397826625732360934403893901166924804101762476086946467034310565382948062746964140070219531654685256956347169266133557648196813986111920794608169451634030073216305118710083621376562555976128799634291158549213305302252239620548291779342758229297741150605932403548047762400193304425776439407822264990168547312597201943967475481119478289225908845993336354738163967708475740973092824183482666892140586275542249823366859324097321433336974975283432169346090967677304373007447032704239854648645560812269467400167475992506831816707975279413534939035667795968282231992954446895771633828241609703214599292357577357826954083203208510013446828631766572633403270078431159361856979059006165291254286430297000176143729393640554479969914643785273791591426553833671909296081550039539500657306402009157627957707922733089532230617440888065001549484255299978133634089636404100581605300163878150346264256835664331734561571612821529857607213979848542480994153542215084154748273717025936783499671909322308006896580859644916685334812594795350590239751303560794558470711867643565491951695982271546369029725593335604907197609387465090552790543764749540882768474283794168145479961018442135550867472634852484278436206122142388874303381137086975577280002669355011291375444275927000506192883426618177571594610066909442977726249702022955404882790263306374779370649482031275977483685730985326207238662782906149493329561531167843597152263447193373772895590187878006598448042186934088403091639644965011885894003211576264639669171031710289859683723821734011949736207029839279060345425185538345838972426915298723723287195607496643874243878670698998409282063869597415096292602965814706551969651651088629084015155229145890337191867204602999034168424712626294674004078006191640036420569933879517780266551954343861426119636839484055013442891702218722660136319998342520472379057200203955963114291046412848069587175720106027134867226056254133491786540988579508184681641533258239006031363639883080132908529512563944143554624337974572573862967811686116128509505247030301163326517818965238988207849071692554537173400446321920281573205482241612744863565644072317510482458134883978157415453269550619458240363788815465964656076492850494153237034991378833882524425037539259121284793892412426960129626128235930324113314618096119659758371885063278957092252073799329320882131719504994618404046221866163024585894639461767552132295251119203200852827738333842316444192886674460815258180471111504522598690058195261140124609511095241703219523465552262839063210621571525218406360097357029878533857646491140020467924415540559857483428207354819455417794108378310268445937031022176134248072495558066643550791835927925480762693030310162403144402623293404824900690892771036099508524727155909777393645689185425015396942703191106087682135965274322736803496325869714220751949522291773645964634666979281629476462230837518816778202426928655892771531277357512570724283931648079182627943722420762180532690437193695774063380959622715855566009300116697696755745681509171991941072743979377069006698605836869816205630618468464179182733237445308224409051692230017181506913628609599645363007138635314745123403226599236616347229762725191491020960168041326324223917133108023452191798609643228463526081910984482873627868859092001540928633302212966501367322145655232221942574698032757463643327111774382974931686430820812516306410520845249841725099249676768057040969611048964034523137594116597860239821879662172465418899820995128333977726044837460742666503402627206009786299609521357372004452371911302354332040661454238056230445235789726677238696221442686662540423381474058136869607948337858916210899285184440803154702198934803733683179465889657969940863043157979367856059124815790146579434615539610144152749731148543599861391739903125074165627932487235242118223093343188216912965152851645803400171728671375975310762750590700908458961734227475829949424313264667798366170199850195920435865479524387022645604802651572386617074008700477121534962789715060530735060512089322607878037032096742073551578404510503431158609631153467892834454041721188108247579105177362662843319884238622248451994380932748030811486503814518866270774088676631752993649307368710354827067618669500024353289176933415602665703305882619423695769557903339099403084018680233752343270852285256833567034125401630134035075058322125281667055148968025014956708976025644963080916123512654853952747279343203824758483699181863273582377715363290387324349732906867482755894807785773796064782371211073675477131252375561949275078918299151290756991091297146914015418993426923751711617107219536635234612880496597405566781957680435698939942803085152730800806693943110461089269357924778122287941609652459523797276350270479249389154327126534836182247876529674248305771363209391766985251699418533357400732854507286063493298054408301319612743157441651257140093549552421284444815367720895696576466340235760204069762306629674136813818261304373455110081192730508937783398529473225710630990937508044981629837184472910959556945083365752501020058916233166215578991561757743978643440830486200055153637356229125466391372526180128243464065135599516532179053359344224849447335386453743650764792747906923077613924026703949010484088085979460048557974359317633277065473099591614530864727044500665094366895113930821800949288896994818605817301512996385673584104010470874708033973086493169305693326763867719385459722507371577017113809149808692182808873623571283589011100560080556827352483869828476117571594405740596670674721564495331939137030284605150360972559649382158417594293328156162221246781665158993569141957340136978279591682741687614717193042362440370699765258822343823175887934880539727978399700882888854618374965758931593608904852404887440392659103224357919369487221153465119539158028790815609878845607556859536602893234205243111322061992835033030477464065985274644776084358302392380930291206481359160850000270219617869288670418482192262728239062223964165536676306231931962296861980435534161429292178282665152973448299260280541902842912428099494248219289112811918523629989453054118638359905619666328005333195245859327159032295256744349527733289169638078988129274910292357817838924467647595464999314726275894578741764181091412602882975614868638383680954002610117148003729187252346307114081869728210978546190871693066694934750868369005114762087722890926155906421992464900954117066435866133518880068232056523840408618152323697562575199836557604885169596950231105303757301102133788584880066684400992705636258904261943290631650919004763101945996244842905665579878380962530187576729736119570604147844447851225410907902416770749266018553792943525988338975260148212686461361151417209612680304886836065124666220075444052015822625742382321928645891401608190396941227094967909567379110653130716124539036738740742215686268166658374080457870164237619600827958621275502656373020397537712225511020321457196388504075959837176203823567477783676441614926040954463272027955041862506935912065576953780601900093869025387049819695088825477106096245541305948061126269337441469114925931112858854248730637570508080084433954820732221092963280552906122463490632823222575556379610577576943313585077386328213098093886613009602103413774813367165797136513980405176840959304014020282238805344837120447916947175285619224390723932266640346055850034293188608012301286074533076755128595861378125536498635414403245473007679058380976491188648744684971589532155709726029372137065856408857388875002922585862059543558858128655648013833018093083350225886633080417793621703780258846169997911812089908822947901855226485815446211476235082883752645406080554109789928473539924650665854548378139285605541545903544153451833096040832616667626537854137333117585195420723882352702517014182222831735790547123859347118262575983280034881762990958769085212269553956216008767855424164877341849684939656528635123698160046892414131809872870316149071898445013261716268572298693881141827823102338093146813709585066767206884425587068432125469746939425684164041184466652869509701013604811749233022975733548845100625400075569989446332646086993043705728360725459157782520420616125888605314598577331785870237673123619921267479774630637215636283697013679998696491035768023969245928382441688034511477202916482628325825508530242951769781654278015687292761236438287184657302549946560728795326749312220459512569612246072564872277876499820306771966698938665515695810369901707298866538649580253469311541784984805625972749021150159950435744972568455589298783169666864675005306633800111341256444835804520685487599825528471435539624895452806981755524373168676354693902337255973382979604712226654960935524841751724845092300776626510269812537553064968338616405131646452604675625679375934521883227925443067592383515375864124042618378628971784729738432875940980052230549831031169094780152077828622516425836915234701878971819940330445129515562766690958092403988323340664447686173689646148111016240109178473743539221163402921798952592863633641447368313048670177616105175286926906625015453471057113584654626392208617013903577867752650710140380717488751786887000467159818990441363515151076350322944595990634237484809086184425712188711236525468052221861272193373768127892552942722590070652521509162985149616386054918822910673192322883922690099056375914377141990216401621427797026283344844706999393329266107937233101221451632320108647025094405559088967145046829337554178457605002241368215072008865432887932608850413554262086426144807517297442709991215863181857848950861101677709716526240493660516157070866574248411539049560985759214790338244547117741182309186845585833057492992918129126146996080457726699024023791422609776794786016150344396749667323594064427980476690009310432826994290484770368108199628896599432282765429126091326516757037963841520290490566606716766639020552130054873772233919848658431379275078596055966131628747340788524845131718437035822995566322284995527961092839630150400618683477039916036178349637230654783408771968781774562877353217227479071774738009967274874184581293513864920678825210630594150489877774889378366316328670439320989418915177082162380506589432276178081936741525680893035679478920502763309250123309250044223824447581120048966723055666717848827981767321465526910033785048436519383112216262396069384401881226790635174934716116226724949909771794664952702503790754593306143611679386846659013391801321045420963921247509860852146046646947616639925475483019136236192324431214371104133575637453532787020034712018981053182301824784858094561806120467335743333810826557341370639791450150067243125247773074575668814623810558620038888318213216247121394935582639087539575104462305073362698613620105902174499900338892860174798709731202943075842993612776529922500072403521622883394167385194092404620506703157483220942720053481201839489735369907750035553115282867940202504284873610223037394643503502061582670281570986936112581426176859236266289171640963337538108572198048337568767755140893796374220961972656462617396095163829920272422238939268716978126836399278026936838324588347436676363259915607812006899665069376528711894058622289073199533455263531935537068900597571728944525248818692742508366881780431431507924206904445016409677450767074817507966750999045129478995109368079168529850957283887697404547338155124679063045461619205433591878850755876655655634734934373390129793302474061782379652002875939984575570513010047911448811050438335034177177598930374191242120609528174941403811160735145892957078421115761879513167359462909450741561641428385426615520573672714422250331018753714629680065888704404817800801853057329763667406293355870947999793260508263048756461338449167611351154731235183682970512403292537571380996429357219626488146558736737033138444861646394996027077224620551360065590561857628322659161544964823478099030384296700310729442644359351226992761657124460825540005172546026931585377666209536124451000468889190631399313856672479047932992402368125179948087767315263317689237105014325858848672233943411364721226077589782065417228601302290273773807099004480661552646993404790108769030655057089015814237365894645587742965379379043663502100984396070527473482705619035660873835651126656717224004743022074066372123728738850079437096784591642727920448882138691341609076749566627290914255126602167245011502657701078103895355829744152233923681636552481812178612631556302126701973933400361033370291469262589990309405247449725828638175954529709076587011766190907606723178748542675490491036354194779266125504875026123841369670942599290119440414371975963266180041565676922714475515966171620311751388890920606966678938840503702773717830889531082967333046889377761131523051581312491533841161645719908668107360394632292852765210904323017926510287249488156088871794356891329022007415242878517188033780475881758164282234113672230623624057644149775150827428212486608565954109116189858985220428532789501685102504153077058943872654067646645580431987687420940955437366778789530641249473034626241366540244542795246118634755221728408791178872018948378393714451899759003010580338574166408253725734895760391943083966328035217672403452320647586194723993452384392907523211393387700784635483749472873438637202725098558558371312934512832424706560569810115065723007590111925012879113568250386867923094088605603636890724555774451601415979301455850675233112287772792986485720436233652928275608705668092193509321479036054766261026349793188142910599207374499005274766095098871682052014164752256922491742677533105290613236649974008713798091810592120312803378268187375011917877139545191554919119668238367551580184137598225346908419824642239225497606763275878817773440761376308852068958841621157171105047702049000596749190209501019259651567097410507409611151768371731926812073377997308905862058038372618423460182076805741596283479407202285379462705078091996154929042798244360962034240163638528809005328702969179246581507454020770690481704482480892679852476886508121901854615086410751605387879565939366154303769238868906944207853210044514160858419208333334695650709685644666462859907778953673035102958237173164781145779542629653588601989436524134769977865331852453482278132208608204764561939585017271379798350232237789118441007910560582026803655537737946960210312592086610102351595303117750201812714220948236905437212440614732455617136017441405787027659646690363585367399028031123753206186305903643691690095865778248737790614381265250659968299442354377182303151524615280976615116634286334865440787388735045334475659010159954554447271665893488391820333072033829263746664986753514743827805677319247968412141549384552638965639850754758456972116215366823872683271487870770797833374581055980118300865587198112567337666611733918572383977557203781382834662447965199025530238213812885312563236427470014184673676707336090041436884798540829482132092994750342783629940546403966731414623691652414576132251073330322396802330638188111577481508505006955247063979820369589246721443905180819751287242505127225970416179471280684358389690113772014022153760016211840751636252078439972716410991389022772932260025291301833597884785782286410290012551884680955821750200049989193826844506420984881411151483393432620830870176463161510894948377797763222046847525748895646348017293688614184236413679759039366022859262919083380969780300125770563998937471462081728845379798132250310717543115558060112858215801276320541084409785186831997592335130019557398795627309328687154018562535991455193099274933352099226971808205827650136565513517306585043015211703676713146941877792429463651399846831469734789813026659678611578621268215445363700216405020414520235934274485785004980654484170308004026295931239638353415222341056546758272605589358721476492709254706887392391756451736865080477239166886117000929350147533595227227873611552779797618399053100061196492073293127938564237927419961765983263635081179340939231601408581684712748830798045601685721487764635760571805726490237700950646214693672114099020670692847625881741280581411356082877447173531764309336325541497020985983700799134064225605697925564295800821644520232492572001710079495848180874778254152541402427791422547697071373695803115128396916594202301931390656657094505326945498033803100286844373623872312019779053834093714280531189623194773458936926584502052929985736091034444146223303553743837565989820217959207250866749414024853401815619457243651767946195403909323348579008600141706349834743347136456041995353026700269992806001530059418568840649072987108286587794664018871737895090491088628845819330644750399852485018734144331977649750683602267872686685320973178373288462765225257732683121664632233004630019977424148320832272614206502746154396501645320609476797398138100934096084464291105650829555236423249495956554529087046892286554139640622028923015361902830298590844298015207763337193287875720343106391029726242539079503912727853354798771489877748705234783496989851167368781723362589624321101152815443090887803700801877384079457417796428489116525916584806967733672322291026840124776100844516290981028765769541048337022094171791379427871704086211017047016442839994824529789089044311235936741344743750277825464253796737384032415261423089415399608932999755363084615774476436688604773402711793325215810251995894608399326981663670454523672315563359509685071474993396062207010641352422059396516455743233486496898295458186562913083705378639805791038371721546962963918023873894475071100511872045541538123332857757719155777594711762004206642784543398319241883979213395766377786820345256544348330773998541003945068786783730302046727109920378024417423521712715722747990391383601208903700004648357819504457298510043830182599726623640134500609128433505526674314172574581765224543406498276257396813392682326409247305006675478224872628626871577541535673546143610384993881721031832384857978728133008146056266093459847759167136691333822260467198245031766845462322017366687137541085076389555119373069268878773141963773240533091272695926281096720167435864519337447482576714658501329926645172100738468464756752686214672832473820553650048363127466900167044308333263013548414030135179823308898967441839686632788325839892878346473922809227371914175314119201007317061310116246010390486616350380967697851008560458524961776369414260212262192843495402407487235762631789920560949226235604922539703392875985812291345496294333644650512267076418943868111952619762521288605104420145618205707695147356502893764886691975991538381483791061442581889091449184856060232528376095871189708224700409352988815522058838076035791443718724645632607865180435659954608620106297577626943482013747517896091524965463789354150573439969574471841261693991991617748245435637179267276599262705916889014925115545567306132503156812309940389545954755531382601830487864103572403866680323035088205331347273272085562048856176943431706595033325102367477740621288066697884645341508801927351503271682628333400778363468480111198812150288810062777794842482459687236859343086988364074249323885457611962506685194943655948165111967635939504833673924933876193219442630482774877666187468319993189824784087614829966471359532542539099995330004047499466537031370821640776882461459242192014556374975105283946073390098682845255149009878372300970115414127653946062245710866544413494045684190325834332584882869417701816691293928786541410082699914444551914412184710252944729764832118188613646079258990693360538145830939470822739812884735735947882272618263524302910333732523889311193793763413139705175016607720154248595283625669344731926579310068121642765326073492672694167775386294497947628120775563028676942036545880046244592140762444639694913962569992727101822176043162525390271133225544762094897852877365284921272838927172987672531327826481424039373153529091604655388800795490378154950929666399752094091972471593745689182071603962426879080915190538813057193509795405677661712090768542175362952420514051824502811917461169227529497113025979382956551062761548697004193812789491995027646109920944506069014194541061034798905328359067049266979630278626396252433871434505121228903899363187311680732548541498260171780606569011470827920846422406524537441026466839218210446176124549695759853702290251653491211087665667444617217892892500182611125085808688968852632171504969437608720623165849124931924100471639644056437621946655215764057543605702948641201616188548886242953964161393179638285796429908340283675203197493824953265555353821185216909228021332298792928713167813891854874619632505955354245423408332186569420838978037280778249606852081596846789080781927001446119992331854135312867664481006924155622623674455225758291354322091935642335484956067501872801878258060003048027875643550897708440666255586425671068121124872216118437111379026669522820485339207727632795840535971314266499687585238414206135655070247837482292935687659225917137832602184247903672285119629933697245833928167833271204497808303908074378565494365874604458735122235024120097882107948485603035106078334148765408467600118946161723442543111837555871921681259256060868638499706639408525414315486913428571941702932913413866911238294389190771567051271703490312165483866996095031958918553653878490506878281144021824643168875113527438884814187983613696529990278447986989684333765689856975380403538692448306401767411546594364865235283780685066232588323383885783729966285250884399535345177349924309750888014678662760740945156312196419636574626354341398848126067414340631460897551769104899906809389831559409343891513194596291812330251449157126392548328155066997393887496943774267790944533315536527166993463959102001476732572816488188511083688239963938495389272882357350321310749389919886898147490695739706371411122039519727467850300744527810482230721198886227111024395953927953647344244606779776563980667887236815236104127855024912795234517841426816753308000412658925776429723974417942147484913979188783037023342017305754512231816112418020556150655463170277839556139864700545135828961218527673967050387180498002168763216571074104855314671955390376553356375820236885855731352193714971808046284388623965135060502925723729058069615149707571347438384959711657901939041680553114271027709951183060302091159123778817934538918864582590662905227082801368056136330276621389215694639430144616220080206687549338399019969204296173031220790454182698803426070584708777343804278117304055988381325985780392331067374456236315393158939066921568066846733816003102189990016151482263705726728934723627874577753366455704614580508327908635174744534559131943383344395477700062166010937048109224458974319239899732618298173112082982754480112248711559234099266184004793251023670173208335224392620673450532113257730147788125136676276536209349575424190964136723405362193742508823904430157645877072429639345481581512053536633277093724556225970464164815510013219759914398476533443103541250371250741267780132395963714012102469474067346379887566183903886318335082314716668244998789432767339168886007315508297435464267958364399343353997289095077556339704537736031525861458994628849680376460559287870953031659865638193516458165031298391792049268195172249551444808653494536780647025027410922235893984291974696225134046510420592456917329791089062482130414483720018826153900659294003300839034014629775771214196350116045715152518808446058562833491042533082079706773720867978112002414618872907588960574162438886952101279202650879435747234519583261121669523878271218465240582654344115742092642547863616168549413910767742151075583729612952473294000300163887152909167932649385718096786328511838784577248941852816500666633375475857618261966772431163490854540266520153523556415476293459748055670135871109697391150296327371634586754810361844917972767612153380654005093091609683049064359398168218997811566614768583438598796878195331028078009151655834189052471936183729201935174240791940971901293446472630030782184347546021608889756075958687351851289917386223569014868359093723047605425534134872115571897601520039524899012601024453967951571859337825341529155399603887043522522228057264458861176174620287168629535013819608744541934813219766318416772838721420442033267401989428723429258741724354080178232458555922378703941121422617328569058161034117043164527061163662969022535091605815224752129290472851766937346354175973751545473321901919398064297789151039434682365312259745439585102749179874870936367738164672978048776404702905945576753935536865448032957507663396739232198178375496144785038980843002730084594400872688101154946832238167355013807631092806361742034347228047426415358835633087562297960040491855239898351068036856890858930519883289161041072107316882290391029430025596183629291116257359813330027250278341038104754912274865313131742491285710603560264657614269534744245421704930183741895333843356869217705783213830353717995639066469390340718178294809325609779172474847112867856715609235568731417395948300862057685223487944380530062386077924979298637246389480237487125309661278651242500754012559663910566928063896752693041921150450720752359086473869902477473248180494328079075069415510697403235906131764582276149165319245921516925130662444503877846024592151026817617025274942093270624274384900502354337930780839982354280682060412844854473235059873398071608425305544359428297544317298933134663096417274728314387171982046640651177331488678453423920316124240531630130391534544492417825318473176467134586103124307376858439518481200081111784308664322054400533426165252563980370059929687885017727831350399053201486202014667622530113017330037588000137840200016601851997981849037994824272309875505888563996902210315777112901973115108445532664064919028098471389445903512585167628071959623350109017046983993885140328233440110349117975315735543662881161788328421243598141347804302475134992990012440781642782340264364834958864916518536292936293265816020241898845613106374594817556548615513661193696584175607097923385874376009851721435707090988267117476850623307518417462639195585316261190139311793029987759948516391968165523328089456207657739093770723235571734349761341205766227503870733554179905950187785396130269283383095278865708297112153207950792755488329403788066049898294057804174695821692474156579667499859557615681488514473199550544376226582188964369967650227976672039561549165727466976696206058560591938793770619682348754395554142412806321966375745979091551546038978929635664292031193463814692416449264170508242318611512836013281987400733818820169257789745719234986200702025309369931015902797732617287184987679334075992849247941836877386825281664733783043013725697511500501222375861885324953120400666647716629211567887614227008941954585024903597060070757029683562218699623135734810408781857559284237413328309704071340664667353270402001633837143159239398187071879595678574317843344357425206879595225962076981363512712726254700255394484724646557334500632718767229716888052942749370788559690380817880690146759425674810979756254674032259236948445791151467882614681831948196022462125793566042930628437343910883096296543867019945893616128328784787578399240042180657538934773373464086672376560655476206541393427378050299768316236434118184571746524122854061024520769325683443352635055114475209073931792622380755230322681424143742051853569825460209150703016836973296414497093994024368583212468346414531879399239445769842282977202003159436577079143840623691511382010345181852713575680851305089842184965658452422743505227629946707044954486353490514518030246553373028822280189451077256849466188742141236078819014723785570139070896996513882097508933016886284763000013339207450392495690036089589572827390970321722192207352301764844300806923513938638673674908585288506621528168823641532726488486564511798759484239333742761197910599895311131245957434911041227339772836108103178958561948709172433541035272673619930738821740426715972658731631342565344928645102181017086568045180576845807926506518393358477535230536648292444619091569393868797113856099843370297114380546547406267493015522033530564842771942272585197625463691392546530582107277639618929402451466735332701683731642885180057895220196945124926016617985483529948127178967682088956385526555811700507372330910299236508729850911714504638765423139754514927236221471495524599746339357591098317705012789256173296775617166221114379712573624540199282170499355868281490474296694279876624781581013849121733242821978419408849720391336062319610464509445247330036565598581379549976105945299097934059274958725016902711183782498335804192820774972932187041770068846227615355799025935511928404730365213500936019641471140321379145013420494503092463073539137816549110155950993527934721342021449768050380933484553233757939673581035065629049461012475628173396973125899928271402771621791806647242998849929876429360815643642097172601598186348388342991990386053905638494115567790637256127932823403182263687557604806496066662254272989240673743292365837361130895676146378460576118384478879525611556718265566419756912892862511877235250058998389857977155077575337457010809256681361815000295978543439294407997077075857900801193922582066832256142122945006943034101989571823666534630224557038612831566372992826049424012137300393691402212126028273047603524478269912376927197591551703751709185902402821256734912525609973945559223444673720436193344933992822801216643963948659489180039302850448591785572275105757021228506680548792511738827150298140803240916787995894010101417111939665666763229331953733889987502947321634396262013866305185792648648530102771401280291360212300548148747880095027566747509691373642134172976679019414870964435957749429458152710831485174025671144345730378952420498384932570071620859249912020588541998869984111490794271299770745615951804570672134077445195174718081875399986802712368565124611827993068225430819255161355444281633448848260698075752857063757169316735599282344691488495207386999796409954750881413433613024828784088141985782700738695084698250592840498166922497927071163511595278152677285271006636822357840753634575674722581043326545546334428042495156217355030279915552341990284218617301947483854663848146189990059711933655587914070954060041802122838630614994137670704984555008122828363905169943955331022040786480365890827754568838892896621397348731496799572720025508531994943457528522627366372784840929048114839607960893841351822631324567592214599241491048253644353050733509874082629419194469593029099311704644452541196357942239786723384580417997036598976035494881109574717021347859989788750788646603736408722962136146457479957485817046737068641585430112858460823795657812559172719623607492354064722229032495185102920749675759039701068473608824099537809570455380656158177532681008487388249010953918632146391335832238393101763306906782009030492321246510071914156564113717957794454228748038338607040664490818972296946640136829116429394260923263711314129579045702929881489765375353725834747735444166675150641955090819600054531550228122955555284864848381495539404619676373867141281216036383549324270883342917792401443853040728488511116366948725151237947489638484565246387739844022126972707812662734330631648813062832619684480718483042185346395663282105950347030944512712144367245514110267822282626500879714071169275035232950004864302906088420853870021734996227322626538169825125984686022072062095651039343090342827707772376756633054702784549369433728394619460925299832948620769687844779181652320692097143325630681582076677087554481299616266719327647731425117441670724890610707893252811515529301776834160941055975876899359098841239023147021795296454725189275434046719551026952151444202242402883925114862039663941832726353305302865171640652042575180610278398906622703569041537368042720665809691302309501478834566759846280175651875479377262954966422455873074434789345469029378737426459129941466479823630515507817581486951732349688383128021213622286554606994985888391537729745425136531235811902953969333839744102887298410905996065201723106440711200726063410764623731905961725058391714962565747084299389393202130936523439445458807827253554470456815371189231820712506308644585072122511879457808167440457280510964780528904148303783749991334029670369791380382793270279018663498530177564299988592751059106160974057434499327272160345909793277371083148277463520466941994256951368427799799850444395465283406432407395121927378319471428219571785180624415691272952303939389253572844189066749477476500224374125214284114290492361569239117796805076111617560769331923689474296407620394302829616082806572468458741953041589409011117245013627123291744275252336139671745287591138602534246680903542112419561147433644486964656717404720334897262298295865081367181900803367140985900621744362050417288789481221587321982901577193964960356499264393015836813316277345630325502822793184193583910686931925535526852141281913673764441418576993463557342262988640030437091987590936094728681009502052420321053437355474384500470886052126657561209354503712948753183971144234149163132465632116871077715331960446872276115789487246401137981114204500029103846513199857919263422437991471443037142066993677348366054143091802072409084143898644426677747011472689146145478664565337641530280268351411295672890732493437674688911036952706493838078285144409083615701574540313275243650102303792975814032269142260561930713878478382695438147740995222103788034025215142619248594127551625138454984465927611928452858366599216974203280324426869357567378989378330696648429417633780985764740396320691669978070402310996700472151407441899313040106690342630703064193464116707760706337512649281756495733296418786485042696704481337448998291872356915116426539897227339312062469409241842830884513638082314551592841626543096738040887604394062299595460435801112051205738094532320401508275886854565138548573217798643629059879704287555996264830648723283463789576270196365785368231624022933934143080078704312219766505123110619073138681630762833077630879438534748477997919261878331731739412788408629458587284762143263750666333749735638424258386405955675429847274420149951149171988240736902924335580192414231674392835901916926946333988708574688555103791500350526558069902445696201160558618610942769049829358762813334991798969725821114510040706166000287161148434330122234743663518002260077098216279229489549300570834676803418841817883341126459027996698156733316751079166452879784047249377463143731648268963653547555315133893654571909810426895889559901385762430186486474601805418521792872033528771278536014570601166987343644582329761720206297330374999847108428512608122663148749644785937653740883991646678550861334938626048545316982987116894625393979764287518439118463947448381208382612545428052095248244554818193504477290066906180090536943849887588021888548360414158871428839843850905511076909211732045390704930005634091013220698274654154414756446330090975780178582294055523271665378065114801952725734060145068240989308180161892007485298262878332398454258789834947235746680473391086217787489401395322200195521432899568490993607986736612409805965670128724266403561008037917486051904296935882417518428706651333649285997092161411955960614650165402066271106588314601578108641064437884974784086448048599568252904982062751067177682804521736426055831386449083760121347930954930787829486444665127023598118886033336933583605816320882887742326292185725047664992670778415672321179219854911593897511547370468082779844349689340866293754538206308216497117629094373563955049478627522877766561695482727011673570774606797621315384674204759333514855039939609126653824580541247457174746987452214462100672091406581026402698830554013230653510254243813297639179890646270421361087491361909106804906506280909839685633012820297880328668831650036170647550794693290466725216142021048482233199803405170764326552893655497815084545699937559082123754017560826345126262036721311275303846074613191523534855564877098459525401431525562342677551340006139289126600104715992709300518093513906220192315348487411742361648528900624093815925050363906661567771012857350963964169372698479132174650273452532535964057484264244821807373438068186625882605904290099919362331738861747440625883825936268041977804974548163192688191188201120338745045005098888615086107972799256579509749922734579879576944091785412342435183199995081535504377274808817415052847787302237210327359781948732840479333315221764918721014568812275585859245722450491585088881507722388613706568475511500703554781291166951341795480946905532683588533929281267191335530532575885286022300367304747205434328218836678452722940348516435666657217477273062004646334200033713486855437294869460693365714408424534615955362298709382108922985691268933908451814145577237194427083311584890940135535254352749936863288159998545699217942950178297368053657852918273057176763821345655055615589248722206743065339249954667835668103810729555774606166716634981023691466604299385431018702298641444623167864448399714934339695217432793032901703527089515176872934117702091590828160631168177866348186563779464816109514051562259933607011047218423850969532632997801368558705843503655361448568061796159318606128486373363076467068302401293920573985277812725803090017563741574984608415556704108316380754821162295589685554427532710428136804633536129497047839687468949776612402274690234278008062913559692884755609911884421216127503911210236817081150385279079565058518346281650963642918172401471323847559710246543310835418076547718668801734166075618251281576272185307215481340625179013127235725555706651221364070859057464508073385637230843601993187330217879350073694071949209767633509371176150006882770583848640507201948232551375618432081883558954568496550209538545189368275827527685714169442416560559998833547362729833816106719873054836850739785492344693714571406388530137073074566329758980171290589917640615299871223646715047534068746648593391350718147490113199402675314343811025635184823746879699871514675694200912822887552891084070819520343170387653049645248036899943094393912445621740238005219734543481793159630877053752079041281196242743444473526950001722100980142005664831140076092094775165912053668182308890833936272179604987430666312761390121420242558204836211193020243492111091393728960003598914715249251522814780846591063945445445875557499587608110175731541476556014788543192277517931395956252555386711860584909151574397314897045072222388891643619346743615518369828746759635865756133963575188102215452039667199324581828040425883611019710573914784526181842351057446911648711838849424001998634421573437079035749987820319640452371176546543774751176383985483113245239927215662684802579149837098414024342766419289141131975284075113127404936693724648243271986921312882796166549975428877296228408651422726177665221793919751192020358807179176173519850915328741990392997482209361292996881552135277847106699416657515718846954274149169710812735421901926803506532713875031148255045330291690232210650812909387681113933469174966649586842012614645458487330043322082646163067792284349193040389844690720311131666698606158865671929032438112442512310781002374799742427135629168894557080359447727541023757633360006063887780524694352324337192982956463245590563650364891428788839254503004558101734059379869755017566484377238735853969294343183173025069589859580904098015344337099797958879373395177983919599473922076404828495316093184905537969179076748591775937355539621318226674156658624357794911520151255776367481390878181088847228399906497612222198863761695960615767346073963388370835705357276011484190290120942212625035835570318876108157075956778115535656534225621407235266355916528895735237738506319023763938242538876459710602295075359153449507005870007072494484893096033742739645096412825526699043608244075225834247655083044666730215745527013534227502750161174919967076425919949041696938820224916376249459753007709165158976821489290795040112421431863804659368966814478799768396852956942474636905519538092758325808443547244540887861895433230372452776123110715097913345316821836141584522999237867889097400351787871795618858352904188521770525964635087749886912179488384495914524443748213120846029104149352934242662851025587270265880875151810417147319109388346761271869624913922851000445058361921239834026450773176983806731348949463364634359982623646750416054827977353118849879031216449883706951098607431591093924978187510998843468957636060233820430072875117407062207416604980115533288581809415847611579968699050523692960454986391045619260030918731464689765075217698322650551389729092064199075092092944133482448724995374213137191237138131838880006976942670388580396379450355699350306462850723788084721812089206477604173575764279465268114931574393422094868861348443443899282654252218145973081176957498491372201697482657379034302365284456604169516722313396924872340763600215705733606941632846111076598059910533857763988240134694220893675009303340268663342951194162761028105939856466204314184504462514840950586416266450705157156005061378139432986176564811279589724508083798397880933991384575674837910619582462491601938563558779910908364321552256755391674165870979962971573377295673450377515304004460930533241610215210747881565799396098128122132760124784363943577301695677332024026566195572310290077476400983238927129299836885931125274320965738497007730715879942013101585570006220525355349924572275761798146143658212899510583506368750947504540850476095092563840326001318061501795291399728636492339126706583009444606656842977137563856406321813754819244259073138711602076944183190610975307888485978917024525381100691681424303313838839493003074927625501641566382748293874076753147145567247205363332459019343275356583636763882271309029914472985893776567152952870513910100941930085447772562915899856918601258669380043723746373169295062907102991615068572069157172637312710923463682826658345555689431604900610454405413432728107707043518494766974791448494556289525839273408611291320520498640676015579529636437024760569182400651516818810861733002586777959266782288556957123986916862277340535764914711447397575451167548972323300222525241623202461923168587326344169373788474626498569195708504764047182377199544478716916066546632634407755261880338713399441347545855067877431110314082268724078251872935234501641704410727879200780148010413978973278147015959892850337324099640060525421017399066024628259621243715559546298981267789482659680358341249317045410446280745452412600992274584136454400433801963977627283680591304856920183749985092430831662727926077429759646262938471032482342500684930236898353044483328443217793660913402574364839608084685712608132519021132217418224650636669911612812719511636963550126496817946623267812981723330690544483654625235069375039727017320248188738549799147570370222859457449943190064736313271796436588605202020070173520991075210955527592231020498926771928194287764871992957422683575916748338264165476708353659237343551361105214213320475966963657973619401575114311161574165887946660061287779473771606665890886817031487867109205748070456517647266167666445444249991345887581681896259939074250239797573847270344805018541771997110568354225549789895927346923249666679426402911518553717842558734170723264955372145881455356920768282456405902367057174665883393583925024671844287838659149712936487553897353825941601243725082788885608074508643204443880072449875252336121718500436441445140405125479614053945976391639375329927690147599620455918134222460521683773803504720268859274188651002725331349459743915705877820553218391910467379354761490805697420700697210534617095753966032545957266686124031942979916582743802242287381533536801300118653160263083313824070135284562046074676365894215287973234244370806878047149676871595705906301778188217853861786385172832182360969459726783286137680183308496636428601354679482798196429821739030872875416339242855595969751780662697767057129017507616053073830835537109524752177282540753776907598769339673596669986900139460740621375027747879120215162374142097317020071675595787233233692302632166465642718366897440398112624514309286566321746456624803127577014164739505694370365228731324202563045656040782453221933745966866684265942188420125019368325427855239334941740901420930353178472572567916923884910279105731900520484485804849863458427731940581852853333928969447145379693384587276179290955131068314740039992374113151431331011427833491977400969649356677006515464095125080257602798644597335699441896651343061514254171460368859438657134892302930292890972206842882721768628812508473318953898845719068725601780996833362183990535533627905168374791560905292525663624458260628871347379929099844702952614391551333648690184396203189223631723551258510059689069317312385962388283923477307010079688639540801536234580675605885982780016356923673762332163403404003704445718633397304081820377137892276605383716091534809580791766966125342486769806159520308539916374367602725293465519282673565892683482154568072563206329353273108998048199510989248591652735995190544108064690522150709691014136772481101120004192806755295721374167928448108693580016152257759542021696378606120599175052396366892339728393170142870297200174112417569822960472987597216235582825954149088649256631132292515131157471268727177495631600143062596110868936801692964764987453032942411269134389386477588666642942552760432952752515880513455017630759642824905753296199321844965187237535724247288494496228111922205459010040422360090553353162032696754108675729910263041078826132164287388899324059029855504049002674345039883046956719973625938009863748983971086249916046703102531764219684333775739422139383222783984374101877856300671628483838902793637948972774274927999673173892208057924889684489617988500394904849856965319883124839729255530018273263755744450397783639735776719442412420657050461786310654605519094206101227021693803037532569695774238947291890873010225934109908944730641003751199741551841934837434833197128299836654225255415920838983095287136052847126834384421608941529220028696051544947037158554397974204216479596803040160321826891310039693838809465943617795361915455075300703576574330508541750765143853493169232193042829898886989473973526089035619389779067349687975846136227769057508844601420814678186201866584778523744350131201856036864672032600705578415671946966691390502595986393149548960701917533514930122339688827653403657467737906062665319006519817248009004395807898931702650371224045969721914321991971269556717375726355044002007918357167799014782026719370622430647600503175775996034651754130529683813173726466767483735274021741863047418535095881688184068515281462381918675855809339394516817476871606955402764741363345624771615371897143988607316644949600411691226796154334253699341307137084777508070164218695695539429820074460359366144271871365351421200211405364655882208399372663660016067625464644908073595030039261864307683193875421027761426789848922728470490423832161565021863459968667635293735641322756558492918486347738228542960858509465816918631426825060917473614849534773650916919920284152180421362738669253495674998380537918095644672254154787553576074290860592589344535143001513685030314320269998507037674655467923678162650585111459168848607581567082903631963738212022656225709968487377248912499628142650022614341144271356660302226664347455824457491540304562828824119441788939255362145425218280285949199720530901302722710336932035302600179729431323642226456809172387995027231852299889365308935198553813726668847620955732667990222898860265614023235005585247142777811586917671737813165896292695664197876184235921177036623271657228440492388316969428681504199171397152378373360509477626882343348265328510164420683874622507887585090316907603870156918582367642006064015433373937376539064112618610570580217764529211118823506306605662343767035592801883930878309578387666829401333280521092808823555508970445341144597259622370554205104872642679770745051712467555849306812912897495786203362959676302229253036678371887262445432439056633003530917369552504382362484999344262651490095246066568052093052501741262636467526877744921341844393414774515728239338376920558699791288637649920508660898140879679025304240349162928805386395831787618183333592333631261286003360926062194235638968603615775678851991504827228899652088662655679826271350712554676198495216752457600503795276080866273376722950979622110225058784030108622235842272693482435348662278567330483568776512688465408310109971440024043113963541818545616808578450642250179450951724297802957934285859251262697898346568302268103705416468839351896530525227738141166979212814139710783865595859659995782854025048904537019941164569183964125752044641141084068061844974516526203284028693322204785835019358238342796077984063716913465492540707768022475649055109194167363313074773201335760101922232031676489037823781944348669563060068880686673087348936440338487145185226416451599810126618897609843848042284684747412715634223687053267568362379442131269228054605297586883008522530342955134170087147742521154523212683131073890431490262783940382659287755805609224828135543458916671126435341139415363078330905635320203481415742501458802803534273937203870540642381144032554146355448212126134246399397540396759736546852216785659747083177470552490281764232755980882234738833750943760885336527393764237559073348189801803541754115851854594154529199242576088452612714393480081991566472290136675646994854411612194885506320665408398384964784866825531044572474501915194374858447512889598749675788186438031967573306727203400898716237678021787955900579288094371381025522450583466373399102256999612982530505438536851421086178664632827991148522427510430014005079651931389584784993372577028485127743331908618672820438414969952329743775804116535715839913534753158625412970463699301431197543204485004437807702117396301511209308935879148457919832847636538293846738559730132841345902676620288905870320126929588649130035268267738587377512403102969543411857203847139371487945813852721427881171921968500441546078536361916710121753598756784825824786055537728088949085640345887126875072490892893117221107388445062632386090332244609884051518476958127520983562566024368206283865865565065652864112625870941022008916997982999398329322143452367926854923304102085487543777577872343452377691373795661433458165743305924546326460189116567458263071696667882884492963952750571101400323596714179665431506709911159235013403439859478558398790411610526887108549164830710741199664196129739150926745180075253461551719301451649116275197801000276677756941925161773031319331165810650300116906603463580196686914714367050384464427465537224230170457846396453126114075768070558106627860389448361646094784034390714288258102411221037324042630591145616587851717799238267757835122812206337898318921123224264123672715379577279079945629977944754644533870773983761715696156651444548822965012261182083110923220406317197540904859668648187186933470765586639857579926416165948572276061519817035606037569151600515133385118146284401907169832516961486524757523931479962928728229738501894976814093487162202645080139849990662920567058332833972306456265978911427770092985163549719592306470220909287327129176235215651270575327927853071861310662824937084934259553252611549092232039377322262779567566564961233467193450842377021198730503312169477685479427411123262746138867241888686477376681036754652362527322011244543608430321810719126609145108246855008564049442170750916705447355700932063936690521976581053673315880053499259594845271127571488671645944167652965309470653148686608961425379724194094316336983931890982230366896045719274569859427651737685313151759941614642392602403228300459956651939025524022497637491839788038803067954882320409501680358284666909679105875301051832471370354199593675441770023987463284042823965150626800215376933551808524338162442581992107617490076847095952412633183016809584323399831070132653565254162469725696695086199312860018056500791438423999546227003825345861988198888756088663890611238927307938727180186904735066455868479626104453073045196873971401354700050819298832723515999975665712452107921061520467009802414011878578588529680968983221275249491803987483524029951636808792650671649153499311503040460725151183240833404472014592633619610692320072342286718808642076167442489700424183467213000293666581200727727042678955226242835332407737341801603474022504497194737915526813769674800850922882043223194278124667365525955398944215877779128204674722487307133107244417323914736728777139353060597924100653816896272095103502858502473186009407791999084488475450169470745303451953084422312853261265309098935546532027032604811829330758187932705108251211836472191937594870750407899522187329565595697225300617232626503265403169159954839505648458763140602758614664083382685129033941186389592694328859955585375711133390506094744035017642958412881436543349047922776733903620389785786546316458102938763389930644859673051633051804487001724708694732907796121964737795098586792224615536236525775055090674585614007772407638500571922958480095029542861823903899357539780904448831606596612613942486701915640620009669275462788367497316916007787907709285543285657272570026219268761879833569948234243191687493488236157803914670854623968127323278716307016947807756851412596194437331563034298774595653884069750255448675294557638971723426996305276622510865414418314584612165041125254900064159635145284708820341474226358916435847579143644626460595941194078394031975207768949476555701580947791259217797381636233763525559317880365487324057304986635766437150268729172012596039385680507905189245025189669029084661739365005116147459092323868595951710097471870053063605649948057901905688054806101659895420119614186275682971001386647416180669483066315741313042779054668754487326806547083376456573748473596665057441589584628819772726006947753760754229664359657968877760754118292294222399297138026256187307762852354533688731723596520921691595631779632465354888889695498475153289751914241848914699591445469766457908594795556963826947442944471207391416589807120810718257529177020107089780927616770587531600847117855319426533328758679178709699704908203249210078890895323098686701556096612797431865436649391790087057680456739491755242294566484541500804315254133485695054218109560600518161596687468765578789710155616593796465185529272826538669173551724144305483854399373971749870445794978364998008210927604766188216181187755668269767632166100798087466895782692509255607604864348733597590097865632802898892460228812942352516156545859692357866133246984246705788541407996948851626216992808622214836667301236946911593019796149332716314433495162684976220000105742917171116320652780812560924428933453788210878325334773080568014556474051238348044050663886170205724797113700892459146384479140990574134038094303334649947941626152483243565415645366485233321778379997592095128339419063619026027905782637843367933935445445377865717952155960011022260000403642380366383661924296819435438400552162776048467543470347838554839606776559781205447605560637320924430320063368122840110195792497284580225397978305013787891893576995145052861750287765029772115591060984856315452601896389385126573055403121653391739041426713907274335137264457375285434337202652446631281937219511179883667701118970786033210959518391174925390453688837592953891175630123038933425719615939097289876409308474546353782784045038896416191552080080880235715658381996865305482729363276292015076440090406997022012421663610104459903061246228950603345449399789506605791929489813311996573550588273895579448684365315385620161378444632886499816759373834002933173897382381997083525393854418148558368245649294124470527780397446093390673563999047468459716560849975011517395109929567446022474965926245951590607039915311391048196341435094130253554418978609588500939177029509274725603132229783584743995441513311144319212274553905032098785333227112018786330091592055717334484558497005903065498659543006430531100054504446016274959213682979343492289103426164779985359851490781980344401598549533775000536998386575904376186976455477256119922598353333047691882824786251367945916509546739016047336635164827199287454937450792707002677404764390611280598980338439348293612527037345387781426893223101367890661425979365877652965543133406009095236844011332333751229978601910231945424432301010160523724978013570138179126080055953587895764226073127164980901944741761173653323854212126562020752070677045345973310789113435945795723818113790520898259076091705862289857011126175129139774576238046010930145910831205851801318577664924004451362911918341723088736954978905964398632515938306633198368976177702349140415145112704510251877475938497121675452730870224946677747379844271598864877382053104265647229956627347461977337034027329353971394337554615338675809637570846889388119442566244277275470366922429304526247014701714830197184192677152975511356767197653158986765004382414106491826630871176734698436372856839513639438233684848430459846363785262559438612823381527975893235351561484854021231187167679944708609727916858707199705884462098624592071564529193428625757423855001220024912081969703238823751610436847964142123052612615867316362600764916121550270545762657908816236405135465082233084633609903040131791130554224131439483193813954647910853563104267485705215963923656288223727845480082931466935467015091115693620273221556612166548593095441793754139580880279615477514649974265856977582430995432191713937340022514487603146740223870415938212354965911757029013794638059826766553369809678764457408222733138470703878250632831793805959502434226897435507077805132991966974603234234018258034464261549686605718749296815414224717862729997211057695048184765726526910363430791257291341405135819079943965962476262651754874508728144815138113124567154400261790410842271665484413006394456759912373610076819671392252957934595204021647956918450101655749713323537576571780144440213037742618019545914232759458591941169550698113703272328315349890507941136883238692262163086806621625858685210110756615413716260066583952456640740141262788072755788428395854545674934533397602482687696014454252051325268384868200295619047260414020164998570805151014027482903190206471157221529725087196457247545128264343432372250343531793026887906923674549881504238145747014697151156626868488930743778135465674965739160219133819076130305596658507526345114192826516356103293595713836740545061284282181224953328560222625646633564144460454957847504333571546050103906849382199984204318826510511797795284117186643322484281015545632977311497989845401537162060991157458477002528045918540815273236211577005940535808312270119807548402555863100199772350666093369363455003652811495625670412087688999354743741425564005788838054291204871079928153274531668509711781327447853615781488554778658889709591389337847729903628649149747558539526607911339599398157025236343227766582376013222741418555717109924839905594159443041353485925269195019603849445929160442044770588166301361537582437409183362641076948607468199494133466748827174058669765770599593709233284608346270278496321494755800950790378304930104097544473030135738333117063710696733153446781264026545457934162593584204820190982044477713576988504648600428385488678124117745354580381683970267160289469324281709820991379592427719373294650180986711659641177887750121194547431852401225008756543034023438952781571407745219318241134634049786859564901060666210459827781722431166238197497812538741272084851586121301217763034765800758758624448142287453567518005002431162289042869774684813808172861061676731436072016094086615764694120914335863114285042601351111963749137978204465514125980848164689347302276377513722744328329286207249813907397400385919253009001836747761129132644223217589397869305609605198837421910128720975010616293566118596796154695422107040973505454809640685270656069598759886809731125690574219787190680928519768227951219584267603173813011916205698032778750341627418923442548313170709680924047579767926993062854894742550445059591378869657581884140297790016922449898346580040475616532854928437572579140438719160401925644276504387179226433009070898175674882247284396870381421986443616881344872623456634127660263078124311043045269892258303887500874989199270298453713609845471433952100789603012837322250608273810553502777300918399619481830003345872659191786535098396048896139807167527054651912620959892073232624478614856513239838785394575821996409599705616111094059078674834719694692429176701301573901524248545221243253464818656923463263909511348157506510043749896140482670280581843042611253735127104023374296019419993157973664021049982877620619234624411421929213311156812989395086358153262193273605247369596488756290705342766999085189466251901567934464092851725523704020534786468732766631312734734100353290163937592180223810327623634080214247508972636337723057953065951062096106550974780542234342976906763372034999925852243482249752225358674206993888810845828645902083929613623550544668082080737483585974014139748277034934103058679379916677915503734913191514905450135466345180987002231804952358448718531347967739331719328839269656218055164797108261558289164281307406320806701158792486840910670821647029971394885040802350833922841245422231655688865213257997984493227148404663425140950982503323434922844613116817806751885446602266868920013332161463990937526328805246938432211303679286565305027834579672589479867440392542055285510611059850904790361367182658472277629578994626887923754083982558915504193941168516002593074233930916013695978922288257157405112209016430552963501372159710472824969722209654975563173449852563543691533029507576194281210269460304948080889222720855168949559702898491170741142746437038189494149230096886999981522176613658595307758158716069963692865225151616005185402735516171286281415003293804027053529376269284975274480227101653135174496076037081228125606114890019464235903693995337667085092587490329618100569742755384776505775936495946480679578176179730714608929016684446563281224627976947330800620586771939909434494224972289554453472444525477237788129366676893459835351299208441786001893848534347568252161942098302594469554136442694307997445053898076709374273944705353662534700391670414696828772363799575391774759196982548226549698391820179758582853711623906952785313788734735024514961705274219513778129742003913100363073962696754725268062741717317849712288022467118664370697625705246262703940632384903572863901580415292713522281936021667863013303441206098152244148421697670731150664878332869073412440425042042052408971228754550361246787022791061430980211803867364713379711743424004056390692982814950375814640802650460933814715584566969011490939956141913624766395731221786212283097859249834767041692134656926886325483353609721819958850081588470378023742862903084246562166625583062044936679850441946895416404558145919686981700497160161604331925413913558643724015853561486725461044600712184659318937906409059929102346207521674307222624701508012433456744449270530765333052679453445724286637616355148214872482457665154977351387911900320495520169048288626531590345519891628234662283077156112081207132555860546387882332258803271858007250055283240129472718785091895001105519094788573426723444984340408596892049460272894655205398429319381649697563727678421122188718989757874389369688616408024948104785147037328830385154778153384362518588080070344281653867689518687910824610500911059523312653865698296307077133854651223396936194170995122405098626697925873728108484112284042833638858204115844669469772869536025673670423960367707800416777475579337390748712496496667497241269614470208911244731928542054261001634791480786414368654744720899434005793594882539001104022050439847466894621422442818611263705156763936200294525406687332627526130994559988373823533540254708492791170220494996291432543809743159053720486354549753618815004096162563061098916829637697869284348907413582179583648773056177114121376435358527664436328620940245939599227521959212560595748199765259303246339711596859270368415415560340629989867228290623448071354813022145450188630481674154763615635150219753680755302470166665262011774655021296217385802332859401682380588782300242438688267278133275396519753330748317996213272170730898893226217016390190338122511391608758745196792337748565261858568374543415994111049796172819442482781509939641927718824895823269988769737888238607022254075860396381657344605121880614553694847047126224249634316580569720944898493403303155919729693426297020402869536787943625084451653894452916773459668389242698022323384621795537144137113538205535476271244116048354860533395350010546930992340464210144073723341425904612101330581992110293363900336059250701979503780048240913130078595674672988132502228372940629511062183609086505787989743791223252646725549181358814595380035235680103256099972857491012377349289558378067278403272043480886269087496478175969270106208125536481345625539192090801060827585508181359365320214762962852732004801151284901999963374026324368409425925493971577123001089270131122269754180887749433117113529703499836922196864898801531810833155418653675095074141593090886961052396007238553718030772603124081181441382451747672140479170225587807515549180012653069630085884528736389804269238516417339971275087041355523076702933463719274140105576610858264939883087965802697544574482073124825745367234362092513354041232839121539473333673872736353208952006409741518536152155337608358381580064767730919916834698386439864392421272305304767443673484371211212209290067621975096741225613468365937993509564339471182156357385084312033225728996101328811778460130554045951006358245730241089112170689398757954931306520863856413347891278958038946859498406293498210690808230060645133581361331095461955053948894754983629540957416617640419143368272425585030042791941524828264372027758215560782711222665110975883015174183737992796762145929628015242635926131068454780439885760861284232369452823484692569526669248344593320080971450250426729257728947994827734832385950814840833693256732963377563013748795732500067767752112201533924026175053861142097413719594929991238660995265431492787200742162033830656406094101129574078458351203554991126078445259750189986916921505563687589808853024801195060497789281523351051765300858574825019829338199174437837322249437519515923939711578052175940605904673096847273277140053487988832788704103005504699701395757065807668021254297420935406691408070725586428907082742711730795289192632317542745923260512414009365470223138548155838057961178631315459123185123177066727743525530262057924218955186439424572189371978823929002310605514819304410132199010997597852627436811894901939074908335745456358583939137424207612125889183490050862767954349369828066027375961645436687907402181440028376985679796899712400404351751011564765985896235450257282271248295735786682882419897383513629859900977135719885783951164755693183599050932064346651234823321923074133686754564827950358691605304312565180137416006790404228363118066624683982896938084999163898361523509554464129370227955160500186243088751005064623948069756180768101734601133302701143610971047998771404811174666004083914454510412847792943442135342190264562609054621193255194928366835027825946416636465126340161296970497981129622834253670286807279759607945195988937308009065672281390332278441740793818074867798859301161664868784295528975008943228317548404744849738699944831630226228290677024410136119521262843283564916353799594124255506104883038960804121401622070332830111308475273433103674481341532416481711675552043196311301191038458073874319376710987222308444323692732467955106813416244948502764338864341462429887710887294975328846081258833455336308493813329753006050870711513324987179985062703944845691524782802549694273056528644051544703362098647783976562458437910081483236952919766156442148721057970750998640977778518182184466681777915701743346802695317707732247739667451689846289043630786213568529619655278666281256002159999836466578721136205779274179556637230421707607637532194428864549570041217488111565301014734387756948784576885171380290420768531231795176227715345104761340055005844920737187034922164308206646830239450573498094024804591381195496163363570852365004638589009459328164964153569914680280881390188256228464700087919423392263221120954164244696950232822068848653087006440314866439005568116986532098502575817635580537572148729655908300496588572393113977796887205397002852623936105344179333327661264970988125635333221562617579936752892256370946161242183169838182100006761265213485747756107489860597311712568014519764876186222084373217062847514298867141333784159286368672440045208944066765181275033624000004470921529087612807050465985627301809128479617379066436486391905713845634044877393888505163990305926653211359344881212886027913356806166464258837791782987699437869997856303334184913895290810114848722201753625783142984295405993638782143611550479058718338271732073983572477126403073912629571829839662355854183668548163874689474668830689980229379838875124080503841505325981885150410106292647904634433968265626807604640058041900137831367079803797949185704006309635956286666651077187003350822963845591494721531125341047433738840797083855297160367511557522309993734132009622380361892038070135543426895232946275307835679640452737695242913343684543670520436395688326504065186954801346065457289181514785178224273714234062621985181524851297091640477963174063812446833225055442781465955156254680762258175679142456466620257800649848887821504228858581425362012305280307873577242677580037788737598576861946675045019967582390610025949044658118728760660923133775047017980368219461383913686455095372355125999625746477203535916503126075980199789725952976759558190965687160474059343870081350414583033593576086917482448133412409699520995354042281350724025535883023423625488029819765331974188752761526939881297109747229819063990549364988120262304885076785985175057238121225416317572924888585918430857723488070344925974687577792985194160377227798013753609576657882601686254437958469673365087787886405277528530793577764521833982359020670015866544489856005757033807322516539336934094604188702506479723683932070775762768258146058005944249804698165178098367876813502166126916536450613947383340549456997253040272625990620638884525067159182506337956291924378117738188143825976634612621452542442494295112799595870144064107202573357734768510375053173085943865091544758446741859564633029333045433839800801966919571625966673293280792657598149862769718208156332362165828023341482589645422329063364786727524489224162556176100784682396733455960851463384197726765798396199915793690489825078224068294900890144884995682332934497901929799429081537846514664285240038277415833940742933279253125252418978486415238763497075148520870990478505306540919969198840010807715579577617749421727931054358744868902106455924804022823341909378153054906450276435831146905970269399482007696998513109663767154496183253517752715898985621248911766076802701545090843010891423668294101655583995391253629239826520012420203443686956457884731549980661564886354006578054043968963244962473615252787257151776171737293165095775739793053178004082934420012255966207173051913148850284246486370205296479018700838291345186061565909405745183158398404507639106203841986438455878536478550490372665371147688537933932693856373494978354900677095850180205221700655905368160099698114403021604452579538093465168975718309866644474042122620789235100245492542252541750592403808656885254113307428541439290052267920538890688495482097009155877463453877147778214372261052072581080701237622389276379652962780015709196377551944546497112043329315666714349391791775195363019930684547968671438568975361709445370364772969426320204415817646843896780144121457693469578004049194515318549505044281722474851626276328529052282553197490646736545991726465120992447586346042452596147886504270880960966106040597793797958446647404875484150266105399545616803773149547425987668466015432353826044834497702739702392207637543210896052718813315553180705106062902506436333318859958109930850270417917926374556593770344734235888288361290774934833572307192641270027981417553925629780133492403258412485874456078024495864531881392096764832559017859383763249559389053315530841107218277985428914039148852083766038600840672790558090519949314812600959635757172017444465548466146080549690295052441171783602830710701181725709477405862696641718649758403553611163504773505959421606266985726770450144407666663856525611629960093515048738054302630262557929487733426560567065471577425301923269901744685831169207979863096469908755530194514645932264590357657883700479502764182341122298634725539900187843574032881479964050664543026993718533591408606429862813187755356703434785457507647804664305996191986423916612911380451661986322280763704906033774679941260078489696752712937443036273654998783549502525170976485948716729023309264915969802999720910426067997710767292347425976118881218421301564594565787909081298922972862846800045690404209583702297653895426731870647560230911117086549247604668805409532296693712131373564481709228897817743226329270081602004773062264313410864718755407521817997138818920598125163410171206067104975768183019019463642647082720249959152440619054500372832755940165454185129728663662117196157515857954225944549800039455690168282667421658807691305580561460352897929071614791969677252863210851532025772948872452683052498428999080032490563320139078725032117388234488795167723488544400016996648804715273822794265094378953502529807180183570271625544746215152494159519804436152756089447165999816263187120959627042448715229552262318447066892343111905409689710523135039245744836885902412237246886101643575969128796532158123150789989561204190029670392666934038090230316461996393098120876721065769152497889965561519129129265999021282169451569431968293234805582167519511531188917303831511922925109243468712706710616651270028738712354720332335540521958555380539081074871060981685437675450316557478120983644430535057277882285114048284311981837953211974768475784609058239980146876079959371283023049618720754707372519736845655680924267348583042222847283286988108425491373216371404270101748999654893410477364535770734176551995782178809620800303132025186161550187213996151407380759718722528247724283655746857617941043371101841203554698300403096747614293542276611669974649792770697972027516835354314163162879457511715678790196377449888415186251539648627154777769692504258208502105900831261992043602696484279161657977111992576692333489693944341584611859836485755248029928613005926844012999175485733797830933246219473249334604375187318252264746017427458391467416710424375817099857390022818749382376435017369872081729563016918713705491285460366469688223979298610179510956870921107934395776887482045468805941108228593806876600645661628863059008293084201950957927365213774787978209168043563055046396462505386049019920680203762255907820144183922331736985481842206474519440991829082775971861615726526639226628658028769968118064838830413181592698946819723025716075004659536019673570948693767427674640948679201070686892043543812567188879522842519338685348766841399471153559202195389941334404537748470514317832727484476329236175881596134679324891786114782169410958060784513376846571595989797198490150252315642364820489002249461419036651131990345010091481640764979723566456443736580484881822531610553254653785512992153391898113862786884444341677926029264503440248772358289127119694196118492755942865563267994091624329427290445813092655981455061987056397364879552278000818737447289566375101444024238824396622553463881324693955810007885406451106091248492006006242983199715158676842732608514355740782394447545778429651367799700721762724240761294997047689662138724629916097284347797380921665251378231377942756678500270904899797758608921786616903564612276287526775029137126421412545104313083004365385269781878593201911357554819853793589391348310587286681014185244230059207541557130192135427570397631812163954189179958154482993548083152028479161250322606016506694959582867485295316520033487734087670083802787842305329870909441941183777530469520647887629876331944821846280499592610195859325476207217543974878166635922925626706607346360740829577085351108997936087750095339302029803946195646902915243633951046547387283709659628181440899877295493900095653822265213611098095349733079140170081896314695232249800992948424772958610171206292725947689957841675044711442935094357367784846048589208712663171267674314204618760639765568312701346198157081808072674102536923960909109401601190831030108963329951803324118548726758175397300145945863291232961816070464485586602907090417644452648973938817201134092414270388118166272967212327032029128253984926303865317823306323041964474915956502028985899405451798775550613064961078823529192133887610773706230311350823872591973204649189986957783967088205657311696458007933651819666149107090279191945663100747425860495395419437730590990922570788487176485680565942257401938914218974051442199362945579088838998239617844852542830042743953004391887773507404646524008627335024275846216533381007423478110415750064502756033747726308314812418964223486728886971327365706323365193882976449573003466212955232314974248731352063588853462464281303681813994040018900512321109586403307027481862273276840618876099899969370938164767451823905664314105180157078207751513079558058160659624882984618037581219663451491362449806345112088111346280041390297478258853313025203710824858195557683240649994593341790816737224145912638131245607843775210503826571718432250620121199391803149471610671190282138897530893991240444211473878321486061610549611395173484728072740574766471368318272072278535911941442309089182902888711710565240342870123280788628646015493255083758844198913796506029392569610473051324598048976402591158715221984296298555610364637551595130018547241280502138931511449789638721576157279143653173134150904894720147339740777892273120444043466811014609434231522632162877877843505788077228856479833875183659086790703802799792837304481157492646578341100356038193686356913239392490996077074751517995993371454346532701154221327167550080067140015649339985719720863696492587871642731775526079368191792443204696863948923058474642441998142938681053062695053645262706030923147265081722638082345314687026315130268142384955074568594506029433415607714466730101083680249733333068697781962071134158900981988787733386445970602153018829116375584884147830237514856938577195502019873368780261065970718263119849302821325788704434802252524320491340981134090213226788878026662310224953645408929986628248286771241128797813292012958928549185741582930496605650969610081209944329109203103599328968764386516759974702664612179313025323871686600481317792640404581072332829390959955686623629206595383163007957620455235854529762188251699934335940114353363195142095084108313586458481810011945906342423737504862179233838042137058282984814192459850717687682857542153373444639902631098838343597440770493900046407429012940074625372081084225675021980365716124018986852960493311576712232117294279828012763400825169891075158472178325251919284031866262816816104487964396210811753303176664250935813906890767979567848516270009324434493235333905424041044241294233394992636541377375922212547856980507644370044311360012373751847922955698109287377435838928112352860273822237468555862374532738870448263823703136005621368640092467430867780215987423667828616061359447956461783650756858690174941982617487521380285523120509650617291085023086263341508017921464318120466114112753953830487749347265402494754772681614751679197359571443735769911978593240275167739663141054984757272797389219077365919164418510491363590442925857612754725694370576744649418174459034181520130291283512617879102640728460182218138956591313176804976055238943594343473114115435720606472595731997778748812169659197722670177384983681259009602401754534735392682783439496238465849515696045284505239362939298748120441305006364725009237920689277542662034763194301334774297410891600993871781923143318096981342685623764545902131671213865664078799261732014892535919127011893704328578096105925212938153554221828533274198075168893688773998590797248623828008365325139206942290690438514523069724083561667755693445011629457661080487973335851733038508427122870997843502966852703842231415765216673131952233720315764828550974755184783454779410724065965459764773595973108231988203693448037297726108416685224192278369208225959890455729450408017575411285851093838636357095067491750493615920324547076880150821202901850826860496178803168431086944194993966436600802849055435558339907203761074273731829663813056902702905255949321905191377580140820515897492659122624186752605124153092222105322170375927032859317952998253332815441836742201549225854191013192185171698781283622405129881468037313455856987040866508730026919929027685271581503710189972869781235490252430093129380431767255073205158971590709337789040398437045727982805743635424999509411620575973364003420622690900307255724073492489766739124790286492781129724567445889739248541983685047407428664284219454737610688920966662656826179638344898484897757795014801391956772045321013061761391452291705927203337873888482431771388738745873356271011533270040685890513503436750722342721990416485791701569329150602980870334846623960802847543375258809206745460910296144060862562154193459362298960260344979035071333410236308963885258976819359404030174179781043196871552516388609869477471640734049835969854841438117532040076442276012399032953280216224089553605055314991446301208320682214857889734859412720040950769177626273109475216548859141674893207008116705227271680113893170658486738725684077847780725840963125131953509538291010913672306326841368093563743538048780288933684967497836597176819535197301821353833662866567778497295040447219156043425159854815843666668979126728691067444006600535545623392051949874784672623854682504473087445437548981071229317732085897917732165250366962697166123267408042339062880604847055797178142632733400780166694783466395013660147206404972361517689806919774109162178837170055579628316341591048770875621734580295105403465432576003066430666535451770064696807184001357145650217979688074397200401173982837568358820946158731812342783673349002323734813205221296946125643334912496655211957620710281573013322340110299539010203707173973339206589997446507399501372860736336954165303645448853692754977073343628264238590543613619416671957757168900650703953933897727006575267357314524733766856143224371831682064903682667716904727310154592500259399109702602963716825984029491945835950972090097771307778857412692940906453379474644979709978876136794792547927396969297630515802395808576637908989975481730719493038243913518131729771320350800220045225399924901326176802059220491882113419269251635612372462100423145940453198690672765836884940120127005578556156805470018523797174909210236848663293104326157862067556532818461223070071126621564529128077113715073959035625062908517942553118659977083625164741487606379476617024348107679424248610447379605299260384267749966984153344536876662579650939944832922176197384816270437890944671873023524329908310845578149417202424397956068388255784623380970994217678878208743125562051587935383452293171155020796272965758605244435445215503168501658127242823152248734934422007363657128205703753425958301532924626522622932333868002113808636992191121239996901672708890968260649732037361079939903002213200440830340671212683283343827283652654107911085570891778514159147558608258561860322380679838519678772771976562531816338878775915108544998376647190959833131345243648633254071744162386685746906252046567977512003839714950674334445091969556004965571233124155546133215271579424205422020438919656669270371710525232535069599291845865713027765565356481203701708437485973005804086636111780210803089726736748154830729673476610809119755946828460499202110342366042682020515739222327386363502885011508793143984879497964524110318777750130819319950176610420637833643575245448818080828748263057288563405466417427806806099946589959995761249002903973262953413182111846042155166121431976369378998512666193034355377238645683627171008206617599461465942779659566020598808197038868505085712462744021115561660029279142341139191680641306193364208726590429599068198495594699324138663151076613001609012119485230172993521331947857661178209042276260413825273922003920732547848651687868697334422374852870389159113647726435377097430024451048887155772463450495455074149935553067292640969493728398244739624443787425436646559289261305506202279531962717882725624753049338352936607347092348477237151021999899035409868983963982796740427904913481304136974041684299757797000972111036465671913596714740529211157832085166654962277903156720449861394736214244846471270230000211853771092702460276750592587365827347071763323181213691627570544409384518235562286878910261923778099248272565205786758883998386253827527374653719953420042518594791959053796534553145197554401142533750204955797960627122446219126973780697678346479943312327932777368587534614886953556946612710197163756892718419832693416902187881656348371173638479500489213728022997750607715183749395335473863818865951838332684410260374036328719930667046640603458810934891160170311986974500899806307751232379070119899164125429153342269122644585040994933618551873078244008557011890044470324314982091163389292778500991023153986815204104255010119625823893921712042178606260840585820273159764886019801560176386286052922532416370719897441576676991892299502237647915967085292887951631544608928086759711718585584663739794842781374649295304606859444007907623212066338119143867336664680887478567152729403037992793191882461865558406608925619244944077681782309811715055328065492750246483619463569751503512102725699767984222129462768124478543766663012930790041721836604267251736504222394867712615410707057454556456066226725122090227994544856771625318348386820865429426432090310107502763089880439721627364609608624614919380660526462640256466702187436720177610760034889871653927972284565109286900152048417904349004294302412279014833997597708549193368869012590228788200838694282411430773252561058935376581356160011351962947388649726835419472088541159325046525163771459182778569001664073964364242510856835874164005101180342339443698282881676130737203264218522567477181331809572675987021643738912128490561083111924581248867819560306389320070579481082736974886946278616910373916736828879352502011869438033171426621852226526153708199648344619630883259861779727912201134850494165205104411746460147469944991647648234878454523742131324601997659289301800159097409695547888888071374920824100522504204926349391787934178085811884705855303973577253325366817789484692648985184165862149054350666401980064071546069664917024300407456884066582295771063908169625403123531985035506881459540815407480634707913278518760233940628246981425964144336399825626269066777712886107778403123123345877913491880857324436844725368719092149162764582121622998623271372932754732371883383451288810540302025916169981460412150836707843611074942366417471473893561347246139314129148653969669503039502120661227982858278162264539986009436819988445200557180450764693639374418241081232390623703028289295320017403422949823219688268358795786112684107464651896150163376912061598268012059358578513084476424420535865197621615698147726574790051004274541701824766935883688099445912382102445606650324842120955385082833412041748626689448479658084736560023412419504229088427266965541512566183510734727719323171300431592407183737990463260130552924277726698758325656201613569148770286499933778018833235061184222747143932235478700231851555932460890745375215723149374850891185672167171669921237996309515469119357737181044138854746191595569007352186143661325153864283836929060971544921340122145202180863511901644069214900092427417111532177582481422953622666068486026101943950606470500827006905945378995450924727170621742609103215675578289701249959733513983911087623608352149858352908701071451229493342256414051347529548344756004438206889495200943488617437472270660546517948715393857878893487644640417796653640061596580515223173011003499667955031101637334394909874376230029231359172771876524825758176433808211577169617368826810308392554137599674379634788574278520121218603585253720891188593894117765977895227360169481715194709707982360463002046985421264988806840754460148109909250010825221581918712627614580106782092533155491645303284159797077831549971052790054112052951974956402427843650021508207680444124868562002491612185141264820407767982725509872057625207918132412085902101177430856041962821262034886509397191479116485331924577427485450281042247935517332186513332463519141846871229220487728003617665717376660464824829339203434394594798642822366319223868488939990111588259282307331586902953277844594055929369026487552502588144705548087865402879640723348906811444909035411410441315576459226005984488901366190164932835383684696080726181700962942094348369303263958144682212647631065097525847533381739991468819420654040743740378659083959614849408292050238901840286263957730065564823247810104506804827448123471056442520361472200750840535768212425431356519957447747802712467432093820655090305789653430707985629065439240263059746870281476486494096701072980470147220485727038145837139730546761509637935325453092157617370533259090519764938365871186545623452281466949723282510687413410255131387726538733003693385007143041541686356141192543885455625447045639332191216177071480459117707380622946633654306188881798108406533271569354771327809993812933549053704438385222457048708548305718519722892075348574411672995680555050955270390142896468384223323427458423565879626895569542754998996874581277316756380162639455023195707141661500519015536895555680506030639708229302020259689052907267947094112249813218109485906645741499890648661029599657267983826820117784789485487116191088550226156722226899284097912784232957961827237350423026480128667800218004252051435608309255689341392289038255573345645679288342547830454483787947082339537390488993911185635035591779987555454792500728574722090121828629437210010371118115132388634423675505293280646520568226135284641695437343495983267164857657889998771031484469059830691248039906034309884488637370755118145345147856268354917537455065933968509476798138793498020711385087387320065022821952767632769247352993201066160986550132968206549449685473919669919560929690221011714589074668329562960462149553337931931249696099425386525956234544329892420423050337794447229477500480844330738041755952830898299951171705903862560519346490584158873503004139444267344415465599634801455932441298985762400767152306632437345645766564787497628540571583649071319427956484594299060655053342556256822729109601315676737326015099421718349667321065669517748073861778265804267961954166265902741522812749511334112933505800881402844396429699581190276112741952122485495279929673977433054494900461353187172374845106489468019955110125666928277825986293604534491742783563751571261834385150666954758327109913945452786704784344364951491279424469935146046943276444095580187963020205297157178063458068695228483618767539804775625067049879762124116994748631713245838393885560248767201035991307530172053834057389252983066229180615414596187231592335623037613959476903751082959898033695856857314494425006444496927906446910297490136962605837980308571894809202475576836892808002182515576791245004457281184119144613574447076759939613437816324957653181328427839309746987602225100803206126448038753418403732845642797900983245988132319720526996656890816122737012072130498419672192272202312139141146339538590534455421850698239325914144142099867375471681611839496192850702053335127512905087754958418376538306314556332107371430371345125116676127877610824505003279015618044338275940890126140102266394051899073670312663169493202074152925859309514583470281108985533032401887698422748081607680510064617781666816130420262552218956132560815747240349065487781793211765104147859245064045841781889581906023886728085840845061442018220434386544478038643625357408675185146508403020035062609327087510286402825029103656173854123719423113800767221924496781736535236756544494605567216346332725574335322996740173007633783867779247793319523854182384524860538749505456388248318836591163675633315791023959098667894270185648925458812768283914216971714623879911677879035866901624308652858985874593952385941192776624665367323365664340437540808536092387086463125902405024380152723127432769781802104509603741263713201623666125680976820638023787723243563097628295645937820404768210639108821511089040134534048065991899270351702615568525062006897880481286676201798444428033554392181978354221516544373208050657670866918693053463995245050416328878462312037050881467314213585636182184812734956257568532651211696388237479898823524036912753759388564531297831351120905689883104458755469569023142136663618066133611849172310097755400530227826813377145777698860179524299321172699247315813032673266530858455323847813860269619821162284141292290242995114915171860660732279408504221083069378844279977335024917410957638861255995596114613435099832538848715356496595407273913089752336635757318902281619736257340443945211918822438788756474429093843613545712106339399370186300029024373824049222714359072596226043544160787059690190168102724833099898532273022252529303327511106467145970186328793430202489393512290593781241351901407918457974219108959827661927647185998503284818120630520446674104595476464290912546941102863857887983523835606993851555369311642990388867778392354511570658776381093687202491036865562132772231913124109472512911332644856621027335061520527750953977872600001443375068045824216453921850479916886791999077232589813108574965989700320641351513219886067822098840825757495220002113529872782496395391490584870157604420509097045520369206009190926397824501244927799576177053747283897196493698163200762222122731668529003836809790960367503731675758843176083186448019889917411912476419076292894688168534831628408731095140951326020009404357252572650899538427291924193972626375724754833167932332193980610149953449558650820275439804247581587489285594739003226715404881629567627527441414995597435317737176801000706784725164575489314794105902598440622959271245153966630166474198133319081225812975792789646525126350278275449283068133809951041403356809529568453526934659140918118836310845366915389704615062719513523810845148076606950706384171487497206313381073128297847827167087842172031894787528620483721214906256819470252916985375424652052480879027261972321273944477650440175202397372640643633243491987050209156812285906735560914550867752590375286388856761171624482737478464727077465043772598163536177700676857422858458022938946200497151443239811958062307603280686112818510434422228001454089757401514831628492666563573546303769023104761497963531133314571865819752213785029560660569235608515118504603485407436266335744659463086508134062279376900572401759454496779294180848619789275205951259858000971748701621587208339227210953784265091557350152975659161569106000861372224188450714031675236013679824972010949429117811562808206301546911797055381636171206197936918925661742808264594252238047476007936420182853636347918556749342373787804620431340665969191376077772264811384917250122716931334991250469999636422201473452234383988701272774279572890565620726450270453448303312892201523885779267394373788082632232863891219819358571792830021205047588875550846738093890333397587770849770957813619200870101719696970604057705789763513145720440154338685633554648924612955876776891089177626930996925966117578101907968303669689884300205550494687497803579911501164807620550610286905156967468447525905834345601965038336032694972810646674474760774046715663193020152455631919003872288772793093393981626240202096519943353705707006856784736162899190702540637675651211011350450636344353699088108703036509544705739332224280758439015812922811322580986984739340457623259851492808934053181849597250219351575080821365425593976817463341019285120268443745336798069539015906333232555489844678908231665920584552647109154307630429952263389521839460146991635548832036155556868260491664210843869795170193837291539666356870050173668974973032815282810016920880002349232627674507659731218164440553667907767174296817802957628843767114745086115195814984189420806273245626929414116607933969441777132193136730458823455216807466334128596558503652873334872765219295674399295516537220896425062116367937253442618798904837770327441196077567064559717315725428339487504973512277985757708072772832506522081625049864268077194341125626136470668597189285632587968703628002016983364577678129670511339106561174208109242629734151267693858151068087074787721237739159233992341174089757834123709238401201092849432513743062078341542522847673305139890839616689037372595944611341335194143774951483258410621318946366170276628306547130812050514825874945097299818050203141416059254900459504469860508462008257134747764465671926106368483958962983877328995020549531062610545985894423632926336362391375999464296404181772765551409631293116253954313214823586146115292269680324300399370517473815821617097091808067235294097900812205963708014928472122079425015365351637832921814304146414526302488507797839292481124304099315462227174483255469111013132999145367729849973808862119946648826455269885473346151114879724527424243717618442585520473358299442051177892337272554592901748576099605677345647843984571413330007459245233716044097907669228236785945865410493654783230820854711659312238608209024522085317170199798423873648853877629215478026795601953505190659015006308196461910424944827187782991257024456863854001366630889394704087187003352612249783390513603686679377365271261164400102053210789833599129478700120559665451469388878286581517212690162485694222471022218526632794759815147740565889718504994504650457705561512289359119405963528077011301158605642560762870458694945074163929678407015996060896429088812020080462187835648253825366736794295901774305135403758753409975065797062362296182825783739467391827156316192221491146737911036794266918998137452926733492613692812221858681047354708230272798138301492859663561291411571203359720629136017558581973488777020794789496070264999462490243261302353051110761295464449471800934277331200062519297584619296844829199527152225249922827791410057361705670313393195984481022502729599555830781605933263259338064560736586659443618449790414170890437221473742938907411283598878536469931783766973555540510681012044778816034493444651275044890168310274999269015347244430148633870505296688214916109866765437474090165414864956878396097468071019809020755592319236467355422579100492576416228171428178273507713454702948651119247749187154168333940151157919238015413563071871427156485458584282748143915188577713214628164038740129640445041507235494998346084272476152828011818403955346857035201785375568754260317764233868196471891283830749324078183861366285487776378335720905936147217192211740219589753492361847534872007158783568023683817770021644753681304903493678755458139256599004808136661970508206974946619659127084587817441873467200379259585548200793645023878225244389445883097977491476241713244779737754752752373121865773307543349265302319439750534827604513736372914412546469445557632948807017910322410165374975661850954979605098913530185309850865064871238839903543135017632796956822466149416117094387548180393394453044564108646427010563581659177233595807552859063966990575567478779812585514866648355752186340753376902715611838136607941163690222302166747039697667796480826399525542870726831070694609455583275495900137854912740785396254999509627809978776608084329151138944912535475549304116524677297111416259613935886493157082998737834019840190173884878191919449990746742437212694961234075105113528642139441242260978637124909939357113239534495673115153981601829994812673857448175204307001625526695118165207524744108942014433435562142564953835864937646885312828214599704620007028838317774147134701180878301934436445172174438451161964408136297014676915580341830703529645603307481603136446782221254673296263220325707472223990837723383805406610386910762617907676971001571279304839106116648185562957375726851050344472913751700280347077274781761341065183188067910325048695551297284893957615976986914743969035995934943184004833837373346404902391432796103824251550223738864758036936419754915410479605383357470019953424154724571025494025167833680605097320562447043492257115129681262377272648247167383327930298554401200553458091669026120396989931962137027059809283934419450559726275862475568374137208572819401815700258775478198640137444117910112733193682600673647807747008745570771170178945298655828805748452419987898454911853204634650379569389412386252105557874287883281351937170087867202620985257063156579640947550593829082074291216100795488155858137343796408499126094130271680311388470404303802390361517444667331608573739061584361269235683593709754342140687851464121804687141442261951156587560337865133727789790788915769706138054328054497482095139802740170857457913705527762445801497104956802197165609842048959418635093177430348153417910183648631185344240878817860368934899928656305713396641724328305167022585113569066878012738485557584069851798841418973854372262053058825455719530878389023379271235768562770993553897512572684048170421303465435903897690665467095549231350687762750200082832843599399351547149915517009380808139951817671083491256545626227356299431506193713128856102832129887128513136983503792138497143685168782426474314865386900610296861075387082435116463858929997663648849780848225244521392843997454816875226013665758021840026973762790743122890662078404462693998769730142311073944197681778185183741214474038584500932792618095939308168745343038197759845384733586942927881754667280605296855185336677877453311239010010222351706770382053016109600990701898633781793026945703141217808642282813385122821203709010890305568932348136572190069462431321213947685542521388657695755846283048147882771851034632750015656544409408031983801584901035189397869296594203556039802018536417714763541776729808558082575189606987590245050359267050887099006556305615076531625782979579219660278719491261088507162057258770818827859029684430111617941371565896508391074404727682986415651350141593581661439072098350304538930318525329841428585304675117847004026070588336146378288793028488255524329289633704183239632990517911265407899625237346789756392197465950817152484224141862891420617593283854006793474544220971715893887298305521709126311298270542226880917589733803184205753054766534484173312356284562460055710873264482744887687999151557212345046094531012727172664184644425259685400460207716607223752362102920726766012742402407498915138119953094466091882853709049695456079377488842552081859242015593817093237784024976485386327592546040169899671916429741740444567537527208793654671054943317654203441993734086508033848965176194123399548501329205806632773526613405664795850271298958528293236869935398093159378960098271866835243092513192332382679057947954807730593815794427252847051793260593931232839317428781211630514286286293196179672141500071407341041451109385303801667906115192167689524026468422750974347968877839644888541576341509690982091903340089724883034755750548823239771880324873747692794308758577778506145083024216400115251749703585129995100993091698245197466651973787870484284684245113736390220214065277855892508679092655717381033795220956541163916987459169813277700540892335349743063806174102351629501947607256809332293923179820591595340872412687321921254269714990590749131987706452415188304294015543068215526980577391768279066158113338275331121040185167695007954568579597869925334535874628696260229749065598228032391698695037989584882540879655493039501493859349279368067492200906850067753597387110665275962310071706454170368507873081536977204638814077130926010909817653257220156487198597650341520724319893820591377382542038840431742638542664161247891701918190480653096703361999237873810591573325027778508169481958668515189549736345175608771250163687928847062113911476480038429525221171653571630485502971544915311812808186752459921820474806178096404714889710337574209088132955461238794317947217089106775725836800468090232272223256880068948959436131557229044367036870601097113013653268950701188224889040462653679073701285765288207729670522297953481646217763434689578599179859696979540245602406921862928969608269835268584730514677849447545551490530605296640878118673925027094319910587144981237114826273632887202632113645136439924605289037846437956111708437359658129770148277620807619950769576019398560758266089247379270023018253364773063246736933220523701796839159156612672428822813533610282632909251827071224327055200363246869563957158514367719578766551024258661839060189451741844890898565418319271765129410183866896020007811025614578268724865540267035356669595934011455811298103919032450447359019041957303431155867848975546908206787324274325287342144675366045670502237597222376158983870710403296919436816318440158304342246574584522485149544324258436018913971701514713594486099641630992951996097970891815166400152867255979513403226884975283633927348343655902279571683351710115408764135080260226476446037412336675800479853900559782535802048017250791593524443296191233842755172354989565708862568728956572803716424707898126723029577313667947033466089442437259539210918041553909306644612076378500896195121056796282758921682764674696779282715853729738135436232735475388293546336601114237310597166305218136475319907507326873691374964708518028759329046115158866390335132756459224063467480893791927983839858938576373035556937658832647780530591226361784968519520712634280984256355099076934666025674584012256781187403026252966458241507887060335672396213208355980695784813999291596580875216480769107728591905534473768038350270291853885483954398317691386285675322178079031836725908413871717850575102944708015190336451541757320592628683146529530286518165486648744214990793297974236725002848229885005216770068511151881426397577592144936053546513781219642899804515880810068097330846881437372459204410749589607743458063294527516039179695989933720259026543835105643515627194901884568019036018751784299633780704935357784378111069954346025893771517447449088591699747816265413328614234543236175914912703062702982629417582583117088337192293135779449075472590072441935722916020860877459776919301507011265488422835123227866169972197448707286839396224732303881271972281549177029238596101641621003519404471331467729762298945849772164446368929481872122799356971765504113369007169857160371442232021554848020090811965212327154471903852762761040282018161436701279869749893925235940520375630628065496851007677822456711976221594559792849907692718622783431734333311886755090677333190955139214950740949534398699717919621965046398121046024919678121322535912815317348652695545714913140968575175401036395030145723565738579340549643836667525975228965789835854574480375590720574039216946356202693240304690590246587030807704841122221698911986910254909825132938746947759810813704313075771111099508205270204308612377102663413558644504366130280528768544972722363537120314034868191326682675464093264805890382441274365439027377414148811668343749429725329680443433078016263173910589133078343455166072484145715909055583760773926900250835674130038105517410086018190382078320003406899108413648481579317560607012641035045061374311076213224895146232249870569370818403316633730109604722985080967100530463099495912300082178059581711879880551824521676616199009366984241117486377577674719017056999514008511174997553959249411977852830475540630948756345365583740305158343428255298177572336661224537627392464106122346986660872859059759954652405550854993138739324026488947630353211923240201697943833552899143789013643068164906999621597373196274889776137727341677608528693210415395145874187570583184672881526174457903068323384721724103442458338772809816538473190417990537556197062161004527469943835563994200177761904959193604284685445231662444739443064133311155845250690475069241700965517696986634420450473661081382261844501377330591492141370262980093153416733954877025317886096061711188901058488011395225683343312515004483490246049577580625929651140291255655523787294856596768524313909499660724019963278737946038148409270928330408692102707618151176363058287229448328545970860682647629038820978320844663701472733940062735337973553099160420430196470622710782667115450808321396496369910800499764198735510001481123153310725856910826053945942148654813239203579317710497921483751467415471657469129995356066192053549483087180005244163851632214969655688532648738938557725305917647199136812829697401077114017425354169795004185863027056599334854721238372208816732487070417100358311184310919843944557647065289903090404697988962035550626038441991885424514082039420105138400481585828322971169145917827889078469731362301582661445054685718830419744657561750270379632914325522118127692472982686183994028199918239410282305687350560953262273178358291100877174271983828731373803524259822146713683537074311837701380137306229888631856661722444568716579435854388426141025405145617143780983836958011873984943334888120873921551900801570802022843160862077965103014828008840646699954179468904710240214891926258220071028022695913399921305281169146377633275501629671086690449522621338139144048885499642501482955852565970529270763847035766227960857731195812752671479945128552425302895116899655813817991985615741648683549521187033572046737579672361975102874244567566972860649163672819036230140334526091198446868906124987788259698157227294774928492317195473522717819053394778924838960240015256008400926032750054193316106289512875650191482652617652911877263208657261615114433136679720877461249524325282811894567654897162906880074869915454083408697625100376850538119917786484513326941034759261525335024283031696511086865232413458590911606211383074084150907095908015116599456580954429860592907210164239035031753230775387332945840720535062075025452355334761260954461353659134672723075215162974139407711876826239786472918538298965835675573244869222802019864105809416572933331208736660736853617345501064655595104144871466567905363112186441737073478486397555243756978635671108690672726446998980470414346416397156590825516652001712091580331410659501958118152087406895233478652544314519780096780811484020887082068079510707846928222157715663323125135856918462818407318494291288471767255401771109692033208083474243244730600461407219309075112912759934609603015873849005505643419885092759332251217429783545656452879294936904122069271677608855882792166472442665875893900317175636933490781435956428101147923490187558777292129215199709052979673192959665350815821615989803832316984426115656219279873258305182136140962792806377144291084439017431973357764651735675706317162371908803133640041754836970476240558805298831524920950112217173542472816372310248689759916816096584468926663246026404261997300530308947212595223167474572273245950755903415379145197756180813307572900393222903188734499455307652011002626355624447722705520257706054815983726133877896817995701197722730470815607055819568423485848821119869229148832954476564780494095318293970375273838564238265678878920913518742974141722686377990650010311279816883023067941505449102167757666090838236400339510416366302440532618662797530981803856378126367890344605292742247483279119249777148820377278917017313773490074550910575242206425457375189087073824569542994445443564592459185066838081826906142855859118670906615307966956026333879619492327751893438416176705932357181168293162016245961163135761112468770677640644435211599786396420390079960479555589096595585132901298763069717831987455909681391785092248691314782604736929336309300306853913551841219692458952184546681221826178106847003123711838953349556511555520891884508843866468761333349821185201689587211870337712485959562758565456985346950107135133112042119386304757515645873454322814611546362440899340780843640953510469595700536507792119152734094374056513807128892199066740973391493706247588422198314772637559123390347386985766553987728061880625597418197323130675084814764952203366723991667097109882878367655313660156386119279241755717975316790531529278639167758404461818137946650686332123983312919820062209817033780839816677751827688356417482717729617828153027692810482872909588084422837834633339620119112778159623096383735745151820040272730301866883411537275738413027067297033001246336341881893323271811231999686784135700736404497825683162947186410093168944895572278883893173021139926987138249915832155621570825415507157656310028539114781753885980691814239522967068089123588590838546625669628417471108637010461844569727449218405270744502530522189581229124189369308109799509362603037231728285106513995878446301112987802056024159303198448797738924503510057688319077105113685076680062977248013338150910305631848623793044842403426830673349907635518728961962532159714297283166834306701286624271513410931680447407009836242159356673758537894677024505466093417740252364903640542029424779703953390143627137005568074858842618520026387486023300973927438274468652581569651918311862003918695507077129322790303367455128065961378622499635867844945322099198274316390778690753840141724790128041482222255223076202508483624887199869747844848572144493351260172163200992550931106121606694978598833278893476305908430167871803783744619800880859226701476670671645285328175530761952771710332652608502441846727754353781994695967772293196424763042317511749203451937531014269253006862449963524354667418523439406923597354890904522335614308786698551648920963335622612004981949866594650021591263638983721299105038310534401264672871931521944781397221842088886152492713963824777950160027475269082095366057250122512899199169436926071789312696897061730762385352929093203344681840670930201050323842146886432273116186060066447288071555360782393239728126525179734116070441863505701222638626970055957535094926171525983713097954328823210739119884205629953321135523958037199970206594723301758307833276349198118119883995636328066714609670079346484119472379491694009756304123694041519848407769153533710991395118266557531604185693284230081729926137724662014865262568942829702277787451616785512296538989562348358568899034019735108361588640420241547460758152552409701942874090780184419877763903698574258981642500810911614483853621779689426784049077804928747042411285720178863669200312550245610362705878232766197397495917477943086429503296882794959583455765722669923848252802087577180126354851247300381873930500270961703358618261317014095911854034956697162721102146530045177125586165509832431705212331015529411139339772659337577148974924698624451625381957402645944674807025443727998140616208071766855650955381364911811205079860374200720852464417448082706246681839845184816983576290304491018228270009265854760068277235224810718391121290997647795149579508641474886095384438826145572010927561922259813020474098401936693205866022175973273902006078140115490811642555435757624197512230671480994941481737299369956099774870591733381028425582182035836345267260550794498466357176095620333547796705924001129349765242401979774128193198084354509126669908213382223910712908545091841715084159694790244264021823316727711595746266500520315219074234896364098810399332521628864772152216636578310816412927797591257233049796229965367724348310675970782908530782623621857903618909780373664714214438194574944039644971630414313022693831990854517512674668162285562469087902416767453646768407532927721623977971678768101747421356298576080436357352808406788535180364117804930035901074665533641254184797925161406409566565569474617851667631303325568890865337736118081045606553190100293302119318875321190263729689286295705860251424200412719319912238280523099025932435743415584387666726674800728369272956864162207418094985958742798084010252756422228635918430067736720419213628306848732735564518233493358664087763386138562584626417600253178254600940391516395033355882192295298631715015791125869989474508703681427476740884723898976929779080577857732566866043367873628910614527592199357824663780639786007570414372314216293179709958603846434023725412886778251654041781010844591979154473933056999403133491209228755458809042939734393454641676061643008926795597958842348342782944977135793289141075766563920074240073119625824688843885401079572133290055030275998365773300035115401681730245244199905986562464214348334821604488312576511796499037814892952384003758449878630168586690667766139269027277171864739405625012475784777791387502759302365622223134290259618088575809653354056831934631101027036704677963169751112780324386626922608440223244596912397498397983882108714604429535957862088443395998333687401315532070069687399098690384001946815306428522337578285074001373280910903729868188354269485776403596638340988160019477368046415755568539728242717413322987848524164148879728966727139109024475461428597919864276574448963795738235257411942074109472824896787922105565832382183846803016159150770996177208590882513313666409967411389546592167415647805206283284395181345317287738107245498793146004091156129159372141733974764952166598782461972526634841651492103152534044002641194608081599196938027354515446941365553691405099559776574676688082346188679841627517400501524244266448691888314830642088422351545103674595470855860251413831775622525464733035416510116323844290230686106400328576489404304723657494548627369638481664794075971517619538226753407758974004306375407840687941487805743030857695817550744837085214784968631808650526347733062915327793367650357381043750706840544039690411659569458235117864543822940942055221152906791059368350722475023239074021663530990310599377359037161866218162305304145711288750113711675594095124725807992283445405602318277115128951292914999960745892874677597286489438607264923288117180782953616079194524983719709611408384037660641805994108977050785544550454348522684797601099503161758214847553087444041920344624530099396261073725476890739229569081360677398698931508120887315303241859084561266788594854280401684616516024878216707308051879284347876112874708755948208393889754350326912915019593951769980748886117527254855599201354825426308724373066490137318920926695235882662388758265501054745835579943202470634260597768425270412990853830593478492623883917882919900575973628850828191831177533590887246525555994047334230957702770649515944958032022730816962715734024666756387988031494255047035931381432073871793805285401193486542172140521651866758858956324762526001721740049144829784182722108829406998720214507846627833970915736255266344333978234422527537778723298517047787756345501480860177283148117041213809658712558678504442703775315966789661551437118158936907920315577841043622624415863086415820868325864798513611869068533546397604832637407750603606114257088429331886037385964688631680796000024802362454525824991993453199655259136073169563665969013876447738242819408146110246701302175627831938301914061387803193371511494373274138570583500653435015908314345557460187121520304419020615995630829453904687439728826372149913126213926762379154177419297396251698061164099219999800342701693598470539837715930509850084550212770349231271793004860380828057065759523148150979682422111628217155186612284629414244266190887577141724664113704575093875539678314099057669858073991893216470176506481411455806367823274873269797760183177006283174397860417533716007168068002988010678693794608256277832897579302666582173124332931033990254179416028185565896304159693902544207969830873463680196655372920320201634249453839457035105143542469688138251561340500311324413650806451359942243923256991453628925953163496779119304223276975692871387596000044216177891436118732103188056792855096079072977663034435502726278323972334442748003362255149046138823358335589283494043434511845952768785621785990979109903058087118543967014728034562854262140893498435667356672182515965505871194539625053084187410089035345571516595365814343050454952803119306340700359177642861739382015160376808352507661160762938229113409354228428192955180545375808295741660554857594698456716575352701135748790377163736320568225552987001875275459527704825861464436427766985001239845507148385233650248328815354029664022611534787734326327989711863303725575866592192881682375697519041546252359534551764306813015168874507765599531868598021960304561457929293992367250579421207822634583811175390808469991251768635354591384136679855127516463904546167311273971191692382334503148046098423234302744603836551485770593036135880980998355876096808971865880941297385689606767197685135528615754469650970817417621718429898565678087475553688905537059788182642858486717876886461915834498025317167408165344442535548644323226028184993415276153019969491509126650464003712741494650305748331201770016613011602217461727153192311575010407840138986467729062197281918525467680168893144562509842780083578913632358619659461976504808585071303497196793009722424025055635328092563976844232366339647296686228950749651858036510016366686149658801534430254762950290750491332707844528195536822117525196414692492409783272169202386678229230435477418424243490232604944315213384418085172350408781332214467736158208942292941743220324771105182471242373911675154105465715764715092626323907535333722238114915844931744611138984545121769606514521033590353645190655348138934523172835455477008576764668845690576784249842678115553641110953662582433404698485179703204927751458112338448135517769251572603884671399816692237321955681129576248823318656133828829514634248198275563609513727640606429603764724875463224665771750339928748848614786027345492119558509059780666174125571956688499054765327814838413195265876648641927070853464722318822003646938717172838550055962658228813256484605512568308776645853009560362730954926826611260640982007275588695282148006763586743994392782898093677253414032036492940183546802759404656923123084819246500781124975216563608480962505051678204241877309223079758460691646379507665988933688872682815914307037740940557120825756465389206152443890467912972277018187132729289368207954695165363392397864604252824334736251294388317408876423980094616848585831798936556700813311817567845306163902693701989325197006656336121785647313093674419902239818873683170218591620922104074912003222775212017519054697039016858583616922730642689956547704323065652080064375097920658133371823050144979762082055351575607474024535812854394173272431612147460837403386177919041366601638685630130761830646869963858889746493374169623085068273636918618837299933261013255279361785072621153024598088950350366948249411952310982447259246509804775967289497001503696471293697214043150015685058917904147665933624827605479634957345920616642512722838228444103003566845722830993521110437431066960595109852634876125159231400094739557170878305281016777336503723460637647722243318945227614214319063568699238936693120185755610027689479262075710897982318146248125772609919405128828214070746508764029712862377203030821080522485134470306051957690742585347740173615654346193580452634070437117176129219109971918660567921373110389738862453273216455038255557957709782254482474562879195020809575356967831901721317871099915308442143440054523405250795188284825651035066828467907083187182323434511701107748870441730911345154967581281050026911409505807053578446407837184901058390707778711535881917602664999489478388327829580549466314194516935717501548630538840169853674475368521909034148854426675956291246126192069085213494438861601887948193720435311862500525573147306181864259015689497137786856992252272938998168012687156096037315894215979725636345284593835947680013255206330909749286099214718319909645483823650409229786503751659867738622823634081607587831825541229327998462104490029598456539571890877805287339123282890304093354100552515875070228663432145207921069182507446241777758372520173802292758171772940942994535021409174617358253585506228607882511310180956805332085983773967762008713121507461542857816681793745216624323240107226820527797748500511144365553660244665079812722999481525747058377656966074787006080039304335300873506526488000615171287427791716177824371029656674157764693582606631087959334092017200598784420971930205200395777425287308238205521473941216424683948767015345620258291450455008396610459474748097841149322459467522829982983520028122182936735189258786040146274362163906209189374818602504910568570538579124121064037693752608057493085625493728916709466398953534772128961467459667173732100054684508048871605905514857683470102166367317982953048932322033698587912306598722046093004826040194669292980797484308411019697737559484113307783089424942085811327358626936500232998700804581435140374393835149050007614031212430774446496316442323439072084209928660509132847173007866780425681368264893789635208105915319160910303907558244383050711736650310792418916484702274569466038155258451445359941035073374876923202710318913305433752475639298104247958612356706655543738168399994609847255525049310991197977383206226996983867849933608744736407224934966571562271875300929193912991387585688351702729545613345549068152161984680951728584890111619722306966743506846689169782339811903346119761038997234476088458652406466709887400919818590109593400457041980043170501590539627068277569316963979613262441118796537544391544148277021329973663874054901444524186429569961840154782827033983285021949304666324792739226767305758464672868875860985280212533835535770096665908752986218852601135228610558738632433204135195268496660296508594808414012248686254705409267779593837892253984387041231381936844184919329884473417093407110780919667859195364755195872475722740075152359034458389026701218201980699962276806057245542549273916568820838393034485177582975754793094294593453375393510306667210704892645570626486367804755975631987222203147497463967298683818658682982630901598404369488045052591093781137685749176051369537940930323809859438755764534096569699076456481958207112418857769362899933833123984443490659729096083202237275845505965915383020786304009333556149417357691752044968778378377366201549757629290295864389338770035711528305017698385999798420102943165939222963360193611215659521069168134586192251886994829556659446937061942735174599518880995405788656494434211652238539687122748155212222204513296502026714640418209659985952353180062896761379731004597632456814614988960503486525277457205523178023544309366512905615698830548812350961672465914573353073822278785141442386607908733527697580762658555392236962698726379280676002462151444091649053791232586443976528894271689898986723687107374034601960528050386957376771651693581508245981745767675545768277490143956151875445656349625101380216572668103249048268795877837618573732022717581104202545245499930106721794882073115034653444746546885007658922554211682182747446572425661625407241936206444630780586721868978592000986632608868574338001389954522795468807711072391996831886823715191872759360980173988089516072978150932679050867763459341154436308412077116725796222929015693946060692722351998194670882978987036545428082706994353343453232423402363494113591818191218066533724802632403282234227045319830615282226671938534772991998040005026625076670159345114468960416271345662304678438025716263752107267130835837146317224844573285988205147844819944153505853460000004269180156567953929378096547386430497999577822683108735105514249327435111435684857505126757923512174479621605979723510356086607366499773862522130636807744785384353653631689087970377491461920083247547082522146070650069285024664988365928199185955702286518401612432968160442416065057376553024601108376483452317110874043355504675589252202573259127155509665218040499399338676285689602098452897188892012367456700727483434885530937123801928748782478870795486730268970296521004269219654094277913342952629033497339867150905042526161522577831119503930584652012531856150907092706523728089869953609742716711119847842241205578306554131532167444983748483352161142076282455844272249226262263720330659338191180529155634705726161381981615276159437066578974155192194649240493867485105678305121200367400582609948482429283986506942016529061183796789130458466306248689197672752629348946946799012434023052614543069624692292469903494889853106934050440897028448066137664296289110116732417017683154838575074038504545367719640005152716145383509410051565278580812878584719915573171682001715544183311987194280185958516096742093481383514723080887532411231789969956762709513547031081141790730194807631898058695339094705460058660225860708838024451231568009857227445969067809368596080527900224171011746247566198025579124706774282523290237714492307493667446776748856653780779188188588196897192232366035049798124650108269393114145815661193497468936151841319422199510314326581121298705770894253293743107421410969581532349814312034808184096978951362333628805940656790023267557708816335347764673226879111815130967979783036200325560948228272092825722670035356248862027337995488990000020172654044635038086646083466360385151063442061799693472374619611186630745883539841352805620922010095629822808342607940595036497645509540900318258008663971577849294831972453631584599817923110975276223473100370282078457019105027438372406758154676836699938157711086039617190080687897819285759399338203764085732655717691005800166190497541880896038491758653353333349222441535553277598848400689222529676084799487335193012251908605599632928391305454728089739021426655592198850598512241791980764877899957600204125678260501403925475708101469613943135949831360643750074128917333483203104707837535527010660497154566492674649343603977525919953123909118514413924833967624516402135487889862420200601677787000242842744534896117782006176969730136649929238730150324523581249272470382156509831596846515419606547766199484327327211164247923229489084062326807851201865960722305604654050450433603421865528171234938470304731224886544526695910810160170570377094629350869502991367632094560460627692084166438114485416616070471593793060797735151826419111120036307602378804987718936186443875391219496001609464308693075093446252660948013968826262645117627232576407118603074266658053040612123449858223880957007456969394064525784716723465589472938835440370576933216589622864797464067589289416451299312191764588132692854163760757417046639899399853256864995421769752946714398601632492429876593928084052950192438004819302566945615300682050863883934331883411794422482117736626746351996741377519403248661162829719919267600370449013218744094240845251677186909824729352095266222355105048529905110926102836457045130767357499807758076274976860742131346650628074623995499247432763769820109269905135979044213660587064074434655505591140013948314722348442987545631363782863499883361974774999947306023675149447219882635827789504493330916865199122328411904061152951578986248676492943353239378489791587086364230894806684676644681217229364239439390896055115982886716079819845184202093812333900807673819105252648290522813091372150232713515326049675784888758641626625289847750081105150421299139455281335721066333663059450662369974599561482009364324496353460191805931081406307060461520734997306197977907778734904327342575343653538631053685127868354329213139227275976009118150014643089751531555431284499159332540278114194255206406247519910922412089094554087891644226310804789488673684998046675414591964127073531916635015983131547716022947083549723073440495695011240566829484083659439407304414529668767046934859086456432163319080025112595107510765013654173395695143680556789273224694957265009458270915258488284496666557867940668550870254329422084627848437592414674180564278433086267428969128845200080645714776886420519352184141733580288932996686774782433673497700236853329358980220021882735407192043808544447671101394580087771302242759199212033411986301435573091236533728358972480058380646944542055228340075969367263481863629341281291707712527312702130469116574369752443632706961400838916210635188825885072791967638437323597747388312605965562995517550642032465650124071735233343037383154011380108395322335657771552885506406797639209269210832172034711825457840276134845392648118272332489003399288957764826829413562222125581079916511978174752425580051431556426566412011603926837802650615124876523901998003781192234299453131632617328776259575925786932713274492268513050110092633454210455548902426739994786736982856576917354236092630849608541686967423329746495449688745821398485481054421122291220448087947330480932972794586265148641926595286507459678070930517249317381274716079834039802047525681076045814668190897776188492997511320723547527627971221956505092197535105741910199163819787361615921643655901170738138402002220643430797184441162096656625469959066917508766385220541321024976404327085492357656624653302686510587463269109313400660364084632362741460419407458594818155781842779550167002289231062747433489685698519355027349535695893768113334148782366879168729706940613188555881551142245535096092920982267023090365304646297682685808119880905533800610282627699027461634093804486666332752173737289838338390718725205350653029224992352881794926912303269666590295159756998933344468486644108649560562701711596127320724585385113589440296864451043707803183183966179097928873539550379045420158422106561616369711840054048763002973486412321250176090164418062731250344165401785338315234915016414071218660559570257698244565739567582685792472301963483799311489498032910982647458097229840500748798133159093667415270666398587491421938689057459760447819179890629716494826487948212879944062870710168505538768593129460790387951248005480531617877727333833401574785506384379656735919806067828933322791330902116986578041895160714855243679835357098763167649911238490172325352431520596020591557389858949620149707758586491509422914625801647069591381898558187326086061534190741199239232164675757541480324199868132214143419748082985064004734401318039399059563139579476779752365429775540463132773159218374105922967945095238083678432589804003254037980918137037225305112629637375100192839065536274301381111783783039193806460822060466744420208609465498035333947467672507782511950262994055826383435014499797211807667914606444519034249883732429727814542266332462070973267386986381952571478222583442702435898050359905314777041072595487368346743100363116017881419430353200085596510261665599653136753233563385128793375989820535940179004672830529950855362145485573838396346364158963276141761805385067792083057564237967024502401467706462353646859264373920955379652636867263343032448387933852300757096313882636603372177378843025474522114355037207561245069250639011248361578824377306918419855384089568812677676046858513482835316558158881264665051429944369321518292540577991976226610746071862787177364433214054069667913002224359139561425746600111183525591271626981724702858474781010467567330691538742994638802179194286064865287888644569991229497732266162551344883801796877507271158755082889599674377354066789792241351674973634936971876829092045850356861051871094202096172688857667445444729122018559128769397859021116822362441554518063512628182754186940480478774215904922249856049972145963566968175972891988367281461995146917048666293355915836551343560538659571803018102600800179866068220178589592344810967601476230533937888685953087243231176427910697733769630235731378152344133983303690897203800924358817424416456802038633200015451340035468321593338156054627903343810127432654133187898686296799302995061767285445771898518640915803413153618743997396965740556596361943565915899608989503255963423782837476036624850517961160861884254802528727423587147487648674643663832615893588766295131377525005838912569435222113936484106153296857255803703094478768887668024019817069112198140671459970443945031016352147573901024733087305218591989552286811886399638124294838283851847940555960803742685438330773445526261282289559327378800372021555951241954323397806172496039695892958241156388258710719410576395164869072166412518233969476218978049078793053021529534433708969601531546944269890328635267007043500349972215655013069832435486272286280283901008204071381836940056707468933694431416133505969232273587782999071485605882100757995655959817494057029917399629228492606420206706051981778518600523230928164504685407183000119731158513087716330582666529504980493419565556006635256332461315750754379723586563442905572955409803097825849748579851356813652447305348529497580820475097704785168711836182372123290712094412850710856711136036541005628591471709851781733352453006929142154844644758617779091867165392489589795792364310877041912381106202685461704395275526163264613102152984406947762728288470621901271794221229425551541057626539066355233203754941992394306091375445515440784894515116969427876424887310011007013708292019335962735912578149445703496928935267244083325327015815981518227915206238651935141902799329743368954618535381975291188475091165339139981783697048813295386051413444553613393265534746544557043502470037785905231280029684322503312982080249200863469735497181006762638441341444098885000402577402981823050389973127863800106267730261128058901256997237839252806732589035571875041251832254669133283414674729390428772283413848441113828076358288067462560052766633242391051453910824840228695910205255065802920301229381015985394223266504776762823251353893403673998040553059625516650125740366215770428272476275765508075634744242495998016086741344732799644993745663720718379402360091988002311899801883084709920390605380442426111646468581237258322341886343955984488752289880358356275398407668944421419706366562940995207210506944623334513892321099881397642608356899107708840689452152901045946970316350369234948741534194790792345167457564404874791908662748882106360000258378753802852767471883485556285623879923734670979135148051285492458050724896391932621865366429402440733712935279259154347928549415693898444357000853283933840225349918275323794229257498573659675472197760171370137984078993734692860009275781563342988190103925470417652842980204357981718873281502909623325141580141250062267170944504614003393258620190462939948609863794735438240544655366160285865863506236330027620360784782056324941047852573247837270522590930833235483069415163691093343541686398486337932842961273544909629049794605867662083976113241567523940242434993552362519975462290034987531886475334444999122806167042064622520633949239533239307596532761159798947643427333605609379087707249789553621159969638408487091508782827038793161301796927093552014334135730096980980054960218173101966593907836296407550793641291706248306393137531735639521039331910123491799939288802933463911855731135923098073878970555029573659148701203187101813256334616236551188476031467198974017383137217842621196523498967080618669711577765594365359681043277016763127300273292366690992332593804715161169799423622597365731116498736625053222475313134191314056677168092167768230287961984715324573764238968860188846957221811846165449963005844814572434859076338025092600600681107310525581232398750172359731188403233524740923257378236010877801626768956925712203771959312395262889948487763729448239047217140384593759077054936035951955926082071370556487714546314130973345787794786729174989620771573500542190471765048960141717238391921264862389162544153670208613908107732452830006793163282082087476299245065789515938562743405265815718690854307630075526984124475698708914331159947550057258785685975986345320955860503342707988314226151341043876839638545569109527898227421729041115646749772858623507260573146382555304379486109736729973483025820203359981498661269884992875982978573180047104923907771228543911899791780918396908406236248671519960378587109333212195297461290673908211833354400254987417470180478834522823439483500829820675769958388600327881614639436891337345470804732285816549274743199334417413166789680516218935204984400763733539596162378828428748679950584414315309783582675020831946181017101587192402741166099504682310254285976801333173085851819401527215828703065489994281923896850447020279890585349345611376267386970346501787670680828357574728741487114938655161608766832314745543602853822745387266356837691138141742504573718238317266143169074640083139793307303878657447003799455985410248569494182346720255576024439481152291474264987088082873747193230774857805768756700860750520804677820156830766243194236993610346587499015736457162919857052461363995945014735309373944945987901741496523686561246433950994950205405855968384607472513799355090553092707784473018236429188498037950608945603578757813875807646628267861722737973296475827021949998605605795478071221428239978018805241334558196355279955899225707022046417336739089837543954101689452246364057362630043254547077297226521969911759493845209348653060808378133030145420155276545542153714048830742261796287726247968346608116966981288438184027936617453390216763501789818120669062802926417256655885256894606657692695466743487104399423275158696583859208987135730869409790242541948564593588000271307972322930308797309281606795375078932381909623396644833317517529694144372226978814460111521702733820504926601244035220673806705021234813176855997422730756437978493008634463244607100675738249288607649111722081865456761897007540496286909165359770277224662827041684618373185569209915290986111570907908365213337876408094168342712031116020847566985967293266048692729886090189804603241843415374000682267621732497117819122949612806104687372099862659912570614088483797810433568686955123210213304263948214899126808069221219321984660385312607840515138064278964266806954028808893387745323903008510367877124476064690697223178170728377756055719491681606112031612528549176022598292657353432326368034964524199818452192762630203203559278069728214849236918741181973849692826097371387233101150329403236699717882827590497496855606843120138870057000479604828044111004344351062642917393550424499495124586951117400811948987584445435555187728983999667951069105888795285063131465714237408798686887688629339587521848505826974453649213106846084625053266087240589651649129652621375060462795270602090590533155731479764286867133606275707481797532726310823034307252762010208918305813779280850682331817376341844672713436702876395947244555172111526596752745033039947974166147840559534292746986207092780911709766171199493241512244272695931915671345830055230483830577604348831072703136541479135893852927680295383570723760999561671574575090864824451309269591105452413035188169165020242031938290421065559905083544013565963122137859090306729564187965463718206620924558818267032177543104063446667419353311582567999796146541192361371084957902292917420761409269198368337656661396180588030205639820584426724647681371813547466558631510819273752808102839938161322437195464364162824611162148295367883886983529591146162284743557904659055155600009513328863355153258270551581267184134025531308545697906704697747976992040506816145770588914981424015281342990701852117040836089482175636941192077674204910044275259525890821560345013685222549818184619366842899970364567708899184180370828010962057703663572698511319008189598459633677349035194924084800382683289427154600494781405336555922143687118561472055621028111627880239057827739790754940143862079578054717571298785195325352454907381452708400739889205683053359085533416558383212260026966104232188748154494694978027068805738096022662942912193392116726457349982862623121290742255279911855599235549640409351639574919112853849339762455898971718712533114683042226977873366961025406349264534001284617500368806189267823438440414633601863793190539331536690226975664300329885963386243187484815868339436164457034734834385817995016547938428405813191171390086514008353246924884326023119245940118911561432447559989154750287735549821595342596589999323643329629660773453342288195693010663347057790518052106016531402417110574039382402686703394838365055564456997066971588489641912449159236994203531228005635702174135371578668672970971099378371951227828003567592862703018422267386131501760456748525313281718982806213358680619986074827790983554847971168513714291098993649994005603100098142485882217767272140703412413543224575987963798894300370841839195710903628875205402534187650774927945865097099209986106532010836408313654785340943666738131612421652737771143125262329776575821819070114400748800733172005088334032308969535237527100872250552218154677477488976105250129627705185732870601488544577116557439429917599537315874426895795923972417542424562211801746113065673979515989791279456797596388972541651886293242646421606795472570616723622952041423333051593610956073842433875032755141540367110767430874709417126788262781927167683520992397457117676212673780214115742902995803531955051575062184404559983130977084860969304589336939099868506650249371966358997023086919811740027291666443588757833733915803474573348036697327031549802190776140996945274962350937310555194450395582763608509166699224682794207207317270432022838095001901701582208798976453183238791265080103849060377629857668614329925114309654944926728458096876612490585181526225761105947203078661002305981785830778299537150497287179659532574204610757847961766189550194327258769002691105258781906189672385732728560795736951524515051524192949716462558145185323333426541813982398670376986609097827671773672959877661364648212218130852751565468431864238024513408563088653808275588471600435041025803537004881296160031312483939990576924134035346125027889752651787746585580262417933056647786606744933975317403680625375686720974188951172827902911906985679491663094576841769507606328367522498154489186978468149574856019342680882764934968050539654503389757188415795799694499451249952222477997363372839087828142918502441189945312298555313908583612629027087401501896310576155216214651788662084150047661964878618389658148734652221259818278517166288019863240835057934070210906206947734965013664630376549233200645362031525517461455112320789096068452438076980545520025470854507123233752317094509025796641628343220846572470373758358216885561440894545969924408159202133045675852386042711635525254519638940688987850975464882076656300157015108154974462137401797574512525741282166678515183172725145637433320175834239142489672742104961526612650760439321576560526621327955815537555002796891315478571279432723545493090153297545649238781215570003052840035859097188025929610025085555508163022975999494705200454376182739050246683451768584951223696426115358972957878216478068292950053398887584111795006266652079860745362148193061545522742128513446024301044576583075524358666550768365907574216679756965895190781509162785753655811461497220777540165788779058648349664657248393524129981808931350555188039517447579726764866413163626976044445851803108681319616875449906270564273784667896513991724707280052822294849110337648490218693198883500778993589557819329844824458981577561416427876894701820967212888095418529128421776153580931595142519402018276734982093948273498566480948947269702033193400932201967007725140730545319232183505018320633058328452101308285405946900347247523746153684540787039682678265270252081790810725320618016247907135395017378346044733159400109180192235080924380728725419086202425489288068466396408092648761355734136520188513078063362183754130166902153313644609055298464600534603674587421850342997107022256406187736669653920225842269096532258932349849380894681862716730052251695106940912172923628781261584016791618231524152232492850375586649587764230228366167762143704146444402939214910163331143841526296902427241550334050457985830602116188956328927793152894553763633362904427721754658795490662573112659625669052375565179714269843274789589951324960906994741141716303737650606936542129748267195901485972437122356423382740608800530800072280231396888193854172311799255237655141283516898827438241717421383791813506780079082120157811082361414242035031829730849151486072224030373576459878717079609333822707919321006600023863857219090145628747468908419501677647901891235287361477316622096010069341503980356454951492959440960562327483494920042767345520610483127877393674431743257275621237348920599873755869117230422250122543479757311059985591321880026470516865879857231472377795812981599551745144137529987017702275189918111635225577860082162885953940601133853493229042621805658160140285168923030777526604839474327332537984978155091301809955301714429881390770867081074900029249409359366284332825353464315097526965893986731324535602087591557092619631736122949370926414608859077698216173914253395713545881323882763921622540236356002871306595651179568193309789998830166023072316104947860360458875982976151173340887173362434623978735940259533906950716946004289613554004778314227435727521416664458409080852164687482560717254408582783729035162781806722847872588283198585081573992007928075829354719580670708006746788498474592733533640981738410583133721588863661688737561655418658825179933192721570130984748323993309353755903654189859660740385934849680895111530007652790014026253542389276766999999220065678283101139566325746221087114785350631112673589926814456257623959256863942480532470170389919055706376417674179014359149181209809818532185047430328755968104051526295852807982405816559253061986054517497227476381368327849323857883039734165335493033034536251630675646259790855114788910214663853503401561180778437060414880148915406436585528131176139571770641016527417448288103747382782636866763078350513643844221650125766459625571721272167676739074775311781275549565228973934415371390012748433146885578887549564639976667736980419084466655611922088975365836008590815035898157768816938148570697160376130890546136139632117543462114165421921659150655357064698592756052342319231882593054580597592963478004056228549574387543076353536247628002517494229502716417063370911302879396948286341607223756000513296807246227225206551701627690419958278611366149159159962090996951394184043716912311094418589729356456377078477704635299114656530896527070562135293854683766993544843446836096391550076167747704723072977290175018246240137009268765752466703094880966573399752675764526064023833809420468094919140763082702542084206259139176725078605046259106145999175164422441272833094872989668191720857601390430115753876169876729304551407340474056850900522524571020806176666456253694289650961551328376498608249638366716269309219063961662621137893860879881737760474393796189183614755089072342164581829438643607381521107577391035611664218850843163822459970989085372916161377597742056660716311383257642249025575439039712901684891086944896063167969398579238434215324274025375679339967908783592956892130045127890682504407942376582697951367884062586210408899899742023377346694559419687312608978937970615710960012628255544475951330714069377914378289608833596091540835558085874135455704888796473302441220034171217656766516536104100629711510293506783927724950167209224969022790585845031283697197952391687822863473843494777034492543941210607240599024310501054513856420593285982414742090386713131329496328045217665728519987276288896273074012351641272239824445379571657008732996298920659890649828641253353735877472385929968825837082310596012589700319777431278659980724349808941256959578205543693995271246428374719042478191612757901245971099566777657989922394383058808507502909736635879802835171085299550320848030601189439767219362295701434936307837749160223718405671146121701304188290487176651850920754937373948369297646983836614608226409919371236455001703934206721357088076091005624544482849903174873131693023598082283996619523865532234830353855351162436034256837223500057632783014625360930389097620010228264819685127349674573943846319118112288061257482527982215177576452492304126983096145754335729221241285590742743353857553446773402122246145240346097804644104243939876501078200968764870549531039107173860603013349812950442610621919155475956045643542514192498659386249278342687634939724970852842935652455910904174225193500903781070226231824288476482362059213604324085739589037141398133087594952397698444616546247264281922096271419254598868865993807660392551854946979970349952391094018206357166263263900910511595698271785044006443958085782973537549733084280950103124790772656354998617063983479570801050150394394406699994333716209544551239251607738958647234324472313414115620354932845827476003594915859697639411621581186468823737659486634295827967199433724111312748824809106846836725343886356691996085706768067242409168050439778451345763407225882219104642646705677765762798641618310059771547960996047661199300445343713551395101420594661311116313372983111858850923965044026314326186551154715056799221284846423015324896974756012683115549049140338237248863815511511731573822024904513459848943070940721626399295550087592531522776598709709608722368053620297820271181786779292152504355038228558106366720625269272895578742463268110016621055671628936760703108320661307016922984392871683754463430989365936069906078366593469058007567474703083002357618792564770648565745687150623494335370336823633281176470947283218340261214208293725481528715270303310522470677495517591902575041896370207727363487394373777340594393814942131827818666575222923143604722887005187541798159754928212820814756773017757199065475795450663711879390102981393400139676444502299426283713536467461456051386925684945409558763930758831425699179514283053494150599306582385237430302517881825677049759926797198363846764551192143415183968269678352483183826548033570104264898526535654406439388367162711349402021943383236406863109678522358668585311218706001727993658873577048403964560328469375691115553564528681445281105505384135945562302027378999326448667811500167339730187125706467478017012774367954524880093779903634755835746058213170057608576432068859168856796458646912942360716030355527005198111321888048379593003164690280701239631025949555995455408150830826079099473191828057951309919715733953467018977784784424807860268148124213332552239210160675994206611407898859778848274692069089524395808130777177570908568707586493498836164517609087835325116620327610345749708126872674642399594484704862078803090570735456826313613155000378930313888793417988076538632976480456557732264996468004594844658481684182622914296482824828695387835867067465624143317433742770382604687717066978427944542369779236461300047485097767084530281694103569727087744834031502210682423697768447120508832065788571764024677100521761059057994393541502194917492379337212544018138176532347586444263244075924483490882175143782275921168244440236675774024769720119336927148137541348332635179284681804130218914329684727688291700710822756224228117581793851577623613262661200145356895303338185710825438114005197574690823526716077144186156829966874762520534229408601442030520417489476585332692429138549289893855215284002716388192704629297908764908766906781355237391065297644476926448793909449171170564219269337586372916246445713415601557827378455315002560311172642533625826877878262943710989118311722391713939300735604307874992083599302925275103059697548225430787775254036760272320079669550195491119416443158856240623770270483937461462734354727071441829435489312584706223321353344808512747732581291592590455747365561929087626247732233203553050691098881978983720115412236741568337347768085959197932110445711007373130561144195189518382006992973589052631536306934049769765357075683380665336724730969474101174570249954508753183044708797922132531420289598056944210014228387218572612229123465689378350072970646427807702163648722468612286728586588261177251130655661010010450503073884349965333737913234441569698045138677772683037901761425822483196468432938501300258966346414356221262450407109011367943023629613721494510265003707575872848872162788650043911082659705764802674632866751572509144591738231817149161832166159251554664706766281589783158959209424260650721892612201068669798948289588145848683035143075952182098808698801880669989069303816431431271591451294545022600465608260668315640883010025288002753221991650525838115209425179097283680742097131634292331246519439244967944716592398840922510392941525989379134703835900763645630454873673509927602531986311201348687616637599756668629903072931759502497036639870703750198722229590501267768709765045729279081393555149924196675591000706145098532494311838748609875083416456497336130497180481121365653505385723766734580452254371215962646958275969029985935765558005654637541262259482996072786246616547762770148701286432970560248331037980859436775256589045676341064473908610628180102439838499219792523795933664537469346527444369053616355987052278120877120254868026316851797074620596508949834293258793107778691269719318517870725413461898640742525939271555052794800227457221883487703619907827100050730605060968898173677087663706344123389080386942244243754803612023821075164443061156783181895886145934866193772977286906011789809924179540303117130872717899364080214777973776948393001096181643655495236530264154336637620145582186406167651146114566323835011286267110502255746178817063824813618770109719968230298914469686102661503565020421754138602209085998463458900619340437251568456619425470765759223901836257949626286759215723882215252216380491883983224184979607050080796209607039842965564538630089593117967555397479032886382857496328805132488117244554660453189881285465214746916849929741772836831258662842356244739783376294812105839797309623247282979390015920555735120992195399280164252783012878266557091258425679087357854674372632385626190354384603695073679225131365988496929745032047739547841389507370408628832553027522706518735570651701755109122391123052121789256970955462266637341337456409821255389548021006998015561904343937752110329097624937897579363650774764211754711710467812560728998521781502096943815738599099725205691491872263440065367373021695540245683882876435727041389344414003187771248656299735115494040090232223386049002003995037908055637800561567306959256201604369236604273410751631732060048525311630241427694295653007328490466679310144950007624556217103586447012606750784227817902709938906891029046886336461993729902354386597306712213825506044341070182135132636125336316830475432023368043521129621269801594118722994577232648180842226202865818422420874408253170662377609201079552263450226573620792463048800081353876547625884934916548616148059958506482915962414644771437380652900268226072546587572103778347121319629115086766779831397787486091898763683616535302259671959732589252054180693224585205002213366663527138676587904801183153681198592018237817741207192897700673982929777071631401813900197907255400559341851826906715351619972625610731260339749187903442660555755041814980655479758901512857441798318478882478477331476824768185217389866615123455234086579206257222494631241731177815654774371835078263929272007900020228564431263502862579390722010324307303914412222263030144528991568563122006013903103662160126927058736780547093657804900028611458811581913326190616472170636624956492936035781662350374427375012488987229417084905552008912133050708147489774238749373941529716959329094072125418856576131965232319708023796307506943436485487976448537284239907534726546383940420294855691425942991259430189729306101788298823792114169684478807583819025378565677609697097297448973337351993792655785264509492562978554749611356449933090230371225450534734719492133379937722530313848470655819691754882088186733185236228232400512258366130888755153500130807988759069412582127950038399618661109332445775835769554058825773042081562270485688690702242924994698889425385055176788289346495805046528354438274112456578807188236656178785570625542795996897033507249837547984764442128099943005952877028679227437544124908779565554978989107851899208579441144757591093146678666251153955232934430259534912907182797982358478445798721810660850868207924776233667934532058794472179038834292398556053301577903710381237756468196112346011311798087376261216787499365516805590677938588887519152602029030140979547510901039727324371487254186048601215150957625105541394240932037718166415937510008577818864758696428802618492881241605671579988684838322400427343531791331926406441798677299449176531444116081519516330400460317709871956651698404343311870421202951196193141155882533078301749728299538467738068569527135705716633528903197133512044861829451536811617649214725495775197033002929884712928663300058462837025734466483847142254323711690551902160379290413586161962008773772206948156243500734402948295018987764821509769437494972675154295825056770702944599201736583205957524154837976282410784596571879974884467093490778761479893028798966301769227196593227631315862271522255773984196270358924071887578891840117064108578337108450561761388833321901710560247324094993056901101314726452493228232339144015477781406204484591014996865822692254799793418374484936451565689821334965025246787642384147633251427803293378042748246772689037889860052740796160087194635600700149175101394340265866831095060298570165984737908987120121105937898371566986569978599156828379895421524787703968010500083038571344972497036952286987853586084760002676520429200734583084338289220199575315588073364217741446302958988075539611743629491099200045781252920207092227851445646768850912176903843383778745218076103917804256376651941890813460283248721522760367992193409490025119267645826624675364080041984541889289093840743315317342201869152903253741538865429566051604556665883332999095918735137448677273114391804908792282168606975620808259521758386175432551377038955812652691980572894611329836732036968282003733479459784953634116642979856699494650042010022463879498296169973918820141174696046022468616827396711837682188244479595966323262884434292534055190585324231838108420879426077707446040899587558027812623802790111768804161999869905910429288974700158075131305845467331957830902671467607648092353322278779537064953451890959573057922442301539242318047359601351893671681641950646480210819667966733785259543449996461656857429875278693080276951788935604408390327697090974384733772418169961164789553714490919757272808046944862109405643403399427025840655815481777181738980335882356482471853876371443226434514044901253161443822380359924723259723156872825833649259503948001805947800993224307532172282712205377208793105197632747384176028519951069891242187398494841545549652479671332719098593561155486457677908028504623301594529072398528482626381480904873796296252407678313746648278082100028216262559446666862019418802068463476563936077085112162537996485945270651748947605243712019702535122817226910658207944359212763603533837625485768935820857434870413331231665088865622029577103723410659316149539867305287368323725600750145549616031308583283290011494375829230487680680936497581951786187475841112914276791168506999252221377932654226776840951150656831119491816872974658888645355912144412815616545381864386998996142854036032018177838739582637174351261903597014486550954895577260763394092466486214269995430738337504967818189615769901946935188533574820807441935545882383057121497135711445452423657474544362984311987484589527755351950595741966588063849894638155691069028235594524010031258343744088505029690094062538116010403967922914632701809040910424613956479370946933161033909214588318958988555394788362582342021490565237279155686231696614563448889803403001306424855941551770367057149012594435825254643917923820267174360246649624616329060372203235775373172416280038261294895950769509615915695915357078266191648775443576765152849020076449649296887733759508260852825596441251101671611267790565513714278565132160195380235869177738014654839105217323020612338097180545960421871277311121553156800678401274852946010475353970693955307315873572474599541383394153156680555289111346717598297075397340362666559047554170941966833070990218554556359904469020178547204128035350774056638926768254372657097249605440388445736724818678667395650990841442952460388232387591298783397020227276775789776338008645204610444348725853385383005853287029381723494063572067141902376193374967622337788738260647166502110114550004389046988942222922995359600195841174727443186039678816898852505645877061908096271365280222490162671098716419160806230218962475095374607580820027410728780324804451999429165880122660361578087966792306449350924940360522781557129103560789414822855909865851072919172399220990326304259846203292903673953264107158246430787503695742223798400841963536654964329837687536372328521276553344816096118347618658858418186697616930317109672019073833285504392946916333321170508437335619511327800963772527819887844682862503577442166857795149332326156382124509748864544028601165804094384409973758227724824247495809737371552340534425465760486663963650849712146762919839594925858982826613316625029223669733566015130135097303029980992179847057128473475408410613452561286609612553099267786974216648693884938428460905351297207762270402760380457401222332642401642115234282938370457342536108204644314864281904979766349461152411076272753849016279421509699780860154631049967087341616722109831433686659115174328873777581046601559178927862829781732897112945096913634730716276228745725364413996058913442778576197242479409987365646428958660128434105942734551736477985458276936812822914245157113448607966302313259102991442066204612809599798027183349633901872810467846175971961925770207586123466825921887125234961342667675583489671904047195599921733556333574496125881350962588945886025313069932493382863598362053084188125994255044419491934344839371526172579269155084264821819258183647670362196893714292947175099486614543474506313626026415727276108340798311056810083367304025968361555837685143607706212416870123210893280339427139527956864052171307992845857196234974645524073711667267920163980986713951383650848168377159041099489112598741773017658531111245290847811397603833236538470122670599926352585694314584133806349632583332085174053785582019564996160067506703625613394827148164881457985384908815849034926930750170346329372222579344234821694289846730335420676309716778031191769054108182537942971799536002526389221026341477669781282838392177207016175243815281328480957464403231692311873210663716616058134938455784178985713446463623397429378260324140458055722826308733875270112691380702558546239681339020854294901427115244353501980033279580547633787677246731004719040248908284353065067418965651130882855054609310712543904086898534287223032855982571064284268146304608037780649712899828910187756854987851675588958471283543356941890988839448256893081709576820054306865556087494144450998665307333791071590434448281237213512363969773306497563225254065072672592804967835693230096720537055957881313205888665320262151918145502307770939437552884458141917245634597515168086307925766385266047048020113754269261354566416655382649661425154633885483065870827185411501712084795316771270637845093377502826368841544256176111380129321385431012701810887109649731239174643355198153448333582891174750406144009558863446627066414580407977817128759499993737487886202496305773119693814659601906165633586176832577927875243342426974087068785029209024139997514386551474282585652924211643946267461399666680518471211947158418630270411070445731030771422602731112656680164502742388422617746888581700376722139670731411711938367243524649773953753758462600825017104981670410185854983531241514632287740949659428343067838421993437879850126592480341294936528099848567464175164886719052773168906768331222350394559705747807401402682596388860567139258840873899795828621928595418993598288660897820153151076002561529670590986342621515711919404007427115645518160699512958486268698421370975066486712602312568339525725032627467276058896993793543894382960056162559679765425404753784503324440528895288159731604836983138463036294347064507032873425498707609465066934721989642123676815795839059757545413493728906014597608812433986457639800692340006136951350861468458756758249723514338157574726382618088863628836970985151643788474374127881708472069382364489458579016745542895880472842082401080947550830723115996403563945768228593610490317256929213254174139923073028741505281953503230789365689574957122053892370898266805064884104071510347024710565665692705117986800091980409733346358327446385527889609091325874402770108301454086858541530214405002273371775804648304962694839786696335856103485228817220478452025720979848147862401794222426456285539266680849570627480671598619311120820886471735636946805394678488392097965011889146900016745680610141052139022528749858528659393266918779454675001190523811937246456746778378880871998453297415077023984673163075034281063241328757411335447240395230616221821110698339437435577031385333804883080505245902871794917439851801579418182510853241134788335272433214924855238106077391679712634880736430897180429779186383555475644283012437215399412305536407772700803444141481323302421484099134635170782167109570246565408100925422657974225086321312252990534811680285144585965918860279827491181182756915527809271623662441685720447594241528917512755508716685697133584833095556603844641069433168018923058754116027897771562569528421913813435437624533299394238382046319033460049712155948473515084847981970171130084068357645226110972892196107109603007813017773773422335658500836933343010274990048179815678434183256974790866295542313408456471538888179174930491459906535900026214742332804281046498179793871637768824666428722700463406218048633305783241592869696718887113311861076941282567920155027725318024368975291368627031049291302109790257005351583676099427246192712738786766429326111804616201145607118314711983575595451238141528091245746067957433502140993162244147591482522310361557165112035620698802260456557654734312952209328129122946454836031535615597254884296924161691737310736359924008702980269738709132218421110570764331654299320800012416392726651083354562115173439485314449719981624281451779718840161321321752916042112653900465571103531108877199197840791003524856716841482684396633603721653263917304079872740018098754644339345489857732035504737695409876354718615298002600576041700654814779989841727458195270576061840440240893776657306205047132763148071854791698877719467573431003616161560028196149175589254028245743605454292483185085462062390809489476660870838432072290827461529843033372665246540179959963829342778888574032893203939985604538285666893958406468567397319915485059775531245681728095965311685500479871852508750056884406787650483485248749796807696590347556083799224071737948703907353575040521805126449461495456121340868737483656798946051404134390940680845765182841714046075090749118438259740321991033416808708359222361997663911152661939502486360408308989246747494370279837060554190316709113706049951167170037324635900725462827091189888361791966753728156692011681390176209434443900939466105312597703288145419737131773279404058131926592591853914924275911796609059703367446165949063509479622571542119351740489699690037204927856247344282049094087997826626862127773511935019102065622385072451856244891674951130025599190759907214888506032068741302398235456212365129695568643578446580983122256528940103675436866098251170704897156445690802946558269217415068444873805949265330350033705952357713248359210325090426908699003849000919629287844877864255960574561829072533534118731232370027192249796860535959022652759051303348024804355125958768601060688876110933488960469878396126301870680866499998821174757255322693616429743217914731058509717558375948253144722535054490924681475490247688659059348720541929501199937812307396124089226272268314662986411625783895881434012996860017657951787087013112007609540772961556711813138803529176365374059139274441356646235843661039311215560714863325744979197788056849078692742821940979033582446140854392907940594023438131015842978262649385040243654695427568754256006541973221177282561663896449054252272251286030054321889396910714518978780187092985885923594484302705581605600402988770779401380987398088461737427258370773493410374008004391537203129529144404631839090647373126301599369818383159137924236155953848845595555279529938968634451070710183221760276153804114154193335986922870101735344431576557386479977124312921376912631738282234605017676475108920990123028599377952624616515959748814156437043955131466077899811869530881519129621898593785662827780796411710448754353954820560241586099731550756661572572085951565934692681589464361276821955423762367609569555051970428859567349630718610492423271375039315228767728322143520342451599361807880588396762461576391630344670025183690376004636873589171823422892773619827256204063232976919201973614603569561565187490393777201022836948317029120285585108315081332118842025440548089338956531308844020046951749753184410262867185438298749633784062196245707256340613379942807647759527290134586900829450206248611295629043191292377983474991574522191175817310857039780556495154100204772027470947942614404488060525881062550387838076048640012426403391950464563895957297983134845138983851385700646828057139844084417905857785087913291905844277609566036927393157604340987044267574459608184250410708418265730435164400225885257501487981933562631755037693714217286004915568038104030000593823348019541567433046374603463483588923794870745622011284370997591379510283962078386030797369393558513209653495961654179893875498807174623639081370204415229248132170303469216747011185589691553011324768352821563216753476983582371844920766407018011708327085073790392618161727128779121784211018984396314246524609948031839948257362588527165395629084479105434052588041874830363488462030968896817705421264709808511916901312427441990257603242625224300191173172750705269976137139028249955836864557564810340216072256184250993766264586505522097469179652355861226032990962734290990563033844193137468704012309146703595486214614159765591276225780566585328077614246604291778480479048338463013632813854714006109187894986202078103530022200807456524700455946243763757442694823608593941663493388328641217418347236145115727071146651089432447955690373611143164434928535783264652692408591137881408939652915904001130999514675904566484236246531840196339189223642907065360496709093622364788829819324255976063260136028211640772357989188838161009118414322767061955514679590750698424265196557308293560215393224887029296829497333700506721697201512697725576650311027880480724883480364624033463418872079160778244692093070290279709157380101334826494879550391334236275092015282226145200609697395535907202877620684728911322125783169435264271293903169894615092298260264584606446271035002292516384651695186873180665841821676227209474125815896803911538646138179202743032627036104218203813196269556663641889533571203526258789347750775441609322289450738561558650923941303024878375605553012557901754392467694448878378611315361144694902595588308610462007603825249892550307979058781417741161356925200029751890488539569550822289835921659670786193743395053977960711260153031523674971973515265976229134226022843921867600898139878905336812054442602441549373160017434825287200303256458045156069219161679657689887418075328040026426538490049363425349758380257389622689615113936608406658496259960114900343492772870048444638057527234783401770771852045322324921145939583635539066526949647109234578006267619005008856061898694211565561570102865190663066101188646811111944996356100751142698639849977573388625982282210287690259594614969496324044921745496888912523028908616619887922204642906618502904007553894994131552749366391271815134215439251868307678706974556115753169811924622870356069097902915656723481702756362352822701910341026003424916865566421420587617588066857566931816340784961012889636350645963613659168564473419429405290520601374487926013567895345559719307810528200535197976408951115381102959527499031065907050342207786473242023371042793042900207083706865019041365508909235230268850231951106504395452762032073982542272222674859525851146308565902392371851187824646517600704159682353609385698242320381851066399713981964623949609985642588065599221481904516110437256369619476690242563809691084403684323000738738694557812475228700683585249409092786150654510091905429947618768572684642144236623402076878039101024365684469475468044380746394509900508054223855647294761005021038004975069420421691267137909830781870309723196388842468856142716419277631347328631044982149781866221307231116803476814419420811029202780712498721539608148250111221378307708937425716304317059147462976422594740895371454073448730652310607230200997574647252313372612530788528551238271821966854098475825985272898658648103778704153055688624271160499315575960894351205782083013691057423860552928517329532485267937202976937095296136587564010099083031924762587947120888640387363247441798692144830536181050818160283889206343327448694938292933579133153389295057853983442214893442306060935141428359228947024297803016487653540725829426053161660147613489592309540098237306559477611912175831803349554704494439604567873791633069348654188397097629851039150953486584635712114297644716942043912103475750405215295178533719964017168633338445392818591860698314557266940906699223089107218291950310065553783286126335557635391965802990141604774425933794024051787070117263441189926173236957321698299942257310196262160160857976279321439691163237973959172306723529260658836853824056322129619010923736901036455752912121658621897352092232754366308034889036549240854493699360921348628463239790957601904222826813534523746603240563416634470795037269149137280551502010387547081380822763376042150681265228021673009967562767985775913140885157180059435553013440428671523553701612291518700513078342363106800029830816568085604805113310720207668048849762384214242694187574342208230007189329204965172615088212589420050268828907662273670182623754690783574475700676036491089427617272680675895131965521644084126058250086357284385016855820899394467229806798755671009242723171523604605845433370707771980862871489431049900750254515427695981732946900401347100539290835342171060643690922008842352224310703543162615166180563588610367862950961328647622550201046610851650869695434396054590378880468922130875447107748669068599083603867471292657543549473536381466949785690525386947022884259226926502289351283454299497042077542306366915300099361253579287261903282743643446336764773989924557467449321567092475670849482095506934513263459343704273724477052967093186895520299132475667377975385270211253456983749914668319203474196214045183292342186470359204917792738980921229597965485489712372923037283706864288168201554514999685913452090149474659913896965650286366927707916404582834575592491942852421831497463763669744656302717032231775605899144626796220595261624911563166745815219696472714234119018622513599748932823286540893991934182443191989668057100543404030314130884059274238248865979625530070769293626183546461929636151910505240386838762834047201204390622993977852566909192136832710167884717454306164461292645770398072600917226440758263897419016085262671112485693471881657563131732764640752696294833253465160965837998240854859931922510147123927019662830918165953556576184724336815957376173410755744736044460573739186002333826469000911466952353761558957885429793483980521297918179480455818747776151995123528435950122621301197876010399395265141914850113184199356237226628598184157331963207262734322286693230372710009395972964438250537732303594990896406195221643998333962767756155058271051061963626570695439996161439850913090435391892738905819481926423107336260244116159116061838015205490158588681487115243314577360383950114760922970866732495689006317139491011097093934101093569029349771544561452240367343251450273504484586914359999850027472860155141754770979027490241360270524254776775986560674566741579938374455297680387907677874697353008921161139311789968726899899655168091269476492949646274741758856900741582605637589952924586226784153883755497688027104178092195716586970407686030671188710754882906735320297221893646915031700026070157942078567181575169627535253358620283977476580612272459731663514809987081351694736932866323997158787558371854983854753726847588607586407091429975698364099027559074735499357323504164866271381682216896825137417298236878011556767491699760682867273263369812805674952462913783864385355432472011172846981349663341651510596979139807365840987852788826813809428311444364254369424289164564939963107673105448220983277522099984548953838574707954369601376684522653378398831774291138739238629518641403491284566758713424795926311846135352840960178087050795052635140837560617760495609053931059673888576449625977486906565768712709807898167853079227694533266795787273433496884424588291678308485635298683691257275008974842585783597775701023182692358878438635217676702248671500991057716177340038391202689637139561614179202184381918360764665867663929970629762761862022595009220741051224600739229210882469057652934071773748895990998457121560046261363368462043701482080171366598132325512495645224499754446203931525963172707658869506770279911423306328135156728616455318031439337532241458072295757631977909266501852867192110963970489221318972134539713714138843889990067985269106837391703750710130542167056286132196910088305838872153830038183166906618996539070255103826948315706127698919467159825817648622877483395214491479383367555141292746996393326478491252491984774522626104313327818231196103778404253936703003842958384835020730161268078772868543634827082962545054983809874361760117620810167011347569741033009754450255177959231644321313004837976887128079482930598864223906351802458235527108792854846103438171726661543798624653663678006664641055942615469304180899654667017336400064752839246224482825838690319925861058767485698298482479381669420349709324421508420761938668541681531553421903917682956713882450805679595825737034626543525471485224330832515376867232473968151121863559588754327585684583476409299114428928623377829994672060920422835657783835092846122739684976916527452037371712442289519874199460703951024441418166866657170329400633986511034636409201885381703099044759450948924656247353825122160036421213545784800894350116657643364435232581251240498067367810065281766813374042883859495547235501220400139629107721028466649091662959864443229998958035598836363655673868990650541474836403277407920351059882700218937147735094740386667336245647421613031741554710349870833292494947756139496511277636434176128853342537035054892706763634484520816795728641447646450745532945417574904119051193690383424792131444965247274139716389979468210523972717272260556158580144262480297160918874378051998175877413622339061097159505903552395909758531664292719943642746572208027023326108778186698809308786658125981710484879090573778807743831549286116015057772902450303351826733270009606768966940917506499131349750772666637201683633506958791563190941965462942857413917350824155868725778628835313824729149138035159520132777088102181850192456759756623135518279512949933028816812407130798993105268260124326767577217268088185566657097378105245272159269909258823199147728611732148524486700380458647763797978014635765365861291512761176698393155133395255453136901455877849795987013927699985449434739117440698443551417022727781197314616097626579729869805431224543048245668970606157736196035772688483623537333222945922546835931703020212340713835205170574410409766249878596051210661085588773965673407599485471128339162882102673373797964017732656846313565158053181076967456422523896790183244717835317585822212083993716925103754869242986616805801346316510892940722899478161840837656886584729636659059892103660675938332987119721322709701627223229653889918169840039076136689363439709078136184416179121386598246820475259494278876296694170147587501508325444070860787024043123430299647235015513675164140191891741900808276941906351644813286664369578334659029094074722191920992800943342411407249540770913128316572319944666351468730196193831287560124497482336162402364968067154379605156902274958538532389726342703511063635332060227856126994529246012077485294394380049721408437451044018536049258194539460658315766544065852646791869624653034755955757376763696185171970470269145195407247973596606914074619309901529170633970835660775474817408206176235748056385877346367219147138686417567325673727090855066880963839691803142050298862734799515313806912497922415643691845687491331037940545036708419566860088151687705234838528130833945442532982562697682398607046358634998061212252590290856588401571762718258617424146984455839276885608254431214070153398866430525480376992656405785570513341178247941589701472951624694041744346427233850430797328821708842849177157931953722774007364626831439868207959745105003938842028559363446224374809312968299313381145025211069808899394295119327771128843994902555976113682084294747264742672993967454595400542776731726614812250275730027847478957028096226194622429046276961377472033911772696598559201338007847063873301309730832482549667680373262450600559845880099843142882795358685438372258941858445560394747838721244072705747237042015502231167544085774310861381394467852191330114891426034306543271160136723625495390285535204670380847466284147964937679866892344291923444253847307153112062516601057596934373657389748274724568222883968199981783076860331141101509854501547815644996393303467863868738366110339112112757369996848234990639200354362368927931258293633135175150365164777421406475958409712382201483508182770205062768776049257354462475403727883676844967316397899326650168580798373263259001845891653449184346569433652708743839276500810003408366027494342720014861336629571771302601446693113445251698945797811621036757697838902375601469918342801469666119367315360727469596706350730482117201434202729109787279152488095526872736639234257815658219604160494917104347657327016300869475513591220486665026376602437620094212164859671951671256735949522546676793737458493963317437077737190752333055329078612421973686065782696680481856525270799434449698196167899096255834913313603340855256411530520966516707670819926604984573472564737211666278663688070491669786670860732827128599239532092215795225687455881584089610928681097676617719649171554294883583820614246346310450769510879028140609330156976222918635524916031672944716036197069275592298030247127568310201017523262671074706436626955875197692475680639244565668002390847587140558386277892846240927975813319672382628508093455927646582836302221309990416648769804126702762304495430056174129696045112889949377854176611025975554651327177049440809535651353251123597811153733862947222307819999346455669805402475002304690663825800603658949732622026767395344196377466703729687253277622811813012676031373912188826726639735757328989112287996585015134303309562301824602734757549890161118857082906330542895225434747894593684588760475704599818903723623602305619147603686506930716242471432718514443416852115217060960051328494724780236420459404101679580052872180547133488133599099435963954073382835376036562530562218804344624007572788254869729187496854830988420701782835648168014508600077865953212639604041937514907035202020800606555536099630391713209724877289732868551357944913648942180271114909755836018984570135143205802131966411379238794435679486416274127430319603139746604420104838066929074678449970937206148797608692988745458879306590769511531158712904717296248717342455951571374547276837780117993069871283871910729436464802471555640656691190141269126887558609772838398618863422552424489270397774158391880755913128220179223414547455246727206438372568253072033304629392860508194451003574690094549098564857711026471337585544420320322881661647023415959127065745490590600389903551901963828520385111648441396847551944333335531339825362716772856901858525772169837941955669660161148507159750306394048391311903748318516405376394004160062537345894964926116003069085223452573423492234734033735740195561488199152649112683431178536774102189719477758405471213919696382198947164431209050066857772223787430999349470774434118392980938815698144999973860257998297950143766205276575422694183724178845658136656210717302940882143702428908923938397884307320410330774409647840568944041382027791444527108706430005916796393966980783578455654613068043164288531016522887746210656485233685371746296008764771678718179036036754752302013019770614568556261287606344505508867007903747689302621515641567126014535713954776624038252286728502809057054276431173410022274095397296743274855685881440453455883362467598227667367402748085212085114820609788958583862514966396531333629874177242319748815334125204585998446840518940090337602687937299149199060069670509436310086730595897033563974073904556223674129693143119371152713929396647905014637681057462399097135890593157564869011105586450754500316553651998702123582989273158225328808086619503026945216036157222649123275339518266919922170935482055156476568207473771832150475748216714094869742753815871785205064851163646969965575806845510220966130454640493551263646871573566320915344999458000550187163420477778452875960843451169101222700012024201344822282411903959459951226756417355672933811667701882512952995265800134411980021887082725013680608949187293907905669158943500544473561335396663574031893551973159837856646869810283992259449524210293970669728343416692232462231297355157999662177101769421569635788700663636820388892975208953649047837920454512979431378586807615917861982505515524756412915328185954969330955291099087260547989854367307548818429892490338761321080019251913115428703668294421213496937336262133561345579984247078261184134025344363265549618346747024017550988251687643280704705363007782863795908197923698144643082378832221999038893875463447402680540419266804858611452840225288550329089496007524186965905452742873618688809704315033218766094131160043137881436109514105635902250010876502471254213320845609806377991997228995471113924790074287578490430918812548128588043240309886419534936863285784858839137794560814227400809202611623080335684094448539956722007408751227615140712430999873640410232095295280753715869746268157182022789942807603288410679859018533123967481918946976155518686077489243574582445920269465398461374849660773796373605539555650028299113516084917097077027477686708087087143397916847603534497189025801125379677964856984672150989012405199711639281609754409746537225280714081886823238830581381849543373598841413751172136530998709942692933909876186453935109851637259217134238601653484402909248419182430019754407202372421096706113804911846350237079429581767764508767770648297542321317094980501727049554105065655421479219274948967635439110465624896399435758520059649222835997091957869745579675404023366795213044852395127177964558721771039745852734408807656398860475082025935342252595391247287507380332639516820354790545912410526470018659788086895173771571504498776433098906064858515140116903191935412939860377350604998219172948392550642013540622763444094958000471014599300757342851187706780611405143748919080504285272449188770092357138431233230155286087885117757265277847833739538387516640165454249665450249552545200887250628961932747839321947063047984393661979963600047193423383631610807831832905631599579312343499764848965012372531056504626538602487127782998824364339258311591086107353854206486517610251455529755672080232267081785801824492788435369249041503837807809508669896980620198963457115957999463037253085749853307932092257904465443174480846614558513393781107137913923417422353099672543883777593878794498049984438667841331365808583587516311592203071361406090977347106030038042345481257787507847600698041203807996723372403080801804073104521964916414264090645716150138888313040963640951986355718554086112331412661921043792637232532388756054929644122139601981758339611922969948170005425563417704700811308644740155537482776387859832697984894991182160675388755570810752359543959722111317591650920904784726021433857458092321955090979526685203858439973788307908580148110995241688180590991153693598012583854494069572200468342333780747658519815420959273053221586291538167154380497290163187265693986805498606609418362955296307457655937806079540577837958797982060768514351378768661611663157259864270340482961785251379446418228910590047910449179613928725908547556626165511010086743593668312757296121719733047908751120392146702947642449705315082099354677438445052030899684792231871416117849473823380514440099938260554171596418139674130961923379107075951558843597207746434931466140639604983142591477280825191978389811520613598072830869745238992841144349049248993414539601807585497765844070690249774601465932012836144064153167103038119449559695507961468982693594699435344758740457256186546420458377794101676230990264506973890864514641495579375052970060542872987409704388432894739266090268325190484191295635539997104190609664233739170912621544293184643920062001404794639546818936316137415720487206383003001880620272530154181913851669435002105756692583034915135645204394715182230948996905783142193840661911922652145650467838483000814757947240102751146829760703363178942701188330378415724705373002901971537924878830362428615004606387890575923219625328906500436260617839213210651079297287092956315372323920966136435888449547940464259163413315314390227302334674734395097953897707511246823701662325500801059422213055631011616146361159281511974023802620629216909541305599374930530525896960307000003265523618145065485151335346450574499133201755482190380941986714157976832357376436688334600044841400603161014321899996480996583211909684147243612728065257741507355278439294023863667207228097190936203024803860549982845225806574270368365991717842856716064958578993005202480398727582760349777610893824348002273801148928296376041643775000085178253037946704471232081919630279791488580657955436042206013048348796609794962800157797168334244804014529974614143612704872439017736286935548173924108483751459969436949632677249646786880816432678933500827541796659081034466234130338963281208642643696001871255315346817230669231387525860166160916816949046441645503504329293256307556784021951034468203270510826733631809226191297555914673432453930331409817504153844716103580901757864755338330252823889716698392790842019276371745119096132494113831122296540852885611811922490455131332686802259356039764947543273075254994094640289143885656620298529823825952122590497960046258560922657631160215193266782425839731110053339154743871549848425796639766281353845016530741275737168388718916255574605372474384289132749820103035155215764951524219104080103717986776765519985721186093339484309737997194362518868324541381720422066216880082747628060036588315440801756308733038232914461731271133333072507704034926874667033995745609761035645790779006689060983476871708154136547356302408490284365534364250482122718695402769431680233062041797931338005871232399095352351578361203772208629717962546105500410068647350103310058609110290290145380998455390483997828856010290596879757013504661387473041569223418439374605645350073375412240583624201127854361768880469423735733641239972390012224406315062510918080775609871153545702838791647961548123911542787035275880122825479679290885168382850427247876951990082356193639035768167278308851335199710908728612768383057731733815132152536196326170948906074527065952501759497827317525408464573799436777838368273750822461586294515375287406068423742117230416552928541818634266726674448127423018265869011419981610923466533143348667977348330218103828184988186033045585312964195506465737996641579470580601105394514596428996716979798195111793311718895088664339618684706570951297475620951502876363559885859838320091864502897454481135872161953849859297243904941102286809488291091999191476991621326844282143010565680260607414827331177796326838033426273282016588033581100334833312113065586968210557588981472975651827700234129347357645292586003153913860084212197450733608982492178713594577717626347354911424364851852902034577426788336780049997618710793548377018524013123735308654699120527783617749001423570365996805274303161216550307306957705653422075940256123164135722252548472570990769849100594509881089609068939537753131915515235137482272651157172525395724493472608204998300660246430218787752991083728219509357057915669830408361766488143441088231589448832269235939868092997257131170400401780686322100254674836673182025448044851226146790619694164372220307313806291882201109074591868941731767735528815975287041619854196894244963453182224347574877902841717347041033529114727634131590302329576400786017475238041886963279388341906041667473559828873678101606555112712104483483813389483831685027453837517672539661038641560344214716171231652754679491151613439277876105735382385813070467791553269962713379334297668028495220311397147612269294884205759465265229741909046242396420058159425754108094988054021616248078061655484167789252616121692166063649890432217730419875715820350233863355792251999946994587858362012678089954642569404654687046275285342997224618910867462404062653317238591296356056277957844668404140218156971733624472600466709223806303505119879967069621513740470893979663229640006966079389998139829694925160083694443101378818753281276157200029200864690775754642237590369413400191142418188660353813300730721384703252606313261641627935030682181206251877179939316801862046225514123102818526325106991132948001239795848027635972345168050252438989200174989389478605913515530779716413959958386767016263778538075236894010892963711264852778849200560311452294081952366328047750946044393402823651964272094106778930497820520503461639239428863882141720082609943829993726815129423037608180781220331720278668967108015383896831026601536002725910839032447356905623170148277186009947302543216872688162636045098194598403249788276546097712262558903810128846327450238470099671388385634040550078986227173464699325778071599942879853008356195401126675331898949144737786808106272282179549936199998256766097845648439285813306372985534966116399485049017987781232885784518449720870778165074660152592576251999447811981760611206491501212426254594568608585516993056911135712457681457600446502827562828346628951700629596511410666537362581653995342153265620050102790451978075942096112950680281411408837688923565741073526686522892370592807533914025757032510030449935578477170866997330920143467604737562409593110216960046352877365312619488656898991136177646612646769273533867239759211946282938097415271676073124514250235727027737917415788839030826128842102429543207890394740643331397669270260535484804310467940860883417188787629077777879553673047976245080122517303251543224122118222716196047932128793691201435232103678921752412529745026936130117770338413026641126997320747899338007851493273439302963671252621655357958730534471908318027090056260544472841687356344241087058390791155654848859722469487191804510456399036185290986135626208931336907562383383032968831499494869346143251545119093354412256217770622376011831981208126124137890096363637654804906150732458942811011348173830231364213201287446890338656877374171694689874844501540029846195573449582445404880172588379467813611383475849711811624708474484653214222564016699043941036955022242691993922091227243091817398997875941030637197414657959411202717601563589717392023584251084447240534840758584047279355802794632614277594240194366137811374870852662361396954274852186256923616783819541256221516518591845047435013438311153896808258938451526866112465483023517077596900051796679890377789094958811458338987583967908162027206311998679591844238275427381570737518074757234445829048733312483686181016850190781487633681974981406426468176425952009427610513267280192664270994595759521246790833933962771946100766339925434500772810237200977314270494444089842119501382451323290945878358483202021792953270559731906652230808643135829050281252396623064688173383009958806676191083207973848360368861552417799126865566530675976526051630683911189754644800272229212296452071613430699917011385552112730313175471731967699274240212604527250578817276023260923597211749214192906173482889574833035339754576718890593485999793448735551810134738450362752293256989559588325797170028099928163081464569552373568930597944617376939655379724032592585675812070125670390840039862766529858747588251827126517630178468299286081296344369446236912559381775481054814541548024059651633001169529469557226787634635510920714565866488037436190883461867034925280640299399868078127514495337919973207515396377066987467868989118319131979869499850717026890791379990718674000536203501365141741982239362013966172446283824678847285632376619516437813060450602276265781351117909983525344890671645579226986406049536366203061470601786753606004094185352738643800400093345882231401522913764703359720737035569493905172060390397620761659463243068970710120922934608679791652666160080623118508173317396924935469839030037179616837201362817529634638008041565787988087518987443402993224178883165069491522509171056279398499883255335944136895912914691960053414367258018140928555386831881891576038012602351531016251217172068891369861217226994356112603902270406156992272590958198130265642235823492801497221617994555058375118816339861755688226935129441492351036694035174318920375604706796182140497112924768375993248846983354362914698091206884187503233548636438409587130093361114871419715651369070969221369516208114224153767899249840757151088900258217545175234919880111210494245466414973110372275723294489172523942451315808228026196329281218263172794334887895997745285488015169222903763471164285521045070907365352102925390503754665307040943720703423154883398127236558390924687422711850931965064104967887701074411892554902429546612121757793822815744050056385260443542830921653656133975024821842462124868664984110443879170817338107678110145182981604562787359354319353933110086708767944617777743165299348130598480298037719306482450367553915847309310285287921356302151170662568420190603115960199062984458500120913312382856661518813875407744197396014679120561859881531468676866251808623220440098542893335289168925175153972624823294458389009880687779493182212926673766300981165602271126237299764263805192496725025832725708894375251445168629083483251509278349152506256737681040420727416845570194553698402221889698147779494385119486504684722796695533152404092454321107286653947457743137169145292331358151013695988356443585364434695113162744634761494591310335800922564352437056325233915121185736114183529948003217606276526360642046006260751439808913442305711440801539445546279361553995157841826856253340697758570169924533022074757015944789205640031405778117951297112433256234397296160642865701039194648088077705648471370831924748896357921597196313874453230834815658891975369440947799055357989240261047759415607701894131533020583543261950271794026462317751724288111926507555895666584752624427210008709440340503704651943767093338144591935867009154335405231823421625021971151355884745912050622318233019585373174412315008399132891573981672148922579785537272682471458123248400332924495364162846938715141691985360719901616257732631922597504489933497508592159246186503123304229679840257303680814102037989507658210799086779446760955864388111936309081173692513345186313410649747864846817627836362141685464133404098106924863285743514181583902078844400318938210829542091897573702576166103134662580883584411511763321572494521652322862265130455226279808462884802669595794951419755629958972282775020799554888241241535659257443115902330900966731305075869134992330038719313380573010686379661131827034734281198896706059064141526448208342898191579873877081417048434896093565897260418010461296270328704076811777431714714774123066517988124685943646514097957896666833630294541400801105346400354437417592134529300485965084860121682347178535586540458814973493727574207470648980584868738844482847926366410535316964651381168345796505643543960067864838727205023320345412709237952972873788950898508066893283423225793636454968814050926055708652189736125209752061737921480302645752601565423526772124950772876750978299029359904658541414844257355814479621481079846199494536138756736874150085746715593508843325113151902822044376356269468188802748296042930008264233600836645930405729657743641215024882448526709466946451256067634432543252428996076654776918614592029363787599543871352023238816468567867120604168246687285298257026897708103082855394218052083787597982047957783334431664943207116280981777163559521277127544840743221164601208320972926326452841939228951895860335635720141060557790331220756986500188501053454330180159375742782586629787353858252994777529195481972863980146511489940968018687361305610001419537255200024528977369885930301091864205866001867411083847970792871158694489444884998506792132953857761913071624819086855748737156499185013325559735443830069314367038389003667466755572183909330694059512925707568079583583039406635255664516058130567604607729918353800743159501254645204719621720927950568098636557879246746592729311267430230970186428468820949106704886174673970311215208223387734109028399032122251590668382706249624708083934810927394865317431395941362240488683233294272813702213110013753909737101419418072884814166781363894748122468113926561655572548770383863111480126597211005924999051251339850756879696503066732568317895345815005187932931303360403769466518745518014768354485027707490264537682951361508199242787134466991068795683592141992960873089236252688488131394614183970197400730480286586376460524450299027606270634095041830937196091669853907745770021270973133274474372475461725247580860548683746503505201921133908387667808867397582596473162087156460708131930613746503846878519099020560532664609377825207573023455097783185476395908785598959046885271533603249668640124525120271933227877674650979241920327543568573114166630575647768326653185207645454362174991732507889007152573192008530260985731863124748117860531721597796359980134778797793694562371728316945784355867618707775955714845339002601011684958491572463621845959862048457638087021998431443101728806632508536626667840757774189187678410158242960682875905892319109903518724394164429263554123261372586426814220718747423466233725126165341203675211867742416268810572291655298925847222099586492393837705127662575589855316620334853316073057608599282290214320389680773003826165561451752712903400478320487117302221033131886465955196201356521593241375669091119932593833811353540487802481394244246628629137313280926904114744388553552606122403139566065768168139039304958984286741477251931242527127571994196156670559014350961258046558909230899242865444754615487827125877383810578475202557711314656804911088443922184467514637407627991547750067428079354166854367592778127338411641576885035010164421783637601966441769866952900238615202319192103508114750126797430427075681214352648332883369232401629985459903642979899440097297671346202583433582014013437223096104666272349413100912400441057783025946383945261321297192480202329849579185684267357019553285934528538085597615758693713016887809690538755607181960306998234871745555723282021179945573833109559125079891366255749715354549187511295700619310120023538509492860605564431198578197949047759916061664600044718819587669636763215474114223605388650736394075758035947972595770143647700516887503546593885307823951457723470832866537522337661833307220166666976603832249252918267148400285954817194907003904386019914773299706719033809373494173789759287093892564507415261854652919364989540783689814530383393753253745592203376851484042649942770529781964858223334566424545889692360829173706413280415979167745594692857216922555018599689614894567469859445586441823076226078122342299939535659783953610220128668526092166828389410996721755214737777617404698542109199259860703650034082592384311949303728690076503651588084691302754318586368172709810231641922602094863723509196324411715024264223663737960344147148520850260206589023057354519735604419994686317726439049770715974687890917724640642730757971320917091645807211161556635280722815843222713141301952354115550754185056772356325090580039886248145640993405672884863987436103231851593530700367869289400196764451337400704920757122077989932316084605008019120753255224477375156176076979469236936363851130927692257120489839718756583329039584688232846518900730485378000607390240322669969982255091877767326030301153619144033532585076909720891513105868222708656637441709424422276188459355200815175588440945848688197186878425401464397802821415600851848972056765891446995866720918329910581116432943845519611831403109277265582035481589138759284397335484812326730836349647449140938210681796677984281879043689592271852332066211051484794217471481151917892298318191610107679788075663125702981878768249155418206641497413039052118915814054119570715309361220452650236066834234649292512660393591312565450799099639502917602102534372921285371822328724272705035273069983326224667104989814931966808774481471665490635373063190592204566314013974466866377000448481355251684244343898203307499163505936030504325006442596863081819210807721068377100046729280868836253813930447266011286002023877617472424106899675897024733708456886545975948098066849370298064349779011939737930225034592146873718144507770507472208811013567827213073324467328214527661400545466713919675302903361634798509372435321957998774637174555694571915844608399259715161289628546047077657034463668407292647009785008844171474161055391651664582251903522719655840258963136309184670767476084262198384421230872913510438578970085708044163795687772791532571848925344411787638152057275624080809409472331828842537001644264827314476508045027348205386438543205271779161787971508547052841218344894757490373114197852010338771643756967754526403472909770209527924770840179663075596123627084751578594339132046367992347445254852774683041505043503522432799948815284137202089054227307541960891628955039259102391524243475488151098274779043886864247376982603802176173740012811052255776291165416433519038558372176249861253539491816299196484128961315251017556527178602618372531573745063042932664641866083344224486095638389504944692824622315772852588094644500822565043923087156961613540151326028896654908657766023283730501366520821835589474309633849206519531436139644785046920323038371698844389034025149386836358981408197117376596878205603303149670728909303591906467935623553384389146091277324634003496944130807009481158688603080063632235417703342803380120677393931575778394626080261948030842146821396688804270152115327684975165709206078201305241457416149405041735942250254520702800938877812104454173468480611765178301882592372772165764833292338113999172679800969827155980863485766725905704791167479818921601718275512793985156911649102689611925685324051813418669724471134246963191985274025478837110334116231679962954092215011040938555971646894253617207813889501636225782417335618017242903069069291523842835263976281014675217871160182073949093853353697115648270517307571633772146214660380960312649956568878886745871890584226551421064751858776963720915398354096267566845906110882104040013291672305645638983982446043458252310858020702829950575062442212446192452415438829392503064601714267123432648171140239497291988224123732981950439858362909805599333477570556755654833790945212386846010808566732676427239961616699705829251919598737210544733994846853332656735177740449669227683314413319506745078177235114960475180150217235065482819751139457216325152529582033216008678985197638493616942454528327172266092219263862759705916806264234556113885211179447888207539564304716656181103091224419514250831458727901904245930485855746004404138409892273611147305897198536323871833258107518719515757827806021158002085625245435868777881840432547043069336905033179691798064252569968488243832283936990372155365632332913410015303148558541070999058771358901319034460319670513968280941308203647390699920449999453792520723081072114783358252041484878452444859012459190766346164134056070219091271940975455409267767264410272715471150591160862958652003250308339592959398331944554985036075615271398507303719331797891549310984227134925346758001394238881431936221783390992864181450395295460035209607849967391612098350922218635549621640865491790327219482827205224144441934163483471108528937359324496651871740687787497241614537192113305043426338506598273983378567327257519070321392430978681172139601130883018701819221454415013872551237640184471231804060271043578927305193194884564862019779489985098671289835860823283823664788336442318126433894925375623655294567255424154689005343040839443849219843031244733602314901654984580478075155132260805617808698937536100485246176845582116483777470034609136423906914927932229227440994500750448456030447245093551588797939239570950800164920563403615985443492493723523952173113251280201494423351561706189324930192427638925590709227521177146847782443086638105108968651806924560486065433244331794531542848146468113294089511904254493602325718257424688345768037403998381184180395723464072700917720899799623441057573449833587323425463262013140116262596803697814809663695058092188171992449326169660617832486036642086934708877627280299144714530098157803054115724825884303811464550976904442491445862878579123838627311821755202540329164945020891216866307248340531393917853382740374695694804658605112743393967065406286415087700591133357385039433424114252405086873030521625032175874649611381871116685491901728582483916876646185568288424693649434566005049447969954066928294377117074055712458806173856540258200847254252606263899965957884802419745655588693300364086837377612120185680025964108304728383058648616976804337393328850930439347249923163486666364498051902559826752863856751556707835025571566787323714983160454827396109297464087625979269405304450948024819575350560207093316234946396757215429921331057292806396277942639690563776234457199305374076829765058968580576029763809183268171585734378696953389658493089892419957661694224397275612509367765892743543115140839509059296720183630897155685585907880691664537824897739282211241790107292705318074571152861640316416006761211258366307648775565537441621765650926645431765746731654495249562785342298416392214292584182878720074696300156669883152433906401856987425610186372805796423555743238466541405348465816138853670326162561730572230745851968284237118651711390251508417169510506465605980424206993848857297748075216019110828423650098532363991511409845386532884013266590108044704731141385874747560131340895003622948287282370757726314067123490488383944930020664879154633396845053703404403181903750604719749662125981935512071907981024054190581544877622876105259530572544528526947508523393553713213633008883499791344375858336491408212335238813659955851595728850590234466932216483889669739644337885707180728272911021499963754206233160405200998970434555565451741739119943092183491965881991998901048340594025186462583526392171398915299974248073880735268714593253685097530106861404357887315369870669259953198049242018067340512341545966181060779106944111657723617900663984146026324504721399036219453862342087094577595907444770552499269697432757963975933453861586303195447721405141277193589837108052521297368949056550059942444937841795033208132991780943000606838291574806237953067361541948542997807973887708836086509330713108077255477512334595504066238500609266156131153109159669716448567307712457987883258785503141333629204833819873611255259642944696944148424727049863175471941200796942260562027709193102768261816874379053791425465628521231320219691360574847861241792936874460206619887325196362737921487897989067086040636708152930223955554808402442179577855005388386577725230347151580693737087152229053200431901359103112520441750964501691399355464467130049807146259228875058282481963000021621133645966234400330155355757782138393004506328558201880940667531235462604653542160947230294175994679216142616484867596325364480453503228500846324914357969595886187010753152322609942444724244004577874352197869790303311623578445133539180684820241249665103088647006309379201746769259208398593497317524774579469490252047539925206706216539656316497434849206329361333637330659597212798526873249144223539719906809520750480166982261439283484616447608037982362573180519185824664051800109556687773583253336163719058972167718970058760996611024381913464312069555660889482942382788073191219722651896884116098112009741143812989745078400100372187663939697683031729206200400405533719414394663043641561474451415673224748853426531470124024390255253207889131251282865419365268263160689346320806457857532701750099554962607042598084901485227341536720558253662433192979375442009175490111051311693692259401194898714027559849310299214554249608666735396653328259792181903610147957279128279070972551787553114972163183605618176113996329940340535444627897030768265896717770675944479537478572702714852888443874430527485895224736577863565361817659630290537879464373702811372840756221491234969022982372702222219896944901576426561103356479017657521286826004217081205819495325206628657236314993078814035782430659454964466512951806043027883880636413140323456782735635559839255215985862541955654754807835082197913474477231496209400696190109000449636090777336440865698970947005477491748709803909330073030914654605843531035210886123025945373143634339184935452884111819288076168717563486792073690552519750587152559741499276972986539787722240781555521470232154136808876414648980724424353347860559572953790395825840967550535774707945993916211521065772266091976462689570812970792645702808041914026351068920862214383254814428900470475546459634179668714635108817897655878243617294070834252845411223511403712770857202718294076957778948706015212250638428141601415566564249118320098955362630199719486227231955477880818097381616642848757121834954752515791779307745388927793266402402272701365887138081778202188483839137195370712465286279069986510634028230388007508705238908160534945910464848386351763862236974286925929410990856576072093918494002595579062281390768215280744737016493310051263322914378172812253930973306179234404322118024430261022889305981773205218650632618623418261470064024538118059860679780375198083421372630018374151284599615968444260761246251831835319172080085074665579026377940156413092424442435403471539997220899120009656766690696698734161515262700865051115715408546994708606568839693157004126118330227240749281630826021510192634174139310452497250797733771612461528407849216157590078137784418061555692759023752038262101359284787661740806974170072888860029063281670382798712089825528073056633286874394995746041536320296849139004362170700492767978352039652858077339064635510460993487202644260745702004671991580681402131035777870485771965476608632160866059242594338999042593660215539363176758940125222777698066146602648458596368895660198577857164213088582372098605556134394238447838530911710995579197044650436061207602927422441086112258540807282353145171774062597607543380728370421236400387529389530087811284791072117622945803029914957256919082005901254300477597111450593424163704664197037954365895817714026542313469364180523687865931744804423163528363136269975464970253230980365097141881541560275844879313844118933689505845698117062850027668256604153404898753349130296858906274595235972389564295144908018527020918030810205139557204033367188865540971250243644612883478289477252182353645565220067736206986544497108040055028960485392809055421154035297852999770132573647920939775155663695429779532790731849767527740297015913890685268857522625562533388608953869763003711539999129191742315141770165929672589753404185960564828358978371710525039200520815960099915188757744588962228728339439816839710957460395921729584403272061356485333695852937390542613367180801087517709548911291440865981942435775576707380931046262100434211153860246028162918639211314493248879633504391760189362613241293487641725935466205781824194168501271220265710503111672814692477654870714348800337904985310163590364920320462044426464445302299101769038047625407446187925057670391799902290539748785297555843152025657316109072108732879038776087156192741515621634744377664743309924771960649383776505030024402792790697517835293552245190065667189129328222906742983845003707017417577293408116328867213136543991390179512966878314201609759716453353974059534319824235138436599598562511942357932282891368982270340428262491793816676883496568243435919533112422170759673108626527767180563876618792174397200068579823806135419476217259257527860183173200139444928198673786330360191935877917809403960480781833556571763433149999003795456321611233992553783417500099231780373227459502880743412497956433544899950498166588201109862078518269086089811976037832168952288324005834261187108482053828468531959827055891602728702486780233685290041181679760402515393904844873680148295177349351081749434317929745802880641946560407309018024558071444329583849865072260011335612014467021596782506037607674323041142222874036850715774914380336821194010423805658344626620712314914155634905881093643457166455621042826068533301552653549443724268910317684111153338803204314184012206021109914589584170974205399131480178241673975039055005923983204240345850657289219420414559200243216335538282016102272651925745422757493950736237100783489659653385935587690992873345464845716831165312591888357081922773104253566982872822087574471417434257029373546730511590421986593224000587454096474139787240633373183472483866835637680182785292413275741889162821636868685276251855510550039713858104055271312621558943794449610762762053471179745544396134796277463101998571302089439036753835612822975235640799676313821573364179817813698091686080436703219234127176340190952790885693015858123733957728080798904526755341953488048075184825771209078404292689484275806725656250916030749218730942631276807111266548291417372907056943040480238154928517897924275697445829220466356678941133517017140919921307418752321455501456734963122052155977842140741408357430481290823400586833492415187940674880651958209483458987107321885736123879530602385678194767730439214131352531454645560551839839885662970453187183118713780974132600760206771501100018375196335014995033933830363201032454540918901661625575899859517670398413158460151868691118218282306165942471282308372037470421031957876637617066449879833082770177458204252932941605157242056523701858416342124278667434137732897820171324928750316980181989650615438707479569125685055989865800229774697749582664561972159334030655317041528114182014497506882145175022918946496783885913451688834396157211661935548901592791970914705336301247033372796201863765428865161005923030983025150084482021424799358587963416035489013540521600409416125697089246613997529265975848780650815106972066887079390340026584303896337679909463984939389602854143878302101638435487146694385880783528221147213590854960683351692643553120661628892829713246420868062965037712802609432190267865939729530771620639737042179896802601218185219810542618270980988682806022685724738823982357576574836726181992370470939404008940052788816481508202022956954886115927684435474057049071524902778518133862841723577037281745721224520500490936306432688487785176008249644127826501434121515260062968497434738136560137553917298023827437326276949214078796711448559127475464692942201155205169037212074348932462436995794371919936435307373941911399190866267569088518499411897176462963314987196415138203084295437123586866686382855897962368237958676527882401036950295590850324289703646701100627450716344044179370328692361087442973968019115381100085503096281517026454286081020566862003997110840048056977608032284386615974687366422760796881088853065475249747098546362636727110001144490817760478372747411093156302074480065366097292290059212436052156885529426870090393089931593496844347020040554946157874567163795831393854326837485414086301348014384280262696343945123556298130707791106053426653431887550743235939862671570638468977173710606797657743355840068136805781202404186257876232259854623107263568279900208554890524806532842366799753996237621993598293304865238030271238114015267675738870156511396851564141909845381006400905656107320620271224867037124189532999299236564786089226911411635297754792708767558555441400742926168932551921711257368464621751542306713152882278191815086657906792272925513927646749550746337437293700474614443252487230362573592375534932444272255766705122135503088898218767576350745819475624217653008508999261324158965729650566991148429521557504922721928281023488475178296233393491726546008719110987794081614717011332576320343212319476142503870858005484843190164555473817405230077458233448665198799249309410594314495181566679024190493720669479537772572819076849293806727792579935604450032414590787553104497675889744368891168193139381230386750655949503760580280998999924964600874583661579025939807958104195313308993786460070501036006153068662836734669948997326055670172177421737704757920693160829507376650757089550692559403123211162543842822993992141915074832543364297824128919234780318667635051986436057799069987131415325447748039718982860542404720616455356915442240689054530087675384240781821800892893452671970283043042246373414519069451667147208060244486818652055415313628565223051187568702941217152827210446095145498965493814856802535178754251747620935103017787142062186360203947213516979421322436703285851071163565320888951699850025256248362129070203520036776723646639976492605475026140746584090830543231324105772675903200161740254064645774391444306532402320563679196526655611592759427874573144791289031339148984897848322618879035149857695880779113189163591044217563458231565935921024912927687353482142662073953359775028666016013969104830721056653369651869672067397190876534466840213789488433164213216957423702200368339485135414943344043416769930661173767467911704433882164190761299738032311145385572898173494674179875391339951895787859529954700041417776572548281915678404698130239447515146454170247934300207127771183815938453624691052901489459808928700804944072873420403521447025946820230491160662861125458057575125145092991190095202115985464431159648971638188521986645598681043129544640980422483968451209983258798297644186741065007863122742451842266964910366173687702976133706774487499574785023552819740926872165262402589769621930367458674231801942080895172690051721857827064804315883054880232570796127579354946592161402834575499796483519233283874754002883100178227256911372162970006734228403676829914001365764607615662893782544717593423157608749911016354083858439456740855033921260834783914427758600220328510085999355021675351014609528143314974030722618273181455646239586914251989048188217444238057019144450238579924512535636632822940571879374807631811656290829094608532679550686355313557452184990116368289293352163076226555599444495913479493441655454868656210580996012056117976413677676596805756977251138482762541427310348439267237822253554730239848853136276711536453366659795627084911698111498101780943798339279121792704670463184681737139322486303275374761088842495947181050383981603345894051097825605117736526327981512397917827641940833128235853127655035071780192495570999046071017347923655558705847712320714601903835691982267433952892273322741847788469181686004089146695488721061394164890468582202837622462301330462715423547881805296190913260287181176195626943370974968499034061733729159679447674131223753870082306959812985829030518675113352844929037607816838632754175452428201785236451675882805728397350529696576852420294669844428584129621501436314097719289532000127756596185662929436179433403490000120423666873616839334250379120433945172431608644660165592878831078039405153265697966331137021700393139489416765476196325569386929605068099903238625789755129695871887739655590156294905444973883945002054521544870632320514725547231095222541380593466449852823988202931011937778667996689029439382922917421967550396581167251342835348364180834523796417552144321996073291929864323062950329570736020774729289550124425588312927015204788344631099871727093358243078090929425822015181890906947571606573202764340208692310723459512010256953544460372158327470828688185199639567218376931795976385608665652963357039419869842105606136013445070595335708149018429674052708528908357331141156702895013776770649968793293367059110565770443779615861074282113619111950746466239771631371304660041510166911415537137220228828003311913260924688007263420039512453189038053294198215337267050911526387514071306898681348023152667051082826931694724957510945524559300254114810040674718948789397590293381720764923786435800812924533527818580892457558079742460659622840202578164654008724339723082016856229139200327805861478985633201653149481241477748922245023662075454286220637148196588921429402106227763521018363793354294141778191514311522122286151811375760728452204462747643805628150534176615910228812250297146209348326552765923909322937341412810934279055214809701102191965784740304565062261555793155499048993879584929987497813342630433061871596258480150788308268331345672055467384453287136977743714689212990164093555768224510001505248294080215935025458605623593489144170488515948063816791741949463667040123397234940076578920029029503875066396164033985395568681622558318186685117792189124064731640456613465029473427060151269999031152812657019698110210311337498020528643788938734298359164204677004004706143848714887122147024243610166312381749556587682099978722942302593010195818642059069648506211464485231241178121143979797748234935795784394456182441420326346743851083720145747689247731639621222881284500399129688341219536736840945358077570928787673927133195941908037757358566681306270795941556615223769082472933635767942239136256025561289310999715374055746227173748505498623709838151804840386127927117329981030126214460407369199107269615934747263532985182228983495674766884986583671537057548602099826039990637856447941072829057376593193137626754156815892283652480661257009546493139368194624576677018332711874389900665402533465678402929545024028669830327902124953794463932659922711417713553284330002481077421725637924368084867062115039608642798973861899358339189097484463099043937713995665103040224188597655793856575394575128632506634285333167696976245195906440132875400353781098539009586817503577568365661063354022071900270391011050350764291782175651623295833653043226274201636264237467853704476325713894477007139670446463336405035550249996644645921419806620608146950199579256340755790473404714989667399146088923579848596696032853835033412479668780386983831482929574924622980999542025026803884667900090785732981516009369717435939087491792305318398337369559662713742425826845460477481640485352200287106204340289047566841430810413187602391295971815982410826011437912880293410729088362901926830672977239826457178661381455039490543681483777815678541379875459226285714212941142702841290456574077895083286897091979718128807515351737473312929334975628592782769022428430734775310025385013761411372459738959519453493303446556100313832402360852222965938869142731917955657921196982499132932766601453881918264533157041993233755289967866836045478823493913357269614935101637164952475157038034358315221854372176485371618903932653804999091159710081753340512151817932909286143044827871260366590622382433997130479883117142108427942540981791900091277499418626403905242404785242646182196676024061985719413428542376415356712185885419187515943098566406672635846070310758247801336794339435297467074352346948443055654643345375906763493328432144561815766390226922289126818911101169871005704528746120941084759990803704574919493182659344046839539834479364008200111843348947028576375847977425736780883959306765365210138641720599975244805302720941498787529665711082577977358434702405481104594405463533623268345642392006280124373226047160031099548016605350788093681154093126487611663348719132538106025234155364475263762074155831532380069020374830395991095237949743680537014944677794524203070627263199574988034213755472712063408734594229781180703473424030449471748036989414904203705187903241126926451841742182653061197262868649089116858034843296879991553932513808828307742415425916322035914124237652766978044507985804749228257943494833929847489536909270421656449537852496578429806323139643596966955642968038828405482141942134472129463109821723296827345443606736940923204053299348538687894793216655017442971361864989659726276345923318900116634509664266695840274970342607454013076581398663851710171025219692613213474308278928424932239550113340286943146272335527753190824815981827740079450891660169869914897009820418025392592032867780938800237795962331656191119944205458132491553378241056521422000627398780026825233129549332163167313503163953917187804782822671500518197733351106614273189209016595781797803628400213560018934324142032859460427523855637769558246843435434606776597012480927319224308875226710131886558914929410034415533299235190443361643973184006739581057584767622603288996351303731855539437863113912519060918859293446460242220899445766540375326798932112248542488956429755124669534108433572300401953299611059618549802758870613306311869447675246078943716701197310438733833926222519933736247538193882701879761285481773381359915103062670511083598640274517998230060514336861970889071135913891207413301494933609718094110923238972235114599662154908262441923881112014845994168422168796873511199378417403881428884996501626282267190328690155714757750168953985969128312584281378570469891112248703695471180310601312075138272162100153168606425825561802230686507412085317026586276335104223693703392544390041481972629897090447855514257824279143955853000877341808995611669532014699764264109270300602786907725087968865732459508394827982426788247459860108365161464605702971017114800422841695824369058252730257830212688703428346650870674891165856188642021370962823037979016109878743045079205845565590182437847768963618100985486189130123262781925058930167440788669432629375256788410099548789007334848896576092842397776710767917020584094525477616375313147070942289159593482958321928400953827121669312621605704860533123191556040188763187909666088613798808062767397216811933040729173080199929080891979737843087924848500461739439328560836153595094349447508386088957424866199088110289787379988573596178914747433529504524821382110452756022434480346165766503911917372235278490571518482781283556318416476443424071472005068264546437084842580477321678902438864964101551135190918394008402220262976230604785335667024930360461824457146661727887230815795284138012368793747801392512597090599187325920170617127205931858383085070112469211197752414422853073609091098673902797930415308224906013934215104183265014701263339577029017150561920171004062905807972310465014334535386772907583837886243375182277841055427442752422284013121888813717510394540793135355770363718964588073874987024803544121392088795277233870000107499687201748377955573965435687298221802466279454862190013841257500854772730789679438232555844451848825338420104042470265908350740414636571476381205331982679819256134584917641773143595361615871987776058607779156714739035077302869079330914390667346623987887565557902260041010472915376713295371522753965710427235451658616588497386581019243345311876665377722416551805600562555812110897345942694038431149629154566597056997908068897181683231565541245939269560793626813347645017051484539198298192292397202230794341112612901739646793128589638387133316068776659744611513156074488056821044003593010126195747032663239467770134821067334842786628871874916486469627230844719787598013256921642328695246348764158290952347498411709388548865455527230590394887408674537697056430309449400082689916794838156642227779580727234952399292328041219555811989326667714651464105090107177963808156698464444274546896236660434604863697967859534719407221106585732389446832289012898822455561827207053782785200957667881046397116063568521681296657677948482606795385792273559654680815853979455371563389667513813818407775929056072838857815454248092825714820138055776406110811514394932033723514752142639820924768579336045098002620417733630054765681759530393889731678130030573172310201948405597827641087752547042614108811748870690093448154560968333086854270815733862554369961043110130218986392441182419295893887365154448257184143512667908028618661687338807643577763804750248921128031977547752083986266694947631005679655046343719239493652824989014899398648344969394257910298716359332528466739667517972227072217292422737054467319436029426295375257095627118574320015375399169621196179704037487028178292180141452663998169935740449313250196373084070186298144202828278472356467024704072584760335313231785920983882859503174262916989752986118069120903997225836460401575993198379856339417726131173923422426428399712373810745999418276581062502675621362454117104379191926698033651372757706979788492364000517429755311371956544477742065509256258521503315771863924107242583579902610244759032337218681985563073933263597108188378354451186111516789138704363183422112545645331338987361344176847116179554070134656305209007080634370412196036513828054347181295746913736793846800132703692605498623245016487714010484475569197971682503127702165273248124214543741056737622670434831759314095586315999851175460094842011370856812194637017814628671293125418659291824424655477236874378268141459694010764657574574833897677518145186808900224180631580048307019787272894141796812803231793613510004870874282431003416598385767062681764850342445642479738985035187460749883454143099255553357724610008638015110314334739507695207356661327395566857365071960632925695647040762073327391056845973456155108956976651266129561633270750915667788733991188953888098814925480572369352211679145401484234014527224944994817075275009978723002383881600210596744571983229574703086400824779193404454090198683628026501795959236118390985972538044685564829727690959050832704785294460627272269968451155835753489504157951970575823377086155020479734361723556966021007067300792753042480470863616337878708089876479793295438798879728543957947303297949638505258622675346062402678319045635099500066134343495965174895001951559641457167454471264674467976456974538630149396818819783092787718272900376739995405319134978895466006657998559160841069178499325905175808184978031775866914328778524237785300545716402387003728759902932713949205621614861401760269840876960206322998186886597659927787776623555349820253943377225380707761260777955628743781241943724910663856927577281849694946234123170226714223843894481301027889145605238798140761325858226405531768590054091600338321777071574802664907203984689393173880467709783600661180200752381806500508002600111609667485548952906171492365356761565869623900639348144837422675603942498930977157412448168869992686965572452091584372246633934480153660778166011309178156709240911060618220862641177279789819769697326462805740160568361993698280010725840331427134748856294754526866051113264735065036468003238298900191739674074059517098315445807624275558082451227124375724593986455639131284473872963964123515167943416763883233119609248315134951095535315398821639080073414077295777553158647739433877716443297895095944298607256905571152544021472768996720732644152266967183480010191223499976363093039824484488521943357797397249406697526553634136408908260546460617554849720761748087931726421076123972103112059341552075764746144353350902322569361969581170845162067050791625949329162430208794410697485548414522311411782711157576797120412101351561571705922737833582159047624889552112207293038477698004167633412660776645906858012283829441050333837101443163070537750008585057042093976669943262935372864367578023289309343034553329634426723386473135302252177521218926335182728054938841532286992036560178292477177602645247972219470849258045754954166732167678226059041112348286918101295866530891673310958613116468347231635782431463818285964067303522141613686478867824606760293429443084644979467801306808929956280958836214406401988580687133135112809215264525771743791919664668887491297627970591593941932694591493462517713642032931124454052359738166306315666666266963414367895190710893091646702566770678735190965562058288968115282016567968035439735931353665740763366870676681470675055174161242816225436668186284550068898707606088546919085113437796216802785176064682826278902917825976171516809075277313154091464099391123805975858767785251151597516048820056145207092187487502268808066812102060372341879064455815213356673296461840415249344671602236635508217835149124307550410314397949348141742189841668949309695065212202175562906098447637543082159773593468594421292534006615226343995735821153184064406976503450250604838630138107748139968422873301599421564131616891342366567156737881458858611941528783194657131574502362831188355665721055990056608839851494320996752380675871965696808297736381850933739991768908904068689056229422327625625050326561595465851752217997257438443649621920259987055876773670174917057500412745517252497141559048004446468523517796153594905457051963346940902691787126093234911558489556847476278420320117540801270224710228210794907340471820833117787062022817881591075192768127441336769092262623941881521768665854701248470722378252913655789122734569592177905982356919245065208076976699324169291613888233178425242015969136573838852089524345108664147232392338345338403163093695686879891386711643146921612038976395983130302849596699840743669322188093514066736605288683292479567725722191924694505796436947968742978885859965374362628706185444916558795382095838570684445228330971064384823441043964572245053467584535460613413638320124320603262122645729459487995840682486859065982704622878522657299743035843679322089638050720537448429211842865485870358356432395892524610005672912149825786573157577682640241153656783906450134386193903257806722252864553643220104785509113518323544117562976422266785916134946634065806263206130017265000986143441390528023292744759574609380220459183798072012461836673599035343630860723881034866843333920103195750046344968495832172870077204894955466616802491256300917358577291139109427085026051175566418504300022100932117890911218501878430487801419088906453723377010528535500237917570947443818031677779738550493784068335838629109777747105660510839446861907538955568909827201843558001353135865336246789235725729829247286481064888607574378259356822589342854863918944603437345080725057611883232707654533422587734057224085141620047730367262777642728734959044583658801298564639429963194146457060324636167585879480298695197831898996253330579849044984120615251375231932840079514875970582249902455160903000372479703791701937887170243198266150358363677233940587013050759842118071888491837787471921620640162014765845233954257494224982733395228235074950032484537301411744659549537593525690448156018816328929411765528601554586765718689161297558065921474109413067260328271251480153086219133720515636782443953815089747721236142291799369760123724815872952375910188014298824508460299694821855682266674624663260861339123260057495373552951087020801902199133916343567753444020950347787343202779358505877941654732442430787384331137295826905890030299580126414799504987870648928140029458080311064422599004033072526598759891824907400574561108187891324586329686355678485905013137831379699563690438621024912769642726258287164739534593727860148136449842278982143599270071469481452105025572485605122266647541312025642673032053731019813496462004045651027194545851239400895933195182856308698716005983428476710676946466257353880227786972020897432721787253427070629459734880539589979349055445673960145375085126109603654361827049904209051101209561318578357596514465431473209612522087402788913540361547546330960872724244313395855564830207694550093585106002567045320310408913558113742973457703678428759300670837490728898797600471499396375429820777016030829823172994908086988322306480921621997955599309303334156946630841263325399229238791750588751505467154302884441948246620701379599702269026820314810033020715113244759035748357807989643363541030524850787415311608609246191291638366201146469771241290172368999094677419537811553954433057368404460660473406110224561651490924544161940553112112030741490439061118234414320427720344435286499391313355141010902916998959869132167942549352535148144250250666701546316146897867468330080510378730213713752202063058074445301745393616559189017068503908628495882930613204239042927493317052278015481494971751470006083279102573812434043349895319943660825772818157435952961164860041352674623827887657431225287532893403273841093153629340975489233035737676003701283029027424016664417758650643320999009843032273573652922927731114633684372260272571836665763721529941296192832828574687892852725111376958889015768353354147124527572393582300257801434033951418272842322811481191602207384022123240867386755795437108409014424412238550757123560181638891123107356589265162957525783539937284492985959690867126072034525304389427065090353719926978469750053003139427669628903656538793777882901771945645218915789704737486221950475791755207553856049000103916612328247465322842718574885109736475989569970895514354821151830765702732534123482108713686452126335447553118526150622833786069482612165216716233113993569707205938138384753684262548484158510370275156383352199906132527861350536615734150954704118801415225805001180982997840719062820036779457541127826767504728225528061295321362905373632280091362606182814226872479300846845905174472287530103884728012829624102061534503062954118887352998744198492100341233095935659806501834447483816519467255292758511810297984196835178938457905959238375978094378063411225743194755890745533403090357038044731984325430799001160699035229423710737668280930863457848494948914406479084889092317401095937043684450045711218090442146032739586213140345434167593256879750430391040678432922880621641962543386586589236917768744059011258808419580514921634406815724204558525200761735293240955142087552920520001594794133196163043760179044082252971324601819197995311713233974061633539197756409682200169417306895114765263913604004259603018210295608864642202613208553852461332387506472816141955760853199065405395243568075187102624461804822765807682982426736614129736362991865333054311397566798773136473137359617833309436163832357313551816077827539739020145099252775314648338821977386058016911358274744444528411716644145641968402327932716414384240059932265754119096846979224077238111217646132692853736669227508826348889077845273943664194815007974809552916185220398511604908989803977977252257997066269893740774977988998702145010211626452206416576211255277694186689244237344604773054525946727341844740767808180576290811827748897926736336701491113940855851028658481684688266677440996909203517365510590172796927463938347900051888083340875326715235796140317734438777501364629015007699110767726578587079254527357464531808957564232756112916347431345376524585944704506521545499525592619736443788107383564081463034747372332900402132021081167934359767575828975286883882335068621972162398173920210021863224596928885119354325527082375108532340099500973077207883154440388414632683411903099300707819003718786136082220655249148504799400207794012105697161893793748316759348102346020075293748226204365055493565213691556412972581035050917803485254735903539687644756779041782920645413680749385737515567666783619365359820234925250571091411771951573347619050504875784373260507126448531424446104049400065612555139824227544109609019420066815087497699685558926222194141761131345455211730831151013012813627220852883012786471177508085511873024383413687479305584323017795668340414199177637600423657553565054863500542245871522662986855566017837974237335372636702508822933896709468901148062778176608884984768196545930535658481338575983246888935005946153797011218867084826913392396257083493727287064064107030442387915820471769448320532738485230374992806469458450517380425175272372884657933759359987908080179376785107421091421069981496044388345956493747626337070593790891939740267463527013296452131144285915025814471961662341594487624884492695092551937777897395726440368336353619868227768586725895380271241582196599290330106671814322875933204936012542576305539834707134979830014802602021089275401382920627222080438317435834603380856726117679463178028395260024416310779083947539217202838286214071736847486436386522229495342754955162675723203695816494330873543098104981302319817818808620095024685528570100796829927391526904147594377547218065285467700476622653993155995324249043237538976887950422354433933400607562244269962020732070529601243579990654285558685638140024375303811955792854009695946792666824953258424556889309835295580983950639536258721229674276005305520847047687977298753815186833579214680148203037833396505722233410444432718523258625579790297595435348300496577394450069517846547764566322457345076991481595771142648399235933446817595211901209743139447821942280582273382876527307440165797741796047046809183195864293662506287382940770416976578250145434491721988473403396133333179359972761289706291472258504878725129644105955610262722211331012204972404321180771648136540945619823990881954437786510494333969531068054208491024116672718901892191598077461410373628696207546407722415690377051674120837408347047139451642218540547854234477453944921469539940636925230819657271322593366512465295319830887036260528406446897608144161212627622948813961198747640495739739305794708778300216496103592093871702057225735555149476664402763626858249333432744619153424799353448186979073865774288303404590815560040194274534057056756377887687247599339163463844260005541670530546782885799557556678398258556641003280127204096076721049501695375169827797229475935576964050922989821680945138177856965795307835718037995331191356386693736411415011638490705287925869960360536730362847570194253022330949784139350573348155793098382632323211306805791259327081832216393059316382475147056910849071361377360537665012307146559814034785199680536020667585945329146232797615550391178720736844882458593166829056121432265823183139136670830606822829982801960701793613508540852368752427114235782116363982428400223857206991742339854733495862454106374437943978240767517495519273889568646125347084137959013195663348224051489351885494346809451044627848547742283210337245374418187228272940401149498792163639361244958207008694316422922426890535375366230959714451440242051277371076480287566868272982809621184840109065929523974237707060877156603133600418122530149251055235053291559172205512551617976534190733397532452004636646431970375258821731745986225897410406729131151685045258571744814826278003032668356331270751133919461520665325618107428707881286012331328540561275351503617152637077735691045962363376468000018146417832876421782183100721230879272109167963278477571488833210781161890716123109097978073650696289052716827548077559028002432040248713905699838308159709644615896326274113423290707365723999017614140352232824236316628260745019594684222199188547066811062855159587083544531879422619252860454256301739205692114626380371734367695367049190806818293044186330838471818549266764950861349446047878473668811296778499939158294837247971476351405080968711323265632538439008195739151637446172270746523477877738767740361469433438980213493620307262796496537643390868764928422194668729597339368725214455367628282017813206768373307060846501006866788719634462696336986479882783400628667782682312434399567197376277203919045997226215889008426463609370685493434394332639496808256543974910830313697079957079371050558809876999743777862839800434207177186886251716715080131282732990561449749194386798628688434530096230148679088759524859663957154932176983569546092320616194995709846813095908778422122689157621767580812954263297181616985991337496179614489337715862549274617953064795326184791239293948293476626964042939532903945945794160261452933813700170329983804729009576112400088458656224021429356412291244815906702782648719168049068424475062296219690692912585577344873171183679421943915266804355594279454115238540258404986994130239755980094086062632224014729219880767143182576282980936513663246610708830935336770795552741522446097944638107554132003204544026584679483513665671054774940954214093107011766258579008261805520880435395234614549699544488243235714454775162696137315370826391160839712887635470510969370273085425968776614740059492389520247840154672814982278728801629742093069747963548396001843704346728196039292621096099847941761549615256497430370916894073596218103982503174357817243349576947271612054990387180108628666036918956218913432811113946259441441084064680150043372611043398163800135097088319700459805879598271224371575614847360675582627377974947434702376467113834946216171466532079056507442175073155972757627955875041852420171984257661958113319306303984814593658436741653274801370863835957667618225598380800790612623566294881478360400266252093345551696610697765183485401626380431476316479019540710964329749339986138034266597614796171075208465784137745246718012520887309792595322786656400636145851177794912386069501819866883860283284502321070853272276259956916363728253718848761155473885452119653819960388255984482075778205209028821876148774586197959794329673854712183735842284888010681067195664873311295071923968014981731685312731061919506519374188287853568181268164477612597778168930185125164445833871053666420410825409652598349692585827189614846085484855630509141541077124274386367796435344851608357067419883125567866656241337939266928414735417149039545396203928533899407081723614590676908909678951988373043421693194259621365813367228705235673789018476475777581011364819076832172901114967793948786041813373403145977273223400300005214702311398645098084207138038303428406414826538387852015826365820726584300475731803831613710038862972358435107685437179216791959374791705060555094746023287269917656199406968140051186116971197055348678123308275465910711796817424045462930596499611365913789112845158501283934605695287778341598541408957788787579761172733850600749798157905603398972434009630403935489264204698985113017644399955533383846369921837765316686063334588730136375829907441782585318791059956394357500265708588646865225469999328169407244352880642037244072171127273762161298402766757285095610433071184470394095086030821008546120981426261495722267831452598080548939085441707485710909968207426934660102790184901171127637076560272533331098606733441833316805612917115195645068466750213639129143210448328479474573686347423765297888246076448773472891736685635115757377471672304216272876152817044573956001973823984574607933384588281166959630520577996425021600043820744979880511785523059604750141441705555956117790531562735172210829737541608477202014710152217607429876688813465380010807710566761597356945262371160585915449894310020131817359223281710419318358474855130120390534033556366380436223395381291672379945561506076823289758959098414052889956200829809364615453045979060120538947014462977134032699345091014031140954626058831602600741188174219355711289153744340996290815555075152137368131188138139995659859369752848423466039468917429672556539415288415884769946544217679059884035534738568981905980475404439037537737566946315146332663510988381484521222271669761872444613352687942307964656182991840328702652370058048757386900313248461121485824450396877521783835023650490888739147059988898301912282130135135187543366421595084130548227486682605540848254954814606303646639242886895349046195611149412713511414663837322064532371711089826856685656484804039739147061965215583150372778663715780888950020729724479683069925973283630287906055996077409684194288424850613792414913610700702513182660431216299861472204257402446519378124636601306071015872354929369766932667324077892961906287725771892076877249143121875927973611316002716994695907601079697762910883044117758853790841937715896781361974779025634819519889860154346036932529528683025646569071509974217286951144757875498382352082199597603943043967362766502982642570702177351941924297061679418521488924017598923765472928968241271716821442781450218305145612773659484204982921029776164479343512076578728328658678032034870338955557460045301645427302438976081530298536318628344883513001027450262718672461612489448943191347315092880280812721714733504698973465628238651360674449574060945927156786963516594385255191454713013337254875166812759638337514421465889249604654542682237899840401447518091238749745497863218076800901519595110950987174510739591104203854034269644076230917308141201493091314393095310566945299403793785924153670884238655604132589264954899327212805779602488413515181057624914764818542191643557561875332537903905107605646779383632191314711672985120832369360541251844273120147967981944201389920397150763495776395006796294990371561962519493049890866961241518106496233871363012234799665074191053188265202382890504376738077106619582220924859864344442204049530276416112345813264473101635540452031311558059055296653557274312859978705875016446775965993073523355221678996384714172601361291737650441336925717905188418894003345551719144930671723364382986940164907161468494199261299636205113953118873002268094380744525841008590421092412114501954229455789160375668071124733062947229187840568122948111095633908712910731817960179519619195551520899954345029434500119326347792406638441024681087551484783034879219426058231876366898058143822668006386695438760886330639287185792866064433105828939968406172503005238225975899944623857010617241817084712484487278642823746528210885220787799673206689790836273175268267681488863763031645947442222508215356289816616378701560018153380353793577479353822181757712529081390330411080614535109212228771277684037094980501466228659683508592012086011871142370818093570327270359576747554381879498742523842572360503271097003079260801478839748408265765850718475579139827015109326600225906837877289855274107088196193103525689181199235892615025943510505270835828661092092725468451671997075270898522599559036961807976751168078153783893958441953619565372064155220769819766792330229225095952911594958671721715857024148754050775738562341593724831773455528628871141456447776773879584852707348102652125419648166059729336191989521590081700666513882193926962969436622173776039080992652817861979938713718356927160093215174662082440832110846198299406064430957876511075081198795067444856701711412230332422158634591398526695250881501208997385706398059182759310984062607732636507081059838534547012104590701439796637822721521675097096745433472503455742918344646671840500731730102765704727139206830322892799626934914515514509326732849905970373542740567664360397695821007529993391130452391630907238182416660490527220790974398292525427383356890842217346110420229865002363689983922167678518581589022104791179147268129629452824217044668738198285278123996205840824774624080328881199510810904726140818925771056888190471243728566286002241610666233783665771600789156908386956525305313196289908460971959561729220756522780246105487918691328088995579225570558120414099197570918841916367624588981501903368646849680452641614750199870283220683126381050310393222291900390642456659756037226454427590319741902351621539193107553277377987354540015603203411143925442952462088431418446406192704309551798991302261355406805899856751253421787801213234483398706875600161325869024658996083271509853762199501878120764129841271813606520756715828944914739614771102379630460377430569031689875916199333486545586754037347538363399481115910690741985231298251093709838529757377732965276875862169658786782334866401170637512771317650608763063919054384200807278347494946323087593855022769810820191805823394120724114879392876669919465263705655720028594997751782356353348715525774402084449838671827139651338422240878770413517758058409426680510764632415173113341916724157892610446897192221525498758239487304895465755107061931578711788918920242487700945538720485650377752341609649677379853388754080977066301120303923450157489961123170413835814845184501635447261540293483909358134194714854018883163339141491404721334454398502722722839159044584538826481164373294095495316131743410161194785956448767874950574119552431593227117925760347155598644069577057300189553127930192001012167833405687767866868433842693565946154605876467806724535446861369929568620310687284284270309137258968655729427294528911206191874211231379180091425757506430574413904261281967449839756424646184834349147834827327927962675668879101351064392547159031041276567213510370173168577187420217464808259698317507573582074010385057752484127997256259730053802773215357942571949993799790757349796381164617118775535640491280597448812886772338371228125642995823504600136081471771439390981010719383061220729704501325382329200954846040098451749887163895776974589833012016514723014789641998139430608541025532048895224877508405672916430583321626572892688497142707103120763482913948871933998179293498022312663305432430368466685926472061557029999328048112325380379246257249181327966168256743137383556880534830130855404093675599596013180652948713594512332675059952848149068140383257479030485995099294831071754980836478338825201227876532173948412055967542482787732817991129986814306227153321022221650703334506045937426628598510424518941894666750619643297020840760047989695285182496192352314859306980740532507267851040559748442309309644638724289202541340390511322723672523901549897168516582735963815743422235841035978107035422089746414953159436428327751967701461512635534412654723543870309292533866412251829418760308295449762966895445929601010089681014760723225571786591077703061016031210022885101577938454659389094077128130282709261965416364086346324053252075697897384523729440164152865435016854877783980382791467397938160558359719451285922715053730825763520189016800287450625006094706126606619402576552008337630767558114017834906820464924927410824102589592332570491318432891630195375131787644952559386035249886070168435259575673891883883206930677060573058064596229392503042960910995134984148852442063534076540456113715057704060682052021820458393100618049506995161947079621792146932961761629541146459496285459371801212045851460347575025614517201599262809194544794369354772629165678761283396486315959970742437163831104673550430870175724341733749054602045379123922586946839544718634726694154688420180349225283662768625013563859903024370013220780936829912822294189644173711964949760125457738256038437189991061244533144390161041305760937161826942677178240799174623361086638948119257581997371288633093826773763640431572407377688334205025831112111533967016802597150056286860842813095153750836065545212640380617804767432212178589002476347102366498805334572432140755879749153324427227761959594819260962041423908921006579840053648931472829373964782112707612911826814978274848351560825215351059832549497095123609621994098955868557535836848446481323846291651276775846480124662517601348872604198459820743076154299472917643096623589136424726248569389140667674478038928450862107578696221853303728463295648452598753510753622488230355817080132163401196536298455365160043189565118250323903698106350907030277474436510108848532188875891860381163369042935295332154581806192268354514698339295669519754664325786357713742168663184986174220682679056371917786343658552946181010606113206467355226260197718377583510919663355913094325027260090797946107733977278318834489074052179713619995505313917978165497671728008291516522369811209942539446717508750535059928629060349120830003009025915087741402192422159260248610873815153147863813062411981687312747860241345340069248463282061465179643423559257694896998710567203441433175342582751512800373123527196417608910188690222642231456775959672349503844609948335861282330008659304427809237473070169240916121095056343407630291293150951402943967750156713705342368672877777707292860260842604349037520831444223288854086943556897027205681950622825736614572054502330935760725437518045938920640456817078217981271708706362859253214260001050558125093953512700856967077422588802425726369059078973082721603691508335405476130317424769137738840021355142424128189222223472904322235126704357860146348987594267721174987705085519646217636154437184094408573100138234418725412407064861469352332964478378310532093558471594265017272034856928993512714121714635398301565516470774712066568307262510477060581186659660439736774797495131883589900050008205000284414546950885672105156206754432588433398837312301918772556728906988290808729041924247364411300816731880899327265515322374327349433556985316685437047269150194449841400975287970205576980637419864887558346050148663108172470394014387894862471197778374685817694724178646760920061685060142288259062107350659312376723749286897881779205826297255818820768481545131938933045329573029122417446148471234421263087300724690698092213086887348181875981367988475506813515486069822537402793212529298398584330942196435661059969906530354118007790078813723540946560761525794426508601065596571494716255662404621683818863002115332957685105839381009996515890628204573127257758890863672358292581257381771138431471418806519278942292712359881308021181685404307532358406468315873741023064936387749839175108581862343759195371535147562389884262053228805303782643545171692001978935834831290577466743865073844037168263165594810964171580279317425769444543899945328249123437111490258801360457927514149883092278899168351997704191067306893140341059679864702106509350940868605152551795003441082834238733850750176629464732726493027308190069421199366025175298924689878711025640890801180647303326208456598089918355605748313451803812797618292294652120763200701608431366690557285402977193575866240573363792516873974201181314065932273612262168883218808756087691580928625287012051612856898506366112538729936578552864253921918466440402267280768861118252823780894690412322151504367432989797557369496227890770980478345853528641233786362755583134626003099103828321091767120456118875788727398232852624586118388094165521029137442191842299087238465759178257260929993578080258611402610066456866931467536628234147700075535876062912530639060820327023213308081756045943203420461682172365374758473343961028679019127837187082435629938770343064020551157562567619779429735547614456569420628964385226217626022849024349114715337540384588824971685478604200860128756229736785647713045754962466717548960684488784802827247566744473339619673979525013657070396143774985485457857487661921187173377474887853518631088807421032489835070955440532501841241411077589280076859401446004937379812386525837173468056889183654432376331773321795536410778764502289548891372151195482440726762563252435332610277980646455969668214646180887639314536407808081561413765070185358297408237638636452647807837476801399095512028672182569981656807170775650841605561712274200929265871496454741506489662658487078500939800772827078412715110494349099391860065014815378263910160405996784479553911920266359849728427208887839378373200045545762385034420020129467805285742959960548345387047085156143997245912078156990112043089534990816305680133553303492180720195785306747271980072452814453578987026041483623064498829363339481452952180573111726676596310125119049192163688004118883168114955698934851017907269493148251213715202870638873937335016701548726757806064196098539581421706153970849136948165179179698155232246059418146194853987665951268811176724143413333366395916676811602539171178275752788810190191367324150533054698659178148210667268419912190028324020492189230716337663896743353463415566616656304458060107738145956801170668759658687307758209275575584002574098403975495495812627790763082829742798308228700620072772188124573277981761057029321156725223054105451593029074393666860415531876319277195745504863213177018147801147563945299920877723432254599278958088862904282222445904351315878646707443366182908885395422998311380156649417968467443408644950183364710972202526924641878781928415112785425646543749104653849094226157443190457868401092785220327299745768570379711379275945584716505320251267551262568498236032568909600695516664387148278183120528481893563707399775077360279345867479128400271039645441947328891815016305924671215961144312001561100794149649216978093313108794139748592274534715579083410410469779269365775699216609329966874427650224821963377527768332160563368712465040184226736022735108524898103499922812343046909469045380754963432457653211146796472732278954698498050665315988279840994573633807449229328227971668437612904074215602591422234830146036337994988906197832985502481720058375217495796055634788734234792223689734192743449573677481737258471258968716338872347982239621865423337995770215918363144866479404753731277002695531827697220066932534023523578538956471997643307229050444837777604891220474249317488878373152506029934711387310396456491688508707957187261808598079208227730586970382334300185713718920858401055093964565397939593281595381550824258051451783958566350447455347695840252508282434343927557503665840400862634253880804063009967086911463568538764146207210159854489617769250801642069948752359958192240875217792472231498288318553622754818702375294210647851665487254546796837388588250812048319582415875746952087374245634294795410886947354157804145328681665002536904097430867402562880417212673522257452966693021424469811716796142143775937496642389572499629147677315979788336274766718655247911543550655709185906612766990491904167545917554074004898005272256094517921162522094202980673305737818430962464876668311758061187992591781832747322911470663474601204161774884038548554251273863782162535169301374209426997097733129360169725656475514044278103281760002986941265496060434718583832449356966765334573065202930696945690353872146235146710444209771260819881670438468791471638228410402742713902762525357857685490921670298372513128637668258179970894916152941193980147526306089539255265823740531029718324614534686326107012118435736361566196337069296777199299220821551032707400442830954794215493841792309847434680763561508239871645676166137017404484766279865403969179374776939431940372169737072271808935673968243676358695454060665562099033827329879541395530790005231445585086247358675240888793989960914087649628454866706759481675585982694309457883949355330770932060769085037894784125168134622821177536210566574212179111390586961161038927828243888498466782979904097997055136312190510307938095820755357092773323885211280680158056505643224830623630523415540228660639786378009199808623917814030799425914715332282845342177235478817115909477576318621521537826054049833845208912758931804936665397967995822181920053375323766269310043053657148900184521848489737640987010542089330456684535560785389098243893735236909518810977933868664061526926683225536098535601572119941822515839123563294772249050875345408789589087431107810606845360353160042944845488833409138721845940751502838747961881508769978140868140793034933290366421558109947611379383469906239172107781000411089340882968279424084108043196804498252058950408738239363166610877842199002088863839138430224104756688055249466143795757208392549150749200362631277568734744392939862578077241114460412450366389473545991237633994757596136140010511992992746278963668868860709913080383654313331546475928098371765825973046642000266543045860648341524251200467660242288670822246502477844108318468015273307766501558047763088771210716559892863652966657594215600002036005245867663992717915987004735411095091485714363835729458959735114624929437744189555680975769268136510980214078177820487172233822757382697937580648204603202094181912874232828222457353057208874174514203332594602877218880107636222539614172331536724909370689164514483003081706735633208670990709973921800893486719350197139370713862347713926211567782586020429543882977609994510835026354775625442261016975977543204780977958920519702792348679527321510097724563095974056866603310825354744273070730185706647410111514762856202883050403682985401701570914907906823124957730725281163040998887219876257305348874865395596309400671160473165212790414776417546477526628625495722710228893995324978378062258303418539093968955522060274912293857428410267931908705524894026030240279261031391912509826912835243439804488734432962259284606387905148570018222620429423220226516008825991696610188747851860657853690858303300473361109128584299017830722622593898570406125034367504656740669302811351052223387166495386493784729540484952938220409178703130252842137136102340268876134332727581989455653052527727791878387042827151390452657199110607703450817762673014616759100347221044501664529556209301552583641715621674443818047170181716043830933284363256077333795916493216154601403606649707516842313245212948045981877806221404109270583546095321930925751184897547408997463102451537164261722651326869474149365806339727176689084840646818556208646563042588291314395285664563425506375834316717050700707105840966643394513784471966598567958696919994852641676852563548068793902881683428188957628707646934966748759653182969021907062109673636957726510153749766553479136088706464142584620852231318499921061076287722912290351858274613170588019168502123777438645558508874818135462188969473507150465770742977726723251688485812946877307150551743521655921328039639138884438457121153188098639556945187085521969290113491257477563017811548614442668156204291519001692339308901711312419541735676832960271345131390116438182946477654607889684191565659436624339047894039512093402969100978332310642561978591311694907799866468030970316954370650439539163143705509139460030538968169344325216367229937386601889037640869866489902300141433311178064229404759105875811559997193636223635535939511653094978660069788515170660548999535029101463613264482739967654783743318464034107127468943521337211072151177841137461030750651010131996094820325551965738629833563983742008632643771966381970000877889750187640576812998447234106683191785381021316035446745780421841457813931664473029677499766800080838826448113261254331238087539900741740958973651115988496488688467771046470209616240402295225531756435052479019957055673082455929896060435841079135562234121577848451866012737153673248815752036045520568773020723348732485097807680989585736230656984613787598176699199358819140656837965307335733740634472280859304545541333343671435650066947807735482662074013285639084440090837428656019570737933309951792028621781885745118120577844000713311019801512356131924633190676645657041954019511938390204738302929553389999947033812349660881406631541008840300542713493805814313207907553685088160102664051741909678486643215404034832125123449228335859117223210650247389337175856654513370254823112614529729573913906489027351003618975107199567444587583984466136615293718974626428320663454242089386511111899842342458536889964315662804206059361267055962700751888455202617264926182936962944970525315694447769740686129875826411794867651061056662413235402483171514968449283768186666850686671493189038350186943263782280284082004956023112398945125104278087422598784791029637242264612481226469703485863869976120597578754211439006805710918164639823341792651755974689464639716009473669794898358157846283210353559111687750055759046599612730959160621358217698795786460866887787720376112400606949263429549755785108702395504259848542523475671790791891035197561790868506435588816238947398583269450149604442090617781497886053503594901505595667082610440141713923118399504700822193750130898807087977905523875767930387933754421859333705965020362001361726368434558143136432434790759522796535107526403844919379560305357932926855671580730833887680832637670387547511563441252019875683501398467540378622486693849295177587324320098204080984694003122460891246684186565627979413558876306606635552642883310718288190544247507469822069352108247896568573462320911257283174528606447649654841073251192076147334614127587425788553820609944427944547669044263062577532274333965905137239387184059754250302579905251098466405024729697576189495065162148162496069100211279827557066990339714046828563059161925859338363752424652616636678423345441253754031522806798375817215446179109894738707826774590276317394396315805005089705179441771986437774783777585294666612675133115377840267182980548918723252924671722315872680025338945796884610256078628986877730543712746333754987995600528185903893962394993333649527572787045787548832772602213825633064333860728589412494756825230238485532826754905150322427541533659651715290484673338529304452782708933595136993736386451788074276838959030304108636368373109903587603222078162645552367910134186422466090439417663060871786687060013428768172411155662303978031366852257020145096952835164820819660335907932263924323068094760821215591387239702993080724174955793895192068841068158543288525383519787889176054499931572161119082484084098825363728880875616616170945534748253649700983830894036837225197099405661145891412930759085448104167898011158573740724190323439954261176470212577226126249895217150378315047559593539511649268053862712063342081137144048930352232701433136883103460258920779911685127781875293414602846164753831667814497112102063307891841117029561185833377442657967026985199522946133292811273111871250964525685356850719480827717809613691143120846824234626420638391401653305277073956657175648772700977279434731433755196572753060194450642935593909031613581545804246438742845931929010360438416808590906671896833078833628168265494140973197374718009467837586695362267498989857131447474502434608625834961362752254364028473644806840544839266867366530417410771593073363715570418128713966581423677949236837882582763513094751410374630007126388132975635672798386170476282629329883187485148012155765651524056482025733541830369423580543384626324911287676126083267900969486587354085502183874246500191335717296219089033407666130155969454878658662387153581721718247538194590355329916800118539932669333708335390968193889961431303809633490653763554206222097770532136285484517266214060776537694098523971713146517010389987132282289258330266196708679820152548423787585195604556283198515446700336203336991124569567369315957866008121818429622563783927594722025384806295408503417744731679286217697520287275527523690529006694229033371177843703862053384363506171543009341846207724190126515109030615838099905735425861985198882955275160337130105751912694996076352547800567240532190159225962727313639616232580107238042066796855653022358380360501862170251882180430996217592006285536666347334964002268023636048087370494201419414517715782073414889377799900598183867448097817484585904735607921882526327644617559334751579048072319675553550802973879561326405785384913151538128968621988511964287241764619203551797997839534790932517345230085231806483486112101512015154207727623546697545232404746067848272325942293698917868518209021933745995898382328946853844620760631367020101433992800888563555296025056987152927347801414623123548308202750395949931395627965641984650956381358968798981090950140380210547638877148506082406087934671419526198623407216140531151090983323529208150657927389640161348242939121651270577217204683710203317613664615092244428303070634055084309392617715690105442202143489553057094240684703189415205145140251397213591009346336224478063459714987522676928775586131316932716492602362218760409727038717107501807663134657881878033071185440117148738634717582356065262060681232764119108717274197504293541988392925664470565010863206832918323866405480789432717983121942981926896117512151256321205921597927658338384177458526594125329909709133262233266718495374403558164835395695975723793888241300377463114204356351290792091945729237862192575729572117715042836818931110864810713815392409712017772797420830761041174718552721814604237621739685088280261143562593227934756234838201182236255479225970948718646294249815433847958361009931494309836548714665120515004742240822348881386015938277379148122076066224615894122307323669852296201509183901297732506301482697279294282200079069903056246306966209163086704664080585785701883051927687380413748719836300741495370449095788967501734715494674461312208435328866484677338056798304639866346293584623894270025269744036008480710443511757188082417856020353323170341776336722962933388487672588971899151055935002094033696276564633236920473242142832241786341533800944928338469929252675725258128174626851499392447179857180614851898278555185605932262325177113703823756838086613808028006877808900015935324184564944979432799106900225967073031491351501269653531744450642763931842320382738841291613616764549852629541881585694855176951713890631970891457342879670350682631178460472061246745482184490996740531360288802490377732976996914146834683357902156244121467130394122935542252589176976643789806256572317751650696426865877943924223943003493846043266980775483775483968257272968510110471254137595977768920827581004673821651811425081663725531644414553493741859092653464733188002015445221751062782563174426074249968645585622351476311579752481640610485559366024244987944442379813154941046468980658756701291727135627792132394420467494011157910039777222027832863904696851022409585155622017923762819629709821784301784284982529849618292763771370271440037956145090368157650339811790327486308881660720475638229546988536331832398240261855433111861566599284662327506728025695503692064651583118115489756064970014352871410656424826468172984484420593705510180810089663044151993745228482419508095952196324485406157725969830665389556881913674952410188711309443425653166576519244974059887607170861621333070865854190883833307186430411306222896547455523823658781885868245490033200846628923157688417634135686292446735911755697964184783444128474308371975704635833800062990327028857114190424902173051755355934208569080218220281866002088652212459196507878737190308139552885533345186840891930174862009943392065402573813970929447062430681701678829659342365157378350160960357105573979339728654122773694687512675528541313898962735869921489660955401950398522607971091118942154088567722311528944260542571411914793071069616492595379452079402879235653451786217513267901636888409477751640452179559140363462331062824538736296026036699188447513060861835662474417916654272211541658616127296476790291974113621616694129331219550305665237453751072001743292825055369332113363720393560968653482411590000115043366940848364581590954414594278847906281297603758888026975976075105375939920412120751436142511332921867031080124442472853010897199038611154992135320932960224376051633383769145997220141374166273890271826499261098422561458045727437726359999255289050142142171849157484809905713020745413949852143650937813900062598095465927490592926663400031106002081454668463890782697985070880168192205493076451880652163328204824666899735343979536192662007911674512898086154741703148644123600417794030324672595154024291668126130414484028385743980725041720584987758640263588911893105578384652845275005602834306121581942393201109396727423531904961189355808818665946724660313322340027445930997519686791020849102006934915712963454293565935375180558207604735366028773752735910236974238911133847649581068848276456754776339604123629048715383632377638117291082480910212549253501541489053820062253160458714250527454791851681011362131883501570208013642846998333925510994646613802074003011685037258569511652918292568194203800948418442118740395583555663099977661829124931323516426062690340497975669621343064602425304364429889034864695863107333866841868551690107031041178547653283042824820721517034600847624455709356617619710948778559289610964912398685018693206207447144760417478083217061972255510564253703205130275946339628975844205661277375261508565421232702489509808213752768936476316588168745086906381056707680063877610320462248583434815393859638001811975541585845653069250965761172646072110260126198766405169487274818020140373584674251894429497983254163648224027965051149782253910369919522778422640411302115181707071198784727432886696286736828713874959314065540815710251618118813827776412206687683767176790659292589729743338402566877556631666742338336822775755929954270788479208016928305169644917579194694660959095166141710732563448172699086698849072409975923190746036293327758893067020330865283766887510672317529070176180972849889198784854059625836886900038947768058777243377338451224924762488912223697461334482308731424923970604039559770132365581951603666906117004358473123705878739158373455885693527017162213455425112712267027010422880921622048008222103438135529864192359568567616603637225377422071155097533298107115366561302034004823230955043303478327605171487135222401437404848671044264412702103030963895180301898489242805646595604886528565195945649154025069228119251045813445727958744597399829966810125147893317308732021455054906821794730404944269181392356613869671815939766596590843452391646840510149131357148978832516730868026851725718403257653392230167155385239905538338705740751043758910433934530445404082020253548808203068396563578914157078753645898605450188675761694234735619047041456576887345727029269658685874037980601770165463294828738302051670892170027728519711142532607519626468680100490406456811295113661480604047403794073066561411505206726682022612104349219237221741787038471763253043549473362604364024491971157510989173108908455748429040278568899127382961040247665127313343134364683963126572918813183551308222264150670223732431597444906564108993704041533865021415566578926914546697675983839457441593645955897236768898844380847061660846874523076931747591629630435450134489323764163120995350801046066635556315080501338721595069461440637958629667461871338607500228975508793143516093924107474104790304235760545190256026123904788770930621424635893147448195563114564512707798337146260058253551421218328007603580105162651479806384896139735614764558235353773791754091252357236746281684550319379650372130400408162686472223049398487445264327450231079584388599589022194789387524814772286614442756652009016959293601028169732204472819964964115959626650443008981560513628972716365330900905624565558251732248508078864727196065818026984344249363613547104397713746405745882413678858248863636422921254784395723911009041367732578640009318312282767466554452015980145033724354997306825874926876421864705932274088904061084787062826370230291923920749146348162021801368734554440563769951627177548701852665919880403902182089084541518649113500575367317425451529432787438349239118475484815800289130838930341934111028519577665973675387881580572027179346441616983340686043915129806296593782972687913304176381394525970664321702683457893348316568386226277087785278949345736498674012566019412053030346983768252964522616718306153005186289092145590053567348192502647859882538606314866711541081933750052593302886006709703360743768383934372931480275108245855459898062887440555071870742077655927876767892892630345055695810684372266424412947350297023267136706670472421084569528726098770363000382775455408269725238587201850186358885235708535350322179188173996942085977776749040665067168348567757926870148140080078936342248431090181906637964884121649919621806720385434171819176476146844884162399440104753863609542845812957536949556513727605603366172927628094484617871851152192507650763019851642700492892947596308440358645392679864591593154081622927698991836627750820537927883435917963407828002224464007167841209125964779128348249975288508562285365766154223677524885759745193523737364085284434210481350040020594194256892492946330710267477116639734673954264347936840187979946348299507555930051546291505289310455102060535558860618621155958981695083071644760361382999683115647805632098330371300295366808260949778946436778101276681160286442869269583636832091719055442112354505865126447419501063996911465297868501095043258073019537807320331854497113056390944784535066508730648839729611012582467491513445555215956888033550175505124098406857636907190602271376804784914451923831186321341283778440517140972441033273409965544497593015135193403179233077123437364140632268844693918913125158726574492534502792043124345689699706229181769094105124080148810161110918355358495171462328519027152212155475904977610624169458570709152595561878605277665477069309955829015294442810307144891720718231442656046700251218754529695354661128498343285459414597320976749678845897912867846074026285509093137130591637810856227863440128098687325093236671200154022582323446645122271392519980196729237486397307562004866511903786070855389981869484618307908704771847231103912260917931848174636379347387237901613889911595284242179388794508441318644038285279971738934767369736377486285088850590228467475664732579993529079812089045605481213930483608811059407595989332435302050562980528503297257692321732344227657214697146265292402804802279324143458324804569494588099044783203090650191393210723309625611079669196362399576894711244716056343722836148250193943417459398607665284187617256384630880458434344144456859313521055908505442406077504253983914424584679356336796453974655092423863819477950320301428313503162121909564692790202852900884409900181715968438384436922802990103726900678566516818211582369751929200186100515806618188881743840969215886562586341153073373863605902724990379416621351881000740256134765004083917223260619974819196405420596093883493435849065619592511508596201125020502779495152964911368901900472471311343957549617406091756946007777386557157972353209261355619178973444276073619048688866990110294273582696399216761476752903835663397154565133830200784228793208291485714864644011907758867548560358392368337932308527572585316338152186906779078897077552844748135763154270148106145032691910656744901387248801104439230722707187031800237992393112774684943692456108095968245415017546578111247321236755358732256176331452217491895374308448299531373398336863237432371498212109943682188393422398393233828758172121280024387584680767184408215125171599048344155819696000109096053655852663545915014211930911147989897479308524486453689830533701913131624601713159990537718579387152302245682731250345326304519560262361179150694308299436221538504503093284969242346647439632095623563766676558804558509134416172822117375747094091278414555125316793425634758063068922719372825828997854859289595971225610671023931592449136252492125110055582297984042869423474747994690810958541028264962861536897793258676187685375217410557161603628707370623979573728396695053053848944826777029724974745117344377055743430401986293883527967791378905566892040145221639153616730546230534904813999327212329387802394781863634563676233460234593644689272018004629076599458711303568360879587852577138026137187843829516162884495082238689836771837712438467104976040292561173311218311452138580831176672896669683179091507779662709952808659194554010296507787680836239434573285774233032844462168186243251077683019805572463464457700100555057111855158085878048291114196399801447864539400087804613119254511503184476813349610186315009012371117570572601582366349536696127617097808574662856705004881136668776230330083657064683469296195582109834115106774457179910967306499125397219989837232554113139455607241666986135024362598632215489620270740051664681896845511804225817770344697212068677668808356591739598103265648240307953402923936535764899477604465675599944543813140669265834973495710946122747053999664471535461142068431096665620266412221146814794510878723993421209552944062572698721120544718510231422674835648968681995905912633774413301030360654024941495672332718585774872190738879049310818405543809766016560876783937447322465342373460454844400957602840836279489989069752552162244641141076007901907636901016958984035996358177117741612947457968950413215507078991310729631902740460207227366068734214801420864595131089976797857206823261905290745616831173364363362307032006661040588542328753227980739673484229979736330755251797280501691748176875351500461398603635368102273371970730614855795158647181371550408770505199165979868713596570745445259052539341733495353657407808453994615859013588603993196241465673556568041285398649857008964248426080447678159078138989692889086638253154557079632195980976235187801139991404257453058228792570049294582460102527157129123012332988987445883055602179266914257391285815141761774146793583396653837866583650116549583207730850967994567505801935378420409287810744763795036162543399638508489536232348286232071164430710033894396518364130779622666779374498541987907088909556434007569884603511227483366288650119126449607183645255211095768208388314388805930550875165718462504963647209341781514107589294818889860952405034194718207970331304973800503634371034091959934021379528364762533031941998176655958510004875657842523369249450495029767082145907360653062162156468552669556002226443218650961683962423525996621662861219291702263326770593939443301762632806163921209790142972171662891266258573602811710101325514635202241622446717764766600032463338942138991749281539704681126114390231811921944066734650801885319170882887586564199719994031417883782699924638614907009282991811061862985487856172507413006726226293889801228717974010192322601831609251407353907898153279257343356118498187145920202731123083265799696176524539522356719508469413398647058628178133817663807406062749324560498393266203175990706920043408436442803334238672040810468588751107895654350341986294656181316841764020806137956094879898163104611528071869524573479909198978127061820342153705521864101088460343662925599752585947406902252666966534123542351402348611064895148881379636980117305256000033215066387626109903197180350498559287586943916296947020846874915527512779676010367065844570847258091931517207956361746897530547280848553318039626062670913576711332064027159454441049950730537980078398714981233405517397981760049650117866980819505883074057945517036440411229486230444491717334779453609152014419728022584693922198742981675780420127865030566538317784804968480293800160867891513993389059246104591636569974364378392762393143414634601026600930198439164952152669823705350933979794115525010097290268747529030888139464244456583514849580985159274927751522622043126039355066569810750290095339356416557443362242877314634386861748455966355098597128889421528183808591732218315806699268963297859346349070185220626363933177789347116643848573472540615560440558064023495701960979716221604733389803716973191829458443792184080749828108183929325856298721192215667727701169051741431779139937522996142006656190746028245262647978483703324249546098813768085995888865895928414327924083488641707625029939968824765124204321681773377868743609592868331385423096928772436707509955207662125332759548427048322772323846962976728174570295669996620358119298130195074123313650637436315439145458382322016646458334933316700901017625987955454022235764922302355247713256938808094572474475036914816844554870452038866896294697866703793488603587140857932885941934820500536512751309924888057732220128145938031551941985532201585345577547301254558436195937282941823450745003464067156579879891396250533222358974676588560986814241132633475094558873773074658175727739670459566315207759320736942218641823289580716554797027616817210618184491719562663596575056926238348653082777623325450920285134022928854129075936197134642123456598395455470573937788505863360721317280060628549996514542107488502850698523313644208355468302596311104737063160373097684702929448399074604765464821629581220476641979935872946922826556735838762284937593348083866440602900061861618684948789914433450144345111937910608118070497231077035504507259231195374749400023228051964208764670594881965187758244225487171283212091462625797691257447964424110324216488969206238394586669732714770671434264122799882825438510475517846559537104085158600470854342127873301113502609184446929686372111369517187783140684612328115055199784776202072355064281081659650924414010589512222416522419535397757663723559894600251241689037422735260656131231047197702972489847462593164020667784537798162334594554184027451666532361666760553050036364753165327646796639015397715236164696665315818949233425730491230501713125238818577262599236161832384022209602839445428305192422337469701819079934885558145107976929972070931024912320610594019781917898204684520806506993924782076743251931930195400184945250493605508815312498968927675147360764541217156013108445243464904611381366096347182939935234956344904299861700238419443606011443261774099427351828475788664008069091229751311462869281798806566471967003300308901048760568123026986614267198420818321770401218643898945179238109156609304333898281446190028108886577996298498352387101438065780278679478232756922291276973693357055144799655272040031771374148277695494633166668194055236214478327626508359296882590774030022987590229842598457796867606270116544972027241272496684453153241579181235429386611465363397800721764949302399268361240182523211001902120697976149210502654547641386135584733389980932835339917962738222392211464380282739270452712764766080074386088809814825639226923339004258852485086071597926150740959817153559111848105562770633268727475329424390164836091395965565432150546419460370953775726958074251932396804939492486772637321155702015769793608236834574498737922067880787020674015404696432112714414111857247826887591046328377990331204313999155153655020320643334988750112033199542048392701269197326000716915564094086183014657160621355997343141511990350845662944764014279424021340117382096959582119981049865407604847990551569330668868150711310298713952291527807981715135393411230202232749791318401982013052499130466547417892606877044636517182668682068550463063320850608242356033409017880019726894141772746935113136748215138878706505823707083923755499964280851041338016623119308438185593211527156121738660598380230898310188564201742145582727720114035141372458198137385645099321652352323204584556847275402967585432411443629627863002206061706560736783218554233185909391991837662494390450685168306534345584734657877110215611554137362069534507537771673541345463396900211627157872128545666774736125190386532937178146650380530661649834901485198767154749516448265882525394213951233293910428595620471164987747449153888401615111685584986463536211454919685359772049315403163126872702370573729975922278738481780595475002634526158707931543068603998864696791222818810378351837688625557284529922497723527405911567824174739224303435452396895287271948666507191718543077376297674681317532329771951024599262805634757102956880977931882183107651845697732486420434222491946338729630377572114203636113494835855137173644157288730338729241478991485738120534630759639199560867111246360120183932150311062328585248342993907227495677655844463783190003588674166817061422823327098993019100663950113531454323623592588433958624828018087498709736078041411452549012664803176173995734353420534482525907754662587992897281176995062357012528818407164815726715626468191317798168386623613673988551224456205122157643774275627401081752499436918331037732162957251910782379533649664273272350871415880845465709181043265082413724182592695305158092328268554754213599356749994546191348240762592656111131706202948330606419447872551371930176962803298024954098892544057947957922547249554906185525816274422961672434331647154759046353632404574026180532291483289774782102810433523058184601847990833419954108928623056476736596128202539524207208547641451256203317602558067937712026716186497891300573631133122701126982557513338776187535991330912568801589740054080904247790306492934993428914416904794667441415071083468723768430310364755571973231941815392757999464197509868033334856657401865017854900597517646402765775736138498119045419073589509026789497897182430443027256294088506102154302796664973176471906209894792202730244734246540919412489089820239558980574135199784054790702516243155739232025128428968889258196712871018378474945975959377489773731108263046159610229239817075317723042671928334836216702739955777396359412675184142604306906977213152411925982288636558486410695918988097053280807094237584268534467195606578728622266144786347452490247410300938983051305203608862072208382951858294332842554626939543238584033218480658139199244737758822878207118220525472402989039436753056975688065616188096946044857103092336970089232835595539898682072149653223266249177807499022737448504149626344339574248354922932596939036807863523727398362205687630986045870082721963581551140143385943580589691368530745240432416439531876934238843760201936431573788468011226477787211964944861380422514855134969277269618361183872730125051229372149749366846368997655233994246500627093052765461676075847814551395503170535281338784504849787575930255836091650925422257745350615587124472071915336571218120257413358739451391946460514656114853911847193896902322118565113045652674481985495925092092249102739972709559360143593108701649523747320487488673591877047397895067575087259628367042961515955734059187320411573350493355860520362990548792938077662572864304072210356197067470058243023773522481369282979205470778175655123460391638044561229245468483468656390947834592537815075408312227555004798050652698431691953167116861469142225090758030467659207350351828336049192456830556710844172050001525999007523294065785555006183664902134733296893394749307150989884854672498059056584116561389818930591695381682731349115804984649427011667111079761213996069036375014914074063109235216934648593423893334476429794326921741869660850062149286870260481219035020042958953057448852172808101446421027824304454336180358104904419559538884036918369057739183444696821038923215088738409125692377047760615681359156954122990429735414411111262638293201157131185723486292472238895148670724465188510816235438517270919963144451534092508515411520913273392980280177833596733044817962188151384232646987280681030450906754687269343585619543740206410432521222217769517903224733513018236492884969462399830488019366324393888407006034023221531445036347750753561152848148204243111975403297125569160945972848072973770827129740163798432581790257615994924540735400753163888291457013842730168258217732748709317532412412892333685650939699101857398145328389036991047893691550601333890062170141070698474094336780453973921554978491519154335787494474962883195056791862671558544290817805183796154722545471880133824295132679100221137667119337474884928368413793706333168314352085551931661009333303605508676546500112173283829782498328767216399175898877347420403762197193159668728571670967920715508266016097052132602393620832680476599092531865973660918191404103630710951551597417329200227463991893596063294858287135859184140469140708814043125112624157173930695871390299234877767910616969364191542555361283430703141211168051184245488347454637743692102839062952606775626717977128062694879636488446347601717191087764832432988792756615494004189096559302882811933605321437183551441000325388272331779292140453785859723407536192174103819880181828200572184621244379068660831143645712191645322999233938238429840587592258523688359979573016436951729913688464510720252000253404810217798154754647350975639061973076886971290354639514487308428719894041924144187311943163468590883346946786322124521385189536091055432395180303499194743806836542270434337799682841595064685941205615245957770770205155489103478780291242512516434640949208998156740136109538036604389954450252491833636778964306571748205990218347170941184310211161790710643283639265190793244676614681538137529624856143064567734256112722092690226771802125819190202613854680439399221928844348028071967707438874861492140285484965606485997749083062747978195343665937182239438344627008108074919582247171146523792643248709345565285615364635895640679185114763163992321012592178352069523202626274463952077743569977542472853274188719452084536444124666636137660763814722672518948577492400180655327802484475431830246090909857106752742595476748992162663026370663456472938038027469620000267234052114497321145450362956944355667210962639664938401608441130129550827539466972954159748844471717452702491111732556677730893065591119628327218904683926307124776255372375925947140825065008839163899568532397964157507034642252576828793869140264731408390484627336766821142133951607685682388954847373130239925497260196148591954894056800628870538804927011429036430612720041376910740105235581990148866296705542445376973427215847840941376356566321188788074870023830394318511047907206806195102546239728610306813847820819825982036007792664743928277686824292708055597136004315058861811030898360640499394101846527436266129253869053391888680480485708657072770215556819511575547335995047873077431721798699524942060025130354920761962125789989667784381753009957424025334279958073042515760642337257433626583383674964673508201899981448526969402364135705719547658340804659669532754943443534088589749339284275744141356367541234751849219761994594875511191520929481211400111091695795959611993807429586824415838572813963850034074951865342692401582678603516146500323439663454346237856980685158214745768580030913392211536576796684921659089397902808980631053394845769989538820245139375507808027055916310457948903595520047087547741638674587959709454526258403559081607849879987176953749266369029757446168453341423967679216953127148885433599944708459297297247341339811806089873805827740275743116087990488867190316461720338684909895948424807204616254944268196863424357184485220273442808906820959296208348033878667541112552868400268294554952265500269435184043667265091606920480802345811574485329525518443255886411715364374934955569809035859138702271477445654276823977138389074402281174279732018756449093464313690799975752423148820289857906662603035810218296489276621045693071430420799363387483774411002560625863557816246703088472520162446227155886753111659600176907191969430551736560404037665786768615875461249239767165828481211144629630621912855762679575311120876808336925564627943891759294368961238553821914733938111444455051014367674267015189892930841970883498195676233675770939619670877521303744685775933589285571488660003963245215311756846805184379341016994618414922920166763094531661560804478052354112627213979840376396819659623202717777356234107797882703436573660789477965248199693287044924034557723013056383437962334388830808492053237927597158422199997481189054306284176797458606220842107932985649668783592910133972283240426481313162069347038026328365465617869395026617562846327455636125987956447595741565402524311759101565072432404458521168104586388289342609092652199966306709841562980287865787295625024186929604326781572000511310817650374983353378500111113499670026490476439060682727222874199101234405403362235050189166091893213243085643039188238148758733820434382803955539152956317350291148558277786307824019942598277364331583866564302019679957926481280610633253918453661535619035469530841287934678868532975409342307501609041108513957365596802506266948942538355411565835753122317126623858964447860973067468803020624897237647001245168566978150704274739809947085734985119519759579269807845885500433255084124650313945823992496017509870428437995193358285410616545976364323369314820851739619140805679978538269504142063740233377941160375789470249743816945930045768714582670158532495180968790873554837092039582132122098577350009660444809337120884304140784970727011892717489565192550301929664189694228614850675844531062396639525442153938052715049143425207279199526313976325449730007299406085373777337162667840601472897462285165300946332068434443580448448053459338607960806995860683153948484852850799283477870227632426583564936961225020711168581293204849783428918818244928458492795326732735260906736550959305430140811347169029605304644506582295666878538431622429482063947979854146906863387258014885730782573004242069122591043918558711755110096537455913688922806263967512144154062924458557359860368234996588850722437416624531563080251438035370042591487396895950374656854371099086484201292309947400497372226877142956559866392728955374768976675867992138662430533376103014575197448386767881067424244743387247197368267927543004937546487117192796553727782544966422772344882802112298528468692523662917367748932335747442791086626752148668283805520269333255335702731200731240394430410115921796259117395032597296843325891539094350087471371485890412562924074528674911086698382129880130625062465873942070458112234725378610309124066620044075947262892650735405128310024672869211321286444758577590060332144853269356364990951828334622734095034756496137654187346061102906977692544499551967975686197059222985495059528159031274554476393130423581837551321242650776917021291714603682172100921194047266737351211837264103838444041140340030992463383393860960708533357369882957952508420342666358534719235380907886436593551586298878454573570362503965437008129272795926977862119782499950900047099492059243197393899272883193400781084645513883725250233375450349794685194518144006516344133593353097921125878030729876289267732554605775467984084734465067944050615452965204568339438847206092071226700746008073142753670903239216285146102451976229807367875268146977927518816341895794460074635442389768934414409746796901477618658708048549157261356092554746156491818817688422463164632273874874556307775551673291789202470696734230991975378824993442851489086388957298968645072955151473443340755884680156695479957435606462773035671104570313069285076412244641735501251830665016375763335620836552882868919219587202319189135916915599039588430727474468104341121894712187567418713163155621717482155156481618411260834216888115846915107937896509863351551936782809345310589360513224228775373076516704810576606631574307670228154264291020817436834366840593619800691597575636738269305181385636364277845333766399088224514383971625975320688299584228039769959678655401130436735574667776912012964574131009477958631248479565548895096977218164903367926033066542247373606367868892501067460206272645443553444280187475188600742429718174788549453679899315468679070028015245911791964594846286145030654234029150585716021711423472746748026240336014110129315507542565060991373364193669454641752746619711402607845411007396111083218346559409766437412892972143193391838939640120019550223157747694617984454025250793088178879978445186633823930191024928324180095168154019716771156798946789923510444985748990399903462499077835613517645344044099754417284539751729374015516276674072633089460181094765537572916275965432314366963919366747799087032402494408869585669212077186183751428976817463108227470713464050311530777130804032751607864740855177229958055436433878438635412507519247366284234022078541939739878720502794978764364041923747773810673737500672575367911832906533103442558019945021309702792008639985233999757860753835313956928278126361661315992110220835362169582596538844546981448631942409012637732135379955811972302025846768381415987803933698720261420384095814713692073922522513596039281850006439936490474763983743672825024241155658327129598393035998042807857047344877825766340139737048014015526689749632559037728594438974652437635526351030379045392370800535407439042645466016357637503660271311478878269041579216549393263084908060226708569178022069299749567239901568448426550810258752374037230666990959584336397682130907789758367599338020011011545510516108178638857133160189437177393414312903561305674342174909115441972191157850854992830157753754877891409432110707946900237515663983899062345116607303107672394681962327301595199620361741262973324179779588569515194234210114000011538979676237865088050457765976875075000075506085019024847968744137279961508736899842794140144241688166944683623965394642118634182507377098041979183782982908592282514940320100008726311338389174539791335090984328754702840290537264529968683235535542022499078494068595559867786060059333618025018993122851161150057295581184358368777829562141241712690197067455289928707492054348081404628338040253374865493682441975578930669259318904598451843712867729185195258014039414952977251630386876549824175260318540488563752223241015494634962692453729822789197692293533416536386292873509330073703399156732906356436049332856904154721684386772734840847677887428667581704374241473211476814476192480206884272039440488038638305451756591750684274523754103136205584159649882446310451795727148395881694927490669407055813054942387192238518139124228155280700614259457771454677564142373288119447667803294303698866621552014917029091669360780111172450759110998660469399627492740908994849128285089994706246818689969701472458866134584662073104649091613749350869018832792084816033005854396780551129450858968165204699895891912742443520088533793531608584180685124486917097080291326523865096420608251235643183851068029568140940796019949767409460870835713847499660567983899797622329474340873512077557875145449952788770384278499982619032840686089501867773439672904517763227826771167377877356496809106675427694353431533313117977703131049767040777391450652219126754006123464158358955903410182061341561975756101758843518734881071649384528531304142255085892170131701029954207949353075964660025489878701368456416786825900972305239530309580785194536499365830245544060619688103396441665327933992091828626680032827245485186103511572972016087793972907372685752563333514579837680686730000514351273403591177486808845351232829498461655910615605468659543399546085896909952646168230717953344085445394608273327345547466012213824944374455072300950416619823320509944447201183686165791930867515087826216249468014143568166624229252342502118032478282445323496900155316288407421150459916057074447167862834695071973021260365411520071014652012933738631213136753956887964485143565326530091631711722577290190384777243419042361010285199471566395088540639617545991713119262718368067632827511494717900174464395496192860015805143643435906756484577250867170626626298385916910520817904138737595565140702899905699142535220819029452472313963723484414494490154151103047942578134056518331618555431959736834613610238693930546247065325023437581909692384376002841470807127989569956874792451827420602643770172144824891259613336873471399554483969601537573618895679134442756231527542684174520564361720869158952687065071158130361743430778310823265867401111018953931065625805195938148848557254327884746449587735789512135234976034254386216437441575448298929543167423451131813449108608645423666539089626664346749320782146005399701911267030234274026628306083843599299544695056146798606747761943992237466105334111869669188014506630784064159387699999648740641164537674879703253555766680620186104332568597111215958578659377946848539897955873667743561889525200751713499019654381667518223076757154212014070772560693194262350751268296785777920185922794865629493170818210792750444047267733036776863852326816078322379541802084482996595582156888478618489757842286310574234063382312144950713839761266679151389960117196706379927937455051678411427869868559346436314213025975337260803224459922893755314645701161127064431646432884947860131209116500322839282823118184538242804862329569140752742105551361835613915502153311453010002051546608424726825435872362336605379145680774068449863428127267329983485262324930279603409288111179692986754280052995167109054481854650851314535246969650745290567705444162520324719439140420294408826067426414032026186794593216587752073049392357769178877816982885341419295971114720798862658603936919509116184647787188625289891020456938098300945323887381232244502258839278779097561361982652634230692075366225211417836797437819394499495431493991877727192808496173367856372362428367911101854507065620410644907914661161234596771683132121980298820705482795388338097519455101278648204237633955358862082497392069696932565516856417112290655317525004610108779418587743435399149356760475820351267506909916490213693211211986782005951625043864190437096675997948433474562287992310083153753171090704387366248726742043363039578062494307223576511065479041136743418770271871407179469842269592643747339951467690864790990833708712293884400392052045717257467179622183588426352268694067125911167454906829992997717373521873283870162229806900120437938222955017232207817513953576670865282130160586971952813436381433925932556272658032605934557551416565891848924047859703319674818304092394747134641645010311617108247703198120927703238491882656103116565911399948118873644920717323754689637402864768409282821861328375757839514152736501490551124016762241296727324011500929333746929558139146472041345161032712550289252148844473244109217988945948690778506856146587197179590556018664951127188238731128332442631135329078773871340966378705087982130326694269881546992873993579174553068821658189958405611753210962860243311359276434979205168763225748885013544150297891042986187158426993922889662507268149851768410636155228491467859445415155858140262291448816482337745759894023502918391389880385536958345497770936363806390551146721607290060555876196166288706919756869037002470867411147770643233806444141831514611854935148802542899368428653497961309979638393486238524883647454124175810186197464973945019648798743363362429062529545039272362429889889886370142218614812175600141899984773418703209386242432448927453217015594873983100023572959793819208530836801120805966801637370192628279751805720087531839866330758542032757181089474857833214072929444272494531874169783312083674004620109652923470448519270844131150254605580990032315998885787567045087904265352374371641976382108935758451314536344355443953937129973211110251318880871082978826044691914075277803476218295594569339266990631526046524966018319211614514536563244229475473868213800897255031204208405671944519602609334361575076726217387524040269609960275555034004617307887726616323288070193756752878906993583249204854187605784927944571388127327799095399537750890699012340762569640537415582751153495451288933284444215412631558115765153669239317985643397307727571194790963489814393984953302786522468447156069697773991091115379294429994817291905727632574631786160977983573438024090505184316457878554603259853816861909871444582557039468047350887831416803050211326612751982534712432349760804952059001171554920439201693392396733740072635835655357306932970903694063221133495980127592519418012407555137487050602335002378068090816832423494708955916220063246283552105070072890342928820179584136990859612719991321619517303827645171202623037164091511860693586686509361771162752789241200470635971865008538674293136270092065148657066128254733259364902428815619460637791733876940813633061924488507759206234395599926662558125146760314759143238022220560753480985012401850128689893574330177211009298506703352210022611082031615406585737693391360215142694133937014555523200714976186436999094340549294639445513371711372653078767468503832609221687239145954441171946034148107227695530025675080369391155857103904829694186180287698973386185803685082220398163052350255416621870515963894414008494929406987227796008691448186311165328756530281901981780187116875514077388698929426109459291478720942407510826784051191891543462470848110039716248133410631752613938325890251763128857030901316239740489765560693814818601050456134357739216188898818832326010641901749847316029116780023527197608159906574683741948197884715362221098159501202175237829192784851610592351675134576520262952881738355718114953739665420573017325101731840099455640794490793074471138395548621202626573237366089228243758920634456873792385450597463102742916261437413703337638895759561823749417356703257489276263974557046016558846093027665419918432397548899046039789995105662230075293129731417088636974680312673947642246923882603335866735046583109654329113174266437195451140677337895650949598178198838314723601557556310762903431050490362970744073984796113244973819471516225772330143971652242312119921494930459121436474263740983006576381006213366618497942711514115629892384016603531638120381246276853509946204514199645451925365278170885063483495598910051552903599983869687129591009934131525654518276069349929831455142856545727556833469097592927314623485205761571340497417363670904400441198160547475958887248432373941809102014484239455978691317565876283593084440371399453461907798121127851423304937920480709075544019447566279582914832651306812780728206086158712096258338890135160569700299617196444002641858693246352239324121386487310490671445769586601142288679296700944474969428911034561582429938175882918583278885567794802591667470245084864103309627812202630554606840295930596442617692192618432806384360580192109562470596382672566192699658838909785636199462720891940584294440017229397102596582918118040216778180715040051648227985816367006768013183104226799618251305474791069540577831030210608585944312116341164471019703566516960060246968280094362443857632249811754022044949362264176105059296713507570158263082177985641677377774863631743699098964722349058280657783372791085619399795949506496214984653911404560304116397093928686774809584438985394097304254056451301442922796127312196468885921063701149776246715231366515733888732441015476920627492330955442547524558490335680871009417854835627308499151154942577736315838022240759984709396798751806213018108261379654597097481445702661092512126496794462046209768648332137777113178563319598551086911335004177724495322711121758451708078120945716841029746122386894256400607506383503090503934121989399240431977403307504851494336160909265147369039139287980912711192989039643774154164577032290594762357716091544985175784987462248876748556411709796194370586776611445350254183211969039068598422095126188899181341540763911665135103029464607329237695503300480274006332935456564166445579981470103636801259997547708443736654427099109086331914948991374505155675335879914432177632037917066762300284684331024080905100796104422881022029238669600877665436226743211871985892265929983456824115202462642093801216171196066680815392477351972855851916286429756977260382763138789882457512274776775027682251186565701306158260590504421781812257512784591002617449542244718997892466125894004491671289696847555418799558078553969510475712955403045998127766197766323124680341130673618920187251620868980770975542270062789237155612310360516915335571752949222706500620744217985836585027976468849410615999811137055286189524216270465172097187085645853202677012154246657641775416069381960568813383788185668972293093188022475119328302441992366092202329493191608917670353492885152740754783647990625015114677278532274469427579057921924004559700814470626101131649713011921737990179468209305941050187774632691601553082240259030353942419096155308434497072099558292124030958128016195814099081395752853709958060429710981404763628295826990409690573779058891479929485768997554366844808284157870199895904743086073724238374784053029638625452153130631479010951833470468387956406172423825715435446901200624426652762024424584148735675092244783305570349145724462238373144455489291988623832843370889451492383316179780998315076988707175165836274782776275221447834776810597524096898209498798727686921874536805543915878979542922077789931415476412586168633011079441702724234279103358617445507776659294793693319554845487923198690562009263460795634713426972777533726253322573345077961671207981319809805858875927894333331560937085005478146476811529928002004249656078488195816939225174607449706648124942105830016805738170847793553286038827284930074919591592458384365542056359595584270898907804101688580112125211701243060366018972871578020969686947359175777743583590821804298358728941428684133287464014243578342712601452118143846975137819194238866964536974561823462775931680438002067228325456843311373112993199880528436778580356862959832914906040031343981688201579178532628661693628925919435662472873505981735874039138045705923895924414595437518969064551503909921156789915737934872655577330343487993515861076000768204613796287636226781680802789323667612257703976427242223537932256399232930333752770642023739909678296178608821912487795657725323710760723459971684527157745329378891384693897965450024451621177376488358185758133605350047610617168138919696615574197838603619931766513130320639376522652827542279484379062840558186243419581808088886630161446497637976142833998183903106135169814697973917850770084467309380132518818978331338463335913955140123890918281046680175061501514822653517200619002657653020067257126820814999326930358771765408516700468240106184094608899629554480230965715301774613063207575492649725340006470473356861367048946401289119297377011968623116305524652940048686960390917202242812827398303651845044928746865669556108101341868551093089861064010278305771253059688607876887759707321559347670986304907078155538124908907961646287127726270678248276760218659859418136030248245316163355305347454187844729439600731508581351224175113832156094896583645016444211921939776149037716412475208939139221674726287801436479882772337545802219799820243807917269903910427260816385843343008823580476271736889482994891183178271685761914139237344846839878502418825279813512957460772392382115589443666416574959084886173115243065695699817393847568812010052267205990845739585541677054627805534226569724352123040083192077088389110998586872705500825031341601215521094463455557572156851453078398107002883048128606671389692471750196294989226320714755841100235387769638324642117330952222284289740151478962922394094746939004663891185505916340792187129732101841822360668523367528653083796471377710062587895882067587190874603680096533733721857445631641591880588288649192383100101411029406158091665094984104030739125417174532609156714960390146584352773694687060505800912227134123019336739496198331138822039407478929839327821543188002796811106073236811449933846416247724112448427575766313546577655221948200250751942221141601489861548704342494479089910648973328200499431975202181129073711395687058903047039781662336784181804238428643130587637061233303241591746301830979667836957431587105314544063614315452441307142011110689432167517045212231604280005343674599068813800797118636870880340348639341045078630780999652632056415841543824181070185662074409674726012533235848156855236095381677848762906911485518146852178765572380478356228825921294538248386251719226554948035167114252512586604015893765519010253168717927050949156507700605315755159162096756903880658777075351724120214615174741575414915962233245475197197426234194309763291190770407252366268890956076835654554556310830344338452173390419260900206932700766082708442456282928775786851737213054838444418013596080506593497194531940915557460069495327703907417901300161648888028178406262976543680986956251796719147726319451707366386299477919430118180520521327986198516145912447516986603328777142449801562483087906585114581620009327662058622194495212220534320014416739175677622330417940332483687507507244866200120394551393426121353338750545397436589552177600744477458633312111984363139872030397385917070675958378941533081654048248729130711474709792920969178704429251855013564293789322718662135552189359516087934339543445472347617541362783590092665140847175300202191789854299411871437342636245815769871969542917658529094551512102781337678640177050060274284909072465609376965976477839401005319802926997833093802592666358568278538913700378305249055381819478285114406619520248970167151161618140328617175001049226739626569830452380312344889026125559720991528918340629508416080848593323362183260399215854189932745983093818678237840238244461717601987507831117574155183212128373743479877970839453653125045542066506964799735859798706896494531832359795208895553247320387218704151084958552672531187673153043580048578818725074166013050939308093572134938639805086215412590574187025108097611734031625056708020938780709238820899331510712437393872083193479761351893741608429752205681831740283416807577790638130501448411872601464886320998021505171949237072643193130792075766764350101404914861944929731121353375901075558326227682134907852256942652288665193520206530742931905022753191779576892857221230530506129828170374512171852408815520315251084831427810310776450416953859491444483912294982974622184565688981939248279993670363230458346398225808558854735017510573504117242442177281733508205563340192669342161224052661209088197168811165230214240840695169972888844894030067161469308289920801495550763647329450201747642704575219163727787123514782676192501131098169810531753339712522378067551061373373777376378158488416706031062966619783004780432287230054583901570800627868106390630031169586310122821589658632675532209435812507439272665569561371961045433786641834077158685873182129610517490593640768214174776123700615871743868601614363847658265359694436666482023805452682461607652236876103389761376440869455072933025930962691410404709088132947700484108340580319508707178780755819873465764919423042744414180149973835269628861941214203634171360193377059000864974356999436356427837747693118147936767056092777657781180904963429379628410716495650521163493545877329946549503473471916331761505902775549469071174400948637104017525606453895793784258301834155833396461532469195656648087176981713659204516389479206543235766446426141704866667900711365347328537493751598457853782032309533429767716687723205796621116206006437040757793032871485428984527022166545444397634645478484250407534104499787408230293247285733055620184920094274129474754901932371234473437425160487009126907479428144520355665511540248427197356106303330883009326080181892893703049047866837410021806767525106293945332172039458423895772858948386343033352507222222686552594500302473205991918762301796851575289899592398785717674524317236506048672804534881526348873821331654914855494400318387478258935773114851346484392071833564590510680310576805270510449677094262474550564041777540959430954911680805205069239846368247085312111618680515312946734209907411249379141896043911555773739823698791261624789011803187741968233761087308474106857062342521677568963879837532538133205632387964751288211001996194541005500675192352345823806271836140379739525032891754203058474629137168646926374337901674305815432872263270034068480284597788996482126391841410609343927215617518421637526045061951022656967528109268121033407905741779066624684575059619269103171220053225993981037546427919413529595199168175058067087819051687973764482055101374533120469796131498281873595863118914321648356459541310320441192199513725999102235816318864327674680782353394765092089783964366091576079530347155351218382156542031429114305840051298518997901663770753554565799597542966887546481390836174268822751107963436379695008391482508866462412843924947898274078277660030954527893160910041647146964203416953856283230067424679515031268749596840902634585151995621318995667330059194858027752910990498006327017520875664180000438977611883864884392780134346947602805567625678103920362760603994445721042301593801732790289643119534693666014993824203867277045312856368042733129263719527055500448559372034365952442518401300496661960230657360538124133195559241340947750262809850218804741707125959128964572939385734280904083807093810387354897332441427383243372003917605916283113213375971777606517866330320301485389543544021876365074311738806958715583587215032318143850314967863001536177060249795612204907511829944446596747771900970549762613907901095683206978506426329797061099945354196340223748997690471601712893595361251529141957773483939444003340424960475109580485232243571633936647769198165599687173366149050778183968736709508453171820062081792256586825481927953446825347561454715374877303458896595525381623389549786588978316977421928801442458950905473280242146034659752067205785649356197141559410825958040831608503323669745700997175104727678419112668434838242636031848614325796366733421457077171394871587050981995573445852040694711139698349880419701244681836671237760174611725375729558178992292606729155740667616010779072127343229830131649813327538747691179353736427788412727609155559228651016621237196201201156158293354355953985496309584383086495206257631913714364140679909586799325294286737602644350492752400000954489334800161418202579831207893435037838988253574037338048203879386758061132277960004285464910086058042487346765156019986265972873568045930346129203831342449413028382350871255708688768693651864688242784158109882917550459982378892090311450162126047968787635434727847624566128309757936768469994853157775709121307653737988239779046467687190912523558340325712269163477648156097737626917333419083322375795113074053605319517431383645678671582341691895610310125222366153182525863721980502190266683118749460118512652890988519224377042586099916708313551057208330259409469611989782905288990072879970780419947414247877076885770528349669968664979166268640991410497228435123289367691756561127727195738033387958962646240916462691653072365260555883927387184350193328288925339328769130214438583819785554659983398129014853317178205550332771184543334212272108604395068185514132403579303881896626445442847036789662741425301696857107473605721100535181512785114584585691482689239041198132350614303069195007733875483058276754103385621600948687092748433331571335592898823336637959680853414251185767148759090061607855135915738641261524272913800682808476634580492113685320418279566795385169316723809477308334814130295935460095873482404463421079853273249218932417997517012921715247760062550706191506004635970145568816376971322341607350198979326510371644964503083392597800805021190528812722998838459868242746278944831384239767644508043326991228603201364008302164880283161469595046947336726412567746284214418552187897876781021963674683909051217550852138879215440927045515844286945761864909724284444476514917601596710768288044339639112733992426467715700220090866225561524316289401505602842962179139084718202219961945308412253114515564528637764289729316746623500906683348173576640124455269527642805009190840234395620914789320954362272078722972241319117663328060602519552818967724867066287201349060539781438755477654273858397955537260668616674304441205866215470206217036070540370626312095126441031010337905542977213290990081802083329406425921951191949620252734041362368760155116596900961941129547285272620291889686570625721886655837888532657612122474082187837058767300643171351975895347763121025766356094947587908300871988421755989964590351150597912426104531427252338326306811679739361392092159205002632083983692878731522945575251759851703454377139593695844011660360396279200351302193004600413820861596129569467213316851344574244091991666309906388608713987774138261334344725120584386065090638964925460626448490495602954769147242311035420344572263311137443477622160748772878939754952440278794552226717419916623985526919616238756907250389564279980332246902883990677456997613425647784347988380420264447928085212821907604051744429720547770186683854935228880106782392656312054309243682781040134457239591788106717217688737743418076189552023104273847111879310211841250202262390720811704590350038267439090994287861896003183409987191232862332292734832815962910962934779984598889308163197100245157433905421820524058218263108176121673082502640672076832167014080830419759011898335723390974389920713540031349678493261977192249206780301637993430468006393501107035201724579869084057374424098826159498992523169430916364649334181502956657005229014766995703063279610137357955172050344588747537634396615092182225903678837840950700146627137635611769761900828839140275908787509626093559879918902324601086147674205002691864879532454666898810645281171634246608010852692907085365135790980567064138625776322173581593364641726309395473048539821948546736914420949184164674264808650356760245180332166744199098789535984956803011978641090266717824639602948724928565746610283625755294861246182402440349173738831767393397008160067429418754625183275364589240252845750392876755104506704148104976514796170166433848924732800351813564123018944620804170168155725830077060630467795848328782302997061146883976646807260582575535568451542226359456219069680573933819334426951651034762915182822230596858997805062173911535974560886926012731266493180921196089466794665753059965054419683609666699835470045838422762306998936604540996952507308668300383936596293791389541405298864105852527412322110901715473196579884704648819855567390437116105510319991952753485853345565980949874042584157101480266140071760005008657174266986414779373039933574498434514226309206611945162482667517656403585653172096955224914486994727022919811028470898041573236034733261744320518100964055937163857381982997496786653898871715660760710055809686878878124317416643975306934432675100701097391208862767163855989848370913069613560718009037739356870253737220873227178946620066190808460778626718726857139768522312960800034746715175795983035637387297219504540679536663849190160255805391537087381752682373598995642177579729639878613757518455929785784582795365273910854279422146953218236904824964074665759362423653049699953647468306505906129358352935058085335306285726753049291903969780169423807360271162271004522835493596194566044611909494159921837708197809752413044936405631611153487510429421022702053633779016885085906309196741440403961205392209376487568055892308607819616471468071810689531913421636357517702971206229385828175979413797124069415634015736526147562974036511621154404879431131144147032385049608266000766297556480035158883263925144639065924539670804817041357985878919153246306013382161477037558287096331761832974896723464660318265453544026400565159158520517220959937408848019561772412359878927643482131505015321429285097607808802355632847446348115606709616467947802016009245278964672694546064832309372817115936271860565345922201597533180680096208610540207015144507445944921995883679356722496915126955761535292531422957054898449506587964472772661557404523223151007847115569914498570429777049992707957106164575981598312214494339258803945718385716640964073282218713112423267761827873548082333027803750313814716815652647257562449093200846252214330331530683900996028585871781177464360694620273845740877261267908664045981352152227795111007645945564847814178595454302086190825150966794518004318922288907194998023266728133290852640787405123376811631188038798550623412670592724437824015387395051412303723527588972817740150077508655112843409008476262359440156590041233957656504013972425681754682912979752889330376796341814539247834978332544147940046077506637586934937938514209249738115738605379710832782640374914258960958367806418605140628631985419196382674225790509802331311262323326197134951861310276265646761124665130822350159369593916001881090926262966787860227486975658518930709589060706560952448655476531786520694059353741219858652688819120015674358531454088086229724953308478183295251851543906428323720343935912273201724795174302287577244196615639045157743009308567143925128939902074894119430578238826782180181812591577815990928222297547781482051758793150981399549911938213391565824143478399838906578497314517665425735343015660405818004555808588514847305309213619124523661144350966801348054164886173426913404405360085015799721028144154924724493610605230495855710061526021197296570590917707643171639565951230055275249681387241908350597731938149689729061951496340396099620198229348185753877722673174562605853208874591859777497055186398550467235380744391794449892962369093032140110469423731240133890844388955590098662363268626188027681802460272317207044496250458504041710733232611552554869092466036839053715157402796355871588792973647599751791142739913416550524928728000341695949676432463378673755715745882332429721057628961855442099071733196961193111521895866776149217815975880743096572809236426300234404304282382518523653116767003418202528100091044859896283489938941243679043562569680436585975436279136850306420625918183426699785071106203145413795224329287954541878756607094470855002314352875236373090052740154582388080604834277055761540066328694868792240373969231273068666635231775241278364493693504219807212974730446606929432146559009565193179680908454126092681745960817660300447972017420908482007736033857392585886748669490711847529283862778076872986550753083324748517219191361684822216947994691804436648963619818491239701006440064462568809646049427768851019278995643558149418155246711535894766887881810461535689748723535166549806026997634682203638288518633631507118708337547746350956308721898934538319378690408367367844290501058253524791275302545061229162373708450597199056806950663228879373591915316743442498128895961412898134564749255202772106619876257605724241882115515285888257922194673673647563727812187427530181691213098900291242387792804184332385453316568199299873060175898183929586469757512048310638855738944175344096935870824224526197792091498891632379472959865420512790866315669045169065373628039535581504226485118354258001582949756596800218233854945844389934368304022546373602701664164344734997797349071079742200366694619927025274289982913476849346049794609818891693773424299177936510021512433373910600437037328756798027270752261164640579156237960690408475748021292624455049415523672806866063755580280585345246164583092660574295870029544335040713842346692625861124940540240723981845429042914804236402688932861960582428897335695247467038087612383725156262915315445356303307203789935417548416145928679161702975066559736887066399589097474904775823516836342215763245303476737410321138009207655316830262376200200197511711596382332998792836122735349619559488660434855595223746011267125923582096565582581561114761323515358527400115815209092875669842021668077462338252352207277388772903757097821755566483208622397602341386038188539747612217519037321076194630572977971782603581851042575451584633964159940735740927875946418550033584216067199575306339483311853710398679972794842359018343374903418384697963526556818872578794488027307456097980830648989438736236324354999975269727521379182450539995584817043992933303557475215687364034301014396703260203635833762543934012747938591047512813841761729437600579816729774550644971741341937812791331063695566720654208899332727603865634864502430496702509946843769829779491328896564993588162348443879153592837634353116384421973168725665394194711872511865883503502340793266300633191903257665026963157706547691136543301910266514927279417845659892471244297628037870374413310459790064777035014334029320535518702677297772889082999211847827030797766155062982569055632431731590880255296905434606775866655950289295475568671168457486532482815921680048335935091514918589427414869482189114194016679668615720630503399321528358043997117547850642333294175390746740120672671253523034874251564201513523510626380787916724323667927593817363880679919360173086077252934196381344847435951276703311786881133176304642085770211646768946060495177395456791557929776742214657349419449621458619327864714020002497077289449863901823086289976096616935369096593058491762657793756874549917554790428631271930739699576511832095434623590300555085337810456677750083928272252453349103263199775121884939476708236841347903367661611078256595538636204356435935971311334719270382633465295099680194535489093790764145430328683154053495980185863352628167749646094856226681646969044001394216708278451952278906432179950828059518008584870817400928436067167703002513101181201885558070803594379224497261370858122820389488854792914875972462892138658302460702295322736840793635037091809091138631636027347700264752768332760204763867834431652254680533145736470234055398350834599363033596240729603589059215735695988497564448303531721433487068094965094972611714921945030540656866520025914274009447838592093933329244931530985882049367059394175602828969814237082187380450499214516962439226583432261768462528063880050408330062858159416733173527602859170640512407641428017783442481749157165361707045704505635830889176298743465396313830776525391083017095262807596350209971131174982064031772614418230951519031043757418454658212176898072719797640863098633801539491422084902199453328995804510313074225641172696610629837100939197528572483816324196746554073229610819790618029221836489482333313927050156326737386480941723468680738006315218639441860878133982897345529607191164868820481186403826167020180776091018826173204940710203287788879776190819992947129090048078748954835200585570473142729164972972210305196646939806226859739489925487356309214768668392749308719150420231664254107262761364656425641664007402198463781145473795571382034500616432244119030191809065012503813985087276773145727106902135950469500006129969056434099707717083540857250732573027041912893741582181534593383562579318950070612599722386337678183663466346964322043559827657817984822109787263805337367565761141952242107310248143799790488670919017700955749212401974353000861287592725331548504030653029373137013558661486073806415703903721229801372997922608687399747782360399174395490291738053254867992447765125743876226029225770099768134918562428399172910455716738438598795639719333380934186084860177459654040034834305438713715002102925184920657188381890306537494707001945713602402660328466270376791186421740706740019237780097487708988951948614425191985054901330205266025798668085032135144920435343331154372048435376725260094984420836786690486969218073671967625492672115802958950362889868493221066875104790000436353315151966188358291901614988411227192571447210049273709113530908478936249093450255060243944447889282551276871672876969597966612228975804817394023454998731564882974064210461311394643928353815323993338684599787119151683567243303084684888936956853272678704545397555842901101709523396998646021575054294800875473767546295578950536483567352183462854055870201196057274534469567167668813936701954530613216253225188621751900396463394249519850890684917772891980456676660617909820006283515104627299662080144530542801277426328745098095278956333130531199757086584701153050928924405034553588071295533379990036235920330699796169418424425014962697441481855403838390293007138037510030944619871973928695602058231070704474704059204240931785195072715269356731427934609337532245476591561979646476327750330152476394742176946528079264432040207715789814167441378998021307922797812288596648818129966034479291109828335079971794244895900415788709926476779701559667640974452084003331075180468369095819247733814100973154281096931086821848538300027464452905811554312170774166807086656672479335286633971011086630104088034227240511151312112370952885623161932249381253637365947352828265444075983147246586771875747972104859476074024025927239203816238242265654062778678524564874780507842305353659213573468627599554197217077532683425719216308348336980074211674883259721848827438526200874812593960862408682044508293395464121439856585321345390373645083293987763279686238349057943433187007031630870191527519193524008029496191108765626001766593088844573221290139887625702103156402859483069971345021403359967196287288114497532949927249016146698267975214632508079663829251842872908808442616092321900590441915082082169927497002022935447713724645007948149557131038249623129159881873388046325113442354588781417403856847090984143431659476770738083570032738269184530937216753241166563716549671318366253828092626367936234348345021370617160944440134243029867449377399939515978932878137513959726266065350089819386712148414051401757892426304763859677171660503477499942913109421511587356331673039707529794142589578713377204761648182214401049804064637682460295015754113083669157657618553443706601520622393600513200397034000830193923849952419458731985166097101676597319202540336416682985269824336868644801581436444707928190770911944402109427939417793391921387120960108542361797757837662579373325418783805562893837112374575755947781919803657910686734268931385407330234290621184555986998214825543371866376399110369230436945355410463270162127527222120463552203102147140990599176511297131176652922180225287554726660623309394471403682168508090482433731846595824338466924415808537334366727508491158690835726728204538967583576959796131335827717269884316781432569124410215331440864978017763624216709589787527260139905150098882008185708977499682550789041590330840363599475715987997211294703511620896058961950660231471360954843235191105604361936544657159016165906458239227965705627380708875055214607227366454726093817127800636060579973384056354921809163994548127416291100992167261019002840365740679038251660078560706817464318419193136656080324062658894189612553155657280881278734243938528947208766224168483938485797499879385449937719326204122200279495677031162646777270367121800072899945564029700050414257286013588816368902978654445337174344411259302047473610446680981258647556142030593643661996538938110964973180921039902490010453233126852176141733629890932542007720050040605160184103642957542467618433354714701511244211711223960215718146735603368205836277751114585622261094977934582902789358231275846899420692387277618948118924586336169030209104802113093897284594001505660761740233426917660825380233769319509348441784356891272392164795799563641411174927219196999286941266118284933950648699690336410013894560919264879653291819123729572996379448723188760010929798279974045612859795899049866512836766252640887317168396281293154687337570513835866453260825088523728986214705241690610859435630867218969603954424336424995985481327807018362528116095770161465793018137593689905920816072616307278629949251665195524317376803632731414319641284168271456520321722210361829418581391252447853004854996822086488997690277341715984765601190989388765587171858922743507425954700818279852777808632591792052949883762246068640430184416065620186678190424667179744487032323163805131726938919929420792089905658014873765751611754373874255633356839178598596857196471368834668737153114836709920219075824725448638572703574457545046615583353749947207603075168857580404756336987592801847423521794787261846807005689242023374856683091985973572710613595051049081478943604803837994717264399848899846483503388111739908185512446209817266541467043270468376471411306834891863639369273915692217568918357210878070093282855447456737948588398741275900496101608721596190799218121879014896357154212338327595345876057712329618649751250613303916947910457591735871973742669541530716704082557790337662831272991489828226102618824380681216305579793293851775314343703934237375560337930956226688364957969021828203128423427638862245453840295352997164189609338228454465059555855712675970219882401107582554221426707967368759957032589291624451942996154224527829726488622242092708989636477421958605313329089129187308749638295804093517296756145420252822225837680746730828738550896116040063117482190895597151006509043793694189070157885622862675119169362896684994381179954248359210849723244753594679805527157178891605248034672595564935360029807924597807257587563695095869717694111887274456927329655889654019939354747251254267304129694899712882260226994234959963435381346542894232044353653791093131973453482253813988366129707536312269551824337117064011163843693787425226021826788754099776161666599266907277268146069028157103549715466228180162531324338968982369032903244535956646444457673320593732057181582234244422307843775389262600257215960150556208119977913119227892526174232888973651446988658652744096571218676380771412637087629595175350221038027287032788519171613599365007191760324483733838625254402957993695266473919112657651223214105972837528072218714198281575096375546849967326173461443841063120825995312004183948521332510589832117212373616778160671535990101819930157122558449401034539450378287421027738282802869433655952723361027229795097723996995867690703019038087768107711709770520413494938971613111871535840889170946937686934802519827228831512222779582915241100855086739433600514629420969358176950289928337720994949432926051037781841392020805937677195600696425662925842086694549184859138454467214567430549515399638484650448496468133009676832618459785835802059826298511791405545852782028962384939403119110153578512730753337865126906545172143849663533970191889290642067717569558512419041706765081818937559239824803109336938686283251350132978906099263640064360217117876637817739139355547912190233082093534919639111312580501184472022674529285956304291012892859656362171155027440059733083098699170825753022836002245739250432254294792641703570938206491128130885417962284302177068727191624846288424161432880768295565602483600653250533333559256970325240006049242814079588001652290029257139060003924079301682563982084921154263426290414705357943858221574781907541097420652934801329046194013222859727240331482649253355495785436065600560021703732938456026888679906159864894540830706857192118888897878456276788664731459124285487242977528398254678157312446327641416297882579628082308066913683770659932162964602944058215055271313343324102356467127139222027427141224989365380933743425599423608018033208206922938488442226478583261738630644797707099267151258467701180482444569002194669012766035918205517604487962759690065719199362638418911987805388876962901748012857420958000665794287312775059887785762983818239783700667085843724831319690986589927877852204226128052360265976221472061302203149735565077931948605201207350011081180761485594113798260507474134057283121284851870130285691079484882525704530241698406993636694371273609841073837422453496484736564664786573263589988662369649100598005863905214000235748370096283231317838439306873290258183238541351055891519225320518010552277335547040313627864631008210385543913381193516207799522594904066812272855533074578618704196063843725490982781996281319744435518516873851606224592706642034613918077014526257875228075047705838807264600225906853230931956273987345064704086063914859676386692060994233673575748897774709723826922455852835951196546622707187148862061040356844061954908058362775379753070874576785996908213492065808228712621064274399170539523195225523817723254555038908095694448111521762921996392519264350621462911786094122712080802179325220327295854884092395644888095246382739841349811156500993221823641466528564794592753914976789372501474817595186052009967501155958465668810828173471747449520866206100056247501946993686669447266067324015287368950484873802453229951970311947340631184731557790417294060613801491034099043280288574372840720055889766188564466707793402339248247856416706250638972940956036232676365679079723896367168711320918167261923100768046024902677498754818124715526649858094257732110513923078776926794340708601143000217108635509706240715545768393289155093334739496947931922062305724142832114193832652676562357865826365808961011868608607975672431473113715040802746104793891707997698361944400507354040563554243278290939021306384776216612735930215456978038917245782306150417265629812541500954006333023233606641093520867550390424664782543303858677861921848840153313838120938559429646730739970628415809681014816108642632740883476575957960600109746965058752058160494401669568647221544325611068934262891219536606893299902543969320147677962445395666820994214795988040478318951149471142238806083962381629735498807371695418072792976232292002219685075810828211544428347039690706955712212041298337135989022803485487053351788156155226705903820306596111778223734169701100073204554089477744364698886020971190221836167241327514224723481074007619931538526397756549132916193430450522113760762030294886682249785200785298038261662091412320312672254694575904302651876881226161067552498679666793315192152142357743231590168785834930910536938292474392976746026857010126656202292545123692646194694632747889538405488877489515401214178206236621937735221841650492067385878228724175995989690870822004389435435131547338258356471042891287784708247339579766576575875725147100297121958612663034171475629277981447946180191770109506301808027327801977460222049938583612069233387326834963951927116682199008377467313383423450757137340047890697103572235828233736034570050328252646574736773037640239261294938215117397000081008902718364657074791527357657687710214583295320736484431782053409730314584401889310738876292264534271348959481631327397224658474361737305448491428193090081179371547697848497957580120952684933587994678162016178101223341287993965626045053156472189553261039218155389340434317831883603439280037994482035067128403169107314135533446553202885099855268655798295682214491590417843380292230699091961905049255230217456684679230607958410108996819123606204903143365091054484458928275245788552250272353020661341953172845337153195758199882341258372638226660666993224682144600112929286859771868701799367832310939407580646920943242811069116819913551040849674433747704842911981993187027763784746153568556261356457621528194479690657972331115764358862580839344216871030439517724516341390265610474811939548023380330883314775259119736099791497679174653332213057906879367066929454062520511049965454404878439811448295824827456679044481890871487527840696515769597460630344282612231234300481679190516608967809212969414359031118186199066255445984466458316775650349776516132604914672742711375450792021769729684619987156363414542107322796451626048758990107753012260514078163349904701493754831856869243858412473449193337004108667092924918263255454721711347590444503342049250639289514884044367463105906318248362392084139380946247147039517857809560027327087511491320085536984791688442974058245080364867659952197778881890557451395231382791992647423474487289126141799060813064337626358735485464921613513577190247283684907998547534329973162180050906900390031631250083309052561315431885388775198779068206726798032238607376649954937918599886454545398034707094257749410833072539334411770332305371412700076339079287100665414183696112220780167342394890607240028313161924465467772908041937525097007970102914068575141074710718600029647667156792455404382343309356959113391179851719746329280312181145529649361254990792643234848081486672784263158543808516723379399044443610228124989352992601849202996950237555863986795665614350089593204385019714922079850363704775938456104490440401417250732922290093243167103748274750414884752607550864214627575063239706313503517577555559998576255059158999629768532148752017375361548501607993047069919127118581525538356271408794166390116462014056894168467976529410423172431004936886286277541902373555176526822670905699275187471921306984289571154205062766968377983012690286489409124591010339254879181639779954498036281019116814594368935783790826241713525679416492992193345194095683057839140976091410847509980797007678807261555633074784010183628137289763051457174341074499214211394483101692357578657158451606007204816323664225371547538917284617406044815502233174546279133400572613703719371935965921786629364323718650438000357893179420357567913194109237485012815613101762192333894939163939691075060069815486801077828025541336138230185003627040692558694152217341762968383747980708640271536477515190545236391243155839018794988111550556038798052987245847740324836517236233620041239944686878706137760495388694674745688550323173876474057390075506498882934380611226228382300000411761942898490154980496878747953104519874305567542957832559259393425031138911311647591255030825635575817575900139129795889052110509337256419791638649142850567023901105848419762591968898472449162484260574651707432748139813568238562788987778112353585558480911609331701731631156013787325514818411834547963572815237608638682755298975191643907764768608836594025267773621069461400664977007672247308869113097880265026768534921379321225210673692309334198377707424870899045262176153972037945297863938945699499095611624939904766361465485120938236335804723049586165748411878676355400668979849697823723075267651336225411907606212296305667938420767911209311131898927564520026117765162351216731419280571835656816368400208562349124837735806000538001090214053068347918521799722858305379279259334662332108321096048746365895409633639808916983812824573383786754278997676141489244575926086148709096355854348573744316702004091006730112786773900894223225418997029223754158296341287040222132939724287148461957723249179026362797399993670831364626748967016395432103812229562873577184905555119354431044956671400329420485501473305926685438068370221475390574638269065886130457200368693289041613807457646110654065537412672790646269579806238771999746681306124742747967035537984863382161656944942071616843385195100874029712061262633617037411108717658555961713787989487397035231577294350957992588253701335589791345968691231619500301241183980337911893243842368257020076767757226488146018712559973955510170394297231388924164035708790079357142289540156181948236882807240177354136601641768577522894680799096537469486938553347774068141994208530285569755538940444704540311548017731437873089084626989640015652195143726686096918991524045410444092548040702896507303933553834933578996555299028129396028293867755966540346623858499384314383822587278593713615835034478550815044278996527981577996852468193378033504101583149872712504576394876228869174700742152751571598653789049933550778669557810486093072645572587871921090584755766807861074819231368934794646592779667748397678584404373753034015326335701443657129812346911838546617331501802582322984959167732245008218642482945713779534396609490495418217729386123797409850244987756427218153322296854562553981719573497834832546922199159673479098045103008586979056530396510762995712728166552062536009649501878615854850627487155313718414633823303541126645883942134023385107464546729213938608334885950047415855127226724767273753676266895068451455860473468362237991296551012867333379629645090421791550348772016783575799041743881012492738198708283918722196006340050289982713037180202481709758301654186603648429023539764136241661398113880617140212314338692295829026379681245447929844946408771254187174497466508133565664524999543487204481148979959820528207289717036266056793033437174421035673519590526612790168441337194730955518971111410075571617883408717667494900706112687759102428481823543707534346172247780875917809475331134648282745715573644519433563582669605427642950651176757711408718824556234791062136161573325021994590122232195075662488350340504381632168826920376110205104888114353728647405211322368072585413624343253678292553372953907434414100547555035156790980292846619716341826610959087931148929241143065821903731842621312630894242570373643013208278105176068373883547433116623346145266565949571605076050732094529646802017528810647566995760987318201190834411627779886560544087396700736660649180298004786543072976332017164990806480893454370652927472586358119239694504951116848004860452845976027248442314380744455025260431799779905658989673523751352634408445042785882938246762789172525867112498800256698308496076988077264093806219373638952038318376230525680496337027896768622885837251453949940629757341584101489874524771701311445223661467353672885306306386020735339651460389269013336558564896915498122470561753509091645688105716317748917835803412947349084717009819289161281631227813853902932822226581675432191832528696773483098065816373340861377356209457477009878047444775100989887797058376064928401541570187850833758810717937226996664983448056687772281142324978474466769491763036602843150709712971428097838757867313453166364752909965683813107213159844805962855693003495545460068055466338140759292025146905657887420742973360130838843386036129492666557473249054158925787416562008363384046922070971825007038829582407030780825029008170315590890312244519890844521033215227568398461825386040880141430271639950646191836034671001810949379439738667101485512910872184592124261925282528934256211633700964180933994149890218102238756746061622105356640164619546815300383525485169402538796562205098508618473735257709395940700369090646179309499440082924768955618952585023917536528528300585475789057275570170396924254804317725350377625223969257890368961454462477241646922043019049264353567328674556572986571147389277587673131583779385069765016242465608193605417400574404223861601119167442551887790115921882797868739733238806429044476691004803734950214005253383978088558151133412355309972144648697291230523438336627860810227867574368628123928241026229778974205339201480854273925065490843435017960217688166159399483920037087912623458111387389067859448116918915774882551093828250351951138003555229806614939142441158961823018358611599716855315229735143258977165873335913903540129397955346265928930675337436897646760494437478523726182603860746896446633955877178867770531367918809791302880556332009617440713891402152447019879287964612980806605178005919355742988059656866529581800161410669070593099337729295952734312752608271924263769886490996339354526936033001398515671162492540890621779575313710030413653004227676280455191683723957708239813200119829016176301635436214254191824438274725630559934019416924877563861866934495732547531526714265552233788419742684821119514655555646676128613295414264746316705815377619287157688879175161073161118941036931856457175370710903097707364974446451577326656332058212849680089499651487756029022331091703508264779455129656352834064946779383079768171853580364684157240317427162079642099788277556860627313325002699192348465443316649692663756317591876534155112314630933903743925579024882872206567001485379157830985981723577388246744518110062032198755225102221033385996579030101995760020581198649879734965139090878208534020076184630605653834076727519330605939278570813485273661843753364897825016685748923524189046986236610154938212081532566042230515997201106661517911662494348212075807642758644032323848980114199053569917959200969980764765713740922886700403087071937077396142988275192992674085003714843270207422370143897424518895057316943676623086125868199507095012674068107364771714633352029009079376234901975835845947172018235117483597980188841936836221687762988102986250121864280376896576546336438554737272809821695768679203390279718228270043824787926883494679270799604123155427360593734675016601310629592924251458588131543873480549149482833561047296671697964498994967862358646798422295880798566708574292617233100618485589443115861555911978822264188366700544270486263252391515969464849983782200738070703514663681261024593852809624806828062234474103002537029695961318300555547815798435143627584299113290497820112328798503846249328143384153392933914028352804607094698692732088454609480205999669535872350524524663211890920818379885931426444952375568597496224913867453963827650448730189868307299633737204131942126113904045234285002467681282170937901247916432867691570505924986001444098102680656454383531321452962694560790668279558207784366530490119901738012805933760297153288589052332103875017665402417708139339621381187884331297319678358769812429602828037022886160051721951382528289816386081420922197472249491885029492556386335966491587514476877820861708714036292502331965687377400036878415607642309606529654134964755666684253047128161729039441120703671901741071624492967338112877321008745425918049788023934801855745523774109813827968382201382192881290326639136414617090925541917488435238406119281001899107736362681658456003782363455650333612871757064598574856938156815171445393997303919905627909839220411749769741008213859449331675502405292368030959541036810714987576019322869167045313076341876965956168379791335603374809008258238569864568803591303845872522361896358327459873036856081066449172575496604508816893677653554730067463510338877735837598818186079532523202805892093794125342467098665948650278441327857786333544023533350152280383514116784586012414146297313968054727668563998997851153147967057939576786598328630202329223730918318332551065262107132928806808458849202547588583635621320140262593705437045930166946074721332408899375452835792598054116817206569250081975805973306578626416844377319607915096869255202226969733415196979688972690052743528093335092992798144380541937375166276962650668083962329955477034039021000066288093206029936619141678395363660019380306151768122422793787770075094188792242530354711547572165431488279857501790365994125587448325100673332038724754913200798713220476314312801242313852354402841873410447368505697755104322333633519248853957556507606302887825539849338358421096161313450947928327183440970023316577356086294764787028028518805843246653674710508291491080629217378513913765132292935281744223085883650698137795992635135112416497460950746027772049737064457557324819094857594533412136653324032242151673935829527214006521352976390851511973286895389748415934601928942239744699169485208375700503284753592140348899827431501377961238790730432615798231814309629692304013747962792536658819561789305229516788069034995304398825893456196461517371305224903211765102396170562968018414355465987021351371093983735757765185071145812181231521403360560642404436653216895245237395643299441219512754337920979763828395936712752897289024005169843556040082650050828179718024616984743479700375890384102602589113978110093946145120523294145057843933809451470370734506214762234447583392123939320644837644371130611180745475139068315319233836568498155399411719903330620115014872935288210808302165813296151217543971480114215577263439772424225840450434657811464080478160823298408558789860266533567583964271474654971167226847021703798192785832845605939578485757269540478951839111786140317466573702757052221408707743944493327089986908777103455398054992683287915399727577316183918598251886365237265592965949313255154852258123000528893561530992676176317542548640851417589959289361975485557700054807490642874770984819931782314919203554889421080030395814430484262892711671605294392791844177205712831466746991673518113037191799930366339517981920598411555644333365800700759584305768382675801582941250462530380410848161472401474425675741314919182944875852742683225661280810860706751473241821130403731994473484172004755779636532714391871612390967218617860912758655800973531005777173259899885509704316010168918746510439046049461124078617025496492654307433234004545243576902972692759208460022200005488514495700788619715415953206656880259408435826573488636456164060214421301981014059597598300123332776919252128257420232150437292058129043805065491167392958159989482994712218596280230238894629203237793307758562103606278209394811287397037217440283315605488830941134042142537867582017327252228996396101968658341988305845273160804063886461218447080830159476333474305099628663357897608442180035062137654135301105667905773066598545879374304697860349951854690383102789567192005021455500826091401319112316658662287974145154462443156914841777117199662468911772489793610542699246954053407180198714731597454720860447478362468452049590187911830097504928509039032724444609586554300206827599531082609889086923380399048853979810168786523339087196564197519471120644738466018865723399158320127634898383818407085927762651005171431799759972880920902796451315825475835400171325347503278578718005632827953859007245323008311781645913039877553998493988405127468862330246257677490579781153093387488681514012593599265005342588857178345800944805492582634391416584386996514270497980819964816447260625176920807679154935384891900625148408032026991432259251809229798148398123928994122271823116050097702317808025970929682028005176634859286238419119795318460105851699068672575970808506190391814993496651521036271470942260739623530434566485847479067942310245373007997603538042989667735614498992621155080048076756241688718605006868877415059406506147775822688204774153023325726057626200521364102155472572190900575078706708033131567541973139689580038359168190088912974068500701217744329344746979475734621823209761558775158706266193624289558198159865472481645389973250633000910549352312434974039383151653826458333796338594778707331285911230403470216814592673234102692668588247246948657271165155721132615835335332276506402049944399508961186555688556257485562369325316802067699234425121599855845092733288272333651710740872237747424373613355433206301781434265812081371632430134258284020039050582355695263667943060479762322279621716366917790032637579945524702387555128647243601040570892998087887683009636914824772088742914594587575083922798298909205915561177162601599531991112440996101501403682120128090517898871880086413811733414845404722298116316173702950042456969724366140753046758382173731933999093970951550951478601088328676306758112139519943772220479056436117769110573176295007671628748741659504905295543760287325261502408267779939638962864111341362888588024494172314573405305930905261850543668553889031908794956201834371577825839228277151762302298079456178528517518853340481900113821932541737420096703447732658993263125012946623783982589482699643088746223088758401076885846274206507949993414668981600430212227433760636654939291008713448933565586283954138447532133555212148514256796322161058257294725710088821300484254034827450080791962562243306727092599006674088632966359612164248675243346257368257221672002039295163233887453188543740792945104083877557094516768448467359848583893163853277934973828687794583878981953246637892312573313689649654896792724489952021254000391799975530488916816721612891610844548051791679001594690586757489661349861278779886884181102447907298797421378389229897166599970632135914403490282664689465315368705463552279551420720979634327279328149376228794089326402227330447799555641484830924498184638313204801557190724757643311707710097159816031027458543682150638839997148000089998579725385500971742312251341813241242258011308869660885027246464315318355484278630675250908374649008685498309202114535922501001827042595895205292288290143624093497179088024504723509634785399235269560171984766997964977672156527523490280126478729408029816198029275795678545412405946013275371154458479984224590917541199810339153974782836270529831841878001772846121944826170611159603138008500237142132657851972336796269441055811001917979367185444103901081565068277918175683242742788397466741656800606037501432192125011926660830640697574811590640040461316672201266523615199464542567821331163409816305326552644401495412090558589887764077517264023998820736926851325190575360903435678781414998145656402284691766064900654575625425252466112107993698261351287969737637706644341710541942040251573199589798985175808929735645771045593747200123760302032449176737788872760897502553637594202536556417993015964273166747734555618156566474457017319907104320071138908052801175654697773712507863785871410089411280762725795927652314009430795517019117056922766236393255163368980905530067364495196265871911337469282222829710033717446487046384497595860051197678626214008638052898966063459779061439321788904606747183935919234778704246994331694164261908544250217841232608623738831229062232066042327996347513647841663788130504637352658713255772169875913492904972074015351937492746295130629765101687142133918511976852172619403791944421485661608665296086351984121895996485353674467605727616875037360489024122449963057892316340711584547002844677829181144582332212881191696533862037112177983462285369438470785418333048408904851563970084970771857577695580261311005423304123100542401666011384417645811977378423973297138988778471059590798271801116577566541708744376722663058939326318353373722450728842674277073643103221175850618145256300273973981991045374396842631368677523579355998382479221453450702592687174721994428746135114956395939928802439629136006858753987779850523243801765673207442704380038902713919841596112939145308087840076070195397597025040274968837627804910143138644622154524782963669884804874017535257182763091300778336671558766628654401936967223667459404687714435186731598931435770434756065174634614112317842885724808240391648258915081277922102086003694702759117317667866895118637689289519556526977600331323139408463594567842805325449690413357125330764773035492221198827838244217908365325347396692300743781857487200846078972908243634452518525853765450124925788111640940518392337576305574612381406427063935303119079348061492465320572016372071667345177347549512213032827471379773037464921817164485521995541063289933256283982459345044742335631466081801015698543465980594688189287913492364421613640890507901503137163135034292028480658510715918895463533232335752539053578585300241769251629851938472018599715885797552058788529295543561804071217059037957271548725419630605731164471150859588199560515589866086741948691441243206779513751723093719055569031214326666698449119086000607807594446443258759722647000784952212676335196642136558114847093661321110891103565757143329927558842050997320089481179947732297944665954267256561690039055108626785247879551930304594996905788348860954468364297099680681258521777807335133113261025204241247287989201069148444755221478953988199409108359318224823995551462673764359030763798930486768572513243514612231231887772124462989798953162319395619468728142786782943195553442224244083540706027495167659751329762052931312669682031777424419947940466547157259005268758087135451507929579915766521711096521046301962910480500307442094571951705873578673445100384812838072048559790874550761503117509571659945305899108145785455712014763298836630251678246285930326476444499246718217051879496626968754000367250376542658089188247057412953543636494961879989172158619686046982702872737997033030810715728280771536901035258330792037021704831228284646903906572121297802376486297181556858182583320679908233406671732705252809341356615027284381368672413613881929635358793689038648058288939128841781188125366937541101760820495795891596630602611726501753213098874635950817491251984486656018736640002817432217148638473261371963107996712641080166476522595900237421959736753425709224109186427324363982375297507385781909318277853134670787436909563575727099500308723804457237653140565755920857058690847526556706987689875787046963405084335053602313635030482548926507633058713760269031804463366161179279337138394882552831963269314343483685222964504422592362069697632633458074785000047299566114635948810950387542904695306391737722360593065505284020747085956477496892345220301501512725530871089568490959884917464979161894078485005408039720843974326133105524358749177781058915794447116766400981965481738177437201412079293911275820375461352035815783865495102603224046191469621677884627832651391324274232919558141431080511202734138771624632116997406925111689387295167626079457961080656137804441699445467357045174366912119017409338718812778333216366124267995979829252165740001675710545451949707770200378337875017573906721787290206452515242020377667401617840125554697685148759453680050851147962820675481783902517956986550140713628377326324319736124737851535590086266122396959370035017492338272131759549569411669681280892233490441379155970661996520851904913276666791542053333510236264941069111766633127983805887813125501794676272079161696513754581859205217369178551744617994317165041138215004896482749492621882564607281423303712245833254773735554190706917008441966803369661035590203395532177601118612511700746040937539316596336734612489315031429894842679124854076617709614093194977626634758596459546282189963056393950344920675871309114905254284001285912354329268300263729746447354281462136027554642912100146351106502927311245562748287896190070898683096421658168443081255390381673886440555403127538258629927006387799164190528275938667708293374538584764334302585761981398270542734234539193589074138921618776361071055466688211095968273891599188148115745676712360085241369948960312901508725990738986168225414823122551805576238852793193126437500912089992596778770889511428749813627642612974635549647115614064816357486715361302708404344450526845650816481966521918142341483281018569454810297399727237598046641327653960997675963711930629732155741823730402976685302015379487527282691436139573939982381377179739910701534369337295777366729956183672190745990110401629964247790724075039448773587280051462701853359771400608367201148608232181215733202923868063681691224047334023991181256219680496894245818237207099971162474000213054738501535953878082722106858553243003141327860551175181220445669322846707791931082767414276016224106917668464891163662114551486787627533064329784399328270171969271029867022117726894759386941888017207523921553222141824588254726512705144027314997533692561417014577518072928023446146719467804199319922243211150368849897513626946928839812993817779692250763605433954288264184068860997001080589722493933658252120521058173234107424859143982437900518906976047300781250229183938982275947953325802933746113375056489454274879474032564701829669321935631287986176445743867188536768824992999751731679717665803791624200985022569594127140693096431972680236816609072493345817296275751885029965126730838120265940563105618805963839724580253033545702047069477718986755138094143977853918249335451308825967031364160137761754394837963443605081540812057403871319649071255622090932089549309401445299900112854108086043686908781809776618790431751043482434397627384896988038169861081803465620165565331445604742572473519807687030891202797256186577655344688827107318572687992662093081232302943578387340109667486969063990878761240271169579549850278894286550068502097200622902770446806260927431961027213274946299593209230905639109192844049055755334933008599530822537371477530560736312148059944622380496861641108705593889604095262499674300759798903024598227577198302997983825986190314129834049369877260194355703639732334163264434421115018206839480327179404877640345486439130379774067702052082141638410409238735817093271799769718732882818921064337141667865385800598155777756425123628696691980725996729663237931327834034374332231293989355357634837136127326859906178082018466139748849149674552524188069423208696660391089158624071886728068070158548452484944408254117812968412979273911707842280849225913218055046808856873755546288088418999282810452021753465071844870392435624126339406488024306913621341195182351720587540741849737006754460404491793005869089442174503285608506437729921554964375971796419285919432095448767852253408266124086377539878419283180242553863564920106749289988534629899664320675978542413130210115100575581428522070443221175792798328937021588698398836033294259866933346640693176155992780865485738299718509971865672871054475838211763457266711563274242651228886851971069795629513726815363980514827537286068078054120531120004937951173771221525304401025939631750021772123894351408481195484818444375267025324390421215329564398878216011368881459911559438064457809124042626992360878660628400803131149309543874889233652606635372053651670914846938154080870984844786211475291874408774503078104768571821226245452757878101966989027633099058332599052595901409228410149302492584256543199493685490123727296083027253865285744542303495131202583507713304754796051451669127586954676144224316650637226516110379059445304755880587858711298573989420502961471322451049631200401072348415162709147099938106819913001090953004544590390878098464517915325142569437276658166805994747189121856994685984169238364817194261583157317272056851175660275785372950793241896730717926560012973880851760618158800049073424752973550598195229951780061627990634969754186001899157941599610470466410796258721679586131788936319658483709509676368356177794424196503374070355822640961843442230501403385816937095892620195643867227805042065735211919353136482309620761192791129382105278883796782351636330482665078751991655473997347707847295279523204516791490044411246017674281493709944284180621026186758744109744744156062279673522268202606531070368470696073135792404878287575232142654164345814910969930583718250355246212739667543728613334419186898746894080542031898438347954762208445100638895810897067891587520230595724882461076546564462850313449514630325518051993771111564238776925622285524901825057448232771323497957939740806654977464674590719730595325335321017655916054164593635608052743008942635683833496812757588439274227530543979937884796744133684564597641268742028121132145194115024875314483008688785849043201510017998257723604459699289325926374913742616860421930431147646830842234740354104284354476933610044266177029748155856203970933653169494675718620949764219226064550418995657417526612505010388414541430623450541147923224726394019390804042880854892512422016382839463334815118781263399463307489589077784676132047096863214207077350539611597454010230716731615949052432845482232411080681454623018300367572852662569854646791870723219529333313504755724710914560976737854826152089229783696778933417453506281077297591741845739731246212448742927383292959368068266106868273596833612579441268032315297634436240707170768543923284203065706296791252958080348722839695106029988263933890365228099311258190872561454064768191141338495638225137494420970824848820183562662437036071825837551805284917446157292139480619138761982812572132275379091166755542942554416242678693091048949149597011863175971534584228913028359289295088311108640792868835694707691016477023162161440753286656760988134665482174756220552808238904895989020340714866833048987781325661492520193174777134140553740227989763643755696771011954044556549569686710768693822847422209422063703883727145307488244776704055247806498276839422065809984660755485788149072501878161525907126707198996817503858365229504885569597353238461482291213361581303250723245411317288467651062100187721549725348940787005657493850406200421035112152438054971016228568964643760624295755848071815200803981066441905885507284522141583285568669467707539097662044992605667579164719555463614215491918781662270542866811013792628880623373623491353083062199652043031878162939157383238573051728752834191560512027897970406789863918495488111105162521935508432546350329632078345769623321205621243122558574312798960308649763202962714167409047633229444429203659852867836260455384387424760838781454386686453575383431315870746628150527693655227996915946002960744319658976533967581953146968476726935574865640182105992880247284844589417282291038442486481107670146293489033991944743226265934980575189695420538350487386932761311655128657286786047254916840350389136200704543541557273165325748893113375668479718592485076403561861842608525307566726530819857664238072644799429811735400774442282750742234855279188165739117612611333338284830053696523552876140090286701159964054404297234108490966218255450646783985588813455546866676905957528708797136898970429350886141380649723878636653553684130501722946614140252272344916636177018262673539578361470029813986628890858838499420810343996079611167264785653554548992478480383435480883936562117457798968420587235153564138470229153114607773712048916878841742248169507739485107867855445669630296215154401962912287252374677185253946707271024091810648665583615201345090488183294305078952330510803786572740339376797898832984903943165781745840933965329472268172483827365498645605450999400543956130510337961597586014255168836130946486028257486060028472159248761164325516175290880222720592203907223376558679936582555028359724798089580346067210306311897911609443831586978760281885910997910887573500918974241175719603867462000450981224807802751798951460803513411030622992140330893499685138796189305352111844933022783494441907786616154432418514855100949195154013626751274498819710248068074304445048791534585719334795358027045673248697235018666818354390595134601490879024207836393174993287338874670753253173758998767086038189740896043351567650398988331899615284610806667516161416972943105099971034973025974207020883433047257230335513556917323294749411262307005649207168282266771110289818262686214633449652025412668772680919334375990074853413923385093769126972346065829479851305154480786257939029608214232588327986616484277456655239201188340428058980856021974294645586361719947810856563271173777751944969428397316497041766530150771389350913785451744637210868371844664241582781387724106602800640184272171518252804694206445276493617952267210542710289412356839879257329096449968627909195837282939347482701295886742125569918500782033529426634534285089626550918335093805258401322365368700178299736452410803255823274514623411518630164625845922497846223484486693606651950138451633599557857125334375953930197014610284754693690833078081292711019071762863806493535786677551759401207518682162215005223343715219484058441871166406583480776961984430240720596249527784300481963946736755803018380440785436560159399779777791164502958718055940767396956249891271377078926955579065151775341358290880973580679624241338580987745865156937924458970913123367502028434222680024077353990841823657141796139738025061046917829163567328257940972420727638713031076916335423257608386977809513472762842692301591274264682917577320438610182982592347698260547793003107349406307499247278575521917130119663435194163622381429836063548208092492889856788001800695487190026553702165102042917519054337427041201827893609278767586038665350814716102473763677898354742357439453897446150235448462119716298255652058726842119051041216671078803759150242294352090634084913907092509922159535664836626289771487653197971520661611449521209000412382357720382195086361259333201801970596806007044565436107102178675914292340709744760491723403766014446588445873219984167641854402244657994792764734650217043661456639239372214937205484443774372523576345859718412549613719709783030157834746267553400119512199830840430651799739355344752908391496756290845315152691113375733033055635684731966345051240956612088507212599068969271257537672118277047355421408989723673368599126575557426227519777687690946666425184498223949988834433627574969893987789372570520746860990591240220337568542243823289783722473116649274368617462552240913154837461564364349291232454589624209968747386236488532752823111794218645307009862724576611058111491502260339279652050796542174900967807277910489365732408115851738976473596316195797778533432590279090781811046331285649262836627124185878757942659500449104261102091518128411348034267918072754690835751368265374981374924733255690062776307734736739294297136494685273403020577262029389751990461029377803338550215101015241092165675768157964843301435662761239104970619262153790573135334058443569421365959623391960110331651093748849881548188164218096100098731445403168477657198010311275936829874489887327517945842080438835149071406282859629414287436678770489133966546278664542182771478547412457695242695077561741832379244593459330859120078528042242939234965523993581308795017363721848300936955253496717883578632889799576007058918767253379924206239480204608392109311475555452357158870728342454763457332828329524207060064051958435753418047739934525320660781696736646164422082298475433262907540387838801964682783450421531565922353878590988374740847970384478638768891418954335773499782977640901247989222508830540366055070821451433330124963379314108876175514140651845728612105629674232400418387691843819046257344788884373254857192827868060419981798990228052970070750844393809082695420143112318623080135542668559880223245088904303870395907894541966395749986433581380938586996735034399499686863698162842771629293491062763578058457064421295310472619565941127239479240480893744421662289986247737753924446403380776003321290220168242779059780851102448564899445085241199889295785217098902112603098033846236734645633115668549192525964377627055176619611659176689586337636424237666187577275027864065321233920927905493254389973042681770759160984110900611944128695438546551247416637445237312287834044120152629360179100262726154090143579144097373201632855869457136613759839105527450192498455549650780147782306117067228267012454413104217297068437576257557387335791739871325370773928690918026576942112855655055717811526301802178621499396836153495890184783303121968369632355699766165962370318813075985081001703979544222373383096689252763993158485175886615294020295650354942803619305629606722329110781581182819086944401873399339977800936687107973571862347222503721967930489011806156991415143763368698464197609591153094787335536420302297638223900004631329967016763495576936780760695753361525100186779909465417233605783983792344964493084100341303372130888003937439072182539119379506476760768334513484724664235440101656853178878324748116506344908799331325784834722207826447389935083070013323273832213742223120234686271084727337604481825830087683679105458820954811727135989734161349838926060860210818562731964416227444201532190000801649353410820016793277330948235628131219242481700287140064436882884846846792001095776910005541201621489580157962147101954059801589753522525139044033402480278807434074356265146874769691418760205979654942558968763406869289455481332179500980940468651087876057893567933496939441863402568098258633071268574047315989087587951866050744721984520172924091649836147079267003266181460582593121598171051113375266211629179152027040867720825816930658415752576395128455693016526681145452258355221372100483817898005377642172302114304572863906693767441637834662798625470874369011548628073142032279638803496334455454895658011738870790021988838667181302054229289330389459383829126930731823670516390098249245793060635433160949021264658159646526405683842371485822966695014877447710262749875239964629813576646359844742411751775239038418519891302860872008732980813532840057384714144597870522361098318959776199626513557121397058440185924993917168188035273543118366369821683104429451405016210430960715186518645968125524649413671491927239458742423189262392742771387347087149498094830488967264228920475326751760680616845311093882797442603619811353911125605904782441547019483389222243747813610049875603088347508739817518771522946558467506135014983073456584019996771857775467110715710550872768893180276932485392461154297986982688718235110183190932037501841420438837419687283373997928818472190730971695317247295111673404891121504097188051949250342929895834475377330694083545543450260206533034423698954594701953290715619553378014333077728230263235082228938764756768214970216054379942951191476406579613214814015002856028405963676835670738545481327760558746122413643871472477542203641590574752224086395315592855223771501126821467930061383688939278487640125576185746582019860558869088193038606228763287468665484371501165928748727162111151740712749741868432414027389510497739352143219454219112568802151461415165148528248699382216578941906847448932892041509456512123558717634611619109558683032046817789165094387156888413866298962296190381623843121572453840956762637889536574527179932577197406787911761869072029220593984939375418768390900980451765716602030254529774055067264076415558823371898621705495631888084696348019387425524087489174360851785062603407046855447613806723723366107090387744992746916260364030120547338021338622566530894311380278400493904551026484458746388312342906421197474018083430294228179027293704348264200097690728209722616533572448064344021788528379012300279557624946641258869854070845137116919615512316394605990709945131593531451459995080614901254958066604378284362480581067490595276374094318938437338654596646374492300235999262285853863436073634165410938229689159075534930512937433793774063748221343190948385373291583763383239642521337605032254029018340175245768501546429605382631697017748256035438545488645627207113055402315430447864404978048278909949365856936140088559636879396474964634847051201138587315396311336605510025104010543366588332824944942362548281214039949985803254161081119303175118516792611555275722688654039943846226502735418799586854719927812340981524460208320831228887005619443969640070661886629851305925125669190984433534183502491290697150274130051546639467223933503688826912481472766775114824979570865262140047305868361586205833841171834083408805112985237632007563090859290055576065720100159053877126179637550299017761089233417918441501033939874608011411009928476387455572528880295205630860873607768714906323137828619356267468508273214585497254449338003943125975579485563347811159083102381151605359897153656274165582377140285151072742095681798992430696428523614991608059525238888894855212171662576356020153374862013081693493828784212291108386481462620814018473926009852567329645633896309752105615652604112273355961907506059974809092520799136063036621970118795584971416707968954623572764010396559945718003003134212987990308383751984417233192740451878721193245712216436201517644887101829975990792901448960159137842096066445731032523147017784934445016247844183082793125024401508186494120795843918202932291876847288366838036848490511246873640646588828825837556330243287360908446155506047885348266659659968414872960025316849339849467562185742104294265871001983069489804496246066181919678697258527055671127331720901494335618028923870172257789549336523262254493960289144867823149700409135033058186309610295289078381997932711368634821638506989079983824139222623984595482540651695111829819333777198461919070865543949978077790552195650646238789885716662629251955908686221836133312434947245629676080248369566054340463414838297636363393753539271377208169543718418588763042063577594635583538849485618311854203436307645313107104225097305469430824034248507869248302889020773317165853211934293460185701815782954801583845012412297072879669413041990384277759463574550920787031545141460538667108325380985141146359643042481453120916912864164493533032631974159013770858166950163594782594625390638536412620458563289311768840675554765211111621863582948949345914605225343003396008236981545307135143292338147562033803953271954096473430156380626838580585263775679155066024397956633866007522465055241141254792909572778071849004279187464962919750601718670387000220633814582218079803721435008716046862652950759336737731163802698243346471014146964337314465943727376803882226494658173044005146892840076732261470812586154853998770623029999418026169318218159369578821734696602056693051750470535266911256894111368888902002213073473635307987309945822241972215412186408019352807810961492863630717187845869832749094517816998331957777810134752704318703890157025035496938282978227646974867105503743086327692655793179063815110786690846578777384127911527818687147550737936719610494503541524558763838939781115486131642804646279053310633074954143210431698813120949550638492822807011024509548848145494854232532991945817134949732443043824360984677353701479606668593792221048754928846206396292077663614351055194858215394193825203066517066114828497348135227905563650740592757416205475566129626583215064110446517128265304673489799281337759820389068683844440497054064062111272051307590453143959569757801590259378166989453492699607237560447959622424673422283628778757098880302624392914964755628805934290462445672001606497005613897260964886240486872584033145253843842993045582593714469607252343106662317551881366444236105764127594857654849421411137415906287034225954024135562081050251232719664869664690483222386885603126260629215437306829159425991851053477158853008812213992403937784983223082882241879987326587303322748838738821212637572842544722026214732592769578036231174411642556104272718007000636026153418733751044699687827151040892013704615853529094870553326591349149893806671954853158665890826366292024303617174368860130037462616133039033406680690612299476749085833131873702758120074402823533155472250218783935253039860807122352780082152849966884358191057437361336168982330960853340776405559791402593352058147388888529970182936257181878210822444120994539676146015966056449693638260542330821077521749223590131901144777894594687109249272278593285122744209907542488056838932191236232194198726001402693250231711829251698207123800777663157016549555661135790503169475544845469354858152474682755378452324874965087916042194508781898435638623106473302346000034500635626340624317287998004897725172931765587288173811142422240365520824917025851664044019159960502671924119662984659853149282597441832704254367927968333246016412955899420297701916626636663045733412197444904691857463502395563284415295711676029435072793170441680659978662338004223236633960394549840516747223287863473284614475843909301686952325356916569620496943840925779589141820556474986213911239470707975719141036025026101135518105611883964454796213560260121607167514506493716334914932698242063681222956192500123603920178516162663226769805787514290217613783989653666216885290724060663812168153807983011579277179192668970175922550863023340644655531665089157665217781623640458334303307062062012165296920958478118407806150407665444888243344061010369289260384359983370028849782974777140767122125811794829648253007047619402208818079127428037917248025362585217894302293799253788150965354587173257350996171752129545077438756256096144274910712301928504872961338550618426000287319379409825109956604527319906081294448128731404334370321956547728091589407889526396064805683097989159183525509446104301454928467762499765450159762563180736527171268944487979915665104060674972874307265757454107705758087287227533215697856381157029141884645700080319070113111229803525000999912331336227391165498417589163826037183184939409931707435573032106490833942426280140583913687684033410176616689359076537911246750973518569924022955192967970457017802634778016235570043621969913948934252347300552119758922738543646549763525928528277843591722866047501768950598676851406982409371363412148709094027053637646110595399896462270298483125130576942585973786382277711193161031255416079711784024565251983855200652341208754388269001682783132809968954457775287882852594469004402622580775608970659394743012694921509908668896365407861408482481857116350840992200317974580282865142052233584611700822556959298388658453619148055769483235088325963245442991789776024970641300182302529501527887213802930048978992296712248623564295325026414688910964252093315468867222782363363466894925780661527089758448596752992869423830987681027203014521274729284691179585571783550104919109797354988183545777968727266642426466626419101842009378501429096221888495157446976606561410647625157881571666035159737699695969668844492388761593186649562311603211450622175555271309561670812819370155205887656370797284931942034995385498664916505102742427044263181959998273048667923015165943955551500762735845546111499442230910429246900465545117210733815552562296167304931492834846815089719451895066567587905896285250857497356845724842171916928250365487848012904345447282645069223130813182618851903530282485233005484170510338234316462879121147949097774699585596680140386359259711544182656086759945197822719078405865663641711066333197109956219079276497977362015127470744160934270976934792127806806693674418317641948341710422025903441161265885006897530604084058900404055330220842603988587295669779395200558581917388936768082277935478866106175305440703830684720564112638931603600412337322998666544749696216970837183602947952508611744004757425613762697933673426517967238851484928641861832196074778036674875662050915864795736252625447363158548868731854464394845859165126693936572366054603511000679974380428229976683362710860379427188673163323253922536198386557713666478339303669505798513042666997777329520770010939199788592874182374024997258535924013290162076979122746379830209730227783783220945558651707344891046535928159311868688679472690176325604018894064841612255549077843639913245821810746797992732951500522448958838267524620562749147693079153102390484795778498335848609191887580127867099871125636876615224466792874929785635741641917297971873899556225660398608628478017803965192827598475466013023147125066406450332058326617038975041804883425750791546168671264312167319172625582638924451098312925342594987355016234282778696909767161161156255180233204712825278723014319903914980496251229026513045672656723050860910467606784721845390284012251768932829329204960563573190539845669582569686002213968600748593008810123616225877543628491706411691502539881999485310580324184525841582074784433957124880567026878741531754774660120832984448609988039898367656091710991264590490490707432597294715236715648336959792114129522052455708427684820223459668571135883606115936135867940380874160542674378926600565793186030870182285359126875135127402975773714613714568181973054922937223023141827711236528820465591574075784542247823494239147199846185644413632419974048382919360761656336768613742517255018445628942001492433789967337333435483119170717517973177833516621358106548080312716400107906935077368235639721972087136924864102078731883931155158610165776496251563801237149670252734869217419915952939541263308394823652511682257865297687639014988496830134440138931552198962862176010739853407658309079758169257224744310467158875937998558825659087155235646827668084264547460303339027218518957240501762215093389028204505917525574701676366760942346549641345550374677804934359715508361400426931433990986014573295552531774375927068293410846159984788823435019629775650958149195527729426546435060967597644807124665374844769524600786845703106646586095577424721244077532753443912953028683109476560193891062359013185899505649467184310792652436359456445489790448673144693004126854646338440864120732286201530167202235393393754077926597549161094419586132112173974322262712538368129365584909604978340466851776074968706486625371297294717520112650720645132697041929606938202310220382147864271866618546570894071412645762918000156868161115025194860539017898401187718331321918608502794396291741662902813850589945949685535063870587721908506863648687613499944593721978480253633868094934339935645861575339617016917996711281274629223098230720127393409905316203385594247679725076160793760160519534368224393007713860821276510056102702537136248697230801340826980100664021730102544113976571150678885866439731664976133519628194283707593465400008236225241195944169292578291047808984122209594128156604635972685070272562307425221564731692292591450203295358751416585096182875287441567800174579156301649878947279282031048893058157463413020575798099131369338941341699322025929531098142756479024930892400111151679372492921100100976184409130827562726328044876726035846140974009050697670604671607238587862668020032869132920217506615440706207970387487444220006488235536643803155155580782305198834544052705006817122640131422844249179264093910298639195894599367597637511909511597492844419114065898095779133233384857737626591162493363882259988475872443889374578682775700696687207827478888592626132110548255314182686424914902212460573556299934525125364514394435208667898305071321933044835188266262751435849740567665795846211731241609032846004469365795420729432035720865680189922916870341388186467298398781955456836249279213422830927047521426870353481389613138338990049313202106854126262451552646463736046703531922473038491215226710790186496720438105725003545618770338804772215361388635386310049477486212398542835206368535750296773801353727512403582265636160167945455459015807000989756362270912994330753590989163006225515700813879473478686321828949088486486696667713968685340126553018872000566009830069621809060370473155261746320808045030476258892770017250775410794426540450751914617112699507004661640352446954655487224419009619059464208987595622692489988166954181337412278972707088213627819523003174176944637480142952850126821937759048697532343825650010762295405535368349678582937739310441315978123324009022748721920766727972085447894944632640579326840518632688131838817342596762460094604796915022258772516564964254612905053764494810589430745702186376684790928505465515327288716820381963143831986492596738720250074567946945980468027826389183340080891424058317448452765614371444165834485451077007094041273975751332327620488210046051927263038238588137060603852756588982260708027768963192242441994200997910408650141759942519210700387395109285822983072781252460831767315475135721203707789797240874745731354448891831298866929354048910849153139369129311635836313915838184204158175930743300947601710674940724432253521422622071054406878634478415808094744365506429899393488598435991404809633835117171392092650028351318137320441026920946756892347994177566035543098824187029649821199509015944363836102424635119460331270462562381279048876760234949382090882584999320658515147332769005380586323064409762299049731146843347680810992443631493920661663422793831565519569501140824020825647137699374369170002257632691840746390128088156100092511007693669533034958861980334882645776050721465275224331266983309565622023729696167357584940917132928143221118796127499484502578547223603841816295693932172447359381294539430959074255595193653595270658290805493902365067438111092884183406284733198228964136982053001541584494586101209882842431460782188148519085406422057315410221761240562138764911050783910849939928154345396349740592239126685274993141584505078421849517324893178433228753930452399093036363779955822834570007744783945004619612057031292354516700822671787844045130607981171686395447464681237875251628077855193558345432925999582867846379743444488576864641913820100026467113372743021153163055478981077244988307692919201015595501201987828505058712693863954749970586983798646457302684117799093741178992816165623707167522304545835593191774452640578998435384316711115240993512786288703935514373877718777189527973646038268801732120029754206186347940429769542804975380154760034413464230582513447123034407721098543110591691508103254243327780364520889837457636968869525650422157584484236340939745235346636935266080978670645613933886946588591383050107736070819914580524636452447822050651701238359926029276932001231418767901867336241588948450489597292170731802766370785811167348217989998024239085756475740145302297200670156927367092225323125258246779179177406650927357322227522947957231747153642816296280180071903187061132690678307167502676094158818406696505646939497606914342260547987915727783415966943867364546603701578249434853310620362551121844602739255058380050569362739678347220648479579222286837239519041401907225264355729125848360918563520619096642901851881557003745147680992812400969223808403998576187098148672688738654915107798981122057181236298911227276155800825280227858075896270825465730370119675970013113468855738982781538921662813178073830660289329335935557688618698838801493728870887729046867170508534039537497383087702737751586885785286105394690067248009740557848605706463520454151923035748409491518410287309958762247612571855978747691387186691058466123357176629630437607408829578530657590775665896603406165376838362330329630439796731032210111895187200838247102626509242862048859050373746291361153738816000646808667699674618452283279295890370148105267543127005816293194049038552116874570787721597777343380785460901704894390905197010356785788386780409104253922762938631497246878333478203973240626982759010385282246552886650005044399792411779300406451451229665152872526445049114814997997497229948657316997371456871541920568244979703331971384878669694671812386594769497150013231305807250059297789677188972394917117155468700140832232798252896071786783282562758969778217897035295059259183171906088246525949761886647525528618192308325985924406344733868900799523759513797715996673728045928572310738908272862682362190230872034480506574663872094461343197406774285727086028946519970504002140246895019961204096213672012318562084153590136549871955070403199769152315604908833678194387192180776873266345278211702148303201674839228235966319703261409623099856753367929543294771684577275348139387223146961661530674871797861405604544829621978949191400014423105222508372742240568837425110803771816256074413330660291923055306216224061501352002671493950722444581395442842276968852383085989629244592321816125238237353659658346120382237650181160938479142043859187663109501276210835386862021142352466231918447383777022954245884582690264751871487858636524824131001540104464634472124101825480351349570693295722879470643686261708393364562557028461904024842679452357409120078701915858509189882773406323317505625176297416895051948715095789474566646621447208833691774774145630782069587921998870760985320974914762804957427797637074488405605099833867584918954526466624668015310459207095983444057555333358964183219520044753311589105918011873777417369041768614622324454214654005776594552166221617996813026094902997501850777105166137516767381918474888358494848048231094615977665968864453471719853404498632302642840697381249697468704992644734382334368754728457159013452145051166701652806924074358413765096900879972190041618721663178149830237433844901928823199379406412315811439761140147476441937076778692306028769805238732895768519618605250816301147889055181599531029397650558115267522994401173933087466813445394238818629091816894754360125420601247017080484879051204303640526426577284769100661361781829859210145058973064734712523182214648319087599678497507439702113194030746494478773332578295630336487255380854598637385414879780831325352439027281557991911424534601120174931087550378397867010367199579597369293955085773125811114233666922009765014969001693028265860813305333362743934162601742490178822550641340235135904364750367531005250326898796733215786558443747260637756616804313353275055324628408066163435922937658563153668740094657492229485638115174787473079873325547965565463890189442945216233183575311243583105370561955335421748716271447514042369342659331468551127703021990770334182545109031436503343470482702058464674387981985906637904004470275728198443184448174467961013045813174288994474386484369286470863666384007845634274689887593248599587876742180402780990639679327818521228241339423673673136400332957007628675493387048183129512134922856088610652405916169980404151971191901568529554844354253937688129263418608334480694329876432705707299111066545644662159529417990282198970445537390319347817834230818542789855612104513533124236926309286622612845836858175053890918154950773767505564795721666229396809206707495598684563268481795789335703362902265058792596260320261415447303520300777664807511063192727153694837339393962759369799272895185862682827266636495852345200076760257323432920073803959729049823612533072602092691581788160827644078658861460357051154882940681182582500135191818391325654006217914694410668638856083932157366931717856858032405078465165897275251258746730654007725100155791869464402040380745048149530240163159762030584471878723504515696023084712550699424295425079225300360318032780728231575494156330026777411637778979593370071409817131893769890412301123061314628596035912947302219471590810516322288625762298299828732754226527528224933532092799032918475703678075211533521356551422570352930689492006518178005879662834426324643977679416424607429159326248244425196475540527323751405291245473609760941955257943584112677638749939898844723525971674233752429509695647074470990641489396761159009772273418531375337626410082535053885637836839171445694873096131581500116558823584895217618641408904979126438915308371847104431788341262680368626253737398795675307402975542832654881349484292005040597378886347829239666555274660362084277829633944989879751804147261179182729419133378948733732050810027163476173340999576536716265438672027525738236531635382847099057417615188134001795564908299033414838345343073412725360914001890747230235906222362447812266861406837185943728195004640618924387032569993811809394634662640986482153654185334803074666861721615355221824392941432805640694436446259612774879926401487647923708101385530623076677427650193044240891393498890903229032313867611201428826751179323185019439873158110597970667210052344408347046264555607444430078534976724409322477431487257273995147231456487777420718371190101694965636152327853350907900437730113133388398134702794592627951605113585907389529738813933849838203056947187221500903786282126015549709859775468341425277693135709310841280865582018411775863602753885163756905649836904028176868650345613328641942420627979155814209376178922695870103558446209119727846825588919586856882278952349123992752044951126182484324525061071559530066693305785336971017377693537283472982390715372977098485396103213965804623711436891939215053181392454542171815601667169258588348687896735322571597436234979685399402358172147612781732033699693319750738297907837760035261551060798512490097831416847400522296780427817769869063884403818497326412171306896342017554918842068609318263849626149728242235074812421399391628986967771798165197815183475891103750236475938725638509752749055933306620972536113526612511682584671379487794440539398813821555015577220099190512315804592812036876195555541554933994574142566029328930450799976592427072846629716686546706822067762603059051347493405942714956753015319889408303596076032721182493941405242454574584529435741621401291724277439960447801112349928640811058553886814483208670192725303330773757099322968889883516090967122436144939165826625538812266596905002032415434961665644828077178005269223493677592636834918793823775465990362105964486146018623343207213885494929680991293640259304772167927756130952350237355843050219262018280465042605690184339366667547761407235329765414862902602755816476055696855622534256788250721035097109731436764536767169570651789906584440327170199538531824672864464944272176027161800611381925467100319427918177738167076942345982006536305789296327812648378075728439969369843638585462490244322322394410839839303414908775308900156563247864623962551219667439694294570490287946571491422113047969131692553301911444502538592495668390683809620437102451177477915180871519551451186453833790832956002772202148665111017269876895064017157203669568845816390750970790856026259801856600193369732132090157801658451890781620721784972959731028623824270743535719671444697534890701099592474736006004203707406718359560039215533024529649974060170085589107512472929469816030187819892151278955452230220617639814905265400256363537202842916619943559081818793679475602630255666258443574649268201710282934741236100139733945289408029405739684983252307339385837440028282099851672652928663517224245290154620614348799625750247223135702265768868050609427451969057470313782491530906679963129914494050510165072661798809993402074512357332018032747765208276532412147897301181611087416003421740721034902892795042008234982740100781394150461112299455126392355167166447136787093282479336782740131016144081877374324429469689109205185041652568092003787421639175984243594246850030407640213783101959757154321259663546947768414300600641734846569999599714124544443956115274175728465268121571962006200059969820846756424697939392299260847376291961198156017944723721189466996006157800331192076706636606098472632045641012630503644197426540419675254030309023646633867251439837410024286460283532745480405882695375344419863343799000570318814892196906394638639055076044577489513960488385074906635271762650782011486620141590112646797551987661009831019022658977636887144106416857032316829233075420693789517082361759141975853976805630161660448394410066286365651030057171377778694854194528998320651833797224358191889730462740181945428501065025874897642606118262033063539073586411186118351281041925446666260459854974076387486216947500718171145942898117472626243251673620590757381685618737410469612273563643706352392854363792721208232198762062806052456299116953150171781292381202326716225297654717197009097754268973985573452665496042894449162083817724509759732301714450820387994512963356538453894780619296587964199125238149331103924374026628599788192580286449106453787886157491741045614214940280103162291167987112672156336607079031897905533173086417285101682095254070026858404408851559871800191020160011253970896456599462918677409765986239819942456172705086238305212232467236775122281735285976933858885971259122461953522640337726938579348001014722114000229099497027480315605449821334940464560850656917446491075463802078517383951119794767857423438121288115205248295720358723518927906447022242938670614509376183315510621261508524311514496796148823817116294920339265118810423002969037177949463712101997535600815665483521278077729751854321629896553192760487317607356408545721567188292349511141591925288786787515246190158322626051789838069800982665903710948991638642197721258985516354357899227664892729123690627474241464568202563110302748918199440714368447217740867196281407269065275052405111972314195423492897930522112830981659720716196495709697213178477394092312334694275314925875691074668749395031778170223886671627197376003377838181867263332162494385506206284164340390932903582165377660323819546479584784223961485062362965502776073881262350012667052871960943174105056297452549517974636452138624320947572884145891413475476152216731632625721252627815737112071254198635288476774250332220993996361176835896444393846262213157809233812868361235539315688053644006610273080404684751936873877433809472326088290663908390751752128366164101733223961775788717372529467190361403994756849245231173218958488606342489732869226812473470671301072796527450061056862680858494081233150944300804300624871639839784667826907211625209204809157052729163934579024348093780589566432381539718253901696899872845445055145845384047156759643214626146792960565622697437168470792036340094802982682260091603149849988269443888829140005069127654592061463232781568015550502971209177694642921704622884700571438178096170346199843279292024910252259932744017362329966778359444078724599627579158399850772677232267058443128678967613587729513163664486738659571509180276905686302334999627313031659410753339958955105000545994606734324116716987231867853573127594777212373947053282182543261457460767816118597555531561586317838078096839874595133747783651340349629664404546428298656087858846024609871172263282827960282088361995413858884180768665103843248168126118777496273490023768310076403562721142492612306579370823768668288011685767450202234548168932022901108141920686241946929265784264269412420515577243061749813201450272524103081775144272236812589943900241938643413249999943846420269318995093955463441575441900708941892579626017646719377677761444078496385219688456064026350365648314588815365288107936757246800452979686415265892336866965227697706899683307486367231809014603512785537448050772335051911401332228412486210051566259732939881363524258677024978954744744628891761082312909347494410551722607366210855889670719222086922796116963362572775558251902718573038648307391353144820162421814513721452519744367054515006883035818890122362557760782163632333817369552305328639458758215518496709690599869602556183065947307702663909037032510384661691372081703925369169922364856303223880355084512625714337423026835827038724979310064762095394712818134849848418866681141377628868307458507028193066653147896859027685902539071862203924024430046514482463680139912780880191825204869815651216760967911497149514618167642453880456429635105926977195350982929081752848770232241701185777661188575298859753322308889531397562354775984223895633156289904834393749696455238801135105899080238035421388735832209880174771271065904779139814653352748967508909932395660494932454880661703591652772691015195376588893709892568208029797200064370962440881450783031784453827555990559737928786659254219178646864440479407810871013389565150348465732090166131459387665815994155566432493645326351936399870210374578419360008057203673097381127539335288661320164822192625363207596564534879114931945939249979014753653757915367741821982929380459639599307345094620409400059436576065797164821867358939832116775694462883465053298728253507721238314319865130259430297099157578544338462081168892503342630309306851571434031946465893606561086863036469025508148401499586556248693090199688538071923557121687674044241396524995071172019816143828705383126528406182094253692608162390557359771060886255284605762931735134069808097529235497030821650525180571933981327908409308587610858076527504352763242021430894248097930289564838519037685151526119204106290733490123685213931484471495934559927348675476227817136720800660736570825215564120685127671752862610984409078222350369993202077229200454589464809945365117173718769217970655159956778236722576749360360320045624434161462702176299466997647662112690488713205662558743210546948201556099025048891516002974338939583339554679284618389467137369004338109079562626451681891774546869233448974024439228379973095522243561231261497789644059236211850247369334079441182188589720470093494234214556148284398442355843166126999111379103991384007278115168733698934110267299320578810199797891976065100894837881684490564202893333256780379157175879349022158875150682215198226560695709320987045263422755869218126483295087462835348808784192921399006652198178711249011354238336767901503823360056546535663886676853525764546590304750538336640838557942027970448340338436966407084439685823482666105491702916071627176782393151322974631755294315199122626428301402165050443886845226387912506105100278812049077774643798016369274904522181648493574996698232131445396211044287589240330407595252863230769800535287169697866073504033521529904892775409728876805476528773297825453744303290238184513484555351753676775282794239354749652273461068379414281466582390722980837105276689951282207567999368307184010735923814739079977964224157410946016505831915871368422187588295915768152000268935633874739232559991584269767404867424096021787714798177149854624567435938937473863131186706712108367054620323556694986061728057627597740206275285461961384198276124271691109529030341542549284984272925985597485227900393169130804414353397609452129186532539070596358170667137223508878549752745184318972902797855314259467647461000872108683563508294374754449991534791465992990499679361996097514806370527521670869546130080143910208095976514378478615829090053204069393623018039597855368639407047090483536038518073809291540417616446298928399872116107232485173825175251067226587282606650221736236918298640689767548362359318196796877522565838877861426390913600551361531799659882270285580466222535015172056982868807750622181626617717707242543476727478182662687831175199365844428683942648749134049962788227232542064085037983257319582892910187396172912916101851840980270161856101764643559323210036574604944379626632980087019480136238645065002165021131866895279728734316657455457628773856642006007094353975385547622320772673478949259474266658430263988746590361688342298823827093408257146751894139468821682752743646800005942014145264110896915206253155306609315830236353948744995331080275571606396432758188610982758471475532834231544907118263567995494385939282217553435741563323764819156456843398394115697181351951452785861806639812300769693563990663923174982531081162958075706651648834167252043800496578067853465234588242710499253728685795338160361009825455757934933601988467034455762325581690722104324336085934452449407022729798194507355627317397233027403168142283069856700708563642895188815362909637725993872110171773195700517893481867473576351369377898360164776059947176328827280544838326601582869288985573884175336902368079205431709307602980865243612567440160787343280289503046863000702987558235911363111987832305037481778123670185290953751253337695539621239009436062341880209748318526800354588651980322160714654562172132493526297055992487617791823832270534255674321146918397887947080970538214078931472706907368551989867752356593614898575589444512226664108802027197192322862569221393088402422868560743090676127228364583882160481292826844283466029955023776728016437444098833272745252192376102970970663430422168208266413515787806948530044872490838346628264766309695723551413924722443385879350801494817526108364382362780186405043751977822098821331790105992644744368816505670417082513339126775781364091647745922193504772600488534930485012376971461274950564783709514823368679440354356274462794099887894702349493077370962561084061807275868177505112866089790491318035070287471241430915347846898325262411640550769919231398599454785033924801687385648253251004720415632253123467905748310742270066470363475104704438049741919856377939323480195868429810628882883553116763972576268160133072402481858197382258722629750168116988956185856891741394698429882883273621844989351953482262900130834633689532014616614764441420855789925238006422017250250622306680923682177055159986083549230686734231030276335916514570845801709875026871985077356735121551943632630701146253893637797433396692469996159613328083234830560158000984552314931117350095480848848605885487726870445255198500835290229076980309930853798216393043433804641044079352470679231340701829328524911934748074543511415880584244194319896214557108484460637984803574083096641645386210215836004436092998265291496958199366855087168104666166434233575374521560417600912720347877906390242161004450089306507797151293648152833813939749159680863380439888654816174869235854286596578732990989967202594448545109399143546377141028941127385377625161539814244813415515873951119778464438397295219249108337558119533016136760859589892536923843039080344726195568842924414135502617118442953178090405005698098970369539410532852621447941402032712302900583598220011932332382601743359624484172102930749564798706461054950672290491387640920843854703882075877488895978723495637485589093271387718272534820946244094969396256915104379570889344790004520924910490199977823450952328136634565088659938270964362572642006981339762461314671441817174945150448557261212551178889136433799717441057502832825275031178336584858467568857246520847877455265566016111044977791720231187734960062804646435174265169432286811619980352952137275352986302766088792605033789905964319557608725204328062511586563109532117307675509032745908945575622530597234867684869925916418409989677907398850951325354292443637927855294897238015883937170112343471299748887540316186490057471791379846328538699021507254536004761604287305839936337156061043025488387478242059760662371189201713111318154622746355873204929488586397859517411113039275508767045643915190426000396369788811514365453365907555548079636627481934167958383985225294343013254792180443850562233324454278334293552484138061806300421101785375176960932897934817451403757976083507721126788058632607931725945285355452480721165069419609144241021563093831682851973887988115890048651808380401626247966954648107192417784168588699692540795836349896599261803554863950263274609302659850980391062018820376991404050292738658513887671586128066918879295534398757473751897268031827958155725744037191044034296850116880271434802672664872132611537811195929508401105352358675990030232821108853608039016557080667416760274993977283101728823763196084176987265169939002634547324640167795196464355645702904653280418175657592724599483848413111104118207564696737305160451174651511332128090749565204156302424561409929118851963029323167328529897668734207511096194982996630343681332424820269169274799673047327491088987717190886873192403650619898503947066992707472748723721573020567387384700756957026107784434275584713608979223582203982525644376196766261726310717664585218891716422650241260352967469382018943217760682613295950969862646885106100399567153127537614550145853992888165311052307512125228386704439111679844899503661447564224190404635012834301113582410364705103321915581051719381898570858656571936595623630215672848369000961815640955047196251601371647973098528379418951679842511257085697533152597187490413773243610023035005788736266764729686682068444482678211075909095778499920119006813671352731486589129828908835084421192792554428387792665644125343428213348503717551269403677175164179758751400480044268482706627123016374388789650518391539305173272192770777759679012504968961486405351630450620219314090388066326306381081882746851935964330763500883159577895231400670713951718599778290254949198748942035001832803591456355992640439918475680083018289499305710788074114133149834423315709729079048213355979202459599354898830688674025863446162125962948263105838673601941666778483282640100390243458899409482061355967563179867493438978669174851188940071243800137660938974851117918924624588859164167117310910666328926519451505366546220551713919882400707310381047286049177279755026296919091565021068214290865186062943920543558578921604215273396821156059389514234386453760078942696670135457308485176235813652519941864214582022517580591818132630986783315652643412574237817800277006847296107900803610408763395503181034616924488326285026384699032247631913060020903522449622884741558161608970280082188714967589207811832952917901706167668459433145633189615354264269320638954001650107816266436054743510278201432512419251217635024990105411136667219440344677580430204674007321843879252927576515812657645570010819835624026758829575721447123141206982297017879139496548888851288173791396585851431593416882094419877755622425817654894927998690524572368044892389998888522947426110969720479553950692444175104810189287139109566645918275814123574753017669999943734681372072822913719320735635869598097757457924163562226202228986336730889167141695165859994037863707839223997857691718195980414889027918654331316987333343351243537119281798843395839095523194579725279741398908839511021277835199980236113062912276694296033997234360512932416341585879100062512448581630370863473530124209437140030638913162204966248046722050101346629126004905863859418554843924940844666930862783104996508645617683001755595971779986607368496129324981968686649639364224611385036776121576319102254254021888360161953572329887698842401987716363672547508400980270027497035537262090405512802362243222919493857926633066798325932957591003962083455651184691728122554162463084454925615292721209166194442567588179817870383654462067337804698713324581934749811444807359433881166912076763511112121209248789173778074426982661679892686760159694751248798824721373334837889556637092802982902201853214502760031991190973554747411285777094124709191121257541983235447987528797687177051420678455886022788710841081326545745233502301680743877106767754463189336839621550209809209008059987994020060036224179364637034821602706854658230869244406236152505530029199722576042149321430421854391530151255225675177337260550559250686130113340631162466075974437710509810850392529311345104532809158785303110136854029314516415816086246688242114983960569770173387614231982862985659343504004525530362591372353736034370054006278036407079193171695476777012387075761172487492874036432870083567318757871966705558192890999443740466543967314512649246605336254197107290088304649988555732424614589563596095944074080962871047408795728288790078365403135170519795368350483332427112877017491586908933408145173251205852666774112571997199690754056074177445796756040318190658333022312102058870824008056800463109400275220847448968742449468467764732914562800061789283454047221473759163942199885223439676533800739076947773214677950607400143646531311602404535068851459636857041152881863972087291529608429251390461095920780140837011923141414748249240100792326897237483178856360721201760019610498350986393398643743923686883360372939297072889750146936973820532443640779539047901909234850896788285759461621427250644218373547775063464753047442550668291490728862427170066007982147071022911781462363949400820394560522965675695530512739364751309182235843095252823835237717528154123464466899563725248662753995794601687625402976708860951719298832269846636111248767219524859160118071032630923136677100211629283312722432207752124929445178973918917088632294258769353284963362941673841887514159636969204667578676632384067505968940251707278917434055475550661266442394799254915091016106717847084092097679668431866039846430968405209794288070228947553260176647007501657310251888937835700712665702494014077911477587829409178963859028532883463216625531514434695973264627611692522506298772999735471676894130440060095908166497146254935567988866005109958850722694536349758864885216854465902706287478763798447163846431325053904504242344819155155220973385702566395639813611394323160242286561577250388960631466498004915991504149225507785899107770122068184546961466620238993635656103273378110965501938141214689740397582961653187387475624276340568441467700385721662306095989128370290009586541152048756405476809735304705859705461971869883341245328268441018080470938104509958956299251673703873778985739475239712823417028916015358404942802028723122117200798157614561224008689459785647556179628281609871369223528926545892054386088072002538461722815121590320283303920474319687484463548319143247300505050890764159195581610799444778728290505113182048786124776070741226137250892657795875590542477441820322431776944029356782060805600009436752104137973305739888570542811573369678510869832854526510263324459157529372173702698571215812404137472711998293971851001252340962038226427940888017050423672824832273184505408670608336451068773862195907694722746868203347903030902143628331758034620990994733759970189036389562050062489278250468755027586329674239588841845859561676880062466928350200180684389119396976904046180825002853887323461749330243476905407687866604603738938144853026385592267327166268623869407458440702158487389758377995451788303576891802886052734172117054682131827277778963067933084030314008852038659601270501150874705092576180577581398199540781210988882330623913799386070912279439167552671537035764361438393102451718114436948227996115115321488470548191181138204840539367635946904757499892556074284860142215209368281448383291656387688966706730607234137809287001233610501370130682847123618182269003900957958980392063303295244269184610479667881593817881971173971812953198408398705776734387797708686499560124575337406386940036909361401783007561315809430926548827430030844715824562731953530562559333517753417628764232252913583755267382997743711905708318696751944824967362577025826466681200143818195697869989956011569006981575199402693659533524559237256601376819094587677302492613181378965515407327431776951217038819849090471301355469061178157649845115701815871532275005317878784819972809226994861112801650491862705354344392592379385957756577614956086484346019658525390575001964220287986556235564529721192636330517430372732780813643598498869724438869651069160617731961167349069841097040704153378236164180479431400831301982517550661626655140480686883739062514650685816663387428667292206150847546009151642340831316810389519051155211416507933055947443404430450670169110035664555366339912967531431874124743205290912934852791415009312405227885381698942323441582103299146257160437798805979326381002965286805593808462908830969871819652686407159324954893335641544357965145943794071838574715626452023137180644513200811548323867230887089710419165285949834866378571875250768484897299976994945141337036389163892962503409050833763379621244865024707370854268623458170791074080824352769026278769735374794193677860486207988350810098217703255096074038588436153367670717750016807698764814150406509844583279324573156026548802768562012282084295151716650530505357170789468219285673932193220771980104428229247319265649557570363438567190021520483563597988489746539099370002070743303326886182636749694714348398547570442949783022751518531688656251128376192307043589770159457764548563053021067069197898212579579993106417775665410176903015760400417832919621175194635918308209569866512065686045434050044788668926439713744077631852569414065455188250960370165416793824784945535237117004162013626113483676968456035581993171346734840201181757967885516006287954834972955572983444636018297506526269488204916992810082126176886083365107452369287261816994078027660073360170341186739064165390782420474438190126030977004801997020586199531430623004456970089870813239285520959307613426014952623795075525221564602337143442115970689218590620347100135077808619880998373393452831624331161147374543732978752175063562966430447257169324205592755114683601901637621169937150121490531578844748446716170657538719749730711533110090771041238546748114054438972496459260533366810147985703874529982136140795594453069812611576950507477893826786945737977666511017342124570385075497259383883140598675706512726391771543680564387118822506327450027450714031600161223066661882330039885600654699803658615945791622118769213959152468345717248354101237373921582439340538332841906759318298385321267974857905986781740946321002432072663616614154421142674404257561181851004540415382388462374853275614469400169804642677154952792307321962540894113298011547875292943337685952263103604569838856069901457907724456014871240661547651666401508050998936834099727633879854484223676075343542608772498476008975764349488534484527021199684099680202740146237985713577983470795499029020624241947918308880556169084720347596735819002697154148062471211966103022111902083689055926036262207415925328984674357655848585312123186531609983687860834437937486305028774436350564451662191714785931021117003281089384134103376518895184391641956300321437413811936805537573799790470944504507715552684631961503817639363335899722453087124981776596324024889581977420873302365985880980223841073992088317512477584606567677959016957858467809465683768713158372088445850225322013192680640889347907817932466159348522707669374827712825945952696585200558895409842616749120853554124269165109824533093150864918342094570068169722598255068209740054920001495296366743508095683130394033605751778726843256665430622876083924887009589309417657881268400724625391175210193792734443693237250653830725225708347490995157843015859810587775591002552722069273663428307348918837586710384073664800851653531293654080016574528798984164383107006572154052933135248689355566946505967161582403160796709707114760240126395130346490981084377733046493582250917614647795228716289824142709560126593430470698466727950005822080414119461235820155150201711917041361094856119063336714773340504551744605670404873658461600541548949448830316334717407363581998933805099612368684624076704142170679420223395324442633604278891737401156923581480361564027494921944316127760429473550893406796420296957370026710806869747223374049963276624014292169036808134247164547754818820326178557178416296414039999077235773351550851799771197698057952866584547170279506209620476213584350111231763459543537595237787504507555365252941854667067666512865536910697734470377746804282075758846026280848446453077445588350125976523356985451727823413273561009016651612077232038561760438668162392327690252708467881973363748271016168940495677772544931823101438244800067366461178452411415404423606821345726871701672910519824773979849302798639438420619506212798687764006193724095577680028807691161420092846040454628355503913476321643299046117757005773717013554722652943454440399278118587787794799071075178021858307750581429742305566588888508105922066749020143713655666818811929143904737130956645210646325252990982576058028029147591937474008586857951211292365710042481561744073187250892374399636900135315263357934216866245978305579036814383326412213180838693145929191806609505858509503146136007332088035312249268783709950618417041960525682765729380548960789479513781578244428482888068936663082361841036531814352400958997748146489259646659949912396970144941507658402424786680957992350312204341656868640966871310858982910321279399838295508522838745394086051455132440874096637442658111788705801027620330249199785213438710763601756836987423111469413676553305495837836136580498103126228037312314274624110732980076948235994094517641239317206470302461005771490160671898418562714464764486293084329055769036841103280739979991542665253792989962269107983955846608763718840225778127118602523845454018571839464004151198826168612901489312898765238992045782555012642524370731849151630815589537840533468573020872572683711512881870239439303140317699841077592472170852662678875072121394293525864077139749488112806140571043368492525752439903304433185435936237634514919039347693273001416254272415858961552808641856805751934349668010269731459152860078139816772083679886454148577641822293703669143452350944152855277862853396456405405393762133528530033843173398660518747874453881679984104497109200376531161957341496580622014661304441786688939868960698338262939564830093231750991194233361365865263644897574286246500511011386057527061964218300493318396492766715436662856434994236959007607511031021140734335967813931980313921179381328108291697053350890025561071880755175476425310056368843271303798536393699783121216589255957066468792658047494634322538709662026497742277387671730711548896558423060502132496198662946355890075155785088011675774374786012777089643138164545364459958628333076392109111721970876290586163779091569531594900560602966355110147946351761136326341973595315769163965538675624999743298064017370606124301752161151218543671581537528366763737625562872305563627150633363787754585226916036976106247102103130742456536724239646801959169214749715851875731526417429143414583101383301343713801653059233430189721641185219962295929635588793272079968976266865989176561071171380119777844489190093295211777204327618260039500062042503945869874937994740088722701046661097361247011637867294032546216450673600629188979600262923593456998203988958125807556756460332907511711330763897556653084172530000716596732290723381559680759897841625955471208370100428397528975777758209222139615166692038684675551683920807031970575558867166653779915707491283005189150328139594289123938811940974653023694198626142307508104268026427151704631914496708978560149410753847954347227304275437517899598521647177046419699308885174067006568751787792322975446692404149975823782045239582583893321818204696255926785147056580402110581963864558360106392874269160048716167893965597586549030560313245544819316484279377855878189027407226533704793321524988593534869937243310528045616023242748937352151843143572635436456914627077484420000593761413374253636902787711356991537080458631942811759643522120126773628536884633701968270292085527879678678235018994538777440936996962493490546611920155004064557837676895661960314300044300523822909728622843894364253224391437111682116597760411998728311841614079502230598124078150237806530127963943949657844359236712956528051487403609757300968612422103104757760727575050455952741640124533429368170077008596410353111140757575373559670294129091279590065177672484943768580244577035611545860196939434577369235517082049191713535230684976053241195526958901634263971553883720567277920629500864615057098608504781946465663649799293612037157611040467560595339294875704032392686327142429079939388446780070635729504231204034055568506517128967605778977713923064715044635484857659768183337193581119199202942357441245427841771158159255951057209536068351656673435098037180450465622841237541396956220857560147912316815707833878741090477752238975508826046123633953927340683681376962646174419970072787021837174445647027243194399034016351283030602206215997502471404822676825000560649980578122921632570678142474647429481133641356741851184197331954638374508322221397815148196848932025327428229189246629649827225505985803206225318435993089059726321998652331604431061914336592062419113628729988506858636984798483068143795684989097677393402275253895245235365972256734992907430962025914197080170903404428531987100248918599105067963348422032551210597151647732171298227895092292412790965353731453495457237668181418520566147533644628054052012082214676059454867960661212705080706629414741976663444015674522651517057220073176797622393479481156667697264659951057842350595139359312351559613938224359139486802555920807093210636586785343001908508425697615677816524995956294858989560076373616268805314287067461584478468058306388013624751669717163563022885978956886776922400185375251976968058380068817523127569422552109770281087314532156599757710044820469224896714451517139688320937221320647376699273652858749105664471022378431130033344611340203251307462677730164031790102636023255453492012350321288632299217435664819518184077790437967297875171796532153999334506863783384947321738237975012600017878606690514631052195688402518352004986155656232904373861431124529870895549318424176313412583241177527920330730068790892567312729056543439452897453363835939966450212819779114716720532403455651377767865143573480768027150814001514873359756133965645443468435329339570101134566678940568564878164607121619877711238802083156931402109799926794922516272900247082072260398325710272113689618290743489375848565968489464594972107778128628518916300634070570241301270162621707755699619831216369213199693796975202869543053545769759532367114705599513069979164204448452542638462100668942428718080577072810534640166771077451901738006298262146824447048203138960495858473780160180334889058186312210112449694577893212514478036473823335257832935448063569981956913719807844480851849504456879881052916076884048506972253544412916293066442401065785901125700530567962532042730735755158548087641047285560456319470454874165819588840631233766184584131773118104725606039618817671841433146147344517832406548034336253996197807307243698166836376632143523644082551235339108824882913032318809186892640810740332689955984514825714157348895667802122468089381344831392542725546951282120513238498953725204829344003802813495299105992374643448670068147777367760840527845043581711325406642976317118783467774605029764480347250310896071945179648385396871582687757219558295883791771126351886200792392963148495620789919303584744415740227873819308879610824369825065891383427960960240656327273061119060147782612937013827992096152243661077651397798797855417383382757047842959161150408500281783049345725828017392038775303527246898311249015015093347679871201603903710934696523860195369137563491383612007610959933501387262550823041078925545464652468681889419569332247186000871289957268909734604648916831493648301712302692090123352599412182696962166380396938263513084904024142334604998184625452435582924641357526506253682228634477740831831638876448223474214325740527112054312159375377763086392361009229697660145813669156215270320438064169195656596597923530856021437805111407163958409821759378557970883999736579350454990405225433712393749971677209490099351611909818545180837302831509191709933245203608206228799486041786235543717206328338122227626774061969003167361474997505896927251624844959551219651464846198227994208126616940143265872629821564584729110290429877025682684923888784630536415968182492205403058821793559684124193918428393712385548176804216410136109256729965004328696156931832955126442290221245263938817916942919089510817851876656700427961951033856072650102025820169007176102452368852411256350508788122009288139151556994328589651206801159568441183661124505201731378687768801756298465351678495145213813644674643673596805347755696943851164288676478887715112498238795303896405519444133142257253024767003667808529397529129264706486214608134148125234291183162475572272566479802222986327547388780164929030952596202947309534620416181982407607625798025146970679653818341811619412129996587075673477738247480119970121820606736037692443228493369033876743169583801313601213570915774171148083576507187274344697371116411185437977534241413253961871603591487029227840968693136968299575305853178398042383158312462878009323301111416815037619389454525383901204625951054833235367796940926212987322733420364931967972907340011004909172775587655223082846609768167113772622995086078286085074042288495910215332490765751694664470615449888704482690053422973692613122004300595443379544379397870339641561978733413424512361565516503933396708584766903017223044373832207654826337513010640186690863536815029808276942605244135142295559298346440367400527853465434258063351943150381615541225662956371802436877422446311240547292323435002378246938224597463946340801479054784404522517319284520593500313612510817996372384997400153733507385760080830974091695399002079859108650851630610024433342246722383205116103943113047710057779780356855796384866692219299243984587021779203673118315046413019456612782705804457581583862576048193403899444926454223237143120324329837896599154378981992358338433245580869010699051445461854486436926422330215246008107772947770147142777431197432585844818064943715063390842232598298671576418369625791617908612586138842762344106560907254880589413977419894563265021076601527462320503551582227877291357525968206467701719435974766404484455295545184776616721101138620339330731295872799954680124880851239339352294631767411242036085663940534206831728540952140801539075449467797371381490100465922048031797296072744093464760823619420432004683296897347430388592371815987802805260586233488386035027129098606686972535045218764090282498846280025243483032223146532273621763233995503680779543916963787662043322701914994831987159299329960646577718758312038568301443594852170479232875481133605299606336633729141787127433286613761373328786857039031580220252309009196656831937375766652975686212688555595219802814132046917191843372140066174176160063337201194312585578981926686633090912355473986525500198546658803904397063633726316391920445932699674550823509585565449735180559580373206956529781819411617035103261039582370307381877846206452599091548909968919958621211741986436567814903628387990651175762551138316647825403240472547700918235458622088720519851895702666299387628736769105382739513403913868863244223947511010800728005513456492521057125570821815929635836284723599413201477025040739064952503562595855568025339187053490285511537593981418506250774917626393336428920681771282644658642246203495654856610119692631619123451995441609251344130266879184243264071130807850163145701235517025883775659895588628180730884949402268069790701302363756483606413921514633363514942020726717619417243516491544890316846077855394534198840094556628025940768869218491239909793832592723763949097416904814585088796583662408955233524548393016088593194433850012596427607715395689694018961197025697564664006196716417171152653222652587164841741827918058612026130970049179080909418208303332992188730757367554058801018661861333427112935375278194067073543494134277963500095765933989764381146309068982927656757084278347824171137520901515112556138050305405430698358512687827319642420507276990818932645654255302682315531687864322915406063448175523172831613636981455239487705547821747289072359903223320857722045926021742327117717418919972232624728604669434145331397345743705991436722728136544418824574412883438847603793475971230748782692687625075871870037781401136073877564113259933098706173733037574689155247482979160191828631171980830512294716094603788609247938793275205904788189926340267136545759666333680426358749832090076930037076707103487723306926022682086391644788412372903966756432757283670185518021522073136461244478759438133779858295314402983542996258551029676770751379836421553966998340683050484161703422263166641905535538193847273831380115144362236725854256834559048614791898718637755118688704945539964288650824860801588771719274995002174754045827741108402606570414211607189213219788959449279699530442961979820107598860471760230821063550199230106457914551643151469502046851648030138045333824944645179302961641261451602101283911959189617213170515626854274414012368091075787743330669444556079086717577019870203535848900427294335268769149791858274016047472476693936394667979720195035550704874087140533572712682295535701744156715582436425527870983511023457987736682801375035085694817276116373323373849009114383780688228080112431412956648671892729781414122443800965092710631236021980267200732192299051560467540213144493178443321457666258263143197003215907788099136754280257053112305644428327267249630294696397213187790468935443270121795451244576316931407398181353849555700022606269246090772901251916423796839336306311064159211920161740062489565207199831599548467235408682965256362698501747168758339518656334991053950414620657342013485752585053545226175227606882102521007014284798172446790474344604393992629738966450574019003597285100707842410687038458878716402511594495694472976673303316243277357478623271362575901479518472883772919319852169377469507108078411373768427283199117673082417591160543716697191582815188209948192477258080301341231195758560432183943388789981992119754676529003837012082974076407266395296702580764790013960892796285820944031125406536768932356333921713666573404422496702154677431691547924487744062031625209860175982094539207951730646643561791164247913964498175351240528322171773778690501049221300504320028888660165246435094619409591626851572725227000060599505966309288492574246313346927106523313333970232017096129223899883296397937583398175957445436710040524839691081729455245790444235491355508517513415599526145126418618087720913276672286911031693179184521973888042609019705754893359843576437944535220137801693644017689322153556968318224626771999750522950545967039808460551176843267547473210186566854485134545205071283996970559158537473722310152587158510134685041095572330797746827313644950766487873227363853063305821029540509531026003232180408684060481583409178406763577503973945630260520267172484681625317244888863947172747876052243148260532310327980562967294254722180659299779619902651760797162931299242166744353875789541924679565960030498156072250063135013403099382258571897778120969403452958537666802973485035840521589042681596194015617227629936949692362594432435689866555619192915778407741879550078878351998770041847585600260996066230611072190381819478191173964043301910399282047541921649036009139121135095264773748507153615648680923864003529519794963248705846366927089861324081334206728771188351901556215942678852086718341529965601887078948746063116047698297184645591509357476092155815075068313139871240139726237113548900726729245096198024762006129972783569755059700427334561333350830140559420911979899584250365201504439998713543034336092507040170233187099456970634828624024628645304414996531056226465416548505471410730289503111285176508106077077000480599364121555267235718173178374833399578873297314597158467826649958185926884212061041693554971595004679058882074167731386171549854763410230182227429714465308922145083948104459303120786131607790664729534125591798210789301240794401685827220955689443804875732683164027476891620828177740343688754319340737788219473083063337623877369229181842223056334207855342945896225982611915286216101678382075769627124114974163951095404599764033067540668249895121517768376199711566368613890356945040211682827868176997827176880909123607926991237086930363001029517207321722311243058217878691811482648297183598286007773145386734912688096457905919754990593946589379880600724021582470356661528656941939848460649062030786456912500975034634634157570172087840320092038939417371603141500275698590335100723591821411797914803959558798843275750073262335165578201368738794272782933000538139931442417761196018746456440682837248754484978215706664055692502261279539215061910986378227064389166113448585792193033496351851741896796559381525312728808695199364685091184605962236043461616640306172978799271162134750125458499766399521738946409320175969069452535438528159906851194324538532078894652686642567514684580358933401344990708235392116470891011095675049598920179981934466932638732672498287123835013048444779272985915809941270755739359023719036266821809417502196949961571698189493924691890705820992680587358326595917187187956595649337988786365606304735956449773674271157566328879909667445547313351682568856438003583709298531915478215252887459509262353139294490714221939120779477978962450827039551212243182834336107836050116088400297515427983781836980044906623500146644014525615878457609919153253361724424911105706607104561291964200682821198605181606752251346663183486113484613241806399669692193810616465424408149565167939006563199056601872295800186066960326828377667155133890548397521750009315966683327681881763582443564683074754975369954322166046655374514710899095455273228766983471689254878565146074650549710710210258362350842710440948503867018346421840349326552380988933256390893306837811929796538046778522440936580644338683474361920235099464852605170741462991204933720528287814707244576897018716352978365763274492598463612981746917809690256271525723446230477503069561004700304837035266692212896725299238334005180516727752436439399043918284294093396893098059391080538158552194686787526650061249821178850472825233817386634891050219258001224120485743898254569306558685646461089910863042044962564030662466139432332183160543915091216764948050162783353496711978527977560814087556922009568193228052875158111886130966667985782129747883380974368001827292519203139595753917267599506680847882139732440225777380762072781309608987713075545197717352203777799911242733336718467567549488536573976293492134060964414152516268091388321779385222215309252704103694098954097824137500618113386285734046199060335971524677240719622726737424276915859833664546508861112645053649082863903167637788591723455376120060970892282424952895537561131724042567164027189214906112796627455841026429620595641543869401724667153136705603372725647070196524544162565680942076626894510864929041794580608873890033629809286760184259948437435352701960485485576104395153797773691399015398508107439505603472023502489480870527040691636959502660918742761783609421558253836526582631952258012487957353439284169639481959599019007791080665831845648279346519016997602280599752396024542257427179282412536520580850706286126597141825206894164832511383781820236346624737272650699049714832212178049073500885096654464586255883473935540914882234270345700708147282243156013433639356439707334029146091785614108427369540149241707843956831114287174549381041486407336365260413599082753851606953246834381401730064134468431768130018573956113688111154163333947258355137349774982250072746344718951393867706453710381178250875809984303785063049596812462506410832655740463212704458237903470309126076936453185703800120505596864495975373309737417008689005626979775159088590509998081828575586553747235326155286206962436358733572072754273461236591250894136363385081481060806885519934477320722905118000951416694649465788349176487563107255949456168007421684362641510744882552455125481938020814096098862942304541713847896180446895158204666948223771804597788381883730106208519408622104617585887930190921111851308435376152645840480865577474410417725108216476564243819143535915296891979957299221023242258302848078659959326800202027761371444355464588816033881005032694308875873314483332988094991701618851186522811834218887548280966014998726257275647891639766721952206025503589991682462074672591352842780853177454787364817610783332659603155662989059878855845566558739973335266344689272943366247786565310057598184386707784917931455936442394787851427786574509905584643548999403967326667058668039771266387649734965447889765493453965862117891827562920246148865304717836602797122462784802278973624939978736660618657349442017344502719640651556048189823404073218528711735737301181741861372872021683153334447619351545772921809066159537223820666222509456362438228653379329848246726353879421152306544655582524552933297263841451226035493536764033281218281415469891559829084664993740021371782122633901151631330293739699156521490197236688039525762048490028393737526966562332403731678767768254022980652563084544475486746007325081488469578441623100469629973077741966937479173166791201007532505074426043090490114632101366103760988249445710039771494835372560478098612942101256472562193933861493510559094002421259090688427046879916582351073937688076302424958388723654387100057073900060264336386074542488316145996223039858296762095691624622057752157213787751947994298032143632702468946896071456509105285672398424606370714445623542893424664977916758444926230555839460266171430086429978539816138548777826167703037701129613176546648316376320752271130255923345583634517669255785327257343721395916403538458196506607859176114302649427532368945711027812786531859024154673271353504117275193710409622780457110052885184627196258327043432467604060484868247652813737903272529729558078097715981553831420446276520070699041785300013982739877750181152809231288998672228815561894418244915953689000557498560730487021469510677245987186386420340683485359662543202471397598796056127034390165416735183224720335606093256643636125736261883673573496014793648428815293179458560541802982897532953544106893735380981101085346590584265576906303781113740029100773133854057563407720327950533423770818667320873810031598360960978061086126932077524825039017264061947071635433661815411241229632584761010018987343042498424700308239618663216086726068967333618663760177838263054464976891171928972886470178831273526533239269314229807825868176789215194392533198664080815034314425369436046373733341944561455408472999548407433768781299741868382315783849327717027565977503468359690016197305422394494764158115080873654834968281504326354469158841552422052465191440348172105694711579622533469047330713788446701828960033816857744999203293220692956341361199976335911564387278161035197331020192536621868585145864838156744118561872763390973673109235726566320715687336308738569135684951045019646366264121732052902709718394695604305936299504913402132377989846800873113028805224564648199469231992614225926142593183106965086050093731602850725808109139352610593365824813696444420302506321949165713260614154835602598392303005369139724513227459947231038218071791527329460804521201745757109828811797759527459588053848665730194217593877103162703564223003593371233428369270554805465650344079653715685940397763462540258232368112142024534542050241742731605866110101952526748889938812187685837817218207328777815282059718824505689887900291107205723985536928288088824180835283369098907634783321118892598731460480246487357791565479697641034623391440564615913762033272005192802634920820345232824317184542376269223959205926540655010898606405003500615327534758681739039775279074635995966905412641882992980842542917489959741177912454967688014869203431585358929091818703701211395630387256594220489564108950707052695580996001793793409492515274956500976218028218464151727715158093687660821888103902789018671763990232907734971190531236405236692222833364426084440704857363288260593291237875915590703045956502179987727358641816802862779228802323055164956529574102790275339719141893352233854312899852529025161879698045289167651253673733111973423014990344986042886391115237254869230316547284443051048244134922017376379443637165752647709764024073405874053422410214552287884863459182656911439189696819734999525231021905917353636158220206256310448385180896985625402895691695490600044031675948104610367802598318725605199556083847166101544535807677595893702159027760468603028697716983538628537582410341693892279858955859962666374239528723826982041210855006453601894061108057781671642651262821258276209631575873581060812886289316987846177536009787210726183276280787720801936551765775977426538301341910542938633011959857558238664326127355016806997017964628023628589591881345260981230472168342284481994025624891200604615802367752911833838299079097790187589557988829575243237521501953601017551447396125997202296690499543290480614391386254698469020088480929710624262619615173907171123317305999819638977197577299483792518548716985548071302296918298735113804681141105121262820388309592752231627665241496879764537006435406947735351259836466994646902209688280313647365990206809269522894064676975145997297185717294319398911225123194295374614270331888653578216662301167533890877850490433924921868994269764427168145155493687971568236294203962523921764351343399962401956534505999274875073744162640888892764930116070498810116364911861943370350664620891422091334760923325992838752911087509068595465260491287138167676929267642154007281334202697326966127058761597031713681155669222416259684228674119195765454251020606693107387106165439926622174849019454129526767363466826289087207273487821954378511019544163021948066460794263211038427677798134614321930661820793265550300912254797541322621079791851944166229518238796406378996650979417842772610762939970383721386079473535039185959213641607854420235542821157585969577836485108757488562471373453000799646752434655988252546471742178069211521824079749109833398232962488013372193939598992832486762818293699300238486958860397026419097670877402729059206710682918963785889532679201184484816391666881540066854365905918630503351560297475667591547456978463325005501718275468495934655794687513229930762687579043432735851773187214191556899785893294790201226588036495749703955865681386556393009409244081101129604835076414780433071016264496788473637410931114253946533172763219032247009988276741858820853895369909741291159006138876557273840354972803715507347547830923601123375494920697213211425604344815314162138617459906525566105925688483312360096325943721981590942410575978290846540292184575189663870488586251942944658405380803783139999026539488064167009912045088338285776676151777565418068853315002330170124738088981271392366713405706855302280424381003744091240958429351604889473867882266621501479431718486404095323006416661874141171872735904819727326980618522241175936186027813442912230506545747361140314638093964398316169231982223183348313555499618778969440780627861604088378479488800043225893279671928969482391616108759925938695850802635134061433683530811330292422747716911393803806030828852832580857001442930808877676995745597984183964738801469256248946285764358482141303285954638157656227974791304460471716300775529112892601702612596199640171112634568432857801526706207811488224856329181020182173916496347632040378738655537670974635471333564809732466696698511003427837174485795408713098008470376475304469469179620705077177801482941529627385555147038652160432796207185090993397750684244642520184688806563200166559703136346494481255616531954530336492157393540145641369741024557669078538748033416370406021642044911740165755597386198372532321641026535294697086601457667386011713248559831162851954783686651126497047465296352611311359258390487932167890309233493857034850571495164070553737721017300224812366189534278169120869187886729213083535191620477096796741148946678298235352997608891877713162177080345908367620336093154598141582706501386670373510168941880706161547548472452638162450073331234822283284585586011828873307602888491906170180911152923418385902028152420750323506593446426723104930729181249024110432263762755184224994134237878594057679059771341811831101471807777527849080306831566845626417430287593532408941551973475918926043435561260234179818246373422107369456574808977874913003765645582810477111382110873949952309323927214892757957418213446012488912994805612381310459404247043681977376877595676427710481556495407056658883207575733471802312569281138780679055560878430009232320200986745708414230983735785340990659631746875606059937836299835543669615876380643930709282657233817653500519193487444132832444733882979862942362325557814560680962336287222335876995116670400072771410226555851375157227921556043218880688781118792330825636400930696891811817789350070623757543373145263651128805085548724387382414791646908787004848043609088809105750850091122518272977605459538416382853886668559451074062538140931365075313839510494155269690450724064310690189615999229429758750284865971286790493110005125683010199348194910858552132869916202212460038728081760033262936559803653520984919305119495876791882922877973916580460219100216770227115651152797571730834218236037326584463927425417815884304986103834919877160414871988693932497147279819001811216018647311338073724193936263775858600251285178891193190296927543910882102312553609230067934811962457044552705598084313582793294546636522942305136167622255937996515581249466701999905986054332084700462819260981623781665065093054902362216947034789899078873208276637017754376255131238161383926787342457721306589323305989798866624246302256981191646212165037321904147845645283159150741153147958536063308583294354897147567988972594902763141647666088858247801347675847565567307246950172082636956745499794900772062533744536095673914755579522537742146057734661296924962905906613188748142103705152270357353544139041837179356143335811612874501113000347143807307118577963860659882559723705504200150894602951188163268794633600113863185283548648909071072517389169132918821730762628506863929696136628782898865721560435715135891685378624505004828372538724730574231580015463674997674591375581225771413290739917390056564658786212602372250365703185007281490006662400948760046582529501556027684928442838434021870017244999778163166476930176719343721621956894104522294492757260802543418952688992395688634424172386442714150249517666816926931259640331678879324266093592778166862061482043489652964733502425882906238580996900542371961400884573771243098297283636630778609855971523391220937820628191169831882729036223994983179117296676502545592700147632715269694678324387357396600410440051845695660700346478980850420692033320219468017953474511362635460880327579388282211690727464728139100109424779067611306129560329952232797093197563793952073632258737325936292136862549631171888494225025344299900937162713068593944245198474459050487954662470167277996366164276026819655318116242008142810731315784338954181928311301312645864829571704426367554815224113039931541244422858269602964013226222225217315618135377446921222676410464332862234462973138803521220373213503089719088754073072232282578368653908890425167827156992353260583549342356821010790267244880036382390579979827067024013728635375021256661601486723085408454845163175677720609467881661019754727508246788687522028905254994434511179933894782618562484207068044899214688624952739047216474799862549390589331065667816563262835283959879030661897926456409612014831499838695508089636768206942952049709716627136058145253430214957389354193635330572307668960809200045243809025372618749862604180487207637159335538491230878549082280103799027166868442925001958214014305343725615930367626493286450176870081458075611267653918613675859338721742389894318798553784844677691781066352785856393226886347683002291740365818460148903188795258622715895978702717599983926968143003146815698642244239207378778800868269088930120432200973550077031649676853168436290892360365827021267625972895538137590074612777690555127679428708160821225482516164240313249093069393300720560559357683067882577185610999437499075957806708836318548767025443666227440922550003594330174968000836052367061650615468183762515061448412552394039727370762881691959318527623234113491081457721876789638484828498940850640275673562945626950323697798558201280858263866683404885728719400017730405317989151299970408856620125704758468050777764219169861583439293970338713439087872677517801216596860244046563899918075207699799328892913689137606564421082548420575239196502776730447356664587653824305405889946948399609230094695746826481671133602206446467412573601058185586898622874208291873161474066996810739801970467039129201252381201920570020115077398603136605793203575072575780532013623481819059541303508259862807051707470958314710031894854375227933441328389477174359541047865676690378725671271082698395590860990099520068542176843986137342112420768973906828123405250092793921636482896369457502811849706552389304246722780907144048847384800518312609924932601724998927917944005730463565260225297097228676876185821723202273813704705822312150890609599098062545254231857459625065885417270652511688046559845879704845189159703686699981371226001768100438093402452095397512287867283108416959549760611225310013765658099980745902339988462057808873313240187848880423660141882342918413031318344136183163133635888651137593679641305020150554300377984821785498807049254409325206910528576065427393665259595802339307483717549840753271407762599981286739701401141916956174622745207601963204564880569938645909976019683114201559746828132962330235019813246879549050789278597465414145512794907208322667686966131027337451232557749096584140508610996113868148910402336243433176061399525039620377747225011459028183135257215954792197261788492093197193832494140007134097674129651848532231885043357960009529787162895570508747098212627924573422012768666266242003844019723717433903497347365684097801025812769121316593526863396176280180752199357432341266191988090049637571791898380097842566188465570822953560487679478307105874280488289832368291276793277633070374705292975652947391552668759023801823094231806197032527511935568937020978619289469831094988335010643335593498752749608698211284221841393804811186457208928698598833673192440747379302932827534897286288633692681565940723973968621038896910391572745971117949925584923098783008801190514193716135549684972391866288389029348273511266638290090423454120533901029945462608368183766827737038662420269873902928208450681523027148104738044336754720964013352403676112881270020530928962503579394201416094491165447903088664309059477604760020552068073155169200273855110634032786590276013487482376956508600391976380268430110220573017400919836775624965805314325908857866842119780857558968188043685693752405260809955693551731691107852350240987256281354634004097598475217159142670333317144910509896747309873535589448375581850863208031029759825235183013010396455936844439058602363237184754452077384091533394801512805882347014299441306511625341930434260215926996574376761568588785921716406998150260811043665655345364628330816559220594404879082581184853042577305546052383547832046219275505663509729750422104663049186942428196838680801381865617362621798035967782239466096606149320636762064156896112321237417477892210542721293854771542999434213848489830079823831061967370477612916480765979887930059673305459637918245777764578547460917905453741257857992579885213397740023366830081267185609718270007064846519652323688635855670171421527590183561632873345002491871312069568482900937618919475693182709779934870422959982208680304924727141357843522153861219046623553594754802794772097894604772751958615318888730135973860766203849487322883894928539457567012195719304250704297116229644069329136450567921078968309585042531049140358112070529183957318909218943748399039002918571110165141955020326324073098814282228172897942062964190941258854167512977243402485351818661749189208722014795707626374172562341594551877531254812037469854968855990625758035122471973937113887852453812573196467125671808595308851177356442971266890523226393689398917476692590032448424369939035728475490937946717348575240750938656833610934271674298666994658220066116549093902295206098770749035774152658711631707211226516922006345388723890697166174661433574098687666474040384351879097547193879287876123104031262847690572782234983512415320255396392284953185551725275711365992977798718588782986312693835020293115869840035109166509458068205633515720303765954914724424252161398156221726117739183899952802354295417383454969912476102255332568785521498021960744215805876510765075250714028836862146281280429302738670600500904354986417473700258796399304990796954985474354630648068215451178154556649577365345568370017535845825826422499815478038985053248008161211928687566788467956096508101331368284298347328407439613272030183329926088807497528223450316349467389817390214575173555447023478405061559666931614538359122894006894176579856499660373434799475785757683507564352142721359576900640534954065876751325527026394981056648463943015260441091774624393332437600265310696866671967047361326420660409702159414792595134850936441627262080186939663289072654504813576483856816665805847712560511687067261597018230374430582571985196673030547470101491508091123594732425823704781413504859046596726602165423302361409794593698009433164635367826845882346497039318558495240931281573156346732634502791573268670044508665301633370261310043649236615050249699195874233649722886650931119041371890655073891760111027110260070670905036781860228474792027456840047245676972081410029681887466853462539740969026605235730839020504200264348322696771486793816178396631491820074153538922438361952230663603031627977673743424335513986232457395502956350032499795217041112884330572871982820098811627014790583783725967352429385018235703527210031734436604494638956570525870462193540054570266642410516911249503134271611523960946784307715210701669438641345458214925502176844698276904969254636944034718635803387551846918724108205180290643214658078260659679026957645322852313201917984606770700869296926464529088033810762062956814653575670493911379031665537866290762741528580623286345104780499946422258351086229520640861842085676410184934960003274856629002516651719920735160042305392240551974245329478603534109928936883569386556487487949781402233647767665779819958240730815156603679115477417332868970408350548421572206490257372298671199701511133738842420339511826622073651385009395041286976945978980367729900540688675628462362923163144335988173477737153158220059001096750133391100605349778099351961708999018159532813361060715274851447169962347434835258496111995399008588947040149309770218216025434331829020559098739441932798916126742072164585191510458640814542677334822035405354799318123769182752801752011600636215219142139972599877736822890784115545473744325526203761673590138446455149892395953353478245673392439890566271135274869834719140335539661333532998391255296385909166719823277333815010453873490801053937280051566470173419632907594599061456361274545593674675301943975210066356241417783960581639572865274219384932039507501488835551486141741776837259205490834283287609648907128064321521440213103343159972476431071855076663126689108766924944555257936891597590185672412164515804974931500947315542110682805463504641654628696617037296649581216246398376326261621080349449762893069544001914451500897681416319275249573592993612213867760800973916051739531326665487654291460711736153184637785431120129835367713794079732181080191841539209226546881733625274930080953449134482520425663951909747338978324540887402592464566302325795898508158066945112828665298330616185749063681528423568224659775633711498936417099379566080789510680516259161784890057461998839434050975096820113371211704845535340450877332060314778854874581044777868206608894516273028060575052202463577200093151400374611060726788426552357288273178824313101184328540530530913844299615155697011543950382548698738209215752790729256556209301590869683738287811816281111545471585458538819063850443699663596720956967565962236098183043624267806417705206799607125941114245085734351825821137775450846073150572847214635020497252722652472859540097347172665504301261615877637447250311928443404217610757793703922984626613932084401135708246533751429028279346641608106737787175582360515292650501269084804433211839968858859747173960208014655882523083182408674312960544393285465647943085472649632778738181552909741713582302171741905767128337158724709947373764256867562441142977553179602429051331876866746123981544104212828330820986315012153003017476400544303385872573080287409317100080836120068481407756716159346101687526331032961350339942045759027054908618082299643008140191870486007460441275246831534172112646059193266334516878117065621435641909042267812314827355047154790740752724630833975803983761112341877388271817189840158527828708362629486092086054833679054913678790852688680165243089345394597576547572563346106736507357532348880323526171236278943827024006499024428705389219271051689317729723690520880381608247124969714817507563932410815076565842447841003430179952424300174656828390819946931118242285406026835040679184582860440750395693130453207725784480361561836634282670357422335610295996948516700363344426648873622408157435016059718065991316118200192163204219605341966121021282379858394436080151540267849617276684454494329264466443377202340487035084824904111394797647939612664369560145982324730544959537202732371466648940764561673046935931791013967924254144090284820810531070407127487282986745576709724310087797307537666227661582296903131343145034058360466678529353280808682142873663559712200376817236740075473542702348813761609179026913425584207316871467145058422843583061136726439677845402434338176635829719014590934626559094043889549378760739550792128747080389786634311088169292591283935758030985459754265412607678856282426930043746358140851523801183724670697612455295629919034647026331283098204444620077173007914833357606510559613471332823032025101361183248100964041249715660562106742485205255632413989987854846206009278212743515687372385014916514431811845563250922410315128895613969745695340114321348004355920844096085629523680274782648091439311404701410613837295736513446961890281309852908805425749359922044389357262146666341256668083451307977705910585593573777400604212415824193891496613771066853021509282282116320139962658115945799879808671306295005668738211164818054332792601121617171007297394834624174223875204520237524903191520210110071108182180895959191046840764413332116241945336581416133513729351698159258620667968991962851185748664836908236832272482934660612926392616335549055816376320111437264324154434389448335658414226299885294975267040945950859939717245391778540803977733099940517367453393609295170971745971409850438055760375716465444691041824796685337317544704699066456136965172290704899108160320460432507965518337562626971098586236646944208226429980538284776776535670286397161686730651703772852368384540123573417265299336976553115638325433464760894745637915748240217585457766733852174326655650135211351720398698666962288673966768444284262936388714453151697108019538278808180978529993823746948403330572486322366055483491476405973788040798461076035793016630902185047959437252359333834194194133685276727343124543210135663936625953551674461577254243203225947686424713196444430823256905227936368007534507701898001004267930503872168837906627657037536643116243117293739745273848716709840790699637781486652242271601392142025343242707947364728470436851571399649599446929525721299042251315460507123011630890765800271477248983280862310633609027973210833352007180396238313853317236287395768141033151679477317642308697621381180979548517697166447000803742586250853504908317999615173819322129296470640921239624092579318116798792976152010747172573687517919609304799549395412243292268552815092368896711406332468823593514958907084546779971272109980333996259732726061556752627928407250431262708911837578147386199151732711920948943756577036587860890391284953673609968720982421838986270182178725445863561386549677838547463241477940082907911745903637094807249542506013336700060213628119062083581394466277284255924156949152051846676832204416284066865900365836519750161836612137183631769486485510849025489274368467438873452847359155564069544554459053499161940724496849548120438037498403700019029132674605113279589843969927249380863492262431857383714408253913170966096148018018402100863408373527985470643870776991868663139959378826631907023584434460261008912663055187664635377948358953811120381806857071131371079147518122909525296484571206727364373090468272939958547842722629570401762030829443069527112543924200748419951704694974790721129225696912583300098073566925443690445085724945425846695423005527776063835041292797995734501641461880181770880616553681752428304078833008353456530030528856381934267802406428991917283776942504789987337958859259336085933531731475776752694853901942672544818683629317227505961451254237288456941598525330826491394686448570939419627773225505023845516511732786544363954444253153355413309709137618010295282627080075444625438063037518295291496509793595767331265551565554456224659227846174894669763510506220581043584113991167080149183065171978117773860334575028143594551618995335591610729577179552049512272826637185535209432614601136657028859963383139129431541884225032712194612582059730677533445986025045839256974883777827851789764181994154948577536845931570310968724002594258579842111111641318152089043092713456488491474616909334664317082353156930760794531766433442965101436156239783247674785815514632492747987338278306594716460837880837234031263288372915226893188883899647420880815129873400753458686775502443057520182664621092458893438480897886091689015070693998778403053229630679184761818518762844196419621174337228549251089487333717077983298324272041023408113388504208350631314300014402679951946999341762102346242601568992211454670348629459531979628836450482486684215503161549253295984189298186909819396434357618073379246400666433408484824198339439179653883351137939900929198245020529865395504898883542574395222042052805324476944730361254776942199704406510224261783432765664512653838600062921172918087951751872299436228739075410749292510281275048531447738680219821186554280904764378267308314168175330037879178815239795210598120051898533115073277692834973122934656937941348237132110967325125234731813492519376458306893112342412954967688439150306523090627526626840613906509235473296870998315718577298279344051366000226749810603464318846882699624685835702572783218358325746877770595796377489405379363595115638779655099238042270020494886652435319119472392942374159917737036756030786032746446884383967017412001850473477534821736646601189865541794130727495862417180373901053287783964639129399873728527752726224431601136226949784727873492660495541332524018009230492278301674760589686367996379135529612887530563063593923238061643267830271807586170699893979046245720553786190269571748031953145993168455582493170286856107880979542878813383397192445305181366253607158449800519021882479948850255027581358126206055941018317892618912956509984349531731024479468493062087109662995157963518634238924278396692628824148037486736521440055358186435324612082694096744205051672300518962108477996885788320941012318368870484602339826158391397417824568855980100176093619603792015807135612036687239357092864022336575714645915101810330868985807067024062224439416371742513959179308112967043305820042560716478169495591722166926495292790362583523099439982625756171475294986476591269433343741886762452266986206508810489887052935439020767965586665620467628589283646939869596707331275360151306852842579957756519794079573761475405354698190964393848061215690396826979810107816750257477194191578730156794443659802374937315531368479544311702196731664229974173278489939995212299599199024637253372430128708325457975119109896306284056525815946903379887973616646838834184528648153646720010751050129007409425980248149952014800251303208487205439724496106570274424624049733278011561006649096121039660173321640158202441679933633591154750366840950808828779338222969050986011050302636977934904756557652279626907749168851445727279516631276455507929912692641148408404519954280485226493007424749727057281793520513757303561062145265323635453189672838706390517800967153605069897858973298812647050301975146480630970024324340787101291039954686299577358605127928380840798837448333024379617063946439574912765757896119108957268518431104247717776568524752036603242761101714451524565982231139876893496407019536733612820274755410993520733956157446215749382038877986899482996929980300274651224501075833068503911401022170665757522061012111537941797494303205960751028434824070570692508178936519957909117810810221775559191614390534365393700539477980411475996800716996782462211560835389253134904308753524396787849603268303027473662822032904555870152199706329575662852180175564649122806391207197992518375774835699606390484220752166731435901855765565793419258687812403689169075450323339425371385596427817536966966600960662447555062541552026730925582688273751005818978958696519327717074159854009387885727294346861988460273804252042545022213855690235001573698504892886460148684849599127845447090152438337665768198922160344320107182296374264361829186271823561584616297146253364514243775919344550359313945537548221691071903211838663730129183248910194219085845903231516068752928496645429510737352280975578941792102327878670177451671660067917454721555585294881054273917215388885987106939942433425457293791541114763128589629550687432706179929566284028226604259206980007944969486498728107341925842031290824399212251502018946162740455711266621654413306554669415448105322684581569034800736388298578458422289170335728448069713381403302007354735480925657817270921557294233762742323704172711318865169242736401288841923398811877705602091752823510647552024376789786696802298391410026923109402133747002674420369024660285654543619669688967424668846537405296915049803175169492859670286355768381930594675352061565928261933658385456939763639713175012690351891021364645060374995752948493563742958260853932309986827702362945220331603250351651766280038243207093981812854266646041297208878555230652436011705210006107388684201739313061187989397948904034027325341284018202213689212840431948865338810837633950086271230315953685491510639598008219575642538459923149031382144932896476216261809497384617521947977477683752869362902989058640960267673847668744161612311588051681794311014733255980922037767901292740174658618957355725358804482850001315576846478872494287262085612757249258118690941558495203388332429355117528067931635548217348538330633357782186013293892923626012066083671287487126852646659162912100226352528759438346715811386285337921658994882191256052804632923239372340520292698526184311549981035987736809586992106245567125551265482379427945326058207142623765669125603827824575751160962113745485334663784518188150744970291286824195179356240418896318984016385559315454554277280074231548290268180911226496125277932155030536094935113576740047072975472310998466551504511486426951532687206773979027837984502171003756744342780708620528066411904103739825279625431715185723493207759637772869718217804448949460524959221943840630969316544052728741748259189901489043248190078866020417733001837523492996073194247546892398899040416289245666080838964495668383123361968104194297874085160994753621899650953649318751881426475064062494592446852842744383065089549332400123994294053503812445579722270819811988517010125976969534911232201408589327291541993791267392547935905467940024989875682969816212950539751821476791901328178328887365501359064869073427019018643438295036292701457020825228106289395114765116764827618185587150471159758302832335723167247915517141013757459912946656824539140938298313813425258147896528393867069894438445627711870951810475530898324561714032012100337073437534286446485492959207077622549150404681859211854348404018891220266514684685928277834277622971113766244433093901531251796378637813260971444717097745187268330156935862142963912199865718279103738277339655340118591029760087267979705300791613565758702987500364189943811335825451741332213074743107268756900358267579839500566114026481005431161123187398224126822757519501670294740269088416398643787159017043910369659927810490787813443884046583079807206536055099355011231973874776691414374676522722748788886012641632898353216030958817920088546314725050721335966934312911219945257651851151457606392909033111326680345721170009334311913114099442796969861547711179452995051296595194966819251422413733749859602106929111163019652635507140899825696413643080586794066170229506247054346742452931160656494571343205623762980535605891934573935597579274734973700453761908521767317831790212835541373765833541585391323059524404955018350403098060722120903702811609754040389551600307924980304502475852253519213918501742777754952342647780566722668472528123631787625781079765254420114620697915103814120947000762820281273446847346592571649761997820661892753937949054933281656065494526133967202275981045765655392979718075486135174435673066446382781610616655029494047553077483955719424268524277116245665077629364167237678564782594539950442899746564264061155711702970105639453081377495607109619609153407324190937999292711408801080939779729793496155031879232799702211193047162841478920369124312314426799638588422727448133962526510316031418915795456019482324302921534978554578090013031304125862510065827558058847333692507214762115027463662761633963772254791480918165777536896454050715280792111377834673420037010469101464453199007434139742157953796026214910752287873982401775624594158893930773923887962313491121909580420325661793149418190544354422726903349035888111808389240148103383385137818315115400857597003364074414305157163344752422972533770557806442022114742274856977742427958653545222106225873252175371207188017100533623213695742837002621168400783965171357283358834970727908141149884720021944568540941059059482077013179778515211330138994394217843366490497003288705474752437483635601428312909901670624618829274566799875945154754973230754375531122179008025140378364772918624788818644934429176645262726478418137506333206942405262392777154268236172691557449497711226627141366056677831677781084498957149846510765435425384920197662238890208969525947067680542415581378619938112710924541292077392452805769720815496783197355855565392964048286736756555602947232232094575637535750664211654777797166711008966633051104466675206410233734519873048939773083984872906173894152098940721495770775397256624283295637010548731476794202436972712793320818717779786911921963940454168631425504269853257515487693715603624711390247422197880021018470368397977019922444832555551750758906946267546513858118250067775393617476368577559293933875721304980999930616074603999812618266777495324393121969894194692784378555597844995195175153794145462262346377350632521561855963458153528930987042975114686129676690398248048563314050825197376048809207937943408567880405527497337870876853575011574929146671196423032348259469391654881106657480735143005379807672580466644916276796621650488054743612953600148424387904863894854093786032208479530807552581602690851279581224164738993714516085901226932514966210455717517503949857619424435793076724366223162032760168505695807417328872545430982485561823248809061236728500341357560187480520494445908123737376921806175880785841719827666701438797537474816055359005237438373744360469114769326590034341948602231184213358604176502223099022915153614713764290615141615310770973580619089309917577349460447995448445899751857057011517429636068370894546838790594259193455343027843825318405923166046586560055150472380212490691563513313555879210899728092108997142306156628758298464765367718391141357760483724263106588704991720284498632273177994581301588511893912250309158228696849847866167446781895458183911055475523758333775216885736445200999444001193971624157259352644785314566567105811526314512398506413496211311653744802932029646484638803495488584754997399364653254789349786474228910772079928916922086607684180563816724196533747505445234444008863553540581033439107064056535474923115648354248605577691600549285626736397815834426025852330941915664429604167355417218410438690126850091394265941867331583756358785788602839082169474208577456645709416810316764666041989761440492400693440738971793589990481784456645698382557333792219518813807705681718637687918796926491175685605152801455777119738667148738743623916586435378393398511150394041334680706791555302654736022791705876151114955129750128456489159995981982770711011864478785011503978359680250679248550530588851936850931001492556793489338466188317676422011625603624119063264109430251119497811999532560106266650078032998389213937864488959169815355398548217011689934396321171765020332674139577061880937893082235130130146054368333113729292815894577906713012721263331053552633096978057865188471029199940964098047211874887393152614613602043870439166585172929964317452945599490074337414890370726613522950996008754547966801594347685306982046561725376957627658524795449362010197004131668887037938423913673716561304171191207602797431483616485636419511246716404398274214001950350597979216441666935537686446418728420751814481451340910349358933922931723511836539189392592065440206671227129025514994923307153573138215326029986298083942856760091064718475856878145755935244166158658604867513681576332886659353364600242448704348515463745715845020205601505711162847552184173116019087633287806721056248412972829625191338529517898824493414548168439524208359493812155657173224177156895052664436831511395355795837273705693495599805672637093720286209993033113051087593766285836392515902148036417467488613739057752131655158843716855018003646942436678438844209247807116569197357119365483457388503933044413186728305769187427015840851234751224970671054280958593454866567288726295006235764390083796076363789238515827672666939085951830682408618681217239277238378433534459683289700220691772922813849032091271474893261988999865478105290737391837879944031364681183780554802601432454386696943634901355085044197425357983892360368373633983766683167801913540960130705949672273570349490925618832601500406144137125156284158392680627408247767150464006809475497650951022522867931890811397758748082906739688101538406657583027317573628662296321809835789739447026196263793208079363993768686873929379029389622783794595055384544262393687493793973823072827445695853173371538600801138472764391003868651250000867199160979547610890705161823175620872880297889386086813467305998776285382707092031618357381889294969031500221760884297877634358884321749212982514737460854081360917624995576846581903398413366513482208384169278891157631593485505779571060612011084910541349225785753972732662015302322730229510215993432715416269595760076467969411763325952086615532901599821659739641336188648930484158730365464476670457893059104052721490773655823794097638900022293629106755400266795893875240862729218262059217401289257276075691879076464555453122213788489413097852760586704605366878816537315023380114049255274902184548407439889891491891569321752733221550546023273875771041839529530159608289648515837040815434930821081472991716430719244223430379909329804132301255479532112123808700822659575313826180578367527978437158155021676065298230974415439167131264882346408692994277192236936185338558078061450774616336190568167051501906671634379929076094893404412909157601368891997563389691607776772438634818761828585714470645887799623057917345546550749372480392205674075357755514654648101086614018961533918710198094998562467354868452778251419959468606738936881495584042439113533116648501217954613322875835906221283605855739214159619340855030875581071804696781234315686403858325150428253364527878912563085656816943520902871738333826741657132128275535535951384597783860583814832050953748937089231902281145193741832156373291276640874013963707480790295581943256578210713960301587140463034829300838352674452391777085745316974402773067466624261988338215736134693338525169983446320842101850407049363254271933238135769739818589768521960018607557305552701386110351291066853230265758605656387418406810487001678505940285400975682251887091015082914596972951590118663062914628307682266316996796225511600169906298340192390447366486001734489605023090737270918750662063630824801413726817603185205525333897300647122870056077498275229771162236557682127296664628978670879019009714343072388001475976514819479756610312769037265623567631484032127316855267943058094447104173633419588337744660468661909812411764921558568749055113922759513236216803367838619920246674895793222478010106891337797406950543236491946737080312087560909046384113147952505960456360078867722270529694316651963850531383883993918304990720820154229680313048722962833164670267765816749868025590955925402354125412250915566276777422988000729613064073276725963123960321103847657497828559295193336704848777952800170777466186614701315378380059144248229438501183573409746296286878376639267828612655453871189826055276183126694592756837293001071826878184036708869307750194291631932639149934964858210281880556432024530461378864805527260048127835567986260864969285027064521852998870594207137822468814434488130715756807476554288739214384200320602359284086711924632613128786618968914281615702708732923464156437246971754653770088797756203291058529470094150142857602492425871077322450681040373834148656911573538530027792309630669495808460122517491012634575898111755891153755567164611238074764100028764008196184926503000898962116871802914950022300051406290712838264639863879496910124502404692952538742206187280965208267903471806108753848280355070193677021017668989275792669038534994661950460384031041463830598430337672931089752102399413119727828830759710157764524749505987119114125701512474904206123415127158191367842296539500067691631636787328454868706706235910922125839144634603535262687296075712161433376199294029780088113673308742828264706503798666766903408510477485219200975514752113731022561148581206596998553170285700061085139497243329213277581622538200266875755407888981215011916228725553734420428867112782475219098611482655151567143872351560335847464461177167192817455429433909113435925237427977030304709738918905362774712768500495376485727816489010231648324564575683438667441203329362607131844312479693134608400727248452400912631772406853124049402900202078348033703103684182367381226456650880681613973671373219497333460756147917218854300177319159689482679130982912015427111874379316390589214492651763696017086129912410375043170431925250499124490670169996685967749822639751135808195590191631086956973497542886161949451066734644243083911460937397146923484749347428734813597088010590499493463383013069050696217827187659187778570393641555887314783104739852886208746275033794770247810097852864762521443958795654832938666098801921258408021420660109753752143104776746322693951029904064232636929062467347371696687416801883101920295857813311026130482610822626850076456710497265446129747476039566076987623380305871408830243685872731807011030648871434112351756612640312563319516220676083656335673891384401495428673142192059780831341216706975713170004369637082153657984116679991330496433852367731289681645158612131589618338142817562107345826829194109768739135574810446403359295664705782551584123546012723358791303874239214596502069961124085100996872924517000955332813854956907930882885277819151729964794263865820319121057473927599071014252201747291587332687229084949404114328183683351515127338213825972463181436351029537229524150036696395409351341881436786574753731112771454277239092790530372096811352120960287571529571645596887343969796122512533866984541637934507328392550528803942363177555530472551513967101775376414000059893425951598073693890031445210434073684871089546061458939107316020420689995605221593618291144668857399363445951040025351924831677566239233554933941744862409373777766005540536855495526295422059698812277167789583088062859576601095339335705635018366259803598501222569437603254730371966210622796901666624652659025999450537416428116579795594662835171336619415213204299186420107303800737257682906705637413224657810732675417361327475982278895503338234886785087129456812137949596924201460189508542020370159554207937127635296136472003486451273631976317699492305865719614153129438563258046018627597747158227813871099248064846937422181502477736576686616826774013100724529405071138524652951167614933500105304586375132093079754176036744242415089297841972682323773697396870493290885950058627275152159112372990835805127931368005307336947739717430304175520336876362490924267509392163549418860029977850212736533714051360977110471538489184896005379855616855446566890416010440638152640196604331730746124561918374299614216221229268674190856810390614305912907228521389146875153052958056056797822437543846435421818808563388574523478920077397217230657309334333802262694116497818361059163901819520794359019958053972891003466457490222033330493194310913607839345363500236480008910310781871963515921806239120498615872571867664329360760738675611618250024076951553438709338262896143413376258426942001168685803770326188729973059305911462028342452554157120983843032165770047219500849915261186126320367285393303659376641374193565425443356731871492147788642996686163183044459275836763977459900573451284524436127339544870025416173737545396759168348877465660159513630523222348018594524591896661254629038276549851765517592456319835581961561395275095177420305094842715384929996142930085403953603936282195510645015775515811997013262060428515782467596305428677844403394698394266688118433992878404012972027915885833088267525272106909118230112204585553673201520833477374796037864823602932464683623316818994675405832189843918390542828559109256975805423253353277474457722811854281252163456766078042309252020253043234425063249905482198073319659142050583487353606975781531497693540799675462587134702142255334506650515204171594149834597900068331505181764677490035521522564105451165317289038954645371757923070423631906557382071770781975237067636431258948856400826771098622066624583436630426757438667978805196179305722747227849033533620380428401029703037452660258730019775288585641198285223577217063434527071458626594884741293518489689837124749308899505477670228348933441336162453085762018643432219776180473537283443741140365608681673992310308211782713369863626070455958092647829414945475086893769846264784115230288773171579661236919254386223825232248220653027618092082044820456838897026662367797280065825477245804706823795964600827278718301156462497452618851584419297765850633585129434143261339324360558671568216226638655799160978303744737658472056145601367012619444391383836344762391274053534849133251840192522305891348760839300722873983223303188540398350379163341266153328045338161188410263378132312615257009898645381878206484687497382130732733114164127736256005487860916937696584389085708129191804445612709284418687895346569482614413707223830957857179159565915777647235842227621461150136286415151377671782461014269199958435327023067099353321593417977534945700610275020173533214812854085056011071940155337072526819485115614001855211563022395286806375585363003112119811364643884980408246500958648922268010920930553692339215251237857717326845914426695067016559728696981020191949147674601512475474387939909829202596702673314105150971968863097579512964612083344849909917072329045371750671991806711762145507565989776961196292227491274337844784292685158642656530244443207637495707025542003772289664250559648885314968442342792544539162246722076994096181997871445386374782020638544033083797377955342586895648968913341185283852154159277601324310190067515509808508032596289338060680460637805168989828194052597847226385092659824395698295830261483458567473747997565720258950555882291444741982298469538385662243917994061062638533753589947828531121830695319517752675087649365902455594738125606268665017417150817608344821170673559907862666078470668345843867617817055501641843178782063652544631155666046603029895211549337422746526224997708008868573464012036026838609988725507410793370350669188593659786259488223403075725978723060431284446926357584959003769091870571315250605483040730927801286442614695149785007192121466343809522780753319039212929051281245616175040699889087814412362087165987935766270152758265760754678446018506995386996959686938615037033120337451233708016725744372777465016796004305562530122486347613874789441866708894241564977642415895864195760377537159185404843332507329511967290567160072495698308982644714013838933030342391631872101850822952202391585004188155106045296116036723021466052900142123607390550686399572491060372555991793896764072458144327728789581039909042477649689797509479721981408289025843659413834274685695634533244831604802220281043662631615654388256575939732564105057066039814525667992562070697841485251581003227259147091983602232309388173772837176242042745145689202701680888240592664396921104497150249389814573574154153423861593445410148332273302350479160194080749751203728221098454273217738275929208918241577690843363757672738944144726442619964454912665892117746153855808724616809781834520004597674255867495319709132223078107192346894692140745040801587837036418247204153549910588807527801234250673456652549049436097970950455741121664368059912569373156017045879009089156405775835746103985454646572983492452768764936086875885233485338450527956685561555391740797263377040209270746469329598465637806450238442139089549494088903537524658426344506573262881185344203384737826355422794397364942768362119235005173804522826429765069299850512769149596702031201933256543236308897560031170113946935146149465378983742147427726208160467293915492110504647175131907975949518284496986464896776561218172267489526010131729095805066967573168470292611280671691604080532061759785361641425620390441843183011882689724955916259822162862161075475692659071637542244283720853531405900975897996298929746400620147685706217185547651752819566884367971822048666011320906037960403549811754915796480886246080790496784797816986437116936940017558398144482740541925513525963582337978982301954175144915676883631659818846911806741618619861945050985729818638310576326687930489964624182173153636828576241380880229064549980680319277262693462616562032445561195257501884216523271724458934834964978896348742109093045296220155684094302287647595809765155413162981017979363498119854337238857218909975600283472566011586957421116322419652867289471663368691677259210423184921253219965101867902238936858670105339225186866134690285464269031764321337526080930739570164068202688573290670068803689873467411972457084152707064192052260311262120557698142770049468536603895785953395245641041362955229158488214179626257280018169576240648441523506988294583720584752133037669955169716336418806922333954108852076028702719163267668559868303738233654610518414892571364106033620486886525466511258880144034260934207988410031631938810546789643680171290772094904139041308671531244151623160448359535630215174254811421934157320903567709525490546166743938736991436010011196679760032267813535479389811138943096710008081506907742170113165933587636679625200620699548369165062572071732634313258274591227652179173079241044269061107094037417249494718698723062457861462956592490720097486811334449897566085502572704893987819224004664051730095113659434877895512618584865863986127250762542201368969757268083918560959277896039924954258137150255065120811727397080289062421993522036676500714547793500711648115908609723679737354042954709772280558096450967765703550511435917135799043438368858239011154624307536726504791245725360706444334249792910374111182387502482451400553571832310585729493319285889747600381582164736103595535350395813733760916718047179460531902448333421274213648509288426935657601563016588526159529773593081159924962693087663154565146680420168673670706073679971814731740701749763368060223704722269980717526126946007294813688641650200319449088189364458987919927601726388227563452719194482764381152073623211616201323450910793944612740925216488226122762073580355073890073997675716662183109163259683793472286918509489718936775668975001106418962880198825218701527273676468779962745319080579846614310032503912833749044951522992373608586905491165768422028389686609549237574637774232354949605918601127557466202212592258956713190549473851556915271312508076548455300641152715135460387946496180189412805507114442189234394495869460095250925656951911998572965826204670166609551031208989885761801975268310587358207613340468745506080678568822122410786115445314324908555357447586512077385802408024569474723327043958327387294794817655994754822399014684235420165224504082984165155190706109979163862155269450830085493504880376448671028023764976778505238524216546049829765829075444924350924807407449548038364191116966730366367180845310260780072011219159643691073723002475923948668680690974579896235682690213732159587499147670568616268589796641291721662991930931532157081003049853591183379730845556875286381215462296617249586291930111111786349280504472515771535454409935897539709792871647586149586257717199942017953217743281861153224849800012458230298546071168691823955890050222307021236429929513195172430435945138124983726317672249912912565665108714350014884038058961680624321915737510912668575059567503601822573398333985584297689989890843404856011739795697072480006570508543091267905644073056398513200591736551699181103630463430394887612784381073798926101058705782502339265877973601202245541144030052855874703920665066399886078742168265254381472952564415841510277615723797813903632208122785404433884543985785564178373989086599341239846146894514704383935120484555378494589051863940077933786132108265679669616798547937426850239824834274733615034125294125841791618263604781636445867992877286167182528208589006082494462813222611002537694114225728717501343625861302319859707435200372431806836252059351545390022056461326014501923674351028754432174925964084813511691101986107864929225577675806703444389967308385493625099146324140633971008007423697757302268400017639588541562444574510995028133614444622006723792360799260832532801441252939322440003001226838317686975999117407742883732560186986958400149102356987901345078837364396876105371107817359130782877959854104067129532505943779793395928877418485640240837287203180118731941567609758067923204732617434290308278445504844059377053503823620205296133465850551504654971301624487727592530343655053921048945159764298803020330332874298864755952902505285039592666822834306778086146087229119144773909992017223105275939049492137378281039507270916563039576932060886317690101548489356543776135577354852013691220903555381750954456359607516532061235012904909535677421403124042965476102989287609838485725851449580348620363661097007412865355337867249586489268988420410255755764422758959550448596497512391100932453075930607186494654006182371371717955639512709622570087694346360041778978694134928461580433552136117065405059597305773120298696837382615799098822982132362341581302502941583826423927571923540411055010255752030120973584432332437210706661951083755207157404151563958629688301067038893855360082164161825198586611898021649093059405328332389471763365549113884922250302441495403752291911839522976509677582379878631145802865186605060369910824735599737543455645753202066810528551799025704394272713969398031145068726024105330074631978135467485470972703209237832491810526225063007508996421846860351616360534666983432376502104935849334527319117553151050651693546401028788774798150376120592392490090492015457104858196251961889182753916365235644048397377263883037461211296350215430815968077422387919718767587848109737570259855689579438810994128656218580352730180442113682241911672089296146821338357382370975481883213240224878560616419994149856116415716153934050033693283984376903036206666258811157705864930725139970245512479797630704341224075610600911876563809915161141473097261656209129528288060659422800773273553856509284136166130763422994202316300802481167356509046141749347042199229745349351566107492187637975551486048483157876904703467473964714870112404554331941460333980797876702272360977987414378958910505164105199559351986952851863544321330450337068594283578571786727495602784497684411976569365651940484458350110953728894702117875542722662080250722977049153676726845590744398513855871118064122208291638389976931860374844645232942106408560079855489839151502148275866341151203288571378391232012009371819194757699200555091200893847983436700369438154007488125037272678741310460277055554551525030653994860993744079152940142295061476698756733711516765490694471087280337688761636873378471821214078159935877053980448145779005352755664294463908556411476271040959915236647698440188102828589199277353858113020079899992659816159959716004636598177284337316814386411978122765541008065747998101523602092790125816690092952977889792523957134660046103096592452812439445157654546433946545223807819282012080769917991115291563984117439636525292534675503097086499837877121090570557639843918026884294973842088408968021911999459690368888638069784303069474651630313089739928804356780762871124994652531042469075130611423248901134140231933333075908690007876693365134800033845210119569954866685324633603408892184998990277733422009226683393149576610836843337742017935710645433031033980687307730229264397515505506032106632616697547527469748596217055683751069313678794785006487292471775896123212453696988207418067829106698486399440352571130250650535439902504609636015234877943190262768357737767603535423909609740197886147711392560118523714894284840975251177429931432812140965040001865333142095799366686191041720154976307046449134015625002534375810058323960268505730446760672410337499684881338117796612872138590732132346826476161814189492253903523329377900719446943652704325679470958133027200665171013780517204212049154141619503469409618682410168358389044849431619106612585634340244961030464834050068950616582002654070096326675240629566192994778305706024626911042440885063400583393498890303290269031105322746997770098790955844929664585701386047043878314665547264663942655402717402438689174769154715232135177901029588974935313292403398618351591574232771906254780294723142522824412335737323712360610673899465462998114419353339600517668266206886017289433081017769229354311417252744287230355189687137171733982901505114301528777985715732067041893505649304435660995601456815858808143514258652377365602446342417227715725348093087155998995308016755081486499145283108419210632263642386008646459834688803545222181598818252148675400056612774278868680044272664410438455837769058282533211018124109811170086644890324944435519429919207489197171172755951511701887870575868189173555811799932559716404467428880653003114006600006624677445790456931184992479514337106171828243320572057715566370301038112996449378462213306784627687339141336344300843799470410503511504619974970140962702344742786610552013499164314187406539574132093136828044820308459257680675441694156847103178500709214107920639647030930858672643544414282189541067737693202867576339569047350668866040437277606054004184271695369973231038558614289444221450245326544868378311041279565623879597310200992577793636262469291434797131542627685039709148420850413874180391135917632031937147421359269553579329534037846577004991061728201682259743682883337499140642176719449370093973103308019655294126654799152866676097849639290077336242223818551396601368969023398292727557417563403020990344315167401207771724816886983125553184037691257996737809477967841194003922394782527534399450208268214572776914062076907162596269007237088055491195633203252747308420660976864154287222014900384454936660702179543492710843733489694682495852010172535091891765262932202848834406518261605682102909503768468325343188507096331419289990916065718756564804752828103365245785235209064216254666123980002771445768500157301083461516039372450994764553181325595931919083969159202143848122295082612703681644727218065343980400398600978142249941856511848817615584553526443009233440096856781698389698488145285433765243274665157260607331577924151708149145291008436584080866022689231996844865707869458697562562193827335866542262057061358636868886713238895234959392582249816521514503993255334714641001979489513709906864038425529263128506239880180334436728581484815523280421503254391685618323776098745892595198209019535045736836686871933256216338228777472219707659064520319073561533477546676408290883235873907007437813071527736139075377034374716386376095401904122645360451839879075487418688491550019126072079292320929169351228111169791982804748067832408368614586462204310005367043279347888692678793077321468035621411918258110979510577623255356969047486716463538022016579712204008822793380971838956018997075404572627530554572562212929316639176453810665427695199836596494005708118603490010097571049417963368625510495352597162322541032208476538758952933568349490883039985885601518191402018150555179879350644513185425430299247097134308048474275862768524690869081066398901977752304865617808504822934701218377672197183096115926423909585040788477584901927990144535089065050715748600590415068467565055234203403044945703227700994126243716066304213058433590634329605419572337876749470019665755240480578300200357834754473128008257660257186139537918315530654287245164726215778494676308279588566263160104117474709728555563153296081427802621633204189378763481038985072828387333395271203142485109031871992034757138683826841318209177828033075947571932277381381726639001351331557068937602311079295428988298851407252167056000561779626789589579642129056645925897338327221658073948169644986682357298912195257102420864005250318917383539340868390280463416162334660644298624671539338012203811386262626096232316327956564017543507810650807666984968385286509279017727847131231120123104087987302455113642091718545537545922909726141797003846085386204678787979541612339261788314138196802968386152603448733364307758846802840847289150237080015175470027836410984095146105040751413947945607598736505581040798467942447149687341179930931847363089799991191052498147020268668356563871137574100530032178609301368892959183351866900802596485293403967049861840915266303917234006517993015612875537896807783225425292219806244950823541415228796507711016673642287272235309338753793889631274887905061549650815333466786443489855896931180321959278304380591710596444362608753194680504244658189733344350568573339802664348972466070567097329155080959700382662171556142664783321095327647527475713341802401519286176701827475359645185600529188087468078654025853621010011615419664657693535578567700888059723977627766725595993621226386870370940873409273209333397330242929225671944167289515128058997733567410561990634315386529005577843680066669769228551125578042814855197669787250549616894622345267402586142374211155933453978933982400525549906506832084481656242678662006706438993899295594010351409452150064295690208533257485669545908025412184999968127033434633692689634649601508027134398262351879942380135330533516214074992909830076712782285911827239422509810934063532211061380901429707215663055146947065009973719800096753722653291741014933531902475500655878203061588717867538237578120724487324860919785960148619287609648113228104486130010655100139694648402884453112778255995390573251125043805235746103180999522172318415183555034398087606488261438542051323199268376273751637390667000362223722378983064079463788238587921690173991237153977606849091213364352064045813017091569528654619355413874393453903923911635281987099364495594707679556835365756936225914636192683244708702330721932425133362264582632036959156065236430573305207697739117447796612114430701994054673525804524636291966463564518389604519096089374327707299623521670833507203146187628888565602588216020120679524230326542489990020396305219922216822957830006604000589681081180200897427911572004988215757764107132929372215617633646255591855523932919250764715325841394316757069902636856901381109930252976965751108830092471740243448820565054200009087285445861398043689810477627273412099568329109153047797255765667067883323646287184312465345525107857196216964837507397890015487500598554688245078399128366713698514005671238909109874402823525159318977809454477331472078601747456924347983215424276723850835327327746238782570232655601325537345216525301728709755173644446158172127917730985594197150019808543922497655054423152902547365785158079064907839912637699134232098595961148641319857837468594666746079626990245015930439597530411120849063635140324932727003943908648431491247812178992386496796436131656192719310625215269740370023028867219402156349930386984955779022983995502310677604405366621417412803806703803975374436608729595887033806635782930390330168170666066969658118554601750427136375549134336968878905701695944467242426060217668747991818810037436519472140346576889047765203626894669728058399143876799779901381235333751356634864705164267575471410724155601068186282526712676336455773651480183812043296032064831549491616728138925751963485682252326875686139907351084671243364310729361636024917090068222687156774189833961829781891511460504621139322431225086381638238718916194659648309509480100815158498143908837178205725389197955880576824425035989867143883091296631679999102973586491260765556497039661653285235350782614814443375987059055840486230609219430056246554895227733829104830021174144401426574563282516666007971280492676523705695543245039287531001503764460424471216439496115060906600930472281999691306616212148713581532705889520217218274037540889080435711202288396682467928952142055129423014838878537054847456326756577727924900628470140991913296838804631365145318747513968208216460651990024667790547585580914265859842675219505813490090103615000970106086417667309248453413736038277216637360253038265975771906680325405669833844139216326916386325880604427845223245621778576699374594610440843357331261803805547217489789811940914545307566669811441054946137668604592137644304471747619792493205443786478723464052829556834198122444957026332922200835928762124634429213939555729671619710934281931892317459687483924537079794370219486936340576635724181460899910131557510002672482030144890648452930290503908648865596972164644270392374777261527587179596490087672508880311631821237210953586663731699874803742162633559651746234971118199370345171727673218370595508970808981964220682878802869303801591441686113158112099941391026754007360731188064537721248063928154558569110617254128899231878757797338741134435755272064857137383128941417115505567726398408339701325898352106084682775007427688425836492369104747327201527871663493377534633504119862304843394977630111512308403809500532246200489727499549256709189901648788817551660909762078069398449719991984929030743523547852787892790882470067945748366427134165968211229316455995503587126441725264627563471948055794364820531709508016179004776010372842860250373549239230271869876664567316064332413270912004204797208585892210618874697864119703731601609263245579208852081044951659572410711741587414808443256569991635539383616336135135983999374178581631017143657771951636869168959092170955071013976217672940419405856751583409522571383252966644612601181365015389642621151216581100049546704082549819301542559121991781150477046831544980126971710080021092893693728091600908574761721659945117214704214454688031928822393552208325423263561969622197783684113947125268561964269259139423817683388260295358862844495834262976046874495633421336374474883517433939570215015184007379643351832137606782217075671954236069291903151480550047103073792938365849276894795350603187044727214563662267615459195095775133876556853865584690804194326038944228310014305378624400725984898127611132656110470342048122787198892836321085614375207976179589064508369499334939498170042651584366556453906332290163454930438892836842877537674107374917084026261279173204530878138801092535929975730191957777601548677739698493982065410650227703909883623238536614191704580631292660676217362206530574095544787624627524897728271027468265195252869669735423486233637250367140243104900938474350849968438018268196595399736371119111096616874394483246557338267151717657610462796980665635709385409781521261740231786140950484182324082952097813538131067131467424850151325227108587644362936708252260928605131411486415482522722691376137332224554827819948052333775670040833134257230853959808958737071103240284279522417323803981394013974553880180717834495881618178822256461721713653146158408692570981181132766348894793997597394131366642377063352708255874317712694338112334388180486563429536864302891555292906730148262383971326539609220086111894583586520823456352321536971668685840438748496624509162959139947250503082915188069477078722633874857739647380594994665121544292352604265468413939028440668649161981176453697357915584096789490962560332970559791996715123567404199244118210501591864923570460242410651015263273545838559372434351437420286073799428659652438372224966846061064455890593253587431364311771944794104034259758913261635522860384623508968377831807085983104777613993288900255283403873983247598544501102589238768437043319352708183183704307456322368706346850985416474379132917602595975429768092984650091495618694027853682511918645488205821836655664928705155041997153071061960880835104937547226633325950414953429997709894327889342119795346859097830298189916220177967671940298408885072221354466340354105843483445383976993497981449148600925281899053971604673514612797165236227124429786847213907732612750186761300518553946700349315977641596515648862984023025237111211621266171204984347396762365979396133357054113501031471086127791263549058689120009642073251583437069478890180847765295916753136388339811797984865664324573115725617985435203734825675025135454274147391203467298702749524784012294191623825905361043644579449499799165732300380695761649313294907649131905517964514597687654803695820198012661209902840082071532052913814633628197655750702120147423345752763821329726642907341041435387897632461322657203812883958851232897012566419864804205657191440798652295653440328142446680845883817584231973194022517809433086837184128114115432631227509496315215279576853718863833081941428003896783558055190765985893321793006890606365373976228253008273770380154778454994795114194918300208401037738264969816588880681772273007593223825346090823842495559681501063884794060605595814035608351316421555812016660135351044183623536994560804331631315350675229687748525754549192570373030875360680191940016569430432031968123549314581046588654453955924868548222762504123869427930025414284624992027495620531398309596066270610487990888568329138477274803143241125691921277433834176071989055778500550589665677535464413789760944624253364441124111510419484399799281663289829474458699886936891184974338015026321764841635066676261955606419022409683684121458340361976288205067646006756547194474756688768016540257279097920444929388108074936929251944742064790698034127210679529149871530293840324728584494594165261222140677651594103510544700881702949027956806170308339809098414898963966422190967884084792962602457161173219640389365848240445946152502585677556629128630418732911500425960453479444490552385734809943916226838651267337268979420657870704015420864924962057382423354655486487248779264939253657072419349833155674834329488108942094055221535708096200487210673568608281943050523762205361804923714856003895136383240038553733821183540350511701362947174226591245473300034354517647139856366956427081785323012212005797686435431175690718848859419101769741059003233102522770452664373106051714452790112599989189771942650817772098228722856496127919745333031102214734725306967104149045807206851755659475611121408518340561831540980683598667296663653512366190934634892159460671918013482775061654641574341264071075632198929530082637501159257092668183552287943250062431840130581941335698665654241697493057947824917675121712000125241185292988621775752877051202095379825696954269847070982915574013865252457818201702489837291913236257667343006758750731584989288404085754611210184415251111191374833792064498421690622188418628845283243566963522013645280009096985796230382267640182934247694345764966510622490295523485713792895224668089691400775281157221083793945565609661598828325920910349473606208192631017691270333130467342038419292019325771421078173090041574856974250547605310386737788841935345414550286127338217015318760079520260723367527100202846650845407836818449336794695356015470752756089009356263164076827550841941267743040813543288132300711950469109945004764783259990550268375143644130035311484812270870121709123215047111298734601446953924560345518342893747810860167879587012369022704461149909534420487967819367847087446855258621763937388535323539856711373919784342838367271713945286089648838588171886935753246980793131101141530020569427007509523863045224944698015665310259318093236814868476229018244433274249493052334140479660488641174222986597722631274521382373100022739599793663603760680038334432989935972723881130950989597509665766831107132334574431673931196018969942444464949864743183900417780309693600207675272049063587007441002446392986386387816169768402377868309383129607659642228653999528920118982076162531394946817175260047511158007453457162139244449393553204322739269140338738805729106552675926463467713459582829640708096178774223678256971533672526553097103105009948572550061980879420819747908367817369169529642220939547405510381638210858154848729074282364745525779435903339627854917278655429116406454530290800318894361058373923512466611415173451681901268758441921388000090360339949569196038938662603528207813361728381891904870775867756526356401467799921904203840343418865433579689624855353815508427487899814639691430325195988044753324873673440789917264967409672191063812537166180689651672801373766733548905905535043334959182681438300784862220792596237599184409196647416105313911548147650764653755536711557778129889038463448306087035990395019907778594872606671041291938791483056598884987139971858696460539032721586417980740619929840291975608443510095520712431006666892246151516707588776161946322397273139187461071089088191373165057411653857903631639734543471450928102382554646261962848258366904472964607028824817787630461611371571741007272633596389943585553467859360593784251953271885834107044007300439899556671129726021519695474574254408029006173173466829962913292695599425599265930456875249573977876998678744720136672198212492144492526550603127401895388738195293760968751301142553458730937635776541751521281928564963843303983526394994086429053733750062390181818086508229398298043873617539904585266455656412952861628241893776902048772997005560248617101573809481978750472915377361937149792996636705207036013440562984316210171184598235176351231022945244350227446155521084644818809086281368614999712859708796788261575099573440333643749186158813087796298584825649794745912707167669487532034774302489924724176023845951397361484166210973593056469563907359169462645764505405928454737610082871754972627396367372185614902148464118738505271040252056668459315646552953403565540205896611367543000188358174681939569269571469182671204634149435240734318215688496095620075309622559628146388699601101677208592332772269647414406958902190722690778339206521755787254122407607869618907364417346732891114214813379345524054856500840126861994459306535493627115220664942587981743302907928397944644739378253056038270435313367904247918543262978067884719572080474520835939407711545196001154293698577924949603239531697041693512949216585144269653084156302991043866729593724887220189056190261059368059443646148436422249011062966802157674206136770832412477547270751067481383662045395720194172222944628322993832401697523495762153126999283574075355982152221665283104764747596372849316544903758913193146314827764290244560184160339464574271960853654808396631815981463663023773194099561561279561786077163321770003319119463009634293802013555414073068257097700161225607074571561961865041657534988987761484201119535761150343257570639812395442139432353572347219810487475452577225677585059533352174581175871246441787422982720829976231883285473262315140071273040944596205382612141713210802983305864527619446292229423832041466779905615983842162478553569367533669290546779788227300105532932049387759277578944880028422070791421966145939739849719088163320838573895051889573957572096220661083799528672673396292325455590574634820744883701686893791952473750419566805162612078007890570177817894451132637703679039383210609718986763377322617064080713400020271565005897436170177425606456796289088854212499077007426831627865713846697550115803685196407568603142224499734110763343568566184985862472178300936085145121800285444482898923012513175462339766182045388270482950609823064833797377837375051588217656772439589198032505830459373060955301927055004470702385383230704970280293347589736391023770758960909276634250424251793941605340924388068599669175138603481049389267389524641755292571268418261736880201884189559032842168921451912243801159030839823046405665422634252645969166641273282093197937397294970635019834526523576154719915539619496787991343981460251013546271524327111140579430135756686175374486810949292851919297870573074326220651428281683763758410054370279387037293420152953892540324293301201902660363962401002086017395791440802855753557426718168149102774378218336500335982661966628846276598634581800636637218039634326344118703416750127661236364913576020346699856592096260717559034481152452574751143755161829315531681062001758438749401142899037759839890138063600321244513798357300281789052375336370180553595468246616293633900580972224776843266548479546788720404254883383117544485311471381364836110575292600064754372386191724157775066597288350986085196219778702854197975996994109716270504515477691058038393954173129534196850477491075770334377558956751120404668238305528018811043969658205535088829466141951023347893515038927437102688992403222380545372570158927331620568322856425256957467346271676441972806767563356720640915661591649748041049555685145737567873298940271377840256965026589606786111097478653054182383951811439108630723785954040923709186989311513641413472000669900919748578756834299687001483760812833513668883420204910086689186185339908777652528495397885293112153158209721574997874040370153794285363247447722009366210888621171746829833051824715496942169585358458950095972731126670111774463066475993572141544066281411908278762850350644771508347938547227431477754668251145881004812734165123833928671868313056424040624788795566995691936527752204858934135512146792261999254948145906328488591801582631538609816622539677183135806231942783818063084304331018697296957422512770516477876214920069080017041988386668458661170796964891507731154802863862266106327234959735245093077380989284723330153165750575906311323578135810624708338897825673798091001716524829746886456619402905384287366920359403018730504623826297029438616632878127204123308392975293101601992748356354290854985047249180396638318359067558739096664477048875735671935124374206266086966437949647262163950462714354525766854331031010184678445220193832584257721851589918729672204015054655855717486944070373327874570387645123544261906631602536546502898846988137090378976233431782798532120581459286322297213873386401851834291471531673655802808490335322789996348522018849591502422950623511906564041866248720675922647916251108723212986488233512716657807683310970375148791778796040279005850396498927039680295781797114753331766369843890761480535644448417998254953008320640465785423457399311614109751981482861745174559820150158156942895409917861862966005990883596957555911444742461485148546948861333282376764885393808065451894966743481254746048427279321178165303619511416191004002878571829590096333297902282775152898273278100907686801570300896381854594122773244527610059808159865081090304258271560663824839088951831678561132691011988757927362710580136949161121536477699698168426896125653288758063365818574492637752696497709971338597642804269858996582306967791593258760754119284544054812511367415617743633228841505511125935619603661796911822411964771828522509792456375498401902576175001558154052841547718158674812274071999971498030687270395693428016470951776908563492323426180138801107774800113415152281712450922872064165232075838896449763083187339038420008546093768105560756707163236882959594248382285592922907715934008688350421823398787036449605804578870336408701723019003190924379803821792030661526445919654624201506052290441309080909233211927676395774666820200080191270188955343820945635475806767587906849579130181765172324917575396893953190508771759263191551193890381500017643264822249275390875719910945440215881312981503588471655807692272247656133181388652541942977803357587339535046623472386585703705280639082656398087998671658076260977170333424454434645287688213284141674833138605978727035066384345772624382680752569175089502558074029401149191643590459082856584837614783989703678990236300980469159498299174134023534304461886956778047586417186476135574442128923306334569160265060163702334690564815548447084693200584776585870729999613163258404993179048370495991202559240591054390380401897367752127702269179652058299191276254517401392844030371033203512298464508517671654930291958238413377824931314266257953721237734491834096246726011444783166977533990256854049138850018216840619777625126938483125727950687002729702942891923860719639476151189690619518774400478130313057455518684352397596119008956088283686038605277582564547131723650311092757567904037512154347394772000970170301819861878065423226363949439382121285751654377707555370345692437133428794035417233418318400205577495782368433131459828524199272854338450538234866739826129345371766732229529081502033271853890993993258119145114154969261479570749152247058329790967266651732569768132316216598874415443058268615890909505877903170612484863442119887624449534550843027213742905329773899855035947407935294771096970827161402337759155733024461229127389660270221584795495460320868021576671713385715312765080871808409664497701358329944679160380573404962048684419580383931987377560442829603717783693818879722333578202607354973310724088496580703941364728721361734656668072072615790486742369309235869317702625760187985093258947365840512534410317593302774347834377362931507155209130923952971761748029039114450519859594292343222945559093125073180680226362445890441730625563425295829636213175585121547517890119545403270156903607457018231128637759000838469526648267610899423625046062111882821281234540552448433451907595195768191166047835823538891318347334046331673046269082800910286627756406553847700554512024660709201593683474648731223535166968918609084573870502915429192939122968838453417245414956058543752272572641869358656242173721379292532507962002421529722361569929228593076518823933384418570997382138913993392836111502435590912941725932239269525220244875414424717222184947617629991446392543747650807985696970794773484575665128499837457139472504386615949281422454779051004943466903107794996646530824583781046744361272796191900563834491113705222900909870671012857147205862608746399663103806661206184820910586499737768730169408957555437989787358677500865995682105786911795004149358517628074032324274487430501267599103856139068816320130654266420040183342750243564639820752018473741001510714850686264769024731784132158470113443967097633715413695977997792074157526775026954681664716167298835616247518147808097482222812943935100245014176399686387787208277044621950216216262291500092492243933988122893714289002286872587931610891805454820466981306600469372812652486268566092164745273232934482943714998420820550547809466816317062883485484521362080059926036242116307606169930449615528129440364438741138063117413570042959428490870045977570098853832846431975660835631467194547934178815602883818131485241098109572394562933840854885625933344736040794204120728427912929934248936992160431584742734999403644211938361390027824058836472371929489774818802078585144555667018032110425632981239931249501227382440455199204528613420406295142949450030462642779615363617814745895695356027412731749223987560210945687743893411659686689237203948551787984280739418837147007077670676985914126647741709093357141061783617230717864513946346184491914968964274074221499684538061547674096024456883524806107313693584718970778583837478934878063162608813131469085555520007707645413725363079585040920081192829835704033820389893271925043184978375783189226018297518793897655640916856460564527511135100460740015311423374333033002682896134863906195305551846660598985020944331212346457886858026883122396414780353490478892547513562906622635599504322783188629108551187712058100181411865727552597377512290244728525796560666050515789347707404335792994649907932500166305588197995493058839983226654312839981188458452711693681927470311219858923498697720499706519551390505526641505923442665445069767420088735541304147940855097252220480287174090135246061818486811338910670721352996417574591857625951743283882338515209663964275649375516890237782124282967588502703285552724843893703606239730337737733416877820772839687393738916293174977104337566475483381828278749408098939635537765285441407485855257902453944815513993938826820041392734150875722936177537470023567673876402525646945700183486861959521093919817905024171392450736275773042968481560481991897471402341616003401799543009351376278039409833318162148586536482063523508561263348020348267279208950431360454514381893281854060079008849437919923973261601329583564101247148039234869514905505672000359513803195407586016070919868110043844602431994698088188403670536274911841565284464214565662828892008286460202333608709462694514736924992113062312017161075485541675928784019459716217096214196881303460351276018574480015342501092616397847497753343080203511207514897006442431557127497841592502123196039122370468004784895698140691384089078893269472097461351111760777510446260782862393146290801002601677833021469929472906071169678765065981125733468177317494977678730491027837191796694577828753846532197563769641499377752832812465060962057969546421497444893279311141360654576020332832914250341162619882991589119470025617297359149794814941389566188072540779613260523494646325426573571781720448175143271815424087110564438894949066852127390128501032228088854044408953533685999183587805161863955600244372169070292638091608957736044967931489282517014697414873352227163941078732849205700734097291574273610868158273923590409150054458568325072774028864315101530077528758338026002977022419813664992953260472921048474001875686014120833089155510832978423014031315857005717835173865508168398816521445633142477550540814448856985283491257164966999461885887029302376554163181974576911226138457330315350705018533317574370867196124168874829002622626149274708243990921441453085315298241286066864204420383761971866206542148051345356068372307418841620472440363378394130880326479443909251633802286343150756982375192461760564187831341081506459060297316368925601463141260608749373988238244916525257976845678092472826946336072586488275011722851970485812925061126999250590105335570572552911807552002914683080149388087942557452571412330862266933485457419706178738315414674292363707898704418970205765320173097685883147103156618590452870294420329379452338192273556335868353125754503427442889893682261485023555218464075619150129239802588704030958618376712669819769532404376664770454481217350963490250897937738627714601029312905872970024752261609885451502357802253928641351030430584945217101066630618629066770936185068323073559177767733227048156132561281622723935609891290675295409668431999309762315245524425942501982782770602005993064047053839706903457654389666009431718434377354107024665682710346622038942263474055677274986853269768127938753758754816342479921216278905988995879893936069724418357483389641663933723764717879311203500355435268091236776104576823425591731961550476101720435663082997337143252442087329171511020237155367891218103498464965482457782199424371137621582780497979328241293221120288683353453168845641171233579181737130733876279102347574776688891094725047450711259589110084563303833218104344237916894973784508658586696235222195119205895747605345575064031543446008113796413341084132812821952154436577086305672501894957492453782010207235816398693817447192965211011442602278187474251970094465780193722641094654579714678160908619781842273844257177586018981166634304311031062737676215510370185736136503463573190842598172085619383841646296083313664149347855391945804367259055523238701398608174627314234399037577509930678602632069006694976647205332549462850093000176306992113243022388745603720597332637850004155404812127235279385277016992056772251803299158273151943058415863713940210805769143929119230441946303581165474486657989110804974368405336856763680997942093632474020127833019192397793562806660392471201868251272416958684849897407078562733504713345678884694348623891986136175448279078778199338815397317186768744511189796214711317960133683741506330017105657169585994159330130953478459211481816584761434020052167115277134231730807441465811224122160582162157054283109392688940776235619172404506898267549532345594378895093921031559315651675469160120954237731852720497090383460820827870635759225397849926260469956407083766386385269798817103899966091637815686708849883878659190509004307841115682521167408607578897655991567212654148377376690235511927640068471646694374864643025286910383057986584315193555067848832418778225731531508370994142064674702721143394973698075359989941001781388893767724356598003335873640866682067485228093176257013825459036284387650881329907985132443309015370811658752945043432812418905963120039870794475972529165711498448390672265136064034264104391007559371383273803236603612456285197795235004891260067176117588865483290495526967651451992869234007685681134751018837983251009804085635715532493018191251890932644503755172242597991568672870921056329205567240028232497681734218010424019227474156933475694559221979658979379215080149806625947402337815203502271536306980861144846538900829641505679431150859930738020592809127853718897831040981563348429464793980584829582897463679722071299317630244808497528566436101400240620973815072847607445291126628556255013467266922767624977789491109362893363618729023917617925753189139878887965544380251285134150392947222814050262013160515423413920059581569810683184876513237650126892387230533665216477908337200210449704755757011548614028447458851691500292586180294055919210740687931850716015597451914767700175700581598071394462040552402250269530036367788252990158601633426000493774265304983132555217033013998280710636420750932483460304047126407372499916528710851559831050911477030247383892553403803798370757762696694640483736283720347923894175952874167556997098275132144842697801210613502122600964197535365169415992771787724865860305201994743052335412258887240991868952533706512182679111062005637533128680414999039299520701145626327006348324800533195299065200900797932479378478511791961596104355109401728404137475917386633612266348806480687202260612569427371286091162751907350881003430511666317881506353188282407474136115410398170316547181291102823658311545190639888217623086431717034059005584820916236762927827558819480560611205612490639970907785878543079591739616230672223716853871918424574784591389342966692899626941450971144385547742151330018611866683297419564006478161755927485209993568902014404072922304100263249836142030838455155345708912783907433448377061137940717238689879221807254802223382304261156214334763739926315932051416595606252542732694488306110857971788616215591727027290510014521116734187473054096529623361169934317097399102420443380571666181101619689602704431847361169659386189210304972891296076338659732387092858929009690824056502282168699039974241579490643834355605583478836522627424044013092660375630267038426286327403201529111866915906719148179570493507533764413530993651990112831387016793008042953013437420899419945019897634817714391482134331444223067441506351775748660540445406104509008302636845840919700065212100466594621573097047152388046832230233560495818157167683925261757457736800770375063968423602694522799418753189216571125010975326624906086983189985669372708595446931212465499979095763998326861863686414553916751255557055980555621226749125622178637666800658476284991379550686945322450194566682372019233979688367436515879445293168426669771845597331351807840084452873404196467435073841735655998962119457843719257696863729187886552834675754671906517031999178819328624567124519603240746132290304101662779965187779637364612044621405237115408546690746875527273919386010497132927933097853654377064959515125533961794501767974668324122231895094080107475607015166040906720589748479475388383923802603830512436262148115837000028389730123232899538570520438388701199810550437455564191125499538331013618337249522662190498341643980645864426673169502905242703912286335714508657114530380997717160494302243955447287566778532388300589163969910475654862739718633494582838445456862014913360283474514904626538500237214418445874185122407462547586606371043071589676558146699673216685562864102822639300442098283755793891833373594996115251925298153083022023508415814185793086468064418967619428697387255776584428855424493317438458208721731535729896692233552129238884973367048669766320881806689665718218325252893071270262546818684670980119836617575610928960661552809423072198801478963877715158838794233109699232595746283800169837770683741163514930152112655664110763921127187270256256641633214492906963148999676354311987292936874861935249919366777211022666257155857299177123591328825507131105875906737530909116222462771553609088048945540496049448457892281028728275292960118200121973636896594714573530700479324800893260307460361122813204136412320875361312538403746598587534531109630713661908747948413641616045125129340220270440077021190643646664301621572249268510570682172292001344940503552472908769327881414439128338847028708323334946048792890369513045373234911916434024117484679952242145350604854975640058842195953027813213281676986372812139333464837340398808009652259904377260287334953443952941485951000064766445672320922240716929554837121238852556861505528034229632389515777704733278385312778089786372397396696132467259523220799431506748945859770181580238819071625842065495121849469939010478671470632238702078418171047987037188909208602028530244218040247665205070218474012835343263393805877640810671268044155419813578004898861561088882353459431158034412596744349071126417673674044965826687286307076182659549789331295408358826106251099216606039523565882231586070218352132933349086803713819828993912519241286918276401178640994567558640822301406282089661695144375984641766136229165488318722191956645061419196561586229390104352567696904960198954995933109060444720467732931972088756202406615648214273883569113740980033154100413112873669408982089686254222413700065437556866293513670831762752059483714957046281674712240211559740303318035239169604979404360155901577821785794159218352438185771066842789000189671182934401722857116057579113886386884283478949452291394021018695317579243530188822322623658548245186228397235872516878982695758443053090783842528531385578974222020513038924725087332506526671582991796426785792229083028439954688318881589189343975256032842569774076255942294104513592066056016535353130919765040057820301480950356171066760033523474793396614455389256209736918759667107642356306218920240530410014131016351881038395915657457635621433012073306130274029496973654868876576062656912394508482565112921705178484302795902735899342593890501550307228772461543662514990657488332198066352756278874056401640941168473406712852904454204344453039003309321852657999309051143671532385371320391598435794260814095028448664221835255759670736232410472656377931176510749276859860821580546941524399582880109176776775683430632991696849903386842030530717323533698372578934512949607133750005520220447328227783584451735509372572415819947871942144049909030386814343639338982480343027243067169026313951287368721738630461422641717037574756763831124258728665157361343015561491399471241123447784653426021036668587316744967297093422728943954296171751807932185832372649856238053590174055099838918270487095751454885524862476076118765616331423345979685930276818689377983542105623543582287700282926233852361654654989124471060555839602258882814089580792186846360231428208486423553535878322390165623536949296699144378329728841167756945617624521612342904692948422193784808397948729552996948898111010623814647605437541391016650286996428738004030582730679032994913630418799449752776385612020762124465702588464960653838551111347975092535956386225021088127978885884908827439127698518594275362157081036280927458863730826374599921778212305400302544524137955686876622798878917930855551737766780291891584117571363887291284755827505203984340101961097600851690858545623013010850787193961472447286990436423191443261955449635551191617707365518236742776197985935164151987063484144084996726568519362558561333509172190246678680159648602843779417926332037948163747743543199871113744378720028432835359641619245400565052947253855759012183940127908131954186123975692134613199831848726621424165621658005280790529925083161149266126780188452311272238030602208067240969820166382056911797544873250173655746877556184856872425058243281647419484216839464406522612445128374945730005707584371253536511215267617687776435701328909381540977189721148630148216488505994612269209646749166584716347164639643294241278458919146899175387216073020710823224789932121537683233056951866357649101640415671155846707183402169849558565719530132739730550385514483622492657371469207671068823295046154571160805580936905456001513055840442817971474292430213849933967136256567286861990320748800622761068179009730824539567136561624953292177569331058053661948504479094269688266186057298816057427923267128271096835996354530248074208562359937670394687591194948635476729392985113811068815208781565406189839873627682003535488878422566773297383442326176578080370354087353121551626795373780734343022444827295372193985602306521612292772553755314613854344920935752899907182333426893664699579601569538038851602300406740764182430261373497295795396875187949165193671320758103122257272800809970765448099333218457836042261262574593570235901533366574677248102524527070917261700687333192404797892252169967786405572175998535026430565027053405349639799946600426526167305217577431304258207462402483356545059798638647426201651279094810458733590850163709963605256192535822812851031451145567476853277464525545652794663403827743079054305105050372545293441695223831626421746078570128258700570284001982131650666486522624960148371804161954754356229746927733436872919387469458750644608081582916683037157982334354709171268250028204706739640043851890135257432277487511421168212438248542365610014541837433419953701538908281887027239699517108680303005179974658112465836816595215244987639262405431298222254110864737168668151603666093816241020508630994591679177359982100049106260079173167992693621407521444594573084574941268571124467062180410848621329653762683119129355818480778550939231732092929320897273718880818557789754699369098683165089553620355553803320039598055727092933528121591768749159694515652640382568531051079904523609771377626419773248834224184975234820366503812731695517476952080481638738959451362461996062014910674893419112964743800520836085065043009670774926938687047159073566705547869340086711832191952704368512434163424661945192644352629735774176311314107189271247636808748262751837625857579557676927665574548272525973808207390699581259157601926748047851220584843870616207618422388847602861229693491722453954400885910414753755174025623247116873792313422632702415850719910004358880904693939360065922233248601708842521359495782334896753882677170964904749167872541198909656505995570986039707426979033088746412914897495685340811839694936465720507022964251679876291040369230840003954186202815515061233154397885054642922794894864021628603292651077728860436963020181660071888885333747242707099490677155787304496096061041676914054656712239940548701796673960228682131031898995745301456851369661071573361952531770298572583946762487812757517319615329466904043448354642283550984422059446318794555221565729018102259512149529784361705482504328662964290306385023883131588521241175466443383306125148429244232953766982555144430898749196626906890899816865219440900062240994147104620915199935116847748254143999803560098617731497510006313869365702128616403275399449475765502885457834218085568108085502593895341624872480017328552589243372164832030567054238435595890143890071432634102164633854294658207961982882319286740879315281988963782737442920097339461933508129763824902601600862992793570766649807745786583979181366821588106698574372934640018501041508482497929068295876388996388631674933903968012439507040739864077696527246225019533877529212749050016570234556900477990370768946068545733917847384433377954203633010283053310054369324816839895891730644399219603868198385049949447922658660572237698658351935510813558441190344250947700093483211584038838294780275782191873692642502987751891488180230111462717221358462603004619830747149528378876870795230233201386732940752842868786309501942589493453812378519104937888433080852807132124646151763959455704486457434132051169972466440401665198416102369140029764445265083648686824610431430229959749001527946671550643867280522438640107490768084216181152065399885346499888217355719181948196261048845216953634362439634737362797513473898697907926953665960189930112505654158278384273012154426968155965395561801492077732454990013680272355159381166609192718196834318317104639422011387434247966584892225349453413973891997343766329173735373903953090047609616688322030955941022421256199501533511832656600447566616111405730249559079150903465316806662697756463947130187495847754257428293032519301628818776994022402878184318393069171708566065580980615670218301175556780679077659523035523650283258723091837198730886549010076564384266092007474603464320034228671823778516506358120900029123864671254751198540384089725212599475699213803883423018228145685832630887588674734112032916273160538227911087385664379251615334911648902389886634299637662310251910353823721716209053933027790933081714995069123239145540329482366430888196431665226914698143705467436769931290014843875225975261694533666277585471201428794925759384501487647917224499136871218132371730571980571848333424210313724011863493717422970919574717638980460007122921823027524787659519439031893313655228498691386158189352426808468485699061168784144205585107048938716133826400040906758201803780142593396156492149477394207622291241274858987644995576086561048246855590283666627099122513206322191424321591571187671531956738456617560105342546486756823268055222014767554562784462645717443548706149935922280948935153986216479136821932217725889772194327553299190118476410907941785527639135466761478727480879800929081702808460634479872277889104323236311383253796959910633769806665476536661758324991574388555159714941939061002581029683426399697453526464759489303618573741395472482381580837515031525847517087780717569033935052307234647589617075586952503833167476359486923943666903204987049483366599236318574408675514266321292941816774976816071966743955230310661170800887756662407145207929891441104289295339675852983683151839350310682581792035078110872824802029010978147667828921914213765389995593739014049774202502599233344005382295740345911321133206870582338251257230147292261594832703673705636837430384638543659648549250659157616202097560518553754285160460621364559936812884663581762468074086387209382097973447043246377264628160809147714590122927757350725719987681388463097611623956970021869235142639741925351364155177026918933153537066798773774220799773103773003077867892174470530614980688831361387936772644745877478913829094840811556083111864694282600584944373906412713028780713649373592595117912582800653010022387244727677833102696505465503256143855498445495194414799893199938566691024904519866960122405772154894141397761428810400555290132941200295005988461731402322767397895380541268926646901291960963314436561466373713349582530943421524704546648737221965175534349261424710357729029388455997108389266697845692548950433490009272472752820187679656305166929011637060462095397253951848718858433459040922239484526338439850369849477581271017003520796101364074450746728095809634266447865933992563094247575326928090721096252879956820887234296550750569302779623699655520547617343593563700944348858869750138889605083354475280199264225053760338570534775223577132475539782558736607370761763163164152469702263092901943224806850428526161047453794155205178556139759432929486749333356374155590713783529461301350115408370620879964459754403640777315188054642421699610145308774086934848375788334771994386080036196891142022829802762177393451216650518601689318681849126504159536442851251314765061859364708780223763323002284745795695464219987280023588562042710956658739317526312836064597536281347816406792520992151002347623100303990819373590629993021828770500263886486268013570604452358901734057154119584354786294202422045904706024421272869454507733669749747905041930752002993273164316453320455967524720347604418597953899071542753823088495384085419213182050328915130455584522162837382856695012026672230056081102516939472875481676335832195201608151271158394667320393287931347823024997680310129228202606025887281827160927942788541523367856911670484060466275407841008398862424028906761251099211047149367760336509195884134154639542558295929907567966610712924847076034100781859391117848804261050213980067465542895129294099515576639120383126349004603323576138550497902745185128730772010300654776516400907903015425691397964771263049681275951034563066806724428273239670011966644637380396723035449379150724384372068344045790470112170797576808852577932392069512219227322153274675165739099138818105781924545202123306753100868447723937760135086861756394618178089750870999363847451152130805840079955110040797611117435524350876378878736485070235422088774692097479869451523816485150539498445972062495512099866003995173320460963279527761763849588963907933605633895136629008961621219473116539282277741487204856742049145022719552821077635597777045483456893558480234309126688464818271177802841600697356052666275156636821749749781240454850170871369357405536989494602212336606547636992551603294420166299425097103910809834530133020824076292302302505251867016933926771775289601626929037521158028523930671931165157003073688766617699836085392047728342082028152287065773569207360916642332367442059213554345411343828519648664394752461319997244706206989816912071732448448154472834121515132624262179090405591932671949051505894462609979799969175046644004512096964587717960740990404862118952783352338659834196819748023317917822094226524866825712364354453988463421837634760198943658337638247685091636754863180823463152019833206360647584708264125328386132706009628379570007743627566555999248216279535497325610196427484667794264382885789176332495706381174523337579324425653110854643032655595099141888228559139405236523097395357820156135065400836305891806167391054467128891886884776805106662323387021743075503617938883078902071505775461160497323625015259594186914168538774960868049622745958766301659835000132763926744345079515542884623915446210129723612281971064578099589749030032681753548200340189912951825547032515365420586508555565040204181109135352056679514043608191920838821744979654489662016306013852413271447556827131747188710252190787978204441643603119159369870343305176286789281651567906118045099666108634828757794871203949757034623733944211717613436705375034392726581502125842652039439207566283321374550229711805345885665682599828434312164056863026630315620968431318295083406310302598241817470624865040024234993474747500313369502572421142703702593933067986157275202451980109357777181183780322853661354759762506124454686314551367367426187203804604662041431592106022164863119281180813999239165754937078987318285912872035153805896423480319202114633104810845880708493222732199290113332338339810003610378458331244852091996620616394997626516125764472657447606072470466706229290058862997163794055168479955862277030497156316346136314967579499061196451159381631264777767270927253547830126870136885845785034129592005306085028376948706141294582585704610246207993161258539037281754120136858477409368623335922683889762224827174066829343620139082811842546089673233093395028598375178215852752130902988585607175854390147434718976465705473817256353414851293635855104675475731239209227161395017267672045974642519329579236426078623464542959727466977197122118017306188799772964762304426726541362279381686682219551966025725879640369038169236862075908324330992334807085300436087493137140013371138313260397111353143017544373721873392820660870114106866682258546715544382891424042272553152104584940328599929175962172459227145624740538878970503170559011618316627936777689456047404751326747997891919939565654705368158080790527877548487988084478521857337460716979083649552825640020954394941248063222593705241472909602044785597533206781327292807180237357475254031447697864165389115124871416691680213988794437762793845709786066318188139874932470791143693296059054920623509490751194301030144752500409107071933247525612189606548775296043640993459116288808464890911206990043065577682427317461514772801769725471167878159439115620725234340601352331978184068854552417537578310493541498476092897795915149078982605470426850066433168044626280682640615819720598465261310041677517984208590875977759773969133054571219824341794818842052420986453763209863602146512058390286954352805123347242168207724727094637502458812255806957236881425504219950166785612702461958092834719929789486510086854781893524992151544608955401919480788497230280593300007841822774072114367079836075841122049950322943679493233920299899502398858996439242136550971838831863506573602966163546378063406778607585655732811854329216183328633983371314960837230060222942660858996824869135287372177813492429599007248285891217216135701105643377775750429473013423806566852297386757204789139467951197319744969451759002144446706114693591233324875138907830380650262286741600537721762050427401432613353432412274746228485448730327859176618908302997100252937246674584587377788938337109318573123393595097604817201990573431515683545430902113942927739845477626203874518569824149500852877614927463718748697259548759571956060322610719061504372385705873680434496290503551932284528214763258724046478952928423635664420872427772739715251695813275324203078549655257783360146596090489370927238257950895039066067277264131374674153645579549659632500434442274769146753417880495852802732911462393297593532201707551168727959020081478005834147960275191027261844078513009921699643335358799458576864037229129298679445903771785570697756665239671441228966099899981332523405826890344617813611064899759295702959601784042497410694879206384398201397455347221783870101274944700010860323456491162418994949428456967043048623724219322873575600701868213556643086005736641690148400079975292560038352042299164046144526526895009217921720917013023976464224844541216138274647119414371400621638256370448035941089539570536789652488596420963457847439546490774756945784637253365453761183856356700302516375238739255044856840227867596863582380205477934726860810631390137544825735792186716918656330274635118178332707649374809569240801181531832909502413031329994336099271473645150545785884934577407198948547014465253951641903677139148902436308246905410744140768155600619740783573649961429445510409922952556916542351093733910956626080546382865895838037934101872686092992771693245290989431955738728417676858000640253254790834888122175711042062850142959783031266277464604719159397105246447832480347634299148132618916562352349199895130378490921434962386188115388261501410790622308244230781719990095511909171153922431471310924468044236897073628952276918332149318068788375065060458282437708143234446091078967788772559481842448277843956131772114484192851253116568140331757579861226074106086703235625031686926875985956674088518436461891121914444380612014656605812104613238931127315557871178686894436894821127756359242330682887363718699617904957198982404289966003999929819077426373568312190721912299752909123843417213888244053912421171102276304192704078095523744782397770413578440466034890106282737435780654091327159380163757604387364465495533424489911851165046670930783936410303930181266120289302866698268595979055274365904044406172471144900048214121355589767018456457903375656027755027724598762618601283850400751099495162466455078305881571013718549537228041402646641454768743655375163560882122033135939210261456809912042872132854358454527706782591096032041441565145164149754861785630877366866725061176235296422458316146377615968947245479960294322231547572248924972891436751911823898543112814605218373939707990598371774607598059875790950606511753586634480185396786829355902915100964915420712649819191893430521002987900142339437182925122989194558103766863632045346079657113183555329056309731108029740107040923244177517089643927188428294810847597345205368751134250842568163168044614279278761472404408944920633694502134548660328721690780125113433582079478555243146673570017349910875024012135725568880759456313521270511722122795291232836187038660256753028205158637146021489256576149551845910999333240693540080688254086426988138330330042713522937310939836401510079600020134320744170395058342526973878876590053055327850091746977840840380501485034901668416716504068129405779114393957485668597736038067658419398184766981435951337244255709109621275717934228102953326521440095570689163080614228218169845680440308256373314253925475471761792338924756560403953226092382338441600655383885470239617114561582802297445311245147181219751345854524438869532458287115770197527743980820121064528978796186340441499567009962416008480883379580699928652789002053539995510402980721133958601372848820736545550230079175867066087088887832068950894132958359395833018333041419608781739107384241016661953975282902103869358826367621593986099494670530469716230720833700980108902620736057050052140881606069462182172181235432429094736422489064016990325305714753189685550642281069249081421947885831965595886560976295267649731008214573350370032991906819210994076820685583473083436627009596852415201375442484852272502663170926554112653252769661937098077274105807694028336543210125622652144441073858694597536194951792335955630990172494355114145527000338383264019552295350340391061689688862713320413455872578213554032451319143751498923544702967623302737312644320219180031551786081967344721639472124882132574541401535005174581572347459126622630903758666670014383215353171995606490024845040400926787219543721912476725006296516876230599037677278992651322294409861276236622442724916745128854590872401201811072463949596160612268467303050932654623056199649980380922439107143218305628196003408703625333433523564188898320203164660159409954540094297663830444056281284543370016431101774757400265355743674028942903564770554597709629685912980085173782180015578263191515165622631033234952497459499787089097115105331930928164791263164303116078904584945949942251241862066008218434877940002213292369031977761550762495177059348682559570309641845100072371775727122175357598897601487817679155988424841858900091397488516200018197982171218091079918709613881456666306837068579684224793624251914516568338597708531346284760211529010583944791085532048887113288354006577044484813272052460917074562436160522965987203066900310472273266214608086891763352775858698891158251096259522389601844534601381119109963765143399990345699341478771968117545041088116284645964721664471920796739748417191093527241495891277615920290544045040706583168273327124690903479741165620036949696871688493074139492218419431303025201526123201636255297428521135850868534232401410263435747026159317378602582610278268862856080719378391040030404972461674057327880528925359732311077392893256161914243800500779591854545218882156251347838024371954093846873375265654237514637319171020459128987584077998050534886118641212281117613610367727393447987956035081868255025083874079199987651539446511007936497320565922868661686279195557409909988771682402078263782873147565698556000572273637260145221540967889146511281896888404891001187193222027631658686402631054581679147904934939608888563319857194916559169020733215803786350186762889117284788043218955703336919480580365300177047602311362445282473215129049837379306393138029084603371118641964741283864438667433792202389316275238597545421719993294356438525506519543551228235175385096527671077981129409005345578708887030104948766245234971109563073749155656111081885525790019477195013684803367901288325456227284380394845508653746939066430907924330191231835614754691284561238361508011217736396511282225997673001240166570897294803312450204466013910895504014868507886925320196423031421714855944301876739753164238823759496945431710529645428798272453563403281829095488969632422399699964950738381136659827522007460830801762324669725289507648579431283554542809855944467547194220028828131390473755856023718072386399858972327589215793910038181471356312548044808451341967062198607340981753938443348605285914502268021687577620070321632355683987300472218982082813474017871365048321137874618110817791110778319631324755020067926538876388995086818820812184349680969782239773145862891821216275141757132872263916559094516774858629776141851704740374946060896766844126147832251001069576882402308294875615331492621882402305701691856710389332004730238494792165809490718567443832455983678141556962906824589059952059758690928431985029659409710331408078885487567524532144558778898775358802517854986819024459130988456788030948735265337020810945463090791269769400520950514534704006447401112788244679943620254209091930525698244487905918046784583291793903444101036417104880621392293585849347053668887429489674551079805255680384627347844886497573712526727094683119205986607232598283876513887456430466967352363782101099819249740912043191211269268494368222988427421174454831274432512205812780187725144579858768246325760598555059002605008706417251076639211926193448656051647820970619322617029066467109345012902964379313657970361096513402039801057465224943973503860162733983009011025236954647257311066719898377161514672263218586521108616326698994008344149242149021849068643350438583041305215613093215547612869006385538832036459607063130127838305131389794583218331752546111883696190110630153111061766116146120114367559973881680845896534953646143601191612872589216643468167426880608143208747860209556969117073077965297558976114750938124100813306627652622853715102086644120535351144736035651823739780550176701452256487257185440041414210211939894929259819064939110089878947258024076839177701538073901272968416203023364383014217341454498439474857827207099796045626085746088905306768596399351907808601912310813124821087328009734565125385661126781595770350033491719034030238993362370415401929005480349118865056427973908397858803825495439285147519753603200320455560259895532425615016796624912340729552913160490726319031590608272632158802194637112693206249157367831113387447948597265575395777130584968525441609900056215470921499965134714708029690783317462727309428301306455757553067276149465687090360955397015113167738203605008304972135887451118699927986468596692042963109458453723485584572746027227158235990093309847063265101564149992439723531638142044334029283465277188893773516906371726281027509884646516032657859531460250349912635446251842050942705750668647442737859167591825768388850640335245822611583538406799963452213433043488117255533409926101479726904405023199035593709112520383793419374975705972725178967099786510633580433766566505639285287345746895747585916174709344312122147819640508208004094366244993561301178703617850077232252830972332286134927705213328567622142385311874217911704386827016368920059580798197661990516475874740747567678424694148166108498613760688322993567549250756621975025180027767940700247443188492861243860099648720852199342171998091341092147702620283168136919166779453921557385801420777814894374213497560845364027343090981052677023888984021750047294418825471914099024503333789352876092237727831273413587461209817683239012345509454390780598462328118638567248807446439948776992447416936654305379454243041802132858568303562254407588014414342657519894535178086662996257925778862878821496623190309128753710364314274615039009132222309912386551731526457759759971022017738163483633366858881309507423057927796751504420438470467037609655960823892236438155624148875504594856438088364041788321017009713361978701498419542299612719569478609275541173577861939769220158397562566940170180205492446838445957909749826670859249262757293452086042889454770624969714885452506759524067649480267909325687769103246240627552429589454497988638456072249494552570310170964442021373337432458622020957140490806037257359489553362906933083840963589524495902545716474026585897322088900907927251015716286293431916801682604323920176468499540058427675987628086066699991519823704551020454670938907259785686112390111515170103114465510608902362364708972426283301099067592814158280363091604200409278948271765015297845788130358623005512564837361061546670098184829680202751040721040460253590238816599811106955132022432549533062210354023425942613131588808657573945745608412608295668815670846936785755781535479500895362257705383425765224673344814984549695485252956154529066388131037865523032353340518340891955694610680798086396706760398057612583723195674539357192847932234631054734381985561708893387552285392102211989944452850989381814356046206910389101992840474486356528547776367218435884806767213427364171940453448864579199516419731531415000565404011388932410635888594480000047262069613369909573154968246562222448603048730723768081096168885052600734307439855317738342666753247414045841124155632810421681582853356912806465977631082022216611776478673022084118526168770228225562654059286701861816840335626213373003855007287871500979472325054638939044098950392676918811312703185952462607793978352505280141742028557054353049758453468094477164664662661535216803271589486956404136975461767169680889385916478767433705914615687102033419537112634474282881603539908734578987022391573380490443771700148967699905564332455895708858762090124104346060248404792286281302106223058838468706874729224385292513166601200780227428077272818693337248908203132724173330285552210015214902200288209549085578379846078765455817942845447864332291774519584140658117493996915916855074580765983425406264948688935455610954588360673516732459378307910140254655549289967776558778436482131367975667807007455924512014622374478541684994684742747105662015546064565731772332761060325865775833145453814968905109409246280379309646012192479300308118961174070444429055433680886023570682575788852735857193764733847400502254323037142896970288503318502105051484326260906097763933216367194196864670291271150639812021067511279030118988609471036486582837441413565245236863638272557849984842579870503295504824430572234931379222911792305342336664745575979592352085330697859766470157830602372570580316025209845758615121786569020919541805171135264352534033927798853479845817637678751013120112296690015281910134376559821183403431721561198902769371576217243132674708998934355532174800800868091848880239722566632877066424113980104571108812882095296845788083518641241972934080862283750246549194630231156286648600589219542973052716313660185200711999443683415869299855230681480629993574524020234776978035416298194711872027767198911747990567931558926665989131331277935493549125519443431929014467160819150730473889143691817602522469440700778710998594513224061608322035291600091787787430957338712289156636748523143910472300758542648492441470327590078406168324997670777941399742078194107406148065231630684869885665451258177163423108904703725609551407844378247691987193307859192582147599515386365375768655405933303709063629711542073418323743895445279157483782911451560938974114764545860545602448838888992968782284815908651680984364875249710211083376710129602006880770068727980949427596684254150991780998088874045573633900442427564270771105352221334010082684070990132016265343947867511646706341420746941205938748647141706355529577199727794865443168887776849704655248089389744265644479070782738952545965717867696323773053350580389519867247573410620805111400792955187001941066761363797481178349046658317156280869705600497447666084407971288305895311161038762952458673730671846396441785598641932505540182777467736653500446719622290404201447930184018475026829217647505002245705626841684177785185542688662140956678906177852810782794902567850774698014826415732411578162734734742100662192763140726800894195861474542342521219174585934143892471162586508252712979643171136505965183340377417814971225412664014974922314012766085063014206420569205053031731940754112958393233261711727491495683282472555931253384603236021797789009194460405997884135438272595805769920718610781724615664337873463850704651459619841360396982345631494483969682591818389395841254769907057819859367077912784699947213204667292462964244881639399843434440287602972223277091185169339303378575971407289555966285655140447081590732554504552242612789725923171913222049364509158707340683069931933644688108127566170047181346631044642586641368651361631819437155821126992377881266735739577588861159741670100517261869344603457232763612524206242301397099940898557202535120501235324098915938847845234960666051556798270574553547149511565310254644859841096265137086920362422958626311128160423990443406735004496662076364193074143348452206055224057271165444302526195311798743731561428769419961121307456917383359334961082923921286248519893262412475616989081137380827792900746245118258058458544698452138689898626065020717143903824580615132949940523956548113061155116916953453820192833510634521335879719670929231910501398351078887706656657579293662716200659625034673131889681768274209395819862985827677144117385595304677225718796205585045478547151514483078080237327141446748304963644385052883700458380469725402864707959592445529759951212344856306141242278830639915168616279666976568292565265714084876255689641551486265868729535758108820774767316095733388619197084645355836062728092414535112350143890295486080720998926936718209827420422589188900589950857816508515714853447600596854277322764491844459782689799061424865437531927786324476689379920844761693249876850504419995492654701314189112118603328862005229588017336312200309308163460059924739870201851158864656040340769936938305312749521336390681807183218061385490122072961580697448016440217899811668150595880156352547658583398495704724519895555953423618033727620538318829055947871028038595332370852279334090127425343393152818983351677541288468836222862780581047849561681141929326755442777199829735952784972703793718374896251888851255532658345911348611062312808579279895697271197065783400502801789711741429655193267347243215680223365565320732324659718738809689491857135077157450230232362786446414833790549502089540018035942627920945197325014232169393747266234997299688600826334767918903104631355487586810157889579359679196254391055746333469750517419105586790340166555572918865447105662204966626395635114764906056886078432060874257440636694883184033421791412503543700015316033975836808010442399095651288579289814407814328743900683407619570846012707563099472039105302830126335065471409568509019930873267697100453139766233229635012494861439783362584176812468611467441672365991208486896374387735554752995459829488795768861249614795211997474990588779902147932885693939469820924481142602966368621694047447456043388154377489711384158728148919629239255144527743787059482061395811945299805850668240454438904060471893579571259391261150743749920318363004642536447573961726072643593690809785326884658584356278447156312455655561625931183916522679959003360817482157106491038865043804014742144522104049948992098137522061795770232898776622080303597016542496604995813661777093487369270504216297760787832889786777180303519816466398868454259649595074786724502114734506098754040414232049934773042947279231026652685998715259335913840090915514411723844618770471635121946476475663502573544804318043606915162458028522895696649811050615166974046120407232837181887841097102570819334692214880676199399692319196699581656241822740018470539805220992863110847524139230337262924532557238905364449572641767749992373487783947142032638158222562421557031060037062839468321499837464798791418866444263379685859970135769581266211664095256385388615080825625415161668956596377275834640594049570818575356700458405041278334999560910381820620450938481560010268265894293867933201331526139769930389354363914252543829946220102172256517173869943085399000533961862795120907247389559470733491450393586566921283033752302496781848119717842300281545340432626574987684386318302697294855427105723482167064333859100083046249470434771312850348185861194724150114138132122176659008749078216370135169721639865892918051521522191622888193299165822694366435060837527366658599861918524308328659470231502814820131808923717364783657289314054651237292384314657574544358772465304965583481377673333938614966738276154017480045596066094903015222906433251609839815847234999098701179961055612147549902579981512132804043290248472467575500528577205784229338570334381949225026332669486453230750905810130328551216025554745693408010929775987479843902718186275439172570769784726491932578144699388995446514058799371850842974678035676178488251744758299296895181143281095229490653365975971171388434630516021495813645230607743110964763700408692107663637698060058530923743922841942293271334956486468700541296671579540288936525494991333775585635075259534806837504815445670584631503094002188831874914938241099172451830920784901972088057303510662152027829634722409276015414521312899890241039593967683158644953968666545494019580943626331485141579034395943393613997741543755227293300509722471323449842321635024631052622307815673645461070838625725903615305956219885588646921927999569095737214612200043655151243793352021637053366475656158252181761774515910388747835100132478798210603810578063794062260273064233074117228820733519982261011363454541858893308854843769492534286954902178280205748819248274673803275117106983641861242926542385883316534553160419057581576626857984622551778871230578715971609743757519055093689050703498740730601380416015147064019864093003588678899637480629828772885990792977074261543836826921662862326232684972727243775662249090877948794658193540857099796854054322756747674379970299343936115538356230023465246930785032507463520694350693185072339768042691947470599886692352348632443063435691435450145307936027378499052075265608381552612083952936587330709540893633494507036916788330151250346089995504636975375961077202977764933579142476758838527976501559245613240716373288569307039616716337397761887838473399508426085247154870727968976310144189350305542460600479133507469821282601136733617792221235674380354713954846949382887836703166366805013612854646289315436312495395742625892375983297977337767726652029478662588147151146952923609718109162415846825499902125736258777238892537980791605444016674052355341120298582117636179072751578268111226409826693742313897026079428680407508559163859472889949067108056608991979421163609569103611241729928611489191989866071295661974519980078591134889186256946709137323614950606053456008077652954325464064172159099234681209534349360198781740994454180719322093458996653576379497965969673624439326645131744447318998409743251422769337430378718271457282325103451348337534608091123177740817661473438642736775929950003745134072612620288848276123381523278975874599949778162451027744191425094748275451053687754839992664024456192006600724596364222023409081658600055856472392952578873202596708717787860254789210695807056801945377770316864971966678155111057976567097805816923516894364371595169885502448426316232958201631196149425351300854882312371697545154694369330734645558931229132610784247242460413458267843420870209111969003647199462918880844745831144727194073910818072088690502577209558759460142478656114196873547385420180338394409601421292386483422591990134727569516452473752224514426908560895174384106417587372344577298417017334814847575333038172100348306188141626116298314953724776025603318055884763943208227126219802842322846748970686694321174965355697188837704155485256807945266075103846097898408224754894723619824127887897690397778628552261305016155478770718103912123244210168130529386480304423401141574241164573505716086480942049581212537198397437144840918282002573228785870087747157385441793319516206866843693004166709197658263991656983399372548805326821954872706112846414841470375401168473212512156270157111448117525088555089966705661803545796224529256542754301678757950043081148842702755655838149241087156985663620529974526856709545030017631547191849838452930650646313661623111001309313504226144644649232210164406995258489991817535769252144884084911811569703497443928896135334242781738340692910312258759216563219054863685000545082269568416768060523071216753410025492905342919786962338922656374702671332714856137811580631614538572398489344987557151327645850122362086687233380415285480915093391251998914647402449744543677408893754820694261980381797348736031957249275247607436943921859372240910740532256898094875329943902548764816008373482208314614083380725494057759907861008624438494752272543922158969480838003466902646100253254597469265157932696066674188453877846618197751296954412884927759346607123978828100406261549538905362668049658239877138372869421229045371154837621728781836530341603396452031594238658982014139262451356109440300303362818538758944838423955532374377348609759917028016194511845526117810968783192501568276026973603753062997882567034868412267791250098383078927782886758717483297142680202645112990253759783220960211666861519959250335889966982187529829647065638154414678043314791762466977908302507444899562003020541097909746677706834287700628897929470203603233844201970558872620089880821332835285482079999906190001079916651310096460714346049872111864652513242057667842650006638622251210645647548040835077287856068744635210574545032141440092372776406322928298845864872816447126791212572801933819949151693684159664706994671733111766600868230030680953550510225440737758562304658910106376451180381807945176572663434195334956327328864393082181231951904419206540732275016034574869715806844535009671695785022986879992713304894917005172147067507137676251244915206097116469896398170937110475150688354693463714200662766031893502592115614052976488290512109255177283857965524352459266361161548006346850436978471673553767966194540532866543315336745683199003214995195016008518332218554133963757438496375206028879088463285095123134253605123733934978182097821663792659037634484837506814242558476603222176557568116457278353317443111919501672060218463187407023277842635347412093227998007129353348196861333565442372250621519809695017713085048096499892235464892275511986626884359670034332149275119453855166165711606656447426978719175839852398328012666997244177797134937371026292697050662443708332849048165054140675700994018922359964573374748625740922434124800547218142400109743648016796479372252077095183672197417238150607420713672681557054089803667340617518811577528608527836375444436269991958513467949176456023989443179049580298507667160613178650711211737059333883267047363512341819417015965399099022867349306627800873194832933243922933026301428189693403557716187866614775990531792166613748643579669461816209912880768067477249577671967792594095917800295750166990771417158959478163299241248369973810832659984716564487129035234097262301118774195464581868103728400711664739868170478679187296885854732046672019094805810325662105432184882747320086691570939052351638689588335073831791216569191841012236142235380152922428638771722053178672222498368084941386496461276045575955821124968927116185076569959407345292444206449187451642199982029300774626744885268266084445716510945750912668355843869911193826848977666336012537470125224743266446658504865905129488523926730906976619967318471774273446544353982464846171424297509742461329387736161859812361674091532734155746892453021841169526084393351400741774656766020664966862712693764596165581463937194609802252071735602481964118167612521256559135361245513431234231392806456668029833144851316191329601988645215922456270734060917507228616114984342231593490198108484622282722187220056426679739367887117488380081749348767958851352401538650799427009008619844229170783639959345606587847389992658140879766487955130564256129520257710429086536430571798760375472466612592359521465716023374705914653516408863026274952335874773323026898636415867040071937927478123544501248264876746623771085308190279011837092801391317218325665021444569377718557804064974396769367304042707942109034603966845038382516663860087068155816884243031692100974034312601163612681383283323886892883556647197104833708876698066472388174554755167296621495821719035508037816589438978858795876434939741255019354947919187495526759823997459281562086705845732831670255922141614620138523549579829407397010669291706047155169219113784753212451217972783256283983857323128965968343743211107739128510081056871881223179996635612920868360813110186825264382537027858194501885522137142012458092889018056477771351328464627967814939857746673413503259656480462769849940212409353845061292859635399389792258062087703419202210019324774662210533335922799405392021986294320972561566176474972906338224917897077017833662582945999822803298269309735187912453534986622827930140103076971178160046880425154992249600624426161920598903800918577485356345994134817692606188611358958933769135461868395921791338504475932365728654003338669642529532577227913004383132977365157664019251500967739868764008482484799973542376360996577344244658299783509192985249919593029278710752781423376954403587624732818269682785140272882473438110683543476227614184283031898013555742447221439524682182333147955875850231517208255567132730747651456213349134905393835484723399766199296439330945422464314937904922145073178731804343294828931345270028244050071001729570431186569669826047914984904121181505910402291538890852178180288977128776219684077242464591846235278328614508978535544476776925072767561615082007359619721497213476770491102736443482808666085704323566007791093596242317275115655522692507214400985823056731787823730249785459357979103476315800733346268953741470699759914117621841570424106073302576562167133750964243117547738217597141384815804725250892427041899932792013047671266744224206450135376381859019728275696862756611880076815766031463802715021008157132586980223901691106070866816233239419574424502572414084713911143135768969192987589577022482269614932351290755524818574744602914608557110804438592522631084626009820285774325231015545095945034921545647978824096439428608605801744022002233060481689384405755887645306427261001919832286405072974045688246691292143837992190205070202388831245578577983689438359901055696956657195271849349291431071803402972542990955322797051614853452429680226574527806410015998058216468672187655063116692509582113419715595642724879385173173857065940682436921249046447216981139033665777292044258681276253212571495153316322520220104674131292536446754541942567680160975669519722429642408265683561653114624909476883672618988854865957805075725292794217541750217001791506536338240408184922138328482551448238370545502329881515663359648624089358798224958888046290119945741250174341658486708810046994012481913518423475581505282519153719179994145207245872653500939657633243743234283180598640570456181614565450895249018174973769249902629683372919563712680302857407255782719561452453951703121684073237229024725963588625735030849917844797291875024917813299114400094793569102224533526753103466763835074347325121729337436608022669902131007661993027724127433409383699252331558423494070796590928938195682079162403587775427651822370701091525813047697372951060716573093350618137990546330961255930998923308041146520633169108896945801141301175985050998214494001288482908528017324128689320529716424270057974452079262266921014490339916822454077851275612106413456753155975418227705403374290606322189319272383133714702618535785001883357113015874013446207288786651279582523599355665985456771900796432454216116578366521428265925163192448852073693443115157377644071529652307012383640407232583777639781290072208643829915846821776150786567700772641449958210138012704602545749558734798020535766029624725148841710408482216546176861182786132567544804135409327611572437210370584137275914529696076125002829051203624373720349590040149565281777031296129158751465311587232517992175097089524246810162557253689260788965905501880334980124671605164212262642906169180256246333286313233555739522691805158480340560033049944124708273803526799560885249621760712031803660982786453910411097092150450534562487082052198850388950383987949542759512361893481672628140206468009762599329390301635219540604792480575752233163716157205511943393138566406126739240138944213613827467676524650540707177428802311035791767762875633394259302575934943612498172272283711947874222351293682186886552112684405591844376524725165996862727937798662260425403352662824020727589781214052515512522418337739979035800206132200217286570537902419059503345105405673089663288440629111207379876109424254052874474495767304520134432041033881086398136405082659846894333575342003626702351224011856369572462476347299316294460099742458424114652698842902651609661832666510802055826509545575020013810431784243571199035794295639276770370287602867556274909779291591719918791779164931766001932464267098394724165901852435379042481992189907941563905717516449827699120978606822085315027300995975525501530777760894155739697837183142407882099235540067228721088135906898931837607818400945193795256545003721140682994819191736608552129329759272025861633933671544302713825569491937650134827234373953494699532524726521825424658649760724112862223548242779853698406088138569324140889822806877482611043911999395289204175235742095022533229715460181336076771888335568871878549784498623943672426054893845072162657387831583222484499863973827608000766825787746023873230454044683143708029027466036834618601688889775913355824120163253145788645616508387409447758352481880024927669295506446000894755682525018741864732268718609451515092238082824644539386955158457827189903596634676715865163467361228872636124823436333341503014326053142787419847089331910742133377826266745868760058229400765740143006028032819160396938126381605138834022679064447220879608757237051739244682701117220429649869385989689188663441111148342453859388489973358507493926810496239345104385976497886748028199401155666977954823112744652041321389735184791028375547753089491054437357809038851700740606576045476216724731634666462099409714289914626847043651081311915067725401137367489212003698598565145437280747676673431718361805947078623672391913907872344321854590523977531940703219596030703339858367642760531427387603620935579070001479823954363007403142685273391309928450372432331346708553315119106454011902249189286349806065194154873250352625057285286407044403945296313948522486688117636314171516927983496484141536115717528202681756981247032534508304306947216511903026178858467289770400650108505951309515461315981984827522294599249157049350454209329416674259903053103890125223392356755178852217083685425701391317111535185230212236253066360568892666655481992805371470904071524110570451336880174082589439895519664543951882034069147607096566733250391204800017134996546085928608076033563966076229744523943429465484929203648759475175842879376723495899977706551733019114852405614677899922406668898181752034434808176172340788273086191752839346006897708004951515092948645668897658094933974534076887838047390920821894434292356775850660795366773598778600860959037318086305581225259313201876288811444266489485702331937742600368088284411760708457032002434462198626977964734338844502647285834515276910032662881670950574263201259194683671984619041667767724046393905304852425317645680790743527684986098378586405338685238750946950537902375788984587152660861633064213245769386850050812117281982196127500858887526300587540795914673129055727216004805956752533997177361764334231596660687239318027831244240483408990532334089177557997865796959416764815885172537240534638156926537041771816373165043520192723628149933799481037959340018253706081584643352827609285299712452413513597555727609296312027595128807507276885950104152606154394968346636835226632044538807435742205000874782013000751876536946874907089439648334992029710208235930126880938265491397980613566585776852520675737928322241094540989016695231385167445660593213815471607081033642110854118463337584906438203135514203009482424325843634574395251661291680734825862022311486187001733178591491255669769357947150797726405853778868012260100235794828574556652790701218325058528428876727619577676000526233423720033022651098401564102651497411887261691363809903141678533299684163695283403663002219257773963075979594865603593621790510759515691994173599365385529720472318877315832494078216458535999462240321965272952012346762968679419804240548731469922697264634824291232403819506863314401911739609329882807911438786857357206902560430329049905337626540443095969576594092151989450522065493700915292148691122140106206668686083049504213082072037256639955627462620665752435218444319007822717248496616094681288118980677583121822836894219432446093524192778455850630085443054179036578454885102633116148226407507376152794299853716949324851269211152103303766674644010451743244829537076173927806680709762918557868098660130818579869112029047947281052030199810777851032240973326719756636956518246887903615335226196297319858581940350968103013802559061683686677778471744968522250682602435905177690097171671045347929480583165893172244509296743491253804248318135610774052291295311162368200433355404798174135959899332726841770838635980945522002020981635755944475535186417349188018450276324543999585676366992382385728988417762134688814010716125720365620152762616779758973982997848015765533490028736899628299480210982077062142825311962320176855726604335949708754115193033381431426297714939602475519062914376855360748333811303743970204236495747068457396599975033465909254773925652354849623829352792019465722863110417565471838672219321985400908558675426412923623370333662695682446866776316674906000852970148966316687853766425144073919708559561986168985391304008131828429322362345865914645287099546983194087231987863883584654060014504709359449729875072607249753750923958498676477850511816797906745587133657555013310375686415161074398160556492068215207096071775087543215712653435179201663453462637979149432507968553745295948271297953762232841884874513881939612557336674242717732176666666560633929709521253830392336951104650041866198657751755433274043288338921228582169611151387821613449759019289312894106831714619411815922846417417512222991250646951050491369003667444080046848487355507751045844068553721176359898700838574117822661798475198329107932148406358770531813439721744757724415770255533211724043737666086602749284711010864885714025977284758994203132350787578636843525616062503313958443030985669057202767597772171622154446690222668397179383326370210445552600227425348781691574533690579214053117038062297233831738055177986653721060201984052539783395192670547371441656042293496238350332546414517976194086601615993066707012407671500367731335618947133557472922102887875621508113165858501964712623305517115519506224788906304306319921319359319974940406976638870841428377271251181141442062428916585479376916294041457314413143512476150070596348834349941062998620679731165034568070829504827206377730708002414954607712336307218194516057109620028950513153413972783642958288097932810890470602847586489551514433186003191916267853051072888307451793831087644883652750408608870797176772588415095581299399110356400853734533837510647655725962949853302762277631504934488578888627402183260796369702991498948883742513907625057916619626185167606422369134587792849361878553207086995068647281338719146960351680484744282402411259867131439479580373870508047720328603199327283283133257904508494419659414512074794168524115486722711776607560379233447248114852299316639212831295218562498259737148419451299199266792796740536626811909052627132057295665048392000854694636548408708675318905953818289228468821506314176061168952623103321600548301396208038623287492424136579597371430243660013564382004580050633856255931724125771334220454255841515106024851961017995850104371677087410979168399671090295415994929787324595338361033050947374478551511836817794649417656203037860321114999537034566576030000059561354772676384672119103720926718075738071841361288292901648985895597916597105453099457541588393483101985864572883543110441403309009746734300043108359472681985149342905735392617543647006897777733546924626238394179442812558865398381144884302330011402927003967911565349524007729101475898586469890780733822873201903100434265782541894776768751623559072582804488170528557424052305421854211784876918319886135519446048226567732722031697508018625398363539570082068079742295348251964593524163762194629490109976488955729441888636627122828568994648299312355541802985834445847962691795783011776681953223666108612816134824383169171876435166404258423721524219161347985219126023631952947202145380198291857017195370934149566020066411410711353395841819004273655018579908574837306022844201563211320592678912183532822228683733125636923375009798920049695025354019614188454794725875356809093206580794991779699758520738564784204228509895802461005892247668533438500208910955051537799520725409492430721333049485822409296644163924525557701476913119515813374040668820663577213457756435300055625882770073615215357063109073086634482886737050890253873979758737467600930112953760448091671819271519334464232582044089242280834991626102981616268896837582195908764483195746420122233955355418513322724501398990916261308677700089693983319770190535735435666255695393564165734818939932050766866624520701161054447409453822028929544891522216257413413145116374952001753319900562761694269079910863051931521361216816680311643518599919145767070893037381218672208187512998378710205780198609950706417783381777350123926454568578816985363014045595815031694666482233514453568159350706820872643459298752122224448637706079745448480591316718773684643327722287326293726654087536542281665491373304357289484629799073628575926143014673288251583106566547723138664874863182666665432853435749306104464471297051754636919599993989720040027564645553585124028964718433951471901120009798403648777596136266201127800782199785870629867921378759914874332837929678007611019123309195151369143528561437134582643293286004409438591692711593606551534259798676880848022052875719899329946758848857618152428715772193668126894599133125209567998299210961696123744330552127241909125570685876137274884617000939899938859342980751723260641556124210057966421249534935645450797967405500434597944600349860500792483458627997026605216025157778612066993804259271609396343208460619687189411730322900954674576648858588156538994988103796807855766527390964843756660359053878633382818223938805983390885579626201626514927188794511016619109894747494306046425398310529509115042210438872074111797569320357789814940321507882226074204860310730212085420382403751200718218207951066140431032699198450536721295167415324430210558256575480752816648729022564942094743357500199870713639832829742377740359567092599720141848415281558963322981387946575463410106692352465692626437824381370693295428999101775195656640037793140752809814562730210344650949620872708896378535663868858094552357181148053338838466268516971515376801694524804136009472629118626655526668434474411536250468559675183516267291582270977804956713139426374024799461230958313132937085048436075480487202901679561811696285334839469457367685581331985039605277820374223274150211622481772576810232380782446583076912631493350460659916270994120728481076037907444748520402086856150107644241697493873547545553896073400762894224840098596416281354615888195100843390427556650961328539265102460819042001086204139591717087816998854650079714002401669620972856438419596911871705493479106352986135150375807100726974176444063562114911463993960935769055728436335938841691277555817429339927323799306321888778084866499245887397433206035793090428762436851220591827632307648438463556827746265451656957052301759221389197564379952527847058972765490562974835084792169208158025651281532153358769810448357017884736361658787913176668501730344917296766116729847270602399029002911511799601579977659582708504677741178799311973899304506120947899513922326596275808420461659549937459660245434901570643080316103622311915129799995081616894243242709449183662028083870147188479019539786946263508780183780397333438453683907640392670559747764290333909479805245803069682040765281324222730660688309085312967294407688520958893269186941233760340062220806903690482969940850060860284654643904214488963270379313362611803835084697149893665444414767057918638193619333445357016236141684072517798802508923828275920754154400580260346036877865780026602207700345854786848678536593932232856591681130936790139696304234661715765058752745152410238376002282724573002263436937369651334338320344423298539697313801668225848792552450326634832105168510574673460874734579455246950033238691679895192729063158221171603753040701185017198181826684478167849104045446788914978584291168492755682865391094593682704505337413716379529365225667736713254306391510347939393577254204849605054143340919972024827790891171445349593438913053754756322184636273448873597340662734405401819306746547267116050851360404227473285306074541901769610160331827985049208592704150391826105299720629000891553645860544387373613259414355865538483355991262409121116659032027899429797994275467297547259513004430880205281185120884728073773249590733926718256902482282878443580398592591402305850802370968772263763401301331214865363124059876104030224472458954753852280268895303274239660889201178302006823841839735404312133034959009496128829917033015490257190994877166414401388510138042939972849496655842816760666508925714703797837531037362469785024141770177970761631209828774129594033896349232186885782660720624488735215255029289833288397942027058907890027512338281959771633395393519164726180047856216290572241190143562145856196857183820584398411062499996159491824515477111248465301448480921575413649782601501071589452524561968752887514004606894613559568912664377192479376461582925666888684846025945790688037323530307401320216463575911753939278229159481685970365885497839065225006101882686093560846838427528544069043341492224288794453598616094212396519332272485987895097040276608935316648602911574692771879740827346787903692234356544782191453369691130831991713307008901713133602394753623386321968437569923174584347964102061579826342903832986714324362963202290954636917921348070357561321078109247755227682537318727244348902625807425314365349910661610072069855221049892262221232188157272458981465470383447675630910488911589132559413236998245317285130186894798136816054774553951778760339729719746319789754334845647942479065681125118669264416564601045244990969130398642438676170339272532475045960322116097316237571109303067136077325063805135803113237440976322367167557715637908052354527942881080584088813764460719342930625096801866820900381915213439248766848045063586816865423704559861633639486263746650544037404849854429112391517508497907497720038708097788935189322763544102523843506484622721179052315348327689907349100047314345055686549996032361002062057755526456557470908528221388145221132672906544958485888984260187645558365308936764879895474812400258256900294859639477480286627439112876927588291468229781500458062199288099814891601955052913890422101737335521027720714327485523278796013322642214619722710790954942881049746997373444126752059992759535566698467881255701468428388215723469959019182069857589305078409936069166991614704073250025899451422613700011889983197549225393106861160281797638796962024239697941059340600740708615962722891686594638357600342505909091791602100068198811902067142316828681384064485324417414462757568952050035648053214864311585027233488710798701941587410640515565001494181088825048214439563638294253194368069252054196182737970446396744562066926082667076161546209915317791420877691385158176932116875518392944260340366457440263534598387200359665746701711816355230500715311731861796352761882833641495771371403259935794977445248602994168713982964156301446770783612270420598524144254654052872588529478241338079633874011804085468168347469459649802615302558742504352548421582946166149969756097912217904026975363835972216373511581477626749622797768686981052895568467560484472252597057021649706454673215147603007267391290196732566747436936334810356481165472489743870893958473765519846755373590391550863605346336615206143318314573786830990049111807927086916157950621640511616379909074276175180252401175495267233881716413962941584568739410348690473320383813943615885984632096516307200869780006533555848087495227350335409921243317936015056360175883717553676504992766046599594368552814640785886214153071320587016091882153310468027053641475185919602443473900134562702631033751318492170164607804222180994112864617546851453216567533759896617253542597561631757105889170107692828863864811411405676667161477999716605134160969593607209340026319165153271613602357850209160231479900069216075160099432903221375149014274116722691561879615156689675631931425576918636820432314998449510747275087696150386743705139789925915263570041267147289175427791677116380268869122126818898254909304309222693187434574199577033999279686048106599562547372220139746669424014841147424570461289782264707176069568525650138857457058071688051594561507559857491086379982951227354226611184301463925978636660685704021941989636412696344908622166341320339212583753329638841181480644671568732486084049721995802221903421548681342753684005035245364137117850152443559903476431072751046993241555210670107766516051703051401748458167659202771871427770299125009236473512733531219560239667028857235874144095402593726963984413343532906060500929432584461892598167768604166776912652960105103261083778113653270306928448135470274362412565111791856013908023685269996669110392298919542385224980733470528566038084411196269686655390580697721858808656284628483956255579832233350819195039857118616467925256080179318541537281830131713403037647312639068257605837116703827753924852828382514438313948829261708263275389944677535629146596458928539873340547624607270031425324439530751641891683273568771089140984318092056992340348356262065295417392858785095782337343758395762076624859779989615836205962172320637690199492969411041891242749886484440405052365253677531572400988207934253998042163790968057788575284778739111139916740754385355354167633760240248774975183890951560609361960864706975796883607465155243368436438913444338814519286003059486777018915269112135922655149620105920372773030038597183370881591258388683119528450139405317034531597753194389731156392665365075895434061235290600003010592550090686773724226268482559519145025883585340571380528948998857897682081247218399387439438310942445443468665579455776616653532146551691368320813845482867828390895038578012081960288634784217154119186915521618602682605801460803739763140511540608293549320758176893573217197756513322038052345027954539288777429922624667710103623095019284919826294605864673652495608316667467419872178049660168123474929177925229125608441096596670581005023249377698290056738269731648780164561210715218560211860005279997383041278517489312717981688930029922299523689375393154956436961331338307745916964650112719310364192673414280781468784678613848888093237986814953462662875061975720645258477283404135104967345926613411967280891207280456362643514325213506598461302903477486231601853707024563252938179227650340711864943296026264861998519740344891731667485998453083605108369067838845351692042848361549691558125683065445620123799390048724147135423481968874502829598762795232076428226700826053577061620915441980645001936008379714788357650784296365195239983813693979557427512392080647385648365016186486999198410955692458694159107153973593187323918116669713624643655638377491098422514089358501563268158798116790217517130924769982125601774916899860883172670964747374787807102940125548032547131583439620679939339177448834147168565323726166226404728090909136528195105978467076128928717925885364887796608074599490501139934140514327903388555040564839355926717371338490171776938113301819946005586183826280566526890637412949672606555944436488854286308734248623426577200688461346623695302420970226315267127204583727432165790833584492576183365310936003103141309784581846700481433636312197585563619515620763729097685948858493823745760803726445854070273753213971055489499861362366339072846084519544032052285160099150141365525463414023394658533841861087113471202257780752030956968137725634974050407443802047114735762748355840835286865156182780985702359663128735727965936026480095951058469379262261718502153524735741581726197052082978526240532665989537103141036248252941370668346604993941453063440738558583469570410275660557536767747140454002122145674743766648103671376426164480794092474763496519109787168894491073217419798699419631575049035856524602056575698261918355833068387940263519801043759869534096758525383067401414130294777762613988405810473685691082918138379593607700317787648122714910492653254202662062963519026140254960249656420268081083601167160076454208481965236571487063320411627414087185707614936772131188750649984303416487229351828180149631098662793611304755233166915094489395326839380328347876499377607091757968888257055343410968999944451085715234626217722470411893406433557307898799315800453163672555643996025169167513911046500235245781998503082714211538649213372211158000042762932599044779344623737016469205242099963667062257762760895051331565590457232924962613628400435185837156815031809702227786908085900669183170888016101859083466907500029550168327569587891983858566303277475193361314599274391690735391845703418264663708726490265720466789756976431633574543868360653471564664070247178502685232192180982748277277367355974452572710015664553984949804420607070559991764217226560820799598716745238765350888275772944915162708988860260584870825005056506186282789694392144732544409671920676914833553013545391574347840884390273232652490626263690165684932880453214213254348848950690205220269634622530789310424605909727754023142509066713735193632841128932844889534824589643215938633813352768814971698399629361492920063956172405360018204446996016816944000455550874076706135521272605009348187112654012665440238121482523355554266033932308657514557253024303857128720631485001505898353437682795032153992800717820238125651047110650855195733198879125732985738048849724345715621466464210064239216213945059471719367137627823182437249018748790630254484661642376006615951286424363859503540952776328462778613716507755096164727511463656645862061909233683066065009508028795951888162188577524930389272652984328360868920506127011322953649997365447727886146376666062145149479475401355427437020879489799012065018686217362503079480864341137507458180331573963383972144232439602481286542653999434510453524330849763407042500005018963707606485111679655186463844036234598599659685725691140784256229261031128101997803836837515320433355481538734184994679706772989472658368114445092462426488395372361102261691803857667021468669147255349432953495773897839625033307216108554993804851782980438688083806855867335681034853547290901076432170979990076489850147579967294922834454166754504591675400522170246126287672179598273715159957192208338358257952766130028213814416499544697613599371851359852640137005664981233193729419324037852171197582375251836645786105490561036440932166854697607859351988924605586959466985322141800070800876471351136445296258592743107449017362884161213607650056708853683589343611271297244363421929217181631303742469785514501307299638957806500150730486065113821794756925178487121215990373638285698218924753591153964445925327993461564816662094226222136760548056866882777129415706809511103225952323457933472077364073231467583349301232303062332470206345317643467106207154308354127525417132526165342956121530832385726147649347824449182610989022766431066125476626854846492291946279960231906857442053767407195021170609143839995272795786908981534143244884974790995906330524927539580488605333089309744323127758220032092480303614826134387004348915004741542231738285749856060160401725921470316301249601874311743759900616080700713548524504855880215495994160730084788177077454584270027736607697801742638893164233352740620351411515480578961760875387763612315776273787321169473577203814927480038996990431235606698436476049424452592651586674796584065674324364820190547288373903449713642984222662923983551811274623837568554798352187631652812381641160502567831429152229205695034403723145756614891390805325074851991458773159858747544442496081847109928756461500430994970647197905038220293575430289520836891717006496824329082664133598573323361876158146756960856728091110703587834953995763514691832875987159442761006570279991385334244782730262149402140338819440036984850305438789863250943309832313212401193451473660621588757388989139842117418831698323062689560471065917794407421920737792182932616302086144336629609968352254748792366328395318042221255247922561080860838720549471935291568470102952902109896648920390317117639692691346872056789184054720229319054404133294291755568393926573602038180371804387515424871779210111610061747444781550153390588699761338755778330168783594493039943926571336438265373863300927695120590399864757456114895695037700046951936323069677228233866582221723049815243968036031135158209685138167961547011169480780884592437220349782174114093333939501901213756661235685505332443976870698558268630351123815498988063448991224190532825662871474613934837503793190489864822581157310805705490502679878157647404980480575441270052324563906964412715031564577753661799592672543289254126164979227001465713436057193570217851283933988070801112117796712575961654688402090108076294324849524316033249424448269473754544738085515302493903191579539307883120219547774173844740390646891906557984985262827277051939953460840921153628564355970256394938375704369450772303545714427732089827024645484644061319155281599968790919080504603981013699374005880176858101079824912981983832526084254106399616931181540414195267639323789923162609167052702453939548807000591943708900536687143459259611369434909166628557104217566625056611108343047506240604407561553375757954783944748033642162857339810268219024165710523697258484301986094596398385269492439135316037607197015818930392797252826163937364700149177391097724396847959921779726852404822495715126562598182396252539925658700994761271878359908780864791130776177698141097758392141610452857749214493176027917577931425988055088726600286837610968347115903755464250839240064688991297650014218244970870470794145772143947735146035971889007137564136010874326264894248633226653454297414472450014440638624716907009782116542589808515930699129368679028429974019367585920053052590551582636010908236847946406922156054738389031219332567814721129027124749410935754022958041213437614444730252777010196641766220755797477612126179446734542223626915740281445192357412358100050109594586422454643514909107121727865650136754789710540887424727526130278399596936320940870209700783657039508033595967238053854992385128177344504392263390330595761897466585106348796935790062343257555488611371360103671997599086822978340767321095282331491350242742044452634493073032576617636338405110646918467642727346800407970985683235474224984316663119793292726491234822360501102996839582288270465402293307352414702951519980731435323095136995850872760251621751231069557306388311949413492725805196811907528019650071271702184276260745225894309340130034448370621052183592212549540902290160304482373352914269580754478359638207450300783509757926461341504474705852599511983715777740303953588535845058865928599331106553326065786627713024308343618946632657952027510599267522619068043369199528268973036083537104125507049032411115245639740622910072323308044581067998103979445123881071354904776757184836081558918347962980120860363868136861707848547118644957378760429416612198660987136884834711598754975201416174811685110536849567591252399069877357489089075065036680506368306467927376859531686234431224232613470852438119007729756193994729996836220696578668782329374430869323845580204040884058443249323295704573504298514054372124595967578805096573032913687498298663896322831587527854172743761856153838885458441012486511846253643465764040827059962918030407449765111042963231023250782652711556143032758187518492308098309550272056988758493350853298538679842557511261144302238029393043431205553269671100442239073461982723319967452088306677574895884761865661713656790383150981095572322382798554799760088236353387282839622924899846674486426180475812135293241084488680407865364025820684229552729587912243704034872466636080221091844689444065349738876434514985104274589825236887856625942787805623105033240191260365103615082281514530420652438810449305308691892788256501855306615647426892909333694725462292483019055761391280044973162378652762582705917050962159008382065840231003988974456115923211158022625427637659953326142796562369875255150122262584377313765279510028580040463402814786880380060241498397342543496661224133242405518611411770157167995166541319186580608221739879531655582128630136840440657823550206882252328926806258143455832277558151685268680000739142633523560244510518265801729573252254508297044601637384307057443227755799191017071559238790177979762609287809035933359943313596090038120035328163624713323988988548994775217784083491079309301510295500115806930818723606182069710606182109088495873205512146692505836051960390470852861061474455510423815749668348772373036794061905133138743153692801516732703176842990077048279376282787200728626168795999710786280832037331335153097500502327983896823364079175012128504113824429051749422982493362635377623726124977850109002263528135400466908619116047741744204241797677195942566534260937752443700032137572093482694548258715395194305506678623661722679469275133903191648568844533149374346420657790705216357419840705928894539662691467481650332506668822579140519619117592490791539201606025603013860718589747332233568798759715242353253035174207480323844231419341310626728713936276377482906573129599296863684917773579855616675475031156296796351081297704191328898164569797981405755064886662979757107983123455134490533318847044857410390572268626567111968701934667979480000309010636630232915115833723707164871825488221412305605074682298916221297370968177524578936490797809432219822989497784767576260833131644478969897306290809658845146161705973145041807733649764872554482899117745865614533601431449197206442294292205494464213403121214359267654717278797351639940972622992949647917068431102867604028626148412574296022730382019372738617614787472335018129580129562869555589309646920626748743673473725801867474045034626034567940934208536039382072801929476478097349227110322446862139321992212853417102003656859592231054498802187977284076837387325889724621154906390646269181838986196588793838759689537096791316478679030510562539991766649750344043989903519067504683842995856983904285568198981911916723038124919195471808545324228239473973207351792645689804473902157036616493565854295877397558627909363426283483784988107645602324324963527433109452269873682542050528819889072280296213035745248674369590882440713054534639238596018685073759811032063171773929387075707712318275930997115933965759031321268087593921093602586830747034352183605725420335090427430027423758357251721199827227990902013632268545953315401017453594743086257898596300680566354589959564851870642049702660149126463504287079395131977543060899306654017497528175227530314747354982867336014783443255000221355811858211368176464564105208513538450851431251461264018361770077047218250458809263056973437474666058737908702906763315554141589118126761514490240163884136281793655837582186515865005694016841939765085460656974253113618037427571103003729932428112428431185447631558831137675666415133422639416033331522129982875331002186222066163360821122138250727407695817035606123911890059394083121353298065419133301592578058768642936326366295683697595678330805856957661713067167896311143708173252155011971400277964029591588822739178389646970493161091515825295308506403200047386600921296055486560182709402904643167632399584508070645179757885072543198530331641537610649080954879524876449200146452675018568536894219528578696360227319987304425626498887354881305215094438343407852168912302562911042228045774036019524656020974803106552327606096346959601433060918693559281121263982624815284893031403374585854831104066132831307945665647486179797436644455347978772996891445710368416242185408847004345300822631077301453511161874086647315424068051774579428042851423878234086547570101651142319515547634321297866056087196372044892646308023198921887980336854880202685824253514913541731183561826846011147719931483847893700030821578241377955566343724331931042229895841017665372021556606147301182807295418970648230479479899059772090330716155861634084439988159621791294488695086273201758242237168555361825859834107965968924960242913793463821613524887646254926424880669799047155309506657849537973246370799849523357847505265084379858245448228349625699559084860192670067395234768228953545966875148982998520744923905308683900173991090488599623502045097445652465760018731814721542273170723355771219249706692121420920190511012833246779114749317026932675657755387192484933174347639755201986178986886214143732093876436562021830625763583220213104489661773745716956835778370709125904123582849094830576442349673707349943718593730190827384303361576151475539415645520660395711130758956077560999974474115252665670592728131345196722919492488297084642056076888516494901362770825156943063714893933470725577036663032177303549865126967351323483649694270136773843706080422905346303271372206981000885561644976647727464497886305771859174366800652957370652448021068935737382547488402821240660617145064994701066352525448308258493324371077960892459088384594442770890171267103969965509552737461213989512961711583910404801672321361008800155588140748787408554109167230559663550179907129067344266839100559143445179488522585434236802118639810975491001485447615274390020368017196280296782640263941751249625343642578727512635198399418865858647894311575365255463986059861044185341589205715519732354022728183509587399693596822711867669786412931905542787574973805759954184999800408342638617133254360327908617972528702577032848806687688172093754105927309451759955055859741132994428997219090992665310895967812440174603499558539620394670891625708723332328713643076159921479453507141141615564401375787218266591071787177611722922355380728063888162857718740261331991284699690863298022064591074419137509261988225633038607024090827218825527372362269056474342633067700118816404086796249449082387249052429361357162748325672256917430094434939590424323305180313256017250296171389189156312439953628138734679825459243629780931945196330617640592612422667516967829863259696155220630549724702834819044315303087909323550584722147260778212893300885049557141707959602276899325009327656633659207584877937717252697102451055224171931692261442064796207058468523544725286782367106992436554159676201091993871092574267832675465743689936385450386729065834156109418621520908913732879279054349156659366554409125641557938172685471629867386902577864394048257394629452595045460357198852351969941263918041085872884851255440763379397191887918641671419318701634888828158311251853479621406691205288257434174668126077937263215668542772368653159696838500798213868350697625539001545795364064921377729089861066832441133699076005935578551099002903815741940565528961268321455319926311266548350599934445604417173940658635864436167063990252769138918059659922607789817094462613023973438868598111864818918999707467326226135451810492106530236389625657095653276902990857380341200403446430473291027671058661254995889019603097867650495509877148830141233212778877822019234450317732653413679019120549844588425217615960860146380335427440878548551566191413584464663874802531448490884355793077778593309641380032594952599533315832021568980426523512340907346414739098604279543497354584924333299621481862347092047783461770964962287762020621307122407125849164505887313304415328014266882583347707229173771883745969348647112767592133260226719329988750451860204730493893262595059007103777992276069837867148598888728448434210581829988271682031043948165683210010539031542692873787876078001413342749457177666877260248606837671549808311436754242191812091971020456451737961255352975838726998099972049084453813769777306984745272707378408414470499468149685435005310512792656535532492283508868977550341477693527104159599743163177564177382078925752808205884012242041538828219184338713065382593715100638479671231922938364695767903345125072437207149024115587625766471683277646345525256440057446329479049772937180877467212003578543095417691798777996743433642370967770733959546614264812235945712672819910255527479942297884462562008464819672096690740889579439071476863660874033597203943077687120199662710469917887297374514062417825291114277145083633879216889790109201976438139206211467052799912670648242428236390164994887214971184517577796037852778710371144555039870122394521088533954217624098148921528363955995791522190758752321239819468574043822869120987056864614942420527486600992567345302613480934686464324310087486211981998264290978487116748604755478881157907034167086430771489171635541114842401385829841757350728858442877877761157692477933845668440476081558390745751300250464522123071376141741148834937299771419708391969842202521501661875667518158022094308619276390859228532377431417359483992382255772381465036172637806737987593385786032926990618748021718347957792842590872538066749648311011907273287906748021554069851721186594579351341270809879167031108833772647879470682524125126691809699240338733040709704739547173171473912742942336889187121279902320431628694815262716991134172980172025737615092181249962150964435508371272531386424959323171884992957177388248725208346480171103191454609335609057469278150156882624937102262464123369796633547242390127794313668546166494797850265640721457794107448979238694806845952466073098649792135223447945707553589290524135809607659179109340219761505266782241249282001668822464740363958037633405144521182415273253625243149524461448073642488656796745867524469839703648218207825006595825899930472938985112280577200063800244363482406558410325796728307856456775344462131045133450598804329118902940251436803194973159236464392566801982882594714475867843462097978412377923925875633474411802173822275979552356896811368155614164433173006652754001334355548050632919806746635443836266370016523910799687090178645959953311532854276525896395157774674479270135423085511045052392605010998898715179299008962994773454869965254457023506335111567152474445746261215887954453377814911790138812997012749585026777559602696267408396713996552536756013045820508072984716764370688172946966288311630397029116018033511498334900937697140942383661025329884190504030795133729744447360791024028954225689863662121841692866942565549488561612448654951206268263273847353857360637122094603945420743844730730300737450834942998543143608450313633250212531652400626696771362159267466171386869978163014814566888975002252723746118488785346288058155286044188117427246351837771233881747382396395977972940055546856556457378637624847581968068781486828253422628356586952750776722919950990819476093455395175538239062381572285096777107298489775455468989065030204891232701581376407237498058527629108181489022107948198413178450073012186937199215730114828828684772050839854623200221925184190710095759489574064542094295186669050335663267989406662821459298976541552641192913933346218141977290925222104428258069222535276071239997954822329355745943493591003332897445693070323834142701195127842882562758022130702546737875584072032883574113480511041519117435231637989755554379468000644067651526925126383870179218100026819000559581451709920117399579804778795633920675308751536749773068565727510598046548172541733761806799835252054435959676128407537213082490697330060096068126232662552867933182994340659904199487589014005564483264016093076600188664889801869969799961428379486983453698959670201166608915097746115399030521035091003717010626820813605053234467077792430257596731549049311635984192401988880436408786894885471278916271438302796496320824009995038913304059127444363727869461612278264873459836549777468815073366044544264804303740549782586808627395850484146134765705088907821085774065204203100663211692664889993294522652748394699822513196661853319859594408123318245210731261549475291645192017427461915668271003638461360556187649851498419090529621786498493877182804284421390750831833980175360731890264014157527627268948116699926730173393842778611150685187048445469850378690561552004470880315869332636043530104782309637734605936661526273185372870372855020643316684533537947119453373536844061122747547401409729110678766638471406370875275359958471394319294703669455562641003343224813094026177319294006314788473198070492189978674759012384834103414119080776986496748323035691872216549317061630686278231713336206418456020843115085894278120990772303045833496145600176536335010364174446769539253017469475349868445621764149412708443021104270836484050858748151658432978126496279117551297106621813858974960682177248848797291973409592983610888133134683808625707323592558367154219891356022472345742562303312704278407366953098424948888782829217134512466281872075387117164073863125762708070651215004559426761809517982243824141047585654299892408031082968087848324169639747902641631506597947820115658382873475751071982442589601431395121151705230979194610256135812847349651115704179288626820545169083356716626685070149549597399016156500871748224405445595326108081946008845631209580690494267439344775283233643720728745953960984612636997777472310610166404206295298790202856125881867516629448931151814899293900405793933160536544569210409727591653667187312924356941943986371217559928288206914267229803272875623242448851602659468842594680679661265211998147433352695313601511215687167990610730175052917507678302563493257600810149637595813395191266439954352966425652338005775068400673176056082933407217113850483784535288216635841773476785592813137449516370875013397808033368839057191629747671299531204729723488140466679924277369340647624114366807117749869762172430056813652042957886603541570225137871764178737387408889567027907197365029330525182997444024913613911473545179485396075137099387252654504055667445137645516459419344478220469849799900809294528876780523309136572814295045635289814711861424083143931191904715540017215370189179810487684825015410540648241425137722820034164238867213115075551739955887908512199559055380095243825738804165068582240801394854306020085402645563574372950653194364776175257240589390674637847766436873015119776363061955671945929312815047295349142909588002584027474487809658779804850160338304416467976502238005329671015391787680314501237527842008847492730587031045695743661965140614140363002602256732479826728271500499230985064522528235909532078700467509315356877376072187084528011107579369991269345841050287005929056686406634430022168330321353401633815595106083681755212344314694296749254448094391433508240816331386285945890418988619441072998055512423503983058338231894643244687639705548468675312412594088601708057077222428552022931204349341057993692401438211504174955156547805023460455507340598210744603444107115186838737247704671153150912611341648333499095140346139732514842405898419638137882670259701802504622901245116682709424734216817931102414844669849675209255241237103261937973030117548114570147149781886435448890131515132925571817967023374569586792835726364948748112153136633813955937921686160067301091577647459517732964738637676755019033561350956176680393211714793509185871292976518682602097446916440822284690048680550800600443610024982310033759773127589061496772059451579444736535424831398030502216976632693678100558897845086625321191700296182722070309395254224393065393128304053953516295011127953087531313147373308081689606371176648498013631816824594965575305416772307506441788473574692389235540417446941034980270458454653359780586535512683900491390012216654323765046825611049682608464431190307640624017645641538180747199549214317929812441596620450670876309307617049291977360929000382410697017642785304938661583331132927070389354698108620874430714874704732308194964020638129079431166586721239526256865914965522673699575977527253158070366976144884511785534557796305914024705690148022299882345987080727263357496492876888181490850120693935848942945641581040932125173524343998229556184149938255440982339136176459835980395595169669304763917350313664421174937679019432178834259831238501178610402127053497682624643439401554593710094508532642321118119135690974669068116615419744224967720991621810620122068844008920503506271616564656797982206895450447291532498250556572689705029649519585744977436809756700193369546479317260220643698934678072992331642235622836666548166533071734116140230464753876011925500255925327269106865845702152670216828587094394370647705318627518654203017563096414643702064909623884391269450995544338113400362141915236251987938492927504333171984481317123482068512615508765598578319528265389733094130585193857006709384623403760875865325013522706640689355018799001798270988955951941943524272726511601328784633598313036349749423172691007361718397485535755083657457389504747292699913849964558584285885162066932215205206968091705610998066981366653418732841561812259295559914268176434207866636706606948102412813536301197160260146998374951498487309032387117504891184377662334364065013917173181477626500214323364007008648615318825443865273402495567030487076066338018402144558029502796173790954631629859149235290422552517267030769236744854597816872097822182698722281502155100513510337059246804652003890575914788982623589703254857539411139779548940676411539490595433325918591808345785767116351817187716062943667744342366150376573089757733382617078341471826448344073606364760286000891235100161970688867841603171156446596210648443327759079514778501554902371912717803935679370020876697751157014066461251975952940130614297425400748358959525446946367415031763003910172738243212778226755143798543946945780601584567482889837574398737223819592833586339681653731211221555500975985844641189678937543729891112471995021178882673968622428503445102529236383870812096311082216955305100362022264758726754133294782175109401881546855961824901162598416185289915099885104475379887141715358171487931264557423753575841636613901915329333695103043299451656771114254732252878960718349078362192241609855005951855204162412911251757948359285153141435564114894363608116932524012914412733243623032725644489558465813755558689595551994800149992585230492146298819612176232004058900713388417875182762474860095351238235794350966902441537868206359943745646651938811399272078069361862035372841660755562966384485746971830195857596059314010969975352973638795874396174184076616694526134890091410718190322118723101374642571492290574005301092041230440047966476957794085468089018130874275641024233133038481922379490827188675394378973178161652478786240275653756243484835551040535323219306034375497826476843557664878472761565222779290534301606189766941712480874200186676812925451981549779885618573366446554699056871027796544268041358066873993415711801468332053510512931880406878741308128569749740873300761182972274404778974270049980512756176685337007250679354389329849320854649890169593544944984929725605516343776631194080211049774674321957540188324037159658348811742078954503275219965518225339624120962424093218903361061263485756952648640813550445823488747055475582047222893027796937240409108147110429352374791238126012342220130628313592074494908270037235250973541983005281070891249798014268313196239815474220953419117852212572050321646599021424682216519720883521766856382375246963445566749913843246615945214128637702607520343123103080050663557355522567431497623127872144358121757970911129461616262810731230926799135301413775639884399474486030471152846843067698234886812604966215942733081117321431159809935808326874045250180752680565709366746220226057126373329348299286848971101466006267326745022563733347247547608954219214252026543219348107413660047311086423627414767986835971223511843859194926177264834432231174749216904624863794638783380351008359695985906422191524628925363940347671376002719842857142916543735865316080886639295255511470256558599977523732619983093314836567921443665748708827517216062910278748798406701849713519125878015190424950723889206317756349712308490788615727974402075041908493353182105135950622370212264670437223735618020467515350196065449427038553317224893665607394161334297452886278430484010421094592667836910395480213912661036470526438570339894047151928618789936023353322856158571832887568505656580743948221996690159472157037328104775790310504670517112838873866729243109403201081509748092609851909902640477700616823095266791240562299586631741799599904773860874108462882923033133147140331332539272527749835403662548660853623585297351021718931796866106454747687158425075451812583992166451013903498211920299780316139965586731623339683588125192083098665700393528198306474195583353581558322241995756099357173090799440149992182662851642575249275533894731997339663405746853069224088575912000731244088583327627312364634036754043618561761207967856466377635622131024588316890051203538242672620404414852339008567388078770953637028461208204969262772165466457039339392065734262901132637872872161100969143270426498092990266024041428892409883296157476653145084181419075151961946435513156163323338256709284517024824630972894528477593191933113297501683997113229159531716750427782735314574209081464008706692512796987029883531978373246333811126230471394736980463353562240217414934780048046616619667571558155427537072810530498153184341810068046546481741630790897188738076553610857776523458540989178214798694998318809490116252197669422827527386975566547251927561798156228712565291922414782092937038279243615505054492264004112649860479186740942677617526975687859602814130605287101949839966010807789936809346517567214942263625324113650217355742049614356045430030474610048295636281728030240286760410972526631705079928516587721366620228997325564909920877622156820921149489837218063905349095398923048904682949596688416897787856877694707495766505144704635265050968227938872055045866099685774316446189358332629457037497002157093422516713017378254665481725731672166859383695487962014357511163351577432141009538747676706444099266109341997501844358164961567910312037211969215110251469861358555648073228976007047539907138672459012037218776164110894418720907508735788020466035746746228745194770681439855430424591718635942085971794973260625886577985155476701564146449585251356242258083617473097205147150056551987572189152836936498976594916046481160522675613371366080172700881307866007015310593168443735085929215102237593293961261226775104193058980446161567328084775647000921661135408191491755421653183484153418622505279560620076509901224747445931636021909975847637416897495327914901105064185664119014262476417117085188492130470779756894090964503781371134491183710220618802210700647660789198197849184604462566888019742296737160556890498418069150889714351982531368254738331748923096982339235253720666983392521192196286882446823324145444688555967356469689602681072486186231904337258211458820363701176247865858244672204961065258700444539702358021179339222853989089318297089839856440144897263979747333511816440858884154415347218229833879914981874412755252196993066132956583597003071807562720813821287605025646530907634914111394711105231738496512664055634702701766450462560355016952883498220904763805027650807760141418333459048273192388472809169716518676256074147258654900188189583784357645495629681047765507644572726500960739540709042259834002126232821203422323875944488606446473660478924161810480698075895613694663996275885620226129968010943517347456612352414413768312673568053958616619646611891732256313563934654134737018550288943763632884181589234946631876674919098699751121725411205953051829843923894421468449591198355074800857469761880920646437262279226585995687111074014937350683237223680327358756332648454451637375246653978311808199178286534701849035785938036726705715745832432977428909254403711481501440940140045203180689863789293718371908584560122973015945454983015220452292842597656061712015406512461074857940942117423786469331248042737569761736960946754695139135227292218161510474171725337000335321846414227841082199173456863074473060896411203595449220433386672789529628168600334656526905978792602316543378918703145321201218413404749405751259547058489148795240575951380680274622368771377911149347031918501847647660746886099513798176167363125354734802747146708489852509564611672692834114393362533994933232017929503729226168760683153030433200338143197547185898600883921677499927101112056026931515136454196002293548083137939986756746325321905084671103909757475173660934687156726960154487364077905222118388900930986533659759635659963186586891063101825146957463668769156852218113040278140346683689682307878648281611082516474685406979724640166235603029970760551652475657570589811027383379576692589244316779760696015991797652693512438991007104917920448551627907437664133130674355246126605665814800177962881147590801843035808508329747785496645156488594847688242329240320922569394428816419654053322811615273156886053424892130293237344589763658102977909495122206531978168378279595307744003063616566078831367717441841697438457042238857295241788952149775735619067894869851816918180108353764473542134170104517631730817870247455156191167122779792891113282712875503692347980800863773095008173009426056199351559057098798730981903600802397159375805765871867314242892990746655847173428259336537451259746199921501417204722401226190444071375206897066347029164777680245071997997012120098285598466409169088340585717877967572060767965038718147479762127837064459525347439786796011335807486163248531457510170848330252251748229811479525156991619264760459705934483601009031732828086325049841139806158129692095970146340795507707898478118632407460374059764992024353329747834833036414214427907236468820123709843182051901229231875405626178123056946396939227456376435222520369052700305556761270415800732048228242580382647305864934490636973840864411550183644460003733810456209917356905897333295204797139271732978114878094869207010768511487747626461045229115515374185724916775338194962753528417807113688668933243552275238102252284060573819873262411211003134398425141522224410607624605072086754618605567955857629282480410869477422850956645364942633826109642828578153916075690055443029540484328134579063223674318317708721560315595602267930377982989161488767520790680686368621203337161443345014683455307845160722297935777438362533122920953295603695799741280879906405198250129089244388480232103268831475761827196738402033522390622887535092994634269014903041065886656363058379724631490009377983097207926006282592747635795743537451764729967717381707601501642272568940252422655125503394815503255542744048720014679728825468011875176425067556906451714795640266005608241926692890703783288387621366684360885524915040123675351846551460280572675746581386439758784679141295702249376032360909627928256145364750466394250200328636871887063999266004956571018133417604435689764928945217887535887378644598114062739425536693788023520970839581848995992918592912737280013617021125552101097474222656087600882960794654293666788689976000493924801936128725735589289128676004041552965086316520243166911681984583545466603129818188499702200849114554967256989410939901501959918535099566125694129517197380227343945686969517921668612646902149142601127850321641779333542826709760408684095968811462288325603707645960323873364695755178848145097605390132000989565396963207330519891145728518842575665622641981485696898548083096923596115508146446633029185850595855867173503649102050246488810343137231230212129720549428821967127024358907157247191374245761688701372066635488529604205092508409594216488061096488398663172263931141978987115924050452178165903798324360407041242496012443673612959422691354290177103530815032803230117955399125671702151041225078423162407725135714147015189638634933019910193580739739266167504006874777207530212071002482511106852040245405799579330603407358386471182122219806799397096455284733928495780431814158651489663725622769372277030698889895706276729633915157743667800844932945199989157039166003850612969481122524144321247096952253005240775829665483696423080115246081216043876077401335312408136676324737314652354287758507648456031872020912556452816962307555327793313889187710596907038713035582571756748301762300364114444319271032760934869925787613163369649548853664639444512143066831776278676553288004869961205666163708573502808333021409160511511488338535989829676308814808521168963726444552145332936083998278589683040354789743043752192626818979736651561681282817704398018402306438391242825404423391623243408153363907417716962850508005980221600067763127086774762483112855234605039040799638391445055043457224923183251812543326512002051952704197614211471257978105499049086811514136672113325283444097378396927209916887335803922992632170806171527327628776253050066774909681479718280113564688643442575786365256942409741422329701968599902943259559355472522923330483121206541171665600423826601802720977132215040609348567454859109530906417874779605494558826625721630499297955800194484016042564809995982731811599142979059877466442117025921366327107402110676260138021140041194473056932315276297624500726523300225146978423302472024708427898730665739806051289846096580903866069384576414742556805979991855677582512659922005895910368088035346404524304380912837133620206675147662655070482766987948233130546274638173142361212745689720355124237036382772050538220123264626828157755858735841462666297521017763827084139815142354452569873305678202223892500960676496776580852022027688633041428378189275710115972983182205544867410465163284217363439087357409612774400443410298071738820879107045669354831335709554197458356317715896553993684819386867404152389350627708904617066567645792104076202371073053616968703056116940491731835324217158063303813071272288643635906371713349062371790015510204840372537015946080089468483477827361748708710346606250073230959442019043534082719499705725311000618723393441223181750516483071940130641341787769930498764083263345806400902798682553715750857075737087979131420840494080728280031158052525303242431166224250381634105821505775099940462827300139171218012931992734719706688352888628792383274623040815886444892369504730383025248907726443878693544497346823668843760928686784073522326894477721956570382913902858659174599358737188878089988209921480505905027778987828686640565518231113655811537691742125272779127938911687238947807673558716067229526370401773976655982426467156358675801194121303695875582935328138203636353938224154445071154217569549656739878898733300793275342534648264020010321458797149231319663452463839130438992148402934111394868112710588977324437133257693043874248349008719871911218608275663042938772295788171835279507357390917398042511203217923701191155673936598727297928543772228973332683460720818859873117743821099460041439392776128185172122952716415341598820197890910512413715587541255731155198430848460314456113021226754714546325831211297360644082902020846046800964338915071732777696103801014241851781633466553988521062659400775779107022835477169595010764156623990952006097133552217333692594344895480710808963734876827399920171627822334936581416022948790564092510335681969497730160996387490453149428686178497703381162160710900958212095378444120830620180110483517249129948343505448617578971168626927627090918511778697564645695166091418992323006753984136326930900111443297352806877687060074027427072217185309550326145782242324223482832848941040309214887214211570176656021739965775477010009590774237533607524749709989094499862268389075359322727752100022568673361339081940706589086613892550639541548224180955475477758532179926885172070169357707226491044589695687798105666322467771557694403049602885587314766014386691795155221013717657618147425490421857800677511675523688097675605070394502923072138326355301596583325519663900530975967720573482636563147644452080729417575779355208938159958658000739978408599403632226089450011350159122201452248587575736773698172444060025392302288327331598869933323760075436583638924598149481386989573547117809479683577185063473520859269649170045438509016773941643661528821179190867392204518135309318062416334109818729766424666423006443860086921228744552567656662391044480283558009833893559354322071928401158451708492955238072926204718010302827422484775910401954148506089985246480626504541981727113312815427102493255170049364451870635846987087287571535543557574948640979102692318388845453569309932490585441135162680061179395269580668078919255551945889255962009570807946409907187260278510632910420600526350955295031435089765272811797182871423000064981109081782636652638550476666189069785446663357642629299021285538564094462784003293743560946748165609155373858664406139891606484750167647397422663351522350961912957874714746215276128464630890188222208142516928659907798901958176850575743546152503055087057074737675081270549854286202378464111999812197793802150879417300954497446746158276308599365599456967423048849277226862890799456756349981857793052238548968422448794398853491314436726682290741567638118184469148203644362685349183431992774880165835195261955287845273369558397218079164099124365680829908169367572531734529697090020043298126466585305867869764286980778725746908403614147120769972776890887997953207136072548547510340333263089603782203126835681051689319822281047147157946290572864296957451637129542878934507534022630885441580712392772980353373126199761386949780926197947544338342546415081721244668829499227335640716734455377986990882844729877751594852459995356482265317900946509314637279694812392942409261311070019335480723470594297507581674487504574081581222739086494992100126333473197123252593939524631303107796320182835690468494246017394876415802956540517956142820215398025729421945690285589022228744554392923209077871712955243252048067005937215350641086347791451292940222668306675254993891712477333844545119101027948385103873608007412715990130225916598671020992984519652732223989429117455808076436370978714830134584311001509293937639691411688485840322506393380447383475272440162660973036718213068551061310664775429731649687704331775171386365094915541172831474580962522467284096786460014824656791466005463638862447799057792255778205951770119987258180561696568359258808339072153674776431905842650894679453518338114997520617217264763262623831405425331509113812527387402274486021303708333413142855697001524469178770902037964825591560057185862318338024840658600423660979532428751095117286164839755318221176598773654354668307171895133545242185811450495744420036847789772227731100585681004144451168571490595726635170592605325766193307128245148807557425245998019353510324950656446857047073504882954761157020115420290434335986883761484523518665799260731982346515592438743667440911648889306205222905968838929000898922003132712144827756526281860981707396000390511728300860115937685372256901005336337234993946128663260590883561348313594690933120477623502406631950578339904803077378510684372257701109843242268274146945380424371575725945815078982090849223646188523321256670554263230321735107077784799103679561566947361435548428526648778983644200558275773744841673231644994091436340403361287328856799225513365078429818589971262894033901142173073353957080594564970833625664605659682941913752117796347876501249932615867210042463152450114164751391464493191776362718910572505580116328644352842917875436785145932003378887771271841436743231848240410391605071613614051538813990502668619446755630667248721712811388965238264892601558688851669570804568705355473992626763788228512489144506294228622790548853755593781616951173586060377191385370467307871532983243122950920590893924444889368500683339142926114755386841351662477747445596708922531810950224027430168868772236973088339135448147287682455295498120655250094778468861104941711363264390629038967992843048220970278923399341540649798024972534613091465243413801214891229704620385169650094672079733606741088836431508219468859954061300878653465138722275905239099775730832985674424901947790549966960789854410128732099665881430349221624253212471919428287700015829491710888819071124802439850404393284351396292114921149366823869147066014034806491599666189001572437830383550952748242552930825760138454511677748906373385504748356260938074120701076783314230305939639401649357840870149169383352215234626861297767747284527531393191843637787316919397417240457701620178823552026210522303132885022837819016806993385950944317110770226336553883102534995519468766902339422419038103823172915651737582134755665544901651810139639659230007942849587375356146571295901853498389096021155143056675127517431827909371978369415478754391889445752428099418016991266538425466049969092723077065706023122974343087629831363828426731822117436634561229051960191400492425503864823292134544670920913868731193222932552491070654642427810931081206308396128832691095613180990580503571930846429998996294300943342159814805803941250428345858455225086198280405744116818773970549894001402687424108847969404496382403745751489801427110150850314804846226452188294105789459921127063488906944599549432852745435514361697763447037041778650281557350925197494000036448350027385847923827630139238413982675642917830108091357368430834550991023340446155168449941669556379743448948469969526180897533319704499463986609875490788050513125227567508522051491988092660916214016892577691182363167176480038949972924239280553569258523081835118724309888678911452725658828048192699687867530264582042365342990127523830587305567959137269291311919116578556383449929497389058406316403839959221471115660902833558591031420800412269953216954668271503988326156904702588566748941857408121831194206142394354426382905051426473797879071855060179258220567171315271551197242525573327794701928246795243434978237682326342480531452768308326387895237763172550483780090744119580456445898666432008685422437027036530466907710289615810096894157717713348685109846742588019160637631538470287399907171981412613315902483794150067678048515770720944532648186054296120416514254164994875714489963710924098582031965666261828717602523627459263384234559758944141156259200962379505257093022917183266269696718923758605241189939879398161002229479659877657558871309662617431753453684452633141279301143874142926113949653267903543719349512529756503559243199899207003921426532931118736805696883273588192520700041512050734102866749063261725627459105851290302518455317858419977509072939755148860632260059425993488071726785079858256622429703505305011520972124121045796570581754439198790516123969554756659510105794809590893641210187220409596004387119146424892601822993060673555109304953418635270875458064920939518594062551464812852481816111964376649587625238943159674521660004194154027337579250147147206730522159180626100559074743099162672487760132248830877777523165876052355108292231312601504765436701826103953475550427439032854482568575850959351092996839184854293751435670795064647963295369550024421171655621560444619041827749247841195219105088360508135382188732045317429686649204598528245651844585174345807487470018116508831619675207614251260580599003227056686639178408363790971236006768743560397322045991808796614296396585727199734584588535512998135544127168994000394798657100618788911838780016859769070142164232995633734891835773580248365660242527861858381037243291465466687266076682046948912964643200454467176593793252047317439270617159381521347675336419554759425343248489555807690027208290873171843701337680291739424416801779491841959583503544511606598729814580570417929859174496831099190361482839428379552339211880938805145758406625198815137390735018875972293767322592582887602747757043697257371280301311497418630328999679883952972390434586705959857015669012579293521528992299737726056151028034656592405588504949295937099177801593443460363095104666460241527591993512625585227232155194367917535697839203126991467665021250707314987456710751264472223809836398175777744798013601319436090213909230731264346790734730654692948907323717606997038890532278795829486047878287556052145325226918740609137387154090966486268563470431718615856388170528839348174944860200823756237385448375320381811196460356881015271561573013677999325304837154408215089782731410086038712274323201711815169036822155048699711757212959715557721486365616292146211519923180438197532388567368657037634899216447010934647493897005235342089839087570321106213966553596576605277768851912672620649948631506696063009318171912717330161538640631185726122261558306284288088927903996304301847375421735798138775788451784969377467622027510115047374009283569956311802467896926177951280838565632499055182073799959286133184536394881223855270446898417963975279677409241191876056983748497685158525928411464984504779652149132871871600691991205538787733606555554128469197434591374569668364145026731312835400661973633680558947762157788233243934222357438600530865402028145031494027899777559048314031389564963254401933641625399394036369539961900070523436340373673120655683428861159497589059486051796482358662497766732390444667693807473781950510057850417102281393738990974776999657422956721219747043409806954951658785170523937544615241118363868130630009376602065501703109330801513366022632060574676481094065518706400874016490557764976270332820219958287195391258688807622520008769899513999094071989505493666154588904577305392495543425761073096591676460024286944894327294227363476487283533211711190053824540606753188157594916948719514647615502271670776649044255603778953366401040734579238220027267689785411529635929053245425346734657627562157533557678512453712824557130704942745530278902280798301980956816454307603633692237722030519340549847285577938196953752320092702309837914656644906013971742434301003074454380880538204092713737370389766675721096288158769501614602576815164808916004401786072761955762395326703947276679671411970383877384253990354451457001879286198715588577693056815426914667838775729110669873476891042427420336890921567526931027640366537263198050569719654716069541333154703814862864637997963098786583857517257506014516272881139126731197610915559312295840005184753227147483658052432178223828342582278776780209683231199321995861240979456103257823523532316688400524391345105815403380431384253318650723573291092979639019243210326486894956391675472906789253475492233929274441520603874163707170421745039548063394706531091527732503589781812597856847791919512743209146415627831532136871908827482096915234040079116597171467596367128716213619581330508932597028164108523046548174761535670105859259585829347299314928809666981637695892295870821232137426080486889103578833668479602014622046612781867191310628767298691954217786400859942073425786377838874655796158102619830021555608548676190778405609291439563634058039034581226339651198264731397714831007863285276655322650499111609075296476060080131438517693352134303033258672324702324609645491957950579141894753189212403461162203752871144017656660146649179671627292770885552191883505576820017127572478155678573060917872790528154974239821016018966243660996140468212382812986166382489832759885348117573935453223388276585946246140499147945285316623740719785281275769249635712518847207532476328702616962350081569280964050405476831417720015256325103151825973542765609110565004302851352146823184200021182999818978224063520487820283973896170238140232057053795509940774245930441076389850688883157319372266481118811151289906958295253165906158808166154336853424479471712599748787674156120532458786989778469511393265598145172760644810103905510406900503403104032963909485965215733094921121569637598441849471928738445379329213121616716357783309621118340374566521475753747599492756555363035131741063879882085584795315269162873451684459281210311352315306090243217690882900689926160224347329212081533497913589736452988162612585192178668108565145208128476703020878665083710832808090397480659178208256604844166705292256620779197195892600870748961543648664253290733749575384278673546682487408338936140056175681875580499223794160989021252968248150807913150478720721376919056772036099921537873388274538737837885980540634776969348334484868578433665521238170439749178257731940344995552299680832924990082657480966537288230546935207777216315161123326977938938557564199952161742686120828398507620102626944251765620033978567492245007705861536374783681241719211764500996679566560358399707476434269361204722143730384973180379138057804503575758950284833744823807799466447830091456082451610374937277898220743263968998017668657377570267336421588950428428787309004273261886675085473355904208900081557008489502065652540893599077368949506294144706872657280683949592847257016759647986863009840897071965847379069619300765144704093985860209700027924776575881925101303234083320295945244545798748336110394388411638867988641208516824929080471131560452451647760861098743956114964862075760203525538090572948398831567618618728186379348794631008525341803347387507120811389116719706306396526393499780206534969434685124331440571421668700555945197331170300493825579525318604643732932320951787099741466271402022039332629586460126219233333652868808175095408860395380677096028135208860562626536906227816428938192351765155628579764004763439850695225056723226005074533755928686253024742329060419446263938979333677301151876743763385212989038446570148378057915770383429705885454122834561206258158137982317280305984302926470905126155286892408924877995271210773296570553758373021660453402203948740672714921724113034935191546228113876996747733529787407885670856184635344588317713556543219119645434483128556917588657575462710634456709933311275575454881232950008180003464471318707759880783721036053376418121813668447363414569969027223334068163150288659913179800926519576870933171364805135020687426664969967861943276333697355322404279802190866511548184553043993817998010257912651008436064778079828602477098830364134556746557064400342078761340943073593498495030036376792361943547467463522375890001566257011502309762194870684719173844636979319619650101185287941759505702479799124723261796956486453590864842980946825656534197865018168961062475658551112948706120143508409171139970811317605526834119986014642696228935227910130197852186599284531198911959151070367366878505460138694798818222396597084281037406564167080417201386747070124997919347728908450299744781944869302079816533453010555294151837153675373254491819576353877056954932842785444558113360735775821732059547619943906403717464604733163490824352180320052659407382162128483443428309864388170539599153816074326270632354730264136563306954116729849933404817037198893826722933324572770795159253645979979704377968362576325473281487011666511457340092982118720623897294268905256071831652591866853065798087126204018291943667261648762485142850119025573867803398628762823981379577848578625623848987467448729494311243108129034595337993991487361251780820548758549269504547765680653579140760748392304038162655613357681774656367093409292657622337329773539532283116720451800997265123232200132764665893257664671708712482665618610293388939018634963852309583145644546098370454536035609648194276043376713389236000550868138057372117035073314226638719098901689796312469621892923570873059516033686875197007069150577063902774043616079668093363901427655786247715117801735982103934547727918477095073981702962781222982302893903967246859228739255948688823370311741020063135554948617864339903707727908882710256490431073237758023481198010697764086257768438673257440346834795012982284359359109523995647116181348612329401802587024069136969584463710739171228663430031849603772183150027818144124804933733667453737655742309055234484560091691846864988461614329109176544916570905485088144348486180775612531035882542119912087108085624884824997838066966593636052313028640801647100663235604724563267066701814765279254899190187924122946900360933635858373761376530936600429019552421388498181381021035479358046960879132016406859547421825204325559249161373867717365683945329421751368618261056908278746695748237628043512084735171040713072272784707026002670922251899448951579082875663762253440210165006382817725031119604750280090783757984069084199444889496723541329617881187923596560075751582607930031806263296199788050135259298437098983967047226816646904613463045722154156132879950601212196850624972074777548889090531374392726267693586363567616708492701696785390189504413476779173039173861472627900828167008068786217538566694640904505574322843662370612392809517111759821150784362814368467443174346056338489091374244295564082339347028416449523168766059100399345894034238643965578126055770981066388662446991854482759665531329257535135228078493356434874506276745773358812585831272792042315139303630030323221887724618249427376608062364752693184168373619663610269406828691577446929559119694064037312197229106161928836539086184628927100741568135410222397327915138727553756943121646468321927647640846217204689603505992972828829383051875893985614877882321611610153523248658236238081769642824593607669323416588461919416339986517128621695132635972325704403018720134982045583600947077300259772146257613841124798288095848480841910484739368610047087745735297648781777166406917238900124829914946725231077422232185562909754687348013889613992233938663601529622845402810982994071851571736733088010885019986994056323575924166459011021383950255846032118470126994965233586693630766856164407571038292873175856163443878828271723586085072554823971427501577245066048253819408651178762988421566800305867457710339360979649220946183171770515042190695109827158018998419265872087766587802809031948747988003780109068758528976097613670103250042580113904504408222491548697600027433405226158695733374922794122708687999145693440181421233830449664203284894772384795063464618479078713501633774360091889351790873511874112599049100319551004009346307239000407456328723110364768854850589287752351120373229756985701742581152489843052637241998683039758098622448289895517305092568590716818797081403595542856368724407347559765721409543990748800985744301456396678001398784230815004132809823032374801808409285581861685187615122362241690568130090672310716376988338369083993804597664075132256673838179199251309147668117557433903970514512355643454678604018237256573489763074648912701396809997032712725848633419333133816595084666225989425216222993562533056426406632958054681384732396648835879382598654936413984640905761969473575647819238815363779705543118885487030712031847782682162699255510373442968541410154382937934107372129207347343776578257442985844873357183439705743799086251409479458996469408313742500103680166148714706119870120012714530742159379247272823153797174507351066421173714362688240487309117501889651069872296685725389595451048026264843749041561949189693199533890223348050569614404028816767218718890943532586612123770790943902643035693953943665959260493827873969927669929724491723346158041147498792928513083772271165264155043530485950754346380408982736602994168959516147330991180298570250443641185635300132176603718100783150900356536456286899530631551408149549619691331225353064539467627093678549308103654691667197629944541004317424757340643289259755654930501375502015363973968686014284832367688597874977021675102285782191250091103147649411396633610294978744045905880009347735329056207438006802724499996083034387327462382154816147578966234319878631112447634569030658765431058240958947417714860933545829698972177542289448530385264993117067201021258288999200660586837033813736732125098215329664087316025979780499292099538422539949881570242830591771332105322421582174030384717352015583055955646056483817740903468222204906841657244241100611295494071059711176122840199664515806782340956908494897013984677803972202663027530959237079181962481892435361287769751364039903001952987358026754637197753076658858332372042793955546612882444192492279925300314615538207228454418915263985250009607838512361008860658575036503439886978127333648518907283405672538471122013215299806720154080039091743954982633361426233992344936833205105968023672568181915862554876053194026253033749084149906543769234069283521907286695825560976465653517370274042878296481102237333043903807900502109105133470069393792870683517408307978914817523211242279437500423269623668709415575700766260772683593877968381086994293087858878178457473390624362706913688078964074707562611859500143483330751983593473577111610827890055285878775794106982598762784970479923466807161883936741337645079483916096829049837181344758790979155760343192594565290032312039565228744658883151879257210739315508192606977251025543282927309074311300506135488853396975613295552104871385142710824754073883341744226240262653767623822944208831923317810915991419519065789997032194968191384456288340203862362107006776952193490138508501254079256665656400126804464153269697008207451721649775662414386365997386097732781064320634936278085344273189143712792163242697869518838227634550563520468159794852133899970445493480358291459009033549377787166946865291348491976959548593893982912432387428686342308233965970355902787324686006885852157178339761885408991791133207440554954816284474080030613358512912814040154644602302907890536394582804002948385565976689304979802808247788177795218337607850384423075093778126441479216139441353257078196960423064105232977127967649833956610171771925650622758650262998984192102583437428346457125804087602662083612296869461061778239163923812028812081269209763359600726240093971921554454852484836988511567239253263260914053292657963260483681835425325387391089893959734860899530152184449878481988078539599701727043416843644022805838292819745096033584292164307332049363989377951090907642199720407569126478020075396115609848224358804399486323763727460545354716597048560339354260449000381451384550246391892665015030351886289750968638121302272948187428484004996571432368562048272123452243892388646977090762965357127566536121041654850813640398073856360805854690934675963054314477395159762949308920668048371140985018093670926370109656155598401608805384622046994855140303799149442508435331280571176281689794302175358170075833613609033227037520189827235099079665455377132929690998557837092416592686357654170614959417746118370046728455355038889584599106237732023027808098868121139679963039270928943935133907283828451592380275376266487669372360953807357328553948955753491718050752497761627115970236147882220588737628181845150097023961028621188356879734489603582814452151871611774699775405378033228734533408088900977720106162471406785125644148949441161373063741600934871679658688290883086950671815979984410101173674501340029501379813199645473553384561345421484369587666503050369195577483200059471726379068449666295572558857130674301839658215218731002912718927422539602969531627040775859813602376897496850070220563828253961946680508192834409215017443020837052499324169436036736701504479340996327173948555262628649894939536524924441959851950155497786179505144023621346608967966925282558487268429467578935562895968539348253273830806528753827881485715734491672818719495908872867481864212101254512202568297631701183609872950747605476024103353163752985601625480141963529396229648725473155850539409571263309255252091973215852377061041244018064644710957613936663723541801287539306949091048421194612530914621980157251699851694240209873850114833217067940057837760133970446007335687595537859532162328486481323480171218882480121302650942936673955546784725187647734177975205694985279475393074718951986144012974633546627352447115517918814717169547513837044391338974203042773876008760500092097388690855501376209218272440873407520891069488271556831697287534943250827751551391524613886958916398225836544202468292081336075646257539052364634627186072030643553022815084161226466065414638589837472600861188745957770257327609922926397978019457352166169547937184119331535925555400716578722923167842238065850919970804899885763572808810247948914512354635393608827977777450427220352702405898554531735642426724057594809805451890924310145430836913346685633777985049660171278465149986550388108876985353386797495639370365784570748907601479857597746859955792812913316439567963618924430220736136866839501918971487381279684579860682621301777177336269029081924761608746554588788803863395072762180267269525726274149050591925443378866492603368698185918380487949935218039605761945631508692154710083037535950819394551031152420007913474014633847345203750526644473534830179981800732709820504811829357923828753949921193501355673710021658413583309405170271803220798378716780791413698506827193986444202770383390503712112449961628002860135250559563847959807718749456294709836751101629763218212748844474425012737403913542710903716855181849979951927190417874141674468526195644847390837504320246998051063566666475867458421492696650910320483253183614254849752965062035002003587783186362903355947664838059432635884894684027800855722396980673320259240161346949665832390204902922692809390769854935074515312005809595674718757212855655303056384882941845823847404543130967239705461645420041131291083494838806055280368919199411573499768003232063023831445287195512425094796917541500769357211600898745437386884078331287414323101063571401788814293772034132990660821620564340433364018040242396121236032279202543362582815239285517944554148986673071998177770699936361045126688700761286355542045569152515150083094929903378374137868519386441201107129743385304510054054876594642112812432511174274126446778676430064164563377377810279730544932499056828706121846912730037234589283001822700264218725344214938082323244161700067805950042174293819254164086378429987260640481112261619957385789295495836668248533312285032835747474300348933342423214557849039888849933023757255947664922907723809837389005574812714737945902159523767752186678627449785848478892843219016428501562938849044853966669358399514358551377682479176194133697881153856499000601435772540830006472632091419108016767884856449961431387182988854311986422727143984269154248135140885081217274316863296719863074784543839095999380818933307583314738299387438561678686598803056504886784401246809664923303142342859295953113318108893199842918248880049717958164808561284498212943807399954942841519008761601291164765416369757633190782663992950552292475531518841276378306519381952526306260212362452676777644943064919917865039854503343227812120616344180771138608857028898742141131803747785950785857949316233937200937524782694416678030211788096695269499438754742732646363481446413888647881156208935796732921418144557626952191341287548708385230153993308996368868589327199392114777312721739185218199183336247208662661004267712836149683966187039040806873788719306295335266750203342811859645358230441551538176184735517337633982110282141798556212015284808874525281358262935915702552098865902781718557989915050147768894306124225392943353493403912617633595584250599870851375455700527419845740264290744779093885881675167782154524994571454030749999615243820073943561319165276651829282957298800336217716265126990110251700826885040803232382487183606683095979443414313592924720756876357556841311494172474749647616200948134108121068124422023450586447667808821262231641914854531384874502623222878859865800960404936574752055522626382105968125510973342066313417732276964068184142684072088222695238284700032827972727297121022595590135904355834050089225176036742374073976519987669553131464774906378912077979041522453588276746243242297240484880516213304574527013409995248544077898006930195693926316187218368342634591083964179072099480499279406761915866844932298406909024249679071915028837608241832473831120401095848343910596518563722979345322245087919770380585538858080512833427953910118662590760483402775632121145497673625769035669016131270103422061092457709254712129002050298803067208396625743521827044288331223465408807228985837204570108945106710838241373148496379616019793942234086047972563166150865853561698655224510183441488765344839721687863787099731470746528677889050309670073729717755634395056885309627071995672075700717152038361482365702539826421707482694569084861183665642711993604700059918451855029374962852963909353232859751041705067604940549619195496244972990642819702028609198491193162611939090201737923673008480784535710466435738285226331174541448592687164071258222911563279122093181394229028590566598885774742014935913930189347320070961060780144814616376241451919631475141851673235811243285254780311423492113495391196184088146845428465177444082476895899201942733026077043566384486841648070278059650974730668692308964689014319786365758510482161766006970958350119068472121812956586865160637491895506977222644611254713260082632694349214101388746740487520771973945531621104352022131837835955560986205389634885358127287794424221685014382571016263925915867194472140686173312827764812036580289951376461677372226710407582891245105886051819756132355806285127863958029197135166658505708431131788144552672723885023838417684955955828769841633945986594805280940921897179136183921326351511318757973861201956478321887426477583621918460701777525112603979471386005732245020015388249754079894555482374084114057592271094701855511906049173046469419380835988912452121066937928034720206596841897898161998582096349259425627610171144541738079858811144411977581961240594951463167379737294056170448822871797873562851928099494142133482957721135331789972615971197532255753669697805739602213326084433623775497829267597356079984046880173300984880831292042417754356795179892265773694485685387068922695652540790496125372627606791381878556064097829301692852185131980647374532771569068738778547723680659905967114432859240955110521163809848135339142303150130282610154086523752330650076621437373445643282703653739438319977291293293976076771541763420604092482957532012264193359269272751328087454015239552836547206130285589178174928677850399539998330838451700336312146749439662002795470647801476659844017434367689701262078060080977057333182027970204269228787619300281392504306877528662206128530529255936233435493687399058865373484080239904955228011438911667918733093252180860241289184567376344353668424130505990764075360334258376573937972877278733781446148160605366823646482535164193114920849746438509508184158934847299134376788651018413102115128059740238417025711247561566543955559081066656844811251646348182226555112845201746882966912261396220894116420864339633547561974997412486983569087363171141580366226184653161429407334912305126245379057322805450402710989418472397099479362912315497243668697961352829210587260318823253647214715278696211323908535913823823687800064846572498267982335769517976135940469980990915212693809257335276297928097855098008733982949736224693346878003578333072149665203502932950037705441382933928215425061162658454056969321465325070519543538343478579481132123070488481422424702079462396934529430016402886991487369943536274368528884332306366055419372273343365185363600478671686277636547171013767271731943451541499419099189068008548405871405595210181120402837943265553739876664355707652115298565806914660887797890776079556965936559710733499842620736505863269887670410442455010519007799873037534363501560632168994768079352645307205690414575190438673301834056618212556010935241138593315996946146870416425033785864545268653676260780618609694268392996699226356819556600089702112550700541112125672654268304875182224408868618468920218727689656025539079919130734985952604512080725973677563125698718527015693989226630804442316000539462123559925275278612029168229485904028985102383205704238704872080879669817058444253523565084322139012530101008506562419758843457143028584559359575582963036670102708771277704919723785839298486691527932402074482462416170208095519958683394588648934672632512136741582779446724632084623106845911204586259449404029803881388554569590773288033713814887284338894032406744583686813786632119954880506405149963999524421335138807753865286910891566903477650609879914092132669616925961087251940204161589470696534929178086590853377521548635600418946698545815184047139585438467942925577642479372925851700194605540750624090871876576786828237782112960729088135568143766147468212604250149091612002326632667527064841898259764475901802620993253182935509275748757162600346323663208067637318287585030221759687600611101010228089051977080683831096515839473854990211867560822852522644586493480674442010389118655688801213299225911389435112609542166366631800055165239597092668533477389048542254722540982135729066934319754244667710455805403215754935562992676592963177291233693234941450540289135422264174780001557283816289480931175312865311171375793610686159144196871632055370340820053236948763164281919792972703049810164205239784407257499345881071883522903220279043369598255581263184019131456426692550825142404747505949021081821206666261233963205533346078295264216151636326236845769863242142393413799926692421988504037116910517249431040013616329405647070201475394973104984697315084041653709247080091406027907243104353861289724805162577244176162370886091341559678894826906096036751556039463331285315788268530181311051170785587567033153783392796011645993854751788090909545352342559811144815224596409753561333635893405165231847782017565362406789587286047106183661425924159402187521094568948678506407977425575306790353266269644656100111814306594280592059846112324297242174200775272404539109780193291960084670633243038894966564979750321405010118545258063860235154761715609866269962033511568983793453529556440956867417028065785004501637610509358208324264671093802034811686593652464470270434575005905004286520265122984062493091330204143242809418724321889839855857434557917965537745833261926900358279728372429936063171266863458295513266029911980416932629189609961314159376064808102480801635330080054677945329025740543532594760046119503605232750995532465922297878202473458545963965683884134602863826691266852644370610941108608564924391630866357705077702398089016563086072886323687186151586549152957091246121388299902690327117686308781340993457869428515927511946287723706849301244817507220957764308367583004131740192555588983018277842086297465046769690925874942150140656044503996478717599840524529303297307238891958105908717480411515698251805842135627962698588191803825252038985324974084164310647168192376760184052868168669872582626699175805455896597037955495241029609386074499714967370255376814510511612208059983798296172098534563750015743723072621037845050090455037906424526804919464423615362117748130675871410321761766578858309769469806274888577619335268155389983108041393602198515133038141296101797655189233521255439336284260217129725409296414185922209237388888148312648698826794574543658193531319217278216821383701774438394028265714624332307555119752171233198842796278477290964265461302712680054237170576826888645003414502474290684432201781697079134668237830511696050213177327679982756343539602442732323873989926551187493158030548815618979707610841194868003351052801227877243775037184424135853897919229497490698017669312374913992222972214568090085509367220438995762202072552764050759119947506665779318022782583799272874690056189740613731161025730665203497924394224089014865855504456883993076879624293992311899864809653344040238000673405936240130363308708659235099431425604723274788484675014713842237753890540271585048051735547855827209466736469091049639238599837717959833959547185412768352662372655626931724874571229980272105374765995351877522031681365414103392877812165610581443724030149417680879739119219858969278021917891900988802446900064213537196724798841822825302235445478907392922224706874415290032219392730268242342521551604835081131876232489638847220594061506023523949672048002622944896198196190444698496729314740397083160870661391088547183334955511364975231198495196670031045309632115832498270387005207236498700639037855097081288634433569188213132202363069581306898933236859567669239789360630474107223342095676701571454687036810275647943086660189400755247099698759489387459026624288221600911997352958894677404852436541628393743878074934269722577466028688153058816885130247528619483869003568816171507036220424295866671552125574161620385759094606624756959759798435501006792789885399036155228208441555220749543209053764227682069801992887778365248930852265165322167945886520370990069448150236107551014278619449486313687462017768180298118515511578334510166896535860837715121890218995171149708104608016434969760184868002124417194882615375490731791671952188630143407598639936469958478486659503348365149463702155243400800774332193766573719676972055881807960542197300273649383486027318186235920542502860968987737827794201456689962693323276755605949030477950433977145128090025605534559568497986982935700704890918283715899355358581278425573711466665499399064179884195710438636752923467647126763806263328946355519469725727139965627987345493131725831096667381152166915601996373892820323281805262157268076548934945591136625557100567727516908244869383520167489230296250368080098134474296206092630418437607586246821892624898574983121477711314665567035419102161284862203953604847530586245717107376167812969973954754998902917611744668919650426297201122512302943757231456846666851713246527748103097392694912778476387376475855519190068400847493925584789935070552442594291463417958692167496989140844305304229330680958714367976158080874347245729713148165460650551440321302144938859310937006460165808355978354363761489351799913376511203424595592469097973384368723237887379219629279255935146724059614396001543920549817412426535021230083697869073159416857146081357367048799009278702952264747809794380716652624104925246208227042557186191939219644286811458495213784560989399853156260752868863002580496642985264179839546479408293152577552060334804790331534076089365424836907019675652917642026976862507027641505335020825673413831756521804712570904423430474596049350956700879637965958397729845873643570213639319537427034033326065249751842344501328227562110571853227116482016893378728150766568731318398153197735595531281259780313679531966781850336226021665859912141648789996478847510730398138070620083276676272175298338710046431185822901494247698468991204859670779450133111038019840083981961521136635341355442222421452567397938684399365276446486387109580701704286116459394483038182134280894590639809979833200193443576469589693883054555376785878173593262787092618230273293267105168367186443234768992975700389350407457863939228878042945266933111084007581943104067973268496209329023443115221596374607922581360996831630633087527588300947524595180032714852046625046188493429542929755668374215764729483179091201708418429001544595510141875096517412054693959599405134125446897618767929774855941888983070885362095101188341471010697048345577625237923053960708479215137527143286196495493910694682988841857237092878320914398082360101890471422605669568455477318868514586302749510004832659533999291220992576633229861490603931728932089800247590472217981656797521670327840842517374214581199374487187225083048765121394224784474326897423605228212224566165219846980511384881951929527506605401367669695330828315317417872776462950564666967405579568053039586004386810376731967598122658289230212786487077817729823727597114421168045541734764852904339150110548501668329381098697200527487377338683675581245191858308208724674941467639837635043028094098513142962990194455384405560159884971014920231074992653510719813483865732976143135242580376876685885873701762696732783091998125105012745351284156092224025180279388946536490208660455703910855206100871963891309169432812770160315564852430192559013354393293224158873892203433216109931401879434887252983057346725559208779589601503918615781938297814175034559913769438133964173641441453976373875643732846974513056757773596749634290820940630485386049664540249695082709635082856426108153806345488526887048928427352927040974530000830513189369661081511696093148384592445200153956724119466965915636369156628500478149217998005511344629092844802799810416455483597478814067440108146508173690982450914208456156013492542464920182683182550399497560829631071418878839161771732968944634305097340962252601632788759708572577946950680741776161087477512849517645143552964302312754038823448784414435327163660158935317865370935336976237033694434125691403558190448109681460247382618059616394258117385614629262965494082742165920644015172928647592955969042641056798528006073159245135534354524549736230651074384196097687213542979560197231891133798106918675828789412437472990707146532688381456219054387529313843670613135706812593936257405567865499368534920704560465482018405455590452093814647988029349032233011396765083098132386890190562790458491818135551084031701809102438240454379681169215847888289171911336780290182339964352022056335730271701688922823103809111894569076938379257167435274998499936049561068378514133846631809686751339499430571416173342035547657050985279947755050276293972156055934194242180101443388451186263587956268280432538609294749976484215974362865013071603320865765598611438222680543605216262154002974181174440539947590106506652119034739269544231201231313608197995326801869860111171290973482704317887776039165024244899880182744111359156458150031547678165231770527184911301421629211179354511523748816253078583992984974581484533542235586946020226801102473628134664784438759506682550166260125030076375005398769891876497584679144051518765269570221393765103882904894970384132128630285085692716734166741568899070093760594740163426072347555142330957628502131652825076288416575478871327763303592383400839291738928475729896275217955304376400724417885318591168284201954485080069521994484683126757921809196175854838222113071753542941593116881713534656576371150601640226651859730007051091543660858385717730723964901808198184888174370648005972551363008551812858330447724900859810552924703484003301661975875992940185759463340140775984923705023148088181192357042665452095675415018470030075808753144275803387888168252873188398205945585429993689517024207483170490482808966494946065910020876217017570939345508092915661847512656247823528491304330518420528255777071480398825825550306044752347082837421839317655471444965872500288437088917825474988593941297640174157214601133186055782019982158480835609088206664493283780911201556245293785259208202005149416051606380011762861993807618204762012346241818683201339247621866997404527955072733525018423468701607339433885816855886292339549463499813239781840046900828130897776862307921135176917997779038914792822390807069014911374275566555317076530087888449843080442162119975678052345182504040982234680561429903787321330298956204243697022731911984351674397259473343309130820596946159900848412508966243887821131944538950972880158722866190990698869889003389726594642053532756912922059597084773994614318911394434755181295914838282426084517801355178982885819887802626391756007690929819718177079048287493640468083084039785915945659210569762387128513186910984977159824570158627931943430107056554324840922698946185145487473367124593640005343961280433498374079684700391095615003848129800234891038346078940251830014357989696628946304173569181583752015219583901179570678814477440672738555157064359937999214938530351613845984822970202130460954279153301388963264353753955510906339962617345234936352975576786733341478835189840216148353479105602093874938897708170780331138614475047107562797878554691784208161399703518476678428838589830683090066232089269323456279547533723789976705317048426153070602612968263629013094415708198022826215763104948506175668578372191511550959324834183784520661655463086929678643310771450707985401990134860443774438736150186661058411661670600406609045869040192635116841557774762546580710511953053612539756844784382339337630627509639706966574767510946707415853303382520924571711691719880797238622280685589293163940841038463514191639710799118726750560935923768934610321925454911686684144509400977804227180188605173641564604795806530210303893812116671295520689744813736826016833290046916270974989346124867867818528496568607230230484314812675424821630714028514628261731597102780239365423218906718824577611108105914352054580053744078839322762146926424097998190462922452387537286879535071569442256264287476280791940301934582151935437494073248008098019961305067888313563994911933646621347128814854283872582946945282520753877855690744306064403590910755218607718880918421256498588368830888730074607308846219018612884432927725924931269238268577861936443389566516726724208672902029151458930967003250373849353555140074925925235932926374246144463209182091078863807653780233161120083388492884211075167312120526548851329785595224653654775896646347410000490492384822237228475589992522799814724141525609442952967325720247458978020786682877391596828744464286321171991287388147332291221429619072193021819021395006721690334610072695952319911789358850588421859356299900344260387376945955719411134856573975062308178877518762145746315370817949606031662951069892273675390559068150457572057970193009326920780946368105692259231439577011207562322565146430904220065083021972562949982297193167498820284532938012086977200167429917148105122912501406623994990569709492749050378059128877388112284209244639600117919619180625787235045535071160721607497054248262320273822487580664139009103690362832950290455969053933224506750442897454137803764913744864752814870566419395205711031843160425480161511532475926158825391302016994494575275440899181647138033564643543931900858661039262556155658148905016082603278978593236145507331705263040259336480169257254625779079025175326567592002964481218491942844403995191674185740869145173124983940230751916476630754707942645103247393583947613293284050815064855185236617521966056608902147638501151929968554100498966079641862704161170391800346126224873286993872540228951048914707912365738700464381739907509820866475898293789808822114178073848830575045644541860414630404309365420092943233057921316392181929248068277897866833146962704017710076493723353479143840954838191803825919333053778768962465480862514908134491659885054398446847141261442823934380969289461230688050320940484204795210775763991363772792227574645348745874010671757957202222721580242174647249663275153676890044556312623624034060357642378725860138661357800869471940920136635175830525652818211046312962939191864579648255748045338919401655198840075997895956802307152440094157426240990202938950328006797444773749213547996312443851865424231504070188802967611788251795525835176009641147329301112840793266748912245253787876068414812414392389890541318870648096225616927762096964387575537335310968710086248716902902735410018099279915853247505416707791592100499684754270739512093194751504412377121227193014761876284038761552901496984148814684034299113611794814472203364911357569650041500028592419278636499593468401553930406815032355929497919128348646756807227774342778935518663005239578247513236966620650484929405932246802968918091609292574709513036097576668738511889926765325035052843716438123851472779121279370412010057999724483100312703226705443367102518180731409380883733109780709816552292846807554270705062096549732384248349405454093597610647984357693073393854617805739557107784439336052880514958862112404445078863193055224932012185561786422817471442880741694425030909489047871668401371963869782051930178071259637975095707906388593877733279753120955496124632800762492045620062798566314149831597063119037038095690000519704066393268769177701698928691150673942713003955575540869586300457541161876969356755832137424141812988007470191529661296558049745272797279780651476614567811397754055029777152652402391625026689733973296103848010175887563651663390923762349171946972959218504726852663988546485909480170291380408199306083957016228280606425081780827902738882732170827313795090604353291433228196826682517841699978932903670605889712562024293237564184289571662818673546072683606382273448434768594168089066009997449086074401477932454741262937403721082337212524315682006994439616678378165271422428408197442027663529177835513579808670977005083319235397323681473455426723992461931155746770317396563475519715298206551676014225712787600793869246942805862215751775753356073981305500848189334059189775154183584160193783314059932213003710303490124560008275815109159767168767436101326056218495161296175835579780167962774417751977726775188187115311490854978243808150561500570505373263215307410886218860707109346753092086923842717712623379478090069673285179850540950452373151862348597789686284965275806600768517711594470511008946130932858789785487748149598397004630261325594825190769492878009680130728783528243830091822712382200321952078969441260514316640353566735547460074072231319470951327183478086637848836369806137012771213447908196266990205071448252225584587894317992918199695753467393178925961087982053573468880087138662768196191355200851182115864770066046363449300080457992539621820294887234088115121752250362045040379308359246078870213768583438168171755562411114117602624796870577065580127314519510607527615890996479472903026277836905276305364902128890191540283169115101157003216448145811317925673232808566135386108602694810972300725826217775252738948322067424277559559871581947120474215022618628546298069728380805851168873173641125324706405978064590724581937915210370396097794167339773434882346701447411603389334494865443862919068448552608095262127361631452013422511784422767634511914124681074374096428449177906962211990498790405453172647958625368472654047190493755225674395832468578583878365191969853631580084588784501097325132260028413967859831011189102872438111844922590582757870863052696427615817824850625291567996245379489985437518284581614265125649139172206711707786585257393451675495288561822100470321966302706186728230110181930164977611721507631154178504882512311939707982796654382315158094729686277036212283441147086307904373457820351360813157654872148053779904771668157316083204760759479384722166414679456151174037350140201690749638610846938298745814311508675338156273673272767063761460950744762224693297116196490951845321919090076587819387068090185630461904651022127752769405030984773969673484613140711738547805953905429905106676869601561203183943857569374978621247416280264884254260310230021134706475243430452929437867291822585609555055747996395653941431621655401260628578061561647171890153759480770049658079813563749107710518478749120354879935988869102880469764205344080467764849481059434245007787810966357468427677792100301236292473817573572936125801049968185952379796320940196258970429765570990086479681179933665827560098770856565831961974755244200460314270068404092589987696810201528070525298501315130212007756446050309077744735580216117923588882406797245447709948645893968325280286191321045596152812168317334313562373956911852704138354935110802299170386539740285108322046657528030239587310029890333649355309499820089182273623789762924127500454620466797848446907302477830546306654685529291565839720698875299490865969755337955511295839166005264644031314649688033325902150085130347794078041025413734600421984853245357308846536385045216616676439774211184430472174231635791545316228876702537699776319833761743819911254100866252582890593615667320555561315200392433684352650110527983288216463958413555143761451569440415461633335051352488641094413692197180962964348243265452264607315056204239407257547598252822396587022142738425695072874824994872865845853619042524732496032654857917246691880181219564258475757839787838167535634520640453728049365525533151141982895164125489412713641532050927426675269961501707615529751703668461001799794924569468777593260125029110466848231497772333415445920264571824172887309246485325947438246989115705482089789776738547024630767124835160711360647220198823072420027107039041932903027646224341038308829857522862756954234393823428396175493867685899947021734849380168426058603184236910871147582424559796336006366968864831166503325007908522326598521548239659337160475421267049370863537003568014145288761269284733623471888230431883602575710126407835884464989205025927227067562365397371932572274112009080781626882682273714001390283223438303333703850996677275854165549863355744259148377841954823505143645108732752384744322818637705304451558422996396066960524286111076890543822487664731193781999013233228071384429881258522118773283331148906023808235378224949567672135377826342872269769006484379216947156870484454568535843030252392241260814108869741049413099517616736042572516354073262457104664079715230332456587985916426569376232372536711750035116800991272385633770820868135236571581149310385825659836051973587794368517417671971902366863836196984266210836943830527881886099184827236333550130222484957357859543926461595729221333314249021450276153751716465060457337703197893720651265811850482242406767859707481359144788487817998093352501656163537499733520723606877701836793541094547054754151491333880431271506209389983568757601433469620155509980390266335188456095012788046610738217320930181946955065033925639340985638758509071305896352040057737520375862089978408337433431699216876896008122903901866930218669092121517261859582970300077692430531202279877966910767786502602058606186470819184540153138093984069216662823280597050110549811789033843256270936999472070909199171986889125903158469737008412690160187263851031966799347566986405768825604757374531998895604328906029046069007875696759234969234445445832203570915166078089674949848675313731762154203517282781889746029845356606712498128152365915825199540763200167820009074381385836494724605803884507491445019014721362885916808763096220952194602015146998735222374715369124623926883726497904770943143225933066991468649520777971170518388177405059125206993616855127179752645672670189398440485013885478205535678001516659831648511220512554748266206015820210382388401854571659404619922777062985776042185239614516291439991759520136728633864680166941031734993043839846889969599997022869882222629512404380876009156947760302909274309829241764986345048813771888086388692744080730000813860523812574059549980578065220075369760118753165624421338426788706070109568189044423129760188050874718548855105050949171085988142540646816628271488465101912625161802434888240485744042661041003084349574704218499301274190728534452430259098770047187531660697156207615090953854306944559103944679751639312147266868930223838574502921605189132866471457719554123470683591365369791833157275768336875501596374397651665776659484295284936913866011876559579214168045492029594679656132882362587837527634129804488177710720109815837848815417776767934125150516122221156204982694170811151189758770169617479806645174361317208915839063659739035118417463121609924795917329185909670796831531633368320903184819257104949936510373834539199388923942081440475037151802488273486770199549868143418405525062842225780766636120573544750034701080868684919541186639543730293080998906533171213155548445750467897627405942501681244433547302336317247821589381247274226724459173881801603833856385164426692573996581291870154169847040884031547923688374989476576672291706655811482208832305538811738268100083584315455756988312479814080856120568507477392973370251830632450685481318095783032849802083990514306141462323009608345035127536712973986879018398738852112538911410930472945447482338253456700306027510703160052588263847391475249931253224844244583056544014001420587017350337316412005066461746412577158478752350470008685278664999428886620605698142814331590298341549857790559754689597717361255517088198588814411334141427995625883426554638447212753845292917765947830931098070558005645235004059732149580125801081201413615661402024202293837307624738178070757835062441918101672766497007159195606676961563503366931677392004993877109923793810911155668877590493153121874287686830832550486863805589852013679141787895080817155192263292706217534285598137724297906807361586070210162721703149710814983573558873897414160576856727637860971681032799505555810260342735587314881580616384460127496178410881672621365193346090325116791174231196148574413015014870823343249525490792779617603903648967876569730785397165371239779923534546483175968726672305407819603225678101053704559419649289677737554870396529994523810900916737856393995508150266229856022819132727735944468017019106761185683868524082580176469845548311530090196559848240694939933932093172112146946179480948228818793331485836648747938306330620169915092506150456946596041035679838923593025539362622815230730027559134954928222282071865746603580602272538090591358328340187332394416387476356699709566825585447399152864961445501720195471624938639962948905781849036385985209563682699073776845673683481310414778351036535574180490327761646911202273079830302252375280733485600264002040893494568481443991538997961469022754204535550255137468710466562642146759353803472421771201505102538213894516275024543590016930850133778183893888767431637570624012719478331361127964868659326605311314599551675436568640615211951975025825179631489545493112902125271859989191318483427256778695127808853596597783933900287059414822870757017705210783427335954565395606605393683938237458238315624192292248172628635149459758665413938152305339109205008239899046213498709588947538996738837735673876679377613433044619326851597340801453478504440644974102109247292250669612094258875456701216671238529161465037283215945464052617330834161073099333899012405801471589660145522444685732592186481634793226685768398174614881092038357426854576783707403987247765507085555445944605310424629184316641592034774576154334074995281345629108198648479392486801107722124021231464998572155394427842810655876412473233970947307845756159149922126835823067371785256291383191564103382233117419301861466372107137491146214029046400140547100566373739150623320384328983195855753756555753638857798041760316331733440296231242600433516396306624618913689074403679874754960755828078417239188308720227221348353329729205035544620326494404233639588702649026610518232707254864322570446160820459768438354737978424907042428267217963322917653322756972838401729120599597794038240502651904387240372026951222326461934693448935005658588019756511368339161575203897383377865297804808986704721463269008361955251437939906651783068392148830009102330869339234520452297777186950946537880406730558992395425897258199920665845475792239568010528492252728114012289328971536859732049778665846117026700156112406937455212986730770014515358904428918207181589582628049755737892030043305546970175534741181252207222593441659379894851247039667384889005451330216342750998515533045413881694636867415130534071385412317606992269884235395869028019075213481832722055390076206076809302800899310706442642623325557349115958977436478994769606280782963826139771359024705603241532649465072108797465431390955948006655656874523782552140321967414571900055051724497679384040201258096345701108591183025410412098994442985799999342745647071555695009182438746510541964076801470879312156748417386175272037865142693793658913629587523967267695555676290441384680879017065030743771134291821771321741123924487369406851026537593981751215008716370304992444210214087955014198825223692629162501510087429031522059561796198915410137503293106503597945167571986803089700413467039038547313402414543241466677390445271780484331551683167962304972079714178051957184777346417537385319557889319158892841647248421199484650499264051003515972707807736421394671895624565712200964893904645728581221046154896168847920659456849347071975405951732173081653243535197883714145958819225447833658991830354487222056935016541995479021667523936885195062635038005276423228502076225353616069035814684628002583622618921731015443834854220119924265816546545296528001068330841271279182302779278077903030907498662766314327180446759075774223085727104971503746008465242714144714997228061657444117330400183829944999325128906212936957564495777820054049843986791640162887255842628079791367447391820486769382083726800471434149938958999887932783676155860641735007247960603322660547720318112190262255290625192577871141343569843295399272969330868442898919076928628577476527866830690844083189050152824581408367274238037719705601512476170819451416559338127738174285344535987911322600781055103018827254173377169185634880456840195418781824095497426809022111472056711766771810064828456408850806793701274305236093945334413073291413228300854366259409416996493418384847265662749527873614377782985099719211831862171387249154543357118356993996029617189240641507085108214737867061339979596802684046937483014555564324795511485732892419828403422240351061868989604014921347447930211769706812584707477624036963093171310368706975090623420533964947972947468002310016408051553149089696182776964404838797461392817371511404724823017792098076246435435552423014548528689948450708068285849022753223264850868995483508893674912833003843016736086001506906559105007645607891807400403760470855497949265360427726112018269821161705692076391368743037819003786715193315707639614234647093887231081253930515200204636800887870163473028430173539456198162272271762028673998100951517964976408955492436772913248436854168174594742266673505010345105424029364606997770976873881202636783748482673354988522040823361593548698078129458305933927879995167368332176598058384683044585635068619498578622874564820113334475601346161792333438607905269867447697866308594622651768855867432603365554763729978780312804792501069022976222870132043003046000832847379861411768881693782345201164269928924304493379959092372789120483612684233931141436316120620617459971726614584210165582516639467612953825228245415379020913830861279384381128539291937255222981117942537714357951880195840294670208089636407759657174574113872823979332867210493167055281624772010186943984618860495070608988554123582287800429827278211198845883515374918708955518311727614252890305622299413803905589787977943135119435009067173447333644664562952530611507437499277852914883740320194537276632479365657821486766521238781252811491510446526143851194797817182632375254605948027535080562844015817585117143427179657762029527427977305749720622562372900078920739073769142376216432962528313350953282656539057973387437169646441324235687704897067514734284644841471899400913775830455577746934365603274796250478772395219886185785413783171829383814288775072052239257719128466308496096567240223337411108831496531439773626031381954402816263319227589237632960218691537814343813513326953455565076656633871511903299758903888365910066720421984575579484760615400805155892432195147619086345081977745637069765930036643902464687240328064288970126611327380463144855201043922532207344802683550073743528428497827234457820616405704185467005669688602590841238083554655287730882185869049684920890960645291173137964649531105779052866437326476940953923685313843367780748573447378902138829839538089412028531071275788669243783825760548784820095937950164386972953438936520773319917928662183955269052472196711809257215975078062754440864791564639511840001721149653934175132592203478664121152490711951196224462627574877543848062391301559970619103563053801763467854264656502046110567805763314431166635330274442078039980317640339154244217251095338624167791152773824614054702993166095431350413416594347698225619093235978757889996631922212672574829932800123201817859366669010455765632636637100360112658534767306973844756128503074773141531375197485121766597934559203557801333827369964831018578214463592120170923553012263872349733383297150550387558266741569193789223015590081929745342535811994469918708307518148064286762445718638272265955250494103855232022600295540846325828110252005574542555710656312395278895999416444952852539068638167178857274339764611955920807879413907849137196466633672434385493984081620168022207659740370077772576393119429106210148262527419699353194779494040446997070253984086734487997662747367129214681557622336747149486188099453639247214965717001495830399303756802953334628871238850666501698619641597897554895421063944442672865042495215920548427882990068883442626752944961128900237665352098599330564012924122190125512208768153467066522829206297421894060103743814381018166183700744872702425331476890903490573556680013797546626164081507199777168826423169734021271784872181110449979461405830542045664182730827358698305767176947478341698843024369374220335619420704915521968810227371638725312192247651569533988701572874544171975594082155839324071145786040738658358783004849799466271049908070243206006406911003405027710488186673158065508731328637274035760865782268937828854021759047884948160668946090039123446185321560257429757530664688207277345517491169560476720674514657815678131661851027522843776109571089571106777786998171238396762994027214817488943037032091521808343784689815847943062847992006815676453254372353775583153589852959249253390077863649067091041561983560654268867924726713795744802518228435525368225074675668210273022841690844448652281348937991951846597020252412757557532550958139099269448189645466997841270373735045523106405780704058835489644145408352927367680705256855997651258997866731071916527136128369020208312525783933848639989346221137508441921646320025309200685510645326982810965766891698837396614179028379826104833380560302658253365322648418684258674428197019706705247192159963386664360122446692584463162647492677557571812729041939336394976446286470806441490479134714072049420466390305986555376948636053421081045602103292679919747984225689811481954100546217936791458720268448674137908708803303442329560541482658983263830934229458675602071608278811990514097575641989252449488182076750323661538157376720432722687016693175522908532592218494208084845931793709334683597613106456626754873009440356020343680678483891662914468034654306726919607287610063401400070209995972814613257825877285627185270177471868390428214711446904855448429137481742347228570533483102929812046275924811920456495500707142130419693354738016217903528104889217908310433577611502874110453523967246750925903016431392887372911669234288029781535765300937289827825637408030647569191819928309465700646774714785355299868062243679161246592952204921540255733864376971036097425507292534784406530649757917211572047462075605225496953128465406492471223738543778901450123073626555539530300995842804215918485328075085498615003542883576071362000727660734859757269350428128564137016681658729585197361270577838939077497920820337282816714796806023797552230622298523339427361821300907090056806002265057440428818989501413488561320179404971846732307702763667452283855354608882712121386313002706925683582935997109730175686973081920630269683664396841957544458405243202194237653543813905827662941827854800885430631847055147561471483683123016055761139746493286863783371140059086674122157868315536399976818975900653315325099712161740864983062339013406819794026244041059642640579784278893302120868572807102455911071974161596328082488614095984484621796934509246424193363269202639813567693736701145179027422752847823097233315976367933033436076390474147156239469700802352184643723771354814943290402934575373394544907228273071705110832755128636864013813507496248368031590484258362211181209666003136326219581076946274126948448614427912861711742380845349494671693557960427772614029870611535139883538800226642356959341841759695016269457128022163732032518720936826496069246952207270288690593938140144823679159175408936995403324286549439290417271353796213624723939772248785717956805323034386197401628540667297531402105093362126369613706079987422305187138145465751740724446888636375251807430882500301045250553603724420774236722931272346774465830399623282519002984618793695484682686389479019094488912125930391798206819743438485699107615062777164345037029763628696039933548548618964402656999784237033580911446967966336515683666485990986863148273989703271860809761780151464494571353652753656551200215908908629024377878137322759431755063287216752816557956073161113425444720397738365061416971152993913513750087492662344838715742818480938205890897541499873133258699222147525441449994616464148994810916448514718348554011664812767820371361513373306110056082690199894525339959518354061657918409739358216627124078678954159568320073733230373682743546138081500588773390237849267855942781751059428595990984545453142042062981817321533233975424994550598912226477255000425209474398069737584291557315330710699228664191396107403338595169948047728218662107371637434457772604366659769756352798429421519586881542435938380344435698043608234867634147636564029041408322376806622036746910707718904266171834172822805322252011113946197563912031861178150916996537575693411081997168433633513890406703317490668984478513903889558174195325564070152485384596755310150500410134779606195763065555994291016174116849814603349802583267767901720585129667252812892566898023417560473450672992800608588376756745399368463400624313101362384101520151988927472020311427403133327676717503931286281602818185042446590444212188040265275048978876714434823486850949066226297531074328258053967506292829178629904094802316982381480604145087200431619457799512694498954435494932561328070094268815870421373263377525304766599232806236694321642515894797125363903111089729901391610356780969524807581929323921000837936209288471647862564493654398135916612423860870838910770689131555373903555745445707180808946436304384910998821506352849140787922079961568104567258231447582663467708915873957950836334359485391221746120607414120719370935389747494723182433135452300496511396149557561932292318810220622116494805854029095073719250500095692428475316884971212104002981105583764769815543182576047381081535359025703910610722835423279154188094079017305888554541764709075293519982513933125910808305113731824180843148570123122841735050146400233628852254323834119639814403992709460558314557115613486739764953838264618075456680765304207340512353004596566595369579701823439257911537298109948088322799012770581283878527133725869580711790619106655975227370318538227513346208669803321458024039678949879898476248567115319477888719004204785797713015667207905566966714792440933739302055306371171444908598212128946604028024236670406571549515556050090173918979213870588453729305256187532765564858911534638491225277138150036357221867483307195383367312859058107561398705281819938034810660288352359814333317402987678559312588959820701893664448994317075832470668456689751688327932802517912288432701114223181813210481136309087705860821729607853811732097830235140155514125766106629773609404514678970959731504435028455675331912228148170414762470230869052128915645805193131365971224284111445898011394424643658647438066899891004014613772479949065099129949047087200386163984036098856999686050468799337251656900476569490927201326093257886644930380682910443717747250654176472160809670016183750799508956109821748442192739569015203668378505369907831766645372672800917135962633848729697955920716416415563418180910223548291041204268807853648109608097254815446482286096741935235328071036464732553073962019035475230403002677910251884704048052944302069207132243591335189715478917527924152509100250335455882768581343938758249668409078788946453682487894729176745953259105047479691822415226088961262343822040938200724418389946120495739246723510010891419845000474047745584798505508767556542438218679389703184771936406873904566024814675912729796050964850798237161340746348246664501674230466041667380639526602187369858984072272869248413091274088181986720862206534898420867493379031622847017938203249064206801052170781648816395582562007261389806518267852573379014290596715384520655700698789338541372706498640471218633710802345039607580663221398398739574483168635421574292617928925041332704604912257469260391082182024982749550520668274245677429770874376693864939838299219519562783624005291148899675424704509887293344231759151720655290856192750863796058004769426107175384048231625218064042304799063534553995366337848058879673796309988727079739195628747949946843758046406290343766104321787093067306509465034278495804826461354569459044754559958489162864783770119238946059040886346462286061137557073139655371563728928729409945512829700953023772245186270712327182494802561093293745444124886475479060132705358149743240564707163774056854400680810248086780518230218193167713441923757963340940139701907409444107651319134059730771073665946749874754033312824769059616890544399321076340286088816618118117742905189306034519474527238810694589091719028949536244843908344087261224401109054008935323185097615043968333344214116162444866067956374133628797277727865478075548673416039946635235756073554103413131926596405467223028089576289412074952495526066481961782676581159938196524108377311357033934096679999121199938159483068685340590521250792235385566582826994531267680863797480884091959443437525567588080892401808869073097670561620795645582663659950102498984459302157936829846088443530882005985360899641109535308973554704357793719125854174593170020067876806611918153392805234055576538958254035114324091096542457717622192937370985858486024028895484479970496207709476024123451479334401186277638716787111975605330419170967330608414575578559193074607757889682600926313584279319596291415394994358666004342471850856966268203752726950164312292776283967507631500959718231519728829305618391586446595397167354859404667098406279722832755317640753525143885414959515389482953737039635943322559801980427684926950820352091150211676146301802329598007565522098571655023472294611958265207803590874134300532078285333494648377255725523988299563373522893787820102811077978709999704561392092603131839267163442862888200049663499485883526939586792502170051858772577241450182299068655246067396506702765523356724239789799882909559984500353225938148537125503799734125292636147023825585879724740915972495516828253628451985420485123849749463525417771318776811395401516885170807777378180263334257284570361684864496638098827432655561397253091759414625253896329146316854856656283550209610787098752663236224705247408796111775865722797833758915183655164433263740302781781191057304781793578056375040670475945847545367947909929428044758540444267497756830189081382064763643978277703356616250228094679044770579074365010268627455836265715680097704193433666976978091188038518183416324933939208726630718980866776982066765924280176926723604901324603465768708254105996061270031804781712877385099688417544178112798705273332715537124128701675654613398663419937381745545102764475865078989105074496583023431607406815248200234647218504994119582657174211457388320540621946649430413605621068919710998316748881247979889536123448314799450643346290700887390299392448983831113436781837681072475923723949754686876572300624323965475272811109480041611985850073837398118403008586919144884923934962277136001413966689421341503277416674846547596528401293379600376188053173453587934957658411491055069163160584354093651421293032244828290899497568134775814743938975563539215495738813851967705229599489161158834575673470945293185708610284590407464478840725825108012194170696661119632612437789119432103352643164231992979423695746949939523394127853249262577673149201055719575230299938188790156802118481851442851270830615613073048983228281684707972092771139851364754795455210300674775550179618902290430031172261800126007454245741948407588853869145248730116344221793705032689289922210637364483425033544994527757573180476240099271180017665249018709105536754060390377542661155010840356460514162941268172631907974768811800329826294706065211228030558348077576143071047785597414229037341284860526830976487702945055249352105555920804711530475498140818225354107631506170365406836490550552969981859862692865479883502363321766323828340660174939530128020294230941304087157713684208363344339903302331852987221562814880864590341122737114411914206675471107027595783785575309151165725951263735757948244388023827214587518814231457994588898893612913651650587565992056555882861670679620199423237940968225167059478787328541631000808942072730530701754982270165453392097469939067709221781082023921148517823012029910819361728862236661811015687424850560165917453564976814067012050256858113699079478399455481649850000000519141652294582119158872386921232509498612407119779255577010381819466477747534942228420115610106874419754816074035530545419393871547477335319408879254719672296478131309542735282662825954396252506625515866938923081956978921713688825077833984014028095899616734240381293023635957650961621763607046453559770786327102789802439778621322205218865623593244946727441496666585368610834912878092488260351712158485031365199752158753312592255424859983311881722075144786751029495842674013653269652081582509317790051978769566707413625892350201408077882971589843649421577292758070361762520031364976646883206760739976589915141266134248922682655276870155030377000419526006080014225464748273240028436132436721577660439310900773703601534743531037183469418863992241580594070574595107352479857532877672286376930004043191985070429175580009333144051153385076339355302326143488230782042226752183230745151127710323263338221212718916599155613782589491616845790421607891050527431588746264842617781203380861751977531681179042645278241036486544749674368059924680497539856376836370745552499548134559056892047451879503905181574132054964459917931893618814307904788997096488886852333153493638460146467919034050178745015718887072025931859181551067169232510271178042176895416934634334361833634602874751607638383540508587166950531728037549717431510459781626272976779814477582128521831571675950320347021980591056997718711185033465213711688864996153079320670250041143904173343157788234840598633371029285538412967793084214651285293465708026368213124365700335653797124564399750506544347108741134350735048093855246505232081015615248408175493706500265139626702176060607762483822991532570702230063444820992626518806001134604171651338182022025781877816417487228529021520179576647956087351426663357909095747660057274327046269241269869037922078778576731303988794273120101351414034951318847160485049501115179161131623893707749142034545763379054319815500686687666409020776450246667252403764201063801955101382967152360230387490781463067775041728796608040465790116574359600133940500686780501645016416940592504432166684070637810876067160482285245873111301279484174727367724550160257813374789644136537621836846303974158606524791829446590505018077192321113082042684099351959567091012389922617224716253328406587820385385804412619470734101800962233304844107572311825276100392537871207974526481261780342978348199297338092521551722438057993857761647600229492185476452496646805632991630397042389550104505625245341521641095213810498232263885666131626821499817383245460414753606264437956387574883145050315399041075731088551363172261050561066268679051796394252545259719246518890067535785733990674068452507784774867011642502042100164965213602772099360936636493507843453037655927712736277952376076014638861915736367625901403409905502118234803845417181330892468680215666824533893804107828688268531198482823486909301777726801631807250142235160849609224855014234460252252898686413725544442550968945368015206477657114003054196542367539776562553415418502703447264973829325658453417289794961261729995542824805393840554196966247660597206790795340739563057714073967449269282851675931952687671458684268350814481806704435531106127050714127955916069903127626799676715899838641726940030719117206808306102523680186061451271278347912966431984712754096941245728105350792335444648857396577310068433945673124982328470698225878034520711055063453724504300429532557146458506923260754314701963449874922732305461734251313601298698974114341657875227068325363819590732273618686026124589122291855149186948081060119689424085250403548273609799511192320772038504930903783573439761528084124645421196903643460506406544554202903032413521379108399001873690413732416882535954282120105504731805342952947653027270624795881968461327772633409853452644412777062371194369615683626422120468714869056767721756457820074288035920918771159826374849185313464539871317450485749065686342466892571634184264239683241041905746119148157177483452988695152091019380366072351705795829767195993376079706301529357307666062874487438246084571806272215253307251389391823056674070454196573882238111793826592322852802950697425536760508014269003380247289307273823980701317153577640031703047832191839203411868074280797274498427324422577461584668992818532543888331047484361879864174444577013829699527047632508271025372030517814240206732017555511649019625467735393671769833990783255646335108955974281391069191276671145333423215808313740835885400719134651675630028854837331075750427456382746582410433474650567734321898861634239345149636050494689371670951694944197929725997347892782475152988558945574577071769855101662527448977710626175303987349153792497304689008687187877595285060338901895462145575337678149182873020633910243207561359849160419412887131530856156137926974854166730509842469318198223762324933963963561737153871379343556682901511515711014658995953146873731671846365153268092568427855222124896620695720679387076147574250886013439731636190694772405638573144544847205108795421752974816496466516860857985978487303258861406054844827185359085719831130326134106127905959745239017313428720281553152342220766210397943319880023262184758126538511015972674553711805442654143436278017137166505648939877821870020118890824364980615869535539317410193503426621495081150021533333206770519790845461373974696935796537526115958091930157575834903077593916365794484175356716798780217724049304437011924221580522508981889537826051589490433328383840389000585456417082937380612899683678777193426597396679300854044296421250239382877634549629418194151010839686450203931593669876828405575689981898146758804985071506801662759817544712836954513185330090659798421763699134659123245032745825303202465421790181694670686721073785826573207701865052950897574002687563546790841261905494887155305933921135256879217773821284049750718969426650305590138669716265033717881219588936605020540637490374195867342895671845307117886172891547743654996795230029612573954820589799317417157781868224852420474325721498416753171319024811618436865965400816189120445345151786030593148373667584145980395480240469348571407715994870897766008492023437043859711767338167291708263493971782658143600559480744521837754637725757027915976008468475172164323619359625807786216633901994086112859657155298803732704986115357282540907503564212541596360426072636768889440143171486824309931107965042557197694180616203316823706879161844914969563184918193603308105196301803541520921625592041079519151562702283967009051386681152858729918438718980001233066565521778097870157326166550641199208472235467256770413925130822884571787079473708518469500818463394473044500696560698802114047973200018097314854896162066988818528825384295600037482666996289454281589573634658124642325723387315421152449920792104648767761337808188057092747390848306660518043120604455726449327098800265605379128373412186959961142637464834202803231948740147556572988546597054175840166090199020215229527240267182809447271856706955805761567321489166759497928202741883576871263007197243497068410602249574013152282560420588069185612817881762550108927619156173009930767363764353627826027022901366490700894262181264051010950838309483983593649704801312438135596217752885358419695120907164073038254180824503586308214843716914533565499694567109750632708469460037596926192035872581685860841491599063602401719865744516784426383148586476064634661376803342477287954307100277253601316291396455029927847624134515140346368995004182586264915198097352367135625337623231415255026721045259056599147135121196801373372712807308203732683234674395137818158850621833172443932101681738603139906572933510460061817181582198444451935229771935419248444569436851735717257186771568650568593715149333176350079667399680582803183836433614779043159370235360604827123984996274656979748157237092034031914006802075318602295347926123849328378984209081481407954129404756557409734256208820898486542575039853432963769437407653128576869173242820745906755650411106894491850018239097875928931260314350132987188890145655656344640933137642651854242051676964845582902840340085838705797067388726350642480171266306625271488485686886945261616645269010007210103795183755157066622736844864013987377946562357079727715054555492905618775793017534545952541549362911150476312079664134772377702707447862626948719144873255349790744215574763955685790946426717454227165202640579057415374488801089857172511873748962440878703654900666194824475270657761622760914246432677951256100866116675903492716194630771614938288395799503298998801791829816146388176826470041804141082921004532874384319008252900111913752663306997670420028611087986302766960273838571826294457122304913578030270239509525958625314684153202482359292144131873246200985154434639190906584630840694018999974261442158472391664761860488563538585025945538091604494852712755396200642195323786034447547628655608178509977093944599313274471435982025301817775801692344471108083161016207991195044455633373223163206975657881446955613791163149227328472436394172248194124261021887622978911699931432124865701470640128148496673161837897749747496444818621268097096260560363076201459211756478265108537970866556751392791706894483198220180015304789968927712506812632447473232418856240716024219818643529645046624755107901281939544475240395295438830426477538756213913566399346033825475523603001024595095908608122264146573378141037518482271061893486553324308985823786878809217425183610863858801647513030344852418617661662943062984454929976588864397300786760106278626186934926472380786582144999351404203261750126625479734859530216416942140464375610179377604335864439774322913596583310740483711978418613171481811916695795145502374337227016190133001032299537742993629358908132229078902164983484331649821087716701596475113547489614150572973647262421347893265523192163190699185664834934776028035603561504560276905697335011224057860323460569183049797099900869645306436692615767689765746753120229990509357201610966867975347472927591930160366475267603670950423710908362825320727254828356845838045775616323807619994015435983830219357711681864383837000530940232981400829084923130448750245887961798757111809399285915507346697017710150040612745228890162590038307657487907047224567336227624259081184449318308624382265757220373345095839380199732225509950903769643422537518175044000356992127666529049394777052614550273244986849801055854681403037279690961799102200792348883597989626779920908916930028420754319262031665490637875831351555827929087804217613730382183140216794624122557753337362169466511173077282416951740795094506607882461536945182637938258095738276902487161565586223972559796142994529121227138662996671321420591113592787911906225316921821305670684648569795737748953801514583084503605776739017514409180376691167446254824232760330188449586216085048321214040918052204141872619022018911040017797586794359416848677111934517775734199994062075069392902434019623225243567890765524779110952591647716346628145948029591181176379177209218516677859863933591110843488337812473136783024149121723990805382345485670657725148828002382330558687811469461526213340059408659031415949658030401114162536694717784711085921813244079262472518729770196855611413546689313651528696670098826844655600336953474899392056610956362310705191928846701673708350753997024830065267256344185305387582120803687476111410995055148265613931269671325434845561688764546797073592927620774768226388229473437322648048030785105263261087072916870401300852300171887922194530185548530647726774585175340880461491596264491084314168141553199347098341201384186118482253824317507681562721600913128263607356998569505697517864846030935702093154227610915171709276120816435212526476179999565461826860176296881838680809193136056860587698028985743318304776748660570428342461906037995326253420196327852446445051404999034336941234529796253461564279107350315900534249927407412588349433817027306726548663629667972552322617334875562284897468437728706822534225631412315422106045826597210320563948415772089613557383933270901738301384321186725092130227507173768384862608681193299048473646307584282606055167823287538855568290147007508969678744456816728340434814440984582737732858375467619675705133242798619144474018640877518475380401058500703057436212972344308367838767357060738902628739671994354414709566988645018472252785601105505182636601450193926979095763623893439409411147816543916520704619751017673260570306634342741224379944530180158847771504993310874959196501733991221294848679635115685764099984546603296984998119419744068950767254711517848779796557145526051275058127061737652198981742586008778423361011374560285578509371963227614407112507719716471348317250671174855225648627814692365449993096747938663899072028133061530027725903192390453821292877886164464253191995976642087079486034935662360219094304620904336114466230043513336131263055001439647970656600772935598613092471085124133666442059822214167543376944159359058497727459176944394795180031460548288570110017428979852975906296511083720302990301383142229721005945610665034799639058819449239260653237966071002458213411854427423094466018069350161338554656064715873975935803575773183958374700153983133770804714193477179825437484677101925062991105341214284793097899164087009266978116102881830569738213479455336827977857487832371753694920744706911443385862353148802624735659067981574350439940143622366579306136898730385393877187180349946068215583537103070080908763923366376422438178941922557393162792400405859120645314272498276892836318355163708745073699449165344420583802083927794091312800906968848826278813790427696702271642527345798873243223624428358230099253244279240660671772322549938708774107400073786387963013469566647537828648607638913119796283482909741476604447100625250825721672488918413002385978338487632986536469973394269499093258882569948804468392362837927746552852324563143585964252747829839936508008076063410372342532989835796302744554176675193357947813667377334626866310598276313007488607602533757418190035769884829721639654597208699543973227716594740687054906339913544564355192279140673631000118118894664884124424977176767878852999451406464139452217524963310306162365948633291150486266421676699910352870754754410038059457792854756887652199443298803079219716028466595121364771728987126781007475078581571881137198468512799975282736997531720406293575064465779100606360158156310220129860127510136239456586628450161116524113916532965478329886358416444890266305925238184139012014639093424770375635003740210485921611412214821404283543698780626314789485255148246707017676886610025533383815821101302867746944485709193301586960278350287620974588761004523346308833937106252775233433430608194755318476903650494497612631608169684619976753994406291269016205882759803025688798454307940900207052624680600362583277152666247715178970417779800862502373535636450019038032473604197572032134840816654725259166350967651993322670346167592326750512569193266742401689126512657468389669359466229402455420299968018015255285510453485668888110945428479830947561499180464569055695941868241663737345445803654292879051209176164893762650155641426996517102354675010079878028315082182961650561764999623062708631026129725487626004643719239650285332637635472213849934703260593427097290904846337245671013613102241336710862683425518039905989864556606655186721651668345565675397215654854412562513485403458721870037987931643632650352174479509499669669893309603060015287099778679902227723416100662417279387904523210436514608931642168243732381680794705466900544654572241529047320426495909757859443144390578274966282412264463493392549421406050139881437095642658530935521526617033739783499435145193523541792104424942789575016741692276018441236003827944194245867910616825526162955953083876007217515005158908185415702552887700003243652802664831110365172354116598625846137166885373458977835599617594128369815956859893603504123765693065640108270584157476262778314423622695138850157943263239483919030392691871029431410146000165250989947534058100262093497116594168887241185075928484455128659268109145920985156192620193585260520596067064049804149043087885792102743116036815455112089764404682509567203145008124436521657868577630752939392127233587223441917488205776380989206665849739836771015924120934969803785861788705343919419057593906971048629434679146620076276359787014873565274627119725180140502140395841891254091844220452957716734569661638702524978216049363545169687525022000699372302707146856027701419506901334996299705169245760989418640695461906524396053643791566782446042106947731881032082689543636938914607399995142521795334935255223078484609569489109823197418223449184543432816498926192404320869154972273044934795772789855025454703124450435564168195941116312085619517259097887244233217227565136166279457036073309670965502163652701005145889342678117955860350880251089775894887274909963237431717693053629730495010337756092453796744582206750884537347294856539481315892910636323372144739478810665778038788928388883337629511312830513322457578153547847023967531326445009218643892230747536760728021327109953199319623402288196168433698833548624844672413900466376390275020337617172819155744484360454178616090604675828881138872966055562274884003869256484492073994924869778706136224890630782693543214781130921054066455307710339320027609220432303892101739589213080110114527799414719556245777687560138994668138459832390933384993997320048267445991550478095246751416869700938524355614775374249395568930025350003875683549326878057262251195892297758823975210583192980820866796767661340324549088381066776422326858703979218360302490709596141108071640265914028870750580573033704890517629797257840810567876767875456382803745982282431128643255324991376935030903364408989894087331061814348722762292718746801191941408734119144595717216147866052539255746628168867076503915829030149589999776003409110568509882844591194785410610151812297763038319806717961750757778762192085468220557134482004008343489980193250972600745039638542946191759875902301309939891673898235510964890335507499851680577926781379203260155048148765292334225831293336538845621507315208153262201138111143304705816299385456500670480403432084119808247201730232507056278714946340839614613790647485022487996032373686758442957410205604385582373131693314557202362632150259658796515500024340510794986942975483510806548286871937969580129944571501384121388977697790781224448783968058511237058170689502464286001270073907988616147334208047669023294012318369554925621929566082130040292164980369346938400598475135498464213284258788900515300988967296514559440366371137365070917583631849971393410221736988579475447468183022578392883195510224968430971705667088142479213479094409047841306289024729542820510620262972946823103842459701076305754582348520848900181921785872751639833891351852819349539352164241923154500583762942304560969357302124974815242455354510040030448914121246424378126421605545194645531415085343712903619507707766840968267190433479767481274956259386935954614170830356263897736893465475988882908010330827693192137679264814651652041669475428749485771140766220107250259988183755352495808017572464721292009334962245311225408772989059590695662346653110541342506867834041589026295280436137998786176555266900952545339261531807659322554197062522400580228690114512684099456061633744140980918086244959757843375905304242820021732271725503470609652473506848946477207873568911654206693340109648604845683655773652833484518033093589524322880350766986969993648231523520624487842939851302328728936492605066870052536855747906398584279036033343998136772925962531851357223873806487292073109614510373456614452818720267983820034762067532762178442409518300792444916775490306265705601208019322297980603732050518485623024995765575034912055160929895163558403713034286638553465713893152670936241149438569936572970120258376237626035162346216727396092338310146008850288372168456465620932948628294018977562332089246182103369312369381549785450955723269390279003255254981147465682376530053486732018388400289822720777564785411767871717550461712905932874288954819262143407331638648248423701246434767129475829826692635332251432981598957267523174060138469848316118309690045632188697274174175630298762935035803953286715501291096797513089742284586344078070905422490575051202333276684459563893573798135605829554276782816441462501522022534068240479531580493033400043390477911852830010579401424842035444726712849799499576457321706068317994732399886764029822198925578686696656802492107046713200399206822188977794768547209077994729420129823165874097517651591150086434725583426693849454336761908304543496992833830668217956868987748011236737731197125317594560117447248405486019663250290168089318162507697463551673210784111791952722125327410849592994652352716738348523800855273838888657428582338356439637769504485653167152951298153582616357162910544507383400845700981581605860724676311373660093651930384183612119411175411947372547250066210232564194790588237667396253447965396249832101187151035002678946569434315032810479966149325992142541900750354413981724521929125589270791532128466286341560699458320224426277436082737167218828553558606755117993788104517497775366096709126197346236321577648492126561720895690041151088675440199426596749557273167612297538608081370689953547062002665936910444633032091119817382377915488666661194549790729126935852157370286307253967365639506234888279379125672820761624448607615189863420660190873025365869566424447359947447746496271907388104626971428930235137817772408012824429285081971271661955368607097608700396634117787768056763347083434087614950842105113183355235073745105109945176942504032058061130656855192032542674370117878939473473724717241722411860343289331985934841332695528131134203565597839214055557107917486784983340818356342348910325864300047206881245687659304733692204999044047017887211845817787444116494944306314755024772720554353968260893142986644241306807701816206842056922261908237875052820495842990405029074258392349527083575513997690017915047330497639957047636357936387224991020768871788304737521991434186646109718759111358248289761264747243602992604850874628484455683818929480113685599094772313098777592299252221717924329426311086779704618815634936241995858274799358406268264565609954348845301327387201495860102975305078969321109897115501723036859637218244931343936170859132759073583422887489487350729290577311672388034545855171268560868169195618616913450769532675976685454812645855778004082665291187202161278174749140856107167319050360491437512804871726064594481981977616788807224750891567597161563643979845289956592606906851938107891101560605196200180370138336037608439052251631947518001103686265790743182531633422922837509632343254103940125714228363423430680358361696566952109611704725471412538201107150936319318605106772150595351013135994316000181252066547273447529790197771172408215291944091940918860347598592730679336301867817695498309171940399078735224802398681528901704156388568812700505957347091182443986826658892351992866954246224373481570900206384157555579905877183988968619449245900510284015842079944184853946676707225675886116680641927986092478610099613059638620829151334077472974240051766458811899680065448194405153761277067438808463864573573724405421439321971235302969028094472014673475432229885720057515552138407487721983803507007586116893501653452490561846352262470863570615670489744938478707892852602965289214293211134712124161935406406833897549170862496016084318896146097101848343288756318316509618342846554260321878818888039865879431933709869462828924549638432985785923433711547681114278555618346994634792359711091728820362597684243413305243705354631015520173998975208606416854643179884370668595756567073156063615247774857493442916785141008127881328102985792615348041272115309254161686094671814927240418119323945104354392666653267590191764960609004294990485671518077747529183381200988518286246814163157609692646347021473407973489688316966489288494589901938422246447389404886035949942061905513734633434887142656701494055536641914215904625178703387367066080163279674845278205183773787431748898545679580433659012986525378023880442903418095980446729756570988534924125867902593412656947539647536135385464560116071524258733308501171337185964259574002339540765166034894137243944110142171896416924975296293786653375978047286707233203838699657182679378229309259524891897004323216086403609655351631946543313157088946890038852873209299607724327778494962977434145032793055200191107971483888473109385984276318733412352135485900281905432221259389104347854077035743808459947272939069617157102537037545684295155145069897828165922136855911758596419898834564871687243612747093337023031737183669322676506671824609711832133425961502700273553423118282264088977120419228373577256675795665285824830566844655061689957308221410392576986410525393687988168870515918507965713717072982415856622020184177104929984049746327220031393329137313559503915731561061679552305601374994862625364058900965024186246005996191503457257483336167808572016385165420343242377860762701929558608393129896540495200684618028784010347116007506420039631264671359653954399010947580035354039446375938857387634556997171393168453392222274887470592763349160574230377999799530792110650672557850206594848997801605892250633725397825317949981808209134715173678957314496714960093722967123333268661516263047940706688588707440856391610420804487681651800971255735455393577438268973239534056708239526463686764748680887857137694208353747362492119879383984999959366245761220231847979906579090969579171220426743116631296096955364878231280982645010032471085864859748304069393224002303930211438551941076572853735391705942113969172617571681814284248956389977063744594446283355624645903948344652682473503640327230040521118478798492351965421386066672444395597816558220826778314487528162663779115117487676634737284383739958603651747228246044381017911889972708690298750308006466547430601322483580042488974408747445499726194564461924058623806213424246038612543626799590502980612007571092721123304064415297473663927303271005249903010036786999433229166778894925313075680625694968636253428901515468364261022195852584189515345905235882426235251927902831463473412437279746520453619201038408442976598997196443533932530357286562271048042308185157875961307738632092097106440216668035004565821739521519709081013472252841658107144382924907720233096739345133374437999159233580726989479861590272250341051089409185928093269878561060710930075507339201292998130276249262080329377034375707880502328548694719363805016382233110377484120964053267936079146282950468606245881763929818414750805358565314191197252655478329285234254703676607266182267444342649894049331983375999896657723992969046148932708488145712765191575591444893986225692655236860409164781940388948033977899064573225186960913810162722338570045130695186234730425190488180844096823987845778437918658734011099928378810904328868989705832829848792565129523628886024317398890949368665440468288254682293469859095993375178677749777160269277056695514193875020287048766267724779586120172069788741599846999106585415709633943153111342583909559640541428774383802101088625625424414395792298349674671060071191317006643785599082105651495618140847525861871567829136429991638857445804945578729656966586601852010419936950040783155242044220567609573115714028626995525983324288560186709445734481208560455217340678244416741392875708911654804761223819863386801749642474065574263835432516070242800711207319606143049169809978136542108359720525845165301080817460456250000958073486350951816356693403657057396435861690796380887067998454747849230458965053145227790291983203080120698470528928485879023594566398980222409434633199583395506896345955358579182225612631615567116997200543402608278327438077813081969990997783830782845563719226115389483409865215612476195719049389527664261838525667099090059830772587810226323096311064111131766443225465686780985561472005411572508878755839828443641071048781982759025330120727384043148930712774990226699664018656215071789350486195602463591408830085438829651780444567117857219721916460644728124255521428143347606245264521490009254043853034677925569341393300317507858151358228252856968914874942171547812819643626428382918654523558823907826555836302920819196768816457167802338173240675424499136473274034187383965332622696119927580532394741930766643513374621973772893954051594533948072372894053390653416697555782519163641701102616162806960287271244379549509125279044684807790457569319485040601923451892606620822298466192084924050759162614941887434678900980555153879901937072356358355642524987625954071301935980734624694845366178342854658487811022232649312581796687749681819693763150670276557009780264390829744618797390316488481020935395124173875197697467280476548749568764905859085915374063725415477908636323861476858607989344598198688109026234223844225036787167207351542886640990616751034602085282363658671174575399521202403516979148579157905123723041203802593621899802145396175927152592526875330170063020895497217322936476989590814798839125323588086381336303550600494074511815796144418239680324232031045284975986293459852428762926196808596295359947597442439067924754032797069055441279582530364214740750729657134693014657620740939510997997898322946462235960771789132768319669045495389950618255208040953828094959536116527475950754387427678892365121369723733777771812873391288409765767907436580271277181250270250991967923307678915797359709589910024064493302816637294248435513961681849687427727708342967426943288131544236438067911875868736307246102199324530433878998972425203185556498769599132024820763918486897178768912937393304979398657676927723131912281204350012358748332633822888327719438168391132703652734957784459642589265240534857978943518238923975654358206901335044349363951752315343653364132198816609720551665404732855391865080820725276154031527688099554634409016115220645746945806955517243060247744647745397887807688465096469325137823824892054579006461913749301351504856751320323102635512693532977835032699136832473267345352730317230351800435806301976515663803479160096622879698568061648252635920426795451187856479121090183607356934096654648440824157665923782297890073744564320957179124792216475690772565106915903405824560388772895021088536126812145828667793613933608828132974615554627982816796310895626763543953071400466940050920721501800902426273904501875897498707202570670673663390123001360133917745091789328937738520469809884109199766690587390465177207926891191708732419740618198035040513785418056516526555643980809890963445340173680969250160215136818723931469654396836798042756017352724460534948482778123352942552602589169039706192042668468897507280383952935996697961925082895790972356477569594802094949375354842815101143488844449150765518893803499466236410853903097707714990462948128800898434851463209321491698492610336923633564155421214896677669663491871584313586530755823289662778611427596467509142241366718995734155974155924646111217621238104664484415819759860258454608970449357878975999225986603798990418082456721320313668609583624280179623168039668650289295302250693546721356504150737831060609577310993734187667121794670912482659082642289827065599528123934838162588842860123974202707037491145421350531007040036477649405649145267527934918443737627770273849844316462754665889079779974688542096330791099813832345589645922366773210291198350440332676766419664862921065514184885156696021912692227913871745114386819355489931372442759594253405441801723403348563290080843845884783426356408924954302672439029076446451085606487053101549266920319722001691910662383351782746382485308346704846690090119122758322625336698502102810382281501330614164302151135799129988733592681785668413836151943607958353017430728889264899366801541944457384118178845591218342411145361591935543318379115161826361855868162642005010566478251388741072458954666431167753153762581437538399172576780106067044708403581978378259860380137939649680210211973017452120393330880495505675561486574153560703451086851257639365226264826462319681228427155881355768118294865635035858891109807139335331839294893287984985036128952536027204930778274683637156217323062034429502365637213772665213088793746420777728001071284984324613953243591413146697648774098332755441424596044179709083643812188821064507267517063258160969492472733092338483976172790394687828695799142618758324193394820835021974344654916805087168082567152849771296312483110943990400954845773337431590685336400297115841927045988131537316244216311286410955244155762959983034599545531265937137622669644294901383863952540908297038779326455631126766150254851497398370966746147761030690188204519114550356862088011013230965619087763935815531383828915288082870957814335384433594581621533268245840799653125236885812127927041313302800821123234627343996162625115356223260872835285925127646758743128112131887776881200165110890089952782160758084190440446884884175214084027134748448251209364731069105627914153548358531134356968707921559200877214064339762665901413375565923972170963246530558541979366199462172038070648985648331940697988043754435458411571216873989278496315151332781956532594636700158174461731878293062162151520234439085441955771769189522049033622127158293151975953939602789357328666681355857482768972332655185125255692410386804831202901672349021272854731424528208367248520371769251034809644540399091044209585812123041220846981135270521563192070927007470512024007690251116658312843863413998039121698928816661247220372049627487634228409864695710333087155188341600006933318485046065155055925778932381812619594076840413800232909598877097691672561547252866300536225901837179826562821539108948084112311909496851643475404256478495855145232813294038539498527313973111688139452948121702400632845990558067603593454321804470127044517789497319783065105960179980913305923316129828292797372387377827146552341859461882619946074429051626705513564766546164124418452841133802536606380335551691856789668429216064460785202673303204461815261977338150051913861131045192029574407758354657064290190809859352082536714610036735752583826862355729534323050478209819638584466972566987319444084410200769907091706925035446072442151898023910490665967465557998784897821337796371281041145336554403666083377141898796482580779896820609377555834511453005398962062210940927259287666166033683770282608060572778041312375003660165663893317136806516525414308873686795869628595800099397513116828079965255118213353416434910191053861196636400216677902157159096846779969502267345509098692046106536904750590229466609322553475141924367415255951268954361154192399974743774098244998071962969718084147613154891137703058201454510225442611460611117931475609992674059340708808664739543933883264162810429839583776317391504583612174833148719050680682594033339757425668866692087714400293129298266950642120635131420645948776679193852416342616329283224963140440261648603404255738464156364821884587074899350872142918764320626481797951481268319038846602515644838386571859047949049797722710565376778873534353720754238380177841600040987487371863219139164103076868883159836070823978276547408911806364897516793518951770490250231711585616011020259555065592182348638600408685268689240167548574816172000309723927195604057499855204552295397417667158259038966598496018385904116020423667678973621972530871909550438581593762578667935024067420063478166410892675111662818966400999956425533806114641083858336466825918808141891416875961513817888673766963638117088158980859972383512095226739801657352740519286043305267417758357805111785645906602961309885151729530925589086108450141684259824318715167400065164163644424077339867089407026061558716922060315776567821463156501558576446422221844639843747519530177979690227797315749698229916489858782459025147972831719919996718619963919689932603283138526451024334732076163979280984434962912992748240856064932863207957531060318084493685728047624475175107201274349017701772371660402853014503328903261684527182696825964472083268040764316896611733086513939399640105528643497759902909301438873218889786398405445996190256689609649223373199966987522714416001929136114952123080020729154406758076608132002372242112658215985896756187563143271893389697255923343571436587931804403561291603263784580121202605039820409721120621756772171109937331527833409453997551168384914903329282756697913419443739655947053207527294869617584138431701963304083499690394662600579838705785449471152588210598941078181479573543753014303087885589134965426115040445233089452129525239363641151617797448427092021600966011702898858930203732973493828652329352231112768241533785722968725607041142513205305406564825495451854157276503816482352027192969329876650299472503505786910368118005726174650159273981894767257742787967655726720125786677323481317536924111479107288632799655149430397623649203844004734634409313410300759702261258622061818961384411755465519215505560404593556426649456879325148846791587497799182441004240797348174618948728628675473231340149038413006939363918798339837233787034406163593266177990410239239426892569515848707549027606984815846515557635176553627651265087935889980634000050260229708321098912183427256785025655755509344160689085835480338195056642401778732015141162949465198501902372673087000897829877487122223519755622231501397171161364509109748291306128091563323440224673906774753753711256301224615802125903212362386425517816993224935677246638734915698016627012386970719618860700620078087395312702569542214383660270424812373864729814808276043841859884175452497860843415431724290183690216648208417514708007736260320342626294986068275312678259962839536708334827367749838162019159415165189273413812295649508777612297760792064641364359647293858281868796176615951610956616783695227199153370999877720124230614837128967066105706822361220145792891877222845673919599441903618137591968574057666119220101020763476844651295272902267607039467431226161635088539011944269862172909555676631885737177074912992891608262090793881614476060434287383886567511549487117607934358893168083307207082471599670521386560591990309321101251245379515863862307376843662938768309847231719579511630669355672199549908984621782897556083750932559695492374908270542935532195096113347017496615556309324844691120649425836566809282300787661237274532094451266384612220998735695244111863727676788767313099171233298158819602475323978019473384914165806944333723714334553211461153205396486138189084193368183070122582406567700580265167330063093536141586252408015720512719974001787633999236342604011782721966192273018474325804792182910808551073504856639772282156910132436781325694640569528761797944781499042635609446961685814363285778355617349102079135309331838563194765881658090299904398348099316512690564992443573017339108133908590838564292194772377536363216178046186950700353176964953942262972968161650522269573007589257614350024345350252599050677303582263939775066173015023130514911698110437132786625579306450154879619496728938414716094015340163257997783613569844951063762583954078804631174052772715203849990640407227157901573735985521942183615231386675550998520991641750039804225720846584129367282091197728199115967176942034162222942697745874575839530933674309568840833925714781929044347106973452730386718746666476050393416533109787021877509618884060170095721663124345721613222573522817358400874751437200138843849044688158492527464358017370263641010313471426321881030440798083851517610993494282039866063874859842710085783030885420369029937467311549789085996597155370799078074388476034452599331033197540225755571625171674277160838265443377064416714130854947852266529274701693748877548800521284877918804562907875415170636063856134913577445582243212254840334243677112574917105088006305509752491099252553803800796667216843196723657155623287285870538932584749113436448717029589229412786496725444159215383486687472140283348349541022265190667312337733479200310344798777689999596116335755942066106352941177377285574579723856219344137749799949726884673395989086768495804776127919108222408119016155098759763597005278970922762360582794871450457282501965533323541129045656259588841198996136473894832362160116589700850524923602991506623267560529076365383804282436223174802600679050915103695574732370399307231831198566665531485129806426204857971494297657093275095904796149210387450724370257913922268899039628482252408323584013840289292931259929077822644242007823563108758033382796363427610065041763646178178781778365978971342686957682854921289874164791493575551394778291684526959047043606243822753306934069139458123456692069745466928352976090275951880076348034486953287651547153102775820025572175978504742699825178243936879000549105738347537225156249855248802264763902699462346361826410060158697112129282397497949006205032602166208695462031129028075605742319459020239070473579865867064689538694613619552196140588265792253825877222183602391985729176653921984412816992181101701101341773376706511190740830521622214058021923977181382564384605649538764804346003990340856844827868991874980525511640747915767501758237893303795426009696877223928897735484770861589897712799468225514930541705479194382341777140397851532793466068161062291729246768315029383356195879953166856079171433977343099516650363290096972661703710953572700487082541505748732786711512990833211455140975217193949124639182828449911814223825857798732827136440526998181633035234481133351773670828027814825655043901339887280362359611910664128034423218708156782947088153289566408856377954682448738436132455103124392307429304209863802065639417811972795391710585764969898800071947351299001629307213902843383085819994810868206945092785992512539026710971160786974883436463871619580463169726890189374996311718753433378926420461328501536426005230698104011355924034691771812300609048190620111170230813304533090814793193635542649081895876346304005619432735342546288467785658078751619284916920364540926734515770708746424828856864169833759612328748581616746524485111355285886213026589500498536091315479166074268306055449747139264924307831362405280272256836843890106363377604037984647677231020742198219747947735645832780023980443227708139660824944976168956509823100192570381226608383673838283209167011527362714518069705325030653369857618907436857395839058880769290647742645000581452226138179401633098791661667147357150266801204514265203129186868527424707692097834082978830814453092464539490009446709456521762339136509936204712404113070238236382386947808554731892278453030357954228441189695638045189888427950021510104678978027764765134004201681864718944422471359295767086597725055363768228376163863122123407956435778360032480732646263985053111919736082126632361951495895085047989757553805366520678633337925737419378211296336101189725233697352242915637939782426348045377239872353424701940799864054737135416385880078037716677523137446747721361003824836877685678103035627688831290688362444235990185599704098906084565840056607755888662058623881646766697115784668856104492283742637287102597291041229210440811487250946060647839857652555439435746762198801807089151893101724548420621356131586161560659359931836651895601141010740773000619602490294437162217105457706188840150566314315114868099019153275909866706773101325698761700555422915147472235513118447845221218588401552841932866826003296181584617686049873159655534978385115199325562243958148518621339784565631341336751175691858728373239596248505962294588626498746814185751662536628167458171070253240067907177343906618710213274027497200910360142135498121128543972112610725503820802310661081084646744155435131069098788486493113942322907917988575897678760191178777819771706236838307483524614977309903900757260717555904701491771018070228908354908834695746016641470360635227083549638187229592072991489962124069829245792044623253732603258360770684964342186352702870144289676539340045071795595694525068800426411945623238086307792512734091233859778954906955236149655188004032488964541377087831915776382879496330736284856694091940348851926765635683867717056822454145949326285216429234822803663457697159701317161816085674573775178533467901644950241996784609462048030281528313236622246560777712382427828644634827784900887113161198216640671325530132270818939020816076810525123907255049065061933535094063271968040364232833486223263169608937219281448835676391055987407104508258594483013809238349482349886788547134994211043362031034617505739962608956767390816586761717214274486786782485813424822333234248660633764730559603754626705193629655708418685676111005568396388644219070273194154562100176438013522538061465751899497023869448842628079533341117851607529412995178463607166587617331859221106581070894076215403767613131008703988546102453765044518129823837031026691860414953982068753459349356932122335650167556445183478518895029697586420539332711911096263718720990866089832511325784570605953378641365390171174303322129783051379774458996172305702736181701913701258733944405335942094176708551651609307815729488507214685525447886685470484273515060536918778151371765064450217341420109453857759300465606973319189170227108435710194661037964567924139660047559763219014213231183150662213123251733367542235654973034076754757297560832587360784890857573518106556343951577425891144637174007845486574352628034365821521146275326528723331264273612777474465628550693217359395113542003485250153762436927584662090665264429382338528260248837232704453017407148547921778491394079680124770137264349711453617775376836426394810776086310486039048593001209121040245954812528819004936810438416449283873250720234772031903105565437183194902917313596673500934605120583314816974594766491108852046501710958284217506800167608100572874996539071901133016386834254440900512320082445703029227838841871511705347666441827210633692387823825713612551574035263658728383325203885807662918322867918094972928164171092482827296661518366223724236121964160234565440032200823082488670233756494172355769070695619923950798566827157056465701973500014907594689889286930516664220788974519940131562933024086738289188690382169833689738218026189699384732184095421935170200682906686578863268841447446450838450492198002219048965302894572054012694160729662059767514690432264789176458322740415756617104147275714641330630706736601508097324239686731612251542970410828114800884964945331636656418284838468331688765509195461535407409347050293040445390754048533593756079024251065046821648223524750747179245979483386375509021535636740720468575794181556503029223935738633973156953288659468848392965261468546379948886635251223724125675680729177750637377417099039840811718500264036468465710956949116781541710143397967429647875363032230726910769391048807505323453216205885519049138956678303306406149905369082454019276445572629061833156646322566635645923077308761642563145923901094188600500897743508411635636036283925804647760150890410152315866190389713138871132371064407533843449237475525854698377332208340735388621520745630985002084890660206663732169021392787777816899805107756862607280745648186763003382308102811951768904967374393717254410637885839193601860361625756926374731269319776818686505829448417626535991162948996461826352134456805839103468254987245930839507445162310555542151314540758529362208370226800257947838170034223875748950890344518161085886249515639273315673313957217956524067256407414735845344539216340232359739456752538184010176941694096776397540573327981873057184654561374584459041888078616845549961902947165166206427899829976939549010736477637420773103626382917672394101387328690168266408114643657095164816747346311526047673712512510232035545456783104052042438068413223785446546373929529189299749118551293273622500559349108628809083379297565549421099591593107382377391388320615475008525260670687348577935023695641934326855378466249924420044864679495072668320071334128290896948627150501688225287548055821913968111459512421491766825717120402035755472007076770674200962862570678888127096286503036705038383470242246111797829543108318624286174413938680326331823133891147601734547847669011087887272910393103623836280104593844660277297034841960999436208351202347608572488895763967400918982624327876074100839010913528777683005959622284633307592095056070383145394472093920475468816344968507299979107714597342634197988390656930133179196969139380349874890873039309271120953489569874107037490765352758512113657733072859625862912823660311303949115593587736750127025488733407439190928531973766347042317790371276950956811140298257035650028752769635548248631343506168384757194605596611277908665645158661342944199035436422876219483296243726526706879228838430058540227306803827777727271445826740618104539692453780283414296065086070672340032979470215123102104934169906078141738149332065982839436744193826985989287352535720845164901782180428082279123193133753933715093787427907124824469491171242453548867870856966993323524998620049432624373317292729268964187692224684048757440513066911612462507529940811167695424063982214452403997940461385184980277476706730764331020635471150501711244950616111519811123313504464579232724916924828905329140565347547826500430120049907950092720304679934130820879988696482305498492095543756511053323330524734827954772954341921895218449108728218417752681898700100553829313069049844785764505271223299884475983671331229405853728417988295005619777387054496064538393475303313246355409910182171774453803631845906163652783874395384165078964500345242857578744100031976442399329917112365587043128380589766372154172524368919213060346668837522777363168066044578129394677692816274500127696965518253234927595169346856303836019012352592556043540418074641513694937278122542390065754815533791984520008590559492151418101803389791741287583716882001740532409601374328710055793799364293268755031416540577761034015026174669601934052146963515548358945483671710823838792569147367443084554094933013220460882529922149605750720200140402838064114258013322200193485132063110303067761390787289661693639928021228351162200120386684868862744401848483967760358160521767329735572521099929664322717053732227884389021278536724057936154131318273681301532007568924043458827964702197122215789107444302191869624734561422638125484970714880338220308075780365859899104230572163139633159746811835799959896277492157149071276440237691344719895916637965286260894201734469835550815817390171054018345715406835370668711122986726387857518338832453419266445643468951422819547637446408235007235327398635276672699886009656016844160928967720382658500121762973887261585851342374046502218133292311061802771438730422904070415166896442571269289037378723194715883649563386963843025281740734160001447627107089015909592841011080620141763242395753438824583483666873509083449182519138795005144746390529286756452386529881564997279510406460836350689371022336094422379499337775992839201982576656695473649300695205765383989714614914742883706543275437068666111460643019995509940376593525673917638480912080510054903399546228754545630855523986092304334987564784717819571734178726001656844242665210430683682094779379108155982290194875044785118230973023774033752845170926154030354274102996119483134036269531567929217698984130885217107673884034501344941320767850364391282894547492851755151213051559559727399944775938123149262269054246732529351359918224698324481645103420875407446297419410051282640730962224477352965842942243339868890400562636359446035348109000196677406805434494000871913817975478948012288427504420850637925564503327896634706235019327748296187909459767178457579188198344001913785563873770880605934980988726331480816460094908163752441935713149047993599581440226203556463693844497967822580194264989141918487972158568160114381569825306244171540214173255545423638677236556431365505857391983364927799535486797951562151760128360909231176235045740631600129546402088184255958337937826579221525074303716588611303134475145836141844409779741889254662488556019198087884173079223995542173921519785914638397706894156901810800376078311460633690935686593256692037589760072109885764222894989824733824749014841454437502188865720226008602936337306525713352039789761465022532155762746241076810860904956667257325453646768344619829854514861547197124948853470460763010424716678486559932383962722817316939199126653967685811688970590111672374616300183274053159377672207660558778899572894727762370698852992306934394362118451431165316158599882933741806426200709597467514263388110965007877068729085836896490665468177249502632172217096731050496427174075614045924886300770832722494181343220804805177677735881354202027438323721503398448590626828955007846431134008111423771042790327014319543972418571524781992641522998265779139193009854780393005910077477018950318602106879560626715182779614938229565876692886227355975529915048514773046222179727803833600156032553810928103256165281671161864042455122721160912277580658285391957862500267596811382163064915823329925012641989240489183164972137360182836290374273307610740574697712336169484149536513911877970335715225177432089393983043686445154960861034640070912784902773366576523115807150888693579158625905027408057289322875708243655049569775655909429938308597251323077774624714598212671054441524540574510226178010641779490551697103705125760537089633284489838742259145575293808013472830859827214774440938130751634523767056784952208554284333596585637632937584916944282701976631440499650736080379318566090961554203525976650721519243760851566024229654759996010812379879296973221088156333519448021602788720126280047196857704497666818856056969632619621935465484972704432551840414091430540853730252235629886117187169362357168582355479180160099247055593319842096158460496328083052619777009101994012528185496637987254411018030412540686183869044867370034172911801244141464461609215436430200387402549898015678479401137631087285182486675580633698361289605744472812341924797722507526947516240242492925706878840784676803533188833980332121712844336042089014819598141154587047435854233178758014008870697087739701855638630825134508513131044216229546351078823255963868715582898962939919019125730217589712640613184567745325451336725340937395391208833707711485677017533713922715764688402903640408914011958228505705810596986439926112646460653605326763966241687831049287126789313239041690489023699795001786212442319243680157677101036187879692883581684431737407003335327384315184101110453284730347196376780049089756841955092091238250420746275756872911359688145097246250261308484822413451170486708635098817572320441217258659514642459738065913857394941041612989866558213128852901370007020132756006179290025410101444249151025707219353226418456038057330845529877744636673839461925511917890648287537782941428486429791162253034728272425447743496101272824413576445206147056344078516512580704092559086382812818358491931048631371109194257466290175682622271155055486666189820647851798667990418236613197994504931319410887396085650363990688193455154579739073463728520104763918261403298841182189190672872226451431010059123128413961262731384769381778810347628653170208856740554601492005223177122517757304068915943601304583369651400515379242531570576643325452538867162421583389730569757503622281937696237098157245329288911613680449296052269571313606964540042491270155845076521598577667794497796130789920512439346496852070959382618231859703906077094264323683370606137979380947902843882227510830005882833799310905482653379467015892158868983740172908583256780875144974300202345311904606471039577765830532368620238261575194871843665284856462946451319670348921956460912491980274630697776737662164585312304188296491606436190433314173916534353520478186885854702739594091386739830238093584497413467014572449209735349288186404335725507964305544799451115620722901546707570976940297140036548538892317699316979705883165644764021089661299749052928829254063889527293068852475322991023511084634619035340585433317568944718987364657630791775267579691516714577364038927861713286938744105746058010417335785434907086045107282970684851415706287286271730743539443718308183704896999749295879746190523796041419284307656875446510761668116292544152443794071419902214812569955563868754404640360022473552300678962473409822706064102648212823760022230502786297575494952667986948114153817973844830961867010199082833808073467442831381246189016690065967149655307998448988721849501227386336946769599982725710061014805212610454670145754853942719378814029919041541209237510857587951811008735567328781295458569408791589142550729950331931048660123725740535179525024650009646253088945706503976286651674353482943144734675797786639600112205073760539233931687780545408061739694862511527797227858523836441236060465856498510594924645689737708601599075993812022318364875293901403996219191731953471513056318754394079897695553891959342359683808452379002177472789267658302215926943997562866468351862012746962307469770637869410941013544443492757464072724370047930553736543075569668525626126691062759702530859015196630070303504439941444124917139470564916396896654041657536448377307718593399118912745542859379180935186627131672409877703485152508823755582320693123084802343959311923915914533640302060417943048536955567567724158081837715593978383439314215848934850864600751556669814969703312692556099949044713724357792542274167855233001173604547777318486143360950598047046281295884237731693598769463554473234221195695309548132163345926935395560309743673610894137867142997475107029442142978583230044114436720892955638566528784596343771766463406781292416994828630891133776055476341827486232064206770595787538198886478764767649181966585076367429211470156741776955262136640925868761862453001751576363380475696726968087418825846864213207883425632200801840472802031234573634687484864518330243352485862430902656703335810961369491977008948359611200457841400861537297295438420923452513920148125290982961992269629133913061792152763354085010738485167817491620495560450078575261461026609725988807846454148108001300563829346251362133537229224521211478424885325799253182602373307602946596950938199656032289887136290669962303865929750140174030441746321443209826547468409577957756455369533375784320835431614085892617820499876703229941265683214303031634071279743161751977144088387702777084384477863185995893748966796530571808462845749875757713623159068511158669870185981827594013966240406078546088735233410770248030130331846724595978337007366709311673400936163817519246581918229778588327473265722620278578396966141600547630264443844466474313639785616169519790814997732318894146169321951054872752810255183406120850026206818437816196439164805196124149963956192796125256901454889384968931386127611840714730758840508461610864223234124063294538045943977062915099844847029633828629272511419836159130672732671326575099149809753958283137581268122440330108576634125447554184986619762325414631797386680733261716670291987444926433990464756377669512844633987752884365765461573470686936000589730445236979466760563807416216961014159727139496553725030257960535435940762448358244447315500695861995203195050671640177724820909920787536609771762097958813530623659940223483687246490962312375631609060398743785731524065729535841732667201779816938677546612377473938686123958749521858500540764178415726294973245890271455159721935524924228422244903928435023576653971559900080869795441206716745180445829715975402919550754129062217787075793013292850997164303021624729714402834561297501876640241133200562652595806566797395563352706304320398463965282627582825337804044089302061042188002462910257721236036900568527295501341341931307409275572862008872310952049060209281983833495007032659189319068449372755481843195234358161157092859718957181734259895436021672675068939440912312619193429088885134991221870003206840202563994939414177076979516610128956426512709275844126758861090287155972382438445103788259772429212098472507625816117798305015743511953181286039280007103384092375289658977366332883214386285346768757210426470993127106652836005699493122840752608881214683831189129295876043183448513680830156091974768676572091933494265898580736365635501851467738026629672047488297631449783530943065365636556828996168327595063244600364794590993661143775105442244315600123695861464089259370929067246301009570104409813459336026488648371788674475386819510900091722013376952161043916151535608846797542945093332203180336120194934584315864399514179626974914757186812306779663644329529829563981475377550871646294474134448723613000894491052799353156901185117555114866649886274431143463967109880665336938896364215949030080520947176467108960666281419492650944685352060258017795021876529357325828667316814029881896853000789723545077240577384238990406498220644001001118966371114058299724285695081422387408487799084158005680157564283908985867028020699926284289848469687099616335488001234162611949962727048329817879032324711933547005218805690182779241811841927449827271524802556455853821320998532069599407796898297591760632645033658535615787151686605263626470787638891633222699164777546992360836555796654670395975134105220027316700218334824880560268460572761553033478281873435424815014749418984477063696123446441067301913737509869704139655205040043552168371058176162944285285546944290976426286744986831760309015645118223721493771633288292313649452796497933604420159771729011137794964684118180075827292256295836282259257851312408015341551586446910228928124944966474774313336033304561119252713526905667339480201539673789100836418942586936075397942503255177242028367834392191171121980953021326605115959190604270824853190902413330528391385587028710336736143368622810403005814345419683839663389451519148770407070504043373179543536210072904831902409641508248952361316659057355749812350079090259770673096169132860225100188092739301148472945889519186359301514845409391488975755141691937514351852966935195537929049961578947708391629277240354874357783318804816656171958906675812118105203910460481661281451381071674991690816031521028826551586577274291938849178510177817921382373029644441211790590602126970267633243144979954059369455853309836853370213996773002305621048246574587997098779030607880409465776718029359413857682346104038239164817465872633557331693173979961386824115675169011574461530959462862582689431549022338164404397353765398801094318311075009396871661512639851523386941740217330765943254169870381085963201899576345200958837804926730852895742955070236700578937687274463353723208198383360422558604327116586985749111395863283947968123688629187589818070173822526295098197266717822823483692217602184667409940745490811990531845876978054408269171255560467958675616169810330954189692968868203631154707719346459755086768587762587518521096949692551543519641274185394515544588479486624577020508994125064776811507013479978990940504756115376359333045853202052575950085862620285774165722986151387915311774029179880501806353035079739725464433558898183911264974518221057164495385937891417273763551046274886571385514141921620230216837484031696198443132926430489025543138006189116245559919631258436644410887679828758970881820084341112506198108620376175754270111785949948817833498746004625262126601952935759314030465003724074323820321146138512581681778391847201077887547703106917750900952878655949053510102304827055331260137107477508067100496894342893296614189760033448521169120958380331491160383004977983774648133236082149621924053863411789139174889792432587458165673929750405291139534425485560462868690162860899242061362598358110336245176059625618768330853650709085290678976790280377661289531929119090613208649205520711237143775076820501344085494037885874649855388336786285738706981883500143677136667860478274991327574741801159172508680852063700777193781774132842107033100960508939448596731371111208199185519947775819433368065920869596304878503206067582997123783727021533633241618671372748901302332327644681660589212825797038333905851708858613098641165988354355875341229205310498367903004140425113538854693861015960792713484908227966016440598897524315315426624809596760890626121457762756555139609788680734031272005823340482092026364919094255322116271398896860720403792874863315141410321369415536197430835062213284941466252374035567951236341724395901290387530708006150006396522890954686599020272169903963846835901335947593577315770650548126206069553273240292453280777959344549091014883699955417363416009559300345272761078645455901422443254438814201648936712775388345672350353778596815511290779908006078382492597770059998836111920093858769086764487982004015840980008241479402985388940803787611727384686375012361690480630463937220856310383151945698025601870690878487108069224470376147946250738958442749699733013041226055807973530007213578762590366886569795765136854719879314637565804859487723995127370692625473112724800144253139623179348821308586704429219463995983467943576213836555049118171467775018489142859093225185617451789002169585338596137955802134897469432319813954298766363818278619808186392795189188929487152455703864181369319634120870303671287321185073491378857366114910172126799685476871943423344759165011327476199761587416358527559150392170522148682100300221341607026131536679700911226674079716830809048029357297922414020274015349507530766785048897390507797078767187483293151638699037192462145236651525476760184963242652053105675537586265588688013900355154990845658054299818064272049960515476882321214049477848819119441958318408124900933737165496954787958983418739753574472443653705419081451940952077544521592967157431950603866468847783923073388776435400675257682360557690001647585152522894120537515065066940635725420457046994902613793565226192764421654035873414248762640466783627638987689137022948485517529718174787058498761686624593972841844747256389547198402214119977386186742080797508860486673253780398883554733278174228574174400100255161579601641292961602161066580376046612024271359128306697092875593658732198013498262584261223225501173898973912302911126161398467668679836942951567741623555399645391742495911861782319968918702023382858566118374026704581453254772982898799382299379142443073842884494036038246797614541809494202152028965768755306724112563975309850247344268501037691914946298339250604853234988447255057593902455399617338554482563282767622423519980901628406033857307547482062804778842957510758774398141581445159386467384152452211244633386553825848783232043629409340876028741626928330877691269720531663616757165477574700048523551017911368457432087946721254953017164562980450947439164898076114658075076509551951808288063243029292999104719064301143181862975970126068406142150327571267872833390722222361029056797306786380515300302672138908943636382748087084818405021636879717827001146228757769552429913486195038277756181264093335146926938141031529656798571594698110050328751244055169140449974148904137098174761105967650636782041991291133651804840406408744302719955764082094431438572671465689237388089741393762443052865127944031639866860638535564788585655643350528442415519676843649170827781997061184267204822393659679377168783675693666817930945587873516528664810738307440757558762281098556453806913586350278434190406281501708273225806657435733118135903325561612183373726206221489793797942021824151826697140872247644945303560414547922755980608699236008754489805133052908928976506395998698237578919752702960917354230946974701937518360329751937302763494381848252634390631764798044799081958796463448859929317893522123397867512707838540758243837374971091054936879628727697251493638766200343264380521899414163164082859689322456550590343890743273332973645946391543142748998184306155785799426498076719512259688868091867448487748239457243151168336058906405387841336230396633881286189104833981399640238008387244971299749299007863281845203403782137196115264480442518078603012272539563432317023603122481347049488735703595637148359029594265764969691063891327202080766285511068909978205619000006011189665068784229988643477543310136372246488626049139495829148032619795315746188470702370623184241024836710535123210059599957703239259078254803415602443858047143988195017097921888114892243401420393208604618605000407668221338513001982452610480356965967073660661931433153177722421390708307420154199524156187170530376469156210292393641676805478274051817325999128489822636976027210148852638121898089372742412258678554578083911976347738336658824245181159173946979850374195122784668174583353309582513736366788567197920995954425584887624282084374726398167497922188992631799635302499505695477796279455183974615448143391447376429037191602506568467802968323213153775047852874436362862424595644687041334874241044963341241750343308424165865372144646051165576914233126092136709449314558182559697017093678118704949715855674582690919493302655053162727129863833924347520070257413369225157675963645340563418964828687737222344457211000061037661217144046027419900662916934488767115755224667842821301014281870154046566658437007465333508487426125938450635180806994106458743622305110909862543490857647987393283188848932623132778449583243466184705348691253154226914439738908938970509851889985763461500304788285416008060785960492972064304506334213862893297128233317054860581152711062282999972720443328663799764579280970875957434503882410170827585032618620248822670296158834334323616223122077570329975765596010580084040967097695274440955830331949065627729817651084524114165442004146122043812518956900395748393475667291868140172803186275452103917209033555149888554554231903786236371897945801464731195010081805842673284162654013658751098849824756580312032875748733196518005804200986416953731921346361635190365719063795360075847154139078766018009483808482559526113670368424131093905204432021080106609035273520001377628207033026813132363661801352300101503864669915979493106150185218974441483034174939312110637539001118199332897969843088691979336479009828757827683481685847412841384376205056637624836430742241821070565655856311529483220389312065152719659725212723366375235248851678232120176243134783580181592923869519260021024573425123798902687169431177433409230698738694954821249304817271590189612006153260972808917799354344266895311367666422672530964047483795947969844604922256144330597023669426220169064503433096153859896225731606247323940705253788123876365073464332479803894751996119815593768818577000708563839765117830141872990918337977568089555622289053437457947143033233865357195497109335127233656234547718970405021500130999468801684322141792494060895541441361442156765612458493238173022505021556295525195707833230558767317376703050982715232970557577498052879472472825886798839437219018982457525945657950040222183273835622361905573093159613547519769332801037785740692069453118114252094903351202812989091068527331868857079138990399877021875980883226623833580493072792907865309944135216396468964240534215949531520953337820249011610421382014140482752707271641351788747543035504411112044176466855441938303778901429619406214300632983694376407891570140807287581664812188045711304171473462701842700431830136663428958338440172573789098041839340008447816475069486252186755778426173952369893541522900966044197978715086348331683434923644175282130183478935968997208544502202284921453115077499465811277441875559601802846885444848199171392925769758084749517666109164096488298723528632520488920150485715935671933119572857289097362491107057559739203863372198645812099530862826777264658451091962525888215103337456948637857659535786339289544921104146818358771185667078089304204897582940615303501142889806803868529636987220695699569851318850508238076858655993086731335380228089549462073207036177249589859053588863123589816954615978051918917899098191264458741497635701776886906907321113429923549272510338522433735054222415607370823543130469405564812066243712852791484259293972930063835730451975482974233403255449261099446652980291970561674983298768141465979598136204138311352017544188765371699432823719536999871236774711015475299567426332270729425644083580815191538589078962841421039647173746240854944676790911819262243727202956321367915783176638188424914002730909577171597329684090612764822083549724748269443327145318789702711779072422566809379155439331981722363794137085342166271014416212378308222694647151581204871242348959335228284619468459029015053014898997008174915517904009238412545775289576380891630234321656731092906872193002246362252047330081299385258318095445400166698219691793483198986313760680073847330656374378752649391057232506361007237268448806810012259230203399996581243652561172011414698137682511764889492295221598056381776908206088057490262737949632776426148809223116345058295553745873003756838800974602532526720938201079708259314324733812160122884834043481001804701104244437498643033299526596514205833809416599981935593365661227609361798242691202445143149659838346542799009833608763900041259578339092055192944086316884678587150440275082284487601402297539754294182497159373113977875190331929512819795344183265117517742590271940973193873214286865669810999023496387867860325905653284044290404420109908545378975829719678011154139541247013418836608098248241335256070939337946340561411914576343065594434354795836456597274875426454426691499261282913036370246072707570382316513428458346307885343389496561462910088055193422478476864193598778486238496638728345985877386064058827395722453807966601025150815523253137553776265590222503301550619874745066634992714780658518451870083434788530797472377808567468876659662314270175282569551623933337667525002387313074211413016811040558088887082112153363635502357749953074814377357201936377582381765568938049037304508231080745065597336072324280174588420257203863148846752062814391401665067361420151562975219064248660574091735244060865552232757673601276346726699566843502107728330266952010947894488922680611218778242314341403622153209259020572962268201546898612044251725963407533808853949615256211050537944593321538282777668717143677452090129530181288090127597778968930583297957789712621294904056879063919048110983945968626246855110029397343683940066909468708276413024433546249359351352887027922996046901371496808022303373164820761278297025566264026168089569023626077726616238431538073413174023464537719694380233963319368680077406901321750018395840297926141560854034979962788407754206374148628830556572093899324613277065166450350298850333353347995556913895801801087872811636884197145478553989923709365641864189247101002156962378039379877384615755952426185653585599143929681016543621365539503155737673207800939853798473753909757000747211242900397674868707799586129301109280968947548092222729563658504378327651964485290138903823914447633452551799479078175487863991837905965311699352098799636465966227374337022718312111801585386972129493800101259059873649170734803401694175224863504727256704970694459071071798848697867367597345152362334977605162884978178172172373845836119889052253104331772624514512836582223804121848501328668572964581035046375328187859476075643180845735968043659565646277920042177674057203430004745950684784111940498798963446046466845731077061534881908071987344875931141243950266750447356631865940453956456422072057762768285036263781080870097750702505904725715663744762975341013470914680129671853502941556935036578116011477490880872133125321152605464057573950824394385510959808602588565274658185982284362245410123274070599760883162725327141956979037223659353610064841247000267923783933993737854342494844162402121186838146094513598641760419205898483401303602725932307463005937683900505501943444691954154689415336731390947692167361688487855039259877509572963807576925821411755657758803509479938002580513405633153629384051057581044075609149141944491259255588468809817267689534308352201132827131034723087276591005833944602030115060306061354988972666640917967027772257112164787945625874060960981227358391562590781147496049342069083610931331897050057857583323068911052252138436903613297288864181527399185290800890759493270556789488032933067129308160672314427157673121947036972982605751122893942050973532391762484497942950952071858241377598210497181210831084898895468176375680757469159911334592808456654526727761219665510484309937245938136864795566634490870173972443779049230452789876273435014226930345735916772927012008268985226596808132067002941751662761709770976946043701076730056625683302837246111473723229226909612527783846778174201623967136693474254913316498734129052181611825877929764134914899042151355377657909851804484712528704688640242345217059027744220813481042159208498825176095786350997338391741841217690513978718265373252684612770406594456542728538871531412908011617559734575795561034937776796524264613803882521882236959945799187728913290634895757617460790922539865216937266214604597107069280009049252240841045241738846398479046214840805230563393229908548575055076846504444430855492978915815333441173619646706879140717301280582499908480265495920475901484660302630077068367406532034197269479356100011935288228159606201586713157791864896387028176861687700134052939753795601224692074113590483188013096806257305002256698793457756008107130241782357100239430405845885321286101090449795085957015117737674259325536859039057893857550095614858950598030797126224484438265820508270908186878243764769095913612064891375591914933588472080367547222123355418799788693184560630196206059759499425289037716416452906065030620341980671491393000653222459362291456102208935784940925420221293427971799319061717709255960402090494643135408417551007710854225347974369729916492447387916386057567728268359539351965300991848989316450966476526772590196951677864851299661563832910875601059305856571068046959139923561428782726058597599036179023372584115796868395315375622378692810834913235725323585267714305907456860484781680968648713865370444178055433130862642717893421394393570740152675028960281105322332036438576224024951581675043955790136681978113214847661952262619525179240777850118260967225694068212293216061757693274282698335077774496070681020799908431061289307340747767884633172361789483595498347130172838740103536258434167071726800247112285142449832702305208455462725520651981522832842108145234503046764427864004901655223395613381573025433760770978623546681818717818323848556100840805883503555170444142623750723792542689718748077601758248696729751217221052143190939084302648758910910071240357350531617730093070221733421829198863542050903767976723336987083839657730114981250244035184601822059407284665375337271491160847874035328765790627444708904665667429358326803987679853820652605396873190855568438204498190761231441332413234733703512552640458383510306554882861015582355415188390573797970626627391527413225909976802755501867267678667971448090042934049276917476200931927058713473449846922799090937025420670809720576994235373249990668994167018677681362705147475293348547549444095978944533756341521162456434628831241449368656758827994947558897553310829256433415524902738703168716795508194897892652178508444720883824631310951968188930986970909072723483487700875580551464236648029874354846117124629691675973734910155682687731085472795425151548959970845439266727847396356775394402895169232066774363228389851389057358190101824164043176597341770952357908375850460926961213516694177367534293928893900859974353395304574053303151398321878682534579720507707604405124774848373053038666212022872667323969376449523303822790924530405670627145740763497919545277484674261960151676499636089873522745157331030916178233795830862236535757571195465032663086144827631636618543089019069936488537673895252483320564139233126645016346937232295501829541106608038208507418341950441908800076444746670968373582798003652178324882568457179702222317430338881429791984603211848248366307219379727490908592038851641206932522796033981236297705248612574098141291513558598721922534060352871982345752171083661208925080112036798566096247690679987569595031848971712950972182640180864414298150801383129060001227125979194076481556291254233530151237328735045129508461894421057371385255345499391134338892230212715906837747238720981356613647837613703213842910284846380807218323382504990151868640330081181016652168398983455869709211782869350130012693073905831326339057423953436439224187815402838626715558025446882408282012997243936866223107628450020368716069095940005880810110434842065620098798138866061568686099009186702369768259254537439499823070443709283362059553044538269008899482675384785533112399940783029377161244604718522656939586520085749283185897022307951109290145482358281288477212134968038806437585645460351174605578087546671407053377553366660634518650690710824325215664313721160464704426606579763476843751067955886781928797390933818527004656498094692155045802495921566075729681928211857853463626872596305161093480112060135634818419004782451873321601935653043477873128091194792965087687311302976447826091881586642815509344645965646799834179041089955959581824453528110459627197065638192511265349791442699632975642531424322244769992164273795475261724250396610719035855542136770258774637833892355000223672177188981311440338294035423561683766607013946305081934220273949332665589157631288001757064914358361995735989065620842740962413575362089823469241943105819357289591763122490622940218232524928109895687277814729013116160277747818687829613216985396488300926949367807638861796273897274141524965276599462102942824037643739265488206765690990335865296575639713294485549456462385596126356641877565079491632104620143040085948229090643554817947035897852497226150210922731057529063330434082952743067174064569203719665244685390929856718396707893704872443053811545289292914473042924848846451156443922694685195940183874287502093065451468081839459248033393719221888793456629663859231022800698714550763150420082607307993258207010236296568180007364773914108822487127871935885777620111653302876748405381267932162701001868523194190168669164341225636744291217359571022319126165590342164076211811675646864125124395236760080150529403585312927205720086468415756973360427288520935679553157413730753542189855253275926439678264941737715807079145514117730553737735729865599559766630564075615297872934927551552261048062737088077558201042578202130383662971068542485059374255167799263553695127063659261349541845257437823131704438590726687846913444524549874070730900222052936921057223435068513944937207744887243839880328679578813517872258232408577489266987032477899089577129590915386550330912610107398379672936380311707127693650549758115935371550408318943530774187529450230144849924716137305735220448672946873658785390067203654985463674593090418236802617565338275087475299041751899539724589390772606860337961901152293808069424499167865519591839792012149154226568069666299368634634546652543616133179996037277335502862937146281063587054786454234388223920574517732345946341070657589702991553200797640883977499286327150415252129361657466347274513627023504194194596452507924512152318075071359397180551124913909313531338508055749854955503870320639658531898103149154941721516792786352022994095060031160951920308220233467413851013915209350288604410625835820264059277980864514262891151556612277981616084240340580294158469416736460754931849684085215760535048253307113230903895918572478400899198700451665706085609412420880973930818146647946633650587559194672602013128646982640547876075194180681608421478453094709604619015766143423284024227375255135399530885389695255018317785992325082196851588140309693260629996942207611395792757619606134369822373276017776835523281665113109493739688484394419795477796833520564891319651585204968757753352969152114049944697210791565529106103129244963864358903962826421141772752263121452244438482199834031151192153339828958509319419413736712605981999089278454588902996276866315728048302418226265022108740748207952883743863808066398404881168406871823746260076784852891602827242267041254258611496181853635004270515555631844829537750744956950251943886640503769579449361959816533855610647598590463122569906554549840535667219000610302915633686902617819784688301565679573958454886176696368759749305302374222023804325203010945203979741295311970971097804458031559844238414615688865266823781258571770065093241119735777161011554197960309554366518415887351916508586945307702825463812400867723225701105713539001661802783245198505842716332985538198299127791739322712810018656707437152109546206496058360579735208064527914457057067082137222327436877876394230346321811979755571507964932757682166522952878895543175583852740996888151782044385287184677736519088850988574485354867495666386902971300738205958682111208789969275577955831528650568961398123684473332144750210745839655954734690707427271621057091997399527221838074710777354839513299392762336559551660094027730518814117183437247113312317893321768613997007133978264168012120381184489251729710206768576153034250918740502180804238850711909947480238097773770838547212120191969334917021154990252346733947159888965952717561857531773470182454958806292664467321621147767315829571059191739302383149447829088592333680923137249386294967140883338016705347083087868048058299737543434812454048984617920405418386650144328601263357084356480339631640725684102431233854454108186439000296679136077843547823772020538257626890724270784633604308916589335372067716726355476177784607391269273912838167803375131414350939100163910480703716613574476899236149991814308147428424286395788113688920817314123738258873440723712816952638961765520493316264799059393088554893908958624498124628600079426927091836346078744033511028282308444350499157476337415055363218656079233207477390817237591261917426967022790274566292569693628175606475488808800285622984049691253583056028100271287914967926362625704622813695005212626784010773799749230854543617756056315247690020320805487145980700295082732252560685733021336416185190472707683222904603986921385948623491587898733304198815821706897504534584479397392090527928975716976065927378786940864385290092779913910776007140006028520865416887732833968577133380397308055350640750540707706987309542716084343447790132431122370382951857472022514346131350256753500035832206108348462293894882559441164113301267051681638355539618932500877077197945802365993490992714921428311102407590899518597733563735352483295055040384566454307947492095563003425073030186113837352473709311879750965676217385072596269975322990616760978779697772429413504141381472993618134285550075375003552113905024633609731060822774271087417924853677236220294152462163602985432588097488467784562354495779693695964194499616530625454200111370251633579652621780252492725307194236577846754995790077075944918478414995538451433778156535072510567818792173656558130222751225832590214409484180058756496107075681230551317554500150242130053703939459613752787810274204439022408559721835630622885616138868339730250470245888382317541754622230869958482597970004280712699277070677939280169407960186936012752835227913896221671119028385849834813217978721858759410867261006081311868836538409151351977628644368163699524155350460247903685445533883007372064302141286433800173649593622467786644507318010730682463127185616973826332757687644726627477902486874973897522861590017965417307656473530114386566325541816914021567462643478219764452076910721672592733196057505395162318809333864969267830639840138359141863722219797994203426585690488517957691114798324897511757466644822941905109464000429310551668268980868701253291342141940518752700406549708567170949187771439469437099764291068518172176942139357586818618901721713059135669214941282786222116971763040672147896731657175130404685721166795295221808692388504688756332661524624101450285359884317734737452760496904271331381530358863836926884503267624689885200748209563698348340583628486174708127187512917700965611020290718366841478005151096674153653111213049286082517159494311289972983877823736191441629780420325907130934136209880616434374822223395685000123438393872381746795145308061251710831197907122734672643277046021154931936598290950309622236547718546017099876153274591196851575054109726673408671024420822367846963197618640684751910531166335338468707500441800683328967888894808476771555678268401537574283732539584521300528837070999053871523865248164338494884515073594883255075005135403107891601838251894357688278440364487025647505795668583474762970285962289583566616464106304151823438184338594345121592088148171900752475973203308053881704873575437803620029378190948514519970554946321108268934403059172689823981400787800438431727073110937252627724603710250307763179669053627035952133588375089648424549852410644382805144217724667751274830541967186183984404347023762503923638973338588636838915263664320347965707362589258792044031248666368305521186737280223183557060197628742457993513803204267884765262588306182609185021185426153314093302907665309863860080258473813218850845958288265996390160401490679682576956894591687414559591051922195822708546900306738987421616594987067332774853486324018097108875724122739533093998151436740750010945678972006372520437064217119807767261444557284593942245814257891742569991886164371411414201725407554360121867697872495049042572093541592520809031506756349009388882094207162646886481656151868994054725996405949723978087242704922775301455762265845809757298682297704417306976993401877611516251073481721486001282797024966984991774095284737407860837683541037188580438813258842923729916460407840326438596204750110637191204336377985391334996704937216792983575748689199847679434998257225748263592996715953318573749848177181757835626487361187113817892036393750239949328944300883480969476876393998483417526025112140573282438973446362754315600364726199769676836996350562316867087710346760042577543977565033581407662943171515187688113893610057360678646036725670470252019438470939591646628237663861598995387017769329106988521714933185409369200351532631673167272311997332174744166373102511437005902165914402420464258564297746823933615594410179728799105433482222491264213906519082414680323636733074752931982998711049767548586306543742936365174190577045206437669809821592515352144872526937283046573439841117775351374347713017059209630377383779277396668855379417471187420354896974756276015812124164295424836590514382708132261516887673712514822816266978346941258054215059170671710592272287869811349066809997423525120674158053652645883365980669750767618617472740545368196935613870120959066655845330149358638698665337918883695051528604360189576356125059548726512557875782919889970318311459156505891395875243612020147828719428329318513361735838690691267114074932717620615217895403328984963934973790182753833053001171765682927155793049671491620053667266803740087494872947300409539741874720223057439271358839708573885453374998978979405678824721823126530590790049242899607626436313337943758311015369172906707090186242980973286158819151270190043770496513432447115788890976508142523032740039104205294175142492368045311543730976561879157293044541388278642269881258561307312800335821052938901200945934604403197916773639652235221397261426943526783163577246817280996719849744315025027016710830202592266793865011616697387041116668711457311508694754988467397094647321729641711547092836409023254557369888395840499504069423508295494956711335012393852829534423767677295394272289408858882802960341524670842598721442059493021136200135324126204297328018242001586909677432911963533322268066598458822859387184838217647953730527740818184557010274709073608094891202390860985516101965267940573667817663067292795994830233552951968880139540794693690699193400440628708421902434554325699099922784040254203116074916227460389972679431257110769185490232846355991879747879270759733133790976242062831643359951897459275465016276198031188568057027674084169748185677877206511543294575116621355850399607007426559716157069474910556289844178783068524644652469375304952300841457851612802314454871362181438744192778951315297974192996214694443002757758935108793062521876348736740649846449602930602926027984422444083137305026568881465522331993025854786919899535905022333410130638376254116528458102516169400658113959219502471421530429041883145458359418999977572103299468364116575871250856180239293218527557364248035383220826840582316817902971365384494022248939876070351841194436360963700247082531365554603355500323285061140250153620930641660657291589661934293788181243514504373103784052105118560962451494436427741648454711896249315054647892951225625816704100744537672643064533746453306482337405856552909418399845810088565017676056049941175570915447604471506884061464802988669529166883883278764856769404682202052783561878381483960984904396786241191724440825423887285701582209641025583260963674649110398007719486663504236939908359189653288061285046032019367944004954740501519108299413893922466644459231989288003853645932552346729998058563107537011219594491910818563322779878211943743813040069975122673000860765250804845513881219927493910696661277446800411919095581049970021244405069384685083707392573049221907791656566265479772855237667586093206998019547588635269832902532829642542982551494694380820866662013319519052124542914522639891704274126242318343537164641090098572668858075999666105521027279642914238966771067261745248839165195863802098927925698514401669754842597763832505014010902345935164118553561910438240571935431285739497764185948898887761740277096275792585372225501276803146827979376056083598070553785505805989170907724416737381401876515638656567075250576301119060011270568733204089762411420025489997096931051183341321729222256705958485361453821293169171984089216491489675688835063406337444172433277547439925784086998753618005207803933356358368242950400029754306233142314625594596212776915617511803700653833453556120095341445647108149160774325743123078732484882515861850754419228041358639837007847980376100905382612134554015256473817018836570234039026174769827979480518800876360183410987364828495980875818999765793033496150200796453895353558379255546937629019281177465465266883883808787917355023008126419585233605989076017627917926147445028829943694591936016719868075793579394488692600265922435641847730119842655876481992489524632071142769297103513601734413015313809454278268736252546633442220638061287607597042107407414463526713057082442812100256047557058380462386556105481466758864908176118670795512892470971614334332017653141794416982430369519312454918143728362305604231071154159832036947048291022609176374534528838179036303705240334436615492796532188200840602243582404844856234309261792948216489992965103894621397516856777064486970613713435878430651811186036710077498385412432295522707606884799382659742204680186783329334526255637357557951050936374359202854323952648556840887587904141347546365034977577399960780853669588643743639371162760298694203216937059873290323547694141758502765391146458608722786907409199215670375765364976640667769025716027812703690409499157734849330220538992983756004589406022686592211374798523241702388908199727836809133111180973400438059297810464199560224908758485932095036980056117543519118635900475632606252827188416520569609530814108229843968704469810281463251437463653871278777983614553363164115046130558583360598010824048148520715620321345723413303397377609278908136443342877187493684931462640081904881788491323733392567872630252929399033514520580166552516500560615180288432375618512445223454908455915158565633164585456311494200342334234457139464912063142152487286356608138433800039289772656512952122888681117882697518705764789158976368930161033976892026882116857229353023519492008063582772879378811162102909422566495399732110021890392229562539723760823118435908798162207393323510403167796791191625548483908670209693004656426101366720693354968237050886225856744061988059555340516085757308719120962135754883189201563917329705379209777896997080952791486577965967162606389217195599800771991696280413775702008352493591465089639546088054408647641142855746432891968362001211912201447940217465575175710329789083211113101547628316954503398330019796105181316988811239121647060285307725372650549398910392076248099102706016179297633240055407443501691410395296700128120748785357173574253026721557425582705891940049590132294905872877750349621078925234030894311868334798636307655745352078724592942504655019792565993739677277407395276301457904176037039054566142094534399387680958487529877721336631791438540329345392718825942040967255520580435560188223866162029580949375827443246496108377143002316495551659340088234353181888488616997261023140695282820461826647504129002173333621828343927993206236973560520632767579952343250140293633546866162381457056925897704502846411491584596532496968085462711611478916571944497757443876765998783431381181476842617688670150626581621932807672579920013077636526435888081620692497208830830107551147795232551628039204201166749289585686499273057345558578635921661067878409329965459669739132616599697079624991771589695712093037573142585971519073500996110486134994912736460633136938006304613356561289779291773549168843417619168923729012337684222594280343735465409466698002371247906309726441700809639229631238363644008944808725503794565970406520533489729364697861287293688676960694487386524616377714567722917647375015495555585014018601663791360103110113569741770686154007824855182604854962840292158784071397750211243250938407526878887330656862841319429249809807250008497596262039619486826254776281108161911456701065961447427820747705968916383364066464998418224663943823438832693503973583703125841360425011155875947042049430880516423993141578757894854948791396875674918673823518800618262460356761577566467900467225844645687699580154316724152891077318819092224542184182230937799701162219236976364746073513985079955395972010542783399810831928855623122817553676311086540569433185991173306205367001827677724688755406944256122813312380133867584631271213621236973151276929340569960602796859625981532461971612806059490609309591210827487090657528903943891873767999490035427285669517398966870709167183439449785291784554201054265387059113347117343203026537294515320781168186371273624052455097857326670609108723970114385002352396077872202055139833519087148075913534677563460793640812930895082786714696975423700361059046896429001688434977074153913925198982438712487799260764617891514691848990107037704962299583698466510237824748728956108351738912824562545456926538287932135478510006315809465575416815354656813480902378310863862962476118570041251627553419160658962202217735526473430575168108319133448498327729218542029357680209498576634025541735315901774090575596526407091045622782713174612693698831876080096056027919450593337038060476000692771928345604586379951452570076109648246389110800671482062064395483813843906593916004294692175992232023168028756553703364633903214392555878319506599735603577747020470763352781717048774727134450891000081080689248641234589738715889392875823890610910386651520755799792020235647195230897528099985798244516361601955181243422299886329070518023970535652694213436212573649234203080877850265075838911769615961401596232535311734614165099398640059109281245223223573361509582716771288741470144358518987538775913993117386084986900286489529600144544485669887110733482035197145187034552075083553046159297380685202541224074697181222997874743196375692276303213584146270850496554066576046269966963475828527127926884112157343732751611048018214345316917574807257530956483581009812917958347516026987780431017240954746803596017822189252724236231196633608210458855208430996572517081883385261956963894100250139931120966870048860248326807315506733127198697505571714850463710825578429789911157372172869629088214793824801452021847163194378930852141738273686088180776853131448405708940776915932672118789468047728399826669575264672406011622610341792430010735389323624956539644154145970014789659234144237806582447533638888683257856669208830283491153476101544639861061759227166560371577392638449916799053901352179891027189845835583429632074868373034702318119965684901111738278358030854153560902717036395482297117887713774022364364541909154372616716660649970504222286189098740172092934782901827900746642506180798725898939820948867674656943416531540553922301365163454308995691206379689879805695086298461772973479059260849335837722208867571759358149139868334504348921618306797229089334709089773777609910973219410119949087458530980647111326635504254777468248302637479155083726508026949512241574178646482993146516032004467957006688703765035050397300744224860627607019195444340862274231098053147661207885305243143646502448509236276522637786600400780218226437904719035336632038253220100774233752199167613048339240941093959669389213986632853202630441809007359141750173542598548065126123475005054639800709382564962418261808750854663383096993337282021242188986971788462874484865279410547115802937340068947582996294146135253974504700648659069185500040764087168258966156656172137956094912475837126103582779164820213057606686064211329418165517657767593299928103757219588946858226318022181673477805001903358985976763294207588309364350896809217858060131246022971413783858228334638937379363630212385534667469898751892170441686920460907712635228997209238620316706507032956028745951577512044199438331790837608580530196086713890917316556400075054752076009012497656487666223516556235671666233725634644259848450844329764529192576924919728677696913012628804032802025009530259611031083893282127974989292522407648938353096172456394061693638598233202571359669767472345550557174846566374343839030312761646112074716279799216490175058029473860267488864910957114512128994707965622324862596586270197818491737304737936715283570975480139875885810537595500721336622001791182764072122743127308357035230974865402161587997210665551278419813424547606265332082940483702724101603575721971818406828471274785065931579557645206359358265434486660263417756316207046242079407909932543511549086908195281576817225310442156065578768910564564988394857013149883403802767402180898823571227422784361499202051137664007382180587452033337590456112670630887142284432845363068044282805069368639936879204928504947709537101576630028266694296967836745388127554153487388326217149337972991058826020283506695490880204665071077904387057951747314056441911280292922303874188956314805459307844637239070405589951178725806372461689026801888344799594339622033544317365746537344702243191259597920908397729860523758891582673158090321395085306030167788802994418407658499599513438641775603977604600708566179166042760344996633182863432112565511629684763243171989670421217668455063325654908493309733813733276594875344395361068151270366089801742013227645458888193652611032093004136824004613135077232641238879937454107748355998185753715202014498013205420314135184792772474906849629531971254065097814045719097662403075937358177717295583843344637347677574462867301806336292085619486640868966344194546540414475069626847449079661931999771447695594968861668700751295393576507602732845055303331499824620672978660098633356966738571128463148255349491225629449756719661708680410996681075858804240657917980397254773434543754142358699525913875718005254469406571255967021754601628760541335362219258848026673381147438483297648399776897200174662696432993732941703420072513869333448123094363609041510862979454039026648694095530119478709693874371642472725373118762527690440758398421685540560545227105415841845115215738151439171265010268638910600111050074453248799163217693424527160795220236530592309092280952193428624221927845660058568765480923054433483535325670366968320212093968388291577580722107980527714438397463753533254306085455216794710411484120551995462687826256829385427572123375815652849158710297704532455860118044945631065111402143255504160738195623898226762040217663593356093093734284369039521677852707044917940776767102608475178668859930608834317485969917027471118320604196938455388461580845963809274789433500382717742901174334255470317015488298337417256106895880794283285029573827835674342028398373334937706899942006852492692733878815897029488681831846870843436460378300796348225314108400081512635874027398807552024366905811079161370687606443367946901218663547147830423068515182341512826562656186384022892219961105318978273994182328240802867878786161342948429020697414783847723886007250666966408788527795789453814202873644046593126899190801736648905840507340035555196712150994572642123466866229622774253206676346057028032837138136709217976900954827262291348727664303530653069526766368048012859850016827869828279365499178156354264525628082405810255992849512472262199072006701825342780134911509304914988540874114142871569266715961723870321432945845302027297519954821201876893018794822625363878087668524896420719474663910390483679604478386232955081265418724188563957365449900260534827204058935250219267017797640954078894559198449644545307027619288015718973042900161597658414433943807119019342372505845576295254312906775120054956247539561260870016799052487248456547401558163259995213168898381002987594948454778743390474460868513868609389199687327904979147189474167546975724201812710368220318345034915420227122974056832336585208218837954519252931505190100191302090526651615148593886785004138408226901619396623321865311996260945195552217979200271543590232306186022038189612608024047045839988923236655919754049231245618532435378499147431556223798162174966345104208257773541888748503986914196867163283724288369554154369173897670952365701243817269094331876928271778597801941176821710854980032550645580188761479573100338478501528579601776733495656342126161651051122517070044232802330150759199636783615752544449446034124056170354360435643511842608978666347993317820250887270389046147299298613481722719660359219100129137039590137476006925838079065776050617318243473878154153985350463645935869801621868909531513482751661672840389480334403382025970487819579988430636277645990853110798120287643587844420347303633447170683452148085246368377631355341508704075122801216050695172071561099787329199307857706864858892974444621344156935179552087221150190190232722439242006992120233157846556945568949384376251195237437679151306037838210676375844538690057987561613242742476953610596900731951357527423628796410164979835157070293505030854685731245668404338176966660797601928059217434175170601951073126122165611341520386519545214591033685417390846588862896700059618510840985638949080358486087189750558314230767598214730036698504722992263028318731641346925898777961709097400577846920244806269529127388902479338067379680841433410541308520504206746647532562633320162356181629423824795521952608723738659390611441863730064592393645448883314251940883216344690339993490800480501810056718762596768576995561523998102232067084871448175328945944229554927169994481424746317162505267516000619644538170454452598128597699834219877939691472460310879279975615374172078209931687932001049407939816419114676695528285223013477646284097358952354139110890504083377627565913688338200157669967612527990577777015354842584724805994414070491860037119378015612971649561890474033712487580477548251192307986476070098552416880350529813107393895843730716015166109225924231146627654007378092258826133196834714813547234300983930223867330331259756440821070798375168644679691724297188826425299017604189043313857072044708755235304254464779673441945860057936626118682996496885048577976511853618444141748281661189842217664311537777561596847862281641446880810464967195847039602408985921890072806235112149460948558218006961823539756167090846956132937874952729977679941182272689082581866657860861162375619563223530213472456645662163441544372157988076940571974440819584051304438265842654690826222930832633430846662242417883920858170690640903903337344189148504232767791092154639736739359209494716676757298814244526045121635926104520639526251504395751161714895644500116984771510284402798783721703462473469991879636968608005318312888932522638332669591670942655683014343312763236623807099539756031424483018483279593598400101570808564743003444553855355708245947763208175820894905586452978028981801331997724853518049367654606015033862463338294026933153309195878778873181194319832383883043193152293951672899335746668651925855084301046762519193945160243649001926118715965997641784062742047107919913090498724725690395616784434382226459543994446416002041800988192264111928460299021283685827885226044757796431227603131350862235961900074037939513902021418604674168744113443735754561236540086860147531555667164357384893845442088160241560903367709466800197482048089611813796339302726909907484617493950497782668606997100821352915451433192768577744050467586798165620427033780366449039878291058564772169530549736213320254557091819555011339415535355415428384813930435089170154962520724041896682327998028194897594142786801741123393439329165995718133006032968227555464035355467325063676619485016017944735731964842147891824732654761750838367152668384591593152796291671666573641481858285379994141170077436564085424425311921397630665822543685687366029047827575306090021027917351337118919659581291185424159676474038867493895222759983549330285720132430225011683622542651458005560344580500375755747032761209705878365185803445079638505083181311725649481892964573628635167184101655540625449021095533253251035240734065557617930623291478224895568579157337838176247229377633722077552455547267947567683393782760916449524311675664615102100013630979591857828280348228606296441861365117587899117758261398972854033105008143538400010680085976898731916749431132637592495264772246308204848234592321344194128737647211000304960384266716337081005972116675797211485382673387269094297621589894155178757835230543138180522978536442248328300295217029814457750724240576511515066833146611347141491172463497299980467926773528232004799174599048191240498764561308106018521296009248779844618391367012862183722043646438229596103959523680416561399234431688689227130289535840432887395519487936114138561710635249270074913525301810433780587234334455189655609906408528599765170153910032540307045589615968519511375230855825681740652809058512056916713394124844756619941490477132434361738398124857152089695273464970525731765171652198466143891830573209304116767004639519956097579873701169874093538472076742091051072538435427312871382027944347728867157425908473964749004923088194234417713916952547338962375190251182261078057949102405197023323323137886358081297487148884374685618441434358490423465984343560663163642268533564225039457844565904170192745586257684191157154461841123493425233278798169422633835936672502708441136938458780527009367556042801655304100484544031620982341398464019945421198673179957335707981174623170405514880083780061024082712400226008918746431934226614438854377518004557861201774125663578525313115622646645670464849565136098171181439173814266776815893006549471140250096642162787771360495174024064001493857950483135471464732041694100849386925044550851487605981604993874673032537618705831844650424437733769189099884295259260507634513572978221311572838611236585987114871603179917282577899648836074879164665587193691529476152697987929381346338796362314394541749481223687807451663273696283610311024576045185296654286788679169360504976629188224074970775792123757211432862586196366831886808346106269245243834041579060289189695292414227678524814575036727134594233711164727378675031327580779290696460823431735825902551200855591378893899498734232667820882631459363369128124601809842159815554270335947697647247477930260025345636250065710451559287644124910220505938127009928371450234676770320397902322409386153001266164129202875594643908880965402680721291659579531617850698327793604943787536630267808513349850124143399423589826550349299637793829656510816302467347038179869823458801425887702163277213457796897663150202558295750159210672276326956054796723885575521892907279919431458802226543449230748275279855683701331942618887135935280973286096200008442678289750090706897502036593044336509454873509736850868981360127924623418310041519127144614555202597877821191021962105937695361119809470133660725190078285494845600290224061561443016944233595637464178647907765389367378145470915105469426653135625905608922902750336044743986125940390941527185438764511019331825970525193753508200276835282936778284901978905663378901022566338113952912181912251889431680965144859374301702757347641005837963802802042124178080225972887400886136692663621519992189778778999325581477903487340622714966766558908172034651495743875599020325668373839944918782366349126455524233982250733036448943594688451058125375830485981943439690851215153463959516915672702537865000759593748683157040874922886586366993817933024042220151038590604258028428534971896995243389410472125967828907920253606421101818147151318599600500485452674321891906189605817797754920262911810159153398714982489231067916541088981040342844433953236461657024003398582437190165924089689057879144343732716121372790143307645039789396002718103492390732432660075878796657652040366135649889593548277263319487061632939042805544674015175921034381205298232719966671215016112450540118341536418953719358736081567151887721167745927967740420942396356954083066428940189523039378371620616102075036078359829782287224218642294624426424974244563371244364870322523419648694195512986404716804044769697681107714459096951905914260261852869660322572865850572899806204791874635074532813436207501663283366713047750917099838828693448056106281480739863388707540974552362585956458160942791576154972458135459304829103218200105995486300163967507496691251329041154872962477272885012775972245366991018835616322567557019290932931955100234669036958698597296654971446659595328916996717364358100178270148819309206944456150650140689299805300548724638059162659871288165158391414884278741446601803027593892306484110406414384334847861227630393238370455883275949985706512423496932019247404451157915268692092917726046634411026852825975237218453345568272894907724175270440298409713540936367189081771152255148019921908574694368281657421297141894074134559105956549719821493154441286282712125968602169437634519849500725299230656444954343214052011720396087232790158678879964240544433972913044794731325618680012505018533346484161556937323371194925719404413930006919037496349703364122318270119810790348234144971846710235955500571306615584195206725042886981740182126422063304487493552635477276298514278002703435116737141329644887730675740150013096312414477177153849274170354715284878500131389657614225322512731987455326506171638389644299567381298455672669914765641765485323228070935427223500797833523663933347822213819587272392342712068619803579594702195208051652669267155298643129785462980124808508286603807034311098250641501936593175226749457011957547823935723157205224157935239161862608550914624928111818184314426407583548664419039110537216975721130232534784772505055776393056405331054767149663029083592994382385193243895068289044013856796734271117752838891630551247606988154324575890181690671381436831603098572970019739209171366392359277393202867177175049968756398059755745468127917317153444585106778925698428752942784771140097338205494826674966054572128768023548112285285609251909219962717322467221585582918271615869379108838586811486172664143935336472497960993193925320322128924460722638807076216694354958242699686386148086297888882145319611716615698447216231001455290237835151703174624224522632414403740868538137234982889428173609522859647296294365251456558653892250658859012764813098151540618941794755085582588631597810553713691013247382031770384365322327586137927106796385392769357642484585769500126951199175261663022106817524799767773884465435496416827015380814137214126417765706266443188672121695792572029817261950459897171712671042903982127641832756525129841272637826118840643166777927613276673121795242719011146352475278135709004721903264584319740149675822705795433071416222639079973027915762082474440506819872188256594204531146924651291093554951089064401221773263626527073919721264606038261469170882003221758326845547258790640579982099462017509207106261687782097782410260119225145744190666840406272068496633886952500561466669394741810796009914092188820260830713824129992739189336063120508925558601794012574749438679851299582002800701154474266742630088992385571187045890304462317174422280042345597891217497349831012150496571249480410724539842693448570171470503551295597601363544909125395491971311337649290142255517867417232293461491608811414938843421693914694672032736759162374790325814008516401849967995323780010283647064135379793371964480916198270605986011488844002632960771696534479454993900412140078248075898801074550657331093783592010626303584561923518265503361890758623062174453087537172818025639292023858906564318214835202465254652271433391369727988227239111353878662380640308675338950280076089710874513048987892296623835346599390383376641968908393503838018660727936052546203093490551088472942146599357696160858456189511319630622157090451595248322358043905081255761767534067580980604700749372254321330437499831618209376832688602131560293454930324829434749944900981468660153016315070698555980397144523145576623463543489243593758232760142914422627891049089830790395882735732547451187325878074651126042694288862565224340308001927982974684914795637759003420062985618242640778289192013288064821896323999097885913595457326744747020692886304305353958611537117416857498878624859437836090852754099140067366609268808702022392217589506045240724603577065430421941110424969192503686539920824196987557467923570405795326658112799063595135353022160152519080345650993082936026945420686615805969744223718387300016913651869858086915599521752040273538154783528942263940705918104795321366921571580592688461900018312770878771250645131267759815865909215846073016816724831096967513816419157780115861978395345381495884266547233546856200118169517412832640278477928521231471973243994555543390358504241847739075496632112090858581419954254280740369438160713344720146449442562941438669665990397507461205518053487119978596287807602596633376609281057257208494862813248660131944894967179398638841014117678389328118282305816811990470537944235331016541993649834486528741600793790738355849501444697271748592418370033304229920445950755717391319940790550697414585332527640208532823869749491077917066855418685578027770765645326596603819828659001590786006696449872369654354343268462801183993672656797917115419014154449745176736813851960788095316027544712542321147739661459670953173518412084612045433678195795615168636977270775646957095174909175384497741721297399990888597578261304268460750475003350341204676011112523374321311199008620051439591599672971919647657515103640813891837683088567577456354076570611407446013956973413358185287685431362351082165934511941418117080539866833423967253281421069212230169026213820736569171267870751626123540253243182624872414094009666849241233783312328579578419234147911487257506892762897019036832292347630095938042363109733815140099299585409193632544620248186247339058311349797620352452709702617471590617449257640435579810219436012098409178583137470635176381995103486988986684159005494589316183702792612329763417287931629079029340169801314266827469400365918089113809235714497657441194580033385715604376476259110397174234004980978202603028210678985725596712891887472680776711015260710063866437581626838351084919243540461026470134805902455023142767094212973574611182788313749775891174702002595627423446805104002817652547847262044394356004827914157607250303972210728145028812025541181226879606459242378096603060024879138395120533697858966007454611905691885720533008597261658440027598370708921152455287189571474974443263628211686756875621070799028146077413210985514976345206648181431099303637457466879707084692852738414130606043883208436842693466691205482550199461156149662617933489927897241291598343349019078926850165852649180109062924094913627224740752520390005233744148932696166045651068875682136999463999371907308193550105123943110561170444883800473917669450662972388570068456123351947409280863322594191958983217567015114824937967159077979077920136366368631151759581521808570715341858757195777913502212975441464560233513066824551671739750915450289876106276903065786563977265613920562155990126568656812210732767818139437722659536372408856887195176028624999106948414827447407154536252864836707736630218870219002672462403293752554278250137415952405082178153033569682559375703873963028130522299634958896936481121184624749376494501563886640720962618132518547464855541714578684843671214688885293461674247838288176595945956183248111660207949115360237302393699734975526509599788744967362582738416522130753004876422316820969737925101098748680070062369710388164731364943466759203108163792604667793014687841816951470252061858778765418810680624467603465650369727105909026369758783012435875584304228209734324456199458146960573674500966056820134697628945807449311531823948775789819165020779825318819313349201521547174512660662251651739326545953418665744728391234907505307293406208623422070850974489535151223308406810569150219927000189259486786429794647579119699667161616118305913968558847715660188531952633092508892306659828643545107332213129303658241674410851703735190403784605986415400766648905575907776296641890439935373165455714092435234647635021486402949979032332025852155376570948216892924008125872254729139288338915217234251802665444934936896570851821366036639294063724774472367486945324945664165135915446208313459887331180113395297775668447405930963987856952151184937774342255498810857307268507310648291694704426126056751417140657696959857419748770786570338913654451892784420440204068154847943559668287016547255524286362774672457197388777781186987943709958389805081160166879184923453435338563171940785483163719752960240478873920821861932762658136187519523863406433615764656681100956316441138956790847876954625267469181206360856713255669703899340423830628848037585173996588820691910402579316296879299304873824293752133268048794952830562578236101364356467200890441109013243645849725744632528377796610086762487175005667905946220122901063142504087679247596581377724252036809608563916508457820935860675122308356406236470353248644732462529412712668441027333714405010934421041940998441089338827914597495858205852331524861211076161063194241495652872241604097440636182723051634705606656373609700468676002686556641458973413381977454359048890229097379680748543949701657298388786603747019275052366385391214704718361829540920123084772676476883024982016548749113824375974118577297927582977094134726300526258444732695821313288111542117093829637811499898718459999892697269493131656144456621914074800492049505199847361541172341026557389550277138522417130527251694290747346003569665637191816820608132141444799290715611670780128528295634318224281421914713164469755584184619679018551720522279453706600467425952965016905518232059275216908388251573031172394924878192888874560437439627247932857222278480118771460420090734809697555797770405359901204490436526722604459485867947482990092740437896715614971631135667270050771445387446338210589076554825272113156763510831929051806058554586580020396024244977787064422059577857364524194755342219312087004778147647002341179479887511048667287302348013044571106087148575258371870241297325478650961042623068620537357551516369760061783406063299685713988376665011573902959347002018471986182112672327388641176741397119803824917675518512044929778040399247057144638195594905725037282158320292315211454366875147605563964975298433708858802954793867989783848643729387107433219829573784291079815204421658522735358196970401999476745991942723758424920200244106865488826777853485100223241847629312585681048682693427332852649583221629161994164976790290491780062196609608107153977756741383645243437884233576939778660853181471416750874791582518160034036958833643051053889864794515035466824972409211376433045410502575781801192713132057647419474510039595658952901455063446714280044192129741860318251025977056704838572119225904939894936052018590586924942025799226001801342265928321409315749541069351778702900091764690315194006297067821857726606206216975978657229881374631279719083858725188318554735931573271811778946753437027631815275476644176797956502850490389738658426910100148245176015895055228895541046538829287514010450987665588507423496046749387960264999259413393608201180587229578290427580580099897616254861990398088107864198872641546319181294761561253258443659277895850024063582222317576737488068812788181854111208437219182138104952970518731549641950794678924625834361390303019412885587490102477352589979419644604351600299554735811450352060771840852601256298275145549469481310920439104574883830487672821887250142013762133439682512532198819098257804447640038246712230329705880664452783427686129352990644634983769130277631293726404861722869557415576989679262217453294228079798384942263789583319457810338766182357034023170883239955282405200912708923181506839884229315288000080424755861537688388295862268796744196553206328615526023822903899601660482431480791215732762114300917031659754426802373369954014245391758934560512428812063282173842832790551523684892626523132859870275287205662142220120658207558283451705405477141128989040198803171495697059913858886123831386864639820486916438761636248316959148951109556371006799025262789706240185598867857575492935269260553184670035345768466080116775917416610253258964958095478625208524838098944080120785620380952665361183902958708720658268030259925100056795012903115701826400944395295290507570214623476542531341126332609091553418685874011007298484534604291260152791874485337778742083166627757081430126178376122149246946658495249923668333645058183737848766469846240894013520400643444507970359263804900196833533282589546292630656690046035632892887559499644703535540372092851777975509099101903241451797418260223599659112573915515347944862865089375798434102656855010408187021981654133126735654083546720647738974330495690412009249772898817760185890796690470396147344494555168233861022930103998187836018317107108175213975771295774445323801542650508703013415911581085345892507380613950328896376232988455663734669651420628081074196677610640572574680606426846043993342008482066179178308090718528733756356485942460389463663838868929109759242659971204439428700267122044650685379435917350655563018165019801000985099808435135360543903146345394433491789246868867107288230038691686891835516908724802761573224819686678323284065520982730882065867405357697946796932166206661796109842730998344462985051764369806004186141480615282605602616115654790916995162439486759941586283096571829802604018255477978777222798829355298677474396120009431936271478284855118904119937090352073748895419982568575215904791923262619558647883263644230404220588814782179358437281503973263776266885811887012774490686798097238801485427566013333947905961373190994260864395465053424701340305948312036623644154405075008232333356006894863291523639625620813784428683678209303951072944705058024072679846043240913429856470404181935562943351922600319640264203384352779791979091894454203174303358587707109570681576867301543952178819869879015924346572297255734202489471452219698789184048756665586511249920927898781983484524800376014214293615084885539051561096531228270448022819333903374055955635557039017011488468175223387299151958958528923812365932103923492738742451128584046235488445871773222071013567785669600879196393706474471587179393121240259537779569268932706763700179790240732413659383074508223302688815226009807918832386734333247275394727092247103493394977000440143302186973492094178233092494982963841815521305434350297293976732393461098959509067622475502549634658102494366139479324472863493075698598849099116042313950599078471076712355535238667097718205951567024969150209959919781231617466199713443393834893076161609351227379387977524265318647036067582581184859745628878755156254710644149674114551917449928004270129385068552391032149032574403764916586990461129992059256089483126613057623185970929723873186886287704089783165019541757750106781179180112674981637876798340506581498760902349275370226894587227879492614925376782727565776426096319788683379769481229635802372518002663281351966180789397129144751598465188115003736564244419344191509519986989546152688136780939333567548649718975773303419312176599805446838710485736217986777646688411110383401732185382046705630776136379589247213736565422982018238055159863139237148871266499816797354776362199211821946889595047701875913879915889198356925391619654294683981804372960828491541768958352517775900899632979674493366522696402869779807676427698764171541048360767968362250763976425978310684583774130237222755178112798373181418084733141046838096945618203500157549289794185936546019192545160123357911129493701301324962714584591212663409515917132895167279883854976360079001168488344497141269829841059211604371724130559954748350779819419814582173132548158440144648368824065760648426580841869690568591651203426615116013883183607094574751693601221969204105047715718226733891449757875163151866553974544165854415312389805253624602575778549099855706903981669297129454490023133644957803026248276459067797411276570513121982027347247581847655009931367830696660713903243474140037103258016657940168776117255226009657360804423989746830211569539710300043954451465771183016327928205746324868811790482462252632868219166245349147540691818575117182296806799701450447707707581401432220806139504452014582530246623888206993948742479502253414543291412750349509677194492278396223561979174089360592048875796780132092910372727842973800177773074495983690543453125473914431811856412513661223896819104767811434765503074692519647845009912220284848043363242064733598321594754888263319159307697013963361709432609928783126177775511500798070393406069376307222659307420221346104474740474086413617525442577695166583380941364872325748878524923086130373427055652721331246743333327372122131447287769839601679563633943386661948427391206417274208506001956625456778449062158611326142769855931973600328621752030607745809765272317957313852849651845217616847606770358798514559604358740428340448978883159805063123482010712506153342624357080077794217920420695028789800295665975117431253616151040077001212175385327904589485120608291799111050563586781954249256563345974705826345942309524322110464809183244908592649102372746103257567167966092262704625881035108939469804782097680627295563596910207060108899989855821945932166681170611365902262216699545446312945344404915047612633189669396644940996769924269886848681564526493884438395434871570559003455110379490908422641538869323720241840291374424406311511781904381016469904091168397009890709946645355950329950151658042141838430853277630259855732509100445640251645708311233272932497531208764272400287781740693484172768271527935114130219590205384992398873786057479068118374969576811341755533352796047461066295305459737254670208391595593726096273487543553013220216151993862070372164684997224497964137753170899113070530246129223238284359192224843271899414100475657640571734095392493939802710496877315670053738273710308198207554903527675419507719818055810934868194612289229889476947224173013379410591306196546322066898478615404341190871352849851771265425413156339559832851790875559452854333205509575268850127985812853641905020771143702792172711285673261789459268928311195074677562119388034784937592883277701465822545632274959871209589687553144779043494523159213831313678468622393374393360518913563550447677744891961473830431261131455195899049056631714977729070746697041594201872075508592522886497975866190173954597909423293276728064204781411593965326862368931806459462182204336670308827131099555452376170278302752904361011189325058853677083017694207969083709506878380927403964456420708604052409451812862698406457222398597674292921878365931386868600112175105414881377135257378731195461377080261868277554184562930610356900292215194422639198661941539018839090261034515598192098179843647635044491042075825319617627160862594013017793915655010949261414680599123522299735626004462578304823532100426584388936866761138624185607425072474796015510674283071286704504204491034860833064297070019635413105177484841656292091771165126379390118278916510296990615276808441742050561811235673848684941420253986146133112561694125568097251358716285908859191138901010572756158359066109407574945444941838279423820105418597178792965709346982401661215553783619586767892816335814514188977582888388178140314114955831082562197413439418132582300440142117155801777144807487676065635959749838913462337161443874853660130351104978563826019630326831328028072491788804480050354120228597550316536786993574448543207697720166352743377243792433033666433275822872253588526841155186458512633136261503812378890790231511419152934655078886041891302178077413698624312942824813889881374913269913530591632334961773275753256107135052016890093550215178967616236372100166592657168027166302648644364047038312258631566495233013854850791648282375722496829349158426172223615761972776601455077629343599401473160713178712541589035667322334027860374305135574084027493480373566742196805312950009854270766819362282974771490643476326083093769092444871426641802318002070689052449993823481884695087784747943990819314191241488898830396375831446555193948996134609682816953764661917824810202278970309233063727809642601126388081702631400846064229137616015596426220409696049509173972005238525793227626335247191788746476393784522795886125285760833490612483567177137248941922407663185208230811641581130431714814466915347023661437650095621223027987456103777039034493507886108543612709501890302169223085169467305566693750843514612934081640159958791987258553614281920745473072705331208746888155263909737525069671102563292606024581090951376615944983776189968190078325086689670763885654222954806953293765267785195886049504494011540885189980348621447229834201502500591827238378125622491452192711205329847794985429402517695453804401040403815085730846519267648235566693750777009965205201881847311248564663646486046674497463846023440663664062539370579124990719515344805306748327089963819470368328834988011736998756767510511117183778250515800017626928117323559023029507390080248968370655415906294591229667625571849158078893749183453815418671412997296509122635437944964190603541506106681062591369923567379843888463925500624733693067590529245128060677591782943088553304279009252432992423058070992002801658888815657535775703904691137960323333717316857820439345507916505340617837214824788954688674107701532554435190164435794925869155357101843479552017573782779200633749587050887458495203779094537213164223701505070705519831954959478636641533415451070932957797212828223088092277020527842513709980431799678143332386493745718608748557453905706293849117773101158354409166070566854415114236526400698090620324997644087298908274472500160866988235544293695517469564142820085669737002735646733599542236211354903473952750274387438409308817641295952602707813856045796689359910226864263587088223672706711003975481441384927189799751622930684355540412488734962887038893020492244649698653133903297044525039363157516567975060320828848523583867529850082200384651242539969614160065109157911464363412084861972493982131571844091421814371653420907992383705002392436287792941442513676455917677437020689885549584435125650307768328857317550093496600617277119891052322912170774034788941217472484565696901826648786047847332899687386415013874542737333012696637506599601687253562752994542306116111389186428465444053400986586011953117488307169655976798523797552860739087578568499254682857917115972916640332357050528471712368387653521777157855373088321838498982441864231048758233392511770182676123621686802958640689341845487080846491487547345209803111705387606514807325705347964230593029078164300083565455742604047692187491298846077379782706175866473404939201775371700382557426515192138334961087618758951986162285409134072605857050660694430718495504096569066901594552723831305275762106654584395630205664615980919465477166560845548557888614447315877696639007443028997982575109195575670580704798782512815252977115970068188034727082154865380197687750046414918218618789187019397155878679718207742969524686671581678488903175977465579860878586538896946500241682410344254861085149889817730705382718411625691834527655742763790875228040641640949221526861939776613761601828931872767203421449778583775712276293249781738352117872921955734846533286820972432045714232785511072453710225864275352220671612569619602156496139260150966649775567161348384181390275226065750480449977661620680598666732059456228076494744514052767078863118166094110586564646758001526201961517125487142317182901419846333425036531950271279441781370885965293794316662316975840896471962475444325415682127007577544713963545605844127749332045711706631950915853490326608041190317775224412584815848448014600300724117129642485469371775563086141001470414873815143385479615752022470221288031029268284255618362556571431585731698563639928585807931643809348178971152063041783474949762292252393104069050591836607330468798537224962498540129113354330954813360368874992720377380260165159674282782232223929306049890049414515751578518406099851743025412810895872385934591456170742171630906058282489481920432233012666391042383473279259913624854678267203359578569576269045171244645564006434718844336912578844230778301735783235541296051989418603413398895570307825500563019389070296902069273734471906393491005507953234341261504715247727388208226591859822805158439622839910781618338993240484065747018267548191192867260879760418824882177612063237765106935000645347732270720813923541513847282711292135294665326449203541265164067458867911882041400826123525412707162829790668901666224118974599586877513230104616476932612447516259091176349500647206393168994034828892730893591510179271918291968743069567775049133219044823723140523210262316716504382815184748102489453745744706552528528899432421966366553489328643449571367583375665087853263086776504777486352408963441374156610044140846805589405020191247746847210118332065859596600396836037181568048121629215068218266110895103239011776641268033380548679499018841809974954018174493364633293017826064067846834941313615104455624966375411780985101209098583652125214290168528463071278310843596674912545114839649953916595127339783823295809999499167781832686149112654161090740748409042290135381373035878940015630220590639990284129588400150750675398773791846043385052029651687335654025570321495732695569590546048677621296323406734365179611191430950873197136314710926823186302039122300453432514223890860168304400073336302161987246816646649740539004717442867907431570956885767616744195679050428815026158153461942083241443077225116915597421636066172038949009571982627660066958529208120995311788717124064267148356272666476901517493375757094159811260164984190174511842374444900920471363770136805910170195388143685703578752257189386715605799558430070423948959697025417930018606716498699049765044099766742610108978843756127468676291145106458276704580075384265335066610382941520992403613531622020840044597444879179772469702532198069913297665087886592892542996934096643828460665338817716975526871924783314779238253707418168900994028160952255305159097307143647189337087827226497296043774895926902720288635967013067876170400201645201902777662972165866387155089448926314846291673829535052973365447974484581863893556009459885503262912109691169807087811046236877273867443631387343396028344629247152725497435264313010797456349685626416209133238545011174061295687833973987556609058644067664274925957168540972918883567849636710917098397877379858953225747281541998066353095684586888234087841192427488099008080750683561929061047967577022895529578337766664873007043800326935486208219635189749655524576785213046404176428324657504837781655692114964132743588803364719054983446416236731703753556452110426368137315107178613499092983003025437841459022514853914838791108653763045045446375965881952438670546167083566284874817303709960897964103161873553533861963326910848332223365746806410633200954658836376466730093585296499025853703236365901115080461237994334144467688270703928944738125771178901015963083041724640422222642941703307587574444805216443595385936246873555863160984354282215557984086908547021212952959015083085394497267705980997756535735419499361261383659205274705568221975599929045740951577640353652629624728355015250965404388689547820580280071863874839862736219311200258296977951799445785996681034963661327817509664064519814820750961725690662026755747378042839008904049359918898984361678719175427468783144964838346909429939638188049384072225129818348399827822067033718343492785642970124175119108828314882215453314781573412911587393593991633684850018520353027642867670965754058653449507215187784391614341249681351549055311587902631086380176170858824290980592819153673042036549246118831882447466184478761880583244453235362226638950978418498681281057141510489755077516638926193578430347813502102552943183990588501056845798965152413587237557417751167221702575817529544032010527171119565901468402921673083156693852024734874325830842971686926026507176919324427888365999119423093155011458641835295577039887807683532070190957311407905355008727907080450486987851957076301476508157902846169190209912388531535616325400012115551914138717742220298358345132646319028432071508256612607365352321222680886885256523786702928738852969064093189373413201456755839790475576985887687558309985331173126804070261678467891526498680028892265379057807456428462665443651372050645907840969467980671430515952092004944931093459099417679018312225866616973482131557606012051347117055283115851767172612963056816963200840562406426675952104048002079767680999618401868027320119453117642941814791757054063366402726577385637017083301952449793613963942924689829410772448384123300971858159142115375883299623392351662022839636052960213361727382782580725726894494589855109061152040009689201681142840275332847685265464435978349514586830173709740685196751020255403023308077463063441758243286484931228898916030340328895766225204007074808527348919496598175119289798286463628934361911960193526281042609617975003713886591100205554778789341552397863564611575765005821901690393494855993302843776754990081381407936713746388433135975360046547429946874901586076814509547571858480175647665488824167569994922577941457217304028994175037244800223324112712015536795971915601405826259127247167501492918399595967007772456228321941780958245054682788484572617314168166630103446376381126600878540313726058937636801397051898321370201453970851904186255154436165995701176050811535250282946282983174966580079994071087465060396470039765113702902330183508373258249712433182445136219950437571043540853666445893226584137512357878627787623107518183458516473684413574879293553036195705333326543356618791743390225589582738877921097004285821021594542069501607268572871966501390326645275064235452073577952962444215396505618509624037428949641329006159894139551297292618668689716139964437979009505004322701987498491368868889792060841910394798949361291019015551955101721151886542516958203111340565029942993297180099928967938038860708946967142028748587031081209447014415558047331647438432674225141224822607681086165661176967958865730445677939812869283549961373101983177331035705849101791891876758745382228034310035066439925473491667152344453566213170429771172862029110383064982025719889921430178319336216025157149050539097417730482492686895772152743885549379510152660456355594562535664249489075469371103529389041786678435403600150902036679900961234588133208045065149073950113561926507169123671963540063380152271337318991640364330529964062802430020024269523440957136294291035819009612636659256139407693883368601296545714942325000647788556712736763796366885613357841518225430656954188713722331897206531964967861943815622243040832106622032369257669363724212563675183494589377697701572261923477362612344445196465676649141341785639302099494772706365849327966573403636037989463565053859195059852121099977276652011727215919417465284251450897845622769941602626316746319526010485365686775522214670457920013412341833420973636796321837873556337459494565902294245304224059944125534554589828760019464897146101525168754537653116107730710052256086910965664297792990848681678696270830910385915913935539660998820894922586027701763753762887694564165267003416527163388048285018239491019618343362058795865396834419218976772461721498318843064855155588730115179539209533446233881036895551959094311596856863673409001958511470144114886298012376872610088975523536238642047773450625994551976664378339261450129807602726921074628784183015996533785073486729760936877595158239277248987607700420668854775300345208441847330764583954794085424611590736132965378576492232410670286457797891827893834193189814107605145005329426646069250295416047492135704596954493584437401191200666448946477535462615514139864111502596218796325960553751734143430657897354346039376022142277431972063808398937393733224695901192262122731281172396281012677885892014284791517028168896453986434668664529948606710012292538217047553863047580242285268977151691751131644399995197935332686915143367326942376625729271718212361814041460339947169595286035434469863099470076263241717196806246700381419470850924457381446589236493804596286600700889082801582576112937418542412953256195087209838808059256118570620356414423550691502033586512248029291287356139444661051759455681534699888010733100413450527946739267734952294876303129123045297482827539403644866600440164978464413649935037642798043190782413649610021556746864596987651993392028606456905195831737848944316572926824237706957305362392479235443445969170290785359870184832534666903439658415081147827109180878924874815620949876907841022619525834066278605066419582911805993389760723253775982255935814279578599376553072482030968684185893854657401016174979524340560854015941914954618250540446270280682386820277707592657598467522842920893557014551675481808387727411766959468057934378390045974129750248165518465794413686181257801245421255784932527002840848658439415368101641187196762442538243371862504349089158751082723315222986824131519693106034227183199094895466292951958089376298030613472979209595003395834052267699545310793890625486191674522273115831874609041980767388595293578296671397328396947301484358069663503560991408166576309712767669324790274090015536114222280706395349616419184298345063984386594866239199423553677833317664478565469916873304765253027038173655750199214806905872594588909167454572272381059588049508700061819220283366222197853696005573046636023190038626627392159239185695466119876246829736021436753026515892558880840902537754308994255256275345380271592227629976774803962597285259782654599011641359445654390697935796459135621363637287123140845629750582017266021132546554044897582253214030729944979154752436727925360019113221850728123033028166457265326122559620796117867537008790766209857189782885621661593902452259632337109688709734925762897089033563225672243856916290608264055114572075790481183682056858766879248108282315278075122976430058131910419961585013709687761108068216551513301645591760732615039116833218541364998304033967261933410520523030848107135899211529482606196188587170500279624849990447780101730260774249878830921700948274020575550652259122886433763362990978070905604480743777661019931039461734938594919783476115548348990462827895633045652902121440392842931420149398555749883029839136323410393770213347664414308717785152683841337265295779299024082610828524835701034750761667667157874546301576356610896177369657616796788550322351860915155731465865064550926682082649532059966552209500916346833314717035438790962621181795859998023340291281365151676933107074833845141490948913432443018000211309811412529970326687443742213231692753532013143850908160960776755151465924280319091779047008670158559097694190187874829077603761762240455956228031975545527179705770175973228612480929712034161535445785082639094557078155479288138107426001618376685377042572151426525635283838351072842830127426239008115182373385581871954958486448064683702803070818316621745791760137647458639944098650074760845956972518287649318808617345635660546795376490442104404407608166630587131461964478528041630963267956583953198262085462418077888915472558600002066383746874525311334116449905844491222487109487583372667436610239056666342121674908440288192014443895673157142797540633911068868497026345039677311450100814986867764861897362777759330121156409194980972497395165769423742783385335052748587665015695694395594031049715333006890377197433063294386663725238132573577583125748983928768860936330838894716154734722797378048197574244821957777457906026049743443157164831233462807489475081559823501810361154492848154486530029975928553272801642910397223415578985951888310213125124932662907298925970363578360092926618931848898875604686920387423735702994708841140589723569512971048289271595929432231246466369512325638037240161094372278105430615580932260970968999648351623408847231699731361364773197804500309584017064928900509566435173639268434423967769790446084259149066514606811899290625757752038827376021013429776850924561231027647549676517302445180463954276703957287064609783340988442999142940196624405007321701160841979983909887327647132452468214397333407755769370543727304870383004647150285492510911562471403825382103769813892142056023961499997106573913674784469656323351114119731858349591926893920402630849013512504184910723734991694069332891749922392050502815277947616410697773869065712910912349829729374005633667446006353304008823685324800224384304676554106414830111442246715361996045560530547144672664458646173348705745860202821881320198437457608332143374347180662359683409025867205431171023355159073688552022463230432618205880448119455272648471111207784079174718272101763756234486948049856396785372706931817507675749073314459450303969554174770875760696349384824800380578383352189113222247074702939696343688837497630924825696812077125304798276100591081211320302248518175882813854251751797972414122425121522415520079912526308862973004067586747431604328605658264734596142978781108631628379181546679783179743147204775031970699014436928107008576841012251679026890014149303936379893396582232355103552822522657918385370557536999126645785282289803774074810927327379815431532213892816864294081837256220728416653817791639411796778579796988620991275743350959177447074909153355464688134212737771226299092039740716164182712209440133436617048591273933858821672678572115196994171285350844346314424403834189286306725090221704479848673709783789203569070839868509772789291900312803198751317708599248364330835979837954829676754130206252941097962361403410785207935988323805855552396325346243466808355250657204800809855991567000022956741197320704518124011915806670896682045161919018981306416140244319799158670279578230638050582077144029793863980945463119412953883296551359793453557408295964189288520807792357444204973917907721329080716943631593704991081175274053832633519086694181803651704052098390316613766628726877973585647210865425691100866963085180982291053841227966447982817460571588997361771273710989012504405567187985395461608553413607834221408128654157198674279312614678651931348535989617680500108833808657032493829829842609096006441468242654357364438116292658917787641286045491218469852441067577116323873078473659196132464091534268764491615640810769771518253810756350968716789528730745344375683126472139359031635941610904734516894424628074755609938285522283247208542675467925989748099421147000763152732578802133682576469444642566629298774068684579143975684113534683762732448561331536602038499499340619921502697105872391823342647901928405144842466051460779319778265555305401808991509973136549628500262566600618172780114798609944978165800728231203876781205524075548927844180183659878018403650610056646786767551268749449355571338374310248461151334749212450866768263017354747368767072396378141147539078662350971104465645117368180969582293526639466534536846057572632288351351388985346398239359601827738447466250721482759590405022994799396320666459597980523950152042163702589246567792663773676354369549386407426000128838850679904490072043933320932473723389847668154265098788335663992965890931450263324660752435517952274884685714731503182139575544384820659550534546068174476716708781409273132358498742189808884696728144616047777303690656799814955739593037050913873922013325471172808509709194797546792596373791349868536971306751845604688515845402753356356479149535459028743328317420555811613808936726430491536515986026993072566227929879295028080480766907406298381842662296615370322590833349955207781326724080337251774608698613062939978790463321569467298108391062733443321133076155039391008696127088212853870607883534886288159636979448759444826305121151401505083432849129482072347183875932652058183688136269623234140732966342215716824523902796017749105196550217719903769411517644417274342878869114676749748745802502614376171565225410223385228392284410695991339877204714840794629076087476342967447944418150832072387151144758937706179549732424694638394666841145603404995446699812557234740698159508437455462855616133086040535122441979517602035717349934838218847465719813047066743250967192080659203920045136388142984859467037812773170465109179296856313008200422165037007764201208297855786291222725362914027804258603130715988857368859249430593082237219006717732880316128729917372656920750434698371477340306874957218760526479551590712910160679527612353213837366717170696990269028020208864008287054422008130344528115797151964027072113922726987038260512132877308218228750085249084474777353010963726054954070058753029102397977948198023529911255652553995979197772768750033312075094449473870173117732197913747825305564177595338046467239361845767791930683271614626604745234617843270638202383210351700750734370799110430071721766358003280052802419449285211516322176274196942072806126701983889465415106933310533810730326176029147367914534700092763462872132211013828161948003569757436063301228580917713238363691885943118622324418270579636778707384818202787322853707000300628705892493745342588183503177795317252553485478809548881536459914167005618593677238913539268399339696806548038135948507090163134357147163399045029767825557205932552496090627958738049372212121425254418501953331849298247857499477438408109188762171332058205686722441422319318550507074792201156722374874610656428670127315452398484009015813666311917505844206130871725044097157323206186686911893066927624727317384082160856450397273507114801790293100637709004319339922732639825069246982196074352858022114831694949352614360532776178953001672045088982737431105008510374123099702627981259405135676326820441659014403619589883965691974766710960620532753466676022953843268290738218481591826272015275711027246566582559315622343190446422453394498293280684054690530838684141572317820218043287909426708966492063235971160770477174932968797865936986937813825701527154169110207540871226802545970042787764525523047057433401852289119783214943788547306169048783379302228402748499015810853955506920136031886262610018633304840965812077752112752973843999701590808448225445154356112514694503069770347672521980582934565931448866225818687256602833283219394761761489145612464451036477036288055174611244361929714869690005257804055552419024958005879388638050746967851819085118775642353813380065719307858518451069705740489695491451261348386003660754188411514163931416852009099492851418942647527974791011887940432875129333539811583734726470844296498384377499650023977321343941767333172599594866235355503322784652571912609933727084172023863997845263993701287879804293022433334515637749541032773659630688889543854506328781568734690534720569358758416492757591660770090125636752544898360147340150235037390421316273310926041430267546719908289438002156502162219240136639313934444206558662200708433468123526341380401563013211096836162825231445182134929538545921994319670998067285991906768824361898687663398730810086315958229597103914653416687148087025726227954504427523686487330685994740003226109707916544979179979139848266251054915264932499855965550719725800192959589582856810445381853501274677691364343039675166878033277936894062493804459456824262022402532185362118293164588085620071442959010505229059071563497308124803092412439987376225031331422552914265531725224412864062936658904990571549683877814292913078251140985014880492464311555666014626951298984380869920638799269203121802959401737690676709451322811255112194970227206810228563059195826161013957942861860774593543611383061442798408393405284872693381094534633723183663090344527748885100634869440176324387223239014029008391782817183536235922424971938459384592215406713879147109167601636773501110497150505156504509495507908587691580462487764648694675944024756994580010488574208500307470624207636450895201865052952673153279041278048846772974960104050881365367674558018559959107882809959192381971608102120874098308662644566259148861135785438571658798184435656944417897629470962983496537088374146768763029177592877234085255442422355493205959078687207194258366412159121194026694021452505927047546788819427844765812981406534865413008674961710408635036928158881899179390158181925394667669880400811819734969876992013826723868925826335797412827256961180502938119129597420648934169671878157543022124851081178349415240479851868153329111827500302045074966901275812993069663303144736584130326702558743408538539425466840402217391692025827564133708841890118033591385963838203679643225988656158429478329923340002895409756852082700098889293305639208293760506763355947161383861290931335371746330558135505847986493236782883246108300356243769023078201796586898870713613081853453976430130058742821375321202151774101306910470971272518332858334709622442558434253268190478618668788398890918041941765570655816892066651978869917046878600481385110100512618674320248871528519941417449416581032100800992694348818439472061602709101519355176132393197003429250849145316918011363490150237868647246780887880250375387201681788774691847832456480894746613981421118220563043416781869862443308860751753870008884409455886610044708707192079179363888559900798552952730935503785934689192035335802959361327934651143971495443505327646611236297504937356692577644466479675943199528500009264886559391055889830109269906735799042684971346961881894866725040725624762960207407863497954620185526945325109219482836468639477386794243608337647634485257696493813253439289762727548795511997749088799692413829837007371832410134513993115370637948987379144550447022638702631386531105294985786224612723269962665442654509322071498357724295216889379866703593518999906152917459832975224000632298653078451123397336556798133547892188681509089572788655597561134765765641254195682928043199496567673910112604858754103395367442401378791227774653969937126467511218677681492689067208693045323352452815024348946319271345229417025982492491775127636815526684042598611674435143795707064007982314772615552041415834545963906669280813590518374102524145646295721181890193985222227157866810230972564358655844915042446015746085650434758447544739607968025021884983574828405879662847570410149341948793859886909541508083234173477061959370420561644557036880579538017058861929623091783794969481814465264626074531835442361541724530830941598304202244181621539099484443777025672313735495287562079539483593602978524831472876004341571851864346802163831504891591908314903002338234990217790177854207521494512781492348151406079364213982998243967997836562705471045818167010931031200329071546970084875107957532733981274769254548354343015145116330289986874555221991878860692717247012298822160409482647691777237028449674240622441176049597786358272045213611005865286847317037587290848363400259302526545941288455530606384333560533392512020180566754167671550385400153021627565943650947607025278440574828253553255959060474161405664798805833960864243092367769104105258643600571764746276915772072954019180699094281360301797682426626872072686365363043208265453097043003568770086603226103175598071783702402425943479833799270682273046189628052308602828572906459857125968280686653740909022084653752841541083746814295637183967477165749803148492481400127238140560454358923784234559055599119016661677682887481666222250714843197197793108411064670843823731897708775586369015948630409090036424564698900499687608660501019540904039122046549677213287685372001641667717746114952694511174587352225651755230918754987320696680073818118872119687815759483200284348883801240092719393787132265366599995941555420011028717529862872402054809379091359467187562883496310100597093470618564407632071626464096025759493381303599935622714073241896914771681966635897093681907672322195325179905785403680177993469111662193241902163722215760374318628989544376658450402731757298334132812998424173277970077469315060335019940407836133346401975223972515730249361231197338345724808681941986185441056909500132675639772384077641951622378357743451893655764906490928205175792392932821020202813203574802381870825430554330196317070805035834311679214432158126175465332191025877843356594564099429868306731833703720352777750815034879574514949229978619369159509691399396380136719123932153033249593654411410679940638289751093394680701271038989221367780604569605584627212073554440245965059971552443207133273481357882842738165972422139291953779210568346987457208060351123195951525417563196209491746979209610674598337979485113309064726569471180999536070438430171797065975185610952631382460149539652793155930931844484000265360962424001146616806899338667400570979776352604013979534340041301442722543053060102482445748508866984191725878440109096620382828320162157821582858526992611564761372656459437324908555357114017617283720983439823802972208904542438843882337936337205043816479607726429864615126781617437936862362155080452343389319765017949251268016020557364979067243925557525102203088680465333250744837211090035612623961972323982043733677624599582925614887524441717818278951604809509814517949309093004628789760248527246527608407820510408552202481851557351711233157952149536075941871828082708687516565445821508400886161501233261362541367916755281557958093147853685278406790192299484406970688799015309550691865122577790994621352982377387064882306631677228935609188268209851215477523770035347210869354152123226037326721927843318322894331769839011587797768080557045361823500489574311810386729720052951220778715379433917086844107512784922958671371890460161725757553048399870550227953400162701015630829880957979391286561937238031404045965689508912288996039826524045388971262258431154683742588003073610828057171568454541994271209690713364425433316968435614596594806297260533816682526804014492332531014359228783316451752090371724899687583512558306977194389532491240814402442832980256450763353801774809260518083355378312191118098076102488055814021473048094847373398242512375096117708139475895320691661412684107486912227754184925281765010476162680326276323083193692934697127576096225472327186614975470647898298932457170884853675201252588644503921620809416912011592766485324506484004965376560293247270577386615975021316596420046572585596284380017115383387449903784372896925932664708866997642946252146464019564565558602999844322529018938766589000057081109386582616458430372190484539757805023291016977029842230072579872212708468526014401819679648760632957479250019674521332823205407962867001645646108230598028700751735274021624235217208499269429577253823738906606426302703391399180364967937272584782746089911377630197415559072852132596528631390502475560067240978213714845837780843550779343013497799061377202781736153660275153399477080842935962477610263041448012290870214341516985658408417007093736078579202476545584513347880974170799085128648638398259284432319642279696400456476581475737431480529653755892878060853094237292283691427989308957817672730139902030567018892717006569987026977041011488327933565624728944774150077190316458453597302053065917165667776531366376082475006322334249301974684009742084703235290197391070229081958011190086852167104148392270915610752377131776793421679140456257812449466317062274320080531605163935526753898002157078205993570040883855657208343840829920129316927402521935012513549877369216326259557859407621497270251009697439305530637516571990983832471659887183802792016816503550674620739602311985374496060242843911968727421288011848283580089409193301266308747806730741348170760310930903625331425622541362530107224548736300839486877089108139613334114683176309770727413737911162304039311281429723108279187739227252924889332611655349919830207164116432390024011424891058852081488903729438981247614425848704454787553513792028806564208353370211609007814312557679202388455292373811014643198620311234808708734441183367368875930467321134242205519572228571501517772808288299298834585542673722062162743459864505853153264949318407328789860310479537118663357374876818299390922277582300784044671180697116806599363720551215183370088518581275187388669714374240651556353472867225836041464747280348234198220548434218608205884349586253231343988079803469977933572449559344379944336473750306164061458661024842872773994200794936314345136934180667869426260259499385902344612676014778272093918596934161608073521906767559269096283425825867090458817646192247376712084002215812050349888963410395933364169443659863783910035576270351096433423289189799755316604109836904651226123318496390396983808491109939410814745778147602423431611846236887439181376071691947157863139892994201800084674800959465956259405416009949872844993924879736110647912999810707459358171050362247734171646845497294278890728310637492552503913558115893916445413219688203261338441802266329763467037467165392430265603535528355684758090744098069368764197271686661698610314854158243203250107012820588012756029679875443517338152253973580483405298841230770078477746838896921139388995874229467956619060341681943708443875411704749168954092845601454670284720232118734962597580939881648529198311257184597165464732301284463408847551243425486744839925270271383318581286355731646531267440689289863234997855949578167260390236393547310797649703195310375376680223641803763972919706115131548634603788532578649854342029637332518056138079746235835739792481741071460358205240769044683263587267374055755925569314591594443481695499856621968957068092542629054886825275129898060354029482799131137519044440814860074094710577395809493730415709965227069866278484913837302440369382672290880732473036672275569298516424179656934287947843608366796394072918082295903903429390617735626706886521437287978608143102241123088521273172572142724186918803703518035553425903172215330283096972657767026660394230895720620201394818234974072932964142942313528593023656573871120688247833760035678921221989174731769422033091156323125876971655546084634047667215206381157802641708353589040900441562458445231927245449874343220497919085666299777955994752740677921550252943694432308380259322703830867244328037533819576750848761520892501013756376173191990690634442103373805906763056086823053408224558756492129435239842516808987205629800612724216736679145514102476506267973805653563034452623092108857145113589064990062814012685637664968688513417440344311806771619004165608787787536342976035704138651042843474092626159796754294600984788264790502295278138496623503904612593623557767379351886347242619487302711182436313082746875329257035980870022022628176842611138884437584971197027539118560375848804663949922754162912187778873534972718361259678710302044315398795452840232705537511461765443604176504984718480688308426308379357368330563092781731005816828634183962809044811338156054825963594147054725006700957248302957835312096676810682106026556409023813961303910542666862408005972318828055773760266775589390164043497133750828509503948026505502178826663168801593037967778534116128749096156656022369123881278586869183050154733344883718338552348116923777899005749686559764090007483883273599010725273039318027438732550223417847502593071071927312924980896175342715154614119666547966818679147080798414227367149796598051761523769805234679940005146116991576815670904007643022777911196181598507827839836457521954893251658628328723741378951971048346843678762350223652527049351866614958291317618470515355889602292669928620534034556630281372929942596563511000518355028966372671945273437384420858598725211256035193682008008770757291249766449282034261955356633929731181875089927688029453394655534566015409117951243540288732564740254699059972685473722583862086897480149894267874444738648560358626356798217522803611528532258797061495834631158989999640986520594849706519577594405951590677369206428066287811596413485701293284362214044678894584537583567073270655061255389786908167530832376917816080725874310515840671886422001166428645286490952509044728347894273526084960034627415255234383300800490761612371279070144733509526694571186681175052713590505928583808048360112898634611247227750608255569853399715385793948976868694632162579408288249038624556067573474196253714805072352731267655323590245274543152043288768882836176578148369429249575070370241799461303384659833120685403984578360446109963890094844463435035530144432293274662892860536556496670099311157313887726520854508074903626692085955921481748819575723594822384330461682849999998541510954903752850441320586247776857516490765209361486302179188786647824867767908573560372293803574269008677690769131291746331119297898075080996198867228679566135305479555490282158385529124923824207668390145987575723127450816332575511462928895346912675163006201877619489782604861609830909768367720653714953547250276204782746372893430645527415546213030453194723985269420026341171231453921831808353808150517613892790467888470934696238554765290039635691086581836946344423191262075061970770669844916855357916218398488939761590692150424570021624890221753822554873931896169604949021904200783279967145533594918981485687393054407899655592865444775239558436784342165648083923495982800769253538004165990623567959130807352113668829280319738656334118063151814377599940110675368052669288709335576748307024015672635887072679397414534105840828053796154197257573432884888816771620535289899832468165458771304165898803405846485574112937124956776445617022197371621006952652246811703842466389125431022233467812374419593509173476276596803025924902475720258480846103393407404923786601769543474117351642655669517549122049524263366985798691289767076577142661281831150518612805610451346779566415612655512759215923213715924222086716897252118750913797327232041725053285322230430432826135841457175663048708324263317628393720352984517081263873932944280551694380015200314902526156344910939358406688993119102603753072950445186840865133236916065922965208355183188805094143395757405210419598004194648153526236395197549022823073642808526288651530346469004210844747393109765040900322785659561424134972406866181478394458011486278511026531179842093991582807590338095268901771278806917585101278864810534779541900546763767538523688351129175151013177399304153621558493737396582886236817123778368973452069754335570858708527110011121341438767722887691743897631760221285659606318457339823755576033777211141164658553657134993779326639522100653575717662294367493959800116565454563407505827241622040523908742152108543938786947074241894129211037873840315510284230936392613015964020368429401707552408286163575093739514227390733193003298715351288669279687766506713325618269806414914887522798858707878043777031473239862159360991623803154946965342391327076568523674173530909929301253659451954587715830499457160775258494114965784907848047959179409258910806420851688673828708764989842515516411393973534087973033016619233943099245678412319536858301807067583500550638807479321791861285651453869140746876422255853435057451230380388621562637663693018454788597406072594961658057711971176755630694503295177359730774650648934183664371265181099117076412294549969573142239323849328841250433575864746174887477145559405298564998428446370345066370314207289895203503108207997985903312656443736654185918879930961324619882363678749540806099963868102109407801100442778217774425102360261975118560644687614017062918109602522042058657552545029557572474079378432738215433334906557867728546061848069902710027771039476347460577146189682197230036861184502034146886574143414450131994043380493502978265322969971296944398204253463380162282400657727204303903149468102349026068551239951610948407675850230884989459839847696134587598664966165644009849491526418273137633735489470188636645462759265138483475527354445000246256941212281413074070165456147270609174195548285900200301613425034803269149019539265812199001902191242771052425511421886781422828901328539682705585521736249412812323733808139334202528195014246721848263223519896610157457557152657743537671639578523086949322581207400820628618427793849795119540914578382964109555571264058083240437378161848060391953218495703661039608936852326481105569624985211618734190973103047617543653385503560349780532258561034332407668751400721212246626788543268890626098435718851405118710817334794459229428571340248132928796870890030790133446378155660879221470446146139901375831933834389415550622683368956342265239918584247297617587331771120173542899718295603433557621310602058728122803689273738624690897464982226920964246412839683224119097225943434150650875346150233172677484634740598169098140787174479991003468773379984452168186812718543796069676938355690818914260084049218743369872075560952081250494311276072256036661264455900554496584151370415391211423738759903772637580087339324844907191222298572581374029879324918472694702451144453277099210774377869876077126258550609557891502647343290161159941069860412001310854264764508089575542386604542239404055344312208005192421946066519795604423753651548206536196147465116805117800244099953171227290752088698890179857107963879466656103898744557553559421850736092485240350763548113420181177545908498928550086694112101602200176593555067552154003558182548637121826453828334379963988569102138038894934243204724911309870560164574768780073180952813213216922487036465550476068163971506608528746751202778632643288820925862056927210523820717647059495737269146573807592095124121042269067329272021654021031021549646952657956842845647638944648944420807844076882410775765196262357390941143569377773516693683454496717263479453161399050514780853520187749018646778083859892294892105860610496128090261037254738698678348515333993733312568035101384906717914259128021484096352605009529930432581565402592595418684241034829244242213872396725634263346834521091299198093752724290776469663138752026026775666330557671398103319563428925094811483599124506338863474022711373245304937344430246218034526711250602679647579664476357291435565164669944949272615183724499025684259600760884733226079947769768663503372866462325760908154648776183923329903462613971262808953567077867812404948937611868504945132295194313221126202105307631723334397094534816475775942659397448105883229644802179165006980245409635308943654181158451023447701058118476569670090799596564585438688531845782587560952565304558724082814142510081586475041442088152036002067479475392003229304306183878931524707490317827012404747424665603186431326829209811713297203666990395216829589935919550550478678766308808707401886269758555313084922863122780265296907231622846122375172245040378749191079713167131340656737066682383119728118041865586636289378951132914619582721623516299028569747387759671843389363135116171939135829515453327874666490528680501674931898111194745096448276750625222564298273886474361582727950911329762034199213315502616451251996352138340488266942747011251811061510469451548334190546777501957879845664691087477685344045299194730352584926847573971883948573303207029039818979071214609673736728121606340276264946762040506673128960303816965570176009573159259718513448186521635469632542127789299578115993910377638229224197910214057404683289733656824133832813770541678128527679663646971683899257373821385088447737688866526161265719688458386545698329031172019469226639521515054801592363363634975082776578254551444689360893093527341483254697405038816425555804800488068231836106622904020376968821760598041233549451796567997369540654856958403621568931542018170218747112817189981317279855417320182010636093518779347454601875313583875098316293727097053224354587931314505344338171506697933048525043589244874523902596694804414922703050087614296973118135108566765579687566332226687933126322374628178448476921983436379549223304376673710958534070751052505839035052282505210391372598743561634256299519314417824964248103864761793032718012363175145703867327373042864010372043041112852172865037007733648992985945955615470298753688930501075136269193726734677177011573911383172763863679780142202979737664968981096621274356880904013729760860313142400077819958943487915505391455434684332656742078514730554150060733406056252653345505631843314876864045727878673452430665628588880558326807069356814761218650884004749451021276678417530451109146208633357253913623431546071662271697226928648578902288327082814429294211418808643468068873992573361930699132014911751813436506831307279163191277531141442358647815774460656054620639330429379874944048331556055134332513520655665362465174699019931832864802349368297507445268028879880483756747224782130824557799087724671997984007168283049528190464092768816522523155929163116663780340751691172158093840565976538110318272449925515505511832358992505000814256619779437325567175781528146943939617868978787776007271486056869817717286706809441996572072271281527350227965223364385883679890655405595185547835732929099944496020114074886333159326839782497364883252541646996410714910050421522566962144990265423244599789011332167828024586119302830385786636688123390158191054603598384735985506347027777410297196525363811731613012490350581177192793815563389996069890701701432567941783262352146775334371210326848625916242545521581000927562722727698470317365911206937438596983899575048638142213506097716718954768278257532835635543963884634426939134222514004073228666285050051606123366824722432757974354108987911441989218287985706495915557658858431931740738087779594257149655745598707746188844682448114652599903445302621670821729745150147868754921959829804338154798238305809105194143357054542885712905502108683413051744011820005738563131766971050740829838570566590678713382933601526711428470948448787588911148536128920234273678821643196412306072837487508549451868235578536900788111787139669211904238036819464138888552756603284014958664529331208376464279516304621601394890893329264749304929753628643177178582840931956313116248129493929507666373832721171648393776780747175644761391806740864716350455067461079198182866656577641178735654163534376617915828846996622112782580236203550479759256537786665593927217239812582212979667864353433871552992740245689983996221769648582696963319613350263244981808681937273699396203855067275270063463064130728331716400781329955579296362734998085370744646031010709964901177602128015784999195956611561819597130762198818499068467136776726201119714557734614313448572003984034758170746814026385051109229955090542076659032975081103271384095515015683267418371908748748707479173846272507865599553967008557108190087357643527004205713882702614356844980618513898533657453751296863568588888303879638654733994893240594760996466294574853469521693336182014169761848742210659113165767135851570686596889811911658768663358161518033608523639133252511072017133791040333045646297395273237471445632140560867366317468282382303572153724504390427852042448447038888709414698111890641622180071043369502796237524611528846603830007033308529317124082218908635635593574872170159814854629535608921417870008676831064420981331984849259582209914535146334563453218592629414039587999506674987293840952417257959490266026789866746970180478508664911883068935752269113204146548405062779511953853145631265048516621551633276725858893485491411692730487294819885216802145989671462961147174778469472696252372409981147849711600116541078019285619849528362297090540097719657346100698701240702506627925503480863800346638518052923354303049852865678165746500999875054322571382336295479117221543324652502842596365326394173976066764318296276803381636065942973742655380538817369703525514338535163436378220722059931849781303777256887366356267575997267843019827141320028975401327287417139280092800129937069523458050607406460992253190038874153894807980996209884202705259662977246191373035607497341316767216581853138827690331233399332854018092364825776869518789267580828341863643199226393652525555410524734356088721428133072586422027235198325334107761983258765037978064672989708649766035591424964918034078928453703443916331133627237145059806680136314708604017695599759701435929571506773686810878362964061596466021450908430933590451663070316770519271989512470393787387931682794886404470342620676964392221497116995056449468572875531551691033758519488608321060425591595860267878011620090016369685194846421461636909688065879027334431384900455831445299493309950978662498223213138757724627461543962403718390056569567701533605503470866980652516764869162058368069834833802254387142125405571179910497969413072547136863077682887407765463069775207911448805469408191462067185031056055036044492606442150142578478980154297612638538798566088034785003257830902110598510036152769416395979970094163104209322819999618333668507580741946736903792373399695514692023871924557395588881042121919255807250695157217912844962893347716821037712899289958122952242630345545359979186585581281975918425237828225988654349587055109288501136957675246121400241218541531864329442441118671850431776320247633396023179423384113539136081789708318094668999513804144873773056887736012892616417396636157384206054344079518848993254337722243702326961197830683940394132363255547029905845126854815867766509350375144805989414527489425518978899183467238696546585351350853861276097756577192093434636044207305050027177248559841133927808557520058813917862823394343050650686078124228583179196566482394640049035089456727072886711576358196238103787973968801313425004411205372642742385227864432140323829894390348718673539425974901017954547508356645150893891443258135397044499016981943665802211935120354893198075645412446615014715412693559338304875069107429492337176896795759088731397211504587782268986052645650463546239094738444095675668669791090308611965459303605537053376018447089411254201727947845360896066879225916093387260443994565724724970197556587358753781719683569287476604290066956367265263956438804803577733230240634049551945330450331057541275541358678122582261152255090877005966782512709429368981762727350630910414941569464602230842836236268343001189542342931887327889985576064684910752252654385519370053943502699518463308231543169877203034139038504294122753602329554571853329373818475191930904503206239786276838685711487677576079354227635616877556488412331691361492498471034962944600320315446561963264449329198819806926785404029946548766810269851630526370718020463578637892939931463977604726778820517906125091394289669363095565405318008053966960524188358608564728869204363678459514911700601515557723305533028916829738287500618251741990714898814944865445986254789249278530131347763924223734886244037522141174065359704205745275167743773510761394014334127113137217786664216625196435387293851303559890691667110960202976433393047236266608474274607134594480174899824597157034848942032664918880252021720034238086734521048340451637759469852787822926808679412970229671556180387877436150135830474471882986371391456075150999122671639462296325377650263089351355474072714470321216736914156511068301372960995216462803531093593482688526934036202433819368549255270557078882707062135209114658433717632451308369994567330753996854887137279845066627341206433679974781781295224898855862644923055817393541999427007801955154340312488759686837034063169574343283636646671030627817699279365801382080132358344614390535916660374928470022060293346561243988291497418398886024624813951827307481011258398471610795566954679426220822115218194932542057136383273771529071111909321991623722797690595617460852036072422838818100096971529924815632700178049104891069459944432424066284019256052608011213922112018777231911083818958478286671366824840494446050272115075338542911041631798245901440696466881649664911861429887692857560358291079526136149562700653994275912919754600832674727915378456079776367106813044338793491643831622735781460292398476485299372963646732556566957987042155807913723302899672620934131524401757543181844614439396810275718375254895804403470343718036870982639401793877469748124180042519979603771589812931416077501584584772514087957239914739520440342318282010050546991228568999494917657932638177565383559016921606776922851249120575469804964828701766263624270618725845691621494354693329409729562279558419693609222180426702829254741204433667104635290884898233819976064282284289832420419943363113398628365405371407705040322051982301420038587538883923629496872030002832181272121117931916971789341010166478907580167131204976981298017397578066658603420959788919088325639677936234834093646504501128722400210699287653515381157305308366683207335351561220323110133517211587550875927026639198632597671428427327429147326531218853574926001516807358077715664549981377174460717858449880927625922628883982403177314572598870407227595292232268930167326532629104563731802377863772993528685168898174962081692663018978517405462596085310378300279374137113049291408135756447182301364812854168572099378555783190765566881303521658522260475095877492880972430573832566647312477224644407596398321778491213503925073976609116329655499145198356552842079868392754969459008208794359637129661891472138564092289111925804008496477416099350831875390016715246300111536769518414322832343479488993019967864213584073549989509432500628990230714099031118707378260248801424792214997129442536120618548197931405692556715500885467809849885977541820442008848617357151475461595369302321394247448060375177663043748847613009448986763087076857284395231065619859571461569224084909030936250562128103219376452697667221828069513740389119855640553773940344665560751072453167196101714982262766759256005743716035161467753978579612266362390149190499194047471705994803310386613964629201292589680783885857666442347801424110970886835666584143841855297267037344420144754088186467224782069159325360005713894079152221723010504130030249706427661150717584106177920712827036038468523557056298603556223580597671634947939936505926609808392509031221683661469546334186179229896705709060199331126100108034305660175230140315695853505361900033023581339660361463670567147670080824788977499949801818036644710611942096743087089420649581100082989033891972923751393733933640371262496062116720428097812492502381531816944277498561862886596373608572746569747430811339198253626054477573199832053054188509063915901607347497996505303457379749047729657001234534822838478361060845588691742983863940055759546145907219965237195112221856453265440894541044988437004110704185572846796140277353784959244910735659167737105430450737931692680939848891792234733858021010394910591177691033151081905954344680818702628415698896889753698151613463957711743986047134990373373881865194667030109011561426125175922280527865840423783219333309943300309683297017306777930137749350310999811066520957379987390659615115577399235853949481960325437441436801560327973661143398206569272683626652661456033848627515027299981274591396343149629437408569854547241746642735266320464707643904061220603400099310520591131620860489193257013342761948654229279202499794162359666113662981429027681784823894424033882900675156937551113766827466797812465957014669052837092551907327594265774659857117071196439520057582722941404665217614477434009199261269138350619923001105241478957349653050906973305322630740727015770862355788363501935280081574404445516835044066287904877250488717024306273355316153306584376154587670977808738607347475268783562694491101636488607422566129129100487805062038682683689599992677405711980770922812097825703615385852439254497404999150667779532410785178549938179592789431197846473298819780504688392248304452159728493535616650852678994975425384600936268140800848161603455777961625858035368121420401336976053129548753958549222924079279522566181536233250593688627013248790891729238212591900382026077209762316411288171260355486080643379138054185655357906783666168899618402117343835840938528630737302668917177531930751590460172607218340741164850863874347559309100111162952481213527490349807644392094922247603992490835258040025374852037476129510146937663772870058973246980059297080982519772244169860499857072366883070005693003562269858996003141156179077052641690046093079441480206939410817331589116206269020722517456510699235449046607395606087869953355662552790826345201537921913461669681719489238501787546522698726434386295234896077654332102415243026213483312514484366268628162546344881989959599858716605705785839590164953349859829688326673573282945217505987352519717926730977623338184317806073380212888440228003369936801554024031572511459478195663326461871836282476118232501924976504686108534546505475883467421789719143632536531609157498874839627014654990189115656332919796798136496820823096810432427310600722402765706921080406128092346534789346292531269214559615610558813975102673378450299782842589667655850233114737945586647769993309950554731402728382614839371194122405325354049103427140454969321096016543091580198700905706627935857382962372098774072558370527184444544892911862164582978518225501928445832242786907731170954333830464822169916781963067152563258726804293266386063451417589894064784686241481504789304383074500285537675453414394681121296940970584917019483563373282593017501193018417821540988393158436354885001883832649238561110772431039821346051164776879917321144056133520302585554658760998164343406030902489828894809424998054448936045416965286751918880087073927248923022208087590916307760452031332574383319134354542965564490663523572009754794419549338557981073571740598499767840960146600187804221490710084205382020004496699054382539259320572301212483294473639475212748812926003779469857037704743215958283122862772870993592169399236233434137532057265383236344436869428977184371852762891371858561400506843031650747032896026054091625977400622072892477972278001150613752846392160422796865068630310303297285007167599067685601548188654893858248260186518219643248181240038367185108843972111762558284074222444894489909589389363606832047170097141868432047397259237046947376368581782983367097521029657432991637660070701099276788351285212696533488914244505830098283700443857577509347795901881009895147725758425458575931310952898642668352109622943837075578074838571355771892879968083505681783417965082333983865673380292471715454575794829923760000575056298043377556731376790194596361140181311399039836131920233394814267220484491252780542866100782960777547242596763683382341307899515848702004331193143497791527841798501059256746877436575470938271777781086506492122357206893141915707824399744227874482073715891613162795975097618136452540227873367596302859652870809773868948333561348166070086350914886341698824497548882520843496539719218702728270616104938827042101372373930466085439610271937825899530494995355362954999616174775082517125035315507481843211108413037149726432385926147316271554015596645846284736128480456857948110761251386816455400725209520229911646153583863578441379489720921728102690379887608417392371337996558290441540663164406792623135471723051714903320160087259280067970464399159469124181501107337006910721858560089519192988242028948545792923952941052577662576697692837510902131038819761277577680805957295512671409086683400650776677966513555672911647721779634372075954937458939534126763557457198178023769052147218390453172714276496601549423908422366133034976384360392033961210202091183598735158503836291691775595022605951903411060283334430724302338298450469905789574212815842479670787165916672973846646709882864506683130495303385534671622251129684846985233393312840750421925127838039552228573809657803434168637987642643077882760991137068882782290873957531832712775540202623745444672379815515798181864660338387367909992275200584991899302575786387983550624309742853435980964162618782018852763367893934128134831908886113559318833388380266769452840439158889110174949108343525127206901148958025635951836843500072417171516296542342416448739519365877054329804715603253034140453993988363439810256291945421187267587947272154195695145434327797599879237936830471742919465929353051023967559444404970849987279257359741838619868365902937501642016427003188845334351604950771162364968706434277607401783588558502353840456924534113817664340209146709430001219731253072896842716617370885593617581430955093051988268661265048194549792545714930542306000930814188405916021759798124630800204147657944918650535201022819610860188578746508167995204583633417657955968325484207960683226811267681041046748125469022715413039943780827002885628341634290003758246921216598353020540669773493466099238001565870150898010553485528756990997055115776557001279684808926223449455811097413026044963646250034241598046539825384944994695435762144984309092077634712310077753158496358105011053227529352170323203196535522715118371132144955456569843241704782587284934591474727773820210160377192528364890847135810429731409096781301516196821838029171582587333543888886142900606091330880161961810531928130568833331529060718939273560957192656670484587215938110403725159086970085200527391430960247658923895087452969177790496035049770662932886748496648378203080158996779263038069655879373918323085928512634655018404120209115327959464172925377321579885001477076852316553854680326457020680486085691412521478810015012347577976459426309454631269779134088607580760821759424800011202159501729770639806840208907255025847766912000011983406786066456246596791931913534568806900852022531442088313954956746249756986307093245594407729619901550650848000293602125302573022007890779777699345350848570502506158711425170365814676585142221993728241788123082424605250098920510832744989898061450104428868395100042560023253474365966493814025689739770535870886350957451840375845753262972170234695675857452692740209542831534711581119599505596428050816059589243146421643946419287728911199395014980187889126249985408076841491080536703927665621348200396377519925722813652430390749879006395830216143289753805160601139588756270533409832558010965153154320041389202007023775688049423572573106903752765380101147926708048783807859911805372317483054561669902935219407908197925938026931772019825051452453070167556119934117694682715185416129040256655497940000027338418082782286999684635094024589307919159148252845487655281431687847211446926338641710305381518640951174582619347218924668894237251236062453326179742258709771408478591589506037169704965808592702805827554321509004195464355893829642560589938155676012749676302899685661390784071315524878861299297377359059283953939235574752202383336685514117859441086439226448670559606506334248604361749041855849940635661860132726360832354982799550508747653425421824224368891092689013728799489749693966498602099112672018935485819051615471225534871551407596775393704684889013676124867787694861813147715804132712966724062560436887934293536768112115342988968745804416833618541158572733295876276066358140192563091375871832595238098350395537894542353154428555026137643890376226205140391217753207513581973690779392731884722386404522204526092398874657687767496928169034136978590178536442704270070200058169973178007885213158293934353660980109495349719817991960187124151779153758604801852205241549687750805073088996165756881951871041019372566937123909238582547824496135261339141330093244649286876975064972512662800118845513399535072205368680775674167837372632097569038574718523035383284316611694573743605532334268659831932548019851687250512217196310837799983155082048714763344474702184148795176569883787731437613798923744066285687602627834609842324569549324942417372938613659500600297794894367679287929876575138627433179933602664967394839116261792282424324646327285766270965786773910576731950867227079278583958227993356197012123560099415824342513016717929722442470765238797988097782933398405211162370301033336274347822565445020865545849811983996530480062887319343324500646649087665099007331530616395622934013371985385715964767351274783591958806394063633175177092635084522206521985648760044199050382821947333956560351317898388579964765666922902202301541815849155980634403338653680915504798829968790719515396790095629881292876921213720640365583051907413748216118414817665678362001581168703335029217387998487789841128670873713111714365714429040684420318874656998529101532454708865359731527111005229784593761106206611249453909425199936899643671388891231639751533304240270477869902141944889500003453434467124897259142929175078582930314371938886491880324863233942647412205151938065490981407381739271671827382286196676000065200709815330746382784972751211184812140417682191823725826925118795355180780994301104087918340690903752309708162582960650048563067107494364636864438785396951604917989659835423396484201918059257449886945843686154185109789014764028783458075213103428938459714403369419206767430124873455242268215443897899343132295569088195898683137503414900139754058544085633283437540515205253863158261976659438167823189032716103342090498096599899751399700756709254371936021442915679264704529434190687842547339831447403440699794940612901838027580591287639293019044963263611712108644869094520028409001979337175758817685697880618367142347288560871558120791434884788465911824115628591619779249399094784254267038992626324016339730261789141984271102326023130688691288478938804519251634905771289128374330285521725533167155849654988583961602135244403085398667972992198998690638648895455318675558217473615209596952038442609158230033851260085258921871466219754915687326028233327493132309942000713692233537542225715287736566035958980878701134567209560765614129995154821299341344868693034915568973008003202423944525929724644054181485761333670781136487001110095689776701657245203604417066912187635764711372791533011827284801680946878539941027376355586148592822627550911093146465326006266596045307480035023819557675467427368067005309221208891125945564280261513730976106135000443635430527115316010205643734107912133436543428326032959115168299506377997247745507005846461765607527769250958751343099654121798483052053391908686679949398616419270755935294263491937762411058174637153316224416129646207695873455848901491808867996980239940485078447032910892889550773017265956052988118535686859859284547026631749902479762028256361132510583633356508524514594515224629867062129161471753383624594290696706685512171461196882711514584871366712803888997256531676260804324736995758930456589463352883343133224202562720483815754396509726388149116428840665810559839353014632984058353767393628944703854125396110435521016542238338427991684748936472566643169044292421209092415792162977920686053116799669202698377526931603728631149833873822073569088916577019661307712970392522777872638798760047975846016332668135389275594953245871742471993239807631213195324176905505511326778768226053366125838340672834817991735827119637374192125240598630329946023990354274981571834349777559026683483366152782572580359792298965609300743756611251881335557624902133703380960545183837122275038728840881175919280471260093843838947241558247383098324705278133409801854065065122138036769157543051194175538315549908626152487556072742407610329723790457895550596617123058601963234490428629013177606373405211459897915911675150260171154421668007236883513935655418055818733447325992955198021461245124355502573797237812078768761979725795434178989578356311566787185040710129847345110393132731552307440507048131497918638139369818555632496047282850123280821546142493372195477811787744493917662890396068097626619620519569674114251643828954671633376876416590725269838769877582505458355173257832284988337631354450117056787174249629313187437142392390313820354866347375193625979897641148438729650462537904234718597174554083803557234423115122845372228453057826913819279064640299747145459861602426401596705158865160807889496075899716680366295151362318146084999603568773644198783847715643924421257766779617338827119459626889638026942791270681320220223349963556975705467848140633324840878960052876639856953554880910803210697716701439746186592271849889477769171010627140403493630913482233218655292526014266919511708515393279464535167651657596416793933549061855816612988164488694625062899714151813328235694283993856844278094888588069190824156637742694753174123813588749769112364312937656131782518527018055613755138984259655209913658322225488683999548210544992090436823399934120846531695133966590605295649246679668197168285651730360855343658407876870617822038497035052696965825122942664175371270467662709299624811929988789947546638233613787604091962072554367437298427450228881149479848716881623433013161256579632023910593902634277436266087217442960467244397767276939770349822800677652768318208827951432733363509193743372748211752651263502056096563091343556969132599345893857006284440173310760414810763507220901585996245119411749428805512023778641544657018154895394823156546008255003959665126353756657423454465926954495564048348572843701829386278619313834540400654016476641273437901708786520857861570667827609018779118084169242273574746575991673142059529290708621247823460310473190792654032039964802796531740339346743888351361375035686286910062282217878337294649592834154843521115250135562127982208615041144462233051057962674348434728442416892286275823188967887810324396642430615483506222070307131048212905102119622744864558236974381304030050777655636853618407797496754987477783658087590479731367136710828672466037464169120673760348491817959946895945134068911838871369303074409917203266242817515762267468628075236740402338485149605416182574655274669643377847414861830674615138970127403338373330645389697318870379107075600868643094042560020812763869417787447304050194121054001550640722700375107218020502082440673544295463848886365598724379044751576430161452003142787704838100261700689915513230877714066307641808928958929560310286392446072240898646951381233507443966298272038825071902464011520042649654310296681482612498420711080615384688581131259642921624768093995612151608872109046873666486494801790804748090993071402363120414853188266067592254801749798962173172986183457294013098185641090355080738711351766564582514098871682561341856302847501605034758927767760610056049010629601973852106824385944159654544169597936627928613671903882076994296724484323058606070007288764224447728086442083289697327374563355014221833836419370530787584765106498760492455227168847134739329287102715482324167206160895985919117980258365279808815686847041811437862946757050800060712962851474011847624527939401686216673316967033325880483489707476667825233714344093556337098770776368586009682223655750100410935264823717393574299151384614884356014776817214320630006657792544339014787968105082439707787721495687789576487559025492435359944630151968843092913043435411502202926418063498978070285812978920699603570858657805811714899112371665316563455249374968005083782241073458176681005712853775644269328511214873729320990270861565343639979291484464020492457334320514938054703713710744943227710233927505484567370935022235779971155542614164701296207800157655525265566950043109970685552768272992348015267294789411986291442218419303943104071089247057591014084258544506254632716133744543187445882025410382675608667568534559553027498393437232070497201511912172022828226338570602644301717798671426206397358111428880465353093217015823547822120970783655940685730140424879722822115874465407588374877878520110594982686332402828471790506649964640128438483308660000607757622418360274441397753085140165907105210248888910033162395267248132858458318113867967350670359336468726043281758544261262728020206522019427676897298354790699451444572042575706433856029660634707393389440554801495501843359928621823078343120480042596055546216932350968173764346577699190105078412690541366426146426143935050862875422730074305634808442440948352096506374058809503146294958392541888775181174478078464607821079471080151409576114493888651575880796309487501907329859397808309397490235724412618328250435427839556632343586093063127869816991508346409062645012535570343618461632808875846551301957293453232082666568881264393407200992066924031412162515076928141464362133257105029480060077834642971793223583979391828607494148083215349008092628703857394334156273119069812657807294523662498242486924148908945544701915870711337492551425063743096471841974727530061267743832722371859260603042981524820849503362350826769991450657667940786984748563987946378581523937424289605065790179765045908931903111346906181287682778022182763423622796856384396069604383116592128082416593282383719137092020435775662585718820678587672514104727562729506039708466504609992351462603671913940827651976465180834647314118631645039131311103163591386731973982069349016862321416756414234003448965847502988278162468485812097279024995487729462283808579747623945307880413434022280251503085225731961174223976881809627381962054452048473339130445394711845756249747353119792473488348833406796742447928451768219313015542400688790351381727130419466603570628414488199543698602886243045661194902896077956580069633186075092173760184472264864706710980004775917185450150086159741678273503047700846483152130769483213915224006297321645690440715512980620511251428619187462137598131638814786046012579057152951848540934406351056060378197678635511386799588551439196610880758261895196376457595519380185764912346620815730410990818119709848436521144649636555622727927146620140376203955619602255092403628854961172504431096238253819315770786980947895840515650680233606276057055630586412066484335940965652443846223514480282258519572967671009719528087669224928497134527644981658308929557981590122570175037358307500571905241661321051959143764321939096611184213318526476789602325848867096941640076130787826766467378651176247813728702022015570957083023674362693335929516464170677879114943437352426340595855006774176417377939121625682683251733837205727097988107126670640051520618384678711864674832822882837651269318477121471843483509138279837797821726693017063763775656585787210783959126795914549993685825838063041418339013900870744570507873224749683309291399517606690142913631253149949787952540646636638780701712493063818461149472594401877907174389670180106875726677526187920899844531729972449943345645791429986391184635498973732715960305951681193514092311651045986324512744359915814881672419521845346768115945594535510783967902063173243723130393529592140618317191819900149731394961360700022200463454896316033953902570738096421251330671895755986681444707800703599044613883449796687976813047706129045154553260684565927440262417223745399069454744743465515255910284662606897214600296454976712180714069533141532101288624505633090070346384489840857828780593375880439468494971581018491288947880266265758519827582968978200905493467166333685573801365453862202514201958325822717403546764859403609954094815963722083177160987967433588594083895219154333812699720309319842837253130996497198571797570116936827844633319585882218028158426190753680876416311456996351108715318794873577963653897101519846353478702640473075030000037608035112471855022154206591251227904722303397174391024875682410636691001841792691431665494882066596965327736942354398115303954096907410862806624387929790343029750666001014352118763095734773346730657098938055964479240353137054786298373346917018150077722561681501527912162365369091688608808960947189137903796371085370174510947470561734528796930641591376632874871458000996896286590420785686121083333065636320057368222497245250671154347561056910323784301261755078737047048243322354878972281553691363299182081307589171876409732972837190240452190199272439959190273684431954868519127534595544081521445750364840537836426528758531888115172915721450275906860927668032763158473021760285020738364000789278253526156788542121271647774070690372500611043468558654334155520555690957242812701257467350929639560699994087820419149556609097043454726336684518834867215712767587586632242144195089958471359199707123208573624473459182258453584337095042243427886584876073438173143190550956946000184514559879176089916349388773415514508981205837019697808377816967747548480316402441741818656835261008619815757375137631416334311484675122023850639284002623375483853940033548535426154007457879572247659515635360929572068262965677135133022355857641764143962583020184929077823664113852118858428240054249420333643522871881527694744292425964843291566235558162863382187320852395768793284725095909491147081015019322595716626535481131737992383217960986198190790509806030291843685071634396539849858341732117369476369437311024070763765220744681412074677556141882905986372396177193219365418431679998099991274780660292927995141518039242882760129988483691583133932391666941443565890445107479020867314457282617306146484994729422181571782425190187654478351013849828173580805059936578180402003630497967824352071923781664876577659268302408399558507211958936797895931499397610758044798362662201302524177667377682175652295032482573894379667287240749335633111176445221558836866057058499630606548982316781953485629712307106029038856272656711982811228620632027620573428553111699105718295178040411586683055233420434837003488133253657023234435224189553408020907486265351313033636076221402838934801684893005648657240125052744497067028749514738170024632522702220131476605035790003741079295494969847264298553777283412290918008684633377893765255671805130676419473828469977139318920357078017079995508297098144082537633764971483303410294225852129073381206008287228558780263671639056357419212807086690546999744714446765919936144006543980051317940933431660697139883414950084508772138001766002927026649569015170767001877230825281858900428668676889965885084050755060582528426632147121575977115996510668884908122756858116430984604740543781370406833661192665910694230230285678335555912898722312058713534545551132081972393462126338202847326072341324607463418491983480964857675082839861977091122321186916668038226763901147720182031992182194165187610125693045927940397738066424179575560995754708849909896390318034631881979891099195643732116494614881726008902328707741177957908919851694875292645733072686412723918478341551553673082755894965945851070925960140284533368007391888160847001520546096485563344688726176139125918475934477704963751275022014068903298501517651845547009003354827209609338002351632056863245526173447721707542204934254700604443076647862103681162654885106797527762773627824311316839891849171127180116218478580160744451603294683762458933386573914528786924937348902584052725756609004415869179082853453689078232770037608507265696671602767392895426315611670998251163101980034765758511645344016983702764046036855241017661680292709660849732660905721073932757002514290823660153711801237995538742563169612033929237766904450296812473491441853437415334395645460035969446149981910695556858240513307836035706183506388610393166744864218134548768545094004190324048086420532742655093523333740671736865582767997719263934499213910136494443243638494336667332510004376439733359911335460672528962004032359471451055846421664408962601121886631414293020463074539693578727496316876070918517986584961861053448696466966892562146413416741185556351115604376675847409350916457992302367888396125794799790492385054747265724439149945199002380508773546628205837170840655162472340644212185010870771222437790913336413780879182915950136299824620250150933720465434550534467751346027011919565620604572624726507201190045757368331323458628959079471689627652167927177832374368966789442332972880926455705553671554710455625815281863490390705383080487652877756324357536443074926943611347378312048430543439884469388100452250503732275381000945811753180810287267757897642428325073554278842019853079496467655307855248370797308733414379890182936292552420534286808871027672514125106113546687625962417735419553827456336909487716538662721810879906556550353262252375491572982834808887546869608699741958739780051534473137378406104966864847436583360123168552830136897393668197911348564291068838971298364639171987545483718512528259315131289342721752185128275846738448736812660345143823962042780986776603103290705693856704928513946107027295781659873231113948182867334308541023152930974920877815640368166088920969498156113386135847504862512987408284423177134253385220306092618397124844572240827213387445056732146709745272494948325523027402553269040816370237897925377363488532063621141244345768401253864409420154285815158681403214822907890809830430473974663946411988092472313251690920656562388756617119551647673775112437271085993465898683483466104511673298545048637122833601780860610651266612676634741746045739979114935996181733160102681513746878040478447341337792242485086461452208123393322724736063093989686850566621322484572814481410184043364082431569761809328967104873702901787347914669053641698395544285205197649004003823121627504659497398858079398995961478128901809845943077983853420450355521842362103261478081193303138175651914917543570554422566851432310161516338677255914785170751379364993094265888510505288654749833537518138301155298525470104609661493601718162817680210136202131263696903113552185551597638338467498311127982214887403231475759077774262491268342644636276301469382393924887630993326459855236898688395506104554541012592120373832463598011545857646192281357078375636981222467533554606249727464934461470176168009149972679776991871800517058428971671679430506887984746319583820875032725866791048718953987228969768217056405087157150348327935996178204686153810469645880186981888369887629093361919519489177593438898618978758793208642838815089169775283625163875958542069046378795986898193027355314793534407203192036374446064898731632250652048751321925784258859916296433628738284301063915730043598343124751888341777684436218309002178530232410535470744151099219561976881916385348830068262541884025081219194114179429905505799810079875268760538207651299308448351759281211994935368918564900696522904172086029446410473583690362668476576116938540963718587729073728016416757196912347759575465000404108436663763876012933978179733420431154507402246072909856699039932897666085847629392674407911757389605163766713399342091286140825353682685727632649638857656516105734604013795633319164519952515569870114325256689787644389401975580606170005838269951038106610656809163216946215644582079623642124751577771152274508366961072439340010723586931237388671554387120967046063152120479115258364789334631862210465376084023339040216860926745575303296017486935855179879080507222782078474583816877260563794536727793149509724276916604930262147124308678974496608038888144885609171692997791461877632102338121503367209896260197524481159148705120619568289914079314709523703820475076032707611275251665104948616548646546345633024477402506141201080055197607606450577168245926397190856068512865797499980463965422712081381081553705383625757322822526320120025015880062717883124375343046904624045577369473252541919973224349795250882267679523805358631891231986391061279629988995413695521794691597749417322143739433723027715970540381675424997463367753868658794607904884765476444245952522774705681225678240519177016711438935716943817369794170809769758428870180947754936692936640204271825205591684646956788479587449461385315159870674300267954364130971681840437041951841083080933810441496188715596154323542305529493812631939424512209385286966946615836640494012753899688798265079475736519306796489738234083599610418846071217074485666341438052205838558137887753003335524760527367682314565153563268382378208691255495328932352578833415015681922904069004081897981198232642931046546630522111214460014424456750096951830811999223129165966674347626607434551706457714072830391473236117182682789459068643929312561559487402861497027767314989273821139894875273941905685660112297934575628437674139459219744138847124352306337978030608817360635554204223543076043954100471786940573495846132987237547055745780419841467828618255902872946853498849531757096009976766570760973525945813684001720303322136945638899793002902759558754420560982833413926124557387138910956054371062638834766659852218010470550942486044609341319144386011980711727952201093023343973528644997247578053576977885718772593912176344621174901564744274377260559789877888570088269037091979192102825432563456976069620829688988792775310661327862689771121535316675152275213641681919019281455209609452919838282659997360074572453975515183914839275535680435029713141360048275928216087091038306242743942682809160392884151903665717068161066619407156323750947010048390331109951779327123547675207980148282789927495359621450244598746479781503241193791951412074575874808430699243596270860905025013792594952849826156184959712664276253051584924720263737514463287924849995635616866789641871306554719547717499384626658311024218855791534876481355177697961036579639600971616670266981035550699071922263483520818317961913068695498980732006769704608703647279448865181061084998505044880025380623916596002887229088564920230206846228510371054317679825557278553996474177898612398066107705703040595327746109325389635978006873229463704097137114236977338337679735358621861204118231906082809703792483397509157279725083499744669771626787256696957708500941733333178912750344957896822426643935283891310086616823479482497474282036858315191054679117366935263518236939386495267392869837104217297458266210050913452143332043363311608654427682012713585070916666599472329433720086265991953767992613403229402900788117195795320230482376904876309299218461331170963507320729241550676270950061532334104008838591926274845888811430478705831652380285339988785838112664086424492185582035566726334680052918945206744369214605441471684745614862387363987905035571280389806181966684302554990463041411221544136206950509155499045454998762798716951947934193923217248431434490182471391929173115872079988999284912918040055300639914761801369386941803252145145934557860984374984015213736865829577651147475190977447454089635781608726054905979594525465177776711990972151698267826403166903650020022218441064350888657942133976989419782389499476652369304727821645486832755277179349624876732082922600010643091221454360287787942492155733689120053137008393343801367806748271065879367527470191883108475760560119998083106033055414046304366345576817762754479203507066113316473154529885562923467900125338220214096225912911452206841872186306739447206161798152771725612634152788786292648768338118623964178750953970434844634408264187333258397616789097050021301687771194051764128812931631471069519715394067462351739601477751616014825637293882679067731762909033085143048986702963492934086301552782162486632558067199785605786790062073198265710967744374594835999439852200200288466477129752914159097125203812328234848854740465717512828282254926312364237807782984682917934325454656842100540460672902235038591672913834508670385540064753490109975957628260159323213021669187358457312497040327532530787632425892823167619831444006093993462545478173035342818034023819317285661730987148784394244588713788605214405127604435357521398957537629950719264024094136043518688891446675319787085440537325967591852340975591631388039351414788926589845115498760617263151324425944449707841417054088555048033090321556210051840292307497687492896381201392937670710656601309724753511655150477660771795381506108100251652809562279287566041969339283322145822925541373488602981908940669759307743866552749842866905153522031610110953387849811841518840814548581287232935146374087610169526571884947335861982201610597775160698879699198776960986354432369329679156446889049864538185425346261846347043878409162945298890770521989679770507369055264730460452653718578708528594215266380156730648245667471514233636297542727063550992270060751833814325947486947266700740048556044058975624286730540862865167804688694238713877223436712911220583691848674265747950477515682197041243559961108054672345958275000342926563225344284081561801541304884347198499474159655512146974347716154200870071426403364065823050971287326804181925470898513071841325407157636669153704870866456635392595050119635988126580584588121445656805596952469622428151708186712369659795285523361301678732270268157735054486881873085390306420226401125576866733653790310642586917269226926397103187106142719762935965969540532729925900890040426640369866166222425084059479098476165051939187732580140038639902933584647487871460517596748010497145154456348192160508290329197721184793567020656140915076633540912990725121352397107351563686016872054185148490597545242343663211630969866371400679219152313270872438092393013722316850790875063189463344400005854232046857837243166019744208136722940937836949323838136419627550952877958277843258456405099892758104653788405413441099644470529399391369665339981841989720356164758807162810682392330839457291701150223343673409655711416984903303797074414613477901501720361037636188342691270635413772306491865091728242539902137068346782915838237076130269972722796606443906187034459378368892724599980230429073990823646881869788405707965624646186620569283662853681584633692245712989345535028975851264962305133849457082494467702447985663671716770673583036906781016686647391380970710373248322582169282777334621688957054803843222536110666162294335439553047630056049116842406437489204190495545667123100260998813284889009027490116901445711404157208263403540793507297380379229597432647129797889153329666750986149894258431482946098388539562231444144683674630665554619695887607811296894780071872885691578912527973661069306438200271855473746965237886659839755979907841649431632313374955646970808583735315596400214739595719113167041896671440502636475179902932659124860962351185515942536752351001258125923850972838790811049602174813335498961911692973422979476130234922179676525409323616544204421587334804616940946215217641483472292734185302048262051708043233150066345804828119753937233371799993056828018042393147619780795864070641999674853528386618419693806562555101785466196447494757243988734890562921332245641743910633756107551846388348822570454981012198955883355683897550417856297522363683590162821273475161401704877202458624366015110785360794686769903063941774144228020576751772699524559150440309063838957390362519658719687865026583880972947341206856524984123496395125379742171940172650601163875741720743808501508928869484167530325864623749405505378580336414062948694626049589325333994346466072878610702529720654809992945364719827346987261263235874282936518699345767383078398221195108391689500188542580887119792075013115314218995749892287450303382025859237215141021289279782155177166104038525196293541180185074992429902480624141399581159721361153342577279984586192149157892391075397808088415411188496866372069662035041002619015412669239422183644335454677277730992255773574203672734229434613976866279776928184158353528217343463220885185210604461377547205003348471921473890275611131006618083740012388406315485919348142375937084213461638426405791726046203310095876791006926352354348843725842154429157338840059788375571792791681513666597886913203457501318828234828038042694373439453690755054208108837717698203151462049836722186918121974759875561468155210409084662258146923464225434446005968156852410628835217917926241109212121940464726314162357330468751130506225148135589831289626012992353427951334444597354095056219007683070158182586975681676170323257431443105842070442137323487845935680046324792389273567300953813869657302924434579468708574346318634472490427278755884313693383413008471277113698807440558259968544542659801582803432185910596556220940641754249237027655754476858338956345534402588711320391666075710688169838243947762229523222688508212322792850611404672731530685037700004154150817427265133531506621905792989643462850825456696559327153654362189300556682334348125967638818075934584037457219034154898396232154778222240587240861867783950771393531772577742883320861478653484154598576391596097775948469144233438088396854346692258055023030419578706612405331587513121755032633142304544588239704134025127902817315944390288577742444162381794533245764764850673462568695829165161898618185462139258562954776017885496465312884257403751310780028034936390364786232381157714032410241073691277613103977134123653324354784758573443559320292890371513882551810807069373258121998243566160631201988912815851989163195644532542658761896682003766438497654210643362709107658838315615965580490237782705899559509886965471244112432317011119438884966099626779630755358728726929550508354173713394322316425483754268211017534887845514143877506294697784191684482909121509421972974950824971129783758013821073559936275763772072263646849564951842238845394168558589639646904490676200351783216518286814993690202959013318471132127038503621177857179949077359153638802314079830230717575942280751439348011559048709374697349294986656548859739711978443828481003738657891570802700187085002149906504705516302093305019876905743572669314652662626368867674116577666301440386219212208861873920431840676514094353104001921456771055529176939000683542736005336331804594186484117928941403142835083974163541260358437840346657803632920723980027985083215449572090880253889419291611926112338812647727725039873044883245728327248482247632941346622406866059286488191927408084318828742995533666900539325948990921036870356134159198842274563558664395886957285544966064423760236249035743481480195883180030092287826899165205460726907547041168657845073399829178443499168360726474692619159777791049291326105824141809374661315235045647241769700754649097481082851971859520531509446464051547353691396350863737244157656607624322790447919148566402691225835684113576477038165604212133408202286928852591481387469616458115554438264989002819490751600176700311256349099835808158252488466829951418238956415550687326393608996359017400180635232484174889045263052284563898761981244552278813852010188563565772413320624334728995596176155155338214971387988733147285312668057710736955860674995742170233160999646462517575790936786576791037710685243636297709491780647956068940882950014892319191996542630492366917498373521584306549598740951453080726590014912598492016353888601661242689816628305380439470447207805225810633861148586832849005206729067461058911086634223797467808132966791301018838357805791241364172196064572300294400983037223453270335694055126025493654788401242467928407988287090333855376537655654325985152223919172143431604803100118376968125529202300349244809633169935978813220958402044234742127690676088990116197289795073131412725160242409022620646269750892119645880225057271143209063455557092665417091972469363236951048805765292308959267775502346334875383490664080367918692391218793890360369682545911666073104371445218444154450482159302888283572714347661607312029262298143661028834606704644141053151819802119728245191679397413690995077784386417367978448128195020133056373853885580115711541408639280653234010925167536724966984546390996041065852831323613680151294627389128947874958834123214272983608633445378364633294968995577216913119430577493369184549760508770491528485698282609465357629516066193365059071941474241349455018742511052846403236742772872285435706151012276952580211694230129762588625722253211036116990194914000713327998021760513300175014223115926392950846080078421467180431090743924963621298757630244455582091160957540202325923677440244487030313439523683783216300821873473272496398916077326229859949524024765874859515144626946582030370423886791410922061791936441001103342163542680219102628499365693083401580309478463741284957774232682472232972122575143499901757798737244897515526965275263383084348824415813260951549552983243504006208200573270694743418652497600220892541017780583732605219718352735830464720020468506365562423773328239949253348075290171323868401894737015160108374321701297706832917912771737250171046184875361554949943521850841907821358109283944771196422088024185782710278730258115103290857702032822993121524518035043756760673080514772495446986847779219850866252971259860286477270754388811754630571396652347666810500479442487128886153417522129821199629742541565583710200176535441370094919378165998853889670416787814832708302523978383097733049108838397109675171831755376305119823934033200938755868377560513480683615881976517882591035564706896440347125298884031118919272354518068693666752741073727422692622804447547942900069523550567982190358599692716879452907256223207409409708471681568366247995813806135821897279848455947504419737513771893540221488356702406005817863899942623684984903208181446418348578381280703649535759917655528313118625975933927148670053787121369391637977068322254794020120642590512722694296352227954600068910089329610392005447835428282420918338269213464487998170398399640749992352382392053618715852524548887675522264735228554580552400012280609644508704422209988391768042293674434010190091028971503806292210729721944096948821619919108125718375728997502559489349753032802290195850048527290755388181800709294489787332404825501386661138212272310057344315328566152161996962719649429430320657663982434652002603359335109464451058947026584386147675056501312030340791576616726300092032732551969419443340926416617139157885386972438474671605311234473932771201678691925046339495357918893508737550414864934920750451836943869141111443193418631372090627706533722906211092322761350108928251598752392673308193543107299544395290025568261603983602242754410552629622092869402217888446281109934089907063129054136252489744924418739261434222360488134893411400995221519892550800704325276404562526566559337838073282269390248574841462256202420683897173426990454567857424953178905942840339449296015451116887402599146674673686595923242818833141769257803021249648632561192856031127455634198106214717401997379399432005022013484505608641846453673368023567245097334728461534336542715898285484988130629138658464456197847607294165008756990817457445845921928575784745492356086991707848135054227142080458089305772934977267727838992667831355293941131030753581355548171743390164800757138120023116504721081924408529265874900971795422933365944433859703583619840443311748606290153656770726739231019166159234759864221624085439738292054322372951771473504346570993127840614544067941632357285956830089240785350449839672215637610821982673422217569535669102665645986699261797692869887480196226291428844913080723452304063327666597282149574428359655963741882902659537901240922635007668540453441808706322363672819019313964387907069119265809582913133207115938803805741600770427780457171593852270636547152260421295108567284532476565530162339836467250504755998397918144011634717662972399638637449813614446951652896555464670947352311925733074400454154233472791569223496012742089425694881082992350912350408002095096363275303640821395666914323831503748855263696761946626177608640658859055017142398896342736454287995542053986210350901442142842594462969393187192160747385609007404849609092689155200397173843082419212264901677320562402409631089051096714649789587551594714266990492673722840682254502162290962259057067086065416910968499601789371681507659131774860738962364417380382323273673746946973727375061993254515635232252697785181084122420696548472697821098181716278695521505138075836580578808115080139589897125989530015764083245471507112727082042796586503357963401895668705807437502256080947834715421085620698965671552818259185401296490095627296759003034469688796532588877510891387751038399328234618681444343272227891489934104356077543352885004209104902296851373278035644999512766897177791159206166352987235976898781413739148562282485954383044853795343331884477740510143058678701390557971097463584855937662738941514837018520007929585089037879315092244611869805278466243846007398455449516730544769252844746663025953856618379981538937806744438184602737181875468556234029405399343813557770833642661593542011294418423353134423094466342763930545133532701252256386144816283004130242718270549265918220690069304580410861105264681438300091601184019297647461679486870982712935358404579426056461733722801112539944498016331857344333785031523998978739876316694078296811373655692719603750836519710502317760295771963414971737543301311071993096601007911113278010722684214836397911009852262572826559146222843305380111194638785675092972289549226471240021595990124536889622841798164701614619182361078008992086223168257723239483610140414682383545817332731520737368677127902799032046902163763090904248339438179196652632197860820853203838655050981332178250641081997224342625455128951988956553099307260304828164304849838187199312197784176129700146946451816895670771628233247142617893170038644772739544006254637773493713977291295600047698756953167291263249456026163585111994909969299250610105618049856562144218690163030234579750298528424968104527970869931512654810889644756576746444070935064607182248272481837182969967034870501648208487528768989923772177555480374259700719845548003412628851343258337777767033982284511517894025333279534804062491451956740324566967836673345521167750052917876711965580265956445465905829588718401674338072361275229477363743056499496740623023752457383299587261176005827765115502101955819203623820274978648592473073374618405736708628763282920776855469440275574183928060532744435951928259363686897688954944488392017650267456704364528445244518663529885921242705858932371735644216110270314458192013514837363009051974593224696824830435826370517564728882472917366938147258129732044729115487715073451636490670071210030096160791738444119227371679470658361122601998535497928322322990503823573117103496425339767679793267804712030009286616429840970280621618611865644317168086148259567754378747103333186574991772998735176644515263627821747003621889455773661202256524500611302405970762455565182915554789789400425032101934103642617470898850374397541829081952189925953848515546561038251289001278860437731555641576954754104769624821564403488272850233164483629686680335456956281014614796641727341375138796644102804889305865781573088782515517367815716832751063784005786433822878916516777402116442852957275204469221696574758139573460853677147746375273204910201941318702426129161748675377623205273264014320588462791075237144720626842261671580536921791922801053682895816449399638465556035288418252100544227970943947116252923342564751604190071803720911687320900228978602359151418551178634988719141224765092371905160673722257616502294402167326987305115590513579029603603644639974148473746351447666590218929680354188454174287964550168610864445845705714381614496618735089741712118967450253836158541231422752131897654140129257159960384520398055254040157564015038527597757039571023276940103452017524256680077115062530230049048448628722104872974559778651902194017276192204022447084451922753032518036821655690607369068303659124210835043984707092627976048810620499073036484059793737387187090580284859635953645121633493718413670280323421123246233748836278605212846557119168265601495166691958349058738687143811441909778001578738673933003364115897278744565917426041805625293227031309326461037767138671671969145645245845837691798593205187801128046198113690677421302266430879892588752565046044463098367353400901102046409689571430755787894766604555023750101652671260312094831078514520264755139276241312915553026536114470168114890946366248096991043970403086592402012408458261605816096108568375006536719242179321168131855152121877000891500060961981647170577513122401571973573681510405119173307772984696920763728586516123052587589061522039014388283229869010562724696540471768469052386148526185394034589380488015737834850250356505150877352189956451041085279241996398841749884918482498263516744864572639707977123779958600951323501876809401550296808408710596467043223295002000461863968082189591928978041083619029283123737478902922581528822846210398817043423392315114254843306067662255938011604437839677896254338130666861201821029064298506711157600184403775442361678708816105802349536116599226510352360448797373808321478124384087650952327964311277076705393205197695459163243175818547827622325279170616756935540192680970288104920935263645908333384054164548168128746850611925700870136842695337991595226387351727820107491723848763209243760321812035050572817877574667692968620926926600975051432842324859006371625818877475335021438582655549862941230893266235566545454107054295429510079484497590765130573418932964228668825463659713304238778830117632590151298124422826381875609758629458169786075974560726508991334580637617552377352278423581267388404530806077721923010495518020366322202026272479986110180381748640584848226581673023946736235277254146187863838791672825118614745657489023894989971856389850258287198410223508728105623905030058470253408771323520893923944854937226873883668724671756956739014697309046845680826485684359938770090336956621848999876008138160578332731834710056016451469976193267304495560282289430744949710634397057597590108512208371334497009463527963433132022931712660830583754007712678952513380811443545725343943683459892929962984334164876811717064021985038250509516966299934289855525294593406339791848802057913793442041754446549224983166991040806306002833777338013833249270875550136341111498808086509822893252465585729726337639969980520284484822767593676180539496894230902292312795708504644697392169935006117806340343303032357670409748297908899602846998880082490955841299550037971894852534678634157442192806006610873714703522460989351925310970580624492693390410590822432490922061481262406146777954822233269250784724519570845599917763423886228623911444915376809773003706424680192432770983851804875005077132894355249809817311712668245997240107486400388336618254143251934838858978131312706540323151257699323255960695423965051059210898728489043271620961307995403809826055182567172928302670373816072380980275148563055169965343593391213507562024528092490955655794195338012603835671948410825802374355574395958667493282922536603087391078690831268060890794182665855166316665269724710427546851073195582885521450473801394777982862845611715132802723836852524300177835634419783027161263965536244705103424235172567026569769718344384259630908194736912321488503943639071116771583087246045163343629266879544120959664727082974340433571346494970786122763370315535687729686889889178769156735574311919863686079643155122978293654731186221811673182875061889252403760636146319185643815048231871061074604069323462457947219930821365093083722719953432560771199312944140356938875245820853198286454613933017463636141151322887530444973357425969833279530230418092325122089473514631918422806033876204251157148826606720841267112800604279671911616127693414464447080142407805346576236100037547670928040250871324860323653424578306010737610176691249220076588338970649037669618927155012357586177089155905964760190512711486248980805932644695252653332813742327250295505787872053458742710906414763539947934887350801896864939718649066515123893228233380453037499850453323274962126610083017792378128923923442083543268597656731019573769712165839743435107851430794816138493178069112604678166072819982944585590771281765750344367612105388621492021410436341253451017383683698580539381786303590794882909977844208864372177080653593241559457696330635758470025834927485605817671163487683466985645113915598034942902700266840447971147271196196658209707752051777236885739673528659158813988005316435179545978277319726858744577578910424753651989419933439987622641546807833888404848026747483389926856258056945297390610278021077510238228844691967642999815249942124428881372115833803625483583608317987620610248857278200748283719868449134268791920196343061800824011454302276740009221696569690288840943729701820425932672895702474517801877976799704057093302149060823121223848146074849687650312740166391195908836167247498676599460794125743549246968504016279544284005077473140656411567324075854830037962068892380211881065595125456911959938259736454880155457263473517542356102659136762217470129919193586268040599268664703782467639907335649000291890506244345246526981954574895031788521634714287964086625001787728045204615642888305882198432652891600086545128052094819997568780513471497691342772042295427328077672880985366858368992477593179434819209712836495222034747666154402613144547869858340561049654881615740519566287588699682087613486689600993171516299240826088585659788144818673513242883751254483329208606504581514634357670824058628439514651051811006880896386702195203627255840254613825348073327898070036492114449059537886905912867357149700604011723556680766535577982447059592178917401613405302519618955731623497682765272786548824811331095302915196472278617353921811099611119652157322706842742325010155275722859950986751197155580802220625113817968266288548712904611016326759342903093844348296237237317693932470825826703289495503171107325842862955084491626344011073696619414358832939864805007659392237143572003434653404908055167934818301856983718195134642278578361249627104854752142575651203752396119219423858281728615558233913106075715455102793748892890437312790763861171251637535462930554220445692794902906536724414028123075333407612125325199054265062536356612713523295277372411312581551828463101813828153336305399521883372874131705849990770439303240222692589765636832142551264568885873206279748941027470655251502180916885134086212137408498268533598648139325642139107871247345296745899686939890649965009009584084398380780780353119414495184455279285556807592554773996607961159583305367528996265759504568880686795734918688329058630969133798792803097279118263792438847401465656812966077031593283654169777411942749609520492943689176504259476677518867993110991477969854915285355732048099126962113199295157643614547891202212623218559355442578421231080663295996344297585798899502690900089005538247515205290969779218252012396082378700492321148774597115829634425080372265727983584357024156418581965322681462146218708602764361301116644695860699613231114309327280639372772085816851900578364929514673390522930316288626721921531570666545282874196578932870460288384829476832258387792265384212569467745801595888116658808220589322676837215222671084569630694073043056651353324283595006172086923461120422743161485633590299505596265246924450551879206673630257413705667788807860223130055976090381940635305954577143501186300860362746162806160555342689721241694212729451341719488551860372466826432726147377901687038131405451837835744888707543742973929807808408764599739277476851867942765460939371229053227451193472887115821090170293739792634223002411798347388511081121146297461352555183452656195937075667652739513002986519166178216669662107105453030600007018772545463131773307938435782204964758083227102754101641399130894029588809865277912672141287034239462005089502155701991676842452685321670203674740201304160140425584106463785032377629659052774368070275313818120610553190711248259907026622805379676517667860318748195259555679636710468854103472205275371277965903768774279390976099078295360238614375675660377836948226745617022648562795558943294998413264349153178901498259521334764768406405818451340492250976999299192964997087776640906216200932851246919504990742451605481812703903953598759634064499141420272075814690482756587948797713092459948377261331635573451618811031054315558976391948879422923673915314634086131083781379475663797516047136568665782112614516534835281811711930601150673119977727716102416883488242889445779907493168704582064345624730747279365136167836830525174425926811048650527408496476191682908609342439595639288066602383789840434956977325398750765007760696951301641342684494784504291912363212636898889636788193798867009048160733343413142164124495731006994031699992304353344454102961956025620043102089542681091495443470229783587365347607448759411537019957269291236357807205268176596986149421052235614090653333788798511166952665669181972626800827051808555556528886122849900461712745807405218409925433468788426878248945684690589203368574307609396471141613413683697815170522310313056415637864988395714885365579061419453350294878697342134908035494939070405610886222983553482660046511074124534867006383580010682524528930609680022024648745002319366374460123737178934380261790955996502506416827435490364393539242407864908078975946538671507585051235448224181824081316469798744361951685641132430688353582652519192639486522925645106173531583971754115961316987912199286538638216173513036068935449019074145791252360097716980306631258977379192702805483884912472643000394850694814513862687597098835413856475782018014691011603321592309138659895901193797622645905681401873263806619013376735275246067879811311171207624219040538779298192344052912318317644160004282822078254625946963050391898539943323241240975915158709327248625859547609992273615719730116350525716708445129534436995685139117619263849801006034937293492482412956898267836451042386189766782548646006941056043925242696465384414497363976337470205873235267198956259696304231936999474742924288355865003390724419435484545933264533723080212231576462295642778142152094970929507027234471225549219690326010168663154935987289022164940986956285485239234697996965809852014627530333708131200130904706712544467685422554540311216926271803302719222826105902386156960159876080014873913072153076249278872803630846045236152860612055071607172075869995036285337622793165616262000845073128892201552482425823058439427230235731047707264774413161895952702029176741048676407726754774657290555737195037908357184762966848472539484212317715264773790186880932819142824863646333781712470415515331984257524293645371382731479294097008813918787616883028396002513510995154728797488239525463486972646954047493515293260585330332963965157504200885397812744122337601224739763326037098226404295500759411474817237126472949549659677713120693782933061482429861574592386040269546396959726411408456140098696803634695274627874033707664503285244909643171086036440952994474477268052993023182663843940656323302072446926590930906986930196470547526037247108745681472939004352577866122498539880681609908269782068367922176346147194001716181339156470841895734203762413199513604796469556669862535238837780421764704208581515776937561313757382194425811821403101999594382978879733015151469574733708907084949666388195408724849044648956336787424560258042269584838651248502262442717916557543016292726341098171075913089834646836848552151088431384007477451803162943900814883171593679767822823223908389834988288383798898725587095313105170129984010516978883516718246654064744162157129646603325160212331963468365676954094448168139863566537072296573793070526944347795290501756569314776769224428445707857792497669055532454491407247695197048167291051740865769938848536367475613621627892756046295408930297233076019690502422738642442783455289764912301698606268190463259815030009261096172251894308029715839253125595367570080891759923083162789588292033592225827214712225574628910390873454991798613498450333890600153006885285646129775635592307421135938339021665737391903086545527952248941606798526840410480368075020038555281772421988735757422128049621716291255271196409126700492963840102378743730069100706681596821110831953557368665430358538052206607036550367454298584876448145775690252188999916854753526830551244513539251160312892949263301486981568134161006751388245711615641637119987654194492068980053713864285556084294864628550939133695282851447741035284750028991514681024928603362392900363854558562364005892083150058956399341925732063539067352745390141124792625020891613621310136780955295008298726673233028172453241884179265189851254321725722692254032513695305991883172409980645375678102936128142694306873722114469358978781068624063197314167215734324875304389878483199205494628211210587899653137132472158205192158963013353808806217294283399917657870993252753997172223475325507177125847801575823042711176467686733813451771963934136837943663540332169689939729145397832497691495811767850362255597029572130809648349528878399283298347293853604346679041248946847139859366112242514608521009023119731863746559928139308929672233115654746125893929113208816904341791288802237596085513050750353554812328036608816376013757979631405263051364532468352487653991253827827641988673645976483084859819692841390603322456135163236265334248244159157000367065618275703943466570750708484866516312170031959683111682358983684627291275522914966937896749510483921759600212564859641921765209112828573003743606049073836280357421585102260494960515364168486724024519157240297200108345883523585446933683546732775602276948118177845397431195629570966425378351610438975231735795089376548399123801372569844887670058074315830823981639048342072559353467032043090427198037921062694959150083492583738861365927689822880871543561022186504893963295510572325987578149331764124411440800756564707897877818928599405112024540732774164170512292247376570382766804705644841890594233807890853669662391132304777016758690721608995565742131991617398923478869506918076229148286992173284596224103972249572127294060273130869678287738691005348365954182073341625572422911775487067707842870532672518585469698189955195648160137061850520936028009249673293126224559097012813093928214217866269518409059384334395899949329799270308018835957528668126188443399443745184468837266910043304006107323116913600347506634527018066276589427234500028950366750517690459528008325950690187381358590799902209748396549873053416211155283279777401213406987257267947201662206545548095198022897437349219856886672309700891707219535857924950719074833627024468233138243512713848941983456100704200287041983617445514943053573449254120119850005684865568576934547778175675893667460224579497138006954762879124132192208454369440130293802657091328827134392491471236463647798459068517398797172673741936895049391095083321079935397969692630066950637409910193064565986919975197284753576668604528532788087200984494532108912501322554623838969832960819627712645578412118813549961873571180549364204437519271806670285182165446295998650400099109543301019245396428056261486295257046916866008899772405021775624280765066844883763269485081749465322374342937056208627841050508449526575032105232415503615182687832531033627024550783040491377218726698113535776184051977258841418371420201533558223062973783818343897792726040011810076128467228410362140473333024894077096273476439488740989547903293118020410508712834426886458896948014001530955506316223231212367937687233149489925636718814788802701273557147502440237327976954893178476487635618409247698570748957828136052716726785693241073845534461050309868507937894999419137924189462757306703534270195984379850608614619871834510639024398470047858269121655563943947060114576957898845697240694861177670031022003602351917338019672847966139933654131719848442428990654346098572436517140063544791841349121295067021760124412683554905719520519804927320367880147093248536643518573061323439518383510773031164209733837754761199300477337406762969428044593887437937862163592322455193727689977317663844222000784307670697984109484306286103963205900518231170114798876997667873979327586344216663673755128949523548145449418922028690473882460723915837415195754063023048094680331010449988671422682683965847195556885783819417418995012084881400405645477356759729862193210142537132339348826846015284354267615379586450003192128292861375029433293863751965514857944548750302034861048279320220168430248923156649141230378511887805547810577483368706790855997881530124646966809913311188510521458103200629165861943511100621496303350215100991512616004239829642967326423731792328814232224196981291922096373711241243020928628513473761084250124685976266155609951327872354286573625438718540185918262048726396863934579755377970274384754146293987678811208633835681623565124823613528064150758270686080592418617756795097156725102847307450571470541472108015002731119975782010974603160710072618177941927750754007335309391340223230334929317065096659460889648751554636529411790735258366310183504935386528911602318446160937991430707319724167974000013174498627214689440046907918656023889638239122023270918570519248100028941442627996542972766960661881065010008071596157021931306675325102776727604648524099142234020053514601707891398880505170720740093187759072199143384189092367291836581135968500347701505276544830040672527490368377147404274409002346239626505816333573275494066015326329890790738685180322979355103372246281895234357196907788834111747709841538777715313073266816117231493105852536607933843643709860686530097914951394366362499839788185163543438666184261962959318866354316970327045506144828859043323425916779049348959418995909214453390951187737725814162242455444792626662372829689361532385542019839305685507622875324629406585074049484544851526429890704759812601537579456451224742868079943834613843122679906624206256488884417672816894309864898731048921245274654159703479611934918549490901812305486611749195616562314196736918965640165689455104489017437699912858025012773511035115714791972058906489886225008151357569036748542890142944850595027598177610733709484822308738898793036890487473380984032740192998349576008232304979655629654889312758199778589339532785204944665636183808519639186414632341541984697275234911339872631708491066472432831135817336413634374396189500295630761393884470354714131572466813102557449296405556368268777174047541830500093139411515696982359617033265480802207108135676482263489388866539783352242394475949759162360089613035117506029042832680069692207644645654320355600147932425494186746220744665901413127111962785040432362686056862714616518364139655605930127327664646716045575056689949483417984253912847682661052055960275515259256390468624315892962741861666660863104588694896162467741147499833950922612566900045765875440580783096757493234877054778620692323361671739514332346497090013755046129933445321134961505752095941212763531726874224566807008796568413105817697444039974791688391011005172470997577050026047396540087180155111324269401290104273065932377427239574657199083352964559384098409664489079530305059886144386101751819377076480083018082389335262123520258391419066537581230883614274912739537132742217621200793294198127368401094992565786096130386815374620269564351273740001520639661585896626229845054707533188933118748396115416273137270042323289234158594759439981029301552784342736738753427882835981068561649409105352281108557432493249402971527197219134943764296883440875506179178793737918414525297010779278894674677744117020452939797947895203264270117355939975601452181111935526977646507614572604422405245805856176325649954647518762738283420982376104774465833487123828357552367274795805923113271871438440670743238937247890388308110362759882808117045066957548390646237375739347824266275630811496576335871975837870484593341743679234480026986801614849514009013914349792304391011935286188103430816404610921162871149508459159096545556924882382510516511794098253780022643515310971927963660639077773836780333745686555263895326293929919254661359327463324778189796643459847525286201763986773452828833406817687538141830252584616886047055585224923221329896953428824097254020053218749001778300378793289713178146393690320679081410736275456973714561051327657592200859977138663131724879839515098209063293278293817023603387345154402781427030774670973220006853270063123332339352494138316667922541397714484591262479582324274283442198649802909414578016105716265261981662030616571017514214510713593683208590675169043727157271897909865110717943883936882642538754985919423731713175253270367158297065551977386278677018830820024375001537156188574533576611462670696343178263092009714125746857181482621570557764479232088011796719273130548977672502812360640337431929341339093716829248969860615568371885107006774366400206592363381095267728159265813381205214737039155667859740176305382911715127863488693709381757999321756574627129880017545949885126903326861638994841837294135639438264893659584790183994976607700927586983870254643533009061500065807134058445749785209830678946370493346111121494604349927619226028343984550342644371771898083003532353665339758737217532088787780084974523076416813708592435926325247939966186854368651924094023108812670984485438247040558601739177211859825665711024799684185434415426775963015217249887701269719661600909129145722376158355729812390181022076802716536787340312898230710784287298177745730062664126940597506580432640602869967731573448981662714559096988142118044064555222867866914637642497136996586783776523094759800903723430441846560991669386306592368489083782749373829511957090645376110342437993915122959206872204978840769899445769557650456692407565099897058056046395235722191929829657102279704989732881696861607165012688252308063245112524951080110903571603130404657542476369392673142220603644379205404829696437938770068477417161681492996270987272993910628250272401583142107387093092329817005533283553013886513157201438796948406735358237955944483892838665276320647979141792525224641356105038421009319031325693506057543368733442863088675321298024725100739817079921443321501909823422763373176427047821695837743474230504648456129066201960739598147165917576857086057041854817893205683911788438912270353985046945776121506185569638227641176146638013072339100361422404167328161027659571851031842833846180702374891704234315416974152152007462117137706826114459402244152091038211688082300596703048199554493934782332177267736421747172298174005928745409397622323983094772446960852014610686407349157851944475550416975529874939298169913315167559693629842850215641097431902610745357554797607941177528550318613727164116262739679157923394957418708730884544056516391669675443438484878826986967448408106585195268222190935017923857670499218332433163388983549280653153507271601507662751984545017318863982556036958945297355677042497118271762198416601934700512321635458443150400864411174746156665250103827153876446678864982280936462597449248729508373701695430929573575072074052367088975167044042584611115212773890367748545065053384399725959629485827740211997625849189202192351807543346453743750725741189208791884928948835870277933770436998886207323839835480902565407821635850531508045191373627902297414117858576637696326726403164099621122200723525195612236378609900831915542820281642523970517989797634583166858767661008648590663268288749151784600994120145583144925788046883559249293230843627105889786874551776676262025419798021240312490886256152415678575502173781015673040672355562923834741694623476641116221002431137037442898851613486489551246862891841482658064390347500774369442689151951530782857210295519998474448599655324016534557613483049101574215940955759299854147510304906089543187125397693141867348171781116408784519127296012466698329048985810003658376800013672198803443196630780640456878551093830192663340386943720182083218097138899709768612317350591478982824219596557517268798951374017256922071615990714840908411595966134641475036567118714075257814004635024608612429842848395304652503629918542988149173216567748773356283015149213407008216696301753250574820642514490581621253454852725057805616290887700071223777674318426242252659907341312634511023625130896346363948945477124430735984927936569372692530576303933013908984962789896958347688385525982226344532228389166149763432522260032584442196712286707034639870645207986793441243008177687585072605335777289692521163768504833114592824762484719949433030550773361934305306279922226204676536505956728367282170978424730167209136142399490823968950833698284567488568166769967811556775477328021608672108885330702774914469953021940022976184817821090202557429136124570887393363173989894885277180049005607610378531552485714763661112099312083715913459145818034289051392581005745468811064700011839968511603928754372309502838533110179717562677846468098882172209423656865066433080762744254989328683993969229158792418029268422580034852274007110355755155519801908990455327445769798561419333702777850840492191005973925412212278875167772865444892788041018575732367116688489591650313926519406603341690082729763263313833719223582555139752446865390111311765855573483842506695903265842302103144343056137382904275205398076685441556424445197487844655883235909412753118558297403980706283934714048703802185530872340744673463263001026941594289372595066208060513631938568064991096030163447138985422249646342061077057460612302796216887374333980017255163954315688541100740523506518172240472755845538489637361861333394740979927165853237052125276752490387391731914766073587578907110104330219610139955587150596542004578660222003881468662201809540052718108869948065051822052907182728539354893510374816185323091110941034484055847121058790681956820534066335983334413230129872696212254092731932382771767494696744106763077555222770345554921109089369527948250676089718528546490903658105702608819704568294633938281995317072007712923360824359303742026266537301584354331033507109239949970121394476688370776060920323838970548675248362595993631215350009783176239407821784680861576881474272863538247561031311439439212682081995227003122638294286330189041300405680946019045030155878431682789995222492725858343748270426482648663721467258871422521318919106602899862795550262841574435048464233948232986171769302464087705880546660313148366677532229461317207939989889315821039165396291262484070824200238625919440821993979409765164282577784314681121729702136796269442330065201131235974649747635853605246205525342595536497943190176781259051014750873156650486659432157581251294190195645178715112579281992163280817366030901304351466240609020510014198016324097945059337224752461234626490513495964318214768763815432536589051772793586003607127264374414406485828036156553432953810680636502594833044645142929770368772106232514761556426629536229350698056372085895631942027592299462767984948194760743987261371283849777997818691642501731371599821383035017504796835384163585808566412044473818588920364485004568402484841081850016775476251615396960339655713445842701389492312984280713750832684104299006415941664099564395446038115670917368375925038767871902062682287515770444137691484345937829566711180226707874524683301886845738658213789356819011672564789680142800091480637689933305134054038588336533946215285375325281745046591899758133249975538560020264715998540605695896008977850020128254457448344372600018706871388928258205036922628263566251577414840591582072557177734308892645481821371689031481765393484718521709863831527079317699013377540762260199408962072688110571059795816323791104830701202867471153669302654546124760947574348991306732752900858773407014714225432622421098202606790081225409056023503471739808499935016769556555748921635485991745860598370611246825715279344465934791290389193286870604747951934016143841069612929054212561688957819096388563658158612310859195135906373124780637251959650552437772408358270866883131438663093630206824385013251738222202416441889534591733195488842457722179348164066846807790113358873444071315854567753761643547572656794352065998173056844399017035748751422099650301309471321262803865259759969064985438033056051730700276393139737349803249654303353400685118831378153749885431830628797607347452032573610876648934701724999906623001366685602914397261990537892889138929673204310458613084200734585391363215529617503971907649639868974849765167254618251230796248620274402225139927374282879955852406743524884443158792775044689596063546764136533656428062275091286460072859142123525915783620089107983725746181799910611230856840745938460282671569116339948703652305827872545813543839567288849693175989317144979870367029982095480442908016086850577784956367656773193757991502789551902560463413603866193575133386073573594163274037922362993134978117762727993045385944135688924775625475527575515821486862582205156299407682432222280893479534023819102336078209642828115188934245752140702111436854099253107097116853264833664610415287988050679317349739420102960354958136309644852882884414394603682544706889423193444903448167564480915877316739636732195844777417809263179488725469136440790155715168249967133912470599064903239552703849156248236271723431244795676140862443706506359623841622382686983837615117552416208262817813198403614753160035404854719339921946226070179585007429677056366221545843671822520740642963740717981271186464676194656570909649915241310223228097009701075331240467887103535989180989877654700723005333746739302425395021465788830888145429134272261548669535894220574010837371992824033133147770370692403804471469057987503930995157241100030295346746293419518207128911731553794990863278061798699782965756243071645971443144256257685276284568988528299045908720572083874170386184859029378818714041064603109432156572691406815812177502866845949588372395543754958289184548801093336991099083574439987485626198446325425465470516549979354347481648219122828717239341286418199388094156801452183113740055424041989544765251308532644612025197782574606017528179780621911634359269394054247249855958421040729233111317721888623348086229293683228181759330868261566072180553435511803840005636339620013734238954413729427593031133939689975868961498497722877620405908311048840336871280429595474646989267174367268751603996877412429343636888719073607207656229573965135715322476487668363953171254952932990265061759900594518042117111753433020804511808320350354022160753972515659425663828376852307224327432270316922732830518761151273778245101399025188918800105796707175022581924793973453450630539508151593875425806064068813748141226291085537665063733557653939320864383103200441350955270706878082328851510407960348596218386780847485669018718816922527444181728370809766880432150965920959801573049942338356960736875915913309789716148076228080638562786829557348845240208530641602036220344911522801149129823528882794667326653631322648020595415195581923673546343195847082491069605918190385559769879826329762667115165164182161913736621402467047251119767067831313218744616884209641104713482408951097549735129019880772618606455758445363513325303524263600257929993861724968843697470182985060722107398523123108814795520643142254000525698571495871152667004745883822748737661464231917225449293551548132794314884014058406334363858209442236342690318817270133755965332192067986843152761997444429643189855246071282555650319462535499353245191071428450151469108585213448185836695680838451949704311717282841971840851931519905141498303355133432493213733956588746381001155040927222712453575649278384048991123850786003799316625461264289563016370749921152683148077167611866822824037937654622892672470837668924636562360710109198976286681419781151013383569091088873031896446444403363815473749024037465502747286028460430255963949171669734508335215695122160088563398249894802005295700160024187482118866275299604618896537626076750059610719522854972582998504145493571728742072136436819089969684536635650761603513922144982990670625430291455743172099032730171309377142831618092618037507987948176071402823401822819689246136576502720231734194375162688048532933523040942623798498284507032072411435567262899067099026241603001306822759743827630963391869607819941809351214645176847431750113892555333666537268038577670730117293880209118840611783952134418978553548142848748760043741334390707064839302574234398281969328130286196099786275045316937815529162478718927805319207094333508495448780163734551415880504946223465497076935932670851747006064785877847748794595023907314713539846783119685442515029147435661661659163275962444137254082692379890719846068756111879960158446368830493051982180685319000522094334443362968158977467619730367931711215680552751459011929042247914169517391011840356885244291104052225098539700622904236435129527825936257693713821390018639818563866775510641980538485065021767525957814690233278637888539199141844276445243716367203898442442471031983694050094967020161383552972152590815794695184221870380740659873649427811600223346769898878005335664264294121460897246171678430055903764482997170061955693907526669093409361746870273818536544472417813716400195010546067214137680677103590822570086673486589156448415441892605962082294490010459088314511545431465624437486547810969324477857042321564436682512443379810110497636220738744299943607657739854225471803519351519527641010444811044003116177284652668356665912937293495702837481452761143366766624287684680350692794967894985986912753995701129059428312399846778764847008922947945613786892808776188074439707512413427545402873493178779910726434307176313513768540593023782193490366216534625983489725189329020274008100399551090418018942981771712392409746331976750689494998392419389265578233039643746873221701621033211257441748086593467825622479717790621143052184695272622666528747970603795095861068540662939752069175122351196390301209766459648531744843392555540127807937243285807308780406477986793967849843947139839287865814497981903316478701577221113986829753614034846133368746178423628476610077780286298887185197396576399024318014789622762933252187432617841565105790874153160661765636452396623699978102354276623971468321688507244137044402247230210557338482285566235559529440624538569627004682016121466306027194567502543320311891731425575953038229844675269655424462439474542932656327611861658807251745333949628495361482063813152858467174067109337716231576252544635518533926258306677803150118130379306947371736572280864254804388646353483034866915714938789568375404006105991059076853405803674541607324850154659273838461715183004450857435319209241603412966388712574043222738968113397849266240784979738392476115246309668964110723482273868911483199090043459240203240740272562942010367148596584827066401464109858121649781619463205706555302057051455453633445967472686579407790614322000537448868215882089230345346674598849317560760985493311273343598002288099595764041623724158276583089069141260077787463854128396904416631319680806980398406207066289554303165999242823814470463907807476962585823864899639134844239122916193121721081191523066834372710870208354936643972489009982344174133205603302294761762870295529168302520722940825800102297703576850251680253607683655413223507140439637993597508319619735200708817075408744412644751141152748620431632579148459387009746637933982915676702192728945196129478343358473542263965880663799404466892048986426650591730083393013501159153109529510358992534978195140297690859365457899534848095898754228096330273375253895441177622760286078285145791190094804411193059695264522056366511601975083789534690135789887640134650145802142676963503162267240604309446984763341042917175926127633790180459295034035486098896693895598180122763939033068481215737494380101486141151169723689511399943038646088736351482189120464213032988312963048917711247101929107043079080791105492591796418796708887255879729149569291457436070785676534166347573835590811925917326714469500464042652905242919844090410911187338131123714517550351352496593936012990721286193209411020321344144435669617936683867010810656057822656772412898616133835255553178069222905172609770235258689444571696215394588370499792400529412384138206303171756327315934936329141887428310216186187253408687990214499769569961696136102567155984597480983984660192671311140794573427479687804222910094451496588852815094000053596412183148966793796553532772108485037406113190597039283824623126945287788368189661505106814024900716757982800357325841742071885888273954549834595819047207601607752308186870822575243917465979141087677638570885725777523462905052146570560025472124439257376147043754915815819343573965025296023090599991825048014132737572911746672922616366814500098388693034849085416472274916979344922970515845622710039215714469847994568008808014571450796081853002739910570962623630786706905233834585006675890852637974867931455265413317024994820551786652822437846447226272474295415139008146389000945837445588164911988540890871809624999982430941941137789517940643958245488558863711517578405917681889835865086557689774077082651268089310225710324891330002805387020490551343632929415927893055527298271906698182381680182803099741694494921409835252158758375080422615152641323728482071797111751151241828610270695728505641458707609689596873512678450562329603592441329509690381471645677112226127915359049619603031080899227292440704421154778776858977691533155909374255303394771453204370897605335059601619249569587016861605922916542524638740601879765395689620161840090853697734019972949474798126027767077812757646258496684491063642593694510268691511702126790847413709487516054317494670861475966929877507440568565824958344395673431697917652461291207320504712177476790111202841917918937093888833086950258318903794034830292366604587694467832665496242236405078743477310409066757199525829100568724837388138036327393180273526417622257504636652886619640944336171052992321784623246447741208631751257054226712152398556276994988550070814194182412195934264875187492132881635628691777241440326530991542562532469521040273293916034684279678116863873800646166940937739435701854541254413942682978270616818277142076716061560258067279002340358984661140845059845316561302498329357221029266820130403259111317810519042213556436142576942987202939548799839761809003714044497610940374605311932423795838047663357982098471349131301731820569272482706952970802810285811956585974389054738461812702876970445377166736636894860436609003537084251012503825601393865416374755379768212364008570341211766433666217056368564196090017461757234128728809576590897768071530727536703523561625645869690386990003557403847858839405789731821920390730407979579571273373937554853590203713377962349093227433849871353692994235667926539271360282367226313630195459144687233896809395308592429284439727405872637197449011292108548523727876787861116665641223416501107398145863091180331200543658529256071858855264308000321368744019927796012653851761533535991616731513592799118985150752256382302934828298652864830544993035697995413440324360011325359563577322590617541703099238418419989613039026912328276850067093038185412880761875665245400165145645239929873538998088281507998075888966484444699546673818653485499347518771141452272700235893864666068164717407232162070812463664291639487819759523770508766792538322039588853193449188175945851451783915025764324340677853876694888192263937923707574378078903018325906578522454356080335278768194410106990027626270806045775226879135356719860060742305919279249193920503047020616419858597887262793132139086693097126814240518490669167578548679582218340967061780136161235107841649915739163237757232190994924023509210694580376493244059727554700184506890563938080949213333074000571653665077396702543473599877998811739611881218443735610497210540593590695183811342353246773915009028374477937591003815370959036106644433669186708639399861481182004448899246794205223163854174087989151082760138227272476234722232135403213996175795906719942051393255244760420502338399756254404491991109774909728690975448390239494709990808737155205177102012254180124362738676474867543913579177530616786898437464525985737875475499115956621823799848709036368707253705810931801999094097401291008804749219865517960490580553343634390370846785408831377621433594783194332613885192134081463393760449885100641162965909923806342398297611310295789689278941914952927572681503026470462068486059218206117261150559884521844507253602912966522907350924787007386889740632505225840494256944518411199109066417093085811189034497752346040879663432548704587937763858607043158114078644007963473436606609235209947287140373240623718442117685627400175912885030672291724600539675550455020978083809798183663652836022795164840416816093272829707153486414771724459969645191287377423837298370864568156943011690727580366654447282542607568061963379408858051719382583158646337949056900528894266055823866473294958768823115902046633158308359377972885948203911480263877656550798475113074282358515104771538052519152391855893557181898291755202224936112721424139496939729856096341774436844927305431449606884190611245294411336501671730395177930671172620505433557898391107787319349962353028940790873667785053009887364597992548204780747881484839307008530041046418113101387896654064733251113480866406726058277117035190917432019297382669079887152430277895144839497011330197201997920370219724059431775747038158901796016792094578072091192219936883016075902363753874018505493244623543686585012724548021834772559282261048370101959355027651165206364077734886545972714546823095159663840079364576547784760502048809254237888930653042276529617474772935322779779869141189430774645706672869364836484022712238608131416531427249360174665223115154715939079822948703546826715367478920105886327768976007944965993300003626459302188162016099272633567577350175414808301079156281091795555771346294769923599698449917014252291622031185155925268895727319095360199080082520825575608788878292325711392800036767114000538321284297884330395246774134092284542351929370974952818370677992932158051661234051157017147330558147529784657135832267271184469075376341794778479878344686739666856216693138663536643184520426566587052278478147332714022395428016923615518463442967446158615737913002570372125914023046906003696194919174928774065087844568370641034775581658481624226739036815211362778705141442904742076488710372356494070851014854445144409692224902447757058566079908203194761333854058091953370272291993504276765627699494063525606177448014253075390306958785518546988988579594095050843162628200785425217548326950680451136084833008812773833113147065279881310760134736612695920150809857970927096300255373598625269680996005167617034370648402091945717230077029867284672341861640101941975007334627810169513450582177958246532798520796654511911532680067879324554669921888301684048222968331545713215093811697731314047657481951848603815841440253665610366609688062915077856841004608437892320987691308501735205585294997753807555705128548303705064356672375618206310670429058811813025445710139187645144924879718655892991846659621768330546697601064168064075210213052552448366211819345759611404567120192205679822859678369544983702858371345202437219605719286865937564815824911898563394718216340818144637138225874655595882986967399537512924928573277152390637079474354912941949696545380671268956665176332906136296543048101050867579028284905038849759003335339311654653696722441778695581206499430184154361224378340539569780916593755548215302708278499819154919332938896678721520049925576846054637520930896925045012784937311366223403361451527969683084694912652073866599769030423148205685393596454289838358587276145066815167244514218916117923856593120555048034030970658059249363994536410241978407676950689145789669148117031282932102033915886784392559241573850846385870354069806469168698187743415730750583625900405803259053910597740763730147030889154836854909927019901887429829734560785055039655226250150140339524950535659481946272391404298964661186716322067176949776024588865655456895039492288678326382347679178967516649587247459547106401865735683605525198995472647048375097408992094344443113760216180786617511260262782463089868156249952461755156948566962875090192288081658195819260009832357862879483370784602358966301968362471565445062477841755214943003227582588673107297731717404175917513808169381382519054382906782609897374191237600891920547846334754351225585070480481441892178957981495656099085753124470704107642900410606002158181610477383788836369155918510106003862836050642223119871050669152366697448688426458994712121355015570976376282786714850324129479890696061788770514058954285171146045670385139072777169538035494571028934073599181371025562848002512047400083046606265820338065418571765153180802889699599533506408399468594948593716087127484488392833996396696539806069105664387765914312208055381766443263222166650257171153146529185004964582865478901843765836897904532159289684875046779903364774929583064102068441956407835420860120921529834290163674025662742194188812574309274136045402214032216923453356904834907865771117337512722887472592111219452671443866001317860193436229274687931638938303006261955449634118798812653883011562255099407301290250816662009683499357968322746482652425177330044979833800090799836180221414923239039042601792853566796052810582123178954552385326993299595467465792261886663458221430353797506282299559387454780726289572447898491408606357322474948078239645711717938580926331090702141693473063234687883794854950567802248624317588868287632326421968100549163080543101866790977944232190754332979175674952984697393697404267086572391791130097301947197835754443128960574810652275409942306663703215057811504535455873766555910583610720376179256751740146200677975999145579251607806296210661604655130939405771444287690960755030951628409430855370170038603381611718712504251019466132988008850020171772800833433633677304908514563579754350541949894780141380351814664960026970616163439694602411991135159964915060200604519495291996407095317788637062944160395541099417898528714247564607302408709938445413194105774882074894070647568977860774308379914167958088950948345831078634807405520473391563335596322452320724510724499277462259473098135574314676955163007086522537929893027695945699883738734616980835551202267604048673797268675836381757935866879223261811386344185647392237107364730008480599388424656597423997717818985263356507832700213481579707331220394045952666264878831388630646027685452968768526506729913892085565942329708700607136403697752688256045202799822936521616880900882697763006302911743089705449958575825604965912215096950266045115842247754245050814249010252045169398230081734709326746105500698907492290689944335492133563692271925358092189749761207285282294214597441791020672415000546573445181987641302446834927357512271358357912579059221083291650901321930329974130173988607901786239790055266492821076032529022298105862135636152696536935554063176904346437145992443025186221251595247858576684076780139772708517679263514962307204558875189960406862199917396719663130060885394367827469963624253726702852368581722879078446123359195426986748206843823128457648440898702032304991574803930722795222854258403796246226860636789735586128116203735023570728157095788897274772347905687295356669521617871379836524788313754529880160616551695460451140058403042787491129312587220819897597244887793805682065856251087248331312227223967742861105063148620337705957213471693318075242923379875888053820803398975560548573325984690402803742517244877128525900451714938797811860071978076039140130372504384799921746466360423941115013178406396782217111166874691038004030884451277239815447869398428727337038095547865313218848515838806648872252714913171174441542274395857819281171553309066168734341419203151970622910884497884698725933851285225851322181733731752460342879505277418755113140209616745932054441982823557836750946709994727719752694832541969507486613883891695627434541812020474329228445791750732492223524594020685354635568230468044006363165624571957998991929669421921675861660806264917679710191000459909983383806260103002675591271957385844318486430805105129696956854856425683519632106258492328402416480258326589956863548583214183570739106576800483144287931458390946698348939343849234405732894656593450979086546855271781153303036058788936960706552336601798646981218373191995343947877352289725600526095813462787791924161424734914596431183744684969193622218679933618100120928986260222768032289667319762342088384538454074265824056945439489020935037914987070994301759852467934508597091260616312718530636079252152353288155628595556056487241564300437844550145694542193031883587440903355700624692237866655611408164838186742368378228129224238305131545517058086352826616995254456921870397698209181805611190965375318334537291623752669182010035428336340920982101983088771606542515408834040116898926752847616075324575242830234657570845178477477571127864428102372223240418038783441054649699886385280254312229685420528508412628658730967744274775269138806262026314484459210445962552617746861215002523098852377818148900830001943473199947068477844092679023825477942529583202655271430486546748308220539144618345860921728525319569149046131339041881590988071353487880893149320775136009395669710928757421419271000655497360850858599750328893804368314565673174125587653642490533841073067333732408438702535749708508018893473550038649259132907092534103712374199561677066459949263459689674809472283405944875993815632445218183937619995992874845754383851765881882227243456039933573149035928529877581162993154588854640675883388562055049593886981800841220332811764492717397556479522563490856485971739977474273123768093543734864228040470437548461755498312389655444006951754330361132584003557759655130285379823529848448529864369439031432163242551356887422352191992859317167868311983183032814762794258277920926741652952044297944779456248616859721538340595746930274914302140122675545194382620004479701909673175070195845666062427975080798611609778602031863161483819812270053757090501054998340212013615549851750829037615097652264589476013059787513467569124765354806730786641745776362996713492456043036185368047505095820475751777263005535675999984273670108138559520272239862516522785441178203137894699266672791352559172608487917105153315129013594230850565680607679466210798178520079024471750865582715687401123049752402652070896380439354552316780885877574238548077671693769571649191478911963340600901062445164460527019017663489396826795163126667854164200174819447836261212661363374073736003685363305857417330012091816557740747880480173838975937629380738514024956835151741811421739405575395118637697233318616763767414432769820322991053171976289254724831908832601676330607545960080227407470381509846154894153433131193799378381192962016891403522817165749321933073410631320651133466183979127200342005559932379034723610583111338050653830942226398749998069105943968479130170415107960130768525725261953502523591074860380561692921653708285271654654302693257522090057998297636040605276812674602335259680300274739491556559995894519199809753196355730848273061581936648827506359671827745352921382492958080186264621905562216117797306980753735937220083734839733919610824066282236406025094441082962150846291424590353230630940758209071168360130164339548947811386980344975538452714707403031544418379607189113511768394514237054119776260707247804080053737001186767025257473378749769809700716019753683379995284093248403190592803187593159130158966375681987717402605185053467285001566907001230034103971105214149071677216292929784307010164749065066796467097828182271792807761183601302235155814448960424964184055695668231401440538920714997190253497556636921828757841178092641768178637895555183521252383144711040649426716880028219822189629598683320563728870225759047785144020095710096155757072670827644993665601040185574481653945769662761589215084287565290806267641124201966126129949479980826738818995995023526521862571774177463441303511880216926548594836554234706033642255605528137216598151553098004654579514725350697553744438935526351576462261815380552915717269986640614234009379579258800760821474712706440468122986028714578182178655216080705332001729477672909545360069101607774388576063978812567087289194635048693472209992261612732609716560972778918638694428544994820354120092181854464555685714715939029659800810969175854168869217292534673043383963641911549020354344429362814180421200571508950216345348505424359057234343973904804797667877428490627089763669256697976693749205212326500362399988187688352106472551572047940390480235885831317298113289092887817655757920940609010613008166410547879140457630337181842343476744757533374249265402357743015043094764861573664372274281265353418836969802653830760399213596178328607616630215682529746004520143547034678517163836445901547310416566525518870279985448094688380022987868085973488144936025928826445668457475724003979154051579112405968780303239974381169595251772698913425230661959735389656596902968567313495576548220993178292560524916769527369817293283580934070390465675021891960701256080471728512084922393199501324679655316699402711531445083539059842982101208290522408619373728835221761568920634523881107463622211332662178898224898503548925360214735606937873987884386439037020882305151507709319465381155877081388440389425039687307316041130565972689474529954907280187033435520454061132683138702779401874744806221493991646267536350111584664418927551204247340468204940120189089529074463862112447958909235085458724175085040480506774815133293626420173102975132231466599252236607823783432525440716577375174611462983304071830731531372595264196846532081292830624523689050751699054283493920739599718146321702261196283215603394163724982463005340047799418550568490656339867204021677157142741502612474180869696834329267081753586079520545584788752441065023800203186867767511784521646005134977243237809008692077366675614307600863722362752145278110368506761283610901454031548358696714843480938754482079289226714045266945749688748911194685658612774300168828931542343555557198683167508713895967068628150547210563176064056380548561368674515773071597703007898379649682793151536533119954384407869566907457232665697032711821939200675733027828362149449429005825583813726292898416852021266113825528336074092341311230767377753090280606321474969974935197884096386174366901781358042106569629904854835090490180589280757739519168542711542302236046310114198411519076589968914760545748720744005459574916930085154844548836355600395855001670973059460142764502105713115751457314000114924838020722535051795793028347630985265500895377825951655599111607050867363288476314304917245998216640645432486755810713574248422259294604603302992220899691707622727895692988348760514959070071424482654779691484126149771410622950609003654337385139547904185747811290498129217936207936530416504321658227787275334320463989918253634878835673327830311223338447091406211813129353190664580158027749569506701333189840664723666133278088332690474126086635106828495687036210259970164071784976335694427114735908504666766801902884650017299357320482375665616996315455339600123731813969279817429679536405702590817837944140319955117706797144756157716308191992024436328691368990239308829805087210816769708727417339948071831597073256073785431727878007118989854356205390855063541391585471541258072504370398595963196783452663992655091171512518187800847858240934913586635438007744061804730078025859464961727656163952677828700341580390262405056791050661181910194206550971590961341592233284188766361846611470928689482691755586856311166276997457196043840488552727336196633133047857077027113177628551892970903724335282971333649152613552093341716805675449211546675523267098116696985904604584249397495143970589023814786959712368568759155937861218179370919159654065973644275746206201035939344539683165231328834895244511427126818674003458066690282805338804046522785846903515647437665523567174151061716614575058842308431311524335195614793644579097142541467633761093222920222758602957485628943033474569162082045719819208595540453522767666682589711623264035970555855739221642522071106695856750359372670025213545415702240267209961290639117367165346767428585744484797547884293880376247232148148779577249586015275033160535868539843696678125692942393706964389740517934093148637261574079974056973872944727876122620602865438360391367074653988942562191712073895434514837636328142053662531022314970385535254020797928368252239115801610638897656166228674177557528784756253805727907605947808302061404025800187684412078589262828551836955916244514915402791570764696533191785944016452257906654924435658639393806189063700092828039461155005175644178300703539200202092800198284159757167888379620921369454936501604481521528341882432237478889613940959287590406730277143130537646829641730175976847815265596043362450043456118135486369631497544625389036674065848801742277788007678055632140369109080005755301546210496082864623566967562682713392974506996391079048723425882715603660983553611936531265450815946858422034154704168024469013033347574174282963345590177003333713384778714537537446283506438091535598031965882749257047535685578074900784348630072358528173272451534050807011493853310134454416022004416458801055525842726429297916901793402378601269350134297372657151444943882716571900276134243018047140989646436386787704653984262338283599276489586598079547791486910310335235987538775267610367028842011443581977645691186541939017755586290862255140081517717838982186583042547064616585822860265983743423563735332092200610936854762981718911248399076832126636591127638516103731052636065174726673222775441565332332462945681098809105410135882154042573917958544585624171969196827008562273930850478161738746419791892383905533644722661111738071721075844381824472148586285781420056040566078802437126384336271583252034584259600642092603173337398376955613885329811652844336539260499036904149105920179573461059732878053066530646167919524119257614065818721539986665834633241270891049547973038412175667883774967868189711473382856586813958423864707393935814392269338381647201538604800139266756114605887006288617610099661769350046178821383586569450669199342853640606488833467215922418221690191249785817212793549613789158274409407372888006517245278111187766772107878605570031622531251455505310170297104906102237379589471589710455649620796129179802025120058099043651697070998117881455944395579667738160176063444759097793897243870351889414618212353700703139182573643106025015139522781301046347195589998454075766825599412709944964711960651395189055847919208813486838781691231322650692892626374819636210119014071342542545136646145085661935017766676644570073059597256129789241584652844458559477746695919140488342942402138244918836752293780580131551151884720723080788560374698225824160664047909071709474426535340415033548244171143145193781020497558285245263957671582878448399748865447032582069604928698764550234401198045093910600507137989058474443466635174784466353298754390683360645936757071902479120258022227436943964864162172913992555212404995439274125314288975396225354453509191229468005456539010795496855227142762928173174387580136093524872227246456979783389385180502893506130828264903001773365301289373621786784431643530900149994633505785032674375982948226956296594384734069453967644560410748688915318165345685354882857714014520587378926308697302072513919812915276125604410651123551947384660573458572804213673444505860905177990979681678671098297402316210679480535461693182449713981492689780402785751166441310581394930701930508683097493916655741623196834751251859468081208907571137824277319312685460929514232403440580856750755010410021917851133340557785907363179321347124427781411832924112250044961941599490368932568480102341399411175812708852049663444959298819794104225446656171466978957665849365007449567830241268827932355090567382383263884765253070951763806001753345596182517797669687798375634017308860854452086160443140954852914788335049876619634494546056650629945262251140601796161738479321363469246949091236087016789141753332022738679946907655941274752036372366766695082333410699540489941149383395887845048782123434059712247527079656059375032702809526306021287324030777384846694651716239297589486256235286613875469151883890265033114281855837322842930533234344406708984320930543985347039754860686847449776326177366787971439761712543588625381557681375183876702354686690265546511497420383343804511121553295117816279330884459761528099346962195070707037170003942266088412375494888331905385434938240401066767241806098611824481390593014877623845701885846214179908321234503636367779751533185689125699504380267310426187423025159569493158775495690082919086235517777122509120691207160240277403486567872837517737060127254419553306225952900189811057963244931406873294869126019785509124791042345289162940064787579976841987512428508840167410564055756028242967119497561642503793276955855229044838444131429948805753147022342552476127954947845744314648190690832890426333203656836373837371086290013606897749316957835494780939706698864828644147700441245863456047719984953291567067294892359955871914592381799961155925929894276327727630371654017361605166251381965907979064474438065707814986524576005675949917654860984460324077091131262400770482850369785214355090464718553652798208448438232300231380259616900009582822092950446995717713821421325457730555989978185475787386868697315624792360771346955108644344587956430834467062701228713814679210266055431392450602364524576405896330812186196384651415393359902598654051196883349292254176070602855888713295543207144516748678902084116450537467396465866941616284989537092799891425526710300016645992764105741034626379995049292357553747878387073568422968294245768668671315311056823035992142658873956450574989654298712043316240190144959621369406798286078947670452927410056609488748995101391873795828170880662049438547310769635395691744318746690366364226323886660446769430834126760899689669024765866294544565888121974276626964760745219344113589817170245604365212375866275374044091309319869491435186100999212665817209112925463397281933776591044850501667989035563876639935623967838440374565558258252481293545408129297113189908169064080697260534991782979101237340102150472684383048160560290108028327662132363912019457161764086541407740752337288888180688654748546736851391806581550343694747457005037106007488535725311038101491484653075321079743206301991244776520964699655851974468299347682493999422213964082400964224004157798446775166535061077570871389130535222916119314220748135163405437778178021938116297595784436655685471081703207374609487539301987130747853840414962593010342678616600841634497821205956319972461380355008544262008667517487759065186522781619455706663607205970702331646645315936004782852148456079496890858881406714655225318238489914987023943204771361891028511044533346531132372128420049618336686265712379959935469802712899365160958430266174808517725485973734518128926943250483335848589441209866980589497395053347737470553043701666702172248562104564776853970990613375397053148924488919037032285577782454576152608260323514505278495125297815358061658613745444786145064881529131593955379695356500793926956165605265435735780179852713760601698408825611073825448051907086768753818870790287490103198893894050900612164310836757027364446717736083607473529376544710269360953425968677136431356371122431684134483619827447253638958309996303296011729170394118351063549897208465627663528030277100549238384360218346903768797083576608465491089310560363680177393378830699883723261883390774941040876374135045620957111703307315149628838247133429120097795069952558845588424388672343259819938611373670307629070864178218856191226480074861033326265361224806343148198215946631104879079591652366817136995695512314970378699283643322457058068434878341454516024260286408382007001807479348692102768321221367198029006616624117988413300465161341746239626928085751427695589253696726858504806104672472474713251946829342944880953340705859313697740936027467886913778513198117795381557719619744731585973437739419703502711285585164317620412792027721692376999661122989603832977778005821518886196422866079119307989213228602382514137365684056913786835448718294649206330069423063675812866342974712400261006066922391025387520008617182001141413478785252700809663913405296960982961448412302479097203523750787370515365142760568616626089876198211456858818822297464214071712114071663572451419157856662986661644059740355694057362600851905983418011445694734948131197859504618962204297769692731235770814314118162788300302876963880308828028889162836797146450757715184407667581855633959794669403531485871290037316542067546885577654097993613511928572791864138085204616588858224849824330664209390472681017691135022069829243015008948756843195997830132021596327282892648221482663639317980431067383338858761728373057390826493350184830221851358227528347707500083142157736079604707802193505959439613094589871699187505160132825510232514721908847677902682273656786332844265055053450360846514720639400190832105631090407531072929670392374133304687210104341066734815181338557795010458788655762255295201095843965196151181992724025563380980957533166140993657750529325881456675485704445780113317554670083304537372443721297957743928631289170230664766976956328950172520071154712404280200602698829589660577062429245992291520123516887041137594231988945555937490097320264755895946363762739993409874115915642620879984688616388225913953410143464670346076295045672349393655852553660074063578030310929656816886961517862664370198869244848761143185962218156627035032658896341540287958619987872974565443987340946782766243090043932249469297216066260609746464672070061066450169311454969696140311165497752680519257066486280750216245352327512274398654964755533118214148641723035626345755970940621001552532822862526756424108492459526879115331683429420252594152522684753465349064851764287085609642859776176793049630476986731794509274783009467702614959879284457254811925631492072165366502559161132343383204917111631083113366713311887601582307739259635086929809090648875363536997752059971253555325205708891147921014031734951579539284264081533298941550950033585726880375959102715913424771484750225003108740805389287802147171757951741535360195391865177088941854734445962353575829822130855336365141786457964444710201303798051987748901117309912641595952306307281999700133290477662741330200313240399319020718784492441905295824895770450743601282876361305625282012316821129397696202050067275521848567273541668984206619514332612246909403899847676810619918455409996278986417315388420668581783142136839774184867455468764178843682675652446016567711308901298219465622311082612310306784374865663626710551464852127620562068639866281584117885662417179122246790907355458916207327596618828876279862169639487472280437564659258476747454060079628492804057185254459913771334512842386285905924375895247051125060415965780723412287218450659825863076527413568182605353912347064619248793344344100121289643911566656361787947145164929891887450886772393774079245258194527699345725153465414043610335192996361409501612416904759965259744067867670769240159525512249221519809427155876427235104132250220883396081188653871721162559331535358388821029183797934015914249062892257488196305786911378427513190597408278551003919840638044276315525356085317055161062905302830976983280968904654642341421458198406342616508914558633020918873696804045813625563358570841566184980087174629388814586485290758199451063911655401362818825097757199091260880664811245329532367825473935070888333216064488052601178622605454996122596726273877366942837609002711122234452409024697442939920963869956362400532044365934354239197663048624786972918930702421018862684259894218053915954707497612323522312626995472650024278485810108658576553907915290900286048802415917086542736461135316109407363678506132997978952697772029258067606536038650978543976992295286728606720277682381660801595612832479558992837473903271129373150630326027472323241375387553798498123817277171433066323338005389085852481558730490927047953740192579995036745393090828495499170680799642285685386622613801923164152407212083241420497615135621354284644882169009198634163236000924951195140995208041528566207492640894385569094107481236875104381704939690827709128830591136295163634836418914607154877105054000156002632348187366719736692822362309711708074629548799147836921961095059445221912532271674864610315024204052260871356360942024128031355053588789758281908585970623207154376097610860748525543680259565425178313537739410491100857922542421249368798766909998783785744238614537111903349228008158922617323026121250818554329389048687539778989693308226491428656354993434627211500412019980730034937772391884692730332671500053499247358304352934400258715531005779817636408835158867970606592307049286372524557213364536138565892067787296277125270516093424779058894206305646175188762184990489802849842794744470278078183070637923768521031855402800240230321951324080191351334277858138800925316094903358381223805609976957830662965101511832023778423808383651542548335280362407738794304710389130659203924472572428953504849035643290149491062393425739152034367628037281837881063969826332643183383162201080420571700503460109558312756726016639992344600407810022534984376637675563241735958423104817211298024137350950772082253198127214247215408610416854264564407206123736680456682374656468898291575760237372043622899668694166573373834298478987041404084418497158377088367696713383112604747140387635349753449919240796474029351034370234096630547644190627679259359385618188776492585053091071303564444969248513130594137605790420081015504897775125543862800692671221328932521337738649005309545886948893221373409729031225945751940435328844717693479899587847469465495628741662569688017923911518751187871766102328192972171279152546828368215921003145718723394692308159044916236590688534461727209729068878279608353756893873326364848992493106350820107321171693623369580627210799743306432930664199074688706614739912155552042527781152427262049420259650813955878871186235898525545138116813890257296539455740551160236626049963257571344543902288785122726500151589607340126509582796844146601265796303768000951251257077430477907961016799714231507622191282317606757879269123246478912564148721954427385083661279471558040403046055945161896784731744541848750380166711640447916422506941044063379126929390377309525887629491731215379127454903239273308522474982319435898028384351775316603815033894857005728715768880170340327075651820586149433600228430841507014663859844589240023815575256091974922383422194573065252837051236823511845472387981343400859537359721672700116229352717038274997639285349661175240093066810315138089286282076062355795835492922368983399218955326864656631916882424068121692469795603260663172493728420915246023500669166672576414675283220127921411621629055737983655165508248972016989124385036995939816477672549732379682827965823850515570154525735180953839092843093638022356331502591192353701054488006070114353115517412891052835045547029119081980469821453381644140156935788244345864255617527262968382567216668259108417012016838071880150220060208439945874770036411835193582566370754014849689749260006465744274523364189449316393288986927053696263068791884691296227732122605107267965013767543278559133703186149399344654138346560807997694206573943136135069074618077729927473216443940224567641762993772667231678475877279615398697467385114738080444052899781988144293241821878755068122720435411971433582449204367724474094597374316152058101253060492363777754820702874067903871152724246131048443244656193704985011399911989130049407072512600063472920004267068894351175184692994691969596481088347272880011302918821914936197806525284272445141260654169927731804553914195448087897899537701116271535754085028363881648712590841691595623223675883348555680956489701132264597568915134368691650910895097883155341770305272239521046060984657756070152736400048970722066383791216001896918125895697714959751575623845150505764547827430710203476800518804737357521273615965523446633914706948528465377252502848104629045992158066768432728873499695324915970526160764175108961474352497712197344574854610739206284401473655158056204998940497209429548428642774822783479414506150277481834925445511481647510770286952149256256555706985089288098046399421907992272985406823656199330421544628899897988013534468413957281924771688491698676315441112967949402349332209110902815673633727608107218324867825195519477131007689031187619925720614215726453447707009351256681510827338327927006022745864508274357602047001227133034138225024154725690914611448548461834229584089483429316946485536438230784593720239858785255191259073918229956110119013696596883960180950929218378967204812417493074933133042211473297502781966977033361705079703793956460820141065536387607590146715896081981311279650566991215132077950372908382715597791263313418567513252971828513822873404069033018225283291775396214865439389888147358110712441444428695829606922418989252047361798773317525443413576450188061330112236644580053156032151740757072436077966027639629954102650779136236817673492345076064859145921017946801669088514315168920877383392594241051486510069417782463724234343530178253679199951317194925557569187542862514664480112846581446466229369742326941524339331240952349669440349373975874196963990976394769636894619693416610266113628869989495519938554932576084409061349669584601223337762806392429731867102953452581435103909164536206085296526968288256956974729252383381660708056678488098444820304018827534618587216025129881776763327951300938091158544182399843082017137019130819393622881441269789683049130575576560188044918401860614656246585231655333950346497213674770200307139135373048457119166133566320063903100508385959089678428418529305797809248610064832067745393789001431519777905427997377872125654445562831964502853337569713201651469761001976116359444518935751875241035532245525820547939841157101530859997874566573585536024910585701502004630038092010195509656813771948389630322303276778440706123915591839637820787219813398530819852789999818004550022823495250431256964710727538682773067146757028560916330925635256347445279440983994829206635851444416964716220260328662933684915240411607176165922916308609161976630878968376065875757835450930818644992508037427570998685939920177581958680412061695128906171554472454954486161246584572228493324989749381202088462649127345368627523656771377361258932934561583699235937854262164055926350985675590293096990142901741465392459387107113530890978928713397931159481813651617538109569180379476891428108118142751725550084670807783182935886228216233462142629530192431263366217532225110027472125211221185205751887548010165462053946846279178455373080232238161980250845325276769095354300218300922228894249268024557398755754793785132058177342304518649899995701099934755206210503637404249441281424483343997804734172395513570886175885800506365017695441592208646271724359408113229166547083417218439331378802746383941767370207467243457260590145122182938496059805391609064367096967506168913120469173708316641056302727466362594455277072517728602701979357540643201961631573928423434987570993104418439026092593835915578580433246678979697322461391792253353370187611937516582115332050381174344200122405556397623310208566412806656779260938069209672585021357552230735085605241892884539476623878158221380564847021062575023240562949862235089978355422063961411400147590852247965724049144633076577888467692773012457897326069731006295511559356165384808826552450350585863089444782483545088717662896848094606847266868647890258609731954392771798011218675636242103692463038975863750745724316478205156224982023630594563266278298541193903851175823351876301656563768318966934058446014611306864443536589975980210274525195001129505781760957815192472798266156316759547696649881156682829164626151380613731972606727679418190981573700725349479504815299841485663800289791725616503332702914059642480247144525193473949683960361185032012519089803221873935381727435305747733914063201406905067336180224271898795762946273359523804692789182535511704798634289580920592087161284409797385496778647478861063700096787219549474661536173595901948770142376500800370182719563776681065336946671312604907480793564777014551062046833583276764951359421865301504047852625072408960302202362577604556071630692565596633316108158273102788357988806025386449603167568234037321830906251052794186673216936119537766834664774626708468946641549419714459821555192309162385203584651137874780482769053923831449690599703909133137225257006066244474130320291866298696570827307606589528918821947575747233110303765939183118704553708614990749941674943195643510063828735412749501692620720196813102269764717114566833383569664017854617690716137798160705679448021307980370206284110324776271280666787155015900431095784423954876181821330772140776169478623941105875088101377878904386538206573705404547634179942180740314291588911178393711258793141564942388115281363850734897277957887484456721239018497412177543614181720023679173690097627196144816947311820534238048101428512160571972986997514836615651250117146709378352578104013273453076204168618145222779732131731273725108184695922038953720288444304065946365922475580303962930819039026462761039955119336105133365139768698078180092871076375954492466543053115401798767118883711598497126836109782945821179417200742964508648300841434482643106554842573349585334534209323929373408227262510263857346149268632024579738933431877212109478770679330547833388804930434333216827567224159430797086489712817857144878593600449062188907067462474732005620049449549915703911445605800347880927070404522419197935493974560562556622957685814037510233273759925337285145858968876673141338978160386303636544228436842649800233282668655003210494286555719870670066839553757660117645443796138316577971481177113222944112289754967416215294590990073840285437112762186540639154809992094906053214795803027239463618779246885975112869520855584368756539580487961235552904038986573638773044855258471556918372296835889616766109934595076155294570593654383483140781874911307639705018901985700629609782850386990920353396008608809239036932548142890846078791444733154170969362374362906087184639737424647398855863845533026865461699007711810141471459404659787964626375400098899550769623428668871863580596255487003299787873229401165723736767964543549951247531189753454897978882298520378836909234843195530270504611773628662615896866358658867885394216130430606508731598931075484403900302931254720868255318435153866865235059611857611460856226026592842432914435874698215336945926709923432090052037154937735134354779431589195261328596261813404924594272544847505639585012635349987905342769542937025325626915326828290797401026247088986308581938665673085979482618918966106246118747351019821797211344148318990869182748409062290846989725544644079754510427709850694928289455108212492560050956359305499717739554833209685430359681580673965708337350043187733523806220711623833223216074275607417134466483974062330793054151738542147589862951003036728137455721199944305505135545699203166439290063356923362452826891907143384283597438757414197402862076986441945157278802385241655213532895334997229724300961725164662714813036067275417996680608211104434205547109797923753700257594143872697694595615785914709267876140337264495466890409176435860235094241770412361534729276856438481389716435931274767057851630509811095844794525747191515680341790209518879761914364905594271516691877293384207324322364735995230519620310581935671343377887393658884951586209307831465847746426691305105622925457318225162229315464452121293406794566506040120552573759469801022387129317023536111445962275302634850411058334233274049245215009285211739595911964368708446102912771034533232870627131869932546329534462748356848568063863258878107020053784083129936220544548889628636261232052434419749629259589007416430448408905897203373087382290352727079415465821867905627212915740311777117098243574098999938891219829501814979906029862113054860161921981869546438820736875781445712024911008529301953190204801751176478685104502908891093728124834481212669542192379528624999425007691900170978385165148592804852432762024047413759990885130191063868750581332426060645756829141115881245235196206864019027320872749302831921969029101728610227697631357088922410414103755903312410017248542836979907634466605744654277151195129498098153913430758056622964182872771703480573790015766427394384186627504528583704772548396700196276197886249299652577520378598626555282071192307741430181455943880055838821612619153933863942046157582790128609605849867167414832403093153648385780068820516680762560407741181373063997398612757978082284787375239496702386828451942356956739864774067018401474451823736304895145484343316143559141837825875995661402851625830763037596043569242866929283323794791784599094613133090246813247479087939687598825728434196283269474676505200382553322245169073025379120761028248356367058500544852696755675710390305896409179062308262372505421244972345359396143610025566489408476909272021309800983486113387308442629547279856182091168039781277116630840259325426580967368520410388264904231969244561880960735360827550341635213973881999568109819748317011020092709061926537813294090881373491654823901960305043179100654979655082947759251730181790816753536822696889218436326192917126000283039744301143258861290713385195309935866784198252657663377323314491128695595233857203503209029024202477091722533543036979593311301809408865095439050217668762793830530052741509218742299380512587753149134719421923398319379340676743452386894853818245196999722951146941036327009127592571867185178136016538086123776688370239046886739043496628073045980287294520343345647054374214043994425586917992190117217662513422733731349062382945689419539064240691670461964685977550627366222650679825597480093150624015357701989412557846971652657636457208913851460427908422127229686762630619821500309903243393587820772229888133060983147130724942596374375161038859400140806356513393416286177892131024688283098280010541806978327209693073199822593465353659231031071341811555096722666353370583484680908120914267630067170218692730164076958277407580011838407604628037441193249117475379824502920827368759974568916739232156525693038975820558000309619247847941823887285583157682851609336246958690522460574304667051138031010055066604418359752014744727836605505064867946700947568992683465961421058350594274262175473170213323984843473452915057223225659536897295683033712629775907566181126084771860204342271200846790193327291657323596684165366419290309340746013128232392531774296801930652892289259244744082276532446277981460629172116669534402860146314375486155257596182551614788048026366907782771251938803690845739332680646668585450517555689712279883945610972465676885206116650009569596103553554093189939201854081552995875615872364582469469980714313849989867282494905964854473492810314856600083160211468285852310781727726169194274549081727007177221123281372189067942731893202672748279424053960496424819994856495401748914782395379350183279278546781074468799965491355035211517218773500010435106485703299226590201039515258906820479784234898214445836922659934802721448880356393479837781503503379059953412271705559202984837449513462444098610339126119821927779293922065898760345113194374770691321600680479164156497132083946365988581639694152370105077269946520488315872950519446048973554313541636669111832833787646034751276133400135759252016992895642946291829241932480198918934626833800568714218838647076375067326092870228436474966470723880490011106916086004351465891114272335410522334487287781381260448536129257736267968709730858064582818657708428953016065507104667640704105734788910804226324612915698831377201512989971619232623560665294234638959347248288820434680125434175790719266572968477417661452174169602467360638542505232774447777143539935602027984848591561698115517910744108173178231657101678079607390293583178988688267190639385107733996815702665858087723215097429397184703822192406113961652684225997172514948620365760061348107225797870159865446419722036774238231467562459801194953647412700904712088048449822364261144102237136330259216252793611592626080661938187283716680304749040987829082942398340259173848976017498885477853011949646993336549962245267177301990510442040654244553655610160154304390514209422365373516232286722826153300859694385954861992765575640216206297882824059655132322324025619578027184983390243940231016181256101093686150173596751566562735508797557300037486498139815537584891233073109675709889767322161254173636013361317348760856911285667375617473878750819877768837502108549599287899085635722633034447406925930648536256531857309161549288973407539426162271421725036655612439825242821918240503276988631640049225008272613103836563659624700236029282806759837473965932035128575753640595612838119219427223865287212370463648554066063453765758620197845204878267522671038137840049858968651135263656850583835186928759332862470895024843095653614955840090852966372660263482435189069315036079992075994915405124192690127047147165544190535175636247046358364723258596737141952886667737807265416940210233626187169027046825570008829740980157097534006570436735956077379036895883657968476158112186674527838486374150970711186349895649114892841876693472985351260344821985683841524111051774519679436067968583396471320319443526871004533101929617964914691811937093130344702603459578694088374609716546459886906112592970614395930887827110635422694372139582305252194459465702795624337234473929989485927838461904422232138849859763513671769705922464955902846216256800291212198974447310999564193986692518760116260347654532580425674428492489531076403793590698208192713861923557133100434790054944172169389475079183666385785539239479663839923475766556947364724336420639055262754004245364123419083368341766839036525678544465653847918022523986652251493728134513349467317432641031210668470106709849180446609014441710561571634084950344524482127278282597598644663559586764118527163183009684222730835508897839360809377810049338473992618038736790666998766946914775216150332646894590930957515446640805211806866634989491001836434501214716760865817589073587130520593206082333818256404060492323083197243729161000165236325824193244848687449221225018104737039519935998308057210264402875460961078166246227206253883793652128784449763466788965407347597305220832706893725123631093614758850286397176949293046441803615848114188330174256518769464696064821374113958112483251563794406469424316795780778326146240325276108987030479906214184326265689313142657018305735259223367731864828593106583859538621063814247392633806509742312970919043029630789804693611608323272350952912620823422626075475257739475440293353536557782029712797267212967748928953056202493867296188012298623349067018225220481099900693055960022035675104772306246489515366870693843865820143219346095854847268961057083724713520148420642103678366312202598988348814811295816153626183992163745987001099826903855049947861025255197785890832101320839925903068230666532493171965320945777025906818930430535055840840589905612604446434786408409459246257003860262488117398259813212929581750279382201068042614970503729799265895309658200119215908268931746936683676445394151134588799571224515209866143232958461270146726880431206347966573917917441803771870220667689835856981206847500753509238212703062168052615885879609994837824097100955498220342911924224102141169230100964011084333883855734129714961642490965246893875341420470150830863129012740789999305026926738662429699457347649326098041735551787770461285448874692364285419329747943636255986264518294814763882528720719577364639971540111962594489334271875275794723007142730908267536289406384826814595584017955895794152374415806812861012189605433416907809233990350215497825803226453882837840877643747465591853290853263508786294107736250877387490591100125551753275411095524045396058669011764981972952077023851855878095536128509701225150327701093649793266111886393458742691445716082390663714609424306218813942632277974938962328470161638170064774928732698427002903815007595458006562496823785251708533964766473641896240014893350573370610955843635105183434721922728072203955924606337870181189135932229079099178374463996725636765196940184973539580907122655207191626587618967704959670869466106311260093084210866535517046176331997254961259110846519662006617138440087488731262147842045511962096030758067287675466803146796740599513417265121030316055938068280245894123389593549340721524792307939941411384899406737778190888586929445469876308520052812081854592699007354230702949072952060462350217425851763635279001103093433321719189110405759205833887513053246735911581683363737962646733332848777446702588875854810831784965642546145483801160821614156820297725556366559038106525552995908444332097026526485192719420648221123141342268164541097096390573770243431478783244806890682134755555346749083322299535566884047503053136881010618365923641767217668080106073144005771463456865090123229353164858254811393620666496779564749493660691991080443597152949473370588253624926854190597168955691839941715899055108584048985376689178049820540421453620756148650767519133610043063564238800267582638704675120250483565772420182209834583257022945527596195225700177258736946827788016560836962249404228829596049332819251550254161170563758042770762214782959418991849434255213628507196510916183135177621180050927210426944014088002754307489401992285572571912069237165963140240982239565760775298446431220939634146638432058223175401557032053275324609591183411260093493226432010128766154273763242549369187668285271905131620647748620630997441930955517680669897633187536362066765062986278784150673732284514773383977453266833119991204859311363811220230600205490857526635126337997373785857644709704001743013864621561745293101504336916017399412221053726268140525987562008882294116518808419447656819268656199525270195599518348326609185787814894514851438746424028849999871239107850110047004908587433099005699360221969813299266669438646856027199272466743097013586257253306482271224030297917878552938798581666195329679285564335044564808880487881578349187714966032254490739010571960040120645076166622406330407344526758693875400643331871144743734695174615180499021924713912873838214613797831853100312364590563945478697742405376283115983619969342402952085964722568350403159027349126085763914880785584459808988623007925186750161884256199767329978460603134159553376370364773521970352745627233369545406882465945164752650848775407197925402275434629761898253220122796826205440999296857748677537777807404457742365652785157811731456197004452566072842180174809808297695907831557240035096785285847974578086607892745520850293055327375179162415402051694575299970541109070636368040388464680062085180357444604790041735228285727792627560787115794650085516811638715440099303925430114784275879706423113931723519024137173421589571277030930358072106530422630709703415621131364105792838348598101771592288274572399731696180590640707744742288648399184335554188811131460896438632408538782832868680262637000188169794165551277329151239926034803743706840156655360302109303538480343108939282120103537556057727642581171113758537728969278820500680028490418525405838256305246463905041355643294676332903599575061372462422094451299032541503609237313487832122517244154233330013233467527595548466189359425823123411973719539674247452569182893111971065136710448446866581885227470339306778087920440525727432269900235484695378418142567503556935069510801482599556349146122925495712284542040843655881877456705916544597547968502750780752770239023112310114773126415265743750650663431506596632417729142100868953644494009388151881268506218765770409140063200985447552861737335369120400373815942167348610486097149042749955175665376633531520319502350075860673321131738785254969050389403491736143039940949591520119058085512702235616554414168373127259460381494033503421866154747926492913493403877610879995595760990054287274578813092739599709662675456938121419353091370100446318123245590978083044490814466857557964189808906766502065871804586392464108389910729922552187109233483079971340372573964630830903775431030535322531888276784362993349425928715330746066370800356189403170207786705336796769168026822407134041754317296450135820023261293222590937268820344096283685339251833125307823190940716882408152499823351147533844216316063428796764320573077591664337016233941079352056989459135592892891913987866850793543630424454441995914673554741621492309949540675749541926410161844584870996079053538394740217844031635367662665884049983210531295761471113184619648761479236671511208332713098583903527198966189052812955672854606783242955485320725372354384519459326305163315717276672583317713796695509502607082626230850625088282897928792372320741164328070719159955705929268819895467102919950408831275746778629547289648838711813502990207431069318305457304596024380572785267934729434488493463495222134439991111552267991643958734698932853373746106465203584327127176961463315300096157411242613177785973566964527941774032428390117479422888552215505182896364532691315138343416166885871991037961245407836564044700351112540311371554930298486183799062795342546891726058955089212202123156083546909755610527346630487872446740505477367859313697480488121983968805253995595843348294415984245765381709268183156739699687472941845832011595912175844638013905075381074767095163376947546231700135140940927992603539000585929817095470208768328292806446063177116819980530749831522026315470196353010037583461205050699684923099432281847512793017344413054739586065989619690368192692040256555039630510091374868253415318414415364062580368175340697316810346017351814171579716663721570879527681990475489823736478720689067030915848547970757216815714670382015108176150468542901982955889031500940431802418152351684939313597685159731740670186218155317400306975894677553373842590161266977072185865912127522440564832502362954926224488511892759470610085048402382803653261609799695314094788419829929540252309453923801096051783519384802470945475810379850942496948564707125738545916614188000156142312616714342804769376268755765215723925392741600935993388699710185346058257899478557412648542040089143395194513196554971807798945070924623899863660623178672370865085935744266619254611045622495757717445416008696874543706299840732794124436993092280181142974641523155446625701770366450311660879852111316261014265939604382729667656646650150734040712841805102830766538300577128199108072013260432039789754386879544827989319806874365513368114657458636968578739271916470504310969169313886235393633972039603076750905254437402479827655085596775149996086386584080697424300178446058551123632603965661539828859895239846598356677413330756089525786435791665964111476355369956537159125164129957044101761624133379807327656688488582131013441248066003835618224375094013099840428162424627935065104782593447387021128996427692286522062719924359876219172876208915155411385997724787506954345136019764422252062814151622777911524675920137311889173814372504126074258511932756627581222792279286539166664936056115355698684393897570257175575889278489393718144806429917324292492920713550768686211155668203656763689574228341362590389174062886158797897541802679548946790487992507116648057954697491712255743163774671526899445166763789125705562952851142572906385790700589555609536791829295248211163329976346892207325430440108077580779137712495919905550619133423030554945759417788042412273257651611841273897922384694401685477467316456047625836726431268452755487929366882435395301002153538140864231293278643948413406336217989509417238865034950089352190573995037553506991287258689894025663463312587351033859552983643688461622665060241955154149119259731534260162297071912484889526482783899865398946053457388029279908298631989436329338395452079200927643358878930500069100973199402273346644057597242376358171096046550968745999846396541117560485610737686319679591407734368541700300855588282788500238960749985639114954729322594354741715315761159070975269051802680579806435159064121826571186845238131952265599500343300594614490810885534190258087046564393970661323023162883004383671857900563572292544835189491028338481094964080970792823624634951520824641342766283405550172379364928065992226891499983653860712649484302733642677567969805303702712134512884144260895783284169050543274369920149963946296390029570213905230339421210326859029053512456199549877515543780882294381010536670821601898624520851016820593296690715964381650926009011562505021073457112548679227545728737175981451951297911964786946807180779949560824088923843556835045833993509318630555866044818845810008068917093618730345459261462227234637495955339043670252856804021901306041826349977860360171260216778726793700085994274178975202206617892019013271179668788648884507383415633891002448360767386852572451841283177239166110959488078976870058226823889516643021591397851951498658971782163463288665449278146613592346669009013348348372776087462852530711384165273707239301241269827752791750949716357241341260556255520083488122008562775721337941625719339138796505205556221285164818761214631199702668660726503061146152326763211784043192600806263266408171279510367827431464357120130825587657525298760300174593197762881454324238751668264409865608474227617374122984180532639729956041656723325469821711986233031224147369643641000230928865487319400439740585733669475842859009267795807809247559966565125404311621495890805965823676966737882056341952611732024882795795959675852123825159275610998428156245375876955548534815358887336300849840178020939970201692512970996935874307116898132092298590363968074688794958450515434076762822879017519831538042476497719025025209867092105156869780152957446775634867240388384679509852115766202308833648569499511875012024696343806604251800446079974827189217088116025291913791534990275107773542196716623454817194460460861480621533550749625390631315485316400662241354511779549914214886807378358126523295273719723308561635228434715272641200170700253773354049916792282168857434412539542709091503553804295004313174450743632319386841596464356034386022637905732007209823577596490374115285776387253108126438826767988855124325992047939196803984390286693141888635514589481193658756805271341380813199029964172147403168169973335771044207214493336647964938394674217909644380842547867546316316959608470292074674894944420537523442492363832446666121356792838930447674440476711758602398319404470859889963176983288728283645962468216581017905998135470674127546589531417919310027883985512316806280181711650048174475014001092382695415108864876196903757075422014222096870056845894006094611104543664968589550422961290386528889747922782782174051850874421610659272485093289261391262178169954538350766717134405101401582905552405422572146045853709113578022732272368341128007165604963272495485347512004582061922688190599601053479444650365106795691737826942853348204695013000099597551010725008461063011452569140563526451945339011617278067096843744970825397253216121792517470739136085355704855077103115166981390905549095295399280496585926996692036399516156923349117972094227099977907559549985245959492312865881909653279650380536136182073916665972953081392208593454281097728885382229076190954234031499524904106035079296849522752066531206463430318104954984702808414523293429907878256640794436747759392738811888166873665312738436055670414561883058210681416953610385857194852965847453657727284365817042419615961112001347206702179965931418196695407059198207663864125172123596810661816994434354262663689074525836640482486304468871825559328753984242427593884947200053442976344186577123460828439155197139942688588193490718040594571148233097961864370084394440427566712702529560194755417633990910544972591194452868971998804934252635660368849945806384895873983417435936232059417428659850650831548754710159584793547257562131579733592240746965403733782542155242735442171340661542136142386077589097722602072376210636466599753055922292266169300037741560242636044194607527253903233488273477063783529528855793125257047163857217191312572917812798133826823364079191080957247249924636128235119348398386554694848323187429378068009978091512531282692844542204960437850784561724208063294596529427870856436332871046897480964750677523458553296136172141241553333485980325490806577724719101939546433602641458042559291248572910757220072825921817708233219607076653922182954658396335790930884049019850397161307298486773510174623585600420439120101202437280029683789582544260381497745838938161244763977030965461238377813806183361875254315111189955507258300142131881480154773529677241735318627290377896013548594826113711133699049725306656404646079269488991770008595007698025128149592060554432896833588400484162728364702355275170680960173224097286383620555734278023395309036646236202304174078857388636856239147296266457992650245334744858850212333783407317850601416787629154173941621370144827044178462425235319884049439913391546563908600632520448106340776895498691513427493139323762480975534566720470121074058701285122542246182880362170764679215095232454776505244112236593051558517577105099415233388234864397450148172809009309260564850480719294882269415496582235989053386512846850166160418376409121082395193795797872292854247342343247871367048006293180793223901913228725436323211642627578550314252074704568239862116944173069946539302392846465949664481949233444929279955204607529422228404364681390500389800590086641674889158003196696482466700788208215108705337581464209039426277483937826721469930878257704367600912199200991265396557251237226237613651013756809423604206540125891604861458144275355310849839252574303848330851969473945584459797150360387314898687267851879384046395200472357004112614986717634213242851480625580078520974576692883172258610768721012182326868347771533516173630420415586144580632428472636950531397628348209801611071805072156202077950032564054561792765337249279812295835314507042276444774379126343781683808733638134540834157764640393651189189999896588602739834536710223941346827661574348749254453304568063919639760304208722508978687612944020700252798209062603034261158636672171380200350903180387759516389017513591307422025516570667052606373466983041840087093298765687226288709047621549408399661897811206245787204410240212392644932396316799397483030997706567098627912523072409044543785530175860127302152561571844846755050361916217532922083908326394193015301415066785756687166035637215172782766682548529217200682159298404945671686545708607219289061754197168064388652633941593331965214793804061760696587981244178768321453577856213355925261868635962389788601637504313651962289377486899965961975222685749079494158575581249999690789465791642167818844940041240017361239045761919411982500881276847053527964619130341754245878618267153899738849667331494678853134628404905605839239440536097005442599716368815762285513313359894809596221443721508874916776348510227713607018630638934535833291191221335067981357777603919732429576293101029094588395985551032919310789586019229971707341146313633433676964456281896358821621526351906819726136936778302406585586581511158088043761097130752805196382260351560608119757174469340572919397920811348676382455457498294433361723170650099449752464162401146389764062258289656427003660100871633966363437926788871457447181650675290600075892341915007125092173827809929974545490712532129775947488762695024101505628209247394498169879443959665333063104857970981915196796922389317922589620403811887505202281073136647938696898268951395891161912288210262240555135192948511111137420108085937943386700375308906878078303633689069494851480719253838732575898940614657604708353902211919069210223167423359033332955794387805774051606189286764762636041753231894610590025810697989417988511859068731939489321731086444337971212811865249235272846300963341022103793482145361332921905496420127519214626004989128537497809427356766405386516795403695410556640905837363832715519030279249911938040230407568054942004177451368577332292758011451177539198755415821454176774595238119895985706104728001835106082926579353671676280172540288951127978638605466626927253579099279082386087818300377956603661542702582496789442835450657944693573888078917504043775183966587953589648600168512125445749157386084967983148128967172883463626518499593083106028963209731529867379328542199618976134973776219607460932311742770153551099006844080524244867551714966790020340908644388055607821539217255592078522275472965544481298149294930583891976054199848011918487138445178909289740616258535706193611264110163163602892388193189293012887516281710760360762103961658158714925624366319675893386281980893224972016909934743581856011907221093133911695474927830910502664218133592574984659107428380683115404770684261088348142929192082869486054259168964152397082449540471907145985896490950731233227549314358657178140301917772398195403542273250504273156110337356679984595253734776933084428541078026919199990473836639060781294570258225408227528720131063119254708465101904017253027770026067858157211011585020011547374603855705475775850070774333721574880215909320920711063910813280898726760763934768251592288068738091180930125884715659242498207306025644619229328140049792644238944365323915808554049927726549346003498634189366580231073970421866487279358192677522545814872268348601563187131172696647602098652786647432223632192812471670083926479454843232215002786470806145746832691315323283813591750424052144419234701113891067636625956688843166899026827972107990952064898718875718850269001672331991833822370600014280005856395934128217575677868876241220756927775434347172230742127366555196474783906655548178470977053902509357149945704551962431325460977122467465059950548134010615838709287266537892633279807177511531984038758113245772432510672251941489997379161845891683865850707354401118581827929682646148492839351406282123421734447459906619956289758748066850405173661118512100333658644975595661066731021270642052789640604717356100142907721053562646482148687556394799201300899369998247909154103761460067791772891696992178008049490440408067065750756615142852066543918656711008292779498853262100195212462245243890397981038529451455076455511213355216896065472227370961634327370701858938189560435544881954978342576243073899095486654850881980137390127523584309553507014356501918729323919689966309372320386182006684227366915370476406831612230112093452134152041779316362071075400599572045320842542555764706582211159449289933519802453878560748450489870537471034346488422051683886810940104228503109905792135745000471430758967299634204388914417043509970135656335678558520927993187437822137473410906494470140027752223765726670329655529808804284225148820494897199894126015509253271459789589603300361602449749856876297268544868421424913333274974937184089714447119920634702423308671560983358520088790511651004954303818091074824933111831635553851541904433102180747128287939703824796985543773855900970198646495977861230335705133055683356863471491048496693096917422560079904969119279236046074298221078921520431291715130027608570701314607368727181665730623291610208023756636453084432625335585325796664755504343576768935036125413654670531291250640431486534216706224043515984499161240884202395922419665691976824322569167394486991762684418292561841272839008970531043638525305220556892990320441244296286451212505484022693815765468444863422185009160378425630050934631728108053678026720504413099243188367781276542175793593251538288454184998795896681185332610521231021869264037498168136971862870407580214505464552210067590563040167792872380875078193497367183822181715504867942364229206573991321930540962137215416028535186425778535712074795986013450570863194908421472517995134618933824558353592644388940073144168574093375641034667328492019608139638448048201459799060992964427182645482489432948954697094417079222579911112905284705392709463054225827195893551311606519712865882685305249935272531311679176092316483884277650932773217692172240008578411646049548184053742508190629931102279620297660858340430266318326636782945117682510468888325461734655325886452008121822996304630341723250202059117111255738407898233865321195445656506651830978853987925093832923543856126749769975699820872084593787033990768182732396813454954319433138885935891135885979324031352468008726323929817938962839631217610303694779785898161425710440421598676224420629187976408856099267799466097231838616377234506267292687819476418305921383070122706481730006694271924124479941292339970720734746422692192209430765862185475649358193678163293813604129689765859851717179191147782637814597408709661118938252276995147377519731558547784785991009656260695546886143632959527219960287740432666601345117922220948256845158806610480068078943781140279663919884448295372258471567448237716806896077896443788573358928403272576504205046582779695398921220274835258518638192367524671420801165301678632742005455427391130371677565099491030655271374430516887114881112624630019493414805953655190844053600020060218605272855589931261256874196426713720366170696645941722698047687843725075153287165669895948573720047812534279445205969439137182015423009188231322541689082729351649081874415670722700232480560241963935535061003662297825279341431038587331996575969538772238702361101908591170245642146775041184597289131434728236854696056854743992604525727422718556233999623992064377165272942737003281529044846100971289370320136626387372446288414990861013876446546597503001718329765325634109951242188809881366469084295927571730963946168810278019331858665900344304779190057721076290110470355662061948432365601641033629074139969921039646064804048635013498648279232219873650462729649559441182895997663882391191660105280449172684739715031877664370134318181653111841571750922316928745344814459375585073916458944127986959324214046096284670703745425506170252082808498362992967213226561176633898416677863784426185812928908046786942249374625450786413840637102534441461511372061588194270911362346148997650990528439371478489106124617058730099427715816855249670074694186155511728401142280764513573854908790761832839213067626693618014584495992769521614550607832621362111666611530928243386704961036881950982202920932180095947422005398593720579314254250677470652683639717964026811275708825453362530043339734879860660337215970881246763263036261341254373094691188661924838108016394067967839704005381273343524665258135594338978366454519626032688998789407257802390703183593773265577729690266036385143543828822238830018774564796029737555214128894505700283839883631024209473525097372034615618107151544398951116784274525016005770177638048620886212567073880658310383547977916988209758720205983355843015850451006070658730398787231983001546224338317839826276449621935260393627973757005563390068789487699282299538350192914025445181360701360044256267607496390804814900956764171102964218843563521634202625505354758224573169846926183307600736274853818111555682271141539573728781065395073919864961523313335336406175387623028323352668258346772467687890204785483902434129207026787212759144958792946910858830255024763049638009449065447951911896409179402145128697332083663658231786755794000640335079061260166026774099576563257532580401267352523805986461884230174190187153836184069645183227590920893324146026495620620479981740908528554000377925081605265521103925649031452456466509122423900773240956112755731017247829447220247439459922547347835652826039023440204646254640958578143883636292641260491381169782451178286287384057109213478630544141406281275076658985245316557638351288226108196629493615749500357561572288312556214658547314304047983852079399037006201474301279396405553579877094359674669252281811986074308067622536557961985426594996060115931634256575185888666922210496828777279000690594238608506536435316220926015779608836105146548624810249167655129633512427944438407296775333392744670190778812030946576788404089662399823595132724268245369971856445097776878600800195523647456523218987569667634911870299275974397586151604655799940454099403909838623201994512721542942126873735996282844349404087039999596794198749857350224922229687952053292190274188893183312065069573927825665881687511920978941441455528412207620141618181728153051184547787494330173285243553175185658204267267061427125558726529643834577961889063832944072626950749489474266163626943988804774228654355094285852395081711340227536524774853646481731142698091808760573212059503279200335409095206822103064998500215920697670018068522198714339520871028458705779092088074384268568449670475159557683674251114030473865107296090927856363980009414056690974895145141302275904398696993345394835054919034495554910303082164191675571894160771097228221723416131195050084926443818082180487669812172909106121709258357174464661291074578658677637608673198078603752716795270198717668617813404413663153735869129315940630107444780841452855689389072663080876206724072423870100002551811007929965680141226974220315403716765138555797720039226155953461065723958592584519598927527796728036825376492351070447686042850857755941202546719731150141798513558982238199785643846484154548295245973833741035809593363634061980645640710336753534697365175878168355195264106835961525706643314129499827160961580910037593970556239749435373627197159257082472219333831822361316302528664720675979924183796297954192131685753671391867870747887623162052162756458143723476353941612420646177259308599434712529990691202674934604403267996940547069223221969929603843899024212767228981231887134860924008718564499953459883571540916449495013264799643819384990099144406633241558340597406843813903504928439154783014259589886227570154461093717179264821153394415366072897876343671088261684529327265988867974525233326816841041877906560516485266527192748421419978389428177950072866858559492829881935541262915822344069958116024573468067755965356359812661517428337462089310691401034828715888736940115804990614988819595319319241878365473379484466598693893717917690197861820385941667071241297280258317401194614183604553022526621128857348776926105149132491551462032169701202960895179359254622473588893646348192698388626402062944943435174471615886404966000661225986718768022823747034702483982690841516997010159449981412942224837486026843484467680903276056114198391921918336256947467464836027679361689098613364440700602188349515166971607752173349864252458846863523530298637917874989132282200402036833625774658551410447746467227948512390175701948385048369760110537707006080849298161683921732504615591331253534322366474062800335443710566047529737201742716147834070801823284579580349184322036907150426374036000616691792116997866214946521723540445655478678818367335887176611265614578686896077783298951988116286493374730263886052307038213820811980868874584704319322453239899052764441427945617329077698325320176751198864916847151067969669298610885983707207588969690224608517358604501742988390981850425034507505225508316046784048537060776013875951187065478756464659087273942943832015472084508960688251437623849385789046725930324206884413011649128160332808549968384870981327266087677082896428920443091933098841738873509083980193588007391646089229631186298430453320327158721377510205058041609834010561859929082924258015270935444307734979342613162159943338250913387475086258957939297522741780433630585143652664840083726359539574139691253376687541133326615392243832644916278354196467816700523593330877979665144740117055081966717872276525089660701926900756831828220809943177181607694173383443752376680955767756167019546779599797599969115745852815288471999740930497008694182158856615406037855717503581229509220631198034897877311194228239112212219460953223621641407652484953291614620596282135449823967749283209235696774174560925058426244607875226750815197961329152034016054378459467397543560170551453388207561873923434553273878847294673500878672972887468625627334431045967570162240987138409824485474455735571307443395003014477359498591227517847652482327598685003526836744937759294958274712830841273055455181207992729445216003979205346302873110408789853113563082989407350353570296419675109103793579278750427871796814626792660436582215489951947141000012196115862641293845908948325408451007346336175889795773907243367310549279451106021393353981064136186860170514980594997304162681865118452943700986071086493291370030132255445283102829275419428260502706001569751529292849423179203652291199506914682785419488980094775559430397226326726497717851535757304396720823204100034979975714405111861447468524273640738378089327397694257807672255563807567376100146167614548961260526600820357622297171642110967335913990446491196116098980997299244842300929236262802490899097904751557716274012256625339721440242042422136069212444852213522624868620372873518700499710604084503571279859735908231351458954670994870693539367597660262700109213325497335417838388649610412536205810427817750580103760498173044551339224399220558041760639745812059515121182664721609931847603228639693993647370613139225738369310596090590453085625815380694152330113011704144010477730554973675288956294203080484119158786496718017619205859915038840982705165345000045609824974565335637548257326608137244827209308949484674681706451468149075791497733967639691070920570830412290961195896544557394469946283970051028564124036601306664614716021647894573099476776661427168453536732568379051774145980277857722359799780125360340668901738345494566404608792640662462981347062171175541184387431990829982453853324558615654844080256207304353122509736163554290453720975564206199110396437285780759592025837816311042438220313884210775891421284172202278029312436547681833972152356953679120655134347121801096677600878266374552891596412079325732831600324295647928085459537829568790564978613915239180950067924576865792943738942006158273729698787362082867961373529439371163941054963904366785264346562913656939178793521638607972862343528912203879096169658485859518997697590338587654940386896917470433374819465158939020024586760943631619313040014540392244177127984919124568412147573248209026619127511240334523769851934220623354759180965587906642996445147220719669238379702286778869854538582969405508264083436932776501242940019977644026202725916828418818275736189833663528267715833075669123010637977169363519045558876770469140308775097604723625255481196272322013064180845244929666875374072782455229992565305619796091219357443777050320701639739209531865673962561327981271941117041611426012014460982586132537928106665746826551973255402904644780485578744881249692621732954845190893574139979029376243215225161888932639218471020968238014607206827310484605654853849517101894193526769818929060438423723140408994672152543728588515635568705767537208129808362247844799732151685522434960930706937489059299887235956448921167418449268188095467574240429946554794605090516677415794897237453041762847217251467967224418668853962878304161565004433664904177881972334995070452222301448235423347306325580626243095937944271725462440575608478644685451864679322160799393185510110638700062934019700827665308801750784389743355393168427501542854334387332506550559596243817531062256368030938689197900234870602034210748268811684922749820938568172998640149162869522959807574134296878464636407473135983031308230466685556603576720739036465867265238263567330791207178293016388362974668734641850068757436335076397436667416841442091827288941846135590093453540096005089521582337463801101219067378441876983552701337535602240661180656502631171419056656474757393754486447097655416266317186716171411374649891688473691211433817478273581970801760666880619764468076311264222668303991967732594072970963150075017060374622109482555535450517233608661175716482189996162404487642602298927437431107102179222079137549458234332111611568376629237925750957036767392287160352201511989183754534961708839516845960360462290491103570274573821118041914272014583439046191764342365493702650528914046212970562946405737820611381078366794815189234013641156024897697529668301762195754439184209716704009110120316636283966984814035941573963301313774998404086335771680271367202339834649827030503246011256233778936871434845663900233889205341695234698146445785796374493220220422029370415227474498468746572409033605133735288324668188557404922818307342060402665459916596093156057401862980001534493572247038479427947258014658522161829197155755932094878894243104850453520295014532605955476942633367247681034351900357977207635626511601812848560178756647390464758072417452902335042684704329203798759065648246751899697541281656241183006171253362369389748566888967680136550321537428546122082935236506545611534604582279987495414213315816844593916081075276204500598811704568825769697296680727463504337774167313344257040485286291374481750837551611379273388860623705769891432426946145171954408259885803108465229918499100852490066364544573713524462117790738206877339779759289119072276265572016014243687034797072529689075730803067137549952009052947655072906968431668440007106324027705406647545206596390224017731438964118355317886693307632155796019217895163861095017054748172269267338581130637387322260623817222318694240932886770999388528862975539356801075664277176208335055734014114438521211101608015139351550331825492012099781420336775912322137874644496774661050744736643897923558517463423460339998032893117013771219863425190381776123890085219834418652909972826648167678886819571292471566618600249832596247610125296557593244746638882888540724223822632233436260217322496388320992328569690418612497443318300273036095233527004059156383280898599110386104746852173497252586073680340847086973924300263409764884978011143982361953471111224723140856697311364704624600341275241171507097056469804046293922287776905859495096220962359803276335049117491301253645987904035690301535824116637079097750520880962533412475306138504995594440480973040555585694154934818988001379461607070245789506596593349486380199288647893248129602761964340561685645038264431496862509485022463878906683887282212891918032214764215768560342363977909064165215264201462086573090088066552486025320450799942971143800353667361217071660648464476303781309107798532768647642709100255648928515123230773677687074424128532581248887308658626760045239634914177557651125884520649190934166759339180614590962730763514402535681903463683886169218017670925878829769777231654647745664127079444267088635302250038106022819257538154972610009586422704257576630034951001079457435337376353446862848863140612297785838791822005097484727712076751488635061009884708789447452518617611929091149435516577319617669108235428309038376704271032955050085510087029312462163213903149791474813677058066792702269066470164664420808681969459859832709532038011903708201353128459629588606985011883123754403389131249545646467748880159089438640235905175681191628373030830708186275335867729198164166243628144711743762097217061342397629436479654476438333140612967894118804058844745037349951837931732001128903314556064979282318241852027578478168355411577289924354727551152934239811818611520135690839274305957317744490075853547721997542823653463973302667077328374002803728110807292297419971708799764177210160471706248634745855319852162099692229367888671479997512309825680750390892085424659287420939383318886267480283989129009879844367543295113387408631231014706358104938067164338968662377118726712811074644775822008711000468176706434861510519330957539541956750324954867596564132688906694057744213441215059640223274046396069650526886215130853120645684691082427437469669637171161050196343818770030892914812811994973890139770464038841213836185435913849041623181290497726664715409070373441375260283583543263494244089765782362985529827484510928814283280521056134333987220954946501452946829412921680366755354949149292077353917557230346092176050276822015743035933432183242927160068316401321819173020775051132181279992258920571670117483704504768811580641896521608884033726775731576916494735981703161291841741323903709398000930574342404980085911751201494439500495545799362982567705835533725173300108431999748772647092143559398247582645112139739319412017372727123646112979609683632272591086679309375718252377226422736244110186557169461591041711715878410482942962124938931998150586257560038951581306726410240605679163271874833431307608572333875391746090291317416733970509527946582593857014554417231709230549645368176576364354309411776979018328260240646623388636505572298701324983362969227536712458856212904586091000419949205842302919390449173026555989715275822556950773160159623515271236711735987111098658871023463751924629165651703141752888009369034456954729440855568723872134490307358053319452560031216054520910051380693214752255447339422693852208230724877738575078561605489308004074991794369984750227220195263429822571042462751458663586797779616804802762216026867411255486506677712819119982919981123226567864461468550801488856769634890892318127089820905824751242822054213501512697125541449906729876291304640059359397897853922653053978062454682566130509232018591112668995498167304540568427756014278615894947958620535177255778197541955980510811627070092166997701785555669751352975072615214439310824042019272594322544323946485256287378489813446559132269800842483859870426953577031642423056598704328818347065926135341901375536820341464025261455044066441284348530448469774525974808055134387930897267212129644065303384351401988354343354450356079148059906386627956072091445984924983331310513448332891355763935998863122630145663284547886936329545054913253858152666810600717699791081570814854909793318786675135454978999859799766389633919831402005137816703119224692275774855983736353198753631496411248679975523883620969636666954147868059022650878320726225714217973199382883820054186640301420494806556912080001193253219431855868612653191483589124954977719617914252780683533282323210301856474038660500573536746028378651078771977079215449629017570602759295261291336003178549782385864207609375983693543723514773974235038500848421997976507938141110166876740981518474667030686815889660780303743314223153979529565434197794014998586662690800351212292372804747949400612082853923253802719807043709320342008445106731330914367140341867431439665003858046190533694377258858322019260376979203772838899397946411620778084992551767383908020745699977603519828113006064237986870656524367735225937896134469873573902319335497632523329348417558782815062324375614084880078626462920936897672582494920178334625489850917668264969851188563053620138667694176592686087851848507048583622685991777377983992134403090834201219205456692016680932181061136899391623569765973521034968891561352328515346682508061546047958915560163929744178606048815150298298352956645821489746706225664035574780158487168598560293868465774853880931443088577694683055314365707363424870398192198909663765716208861052469926642731269046543363648454085094808244819381301209737011577998439003350071153455712478929924402181927291104830698410994287639164464577932273364037668864445609946264748007537537025185609504566781035274305283211400022055040055220184622048082032455839446389087478775788070310309560787805121341273578968529407514773807630234191723969197615900041185845643838422251789411379347981841576436427648018508148889490325250786851089812246177860847079008193130462151582443339689156733971392352350506851487450265890604505083750696147984669899993331409675150505771570244150707164225483147142727681548381288297675290061301337366731124720391660304443418350351116398715216077871666935032956225591779276149089331859818181854431353651077836672463931951004789024650984108826558242414726070858100052024039643503216635079113703824567419629856619126584125260485355473950703324277419520854429488817923069914659774725217152663931808830064250688175926317213222826985725721141559886373889852834051123615989481516951466197817172163317969477017696446942968184496225542393981717384467621092383206464005367595491942023341942229915015586161765271348826200516784241296929104001006288038945106892171936852886646163317981445154812048435793987567915128045841227505744160156980112163001944726392347774223961317341396775811230222361016775316845057499165981219338593026152723183979616379994572463798127031433453202230458891685020895325435704684420504571089210285715851853534024041995589025616454790395055008565878460256824452514792912606481189494535849574019881428347251336154751920810139429007064843393313352014811021002111169288917200935858608162237595866015057659481208709793873090971274368004160345107550136382385336131281838523132111300460431042090870050522604342738588147840768998642019054682678835025408572622547618696348072700086834306729495069057965346356689201938227101658486336546185347441067511825355516102951170285166665048980603054208667491571817653433009190819422933242022866627322751297383919487542573628443094883062219518050445673416840513699232209219272957659235191874852490538005942421496412053321916532773217822394258971581346832154177747898987949300850967615632064414691043076185222362663086270629042134451327785781832733236303182576412502750604608727535760061093877627028137858109932052091147654221324346411710770466015351978342552372407362156220554665234049129523752115318524004483714077721684208363060801443292473626892934778110004318650252096629551220167206057296568649725646131171201867473068256258038361871128364621747971570664938329130721817372079685506585932068666977492671294520379430894540347845169633536935821457682483515490033279167756866950286783881298309625493571674424028489626741479942565568337769143644049514259215603209898781761058048320048726980773258428486311307798105333607018919477857791960362547226397929115743716991475123046514991140883364323274147720058040990640470491393732285621932827135783971406750679355442883762861971679804731479562870285334683307482612387211651862495824898025273230755844151515752658388079354575357282311403815356963429437319860621337203668263177669927588804704473213660869993004874910973498964288444326765785038114413767553880960474074854126664937538929245881090421084551010983163818057055941011005787381668586766033799407621466957808936033089695299032540341376522172745022824270011491102428186064823239941063163039979326773509942160391844298505249307218811674655329842421288824751678281256724871116714380043912983819997054767336499396321806428472149546904517780949754918909166916445877537484717756229999442100161903949667167343461020281012964816750307254868467114039623718612902787915967121960918704226534582036797651006360330078941337289139326988013062515307448390425909108830937988854948934232829508495642405325009107919867211975933460896572752739610570973097496696422017875724214610997569239377401611177131303889858079735868243667397397130345757635601687296244556901992492080759108152102427316954984797966785494135689787785301158784506800604710529092235512482611932100442628650631819803474711771781675612097309181487451050709409168932218563439773588954268643250497178614668905462898776289757610909099356991806133782071229741290888944962953173598545879021942585694577202297594400407922215150618770818960691625284029482387086257708833600630663467554249621843537444106905865685248551454597238450940723589301703631396001701496972366743367639348167425290112299928904600143339811421805081691981586506683375784208198431399166294989804978631613814045966084886655390671948631404526150847581839557782592754671991335673144900680760995623962500057830276101090639980063890328981573551285209892063854191034478114628718184720730497943604287533558082005796800050640244152478834385406086952653611769750850214032733430502052913704135870787902908556455404366561634213488927504700971979648292152227957655120866086053411950120670998812421708340862704271255423857218643962571355385992137976168316776710688110478768212396209836462973191585100898765284031959542948157408974216744202541883743835944419074392171623353962890302104794049632301337714162500840562224115190887975594770212684177206428291558373341326371866119672078074261652289345132803819048989491584860672104881186056278261791187321980912495012175576774384524939113488319062274566456738998846116269044217569999490632724844125218659086689357451978855899101320226592966398214000986128739350505824554128540865024253757310579979823556475960176072662837383791872230859230094945546445552088440289068255035836077190662526241479054245192201790560442050798434524108107029854863791058763967963675858928056881212139656872672169538475886111696304983034622686153439649248551477779888479986137326164138591570490150393428080524858590448586560161328629255481751623792603693118122534183909539044408681098610002807046652458235877353471160261992820870913701986210260862479836178936507920666122610052006184911719124438573127393616891669137075545910258493463423384631522901160604963596078551193555712150773070144358041456082323808197220617312566886627740272376572255642989390458831487209653328560367390578753878298535587965663124790718760616696192804149531684393859500504996612809447584433059595245472324431124191748402038891132129765252267956091212662094460696405879286007724056075462740333961947341669743636027855033002032289240696750041330580795382612200127294076947458256749225411914743296804331273431155330813092079691906366354664676272791434671800448763230941211151853787810192034016398319104013967727438991432695111094164844804607300520737975508088452393820802640893603519164005491766204132891479103771725229599451756853964839341253310957319922151605838085719566298580943903701191563018020520144527415254860821810862314746261048191805693023920115886808597307380340193980664085263473862597717012487536132590657388808963925431605070438476487219027157408371160765057906524485228432498596117092351804928276077386920185999150409914019445021317136501392633648424302189133951433113475787411790515522460950420625648000421403120514348647422062981711733894160126041454055593765482042075472772384587719284249243194416722957892868100634854188787380827682295116015279911910122633550595077248001627802247375904997179129922686849172801209463164028235175801216604805322444917242468918541382947506656425080407703792011755612443187097110938374523814050925983185958913490484528547627497181698982548065810710029234218303137910791325067009912862890438604933166225944261797037202590692896535108127552823320405692990572099669614170451737990739254005527673023996608202072987678951285108268837992294678701943671398878624136622208401411247169409019487129755694127565080885263963042726889291550464762310994490132931537429975858086528974037734400353106717535097974466735775916691057452421330634900387421098722018739140322109880433333429054692182140050302919636511769444016020366095695870577910130755428134667481781570641058311805317462761835888000995643081038867073982691239142426094035417656179035336710419012527955175599531946533601236582869940139184255688223530480447232073873016581757935019240887098069328935274334718531062325199658814901895578328978826083206047098584726502293935301705680659243424524729157120278399331550409838442553777766976856530265126189335776099558393226715738356453466032256307500652693968081677371185875171501553827136744088827943433154348348664292180077962315361926666444133654948959388028320425775963482862942027011070515234190927760523162392623757224082007753403517049726646299523409914985022701282864786040336205789191436153859852845254580928095815401294838014090699943852886491233233900875258586008413281082969843476466490213235314086823697030955625739445257437684291310007676781023662277274107928370663335956733829958544959437290950791254116673489042839562367838208739339794086839136557439603440293032222639818530604271408023587949953492916639670549888199549995306710485532947785877672405446523662611350860568923526342820851811208560561138251566024041170994457080291954544367731124874326390845953057459282751042887144551192116932044919729811549574433542679700107937495864107662459030011490666258188745980784323229834767702683063576624124465702030038455825409482880059470235529052739864615560571886974699621298504887391788467156120042703562266817770903257482474257966727359567797317391138404022145961952028614358982774761412170689049018643129977550198373354269711686359662867573097039581683482804738998505180015524495581692571897844483466928271751540414564767263498545059435809204570694734028683871915785518111317780599306972630707025508795795870528336637363659094129163846641354844267828156886814721906114231905927005886282200001748165203342545797108648291544453978941093008514004345783600997780943291332643385492641120450243795214155967928542006673382853197006607521132062279118709902248409753667492733195209062948330624901884413897363793279658255716636247852956741965121263438369527486616947852552797406687039749661281312847463948716859678391255487964691933306909738512181591198011150593613622948944769683703896558219555343695857354792672056509180991604929475999559048869616390242521422659426520958864063377856441845824582653267424995013293440434153308042965749173703142182718667227073176859030016831983417072635337464822253053064690367855697585187559117492576885130237349792818420046306953370120114059916128243373215513149983468754751254390746105516421796964522556658086717311617375461114773211301589503947762686647655737107097588816833485979427171582964725118155627058932309584104471988242040015845843036894898784001930513682310418817032167264109428252762802333907852277619698115761819516673788472642435098324881941748436854735490731573017746462762215631638738515367121061187717528018646003904525296862048278179301576704150815353138988747364412064262568851049165206100276431171461024560690641965685282791430552576976221406073639342411915252511410229144932203420150464885525010086695975816084300017994846527819167242982777227879927117987342622709709475973784929943064638248221259247803133589804595288533161847332640873896797198149096017459635755771917052140354773912296510696458830459426383061917810981310131996912971113670773276643151351320598971390725834105130988733092301186502899280678407423108404836847972713286816502348187101322522491307654149333912187396215826375462170647598788919209169362580025284566454796118306708431305711742201560244829937821973477617807158589359371369671629505231230612407188533632722518729307229620400738216001058275463039643064417986607142548060424343071159446973047779635896517992116309526709505276880810289259859483034691863858873508299071603499329378920669520629600247119742839226962517379335860951007049237373794731387981881403870045822774567007443606694613400142641780249492388458522673695097874027599252848188324852354193031816099281116903462206596827047756610763030208122951078433027451739208158488071037129137753522369515992878707250958991298009960080729173473599183559631427209377388039360746037148372888765805537869028624055403029560375736592047119491499014390165061570974330860450980176588388042170198804498149132817829310232036036074937442473050782905531781372880066581350070184361128419371942590420526697661170053539557348135143435731904090985377839992603553407667407367478020857923706125189635031842976845863001020732465363945725327007631050996133904597202953834837073836596586120277852463005420283867574088664981070436054871631051177267562937442742366048972219679698816548639813634698506357420527841614739536664258823322361363063965766182430881404164970146850655852087757315664698902636232854753113987613658320881032993788570061906050165762611251640086415918282262986920019789725409789569864393965243689332958836247516484172133876212946725618140074340203056263966192934068721943874618133262432076724664574930437811849631395229102631677817037004703573778013827318642482165364776048908511985580160458980831874935483295051674929579631980683590888344941942455931267786996852480609442132739795746465012745553126490906463552672834574354846696413586955120815012264797902218003631191221355174338225488109667197085722153937103772159019375003010290505021738862334784706283394772480673846747838391832059480547690148153285408329516710919461570706100976995487506002900663009716411598107492463342169433318202689869044509742730567561667281915476784949294938031152681047925992439943481744714739673640798928208345259091122607526853179447188083727156940853335958777458271945000398300586119020817425335885811006859367182619469852264397857308257012632851458356371611939620737064626860521981157664532160367476406465490388964701802914243267274049017060990126104026094429780701779715170269935125916830902300034906209837075253911447905410835025472571507069100988810748849150243559862996319205976175659207455626147042504172603453494536340270583029368777102068367898556823324203114834868442116523098809256494170953694398361536423298959083289724131938179337615687478545903520967948788269787513818418761577001829228294327108790661219300652349985951953782572180231618429802448642113677353385639596360029654720028331752635066849975741953793698287927528861737259229287520618257357052031103296026412371762156866470015332799261575372819583293141307991014060589033573212847467614536860268916810375514643849209299322443606885438663697475524537096753799313126825512185140556699205613254747990054633009917763984861641316372627839466398272771225525340045490565892200074893581551762274003500614586127325105576433011681797139018960082484372205334977853068719126882552313347951417086892139573554536503220232719163791391241646121924455632872464342236567798390083501250791375621170998711822280627049386236757556867213294057147743680554759367162084411287312989398578347399997232867102634503031821670604902712748896865634946763388873475573030247283143174404737577986911291408517585711026672331601793193410169429348457223027476942177221414941083208436301528599195670020959943034219578817936243325316061270902558922114261868205545771163949459256691296002974160046344747144740477399124415247213807812716149968082928637119317079252257139558479739356697148030589966343923501945276141488139727342690001138768384439499555344371669829059283670711492099725698424406166072130733356212364728096905691183627945046603837091597755337526734122942516252317791865852570185237643876569503314511261652465140745251728090133973453597711424684591728372011521372395707491679238665119684573190491017765834615939303991045303257895363712798631434273066031933143490229387089726437302040792768823382323478327933802135503698964973790219431609306605177244201557337797396876507118299280695260087447862095305154085892819241003491589155624544095661685195472182476423469589393722584314662793326987192175145592864826956834358256920184971576501069365430979418892155458305476758280185123623729223385447665915317546286526931665532407270035384960101320362980030241307390335926944421012169237033552182033182041828453701863328848498653761582519948467508855457432231367974273820203095550350435250998545909602304477255084589539620452733046057582844609119422559700204550677205248652185778373694474535478151905207209785283254730571613010992059385236084820912401864968577608072699804845912816050943697050064926973926496816322415270139159218226768203781533948442585499346501793386092904090017423077264190564564147344966647750606363894481534397872720791170055074786938623963304005673843572882207532971353898525090374512474513208618298415917295951849171297944944198415783027528865718742861149011749856381887403908853044195189836112326189722903636700647504461486702549597780648894835524800743466013694154161658726780854570220220923015881599723832858982638674103573817294780908611795955673701672087205894671678677803132305402986823637024739511138899218244341886543949262180286203471190190785553163056755254544959841536562024523293446147818045767754312504076897005873248474819152081777433144332343647719935025695501707400481501201633278868382157952232024701223310648161397438281957870642529434467238615530160225039618179734072345959013887200288296133446991986809140065313366106353400350812022315314508481225606488430172922048096143179822487892798188917523083813417500852271713128378586559461189754197838855849388235027766449476144278800878475454355018949624060062627997576229608547000745931574226029758157252297838148988957338222646227358307056777489461773553314934243534544254275661830758643206281189412547155561906395851989255771248316030031407683869776120079745010363656807473271091535962149218665517804879004218676581929144955197512800398012568681566249813016800555809723754513241730071700307121145809664504164975482749437137786479287243407860822294685301389610873915384920525851048419182023120511713213919464956011388195201930253978550351197957260601671201526623030524614097166320287877925259766611478989162492065656259295120786638672026713421494642539391158272617259811625640928628541114914129865984637337306079662849752401792875910216586213015202232811592281576678672520996818063082054574839811368303099779110754691730008358845561198731704538498123852147336943531289252373018396413427682557728892918158959651555973730766197555958874901167976451704355824756058694930075522233811408278885869973771487757891077344045001294670351512426955812117109039880736152797388661017327933054038280072062970314438672985068900036646799796604025823578173453423683516847145178525678177665892092350309430908989516046048694433696886623641590652049357646590833591737657498570767193141068000823280937558722265441053579435367850797992429910072148560038415451695357019367802413353408721605937499328910643417751945732929421081340837592552359338129840694937151142970444657393095835256040158258596571893329070234203693283514256725500226449135989156591545037739259218155680119183529976203561892710910072373265772100683830117403932495036451775865643978722353324727164588044598233367979324240539031082766374380248252868363250103255727586543355951776658622520855760606908333051706323254164564515567049806087669904796393998701116145294913651832658045860271813789174861307044887067532663415229953109012852303772153028829152169562800228315925673243124690387465222328467614293456895656034337000892303166814369639549749785260285486121204191333735005489617206824222346335384773319217507272025777425090773395196032539548312915923498556534225617975362220669631628340034853644738918884855863174158591260925434078282432031108980700190894884824209001651749079885578243418217336056415959352887321372566583618544120021528760937220398802056939915279023439643412414860263378778611985665975147039998580803967828748091834206252219619000849352542762310144853188583681047550481590036696093431958595949033934120776047888153898248478889963694537624963292310095929716533376337149178878482418466170617684551878224337195045025417330702334766417494960860343932581878646205899247768421320731056589658870684834666274691512425767978978403694391651302480910737684453316440614423909249459496134675717918835731297300616744128359559544792988972089533962080460924071863536820066962162192570732025871470799437693877400245785507959311157497808601477417222694139641402655524000232717815487804584197749726393227524535769265192983802848602532812290846345720902733075156260566426188192413400885853781144168072798318070012427236525477866593900811583708001049847321644546293163548392282663807594384279697037425073458902950167091825432248763439702521749492615383912560925463821622290205971018507901497999458490358532501436901063639552233395856486442102786708377526500498736730295817325946355419292312937248980579508512607386046403533581825000222340867827875227609488727954464026008170079934152725484806905981796169447191477970716955605860081907927340318881695410191924197719299112901331594915714952520200637101593350286922756755576923890216003852063620336613675202599637759975139391531898653781276394517955965452351822890341119271152844900044887042618348560098269398632583385948857709494871761067539170008839852449700119813920059490849690979531549488124412999554696564048827955301562224886270035354598691108742848889196641897643918768619305705367004385077303341161586582298252331252175757828448399604383578377657019897826479377531833770340347619548863626670499421576720847777256890227706619039532394754653570797119362197742922214511175251646697448050716293679435708576497415944561467190006704349269004727513141935734769172299505078203435944830795704339383552726231992329629435935897688436641629081833183259940447779299797583906441389007280143161202878264752347779821993904178182643111014029816023800956274273829348719339001135308935063651304624948184809541979780546767518671395280866335947089167493519727853994897129967376602423691517262829129113628399250765081094740789288112613136461967288908928466140389972826291848517285807723151332216279627074638330324313747878085286131184107361320661967813337787321851262699792026870705490449837715202763094383207259214565176437677721071341971200488164799215349860866273684053336216127968650426428205078364437162270667647618329919275228782435946025646458149011068146587735678887596344113199167784082751581504310997084512479720859380030834201309398041816115667732643846626747778328067146016274947256034312950018864102839304410806851522901492386598153576036936108127287522824484599940541593147834800454631704654888931247553387192110867892492653822622282310892280988079868057914152873993678886149314032718678314063604710712021561361691195564367018777405281267253655042467789504851344191985379191727053665662954499678632394765435902274883993459546855863466709256828461963700916501684171119289057412182084011757394253190206515436194934480371522605251722712685131652112786759134386074772784547982359630541639906996989443041667382153425330877878124560473175308018159155647637355457068048663633242737095686201627532834294629077217336285208856987034446220600626005011028511720047658305759853393376766710893114869814210359033335350101922124396287652263871502917080844948371050930072391001495860491882293960530458864315899087833174427066658394139130447011843311191864579529490852145752295205301803801013671559298644227610434730528665410861301146997718090996720067048722893130381164359271777487592799919361621104306822072941988233024645762850461112615307031608963677151114241072797205773498310954011510673769986498997310059809031750058236153788605251614268511000537747316563442678337540527137051199919581323296826188006596877836153135932836198288585391906744558169555555520877527439203400764888289575774188384462641204484423495211556801546620013282759273171707666190154486135997720854808445691800521664426679955068686941003657726033765842535553872579430864879050776310467071425903347148022963938176915243444260609257875101352583032474875347404407444259488433117097474514043051452359310575525476853310615850240596556185723220543579948831184066016720355128372658302570851211221525558250126352828066106690629323634606270692399587196881838951282808020930419116825702630034729540995714050753814757802384613065613549648772889648196275251701785007465538343233698214976680105178795804422952011917270831371605912799860008709607546772764128522948894288252490067690290787337580271005586199058340714431654269135512469022411747269293262607622480086857533616259908788331852069627169386289435284704464132066274949989991777573083577785485764427311401012408367435538138299704469925252182170901577581118717536425808376475119284205000256544572318024797411624558330814663769278222542460563332974275612096095372241824187105448216554041482383162996183710465066611190187519779135234917511571579037922878683958790051524137762801317617607204821640195866293772702171526290747314850109546420729552301979754182073606259511135879026585804239564115032774700957740084897622204308120759772836730243860950751980909647972687407258312596204477280540136319986300013631042794135491581254364487402407497533692519655161650741011221954905066255065596137273948270642093084296948222973413801201018991264458468912944569365778527845693778664896394374434619323041850258386385867268259452395322050427874423060966130870043531016972056128339913272320825684400563352588992810863818101639192321529741927318175203161311334986343472594642067780974585371033187494382409140269696808307455534530672638325294529032067403602394004670832129169627244005537737750229522101784561360720277636924479706923679958990258737142717810054308581127495671362593655503379990534971189476148999902989793059838108134150599893000061207354990006260425728608264818812055319021738889194003996135021391818816303099873684057683303771546733837636413872448952007710527871263715043137685282700586569909837310021711189372903897266873218934088850969869261852244584414981290369841669559633991754148043950194912955498868131261245415410012476791117924904066548929172941493405575167525850683746481417309671552620555084253723389274695243863807790367633425100573535596683288512549565213857812580814005640692722080152291561835970977587539030493198701931068974199640362772188404021467047607996824927481266187426689991814194289323969106794290047363750140593151460139821022645273185021243233186522785823174002421082303290749565196034913244782370221056582193349589987424167959650471663352502415365987604359536331262161926194522366914739448451671243839654886356263235893391539192110729438797948300200469086892788031224562071174313126851111058110283156823515033894163889016374388472739710477965947958933978397512939696123866575279309294832987630618058156985338187287546493525214626065444226503918221082598004984206096674274261820069993482393984989856328119039800559550696026797770286365878773910209613633778991063997675584630660779036043154263175058406045576203094611444916525361619817917841273587312555868049851228787234146887285277675454939285802063652840302299951135856577701612103436019281343028340349173171491556019728262769983127285012405596035124205245611050649036566339054259250550631142861189326312475117818115690561796711869448927010019890573797067135178096497381847042127830452701381695031667550358922005476614830490191363211016191449684886573453182809135339360144404965403834853314506013937624617942744790376685408203988630962778856107419896216868419952699801272219889058550361809202377716398883024699782718362708653161991926053494104932684432874469721123144747415384423273100212716352198629226518723477925121391683585603113289005412575317251326997349139861099249726792185732095702078149186610989557696732733848124090974406936723881090337469620582203288769678439302755185252677740747171142885665996905734036056279881310147239207642799406721192936925814558201232092611316974480312533716890540125583263290346996690793115594919788289006305486514279582587318317634935117936582437129571591970850492702471125230217544135295875255881339117972593597925677030656312204753635844648451607743961180010904491335712304144485266626026121896523977892239133111118823933574046863053995126776168047144625141448602250492392091686717147643557804275242779201833652178438464674450344070388201874889529988812341242546234354976828452979163502754908698283405081287966543537157477023913137071958828482057171175986320576078131109622682025725523576477599298495243057346963584588801398593213455678585132815038483810838770513373368123435879524497319723208809271336634981231299619591243796320307542967500057325611636065614814141846173767805111894746506519747664227113782277009913129800559773094596588413879459255964681024727271381389978205394702576316252337729209319113394193769408188260283022224947629012847486231462027092657542912732821937737035797962060244256248889401886555411267807577925982247841063237854947156198226572036786544210235565341060489361441658789610492767576780088990575912607219946847289695212927138443787079823129982315779666009647595120086647249763867470856700939984621224742493056137813624664587463379600158476660466050682765307139315947593308307266734296355563075012263238493310532973458058956434149518871466388745358120851657613562588467788587796928207472076176447087734449917800760339794821833054556331359535237347587340026672055376624431193411516560668258759716314219314836355572529953078862476222064878612965419462451138577129712790144955688254443363122037896207488531741307782291837715859892649971894089591121859787194634789109394673981219192954994021758770341638777906391141416709674002990119065579003646651298730996422284860809176993406083173930250345555684617916195542841659305407315209037109556900751040935365374190157244427348919863486489568320298142166192500492314393521051927593159672305383856908664195181662943327338976448057914544555477100130273430033923941643380807489670825194098874901554524474413294396408427670242532401838656294399172972468555913618346493323427087538140854038692871913024815158328615842220177002082161282979892277313086309696175779935467223824546626140996080076513957072245035755438066139742723142894154090924210070217027988564569947951121351878624730523122574431520521056816302701414109874768531186537096352834693254857333997928907011616900416653786098589366133180362129870851787723903593834949871445319972739663289586259281188632565461074997875416917835107206783313468906353801577817279404571950599890472469703702709393034249500753297934822889032993739797713376989100291589074398752802757028224898056622696845971805089042249059185525305308241551444392997413599447344548962132982506558468293812667356208187356775258954804228985489169509027379920424727829825127384769494602222688047658959500960532363732486695602115268138235169925230384992022372238180417103446083798716458584773801404496435687394150448230521267666938302301693022967847334794305775816562948328708018391945673735773052724491622075518105838095931382398902806984318801930293166419148510522459057997298045672895725070753565602017899601547378312277102539403798721660553394628306747570749432281933933286235484073162756127788428461425719168302870005115302526008259930215302147868566380324239579127246311982509725161018874788810680374450209489784126806648008117794733340788528973053588741095900428122082091300015377866171615846581208694084995351048995511714389986707070520792749213059861447551590101417006090787110302493074614551431103203863000030505518656218110163909111453849965468233894173741411572654856698737729740760247953745698575010880486945300870420814628010821089038772750652903934896828032483694428914377186705881390522816817181501774917405019887200243700766009925850841827998911511748263643471563343009774116307487051704099906659369144078033580115732192784379487257988618165271990775540621259531669588330473792895924594794075737018816003439269726518257123319371079760842827056493914269549675934134734082993942726657267780423485872807859141673020719011103838811922548991581459993904238342995359561912529216636170586096683766390116238843712089628495240865052467087740570614900840849157524833006819648282644674222391174142300338235732938933290374076089328645824763091553043119317990782143504083167029067854362206746684650163730645719387738762272715519375206644411151342759146861901985348910611840656345653884443257821409594890929992444468290370348019549791761831709548050200708535900783593715437776968571510251537760014172006884412822251355680342270580381551091343121103671612481971091023209924647474491210353301645982851246312665203985773573164042226247329848742317582960859340223259985335834665610453593606284665442055408008421286514272730226537039528433507439087755203019759797724050076425813636428679506795335813547210204949784455291968976741859261760960983108619018240432541102431907802556035445807074200436147247286246869183756360672002201264208503563211615759986899390838684180849281294747261998492494564966153200074055910049502290104732628027215110865606120420542503667307046164943725383694759320399568025665675980888272919274297500672604241558398641591412951548558332896109472298938279328813600956662112947314435126672596907542813282548936803169383076290522630417557585056711957156744465679432449755361456010422316017497648450630173790084643067985770707907379808698768427520946027858417304238564049653256900648101191017121504184959422476163320310757584853459274091846642297488993504568956489106361012615293998583995193273333174587290955319838071476467756661901410731642935654719172321508246618588213553808769975109437071903535365428369426001049708530012485456231278588000935663317483772625264749307596254415171991657927140575382789422017896930552132092768944537366563897416811440926433446072223553795251739246842384518308463127965055341934630910877061678723039603150662391070105539046380172262147174340986177603192687010211836403246835404658397133236405110281811477227247668175476593935576389628340653177371088086132647160246660912335071229979113159744324716480654893814091159989405772601440902965791485492416938297735060833051127931331528166239013308293615910404550254293347021664799137573723737001492715712723529811086626251871977939017687200586999404299854351678056462103962652842277539032351994762971284209559648029895079143666585397811108227569020440043656221069023305401474275698525765257730099276009519543546450159138967280946191443019857376412547249825227330302901193381019640195075395335119143041613815507429345231629318570874802252410346412241923404745424253700892828347989514045160829907035499182034021300336254275071440064144417568010493307888769401773953395337023446053732336283544214789308872110221728749147849764897439502926527555047405086765781965850753973500912975187915647572056645303086796735665513065589923764717642776360615664482070549854530582402706261036312773432095663235952302348846250476104281584631232423081565358088537390247457058699836081102338288285502435285593154853382414666604207571338406978693952362769015197795939828641987064364095070744807809747341169117427699577171738481413365131815162899304664196737330148361886193036430705182266514433471384120163496364340502089180315167873937031194710458992316114061635693450575486521165856804353116502181056249472118097132674348522329225855933344146503864927117582871883530905601859689616183567208405517801090027027289046590085191134246798294292685527839835442273118747978809968262469818851513262524502124640941127273783079814553287324648272254977020437640058534086452558874188380672552938530851803298381349848329505897265553011179384645368494637449122872458320213755004606208720870320640345059585861554924781980496163730355605383353307245575580033056724751496573742487143311628262957153481179004956497411403807626807483982279512692181860958518122004863860488207642505392937020307122523823624412889406280925934356640002481958214324835170742601735988990626626681394754937618689527112033871638103122010916634217142020087332937350089887588747805365453569872248268953543114602735483991433978675408072681404518695980688791198269298344793822751027146024364095383483787617595929555720520400017912079067885706313634104585408740900231032236958102585136675635008298427806260942918060582026483033279993719931860106533267703199347627335233885757159397680095487861120068077434131967918514000966833540283373545479038412269682115321140383901597654816713435621464363087229315918036979933708763168277240298186942899342004225280484738283518555558961265706206514386324347532011260522066437164245762132556054802771010615330353263430220363941144314650920419809467694497886197781966180777362360512186841924078471861007961851287300746288079436468064110640271190165065230338370975663658388378858590248076627529127465906727803266171501503208829211801046902263892079219263105705027117270942898886304350075237951903045281469513759242748346288344402553942346936775564537989419615112439239805639878288192532342640706068439443573306819117586788938890141641814377277697346890945422753775802999944640142071310248986626837408758610774737650880799602999005981999350138505647606801702358723178779566465301012673291214350950573539977206365850180731439605284789253842136341462047487980204013627431612140490957191305598654275876372016751990285772024163197984280519062680227269272009852014980664238501707397129312558788209137835575135473590502946834673012093943172400934707820858856032990981462979138693166238426697587210256728568850870866086501845862508080200301801359921102276231077608735311107803730950599061693026891106365614801194128487304214205163823609128501079596307165173647241365421511218628699407698533648974639511150687114188112497576826616978031510248879546663359047753404882964229921628385977303469243519403681625152226126979106192036122619791897825680554355143784620920272620541823100531180169743187274521820470250105411291423825544975445649737232891610890124270784778580461745615602791330368631799899698675927495120825919971583205860431524079353879580224093651476505245627837809405625578057325648427423279856582914143128762297288959662086736600359978773544023844573655341267744182171336912661887477168883870014892021265537845122809947898195318707984825215070089818809183869588815598257389679027856801872558416896784148427472316184852735985781123169411735565768988009237450691851053026031468430608172929002409806036091771010470151384992639218930363102318674214350350420455785511229828900978202942034724805926189639808858758412521464803304513524184758858950944891543873961013213153566784931901768356470257032822863035414708948410034377253653753156062842115769232925308740803256438747827501951889484311131655689152031232341074299200867931931956118043574678891999926861322998840399031647815737882104327128715093525310405535426899765978686352956284312962623282280045077483888595143428860422690567351160126184367866193015614133605734579401978296336863837729674335196417549180684475792094605347826148413666109142325931747488656425247600925497399913621036823805783568693145385906227586691711330265403047940197613316551929884269781676193499397018521163285480119102420662463013807475792858433605699315574071211386751902258932111993391385594872117731003775424967597537554953409863628934358242314784559964264750724476352405796476643861198043114443420126481832357788204570014187772253965570555373315698211297631656893742581535629354392804929825858376219849207667200143761959094507789306889815344413757424441456550659905650018267103945589678177551174244166552193004802118659530792703722316728690694453691647642488598303722344391707189248586428180166741848373308280458223821740798096015700506585439967991627929392033797091297975437382143677670605515599043920750104046330367771092143957210672607151972912442408320811069041999738039559492068706273349685207286619579655117353500958093353878744978729649729069070064333845263576459370589032286982065056538735096706000952034299781184670181040846061798734460727411422514155659729256643053409140366223379452731417936330528599959039026346440669371158504414223561020629397811587842929024438108057261209165044613881877201595320184838026860205397012861719405519763214618302029550828790558648303367265447670069460301891192095884822467081193674311999722771818154006950169130143901318462261072663267599121102214288221714781051149027123346058725823485944056287057673883507734657861117762641979973325510890423805005321907958113929333101681069590554713578203477433904124435267364418099602889932964785212166594784130943386509041777359986967001905022963550186058473713734442824877174751011580922998105823561610476680315414050249323692266607285847728110101242524942790628404849480461750897165234236690588432272171014683195594871128828469500793101390443623247358021492297295119390411939042576098603672794615247639220958691192909882908457973170779020542025065698278839446392297513909447464058579356707862159548034691048981569707041841253437533415299130564315765667336286301683932581231415194565683357491399680933652906724021156357495331210743597712979321646169447746446005102896160451496949832578829372382933611979540435378688860773970257826424865536471713931337287281376508633934988134070029984018400067117472878437166604280028566179331144155449080474199104908554111095138653405561370419712262418602326569544737673606680765517983927361445150400352897917203644031535753416320953059664957739894056659933220678374522748217417945758150290437540470230494279468837957673469355135903165027444996385020024023769278215969058484165881076738544441862368979425776656660782559515970659534879507696299295678879417987350956989643070088653004294360830758337590211384265663634244080423804349050751321657748704141232271421801531999021260045278909082660150587836769786559081990473941766493666339374018697074095024915527228345620882616751258023954814255183301267699624737989786643741317229912894410180743853007922341868941079780904519315180387575322034917935154440722243824303139659613290198871275457606105532313826485469817630288424163818168647528977400258357571019690282197383246082307579032148026493248919760885988646646790806120629274972880529331940843360141338504931478204256514500459034543355802091689521328184530063377447159388006947993336292685694881229966865489019436146603019286942773263613049593481880166996851963304187007336993412382513064537340285610943319803677893631920282257131398708171005417256868938231971423985531158157711636833118287972864026779929302393723709246271781381477203862916631480422730465700811629769424319885897490910999651836809684652339895190633015851094961654984420304508389271850010809984436968861633066821361204891801125234594384108597601666624868197028123201153867096429189691321825279367212639730501851810498463470011463485439730937330706476935776490196921327920792487719341587464648652394911239720350529813856714349070175659272526989014082858695396878550524281440881638391742332388878693641790048011023790400025320661491205828748278225901737733028902501127577146099339155958707608710118596292646253864871543102748226838588618020768456466861551432767049733817241480687047248016448642146074751283044140291586038585559021770917733118380552391359601616064581303340092273604882286815284208390779210569467951313451130686728672399375988495249463986441312976781469244359072295602635956165785419711096179046865920482283088213599381833450506288966376985212841173777687496442289723042370409301719106193832171225666048176963834920828782367645654161865700596583590608770829268950613103693784281945133389451211423328633343328206532193404018494270996447024136142383010044143086400466096434862406354837067856720935444326017781520406176963567216453433461353972013448548186816916415477118933463436730535966271274191462182987653741614672051912513844948378164731472268283904734462120630612904954755888845412804993992678952012500921624873636216347117138775453619238913717704192597175300687652928431109468474086146931765880028940793308837599573475176069079648938055405473209191570763804532119915579711806061312633172491095941595855561893331940057784338684878551440967401158218347024698202560670510355264286000265750173022434231203875114846194248324629095041867682596196458714801641268456237448535471184996437392579955705136506395790188773329822047366799223975904479157773534874107073889208817836017113599149958332097525532643373602282491101969719525497082988254887255318643819172230163121652818744941617238290073943968253689144826186682968160971612741257327741905293407716636157062750608329492216070065584735268107678980893169090536577403456910151179444846347324135988793950006295430960507604196916395167962298533731460085904742943103426859873989724768386154608815231712197498482525898386269856841732046482254014863927951814609675273408171817665898710304036693131945222424321580582056679080445859107618523583552879337289623020275488949685862963303287134600590637982424417658738791873534659754598625115135869897089742252138210869595080182244514185354636646022656484086436103531626027574039635412967702288981043378274187905449287828495009791174553450347474261846440588287970500721585688919231997765239493321370249453583630406799423341352931900868476519738231885091543178674309585097110566133658744471912765705586007489409859801211779338836883311496732958126640860759435150641943219363181988965273213074552153855030736091541276561033307052807419944580093528632745839485629873196344581396171284343643764439552332547215430255284707804317313096002956414274648187527254342328824314299468515850668798942573515712713580115629233942037161643374382914140157252975510229789337814563754128566322444630255371344217019947519144395116509732050045225969949026460910353381145299059137284928467963828892777045658487662415575358488191300022133543800681999030398611023806023245189658422869142723330986378539218605747562843246204167906840535070124370746607601687455158495439268790788250836491778550422005508263365793850028002990504306791823485671808930055358965888657262963872796458110405662888811909677088207343333961754744827535224057985777242436722554535772712251594128744915073995586763842080100645775307943833668755401773059173170390391138256185217340212167843133637356592413305876009958695796566082924614760948493003811517852568821596692917868372101055210445213701287126767180908809565593491277159367352829122192325527402892910824149912045134305713448477306711616433261913604366819769356106122056171586573424338886868514278176317173398137851018764907719255374986418634015762493451444969759421480007905607812194945146223129981548746270663194352653341231452789530891610524007065879639603351405731795900329188080595026428390067105943145257039176616092299829755141430419530632391528637239475635568202652424604594657514387208687991142160911675386461835889337281502141918161426284082772038704781066658922328230342878296095458298040814810259020104650978772705123738083158406659023606305704407647835734420615590286806421569652192710509512475286822904881120158369798528241285171560564664587634408243518523370203954096986865882891647086996055083041858710888122223441955870514726512399309623780039170016081531206744714219734447937036339667710142203366593291590783234769041640749429441136689958403767824326329059639116615101635248512785827205386168026271322806822331712099605818411990174390991396343135937091823383350980941523532034824195377039086281014841955739427214145613402736080345927107641009939848259302170934882302905865628848783205836651966447220505600014668667535031145172384562572836534498630307288330569102805437134592862249550896115550317956506688412403342550749840211581903607448574312443985753754099802995633669818627958209082520428799113293293333431816792907243685987475983625398087340336312538964486829928295848340104183324613812004902582217021843321800381334185575118517392607774176686183621564502128623125660325828022688216107938645261971322336307453414227959067187269649395116777617947120289940439136246017634952537152500437479518721036508259795833235567209551819647991633202851944734648622287704768247852184062523287676149068315308182576857073856139721856157391893468692262625976140910496627674467875081790447458581341845865814042475115787647508667617588501248304327917359928231477352069763223423533487586572507792616458908921173154132744994412555834969612555803093136146793827480397088718189208652077334039914184504853697164595870085906237243374806954160518698181724286939641133016853795954768337749073855921074772414508694926289465486192775034145718614358295595452956261269480130850637061372284788569106701916323665618036475844120957394471375611481312518052970208918633748723387669785666999119300241728068819024112626895341540227035093394349281428822410131391547345699318964143218953396550844961453003871605217078013671207402218006949918722189998541668941744805496103990789275287236865452163438577143580320300167907249107014189703292828945588653821767622474414753588060836102949805680070923880706869155898569766244681430573792633084343253064456733678123412705619944562409274574519385121776967467578838678110673464055820498489134197856556655752494568410304274869093865197161838228950242921853411395635728755367956359332193174894775949917262042015654092106636030976807531220371989414840631065756847940699930544560174940144643623088200027699469172913200913716212472267579722838830713318956307504879859086552040978664839275841003022438282966991189297239040695573810500835775083286948782489074916258390466715190892517206578845114831108370566153203578473402301309714935313382276838476025129435452200593444003074444909724711356039339965036604662010436153159658365412467944845139491468919252724233798338046446162894139293837650498318107975228098766925594410674113616699378671216650177695058047048158723128640296413740385339022027941042939351124504106077465430226955661760880177090391188648647062037286623873284437868809640674464980064397792467972961775815605592753855684493983090966267287658824465430187342787430485483505426693347518261644239850027540285370033418262224590897503351294014616497263727472592239687159586665373513677758649923772555127992534083451694437881559349362711527161135009216508255418726708660602040927131678431805553437724817170624942037023538254176283847018714771949650458680843314005783516916360980339487600160329440042668585754523294368333960740652132254300847851520461155599251075130045181790711891057032826886579780583331082475350082163069371994630097549037691311117787279327987914386352497301458957392592690113080565012865559379503275423797004851348049895870339003774321533332399298452400210446909563699679014155346305159980174140579771115136334848956563099140455366600171659001053446502937490849224606112459653772017329009197161742524164321202613420931798944057244236140901638700336400875028025134047305793311582170369659693871600036724734881128867647224886711914557338808326358561955842018806136255994235563004760354915060155178571758397710323194407980565384584448899647865079001379986167483376651155433050791089189512037893830196936334759501707199820445485885348746176942082994366126820788718252306332258769598501106629826461465533969052853924915572746015886518415520359763849360675058315748901788738365276574890764526862961404821028979018008320920684212607679553546625784459029835814791705919071505614488475301287997890248141229929319832632141513961650280845111569190746299898809611858307135256005561402457322719289007273158215837543419181225997052255313072322249611311288844478282137541295887883834798144443733722928241605745512850771830947045564627284848001082234116710225480551989989702595573733969443031536581696039444705588778443327659115007245616226587858788272576977841574608014694589353432102620419558093813395835077431691379360681772839819921665860658544330879665552761131860477691955546114609855661819898433965499701619151693230620712793380004516200118615182843792414942490957096457188024779833284089595486365157829871154735996314727754175749396481479119476895421246323731421630285743380853621574344511138121397415445164065958084228736020296699933446126816763951812363557532656950929586546766496999376889416240850392528519615502747246753581663240125256916944969132098789345961207141456237248629118202997077091989638606886373145183449224815301477596945441840701378335215530722163931876262875443633124276422248914686809962540090594607315676957349735653945722126301178295372219155323518076018553142073699604335855949492973542689396535930337579811622050902026819532900036625511621877297252861985404000882148965759463490097714144316702979281156954670780626146943345549154656459078553207579628302366587124186608374131412489260754475329150880747300597803916583420355908047885350358165088715774713042263280617962598218805190751499863172153661893324927325256111419433575782864708652889295519529871446585073373074984716315564129810892165046176272461076615829081119935543858790461922539074588494907349274580746069340539053789332273554673404774828066919287378898241784357980274299200592776230167961205740510431831196876807000772549150579069698980710367964558166220016281043222661704095955418554109701104731556332105435617798137854420090785395271903060475874161049846633975771399752956205143730613863816135323303953487471161898684832466754143506893487308455390855131520056519328957832028184255127776182863422340601944888804101165520027221579713172413411795571742087940408269099514150543103694176356416637506424571692474258352696516270894973817211461127317243032548363910289474984721277322502967710975353717568924536705464736776853938118344854438111225021754505382865239834526572582046888638479558262602321871291887103517946120690576824277115659635574666970559496133305702998826954069179604263839202496022062738826290188644121927950577051548350327057063552681333570078982412371275659026159284483596212368372944173151302060041958737131454617462937457613099701899174973301439952753788149493110336659075610786557771316824997785808567093887589474875339792738977499132574163938237761480667778270789242472390081466998004994301222940967657761812744185783605991372745698588261020766321112700256987081566909299388210908748941292533060364762530597393864693829495699774701241564752145627169665124253256703427646564854144920103855986417791589954919801404205161826326776158147489183239616030854534970370912411060556918265600564166888778058593603005338110067965285722199079061255608154146358000344132035063650411382195000059613103247483205677655461897078471575950317856475537680060701048227332485030337006544286988438045292531695513657697798836851466092814661532169428880551794776849647912808366053548837352336346874888297436374762851334220250753788622507322021243729703060365574483213924312496864583058871146032269434210658485302882189674844538013539829256643203253922874582225961820160963877804593046552853878736818469498186341761460102862904402394715282067448153822450903481459769424467866971855167563990642367695927599723975169857398871900963998472361043187101103546197526331774012891634347817226153561490930527537946670598663648559561592203351285679675388353479838509732770924596020436446900756573042640496474449744948978804547408625890962548834686045005643666631525432335986491065322127585622013304756649524966708346007960643600022352479005759312549557117399031846702244652627357961771100038085052061859545376969610980596621434471447729633530736351902760973252022025143216705757724751880657681432146767651215790138171706458114707799786151960433386700693510573018645023909267770527886500833481280742773096601313006650428927207300824693100983610698293700686231324563363991771533086606803000185697428896192331856521825484354670780339354053852349261153455809355017862216013772102605530266244904083814233900646948968512935277339012613907469797643387605083778199744377007882171017143645414900457113795367254756688220644836178059786779613564917160492862326271094774150921943712409667631057286517076757561856548864392228101171231701833128037538720119641331917844358714721714743763205764013650657178931758326793363330321333375096895770263860242174945468552129885612934011761888274152538883453127433157661973037852329643139526651261025969797751610736507298318912721848011672530802823911009537601170709911261863660618463769466653222931604282919740863283020732957762573452798146164602119382376265510511142523033779878874516190730399220627955932726815871809813231559762965182188396520315480832626031777526934855548570032232134717763877537561911008744696176084831286629202770225094350880967419458532627898464579118298902868607117352469987495956234363556664393382243788657593921243169786078547746055314431923656506552144479833484067892725496855416273262336685222250779130175175799957468794018929680726088667108161950456662718939666355524852922032888996646956309181670829794234418317367674603488313772558957317081405623880097667981547262431222011655774588251840012464037034591148152385396694187599009608128404141979186738104055532575298705310931167952579735109868578155637148151273358405179019847311411857674922399596260600110935862330223263282236682750927704861202214604405483107450328817235869726729038021312519907336899189213790652593207274664808868676779566253067317915170480723095953211235069600745521441087489281894237425674852658958166080021780522461411063727152053311610984044033807729679941881371161025817649657842596498445972987437648125637219299322282590029423679611626938226147141963055956807846682705297604086348238188286391800525331036412824305772233310987224054385870427915208805500465295082289274018471549585611022372967785419130771767666045407334782145084416199900286652335710582467659657878277054947535979740784810095836216225283582730677784836094160734749879563005079360244107449439733860230381930296206079186468495835351355733078080194046490910393970883145635444004088333868415856561368589072540768166640121764863792360426202816423549195405030846708779331730747964688034687335405172344916430929846550606281932365975982733627389113103993464893344216021512972318190576233046054656631570948772687792283487909373593511490641086405490646518417465865213579265466784106052003358945194364168055064616620510527492138898308635294306154889260757213052835950102354503334590485594663985453710250894035653149940088532808731760203226391676825170163101278562850278476286766236484649422941703416351945394854523118332583650911245584542647910472357172003731107531267104238827060601221197238630216630023082992856561126118635311472790685836760663033520989096732678721312994323209367390094496196264470429958411127744948548738818457904595451676733648992976967009491880450024777553889400230565022399290822854011265373595282588695886642225917371862083114633734129676749478951395980172741601093311019249589025885121760427359339024654240721146016124377206175279695171756029043135557980864497247043279681486727552781034230460732381514774041893635656315367621232394119869077308615806612966592145353669037479881835068302167213426017669190404713233872614752321992887963330657150320364769675690789601541918294485593880724873218065389495841378456378271336483439678102431203692889431006090369924255970555562196255299996280985221650778019631436518925467160302461212715203277208885532968552279163075508509619648194591761039704881650591385073872079925678088680850484880863203136666572234396318868519077568532665357359808079835662847453283574966576249584110362886723891764810257456010672449711830293950731945870957039520008631904595254809089062093614503445099116989143728774960210370978972015079000959861577269094093982092118675603496040810636626491526419592058909111730783468377992984043195170126015047560415007454007928738650162796178172614151439152111686964286384352752154339548366517957647407545709058893666812917784397073635394998398293895964036644025368088539673293235711430616173324619971824785307374928599815509890779257774692258100055261094123757809958103171563844056117074875402948539355575697499893173909761975869264797855824197182570622229401140063594068602642824946706008788234651433034943048733264668305832191405114167849470879374415515139103537529739517073655749401306256084131892588189770636259104439077182002231554493493550533047307302903820822141222346434171784301060970865737222380905723591046218765997622564581962109075460063763261346072400573983695758267084765913142721407039758474026347710190521571881387589786750330348357515296092405823293634351092418284241494678476627762388479145424438200208919634922621465119941122841108702168633566477660274572196559040582335394277167105340481704611384231435531939794820578909713966659310588497268998995221294048420891762687016149899618627618134424282740516268075460538381823085737644824012714409362248332062666634480346343493584165382860527592541942917600786077040238838754457678211585009363481424656208250672847050725925196100337784356011514565484290534153242400216878574402034710339221974430664731064199119158890210398953081852602586392641815115407094040325942185870561655775627799067970727058049113642932853063964671239038126029202071133437952991038802425380987447304139679329503462533591364636283183489422549249159743888056223076298534276398632595225277508444603916581287178392037527412110479486294345645660368338347392147316326189175036545858489874894026952150571995710793011856307613570127955847961016309196737676841857631753787505298848775884185385712636173187031685855109140271740080901421425588330367419230803068483394844373792559675851086791304228089395848111785851708120589119080625504193188912108742229955135354925598020383684191005006062216933835658041609330461526419390941577286158048902191543354565530702621175799541028826613018682217154417144747722872289926573575918889428942350290344350953590740605368803746093823686326157190174532944018029576744558459796388219958030585807544325405353737022943853969173728649816471253319470578280575203638560658559225128279575391874458955603894398423439424091150263181935776923819602502532657473720549280869216584057998677866588776528378546359572760240118382816566985078456082244932351891629120415393497498635581103145148807569000295145835233765721834083782039639341919562536927912543843944806453448745102769108059413860883522902431959715057028789050583213975021280975303566449898253332147810469993368335143956879787406609580676278081001826584474455430733178168849688408900389831656918781718980771050018943859648161683329119484107024888509063178064972953762543174881638561030336109529138729430554383274629024968130399497336870905955034589284293204089515511236659781739235290694277318421224946774822419921753513786189825883771327916080690617406911907875681764602155709308839172652904188402762463211441745119807108713707004592379636054529657739613854348830392803134035656113421215743790226655983220564858489086634889824598409250430178369035951022239484505854775423485316085020324071489239152004125593650865884435970447228724889479977662765720412340103869170000946661503242951741361541723511885958389071455116901981458619084464257617971605133053331527567030882760330582642025931522442017740007091996294128274786877194592163682659909770760747138472206195504682950226830638101673577289221071187386249382057220479429443493862741132509468701796564413283235288698943656674588296729752315036169761349094710020486999073983389948901137765669639743434091404720114984732081428888356273835998414578150501355912785426614702804896172956394663054080959816606699181083027274581806279384168613119205390077241538655328319098053032962951728219408611432829083618192961693822938326620466100618934375459161644712254102147634626720171715931174987504743578103486162200249197902942517824582058000224817578010728245934709154944288389440397163259428921473866266688755291844616209821719985451893633774573651751789953715790386678011810889356979566198272789661169945868158614653101210659975171489219257399408371523338026486089437952899137988725270748935341348253419763644673672150850747885609451720117289288221145739941570840372780622263247321639289649911506033496657628874544847136927191274168561173643343041650628323061593853387413167790106600918677646273547698050267663692622559933072672399200279956945944308681281126543074362923232488145188527482047616811535640975236528582794379187266058043513574735416322963113082705893860672297572199297075255484272690984447389328631418704844015483522596747741834042396028326349138300425752482611921000100866820861080144441302043515051282029421379531911558130932778568021426875021774699139423899117637971876005192689000961955362511736052366970900347178446058192723167634310919023173459846540232184108747129467048228472393365649666431299409608505034716892120904659949642681718877942192376508122802924699513919639853677120417766924623015987418875653279145784123447498069483730579712661325844810397330363182985313573310175069112051365894688226830972103960784067404736956194548240458102606866656640945999798618523464979333770345348996228739503046459716258275968642682966726430379177771590757745639644222301835374447004686753953459493179909449290283715169155382721084726044089245765151262771400514736751287401560599883264093100975891356091375439419831938698901866078921720011915309184101848763742393565870861170644319993224259714992782794186444192080625612730418408327872331865951523743645260503700969604997750042249041941611960103015348968917785923492897019706772076483792076408159512285350922232903621987192583555078093207453288874534266135139027311629256697031257349466277462199592524593478546895122625227158129989804467258664683624067694845830101298959467468485724677197811147270199117178388138967146837294867348910359440088718814479818531742954977225691209078728572901175067590770539612258944537340928275743655395106460173948311584701880694565761512442390203108797487462062826405799061783011776968265987542892377864772051042123993586920307439629679606678329458509288718090135079697231426896993066329613188790353196323385545968083232330514594139480112024956668914965874729268111444669599030288682247805279430186150336779923693646390420406524533506200607325866027225305666222578941233187103380576036807596166743641289764331124676481058665126375409722488562481724719334895918536789788226968125803773595526516317427322712379874271630820879769850227890028428904732285881403619396458439135088945628185654710499541530917690640250932649664727200172008938838307195092261735520431359852751238588066460987544241341111014539390470870211383105369850534421903858101163708914683675132283038831318175458142438956621793327818301874883750229495272718599541745448288053412141129166222780286088706177482364416328121817470647431740456070524750762092177808953922405160946602881038470306749374468173001355948609180977251582046729458422327317763803045413839463014582937364821101634796306101516527372370197870982245760700621884542152395504288228953898557758922194961137701244661343348468823061821032195124878137156187828461066341400023238039411176210287865350112219831347729074274241613483937615844480087935636027858479204845295580923681485760249391330378565187354470444243220023992475005554757127652677134391306920654605151518220428271815045589480213439739621192579366370605991609176987346304473337487367824573515800830338234059125427186668292204397012033746564067869998007399463496548898759054993274685143104278509278173955482978778093460509108148356758551774796327418863988998643131448591833150478258307080427367563538272873538160344493234116180141616594217474272729779727707228861982192786216189279472123794223266606274828865540003410021916516289316935741871434048035331632468097572007341960267595156150324819950332668251382076122350758643243737011021897199635301851200430183175105483182313580446346390123503866630387555407290288958142214891639134664851772903015718489470202435636493622723139627975758955496676592086527702007202665111387193405452367754735778996871797400185769124852127097618335414253356653797283901578212259855551612320654997048380323795771118057670955537710233947786104516727074549649566624746002910504543486406737727416294272823154092837334885408762202879700958755875912693093618728414547449498736356637026891692149536771948894226250666178751519331053016958536643741055018095125839356394563022430233032324537683275332932234548310058370269844517993134106914903256292803770591046811743617126823811994280635970154780734437133710102702082476657963667607285190252103421448132385999521831027344880552493727853014145417546329879643163364981894377730473496570865454902325812191614625623978733469171127145815509038241007966702082349645588576200587249939118291109970569979059301053030122292751036952647990517960926124725052343939434973123310982696824114700805607829081605205876450491768651339076980988307804636656819338040489488697681277525233925738563750922603863125868993138640123818624314887028888122696474682542735414359954874359893110263654271323031487973202557133597423508602276716813952556440746895669070401253760250883109635490675782330139871180086109634010927392076251012869759050707468829399643501390944547642420780908333722207293730031737043088621153615912436354136836833553322297128689929665389120563123800743212649333852067425291176845912909325760086561876037955212740169886755004122804372138688612595542052531976440790381249558787132443756013726827444712654323016791875704705595640735147820993963938979228787849842499892843735254180944480248654657566591962112462305620888039004675062278054909320090714932939981374702490438521368585452117220587107403406416825174280462717748155872231321979205238470813316803846868297076452010957522953682909044138775617544283869340199725877441236141302497620209267713307380045356247398367158110964580718120938695027653636996728471868280124470657686686944883375892115262996062672784711259225312833474449395625392059763765102261405900987279153186289842182938009508624021639393379933407296372219981675817292423772573748871926501617076121691209850076130858664409199611990501386322742647893522066713355697315253508264755658961290610526597740911142439854657404138826004168852165664941256610995111163452577023803130874860729336100946463219382815272554720876379877025509227236960321991049668226472630749491745319054718455913703014731122613018132867750197416046415006070567339869228174780135078737458550634699990386994300016761474267535671904439664030972157436883981184435509824237561387975367429334179221058309678382182042281596312282165067587138657047137434235059769609146037529044728528452283589352361085327556189347142817934396703292369996299031982929510754562414735218550749825443745120541096094331674659634400634615975233273930166858649338953580930474197055550380211832368426403640047725044493877105530700872996567238191817990446382494536475862748279050449785608586065122114637976159015262209454703510102777246223411090428950467832553379323685284683392601856042673481381500814141643900715667858971095183001089928482800374436989265047300394404943445993088353920771440579378254653708426876917246702220464804558518905618475680670031451278259242844159393104944802976050821158113340333068538346312850300423654303661684421491088897465433820899771342160765516159728416578161292730452335394002441104548987819059374559967457018636650799693456269737304308096575474964178397667862276794857380168396417814352745807829279899134019222883946179355071774003273730695357098647692675171987382644778640331049183144191541677226904478868219123719893618846874549368144899372987163224600719826028756733743309607979599010513953931476280623709692045459744106016963417474639065261304606156117786287625256391530045124730067689302263862837307754224180081268178076609398687138982456173487209825598352356054090770757472904687050580096246401922751657590216170181202855849113588990136963384450638504697444990005757491869472305049695317888288217747784355265156733660019882931742962270800989596400039107137484079772712220287385864898974455937542841620667013460444929513090667139631816614115115650632408977084790724134130365084164498734915821056063351995612013531217517291969161758847945918709145652694590007222874665075972804668862073456081567504428758803674913167705779639693885767428418632650573359791671300437061966790220219662091953142131122008652416950225385034216106287880007129987548168849706440620893280174684509099263602800625047788315533652142473700451538241002967281906682387903517771115993560497522115987627889734702509935951591494944593437125654160009246781991864948408293702500675622353834116463875761597169907896907139264744394947093936300364456924002988612037517237716883075223222491013552388981573089497231882758815694980783081374144751572547254980597906945878198544811227736248641356161030354628406218260437106976540193903187336948282956873061571391630174470566059454307556176042899601402807380383512243119305998638179690409690711170757371660794996231981095022094420047426266388457515057424097130434816916877247505542951839053557087674638562716630432327839316800084814237440406392874787816775425740235018460251802302778837628730791597436652867540768171710400621212810687825350523981076490662544659663554734749862305053046150848354571087416736460578571873627251956514657144887415915054792475241835027404597186027841470346533670706763676169246871845681389091804836117189553795556450980554743933863331040608494992159952742197631342376105057941538207102276014032249501840870102801663508828252314346991793026067227442299208585284796992258157814855125350071179580108451821755297179599494047847852323939801363905874304337372606677667765877324609413719096159055921914027907755170876874991064339084626156100848602403895774101697142942870634825173451478705180704183430921673502203217520737679293697526924367398549607668673890950167448321777479517776981140698548861713567815783995416439736805075394954879099937883116270526571624045962200179908970948503653708155122506588690927436733472789732442429351403987391301195624202540384884694419305550559839744098565379239875227979054672457912924291449023054935099861748400953303757489299942019650244657781911402412440322587455415928369666132478943551129078244935109792393343412271255808376116760509178574003056234553558955897738332951899234986768149194779476197873560928268975383265254988229710702332643073005640339978056338925957909536835578113786344118411505051807437746313011686546672751624196779993263151177024200033799140393819382421786993816270352326542101722694175990138956585934209785169552016842981462601218747585245568283954538363941822580422349551433458538699240619819802528443165098255971556690471367700263064150968424242841037163933449780005972053880885630630403202538293493738006441935701905622193602149012168931705004909689786773559850451923794348720948521922125258834196512505556920564993473618114476397740975786574856826983574256746362421754085524347533100702419721308668542403428790428408676146463459233349614312712502033944135842654499337778019445362223310543091481267990789938308600567507113533868261130701136029580403705573124000783000141549080224768296418939600254116228677166366684216163492782020098179108668871516702119104354278911291749163615824346296965625436626950165445603174782890443122225385159685002395838236703367595218943147545292355935735924142455499187113314185227867217419428085387740098045554413059837613201256094657276689356763101303398684196325011530640391751085874818080768656088192528941741065726867440320453896538024086835725668085285108714695293415638495518740221513352611434991725683280055172331760242808379969651994184876911988201999157941946427655867356129807271537721607254458920922549458497702534702350041291753451553500592136741432711925829793379416222022249075693907794462633602943953873522283357261454229200871472035329141069034601910695907116786661513847150494185667141705243798511817443246149073672292363497545149236794055906272245089247503419721164848848034485873650039820589423418095440114968251120030736343354866065141616311673951301479689630168545375064139422179101581351976089061497952824523271807089592935337078036679151063567424849749265903723546495150334973574053574716406887303289670002177724289129555169825109128672317444270673797557573640809267835415686579666537038235667550324122807345059403399135736489749791807515756385380007262528481981666123375843148404625873920791508224374078308829501398560304991809811496452815777972769285623303638681399411279281043272657885215238890079889202631257505100898051002051738745447239313179809548508476537898790861836242907770717648136908652569806058878559010048841872238546017103077621118776008540574901627732968578311801912142384074359460801600685319067766822598054238903546800755363072473439348487106742867260427095496032560117413167599648331298763904962401451759189716713173669161190157655758747594243839709203476856435003709551955843074737064913138835831072371751438736861826049543187893811649537239534267878059933950487958783077881436175265392201693668310232018384315738030521321396844114429256747910731329621933828100871008032069889440118138993626470057725223643464767786723794243494975419443682085833577612295991194560687874797467721483623910204697173860947019281986929986562970298532557232183343161166416203802798207934341878253208506264572170080962060303079240133025985971854602184430924262203397689005771589492310525558149259188636090787673049074572369150355103390168810125542387379121683393768951613149342364294520885232428871209605108052691722869396269337388421562532519858537268922260067476869099377862965492522218185712879439444864464604307343042080458856407732494336219750881836518380643845635071853086000252117184223070685289213444203223253981540116692656256669239403679081289501888601886194915551966479304007210392022307300530622881089391589585725456458797765563365285818306929581111139560940106554649757372507689676134024851953218925808287330169991105849510171003076314270431270595787744490464763885735279032230895013841002842981987835000478098027159222985422897823916604562862858719753313378606259231573366710637307356165884878431035848266530446933665276937597028795040783384973387310615305473623485318711006397514011888147079791850020973763813461955731532004042729608311600894643484271422973578553852358041159322751582043670336192042720508643601735936693216422769446079480731276502131777564899222101096511730116903155224961916677541030984636015899727609792363436448255687587689331232880724514410018133753076176138448124405366944141077174858163386395091366843658385662071166960133240047646116316739375883912360831081106272421899835182296868200135429326972996551449295459788349392297271241760453739279672533937681739112145194711362266711139479614830521644549144590229988346668993922514467640594476692874789635191107425979827947479319145509113795958071618169596769827172587351379232891780452264830837793224684690561588546727094543575836731772804729687141242824321508023092648806436745050462082773755924911543265197496264253669829435834662960938237044831197071673476357297662467517625204174418084174273015661448232091345091480208771029020978771467664907789382540444895342760513109253189194613526013296525463596678709213598227648873793749241283269425307118169272034931562106733856128391926089148256841359267879137449895967814690283393684513235546731864256111850090970780095768383668126368213983784252038332366444157398105327009306815077355251450348211255109328253354829637159106134605469193186288223341544004414215667043850353917742124402203997842516470691570640161740628288554953811735194102500689656219111359074046549883371968964411308050041730734690224520281613084185859971192098292412066785181725043499239407091984475155629195015678427590497996465580234526816578576996756526571681556329471913475738600104681647413604145369037567412538339756429320871813198427925939137562867353245745885589955076633923048439210758053448670857408408231694048532742414316233630921655675018953680794966557351556097493172925212466008787487366802299950449938021199841255427876122519449625817810036640654718613022562360575965411633683569250631752548916965202614961703664280068569503257739485112339444895699797211348743151824506007725350570096649646502897408312580534725958370608867705396624016333642048766908922786739655673930872530970316746102991936821253913580717058866065370288777645221724614334546859832601438449919087453494435725723875664038335483949828628732860755473618711519013153777523667905767907213351170391480900813321274878157661610696114527925878871566743706649443295528351674711441264633940125949331764707126905724896250652879833698314758442918150370990004190038222805676881310035981154299615685115415127205748556595383600953819852071640659153830149987532824645834430499957088523301178326210519677498778175346061907976294866217724529838471591271705357594275141364879810091192847165863162432859968915263596282350951438980564830036535661974268149931258594672277641162931610518435255535789754224471739395390118784738755122375711472842393325357768580665076625326664907771522170930554980786541637157207535603277889954497329314706749472182937253448165287064500048556054847014028885989525001134648208715194834658505723401458350549646423630262420953567197723704889974843556307930212154399843952545312393153025080328515572094650257759212463558644011196376733171534332309025757297642445380452172731422954305810631207844903706983297136398804626034731696648622029999530091396329983597529192457041530598152416089557152296479603892106199139530124151892543248578024587723670696916030292232225984031990433312400990940669711803010709938801737868323773377040037702925693230680308054104912705679502161752468980357921976348974189452684375495463919906944829886841984121234580413230232841365425784875312743031973968162184216547898550098231232276196038808831903054922133771979046890356234167928634114462519925457290304289376229461313802740127569745676779580410750587966615204800005411322000143392228623442236735605461752010654334833171484824995469949710057191393784686687790459413931219131484098383392815406815735433043057184776938707149819014147178359680968031896436186118813069034024166329836418560408547142200133199951005208041688031218334020749105609388261553591812878834695468207587722393261321825951183365658170395778812265053369734546067646726631041298581232154191912030450894681564910513670186388540549223873900024951522126839017083306094161878094512958094650459371637333099281931506993115190649497892878640455856560485680665504358771829578493463858376727759807867795559297880665811881866828444719901903443953030395806505158262817115802684832495667956251924919813591858911815444015874835864477365833529188416607654889067573329686601979361892970015529546400514316955317862365502112585025037349596657934325836507147321664861363993107171885508051107652505090189100583049841883288000317729867845088248097494011979911149043357207080277772519569636165904644289975386718686852202626797436371825681785552146378712899605312355995730931894233530581989839108047724383379119296859424796765030259487209979375374769323019327381969419530172835383946908118996418836088685396088548588953698498522384392458777265142934078107735557026507202737824162195721521391894400039547512947455041113016862360414212094622478015701825890501128028246858355841575629903571304034104517695966400259194994974190675835119899858002870221500431806786353936782069711935106733351084645462432969071496071451634222059044445009688958089006948309215079569060404187166405097295200093733661581543163499223543447688835374149396282936245388573035667455931635930442522234406162296275202821675286905074998398665422052767132233005155519252151999314188320275650787511154554253716068325768338591321370007548189455984399905007118113340376588122912532261402505621014238237561881482693294859602589964329485490207023832610601380350356949896662175390273146179189229559879512836071783876841692464002262551201661274566796791949950293378684432278979672550165469159360986459853034212012320536688246598378398674492173051168036855410615463818897292231728789150371275638586930902514675716728418423189829004603838351912028840040680922572146838792781282083633619932094132100175278762089750526220377496044761706650745331569228826043307880079427038806933949418667125565926876108797263703238243338905982868472711802179662857720345174081347437747093982050508661062030683245236533085349174981246315553303551342335506929370354742429997809589987116835385951952328550696507185360969719690427249657686015514988722429866168231358262995666365302012496038246814186563032406265357499571612891992973577444136356598414474631483755301667375228405765821073780161058654813073754748746888633901843306063345168251015552005077930066260818647438823331692360716039253520185668394285204617596709227580579916996198012180071876974087802111980910418108563456233057632520273091918487051703944992404788554878886196907061793086553969831986442915425068523193402881347553389578268953691329053986712744718017634034144454394697336810353410872075982992992389054213384637354104213595260690683790314106703022727432037205015749552706557115480299911924506141857654694537990631048753331865066468015251743299455546921402293118580186622924138839195635568700570883826162258484740776736579475962665041158575052770413583030590095834948586511077376344360031466474051237840747946951963967169168474456068169450312290456552732478293045263271234326579133399374097976438435678773687448013539599089862749492213081758545973755065135379752312031614186536334197079001304926901180201955603048760426373220978712328694482643971411141801282834206575782575954330855754669579216700544464393819630496478803880710890580301600601615625920839712460927224112888215747272195725459422492591999357643610707804204903607872870289325249359455713257833294049077868037270279274114644692097252525904382372037103277815501902427836441452200206005916750659096110372032719282116951363887173658030900263168740698397843492677496184053023150956273056897942390662096810620866216503350648974939354186420983813674577859506804295270173802267434544172889975929202805657862052520944803901406345592338603484895278798070574099692163868216757256872654688526885151744536763532356444590539437779164139419441197938462883041208990179837703214001400750944168833395497978486135910399736335235491350297679726716758048267309828070988776790622317112357857354985118314490951176873994100273506284738664307147498933758932782213814401796125611904198547539103830082493745548370286165512704920577747163483076145188275149231258823562638627656328072296393575224951626599230896632268404586258118902871885583133857668248830624975864302876949937449344459688712497603493175943533360651972704510133007771367264170908056493196227450053657865754853002860835932862809999489421571577752955214461982828911682645935570117680469027061018652200379128328917160713224871719557165457862614178601038566882263682287880243940886603687119562961470190717097403344206298945395217735853972224816461942739382509135770854557341558719474213665280439490251624782094945154558898921143121570766827886886748082300690691013600558133511036261823818223477203205329054118334716768368618302650236967160048505171239335888880909441890140230895530992722150779325019088277587491392840734549199454257346426562497581945524679618913803801799833142384592691476317989075385663723792945432479271512451595561161631121123360112152797921760920990086745684079503909673188486772825946399618296778082385804361733694243852055515929427759341049020344356244301679367613954883933005348846998776081561335328740708603042919535867101967996338267131753581722170000172352545521505434151335776722704636100700097587611489298365069319101293892657469058962045900788011343072283091972094972701788044728667104960363760002805865464219772607718919608354495515668333290814934398898870141828811769994168988518180766420951987260610096729347289749098909509392877993985596158671173773818039288407558402730627586625492646770678495701467131931228739989644797614325003304359312014898310183530395210744883091211123027537526632482177731952513605269666380744115144729333782792962703804309569593208099059579749967043312138162523752845984495940456320707959059871828817206046402888585277037027468576067153116496489108825158619535749087324286524426683604204848106629025942024620305262581315991446689230735786541608162590478969523772650443923975259226096296095016234532843860922597394230118578964176820840647185546032200553267855212437942120092094827076038017196674029158572981547415558290390239983866838002722656980007343948032339723614326706627527894649774072775172264751372376288742997299771658421520609584712087127252381722414515013378947983277112568864534984650434769397030049276521146240554183801324179648640933796246872950134184585632337873944962499277699901361420181725032671457867076170889678762472507118952770851509203797463655042906870778719343359194285473353262949767644572351429081961880269019194953357323119633555046936791440385179494063337096817406052423889319911352591694776428461640072600118922344316668902366211666071311466663191670896065575767044150674021494911941144499111054854707972440126317349801210849422380754682678258758820800021311677983407382082432567317982552774880783274416018597585782132975939360664029546761888741171112777218750959683315477875506141810983275754787149662969657054017464568917227598159711215960898971241077090017568740242696066022169017434290484348868156386952544454716049174626956430123828948698179659193771637596549257585855085391206501177616445976093895820821775986447125594980566706322478373436702125335913394386411934841840392944066502873844542419530051203830449315776059585194930279126269189370512942260938133468768694408651260497755043195574442679107482095605256536479356629951914660414837408824825852626544736697207678358404412510221902007895829001098931582351817062452530214028630235182430638691561917555951339067029876250702975926271723261766675160994785546334690224544774777029448895332578911267840355962580105874307051777985124279018228958696662617902488246006199003178596839434807981219967532982021811763815205232813012548684501014452174011368630330671594506765231577229309945728774041291619677639045965742705823566340998892792340025691813014126168186819668130250658419441837995128782488229336123654929552993025379045129999375603318686548566127740508750380862573924866703710145759890474926417076380663705625502089599605562516532637748680082984881509460730158419711498209824363199973466286332789969834315543666358001358507646384649984703508620177840630233214223707817201990778574035801541851231026569299740649013112794944221168775349568495429948157941887389190204200678063604617471105228155976683776608548175229757744005017903506563413666724378714655401468346660268024284425310164064388044938807012506100633529000499134586855626782044442291455952471103071289447449120322175008633522218125213581291049513187324445461144598646773962551222362356078326203424762715492697806809441127922148491056660125666820384176521981538276978108376789791045869228484995598097736281038549466227821023060700429668918159263852864810377007082547973987761154487658006664011695409598956981253976263359844943590169865839652130417496321743865228922173887239174253406167639127834834135806993751708525962269132036848522118275693636570117816760057329478641773203120893475179701382310554039973747413659408582912062826579811166105457704709374795418873205628920658530844585555887399849143185637811508653346843012303940694423527188162367931431763896447818364009592775124371883930812583714506402402231258824451484636211626434538268697157486496889236558736897095483335017882635008877725054602582011861585412744639136883578248416664815762711848993727376485012424973783961385410687957561043593295754764209143438794390933426799103078908626361211154221442433560151939599628775630926109824290731286328381249927997002478635681797391075215820248034638226489949570127809754677820762429389860939445176967056101730263942550388345151892434970606622833204203515397823568026573281873328995932173375845101786678029688011674233008102416816585221884133232172048221712761571127468852665081039275512415647382760570721618568459691955274391570205646186762248146537205953006320765060749075736731504530085433968227248021533360981581207459749375543894248093251797315388719441730120767228272479470407316609099843393107352969688721939378635580682169795247881716063642132993563696658063236767906483528914707848436304272780192725816513822890995779624851127327587208265982061969333348482390519517271922416825274736293053454280464483727461262463718462782165588744968166115221253942603454881104257027609658906862732905813299722806934022274596041343384249220859655034988320010933763090676093093675873181010581293890590168037720518129630687576752758858064485810801988830457301733102595826593610663942576568651107302624129678289004895677329212669430331237918050192563546158140085563580056033834657203767757368508563429021237850372379843604555091335504773492846410913865158109687965979297515773809805797801689746022177896177430705488370597019621300956570355587655929839373673845348542065937325948413459275381450194070373939876042149325150811105687091463693820221003364386092871624008739524087100549780924143320552243151671346787189728076638665253787197957330132977603119458966491438682798687204929964278629404981856382836352154600309740755770025916310905888847394582102057668220545080268137549648214761181220693459786848462342434260257678460525641643955097309690994779014038701957407834347189205210856588364462216652840979350418534898537200185399251187654589945193215764302259743906159115864695934324257758835277905148049595993694452840166562285209463864104270867945227159805862629391987241005291034273996669850672460251937305203989768335245729555115852730251880276748992147792497056524822072561279176648068123477000021843781590625514972169233674024934874843021923313394865730761568665218888890246927635785217901910716812558468472873020142786356930632021320643021575740830583610710327670880054014067264504776588643283541439268536191844747112255942742035853943722808854796912516512683522167027903158583586497712451280808601817974814412227414531770928237380376252190146941071740791510865128400855241195643150165430971936236590569562056467383589874400545996762560988086175691077896456476496685480424462010435285599342415065307009733573235134074631885119078788564661429104869852685659532079584512418440912113981788900886829154696640133127762491781430965378729067199239245483735118700353070607238629648450137157815778937041047199457328969743917199294440439747515786099175576376204908479696924854116407448741381445476792928792670866920679667178058623883773048479011028179801400226326333904723534055990026133834313491661013016194889741607544301382652491570282090330693439855311003748412381864116149354013219783796117215868265332682610387420394228524108593376254418959814165007099743074921691753325070515335878328165886603976228055359482378550363264702680635527614748692782778535727075648408326942273096626468089608646281263842138449013584474931207083095396983801845146515055978063982861520656645727005906279328035890157978936219831615923769847026410261412101327494863933512239704866415602502085704210145322425975749088995760506312888007163856928232343581004325003179673592133112735500004749195981663735526304306777095553612364249586237939612779245036026566181559880034948017638223346254687174229657009655905708554566195400905120405420540270508820638364173441857126074335599194825030533889566850997461524727197586550110720633334075980081586181710011728855673818926144088596780661570335067405376108404087186133726402007759415252540324911729774185203863558057931860557616391864399830507200077181509339697131371900207040875547476147220730024092169969600411791690282843349259726217922705465262957247814392051698798487349251964775651564531935098253613384420551479477115481548724703072540820153051043654966147507294156175549499872115593197089279040330768854713658462845170923574382881273969191780877196907907268348798549869115448102705214080196824156042407903467206302139095006752491418748646316301292257507123249274668140722230355929382384814047431256826797939278203554499635514199274932280845444871393396999256987708775447336093378268145825475038204227819329518235189976402660432364036996415422505695637108516744408260640502902457107401753972118317470536113108351162239335794963685381435722105822623233045516967575416838570407590089291630967517021899620238019457874460295845958043121370228604288387347510778647064830890916492197338121145061834622918322623308553465069184820700028782727275335643254188571246919101504354607522090154270432055375067220663806035178603560975942795400500185508578338850294346409478409760562411431229545628147653193462163961013065146064994251447536511986302940609458359433345579313878644713093940399792254858948917868485825081503997536119320670860332803153390951596817848422888380994774530384558755403430567279123374269561499455125029759785652487546969894485103099922325224308538011912080937668065672633059367276471020803781382448506885844861392019291779036735469720262521383574221402957587250346286126356667089885557660826964064449873824749873415788668095722099298726505550773948741435931543022669767288611869597249258952747121603480970150274981200838266287414394267131013372541934151280321041151922038223445081193334635417987267529806861623281286871265955841859562017347135082218829114012704683548796968929332178680620369134295833431082034112916744818616188915761994762183524602964124917611540251731945032721629322293455466086030264438249533758239101575512119839423050238335189037339345606351334699272674447789149577733396296280149784451292521902182485642926307257287715441431225992371537520101742660540080656145881751708994685662361843451096495898786652147156153402262970032267027304720994225333182134611600153181491831982513502533680510628799313161567226355039825854043655191458343433317497984535305603089736254644100023252593332837406131224610639807232046580951418831914601809998660623628857442619911985599841130567088033642165517164570442384759126871103282761060509236248424599046079786978814593399127709694678588954683049705034391686007155696708574160237208778022137569745635796106722405867466499943384688619385831368829385918601212645516218707095035140584229714442248998006665731163487422869869401264532135857692670581132903499734659590279161912389544841093223408499352405709559797035411804665449084838427804631912966228809636777071652949750347900271581777697641471055019841383673484451933250550122382286500585714560390858319944069522349036863984321555958972468864110745619305658745051083790921474487946061906065103857338588622192805224689565708312890932262108285486948445755616466100115997614669356653199064974126010028450325639581356460224209039565371085423429140628934177763012380597422252168833533287219538308748733522681392787189062573242382804663389201939130206290774515486348450508353093377739475502728797544136750467171936454817391035702120385344261355528890032738904466109499401181729563578541737176555469604098520586252750246185806850389412964976975291677524168082018222548377993794777996415957718947422944162365157949834012401289581773982689767906586683426859298395891147769424444595098193767159119552233891855926983016413171901902516472051738412304719164325761394637532334361890627000650181225754317635876460823002577300621016044497508021309059574332097653796300093924447032850234589997100053449802740521533920453064014852849572178409171128109856662661579914419181678054509585717800588004916417740344174711737261032406620559478608278134588914420804901929473222733969006206560870053999558441696935277155686693150333092238750951869289351386467441964365234590627385190716634216421163717468824849387775078439950944499273329874047610344820796445446531960688449395109759363902136377817439383967038274697807285470916541137669578612439238750939057052080413068651740505620296715145814920934585676845121286310046831530280470381124614988915481678768718278250035541570250534587718271237682016362297400211435249750420839575589404641426544222092562005836966940453467141258090244712542843392135879223151911021378724202678666241177872111053178020193503444804045917236982944477901158599953560432247492363984564152182745713844410337912635105028610219393031882503846493393045022486610651019113758310122512272187666043011211150773461547384508925796381774184127202269512178514259215908724808492858381850543419586653797661365638109798854043809020576879201756935065862362329474936166559259869847739791874077000403260327294069787676098024043833552073325076624742903785105929890835066860589392698786796541740624516606496022086858810975240459337806810812979979248882058588316470605237908111375760514897984694281759125282184423827058387288319948020857934582712503237095524286323935133115474619207269238520669841654118994413215146886203634525638378097377548056278511603568032771949081786829339167218435821739382254977617060911486153979315523179280088095105572812298318769143779304913555043815963981095559292342732506412291146730035625402019829168556176329409873550534510550655765829218669411431571442933218684217418554349670268701301673643324447221174989757729291817984212074077858495821213003432112794888147530792244004398802440859306500228884892287290507215212937198454277015331940924538791510005476548997450537205444368208081992757777425546618100366862035328471550945219740234744773683896032024966456046495264839216959694511390309745279544578817443743734086368369055203176232518546776010961654237058461985644320493674354018298088942977068232056418825934930613586652904440836416546492767612151322407486231435769669525369759964869476387095181044877127169263709100445741535065361316579961694630599808990241588524431405306139794705119414070700064512851858847534083077542846757580676436047613238393643830453936444919707641658026600921838660928082317297720210214128136067886505090392108207087534136153226693578219078911286674015295705389896132177749734344330319869936460862370061349355867933839826279220459036581657602436444882511121544390578601812904671289578604884864788133225291383625514469443205124465125087010740496960611441324306891752773028707716448855769409030805260479340816305525476444176572633919256621111103996073745844242831284864993350356349630733842930835059956852627858323811586004622984902272462559692078824659290772617464911323283459973140327409817287037148151669199109289376360223356259774532256488952820803639560059721260069530747632462923820328145077295849647977439623259203469728858867871529300938401507254850059984167265384680511768271801346609729607369793832025448018453075567981256162335418909144894415973270610184639750631913584036848672676583314938375456585226534550728955507128906963148352607974514168792060905047749498110154580436713286445295473617943483626762704162879296868172365172769208662870088436673404130195983162522655094708836496805397388668422320377694446522446565349611357743977210064608361495752042350193091191502730007624371361098878006821374277186460929391601946882250117431840440659033843867975842779018128562395105562322586742645198529931241993676904169997249106063034329698985992427800847716590520601302519122176381651226904277450384724026321746419601248082566494895139678212121850915460416327832203647126575791077320750339664573159591799714099236491367004254527421652987202601460944519876289544585170397723415890647036647711035059639052934883151123177025831894918109278946281719155693224374383111344924509787882960822261780372148253867271314361753198878286056305317204122388490707720888241150981833189546380069341082467099773583235373851362902672469269096917802029875535270101826823618320960050888280862688303852516330780855394725926312230673955211842438076912643393180401164547704034605851767217145648466581022918803194675029446539128317256247786408926492278417154001202925420302705703299799035662749595371195663136069041495395426084332046367083083113368544955708738837471462955923938689395222148218735183700198968096304656516798418414166793056202241544933859969863496884039562519381536300923223657983042374916651165408178302034161660660683621786300617686219512172118973825099752494630482149652598403296784908677747862139482944298523002291675596592877572287701944243779479117027024758257243496821502116764433552306421375565836223492171701988050476269958507323346124400596046672845831051545510751301279751113866957361250158034252370510272302291599595702078264994893594744997203603089258283266167088399129104100392371506899751501951649804385859375786124977001860972536514633924778284343808830892544419119149976511966715905570401937252216087988284018489497199777082524611392119384975467463676312163680428832543503177257073944408834021562159865302473817364597851345272675880650932642044894070002593182851808957787850179558532787919208021380920224238863017758354663876954294636377508238341344275943627328594831354063246279217980883095074421712508742708171599062150888200384345143797814353211594616429035663474943281648744755337613060347299685568638708421012774573709740934302728526756236440459855125205581067434193312194637474702754889244857108627585935425650379118235016575062998718439668088343001094293386536033631602410127638309421518177613402490390075714792519202570181670770981289607779804794992389276247198108725081337197652691354702193763658785395367451048773158637887409632070297802256655475549404652046554256283010164348080873809494965749240982959166859316691732854584662732080466281691217262569985523622694954531023092097791654306048583568650098518302151034071878596909907512074563179210548844015367662482724005685569403996127337808262909168740653634274177041491597224272587431149315480524099170297513954420279278724085480632333277746945549779058596576888379431550431298095737906291711964953914889240104720104682482117428477248147906003211575782873465260945525461171131732457813668778504775820959628977724881912412493397162652491377662425146825091728794620774812166727851023505851238962587904385180332303252560767099028565756852869570063910802303630357735912258265003153650602465544772765190615540201970041793829745731879339859457299458125734909333088721498421495103473925618042717805146706700074165814060749480880792619615941702652258222315550722546363837415153940810260260320656252247389547140218757463143058621425539744414513997922463127812101041890591305588085128585815318217437110381804041961850864821717964055310037058486362404129804936611763068492198940103857486043616152281162426172185406388685854774305704513609959688506827985775513283853510653757656809326999160265646132414518464617806280852966911800944472480523437309360147953907152927523306458062471133347106045689117046826453513372733797458016185743229364388467264914915710832650027073000471340151577895816286386707794310252321533429188948082021337324595552521827496437242607350125360532789243661609310470968329876196090026300997891397173326545805010245700994470737873472452111068290229848235108500200060158997068157601180100346526998744950230852186463242903888217769782794463849188137017258355052719262141527701216323795767927321037894767620511567397363296640143398051685560080591869432617582616336469759917952929773437156281959812368165703175104679711234021849216840329546508819819787417896108013477021025619213762836497018737278241480357266892738218111874555962217507358605990651438208081808516186317072566116595233353643351622467932719997915297073684304080805158070219589675447241314445506404068374136704258820674573613413788463129261943818681733115450754587542388221915372272557996353774605032967390935528319116643305042196979839864775108765756142440936767149867665056169141991199559667895281041382941964391633029666836701023146283678283237777822736509490187008237350515647449732269536676252104819648147621169058950902805715063760075887918803072602625418907307713220705507926424057029161998401572227730120659862103260610654847465799893754774286796276340842719727560702797848282062501382164772342947059070639623570839344007967545731945955879894512617374567209570456049412578630961768798171371088407936174845622503641543456681765822769658741977557743086009623380834463987972022349563227826018008642369722780754117286974279379061285024736856051751108447249679003546514834322887037362849790618296870619841606843912340177388226289164398916162770048053214503598437828151631539629566657841375059539828246820382247578306912662547366304871102628674733617281033690788462338156800382756044805059567912582904723207430448745641338573690375926314448792655938514323715369525114768120661178751382706637775914059106018621164399039544104337993820152729000267292083044592617714162287297114557573090042538541459589834174569601982277219806371956994470241625363527454404949963756354839003972041627601961555671608738912844807507968268854345750987605975763915509083116585882044474955834778524644650721187659782543166266773848280654385813374999942306646913810052625124198222266161922379285730871802999130564690108597188724066440852544636264921712519660003277631629336350057631802151886537340883907526262547125353662760628367815525013268017123694267594857342244555167903314516887661819351410147028862213492268180489814918038562782799888256697613934116219171171639836569248199743513458298780151549262072685399985028178141143563746660903441635930786195728852299678535723397185783449365683905509599979575664384258915357922333249960840471107596196094068089631098826827446195063623576310362310843824668341298945593118209473800230681342543884443449464430553408573679253732665115027503979300261695872830529439131749286844791898988088355450521129222677589090367112999942424948363389095379610991764258895608388050022738563101015875992828837279533572760291669075016203865359298519015794795759174315639376922375079619110251045308160427792567976996560120285266353821178054068968622482136861691192394046466815015345918727079092715828275310415056101299300432625123487087889444511452717313339202798929325792979695225417092573888843152014167972518576187318381971732499922631166402176213397446037688509477728445396177150677708220508575372063145033567150162322281606586618845999729008563380671256356574232353556339633586929442824963562599309046867953525771876541002500967973706810832281093826748126520419528469177235534854202023880728742354482300551748362821500850732172013867398175758181123650213991882690314117312503728102144143439892839757038031239081008724461154429716082610305589443180275890207842027601299417433325721120157905942316621001716145049985015386305479764991133345939123184927240816969870158910493057349153012242072485685986176744929531833711994481108495090089293459132357176580966130657868352043135652610658748737224482661840273981290577086551342368537419446309359913134369566078658597313174543369997686981303618624926820003956703891408427460250336824700659882030963032626318911060190744064480377910936688602909150793210542113369788652474513821486524876187507744457713898874137811709504634311893546566395513603247216043804616864265819444637903437557571773665319494457609387781248952384667243087388036049764248829476781398121897189732317130062121605766017284163978127832243607243465470833688837013809581516932158397877197615878524334210639716988914672521631431969755398927876900825874663885915417701677709808843416611457834710536578569053098607370190173900455119488677688711890059854754558642484873688998430757777857171384172167063628109756636025889789399768011651668576900764222692938594210467851790920372664099925910033454205864822251943506934035041753403735907897245977154240275042971460694738712911528169803972809820262731101276938299541184061669603652294783217464020070443399687286037569701810971270245604213139032553374951658994625678385284423607806678500241599187227008818197279535490156817654546591807301707634059766868083412483841427604980012439758374620015439512529815762264843560366699923682876436579332692211449586431022981077914379098246392442822546000209259148995615545801171407850643091065990569972978122643330905529306135376586614883819680641744943032476016775690277722007301896495975236180781333347281658977668265435100836993538219512333305265198651837681432511652482026049696930197003307770396409316051099466452129050147698440635613944686435460068820288381217206237535881492854928672488347283580965832290396982421196010915755442835953014617829839477692142650559169804986301949472702213656108116188176797420100427100231182453404653161896723818056636213757506116681522245726151456776796335328937679225239973820415631411325391520066969669183770090863650893621111946551658767583398727824316803991078312502310029394636645253537439051597146836358671084654682961173456852168919959515102564147048421039441883603567803874099623987323454279517588272509625798730598046718731735357558200446432887275628043611109384185068377226563135150265313626134391608955571759668246572465991267434151663329700396139086360328993306208735854049482265025905099255354807657326794674762154737622915099216969657502826909390762169337897284988682953011115290660691814721736604561783418967188379568328273849555581994388120302433105160636306123621957737175611040927484264712142403274877361351681729214439162855303174743103672221658235134313144245317796706671498309550680361904467508688807362811012460516312890465785449550237957533766228661804262092959268413801914515252065306114373904405202484187181499360138081657671867198306106833043810520648440513346499387498043900158452593887617214411779400530922777075696050365267459138048938594364093486952745160730087810477305666955410397254295878879263174400580691681828451236893655537411085281586504686402420183468730804100700444195895831584274607018319460983924384245586457420600955671216738713004441078569450458583324907106537433391665208174940007399175172097234617921676732853408942812102531986263801699623978770046946126119294465340123863074240915190134404536553270923306152054777932807993703724845262992103293090945396035546114470759755867274487310514565131566438289436408665900957033321130963980075978580711511732545055651651568011990794699292049083101858216704256230880731781435095780202447533304135504165843620992304698911751463129977931726824070607994785572737042594004873959743787168319387685012678650735430795201133922736606184463509655343551755771125108861899110382419440239448771363973750552805663428297758864389899700720001332266647187215108320321164122186796618289037680582794413601312322296559575312585537347947228633880621504126224836238914695619187284279402180369126422845159770450489884426441293440116525167148149182821600763709824414264924503806624771130643160584546907630415119303853978738410640442494436786945844128968231685635270170602776762420633102651620857199757084206116849199936584822487154969366705110136800022788353781088189887988203823288253605859971628897075530812762077601812566975702243296609631347984666713810498538777890116014671828461422025834208365648513319918041298648775044688876831298061767779785923102395970471962216292218082007269024181598391780350666004612936297643867793065261944888331935972828789477172668942626131986967928993888264849248954386003107974125093274488622593127850183435748195141973313325909968193677075978323363747708204823201767808632197396214306437406655372022557658572250694881954592569853553318528764335537025980879866935419704793800664878578849286784322328643369144991556701213739905086010913549608043462566247106863682763902678269320329099406997488126563068417410240278995369765041276914928076489728747968183327974193963989500889776367027266667729328600427292332838110478737450259012613520207217327397757224451958376950070853387495386083062481904543912763534183326729529711482886693666164118031344878669879976324751463877270615974151903463952201474110773421231988676871668639269028831135968907502421428455222827241398613142669541902565091604885679744130355702562121275184353494399630872631815886789790774488350059953004597097627014377981633128019459130597470348219012546280572533916143485016178089754700067573066769685306766259670359974329160878786165264523150228745823564492071348769715336293531481328244482402222928342423968818946616842478457398845726245061876448320866900685043499093171648307525158243900894668601219409191204532935606895277237657916785869779873161031963448935894181089573543655103926737423732772176451337493960995701442940373195336990583227173470448686770100884611422459090350808246705804846623209821668060229982105633900527982328387401368419444559522074619824765617203725625085197857194099948657560678353339621596212417553454498989498200266267077485738806151785651311657887279408428793927441371337870752685497072685453918595475344953555294722504354988398310390926532210176204749034903296507911691000162885556839527663401854609349429667448990101085202423437400067524755250765465441480947554236650345073194728484808473882773761756779845619048796416162058763085479545975491968549388254887834275349575468565352353411953200662989403372512004417904770939656033195344667440457320621378532268264238443098833797006595605172451157655450329656810354308786266484457431527333378489913476551478131525909021870690690011141632683138063730267529096890874185043127833646964074479238839282407300326664370154339718608533875894447022510244184102399513679462392645955689307247699467276676737543571832867273705961389178626685932151074569920003209364420112626540849954101223241473840964577340434147598866380931951265850894641942557699718206922973646745979845340892125738771180604520931584072429884610159368805265712708200381082687130143856148794899042757797848424081076126858229367128524749995132887741688810573188153154777679661530053117858389325694463326491567875519681905945252954948803174944823318492615003201661469496462592108413835477106266391632926406413574447572390399812217639121217047167105481236635573840815172141577468654762865261488464932359562725400238269363025725991196564078864935745409674075719055855728430262470137225106606286248788374852902610196490895565825930128842580711370475389401828245846419932881289188844865420207214336224402873955209771106755874955582905152004348719371578055501810282723324008502916679798978947944340126974078010839702728907716817344281767810651491285622982811843847494600131037302387925926082703267810182100151138913921833613764805190503440418759417444336813989358064866798963214781123055196080741764053236993440311257746339447610351958804229596509734479001458928148440227017845637511360491491294369525018001357275767489331403914178626744633637239209325496347227714273017216650273804233136556785693171959136812955650288236674776154518299742459392126933640063629837339309364595256523803140810750943438047433319647172609128968670386117925312919852097091391276996491838886123030101594396035110087471197162749994828709653258473296264814523395373318492278715816557605849474297741339457724799720677094236484603253961288008157377867575089941935190557179357693416689079131056182986042545917986149614009054169503747385242257602732412625491638282298492157346908944050421263027694837292884682586721937906793068078873842881857968796851322729808512559210221123673470161381947822349133604035815500281905149226757812050472563822997201772819363632201230584954890378270373231685049583151599975280723190379354745979413044084312983628540626872655514516349009117547272975263012432008676929693841131384564923449559609665309316830382887037713858617461300398075017212445190123507113676894988136345524915395954340654704685047286069354267629561220426011378925407062310250274992999507326218100247278483656420275407687878507492139303815401113594481409224058714741031342162766653899985674680934392940898745865950933599408850942367717428509084471697681163061978311509751254040543441441544062360919585753241153837586952595738720325645311659917845552116437159498598218323904158338846609678751951454267979014152780205737413125391934822536806321606585872385180406709586134425527274845657369552458308438372486283591789670602301371618980902301207449889780011333679234130027924298163685203792550774080365613568269281734407955970533397750158156091877834904838085506633104781545372029009292480744044287441460430781892749840384943689255337725225420299732793876048496681076904288695060718734646176071201400271308136440017810294935767084065231824369625323949153642602555301617634601943415090228417019288826711947193430912282828293987398924502869157688014212626832851014176052098885151137438298534944836395380255098686233303071590257865704815237953030153255095795026961638970908206311728168548753431184496440738249979549759201475620837359120108145813412467804195568435683400582984194628763179982089253416553471632541111391232092938746120239735368190138242201153018540242183682160518510903945073417699671018254756231482604284292801871147221522528118513295957787192499105460027778324650714722633018437294730833018685332215626063168070074085265905959318052501512141840554302375168098288827436125094847372715049909588621844107445773265167697029511408240186135486250388452031331687988949676571214429035833868876051889645875585987022311990077526095733071708011624806217404067161466419478730604445450841628026144352819937747833503073012913428094495156442456162801349083372941878957394697903732616996346620223858680832740622269278028023722909816817569772327565554280330376312429553174863133093378798343933683444160446158265337662804836900652827449335123244825673098857416772948191939702540525077597686462894512787927151741589901045502278027964938930512071903797159996225696693485434741257530541233962786000898929221212902564536463760529707875994617309949128606702017213950884354133049171683781863751302090188524447818310658016839076226865252719271008419936145067594786920079509939849914333708551217485019057042893001585107380694501689280942107699374651226629940300310978207320868850386915766523951206170109417301955073353906612706815376891761686228114117742745967589816201995087409211987865122560509555326123887393046260867780936685912117740753802377674668385403906320472918709626730452150385979539999901362797947297425647870418050915109949098091965869185098392046856285257123672955733977953879310553564756176348983134892616587907716383036029824435261026970084445134279407075926487011902025003384105032831355846027267433865370818308890266301400479300896909838984192674493521004254092878306549150943358063399041914014125049824180119849366611973778392924437688258682820276904150587512971220863547738155902555921032379698572190619633342860185783418192335989576916669417470253292537520694163861578328049772092681053138187217696408666207324545501742385875359275536260135102773240102756156908603766924867820813741221176483202289070712683432017802666785566943663716318318552045520930849223870990301452655762197334395706826440528342509810664153390389979243339865448608397241095893156769318335771688837447641913920753051147216223700661106795289740216085351637292235458998369903097764155910072782606581354275928236986607419334969691178356893785816493583800262289929706915953676145266975794476455804445457816169388893041260278534911457896921929208865822180114538450560760636807450133504638533091664981239025510695551203023451542035056886193844051908124973836175975727165526798779358779562102114431064763236695127679857118565289994491770689031135046102747408818248177778316979277742828294171545642303903462388742110355874881506753106662055544525639542249038848551633656201883899716168429888123257174810541687491525265734340874012433441356246827768068396229357715447421941517187173546124538910881852665551233847002420823239726927124168139461399191902190674941739872511225178015484977698214905653227647930102885351219089825823790695130884388886865815924034058228522955233049665982105840005005706574080604602212372442369944491558390305032667339460030035153587722715325220682037918337014501960253936416122272237960848280419242019141465250710816675527832694386034920540131091457854815357024951057571840472243771389716927532253587303635940721308965965566395537888648569110284301176005383541901820400966988594350264588361551151702267675735578108650932821721436852352979280732552913063843413300797748934116115303626966913116694497753105083270866806536728868044301732280993276627463313488944289774473728840653464215500190741728859865982052655992313636898245497651017350181340881945426838512667465170749156903506629475875558905806857293260475595110525075234452780395602869921039718070556267307697435748964454542479100102444348923342114162227594750306835885143659828856283959993356940296950625717050966589012686975853184752484051168356138254282521579401606850544393398099800699592626549571355364546725185317797535116190073700883643697642343922049321220514370432695967265014349682371156792116866562820902972323472458002436081960812382618852649078680857215540722221455236847025017294044496211180528479785651968447939060003025730494588539267478975042821901245456506074642426228700382607297655099737902105009569420638148393006110465772628402702507505587934394414869376409761168409436566473953643170151649710338248902984942119293397018972592326108721359697847303795961572196611978049659882420987729075363320624040002859031526103911317258267416206866571472728147745979330572746439191123792895187917196549343151859833867132754106219787522536035828209171692564894431868472761809982696428987145473132114482466425494035467961339327654549324349775808190715702821230806201739230548793644669424552411655291210871027962024982706713056172384965715899869567157952486010385063396780305421221739972836997194148017743418752769404774470451190028052806780704890027245614196122190785839095236609123918655050648070634142055660548767205548194126486308433811715657271605671221741568931884139910778562646094782078434163841324569693320031616636872089959585670714962219890808945224633151681874013153743317983828908512884829692152039264295809761639815176456219725440653976707434548974778653459168446650880078805997045728565826662254329515100654498264118212140397697720391376814197093213258910456910320238960924872517917020765572718273757487878932337704652571377865584288666727561264803032641005363262284373981742376074952871887923785502064171677928915005202102138700471830900869652759370412341359715593607647079812944937775487096149441150266257564299702851038385566009330478677815016317882164392413355607721730787751773767171671311087087859470146086408355950338366210948272091580404217884164132953283028672911696892375415867643413089879832248752473572266642854327333016317704877423227061261028784626209618068511660354062632617268465493562034300738864847726036449011247544817000084935067320851540910765531311642215249393963996453619479718624429884753270447593719112487187545557510191663691196620241696656720918194569203709753589780012086275264205393455803693124895318948870101567952950313941674842557713190932128745638626080405367214739283474135024520373976095749414260700375450804148041097278782459456669736764204976509194820335515847234485175824721907693339544030668450465686594242045260178171006344267860372171363175943609312917601586192756767388466472905230735758897792389110642064976667184443173095540223680112292823530415657684601316440212580030940918565574750859646865557999981700166948080701592401940223551454226406118235215656410073401432642101503227981155734690811686191047970307865194849253930028458799671849028865740515016832036443270172416700543223716552351788977844553916698662968118620777543242049760399713628275122903426040925853107199422570269812547884143017034422609342928647490944959208604194487082910500433316647111688694056698685465356147694999023217640283078277457527367752987842690547204430302232326998659276940248375410137819220655125357497542915744823132473052503636103957767408027815390758466062477968988197528828317759247762863969808805901355837382885664445727258215929882090038593999845975761820747617225160322760214823035673356210178228241515133854669817959442732182353344084182650121637604808148745126297608491051855122549433568158734537240030704402615129099849739012115143799200588584670713295559082779334369610123908747922682946551876923460030261043696686467049060254974326124865284091877651284557257200346548838191203170266656597359498536921436384592742563663368815669410933104123397710074368426658069551418699334513986933815228770299017904477611323126139590403461681609695817821192260244716296778160559842513211336459645894057964393797341220277136553017412062450726336913000218488227275522465148099291529470329838268038122057600990357480215424158359337212641838957585339380498714175021619581489548505227507313590101632965886365379573696221892463779972117595631400672762775423017752480964376379388998882461257560594277200889612774345429127530908382324753023405044937225473990542472614002987633122900215290296546793553739316231714900415727023725215214596292365789150401007774432268615705970381623859152209025316835696613234322501077762103298888979820996735625692126615454409466892320288473669721489661893514905628865773118546648031298666719402782508472449540139140487418554724651195645159178403535277857323054980600305461237622432437949930408512394973624425552296488522410303933109465430789566864899173558954391914866591473057311867093657287653149589814570565056005383634159454912408056760718427140532482437882920685891352853445653815616522571265920383437522735556767880907686621160755218282444201471379518557439027218928348641705295928049449176025780799956737200499452101791958172335452097397092890060231493443268915740420521886651864749713467770623250916698718616136603063939659960730968637343482983287227420867253636363394524602702472586492276564814941342726670395591044390497953434265668586517702505956284048382055829906815678873880740604152365330357302664558436501260016658173937495726548593789514912945858182064265355634770563925044525846310208083654819468773690150176671503231686360104109255119539605667311529643109584792990101060243161019414838766894678121043996108917942596278150597182711344468928391109815786117357981308066308207342619893102659271904687083392585042702612932722488640588965308603348377931730983610905833166391632685264690963822584203655327721004920231060951317481245181114163394112895891228014708169931323488540044033259869383090388323902797338150608119741558301191023125102889359458931778516116842003202608653967701696531439064097519319198051401037433738445085878460197303327993580352895683063623243352747610571531455897360423216803966466919956692976422248194705681939320462874891457906265447557792546380586610795612228545687810057752044165305798459151538780491724467673353090185591506128300345936884522860812011593381401898720027741591327480106669191683800750646540779879828368737986519800550243388727374112438523706501479278234486378226110763783124738252325931323813326099262360616500397792957321826360064467060934495072677024727180331820984834908915496313208842651477655020870640029099216812904380911508877870658784900605609240580862211871544795103123136944836783985817051363337871831028459932640065785641796593250380542028675805207872053112216642331268838231436945891229655790262867402626006969168053560452350975507410740431551045787879814075887612677975780802639646046129032818183529812165794323665548755807324908404052930004628394903367074935538470534638941968644815216723281457442122038949127045229164488234608986299122790549259206335927567286931091927248182613682297775717816848493011622569237758945325105954339847491160045994333594036451065320634193632940111113776380676486990083883320231965004907030296021374388311084230352528259260088544337206986642369212110651406289254328628762221878254328046443699387197196036488259593227941050294894217761305215073429425819731659554565103720445330503060868982978718808708860610307935776149069495226285430509880961643271555171577397018855885311630673408003627643405329335346993607822442993918985304784410895837711884814616913074720362413633529048398046092645766407049935762712618877570669828544740973401662194053422966017110284208860936514413697027856237234673160196055212760626209059387632087661694169210221738425887314238652573743997478669001620817028313406584208196048231351837385479215871145961664938521026295294724884166902967832195073647380166161214645951164447590585910152960629916315571578056542959007539495698938260818377612465051081652683533912220687110050874874371363682647266735361739294251786576609578437005552378512842773698308096986177668198046465297694611298660581266372964044375804651488068679791748595201932754997604722154592753266492570608798872699890234516493524122895289560589293335186641409419952472973292476642514265291592249270643244326405240251051153066936845140939764284920469164974137159311340958694481417984792517360764052048116922656873835714373452411729858296251580150788585377974913718068642560174038376452597523210330369528318128344707011201748405106391685184318091000819148702729272486794607675308535987806183741386258159495596563262741084500548527524751447902135552577131092693882809477568563265142558673217867466554904407923448720646891353870889789109477647480459081510517974286129953572091822571728594232663489377940389327023658131011026135757103862888589136391402704256784705633847028463939913256580120865297755249733683019669200993534447549920260455367365486456848651876258376465171862143330005489125652453770504492453817177408273077856294306312792694421258721123187342638357304327889415008798492414080772311134135496756917414078954831071257026488632549749132649741316013000136264838359893474968525448008351543714994852903908247010041926470659744773811005964430696379070599358406267928543230177607716895797019898369060910245709240337881574886107592019931512100775577193937798241155145754144553250309972572485274488974358811237715659153106175756046972402943212204988302163942326537702914250898097510089487431283748717783229911357053501170813591702867201515549438378655721486741715393181625356512254090580121876426398809747561952358725644064826923452269896718478968883851844721942742334923135773718871325100792271404584747860424502402173719023803477477117611185644657082877886680560648812082665326710789699145749035638363525308076540514164627681917225893147102422059664180420903596769497183371091362469530891364259070292376491797120954553324113814776715532165173130399198674446025869739188141278430333954987615191020442273207819188238307530888416632487126026163170012707786464720683999697285993568631069501847615224596866532886715341475500331043191169315162487144702884263913106655167392281275767394396475531710955171383500731825920314000143503748785107878335919370518877617492492062896841513656960493113863618225171245418359575061569902480055355238714098625003584642241892425660624582791950223009082235411897562032973498280798170397672117984230414848320365473001277777744213690384223573185720818554294371275236137948631222814786225476339580478585675141184105300530939476738983954143163758314979883203907670659152928680348017633778371096448978089017952806812818857604235071758464846648091118036874104452447412554077332954698387897531954541431193945583153399592602696397226789159064960574348763346277576277880525815638889160766505094165624608411140369709858680939885387576523071579257304796102721657305166735460592896350150343604867516008671910299782700974650886794446239140151744686281400398296329376293475115875265625960307241271898996918676405236160028550309516029678062345273805701518053668196185022961232241899327272483833017221648147082324641430493261851263729891409918140427371352794281222320797401747201380563219522957367816072214714831784883202599195919559386942514899070530468560295653973971545457325852288377741792757269191371905004322768087669245584352190308410514122287698585254941529948236915716100602970636147149918240632271741114665596410263216441329253102641639088559821838707828031267185015497713491910738018669127159262036807269090637104656615852121762965443604581718895446305774140885947916361310231403807668010024991581179990552655898736903494258885396666890009937149796142371358418914095684368826873873835109507361712578283364866373278204113485387363189327564038317935256046878225254398960064042884649731821536027970307963903813091014739469141709794710574611298946640837820936228520711751064341754249532032948444051146597260773306084316217154660140386352471660651458049951104683142193435627583410256407866899380205099831519747041842665912346675775541673344272458936364731467304946013753825531526715034712124223978305949057843603201191073185846019747704899916807331857210128318816318119991493366528507992940298496752734956840379467048654047351034769041165864443989549794789970786773071270433636388978639983870837384715659513249824263111659008324111293347925607676575698663449766256500598182458676493609852957928752066545400423562123954236659910900021373700843911016325284265173534568390904737783842898474460348625872321150678283451266889855401710180412327685200778310591565326778915238338423164280033559092932258812577972760285810420651236545065020779703210107710267673992573155497972540481375735417137051309906747591943726356277079480137502685213866265468524292779727150123881165299203958187733518357188330388584066673208531762918698441216894544871650549207120243459953754068986865814125478144502738989943828455837913920455807958773335729820605632293576913586625258742692283852033556413730863275560667746610351819081912274698288505488401940928946316581154578403874846995493151225333613818347115579863405503933148356832258226340924186674835550648383923975433813950906961131685154967526440773963933370273271133802223383066150889278309973248771729483642009794992112738035845935771971862751055395679860416087081203088191734153788923444002480430590845111189281766081534743076623336787018074247903600934674616139861209003075290557323720819657679282566248014415333306551969142399475358450888226691608423229231875957840660137155283151143707894146130052498801347147951499153138952771337276426735210665512414807173377586052638255099294150274101384524550735142754633460129037435467376815788887659704509093002597851615781857215878898238384875040709501780823404837278466929667107010107780161807185819236709953618639320495643166190842932641035169632462977187123421671181452110670994495844771381333643389008718274813788493630266492253399276144819262583092693690197529551903020847237383947850837605304213618668660189614016747099975138097816866721655557323663840830364055015495450552669782658494238270787942984072173785571286922303565590932716551266222642952113962783586480682418383998807099038151746057829135974400632678928356507213023059558653782300729052959972091518726363014042435982222737554174849163933629814261351759914355592847058517909437944718512480485406271337862858576885020021813333870865167468987269029059089331966896783803149527378272575063401347221907942160083384153914201416958429358629184231537562361821380946717915854115633932622170310884139517650116463775163500068560489766552480870236710886642542636269029149461143607789149351580721737589839852631320902494431159745272726717090938567278217556782563006336128331580085041886766254854260614580978777553272895367065340082607540109868038685762604022891551088484211370556366448203786484095574928804814044842989651453187463833063927664831274326880698963177657966542596827477838570519346361690279219528666976310443992101727324978254354813097746781389141913591808491064016015935320369285604614203766567051775029935161806001121444773300326216541619849500695624412665177083358746401015190177408517883342584777977336280092566445459085948671197856201381366730588523642255660784366959603079465835920521523731477191030216442742234617081743300559525996564173802292784058926127833779517030374580876135904102801218690963472453374448558914506667622691662151625790270480019685632736178911935833367999647654378883477932760867676160270597809924731003301020954195988174628874729051345721401398794624354329377499195570156974953066848881236371641365967448828259231711931378684015290070356451754112418982630662919351375307343333161906935547148344434550114739815762389092936518626045106282784776310416958291275798203219771092570212705712437936132028507673235837479833234496508456318328711383415783456490298872108297430768756459943395305476699781497048305225787014825253391221592483501559114210062704315728125703223517966075323682537053683649489006274420891455480920029173100231978423558812828211177446657254179699905968950295790967162482356711757152596731277379757072359445196265733973636389092946743538536476606641192421368828011302456367331645163642313717472676142947638120629550485179966538829758947498786035498561186685932808731245954388738786193515930450541524124705646414913061182073700686132691675525342819171399269975746870654613248458360514223493342964105295309998790355019176209186867458809137350734445098479562907236795020518544158363121786624028062119470652136766691574477931834431284463640461101345453531232435155328554048395950060739078346574774697176605445446170119691646867040508655574042196466143360368277321674661469492484213531494753652197828642994040616402721867836044073979818664241113194115705380544158579047484805717206034127345116738852546698858543499937514209967794453553731972608363635471542483969250077749183922229652524551581636042452106715291325723710580671907602505341846285172539732155601361565496459395856428859652153084206627767495974925093999191820550411700267235033521501069750883250907997023325366402553738049769797222042299291047054493489744810771808393035245532238268632784284918057646219680628438606329606607403026880222059080787413981700349445133868769368960163428150954161863706356803229625214539517983648554088772609064614542468058720624797368116871912478541635236933616573788484661827386080011796590092973323272382842958987829773787327162734341774130449407660454149699340937534796288573237456802014307858365315770852917769649576779476755959501172492310628150841362662317005606758798183688367965017192489602545690811295944620882080361783933859712071829261399105539527669811437581067185269955912760415427713048932262609457879535108248933121899881195327976889348013482593543831341976716498700600625586753787679308266389765938552834954905539830023285033798772516483059909717561501521999187131801447439531123922773837402238017322881047281943037260625002494606509920166782949733850235316133855064154418316115275856068864100626254178625351386065016517311379831746545044966374232040078146479448105126262506860585377225369207964711634634622996540999138726012103736138455115124252193785529181562634659788350453206425993283084820868583778817345937636037397379370297358518818901842329673464705838051677235107575848082597079499867109317536457710928202883312807421523158512267428532183356370138722844025636174060923686364805839679266494887307788632180128993930887242269161659416719385261857333766878551829304786821804688413131466417225221420221935940775927527158638624712084509602016547512266162769384578461200263884560960764135231022383556712273391640427246252989518293331506709706926491378022187205765576351347984770003312846896191678807268143628230140929141478958744796565141074589922036510202369255121338608860070628849090103075277773899585167438390102318452254443301247277958139635437490490207164193160440380482546024848615746500895292814984755063928245503142311067721276148501361769318276622444328851957327699942511612984274128411289018298033645721483967107859346326737403277882812452222397769905922829672380385542966452743016715900402175177541420047025889200989532581538860927601031140362857767609184252680272729559179549279417889027617855472312078951068897094454561380255728449352505212349058324096502427734615402924417717201567712358749051828500861322314845307959981850267080465208489001034882790830249983153411582063854481666491477175393685257262256043260028353924049589455389432421924544841217325961771657458905919370085795367708310434493421603555507443875846559093483042265921828792476135388005410763966926315502033480132891210802993456305284929452421066084316538978109714632621392183022433318273070095330342864589906690708601460137088113486582741152164791553615656439279520379118885584230916147060348272752853079209052494223081177470661551570471038170172979133679867866675131348069053951382258536939145523650316690570544462773359152201258059961588772514925586002554874770957218643806585326868226920047163407085713773287797608625412055053353145348499032308360880354408257672336001375103380939251208848522296137590967657248479885104627479433654424496843401315755553411714405845100219895779814566175699665416413893978564701879160881111258185955886635213813021416429575029353679000139913395102050955548866241553098908648863783876436510295673978844239836927027865473876785628990469671437142165691003748851942971502822032995486676343408211204803503911238194143863605414469234024428822260903813819290559330544964015652591711957454913298022268579125079730999320914554034582787958847296219714262964217852882269320721691317227422751847419961387146518229870692419433824660139808754149532049422990729769167477023636983966409209896780979455909735686131707983542786702455107852946769068939082049205839151382077592788245436318533518238283570468066990880155056185318609781532666207326890583838147796441006064823051390828523462643448402830256432001884368591507561256089006669463311957958941573960111822309169805755059196136495284495012414870474328609778189530459141264198821540248167622284234047053247850002358052858292846880888471623718666580002488052652702157358649866256715681114837623745150426122274433609556610233890737289752630829115267658552600112279978178046904810398387089648414727044705955386967900327123571334795444604262324741893907262813421102589409694150824216810679515322884282311888153569308597194776385641521815177838041117516751567658775398186972363447164306351952725883380495802592238526271845206233772369580908232365965373475006723262785830883130835384594745635872310581991544410920777318594334593273892336279382694472402806162711169190924132693057530312911368755975943707858808091585484486753010359945472416875955485110915907572606397980805364066289690443742209823405712274522333862448866841564163516529106948664924763858750208920454021810392941875842100161594992562982758086002245974260520783670001450750368961223803849914917609534035282821942253751090864922448430655556985262015674075368494539273537635733849398331708446103984961525261371925138558953658406536952487539618052922137664718648676461520780403324274584872878375762163880070193067019153804187847310169749143080542545199283614232759060000061996694303895787578085440682024941502821523278480404810809748117981901557696423512266529590171610151264208502141611080747424552077640339605555467799163655401766050670454288559820654719435135837220511827649252411332612248913253617268249243919736667903830955590205875794726882395034916486857986053894121847931308150801164223073839734963043847677761684174677891190157678239410536755451038222185185771196629419659648184234111239750119278662792972899241979981849941236025506242923560864039616427968285215264820744865247219649045308123853810871447421880512627066164218264846016579502005848797394940627058300806702179329132811641895149648721611945530676820379455720554822703276910500915494594135827697991098845970154898429497728484617544479025202684578360330557469630168326249988607733195858245278499364045965228672115155354296573936192001438260751522939759894431964125642988571386598251559498307026594068689665872616248738936721664071401978760302292569113261623114131471333124085878824833568774738798210306811497452572480823710608832349219106917889459056903932513454114051476245680931444521486279578157266147450678074994387794391879789813067397054409423464736373243155086550777398229809670197266110352358449282862506926576430373102739059851722662773597235184679193658695377931399902004696480443105670466353869594618919959885326273573741598543380508634364570560518960990819062426116443626540122150451527451442771575586925432949615459268847259731954528675330553671982600624429484327343211494017854358618255734137603227420159740654078550938438194355331475735281154973343818242742148972890579346514534832643884778936150805636168975590206119995525522866418368814596822836768677740045465493344833841543322772124524245015340043795620182491080574358653011441662846372565102670067737417908223149142504682987956930545401702408516898608710263926512969955169238106739029308163772276847625455044034276757846478685640067848344490191195725198815000893676854213647412703412351054009755730639134272524970466336963377225118652311302927851854366197525408974544901840157952709629670586630021336931902086322454942044940213200255201996435727340884332663631346315039150600027035117176165862488089113724464385482013179965868977471286240641876642332465199013036570191234759958767120357407213664433213532969987132015376748778185504717480169540959917214957271468295723548816413108747035072873152952303052495927406248178660041771039865698421497076304425389234405142400954529495331852404384833974617958960046597837261330811786425872283625948845657352857331480815701519840686082255564033926440528327866103692765046833058648583404875240871713951474001725186326318980250907649500954983490025189790117037701403702125423337423124430116771117148016742675993611841793704146075106380607396469060565064580721434324514778657815307953629844987485463673191198230756680935249477695082207238228991110125181940588004697589474359506055126789606548188298080549209832255310653845771798748207150265311761309564156796345394539720489130301417261632432279675547960669196457634395996939290416144105808074727917126756429048564230045534784677572313192443647037663642782994475002786681857233124723270429618578399672600345742922173697649422696687615162448461014323907386532518434414737382450364900980203340863626745990767806384285071720231187292586538977656043744389836650273863404278246441949594716518959666727116165118372304331788520807683547008460898579093401718815812528292136274570618644692770703833823859209898287449941202641527219063155545618052429578819654045934185675663364316820930708380911572489791207541047866381003070966460719005178485795763926769287078032677223527980840341334056393373663841026833302698510169853763246074921551162736153448757493621195104126496487185355808099093296173497644668364845751589684516507704054349825439851152188566958352089047081370554344770098920105681329730530339981236085307734007413313426558926811622995464643863049395689101153059425621116318039189478062185853328065506292682896606510765054971949987257780432356277169510631319886673584019847073819074274707101876046593478392443406678528944895281315597157680674060597398308984207657351975108530886743196052257577848052070268173594555765443212961078769067799758096261871530208711080761118386728945929427119490690022822319724987277057633830895536550330391250617526482208518238238648953588487360655144277091317913699573837286461744731810458096564920540305466544895062323670018880865621225750008110710862455366980398555629109622423688843795457666910724152226982861606933059094908106337745348882312400367840643171474969736759557691289689164954459502158170340949216349461146175488722185084810832025166427478933064283991606269562796793005190090414763418522937396660124544091090713137696476536622280031002571349658269102570467734709506057813456540997129133096206570028386749018093896437844189890395714816346771775802904875900654937170052936495954709809928764959589457324274199659443959066901425418277251865127535373455512054109567269193355331452630032849590958445755903266483809087572279612929461809528557282886456528156393170659454918211921186570778235244393548547489799036471222644762062466809364730407357131194071061908675061711968472133572516506221451945095930096489848434066433998742781811814046561558659060800480170652224465298822136571231988691480047827729102923367350169304278875137726759475807408112826288899572548434802753847147393404217220383568059410350991296006879193084695583899941020418348059130977396156703273382911579017905841432625913101636074855525069179413752318989003004232425324288714551528186568793235990903274412227099917904659761438440334927681962135786308372226410163543524984944106030197002147913708790316384847133767767322641362121089727845427440077363183172370693813121535855866963372660686809664765002246311963597690085721441407748126105460412750822071413322655526736380810828826892780340288673463209421659055719132473778147660388626435823688408753729107196369792605649738595359368446403157144515325066736709330519381656371927050375324029089440217537773579444611094979574955259903484494430744163411079018669560666365928721872955703911937460465346784639026183962494572177690677452015114575729523460499898176108222690292601311101591080655609202828103758136377784877604929669440431613886501238598704981718123199833467891249202626190301816182556710231548028666459512003921283382079927258350614522667309799146499240227413371233806069428745425251267211312157859211638452248714233036481414356934823388858360630367122474830264125610485724924332425442513934057195981807638864460377663241813393269262695619246632329531353681098755110585991905629216573373458439737449399282147527056669170117902232204450082351514550467568791176411696759993472411820517125950846391804544861820310772787501649295184290217322339224759609097450445191885485583072357717971780896347396684289714656219509721771024695217974486864717817642523215997920818820762040558852067933779921634155091609905478211283160987365103223696906559092738790151819074005342821385853015673743425342025470968331793246878209940080923307293122170322134029132527795334917277094117563455130766145479658876686461781978154736273640579074606057824622267083923844664440551634852100754565242070900217122996136462113347473225656981679697124841616570515939775194520023433721886232374404797020944142260128539768694982106594496828449292473333528375270740795544461416783078437815349963877143339334983071036922923890464065197987848389942315049178092939143876872280487167243811117749282310291984107547860218687407107018028394072319983375014699549329008864559303709565207324146408264113536971985043765286190407488326244060904540165098566509530956032571844162606260981997570961167263113369092131650284640537905003336733910886368635258070223138451712987008965749157409559131669707932819063226751688038591269268262621475248008471496714679886715177449620744343690139016529240934092901659796790796448769365719507059132339228119366700369505690558289022810947281432797390528842357620997627584523508969649970480175953260511487297439153540338192178907686583480478858748640019003516764247505232649979122108833334334707818629759966761557994339867745836345278064783651171202067564232983149742560036766996500194370770413512448896097875799113950518667420335943396037353692440618807577529207932079624184014618210615374068799335943888747230223006481363522250259403744115134084801143859596174035130334320580945277622517231352528309573075631712690096362186832546036717370872301334279046523645658529840997606053491103904296729132392331804074564564302488387081198621583882591653730152611520499069918656267270697643673818445144479159018497582210850448669235375952739445823309718017698016433490456560180230837300059359222138578598774845776735205865621152826033806721956800860187307581713279365611031077445835029992064395846523155597307557159961971020602461485369095494624543370917688605546635613006175647801964670382061738087423166384959556951530798308240264569883598961855761968348566500716112900416544755371254184920100355821426910721273078040285698295851037950499077424399012237228486071562482942414911792721727908058202948460363873047920528068645206206806288148032551383589824071029992065344226941126062425695954915669772616528048944385492998486754479309419035693105702750459028033241511040843941541326244968012112467905625798274470944065805969004996145199029150807259793294946456173839233409782467196390889584448857749228106899403344427736181409378532514930978588641132010753978005636231349755535898884629570072971407018723487382338182239465935615311397378356236638051834540822266520926670763457829858631880482515867809156316265578485865102969609963564232062384766313329209370977941529804379843838078516633872130583240954971760030277232395478224132370003158503539612301238378216516685315180075203118379881476106171920949964277728228768153160048453690609195110371382487030651070087726128929588314444634121194714685451202722289620113131850940297332088278562975935853910122345322239310870861794635073013828186959016651023289689356814270216005899447065795683567360670966391186004280464851021653915024057959474613258550318724094471736607789122367789679688510575186586053767940924444177020929614284810545832441967633107413029065607904606400145722725050809794879366442806563620808495412030960062812900768972771651293827403081700887944446966294026920085697714995979735296064771093113885862116068925169795983729082069397958574780415351006941224220896388211364088876573714200246364464518898845138730855682544558549760927053023328188688649098228426970933276149054297758809214010550285432892073494195704274548903265802651340417867105078912196377720151004267066546884472651117642045392559940321693696639095737234381932313979947195585824367634377969474112579164035219031194121919035120596682954467659848160073658395720844662221995586993701610956102321966091923286302820343152950666687433964852994312591056777139222366476223014228816749773801185828155265306872976834632221411397641149724499342082879080639423158273184944199158560232484561789479092517757764288696403755983247518442514243394481065380135085370981848311263987913820940395924371864659579218725677111921408673052485253766678457776394607426745412651786791809200739162624105924514729830286107323399623013786334029317402348249044496294509891062863030321836757254881895719291219040715977481728995903785400051420349678849508641944447351604235602624237445889404742261678328209671883729153233184752079226792222398551697512434613961366555505308237903407659067448695330620029437430483759958333060832911107424629780894281543736014022488974914462051228787750250743199828182873450553232498619105399546573487005978037128967383696365970392856429604214198176778602253766209169258472556938098016175294984747784537815880534505414519564098326540373579132024802350330578572095937994558699313224125340959765409789873530833541032376178710327312523720115521936208056521155542205661756113016968401407097069813311678325787326958671107260279154368936095467251246750503764349987873175951201341632348565874461782811697653110006303439327578949941874001892060593072780286323350798771327644620327189433904203780467081125593819693236054382849565932287615405315801000448387066620547643252661189794170727641152081459369235289360651581244228434806546792705165408570005941281233999869678003933622166288034074756976750416730804136157137044128622463011385175774957773999660166136332477844500442482509665359663409525705885260986310714471707905801717474713331587195966181366399680106818836526173284961526208572223202597886078724416020914091576229555162806206875970278927492178276107934482481642720640945823512408473289699799877242056819167188275154892369244369960989562134131770939148252377403803851080790617407276390217619262767818765401540636852719096812973045008652265485969317988731502758454611929799871074827830249533321708064798934991055035274755786464150456080414215067470223206996220462332770603088396666843570720969965057365223860775480737164716568306182496428593348828360708991475910143301230792211563440506134784635582859667527187216448324936130603471498797512309850534661926906710274950670913600986764669037841164136423411914873532680392228812824527822603025463002517632984330556515772551894665127008906042711620979161122034860119994934824059532052509370178595094244906342552478601681156473453020071538544980935044291133301323987992851166611944873668996418303993730078885693482299917942930265012107775971952782700106962142133896389900943141761219537298998744464618862854628575751681613195099221435998310536215226524966160385188083768809454289655966682996299642333863593975551361320174548300061188265610877751164218088965024055872101570122039233060109426697815808135941825973302390016548950028032008008825739313626893625748328858306349110386447241550556761618598010504373719114943720560607849301895825954805024004529443973216801075158880576773214028087463558704193551055806623057998110844487362879333188282373476409694518145881687909875843460490033405621329065370052025435831041726533005551793051936588275011353554601005768948266869768511404288822434768540647469492860457748874783663599734781005680243875737080688188655492118199528399339966836548439319580479644789191979715680370746963587459226299797323696524140872992446562982960218430566514723151061410375926905084541458951915297764283031023637257529007018747682155257169725618071340215346859790366292465856775228172962744385781276222824884727326776547007205271816199133289010593153201323261510976247858175774022862118560122751621394385692532962611005080448903346054755131016780756304362541392989700095484212400099618093613704103237228542341345168742313611027797707033062580005855643709136482369677601785226464127227572945358572679850195490601615694806011808268184185156195877800490993737860268512700972507093205934392921744412784555959227176753200805082970696826755687521708467879750909618214435855501731823191714386021402940231214581380638473890360776016802439180936362990763010263325327005218996161997179257080018490662811021256045628517350034561174313377628688411755399709133173076022297018605962598840073923153738833452905837668510288958357596494065382031819604927621112851229052691172731269143508034222542669066321593683522944743633666679039266146834208875581534889967075906391539888592486519986565246903477564280019897757900874065333688020651148187877387761885656714093794294072599719468207616665291081544432109050672578481918444560978668738612138249660576144687334802518792614562172906537747461297866164880487301146025670326492878563656665141175397695709196216106793830129080499926123845891596458601000560754526086217524535191116596125856326926280541269342572807615157599648789866720598685873682119675726016978073713248094627593140862670736847753147514772156096103018492524627357118751586682992902613246642800853957215289170200054466983847793531800377313516013185432343684803761658224679244117158172415447330141304436496318112984347048392571208129169117212891312332375341435335287328853495318929276248481946485790180507249200643768778685020185673496906328126472815287973049269677547823193770378239326286182323551212404648482289964994053973305950686518418332769409628319804394425496745743738365081372369918424535822643270262417369998837046494728726343848217281595755146025849692125644827466427660174715007451714743024172384684403856721329559017170553160457891892022476955181016024611160965092391490468876911568294939031495510587174000393328431065838430585558785008268050119342410485592734976388910357038778005857820235238783042038469309101596851297388382423827770800342993186965010330694313747007317064263489616847165131420380337036550975435013300698067311242012591036171805300182074795009462096024504174422611368724678808179900809056803146027732170224283271081859395210655781444023196959760381259237148194741835518316524281881376595406325806359272972867841929383131550939711686657940652085584334201378557322605727930198237300980740804250293405033895660076917218422142743726136042697105863078600514671280904153618581838220725283776426178916906288545885835799301337186589068126584473302245439779116917345144289597080990613675110503697486153688626684342724762342319832780446488991855863834767953990351782432852454678377630573276457166113546887621858346409868829317902046606686899557808897160347707257847030108639793629183434052704167375163288734949007755545562266592348521030420343034123350016221629106156469227298876008084494473652200344350552635016867937059405078513949057246746988940501269064524496055566309948580095144177118753032277565649681624990165938806939450852712417925822884474153808637935004699537327494177552189312065442559372776776824027812420158287459828254861107601250093336474525067324548873964994060243568389280514177540798275868889914379503388336303132924844531257774331053743285532955289267549406622133873866237682593413037336590497786956091320321651848336248449434902029055029754364766965182997907363921808671798605724329014122666784277957739987390513122120956902233176492910232113564519647204785524418684317367674991629075085373926274304018190618661903594698960258504956958866127710544672381224979910631160057684085844442097824846524910445310393440815673941289192812786365040422291844482378772390887756039249352736996138643294557250692016747391883407583712306601282668107826367641017369915881223159450199634872031150691717767522178857493296288942934798978039523147068501668418219241360746130614266062970462738652116374884173875146678642460398246085457503665531273794521356556331088582231670242508940989839317640433571354405442902768817027787904859108692247012486293303840749041212441096986606819645823262808590877481760186887072682108142074553644861679194283348504369171204923834961252077590533423976669406611175266578414122504049686797634509326591460167203490584482715357826441944783530713887921150392580756476793832441254664788925907007851142585755189252894160986473784846871353743978592934697787242353821876609107594464306071691029739008764751781325997912442687792167900521682487635094165797361679988317166788979448395910431384197448560081396976705927372570940556000094830165777002815367084429964833626175015127908688299954852907733135274156693622362851019317761944614100488702588340872235875262417104691683498028854665332468313591125887095749848179017232241109782868278491888060783448111501607987386383799430685920956454538944541148063280312863529908427674797662762952496684895154302341861061378355730069669745812652708813837470855346073395917450996104998517257227642327626124095285193970580640653310506998537421881871119950581188496457670162290162844237144823003247678784702196417101038154300347019358047959317482950119185638566942564606724320139453701376691876226924917212491416670572578023409808006073753482933357080020655185049655059060260640063473437060141654457605960310146428267239596339870234799760597171103624399221236350060150405946064761355938706262331795074546835864366031364633817779101335456129019857688554797611435559132397170819871074171248981439857156682488174150625342073902421345879744476885185334103627795806606958272247022890776019493609492640406808654044879380736346995148649862697318129993035009485165657135428196191219816276538358618047433427447596399858934179924996973990751669773541546208655343473060017191746655762715487962329710649551150707121985201101038952642390907730648980455457776907261757444199627199373119969034257243537024448226366027056493893529701872578370985501790583375990207846443759040653686505838968468140905491061746059464281732963553016190089403215156822697042339854475787428644156756142688895833567533251176783722913911386746667618227747354236760186502082916649228444858662375363389522819012014447487109046863990024321949107598312264473291239392092736069888805263491553650176310580562883897426894611123003524066287004105869826835140291754537808081009026835973323573332706379712003965024525884003412541500180983652494051248681909468061172791952848314345174691423806222633990327969289842727763520815253195983413135286386745449051211959261968861879795417087069996050449412715061171202827123976959180630464732761644574583143494826648254279925079515077331056386963613565849352824067691720299884999546540193301274551984146980958382338094768802705558432940292802310739838042708568353961465256874337248780372398974998316360995785892703233533212242074751907917543382062430921856145031015296020218303620439203924281814451516405538808245339598322391667349460292955987431587493089325200228100911163396708963637109381606379488669781192092721312499551359728756251186958995027969289534369916285187853517638761416308383850808761773316103360367136554192128136002213407933296118898061436005736974912303052540742065778580996443494540671846694264590952366381103596833169612676544690481619662323421573601670402001066613498722109661152892892151950695235588165265307556168130019000066737801113626255835446910045613735176560348230079428133801837452990960903369602666809636438440805084338611530416083098851071131718880876917836259256308317165396052590171602099685315010262195859886134545840308559443841932694250984011573956699522276214798032697240898263344032316417724278720300016167087177970185617431384293021818635795138777564260373471247533871597976646466706529694200533011495429525437901625137135300892035529717555142265250357892214247926218126930046623379327435079088175188354636573335830228940040868932813344268969071730065687914614613749086900800152121316204510905614700090240403515516230634644513383544637543867622522970871014181518753733742215339796559732769244403798417156751694078383082542534189700917119998201368680050382152330119703486454254202252701619643345315600084664194303223348644385858560967883491037945304522668490231816693519922581810470178370256415138734512421846794145294632066886761728825443757958969894491063250634556125409338321672355555002946202170699256385464378993377295378655755104316282783632681153594928032975167885252673823638060067705105826193743056810639797837229604189054383951550178258967754663464714809643987928110108383451339321733510069096188513881087587779474813136020191421905101229744365923308397364258282825718418620575683870816153304168745067734012462349783518022990184316873980363210939792024183311963658515574286173033410017515389540455088296320029570457989290699862119741188465952500491333890761755080700989835336173603052787993373889241792627065416659260665509170956556152569033238948462359915996400607086521121639979271793454937568471974338234258453350087010421784824482062280394732268269700811141694680143684456238697324651328728566778121117669972783245471569449263340516561242809172926982637216198907019376612845965820375400028231772160098734053726976945737031400994904783381584526716417857567399485664476639239423476406507821806464007050185846976681686873343140461450400617410658389477488337858489767191514940749513426232129200104510192132934780961871883376651764262123759120736408390625800930905019761148575192679131426320484192248873385953520871335745970225509561886035968175893134556524980854561969636583398489432982873592660164113457381415542963542197932849489767534292256794217426166720994917114806997360919439168561219911741277617720264527458291894138109555719004041691675959732619557856597538965056610758486719576404039995598273559789296948111549851087008516190320694130008853049470155904261146239679816356246177485047253586050786360939213881884985764297184852553538014451493975463407982117091339921102053341819814876891366154612904794861866542914283481007891896836769407230450014640528628989660741483649317896826627385406069086527493722853090956158131964587104722044920616972782214170806897177725240810398783162089641448612840398609351429415679398401994596652647517563722193089903572559785417100938173129499092710983459776247516814174008846870423736628576276593300997203876874865514605066233089131913761609978042029694767323693345638236218224908765655229201150187408633476556342979649604733124836453986569806293550901030476328715906636819186995679431798169003247112225098716473589593424851419537650783541619474417876392885566569237811253757405803900736127282034588268850881584383460327588166404735207376984463200736082290164258589575722917334037820861775684486100524630960203509527510408928473426304972748559375643808105189422654675259377466070936912774503127301152854699413013817320274185685554586761678758728126550034675375888086551361126352200924275115709106223990592023185020048298291858631388102863333012672512179632906577693314387588120073060464667091841829465587589500318863594406601821123790707402717850973715338173599423322205251107280939808249109905054307543366902226862773935276697026192271738364236189578697314277773474760878466867501117826441686722174923363382206832361516686208374703938624410815511842216081454128820516009284363217274312188928638894054554180182341920508302848812388926471665942095936781058662806974777067795449070203864263732708436009606546224636878989349880527623249264295437112786969609262981496993048443741301352253433273792385228987408403839585464861176917914733158531274740102532133670173857839473004789717065759003021056751008885897391517360495255953236266977518572590056366227069847375942426222471794365895945463646237204875166091390039748087853516791213839333367506444103795682025609828101289590325713176341717469896723956900932090608016546498150750914275231627520932924673168727744691782520334074764075890029404757319498234407574748818587624820286045121901552399392743273547193110617015336735126749787814306830318127900260889441928621973191344303556106090163775364769801377150643161067895917148065539449498716680044391239184324078511091948351916717892660097551258618702804020602809606819971773252201176141266787440335154330091884743416260487636686530258754087004692985934686740497367383518720997187116057699227576827926430609033650371102075930314297330534715912682696879619431788248063655775917328386639543370791782075305379338533874303466887498872597363635951501361952354439773295849125765853595241818332337570686786380707245046729151936065734275657104073456446667693170015110371553009563266492578287244298694833099843862082026281631063697214433615240783155679261726847044856475811614555383605553623113279478945633673790186274561581838881831782696340639003950248565529876440317250067921498325284379677486767446811924327292221524975235615943885976172225525277400632308800705728541505976592214280795414549166525984405510161961625242531030264038369181414336391369650704894245241630803997730646898882637486648131758058381821272912685503120736980951336009286537263682423415510255564426934845272977096018483732713814220644968672752549135820045703244002543052327522632610737904257322573613541896567111389159202178136123989857448401631364819328363203408354016146660225468320877958726297887872030038365620941864803648252888719217810799813809948686231508857883308962535870498389065189746317439398415087329314146526091189645767037214181199699971883228057819211341825509687928592171813090124995005763688786362143375423161933062504458166910371486733684959239845159551166774982006444504875417950629486925043942908418615337638940938676700549564316735558865716598143985900304003090289135280718514230192288605298928930195513201216570349804422123100944400892441471473359921598521136904775548151796960216764098948617538190151819261946652926659904325437461571222307868878793057935976346214591644820251899275784610523359892699324394865578829043762919007893097876755939152559593282334493578797735399205248808957904229049296141192066047578118264166520777546610232285325554418072282466518526110610442168597025104807630406885654394913376482016761004288084194099160856295031454125970320072896856013365126841496824167314728938428302585428464160126937837826538591357901120065858742667484479931738482114331376609127625014524279356867752601826789366757079726290772184889404795982340652506186419619075400248356382279852874991047876436349787914062373993898945794822845424463958381841263341021604541099110646176853892430341776516843900386913185686719065044500639518726310206859762623655353808240457326390412137563053807802134704326901756188269309557940188938497178572067110372063437215218337939598441481658665528790569402911435881578602219432077629570952906477772866513783771571342493499772780435773149309449048452518365694532893530421943089582065868665647779284649040164654952584858738621278494177809690871506667676333161271698140375893383476927377677639446715038320410235299108210412551295519032140752725114233151270141755374279942580765246240748757185292736536789401899775367724718707726794957664341374698123965055542724850449039959469329957805247682017420899813927893304432208796205250977730074641428416840383647729204335632065533823634036467103716906253239148525802448605433203607986272143316802498190360696236098485899649896714388810360246178093379224893696628663135218060356053013748571587097782735446311103501008381783152397605377150648172660649193498151502978970777631054707890850026117499015786799018207832151505388787423390769650380389115403999025901315020297654444424240247622637284465203973050341085261826988905724324056162857383557667524439431687189279113780280616224593355097736611993881755279104761224913877902791131390360323961416831164099694795045496253008215836045873747335611487722880716887580926118023748607464716703117622115514349689729172838247072010831779586283130797417794516315873216785188593355104155844338389189470373383608794262648747094166430562738151286344918346629658538874570616763249800693390052828959669315435403250626499044376314685717195238808515576621949221875809080839575189561516737900213173684776745560314648831815731610800393148238574243109797043585829532061542380633901682568299096102341178655006315182039201800837261343805797088318609567500074169319490914430749954283848911490895902873790329884553377182278850247201042228771214361075108608938023240310357709697333675264488070145095801191520324364325076394508609567379734626246118237146224303391026330586437552663897996981331888136826203701163248163128379134186550381037862515391615628469948521418047844703500060014100115003777725846681521055552989755800858959892197813886467553660555750147704769951262359818146846472542823103590838060378879294105369445681828442915044460081428730296611246935850441678788249238101332989513070970045457523154343070905929163743218999532657421336100966866486359983322854477066424572258626394459729620232312363025952024873270935908701150148757796583996880834663851688102679090386532728937413137232357512076741494882250132818029707872836127842644046689344585044407369272532427853152431680605805577660405035542845957239774937978715415142745130845810952293477152089657520188400790742239980624466207011401003995325831471035043829785364058920605717382255751468768342408033878871335117775807896461635598670653201648672605600887758122423030773254518268388862787519604188307922832430617791390986905318627128741122303004434595211611967102770088057088273626081281769729967095269851021245619354179376018555221176196540223974337302997004553134640273363996233032764253937210495591169766536597936442060100993778701067496707077842495730309291761972996764065754595689213690470689316528875147392712567848789034397585624648522878323412281182471138545257042439840425303568431379638595314978291469725180163760900221924015744837948966620786868144900939844002284705631326658678614390801038181384717683083294701756345074296504839886550124335832972512527303371793385501977973167519163296594748055907738810299813761064861214794349247445051656673846779377796577163824178869501926381518934807580568744537662228627591646582366920010866887371564891581971616292311868848801993668893309076563550251238285631739630025857336230082541911614223204366882774133925828380598532136957382970761922637407861927938842239634364401994268913102212533907753989954459386845301621693557182693932791180739316109482212605289508132416237946741682978527294233981176438214722841818102659086000930571393155271305302187859251933724091854190873135207090232968336706494788299265471577100707976335796586585220392479927352760707209459519591125851891331689510758905478804100561502107859728457436979244017673247384978658688316671172544456719603630871276030113999131808678823926030687166030278373550757598897884313584025781814503705694236790414250819445055792520975195493271482399223276409889365756104714211131989206846118300039095786718571700124115925424112958721594371650339684202375834061965105777803493113130340994657429090482732191797926566165172095915611804531344775878976563819852298642932286475970557754436319133001938373189710137525645145482989065631004541168452978098547772412886221130587859340006103923242987597828395976470711971277622225787632944495678476028771858427966211836233825315457621512065861213479799281491095983424880369525865473728000748357689809336875690517793657009227754249026502650091178626706894455939834181531001967320486114483821516972274050292179207636273070791110893980834226951830155615500060566400620817137492653422651489192928165737826535936565090433504451691188274585826697394263651558928999578808220199037979952242711873512189928217905726203718895227697257591105855213241938908943074960671570663519113366000290010358275949406690175711571856604506921861225372754598506622135467307205798443827724142916223063105229433641450474643051671996945581968278938325455472446801923586595743345958128333673750911989121985931259661057904669910885070294882368919277215509939677093552875596681579302045519824237108491279514816124637956073136379834659370809654276794598092928160161799432485606639843471414498752189500704750209971404360816856002664854560473992440031968429337550943023193389561714273615100892464847223677960890316235736263770631220604289900529513971205661983656733491617788207273937524974328825003144713795707094285605433119028718619929380881936394480254513890847600443722626165387132603785333986173516030425385309712057102483969719957902235764974838794249699161713203100109998884731025130770899347814439104264414056944209664910682243088014765623180437132329400059679679729231429024031608991797088523756975591173967481172272930250776113933483187742301859002796504842113053436169292934010132601656430649973828273132657736453399949831089260724465293684939147725436789750082218954016725072972538680204307204913248421005243336765789138276448497013240756471768382865967035619905633665944644166438414649063768494166140144899088876903706379295109361671418854126266359756048192999062346234095897118691739442871865299709544302647683967472877272097987952654908473535745183431984975456831285049164310906185671009406627781813414402858888816311260411697608811988485387246823513214334122188052465255192467284072591815517660340795605788798247572600153304003273119289441626658322512452780681364418473585141601148794215216274182245627027054917094594093974497656932890678699357151193521292916157051585623474296030211775905405808975256718079209047322750160972120702109735854179219120701961773806988694094984686441313550125993285712879806010115877747928850018925699383045950498030286286958740614771715731124478770955855216136931680921868239546280769594137504529198488780660519732843968455772710365931220256703091339664045220699884980184354038972578787044870256580833829190349062959838562046086243681861725633380238217372288039566123428811320468665093997298074177061839840458914991164850346429852303073456949353510755556171191800288901749649446138910101197905356969507254373885010277566410553455637854019744772067732927043809884071826330225866449720097949374989180119186387017407759455097778375803539133884389699360585842061279186043757000244216423564981247395305201696983663474687365157341415314975230681751861874817691277667908269446122680204300114505904266815192193652505961356800578242203888444055591106532491348971812034414696148686351408958425845741061291448891504793168006686589083507374478472057891169824455072122141575369705323363831619014773938210404559787482408470492040400279765666198635612863860811797381761968953955563067769892622967059923673561603325932013934117376680361666858823905974061682513017751986020351177444787431577629713260520592155947678514986915533704526469438110170510445178808575728286288002992497030516404535543678746502261600205610593329436578554388620101780902584893332716339509711654464544371976144687935714242738253261578565406482271465920071338234154075696691241365165828137644294121776025888592231848845004993759054583763423434121416743457392230757734084596124629162252560933181787697876124169975572825370461998828382548997679385923890352480727126076046238202790037363188443834180400269149028452286100221432979375279192473577702276960469768327658223493141244332238244777280054934038547303989365549676893859743000398254855689156395743639157021505534805930660999326782286874511037375019529844883907778463362582321337761744513277941883059258056682278290481946396877150806352924556343010839675343144191145635463032139804736428037101848299260483062185028394651086062322928832447037005219491675575475013269112233178764228529570590256145545326212019881642850098400142842095062633831707443838037716418577433395081237336613312140356370323952018935995142511920241919913335121670126239367001439101338827690979563497261789062489847898024107462161890973390358054001081156468926687801223416572039987946944153070018768153179577511153940251644045356213761574969621268382815343952758886378485487945104553581268262357902161886233831576987907852495863709519116245027810383860755272602536116407327548783655080427504610709050396299418955672243422103200015102195104015929016225901182618833271070702626872497958372808134302770986316595104620595406219342524368660954303229117409330306072916515771629107192679857013087608569506814669733837239709133029243209727262637025834921366352340335234122123012325279701010901099236189056923140938282613515434794957207574807669176361220781294503274387192521409275282779740296355381554017948294502523357053562572159435460460910642151626695404627188406693330855786725747491740978588800036429196038670952308218600384841349666625326626553041286705863592682943691974760354276214142881367849472759202301537226468740970080147270821598586138155408100628527028183482698744894791475357736968608320764381377015486035124075282153412474789673728656536095278549615218526449167767574160450338894277283524218562538396923021026130645918639213101685600564141030295139859078297781290662403691169369361572266078104370715118035328628351878915168362776695054334023275530968045982606281548764072779975944777013928902296953482683599586221556899234030924588484103354765617144978638120534830999352015296624345908781693768851149840040000654359499817694735333428231675642157378264163057935880911434048145946902859383181412234088308378491752350992401696987122442174972192791368523509646419519745494239481830621830328318952786113199278825702244318013438596968830724707996062355632380528158092405676974672410381165978110073327538909010210017911501195168949689681799876633332826247700907475673932964089470989808867242072146402232175574252782322080200150309736164084755395679829946580263269348445574083921895807681988959446680652221436709849339642261433567747850642016181262486082835428985889757823295027194638925071806044936077482918475370872853159567225853300181036524898865001634024523310420879758996855259108513194513967614108374047599138231042398023436963240404430478414910124336912559454294508485313863720166129148464891600974521234200247996239412485463967041089815434173915412776620078242518052015423800997026753052507053202145581207460269266435550237693733766911265775896612747487679005985529346039587588521495203650220386063422324003759454861415432907435602633812176899955463678406381785141036995118568756246801402027669730022884904094482398835012944450309400825131015272715949161210899959781295311282656071276843550397572983751919053602184233398291905711805015500006744201136214861586147104079784832267914044888367260728216569567476267934427197630727710178662221275601174382073015415565679582902087366783641387372059482574448030062108433376299406059749038097402707064384953968847900133346133846892817911290341946814557403419963579944195165285246892472970845936258723149976039391136138399799534410651592685821265027987404436227399535075131819854382454783483701965791282868338881084792719860999261066180829549956671012651642975918669919878165431204580578735499949526763508485109838521773297897104256490117532817383108691788921755412858560385974358212493161802720564426323748127771229917884006880190924735468445282438759032768735925079507482407402277234487037728732269860311033430093007146129442210861918873594997345086709887062616989775186563276375599771572196516695383908206850947443127773386137229523550893373360090576970143568717182898972279905410783450344736680695049961115025065424955920919224425904508651572098086964894278876922328602494382858129901521578954687930983585780658174076516638769650048634330311887433202966135201258437652391726840416749765590444492775961369511774073396679279995700376857566959658845901818075754536667337352850786134224867193936876659096165903259439495631960576429435516764331457321245829826673954992287755099391673657424731292588637921729825599395635362106546954324484502934817658870085509658527468662178484993901864837709502395846119716961142668905090758693507052761512220155475514899644352519824032215144366638837221040552051736203353971637550016982153263306966356220727243974523145424497980030364091303998385273797338209908786153098668976379923787138820186301864132745994265412593194186522402692961212334381943014401373768085590645704836952067130482037792877643499886989732884306409011847548055265718809394076858306457040531233420720637642888415771761105119535120261103766811635672124844718667114693600163370834151183792158806414612315846716770570486318937351191280219665245503671147083816519650704391485935657937811813176526712728878731207675454800595042183098705089316485982250299604123186136244876911046733338573220731170360824195582379993899445070387441298905125266696611259215014551347299940721579015556669235656797935159581055128508606490609920580214020085018477197782598502788102493047026279855049168575458969754022466864090044531239377601954482076835138942893904099692886365310981441967113659327000179013129756855294449536034442679579774522393673269373310429401701856157064687489275685331786933295582448592733714359163639425168447778171247709362681983639595099660875034409697444459481588414664477888409718501521673304333672284758213079745497532073868047878774092117467378671058307674889392001238048438326111045367293273848500573570267997271791264523702220845903954236380452123248633231883356895293675548712971924272526155454838468730755544124232126706978805831165490699757789632016899949487235943081504721141543987199409792525883285380189887721904636252695664997522310527232876107133668602479346235684450876733911696068381047583132019669463707244910323976681761721208670542781011978112142944905553175007963416492837151799586678776932378427852517867447298768982684095214240382403631069403014721202068092895561829199863308889027490897907900458922780099274301709102641426641300299497203387937209556326121250920374985492547680099782198309423644967661272778431613489356357175496017724286055800006099048747566263392762214293523467953560897882461327027792202926473531010847594014111522649256027399668008488605505282479061721371838847044376270559020995005428616691619378149174957396286462166164692172093918652374734446995344472840737310044353227859158846494874448128186753094052425785621243413351557516241050684478844894013697691091370215379658626301585494198609330192850731917783941610799211121766256621125542229145886704574190498996853770586419749130908967653249603363129268930786535979824352832638214866221876205941048810634589005931658376524016390181646554758836051091575246223376589620348719161784539818602928723168048421873904545099575618898799716910120755116484266735851554867732573300051225702697348360331385456351987235522273654372595907499354260776506327454372949034440882391457847821996471067497701111197463315708911975971753717367732362211465452055239305362039712191792679393811214083117232933432365363531574088753443607129389270139093761957351991163421393132754944332662484102931915585225281241833932562423014300603234987469756005030500489751003645359565990091437931336021511732527127843911795751040195859818465393400695047536235129998211615199524637286652243268433980193740589537386644885894650658418564327683157931786480841917460354778225587770170127850280733005964677108033915574541685519505621982060844227922368334544430867437152220467492669685478379981512705706017499973352772612174564019947008137827613910468202135172793086126739875560734092131467850695377270891722857293543995100234048293628312704570201095652157947775921770321925130233167527251047184136287040511816048850857027922793755857914553046325960542470428645524830051081170369280244142609217848401302773545954358712965164115864560706394288503379853875930533697438042448946112131481939035449759411829328716114790834450928556268609207731821712880920150037649848994473243268805153921785732689608122139069031180397733254292557010449329358411162221455850080752329239769271630887963231053450281494866872926728548540908081539826243118653375136033002011168475960685060132077225684068002676261977847642736806272818042346885535509331407770091949563449484634079804596242218456123677361232343728504394152935820409290124546191797237842826591480724525946493205008804104384168027202983759647743146273539300050144721692624081868214091890307063861329508928773181380141633613261976481769190422534876177456419971543731260967772318273675315915530466151453234115158380125788354645299208796280834875884119175096900386696481357768025946294439056296406718730108119425917420472796700903779125762628080876705968212162955179261112384699405385016550642352991336174106481858348458882287524223907466790261432561269233567951696380242277560673738155086713964945498505056832567691464685530711140223211542784429168071340602433678237454816704548690229069942767882184641592733548215020650631415054103235808673211073560543245429842787460519773649063034321283325551993103765978001120649218353345106629814817192062834134849627674386599876609316002431450214979672590279969180335253515898433244985330873392642392545407591953073207357517087054956902567837088523620740643079832761147702009441608133976012934668605174915171649221592851527036436335484862693585446894856296846808273682437688372364133706187668944342316597003663273655046366764724634139970905852813130930143087534673983745860705344941915353312734934333933308925650931177801888604739948965025508559383066766605652083948425818504899266928640305928540604189138277120523797470952467643123910311082194016287760250820743702759109745960760121169552581027656436775947222233728947685601452302238481511813770706078859714304282908727447843553166932785657993621379115318054391113366834536633810164207782062541796794265283426877839814036937252939401131884846725409719486677121194975699735418460591460496491636994056751177405753061473813728616270317661246400385770613747599583691105489590906991756143444345941654735119345257932447691926876472656191831119350508863582128808210500174705185717786045800492213103077572698049667014420192833107659568009679582010149917197331379259041930660415970182342818564501817611005979504760016550098169553078885384545399979805068301095144426666663908938267469436646389643511581698501612539936985166075494626009657253630552041268654874316451500119119202793835877721488015664047808535657370157351054377201635272845133232468841510685635972286334558767945761492171121240275004173110867426727022397506908278395548616699123033553032355026388179095788054288143214912245711181379653164118138526709848575859616868586681969391530106132818895631741900100953216554952471070370759726377226313511815397048776876473511020051924234569458573885082501401306526083684854670030717126950431753946691613412656039926553625706765120469721460027197729569090877085582440155674714644677380980012189769643541897715404709485286154229420372184557625518786486524429299382132116076132776150360628055111212575684968947236960798955791542835875142046108096102838251111683309170046641199491816001374505496701463915354086201136675065287164853194359599944014222844364676481768492235718516120217933907023668278925881877960258906790798979850063260194862282579619641672280178854659568865372237278211932907612136614765148047271759445398944444121550339992728943578998304103037447620842576610513373076151274879880246652054762695800738905070017126491995173879351175574496014027201853099709679259111818349274168794263579819871993263376960191104172475430807924948100635206386644757771131026618864825857274220033166599892477785074591932199279099803547793211960120793974192945222621024989603160788958302684591961113605070791622707376381754715375898125692113831569951711642796355285061865877428197909958914004482820073576568144485241144978664695318695276493675948852161161652138599651364493841776996370226476091578453916820321694084435214011996665013016596913157243728084203938982351208664326500175695299209986994723518302612969898521775348581578521156350558039907538638243559771932207066316207588134945377796387928747710930874057412794155910880998115791557896245252093729818069826859633988448174231347992668127988413456573588756409198604445298158305123764782464775124289898586867613083746759363669895823648191778543925892472147668092345765603479884184973749488692693566624570032322800541183594004664818678304605873939536371138478545427543944427841590484313123729840992849852255443821764657246803746433785306996598496925453450508548077537843526377603913354496871671907939141947644351593932178691959696031926882763820580771319735086602396519045938516460725372544988700858612069190029038289212996034314207568085769851497175327945924307580393076492765893064276995160761015984060164481114193691346500692667673846248054074490420993988980351670648306437963897110300721398635522897052333428254830931590822156427451821074902743940572717307845517114530381098367362942705377547179308278828150141824058986614275849228623316677986701903229394335264900652511989340500725328812995902908049385115998210945318070736817922491070833452427741663296496256089119047622617178632851136015148076295293412690505643930055107114922240830542276186608314932150948441067169005726713563959325638620970970597703383873410836422846097139003396133938368913635599505257694403958786359151051038793986798981609598660546993630533761091003663048050252547417062066507305933955546819470368276871660777043028929853512128728140994857827212060640082780309876610970321811880475959220514521021235398836163654915421586238917941860473942571167111976986347666371516547170275546018431833542253631261573011790347318766054510829587953798594927502824538525277383954671672327978289087345192502690214092009969876043488511171023348750345530249221087175012993645604140795935193708978519431336790909121751663772987030278396378081247465944988308303412580183590479397091920303501517923258612201984144111135061287264353638532481879543290752989799691504475407424748047972465044854177233049722229205573748291266346272105899299925836322620496784719123319631723345460621427650824381882084065132148344350742829442676678910652385982086887825648220414147866291450406580926113936639622217918476266333667546077930467693035170739523225071780623860400665277359283487317230666641894917234286902858032827797579451980600927673175399431372190760140710782957797093567642556335998336729083673369171554022987681730625604977186110985987358714179525665180348879508867953460483621227634745048957685323119142073076226929216464013068274127991492174767473795047849795027014330444328853225838931586784628153218334620073338271095697623543296603792379072936951601950659544726121906554056066827545953387507851663049023950011702425783045831966125774489646226973933617954852488042594259148389226753066186504848122659568505540082164259698278779002387861231519735513880967393394823041646098472114153696569908987985683917638130831886426017388146632895614118250734247832968615229264507737792295145107175571974190901694594262796653698300869546930886316551079524416121895137666632612834268720697081537425245042471526520017463275318343219542069063041741677637104593245682209350849173826075442227168857026580280184637126168424536624772124838027007476565568287835045451684819603204421902428785781440986141000941617495362746975632128585844733588545838505997023642853949725962601145241823793850234202886450528949923700451562820497250291852713035224350206218252534025041153710488614012640431848712722747596432831469699158283807162538979582079555072384867062319076105768811497101225669781024434053397657494673565830532232043746760031553175791501719828111781773073670887961539780017366967159715920520145436515666934957422698143516403765049702778997999376048849650996624066372209571137290028930250690753309116983387312019843173702807175640771876270560641224378325690233082331135513379472632395250772638518218533290514586582838640989150704953390397710471553318333488499340267366846062589326615183001898474249138259617904000507425416977530878795833189479276451240151576583983452583116948158464423782017806794120762994372613961932062694123697464007881148907969198196042313272344271283173830788988353190766271039856655198632711449841092730389295266713841287126773058364688995676479357061914780238253641888689760938206405252293428926081595881814252818944997965453900418331138469763685317312316883310684863094344265268645368315788616647791077019415443846575632652556118518111729897833532035279112621134136480395101177979679586150339358638170267956658507558403653748759349070561525227683698925333354398397171736861396198584071366642323294870499502616996285984018307441502667839498317297472273376003734406498989078605630160763677079271997140992148992016802130707193045103732380882189406793283034065887807648385853546066513962286946154964672039842643787113195310923996512993267720533981641003434518756755969264973087926431372700616586239362318032930230271108139071777277695758268205569606299460288825831142741993919704713732396755603483602218583851019011254133675340259742422176738490500482750041839742221302976515020412539768904187645431512264986714204947402908622873017977228739773911619490839811060329879780415295483492354215692543029635369102160649202543343582779368095606052993216241505502607135141432753591777595255432180602043873329161857062950143374619874222003404963718707534859541419899181122604723031423018774163900785034005786431236563077313216536178972636794117516063665502372798219965946292533914064474913369807589417221476105002731510771350450878866568919812817583159458560010926951384394749126250428714480814662732774144220451854845896267914747748675893873140525923406116780612658774193326001918440891734665490592870783817066986873140518597332800464866804205265727381561684415422159330858564449351639821437769071040337456190591087596465483451772490137488390689933145144356407322385354315061799872392918967451459572490814014252319917942898222330559305203073768202292129523806978209839005597837926047609738502128936665209381784003847521247746806907136481907400134508630107849980824465865178265299974647422322999253027229053468124110553055841053786989203754684484234351973830878400509778217785924433425449644224704603919652036119562583175884401225373985212027444630888469103062852754274260661564816956513055300252970560052130658449860354638375370848902370006791113105648148116192890209267191385608518456263025590317661139735453772523105448461325622046229151742064598971230479561020697477345308058196374631713469560764923701576562222348840400372079559586452497019271425281068222081926036571798075802789375437002325673234052443528937572412469501188274762982709872526855931849290886426485128933168649475506977291459669184958253520124153490948872047205025974150773493608579286823636848959753393358492976602686546731548065180257966767714413632559265347876206811628453156043783372018203403398912492005953621066964360802748542118392133783010353888425878612599913293963699147352887703368262317898880696472975856996822132222577651375013502139463752747556141510383391353959597972033242483138169581836774450439306018973886310757832057272687054947883846337368246599793375745400387299453425852450975709989346351979752705337288407866085058306447947235012040820756000109382949126809300251643945487381573651564961716201786416058919236754991559253322172394221336378640827929788387812183543057594786187711814954442851788862101567267955118572745852447524759675480300812532678722475549021267024129411096673823936351629877464214033905036615831263567262687504303948916882712230165956753190576280914584101188459899468541677371670148876912880907888086897073221399049751768475896549656268422962802772514943105217132640818191942349743699584156733238062266333859065145770459574965693212920188923544848167677222683135242200362304985921933455111552908617005047668308963050983092822795663086126154308904569562062945465026747575285787226669613103101999936910486189206526372535215127912214582235732144268457321713913512175625132838912629416131255240182515118872578440731912083714581843390518456058218629723753044301846253262887912756118808460701562952335036594594890000379841102289438097456041690180046226864692327100987350437580065363935259162370175804950863916607518501708215491795814401570760332904037619447932454895807554256756773332696728405293981718134182673122242745401347071577526821719681420572051463977840678778127082914928835549877912519303561491211767487386420470361694775055568261900927623967224713096494603665327041158202151606535640651124526337301656752963833887330072036942042082821117465435465265633481326156643526652699046991675381419550408594829863593418625407165301964822068148237690087404998357600275723846574565234261329194192656086512957277660331847940444876609241503187418811206189518037888592684518388654434331189126467118287868079624160372487322358933843247420561677033835972385512322394927197732778951491697924439045908130411716208411484031635671911407909476713831535608929800514005320444555404124895108050983860353480136654250221797203900018837570860752683312805910362851193616504557941734695913183837625137696394777489037722412478019101102289999242222863510320149715600789682407608859625817984274413733665249891939590583941273582714026175782443463831940078971220561296714996379716686874243819686653986220537734993891746760352981785356215939226842501148409891604527575032769613670174920655375835094459008198056184596492790021026341195131937507642032267548045108578109559930241012905602845807792310444806225421690324366250407203536173889425183413318093668393568519810787171128345385323871902844817545555728860898131497682488181052950446110322998191312914824956773188953137256227067224703172585941194197186256652674042868166544571911121211276468207496591129051184172064255380320820240726942477381400716016752083737625543011769427119081302297153076785581989091967822144697247865280742240033561474528390941712844049377225537699266704940921644441624026925173148275332184579249327243941302831841171806482159722640127781199784068789004218827357115889707744750603483270068055074108832593251142152241589848912410376989650692485949982555276247038347577737366377965859987280511405518833094690406743254558639929380083601913378223006653524056658819804742414789622587652317294755686166283130712428325967572885826073989187572485726234350140221225889957913327685130852353613056444010356834186804341676295073606167817771594939141323451779148456077981481930381572711748177802508223352270340164070586912651358371470915531987534050635354019520103438843127038054853008561387331529968125187690291705254688623645080236939466350430507967295866952572396940032030127144956766372119762042640628415863951348066229121799397497783259399021194313729324339589978689595350788567830648559741295321049363875897879357425681376725215930721149019244724080688059833785689345523541393897400825806273607513121686848167357828842836505298714547456612326482981228610224515559822032918961100600517990627854679124779347299696561454634203009267506227856374022978180829032952246178862805318754099429046854597383031443517991082227121722234392594403940341124933729048931702963525110956311334397804186689942910954944107302472454859060225504609263680940369187812569166345972837199008412961143683524616558940270986729978394325952588969601453654015845785023353380217373995888444681508643723682541152586302387053979981760908019309286862392686149861420462770208646434551608370547468253361690901316667106402112882467010041996260151746640731392315713755185764561834745596541627334024291473050991531607106393303043213208409595747252557951394331186766246608443259466625311045943345152943037344873514673690326216422878709045791934376232085828654681177662471658318144125706887982680470534927649280237611114211343720045541181237403319000227666155257133866754525452761730116630496766713176816477781446447211033107087081857329859364556011657169010171294176937375244808600684018989802040370497770953446234623829026613880130932448105149161339303421203143315815362624958118618516098030809601338381395751321969791147923888521736680169648213766709604712260833984694762516526541050316425822098220095046511614872112543486967418205305660793668902213492001997020971950514172887509115600768964980739304125425448332834932043890074382451005356398838414934303205274652526028517038911585748423673344112431256870109619695737480531678430078891260757753911074772563529365020033284629487267384551930429552587896192718638172856666006467685498074056399941295699700815647159266223561360764234925698958381049570768046980914673003091963296319588551730548916656075543305205544317461119198226944807460830750624919417112789166024269962515619992784889187623412680430797673394163252359784037799043448015777614919543792362430048450595523318793223735296228667742798498268252615291923581818128093219501147194422431733906380478195288921305406349905829962932347074698714996868135498798760421208800820529372312925702115586582935782367048620356820621965104179767742355571860705580083936969753596857739370223693920010530365568771973940933167243378155012004157463218316237834409683172257911313922309213096768573412573718570330719303296121323467995502508891808296402305104004009302469603201524649958215307879796542932813511018735791137672184749748876507948387250910587626519796959175083327696037935799915025201799319467878372888499932082801184414894081399837606305113758391721591619064769042048530518718715479329556263963459288034512296059395385198910542232421819484731713114106740781880799430615765119669933992238819477235649212628085868406531574544035561794094872580148371624005430642576676293293201545851978800892179053012516145141061385584938844167716819933902893564991699569186988495057854098874035031250736050015575651402019463622110619936319497734609223205690060217704474404428100910123021077447881879031533622885212368823237554320837410565127322933931463474420049342117609057957603624917715505603908653867907377957620155557521963933743582364125505855904113012540092073600466302953818911322924754958364872257678576036738634473612599831020981655777667397390207286061467579619435102607334185071351357978551842024246116596772365293340464519321113606839367257720348843260335059943743362465882794813297464513977468738401884216596945215168592980331791976088986354775470039912519415578806747261130005683733331197746523081615263477379125642092416957258933030894396844840712228372738288942896617701486869872663681530834921206621733997304830369706016439527201481569819532704023249041096160007018842301024067534279827870952719785171040995850589265556505509613961400176300973627680142114351468152997681533200751719647804133141409356710581702982645694899604885481261182723710953595411706295665548321938396817015551679645260501002002888203747871312633149666099617022289439785365183560449575224817938549709274964165348471031275560201492266324448825068106153798701977257318021975872613079905040587929880543754763191062571128615010559240618987391762309402182168854407229565882338840494619091227733228589035447478914882445673004066884435871728443812605237136949056289190598143283743050265030703244328729610478494670456185524449160043468995112744836262143444349761938825493323513290824758956569234748386988181662747894442530806493185464860563942950069403161579254595377870452864090372239356221243448222362671851987689112515070371952346360278574898839399898067351534268175199092646648689590638544075990337492404186372105115264949950310295910961138197080642362452947070325272462367123086959283985266177166916719812279826384339680520085759239808123047971356286028351567323316114512158885875445604135030966013750837879480669499339310037152594139094813858371824770695753337932163382126641243691785531445576957623501216599187995150389620017153041000900600538043992477416488888967698695725698136384049588119904041160682295221203850822245577565648930948750773135374436039458629634294783944925371567599898598993934908328406460708981535391896935781381336196645195578473746940155242956973496051978936014765418539261621520544900069688281164316526604421604378232328303666506387418811971961010101429601821211173560187429879714507431467324795253143208516970690753374641762709125316142540530757515799910169210523960758502337639957867434569722141820047339899803752080345662758286668092283747631504718392422820268917384165425054875978716409872301439566009535027321996998057543325720943679139865293202745386048043781033490149511782883400496988500270996857641125875166784175310130707617449584650514182328199607816946676170608528417572282828219121173496601997427010762803301573897910384509255525371576273846673866579872157812927596444924352608442413127019030496551740981047508047098956680275553790388041661426410142587915344867833623734351702538885150886398125794939915909951362509488647177809676242303336060390039311755363900085245996816130314805868379308781086076025680582982574172139303395296993489422375687851403703868466404737203540507956798126655781920528894803098538363807984061204497890553838668211789364732080260206638362737505852908979403383042806797522716590916605040627858121701227819366270092299455223587780322244939028000659509950639499366490434651022685026033256988731454621730585081572174672528854057707576619645703802310068710719876642279105006416477279196648530035697153843053898172279227988070261084931829992514941964314388334369814311665408102486972728144515249405042531464785551700632743095084157359068405825519680345494269210907220187645965654849074120460233706190067370395665774764209813401245008021054616896486942467188078698016098297213974139954034958244257932803210376173058424015887318119828274902827309432525038303150564521639791684932715122790270154957973399180592237855043978319292227989618541154658258812991192873879968045136151358765719556293394234485010780081901897582341279632264372229762314376648952719919527447095830799904613325182135150022334050073072692502934552178249586628698803745700913738287495523391292849365336364897705330485494843483985227546206335888716294840593371834192446211938857826076612530041762402500833746928519447343447405382190252508615551952225317995736193899724030632914696410318885052881272154929865214215983511806370666884247838051262939426641357614246347756673947983150253966229608766762493365690519877738678108919500716005992557941169301386518645373961285939596336085841435628147632377466649933768068972808586681953822485466410286741774081838440376431197258244118627786250036724149039739292499106393488760141850771869681041135305448246982125667139011321085001360338138501736803042541742154186780829239922060958740494521963277095000967966707423332760758821643185157731160812632991645681160024003937730077954623222121603434262521523228443692875902642874105407940010259757384873144288380195883706756807072404945946534427715056091552335659047864109920031147753336054366105771374549008785649162214202997428211424072911267960570558805108958048785093506518843149034582555836287093670890099853735003324169347108023560397371462771858565842455333816023269800506461317195125830896696250762813604918237333202427958789738002801502736523696644479278672350627081746552853478207343402360731887148013856502045050955642545565312540652480558812012246003771192448591718655480434989584026834406940214947634002018348854510076762026565904777717081775734606598141611043797326524479331939708904495612446471349161982167349628871804398503814439508963595980065820950718455836438210883909877153333202374850285419198207672187758256967053186228921781289923391899356882734449226752840088768577576598983137776425328709865623245410123269289009905262140138918053415494482614396922373162883906918354683109205886960252822359038790738588590015189695920846015208558382610008027572614952813521386221674559453512173534651184776207833529594137386049160169296236433632070814151518042314429681872205193212296588030213716614651083292023381216425636806826742977729850365325318692495018033234149932602381342932920673147434381309461115186492805208601607651233250604767268397859918491112546457163425090691816579914718299213809600882642024341419142715277479868790239139925062089319961605496794656548527630406813237416306540877137401168358206815544397766089866921804978709765369026597796000902162274078961061230629473214947298346395467718562063606418421103341983932840257260716453662944591937742726355167172279060483914859288588100202136151575744981866318130933064880638793939417493889758131218203144834053315186722013168825592653829628735038285895282501763639254605063748682953236698859064917872074056281924579522306331976353986327799478284735858634153880645944730113689687400401675839017655325437981550810147823706769372975146627863891245076662884188359155706286311653969673862305697755615038118925873130710775693747309350764193190891874535270510991022868339656306094673430115082313394754943764096930654010191816179592059345474312061869607297254663879952186400720520826986924534272302205064867688618043221243460338662242532285304313915838820393935621502820774688700469432103831205368767033746804070354802024767656131805134580881777146243795846657689909065935224564589046536960944093597734360060631405849567154474472619020069570287316578789457393812040755955803726934757092650229018625961609642376921358660481446246631807283683389685173321024634300225808639225029796206590030865738042876814454813460240971857221901294537097935925775824229867192740916596417529975293009591693396002521217883494374949179463765309127126478866356580966273329190609091804650216670481272616899361836165317002675631516321143123478704918172465535564277694416964231090751746637901726468849663485935011516116105941946076228090428835106118361680617808020501399340991080802085901611699154966499686119184095122785985225593597487120403013887812121500251727781092096178358047699221688818808683272877079367903127163885565427679400371624731147177004148839781875121494559752960961938708161135794201589219443393086077690856647985026640898862639028720180724680025251156796052898176378796342503782323236324393764718395579010845039264370661269329961589801288953043806851388901399038139700399888104088052261333636668435929512851631744497881673797039970108701967492685696236484017204754938295701663359641948509595757252646446373424701193772395501741130110329911810144941448272729503891827779058724869074330550660255439509203051902302139647379597576975813725147279911625885918507528398133626813175171382327938440758617662216886025153069202877848898748863429382071274727708622442360691198728354186669094951934654976853899463191595220630893424757000193637741121044845666578393040810851168863975275038998218502026503819505916234651788222153227376774283777689654379093196256662223059524975628445599101780081395199771101460091876976735304445400245264021526710678366219790451057189533590518323268738130658584912436537507528614844198097543146862440304812308768522498176057779831911388962869405607476974327626063436548483305623366221178103350982310593707537783838070323539966362244927926566490902788499520386484295600735655834956761572715417431892355385085086767214803222107954127062788655806791913900957739663364642674650190953134758620140327602651908645678740660294244876398762634159093964655903960507467904760993125592002000105378163534938924123254436031600695085263863546570838107398532722449732381401045406916894962753567367332336521241160904193564954616650142121279075339053739964627045804623769556481620245715661570737450803892099620504453894410341838904493685806849141514371410254153860887271842913619614731396047447457821635703621052017218387071624469708211191860050447348827058416169960831568835491516075242360670949957763721609181773422753426747941577299096470937806426963510026984919707298355882474395314034491495058046025541261308006013856933543610907966918360783879677272630685571214284889391687156744662522525605107041755314919612947228672866141341166264169250268052254836482534334185273971408795719965354167128582498375133622597931460752374304398319230818343685856908811474078257400991789554199455660759161472902487732683935757304715099689512496564055673739242258722845436870004405002769168964958248159902028852786210134460155374502244910947636842054738629909240809128241045573613056304299108664257412641221622759751118338183424484118170329124813533091149972190094947969945956185217363203142036997152039497088427640574595909819267434069548391880805940063281420058042121772103206687393852441622444023912780960908015937657528925834847763011626609993214145706523969274666873849097677120773931836460382573901357921567476008440728523494950464586981794085432439232192734441886253169308740687975095336789891476521270926522320564421859370828047824438868033780990127176028226412665227609543695874188758933955412422162700551041260605496318287388433964710068081960996500407019689146753331393033201548510030504980954662181697763203378763339794722752310468819702706704364194800994233656541925241598015777421261892961564544643490090139650392873787840768119660664971111939546971418046416802377122633931993006332994643232682414849044550647253466051333623603114100577653661369174493986237805389745932626443484306586870512055654969554517340056372280860685247818653472321857936906909647428436367965686867189172464010090341917451696230755210357672584316898400718475470931181071184420262026611779058670240309804536848555753953421146881594849117543705474815737502587714493161487365366101352712078442380961929476761164078318192119841011121741624805386015744275309070596077298383203555000793850470312337213941761429807383316085640355963436677399746296843995876618044903521528236384825110651252789634878606751143502182601743461538515671470330503894703974533920684320548782280578731638722970651362809794092353443056526377814021863353345717893741283172339273916984185049843289692393470062118845927075784501194842454698498038878584298321553661818969114062075211871398136294502928763446882620580665600881065304634675329408910928704030910177758439489697777253822428207114501894294253602884962613312326438515508247090603404904441120274617095906110431671659338124276859837126415109837830550369224882870434601133688556468471227563302418462815590655962260057638740180086270641384367459078201019009183673433745394337374617426205276222138064098937492528895116127138930656197262628441127043297729108498592215547277733730601349604611459410602613179882177076475588918742079110767177454818121222532347051735777049384612842170038575986787665327211273385396977923730951648273425693669316535749218411299210050159896479072617446507247263643595023392549638351713252186392586223581403527437761553138224148741689681479079857637343731851938234594992825472338549015512741988623752300156415665562214763692674607088042781225270009361606250551933238268814133685589119834428018487099235520119490139474960566509556902215924979866225125566157327828702085307666770659625918105316561474368225217019888377957075126631095906209729751668216803123790417164709068709270934989863513146067622883101297111956192795934296303339269869595279899375962098126527588839783336476718309351199546410988340386037486786830115420049027574670062493312613174859935141628743639426884339448857930811973121388196757164229017973631844586031359158580307032910265733092333058018465283413422462355028894427420940982325227858552014288773206052826822588621506882361253909622952585822993801704610947753085415872563768490130585122049154041178978692937083917487893919946714132820580460324671263166977273067524349937839312376085905417798613839231507976205367811778513176804171369274167290441561497642409835872001059690127659577145638532140225995650981074120451529181975559779104554642874816358673060916309714308990714770613512511769435863827694027017804591704779484488239086011202263868561521276225686871405366138664965437252575928561382407023386040294925329742373608475704491098812844041370284879777209216697024686734917970830767196583379634555318868028344309511268454084520251173787719805669042335653878163483336903977476574160378405750126427785753251116775283507726308944334166781291004001717474010207696620867489415525038767823590934211339737439413996223169332887545507957466509384247530351908640393641088403912852770290953666077904500667135448114627604253943175557565739547413880967893039830385109551241774903416659806599817611632140894277155276864196010430852236014996772590594040000881977167580013030153809869105678576512867664088218536249603623130715617823095598645834279646511678229712148281977304609454020157782824084070121519278812054496063627455814980424823196422820789760599947168763843890082233168390331014568905716651364444106300905166941404824244369387892377716572098222969110745505141065185599685794271115378546150249669430986014233317404209590697864081253183609918533285644604823366380607012306253771100212018314373017776281148479323547014483749341332419146154251093682419470899150879784614083069960365540506341110060802602588669325575057104770644575525042357619442946674018684535641374989329914108943187273221099263879581882451455631442049204851686746381193925364811978237689680707681539752564817855267550243359277431587290931131741726295709115641725387335260779360171866852738818062385328103820560903498009123003167182176809721471396464785342488251209159677425825349699029980667744443057150518687328094154728708162968755825279554186704083079923989668433292203569189401928199969062761705951020473700341007626620026704215528883836323065055940472103433335778040407834575145975868245335558807588970188235697233381515913917005687344011394052256369692445459865170695948399275467307379119689231091558712542386077735227856608876156080206739057860070742969885646503802182792304797784730156861292556449476461425290437486306038155675385157038476953209659144215822942123573439937320702775948914925950771474770443687766264601773493518176817253099900958160951336782936728552347856281882767425464763651030404113951786689233075049823647264714560734360158256189022736793748971368038420272797361741985512376048637663442268315973180817625832104105434164408327248537600069804929558205894331222881837805012343636364396259657346637875797364792270384959949467051499267999640299977524561447316775303739433249014276052017897243744626022724917277072591471153802104633552099303027189371937019521886768239733840294483503425556370761254168651537084410160380330486616871980097635478787448020464906962976090499375139376131543024575925755018222356705302247279551622589806671669645386364400537161655533150836281774026291461979731844365570255326951349355712397316850500393581676142404165630918849130104653939248844572878314046954834212079499041935945424757254586973167991055403917715415230722260831587810318954643358763848122102281903727497239544374939707514319622307651396672730538862901613453539791964716024340156419760355687761073690633908901299917788838349636175481401458325641988831133611586947812158741727235734836580101858048074951613991031382956165039970371365332177485456390254402761484271992144563983421845746934937561120658243854058929784602853912411236867519030492147221542481718783065172261181875310439742138877841486474962671677592791205192231633181870118957919683802980992991879070115887456215071123982675688273294148305388237587053722829560360182503214897749992840809154551576257201448753050631776601981833033701894100472319208661337709540299036023610213819377731903312072897924382640523912652773422871029664228578292850060331174241763166065154121398583107153020610734539989062478508716498297232028471595753560612815615793303293162897252175032442872586498947495688471573832853401141728781057923261870456557535365450107187071383696362104254362677143999445579791106425943924455566359554232466921207101026161593057736801436218764773415056592721186257152927390604040699767253958206247412404014962537047108907516796060807095210385793083186564615014313528971894811524136218000704937780102409940389262970728847316387156712608374413242658688080899649195760433714064243607008994558348534806965684643025535937209636442780819700200377162586668392693145462428130575230719423659398034289503459470182757885402200814272562269449752436901328335025170821012887739519397203309546855699642023577619696408520139819320304621915157050402456185123291801992101063953615037596328327377074715645488206868399521816624181326286973094680074046933754458689742404513411003200517722029986496740032120634650491891116917943419534694105635570432367970003816968342951265729962450459114141324336957648714953320172950946437437448800174781081421163127127227039823331613376532000547543180330066951001669131077762388300383280516388553855553137812256107839592279613037413163346027430848511596476626914665912799091725141681519101023569921041796145312425064599057059516812375902682481866864479039787526704780040194199754745579112383407089443612736331971552276559483606234232389391367715161813296960756083166984901760920726291246832920186737781212596752745747779153398668005659707036665207400649170269547454271803781762792988138323212973205354412473218880012641686942599449616155336019973856020704157582990830537011540080772714175151429493547419243590835259895485416855701486592410403599557778577723738542121245440971244797686729678127665628746948715167215928130915150247789542233762995184013538964698479446457945984815966252345768832646844164988779565657624867006445071883502892483214788313590519906135252190042537425389769526287156585850612087371365205233800297582930037216809085117032372332198270075443466012148431360239359109026986460510401491409549892635092286511616016944328618389908367438124457492067838920271148545846919901437633433117580009198628680381193699087502956945951470026044438488035460875472505322240154229771177558115631202658845348956422477766034777358453200424790959079334137209345417515198787420856140677198882411625458491950580374774437351455496188452331607852227449450460924356086368910127818155477388745248143699854793898454276778444793949132954562326005826758301547866910910503661093895824137794394478916299130990786641525729794710757681975970350963924213017248517259206259912939644327943289399893722778663402978043239536579349421111926271681235824853296690412889058375655741474338077323206119486154593167069232362598330900369022036976811640029788893135883653285633816598676257473614799656498041100575071293155364521613088422856797304834724046221650879268160405738685075141593967275022557039579678506910347116292600466252288735196859265583771793463063262122765518136846111144384965958884890448867999032481234877861965600787273287321391573640115590225887538288668234299384534068051473735508500184298701557797860080266450506647581273496175968462461178845981328535785406030911082096379818330728210643586295264981692844036301689250181511200216252953397219387845366509239305359451042116509691398906563335598256384787248431175656390847573992154576647232509258435913869421323018525600344163507031530052898304337241596544863576166788850554905938276185879339842963066413531655040446747817019716929313570277907041582245033048578519003055187352719779573828461027440464691594052974433897161924846354988765567851433537682763757351146311854664978505720040236553335370460480100755782917890018677194528016706225709882441519642803748091073706797382779248398428409828246276914043055817650093567351162439373071981537776015424295454365679973180741460974155892786969222746391373112751170721562817803013352130810146643201981743153572594149558078829670720778514511115598106135990904716132906826715613615001683863090863095623052647409388371978458887152332986395673666516839673098201505348791854627392883600741188513138190107117827481097666347707667972779957182137828246778890244303650564331527049745780460443674319207071478548073083445673566430246686129422608969954627794770136700422758873215192567899756668659917028187307668013332922033142172826629913520133583735068640022434559917499955042875246552896886215132382862745056007703221566940085307732525980142391974019072257327408456907118533419909083654268195695772907085671459111417781090031627873966572771549850277732363698022716158750303952821453201978141557652932589918314153314349483024611472687956118481911525751293408048452660296679613922649440372254573027885433039389483821137673754478841814408194474103918426556222928262655577452221140841335417794108142321035103841980481054294504715349621992416715119036379590742489309205625235645925003847704222423165601448230021843821036183584201765573678825311688436694016115802844345162956854421143065829417716465560463334095584484132291548693464974648574658119349185316095201216903304868248997944053681311231838392341764525223510483641896272050811416923849768251955640736090788451577403746581657000767169808271297834481047914200828713179145333009714117443051222335562869288977525589959626572071200466729360961214605754783090993799371890869429745932263393420822584707261244080807040179582109505273049324665941301921724950627528622990251592490923630603541645983302022756080856939752411812592804826539903201239457861868480730437555618234984529709960262705176940760268879061878387430905863075260933476433679512227146431994377341420948337611871834002510220428429479785048049608917982310911065254508954706666601790348892730245267773700067084132675983221092168020007124406718298481962923221173038257298244438413365245918423001563577978513520746637570656194123944049753190963388078404446790816992718643715863047473341445593388223559631228892502101353168937519801847560110195440246248611815584397757140942827739338570913519900079726144278377717988197702776910774517920728494924507330710364036451194295668568817218634541208936136446152756516628983202007474054345211298405294369021625352333161636511101787542943645702452598956076912155347774421189936901024148170476023853670822880657675686792162889788161447480628118298654492973877010475944899456249294629754664563552255895623205243664395872715573643025429359542582563692326427415928371169688679466102964434580917596553564415165754999120463472159999439366468032066148052662326303578104502472018576297419896375583457638908000709919792855709584042625652867861245704884676522461693844588764199783767570028615858181245299932977811414783417250486177234799119581553849201965446112073436936914845629450779433139877248633224754243756720707680049485420782846413251672442886684393146806680362173684984472838640136851753432579469540331797241366114149097328225621904973868593285265436697603022987990239936162459267382094792520619650774938171761736800488750429725316951099277572851018952498446894532425935427872282120971485289014940161674133610145078993826767805823523433000905110887670254911132741495444845443410178325341189018406010411121879868788278367038997453059582905517475358033561913584310481990539982821701207812625266185212876569709512658417837462988181454918372042626003713314232864256830056773767910803077794877598783883259431513503720477647312985426260098071174065255296862648104504787136672493997042724914089976204040513597246341713129390537870964191957789061006129691249234812397571991503748360887462526887683307163507941562690435254547540934808365538254247091279213231703969395710499486582789237711918002647177684093738059086358663445002536423061251202290618968253163786274195470797778370041433694313013307618835944542076890461492567046347347185143692781149756213016399444086464441977797070629748429020618302556847366055076872086362255436487355593448599902837837069401085066705611973307687715711913308738724112072219285034143518464569816406388403280709680447964084680825437211733835670485743535732132019857604386380987739332423208408011844128543266550078446794172526848887360503907172619079472640192341528242493575156911652719915120761346905342273020034991130730397438459718540327743949653411508642125289824545432118385539863877290054427190901188752735487164838552692653419689477362588523848507796773006663181997231644974825246593563426555125044014380494183127176619036232894341844471934105978822003357960292661558050595414500578963239489352178348861509951708489919268605282899824907260615615675001887456490977434124881644662895654199396649971415268267702114253118256424957514639651593454433986034487796597200584704941987864683781316254931599850262066960643459541466089415088291470931847534285975778551648591316066549671808059350564636944740238438951782567363956906189541075516038832772623854141590158291871322572490968976839187375497227348699186425719771774582266696449567780217326313111101297587433196276999929644731622461350936483892362348138803639066673372134457862680499941326808945298612559703319072213211078481804142425113695084075014131317429008992701054297077940650769940293117796879224562703452005614731402614992640837324448571260314452727814721619579105976667275323028890830707268138515647078068303125955800030240947482379960183687062260280032269711918126125363301546299881865184755101662706688325766023755324576848524745535932757576601947950528600039849815155731775810640917681251331145901480549337897965944389924023845162493070194904395077946761025359901426480861875370251008651730994535632307850487773865625238385035964074674626755788773425419264598045289974417934037355755603546220883710774899292046120123013884422169542819448017973854297265471690454875459645991353491409194348504271340519142096138336070343700522435222309777588779736234643944454952839626203670005028373425368389711652875067656717786467579939206113365827693386097281053561250170870239780423788510252185912104618189417874433133540055286645554960939572917179266345895635512432997587068163407399393504691804703566036467640590190761198903333560316998622040991821113190072796644437803300874829812769321167624377263680601480067324913352070232317469527600853100722466221294174217003145001534603602930825936856204933301847867615135758159004848223183859952575947550899279029763759579000980119871608917085237576013398375864524464453917862580593515254096760884714737345175795513912886040185288787880140863209718381995677185212544920759936191724799004046897997235476311206794490323648468124099521461310919939567175779121719785200411950343095768060974337404209981730479088744931408868543494293814846192455120482493717797186164534295687367747514039746157123256566025253798379480265105941034096262898688653766560247779456773594517300865110350629007650145589468993539215914916011536174465930463747961115009811693071968574126193158379702867378638342515619292705634979817766110293960859051509593833669646806907897228181595662804326528023052842256201850582863339169052961814126390300200451908620937291431459494063202959156783842178332149476525347771396092750425571968018999508696581334606632747313949815684371900200790047689390450553321215053603243031731822075319293970804837724518065543171699357841543069667082924866726944306376855877931370355881201834410388618120115302010432317041964406701384385363458431966174564775667747009193378513956315283981087497801621770540336165832986736561009111045985809926204227189147162658650622466375111822907337551807032560403602051943831221157572886356751629986448667719851421713042914303360796869942673098793709933899143095152414124052706443162256134608425073421585095666109550249561682845917501563050425048001947871774652621516507554633192810103048339483536398800874304069505340972454279500233807831511140204113689936980769480088152127724563952914596264137375199282742529535429287725451707157174305179901648180006446558362177241209972562205457150417681528148880273832668284832290048617080474697739905589403819007834354793226388077633105803095025995634283914020387606502300440633730177397796652983034057223710339814828265340254287395233860363068053044614607508074549757525458236506628196503108350235422259037146231204862548601575613076211042673493801961399598044884330824917173213943839268349724527985995577707728297573018111540228317857750413946258797383164685936403317627259002921264427049495583286976848581277705417642030267236112967730147055913514743709990944975419330826267694807389554554115454836031805772356081202907237861951816578077430925105612804299207222718137339741580421236275982752526583703386986900752148152798941126098923532686959329120415076628914413607907365959402301081102920380036144966738722931189139026349059096988475762309437503499136635447745167255036293924224364504187363215532069355408627958065727255922199945267574585693983047832876137827073116068762341349878501957084128092058321311476274460902800151026629452868328187369069190357667260102454793545462068392845848754912905159549296722072023151321876488028409781367665093575938193458850057880728800825505163150437507507948989900990970015309039433699701421319306452847282344360817356862630460593197064500455406044601738509797095356977536929425350881331626038126684312589153990742304598545732009038111472644887897928838449312256387465875114737332265714755317123187343311236648999908228588842905990406184060665240875956120461244535665649832811817064678552219840305800735836910537064925617840272682458480019338047020943698450935515842063608923388279301996838137659757340903326510974538595052198920253698998146670753285406929726716759141441729997797437334097535925740271776032555555365434828505765662473685796128684583187881499964787651906379029126371981330857591993995544030746717338813906486594981866041842069164682878070682271754860325529305869424784765235047921583154189771873825719616704534836425379711531016470568791742886185331131018790299177789397452911389066345801304395471251247234087408494657564971904743300846545636418189039702889115527688129655706971266601269704261791858621973131388530677263833282367261344693804205461000997261942537693323994981889618133279134209378842904749527943177698757218686655471418848386890016089961919392505462255788112826706332775114641615975073215279681609051886197270681110645580690605341306220709846414956694232139846595617000455888887155996913843531205368084737432718389519262818675712169637950618766786046499888180906992931525282543369423332889731055146037056879327708701866734108399766711668327426740822553037619219826718413928919509681540542434750540364907085806989746755690615177785886635743784302847460538175909950254482902872390443427838154284361008662488559759016583365474569892313562368943704837684460551092404617549110453165948505504497089220878086371493902685570322081971966406698222496560569807798001678363175088210115727815757129981327051142726585618604754049443379301280508268573346348555965186098305238251207494730752347924557925322516273013554057431260481925363724633345339147603735210025511176504156869348635602615387541016994148477906136539756254936311061787939942298243912883028172029562109332377491862649930244649929495102586718890040010617324658208168808544994205002811820112012244692022596831623047358258626940719818499626273926143926966743261442667666576126718415096001932450358862104971877895635650267814701176701679088934556444182418139881070157238941188184970217596197743719954096529967798573899153376527581096110312659680069886073404425968918863613587822400902495116428398571459079737350004086943587739102594502748662757804414627922272862298097605801761561956936709339194540773163533630808471132045630225552811993416758862957969812326270478580639707628056176784984267281190920036771666581576422783998356108867300509637518662559779878714043516460302602252107260019985138443074425353588383828538516134348634025009748623372511701467052417596702478055678011556664103556150895391507300182932155297283321522221518937876846167635683559243457973968572903552069291536279862702528956003050138036722611274841938101092736218988282857249834263865974207862544085392274447494009256172518679296969930767750181804837027713409943310714278123610755344107945104072157162138642495990446721131428796906812327321314905511181947145582100336741526106120984897931392098755220249296438464020283263128647493535023777466425768364558611744578006903487356113282822875754749705895787689714509123206245923376610984374109108777475404705955466061607972965896789256120139303572688019023004698408520539966654561225814031113735045878793068839296942203948653477800119562514067844775158234303022429884590931536855558385458232429703797563478256824847090282004167714191133329900109503704225947760514527127005309152261643565170514681473518996304628868390715206287340379983752523261932158118137371428856541583336705653328845605255756560553140891944716103939393224085797330693636344602402818429614627431515443009187476887261817171843905325886563945457171344342982512100506309322053454419209878422085604180056241731302289542376186788433148711625321952154971797457387172271789904730329237103998069744946192854464008959874699203006656247846570400733340676700204601755272612546922012956177626503174918576263599124212954682734494842042727107292306907215897494062452587821161471453652148662465622233255712980020730705583936635573348523618225059074679334138052549336459685004042399879114402206882595677713715641231385425097491826330352079753102841561306736166212473458178258459678031715053133369119895441785641386216943019339376837381309255465088890078798523868482522621586905677647442362903574106722570802668880912947383102346601327038041160218573017191144539588185125103862589222819136617247508851096739396739402877562169816116029225873377742013886478725310646632865950093523899983488939186864497071414245837186447621053166403332017183091383666171892366560170482590762362812290874396710501552651428763192247772750755241221792355217092177590707447260503574297144937446798100470767777046166409491788691035217055785580884601497230391631604942196385134759266113734211927066744540285537090967790208481418357199197799255972075537248731941153729519361602172993169102101667394157367780914386336493597717798011095467333488681688972184731604768151236148288962260835761514617967742278192921837825281728426830517457374569478458598209827995594073915906603482150326665659172515944372080796452750922034433088166468284583305595604917937397617719863803848967087585575792023415798004154859233116191737879959890990981303560614628797354704403639896269204242624987582385359482431719088062785145093442242614822827741928999072570288956686133535960537756843989474480919774887100526810471225742495214523996214073812795011004678391974478321954480277503191282953270231777290533472591003538234750624261761048147037286161123576221125747756587445838676846031758089544490765136395792000691872020071414325696872744114132458444986218055131259996565474400234069325208794424399015703739312696838263653523091325163314826565815250008917942941866537238611108933313495794721913397355811423757478596507339668557763247530519771274648678110031523259321814774269400165986813381590501293940286301144164503558921083017248526615270584016162824146417935561090624566077050974919389849056066240452464476052402168178380125893408872710316785741458324798199291020755285490525950001233347509857813324566347465112973679475217792788197152047137631324185198523857288713895172353936870739009213328781807971320675540157221571844017018518362732311462717453914588158061869282880685686352099580212896655288731677250989680728895075134052410562570844712044518113243222081850883949102466488239318446072150791498028502725544223168238588297617716204075129197067801538344991802776902961781839153640574538142602709801613591706371274272114199986928536148459077224183972637365486337804486656339112977298723127980934388190682616159552197465857590885109758354998042528045637574071874245788498325273570638470469995605258725831015895865619896482812036438709554371414379987146868057892599702348701748978914536346223024802118133272146049340017016737289417086435378576829645081631106068017700310145218462308928691458237540199483313868199971298438042996915128945416145586969497520731131687128030532876843207814703847938469031866311312779554278089447833738599316630019474039765532473267227361011888700104795609064475763784142111847914555864443243514897918850394350180742951220260821994970232656529725351229668451805919362874102900849761335022483133774761758529421276565276913731913924327412470337830613134504449000663558637770338128559736064868155632967383822333151715261308283873742911167664466237840712939706877270205292558095334578130485781315182756651360172125528321754541385599415330603152752966586279915063422433634921952581760205228356263870070588661495778197255496925075264220327285997943683627433969870609928418382595526914459655440439696504158667940157049935482785353932029506350303633956015360257447610834481282849529257099052522118362416892979138144104801113025171030120084950072225922537164179876501048045876993503270829298205746837980415046073068018531767456346960896866774751274949325265689884363806881168803823061692857168562888454690029544258613507621000884824722836040064198750222873581733430606329465593613678021476064155011612149777822967787268093463938358381397384932169629506896703428689751970466694847528419190914852762573621323696405675457613704696221560395816365159308346795004212429957441471862080085595509418418424084531574704577725270085448914892388878639944875550738438420037527087864802764940333472220144610685049474292271564636837956260024088967072006600683662479228864233683762910808725093985493534384626838812349892108235322151114011506455089662815839937602715523049889286882605515836882945349944134603962991185605466662059655617966388834553496792535244680211880258306867112302137962293432746613111912171466512612780316819228422370404701979156767501965868040820385353859539789009141828921866090714839051570798635784358049154890892836508860234086024379747243169953491510650380936094247536211113202357077841648067660243269684170509093295412728401701462773698083156782636848495260182771986555680957445332439641005013850744588745285902999551421960470500629031510808706361536209300700379465054919671317539846927509314362457184291732023145296143537332002761582623512145846733658714527348378645143064850747740804418528217505174496930010738782496533362194931214315959444762331933303885498211148361962506700299456600992971080258919744244815361832999627305635006292401591228230770356776628728847418300005374871562439743259516021214836053220305142807533729981299176271789753256805956801793493990155344987698392234926517548334698044456619918023399328134557376753606513805007798004442730630723127461246862255899577409619464966317809987016868116535784544803463610931521209333567861753987034815663175134040053230746211539193686266903639732346963411417764609120118205395955495682835224878497594125058202395275886540129067541669053070141187715596179714890739864083894795918908927535282553790180049850304111182839578764294083637534762780779221139721521887602141541708211264181860095565526474250877876533869154292488585290995885209921609985480698179342655443244601454080593950956179864394386709926212229863691000256032018965746978917923755752786471716736084928794919577413708233265783335609278312979314056685376888118392228858244967253602985333047725097054414603586943252417305308621801434883167328237748705088594555326036467655318608944836233051092937168243276913433969914044838175168485354515730643657552114814339530218868131302107173905853441602171166210794579848348091633330946189092367045403522419916488285776626015271226455123252904236418866468904447609267101935762414639606033911000124621683412032007569589949195751068623746760731172812848062710727581069406061768734815305236816928176985796492894631981524870915332833722948186857484173478116558765529293014895664378731455858164064026665142881663019309487516612291005213776103347905167891066569090319319623098036224035828283478859894164411361100250493954963835343889122693488919151715315149638874596048276484717507600967530221789451884368457804669997782380068987382819725165127272328999010714238178938379094126369048984450343089419703513259773565519648356854173111005990527004180983169717889878636710373622772298685669960666160694649945696829808188323639127069885549379232052749952751344956214673681183129385275117861381037541191016166876424381961629798611163344597007802167698282853203348608878943158200736191830189947903691625240053698133726797791049855521776231816972017267832385127752965277429918114142669981594520868240583827213314166483473178805117770348375132705637448267928896095968134195133123464810636496789970656598413507357071419513022180427208453193188866130932579759635094740755759078281835886056511775028999292293127595853599787324477060751856222401450194598412000589891999967585105253658684192261121750643077154352911754117885161320448065819470701797778009579414684160368298444893328421728134411886382758949948044973463486055808710495847385973482952277158739632384987101954606091211291657941803055863741910859853081263211257343389604012839305265526909318635455444377683934340314435847582285926686050030246313137189015376232169723182069894339180939919622713150476856504251504720990696733303500509755175576702809234838973943058583486508555159359217253203954368960589989968197468903101978627691744962976053416046671369022774132792196196248011199876779065527881313182311497958129781700408537925982558505488845341405105112826206038302456171594299129301110785275414421997078848787991936236780504156444392595444402767524163120485984977324191259581044770803361464482358290894996251645084436055070051091455052199901698445573720737451041185244619186442512228589829840529503306432683627803315066938783321113504452587090766993857075887410910735617992621106609698610827321864828719659772060140700962744967406660141404556132805976767081452051805318885839854465660657201833857585944661249878487351244503330414154990780095350181442945088943777750466760471136388935284912992165302150037426498002405092238315020862391154323869441672382789690500086022135363036710361705134679676444519576686018170881562592060824396349253055229304606674054228870997203944469679774654747806451784357683596880053986914859380448956758716755253486459359303662382531286624671239519802413307099942562568084865567824383604269831747980191859035220968152002287800081317708468113543446785818929695908737146604732199221817139100237359010397326541968307003823760281328507769349991187817206721130522956493694297623200373952187933841993698933024235598996071180584751215217050641621309235458423737667799273712889383833290008501738855055519139990494657312445895604463105048017240118791131027297752278835267089774622545125652496459375685007806624572585533376816961856377975575135670055320218067699653908542828452849059275951345144318191418608443326719356940944577007529440147809193806036944549802124078458038627519636339218945834571307140736259765729340614035250277550987535109949052234285758887495333097425175712753690124115053017150008245832387429841011294757285162665174996155740945228094255687367069485929213399124798826756181186327889143457845171974728817059682222505601652171979023786028667209668016082003783832769504300977971858665816083945374019922666038938266740879732239212708176648973190018327466932837994417209456929501578349066924098344997355043426779562904113139021789579496420089002699151136034522366087451573133215618755302182489959223500783906914481477952810368206083776295017021898842855839789683707565943793643778114139596963133951581127949384941920220725307570671717504228805923909319430158325198492745041227532341950997196765426201956107313416266255267758112595817254263985747756432212859410576693525542428874593301901693431686834040866205668979477817973640422111632562178523816553060508672859205851995397710549951643663748635552124700466859823140115161719605659199523076586764132119030420467578856329152690432267268122186232969937826487647085642313595533333436739675863417959116256858630685781283608395059237633456752341154549747450216351380801512872304192128237541426294959306112585664199521472913232127438795108436732141080009512787367597063026030409110442661557059396901449183980597658278843210761418100047620024375695807117845192169797483413878719480186209500792687430861162884243926782427296210983914001804129485114082226955482335902494007667348765958012243020230344242984759165815705927868340484429794744905251365979480670822994949987376649769906872347902263159533069955555016465179391149185977916948845997625643115930745094605898374841671170632168089372556292694291208023166368409579074083895855559239513417854275986181631421854517143639836045923184793815150233764335016592243361989194273437777342490348078578772016770899897179720605370653967952520041038356336665158658760762306181601006740191310085436476904138167780263545898732130879155436650480199166188568858062490068071352473732437350772058420482121770915071827793653341211923984891202264124740872351782281717471208946827964950519479936590927183988767739327282179060926891482009776650614809701236063934996135993009368377887053567266234692818026033393407544020795796991300633722585856809010028038936030003612032455029141943659747715692068165448714332384377625679749785615608756102105278181270415171112890047936763113230772134048258810834689467274230817434747709277007734639107884241451752808004106388197033260301849630591162623157305643387605849615637560233834289664676048581081175998235737987016572462497544465474021461757344122663285477868057663702237997710929150648511593995211122262904336262511668152121185166108132363201524712084158196085684899354238860094993938175426870855404427514610349822728600765680957408974323780849381483617526102383912426375581947601095408696517694599217623124010183241134284132943444574919142726961328687034987925793338669427088049036053681273095881717764515554826083706044221297601959689999567782130291089860873142291757737057369104685873288672827509849749162452492308059580789891890092429932548728265119605830596698745169634000917648665483772219215871217893052033255579228916414734642648300820915786271303540201538439937063566014695499757902824949677976140455482205243572403022028614535920253888657715828585875155797983555984064191110071572952578759307197275893071628025468424127511438116977144604186211154226686140246415943198235149226924380243792256999737555293161770550169873019243794439678882606940800553367575785465968258218810493949677852865920080014286742702389656506691891583867833587435242929639813091767898881544192792001796272966112046212715918559615825282975935616965464035338631219870119599765920709307020504666678187489578345392499299866914737952916817446826738928313954819537046602171446272801163427870993660751270944263020956573935590839663817382674345219902404298196051014110070497033883962106678461885551007999856081465657025393236549432344756728273814283929188386616827365874153760123534755423423087869807820906835401272951170339505474994383335948938778007572699728598037751382605214023732889548784645510460001747165543072605252301404637815944593629935527535423053676121523802470555693040292732838823407323990796231002313501043807503425396163513755429612953517786473428961763000533002202304645756351033132834584008642112214665451822405237991939580929423222438386774703853960069846239284537702770657288521962748313846272883118244406925403954668506403201675714874106286766126669742877469996129011080072353022475815738657843048999613160386270270501243931818309927766875948938455789387299996036752979584440172653066157651564811387451588443362975091491467181323006312434801441304507269659186429133022593561789505737666564004592059547610141557307828492770324968141107168505551916200024639202797817281117536089965712568367518428738923462193970829016648124666187670737259553747590853009083101495993355458393173080200539890348532106844673501584724180102756549704557415010150570476772701014896786942951612036982880397599750862145315278525324853674668186384653673496817930429186812710627625314653617234947960761917696175833670258591256674420341007485831462802891363778357419528733735101305113804654213228813643003474172809390227360063846918568075393494553667365400758727998655498013382033189512945492837496402907898164326303566936738614598379918426919561927365307885651373927432696369191759212618402907818222828134706485282367062224805644321399812769916825077578053249100106944173007906388183489715423234305890074357292565674657930883343498971112821959778496030384868563613738783509440890138560461348226430206334202337788756252065732748673642152723766056763204469562086049266944576281658348248915959780617713929918691925672046800498263309020220773995057371761768546722743894901376652710612125521403298686562454012403168027570172732082244666809290294328495082968912355014301205762117867625264647401629411559096811885779208261070485390537147846047973241416685862641797206960283448016072350679826676495919684401255468172646446647135089868148071452396032698002984452169509135942587939245989097018905329487832037112062782001225540852497510712418096583270361772689214964685342637524008232846093562841165729248633312451093910883187757019520514731290409902025901752255968134605722974619835990352840457575556788513782515431328774272474077572098787099457917371179902559496005704595034010179834681265529030293707065867286404192674245698475298994486427026844644675090158650309637576631645266541647159110771795750204034724386403865250054815549913719132566216530826340480486469891139446178421638815300856114316188392398146498127035282442951875501278737227042124923111640804418133026686789378747110675366992287785355661846847856807905170969209821147115150877977151973499238643287461476299536957200834317646934463239099059633094891037819755172554108591695050418256946431795359920568311987370885722880826752244645026531365778471182256713915447569246775903978113946666915151173444873884662670164624182468654984440144801154630426048197422874439484536588655132960567938555631142893994893679566189183761339891658881433481084797078920600937155932325540692532452843864399170064021755160773942623974862720408042780541384171040652768292718421949857222447225595255905904225817227277411461069814007900449111936775655626532019520802480203178621660749209376383444326286508124749355852286162939059624053003718312704161722273391619941752756635335984480682704439079409796482217477501490433470437545452141148305402224968044975894267466935496600306430697536073208358271820635381432003900920801797574799150885727096845396462561075395968143317563110707839131191372028257006604749909043764621284455702784655434219754517500910845156414595764882289278752782741884240402951714253387695895061741021689837216491374412457831796783557617457338709487818614789665500988342988462672139757929502306477416218743864034581223560864281582133811724382416805775007045420527754438628042033756676100643039825476408052595961469562385330992283630307849063573857408401646949248733250761674707135097191499576715611758335081486093009100669376608141746451611744230797273762400407331544713260750703663447083075891362854249217710585601930002289941306157111387232937972786479120915396575024501011572978285212452161555789231644324142288645006640040940004104059819227604296488497174470178689558646970930734255969861463152108077504665523456998076906482863147536096330693824257584208695786529348940193045519456606794374190608274547788970910033110198359746901386763079186747089171390676471044799221507466914066253981129857106854172893768260493580358260355051661875579419567047761165991616537741251917239136852005473552302402601735957654688818892059556236752546374924618490851706295968477968239628282089988362539127563319168602888058718189571021648314687686707364290819874761009859043924448193292368066254805911945985834738807500807578890235821967048656088312640329053109658126778682260579406820252783630533312336006050079369787502428546182632353820520450600919416653126398442390902875232941341587369709423824772050374411697114450023356002093809828367301464036499011144942297003594828705531008473457403951867144527660957317432982489417117457462354250875976450480919253187520482311807123615570650781509358830829943793162379605584913438260310076077478048649375525379893339064908707197441708167324497893046830399448894212793581879698370500514838639770052334435986907093095148331942233625813000988392604287621399727047619724237913372196563289232916628528735797809824006320531647451654948479170057056651402953710379649425098544951240612651475975405081416221767849524885235246024744815209064694909920529193068843890114501518369313156192173253583234313427671982934179474468677994241847583973765480486577948780085934405750375020685364752352763079529922738228594223295323489775267277877099097358584534997709837941689044512740988110824905624863409080182693356261281979128106291621725644580442281785310813743386076848414426956981351274388298764740358141595826270951668200738126357881996259172697566519684909556986590101115168511257153367789005959546044634876457439271309724116405279264963303387938932751915200754368649005403724399789014559119397623792175435159588724029162097941954099609985798503355848922350833624090239102886675741550700946038006230782741011834337636343135872704396726864682619207537853992706187407350518550160635161948060031797668100548750458110953294891781069063889708479801121005734249637300570071880985015181354059850683745215632183773642834040035874622098857004605850642542284786011763039105999704251068873173494779968951707552401368393469845139368182179503435807849619698753896929695136248975216327985889876506943105015234415612373507686709573056544829280090753727960106278389950120915675222576507383509154816601361193145811604926132963603659143323533355095133964703485432638033502925410697434126141201714903083581122274643368942011428515384635728893990447585168967657830257435643998263505038594914542790236664260514459437289807867063965787912205609767779596963497324882447855805876230749205633529355167644767560860206903685032001802839681193527207798790444685069243036433553501189501573461905049049070188634950985145624282133243818673930523455663540002980134945617816580260818877396503180868650089660033250663890170011604741675368988901640094557745347349950293846947787099405140129198730926866245908134175189616096178845011803173419784690755836312192425066355185683279002007237925421690229339829252411950640565280605428631592671919390155666307249023775458742054556017100201184447854517218887214354297924278944314143820485426982424877139879266789124092937771345232948897388116056123230089163386438606500254802375787987154688071759674595502769309951381710197167701102476047372753151514101399028226120154637769716464599671743517067117119633953728198980965344502597889227486187552893306745493006475676778060235355049179026829698571828550649553065836820414985955826866398212552844304738680496184029549008286783981844048474285426212897291980962421552195851460553254063741940213866088833508662378914497592774719793652110269185194349295453753290969353798532778313586140843904161184680291831152898398458344167078660359098853840225201154803346476018942838020392835552468843790481263909662784047871593510268588762463898724519395749248881932394041792882027374675571355069615134069795421500192024144741651573098889566764226391924572660758702606390417342536031505318543368528709683560337387911722263137574225251362225172555112399356301422231829011796972399232996831127314937470955375091491708088420436970576693767737120604641195574248611825153958219386563275055893640277522291984805003593450670091606658157243457518618902453350883082992087060209165413320339593052988463060589140572249696449345385618148224605714885220146635787197294141868855795202260953493848877377817305362140130510356310138845674130453642291397942439669426778417618655501907136375872918929585008371319210114186064486199971350687969029821440821265715675525188886547589345753793593134083683905258253827186115092551871148782686216084447936163186115066492492221164097487440937869301553959854364145271183034842765903484811624289473917204911193013312461077068419305189574512830049126041115430021743328584171934070589521557225391885053045188134327146984719647114867087245839315160358113868718114074210292146525985657817637384665478087767207017176932166953236325480275834367608365022911292867506975228028744549735147678510981760100482050401602818060139682787817573780003152268150134637266795886180961584330474895072999360483528181733985882385187089106904057199865014432194555112850426641691438701712734741763679438952462189463054481214223241984349884448510984248716360481547806976815007723000814366761781464243465418169004906812058687376044711434377444550940922827102275283258102286149615723196293580111318892061358423145622424659444078236273073261302484248724077513170783732620428515447232656583498163255388439676119484578842235966161354522438241388927362112886647990852255816363756476975724809897326293012501946695235187908909060389960843669349855971339583782165406603423499696076975588836193289918630576169675415585795770472092523887390672549543119338102154461943431490667978030964987791604313012471405993586916344917705164591699182321935240484876983756586697648679398198734279915562477910559256195223526486344096860495952481973840687205270654152192218012931185513808842817191310035074119042765214444462722404837328120225852783653044473970736768170385915572469252026920049916848948942869812739560609367300328961334328950197665664825655295177822835182833101640736363819496197517965096207072812815205488407171361162991664283827909879527575321156095269372996747147404249632650756273217314900032460715349013082469910985625993780945785170316614533340802456787240681941242064877193011754852986481619344788221783260874008301343092957739893911685120125266768948660928799176493648388608303870212662546014715599421292065957266414546198466162458706297112259697206658559392506489471056246030550599028088426231659384098885877052919817139454372418014582646836534088610454028066104166457605748414689687136730092648687074953017209221309623767671472193015746025603145915321156353434041148554943447702815132587320081749543963880704267149993637952678093331525822872926090137579572701804880468937364199107958996414912181924397912028972713801639799274401067450189064406482382610078700633109242525124947512287254697644200529552299847070090399979451913532617962769975935281197654934211519650187026014344082120914371888922449772938491991703560073933509690939330019585251597447697526455307105103317919252989537280889591550305038653697095667207164289188363208959627575451081211372881706206930512384786530531712985491363286297907138018201851808576097154211499355304102567927917071168209398467327182190071320540817665814350847802965254722693774520059677167409649746089153680989369389365032721501029458142974708103865027202309287737321453543485221714241230612529001507819767376842509012418002488677131360281156056929560330628607608455295783685878103813979782761122253501982034134332117102156231484130187788621821331283990191930070655020600975870087593598215780273652722099537517634411087720167632813891688001731698080871230086245953238784781251398227360877428705802249307188362873409907243194207752665667605853789114591159352346388588312264489169830019281035856732404430958613798328320874258696757335822694268294975535395153986660756757396513288015584979974935864826384050186104318860275093557341566856622678997058705648848158864526576571587385281865200826398163201182968164249598162020381067074635970153667116528726269356188107106411617266086908678320578550234580908460815712980080990571547790991870622651230908846611498045722871164350021762651069172228533156892782495031854624881244410052979371162981237138268102694775970076739592889375450293429999775533002416323419592980034626672856570820186311171933810656951102984411260614004393602673192625107242241085654716959821922102070942120463788011427979024360248602911508109424175817950504444715560902274018229477959031809944103691139702828920548565843079492495907622936495530015491230335575802417500504010537995622053909270610375297427105833806091839160383686641188904574664804984033097696016663337584932533624912453228199676292203405845727257813446800458805241028171625252331429631582496744619612096933436912383567870969112763849100074110681823903083263490176634528224882287946520019241024367710809265727691933786118297057560135042926292670576211357697936215012470502990585762574422387797622812960390027813078706517051295211708493285941061544439635838052308546876634616292721077248340702600356038146887176352611274643305320041808896288763932155371907880812628839517284539430374242075261907498547659019288941936618209588998738606775585228969466028702519107665148427423719962680925665928542871584780767131234280337279153663859312619622096969744045902216381017454022588602135335992410413828830799673000358952358350502814190212993694158866789168848420428871241854553229344911117645822127535638326343156563572057797355557933662655682247380743941269961995487299147004170396778015375482117598105517688582489072985635738946415509930150910392226031424786941918694373766158070905801485527506681930300173662937536868006471383880774471086776756681888018537070992674574379703271313524845712031464222612397910230295567006693890263649808858822727966408010982110032477618210302325895538695096758047077327222054461954569732158637261794070018621465458053731003722898997229354921953735327195670177522489396217656683314938890241879179996410225218921705527516538679806758080502452722421892480798487458105858367660753021013144353945365285419814465073865891084114001475150676721361678918140869660060688415120127691305149026716637077099356432657747331912491741633076125330862857155533055854049530565452783556303171308583942544889257130493317813206528293324118882696319549268211780862050216105840931146717732555911204660904281814671995091999407618151895020955721020980247821440765387256087494516579318522963074510746783275943773962363416379225447436166848328875222818540797396858283289650061734652787876086617557314012882722768593460879158161430799420138434793026083344736774500422782154209466821003086008201333842569045506150331198986819827335728406966775149108563461857614447047568731169148159049065386020306620776784064950151372958543247412432175849456664936976211516175487107818885091744198971855517082471164405996196439629662141371891417767895662205303954394762437587620293309077050228451583307155254988992837664156171477538449737676057884381850807602562440646105729328703869758156421347785555639537607989661215420422962220827059726066287388642627889126910572308852822842115120203021100058408169696962650577156850385283585632829462465833916209180768972881356742653752099193471982695931910173034124493120808970848981274988255056222677879026578228943258023513686532346041592261648138881402975177552621738375268777303363590480940012673379880212603689985893124129722338558236418301153446457536118358354887044596484951414623787750591747895918622735210778961557578037635561786853171839005908683872851489399325781283514865047082306586596684534822679544677986921398691707473731486279764436511468444516263481227728101964710058813858942239974371519715218752899522192226207688178564384830398922426933974853931336215660169028534672109498922290323101330044153437428030472722035366241879487590734457613322224228121912271492294162075991384709915966268169697170901479614641054920906534686501475265857892400321372861173484539759768346716757884994972427132562102166927197748149244300358497553544332234166256909388879987005013831066107827416706201762189706813602919094106149090491096496707734262216363122796475907905024819788179164309818163142344361534301666871323023961597578910384878295834346817779545080587848779318312988980083470850224372852339349444908792126291623611693872807056404580797519611406073788301543839279976335060744811563782279640228263891195009882437026198073543705772568940821998087984153688433588159786838668392494777020562734000853667236040211043880498780417552643530897382310923385014515078623846319488039545703881043072287205236815091676804847158829643671228825895881508018778025405425357863415189615176539791304649633829390575761553482668870288131562382719246862135983494492672266308128792955206523734218125290391384359500558718918028063027763577691482122746774246278234592861494348322941797997412010123847462949315277859057176128597711467980437546748760759672230927926944005113380472786887695010879560392505669403236214029652140226314010954424543737690020305021358150684799670290582514729230773570180155747015113019385565240089929947829170459298314577878437802826128701910241039499087398722746837135205841223500104210967299564455569779471450162675945768858947910910574547514958220272463388029172848938821968968502129160574126445771644868282182263126213149590184292127881434951843958802345335686628535105526407356742233168085023115545822525977879014540149455156893964552406089616145213570670717158439934715407150966981277310871555979875591652539951699616605262118001802583525158421409398588050744505707851608530871959370383697389832993465659913843459361342146096255607079530288505470573109282700946769616616305192503970799789212454822396347327239763449370434857392599786529868551488454498709634643899067290079076255852888961595591879245559665319655584624423971827118373400390029370416149902577342373447232198977370203905039870732744283550098834378056172707846111482223300234474346218530756579827714376553884567497057667489746948218401968161655652193612034269167769422966805154185623626215657845452104753164254943821389018965404690232372781674523554062168234457114009498083841636281311752215140871678970821295335472106594781974087223242819025414513824916618823104546843549413860630468932114595964032280708561356404026202104751919377764058612730698739340179539876218806671716906972871963616188990849841771767792125372875905210277162901648294656102892499875059008130641133389167730079114517709504793673281521308032639729069451703317659596356257720324858142430895719767692150078050842633920788197500232660733971874565033631676356069126669607819971387110610697576179207636349042689748631553903021463373728234605166675703983939225951605735476862918604903573279148017614942922503031207057458125614148588568111878389651037400042844114220979985369385798056333651747391507085226727524021240437041853426272465069579235360275151168759673263057182084804756674344503632012124587990118312600630116623758222600991388167866271149106783491888716001965962865569833985167730159011932488941932458053656978715416470046576553439317635984201694165551925421189108879987995140121464452373291774423611339334285311774778211148589059802309742833547309245895472984230651957646108078159476687431982995311283318649506676617392935085086694916461475983745909214853444481744549632821707253650380973324901383357589357944726903720942582050284893535551347607535663302304380112251795378596942112209776859723478124803786429370533095274625992326189331702578828265017897928841686762309685157138368330127099565847436083770941770484308252499591031784413972180285817977775775413525598926073446352237364745115491749625673957706489360660259251680795937780692044040358987755877586922776664872554285294901716940573330446294471484589909871452683989488499495344134505263676600495248986006566644871090087010983272312330401054820041598010972889174497882518285875500254808832925732015931501460918499933138793444516162164887199112871743212395712387092929935028580440781530984853346687047437886378521841363734076344707219883396243554760279729959650527245069883141978146847545993828802090835476706783979334975966913787702687130774302123357947784312553809318880357212311984940352646065586709030143663915076299020898216551373317028826539461422565913449475858200400584287984601822725068286777673584296648811003821489357112709121526627928923710044325064632309820569931593968125205951397951488041204654373085296223650201839606914365566056606163962355809556524314018209869842608206999952057666532392330347783005688184639001585859942473039749560890695255511225923049594771871961737420390900766519537247237880639433814642453067644540370431351422875650061603845186777412512123494933142754053692660841988967199838582717240528979597237786629166960345685677062957828943159404706645496996312064583807222817702606345346008342413661281716939132283813173003467508229328813692314967855673761874485022448895399756587608999366912461013826601042858803034642029205735013671936754416974205531710684197331118734832959375221468095341130416581289787126054694017576686531285154305826315158194865914374743592377309531085764758313941123988941079335561694970901635686243788583090682365909070117028284275974064286226525832894051402101496771594863301526985731481087500108446536858412507527533611830962825196800429263116021052523213851185637878303360552256456356246318976351099409633606718824887278753087948819766848609336679637036980163505459759105612811848706997335495996361490912709088848409685686875836117348641499702921717904149998601616939877764746090944000166686415835860119845316530884970384779361679913576682501438049181560908567287937976536874513467718169757645148633086397789023440835052220143302898781294094647481793435300910860355596055390118270775856259520891414593041255893459875568444352155478698751140091854761801124001169765989475740602566296736985576625214279616179693299889662494037007636562414323813634665868747041274709841228892664926783769186021179772656137961355820708960785281091978328843859294492329115970771612324034506232380246411957138998483008181080718455342282429881301803110190988249608108388838026329318710302397889814890573925989313280192435588009936022663517976739371118426451296748999014668792193521899963952019551005492128682439498899047534069136969227318761426959677682745420350959900547417248430116175859379859926451210842190435778378768204075380700310310838638483865899841954802773363471504901372302464409530320018041498899112951637970778667153273168745916812048976992184529348485558304845104342311487772816075287975625271327934553480244381016295263464826969313576124724000984203415791837823025262438583232369013906763925674461513850849175703037447320373663087543023527814286591944489214757501511137055008264924036094090480470198594094966923717382818560081443567834643966165517285007039933303038876793336900924870334751786204701688850668677227786318291558577923243297073844361691709955512046541606428895377053735941079214547576493488120310144173432011842503838053734326664372001478958190900440533930088459971391659578403671726939344977044004010456999885954167913532061191709237302600017881481617989772612386450511273136427381559723726502784067571292885589086661511763302663473907917071369777592901753580835585615392312409340905759127692397119696342577299385269089195765847430115159437822622707056407081218249659693822652553057279927676619118231794376129680480453494345313258957411118679112185708673970218047500983490854223606007179482274730854899027578275705828392573807997306104636294810515482095657699486679419453883820251238747618497767315082301566071948896616834436897156105025972585746705106464313829122165344275240109784892898405376954692151713480821313243352555226778556710917558482033855252074232453362234320433197286449702141606110408616119955760443152163679977379381127095380257429058932016078843811521215406817026587325629221174591311358986567543479636362824487717557239256857001232884218269177276879180729039314959599390831018926742713513067318672173344455745842423513890595853331279696655352185259307339772722201171919670591190546341619787243303824492515835986983965937006123415073368962470644502978426698093008150653241104899007250210763665633751769365953416941886818024115034410070606330080559254795538989419426942743200917803002248360837638843491074422269181353013985831924908455910853409335262403577626340991505525088785436762800359858887708653070596396580642937962082384588637266710581323638089754626734193672872041348632953706632929980493986657263262323790455468740155981467401043969051327913916906318889444312796833896858019708314184178776616375279655359253088259400165446706797082496108482381312256814793936287837684791521457030435689534523520841671164814608330069196715058332982903204502657135041895375724298755121577466563159081733143994916945725195265529148894447754865322810398782753739018072882444980500809081038010955222048070902822655834621201505300310667526253124030652009137612491812509208735436535274319396501011745285379525933312723963500900318843731499243904434792239203891949973286581545338101749862749319233214428790698952827996630068079164905942287893867091332150277673742739961493937082167167722262682495614361375413280445706001214988271607408448668397793400745158589846089575945996143046405583440204476393734352720601225940789107046075959477548500378612653362882277257579777175035869783093623138333465435101048072281164839879662574989048411644848770772562004546515950518011077922690536376199161352157755658617742070125008476699982893474603109289194043330173032890484430927905543977175566934260970392784753204841794746092436707935653256009549407478825011850991722328292720947745831710199938315137801459999347597730874916768442801957282903980838129155827223427388299806550478444793522943900341805635173648610515205935624703784657570895790726463506103040475405833816235319949180059129451063127872427641098077228463782438978741169719315070742210205184552838491001649584692349858813642587939527948831438291484719731019103395525409603006476901655017823950644545662425552805750983480335420615098148532104018932882260110263771415456929789216960558837068044836477596569244432178893313148031231203997985372278917667268918439841178377033609863038635580453434585245095438134567532820800569639081660418701090496291406332725867054139544153403399313037671821750549805168420120054706944870856450121431251975426490252039676850533942467390653072513608971233530563661562031332214567820175208691506566705775497299402852509245619072053494543661802001526092281599802177920249206275549976617321912879445769379964857062459558315458765864683816113696181195560846840418085578115574548697478790909678780048272106581007900767517011079384830461217227046068993570975160275109517069213729848629898098596409181333331762830801957278780493288751008659576037578111316650676239444321933288247155692846448735095175056661243319580229460443408264559372740402088784832463721222021335893353451347758397087155191600664591161394612738495586130618316138773983800215331701479287679229028528706030875676955594586221825902873529653436386367971190330399877833464344533141342185486193372902524051453469569636619036462474431260377371466958916713305909327526728010664699518738688980608564203396090835839276265500215649984992194038172809184257596238902723926136680209820787437837804505803364413463835560340146231050787024657186303993842833900935994050207854912486096504886999446309034193023690575242271778064463067721807643421625135743930536470369429860956991904894959268319046303568352485675311568074626312840945798308715119931531966420035008232178034419119290476169522930655515198733527485390987578707356558800942587020598126021681416933523268109379399177075736170184869558441439377544796755663425018156503290843223241108320412343292884896265158391777199800677988987029362329001392225579870169555573266229709938133169911762802926570046592623200874098579022660307818571762951211411527627613045753655804064952523761977493028759650547483659210157619346461059565380296588183046224598096850857139168690715633775406152044060937801887095581089399670197541019135827864464311876370369731372394730324913676228145471909088108606594506888374361980989919795654786822592070876952225297019457224460102197501462307394024371541182487274391150623269860348428850656116681323348853097925505674032681667525113223475419030298309940970223175154013221004208675816094296988360131552494495114126132098240651266372807013833701020635201449449446271939929617562627079106103328892425061148522243491304126978208272862329921068169399087622219171418109411762566840854188345174139069750149989553746313003535326493310504332589718039715465894178608053901316172314407207746006373251474403366931662261442064440755566755678531176471857898893375356841079874513716238791640152269163815618215626682275412933049526237715409477788654032203303597531218689048412756838514475305029327408474716558657374448702836232158050711713785834941005603064128345527940655223530080732727614543470245778759140599348787572540038864170809803638432143892028235948542754649089893045311699371813073258589906158772518696517478152986176086675838429169397445001985494404767551406261361768156628147777405017877842718122547932449096690341714822501154071554776792892473920673999918706143591900262391146219388788812569296815850284983929029676361971416978468786424838957112208336628919743493654676741085660016893442064590441544037446584504496798399626329123269412456421485047428258620467467864787242990163602318332833143820953041040785777208504431604512791227962327591568775036194456152565895029939586913769533638370378590047508365538953924778936571682546125337857028059220076889816944248214581887524287550673413304599685093100977018269429732520036887489658247302643516533578847936822952508774913171604613719573458493287458132507516718095729263494310112511722053814318556135920786695672484260281211339117689812197655783726635979513615007892555389764074604651234006862716841567588257424163584284063990851939952393271423610190503537525727336344245181237294260151702095268418234114144409369597015149275049646552518509874732395140676997040468274019768062389524924482875018897609298565878889715349390326338591330140251976886391066968862384970520940535215254584883089938862192019261991040774865292922393700456541242699593576509617922837301502790348626186975243813855414644072955016086058299884484522170910064779116435633632979412652872653352734427819504252140691106079259303144281059377177063866650377872262631258029834098205472514265791554461415511909097142529563679350869192340458051652974581094031661783203059053602839562380631008772704236910725027159424370439691680951244909476676554227244056231000881553582643943053371265779154663405260847384985445816138689353451828414921147214675563139396441042654503891104454566243262788214282470433041417689426739261556968493936088122665392305693170731297490771541287404527683821681124391897573315539126377895291332659726368038967768331848599575929176698834546470781786413382094372484547485024357016180784683671208752991117993662724022338564245303898243457130017212767992018452316371859700002244824986883465803681353400915082584101012891336837926528331069778979119009087035494498679213786002126658107948189012799830421238935338673972769617331193236721912624155074743240098119139168118729511289199238930345375468113822292297552176597394206131531293425436184842426879620014238217877184271851507689921127657100598118514079224198584849740324801697446051662706718300942459053456338173797093164480315853300220998859670990448106532825328190411879590157871388671334304150165105382073361350011036907455159076629245497454075995338683618694206857418535638396257848841294704259815375427602996290882747870596676761212017934144872477186078701253351675136348277903323855925353382513414628435208939298130522453643338971709027055748021010432857301950873580853558746861093281097036938349540730847127547351348056099409980708771530517744760148831795903543667955459487887098240700013668159861443373337021993943745789902298665677776583617488057755209323483452983927829038872169033958977960383526496020340860951921984193372038881143008942643293913807648071052845010573963739894127518274988334403771469427546838457066563306592814734234560140305387237843757905163346783883162120186669622951012982898344748552363120559277459181074025671512063753191736657648940986730879295735044223640256137299155788102066315651699970747855892492212328932303664426434961555974967642982028359940183768640895333509753790933671490468019882563244652035114466401551866018742198268609966414184215720390441981300467589392478711377418355587399535431117489359803536967642700732791973152459665434364828529164065733703629906644027056671862869504828084202923044124721650866302348469958844813185229497033689895872578232743883201640276260903738317827169085940221964822854178774449276175166479972867345342455890229654208969691770664124208487861132374305272194888270158597662673218054161564798559975803521229965784512181142450894750607974022103731324447781033976345852031866629280287217813674315435200734590252004628169857125865385268361770723005408812277534972839484919871675958731377817132471372046957986425427161914496599192577435471782839507296280335658738414801099441910284175747732339507851670857538743357356511969851591109356160270514036885954073939645316092223139419721409504278580693824416080373854606245034243918668675689258022598255617492744480961665580626740730496432423084685538523247823497997072204940568339724918111649481274942493098587668730467015543283501487703237542829194081594962421668405285982287894000917552942031595474763602904501983937480779868526574333506755650967258762146814123584307427101557429670260627071022864657767368703998530075751530752731036663201897686242132968357548779908529175511105454420018380173828511600786786926368336772228446731520222582493084718729026583425260845090896623950452086721083292197172071364405817254895065037034405413108833763420316650290477459852335819375760541139997778108856971068153580035468005259333512507079531072290373034046396191587269589644550004541972121654508091992179723865474759869367479153244909967725045686673449141318564284899178682312516273599342092159306225322676522105151223921823245663727385218633755547276266837192062614211400160561321737582201092726050239910432348947533456214834275357505895290619834277969869538206912478514011102049954664621055206297494443312917975342461522330981698290449903929348346882442471206644494030603039864599479606365757686821314768766343290117727590641127967640016944859694874339666723690141834088393173782354365070182694931778682137076366057588436570228521657478735741743028657938580285368999772268497634917019338172072682163310573641424330762223878153000351530849603985095308864731119894691688848315917010693734020796573343926030062707048866957310466757952954711875825388297063194321428834512859362734338946433214733309083746929623411285325507399465019146920196900409905544896577313685520514270908587058934773990670818744796420121165054384209055974179450656084328448779786681795997387958886736139208159146248244405294812715257714593113918052563869483989562040990007912380025279270020931154083318338015818764001944486055970225662444978430896410018405953069316250796598021407742561880669509994193954773330058124068745241782647153995716605967275871763795172000988256639952333349241520979466910779822806835850573968848963960099243205504993250865193155120971669228726630161113814635749905615287067956323228788406787865347177982946328774102056024862511354616780121432409196891154768523270311103544757939563555691226290400906399554995148949518597023706971406287732674722402986267756935206627301828294177254566107299039608937349686985280311925306388343217745446685835195995424310072028534457319503718870270393345314710680112899179069500671159612628902492706547204254335646921213163940052506771051274882013563836062076568760746734487103027754896548147283793391514864072359746792631497149307493227168905491241665411440861881973263444788338717062741335394280781324800234238276264347103673069476052038367207354817259341294985106864658090468300638562388397410778831631144743804004085933071188488704755790943709072472717489291688776065405853178087384940365835625307210679490109602802592120015500636309836373613710767859290724685578006787454550145908358664762644872473846660202455833268877196204724718473394427858736206280148887322578492699993165388188561668562798819057787257569980431451642816071542340032091023595041088725679664311837780211640782927336983649413585396781135146100093258996490062455168040386205030309440682372949797449036083168863770651049589459176011872714661848602837104879593095061080200457712209990540495080830480091878053601038003097908492051954288764926903524409750401959140563173651595781855724789072938337500696706243224307497629765325466493749104632884945115891362827713568456703907871776141709507943401069647666627565647048627826239900902553550026212105272028454580253452565141365201038378883688751514602117376011889364322869917980625910440249053758470998332540432462929421562457606758469482692860138786671221898683602089480046849019918215134905118894122628694029179346327846705254386502244108397706711512018898641170076808484018697289474230502164749150128540961792611855981158055794068873813759366010926728080476209068491030062219767993978388542739578520034354767218605368965726665907193845773542757790068039934978871630476569712928241916472341915404382213489287702033942288684706880484187709280175693949697287605730647829176876871359309149301383335676169668304129162430742404821371805986760987886726800210011607741402438407886495331012417289689009900147601900238664263237851699444510874541616216369584607193922391983358412157651777029861074372932250088297604167665916200468658231946552074209876926716174589542178204071363886602152026703698306651703543670517420920731238517140096839124811990649341047791511822663382271735324274748828119140273486028769519768243926557780318760227378334607155971629989065979430600530935973910928537754287240443065092145878497225520355386436722519594155893520484732917419110138616030958015498812285622781640821144846417440526037150408467000302232719451476121549016060348950147602399524138396768112214703244622005407348170472701376610292669046908535663471317461968384740160768254023729725039483425185003028814249657496884459632822458539202069508004561641272875000554874734139665179110455438134034625517576912962793658294414917958744491219986810737101993323553930018262964192535057415448424017488319798670398814907702061216897137012069883256718804356000878098948569605107001772029975357007413012337729991509458865435270852030370084853994856344969746178193686577825290964520533894067463872794474023601213516200241764168816181207091220066813994377542405408875773369724698981588201583875148465128984794206622871662448382529703975377872813264773980511003659164490415102418087452408000273978305519172996549095661341992579416166161468826089614362951493936836190767588425660004771056781512397791835648636407981436317945164616777713478097800859465585186192208677005904049639523486737799138131160903355441165480367142055587469871670110436840253820999502398626963251271963091370348744684849963866567105283199909762552806436647650210583706398706909344626460649589634272703213032203908757547315977381454726638280938690476899542600200738487798616889169291992672419761768616521202553188484786588337083664465068064589434951082091053826069871846706358759702718755835497565477913604877721724728818535774901405781888771034363085750903379384291956217680673419238903774105274554099302588916718646077751407815331077042396128138505711656932525882025118033339941577378820944908250806353466409754924930572609220347017230405158355093902883574427263389429905055541379394453168335810877594234801440193567793922339940250822385217353340685663343438500047471559879876126410216267130056888026653219554650484340043487941641567144007216884861208073352500203136113177058920769385838047545808454030263521966688744697391060395791626262687776939283828986732762350013386887898848071694679442986146602441009766148589205018179289366560419142368941679176792933143308883092034093431070179876003706592020174390586217706888143782773707339735858644349139712288391503374810857616577934720580922127059257568724110907842886616866534489526780435456077525038127392823458638755075725509285584373830613154552863108547736912353209724786836235409303066835701147219605940248584116834705050517383554371036450946362745750366178651668307628950091193964777434139688075806211703012056509122349603775588950903376958945447942673805503755858109543663584442746622920640709411261407921158344565377505293981582179477165868339599789586789079832680630824039743625768289941727202697735915720336972705033575698562184371466048815123987892693866104034294602842132444456426460792012994312706397813213497595551430035666984638721823933519103907929634082135037411998272647264019625370004855419083283956114763626769122599945033263580382485094717414006393981490258372869862684235323416789124626983547762201056459105785088190624443531706573985666307536838354145065198457373224528256114172658806448108276512451009337800896305691546019041253267882375538414832150806083302262628043925216951252519231000021447007129561730281524410830786934438378071471587828719758014727312837209347206718288732716010616696849770654928225741356031827939854721102653316607465819191292300075497148531881824905127258907478058940128599662218834034902472763070463505168595337726622534809305605534430147430340698676284594586264856878054303451805216084682822235382786524773732546754930242170318524053027623579473216205558675258377497529265334530686134573738754978512657972495611818158685490580772706625577812862567019982953892180551343770277629557548683548768767959319971808487546584066370570327449044338910062617376874815336572753168644157543840994810479315126330612075562293039058439630896564887010788230698877469863766377970794962353520776974466198041499553264483473109300922820313568084825332067127476116932425256353458681065312759397314801976381791747248650530882948081175719386931215423982082450102813345817141741452460464027252269030387853315720702654222163625740496655183244872480407023098262630812061294693036337006947199855721690072091260698863479516299756706636834251325590181491546613282331726228735491960547222789150670953806881257644329064429481841084143686555511804690522549329784215975062297540473148326421267982850232874243495962945005973452770748845658453940048570341253497175644619798123358854272472469445833777636108986612854135612545089252842584209728610046394264626124289224732638782900266287705301787519171186014498894695182689100795573573558207984158535106084955992821661107414206829195246810702764537215586085283939060152095057902586227812922698535211607915369230349384292297327886712139703358799084419780935758571573341961609904699075953550077207868983627209470325324480027249528382365620320365937093936486988505281568319457338692437505100155490205196313330998848982948124621601829656379652871482477935654614341847973985141610581642178107326622377490644163088139070003976396031840909225460091447346716992123323719055651512800469704833293563762611437719224313249248831352985425490888367450401331026998718479386879483349198188606143105549916241088382678550527101063411852955266103130911996157844361079633258258258321226608837225863130598794774264600745145633245690261320802536243053223432175532826344404053859751540777881178342304985166304709655061981325598244103672595189967243205832880059160603750105667641022240822872570107540115508604614584103881585204883347517999883571448404684642249132898464546368904137589086942087869907114122769763207113869408524246140850465723404033846626963259316658829720406253335016365628435614352516923381987796819150932748697006564353801264502234470475867640909402644862046728025654895038707001806883546489770570902722349705267963206413921052538092406249241233064390939289216500864296300571666939504275568630694899754729502525088617634342718307833747121878223198502554474645887763712280535227357970828847026993086071194546520802876276301148070971255702346458168016305439338244719127163785537507276603662817626097415913625520518311477579447429275382557785367897503797575813147403359835465711556987554243895221601880060549168344606750628597244616922807976582101418270488982685386242041411665524640806544006550623453755728960822291394110626374228448264105284981121446508111846019943941104904350771215545729484516643513317181145331327564604272285227900882874821066425766892884428209225362111865146955572551292464066913557944018214736610057309956468878738051593883687408841671720914023985333009184156794528370671956451721518248813283857289308869077340932034914676691133952920026090582307029573894045139994772636445291381337953643245613040885223699362555116612197906963479949850744153985321270231972837534298303859953478548456622055172983754625477355868399437236246083700768644575282610531808003926730276196846012447633304330296704623802930188554343850239054835867547967307631911999132887980511069721835795865614151178398691825365860880073072508227463541348800639745739654507760359808493594613802031898718558926186198171423074230220646007881031027364469093863124211368199235599215883218540731727656948441855499547378993764004277526718714155356622974409631481837171397071526883849464639769907239107028424550928637091040824633134019843465548406522217734312492249041016716469202942975972232519738841401627336465198068416511307792106373474572195076748372719064514332196980243368783112702769160927080932484766233607973799583501291849506138381822079780609209941093895292165280952623966201614531332651069878481460394143659709832203614545775749951044590029294802967035925580153768496286550147543713576512458372102350897726359096428817570263679626069133616924140928296179418504862722363740637365334636094481099970675494907967130331149723635629599140338810485545469883470083404874746526293360955542663441847612351210048958156204338635310630425202648422084752262479994514312808858865500544389470234223650924511045128662136956529325604140363344438216675174776056924167454742380548609281865873201036168730025082879366239607962087280753654523411256879073182291761708941968421382825602046517605938784345386027206141015989992003037553416307057311656332741689496538276193630908324717225973639659064294957660067487914352998828389570108196757169590751672377908305952905196347841669873420213301973238978545470683636498123630362391885491658924383141834481534769688360604785372368578746788730513614955571773942971380285768248889715730375428399255346216576054181952788679303818301752703950396046319619966714921492747639399363937562967091694216120231694009801416602177066206294879056095249114858072267480827064336449267095962851276249008759945795181151053974155744927518104996579098299192891898313692371259063827537131020900987407253276989281822344884404826852087203110485093651190710043824703766968717293712469932167238824885584921186701840762429528650010784758310384606150300024215039300668241218476745083504782835175169375486013777315627936552169433004931178215856010656583200179885418850802421079658022685469609675098957245086603368929519410957833080882647073663089809316241799479631962904837307672654510993907658225043010148822297203630664421107207833312565405076449033946016660121794481861928143412699556046347872020269839541401544034454205741841495729980876212503065921964164263935476844664968374076039037531816644433365681140669518284230372108271917451082552888790909117895797636394595188293311580065895607956775207304851764006522485553337485222638543391260389365260653427933019298321834924962234112641960739975365591291887914836062233558902259704938133320738959452719953103730067651338862201047681074769602713069687821776188864729639029856077692066282368034770502727493201009717865996908027452437843941274204691385752449904421929386092428235949857279468493175906631864834760296129805102403726897782668051154380948236255964114236786019953858277332413609919285972404397407666664369537171219916760892110779251311507800714736282626462585786732486950115332776205024669870738301689050180234367860882682775977963637676081817651055358534026003672792927708200589237073467734064797642284954674807839210343666666466730894352606817023859167151823860359087049465138956712819096021435229458885641295848222173324734911303553624821226474268455968849899154599769422895716816908368479871286795839048018761115076618257124967087020617521390154566025240574266753972763059491424205038861185861499344752078856200609779137469583136768049684329431712429728024808334677520971515926093611866172496107097682272219892677756668974557816562307789411385089431465024550622244516906102036299030476218578953561222219904877815761598246390404649162804299914551739843935834491562400781459207659070726080517912267131784245000358215966071156400001068103629849683673330787471791913663649489572259919760853212761274121515133785285390157755369597761685527629034996501298286139481797462955918242614407950061038788997306038525410181026818515721247561423094211212176056089585473260311933832463509346089642199574218741856259821582088344525962377978935203562658836231587199172119929991005365914721244977423365587010287751706016937027823942621909807934806523954548413271239966819926571545702929455170276293348649920757921412872902683664650501580061454482674867241224888880368779729004199662414243493155243920176041104734304155164700356454231927044148764946831565647171315613303320387072848561623953666293654024801545792093873021456142291898672183541119607949549980503768140238659482839147543679531181643061119009056387894660059166733004933237364583377123048215613688045173182345739497470130357141862882989984125905794878529911210337532315472003773138204361533847178152009934211801307993782781357722188656080158026028818937453505589345545379079729996201397858397558281638566683485958429190868904712603591313612774820071284965951912710146466354553126672840210636412450160588398522080750327905318873317925616326040991656901843272828122704748561219158084365323931907141053155391331998256112079341961578055095470787164909439243225496637296114799584373687768397678838030789857400140901825607593932089235922385343810993970207990543340626261003194093988973232407805011493851852728530368699752166256043831311886418310491435195023981514646136743208983676717041295604247343435263304530468288405547004152601891824025114383512622201354474939957470130535449299776277382967467075107952304915423510272496362850966807764170825233963429798524345207335361538400258821321012060000727693284832530075628390161213311763668179734644132615082555226249575667768842011912046207524324345688790523428386516409800157008133420235111884259312474192597264497418089587233932869811429525201749444942422744469854882173678601271674850366821677411126898236419056616637742624832506619477337644696402009920785188681760893226535536157822059654389648620482934612525740060595459524118299094710431854681960655634898045957249143649599822488489541632893783361097503242599320863759826027366257382263678078325749590466489598823261444734908522925689625335997399410866834702373337777666981205340181907610484612254021179129957541731859359414601629742879592367683705020487724419199351496189583116661972661409154063837504699663204012164139984164766180219223363835943297613597044617943530251249636026111949973522911252554900892075497870489748826839065286215749126803928365751704750609363047198948996144150519479197399919459918795180746311978423265051981665779408363788593668463808369689674790901500345112647591437577693684723900549162901665352577942731539245259565477364554283745685335810927317292067491436966648956058539517164719277694762967869962897698939635958075855792393640539473403492553404342018474494718432086729372820202035433116506558964640036205438971102177899010396574988018088206562234905147418625707440656788104751977423107285556533102955828685686918323493535890617181466805009449952721066879496891893999893846129500915886355485002440816652073670197167165408904964674268723037968617725586897588729134864706891051397130734986149577681003015604126900417820239539358929599405604573686360287349610071879713206041709983050677397571888717306381278269293599248949749786228542966752650385021291146843094774601253321185634711968552648300924013426611957659698530384811890735378128954918946635428280399603415282758395118593411947696950604941315529384544581505775836910650341177153733732259667048635694740846593035483780612778527944282726094492815059804066331761613568892350129155513619428339332490254931902386243177153412201124223589292180926028293479461216611788677929515425052409403596200955373039212514181308925951657257877537119176975911803282181255433833925532199219333356293084578919896862686333915478823811336041089328063187779585646063423582808356867203938684459418744339951154073183082066901648441668401250488876804863774187841497371912119798225665694831164193961097360005458396332882522660813217071230596595566653271422698723704619011901630734888794155228487354213018751314612129646226750801458648466849578644571396824084987832688761082191761375407543879698518863916463449636600885692970533397772508567284879592998552121991507892788447727483625530088700764626748213514389160774524954821959906575568616157125742346569355625816398497184689943196747694736161784414184203968582868044011122190386506782396689052216297755883688803767394259589113338810583732315576283333153285221309634470182902091535125257586495958261079216910346651219932966152813335322967887869352667252626231080191149459361030358720023872758729381577218685586300842580880447849566622137313597473218098934487723057134801038194147738448712428469920043435625993827530657297867861134537929170466626377420730816652806849118969340582995624964257735676557130238896549188767859444842875798203682610694538311528098094060675563741576579387865230954668122736814732157803526675286282894652729470742181443587301419725621407805065429489176712392282179722697545532702092770262997664319502341274026636244351187015842647368772972915076630372575113314584592908280598587269951814795254794468907866367566972850838047074206547097909850516003170690166952136174286871855593922777740917026790947900107421300832689589813334770532218487001635462570931410913303237717919283957304910381673511712459588441008519983924913320032648651317809232064271174899132806817088269285417067401780854495613435014377268161633174799226039794448448589548627841980271573577944037574412850439161685830536133960365179661931606656959598268390069941017407061781179908732015519416311754082236918010395942840963191767373251692920238288401738463771047332789964964792854955646135125372895586767257104460208261070779816595914414159342003841326395182774861739013575099567242815677826605644371463447763771200511425305048154276356736720301000645617959904835996783647364541542894734887496292746973398843636623073393053058304269529016668825262794698936986042839560443484067576250283359614432252331148386651198157937166008723182521524379177680031689123262876069957907727728136275206719932878472725797022774857805671262041855522425113929276084689832673306775240101701113440049587831975729082211493267000343582450556096554205532509600445498696332482797931209555950183215339234419897319033784799796471815571730455872802668452478626356584770900224741235952865246452165947215264953729797725480377398369226852362993875044791287756207962639188805959469546242640264490160609689158141603492377839245973422585074673920153146178313619154249479930593957698139591444219412625223710851829523109417782475120549647259818844176029040517290821404408787717725349620310159145561258595073841193954624722329755954486377450945352799904364832623395392849645726173530063666543393407538135525523464575909607189878895534989400802144499994025669344703203863891375551993196102580929647723865355024847010105000340259397996067988935410794697426917915599698028503417630765028016356421795914954646721521419348395722866831597353535524803120158677395190166949348732202200041429390905765468764853815231576785010200382156467728567394129136004921541356758635460290618389538142802274917803283341760019004260189534102619738434887051755375536008742089233364225063606883453403950724319026780857900374737462968290372725628345898340033502413236947174663215203636134637879180087434769453436158326328270007015361719805287780440373801399018789259628051728367748640076927419016120887468995063415015677174992642128242750983291255015741906182223610667372158102899839500265777104899248754550171328235557433412813158831200478206162290651393933125087902193554540846553714016013606911997194943673192459187635561029224098984289769258631167833701444114491990283385768769255224951901964898934896050561992239901564972326686423209800125469965663598366135933000346287657698278444767317041833869648614137699482758180045012108695558132733878858288809632363173309642923736310959672811685181994257609317330750776155875434367487169481331760509981526648939853895908533654279207773318250775038973311831870888256546379553408028438250589998348630129734453445048968067187186744733392183915521128539914325636975716079036829336560800656839233978259008567755220273687728232543006349530504141060282797870839756396798911977318194433075469193117294799988603030469952277850623046348386214067388711014351342861626129852426708469949585287949067436910543150666178520810630086476073440180133943634418638744921024503163574659012667900559975037290195278529686660210554755853143121759047347102079347252957013559214017813812200354822050477506606502687574341619726452467867284114318762314147475243988282356527885160466483948688292406102298876181944404715193543514770884650882040478081282138825071395824696182512207160969741802451658380433774746519390776259890416851545117629052129413641391686534967448508103567404715663803084010931885492505002893792305978876522066561840777689806490510732942958545087299586815437545750573269370011151063580739724431479940675958571195155328708003210887456032146639156467084206642224856326777890624178351101519537309787903812887312373935801240594791186269661829193982470399284293032461812847647929572229070363782844075555234500415404839251761244131677974143093140664767003773819242454374231304369521625776223568056636249094557516167947642861011332362808123866106035742049476860446037991090741066725660213593245094357042663944101844824852154361351040034940926700527369058317834447906977048909956949794309783702318892823095180940696263231695515888556413970581658083887989382283246109889463757009234093334731820024078824807979744108941182510190038945131303411027228578192379105579518084625215581417533168129397625690196269334195745960065144699061783045369245990672517121739317094494927448859529159735141872021117755239589750383910829220430569500312110649636016083945199059515565485181967944822351003531526160938680360018406653839181647818735623543544063855402009441769932778122754485409877454229036383960463272261061347926817251441377127965702926588358851998448386496476088958192011949499579700009832069500849658432312621694322285379973188633216850302716486502697829063823645655370560153742560053468992852258558026819076904888938857431252460531881035321555298379834505214804275646233750626961632771675503371701718760334128674938565438083565367172229159112831884702354162047538003182425102322160443441410537562561544649245114986492206319883419653632993805746195360093453171960790276926423188766130507672257775087136811208999997653328461334833528741025761422003315823457035786605385461260071289981791005076619797078768893825706168961614694118159954761242117315615175263455974522494806254216173888798100324853459092534036875040246321039974882739431435233685898064934354702063104173945433365210899875323218256361688467626774314493795573815137413566274147707580438488700306338339218269912732985257729866201502990810475389822953649611044952239686702706906822200357004418944245032985173828140198281166003287921016848258438377234789169795962125116680209289317577733655288503279818033035066811128646317519416743826736429903034758514470485443985159224910095176571193049370091477065195900391374923947618990306036728555428070448676974923292819242016982263880449943584471453384033140052923095019589507432514552001502743948309841827024997469966430984536754630749270210101602206174257497097073500803906358432062604867393554604822350527045183093982842029906087544300696962684210349246849096380781154385751038015340318526764417792051805862206014005238123860755201834860417885412261691119361159177846659345721306479868158332567029435758392341916257578305244830638126081385004166330455075864825330253306459893795130866179489225925813334900413765355647772522047602396787940787975710936111481736801350532011802583858143806101299982282549116616919379789582677816375902454328859321923333990542056469330729614391484523641258449085561688874087760305357310257565959865011711785319850868084342408834963943885201126590734195265746686268728351629725019253360743815040038464072306201510391471613739351905854905258213073296709724891419146996382458420073241120360984730458106742838804597989472181963097958458981553843356119243367013416609770182613958597498301868632985607969406504307296023357949883851276710142417930119618706608895141889283500601761950324193786142940171787963493905078140766744571938266255795289298869351549833091770694838072162336214396380272313166485576158001534986880033550866404339741870696952158960892110008841682096533181613633207686484871114581082536163312736415961983920892441704950865954373260616848713793772578545355356792156161967658264846437053213875488269537445795424635614895634616940668758024984146951552842064005459471392541481357617249568292570788330125144595465037112997306769570005096594234519639226954200680777428275016422998475643031411629769624530356100987955385199606733853187020106829227729641717485904202086852415084207286264260719484189265287968914333908207825974311546354441028407624976538525711038509720500101317416714083739600227057660790208601311369893316884189069976683879202605028667335379809306910235474268748276128989919892821929144728567749291415271015386129489327008135846719369309706072890861552714629154395702211996299414884139681561222380792147383588384332718353891140699528666280702572519335521069535347413308855729238585736561975164064165751963842978573418316127822151536624039236837386582912190148902067174562641148682431181193233571097294224726155476867776447855804564332449927096461533563715496674998810777071258559390673892327943182502583627690467515043481683053708002159791216999398966973385175219750895396555837158402959553826625215610586715904966997124251344894013618302648026417899684975443906299387242103752631955197016889355308409905920659790579176977566816165080819901334060833133015182636596432134687643668861053533374477837114867654092667688765644149701645983905121279310656619284116494644783089625623207430561063385505922917934488104425364957025803357602855161712356550371178667426836164890078746620138449477523224910886059938282436773958902383149376436036168195090906562906059991130791882820038982637143549054387199572981422244476630707216149364375775209172343491231263915130237178357561128072438860131340468903577310654447093103783867525635317749429263734332684889439858724247698116694041581093874321655310415174513830996798367465520545488617064712401131419610049374844131931349127061240568548351013673694063041210464339943545002815068639344692504391650717383294283684758682781590984426794306331206379267041367256424472142323966570572587467490095337292030293997374803167369935198245207516040033523020018814213500914180774616575881721233385165697711813192021875598667654906568175539909246863534090650437262796484796139437654462329661669519741377074250461261151224664208829166317669367933947369414302957515461434745598870745823731570699228432471182613296449814452901243783293992309265124300656815080227150285903610015341131646564217245721443607180796392208726316495499791863979204572820585709748128465550224743030017752127659114971400687226348945192772220774913430613566176390860810344494283598794483830709789137616166860895138689881525696528824311447088357760772694398346091506233453929644594304613872966056394179025373534791282388831376422759565659678090045786807205138590904037101196447757238488662191536458164339563934570783490411632215219924172552604538558529306433892712100118523436838856535235145805695705479558758918756689438823807949721266165724378825578995736424423201418900529334392946167126886205564138861068406525341635042523061508587572171408948968060958071799821939595176782393993379007266599565598146421992148950335586300733589042059129846474536218691791155472370850092745254984226476886967740824638094811920433595122692603216103080610240705939299679310623589478027210881389183805410492451851850629632276929760428667467527063709993060118800037967069083549554420517635547129213445132359573536716981144980204167499215892993073863596917297831219703498372127427588969745643632844082056570491539561353173384262641137919676603200212709334147862157428012605536280243344106278380581419425142215324323547537355476800295465974548210300401914930120446020576188473185264902055405327483051770069569638098667588657687849522645179394353846522707500796867242596426279222999775559249401808878533076439028281824053348497950691221017424472536716783942018489878718442646210741134178298829714088057907358943635145944120942657924520939767216514543549563603146626401867742186636277661916014566873587148104136636812099390422932844318533844029161333116143974998129151428118651937658296906331178826549908812472762035174071318991618565962147764202131338250718789401993795969434228555550026087450814777848298681802643249793774647469800773656591813341185604342204643393395043668745649253450275692047180998027368376574232054303294639743615468591293704769190202166292846649588570168139807168164139258618987511856062412374094317066757309207291674210789443708923976978540297664079690454340906846363814222632304558893601915769981540960917755403094209678346899852395258987715379270650863079771130733144948187201125898022531933169989673180365016448370447164344732583846849034781970427662152998346807362929762539323880468457913444593168080700808483832276862837402713899659860883487723141521582847478798540622946239667282088763531843887868033679476567237722824512680721581445617518577426695781570447769924930725352596222372727001471795324761436775147232373448878422109775960622834079664724551832968240773600437932845316520952373007067074804917984065599897877715986134538577936682123256196387726748036826652871134514617202445045554981426586767470565559698292514078647363135494413061230406499699154158772278323123476502196294440361644609783681200585527713710966237523822439534216962934516096798336923077326552804747406766999358926603982647723422595099010378357691287393519818947706551424958826291076195531211126435459261661553239004767801699604855320960098269686839479501146383894128585398272644382887987904981169412021720456093093146519872547721324713215026807499534374087467334434986000133966693707232636236762364467339474339332411217935686608407680064575147916428646823387642524275873185784194226478827662595444694215659700703955688356801155209154236908703667536894281948348062595618685977392593647633557504192944987321022727670709010693851345216269858602766084916025450727240921869266253946453086279061789306821747687684273591665642839472436599370122106121519127723659391544123827221389175627620884397738455046844867868515289297845508137813644273593031039685559530932993539820588281595179970477666351256437086560132863860019668320801006038138253408466331913119558207056754889850294763073116992726179020517698945744652597646273850019775448457630297655631859966484798788531057099774815815162193670335013475546740505966611356933796873022608991385883838390603542759038372944858453894875026438216625453533435243049280082074864781538200694618684833649058576571242227597847348267964653344740589516494527906922080968743565214061633456010799594556325320507651113448834211119893768335703396935511010652700652454530158495721978499927650787056822609850736902432193251977467771651887460948466625756312909058435519425883390372223587044024267746806160748247465497297603813116111323435533426438909421318351758696562113849632322579732807690639414318441512080151207593981749198832449181582892664846252942578008255528888147005669470634580435328653013869274340597565878535734196707201199599933250933212827731169384451973273448682949314319987792523159770214275715277564520833224429140634506047446050294740053991049949670948381728703908264837491581502823157309317029169808575933075067648196580426970867704866744008716915604488336507388955397657455690945230548461697313622629513641382977262119913034105764157261737325486843790952567007385818551351169759775993793730965815035360272901768438814308766446971787940191124361163455691784098602595061031812209972822264701848191241988906263735294867836267065864201389522186459703652763493742564713592189457317142955396054321028390858738810505240238005073682713735765133329575516238464022356518239909114631962392179991564451265576437568349519966544524318013122744570516792910082740018024286420016050016387187536291888267013925564679229197351233973466549840896604362171966090360946883895321651064266216670683910245045884836439694668347437513866478731791612608683309457863746320907430595957302312088912147566364104783165016863980941585171649899373767226678003497506917040706962004524418496257988711489592378496735045340035698230300055938099550217372036780559809167380938258573798631991832715762533630111040276079074769438873177296758890870092179487073404153405826452656807545172694862890886506102915677792807692087011117923449581263645183543393650755256695530076497209688766368243143215984574647868212480540556557317762475026963173693815521605747988545207808922668411956391161236983455683406127801718039152698063941234911477817193298433667604252130286574032852034756644125345795509216073112286901771892826757420065251153229426163789406370173604631166250532245721586777546379771330518994140982958673466058636721062341976090118823945274396467934051090755236931076479977404404855796793081087792782056860903356259773324947734364302281866277477143031950836940063578017374293707496929389726008304408790499563985558178006761439148196877593094016332715781658260588418888718662225372477420796397836858867129842123300499748226545794608397010360057460838329852927523827389284535051612321106271579073392576402735577105903945904304409014362479139123317137209558679354319636355581733212376168252126533007051359180281613705215954439730165884058651358110920259076005618318769604296556320583801199344670707318543475075943525297171845550969164668875021442542369913545918291776828493999588425775426222540446961487982302544397611611063617279399120267998751264319650023904172494397999209428187451930258604696709485813515133914984583260688646501663813185051973392434471319069865613721848834493569348657213219092234871145698009394888623276891358567134819183822241048388518694095138765705624854153915125091581529727370133313405951089819894976453362003639490485555129208759967330981210978157675805142011353401638794017391944462883884482905812381558738298753707971779527224630855179099283346384095295692862025922984542913376265594030047518216517407690477280234245567652575810287617345140744997400168131606968725745142142306516967945370743135600818618341436998646247455510843433651519850216316997974626094114250991495418533535466579616652629834277911919627510551348794156895820789957513654289250070515082222720586771009214753685366306731921211190212933459243955948320987353024428727272439233831887114334419373335747559017275431944182747867709953116441872900442001277117612518563958735475036452017907511407820664948771707214487631130990238682977514737576649008709019648128558662055173534818909433921842566205197386420805171433714971694250390282375510856175160535501570722283892786629593749625354971996892727532683357312811909277046405767949084683619936728467831692991736999987428267423021521465840619440365458438633329702732942253758075741904647269570399593800955794690769977432012915451914771187829529800580334316715549709285769230119030501643137087871209566300002111847867402646215833079626006923719109338732843716710661441507334822504415433629382533505925754626963641494442680421762475045781654350577761227903425725286662170791536251450465504074270953601872532502061519418920651064225215198602218327641445159840072915787299912568592500505938018280327852314364478264183152598719954888896675389570667594159568072224692262007393871610154598748547197599513535714808076977143963512027758614924552129654782752352355916228021790535164564746462679064657300579068258756909793204301595794901558004557937535099112891989441262506809140245195252972357964392996161410021538949036854127890524187982753517413641326777188677317128204763672915215427690886419086506641965473650561072763056470074057191844345000000596521310888562479392729536535546959128260245484782981982560247557990514316745189511184307110443889601313702037702467195693825489995403594465723736267169185223052651476712985955050592526748185255529826407644367218689121025838054152514985179058550498873077885641863787245395279936084846975700190458914432642180650533843586688884031254844958945999684528347847595210001667441707576710162276925361814637956229523900270243532841592749929177427479832930376352177649236941510311903420787253682419702735028776173426766931493691198662361976068232508384878013141189300448533159405233095114969597410074072330695907632343070111264642159133228088515292906018757306412688301815581318568938196493757603354479767699660092686565444713952053905845061347734467221928225623117491151767041855762754721429201925605834574587460709051756913358053657392870949080509950331552914110837994338732299684073885627502038559984949017201319868412294599059094345296997234820104485252380579660957232898328305775318821519277729377196071038177708301343093417270572983487461754626188585327481556291644578873669436954638878003659749019590364768504236096431785024948393243689735760220098417058779065815715410525295426048240030299691640285088042877400966620744003234653545520323724099969070800799051078038381902478243860801625996140849466509190896845714846912648873549113795316129459533135511964747919807306491168158279848368695437696777755251533728602715634668494933470557313286920643601581462589284461133208098540972463162544735071511030426606855010191746555120093835056732794468502280171463410765189751381920412391388261530248757278985697426990832104385718253698498339975561492423271166934387311104410839058576567377993528066919437132839253608893654880535733399042656664425079736014951424995519730512983055906325328807255105286049256220766082434959272430433586319961436145806533583837897799974616518994089308292445210951511311146672857776476722155233901183215412145015852934536430707617650617953880466157042744030058764674351839826018501972309913535037827051510706180812574958552743280449607577991973808468802470113250398239387190335103284474867815743622279602220170666239612666588942651566416473062256860464680913184472234061972173133564006536937434625828660763080169160221205242696805865241831821202362532640349927731134451814516624278315302558700240444704387162706190822787401677458898407123830527960321564208693974318889688621004422966765809093360968491177859130306839968663822773760096962112682879048367174738691338572636330468682670390601314908049593967630487764300074377810182142144959743341578703276576249708556572853617657401874534928867276735685611129625277232380640039574177123362016413775476180008412085450433378245408221062459226123456521585712456610996907302101998090131153418945274331839363993210559664793262434477149230492437864402365774674798090340680113155993422425375580465059702475551978894806245439136817118784722965829764130529380223204323553542201160861352269823566848871561273262930956764453491101158134603678542339337692364649952523195142429149753886491168428762712314352021492572601861335710683488386587724694357861194663241529755440708625855518671051081529013591583970506473614137530824406384276993047984831466980129361296175080755910452556490077733062441621545617444885636391391795796177067859854600710163109308990003008748821387766795831149564175383713049778709215971656327885059163269768554730802183047343465251448152940508699796805763812153018811447973740087918574539562090398717548888560945845155832824909645011193040438435116558717323283246038445617564521664959646231973524769344981186107116899419009296094977618391558379270718134187800359907108886069546167919052047292332479290102859270274329502113587299224307087607656535893615395198670728574866055392531158969008637292904160338254649537162383247038516400887516369183103731934631819780057743425378964331290274439118127429759307843813021340401289382082151306318674211586093979812892067036399471239406406996262167290499950800600023997927833517740827635338981621393908480521630239454298653750599896511734176178003408355502453038336383118421502682268453727391730859393519457440857261064093981700022219969460623474578370390518528122052428266547996800395741588812595668057845414377183897481382523895609545392632226731088052308488517532305535180719445025308803966569007739442675240768900364574903529915804563952073532874598682693563591561847245806946262687478455710890833394329650963474302753482668396342103645308538700844792235464753412940401646679085499037959176586089693147504735150763621996939782041768627988503028582230452023460638162965329931776969168062162987440710849271939959636306378176130501723867858794664609963183626147100267903335185987291397915905844890655269920911349763729752304496518656920474910444843423549721926554199820396401803859069080016800826805467454197865474516504897765426275985758697867102613110004685652189505037676342040277912845777159237900314140772502276057975878977073733866802325306450877221580336919136355474205601910177418412486579707751970645001573794953636866707692480843973258013714061839501793835244469120588633985131434386696450587960157729053127437952847895837757578765438367398234857150074632688263844572445446231811804922372653482070216829301130588951980627997956333929862114752033581256797331600284363636895583831634476864508070093849414332592078991174748817423892548207065419158833360103573517872295646523403129724680504323695497311533234800367225515317591422815555950063420804355243683152421492659555911071111960399045016807661938972149244490863327607524351010436362699971470824640341181559253352837961662690456259070251069073739958808348886242867355498798108322518215786299291113080727390498246322020165296815972412092939723157037609015123443922719407688373991927767731586030972686051600676689943741906662741647834981084884703395425389458255272921929984850768077188216794530333141106289405185029257354132137970994921949172312606810030790605353457616608447787700648202643835730388403205953060492967226498641534380736264422501071849156840850599692522799137721429505439856392732937860018554748125973974451194390656622723378187684486301753270196714800830512218318891369001089521037881921040744912493358154600863618877607983546822378089159313289448646851882153504383289506554352169561699200512653807701930043694273602987826873543968758470389628889708641084920001702712060875877391290583167214035088553375474943325620164804929860809315522137976973738631972586573654729059827145042791321953377184707060847924052124959884617889068021990215039425068109706187459130496673712602262215134647519324923971353754128751106150307133185870472013647622521758334275465787209121681243035190050318993502994508605964900227979945220212852202058516152772766255513361286650940695832036323865843700643472607389584295506706462604208956605966578703638883023673379028809978824464641589937187843557479312652281976311906083654838268946414043859653980265782502310220900654386115291941307167966241019718611434330057267801927548970982242109575302082540882439843245264940563332062357487874531052813168428253936260247887774848503551923840457761083060594864204609942142730463959585038699471113092233772719128438871830490100307318098731022263346900882542712362076444214022523615747129733121735691079517304008322709523327150723494121286204896171909640593805344039872228241949084660092340222029647348019805185392671849443785300415093821577513310631802956000086084273353527473779367515274981671545266219338871119352163628269588018696656542531151783103224149837242117282776546788921021208985328058891589693101964605143479731220084838080379154728251043082691778729762432636760115711861153100260104497998262188490770795191681467185226790861300757097159605404215729471454921548131341454427951056729408832049638520921638561428923469082441597151666879149752794894231191255789975200489308448797243311040850588316372246678007283604930154962679508359505442192745223751578121177439039343827282540362317871824301676369020813730038177906203169645297392755940884724614281129327742681121955960752349218297370388557884631425221518225794074383291268859632438913258339938003520913605137367363981919245212576972199052308598089336569706294201438156649996943340448631730097402764213840612942766107996599683002722890441584772524558937020543568772107512882544583360037921406273113725796737250213136439974808776014549395880173775507842721274771170890947270548051704575886106216381243957248679643306688723522696976460576923506614871507724800761158066628296073221932726814443811612402902575623211201810388423547155819241552146211840872203200362010681002694553375516051386909978681548686012496657210211988687621621293254412993529124406525686240837135992177460281819121005118964466150555874475677275569455925931316898378523378669510813444019485963603846785375488960913877674610619980483469303113165164380447972130679990551990426744834240863449701124490486039068727773588513618585893550684399907908361574678414701335412833576926420944843829569254042087988740743184795909111312501707606350270834776146277515147771043653015962102987719153264832913888149931242614468118943860569703878620460172985724171411082696666108156042725957725894891699565554731269295017766075553792745341527761473477749223684611851925741806688305245760974142841846916692059207876100358702409799281593659578232852230080469258156382595529559314468530546070968207319586919674869094934040522505674254480734073121453116455817451989406189211284555519140868480085682311831112406724598330513347702346655147846681224617544611975202037387189481052233481007664424081164246283941624344788523456291787484392848675142033699326660551002819483941628102016015501753574069175271158677383711865476912460909577702494673725373881544339988179893397525338236007341340721663714665992855392802072735615486118934576360821117837960421670848622232141932905125914760506349504578404144241768886035881398096728766931816547334167418685171226007448698897136207814856279088544231889307026056405231259189841364868691383947100077108726606957937099282258448248809571954547326843733394666905460212285338686103097287199898629404710988849808252809361929543809263209161861243542145367300418736140733886444578368063333565900120414342325773846707222892751405104405147914259631289455905771953798743161020209561877631293768693968353418371845107997166675590282652012419274876842280970412467995553718950562644749875747516944105340716372819624798721674429078935775866078325771176525221407621543611773762765259783560758243663604653669008536311094133132338047486805069036941675628982494920887224236838092293229947275240505669868335223620761285757279401314003305450392714131167681365162645695275719890679735536996146712406083921993511885983125607866379242728422506559196009774043504015049959179740782944839498200458280465653643096270535896104880319944243374719555707961212429662313460421756756957460676806587524301540488047125750053916241455026704642596936258786792115411793578552083162689476506954587970352015776584691315816161125324745291505527331415874281870508813435094474458446990903445598145282899011148241222469205736708643401718715265771327791805067012823059152801009392377733564251853709996217417909978240720020243892957811749612161700082833866539689488684336990617582104823056335921361583320168846194706768237664348366506285587344472450400753255203568565044299231346264432447596951490617443303740981350642811273848594898025864030328122591440636385317559492416761321579669536542162159307037050251143129862035680139184578705725774200301677236249835891991353066485129097579123778337330682412953846763755480206118843581136877881904585996711324276380938113128681611480742069588053454160440073211291707396285033544789847479572594984670684347709389096665357885560517699262247174350198541945610877842463038983851760437005803599120106906925728045399155000893553363376638714351161707010590163515543878198382286393215743114595994373054328648023480615033073862092152418065895498806646232102774469564269755304211612160535881771834393645313302071992758014752330071507848306792019820236455420335369273350204686304262520312351591351404654667737828000777556117971456859230482596476761991566949836071553736064812506467636696329051856734014453556518041183352676780950783607262851654427664539707095840760102993309108767017327087348775705038354192814148309065312804276004177188568490351545853123262524937258328669860564077942654530271969714461736600586379826916502535167807747354001948539256786733469343193014569314139886484253217652969315078833151671564339549684533020308960844739844031061177804213887343903719660563129982268875423822118826665143786778222502042881135085270407844294977547009403708770176810277279388344685655999380140946942471257659698526832231398762634992524490594128117429308042051136170415493902767918540216171224223891184428745341466970232916656531366951821076577189987771431527667773846166921748875131229676827208425736063774830776080936761258505336237615901007630344379257516252466494940104287047357429226484327943357122563036793942037060226709415720444918179949870308698253793176065682384410108922898884831685535299983838597980993179909768393794681643757378446587010608332338819797884785090621511701758676494907428559208659713244326810593001189227325087448190339173945886379749109861934538734664500984223485883831036474162098342144899270453425254793938660470962760238126070602320485015890716500106982692974941105060701347216248080090115110925405268146438229289622766963307990822753731292529698912139370763532186156760504393821756760722939750328605093910003352732565040534766872967276950536074638431598492911422829279720802141128371476420286928721179650027252292613735332344109396228241571579950028722143136569103164444647615493466994013303120339568697068036864739498710901220106947208501264936166041918156958054194081903589236933386144256136006301094937395910693223699107389413775739578143095555735675865523401338506461662367532124587806255380598147520260904470973242588322776588282859545315826180235297120548595754616195761373835955086127833665939493720564994276954240280911061809267205220479352164352047881236227495271030256819411583875477515968033982381145152966252168259202958228240155849400588860360397276093587448075108053073090513909011341555497690405284804642258170235451822188391038169268967566944268458959357335375207590752643285868124000573265621562026547796771446028243595627564652037337022769862442108419052632403010114165207472319895876737754109702905587986997674882160510498470636923646162531146901540000747471921367979436504100698899262399114732663412390821023948216110653253518394018985659341848602679405767010000732905489314907240514730672746056568044248605947239721878550788191947148606711127381009617922339636138761791561351320894792185518785904375497068975451779334407414023002319506336042265647000496536226122551246734446279464956832332993530129488332039063833917596452525451412390204300009267293190989437062492447397887381232460854642208278321244809249278855690636842186846711893799606076365360159404131715293141634992674012610802745483992129583157840322482115913527355534181234389575728210228187096818716716977553726938250933617583385489485654078551655930414454320152481364213615965002868976752380865354120466239799521963287512635403569559918367078653027321330359899728559244890859952040397884793551291585135293533290014716247788939039763293562785919568367130356841651809821613462561503787366237376922127666821773066547641687246082378280283574094007670666765676806123621365820306231034648893802960904962709752526377112944668145127772521624995676915211126140979555769363950305852359495164196979777376780015421813773766546953671858889931031772299466488792682470919520356862408370563198119793072027477595322857511059682375336072245002946995561459167909088961505670195920016800922908202884038291888356197409975430435724048800298456609508568505007082897855617626936606222762868628513254744923841088425567657233397480234552651578403332845117255002385145312874335724098556735452064103407583054934679996536223760532906355322041353388471516012692015891290863996007608845266272470381675372875228143420018235730423041979143228972902872374090728140023221150308113156462574045923375033805649125299866845444333596601249111127564392762790176827233636695449955165130154700003441598905805828478511185389841900014056872190509713138153828287709503711927556812030258253710377743817803704212191454822077544667746868876519457987659542964268066424392674959272339810459598671658705823363909167709810142695630692800706125014926748199147358368077715339332962843291318206212633180654343622589215770370788294505860860825394221916156952099213251771409399919170419364625538385743704863400557462843472479502513157436339314331053164436481709513199470043605374944507649004820929486967355244031074236904279297665200656644777180741035233705835795559603169256653649378879346947220969628105740541808182438047978698986808657437828522244310015599088047829273228082871355710956743439437856813394666118378231013872912111916719824510519909519345769075235597916781979910568554467705347992731429539432623112559309733235524812883542991456379808702453238704458232025341989241166256345855809606169072153600246170346893706422630958419370189189026259665519067466117111492142671858377808346121147623764187635755125468089781529217261157053203375589652971326665584145702382611136048182309620654725865610427849162228065966507148523300833028878381751689042205255053541016035816825373851901857590170552357045771051450815452403809813755144446335923388225340532620188844777011548899804505851706348126431225057656713136452583176151377161538289095709595772182851179032135846654557735972909152918860865120911548523757766649593953757274897108954605282003536788085986717158108350859686547701260638869831284265236396588083816907564881323051514184566943466245958359275566209375897349562671856898373594439117418035573088582536916582414284141944512744967020297603945073925595416905676941285521017021378165136087390013127436577137123282449449593009664754603533954523652524106468135226203406017761491538459051853796007163215055686669312903665130553981272002293973125783094904960217902803119717213151129179346281035195873362625886181508657905263398567921815051318532541802069131041754798465313782027993080066563173392961016702031236250829203108387488465372369370869703143308325701398743971375128920537820690759284491136211336023210657748887215131985166831543278699641878967357775477094383825357322102274575502438681917083017662998059996883738468525591136006504949184583555865612417893392181941229670050989873830607478356105248086292918573447668353527527920219543223364194597551385192520399703837844908523518351632231986552796678475090896376575599296353547419684624517550210606729185536706676921200680000855850959021095043870118378060566110039868576667018883125533511344176253820294250492303035512831002745820059946955633809065587488132653697688422229487584080649801418489325612822694630044158721029550782797218665746221670795776672833811282958326236372512181624103638067954352058461283682590058504191319095917893796425741320187444398932294613436131081793023815717350475928860924752131962767363005327927619729536148976434272837714681758225108487243016132227603139973663514339453238014691627841728976372908086608603687408215392913810661732993839718581961790407420305847524492007198966123859209462930399070270527926525716542160397587618017710544513191528835742204793712645521708505832212707944758848619435266950691553657609909965309931133100245504334239663741396701694461080190280190718651571176061791417735219873397734249774758324188252382064509983441078996291778367578717404233345480184064444369368260881509440665959927638362739763086225810499935195280799655081399033407395037676241342425638852577606781029044469923728690652735955645463201150195146393313746269512326166725561156923580627506851621893904929683272791381993563709095988521287067686028853269039593620203012677359041930244286842575850577829878328829349747748728428956658019457637475235495865039393833605257647211580326425021767765201055275136764085322238114544732076628577048090311173740295958331333080279056804340510223858400527305960198023631183234308964328357882459312301065787189137429887014055066622704632099439337054669654369976245013710839198735855449445198530364368238203869856903860855829927344332351270932079130654129639445013877135242831442223741537024868077870572718544907101310347793662792859667332112151816775182972910313929867022906823920649117445731672016420077459701962351678830712952115270293622333322353797595345381951414417513779726341949829511479027490280039659410477060598246445226273281085399018042557425446229851567044632354231028167772037653779820044113752300089322104085743596270959505684234549093249271122228008217279440985614542713220454542785693355928675103358723725345485938039074366230623978003466891421085959979062246953257251916566448821922173182587395408614556151167794296669098184226116167471822502016490935149075994993915196822777475594178520614898339668091712059810820142415104293923223572423009757915123418129441917684263251912742498444061730587303526965199954690892828131134854729466387215399606592010941861354421648045209850211870693164875518731135308474797476105854957947459683019798400644169160505475086351675775909823582757375584023134121241274555398232363779011380493281432953810309164782238014228540235469920195810385938382710717974894263792928760977817023716420797017099328120541219732585598485988266831279320138087818992000652719390487860277347954401930395535092431102620240625063531689611396711484846967214398381296692728520385681850468496422604903977158425133581145661160800798354600596097728723443467583631958103751445536827330525162991228462072273340189985097758476327652904153099859580478195155982193238325696744890417333567768593015566321497987921438770440758236305162496654575190462828917063699971069010821593240116448562333986841776698317601878294699059152386031235907792459817322681740674798303566544486773949197886189655121511137091654206546070664947314149844452911532932567012470995502663934008988219120243652923302596342289435626173284464019055828978903399427820007771304150982988061832963364245239067232733866882617662219681858566719251102811415266412620229687860551067740568991375224607701395432321151028254225923435888112842350052621405485209791451614570403034417409184610159291235041789121162080162666525498278627687618839715944186536924353730025600764788973952041085916580677152242123672221630360087475579401926656632014212754278438466174241057416703239820845595226957667256560105464362444208293207861675117707318829723897703954770292289740633963774645456036658232626859502751466775750838432347163400790752750889745136648733785390576721492454746503498958336537574420049946362927359144078250339333259435241008821006407782207784898856016127620360439234701306044094992090210371579457864640774522443798646079958849739279972287737587348788080381359540316489958709909333697749965727072427110382376999431616567756411354730909292606391854192581609223222100834860579087062428060688286943507895465439335235876209080710883930837381209389621987750456977399789955779934698174814034484308385171120895838319045904863608054448557568019946005478094173773466054297165947354730041671553603700936152422335667695430542666526101292025822638006279346052731664774007751384032519227176206025854240452296619045677575760170605399275656419749264899000376846621905288239867229123142315254906114690636339708846802969097361754518275996577078553216063434101391648727578679913475026125092367677366958258169422326598006750270774002942000830260708955474211368836152278568254288656472286016574350504861516312932236437425412513333838770638432912683189911720828566382246460111459049854063584928567747719955479828543668203672028861545487173957860900649194255683621315544978114104064637943598505464791667000686769041605671486589847539486127857334886607494187221369197259579707415191521893777206607537759569738316537680962122036479984367688482829498616910864163186106179646183000772057484521980342082167026333169128545875923143332868506080123166073810936322469878768637768173805866297207685535066915113905170352592363829656471515457859030344389957335488113189333263899671080847523592631061926007814457558436123601757277343568962534879787970081987557180448284991474009010007236434525143629248687401524242726296229051402456309063836475812819399209235971210430384975150899869991497792824650908774634044761580963917726652295006062874935325320697416189430966617330164494718327135588488460749083373318787299100575051205417690554930099763845182954201948501725363844408419498119259300825485321368722074717659960351862281523330551169829585045831085135843963854124885683520172124428072800990783010014256323857285514007680303544470530307351045130908462005641402677772799321956487537084957424183068973565593389465828341589617412355941317509638004269651238595405933377507682257174115225797097269811302955259182336132311491001319894664648520408865445695618388812529810013404104740668209993316829823702188985940592845227770939351776584069994829883769945352136024948686932590210118533138719597486098435810872847963657077508977017988593984228762153077794263938164382524459120013567011258057153104028930911862253024320136133819572148158487845940992705043613503191766735966011172279422747727809755547442032196684641574957734101669924834390175341576530072073148432458319769312307758017009121705376994031004594892439742534042475016366835300560709551452351103003520357308053814003397511218537189847173358788252779787478663171024240295037383059041472316114296502014947801451599892106302718122948286735576185834952366421526203812241216559202516295609571583435212813578549425272976423565131815635450139963292348499155710881280749816959451615380231017417135012903360496770148713197812716920595928438951737153681934263592602022394682984036184404226239181842541834785534151958050815555116912530353523586120885490506443494615913514739940671757227145730685695848838172870756354004965267634260231052957427739362672897891164845558651714681631250582709072433506652613205176282256303230565702344312847530062929408420314853299033318430303847981604542907824531012485569480049771406962607443213488017770286853909836128082293386916475309686904655725858604828714220195577013652365413808471496882819621506685512487107121395711875080993342110005272519853751360180221725219672354563098646843133779004546099094546634610040292151979060569127337370169205426743022465557563885452405388794253305565387084650272710817899969368186488629463423022868292130412538086353000050187673985864320528652588498231722189281523967586784494813371775437848173253962403521563498926398640949615534944406085184613965634488250692694693366396164299456201264033431794016810535486746234892695711874043086274759235634558534324700318035194472193944287650393211900633668026981836655029416350005289152045350628264707655671394641381164307625012436935780146336018098356323345135882580861988840722300514938425931118439666702220354571064974794990062995425370649395419647993240430637650384425188701333605850888724084012212906106756976036037529979767320503768517525373078640667787842437889275358497781555371274935215291390141949205437725913913410200711508403271095426345878122797898903806143052964944117726169911196908213526756590286760847741727480880652105948471594681054227196030762932593369346583161515611124221455777520833559312468295054196865854388070018729138623080369885838062998356365661683675926229849773031573469136664776617370964657436101076362547150931155462568762572909452034630449490369676733875164215214232750445260655653471842826564757252018061651351033806107254186549003921324167959934577132822126253693256685491029702289604350453947226292405851931269048844778809910638705044613171940732806547525371080412902044814837076749323098426076373490735800827365660374277945347970465026667822518653766486483577278590396657193184963326187807120936015219560271503662360431187774056528846038574454295378751606547452281365288947158318460157712422785989314970281749347443465933557179832610500507205262855317045008665124859225042032728079584836704813560247931463882002175848183765769469407045886834221464261400888179997642270449648656057374008756943554234848583828443521430959111042151280899981551017632879637537230667523049368288831079789736821853698451808076763354644728259060690584097369946637133316782649189072638856480114163474027298673143502328941620322847356394035270132722467390100215589595345950781728624402003484537783409685886129467925980323479753706553990861456946907363133103442484830750995389574783628361948144653694702825719734396913067676825806620178560682258571795180083785481728235626438092819113319086762156547648656135284272628627654144549665876372569031752812476282975147747925138362641726264453912061950162215226883003336735761840488414767881700821721645595016521089704073527568219620362968549354081226405404854361716882000116574470753882234563046411513668123173099627813261725718170517085363165524680366018025225029199559900517637185307189665358148083158348814633684151180937511471415588323602439642445758161485603381852197412876840701115326840776938599111632197335971210362863052592419770136296667829692726173241150720302343330769454316327890837882701877600772319548625512638428818924315605440154306697872983956099410292426316220389180838910658632258261269392561850229556555958425019163261013848448157610026149381208677701083130584415354123479773732466765672686351743192940828574589825301595862665804071833621550256187649280025360757302828643718967799747675215430660789722647395466190263039107979112332118135559329497623607922142000361545469391103629119249601497763816724858888981644391427327749891753103844028280595430777324951418849765928610115024341790773211415592081601253767986050057449700707382760016067965740005496344326348889937947393831194928096388954621336516042102224592398554243831454126759438444343386078979043324425496007543785413895014612355085980958472310776741701192237567204326953855650351378669355342756692132756197392529991715921127191207789911258153164370948455774596813913456355530868975441449854782132975464010413011138048795828716535244837228722674573650782486486469817487841864337546063881662456656910215532252905025851426545277334124859393196739498927787026102872892814789646596072006004762679111964329120655427951083592490498118839102682218371260569362554533025820543379490255686113205886794714371324431219631022629446551917235086966388070374232829824870772580690250079041150589762589978891436994961374373092749670637359669769719184883248989449416305163100159111899916446631918936978922792737462367402160186722565046921707962077883941288377668066714823661155669093473566025140092606831114027343517999447068762792385922543693887047655591821417583768958491622224520995138849494171078472675531012053091702158638576998481471223162737861349267003845865028963508186390377893386132196312233012503721541207629211702003280813065763271174128415058893365952777668953206507583547607197874244701125363228129765365936395098511248207067667032035464970650778611598056143084397426753502729438094781684400780895937325400889887823397488488597873016970373033636834692339879000463795018590523846001278502749697136424311941122194040121707430953540301671302371663648809186296175414918593380580432896049213923847549214855739968834764173520628021047174760953835757247230031728972212945185277098984684983653335732775420635720598708801892108004177550129764020109187423445544459452052166116250212552711425061876301222990068294878956542089210203796179969203181603318656190866875610680263816364763983421897792370547665901215309780353729667986502524837912197533585079115525275719543506241224450555907767390172735208734509085110886543784513497505341124956426805006774668452934406930127688028294798517560778685458057590447227885856399571282817331188500065057900954179296283301714698436267058323678225776703459522458349569283536999612975076927804888716882730492887318621472285499726561589440739480439360175844785768694231698177511683947462094070566102417353885370433851092013782056736856382844958131107407259337506506232750642028745252991501967099419942712416816724181723445708300567832108600867330961885712471751286353816552898133238319850309617733242645523454204469706313948234398367689321870564437646180004560330007415379023666861183736036278973778376364421243269678355983063738093557577270723235447476880834167576432257745763011771651668234839549976308053174007507479401548385013858423655986288625566308114134473077251105482473177848370284476040780854012880334235104476282386573919632114480807493099446724793574234377654251268028106658511495313408992464622709553849972698801249470150014788552635126685386054017368266271910956016999968382830159109281767571605739405802787233731186112256349231786208904477359580674333503950520570867016533235873596224954931840430823737099020639897390840440509860888401428557631078954746615706368425093559579215819286806602755732207111835101200149191145650927965104855134337334752319123874654392512864959395021594018926230092244111769078148296832240583076981324396147796847760753618318975815403439338306759233057850075324773207831161062389681736422771699950590954581863422482319338479607714368130263912445461806888132968072631303900437135704725342818314515202831146003219900810977858853456934543021003726912399025148222840712553821496851652283919330831262567830291171283383107200057384219466458736586720668720721579438242575509734549512010071321450094906283757534202596287082780712478605441285972525932453578154281697501173025159216111861457214903840239034190590788472632308038062098253390417227311200741516819478853616815703808076914095417473412691167608936187958553815960766078256189221609366140590645031097753395764443284995319863277296714993482677269374738350131828946244319875267849635888761386263479186837704714150289136355156180893569501318560363888344712581906238828796524661955377661618356007541565469543432865207570581716362045020588373344552062906770360804198319017078774241224129223550419298203486032541545298176183997574095269614893259170769553293957075580197069045218800290077323297900541005940936173135289113881317501592809960263532263640857520680251938751273623772810619481423327984732183492193604968131528756448316696705832660546114076855966031781480174535844377303067073653496150237953220385765833935000367596751051372471773633202344084756107571236515802173835946022702917387416646021357603717272273279972659235254558214469422856549638726572336044413855619176586745979007734842215382900204979408894781371989689320054119133008744692647120164049257495746691090955773546831311165701914909558373073875694114839528359575670755104828581701393469301807113829860492791795097132903424233983045880488897064818642416176728494871916816545148309533481964007679200313050430017276139991199220256514004099163709163069718546027773785226130604230989418450353873667918456639660250429594061634854743053574596498454289773165740317766777841609266948145480323488524183745126563349301432619412895119917105202705322911869661100183908310696836769984034848534292526136841664794279296161942299461922631009263329005236661069658357262525257741280497483168484887524529747790842327697882257195873849594730051058138513453065870882243306269751353238418449146127380886987663128474919241678760150712244292522736194535579818482579567580915467183820031938433622239768951476513425489140598222790711372734839037238276538992320148609093356254342405968935645605138740064435565887873168032803706258475057829010168068069277870285247405925472968235546102738854452460529625839310901215959566654511078788531436856753526738403459381160037826114536863471523844803915087090302880179060917605349653354838414098648798363894417488964169951529189672347950087241561692441848822781299667022377830896997030987442633206616329271626259485359621305831242009968620553140319533264476248333255339008349209469080170883099428005079128902316625516445870192646442947165974795095169420792164238255710610653683426022041705743249262452271891220745523107475329228439232391320925593724875417664317133524450489141561554552032901343098994011734593732922877120907268616115969562062578870956756763971174167287684870773854708688261728520501579630566796887217101686404095645398848928535838612280972271709003930328304947165898987353522594608680919093657283770104633770081705959742302152123605097794773612707159062692566054490664262757474289130060426239424818387704719350209786966999204934218723236609958256470892905312995251494741727019893674064767295199753999173388598714424381132945652458047862475781074954625555498121935605304821279570271037604306730443045630120375235644209310113353374953568090252058590039122346546393788937734637104187009841713168287229608432311942665407419762904329878396839523451996858959062482147752878908894467637851218996439161410716933894574361961401631798293852657746416236361039711405606455682847160278699808993833509593189061889362954098986423724705209784223297124395045632932825226417773139750081324140575137279554970124836591135373131907054251877738414824241157985870849358821346430763719966874376820185459336912897356033322562194663254086207676042910621021214243197657853054609196981450548751410429213087214403236091987214931484101812312010055170007468339004669511862842362370613534746867161279757169173630887765472046196375482554538284554342723933815998279592196700265877927896249827039414561744257746886322204754085477515078797229937252441706086138594699214358885848013674241935143354363321044277060275679102724995531901218801990604606622039573119086548665241660655196489503601041496853068278025245911820575011533516240355916399041120458147511743129085362277065324892611213869190847073560632409939276139781305127902891141317822724278610616119602073045583292393630590804730067957660608264975707293096275873567302345651705017365681189648472627565526877584209772225888092934793843742077832957718986955944485960992205817930436864473603491574701877154237911098480504036380284721738751942685144860026952702599561954077285177694850060102988107700513523569973185449503107358332881003886377386725967278656954355044762310591146669552952597828203492999232572193290023805630021406464137942093078087357744479051442216293605087839763368828661306411599455937862870462932983318212627435010212786413176611463787175019980121321711410753325053742506379427000593253330699795180214206579253489717980184800521229602751990934568572651055325934712934839205409711791765198296557284581830027801057516536792842233793951178144414679331475988318724578734469553522838713563405100924235649493371015165326442656459579253703293017277256104926521667234628647130200747763918785267114123868234367014523348645437911222787181393190475057740315824016295847570343634643883713832701448014292955501110986099554191175616895381464578243530877704974274626730681485990361670160671267170620994856822125628735609827964306010349175470007285532662246681202196890098477469067942960008360194460526080410990219974319091209529753197438034865223140368279806924570600265726263286646580500511788635302845464933365968413080661100129608395940103992108986560420948107207785870200434337293824586471375371439552484075838710564040235755243139202134531923671323989600670723527749087833042868760792098110707123621255189916522354244736226159043265391960208148928080411357632196827862990808625751170699193854264907497544612428854128711619642858117718476861202157045114874713425354600972364494212333406997361447291406711094114485064782632480493859350650302294690849384256648528521296595638749828625386141420822373703796417429620825062597245063210718997624413003013587071302639751651241005424287532792377896728321590440380509223062217811612600280619772503318593506288321726273264550186482043427206976525158355091170676208000858267111781141468438173679120732316793768284270271568133635838305944511640233631886721590737187169644127246491852486557211408142389629448767948391706028943409845393970565513239961098369830172596354765303970427040523106223319612584291209733752891794309148091098637752563399807121679533427103271703394136513299486070385032809167524375435343681831704602851634588728705014119093274815071465203560394510541273257631290304287397118733214694773463949544271510815457141957496335367449093917227242457809405286741821315517820612869551057789545779977057369018431964522791819433196064574321562338206986512222385663765787531861133707441429424563815009835916796968762466458842569439263879044403059583667765117790432462994349731350951464790904248059956770639202411552378636201562149546810917317139144867226608889311850230147711888476085675000123055482311246222828601581283950526345226496186506851590189814538836709570378369261504407094546844598770842435314413640723825031342037467942199285579917722472008149532375379438480978914081531564650810361801683347132532003177768855050497629712249800794497959737738802494161891992840446721750308960399425260875922908500736532409189354277674816484754242676617576677398461954513595797633788514478999264647642887736330161120177386164058587617051790796539799088586280067449044680913933102099659363121287722650006594221346936240338513642182199322151645524842706939157379315755487231623060682581136591695526799493926691075609774716513002526678092011257260645460002345817158181107201080134931255918021103333602459345817855856087800720766767857022210889064899081432873429239971021269662020466359666819785588291315404226599628496902449757161295904848849229206246125621606199181727771374746190197152200500215745348222817338694414231964709338460236862044552966629132936535858490878719497632974561976295992759024912234295207838568049653214652133150477234328005418704519912681271000711292580281618483187476045461678977892302327990317000515140728716532194857223846358694438594529728812844210143657791433824268798134778633358488345624209674031012191217429080491930328703899600259205109484227778375810148564286502500130060761286370752132794677969046666824123833833657916357145733120569917148883214170330777228935682566963133267500897511720988043311593380704397730589641417926844872034884654590013812932537572951006165763266806917876627431689484494121861099730019543530872166888572367879582166138258801354114347832258666487320839195991594475088520201927089396158103991201162177141745494257425489062606733321654843852470750456865006004099103225879383899757025031928844751098687843884629166444295015630445279300225279207267275061145819228328517821976669143153657148264544896263360470119254286143911007523944498631150707715644259499300198992255799528339330673536430253735686103525486362998152656515136496669213055838155088194591164956394762869535040305589011326297648477527017789118517651356795071438899968240448811588331999654053741611355932078784018031637393709189384995581234148772049422724932016084436322491796393267828312905531943326634595665237060956281529874901050851683875136187765165519453684652807342714813340340800135016214503083180147924737868104365944645560779475622133021619724872432753683173578119377064613879014281282103177359984938162022037199627284190350836789028360783474288728011113282153479098571785554829242179331303282629806630687797132507952078637215914358649750285248719054760260218236825410530415977913251142137950562223677352726785307826657191214331477107703907042055038857642834404624137611078897408234924403157383501012114250207288459842776660571408434477467791583059026945123724016201339066850836520213985468495281794820372148687754419651218031824816813385895237180604736355026313888952277645282823444591063768784232204674459137825178011244894665438140673998988685803065431015073389119306741766046009011165389523416510877717453143196660592438468348335825663726034570597663003114734384450627197796145177962745120108153771045525860100605744965914030131382317760256749651632444826751786307435236867938237693902762395406048002457561648942527616028585207034326602689461609633328807742699371367059075195919878699802687205070387604026880577872969824115798501514485196441947287509081174398713937777758835538405756372913117857779359021804282963262875403085759813544990730321517250658918368356314446923008856241179202251838821270654043864434891611080330822838305697127794333727743845436005710605669052203962373390463528666077589485581451981797892195302803997575406395837394135883407247406756969969696344568168383201413948501309749982543164714640121193040402918069429323465276581525648480271215237889660846659556360011257548842135523473838956939058405218946946123606956095400467611720504764059463586167848642402553832892597150216563284801158301137145076428481513435310292958388698994898338865204474930457445542779841571263739492978526017722075571006980527512697209563812126928034382863065356444564343752056262502899054578571372340558581665732643851725421794093160246337557845483735109142127849135649969765187273309583500452472593828824823978347399017256986932097371964054196702541991770416096875572088012043742834042313769685023813479396974686586019698944976456424848616955432352241242627687701797828711855978607150258045052043513090198668936406945584376860351444809130403216562558640869671633943365949183844965660998124106878546472076043748274868644374089005285055492730722493663395117166951996584935385831363073849294565072862863204975338031559004360162074754985890084497202849613313337211380745372430705624809798835380936787326937305121823085017878539428712819197825062214870395127513574773247554575794150941702850902497998220585652071588347416952480284780534765155186184220699420336022836355959469411705799274170613383385343613267678893590333353426770589155327860520738775088477520562992261613249393747892044146972424341353167812926923751579303106201613501072438792722311675523863203911820778231328122426029042524953726897153766097054425937460265475897995369599872627534955370044481320015344302585476000754326630395533025055393167403120212967445848125803730799795878813700242624871921772790560969788201539202365816964292495458506993131887391948406883482484110359088550463707879797592868249977443259065049764649164497390823706553060379774533804458809243741849827774878662893334210050492142159795795547735566628670127670553039314347887821184567532317242973253755473828019704459743266252394225538817245670516667476027108685773922072049081072039401015237602681614519343498510042681784971711704110442056630181874048323010966051744103825558256506166880954204703476111094309110442061284557028269004028667547873704495651619938355190841481983547570931356812140402333074149719004261587414407188950855595407463465807401299414204627240063801720256821502171583171534636998721164318385369656507700294439404159376287487707431925969949793378774875273931255572461300098118686501892065129524932170598551198338597514069471154117127743990905651082562526163897485814422846252237734340949195202351512407589082386518640242510415638500538136717980261093043631378773448287148930171070214651993176098870444055648543222094762158041631418518494692207519063189098447316567861783587667381190232362697307413715275698432959356007328068488189734608483803557678804541854031361519125548345081073653441770462670928023241367635183081359082194863298666128704537642312224566909986672841701631325337673648197620124094588747875731000809092836721258512480066742468372489786174357423653060637906069784904268306521482016138203784189903156461451019515848409877734860118557802851868234521683590213878334493924348440740319522282213732994690952569098267979192686186279249300538481541697484773072891920741281977479406950974895060069784699553620061392663961609537034976954571081114732034571263684793944939638094516081532184784920940559513169252537194822132280194933682565002625028151018691120764777246468677057476161237425482710007752712260131131036762790098753231510113715882815576617429853449538663884431171364230840357739927445309522979777093505284477070404318127672127328809238786411754399617186394028047741878717596840964130223519817368340817540001408602705081831690183290048778328407615918646844607506072613897360013288705617036231688946679923884502986805089471437841614394516270481253905038675038312096874825902578230267792812762143665418306700323851145858057932177181635825423460523807645116478463876775239637003573687515172870224916448007919369905581426835463669658876704841815425519815279796215692314860243427851574547514127443603463285999548308906945801887701468672014049054558508761074402598154458513868110156536820628618353386111164646660325670232123549394510127012294894199452603495033303907442745837932326098408722368423889737831517930824537432168723858094573746627929437690258529465213753044227865770532351346040753505728249741113943798651090538498736186062117176086791192360826990545549652569125848404545113169715112907392202454138213860747142765244163859869143979474045382320730238245837755581539974412003801877542076894784384565545436944568921748899008034387537856500948982155868864004123234788263370653337587366579037895944968459736829046929024812020535945654130880211879421105458667036097169837558037830234311470966751419271434533265213620244639733869325811250430043181593878811216047739399882429819633163575711606899644171908343996815620839897865025091599489281229630674624238958431373002516136091493808490532463124007567523729336495865758358479767145386828567277499240410192457099704123086930349847711484712338518233736468045986112942765309438176867491273223319184442922775801653790546860157602332487928972285441751789311003945599828291516985071401483592179982216897482716424200855406247232412370724093490783162601229711713071424227672345563488034964867026485251335310934270120921908842169265807326980158792967788260191915128249460267747110832842097424555426041144553154808155066115625735263138170899966426046130236898375998313542188826687670683342677032518997008349260608939192389260976003864732737058959215505911378526792876439218486641987670435416093341225341365619757480468434864796806837223014529217628546606124767619377530812306550616504102829792650339730412106365086786941161972492386306156372538004678338507100914819781637287997515902191941568083976281511536336324600927767001003770033245067119323397260802280947529455126858919185911947351835054972247582275789448536121035724961982257479115434754232709583591088708140370149150970578256927839422639563178922271760360574611979056361457787945846831025145983854082722866655132266234312983212113306378002542932782167228907084436958981745480535326397173214407913529047165088022023561462374578117582304320670183538793574092569938086903380772120956018552560689926251890550892152995138738032824087318106423498768770509439542483894617005008266570118178492187387634876244799573871410379357135600060275534986776076041401118924824534438024787392577830153772577126640426773173297763228352874135981780702963231417436636151278848247998232005106232085316577681645873164063929797020807023231146233299863973856420732330909597391366854998631313654047887546307636811361465684007145666496614955652247443929058004085239773583846534434389491567057497753203709966270043688937060940068339571231617772152302688864319341347276998595544682786131887342829581467601324797789276814209914411020912398273795297173644614542619873928948795409104979588364613195760250246681744683027932648929977211439621189421120244256805521659664465762673486507253984691157426325965573433707358170325393139921526861118855941513882846373473203207641195958180901837218913985936228888468985146959209517632508090321958693482668283472279878281505080545811838243289817620123872766743833552102414856358181117708244537778388322940846999508338078313387169218335432204348187794991622420683671919529070030070317499852820877609577225221181328135482803375574289612869027581645002946217696916526844554933872249061672638853896854432256491112378064006665215665027474823178851681647491479718335740448558676374037861390999447206167001937683090953754885338419785658425523023174782731953584451999447826308964822516897452165398661478445648433622590172418954014941972116904962387043089289957714246669721993623689312038719185169377864475794981928671497204805434046826067698255670330876792362811140278974273842616364397602902562983913740700066510635621179951600812942076045689906239917908411020445167343578610377962406770509732100136196840728757394834995913375578635830626668380460989544036887657414752847281112267526625478330254736894428562636976293560879355553036361309588311986975871547959315853235293042316721173835287641246433694406629786393022815049596401999064216922896865333483705613488984398564779867203817449014877381018912457559886865743005149305817990734551868621064661072641879500308828912684061760515338943270773148941945178795080874152689763609520682572216282292098716667141597593835774308625986662655044714802061890336245696668540049237986470355941520790054863325290058004218749963212889837910534546943067163802442323935985677811349649134176054757313219924846651180040696612728954101844266252246118756645406696027494875967079663939105097197964493722997396024376352743792703601105851904501825951333877330283651978415535217133296077806659977935757009621791767310491150386545705532979757530004053667686451796130194456527643867506720909002777157996153041056304527404082075540789453778632287475299488837314431854132515810665179136914463250066335151036550344013779057128793492265576305693392126814666044317423421102265829205592466131707096159866802387308650242096417743379661917857911298865293430219866845600058154391887584680857095440666995351135319047329293564784212265258519076322273638902373953269411720065692722778981547295619249121694447052549675345278176793670708703638764651531725681560706072106530329574240797324303410444874530982924688007998973674557323463413153486237884812101777324448320094431594463922420954166090121626156660714056769773616853921493940133053202170186590417063702005064672691004068727400795709046146784940013835725780788867557177623527814509160250749566999632906084908355311000835924252382527994156116716431933237005731235656943720332493205733288857753519173994264888366565640787270829389897432241398222980428717065685275324678967663628008332372332164955528219914898687860006689172942185551076651197670291739335821879572163772826382145732264464141845125987344950481163500025232682119842968571804756122439828864333153133408423472269007548823429944757636065366815997209912304075429886691885269399564279346166944528364206302809999202138576415678273780709948501176930562781248237452627510562379684988667338455395946029107538401385743825824558451791627205433099857627816292479127365698812429831097861870545609204043126558176223175939762188349902570132373298774791631262194606660640392936285864037441966750142064698378807078741219095939246208800622330833467116791038086103905780272490972485799221716915444771822283152585314301160645445418390895723721761908550676290897406566889249553462159600977560308719705865340870127609451440407554805781402922771222520636676884346398693495162264753584629554325986108013156620594636266368893578243715778189964688744576598791188802255889179642118863103894975335550770281530603083018671590397011229269007185549279723088961387808702988604384481108777692300578683376921806913860468589377519607997503465475707083649799726986322113242054813228006266287196162765561305954680987621063938775831543138949313674293606011760473910639599992554772285013886177672307716585368953448825823762853948016465857568580565880742083988715429830017731246617375842752577263825426130671291581609881038590609567050841786635341669975250549756597734385882282926873404983511724620317522465086451491168068963447153767550032383107576678475394118242785160782361693208903412118717168432971112441779507744920109214892244355913012013338354390139301758347936304956367582743805394921110312221925186788721478128845465878093796709669988021101666106769359724935505291495519156281143160978476189807120017694633624573595757822587276482085300787328084510661685368600980223162561705545965719623488071378840826623559649727196456920442466978178155341146868069446588136387427065798628069212136507543731145507032551963969427125994206258254603306439308051615402575060718408693663223765979013075651819882257290910436150588606562180403646156045449530039554273198692618978668843548154691547260075801433530000637764142773108799480194126930417066975446951525090535046368810781135198903222806354892933759613733227610739446987600795856606190138470453913229222986755302525141402846918695517401448444958491963858383820895530452550249767394540603518104204373808385233475732247214339680632516464519847879995903869918226013953800202715444946226382399324152263814490487182811537473770341367385916784759081601912759485160745461788429488364479287550383885582564068911425193160853270256589046600708283133659362875470691676334183868314677054719410673545532641848190151232488256137228610938526223577013582370472248362493129077110547118403366730696347724374626662542071512211926500197211349145063076173038927768720011861049484320673171284181274171318882611377642987508800551324910471957568479334552823809042579524121918997414204282506136899089532512552328542150418151756386621091056271004157966621450769400260049565466742721747359613816183962753456543308294034571445227205517690169268803077317299353219829598592681489213244573482103977818804473343975307248298466832018733908934502087605888512370523980628011598327063997285846635810485055656086669951720565910749012898438652402105862161045750265204351188522527068315261422434627144669875641643040707713369369133730793549181690295991273379065526275170288431299173133058665289098928256872800810703202112459148730238281466371833693048411233386940539379474623686764622741238010705970885870492711815089720706932848720588138704195182149357982236650650197910099349733959535410962672326363894201656385571713390960678192734887810924643986778483866459902839214019335298678169770929391564216164762514053226359828919051412098059812091026838700406136945389531908041465320548331330237067556302142466749527178909859112373497761219666721491322572141780568996014442819212834339700389351234647469786875691116773941136666832929104353908551243046509167833894456443789887846043514090100836109832755268178297581509742776766765422064260461485821472077134983036748853158904330565446745178366414485959269052526606114128238791830544030933418880444070958299436410222439751563478068473786296830289127874629353501043104776149273848578109826117681607341842968530400749702802640544506424041678747941116248618056450166304091643784673432586881675699676777635781549557979519146120297875086289950737660516937712051999336044385597400797495156380557459019043621646411441294451170014580328829160896318495410703869340394824301626413470024849222687573379762148613799052857732989320096885238738918142076212114618493235707557150996202500910562530592204596324765649504836731794643475604868320509862794032459613630279580030464433860484901973238751084665197544115585839112450622481266629555138774465799164755415835527067825502665378863180893976999542657567732318431694467638919082420249185609607312586587712783820429183247282252520970595394017416484655421264378479781693853784853365185562425340431258846376747825626728681959021942688420889743073533096917399652306904654176929735785717895441746873134491442114125008836551538947026930924006513131383151106865730331702726499104713396135506312072168904072915185881130486185261010453153784028968917679642178465689855902855349622265042238431195812014516547722710790919986673332195955836523010457854193401342590382835069505210443914445189628864210866971300830259616458533869639641734731069354712668709084888673100370101721530983046637920161433036938396618442406434797387502130644243871440218833361118096087713784750951521410368149387154295674196425905295837555045144779297034595157566265631397600983366815865805076533790670153804556324154428978426641691328276304814393141384512373144785667375557887014846121755523384318657952806587824113239145737824367514946671974932767517507869278229589379436088996540249757705143860992691650625015214656044598889935389252148013090577031178123708071096947767405414731664009443257021409499601792897151879525120057894942330810246288550531062914190125174338702390369339400356439790471094654668611725549996545851474579495325776588271522166378866767270794888974372239438502354982489958088158626133235916402276543559155245358737152485946020504671947883967440513914373029678227706845889184469571953864460892618186537796664411981489678223210412258151062755754058327309735104319892969027017367114325297618013932656813083703412305298498561735582896472385150682594045759883765895343250260109829699755182447230268263072157516851679614896831329509776047319680273536930706178671652817085231062685351178632876813630949026461778887766343168818035538704563441229247243872675710890099701823684092427966342191758850647831595260851051384458085550242373352564790031566555732863434892735690084478507356466036839852655933985423614413668056290337484880773262345322847121630253475492856136493086655822952139406765278030721371590873145935071279627491088505474258929199093989889112147477412691585937694616162694389082071095406109453405753937843774037884350575863763104530742920119416601086792023702569789518432047307661011803195805139197343062236203832790612356112625007526969601503460760251293669511747491919376267736988177280864949628002461442773016295790005368161584838980428572697790895867392325349734800882418124561988993348885903428200656950345388730705804342062770635781719042686034548783465012592803087045326618186193646463117675405060332579313858721135552533009848197049683005501140225512041294938894913469742328982580384478662249413997313189476132221942228642543874182688767855432442280037960139926868048904644088113494899684662420423754551157576771845482515818912384881260336547562388525078986167732052448654654150856063617964122956167739696544659269510995998049258790922536227095147885654193975438145921421054123969167849818282435221098948450947016874670056770282969932290845237181725546636617837808903774542285750977557643150159880669369172132044494785819687572970804232501477089713381266812103841184605781789750177657298687949675777916593021638115946012601506143482019902608760165206305742919193904588147192995509013987487222624097449117248982684653013446175588175633386372377564579220102824742326130138587630307133930033252576041227242514521870008123081002055448614428937251923604444383784534353405622608754791110704100318809550833900244237391275720574805303776950591521098631118916227269654593123751800535328087228585647431280199099913300287290555270750317701547943628054453881105753171312376963915866661653697225710790763518659407256995809786410061266137151627853290740757406502370745768650320792147655267956937463374654450433977347240023055271148247393536632803048191024848119696625505973797481813311959948595406579100487644620090536823260027838173643622478131850188454223662464498313243181821191216625816649639438718667313085674068274498633300887854049831788292708994460320970643682576907693304229903236206545776918709229962347556226395481033733309627794774876620164335114199147909237468170260083733638486459367821926620281366839581665456166308882161103620049501280796280784896214942572769763755931379854876570593299669187691473002312079866992388040986226010222551420715246256865671557915772675221452084080717928609904459772319331387463114118295623988620350853454636232303972168194969902352623467367519883985140854110986232108581175691722933665917753362285187943055934972469754951460784096371622454702849724153336506916349111785919120784788509194082913702434242273636398017495172146574835720242556837650703803353007084383885025506114696579463045330374473044961470546136977406885835821861651464496858007749771937769891557265266757484499982514955496928529333562195803748954962119101136170871836813107557636398727713931380027735850192494499437276327551366182531733971053758245403698558597471363697541817425576786978281761631784367791499648957745650614506874941618979531042026725836058621733034207159264431577805567305594786603028116385453958244707700523771588991525866251457965263902803295642099576679652913125235497603130101738084779089143254273076680471806768188221032837178262739975477007392746452731824628565967820100643410820003289103984499930309537078877892934736470134950484925298232758796363554076563205848585635253428349933011500416805808570295951944981596012025975138416417871434179942730621266806197166529379601877775736135470860759008996153413462268312793454090888121792980823128653365053368053515725845637542586321370747256777294699390843957421966985545397984770165138925418958415538155572497230297955370663411843732096305243210222444202962469595232953749610389218480599652366374475307055000512719949441995618477707771563224170432599572614209026403805581531958932185619424048697683326714247215060277063683929868074085985668565839625121660740730707321246801568760731034260455663588109293826130616658163723338319368391152404714522364034591252255811086003530229952247344155660102589155359790638085218914916921659769922720717331946499382631143928011560649538098048254708460366743688355465620098005245789430828396137919833011440375754801580168756285310343715591400412511298459052401740761576886259529295394066423641401457929104474568454827565272622622315343144946462369721030216858592361552733034765379428088582762926698504776386620626479366688068016958434568523747785310641654920640822606603117563705834422987355683633187233267916525454741967980892487477044651160666621346514137041540344610315921000013686879033592608974050076695959805963322146296455294630366248695629061741458769016304435558054918841649278870717895184076190466909349853677458494616062912174813111547851027976169821086357629391410012931112468695394246945145054719536157221607083981117163555745591201309110253020648171019643918598250628487648600344330236883439331877062841206970609400924247966098825515147695878922948199580741694153518684715464167867966757774378985062709235357811763974700321127432647175074312683210159927435336002466744344856786972796819426694524817582632900076912179735032189853329263786027437059198605582101871401286472569904746496770675707120732179194264361233418557889716034917359651875372181620066744285795017258806232249621196844687001355856626592936370609711649566830007731895882954268324748395539193412045371749337883155501701789484003206644163084403747080075269589628532141867969686355712005101102594509997047913984527037272722673010871763871347543761006478257784652149578018417216522987193597188150438944493920650004053005654641228204922987459170588911046990727476344397413069026364083469353334184494474348167374285979163699500147489345874611362366088486372353967760753820829816193162523731954223711849430680854190978552419891614461963511267008207491652017061479765857219640167757654595576296161716689196299942205496724519893523471789793590375863442121372325666282810875173062138238762965802520197213573049844729278426727421765098326926347778426157060439888356692796823631514428988338757554810149423616182280309704405537433686318084661388618592896798849405510755914137171817464129994251872184946673570676038350578911347326862664243841128450412903463848645711687488957971799732459575196288181137634020965616658770468881813089578946129666558860975909677799232257922197626747357807006217911287743465669084346284302534067428513905871208831801850849412643433801679039721462146468410683049744627972140863532563044227827717489075526343838876324414283264605301639436229258407854980859432585789176868514481629283986494826103908930324712313830968044755106963146746233988045128246923939510404955890462347069744768657217456636177119853042877748386175341346714068004335689171171830004348309333923796953836120324556226693317424839535176485982061289003677044193820110352543663264773440048664461276155985824828350332445484858688016125703189758442512706550321960642378551367868218565607626019550806570613575058257067145691605257172264449966766516309344231991243772373425935363347806481035123873366339162626708584490920704144703853920751720052191927942254406397935865372978878010480176630116734600799558373622618517504269784763855073943951164447625991597524085037954162634629870379826126432033477392740612414954655312986864399362868584120602164164448878414807150401645599129229587153875263965800472327252923321134428761361026865287960906450196903550062484610981053926684115069250248304847337643799462279175788557358238520294554818018168183162003753393686439042069038967516037972556609468061698160982721326222156762709348772652405330701902069354087381817771544202909300838654685323609483107660735645756878075980727581415776485138905773952773061245196094694341616548607957130923036622537783983134192253652200576979930980696169598696674980551548828156428779015419466374036569862918259020808139115777447657334430768267764814317371986779293717668756287904758146996028758033720570535051195674965353553394897630304316392908393781202721888012090056910068183067985158490005038328114451464403741810694459877516200991304408532285688103877075867358144441866288307521981237133897265349012698800867211650122545554174217092834601234695188793819538539868146032957500967899408077579223794609421109908550129805539377229942474506225364132110227288900019518606738963416472815372863464206844475902974262279669324248642572960571335454975024246369398781630561428904575950786751995367164269171950444712676796814934155643788905658380869000950182706438277609981519388149656001003033312943972217121338709718843397651370308824202282353171291631923118643964611501950415955420965557000152193100595892004448226762247072320128429177597757940395186085361533419201124858165162173843904552149847427946118124051887250379416329875976162642082129213823116119013030561580818181225388708096814304643714323811784492172650979017197792180848898797280658140637403929400873984805453352781060851354549441719484677896350696826863417085374637354525842678240958264766681483807119538555313464362195285834691902335720282152474710944156449813239569275371781814612265533690844788914920478269756656172583704644303255037607055109396797437304152382106477146879185885611092733175263065302248243038413605935457253380750271161375137925974253754107269312856183800885549272526254197451902627263236005948537048259642113296741504112884078753278029174521805688744965382524323707618952046794357808803624888290667555902676619987388249763463650332823591674042086169458450015812281212567450762868387182187983660954924590534584800119021369450801662423152433754951663852665185532832227525962109475342297624491293128910320388253270594647514521857977355052208054150800454323677927907701637907187547661318576545296933793509895686191246929847790244014914034421213563295285027525941908258446758279679864383460589765641789348564390878142361436204432002640435853831793036933260624552275014340937662156787861748416153453033945167487215242336500867657594941264540016841293777736646895414347554371523092250161391865005489181805905953359563085298835323620866905997782119029884171855888695020706833145878031873724558543372070917629058183051737938426421714705926073468817601676866795412267431636850022050296141801581492070707097533245980031515385548806974648583192703582951165473161720531093402457978794413764773229984366180991196579985167106662446275879634361032893995644007773615153156885899634100301742862164645756027949009883761529324646773658997703968791359570051031254761441168731324682677373824594983487262492836890220291659019918215939051961727704052465558276945967140412920120970523410846031245280232793239280710125853989370265162655425556268237297775165168118061998281153621728146845960675242877043815831148290267066186137519673310159071041751944609390337264869237949836473914148335309585697711844435533711084560893972546499872646616276787243384661072401426834726075798187695007333229334458663264385104839031105754511295176397518192403107827648361993903429174855000528620591031394912779454477605003000261173954319191938692406286226236872007550572467753965037074475830524944009377633279573159995669933927200581528228427362295656651841082937665903961060414029275553079708123884857187419219359544040906553691639417900053636390222447231101758869806884355816523679384180178674052214642106372144131330513911083800689390639334719224718933270645566139915536676153394472515482744045242959472301125245672768703518250625597720214428333524196610773233952759938239716778644215178685684272650178672577553673193137806510044168347392271754941765076758382138185845035480728536098343558394364444122624351715215905189566244141845249149572004009288537943385366417936716135820378180406280028147146451693568842374726385243076367502615800711754568109160856306684271510715865675115281243480739521535999954251490519249032655528442593637895719290724081993966940744155683656764392748111798908490355571070345980696273114666010402847383882533971015765162305425616733848071830096313998451612619194450990556013223088840075409267996199506943197906278179534524930504938241474693937477800593711671173296787513891647302877286008210377916735039837106519380954583482632840611343489095107937948576378787604140927205687493644418107920529395368536966278013473268503646782232257608615400084324403777236770664504127665487805161802861227500463675183513329404954477470202719649739372081239580655939867476632866812626056696461870825554731328561849727136529495032843096931743924705277081396173194945798666386942485889327350187854942378138894576924035141439619628608126036549706380244405890964636036914365337131523097530844750578827556423968475486426185374335199976167839387302493963898064956190438055369680107386436282744045445176742886275194147181432115961097427720085688366155156771211218470940828725343294244238625937791563334208310537041430988375679075227564864032709992442551240623214432381916373791733028317380188634647108061922733934414875869043422442949998658825562888448066777194524515650394253209551157562212153328773491469361623910370047986924657030122188926562061187115258879333119527078160228125449147341009698747737378483664810660289713217585682145727480163481753620455305545900394380435246635355112003703973445290959545932227668331128849023455902304501290644245992849191567699495565968534735058467885217008575583665529480737359646419486691978324294732448579829482470548477241963974694935544661393854021830857555479338102033665404174547401755708284682033813797992976542693629538863177625553630990062236962653840657916296364343486508049477087994866035911483752395323225731991533297553509240543691371950302736533557888182747045895054803533505731026006623958221982564321946811426970177303261990336463754330743805996009324430727022895681158439734567413106481421798058911237843037624497603153824175653070725248088664897513374609256495851945966319785769835619406881166001709999057137338245743021472362374656034543825379335099483461020655871831464049658656374905594868586088160244476691469368347492404290478813646819611808557880816826717465872069796141529372367613757202211007201108098266509473776309053556731223376757909437596674708210786340958521797003587404223467305284883132559275986987848924819719955958475251374686214564731094920987453794601183112014629262311370453499718330498729858505352887029642589188839748863915650596170938235941212807901262121193433145131252877571810396864861391617486297968985880231645765284664475620481592117935771101174398680843630131964767795164131743813460341947977825552610492036894389105853842795325124519179533086132749890269146861644875173706614095777300181850930442557907630790437638884372007794245942600270690470226124906011173367965089276083688957570616948325254694216996151790930110931081232793201053622730360476825367657510941535367383601563626956683104847759721869701414742298881311933118818595297428411913512824517187579469936836776452563905802120206427016837779357790570610931260395731503631034102165344482313860184914259142111717722442631674179434318824119409692876231919686976030732422942260544617300516731214622955999297978190864384860861547848323194654250677415190182288681465154564403569473539150107272133672725716501831303939828126801979989280816423556943587286849583313787081976597228670146855304270811451159429190899269281055466612992147930342962400287330226173115817940104681105514551754603354043989825389440803721835196754870197603232000918516664267807577166961176983383383754003797476510022011042887505634062397043414885929732463105791601157611764199200690107061643599778138952983590490487791669230670413120237873037829184038755231000994868497335099767458075185979938937916802831262007686726180005971221959943781277077556365367412467403684454294728521684142254869994102754337205164591796382668002424244570415687425679704233630354395894364547865237847763918245506804514794084156650723030802546671223942754805369352670982228306255492456742415342210561165214291181482425736418258896365081832071143546449007264827780402796677293219328997979939472392250965192162694248094459758399380297583328785761952153195236695917093035266087344874146876018624441526838400837792409572881323451537445300634932986734075105991816771333069779573343800653711162058076220593487002788415723656206861220983502945943731633247445955302969381378175627382373041534908439176449526666388841374211368058442403961396094344926408451393376863922866672492036939809981525449786353924897925090841136229081149821760904010480923486183029597436881548547428160025715621551695426462060262982586473935925780119034027615891886870343631917051969147189062574927843400275669978533217985936824621587230569965386703260099424747208203791826489403246736038252172821250032872106220857782346636630371244145650498717627222367764888731332457099364685890738407082960428876027637515388612380856780084501487375656853328923757408897776263124834055861812489843065260677748593216701670846576440907913263404072712074393888730872306480911998213843957905357476012376698634924922495912914921453827738297650812044619358617010065899130980639696337395009152814755456942951547520053394519377575587969544320169911260972922739851643100628481272712899637092173422127771020340971245627030247740233270403758373838206278820115955242500305573275928791138408912011787157237818829326124110597587823093386257773486768732205854672173118834757415437720150956376851379679684077399202224628989776056461578345851883812786792633080268921485801911971991632212776111339878471936383608952295202534849619025684112367695379043208425562136263339144310356281058378042245620583421842957452843781055860060148602348648873772690208834423122205382987022864075640314050727201217411369776700268589371509564428141395443427960742518687988943681617227733919419903098477814656671501414396537272470627833501409975970511496939382843280269055524874991669839509166785148864821034703556322737888816645365420038168670097503677397178127000765144130872804046458611522820371439010368870780775789625581959051910270114337614573056389074703349304688460958411494989898428189508169599890699665079724446374265672275072408590274695843023317181329184079060199130438803070366409995628490769713520828029871506813745169123636042036878222939525791463983776328550146109489501059395827709052534211013722812964610669815950710103680777411121236768324739246158708594215391017605415261051442475251505719349979614163985178872331209275865461765331156923628548752303875970551086317135445453170907939778576198398801085643481605053985630067482768940625852813239502298522181602766085879226322497505952268507262665865321475110658337513778478823448453356776526844312281678839500105494682276097331186977768359649050627901902821376164196528505646204562472364928218470014484228516675970241006844537674895336366532783773272946284790424961529474425286801420846061421318218963630382893570525521676214776741036159728971525588876675221766513494520270080881020773359569121674229079557483486087360106832970857158164608574532695142046784737824224197010051057326449689804361675699292976857536459456979294859825859470650732924579632760845877611253827798010025227050566396381913465589161894999339484618663269290032118874485910079009196726620965623634620850792392709104153930674914677210824064302414353678629705998662298368288974122601261352135391116988455869383056167121770277764332859480968321439134971164719091576863992360592314115065978958167022237927500071734331278707325750125336095739756095980429312036628526118187833716855148665746401521417046337933846036148955716204888874721986655256705188162001742467120674640235738402516145811687304014385859317508304279282822036049502074197342431440445588973597889611540447659988691164937760325913586774620907448300251004553351794749972356818672183942075678907650556992113924668309321174258351603873958991382222556334354462247999765496538445782654151137635616256245403066412986031120072910792614488135895050796307444727408730228104665028299088560997042537630740591466873673992654376742275943116975460219279584304150010815299759875188371002900379978569760821054651617936433855973278881977737557450329664222589926570543691723417105902103997719158871560730889483329408696204732534630390438875929180110263294228342250522241762375765445276570177168779840741828139583606226075395974315222314787136537396360890002783441346510618932969417909042606487392394414795096516438864069072826752216395525060975154064458676551441759865881611649598763913404684192114424373175188035095047468864896904202297489705944640090730037204005600874306137521309527111635553516489584594376563982258322348427560044657669952300813074849669683915932185444536634714304342683703143282973965842844426479138590900470305136412311935668749112517845744650728850824628026527611068614691468510129901754122423746774252160963705170902931786137474964280770769047313779544020065993094884475518453470079201535374210713507791716862678885787553349427423762624866713148830477344814011750512613904434617794232252183762474158297942887715584132414109793131841403966928253949071188728699041419907225665113314393706232888069346038158212164199196641632686478443851565939028371886769531763638357911762201803858074445620978588637246242017898918319550426701756054001440735777856736379083890632748464578564754130379129361483057413741300299052741540034190207183102171359184921358516506247251435419794193100574035578224933200734931991573767808729850172567469014193387960544623304102698259152875097259951415379045942375622832921027639432973730550158469801756931918417685675077842528853351647297119490449406973763147873447580043728338636996256866453744885932229347947707667288815177832412183848380996021689302131696506380807897102244774607911284045723222048515957209843663574418076731073306752544750146874715734078777533725655554944859382968729941536202493572859762010876275026333473996664888447270738777062403179535974935116052580049296119781386147988172230006556543592507038155427934150602490625309535910949850338058904452683442736972975249733683531261009246124087393416345175267572007576768248224728788631486080234660205305217398854443759300542771815598857390027128038646046242724055472724001993639741398107410072725831227615211003694366081251998909655265299707119911779551773961108946740920583787609279014349450881437379574101204407784906989687858429983012280520881124052146397898087191051143509604041128153997985889519622999064822145865382183437978668990409777453896964820948997233832255573574596182799223142828249974198164392915256640235098709779964600493271803058219327641144214883452715000210270085017730030932024487889877761782102026713287909325897701982727431259163009560361316746503350864614607699619990623090550266373140680121875660312600634110160091206063532607537848777348319587894689899964482519214041469996712282668992849285387515388761026334735081522094809514973215738378335747969905238921641897409573061480892969919980207951112996242985117609946600670785010155481907248832963094234964453788689968995191876964215725397074844395553239799106090953626936430255382519140178242494169797661012849241730156931046794675239106822909672301917837257815571015117734500242605353335600675349007843456235456261049304068310139068919089216217475896574059051806655952432888900107945204312508747929874473684435664503598723683979734049405277146115966196552583637038969018606285317031072572427962336866551071219848652331905612055742392285705258843986435609921624404005927852039410391209121935579625960727799640090026419566649203351017176751035324395344078600813143721596716564523408301355480764168778427758664364665603929212294788271889027113003911667953322783545660817099019695422911843804429455615319068353010366138586565767253758996091081321139767488086320467204588770932805248800887890938615227982364053319004331835701050419951271587563637599640917532753394401679316702687084298341450034178847503286348393022667241077553494702469976003427165986832012539358285327776870772647177772415852686040760774862481885070145573213757128849194852153226385071503699753844797920230833001281041026889052059639092405760165177552116263586375832296552732469123455864799319279779622509463345345271425066782721449864071702738176839413110432695671541171353069154191441871091349001108641062194996870013163673139801659496554680930850897585695263578735125074914109537874438082932617969349632324642661664806215874383351115057825975006737756181875370628158811151482723753081352748296008237389849358548990184098137985400895484173527162064340656786299166109715007364990663496249082764906167932069801862003541031129832784866871632976475210899468870734862419226901178679984210741513653121459994638978088454664634818822228759429179864885360411245546217315654610796604309106852243285791000981192141326407796134527624348125613729360261065794983432992803260465215420044768172991630914536662031883316895842834034703046694224270983927611455617529278630851876003017760631597390845087399487395425548431997451381909344846141478890366228571672928616204817195137121680583597926100987418473354261247272063340559422163887041320788680811703416275825699262451791111725757667693863866131753039690031351326999684925311139053795596584927224813606898054371723988429266812800946981601080781348071195442448641097684474398236017387366271950669432308249502379714642323695993836121653996129297152794698679126584490867782075366964227495190531258217584875791220132893054004720464151880920277132178940421500707012383107267475054389608530228750951945131046396357880297104657261447182050538172244588263559779680883860312478653154354622086659329350804712105063858168986974709667549600178960588797680645360305670859863518614327066790227589455336973982687937492433003094201709607938031687207334954697738491343635261810633137812559682760987205434817182350965508793903617706110787287220311614975645392530367048935213941642578707374931374241445151053574469302185904547207396269686987275224971316104393554459719050944681823630265202138292763867536655763020392999048061425859981814859148263096277224475189258492243283669376237026836405409038737420750105202034718217875088702881754057151932632342530455257275559200430407299917450419218978360415129766601747599305311334187934329511418133555555477169613963501859297371875253867162725445733195670580599850498217105915236485810343146603269213118901940207205639997964363240663560626314164598705052874861203955335263963532093105749323775021111547247457365640249895993989213897720850735453738714364785477462426610889061698824363398752053306427022452613664386559415615322659441175310758990272898533670670470272589801439832936077276185284304435954303489133189397268569590018139023903091384557629239031583204337966566848585388351998755177020757694406837987322954279938100934622675876068343669365687243965006493864769347009294172506453747203428007878376327133792270504218808136220092585413097277547019200734662805388968207264503796964570246847618789211274403120525325170638302543545393297539966754148486927952489138256952565746819888149554952975943555354513188589899021016994165308118413935088982457697443535954756859787323310849505708840533797897244412746119992149830731094914127867527102656479819956726419012787780060024013729632651677505565153964133940556449147983365445388790106828184751031359856760128151448527497559243853045051979721802604888338354039453504630147690736985418497611013857466691919048616058619447794291632865515995782325865827655929438273820708760915194906279239645613589223547191868416619613977363024764337591698947946499903981380995598244314137555347983341793646601712221027608656739252240044264798364398635514358242483334349749435881762821716682410632180834550990016562742273250517325850429755580869911630863145680108316616589739205308795445384135612607547037435002150883012585812825951196756957767724225161741340978778934314834538302991417500390393244683819908251497495122682373528404115877506586339412463163580924189458399913530286704559840992163096768920736717302206980370146787878170373207951745687586166499055251606465902210332613049095848797938782062574955902245684103359835923685714465049801116013236642815767787072332334385424368992053213718650087927324907178350096672981906078365875282001201664748924960787589239032245596589925397439864835581960981006742732362584726901986277716816495198684003691897298716386079371275588474869936746770601361455274118581872101056215330186931699558547684323788712013090280538233089011534359497014263874142052084335823707606958863226870119984790963338384897481507445454930292614946193137767126312957873679235088011253824003725626033640193411876712377327634667418511367581212348792652585092481175582403751013248349065843283931987536348479706135427866734315113047436039520103675625651451628112183960883094907511939923947685825451243610374272693428443563614686012718991216763784238407563998855398930526786918913717411218812841895025877956111668025839489503886389779223108470111782117195686828804369257252112887962786515983293675218222785005359784200966890346508761215430324367997104460936086026626079476394178318020060254231347006651948325509973964347302613187347170486724391702187862107028585685337411467458814908291765492408588378879261114398528893008364513614165915314624707832162569683233774231225483476366656487070740873351463160550537520562707419735954282545098381262164896551406247599206690268924721703661044499091784766489980915475725111667144890967866507027025137058964306593696428712056715995988584343561734735836117195462290805668268018485740516582926400878721140973451347995759204113028747733203086424325518660088448920725618182632719043460834600781067805408276343906054919502679826784673498211439599039064173264338306721549748727543321535997285958915144674917111933271261140246276537733078699798339030126253325334791690019753718733655404554728888286426114684475984886586490669314920856465462400256069757950271980331220248829721592622649418603334987085837511602445371610612066092140684768319709793793270616951431476889880300698028927568640509128694283491365851757726975433100441189092024472779952027194609064956834894258886137907057951226177058888310245434360818232369265900717325680551847482142728593882416618651211657572347528040767718212222232787787215695483739608722781648111876204739029923146671288845217240389393069846099144234501480986764528065899349101739864492951276389209212931623119810711757980835781963117064751997377570615811879823251492381668580364249240627701133334676240461113870158793209903269820992522210891650320799350836192303042557264649641410994955795215462567236420126471165851585530026627125027406604916036858336940668951234053874558802880461640628905220578916148243124216912367546888939139505167221028068412059720010567524525691823275083620175307819452405496367051592033218060258692267522577735170301216244692240593542015137878432233153656634608060716661303113777629117996252963743481924686644280098233313746066974321435611912139746989410761259125496270733865788148430792415294875988749175530403427350743024654983960712657675307761323815433650714904534517351308376530477700339819024141824230401108022955909283966708847841768212561415028337048634600472336450253662993122800828587886026275482818632957558399598723420857700142023448154604643175304619690180287408326768170535926027440034573276300541961943227268291792869721678129508397310444992866538979724321754097964163495223139996818497335929077060591370528401657123131845503456843942750721500016474549357075792788685049188795088182720141210050789080956987745929921623679662363818633173658578828878118876480835107431331329727992267107163140282868454019831299792410839502378829946214316370016862960552781204511029270791324102633848882894140880895249676068698801076234957896299201524807542873672673886879524129585953841411434821367386200089171388153411749754488340246608249559625481136150217508105888155428867496855190169856590748935445645911984779385527343583799211620778965177617439539038687396568686795143700064371706685169848008046597986788048064824442949883836973468987478465274082759940245983280347574983407491235582168329345969296304009394390571323129502819840057574122612858541367285159179138230855449774218052015087060046853106478610617159767044159381905631509838878797938569419826556118858272104281216442181208676160122476276404148890839172110646446870950278245608115354629913324871498126041869927602838502303921027398701128058283936986842905708496877954876454433301452350866252571974571628613532201438276567772075423842336292160159037792121324557213435629520193079932114932548238363498986527130768840857215141577668774879310410320509044313571331563205714423651645135385315214334762759835391333807628087371080625945426691742655291742542343679344651050637690948220915331873864521301726074149841611138451298107896667549830171631608823212777070735673322869475902292991454726636921213987450389027590170008657223732791737185086338308228363148098442963074735963540384379206181485352962997114872230265677308581919400825222985384378190686004560934969562479592684124360943094414428848088367948715398891495279311867234379985730113820518152105638137030803079430656437571605488061658974628804016169743892183312011893229267657584342961653677424168648926633115562583209989654988100099473021860849859827732058226839784403664125313300386818425656735879055869529118535385477799756626068679652331291335512784939067901185791908381138721105665969200672253443446724204110975494358222581594181114582492555900424682395134329298708583800301744739127930115631062442953611077035323615162947390588528552489164990396536370587968469823824104869203931886277454203280338722687593242415089211715330142665694339984588482253514824559903697360516636298583814213147432858796315213211969029032688008703232283252625963256503768386365269330989874610444830032219836511973560814607007738647623899830747272266319664611960004201360713127261970717643810168664052248418126096480861399065094242881627095493626259787412985457520806099103757219477553368005487472387272700932005370903313282342795341405424706935386938371631078660634947752020665050838754101769212880160370737806256507102090327954164530928655436894613749913014214877905646697344087536336049689941580872931231368755673764682285190378742649170382790314789050702305623609003271418738244201136533066159109196655028804397179046104585951315440234612168002389490030482467566850077657956304887742794799940968539130665416422576260336866645986732126792817494675051727670560667985507707577008286625343707656716659226461217952295256995906358548664552970342229137057163848738715794049927166863273177539082227873115206102516792988470318287629317133730908768391196052832408281125964706248385438266319184013039022698649443596653721020319434609933970238769404912792021474745510913724562738006715057873115342724106699605557451200605585560682605285987636199857679663877071345769642863965556338947535628069263886224630833788875674253431764189723163528609179191375514191085585155627542650234948804642871806603593969962800485933866517692015587788839633990058864776772268909128759341617186931815792070205126556022254311545864680723971906458353082020657027097230088330650061335522075027218732108395795101733265129259306572131879587442366849144133842409494593292242239420205859001055625398263434573475430850622630329154552208915082816777502347709499594852151369496628251974113887477377641586661491926903869713537307009291906113045136233379610941005129976220264047956687324331395143571493901108218952268177278056615147071340777413174132067757896536977792202807266813203332216477023879364804098643284789242095617507667669120159032418604486141429102591332953417255547178807455246516695018923735456162999584443487828241196699085490307426881584217145509771980433587480937721948427812500662479002357398759581880239110637699206489974669900745513513629363126176983831199158174214724682752988392798164025292211562621138139240186608509738218859247661887852512662740432107738104621455682099901764872550565721735371356049721690625990144906737374788364073890671833114068001076240995790491407517801725749241759083898189821888680730765928396023999823079395927100955687692972039859495848177160639734455153923830810495194168087696217542709001090712443278511925591042688333907561568412775316911024160590765765142117069219299661336715555772015912391681477352046211638069898772191780652336761367276044523081979135994427226937929590691316420612473012269648269335812985848818937336257966805967893141076796841813825181299012980675086632893957409714586560398267580646329675398308622112679226326403698249966458512160944671397802148859731293412337555621994682068564230373000932115177215733433856255498877126634650864256854288413917745438229027968049100720711475587414948387271704760417073888970353383862023297313195172607369270315710925891030054345409906864695052835249134401724746748024932518738989999746482869360339629549360129713778999305143542273312332322478935495083037974980083006865424225300805878594831538531607877584195293836017549720702237245940345544670454957214236448332068005404367123700101531091812361707753691529629535697851337895273794390389909016543413413894612071800021287435969189731429974956182578424055912521802270858625126300186355928797615378071327131645649586651335043017108545177625221669192280827542640068113528654898023312671806994940536107225623987130166998915400237613627242827412622669230965720664218211044548821387281463171059702978470215390595129349180055345447391514047509688257002910190423617133122958552947634562923923960119050848933524842324974856941481060581123142840049841246166368527315905003213886794958960667794413699365179252832250073126097154122803090838734020199491761343662311543892279721278622326473413732975747077262814732875259806904754530349575763964160635608875618526774062608153169687989188858029762234824161604070441734304152268218387188259597924516883445751983270518269192962734222671729363647027634548920239681459495678075936647207449187671118274305846820720159046319294403404643828737358749344687697878732142837864517014664623362828004800710106249780452117895928292440735069041205650644037053677932548629681351353499368554239094314042527886814973720920907313733970048254555322300082744844186922200090742143575104775422964668570881389925328483693027209358662897833383233973733676965650076315470588381774547421822825766381105157952968582618403046257638935862017863996373692642726034596361148294005808901820717725231672747295984601768058624641673974696011194674070015396525564196807435255905460192116490073761805636842076611153771289801475200979987679157650854397718102773034305505707357822006361613994909104226771289270865166736128092807158604136916715419137666026306084356565757915776460671936465049748966186197115933144368705016077239827865891998678811184348172835691062314609985136064593949783758503180129746774395772310002020101953269708196610087179659792835595706656196186446503251737919696063745318430611520121463770325937826987919860013844997656086095138436487861719171023877958256686832806191933047319743790843725467076573970343780748468777838670654640103760395479130813273642700077550601247950763332237472965719095239306924678026149183027871381834353085197713715185297325964572305671682299408949421120067624352813338646241881294947966920987146045073709980786053970011451044523846284945037758258987338479505294674550936524138316690589408627577742062492462952779785718303891436181514159886406666280512753242410902028402140978208684401963437394032275355430609854166114269574677805087990157471424354077521170169135368709342319729441792138812265492843119262065518059489853990313731020794272500899959951344348207704110181943617812772664012077791767345199419739668981458988329683912059413862283144856387277680036435339621301590652923765391350164526072559879455118960593625650531807487247450090206310578500625463274695680934967869913263517939615921924011309844321646944422067963205707060306107086005688358117303035767049742212800404691383043980610618699651299338655067105266778828071770402640523943239004858466055637237242317635621232393881654161694614189132595845308811064096438736333036462280851660011590402281030194813025072865109788309525764843794963202708374709352568493520795776127975187188916153908144035944570343219586769171038408731788000041509731587621717044667859355392631178120495423795205143489034501003391093032446987419659828718151266875119099747951055473269835768589693504029548868081969895018441296711722297588139332563702167237241612426764189073284027565864359172009936257886007169767625823148731040856428842249776258011096486426734058024286560625196150201673394249894839469201527358846065276359082181740676342513521377457744034350296934138598451929841865292816311121338506054047565660410712490383040891863834492313520552483536428076152757463671728485117913622561794835995627368937385255092251002091121724566896667052104638203365876550610716726712215378948986015240115807787241959972772928212003912099294996871097066984566838783100512265596491117753113310337370139011790042192639949902405075424489060922206629470071113067310145503809113626288679930516492151517316993939740375232612983706434323371961919014097111602755376079777531148702308154865700927287871873806518378467856540077410849698943501490893390126814059814792936621815595751203664365228945701279703793339937098499139752937259841218127630333283106438413278654704896092798286122410024162978064148716924726380809324375642338293792147175153230624865984548686659134099774636215598460731950939164133998397477025374988303254291937736292498784160361419651445542955370009339833483983639956543407995162252776955382203006194411486862240757601955176940570078803470725055425596993169455464051164408348727449405652520199294088877637955375497636633650278725180257252923385413504768344438297644604559667478050423911229384638539358681397727960424887513245501477625429697535872670127771954672587011221704912501273501093395369549055849650005166126110645111970798230919334482887670047090564887008611180983848387779039816379004699296599684518118720142779510814139316420466649166800122406805326094014546476709741800283135285091326563912822417186690384827519325354648182714531112258967390350065767834272839911618929227511642543876170661932680432846358956608799243224383023429304088418639136434794416458821505367259773045889030470959162742886137761025933785781608622831599153672851917778073858377911923010821625350519361604564654085462204250818975788296339330416319278659654298878287417822909908371440691602547161565622594434739963126429717694730253732255140496891323742091086694760299370947157890163006423276380609880534315624369105295327672342643777524402076974795899939167667947586145082977571500750400917242514415760566198911239632222146503184987316226166853533568528074923381031869083655715095154687941805959971037810603110764497372716445836893287714280847446787348695952879993364581520053383718437880838175476806566157428486881590230910352830116111815958895191808478843470801178765691092061560355862612209922837342869423241908203957049949306770547437931337324681793950776322956415899836100859773073155755417222549425789623186305873185758374400105140165718453957205525173197522024824467177178756639364617198326873422709882676612116855817571639735113153099172628342243404922105287466462412677215420043044303489594681800603553717962945422014957701104490713522581624926456675211324733764915685808877724572042812558489265100357486214266060905439102963291163868021326607272695378928235733056967840936803257154818377655715945003171081227136262055463250855755818646373703677534286216091365200893000722463689798579801365709643650904210394806336205729787116067876655564116519946570873750432646502361067042281289931026130718747840150893376539489766863760615239221544974372578193223715094819661476000559940822058268753199943754321536293325986300382648769143134597306430264475563205864224794727482187953147149481714554696969386693647820220511954393252902140564100265222853581402486327536342286298551931474179116883559419970398452836382852053078040311673393027478845031644125303236637681152598485292605966115715989025568050700435766571058819725593721104399743157393462005337734247034778608084440806968608098640509237328682381431888686856760043721758110089988053846335177422403589490188405688007160412563676688389829747191047030274993887536383997876896875381304589491068135701087351272867638098422652771898961770403409071828727470933501007317083838409391152062841035103729905402199955060438359982022868324984975490611563439800852020530529565740485996774041074019106746016681487385471272956848671710205082243881678812514685471100840855950527309899335194925341984703711547774357557165875283452141239759326274490390999280971883457786374992088443421655590953057545281760337390135192048379539043913805978035786223305122459555984240804140374142554909480533206687875282243497687895163921705022840522543769828424388851317511930280111496737351778801525312003764875206898134416357285278134438298646021600556054997896402980092825052656207867265068743490976829542746359468090934725684648907287301432479445306246130712966548457698797588174957282253961769447931459440409979335043817502011306921051357806008479544633682729611879640484014982367635385000457467357601525896835317232602094391089027794401873662584755048263364997620088297126308814482992840361183723439831516785474787537852680956879283463007706745425927329183611344908782202153415664617299675763625309860040039736124217337464650047175798824675425054254143376452465341367445672829461278493490097876727290340410825372593445915526678342014064236970653826026004338524973896284135138058616129837165340491144152676889573279351251301808323773879505773804678454877983983988334574928435703148813064519799665942263291280294916085937521613064380870141117948237485716867323694775966527786508455944029235179878553349303887003752829053717920806239846401664088226131099771073470152627003777858229025066771002607710879223759389082380967842106273772462027784927238896775698786102244847243816244297670902886533711287244965251473065773519788527727279057824712302249311653111662518994229266435454826004890599967288653842813486723185512700330879356882415532639325831791701968651046902415700417013872252078175969185099780136831228938008369552512020061683658408038096105996724455580853372855870290977260576859119224652880666521275378064904466533430524655110722798921228970441232465779121296185362812907058191412961726991403097466051752339661273893176938951606927381126983807061821325930326584974874233494603981756506452173379687429351713723212883518125464014162391154546088854278024150189414893540925442459921011557875610759724103880551909824692569149289287229253246523093138012927409882936734251857809066896170444047339148475991745871074789430964075653724793827764321075003734704824299141233077808723647024222564123561582210066582975952909279612734329565867285825394147222832192155120813664344910473469812974449168414200830871334192489323856700952202794680163161122600945072329457240212753274989128852598615213466109493016613742534679232812859546551654470274815418048401811191589691508601718323322907843658397137144231855113440824353616468674354253444917053803877119954915212984064917567319538802085532030443196820959703584026148521685988812663739027109324968271617808853493103867512102960203753233336529723176418685602321757537769780685792150174224742068006970469671287092758740820657078988863975904029546194568081321118307017246376976530748362782488071739376644627902673218444548022992234808571042757087131532549816725883021754398385968352234717427405846996104911905087819880726867051961408527709241349257835158643795523081007402499245240340282345288134629335161748574075714207643960540628607551968213887591081922394963954158476840055765391453298672579572953064241138691688315688986230234983306730291591081736838359067815204107343451485844565318236548616993626157595231782718552712783772067249963962650901180239181203380547755312879199893274659961910003209087731956040848782990288451225870631827126925095761699638918523659118033934221557177439659882493597422054813561712386252801319111846485629290287784372266742225447777723962750871290045765909888719520443916024175565254403027293354085442860355740677749061509495485064841748439731080403395561128929815215203607101700943641767480372156720803959006665082384756864028334519808275415135717175637744346009928660980869376152534797255606503591614411777207948399302648494669679121686879524308651225091022262018318835052826396718410349521910005803622944637341353351280396600930017292217439479864316688230319323597526515868118273422038876794121177688536048798685799471416456249172809767107044775569514554477944743005020470740056374832956092919236236392220056834683267255711662551436995677602645891173604077922759776503959764033076893396864536502401675222997853420450546882533810326756097746479053106935897084524758220628460680526426966898111914015900033810482022916499169668004743831776668516274181828271396606770878343491033980515036061739510505205972745824319845763540045671275808747707681182630561017868687872995365622876788802928767189000844390260394421907042447332912580978005882045421417166036608729060981496290656037808665266031412934694067926279722002054747986097894149508971929557209766074885314517269799663520240919131459392041308434315875866749537006908669804442027174197860782502035764420503428708135506664220352467075782192775161985092980102826458259149387357727576822192986579798089531886219072526152260610802735921227160341664667460458837853083446846371381015187456115052563631806793118635922817990142913798667419939242717825993115704368217063169093689056138841169526255859588379678221218007839378505988771831061755910792250075930610128381627023917249795924661976628775509715532041422628388825372494664186791897337313954476842635922314886699509288914856551068605410358926993939388739473779113087851286577914851352109627014462187568732777915744330307650403742176773771837548522437571559821036360044595310821230653231658411905361788214243211812184070299165726105330791229232813847819155247335244139109532608765922175983283518422677139247955304597727000483823291582313073952010188986410749115549875331802956712575564995573653952451497624440317693708875215426203411583757209346197725009892218603186498946146915015146629891350523074178304919893869398911659992602141365560856086278924737490493055580201797327768637329484809989887634727523234375384508012386534660879595857245849477664927243726658853942103270636692175311447839172625369405538274951556903330341340240318737466741805306217623335315267587146388575564110027815724305069405626516593721207093406524755239561866778060461673656015388119824651868218972448982254905400446713873881694197486265214696121561413434953766593459212629309504346621809212193872843581255964624979931308794536718073847342304723980492102936061597957235488066902102246446574670496063763991048771301157013816635100344148544804415358516611817548247258992621132990152937595893116707177726163638836376791964385273535738610597221351562676750469378167231846630233251288448256507566740161124282801732969460114842778640874394489824847194568959032777703957896683211311821297347157903306081914466100341384429871779145724310679172285192739205920587581319931668580988688547384693229134260784395040719020732673224285674698004763833744036356768614967330020766573254151987782360199867684974865893882814874939195844115607540117170079732377824816554272199326728567271712178506473317940115440983036473373757459607071739150980559216059382679304127786109713062095057075891286099600074104985770307824775519894444468722956327089385148123680587992149961437058642312928142332869583792599876113640611919471280509946454251474302583223523455896946841081780297179681700142914650691266612876868641540541047104779042382652967842537941495060320188389849883960355014869572159837814754097725039862151881305084767701832423069078293216352874525724306351277060433860200576048371140400630187459935887662078576174914162931737280258956567943467233676466391295074030820869950651933865446241816178034048692900537064020645106269440488160514589958027235211290355286865176711766794174305986874074199783357315628198480150842721862812059102960652786094884164332916385042188921111103565552381382077921218789663872179180632912854111780101192610923924703950509553632515108204958720019670536855362521200415286415552274235618543452705079125525060184925915694897247350998660530817231149336381390023248417239292890721978803620533008119695730277319051861269790613537964612674382597206666054169681162670398107469202587054957309111249287877632070413014897485346320019005372579160521403150868324830676481597159459421082521034142829344049694616949845269798013480321819336017838048732484311297406690430279631620462848499512482519131382329673411604330448905523494801644860129696903537339821489879730049979984516770918388325918052646360550652397144446351369658904454543745522418088239531650759482392492389435594995399068458811767928670668582597199240185739253807551217710836522569573595332391766535423723858361247682323093195747120691951258557878897581357397304007496412362927046593508928611048945611498776185633586115762631738103885115125525079861460374341370399602970739148723892948617299798375283695893546299662925623402379375763853111470458166558547496701953094238930597172742997656364953422766127569902937786387728331022721374583656162237987806259128047955547611075263463743587107443567376951936183515016029497075033674165179454601855571583483335534329641252459826125738346404574128755499792444396439616522227655692531367874471056401077372146953328330673340795011119181047046120873680770410456522794167600522310399267082008761202382268229115933539211479091444920639863542117430787099250923364783480391905471047310364167125078190869373113361463047288069249947811499703284911169617718052308921164954045556869782358549403092410644912325602419544366797419632709329642575829182109105087394607151787188373632734039336032881345469449774480240645904937113220042003205367792202906623847490785399483084114077318119483546028380341797362608253828767744060581439562371088325911198044224728602045814249854471688652076618243860548657921906326760221953090382359217326377358527177887234823415534536110493219897614020690991311280675911602191888716671036779418776622900867711168360157073133523998897034760285631746469004030832810627092650465785065456193772529216387559275537567993303603507303292400779218405887100855821929815678746062725305600228491823956620175530873784278346684020509929763518877214585323296433393188609333401004396781634427214206571789806016353328641012567715331056403885133980669979878846090168198792781754007256586478916294004495048345418965853123410639843121235586222828156578355822409685775284186541857429562263363905217818666545051348584142005337769718883931709691452498497245975860755416708522389523750894374287992130386555991936665088699706302550374093470350528699647555173552242287260820726362327052037725290942847048125341719217933102095454966216065390115265419362257646964037903924696762707140462020688111993587871939679538974597311339375515642049585767531513344755624034635208584990556913495402218404204498783835840971876553234355258438310984031998051491252664000844190773919428177534616675791833769656971602245668404975620982078326793580641660167408683469434458789765278675258514124122716463952386476791092062780050628003600526528171051984928396491279391502334019280447262527838642481057338527735291175829254999881767495791512298573501011024748550338674146296645435046134532408926771668970535468006767030798306634588430242015144101049351300843672123190718373129996151415306214143948248708223331943789437106473972308257905445210480406660158310521527501642394624659161560830117543261452612567960178028965804605857819207442703547501257628897432521245053795010778179390667078519051005127965274155161810640144864550279240113893680497933958805492117121046028063022424836557147680979131893661647762747945688839322018822180715423529091880230958233106569808804073065646908472404357856208633625773328727421935746233429067947813010865943111351443270273022952021626723122107253733433480614527964713339656705311464597380328769186318069608684431172513864152178132673155620626018550875179782545330846667806153016593977662179467280044366731987501588185830903272592331820158325373343820242607909833015936189543203456539138517901543398962331499978276620668002184817157889356256673427025522046333227119876534879081105563253615975786956502105220582313136798418512306132680374187132395607430244316913009396545072269648259219040870077372670978479300980415855390401961158898543844696816220902846759025591896257324216660184592818959603848288462976018423013816732446927240693109337921188069452281834034724111080807323045205593869208047572158282456295646008180365059822863982069736625362480833330780624289111201028834586821816653548745904375382671764708802532992291556546753660021698976653803543788796915510127101013630063119152525851483966389992847109656563877508807573666937820763226334264489187849772157226641671515760562321089131607806994958172392392071710652977649738544158030265356843743660903562752164472868667602692057278995950647272910241418385613281789943369960911782551363739467280018858633661207387918641841444515718559365088791865356118172753720325081440399342771661628114780315034934708748233247535173337301986951269134404713334936080474098186997000990081079077458804620725036364999915790519586034204662522949521406253915372920551316367501650588200029081693080780860172187138742410456717932834933325562500002542595071577577462168662622013872564022995729840447792885518203011646873454379608850038468801195582271309778809928277031940631731990097891775897287902393524110678189143725795491336433969684531272382714025227726358866717404800110111872387075561329861416604140155419890765438423692205926087788053338736062177714100750160028001471726064698749752957474227997100996114030051279371984242385142491630496866185677656372368905030872065132232832781890810029384173745235482116452107441752658253840188808041850768288016805915316178681557027531416622617936781924427738259889067743339999086437432190053964147783936813029107338165827708832892657236724925734688293695693921193596534800576432868038666723831248553356825790309432055653133429020044597744049635883667116481331318975037848292666234882841307532886764256000442903606538589156044230515777933367684013927908523550653745902449099148245382870780280140980810625001358384688393126995176724340361153040182334398589105331258570829454052955748483009260105961895883530893924783518229145634091139773498391169659922945867922638172567178318914306890658616074036860966046005346628825047005636471976288004023886134944402613155700323740587313006995032472847073996423676994149443226114012514507774264176131747710585429651905091943528182804929354888989712182728663548396773976347548691625722260977579294057548065840722306237874141447932961523618661247020759708961299514633066073126007281496532728594139371205208903575032553782683245617464358620708263865862570265891406340463380587867171429496611909603884658255933976328368031795623785884107347266243087057254270867580266033728942143565154055318350576132319303820527338516327368299176826146941507749324852060413520329503084951626150423477514061486750392385535850229900563375254632296372662172931599816431842397901151618003584982500444091183853208874211387972091731628974528348461132729964223257444822755270726334288148570083739414011865509335012844652899082447451812363691617640079818016995825504900089429425495331901724251036379951571810628163730464335821684077929098849733313444552160266107718350466462707834103455969457309072790580058241086439635192092180540386667411702496445027164666591738615219412952846382647671618690035113319898977672554547501746582561894309174640707470557301791955421799373611329573781983796706978070563710114557468709588356660164942442287185065640586858505542427162443854153262694624267610439968565202268357708732827898917991825293814978879487774675739675404559305541798531708382273885439629407012187255299905416224617891538294899900966519256617356310628546171626869270729540188582416953376108794554402269403548198857921617663590194414911325185333323509619390251326135926330118866280722130539910873516053989020409936309248448682491437530518995560339230772227542199457569614652466743126260756094096753021601187879759570677492981481010567540146921114457101752052761239063549734631039278735803883396991440006904393737340553957953978033619770456268994466712331145068688164557373478413176842306494394434763878907340425043317464257151513272484176335050877844934184604121687035386386053339288557098463963177482098973072590617812323381784792475460421904269094929146244779582354989500912722412616248784730554437759726336636346464851695645945757681231534296370624371188169736258784566153230558996637139802871563958259729985178271858471303308761120011253966020289931568041291066983742832604392302984832713842836438953706279129903703973203863597527708357468821531147697265909120623044969518613937018904943324151530020308311800254582057924226374060429606043488499862025371910641760160659715799184657201446023102992603113844499325791917462982901474764108666582471133187032737587919674279161973126882932103755055957007107522106643890621373543707996869571248106150153109515005924613985746729309933264831532350644515968812534858226759636635535381726097761938616753254352059823482105299067890881892759545419875220496164679939192111190929306876993072957765138622342760100875231786188440269009703048375466690892926657607709426377376899547186912171640595765773704473873091966270752809773945442101763358020595000455099110448299346952411706392067859136176334498292775669787560251086757145665640765428950392308016954063978361993427909018070195209220387307908162019645330545395691130021891681181391121938055068848684307012810452870705544576339669663276719603544700157151707615749199755887674314190289183214345925404897869943174559269075260324788411737391218469705323184751645308745242443617116746947953096198578369598481868833581301541411060933402542604746469009993603904161083052146353409832615952387833213958675491510987171919020718301090677786122072658388763496353029626412858925249410827018239803554286616190629136501034503771009911202328707939350297866178804465400460586405307717315046532697202408303935384955785072665022662470472200794863725909907318396839311822884717320891447584964789194027814219820310058046159057116716345564784303439459155085159691421017305871164535453065099011575977945811069944394753341583407653400671993569155450628191962775314497082694345429353216570864097805574069140821211836811723717124185513316371275252546758751979509542925715946381411215836240125130042811128304886143756963620931317223368318813104185376823431456005045203906644741602337352201680806391644842210988147702747355251322107993579343960978841680696152266917697997927394249653488160765496089276844033675720802568036925442028557078498598642183614905770078624838836653534354926536355917291457093936795945388339728180143110554399929153440811127946750766561026206686162498980858121577583954489314539365117658676442200543308835061259166827330747980653234920727871105151762321841444784515136322018784602320577679496580723451991954878823703317149998037382083843684595032007278268928255997879198160686590446947327101323690295322444318258934871785982107019615666424434876719968731886569322423597518075870324155807218385838563855657424904712521125281049347102076066237271302405318257212401166215808797363570415126385338079599296689081339534961201461351757316251686507083869862597941461423761355077015310025135655501868547650053255421087026178976430789282837188420362729101999504483344170800370446124181996918339371314837466734814280156797162566698747616246974368297349128885372942836005395438521698558587785537314884856353195878084203931647576954132840133151767640998202891836741046334212392372290350037533951005999295634756771526327644959199182135565783370360103561352052806007698801422738077698177426224261381575244882242129734453850725115743587708751150129445304856737784597027422148601186846686404229668867544001360510173195339975980786277201463363381297939574284829886569000019029490089384791222135462102271481127358778995354213077748088287485038603610853962950399264886448512960496994461410837308065674223307144785513354205935056935865824482709009307055875257882510953509152329010553263506181315642210329638200078900466610392024058033379373802677879595963387660446328227584527244939078925338880128504514509801855665435465152920960011013601086601616359913364251027266824388701401516848370406597080324548622701255248198516338642703298942540522673127226674927633739450721406581449261999844760711297834505535334528548807523977536567637675535459827289024875110673670139137659579447955943246019994365220275875288661077099343550018951200974479071728620177487049753725440517110161853846623179467961385428929651173250460478926894854216241461153941151180821232003497132577160194708033765419813677566386290405628579972026240382691964412271646581277889361210356236109677070600746002381179421825998694661912038218934277184134875057594929186769819433462937873338175194546005178084277917606626314118031609317524715787592160488332823842493475542590292491248270040563793016889592427218152366549919426015867656064730302007529310857195355263792564387220437443605610494793812498244258432225716787208060942872798742552613410339514256896279473317211331544526198338737997574825104064355059935768366678472280675653537478732395414260034500090592430010906184147616311985377223469761195966471343640611892616711165278518757901825866845971826274740868657258553468626558499113509647088034798764418362669625322616645784036936345534108999150051713929806254372370566677360239222545945643596659850630713111854898305066180478430763123397065598595292424119795860899600008531786059491230490822527767785433084692056905046789635901620891686839281196593765724836250186085215994987277867635844985958529103803559280946260687635227991453218203686073645241173604026934470156558526845709653035460318030089973695747438711911997153877332999654452874805621738150026997827595322772299689496924514400243907594240745733975970211432585815205336435724881137828774105106576615948762319740213329340613716601320026368924234943957241420180035097459173797628491818644853514774288250436192576903354419801439472127568466170261191766412388620669540370326296116500633804544563738640595821843935532133192978509113253477020482668343254099104925760757862743434924967728558582577455751373059831497660610440129693273901094890709473937454955903786839922525659535012902026654786281231970400699414086186826650650214429105812590071474150037319032560467423541600955896738990482696839053172708346444996395048385248496260934362976371908049264388786077675840761269527168130006803012595789497688590245911809902178512954291361720361848506023069449489549671312996003641427467596319054278505473939405051815667192894988068758551762662043819486457380677887125410022305893275318751858260631233515463493097942998928023940019277371278786053250501250480751596381282370429606774526872696075271632431727962788979812507736678440581436873984048835657563436403357146102091247912777876008728992954975865936815957764391371642074867660008597857244484808882541455850838676657346370288122211277233636314513227845276680440611246802069248251705383428824470923545429477962821278505201689622002759217100347505276742905436588141606127389156472409797935022132307887326068917581922404111074455818175360946095467212688813896679421996546514844904878545576961184754924284565987805224355653746893293437800382223686468761983984054344171022704425271921104278719591477849820235450881921651951868656825890074850258726115739049479907673604267305559145057812041724275006476241586895013084879179291386857290423760431611742937476903734440152099098094228472084680809091746454674030742683089065143752594419761633443359220950548557923981552588599147571019369916020252668513970694396057954043130287381882052232148035640778779174527043238948110573906053889660606433711842908409055736354961877189368085595931264280720790128214665556974108557095382287627867410781253640495398118907584719670470362317458000063239531871982712024531841908953986665151241862557188475667185508403017648684623759558300032453157437628767416662429146229322697233115875397868599780341935037063603207637084448703367494913766302160041929488648984521441973032687756798896951647009156297708375366187829580333310064361211362190628359729843736004931668539641357772385369504085465645495790264525542461063054165216864442506663468047615028057897718630359173386843876728914678556483596872823028022709429425288122937741351971803078142229185877965365981850175851230987900759902091280605931169200403279064353886462919577177335896006699773060878239227347301311632252437373434907698878205750348028273192170717102820882673009778610477809155956904535601349171220269515677815305998860571922794207357967687491691035719969320482393818071053042387185452603208334898186623450210467070086792244117571188929547239491005781045923903038107275452106246172769607982009763653322316795977461765609110833164751831768577028454496066030448198077836993644778756334120900235107597464511889971371798290848186873915987431924138448824545010714280356552633778417383283490816477061223048654642503026150100588564131016242622360912035574202533164400055767741730819644499292662421246736962223920845280849203085825366429176635696938475798454133531434131933329428938014069509937418529742183122073067543038586435015628517791777139190051845578742709184002600092478336569129727759956923975604871641958338049085007175503324952839966715543129324623115944143577893084813176332578607351836601861641598913274078743165744101698193306665154447468938670829563081513699733964340346263926978011107436123498032708657709144237507402269707926004478271129592940249395498927586977335307793569812531599241535486943881071062445350298508484369871415791923989174412479209488220478504984782847408640963855417244751925924216701691571404506594736630005180637715960778109410965813419852786117921612035829824031899795302717176352969199153892907698841280145338755807463125161609380824509457401468338054099306848407273884171550903294946882307590560095869801254589431434063945154829574290363883443184256138312962540949800958442626202596283452780555117020416710655030915771996453800838161943440546355504832042832629599507715449505475057319809362954955675678426818384985257807200232521936381262133053722717764390388164345537022552035378146128868902745191532105353100449973133312958604172298460615574667507291954620890631063012846413982781512783107642621185215855503934250286477819418379009388231639326943891723901480483488887554023131700273006921030326415463496334055991211141437552021744352721697962483622226072753712510236137071181016328609904086567201297351504530300678820296905083141361273534266246564628873765017647800662992326650869232730832341169867786328044526737237127332535100158893391343972859569347348104587407969821063583143022848413147167116556464610323684265023508191199879442145685778082706421840603003730614218969636351828578856330200832296750350215791977598188809613502721145201513041162347032060559623163861469817791398635444399724965226514665399745451279781883561564010709716561921999275819651433520746164714759094493954442988035300106423056170831891550677978771569101739608520371143528964179689720115928653826823827541049432507128966471289649085708240009048375070864916459587815784452152073343664705052579135361056744662659675156020384179081693344714684167490002667006170959039917392191584454810797147132839541501717967444682695726717550512074557829510561468289925765146985962529663266337220780411988500744080198267222914008319420970556694661259089149501430703201211538316845755999250568643953029106084867311470886684356670828158384434424839908664238578756897548650037823830138856667998641105036824066094758420992086924205031113338923453760777230732187871844151107826224199810748525435236476886457503389914457155033252763669209859039029885068866313751927466665408632069735256403436036472392340741099707673532096817236217554808100946109800533115575963259614587489300042255303366545383428282891934684200774405231287857265494369652943210745108813325446251744299946138220566746396226757588310714580336712493505924901547247619092433345196212102665950963584099482704558328788097993105346525425820898139140880809636333589976982996027820751750555105745745887532717589850019706802537463207581382282930373483952424382624391785190679031420510715688181900724845536161684228418082293936599658751795110922614310034785485388167243167627809732035748119971044858374793070282871985300993996990381813079454181045715329536512498553313936771369298654325925993124086113839398072576118630580225867842941406903918975026618344577517351089699539291936076142351800933497148098988646827517157447171732243105587660017973328936728087563290280060391214575735393154778358750125350466908962055078162256802668626874685036554392213162352801005518439397258963271822005046517070040776609345483629371793009974927325054851929704502559094716360687641156501300476712714855125007414112244485194202825710102837873944982858002897160267373818742148185404935291769292691576201652206332269357995858764649576260970437324173391041139914392360876489468473502871451170524224016303876847827159937130424500737709052578690382242800628018814895200737634868787078022405911080639607669117269044064435216042231111986987733035969469271534155947521750034699980966544458970090216248245870504844508886056241582981923602098185510504007182410293064338022686387497634894317514381386153432970739985056002520501438079651493440861008156542794564937726912827647049371237606004019285524112949375163381790348300651807942275991188343112203084006120597499530255586824329441751612949334876828366279090453449157071528305210105829056555752390644718224226232765850434949491466430579186118489375323992173995036479875258346950852802364560325996790587157406460926097848811593453492495798857899218755726545819612484104113269757705113566748223000180054528740241901019963299850608776400828412487685043276817073323547489013923049957018247323940485015963056437997863282953669391150813616414509418564183485461972776705498160053899177570663508071696113342687367554297270667531710009335416485636241556771627960904955718943504464929652134779207342756717539116347087184896867566246616105308808821824701915196843965564682849995369724034869897078571568747078206081862145790415649990005364736786403941008135119977903143950083753820995713821494479988423997704302165958099411207542814191110928034946074696142572586217585963091480286038436957386041630953331590948808248312484769466833891177032065985261161318097435900562139017917761080030264373951013742041566676677460474161237968988803082956281216853448983410378681288099701685598816034707583896128180882447390460570073355305797636175168748654843280175446376237139442330737372433195963003632921710193454039611588772349015173446886027675499686828804508407675814983018174426979919295476317867631605238536519302225761923302051438538580689740936524142365005437558159932205619594854390641498909014682907031737041697970823175330076375861742161986465206076801325363972931753942991394656493671229770135657630166764920441539436265699845365049701682673617313704609214367804081958789772185821580353109068578295466057116117213369392031920983313346967471559585035629365983159558258244686848447128735591884033297389995632458592413023082793009288011281480197969633666107499477544444247033550839163938287247526568067122535635180708640027213036191016815612568666129743518024025743672292907673707804949187407393710449361512757609482282116110949209630554392925931600436407200966776380327687495312993278197404769160183122278537669694450317845681683462152079946815461076119884871951182755415093991470400513234563374058195499577170670607625982276013822384092107882297382969401310867000726796306093362428907205595103572122660640430463604729149781432033708564000814160474424775051209076265083928850565563998452962969255796867263868909372232527965934976958202938063494418954609603136414480284681743369262462097468078488348534353511079751236818226034102346190957263319848635559650656352376278848534332054152314517906698474831255122385934902671040716081777043902169174060502071523335203650024453372374057507411309942510868182840115104409118623029225458518057838584121073659001220181460917636728720754161327843348991226566251066487486076821043503033112252298824579115330354581146746462574944271050384070636460096863736804483300228600993117485617523047412848628305942857813310515013093492037630913335403988209049771455856989550377595364670331610495217703318349992072978993939757274801322298566683275282783103456153633538324337294112979721493350315162503447426392378348599445207216102209875264491762829721261906426317793134683939334594711211596820397792131940857312662989855807144852813180661354492882319493780347022463257291312151287621818451920142328678948576713813915929624308313433770396547903888632887138285460057595005454207881939494672582483974321204125546096344992368916023593465494486679069876470970503714874154133483068882320277898975154219549444767842662168987695546011585724845232369440267478835894210204851818100855373501940186647107505627579906066826256720590887667180011448498124090494655712060031603944587628150580568121553813614839723096482817254541276335723865076008148259518875044051183846253413831158001942534587980566145650405150889181367518223587400525995101066863631114689811953398312903419469792124482501365200886168366354089452945606148650975895846239684009208107950660363221208810824090103137305013486003965198770909702781952986665144143054359255895910848565068194396445321447154814052551005107519931544975429808561851494190473320894992492444725196003782761238872566251405317459890818984429211829437625253788247238554867761725630704349029478201712809044985777367515043342465630310807719222841420115704815843731173605445629495045430946702807055538656576619444432619494024158091965375575366228031808355075848239407896708349789194445064005437048697799336403292549457201580105661677337863363478504034724213519389018160425224669132579862943630724451570988291002569120310128856149173001654003679066255664830345070926928788655514537406824846309168424313694509595492732994554024926660173081863773377389584426350813101387141048579205467631224171028841270259693807562233764497260494892370720932187811450938993520521009749731483190978077954294967943212481004740017654050172512552469571997876546513922509687342513990319516527661285632309987460255254781295205411889014300439256289563086525195860462291843277593498266968154723957248082259927744831063413007842996720428691912560028790463371156217601555471382286689128432921873998944208945218726186976297765398484152146353707805024322155709575563131916533011547169980720829805588164809329867616860890496860195948392020097851733037383753470128897077690329361479504627589706351837263687463139718259942791664275847660241881641797454800200192349384577396314685395602252241294914741690201116384431797247208312808055097310478237596357153413209505709266542122472178386531908227500332150760145583240486472415178560600506523065206843951127629058580428991909635454284179471545604537982788974706650393668161676716957370859270825111860635532686921069410938444628108380380003884366776030156125740682978464632037299183785044655842491881155219000138632922802753373950818346352327943399208213045114862429684679172667126953013286881846336616878181236117005877122419226592780619067667701291618832313642966480954538460113868954284633803182058093075157084895372096658998634779877360714295552419659939906351004817060116582700696367608769760106191867281467339398756548813833117063674076126897304193136313291904153922821994218292346426894871691067029735730610222361468469228239000183146636677901083795557921428255444610256243888126851003776479313280565843921348470672450944379916170815875246094196745773178776885798679048769532477346549527080367576281505741406880731494254178415782989535458122847238188200988331092077943350317119372074623809380723314448317808220503073655897898676324866034996657832197303893024454469721756658693769788845684769077276341924295995553238142984299371682907864898903659043193671572555494336153442318942544132000341015969056975904225154477002136904858211361330477566205603148938958757379269630619618515810503228026213760830127389337922359797268244591165802041259110230837530858538363552571071707531012118094233569035816024762483002966445364914454922500282098435678497977211584199924171046615623636436199219646865155601706539883159710779826978201984722273918264401526836647424156514523772149897246376499936811931640214552397832396976336194127321116850443559134557087841129451201772551695390559220960212414751072972992811362600745562486898541136527616482345956516412917524745719664905823648402364413955276712847065050006586020783010787241335597640783310136542709891705888674281379580961233752772471428370832879980951306577491994487483100782332191167512781306926431736862447685339771975964127613899860940375589362232782559698171831451409423159200835388268320822520225925646914361778234913351378577158407933998132653944509115253258861873611206578168220800589647007790450259561364006922112765040531328856643211275618079837839946569755222124471021482160972636708886476903081175824248115165004705493923304722653221652809096127301595304367602666246467260143902654897873973589074595144202430946369853996299933601365553556760740549187260569417415482597968561547055506111639246499330947539554714144856088660275176040805122799840985127448956230506624950524262952693109106311049891662457184188697027527277034061394945785298602927976331988097463587596397148325247785154149733971937536598732413769234589350630582083561839912615699888877789617066260920415505120706948578543152378321493497556945940640972124225318225061434117316499333788241021823277937747568807984672294267553440264694697579635862251352419454630184080373964352219840135549780005460091090905757091353739369826153911967582971652063433891814469051776585574539989699574206551030341146021120759015969030935407475221860921093176739138710867929610870155574234824902044605509087890957462230281244069575528233983862170418716712593670022195107982233870298691818143216669654680006209610936744683369383872219431708250886238378543556578847948302012122034289069513345437930739322206644687337838727819389356873734944817844958459488144412074950783670932551117702327573794252242675692403798417327311485027924975125956232662599916022735713241414631264787749227521984072324528137906207573192495319128472526521653781720750112539886503306812221336722276915380822241820063413604913749693535781109057164044999264183435241292090038821314154318944652544096294033733819196735208276378845416155095553755394225012865628821792167198176708074613773172960131237261711523696993123005988890564090292453818956613248171178994268624733735194647356215710840604826530198510741731079429452009050680811010009792495126012793609023701264594015457756108710893258586223386100492131719832587948073525784518529691228058216250375724454590622716333331417807663879188070335068857499195824055066474734777792177371091635836034388808656840303328737226132173877532030860289128981631686789129038226146528459219049693101327097764699725444248167308220842860597060458423938846657059166046023713715418187340414651170275177720720603067616822854653497701707021436695883814963428575855752579743612128166534237172604575588880708765917753659879463834659497559553728845731195894435962675395886195007888246051978162663021593647757895142574474381057113118916946552386618221857053441426443844790682132995771180116957940323057413268939085273616583395749295990183060575194802833060973168508515511105687649498326500064873944649116460800524839182473787202064583912669842176136338461221659781862866934762993481460391740572192174618216066055849981580601916090177516655343021567841781554664900463517504236271751003027604729688689021679184349621277429760937085825288727579373046204019894926356294796738653419439850754670068427779066573301921813998320835941568427220647883324812405236186667902940989662951868870056860368860000830390894643617304254845731690708143348923647855361281822023353831920133804632669259679744426544327836938806473836436570969028703590601842363520158926864291266852035275934663893296043116505737464070518446010024925993305791373833358763918699717686664393548413078964347470553438993080957392245022987276134751171804803680996709794715456991650506181876317564582041970405765903329258006463325187791685343113137557620261356575796880372162047275727487661120933309394812843705468218003099968705918554679409143000651218029164252617426514531645109084790820748566434065726996153318360368401059458479687653741291474683307116787599266682841916494278742669662159601969866198662065613521573618482491719173114337111530962347860864546130195290602849188384125045078378036750794722324982595459559917649543086849742320947099090111553339764406014963787350871032814032084502765422224432715868926417136643945014037132744727283647978796019620018563581348526402185401421993201896942294175160682574668811189184160857264878234573728277336371851275686804897835458427098689854838008109592780820137224965640107364500684018199909677153413006112216821872655855928977449242538917698948650904627493917884336314418213255668949495685056645118492736334840247739944847948236486099685486262460019299324119915875575319545385121752881440716058409076882064031305417296951992264728375691007153206202184144618628790718784101024068922686204418579054326892045324377082644017491458178661146376780317120080994070908836511503761680550200696072782763220451810156486385445186470356991109524331971229612341764058435798371563836150970150707638871574891073217884917163657716532080584261594217174743880120718991068535663056894221972729764205641776503750026668234840376219543050822573894365298372558008136019181252961420028163360764606628150888972834661950826155674738852339250894042134758230689941482441772332471028549193629221893115748968443021989926081086308456890741665618235620060239037531410908494077890383446825713865281375572794798349177897756674201516325468622616747377513253457708516487722004769444879818382349748100758471675079197911822899792912854561371130886174977683990959858808047490978340644303256856084223943802425236297744636508166431739838200091392178680591256452023744674461208579735188392440594795813435970716194853547844355792588130224080349008808228273274220069833811477654423233799725711203027035805607205664205333552315829615862528274061716306836904099384704822361555661603472079009129095919053316544016249159408434864854687477710881764944822784533464576237589522692470452599975888478469909746063548074267811980379046110681355204523654653027905351011824254578224001203379407802310519991184365140577449733590813097401991433102078276656131500016116210817900602132046661047906038707959843640966549759082780272089727609507492494019601010456142469899028364834057097573283411732117209522756272145558908163397066983191095601418271549419470545702117560746716783400496629874568396631342395777816072077648758496652166003242628892123806639473394257593046522889050324634904434499962105862281846270860306025911722969947604220989093334935465077019528670837716456053072134594637399863328972046820929485217363130780164848734657839259296752158064793888891983697695703557974529549176344772135739806063410762216369603775413635519534794226007425959931776618966608759475944000331702884681891866375691020991486659404631516056103605186875383807602153802012498357573190465735852736036392042035189352363628482749203081317312813773800296973587647158431886751217825976920796872840938653085052957155232995403919825973670265338990745372624833677808521403270635779633315315277495045410616180477025267476828530697741722708084560625824938434083424714397832187036540172896927385563442526850925354748637981264757269391635286859221391498837209613860790719490549278470809661815160365862017048415392656473617868508370117986699590366765669630458169244278834413407253181542026490579343620398613706472772819664309327641174378169548088380787197422883259496601381089065845038895928991007666983461671799622222848499642093945107990466367709044026918322972846176209689106350813357181675389757185565075145545499040739557007192239887509885241785281568303256617958104534555498567253043710240732896154843845754828503853647355523656306393978608827004095971295565995455331313900777284497907975338249655274280776080550702386873831756616686321801599279304925369262200643866595868756050465093880754279743532594805449039989253664009373379169900223637216008345942143320649608074817531681262379187049520138377125598808167623949221118608433544742942716141874541451817195720657673179514270736904383529845331528715441976438167839764476155449584652240151071710359899919648545723862833400076144621128847532874549556251387492583104256026857107126184758305636155661817133479933727791416667162280550141790140361623020013033772010212468917118424652261324783255149796791702241669459191372299450342618241432808159596564469356449573488411606245205665401594492954129929714993399782867388416269186300906890769303135709776396833740185149646078389333926002744851844446784508146575089340109699375468181469377344525004466852234299568410816955972137391141485906397962322881371019143607625519370317431631519632668026126267884842203669488208641176764501243062799746609616306625019031816930854981427646014045238266869890566596423437386681713735219002598662098874750253932170913750499910995618968407211142350537591002569864771577176564502708161480721863839074619827444307217230430122300903353452609721369227231872413197669333187227051457985386702541571123783869279330626812556045503949754210992774190376914102981246488911878925149442670078386110739756469174509573123228525482612247294251396199496412089962219293747778374707011903443415862825673437159703513402704179597803820742957918801756660848516867790713405207149674239541948034488805768231940560965864174031375647698810304833208038549008544689655401314819420036694244301290411341027102422090061519929139732364869722079993407197547611648020758557620134669359702181055205236147852639912429716169156283407644365381984650012973989494987550771190459080418501529184904422969259821721443238442124258260664672362493392527020102306167097137614715307604898578247140967480328066157443176209486876680910303072282782134781827862220319784323132874972426896450326498715779472817908422430439651479549522467208497532427666692924008337810051136124924974541941549415903650959752093580116736959023242807648887645738274157805271132847530657197240282980511495556151675524583096329501924173694255673315159927638527509197050628110419836587675629472891141692388092917009912721626222794145867684282471242795808410797088970419844451736714230433441707737542406269088546203215411821126705540744842270542723232732049330316048380926317032446137054222505656850415390302294687003764213049886083653549224013660516810591602714505278482072611562976642288752431042934538379060103189571074176643081015653124865381496757035003084249019993625160503606627056530637178168659301019622686006130946026113392912823696118693149056359953103794197246637760154800550018211153619172976222765832991397432974507892216585826582382787314661873836167713901775215119235435171840220013351391382319775255493417534112781722775350618014257650183472676373405548545031805123327607351954261768654079286579359442939188270160174578363784632669538720856549903930015174549651175592421830907046170140909487048142588019553164464776203882630058111045659119812348906085036805314754691961543442028485409877570924971099129153591924729337227542273899372390169534277790594727240592773415171219635289030597270774550195854830020231617285759278693772235942074887373259127511944083625167697112395686138323964922152284534385468530480058177663449395247139118972297632436818718523487040684678755610302892613603018403449782376665509900054134407030418430111366866280064372484915630368116993461909680127128784158113678763984721788698763423531813638883072464330291899596972415476815485418253373136803398683888807424617046441389425470687355393011932724132052134278088479747428487803878409844510064108855659236470015076161140540329746166265265852271665516142227426697470290487138049533277860578219826289457485125581101448621261924027437269547043580832785619584044773074411216972958629138624251659719522583557559523449637610673073737215515880050681896078549820367864976802668565792130898375055174452430143475591841304548151227573059055251948459175845276003109663793091795489633667370671001397493080122619057605606137387203190897812704512148717019449779124008753551248755410797337572272069782400018122166923050058096731077899919230207454960349077771981310947045879981654144931251909203626918994617261830144105385954919806906734948099055045784500499292220542949325177209276175408104365308640150176304484845554414004661012173262764993235127927126532189772970633772546924008706932380821190045070052571481233288949776923686970054743779761818850309437815989054561781206931928246229532093308119292248666649779719290230250274170550589435475376848519725094261016436421519406855625860588825238793188554956989284476577542196810363749443336503433419907112344987229047089246177617914373620208253117665699893880041287478233124571392624587678556724177844560133415319619922518802770353509481341043493583091956042190997101613191198355964935031369093649769073059104506024106399562520087069603088204275105706860499615343137257927850623772213828889540370737315202019185424758255069867738930091122363412779704590846502466300445249047061624773266344145210182546519716714309650158955966055406524281923858015552664938026450807314514714502409911421919924013526856211303611669487003602389514552169061071333316463987579167854018371257624837518732346445268807193614207347854593397744477828596666436470120507492805283158049171444297759785716962936157783261517484396212337383853220586578881692108654169712788501217244384683840393583678426221471200511443789154386692968234926759576506851660859100852016594652740696515590681530342419802019848543472870681938456736607521384460076049907625945325745931871350125989858874910066561791014969264763145930467256236015154599813366838806815241928432692808458492285740548255252576032998534641958680587977354099668932640017136567155611799378479693344403244627635075809044320171429767447941063907249063051721609363444902004760623455885875357670769510803689212314932717484617333683591508903822373105501344011197653191732669519178834513224837806888130693350221095716234010903735985052427683894972823173979665270790263968753145323615884950170409807755235640434358249076839090762075293774901995339057888109105476555327945722027468473095712864630938637136858011087467702415156523478572556598544161333118258462520109216424658487707333701385291000015704874237468216475030963871186401472225677456657062208353901074070360353247298013471854872545461579437449843207180708851719681035381380457262484158556607777687635960279723195439478409494748136000625228753163308808563932197592517826282037258371557425748440308896465785173228012029013452707862713727026065113644989496157845647535443856619395574758142150766753600831236025443034670658879723151269797535552107914942643525412000653070492381551841934363039548684990766013097833042029742073242550436151715293176438791505822996812637251143447093632002608555595469218835214771288702823180731202559556968125029031956405838301005421946011232549892946131218924628290751593308229330745608032776046356677346335528193746072235362654973334977869895567039002962861092095206523287137755668694760172416262214782953243444390344878962684108950658501028729478536269901500148348797463940488328145475260740803822287963794633270605140091702622123948736048470381777827170561655676934380262497431685501083920300634216817909109697463895758067600490148410109954183055273411722470215027321204078146425875031590312114341193472101302584228242944600699444465302849746862775124363737836195722297596730967215382794827791043446216359585367795043810114652386258588078657773535047295053849555156940193286802297669452134588963457243384575374783140937872612315870028900424791257944200025503408268359997584629482136473938036615331694679832651316796653853014087812495333855168274336700227541390296449626488352520096813398376454308107320730734541324958458822803417535747208528931870391850131448773952833861382835941477094374066547749987933665503122779248219305378562835684995173985347926221589556313074156505408646257874801284921404576957552904888143539038107766300651674232744673248750750736452151369926643064935373265076950302692348145483356494499196939960533666082475552802246834995617177831538471456563242753445037113056571260489799208076883255642808448008140687496136712283092266062016812767931955982245858693606428011275443340031886271450306407374671863112124247948655733162746538164757733406571918546335039935562669703202330381640906044566422224047411153290160971932558559826298835242062782694737911603454427055832281811026207052886392224467323840651783841942285252992334075793776456184495483440095273190752719403664996839739357830135673417358338776563379985514031371700686558651779183623872678365993263859568042384134044420680354464431739354520106982155003327852162266846115630383189182327721003510677288669568311395906535586956519381916139550811087379090172830179091759274300123521381776630167174108345712718687650716163969036695188392124379227375539800157768248923568937598942240555007182357444747398840567621437746125887530575875965181834634422214983166955143895168063983359084039581752222130584960882933435856515019511978339451774656687621677462604223567135734766309706307380305366949634479767773422148708906146975760848773156461300740717877713104748589998568118807543263035994118996123929304150389226792380379705780701196480085714428237945791841971431171978352809864049213980379981179665282629602204472873186945702212650273332702926569519558440486792118326162988937448168302599905855532261085446545564453759831704735116754566225283778500570367084194454748368623908679897113641398753262951804953834796399802657442326523395218433778643820218442905280744636926984422502681336251274918392445209888810893630604324443360260042017837409423616607121471280398787622580489146972516841057465388553278618938847770441613052141513854031785439367002044410015061422413282832115416658563433807338483596061466774306237049067257587146255132917523229012430651684218970581078454736050966121128939947069191546804878764890256444094555908082631621217566844945407997289067741098471140726823283210803312257364793801947284805572963757393796715290781498684456515434958729925365030970730642267404506622275620855582443480014947113080857529779050075687337917051582964499157808626831070418439185627347245225751485305365275048539157290604998420102202654223698832996817026146363723828182445954657026298925361549055289217524094957820047274268896105747498274427972491290158966814509153366514262083725937541987269708742643251631081946894986324432445084688269134771579092695472561843380910317722318412153637031507135201821733161023751952931947966350594282038089353879183601268530400405911232479916995113582035291082121479540386314588169006604580668893350585882271129922907315515405249119749612464784751018531820792274702103117921412440460297935778843120513390114184568281009326634947709804292533516606231311587688002014588855392493516776427645480874137187640739137189831078476181701837818039421817052346045444700086676458622384809794217301113717657686906674824285611870141451034922177378801780890856428068756632980961261883671481977943107932243361827370603978503511289770665175850804743869460747252733152652871032143086305292801960857780005374624249135868967924630703365000838443337501635047413169436724726562853407020023120112616547411165299441008416911176289205185069834977604350189522602465486894045636304075127059543874718369788571845448731380622704560068063623539504057608032776712006896032831276929615316261983548084364652134988439702548336698131374014713847353582088839658173314266855159579519304041214467855019833720862316956807379248650203961713028925819050895171695296420889688850069807006744509141574110063189340564245389514883072765469853905374111078683132811262915300482433334521706535041985617708702633340404625935399201286743730292696852567624963494573179069529000226116141795465427323408985828729803550585648876187246465953157351363317683826423930539580251237524344324033835183153133835182260350841041663290147556013496394717229910292391461370805720041197008368956509127628605734927056753601746890174109206498585622748463547722869693817383248903500421580396786511152962997303971215476067980854049236390505934039700476680559164115299370260408252780063737308184691066920230229934685552321846951089539863366377170241843524429206017762800131982483817402282262409968388484352812649629208542565996426780995791312328611487448800435714917349025829799458947521887429599615824992328019112030283075448191853859152923119653588686281574352562896831526574190813442834415516986074740419348432943023437636748080506818717819530975614661978339276363514733511223061940649920504688351300275352924958553401971467936012318454989865169533753055969776083681157822622712053999730396939425603611720299918336076653053861099834968776733696388080865102323873379645452010674313693890748900938904356639187089471050579768040765026790213715767299518254238689020834316593427726690085342263702921948498493439515248034504922485763132240687373007727062140267187148497691100447635342154129669302349389728851645711160264313133245045958321789204768263357249985018090416909930189827544131701762040748073275557760543057908997735495408282473188899822271796239940605149275185697703116093113607013983542171088505625515904847172151979935467913627056612211707828597761708486250631956736512518512761793429569011220374212915522433474256403128222612764567214036216345241313637256831556363312612702609122502724582234232994156556311791470990979209976698533819909713864819591098921981532030440800766476630301167511729723433227502867239450535439034078199807976573175986526748180144345461942673743333103288258373014800554262003699691432779264446860491389520768013004610273080902247953187468567725070112915505864094101123423767761984855321435489755954031147896407243871324203162500511989652299179776815723805034932005291298104187966668779602252226211933574506433881491111537474702071218629228475383044447830672986885200605653054952468363292162549453492837546437404124194356867377691399308269143521586841786255403800383514306510215810859075771383222796147901261881358507783334435166806909660922553264720681369106499948780539048804519999363634327778660297421777726769040726821573386285785600979766437718590590872929534962044674474833592148379578010530776965173506164061947223927040512922097402256500373393511458846151770667574007965077008568152603134962427753307450927988036649965562864188781164570932715428394401557629839695038067461306598329705514352257155429037375495285837965067471737263240278069509378247656358687879884247440769770297196086947138203654022396230085528082803256559901817863198437752550437549846503718276931323677867413598083982837051256724817119945404826298209287513980091067499443881667321164199736231454057913561385926440778985007200672942659830122240262902033704461578779899775331300318550778554785648664353302552140491246904523670021153691533544565979183471814535825392088728816283961395982910463622832984961662513531536590458283598093010910766332722453379180075099746178843904387509436616084138431312070109761880031339666670481325236050556561707252584671280290862650512142053169726228420436716706482244553668948571824470881887565026239627912277937643998351995580946047149543736412330470289242067796575270268479471635013770950117165091575657751279956525733309230170875559998454555324815026470765346322108854473014010187956033340834159594588069863521803057616637662697106203146960040382236569969537721477596451924616098453837913888941944319603819882514129536409255876934744349405796600003456225801174952920313351118035166788328339555796958679924773493535192820317479581606389797463950336170537868475340900719565479779774769117875438299323117919786485400816367761099408323514110111986839126216893654469013217463313202568471384936738403343068808698329460668546630586556334868556785977121246480147130277276904581966755207765676943403645307047037384304252564129323044730290741366033040734566729641658068468299862142365010214836883751520550984652245717816629200564674979628921203818992037436483198794368920790654496517744212586643716017656226928377697028471155600372718989471853370130132001596389536673601897062327259485164074685047138013650979345392485076468711406356690238600187531077648535228241186665266578405219322031255964309814778446270169108827248043856590332474115557577820423985664696970501854967505703195938301043850398136966904290295064200799525504501955052338087168637225312750941692823140158378695929807549753866006056890141779142547634146577956122893999233083306853033551266298017240564528274955430580956168863133522301572029787150802755446881797484890610899433900412025988947702277588116554440939843664844278716258840488077521198290025936289767563282568623240737246370114875241837216644989614120092027489670604130433606274442458956346548699731902881156982895460259648050945746297813303590960923217370569782724702419353009611007711858612180258740408160099355112800376958213765068660186290555578597128876713456376824869876951337150321861307473573728727282492641480941729876187541867208258834569516543574036852300347085071079812777592718044487686786107593384523199799625131163135507281547123174187039105294105934089114427714025550331520116953757266879854089270749994809034571110720353556963082549065567177570672029462574900836661846463461752682554507508410252085552178847205190761220071268823963929952894940147392827595719590838048862427810474836760226729468030046652156113448704186247591960896470558458482605174499643079251188547826931102293327356453907513186446553323937215320429720827878139409497242713097342861066604357040132113397045741334191384521543923163978691709332264159320813978218947695109496948348265498413567860108702154103622414797064549414552885529135469214428894237957403191308537033579709780918052576327332162321614669387918660885005777489545989045165786676393590979817647174940605177923378430422747678760634416995753299463495448802544412985009445112894044825912118785958176893052090919618439574855549460584236281323692968882613708254250514831515817997402730411238303588111775712954483994163531506081472703571994005688551154944739216466062436490588585381333838729948338793765462782152617836458206153270209337393702580223406015940305433638559229631676000325029408203820984139245331467751641704954767253326010079108794426435401890701843646118496973508329537680997460090986162589741824410509043369582973166007182677619446242315412163812958372102096959043770270418771355270711549371369782034786896467173299315356856378703109853010095082565126703216961744800860954513171914353224828061723372837049779864937884335835141146011497661669228247074555157585403407771849077811982661238881497724771322844898782563350104437736364134271865720088332098071323389735235324597291096705482281986468326924136659689532349712671814764631621786204089844350069450995802199966807753927492291656036230832281308470734380369014846788663249560077596738810583907213164377207719462642016995936800756562103445542270833915452933967162018475153079564368720325060277519390407914373129056947283262549567730155660209446152122514862324785668536917017110639668074251042202622177446943321051955931784604083339769193389990873420214543626337226642391439138509104177155588643977943842454367544843262376462079108537755685995790723213485140076943927932836054373908310987555189660635820100384627156129130997863772190898626690149128185083831749327818969993167094913650747806904455338656151506595704337181999897328979768206767096843307868987539805370362057689426256712052083406392469442018687478499296581560015069332405267435176868598841954858662774482597424635188898705096660652468220481121769034486237448673625987261810984170738148885031728156945204119687299360229256740247920157538198019085243332667539754030303105147557890455747174522917950013040438059904605599680869306370833897917604157591434019373220556265487675668084828761823057976772172385499326719253864094252347539975865398554112910679233519390623697148658338347189247004705520613510366018779728972978932571425319283801778484648872319555729755308108311288410503357445902090078116367891333630740081495055779283890773422353541472713979652137068644033667753821390875570614063138289424344728788533595713175987349825162412154756623975288975178486076159038517618738453281753998798139540841015051873435600597049395499635919669904681711969926832444329534025075768263074813920068890470638407298483300639176817056486933484441274478318445505580925485647176155961194417170269562598334762687655149398898884721851976147471362180760202746799475080876432648504614664950322797789923684688434020496675882571684554753149320985237443431742160279250550478602726787462299905369605543522646244034194051700985651085806537591266578898908553845996160207367311111796543198369821195667654039692570106712125685070812377658227693431777410161876120687425044493884629341328753804297801518559624064101320510884388806382274198887743128748393598884992965438268294102334955153806986428053640378453986422835315402892774502386900903984501094764585305565261088589510269899655042964907822079934620085579388254377559107964705551331718122623413928688778001835054019703676046353461496633005956455812737289579744269886793000387421120898725343474918112381963847212953103054408720557061444817632065828474824683129485886460307574226462100494520333839709883245072241606199740982720300364485040584230928197091356318196594343850131341441903484539022813710248079496310929953939653187194716597809300865735056484346376253346322586523130254736695925121441964987246750354205080684040051915045692951894807246520476295322807939531201137341354828817931084416647900567198406989211564791028959891971785776078200093113930931078307335796376673740770253024114329530861493082520684817033480744396390949689216967094291846756522345065152664045481026583074285522252933699244143668193087096549835268931716264002731176922979170033658805565197980636000363295030640250751532201363103583789259956319615477158557554523752295551796864289610154194249959417523060541916634839671640970934195578302603239176936772778699095317112262527649690227416141313235117897705118485419240128247826928685616684283999504603245311415960812380150879224200798314045948243175328920660275156568788588044195764278497191165124830315628532897978146273530950523965508749481647726892320093243230384533819853641275573835079684533762982846260926228759149635076028166241220794521750778778469808964557634312504700741695046788092782379357264435872182845701187530290860588512358542801658795287885588457202242157860953121229791863754976234661577580955201743630721439888676289362051185664667712005985366501912852461169965714423911767822552560319356252921647856809059266237323716145706620157119890627859862208808957239579448644771077122520340593589891656156631376181539986837099772023562220289475389643743989106223202200778334948060817491092139547075515358261805205933387759472432461655750488938425195906005767717352132171030391683734602614383969722500771447344908476937627008185480275431457137055393476262102686859964645892833132702752428644351739086623527772641369383510525832620164586140053270437053660774641555270305403605184576652644732498295572698425049354101618849061419151063417239119592623122665695848253743318318053818916623747607477840170428381104704141657423390793284737871979520156223740297799577799035629047764821058756670081395416377488938339499073084594399035921154335320798741715031785435120860895263998053553842422936109787810704269404085241586800588177761796458505918977254396144513225556354619052947990211102006024275563955903870482943933467685927702067312380352179869817656121413482903000851092041141815401655875997421197092217863165765866987006246775793441163866901148208284717023673551978457796010089223224752705071616807456510794034607196702632848403453316540176427286897913707312584380567433102490840258583315430844110515242097546781949387393820973541941557652716460659753451308674315862383181611231888781468885150179653063202318496487539863472744237399965314804818131305667764353511865133938046238976584578082846623404835942887835521304535524870209993211478203735738199296657953321208553390168438721136174526388595268739484638479630140231951491096946507973517842840874739689198256371481985414540164835757409003260726219793699521456647081948332924635033097174716094437922433471556672918836920738883829909302078137079326868533137286393741187874745253415182236521298413725357948094035193842005065928610441083767073816667628284086626812742061658470571396344792791496473090377780026628605528753543641797673226839912728144845666386764149417739853377454968957242917474052852758705224002885163253655970364288762187254883228063553966080850462625047646653695592745179506863640424411048117361888632809512616750529955485051082935574544471925306609931629638355546822184645162537713589986781826183861703145402245188238355078479968442267137269014092197125136905456435219994882766418158700264625440764646694175479407818008000687685687957548387307140389348342208858847229722223966421323716871583443550812681569183303478378549941632119112658633893740030424428252315242326191743117260180717128146514462546032403361557581146933600179466356332528143327393839778328956608535695940715959017989083182839408660510753746720762105446614267307595451657872486658263220758692351134218301728799033223919729409323167673062661269997231454749769391393692938114546569098682886526741467951541410588327022347806484927369696226589772944917714551764764459637186076474299855690745946284226120911178086905845193643923434616749236616174328290088230153434285533698116844054703088237472753574233373406268097814491769333518417339474833409014655606008723059484978543005780122927024164124551016248456159225230322389307807735428283520200440727865948902304434925008019325794093588372703327312764283494391596698361454018636710643248712671527726667357172323334064568128680140714510039360520735304466514011806107303703959628272814339843834389222161775501816718068348771682637302200392023870816886913727118002504677520441829087488465799539978472791955965105813373128820530812499381459978626137946385139838988505136669308540217283166691506242657409690323793419424302753533330886891578333910032749815750052517949717977621309267896491474511758580367907281591069991858228133994136199828419861143765279786883182986686975539548798666299320632392693358768686897509465132634522360204227745793504673391774196563092456434295939280577775753683898322423596186539753066236316352370645809404532472311771036179458773390868012927952353516878228604997529702392534946801398433721429008835676627204233369501336517925611760265526035147772379451999495728079267714473783255875131636328176009876817392971551944046459893645886914331196938727705206684942993078936156433439772324726643410238150763327385944351247161588573011075528875712386097070814793090946158159566062489834136988675866842766387219985233419897523145392360495900825949554653955007654370080355924101057043045101940269944586789404578483564159044174503428878625396363259571212352424855833583222930296220743197696908353660871985533346381520381601925693442170181048056902783162014186826237393576813278464421683509410499031370952434868827148953654846963496478618250333186220184422594206815382862303115517445264592920881224601427746892768906448798334667723415619644257965527738584818454870287931764269172523233463349376431561308410546205631769241573035128845922672514474778827830853704728745766851128453975804051025002415013059999925606357767875286679320723058202102019657783222211485587566291938588219570764203155331201232971339944359727495226477533239810506567240750012166701734465856103372298311685128747030185053062166331908927418488102701610880083599749755947241393315733483252062888142058746377547614276489244831564967906465084009510796446801051406120370881431171984709080399822859042183974648759561673484747307232899511858146357550526879309425110081568230868928798475202002658973071750810960328869084471000765555514046664452291616641922525573586476053768598737920671077104856789021486700258955743972501875764653934504625665799145178406009388526830983466608827342411272908269076116956616930542122146761399276192715476643495415268107250700835374496968545947067270361515696447015112819883395539142880372507023430481917901856154095131215865110935981097522698898334800918779102524136702296866077327122056573933987851181252568045620632988842555459575132410082725339619883733408013692310242273240594657534128764724086430998038793832786384121942445931534828812247133835638462531530635879873494307183052910766878563807113494163111780284964939156876365286669126509101884909308302835938543411194414299838717103816339830947288394867237311305912303643743789895313895863552944364328559890467677341385053785917379706350047860897986883994104707275754899433046218875489830500969927608845479497483514622617280291582860570246612701028409528725797994462304194021556045730453116199989331030600218902354043210874936088998721379199238119718434294418195613702429573057266227788884464587090498877603951296367769266445260359921977682208104959872115036243707199178228240728535230502526563619887896659272067478674823738084465675678764118134994765038942715426953738816176043426945052977183159437541318857994654247138481099627605411307898483774679936748981750947269581240974356332850884856440135242985067273343071986011682482907988866539349198219729376266538728797236526681576717381897509291777200776627777280150815716457491098157336988005995912550952615143705487589886630895906215058978581772276674177356915901712556528019723288492106981618275391878990059803126639428300309438468610107327246948021114766432227582456004688776572038938857158453265459335950371175213532382694360285442228562691723055217677011046382817384783060759150306054086265180595528377101828130407654049153058607356753645818772650089283125586993908386845659694742687431999111416406159894840628396066769402740025488551433687940338996718562219978413982140770699280704667958275034913471999987803045023420298611758259456847655205188500059593626105702843232691485678503989762316813113259000833893652325480716057745060678974726928210733140743268594590551514187020666170445303083697619019053811381732222790617153423758411282359969539011431775236318441304880362232056816138187408742296153003353638634660792751824086501365295287453117992656078521863634548367032844410184183646575097136812155315884823509082922775605545172140876328426235436923681996870676406582703893879690567054429997861479450151325626600596894805938007540407002670554647029543385683623272288884475758868306101449560412196081280836222233268207992704661566647194355722286320537899452586628713534169945746121373801320763143195333572240630405602569558354234907518117601768091392057204562094356683407434482318796728629692799770712794125847019742008751342192807959529584488752235560759762857963811851191176157640305603843474607555775528150578030713008544054782246747790127576921334619396474359434552113914738043056097240026309459406464735048629994610850964968562315112223494970795996035620883429282947448822253301181851859902806904330468620470945392145892009227426280559916545121463258357118455076531330785956753759392064474695197831278781003857763228843422217599719332722887060055663078801096932242826131485958600321381108202813408233725022577839336420301150051097811415125504678473882380263319865115960008030909874798851156984577685364004000899692501257893993678047677472840688606825076692773539713141682485751585640322526155330743036913003048753830897617528366772473648374278208919457958994154057569804866634537879770638407495951753979626715190454726620212390183227012274120822143371451007945809064411660638815866434631280745395617927087606154694591621884513600140205083421437391001924773718604923479239402247817861960180166316816824471735491943473788207582686562354020632841062197940571067199124065152381066783367046513725272652766568586229644030401109222834125752295460476244823711554181212391967266871111552918052238909993330963395873684657941652271516768483422998030951895747436104786194528545190772762659699044801964751905054914192169700993107926899766255605008383095423240314568911394339969396924624673636100149608935280686098931655969317509950052071912976234369857376996101911539386162603146933729964388334267369003418125275578567699347135024408802445953642324539251690330094677382230238699695722213251044777228473485471063054506363620967358427787895281556316876691480145977034256764577609144294358536225865041294178084629582657571331285861021057758852763804301056080604503702656966777107592024027597521468228968561762507823979918606040824851470713767624641962792630850516895100960623581948138964156311043765060533388654562223158972074347337188159050832927992328150136917892334523807193353141618977948552474246354788297940652184498881734397282469008750855169568446434179182873625639927774557962304779042396659891878879108231023938542295779064645707904572577761769238194959790512587395772377558030459320337537204646773622998577223406555254465231351892128037085377511819192831271057727142837265219598358859202403625594579080407417932134358848764923314691803669815188672265742064767440763585778671401026558857541745028223454244897892035878445896557078894806463518419197896164394533826601876834036590026833356327367798985647403831158944181161922851230492239016099224829028302484003784089472089928963679090243670722078380101086042104672798344582641199533973258394088380991033531524581259512304032640669591823036625655661274862001547624115788677986159934250577041387405529983441500744502151807380649746081123955645200263534921104965828986567039122368433486474027199091014082197065904771225412728744660172637791597305958475598412678131637992418429323330567679792992034069960875190993853218900657423912709456864780400988964820818191752742409831001438681053760092743926752139002204989093721524908960059638617547541756945912915935203045844062947024272966496755270097955301529660755954927990373775467393075705615088781664154846097429624335000886433925331589280252040452994871643608701913388950937447559151118402533162428426769138358683732664297515845664312698173936419558565276076785068196160970983996789867820165216790557030476916933687298021746409563489362710560487268667062063941049166713061146621721750457371981213667818778660407217961283224583264930457597327594714118291036669192046092660290548604606069124691079120422489714856327972061571176789302537398963283603390345343403527792822360360629336447784786220688491550986294604753853660590790406132695328874743173328957704584202875303391128074636459920046210557829816739836832443276257861146481823797679466007114771512819048018421999422025272250934174922222503340858601550167781229602823789988428040123320341964919706837380380762525487867754839985190895025293775190347451015684715680265383965256716028458068179215515950354485061509948403476349880523927825769436773247051652218628983617614396835531978655846971803395367088014185494415989355675117859736464393114559664838038960341527422048733618609876069009423624478921313051903413111795149616832556634587114596841458658019457092577780633317998607664089055099842577746209989638410373424181277578145323760723231212209341728904243031134488205672556874204786065219205295276455155568173766194053922378523583176270486269443306704630905571407271040832556841278133879769372692635593514821797490917336683676985964343110183207982873813075655902993583545466831307082441548339252317757579600265103804440890554156882023031703482287938826572528910062931809835792455020913237477567654096408128057198538146208135372099753858590843526519641921123919268361643626780358193913859536480119144240676662081088032492349428842422303657515064056616206334775631741958938062328849443897906768750711461683705163951680261418547496973237153304937291466194006756381382815592764821417143212330545933464880741684720131334999595260562292187156960196553114377514372490547542572285891452870319949344402930435078807574177529681300229583708467823312261107629495576560526549151359152682803309059286018056371352417241343446297107882196691097263404869583359585007921215695791077088713020066963189520088086795959916749909295523972955095056019687431577366304456883964552269620887660272885499236993104132023788131343186710747482960171925701762883969692113266392741512955883234882292812251442704940572419268453827797517980288536762644185043749699701853232218072813814798976342929945307581423961548377285451601028872778312012697719915804574973534779015368813584698722631864065083870145664637259251719904607726067666620118565184173390337856503774427245946281372456763255405366804111437988863632582761706935701072084057402855031729561914571238073018885291257750049562049265014929862636736025756407939200974091464852983122285723763489042105820902743619859823865966044068579958903321124600487151716726173128847605855233448901693331461851411609141957888128766798172234111055147424766818602504286981729190640101181731292687223413708208036909428934323166142425388236098022936513567264742104899787253050187125241400257242036113033607856796261181945909493791848595170052363924652207639582933895429826588863751289874138495404776112662057508804496533802430184558331618473190414222132485777087235304866860593628819951162497740425688071588649948388176370461293158614127720258703495601187735101841707558257532705755847043467674283545657812558106600952711188832357715246367087578331487222760084259999330946920133145991339440638421568614005856402216686662500508944997028534383629743572407519714881221375751933354533530153299742693590491726579576746941853044219861135572754294540972094540779871049773984251573509007735326436690154881155264680309587471399897912910965305056982169607739880622025321559936321413368214288494838113053656684949907117772725617441461146446297332972461780600765970869633692595424465126278424416907315189826308764884753410811688363032469955223955235953493387636467778824772408561036266929411192973440317284175557168538602286048144924720909525384671315541851583710021393738809190825802392672696995532695758426184556931598827874101144618414893654036784831761712174070439986158001354687654556213097527469356663662320060263038602412944950299526402652269151890330314455080909867971050100838501393180592988795855833647021690388659786156654561731294016968205739644888080771095640311393145578812834242046322992263280830548539853416397572888419088731271660444217856376871348549767239777387662141246485652683911020875980777186991175793716896049090670196452803659222030267514716962466977412803895989872394714411086985484537602620792102542306345388163399630460554717108251045051223549603632092700386643782579890467014411969640762550050654414695408775549984622383712683390662851907245916389772534751496583244071678329776414185147959742120073199830542795763114039334800569068093018243859709223164326361605438260646881786096388440816351738283192517112290457994088546708491303612569928135684157817952488712995656256767325228074262483145692895469692422539239164281265013814320638931569192944378770786340942828659900533351341160663517273905536201237687939254796108043410618405775673148267385924579608383748474433090417648894830009044986265455969685075745989728816479658524275776971530751145844907927214150760453020911505038964523402050487476041308586941995979573256938525722340069285628432206997880823834282404357341140270179575046366187275698775560035617101986047242356059803758302902476479204564911115567473155377316494546634481450033747880980899709336221017986738076731961498786202844081304427002372063606663003707686491713234816974761914779958422890945507500361584415801432287807069716101048690007121165826764967616331632529457169919161323296915110948384659736895724201268538152934558556002423656405915812833080142668292171319175359762921639150713070513630234160253144037726916969103284991757034470244260644471689406930213942419352078665289010432794105930456340625502106822274029036319744698589348792243773194090816592845755564391741865372485405629315251072760180696009393996425941393932423919350252587288544680772636101866623908572095106502644477891759524786653492501305654346987096783913869109564650276169676681862050310971907333268758514246436846911923055343414359000616393443000679340556789428209211995066485921975450376229721120579278096038993846772737014678598165338964081227345942965975509009281315687228986043901909668332748499262234842526657050173850805125185726035462302182407636151998761442091972773242670702659237000421526608238452346272536470791400020829856088273637831134375589315098911347930246520614040876456866748667376612769349793530179897651893031798799985802337019259909741699405486056336285803109849740946998352205881185145615846323601771546911980289235403362911603737333971836820156804909771758394015154526358693390016298686080120721132899708320322593209672816957908459923126638537901149813327859588221613491947438009989653497939916133102039142286574824908506248311329554485562921352384565220207803814812158140578944623488396959685728340930586953782121093610650367932992128091068813891165824116588098812856313430940843265837497368388835815136404769770984054616691745363363477620069088105349870891106351879129424258063652399624609382507295155392539696463247697100060817077983312763281613402236081095034011552071134509439853737242394849452128786796552443197716323218209568737738699825565080930544580952359322100034951670921051600762934079644190373512321740789138865093154278274835122272813342494460962697596691586371714342480035437971709931442369351268860449621177491669790370761758492893176738300573755093632074507314105231095450501756126376280786205208816089384381322353499757811356690061872322946199743004289188033254910209091000974222635527447838542456302505876195405499340524231542634317270352604677371047904918307271150129401811813574078635275608147927056410107551517158667954630648287719752424489826746119488711070532502301248132762843107786783117646654260957100315307191467379060174213992007605177392416762577937408126304486025439296726487517759997638739287793644583027317221612147811426094581259510723854371291460343482715895213809706687782643687182461756559985348499453139665157438971815973490598632483095838058444763032782408236635606411563150474162345352872470123266608333301495727342697588926647504845627555095410795006166255360595829517774809884148893349024190309550015371761564522505242269194489422594038021054783958424857627464473408950433201313776661885145594653064453396157256869818235882457749340669295949711966999455333241833625949150615451934172502819539882778486900697528815136146597430894448058435899786916484817535669776525477405930369716651239015788392574206751196006188306805753051125276555937354200228878368988499676533642725982111313060266513157987383682962266384594325518666472908783349169970461729552819433999381549036527280372702097119065255204036067453703144476731304968175001498680410431221659180906073979584369399716469900885435413844907816716371844818230874474629601434976125711249465916486251379832160593928858347199882691958631645337235256925235025368444483939896696677147347268711116225491396476690292679964409123255557254183607980468750873733361361212690867507127765828800311811101289068212801252743768665858183982089665725681807098773628804393660735254001509925016844919274845646144318986538856724875232138756221876099687654435082842576649131806259464049328424533905841369768422691564292822195596282812903688777603812439716696263171612162005689780058039684827606501484629869787669890769529336505182607010267746724974438958614306813476282984029281132934404669702498313792404353231099237904674927084939077545417844883631025274692822049208537425404775611645498179642065447570370172406584924704712089811022499602888203898809495160249175549586370520957787750355956170922560404558688720925037382896902414633362288943743828176476801497932438841101466614563179752135831655461527343059801154146539694597512397968329837007364673438272233945970709973213585146096218310882109989896180339025608859607811507151163968523559836596784162427586039983902966351055936350931037691465777642829296492653852426800702259347875602274645421563361035208685358971047673568713048293443434948937622076671890067709527111998955174644128883422132816379617242240180457620679126556939811990272593084531503495730595438513169917288834842691881245364304714002466763433091546363747802051320819953824318063766121796192696601078843123910488234714363371846167566588633865341156265860257920742773943151115824617327064177018989876783931305147764793156852438896304138582431915149842564357120635986566454045948696314231059193473220856864332224823596380760057664883171229113098175489066968971591353764198856796446390919941592087215772970229776781427994750910557757688099719688797509978190617292867076813645898406080528012223500450178700953541405709122990566030946132356807260970378134142327177306848459210454545395371426039875969393521992882121463324512053734729978920465673645083279321083604367762677545445818921743985876707808266413803641101770507389613491732810430749622693053045990416794306123244000375470171570207856433862577522186164162207468880896570159712690789905154205522701480288528120872910545014093737297139851325853459746492316754021357963118797432063579668727438906638108877558075148840751550135982750689178516611166617937689451508316275073525724055048247520987008079762568038892811364784464216540749188020856904026150713238416738713253707290678349104909476563371067994452274198224824249887450285773755315495879396797577771183752126928859218345934927194189633241737879352776626377036138667327628528396156469164600447364529277444619093301063745661241423976368839136816891114990292931948872150545699391726924985076677931584674285789446496145280310695982352100803688869201453894784652292456727716337992594117702850168584261670504901091431527547276577914929649013765476542727656890612756005298427657746831625848045526520026058699058707600055055703226611334342512328741750736598941703741292493362584204119091454745054537926406734357923139332453802137566175146409613126961227944817476557055190810927203598734613213665128307393334005369449867474667046618774289310524458849552791454045039579124250478408367661854995363649500039527549630254736534197602427654031865956830915001328073204913257466082362617436381203436669245369658589091266574674933143704926926019871246415582808761627217814637249100218453639206353992665920026860297122098081542025676777385646315349820880174967661693763450042525937259320883174901065561114942073179469120707915819414101932929257662011737286898226470242556215663588364113139431508013668740221333136522033377640760977274573636831142937181938831790985504114332917085999627615520941123632732990709189142713014135788302455650513700654953327776252390607497111823497067857523784371325262958728153946262451462792589268406797351155439002878564889998016264514284063705838620640120686373034824357095837092508598484851633893986827124166540386947443214458394295028687229795753651130009650270554446766722631737256359133185828915156332909333858875665598426169493376494731645796330068024791960194900777128350589427011749492748127517178041560825211011620254397133163759110553930618540341058186769927010424822726629047918812151226081552582503372895691822253341751331704352738782705498513831219623707902482786175877105717814679219324804067946068427358740790642676501157595724618710670652535522402017209562867983419479838620121080398735216780317598466102804685456139567930588455703528261387104991987081860715901307866429330460915997996022129825484937727261009120247063288117094151679791949360176019356103656428259521688969987075835673362360867874622749731793124794904142360876605595960031565898868887806300992244222762359461415718337261570220032060201675433162223668053223702402130527322847654814242541346327957055121187380607849652728006433712590460765755921314059276952907181505676550118056652300459343343672264954447213621629955738452253637827694571650946322211526773978341843296927646631135535895242738699510822968505235882385389949855628195352923357645727282741686805475525777628123908660884370681802741797479982140046137328940659064451942542265267487429651826384918371648385466425785460378805378660456781653222563024523129751526216418431627807359449634908787268914511699010613532029226805440142341695908112177560063735229993343145057238230914966674109971158548732573799431973964421726453907031437873309314360890473911326644667312114760046871716472021040599114324225674622594479061024246286253391251941812171184298344552340257920289472711149638035167042120575171658682708604831874084082567978765355383352578874338482066054087888387961516051051581918939533185227625175821483430197769376448256904741386815448174960649500847518499884004592447879040438684082535099952973813852186286824177122670048799656176585431514111176469064636660688650635103557567248716053822198861218498928321286750096893575593461721998952988136409306802765777746557707021012741705324594264015726335634533247332548582653227852406400542936336049796399304427080877431645558282508433032550504227413399671685436430352175216927932774785680194711258774481997084646450844557507089042979931690734661552215546198268154278027153298201449839753569222318724244726186618394347998156028973381551806485354647531077406783384818399544576668669991323110770132112007010745372071616256774012333533074098218482728744234038228108121486844932136861959245696949045834431081009379984440367670283254846995526084735105253960581836988536243859704057718967724647161123363742804946028556726031413343673612961714366585141869787088797737268597180773795445252498631907674051831041174522970911633198300429114777686308703248894564542933973275438882010975211525385340452605053416672714753119013791580944848743545058843526121759625155253064370540206980681382799907931640638908353365726785897715776537883376735376684950503589652004622897744956399686343502500007392909925949038118061049955363646782337283943544767618405848276745621407554883160253629678467480102948434067148198200177542347082765011800492707160399345566845918847500762940383687758303860164695632580924984741490233937429566334967368317725018339742535565154131356551352088986561071578149748827099165428598277089970252866145816272915240744427090951662364253657454291833656635755222544235140101701597920685068613974160970299212051668306695742812855157247674586664866905574837699605473402396757792616302165786599065468322195647688019772866994387403872599787412049457198988826332318800241446543565743949400958755311256086525795193172418411168893871776041487071124536716859953977342242888393741105496301033842151311339497748744031810980392921502336436803935603048075896332002472207410052222647815058668304520014082793275058138072929667833811377360537925577497975259321299697921109828665717698361287178092221794001708661841805006612303928077898282089440800557279365206982076549387620139711200442111155552478982922757148778557228124754634374456815556997673714526094802855393414160043344233676401234297036960468993806381130119294746418812240737123272828098163750397558305278212702828470265458974382936276916322649192104438240865304274246388983625779398924621055690443174043659869063994658491862143968120100859114264075358174512720759848724683397974418606068979971505351563216774548555880597305112846202394921628208615935014237356110256082979263164217288371297263825979945318603687701751486006705284968610449774702823488332659961567818704050061777390152115904454969604551762856737593421667883482025083455056112521644604121274620591556876767652756717840857323641325619115793327019110785550666907572997816227058201460293753184348366570912316391295548928502194094563302114991692645038168754109090451951032222124751495699685286499786626796154891505514314240763143700243462954122327953186581596144893846800812351812150905745193632417135692717803282930432125669372890706254710019680316958575434701785310258227138612744401846306983960196034826779733283042666671395089237434791821337893869101899410599006184770719331522748752452170175140709859547407109264054596641375618691232897492311785743865407336817195272281238440041782709647559713009830218984091599296266054014313863725397588117152593485563580997621648964992446784958099005215896808019089129957420476373078757270251567963875310829781539827401570491249444014201610841048208567544165706863946114403404017444412074738375058787941760036856482741859313624748153041106361920038686395751389299456791143027776686807221171844475024780572022990666450109889059353142620199936347973164049145695856794036346131519985541588802372081841057520028550915659118771507817756502703127537419946338129741559790010098018799319326370642789814965449951341179490614739420776861865716835270832571434877584746530438627184246204501466659143521012285903881398253329423040164935774073777542642706915716939807639409121690205512955979520949269346382453809277024929076009129809336436607320346485167283357656186990099735594718798886356577370340449464771678425318867008693995967691967140324276720586275885502625670989332368616739846703334052441508483812877311216121839529728618592683300728508984501005780854475263536050750882576768447379257490157182199370049159242126966296781065573965254255069523301820742961935946423388040056635063572545259296516987364781772214573585126958564269223011584372875490366738281149952278532193126625478508329771610010280048717139089445032050579685993410830439374051613071759138584519884695662704005873387225647347140979762915779001589550464208269407467422154500060989137216036380475649709078522735481994847804740139182157409644348221083486828611414529457209481601661491410407541640770648301469196103032483278299848394163402422896351619587839708729874459063706083047801465340695123578675060228952064276836752492242005910616217373308948266701644625784705390754456220351078953734978799890126170125452220437781972288430274515636234197366662399648371637747442031352822764780605055902308975881307636752285818435382650680132163968367126381113932274327784116565942415363362631216196324657944690368999552423124739274546660369478419605499503473946153302364133665144009316166684125421880843883096313510044703630492396028747443456929649542022804858548151192595557968118849485328447466760326494975989866874628742415748405085617417464476939900781002258287114516582415277499180120320835199602492240328584569049152960480380387587103673278447428084311334902171499296416507943836815202594556048381073189398831404238154734884259641586998761336274251938458003824865831990957280550941897079515521694108515099620601008834431551613755842529843023827231118236827481352369102942291814977403644574645749129727512383377801542100538811962337594734872165048938109570002900652567997043797061509148344090543093511092810396689336809948005091113019308091326360715612657636078290726500705711949170174963768059007920540930921113659614981921850269497716318777349860470102361622961803421864424951096349204681428469216019738587886132991536094813294856780865345827844166511157827732940184194549293436794371528307537883723809722100642630245696191138484471700157567904835005820061504025643536981219309309358394073102218640912360604687895957899508451875889502362755990331275318279000834285224198417375322529599690880408275537215503786510424379068744676942968387620645744973515532646732125583867737367338960643502098992755004211260571706272632518744399862146397408712154019536557770241851186421626022958234196146312477441374244296276525636093085064328303528334727983940830936726680804212688835965498769944344228275528859738532832222555747289748053908726910034910267074338619456112734972135859771258486006030580433835076259922245336951952227412769510036182804024772633512430699714760563861473430856512401769483748244907612794315596625073104891447028404124785335456694261325165761757495193203820101140337125927461049736528650255349022432004974431394802247614160413804353524002218884157295560116958567780721218920143031029526797221879977794240476669770088016419909822830743865738439921349172519832246598472293995228584272479331127527984655351048770270891893573841604154753958777463738029664062002800563204517039053955678239345756526986420914674312622524708234683845230415934432314267149877921595973439549261131094363671602872759921994785502264251060360907416316192683487066725851486524309157598448764037020946220226159831830833348965323503774466728560115450569161438075779471129178863575967513461474551887832914482131219339125325964329664918802797994541441724635659566100033774336967905849420641963881654435907730491996547968653972282160726625132312084775962670383915404821519039851663016421715287233202864306458955864927628806155014494635895529230930518011792124579976620793467717327574531052611466172370363115437236393764352431434731729196253373287267328418638440184316471828198708445843204112032723116111964151697379940164912075906044399219766451808918921472962131991410504584892927180344504760045447261665137543148671611190540396737858045028330466407621435694298533746420921655950544715112083522551002659004256011532199064820372212464177637409104033382712528777646230673006338370937707199786411364996165169586309285790302727877691946985779750974035466998591341563129395674718136833763630294568645892067301385844335052438787611152709730013845155716862477294636344001984032033995234297651652529279861741641163279955039374367245564714603230084909552640490009001903833159251571011616266388094031262098758306172549177535459252806336253894948830286924746431731607639527281421136949674468213853783710524037112267171094472906621345351939353888106607636121043876688446762242335849815222702630566351607162040230212192989829948373049938534293620646263134889421834818715691247163297410043128866286546868522076757886953504093015265363299910491314913064119354882338835752710770680092342578366371366533827458110466987754853653425348756611888219180130732005204637960080200579490351809863215301072492803416930575579337964665636379576541268137998242429137359714946674579824150334790197620304300810391096691690195000642453116047390540711057563595989650379278650239083898345415733445083230978522166109795370931641258069230700650529634376300375788207566829360854768575036438822100644667294493648494380464294499011986645126534119647276309687358922253153272101006637797116877196746550682327558525417859780717847970725597809147744666514244938887837511649401002468580875624227114009503776771080880623866627609171071927841474281358737400302548181224971368644273654459178538263086869047116195687417495616199934223659467940565013657730152972211136158809512466079443397275007099726618199395348346488122656319510206640500318809936473787940043254746185743196281533168207344530582517387992112014277931734341297230266385327230562858867283500987305209538572054279176391821633544551232107134159732506781972156665340648937260597424823291914089256892020681158455862622509866623725068483336149049339904485792725629799906448713002592335751352187447248935779597649360195267544229541348656031497344994743881752850782513738885955306672829876931350493013941981543586409907903872394515605139053908685730360538846309005287090389022341244238197463435857284019477948109382761752322450975450747135985230627520037688742822868639527586548650120027216869349678593238259267405619350399945825031497512373315303591788349691754768965638602583226861120216478826636480701438684080712669781698993277900529763089548330821126340831968649186370932296423044404744885009343871586810891733155080926048292701016152525816411246242340146476980647718743457946647785299698241273765558412818046728629091295656464261310936685177730379783124180433376234923732624231197212291597115642295881926902241096241085509958261857429380576564101477780965647452220385534574591960843959549187152986690638360892203051391310267982706543416321721768696487835784382792292504181730324113374024507669866780449924886249744525472406022771704298645270455172328625382308632831378080561747980955501245204099888506868035299697795870760688762589343467278960513561655210892329670921941891210501736832431427993457224895300192457378470379343929939694940093220551132850000017032890309150805238956558245118255812309434118732788459467186405615697760662125537430622605348427269851856700353392326586637766297046751802229462967798797270274957911619594416143775673673963300810588521270304152427387532486526639836589718435082227756190975238590797490280884807784729055164021261830900194655321112034353872151049361992788388318051298218414949648671638429346556819666352264282024570141374531210826094213003395030428546943299632172217837635343066496045030847093546324495894838403320699649022872330167084794895946662665567501228813295497395688071042174392063985472501712354774948939694958902781679517967125862685772906196640205334647762704744642352096408771620827683904107745601899602102800115365938831867053852827206562996695728756308599901376962539906091220447110300951817037404777458643017131290540792252551081453515374660984648941099037882051724458808506113600158408152053707145714605226842635755549101142645956426306186616862143041471334668985525290343574562336146783969017804055915408351510191916150914241948364249114779966173936806547955473492665896524657507972745098318233373116359175928166459344255258253866600651802728315938902388592902237301911707107975266189390791681642621235893988279960478127239165422084131260661314194656236776016369638231750215030641106160388415924321664139460745966594172942085624616634413573295587412454217443987852026449741373665930980786694104735488222900332313653383608535675001030233383364223021942721150159380975417617038477632879771924585308480323954698196780707083567505249628924153876392070380094872070034043302680078980721549236605774231773358720988871360914938242963733012301003476269328751326470434363768912113237085729808769145907251156400784415294856090607466466771451417368524348684674747694638606792769280159375012788280554693460459463448297977861441560252930694108120398883018242254384281666343403217688309023064713492068784916316404830619180394196757805600920144274127680593348122925954082600863966985077083919409758952911388884208117453492115630661165335420068705672445409282849475192912196483740785255879448437295531811335110080504635388908844932985989223263226785375403026090582490379051146659714210701403577296992563516346028169543223766537315131587105515878601229211838903498618535879179861603396151813211183978754981379094982530622330277936193453871263275955131946057577848644248605057292004160233526184600577394302876831573016469847492435280929632094273185422120629244351440628512697470176967137563544658346246531220553878650331175918353454483279733877622997396876907128089811997336709342774965954006199320169403044951784997237531874223932069026850430893503068010349932867212687968434183541515158745957460183569836174162029761920096234036690620333245393411369152314672827927178151854379170574026730438572780403311916361434704099700900663184288561450285198046808800074966839757193749375074484595741947029653756938409157664904124679826823477584575587079757453248287641028490225504897345531816444079445267647455096145054582000049110616149131226061708517879144057333725244706247755506903036390577742824388600300434746159956085599605458749379293097899185149927825493788351021679435794856923204511621280395359213294017869993294554952685797596207114016566195525145694063062703822449837829197090879526360969295037161181205028201314287912682537341198699834018854110151355572976302676122477936781005803762649210641548067269078834025164915672363659150100956108640330468891609630137114120558368874762068758001028543336648541384457744956469812924941382737454934720688154123506504420558164294836646606685974757737518209444933421719768754113573081817893242335854919046068694497142161524492586673032763385834508155159203517806568491114394091201522018885377624405310701312455542293814661729239984952027163652834739911694827388813230926506251093637408525313414456972800570051017520017579270716770772128759728479776206337207122659679650596196586911538203931395151808703011489336049999315700255792292891148977018351288739821167014431517647770009449298764161441460860790994069203086560828346204456698266252948790082684306639461147899029524537566696755303162658647016770026909829377268085437979736457557936942700206489556353841921479549647208787443235908074981058151423218834053315635207866632036363184079978611090116318611203710849848158309486679302737787821874294323715526385235654155914434377467688727178406971657670899858836351172334130819715668171296994082042051437469840019884352721252741891167588559178396163689657779548323036057898023562754814690741730861514473728402923699373474687334857597431402577455849441549912264496654411898589704274857812813335775849478094326201751761763063349432754772311598241649742866401848061165341700751749422975995424794948657793215705124286298221340314861443793035518705208472951467263784023530378074743904747041485281915688436963498583828578300247998027200934664066517376932996618165619878821260459830899051867152370493285761583825504969002599753335156117804970091270989329808301309048531333341832319151313555273768229205636000349664921669352264665793123216499501610103426449605328480437087320189490805583736539604946007859624304164943966088716472165578992872139924130729287989762157402456256807518603416887439815587221565965287475551626054884911814296982270881910449558238271875443331840128291754399283299718085350751423245176353928069179554425377054863705704854925994043398965556910458108090897637920471419886078185842612840290979633386362173459826142613429358836967963188642256817417360130346808224459236329631255845158261371834992896908106113018921513631373081591386459927679735578439272992245027320859216088306013160077361893851369720759594462234279727153642695324716130377232221131772128837671998042775375074055428698993607257915858160344536372045451469960190466954853151061665600650556210614294158323892165356809605229372419592133325902723552360038349151482082868224086137893476186822569513496669953187035990547761524697904125601452215708987534575579454426799374202758863098110133694580386011045966837001603461225515889024741886343104107264867460409586851017683058340270588496861835079880709246180048680733696745890601093487784114534226812391185344628959588990847461389187599101527334457334731822429516941457199229953121802453744369422581015057002365960196201828639174741835496368982854454088710983620779644092843590861394706774037862437868787971957291343179148187753815063210034504566873713647803552800116225053503895252214947749078275580712445077622331844011786788625751787904108388387669644068709656952220781592178568279413014462911739562869226602754777197035387564434896634371241057794783940460389443205470934384506794640390603638848069407420976380961337237477624504681777148866371997195967708296257504508643977995888172656513918796997117081718122210774380638470281578432874363742597683258301156651287349546880765327874411015737650810687323824095301382826745257194052812102976466207244540288953909773616335009805909401267169596344477200450082417500827672428098637535390193758577277862560530116657062557477577226765944825344524005488669529882322583162082332005150435261823558171588222313222524326682355603515041776361878486967695783306046250422582209519734263374122279026194287117722902532688898158467401608174388309929687000942836739208424015325396824575087246019416055436430126362277170326223536603827114053879784254333364780657569238580542812431520679450285812696242459463462947890174258245611799421590897079269697177152679735439664230404983221719731781332207500887863067114128731317309728471993977865419832011048726153595219995728761261075734669848156944763669833346505573433487127072795909350871754066531490765909013529099744275131078494862497416125312669997989920735929253126141167442902385992580606721798669825990634714027037651919532143983621197326001245125974889234824533052055117832269942127891246641128833444025614895804307210761425477663898302618362978918703931406740434543372088675834682864306866384577971043872348835716189336211726259786423527548400435623707768463793995987589374642485482705733463143295459114730517404310083782509261494039102769658737633644959154381920752597412870532443261950211843079057694820280962385476753824103588754383181593801676990068632674998037116813794907491561780258385634181172454503572020272917499877856084853221479095927286979300903666060155617134246034593100821955380652069511663924745773884481188607714636071319029315635086359677689271973608785001088537224404037733857020879439147456373806116064463230477430775347069270854303400814201199393949061194047343649699715070566960558235445004851342752619906930567006090764890945140581295566736698626916059580544797962718691933281627683262476138769211004222587412298074067569230115941091828766091043496548815723537519337470672119581716565986540070061457254039989422049887333855289664960843592194119715154713573509031375498868107996336503040385046178597004115916792678428944978549992025648916307143441575252874670191450155924915459154046256988370338818238949609427564416183338619820317472841299420069601797124192548076605525157215060852850523488287190069563330470652765600807987211407825505604996973711074213707744213134544764791872341964736072971028437022653245439225705338292695236462182507756859189281069007751519496139156395319436514027766294526307571537923588319146084862290454259253884484075853582793395995486238239892870955098194291962455131797778008252484522027271751556902509439019914462064082008189963303620824237415281001676781026956008764014112454227329345531264055878916426014814733496497541228630633928603196847682153704788959652567356818069661603854971999829336223399384566602783770357131647993904255155720063691579606723716810089588146850115416030954438175106475643029795121597334965891019643573824161311273739536706422496934375907282710631070312210168339220099883413891255070448279013420940051679560640642393227758464325997706848115478485132262974090975387572075161038833088191890463125956681231612170064971072956654933535013261696778634944014515230102782030874539352604049378989328412561280144333191935337816857397673391900156392451578018477878438681907588005381251070732582025611197299474053199718219045969602712419921668803310886294037784152584851092724717567208217344545760848040538291504806124169932931466377651667881325860770045170009441857797833064331138542589720712563603311654254415053408596311299955805596181935701626239753735310244829773786689437835574759472706537588032126397944784098163816930396904162558645103184347407815738889178277030080446697908546837813411600291744168078495389762910168112225060026252372497034273703682012938938451055726390990019235265999433979731362851719667348218147285939563440405824306898503532548376103836001089720342087943888793222930470157133641680376403043259106076447129541146576481044614199896067309080394256082170114247952515363399781570897465764387233091344966979969604352187449090808233202995965276709317238905366081075094319972020175812832277348892809271895562835820669199172144069813760799443977403892750630348363235163455350234917888959311129853421693042876327945425161278285576888930883488686916847336700080531929120334683733270378964536424956557887121323338171055988717002538855486664868672050410877224062224085639375927715070937134218630458511927792947177921351733356490892446783521677643079566333443893264430641639365214527023978875256650177027486555415048183673612810818344894858749905847686305836994003885294016873135963556877467918090641047475479750886991721539995635304224368420593555251720890632100936210800200686267094252059463661016415976127248346227729301825568482092462685392880231736923605247544589501146541426847953991735414289165634236573671724138955117350108291686810701773173217851024569336219993773649957318789349703654226173304552128964617240838091616235142244285345808961763829817364715265924698401810639853604573777958588456345150583249918166403502059305264113674171459138090553528386034653314600966796920775933979342651412067706678758661488546332407239290732478677315646177141934660675798596748495497586927959123796931245387912459616894834803121236743550228631353958210349126237986679966493720751110829774994293782703481624024010963476742776806338171804912388756953855478904644036977151755460585404004742661353891018783134432774586544496024842535862847167780127527053067217910033278773143782413181536518903270330996166376345883531911222148500660928590499511055248803231232162976144704765054982225481330971792999097032697385192250647171116527866006097676390689916400444118798449059496860231364005496415338584395988371284481815500976678503356987449594534655185101187055856794489400895588932814369637453896093250322660473814862180774161306861330833677420997033704556793140292276422354303132742308288454927521626037186842232836681196810769038167236942275286953587021960370356646452324757510370703157924591225723942862936606014881782465545459294073853603482333821631291602034249743979110450847192250243568108034969591205150993391273600574269272416793638889058251685107322658043939560139480703090752477550954513572694746637182970792389157415413995986779535679164120586916442113853392689010130674483907781563678130148562965481097933823309233822086456683326901446707090587820061148697814374573240817671846959810926996187299085581450228757982153158934930078523682135972530584146311985332691843418916804414109413201325123744414073504779857742469044209762632088585907104345111008468096076333473898054799611128090532983242033526542812428952821742571621677466617324753259126310644022708437961705466379184253866188291467064562947818013958077579661115911452652829683815264509530206089750806322223711869388241523979482322787558095419093379623386744672749696288309702205764453531027093029980058932515965375831454933652439362732503466196196943709951423399739529579615868883673842621397684468432007437067238905141926706855882089884162786413315996246590179297076370221255967516564909060850799017069530532060148019363620241803811465991504604000682666575109524659855104799235342663312997567335008619659945058949215388537883556786789369562975740385776598414866230626725046132974211431411204342515547548007136971501122125670546039225079660813155650659858243865038669418896683871458380518407568937714940409383696441462491486370989175429271979687018287442228173773199229899540878501583915376515574801747351647883379202498476875396121520142940503836139386577972993794921707831651581343666825755937693528133269465717522412417528524778149755185731515641725934307990209822702082730375787901736958197958058009540653250682626833378116035204574969008666018196844411680112810771263767153261183371569374695872607788575840649302022319169700075175945774359745133793243343595372115518787175637717358464624229990564339983888924122227523856048127471341763959557745648803460476282660180570050716636383742687450757022655126859889846147385611005026090562878049455750009367206391377918829817457917402213210701566239908756551781325878417767434666337271308598032710564549030417256743903516638700174810144654600789141940139836142635418791611989036001488318784915906214496559376661436438971720978774914340332246327876115554055278922037102122775473003456829897662826045844858260259107345979528773015112250563624345254370003083269882475247041122894918561268076130498695931190648997664508964118304277945056366365952245561007887561735090341092586891102903820287193955198872179596807243949426722433886312473148194304937556320152714736206752180948123735137481859531327201581686362725995034217174704880854217308510038107202939472543616149422292235769282570744106255730848607729674303812882884290929370763829886920491488219489223832814398308900035669467193698881096724682410108839507885787844577626756222326819533638040249856449224316769361065988330432020569853072459147838577303339447528480099883843188310298896566046497291892666739683840638045665616114936224320644774063955508076678890093878905406392573958115663510572000342512216348289514349625467355207777106006285182321452972142518560343154731178703130880666468505764074848555562427133543837277679669128536345909621210161165467509820837270466769002520060145621912555019785386009535763665271236921426554278950359865132567397651664042935238872438574310932690463238636437712265965622938496980709502512264079817103156068479886889313960438564460915126828345415395646813367960496009428209523624627041211756475921979801921339902918883157434287836061424034495789282327036244480513431136277046411948592806138778966310516228246230631261783887901648751796277832989921446839821867264820232586314792783572060784187233230500884640602141440661974854293962695500530863917095407769594514348652234549788474883727222977964688705147097779119711960411622303320868723982244946173158647685606725135373824404375146696619639106726639116978575070257563777965488400343210959659988978828552431105287374395428763638302848625986382713484803823311141225752184739373277694813455701713314489268562475532678847424226446286059053314057545891349289353413022182184999597252287112852520596139205938526976081709616925728923189106053517413968099657957154506577455579733973522012648185801312438250486225892857205766937547361921237893131741429095217734702137975425106452328375692224013849169499707415133139127091027189134250186369556692194189353687279380111163833210874165229246421528279063777389158798520259586981051156578229409842210846172415199615565513313892635465931509261850554954990552181888878775379260571500821734566269869029561831472352399581722680311648075277264772283810630123365702086165305525787953457924630218212055876561507466382153895497203213087699917663316165870554623438127130684871637761745439293823706171638885872149184024570655572343109953480111662011753172589987112626109155408933081098810574568379337653315003133581979614557818145862387676431332312087994232335228705147020579471612807006267955091865794212374681405307572702235373601565776405972879290937969057039938775932093296909253618220774777798952774466406975915085944028704772456237127182874144420817991532622736830995267036712369374916248653876152268004609208137955086302090407490049097665084032427898267455326049322572501880325793409403374590373565192454435016575254489900965295307403589766170433974074251740907797783312780689766402464982902268733178204285031180802944685647861272443396494013430390789019289633411885115463519365168762576961869073896873692989005905932432802173794226563676579922864114815901440409432349808835821218075423793101193585466333276349170446426625886342785977020696314550039612616377982588960086990789725728600154425015714450868762734879734071210709956219905325517459907350004305083630053645000406793239297458562323357541132861625113106813805033442748391949820585601072452875089737120256783447075879442145386612737656761731199187276912318652277033672044668945966194302694541660449560275867703320476343210446284005105636633126353772373983891010974876704406420401364551454331625349904639914567113605109689126514353977833456250817269049399813492667233259412082278338859763162581582639154991234723616931562631605966091958750536382322057299291948789406955176684918745055246349653522350596997005510205345302195354175747529583883756177993679730265762306035755329247533721093425958887659617548759109601993328952100657528479340149462773737979523613586050561157468770068002531195049968858680485113232048707356621683601073347407733581799925634896657903890103972572462771400377300586068954607489613835874874427050996378691671658890500925912870993186824774466724989182137593197107104191110251184224656398089389915059847928050254906508799731571475843438832968764155759118075306405412179537195791278019094109074278993649210696942712269701760560265855718292920314526568790452816917164955977975640974910400797468545168033618938605819105765161465244437932567995563279307811358226929562184969914366262152584394316833489632830097433401858121280283160951921914882934831536009645512589820206118369075696423133611628831614452857424235268169618255263544728604707511620436998703937192270844998091743633110981564858722630041099825960943747749530451529915139020174083935848360406415067979842224425244802748196822124424462699734073993368083378812374434092873228643414711629508609797436662057389194121168213919146176679608573143726065394319899113083790481765165677131918602298456398345399474209135572691714999912056866712729903579952938054022588978978725271137355222905925777189715962983034953325502642270197226680008316524403062733485784648235993114124408584599416519495406659201642368147294250326580552523665030316440575775236604424500204135696937117497757915251677742979086702429130879321912283567831902311590443478578948402611875876972287429209768292903131397595412719175687327468149754422892831133986246439184851541095539744328357210148271448415752107015093826020680481278790038536533073775449875086149345665661148071923557595590580234959743687294008065295918539029213365528408467214703840411325154378984182021682728886180429891995313314243995079827828104560301378947608459415551604571967674147241331478075825331136616178813425663233528522129275205220749025739483215531022652413584432185167581731856389161621022642766414521733503198072604848876325336488155527738492406234417802562662768385447969180900921557409193538837306428666381699012716668211142659797842687911468344913374241451652064476978664604722912706832277389487234002651107594204975847452177500856867689904854495022594387415098679213092702584248288018495082662798582786024008583453848456390082093535805419259197214182547566249163924733178162775498094099286148501202289917457543055759624415597326510874177185258472067950872464645320514065626125823480959691155564906904197431641603148095994212785605167674195931536398998219811407551990222032445627127185637716321837172211276992353985003304941343999880948862258582875716228398001607144904692269564033524017747130304938799007505532673980949179522956229715719775960253138864060625404796721424297638079729251206254683682966448460408816565226220287100037987089532201915975469133696061773526471564519283858544862588408532134207221368087569226723605923196311965088061065913010825975152470513137939505850679790824058899996996179527728172756040010718575414438637881253185120864418518153743185364759424723713806942450885960245866814894484132886596065191092515073442428506605771642629618248155528206795452341412737267794154265619955988094943513319063407657711537833854508063798148384112029350203242067326620998928312212882390409556552811590632293678974211411496875755312470526258188930831274913749182038399911393131917559126198806055141567283216260030388703688636932195953915495946465951826057827338951669921314732061794494683479059099571247568628237525867453748844306914483275247756297120747579777558490352909416198995339482178499070132996570594922625604335576812855921046848822856516253096272746310179252845374067277176712720999855806132012971982070431552932469457970527288930222134600424950289270938373009011909277032249468176328314743977281506758264856786650371963415752960936410336391714495949726716807192880398593674195593018940944788302156053026739249979700619501085973132551355488439765967270823738900087764937847084142803119664809548307691308309640910493350503669771959290655025825688547528395743505251015965782249602271677918597733009397259889536453972869337743542320104320537459547208185790351370248699800598204594466318707067596099305882231484495677945882495827574392351418776030739310951522861827312498968456748731311532480211000599287911843180050495087075723450906248613377294117414342995048461293446204707016882853550555347886919039504026429668166094260905415395275998496234721797698608962618114169723717327485118699610404926664549812504265491305147769756973577175213997700016254989514893995860440623582672294863562722646923817707498319854355790812491533563026632182436165893349017798024259595219782643416753437783188647221949465354332986172532069900936135302148960954203075996943305659782128205316944043871370044211680110243308651276342415533054268921065569936441279625263296621643347542491751259028131481743578051472533440171085245097964231455340718322341248450331003269797030098511071621343985756772391010448016216364899376938103292993645652280772123840665837596417955955471083973518033747322605226703504179364504626379166104990533974622881159780348609981115595596239120566850860003013682396627749697176740601503162206144362274980037501846324598572623701179667576043042356130674804263944603522090879509704861171115385475404831446601424914301226155714976176670021419926532236060829942704395904769738552850600342966806997472509582851206160896646664140310246904532916399356989457193897089444934179643557325389395543933867547383343985854920478659469679907190249439378328733346659128472003818736852591968952493346247609018614374400289830269511522387344838596459897132272292241559756492793423545497569553921407099732580352788441186484634149723073372869924720028040437008273085031661194815949114617838937087018153064962634186504438689178748693203377447862880262990983377044988917254065695191995200698102025327858296151812995402541543115116434573811200191901694652183969568259406173157177259275915518407283378351099940721909193512901147904101899694527645918511879690413214697323638294181261568739198298755662483924433830056925604241258296572682124816926988831410243254724745463613480545623162740413599392107966971031695111829823134821975007434660889292698227904817156780396970054771066397298596072527839217316720886721225441352807303028917696281114745164692771874363719876690790249278741017838076163218484597669847685946225408608364344194902043986479480338572341075749424882335279913093514827732834307117203365549692364043942413861680748829648020932275114220158971014883190235425878050725299823562938023819319353020126672117054808818033611191875258777677265230430881988708817594112419495737570779210728574306037179805732496276732132793380774564270646420833257066420050443816858473304274636600829586771219476308510800632313208645277054155409839620945541623410976138103619242393454995757443542527418206831466464767694262282410340294420046025745271111848514215167859375684808275828871539125165927732247459110187232297899472659587854219628286830368930494924177375770980146326004992570920270404903639316557037584359978126841705323676516355914808881880211654681878826600378840759546168507141710572617525337202246127797063526084452792223994284123785930410698929951165299718208880477242711408789450972368848481204881298703780746184770938805128881110851113941988328676950492797130726796573277020889383217781741595242375098073755747678370752241428439069144278679226933202341525822216318938869940330631667811979924495016429377496355285634084403924286676934461757346972682949465896784903801974085691722224274214163290049602039460670845168014428941184931140256395367466836536157917615168713084575185340917998746163174352855807529734152981346744861682836046574634021117865022084717427427182717726811930201944957804028297689412849320432220131851159074091999504110344273574497210495375740497436242902467649362748018664913862303183105441682254377837440326984206756751752586850799481352137486647838015140135907448555963553801573573524545985609846613296513751688891479735435801146181748007672407187926691818561351834707427025077877248373410260577852565883986483791823940005015989628122174679073048244675568647188563435067923048541162337190145772884997266157824147923709392929215145524925690983898103825527356188585942255201286962159765360229258282387464080126093284862464414983316499629430092530448710840651580320599246899538940530493772347398997925953605929001421387219505255367642585324225964940155202066555259394370969046478332788144137496268630314827372658802708148884205536019680300706973731738250035742025099817374044040273185134131225632917243986388643292401121138361831481330485933622461198913787767054224699725578641166563483535028784829295939171155458438084462923190213995358517611385213240926007196720189265265267009380687849237330949530097869520315181506342820415186496386875894467978672709879804942895933906051929961586946970161491834199589817568029481811653858361873193368276933552956268354569123487283111834065155189032741049333371151654160317176295845339740632895156671828493903667987178199088268620955697114024305211743192867494258716828795873216414644477953959673055581580991191874525579202113144630635592531675410336430768897472613472087404148934736510835010119382819341244010432997562652078307117721987975753491215466958542638916794686974196131273199178978608254799462038503504733342607127182642578296771700226780462802176286308251911647843057966331249319087866936556425953949761374295858002386303578162635234464030933042475351264874758173212960955900402933917509129770409129906517723664951331415447538514800032093683583077656351237626430010715773804118640707687300478882265976161956427064858335962536898668737879932680032457245946749235832538061435271477687282178192631148543059341198716425235088593996674385447331917441508160745876551176578737428980986749109465759773975406195334312164335672361700280071699618391729222325287231450893435201866300918536715178102573211520937596650726274571117755153288268020887666864481812235617978250460448872046681306586288081037239738044541949165570825770795987594259980731718691106217892456253117512537699700715278186174106619721876284845333422245590188823305346762190164194198542049278028369354477797725704423445652219598644875191708197267104680464595544674155874316402748871496988685344543147178763412676204187648539381889169574637586316386987502153873866602468555968702421031986532185696253758040303166244280179345751049402734769554167735956999546358150195444525944713843597403111799458700605227329845623342837986120347931056513169493573874868041145781999468317361955260704400247755753834932387598582359481945524186052974029413904918663851211308148122115940877519891524102812427125582054445289694067371336702746150854092863343035234024942968697896368762290364342295532667329983045894291345988522551300003600873169300509304732048374784504952215033905208725996072124914597598655627249688774225104290531047288261378039114552362517213037169046672988959147176028699241416182915967513516292102941385566816456765571431785328668296249375728407156335373282029237903816387616776950333852081892077792501023997504297603697895843014789395972073650832781848778610509052443584607948131341271436899901602694344192092012585601427691662542215586691056643045519027456579039197243868357373052543941223220820505386061686584648078003057395221380374478783242679957547866442450065625150028508588649285800435678713842791250650391743070136264819029855082159322279039677037157244172169888843736171911869232739019205344199951459866724737325030628055027117282897707912347069635242405720918153947285526978656980005643235882123646584371223212871776533911934077241520506444451437288953150490817581498501821512981912865336552349937163910751397183357143784006350661860211953999565868627312433640815432607477817669173255655975982119795260150738297552844350628753073346304317431961780867660385057454560231906097937217798860303637100193435244602902336452521976570494045937510151012056617186559853641393185751153453607119202055969310809084563644185875964829723117110775581053198704141306460619112917363249574814382906745825696470406927140561233629724457020142589717029622968590336506924431569876078500996895795199719561650847062773843736083616693188465147364214183758752909828470105087371031672410094962289906386107204596639654628329120228471184282187599266139371954487306755291321306174858395261120631108804469118031799530311689884164471614575837567317926278774744293830982170701038884105752306298750084628684281690852779191627518463049526709979788195535553137708841410139497685840826310413867052242166230786057760492310463618933661788239699003192287005617078448682086778878822439778595927307778636517343231866103887491236619959721391938186642410903452990914784317964692868713248274838863406498654767185376981139463212641084109121847226893755908751658835398783350732887899914234092421073887414572966868549849454637947806896298710274045829259602983591427426088772849105802044374117726427125887455783054561941113557038673362169779507593803524092951056707190657272195181406499195733655108068258016520408761695857876125650202940102558261491973209547606500894324967139594258715786405753595749462012134757291272349303514972259835130730418010523643974625261610434811229646707236901781183420038541532256986122775557393951783321577165328585105538297600073342056329481835313056526990436387315511086933552425280563204733581156003093496757091921200138828395884545915874390800574008596339889942282304061002551532434075257241811664689287309278527755853196318040048426122717821004428363362356771757863530611120192610996885541274748461410740600927882726545895322465041285724061215016875478443787425561841701002010570017556370937706817578479324044029155885424585809182959505169251093105388279758763148657700862449507259257887281283017435959716592885441848368241588061167116580108154545015255381032103329851558815331901224656348635248796622637128968793615352806595763549812779124449928391236677182199849098011285377233414544703319691199618842540892124225104582699549156823711656458388325548000945313560914325339365665554002526119246160624956962537666074006253980829102717538758330131850389305753377665115995891259506708278430251656596254580121778145264448528820097348399750818283555248852309270410207917078144356032156933690971706723916316211826767279350675202970837895650654315970586055065915308594688394360998012345587790663430160928354092506892852380160615109742721703214096960178552206270368727035428494192149258746688417969570274556840415139068261654801906095308058915926698666538275980441983976281344377730264424677072731914350128391306400790673238325050551280588000847169256804807391596840387384620110954544454573246123130588039692564019372547946049839499177534345648930000124355248384903229938289429651419243155958379183575815871571203510919169091921197447004946325048005025003923233875147371268057757054079441726484356562443822345062562139567706640411555617436377212260070255380294294123921026423251324847213710324293382520092632538210260639351296372522332739544082344692399303802322824352524539726164922637088958020018683349208769377650695926907284890501025704284741454451783100603342247736490403042296698784728357709737256171337929617226621130587173959098079325040609887786498039313276913708114920934364462712391959109588293692893443807008650663848974271322340231545833278474975776402879364460599687493599806988893973626254413258804887787244429119681339419449611465070649194162218918555854859297131364791683660326652539704509467210236742379240471968385810076349540759681944950944079366856724651662509687033858520489762938830565592873363474350840852990491057147094882509807902960241438207741055405038701383430547745059140592098960364718273684824786709804876025721993019369917056331582794923770347692296771787691883065268931321057966062584996779538910893768938894103170742276597045529291669575817994809711267052039579045830498830553819787627748204839309704871021001441996556706443740842163229393157395699822443691392296376951196691876528867830487873766017990486112688519969293352350193525943169819471658520771595898545217649842674158911731273861449918905266082305934359651580420977564978055661314191479867461349097490491047397648166171641530737844885486981918599092659205001202809377475458186582325285391639936622178336349553680029211966006099924458160742943421062321598253603542714166565939585338337618414860827416608052909063149946819913793109766722641459559962125922416942354083738656905310304643281712681032394246353710234000412891913639148817783387476595546512357468653969952260154404243816309420509430892205726310379607650224531061183655989795420111195891485315785719235489458823713268887155389483167952398435312192375968188507382915535681257494025362074435529681776356660935314256923554273295730161004158842578925457995647335120343583823788287393117180304258056207630324730703657509085967077589508285361020459404901571777332732039295451980207442238621547216546001229562696027447378440164741936030203646973596822384599308127748293688416196665298755073317806009028155456488871267933488984641260524700618503116676336539643525945059589553898827179629041442053628416813613061675466348913172807345084995247784122634563891202788459860785313701426936796071308630520498339999014621348939104407974731541716512912198269469696043190061584681270598196493778684416182250985175311584174217504551154188447802531284480321270760357885264652456567558795048704854904971856856715439988100624906529040640630530568939482116759508796162702084282894087657885014682378627603081411980713944487411428126735607799264325635987886253506973057511101853820809305025600108240743650525758604998031905212540430773266460642096758344492304497307386182952383871095983875725145154530319885734239834908757464896821058181897252840746570233188928964781083254986286509528555942036366948218587299733381517991575474259439447671707304950118087181330883431434434328525615082244673561171144884055323542160607626400122536999594124920567306043785127610115763294624495317859805409980721692386198886891065905269141044335546964143573636266599139069675117125772364828013737045105446648529933066706876718523435069091846694351320470264990048776466781675808943601269498998696033422288358424550010818546264245933099855224786251736750198351456651354607169315132588864137970209326480197393370236671430137389221414339022038158937557053355776324886263034523417046091901818453382839909427304615793880856368045051786950765843395947025534420473848093356957813445190368398610619829877179814288369951774135554804005728612921504941058370426537669158021061534200147183871646009605150101127489514032335734334425696102607718855232807461932246159047645481699703764302982667812640110461959978937044979255008279920586765194245878551313350384081275965446079632740009211206585072932704213651577199861033018424441063201546063609912151610486505749395563557006528803614765352588467108940857595118855682803590587730719577832996614422746026672439341689938204848675758319712516789370706388335504114615518242068078349191182771238589718379331479230766397950510505499288129098268694537508743444135518836436801612596456868513317873880477067678272854571318094757644914550992869187274222876635618013584021578139566372085859862972438730547522647402565271802472552849356105602542733725024948397778114792101990555285095940020931740854713600735883901473794139736947281689941324354888278381956208399375689854243695569829771765435363456305509921871779257634845689802602053452887311829860451638278508096133232239453405942712373290335648386855013958694170706894301413127216923897203030968667988439735390622489435472175595586798648943530627316858154279458492151171445824938770853931997907578640254103237700764520742534973111077543567833067769741734449213192812864331923492262011147625289980656312210188651928701399865902860259319070247988065394096500491364109581348788256265767635476619398996829657038939800518003042576427644975920781491917758703768001679999991519400043548846386652162335194573942134796843979680329957826346906763402660808871952246822641321718125242698221889957228430493132197584751954717214593871810934986815679503374418405796441851178285430810582481895677955711409370285687277177564457374482063854422390782312199086758036099016962288956119993573943479619726701936921799906088337265402036037246416213323048155678841389797187671388821683235133770845080781001129729051683071767988598707543998142563610743857445593501473494063593759082195344149091997033338574431919965462201457630137543123019612185932902301532778794895980592675573396510750109099402691164144301865334048342870434690009648892333403312911862164012340732593058894357557593953156906130591914428891293706115730606604725525303754927752458788457683835508337191280095086046474160334135361677983212728809647669356538928437060015647381976922843425691367395076599196221171329902880298913550315845351853248391452579938140144594006288176829276236696714103900608132967966219481989767031245387897899608550287103714486439728370971231488092284711570953259284023013290275982912907078031075468397494750887869434753906351948020357218149884165061543296123157699452768153683203260165261788572175185023938726236595046995760234419287650288855155431781067984539796076451604868649189906799641008170636352808595508324919635417344957464608771332640884933292873677565359467507965717129488206851170284595346907898464541172359074471529433840964218919478022939518378859868395728823500637395449929639068380840045389764624282826669467881509006063559250187068329914955047311339716692706023638345001530592643000132035631795109645398281728183069754906982806449313379477413801110933713246412709563700780524010476202030269676518236952603643464720553135962700967991861556016446359220395387535822185147844237627100801428288299911424506240114693329117309656938223378960435503942385539202934165521436234915550246371360574270544436490234762916680024935141209953120199019624356330321657857052929000794824979484533369200395968710020651009586166220218866796148606952432552774344433798504909726737104507738173257159288950779338306292575589363027031832589453884098143340706276930817318262563378390896901546616329173240234618267151076757775347113973285949840629036675941364677284099446055463037476043729239903350015163945903720110210384842465907027129906175921711158152810068034573206891069174074974021570477318009553614511673459844652139402463221091403793628807249474107440000285288025269066879567614896402184755958563243410710611929307856578522455448604286026978924897025136134778610634897594292513970090048346519880841446684077885645346945045248404727234025445392211090467804907992562308491485976773586815165042431303108327401395606716345915457412022713520632881272560962141364367163927388681067162015121421768153613656130920771253720846973037740544697714885840016774111943219755342435528518886422569247602806368912108434642504324815411097253099763057338075234526062252845172441628244188978620472818602389220812606636955654650457325289012104398083336665237810819576098705944772852784108717286949457222881071978792840501088155800540848330659644722236356234320756271809817711517485069452953127339283194561019146489755065840258615300748556891420621867346048410085646810124650873859615140502939448858285572652284999883798925358976585571205271629976231351686532254200088174817749026365358140460799136065618497695872942386368714539628412955389422781970662287653575539771227445017968375384034181180294561807538912440909247201286541906213618582929908780863555227875118427472954943930599785386875569247255852896458793405861498065802473219197069068168913133666330848708542311870192964658987149602381254318856671154853954018179553008668665906503978010684831895059365633827281492958952091339556737106082931641844999670185472232102659874555233369635026686296484312152560447422061971630920525764514592308474373912574088692295272550490256552990545263569749582458029173439404196721773766159440757313669004081704579783729992731817267448727836461585809342171429332492384803036914395641830970757766738390895831138268349682522204611942707412017261456954391248627248862211264979654748121785649227252278454814452103404816854051964225492371495162540983266557033909216908970726603334506286383164822318776325827858660704342442026644046967500828185096600420911969874076484888798578234759915222928530970986410800476661085409200848259456201874708602107925218179558509398577490485070515868836619527296803924422102403781991073879277257672587562986218253482017969836951551905370412658436240111224896307360325906265817775330634551684345573137743771420357610649891424407914037516694646462188609629350733071461911929841968577390346100042527938986787397137728493005563439153891768623316602525413026054826299809082546446158892850041340270979055146677906073595025523391240079843608103014410265300447927515120157970030100579578025288065106923484360936598185388308529982920214266150299798546131248329740964955663540279292458168474018531082452385171415963672032590014946861114036794564004188149499635373574402492710829293052806589024896578883765564579000595020566575150283907030489680636122802957425291037106184119898289940030939420199146213166270133669709203088494515146290214437665185526843498780193863504779933996259481943200980846152346531122947329165072786508020624062581718776455746553121645288522807276548185294027616224656294092860075024897599034197178933568267456713076032628834335309480184815617531559237209561860735203541727276914126452063941011404434515453955677243506065762216881757322841044476268367688183798011662296993064680485269452999519674129106245269259712272958215632145732869486319122541550523442815388540054479673394047545567070005571209272996273090340536089154017577166524000856335732807906383629604666191121145974766370239863611191238556978888391849305292097368358851737648179000683399738059433919290000361541810410980511749944927113849310256194313737870709222888222355272251827084323262586583075714555095566067028314746100512511389563378457465710145349748371361277324513875095652964342399033147224784308831751839592210073541681789002710152424628282464579557873162008202451041355372592639964520057597301804034546480488132644465186995284006242950526643549808892686137455069816085213922512465559053998932650977752974044887031797707440181242635334426727710300204007265912691881629328924582035552786259428435451028177882410637819254031619053521018565546120088089108033869350226174919476403332133424784677212156002801549877381963042946978952271100596942508321626808373402101946845470624985281409633688745410618351633577586213126832531817491308963017293357313494446870826556172405583359521804608188302876646137073249217044444817847134468328617564747963831867637008549969564862632691709512152297422273104713681847452292588460835642213290393262599968884764167115623924113662429517199085166863698373697006155127687056000474722896760422551123278714948779293062529889066054433293179246227107222182565162974503661185208839871893119127184917419963830674150798567765663971343848067298043877209637457599926282634885430798099549845182036952136134007924053187868429830899335086203196169443831079115789585610641939628323806566448201061180437107546873828614937024623348973869586820732366687581183433195041368336668118385747101281859929654384164732804051872969915758023419340541620058223978412768295734041474069477839182504392117169963226262869915875394254625189197456962738586392576012501482000233688225843148803483017803960786014810176488193352527184012090704820602574691661040243594438728239771018863125478312886905828732631306179478148093054313018270863816810097060849063246822876437862123071027293864420915358603379322418612697154359294523545397363764889848643828154255011130765599273883006939465270189110144618380343208949119517504275504193661141131061160236554640541999420353963467945251811651260371184994602931174235102386419920426886862794473473826665822556008358591443638162854596502008925220543512323650828141813062223520926648146817329015125446281057230066803710644083798514117979994626817136623324499575720551137565361352165153286963294405878819606637039350913076299097120942424277101390297790181748138339142185068795685065777561362094350283765260854505920326252704274326804567638324040933742539640499642375304579254546362923471601187808434057301009455947874509473489117633265987686663045979081493313451457242365306328933062647561880455588559836047448216068528394422717357465868973132237458746438353873306819772631935188135662921738543289450109816440573631883553024232003445844480276051857422264335518765267107277565520344632462575203533237006164991997718954782103153097389889148437126322175761827396559391366404983048962249144130759485125150326135226172870561454551113220784085351019004973168110122008123713114359126791176609745915127955107160310027104952025930229157264876360964309078654732355364966152556211302729228260658600488531368154817295860490495654770547508433491430459356098553521846417618118872802943295866364547799572114540382157884621733374050305172119804893182495128944141617140075027522442602389045651400427199713190066793950277597733325261525540830000299833076167745985155596567699508336364018960971799465216858846406401622014919225265118175682067886429519731660236267584849545812260174054324021555568173939552170021047196464670884839911307062251835725638910338717713238415940777213458713043403074463094647684649971636289234892281486268551624637666849065700418799569551034735663943622522474333999770995872232677162309216055269162990936680281584053149228491822512330523855656385165707655874347461078900340001773539903263932299624734078332618696670372167389356526976082431223262568000895811029935537134091986281768440443201901235738721503924481897920788389326769893742030056510139857278739976440946822001533207853823035391587322658551357561335342279585179329746039587986652055443807465639948569955800136279865999536122806968298674499658539968004669900566684422275404610496200017913400553519976834728471435262287656405643382523599185470653818074917591287205802236199171808319348183737749463816165061761554014977552992663144891013054237082202389934578519431441490698642867081632784801777633411329936307036491073504219026156055982773527024592799224491192836226708716076481026258603161304095656528560828023806465871448883158574438068934337397266926480738938366683183785443067490606981325635372179385465603260363360487807402879789331713050201432263997840976006716921626573172659298779279266346365484927389697963553818188526631105892820991971992945372853475184452846688387500334770482759974459745471585215798263214364875425785731717797025874995486019195320942795922090628136188258834150518058034294219495570091241860230371090774765438428499729596909378968984031868438793855940322931439042542791874163743444890187607879943316791610405659488785472390079285436874074041235645237707702182007231786514719581354547464442228173005826855028120783308391784113293989780332736917014459550774213824149929256982517876415409450237906644738829559523171280884990911091166429913381768282466978971154282679655890724195093163709419105672000328612285571797813615386858660702611125503239882876905549031226042272863464397793627863701708925182478926832460210281138325005649838370933300470672881117877125733324057191193761002194447743377995774448353320328931245128712826516714103430969526977811369918179126872224826179591606461823330792249121271016194742043123990818162995200664434546494762251835214122153998402697523820902671460347888831548324586394261081579409681042566323052651657283560867561000544506129381006800210955186089538831249958459788455110686388708987674868111176137829203200981444576867744736421853291350337390440131052618251142417767381785222030395889755805163720390720002589717359474864338710724045137853795513711521326375817710637665763192187544628165257576701240526868151503104868709381169468288160451530908360634970227524071480741616051814224204347640998076657256755398623188634001419514821172147945532687306110229118005370566904058848813462407305933827163668705484563825322976205452564102953729587231791551695060955260562763177797503000550559263608235361291680584364008241198439335918223463349742738140013489380390249701385767291245173367351396408132164357674316735619968855722053655778602659857634894170680768368881453472159854795551448395067832984604503268321773493076336882805783143007815323034835872083257424580016203778873778810497886547858095485296780818872384945130768455104979241747956028064364783848675279998086567012291386518361047737875979625791991901384204039694029267925042083550284946448760022167333383220574216361690676569018278555396743673197832427683950037313350267699916885646219808491599550050528817029110466216787793876278547583945192676782771320436268688876298950821223384967138131205352941995459637824659686577486113570824350373151209270626612535737479392895077091111575558150104410530292578464635725376152355953648872970680600188003547685097359623002260390980288218005783960995248556270638291383294083597090509222488800316347101088164634099359830927936437169445680164843334421827753436220341679551491043570522063391535055591353519895545436077933691170864260048760907813462082843605038543477741365038449643989481388523592772151819243286110629124291795922462517372053010652396734668894458317067431196886497107200262345587314471295182640649946627563490659634659862554932827696214514736853068985141068144416653768604197408956003819972507598678775506469961863987715175461120632396612440655071916879260841797998507574329465079615636161659326146231507492611195671390265371551001095731932608119429245008809274957852899913809617388464623420670771274586606065715915577277391069769232334256215395435574902511487536923333037951797666266025507584821318403622485771225592388747588421529077547183322317116122399026242330500628193994882233139870874788370443241883531603166367233543596838383788450631994095025274689124094687173018438490898861066074966769184743044515208935519249946020363439257540881770659155019894169475269360165339228620136557103950197774888588160750961514452950627715701248800866014944127106157650932369203440700352670427708967537868378333549502120631674268310604698896376015655095199679625766969884508748290912582406118330236877852154738202629815446718513041522887894288241886383206435149663818685098407084799792152360817636027793727866632056686684194871782334142676629044766255515290738505051717670082723078282928292216581344514746743515459574166631449414301839040168862231767408439495642013958009809540553296819092180371239545301611489127973678565259358963464657586972353839133260577017925933278176436545843462312782955875038650576439849705876497982398745798398745303353493728030997310463165275464482929854244179606651741623258546085024136298834745881499460977115783974845737085386118647632178371305568068891032963990475465583539977856833783012812529179600481457400589585695378488814010030734471147749332088356961184983938588170494644115465781348313935089722220413225731137671774607595715808075784370825761993386327467022881748031743050089955662537094878435561246417266621261090220009568693369756348984557547729785038092290401002204454352861982180500143109264083009062831216126294391786849091580177927824648157937470292132183541028364470761869392877805631828357854791181882859601158617467174492942184855626478697492592968443946109357701223870057257019560869896194978626877703192955529413496254707253138758804713050797251305325004418179003120139243031782815944262499553469246264705939967955674501625349624466292305820149080670755578987696895809016397845882866420867620066166278416377913566452045428317415459895968158103125673169465771197158588643090309405577385218150507318965410500221920703423360825051296098197056651450822664733987116708046792335879217567017977370370948866157643444682259219579882149968533199629095248368452584466087494693062332065469578202935836444869290382482409472744422977568011754965636111556102055058774248077356459472748569570288421585284168719732793000089363620092625452327641910359928908038633511046996500397807424853183005893527620773653018412978943200483807815198541840113195144365125008935728252762656019649467704060302678900228089405279952374060848223034284430194467203808808292897675447470972463013673467704323986124301188840606873453671909215465242272696807564154430822993808137136239992176630870214378690204415851868689716579258368873335133090203356499582670032638411209899582058661912780636021240605744992606264946875132798308471835631146344055576370664169552624611503554873879399015497098812771776918623982981604495046371965556508412369142936441536937034131647784237668157110702265373810310287395524350061706835168400729879161322140409169084226077815756202508509745780496821368173569532915149342182343155778925602378546602002987447414007169925320015654169600359303012687578712882931120106115220617480851434530743995278908706241454579018244665259994857022284956935314243993302781899669010877552166808078703584360698003392207007303762644448093457796348704173331759291650047762339196162835254052328856182997593895430517300838633909609168429904447162030952540847464643860728250458451519532090286582064362636893429579407576806322225087990569390593540334405848475416101974827490529623545104319625025075152337715822027131845169434765922489637638894315107397034329576900321822089727529435098646457193430364481799744091436552627555487931040035878813480776059943451975028492048286597732958162529861257674475363109876048181748019870720587917026976648678994602216144135340692376512764301505583010052433655953186113872801951889678013815038213031796248084041385728969367287139727186171357920993545635972447801738227809848217853367789088094774619607659223633928226297791332946921770830113694809539499438980837051566292875555783451306525355063119961236371525696153884165487228197448599356434099102336739813075928314997171320897376354089056989088843575392941248163876150241266412977502063258318228660346474615676782399647076495144910625446615027175919734739788389689667351132167645665557985906582701909547592194083610998190585555872220932981422998639304608502043886809965446585388127730726821795331123271536051206541658219470484268461985576488677031264551048342270917377023314967649836094663195496687072295600370248891186916203995137069618134318518298618747548048887072267707714699198282212013862637697922515158302758892069129795202091817272302075582884405188604090182965768819630416591327362474728401603678123512013066028779859251894561634095232501199114345706097291366499975978794396602287405837078501698126439138699400030050308073724411584405993900560296825732369358792088632331300834637525675908751490476606940050337658761772960236535882408621094800060162883277860430176238359831887237200416197029730660087656846715673298272545107105480350253036717183515793842785952525948490724109419451331158361916468146210633470918482002046200660538239823384724479280210849632138750514781531244193731582331652025059829226912370512032441969827743647098648023651695095933345553750757163155379710661774311911772336151666353684875240368198166444318155524655526289799496696751787917008646941961631660025519699359540811308278037382801212919762738835898981237376623839446659862323920670382804401004021083499332424884150341640392757357494288984185552208570799405135587944538954914826001832755307458948189900230636036928688463224624748131654151783635103026339275438624662092864267141993401608586052509165550893453159223961313079682666185556104545039919346731472607520318255442347942944826170218963767422317295990719762179344563835016316525759090464941014585337700673605057688047238005046761646250124489261314408655255713566200244899961634111435762833556305955340766901780148648344827159643087244628187496588486870131010019965870695793870015263261863685975094989247745512302941233041826467412206753056687256711235914730933461858738338753362537073593639237879765286770477102702083063826481420042244598106243783376691729571641449505964077311557938566226226616481304982595294314984490602175000523568712276389989431631726833805216514643559930775302089292769705744170617605767676834473597809451008600108780111429275125702875307250893089259604481735339545435575193476563477141143370585187822477258219590469028846491842729103234653411002759776525509240927280107404270472900437153444611195975503933722431365099623089721711274808276395685586687193407896766393774887170130990920540461674671029176846887913891048345626191040660996645063201694479622956170753688220958631793202188218279939349461451163210012231234907437206975020453489217455146324913273187390172106895157312470614798843559607712258641818230245646544283777531579918578770691689052586668154513284868219010970660766634381672160995670818892579612547228784111650352693373056247318630436758893794532300410682887067050199690892539537594655251339119071364273731217608971235125724231282207332647144547466886282833834166400499779515373366141994556414316512891488686132376323871491361836579395762546193626108271971424531552629118818890497342995123714954116040637203108001269011393345123061728995041159174991022896187874158280074851609050494862783446656367601837128123467006407762001850903625155214378259777587469377776733799153737406569808518545533103629188650709681999556291716839306968132069998318266544393873581246438247841078407654756706321209944361534373954086720025427039454656022005565761054764894553732829040906353062588244604128618383662315935613558933722892092617340016341187820580388630772319442642826746759387585827655873974579321078847642155727116179358461755163155771716162867192167503873738344456518004519877912599799421254416545881294040538613877021717631429958070332585841836030913204657616651501767733598984717154477259063083476442028707505620688854335701101282185385015276996990047438004134372518030661313201950115723587522856062781601317068715465235782963274010454285935251425325643737334613959821776516028441685592229393811917704406161229930628280048500303796110198456246902216415232082829086499843982587474245279530389014645419095455311780946893815751362603547242404152245063779630186677987075198880130759856314575554232417945273293652950903530615642278089168823418529317774354062207743572614800023828515685760636986640236052729970096031625827825927632847566790325831501737238098089757923088058439809834386869435344125407580036051650934946246231137086477330487829995115255674429497933779627886531857547453281575940504180499197062712745014007955520789739631403445298574682114275741925883627825368183446606436978536942668267892215144162769516952208304629489082268271254650866920230484950340917352806905360464498347723865535776228760056910163179914983831702119023460245572278927280783103400296607114206251195899406543380677295663001128244421210876444414437674956331106791481617006750447905244817950463586960987132220386918339558682564812041016950347971455524201221757810571370563605527476655165605853548682652400410177879793427614856957658029531603372251293711530555914105639528555033402664902796175493534939479162147892622012629345276078318609402937202514708769275809870432174717587024379784974832663181650406103127114283702658675127259376958775730497867733967791644727483129702708349465038828158710993644426203867817682775756318047429717614977134241630591091261181429870480788085799182052748531734514340641342091635556276504025822476518273166716637657206764353600372471103505901669668255496298010851920752320995614728036527000610702775110243608407226247132164885118506071571728817963149084092404621477315946947730934110339870639139275305340411898396321696201303517658088161681913128002630580449981958835929993392321958786870871890022634266217392310219337257910789444586170518517480757522357513112387477402167181771007138348266109518742943420155695762809435312025478761991392211461457549498530202450951299802776747089725825800979537613837127234827287737038428820965534781799614538269106436165911083720703782766448085336490811343906028794272825672637020050639609757614880996721872791542914844917152701601130117248105998602581946289608744683950915746189360261220024115587040753717532575280341691799702000530751100372538028201583687982905442238228744286716254521240057341033971296118425286886510916129513305969834024841940623167970524407140759306537841582058494321264336326533102720986432049802450381925084541478674418367135083541265969362375585127649508057615195244348147397311127161008044075487391570524157472616584293120842740405044474481232792425187112078937741417562698171587142944600228652075537417194249319492352963385349734373859090046678906270678514058082616855525703229436125765595058728681116498226622242387674459458373243641122522797361996838860120233450146664255132916583148261025403252534690990032950801642817632801702150966408104287447058158903151117582931862987738533452111367867031811109757877852656206751285605015628813594802356979818686136742993922302354010560737722592887872293706609824615088990324189937320630490282250721036771673915240412920869861117477063087924182575461654492340517902705707888853552681132723929836375313382981720609845595063053388272136287399453732341002227901851742714931030713812346414886388997164145595061476572592925557349178144406654048539712216758267572695883638426295737973695221468051864052002915202327869674721138472246098237326797925539778559858313905208063179737025783429192248361618212896861019030763039240300370923337794695930127528896141333851084029888076447259651426411157371213877861507734919738800204692343746262827714153186059364490628860469195595750908786136361166147399317978063119012337224287805991726822459097193785149886926931493631540666100772904099313131523838992615561715266919588512459727332545616533382711024764168113727588619370195202805592486428308462922591269901271115713498268013852323689262593044584482963265787275272210098679996474238637150553895058132008468217842109147440893449155857436748629044872951157418420563603779692829068401375647745455965225714520484663316461475773429324815306253299287448621423552220761401977095521040326554929444494696002157285316097481485183402980877152700998921410897634479112669428741337313624858443011590218573983551869748542115123027389178026130266242131796055635481923849574767526471549882972021335282884827158890220613660108409271685049964722064055596343872297904711753551315421731215792734465063683310005221115814719224110345886691718915644074430724760462219240532423458643799725481188301090980028513799128406789700615977912079952716021848602924916283945304103316356447593948059368478300114310378418258445427580129181745374863464425555326059416814857673902424227194262135820196932347149114124916641741158230800596260738876688284769740056560687053220039953325849663308552611445336531770198541611137725555667673295633942453255868803967229544477026950042674555378697580144315125083938259771967871125317063951292130213911677126940235622454383259432126520987702679894012375505496796687787291349193753898698892317381497625345125968252563844438787011950008740868815224800871555549015214617299022938089246466186265791127057171145261948444891104125138747568619329358442069277261422124588498398610787357098019131591143362406309124715427499771551281121222784119324997345115265649120552393923602073299837522612830851035172706544651536169525213762179707064530235200705733321878506563497326687945351661521800108391140719345057165640563555469776578629061689714936640507454888153460962368826226288201830447610300377644058711614622820865462334099421372558334914741745806568133930618000501856369175560907558880282680494153283562659108631452853897239147071539964441805531300804423049635701136724604601002760799867022550305910015864053738791008879867005663623548399834225671619288863123000593417748870784342652202733157150220516235602572898794343978766250604781393403676366990143993547738870849367765038478305787719865022023107083030616238967187363432233398031073441046934049237272606507474649961296304570789799350070740644567678284374885742135885699568493751646526319179419718467147207122496279131296793934871029255568637495114917204611224800788493495563490830890903112116894216619922907747727465282356133517396612168126568699769354880071362582187402577370287469977714286824214196692044260053234019661190147751113569864577493166553329389667156822070361779090025079857846173784948062897106928417712232885572451235142963312904706047003249875822144680751879080324886658396199081997298342041409264467298740916372518221889858156610889335005109655786907636985983871368265819560563887421580303266759926824644018916954025534668261307901580297172607288250319791953086106994970698117904487790192126370473861603601269073582832260095573460697099543340549526663231031038770647781202721657447100086764495088106527624892576861434638393967066759881880520790385358763461821757530029929297636388196183495134757863318053384644481920607517649044450130734049516807702036934900810444045010701752341007514178071076352740484842313938994591355146735217705280414917808014353586917321061227223624436937946562108239647080992422448811929345155902350793440129494313800910187596479206941678127806322867873513116280695609198884007736208024157820564069068098003946387187931532188186307822085305913391971843303666540627199321839568673573965877171685903417397123681146389683625619344777411307537120796825463460507946552029080434456132510366530893327401236035570817807377996150275846406609300513230144099260120652663987681183697783147660646451022670429941221804545481749004455809518862718233574128161843220583976569483258505120526315958135365557989992331503593178892808238386003894627901136730598611679960569091697694352007008580168365219181337800018795634646881771263453942834298790700940914397648904834321517329904677813389007332851442689204760057065136507342975990305446193963267709113403726079700701399156005980223220328285731958882421283579428651746659669842561965091510215031307921038520243431231086575598190952955540142290134878575086796726135584384207312429461214988668019397389370693380629092239638659377706483905039624417497370401471888277597273091224581249394133488765366187617702790668117367088938406262617520331684626303484352336958055691780615664081479835242914240148829799142270006890736427784472962231209208114039145859189504365149079997802638307963207882872048669205394785010941266724118520713403579461789407510580180127828476977724706381650798709833930641926421526775152488432063230243607717516294585206917342642813358957673322076653642062720010577763376918228025640525341769968161181838109666167173986745144601639427048081802514989394029418949715081325888098140230263581063222082445904039130589670429775271336407142516488845166834647266700121552352818519628449562141585817972351587292472485761110456120759734965502933563151969926220182013993670027528445593740872161940445970008586770101694668789610021550344851747954488405861788658771249540239027680294280554931077656415431112408850779113030864367025285149715448200460036561959341566631130877456216911963726130370259183454145384727207627852689600428208669437856367400344499120389857719296023540433112172479612557624262516479522202827967922473143308018521990168296151900964346029637118320947602070696889698785249853531863368768292774315718989670397283943966904028649172211538403524885991981866570125951985118890261781861959066440302272157890436689469645198901938129107189903953413887947054363078184938009824352462871328825227207015044272030804405828116930144486238069321623701108037362314724541470078702889771251785395855043861823725346105615176945165862210075580574678883610281876314633065505462841309298028545463551642289978461954678050447610074748230014715546606687234771949412545819745339635543634290152994957863391850905239087890794740977235058522847090485486839864997583284447994870189279910910109995400909903008752193798703899088869089334471937417117723681105361213725487631253394864277313660615351778742223379269344709420343935529306726494948174265357428722210527882631725431478294259426788442726400549278201007234064460356483177558438786305148149272300647869738153021394805491272028123634385483199940459031390410541522020808639887100233803491132840994918454073841305943795865200387823860279134326047928158791511197371502587253792508178144551817190632217193865028760479270907394257755435097938486709698360755896603046547932250804631606235900024529676810465028613628243519979176075316730220900002344250404694264899132270484034797046256553528946298538161011530605328873196696351864527337174137943024334396067101413176968213816284050636391248308071096390383728873647391843301939503751475651699889739702374050377137610211095580375989963576386377769572818010713942275793029655955209328344367180542476249658450318155357906798801651458415595035133930331161404372291787542835953749139900677361938749013415515443909263695741031493547058310370237581118886140666084537991523219047365709693588035558641760579101002204796193386153303137140412227889716232999149826796815863801053966527945916711180839148363446345146274840764733243658019789024557431130247250892350676002323753662189768311559906794876740127211081217620243946789592901253230600921596153513582166012126630232066067878743161020127013090125750722459471104378772380502355697427380571154322413443465516623076470094777423934977083009473969058583565871904892472503423970135679318547243921173167331312468080244997336139507509888628967154662063383517600638831211514117359897849370969304195542781774044246926154279790184576424596339888647491104428138398241338192630650751848106221506433738331249103030416924342573295393426082531916436441674680748354546305595244672123428494428190943642150076533143499120486163351894822538354671205818871984142114868271001821643386231851184050212330320083799833339586427852748174085180412519907084609281632561810617236018067033341791909237360052480981359215877731760398624739450580832195930791951163114649853758067070878876153722048480211335682171991860351748607100882836964346363821872499809467375055698630102593696474292209016944453023098507935894515260570447687710354742645490407994776407596759350494248263112301362972048519834741379924370639825161511027291141998064254683458690295817534617011647535440953867407353735472128311861937745666631973286829720819400832145874309681952545275778961946201905278252874364512501349570931930308912006419885801091037514401223935203711910034867291071387909489111952959708767606712187311039611063577397045160406175240097564033796662696882743850970199783193164786661571381041912875516883352883282051146827453002580346235763580176650961413149317374934514623934662732905685685382025641828068019476980680355478703589119962161719707699354366619376592484191243340419688021791226348308071449826405810575739676837904523158772659311409704743880952153390731418741023101407292978882129871496560524854444037049956980113180505048315110800378206472036386129919054059760356666602069057211701046867267988171676516120057019504397182823145783310877648043299685533275779589722187728728150896735812549567594793117443655727675905689762690365849546717421387865557750112139199181000655738317274957727070410477803852345986388135750934487099183143071178308831350217931008443057588150058099827374503382610698928883282625417898172246774877269842270002803250366600740731879866393652543043025146533021012366317322125332260053396173071119212773336794363448193192901300922291066203812335104488883422232961920081197287496204988981805737586229614240531839527606609417926961885932464039847370994014372726722809668483286500193222449814787978271415575498470977544028650668438668823948340805287909946979577062658775514486420105247473143593443070437068454437967048980882776205768696212348308604195716427407649887570254555881771689355706571844625704264115228730154279546043276224804963187472408810310818247669613986263598714256300233779292767254184711323892344627885084858165211380507241506573936481885137924187588171701708199715727146558629543240126576988567514171024452793712153745390861608908938007056701577676276603867646318033676041546823949676532531438278693974611502630541486095022405848828354033065898274959364023410649471937379242037982344628812673672895425477511694638795255886359883684001351369948592108718143972985470611716857665778682348581807902997935563030000605737080157662859206034733144998388984462484899546854223462120271381737005305887649811507386819575620608420357254905843627653775268135971497695218858127010814565721395820148091640346360037102238822828906146887589569704305951704822153109713565168037486357818688282521901460187085521299162345306257823352476637858934812254686183517221590635219445463224456373045607232726811872638677627789991147068676205026703437648145817714899311499053677125473916764204868995243991556150772622246307400393639923600963575399665395900113932539230048336783531931435070548652376914897763662478440869681498517094496253817337206029848818758819883343192356428714981319506863713566777253482662549133339680402732751351280884902897092293321215491436107189257491710737778113683412312377719330239286345626661161706217388820078337388898136914091776510695192434568925648105922539202839539575908301108743659615887085467564430716134854689269057811288810109414107826290926050585676622783455413382995816223506669724557464470209534029345511537024204827090993350988275652315529286466774642373670212447275853381972070463968083477942843724362457095158937703908549410463262269789953500797147551096466429194846118697809923981504676497430774597479371681481694893386294358039626895723371246302034146556519299880255171373254972346556322021026008929385393403611585494711960587286595075232515533208731769251790858295572156047409785260677382103736152739794390473206837059785925967191561083136269082562344342581914122259130661513513964109048149933748001385129075107699001890261703008236524214124732833564661892293891138750711775128930484715402025719310770198990478782860272635070210310517680542756540062635020915919570750131101403475602098333320847801105192468581741158129399861895773784179188857135757664730806327616085652517001482852172245589345663577168424331551205310702428145120183474585936534397451478350184400114062509930602101337016447041353938549813569351121929280239494929276629615797994824106368234880339357383486126728590736962600681434633997391698610435682789405416520971915014862605554702765514423536803117018821514954071975516800676178954805112860140569186181354689004843316240668937244908885206268805587847576244471707834842635844918259414505670349946091307583390090814585755083664026104760848752908195280860991305527745871774578823819750427580819155772462884769992474985994196246861265953703983162199769331307626343194719507579659006607429807230239528872998393130829158270876361679463010056017279513464091636907615144551352942713640398418122028697585004499490965397787034215217581834714204531878213979820869625178126280447256806100092553849637340797632462765471201475227189526685099766652788725941978032730275898406634261779625156980237342890564207884831339994254568533892602887783608565384160952334044486680596322302206116731030716960973961806438665897081639123061440709802246297308642035972297686760109962906094425314496085359682313518477879428968662453288116832578253767585753772626619575547099984396304953070136616150679299987667807674385571307280684983649155862129459128927520915488750346882664847600371902554664576789747534333867076963411467041152499741955845823591607049658427133605037639234222791546629339229341248119723237326130991459673633828114852775442842429979049770495491312060983351366889559864211925040156418812064285752452942412709830917568855167810413321586639671538197265075465814077281693524436010361067701061824563050991472693180962325903203256729523237181261445259707153047842212810465543851983639702394260761022750046691579294369384696025893915636949405983799077670495597723341211590837134287511117401185923764203188944371541402250117205772360221705089901861241608447938436785274160629013595837232581207814522858787325093540521682426267542145340375786897883271013671420355833083640001606741872695911669408953385002927190817066937695858450928559825896937575446403344487517860634468862668711904542644243490429824126436743181890307464004954850817659612558835082688596605845911498340156291379495225148746011673514596920210523924587136198908440809300307457220598682768617715227432750810369928729773931721981681055895094562051168568647750551241587372915305976329483624413541007229954728606199579993580640937602635695622689277989714632887631946057382894051537642406701627561009193350657617112486969738749305153483738909224727738071736771786178964341429082511631881150373394770607273890377675623070159130247244047508150625993351781202931881916296955955031592364144445251731223897856658722386286627271022095807134752695435371006678744725859464876332917403707131823395451499024566201696435872359586654010821874461353313369935031195910283858087734633984276613589577121182390905653316880423487089456225057154580303422020304632494844940423204300361886091855748047154577992341170226518748189057782435728077131881706248158138125099924063751629069797206640823688869995549989710006201296930482502794942284802589580347996555086069731092323102097187899468824766202833312251993348463068881380941449145127548121358649823753695834947341674137269711409113888729336917819899038642068481058911282669076308201558033456305884267651422016806473840767567828272156176291451679440068220841465173763364755567741435735374469289496759067186679403775009462079426714692962731126864288058013689274270874143210031244567135942435733589340191096571522652299286462994373019958587465721593051569586604233909942545053607914087375636070143396949435386708873205109245243795615844613869525939005613156194801273213352962136376582746830190878462521063154881911909526042027710681349935618841981531690955565518900794785014751233959514635755762850162710343563702595515832255747498515191060534593922902759650812974834292048851595135115177820080868285741404897609060638078806235180146906932726147800479122820366274777904204773722620087380381650518503400840155278973341076990993044655810723227969577722575278497431247784731132931126086229431357974014576253632935951556217396742671318014355316946723301398927679008454418776761150491758525156200266870745202161524800427202227713406733477487108566945439961083031534720145963658867631469544740780040152757849034895145461245305283429624916651147622616330061336715432981204777855909648669607650400023457983153312427204059370140014996165323593385423197501744486441241250689644876077926063518572174141969010904022746298372408925140246258050052970749614539072781506396821681408722846628487404948428808110076526123340860286135522246537085475591608938116694500630693361495254753827521096660561506269764733784235856584388518045332375256285197396010913266778676458518717907599046552115669688863190755070344191688868056871476564434360064351731645201659986276345892141991949964726576587359117491294522806302842494724584386126535627023408258886589579436906236188047287509650319199487852457415372348264093159213048525528551153534703181372746322420558307317465730442083301227889541711572274111052249563401325615247372567948610595717857690605173185646584161184966793906617303455960356712599508368730056098288987029141346164099561573846808700366806035669174011655048930198720132806263607354619042840085998165044206819093010012881221476253158428640672096075576254550149859189387166235472989680142863364977131695145940742670654076477620767852410845177789581735176646005568913991301922966147752079656479598413214227207310601355647614830463696624483433584805334608292326823751258991439096704364042434326535211603391067301543669831332574478456804026024359741094307502690411836692875207133245664720860480233465767208738580082521303726866776006207945774314173023655550571068426614447321701786054481624308485575343202302433640587760039288639400210637257942701224637654509525237063581445309501233643513920116354513270986894728682051249891808319739508506037107868539950647418902207471731863431315042234938097473265078182167333786010222477279649203781187229546353192633016478811778788012109487015104444308897016900835089811789972785876822499584962716084320387030948883739575559191863441141635024190700884135875437276296948802729055222456408376187480665706050244298547060802429789859697184559400493067384285633097130467966329590775508344998826884195971340388781369273603267862886492104389086591367665153536817560354164142350251140807275262757309500459138953139084899857477191154118913461469463971973227768429331883432470380688348201221343995570366084155634148963438548401558532299594055997572467361695642070786891946015302976546068902741318236349043086683894878686038346477308193497912266768900863319435324938274689960633580961534403746891437593071762124383139561082167818593663548549553160927455211496996705351945508831585861051126409819639701960032528183146777730974256607533592973448044503831085138619489427666818849046113464786418936783758955274040798196628824009848208192359823730576550362806142258644218121977591103637750756531875828695948689284135111540133637357567105612449517121621553860401798903301325826592739652553854350592577012212703987378170280191215129042181357605392421569982054142809317345856921753517200488254228966855362707741673943908107573708565095466338395957732092275721676919116843552030361941128077810323370771072312682612065270069461023488610521403589024412750049517682591516220975071790673106165199721903723040975852937233767953367198430730283504648131728529037122244691707145767978743842551252105357342932319141538883653056447476329646020824360461824697053559910058854874632759769830121804263288097290036404989989284661966134766602456853506914612358012506407127575932802289345289959526641037732148797408703032469171818789207394177452135616098323707014074312864255424615598253977763825239414931491187571536607487241063738908057042669496301359176870933947576720449709092864916043276870073258096310521099286971441764276924662169262468451863839238819639349313416631669706667699630061109654788381056776541714964485365378851708656290436543259985965900903010356425654621206605749988049497254742114014871942315892851511426723089573942415193800484730815152223158411868700186204893605367209796363340137531832520880772232252014666096359581870532897560415964567582153912266857067143712843926282867046316499044040987183330904603557972471203895865031475946770545857841553849505631167406623824548082841918046050972268417598176514818827600235055988951268391044678174807968475299518772110565037873557279188402815435912762113719096281315052732930662660314764130578975549905455911275394900756254944569454071881816464592649647038708956570161782209365294312228925601064143729255840531766307875284770334728142514131993106266305572589842032470560083966058128718523029514435269925964092764605933248034530615355458712740339319041720527366924933575705992324051821065162236149766560458838221973028246117933634866712089505852320220530509501472085071758012021352346897424409350937021616104813712941172681700996589445065529420037323300183824755367456900917986076038631096529807303187211856007187058555602897134875575452349959532765939319136628422435263909390653272651995609803005643997077192600900775141182704825100523617806026129847097588313595288184416227308787593173321211029701373093834562666938706063009489219663184717265613020991326375358243457396039111181531174444095966846623716102517438685973189966952532957957755934313693723308497943087211892854256235114542951928456700697780837305132354163448727855695790904236456522642472765959225195669296067855744152606244402240471888613513382800076257559135117333695729218879577297519244806096972406587935421987489480168424130010795619250248273254769079565015178028160992341173736276387085833568109001095637302753553173376694351598938532055460866914242816982271181031191822302050844102135122415020458865333646809452329062813414936551702090349147016250341654524332492787552430963432573046440533128650282134153177962230027866385441237961210771488164966632081713540236583101251960321097154265606001734514719051541398004084793732870603063955968782980669854400715635843982032039582517606829252242007123694443634053582954632509426831323051742885538268405594858703382637356802634180027597894171082593794736206846935521741231084734242338781484057048573875069109021912039593888069132388573907891929069719329678314576685380085872286184544608247271861238554378107540379359321707370787515138114631269561315796171623082616676669667730213496025864211654581726471729285968675164524042903100682389163394518332751434190448844607339267190379206878591908913184502847678664355839670833115134220243390090770874750917785994808971276037133204056630620689026941854306305902443098357209560365578688238473125865573856889281046437725983462092716431433394628728788384158534185226056012186985760824069345009422725190192032331133378272591309092228861226193700173070446101479608350234515582618574005871660242378582368944255908059035511072555046643217403495801530591777062358659421698659295537387305104420101991377802036644312615831397971648655879326574133937900041056977378299801396018505587809301079266384443445644451248400689174598651469988770053157141253835507277166981970078651794163530308898560730455062046645375274868226417749313324736567269799459008002919939481998102551454991443476461944703521912981130469860810224646948150996210314912470601640271705855284730403749210987687524519694917901662175567100337121442151679932336833490986102300517163977059186083370523359438784966590488781285674951986393946120831989976718368006366879591349957682902398020399635055301993853456881862216115695927934580392582502817174418393036612202041425762983518161981954238420450801947611003611290396442448674662352291732847844694418967991874918025990623498734667378616308311863038482367375174202248392024316538718615233498280600198565009772313347611459989056981100384045332649731386965458006866428247276469047971952629322582536898759523557961560598997018992219165885507844972818263244150036106026319914960273777624743176455579519363334693186114246264441592628749794188136043310373577387711021423263523267966810974665519422397462878093988383075044283443214308393011622702518230442691188928352875756880464138164406826745143533420820572976570368190783895888510375375111413533675914040195413835822379823979516652764903277891097088602872140613816307284599783790341287494179158500527348653833913176969349720897723976567915375748204325215356162659483204910731045362222990832323972527201699361433391808399373840836082775460291087804387429116171551551975549766149073593083531430285957261747901675469798258716291040814533108358502781653728557134771906176815708513256023615214888286302314294591517831008607701365600045938732122021270790253536862854381540067906428507172221028520133464168929834745869047540757666987387640869130360385836238462883097774703607229734607116846253418059414540905604228795886283482764918399933614619648240154497964688120806022133882870091925549291196270216621893777024700323523490228241114513901405447041152702173191735693446632820571670378625275259945521642405375100085526661669920389713770484541338965290699180297757050596935304781546668022567305072580483695038390139517061349378845365253027911168244448263935036538043897560706547186670152591620878727747790986084715004558162540453726798602487873906608003377205465389039807376194105787575673932144904755766046480315430217051822237947323530909361779424553350588773224801931068461372184876217169619082053417667180168923438526589601249606249729197372762626009616566666605831613330796599868618776287491745312302124367253669184018511723962873955183457547696975537136646968161876915724908321684441425224771021955828314365372992754742121001450531845760516601759843811001343255638398903112306052317447840995231803178742644321147317715273764593711188360580880710168492458003991486242757629915966176429145965544455856988292820609737083245561205410814178273679230077445108024085570514284846723026067287333677935939913654346129912294570899368360845041753700288030469046505324789114488967383958886565920151510474059907399292463596832815762107684931797892658573598337134913947996337184759394214752396121251117033789642197719229479903337229022686918655940954418142499027315000739613498519722330113729545939165403927534099663037118047637808697360579647922533092868051305041499187357422032124412865708802714170419782284267591079525764547391987639070066975990644755787488225930639542113404472543225255343042085831311401340048592938550488862668529540218732562528289418412837138454218907874497487336313354982284708102393724853633166105728005421890580725161884653428812799281825186757374649978804093160755329649777110557457134514778564403912010165490175328843358843634837477264383527959668629318786236951811884891408794549982761188299912244035285612624004666766906388754485203446921955715891571215174799417457897651659869358603506219964734018471874696560661538466167430165136933548656297111509074980615279705148455380659603914628818419409811034774158586053407059603960116286653117516256967395762639634512642763243624752905432032089011895392605747452110827313354260229124802286272871229324972955420407192561807430995476665672055309661322852371570848678293865975773027418695721821428406483613564922620357014331800991279870370134442307402378766567138156059758151924807638717206256283156705862321290106692394188384223853264472831557284431055201601846949392366190318354374688025595282425036970440828263755827144964288385882379431093932408208921082898631377474599767670431850812035457403693349954732152284420818889246690225310770291085723703796404836516726317581380659737036919019280330596970754096046211428767290572917410118852069350433591279896921152614388709027735870577718700837281420161609318230779492657616661835730550939328664785144242389406623323018809106587004608377275476053570592759717317212734418433775376632621025576605743899761142765960787465184227201129056984198738513527638198432001817686057727716273555605183885057238123993682447992688762873960142196380168796820281566691535640048200776417232981693447178029598370044565991054689749092564362339624834243265427076268835004321695658635667711357123708233356385095433644578579444325237957189469339278861892141723314219527112001218389545426037862299917168816873889767682291714237578350424670740173681237482499886735230301088574499491115710184494732402364263828028730945113288355194470105558911830432571225256703979381122274546061074940109373311955584898740198474963289889223263709153904140232949731923613104362746402268574603068201200712030392247942185041969402192873232348079721314982826550066621554669255407375238864128505086428654473225223413986365500468055773803979843802994338995754717137120549841782430818571107697484821351049044683154294486482897480103492028362439335060789008352453452201246632704387222047068921284777213893861133390250305479722297426334546152466040155902788723668031752752075103620260822176320176028052949988613185252903248106230987782872890676778110771754387054108807995501700010953680706209090265459078954585966681839066806287133460820028346357340570943364398805524972320130273719707054428394124085970721322970387733905072836357652223850466726866569277377324320568007006577259374534542911694767308340874317165175970985222211508438655933528057590155789318848086310306134174699049809297462383114997256823765145577167969204687875564413894306683533403473863653342341233295722390231566171201828112748384203399275431835118937623712519670989427806002617311282663463326398523420040074177636199131123765002146458084123937737229027138007930375967579380979623301837095691151968528125907184439015960088795444956372457529345758071825065820810055612259273240425823269105305926728918595807220278082775855572107191411923703632929589728304425037000403390537526702056456230962003361975972735309991242847986627205627072910968361575730690085148451988385020926320256975261441844161641028634735024541451790304209994046384730546047810119484542048454510814981173808727996935344967440794974940227744331940239337903530009312894645428311795605475253853448846088848412007691126990430121913699687215199788154850414159652562911200856186793994958884711395266712115800548238624879396236871056382230033991086765902131006212047115347840667889581759766374205229844989216644750190103143654603859920629052032711267255347245621033281946201181252298679921520563208644854359707300724313559076218849913979587074806619532800258484024282847302427749699875387276910135616625177519276845680556927183771195172276433979515659291768305361124522510460038806935616855535605495791678646400747596926725434624858705932048211302239205009789806670848581104519477026383834085750645406481311390696656079729492737055790335720665827793132113502861834453811447330567694234574807681185845116254465576757611857129099651309598518563612270995113766033339423571144809422480060275997887277594322838392823024549869815414946290287615054874952016706725671205045276495245987312648521802631567441636762511876451935020491062919400642926385152824991420275698246296997343029304435533006894278036200841652554389266584069068252489416756229406313368918072153823855792263407226941935348991865450520302999248128492154283660874636548739082196734672600691744440196729661066608590279357332290445758306173796139550744697120389672743012131258217038326571028978742743486675568565843091200543906356612029239246762478746533428433340032912586552648373212360325759784542470430064716045224073805635534123692990184532597536883527135146559405876131652998163906282948032906492052005139996324809019131458631501966874011175789913736925555141905166911027267396888460992435464097557592798364959349785734470551407739746262629683386724504121964003482732586170984990192452943913340977158470498824881162412127322476307168654280989729314813518223569945486066557400316078986646472132276653397778641855662125026577351560946100165390109369107979262827986968948511829740963285552505566072038599301567550005814954922478637863895899798620412425889131781153911018252776991991837486258532555305040242441544768518084498790540967860510465192366417033967065548055051534123788380370288824918916818324113809815374266851393138002945162038005852160831528035194289971422797250175780809036718263809608477162051968980861944889142278648432614968040614732742337342738044930128872405112562304929313664851578128909691622537404508599692336990964986234103003292829917026139791885963835591747158671315284063276399023429208639100889719278375605474685104918505507722493835920981876586376457574101462882381639698674701989741001116795886747195343155363648673953513268714022105567283293563453980840968853954166271425899869805620927144159139524041656612588196799142032625458069229304734682054678543644316517595606662559320017445203874972239873425401268168254452070050128492227349346942083888579837716840825949107311911108440696222319019558167933555957665111873485468508289567633040388166614905925342410414712436151475755994782676934831104875681504025237008820377772772084785196280273230149806313080905865238121955919010860752590273162079752623100972472209221811660961521052518554355728355594890512423695554281088710708740003274466166447853956720128176424899536912598185447067564867821783964748996033666888377110485283075196700117026088737055428432260608291622557245161977004544148999157587633390762094793957690467909586932891376419530679723166012665090323331790548864040644696335270446035536158162262686652541819348947813128138700901737746682534309709693719545300435700319138802904307944079041175630127244488069475456368976756722028816232704563841626714942536154812067012068413299005715214132252324746457278072006266597732503631399452938091377205093165479301481835425762120892622554268776530551645494539978480646259536346038241001043838136767313168961072987389300045202170439917653436135510431882867461261182488611809088673303331413539038826531956653979438752792987546382612116135776455771829636026026451831656766986280041368749301798902070237299469658798498006836020489726030911480386314415860724704368233896894399542086446021973008483296279098414184082101729490271316751473302987884806225219408678346573926530158482200502950064851163411752630355172531722123449671849903024923695624715963577557400304014869069901004129837170555510954799470993337818861101242043229972344520681090669895303852809867050429726620001575832688578752118468067843582220110202396275692597494602912572526155042884107997105981413022999126999032971071252066475381978936654633301423063020481696738415856954016405436309289695866774501277992415050073972080942256220868338804521461040313160647291237133163728759589341891553017988678608923183024279139137584141536574089882234097485309847697119668528609954480974461298878467719914653539924973245275063116090190336229899891408419418570413821781070746925581456596214306422867801875266530881183623247950987907784073840839527854153632923599059761640548450580124260386438398802504283613537504728826190715155301781073990265871080421556625044148633922717293595806273935269207547057777052884624173836856696637302757884253274835400424706563603242720006752679584243013934652240686714288947479021064352793331986286288061911626149165922190763715973604596534301619941321688376680767673847704161604783830396565736913310900801439496506588468429518912421454251588556305931477726617925893828258834428861016932384074164556360723976497498975113978706057477186832185159149579272342165560827345335756956041839204250429737194590256203254002223053144618450139688619459743642768228522501244831940095919474546810438506400437655829502770498099200394346838725318758704144981692686540421760034605555949800850326285465271889477695984333445371167020149738812030638924584775771789227726143698456025274125355008969947388242724937605868047582246742289100001193484187118123013109962350110403796130139115506661546724761896045799741332925944966119786869364376311196476557596340483593618598130459207834329719801972545098497156716620656406658101259084916850062808015041269147829670530413616144271825938603643302735909595187991290430460515761658885248357666625867625893554799997279543288931207271880289533679412125591462204836269413030241563676912743601587434343378483246970943609585899278312521584890041496909400561950858757464847788934053278721453239778141048142590237278022124758591142036404956540826577145868309155942705432933611006530845267642362388041024535640108406192339199026237107092627575216014904296799358286914190704573460011711310516721872052742016388456180456591141807693912086143644763995807992823351188614438202387084709824221131953420182627845584336829569491917347129556765066028542452526792603802682908351568610518095749507038175843493852686501261820072635901904165407825911526907996171358813734658847616834615127967880577041282151011315134433830856661941418516485204116776241536634606517010014475864047370454767169472234434407018331626774366899154832211022876913304021279782807925540142516663987899958068555702095882833760949412160028508374399293302469842702088930154583964032089519073889957637494385271512383219985843331007933540283813412482463274358478903585132186082601902055844817618553260357917108578673043713465848331213635865698740174451600038989850517369533325993630095889911356333506679502150500565148347062662239687180302087376426551432105572865954810733038117236521444105123461807137323797916062328432736084992859884758383190091597134749909026804033986002084329020731907954539550947456897634366295176109988821551687397309468613098680246185667293707973373408670507323921314615009838914527117997533792137626312050547550432445134256001403526880390566030909753511777228436112617152011111464228958162792825019170739416613247845026506887853308224790405087755476624710118221474603474110804505016249081218422335363940503613647004412687662133170995726197995689354354058954432245707550271688486326171617661303679522890107036186681019809001783587050975147225821710461116117701851560856765183680423448385914894599650146356361574511402683948773068375112893998595383864590071347430348421181901604394600129883425829024774844770103813377122255869507662794785145442494876187959786780374731858226760067707126503423272037096688686809982726461903726976184706501724890915283688405253317117288702527811672045666509884452703950249426931937109216883294444556370019169651450624168840072857889425412649783384414274876642186544794218807205581840407670983917099847631131948952227913731483979814206009419322937707741230425525632546825145699510663743059881524685469236377586108173598108889077205127210279635512746304960075136338620833770049395161133881906842997025991291719075883717756880729529304502690499052209459577537203280086072919723608038114675349704629973376270318950103291015922763614013026859824189227879409131044557062796782021389440988493740595687968206865892208837595049842361426739990094489811064770588127275320582397345738297336917043655649976051571059168901031399835861631756204994690359010251347230210169580183446289773648877696922420263760799683460091851090152750601041394269240554649977961333358536900303442250310012814394596461519872520870579151246130722667057930307213421413796709258652756514038503296289110443024605975931588967031508327126976278770992483307326105216426282593847371925950177603648500993448831012154345590128634405430932076023662215938602436693699509265571520508548438448244202977504016273488023828188230963824829496589905968597458009693350986329539909946228013538340196882313896358238251698277669369063922160689163253894499959638263170179563868006023042978640479657308974860590124668240779100066758326615455359308449729882408224890805518320942223994990166506145516826621050345197474218669971821014889270400640541461301137241760634358776508396095610426482535143447683654618006438780860753699557948044039561590064905205360550994856055758602419703607434139251823973961844805266514811256613849698575863448515654316592252901465311560989905856507148931560473835644151927053253048183809978236658483409381175670276058575730527735030805966961755917403452854538011652069423234537233778557738884523422568945345256503648578020073663331407313281663772407266629772508445194765979574545644598298584412218882581409929418782100442072846902772536324101563989131032431250679999244353978624992088311305773062127885951919737343710122324712194230336003738443609964533146567197754549303918934801998087217767378097033629915736763665214146988340451861464075999741911617486128432174221366797602076004402431368529860948338568571281115269793455546876975114817560640875523759256864926465623450570754232938042330444366525115986047733983776253439215317502922084720555322590225831268809534683843213148663562119120828169610374032567775048886780752779298496087318399709329666009774502888040819734556794847815597656393542241146055012581686818996350079020151592333621237639944011261870069990617971574906391459272212571597809807888477436898530347389539394197408812985109661195095222291423964141154867230131831525340957446957826206780097762054382320079072119829775429028932004778721406206327532929252031166180959717598843691929011185172665199431969344947941839829985572211937981336745852941691495084852902286929744733200012210005277323058537724684416183297190757459766446466799331990647122373771746211283350019843972076926396416867738031203459729849016860356286765423700922828733130830376804242141259645815633857812162767996742304283443730517446070654110926757160672368758593803563554967247841234305348353409117355305892465346276221738959529713433396801230138880344599116113468072128105216273351807509706153256953602452908202118017138657261245498585040513025406945231924942134822336851928169800147885646246108696695397118504918085043261660935152183821829282385380628264849637449941091858648611194904967678174255645960020516970731005251276108374394418881088737445079710565875269370903933855898729995150910094055128404515583252805729650618155127038229199035275817788263966317706644630779659205711840107469779582455050797939980647426831921511192408385938164081533863070284515313021096082292283516006677862521468527888960881040766034566398747710783750328325298360916614538223343018933323105073387523598297592800890090857610145507420841438798898567135232764272378798827987157972579659000319379265696959452821808554150767898671571277154649158046010906506500797693433493542997182222915978271865761082307170575087734496323677075574608248494671602116729963299917417070533036203105660439827364785747792560235282333010790013916202169603253239693785704379889682351570376449916215154360902406207408538884076694383739282740392294918778056038033559764690525574948275953337247371435229826954917791573525853217518767668816513082304038149614822501905638930749854013049411644558411578061595221236153320096592331863653270115552694960361688295172193989007850967595902092263141531043154012347874615397868678437881427290916897652305795168238180495468715032419930445003009052565112741052894058740714684685271436001487750167585514259897829544035694170226987769081313937965420228443952406240833756556292102412260916056890806277162864170987326052143653854303440414098341028773358376254140852395271968702742653510178068439815229690000514882687106097524573825832455629564608377411954459955768825426126169172559992167313638950682674575836062262672114655049710727864933252614292618308000100714105795575562290536797204512661842296922413705114292742097037264371966976061851640785976145913095193913698741504959292470470874336695189633807799967365495484141034322743378628049528592710264787214467875375470960979623228275289047028376470031883680519448289823865190903946914692652568464911725476627769548090059738744080401717710956267217695622615392689650289439349448313374571928989501455833060397350934467755407543640971876700645993110677848159767649394467046810430735501438813272230093852508616119538051480986832018589028310657949468154840301943634159434839905797745353557583929323330280725450624209902540102867211153769843453773852877061467904909700250866835596959023099257068863216753727385046646551570089796966617647252079989127974238701379437430600228863666802694987378356912276238102194789031505452248997938539066579795800962746508309435914265447675466579806677968103264349437554574597921201724631488359532538549883838095923344453591894414765914879381264990232796490000661592886152189704815589373030166709392447482903952169198211387378895720200348921918303359591205393310213028988386266058404411579858278974741888906702819337261440815709883105012624858990622028132201340004207929311917518938602941938410888185443297875838252762058808131452242184791605037305406132184928544825226271178166456392994396217296014074069003245202162134537842562683091131879188859795374825675240849199866998706895411833030115244491034204999130085271489626014136757920037120831107499785961793428007962761726871717251662793573729568487902004007398801792555524247579989191103168346965031386047200714761618834951985388930639750670216867090465124654383777366294728880962253111237314997283316761623380282149877479223855152977339515226339208418500493983336653178825192567862380625198640802038202847547833115178626866534812271359802656169911906208458018768199644147238464204789866719411326242755180852263916047572173287171969661058186866120946820005325918858640506889642504045953018259675014866018888654868695265479697865670997903317974539710581758672160769394922139266031065737659086193756559964220421829028895132934013980824527506374091327087238866739712771195083501932100396683382671852568399487264288048104273339464102358469961181223069593840415391098048041281694057562776482033679215497016022552861319018973161513870548685419429789968346890227002168986752807611740766175787481296314206679770628693070401572166257142264618004897249888807751133274441289888695182817504040604203772702319383101870312402705730255696215162553206805440657437127057190002721361742735565711975120974664623202954200203032753260833388813452622556763788014655992764891265660632532949422494951984001786674224555747382743281968830131554388742727283184205980822174953129190461393491816279976419565507661496875179089374579459363188388869447326542111895740217447310917299694770196576169783411324755751294081677993272058462825876257705058669380746852652788939252973353129106024818218570665004379839007314748870423528019427651610017234844142732736057748165965463708434187030658497406861817009607469974640970094005217941710139485181189337956201489008398734897517467301974564702234264454378237340764979688088221681541095121254541487829213005965290647439615462686722113555889643044999250753484226700638620263029258625775785993461867380144474377221435718804212324267875721086530589599427927903445288338870323774175798328039218550597959978472391672134099655362305719164388225279448023001017143330159489937611190734484261491908807439117389384171624161327743370932381516702968244327932095177866486898869055222617183769870276831858807390637584868475265218998452330581059798646257265027113444197190030105557462113290184916239077285922109219975550725529773546088259867067729807612603961641687368603657973777202846777767009892995590808150426714495314791645503202696080787401683105023629180791857577446651184302739575642193438849919530168981112075405385412713597912905043366681020688638049645195351017661664984136125926480464114490255214188576496747721272180557482453622768418550659117197515229895485852234720540191471485740203454490618925897594164000021542189115927105988534012407212569914848898428620629791317928934659812084884322901869923370649085476329508683933882285199132376435508913823590704818536171973773337002954363397773120533387829255795299942835509183684179368854097190671527245675773505934822654688871177584734464159390369123113897000584802637769088601863341313055893075186635733037903261777693596603607014300744328474719972423017748483249048760995821659563544072658269901094281274662787116121401453568260468086076109695123473975969264495068265539965366690999443395996644361486156759387762983388569518863635776565860122699152374754664006599563953562183717113820605706750913537102556008562339646586841902178294745479987608479795014594579059591195803242083278847398285396127642064683771052582799507155767051282071361545657917211805809941712359583827139060892614352797490975039338561149485649905974226453251468771818833352419447954307235023733005587197357401971080888734235938349654099623302066988517470690710111636015173231645467295894452190977027832997691563820778001438858703590374304297218582296532156081244580681727298525723153144485478718713758513821414243915080272460638310790703821679223463044891829097366547637165685839729081592458917785928415043737178935145879850735381917298611300432356177599170261452276542014514274432368022987841257516961471975179888364086405030067446334703759392941908722425100858090014164459784857130766010779145379551964439482298428757804295680089123632912183874980584347330680012764442167542429126411084085138477590360735472188425052960147711312539840858838137671712773569064228208383005047211336213536505240388214274649751825370347260066301245364978508765649946940773018041685795877705395888905987429672816093331885899990120696728439962296262680634443507478287931265806855258507122373580039690972609342954189167838267269004563639807684725367159331332039119851498647222531125467243426713531608608002142013129591100009442739546336231835408963849418673829383967282487881282353355387607480825905198516498299187628068271107681871637611689281679348457698419982762208615603863713526328748544752785348563121595958445258117159758700251131258998703891787194075315446251849200854285344561016566443221169100849678029165704502744669723918844427636065423572172910069103419555869359720105219431645942241230714892958286172375905252264962482600739073006157731593919338873945604287306909616126763581856378921826854200048689694913320047275430242297015030802279793966368826278473431906975627603688542565333627072828114307281919763744243899920442957698766614247870260874988023374728893774778037540549645790569075347853754346823308134221342177296450726121448383995362205360308169482205845374300624495877091890121747588399434539527980664921821869492094383264575471723405704579126709639502369556848452867053971361503987778791345537593397628838597067845482201364275953204477226860220546780325387764161488445023048673568843444923409838009252711567346752066646145106791893427755140284838797650948128956393571013564244527383536715382348811334230366093260091062848227578161359930826556241867301365417871680385887500910215499073241096152853059610898303648844517068015852707616607832995399698509355445812172088729867134014844478003603879894609431567472471309544647813835116713946258291258282005757071482652897595367742343464059021606006128931508960596523586524127711649696505561916663387219796275578394571759233540535360997197968246735555158227830869661399938309483727146966150946147244211574692035582127748322384916097417514594812030674514426061067222112597731426885869770580168665134475491378519105901613517104213068142570797353053690306888766892615015476387704170442105176549073989545123440621157325285576924277773251020672743422506172345801847148050348203539344467215206621256094985123805354102495757015155828821593503873841600834855074372644570226749113746901913231824173815668073926934473440848279666923108833544008739008308151487430140822868072002332421961865719844513375579519620700449533716080569945665256884141519476735686516051375034052232147872191025927481409179188866696994747924057205495522648125456975804622244955026067018900102086793447042658201216323364651111301977778451600322985399418305318847569451886739510975969141208148510769014489168625414465734570866721743396436318332534863981216857082057818799265218397760863199837112619803728270912222534120729970007715308317129484224136251348797918988455447614757886039689525166766202577827592438382280713022034693520398386507901151305111210951779408889396831990218827135945514444530529113162825922530960948129237076879799694178719456118231425005288667069735847774608761877840104914294992223473113676251664211160267925126131440285959962685626348204408333635252794239455220630708376268580153237413170306920866895303170438255341189829524865148374721504261704975145403256918212696437964559106216580566112834167023416468894181906756237990583246256564008135638333457543329675602087822424367475984946438416647097098317536660466718333544589303641526057046432115309190739654699769136229552557150561845738347266569946409892716671406249594926084206269827937199916526660000872226226809096068343745982548625065471386639949143119999911143842710489041763240695641265053777691705854904362333679351456498860261642746212127650923898668786039856846273582222822491567807807636008287510626648444090552685273054576187157537109291031155380784328430903301280753443356002852022705716329512332663304101821977437900775015174091232301366949582750339466425869006865988409391600025304971642508225059629496643726381995640843890734551532352915020272315952889544566969254958159483228271836017468581336508888454962680135676197881649787044200818236554214227521946739292210150362339554268865173237873334816941550573895905886101363884964036282767991293898355475373562368565645127852829308029286416860933137862186697274600990166771022608929234928113605400673680708703633094604249957631593765012640672506591467236932040598203608654534367426604103337853956455266057150953567139389445620315532113197118934482452876479988550277441529330871980599838810244414779490111206793715716015640930806679550123002110129309512783830696494275529566191611883733910226115728234088163424710125372701331329525002336214138860394044356317967574629852738292869982446014125057857856162312610245391491307770429939229766904647582507155434135064002992503885188088920156105448439014076873317370373751400211117595775216996779745337641826978377111645164834943031548475341333596306293267422970206625723639075562220651049476365237183861001717255713428522384479328829263239614821655851013331716015545738193943094009884519360205929743301035079035645479649403064757506304302171704581027291164961586321846583540785092273949589086525464725047711539884846537609760565800751147743853054291788120559999008212042990479604544090624829880893519799167199863274413619019851587238866278694840866219878668582402274302876428715323301886210185072961411644364762429096024876620215818792520165687129030381150815164541155764051576399781769052868816053876365722546064808624737167794130414901324830400513954108203442688314788106778221625763221980052117207175162106966205916740824557084956330857442025255421212526229162499586806932027523818994189172391295733894511893188004240770610872350654249825648812460396701854017202532734184687520904881424395266819405250654229492670727224451994936447656955919491552308795186564881304303856598361485042998292102030262984688115701477783011204442800517182231119854385813736748278612327972599462870303472230141687019159332599795733881621229112277615191738257314419487532260401830609737918369857772136018911121704098767197365086224263765013428795486700784006772205106451803072402147969960607301942285181027647051947521226331854909518693479993185786588681061431854325524700753133687984044079494171465236999600104485423560292857774622192642018821210812326538186663323996984849091647758869949489878540691157200103468574246084852341691782165570283147560633213402770921179710800159071552335597733323044857401966942582032256434843598172471168796246159243846330764812628571899963522971507189083473654902370237437902333504969295169121634421019483766336749254810788977098865129528197554701498792510816537275565450856200054916789539364595551781777479998798337875433084899674486570162674516865163016939234921970751230411918074375713975495818650035637121155952710398621053899219196667826718756749225090799599462898445250553109015891207679756179794192884019142474069763644153380468524358887723444333099443647441078160495854728274830505651065361606029061764340244117678560183641543016527575890556605620208919239222262128766667468945596280268246625796740338468538039683931962867340112002470391727313844693083813391198212991326414959432975308932292845335486932659562082497217967524065490720995644591521381948495601521908391182849835536559819119170755401007713554025973330263661549431293471930752865647088966709102399521769560376209864260535877204009174708477636444027951258377968078688029572126355047791142210813790791645011776341915557314633580133879312676581449204966598839812594305046631332605489292208547594328509444739324703442310901395946350117109173248187441466784227705463205927794568343095228634382108598464380706383297793622863445642560409940485195206332527656069532145597964954132967400614487570090686003000954808594611360831402730989507800092364538186393832560312560380733664597486594038971698699707974890698248066589494071078442764330080017272296421653445128599992659623591939521258340762964289737100210042082203794893701406563946238282554947395129608480836231732286823432814687025350317875587927411869208810930763175706661410764202855538586599680296342707093392018603530182167291680369936926717816946551833795923030791497058192533158151920538139283371123825424788061115563595184800014388076901338386291081430729865561087353628849973459890606004874793233753057975709766499906333134468575788118409233751319524331967151838256642830649154232036776604068112848826359566242225686352108694906323454861959333258168245291676387638398695812276818910542259425685226998324530266436081591047149003403483450971052249977545153036596722967290770788979233569621164720010367208535986630654942730004805937046681621060422294198390058805438911819177014125499611010895722799699508282145818576796420734414962985339415423882041416103867034607990249194517525944741620158884542249790457687827380567329664888072469344815378169248931122572491584809392966369071697451816009084791411419319050993217912485999426371416659452387325378680443468748784726756634223918078281198196822900926406939264055436082527492929321282178227817766125701732902549072937314894803773890042637472394110431389862938072899279061074530931202965510941871065927733828714972231554353830376856453177382128429248866453176311172487682893104626716974210831503253069606159583688604913632928329021700142980329012457080214765429469944986596173234631282771620735863262399007796331212490565195764463779482457483996213234006767118051889805896316593007074903308600947881868493553600006553749644111453808762617446480925788430248914031494223709121697716160277279491695987999717846448482392569178348133833602233190265119158423523080468266114965796905544711693911964423432408344451323302810176573356805335347855548768369243417859387687701308642417612464077578083688645656605787813098024871873795353740651192857320771196277722470615574299121274227721307476769260385432302548415857877163840334896379106213712525690393994450737147431886286164284401850359275450308715592754872319051552687025187236391824096867115435747600787960664695744602504822277205569330963609354727461699080779869866189541084266163367218258634147759912559592920165962761935130961821833651685308186237674663677499683227557866023955678124283107558599612792958753635085248945704965117826395553017416244600316770090065368137577253085453976289019143613356179223114900836142490646417679308959691884266513576307476503036106033976266958221619172695143978121867600177086310841747259313569192304707283126577782112132748215114179926722288099921406222516620926439316698667544437752804115313021650792121100663467090060090590416478600684602481495416901181051299350003592542042641281983211929952195706598209317676215240096251658898093421706096542263839845892189945783095526102868714009769256933900554112493505851144179562528620528586939010081012349397880652304568408601006568954417532893614951877523905175659456204964316994016223562278958124299386880576480675212200025472161353233898276965726358450011484258541079183194766058004869867022554627467925281572604928373653897031467194461731239626065458102855148192006579870293497675065497967835889264012813937114430881110426154759219859885369693027764610733184651504402766921918263574711218768549631495421615920847342782610940234498408196453394998487407759731242529379506042177857375654777226557341999958436273961986563449039680351457221029121643417136559581506341176037792924666701039356776580967254555397124817416266092087516021078642395047692794711532574761323111431048310355256900923850966878656985049214352464110372745880783136920214069546807945332345673812122557651787676850431879401891838039530691003841500179090025889074159032059278753830918321947156122460223496070260777587458095366240549993272143837695044627947510095184762485954204088238698323663979505991175269607226608687567495123381235346338601003946149715381167216077378326626477578906747868281285263307950191211032741853934495159045729289651988263884785101957549079652789149393081879202945857258998874863013927562641285891602650116373375356386060818338414295012884474554218480391383166032110758508712660865069680459273784368959815361187352611628999487330361628462823063523419399010514233152104056411196095034134387930816533508142874102987857720194510088637679783047993474746311051974904745263228345010978060399446218441218870435404173129523311979212267772345169642939020648432765758838489280675685163843064019684658955428593647609000054189077852810917798058027788573019525802806019375830860770562045376320305539465864259202215178114141563725831446474898248850093577487934956722589622615901354905864044817168467865702265421889567723956435813068173491606708992751755302064431302475409325864462800684075615359488353184452547642950568453136134052978348205371393838016951063194872290267989055484414152817560820518914134853883097423020194908102245594110948538486678125230441930912831552613214145963621950232934551838220986765469547674985917397292686598869934196701677407727320141510915876773971501472053132940381191819866705419925324073302658898455105050743203141501448009442635824366047525489898788943166846391958149829248284755215118793047047880711302379995597196146546195151916359607977616039775888740551612098804003649016985077887041713409228952306723389485541021762019382062013817145541329328591927472284001248297916135300575197242015478179408091998756542148037537436700992134704555784133088662083155048868737788838768633978969071413554621234878049517206864175267718195275199561807039073211808152966618325913184843338892782825952178909416839720072616495924479965681259187423928115589527151489721624959582800326987449623207064413388088703976611993490115397697892439720563532968417401756583114961411720961632438523556633461456045825215350715264395956410682227786106267579534311564493147017042107742759793086929380470374794009916619758757865424526935510691073319245299528928667436946153687593485990553969991447606914119345100406873828346103585465202361682395515852101227928638950894242940889465003326940184283104001548105838919017736141017353077083593360482724959459451621806722921628192742214501489354134869931888285017699636314611798936333624218039724029981088152084925144817987840845149311817048374958708354148649659046231634489989324255550922347971336785574107213893916023694964515661594385395049628481887246332178017195105228482282214843077976338391344299776613278029172138972753892882390339840549477273952666528629668744880491322643281027630140057872574798567287158276687850091581972509641476413752078915375713140171357111579546358909293735569997117659270675868694489351437318976624169499793439467024780723918387629712894848055354860686961161391296909178981961105923017807658688681602440638907990856624775525967912633101343410908215702108179331013446752753591136175805901128498890498750490041315763014143368146136799942346543468788404980895794948303130429498452223133966084380325233510076645096145192672296715417558345018779959291900478298100788237425919157972809378480064237664092845845890979308519737630565486049201515004161079761537434051036638203394696988761674501404482419026962895535407375806434452267108476386213257571817712003354677489084086055314218338972803285046648272378665426186249798784368006909070423307310975224941465861447767153271945840037971489520221116420701675029761365321056798698821034289390309750756378625617904444990607394808809699819466109376513245177456676484640262081083257410447789954467401577445406005855217269474424896929492026482979134160030780391906025590486902486213053314781144686715714415604705484292215336922840030134139539129336741720092908896930787252830218665104024125125740272914457698267190712275853924945841339930887224448038783145922128448805323402489284653847706940691701198154803245614961165125607345790860797215176531560823297667405308174906539976265044027333904119863568203157558179456605489221334525391054991616081215337537437443014826547484221891454870118166689466870467608075577470909968140979798522395089144159340117901015463940354325100020793674326217601629888564878375613826661671812793149737442848901524837335335227021461692911587683588958832933205166740057011452124046895459874874243956977602212145059911318110020904884306072696980256824114190006499891365541670187303119214814133057442130438371753740770497394309173867168177656151181115322409942199460100918851740304112137676032599900525143661055203513444536433753572035819701268727293578279603302906532928920889815895625867625046694604672462006146248399238865729856133688608977360571557841878947383064921550433182309389931520544352497988680039439824362004283797768461961838042911369066978012200543974964801759233950442962231009397190963205309691644123659915182402569314700306376384900164193114860913256714712185176839892448161702234514863460607305555039214874064492540653597761230378202795964546007348790470985234012978755829490193548381858655366549504890933210376835085450197498457939319058884832270131960013916700517589007190639054865877166518088277300172229465939302450818693032482567874294068582140962361959087361784717118973828125616884207074290770229693172210910189824494443379896098019226484123468308844938071474605893226646998295642489228446299606013703164286873489215783961447090102410361454081881899873541745658361797293258437920958652176490907374573630792413352900538168048243968097691330502535548896892503741971584378029945908612373295676111263151183684787594145456463766196687575608067444704661894188185159654222238495406263654014063748597418552302309205585958843946005537402494571951999355537869356447097880290805940289002250228245781732800978000541123434589021722577586545231261505628436442384398340213698470181458054034604967449117520861184079070745505813471062635490824012409467539611032603809346906979142047209855285381532882356671172196729847869909140900863237009767526950147030494426375485692380963622485505281540230422474486256905291102435206087362255425969994954454715877363199051448604431606714335753123224969165844300171529627365752304652593687247825980551809443837353930523541132716282460595512419581338857456044351303420849342021967787716930736089602376742144063788494927822111360365974779572443742885961373617550132882974377921240423323196662715248491798539475460243209784111512349200649642972404012193778485097357646879607979049127871421335416884167112720194612538715464062535143571142563764889610490035522185937530619776035371219286889075015003561230062213607118431697005012509736525111200297596583430826132991356496260985302674331132013143793574759833686333113919822787454263652466649614187236561876170436356687337912416902208239096106538305072123585024058027304661300103063310247372267753836142631343820969739790900428334174118265495914942077969731432665766512554027370723901201489723424398773909313936198963109156062414220374093495079303818590191290288173886836113278514313898037490293779205807977760165306708631796926677477510193713743021334482452084870509784790044996173550318871629844976751074596812372792499461892554811248341022346855458910914284744541465958756828550515445363371764199690076998472505407618220801263700884422562151052435031774273158467199675887545239744939704460058739684039343572176445082217045144381780294627556868788980617144187350339617158854406421508792676789365309398860854699723521603790855664517187245499171128780536681062523200370303709985441771945402614982492039207741593691512112523948316908487288435829483294139383899929584264963334112059779516990142972262100888915181021411620449354140035964508039633766664813779101243195922989470551470993666388657967911243344803039549037560095223413869220944856826471333892584578626319999004205835711794732485607663751536156302994878930280177074066155685924804448894202869734731944021415464120914053107749290411769243016197815412948193713620454358325495355515289281552213146432460214623238175993340937700734525553133487119926370720717003541624961002573527658220826374369875010476285191806003243604570918176603677984406479547552351494797850153133443291333775558991536887655789901499615341181412957923538439219386413795923970063432635214413627002038523816873363090456282635057112590775934723445720741174185133594067437939099547376215902563701596983384932470513430294914497074643869766104391737525990788422580917072090554760306524344779279736986036192468286263516633884405275025391601170593029775180701051214817643454894734624195838180881430456765449716712432813065556156535576759761000789100833854515169276670835525772987884469315348928360819420526823562672704785722865898394017652269605214499166899381555386710507941877875546492632956771645393768144542233496338062734689038079887051076131694092208300174000709546476974707066969402989183209408742775232544620284723590272516265957876005155894817348208042303910365596145093828224240880439296459632510227658473415631560163839461827183141970618780660515439789397333294835765802711003430126310411247066884475058172164306607145184643737980402571969621067067172057257482756734840101273622861224107173119579509628246270926264047848265351157128448273450642624134025384161633464773460403276416683526011943786966233436002237448385969700162808157599609551851321284338350128224871608908403270872042559908887332271180644071030432069063403278120988630385429174742107983734333584534668132855722459967832322518463746988070559689912022744927261206585825809029828776177194133420549513535355963779290592004551155230691317608037869481523580904240632976890287963305477241727404733689206333007882823760749990532190511928326763380320740547137006855699299356652802624825284321628312187182764539494367947727101369784810169046418468212297203272685239952932786992842617502612198218167459604275120243161222782316183220103972673358547604796364958518615105748054869988410782356370645648186323532051614594310753098679336820593463612913569842175634696835075100369120030760453509152702779740843414028926463359183664519404209668615634914789926562918321924091023383643529567008074706501362112587080316162147372096233079274122512985720096860958411669765433670651553401245918260066463721927948041029404357351903228579397146307754407781787488085226124221230736544662587536981596101671386658827586037526426888981645857820681792331708532486338910225910602096350239597582483785693086905735823795988969612088378701125194902400007719509398971480669472788619026320719930774714642414820749448868759048396080996019611256471657615474573743997704213236643462640686625239393372011887453481563443446846534391647591581065724865578458749251573666197995008799855753795965527327600539394833991452540129926835316179795536194998138771741017815157706205283494928108010108078655109836116160991294693150156063509483426630375465072244449448217957532513730344262939338869496589921996290541809928131938083078221338948736537556672849573094355038537159634978229527610300377454283749057542985819438916509432262620190385474519196373710249358065083466958981953563001535278985101544223915524383387917413109163742640714637904598846475695562224345995823820271856669447705489582920105572355003262694630633753728017245130891430714228984843852381608721877382670356999315396577563020609031723831372013814174730664696260766449610267467148573765894329220414355840766622303549686876387101541042086849716776239283878934900679824904465569962055941589455703700543505024908742792768171804812758372200597708775079577208849015037035661404644766127556859389037844445598207968026807908746340994172353332290408188183111955860323922041403276667472537880586980948116874010208137139065152952148421944093569768504926113540393769962607028503044919110773563550332919385945297521426194457411674584637166229209148123598546576296447340473173705103483773143583023924611422384637483546521798026321873688644827203705876219611480938397201406631354075511773221227037773962000256873046522119666432226742762299133363141981499553148844935937023744964031905902591062238439403801819971088176918869389508839851201260859975988671276799311842783782086075024165783533988770089751960132616698762199563707019494435873040944431730252542947214814593711938647040494543297304762553259958690391015003995074752873185525782944046146613024556158421903161242459896744796061110038453288174910770940492124325422308124351239365654081398112130016537891052023532118405421918255169311588923423823936884488090971285532325771238418882179815304672685716360159998913070430638137081602601691304888052374181023652648976165451632835007737985459431724921761108791528143508460274944624807411987250103553757053278234989822525023591194515870277465880811113801653331523523455231615064414656295096902484388595488387603032129142381263779172717559316479895891612685073538605074513995535906622083496347653335917985657561568448747387842526467478567042885337346032101812991764705518640284042515256556593110009080657431019862768740688704343898848036227859196786074783697122679642225041495331831850435344232087168857101412266915388735894799016551402144430337743174950590099265608251207834171967935375197073478396075540567180537497268914057268521896166864663186221208422032778024041703957253254682258916291363028334114687670632195776148226267371448567775882222063829816000421950550753122730958536843194758287092673682984963389729782197733756590157826944969648526810903363015192972915259569797528036138930926648684848805050569665091109817111993208137885349398213388708474375582326413743176936470195638896396374628897319694189698234504635176164468813527403767223919897165901121674705791650147480466528180987728513436221464670644055160588355816030106402815869683720632737878962028057321130504486256648129140930803228271530305693912725457672340627602214066619918673476247359964613285335496683930459732319315052066928887546631821052821879766727633289929026608667678660253729974726924434596141961587328861695285055571588984218591283738096711263651643287006465601770764598838696294337386280379123008572535737936973733533740450250037510899538870958588447603442785373885669145688559692551449308743687261258280247738815495957806986279861958884500552134467906529233501704514962241797967431959795712162683646497316412973781677473342260549694296424266761315899441106035685603124921898080802685358467581108875942700999001464669822083837832997013976324921014887817010940786735049677385036806564862062663855725619153850343975872969899257657354777631478334429674127723690582771509170895016856582710053730862197978726862706930331069079895886770809926640185443239862583043702522098631171988948341931343537241821970186145538393951748138978386316571232860358815824045052242085963886544587302333810952543455719796570859780118824838824977775750027285349931982038920212028022152955732419934667581482539051731050136332772762463978897408341809948305351808757071540121025714785437272615132284583964277684935257884511069197503073021806465121765415254788243971043811552072849415526357860904730426797760933279177924516491174427181191760502306108944236663032249426555103954763406460558027425234939197435416445039178641099843646643043958346498743269639834885238922385127485933387932549600707542692647399807207243479721322882220865983256231175493428243366786797975382143903948603817096627857542311220633809681787317293599278513415490132599801918596678073482622068362664952121811153946330565276354078191605591684763389470533348801767273475356286611267772077296680874886565350531342367038465888196049820403341081089023069325971827048743350121535730676892509223657306507019853403068975368705035782805503956465860828591888969152478902943884284772775027491132497823298570529181968889655770623785280107227525264748854454871884084252366306216809829218646723854964611324168205353080804532767218913722123033148460801385076650002603925683114569441130789292067918379778330298960997130895625581485882175399617257849156232631338614556192705621067913987753325487224192295643751843920225137205737827376467158086124034050381701945445327640045500104732731903175416861646476075038675048698191439102627341356648730626904532916468646807800751693437476533855611496331485868217762634395075946430841661137209860716338218844505564475117626103418142798724167507543495355735490621527745802021881962171206869844797999135604341667224490053263141165094520087416632075844072686937314449845885893229773964099864965720761315188920147310948288551254140045449548161549692500723642430123289959835877423973470697020080855762218056073838132374834168344338397173113426429829640521185448705871008941192316565811486689791317068702310908032578580048727781691325632886289461968452616992122790344877054431179892212118513857404679589460033091336038234583634237369109606736693758799915128789902494504426748274804187799116911573457250590988768032553921323055915896489440561279804523427543214410807724832720962887066717822146589096164637152579853003033030352251426984156663190692315501040832139738167329964091058774834340236055102230432244501942275782422674514273072788620697811922804112043657801036783600651704135625094463652387425054748876320197133241104930865451252435085889999381108114993651897356001014129820081702557052833362329973727931738215042857737847396244365748851166297060877301392667534514591741396255659569070893674124615666609872992771875496390795569593982680692473861744475067493364934485933671955287798753331995790317748716888200452796220061990737091345818972626992437734851094872366343439364346342513510535451541989977410955505508604204703268798547645379177675192032960636103264455468863928280509772666367923327820128645003035878399719602021258067070363649867348741765114096671137224504504682360184843394984343267628413935108020686994888126886779883292178494898639627754710041875660472274887261030945612313471141144850360158656089557767858887155711300032290395571737464560895309574448374729536680771636495808110442694781114662048780241315862900127722716787440534681058330725981730361560976326625947016187135235707325130324000916407760931020956337072408133531291688354611468139800195890803308668944027771959341119419533768942075175239195344647978419425774974513340970337469566908985571226911166435863783539172105800405101439714938839822419587640660802574977938832424849778077291333648870456730556797940940955821362303598825436536854745656648892286463838321905439592698314406940708670763601865039589854259919880453096258565408661697893136321730691711315230704047209211358350232661245955211266499823429624211363227110109504656330908606260118244748683005883097933021350378751805272077563223536295302474479876824837565747270247041172841433224484200680078765703676947955687070522262543113073948211180354817872733595418087374320057323603418962371112381870700247936424061989749765849717583666764691416512517863962794389029489652292269554012054718946958901898575383642275888201731921024275286217764571989559556154043549642058125836669969674600857743320548048264915356188728866782854512956275818629534067165529995283887202394583308379711151467647250794580053934027342011550863501871893885246899415056522458933505203044581656024515887542594099901391927286709943201026556488653381298288984307880384611110096307047727502908010111533614994259177719849356003209279714391892641004410974216332316809745500388542099216966747156613261999502832886344380310002992617795855679831523803152185322032694836352776612550459573864047820079411125027694776248996079784732390018857162383059116194008340085108113496266255142940607442737224502455846159521809882839553023751338138969965762076445034112574695486730810235999945526513072755230693505809386267161626691739275913040914582324096892874901394434149510046266226064559679008491895071248034562215311597246394169276084304434073943690935477573405328998505870402714172990431414040945524749219791401990089881245193565923680864993009769275345577919523999781431684548201693814777266745068469325202075360512355849948295852597829082652543507114974545013949938647697392837014678515825007457168763836197363913136779968219486867146987100792439725923622388499188270863325905704161175710916432370973091997274289224055574813740609127274215179883586361659679735181560397991810547552937096849138656114524318833435416006441412713664111395092552378327425552858806199110688611395251055317371725021029715710899761698135036344224400253080736572279770221022413371756961950977500908732425005252451895518260969871013605462884936179247113208474957692183516244856409154526290357929873432602283684496413762589030569412536766663384058037960756987377239724645243612348706516658283232809053238746399197528088978812963253368928096579732785678149139959335039317627424673138131440514901199841143547502102524630928655772039010941442073194890756013346848315643336331916925468235363889137430888164412585379007334964819096759096412543587591885747787946114831373501270452251612777882348340713366886404361088639694016899864229723104788349491259002215283740299173152666414613333793561706528262417596529473404119872965963045795499424819107730814042987622576237252976329966762548227266217888256793977636327098887101915398609044152846587582694724063024049194536053997061722937797445090204307960400168348691632291485295825590607417638641374547884127002127343279884517684418713168038088318375607656500950440406465449586050796303297200290102937929602753649721402500093168260796511202371198982460605800115614446723029266690269978044338603322258831602873954676807523692061452254095538207684626892173998861063313877630889967685338894077193431251441428746401141763835649523830389110063284939426742767814387457043964837437631528129081202259262895987947590722997713641302281501108306756811855046195047789317782427463856639849278586498009658728400992818676010914843132103929963157729919843623173473436464743285233231832625456128668733766464568202000743500976842249892949370994448076360293487660371796848634606048591908856044673354534853493715270811278154232163941338963921293594685776762070358711457139369667487225854156840287571195419220148464541188250580169590328776238088602593139402254985187686872308950904204617191188865197197136384736087003921845817340916556216159466097275958277193279010141834299592890070018330013139186636718772888816984429847213711817167992675261968159309486944143713073384471345480507767304531650807009507934844642520113642108339642040970949658124642718756998712624823708262576459292520911757172532840497715918100891132527317639937760554407864657191268944572037976958954129472329913528020278423239025798970460983645360183324434900310913589463716329243374922306226634080886260777295239726712848123097077163406526669504790767026231668789232859300290346775255446955447412343892054165634717683168801986811347391934320055654575035608623815834033631476910424039572397597892177948596405645140533791632424468222220110982001342135164999113036239821237402289150872584443054030569247558130618681910249524254859630542575722300154516441264335649867770985170154680392710177411728735917397485534295291793006200507755949827345748684044800761758421749984708731962124376947532052429978913737052873366064895428433208291103083413590698825351361936337524488722135296385804516442206606830821960652983847822832181753388220340660102563629407325203841096457608549515363418459522553729457945858150734063771931876628890605446233200111988171311905735127797574622347681294316537739598070289175366043323842755589258355662683447035266573199934499092741966588617676922571863679204238279510914444933228426843754575307051128073835013727347446266309209802257799303176445428426037453721292825363930254615420205403589027083943498879853940987837275135653965590562886149243160080935092746928583387974631361689050000221562216893040064398585898189446097057622669605699126205150416655843074273009508836745950050541634570328589995318554194663760962994834510528018620414420288835190391456393540675654430768543849121426380474297815983538854150926795619786272020548053666215595477776203456305179251712891059963308396683786279965093486412764505282269546047958534960321429949093079815511295935055336191664810163625395903545979553167187108873877233459428853350564709880250783347364155562786896231418081721779899593801744666274168282824290268648941494959081338566374024735391347487326449492585025943808088897843696570440008732627467409407716052440625379673962829338544779886394356445392247518347925526031238398190669361513703117148132113025450495682061331962274026566934951314662353124270185479142784997334118981457903061562629890682176567864483554382561166768384789785596661157202436373750132099321816683290817275300458174485054844839705497230778203601901559982398545573008185103865438928024164867301542684238257844549806621327082090095961347412783190267276722874902998245127695204799652067299557913389438286219158031311656979917425355609154612313997174309431723956469990164714907835596732635260205528667788278595773066520996171742782145810669675843446293986359789990290315248388909370115521259508564295332027119867671192761888839602758257630948384142924166208716950919296136343439598366856692350041697667205911039702859526093992614859167200535166393721217452663812524529836635790225234088501851405053788567199027952992393575284721675519347629107280951952178429510723618123258784129545354037547906931540312774755866650510433905371121161829517873987499370273438118158191965467816401732691031763520334162451351692578694636407373112533541594605296116223173180813459144213454343622967141674029056288751403566833081421876065691866373501791172715788629018062497728790713268158957038710870440021904048367676253904882745513292449040447867262242922494725357941566793716873139920301247761763517706395523637125697211818795530403839040445580925521675207126623168336460491850546186243596653038836542246919253618860886500530678513872200549544910029853121485379725859629467631431024484264253319410639809515255885244603470121792684086544117619507461038693484362292896471914094854634592291585379197220374587565866053689858480403599527445903784848134382518876324858297082800744063969832153160570261646116138472021481000502317093527713773165104386758769549105589671903588546123300353164851618215351961802502310180079352936619110570210442361889666038955120283604119176716449686612540405430387412076119847427828123504658823205741540192370045170678362483574197133062769643257253023368993579343825204357190859810740035483764930729525994780038668491027742838688492951739629977424468420544248777701016795428919523801444617719510471660183882975781465980902461442120066591976197897995016733040134428909509044255837364061618738072836449222209725618356193381253127869285107473017216818638528782320995897004819486110313137815652108627134733047690087494526993655800376545038475500203314351708583348322445972176600446103143148383223044802547377326799112616612376193769830438473233838650578409551416289161041968605153913877259379878635983867806030743118246928464670208465391084536377795548824345973186750466375997447654588158132769831487652785729807793144746199567947557301417593528348461068440593091603079206906296202685966631699089929056036664828667147614626448704380238862313368247098509119422082539302315436763631849096338049552703184351802422774622026749647470519868809252914167538384395406888481781601354145345492064952880556939689449318058353278736996839789574594751115462501196784909389101423474557002677226563826901314075927704608413397170746992363796463579180350108550506469446100985292025482678160203955832332562891229488502308859701279612027739296939542723663883358494681143849932345461336009165909050986175011564692223216058005968112207226869590537131761689052659413663960368826387268657208478050854869711400829519713590062243400034245602877688619761033172412386173569897568105738412784157996551497410066968194433398632160109976838356799817750410398627110355256290947395475365327024602772041243946770220422616289011847432196244268693259978450165591416753376206062382589246356599448052573107425020452370461769278162008653498452650497449828484335093692345446774111317980369934533104475500698105609606353093164944681522849185223733166752255785145691266893738363855023649802508091087596423849510290899142604174462989419632733869731966799931969630734365593860680166850922685175280692597155204499935488267675545048893567687767173934401453980324911670894170026587258920370554909220044016669837532695716161046282111909685452744975936878886434240969790577116956702293062647019268596030246721346804353100442718303403342931160768339843320331161174222002910095750920485224858539561505457360745383720174268781244029899576873465240366633754170667248964329360023470943506109853527534222619575020649930251066381156545763716996717613438617925451299030942579392383834410427240021148445058560548058949610899256338459886301677665621547559442922700274182851105276751462175033779065606542835519459163847380371903649175487017350733840995710657194139000907253368078854548382358993382178396180517886113131071636799255463577479385188243285470048237763497888262605520405981119506879878546972512996425442885671171921751438880050739149088357306461419380763866621320654500440104099037222438389906453961013574866269649733401035901038756156542436066500434153884388448621674046473970405567900141549143356476723499193651985811016185789544970515141955017190735577539064295152732862379314709670692779480324829212530662965827301250021969186105558168432413438598579233444938136811583559472551473417504347113029478920163476364494647953955367087968903996916414229357983283527605468039009095751650205787313938916345618952263731818028514393957286406735510903574085117038080049535147477034796838835101469181005698176965370645088912032737217543033118803343612187162416804929074409711764376884337168430409290494804260031274928910021571472755693783329501475298492359270727015401373180070804126445993545114903180833979788884870874209592972546257271947214111321029674810131446935526082304937339059745162528822991437537181045199233179008089002181877779127671814131991596057833737968459146223015437995855521255025737329092459713112611973248147527184071162567244787609301115639488397639412715265649024629506419447067088893850496185776373047613449446766367084552856385665853892169409789970022557181391617798931317947387208917809833789773302150108575364809204818413960207409168664317298956120965193336157121250714916203585757694322078382073713094636204293004227518555432551367286806801127976765462968786772780195699112888209394070626221202711700081255535475875873065542655845899838037909260578680435394905117557705317792180928725713932370644234481066999811341506686860275766534946457152545510424109996483778490664791465445993371830961827778237526700283171489094647926600909346208047808461310884124306808285976428366277448491080325031914482535792227863209556837207772968720018112692654737686141020176113933597551762328801739339181045420330804414716467188547221378408857695193568842565014761053899334672530239357592414382841395728378098009629503062474218394816513839440636719645310560365325976888595644753037335539634238537771620335583799973483757294872897053308844176394550291139518103766668956931302182456206643457668499982451881287430444783613117284226772272630458489334150315286521260008318706782761158317135261425911388919379187463397145260107679324410001222069058150767287633888194556902599325100585484922459872327036154962220588847889242386276309836063166384913286494570439706838284352544413637153271208951251709890597349087557317062316210805764801057660245168096484278600257534510283701697030555616901932452622233491320991263992648114785812615049285471661719549992246049578969614038015460347412133644445195596399954459855032995787806965298955416021171891153490691396923837026029337255872826285047427746984054292529085607401264638674686038557845314350565022732623263837322723202543676974953375956776968159592945628113034596930779853143643587026557348290824458918085850999587308108551779217676394690876846011851850428216691574128027085267425720737372217248947635966794089225242195405333872451102686193238687139792156787449537670213754714376436711929379440760260416808706205366340184715236006338598315477235219065201505303530920748515897878708477809137788958454526270179669825758523618977043004552350441581153386716084278021742577729201870735647726033511466239575932499375128685771531864959895378823487138324504937190140148814082838450475420830114391644719174837425016837743700798009206213412167402938661134537672106565998521870156683626660702244331252496764459761037289451839619423071679046986426957888981604140419260424804349763123775331221414210005864288450290126076139998268978323818244418710792467548318502140892571997577498711633479896288640407792448410693341112768875245510679186071409421988076697440455905255568978052553461047156762940884425687598592330581078080844723550259396427908593848486976539955991874815562618072380676715370075260438945167760307671106500247999773666845150778154625165123064123250300980128102085026512147408095118042777938199491700089176584718489442205527262694449471061561495635281327148238633705331127967405941297957036374704274201763734578259821088236998709312632872442438802458919426343438927278510505397400563441529189257189938462019416452647408286856163988706606982344464580836749678391456421176547968390144604094322366385741947577817127505467217886152213098147758302587459303791072836794248089811027580105859450771970888661877293265423990882958101608526677967809541443445901083832305046827822313178874077637846990350110865088973368435856156954589057396479101243484966990956141436273859228938308838131990071265220023760859585172478308038758612033495536456417677152436511415836268674815035600232669727983438932177528280347697540704400001576922849352750674814089429463330455804724257599736999250086586188579444399195761164384492558657524656574489335468376855580995901847960828369475909242331961004026010738944710566468472920311678975981647443355950809288118839910248297450043087490407595930661638654206512875333620121610042772789440370829456754451213966442453146961406603799863962908682446429073842554322015748609426511321464972009447337260639559993800913860353306663972973744226574944182995952240909859786002633245691528775295239060066638665580202254870618533272934759383314500589159435980641655449403357357884262234597025861883109629681590096606864016715090063451595196062072875525998331379997801081037856407501396927810039580788388394163676069637503188085960908892247371646916685383541555295827473791880506401343075624446391990092609998769080146700183188799693255743158957420467714172864895013590256813538163592323056386448340492014940345218018073340723774449392781674200260758068815929745046661563572694396445286971580388466058651680817079334423189558836056503627994080394979070056459168879341742357431553950004460040143335311134538999817462215132939987391515232394933413093335050316753655790576527134417380147658389646845437742149512690584133355499248580870949791593504809890224328513143895986813752847630098323649035419076208400209373035179086007326860401020956750416405280180440552791495387934123715322362875896004159015773672990843758198588678526948615188962858862022839736647349075609836140962372509035907377643808283071249422010504084255532884610112747120516549780638237005764998550658113001229638368379996979661600806829141912876397468973633148765741492025996768186214176548901252831257660533397285897223595517798032439896473601234674913061519747945281139494436473090330884985236813820499487110099559412092334604629160723798998792043509093834110346475264067442554217826535812993266674855522480500369936242567756678654376691287829559644385552668462459817342256687706294954582956088520997953918380467800614337907159066032009749198829322467542224161651973451368561236755884112285762321735835089075025249264670253290369782345226337354595202499760077466330646385795295027177470553973595692291850541895346391165038325600700392174450611663759558520915273546967903485823730389149958053391777630210973614669631644844379688099527254257021705863572163245714216480123839685123632871878995472601140311091099907371139631628292697437027931445365096320799406112715684774483543374229560851486649353109041673811972579216032443997888744862945300927372932064847291916715921365495574969548623993126361132433600705296901931394371343422383776667427345556579088870823777108017317723639803670494984871373669510702359491894107662451159891194613025136036771187231653833482422863686497300405870907848049678167832470006423408912210946194871703480910764329482836337093589166509484662207567863342184621632110164918769601106271832387351111541640124248206541423802933436869951458108048473326090734260936526595508742607637468379028294421894973444504788796050171323738495442990332322240976318829898378556733904390107940115723546789513232483035629945443862210779287879521995433986689503680216986310194895234697834935196011680016897301003935093204366523582500626037819908537180619206594435792719671827132815476625945729915975796527064500721040959828439252887709695605275317412581918720822070922764411049657336898231321130977790653451082380279571984647554784054305175316425865794291052571839985144421950989985376830167570991508327977594975047561797729522253007488169809865782739184696436458866459953163267193228599217232120278232440605918933593240772461322744491905642325913660321640750139862767623150205687750065772725326447461276576877499780087640812250380366361740312680170098394460951074738166695198516147621193166273779400086691036562284087884385848829709474550692975315081946634613343033570649350644035591048384451137064150164415623347692855758331142848966286861608933126535908227624319461567263019237551746171845343228716475222106477860093802701713113168968097126547677435425801068105038640914171010449713148815497212912012661847617545485632004452216303868982917632175686273418524484946636839409547763283715726412336555080107723835230932765972052242420158867780750198644106216566036447051037107292647847927956358096109941239798497721564334606630696859972333274110203631176397966945968762664703228320357427705114213022986785443833164740524165087030764760256724272615238790448140662511052590941543769996280710216556651076330433040459463808137402244156103730835882466025921184796166345469751109907906446101008123785833203922671933343812961718585467241059801062378201707072799068004192478431297520148021927389684432812718084336026088622206844794606703865236470860637979558711961482997680785420680091125538670807431453278965452149302649672199260584369631370918572836063999430804986043832815504938234762538976344501950172146474683831559952700851683324266182885323472038201992043250749706694850666632523440206563416961641817089616258445485954644594848487417820256568141907931401663540721950139296355332600603230354778208936678981638214748149801160237306282074094173575001661600091644750765792940550961926315630801700448782929335566208450089551889418312760439734674928992030525847569229563959816145321243966392066830333912064774468060520156368977273392328606762855734242174284745693510689057858486795698066170546123715709843161162396051706739254271735294599729530353680567011523366360880065714316475540606124581449156875596450872613600557248089212181409833242566662909807960842205777544818294742954668698620588094330104729521380233185887879636534585461321491698656587620149809073572386054222469567196545766888984520213448999877707645815380720777839084870510115726810405617917006175857968574868886125590255854278033439148106582971188601896906646657670486531103244169239836661226288813801781125080918551028215168440211665621188233248111455144663726614102782027497540644192109385967161070668701823104399484392582724134542077902920074725144426893011333926261892836739448629430781774001148997173691509868310411074046648966286484189170574578862050510443017740616870630692440540744119282608123964007473183302354981035829908587589331566645140971197042438745449400741315460032274421869021556219056337197036572217097736940073683695124263895701338155286162798606261921470808003804272696231548497154916974745336474145575077830934860357098286654847946977779624172223029363598520598555242110689339520316854283069256615722969815206793921129778687258952914644231440090577253439679651337809568173057165648703877640331246039717096361504049822207235653255000716762725064403040664435725413247079518065379682127524171348745375577082420347077025836149082079713309466119184919595179534789245263602567900271055550811044170584656930022125588450902134457941810285135493409266277545166373956146842802627194659257364996344434180404863339589827735579569787809492834598967993283322305234763063571937811078882773598091482918968786372569899855663759756508465771743996428895103361028575269280981700995998716174119554583154726171587303552556701170772795830232771642260603351629611558517531048241469249301387253220525932727857022888110615774105564507489764379143656386995759318686182632905820406719597281342930523944430779552560442254304427049765523941155940155039226315914190727173450641288931212629860374639463045116121628772073342903504640707035130804763962567028739239908854916764584652785403571236578785097278434107632005513066881623202006464312436165715751125707232693348295643581412054558378946134358342053882075426454556661049790487801498286872831190654981606125725503691181709587883679721600439032687541634632323596459661415671558191687645937770068299864611540841238544455958738723801161949020667992435612589950684523136840874739085540825797085207652007607863251084742736614428202080168571355926163394631185752323921604574162120690796977669891723362862536690578092813961781756356019171406768127167923797919650449112189683902411669325934395052529009547961767097710458048594244439898510071908015667016005505686443795767479063664443022508524329895599867026376122772068370289157249798440723665435686535577320761260386677292597692575826861474461506150648834075741032760084678510886568923840490275793160249068355791925835854947911145757006381832628298762782742026501228177023886015490973140114583410716222657544114822946871436584240741879036416821933982317494978856996715178790190043056505201232224094272527030609992708026803035421414536661773536830858645562846628374092508372153419342289732909126185359394547662353238311367279091994920351468500030852621586726965469975325822124679827546195686555195263388260355709474274517459514865287090564822624716542637669827155784650285760453535473085310579040825227692052781523696564738184976680992936556769124998722144285226487614865790777712977765781133110381021263989594707111350771473661789592339035130880123833048535245512660812690929136950854643545749688441881212292223989228260325480831419161333937713574278545370182386570399320291026837566768092633007319798396325173753504681172446822557666835687534478615373527489856270429216885912859105891638720975711521239102880695495047447101359513728870355879134664441141676650910524562702065417189583933009132021018157475919087875894306908435110124523285282117674665585161486590111581288455485946434505582623255221575686192494321640405272809799759032237398504473933605393754504180439836363354299883164570945070554778520435059604028442662823962190185286157261000400401256160881061119240395339721476864747251760983849067878103675028407590287854230635280166453299399042423570805277244406926123124555688174009086159805811702352811669716038976829245327119425813152736575084433331664815258331291141519404561352942979436467728504885328796454601285211966196893862137437980551160986326594002689768687576530866254871005004815436753457904239607648361066967741024311460105995976835036817526887270747167571141683203182989655877526749580739097858900272652752325191636497944715077674089329560486054188219046464592660567983998052595715458849857664605773845064343772926827967672822686200489725023829055025941815626792333714211823089738177145725331579805713949701773109593048262189797008369665613498845778396233410295099236376188871557389902109161644559851415793969740456490055568416819157341492584597227765637566679331592678741295895355079216584750695753010777082917843363464935270759887704130662807083137711656834824178122896208074637059361175707464439815974472937133307541240506141431331184384244207224057444394263479204946728155043660615213566663926552527088203448849850127833932855153781483006714054330960814064526789061026801690075576336281279273933307057275417586665666126743455041743371232307206175598836308385364335082011910318645924339907537543513735617433735540539439027315073711506205002808167408787447742622987296006412213491626357466670046535513814775619017455906073219439740280772853167299289258815562177390301549387970472892985647501060275450871440205241293647473352299267103917599647082158864796556592990380769708962906765842928941080709009223613481716220801804360909707596256575055565808119705887098787468376210094768169103295456395274978871754299008677601825315807809219579254013762773237907949699090562651431224397042528313233638608037438992665345564149309648681474159087852375249496890389164756418682578354756546102801892563006937460564504228757350023767396516228277836386068342027168046926052653745463118305575523057409647222289105244261273499265187772911310242279396451247543629620063639431598634598687370945248321040414248002296628597627681343836099304540203280822711786284888648504003185286585782229633601089813044899307020001994126040144282007031863061731761413911154248788144262367344057129860789359317343232177704064270379116771691247115700078322943455044677408314546736736578249526949519416844708982129484065368190581402457680587173412805068943926265782575005676456652313249795511543440744147765623562475018817722951168806658650937701276828451439860523980078966498490629285280945382910310310269298806009002940994099608494052730094736758095033664746047967295934807060961447035714697635280724099045040872662182577974990993648773478312094475532389134266399873192039703453191544187448843746483069639272839908793228087500510362169963884511755780158880053403236004683528962154384894971899095636943517459185560059773756048879348361017493178411201343706543007554509793705091375143721954804868946222198164352784800690783508629680612775273597916311772009202543609592610508648494850701931267996254616639580019827419397388723613864123499426053336648431278440763300848977604095657256498624575263228168966015523773467904321399809455077250555724209311082346774280980994735329833472131376296778957399191531558861696469412192602437675151126283018064436670951730051003123684118503638978041523197744351307593969435310579749723048943929213231446811738346978926457339444748656734389092780111894078467825360694602742589367363148829208625443580671709606798158245037291489564703472943791143531386764942595546183667076546134198680566121620893819340456090465688412811995997865310769038159796716671584700704915259051790152946201598292737016338710547788929779964282489745214985866719026408190276776936602295026157824192738845084598044838829371543556474361904101205811920606405741591162131361991797755224069212112016121076939883005313950165692138539177387922074757974320169722169775030262428010156614622016085188016335900094241814129100967115892663000403077380653950451108714860010250583339091586862177895465290445105907280354389765384687962364901223038129037083135075165727171898648429484535474346476435116167664056869592863093973425703340151126328995811794792562478746887125032026702025279737532053969318036733004579330751699775861939325099635074909174980460231755858405876765270114771574868665453748417149104012323339989504281398725767718646416039114913753158445735138003765638332677758865720287049735675168692831247507020266551575746649398367143270252773270283321773191554321022141983763743008037765213417714100123072236375106470152826197854366751319854433312098284674444070457085793359088412094249060035446953308199106376434464642104819733035222400197141583071931939999618151292987302204328417235161881504824655468464695954885574383595576447832615999029003417731165326697441394402075083462468239126719949748400097180263017801771939032028545657513334566826416663762087647217858619377473513022025195070758482956461679361556259755496762278717377022470346950364937087551371953668556832391527739834187814108546609003792923185134778402939680682097695552497148286972349144587513756100349455645829739991818174513884242049693536009171183423601848622675203863430710285826477846236894680835038026533062777524347974383778691848567497041836254489194999163041993024326369951899766283812480510060252310506949690805325826754370155535062612031585168562645276928812832883058851178892203793054829136332598239821025775083582359503388253930147089777263786220371548826109250521104693850944987702187562659915967422568272848727522842813572967386600329532232680502573853887085169586769744161797330520601834900293670452427845285682940670518360798657935899195883375456756728777346405363050604025796086830532937169672033565927128758882991466076245221388103349659698533694274304733395310732952334688865543940731096226080823890092580003832928614746963611810583727372708050301949015340100284746851430945719801091184767186646206571617049258258314116665716728550441380395582887154632620840999332007572253745835752945703677597228065941897852855539791237389167322341870164490179911799505093019738467538575430016918289052275422941293720408221812649791931928617505449039250303867051021591256498748019201310753681828724490081345559155151391095753353750066665334471174676103949683994487518773939473773772737404365416958862244382378279025099030277812696601661170756684710958802601383913982114254449321465264102154436927604031123790397958087850672662691333124359663053934219150300371302165509296979316372094440268079562246791960354188534280468950094585593752745400994349977397240133654881333514298883413204400483594170805152634542315696993251084289018481780020779903745040849691607037426004303945525512274208149137378797619474354207505579646551800552115301709217560243265802171551496231838462857749649907396427310951094511670816018027392414951770727564803539949538721544458315375464976657954040463044862475028130245576915086164802603515580627494396728333501950647264783367838272879992441766657702185743930507517192114530561357785374652047053081706258794639864985675609052819103807924080418709238537440946500934127106474566591738723430757175317098452363980642162697617840755784128425178169031187127037258465457181017290176448714315738451558289315817589394474927653762489339373838886645104732866366552177755323364625022389847808841473028629746418579055100993057981060000989221520330323671450182100166869497964240563735601131436235477296618097702395677742472933746358310039959475563854734429123575351474100268016665783504725374753523553824199184899942165465367621986783995973215442092223966824488952235598676643135491801212702767023188352185176325712699168924910066064342768225749890893269889836789089117568616826261526959857443971623626288879506340715462335117341617926085830411624055874683233994158822329061249563822436157383258346323534415741329422462059386741375924540898755294668147037867994702680148600191043465247195751300154979569291807896503840554293567091265001733911198263323914775693928553477925169542751781015253209957831393607496847509081890003084913504645984916788122096323188274789810528898615567966873806105104876678662941326471670180787701308655153052483274813245370282078425494767109899648732703104838032083782140453762889807824089470901611484045604979029028181692845083138096400990936870332350276475912350633529415101383855205811808874576391560782222952084005334667241095768895942192619688284657840401029765220018455118632244447622935892206860202851556301190925162106815894780704216693929493666333683251935350157462200596692885105515594373914832668359360465774708481829899769547008427745098872042283685790585582741117479063024506202187692268022753745380528350479421061417540780393053597759700331708831801914081355431329729905458877610144943941032123319937704234143756737731702542021191206417365008837027693819184936335594682019225972904813446918032669083714018924526790833840806038828774676363478451333445812693319020321275601948780140202345436552353884590194401320746245987228484756811319488295103873182208954364376747872020474542404551996966990703148011854414604392570401505114558838675930684706286622488487034284358333357220943915376216518882623189425774637213071282192146429708476989727222599220753183370324686547341810608997335951476256246785341033415970303926690260021234733722696545841175787667194924022335274152883490028037985314556169023329100786084949958425868252102103870178189887981075701061891519308103602570404036873018729738210343339483049431624408747043235383499490276724391204290234162816362327193534217461763350845302597162274422754336704813688231042147182696176071922298885246675116618378535817698785556132373821785103273236566286272965889568308961439040768275409382299316496804195636740378948783966402298343886871013713044734675114393755986860864517636117210355850926289609490193039235423469909290954414274015212293540465085659024053730980327756123992503686466631546953577281152381154342338865990008750362803812515592007879651807457577061730185080212170538644234576975585183438415590500549174375815724761323970887937643639689741303645846983626956579811342098975999800295754579764718826067031187557777204264993670013339530934192975755295315193506260923080824467666245310389663986071797646395480984146052685152101871778790557235605488874283548891838027646688706619955154572994538459635076750576992271906246849871381570035752464759344816620835586678621791331753994036889440457608545511115879955101148422478929544942805593281213632051340268518420356942276201546919221843297120695200688583922083222130189982916596832905251171746524146606328020753529089986302772782533559231524732374736148373388887783772416205627906038394700795269434224521054467457135259953382451197711815147338801576761277402498794056198042468417533982878165152480300016816909100912312893448758637422652086767826057447407272217880077731415511616691297272007078273535200675432004060478806130768397857301512526693748596366356288068803640071620871270493996082488763328764871695112203033855912057616904719714091214908984745890307504699296592184710215491664855579395463430285408794288653633703726940691882426175905288199645531795122887852005401679755503416822973281699153193500463441007649422253429678203721819750156533613738616305037975992037495397120607097362505000434055386225909186920689231446363885037271672135325648762210119763029638919717537747615758983371946279644554527486395186525848027359112981968803213238545562275197578255333626855396748674651671389833626821549931664943705682338256450108395156324578467026754681955120517979415764474932257610326667652317728104685613543399193035303773507358004438969893985015134607303415507909738573053911543696543027634983091877238136689778283012593227642249652271336155950526729395504793942871928947465161250844181188128360955102392201921626823082396649401556048917239713930195454497695187158354179490131552713747943671022321555447482779615936158558441615238872613949676141658263172402504783108828549012303386245248844462136044052570734321689963575496684355413708476276428378675843065648752613422125768515342963791574351633218682836246259817159243795343467223665416110870853920772115189947699180900900116498935373872288334609749904823642159686780372689067842738991432909037411323455322007526576736506521944116710780543282804850702016284889188675583986093390141106664587306302564975477744707953232206194611439924131040593876325854828738643263088305239393386486710784920572773613360101862127886180952008808382900288326670376558684778264464628956178036352700157651687261695035606740933077461127309415738664869775642531423919416472134833930019834677721988878991368473485782988711392040931701444054487146430457210962378909905554135187087673044488126971477999319563146193724891016900708294102537408303993496011447240167118160889673394798903021608162000710233485525245086658188058100132429623633372870098671954946042623885514561728626846279552479480337993765612270243367979819756989856974715361018023610562429075209613341396487140092096884863076635847640293065175136270002244953350579710277110744576669375867397882382812206850052436956636908407034921811781071594883430162340269095514753809365690925040212747625270644082535572849692820624400939000255643807321671538975184675252787598664354258001118103208646309290082404345162562575800617880772639866325192178765361396382117168719969317390417252475510280492300259971684333026753285132837723833226069929676675397385313835682407137198328938700997588998497668152391034066045965123839847146476951375885301985774001030060274683915865396012481859762704496932066995940160008463058613471467441820074351971748763291129343516669193550152417633674721815522578164432740599996368334827242567001195005800985862327993208623273844022622534639224770775819416857392498212618722623667757858997013409069502605759869297567122547118054552103173839734214619622636463030112464043942196381566361832396519287225352133454080827763888248931354892812607321102713720955893637833531278240137269391745500052746291676904925989313860763414923144227743047953436394563576551561565237456026225703738266294839349144546238178947496284973993330734686812333033846068257941695122136519843145076849334490120578652604921845940372584745381651231447351656224567095037274334517052778594386108648870460195376400545067438280010918827753046326005742799123407629118714517810360604544529738472178816976367408675682310260766168681699401670918010647990409017784906356909195315077528427007605829134087742405001595573980931638413791702655447435348542391369510548343992005922912243339406039216283236298279640653607485777906654756277626982383544499079304211075279724725191769909058437061748871065826578377483382575925294444899488838350582498774913824150305119062388106412972706473861862021365803235128500565877340641219449805128537622113385164728588964525249947601053873106544273839474219350494311999839171601518445993195879812240166262010851857301566706072607568174263717681796683511069294263115395144655925566923031384028377985317304960008764347250042004612753440507394472500863386533325710927209547746461041169068050425242800115700504847764488204332687392265320517884163151957055775685531089696120493474769353450673787460149822276499194833461711278426688300973585107945730014564311626646149953984186574062510767890701505233886994362831155218965559341441421130032143436663930822904318794761629520152626943614108809994862235689944920133174014882452448962801559417896534539689885915476803843881607972594869474064387376512005676468295796149521932944545115308323458217641698551669707106690445261246210572474008773087249359918069300181249485231458992976083443742946844718713303012584199153491938017336757271709512049406801317581676856953071503421704200229952540676794233233371466384165480640984034471699731566775515215861030857391050902173789868115021014161914918212074690298205844164769067333505783278578389287969578596336697531888427624246886607312912822726737407874220993046740078310855987984823363753532982226730519826866242163058087872025031795351058244524674287679891898299021740638177976915968795838797142669561701420751901895901791511274170428389306522715772357147329808863930069423744295369747719054794956118410485406133847981822141640325760356027752093282333821292912430874668527956206934745848318980921792265190271879073522249170073731843040821195635739543550159471387036028226632806551060257741542462462968199116996663714639896266048366971175179119158354187705622515692083344738956328256242096229332147065946578785871664791463480603283658598422141991032004293121945343778607807131473392262689092223195814756788336665619143607358873148331512916560060703478287226598360787571393314294955385073822410762023986656057511930266984953301541539874892821403303165428822859822861808436985986984859191578309193953053491551296681506905854013334347020543995458446664687524934032750870890602678464618081149688997890947430789458188304532974822044768607581577337921694722708009311787157614053379136692765727074097314664570968253706706564379001698518816278203093803617960766063966135091703237031840796811292924882682860260606020245595032762238715249365399730439780356075383247946353552279051868900175217005235119827590637639346592658903395021168599151816684889395420234715039718481144733275172523379758951455085143149615127535392440899407428404766002571039554488445479045295462810772008912742305280885286035447148240378282180569498512007653148646640011044734295835078981662836699997132738049395566503896198627547004731430054924105811483122517080325788897107417167703044627883487057927193671336717220433347845073391434559389120960362986223516635166508112475646389073497427802371821571108653022826423057368930151304438115703018059881572367108748057614172812851201342571312554144705656835103024291244916942689934020250619399551953611567975507576622309502696898825576776767191933801994284996763531306392706203332144897419743719041792550655115904239429837823506974919278666989034697045610395642797148756095194214326186212789625126551321435505971793733698479747515673270286636224295796221674725153711972804464057692401369946589366544842280786147166913109435840770767792377572383910637126505006504782318004414459566796614788613892020113640543830649785854535266345626764464777740373959664535763102473579080638334254863958389828136600443433585333962010043472335795637062907045658668370735362839382680162521493136808067775421636524097729289258610789216187757387810122975779624017703850567311202944160547931252848323648045292310645704504542509156797793679489943115236519037181392276566667568613063787976829355357999091783667366825387088715713549786137528941532983449185063616591633625169026099866471859897112583637071867206834957755328151307086798108503588260286242100641644444631628706335088267326167274873968731120555194687099339735504301563334832727694867787036647404169048006806050272893932288651252586816520051107584941765576940421138970784491907334124421470210668853731909561542516542214620638903765702050139254443725767171681745816915781794535926671728798252905552868043193900215716246509245178497226516911758163274308793712821515620539431618526949355852854982666984636206356548250329706865409110138162114962232874567258015859500533635708807230119342674616342891132002526007869811957601275236135852571692538647133768791059471493676697781992618912496091362212313897245095925438465415810648295728575439316710749519604304214780130373696977369685078977508795474882117256877980063690114133785906395806873040377930659325047498721670166887819810147841554906347728092204254779267623723156159841266619788569833627331881817017921215545705214715673395298961065972291577683972545643777759671224335608573988726022957995465687022425631914219297876938957458456946123461472377262496413366536200941581603100467049628385237730637003493917559089887532846939868615020728389156763300314840684197092357539958294484748332700716768418379220045759607353057170891494828428656967519084664809401673000539221649445187987430771946917313838744919904874421802603569133964162887763426141668336712317973912775603673898262833931137147199378863697168949519848714730013842673198214880804792694115151472204742201053703763256762212809092594374137908832999257002020769852760722747358717711459972592553919377310487777772722903790077575813092830704559196234944308914228364729392434513895666766956726300437256271268978506968331795619989445617960360338559572693672502122169023579599706652649834821185535145902562484958945751328204298414265821583650387217052571010808508103760925321702360851933336329858739327736279839804201102590448736265228597631587591805095063347465974135400241627997242899115112339920155615952184061785018903249777633981933019226686341958341496037548173168718463916378320018415723411836836424111253536799506343410294360280819013765251474523092647172517383011131907718010783371662080816579202618548369065420636179691730039004971599773088865889788988061859092951938735934496597151692435329431840131328994700259400992816715067986108902940238420278401430161229762487776773473653629385494761266332880648278172167493350119644155830827042962563887338505882413769380249578908471630813629631696294706110294966700106352237083597423376355255041997954832243786691085123886615335203867747147412861539875147477524325593064114018039759840275553521226909890227471466176124166240463603214474999691204215353691888473593001885213215696525589849218681616142824910487608815452910149495925333552276560627363759475517496311437552080142391054987166790142780979954267869507428479448026220094469916176411415335871636075527841687145409755111462767973586253918465158738849350518352992986917882822245355680604264908068059758970918967521813863222935331360977578319182663148471510530672547256176777731796078858614301430947325690633221620438140592841487257243272733984819109595205304754498472124190825916806465479712405841701194398822929953082980534490303865506285743298126652088823661656506965245683708936467261309416409233505709460961767428537908994790805665501558114998769735780503128554377597566936676764062557778035005550619797953646623913795684957987040542665318785278780337571161607872323484801932144247468995960025938952356258189721860048193805367154951415137497251520705191628180110566591406120358881754024295526111114479213424923686392990880431531556448653533306567220118845918481663712294120523560428822130944593223955307948975436152926878037865094297478674789507798944188154914443454349890685758006442564952302468446029355111985314888754528675168050869857038500541452509003711102314618069879884224774152293490214575712013811735591138650411640002216286539802227193831403340119509193644336526126313958819534248071958735421104419477021137701309713708777027756227964607826664862795456493853781607027088970151349080366831017675274816460569198054831205752558064610113533833298923245807638870934934693022974764398879933117634271192267820105624080207847682327036515300942199002893022855899033249002269929606633817326405473732963414348502062155587048333215902743095565644237256907692899082627321375548918528848293784703659245315354221929025640679609236893153504212872980074594070570630579308060988716891234755024154896334285121013076961087182601291422762464335471874940034676657069797027762694684724339876099390374778143805247032947226742509087860054224277678484166374875888871446768493286334798597361279362956200659387933667821550442138242999193275381290442966019970005065244609698727178476409157577944968437013218423275832607858880419155420949820763278616963837420837241080724297936852783611122329298897282358605619575409870323338834686900702196106043297029642541442287095181826094288271491011651856238252865065645852306263362173081970072860547910593858780566327908657823765856741429657454682279318729997828016555237685775130736943285757271371438631298679717165453121396705264144517304326211317962059384270288035004888915875082106855456508652660912686523782795886655561761678939093553612326782734898987542473306950273006472920074865726212697819508587990185033021343691308857558381849452760792538808353707138596260646122133090894614993843448341844592364204554732040032799093856742579490841049867182888630613846126250472714084325098194475616329046130171023117340563955429971303181686068976326460840991806635527058326170080308201041965328798108798293855948312987134034129845559537930766062621846456693387087575219482115651696398497170707215258964810806533090421868658072709477055110370428917037112966949176990027172792132781353137637045193255350532080270741085575823876687292493168642361531582720718616460315289402951433914258957188437197383669967755796418777381257670096437126203694703470053666750367031561414894401759883180085549798140603345546465019573118516239183584051273342180277274530709696337173130708588007182245873440864301266767576104828009903670504816580830093738460789968730021613426797244863474338881981549772203307400718175967270828401585382427990834778338449717451273793318089272223905216139474268818164211168079854200769120725418280690575641308451797960170821114594614448230493262625602916966817435370901351533884986087386027800348111011932881138721285426460035430298839270278643257819635807470251431867588901966951490832109793388842520590907613519021403369011822539327117522730582337485242737412041891026387856637684322145240825548974984134907215088254099852118389085636192574893291897678397768287950148940490632907873403088016996754447939356849484501655556049789238335722263602064392441728142034698834592308592171682918219555618036144468082109399379180756132279304452777225959672615952364020905237616255866304618276645550919341509122188201976614325848740239714850258717307166506606510284918769620887230940620254187663314686593563952706113924458696055381745853822882537623488967274871466203718208234849329594747765955315312866133119626271856169122111887706391359967106509565529595461012882987162188023798104300448692757029633814680383614213524948808121092706795430074997181488686082057929565438046836331683599467558477560066961785944200088927646494146520370860011346619606065331388030567320030346455520099411605302468560824194907011794295763796449190623414460736426426033889466223206099197288271566423484165572369723479878831764720799065959267028492241218075861224956292184344495433543532747182430275151483380326803386156469245498208891277126526091436157027225862784574105273468248708913484373997360941512099684168229810190523674706149754250927884794243555055871307484876288390186785980820863101769607905306538970870822761482737696941639811377468850175858768381252716209999208448433239436472560167419598639865887180663577830791745561518052545166931677959909138856021966363420602130249262364365185111194934979593135972758377448923957901130890040944445928228366955159238977138406557286544357574493227545903838742672052842219715155894294398723411626144166034414455479950727258378486458130994768211866872351576622135846033079479474244191515291785714663373639811387646553089968658207532905404901086440864698171740438382361614310687553640039972249138350345660929954078476535367485960258410045582003352975927289750760387970939148775743470278593905795363555388288077823122452747093064249041339545842610384980760220545364798385876030232757778052742174747195206280660425168535898529204918820236174991580684339595348116290742745056413321126373954120022049264000397245004581838999876403294208551729916391401143638590617295628281565918532311369631649887726369656909952048967035563801207852359485839402773668849951538092407901364680804796483412912904390277412943754610950046553132820834841071867902953638986522009539726019479491437706087554217375045513237020493150193376644527956008975145233728676274021251607196202097435264430060400538389376973839349619237808868785769357759015442663842565054493457505573366781500810096392938482156197463657689452688195172486573829126268803241062904666709485196044968803405872077578916594067988704637074199621517787281826345588504032722304463302431614118132289674748042690201212806664050612781089110637986964912813378026155799508722414995566761926597826447652708984729657004041681140252961313218121822026225037068166677409222495968569917939314759593675959711895044039033428012861020896553822720328779084537794478757219902859028293346901243069824178781160575684284129238053884117285099152145229234353594921586349101162616322529431570314204661015652830371224813433462652853794766213179474580321536627615182823057324389401395142404196336074065370504005385076596959518036076913392348003545152301866968782781017048227034554916478022942183629243253839221492032394652873866147079640917298415058597866652699548356193352259858063435375980507425356328838736624709766982826933733255698656720823751799841546110837856361183289746915315110203053354524092121267828925231045019000390253455723717632641985297807953733049174229974592209022302438248845222028556131635268827792763796954777130913877459748181279653107091481321847803590241417877317530633348096970179162215860647086857552075824816764684926291434511051796583267265016432751313195031128243890315860648695809537182511808375679177417062053800171254889330497122024324601216428286760127327394527182191528925448973766706723478058951218002304332715381901565328393109718155047514357165321849556367575490911240347942869666692366151623707649113669143120748809798009775268855517493456831619193953546891975659430774773675281278528048005601191433500695990740117487353252444259252864319371285993139166118367409978751417316545091162196502528458060571293111076221102574594980273363437364458915274766509865811407939314299315088815337978209978300338315550460005861865287109273020959758802320464460853170014335688280932022376662313563801145612868742024455383877411453526959674471275588486427514298954289111925776389762025593103168016612963346811026680945888880391311432618321582898820831264003877176470655718398053687709106361145524623514212921808726935489208810554452208478163344786774960857127551279302571913856090253323927537244547366028387531045084666485013691986898841601268803388219293052002331551256247769797782164470307787326290232822348130222917216844564037101596107305684509559272708615123932303321630750697079154733956649765017080348481451203310097698751281577101750992164397486356602616188039980699190868224262863230096415448984109669063763819201854056922827561872658189389788486076474905793889659876669836219098269962540826419571370727473013298969547216184479687452993694542062868004656852410437494009068324490353792731535457585449044451563097972547751851690743498003990449759700302531150262897789606064288296695276686242155141046942271540477315485523479956935761980898119339975860637400700407591998820257758020581152700606896901864699781158559096295704455398615233169049045279935019823353943306889279851073053220720264986159313122242760657301850744039661144882130294538040448499060752118029132146643057812629964085824087518005601836460037061207998368602116652599258362536030526336721154182811736453456659360826479258840411166991913233945821368102305967725125684289706453366679124225412117548362263144280299231900859568455352048021499314280546476481765331739905512215915940003270627465304058651790926823615516964087114357814151043384785165027567190284142512264498175158154885008285063224750860764758758347002191408125633239195929677141035081529558521732854882212975356294430019902100345769435647272930829337296892995399831201403109040800981862878203020343644645151897161235876162083064944515739744561470670133047889681711098553922141863991307579590793849171200124125792954800475264449573216310534479398387587927929911395322609447523864355061951332004326805665476289525038229158357083417640482193532120801144669330534592893162711998283906071205189062544211779231124349562472021874300238093414378159483408628911433999058853939632098858300065672523366329931453232415147862521007693788942574485144650464846385198334144892387239776080176696853195690384084762519510008903032405916660998805536365714499968392852135448831526783182664704254636514533761585626399025176555574542248290292812633854157722416771516790340052244009865458533544838337779867489516239731284219931500308042263921365376811495699547924162781396714542003756298274866235904278216315926904640996133094890070326718215573584610050274080017115191624430140341993682337736651537590068003267061457082502757730391374162523542030352913017014810597831303187136385240217369198947722600716253300407168273773691859225568192930769223549224684154231928396387307695868249254096939217918008031409957860406320582023621143090878732729131231638567252505297534004359472949927474298117084854154279571190382870519980419235562045894338631502791748652069107427413655047716866230140867098478417879760489592790726094259709161588495269890098999766489868155113238433494499508274322255225613979669096800677153792635572129652357286136341031073359343258482649739249846455366332338565630145056593813497172729096993265688750757257486714350207409080085258860181258046754777515457885671399313980048845830685377509751560306926610139620523511884380044178188259952905518902533324220653125977219190119580308373909320559898424051807646086656652111826027524945410195061457988532910975724413940201383402709205514809129160683256235568646063741044141200565410715726529830099406228665991459526531092116311784000423934459746192796900536290856689827316314759816047756055749340595691915537699868189157503990905336902855375922022962603096220362749501148943698981703070487820477522435557803007097542751205222751145956998449120049489619987560664702955938680425464614701603900552391831372675720253862441640546727332539797202690412196169592393811877640766955993339842731699846373726084646724168332901453661593185147904748386982281789042588169109315196468084553661006249851431358139141768104111456063003565191595724703379057560999490825495035751346673032694806522311413509371720174790700822953107036109468941477548296947083220948777597922532720719437604686855200518040184650783257352209911426153874909535808831247874802130440427374715923105217898826998195254758947667062583080769360229025210772759914934345794201062990954905673404943455705917571707745993491498082879240815609520383020178303728353378147790823891837237693083432026641115546233729875969169143082444251599114015712051105939253426731988672111957276738809330877683636416544504407835884177781974903892788027523184887954356024724808841869326462396463754686582037728379854691126706016589865757671178065757378339232049815035292324003813949456431514302313952557523600445833870282944932005387039482880550469863730731813730711433407317713764218571266139740800488789862582974192631921375465332445739760416910257417165335100341327325399379998740620706333198446514106251029451751892231878078426325051349353934988763081945134592091111828655755408706534607092177687245441993405788797995396908918791394342824826341851936738929425834410601177218616381122243905993002460403764734424487470942629498533014993656922689078224257304189260146504463696271833748489588850292007236401591450031907232268852406577815049172973759961943017180968150712489193200025205701580798802301049535055069156215760281209566576953797141957340461055770255071996769435268994378331231710659963172297108539661209361632146038798914000950608978267739538821001978886107393305048562395239487262864315156549721418368442876898091771883742395827952891618232591081985228946405450511377179972065110778732316615246852700705832397246592630132226434255599848605398477466298844391105299501657252794999964436569680797720841871287714866040848000721730647040730766817143034281131581440478157096907276419939065899516841462869906786390906411546382648649309048876554418396767970780472019449592408406124897737315011634859383747726878994204265528421805524929304974441180810252736883474597098066867188745506623681797988135052459198966304248873621515153263772038588129553226759226958382186716391011889009556351164884722663165509137704685774852309597533822243466457144084144990957798336737501720187724997912970293071880678970152924272785257669971432161272898290109977343230380501309129454417494118659375571781345459672591740562530335040112857152336675793509777032651682446218926801486517200530854154747127284426470024132954531306850050544825094812343953845955986439197618141224640750829452178812528613672761996041762165271679942448351679550581013905886015533713138921063271652873636911735541654725475251451088501097446078553161340919494612537475487567075782362477358438742427193463443361052782744949392578326874289917131858976623914187039022537071886621784995676453084808777328662570773721903404547218150980905618534701196702849451802359799378725758223842338017623872550620006965517602070842809555415897259286135903475060176000239348833875323822232725389753187914655062098473764908851509146884232945727908168667133384957976489356745730942448749556363505199212186670958360242653330471758836621217595980377727904371166814573046545833098605413592879241774404241557933150441626822707221675066915909941101155354324265034507207714365227384618058956548967637401753387081834717631421875770762105327377110414013552655319788493830549852620505655813785879444037418620549212114286996115794177849471884678382769440526585839117051979307669370261209037877649807344062882612318060684061484072700739252373016177565377852382614453570885083013536134224780820826741842123942917298567676984290502684904762323225492283420844199026031445955171292108488191697522140958994358601300213868286839809957915184487496837708102247782997525328512778653384594528970758612179245451826413818817558116971966255472814545742222547243850252918076745800373174173113362988027284454641017480557653106746214136563762053757333830782406255495077569477072094986499619630974253906111813424740029957269028996146436187645333915061185331074655158658948407375869772881757281715387748528370507758059295655511244580713318568805798928260366232824074787314310822584720398130690491289095179867628933379377804658712955049493408823462931982506170764367464945223684738515767084675378386808278491395241082998692286127642155258432423873536549370112091494893479468888931484246563338003114704757640952871617866730024168375858184455575073897958817961814199080545853133464812948045068292078891794502992851384064481152198552003195957353021049403115218970569816834130307448087693817855295034874788645768301031550592519869784049365253527357332270761829456896391207495847227154617994872391089072216258943185282068289443770454488840886217513586259971318642440256960530340979252511913479229433983081118016015071347132385217883229147289898119091599421726144632508093184924044623264207798901178901220379286689431838758396025554110421755088479369552784758815633676227314375318655417243753382163130579914614030110205934173634445689169172308873919749620924435974283819141159304840799492040923749951866153988213800495675900429148513535966844748365390320372348939892439993168424441490505495186467721010800397743406019892335862089580463875322775331609384694092529807053357296147118269596656441969686555806481772011642467139089602972866876374835791906680241542194193922279601827190726705595735020623306057661952441750855727100682774363928272687111600100902749679553564109821013014761706193140212587574746022190533221504435251335463647209607431110187677934621079613763806755163262785265873838347348065807837974256423952781005221968876413758410040300242611113113875099695742804002549817324685280769018862487372595430317487440354441007641835252827434913743759532925353015923162030340757887201406209601521829216873923479580826894721104734111814367905291292062002440157242158129777390847946107764218395535308316390934152877935627568845636429691398427782286114215003017040014606596024269580331605954182700772248357359793917740494203999216041537430498083023830038994333007686870017496210307719502280625930507532514210233851683520267954983679233764319559074261630459986551803689685437824371670579184462797610077227484932167070008282011283843431809429029779966199501624611069524167971116692103894687457051390364311992668619485164547453034141317603045366756513917398760722564057411396430855248750951527840130287991541155143215269776603369300592055516092981326990837477954017376280066491594424662866310293252546669114534419292155978246536129088746715160667757665137609943629219652834981777770748574739015221068213513193864271450990598110231810108090379885981420713729003596076237589104895213842825629592248061258851453176093501555240103794455554013260858187468987301244869740200346681887370407773771595378411844913994299681153642364143455384896497414140527496827995691639982412793941075314779662458739101922015610463666006406158529591829913819116721721832755973953836556077723389867143978446937908284700581991584627609413680812073019506620645001236822873354722830176599770085078104244409537340534763557136534189131447632329285302847948871295082487546391144089846443213684919403820027073932185306140345690918338061289841062764829903472551013969452230140808457071504831549997073763035890560755432489200790052076185594462903400568547449400933002315454948397444486450729543277058849543845521746960501605634631855881413886583989512282553966829032761849378055166747959157787718666918359921885760416635627596977165586693362639623593141648793353593871855730493782013364127314737920041914174267406492205957592729946614907561614701924314582362682274459994658804317585520697914319546004468021909732915188582574984481233634229388915743581426373801435685720490714869106980272274088622578175204302018371361391433808897665837770487009680467523188505745806979421489768272977310529751361201881084993585869788213228926408497099122460619286691216859117346864865000636105162736333741406825907894433808483611545443436345750719066359836016212769610434168328361862569770211434415246505356946964437934826544927907740420456794148838480085818254461461909602805446134151272541872597814093047621046978981975250113673586096440685427328285341076736446997678726697129414728968271266647811045344858830473639082801763778794902539253001283712999721083068006055177283944611671291661896250774522615288634207246361831895879658679871728411988081186616121101991935891388645916488349962865901687230300116748129117691907376531383011666060235442439802303649763710182861614901280012155880527147596158224642781828270396549724282261431767368030178457292725807769452449875678552273240934902691745431722222728411321159647093760483299103585711688530650708123796847401595204980230153351587092418671609577074796492455454838062755660386797493559125320513493725735486041942535793296812343477981963884809255450074638222969736451452661927941502958503656201923383536186874263168883987501501132067134221616835912602509579202582845828674818879276777921617632869488241563497416915019598583824969929788178028391605227473340495516663671009067708279530974631997466694487220499091677970147083294060931088977024341061608475529772452521339424900093657752568205269248113352055874158352831558429674913211293566901929017561527410423562242978406070643731765472404947197995230059344004267643914336114875757796147239447616915761327208919151573010146016693006309220536833624619047607995562028047529887590136763451986029084983277038243046706256461965683001797747877110447944276961071013956232473008882852696612906914252029950057102815487958884755034149060011160547909911179471539424838227389732972734445648304500066352114301860486632606368864104930572234641666850949493548168102683930812415795925905290449410206902064959336520101746569868338055162514632860216203908403656970054354690524078726537272693670721171693285893733283124457151424063541575101093114908265145159940616528082713762914564730303505874669071758656365029622602279928687294018805984380496314273057716404919412876740538901603079210590325712801816096481213936709394317312546423506964076136289085735632348329924764923164378044047635192748963772772272608979732296340951400178810239639204457871451727973046015804752135935405388445295289764411395849340885903673828638318165239447585452071890541847140474961919130740545753051367976515217665742458924187830554654067711983634493218236157330311508237900457132446038018779018240758332957415408590242969345719953467764666687666303968691306089132181692758160517152959640523316256173872712284378715392924243711985541982764302055704856671699548020058756943929435278324445723439369974009717145528263299510705459563098916332494296680280086848742672071433577065142781991256243000297482547858506314440235948998178734229976178740181608366999225388046529548834623786227534366947650952562401092503083568252999637976792253491345563643091442947197083680677219253590298460918328959382622776955751053280588079844163789751645013076309370836429084287821455234258867248657964654259983268505662196523619089023246276878136095766208589001851912874878223327444896603915767907766157167860335153879604191477954891387455715444682923764112177291831707852982547739483747987090914894909257336017150585088210469885327176502696255584590376333415201045246045378371633372383669636813389680999172527191702935699694594013852111292797655919180004954421404383563891706792585919708422173859493241064698358456521729086750421848277442214958417253410583685041229508144667934805603045594592040779134440880930758892927959749619453719427724928137393974822731865770768242659441049800088547261678521893910963727736550131011226156387373836815259855948514442548090529960290094703355308195571317017124203944236164166411363018493756998380747797761413323881142564338323287702619000381016589567182040327423722088978691722663004527355556040947011973919935010406176516036370934715667698561827487212047617167364746198865550211711411692427551866169256028139040862229002970773087204377545531440278977849755844234485058023155394725057495475621573901842088313535241043219974718602443696819671685624170813233886434707787978288407869843429120103887572432098502704389997254660621628393522841564370222034916030124320123690685739640913012034250129790957474867533984091833954068776785036958991749761267683578280617398370329929483226815253486471947997538334796487181217535734528558373811154899935954359850803128463361193999521805334986254242880222526557828925371885746838319437174891043488043268918603243454667362108740063688292401895984654840490027058805897908585456990482926069797784474104390007230135276761292128633355948138785554948684988012735714308382165672852918162101734252136175448178699849207601228766625769903849312242904719293130745235285755543537813824388855343687824766661176336341934720642044223848537512174819736434441184780573267116360544904987127785111522693476563382908050301072277050970521515832028966634273462231463373058430545591948721990421834755788655318800474764741420797271428587383406390757266325836337689838013856178457661035417513113912633158764500050202626013091544556420092691485907414803278672731296812469111402531030086768731546418467819685416794923469794977731278290509555535889392597043309690373189677559115471055612720905875844378367044271561000172976680976590856429017697026977619708730577308227529499034852094855404386772549320759433462967476498418539344824476498151734334058491612283741175747838779266990924610997179190256483600908132343772206345597306254702427419360916156722224162799993985576147480068970976388739120082918345248224267860574884290338669094972039248455499063322088467322426788873871976074187391480860244385274128241583601527514205573612112961263523201296771662488526895360079043168142262334681460254429377410628739894676685750782793757801726114745736164025616856175964808471587190921542963260196310799976939316510722340538056016658379768130049630089698062722900893834727766549968904116216895676406060667647283602071377741419074454727100710102963128922391682582104688763741863585263750734785736099566936302388314285308924912924841068360238079929691010020733452739577446929792329382337699527678062184820769357116394878694252446675650641043287188217164901172956704616766144714304884381913779008676130857871974958093065034797689996302455236068007914822135579999927140412676133776562508687469100768889391970303307936769517301480652783493859211829665815925385375907851075321392670536659519347059797987775614089923933451903425850146897043625349650493109616833655968890836630147129117807651836394656089446170954000060608377717533112833322282202370517517770330534065974195181025545417824734130192388670619984219153959905971388563381325237016224317479117204152182579436761614751284656014797601320942756654651675062090622059973846142043827407932170499720916757059694430918315384197112284867405371374423111539031601510522892887104096771962496956428459500400388743967029875629837375857062673181886972335968800422525760635031630725669921266835614762939617363815154290698854222078198205167921761242450430326165626433113899003734485043790565062679154099297572821297565013009430964668278493043523116150892695033467441187920407931852014562112693851563946760225985981641302955249172029282121731770192028401697806188613440596023298176434709790586478890100343169172294122982821898737362149145738731767456695843651853650706626125010096531164755257903451035191254990465834022573604820195951100116680788354582979635506139108563268656455196253910808041428250634487068837557403951101749661449818595262158412244191940969726452511482102618581302955947442775935308586294544364208679966481595985634065366932583823989846095799598112018956566194040004495388389789788068831822255781479797213432674157263574827329173100674809033016834743514309673378587150979429373019854567793141730144078008181100305888199038906104153958703827987295592120235653858959365582723548679408977492563591512824486534449762236195740320421814159783316758640268776557008427479662209594793167671867950358710408807351514684412070403187505336711354157463974428316694352258250630632160892163202360992137854537944900886202771551111509700952344104287409273165983939261395950542208874490911669731951907927632389923294846754816847198885755093215106159468559696579120948788088866952110094486496163142535857190544807345050992018386193819389870378880018388493006592553303900339444521789478812264501319690653340452399296524374559423016227801730581404919189331873374520819508088584064155178445595293012487137804120755128203860843703527567770604322584203684453839064933323079901513205433471580573118426803735627729945392114214533068560903973458200539501466782228909377045749605261611856392578949931600653901445818875817029009319718019133696053696090406107756514549434211580750594806789184345088318177025152750039869649513535681564621452080560493269927593422536007436486036120625599344716405093330749866942098718106890427100186167841769677216700097260192377490705051818346608861824139084520556775302876346605148876587655531643761290518860100410664470197908850590986377170805551613882299045033643309601898388629982579137695664642505345274562617763482389747993342976854925301670780333128230859372169212851211451664659574087365747834565910277726116207758594572560107053478760695794689351530348139935573061728722245667132737622263765997782776453512788219258202292254108889045279503222003003725733159203986711258209816274921230180931359924023238785340452753556134571840902581064292558495993101004432320536877038968077137596120317530370278493997680093883121181291900188988802751420556371212285534885783233966563273922361632997687913016602034519290221760225780763244055650074752877535684161259002722028269524087943939263282593010949817538255730947984804837993322625727428002630903227827987735899315720126033642858833402527365736730203323703922562125145560496127403143724306653743191225377543916785784367231530103093744989918340055333628808317267239077234134590162399640055805182022205106736150667930271389226193329879078530707596020516526892146801087898805934054331411885205174574885301985981684517148174112715285920137490114581205528143049582027863856413899776718468416249546597044858317321337008232998522517647843257672605629124435313088394018633699986562665058424093128957364780817739260813647423947189506693622293600010149153272840827950794779130649291631808834170349396828350649396581729816627493516139448688841887282289477762197713713532925542236616299904195844861639028856836953908568273853882305459417222315609474238023928997609163132238518817108735708073099943860671721474773318850836532905755581707937102528461772824359694985793441718911355430762917833989634811636988193916821442381074810318371950220593336373587023230325343386331990637939635510854323400111462941359300329210164050268931034796157920534467712417015745255355525483422142925297290320448649287425225649120043683772471281438614982189697243085775123712158564191425007483905361635070181934213864415115217970937390245994858175127977698539980683673314090721410723289139690541653004539042711912927990839546764883164389672329060789514453215769771674352763571528917658360424681240422777250026309638319226087436099664710111059372615730008543163050448644496519006735787704835942658530861059538109132987565220983065714758278010852136704126697316762876843896217179998479656667239924509289868621765494566097424960727560297763664906091404887462608569998354077453594821461905994586067818276019860447218071726746015916094483894737693926629684719427060935795670176085270017725557228218331384858721208971628795918154256669254040983282173861960928614308993552257480357981339201322376906969190406402114169912014007765561026601218504458589429358023674281967495099316551321042296298783834915469307415939709775709700656540969402323811298150477104167106611053064183952138297617463482884449460943082056494535849949294731236619354559830310911315626902104211209280254910922135657478158764659667950441357482595434886673093724870952033794823950527698524822735183645215719112315822003974505556188845485129006305271273600559527395978491879475083422206561017580611975165450855034834664226999448139727588083147923410818925485422158219036649841810544653451861590553941615382227967857457582089258418729794705374169874395516601401405440582824815345603325430741199303111169368955431995670187038834797214227998545377068461786784647697758603761123718505877932999896409404047116192015129452038666237132264992492902738313869348207098610501486371737263563626597052746369440746720621312315856439948980209384750637599737656435383749847577781166981548462880865623041788860387405017389314564689103053592183855268732563625157830148349303421033790271640830702068220361256947377774313732368328000793864800194296234043043199538537332448042795750334890321625399230253444767552441557473084270126628453157122472660203382639353312538463087737062523807460667281806456942395400916323051169767244626683396718398156445416045134049562379879879696442524176784245232832542199032249893049465527538092629398203190706564114370765055867598659325288447609300725158824396462958249339797067339774589274804431596891014845653582528994502559996661665299187508559190607974194182333342187261957992986440779680953107912528116093265723687256801279817910853805828474945285253888076472619432617082575825664143056787412489208386736164981058296757209392536877386747848957495525038250351016065621648822880092809358728469040113037020208250217112345519738552330002435773991710001614622801119175066924579017487623172077700829464316621105409047496568802102350848803605126220934963881576369862101876111839871900097741446317083658896417545862410523862545955484088329440071887431258983544303954555234469028274026062172871529110277261264255138891880120697737968550281452614785728626622174658655730797574407306317256132812515236595130039506623340258328061455694758162742125142483198238823371295368739336764338506520591584255869180986409480461514973289517583662696060447601172848989879334637393515463372889454775485372908616058664219407232272684527989813267618065728924525898918680900245182573373532185977042532339257405197508982527779128368630316328207459815266807457091088325029863334502102279725342977874325548712811946331209564557504410094020918775931523947905774395952294268149530649747649874932983214954336147779414071633342082743388120401817525782699619941056549752254175319674550405129465990191613061049398508957360146565710829933367720097511040373799492728797453187931341741370972603447249035257173053876131297360307534419168015939186851319433665543590673684916890209467319710145633816023487805867419095391522301069795106294813033967719232920450485331423613972561699789233186958369784171792145212880548714603011649774560069759363632169440653471400812994398725038450901570566610786392577885614829813728062345438293443966941625179708208327418658762829961347084611161799036017408908566428341870008351022805735293486070619537102321824579848825266647310525083461158815599913337414038470123194441669475442664623443994546909364459310879547461538836011876711975966809698762739734919323509644880566919957716346714648069413201017350180272162745052755220613675069888952423841890555657013537001246986176076092955008467878570838903854927351386628203881750541248722192954575892855067326147626429603893776104779365022271241037146212429328305377155370451611312167476195285557575525786089271148467701804752169216557829735070899966819086276480697472139684525610499227748972780200130418514639052013426234277959369697182032766792902783006246615204716651565748281879924516843145922094033112060543549849495526953837491934214571296163991297618513657358293096522700625794335138027300172930075678354936204791831730350404031075013431310381829523195542024050202963676074411975357740040833451416464035909238489528313391226808465053831442526789463217688063724338293298877250334407446987218117511383186020566282226139116758974129540605258319475450177122375262267091613370795105773409260633564543436424641013523114242926400960504158144931296912794115558897318229205319287676022693633391344841499217980449791627197238889341708788169924355845518182157774154278847895206825106518168898952589368657189844789722355661082346177801375668114000031506445734198927025547511414182661712025043610349308988682233287378253390869078052761108982877097544734323275214583836298666987889332618500498947503285581569456770788368004543416086498871818784878934035974373386056679411835816311191759390352467087782200734705211184882076989192445454186033281554930069297072425355772286461015307446204033981485517191159557545036212882208840716529498581999738225148575459876611327925031194325957472167800673699965510854207291023761434636444452637965863109321338510201534276607101495819880460380152915727112729294648721739072156208456846485396062056023606797791500944369252922764063036252436085306754044025610906695754572094804697833511020847289780974089461152222882040582739660121642698558443260987555198068706623972111987468691881269784932570118000390499744601401331626846595719615984253356773121905442899808545439503991903001690187914290548779322245088186449644104024986303931791405034615763852106163724647000018248785163379438613428772173728864563213651609815804589526794346638629398539422956064252939817518647452003802026821973337760607566950449064035453826205281715139579887411710129856788531806089617538805439385767462746473835491531584101425829745893015715006720909874760099493812706940977289468317726633630444765161548981843116810462927314385614932772684988060850298635697651765727225463583932914727905921933958165027625989635080239886805943450604307349204049343039716522371617286389883024802253520791247616994297069713859190707331903838591807354406307220880881118700355922360970056967919282483621787231760323741469162424986241368581419590232498407781379228423416707391914358763544823245884044154006638182181299080384578160899254545896493044045301566907987279261829991664344596590573564243604348671914274238258334194220511832668828331644649534267952593234283699666693791547681950607318624825620547488025721563325277937150068099307950464695996874147930355265353221924121110270420966918685963064970837289928102382433242088957037039962422275062325722367019195516845505060489109523834742668167036509906403144218374391507980483839595005130419676224661600338045383974592328620145074583644710923019632314677477014052520688562224593763903150877392278914308228901920824106842946268013621486253405602947350808849024692381427156144980117360866525026579157925514398441869392670399601074891208499733610136613513419575400043849681321732393386944061847007187968219300480806565972529149133750419698251547950747640187374519928594194576275956748855496726862063958085348232140013628315137543735111599224252725175600223736018916848327805178235323820529859458908257690898473669196044329845818900230926759395691896577073552411064772128794400327293476249435551304455898532487883934739030216351302322702817366760314583017753477558320954026276232210739452412349968635319453235664013889279163309618133607222250222291841587670322539512652426915184871694960035983524033873551058827580539552358858676264900001500709151428455701692216572533929636563014013563696800950211350426693970174918724208876743169427316245618819819747330520142373669440059168288811497186346184545894545701812122846489778624247930510321390647599330787859397861349276186938607471562665946012776934311832445917775697813209124724169054970318504556790928014702092116919880135577655463424178011235380154283254011245348199681095649567621201164705831297011539388635252503115343630602608137925610630274219557093828920633677776098855379326464835213142181545156189418255438859026161045556482657627166779664700409222079536704044284059204687251507873160061119536591079902336544987564940251708100605468864025015104752523150345853613795504496554791959488161957271506789241397188128213348909375602141437792129927053686199250037882773576990450245696315511600180702265956464616223274218709137269885933083028104610078557785078348486128159558664177011019003738994084580729956578826401289776035639840287708001683436421693948234511360321808098859452425308159806713363234640655460352813214073364636318177757889955644489846858183055983438092610006111065881161409149074298711365187504250885304863236108581175427594057068130278063738898318785477722954004675239408034150001964702157286256906826328421115856202561579587647870394501357398406432777433353996814331473917453596106360928459622727718607572447745999249618597387767162907823233850188730029093053280044395257131076547593144626480566641403184041899881151164012481443417061646064738232061082072559406565117640624594452190270120287637444451243328052752664278232989831540563716605107267168735610358546566016733187054389709057408802213293823342674725493392970562653595983236402483602035517810396790437035840060046476119310610882614862288850788930669570690286091987217646160922683278413648714124839897566968372979959123021739617111492394873457232970474525735716806129328055455234802996105396946115356650195542021242967226842986891807413833593897436999544411883345913466650119346789039623123981013308237224329876940402769971649290591306951106841880853926039033546096770236947473839757799154646409909267321930210503823072235538474246356733977928037005650221697947738229086798867616640645838605160151234625148358029808937485626990983652388993065329100154938771337488484216498121174423675558270185379700240081115149053607236063957666329582992386780876851094893816885732942355686899322733802635959495577827621337000247974446338725273818630490990444946883582760310914528006582349804085262198153471055635546535100499154516867145454640503335993842793684807267338723952921667557737980038057715826554369730364516514692140394215489491591380622334512325765873579742276531918936038748655834681060535446178462756716673407022126636085664540906830011266980618177351586920874158572132687927816192264401080152850386691552650103743470564461659416335851256446061427389068133590639645294768805131087128184269163185091102363178985646061804009253385289104148047024196134551588605878832833233539354455978574195013262442344754186647356713143512845624107396563336981403008398986868670021328762739489071000412002768688755599969341731317010810244710410016160480394742225725090601690900743782995874573142662378188042746279042501035916137128430122580748495732483485842215807031040722645225628294934708774584552884819783065886296842674005706424345903870022589382532594605217220850944860141560737062370506797220098136065403653894509305061671285540441595902957366181153720372083033779877593905033112125657772950030824639448020909270209275251006132008810766043467946378286422781856144069364722458313946401999644171762427019944021448156816506713332317939854725418104710051220362721758457353826162072793595685864246269179268485498266068207254625616005627330723354957097548402187979837114155373327242590795026911057094824143330469352339494055605506206314834839472477432572230928030546573506361926022787756086113937341865500497832122996010139682232743120530379333079413326702111545710731991903781200940474968998540950135129798005460612475476543334209320835971227652481962522071183903137896573717509204864095108289019134644043086278046461095486490989482404587021090533955205222575149110769029487742661789797963906280637161696460299952080757704888503131885668542735777045460336311042776435697570590655900702419764680713088225731505480321373389780288551914275695328226219572035130507068567404206837789103442005848596424400637834639234088184392018692724333035868777340730306482299097203645983209924912587422502196923673171788828928749138420026672332550524214812311095666879140117091266451556476171335397246427611167741256196316455389705386960395153842163368103536515257345521717123078898159487549184871108023970187444875224955458891753695130406784770837989582146405163873827781633144365042997276521986984387057942295062253297086853945980572821143342760288248049311061659353734916621845986410009509462421481850422972228424955719351231304929662512170825211782170760768724911280180196919634306143275592450277469939734645536960523678398120121463240456178405780452600063175187059401241333113709873409326650567559741879689090548358159330892609646436006178553251962902430573449129818892517510324074554410330877053602513982340951555686831512548142450714438238642975212496293060557082723675191996128567193675228974348832651858573262604955176793545551086990497894377638122135750732956804184069965895030165309467793920855484783769401156331395378413668224910667348395889716295600464038685271466865304241515718674247623623535167870672458117589851054304039063275807082149543875405346733675847379769391439318744217896296298144344712637226251564639611971828606662784789367681457689404617384727879696209825325131171564938506820102499133291787486895652572878779631523852023801863875412128661291194860894147347400025485850928656363237992272112138213859464903511995170195091028561051416385794934602469749662595445349400105821773250711318783003195052566802411626090089070686422816546491686653275922289181207441549490924354274543261038055679102712979080676842916064811870674629078167135322613294624012366328180379840599376584681563582644648766925011750558809691627832383033893343568727157174301610889030737853121234946009208032301960748953644695293510506203954082356273462577492359284179961142170282962664943180509230953985899168481444670082031484532997670773854033552498593705809669609602292832910055602120407673276391659532160647150376769532809771361092538173068814940424939075304539162617810522098967668020916440658092622586117655239261021591268878080547340794253287286008462834445253654460899694678310365200702316302066110056532372641197872729672533407482869767142410375972108810409751960689884660296985645635611900260613339234447955980218159626018782150404245347861436060062922482963995656503869837676742498308971531379118365507250045157581008339509200124886449806671844332685866486651685554458849014913184148873289307768646578599663876481523343890107584203790932338746092483085361874505634389473687689380594844461952022400552767702805757612568104357555968244569430582469540745689840250220714462965061492502268103854880436454285312956008848287815069790412778831164504594204526267566165920007339489449381725049853273511718589817231982310894437414222413014413558673514278506752813584908452948487134218313687464020817234222629174599579339307813033335682350907370655632149627805124763917966802059343505968779265874731336788890750098088764845672076307903442267157866886714952940155242992966405800195290483453681718945572269451813787077693689358945326752258294501668999580770270809044211948176643317000364061942941186931317533803492149579900836250168445384549036124425390305634733564974341524775420033275217196526636193130274605314529003404007238940256528666664749294989719129326246155746017761160078748250986451229413453870139630590789648652411586523217740976030327070027656816416960404744555565735379901822212574942746182885696787141604039050878677443481414453039719107895290607000331880351513227672527866878822904566808894097527589904765233682387215677701623081074247483982867669608757503226218638965754025123797553010725754482198446514551658484118017810545214752947391205380031501860204255387946452282800891635911496000934067280711467062162105725140629048265579255304758464862838840075703837642224315950396399300924623189669595875038749399522778279019616705965277755126252435059275697511711825389061672963010477957857116215856830567950515198261138068880745985570253902218206414788489647585645986114170154905500821752534769384199643848729337905392245009801602189873742259008315709426564228549995800472997026831190956199253984629887205318246041427446140929137202092713640766752315734190134523529739558705317663017510113023217551153690939100973612046074833119397980364612353894644233431309043430579507542103847642488283035386978432731136911571493377900758899986639802525522118211088664376835434880805435995745120140236574918784915941063305195378208290630286475456492190936396038796290963512610130747405719101058712986898945320609697828397637666370421431882186213358502540492805364133918995196917756848789766956015430033487723580816021036717089313124131795984103302323444912263127367328828772155923453495871778042773496554871184251488099050042690705966572498635869610254572670998250855858597048147737015100824179214869559128935131470986805924819365476489941500789239999396803145161944540839016506751708880420960673744418308785029010542283405026256388978256507121221907604886958884546939080370957923050166343088604002446885755688728597381357475584860564085339615382386677186991829997247698390299067720888062113503996300655604361299805851019477038219579084359647237388855822611702944508732966325541938917829768849266278668688761497956822707301182276013086608491723867326266216873817851054285831633667909082717418557213406212734523419548902537536893423592865480289937682020102619583965377611684634303891929640499520166167806545724357165448977580736054130734270680317318922118531613598930223117760042382252252695593357542536546127944006833857447733668486254136946236693155003688223414862430768218676344775906543955422975495164000714903713815173166100372162355316814698936015625521512167821803796899737678876069980028606396074950317866026876667891658712755334894258953733135690530413603412097901166359104394186055082493776520236009669624988643514447663318372620409734173050802267573027072675612557029776643706278762871190074997538471480632156720428425007713600340535240703075975156168061586849057873383835894620654310663120418448905775443067510089173589632815824137805682165415993340322317941636974057895834618915113663810794700788319536721845609365073602935250406689053583092832481763459311885182479469423879461731291497880327252121549835793736307600730270532162998370500096006703391724991358557195578424792810924388174236954930095787323768433855137354941450293481486203279838091277131248649652581833017651645849749200483169004324881536297340102999697264985980385011505001098165575467855084421881282087075092150587890502500554210513456983996800532826166757097181301974660969755843607402584981633124190599799235494602824329215277649101074634261763872228066993664362185672784171667053898278172167026609337985556562560424363861382344058162355174598248778445363632440163070125296599064585232995638450128330861864449521814235154273367438550866385421741079389305274661356616618837457357562880287499818687741735251093749186300432033621849626935599344951491924563858396133078419531720524373268470689140364730649868057022920061941774612915541806712588967529862849932904085534469145444455980266835346246119924341284509336314892053095482938902784149271345330431305310314848821260730937304243814119820510360233558609315898219636381831532223503279069818458101373673857964559389511411595566108830602217224830377769637733652515876454909174792942058620590600390383717776954389398634426446665089287196817786024238334538615320096857835193301606367636769724147698597170808543521686836960698437597253410050802263219409164507606171865565065180364866574194531859470562946840021503238068365277712517169138863840786656169738351722506321763417015639890175055155048119637750810967095926655249043810169173234490431935921651252881776176809670636299169577292525333563862161918324640536704828462971778815230847120864830940196942557848520987677103971398399687803082123380908702858976038947878336166167001173231755378497544378958644803197710540153242539421207876774432658244077646384702512204684011850477153897051097380006410337109709470256221024706493576567350195698723605468049117042420352252856815561034657532421978208846296572603937146997142990968694317801300867800551657114871856833380332329102534668083466208319482385147900824387718423075286613446259940522064025628254241474925830198529410717311172572661070272767697559826214476059771013179677439769563764912494871778370694933604323659568369637814662010802951271437177464713295758371162642748385207725357685927611122469390542441912805337334101409873242250685650618007682125730172197358792644971908956615215693070695482505369008116875716934714667471931230658409193988456734667693631368263614119592714529243660775629936516097638083157758533986479953246677347456616127324822743257318290346586702145597472980628389418386066160947622314345319008119552917719535100424951012181860211715355166052554289078421966731096905078843621543475594381482163418547395084526834186979812686502210744708151132518779443137148843188677214239090328777671626094644010465101400843312613752481086752224978124777693388722778399212047648555190396605819316076058572851674341489910008833242725571187678981527760947461024239139516221891970449123057516353818054722473402422187081850937030363306780003345482998622071325315436026278727488333206015007665350355508219346690416359604656943536908690082080947494009066953230582651359659885252117849902703833745435790628953300192218632103741641818808425203935348981580422452425780394191089168009122071629223267786290800945506555629687927312856115705393108598158158286522383766441649682829179630717791632162341371939664050054642899230966144624693478679383841358665255487569279701247956868204835369967031208527224174609780637697703328861175781246310411577776547986028403110215514203108561689699665949485259088726500802051708096371609619108034110839748916382928875657224038661245285961648141891564687598246336972950192788899338548553423486519381229948340898022080247765290028957785724083000009094075312481579301278256628245886863151989931647773266813417686151442523458937176081225453503260657030440454455787960069122431476184690126464252021211279168096587528063266782977344679868277539038030793379546468711581978051794957990865840148615191788263725979695843345362101298754338543667030413169550095689468885940682064435755861962092940424023109907253604150330617193227478941996587903054241485308661543371265845208019993908904740269867660455330618836925518322232983615078215333203971841242289104315436370380617760648101948074425482599263941439067075726443744241523176386236112200557244929781142518737998100330744330732417666229613603626570113426085888657110191527335655361811024529888480359866506557915230186058782206510893493376019664646221351085354535515855458575192667036603417081889312551441483803140783969311842258592111935631336065211337728794837396181917400676147560588316283840916934429229285294801978199004459933094002085043749621902430331317574007203984910064279644781675623249162642448868876430067621523533536565035442903479520266830163712114703040632329465990253577580291247932135249657457504275622035443094156468841697497298641720350452601738648131276270024917526560786270398952192451328677795369908941856498464206799914355828317758338396152365119597195941439479508965204720809632878059108474670340212846101194891220406440235010177356823058775638974581047620957813731397197721061010199278606141490102289037572549677549791811992674491854997858968470174068595616316464820557157612640136227564799337643714919225263351981092746222992238457744491131353547045062003024599092529884412543883797928137183548545985827520050229214208445181401157073669574093494824831290134950656320992455894010631952348469092455723391479588456039912456365231114653664948396073791539624270860099264873533275545381765158266492093233219631679051930021812817169003368323657366620220425074902517588801801531059518821240209807468897832941111284894268321444454869954079605737194093246639421457841054811549149675126691350004594048490147159318198162484999913600855186795244750957718538687086673298555706415830367729732406800910777981329710262461457791823484355813663791756649331012153451821876625337313199712716272321481635039809960125345885409420497877332834239957294198580236706456096551896079399131880401700365493600550638087932705057016790672886115358505954574883318550942116486066134890965729983269396773986845467554722200114259900555125849532124085593736412779082347482863463796178476278155183849162787517447126114366377870311197269506231638987581142417261904744991439580864121553793489989736222582382527975384870936869140248816277864771947273302841696788728191425570000648951120816312400023283834154973271093507804523539231170993086181583246316045246008971061195639311046643838568799374334569679914179924100486446811894023616045585040985754888363899664203254067266092699401820091569475887394388453070230076336931829563684749632643911524758789415248119221538339331458475938408468289010727031713304360158524383679075403806491011638586338409948122669920900614741141345956096646896929932679939408037688128148420330775685654167884734250865505071548410316341584664388933825384807398046936339081336459583595361531715284972660796778097486756149798323109265484291038189468629735238091222722340368230132058511798273617537369323574665530349237818152690303130758936648214230817692853047243077863032359691950574419874695724667388438121698449861570970952793575869003860936057906650489166311953946044436620777429789803121011260780669274405513896990079393522574281760277578283781466227258414584024145221772452494041859714312789213582791426457991528589782836332958243776035729456152882726101455213853073985972396027600646731939915753603541622022383636326559310248928414662643064258949106465269914945977834417701436498382578958649722636801762927856151764832807541395427424182929755556875628596277421420623243776705810478881958969944653047096230963606170949922790858337473081552797505055506623172260644121302986808206924366204981284146936596574762893152628457568639910705656578370977768520138882564277619663136636918731635401364852770769677678255088115224057134642381088056015385490205114809057237345944359142875553398906370575547411675393011020499380688543115180130501171262407095675710919649276662315732033553766719310250638355528793510842435691551215265179192928609085806320054162213993407279793006156224440030298664340213067122961116163598849175416331731923642705614212667973026657799633967203142335529756465832965335389250235430044372582864625566445829043771540264573706460793966737920320389208888143666334539745146372054575922514385954404121628839610606993435881750075050787785502521758712759622889473642144718960931746669946506917394624250980386680837314862202604720392058389579246902269001655748205024824088197983627744723260150277068860491122986798822099404520313207293108346729428221127878173297005568739696509230629089673959703241591483370020307651541092364346844988866186662102892618482785277307727747929307010015429556363278992987917365841718867677028815337801310495176864923509730844120693861881376626006359394056801549587453595447437223401042694476484574458463845517240870265202272722837566012890006462268012270036294150989485081112256169077593177016181900962223327600421407349281477464918568903983733193835018832107166418981174587807988914610669615817269825771573392324242368437872917540982340769556432100361686161144385584107748160688896512799676705696601481321460970113374777814965455711542621546495785741212770496360570852705503099835440838217222829961265673446591313332761668256328424393258453558267259997828076893865017073792270396070008540909947320769315464759326444885174347442127149519608512944574918621183925188400566372048081223026055025105814582936726697724707915115851438964932924410903142458776449238392925925355137723312981600944666234771893888237988219659269121478039753965127992879742006292964804164130663968232781036401765031580588808593983934057895422656646893862535563331233659570851583521967264083282078891335542873000442920887532278305204508198127063278740689817449383824117891199316207895922265558085519641474424850039380689104048434468066915237659171004466376422258012133725703719688077356832397907134230323046361383832429598374785191125602986448190037793860509141713303666351876845626607522320767875028131145934350188882500247551316358085595829142427630818728390169388487942317082092753534221878328277511322948566214674627569484761173069402921980935094329889916149785284247766861743217327206426598524286307080842367810322094578257849629588766370190490164874259414569707904631474746489188851244936803146013588566749156932746369310260123569389853960651614568839591831863281132720403748793641626407411427311457305529556030589781442369519139986288150919695724999171436042623125332702923262911609128250814872492534688262857454528091916645687122298470964735524100865434401342206830854295631284480080596488120859399513988716240590338464986824307586249760172108426635075330806231367140127523410960722092225818248470737746412533939047613642355287059667626711899089078919357375351843685925941694169094989226384498702025349699940995280875231687176978683201777291378733787316784805221180619306497522716256433548264219647990448046600890293807473771262624106712644595840255789297824354834703818381483246411232180820661041191681568043071879698706168565370499908327966501088834255792493236757775716247183916310844602987181228952341335549400215018469371505389139459301682779495749923265123432139281460299982559935552454927420392824059515520067931739538995270672278935720347474186783795653445991176413499114220566113103957339687600571014046932484986191978406621175803060772621967759335918988983171126934719203101423822186700627909348049853273566935722567102500661019168942960403076685612734761209027696152490764572347788411973043414233853544509289692740696446679732927889321959903731279241370348000682232262769238474697809199666826124113641791060864641950811397367625009876804650744184765557134684262125884615996774915323711271883723607898963571059586613990394681094118367774051545673004836013755606371242615998143337984938860859679342868229589245495125303788971181351132662862487501053479026467247493284762082248492133199544148628221561177477927318492815767727237265478237925794254625056405033972322402850254273316469996767269834693134639241999351821495112848942601063843459492742529154259666755672633931699518497205257671553233126152146257353962436595164206152610946911582814009995228632284479846927398094022616837477278672564800450139403517467000151446571050498372234184988126623668200499671979172620970216791735908144823914798164722097641174439004579396928599478587667638957811300022551867245585467540091487642172715387894492263396068295825849175306406864449514058171610437492538432918441254998659825209529175500622518284695405166222933224588226316522280308906718035740762826865439663188998466026363388479610698707906341301467802365020191716473324248671302835588377962373819881156086304438212585777455866341048911237246315650484031218580582647756514985730758979019722139293678536871652839563132834729708516407760149339598200009496400517847181861006523121141161260406294423494070065615054460937739520482010891519614357944466108940770860531766882074451391626204676738477931798750972839736728078117738903009623173225695372079687211204814072789817348089752692822769705762978326005635859280217057816552267733545079444495448828879241354817916058715528588891608856411946089564360110540047309918740623712159578294809399252860689445639099565187350119812099508004396197243736333476075949666688256594004883213165116877455001548710536992934215750023294672176241959298831943651636484383728379758238676391773007536412626917881526307220353229706571199584715154110590991216065655317405394345527837913681176183820562684075386284365425421052157783045135038961056048433863688355105619016497697920224476357783151102404101825679533346859315008565278831658771830832615904378037406359016530837269623815542201929394453941835225178163466232373496694905596479538902020631932521005246412851092306375375452078649082616299311024362762855081194003059267927743690846696450278476133577653526618282787301290200041045774926898677705089330511001325475827557624303569720324678672150450400405942721097355756649504277896200170224748104636074076403542352335571575988059355358269460976127409032238540320307327683556647248003978880476413284290534954224867854047493101358808344154011789598741397191266614747135389532984800623574884976015265623528874056486484304875238739834664706433866759308172859047240855673263193812181256175135041634608356639788618836975892201475449068819231158107622468626285484128581417509860323883827332315976881531373010092339717064524498258792777328594824495110035168345735575740796638938981301409068048042444689568205673567391116643298404722766341340105481793399728745342178167546991837572151392867397407328035164860667707408091121130718599723387350567763838712054100510565615816177047461631495136801712339600684831387936511674949916799834023848988854613309771581286871389712873115655854677448178498015573116062581327192414386919233080894723803663792765943863961919221563256999638497708051576472910795194390845305744696803266993913698100334013924470748073279655860069274417284861070500770687771707643705330321725867576286823563251694322495390186875688262120704928765167822172826239113100785573875349703388063767088283405220175661013076640146311357158438696225420472165401745814594557785921300911822676001304619682677121964826848177057088869545166579624151265907589534301544735625688391852173073480855234498851850085720644170339940017388054281456132184943786332411375747985761479182286847046689853164533089768175616661605197215125093674923529024188436045559771522768024110365858580626259932970852230563393364767516008700184495471997454695575345543107663460318414676624014622061392574914987366039317960827531675619734294156453790436164356184796674484099438430835190627247573580950568356902779128258615140262714512228834104548861173004965242834382420051399286903525552815527203655655032814854798212621034775388678829567741631929619083092087417120603885272256458191389086084283646339553873403555628362612672582046850550011956759662023008457337722611032271623483631758002621163579698043944998344215910696720755578092605260045755625933835506398856346082403728482070372870188274311221756766233275631039757960917046526816700737173982478581960731542826519111931170873228935530166802155947221532183939322689608972548859476878798427871977168147620082114080489479925921671152137458199286056025937368839730352829555369185596928743176634447549922039926255873362022234940656077909294683414024988380134285897284645468848127700103296563284935320807244471786858808653509966403862649660045927831397750808255727845895084228286574493531100338403845256976729749067843271969219257707112158922648330786184745046433028500447315629535050072962262506520766653425729152255407858254720884830465276789283689032566855592772154071611006122257285551322979417291914454742380858950773798438538180495898051922219146063804508319688336666768469362651201352174553689890782555084550765490374208452439866014404901133549244331344877552107276159251449809556424593920468116826449569181272129228043017033915672220933098701228326389881178682895600264528065098445245907937120653598933475963099115564405593842385718996572559887508603908613713172027696444222868700406860565527219710557950210640878572736965085674152063817711725662384448574693023878654817723295789304367753663615972116864914211300084895623478110345310730702979096420457650340695726448370106778582895517706282602979208634015315831652694329948032691608213858017534131168787262237716990785104428007385828542279867227662627843037056832995543225837069364187801036471152485122023147391322523741514406382256525978361049362985684774180337146074264377864191208274668747054337742493244649775272299538322976697697775529947819029986767371814148348441787473631304002571008168834195190932786646547284569931443274883626963792582388101825012177348739895094797365056311356078051448343270937633108455723737997374612110514204700407685574797994767386672712528980576708905473252616871929178972307395985139839029550153591517674160251121473911544004884114186354581298662777192944054535666418047802868070790397884836374421065218264610484881288700573776657778520429850874865616356263747266516048072813568572612228449148692723898720559597005455215672513058492913062951375583183133471649066062414268736424077068184741634944461064913452220524556686910291822538889318096378604406817799149996142111060266872751361033785450543376355920789008139493912524560582832892033005849623579878476156710636579672285887325456792451612707270604934510978989355105307373076425440837567764710493465700310182233265667656834316736269112953865465345664937469608500990290074976772907530701422156549045825965790591096154123865536215850026813270292895570237062831374074205564914968402630673922275408189005874023603514597824773354464851077260925402053362740880318616701225122358527903202211141647970305042692126707229531285579428106775507400975928564681862491532069986542307216120266209837901974800650313116780191469774448731454240768941576911390031403645819417173759729486110704663587807438500203475437873178144544958988442390446449851801498273458507228671202067341733625885293992112453290056819061871763679414218977925707108427811905984434349342488754376056472768281049573464915072457948364081668006886895671921285072642015214330798202862469847563149734202367035576124800761349255873626563761566865391548524045156280973685397441724842641751158565227491393142776763325131128449434139514176343869985349493071878597211414495286932468548781201847090361481245538300305336772285282815069071434037683975980869539270897789848909814573340140124808691854627665393937774863695203774058989157049766472214527786594002775865127762699102890762753562028099014176471852843650541546333046609908421257127821435329454424286319693063526724882002222454074670169396220551905285677719677470750756157146867882863020845193945715109878591270756628981681010332956594458759195356367166676045141146833484020765958480806787941163400878514897154270436333818519587998854464077788933697150668014589730108838779002462653652989266500786051376031941259960499299951695081921396970629618822500241890161559358286159436216365934027549751698006695141720764202241703195918433537676226117753819564831885711914281440959634502672283377797343902125947132461334034330511560177044468162197021019863159079924355573965310262710449466108923290920614227476768374023651588560480934114419904283744027282245311200046309192688092451191304372078710853702639633723472557028455821453192608154187816308104288737159488770866001730169653419344641345731270484953613885782790750399141861589963365296452855902697362699874549857545836811091113600431827864531554911307506235496622678545290889130001864374222461159111269241540260826759070430839999631584236868597445638269258055732177308134537832630373030666851068864710717112198767206930086233956620496195053854847569003008023701710722886644090195440411062701855465402261122882911006322594545117346917863417672041957774622535342795022870724467218587197950188083422663898697823145934993323389967956341708385872805353317304990815893402911771963883624050223890040790814125555637733023769616031878072511417007588338936819226095986593396188929717987999455924145875053738747463833031700286096206313120902895983836435951549444667233648176057595518134460203310910980501229279956508515680313392759257030950854844500116112811227715241965283648587284578224587910992615586519135216737067922482946951082022296857942509846386753650863658678876015190944706707757488656168785041167841613078474235136309232589966003253197949146176451303586498934591059352338945181722698790088961693365905152463300562278008993816352579919763215364195585432553637585240383497074786480440123780396106404488723355557955701953606181022484386591787949049318056696230948993772189127983620045313102627710339945433255107007626838165639760902108952637364635131596442857225987379385599243854967975987321386046648465539862036798346823565696025280909789148280947053377065377246647214664152062178022275175701939559533328689836627282219716334555304790048568788374688270410353265566644094602305618796281670560041506266157151581350777882629623528665436293350912515106611259928640416507827712142267655080598886870658068719179380237607568533626076688991699033215369901327519065978232607466643238321617193863929171021522964765007357876516741061799002472163664894312170047820797389289292319399731053192038822541412074163326209009121385926523573108829915276961321934698909511549686989761988262296413353450075078456255228245859997336065695590289322130399717243863924602577315171827949293068585669771513020123821513921256515240142965661215481747881740380308152529269128826909397667763176429105636105236553300207591862120255673137825171162040264075578207059093347355617152628565572182576384591612969339187348695120065107425682534900802563935731640073448826419876016518184012398375171132054425671560977007402074667528076558424970507280137181984842584542054977582660998570423869958826463962909846995175454029396156580843161467274285823120110919113206272854440531365613700077857148660735015245387718952875996517172895083640339780439905020741019327755195983673518827632942578573255658629317919645489429246415923549869827768203873312364160608782306046509184695790459253750909994902921985066558528968984161817363677232929828079479289581200302877903797714293506091587433641923118015276448767940546748968997391861817264710870861886988405282950715961891286850883894049410212205743538333818028769615129545005959784175589280755478885366683507078211383233268839534784837257854395470567000661820426986900391544870544837856139022428033055780212946981755352252037015383584919339081720001471237045070791334678223464588844153888846406310864062755329076434694398643728416530288679545580012105495616835592002563150337942785548818939890406844826580497421185159156377646762007096600291270234497105545234578827678915099536266282595197441218162017832576916737230279232632813696595352805896394588224655518590299758109757114172413142454002639295330344002246730488583888490022222422136420705337349174389394684279569067132802860101868165994397053133712060592714804719105045487528206603210609466961413669839062695939896322820222767264432461330608108587547066382748110542390784307935874177521142160725856746736334759888920941190092144205247076308563564665701681116328916952970433868161536887546413676271374875692046786536902724394249037672635236661028711810960126646102655080225443480707596460340459098152838630690348842636609583534887857016247940040666674399207161572315273301064585230866184703892656256002063356445758039654135204155356695015948244086510829544302581777283068771672712616852850921708207447020408346719973638344645885331307790048771454753954098247838088279893738186705488313418370674203829094966675380909187722125728136782003265241414424684528103330920028339439742048074513924001773056706002162417301849374488924282019664600402589671719607869970279220102828475015464738066491876636207870097155400319520506360384236259385807208481784578937359857493416463921548548923403492242173227744236790227325477567484041668576367642336396530142582827609646868647990158110603484009769800145604594003440847887094032288776739120763390592529723271700761738362250340445278368414889314501145817911593821434647003913710921289644599843885888407115930010235445784508773433837250505900789427070173006562994535339567336708833818021930186616423589209572396958989345105332642829421310948074850747611140130531377919653548658158301153868283341867894223959963430202085790367737442971456003115294687074395097839422939615874754659227470176056952036820861561767784157074618731213436470438001871700908345030913797359967016372880612821737844130495020064269267971430553565213710605734927911676653847737920887539208742873326584832747516034745137627930200514444947737727849210340006145147597480899410398444970839110232311590823231284503411578785793674920027956881359118160145293655367909210301772583453160176822384396075572898438470304473738356868132024843471575099146686286903865714491460181498647880586246000037146294806558880116445355949108096990789232898533353432924542830060677444491935499971618921279327649628743376542536465339573720132266314843890386470411184722363297263793568421046657794298608281613563966876082292224778246100212222646054930674672960121060963120892917620293602042504047764631479678696357184576443987831560258730978842385057073207963798553218895846318922434111259307297519130433580927268374277371660588423373380770870937569739541717351698920672782658468108364205975505457431903142181838739424178805228130287000954024544571728211161884715210138272007902906883807130590252710338501235506559063390175171708070906985112049639124911757407417462936944432322459763309111692936951785370291155855852508780262555583559071574300266725043661598665815360647594908204197716106078633419084007378257194644267161820178073710244571574138781025911828412733539883320104137479163754582885765158534547026121962987837047767822223256311651891322588053312662575051337855840224054331517535485740221945409417405576065134213079259600652360995210121265322960703270066340334027956710040271528779150563951029929561997984894981244188073389233631184234504989776022728254795572876414372342055247114768077853782063542374196991055870861175353614170229410982943488006154718284480062882740203080521889453658692354748895969281645104268745417733013307777586705861781341802084512446580045067237652302834938594620272103734490037214824375987166529910274017867567945484730312290229064868135726735987879906474287470323035799141116522176216713994053286214543696052035379738398593179555409428982778243296957385282251821412914761566156591725261794102587062491278283646610205324393724737869930098386497499376316885012307713817950974032511612844955519401746180400518831377492521704236908604965655806250263980996058071553448378590614967970787418041860728377132750364149911861252898157089565937518234153827562886925319757728196958687609797585238148266615025569700053141942014543115179978317061848352079795045040645163986606523145778936854949288344688229767680169706227817753677490031289556109459237134563758852034448785615972347254129378499782239755054925342071983392679109130962149859645974086486866407970769923387558099438192308705412917553652517116717761921809201796471442764334922425105111601146503768449069052264077152285596169005295059759086190925701171042160436637359951147323526616826324374586393106312255031498923580555037196132258709914734940129310031476790245323210044296012124630462157310347815002003188086260795515192040057827138213683466286746931531793338822140759670902055177541892957262654153188652749911729968144336212958028044907981867693363867771004674053361329012159294450848099669270064239418183730663148232912283636620077260383369350985822600200522279081664585225961618830177131483999258253569850699442989344166821561523421546179080606078332587034372371579696074720929918438257110363081029062480399467661876704090275954121948826111031231093984863444157590997516699832779166932458815204474230851780714161439235387574401888617986270298303019859071814514862185966952076852587283499586079518527524228257802756797808196040911475449738345003096831155169587777670195770067585646474657537355123273734775971797763529898805126887679022042168870693063238370123314942842297036968485926290888230259478646962223922690523448511306851047050260091806161599285662157670524327610350787000867202700398625057487555148444437831105364080886734937723752316580651383907967757294249900629996903640798724595439047376368016468094207461939443221520921019678305169459627760814071743406691205487848021170635264590757985544826751834949772658181870907943752400285235691222458043599543946022332463679606810869265325966218964940849368637089380067829862736911401472411053477806520987817504295827191439137714751091787914418471887087950066056835594715890639774430307147617990224478772920215691042959505006139772321777534504680377153832916588718191029485557842412072018724761016466138381183589663415469042581116048174016012522945454592589607669624950077559567110711698224880469153979069217900198560392745018149781752960686520151158679660480020433033501772205376676637558546587346805326353301216953295095853662225871907123610658419432957788473650876073080453715678548443453319799267689466744611035715378579691205627015271748779522216363266530199092888150898529111594741103507538890739001408104116570247055268847105458364739319574424318702197355228063042514466527947321089331992393775148730335586706775151478335557304753624358975727491168308055965147657046591321596442637959406915972304230070788867751333098815860620089497224113570673654853144865425059795362158957056734992955944545626662457270659242068911132631056080240626175967612418897008646756744144048067332015553939583404235722195963428582649519320454314980779819184314074899201916858367067790757803886572656994311766999894115630891493441280904817729735622041265183070172068346319356265915481094536881829310988192685464682300690822988093968057209272601482185444265053324067591399198605364074917651543929371056753232827117452043959510859624305065594312228236254027769097214167564812568709129314888240953837342949535602106604694972024178785262097841468918766666623949165705812050130955606959049011503036373088152664990026671713591933747301334450748000318458589578084867722775343720879602681358845048093814888362530674729299599163217200455939688348099611710329917114640223406653153805842117635632933114939591113279402611424653037358586499622889929211003157545356057579914752854168702847351874017182782874083043417455716350287528366557465805679838378608035740327944831006428883985351075812517123635203918971295880438809418711837890460936940213366674051207797681185726532116781881926439745127516541202609676697642061835532891625066439913764041422167935382723151204761234703546289341409885836076268682361381256815585566955596860629937325872307557084648368940190562872648319256412843738706831107964059211772664276077933606858335543608350046736623057725867428153965476259225957179005312018843245067032233330368959817479005492290179926241733192496036298306680859113108084823164456897718503003678480456098917376836496978017183504718622868108847389279009071862591551534336006872868164255878577494458313542219104581904957062120254294421158487355408363407851438253037021243218170893184265110069754840602430420396712534674574658818503366280957126910069989515250706174782060811607880390731422660712228999305943728830449852336089732628522387376401826839166504860020187752773957276576952575243195008188518701503384596450731960469362204268910741872784744636154167894431551429229030097996404320116733376347643366035716241832575577119081353768961605274324652797817473657428950095782804938463359423124772370364437272888465523166488301009393405018319689088588422232552647341015794809826951343385127680957622086799999526897314446025440788497103473475408803169354523575209725893434017670202984423489900674509605885492589081750669895529133714997613335473481004326295922813877207477110492060381483769120136460168086655388728248318224452935620431363047669690126144136418148470057390785969824370939753685285157353203639183698311922320251051526725535718248251338506320568980399729608452851157730574354287900610203970454740600019752220539774800596604268759586640701354001241540858872256069955785985328872163803418885269605113494996026533856971904181413722351979821779607280378933832715370510313704229750998287572300937784714612826677296456334649211144836770343865347602222353459167301686188528238034264847002930628442474301759648609507237290374270522059759032508155015359756124670105623589787761632388217231282749467245722923891704074480711385782834272510391377669299576626762060561242849935582328759097495500606014502827990210976575503678913934176557200246665872174226276953337688915107872952372146895257754432821234251859966025047143286339173388939638484354269901320859974912865101197712236560837209938174997336307464006812714085340047140270651822558015787357999810643394151465396878708405415243313036498034919331460828576643323114141883734263377901743718590182884899232052803295402454631037751013066971021532526717581318788555789794010136311556661364150388156815564156873158334457059947848748165788544699338657346721329823476563530959037827613224847375711692326452030785725093567670913849776875977330235741297398067682505588115795622211531700502456943735288576022703900024620959801078380919617687818608652008599678819332378787667097974667607107453729530628081930062745021574591849123149697557391669625346014540550923273338474869334470436191931155213874571237492173451295565544293452537818078882091615220390388740981456191593003788085571898933560191908389886010169855872097778612237606193252218357348286943651833889612427035001872081303847699357377740781429952638978156151816076582373237878781096259711275289459140113112808020877257772030595495610207599778281318455195457198005240139064804095066944665538711775435662766572085723406148876321249305308541298216214623106374347726685506560616460707724360010644578236300710012136261374457238501325583733310150125046644856183995579836309899596619788358885018661286349239098184124738748931787714428043294895819071631545436431446303459258937731662610982839429056203974514164700968644434011868219127664679916968173314806239749772463472289444750168833325333615460929796952831651880865958527610334465703873157811529370332342936053433422604502979862316003853664725176665972129627980156498892978353860791198471074769762953115621440643760067020185915938255214361835543497074945291293766220857334029972190409897399165364914995768707967585279643291103968447836378371788543319497670110096141190860914368477434792500079277869703091392266068220402062336630994786779690704054483103150181437395814995856114924184143088909967327249484429241914777872019899477974856525345242806580390930830433093836938740124196832766719668587884476125067311262821760618880844702773711286715686373169257399957094564900344867926838909652288600384107761294529166359613701021198502571663681321567318128861358756863164244795099846545373849221051502289580958944763447109870321042683008206991555627930676234878507890094284335394518116634843509936081738197121925379818709008156927248444141866337503042940093166931791760414129617570189788002477184844339486196671776637402076001691053723062461724027550430379246564716756517700910334933822102920079160664306737071265075217326529829071416957566283393772264843547851748872053910760015397905311794606016492869603765974180930667965106246864883458431562289995288772578040529874478222263132115785114965410346452892642110047908695860755617935512217570263634032538888861209521434068893074703069187497335635982362041450143989157409533670926312466297640514066056790900592849142826604273941918989402005189215805484928470404937494531354786445401965526197839833959809111045928501919751320166976780412212271632431428275503597282797066132638405941994042006839080630913611017255164188437261978595323177852730425911154310268592784173943924480681792570623661526385685504202543460622978953570352537817557905849822820378077865459571641975445011231618785517463704985592063011174024290777973989798859356466532024575509298505818324221633402859016798134542179772067762128098962304958272452676670650469028963072540659556034155214252050571684828018465797162156233355070073986534835635555958304467468763019906694413900411194306034464576147481565700411615874649665404852597387395906394388438503558765189948524226970440301237588240992385101492455842088470025052515592738452671748430990487014693676705136445436793677256637999611222273486129481024910756701959999318189348711946515215208429054367663423772135080326379127255353678856014134267575168160527172246844294677078748207694525418140401972549703560820134173413466954148883617172411310918684034557742841746238067222681868776967473072728874021966910659584835187039313194750184247186369247981711764125455310956830873827681455938043094273889284431122290438752688942672637513684365648514135263903415939144998914580287771482105614997619369226462329460882793978357332196409187068638887413704293130646908763095142095774220785055075312740839581504799673899029381563855283318912959885236863827894894820964479801801128667405517152737376361388124587394584544140874222787792781461318574661549818187929514350189085884517992713862304123227715237438030466315541764175096971816310565679219737210785928471370796612758543564663346733185528262893304524368502749630014315497033332411004513085095097235044093201852645785968625662813035614142541258895892155146137329194971096474459429281312434116665585861973008886925517843436914659731631872013253297036344461732341175087142311471305030775811945856285326505381402762763036900055823266759388031032870605605034885358300194131446098162899582092458997222617290897678159805426633211568807865540698553534789927976217607291900673690064571203102524931687373526847363926347260385658022120545107802154875380745064807086759386715500637443581661777235877824920511983490319261268253535464714656011211916877070779744593431915987113001812645109806764457569222628780697175469973718759993155815656238760880154111710452811794340925201920826178862944140636498210580067996655007511937914491973917722242078970819223126937366211388791393774448784621996420414207109849612977159531304665489495902129637435615893238816802908349001935630641465873203560953675178367462455611752669511281635268272917181002725318395232762585846514480787204572861272309274386657204644876304683271342274233788231481790194692861226706820799735213070583833402454159903170401728560500430040595594669529253144228087657771212633424619646408087651724680626220187758846275133904462186901947913840849678886860258768834975242497685257875235989562328289840043620111599171523225031466294966400922526471487566758074122098215147597662461168520691654200197650630952756121143807277360839933377934646403148784481566053811223093861372315352135199358203678717210533535322920328899376602881151878390356928207085779836365359113741753714943886477869741697185827131079353708814798710292681672392587802832004718792199472066608884714936968430200617780145175668348693206278450484558798679415226038944591058150865476806276500336063749125866990353762621870545855708327144470273949955496613153010383556950028613046606169536289771315593461550617738335859148753460946508697965417397770289070087608514793410404992747131762561365813424027027998567425003236763709612833467510359822979710296192238603823675050779175721242452008352432318033327522898798597897635212566240706449538462270180871192428222772280822008324063482619191868263252534082754495834397773141657167748902246935397517459719881205147541113198019100065676084768007951918036909176493282204509976329349509486809072059527154136094280962138158374808275959995288345676402968420381022418668300246869017938176106720822721255255195436080493750853183733741586554247578431760555607791168765257565784810110001243990424042115259365293672135076536067649630086359009967718775435370268665750076008817223731057484084541698253608541395076997429593953376974013790856765655763275576482955068401956081901242441909157937901004646263484455633493918989437624412916392449483863110622217920070406433759443558491064236364116470330398028660489845777493840835412523945898113331712622192714805923052276894628533112224658410042294427635214008905597043652946630605856714636654307697115362097397506835586868291196545586988574956622961532917182892472115239528950183620717496991933215209167409534240446260627659297390823935202599951705792242331840694483111502766873684760532143271714169734464542135185396982339116433951185397332577862358451798792748369273449702028335665188991560446451167453121985718395059511309213467270483684871044925151234240890499438761824446919409996351709754182301475848015119657848135356757766699902502183289089313296464436798779660953209183738141542320728768065335665207222185976582031299044876795387687301519459839062717142795210686442776493002151838478211489504881215564743696075255370014441601645939844498803302914439401540830366331617530465758760686609059665313133406318740486254621660344202842483185456829147301544842083478925756776565568865553714844965987280739545078222205961190449133158441985008089816018983029002417206982032826774160741141432415073273836174754347674337607277884810893890711817124221460875965052571920014865722940438835242697588429268364530062770942901617101843573970521104820727139479756986052048079775242356565360589259430476500545736408552267190203378173953402711734767144895782532531960333431097863899349804449438452597660792045235840855204134201219970879470121656861798896794391217750173910304049756352553449046868839596410748764268851343562343908714019728082111566499186631407986453637333283820088729947521177843575968701629711153579795665729289236751240061009463185222518229963142863132266324380829393193061489197529941666735953486607483632269648449996424052450501138161985623122958934551941638157200625321190060276804090773844791373614958132463977727062840336229490624419323881633537192633460609521882159009874000752350239835002637755928906388465663728569074007719296605825595050386903733706038975124975708424880472434550622985759207522543973876190634493131086476393211468858844410216983566967498801586166277075109942484033903947792586879378657569398730999890988984929879419710671488595897761193098963641983492897515807694674051477531697744956796938292288704918223101430768839244453682075316724087262001027481188151510671360626822917806120538550307579327252733338774841707946831423771684177641456693763373152442785196393924628252724513655198683754712100922356231734627197702153876808184704658126114682310097456022516295982990185340531125858110269930780338525767612050986068853042046549655078624030934880847790498391507423927295895180187135012951430462720909882519304696188079635245292565512405785483597621756667652211619167648473554942520953231545117196338180740753116894257376180910105486445012821235520058216450469761528687378426641472735783394565604009478623965504130755717819673966114999525792124972151394141238733438401195190352796159427523790118656240624410653276153269136609492748387844541693361275513505199271005143369356266594151352175143066281040460909451738555895138779217712517799040767981468716522996509365451682220798472378017282466764641107873855960830106094821655563463016391012996967563526944662914751706363831996137570523988346759655705985452151678253128793298540139872106420575938274322111017550954783316402997630462708741227586007896926292228294600016742863006344768186450597506085627297911441123350305275013148573153655621018378814674546327720686894937868022712186005905223067301760563547654455752128206764627305563630538707461725544544683778460019222696133486903237987457627773086866168397980217741041031877686740087852323477518516650819383039241025433570083298133903560873127555275277956578022814193721082976322617265416403898507061580131000910415869406204387659162748312052132097471041649514555211380753971406451602704645215699891126154820475065203449033364017690456243414150063552345157961705756083255979788310085412150195624072609954608201397017569368057604790663049941593066625515837115153198503076832247875218638082387559352051775394558898743702311754679829528127725039508051200534858326384143934881209493361631000878214746080277090860139211790036886554309158074592622764136743632821639742443433017796169262949314353397386665776461154750865019764578904253797553683232489157666182335968855587621091684030373864071529884274898487297505325173514013664054103524393128255917269109432104552913959594022658993826486436916019988442408159393204624705756936032864477035960605469314903010460487674353977398924269161552924200030695583114387295535278280827709454697811888238560461322144569438438082495291635889039616029486807790650863902603471189735669871771754162991352433987640665781934650423994368774673338873902255715211998994196823965334913733596293846611893403043157177006147438087785887447078370488168543920286185138077678218432601366886533539504602438845462509119858721152159823586250100930048345012614547519682161692999742063511599534295123656874861930420149083706319989907113048432439567581118464958314008924368183760825428596172148531978187766386385885853359509081115122518168201304736345183878756659860021508068357897588244115176287378174435993251668696997330423925049886914074251370843995128355532811404878668635217393329184261083664234092871809874678558377923277341127493621185513658005455095581157761208172685358631808366758321763549446131894317403270992713174567081459112791760228592413194863824422150679289658007635356064342637996580586861264694259847658331010678200505209217818628870175723040550499341350673191168574430765807632551930352241008211467744573020280679637896089827084057420288256567349181200704289915040809866682481901448981171530984213154202471224406437006888408557597916848954968542644129550333177432251102467487301279702173672319668946363955327761610698969262225231988820695904565718504863955469927363408818610687631683414251469461893872143129089849888248069466253272670310571701465297400629189415492873348435660450043330459411738995190693565606282055891059099779317678174295990618280356642830306819055782537488226221290410459652142361071591134798779865206972356392683852258409518786077897342888399533761793079808110605259541504900594770028879387296778990613656137933585624299180759198169616787538062574796888678776320958402956794888158885038205035628493373806112032160105342389029085361482108974013253597301627831711467335106153858720098722001098843793809499651265943580900059313719463239332139304989658631299846352452457167483914883282081160946483318203646693203198924401188053258531528823870995559587088607661447615375586168938349920475518643383637916665069493400109214466514593430995213484786791430893645597568850510563214038073066751540236351571693661269340945281199316872503324543404071968532087937313270068029946913882115532537074541851111928468594203034950627847069798731226050051910173227443514899779829475046847615145554816150595415340951840947684499185096172510059666507039817396061483615673928680587574021348787448218815846569666806755446058740846720893148653031455161541224683593206447927356408567868267482586086995853183176714334261586180288892409381954579230083377055822852303026767993337579051876386422485539316559992711873884761489873946292312630982677243577555415175247501656165129766234957332441551944588131750185749787339145102090512916458444984440218563567197463554482233700106725756265756561396836385387926916527235211708036874570430750383720833879802814339713881690657261676311838721809766134698559638916421006114578822251411446178303665586962411085374131158182961659109038138823086899456742271625834932596222615746048372240801517882743086227374072385380109245018315909805116714342170823276250347637390867032625407807438737970236909341865631144087264165619015019094199322654904598901213001273909211177204971843179223321832693435535275993658574647281288194018889314984445106275649052237632939401109020462773071831623882123844137422673039495692622141502611974099073347150622969594322884483257370023422296147112056878124523872835345992530027621846085779308415183067974987336487945225755051915439976336079450646012549852614863259636890166571039194433980569558272078200452463891692086632319758822667750498961723222152662827324964948637026669776480312452308585948553802831778262994652428294961848493702283589287983502295106703937075130647104480962075171056243753803953623961790415083272383576443121549327043728895116032069451252529195748896508286534648122078699375253843501509926528801852790693080330832555987592407228598904327092242562930057355160776350894455177298585370529174368729809158254581286498757723123081164941834268303182536675991081078800024529840350335708424242218068281815359301896653758722807374499282089379255374850016170894060476028567980200918823256266061128416560325332174871625863232612502255315664776127060559300038174226826429970966984586694273921783380171438570747121782872639163318316824560255396618598176841943851938216544756585940398817280024452317507401885242433370400007854571633421072976348409672669333097884766716492200371957508906921893084829501407151448831470860758579205739664654836967638039244556010312014424384748749870817971317337212906731396032385345441335995102383594522983604230913491939591392219733212424272336379794561679173804355404448170682963914544145607866593023908284922796209553297053166941747730711269137708269291997894354249188440116278723144335830912631777564635003870236076412066916076812559960869343119283045243933238208493050774906032672476696679533624964913561562849064566748523083083423584442979387025424822287240626249766160499339023207329320044978102584914835059728084078298213731422657140298519100482619782102962389612966734672498031421531744082927173008755376119300993128320735031377256105430401695386870783932695559220179526337282396669834405312725278304261917615402336482270214547529640389761407012819650665264229603751383840203628694661350085548978681425835102177751775398315857696198222079755028696766917234799462981730884846405510656092408527799305471177064188980242934691050256831836589352353422391924842491611019514275978271259042697508296024468316850646375656879244886094917360092348457639329186849084353476191973354124006477027152085400527235723389004251950339087636172261596700921070145045566813991603860165933361441846616869278146415717174049437993747299569718669941887720233835146765688296022095105741524417739308041936697989868687324508244222093882467896190776828916772174811799331467654483358102834574768543490502798992823650697867116348582965572553369032952164376143927022510114710060797264569243944455492203537095231998595665451429277342892610003102026646468805029478862002753462518239636871167441842837473832002498130649920340902409725775095694409306702890991229467144539161096014397371523045395155379213798330401989415116614011375346102167446954928866272912805179589328317519681586312233368401030643244441828217268698163386566934756913377304170420476250635767946278872527696646292296403726850013034798026216815296789196886095588332456148297688520223900116175966761929843429179116847097416389435076655126581671897177304243764472418292255041789289288971460470784358749345214214610421505707417730120592649538259302812488714761199430589318470293703121176910923395855622397865716578721063638566168833377004968582190477953163538732296316346125789890524092813077227904769710683075680514746113527983972355773123365401659903947843362031676494747591420808309803812831635795803315427972370996374910632942241272458806331245115790308883365649093841050152778318357183774949224840069172075520147701439813064035007926633058239267307922819210359110036824399759946681411855010391600593918256443701443332819559754111586848668444490596705548307793621125683167837848128935783111759484856833396753436739002448999763762222079228156816076370545814490842674408279393448159190504223630175789401399596537162263417543018944544049518132041298185291086034843984917185728148477837129834612696526465902106770176614893259142620280127422582226991187254062950246788975941644348163333009764479253479408312712260521724488415507142452281402321367852323683294320674365811540614238395706269004850413894050426326383438800027761673548227275976847364605106332736971289055338521509176955716786547892032939712124603438394071614019329629268999016414714571369895370118077196895706742580976460967368214679372117744024764574791769530980236932084939677814254502033408447973141974810633808510078736620335082754751561661619547851217034099119684995456721950409624955639350677944115781225506726251874350450097074564374113922242051524926888507523579406749463627708148773282675075786980125334054436177760595091424524071692035391783720276196674767680716889344951875908529255166681082170169794080797179183413006538491309778868613928673769382627976758567191478008053312797604461682848747502775981675092050407092962765179291661922851953631641854266789438814175247923603224872493760901640367259363894669595522716479236254359520315436562895977446795488268252226794178448077650381446581676360561962087313717654631212869668826546216889962732020694405645218582732911536066532728100812188931496266210193843198201765077434247796563421974658651720262089229847548791176215786098693064603373227116239988555455415492183678044749440296243251624610230636955412876467199258103851794298202057580629372927043304931554078256570698608918443705383963181109153266349680951758443474739321934945783185553011096983972489665933284925954533174293433281876104869988202501908761215406304129606432323080079589546100509846291542093435360179464351212161117321788348313106393468437437050663962048989856682922122270160734429416032872817919005639509125931785031854928452510684799217976963432445002896878962904364115619999162970741221900638243313247302414878403784720458758535244753744311460238310484251830317195351824947806454847422729195556910035043957699267143722944907069282422295137462748512599293801694021189235286979325988158198884368183458312693737066795699510645767079329996995843731759962828942870147776796912699042841926199451641770019815386639886534606884037067022779913799165993249704479438091159066936806261386518366483377482041846160960150708263848094761563443072181777843428982644055544333566797557188030196914494923558459717439148929251069542554815435631218470005197575409493280946412722603971238752865675943283544629126935847611243038811936533707261028008472929492587103106919872172559790812255025862290954486943501880780700282464972012543252022339557217668062482246709343233119990334962748181280280757779466152563175630950023718753664761859657964497972599476004637843664378802020622915146284843449225703913675143229288525463664103656523123059669192213835647419187053964203531930414985425473270339756494525062084992591449359616567210599254091034258272249581465382340965338364605054779367513589698245965737438022726390453932251630123589887486640260820053185854546977757917659120653558953692877871572315435111574086444089260087104275829589809738544860412600878662151560571984150282850323979791165630469605911638055810994582083041884979253010131211840098199501667799749355099116068008009955491525398572561955613423258495477200662405016252356028422558910714451026504371063150807843810315148749504082979212608223177036448310792444949831532180965578807703137873113272011731847043934025832469157492828398785252714652076470382465303540488165280124345424751012622787146234210774589992910221216063971074215900881001857920979329961581756625012137554072796530853784189525096999368285075883060472030164838280416079192695066388814994029445432918359597859592245658998515416937542568759935905114535059675141768913248393286973722048198114485164630033930339421895519678174338325641279423953997015903031518773288180701808305981626805599367298156390466732682449472954883576379931942699230434987824114618852989341636420203470222352740386813804077240158866372352457593583020497002551437487682618993012748672017915619455690603865059276765408978352465114276788013568320633509265593629136390765105305771201727570106548632898392622782050367351571807462776725882389328280160697186131169128152208723846796433197579403327683083129828631820827600790463844910209846735427754557160427566041702027949219241841436256278833773892972853687016116253183189394049779706786865384884822956421754214088656334211865692382886773756073882471758644629613722902155024972094194188902348257019306041745013587740832290405590131500949640967820825762544445997747286458006313707781214213915347027958488677365809531459153669254766084373255569686545890824222064552268413462978270621041394304900482401159648185418197641831516187847575319513888932394186546809478581375189561235217483988162232230181983946172760647434372828606146418669976825198045606762897980260464988398337128726794784138542574910885715652850040206741125534969081381263511601000781106078726119181904863365163740866105740160991841682766745127163517887931962008153695475187392412967037568388355398933459350972415459282549088778180604748033696404613826825706482680660365051279649632842836549388127457176329816326522478453644938114137279531030445741440226477989467934485515162309910276688097627322121698882152268076430743688043499427347383011450371481946071058640503594299221499424302144111275533874960746949222427412380756321607541287890944363407185774500877428418332256176613573760770206860615997413055082212451169226645280496812830214124622197075199216756862659020860000202737105478220873762241300638964549420738927951858405412825567265981797063549233738857533014521380254440276069105152993834358574073169590327661869214024298380210288131694203625446356337736667332734741410648645062332814164496141865104352945636810878484624678878488376106366332511851829782706569510845333151178276984005957771807905199969305274866147631503356949751196896152522772608070701421311524755667055241133656001193045465790494838860427111616128862836971345776866808578730267495152058254870599409623146770410833498593693699146006736840885333311399755380694905454550583312728920583207278037480642865125670824173481492819483719019173898633004154484305688977950275019562950505348094061431299523947144132110430987014025404854874579975729547910201535656546166309692785890991677194603591889329981598901608251976157060650676931815305824814270429167255225261716790309773746960028091819166979469882264490922184347005223719859374645065840091623671155523977798878514730043377633332593447047109802171190878027533246455114061104606016205669309731333144687066294771081370341400411973144137181293303042062416062949588460434163598916617067322714102159047158464812229678406728161233583235860413636913273281715340951857808716250789475356266174396298473407984557209233625838506919222625443156977825832101000447723227378643766037797539313023734209166670091181300826630692888799143480383049902382389294961412942651216544355449615110092908441730936247168152568531713596649986057824956212376571979386001671064295261910760186670896915527862900019957523567953321104488044292072215043864926126846582268708748988061923511146232126739490748250229406798371547559828759490498656596161585202622058368146694620027793311856659841643892521991956942870448846530475458454298189577587394431780661263091928523871574522600558889967312958786878529400311463014918710052819184113367299714805757578615550149678893230723987526474454964466561783651367392859886219397546533239854673781442860334829055258852747196237219054624877098071355770407717278767604917132174034751938012527286605495729171313841032830708591785731840149421350842015076505972566963863288988960104454698206536927719232383004716400135197707392251030881305268353115129103935757069449030570702079820914847772863549862522425864545810728501315362751002736944784000427930740059273993634234072250565631921350682019401909276218975732962556954006594806968151715152815291342758531607927162621821387609035677501636177223528546889271809546578676814744803231244170626699440576852858603613925760376354354909307276423194097667446790772844451170143911584081978317633474416710614073514453217229679408028982210683570807481990205908698092330654210344486217291087535888917694646230821546487615796145603643569668944586461715309413966277083992114855882650759239171613996686026521539454240832391752444741979374746983625788498141999089159755883298111937250489490729021054952222406178225464616813219918237736352404044583277257422845710501911700680498509485563493348045827314339134415390746971109053218620245718737234755164372127467758587369294770011405284712338532534654245205525081186428065315629194360373784584247133430763049316992228300278382431013843289229020261915314479716627634293576590230776605034798118666941123037102680826266912638053685862051886479731214166821354893830372212251237204673373492825733585405514862766665521510304511360705198608246138548767221084431277569224371950943669765311654998824863721249692371118988323747523582829395240766787080908969274962296957493540312275474708171160062107274078550676742850845687490560383749335311259379694317898823320935015223387203759369089172738958510022551499452686818187385833730131508655974833069690185884609890894118530652789892819888188371751524748923232169807182358126753304060187981985236974109957130300040434116173965296249709507020434251245671678622967233635673548633936563258265174994485894500476098545343601467000818128164180082783669110353309661161170508232486137961289057303990821208873346568004461869079563449359849452537368859605936231427146244238998351391958776935625871550746902616285648189026462501484692377794665390432949195200592773324158433376089693900013073227842919802980660809120563777615431919551129641876214583635007404852989683025368998599394444357225335974514002407381117836397995573092949405459570319269814673590755845811520788961524214647375634217865473432331303464731051248792605823764922117709641748652054591908882322457881797678989133444926110238169578235012895313526285861505338552442962362651492431274493347992003978058932777240276300446961165238283680150931269561570545219719585632258502221460660316818095688829070382817148353509601359526469541645900807403927030025699145699430543388157315645974004366769458285618621501328030580524260978007466000406591144528094912773925877794090694602341528562040573464104100533710485679412616707832165703251497471720476587524886706804367650212195404039480272895474807778745272230621727945222338655132314203053673435693468662603576580372075448853620173484252055926817009821767082825853408388251366814361049046096360486135145710733100124158862554451719384197344840146206098466300616894814193684624020194044950206499557442957967428472327655429246332083949353649290833403050655047633572243361433860703855868668019554315343383992846723560856179878448492132151581756164986955732322403632616404773183602652106736885406182003218741433629342764145025590665363137103262000004374772519978850594838583084232899271498170687409915227869276853253950632680184218774714363168629859518973078210082552023039171760802641848395440528620769877770777569512530391624958337400659026990079075243980706116592654812435385413553579668699298707615458232144277714995417515664715613211642810175907590245835842875445862966993298637844382657156888938457814024992157316705836745095961729354066593800157127122574252718984698411274138046391570207990277565183301400256984357273796359012399228360230565231509032303922837893351578259654771654061456406958576457988402118028224759713481607507648614267914317161983220166741783446565085925423623472578211929378909510395725778412843788659975262370672452427176065074166719346040116194294077322669360353951565599834121390607328453421763522288490420432229203589776873301667940374303475614632116308691851904823724535464932845778304753392818832511694034656278589289206419855839853351174100466220806973159685460643727012215675771119426388031092962119179222124239306307568194827455537859599358459306357697548858166915383925788658458480786400357820720572733603124846823430251701914669188276703355580021719974903155171196779214416984441156857194437822135672464401284279008485413494451883194216114520256771597182843982646727506147257283678998431846172443202373132365871865816840985661565812102860779915814939914857888940125722110383304719348068382839548500043606256061518750358430449408405441755194991361974400785482091479987928799463977147927040930094503773378139740365916082428012086912317411679801394799544446700409356830062279561217429126421004715513077646685602724312319451053624577366881103836222625751947894632882326573974201715240075896733418823371217193357675328743360291556689074283162477855296662759811180784928351693652722849513096599034320318875929762255871016486019975534751447520167767894882780255461464988732176386443468585463724956657296500192499248296629313456207228118624101401974936550518152093042063447662349018782389239109500499154464410443868668532802785632855579252139589561198261172317530086729267998064378272570139198883228980354528683952482455276128512994809105312249349971560059019752902283256871169412867535456038017708552826333970398034256732876041878600750982052909026108279892724589930080211931520324004845771771693636668716660357788381909480715841212479643586625217354739757113764132516959871271726113046144421462306983630471622530275673012555440510631696847253594775762574313707874126377674451352787282434043228753444017302306639507266286391916913266317293530315682536435408929229981443259148807086802430025417763620852817323550374652559195361447225647089000890556498750658216998827419085722905888521310039073927496936295065780333635749993559625796556373367198385124717342231960276454929808316187201963353321268500095676295835559439622495387307591344943303207835848410225268478956796199021105427476364728415220376128829285755367856282762266231119871773376714264829161417834608079358339347928633196323973120156812767179196184343437958320816990174001617495783106541128236380497163579160843049751555243762490516139334511682472648946410048768265331791670104720192677768758155327868541539417639603676535469332308968286585108639095923713173850220598925134344299603579076738566181382049625529204453325632859422700967817063155465926293775711860194352176313840863852614568992670119591508128975317140203303719975161809674188492631993913522717086878302347946787004827725558006889223758789492235540172068530344867522708403070453650934248050580612704126904479632381821913620044015179711554843877629208988038150590530426316285248481979146277818154257739873978101028712542431618277631924447991218625693911011554104985312108428280681674898637118066043757136460955665862195808684784710679223341917965466749708773446589298260671379685092801090902334141733011435952506447979868876575410323577158859086702815775188569929391221004247180906762210395779201575257552198524055388826245303670262682517558843174107197572957988767710736537299007988468796327547884823603938217857586584637438066737069578290520301445352680828801655986568712042043175468566218081495624329780817829305544949701684395890808067719718683775858178690950752455548991668153560539490574092512908418842710215141286187502256405854284567626161094031902583927609668277296791309927868221550889249905339442533579913557215751443879925031958299728735264838982541779716172753638303038443170399647572203948455253839389435824856875228911747115440479911387488413480929404217175593456402310339589157912515351854353474859052362757811526886390054467121630634407607901188976655647550849092127722763565227336444752792547679493637057239172285869035904956492509129402906507212894313761349197051994212398222763668177034704378433269971915654177315429858455243169031201622869281495714351762823787942007639683997082960889313958917107280760105689076387335765809621512357159087021121534013704768297235193851958528195669895861558809627595196275897061977308516448996144597253189576788681822518851712875348968482368252666298398012004609821690029681887583704741635979776077266892839121322527179236660245349911015281154621497629616020710403296017611828355809261611315155801348179242934759030071516359180796555122244144530486588002203253041745223143038486506670963817906528520090457803340510593667147614609623811583217962909318440922009733927048630831016668506265544621305421480888338935090210877609905094216849427596600420157315567535055862787945303386223093585899655239658557995917742530508391387242446487321756198264860112698008708420675456069855003523616081052826615343380520559592689332523676482736054567152884206562076399541630525605462333554558961490787921263116702178280359221222784584079557680916880218760331549633959444079777579054682980126658685223869336228759814494523229742984855150267084028971894950681230471304081892323178438260440118289402932421578302432398847070561985738814148930661192263554072801046723677971275122063363592975118777481684279363302356057450793486624968544183773253638034212430370347733756100003897507655469628542310824158739636920180664918287380442849950862028221473159779572415473025386612909854487793404056500134987220207391871950680284237977616664035699781426975974370044295857827086393206222207847180333417809669380426128195454312574344606948325698097709948741472326737705537302501039248244489336851092784913905181078813050499168858741470508786940253771593552710057302383654592956694762739490632198802352801954606742009996282164348612104549866837660553847993928283374359833200336564449116644222341108357354264334067136357511449655973991411014428834599815646795455846080528179769164501726093960853846853945279969203345370530744778954002263888422033011832544166300478616395818977743837109574917744934297375166736206164182418339361179783031210191897736961113092974970623059348317093981747893837370667207647430873718624422347845346219217533674800333891069663616931270899164056267725256731720214142392239955279693444928460232038572364221685189856663926035981835756854779233987901889508547825995969642167070055361303436764948180879629081876721859661674582384301794891187232076453721055786726370522446788108923087164620401345271018275137544760278970263448627340588864255269938681001287086258434449968138268879508560053719480433989678513658591814284328550471405451186796581204294173033513864675818937088459547967789267843076360571450841683475200197881277209669857592979635010380559495140500083569702234111248076517102244744309210865860927676396230870018249870350986371114311853299121116392517677023281216727204586725623133438526932458031964268452605071068367572146594632196429813992405015327031730220871984221781621758088307678027958029440880937026626569309629048518154282685000955387628489624963272732854944314923021488465087483788080078139724897090900619383640404213266516003459362948876396756410800846713348722589617971445285155498224348935544077574476043723322594281613632849065793182157233591239985892606852923550637924984913058543960688616678595938356764298425854210565564080436896063896515197397356749011500029709020766276471155516905220358706065180783131389843821342142936873588324988964180111094690750724940176629676751612810538770369136537611549984576155770413192673537793932640150450307608710478590006076038882098884784058095274694906402681898411858173349145220459157346578553627352158086360969664221680897717961486749988793070773327074812208405859818807279344931973058156345987663819753244926618769135575232445420329165682074614590164647218133605942201855037430758733025250066959487908318986693458722074599851598133278654306551025540881504924275440669319528396688141944600742173486235804135714517273766616187666235613681327000026689163340512663027019824330559077213724088069467378397514227946315257185119568160754925357966708997549144860147352204959194206403361084375686800570892795695264023562595382557366159195871360480045867036892488641821762685091269093583912645062204958195615512369741795619025217559423639361447145907019453669287471382823632259686274411798068715679645561343881215230383744016803713254877643586757127472730687025276649135913068903959082329124322181495747107259407853033870921643818712715003294492771631965137049397983224025218830616287010002010646860386596918660291006713376246983612717669296549262721779341053314517477362434299432769343505919547385287734136645726917741792532687951673016635544265178448665966450093357293181272717816338519236766649744186516460861269108478984906578734891743002998340397045336726870833747829985996607368617196203818770401680673139723559827394966259599289888995417339648365907696948061833122872661800304560074600567230283899008769683722367492401181672607606239178108772296485307555768848096263027703229367248483260880608932285133383727301470070000655342819520211177327729522921030666112079858140660661611034933170795867377499243951409347912896538302513695706403153288402156010678120689999517938631271085695081743982298524339018292128756332231196821168307526883400931077713708147135074629596439578624052746421743486945113618379208467691094820501865070249872576883048519110742003920919766126268801037594119662486123731993320591622236561996889378893246987554723969392683634473539828177006340336566822664552771509426447809121266399827766322018114822626662630003425276134557871777598244746892064442411074655954652918089587221346993127753069564641645350076465264629196553021723724417867471893612681466663344829780145117239174510615043532615948055786642156906428732787637532780045517823270217891648940389355304696672809239486366976045406516950683744713670552480069164024825529338520880884074993659423732214620205644835004251638316461898442038780634036647758970502159928055921744993126606695511256171027711116511590023784551153553209445203706385571742289887348180484786120683019865412156888067379721242231717807050091135086132335001246811066342299148261663704740682468392691332018523585095318445850891456935759680622277361626230663063366710797522852301675392510665387086836466717123035928386233795848753552876083283771184379217745666101025880451183911375843492481646050062931387556397370887963173777888217098782133649771769392158585744213200473072379675336977577578868166914298019316915007190789981001320817507625960548750266564580445936273589556481396903209763565894942267576522341902994417179949495590938307468254824145329291720943873036888256957471318603869126780487444394445677184082545859913958032069296476512458430540909885046000745817358418722566053146602314671481284006051187799352948336403210697637985149756376604792904111555093513965435989790147021325363988791285390600800909350704727665969150696112874608317515815164923546292059039082840635460625604307872959717100321034684059924141658934841925994738520977284884944844697471189248008164613045317272712083575771218779148378378535360062065981787955837455023670651774910038115774557818538381020505228768796612258625414979256142347712727804354755013376602631798318607871108489926690509256542902062628755815022343084408070322107199101114147958807525112919629234568666445898385904987053588575524345948508841440663190053605014611963382588358717928544560156540137643301768037454911291458349627933251807551835478348189634960084887910475796716901841803815544795456649221836682082740174916939385322671795626731477484611561240386940217729699118016414576171076535445671950686643640800313973069459796131691487741554178635287711928995833831667264069812806443174615850996690617704496300273973440456500554621986538419428252334528059472016458863884105930128509159454774203805601800759079579215491435404623947887140528728592751540441482701201951643353039779776116085402080135632831572161679649636407565156357758361613317755768081073828474324391206222900566261850720040017907883402678973478521797491610224266852896896737723598819325658224799456517588847104635185493600826252830080553642224946496121402296075646419369383784780306590610635691913234930394297207465225811617016102805388308064366280103740268521955738117150592914989579970266812917838805366232177483997010771905245967354680505153378673826169779736681731087180032102907038917897658601526672456647926097426881260821752302010201656245427051011495881434648984101496362120852549258699043588111529479439476288708838660138200567058945090041508364619148331396643601708575926442928824632769998071000270143684543207749431415156760934041720716848225808894000514438524135232463748963124152403131677554397798763863568900291533979127280766798169372729123709622172532583198182566330758667524447934243903458624436914605058147358742461272408089156352215994473262267698113410489215645650663381610358687870441574355957607824155120934603151678325230508484249581186922326419435035278522740076383505018708246052197352902239353040447207587609083587898342150087768690496514922821603737191877995032819706272925280322904880371343580372132441242894725770320315195815342500535130793279970205690537415395547604695999456813890796916033304913664138646513225414136480583771067344167288141301012928982303873488895161411879422220948460385814573593396555798556049348092853357749540614835138446488040992425565687234792008990737921527053912195958504101980905107252375718034814970458945141020485467647749021531680368201502041588470958572039801179263375097933216751756824271095350896050927433740429819269334484620329878458704727123308106696102012958484388117513036072590227409119136203331257902228871009661808685921602594201109916262960318313234105777813345941020819167432260887120537179582224284110792595961611610524290371799844056222860781429731459259380063869136405973302557514018711992191266056261529549249528849097675003642600869149505588377105502364486477381218598025648357418015520282749246829978529610924415479870811344618510632745394382906397180866797316363159338853498395844179182798201892008654298766082864968326897395608826663119598403520147182665729340440061091517337611738760830852050166507694130455782264930605147292902686747620654811326582067266876833922921963358894424128851788892371207871416536705264816415782714977157417630566727073382554104481475694773042224179188386417319986179493152218814313271310041887661347191382770416139825295801262343370032049576999927175845438255915800720940943874405699352731306550518362384328588895609760115665323368700268021506179859194100537080008400383997014513499060545893389743042997098506937873135960834384822382841666036432685833026593021962192597983118155490848099044527480679655356170387410742936038843122937748568887287130478926013666242033745486650500817052078688177181070878454119039484671157389746239415522674413494980295693103056965302386011535610989149866514378710886163265805201985080098320792901509710311502908527426746664981070694878442414418384014923400706497123801338629112074976439456272453070839914666275554773125375444318562533951159602370547322051534671197547169042941866121921590348180482843463275263570895763980538067688720604961159940542799502955167163160356778693921830372154902736335349019717354233537014214647522871858268811039528971891467034592547011512286878866705393482884331545789249913255804673242753635469489579252415380392955596534049201346509472519053404546864115846009855211880852903211265413012428525888520865441054995740004331600337418050574926564285594928781592931985745608479195409596106186182479843191516233151932452842519984511251903437134025011929978676524378878387515508465111478541983472041337408796743376321152039368780642312642669220887190782121639434292991352970950840481088763837042797217709958717725122680291142231855052459013124827695909673140330551678314942875804220229251483464943869067118655561255995279614516907534262007895750160477278517710370791290159550495121541247850402416290960883705114791345477611595004317267056656556196332495648600582702065637043573645322430697603726242864404598272013060925426288000081245698862886809880083671848601958907423918415317235285069553380132559990000765951313540292649784002915397501144313810146870371118533213141070662654627267163625863659396461918346462379100864537035929961703506265777129740029925151271409913307279171447523923211271419135160900168159478516781105335296990445899826002146199055513289697964758268321871583676722275296992715526282984199345509483180956440970659202712600387949378914760220285068730997124038232487394802550264421020681188050364268964796196223809533290149786435928572620181431616907287941473466487246857350359373948947195419194390688426633011743575807262078038687493701823815552619121663191577671225631534486871534652775176947095854279380166511337987947581366840021255017994348461778015147822508253440301815969896443715834315517524613591342244821954081086983893228020244188800450818824125279335479249364085203097850536480554934256557567469196986102585220379913638841650186962738438171140655005124893278815920717717662794435537172631600984993203493090118677932310880072054768282193397761632166993989441063377006922745269282426789582420784886224930244715386496244498407776851359387430871532446910012792209933389360405767918107098353184216124468385875281914468966876055171524122582386430749013313916617998034428614515686691965017877361733141784721698246782719272806839950597666067719371900512946511080192751255852736088707710193690141174284935490405166831800048670491456767431817021213653025004503984383769431902991919117845666697221736599070216654664848685719401159136320585536148841403789079441713158514975539939472769015738486412327584559228360709228650979019453377800179445331980137626765958243882587981356464071628268616377521361621955982623770649931581527808226997078595909221656561017078142821617495592320838371255359033027979589431114096808515326648117792136417984655868991224440736325665769443522040369863817988901629659121437827390072779361904546748471107694880348230901269542023724724089032571263800137456061320297445639827307667664126484647834108324068603134850979106985777578123918017799761072945851373035538999520928310181551384929247907532249103365337084499792351619173380823335272780148394489263909154765532410388506175943705835482526371779782099732779940915417065859988552761283908381212511908331921534672728276999344207278727433972894254219104055184481714946663293701453958333901707738129953570857701649453402237875740568983968401867277673090351419038148252046526181346084017513502495267846757618519906500147324195413322015081639787914613294499248706283788123250918714754128582862313408385113013239181206257505875199025288184907623885594992712263646595783778516405322076092119937011252546150766193311983070777295363987298784632336244337320112225799130015631669992333809045923798203331189875341319050410497519853797713820853541804554152538185444053000670439415320363204088392010210976554895139209453684741009318393347304883060917921738717974307815080741241491203437791209222141081201550637628751414735009783125958737449100940130148070895985356866241447524839672595381579650890961858683040862450194796408773492293205513397042616844013167478697539844118500040445194480036205370437400013739936129266944861292795412816373735054727009226366606157569288850285014552769430856059193879863385031912808453060839613849698134117740676197336189094942963875963758429867591521359405572074480398543143049440825970196626371501651418102160166949068197050469342978879794627306144049283024647561031199569875047202420732808013119655846015805068059559660832583221177965596967770581867868748585992133808256342898310304555263571544721537541139849327208007761009590123116057698812562606433914980135943713043007526767226958753556795269649076415400461023437842912691280077675952586970044560713776978761035587334791800032882925917343115813817349383510327942549272639846598245602634862748455505198909380729168150321558574343161296307247608057905383686238273851981515702190125615242669429831235619633923196145608286085497794291213640448768825333729786968293986923239829536583548701693215981214119537800027433294752255772137979740352724445890479614298560428005906758514611076132272809116639460496777932094925665825437926152914020290029171005031296405011766280445524996917630238829826240087289254893372845755986992673107793659490967034744263823602624086687415743896430911693680430791359127740982868625686372267532585948438212987586852518733395426128662415989670082161396574268009711453474764272514999174775103538670930664081997877149813206883933830700155983047516490076358871064662727721143974686724793620125401986763125409785678245773937798692160785879389125530236371372166359197935448231287243915289873983121732180519766892565254583861310338672398435413015881762604925705993032745623281684172518770953906998608055300636106627995580390128634363651339187448403023757194446015249188327148397827388028037287521228170071357281575141972676935682294146263099457634436755907180714455845283721322521352169291817246948522536384946425147535657232740750280747603619722297548804770498858612395658589552240268373536701919155251154458127782798647883212497825930514160756490067688260109021441502129494273837413770796577258732977904051715744017499035037736401901133708418900749407931772093645290932924698922128523633110435729886941970426664263868610594142417563720137131878256162765234141713800587809069854749645953603135373894518931228755318578579239105642311047487113582442434653493090102153929743029591612434296499907063490032036605368342219210574706801276754938577761232588680254955149681365070601085887363690121109700113659067795330601808118094768911292987976695162374077002024072067490215279689908000747500646933466191330360527265061269593213000014601700808645544029892822941803435928949803411157904749955617650120204705551688169770417530865616036702510653005157471668282800986693326096808325139174314599398865633331309303268016299322218115914902002602496259136953211397625082240568972056114259296022489097159968989193938350994159005587141920857653286724539778416730411654312962913719209856977605141892481040089510906245350383984911530806503010818845929467305194528055682396097697661424436024395519229891730314157371778498722740626573809256154808302110303434388908985912064145713787487005770736745114051534838359690851008338818346950976262758956932542658079405492858932494131401665194822214294466167380215192105307305593516036365733378422003859562955460446108081482282419973031363478779476496677543792324930776631267269077933987768315087224816203755056128720244698470321682150575079980910083848738147568884741148970413910417092372928131575145559652400662643099034097773368702300139119783999957479146552201121372284629323192730435098888012777209411762571429950421333143478191212929550577570951998636216267445391068657179361839108110315371095433290077890910943526485461431021545821421512618422724969387936651191715137688396621650104845743937468908329852778949281260526213421593243704112065066371253131182397258859491816572369295666629563668128437656456168929043976927817747860622162706693618072650390611418679382613170981590495190085679732944524313225744257894197721713563724289364029438524233248542177741961077515948483472587446955784446519553129435316944540645647372993940014061880641470271655777825907796588217776364131619273414221581264128435691246316737653692680990428885556327951029087810489499669545647094358778844319250276299465306894614533809474107320704272471109202510461279838033692272151835043259831032633316554447268736898016209547953859038878524630945287993639648453164227908844093975568944609375780926012650651867512902000632163057511740023071991726573322715838236096703582755738373774016018911456884029956387383262032147181320158698364539969084476215816975076045936791364079868792820205203876152513353158484389871710630319456136478489039881479873530822948174229683695324769788152015233638806746806495042665728779010554494813483867566497579261409583018061152518161959280121784985397031196535638343119768189735162291150992864151977875878328617518638031453011703070879571860286375464472052844417164858286532629796523818646708841903470053905148773004217901474630236305183617944174974088480942746184584778959554839148557190958215633080573502419819557007207829487572480302829541350372299518529811289155519639453840443829826618357692764497103184260558695659818554067096543145725008717142498109991434260439373284205517409248136989129314855454576875432700046135146589705894277943710116915319273327413395100804496189752740937007147233600568378494222099179623399407241689636331232372075384824349089864204265254886552477141954481655622679402390922002299166906646607202280423238663634670196838723121265591044473634836760812145068600790381004011176568952723830277044345144130948528670506581043723096053408860069559445876161158347393443008328659791712019808092970033395033889793245622148350247144430123975397502993137546087523773375454569537481768714397567863184076848572963951812377592243204804295711757493846408765620360060149571518474294645030951697138551745504635511021785216187503394854234862622503810899935998103148503643665374336036814288209662576137721591754131601740054815449004901683247374917593665462356390569302248901495167683827205996883039426468876616171038691231285611107605619855377022402005226466788972551360154495670521767788447486903893842158533776210261213183356175460500882280062093813012932308470000977718535233436840496250594295306496070044093011798108031134949213645371518303328295597096905199086205453990703743665681667307299138421881965001460751369776542725450296699173139413968880139350217613730744726871557130749386413264544789303926949475936974267714279510768784759308877585167516218138958605436628978548141072682038692219578201058237885932064990977827139939970832751051033829940327740502271844351038370328388675453991472190512846173788171832107980071287524386202007107352453408290499431746319965303100434353877969549495490009927062828917440967834029826383871448104651871705731442417165939138049253077853484894859915949150935761006703185204207058947685137974537823048238914343434421245853982799000567121411215797081554730796454320422680248917882796897024770812738429648118736317116761234346545515491747530568948451533249350094167574304101861061405081613188321910649536034150979505121189904626225924038024058355628939504316653084677123324407220886563388199853743236503411120716423520846733960529383944397332272308454466513075218144316535747399095938935625419177300370732747974621965403301488240172482077522489279550048769518272181152911930142627031208835078685590049054226541293115067223591485067242962571655570349677087263469682820282097480840751790817917455134254181282676482179431578593508313677900051884464265122662997086353628362691707133528913694135767094654264530819258730288372443661605946507407401423962270572531014314871801619945431939948050243866895554976208000540886740363851011753344651516726394297781490445060620500190923106434361979024400488519612950528872314895549913763527314032132107994501846192084491081790227904256146782404128240443896742117713016544281480066936749130502907708012729875159483093901812164634399438266759820685373902571270711618379965955776769050768666097711189650102190737280014549040524706082581923741997304729349559389048737879784113496027806974925962611899180328179473206712029589751546812546687581952390952166679592249352082213525467549793922159017126740659438896645131876503093588050104403275153898478537512101255466518341423521118169406566471121113989188398498954274614202491454091547222050812759704818097605557049880674796786106361932639934786434893563383228970544870481468079214375382683418252212671170998780796145442270278726038790526169956417263743371080740913975567021396036807385020079252744706695708292757291384875605168521653672164065354215103675698934987160968350870132138599757004793892001754828319904926372996386030073936241738013259776298898202057974443124521782535027628458806861426086567699953099693157882762720015229828720953215787367174548231705337747186177276668304118000859773398216638499929777543019499610330232544144464922069245788046201320160408078432341568964173391471469832369328595675772382989679888987001237310528169963054602847650068461155120224735087187328306431623396898795031388889628076443974444963494525461015189281054532735776884386864709352483581120781858273393350965070877892186541277556709130644042079053299100983567584300218298070467583477974696314146258373406500534342585204410005801449144601900236886939860527870254609498930676858328107090166486782667548477859001684261462989315586466585527868032936731783437471099752220104171794036196789643947467752247601694947780521484147839570608104383868273826637421491806110736369322154355832852450560909188111747533008891239428887507803328470596253571397873778009406967018106044872835940976340375537799455043536981896370512284649372302496378421607232997397371280839345753823838805056199975474374677086491300879634452560302230236264128881709933013304407781563563617779014422911246128810529608546097653936559975152212629138073348784228779824937874216410450577616567057750560983529901546012882846452401970509780764483116887630905156102298125538407966560292516018747001791209834283938275377154284264370766115768814338107985382850034358661286035743977406360515572335777127583710669218015667135235745454450863394724491372683446583477895638908066591020657843217794886140707533816163609757748179016665095893420132343197386709345951998677384683114406470347549460833091038197603881891469077518931189215151807136788777576826202400857391133114375752457995929436341938142653552578460585427197891650713188184494686552354669181116220852062207207875119418568837518358077151705100161117176689134446653046054246018199978106191869348781315777018605112400024921159257681851243184347846171853648844305939945296951950764919335689129150320710129879151269166419060256597434288616941837476614491035400249007743468413456660406580796861027227127673189743558151365989491234840050478890748267320860028835542653065918159017663120830146033607694979922972436688828717339285486906138622831912464683433761154716308394655851248042406255658251413812726083977655004017004646972591017311052260068762827161526027245190794467086328216065277091422643379345889683357030653642780522568829765116004714060340077743479441868767069110172993515855858728622683960007731344185422221837330906069328628900171174675148133596490629298504265886021355025672678213354415391922728728785053427510834338634152839663871186569162829835524144967200930637948740894448559116481345576257256705788084194853768108950724769301606030637933921004699692876904178323864783055639062362731226045788254046295806206353881691562180138403655638456191844740744494871064120442714504098689936824543897577450817191360286755850479747275174044566068547711915389534586435714440225703308333671196584993782279068254711839076504104217566108877542675927145862131523496611653904146915684808525794675613549967200877030690248255642412876174740422949205875237891500120538575960514198152465724340533633229177830090733280125352625037407829563106757432633494732169459135759324976320520061795592623022725602077473124498944256335818444486135668886374107317552326459811620981566732789767076989774814576912532619112291033170027078964195421588202497639372732010517676744888647421648858369142341065846926962509753021239299041444130267834098516558376235193824623181676752030159819286589438034181222292813940111871828339261171140560848107090285274616047277783713837539937721290940898899697691597632457169046796062935162489876714644731258739515151440740858523849360414475031995966258836598984025354557705095095772354196767262435132106998615270451969842834935976214084907969253665249921945361727463017349677282429846745359489907489868570930569986609344771607956015816664929065822726657465228635516672117534999749953374006818394243423100633212096388837760965578547029128040196689156604291612987581771841960399247501586374446327227083966219747242299251130056220241920872878527726294018262815768166125029840201194087736835264702348055112254751603636497520278102287306681961447542761328775262879358000360517577301398687830345246474021285139334761816992131145463666222660225122572728246090143192886223732400618589666458439092414902311461757335516214715367072413245088770876994075420622605837144702195475945067990550969535503607199536264553832453288075415068383814481848365056690453249127764161972638755923958683179767227605778516272002157930381445542747625981555508921267792269809652023264596951347654841884253933310740903475620433968970072596059492818047553962142748872105846471490987542568841286892952569437504717467434826707007086555783960094614879330333772571830266549694269287308992947674631901490782919135388109606820203564261591244228686864567604213045491154497326650440132182086492897696545827384096038128533345754556589031460376030442299820917010150486627053458093863320079059413774181178530594854889768152531116879301093198008779704813663101304743519779511680196432795898994063342404675626878427513674688054860225786212312227137260410677973516304738091651154970499479488305121827284880402308370643081000174349876191279344859172178466904512188872750793048041603420696838275258944245495541670831717503812991987588591831308166396383039900912654469805910478787988936841867354868352885157112867742495665899255863662037877581137853424563649848393874440132087092363498823874492305819658752192598265596903772158571760245324099005255031712259412255806371457014845336668483089191521230534400490808654424213012651485789932722156008556420575632599565148146486751706391084955317378642212531736363852155510915330704180343726558645733237911696564758124528161934861993039418157310402277369932605981256951228282394970432320801800221159631442530702103106647497657745688724743684308603962089014874561446312526859289956466132301922979882617973802561063041676884794218701664965220812819485844218333664746027664253871512629662979364736238000693946999224024030500407932685234795711428783003001516005084700402917047725359940606084038112084501922428657799172577164962549462893495407571924923993010664787238771062860991229010068874006376600527921342806754542893319340773259329503585180655851572163796897706270006612987130513788441469009759561826007395626180586136737832430218829815648989140992688939732686046858894304489793401369848214607439180996845851889730764677192837863197503699549224901352346960241930058337885405669493038694271380867372061586027159199500745193060678920044924000853723611938054160861173685361536148841668076996438316985373946112260020900794396557740870818777213366301990260175510582393569605809727655098944310548616560266999590259890778314525934622021251559533536644032604802898507836368636292517074512102832869360811153401298088927188336304021371689168094153066481384452181216938486766950167033056911547648070997973186421046942697186278271659276080238837697838161749371633662565049830947993821359388735872687955501575000556833113943876883393588766177016379006327950200129079049843946042800553035221339820361798496460825520481557670922187763574960903716952046526390786803104328935284274818990952900460272275089576712003532879384865248447632669805238581589161704866326291192105579633394196789620919232133858569953801181170663063842014544133937585923041941258605427423488756326819787788686171957877962321171572439738769021693273052379005611280704857641899290877185335408211497071288170016344851349177824013145071495883676924636625079141048149084187385088197454700544773499466504087690272790429919390993018342725557720057334441816371538655819590194046966798479862631367713381211931574417619715612353829420335969139728100551765383854725416912732952912734244893880860610341306244575851463308820313255999762220859613008508727829928900400012587659035056153914167562279395538019769168568146328767481853432778297525403382859019368991448584376144166657741248021851672426020047238572456051576395782915999539164617873607502349612309855661100267203592353216685946989695096968562649317794394622306064795018939141528207310486513740580386454664467134280963456007957710973957119850689125982091286760260271802844836188554411956330392860287379784438420610125513331121491795502693709021854118613193376982859114772749522673992095639570203826383917030594919072600672653145067222409779668883012957450187735908312100977072276624462721576687718360448793600805488601712057239091761160517522578410926873410465475518567780265833191152006247126967499364444434965725794075197088543873992593250584346511549877044247575956012070891389039934090358497386465681462490554542319825624716163018896753971457688199167293394396760900957413926300574090639790401169196026531557061537718266095376510040016237334348522308820657310934370059162475598359534984785263041027744921605265925723758687462381896045159930593901442508586480872981253314514720606935532972523325520326227888707556104294497879376794093800816207937625331659679415270229877033055952032758814432810491768590694114704623357156876421527090598757762729473914476120938171811082605502485487306128508966867952154789389581103983842986120217961808103807376079235500131578310368005088128720606187683870385876678280072890425726862414651323057531691960013138895226599619879528377041348094009314885463888450585423527601711415031468579990775524848587107187471536265698432461976325840286986317427717719318817864501234593064605171780377786251752880076554329323259921488187548900416187451508364802225234134241892976249721849843501897838112181998522913280355180750582826838989480440276587745213904696345994450084660859473581926776807385126639606195569072976069649513348162822645579275227707971216997208946566838191700276618550528303496102791085074680925312218624994694104684374354413182370367157580783298006546608445911878008835963235804451723888104280151725330126073414429035971274125018520439299039912941572113899508891329955798588466318287208939341875470711231987529920885793616285105636095044011462020895871255725058124985952754973297575110130495528557249264450340989312827383153251747246334329103209607719670049493677091483194108934853815140648380926535677573658865789341583142349470608004786573163646082561682496716666024231740851930494308845583762690610348818240136099793587893050751357497788739010862432427439381931318788862903154515511876017128922019781011464410321346991591984279709965024197483657192211828510878548817081766887257672496102782266665937904005922704250110323339652358993335199151937179221034545985706334326875983243234928479852206303680767570054298783916820574992851248604384775211163324557369758689614379496269060666222361573495466858156661162968477497540094231334652715587073018125722954922287773296242816034800040491763372705130518966650621737768271121632941627860686936653661738180558669472474484078484250611968533048613479106575741652151857206557648277768563652819922708616573785251819843741207617384598262855946550941843473759352117019618913590327108457132085512431074133465177308761044642001370573705709221231570366493040868717218357365062426831801476463138066116196697968958430384053423367918772716940604616876354309643094332396840054850324556653815952798913550500724228575988465638064394696578901947863056476726403806542128443489195379139056867437449389674121163126109867492122529482211131451860921277210759146290968876604920280920438552447854782788150144910239751267097306930017911765478130847165736370079863009299213304082370580327203275998425453110169665257222360710842630288861343520708743265121671180825520716913441651436566036555925233988912691431537921738933473188108870774662705262127759326199350852621587573308953108658805315663083834377999815068156402697871716541978280810226372829831146670570036038703077202983995333780018346206029811155044478555126863624622247460367616648324709296589224832322292049695306867974930796628584935879044209471551122411809469044311370119856358782650406975500869598884454395043878138468578403691822352334863901865711316699396387375856666092950018915864493802791738644023425156995730160593914854215091484654737879688778565853518228834952058094650153404437990962062394709433213156805027961540904338099231198867996180026410204940908015452988016404255173473822790982944378548732471123363037711978459968384185536260750148053286185239086370728357596580334414851680856514386509051836797984321901062743467377473499294430243246959960960114075136056189950297307207911318542656339181450404762448137732169902226412512017373697654565123631118325379611477828295832368789358941176848256429694914202864814362215672178933716175238325008254368627073611325834921823175429172349202623610205716471515530538066786255857744462868074844266088764482640724573745516100477658627105586402064486568007618958358595975536808939639486028432741921464578302606353197525498192310217552213584024831818495138110334122051788001776677913722986096712918829398017941614369400004811933345972408819588045288186702922761115093985353643757716966098645978389831818314248790736676204353620411995730236979211254071151892438826868360669175913240500096174306605092980536211745818375007665653600617000265922407814295603149852095746938713636879171775426440878628933315278666424617136139539949710992300986869499198954420001101420395348686377599889910167482940270015556074692082891440396351597025926307879411353382687010977297566010929482361916078288043713117289637008589530221325066151316693502736320477445120702600644471023549560198675917711798089258180776099111947802228686594277733266997811156545479094751925311171681389243392729123883954158267855033059711076909166725917634188348692604860000655321693993836868394941199187220314487180307921225786033445451902866261612348391652887841909142260707177760335603556631223178240372962238884931010246441885727241741083003540902419650528000774747285190498920866124001569908512429058195602323033839929210006229047727990457224302113784568027298814322722400372961222165068093092824644087062826382533780298202426514017045022672605174025106117643496311768707278130923158434079597369702797530316120919552615848765192138738920914309845900829016793990115383468800886959438245302157415204301686756714780322201023912866419123024424730746446678856114595394687974603991442348021387165265499540365919546965723322720528261707610253783858560652308515709477654115666807650086797661194988011532607300380159780512697409480082969318042425817157579278338658274582087425503219460706898777387718634840460575716761480469001818599362572894710566690373921562073123067768227459902852546566152588353950552746926793175390659415431187720528390073051155325655818337447050659626708966256606619451325579244220337614529698215547998514639439936668629829181365174546880016321039392154445261079552885063459714676499345055712184830757182303422652982738578777799273232311413617277334763581493902291520522688287943043586682775393635783490565626772062950168815001360306618883051043114234829504640216386704793895667415804650577364350048749379535851115726130155504769526061086069871169107169430685348387974197355383194750108651560356662208879142484970241757929155297285586526092827030741823120290800316913925027370033689819627133800232224712135148219260932914543763305034507261942493159999581810831642682734504014966291717928154298048067044755593277605564895933489857776743011444452426121948052315977351506995405747064570956988249101264400114619465048470203000453015617202263887577448572514640159560059972039042374039352512887028505048530018547138694947209345871338991029935212097909721420620130227870820239366511535607909501445068171019193697975312554936500221085128464417038982319328754155398326201853743690997934327724571370870878785241235969614106076288511762530824627331239177886954198163828660120493217158250613972058063307573678308543027838617795265815658495137974526398188412609923174933932824181219413390596240842737810136812943348141746295725978526239184815557526178656948284926037033445071500014807636901567613445088710115295013272228008725624255456003024765090876934850594655848249966418082450795724622478256478911959584390206899787647151205142014569614841308481923157622573485154060076871239553657352326929155087566679629223997134827512470267226303753244582478997310319636033577308523764596814762970838921194229855308332654501553615694410344110892529217281697735445271853328807266791652984009256040547659894624990783393464195244734991573700825165859203516447199383189722478177502626251143026727042989123235189960958843932010977189865051525205797639841582678158081931290449852183456431373410995907916825178187222825382489053667449379691096371873822802335446553716354832222835615676039512257679605171615436727598734781126275684061327385907121633847634178803855350707726758147213271291730459536356307777499310690033906386715048104239060690280681966088977778635643361807564544394342079204945511417112205698190565427613985969988760643788801358769943461540051354882968336170242444063636701896665578768085930478555702526305590899075000561688406050761615168430509553799097914179333058054314054794975717615233790171092016531253166136139119697209954275120496086777053657664351337261420366742731935077154933944907853899376990707105687846507305524072668443895047057276368938894551765819688340325623334776269743854176609568673829386773458151349403585273990440139387981239213891605845397623562024222636682511107854997536294213761535396999275267307377492457515577892744569095548096201536936102484791034737727947126043474945014245363655820044132301218593087998987939842991128637433993182520174313925044905218793736588719277070812003888514721932686740669732106129760074371113569157531605577765392204257705662227955438767706359730867217057093638898176448660756133523555028623117193933124703811377507706791397533869938724697182079171956399588777180462272308663748374602335621298377616960748078669194328059028529681876041406869256593368520794657623755023627078842245789869496355450043242171238883275463422230122117761483205687892925517148882811842001340445278973551612974707379851648067508757313451776900704977821038673061525571378659700589286268436547313722589608576105441572248794807843889882826888979708368852898811895177024678870153954974662876157876376675348116097953329222964360236823692240422585695481492254319157183288816174052850058575338109961514986467150989862463176282278949088232757459742939729474257278803604446837096877022063969315803115692022099261998967178974154040101087658038952209010575701664332185720258068109979900813495226973647790239724409142636846081774725819652014543188412848446733160941202071792825886655300639642357886748578382877860753865628959636358246961214121415528231947328779228054639361793727547428627909141907794959811153782526734840480854109383088191762307831159436633718493049026322208283899747410825885666281057980500748755933696527001100459891848077185543571022335004820143888382947359389437019417813290303278400937016611927470330740237845669602700061160679046700118475408708121263917440977659512621156232407296519118707760996297595556839165915414775919018138940278804326276627183169960335552596511994936632783006090917537411279055678184499539092516781230679357133473725418436993196305700417069258645322810847555590777557789801609317229245739736842020161686753298555749209488547376267918465879481657876396942622211030066923922395607165850178062231001918711248573867677068503391631600711309763277764876403378735127995730975166083347090263058456150992743598893831948426601699428325192263250023509727285560073048874322664106376579661828581454041844006245841419064419663962351652615160262502322598415643888389721874470618066803037025731830602943977225601808298984505977137388530442972558358178986643202104501284661739862424349422482753469079698107894894293121962305861760099558653901066733363024019474333240089739167314086061364298300696624898384601659607887781484110970609153057656353045537577268213531572760425090635861885133119112314653391977533173294486477035910974105671152958740779940255771810020755960494309063971392851417301168564016229828734648008211107367244833960676121723610243967727609189599516293085571081572848542812514418982736012321368211272889719070610657801020208570237992663585792766538841530535209612034790653175833380403913953855983158655783239278284538255036843286836473715302568153470757004257066481213379487228984474396086796702182781424533960034665557045296764701075664123950911758300670612262758289729747239990061290660501547167747181738737671624647985560308048375812404329495748895976937853919141273824608070900151458367812816358849430309811255325489143846305570806312532569658421080864701393277484833594590287230619355617519522392763732904201283621282007691520081584209635801877076133977748424854188804813232931886884116813255142919153588504623107702309350602800431015150139477258254979865859315149800554481394384198129097245300815577453605443304243843434624291809788154060728712881771248932849068637253181408150391652785096921624226741706144362110513167863390740225582605993946424397750404210314538364123132496557313391520158919987252354605177900110311842908107479463626779673915313656080643594962203367808929289788874024015700635265809590102146165483512467731789458264279273539880122510975825559747484891577596033576774045918362294522736729082501806487180003426829337719544559291431729483297684773162125752070683117263194306434978226565923979522088374955563463315025490460598740711221018583689351785376212271735358714493582229841484955855065907390304198106766611605704890967464872656549289447497602261743657355428862380253480082336943721846452894772987586953235812221761210806949051510406518359418628572789294983764524182046233623795057692178940466855711729989256164275819269055190767295791983697730130097716592841865108799134515327444326403976681071543919842543369845750534996623321916000807019905192016527502027613553421551052331813869042727283596273310728912207889513100973488529117038456112442047443874730413958157964018130783794236508878729024124642451861499414299675617030257351236364870061799281763256652671251502104040835163092152195978547576991620685180007991298243450752994813670678587433038606676335207648499381526048580061556768323283226248923891793035981636072329522798482113624674093139809297351399321205937667234334598867186910251328057201773370051419525322026267217053885412608287786554807514340445645748597797314359797404962459292334674902457471924710068570061770132022885106915497697747224375586377211311044376249865761052893385450114719880868472164263143254186082675821386679224141990364632730659385357609003749707715072861697207659205815310123319899828721806812644511902103113615797844066927867530505161045680620136959216052975687747011007582219021183282397733837744859839650725417726583140336566845269563315542311882940251153403488483683273843819098799808897017157940986813961067211925412020153963029996556265565389957156379720884835769294622411773128472147287360906420296496075668910632921547724472551305319236731012968848101982929306073519484962292231561232250248367291296466137191591998238667497742383192827036498922271026346669952642782862829573563530054388746638746574470279546738739708502523679781948721529144255696659840177915927525295489437395243005477830903859058391362377955907669233105090853162877131901622334321021205071708688411368918608889381576596706495802936234872675387392788273705029441674377696349453957199063865563648645645273555970737180764468753855494638350745019691733751661319470624296473278229885345885086200241979313211700793608458467496042491917531735711841293876213463720032989108098953833084036438448942002350383775268315814937030469984994871072669506928186578284819024750438637679691705871837771970453438242198649536805786224799769915486778625539678478328673579886721718173694628259562265990505905163619171047671630876575978544075540908319167816453440719720542296108947641318554686202986737794489499838669414745286407358331862452449340176889546670928710198286887288800899472758033086354312743556679669873717298982308997042206181147659080410508003167677449301292678236319625682605615714786706983950312095892528104793043503575431004690895372405499285713234007414190738948990514482550729734102399364783987511301221886600103622981259852948018895916406560184985056339770641137182259108928186766711271369096854512077935034276624023525705322667069990506442375513098338573766487547717691215657515155736659910037260306970930326875398674302045565554828886976633365616525434107435405909218199284647465126237363559322530651863119855807095132708199006827023568228664083854015155022555584959091254409210592982414137910236857839896206041722058716617938295824994278390343617410071508321298621120087835755195073576311622149174484031452974114194825596089945764756012620602115783396441057304652468011386400870255736332827114151585816257945768367618460777027563732123624067242266854868510298673099412580247991716033562198316457126761252813882259975144508687694069887505102878446964172651462036713829998809015848605869977546169826671092044001443373402767379157071285711274901641296627048091886805691765263451728060316779195623343021999158235450885823487981198812761113913306989190275719969561974068873234046201532809059548914491882147354828759947196454395696634801252798367293466611214919954807219849316727612371297757031650692370560697906076429242818926897307415403439490488221646951710157609977998796287341599394007711710316302104010178104680664023701766135081463470764573618336432593943734572888610337275390517173182378044444146882704269542816942068634179661372190385609837922638064665752774718520064107479785550571991778269601005005525124534384838434684612012044540963462578974065196602843853194373816702542551807264703202348860605632904678639528241719139786545953114026750645876779260051119298001485011792502922405896702649321371800306543066958973650648413672238923757159609333297412881719431118744022426957136959908620089503631333451693543917657821909837567250656429095115071011037080597813687952980419919766664204784031715737232457257040657025766522830580592665517987172865357162809048429684226625595108984983668765740571930201336907156486431225248647468427207787229628301514259468048655881507810544346748694645145481568698557914147193015255513070092679202386767134590919628251375489951465508860538099542676092931524927966899294340611743162570545721137523990953112964365989041150274430208872991140388989139591334145105252249660431776319694207534545123787066464965399379778965229513017052709831466124769472137363899761401683797931844548582176077612927188171237349464812717758835106513781665012580700370185365995336340068729365498089282177960374888514643251941947347811900517210284152980573621911829039150663033252169928098428065090217320141559488298330478628622225214554898456169187769802453002391967199413790574300934765358055050817627792507816466239204045016206761894280967484675886100503960131428622433925145330005335645901869131658292642477649597690227258007045864884313586235728016127122006186001710195497493830383804991381614741353635477365356347936224734208733158116950251592287991776659815025656048124091145316826604468191263067143641741333945638570773720292736265829962978273220453201877381280211271767909930682091340377311398162548845414969242224167079524382928169488454786837594643698549535360263144087463749855022367582903183390023480632196167096875880556667179392544463457224620666042304000435395598864955484576736590862122221609494129989984924766044642492742325595448776398529157959044318571243288238118116639243542934670677086517978932376965509540440070342139920216088061068221882358172694120795058013914954280096504178974987130925741569236681238856197588801376054778787062633820439253127961216968876130341137328142363802661461613691641681535391127502568319604595880522343473125000089045199113553823695111616718034359436060535909804194307773553764982861874787529120557108683930529556625186392389071397215274189316893520547556741465800778616505000421556978454650171514085388978615580512991693379531505726084682088369103352618448062542474905239856477062148336890954774017953602128852038897477537017294651113705614508639985116215571434384259981209457861426178610835520068961829381489657043022616029157234495480094361212904318116930891346456960177053608761567418490294602777710224523895988017873837785706101420635378485704876186531485164241108077671591936941208129943924305299939784972961139389582584355735160673869568910783697252759915113345378116893805182507783549919331504812457508408989542660734703599575012632520430019998337379971570185605780923047823248448438395120718514065349524408857763649956503385640015267485389108414781730216986921140094280573349620472597209312857899265691159582577721703679482727485899100418652877779941354218934061796540780035220364110006491427113863991004759405516233060817217969547155670786795786359272892910193862998177144933477244818910540168711605277579829716759723800053065147958990091990926970809945162069593701353322634255395964467654564845244918625763584344951664734035804772252753812470868220860534071375506357154967218489447726277777138164700591436263994369480769026110264878719285972373563550299715588830287961641990163941011510541528385791972907219591474260935029074544074590809406484197379211714156884560020356135611885475369016665179415568692883107956052237174891240709810522195317815296149105696925743253978916059546440102721816064517111028668008246446384972923810357485962546195006285908892775195655853344069446571100170218019304989073191197626293167565706272021976260976778585286810192717597889625675178365177723924202716428327693965995996559857813347965542172479366861809584755062202396220705152784808284839341036265407269378548650282362748117436020701091849592134570296493826786597621486649962101599849136784543054731790450492715816302536480658625143354667991176765750547155737917189424381379755252020248386163370192476368233156857348130390442702800186218635114487895004227190869727770895497953652458161195456697206848423742959601748687169174949931295795934345228848679547204168511781194363405266501824907871987457157005848461748450545936503477306748229544821324424579700202625487604669034219956594099703561630961186690503828344922500957718424796577929451994559396249160140462057738438482319587400815275317222703308523539694424988212250262236578418454985226836728530380496644331277370985189582109779975266601799159791329773859271491969231230287910501968472700142958123207860327486130774250351033373202583835517356584150368170768730185055908717619116285446412545987197451966743508010292981509467355102390568091081457754125230624781238397750689037762854713288705109103206060713244645817494103105001037631217158842070936127511173563593171373442350113728192691864051881908404696121230692855697035220144617637832535276363532292264227683835779057027153890147263803092373752211278856843379170492291099986688944262880159692741264903575596007221935081366845334461271249942928039460404734683594938512951849363946198227532286115308608355713419349108153977451541784254576436947495019861423801855475323092052018322835198966802140926563976231377875991960140777380253678094526401002598237925054389696539307630942310305973649025398830038479847115005517905230037702767891446838247650173906705369152970725534858713842451788158055407986815522207416945212759698280140781064161290274471582372518024434537862060084156978271332695138773972626126237205231005508655033865910334862667158335737192145200391730935798221875159929533356058672194662041535854053340483226773194772265555920376784692589962735646886388033446814282536948492606966798388200481135444271375365614083135240663136924238674510736734267173646966662963778179662139557739265199040776409932004734199970482677522056781429628417737590623481266735556479526448350662753287982743205043646428811678801298770923028764306223944779024093775381708505672358355716356111683606998493924046377900057062347356541452495208160633668255984560168897052809122199003328525695417379965375713914144476183593099037136886461931161590287321741874398021632084166691425689539295562517171368330090891071447087012286732179674817864767705315616205123299217549361263900840318686196441569078959331570582385461322847062171172454126302274394590341367369500378585809991047126066927653664949345226272180187774151203476294165226120781301854180452698503773876888502480334845615199796237578082291549880243959086349294455990046939536630238296603719943550825049334633309603797543470494902565840926764310566834736345812297185354695461325043517422892934634780753084151869841915892800817487167359222090061568051076030321396303290369263354737883553992940352706045308439389178074618750909013776241383573197014075366913422668766765080163635300638163314579803759989301613532734753364088910289038690706553798087206326650873511522301844551458458003823673553022062581528863834091930683191154192964818634905637851104689062722073368843293652759556634020898643562430981688824231878341525571273173069518485979305263256372969174449061497996279985748693032881970185049532019849710160496156576779084162341350918672167240829480872357280081999502991889535353990735008040773351582118488263197147421734048181212963336186145668485938847337658622882959871536606783381176445167870289596748610000470170405481756317131869115108127446036109550757439942316816255865535444768757046949125944999275022098020479475154347832331386992594385432206156886699679849432541552543110299059081006347178664310096376491269179862450586480711784595343057296985182688317783888393173767629207382756227915230763093427439090321346416584765889737360656582739092624242020172412371852604156014096718250593581952211933160677071961650260140717681485358789794729576647955895661078954298533054179576324374510664105566565043155607489656344507034967755961194154014118308197848147768693081406386792801227899243816909043797340830674171272884966697334831371235764391166193508858953957872594434510451719886690167395642019543702891422168298855910469837611666365117082862927936780166971628631210090330644210222205735410823646803385053377414373950793133073176228619990705908384242245417796132499555925749442662005378396271154602223471075892526013578279489897597098717777364539019685249946885969838694968230388240924657568185601138416945668631974673285822156813073116191009243305072811248925586323004967115825260277847965306015507472621808159695930389294192375465391679267163930650085166088763087400524529085578789045336676245685462467141545292448872270901257333377496109930191434820449978643202705027663814913068431809227021768692848876426927556872629603197005856398132001952262934351770265676369714334579772604977532033741372082504012631543352013382054080662578482217429762323743606539066149994809926958127751561879200349599814843222152257404848342193729412160759235392647293338302425486790547585909567748861703126824272381032972183350036144394234076153663190310520861657827291391797408235945072920418052004159389317695475030950923663743651315132462603280200612629095263855053801543335261860450344827321436066613576495423087562488940398169238606028377163313599292196980538365474392047268663229831996120262209100627167034476660410707393553639119699148700224997696201455871108343675600018059715835835827330207217050318153536272932090053390994065389034515615893153839706029645631896162695457776352969731002484105921402567008443611544805961701850633273076350692998960678880872708794683480609769500598721932694315646916370103556101632647781224800710956989871377099153432951640993397253494206533476425086013560805051752464119492830890693716857526076882129672214008291012418956241702692197881510553336055695708987621204798146437286007448214215645656885665281938411411591069761521387717206204441414233915721104985644295773744071939419690328870483373436479474630201696486107542626620446465220953318929729064219003939967954652518265096893840414141038240975335384124964338297642596766086711894093055418445516902311654498163708376360642377982464626681137368238261466586049933984089212909326910968890490217778120814360888280494144941687353960932675734448511038256922165790277116901936484596038257303661011503721792947900739679216142699327873826078959528049242589498806829949059038797599083940057707519260894653677412113706221257083103326175958955015145258670402506957580015786580600163366232546592405485098226927076885796586976240448544710851983359647073189496716435909458698820074271661126549685288701902556389538658720244229317106711721170898567715293332386473839358045182018825700443965607843128596782586668030171697952341385028580659755838347830250061742966207853694167651891301300189874706441800788089447196222631394294231371344943761181664238095434246433339219848548856378526575409094865195799245172887574966200469001315576596356396304641558457954804062650918520235386648337519268642103529129672102744527535885494957041248332392667054894941414763615618992240949832031676629521347019339853155103414209261804725543830936714492099293585651020418940832332864048854214893156420720623991358706935728079382414810610048237755414654173639072446127235386010031666715235010799602538338368878206178605515998244557831326105632820099863177011898105795376210991275593738909101880434730424606673569441084088024640128723932821577947383149315674342420657184583115620140995991124637469041607747671631711283301794981050085769827496120024445743315213098704856981276372267280423920378664210786690545736707517122999789267093143062542585446989123848826907409116477134967173446669740146616343776886268236357803672740134940366426676800425173523887011776529293166472064882290890425726167378510737924367208151317376902003305105870017449776988779773808545324919866012150292609292811788946571716746194691649226090333467833591592691972393726803266452265315985300009181209702657073681806585718814976109569881867411941855057085829002055913918671834056563091667431919718361788871633167291797743455229326101700829165670313112488645315871392501667582430193910403225989314523960639757893728360124793754236134606027170254270658044096587846250641879888810854643355153102144404525275507911340119435384325155247331766762697625448536705888696195518498143900349830319748706756540120368804242390206352127095990863531362504322044806244865032273337695923319426161971730241804636648387055294198248451181464867356957902007688938803194478534917624763010513378810416543925940641091014256517464736621387571288354169906448197012765490992469225572420292629813482982886122322957430724105327055011318578465310620787372149687483263884598624197974951443445116380587173653317131302481000604699979667257573045843937729855355511676727638754229769504949912857335571940226366820930852126323132399655201255065361471610666373395033768812916553276297885328117727454356501583108541495742624270485453285974426834747256289447723945166518671249156641947488509303683713526522680197621522442292248817697336435176938595691549265198269304721559130727894966053832833717793329735483537432379005595040932472018439763592997839759617411017981211234921314202069157927359810789534463230673142401607062594246109221662898851000869081276041590572648646758854008288190360221615045791532756139941849884333049872502978770011352977386831973974505902126165280117195147233508467156946513389091072105602136166569263885941912318254775019448282730100580545853533049798540624084281896449072618954994444019098937297696996072723049696415273532666420666401267718645797506741734664441502797443772923448336492400323787431404238730219916170585195438014539831855114918017673816929021081954914904024553744311069667938202815610361268683871118061399473734584889840371304216866631625197355201214117678983599177785187842191100096105945824751793825382922381878362540045591957086010284128079546463448663377092121347980338061947801482473397721782861512420304530682358363167053068097493587306937748908077760488079267257753849269275263194872644413262819651773437338301551268175436063226482630609117846445931697261889674066463593316924501147802021210197349470954534729434480670656248560361803408962641285545301506758613548659381689476525317971021129582549244146580255816528550414385998582940866156468939040880336805585696305321073291970488021365162608783286532164286306019753653527323608746003255904327989211181596307386846791572507268796749604389315526319421684041251074021294633720596797663222611288344100665388919950367122613994808413967976190640858341285994785981585264898937953309117743851368511112963161562532128999092708043156054226933628747423714167421062415374800618504700809764625084570562646870791522702971716445881178540826807049783756786286514857716543604998101735332386983037443119782888688088497152602560968319809588228039237805033745778901542639843706802339015941676048352814819833977898486671551716113440861499579609963171116239133340491712361715939485147763601803249947706729372680873710733789765580271284773349442976104246404550658578784567733989145741210585716318399145543907644035982442165040990108700930303048432534200439282273507441603470803345978063696414869770219803053685003031061144672220076046708024540696945494448291069654888942366379852132571409968889510092311266573316421995782131744753054547007769604880439926102877277396978302611160566644592533642509476667894215264247216076485187056900653992052009434909679557166430095060660132729138941005151294058062308995560711093478051315510887680822526201874585285087588154724833980617559579839143072796661557632655748474259809110809559833659035630279202279430132942347379316317193367199641739441930847188290586347065634211822499818356912734500089112447386898845250763002954887674364972488682513961284716367847941967550909830751436643975187147259302068853567764497599078676712105898974245640295543030387202058431354976377880781283075147044385136973628759974361415748102343754367427641966511849995456128367748265981744563489570934279572699297543966389715049948948843920331835861061360967424968308161818474014856634687543675363243463773690021679433734703185779768024314664238796556801209357889176931838625219372561634382624793864115001929747084316640224972713754906345406609192255938028683166155957291404376216793177691980247181257691655875409542992075751609981054470002456247619369537426417860790926956497283835557908910930140999638132363239756024134870573445298900074277848291677467397333883770479218342910957626344013918420244755629229276462704132497717660324734452805985816269107218224995719452051455688184473480905352272015136230342779772757956969222650038565237601032571602198667645471057902278933735324599071318173798863096080708842531215434283591391503544455661566215987264510728013716771542929796942936400673821993708373345829408775581417748319565290406213970008105604600140098914879959218022735615351177803421654775129192294503949160437097353459012152551118156223888477238112046578207321302488475795812754995276300053995299893618727563970052545950031339601214282884124555972948816014201782772564803078051546161163670832278971420664635813252209786828598182017171308004375495466906783441287630540357085408371399769254337715501457567884593084539400662681064558505814064189150757102711760612731139582373284922550927796401880308817132495370570801108679482349225151431238441427387427813776549421065934683629445143083814296478771644339299934880443849555904096844526323644788351708386399085447464102380306576944855953845123849952321125129754935490061843345346565796047378051675761068548002078590163544435087676196767733336446048490834951301181635809393541494070310716055827266071688635699252771847324396285260458300112777917284230121738618553539339345043450338187591205439531677866026275983482332388942633683410425814576478740751163378767815446532020006451557076760774248064284833616103422495336380128962725133702151395236007872319644039076408972746333973015209946074317467887847067396200380710495228823756099317479875778603344896398488493721973761332366478244515692572994717532546859694311885324922349556126071038767183352774904845970254696931153767777323952659641835102377284085832585355594832558553008142145033071725477616142918214207510412401839796246600709164699804691210982330733587138374151525456677327876121937707757923902862798018656953983443345338990629877949624879358902893174560793050913436170969470134976852742256167375504362999308081073539125017986494107603675316542440862794552693016009874879539487477761135693473866885661295450046184783949808819644785140858554423647537100317235473028038379846548696638144092284299712161815115478680067588432084274584606444600619522972209525921694699216937801115927692893523314585336601719314429311067191711501966795063599200824833273524753605618212191971909248799856750251464700029210183435390416373475876478743510638336125491561692443592561170029852088430603260166001423324693062838211739856402991822036652187461466220908841448649055547860900975311818533329089452731259608603537875456448480550097799490323338772601977225507102275670257141463943279661633592210419905754768651040903677573034704244362256371209485285066026193562625467480481007155397881944195530165778460714761300843538184049810061404181639900657225495580847349946350115132770706387883994253616859954588726960006263654129812346193433328841877467337289747249784240830316145840998179995163349573992089716429878369077595068183753561428813618773360644389358190071676021062176012286647623548916690675970288004786530865622540523859854603636369693967195510423173915841259806063744816789946330792084372345798497074922371471120050130419867726243607741725000126292825995204787685428963877260944094146606269480243639444615904641276993826759074273358447846753460224222268001610864509047063740379488090872529858321223522752676641447205822964269065541756600103480885423639537924619425560823954807635955519829613553323560443318917106323470766293586028597426704513785016718861574148262238576042393082129403972882611407314996943674455359223104077891128626427227639061704170597627268195525242632154669968314757791699698831490031037240891383641339534841844028146874769266499964985761608328793026717580106459999770327524840062500280234074523359331617023008166160961032514772238265836016958931176647178731092307868330478698817237221019262336888360620974017498910586017081635454038522697520386385876172135571318106030016428867287446963775106531500272850619346281181993150453805437682109917247605774122649999835667739020818289557007294877825429088600267314725702499602991876549845726765259964889018761364002184492336305112435421574366531888401240556276070492722437845711059093370932220479025822506068849976652955392168140291383416906532274314880509724968683430729389236824182925413384375757089570299409947036929040729339905436652803335980203340209272874042270190791194056713832784215173553814424864306426795551774587898816226843253628780821435011562494201444369624805311072857423652002439251835120847239104420655989075611985079049982797689877479132424310838676258712168978044718500379125877780546246066532476887765735822393529014984755656681007906443286464245481019030879257371160326201315339833213665410663499754419371882580856949584693896656768274852502799247470541485807835075683016101845767261876177870516490163785179168366204315971961346199517782176775390762463037898893127765377679425048472684436067859451584300293110795382990694214171730855815955544510436146535529786480714969604989410192012165278037722845835227365444671650567983876298151522021074511563217884685130058316820435078546048732888895761119757738828305907032485967492693718909499654112309508231424250254275761461606008292370748431698706422954162360581155247607267387299385697042242829373165696901208503692275870737723818510307930343308228350437048230027089730243289483681449302222286806503498044199692717598312589647405729992933793354373061022783427881717408766453266735774678417617030900694973333914665159617037607279996633065560946126335256584397104028261765587641263104192091860093208444984643612748763420795774446489556678531643416952087548524145521509685554396868638131155584279895463108223388831674230395923518569353837338099373058883185238690813096192817933025290368316000649995318848398155578115591467117525277462706963150784509142361480513106048526735005147596732315420123286237387032971052880460454866174205187314388068239222848756288030210983393262026275334507587450511541396082184939355979069549128483341750358587047073090786827440622627110866253809770007789384274011459893348281605887475076315559755527435907748970623794409964846188207973572685077836493405238288743647074929563237948945713387775199478538765934556678056763243704738154046024067769166940519026653628617689261983997863889383792131528334783542182563665074096137315739440164659969636367106346994269306126750731433753871701424282456357467439313233632231949094414477780821177794569885211217743812102937592393265959096478463138421364389105925483531604214046340523220780549084981790325154577396018026001858833373721813201623482691366967300042506912453584530426847686008640512895752434911579191831262125480703445546098886038023496935175838277890076683061525198793035176452688763049663698874618749343988454398711201226682651710038663759407149569165204353084996961703984533408102483623643623088938553734014372643694409106777254171418586972420942193324155913450649803947162527647257523614549482296100362223038199144111463634095549114849548598736405618808292410913398662825508822596082505520494217099421634191809942724880507477045503503410049780678813780498079829615447194871390514067361713331120160582693361406544555959655000454163132153420427979533840542436445879611180795476558067274893343313619378546828934183288883476248000359054070474333965690319664842960926546922875521987377356582863021236778544774187093601191296392721332245393872153861532616500890102890699059353724322196524524985050462853796932022680439416472412136305342886529586296651042867443051207730843715133884956312522870192086440441151378127093489447196112071175405449600791197389622538045479255145435232376237086088591356308904363932380557538458335587343263549086755082708174270642775685462508863417925066897197057736771375112024876507338904500827675727138966719289065693165761586167331928393714254097697088562348778009555228847955474315806464261267980255479553950893725023114155319589196334525513850373001477745622957445398623395751531313223793731788203705876059520472466163323489410453245594424285937981593809128134422311182014820308615372399025638507486201865881541460149467129250962277146604165321934020630134065267219484850150193324730480916997308972952351366669410373549737225327331844527758629051319794421711195555581763623122304904572842289287552632664219734581964025222893772720714556509585812037830936745633968305741384906326980980956653666620018634513276990675955980397890783970772768634560145926480313788231111082155718845655807644113560781565143839956415322778701344412224435438199484493929681898737169066964920984733502883801269066024809327611318106535584741240384599501887844945182086012223135796866567391688833323470256512139973338060263188070140280551362545560696753911250138300348778486705151132348575313554888717682290679715886827743609434482199321975794415125367276427497483430980944234402461972027460994034869667939997299857458184150911274036864527871447706263872383493114506101460469633194764919837808239794959738387384631570295926302241362410498159090664751706247364907195892954930704706915805743205269216754148975422739195031360762156054706201880178143159806312459444018554994200417627799024249358606138518074534873098734243393053613684689953783348096222214307129922668934170110744371629291194410784587001458149703260158297204403787877544857220543947887070308625594994930709210570591295214782867202811075917358647752490721800389261669179309589503510972116719936647568664618206500098764834925073240860758156548785413164551377148274327191727840207987204950455526044715621855050200251849597242712499725980138914873576037410481182630769473238084021182993247027215100731929901444597488247665999816054995709797662839280855558003882595653337808398857532772548849643420406772952912101885101442905173515332621008685953756775637709592062987491259299575870261154644468887613971865878492344252265386200709594765524568669022896208126872045285460370455746551552736061763940342430571590065241444060170480092250559220827876733205899148974420115454428681540430181696967242262229166669761513188907463642558596217303818623477732753610986815584697706103234676956759218525331209467962200016570624027250366092072684406662553835831689227909457082183922208055574413570949624010015083489062436681733855700864159220800408172039826174605989416078901385052356424926067783821462853605693860306118341703292458816574813851382306366708696740855372767732135885633152607083554412781094163053844707893880931457496885677586823178362156399357069416705713284406481395185330029346956980408659577880116530626075657551412969158130125076573823938524067403148983191772141567047469047441961236290288216258604553121298711691607677822815086075998810637938060400175548925894008411774133227685723616727172269196839502434357986690079107018978365024343272150661349871834655766668344012039010795915072359312141420664588385603150027766560881163107778577925891686129803597437264633223512615413305535349333605570820340660717889262855320765581110465973192235575873260316993689419763824672336114113847182085025403484691772202711866196435427186589203165732627373720453666141568601410722499648105903531542197921784286406161145209636129108927733946714109279613971640679136032284851092256373330004012389384927604703026394495637335812958902581738720691179148604200522091503986666620243831816996770826636969837126296308937367170818273731340225429297524771412182230655332355068102827218742694245328115077922211862049748161988816419952067057993206004999671767570305061816011873757972632170591196838121373318600256804128161217760692749313566279239951728183215464970217639170573171595566035197126994755398449509991415009138193248493816652380699356576097940958917068196816575345361188756315821489197656636917871890433343426354114291037193341540671311267302560218919183283574575278142631313284920474007196639572035721769706656741890153156071171614761664507006115420686047227476600336608385061221054022872634696814388139576301669341584241666021689306844749850111482762865901653320190892388303361091345707767819896914718668234132543231689009686429464321571677554936505120409967521313475765575055994238438617632356803299917025420377160412790701158255841782633458679428740418793326074592073740440736502299567483413752886497354000222005384741226780849821416076400388116560682322229841824093607620948921249165318556419261506705126877630531490779619811366099625380303653502821883467036852951951623612826296146922498779547590144857305083668792990151280583452462900151223918255027455069305822763547618094356738400403567771441101823018258340614169440370122126466789964841218657239867775108121346863656716322226555675271885534095063846285450075450632408471487710788174733608071591591282659072579263091567469407914443769436554471288551676225150220131401324438117224715033479265911590046607131438179743133033131573603982604577853116701510466035288624538524082746412571756187471968384079352800093508483903193044312221464130616754502471909629666904482110460712102711935203534248292970244274757449505951514735807153461975844420515878956063534825509104416969052498938364114811631199003440113781353590487382520678939986369873239468491676054849826823055886906933504699059962885085747927574200680806784312803628057305629327245423114597235744889143884763156226448080252174454731252030126511121381302327304383498227327125236858457963013714962053935285932316155080549157409871726867671410296890756370964370574273277794286699490575010938129151530639684269559285101167418427630667964938338093929429601583379032767298526143532934172690090114796217492395939731716663033796550039553972311872831214230695360736344438410158687008777600417592650705774035046095527705654579607158158991704557732156264048134777991574069837271400094980234147439712219073920928688413834538456123157046367661655322145414001742330079191652195804706389923907324283030823611960122922832340779001777316664057144598192649657445467452067577984344474585648483246002621263131002991117586056067883547370153861607426205469942952232944320623309603122534453816733961616462263876403538723160682418735607926731281577982936875823687212129768274137778439067895094834270578313222450349783988421512500462995594879669012404933951360317733149910263068273748919556677094223912553384289625073003124098840556241817134405484216741604570186843251138254394436857972338222759452846356763083524698508854726205534153505581278974724124659273592543346875468042529551353738618938394942801877836430902786905401314686055107726361872713233543996977910088347335631362886639427995333618448212694394404876536598884775980884585125856548907743085691789273125284431885640799264723779061469964612353868189953984599307093348442975335062884338674648796498380009291788099668558375334246309975577535171747629934533232926230061674127027072847677708480232909019054079799420430773423845935194105522938001033707945081496868904388400614058734542701733313761189453970138826162583991385853058653816351770035873913514505955830124989871712806610650942966914817048057392318492104139655452147696686258378110023065673136438067774609274429639210722567113770323224997425806001407634178251360460760099685678891047259035640074042363914103418702035788311248513143738863253926734542499240014452092376703927861500768581806826331683940360867644736920375856526492908259278529789789479535110665054961134464294011631088046241920967866646590537010770558177467477073883850569614566239492903188770488416431995751861297734988298478370877058921337439768098835744127253454203827031650249151625056595272005965112586997984437614939210947621733057613309090747031731386151185397624954711223999794527216629628039325230776049072538555409518243993764352492123048801038086698821557346133772950689700301401236819536944480042803462410981634055987987515741101982053723224694347595991507777213114403277536042216322649008548293404037890857379041886429784716496390099117419984739404341498145168223621285166850727797799297651659017384231079867504911376572137971980455955600071169016442410302474058330429063597390666399686120403437968133334060206983548903258379734648487677539808428026126974808371415564262010972338910592339243495172505418729431792013289094976807557595718042205124308849346815901522747303333636435854086668146648981754512738806248502594150911471653579188397019416830957247687165577287359237472979531041568537177216431741313566141782323225821084917345933751091920923317703118115336180668577087752239059657953779155274580636665870291526583720709247332769804037183873604682047529982234088278302177626340371997706093994943424403378172342699907603399588337833049353441902891638497868215253689421938228244966308706364208921904585466940904754017048823047272113408595387926046435020823522739880949175329606961999644110025672329679517140643892738003624803886079511762148803874846890638908162630539148336763102350743448818446627879210879463844646192900247593522187247499754075754017382366178368946920306917983760478353479453825398228623928534906447994640500632692695855676867112283872004019062407314947105098568416347828045404009060220019828495332810615503818318992104486991435158235173768368149987828136486950608492165424895512707026875750282345771331204039827024384296040621664205620659038879884630941903549186547493645292685860372743380427595406706662470721582230387405999019286386981091481400099094126377503920200454372071013976628525916518694350318769880048899019715700859713761735970786889316275155480276937024962981455644813607848670054687721545877537425787631853494036450376257745144335075523279714933641845843021445601473293264389428531374746883614556860818663529524707758378868341257060140446592798858785230362576880603560076376324421228880832563215176337844047098290311416756132515972191817875319501620174896356517697263758328323620383196232924557113826717485083923285539794992296701251612257089896404685772376321191238252051962000517080553188370139947182557695621960725534795956881977460577935959328754542308980083408774508198254199530711069788685673212629939825451505247274430966031675671709762947980486166651449374577091399894245318389879199032737031277209321602459055780722119103238852373180324865891456952376299615780153229253189059899179201529705650268315943023147569522956427635281485951973720439434180161928911050587139057835131839798598392624679393445321150870264909807012755458348308557258490555528884463557978031720465925223869613746502105919647990317641033905629694261345659351070809629310856235769807543530903238867477594985931531237011601673060225242281145793366540728399806171651285973306133817626906703408555465618365569298081540310046417037108590430895291185964971514659793054391621619616304556154899809887240476152276880008666073563543625728027410386976350582017575191832778494955659783405156623980752947078548882263691443151160421932335891539407553674295327268808354130024394887308908713091169747101417139579816612178889978558050897499796010967364084478499645928792729191802821582907529358314322681481493108225281437645890690045007806083152447103813294315190640506086492390692047189066427295016958763141732431042182130256689016783240841380987232060338785666452162866559880697710219934688529734915738346652625093058250792375774386901635856460166548785244959220574283875913774762009690808236919559292344516176623888426884049699605214223675868443713794028429261062586801983976593530321251352054401309372216675918388245862321769703734128922918325125849619658654921593839827158516251394004431377171715324546958797048989529980990576562288086432602558494263170268503120322242795084575138220748929951344891028882543120333767183569246287998245864963614120433131598616612030659464089161424675977900989217073555387941075865593299954157912042296148803559635992814559388439382858180090477108364273118216404800565872478859055043334923151555776658654360192977182145142812051500106306498926105112866863924101471466412626903369422772389274646153871818526671826680279258326507267425982643437522123710070341644055902578611541103609150822874058893588391202666243880964560179932400792924603708248466409474174447644048726021563259663074184165328750052658675839709321677251115783008598644676918864430058984602437402202777150485243800719330933792274227541417311169568346875792243317219826874623011138931342886817609773055671749492340930496138393006559587110759329331080755904329800049957225198807840723667689286103810025028617939374372667476216959366270600135235104717731179497900290713627589723872068455313167630436619025556642066537956218620074737653831518945091044863384598066539920208836499552341147690280861628922115191533866759580838867734486164558628066372148118598686765984460637824408190113890731599538970766208462858478640180559520617835285070396180867871922116713020049059963614876583410099072538418073861637323784514352059816562475893277812503489021234027735842202064883367537284859740562670119603519032298258588885331727866418893672658255998337194859689662485522687486670287672930560172953002701055144359431132612290883445756080825258044760753720599406302367325823712877092975154944853109014030645746735236770231366439892279049017357110929826189344928526466618961831880385284845844110767053622917425477240678358690591442013127409305466514817723819257978738716551725732927064832366935970039133710834874610678675563416180039254007719170837095850560478901585559011764207611627818720278530076641172758433164111893827573872363607149249527567730606040875202395875426465395416744463057893017056383271783979446941379106309114310475819221147959442789946702735427007376785025378631323930715847005710632208315180720862594914510123433993799724818338466560740793159035105371073955843028767275337634116450463388828272538502373310414977293607817629152800534606325668552232452875984022964405233518312965127022020882494666316195682302007255844136754612139899393386228769559238968697328029958922403349266964372465377004726664849819621902671508452004171108900616287030041773668863190145493647639551349506890230667613338129421958713241168488036719199942961970756265993770515776501892260428896060076632051791869830619076910257425240943178334001942490887305858248067471116447469106846470131413350371800579354305349234203978796727095925433258113709497577563736930851917707064479897520938538140792580458126368089698257737440195518880284764604466627421531254823889880554443596773590946373069112516096608783590562462790504809411997591351533332583619430843926150526294732032579091552464706031394687832585925109041429372327920645726925238117616233648532869921787037178955014242107424105406635899821270228970296380631617329855580164658183391618210224456982475300990459575207425300200651949896488084621202712484385511001930300714381596381671508233970198925603139506323236736985267349699130234349067502647869492147214721832332784214725306964517222047756864360304417988489390645492048581600017456012798511440782716976329250796939789195219090228012311290620512496978233977686396683202525281915147230760261635292805573484181442520981461928054635946071075311698547996064493143577581237466741942818825254613310744914754667312265967351604554245832936056762222460369381882514881934974778429169261538978227595451100351585295183754748237820739797511974474678048620375178960392307530278564489618281342314648647942933683418113481618660718862327923550289285485558704930996424772467812241308841827040527027034553116079680722322798710968174358695163963830926910129468913949921410428234767144842862913550468110923825137395174990842612192642945695994753085393359455102393835896839854724712773254283695435121142589587491882636924786174117891029240707170485950328052150504301738459921923278631069967713606011741322832439000853279889757774058404596752996603582334761388076314980951307897506619051247919867096549061210770334505972762910737055826289176978694184592429080329514909816932903948961810409714035803637441909956811863378699724631173788473981916715174424221140699240226185224039326228351547814966176636447777024829622084886966307069803198096265538528541266154404924860137183949376268537175782009578894618253030862706578472605918484139908135156070042356467828891926836951936184772427332270069430711855814095496825685637989072612688638019531087343397639149804968316977797365043932225057575058853287725132433586983401883242375898322082629956735125923837829120930593472750272005574750869997904721830535638890109212548025489611562049344839765540056584104995473770170749560829952423882570874584442804190529635233882053771012780474889563808638618125429904526326315480051639965938426292697082507693237136977060045588554626562152434033779794111025049179864543454545807051105137828604353604657205005263178099734372465226880432259494293806139340157670284631352698462515909662426088526487503946665393712108257740365902083107850520313175359952490884135979143651013244814356357221014856407245343377725853924364600114018186371483742465203392937718523681831383655361575916269688915499790600687546139570336573087888314350669740985592492442382581756801272206251354355571653423915011412760118913647581633645605969048028985470543495194569830477153277736381232571281603193628279544570825074316928269541960049341330096135925753980900041985052081896971459741994557756522941743759001831944491176352527337271603542944208599913112489551979738826280975997214933198271693312976087883036300654433589979156392244438633801469270115634913360128572515307196483112220642597572092557652607597599583349351254747356479467131886763687889221846170333155101529609570060252096241880575025284774135399605168020490018552296272464676445568720417309192080945691336938815830241613730930613000917389755241986025421144107843675438720207206106477405937544666118169135427341581234019393096210351251325735315553985770078173110209942399610740333882706324474985077961325546811046264931765132087562524792128441713714835779497931277485817662791745397712698621217799614728842056528807469522648402683004140407561162641516387262986746879330034626869125885223078235412796171885526557007665543308410481624878742126672453792279416069976143783549701001130576686740418827622391341316704486502693920580264384553012253814209900646343770443247357515039372164412147825421001282247940168185613660386567199179381435546879160767146510321224262436985557426941056636661250611861398144572774746622712086391971930635414122108702218366551118415518149505872469214355898966836362136260491836432081261370814259059750026190956877934584305911553514865280927809333735933537956323602172999017306189826516338444828631633610054314395764648206629490730979753289177478367875510490279073039724751950048004938011106129190898036010178414259745039232337070952847855131010415265260419454528536457345069312908302242151159469194503996901527204409710766007870094103644152065753477321204554307484259204167382825040881353290568278371531881598171529024991327194570024690665392398379534312088398895168518937541545890577227532674312778691781970375338252449326542536902160733878702144207302279762492332699905215547074098076279302796192235027105242088269549946932475144535922695987429939319374966896203722030211775517475195038890073733296272366520669371681711176433055741039681834047257199482372397486492086413978447450946946887694620739867182660256811404711647009826891866857422746931794011387448993764045751533227085317422199850824799878715416201666071817138628411020984710998657316843421581801783125075778240209167918778572086280194556213247188651465451123756881311700017242152658194212937351968096260930544486602790212268616547560104876019951987537445868163777423014812306292520371519304521222209854937989380730244810039713747523287909670138815451290293780621736101841583698825153544307675922925329351950997281384561127818221001973244940230237225312444689831078191821027952877114211337378138402826826241934315967366136858635271762807670528038975361006739044982007955950407325630777068691528326894305684692703205921912131062622457909431162095968635661467070621283828189512184483884575689928057755687590655105422424846655460249152115537150678802249552708414675443225579311132318405254226430547950567318995582390802279309551517941445743168533980025162998667522955456788231003697523328273464333667126904896151507704662408597505117096914732270261593926524811876326223945731733506064378459833539024759921307259929331469419013657300858470372372134709149287955475669753716259351581362437013207784811603974884631922139545909330095546864396290995035374452579784172202424179487431528797857889392667092584227341873936064225283218492387738744961815581954847713557228534118263702478932063920602999635563874555914714463754531212864382990645535474151992736516837206527565195830607772747076784024319864719272740025522119545362986015108493036796412089492280463802449027988755960910279831151271886351483280702128468250765715847826506781391980620393966053439136114694169209776125350374863859913420082671772162798469754800269553259168014079462953693841989382680550603650802360102224167934056081554420643130231730646566045356954296298654713878823745736691672291369935694457388548602211364099807362086816202542357670434595060007509238108323498747727288466660733977092307692979106452116733745324334897694537945515605729954926441366040118134299421342376488532730559543874607096863927122789026551328586007442190416643133304590208543145803326715382395748521701267630471793535291103961660384835847158030637331040928799965678023597643018916585326470980575879282392705951866274250271138079744643267705649465555663953964278467599377879107326090752963220304154666431190337968130747124705133595434256900394124746806827725893463430758639219419929664587859257232369562458249934911971879843471512085849911237150042501043463653731381802153136626415186902937826832132616482031963131759835608025771718723575499324015299101376055305830354768844642083229270189589727925332474528648764674776410852865343291784155861916505695508859732286173343616336917808166565270250493611999536174074383805799463861591909919155220462334269264674934112027483250729111389421542368778013164826307350858833052932385497310627842413899233456631616921411486467519184341032164482988967417603847956936388289028702404073186956889835617900792046484402395527018764414771684630233977475184765985593952977499629971257223287053121033570575069274753938577736967422418836561663143283314416775308972044261547657870409484489145594730179638866840915829360721703245570716620918592836397831844615282204838410546949412253293654345798429699204913912126468499668382467407211542348733752631884070577044244000350883870864930810837119312623488997322549546345945435726802812646960140209655762658075776318551790504740621285222514117169635681898288628902453658800353256362858956024441765399394281968036463166821624722380115752914516945688648632477909132556987712202197362790365064793136745494072157751193903848320109026335234818953183054083199821392856374761368363829614541964130269363983004757365395300570674430146809828423096611188347840794268382664591210007636522070200931421287552218417791596627742019949717013839584955167962597463732973640956698486394381329313438234357168334746844337147578188989642013980208132966854362088062298057677932440001123012505678604382682388902106942781051770826437112926967017285264115373633543161281212486148053434331055054193125368655016959999344832281233949124184148085205045379172727679862244691405575776923874949894012070234471724361769428249932263481551375001986483906467800801433772046129855897908335492705428147608199810277999289107450219211916221070111166684719081421295083429297680365965797535735698510834172487575760278747519579163377632466158153178422374787652742365296741395427271780683221762067942246765960555255507495197216146867097463178590500220241603368320964434064091505920748860260492923589700407737493769694323236645213384449222349941036939517984183944307394418879451343830131358574078471776443486699253310079587810542643965733057942856534420095503860423741783846138842510097320509094313058413101700443803492082146952288778823574436640409714170649564824554626863724551577590526407805174127985844530115707778541649829043202025023252214866779842555124681086884155948420579251557812159510052455179934037360847708449386871821145744559352069957072120010359567766018007371115683930738986287198533270482292306237403495278295082859047428891873692792251082764151410899727125767069793532378491966522124523569104640361887117182951509796132484962122393808525084117767544350820241273725616904673149587746683558537720696419236712875149142481697869025095065609810738107066127236822984455867333197574573786861527191328275912013718745107528050465724937244638917625623427426758157238905593028983467458588879576028279342149577407092938584924654653066581150007495787991261945665753331861980166673581913178864375343755533888959739227466067186310200853183221175177204952340008148355303406395257767076412831344371732574143430514905917824089510563537091334503724333190165769392632999100073825467527648100464946809926710079944331497213913127116374132940899034644336760828007270027082742090724918729808013274011187672627094889357104605997401469056787585161347170588207322705875928339732805031996447875538174790826009265909030874010076611548962264368078679849948697411268543739852475953733415316922351448874257099613145870205957304702055460716520709428519273093717980326871282754485175620289108969570280318024596112929252251653953342225475201357112927333592748250613848835885541316563374075707612749802558978014580205867692698194256439726220673342379455499520304821228569889010270558881572647931270727134510329924002872337147292425482616452791311093172255448621955257748724642685355294668487039324354111616595595429418366306598573191478779537960165887985579094670309582411962657109058976644729562030144297437714958039167482186473004777863839345360217597752438200103031529705531821427514832881039718950797290746602310547740290073201391241963889615551462508813934466607559256052461666678559269524795666085141759468104460977583012054610238057419978244709245556553822085844941765012977633508455435840294071785427621358309486235491137497168153689292893492178687928476355863560011677079041514693904631519744907051405654940611780074250897973272292655750934701823182090708589904681184572798680024328082476164615690233077704849177765518733673291168177433310925736355673768695317659923182308348179677024240512492935257249319440101555340747345271177694802363231756779185884867700363334882005540596009874589063958279294772051834585341514351217780313202441874837056664377361482220967156072833752346022759480582700230655001013654767750665697038988187562327592350621116517882871650938284150560437426444329359110759623218219272158025643855097684424714207582596916483137800715864270819200282560027562297367720295170408430509504107688327019523483019678508125132958186365482226729502682272681488459626661373077765592199316709638239917394580865618831409921402862622458823272156061762242773664421635634511564626989236421022788660348603368946379953924158268607790354944371052794093519757687969249289728166265055763247690370527569556460730776391689457604545604993791357482475636358667528505394297407417641133200453352775927817165316441159644516145027198320742659815989641402320484029123866917536230708138002665306701497635209093453416172766765575279135705038742483963690105657624554290772421036267586712003511088320124685881076815866284274164022630894936891999305548136644633917538049295064384343625111731444768491692682873401371714466510216600230978480935020835842086090376755973209426311394649915843904909811519839172209480833700137385576419587378647589464949447441525712072528849730605198658197576827099782236511397613521146142884821083363613186886620524160572835436299021664770661993766618816036804196987025824857488933605361120038458555541490275570028272465061710784546797564988704862904302337621715967289042613339529850782232727924911659504770557302438715620916190633488577339180240654610553606828459568617053592177769098348041831360114386917440405777035338148747862841027890819267143111142504860301720503818186378700271502715979399252137253892136520763136898422890917561310501387911295978417762782661074865680781115300207243456408911453944295433084526341293013261553911576923416133183795434112289550999605357055561001543822663958676470007626087121504436605634689619629925856957272562972367512861579135690527674682279812707350247334572662847220017880743074358222868694864914240750624888834321200653821281912292040269004617742608060912762463484138510560139461378216949838437655377378818585169541477744429054283362337720081578082359111780851788850759257176805816323500448991382547205712183558049795719415974893409613959638283604790008644699064542296687700154013712709740231927129224508958209748284546414996253943017604595045115937806100719326189614547832485165903019446202387972204378670835306844400712404043883499702766455195042788415919337125898982174913392705868621792752678788314114311432272391655192274181618682061638475414021568718158972749381938393047046966601706737819806052977082321172737042344014878526979944996292761683638837748583350084189440754248535846969889241748910962646341199049744448383290443675422192804526444859664886025614203420294248390021095866779140816864882641088333003443412894497402216537046951947279942151056283841205333146913318216309752134123147240183310271364460798473721872158221004899925241236184558526471943920182022009562713485477897412977808153028492342022790014900325159930533516477965017720251220684962870756370084957153044425201810561426379133391284477097681218669809436981347014155665322226198366042096253656143117743554715829368123322594083345868142234581618305685328459260031245232322770762815863829383789210625806258091201960625123023546323743015119806345939984789234745919710520054421553017247709486029375552987483428213862268015366168866501490134622142418500433448432907196824987318230024082259778087295450266229113365218246802263649348158709084024619447597181063226154275321623135176862592056539757385447896579772573532299789421172060265897466123244794463299284230000392936644834784923003217694759363742087348233724902584787543115842233926411767423914612297069788326725207473279373015076858799805927087276582133743454671687994312925238607356689213294026608911607169900264088577890286339518615960129167108397152038256646174800306479494848679642296154761008004495432936891584177772792037109297843567718868079858535792409991964523916209912583607880401852376373197331772037081655631426055928232598074752898336229193474553598346675289189292367854034723304769489835444828685733951700478222298524331409988780910636845925761366079445167503918869411791408961781668908514824614029162794137331087950317369321673487601912175798803688313809599238911315951433127713009692996423548074045888102844825844893234801419263316468966725637417294920628449267862508978004060759583101518879526867948470923178418289729680035823158196312766732608237542443179354800770106610327539173398984895277019006356236759380628087793931218999380093639535724733575906292192759349753246227438024098438910323282418876318084168607081479764426383193144783159450184938356367309918337622151844968513400611744272236065682748592308231220962358353416218916340438153714376762152467513089162580122406533710364189335399734071795676820000106551665720808219430636266332150582868548706926303359044434265806438360382519577432931374585743303942992967721539538782575729288437606544461878027090684905702644613359527376515344661771290070651728716277689187403398809572202559352392847329910563915561656559833208593178343600583437618138779506414527796318767814723485658983180197283231296312768842331848751738260601093377825746011115888647991485172506763287190729697564820077304054052842986086167321340813570974608367343323513774457023791264259106640192615442904679708785979926457058850706955262583122763880017637556849633158436197578956766477299850799014254693054198337849687472549580137570544781884716112772976247493515195356836133469276962256825963281210765450334346438646889372362792743514654591062025145903471098271019946320425477370676777524815285949067686861942878517993319644628070821931122026423445849601810264688448791283227331170040086813977225820297378830817487157240767045361417048951471032736393513465019121650724102142074723545716848411115322876302849819068426180943286459838480985786775635081168972671961873699907644691440977236463523266049536958376839052695288482295924929139494175370543136974506851477518093135407201727173479736234838996385182856809850173625815194344847674517345857770028670984215621041649872134581640252440620119295175709096617354068694900691357214805455335565218824287204694871039231078774161184190949364631640936349067932068175473078733102472360312088532325637816749238794423077147956192786362546599242156934036811851789993519692153306024061125394338111343689016009144244673619084575938212208036784345739557914572710148336128745483835092136620113981026109617545721378428779724990136674347460133218652625768001993496319207755341259263052227306497971232212298774553453894327536451861631631110019914279766321849610795409358709771698934062928246234348294067134343905486199144887200094427576823322060483170600092181972097697050319019736207243832068528496607403776629827204557832171106637996586004643949082680211688030006772255895670423209001181792685690732807230847515996400161422769880071898894826620698982335438632332873417166410608014603257496125572344143701699470915946974115323727362346529469521700211347236227895418322348351180483723181227461508323638343600454060742453459960295698633246729311932487858884212114219489255444702933378907728987456311476720743234522136566525327521360775008302064541201300912325564204050432179160790092729075542928363006642144656979775594592862788215497343339259208269837584056394067703828983993350210550222443301603666342342323059491691584947823637187650386176928935425951190719198086622760735718408509465051162910316889984503237621085922188999829828983381195759544987745018144859139129677157016715361531657747749312883414621501450401707308920415790062683649555608260411381439265168738838871344834944596339528723812530086838207145832300878900317725332453503900582280791572254931302195122483712254007441373184139342443948747062229000806194204013703947715994763956272944893519157148702864579389052855698045238888852138561077198530347467749631262328712282260092313591941121536324806254339169629847278669619734964935430433010050449757005365470515033634913746433830540066519640290772544633404180582989347092977389682337700392167767347276174559243406769124949708500396298675740762161492702951125066597597139996738434855547038409693678373898131473928607867807590380881086119187957699535037261504566004048349270498696838167041047511064715643434245012108487621194004121081824801580083256002878712302963898955209610736114981562175601247622613421409581807706960057820000710803009560726576555083594190560640901221532603804950850790390100730601367802988633706387736943955983557746084555050416975988522608767956272872760930732158111481142289515236589535034672271712778858808406386798347948849756936464187690342672641573564086169541981357791878489421238081460557190067671362904710661097766884348269772642469725863069519244733600682830472132353495511584273906366860387861449150937201321793241393833932482261455037521783804892124871989483157349577946440059709727964554902034653829637328313800760248139427216673401295143945461408425377169067232504685191354808084335463059220370929447367245646527186650839319274098677386856013473398033457547953930558659764224919957554388049419474992924985508861338958961274352337012489831840146436509031492757679198067760670675085998006720013128483751406558926139144714805757618312607569236416590872149261980692860714451286911199373122990621573351239995627996156550722951743303880651075554641806551904566851355518556150571028279810406467743487476992770886186869810935253628999070089626118986161387164541362062428110163611341250659280568012693432869811953992976883824884773919723136762451991039450155660008219242754357584186793847640211299813051908906624753673081607254135192926270138180115830106377866028940407438329310281578019340201347907321428059516059207064506079233836724434657778862992191825613417144779186253496819924499189247867246920223764427180908533994590931255521079410247094595012984144021800968692678724321133962147164028374459545782671777272752549174795137367719727515117478777016372716440919495566070146658750009832270592464337610071744977169989215417680167934523361321459824495607160223757598289007648783664110963995390059064431379658002430867174430306973792440719819660108129405325269185717520447700192695013604300557491952397780861455451303979053264584299604215775194677605342452388284432990774905668935800986064719580113748302924889424633516950169872244917355999456856270462900645252268291929968186339707718682301294707205295640316637788025308242939335616971793618198901395515371495680940395358263223398059096215048134043658395174471670474166602004428916893497248437687363290061354684441840021241300109019640730244302227710917993316370928757911897155925256133798327617771918227732265975869959954512402834877743219612471524251701041560853517229851929237187533116530207566066890808411430877906475097474605512195874511704639044864629201345979003912077338023301651386108528541449131559642213436969127008067185389249521050135981042641874754380566821850312698340453841585824667121509106569018322191626507900885957878876763829123235549368866544430569208483571843114974194890591942708980786058523135084587929140749765648689979752170985453515932267428470269239151329100471384972798033958380989990887963153200424959195328097091040614714405356556853937406852337803070749929702405709504823877573323714975618847269062498048531116646716385439127923923788587503842393049059686736075749271041360529671186412451761086490461628713078238010007926432799577204815400217603844330049536377006526961081002888661303199699449420390387521632081053938276322695786948592056972561197142794698079845955612436053574819638656579411251073295134307620340778857208349290058838579027540716776189409712992245333427803091837623788760772501527110203558311743960322613905466995745548462975535722632272264284318323329532398400948803509472726668400393296127825869692698807298735232500125463409899623886697956228854537603127232645090846488861033551320940172173981870128576610799450888270560737476739625300151689069897281339334990337537110938519065162087792269707959393968552895693364951369615879800825425689345897449223580340837788147880094648607509692588020391998017658644264924227905710750804609127182131706536385070905663777504898528416346339236228964017950223161075131636359750412251925909742094330052879962146659109627221389008038083465524400334206261376856671759373045742910798243813749502097281381510394246313942752560380619880247575271844978888368336935388694430048138252799716974018534107795378896054183517787326150165744932981887934918909855659930505879012733971516454478947583708865402299880167841470212935306087257792224393796083234354416553848701218918452957782205047680603373139262228601257307061158249020884044705321604538897776845868208776723048702279278462956839784677997244407649754979756257036389667315257028588591990496627808643277131705604912775679946797033910526149281140781431032598431090702812640191024650242676715639413508952129426763747269319969957853146496796663110599590533047373934514596850300644901495534377666209483666240050354025687590318660302552965172288034630982946868333179199889109205722056340802930236544890502905305950348403891994182400948950831390754124098074105919452253869084068844633901157946258841293066168023795794515758426668753853106145583005488262211016005379298163836438317141352907853401985991422114654271848704187669720318341051475791502798425823301885258288959125644895685733515258648171922758749740832123813854767946202945793324853597564964191099475078221031190434741099349583820873151113448298300699326139869932065689475471205170547906640524286748934869257991154800844906636886458909483086892226795513387349651007676234714359380344502793912589631204669688838516654473223435580912388686273323478481981084868852794653292650029856285879637022432009062872008719667239725137765633184351462745893834770794053939450226781480802998665792807900609830047985874446279858047228512992911430655903089945966381103654533697448442650163673866077326730869274806981366153301125195552590184680888784752336870522258834890186209712746498259613715951603259832461551454846696821043721057183070640136907215399576568038405704995118579971274619302953734015630144055637792483478274682049599379364900242730725850988409925501174893959097409762256360944232616980386480457361260337715935738340624439204630234255675265251272223914816080647931845004619641234844910019550633382436598613861801671563031412868427078493063670863480257722070517325657873801722688967362939984267687673494037246649888625456737034825826675350058901048279783693312823632763294377564459683630391457743450948765083080785126334408547625176748852035126408258421570251106876893661866023008715423603802485129932183909748609149754028960741749213065675210660480877880522801911111582618906167535599101314566765294058922137700565433052684693485224441274035685228081379814892463455933455313726947854021089531491330623452908515163973554245337310163576932022117574447142227468825086737816898490885711194629041450647236850191491148087052484422854973681174721428807729484971751569076730458288469349551750248030887398534636113474274069044537695956381681807229755728618129379345261893006998867771605589436247672141153007014459439515776642470522963453848754105163919581871955960160379559491070778976742012883759501377719452489775039665840768083193238122166460059222286546965595224878236486173946018049768418237924255503339531251716453869351928159320930658900135536504118828912655227570999514634043108085291921899750834144817748473220167889883363384129813616438431306661587602506359067419537663414909746382535475240644129164590418962169978806193000822627204735738836068426613825359998016141080229748661570748172899014235850857253910801676207050838068307965112851389098011448789548306042179065053950016785383660312570784511777646162086928450160652868776661565553453795160252344111414543888614648129515365826070848473513722462273924290643584011506109135186266289391916740031149825718828689367729831878417234354486841567757259219119685225254208010995755297891329972787853098798449727244572200468863554585993006730103102607586653027663420174937191077418895280839894300620510696172855901660894906373707075020662100579982802652662450732497117575054338360175925191375829762552456172517488959165106176577768666393620355136141863085602918303855619361253416221429934250015259250597804199328068772347995806715107344098381568634931143834240370111779435565184325682069955417246068162575933196894681837323358785393534204355680143986472638918203983148080800512574010088528371983179728322335615220517145943012185479014641603242852073796710625445046281544510954198431816273254422493851385675216530021741144843465309812058050225686115509039037967385143616794491743430848446109106959932536838246882803200402856187420327204382377662524031539818083871158975118296657035774562154711978006575492764589351174500713321455931800016429205124904827670931140458319585201841370413855029721140108293743825818988569783599830087796161134197610802143085310377366161173575938738328519622790649358496070302430536811606522074914628291887966297180298225904202833871620862980956603597678723369532298050363112863185262262404659887625062469251892894197392748408537228080883161134665835009368151362307878071781064181314928404671655829142374636458344317158750915177019820323989759309293434214292571615497154038818938182259718039535700665706823171767234311546116722759620664071034207595290876670269085566585800713924027092132742616714183741151874941841516771291038525454649208935392434050473766871644986355294580361055985904685854757031056698771781930435296701271753783230277570669091959123390552200889881622336594518576089661609523808434463996050872461289018985603787720601248164646470330460520561632900212443678811395605039252337776141772712284019094106571462164321178169540377873006090726707488693078461944333236302038180173624888215065362213946877947622904227279052343672887002272729235241741096068042276069224627632493083290518107738325948159491045645442546591020681669956200384311494405493948359720890468169225311966634389292534774118272345066720818094241665936440930270649101057520983287771246653755876430934430495834977912126202555323814790522797050763163799638657255449668141138362650924792436332676698352535831299429752537221712902946522396818838102292013241188680464637232422344312062807630948975024023382108365016960937815141962076399240492075484105907523165781600391813289529232639347204857630052416110052246619844879767670575746299934581586009316019306455165181583345161727395708911860624536980753911035974365774942765842432767691880239667211954864047790317267085960856981361873663084044673306357340037953089459889136860112620800339608913317373468043112928129147820309792975751074968017915077899904584500701745785664222807290777949773048029699751108684951280665298581456508663797300244386973371639835144208423124061829360748286563612204939953294241121789029668894705254081619453633086121474526262192802898857637185188199426766703695305311850336478510458133412906380356529687548878509870410094399511837098935949699193000906209162826551882800059236252000831391301269949879817806396186440654429151392450319600075742224082493469526339295764822279317781377946816955071529019080383431402942196000350021381479023648649603766262557536217529080563091559564241085356912331319211231748697225778142074817028519809489062385709066546490649567997902862470049210686749989319288322411842218699125465225399406887588149079413589119347037401541667318190546726373375338496431696239923497573060049152267000806282744031411635266155271247008936097137651970422139009400867542959205200580167517136532616214963493968991199799631334484192533647595233174989657961358128211713607296472480580540159955184082306300856785863829487084365236377335704013074341454447917175090579907289498890974307414950698186377690398672007360678383996745320513605382819812615454952616967342397299342336655747423593596775794883811580618765582386752034895804632342630737092131932431680799324662582898385689849498706982666750315934711874427054939682178690025861637429475302622382722337592210217358266181969513136441353625699788719710459300973009103557405470190556908425658164582586254812897325979068459188964169060391035341997391265483694039536901907120225094240604126004882314958564824633473467702039196278049347744280915820571306119020524527257100448229628702067072588624461214347790326472520724197174701735799810924789477177403246206430068180575400687103981915082146461555110082761290281897208537539618989567080913037922259641664378851423753327680464623452647262068822257894930771323187388778532836516725026252220312237554676444743738084882399290497856704932364581957089847441888155782312770499507041502003395254705446291440657382951904604160900260785837580455240923087019149845525296016975080104224992513812854460651472811512980386014288025835055062187160658082743863961662123604354906576775287196843116799753506767064355428519621057399341235460996204757217372286846614361179283038203585941956273784936380866419039227417985566994683068953081079145609310664752037259563427529050801585063200894287529102553182002760388699367898098257578746994046900384113910367807266508193428587812851551820097056651462862551236179258176941941688752131554996710118462241285114920931004587646084863347340847492914755624867260775229886070006959201654632222246662356826919436019314187790105470814124446411146088487039125306781548848247080013990122824063641946399090677343074594684505265654507410190994323882133534714561797407165122134082786773042751396356989326203960677141309146919493385531573970593110120173160687632178807190114119174759926434719439213049747739245812499858169183046743432670873960750299624482363595818993811102208465532122339491321570792243500535267857765386194354710010167611914899441320658623063886313426564904161232285672368079743843758775545534740719594359224855282167601889205212928429370505863357234319477626663536150457870328143378633897753536395753928110433660312534036638732273052819904871273599347501541107495014123474896382666377544379060042407310037180907197410263747398965053597740774290583875248563897971185577867224224514860626392812127819999442116363108780520009411469083394313356082355796190338466459207254622881689659258493358195296991412012819618164646487704229950367842064884208947179982763794295904557093102596062933522148856105772266131478657731941519681927180950171450907819983979309090812705068582046015338955046114637139150017769905850702288695339079035982972621900940532529197754469105257209736019099735224084966672864455494356517276343119702226854615455039424688351143824444038949809035698796173188245432937200043107827806454225772511362147954116730762654635527119099474708296193787457000654028765186102040725949405545265408989796479131918702450518521886163531720265865485339923707247702204764335262460321443331738679056299055941496422786658410123644460565889448270575130253105554010952991087683185962321168755195413947460313547389342803334242281592297893725336990146618670278251963864966554390523335606934969264165875580317350934246124553902620435211249164826129936490409323253739280199067833738022354260374230033885319459516607647908399851212084086416161554610230136527464811152773311354948482043976155525243682974555047265264228767592324573981625720251616964515262135172913262814337862499466293492634984525945661100704354151497025134259439573184634492872295880314837136680352056152836654913964466340395607962918820847438798839771578742271116800458231799906413674004380591535406763851616017712129193773535774030713885865052135875625742952372808547928988463602588233326398014775338425968958685196700045243022808084890020763192373521654470204112984180670739762653883438888768882460971154343535925353932332828003526847915024187898937537405562555043216096693956447305059211187507301141835546537139949467420865677124069361177043266600314091757847781942336675105650475614384514813206873939020066367943939563804247667709741362440073440127972154544248742793620030796849819418738522500886869880381084905642756512817069404995098821313325424836374153908939587569743897938839784698218199707094299113380338992968989368124645308638916139023224186878590492971561975810806391228298797222757735935104644813442039685920021177095568155870812347164034395706655833228961353636167480140323980594078075582074714175530882456978955209938911902969363355503612388797854397167684547159889883507051277645052933838317675784847330496299392911580436870234771880450134636674501873528107032199036042280780274898692897861722912652618267450560881074823547203649157805394913564145116009163660658715296608973106657586534037815146374932482101760219977999447811844440471797551936212855488467243666963811865566743967707130385110724742186603582333325655094585093115406180870983478362491725514556221884058402337013714474256773882323424254717797190029776850011171839462711949232459835839462722575410662272036952727441669120927300829202174725125198807365929716447435042665245407463248595675509374511117223520359627409664477511226532255375885473242389801805364913359732309291064172527492369174504977627476040027314128359924418493652882187073973487342118834949722442371069071659700129973882698068043275833094515949007512409027191032376156659449225896821486315000552681717253006036660020685093021395615092666307994032671425267818216318090727774947098425623233213855220383792605391130569764766309569428972587051799874344360675970302394113431148114453970316283284495487326180460406269936331178782129716980926849610469135853820897559822167866633262730186936960859860945147759840272994454684085989379545404798048587648464233648445047334993500435483391145308636135460279647187424776479936158098705093680606538258247030196817434417083189229903723633098734266774760237525504445770898825707835231218203731825515968800674474039753065741192356044771778350491995546671200402039519406253884019352307413447144353580184136921804673885246317703473164190425625183930018097321597920069004107562210238317317294518937980184252831961621125330042090047548955834881123515139424887621121311618753384690523083029091443726228537088659684062773757322153166448714697430487300054697950093097732930262907178580251474224768211268871733629277931501490147988620759926581453888913523786481170445330348587316575330407974495107636204905470022593466982935212042735009192491996920270663688745304860896421254369850719303653338624970941230976072870289356164837657302064397211873647931148321959620715128717473838270225065555256584089527921909806010913254347632679832258548429267133174792722214402681818933701680467350780511385373770562743469774115493394685158350199587982568148616289837415660201501572998534148746863188021426827580847889759337194226273001993737830025435865792273615933104867440299791397649610286399205518544583668973995216389932235221886222243182677642008610210564125617714080713729860588721922815250597498289342825512081273562238980197202906811568082134651517021170668618406280621017052126353012045571513672785514101294542587241448803796740196299799400535363265122713668120679728476990852341295605698858915339357112937375946662920148240960529838426284708682484240440103051440280279329000180508608254831847191128755685029352889338075678573667162505495754743933309021862701678192763246173728229040777759003540675323634163361673990456567438883146039025061860063486807199749418437027740182159033374430662011626475480000080401242778379280730447158021276373093246121621958661365956235474993247439225057942229249090805625739284592832400133825624363658321360895112915782820176329885333266084604722264969963170338052840389176197129778628563032638772023048545650216495948197195792244363624232701372388556704271700649042245903088306401155487114087805527829404767395191966361143276302514081738461620604367436625770221195655880731055699649149233149808372455151375602661313713178702162855716687056614542159725901525594501608613370950075503520754579601566667132810918732732193584646105724633448384360912830530593204975444198148519549900491330027511367103081415796626455071312782025905419179613013544693866402571376988752086622852023559889074849735406868727081741977027409153861264662408290785717775199959554873026175129602173870495960244414604570288657518610424097090630078666305678873145310671173441876040382724237835458628565196661743091541647355771886454540008799561076117336309502306897214250794274704893597591744529815668976559471736609098209760715229559283515089875288322433103041750210720130682394322389446083842775791361382730328108564879849037667822717642118331201020524739056010883295147731604752225424190098887798979350367308091413662709557856349255379948311318618606334782312689135635645036992840189662690665265665185093099672270258410471568345918260515248311727832060188982858163448217122551756073120961231450728842818179206552962330104821439832214987561354291729572280346889005854460317466513672367697694947187904455528454574722317120299658464017249488466119934505991727194368444312330523797754405164009823449045947439821563631380641607703762992119716257250291013463570876807982628583317357740851960700989511180722474919694378924576199984948093377294224521169507356947681976102666344205208920772889391829547998538071754603759332313880716107454660309697701254922473109360247277106453906453696073892320062733143152678414360574374298156942628440345078465930689991136554925518882094777895468062855655334909084228740655506530866394904542215634870055737632829242148395610050413739606775829132731512993948183622234294559074054114126598264000614943540310376099000324109439287855699254689538346906516946834681256790713207687809664449435150530476683476902625097195490537198822895440025091976374311877846707521109657491487421639077950848617143857321780172746179889690197098014378407653154413323676885756914178130285382564819277573113936613943061795488199601050850279429113561750987299557618858383969085546254072945527828920937143416436939327723323932462723488632302059953467843769153034293676183174853171633819620210277984270890442429880365074933707116116011684281496505638795038986183946987898268074837522136690577555559800379819246364746194743272110515823137445649151651768458758789807190794490833627078142609094997597369659339963834839249714929277974490215657746803010856759568984901359849439841408025609059371439248026346776324433865402482918104772865435138400027359876095374741900474334172493387985123919514900096171076893966392320494772627383372178080901274807966420799683855223159505021671284722549595111963089624631918641724037116872470329768824100022215630182736347306975141716128575898299328096870199260268205004541193702330992512563581922502493843845790643043976226276502169234278212658152491656903609654924820211485639940643593995784401534983882295034327804074283723188927439746257859366709491940822733086132801813713801281895773346668310223491952434657823868891064675251586139346161140990482854770609240939879776242097950500037060281504677437548903460541586789491418827277628156803600752166756074393635709344938456474747126715966136630089597956257930838815586568161057845119674559517447626385369738492030739986271804708928678470392333323673389243945010509414081703614874209874086083778146893287330599393483448023769250153649975737557656114407022830383975428094698795615106264756811768335141154099547465901382862896517622798180792083057329549611989364184094916639874901839148764673089658082770205469815629354073307018594333900072483636237191179580600531463275181394633186229862290140586080568211632657220180504773204490491128460875085990077961800651576376824407927178238472943141921003515745800005230790618734661329437670162484088192371776441676310313730738743700148297297859561869860516947600188378846440710062030461277325325228509810495136634125183736973357453330857114409104351132082538281269876119922049719926337259769561482460630196180039735846649697865924794997937619205349124693622966325699925170478835308083709183283092334294378385259746392207110481611143881415785337371901375382277994703346184907090729332741918795086891503455018440000797861175861056089592399763506097994771260951018649389612030338102888264010158403372560189071609208100284252266390654011104683915583673495538201152638560872523706576807496018292786079870261321398256021676966047041593283380125667814685813753825784146121763434017989112868625576303543961608143581094452715215082420647006147958220398901217389629690365448240647069881891441544773778004074006326281225383317238292876724820217676084421089775793079938274681435331224018534848528541569749659709192901583293541463969265712110626693670271575753986551041116324085496882016262899403418260765442163853164315160854721217651537977794243682582679670985092536070503532640180183585537670059159508677214141128466319365178095665163500981651366339486974420164558205678628107126286030430630232612860581785593776935375330134579682968950091221191419218418809018838283557131384746532156706494577881183863784072806664408157813770464753415927120672774016447867949253011239130833397421797474989932078174045438156080563267332925455743718100747510061946100496850784137704830140960920767110354061462826418061605684340380625631342230885725337242483411574030244866813029873915815089268295128170061167120161470563681200367511204702601126472153432347806583033419061736385655147760325741995274301214447984528679803544800883294122016306059863185900253387996613526838172669036552635311778236450013327289817387123449000522252652701612433441019549477750390102471412658554896636602548386176873914064334843907788513103294238719071367350331072513644482507065673339579131827006452095173754475038642926784538096766017511230752961273450913356143303572141786839080512844262955744174525608858350905302317762244460407502656955184175462376438595149921916304712217353233128411879572633273124477017630498248776970933683273628094520045121135614023451289232669942146216609050074763958724685486860577392397560177471793395278371864888240125939024477198477131543710626587826119230017464900580794682699034125927886334783307316125291741108457036877359283121007688175565068638031422162502102357154897279070749694195675076441763095403303738733204395715160300480166592753687422661081707505730386698993429432695274493402476160895236426407483529863614966131542146075311389017656348587346795805885019478858228772033831655864309523323094457331008347395275227590529539790700080883141970625398071028171322809554357793970524579877044918523883973774120371369981085791746107571101221718506018569180463276105074819499473243633094083185588669853568265121817193439391335205332948434358919304801469136536820524293318120961080272616576973956739787752203356086709991126447901574629893522670228850384255979155458571828294029334745271409449365857378369540984230235865800671084488450205270385690936225256939057006787895028552765658108545349381420409126715150325722398943108092672795557241136274363059534584662191252596597994298610553691341900360509286958701757046250237787837221094614377017155342029677858026387036187961112225214446307810682978601843173769128096969615253602720279594895301416150412205010971735018563590360617497383568339915223518938168914124255221570346876553212956439631023906996029360092739781032250381580482826192526729255880623519711485857106747341870289126477914512696563130167156197996154967650055771966838426630497234411984868062657857669181282994237105738715787783897519131113514420701933503710229366015407832199444052409686708355005094578428499330315928067239893424698344414762247629171297458553040994180643850777848552473922485600977848423549156897199689770463640211195718207109908892066798048326414151554241573386957651801913114389181621962328788618241201829703376515287509333173254501521521971713066585939031737062363493715719282584700664047587745246274675576755092333907328258899463730606335619063538493687365607922338427973131151370621370992314484839533947675250959016363534785029256324769823822187212570564844125372685968300106289989563115625646562528874853483026351048273263336004132532244449767823784770247229105178269887650581758922741106558736128871527371747756645599535969442183294081043854791664444806257832798722272162658657321615453880554855787670186531308411860085604484035504188991481230414919523692691066741951819497934472310542320488814084922384174692943010281719032543932153258735070201897676221307927431080301771840169421969344170184200073042448127341445255484079412132949122004978719409220886775967802454052029786160872984503260821344148504028804712459294134816910858370332098604880333767099677843409754789852820351983278136074350360846004300663350354505646104998642221575478940941748791189496147883203247554077989444810376922248538616475765317941533606456162536437978958657869700270056490875159456591971452484802627155792512796617554611752307685071681183513676048092328317655585749177457509825528662650870196226390102217589358467703087986499236750022908280415152032619910113889931652203759431366323027451500481435742066760982910686928395789252063691068928111163776385490511379005662711568129487602581867768291107806228420925822619457793029542072808672292459290980713986207803947096114796239223976750925271186610033267597620522367325109685898900502207197012105400957614809759482367634622876562185833554511140436557574161994165792327638913872868851910780355756768595262867305246594057240588488411349296543412352588005855015793304554085662307563643655627398837793801301904183008849347474482012231128007087809253238855534804990065078959062284758900425940795084491342493536555983952927522953554477607348697949575724240787116645219663350665505891120767315833638070633596752630028819711746547398404156581016731002614482590259279039825055818521670342481439988347657311835140406180549580045387750145576609273946504281298819041058160753134906474114722397869736948611135114746048871884245725234142163884454712120221721473276653617206718067542860540486066282228834834130799904376197597749650781434100946481199975255233483951972953048140415254784402204775770667891410472516371748828630579637885025589474275269316299813110612200797523699221422565636177406210627794379582087080533584370895973294261275034158577854488260431303929422902084061076241556422125182292109423460362042966174522368006723537070544453407944320110429701634360818554443034421977037715735571441570400808613382723998162183194573000864829195504918517503311835964351072518279507000351565135760307238358596782670588699040953158807351557287264948892731843837589642520730358472443284426094369318746048952624947412525715009174483528376235617378900338511204206999419868578910814181186200979614338999583059677819553266242192137510240334869790754767354290839682903467111892422611058666921529439417783712316877851347231391998068963345678525609997354017163945484672521109459164941583968661765842096226649184206887747636181278047002360850832159659222821017830377486332291509759704189258024305573848135931224490318847159121139405760883300487959783519117559318631367598129890966343762050581487250089018900332853643516728817161845093494136366667728922795041639335039417384247066546242409394238200792223646207487719030634464251935660260679348752508039766157921325614970435686123458576105078571009527188523812146272082333112856034260917772242520430342021097214017619241431907388946761241787696261489048304842957749404322371902978243320131309415298331401400765440200234351160918273895553897233216122173216023129814820896300551261386508745037242857413390247764309257698163939914525364824331214079886891787760705094780633078326915383181311422501214247727214279518729973242776546049509342329197670223776280354401417192811201198470986202884554714319865357441935316837997913015159962038539060651829067057409972653827813972650870895369269381884274960430863213954336601349002893303809160948072042293729121847775196086071341154616831607299625888774613090577409194356630045302844944344191222574136457817613346313758578296792303278443730547631058884691553423754442196865411823205069580058825736013895947958785963031632093068305135885298114362129068922424234617746971581662225633496859156806745859800947825945044769172681707902082290259055610209132107285113764981164194464658102958071721207000455605046503131385012317564317049906346709846820585310378338133953020407827381896588547859622725595715675277781580438833051157011510192927985711434997845547883220393579450827386545209823191834243274408652195107550243295587173604078850176559055242094492387589505166528190462717237850336648754522099563798624937785605653277761074155295645718895228479749008565685693689111258854057066264208825719441003751582642751723441271523856743265107021304462450172067796398365125431971156560089104129578353182169099530683971192297036848528362075746971217161513458083396261168011509655592980537682396854430317575049509305776668349841746898605686842435468102080027754177067808508749055603789653027099386304137679278100312730804322060422892621659004741120506195638935552755856042106046990569285652999611388179559063581434300397557743432506758743911012712324661895694906556529779791585840289250081917009346738794332874783262983411650054910119070741731925577285494801015310794286467413161007158230569232469430480045115161810917261295268307934967256214678634763909467915106142791610746599363263097343418892555522726884122764965063244258243464445024870574765954441523448426154914144786927404027008546171077699803237545915106770628423407245126040851641121410028946972859829129936821993788887007965909401177305933069437738469619879743034323091441589998319104951479062262757626362603931656133015116333754263999484956855498668029548880099453360725960536454722919539185626525219364739076818388213742505812654045548960859492763015477325315471484402205418038196816891695205223764257330805096274814871913716770550029400418730980581717014339362379043761074877751641995347580082744205946595078588882879089442873402302198584302092497031626405858344727731996054200053386898489354587083759071237733852593690058973429682272732368937975903314927775719147055005488885016953971591894907382696208729752522581973861032568970024853478079362653211771466274566704584681353262166244111439212563535651451521668184474507252848999644491049861985529723649009076818775454276528307453320934056086117327680261293989001557993309179076531857157775158298374895630532059662620114201841021486460285663333594293019134065954300739059974637467342297641766671151699038832772721934045911986316268751663432733247180507842923547571511022538358174203699505187503830651124392979843363395634572685624302642477129898630662288693878507989926332459063581796500452540626088026213113456510587400138181391372883212236876474191284835573565528292772157239082189638308539653376016471078806443784292686545562976122575375747757707341068324489076288659948367634047915865027873311623938072675416378974757194917559580030175107433987032986408415008712541047317045153389507436176806287474569227260068136566592997366593504065394707115283500739782823807250779989529581538873470061152232098990187793491078339958599937719688535328849182688521803701456512036544362715945179657742105152169368899789307955571933154664682809518652789058941549879799331374978679415277184523558430019930393558150071950703434006280325521800294698065118916898425152758315320848156545543387485115891111362758379688956844142777683498299015375799288583403726974603794020916439373104413128909598081891141273820262110040640804743873306410903317076473541939347968777867466179958840691058261365194493431185359343065877564807226133742468969749584265426206189494801321775136207204726531357231510145371890856126530347825675628524552095445183423098392223110136871578899913901388396251266418966047481095190956642842871829355126049529727886199621244809254863402369531356133208445917139858289259118148650434254260321789772347956246199499320677739350765142635619776936168432986224477305890158262003695936565526491625896406874085909272882742302640224429671287662668725497363314857125049375210366130562921623136137110261591529784768892934625557987915258727676316015420441955404849780728857910628351034698201230680375249974557257755687913978310843105921762770160702007161301307277187444217430656398030518956580163732785868846521929641512712355236874016783249954382834739474001712600138822313795404652401436032382422297045209268774246167920641862206260341759112851815452357748647710912405778993884063069395476951007406189685853552242946804700539650982103105057732814856717276712295663014046888410469471403515528331106368219461509979358215201545050306041561917249753539406303213278207688968180515182458505862197491750305738849529029221227286134347509591698837494170434627832629850028188384398830144467365020040065224671375692528804302865512297621902739786893518624344571692699886236888735110975285651427436673095007574562986219007955968840886525214154530893099896861251678676553718943436078706031246257852184220986121700900365956372217981365523884029300948866028554217616251801572662191696012681478933703210158832298104896263409705102624700907370248928615395585984635145800918016474620616766330739184014883270207204910064225440987398673302084119421731407807567222448300656508812557150311267209746854736238676972094354938051848490743260990704756362533980669728727726591550816164948954681959733273600416436368415268841470829006710686280670873523724473791975668579886853585948747750454718791746553289813545742229549529093197704671265256357057545842113816654810376908714911940869386431594090800189426892833808939528989006603531890197328631890795652294755309515992231872156448999306004916391166300151589345007132690474572284251026613414882933572726543664572246142907463939902607041224082753192669782802643903018656553018614742195608919312856514729641850273654577683383126039728806006316070951036049030179220500392959568647017546692880982565281087420780328280374803466093402146791668063582989822662246610616895506947718548413846847611681377960656588764599521828420637351075067587308209856040872634844071416222830219610123545598952151031413067317123560231436120692367010795533669458795190300686368776516195486268192090642065743241402275915032631255487562749132160493930349792445870771331184941766890035497933561614742195502162459173550065588635815562430498606371924154511227704141235886771082868533625294622638548171671401806166575681133584144856370999463409353405011759724592135648963720690456404371264044531731086352348263891918269839367136538915771294460384988968404783153151997699776811752469429018665289455386632201765356234822392624662770022978820418111576109913974430489331564539841453073712286336414319781347128895591616626676219912434010539602628061961741818771488475549606973539882953138826553207975281907525484154449178219294375892452182268427265851237833574034729339596898564737934651255106239921824386188180644057594853047832473878581667777061535395392248080634405380072467971344104057564505439985196322277281757951189111073877167243827225808428959874485139351943983828871520470274271581771866917728276019545150324303813185274592644268046723284631516758764582462361086441834465186202259188513408563937115176654021744691280777427434476016692637563065922650423866369200649630514869880092188692153210949553047788697377817806940076546337029949705623054908773669739144349073910686664461263643871699822254594775575066088018352418322248036635871345473482598669044326986939141022997639617267286876572728267564455736728687893501044293893104717854085016138317528704299329185871853475163796332352371501799144469201194634609341455804897271701022249267816167124231740754584074199781393699643520943743581191191144452008132570780449371148329633925946944604404508618091620548205912210902583519346533435459993133831291956988899411554497819317542968742539799405035579516362396997573871473614140000087968235939913151751479239644657573872566506478001070698289386209950802498315731968562302579568614251001060610104101549091954257151947903553990481018291469950332204522264182843266660634926451674137595456941921126305740314317204322188965449600564914620233605972007894192863836360641157579137958521617025468902006212816531526442441209179011571349112965173705572501519164996418158943936259303333365526702721215071663126736037968766097529415926474587956153649669124087719709658547066320104634993101647685943697649613653342315720576280933436260721628657093893565516093100079016347929143563723628128723895703380236972130264954104077512401365384221484972804995670869364896570897833238578730666117193712648994489811998840589140298177605617809149825366646045125969103049453950984130629228460126909907197222714325395645083268118378321527174360685456118975161721431940684964389902772153349214143996253680945155603217835901836613274480831174047253653405912200016971732814595138217291164362039534054323958400772352715529568438347216675038592207331230375306587488502304577170440234785888510354272936140690849077750862455389482774612348701693136572011541869208717344882313568266205395209732349550289892181801121947991688693782219644269738746647822103899690144275310232003553073780934832234695970184734130226317896000583646915362285341073382661833496645691051147424534498817322346677050172706461602831279344273777073154045909006644612012405777966919756743605094088738492859768830565836674695322355530018066959832425583892480823784235285981936732357089230197505644286814312829608192463748365722258480897133630665487036048437064642899895107655794909129209060512484454166193492620054148583637557330117288744550353262158255937595971813039987266996379946373171416210351551385372477280426439035170052753377076457906636825018477981723137458957664818157095483061273716621164693929039025048032942480206347782047245314469454421541824289004039111787391804100450842493309584853448684851900819711328874732981202106011584145435436483285615419808809614792815006757574741711407934487260416046332764372461214633335467152246703400268366659943852583840475866568816244365020051190825523905734414377837450215064285302411252039636695474764962386053240268512531474771041835248570618412853157619688382799498504486794885401892156509801885156171560164642797624048716426028041123101278980382705813177712203438241531327235766238960876036166968655409371318941011213279073251797896011344175984190254196315348331693410588086180315919348784034553766996380013077382930313216930424385052829645565434142056624038538791635829461055297586826491166049346779979012609887332057872377368307068376618353718356335039829722457569823319603734887093633754329754757629010519394402558989865779157783885841453330946729906778785920483753812036790100093178132616062094269264045919575184837022087063499605157523115813148819070501647176921919197425196742594348165402194566586087318157182354463602880605848757437909634167224197327563517474270424273807719905551253560934248352511124877484377794420154597859172764990094049877202784467578943915554188369216994396330843913254210511634794544146293458067317159961431338951498632846591997985477952051907483972592372534366803319176336874993773330215487414920891299348800919224749061135462735678181264997023711736068681262613902210236377303754229784520596018811461732514155252490522015454073020917116200043470112088155172983531720548388769448972731053340161792236999538626392711766720023522040474397504551763910889381808357977365500784740941483474549572485832209479845611915740635541569978294297727836555990263442467637093529454467721270055008622062341497632319306987857936642829762835069714532875354808293656489510509148612102180569523029392956846543313568479904396160384523253893731065804098595698125027839340449164080537499683084766016773972293273118365475894213644094819092504334726774806750899836831967454686792232847353535116393197039598835217455296662217661014969031714548500523884905229412535085085818688187887698576486531276578721140052866169159674027284701024748308629605463526166403268375421782248977958000423718940298189722020734872340666232285234203696300824144230594804280883118507301280235360020293919987641042922480567833055042314491692165119561245962424773440665154377147525878028023266486818854171340466631066170402287191429051822328932721786290983975883755466024513065241765748485343768738873560698337820475557316661520118017040463398278173547723347816361247250327936695175206340347852361657253048864606851607889747151889483327862424877192889077286745418648643747869458395268402853814298306050151292750877488629084417717384730168731805696615771358213587399251137017673162286719936954676256956961239377472785878941543455964390046750792366569926575946933802339172030162835528629128546421654191067967158203345800116499288470605608563145317358934142253261300296785097023956555243177066406697129125320707745903740769169368246543601937395661287037867925226299038164763812560580043627529070496011740333894521447326089099012457054008346708467131186503424227374383334860650715551270356840635461807111985747382432330381863670777650975079314983044736862396378722338007227599469354486438938357406080733955183994502027521799855263478190158619242437075043124988544553195741647742600787516801886240572283869008472761263289573375504330474666726003031874346190396281829244851405002817256850334149669463710631903957283068522481095974013093048327069976894960753777775646875564096509544589674316161950955186890870371030311416798865935096981439404621717959970915280002380831131680693982395541026986785800996214120251983088721904269008998006286481864848583319232703713319718471831046051194510146491268602093411979181255220231553502169740774609451884183318752127675998258335902554172319990373651190343623542861844070599542668794178473482466956925746604257532307161677293765216990803785323781960378370119225187644098357706197100956935830452260661027510270164814254508807650200826510018309232914567396477444693597472024776392620755477911927974788058253220821707236531505188519846947635061968469353974043305527414461130848278763551714795923177007222363976262340619560190308852841478457517982326087787467621091160743488835077707241049480168293984994571351225589136685383543051616171780369459022900207667756202638308807163330913089808389135034575102024457423599810220098619984277145229677283861247473557167036133727143426614946795402093919910647367817244648012791651167431612433857286068822919922331217984884318144463650189953165249519289987509741969610910783984792843938371871555639030795954159175563578791259768802761204107059696019879524294056859672846657475372428411685706743296095874813615396423746129994530656240005272543903188645787692452733439740056569628433576544616451181622990546887884624590285070276460419901094375844950686061162699340405079491214837529146267927920732667373016331752862342212373104866129079764232562738402602070414002507358099527294666238593260372376227088175688003293955178827917504748484178144219223455450482155650031696654796280671029349455006510662599159789705188246585482286461038157327499784786747897315098806872104268248321306609198521740003999244171931913444250928412010501384127473559432487761626338053295521038484523094103515453373381814728903303903340113534289203641570121511721001421529910330306932855017560821952247297893530373430375818538202709945150672351291243549055527774148404992435825202074489125725170434315346606477576144361479703483318424979152317072878639015792014696160631583439005792194437555732233226213081713434066292710106110733334229161188724045042216238209820174697808029869015039684191776609334776664616874934273226308417041286300556937137348594783294128143958969903450820683277647229735928622933049924629979017183830863588009449224845463857216450508023477358481798136958098992073173153276626412402020258664235479541930716105512543720472908118707156496485978466530963251111627833950889971902699409597979598630052016717132813689273204268760813625980616986478300987673501695517564362263730115104754784476104912850194505480557500538636513093921002487679751787419289243719543921938023515039882914016362171387863675734439836548590690634009930637834710460485208715665211386426054512979118985629612799260489002064084965698538159499350964593049885145526317554699361084813557464764443927625618197900142477649809533601099519900463194822430341701211214786400662499928810069779245045792744433316476334323940998983814617244071778790052677667046479815027185470909908212464483388090373353248155486330046753236053922196182555023369552994546583517689067925091153226043769064692680832686231057363968520352430272204834581946850153407574689563921375927973764788564168177968440909016482655198298085377846255690524455573798217742855321398603483504139560681719096633362641402751362805810656742787619431044438964698286694529620007345478939447053597273228293760195083742969597789247042275162095275252587057374031163093412286429521284419161565171231955461194781981267026915605198959790106255172522270093416057178859328908128382834426680745550607725184816938015725259694162399244055277826691996856201275164774247196476990741501433109215174837159672343739823309487988263243919689767173636055217898258651309637084440633289821900190907001839621006137644296708759207277503955479692486921925321539426164529892057730797551305195641246992497669294972379750939313313603065666530533255138776619578357555236746694030596018053211803830475294642005842777070446758020642917496621496238736001092318950767842203047829459409715948978566956237610175847958449626155217410984871347400511211601464314321585400810283822925484724000271458848364813468791172150239146317024299711722879229664822136027289081380841105334799157491032812297046008015879627636475843514104474440595351874599518250141631694034627152240674299711987823492166105397327027767621846024826924779093683584695048796762129362035535121354538847892451421054296159153294248650213225815904328292569072865319328840572033517986478752414926043743311873730498423084612882463544916347664839231300005799559916475258508843083109435171698738271648594740628246329744265215387962930289640561438710127479172723364213745521719553186664946525064834833487160965421055334746343865852741895950406166367581916179493793904485483279363197033478675861284567627446718853907122107886629961685888443574995609204342435172055842031869934712896284146875922490570179619708880161899799332148430889419408085140773135853213220487794609387978801836103190969103289425898642925307738407137497757978615559687823785098580292531669169443879726773477049282783799890521421298215080235557082726494474049003167223925691884632969575140316041612589021744521664174632601981574578284071633036477616866327241458633491376185694675457197100551788707101830442622165099332136325019266130323732634416819296207596581855324087202276318896768852975977280535802686885643558414634828169549831987995968515720539910744672757878018957855865062352229396832931696781587397136172948288238092252145356171907036773859167834733434099287684032138026781445902676663707615570531332787148960325942415805924455376709774095549376375248409714169697080849116540734543466212961180753987669837088817983053881210146429162898099892812706212201004318129067210106542300711909623010966544915704158457922526788346781668109323012010779345886860121390734925643272103691409552420556799322986759520308003907520082414717827286745613586585622419288409136339767658498536363397687712548822585272832796481264844911191934138980444849087272831042184895387238349933333570427971485886604726255782418617011820321884041833538504132277905138686513689829824270394442091730969362399615700363965850187163734067464502015886001298153938493277437956104357030848186289334464669216398075880377634691393541552848897514154975699715561689339148038683579164865929942339764369038387976819651319716546983311451877596599037015599671466309359510526602588672918171237290894489231958718976026960592355402203389584848110606635724126363418541299693622187184734531248529392107321953695598346946806097490700687826940543704028381947265614189619526504550131027634890771138109283014776921884215594776932250400166028963980476287085306404123611702900432513405129044078944494928954608917210194303306480160059041370305999898077160983918875345356944983178077784061222677272043462293463271176413234890466836720504887233779030789989531724623170107504558074361266196158189626648636545834979609519886998146326611383421395297389730940352990833195722215117551042574496127191921595857459586071140667123570230623794813331027361948722078965402464304137196023720887748009948635077873013991382417971166313338986082715755943301071341862100058422810555114865136399194528581503937466069840165561540099052545369243151451721206231578577913128895252327428452222793899451813677712966853044272995856213289058609185900444197526988623974878667576361639913340741008084038350456796003518695289792422344911321159865418554766187645796800993798338453790305731199097736186221269235302773112026860897868285216080402003249046482370512889034843954649260791144136230818908073337989546890345937094690644120101488148842206667281468007984720117766574632207268205475828410085176387843114432868428844141295177336618021006809115940297742853274978185818477414211506509695472322546959345178007717732809984918852326028553946280766446898576766892380093991696742044429625354826667799768676743330217505175997244325260979716130669217306326874447909269482256643400331769327115023506629822136611441359001494432398008390991567543828805304287109600417423571029768600508049075609507031096579858421318467364002980826951463616031307713799361223951258591900363490433627690928053949216929037076657643200158492855339618693468184141906284927061015974059656403774919010068205726992585009276213989923108087760658177044620624544578273798556206230535318408594133536006388198527441459204251908413647871153093200420586979664334693104950737010833979645240363531808757114717449018815030080946890555876271300431783518092727362141697717444086158210762497436585258404259519116475890876497162079878720065632794233598035611566441924405377687512593055989154260264794830581872143945604210019583959365338096180968045467785588099135886876244304604058804300651332353691384305419649979584716395457903798763865766285662671705413409968326043675416999105558617147815194357120257540868998168006396023804545169385500753479353263388131301555107226337103283815217453545916022263170579515807476680770794001865146015102160255852323283913522711882817094803848961954921216112440617800840819520521297338511881712177397873765464934171894154266206157326959231272660466101680056020536434784919856657533640015416645211208133594289759654652800917019482890560499672840779556716310160267731077880409084921532737261126744149919265611996719617123336174997242474477957855200433879975545903229548169381859350278062717279345768791551037392067986980616222127362246655046774466746543246765729248025507296030299776042442802327747920395990828370612705316212120911729466433727121120116408930418581287350032644757192643942697314033553200198589627312520056752316085616258884576768687362315156050371037149813154404617813451597031303596284427059623515449455357196601950152689174455581700160748372848911933897992334312137847402054954428835031630880641243247722159663135414847026450489137064596655311463742563156289031595624866891175202299388276697910887513595662281788423379416277321791039007949541606203267973176599588507368497050009884051994520516922347245168679224178091671283867745705386552083850204980116986946712295125827250531092188743882173968543433922855022876022731767276810955922086920996585105483284654986250985661842091379927405028618661475223502265064582810513999952830581572295513008630778297030162861776212272497175212863568880745244057880920720883259433479778040213962456713815882776817937210595735332767603473504595305221400525851919564437226745320891281296884169868024758903235792352135790860203937242178923569737249469690809756813137360430787196047405137271796503707726168685016711826389345471623921035655577461401231877969449585506261731062982299771440867686747630772169313995338266825293430547557012051247892265596405129519762781070059155461478392386136342381640509624063827322084435431603423800009307624754631850713964578186623530410108184946624564375414351933430075767101188818844195154424885547936452160280086686878594464438311513914725018129850117852311147707547491881425570591047159237204361805273192688312995476214714471337971131011463273490814273250507399860287479318718472616086837659574676978860112870634073355899610935802904284508518991569765671718784116140633938558460881088617844743400389831827556489554083536460186428687388585794021618394606824292445450475481467427108993778094660537848718154313107749010742867286833545043822380244903875732958228865403924271525022528905734980055242777974123184777702640544572327066330838691508441732296237053216255897051620545089595807418173839645585004794636972277014619908374427860956113531403360110128103449483506833228760057245446399019280719500981228009569986838028922849108906456407778686742155631761111767207049976835476611574034275471119272028423897661935428708470292736472680887683346957314016965330877904131589878916292193059779491210770924233087161073797606155167969786125870207120384393917258445511326723865689639185168703294700187966688619785988212429052970641132314188731829441295559610106166744238181874337747707637280439580357189618136691316769377623243085433575676661359652240008322039303900947649403098187478195619021863985867037595664966357074446344922906190664932093508905849420522611343736641558111307900457605594368941880183539669910723630456765138411804987145377182668391536031097795880678560991746560550254418786758185155186627839330779893854005147912818487707409937519441703201423404058704380859804902055521130527020490706190415571918363411355998929381597542613307931016515296454132853998690616595549375004195039008029415731202825288961648699893074684959014160218241413308343040839321996246283384113971961703345964405213358540201293772646546910141495688627937580301080104531440961741613522004260014370092256235028448026182889682949716620120083470027284195853422317056798018598505470415152858228888109040649046910207930649158713339758543686815941945431388400547497203771086789037644723619093933940242289813289950695435326085791239434453008158388435674087056449198429965869444573471501820943772265569893057926596401128651866780063863768548606296754686109038737537060990451223533207477531919895833027284822486396782958024239075672266912457469899734329858518527503290597959233068079715182631643339018567639195366365140844270210856492605083889652755217745740795799701253193215092356204763898982705790690722511883678433351253178205146381336839530175720855548994054022461583739687538515567930374408064509653623158213876760928464055953191429584598553703158658752269017584455052333419220516716873501365433406837416249290652442574515465016061407214912882916649316909594995029142311288028075496652860200271901450233172850509744601769119081739139863175604964148629896087220888979548113898712188758602254419052257611613853063471931674285784329964700295367120507408258132659255508721149263173553538853647054065236569998252112734271569591085781836345992904929677469043428717355204048300287313458598355447354598652883785546161686410361041141671939435908344528926707651017690148641991138441486658022396522166865089250940275007416813268970101752259942084862930026885070615309071774466960157570796585854047204329699885921836245569493354578368158638653923009236612009234759610316385484125199970413735648050691187936977659103277880400703699651088553850111409000689487587077277173910333252560628047350954835251984505292587246416544289228386718293657797979938628576921672573158247762762014994256006462393297916765491783011767848572370079876129345991804440399856200614614377687918669123559884508588081887619423782128030785249181137522490631574157943294886458210102775951025039289432854160399459697810665795298448451901624816264373173125113726223981545954995071015286626368720047186011173699676683982028396043469788546696412006419769023342444376841789742561333337476876098773936419370801618529307987056342498910282703625504208665682182393245320283848768969971063519349956453956599743917016589789782716190919987406316584945554404752756633053005592545674690978867373008029591463502530444782220617187144410086292151856725056119659777321460873049971860365455634453584721374420280728828356876448990558326535103203980728659853424633008236579158058214806986464304255207590392403201666048466877979920878246027418799115216401134712410774398138785678294394246899682086657647873591987258123282054136337518707635294122876272405351451244986830281059154088052762879420301380420908618335720615414381195412405673181017671982393399836516909216678322358881779768268675794578704849543227503414868268824356711998350310096430138698081877137267362988015469624697389486480493827149006265369632462752239208884306320040205197413852904179016965004296890630535359672047264228470795422473369586474561362377850849421735953803684707154437532959663638438598910885631699862886046324468304427630828799361551664087625146110916226579202658666070031831888544887920262979024028580776104275078108798900834283071483714299156851473966447825815449296035808126971977937241052317064784417129024298305325044471660554974264964303187608926556691939032218682126843077101346240584589709393201670888362453675925509881857897316562566895828737926755140866550481111062535791356044512493665355587551986809796363809796766285436207760432623465276088537832161003076194149280047568628436061716151713596989885795139438895647560017342621074028179878266169588940788499714372533910046395340439944725248795749838355843003002768547766868750230322352476416538631824436736439209781035690476602142043665516673390074804093852874057679055112892418890061518003174894521904127313844345448003172506676208680206347183343804098082758069918571875170813894448437727588688264835216812277718159402465186288072305709252662884630214892718257613875214547575225975956021246974621875248494578064416934374020652167552396494488423989284593276433318450784504667861543501465902653053751842974464575234194874086764117757895616020323136344181904050008909299710421624700609424075879004789474796650276546742290196399437090147645256815500717523443607366402236499112901277912833191981881139359585700167408467633092018739531279291898782023505123988896852399823248259389362908255712147001346063513362950681609987694454838061630700426666144146377437301146572254486438253390244707875270476336247792393248729613766734479014221886308862311349471011412200022439383057235838323944906840896668475534984279083178048186729992202028220426187610189566224151269297466035450038689317179370076661897032993669078023594802763816887963383548001272858187705520375142236482112669381052465750340152203899904447856956826569822295784060794440239746800782466899591029529048016281929122554472606097637139601424584755154507761017803494454641130049925232504604540918929601557853614840298381564708975055709798514600556234333448918474860346625507690835804727155834595100252103332218226563802915008937743928509944048413887083211753693855548328670760385323326040768182453404277894784683714104646475331303386028438997226830203496977672077862176074118360248670814293531193248872974762408393011211847705491471666249424395513343335347072621107438443870475999320592238876001798498049321148421108663477369885992417666674965163684032390449615017665298155181428180386356233756493171046350110219446926576022088972097186674598733049534689976418503102220854428069951305093439087136462521957999634132798945443173139682981939086144222069877186116921802970179783800684204248923842455506746197438265143105122555518942531030181095788268744294998290564244189913137037587747902737166172532894601860404631633051452705729497903630290857058557977982080401704004166746659308560552552060948959110658046373839264026422660331271738269642176429211520251126470247198695541494716327606030401998355803006880587018107336740116595965048703227217909725407373630294494108874434908685957238712273448154353942435642606307624037709844984201166841689330731606253615307297921098408428341972177263043153047852212125554211832425005181195232670912195740614919714613578342246950782588917523669605546232181969157730371725945124197282915214156982885651480094390997682074381747488965455892322921438597463339605350360799851363425160576716416890153399100049788108176628901054137192165816217455741640367053918606402204854754460164096406365862282202563025976749051687737117594970386707617064831611931055230074204608665295202674312035457822598703300945072331405296169975580707256501618873414040887888127649202656678804846960151608739538020239827023357554079696707244197023098487975311952900452541954205530951896640521468484346066561480166189615389610416455500990414409849537234374830204333125341242442544644715682328238685118232834671049164355805250988523537545951884652501831941021322502017378457853184132161854197780946396899893169440743701899906996589904802933408570119153190220416110399650898401855884322115176599928794775652689829461333901847854763913241354729331594798468183633075303630026331818317643119975267955425944543979399015386095770308676459023844843558819928500379168686583328471830948335549062768765086642945657793585745806755321938226592618668340554459353585800489622128315933817810048752475278115301169467178385221288150086763950853554071332359534182503586616174016981132132513532460388506914267271659819476579937047410765991042739147599619677973807226280286240957891080167908412924431692829851868561404070117709093880287032611126419390920496056151483590417072513786498438354203231597206448088078134659573692734052353575987541148562220446075337105853416282446614894616791795708633219853427330567239124894158726589263950922014469584455984833065139179170224736460258029480103079075826803296565211958946556423781646308299624120713431618255800529047049386513667683795116373392973008809073624075827454457371655640544649697585379979951145408936881732762892271013654645001008980505972017815377494779522662750451940520379117193069452371276248103711670562704576292390314638870185522893495985920206941190852777065570194342094853905471924243037857807690482443424273288036894115843133785863501274425061358224821836472304577947455012030247486635701409538703720887213829773844379817882189103810402868184772808920735206435010425805040548886805137596639395143983093282927507640742435314167288971501777985425335839236469210423607123962659854418753360811759562889388862526439533965290416853892023753927913888163341852853428586160418904237637845586282960000869400080027975699805536322767197065409750961051093959246615332902115377004044600866676762831673980047376540474428521473371630023798279238954813778735565005137689889175193610694442984865490149069042343679427695699289819115607332872681514669430501391637686984402627023751819380923372928405526967705637945710768427848512616767080335791895801857998981628407088245115734249896272361946314936768860083416254633515023465363819076494015129297914780960356200890821178810488585457147366018637468986747610536218753281358057142077486030127356861609992941190192063288922495586194976467935097224322687455897612545622596936910714717239227671544789484236392369270947384201855054296599621356357830827962144019866652155516617037290958633841029812430862955801557238635349428733373164121637661265881172142024063567702086767824324480103753763761673307263768501062393656973134944886417486832965259811939493317299329553233152875692665380860171743821605579600732249904505552320889959897914175397952525931728760611637158026992544890419078290278269797144328685567632147403854494755012957196634219178148882184435831232458418032376945343009791440550997042119252011116887702684949831348726868507882337762868690073203765100336261196764913302645950297571276377040216297786840589056142733696587105692341968561411789298485101085937372983669025461696755419240664326380973882732004791220051961604316270657012243385389801162158404049073112086736344820368165003937519328802513969660812786184391695359618570451084938492447488748854891620310863644293775392016010148470871644354663401423792851464475770614505558234806546480706461103434180837161301837068754498979457195641160775603649400085295974640845581280870528124749264310321531628056810561755596803945305610140170445657834330936720251395388774013505147207597361854408643258884249924397963972161788435018790885768764338398547223104910231310070844486161415830463763990817318519660200438790766322688860303072914332263152471007245926754194021881641188664738965698063992163021429302584571136802985092378049909873818818297620250018429372698743480749771265663144311758876203637993705952421060368823439213651481635600802148741689586663180269399916563320812282437185740179342056286950942114419657840187644624062733184537774743081183395861379013648626434891474595513706768875354459807767953970975160560796661421688120918119210287113810916250743803475805613807297503012774386766677268202560673549351113247874488230748940231801499866364472618408769864672988719911627495583680222723946886352901504902837374596892335714861607035383573446589298722814077230290011995976435331888979962253733685058712477885900853111082279404618632149639936458459837486420986614333551113821381712673222364219632392027585241776108240219684857663441939941478922170559370692098821517965852350631728537549383662799165883122609531716372616796312773821142851782016006141411415618088321833563715167405724039111605623193824527536336270576196428780882703515566648437916061582934105178715134747498669398949118190320121703261020992404884989944865113103153937920749098825406076896753086172229205371677829727700442310055226056882153419153849562044446669797397661127387881207490174096248167244491228844981628459062615224266386590593994132193672129750901156103238760463935335426455709232850576993798193931563868388652908949331272795897823734957405401497476418144810518124683023357249365745552387998008504504565119143981917098317063866175033796078274002499595053548526949806759075208071239134935080089305951699078463940615463003789313875144110694418847484722498900759881028398197311315800742465005398232644698163320113227340279291578362395474310937992440367181917266339199399554979053611288460038467714103189632355654319332221365993736085823229746928919794776035383283366117603947235061858054948477664210715483472458879554680020712563819141291921612865762676811855395921202935502873753045500149785077870417160429244462945337668019805483578393665666788872558524571080308958695444958899636996514457294983307551013452491558261739830226266624487866772190538780178920456315061724360843275554777841393440057050861225350415281873787517806396441511785090796384658222940705635041336370151116545203864897155134344565128069500209597001575040657127798908817419069535454280124801141828007905706573970739712997975718099654130041342785030939549003503807733351605780110220003329852358522633507263630680553768271630534308917159192212521014578635606865574179040524024894071923680246528530887667338724632742234908072934225493088743350108236251157709094134030404049390663825994309404701154518130130001336329335238129936726568728391438579308658907119198634749768932766044590363486502002707776852742869198010500510022375097180944023642742338767288371413679197902531145243975188938342105587931878456605169464495619094855712785120197320044720566495182214753242134075753375243128588290202659389864889544273103412468650321844483250799919803389742402745926041179744733319344993293029960855295453263243888136475333994252854037893476111533841812846211376837245477064024019649897782433245262400035568510641047007369213697994258867866160607894363560380100703118355679761031956021316494564049116357753052617586388154055435278993630436685608925894253076652632389786113780174895090971013177171026609542902819774440653778485148946062666054645441621050117861518616809712029810096614867883711809762307175966090620752753219270602485159643492290438004475475989207919405643240505510167293340025122037366403096971904848528839958353280117116541835298808324227222951427387061735196129933896572676116391177496303444952565336748108095861029555921883874665192567368870198905886672895069503064012876150867625838807870162528907714158677418683765993437968715764689087605833238812737683882965183095717871928766334273971094774168386387321458492745997138594308592860534799414889120951969080221550307595415895707301587093177255346717158787405865593883767193701908182354102196066515018985068722129794392617657411107411606505332215352981309065468029939936099413651989592591069271676541596704644701141730659907257854521865582161046437357814037676924909815096167071013424591408421424941012336363704738252220466959867730511571869715964382555922980041765388828650833869088300118149752417557225288945170257411089952034232304246970675441895709274967927876769445196602611969835100756916514632311593565669102328549683050180242985511785230083879795201382662503305904599892455285602740706013908095459709205564472843045027244194578051367248561263415833087289721798020190521305056069957783354630523776838533211254052411298183910508760341891446692510351244066305262730280339700930948190260888640496495805714506044116372656877765652580569501315811449348331363439046703481954227287703907244470493988823710551465610253036216879414669866190460076185714701405893339668854876382698963102693467502372484158782732161448730216538800028446253794512186506123008067498768788685764939264308653511918631514014012649512694373116962522617861669002751505062920292537268887208424466478445911718097269402675210478443971122024767395835189511350886862785168472951930151316471803129016539594091927984174265624152851015942042375521484080258375981145817662076950045593713582334894158326827287886778842387596321064999289449706451134557968427747139189392718129575525469359139321313522857808627126978353230688250019164331465439891884435682901077606114946686097950402497204362595193016707260535254995924283769006968792558650848068764508887590586450581202658881441290919198740522297554114342838143445317470085216704341719747286021341115793176631753993832834091750300731766947511247219606396375280111665946593647560815408522078105242982493596630340813468006705900748148501130006182808097052802418688302714058397359932425106943374785331564655031094832063201504737886321610065674392810704661197649432666749064861410146831943385550513059152325661678763857393031132351796097231203819802468696856735970589936528051259063586506725059079432454631076173465333053553512178882717706771095035824017566245666025531898014375122344529996589673028407024236639156516434132658088895907322144738154466477891226120810035219637164953637663733147036505761849701898278036738414962040061417993941140618302941745325450402056358480929364246619341222558357292119963731632589870630181607908053162630269247197593472128545482975013723018038258538903761648101001091325673651955733623078425282996084063412472775721145943845803408334407842392112466797356096602085479842828177490237926490219728563130209098073739026604217052497894659998863709167434105054540126209583137249584795047796905918611793698016488509143054056601440579720549694351997676675790774996844763003863983800290648327186079682689091165920060288053315652960358445052909290199910086446222897045942664945284586044217972312004921677132567072593591636340219680958677580316050438975603578495393060058737874522982154845941562314635608432683915449327779742215090113413693262984252590653706441849454512603812078446393822205220881909669385083270607356379908049756532654331593046778793700052283156769076471733025457731438690661665460038520552181455286670547080691188446507963175499565013753589755001793444467506450295018496109283054094820794689028636434836975854923568262750336914203491248741023804715073994914483114646839051210576790162201301780920380018009507449904472328201680505003321543713180195239711825600594030578519657229082717588201989097913739623309410829338475359403866624367945606907916244843436442882581200726815560283409414237448051230610758475705296695974962783724383968566551919776316661917684050813218945294179300302119086393598315853094393205545369122121811768534549998596838873930490762389648272644007936068118105999688260902862690305155871895378044384550248851093186333224300286740885608432463515827224430233912303199558568107309633668024563249718108512979986348505542157773222774818936432737807052118127114365493737019637203345981468819688864868218514232730676188187113653833930520739284082403837277875393525614197714662682037945457967657243574716863437887368061716056659953200589091123138862217552278682019668159924509190861270532111889801960152356292317564664378298295816446405867698495755590678429610792242338992946591184651511931578711726566367530176444319520602758069073739645278358527596417661980631916392756806057065923986826135033435416843189995943297869576430688652531047876013002356927606331816155876797513449637876496690129920708872118945251149652222726180140817740117691204035416319024256847968933464770001789362129169622388354974450993467791028030526520785159680188616618052873723068554409005457366310914948766101465802422297829213393785557822275171465991295854835229774095910226742373510656203541765358846094846074096962450552320713263405210827961656844485092653209101879995916670929943500525760523038292039142686997946126693785174860269989796503970440173680582844060927430483277969630916978800523565295101336661516170127591527917324087648199618617455293312810474707350317266433919476221355121337637895413354462915049641901230114704355977897169995584632797259267584160830193537445936780646505763327885635058009668135857501098184980486611777527381193669419036580532620124191600359361731796546897342551276788564776094333336025842388942303945113460011301385510180474319064991473025978703067183523440317684130945508584179037559099442262143764929446483192242537612410950447824964633885573786307879316354400065571473122667546093172571763424518244716514855288585083098753149507936435339324667865831211695067853599422004346415002290508317840361440803990488250264584846181503352792924466859841698096847382345495031020065111885488525426039050443525123631857795135482034205928944846919372932671707646913066622533968646566254646100779040107248229968071496318691655272747089832383393776184600558595263384842097732371618425950705004098476138727328920744359053068441758571304464825730403662944378970272045145555426608661762972573355962412563218525363597859226179015638916723749053183022902075622530966553552294555180759535415338508959959610359649851399228081772809693586248776110959001750717650819574224161708186284277024143438953258890546713340434067760492215169364226895073723973778950722110955097556792174159273268357955114007239186510367208344811986537642448850203954666195449246324571231706356738664317249970495604080250172218607352024530066056189033596470857501911149656603874547407252783262743193541136922830533511594952665643106248377817236025179914425783421700183132874265520600300449350252226202813272246257437277465788044241668366602972925747451941386229795391013524335637082678671409096461729399160223085220605485119615297342266975472621003635799949250839463936625722289405019239917271881110577710896046848675147709942648315370866133098878218729080268571811341001275901794637115609749357811234477576246345491982151914690229110521736322014390793108824168226261305448659148616405084564822946142402642044002643430751607388597166094007853124862404110532638427705973748066789525532921569168064542579596869253289220309958446228419741074065898447998303244656662065589463729611851231043835880302025278563245784033082039249055573883905078810975886294957773191672766170444749503289545593996533868333854640888221080178898689578026512240623314827288740125342618087885523456763111844967993084602526444570844509067486333428054912930821145966409253654606142526769148952038553345815521935263223177275174840167464793118558202488196989182106094669163612247458330764902397510033159372713398496348650987082024935062337989134457194164715269718811630957532981092789292314350097802110097347921684676028636316840435235061269117626336253612688954380436061605200186018936852416974760925644190520723566468511798577475804101448780261056346310563312058306599188009934701633860268970033465711850500039238747825196536201495264970813153953432844455057167482690488035137696615318487643961786042738943727640682791690086810754099938154003870940662315859415233999428799449668490887118191928020489933293861963070036534179067094214003029471517355312553290641281848422760502152779282317327482759989013795616376926526016870949914001197716544872778347186520346063600260924693247640885392415318962532816928122803083229541510879257679205839380046932587532128982606775712148717179343462785636830104462190420745018118860413761583740300094594124204761743353116549586775982046352058698771188656073278382368836330533002601671304977992788485564882707741059855781744378129807700195315584814672883344008469869996630711771070666133865767851465925284940440301145514136196660097914184124035249629692553437410539747600120372147533558539262646598875023105454359945471459842701669532838530001226288474440540759735850988079939940241445578303120740783009705007806335987676201543380324554794023765315268853953125516332702919983231835779259475059992506309304857572791950084506356619320976439890112655981467508162204222549445614671064666032979055685231623225633395036417974484320582554731985970727405870724453926203030544011867575591863157771573253284279927472752255205815209372255866635509195589864789152239045597171596143222004651833271328630516104364886211144360394227098209595604794430965604301396664575890194134287884959727572110881499207027473573127996504097256119616773724571838140076229812080639385419550850214945864923587054938159735650944824609674241104018886311774660657786689280720171953394128649721300886755534704796735805197501126076367270517524177644204481225788892803064502880316279276764520507388769366360618714970453045923900538308193574841623918655649800829583993303313553540528984639941585539453769865468832815396178109837226036165152855908037742973515610072526702405760190670568007204324494857712789260760161717628606947389971260696753158710161392673407342222210845128060528003016775958770999714826143559739761100221584165519907206943758285041673172329584135548390699051874250070140630107049238993629189040498323396496198604367998804904641491520325493388949188567777754025942759594795737057942095603216893210050600149344697686378258545817983025842122462853975678144033942212935093323611037658439100566270760711880792054589309660863299740665895529819873179142240232877131619469685759312083062884483242557305919217991191401844787021814887429630361368666029844866634412502931167337038196109881745286390817247509815164626889450440824077148132635407837396865438853444661506783400153490132373679261753481351945560737437639166572156076455052273356107451195854298784626069145758409658726392953054959496714539418375062452900715313547343287795299440905267081014749210845772117082579316918039506595214006053740727471298279852729027109487177262218589253822210732518457162452884987386906244808355899587796900011879110607499498277566661046461184157040099751384273454905812992248895180767290621233107348335140382551149671597386000495254458295233469923342685949371699725144215777610924604453557405700249733526145511168442107059686586542467120952460228745926270741537843064074410854907564253420712157298294966259128694478507368152797112984844079155228384170727783318419091449500873949298712350880862434367758767397506563447422332880719685849475439270908498363054249078039637864846084432510186985301871822213276663972463579799152256730785543583758989608760346336327900302783140513147075195049832097389001798566155327446241360041292471691535943649946002293625891093971963580313186733864420035155940205990158686809087799651692524349491932332783536759523213683741527154600341182341515658350626531131168257676561279807467811182316721851010953592666481080128189083928673975535397635454612656256731353638870352995784531313517774649861269612498123875604689704071617803624199577857032201188814366361194195239857003429710569197094989449968831308318615008689842606293785315809336799359218141510796253694490542826657451145033165620564755590627992916548220946733506742100694173586736119928909667491318079222886937181834071172921815266649716218019282186586309499495030379258743643407944920444341063417606804319750124072397720608323698416201548313425443274256433100476994124223706805294837300936511542720228418801400570468874755539128871587339965831969769207133648838506491851738929131169273601377886946437465787622884242554679888060781557987889285039555487838670285032619978332423414665519562916739311869708005335825170230305759026124395791912049949771930510743217417730055620752410674599381961758031121411970337987748309118671952069036071959337881653433944444586465569709011219475484309321467097121253484954653575663321125285374418566331874541835128618701359458211143973806743508440984887987458092332133722567817349511978320997106005572546935938000201804321287768975329443296282501895156304385255132249975730100566570460920150494014191834454638586557806930348307881429939694770398624406948970451446052255082491530224445984991135408416021156897103193554687206901320858317037687823522875450090782066551869820750692732916758356391873008411173925178605007111216553337241201031964220551104650130393288881051287207439379056781257228284462626987800956876219664794374362583246051611552487322237367341565194114434302819136581267291872172029993800818427516132332707928166200626434691467197776175913453584163194041904897075754084079299366171923434915038445345346116338728773980594795241296642276010460434102704567001939001409622574156835801017760450117805750850328447094735868921045994191828178235491240286895201599108599632412169932241209070769831877086638612245737559716510660698027148876837327144939271466745248956173941976888397223233603951667169832900528728578926024213846124411504469805626131128360697435171998462238528044671105913883375258121895665470945501968265972196884091624745040198283117683835568131065243972233661226039585555629184900277266249137245077961166140510124613652321931695854617189864102992601775534492854591355787293754169483953117792435652441941395281319721646821110904195235680614222685954540746321999468777930908347156528021200440168289214047367612761460151754930140679154530951702647456331616789165618549666951847669635983952957857640146291947407723907687668575713806794968029846989544493585531251254717354264906179230907787893211657897805143567057660422739523872123065920191114047490393220120460087564889911533403962874181002082991801328873098408224635780701974918546313176420081377795833189888936043377190929008288056641332107964465517713712329887502080979381796242082920930173832411599513681211270145271325165471594665273396444980556031883295877833870366092675801433560919209558901024130477605860224388825130819700617389871886442081786186948107134414863069946815163076408949376251072503593077400872801060920715446469693317179529606868808412963527852420416344587299380903671541794730745508672160989455964958206914288112430873911239534314699987098355592016874578355627801183803113720457799749492148676882704814258472602729416995754347919476063354348639145382865243676455285367901270034866460488043284430489330015664451208074902726744801491606267141833644273135546586036989328325977070597110773695631089733296541429916500920570122662748334165171963294257334156115271836321748101675943800331204269234959152794833946847203722197507728659541434617549367794223477696957981548629501145865969086267702949358738753933073078052192385597761767851756995383533386634126504672537215820312360557006639423846047231722244510353181768387743726821495599501366014307101397422057076212378288093382225207839673861194234895478268744461490963895418936035278556337387271319391009246388041851805625277619413260236798811180624441050359001498412443737141795638835780466173564689554348299397075919489300215330065623327047527392534888721229200748021126441167578199109316396252410879057715567451671218545863119038895302758564962810533952721102525075078802523915132508022125594764637450852564943515974109511561881438401515440722552831261329098127994191884574983937744037033650424439171220812973879022258938714043466517964414045435747890539224038392704929040425314818066263172173671200987307502106782944048736909338234830924118572146198321064093447516870392880623642998729390177072095734178993773279054872478060470702678896946079866350243962816521932810804292616685268497393764661585963770871138053652653189730060364890833047980837955734857049516064497043296757283668888563019724609890747323291391826610010459610340113338539989453056064352509707794404502825488274692617669456252378425567125852814362065992656956668175943582469964341795750049814020985303141206574930135170938025390561446711429890079726053173103633991259075422235617281783012660405179160937943249252245218989372818793909586145131258034324771029669684512333650077397821058056307994500043254188148711207573147582033754474137953198008099070321928420555323410557801794419867707733671169519597110745821288375509216566753420109633120208793295906392817732083614968661205415216299564400745709910768520752434338414203933168450599809690056436425228146506944122025958439357877841343850775145183617752980204658299570045782623252905796335887328877783561638813641836711373278500797302289193181381155145598861094928234107608527551602445117870018135940197881226487475546219127992107678559254042040124502633952437329035672512968783298873611765428203539735098132195321918975752819990705212423111816371261466202270798481664819455734136663128342183833988228968827128209051699189068766821234568126317275467267799716899216765023311139838750186269842237191774764092985874872976152564305581529969638899922248307430096850540686466532529412910697151698440875941182167707683300311626421100001801582452134572571431089951641239512641775611950211712626347100589351831556427377056339697545276556439650432630036035250354061086791750311473532837109945627478297622589688157143599666186662483048083905903868881872917172376461090884014112719924547288365110864781258848567174262221558416895075501360841783234374406218584831930542175672183851923889656775651592918633765776719064031034888733142194978366869095001927558927881149564296155630526625416269711091425963294958294425473593991498946710632973299769477074107219800241671376278415261935847273603324101565975660335885131388200035720419846865755253329493532984990460181123009677146577750888070845838204477107815962340525313430281862904412434685140711257569803308950217244949516927790127728352435331395047756724441228722827767539107577819581591980070780232345958444282981041970439816780490004287351074203659077693913543897971153017337052863289952000433413972355424276005142515106665885822275087132344315272155063517105389695128223305333655772463829134915030275071963419092745202560711669698666200491753344226346034744542914652845232408247258255911701164299797221711630510579384045784364536473023689481721558425863884333765160420930722731515940640181280862188769548468886829882168874955470428399495440430155485395461137492701038569656624898755876673020265268472315146550262655386265815523354821820521930514772253571071915146178116588279778559213940343910127693697301276647008554659702876060329867033650664073140016107912047374599869169162829228617043105024503424160715758140130600365309871195647045391090456432770195654316618982158527821808661810309461863689095528748428095959104334381182631440494146991271136994933590711824329036964615864101885693566670849090070864007636487258961633443328455027942930044814035412189184601336696709940569866989322048023376099516756098129864631746592434583230027490301126448154574570877010790816462275584559121647489448140256825322252729762868660159818962504558912868681953312350044884831790525355332195920368260269908727519526365855056200206654276141695257982107193652671706107947650506948435967922160339321052461934009706323298611284929504747480432950555759827637636071964277444999037248759461405097090632931732743988264193601321345368834571139480778812654560971895903590150552317613620394785292031564815345027394441393820302348362548287112140760001294656629360100700435268838604365880365643191552442523574163533860075844724458217338811615117218083782370416874760739777724540938599569358750613961573012473123831084290466288696452404775909069489386851046201863366899332427523234875945956670553892713209869868145431177454773057721351732076891152638980264894701323749433346143872718928862910896322183144136150380994725471829486465860720162184040122393433892796741323177307734856685201435868952690958003857504201759274087752288316480217655474909966442843239424823330944815810183871504109528891288513462474961428395018759782506768286983659105784657942427677658997747693498182453858197109674944908673359807976119937765291891577898972957317038731612493042512669752957049773712929666124006753562971834076528789324223174172391705687391370300350857779832901631551550912400851119446800066012091319303011973935545282122562981853812517105820181544679858556266344471392747040391241169764180838287207506368717470351934789300689835515792136371683213364136779547311715434998526586849421553621010960855921525178459758705442385303229290807922365159410231352074179416765930791122767409910315020887934877219076068746456727910101082026725702110124246755068218378177959225454173886588152611978127107861913880587533031475898479397245399018859832605848494861602739316030389671441953917009430173997980912745238516135045884919241190695760258555086115809841563169697961452116112864549866414746393035860078495767802921112005775409633389890536728950347222234351967247327000485848789926106169599082806377228933224032758208195521049524768154721917312121354154517940900512993253618346504909862715713605510134042780806979521424016310368724646964130676097332037722730674474541456579438383209029129057213875610119646343247332965797523789548820047185991794635843579067570719444250421816775533807471861827705874194462214542190224036579084636328210018664273084205906613206665473024983255656038024443645982359695853222429340319041074465601025555486472302703260401771904529094466997502589104452768150790985691756681582486784517088705500359451191138643640479561785578902531767551066200104837405102612871001371042627764859445181595753752358246139216395384197179798867640915473181566712788473972910126340519710600437209868144210619458563730939992325436830801650929152456697412415139537077589186892645376263074952510460566806397246460877265129580607382440527809933476667353413051020039811663642569040441194876484140490929442840685662447074582327528471799160115882919073789037864220374097315785461765442133141635554957988965420409358030499790541189113724352535859551839490153266997501986778819957328147536216317957929850813674166189813610158116373845982810213516414446228167017150414569433360481800865820187520840808688901649224288121554406157311474721215443193487159667217335130703644971083471177453164452943141947553051402027577124387861709602789697654403976636897674856782202397798437508961415504519749625333904244255616480264394759494955994122153915433712679363720717577482549566319654604154086073190844919381050496984224927889578587975102071613010265179687493787195543107176471260745141256247500033752876941011247705856154757935119491153969013310238561899354921339857522419617471255594036694601145806958318738700426914955126259803899224377816908605454136315741574371800310217100611253703085411852998791333002551690590473487820359905722435281912856170201497346382126107212714863125599983659014437760035759502490682683447521862958846248524785485338964042821142237441877804233476067252815075664683353535845029043915762937990582317156569818518507149223399176050218937281563164762878301725760351973253941992675494064076130809446243564105438822626401665621718691986534269155317649876554615112343804241827541362468021667218888149310632947791590427516860879101624385304858747915542485314010926528974115815768886596778961311213735312919428251247319260668068241460125841505973542888235895854689260125801049780122664451751154956502590822714641153078852765506927530071835272475325836730081523372069241699126665118202678749303382448671786505663723064082847684469941258991748736181164227757487137473639444789038884667642828214476590890016107291921298375559632260950018430772449934443378050629536583192131531355466933898019480309479409223814149408204424326943920786386568804919074501258068026576116918348613675261760637125758830295130372561088981443734697368313866631593957110896928094371614043530140243993162812015085874434955880266569975579438413318097740012910510508444794533629767397764476942847066411810273997515119228090951804321039805151865717082811635420737070822200868799965465974581388629671578955737688839538642329248537642978787040865151146600916288579123293820363719834481813899024676290480024083068383588836055148610280005455912657572193998954053457756305302407595953624909032750172295916040301173113248373725507064538026907843205598386595339416919294272544601065897889062899586119882450651667209860126344666638399659640375856357761975422060149528524348146159208762305926097095192198644627658516191206629077069837141845392645543477765321449352045673141470446810956851442918674835002217316794747242871362668549043747403292038484274643512496084904708154769204986281762054988709818792543771924173623386442828792232848694202472092689020089524935861441417845043012585167670706776858003482839857919580764744466489594706927778011873451843058819975573184053799053293297526805587818266056716167762664419000489295142402082133565630350462708028095488485883205948934240183534617768963378035996074034920082830790441741539364256910888603752013412690988901917774157968427244488728997321528719299791960091980300112747777668463175088188737902399044585132142264078801039461248613487214103271847932911588735665774422469398675713992369325854256863037440922467884761997720375052057460467979657262470146313381069158775030374733561491206189434271694756574101625720330615400281818478825539105213404223368435362229381114869728583243395272719970158895068648830902080665756896197105266442966287401918806399718316780587431521360739024889943349717058271639154223934308462226013866440541043652602633328127695393351928549688140555973657237177535001287008919520320264569710323429025059826990397498533574931352769823864238941881710431846808456222502692566707595437846248503195961594661555954368746237510697289256126619151182089036570622110819218688939819890715520706046462360868309833049014208276300503309603018199788634680430287808015803179365124371840215634947333188327662425096773668809221305453841322137500758911007918480987793433522216773236879517665481839693771606182908212813771747782809078766876903660653130124833735003738479227679069139525273469694907505658537572089590933547160980477458541939132832880327260583605096206743627053305120682051555637405306087860757573657465795999842393876024473594658339750197211556185131087961526097846868048379086869977066758071891493887306262673429330362977786674835777407813461001306082943824621232743014501032177479573767639768723630610612058922776030039804389235254211547653248070556023936852454089335555656043111978956270862436017460451577784049974481152523273981787924708587703097833920586318580124574651024681444638063273067880281947160220667538548368605901879467313654017247105614334776483365762956577987024562511315378513584141303227346049267617379168655286597390000914177107608630158614662518355275136783571136337938799950456904906888508704064159670214437014534385150341373819055328276841167574310316213348450848567467502628205566512278312302568007707037024858574452203527816827082851902610884537214526243118169347391073480645150642722459509198734640099627977414294604325460811796968505429992282779208713803638695783152827043906838095156792150075530833707747723818191420146530041558507353673670269377661387283918995711824565272275432945173418543861072752894411911866756986577086704642750731268132608057997635512289438710646396346719304704739355234053030646279827647707858299510771557022919651093853250691037087277355243924710147341181635843107522281143388696858145478954888123754512517001232670357176447288890372970535372208146511511302739334234241716213779935336571845128300195186798308293657726705227862327114393970685673333620387336795444132026561691277933882647233465875046647032326756644381917422830705348704592118472499374793661296375135403152370610920496493627376900603776719195829419773863696988138638424398983512182138695553790746658678296161947493877408446297649690793718606559350179217299732628814582088492534162697776888236299193820893762518841912325354018079626206300853723056047643050536647556277538919640778695261988323184793026329204428086030674817470945081678682879276107916224544972226156188081083132801705378133109088409869167871655829095631280422477647718473692946339710159264166002391839075150989099579755553073423289268517625547771286569262473482637667997842427760076513920411352082863406718687782177273834759029505402669892375070214377473626922775991117300329055917524162425317926603341176751771328861601113601853118405776129037689658842388992426264989300827194818418418556313480268551468616590706476228972779244152459827571690919188240510982733739190108093009011275116220960394970568073876488343388771874046455957357926874600764129559479510156550722510829669252131942636454739488392566677819769985585899593847524820663874608063673958505574328054341911796125225581384758583175682870363664518450664671848049113447738608263249347580364392270659533461345942542211802501250570191232525233642718522946935129125583596318402354411946496529728787564222693340175459288655834442509479077802295859065701144290800684078342933265336725333691332659802356278435494418923398172631049597712652968558894320105526599901375750098200908374908942515454296588240291515093161147159274449549583974476853091871000340060686203887882709970420557170201063402861564815055576266562701756409824400950897130427965308443118318078548710763841117839427227036565013472052374363400289752704332178109767020496296388835814513122397747044949299781373987210296132622141113695313818900928162567027503572786721901794372741642737196870634534351062950205756812847713242429247329164083595970353498324503507518827808530867263017701404790155529312441650130378093189334651642020970911180030516332382135262068987733532937300089807826228622422116950510414827239579464828468104402156454077363654396732704068019901602969551718703196094716178385627956206898299055854364177899191269216827122114036379327658824842191282336605878483631591794554417025126877895996945705819174680295652881289940421755746281588907921245942182281848321681642758972201823934270059670042562642424534518342349844547133950865323538923471211471260384096727135169785031418576479674316396986213573749270732251562355004225439578816153317972367634081364560925908412488314700131643693237610332428416846060340256228369479657913007081054299588990987225362285887338275496883397927697130538688324741757264635147267486563300126785468604582275890273316980882323459422325639282156992916948411008818964621581270773237091305301922418938318617256080744376274085517264066727116796432318614135649413224682513466694967856943405833974073169067118945520986682337023241851347787651418259114666279034101407497439768964866362499780753944914178603359746186242681863853915785834925915337735556323295658094597246099548864195261610591532833156555872909634939282724434066544615227098213254761978433035157005162120527416026858738797430003069570504534460518818897553375280373873535343594931060156678333527324041302465330990513137066653219513013118539376810371051707685031469411754074836796997912874530930947996592097583063025351526682453704132264390982932878727538793208655578863146550476877161645289728534660692855982329750583252510284410082738130167411693357522378967968352920017353248458198729379598690320027858972924205862592830608145493726281795722584508527647912832913714036474263026271199960239295916494909882279794521785911117583980912898442451168534900542170632341261603548848895863566264883391804851345641037920809582877350793137011402617174413787265017592168447207893384998723463120228958922648613986856910942787762558861965125663465975637194296713753367420161171421438564395436361521738290254424788045872630150570659967335249465011651438055643412144897506429490399431813279236730882539160698192153629797288968077547084943043824776523248874120689418446423071998442940421637808981531701922195970590298469047502020403431256563490127202571482113110217099941968911612449831151069668170191720526865534399812235493597309171891797215246893364907109277699598307513603031334085398251518725061473424588754977277797963202299755605840995206449085195502824306122042711996595582997398708950415634956335831984669872438776176534457078137848310155239869189899666942775838173088135694866700836139550587718572986372398979334774034653272180162999178264244447323588085416609566451347255605768345951359309906000828766991188380079649200211216698225555217789121923394098583763996569752409885250671191839925130404462485125398938407955333958746483686879669180605456158942042586608817055652573529183597406295790078944483893189690841614374254731468410055619866725428882541518210283235627433143772737487731994616514790313327933653293788461710714911724629244765817482905935958499786033789641028539590073051793743694935117368934734489969416947300928861557219156308848527319037050467343560753584039913757245438582482118280125194269703143003238322112687695900233616705862260720174965385593699253931821862460262311719949836094417223951471035417738646386852199016529247864231949474250218351410241924210445693488640091769311740400842882091328157739755926197699857830747086569913496862304262409730199990065090118620762192915178497815131665454243809771804053032076457619271461149120522535643610964873730410616648537753435742880930535703102724022523710189563074483470734415320530599613381017472266838071141596605513241264408364510866888043235558331441095494434654064887874380892512040236796050200161317475012534263796399768286344867411990641804964930528971494654692251727156498852648100390804354879111389589536595341261524994097384553330080783704697224802021714727320989640766251823646311588100257904164159091459789400166084950889365615920076598078407741807894679961273204381347844347756719842894860574580728737036260710491273149289622628814454513555553298074888429348789709173097270864285897862666648893967657589222752905005902665666901344102863373795780293654415133878949694120185600814487689836406490561593228305561433855514254045311361820510981058608086738288195574913103356931516902606638584565552824136353199508827446805927923867089973493644792299921827933449096968482380753769142675917518833794237224897160779851115293191787196593345601993640686303878281166531787961812526289327075205042665020449753813147288288437733661973288798202820259632679459617387258167598741778714139702607083519388034182257110407177863121088877031879088915423778989519710264024865080513218970173943165632268577189838775112450013830899918049575642090331948460170370439163720500670530877474253957866637713860267553676184057023759731761793819165207378271608467789615069801885068765409850520452311030312528388741054310458642583911198339572356810781022846892238034301874398570658488799023779077697149266762892569408996674223786028034889659969994337892323867607248090417099997835760507012092012598622194972765336249969790150750084102326347094724999787300595607134778347075033218107324803833324717038199002674503784703631981779716370038460461516327264149602558735909067949208639266914619424882547978284315753700662921560489529521360375866337650278971067018051116151474008581835745455328144150599475541053404745676176531721289991110304892232534694947068220755303241471654421154233195977125037036253362942162173071360820441512944500444958389644395088068583258026568012609647750526342702076816675184667589449792802987461382797176355057399642121053554270653540325205910988658292452480858623709545798696631069443968413324786775601998678833004042920923814520767617592523764124633757516161195185117638012600933640929107402456154762891016949226612789395414932193253618815784832725250624376311454510600260935909561862722939304936164380929925456206073385745770252696572750092877323451455251921106929777039966476512216116238972543674688472678886823699962363238095075906340246195359037236877359175434868950105792568323900760180368536638103932633269325259084109715449705506900166644278429953588246967585262905964087273472287592707974442910194952166827766325686405626991488685447698030100755563038480242727214368766161088416265149688421507624352741606772693804988271263961849085360244485142293629673720525858065561583921983512294082310775580100993423277521195003127162246057909019402918943009399308998958164896233072107899059972177194211610647316520187081432120540847263619746586325555142046008964087537302300974894840870004180680370381468396326998931980096864324794073186858982619782181880004953830342352020565241492360609042696415323702813349834572243252575873625800991067132251732415577143961315537370123117450593391868458814798007032245020619663086875454205544882290280667586001538061619461014917411822145119702161748435655118014989075421445967093720659101224450662370153242192621742218143056142989395504932164177996756179638609131172122048542514128934258928382755195313799956854981258014831220004260469704791088926413389165740386957184778103968344289059522548994416213044270953305588577698811007075775421385483476785600873599349451253352093113634598972603228119933592865353426195898672582043460272910594358357618254606964940340851501018294466399370458814631159938553336055210827520488749754011249349804125543500198729242838938203350619004127333765238773772282775198247088286936207954331407368075146627601089055194211345897401107934152988782131289892004812574992526572478540197125235861771592940432544729209490322016806958313175789058897460158972229479688912534024654711155818145566994688584618995706694291137794827983461750633563178445077609292021471704629953325806272272501598988978923157882184932879230842456353589934831336432803287718174664763665844556600620978851779023616800131694299218817124087004332460793449655509626967211899137920563766025695111343580756595359037143780278009006677441822818277421424655495201331946849025806385624943431254538620443345288311100048613645837213903966022065729718938840676769681761010001187918980814124236618209897587530024557126675673334424737281166449271513169636276662273843511931054821088800231440092994175384644028985021553997377270486158691712672767212452043193169227204617638701333560285251961378119540007354850738977078012411763734496636016376668785472764788843037582243945122903831829854519350846849181231517526488581158128015431280488767882082266042932391042748002647222543524442234171160716972246531437212954073338988372499584859809718543224230326135877051368665343692187271857194583082270857351046447921941402597351612661216551768810800889102675937069412739677038210161958592903040402857741216324303175668225307986646547980617145447440747298048469318091650998153061000111611228802156328879901959851134842022300578599103210647707332398551483688465376759726186069001491694394581245812818299520523893789306229793283176477241823727942452978584661377878529192622267572438544900814279466579613122564179478677916984918019316656156345466755961138144632309244711950694849834150053299077981292788924646087665823324743801505235369882822737070673557184153196461304373068672765794730625572290838321058061142007259571890103905931607438549722009309724190347670297069419722710852087697118685198457629799340932992658227526091900815835801799335079998949488239468284738374567964177471858039614637458573578997180778025985900129565885233930895066021957212420117379741707845100582866231207007476026335446033495749091288937972967687536655564039334421668127088344062706965557051874279472506872076407560656168877637951536511815186639969210761466886318862039176326908826901829614296981546014619543355275300417805353500843474987640807447653223830973324583302725234594806579374232530981870413413822685426172061206178322684060093991859775479621883476247334963350515745160613841716479879741676135651662683901857357558339892274758900807157541850639132020765529504814675321073265101847678011990935442020968754654917517048971672159257929575332740160692313128528895153714144521849627568616402830023444641562224257428296070715054825273995896370145162836754633909609181748962562218909452770099395685743618084105428696593692148715071827405006957798838777948117367389023060190854775428384955719700482667499201423143961118281740695011075686041220250414146911876855605957016248319160918274217887572752923768426104020593048234798282099152915112843640140321013232363485630923451549141846142624006233265512442978846953801741291765989773522319348568580607025459783695207008736671099048641487869740974867826684467741622053334909326054280083334604839650247580626195862495189964304523006899153791776037657461032140234254866535278219219080831897256590933829005509859243624308596268695227137385739449084617601369948728124361955561709233680334207650316472539034143198938122646996854721597177740770972220296956061457685456472957259319335707009558470902011678053213893563119942096367932502241348483226658272819788849132446935742278703312282221651684033032224620100598252189558673280636077124209249590265967073045270528769339165903371558470402804522734514805864780860949814543601629941312149482450978976805144683373702332917654813250034189998489176666537425378486055598635038610020393406136104392637693176420316018230296468517402739975755685004968766780585184072147268382166858667048994136841817576530116225158522604386413843968488951095223928248394957514852857226974637638303614230498469482061176706994506626548600929447693813914812387928860928393674792459772790334076845062112209697623364852156877361280561446006802263946976495701619152749501655378179577350080775573174642359390129310207912917039142196848037098457251508540648873669591331950835865918840867877965598059312596798560747937622662228630309251589803007272419652055720517663962621620786044294534609252892626481421911199018143132537909797134367763667769077669674475441497821607823182318254372371382669924065805528357491215555728156921728193009673323413495686454524171660520604786337779006331141118552625739371984925836075064477723731597392021355705327065838711748261081544747851728309613830370640815956094862858358034387662226108658984864305502050619097378351912117622896375368037678543643884005411090369394829661681017185048183651190640877041210858055035782518545566074676327874197234702626628081243712483905521899833506414991556018045280713220487158633389191638071302041691817327205110225350502056499652186450246173483259048281920030163664034310874268007976102135057871553986134692716939341804797312437400367738616520530364192308168168611332883973608066666850576114164891945137679883578155424164343478357623970279072514007282846839641408712989450667233477446938621719339668885443477631675998137964859631417650566246828794354018111896354011000719332501778043089756778569821027893674858689350736232721262772364490376701925337296289878594608331163881020612023492224911815515459940514398588864291484946146952733681776485148717154438011412878059860554205490673563202035166278720095156956827103872925495433649740472835361808440127337232307774779947484594502074250575201412055410534257858129380483044128549909647058654765227443450472155647095273233035595429732271469866576605218052526732111952600316859357282515811803869406641788971398314484205831945738499825573517266247864374014163458721756545026794649495670415328043037767473409933106011196159414300447755534071006731829146279873351925128156866385731117246392620833822435132505899375269590138710447607096560200479653067658454396642662360272643472370518856488803195635522250913136703375415477848284786557194482842071328410831502515889602793877864134265039117191010715046993689998316016480014181964208385344085116992817711954937739716374048744395034624273652446704476960139284708212916776126387404866047511465022465019487417383605218629799367508474375022419683246104421097874958969547019147022387499823619373981188392375123411575024472761289789283516325478334451098768431573666243727648222469595567722926922733581771644834367501103717262833216692789716032270030663188583116112782124993780476029026541305027198443751266596173743621934335040935640166508318763441590138790365818544568854094437865671457877294828595714198541275583322218185584525709361812886796609951344663333819786563077572004220072442572848464772600432526342078716054648865364592031240476056445804906161659139331939442354378512802674948756840464215843746707170698237074749531830060139491113185675894915145968418458907270294515948949076992825039467357517272847359277199518556324493068165803293337627151016607005965316045335723038190544936963247305953305361216937274991742375588014238452652354369866499223785039824146176132623564928875599525101923353840550063523358746702294650909630982992943507694868331233723005547203560724168595110925077015961384968460929172267950293906191601925081296187008447663868282398087413610737536781641170944753158054495684643488954549679650432690117137900623872770201065522981456802649957525872818997805722887440312531231077390208570859520705897624537889714177970047492432703796365455305320134151449965042631958800302147097762201864053241833916630327512870602391296961303751178371177529561431669698029830961782102603439101128397443078164261457881298830012192924946602996096436565573466416001456740450912595098445853717621299079894596454369144790764098670766268667133665314672298191436487539691223905823512565477915969443054724825463783850354851880886522424977347808133926598495844998107543858894208193460839905598693846653931325361028560598001842977076344741187189621188435658053850968637475103377542519600023642491370113889236815143202733122489806138875219190807617135313992845998023706103625930797904681052151797420214851535306774367706427908183387927854249444750077347084578168912976316563195047066484246568777233732729253048252603191694485445542305369701162503811791319216339821363976139823304651247499810306445511108136797100974631242909419833844568984837206125293133692130860916942866660240673496946869551978492625506136831129716612826170181465029132701046428620321141596709914782647804865146633902812896905021618117556693337465425089381015413050186663286285093570763780722032237078506578791752305848417657042526593592939068405463016139356657334979160634181708038227649905801676038179999092368130527903710533001999836843773544626281545537100429912693982705413975759848951126255689626419429772436049399208211728210552969502384495784212647611252799518637327194209534754653653379391697178150427839515077788725275928564213798340895116351908507284766383137989722505920363428154560873216053788028828582029897050605215578747555741886669170760263191690004127203758325307697680487874485271029539818606733076274589171549770582710259389098979922995051074592541462528511954238506367873737234902873925986230841764216598019353629263337362184810311799400128547875510291313887282149212424614461681256071917918691590512643787380558863909113561779409126161196378789252678978655082484702726897238292379416832081281828274331915687501125266484726716468568594012097593089533869074341577992281383679992034373572623999742864410152639283064892270766399887650206389919961365168138071689510421041339415522538981212354628827607089202003116458690107982248039923399579949264320395471419370466034490707548611433883520627079386942309698638103774086120496495589840765312732338316092525611901123709645889536482430240393822194584279688937197466091757067609606810610920104097679583307551902100340915046643915004523460592855915931455531113944012079760346996181005275072297475618408027686018574379070398239394317069420687088324784451827682627098455169266893300452967173375799842067324524167963833697630884976066934258098519230301703368471546490659314839440385349015284767890273778977641439968890260676168725947360345789260836653624948441270432689313475080250944538985905430127715203971051880433508777394908314510514057695184005304818182660821263585549284944814225537329978455062390066404179557153864575660071604577913379188879200063312395683392510130710218019899066354781800928963248574129078003877427633928922559282003505184520825141359929071038507659869845839319806267522462634419679831826943614559213157248097197531385562827816642732910226673226201070347513076959379416331007248495232035747299206906476366398567510386512781603034641021876396714283254425822695395098874151087719510782055279484051979536812244180340794865309234914079799450449615010395794551694906703947058686059759881651711127643062431470709287700107648824035756533225686881217606518380235732298015800095615698952645892864752173102162716084272941930536059336239410565399426258104736216147981166632670837477893776749775265407980914719973720239949364613782922282408459660611206155346968656633695841868182329761359239836609654718745802386276493646440101249387821882820909497511624189129748358476073371034730603102832055070604448123309702002283397242516800526883376046364048355317632406260649138013511036700403299049789711767668199688593994778312351272562625454201333658635240360646392723228858040686353746217239922725114737917242014001520957045016285808274279800001723875874065089854667488408972165764729390054311424133638798434883579027285148118725053321732154006728957670119671196753206947575162574610368365379404768492475739823024038009422365653404868008996182440375547380705260706353080909198467964192217708712786431771436677187666272010703798229279687609241000327240686960068414472072285584394198941269981256200803813444496949702151131896925889162590754966097165971574361016446827245798579104214381398360346259667666275957182686915066418382412863232359976108382829385191546628337983043715282478000905273918408137079589954492288082895222952850809477430847714323140781798474324936514302596361107316044498985767735292398352397430204625513839816859006871390904380554270822209263229925983607182363510083096334727086260100006285451945530170606026785825225509105869498068229573993444316976622479853971661030214106384641577782450164490639609369219810134755607937535017680403171820459864168802958818658164400816017065855512470179879254398028525400316959030294806529535101131875490995739040051238786152535306767745377503615965823260707244732480494440179945296099849741455001012154650420647724963830348405991702955554884998113013585837962763790216011599335380530246649458387595823030978933636932552412373554755080065685690543263119049107711929561078936862393243358130383823737890760012262589978912152715999127245619535080918743542937245499873310477554728446912015676600432766076481973982648150034863585805488864803809921767920007999388561489181322215389887110096317079867314999401674693371923529884241348290871823454991777497076679652202959788032555286070562210074705573276085817396175294839080525637462995644302490901997071431883074847436859842962594267119294654986456054452957927454739251448212930772370231511768443534203942994633494811117256598516488075782603261162671787549565326818442213384784943080050113071503878609481553709922596612916179264010753791835997908832579648284192010664341188350044331112364751113945223729505534735871604880828343141132590592314589279905729501131586201603621514710571234561002330342955883336979819398473535905582284026359145907079491958761485309186795314791961602437853607266718827871199500307059820412413423077870761799060546248460111026918213607105648709310476540433250799300258208072959738509872727243215780415830070285736134567950245723342765355999373155650735194431559713330238224559444384076653090818263846511499591903450531769363509468938310727367075880643471114044399378100129635824316058851701477744108860985241729014514165061796747676399386569275138373420817257629711459510999163620042332320618665262188924607645759144979392205987778180038283130778704689522272274496407289211381832054576817730589720700849433375755373472925516124543731681701433323219390069875874039479541124778468560339233014479206496551590397228654184219206599367507971562493138335585417532816511706094877273172503302608371731093030093656981228556263444430921635026872842880932160942439807701660176289231625117156822641006604717209345301105673018775592260244746237235210072368817260253148449445307184191069489070872102185883886804494658634017112847741384090223173288037233836783303725816468773020360998192465135036374767799071806692647498698869868489881195052985666325577715471394469977234338192299589199382205732618678250440280671132354921807995158250216593592891837925878498145574618329093085212672534312876593641569359048166369277635534535359827762550243851691450566483313096542507318151585055532281558082372740375864957579005159743615003163132274754910418599210976622275749543587526709897974748523123941775024800830975972473334565327440264153916039353796809947309744795569307545215083654722594379779567747663609127375340806362880779184649774332841868385086656618702048322791180840121602884021088871054453757907240399344039403230768605720936749894153676751273741697280016164542235243955185965359226391618438344088559850861084163948328141080947426591764752510656960753299202577229591481443776612462687816288366178654663053650019628817940046021513735821883945927105735541122816590285158555807921200860169028356957647822130306254140160921005567755445118050345421890797454682864973640685288051116890605789917599438582298007321293263729577268520131764444762649501588062565988690848597803408213348887066011549639791515797112731523681677933418342152026605034611021612747374518768878954660095498854369143212830614375247848335146148575855176801166591206437722947902139530620564425060922209920561172307977097908451703586898061678799385466430544608665971032112131877166587041403635634063075520975281611797832706500053021237853004533575162440602679549652549754951814367561901938730182855949171395450805506195549353676430753006310761967000613906764610208421879127605391124043574198153974477017390965493775064053662638613050327487434328925049845013040199373992751717328983343319941337732774097673552542467121402277057367228462713380285411098481715595521667306808483345624031083182472530756744519827774075156967075715807662563937364325924906913836743524222742775679098233525212053655978328505699493504113916780947747500296336522308541251768576697274913096330765768892543668122323151412365498266930677462047383972823302945750441430606939358164524040060290974614948819528020037690778990365017556320076276160510296941910396979247797021451226264777700628913420440514172860155786860995493646320183971955208178456061906384947578425829008827488825958754489224452491578517569178336560886599040998527217382554317657965060233638788132316519886682686859537485058499411583393153588063755946041149664844419873546573380208668387026948628096934142193854761859067989074137664878946900522627916700701931224469810806037724713709397893987231013325992516123655517953602214719875933092292737548540439710770861107290284396305460027820415239040249607634970327583406911647508603261518372037655299127624730679344004027340209221911989923462244800497888063571679099519078360175300453003895140408480929633482386978091615737837720226461950034424007209121916172626868790524536839243169563871253406255893793356424337143670545703700621067221000039235401942921288383246632610785453269690821918193989641626556220670674699295248151859876985840980326168504039354046803336772674623568937983789995820447227134903652026218234345017107898784522425966381626473741638755111245233367425035267710811087522110919821262494013556415391555640823095094499210253054791091840579645543655108464741297086175018900848897386292488676194038405087004411208187456788349028476011744661965987928753335892083484712626805385327658331515461062663267471074809885008440115597320357746816233506760935736428816193309025903908453724752746009089307725830333894274557848066498908584116419566539760391604887399000032894951687549769475381979681115440045736685612057133076368986345146072839943000653062386726439751133770572953676797450634963657311793054887630907767318342871507092496201664594682018092267613313513539346554730442159308852604553435092742956018258536308541071607977709887111642397921860763502878616097672838269332020609202168193068954101447392276899715852538751008909318077059148712952954773128796369582145834687900480241212794019452430789503370310957612219454091644490535084282557500611613880392617183690122265823148472835364554773481821398591834231250103254670386055310080255834157022682424894949140688776366887082579006836488995782215116789126622985565574951315436357248557232837812994873966038092094757939460739822894262041032716630184815712541198746692823251818164339644653279777385927488152306274511401299853666696214496429372403773895489752775361603383056610120281779937309968649172502212691242953032231838230505042038707157200434157515239589187348065764724059860728629024726450668957639940488248182421425082873497988008079991142969037025943776416931740112148774871639277082770153954739322288111621747153537502322303919392404935328402381712813001611303610964543126648432273521383893485028394277989042484014361822100586706454970258230096012388724096898708180380616450271520819618947024579894447321408672956635671656655344156842784288892156958991009692467127211777158415107570526924765733897084100956960408956012109384990901306697212477506484835260494417508284865577464016466682889380841974846591307636521944201582564794602303192698726998314303519989701726397240685062858006340968223646706057808992449932777802827365046527794541853840072769915902781456660608306537945704880634230094958558824170673483743058253285377044371595952351040495271180308882425318784887598968569897262650776490987516961194800402279166101269919765633407318599275772904623663814343585657902051083245479718018549409243123687257327628247773317971625180024211182938295362682704659352841681556222455632229330793687638771711674383422914839611663491534821193976441869729186107180171174898710427747578316782190817436159093318135455142755402576711605101218453360552705693190512789490032786381155035741116496344105322062922807685543786677250749773987717757813792565178853467053502160640686673442463017448989140732150185347081910351743503223123669397213365608144904673781805460571858930720755868077471671066425751831386367868788875430715503197593781164853327246444585640820005215564549136566223853111003327975168705878553804738800392102968554661629887416385416436522966332347181053600960129697910767126014081336628457057699108898409130861553199073302648762772765104514843541341763956637139897765348461086146967005371340612306915708742803687971884496855718999435522600245230853330065526643536619688842577399950077352403356813038457932641828588480365249108483001919605485093911477172833753029668923304664149723963207592162972176203379458651213204819182660954027679249105045479114382506004966985991609795966378090217912767914860392154363001702016570598225859351777811467932130119117207680698388895685486143883827129372359523288585304156964519282054998462406728246695061287195190119027787427799328749948996790227563214402256729658994566369233318877523219003803576424913944836858582887289733561597892271114139922965722199962142031827145899201384921682813099817609052635688239952216745303801080361686987085041608065435541269427251916636251487739656480297786750198887601055369803183437994802907746862718748258847854566180296442606267813884608704360825750804812632452782837857584043101804939478758588663826929186662825396005945678686681798622056360215372138724476782766787292118176864834742939415086114730845564318586792067679122386485400074985002050870396658226135241528148149590356133666926249424795991149504762898354807638970884459998271563156964671510199754459562663892597893837749599875722646346071505986316154193721735267725806284405920449178440992053651899435056692573178120840435124656720992738665496093343030367424842060455070273475490767419293228494870422333583182306278657295886178918384581882533703504235643513467944252825025127585841496300534138771731298750730050990274679685694271750371045025746916013380970336144732358457143434054927319725975597036453025346773940358833494638421048065373642877666257678136918030008647228487955218498431530006733530921382181496840002789296942855031046769712673814042754175193086784596182927887842532942925310461633490932008171547750397362384999815630983481776585096044227785710395074635447559992285577524890516454305766470799966939833119570985133265270874335442438242603919206112955516006172624330250348257842249504470650901027554557381496259227023656957745417604991028537260465991366349255363988522709343003042798132368947338542363214829388492580416721067644049430222633294467324342217017001227497631853765738345809435818547466298199452514191973230208777392060299945688914807270711899697074887013917371835934274520318278156076694695361847864203689803762724565107293893136670792695990261686011328175693531872085178782161169872621441533578717021142828193768403445838394865155999325555628102206029368095929864194400338699793077277715149484905847824981472468644388496354130594403632728667346330725897905896542271602919206216746544792186458412013880413033908315558422417664211418784015353925723712085019630856005825534569456246926498030353561077443830679965387501245374534426366690151050958122312856186606596587078433198357690571270578181203036469197317450456708212426857089406880917862041998465278157694386463217774755690380553721124924787168641882840013150677054372043789998435873020059251131752499749131010525018301467451961884989423906640540874972742298965749976711867541146535736997707652133406994996115265057341476496295111839359399161583508166335220733067671646719133067805904123579459494258737637691014481188219757353378597177770656797418277120014761316605806467395135350317702519752976291432376283381190973537214017758333610548190929334419887862911133530212998405396485796855597336607753490783940112407333548724985843839807354485893903123861302338698026130066591719783706847109241301621798056955842948478759990692543038485945494274693664197715033169937171660063413331038217512576407686074507226254921173578888453823915908238369166190866452996453380290426863982011964478267472567263524259054855522398797186204575320145101080853847465802746735883363792476319492846949109835407683102598998508315415140467706589831766204870890401634669013511396342956455667110332218433219380236679533127519617513204945702347635807617083278695675822862529590192841948229173340310920929694266105534706843690146057184817365788430984170752116945495916352759021664053475023751339589525822518901911510721602626312712940163129211820153727280709887607407839590456333544816523870138734643028425907688525301936435949948683913222215622690408267508341009351030682575176077041024390511799447814460150475968493818617502606970089403263356858793002459196239170603659030367201133439268062919602084002629190968215637999063587403799715219059507752759063429764628707407193598517967713929988241151961710683576130510200622057989134583108748381840492024995409494772941493317605935532185453371273554603878094915175242039011958805357334974727787851314205825744349430100291798205822832745194327099023189239128422593351531643078818044608091486840223371613164740776388431241163357439626036022728246090277839636465492297416265683929581285421841513736962897727305554359201795735642638645011351280520669311722697330364348564678075290064454117473077691694280420309350445713558432962788566448641302804705389899907340538514788034728371435860544095577589512425813069344107983886152579951691281861444340259823261433216005225269697336365867852488555536831201716096015708813098751806927485610542853654444805149072016840374928351780051230883956486264358095952889902824841899432630127752093486386832044306508340338935741398555141888211848822861148145871426945197041250867142398719974495802617056910049646978830966594369000390528776138226348594361754666707241021615005348208066993731665535212508584539014567387719384531884501671697798421696650086226190735728420468742471208497900856036329606632996052691382141290939782339555019550383747348522837860883108556824404081670105321664988352776565720670631477934076078976451723006464425290345124703324891300732461735261973418289975572650489192171808471850943328122897125403746816617963417494575050136586871782509251336305009088797674389092004343304327226664830588032415710211899301677285914257917815084669775791368710586973053105707975648945368318370748758046443417035723083527110432292860524757578117351115176568422813696300288674877710174279867164792223284565125588266972606533100729323583976002678416713878348250386143134357134276684413807856279871064419184230940939167354674595875563381729127532298999954001871821527718038804981306211726820027726166949971008513609570824837223168260193964160810724736714555178798739489825138544065611262555295508328267059140178185558201141842363223922104195259187739387991234386366448272854536483663096473422504759586021830662912028836033360247646635451672615528309200768810899443919338415077228133353752043955600182465098306920403282350603452544340361114776720918012452210094316463776308337760841393980778642199355659530177845891124803374238763816849691016625791670004956566727682614553125763695994985684156796010663262388417200676574088614080672896915967452698103482481736004686371713150197603077069839111262646083093899579841421494034257890392652310656057607783041241703533708212942936264703973040283739309850353372255322851568836557864544065576850601118603786682069341155676960453554022725088734955321732002127490871306576738784673486785764311246460424675470366373011520330041666276298445420905077967608821311198232245037209595688705546792234640178958728720893316594084339001613524046200385662349530236740084964279446978945325501499293666694332546273162804713022730279762612167291970993488807742943961778007544472177566694120369802134069583776740899082507943290981571258397996530473959662479235394939984891016285274982114353843445041854463514943495465389078441481850247189882460905313363853326802902661511694970603142823148994690306503333569215285541143212719625443274501968229464406574989133219071288605924708594668290325760081018905032050637938450841918688036490972347215072731918732445463914707123399124784676955662922157521974077534610000262485444674648243954652933719237364066774971951803071311435965542286494717949646122947807457924323468858379651715552262201511154956717202521052037214801448469962824919681525727207392477116549960922477151356649740422037271097092942962590305385237984258938558778663550944219203380734655306167396991451294629476020252958465791878268171828578901129818025743741260533144936057960785658788720425798888647067542485222743667193551607891894626828637391246949526730931998156610862881183180761858009132664352142707674003771412654178033537174909603996213602558411027598235796928925010951478201768890293355357092890878088047250564620160703621318682889281610813818382331538913072722106874212348763706592781315966612029234512161826534377309568560798389910403861198996968886771602733093613424694174364521865868664166499408041478185561206531122918075062758947409399760935781105095987610802887809097883257116087120851188613960426731175696634170650876267025227313199035313708938751398741112914341879207352368111008859488796328637995709912852831592290133441826303851327852720311639116911319215682675658539410585476743064141262138207897511552965597331745260253660087645375095584167881778794305061723209201927034737397339408397159382175212985656373858426763836982635562764806764126040882505335954934278207835489133826801344607517381410438054350206754803582777651903904091453780044693579230330744885106464654979994564879328143874943202244200788686606140579713544803476763190587909610783901510600172434513300103523347430152418853130769385589597352787876589717347866495350176892233856586819205903819866043162123478095236858955230178241456284199976259085580607782798569540289760973691439210818005398380892988452729939285891962132296951313736320051341703609182910039212364624602309939188600738403379955520490771478081245010113125645249847819779442582720727382988640181628162064397793035359342437452972905257781827813938217513367283176846360523638907062748055960782279430598123886456776547196211312303147850644496229044131259211884130892434412647288809004067709481624261912609724379070175597359897126279045027612661783462734335176354894716648612361285806602856073161031059896058448444045863181771369064874516788649235306454776295153801160156379105675946287338312074996489543694423689231914296735178249435332218220638584671954124248190849376976913787983999464640786219833615226511473633892120851670806159377052156989998601578287871713260085891075686033480900960882514452461123742955885072802502790123377588353576048717412747153818074227082131945153725786221555769161483406809601446570500966234437319746412974342827491829330606573137584215139147095231828457764888374163392575748573503249075884175457351667812103110843701475969676986484015569783110018493981512915572834055305148735728267962210552333385366229825354329891926737255032880132785029984244321309919425079885908002975549259876279807781092221431600267363652468682543284942618404835797595267749297855917285909309880400228070587832972185345969582248333556046025637653394332919360206060976211209564400546182256061167638811643108199884343539698190837883928078566940213311695773781466765398440521521608553805625337704263760375208671418692377807442529895810208649091271524413055615061043817229391547348546980323979712845360509016662712078290359278145574699498728594129699960589896747299610841208120644973825239465136064497360557845813435664030445496990372749210742365016804536939334710380587028083781112232494768458160731366643542208888286889513758034648847713106741988395722132570616721472612907251765807389353292100823874184241548080406529307694887032446323835680223423911484407426289804975201631087151726571388174310502136075466299098781052120062739917088673508043680127008181807380848283826691673294058742099350064094373590086997847528712410292615652269220964269480588304937746053945976963419457537203201505446642963911431261825735241573589041374682542366656942156241357001000301723281435792409125472392492969339361794313295107827481527566220425751803432104059854975424979563746693916101934981591727512645370461653047011278851802263139087163904785348823197375625432105290490964448989256242647253437897717400695938306481560475434214674336441455333492875084307107647128325401509139375041513256353257612247017932061666369237379191657716173813326920095586908147143494539202532386506811417677884087943095488452484402895648460761870956256599849990947634166706077078826752095075886263830818457462620182657214691446779108642861007335057509224721972899520293816736382683684686458719433955061364203652977491586512909893708301278073471883876164683950961274721280918918246824381642580073899779663852464161350652179907759537819233613293745705100809754841671374267534319955147046360189509131925832431298790474078931045616848191395941769632873859151872108160151371779753964114807354427378081757783222463006735994908478711760780415770560486081383822664783665665592186618148326943203122518665284302734128529258909593407646576232123307285227747341843541398485373958485252070048672127985195262015520347439706717108152931163871504344128987885468563041135714876871072151902888501765438225200155635341369379978345092276641604193924598528226629618122045262088147040286424185492274122863219950123086913329182222742097753986652965171395202757100406211019781356909037052347677513622086258838307348330160379296298184731052138411810063306040410801565154150504163755317669622678567458955730672238368324159468808157768445906735503409463249739181270109717344493097185908255334992710211319912210639481819519850685648725313985846902189425650202671094842319717204442598029712123934504100604457222927327598114098201032696325606706824271536619716955126489217984028528089215862418219157361472877247681400537146415176240627382285599771617310774834611537400346035193963833959262357403288765084380633425786591140113714263881152522664894110963442367624606435992745088188582799435775216602631261402483514805466967563381317980510847552835939967986800795861635395910862159074913860572295481068747671584711973768114017324762213872789201620972283403522947504112062398447923223012289291807285987561833710661366121898172266575106723680491389615238890720685252450604350695362292896183095813242015965829859070665567685081447239171910267810239315462803941407458915423180262547963149034911845239208935323399244043015435489337921676240405184840440781550613842393236590506890539149990873587299919235581818721121174687312448823796716170192171470095346073907515367934144488175863836934521716222871089291137408330472174676249562047223997134465635846462738522598646120393767049136953811956995773904907115515261618526046404463841050543112093160232903955034665317984673037175334759739918851227663476586967708443832793847989494107487567451617552037770641234722354756757826483584033372010563935052507139672202856728603289401770140689959728774941260593315334313366952979896180563200644619101239844078473235988933908593916963704675022819922854987936913465415836112008134347714711045378746103465945892932357088693110986022641098011997974552362788825263268623910725159154805145719286777512304555549996839305682694555087279122582345299340095021228576457873588595004883599455548076881808066093468808193481615612668190655753135047500819312160531895666561105733776368510128358983515248366969144001449868328390074124730270765810862899741287729808139700621438373672572308395239216915810106364219983975445664079259245376296309961265880313248733902582085248791945328971852222912679793632073027570806395481210446427949791225533581180550009935776427698668745948077684328209188948053570628809012963626637931722333079151996471122929459337766542257607456851696444809604895562659272742393595993280640699199551206733634266216792376996749058293795875050936790698806440633311086555807288884426583297905396441212673037395488561805111544909283889149353264458253729126403275557143093172256941834868903797125903255600111173684276306535017356597472404501361372081843173437838464531160709709316349856560095232545526587648916239199654191293583161671032006121210706727335980515905433056161395190552843359417125408583569294192760415983284505691072452322631847574815969542031165198204830605699559252401451610443084049496641366063482504333418127465722651915910606549031015546052308798381500167392013123335785103116083391546753929656209000395038040433367429099887128493089139216826758130005747074989151725143354832211045540862162017973914751766811142484987281640019078818994950100429704647938462606722470746826768069463254153439653714497505139171897246226694073069341083731746443258201894754161859038418005079556722066265078374004053487172759808044189601198547512625683343803016490680696778405533946345351423098631253056551666837818034963204632658012182651186546214489453592814972802936788301401664198197234452883803859324772473621898265917942773348752303375892439668294068713644642595920683843351439528977695152606577452327634500358127823886809426868820477010490451382032957409575095342367519803417043144107083233269165115770906222089796818300410990493731318682641396356212787503914231798393196368496496512175943055418580251717984511794914742084817052383884863984545304806586776629330736280886973134612122651168662583613715873272160083516704064531629069979661033547939168931906834527855184323885390772757156268342909435393465600175120504458208462734011859102566649682795735807451127702737018447099563044969647903826314934038317326372957124402629135636930556636228393605090061594643936131229690493347579188480705319727480706294503196047099637028163588455128212437445887840648837065413840910622624385031809372243755103846963860470188308332125221389113610555367401675490148150052483041808712128200450462232186347836447874840997859633232309850586201788094290886177270461304276592246968879804572417783810518673897208841913261114318297635023302675953804146857462921078670326797015037437604616749801563673106903002151669130013279425657876668181309526470840736877096438740815595099566279303330990028563801232134137987026030732599232879823138877618400698459815509840458700306654515403216386806355620966826366987295895043091326831735562484172796718993445074545512136973040529319474843108939587206822214206627312524290429438429220544912895412213305069779179469971105160649735207559269360499384431692687694243344699096723857965033625010670132921138502557819667914331910324230027462509225642254116878860472417396819605860826636098580251287571624707253292958338396208999182556979494125523045511591134233383716402219562186125597732902974498368410202960568879644671373633700543714595029777652913515273516423748204864475109547412838760597721303905869277694747039210068876026413301055946586649359899552818082608953178654832110292965616432027095338560758989637196853119555744393271079392099999825053044704879756915968588985730653594262459541750092383672609666460677145260282398662838439274792533406697537421890347427067968513417184786415815104278588655704146790337045723183248165188804092602558393513691276253967195631838916103428576472218948623020731389682100799653723997266558742984328671743906259363490679074103003894757856520606705866019009836628598662677796765882778740242861616036142900277424761158541051283293424085744927780703445898000644260683929595143192780490766716944278547491167358715019757504695873169166408757023938253396020542537928306698842166297363126722674037640750207294809231791446136474320692063369018658367775976182693397264878044764224543424354860633037870291617496002858589867728578732905918838537733995793471924930510493395017291618057437053002781691489339819331482031926700110364660133381250716206862597297534648123079728931450529701005789196254629176084240886016724395504977486649446174467320974443658017031956100811047323413061422180290219379981545843694749850674710338077119843889165050845134834490441099998780549383613108765071075485330419009803977750599938835273359219757145064392948009007892113580355213872908131401162447958576548236508411194945986126699619242772690571146938443559833574586889706317267803539205023918154843551777623954527922507736275312116131211499540085596062083736803875892780702091461761664442730912162680699949039702036718232950336606444963278564959367711837757358455784170184363865660715415589739976591154227577754152255684581067675153814438594661576059102110435716231409929265948807466838256402647800368813053753591545438531937572987181897351433902550799615702686999096321677116032990561519953684939064906395269668402032269713457034315075845478201969847303810238999969178373905320758872250551866214219739145154396409049464070192148798403465041943887359566180239492170204385005368614782889405708026568182304637103537596784219251627999072362129908141209874504213983192066991287271770130092274676078589614961208987762801752324093726127401768975076758871803982008694334184692784963677835111696020603037199325297296224589386469772091216847651777106475133788667234286747177041514719581265560691615722272473798320786665049107120565019535285152556647787490916365032348750264783358246847847039119695239299034105052049196615076839642992722166538935997178696882021160976364244310150977844331421801227693144783141755495987511608909639656366419745000891514660321458196245343383917484637808555015072796573489498002207085175492302406816613648916039134440994384918831870597214897810386049190487858642047959539845446835930514938344604033813766475580122000827243124711409233309981738425656116838959839771147962909810785542662727648818241938806584810444625965426567960595590970846234880170387664291028228216586117106973196208196173743310089376923914190903322880919857684907886097442050386696419802642985278208019516822245951651753957684252654209418771593219988623680173870921882291803479787402811302229710646919420729130129300383917037917331388697221719499045675981930277028261236042823666660341315609493109104230531014016381136582134456963726148000352093086200322479441454499678849369872692587174602943382242755773270157368821919744425814023789811805423617826975811646075589954901942890014490797755030321715191131214014992895678804651939755681087126836801134159773498030743036017524990111077137365372929570056983341472516414772711011127087711291595717584026804739084466799784459981200538940244404795397185260188574233008359224032658487233509846502009281430146104163940280211496895954202803169668809316900629058805189225618527352860161190079077891983106871470267952350867918741163555140836475021193049177810835444358825012744442210046575892163385397385949543273467939256687161287399304974659073299732667380224836190280193538919090692350256660480461069371608163409924217068842242179894220106595528550397885113923081800297325525333663005265157283989867364334236310555759376075469965193159227152069968764563178854371595701480501728157637107054833605115873011678336446937909798358659583258313303392254860822243968100640324115109284768377029988046233541825002121875142847370597070594153426975892811499353615699117858212434526010964320055126189039755005154257847763102214702328537166955759994564289989768923553235861058905871112157388974182791558261820170116566985437420951737317967633779482234897222778865120865617262727329751996833354382516809340672065048072784978504745116920671413987858346823282104396977713149915753425750292204917910733467656935145404030338689233747490779037692327738810017683818335077528318710584156841568049254740122200567282825574484182442420327451949161217449151262898499383346454733300440814125032948428810763335410248480282746886438040338264661696656705300194810191168837878626853403624154901269807339168762353806765099985498272398268009292877161539814258021726873889460070765895590276043334164475363338579101740145910413371958682132161369378823788895833937130014113442569607253392563978977873888003810907346172402666378386455159475200973144409850254424635197339078128772320633296394412475596055037812989998670553120869880105059208078458312384173225885892620366390739167846560524075980247033116426171328292943523331138639178148150305112252295995060221379115141837999307037236699035387467654644795136352869643698189127051249641781019482630028001726428946563629000678703944489268746811172639294960256825400914053211829104038274817809913898942072563808118233944834045561151806301519811809692442953889455865697860811878165322786921300162430353431700871866486418564343911135401834450259076635788654529742497099539665263017996951104773608162457241528256307653218504488297489238058202957526774566521185497611450661247059656634965164958215895450191119712524557299521749991698828184652983360731954384826578207084339635047964576382987280465081660563184434256455207826636989993653126414640993173072950411853977726197017632414571610048359145916326451680143503859686003460816378249171325704336951880233813921347512916755392446662423811431747306452059761989384405835882247595147123374030475191408071377429424409965981258949136047489632215260798050040521841581288482197668676720441551348081827981499815042149429764952512983199543914124789527099719813089778051717035369183710460556234846832429766245148567930575695218115614733612274237839546089588942645367299561854433133465419325401903088401074006642771009102325904440170197432366692964669883926975674646018099616537383163515059971119664848188777275010210618637711245266485248693235538504128981852112193246688384973736508028869832303139733191090002864769768745730666784304962794803748861725616109942273075230137880739206775971537307950325089555783287243356656062658105523662656448451637882596997598530626288820684968648461761747544641197375318770123676037775510284168740469095546884108186467581375018336305109817485358256790397348435100590657714421521709208843941245016633472263121272603414596020424068204546847796231294326538225741561881849792417891710814832996283540368183851194154570583341608120422439500792749770117870991420382922772448295112667187640826039558898098277940088890111054210555554270888471801938221729307622990604548119100497884258121464532458116033053732862399690859441308990306497209871946507888792193999876600202769473890988702226610658161084718442939260745401522596123574001619696784397841316234480430661971015977386657401735515219622085086002963967229858159533639498292335723817942221750191773908500296174907149301867998078172986461431497683518409882412006040372102625564969608465238592114030913709289208190922388637990375046632660713454801133113747516267798281935294305524187853602899546630637301721040630588473850609720880396059921350456218058034735954730334820322195045895928426320920320291978940187569309046183164708874217166689701216384783995372168123823670888524406823631976833753115370953337833701305460657494572829844153531368410171330163063629664113506561188982394566410499862588810258553536218852246090752925360530894885746348394307022275098626569298297473855435914916154380321486684344128896819696929816416985550578000748177049535942794576743984717784702179067901188587197741807117166665056092874961713615579209858649632330424251799634261431392395618901553429589366137098569237024408305423565134873364531423857828077810343669403400404318921353002177997684857138181165630115452380413541939385408767151803240359485401164000758346603331864289040355202361460426650822095171213292331911152367709808022273903942821735932181446157497270006541630899559428155793425534497624578829998143272620568423412742712967556328802569261757676780958862217111434081414134549845303524450714041851575291112257174932684309529055595986890473466838762161862967854411821560434960546907092979594519231137119072875974419709877595851876403580572417036893053833862113401754028343775430768509207682680030799589438241172765069460591799627904735709901133112779709034563714466548053266076683824209515224443573852415448008415117026609818196733186067189703851714871716957267987481391931074847905509929338694368094345416510194211259673998747685860138384841541113231877892276988507463097067960799497323592560663862532535314931831529642257727007634876937622231082186696032615062793799766437096449368760212254073753034635135003322696472095142894612992219153300576060163024244175139369390073290636029454137353472173080319292374526283602434434282063343190370624356797775208154548698884079538630804497642609786379362535065611914910924585290423449054929975012321534700793178877737441615365485454948816904986937384551129927094980636945749646953875116058536089975834926009520916769002427476897472992486749130771349027886504607937671893437954850961211725197051460523051227563265694034894283057082562595358562936850253338602246397960650272994847892558228353784081617368957660307941633592506847032469807799533661592957412901990029018860291326388043438421626784485530300484247718433442511430111669155059269364669641269385981815457067951941543327214036378820074418756926287646147047406813923623031258789550783213074425990416497875466730580098848773893680978957514091490787080838909066740500778035064973129221384653080542508276906745405299845594590615909191520254128320257825960257858926804210794321029007223681454664275958658052264744780988465558805527491133248372751846634564748186332384008897088010305391548660274487726526413863260908281887369537456759360781473388283340311263367709158942189370672320158633011508589384003718256246034879813686969214503797791193397692525960224390936144563479770826635580124142168115981211676038071822298678293456652218834419146979536957790023259056412122011612978784555032561513748246210400606119178644834307006126883639854767986740549163459511855183385179398295273577697969352238715646346667106532724869429651725654892149951186853344449319639804210632412654186478749763520998363383838809601140298626166741930138201225792744016535614622790987535888208238673362377347634801868955402754424596851329994103005993569703847682710877289950018180050803313885936673681432080958836414197073895540296673622451106659415321049864296155426071181870384515834211855959107569288908755668701198428030895831338627059108850135048459238329647769007453802402878163176009648355973586726938836093321068706481007476180801406428631315276418722510686251890549846416524938992937452457975915551752513315030718349382586494144743037782332025575701064011087193226480767305869078847506682487438003850414105897017626781648242792013734593823756824608324414010035864906224288263146655286542098839731998697002578579772336019566376992285778036781515474252114049042582937766408926211867836873905384185387448883725851802687886509846446982972059452361905957445340463274280960763638049437619175360117096990408174034811913216665382047770352571679306227353632612574426128562029036568220976226492332543966857542532203934787504718855174082570916005657538186276039628582933949951214769702007041360818853033565119956635052058059140889653302513747826812732597070801595807886325228535205059064716789435690366477772193290646730941022548730974218491551171002698606891706030184856452666643758169503956033475900732281290402305520569841722266547194718811813027701491649645301785937942530398259987408574628546085063134622116561767892216978539745248000432604415861182475867982177598916783595136459797630110335703648675214905561485061717087308075340161003805679232455642688101082846177807323224126481580452294839186930785483792670157234447457560418985435298941328398731449240785243176691118915726843573657137189230712310208553813102988521610031238942872215457573373832541303591418121551379647216314630648849937914988563986620891450108163289633899093345273536233047160996819606058862577871809308853858977555882571739281830945513580073988209428740629978134669891645403309049187050219164268222671222998904144130719618986186401123487125307344893374600060395018032029313197364729261692124132886994299192938930357785640454589165440076042749388156525960285922296247479002953065483804627235882356415808114974054349862830403668367393341146771014660021591400253343402434834589124472151749659999996247998907897351246556652145352551266189595649614795544358468134185086711920098665366068536460138725615482934391364020448140026136394620013199645694762687885848212023718273687665758189351835186909362072023310578611818610468354280955587304134827269267583296314028049050502752858937813415060835017789990152166750050568230337047639542663404285900921916997660299468286871207134683634786221535343317574364708358977144230983665431987925215123726075489094352266712061566641447096869144059534199334909513961781173754131710633596672020794281444126226921872790123213571140356793876385943554152877981734881878862364921912656817068527075714521363414889647290244932493387996375388804554866947193536078566268935667231551714084927865864526202033797888472535370123626371259499120340371776990440870469939075564381543947006414644862592557630193484424524781763109106862074238421754240324868380550686847900236967534707038509942631623138340451794808457062471429195640524788291794638552406957144396629066294332409034528392572546485374552727005379873673990001328738155931163581557353267849853895452757275188888037169485441298770922326252559999710280014407806186328536735425545575405652377392656564417386679922571885769487522691985588342257899849400733200801736798193527504839422136459569581839742498921141111075713236555182630816153170462859818996332959660147554092711884838351981268346767304643927114400303886434529379525192855406287652120383195990180383368643636578582200711326700821714763757040140010106717288959226055204612871136802095607282007908926722867383763157391020984512664296487370267883058968357743443550982424636652425692008189124628055038978183741631174952909634660352961934995345216898075903049041850092977017672063261495980726310571501835528682567262767554886347510100085994815155687727635965170264788092317042626849380973180635900986011327907592462528731985470448100212535002827594063188256348195201593302815468848043169010894766808963550078894960220630722620446172176475800137067723457734677491992906119202192131361583489599747210214887539891696166200944234343762487999803140248340079864588826814175822486640938644737718604784327066918534137378882743981124307216347461452639983635028140082326970795965911463393680795160199571947660516583825567520056950458957174748169517914502753666785053315748837454261518639867924402038897379202752372200624649352280431973906953373624465834445480369487490035056839616181262822341625768050186394185004679027287740689468560150463621932595923133807837976810602781071797491821431059640574316413982560506383997104477456441759547097901077647424389000049477185403251200561403364095936251857994521798766663627428355455134087730211840487940926569991169212255229738360546654844760179557891667244815750684025662877756318827207471896749583746860628155224846578886048042645472813431815053071651498338724729388076611362735312987806984211094013370230463962656393659801592229770370831314787462290142887307550377159573207934633694944447906183615282078462303954682772708948226103007136807724462565391018269896883316041201356573793325488485815720971171183342399663642505867622771415263963362818060231472517985646182590693853501764470857458637337291138141925356558082900212291709197506757922338881580652402738482855601216076679728506750588676841906240594921351433208786682061181036511591658229897566311820143715985375510901895767676409899175756569413477797628308701384168028212149432527974841379309443752866733948951117116864014709110267290920583033996811286982355516662039565769970423956162096963128850712462491106743918444683961874975893411866722526612334597649981096322572209054041920980765228972573577291802905100680199610429203690163137946474054325451571004834242816408452801681949028399250645988694583000067994144331459617728561312412497935106912678237857842108679216430015985696050184994180667806117291260141883650273076634909758338663424642188810769082975242231649361500297080940038232417292261165058612070825016608527217600485832684519032996044034311822178355746240707927968730556352579967551740055556831473939082237130809849248840597951163108973297098050727373396167549703506482064643416828392920022778517943314773106996249274723940095770707383482868579930377674016986277004793970498941774145969760538612594328095917317874797938773445787713386100867177345809556820775217366782477361954060838175786879751932086603565394411081780444224003368053512517183177106754736946029969013971174858991692553900727032212912231669669213892368028108178090640576769609950925568368074569391382541688963159633905171980600494587386328391202563336599675123233140560704023142134454531009767168588979955207873745233105297663753570182419592658499689676285954264871588334675644455870422186998651077430174823783345333258741810507071509549124521182252133793619280897738735889986205071966460446358446998615478162728216842977048566606142052093990488278327992653607257974605623898157234286567300708788350936273877104700260808230187714319604597052512203632409160438114901136195916449232943968217157446634148287286969717432449502467028414473257010310523780762222050226587046836429646725252194147154329201248290431140167969596109121508761184102055416481762590026999368389427159680292977767264069156838407661800913322285104727795885929801825045898157354058772103098546097057784614492413394928849342087596975431175577350545651129795931396299377868472695717176339090795428901952226162063632363183916865038054504679165903878439531454128989435757362437686895361829634562366489117114082087511345270067211527908546901724500505517531403327495805470397813858541093907185601881664986339003696422712795339307273991856625201126050964080145727889450575031628050478506699133239643978943399177989594517800062353288400234616033263173549693261814112543575090349374563127839841770390313953720163147985740983678528212498976864483969970724981635927407336357820983043216394035682418326091206609070841695399969763997760005163046108968129056672268425983024895450981752204106053533220211545130229449345964492341414573609926070670127652444741787967304539982170003554223658370462711926698788877265960925319182145608070210640828671870224297434363756483202120030526814218299321479899574936065263479254852037088778945124063118097533262549843876492035004168993117207874243758382414974547206774445623961442304693434853424026586558725205866541261339274250773270662543877634625060054649682409810283073518643720853380837223693593568589482349247586867106777608914182220642039656670357670257534818814506694349813677103479120184629746107052241241359285649722992029898750365967163272791261290572784861701893433503920482659415662635551909428462287898172061959382676403891575822824188885232493814863287326980540328530009330828960616071654314719905258883693240334536872227462765953249556006061988919579425695427555024828211382436562745734032411255982102150869775245490696923737172068497117565102433340001363968613520402343067383676125853835922268264614790359611872686521529304705454449274775618716436675328841301183657719397901675835150371619260623145394956436461600855928659710486252608758810236908677004094538116177126002271131999244097394852539134085532004116312737405387924904036774009163579247731612327969657461738569553680694413271366374658932959247796437022096232025269631973375911971462361996909099189608314469300460365976856401462473334316187635705587210098456207585151275823849738086448906270272672281098133124224545953583588587666754901350311130300325964099511282981043014891746401428294586263846771835345469851875580140044260433383847339491626244042659031865656092612383499370846950667871511906450160739940343317042627908303249746358324891790688968613077725203034881349185892270204364695690157970243383066756478341942075600342749105068867497123193397693170358456829916485965446071070405551754945064307931182022324608692113712441511553056454605227193188156492380798568682515074035858691828207726793994069465836477539785423745519456771238877030371937032901199246741857949011557033910086712790769007319441082618992038710046082127093644829060994031996818602691358023202368769398373397396493163609420589397033435426162431280319278566004489365894268932673325938996076512666459611253197108720233518036079429590192080474712501538824050642382404155907915017795103431561415193225583739337044200429569469476569180342066488808897444413464237160257672693883753984193019652879954105579757699065501436775859696283372252819294065987095489366886536564664316782668856759874667296258201864513834036942197262826940352248271492300732426823528812835545372002756301315286315092114321272957382737559814949441390735072954086437892492449455956373052632502407344380099511201899208008877534743975500283878095175850815046051920130152240468243430074228978180313517950808325455742224119726319720837478697751733719633355144230796601080266412861977960180104893710399549827784884157145153342536198620913204711601094615716510977339674235585667315112259549685591958594994074059828528325986635253189445107595281385626267742925973181606261404861207658489348814361624249786897594779995583700033801486573925623097942269616060807667681571478655654031577761536686293675195633536097021611898407535397204816056648353318372586341839474472111437312827269397164262750338229869588136519134772406349644432698476138631657751492833830658211357807864762577518892132349755777883610599929304601245698300479420772699983719427012812305412494886454164460977779436158866649557100989269787122606835886770194141640569562253222309139415213814418844936257507337349617154151044049644995051513773980208065173311451201558184879813269021502410455134652193202140086681502106345633420593567530515582785595421290963275570816766017925690370398827200681237901240220489183871642514280813042539933642447262483374958607450901043751799476914397641483442583004479744261401498780995385597343113321805210555669548769042144159264193244153181511844659776412787151154226791316358491516670769232853598541293836657034148221083168549402890771397085021781108824445061044101319857555122260511139901050610031537226644092130753502876248906373233942848889699214436444552861210304928653242812684308068290597523938895578842610598632923484146416889350201366107738522193600472032649720994034533377572692625060973859105962236023151756185506077837818288682658510785406912500156822793104341745889743557131387623372907262011526796897546602894590799354577278225900085739948408494052586113613707579474114796906128168897242945386021866149864948993599658568277365668646107601655672786284704201750719979022757368035356573348570540935992996500726170907020516664076222406273470538110268085890966830468919565951659891481487106070126988190825913230786081434529480650373899065289416832930854074567687067510251793832878567926612765586438508793567789674109080808065757090577783222986119650527727193911981727019204362405436587347959747324179314098067432164097155462261205424969465383720330625313524389400894154047062638992072865844047186140930179839701440171582872215076756358561733516224107154127658502772801624714187543922708805050641895092186893979401256507644924388432682303625519268189608936421332595558981595186976468258013482728031995549806793401538108621944553660297449904188237120679588531654998851738977961500164013633404329333743026894436248409421715968559948998244473802499546932405023894383200631566889678257962997852771613108283824838078446868625121584752778815166514639318565171138277921021925489732725170289746475563308881636811068895240110133661852329711801464628698604575738544236812816018463457011284573174940604033052852548260497614414685013873157897745160606080304177229886562896884819185230881909706184813256262289692370965605772628189141560888208840549803874042091160101884282584008378058317385922760425096456746967840110529986350282149780074360152484815215016166418599724198774744329231729249383735859050585275926745278150042168654028042661738759415929463354633254278147318961904412611819994352840534592886370007831614134005459491646838709444994149796122024689423418693761892070701817950163004628595508861859646822737902593645305336870335928693131228765370948590640932209427700703425606954333928307193259262771696018578308014819882148530661745499159277437919978241941678652870942582918627522184385611719058686476540203753731567122116931143341535223430489277878141107581399136974604007674126638743211325142514816461107153833977566340467667450327967008461408135414599021064916340247486275633858100136752426080638484523626847407368257753310102780289086655401604331458261377420752975911904334983392338512642330881966924475239832283790782406110652557621093567839660867060958717467738722878325718104725524503566318616705316120895663860696232795604226924152938949362006323458860568205190859532631990051348513386508127627969894462698436334153013931681235968038843760414771179338427932596557579248990165389846725239520934550640192098557039334898760119995154981982926176726999916009120279190681459225228248474352786736151352957535778583322785712914340698312567133053614555248732954399331087717214905370568181133348621419496923050849434986895214419641527272535703321632007277218138905588505565128549366603774381092996542008657710254796311685172841408699555788251672443284210029016732496406879662647774963360357188871809276735745146697006677470758384574251524439369414985728759858697801046078959405924389988003985943988684298787659079990125081740216173994022533976106515197524701804185834023393896970111407635721886196115020905726568848761472665648123099494852694587502361770844536269660523963646709760176977367128294298226915056948558373393966452708708006411170839098362054260163043815975371428620959930400333502778055176435323918402566500679073820433066796126535756868576649360463719416998196094987832434517412713208196083848879998152713544152210329436287524425521574981158095247237630594419298891914076160439500924840985048984880862607838695117721216133582416264313651528454441893114264308017173440534081970095608837621683274511926529205510325113802580337716774527739671890377061066087749976622195644107610449132663466964946168326997080887894583651287495885828696144290359072736006974755582363748182509845183004537290797486801471997099808673380825376933496968344476001665900413367101432416712205815151118427779842914383311452089391073113563104047835477312420007904486391746633161883791731565280294115018023318658469023600363330471520857649276701089757991781160388700235114688203792322687670502180631295106038452695096685765768010911258278199253583937972851978359569625749005062330687038973781218749657691748643869163652142043743435243213404086127133295366315858924264587295343435237134914398544448151511855765510669374775977746506931089460877607554905261694512955977451132101110364758009883620458125354054345573025886033180875832167995920056000025584625016211071350535996882430844770088903718500645785173646702871049719730291887949766251878957085197324071875899568977324304864716938101736835176712292135244332355817552975985622977339408635538807673480847708913530954878760142914246467406628291382141221269233588954784684421434193675571968009019413144972804138495704807232970717511821408174876900786670614700079424368906691255138528506201904969827380702283131019696628291007598682206263732562119869557557606265946971575203971870410487811619814862437149955671073733551442096050448855684504427401567074566353372645683435074959165526350207891834366934654563316377119058524788290712550073732437796349562773688577554921781792792246054222237055068617206754593230693857112447040526892770890748644115849244781769913087950029448412414977593218752376342932311707479807903221357520230129922322753272800764557960257858934706639935687943817085541788132186054424122348715000190222199859632265959601493885295776310759800806815739488409600230889111914770439835420251075356306399511015771743009897253259174758554730568881816229303125748397648970909982002660372136041186878858022149256746919797724563786027678832243858981721728545877608411816015068025295666768489949061021941388123911956240724512891307446964908158227102971078490216822420776005671994908314298505829257309290773655784603399096046883764490756486823979571311699836030904764816217952086163723103296803129383745076844374177362986211452987998174955097913493135242188436411054120514973835164380830316622292479132820979059458314052699788474485731038274819143430821701149188348310830661896892953300759588965943195636824578747475313872210350791992217780795474194516540262514337192860379009095046378134141279882113455688463015541369177879682523773082301251504419685291712175228303056122336861068427267065355676754715015368479511117432871369725587979026439348174257271069008977315611035616230944176071964099310658674543655092353022793090731619133837005503826336206364232694929142102528452791065796869544285883504967739430842165367891312469524044928338791570454617392596128618365821530522907190754514942019489228345808674371035729160928527473175432773727689135805982248907404504102893443162880298629734617538042844374330153749508333183228774224749712393109513040748290787173177595603001141179618099035214405777508119342644550989846184327898712306367464628315918593368458798364289408664052815981051989587690985085589380585507364405798400624232709429041711993778951538767303368734054073836222920420581260046815936200644075277846170052180200626770319097009507186270907780947044974554031885295616509708794568226024728293825380691979539045953249404505364996548856059747506019548908394269341716155791810341840674773629661338125473934483206144476702349367293214394459115409466371178247358250171083832042069976372635599634509691933738766427428865332539644192091083381054284815536228323118346902508720185665126837873299729758736215988315420247452391756992505124975108104450793782565089962107183696203436263933717292892504425280819990072019040321088394045352911584750807763207302533338257659956098155281327531472164763161721294086502281840342765670316672339899302648780196053097729086044912806082200046164465592752667557980964742485970801464584818700589089679090964444525112956295937060277695397056882508322637096847523291116996266445150210791471072371708883601080820373758886018196294573726573310563997286713999199536239710416559145779498679829654237411069381723902853078219083894985512351484047800502961125171443442056643142290441446452783948801307332995504747110406752464635860458904772725485522176683985622849560973028362664916744464429202743137493052229334213893613055910551776336857085822540950164566105377533202317998539834971075360226620629839737879621663590722641181024256041518471974072013016783183113217622638637337606296812171990031213197419406488518777090258988925599221930663596991458948356314649357673967026119944324223068437267046826634240768111869591564936407777884491734672448544868047633236450547880578860054085066455635363600560166664832287421725636461884353225453578425772204850923553316280457188722273122570907835340481639759014338841583205491438501559501561049075438707423611887632260903759786211244460553321910627016569956448462301814052372360091968371426123642624218858518222689653026183640719319800779313719065717614600749221948042010692299270368323342026856575916781596642074283445457751043670969064742666528176203842674684799470947954383551049274035818128064515385768738784307922030948341285892101666416647456110039869269963167473127617106837639593471619040294729929426943688690480269279538446936554265213425589152610927305381916405762182547875329213537923510599930015224449443490340168951814450540584134151325105111283620099830367737212098122832983131066269422439758283023920098657458949654074639605959890961478221238561799139111483515037561359206013294601550872060579608146373247224191550666867159836118018146552723068460744547058595240930923833444819629716439717030192264547397685626535169947362416914323620201718890996225344039719171806679929976807519382817794380557897625928004345504732495515994689808727079340227099165822862700246055974055513871813354713347686517429109663024828607859800439787515734989074621135315327886812593893921766024403359471606248614192095641345257011190226693420943622496891425615560781037927602834858182287567377741548763241929587442312131106059185249769543244080503611941356754665308223310720954749249685132728470761217895767927531179414230321456210586395087423581110196740150686910277340415751721555168114356604768733968946480006675550811655075892914186709396395829755820375086189301171618271864771063864296083988432192509650549861153698184691966371452817161412501599157589557368468162439871867326303927813604991943246634937207696632256995247961885412249376813535564046412228369533754242046307925039351405252600936453970115284360605859874007340088011744867473611569058440419279558317873508401138075100643987134478410110813046453065817037196848802981310973424762693717170472493734580427668872501308668545390060631574915195819033356310684796686014804980270872612035327694813872581942142867047118593596393199643840304109587571384514863822324216787415430850198933284688132521062948687078444100044252690662522783563056574144842054295392104214165349914889257045543458726631739296956963869039296590519045068541381075572071632095880974865381306682296033275738475592828974570351199614889728650806634444371406171462340767484003170969153502872050772489292296468529385557780956639445696543037915090870118566680410644379912000280853930122787186153024491764120411154391749455313548026960982161339494573491792542428014146915571323155495074494245524123501849849755352199317875064779716064556913067210320389893133148438376324409950685331470852331620920936386268492847227884633807016908836965798870810657117843461551208878669537894301467899127320930763591049516030580471859969834284955776225484529091349779283955582566363941636549229280349843799651700540016566951824761122355372500351269179542128627174238564552125602892539199079261390023030904304343915884085891600484193403555030265139848773354696744638465218482791874661689220115923594474203964476878246418334104262629640104288597722742550145743437877285763696255926343173981310387773882368656676559582592428972853710741010967057579688846249049727786465408602746491236280212963742945103680422547431259625478767967540758315082587904184195680403293737146091384973917278875867792582534069644088453580671803682207803544696771815928230374502483755617234920626589670518174436356202420230813445104344568924222222347260809468928819533015900491954863545505545587619394713215832536835957218692272085464011935526359291992941404322299743253757161332705216784843871503415638081414884124058135153230787673440784170495644073120287143780626001823642808204020358351760507397660885535263567693843310990461662777258314715653699749628590082989436910636508182699914577238396512320170580032436498988370229711128710646425651878464154712208338999839619530438474967387132490036950698432075267566888684989702830217941544673071415869867233080838543209799788418399544576075035564664792480131669489402277433649920869675114015660789233166923277740993179208509979612863348480340976533895574135265908948545875640915632916956926266117241694930067765053935597334364018579183405334983124412087879384605306002190751331576803197834332429268551154794773642066728625728552863943591741484367179104886693407130205345638436871215109669975537849081284809703160927921054494393015748469531727532605543147721058401737201438951202360684844866383374745078805383473381744947314114469856233607456884644047626530596737142554624511898629215159135914613922229546276805608803630100798531692718287176108372425820615776832617423918585000653492664372640046951023163758052408948072626211525325743104437113331786795187485005589567192652832600189793326593970037713809671529212343268682651020828119350469579017069614170513374324734682793854491527895274144118897292139490738699319307757386855058535333573998174049802812348908959955996854848060636969313455659936300748196880312404300720929561448795139878029058505849107993718142193392860275791970641527547734848961740214429134488340287841265761536603690812963398834951357042508479674630063924290731331266410785672720897869865868219970175522515833426201197022771636695539538401870195709179271766298291576359813786732710712519090439137857110035804835104986175973002768865300102490052266264394017208955677117963348156973646044825564420287901559635384150581235464650859392035559949112162574045994391563601465211531838961647213051318007070150816693961731724990268499914025045506650766478143281132454686082585235367696275206627839174768745718478932235199752254804980205465441017855696164436207211255588257087297244706723773743332764411704819302361843944720638293408709614062093018764603749673107978248774185855258416058439379679800484988280700621915956817721492839486982371576044831896456102601603427444103250728835488371828093135818212989693185228152226151979013811193876643142405006187965366573417015812972886468182025225521396317871932484955066270766655928322713726570568206074607189463866118834387909818969866455424213848851112390561550689939862834253032255856073711374886408882408361434062295545831790274345553236965297350834387173530835097171031231839626325287640476937206183378638414716061262535399801474544245593318840064246063577257800044329532615715242746583894167426749832570522688992151808636254082994009662785834548481641594753382190080735580762738385803520952316692885094167510457360283436029116214465150296555037166593624360809288683601815152119800027414160508681179222710227917787197481551315300691086248670282636699012971887115576317457882396700039374454137183142502958411216915236222066010726413990671044002348403790094360964407291692240489921859619024512915038229981300674101314506623919838639681213432538813116117099465573630019489029899993728947615462060850210254854711268107549091670142423748106769268422923258501920471603418285726918566772673846446952155982517332483983485685044698393644752892669367411220778395090837285181193743252685364715371880846200506669472248054406212211468259938301322710160709604606740271653904881272289624536813299236500621783862383616884083116861690603800821925428566663811631705261241713008891833301239716251923316891269078980266133270943842932162076724343678088752642568998506466334087417747761868710869208424393318145290406092430697102469041776641092302383710906375014350295046042893921894193449171873070417356761965703158770207411649004897711744753742539726781226907491310288173805072230375592563977708754820675066723325000417238286195899792094032824733859914197164464245455903359263073204265134926066727821439296408380444093400424690335177307492737598817049269426268445079858503919546033067715500725542794641734356078107663365014086370736592389116123560915594849169741423871466721232779432640420451301747917196921491055904308132874151022649801682087164184509715044468711097482850560094783898834094887011325521538646908728010871630736525202521903938296363060521191287543368956668585588243114701924090810160234276698684853679054754354820935083166766368680668826477392066615513283279694416750597577229883899383630043205711560727475715642203882429969100093177689159510369383678303506624148576668137628202066523316602863866636146883893828033212310176119996415825569788808666607169461064136374669314253386595835220747742376074458177072085205180314956014610898595850767088084059154773281971875001995257189482648290326487891881716653676619575460946167929307166117613643528783679965793273195282760067134521707256722809176421091802279635571492199081064028695815231729103724061623575423771599234370683370075874529719346963498827354866758492708031955159789354091990416077189897859836962509547388499378876615823043495142073573564260207985413730226774635874410836248023008185008909722049055186006955725827821315542957707854833748498993186313230561836557183257588120604658871466587375248192813250097163636793798011892456407680358556866455717986867777591479375361413430248039583730567440822548384676189263390812739817702484560535961349131570272932375447419313103898934803712078246979174686272809062130627708876682199195734864780381510046485010164557746373452116613931953644967465665817412623022830412985216440815668854713713842536022981699384592489330227749717137822069710503383124885090104449610720536864543999947107384464579153937464204416881918229232087537581555377421056004707761693120608170459676460064638502596650180271277605189233689209430293932904830938173975126748414234098357128021568445520028795490650567430124738563064926507023208737242327998922813745969103769895262289560052807986650525794889986492380297804888126929634745382536542207976172468792099427404445400520555307859872769408894784444572653854903951588673085279455046291423655525418971890588761768041474403414979005067154107899884493079306183636007219447998522659687498709186400381276653830351459769452703060947705048456606741924738025276176797029832487157482189759448051876189361842314652085593979219484967654170547682876293798652012789231981337782147424544057113622539781983934273201817896996682601310894704172295719139603064818371161708182038955418542371974524051945684712715722727068341620113885941234747313653821331799467555880943330257043786868220715145560825506547847875689938968611978178855744281292065487428536298974184768970653297146806815705933791187287058233624683918722236813526555321932300934017094745575903040677740432725690183424608303162643460855955236941788528922260482125460191200339061206784843615376008042418255747131313650288239841372960605659745305784697682204432139960800881575502437909273233781294769547345969420253465708093939304695332107522621736554961494190602053993602170083399026218282708263971593711355064795225776604004572048698761847499048386160960866043497400601824923708961230085197361839056520444428954086530032353096495796226114127620060551398001450757735244970461132544864256173669391749585083793895095135300871199016133114378734068944732257643660219964760502817250407209440738376956263709618527535743372121372674918710905206605266124700565586777159936482865083613412320780322739396418983411448410440555019878416064811919417837169579998258596280509228869848170777935816845984447990871873619476389867100330410834977200148771830863638529385110849900357321025777003461125166591737098449596453799979800690232112298412125824009228139483874612225886746351653304524812983756145466742035395095169064945633265672738672447855986316157628797146295452223457221914341896911235455624224322227485944534310163759129655040291306034193718299399604082654551977439020994252800114734526400792246030055873374819515405189382687660390536094277805799584052431953430913121459688230395042582051533932542930440746496281154002119152783443957807820464926694109442975035091294484693117545307877935485023736586298818311831314721220920779822371624195529860056463109864388112615285753307702152542322904795977343117978305480934948526411953596244963151601023132504471844616606173893092686873072218629533968990870301480376618195863341085317822926967242878784636452632240458626211956158009668077633547420166209870410200717780427317388281801985387189194561377551416351644267192894866266539149237190084181943059355263232126124848680793864870100534032611441309512138585199670956617471784551840893755115956401107197773347539985084179856843774217072747434871677975651061634568689633918791697551934878806029417833257303092595393397524900641651944514242985323471111120031449129059840248249226915965355256858728822619557729933605314686870940790606062170133921665536285344939931704937536693823619342561610884607826675939185887535291694945314698737327271055879886509371140612167356548719301706346749522721022021959329372342351365622919248616204244132899881179369298226788891894423501057675170773098030542816084512466816068931827142930465082075542439563925375735155937511671041644079898150802942179016985743115228060360513315294356376582140112744074893789790076164634591734498218360363923761123579222014153239716667055775346304247462262365658217149800782830701883591691965697716372423956447797789219767445028981972474718242723208648045399586387801419708420650005191008670934216022111122118765594983475288229829332577208518931416194534618492259947987780550359637044744128062370897327012588020798176088770245662337130280622761961144895944929245977987188280784918495020017051970316091761871406283144827154885287121200997294052066631376278536775979899826384757433682369615959014203909414711878471728648398578457997868602831674460159113424750088788871780984381170316860770790434838148651007785610677157412640427682576193690015655109354238718566532044996099058414359132672646391348400601412988285194920364958401621556655892625708379707764725326508691827800061938538207899565442049701129698786440641693204256026016629993798905593263756716010556562724608819312571206881586236402669761936630788594648058643399550549389311830936442367270662773845170536701204171526982906316421558700196167232246517372159167465495557341910343762542315080089929942207364332503483828441307309422794506963099321091654142122394316660701236824247289236401503488561791607850539965984282903202110314036240157352316709683690613792125758242862198804634997010434220539745690165894969749787664117775102597410811548440920893187576559719560818836804292459505928719810916354488917820979530341761699957030593365201670164069851879370666675821670990236003033222910626800611654925118420625744367463890854847454491040138095648235399643206943525923215308715044626631877752794641768122507613980939954538642160742715119192402102835189670453383917589869899207812281562128496419556600252017917769123587455288872888452165350319606735864621848376989422967796463572684693659633249711763559812635467985306891547166826996131686594152585341028213926878581818457011770355629697142499670946361050931060376102440738937032913528766536356334087030206879974391402851478289784769079753404460668997062898452801638111379266536186696569912355799879007020416596017591262436782947744062241378671260844292839422420250464388674993804027674318606534209154373036940232261769886376045295839484721143905732794296221030393844818741961808347280404200843963426824744612291542834979689686670264503765083780949638332489115721599767585283180646046116560739049141879984097544231852135265265144795646605360722505595326011522311000585273241320028276603637373357750925162309150826908135243520108249062213443246612011831906759518346142864409694339516696766424741066386997677740385934214939804953461591717970244368039176182817352072448936077376172070289970671443657876121165229405875284808818832838876129095995807216826084048503049965813815007569444241843261035111445792819614834162012987476537926788157553418587933719201647937912010521383098907259354795906770641793677748370555955794321500127308295130030922770904113928172957593069152975710668556769715949959280987550590011561741891471088350210096593112118099265155790081144297038359177768967779672414852013081115900444497278398783261675176922932541974620302764034068807053161158270923586291475820328024560874016132798563571923833413096161779983659645119343392079470604832337973526099953861072736126763784248283153552632623696739840102636564898619432603572869086915479484347434440941562922148019768339289517244940174798956947234077313674978333193018219127654486650883456563636816555979553072094855371809325061453367344422793688786469236049753759619049356927947676251905716792380327243674834138194379693005360237045610711699143176752717251482790916451444958574224140571364984550002376858859968712404661729396019887224120013228862085036854188726323819143581523678371633769438279790228036554670887239778566122466419725951677466818958373683499455706409642276159457162598191278131987060365154941509171969803818412199208888249439432544516434986045383364471973122123372989055374752852252052182259552726368773822469651229907344034896785782516875739312817318389980710754780137054357592168516930755486530128352147132667717745749489738817988371754177379018751453204104864219641132028655080156933624645560319073247884675464689194523593279646761360139218193921651066862510299425995462961278439908564430943843085594114164575719390446865095454548759061348071286539682933939303164758120884041601087360928750401126336782857884560923752914643352340618661699566125283893994182569691360809614630651186471444969353579113846882200552617611933508977019130880960962375251301037264440549308605094720840806435499255378765514535832075313152979087508833187739260024201010279629310178564593336322097286456511625421366973454423400360450334742813900161000703166227067014144384609973997549626314703396005535841995228892232904647512282923463429532327157857295888836784873803162933139294456522305387058530953453060460297809632025066568418294581816341064065123418696554684113753735383903436606371902703267437180358126860534334009825926662702347251590043808872530618994217640987958611083865601344186671451074526614662865008570877233191056732595111756954783696387012024067922339253757435362815674317915096241978933791924700839425221414804956564063215426558561967358664207301399645707491517187714344839326034586049371714452371024576964650537049733602356959044426099080357135430262891429756583746331324612825149503954554181037595819253685509889865870547473123617577056881646405631805927075792126996846732657868855635304562004339150590375230624434955223495635247096949986671515027432680915987313139464573650787885694591702398368742796792549911389097212777014388335809478824795187573236549930669365977775346512840841546893933585341246965702637568718923998295840292656563502307367798062248748702536609074362889135240117289681338994465238463522319063872139495801681697702544916977618173791090886787070199958106901815780396149988554596586628131882510046735426555687332429117338789203130821612875873820104873191319808349175613496954981990595146933788318042433427125457078163645651061475762983015934081462613480686040197501755406373098336296436685019877996667293138130192253473682403952234177961725320532236664907617695364373533930745472170977271377600704964923328241646624586341263606487269633671177496911323701496285053525636892108285339158664693667005840142452646389507230916744851180657838037395364741638585729354643196272291672348224697438643564140431683317077128210299880669924724005675034689550247576479890633138364226063875987083771174990764125280700862636608470590875297080514718260855492492738344834079307665776980954294380699808947252185418276321105889871615829788774940680240269668362472687833658978870821279724985093964434097652010313192004710585985930308413040617204258479792558858629881281260403277024586543895326734936453524122305392091385223894347646253195661651636931052812758319944543420760473942743693686756248689982537082226749992511471380980466918121531433510548246879572800161824201761246694872788436508226667655839029421646887896665791176063945744131461468117031908717380432878430537668115654938733105201208573494408537073580055923795865408355807833438398468837153164047791724153330994542975754719265592617693697432351571320369808111183768422825365704384394683600309855579971642932092653919674094646001685375936426940083988407643103236507373643695760750347248058727877688455404215384933869580044922673201303176067838290864654844942736770055462752515514552694482229800078321929858443469171977688523204402676600479784603615642896723753559141403983723593978927066712770654016188287335316145963510625216012182854019308399120711399170593671732921411924244955683276023552227279311822370818704894413490944665866299685433915501597005703554651674999984372229853748242860339405841613139456155974621167784503173684470368904990568466246120479733836947520123846190338396274411863322313926475449522280574673813391583547387068015843894679474772056459685778515322790564218147709251317752262539188926368650870443819537834438494740803986489744998384797699498746625915922670211199216443588159009868986578356661498505623702215719303005362886292385319463638436488217943393592127704401903049840934687193067283848777663108388818930113846409890622004198243328619408315232182132422023080283789577855409018172997294660348700428513213870341895470520736418721521868999059471653675353604623899327956051882563862017866189865405873817133409994110331952174416562351815045261991224937337572051223785304752866845803076528908901231460529209002374034052077325722549496102479905510114572183279567710999525949493911624393680176479782794204493587429946284676842845975468897571899100167456663472029675831668483306168372192638736341866058621704748181457772425911745854272126395631920069480902427824296955512690957369464815346235689139894081502113077463605086577126083551745691924415454320635222307773032579904395202657481140971774458353871941979324843458577391075606812636017429548230700058545377060078130035526485184973963663061335090810464686245239262966450208243306547061094777081204250748974474298569404420163089906401484247943919793605432333745280411676625903562989139453201218506841030028406872144447579159194707211377139781641945373727115914145749107081263540759104319016460790857345812159485655770901980675862649475940132675158651435152357466002385293926150907768268938398741270127079945523564956175339113337888791502160450810734760550543316533377552223382039100505839230733602199477607998430789762499770404639701811996163713367563635792570457468363399926491064282251538109921499439561928263349805757828164709996062373640222031452423007872388076547204579295405526372317386647712091659260119712371122099900204755901198659528008978530416442486593640795335247285161240270630541078312523235273960655607544836383446672933536068140239571389572338498574864992429681035805091897351294419209181736152912275077169325765469569104194279623066548744290784529665139124256024365427934170665537976101154153044765465155119187522252237842997848444621158158861439685960779441256111981987935735086344947702665785725536918236140288849786775073419051895644710807054216293115354979047053033878548788659486816531423086877966116086700455278735231605214445800142419083450024405608682188690054354689388578872649029995274498877379680520204432660285827880601527407773779350531985968598792862789409631076480552917391403964640766274807280002059298224564302680732638295996975729443098681668874700690138002050568171479359084484270456013266820478024574743043773136864057592339277270917352782913370599900605585027009526432245711014703839469232913474362146819085650649498716468348498133976498755221805983492947941297564984892390923198868179353315815976812711006958727205262112925423521355722535793909644771607326414112036568586833105233585524045702672590783822428317065472453806366933749814519907721997246050695334917471263637915162202889023497538640459087522731173906870908861071845101914448080050454921977447455871825180585007814578355009659553004366788923825016520711260686802368646382392174243108504439379750807534895744728895493654497574673144012943823115378295046161445738665933588718707014067505015229406182110249440015979596364653269714218370336230811001404285653050700052074841175015461670261096413121809547428260594930584098730826989395572799766647534886097725988195124709242889809744445570504369358287888518901129485204451209189086805171183104831317996911983910319927311054561089367028817016192049674478517667605652587932781882262732186721057983809198359988629499908189192214304534899987389041021327961849508408315338867808183109906545650272633310037584217797379255088163694866292124571570230251409836077817743647079094185557021425557316021574071532110161672243232028643595255293039737150976371932602010492390383149757374523921566344654920981539544727787721726948645128937563319391897120411628782712802211411026758751284203966472131003829013236656703725789410906538593100232258804124647216669682793417580885938397660171225778876530650151865529643533144745010313042044056595480960902752787010180305306808074418390032341930836424650608166391120040946097416686863700515378662309241571553189174001541434299183007401703708410597747535705401935351587314082031757814267036844318164056377392189127559391773085866731066180729680595252226504634907863677361878873433257695496824029500885237578383279394423862776480147984682668573968262303978460693164791563706840672764874350235516190794837291691537859752909045096406826074560240474417371468310350697583285386822943977155893680086353177432929288572134207817353433826704398920629598300836370536552546531922350527249978183122735441335226420829736932446009939578414518902976083109520810615539489489588441824944634196781268097749216179721854022921064178295285251614730749184289156706206765233867884200038125103928344972991446067526688883037611736664379295542010937875115802292195981750954223491578873566043000904190417524094627906156734694213001853547288700929182356388034750975191213805012792594396220514465323961205397125675073140951372778139116700600192556562919334769901105965349716762318305205063331460165049980568419118117588567094226866601570938573449213358055198828709843203813248950888943284195389705642686319290667718837007180042484046321034717748743028549276151652156922758855939504636565936142634495567405599075321270879865800614310667425702491578149206072785407528007806666263269956388894062997640975747126285388070219681712017721704809317071453355080032129813180476878079118609484471627163130864917184570663697567891187335286281216613082733556269156385585369906817276213545325419476348179320824741710419468400536888595521262125864031712701031862441884129093863756428665125924213782186197907454084731562975990618295477512640944776718680964174639944210102909105261318376600402438173430399882070701419560655827729692630678844795445770142376185536467499428642359390495081485843622324266686444685918219654629466823692363230684522676865439167895938606033839628043005512342746696154068956708567445752536601611761165067149076419736874214415595960467290031783929432610646154653270775951103899511776871677941368957805253980812236797369684731690019021977312957410028507894986907140900021079539230589599697045245900695070858039225805937803678100252391538974067197969933280673599913158858345192872034626897149200582618612112778726832528192429987905861560594994272811261886864040954758639390799983200035442213833050425099087114843430132957277990851262435512721439734342066452880544632121208249788087529555502581122035328167890790788623674911108538849568131758471860918623294630906326572075721758280033697137384636758270340751588723512065774347964192341661698682293380847629961331021250061173568911142194385418903302996193454602128029133853758363153872088183941407532517793812255966868755117072493721994527968539507162950231048549277571195969909878427508298201929901557407508017689830782699893419634850171549872504474677285204177246197415880608270476218185374438491120529770460816327390508392847869716897758791797682894549357618260613645050399387647653842276133627028130880040312428617318834281627639403271696484741592733570465401194406703253386563957445876446925569144909530078105023123225746099592260410145184875737165928023252393554477621419695493245204625845504276448560142551797849155365459207008982647312711927561722366318302029282227863353022879074630221767838180798722687350508848257861908551163430330919505004500789612777744409161094022386434983752388666493241729095307971882363276722215069912547568774992329640671114967644508717313148138776477883434780077156580028744534595213288154138151986248190574382521145186934596736686236201179982621323567662308005406364067018422992804354705077252747705497393417109439348820236729566810949373686634875853588751252548136770267044749994009601937633087234113198486766488987895814032670500294837680146544070646534388545677366042994578658658496931325271575755974622026612122764581086472402297318793683644911525492966052425814319384335185929256622062237182136733847990736960550368544396143594279251353328451158987265579235437914132524084205535213698278499159899300924602585056007112623503150607867580639174402442743886660918948220875968529764298751923064447468509570840558974754321313700337090287599281375124999052238243721594192642644234008083654016210122082337352110046723509746477362469126020018163250320824337059001554256591307006632316138241738157971798175356405610442303062991293861439436112283355679172147861659393744218515167582211617664052217748313982056385442026359944265227712102739402367510768986196754068351158252482133937619171421008830784892375149505337152222257186857281620356694290595888775600352431023565725495236175636298625469540394616004998062250504051422316198613802264157633563895664409447788769424010589782805171313364051295270677721509693757938206561668919254395141216385479682123998185724236897474248871189724884119345883114700366268211432423898509309226144857038269734238109916655805011652269793313016805752741099314308731417356397898477081286701527107092362734799100399749374563319765397571343868899019576409348095046390456941262436262245910632910395788767720027802758804745619980863748797110352297644736925652828284967230359119974750391474574883367070104744482473775155069183957728546112622585603348568821259666394901077310548970980687733239593208511427044856271395801708084505602141046161302259190511584978292477395119808202645888566780817905043429231588038698889286979902803447282469606374663076856664671590094505779964260651544094013287259911535410349297031584511345123308464268405213277211790481740384507958835838657891163868542650079089656853285667301973725804135288153518984065432208511904343209008788961497557700584327115694567333476072275187570292012376980975261463974236709033658559842655822418371191800935612824208138778055998619132247183399987655688649654319447784458691644945512627639921053198685904620923889042926400686242941258955628776374442395454332711883438048469173727027287578855830228162178987226434023529399204841267979413091093628452023352049646534201276393215328166630636047360244992723652828540633962672599655651890475928193322093054872655333126495889415260398423019848469044095087822810363685782814945814900102317905478000407365049087034369420026423919674962888144592244212877800154454406898527666712489941477086526294152315595692784401768956697709614009109957474282749848346795133736642917424165085682884781044673734897807731439027922501703323758332995259957357842110309889815353029101021814568582007019565452799759241545380011821980729824178259661343897132995071708449723627512920700821483956537764996781979857922522388050776969098248149368595724399943979554267964191276092198459341378409763344992878096119631066313268880260924440435147200591418025969026629993578835365485650550185851467907964284356588513974844618378814538040219416478777257923933183455904027870580208767736765779895734726578337924727160608347528683989339487497348458120763442540610057734440989642489450314361560623370759723699565904217069886616337376573843126896373397691663040297056816450683042954134637599961019974117452704685676271077125566863831914186883148421184953472476216660047223676606502257172865629322903701732479573214926287255439166460361254524761805636339764360625484410984885832533835127581861415152860815360933614885815771515562674609683769885591140659848038955250633914109120265325492521834763471866356459321817802721506152465396449871250640855989305846996979647053901007615314898806067653005305102713399372790076502750758335939796600539779180439300528220502907385939533635419527718406809602408599873691007637094157451181223890107622556691696513883688689964684650119954324141935085689530869416022215618588923846315008623273234546971157643610710017691850876283245735485042229887918146456501437899917254034799169570383532742810587561762830597794166393940679714539915917460611598704244262898900805158078170990392313466361954724091634108113838073843327154289556941553691517458687992921627829818322192065329729496998324358037262830395822232354179648764815771931310277755475908722770785161821483454901986204295912014738719712470060347585015229204405525448655447394313688768056570575950703186291200665267002886377994688291883950936927641649649909008642955727033462981707296281682204122778341817059017928088563815702914160415607779572847155183290436846287630425952031506901393002350963376093054385181304520543211937347914137909890770119649060589311199199662814543806807850030691550117578459071363542994832344563932884503948639461315766451311094290495951909624515915005197842508582337558062779103135771792002479491337746197693202238368423198573636184491905840542455067692981509570019830879443286305116599951238728516559628383541139077929710204363752962603343159555326158632613014235929806222813383892071630980418305913225132122355531809584668622614655585292022540220004979664223977803343676700410450695130898050327950374434335984261864937843196051703093242703588743819853364262875017193999204147816631495475052660070052932879328879937707633308987166506660557476708127741454596769625679045975548577493598328017833519624258787853377674567359183723004734838014834863546011694034617845092380396585598835435534481378580905656317146480818077849158436220955891755545950124272376875312051493019297145813001839385353741257962994098799197752988708931203474127777860956950840921261902997677792101481261570422964109952346781719818312587692337867228143582285915823730369798916452192473991316608492886361919283768200367558796868321104747145231368835159648646800773615652221883343700583879092194227754669005664977048950380655090766630093802505672470305151944997822849625161601863730354373460733464103675506617204890369911376573312314888318217847634920796831347052926174898899813823144011414868385099150009160545613862625167133329923589151668981990654286808005834920895483438400176082935838807541445940615366857310304503353331557065635424709115648587372317097317525633282554920531892290652758766496829249274428517527621553470130197643730622335024542261175363928278602947843458585057623646172020832977482268952417350637775249927742413884277364097436946796811113250849654027536770328776752495405200680980342793731688837028796848311347475669888967839827909972224191851345732786895160973585644464412988051140829888671622569648724656741783885961478148410403976629567932486551980808368305057766612496636925264365447153327160385646642781770501082468075311348293847758965102689241705363759861070338917734193687172116458165486115567798824888042176197457674734026609845679251754272134765661409170050826644658919371915042179172160312241519403339601484270530772495126194301482611393553745492927652670413201818227281865196170927595463425544735801658219337208354694029788574959780581199785930492129813859587438096785535584296681728589294041678176576994938891245514412230940536127925600657263180000596393023674502919223044643306283641231412665185710367980900529294492735327343613971469510737940634893885633570534527175928847814372217305530835757066081503323029831631394361466376819271387111368422053615892363288914074236217353878040411748505867687135979805490199811841660410179171024930021859167622479541009536114041276815090324402099877179762561321167980495715853361823240820398025111632653717192254007545475694234191958867815921162597036518034389760050497585865669872105809482715129154251690745330319013530951309414691807983734333255520461657106728105175929603828044792855899905961029919774309598519072180254498462035970673155246852662843077761259312976095137469492969193205482693803563669748587372634243815982864525215708581720713900913948299091166541509972532957472927781578907286622712836408392928105067847562157366886205279336666215173559962779892648795791318898920632197410722675763593623865979253725489654269377166979783586047197070297381137358714020427660199482777953874719172456562321385182045397834175330476259891287351982112367045186764060032650767146184918652101540881945705963001920483726813921148643752486300098129503613471270707136128498665493969217777139453663223409487163598868538557770858976174154872002172032490364617662767715251373781828198693830116744939594808841794932702198810231688000696224923302070458318628169327147397847669979498092642995433308879311243383933933700922446912286312006681688713929231640259607844095803627349583862607362555820755114985986026263101393179219851902644140943881834973508058855205524189110931341387472663650906628379453272710193321496812285121341818875093706947462605632025025192294304218703574172988155837113210817522883219003707806467421162068656877623280918355535190227486836458345505361119512721147764006733355915447429025950725239878668656377820700618407630125265354099111231500544274150785795650591297480556653775874498988047129852300608201154495756725533506525249612246453496067830249498490394587333201708364609472569212313017489971894591457006724934791468915354361991860567327541465599527854381414596140390393362314206207931129495950158968196718450757171939862319419089680806748357222543664459245715465939486913204915880341782128335041525688974977075582535081744166939452394798186301381380374275578129780936685683056182588459197331462942644497841855419092365060810755944992376028423502585494549862554966503459483957795530895255642608917159643402833936061113305886732690237283864656256701174679853876944458787679382508621703045555650619014492126444562088300783693840192846683149450735259519861221161229352308582878079560973707628013974865751809028928991222910467918606692861028013100140359058769625635841656358319116279084608812652698088883052518557074230596778851867877530247032693393115166877770915702387164439863547609860994106675630042090784098439014636375567108199491584909574052081875592411857722770029504462306282784452160599649698816755878565433992586891117501888356889863920587928677297065507519653686673725403961628841965020917218789398488600057557378807608702479984138389642972875774496113920040080032534150546175313794124396420615198454585959415980377327475045784312976807891798101080596717561002193693199444879858987710153784924598267593278714449042894240452262608059046389033470655854775524157737074816891150985320710433049639480904573944826261349170992955347264769546426407905487265271200703010658906622978212619566764277520368539840030213061378141313028239047234827685160246708109237573665170307423332615201240359104840051497673485101393019676897249010355698912981808561791485142708543979773981413749950564556408795417480009382279720426795900509995449502540892151267972447838492851402887209901645861832316699030889323163225225738997003817310104471354266249650153867879479673085617986511982439886861310561164805858508643759126282058819684779015080001569909394086326215752503037079171655259098678664150727606385086747737005013048535406409338695869636109530213226560829391867414214312736200731002240975989532983907813298228435062985859756307962820532826993474922009072973740901229750387835585663773483075265326106114571763130365554915934826660513492268857056573315192670621774757906842524472211293442958153185082468146236460612259762447410603743711704578341304674220036153577684764554316416096666366657280910779008089338833865769349199953182054753244482994334336792409158358605280593756649042312903680129161708378219416824297850503453252823477292964053295551211268721646178135611301315949204387222345148141228270629432344293491410815945120746776689209513576732469789115851144808891306442063199282904786607927962848873458555018319970014691152238468651392955952361763899143200117237882164569289641197774307412406682086246635917891104449012064441789208128751287166201580173763519022468011272589369808524910543577060497397384210237530494352376392764347212689388496832410754550964234694178854714611724727917998959703555339430140107820697977026337185442219862657006462712506908675577892561735860206339635615405760027456216118283171001565946408358815016499769445316992532066978717739127890612570576642903782253034725988483191379249095218512825164923957787573528672210001056201255022572020464586012572011270981644499147780456021849898269033680617976761082891888532573918837991334904199091878045426863061691398811849760398894842632844693304884447627740147162240197048776147083982644280945256649400511461328180706408808300007709949669850948952253921394017431567189463276608390038309354694614358653110958356418906992756158247076138081914216531481262233606756706215938509600813335896413891045563479791725432920093844906609573356427730123686343543863664944244020616123457501790576122511408945601962855535951267948174924726028442498144539065384298376000160134003510189371672876025863346948454489663335087060195319265560825879651133551338196855159927804013967093585876706990106902416676268756938030126443333996487130098013635184607425961042492285877422782598067157319684991223406359563664613270358797090631851661937649399536318339562495053223164669299665284648058541614509106818164093728713773343970284096132689080602190062241946973802271391646996670335951578762190874081845533261899980918405600782548110868940412227168459144978992230375085361508861580562009891922810320904461928200234858688812264767023940838091944093756576166381445173610830492534945964866200729031003617462958223268815098456189817209599910364751893627387188647537044162049929761867157698916474292758109473782883035765614087858383927131622020715134433198502027259059648268393139647944974348741910902732900786104164860117305336494899705016031199170083033227564552841309747766093931469212043992181846256405998361378351749458128017828239897900744768658367297483766189559604988370514674972258157073978908252633404001963783728697036313212986332325521210719263665341761975773758893402978355817588203264377340500522814339763270532358703293964049577454023681923433945485619062393781830159541713097846479959820914029034498087818730765715582109843369586102349367592452844576503595687089848655307516975157867071497399333809682304662641448391372882643349997922913834218103260915989273143634732181068979173541725341185213358210496845319903696511000835280011568146616318591047322827760186893227409548098802954897967310319474174341537425921268432100590241833491078232123522215575247729607989990228389888949750143651230380830619765535173253570504572986070187780186498943543896485902097057058729151617490136845879091576976273289882963439931550472878141891371646080578397033911708558783615587983672429651322684320512884198690516783562725769440011520869839135865969161030661472223691072144359252950177818741824700432785617569510491229698556309872825804064149354867469044351537378286030108220046434843553815543315301784006729569406372777627241264181678769798364204662451091287072664472645030309615732154241107937660883536316465741260049485389395688686173043116609485355299845912985727336073160269487909074992606279710555216126229682059811935747570262105365675497420884898102326522587290404970949287055828263461425161112259936979573654502475965622693160861513342964561407958942469573010739158806936806076446069075171480021354170736515950958903171090864467516207601355121774163408318177280746392048457321185961366647605822781413280090374754376607455773836290229870771015484167053553851941479896810237540826633279389554965601892165420338833673731902198516297555904961148468995479634236074757399590881238712160006309650282544093774246579074122014873666992822700588092871954818211304729848213781086476631003085989081971119372007452476870694745104411444953522450991187743105448902092319158120137796147332757157106761194382457215429895391606391302553930718834364341155819261550887920720356890342324252345189645009591205562361516182632128884709560295651854840862667018836005252937219566536345397281365155537634820873158605221276818624827345024586911769363254689341907898935354925982895769196857445651024092451730833644443625609776347562785677310218415030691062261055207524211731723757942469205588936777406084413357470587915425301826195815798917602690201724884750183474905913468541971216142762754312742058908362040305038249684915102775975035163572608362250309365930569670232688933281168823183295267304069502296241935232560303223225721423819142407463005439349276766954602593452237533417945941855629880265085554421722325576045322974582664238167088888476629605848719616676039184825982348680353297063135178083121041421851778678891051421618080180153393708141233287024273213237792198956231671808088328758179971823444684094774083015415718719218376005512561784541720446896587635970926407989528358151534256043360986803056024647573066441579686301272545814312485483349140294487028714316973606793807592164863014453368662177733985760964035575760057123447926423534766435919366722623824986937696514250384975108541276967727334941510762708864402657862402683318563680670193780530096645974487523960634318534218720224480582798750757814473360669210038023499557225942872514573490054179862391906888658702930962501157877862444500479494155073783699362969956926524530078637389997484353752026101795306476096634663711259856152115534575670835839024769307920193757463201068394312851210226524008699267878051774984249274198641663093096167456293683739392561342846529992553877868863049581347978003304876179558736312947219980073825147919671619990777825398941185885909822946117548027109169157708010410066128213479289274971158709611278522884765367197781924022695717170386901442956324746759407862798966610223527939091844563409909039188899077244503676041839796974400714579682179326539756098709755675748029687742207807906796197883897955942148462595374036711360178823848219410364812068326186133218638925567027076095393283881797682166453613850632040752982657857437161821451527625807342170133958529047646409340504887306080761683449970052838335875572630126909468445649343261619600669568316687204229792587181311330955257871095663871910224410812678217812140893052607351678763355200882669972971767417333219194961454569978216409622897139403402781692197089532824891214339569157265175389083092281928086451612952460366143119542825289496752122167910686843503407534816165656019558276477829215644204577548773452308145354938812011374011086443734328629586233545691482553063169351225805743250565670377311297817754287434246464114651242664212153839927948320499945444554249010320253016168213200842347133996360284415565674147596108086232716305534287107943854729044554030954530659756594298306116316811109475364278770194351615545202990080877756242236390392131707100262448346643450861093886322102468537765314207973742484102127661911584698679183689919442787619502529272431837317599801491424387364458304053685930703383796378535473050172183603363087772080441655967211730605827638007574649757982469038706760931333157107517726620467925818250653206132828460584332497601438350782203631936881497793000839889522362152032450675245152205864425946985218235575380019551684418263971961685317506618973827968454623108626977649041599070149967760298475798434574429379676314924627657732417812436915138163609043160325734575145875655803809836269938728445668424382152857701754262407709229566709588661417818072568623901687062658451935275973331478663290768824223037117974951541660109013300880057478735435534242585951167835163241719568776923488287125565787980827382131704592408807496103771970162910595529736570115999777934619228941827728747692563619256095254876759797965494217107609865912452141525250765585956132732284405148232434124273354775577846520129208471452999766953169003666322086173344647419632665189447271550589460548920555596587331687048434017432228758260809066338981329823673794756159322183400718149312599747947321311649342959831193657022734552831672204817011797900164888618930731244912292473294731479820924998016769283176925812302984153442673056641399266796721443874043919667181107564481395745083599978714557629735248160057145671594723400686526461711727679953024355201502496796903787968944052534389297245543165164226289126129849896146824849892701678567800594277911539073385031982784506587254908162838838252756548802116780819716520283049407666187916969298505490758458728023728994003725659092883637360624020344162147704367399854197662765066117457920905075700265383568843603653064567439004305225609375677250000430518738146523009558139124715456122120314971797948458260982232862508215844651835827089565016172664695305518813969588763602898293976884583101183497404239064733981294692453357786728250738718977974185535259122724091881860359061470930407127278120270023591049634283489983781296190656655311494627126970791504993729620087784265616157658936429366753546092026595129771720875022622705759471305162365195662913437784566855710209393520592027741634362592439078435973102731272134941346305332589817902096306518463370503258111533262025787360968273129604673511725740647194762761991293061147055450315982445920949625219439662614456056499048136623302086832752298230506783647716645493250948510545217754442853375140723884265533926121588024080579230377866067558002719413637161871935230736098456136840227269408767906031753781045382662012225752963961544119310049364269979195682506635532992306843040522384306376252951536625093812162201268640450561717556696618669046924131326648613230450505897676928118046658567800026704745547196240463025002972619864737308893175503986911213932233558318576086786135264311516097660339509628972390133747567827911868909711107193102370073777739925302872423001621939471009363000831937815780106215938756916689014092145977194491659905281095570181131071704055429537623166485689868024628814909327948209446749406638509973382971010154010432015674692036542115938288878905087987755947825879170065261940407841653238199847507105716981514908653581057658053560233202851041800453354940333994891702828121076920839113051145933223445517130490672598146303386175384318953641109000025744081355135617381448179037730092565602535207634622455911299415240295750428517047311898546835803711436466538069589734486421016045262577685702617093564887177295560213486462815048311473439898435278417071247249891812868304443009503666100335980549606479936594781588135706524123730824084382831996080409577562777443200061223777102187519428691910092309553851514455655660107807843512446262178713115891587893607108329608078576678046178145323918788856268682333883788674921293656324144747563864246423942332267727895743953396216448773846972065864800833804841491927277187078949306034840713406828949728474109616433512743466650266664717523885618655793344312545046448089736706813578798872427348571795868086000575109661638255636645234333853448791734541380983279514343768366367334808338368023700183756322909682497667736544361022509602779686458081320086582792264909987765207250799691463335762520251445714855619993627545250526083311649802475913964111418781343396878854857800327914800938462136715316493326797159856854261129562070041850986995963734947754168148190102712417336849828670236561730460672459981321963300689700324392569232565669106961305573914725616152895818176802515503205153332437869211938343157668987983253237013727839082504679838979071061899932006682752885628744888414747821623420301065384632135091383780361058933017019996900573499789272548809825327554948106545897660003350501866918280944674733649070326326623028540586933717940270129469739172833030238294784197383816839937610431946164693722445251083481022956422178968611076221536494693260843859754954309747546305042943376841795946014892328228137201511229403364939096226465955584959190134725072244993312444611264878329420145600268634704426901410806150067890915404062623992778093089925611379711060135937484925853688887187206585874024773653841076811682000895407874621760173920338036807806192031447564735426004540354798269456322798618903580561505758017862061128586986877199977542709819032233776384204759925121577721522075649995214790764624187525093442278694063973437867033559627720400014482321575695053914492313997131429103653781540454595137057530310334162747837261220524626192457395278314504832560433898439805821317829423822529341421541054471187167489455617265940862948970543046816877333828198385517233643959369382835291641645435361532432283782686176957014896890776965368920503729943892548841034740920614023984091402578590252473896212072523126510735436417170801362522765114242339801259470640342008280522005092497064608535760213999120716918470793759117599824598232136438638490739196574049178704702059381467795087787735649109915194841140515731229725621386584812934863564630251431872495164522942793651439160930184467662098272781203439080294394657430603091721519688891759049277880760205414852394059910462955281738028832610206345520086964320893580474500579789493819824732035480707783126069501157808679948241573187928833335590769850312640783190901139001067249915746741778210089796337771950514831547793222881167188948828470453756222580940596503803992926180813524527535582244748942435257810585776815663407297536482482028046308069192687576162453808866914030615170208920319074799063279021290863883279082582011474257591190216278700092475990947665951257022502262358835071291389972215350383161163946283981201612859836259195556925912874389685724625737602309092494421757779244404023102879931211079792335596282160547892287404967178394575116520727111113323680614753270769871485221024608880521321675514257249774230583366950295787504373515752065768162781735564284870800372429157223698218844878638685359505220726669215532987743787411418519670697635604582229148247479747061803539600272759290620691044218034457958022154313011903293021745134752254929710774802858428018728706161344744728305361829744146755481935546224878131802703349155611043637845558094286992639794310312062531643551680613934909957005332767020621220710752305060132077048818673119702171375538618670131160552645555693992341774780492218967516993359076573682374769403006538284528879647244837930255090187389265905906825908010852461139082772963119477740747214026804954557439988777632528635453978726610466992962988559284278611108371222109792835653707137306192319516734359125600611902836781952198432154698785863094411371503011526396971905610626708670661550782701589403084088133369307576318349653759745700839585325363854496705178217538517560448555583487676295979926582367741404428960536211821167098070595425841999399362539059265580101672163414759525569121581245240522069470734173606089145968882115024256058023146074432182413906987335742505032884459487956702318932328549876318357736052011871302673812940121223784817687719510010472368609078108059666336375917697715325018660644700665699985113679444935918844528177080866868388258365628056196450838700494392223874004133800187882701494355195978468872134298166138625545849461753397949738245916248436957493657611116713377588814617924886536800195204426459842087194359373739429929838051122693025646301855805053434339276947797310511135671336777386369437055911378559559311208691179931607705710512852372138185455857822347437865195531241827554714245281929930545236806714832878032458371694395799337759465453501376289769038175762752685582614148685086043184062554015045896349121972160636772757890612627966665210918288849025233574855680431632919159457077489965139347631357372328689393244554031474451818126174513786941055975242362787269519477192911451297235547792043294266049469503779991880623993806088215358451182736652916939539020966503879512681908048703489560024644868407516751587211044432220737162670551003582413907372434866208963624610899526791657878022721764254519652462155785986318814702209215372604587697830578174663629241708380049356179988029757065665241355620726261381569962891917903062490127843504633715414682542460325790477583889162691699589164518470226804826300554958870373433460484949676188072026685497466204832072116814276128206574195728188167321718268777211603636852115816587437947047146557858533980113228630678744164107507206383771195345602001766646544667782368539050154725283596318502506754176487303759474027489679380536509873701567683613681189725444427295820435694437491018031199605086504880520696757846864472052648490022944343678294961841038857717174696790878314539247818931414425425672570171740584643320240652501791429932125046330672366988225447220703427878952289608263792135261477188291185797258133980861990776870790739969933378406317106344491984997476614315270612500269037908841226744761441004586858846176896805142007534409287968733976120863043704809507491982152959592900623948705368328220237000193227242828867483973586856970147020197811130684126140937623387185046537291670838427092766393340530777533701229259532013952512724908576269213878710691778808869746759373091121279738063372016236034653505877501687471674676623610563546096376082235830021026913580200339576896353052247562229278428672841090457898838421212638297576110423427278132927547636041505208232257905140985118443790054038710120314230744642066305467106798998262836069438466518006290610703447278337901591063318261650636808563947363598775018865709891907618105536779370398877395366448719785153673007373260303055960720290474974532062699481311391462482793493724568712041548797104903902410194982784787693486723720417976757060828793053242486347333415479871753654478766211119920845127570960855329510318409999709193005299949956451695237355694605996899292769611179134586036966840068165156546250839850331745668205367006172710612778286621145650242311287023974330808161435121942775993736849293710111097618002444086372577475476861814955367933433109115654494679692240466462396442877081039714684153459624121415749438044065264826406017722770818405230560541842696110369950090269159899649931220984526720353706399400119319222750577187764065270320360047597388352477369921517544077323048946468094490238638300466884573307077790236551660922878672135667232190523107105562791958918567967288647836780599535471665939839485753864720938909214061366835310219539634760743499013707952955982043321856461613798766048298993536440907148959997525455101712693632552599304507638074940317891244322580529535142106829683795532821807051661713708982813943447668900644117917127693428677188708330653085696297701162134454895410305447508732118692503217472449645341558030280505669358940783612250103628031576609821152732707605862110460747536400237731631344738652066636306033018470369844305870379802150911952220141463993637066849561665781906215721622782335820243197428862356913734056885846348418175723289741353541677623656679610278723758744757696323339162784585638566069613166412298853285533791315579106454175415837142784820552902686176514225058294580859219410959892762262111487902465565359461798984217381337990674191274933325122585478389581643552247419757274278116907523596965407354306623611209710189582948132091685067504059062437277682859085648580570699182680684381108962250386597154863797282883003118007176835503291067250682281761480951883379835932676100876949845996719466814518172662611734572294846413914730813340565174944070918353199983905194810215746335948345643420323533530803233337743284187251101591266769418216490336880659537921013248068543147149823717488646179769620193136938426729744617789387947041625572384675423400171789127697371883211438162929387362527605293596762281054414211352078819359603904502695328663263216960806100992892857778024817109402254080328675933427981233423575151037956781151304399865551924305426753900215846415309258413368866786794873865608165853800148004227270641246568898489483524714710900123662997161768956023077788896652874704759014105723488299655047740323823799275494876550188881786371368680621030364256870979387525697680477833108234394882662890787137299421218559926792760057634627931068849569750422315469087895312057505376134676084705842067014419853612553758025538216786678843114690190370716245525263808784479035150301983658411729027981163118852445134952871539844195387138845586177669392680030232954987024808219574561449483715706391857036997663118455534572753430398311855692656619812590795518776195967206304751585717733843240847631624928839906573564668270412838173492719314726000770467438967618535841944801945957356784004617753394319044477238496205283267741394639402212288778369702475867844704150221584211022856195260223913163377771321473365918549562461503248797306071806277856657957615956914234517804160700586385111832684639000746590231095974161303550483030931643034145037388956379930345436668876200349079410214888567178491286041462636289030763437760201401623513449364620631531251757609900804171361616402103383797261438884015004081108714337170873962288240546028139952605657125234182828184891058063082865815461849638964230366632155393188938074898603248753543950712016115944412788372397270561939706024615255874640815116769762171716367980397599122818974121043609747431513030950186872799383931983959212080295532476243537502888547851765403189293822608490518558951995841391746878479996853954546206940303602583025477869813460387335947749773230867086774986308869189347159691319624041560347573315126991038133543718945222306577753828621934632284872294627281225414296514247172836595681853721689984316118648767538781274504009904885076570418992457354274913214957875788222921805256234877583817430326423603819410462286958096105103385691858648279469043613832256147857485597381834517469999187873316378117784381823496493900808239417929764904304251415623421076147428041661188599771368783974062082622074643930587265583913550260395336301777245230442517510334609622945151116264452861853159979430335549049016569192865586622415474486427951180560550239326662935694379289536530020153378804135695198558593467046271571028303462126059191438423044583534075250993411932802333341930563568230830924697111665076379419164223536982550782402810783275486473938987626801904013559608405426887565678052957629600323329939742789362854927286283170647616668768223610502282643676314314884929394447613052648709190307266033486818015235313690385143149577410441439491462042014650253591838872323633266033477548535472622717598052122707384396099852403455487673869767822873975217481218151574674054836431382616326776757283853710793902252836717431077061918478912594787691052791489305560784672631584620669940763813754062502558656545985986043494913687903119969170140121326523941284887319404395450265678397629464292138595947774511211109563446434604685795216688133162046611617455689411134695114501339979241201914742252764052609206740831143436838052588317115194602738742446371838392823594217807820937351871654714491938219634367135261101686238805962171241667905252224031788582580839172156088250145870994881461089942979619967943135264965131618458945563593452314783753738766010174652503135898971181580574396243503114070666540654086041470824449627789067479665925787638906170517002672867927769715567918953627752493042326386535090248949013470271762262516519933514188954640226837360805491185414730894890772689363479530651325387996086627095884038538560378565796297563220018477088465354945942574664651475115955861991913874563508384109942111664169975987423161330081604347260734339972209456207031645913140609405074567980073585617219738583219816034834701760890848126394947986406855974734747094417327596468693158152314549876207744512224007645842758441005488436861364689865517380151596491274944816626979140405729347649932512936845753869613236381849646665331178373925819403210226942992547935299763222474421723834401768548912526547248080842636672852544318219919283029770523739001238956440585089119327597071523293383545226989432740032242412502699653814018417746243471754780426089020153069976866613262941494180859197952430171509873960263167084471960257289244716997476683187091191537161279617290273801342819720056402058431979940432431482007064156118196742858735927657620799928067269438626304024732680061772320708320126639926905608638891362272705734473877971395933672673162554233739726554383882308679648320100403066924935215729313411259772179004947346497121438121986936936737570324508623904351415007051568090502427114804106568524083382794299098037693831803160013640923853017204338071135119735997763775755499348832755283978365124470608482485653239092668091110140211017146808838351090428110607143424360954830131277455037662484699650263694010399833453118672427233951921271379366628165440033711134635839081936259372111429807809422940356456726237876470668533886343338374509430949537422669258065867549102597932005157607349733914964072082063468241684163637719542440912102716071513946589021320695783415820851597022422160489156562768425414143810550934050839607408398382096704713173895332236594704048656937270235066246545750347201398661131268364230296951918427143920275964165159343797706122219218307395466756033420389294705444748592267775906119685813699287229954394865924071867641809344386098834248981143018527973940712070997753357539158204846912963754300796783491480206793395951554404859443386273961500961411495087497927195525849837792037315274307125019353478887164996126111671096140025292969658505458071632969674458102526416581684913216470799857057793951884635599073953634552710461095140024405971534716411919045549827346573051652235839815786269808849881079011582216313575913599406826015302911968683690312565279362334580098291843990189157455663910530698209791555580470523575364248706743469549713059693330961823397069756119378954085191795240356041479248590930462230887634938941491391100120692731490466058545199344851467453832802905061832770260334463889451102056492389531542867185616905024077217233192580672999109115542516280167710028341254201230029616973119941920479743315078780152781241592495654572409212428014626249446967382238105620661724335120960043680207501529329304290899835121407527466978982479509747063564277199265817115106050327908278602167373728178069343825650907296709956660209097266241157931890479492533147169112718734512355148706218409427661370017682560322774654412133862196725602802377012979106188406246856887557246031502942956806963674566846174581357744706657362108632087709118064431342139355756670353450791298538982597858615148929437705731471128731658304416316746275447929091423624918890414187435721720305868502322390518932022878452202036975560336720431022316471454491173113040798063910872939026095800757395826601487029126861280657975981389676744997571295934245908706883553584311831326801387683033605181983312749526788388794653037605739410200279960258735353038383635271399410056748861073743145345442005471684082904416429419274949676646654456542583478405679180393487718096061940023679675303252877019949223160055752674486800181969680108705262251647641934682975255116744688835633680001909312608567178323634064261873979880178087251022427255113208265700906529391555351091565448931635716265568049774538461988163472552799699344815262438002564721509856864900408318844905294533124883684490609708147401308933197025509671987962999193072340667050731233325624309444302667487938354435400242034192827464056587127573248352114402759840328713833089914525129513581256643509759376838839904351836159988381908108384544826062686512409671772884796600233338647915384737440662267892571013520536600405148597749712307619696642880296263487992940019939630976193852627250689388970139835857549211700790976726771142166041630103890078241408314839162577174982211362557015928374343915054740015837091780906672787195077176286439416233683640243250284180278552236545630358394761352246822117811176248921554768006741457527537373597515577788401775565469186112960151057006253244607116976864268497651507611621081819155444182069421513522098803061462206880363603528438260426381888412296343426130570832390853735104417501661321308407016939241102062735625984119773945960165249889375694382451139393298388091170201650446580357953283064610565635656174268832929898357292645972629157841116959521523770319006953168940057545299373997789186298859937935586596182612804234350095997520427373201125032777205467668636557459577355925381064012912114641307972547647237992869318735482101941194494350954122595127027145589693829088853162925862670604966852317646139076755913775113418879892518341820476416449194491175581926067888226793839765142115895528467692872530672580263405637268353896732497203580389483350951872024128570205250848758890108826070686818515796852884146574749477892213651977990999525334909277484829575046592446115416268103090007821589290616964013232129269929031779299182549411471245377657484663238512577475365083111319188424380533473778225529719973148158371518497818904467835981587290430770666482257071455734923551420955563176595286221772831799727504776461455628431988881175008468398717436159551420432086962664792244359297219931684962561741854691980973340199362042598353110984666136059345932535171059351877712227185583860393821362980376287030372264874748415176266022545351814820357692757253709868207873708516723614656058263329966441064373841912445448449020837252314321162987403307121984116254449497108125652992019726884425140553953599300570232235214952727387456390044411580673775939346121361050715913772527046675957390986276093189083857376679233174684175481216036658320798610354927641535754443183118724864006963645777570012184217111026517100374134437795147438822092668566232727713978164972228617439458655221830952800901147614547767445265268373339622005974937437525748344003914102777972308416580134758797804602990255412557047614757603270235407290738016059191196573506179192622140930688954445139437436673779917179126423269038540240613768265653838710794882309745470356076189503219182454469720852307363562316206654213892243057847168930242295389685492543804922159022424631329746412862782036663004654869897197032043481823953282611295706231159351139505796005069622752887287256810906554917499048643151094901066608005935518901257030351715256575126778883585928156267062554490159265567925025245291832381011502522595301829940075978420328742294112185361715663004808938881526741818260773565411989194959232744363756423100321009315620459397564643638151926027356434939257986846615838799602781215166240535330757173890588473712624757432194988961870324319243269615476479811646250052992672406739417744858150738725732731200656933741708651149024853076792213365540305441962655695803681426885432192439958695611910006019751643225242657327302915782109361034155459104160445495955347543192869736319178260453074046621089288534484252542151548694463488505280358426037554476636250389339905444093528918981472172589467693518812942752627114295232994039852524999553810791330372624086850702864505428714292807124313971187016896023630932334987035332002256515172627753770783404784918041114160095766116026436836930239259852171138656962319641357655494918564837105126725832693498533368129851336023242735354908179093843910093113232567943264563355903611984986103147829168423379930672316742182787838363621464629797996543356351121091694381226002476385879380065904232751225801661191685515058631078722760315947524147614207748523930295654507579866611548123383544502132408774991704184637001291468205225870836173158496055688369186171692816805197110915106647402413821068164961423114726672437713742729983339021714390895875218139353311088699475288449648893695690880075133691206888376198235753760253772389726193109365730944809076064547011901275194263289031588892776644490509028571283388357831050368598058661705638017049437398032163285599841730308041993232783632130333488552190360789972377559787390657752132286168979810493280742764825414668696729006383783064383548400028185772062492815133646378883712209817606167052034196193497972133235790215624285522495588257189480877431165288325342755423035007833821152986771367695587252141300259175505719334358458013184709918394000949131400362318806507802031726493586244630669329314042171585517985078858705528804486945308396769892246364291198685585801926962117587624848005218762906557691713553863428760697351963062579623744759637635016729715280595630026555228072686336846245604884501575203910284408913689570531793615613647189101597471712518488768388863219739980681043395998905992702203775609422874932328972421753482960405027599699336503426748357363659003509756839002666485676246911330955132087267683002907900675304829350044549079500911096676989571406608773348408639591049244713004176061612236071938179775300496476588387664113348863163495592780057914498462652243710967563917961669645280914902112936361403008240417342813778735556454664061945170469300194331934240437233988203484808810563384992937685742224847075865081564637404648244825964378068565408771119624498003328608649520329191723478728608963420347719668853938119071553720107820379640289745927745136133539413238062668046102497276196192770268457686062804645835422233359439214313746067362002901433711337763245763005067394727808805880392484353754136783717600416317440043718759682521184087427503228186822692841946845376256742105381874331681421447439811623204049816060663323963441495997187860997595884281364761348304864443112802147253487834874715316159217339737164504837498064840562120509497070617655618330326312366759448797667466988761605295594172878448061381255569472199397854304635701340921917008591941224162360798318057931575958270552893133118681772105561643985839681657112907051551383449831228431149123062159711631115782257490620377027102120165456036170716570860343423535802560032880622900167330919239850361538133356154113883014768615115349070982038510566521405544450303809997794818949805941310077136317111132455141058947582140681251440652997593526582912181251956258663142609448213941101381854897939904085152591718537926902934256755831494233747306533310669575669670450520720113471909729035762662104826910904765633728721290164763473433199800354171541040253874245947344889257870743339948172472193266033712167261078498780841163090671229147849464190959108108957365122800495006749618786539124076850123865004712595476876019868514487500921958837793360758483533413178495554349285716644868707920644480334491214065128409477671318377550483049731787372326119485927802346421895593103908000253132786973023315439636432472223146050661659605680586171506356972637208120749007518042594755068150030984911048898913056436466491162891603335728295649383307387722187653469031177784152369696925721626997855506695362607581507031163275603372332578523587250370916263169375418910570433870004174755993726455746796555049765674348634013027007349678567656365994892667292708467645854606995785543814428174939215124239080856836482393977044063112672924436971079570999069429352699125718966998080292416067014568527374377922014663835775757105781908506247170178256661229425199888965399326830066818776707665457068792998411088481014166586813670513425119202618390234539240484930493791493756559600295425213108688465003156565278247827049825461911486433704898143981334849211779672822028950660892334492357564284949009072675199288776353303517399559541855191829732280290789625707031717651181903385126334544952865577840486391498363801207534076218943256750530396174631871152819481870266634471431275429215418824582313430511080196311878312861306621365090027152260225564342056884012565616028416159857231581405653343240949055749548523064860047332471056051406940594474801359016204093829893500980689965740471607947859998783893706265368668324862910342338031328317075698294959530657523866694938443476055699899110703957310009601019301523189552535441809873698448061336770831743867250727903684097128858754928410590756598030516177177642070053355354679404229871528800910724762130911194291782428425370986051247803229098624646758016394253958218152862572451979930065558095708251615232635477565051792600333570975219079798605000001358349246881929246036554019446140170584146048622724005261316922052569965711013196258132838995937372345218349147248796915675852405293705199417543870243252151635149049518758281534948379132709710926497545341167284728235592971638836965847284090089582439795962916740703617133536699546726346018451142581052873572053331305772884290206219352560295089080382064496466388918850002421917246371845317125490004229012627803307405980701529935396495399828873037021772060747975748473362400744211070434250228948861992478188508239326637573045105317745818462815288565557584714794624297140183963214918022106146990047948782337380926574489003888739367781690648392907693423079258680468184012500229617984255132969844635443942073675977234597383382885307109368715334312345268469413123138150431039607015983210895696981265437803419972145224250144204946662673453664136992567803799533167528327242775356247895838425409966672025200118474522079465233608953283436069894583764861121346667358139108358827014547125122691508372717939661345189195667035618706748941591943674451886360080003760924928056499497889232781468411315242168284671903611677567061060889401210550111047806311472894397711057736852863180387775919881808311426456217622343172740651112424911994513657582380823325107462964254186591023835436776693560432007302862772152524280839326589625893431581161398623272225782192199201582517491293058763441756734552308917845998498786712750621893320503175813147846155357223234633276325265667312794286594159462372059643322097117424711778332794979480710469682642954532477525197991448656758618299261828837980514368873551544768704418468089408309398090586561855406124814359723199042627978559338100140740332282979333251143280541760508987526734981313015744721011131621367839085293461791791449266287477966448975243723436525244326187109017238516436784617794013239347366127408389094198276172142784189619840608060618331477792720148244213309628639193652952316895032525440764577286180299602587063816432851348213100524045005947756694460218311980591184750223916452352473241634313131381406240662163432149301944597912930633535818492325072294832675034978943473119230343518433024310858317259641934721805974768990463685873578875316880922436492199531120773980025757526975093565233738351195253778231920982710542096732259241223803236646438605901516468805817018737345574329976073242061628764160004932821283325790266300755212822278961620039365424736373200936945133969113623797337409706803919462466405726608303396030686416811927895675979411413723357784171302364633394669403011097961008466429184166124693623589397181330219254304393679232213077977295569889819072219375318432069717545206464693898807567642767445845765152649118843294005630896074137794026879601295043726133575877650987001928173513698409492690991277832222830904009930367424503651360798399322616207466049013160366351718291545849560131566907790837829351459725983152529230167748028603558750709702983707602727516236329921596083703399815190030782241265610115523577610422636273019326102134376709364292008077530526074649722876251008180182449948631867324328547727247818349020732213578667053234159347358501911029181814439120710414120630553729771502700551240874279688535395582855496850915461475878405402410863368997339514477484807394715048731613932145120237701920809676963892934971942325578014825584419542729838242003948300682568973076789761951255516707381891644548780991981068555024794197243246582422503297013500942706580617677695460116559446997645823008157795962927288144120837685327326524230683248495352534671550646355593162509998102605288833964327559964894972536069142075751752175350178428146305122548147846932844614538016117072201676366519500050146259921093678806203431106239102406331615276938127022193695264874967658152299651810391039253134414689495905565147784632804705327731230209888891527910263383140897893063489732729060927462102017453763238122306666192228227457984697596740379442270436485403051369261053046316131200377544033810454652052553563791431847290827682208431631898027333068798163167402139815433394746398390207129823614754115951549731218854770509297696400045631299515076836523098032528189831832264607470776448768327873060943714980020737340870607219252156671574553327924394076247306022468335691772853514338335320266955019763360272634148307413499574506433274021269784163216949020479270121557046907616052842677871266564204680776222764644316889225409757310569348498415972424229412223874882019183612305956300082839664008579205246874005151445234918047457032876638507376744431531169406062694985887921074509234278941037634499246139465736692011115109275163232247738815232831123850994226642534800239238934011409423885830578672236270893888376099950267388039419750138405198030196595973961888041991221634007054354788309238177266480018844051334769126147000648351061801594069519488006727559135872076853632042895881065165593695907157005074841435397138814382701249751414222894245411600034235372340419853972940871318129700768623288944040582700188983815394225431517595413740194449230043469376164462509615625547136943498732051260631033931223950083039043518368241913968681029229950452293738881520265691955556761320064822434044853167595764200874703924841480223173642792610549485343160575047895567074425028474183418185942250786203594929453863358156470224409687270720485468958513726007125751958407210236918557254502454551778329424311347962295879546359798286357747315272113712205210684801549459661698734530575803578068643156646391727479894117079060433389957895635215050049209620097291626337230373509011504542041994980309270431239279369538742162971936476645039096562583056697817624474668176899415387176807383513655195091276908769925457001343912824831572195426312762381159862426630371623493198185280938591319352356757107747295036058499216197951022264738500227152086058758955570246983078760004142979938268531500055938586071714708502126413867495240613461000235315617332725112623518625291297555588389857003089055167362716286613291069103954890453911290307215935769020719916476356753375623568046349080059445456653606991883059333721315512353182617716102528798397821394555819625829154028523466825583035751821569390738143189197900643139375926221695587910884904226178650299555197579157849466103425801813120029846157859536132188518211848901332376986982186838444079385833446704816810700515397187528539242469552879729283219636536172349434372784021506402421482251529982441382541782702970260367978980321622674786847083409663012562419523583083505038229586921636117746533936381283422803063970849719571132038540812976762347408101838000221477247240050150244012280896275620099082327123204942163776133773598476730946779216641428034176117351208713878132508534927548476814972240689742237296836407254992465848414661297942943985018136074255324706883241957759940428103451054455300291289174870395047069595941207366339467830758166512939670029753926998323569018520966771114899534039498056935855101768922739769579840840698081328108679411854203848974377320748309243170467475247274021001122536503568973980356379908172089262215796448251497107366214272740185606006996347903925221122642794218598785594544251651976330993156280878513269421646038770358791519316928158395771113937686567077113180366285706383131371987470164967940884298489611120778499501959548796254706278507848076544733552916105859401761142299613945507846628659131066421792937146772644443104143272382917247305220369917117876123301698102087195173663447320853603299316608404409186723539506408753426004263400551101681301253778843380967846172519006559118686483027491236092368396004501375991059673931328135751321940948170314122873700129695357759884582040852678184167649360996791460407796970203579367924346198299469109217590410390519371734266412594329488143055478752636062076573520341866904524308559826907573884773823434475298741087290190193884388577322645213209522507589297377657462737392786558965870084485293753910812834699516616877319009952322662099123767236615959236329059764632488661658631699213166391015904584769812223654574863693868270173872810294380560138010043123319444417840550056035697353376900676195165340920044469162614765029027606651859248714894607279849599437465611558438934451220513736962358283138842307397674669353988145951015224344766100992552770665673688193720038668003557363062069518627223760585308536726991115585648371681563943686936073953797934770979316521667828036415923748762318633020795895612070332820216673181649071990533611798230702891480689331647337172311473231439896297333735466811692854088020902059798792746443131483579723353258301606596573906437036022736978861973543712964068768288606627703120156223742510185887409402954451724447796261939808179320988305382977023620594055878884576402644138746962896244106134442927138228493565909221216107776808728881652344355019055055876871284138831664604803215855336005157290824099848829044749297465962717221403004336083746006510802993834116589832300207635858295944002492993488283960469590409666313440715544142727335008855269873567637349747741779688233742364635039952718571856591858075736001843003301715084837649243552445363681345190999959186378522485787240245818596494036037839187711790156559827035372431082258802941612004766545749389417644799268166050254644507117875429106882626567763988650010239586257230913344458122941324348494981156522504190344135031310331474110603791253266093439060330427864760764783901996014026232817057072881938932918501648251815173072579243776677800689499952424271671427032125496537450646743085109507935502561279174557316946945822350096376545737950308822897347448316357761333550434140253069860870747806375863194459794679822030789380987437567130731343928523203696500671810320536427084010960913290369015738840883481774865590128826299983168707541038808985444872328313673853620200627865959459245265537995285505294742206097730285157128641786847019279702083809459496069439092960460412169163146469024256955496902929008009541559508963220367605368518654274657583650753585455876987546150245951831697535504392129770352323009285299116378355128519829510943387468258983910329964205219135515341230647506451248414918529352846542237124149676200624212342447868563424994592005768725646014486142866514030033263189596662592526618083739443710574708207995908833112496639676922697386354158375084289775068859479065189178539643848902233308741385984344220589018189198143417129819413633209159463148773399797747904953938064981145315853684325713524309196229372572048752624237990439502807954651428651917760769623256218536896975212681862674784049281496846344652076299022451801651707570849724188261840121782690883232469682689430821566855045154487107028858234689496785084232549568990716439887088398549056834751715129909366217480065811490385765855836854478174189367029663364630510061983545492900261391168728900642427306922912829622977816659033341902679259423332589589381141773115222047166424671185375714066666853324496086458224995843476051704951398012945494161537036560896929647733076503066135130157778941152967420346467715471206344890957439258751464974464256798291124106657540298159292556414464844822051644433792289782215910549886429757494706195725125743306533132709383626346899415861947738789096674922983889739380706628983292328856787328921753624860935047549259489201639531609862636475265452712645154939229156483391645303495821155411337288410573696737118283853543326288775809409573510983508321864167079760622253412686487068143892430133550447406135475229075979088580722588026873365909537001282848184470261020193747184840419052503556452557518700324684090040583678479671336540095936743008682845052742571919262502417393667109547033724626852444169558530597344471116837090679954593916585015675098070306818746749260549711554859505020199956082785163315298776614856715807354475473383926797703192414634359112787734413713650472956977340138806326604117964128542907103722042799400034468551318771914394671978626152808788458607914899600586158290052873266961097468761964658871542989714951003990038179957461567736504580303490198857505565305944104648062202048586959026527084314375510996246299964441628738106431984337031214998805264929828141722251083746434588614496752378584501611908801153653975800815129305901127983810133125088982293651829311167223784077553985852399109732005385446476824684077795557370129596730506924238464385319290012878836000878171667711396607860702819226678526697575289920653834144265033504414521947625409118259337905706638573309958852843977206413164977668871001859330760464935130452196049417865567787287904843143904951973121145094997099667712908531200185258713498352096669472502956096235136880296918524674491017466725295530913817767775205839341780457573628056314403734850156810435439871858913828980800389941068648398948326724350818856500116820018161723569820486565067471595108089600661991511850191628575432653861174916916002961258286850665566733123654487296326623628749380492642774169789433469242910249067750693767864375118916378156855223126049106798622003310588971348781724061009606270662982813754159602829472715994627378926298544907876283043932797219068400149074003595371315066812988365350526716017003864172011519036857460899536736380086842362616462726944964933380720926326108676141582965518037230234305852884522448204099792018799315781485975218350190114504026153522757241231177547873618596179280419028935412386569081281582322098681021183361214586446083881982261790597198367499089782635360333176715707689136706531233796080372791601934264448098468059584203220328118747846912075303532155620561158973464239566500563033470571482632866322392272707309480308664527244035952561835023514410373440602292808302739397025758262012062042417541575733714121236228605651656950729254428992932081997206170167718991120600565849554775689471294885813920244416103356231301034769813070003099140565865598754895675111290175289984028084458267788748062184285532529453747757017695841408073643688122587757381348474168211204203110802825095951472075710067904858644701999603334388011100332206922057310536652739131318318601942394409678110094028840785198641296371792175206406385217102875147048869765303370610412051642544241617250429507448031220426876829571760625843272993003733045216382247645118314858140817790853113561515041780659269488090983396894329672152564806578681264557435765801037758815198217842684455870615511561613447636718226894489071715648126590011494372085406949536105616456765609127583820178151156803603647375606264959610662069061892545260203786146059557160135806672862168726055643175376015472948423104631146666797986052673688203505517844373175575177465709931227801547970781133916054552546184731778690448261759337969787133806993334906094809665061760410773686006346383319443610294942032120399787435327674392014734098408055981186504088392711553274383563088053542583307793041772049166491727105271298684686297323262620725952833698128562525644120346446232506032481037171795524135867449644870861217034200049290982321162727956018101097313573940157191272283994481257095492798343152433930553868365407504076780674149497749867764585326679606118562070392617764614283966283921975221755107047941143265449152297202116201534650533583122725045445006411054406075869445771512293338043940724664139057831557312981079009147211977263221042468855829810270877764173253883549820439833943707612318911914581044511503465221223947063597633619320470173153245301725681537773808379464970024436954970258364186407532447564107858059375911822760034039096077955807540548371854590702361051282376748729067381064901328128347142060567542775280842511795904179148215451379805649557657330374844155343302597689322817690221144499160180252755250179734806957251151747669197804379667788072795999151351245554392106495519568446855151097423457730335526381636274247271778621257151023173961672715751169192226975048911917939187600589150774664856345973048277881082036079261426789657280391409172840757804056625176547843492109404888384137276873381032821996428712712556743414779265306793508491359503675687551417846787361909177525035529702761146525008645045545534987913710325582766834095161286645662658061177035037409281685653594419413889922416421128160439519516009074547758066713972223432617384680402942680564905615513768841434638179246018727743489580715052386519028086519143675982041769064909666855524426175079985492734268495503563199019784599689879440701706715032582128619183009716079197318340609909105694302281106680984954073756429057030104515445148345686920196199452761123513496374842517917693818024414629884013181537286025341977250320122015624157582899960037898656204415076863132228062002730293992961134011796027221500700606042854784623659366738031288659097583558562753358562033125175563055519915188585077950638571336602164109507024430483572962731454497605269404421237518863024926120261564383762217417422182666413194935690087399161614891397618652389710478173813943430791839105853261170209633821529282716769334142154989705715356942906532438596849042080580175680514607006008815996692493497696732989216018224092691011126420322486818045091320354410967882189094524110565326430449117550269071893819793473460846660007707000283275767654679887337228279280675716980829259539358002510569870141443194601963252820409338162481668239208263630312791475680778701267839972220791824881174353512566278997353853729732304500920468641746472011675482510640289656817925061098779128905066431478150138945385183149521394153411362198421024359179112394963437567748103333518390281280895931523670469154700658463849108055528177654198351863405337979334796662905771624005927986964800302502575153975138723372359035009828314370576456078591118445544427238734679882553281864440722169002633979437267235199128816365430268567567395177486485539366879243503669363315220732414929997212967397888676249739041402639336476204617305370602707191402248806943172337882548226824149213249059666855614882570287507635001662066548744723159065345739272838609143107472590926957541430390239365581881268047078522764607190113501969462929111689608082942689274952587329388308208934713261533361497746696108494399176575449727474317207800087268043646988593460206211574269485497641630075480832593606655557682736588299414282436131491184377664286425797546826285573291686553079353014363492962908286263564136971160717528530711144122332270908197187530371417189922462886476440375091686497762739799043397345399793273905282470695191045268481317320424460532830269564103605361328902197121702764278799625528146546652272302701133627568560177924189190509574456943478425495595767229648859646647709263430610626526413953443438814195709762633661599866046222143925637115166977548400258090267987986105358596183389987594980976861484995855105678131875000881117051272503931845958545888451515041408209729688650890614724956283402121759992219794060727526523665362710645606548816100117392378792748046824688448598320593910847622406574954711924472376940094470738499809615661303667798959330687351152597709365811498963656102469851599393842064693850687844178817924338088727991663125129514208441514870860578275801597058407276680309969993393015911402688048214648138926740545840291543005273932725732415516427504067408472281689157437812460324643177357751824028267731299728751670371829926143317107212960599175535037296589926734367599684409604350982758284300491986570236811480491981265453284188559529233781957777584212297954920125447510525943781558191267725638638016689973186718946570800516485266033719159493339887923404610600232689894852466244542724942452478896573031618269452398306357431760116923797467087723344380925151971924630596267471167816188917563146936548215234972934794258048079035893626046384458953520956741473147846347113993653799635579909611888004941747044723744069285975055983020049970966855511040254126752985963846303185421616461953209719371234665741946512410156574288379063013142172505915671739256738667893102673859804691601503044078537217942807530168200220987603010753129926701552333674553855071921506477403875847185587208223752652494923027228316131387688743476512094644191565070412379919957596239130273391255718369447531840252956121345884438962403437438003598453352075181534018319996551756970440244988572133597388108214417580514607457688267508552493813117258689036540735868981627432793570072612638136650499501338791746378958512314546972156909641969267036472102135457503018206564651409581091113956627390873224071857514335866331882309973839106906930206179544373181291828635397778413233008848004545194759539870088220732200319653780991484616382365282072214133420423687866948598254393353378568457694710216839896606129737316212447786549790011464027289689439401653753087377732120041158776565783600836631547172024139394255271308984127049053396833166493491234937374205972319883750561485752120804907719157687537630904636371486688837769277368771414482580288505884730752723418373635415894633663139328993989955001305935191648192546393095866303026066040762728177661254737627743813032975276597854676251736430869960526416865254458585749726081344376205022010490949986420832912502454921797387207982757459340132647239742301782404025496051579105064218115564834839578807723840359451299217607418076662026334347072548692306496838885158746321888366746198167341225762720647001929247516903502463924823452548817849140506057748940533372630406093758883551602310643619094317886821127576869482218645618435628882625443808427660819238395283406482028267191820924509652453881303258170240141921230200940820333834096041874818926864975912218018999185066486882087217538553983575057033212526551971233562146687102386063737941631288074763583410773621177698229626861233079518918608090039081780059624464512406206555543650025656674150761851744262231391270566659121823812116359380728513873962495641928014365439343647451893970258843382684342022848882522411999245602986299130436965098359562743863572115145545359004221812479667712484558095570843980835886088566665057998476002873145035088425707374310281354534435196427005720557656316728287241498442130894129987459656427837007202148889712774982661242577546040862967493990014740051653061374486247491811077179778308747165321199573017629355124005911408163865907908363457582594243467700414002039791227235412374166157186745851711654097536957984542755956677017255812218880158228825066309884519499533541586100389714381041577328025297120447476967387063161410508098990088978409104478778395031166168537195388696230589406022945909749767563315797948836434595039584146233224653596052208113504873148582289433292390672672140413739785999461429781919777160945087938579066336104698288761017177239521485999997915166098512408827922278265942332464058244311569459090643828527904351907249255214106561980942306076293310862104490371901475848004943962775001467590776144231490117686469722887820438274227305779273467594139362171208669250119104248122989095099761831546320194829051847682116357678172996653578130265289445855547134245931696364612932246473246243607503687462020655803028711050434947641840414755912714816235108163718382261871408270928355164367931964584986156892175954002355743102698291343111300686090059829958909475998300900243202071286265489974415548630867478958131475907450932446294296625845420362667091472546088248483454451605564605066982912876106428491350835937750088181097829648791522101068188354939712326462962492492216704224756836347588969670093546395750647840172354032803729929397347695684839775169183784094421147311225230979716027932934253173272508049131265615975538559089003456998589372733360453053046555246239738301721567605193092710145709708254834131837834641844485884948929269527031928813869715304029954551852536179354505449257924272371968101472731946351173769644396392033550760036279872235810527258542341970525728799088853624541712675969796473096864093985466479875427968483745036928026020220054002704681201954770103918616247059673205605503157032856577610160230808576393905750495361419235252166580390468555637787004334477422535473304718169595842228099365834799284631423948110408885548734761963556320439826684956853760069232824203263158982237088410231694817800845855103348374003124418430967789442601969278091206834792312024645396898539282717218590615251269855044916095481430621675528357279442485424999274351385730130662645985702039913573675869549271297652241902997198458818946767143248294304332003519581963880645152382964855403262164488530923718890702545207213857109506933689221842699283301341984187630488357843337778684461017970409590036861564770434894364270825590258882130426406170288237108240509580714562233077385843889900657089438013154217301579437993753877478093703458898925884524965600724960764891230907961634378054351892102598355339522642390498856591695407247274880527774794602563898435837799113808833320875563718633002083921067406282890156766081890042331809431213000100888018531276519636797201551804039170883270433667420748973413279208637084758038287948678633598998580018342762959343115333967026357059944947364208011933679777638594145926510700688887487711817081338161018242066691057085067439761734872144703517356689418626835554576767518698580319481957006345418944448272921197986892778912065397470735532077976365327846070503384633530133361944201785401020145479027109116331305867893912181157709675374501252674834513140538434575105073565683156694491427960444238990105226983249468230115280195032560052176085554933513486127033513562828139802850271040523496617097319100391595133355901780944943167300596741759749473809472739615297740771036680971374021125600242019996382464089154453032215182048883955392930314060872146056358044269246128607345995997990997724867485334055741558511978541576593005948772068306091060601653247176059204877491090893920565688731572497035363237672180507527281624559816412025257030446884421150032020043809146264979790966949601677314806924241884911220670212964004238927489261613957882128980389835845423685888189473514441441500393924672150717374874800448708006924316224453266524334816672579780547978437127637942397462113520542786190608628314390695963157729310877121163962541912124433807165139489409858231044204320707642179024328024734443733200373263282670540560203858116757664019927230273356122637374451688256066104664315338138786209796849092776362515992810950257028889564950615827244176262889978176864655836785978250122799343014239424310712482033490738154193046870505684616331287771438388969083451541026956264992541853442816892725777063024911197021983332881111646379400171353181115776983512062297206328763541213731584501440273947927473711579998119343780938689544586935376750910661804918133439266389499899244304620247169668788548999672574117601824351056437634773998349608228459665725363778775796482437581079501961389200608389049294501029591750427988017574292715994556763762909043390828421569813834113942942048203999515392659539827316245722556856655018752379086587246127647815326679251992694729708323925828419059400660916838027678810129402665976075233203179291119214457649172775527354268593307979665341739425334254974734060824495726260146452248307863354807377041441302522271255411963299137868797506275533796510843993003212997562806076894844166466093415445266289740852435128637581731498203523693679397112102735814068388118858874304311012050805253790921085756229756488047979342456447167245636172144396065681189667353816572882626611941428736216718835989180507557307283775319390866930311391157601597744872813415627055947727123700467498135673490946142451705373572789851332180564748381953436548129908100025367799597299702471568913140663644008230762723529370790144118197188268594607683054307046020393259120594622690533715967757356695109084598616327677967987338906282043694388358985915045890307565695803048800394002280845691334633262699695236869486477059090936306244652156924208737381410711678142491786300515866748474542185268365892823408628858140622394716600871873768555090213915750901912924160044148654400291717584902966512414899565696234037989363339122081695397159004283632354652859265566879510387942898220441195852119129806288177814619076783057036058151221378904648820844352912963654271516595145974056104383486496609792393552049661724120980614396373998893712525666236352178316437141006804660446630533412203637270551715667694207218292355291145529966905970238056215126639946193792493282651853108149540917153756773637830612015102500544139147421022207216324041782287121056535891436091289651096122368906930202463604060380381933698667480149858267756484428982418192358084804039057273373582739389785959053503458355033352779196506959118081410843187308572744759683305036137254673401111551413724168119838110158915964059041430150831031658490613601839484534012897246202647218327905046506418357115892694299794710822948813505622955486005247546169603127106064441985412602712609352324848389175419486191079209580201629745574558134018048000345625637826801891683603776677880429927266559746334674634359769684482741091835320660891627163795253885724924298695408659858653561456060766982986086898621648221007641058572701114212799418107139852511456782791785627773461424836051047742252067105930734965477856047542290490648402566445594994914144517499895167298325056822681757596297600640601303799075367981720046685784932874813054080258510762406581010113991733315271253517492024198350798029848123911181984096299861859991743680015229983281075888821670880904394147013270783938800842698017814441008641199158693656364090743398303952701112108390595951959732950603147983503013887840267471502324455480853557645596535916231080195431846666406719273088552653483995794602284817563390468530406930125519020229381749961813908424856542026645493422467608208517700498779334940495812873620094306007968027243051662842108025579292910696656905641776319669694110123538199904989209639236131310865628569778226058376966579454071532083056534230263262957319679240567082420730732904723601800804716703162256116018980238552970381526429893012926401569009290942838630163010219363041546262930736034521053928727247466655573185599780934855170369640136213743021017626154272903841931907372556907358372635767574665746234856971349596203193562537813152982948649336987723845951056185383786790155550391477795571560565569477348982963666947566461542955956619396716833492641081765580255658312522337482087556994703016369392559233128145284876695474704187111088648196533455152107548584712270955304932968724601998195345388555694072290591386949833283157381652594527831795574141184953126277160770272521554553844074055314036991266486470504138414043227633366314753493606928636484375601259152821664204243067389229420958811131071784212327752670378135359096620443012871858999342314237989408674541644730736704020700100032008545458667200318822411994029747874217593430500260518861739891001750398852760463705959382440376183868262862928201036249983440590123732301835992725681396053771426514197683887859902749642750234517296617361162456161452524539176412145675548229455688565474576866850367303052490639240049966379849796093967723444786126618909498797758685634140570595151957506021221493353279367508229136555832408084166740587519572901678934571020332804581741358188288210177560509196093574150605769957872761689206988312989547195499057213482935100972997177396865710694484950950441461383218415260065333528937432000826400561583496926457876958708063448817524312834283508291996221112272497024631550539469440811225232759096131019028389996144066884438443275546584335482301615741843091397818224391961057410971147402916287479380911701426728923930471760562453478061830591304804572759305774943013680436107752154909294599828238191481806762670914426450077443534302867652087879225945853694282695348219940248389053612400789249938881380693174835387483271802627329012878729859153050502536143246103144721447112933216212980201453458740315752083053583098284369019699694446602627433138392927107144920412570495471521215003973513929754956492402898933932277976209654709584551374080119008071544175389852591489631513870598105703931996366675539529743152787326573033961103143293721471779794092343457092795505027295078787695906069941641304982749336834291586489141654581885505026524590478817896794985079807410806674879386236538109998509365696461544388833066554695510852954214245154337261300024766737722560936160186761104361333634291938598722929899292345530270831560434684216385627117343860938970501331449061304375549163761377847087558484662481830423815377804857257289110243912931053232488376594222055875502589886048227248932369433335663138169378841161880350855778717822144517324036159354993412561609914661667565527085902760136217898134508010748957259791950533821496357259434886839835632124779223012426511087928870402864651119358044613366776546721601013360991273407396352941203624316850125458963010270369952565565376303494715753647676984103074913217320553302401883562454375030540663170237155793265260508489073179397074156961971078511815692500726901628012151817906027705986143466778568989078026295448596500753157938769756960452884313674353684772225571252180204133512753536334666793014271227732291545732696112004195355035990996122053651587621790624983287825042153933235149324509104304737115403105538726010785165357308529492062334449067485784964985492149054650058690014393585509567136054391476894006195635150221500437142831576220166298567091071919071922006846846121477307674165372632880055074133464846142791989285359588160600809731509335344037125299414101083907950321635804989344516459540658093856249654190940051674075833273187054466869614105054313756548893104261433844558334737572866140863468486806450311769053178778920407814878662422309038538063794085002415302577552856738661518264739581288982529224097843852575418465512727674109017737122213671450538104885195771519757180385840400769699637921210522396869709290825932085946768896522271662503670737298268077739688720486301606265308793271131937281252209215551925523558953434302548174769160961799215187120210546505033914325035290803194759584280813170927383996073873660831419152971043010186538829701562598306444221896670413195649201424588528416807024788619721399664240953226759711115694349691427629423312259221582295679053220416952741773062247203983030217188106901021914420514212782117967976443870564675457420508380275859269133354954026148482312726655802873797385818082790563417609342107689588554356841299634880233518029860070307231548442556016498319576084630667789652977276190441919781291041096603357755285254421771261444397010123122194085138249146186719405942549806842411298503136503565393866161408383529930282911060767815312027531194418455002402788861210972212222892957615889846932207538328421934300473610491804467110011891083461462186169571939724180091456703371812910451648742958886020597571375836326142066850355795112285066136887258029883264002109795560747556485642734730954522752735353348140311068260772180670883369891403167244741521515843722134546094018262250666710005002926606212016292847050236891661611700357444309495693609196301476300085151295621839376634480371864687425520374462430296122188654064161202479804532239058636913195000087093426610452384374115551169098473555249578256523819850335237534368622535555460819048838211401071408747812070974635271820122994658470231033600489133779978580228251717186393278805072616028132729679189309334556213034623562535391602142748279044851356082253468374996548634702166845947455359780633623511912363042018567599298524023213023363853613112668266233036861514885278093565241040924837442307442155504576083583938272706357721361413303591601584229917703259407434278288029696526997894848023362238340574716646909719342097496058329185906217652379372657721210220183283808205629893485755652549055279649157927489685690703075710713382942416875937563293560115622819348457215392259572392221669254791104783623502986566422121641381191273589461998015476975542372909772516959888061541929650131940772204077849290192360420958645355329771105878692981619025522999365821390620983873656434127528651785348404606996853764381616797634013878764451286646030783367079910618822915951996096494213328101400759344165653267070876283245506122953258808685738547503869859806395135154151888119806262727720641234014909717602442206090587682869980012106068569853724954836703069437209327657414264825060189881927036579603428715896551882140474125624581828081954430772724203977141393000511478390463103850538323954623276590440207983416729059557845226460324559022274085677792837413785529556421997955566573358296249430278294937510961522887990694924739132572640784774411537049783513783426772841190808005182991577189705451040831898146899123623649250979415097392885677479095284492905971006507569780187320022153642810354599544550446241665131529212719490902191903050567103957046024415450890119636719075242820556604003302860502249056308093023278877224983048728149014175558006565309989059675209858707301165811398232057888335992552319218440485065673280409973616736140817930454898875621020298155546992894294197990076644655562868040075009676541164461771586910928134210184654435493924158679519686352488346008806942863868859610678775612496477128585656382187039571771118840323995740037712492173027979710670906992400654739780293133769961311942274116216159879585962131823164462870556693180741815341145100272186295732543723981506219256960116974920766815633403907390947591568649911751485572890260362230102749977408692013060563773930941134824654978900922468316240193688730553761257271065509671405966794387889191800499083963581017929258679370259155388333587553965847840856728129611028076394983818006701583783849841817473277853561275652819959211195369899548811562382762613952506185799748309735380976232273552611601612444878265202084249097692319048874357346318280203559509329781713285871220221051498433284753641494537657649573207151239964517937649319352589558941987915829024177649976683473287754108240514446934017164043724634898569377642918765030452501232706446813630132528145861835946842014334658008337279745965128338646484716362675514854883384761842012503642430762352641453187276889506603130323001399318877661945653165622969232663304000755976041926699235069101232079384540270795696003569366315907189325022797659411433544834155461913076952218561551124654858073922489868467901810850528664773432608818430467559801123805728153578798058637233429192306523210028907073839918803070931285020959650970297755480053587842485331072918094758039912418538268041322447581784685040952033469162917247732045026072183992655031056678892113073992541301472534980697099535871449012527923904721574704049914257140588883826028037067916556980346640624825948787353977747274615852902982930645179261331643286494094164688668171514603499116006370002407805528792072175394950661793594572381475926515252051159939734849354252859000055831626682053875813370678118308729839437091798259815315114857857141983693787596787393598913258773958436214108408782940449622170216644717790109149898860362890005140422237785723098806546632434031439487112005707813948144290831683267681879302134681832621434671870954587643642446917542068473714038893400743277047570332012964285640268605838652204248268802397966062898977447049563705217828945706363600477387117985065783975829931205583641433328554424560996006329282445483403471262515907226653560548551800931099243564751215533392349548060754396731182354450767638908726110620211964575287589662771134751308700664137933402750528152686295234214771784767993962660745907905115298621253916899084709489369639495357801486071217099874270057218620968531547388240009780087919306534177079667678922717974556770461260390336747918354165773515321074078361682709108170640551919847490877583104691307977597473021715627444877523122138513000349873471072245639648859798208326468119077778868193037767700564639696852649824215369120916307217457210948062949286084905542304679632697479287256825787977565377736716222154507050364865203680354504092632341585181159622297467151992969873028301473672865288548232025675871106251854479718004499554175949351482195795599817715257528897433312069194596460078077012791397999429478086245067024088823693463750009805947438904693422689090054333860111204221940011212236748367269405629122549450123782815545785404211820650398579888391115568688456335306972578012035555428801219782160310756602026263419353956347742323377786191483369651331818326788022238740413061785306968275984071391988536458921789346867554674242021569541387463835267403206239037472007840948243215075844040865568996452694968962480906345878166479173300083143239058982270880911473935846436567848705408849935239448526910985733740099748693757516673937839509789690291289353100491389193455770323000550657473856627627470306519951913467778164805300380755815975009984546808061503511963979294035923814964645204728748283397397147300703482345258072400888304748461081488222541314149423679056364341665834015466736883568935446452622452338608020081947770891438185587822499858203742998051799794226769205901183754592627749846833059589869184577544609059926739478572963352702078884119540182219162679438932391344091102343088552619276970259695279741733153289298941091236918742460469188553179622346041349503036628344777700902415320681899844930410908661703077712447016334495001709121964103904344868430250593381511615282663362273874578680446607242925085861866123539135725997609851107001748701494384240642933215592400098131378568480484063297761312261482978657144215957024040286736634785751985938565346623603364549241795840286356912726398159809645232092595793162243461982684466348074461175239651997429315868510828481072948072793668974117207913918269528215697028381648352566169628192671021013349556004457520687903914518874912873326101831635290257273533162969865339993773121142422948838546805901436553010753314602294250816578632110771524059278812065859501369734725978735517364226074129328744280379382721792666852672324515193259767229476006820992868407132897826835624290407261861456245161043951563565008580353150662698618129491382651763604925027936459629029812698974768874535658946594311666421516200412455030089782333518363814375827621787116423540077468090827993418754787424685956792772073755262690488661016973707584808146376131518528223935880235958357714096802201399478883701044062264801297958526564484285773243862256168250567349610004084583586537680762267860598352153801548994415942472232858605679610431380892112891064666504986657886807237414091134562896485683693321916002745432043770229539178893682034725119995198233135465975644803066608430943111985998459150810354985761255870313673660731055851301548408497752953464962663997018392122264927190260916261334178923966745870424992408305407828238497964664156710453952449794056074735694756351625932993176927111077852432256736131310799617220462672505536500976798276692026673777857778007371386116691478662178282657252164348788630751565177658542065077125363776248039295803832075974050348074868717832232454072733482373905421119544200394361238997765407951899918444490887422520043730526438531056993492222287811241258010639815739230998922550503284715589598218133690669363983037471226586854254277706125010968016533396307485013120287179234716529770907153053108476832013821016553003709493328146369846259026615155880737222185844432263907344104108280110347449176791841233498772341042166247867467025794117977000495223187565452421584003711197734216818966316769748997432815887900587796172369928637660339057773981704694176229432120094545534743593964990719258054103093828037992813081853650643381396024936562959903363718449377558947031102706687868233575774576126508378198790375689618404896023724450360174136709797478723449672824551733873056015853460179351215256519477758106355589796624622974021778161664573141235525687678518016477938319915606654512306520713656222695978807384829542374352641629131078094027521160555827692355454426574230182257962765741278066473222240837612761307532581396707977196701376628993494935899765527266362093283189604176639384310169535734056560854533016410823560253233347242088912527985327031253448690809180438028036371195084449976848501825242427284005933907525486984284229449061385699748198728797693687694376085582664061450165411916893964784139853789021719280430719961254902164864155710475355761811678473432874764453194340935387874070265088573456811653953727596582340417661111139137720811042029978234559701725150669538629538963286627105283316132771746202312328939927322444480475918680514526426979461992681835777576862104467522617049989678785727571938342576606341880012221890750273627404269366355523636172847978512120770769655310179058659016631385273303711239353318397914168997591206874867833516846460410285142335701904778249708623496350057471191142662988182406037499275854915250965288514955842980501318261335621099287996309083554458931303411016933061552180478425648056439903879100364429857409820228491482283735908734516975458767688039328538745294137444473833244141285891195129756481364528543843167035579296912771015472221951003354090961290451808266793208533392646116977196648534638565940379664618603156705118065347682644268489195509663782338342210535301952706463402471272398384298453019224347900042935173393636424583991728429139060238395129051923333148633246771918733982759509173845549516315443060848864263256760823207592270217753475806541224792327109957574622315688719051928874005585711347294512813078926171281531730356262252922841405780775813438218815552872801512687986247782113968297245404532312636732660990414300939895461241562461346475875015500716591749390467192136054134900491902529403195669897578223852235718903723694720373569975780082237785338660521726939186036688095364799153084761053740718796140253879862343060831147864527058064738714837260747933401787270070632937186696513590109210961528853559359075054169382887798710583949216550359854989938910689231993714268335589490188802224909396257426958146303724277541459825045134001052186027689001465921754318942049645213928896569071100266202544921295031757172264446230354057850596570946588729107500915886621148774417622548305064455937533075748316395550954878782447612611199494186053312026872321262696623216338182149200490764615165413895606751765553315298068480673673356010151534168302843000743479625539840942236533296212130834648013977894238236882825861672593039654582852796727582571453802740612230019392766311504400476767733121368219847273726815827628748384813513601838576009190187240481651412002417666093313132092328316130008745242639633539611009126843728060448867659739226549981673893667104241477031720949155195512884420253851281447823196466567316562821016541439086584174744399174776586615520895108165116822989829399407344286046752716140312099840788753835845418745903310099126312348878320091569432299255480202307376045505661692509802902011806375381075207028687084379448068254048209757049129904406211532198605500747789550598589677305338107421335879857010167169881271986129901738508006648157728303255265677754636050926933846323132831949611704364981640740477479519047648575243666149228041045878693981425840298141409320700316581564578185204797359647888881842838463551807050652577390058257321702898986114275523976305226849547921939120368707144008554808225808157270150958889178259951658806467914651611108136954540356560316234482287867306725023685746880620183500135115346803032138198650987871774180866180038882560541673423248689220532044081977762659433387592338400173029161526048065816439356345437231773172635097289867534799039499327695470356333838498161686145641239998245251023764201733626188892126447708523954825461000842967826353144237505822553341108126371505046407543451253734633412854961404070681751671446354394622853614564974669178955271820105282160560538826490100287698349442473864768849507803618095231479128087835894322469564864648123247311348147712892427877207567716266417905190140597992895569203740477000790649202149229705521156754919501607212946734555813239462480265254428828721255193938827554833832892313519649499161209946141438109476132210070504024647797238773605852985523370192937863878112763285487983940629363528112703080761149834024958582443661454971362306139474224469491503224792084561851771149257506890546440096599620304900367602611506381488031023378142720054983403911015932067343116718676598097730501833869957080962896254623827106626983369095632703317157294224463632348220596040010412342346032853297771249544964909613517850322794537478946983232668192394524933801331972937712685010944591532039549664286173521660289682820653444598303032275999216281336985614084507129082704119049481421087705518401533942865234173538293901413438955276814368161290690111349979901012512271455043122578554446396707370072875519083340377332140845206405073509321791421988780730811443553099782409195170453468168887151021105948024904873985922173596879938661414109535139679603824535318767855852956926764799760884398860173602867431831130990167190101756311269736820138799402583515404254201309176735331280847047282068287265422775407900428531498562745933043091368330108390070631733653331593090743476860613570627233258174444305851227955148395420392303531110673268596009718271674979067713867488110258133710092561251766890240572636342939978025550771229539451450219026712369386948567114062814894282779581170072339323618238307669743761184959885162087939008124692391122197319062699598482945933343537031940156289374145019744191321363034538463189721343718354828369912266991830306035738279605126862609864967455447200920988426389917377986172169335141422925123011576496617031536066703114302674654677647999449731108864194962240752761146325147633281982341071282814783015921865491762182709608337054393061705250401727327825703077315655504849394523184131122188927261184077812525142438133339289045338979740945511167488172501744153945166087851811604296946552120971278049037091797453324615941592769446789184590443844518769948076819857626044858097471621368851153155134988206926685467792517119983584436837623677250595667822721577233941211510067924782082184776385862102214495324710096172183815156221955673759957537518428542281689738187016831786822331898773714396824953367803689186590846668782929546415641394191649479526955600796345567960530331915827364709197667227283556426118449734778680754093574867912627359548670854604601507784117121377101076439519754396820913341865258223928204027254033803227538004778930219792953392394916155585699616464354781924182056245974094798424246195968452179668449396993802527137701684679338604131581478320744253209975176316443702813565990399797306749672264690485051076254868866598348987598586538463575077140218710838684629350788737813026618141043704921034840713891851646430630675293465798510889679620851693734748566510603656693596295875613591362461195400762890559225499895178364225114645495708915645526526717622397957093506669837865460351340258297411236572748378793401807917280253875691582821052598558247313505074283997640176324904456171309017741033351275208303474195898657206692214280607671296350721817829665320109677994257531422003646968910516481647905614836062960694940372344984679596567590552411840148916544407705883764134200385312131572004120011595836305583641591212182959835008533192420690880740289619888541604865305831015135905747504364521199134590943446678656429439470782512875355805382300618286947913985370464671395078613379794920773227849097710366604329238546202225620799719028731728282851443119992352992564839203020680959727233398427188943193933217830684713812512755571433449722296004205803731252241035584301316785598414791710329581745542703839937437549426063911075605043690257127132010641146389338821013185585942475555795439687817748661615376081068927809089246871495945257967210004040621053470470431458453180284633745388762387338541576331148783806908893869177502791156769739126355242706006107601024383511771311878122442712880803501642148441510103499123257690579041480236861925294681234934253375681402227669089887810115284079032383772513506820811944760779561772342814564163461329074482844382618097362239263677436990929288566553388243609059624826910968881283964612856431395393991235486708283426498086861798034259591046898442866128350154981362846643624298621242325139313195256272474959876202097710528914694803379893571241634940560318975853038229136879754384722583071581770624344732819361631501824400961845358668817450970245916496007266936469866510918173538089228784953665492842694483329294488793496852905652637738965188119073387571844247231947129506082887451051785204640312681595412513960966752211520140124401485846604434310142374680889564438715840206160651046619330778898106659054913466280190135084702404499753397523076875151707658120431752186435112906897387892905577085782421233552614553604388054907217853228308769679312727531894310851179147081303676497562510881792755432868976886255330640083071321871692257212147338328624113613429662884998816280486612152840504489803556631932967011908460808689576563636899512254992134073382903283835438228714075954577009863742320060903277887307119426425514776917607157136520633013988035707819935535577888559304895017329042721499393455542800851595152270375880287539669587995501087914788698151826650394658010810372929685317347742925313559225160245489760863100933761597655001357852294391932298387500184555518781648011377489839106901860881879160776758121967031196273321345170093890088535900330130789706302999241641805033047866592049110221469687647788960327096244904922031201304960679766711808971796645443622052110091011567507326049206612869264625534886509456738391590044121405735562995732108635040180554451359699646170964117302403322850375977460328562156757318711070550623836044428427017700806588858901068375070295798191715547718326854698812238227845989896526730031458430437461137201050343877538372290535803777062875843217729164925824474605041535799462172328407725971117993704702754776093319200956271687616309357755490136058701007464036784524936198907207920205256927463507292984122884706294295216570506319500441255256057278709805784730325236248619932202250669487579671825241449944761977301888922983579378853955366221476109476071314389706821760376981883999247695073285644386549519136745730844543183120825428343155855580033830081388068215387683655098749777667767887634926961951318940946628886619852863474733016063186459783526485296043468181720404308247324156069042125871724312016841335901342854632683151423209777710462852882898245414003770274969791420984686972953032726021193005091065265891516116635466141368807653019840653831311372894061519070012169674788571678066326445009312968675528259193777633711673027022333735406738182833829710827706536417932659316445783385684614417499348622680810209359273651150180547426181585149275790410054804771151429698812255535518442903391135296501663962866480514169405808734214325020124872780263468912578309167246749003540421678264334165581750047927510516339443966819201054601267109841458140302199502579587122984210651948251175345968501722134881533451592182507502984160428995806618091555661258074381447612518315023989669610130739335346893177917036599297509467692741661401321075694365842368663851844543953655371783753914783777065467985850774619456184068492211581143781084053602109855610271533809547713155896029901246722762209960416810149584142761860476837489830035033904441169067635145932459984393514641102264076396744004593566014692794954406320581244219380198163418326996701446125353840947439473626505943485852056483764460206425276621576454054601677760446685237214855845582739611550767336369006285711164337634537405057636942879422737272995703456544980430311523059966471784851518301569182529608685000632057786791369637092841489490140262136002754387377566669691969653055341697772136364071195534999317446117069868494924952382244849753553338952381955207455854645252018444762689850648511394463041080489873915790221239179382763672574447316642750691903078765875589436818843931513517282530548840077396988686034251433752022952939735536723469783075723146844773049234800009850172374127717565250410265386919578788827551425268109815567052965930209130735418187879344601983139857934755458342837468292680298384303260552112596699693583145567015413305895676337157288288030053589623042634232654469611064734386871499504279406955091785336732676256698571061060167037701454741023990261165222086325158750706325218645460401934776322781557793665977167831898839283721926502550086323630671725803704579707505170890232130972535863059144070957676997772816423582972789678333690605903727154776688057719349745945049583451830867778870646676106623263442817326386881382852326722357617202897192031691426024990469899229121782820291415856445095344593371859179388192516146408625668734498848512007922352857529572836171639730254387164211088843528344150057072106943129557731787589598773921610483280750334696500081227505082286834666655919555429838488946417653512278528853751510717547455407511639309290197765727896350159667323956572498082858189284854946288209854402997929150403078464671891097960183390633830558641595039381618155703146719000807650059848783254272009137378001653186766521167468616462286135287772456212931374546208598908278120175929972338400813263404377184766255343542225358482960492902840148553020972272865913677111782585450440427444388604368863047356448565329685952268855293424623270156251862045577418062443070061242976595010947969070339078733074491195164854861639660196982033650879833978439842684397258235126320873007982827337080114451304710609257396492960720838345037349125248969007648801400269093714048987489851996532366084177236415915206953679825376391372980339237071858439932976468852624210416998085790258248128773687300889455392274935522301052244591902825665792189159117186057493520054995116420552151391516705427379353267038802723444248819746381603466328220548518864799402105911449807093412538276070980656510327402032406397090629460366667701022064832066247292011614660125111143073385224821821479914172221406338409212429050009231568929783080891229094082878572957538912215899945394599912111041665021697134396030668992394674323320441136626870424085928812378363801972443371169427620904821090585486153910969625884927200705217207485316503879561097165317077019401301297078100193533147361093212105002542569522783710368507677798368854200874265431015653345967032859489972907153211677367180207869721691211512893937819500416904553436221885612797887687374835126222956921848489010353208348182488735644952285508252876105162804287229135860430963337610895884645032795004044234790990994365156693678748393426155557579142994350404961823701828769818531790381358229619793541039947069959776229812536295627187741674771744129647805944584069543221492707043616410735282270045429744590478241414174630284998028299581143100214040423519451498780057292151397073590644020519646634970607356873709963598898137757822026955764943914619688713735858983754208343458899456336861708776236951451787823676683957416034775766300009647252353642470219779064432842767578602574521400027613830797284499347670525223099097394386402598820317716873703414132195324177811493415438209976626176818962676029141321580635233767815311291263079389644522889853511238123167674763816145505491284225742535701108975217924692075692268889423094431933432773730922142629793924043604131310708232437904284011925748857983494053281349052349521665714388990152964544223730015660873819870142257171849569718171153365095174284847359508990241776172461464871154527207588676887669408675057133151801783485269653457249414818911505055212320264686569706374738205097873694809852197363205870290797305188609390399311218426926907534509213808442968871944669086820915641269726212819758602374626060900012017239755345024336808696940639152903610181041207615618777625253734196602112788522173414624920990657404802472172955942077736596220625666282579308593721099183948003579117422069988175447462415105303463460607057853799460934178869352057553323843633379414056054605632858861324002737846547459320495643145253027197196635264562295757231287581175751106543565694529984597851552993915848501761543589142149104395637609900033847896855621911618730537978518501404413609927827641421779337504072797705592403913276651348432457560892392159179240087014641914530856199306366157860262507191000738628577629808397976507204993475001306810693445251132287256926950053119129487280968728735481356111534425294082814972246643397584163150983377142430459423467494807081272324340100934786673350311497115393049008747742766302881860253135078707663805925452925225330359570975947099656469690409491644966092831622592001492485290095162023862742446975226648168968314656247371640313313861454192695089677892918432908592772361034510072260618024049025250073879956957687320759439495454767126759288104767016485869286607718905602054848854223903997076656424428202605634701269587624476633761409750448164885530053289763344130390075307831918764534598702586694920271852307428889171620506890911003540771575297425082144563302540205491462253676069616518316102911721805478723314209896528981383609269851962717809375820185803790327199119486987233998892979727281156198950019074800012649753144228780430825040196349474733996270057892838446491124372223208116909560629038907039365047725105881599402515457336910687890645859073506480914030589382341029962019950033900820220367699574653053507360823444735470582402484155641948130109181918693538540611726786699822955900542838696713765524429015907505305128302153027131103568811852104454776193331561335152490523387067903484852576936367495948375381214792464333318344741564902505928723524222722896755962641195325783735385240683600923869385341326013064851267988350701793315721646484620006841031065026285853195132022677573752506896580609358674951475448110443146011185416068234547230724928599952641070866448121209493540202499572209009280075872143890353521586771014334250448288911856251177484776368641386966102485063766456795526492180623974654558493970371659008484374017956321607613547972850209269964481574048147981065814340971272401993312237402343915616785659552733279193951419699164086540292593058229418374295776609673933526204204233343319145616219291120912659176120841114651109586051107048945257015508955048937736942537249505240786138258547761000314027529758967677131571493465720494812395852517367298961313311100753583551555386498858631001041192965154407791405672537560534956253525898463056838623970496092169989654961709754544995521832046683244620500744318966806098583127381430880479405934567398879994286288334235341168582315885542801611963612224321882963151987799957840755424657802903421433444937377988775699880310487834006936207281814563631996151626718867499888412115242477422700609915288503962912034757670378333818295274239409188542919378390083303334662573562332749593992560192355274620099014301873496490569690066792091787848574909134986103590357220996856675846338633423064663841858273698977982687499490899591460411298323723303028769967778895662720081919172741112527696381196557162934809995562882155996634398995475459256570710420720587938209758359127255825919489349271286279896432492657282304386620363662156998815527510056135256141072980805495756191561043072530946128827725007721149852766978898259601286082046534869498522603517162690792935613404389301157338404590158523977502052647453398084930649049434677774743394764794842073071262860086273781598310333107203390186140345306254537614364007830203952677312929349847947406683643025938806692302150106493756814041408098953871875186878736385951480886928253429532964384873145072983594867066228128002948414723626740114107081024840431067543631696464208814210442886639088562730711264453938638918503599499785689257151537379887519170742459238039220694325154591816585497709249783176867142170363710883691462187997755902951493407693991754150610250015449473949819572830654484731977071705424090695062002845742676930670304419071466711913034397538326459033226886117347568749613480011521263652657574648827258461401210407348263549149338018450879919683923897022232240969661821388101584665998437219556648152588510689825946021132603200999414347969543872497179590685399692922470945037534792464864978957941002444307062304190231869974638933782984034930632218237484936497685648519330949383753443894847405307486624863464706266296704053230343680096154605332739115896746622989495171068134971438925797159094551411684232703431356088234625665993203067426797393442522872658118804665521531857590589023146030003732057869744111713790440864879770842556243042906967603348869438452025843867724824179627186534239735698994824712258428738558233727800854517249072730621248162883406797994549061973238122608983734574945084829576692155627612831243935338131568784047839708335392775126710748010903606966185165631049311108032118612219225192539132778696233499791926109205790164367053149514926733084697955487743399817704152698299641497345772765409920584712711270121144455597895521027127555724205917295016589362478098394183213099388370243267364642743722143281738693428423482038899338582182362705349603455464260965138283576556407898491926063300056549205677619270537165696030041887604820638264352815931525154627512179151268095090123667669148423718005643611024474004652851567273372552388094654805052753646220816168262785496985779955500840418783158699646109462288615202250904595808486135919406420189295810435865846522211888664353041093971021191405997198438124031325910305115901954450952957842758500762276877296016234944738838687381518300611738314357517131145812389920136301243691553161001855462227666556667484658585427458947015239494429596524494725218982770649803641348165509726115561757171963999320298785956995060311396704527861853931289161596456983662048571113652832111028062735486165113076565885030378369843748152112580169438174175724104345179557535933672049715989258175807497237965046434013710489363032741082014117583899648362974827393341878783545113345005488671071794704243192027396993545412891190695994612795285694214185542418076888616562434463493902937567137832217115697129828077779849729800211472122493731230810943882860709415954710825421454161178210965585373862182561652118098111484899421009796913991765601080784251512911344228309721525323552174569296334471038186872589682296322150379204767869603731732047500813059257699765990365146238879683100737072090236852764748301384628312834490411512129384221917457638113456588514675870828036931850461256843247474683881542718035811058519916808147053168256296195354294891341349730148442390515791471648854434687144211015786653672331561591838839724362789221034736291384936656002916327197521202990882805491641818039140496602987503084928596026754521175855018552844736051503620161700101767852200264398593140350738369761429910713688599985350168801298424379972511537161252214168815969971510227084668376903218281395151688785209074283723296441104567321795548026752356923023474460011909375237758514897079513703786817391586132519540116385646600931565455670646667950351634671093260322466914286284409157128042719890869391024967736199836925402200058022560428859642605323826335356928794678861106781832644448227878462797552191164412148001399836180981672626855069828677555730087070509311909362233567993830936380255188398015590102279584771864821471123030145209507116521509035551727552478195522328723470287687396433800178607084622438847829118953197443796981158558301903195541445211159709133258572950872123204549732325211324251108716374021668470036012483053059944224341513909064098057155622463484017627597026369301032107851069650451641796924751668304515884632842534694199322490386275382912075242709247006047466036292795827947203152096701397579537558338158066450547468971571786763658931188438343118588247838246332492882880434311635807180829346293031205467069408222656686353410895045555504485620650387015771885631443327269463200556766899652385389264893585189989077945948739805677891654159427506267155716741706157515276850307354146051945896205094249148794362364024023008463181586236992476186370038552687507953791003986510281092909111043007894027370576935508955923290439563369892098137976008307235453275197844646141184029615924202594315786488060653933340269282318099676710353418366918697335333946033452667518060846624467332809788584729054196396768528964625731950714512098304610197520196780368148212378272275547761679357613732554560720873720776331652017938984477365201902677358792244655362471166499324610008306385519447364840305457816506612686570349515329281874588806065696147557743334022313152854606266103318657272093093269050477968453869205351469101041545176760270697219009687378102837111204156466730435147020741853952023532668012280982439813991386792986303865706807944697276607434829362745734732853868173909975253506109577138024291255818335140631611360549974861660656672088948007468569107255343418265422680407527955969153333902628529084135378082382816174717169364343742399098268652612914509211948010536688294091648995702205522895473876763039512710079775521491552833267718247157553100584217166635322625752177557709509939407676610312143891173282790424411097824881361641253552158291239345271678870190328029538304776953277590782265380482639909445124180724787206460138874014377685983259347924868616108086824036255510962100137822007269170499872542494919011635521100427439501466591649431058905852278101807244849976688966693079290400501511774827644766933858172786086871332133419175216209216541824448275547559136813113439315259078105721628826280884179342814755059699394932602020162357903520115481990282042220558437276743958431737100442999135360851371424741101662796917680247190334083500676986816911083826752846659061530642011141697704521735668478580799710413714676266566333421899658392480053496171506028818125071791174951177927668574335292473573613385359597624605411902441503545843239299596163984029463424058660213754414658484079184845596672558006164114724543199721267979611248792365573145030278425128241513986565501457066942752485576632063192171227272776561203818605139413861232073245305839517540484984893345648899296698418711329933654312282093049806362669601473467879885850857667978324235532287925484578333224801528415694088724607061920631678360078651169133245304628153970893983678400077767704652613754937555357678813948852341237713207572489789660064317632088965799747112487362701316432516740742835364213038156300237823497515853402337161783949325048400456554090522746324716345608961326579629308068806257287042061278253388826490272479534769214737772988154899796848259122408268382862748154600633914327812198620150455501131718957341149389284309541313785272930352334927993020764698068401919573118953485338064267277688656339035744337152351220162824243634350523725406100875110976543772648795562433420293997486244652319582756368438782967148821825927739907901447043962497021543138267196596792128333745034055107927730406904147047125900242637436492632268093254206440666205008869583899378253303072728726073765937271633697816983073557268791763042177135012951518262467939393971114591992002755665841669884062901251576134914026959129086027528800104447295029242190615902587351784800012910504895121449113338314069665283337289362243964878465218142538555122347013059429955066837977137843218377380805508043974900524245696906839276657590965026623341064453018928116182673269827403150981415687689029513416679476808919049507065023832772469187083279385211681388731071620087360858889314809795373625217746950071233209276448847073166219089264681957446794898125951255244934888980175090564678416118876667382530932986993568493779299483205520892285347106421863382294565765040287285344331289902669106215438033218528670073040788399730065370014440876912363557739487892175241564751517306477716248674702955608030719533681524267425317119903035886907741472358557953380886981537522407459792257591374293503808833954986974042816537429920372168665252429359079978196773120572188159457303519859273351639780649451673738217402138288291298628217284359815488777488681034723623637347470356448454294258184142348265375459327572451557486137245555284939724593029701059875596408453530194696842795818784899676596591024384691480603541407088762448919261876732358610309136898012192898631657701107266901461217650831413974722999011926711185414907168331462838869075507118966997908021045332841767063985157388825589969753194491012489905002261804014860566394100519963613580375432080661403880927871087377681227851467374531718181755260077625834400438227629138260336279515171407244959434475388203561952554529444095490154852068090248288169839638522855852051017966005407697281089760243815405578198192101687687327956160310749979788946722721034631202481936987076113107598744683105472718887396453477471231944303116851917754242822929930078088457725731194466778933199342838497419148356146938552755958263687760522484993219466234271110907876269985389163901792943235265963604912062413357345357124072281594575063291359420843373000839364828376711778480855748367857664737466784919802275310131133663307613561796862727071430068729432776466455943287945675131098653807197852608358439363715885758904510910467293545637080970447570088733487010272398862473777809655130109968822353582524099979350647799517053112324188336065315020548226939496459632301245964093883488485530973251613199898967110839907997821870777524488476906050253677524612561651471870461428985051131386169297375363124621408516759531428932391334436271995965283334413891840788836176164316732179396363989699327100932731495645453362578885544541053000091420223542247935575408644530908254119475054677409731742441924339845689958943544267346168007925321196476501505674403163149226395760327349026419867714083996181452983387787998420667729961917782400117849148445680277186469262078083445683455174060884517500797103346793544457530660070482807964541569331112058706286600624749854241123227842788379868351026013280857174157330052334329357493598303926924803236744987792441281945434106005310285561691887023500755303236061312346525660619548945524304298695169599424018359392504406247235467113719423202053220240386177007589903549867302871200704079204615366186434332343130226849590763766720776137271798554271651615801226477567631173169805737380927791413824450598241928118500314589851772523089964579350081771332124539957670644253538335445654803964498551054510614873245499770358013511683626128906333187130151641119962148752358608656299750673628975141471078575570270272942052894763344254410938462176036692286418193097882755842583309885653022662808124696003950524688768279199416952160486595430636786566079432104505279725983772756585925035435604036213529230748325728439267528925923330018466526982152109570502286973896060389932161713203503895267136482903272585640271293498377459572663943018372814270563375187833598172830427261412347234014188161997262957741831594479732001416055598391244048249893993028822273363484211258695129885939813521169837133952317748293820569103750077012156653558134706154961627354074783093506547732252441271962836636079551383136266458992788211855560206297030379292271503048675065564097202859626866085985094054888454143656289524445405721413851440162144576185767513168688110923991636580769719544411102512906424243710500428584765886485845362369304074479486985058369416940966675984509916832395184071118156060198176106302102840410996054298224026155420493654452082164662587351983474270182427130951741259464633852703790574992366495697403176500871307003178186678960319805379446001625743012817480620144204182736212107557807890694332592777625914832210463556451014551226423705292950177243346626866841624072198160544363500618844209065119893124078110018724547098588171165814519483758009613926091343969061909689633511143065853143347399882381421274923522954555183956338209723460274728388112473717335368565464619553752835003814005520105604971159780843926797252429707392248300036308047247199961816704551241212394042269616644494684829812999706262290613607914831921340893663058703630210814375438336672979912753275419216396878456967448925851813271295774965588621283814283653997408410291770355017107045459686026116795899591616895598741339498433122169525160370801270585234007564494876674819141243810504417024801306224768348532192935019307230521697459424930742255829582701000601356879764788334447748646398862354821753216828860994299764501013417820822042177393360176920591795916155985450446461569729030966755029746938318973838585275991260607499184629475171620044850523587758280685492560218744207807938988720123546235259963416644430121476757539099792884313976670086901747303542960784472736676382494435041223918776449094197583578243687722778723763372534860147058688625898553047100275886714698391216587123239691322742841439633700800266172145621143469163284085437751285129492090374697942601155635086466864277257560477790820093555883421196168445345905009438353568308664752481137905110031368100570047597663273902969267277215570358375023998655591610842615665548665358646194050162082743801592806598713233085288306200294450266355675980002713879113030783315557642880314264063010304938240097412520882618936605549771684434750681584267827592214897294000525621893537361365035349404242627349379163233194918609428470974791072860620529201771624702639334255306762100198756510652777342678651383641169786717276650221739906067474268090869608664705521703921870766898633678137630683659402503035744888178499209288838142735725385376584537069871570023115447748527307769607026221990678879443225219617362585883351978761957587703511430982351662016601456232845772310769688044167288165152857262621611776201104499255330067675916099086725134494583103370540736612214051145611435599010093072246993233495504223004008827799096183586799408533374057135810247541872203664955384889892564196333107253990668346814027610396524585860742555865888452955159246554624173202813343151052651940083541039244570284268063549902107063800987369689528451360849801686585910955189232905689779259504581123839186808953184912445217619572123617137912618161915500125905914970200358894942442313592812636936146830486214704745185041160254933080275167963266157322936356321218987948461601209156852080845943345858290465782919967312100463623880535991551622440672260415224674794197980171295937185672868904368447969553448142158115595882308458499354433461615919161169503577293864541077279166614298210984636419643377762925371651765493600189486933234820111455012772977520737054835849837857795230513835744829846148140334061915288541999161667760863740534276785257197516377496859103731859237197323177066766508709703223403949971939012936168647504708443075645237872667073648795307559525077024554872065161464653645672100009664065605065509737781875847876354806803240274327426044269472336573174431953826375482005164076690183567011345008577765566321578798748510594493333861531515504589431867641702219019077585256186203782258925502476479721076761027897687245264233731858863155495417507171751933371695451428501823921059905209629438503646374048922237579021205566536860147692547828953755051762679512010640815457755486759252373747030967764635733453603090001639633087884660358807401652278739810749232078468770824524078712867581050109114182452163292829137159555531743632451085814150643843661568732581965753976815919546505574780778139379563863596795280584883775123676681614037485154473764096016129881722508215820319809394679642243854565714771232387576752084872984605002454398400063503345810355126587168063884619164373986186619910567658047667519430592691163600046324541190680698893358706748450975975554772444843239940177958935858808131533520736129492952351729773084820473225609637747086378616326219636748498242450888711729754535656288711314308902649050043060095034019866387388092713636509212448738441158202939957716506525906125794129551269288237162535965419026579375985101905409858343541675661363192906210221061531696174978315595098316495411399974713103246836231135638668028590147184751107296755901494257797034054837511708878613807284105371235138201759451939768530163025195665751556173681277989991390331997439493987029614407107362792879420931156035682618073359464255220722365342208840066004870500115367947270428762693409506073403173262013141998748033149491895139710993044182830414383587308730740760555352912004027005121291836240543921291599433047797134529203444865559191656758933167404853345555359765242367402404748507713837527841239188105467685442327545565749868759490558150565828431920490884014696171804300131391894592235379848803383046501166567793103709670990372428698761195835172439049377052037690291985119806480503348112454576604805922532641524551977310548477887279251229626880679670552964835448884928891713777089151231958195410692193500355758365706511225625471665069399845825436230398890411289847925561816466917260552673175311406509540720076730748710552722773950000094456133163117144641452531016600809144242932191588803629783245083665247961148205907647744689393694820115190959234306879366153920067265197291006173325311586656738080476211224778290216324874914697992380290763366986075020861344282067451675946119195650237056636281304869321627534709453952224569646306566454072664941948237071045189680809577507547490173766835491694190714519369562820445958398975653613545978574379793971523493922629855797038158596501340085890586722862558396796506768958168376072658367691130526259253819547309695238863866636846082544688542408324551777090694627687888203485293909407479917063319813870636632376771499303245142302815220776984318585704888637659394449755509403895458214698405772955872377246933850006393005017350133138881307256890451429076639749563836946042148377662084174679227780939294775705511503532096789027361847718395261191788139369014688066160449011182057391022577006511852562192347128639688743698119234614277201300214458142418208865413052809000633056104032281800027528384173929569663515140376761484307703991802023210024055770483783021571270844541985379127477996182338783907727383144254594050537496335140430115313598544619883783089834365286948302404822236875505032102985930709025771398826621139170777295237634271095138146915037481813313965150418645292476159346382633668422370622014906253949122397036569015532784463626929127099378852467774259534277950786847650017482377281165360785566115805535860906573478807423082962856663117696829051505669968934103730325286513482303849352483568109558408963942201922579147163770380493566801422025989422331692797073014265146295891681082356378642933931296444141719268983404649274355282946222005635378798210608968379437323228341219877833341717714903930091395991683552982640875665424637768404802877551318931140357637836631455304213694918536333067607067562013796565001087034972394659731718275174881223693151227445824504678435189199653101275205685692584854734053089644493734748202393752274288872607739250937864800679967094070685119253118590536605762195192644666845386218396350667475270279490973709849470341378650998984814662311426833501948647307126032834034591567044896217016751123660329672352708523500149483995838422095727970733523926955226050376807781326740584698933286738228876598585094122061449277578461329467032012006752024083362809612689519689720343528057800086019927547597490362699641647945538187452437620307416446780274851224507983404295889142307883948989438836512376485193498868506600508168429787742963110239802926929457867899813654203293938406410122936695454370177185212765960765343593217427685169632484691684966069372680930198076900399363207224424417317288573546565597781517751979240905805515869166052216095120257791838559841031512110206349603740490318188144215555035074605744816912608354097133839805746944400162705023870341415681631738311476531589118818257063938655023256334292528226252664546184174396960043350738875905163627458523631811817077805363679544801804661541638406460082501599277001106301803423607908752285303597703675421887801765331603560950190328778260157326662101296328904706009756418581858403254515490476528361211129294465780245470900175826020421563280589950514766831433879302098629485333333250095215044058421281865712730175123770752639003966863484386175306978256761575058041858639236173402505545919800252550578140997062407856552979335999195773766441079383399873265150088809783903429482755124466547860347749090339094963196560359234598401960290355662918938166477728459011421254104195611776503616479723165955538217424383443109870363316652628580552296482482696962217275845921879976738106942537511779026731142951577098811210798089767162482533352173011009578091355232690084119215718103491154031348529005179102219536937535802517984233146155953864784057751729210471684207752395923996803920835158985972853500548510899562385312274405858347353339587641609004165550038073826769605536959363482286190222480177236441068987348957158694842825171057982011831877238484809643920736668970267072813212975068759565098699322761984076610848330107705821575941322736817876460483632205585366904045308891810105332562462607482593751616589151565841202833417941172559813449448479633743000291175537178515840735311656900084518392112442357799998558823119663533916861044201853708794539547469992449266019468689072696011543236601900764889560101271816578035681737757856342677085798419334546709460279729394130897102163524282622149720731360111268251386590683882892735595962184969355416895010085003398480107998060876147834037032502280987271468806372346154285583820444707598728462251139396837610607738690255289111991730218839993343686798350021425026112378064552268235097228793170259204056656128564104210161629606827430806489102368605132227528729192573337546545168147699866359307978238556197652260016264297672224495946266077488985549749434808403501455385122151179862139776491776364245622764158876977536408074696089925759189616931317628556040715043239582697581701657241130157540653952686607442952197378810778226095309902513762522538045958029747220749582327155523207029091011078863566514027166705790207027176084166009242989007527848175248300716133653625387197664721016009947673979173692868565007223969463190686292214264882979294570937761059408720255490409771072386181785737677930140038445393532054518631726114731462499965254832113130941940183404951334027541668118978502450333772773330878677284502445675609395072147180516424652839927435987486473388143789077832246280128951379386628891016305856901008973567561022591026008840515786884822947790049844225071590064707549147630865672129894167602659238553049991967433489481676340702896026700573614281695439960814556921103675436397211335476158311144300768504563711698499918438401136944270311356614702549853643808887921965386931519105690618963865023222432537662265021086190777620907661172308191485972088117035802913366613907787300747848583880113063314978182099335378668814969510224575798020714081948602915150083313389807456004095169695052490825280976929626882135733990267569210935253467972381934258790521471250486228118930939304972848281877496928286706860474257816301613249817207471487573728491323211198066058923512226676745399348135557812196304786576754005927663603394061674287300713685241394544178423696260457850209597533151110193961237435126364721910768263733998599173755357504573980951148251479735593490077639059462203768552039513860692241232886366077421135734975679018639555693434442971899668051294065541424860090599515006484751579527062309565048465270633974536732283171923293118553189636075935270436847815663906224951231340472065938700884815326758181405939939641605847045728115234845013049109974287877944752366282592468917741965487548485471558153631241982826583520555841641506429182927964640290167068953811957252192345149895307305940357368924371470939922673415971343221788139928116038479963857106088444348588366388647310173556864259088018529456744165019199486854855356622328311215150270309145334362335463066944045995411124261427313573576923061210779939929653018117454802054871088727213716461061135657810342952100795768950744397940225073003712965665428596000281676940647097367545468915145587203777831573947516220145763710107873938018119052346298948249932565725689643200873714075298185830228533214174696495566865634793844870140598537973189919875733209783875283690654442038725624906459062340314167911852089040718062420411327878985758461515977021383867973329553306997431562153571535839525209608441117833187038619522278588820822124398167935183361454295183921745350402849019107912724993383368818280802625205032304799109833369297068832356600595907150858813316507237809310372727677926258000271266547768750033998715265700605874257114281395023516549582652995730680361170974852257072740133325190123142961136562708959392339988705911611708483711854810480357226272156564278853258032672192700094421095716273360664462994006437032850662205663092423209838249434773489127447208126937372266416658716113665487828982464684443145935035638083583448774088259830039582646429705458656692074137877639538874732309849000772427109914160717909393186761618892212063051192889444297795173603331673834328469610944676241491189924327604032837871254586672577907318947176217169498307084899577654139809452538969475895439795839224399148725188413601280721177345443380137844902103761343731152592987750351328275638737701579748395468268270411691506393797544953592796276523437175625144130452404938666521867034971230781638654734036014333715914915163102597685384957090795940731438678235805077538113928064152040742315254594163380362860777264060107409339686830472077957026649960131170556428494299047218532806002414153675299972570756859977512247561279594473192516473038258076705651843191131459683174048360149583327618278518995510694875745336444507640054643975794598015673438441619568371519826210216660730850331565767106491891000328332110841804954277523066575274814557052906037512426123132805720868249164009662366843775135601255120743472401396851617981665281352871244541604647304852180705216472772241555499844390253495768148693623471161461817737483934367959725515347662928137647803429436255672207631707011252329721397800949683306248434042131194139931754755826441249324150462164425646533059928534953601160379729225565322269540468741198747146700103643626605812020225472346743582976916495713761434867404639724157256286231906920118473256378659399989183429860279812998498733531739328164926795972059897819210100435114695202506021146906496463558662698530493834245937036497327857438543783426487338974723552872773554066643835181130619803859975608090751331121413750015403555083382969678985348766640689578736163352176276577372272150848021758719806178222062032619632785220370679459321395290529947354786619568487055053227273208206892933629173315334930923042747754525442086648997852107743208184748843165977585204954008538150228748620740848505892095528402376247687909700767734568335253690541080285357836935692238932171243543435018216483655128239517395071649780888304050257542609181602363134146941939551200003900249614548053516728847724647256684806979730015436373640975867531688667032213611597935568183672462334801998607969681596956479382961582990842427778609283151324639459797203131144043417365850076736132510665446135285177263256435432531437971718346674317156694344142708779697183173959926732046228818142706437379973210029021908463613742573106414981618010873470642285307344569225544246863938465897761122574611237023173703464994014634904304785347970951916233091881155270409894365078582964494963089647369297795658579619515689563221120660292845037053479327753201727919936819776947046797067132969885510883778727727281809044720616084671491224463254930505513474047649062477284912266028132398768253842561747216039065323777330236197003597767336696921445594570025050467627981740946735006825671346271647213254579483385851408920484970583566771279489279926125084367140781602516094746285507570140553409097181068307626700754087525563111824380809533061220727010488669792166455410088029869702697204794628394871129104085262003242954652100976612871159105917315282303956630720019337216597944301969059105215691032196756272639891828782265225510040710974119363622442260029315529931237388272400861334944687098791487091015905428029248846821643842117576504953503339303590261619481435746884327034382894068788524402157014753625525034899885696065332502122795423118629819917128925918248183559962878178962745324384215509137979006445875748523058933846769655036854713478754048213731096690397360100196381043433316711781132193395127813501841283113424042576214775279032937145146078554447445539037725490260818327668065687058397975386964721499519862058394152666981179663812608692670253528819597437681890369682284337546026637682708948597642111137942380787789218225793276558327621960692328172936473475947551176054991202105149868708876603514409861100431994246751923845905472331715333466592182848609647034158604301719846436461364500118233681423700636761203477322336050658436313070412847149482138825189156901448291073736069628222170088059530930360382956794443072203617107453615990626082660573161754365131944940322276857606650840939055034375527385535474316783908659959578576550125139511286924516377178509900740780875059015318619568574066676021480666475987637857033041345305714058028700546123237352580444342999467276089205255428054668112625922464393965413068705604007745762531507758579241104737981113015756129795023078405284652877471328825525727795728541713916078387263171105912238846748656430069538835027745949283695653742099948281709893303654348669789342010779175030145494992989256707484793454700579188706151320548020008347847192851998341981341198219802664299611488568849159515359978736438866010150801977430477195083112371022395179614290904291484381357305466549420530593939831030932696984629181739404063931726496919098087772149614856827910075501138383193539312887987251236889877007076649185644350616953036264659153677513585694919614188181866085977764081817787484052587003664078504410277573944773997450779297112612462264350972060380736923835441541914809413796678524618924112086829450229370974972536455740272397885958678226205336713119602149639865927165477722097287500156639819168187033866591410002543615859770797892611443709533680461615525061403124295901580944956735126265078782836802300410719394704271828592174900377151951905058156679199956721599250057934587429043758974365015855529087653914970471781007816804460660256565934332215161225657749537823074988001321108267053343171275545652489505929373882969506707930319135013127182225705160318838681775294421503905992996395477929110539907875198470096374078246194864048210721313263166435263405094677882127833106048573100506187728189970728742560248037756987819225612421875403609766256658843113212031247672436331837676837577982299880401160470454719426716240368488555024373794789202774321812890943048494237163422993741321962049470546152978526485429090021571388062202809992227510679987564672729342442500902059284348161584809763947337825419485158683625223619667076875370152737216618403987004797853437753801364797881405762650855316709860860173293817630826668951449633008488031836698388478593131911272170439666170934285533852987643104169476066293883816643797667751162836777666503067232899257143835489275235720463844473897768982175417914831974138613412668090169516150068322972258410746556349512097935965230868182894657981885368123386488549744275162649954197757691745017337299268217619184908691301589975679113922508013548904304473081638830873587924771869414686769040527229961831312697418330124086639788840598256475493111090114783070405108456609029197230743937284811558700723325943396926084565405585085542967761200222748700082191862923000102636965632515364648154165801426589350878157982893306926702982106235699438623063981307151585727251779134436147506679825064793565331772083390099515284891071347879945233536982828049042110910340670269147943969393935972856977687460294067383925249847358534642582301146238197966464649792553477342800641141653368183358904802638039418171173691131315461673789934966806838126133822193064962845819761141126469701147524010475317002480082172624842067373015360347439885614003212158173153812692836044448884112023436298778685530126335350261481241683126095217204858600193956922107850953262452038750941069898321864542698741869411921188812870079989822657018995371239122105188445904303182294096924482132958295732344143285170428814541561848906377174675957003896850430117576566128729396372298974656951658386264151653087746564694126135126852843222237824842747411775028528504877165190807285155116552977119649816026070947769456862032274050155862273947646953552734125736909920690489419880130726031453841807188150313244936369703358409798572059608884307698876211745535421558302985415500694809607426889342779402917194924185787245246471998284366279761569185746997543482628555021589969109275525242050324374084838084373673452642416352283527313505450786011282424327882599370999680379654179771181025726902701817889261789778181752526786326096760914502352521362350881705629406943228349935771223262842464686114351768627256123039057688879586783949827542691423273846940488065909776581896112933790700378018263300937918325041595954712934064600036131738158048205000571420852356720017543827780919398302355891918335200966649224553682563711573131543240947051655126455964288241829940924941723077307694783788492760627192812107840263324812635413798536901062868720043946844248892711627363551702265810283150279931236230043003420490752378738498992935689506357903700202228506614216120082173987642206218578117353227316302085266797290946952786345903220201667112660592595614976084720543974876293533521596096554685804169659167930399722671047441204699556722967833847885560003779083674596764944439064914679855379494342688402649670668330056550974450651272654923126072032609831197700290000944014771014837103163934200861144096490223336009348219095001575013742910910210833624855646187268228277372957853533456801658991272048560599342661148094015419640864979849013682412257665266472960130734880055928934354868142780105621407657410182846399819408263158967153596846298438419507307930582287210733749467443071867194773582341183032446589822554046209214238418147021932749706935135768995026100522762719911814275928587427207952273811644639293150704896922637127093759929515923579150139643671287037430564127705116215611487276594964326319314793090423918690853195725518251093344200545357887787219053370539747652533367923335696237596441263917854230146188999526123233683410596639647835999859421672361727069845327592343885700296251928156472911991591273097713524767786748548576116601635277967119444388907461932797199116899892201514937070761345991382186187988206221715215228581768436013936951916795037346211104782088849785367624855121489830436722575055615123321533105474155950638417243728617718832691537560922513488866340797161240648232903615057967692346141022063078970481944264754035365766110915799197050134193899633927340819662869667375485921682209797365723634429297384957831589633425559667841207073814536280884831514818493149747605299023482924355804025622509600269438902400743682880342463955714236609404878130723240003721170646381956834266520620415429052911330604077493762959654342405740426163660523833345617822856990650406288398344743035036039990662653030682060800951597673378412797177308530894006520902931044923396436700809059972699841361450967567625366558876666993546433072285617081299072603446146163076516097662747467089770376320937724872216492491894036750771370692819809197229061414888630360218867266913361217814303528546441229522577821747552063604036633260610918853192658680801490536968609122479083284643968675225554809131982699567575904780360124942997608549597890970889219218317771381482236610885431472491542451195628601566882582298098795111103604392129708397445774967643302427532566176621592711047190535825946471382642996759839426516349614882868698498163227791160341659697260107934233301531170418882799854082658330837472593703326901266042021584425676983915941212843207478853114674353838760798561037943541330330378141884507046560126127459722778089243303174640654897539353180669973154928441031996067639523505394134505819082511548985369248258717227530232221038629199310223750328318972520222803444199084188608094997571860269131722980995129244316334689918127012422268976690046576745362982339895790577348102293635798872602341730392319844870128477892449784511443780240280877155380832169054198856039443660233580217517167015931286187288138984289191789549385979571277764767184426920870213392414079887920900500341659415220152201259782973458584502727868683917852771465564588008995148465443397350199820393339135594846323483821865865243328130245224062433604500221286224699106389919988972817913938642041551967637551211035355698621016242361780754485124873269589846622523901148354404478304673810113316044228537085706549235633423674946740494079863657224345543225339599342639902686700643007004152298879818318108255368614321935960874678834825341066150775259903921107534596252843068806009947927484851914411807273015611794159044891146355372875270817403341193578244903698393177970631529657598898336881979189294474656229471258751526565980629928338706684377932963470851999380517387266310424951816590922419045274974916586745502059773934680663129147972303531239722872001144790385295300757252344651532391756759189841805867217893829752557679182103196959232371553398613461233835820383421025055770757805532983943871164186368648746539710236876715289209578112552305331978225274737383350559687643090078249942389246050029301591201980495414923395197024011197638575184091344124960305153099747675852020796524788812763187510648008346899819767256110402199529086803167203935556406384549079471787580809569720817132971034225486486547465864618232297214785888176154806998344744927706122458320778349562551938387896216546093288546164664879374060284495950620574551009162440988879245345780047712846612694736315037151370638538307247806539885330169153614012586287989152203591227357487831233849879082184355640237500420463019661389951957197692288949474141649012670522829997519855043254716479532279994499244164106149516429359082355489924636913094787859966481310053513555043045882288435646536475173541081801473757158700566455505488227812097270803611031352622894849851750013043741431578973983538310438178908740672047414009594837044076944167965621686768165281125669390793962809245432453379414559009719225291316860589702013856488787295248107979887216207096431268003438526950557496463141425880796867264306821878655423356254051915625944863589872963068922451940195867956223610787688913513596145967044355255839609908646902149321778762779827135021110576659528208340298731265867335478270752233588092209767267959560101463266648736252028607241141953337807793650782039789552411836401439786645881184724959901599995175063809226433573933748542180865707743932576606250579966436806635669922259180000306556662522926145519122237025543705357038121650467478933685959696862670717302535944769702422487489348226963300181355883933306377816577223742010431717316695981939483751778086158508077720311454744060229830961993104228625596846954379859163832523212956549575295017279438896481822271919876544975444734858543481020239985804683245084755274473290018251267668778334754817644738622124597940530757453286225215221744917644363335381424534769956662661641030279854593490436910997518013902999912803596157853663226017176312748833311408561598658237547706769256935809325549253303199391012677358732323281413657364213610170326062369984467209874235665226083299781859964872777800920255222414311346337080080134844131002623983434168445951344997073181770439193104258023242875939189844796252295375645703383180657542032878959878862816999989646873037151038626043485808029977856023447696035228380110577624325251607851196995166395303884031873768931843857089951598508025732718960245972847765324456610846616553995157858582219765372717035166678616819379086622481079776053146243291257728939845558907157304386066200834815676486959921041555729411711483262976357360091004093255176223051695494480854314857327040914602627703025590267050023145354254979496025318775154950977703287523056324972339428783365911690712336311527234967366174202640130261717778981419161269009945123072041223134004842413381075275487749458851660360109893416158532038784461666558001373563296945758709877023108667031014868486675108595976820703591151771332863025816533468626523806028694709480063065479206532761007144499661494157685894100863598657687997538713628756299941563491933743745340973617209058319413158766657253402812453059130324326022898560872685548469886291695462923604246079247854239029075353095837110614154810962078335631028292879878696674975870094793944593236783774197041936962571630883818339450921500221422966732781069684911662697974582581497735856961150250701892189162555842918377816510690655352372309956255035656337781421719296397938251790519711100524410086571089056564542257491326038084475693600148779012164759777037231808668840671005856587070012019406421306694673199296379607459758480818573020276272628136512714593319128955587813409207249486531324819069105752807781612109259736218548108379393013754186486904700255797602858018911161263230278981489935847286361988377082461303700393373241927107467850018201655870119792673764435822940955018712294264490930951838716796244762099073851624126793906775662132345238560225139071638638714716900264406808849813492522682404646016534922545856629941568288317709108676325780684971299534938818560773813886553068389092231145467202720400410482496054543849218701052196584495192598473215063125373951512084080650260730028747759210682534202645771825009945557431013261303746410729712560955336650656145468418021563943250015299535915148153385905659026673062289748587133928999420659508180073680876712195442105216062531955155664127919624420176077355512017264863287180445663348327859293236475320927383042288737857330109243939414743704189655395001941568196430460801130130166070915088426473482980665174559567702809047750633649393157170617639397385901544375770275249859565898543510369905925877504326179616563335796618732928402464060620858837812562136747591300643807213660588872603244942953626461890793878225040606406426061601987191694900830515109221912764274622429840999008868400801274270465174146982924113121217768910180096144617999399190133901403166445464140688913928393228843514808493276727099231040183689144913803794104539703230771888582874120997535325770494506365465608390930437434620206790070431945655315561817027115208475742409979843905415213458254840240131947008792274900795987551777475847401732345389271208348334939095945957058654148277907775391744617782537456199149772862411629443399551163621135785047946526524711439860785218699015980306904508191921397075003558554022933468867053686321743987073499532481010441287223891685932456681662499860320813465627798683758116289323245283456334508018652434374791399039414015463715133453572729551722094481247863080157181521310635329442218199068991025229400538939426625098711089244141175790490194875798327062243084835553626301768752756435197780934141693813369182311250093653889449949198331883327993256553740238214256552506978527660736448438978657534600007669542938903694180998283931303155260924389593287760447058669295250981857967990305477029170516130294421897991742060384764677910372349389203594486724859482157327013841127571495214392041401246471578897952617259202534554302631917990571820751797906320144525212545801701539777997527808274709018703460693766676393118353663984162985422939685558353481696916141308737238883367880857420265843681824811047999219679143406909953155404152307264360243634500471822388530820283580333189447243916855308354376986450252941826903329536893221564908198502675693403664745838228421440057328295051374477785016955587689185897885869119687289580058982698864152796978508576569420043704998526741199224470683918027994791820511075712184169501870211235410691841068733605163486077205176638443621887148713597938410028125413816614527562632914872717260775554028464314635084548848469144653884977166969087104840809627189220918859632038968890415659273992957424323449710185656752405168644856163840420776798288236012869095873195311852964493229427288008273197313725725666234583479910064200721099708124525091847897210426110644947208301239703526018585818661718282223176448186421484227233628308835937852405982847918238435960975133982509290894729867563323728553086635953719539343550952264252212076795299226416986427970813003060717675597836782539024723177944715274382950344018318893796103486372381095909470405847104853859201626947674549246376473152248500041376511947107746155091429786552687803751618273909106782764367325646839928318752999935139729915600986352973195834550950205494801296529858461217563405390801723531712100390554381548315100208113079326070054197847767872306965564913544422179437059832457659536821559357219754802979491147718950295027314543311322715461108164303613539519976200745765218016148563255328473867712164487731964296567968046792316244069679869357993510747324183401163681627062272410207343436351004292771626245772781240385257051021803910253430333770365888415123437676624850902365788157580054403368370803515627573643032837572254269578603181423798465618409811916611283971401890168694868350645589076951475695686275618594107305772911771502367063585748309536097987460490665097258154912790174096321992191022734917775169970754283579278013686015316144774835856358158881479813446463549017192334772132965067132566027091660607220071880042707324667716721735425379653662700032465700073399578684216057489930711877719270878773751788147363049003224883913561629026688643589735433320361921989196814702545244096083656787094876598541668058422894142184710585166825614631324675023255126323781529727493085196629091004522724496757835858798147594629564081551466244668203922901767151485381062118091955271694442749718853476263452211736502633724752670680883486800903406114924584528992049611799480584773736745805572248938809403713448810307840998652456030048602401311151658459949050451709279401716159169507406061596977083835565621927081741647128543406876118367071165169046616808055678247998710178791718263108069894577204883392202391014342526390750099122970603576347946852767261748509981546633521077463567973915689508812762249813022004847326316563112215037735477328094543748542342666761489743311224231653446320668897550464362922055368301333186939676669172740059050506073682359363027878256689982955579975432733971074292606575863654639148801117959985974286558358870319620339536850424444933640799432335854257973162183292300572450398322422279131821611890593639260503735197375470688357794216809556034010181305127613911250365832025661801502327203694113837888028693978266871337917752171307267496106586661581395327616810385917724872623373946898919621972114125925828909562962936784283263114207080367102406765211169348078661259680491166723965905755825737051042566704881703464884995632529243587290087214231859554111175775655203271931419618092532611922883457364546844275980536692657078524067381736549477844736424284660333056033575421382904596992457168458194237938306330111287294277827781856213806594321816498022938257956850183945041233334420187851700200530254048300231295820960940986105069279034067495596127174786831560660770673165143332817056393202904310211674985583807242041472690439538326194678181009924762968816086741519884376192152500240095047207190024743082073246286890808618602541068866129862860892377192741946639072942517007349666114446281240747451116209892787279464087632985166618512467044863821970681981337354212896127305040651746298249028156132671476122463336538600003440885651697091460956922377022392147154687413445060260402865691841006658247206348196785576951664348396859902881071873604177881492251870906444240910238951144822500261692137250466312148100294106152605713609068742167438859754621667180893272791631735283072085015733665011852065388204920905468022870557114216110502978925371450874603553157148055877434947548312282713129965281411623509871283605127395463645200979587459388967061046901298253865560824922327540221325719147632650613202730551268405695329795266173839828179809366948706873838819586867996528992600529673619653145840357561980011852503905912506314125563861209176662031547126089277878335618247916588670433475855189142966356707927163329825755860790139443284876903915646043005141809740160298779490288714549444411530161896425340575602812554892684986678959383587425886852392350917072999454960144513629217512767379439130397379295161748188987746813916648411673135998084699395748596873633406114420471003074696689083585419906295815188392491156781860316711663232218248684878980855888302955708269957491229462631854106393611395705996557389261387570619972736827965291334850116251784188083273994826101929658892131540684788441426444084311372458610853795569770361563949588994656583159868249640683180706017652142138489055963333405663792740574857315005487480314710945083677482741047068650810286066172552924416830679327222136089915946141303059558844256097953693707962732311287210924096022024116870412437892553281956535865270648967321380078208156065607586628244504129483642784533442186184874449591383657878563687319330804675138222842174966644075797387375740986230820895485060332231936051269770416390379617122295566354060837570065285525248998862182730576868927245511353377163695947481103805101770732459754573302713267758148713132613967930105136064699805179646360008096594912881213265864835212093182520991987094036737838886712033050778463357694578129402726610867819447470173091142002127196556887139941244761384988793707999741846082016511570945528056356825654766852350524515633306736744795740796564816219130751676233202474765307914528311039512377599711829280808872929954720242537015205900488316620119219347128461733843029195027402750691009078621926260162199579899743901559001095290881459685022157652971823701640647154992787268175732976709202166638012226815733008798293016370754636644250970132999801617263049313511283033645979568439256173827528746916329590871988773143070691678129262497580160890100939921949282299192775912214629032929273253930710426176031911695205724870136968251796684996443906406721795640743860970517165484030854932295519841373101503926702146624993233821416818716434519636457645649367927931530033478275464374139569923067838860027005554874069250816120925101526509388203106297473779307174900582185430327215423331998709039922568955975415642361775165535933426765741895813144413717589957142218332021078305754080095879288998075446888421761502007766252253935256791460346795242956199946805719332801121897018896579069298968609673449276161791913183745819958956159007910056767879704517769407342649536620808901572405606292978919264018435615061353147257521206519633957080826634232555937215026290181574862219671940430884730619631935749645434358092428377818660192090076487217777408866478709295304954089084113601813094085090728592733622357679113485655393999457932032611984226074959925455661040998553119773735823228690681882001104309293900752500528744674296710610982023839962421386006224025677394748204140888825076670809400765037138121259630360029075648900008462622157319707291426110301914840603646461883828249637313913642149270700367532357182025599169679376695016251980532486098631435508945445154307150871313937086581578399433018922253280059244254701461767408871225481222707787805258013160552019533373803467806710207915650710829525227363555352053636085340566495693691907606112933382041854046121810814829036630136461048948759268160871776029361329694532905739377095712491910608712003946417663091932997151403772286830938621482688509851275675842727424860575597129083530070004222989760328478634774030934255962179787884851992406634935624934658171661258847205605694748064001157772392146795008360814113233035886501623031974836182247297470182883971233320264273643296613574854282833120250907918750087078209541325579222799101108527484941088551303868588413037358297305150377316749587852240797494806244974168549743472076393663330028708937310118688006805181688058203788125498280409967925441259449840230765685811498806540353291309309506176412178731688955108754659323768438705852574668908773060383090474768799288286889498367717166960233096037109096432336792904370774039078763855981055359295859792923070825848804184227672995057365173745137203561365651783395040165725828365416589061509893950180076063099934409238013030409172259556492509825556067576854383948609807073246733151367577108867794766710364453097116591038881219174704697042831331361495519704399971712990508684333037943904125119613775816644521984993465026192075877711458555285154499737318412014312491713120025885679803165520030913307269865219699570944296409140240921685333042103356716414697920432017372041334907986478946639971098591728885912452064444137055428589039494148215874352909905430860890354015921185847432529138045100214977253715932509255191298029334813961731444801350996859016705242123294874706308359806345925891520931019939343238640290109695005798528654139750318046563737374631901896826768059149463168399595092963586213961389707622240848579682581963975426212878707561104994610284530972315667831673216045172768613681450150163278255844845071858690374751942401124435789416701419271189617158852049805517714590255156459545355235349372010603355764143828002889552243671870067948225318161417063370695699587548183113469116814827775089486846531383284429384711624666149318827061181526684991780878994837085019569679815344168326467662336564530151485364541509563970219297457464279500661039749036214253718888882364784383919987219226380571146975054223862689617009853582770457460065488646882474694915750128608997843164037451969131431349369438588461588327658799724782240675605938204448983050456316345141725013138300523240499555692516785148729213292007449533872414799933099057771862063084182878054122038510787751266297321158339973501811485524578775615114155390961683672591851002029347712693864003700932990602477926213778531936390725751339972812028272960047606080034528404264177444826835684522105624006822544117641387520233199388340491016084801362831114284543695886848887999773433981571938461142765746800095962234149330706995679934315170454111972337162561950841733552800243325807168662825155187675163683866032003750582535737539256966149838303460900999522095901526086208907446835031873167428951882437116019238288653544998222469037737498969584653836261159013983023107395326453458665078229694997359682681033970372097700660742158782273648423991833820042602163566692734301953265082650314191951498625506011185931878571729496920156123447369059186949775017431518782422288108522989894736948175377954338228282096924415235604199742282488442402808803720197837801555035935936960944615368646892411072006072914437501473227880256882372367687287091129331919908068140447002595729831027919604440132311910509510855293786930648200988818915099837795178561418312083456314974274291634535662650416558446041574631981039600746619498273859953234355046197308631032551882281340579627473643915272925830204380542502948781288583952201860945804670934657372116599169075122981845059125791227276162715987537951670120759776185257943534816838802699259536554855981168326831932175333443535532855179496809869908134535131630775363116253447757010288511247856613262146943011110111711173708267437789539488183548561175372866120196383425844759349959912470619391922707757761496896047369000850175761091666497755976337290295072714990634689110899943159708559235133024082689955151112350322404991155807993640961384664166973709229652068088507737592372199452592572608396658755335382690710958081519153655915587713769404487582299238284678751424992845855445529058259301954096264367726432971330806252824088559026406632588351484136932836002312814761188052070800899740923233913840084936139981255148290607892990041681458087508805631254039771988796712711588309947528060535706213231556301851294201595027744668503310221813043671256826129672631124043331741653229497357145502084306993876963357275135782889512695946030333407911362479340089664656186507963016240439004230652006507685161419168358174305547167052852233341248324503962245250444573993473132605341632923791535277006206809744814959562385862325538877756306113594916863357428712151644854934743706294976757010776565638651998058763853585399834402678935856442838843997399218347197626828140100718267915493498641533042071447249655221786168644102444399598254802012907138354234734513795179816393328784144352788132410135549875573823238850074946411646612399888460136777218232483678164351731009511577385982646862619598163836284402233550405478736376152832983493156838723642213036411568841289715780770164512848723311547593800840249819589033121204123788649497107105740472462407184901226338589859439227428834641335410748626348048128710718468872738200773407079317294060143403199392899898770243344040557020837473300458762033796331813146958378818756701994315473776165938490528148300429972283686325283808714166819779491498654416843042702198510069316288924843804517534235988196507729964783037039163466829774447692258787616794333081964694956942027773485336928086360827578623046253712541181688298004729698501909605482837698161033506019043385538052635590033025151913751226033046389232950226863361051822813003269709495520527361265756941784454596994209433705253040215926754438165116623730457505465259254931151402846726082546924720998054834118078135748734650401580129250698943349400115852133388085687778730878518389377480953141386910782082294320067838727273511926875553455618612265424155638848826132055349663674010432398900552991663134468592254835801324741282605996452990533788369319309034533292591866854244270752508664832882655940998533453283648946306424791205041049053978284487173374217693776235141241146086503824705035161206601261747002528355221609886477932713344865509930953483771640028242775019533671368341178319650524153884885050932739562885917359646650261498251952420021077708625376183633677121652463658049116755404597535096490057553701776495060927715736512788341132859673240061311626721312845808553588834502317264148230053993370105538317845631546413859466326521035722719258629469759414150748237649560131077488366470803295833160413745941695577956464840966487094371406099789212483675139224761920037273871223606265406096653385018826115259104275262738458962766947955815707459818040885684459040025824312889792023822410706122945943868536220321178319678141268524213756477163517100637875844684546161407745193548460308728877068027820716336966978017357798587004055883262981790752748667365720358598230734380226672912166960705442638368149881985439518234676829824730728431287307518026721795832766182173313970234576938040580187374750672313725355856734711645536688973554093558721370951710445639874266542735971206204763038816069815685917649554002020167708087125812275160017049545230021964775138243062507279458998280981972499359556454002360735414400898846589960430125767799635020641481504509713134556443938173463507394854881463639155943654251539539628518600886019341206587102544637358829595749829258089305181706284800930874011442257871892655793480375626074871434173554318098730360991762675528485046824660888703724798520696562962771282569515874207776554143592443068365283328364592723772021284139483315237209507044657438014214674376398341128981294058869271394349930179117186979299850752557677936274428428378257311202999227607140641361003172061188497103431334449443329737589271855640433387284826145943166991615145721425642986055336475738066135025842259171309410629728932120342469355536916044884276473561507144605503294788900191890282699086330531790626636355900451921718473641142698196575612531696970102634728757057201952351077800575046464094095369860658487226620993011408821493208804795230152676416370004634022220963399101367857966756450862589633278142246434555574267988187176939229546704657906393324542960566192300797075452802036404360771580996727137864333002405548155967023191450172075921156988422447711430986607676805578967327013549244837993053329200482459536108534748457675325252656864251992418126773760549440901876203490502270468596518195202605658765769665013297681386365764035800612085032379454945203949978039822216016833815599112943049749274363277464504871517351443112674917407001026660994795408345371979144401176342465166965893869739899428656636828105650101676421515394708094474074904233126927231091443617730276182485117547377624813131648447107617931918031414694543985335842497318343925982787942333115312988287715814559278720252699234884605123938903978844012983660361965483217677681476926359971268905331316263137058832605812304784058394893882114494874825215337496551005863182915596821981432412562319460266737728639762606954652887230422587702803867271050537429067015795109740043171896088072862456683340025323464456920694765368075081081301731381681445369886558327082951405204395768621376149324165390498840054525796172775263903375245538430865492595303572564228084250676190150152744093934456383191311657269115399205148583874327306743306621638655508979805489109514743912509788512308438074928544446660865448936016220619143842977400985832251614197059569972331244206863928742432971350041473597745689050978696256946203490023268637202096592191669268549562867914853709252973327566090803050232335115630580677863337802685132937973124869412232222771161107427959982626911679872480407532056243829138480405683548585063351888245729029164581959846383895619678587387925968607142742714428832859771994354261163888129777839073287557146484584846002865207507622863943762281508280078803147510658411781422974733058417779645684929210611426273340826034631852036992240212906546200721306690929659347743587697641310592820962481258701993834506320884113943858483327470388392575878312360605229971955473195722382610079838163441648583708184502154493873886984859508581346756970296733753286376731142880189525284462722709321490187335166197579081945338619059716607574436112695338592296326536830066524961200321356548744684355792246124230131561051483860253574455161114538772103195761794767463800943445676553084343281940539388217624710798685130605474931799355040614877010575321332763447376490645404285753918513712447842239822862598601337972803664086080858551940571208775195138060055014096443017609937509681958609638437247255726509223772761496655645526274354102155853722225158511717209642942042772137056684496324406851130660923032235064878082404232486201428666683830462724037634475352790487981035070964844767121930421256606560747546085675511813566195727481662545338469004644187725180119205715078407722590003654069907213453590443263301649466493978937286661219945748946641286805269152030600501475461029117364412667803335317064881646192475565376142168529647122126375265465273823124323366987264857561060316699847513131902541455976372651602823905240699348981303807317856439685401591808469824397264508221789246026880321281092920038247432249700585356455035465842689824366450384014112472542032485994112046787681253696742356068057146577100606855853980841484793726620450434071043929606659463902523046872180044088167422865149592079473732393859147812819126420536548696560293490240629750165601696362273336964763665591274838549089089955746340833960894053911750667264008398536909839404426046830828603131246196523802319050622487373690581679258543958745402270663525863366180340950037753999802560573906485025908062682392734512456554523513626049711206518871901363349041493496910674290323245274730449075102056609971049864299455989673355225285743481940251133371258195918456574846467210308066278217137754244266652193799808178751660408929757859950417122791692824244238951379023147067295137595673184925153027906462992687503114620402001686062367943017318088048422382402176938137394966209872191663542868926771045405892146761395436166986985948383375614097936786318556756197588097022632105911514597346953656647701010978634574543250391686869539187576582431423785227461038570866511488834421438192752326767105792506390262041341901386108293817284887862024642743392020297330537931299235827948738024949618487172098675492776104511909150920529702544991526508363646028328388478318675550869996642799271790686356647484766181657913507412219628096974014735618321977862845752554038560887031273365192647139786596947796898270545170531002645498773161736696006814366363867963007371694391897034148481755812273121602941312533728413359072462075507808617667474171260124356552029810732752110278848980073079237872146705815562971126246319820732863201538545356383279137974230542727272874531774436027819175993489126297284223929917683020957731988994325177218168495110733390510659587970570394276429232889393671910512350432702510438667092810727989321120612684716167635711322360373624412863428823716161562945150212243990945251932648471349734472110972132484403275703798465834048358053352011410166801861138065898433790637192136468532369721669838438272670347382384109429316572181404773753867804891429931147488520943809790288320480758609656955276719596655869894230041452201140462200775502402072807340010697022494361838641499938378232049073957674082953847799815429394941854610035169967042750331675310780914119874289335822031187535536370143349800316828661848352135211884948556459059921617142139239466267182209173900061579705707132046524417443731070904926993512647654506389014787479679996810076885420040576518026234395623444147012802052322043627289298409650690760589700872468612679908128051347144188672617099674494303286614649878943829533439155290507460919458633727724355552937912273136575188460741168306640636118808199051624320469686307013021755068859421668995865030549736058057722322779192820787729247575871572573870177522325867192204932019594132994748938364776065130462391719566387620141587159217348098551752947908522716527801323371648286346955619491990599190239944800558010015636940366358330203068341016238425609676626618886924695987619625961545647317927365035672023395548904345602837835320226954684880499084449021095430265836428021960380692978886910470147646057160637303955858684936218226581761560481868960216341566601721739039548678933098695829534672771125401639049515953137596775711558763886953251800217112628278531962430581159912225675726657465652508500298232529119568580749519032225544735231593940000957446724978842755283894319502322659057882501200927510408778959002873241308998785270053248582077502729120997178548754548773732480874969593910465911350864177035662453600001625886400706710310376606408313945880075980867738939960940756034153041605486283229357768449879236289173890154128264522805630563195863361608782884051643883440047767638005693635506489878107618942170696735907908753371041834029637673300354923759935043208313146732127401819985956836504752629489146442329530421648991410626384761323712895894741607036029161948568463878919610998568005948382260503886123412577508775533248325612024994870386007396425994916943299935048090982494760560189650174011306912591327218414034282197041301290390557036590916334180375123955418709252813490835582900111674412166808102163382871308511556173923794191068640774397934328264504740573458542042297550949679289970312351932246730825376543380999229363675850572542999278725141181454972207754806219015965816248755083282980312565450717763477159788236108497360295828043835673375650289027604129156014408403168473084233243025190811909190674626437252161565568745167174984331111978856109501439779881726504294860674200849157462163325504933653128374158468562999945911432162334881424525849689232175756245486750922809054033055495417803501203983384276982443377562582289333901238010507763189349380013522533921263874308112836645188354154368449604755252837790014908874798605173914146741581138817949354402976637543958373151083256388086522858681234127641808616132629749073285518536868056633317248117731694739648200069418866138281007363905408396291573404816876839328267404049957032730439299821688338587235311897950438132717902494796270938127874450822819350081475460592695321182782640737963741850064516867631645527166970100352801265944956813382745233381169610137191027762360782564472234467613136215938313632502596335429283357894318135281053795127464700902538486420596873391142677065057007194392919286734573884305871613206284099966306206310689126884047635262688231560306794191518314950547256535383235818013147789375758171376372236209225974168737484230387383146757711752274796857364438420656412301696448483208704343658861586837032263525797054928537637523409896066382410773002016285056941429042183765809189194949685251751182536500455543744449253684279664583664798335645370088154722310680522033640299019120733684880614818569663021566236521516374482761777954394675597823827980622035133577617923931000950578106184147957555122252267862258049566676662743678742458138066856995396480442364650504728339079467031366452401308334834073121560326385898849439149087885495639496686053270300481722887555252130094225016597989837996692480218005827311272646602043541564650241116382454160669768362439562662870087519511341317792797334403584007251938365226224603534377863533633670619570396516043420224829009078609476581386872341584638225200364760773445351284183729852264241184960865714767564857001513337979304067539183329013348837050502810838844810997382756812748601613596920559606615511621569950579042818836699105185084460251967084016591887663447897932539614408756817910696824318522753158787549312996026297390260635892187522608316099519055174518873882965948232333108386287615460638149450530853888145232311603196704184450616835270902871002171143806925322888908228983357594920851016920951760344099036957163920989545012008803798641635562247539269213077906999954803002293699690918267872545397679114785087599577814662133415871368641070842322795779227045960272677319393992383156406668550500476956825609014809109899098634703318319945875726575839462726656026241072662811415741750063619714662122594711677001941199784571642213933466210944517150970415680639758935479467079169827760758914103738630425684398358419074654753744987194115678641667899684962441523671755466047759738854346691171827739651878555080551575907063163732844603470172113249874630845465981119864794097257989619970408078457074986315768941836107385940386021414829471848695078291116015633051059002444654234309795306769567770462266870552775383104301764841086942213753591964300607013741527112654469884807560879062383801103469158880449349249426796554476543583948791066311288275897277096243838657447981381018928944474499486739507778322158972158840614418481930262971121294085187032348760206818907810889136362999862284703294412875576904843400780475643305804562506911868120394340260213715664036270774071551258467318296232420140466522729738066810356918841027639327990144696261586280794602552292248811373944831848119984400765458685412857875690832643297539031332064436059159141955022106630565378649039484552707700312417873817058526042158524744507587553788206904669544383909243491367216479198951439877387861322930255444138843899776639107688233604769377347640627745533248642256411771277756460256916776501577388131939505200703616147199620409183091266314061309657437126313528508476823038874736869629025372633762439380847133441244795376421734198533872996426561468051020650405708749225234422031420044742372306508793174161767936896358974475171267737063063549257293025547819384274021308105109202805595615521712621228294187187641391373423422896551371338269717743517574971488794014508774753183662710258671241098426077586828131263298841558192667225204938551208706581611543954363768082588928137016302580212724683132327552497740215312380195776188204010939092397615741817495948094078388517255942165730650679479747252706009155645980821963938530337826067650493999269373695057477823108408987345393468968316350386183260755463339677177529832114247050067262843364596289135967879142617833830900058542860207664985849215128741872177867173057688352632355969476698050600378582370878173572412606854566433543434902971723471617716977025618439009493202267918119861285372033814239731635396714146428706963623215551832852480117887243175689279629021163400309881748674300084644063154659271063123295752743147729641863359746427027984951991426205817183272081440035800028801256561793549919367057860744904891485391269295865519161796666448936041281090699805816270485551235086027653224024507951096091497067501214075078832477841652998205183799136738809682139929683869977048261645868209270016639176827471838448460672343435664568103672143400571113291751735129023910809241244869625451560594314613572727392793001740578763871838352537658546363112233979767426880576664369388828947097407493549322790791905427002131656255374046918558439835868419230685340959806380207347327531505987880027892655195952752645632338589009295025032290737644681146377128900265523621015492392414202967321898160654066160162091364951114706620087472024462414604522389881888623647985214138705324306731635960233550489328968701736901521442098732921998571484124600183206546549077133534076514002760692007297038828846901264060597267290763388973887715542896389059802064436328950980827976173665924912574019387043612657900044112550832635574872860862626397105772155182614834377015678780857990266961431295724881858933662198982977587408166055019250696241955330849105433511823561770683937439108455552046448002441918210099544858057531982442016891288839601454155842356723013041559840607285498093903984710252191419670959132667553859480874869479317721197036623311716358250404787177275791743102401506005254250656671583256750888211342753528572361149440106905845543291239405992294705839464396452105982485484199048129725755341910147045221711798869960168242874479440537627999343935955146944729686217742129084787458718418785265971480973300497345513949512614339571712298247708455459127275740644124742692661977804172213828430783430997191680525093021340055019061497253777065211475515236801661860588187916535219321040739272155817444390442141725206410749303897171276330207003381092823432384621715287402590841610326628964541229449989695208671365465985338218148027211642630741935366994882325964474812873055529918713225459242260751023994470858270411523516023830170475637231859516459840131343893075031859889039193862537735221795998579511760994132607102237800421732133325136465795313777550283145067590402518951047338013057863364746023661084831003683700923747610471712870625607100225103451712363919894955967458302994399711893446335084333634513914799316323275246442498331497059649527804567512506779418884855037539687593115590765212543838030988689016064898402058508492384503071758510509550050977938193023465542627580027596442886372586777061030679256089091936376663894163075338926744710616903891893358053686610212899517013904200379704745452844824794359847049258257023023538873529209388309884950967880685600073479300749706380651076618501035372294602569859496639043823058068850073655000194289170974298501693129463642791313408370913705724145586570258863162649273808273246871009897370486970649064514275374742439484030072745026149605095679441641684051070857830789428878811345010431836627130032548887684615165166934942917275969704105067932675710198820879183434774778095514432487587393937011073044164469615136224823681516309643107963334661149021147494960434105939115443369318541238104873423394742578391907260158029828971622963072283340489846339478282061579093090455597463763660352485985529258929966019282326079780240489056437119185822228593387372306207331796522672721618160989860769111012897684174199107473536957137292443306524687228188346991404779115313667625849848864117875079514801981395822206558545459913862892745290598860313661268289633129355199777407610399420508287622154140930339470534901762296185241019490317981128874398992209616113321648179141554756444998326362594117787436905160287759254144580378764584070721127612472337598252325241893846006152634585017402737240196728517992248423373550931804507951960624297858215529336866132864131874735859590299461797792897866968718574204149119346567544353302483874131719623038905904780320049875151506820880109806612391781550673188114286414471355657483648241745064883552715682385761918059654821063023118616851400967092212040915668670326783198995942806778003678443068773779286115010761516231448217100915379660446143260743119840217419834033731390631999332344372399146603068354172992660610014533694321403561765044411372429845982038150052072653381636265040979814444959783713637737333533091660209053041762267496424057839454209866571440645361278877533482146891406798522780650358187863390471484462485206335480797513337262064685033035263811954584844525651460758690772766083843962237039669481666658968988690444956979470070076625669904025486412833249719923272314937121110882423947577348757120860135111694056330390154579820421821361549638678036194142955280087611512881846313987477370885353141405698940284597454312747301368681453477173576427752542927624797038728828321287490875160022811132642508349342248366381592164761562355496367159099774215254309200562163050206870988882774501866828513972702744295558507788959277615553009181622758493711221416138284298576703382275681239194416500570645801288988556293767416615760034656931187293742343727710349263066006097448684479641840337709534674710646109978008989588181498143172353993240578851282516363853674987115686953952965963000396914530393661635346833418518346160465833739680930942837841611699813240684213194827102802285150896323387558468819509532025662193281450481531679646324419381651741878965134657161372069823938326677078126009584283351857194137441776201192817158019766934043257593787353029496857359782998098185922229978075179088449827249837607106657085788376368586049427060282050586460983164548411808116955839752038364113074752342858256739468490220134117908512200340003627542738066411795624830816237873425505161376177157067103313292532145948435728345551165853358792050673728934566381522352016495030558088223452273991635352088223968612516019815109434416029082828780415679079987135529305343538847000027315924313133442131133335566632338323504589222860484842484367557637594985694686930349391985189631541111346371288876478676529763435119214551771058409856636396836315223754683893883585409394739358683543643361644207866807447885397706071689059308351178621195720322611759773122376236090234738661562176175506267654944686774758950259922748895342604595022705501946482774191588450748731049219928151532670431994980657661989417197035826501826801318775841451176751275782339360329777554843316203229717317908904297744630814396760941003579543574450395259285436525802824257421240571575342341326278859541678508857310061173945123031019930258420485833284365618794315170839184177835325027809856969994668928907987243326040722294399576634734441553705268787371928322326068457460658595516048823796987610359113146896795238559219613676515729533962023384546573130911544282064165061627765705002771668617529887864091625810277041067920239244125628932967691360010591212495053655380151302038767460068693890658300680713987712972100956800976482756818583510830474395735479420908953074587001525095989139938699256565008435917952454291491314912449955719792403976265311223184375790515795343334276223574823607240556472962944581968757041754857165919436809426420470198884671997118623672246838008162144461783088888564497134278219965705148789443366203878402380685242668093295846451138430240149355256634673980798904129453911789102910605248340376678213378370089154253158687954027875797683707398190442365774071770285119093077317171072433876767111593792496470433787526672363196092157033217201277919758332595817917028902261350723857553500800169838024258474047813501490344351531370809704308046371361327343611957605961164258379669118701275947919110844811513133723987737335049320324698114728443104863318681081212655570060116928347515301159022587649963223755118786890046897521176258982185086527960499432382784492350206718576200718461299695166675719340381522746219346318273818943277450795268851535873446167145182430156959623677801213008332853640781973653086256726959184419827087581099927028861827660419885854740771200870395229474253342850937155524357806050399270598963939107774661188911532276575093637277859707160914648722569439742892634542350078754225104727054575741820119772127035414667473327188176990170982264731340323905860632948072753213795371945890341835258071416715300521919999774987930439021377466033731273522500854609116683509548895933315621563442411291617547914160749619793202522961542877085374526739831546779084766538583098039139282271412979655983999440071326096912140706916582895231213101876886863267578922523476274947743133744051804562079401369970750588097334838581683729935130791156413266134922437873029279226135665143629495948008282482727150077596909352685745208989258376529146213353392419028540325072554270357784590370057544058185860120455003581782466289596655064913281403244953121636646381447230195440700606690726613698288326628423601990066186203249568184949116618036913367888322951830569128637261519797731711597635782934223820150847189416772372412032029624233574973310849203484656951808094963417211715043293371821275507356159362545136702597342877821778323205963397074639496742335653734815129050791411036029192876547935351139412367226801847748436378328932250903740126341988811965726782950865419400397461934013357745163745057691383939496232244765448315048496616552206054720761425593126070100954288056202469215825216517972266858140324290962950094031579269737643681795502708776534905032677714137319503191044607318534353221604207130673712681219668209150531697278059732706425300690586509545130215555262585518549435281162322235142188716033526255485365453364189668770079116845976048637963989676790431472127268996469359790955075319452778665535329289589716105925643692938279707064202467866087638671997060094407714454388773973391197372897917039673285005048796965937072325919857708087265750569401662618447880015796769130319338911206029924546578381300015362639231512185258601269292312500643036817518499343668608231691962123326846672245994551217814326915247931234262880750380939292059830959034432905373338163063316917499918392125169898715546144409303064196857205383636934281103367182254313227712360535570289722664573769076976500884257754436369887474097369635898791232238531792574581299543660595643689270660593556030558439319671240549182522865500973565242250332776922585174827503452467891230027009873538978375989479349040684792746758128161508226858381915738918319966471271283068893138225395096586594925374651491993613010998128745442624297606468155669377890524990634479858497897622865202134469461599372409337788435254880265282007941374341780854804427623722871433304791657273688164162422019654000776754923241902009462313336946271901586667677031494362137467034473491778812029628374406605876800058211763899961256828789094113520415779721209092904064126365963052594689026538384684946576441396825218922076837137188412892372559588931465284584915780368047010873700308755816919821029163686114455231431292235306654778523195736108733639661084238929728942571959328378278785501972861215595825454260961447075439014238414896008163486221016619148082890968087376376997983983130998951642157365825293382639762398353177222984821392739205046144398288245829109533246544789259809644231992100341040257902870158739463178334803990605122071353619457730520506523391203599404438322167913522940442249221684990938834508165810441842024351368653013066230537327772488286779257256103829304833426053339791294348808680781918395553281296182069739422785682950266635923023564187875318496475980862720701551867375110186431972503637842444754302612516480639117086882671734664765766905874508073720807609322343417080700529495401592032932877384354572729928569684056425184072160343706671458781131972560656590487173452622991793710552796596628596088558563766691378920107593715302420165365891507631554987472301003159116617357421829299064224289724863302307680425335314623260517293441812979027096580685144827527538476542272346263223087703266688006213370378779203787646451342102144390769491004847085889274671657358422265994041025460171753423794121354306816003467359120387065366197837061644040547790543415781720228623356480586639073301283541862609115217680972745097870333983207470652584309100456817234640325218816422643669241538099814900926666003909944923619230369462261465298185533947692648307746006497700687547499821139444021784356198370704089619170420208683874511112197455156999500546063011540489744171090378375459575780623691566375328363204665171677174347956837702938523738506355891364008469447038694961499753130529175338977954470502529009536814738885426847581560011120802975551264996101840557139121191097181332111473464368325747622831969065790992014073401882206099272194247120760308607620520310062559963887204329241987931748942206415440581320284034595389448440178101945193259419213807269355536023284204538670291876564194141174937313880884498235799682732689759885351221707296545290769434240681526383655020288155232066331341089321467649473556394153794386206505664023049996455406809659441045160827574103895976275377800138564584382534781579271473508366113278976205142313607809419240300088444006089081020306548795862277453802862393357169260897634502777066955666167105091260941142967903250381742920927825146029227005943297465205649400312895829479569423636730275839805386539945449470543783353234713524244993749002637848280465940493510025507985642556031638225387522148743124996060715158364341372501871203989599450643164471338380884151374211521925329999782355581131681214549624506494743205270243838239584438281670834341519346170307107819925952697041221721053823133518850820349163440143011811890299196511350172046276206589278093822594221527857196978782007440014368296716148321962032124826029942378820115495750650624816868056963597946416932076943105622515678991125679977060712520223148717140616768571207894980563209298866010166932500936324178124281684141694931820144398022472597085825782782718337059305962757955241178944251607732151462809519239480582357846426378185108063067406943274102834501346854268750457955520223686397526686823025946086049884730998667507103991163790202151207898634388615814955888224203518371587635473740808447012152550962381585021089040462878426032606962621488615590503611838163665783562029187556719647856818957616803884768142884818054009125285223126828079688303608558257669863524401410661271313571431203178847755151132429865754429318784398863146372002617201849135836910788863308375155707287515069376652677645941263336999335113124417265624046900404135807925940222402428490229531712537364312983167566580507528165729250974067115462985279526542102410198227508022615671641061028193637991432955058001034964223697469903539613251489499630343829702781284379539639689334435166518614893407169679883497672006338772830322106140734864946070587463464664549085095932801367104708222600183865706713397556915561401292059996165558100790854672765271215596690109387400131735384575044079605641326219429588971773871066236568406623693295738270364588793038273198737987076925825024889373681462161854992170042841952990171784513197781328656482657830033336060879903662953373308596901517108319757336957409813000742437743147477904705874783464849106199010387184907700952574788004242946328325690081847438300134174762930740371269537996306774758593564213923982040761542627400259128007052430494187542253529666189747839275091451003623531175155075694537280339630156688112652487948636116184225754875563744855294887352148022968121326989372004516578383391933833043438023227111906981364253756167717634346871747992727351714368199041598854042240866377268690182453194840337496415372977115675176910570233351548304330431651655918034530905483002134715111931492487006636833684063852900497918851091488330894706442201024800471005983768865664788217388942171974536851484652304081971523937636278650624733754046336259146547542870549766074812001873511663429289377545954976585227144039238428939282440778950535593701677874551555608837329579154113472237163581684451788029783922527476441012232528172086191914012133452976519939128221628186853651991518019960222228011991591146090732905283870431282286043228150122527000750847406874787150608410917962630664890209675813390681565357931114443037995263854628105445760697448967132163213545496785479509053728856690684882065011559476055874356873026309462230121926655338524903408792848489338242080758373188070854506614429182775565238507344248250240622470177931445999412742894848622406791445492928961569162638506615524711887875145188664254138266757216485986168433717951454123030240409895019206149950016973145255609503887357197072686086381045116366571135093848511345218640033177163405940269975890569895876104434005424263826223966417785304033512069776977656220969100846519721367843469764217915978642688185242859115555788950522040694465906665415901266857055862845081847312003528225539267636344462723572619836016101563855377532402014244543234742511027470471343434835901843961416581504167535404389955864244539288165591820622864788899898274188371559643602788772475699978199059672001754732318211647057578020012532205552365273866966298495045851540109140577365705825354263696390543272043570984525787512799826620556991034418364281479966994982209359663659116160596606097939310349676077603098800230161094148238883689007705543894694390726810284594129645017650336626737826435464884759769300394938510013682830699856084904163445521865471541744369931332839903295064292979708873961020511488930949900962207484104278103084179975676592183827181492856334711721524144944849876250392185872611056067949685425337567569390085478623498439895120815186945107873106691089360659247044622934735555812226837342704137743446191175002171836630190594705620744903139147746899840719377316396736134166249638097212215836590537078304975441708603873057226695482678334473765328611368354795497634282621970968156898870440843407092054009912037791302965662225418531433830040846896072623493011320522407478976186030097801522645076390879047822499810230304094310321211361892071986218337195658178365018321856768928001056123585856127714962276900441711613251604605921196917486040101057162616949921815364712484010494314709218029275259452629777895948953543601162852600023014183695474231675036952433359226953897078535462745549390595862297174267230039834079047201438559429831294466988817968415657058109120937660991272255153651040539543065815813173500512286413517404383683171901998917307280697968240879745774362695672499406545878379416336363449597503225739084184403467108833588330121631282887995669119323670008638111908621022265710845552760663798088094376848790217197400990425718043197862402340064570766687765663731615605996005625861753134911696134382283724819839212019153039523091153926083086339875814220165111712692102208473900389918893322173787432297949371249972605460699959305836231641898963505485504535348860921939060706026104842295370576978574682185786039104539401466822210828308351546374942601366146515867482082357538505309622931578040654575762366516117085982495425211209310126354806612387937389624684843748565259655209045676900482362704502738594116220533210637026847938136465130286041462627755351366735714722081750810673633341259735600981080704152651947602039977946601932081633993754266683037204474033097432056053973817042202336721856262826867472524578002282333948964856549856598524414385594711173098542157902267013687303499645446740717675739849621221483637954700938948044716228176110134793280614838909732708147755353743659922382280732098717471832596318362887697786936698510878422063809033554908409668886090095914255470848399587786322044315729719995114982138569301901629494476808847662452623759836594502848832421874581027680602038603346804935478248606144242690398117135281924790241043147497261232335366587465889283331197100070446781174842278189467230860368963591430298254121537195582269136710419975439183314427159094870229594634240610717341782788075817339248721955401292864501585366147689052518435062769988337148968649850188088251024029595903096174370048030936100344678710049803820054924810406254441072452031468363195440469861884023597431715057376383226567952566413687431876676798297809704796719178078576742907146381336639406212894541202389504907574453627858813083957252190333463735892377075312056873428679374989530969104620038344932009613200389469022603350330731907368013625920455739666441472296486080400030054058641068868674213999299238820527787577662082568453344791194613699583908659603903884325266652041395616577261678449760195186185867066075665190391492400547779371742846682509443126218168543530539209286058331304122201901300174200827281529934562197590204128563786405522804510486397597283520405911952930751835673854968586612444327543523123190294195302545230838022932934593118952522319951509830230827030607963509866868823693251546402150829191227671220145807180781051314315093574726164139824418103179530641016745631273305795192791857853137241944383931936528157230689922828912238678984050799893312835340422490775928501947146364957355964605221923568762284391457648396054782713963538756247963251133138584256225779402785350463505166335351664293568202429990304722537266574544359492632190101150416951066382282549965540803363856777593510462764595617229484851436492868362413998899526238428623439567601009302758747706343609349439218750327889847916971199436662514299608388983211092539570379099735537817655860130620172310361693331075551091019778183936003774459609847946087419677525957138973907409178070857363212222846103290249349082740891539688443996179632790018014219873933627152998286441456122938574486797612776265457286952952094487938264762890608796552996089686752502548335059411418992520619863210550322256917088429015951307301786057870939695977789471812061912055155878014785316649151516684244025669758155015841912920869580890482094685151837395944221998149884007637431615667926618745618080998099302174554427528360037808925217469271398913699722293217598080598003674420347506625749354494225347665348918104649867827767250632892682952931540843409018809501757781143590554066746550991976094973851883258357808873836228224065292472062438080271431784967876225181417376090119655999460031803195147114035696265641445884376730423429604387765753538984102282961096793828426266533948519380498594453837211454462860313583692229891848594366726108388401381601669022538412811864373505407386745700117836157165533719645664878957029613029711368895433038308766129941391166045537700892508921071378006199560264336188128574262775691396189090702194757662804871470482908458192413052624584477801259769497036383013020738529214776972797512340893482218274524497073991215212283829098518693614218107823741207518567548610625478245872585212016587466873702586598909705029129668060219161467513404623398349727092349803839684418934919803024213795533809002311515890955417603410291874894386965767859507816367596645005873997871193016320028505653736569714105767695250102074186321264672761926846489272942435989976058502808558696761374048016446331915652694357242561103284945294669507326746720205095822297529558096320157184372361295309236551504656150702628077963205087004188253976621750018076714666722542594404886291576815959631002285527026254253634105476315147214684302964952473304076834452517383270167432011634968220353141256941472858162361760262299510186969246493213286815497833148397265009247719691265152550303868067873480988241146805084229535958386388035069057524590466649326010995598520667967207612814422459225249639281645146638618229017018825091562547440662762967327115283081230510487759179236583791721783949282842678860806607884568686274575367901009145464670195781431108347283197328992823047158686642688926497051986374007052609640459778537405496156648753633497823358539938174395851548179904492632461981478542996883466188475147478000515074972470782105854319605900995665875961391670245565928122078727629050988984589343759380639654889662729552149026762731290198001963665257648467358562293799938153781199682991701600925521720481596819393315455056588466980685257467958619287242494093410980793186286314178528166469750387171745611761945377029408820329184376599997097552589475962728064541988160720761747769012318878552953815507764879906626673810951772933020016119792144534662581120416805472686829143206384982013678676687228046722581399347393403390256623753362407994170889110304288849171730974910869108763939980442335379380798734420660895152792207768108744227734507165697672153782443389395965955908470527723117283998256257940766120855971013913079569584892583407353875884614462642226990767144136353349022110428522307907069870852285418515934202304826036245509035603008518948883351349463437782263353666796088595374329682500522144442245995789023901904430924469612177015232294515876504295452774379040389110577960063891940931568347434986115994744651430640176705160112720306111121229276611030688776195734446108801277053784160190999562712551841167522729345904065223264749056951223998548640516286731283410145314136710635400508362551717613577762515533222957040865846199311618186668613392624540562286819381478304120016637939510179265996532772747651959337843854941849385603279515725014769499311377226271751239649706283418195726177120527433138927552279972039524738633989313887062773734117674228023319988452463139973119326736883117497404342802847003987922210805941080679278685174974742942094997807041396899531862622557136945393206397605661193940396694850006761207348567562918662437703912607096167318011771054120165811127580272850339302935942202354758321183048929123661722017098535206556996491279795128908722634118039698541524945372078134040304578020295067842475316299635505759277749381257077214255499982172783291944772755415727448627397906549339963925172536592045425667647261506125654449298079763696030951307427076364095480474988987926348789736831763662238992119643181309050531861605976969975358961019376922750169521738598344770943374791528314089329082908295035714331753639197289307126246402157378360543201839559483237903585005049112523693143594687251466171597066997721165436692661755586078645185079281977695432084844642871641483750215810464302173317604081824384475146481107305513729402743148082568935338016387690715385183847352138342757377892153358326659875089509533841285727331861569515367971180738774653519387886159967527067253819871215957224570276081030043300520619958464119486905586120135152540513767526995252525196322410858936461160886470146435205019934566097813829755236048357470995078751825075173611519690709781944049908141264833741973426757870337507184470710613154801659175028213244348961588218710275369191368169722904633676686391204296008927832118861609185252253845963749502725713084700048724900897100805267741153915684175329601956168961969476270345129302516185824406992491816140351469799055947610560650280706204969502008874113060339057468963724100492068307816436666177703259087279270958642064356530415732289703452134675835740726896960925347581868070167829158958025571208683433215790647199959647615602239714920323229350859479521266960974504611439318034153914607633511461290312140364591437455156051779356961048365291009492454959966911109972251556253926772611731881785312162384026062269661937264010038633546199386517822746572146768669203742493850703210950143709669588218701245023492182067516415751057409239989958143205988676697281998660622719136923274336395071232393743886175538242951754441559323203754435037430169638664510526856285210056644185483757048675628494118970880612498982804901342620703006923616454102419943836947362299659528037074470820020657404644588663877341922380016568365373790873261107131699947177420147636603192085059707646883002817029893037680536315307333183009642227785593009439193116096285835921215413414011877137461809246944722542573165308595261045941390945966667239023520151153015995819031029952269526958346807617496114301615427484703685761166330044385093970562684781000082662737894396465673063229767683495642077139303897341983165707007071040192991022677318909405615398233801414265005837978149062931543160084957151888072339207141960248148848115979217209455325132941969985282482373838957459057757652016797500765429567922990684340845771098918991339211997627418078144757433717922251700857090441518691433080925698057878524178684341152816717378494668889223297686592749900101964840031725471765651723398662648628277782583574576560168415982210101444943823057670191499151202777829744605523896921655533227087482026147655149399507679435393291508077531236455480262747098570766306975812891601873674388782896914573401683796216837406765100378696547184724785644081522501909638401101328832948657902199586047070105599526659412080491256709916962776943474534549509472827667063043850420187866993705107031795283831658890300166694272750206308886310022012362822378509074780637605161705124355823629385084137511292106936929469593079917686056252559071464123866703555741817934288853181891208057435437874341351124498393518258510209352100409321981748078110977601161118292413629805353553150618942991667882733386452882186175963098317366259217953561699848620015390292374236528903565413944666228776927695427366970815438643858508430983147414179906194101903397879124045373165416524799273154786843303786332445950516165626733103080057469435456289443648561249940640789540107273010024041870434925667706805449013528693493161339570004148728769691292614188952756898846994462425317726889837678772092274608412502167565410616115187833661506128030951179430899967890783236342409969045296396133359374234748974052498202129619667824729921421337811868442071612933463976913638706888407787127573024951632690104255111922607291786797439348258046318059181045423041368060323037691725564947943122120174396836263503755427748751948138691213982160402773246793319822662998963811619971161247776568098273949946382809266007961000945471682443230693478794666967438180676551309422932109712080734425400633471320163917188737088409452928101714909145639400133087455624479277714507775217403743045628914562725870869165171471105147738253218787194373643296771912181986648459435643523349796522092032005498919111677203096036857811504575703979101496145834588785125105697329775500820172838112708865972296429182791125462739089743968400256993986755846845642194482116526774411539493482452930832636924964253144359964181886733248436368469819169444843859707208246603317355220227638925659847108707332190092625116497337232912632587905908062996336538959394823964940535380896656858515323382045864798887929356288663030003135847564733563055960154386653291333190002676532905474635501469156284943932199136414333977604778297966163148356672776431730063925749581325411323831114441583574998263173256081352690670278632209564319711516795992782212416906855833226231407456069509816198399261716792632889914050579697602041955475048720910420675807369261322579445179182386904747825565265041608552856771146738702638257628394157534195763406273711061783454185053330181909714910665930046311552729802706016186351648749505673609267664488502000696231531336984122436522476719016363819549475017798652371452425106114278332361104110691694709751511727697979080252502086504390577497579137537623459489628565145132100124029758734925593600700224726898717095606943903243093128700310102748929762305385607129887624013967976398140315368674896520135974842301013777627439617670711774995551389399722132012838309815162515146036676810323285098400027216385978726300985253699810017151927450590401528296563790163962274623084648461740289758691644667216598338171799903853177114291270189060682962930735568793775188334086494670593070301660980100646519248900010953960140022188154439059683475159981378995560133199507998860354323554786916785301791880501692097082418333166556484941940243353775191626576351845301672072252142559303895876264592432621692854413208815195465050493272825339357706652930861795217343068106088780403484732449430627351076755065539126086602223080135157200032522128136610097144206825769150112304874932852894372759671851033801778573593203130405095157222857775255397645159550667782154508060477506140806331040497478063478328755073652275863305090423856121831674196461302389927619286989752392080253810364803542510210702213236801716516971102428983654976009666770922706937092556354868136363179666147275511274944524249452407767943067543184172406141269253398157786059249065256563104156210627621448679973669269134520948962374403893940546340148895995940468441682025589186550652240048424538480780166704980838789718322390657305409822692121199136753568329707369414794429744136750351144533922816605400156643301340542487405863495279225560675635335029481055110559869661107485599117801828393842982879309749106433029527198510556567929045040284225061621939046827961029118816295540920718533353588681534219541680053982872127213802346411002953369127450229531344884628548340513308403001971833422083890121291453931968189889910976965324054092473261344301355798983253971247838218022382354314777110502185410944089796856496578537265939078830994923358102482596191315319724181741934276811372356751796700897385394939823193633080924958426981917084571513925551506788255396784504773886267879081959441266001017946855552854063409415071309190644766161576783024016910964981411964001437467852567132614673539632360461356425917128881017494217731240019276122580784753029010741876150589723266911437118996438335230800976324523758560590753656904656098035741974428522996201379300659149316872342531288807507066630389892626744446037237632221204809197940517528655275424657615331058255217359675066339191722227673104089948916582179782851010931522060468322160809990197428979820219190311348421275544656844528860411570826522068303560978340767007028892684829802765694422418281417436539126458912969071262428907781174996303195980561115832970173538296078770614104700155857404899263898344480439456285417913587066106807132931322674182075299896058961747224354476752023564519935616553635147108648538418642399864889284465576892569279636105153836026197488093628143302401119895674492955507227303472891295235386135546961339273625508969820898324470709595300279476533231185236434336706425868103158481825960638466610006796752287118786382556795750718815290123633305963342835785105636504392111317805191741089039609335251871938207001065025425477586021865725331634736610540385537044301834297437169261746289905581487362850623336778627675499942680373656571804835389910202019633444109651709874022384387493258259727985150608634770721225552339566079065491113927033504358432423419667668637514876167783190884903708655036700900856429804716832067971194527467859826539411869226686502457353757644398474447089263655895380933770546261335218991834067617308505168538138461467791080881765791674461208154188187264364601688991911917176099806500811263165499639721940169027673995473695912743122465643341010759036979193968335012350729356335616473809984317813591460306373333128625824845798125355129587509885283768740147062658308629503545921549381976916185473277125266511758841229838584451986234400930293576943063286861564545202841905789682924475207671096558221621598859764059119957852793537882630773151578971313737958360536010609136998012490053823600306039576483532714415718192150416432555484007823335106404798618290942115729879013270426232942799938254178430404836482864388805759828828361470025119179233910580459563772130820443076283503965882271788550863942345770183218813055928588964375114368585727783319623845811418493846737526694406881607102137769802951626266751462457685023732797329738597524899005551969424847392737284723490126737416979044175293408140229914854593474682786192951033993483541693624720572386693036116352537317618970645145046619657447223036523819226745580566638378814629185859760833946812679306913787234334256092367983495737918457634869110246434454810252399262214515700998884678537281314094522527744773139992187124298275037317734259068092144306668478186157086101778796038136174297260059316466914392451977277903834362548734485692409986552457968804221140137056870688110546253084370230738396293415306191124725952821472870645136296789301608538977158378840354512108760847471329561043341508215943378277068130476182784786503301111398045435230893104905656705098384476551202153595519077696618170160238876525992521662446914481859665599868234296322184829132347638498211535144261174183886913440775798801631933352425883502586770561081247965269961867112064197970167828392632572113275277364957370572285748025184692489859879514782775596792734819155077718475413010992553469723703442039098659165744521191652141559737068715543647923058969476319264548722668318585548651041138861968018730364036044520947119680889685504524000654750284156954833219096752752143936564578169760080592725948726609330052752100320774961415421926720209125894597338557130527416727886514420420584952025522938755482042510295075522475303405471829930065232173106080570573962952806707119632529020634885193181471264581647791950465040659605135743784686217019477158667533021834117638136785759153320585130094881359731511499643244975395254528453369480658147132457249828026116049249225224573726728065031388717450926949389424979472046876969338365601252894689647064317801253654990364621773236403185664749274901196081032933305862076318777112432759466222635750255458573193291445718656981621876580175904053972344215812046164727966061124154918426578356719952231479112154324198018158246246882281365775258174310341091463967672505908459184739673864935108873946672643791657729254246947272381063895859723706929710038576394734533223094229301604164162385222979141186717387807340360049953061661776236356215114250778576247250478180259106000578481928285811747212744016355090013040661691262953999711400265983277747239787601849036795018652351965053695059430798723951052845546311949884992573776954243835932084085279150026952414337925992568151792662469481932527697221445713645604114354772057906083277225021360339292096626911599107979104538524634778187686246962395623390223745700714638292037473475025490510495256871829168052002823910110233221584399782473905161480605663952952041508894001893725826462027933076224611201685237754075016137540250546810567919544803343389163896053361324651519909049801798848065220831031162820162114166835128435315403670017571576960434379435330553363057047137763766496964770488020700225532532013090312430678777510507780385773705180750385119903077316350937170944156095500338794122651887238334175337115196863057837246886862164441899926982229182329124855777694550259731934334276610477146416031309721458018941238102180913607884093043191575553011966694770436671184209557107682099709910060298167217175552468696157658788353434601317268540686332771485395777840466297890577119103095859062563124885745730176496577296278065758520301046297609820141000079602554427226699303666222446473230266430944376081395128399028874026279157412163512676510482946115564362169191350535034410767818028074528598687309797440492828292292277569662155869053665684335775037427715975740523032198423308836149513460364323150762760301868784220330057910785501562174509144509157822347405749315005167637426207090319783960918873486124200327941379393032085712407553805713107677532944801448528791034732001545780966794248834369983131062318826951311941614520195768110614062518745581240424409941552941189963092067325732267430883851846577764475579941281574966613349382791535582480699183500602187987417046642894244643483489057414314469950217890265287287069581978374988700827352169993269472034500900225658952224760106022262379412025627222041568398806810766280717196683400173145335577152306090699479951989679384749622680480793601259593819250834600089252023042827337677110501138419080324678138503050665679792070877876280643464002641970742360434619882786837583234799068404847169404378517617702629412786773956553626396471889491318497688043495907091689766103028902189319758402143016892063890365912714556828189182473555944458119546227706796748715544580559221557417974998542449944127821548231793176826809905457237697886877751771343201361268281375027834711940703222309096910811037125524354342930914635595963760220620078364355036508378659243035265751364700498082143983202985208685665675878067685303179430722801868654504024128597044464612429432605716290783828255594144769439686506378218074165857321218383996833249280490926874885826108779159208476029164365321536010553264836092319399421419596643756004767929878172755793449062242808957511198965625119140404380929726966960601960598783590748943172386778970906231708247679834257846579526465664640834114375504423680766005711003228886120432408132273328300072903419710446443794398029275344726877468255413686480457386938904691336393550934314711765950526094261102753259075918859078792320914664875316409083090763532630374080804160881202341930891272812329180025840449937339190139438015216603587710937415835292842921493812716441331273685675299466712396048935550490295213402786796836170798437458981760280232562194461210956745492922704718462082051085366831453014408971879453138537201243511112835902938665016313627803660390067317998359137039382628384438563847863279698038406947623820688082602292334324530657826708794410303231372321949257806795543942862095035060647760950937491244710040479017251378939804502639215655930256215333442805793459288973424061836569610368279161333098302563284194602297540526170945262194492061885084449377561864892235781911538790331652648499571297809206386644286691171709269081034660741391494981938677307342436746345671071099286951797833350663632413796035330013592412146983655262392430524528276601372084068371518247969145741287168343187485218445481762491695349632945109975596959811036102232614964051665116224266948151351360053091311337106086391053442770626431466028875551801703817045018530131918851256241717906800393052872337056864516782407441693083158516987196445219061688537117199092893585976420530018152411092441837254968002700051476826439788528950729725520667871097398343507978372813768585107107065541561051346627712958295667422323132988350985406361965672041843799599517443669267817226637861255035206459764210872139832734627930270297021884468170924130449767643355540723755968830765829221170656009427983435160648182387104920353408913902443539877767359337659527752958378445080239109157898508926319536922252655614652594617070951385951826445590532448692074586021636835504484908492413649732030245349342666320954046383035898029658810614855452673674393927505296077576854269527291033334899557415970918475061979754371708949095898757084091389488566597005682215130048346674761301549054106194388097326597021541425212131129672851611164436313462438005398283307577126033072018956930128112222598816910972943570688956014532516588359591601037221075539192894546638645012941208293018517652514221866443145574444471421158429868142093780847627255518992295647398548005625544264192443309633063607795826959565276065503387653117169676268057121315496113079790555210087180746659807681875337686744924930701804741301568562702588202791541725398288458244139361852687299398901079897968929224999128746420661015784766575050599421362211908504935943996514132776206121537477496585940828507611530687293962426642444567308828723913069251286257583314207764957809990523578497189667051562172244815804740299374821299450297000322755979963747895271470162841545039103928904936955698685434216858301178489923737575551544147604695664786600163850739793873642628738440529727519952401178177919868017568914566282575863121799839721976450616161979750855630080764461648394125804280579954166647149732269041446919584881302797258266895809349087359703770376268407847118455337163972596955685134343832458759992218445216980658030719989945084491201624865427834894824700362478254081127383752445454936294788323624851069349965953489478998181478084123749009532311659425302805567851143392010259323634782167274520750590944233591687883311471413922047441357808743476542947382720713209615186365511296140733007025562231131649992912539901158414333017701748708314320025768095746021938406562648273101415636786151421734181220862085638211854162095011795044126083992523306453716226010403896292057986637661194336261231678457910370855949275261164539961075604822512279373081094655702149804659184046352162613100936290002949175335042378895046122488895643174894002070891233425010076034732324713100786153692373645012165318504835200813910042142218597049153601804784597195383977630908680199072484221248121446853115140559305696815567186690837473686735657474014407643651794259439634716960048634784939519566585927544105871681889726448132737255034334365795382050583663091020250937574810398748671958763724315847144306922390485218234506542644673293996529808112798519227196722734799431765163546564239598668722506469440432855454147220072400374591936546130898549612057813176678200212197268695719702300380350914886495853819379133390547685078096569189675610095319173748254760463469159599147969183077066588139236735784807329440274567220811939345624706220139019489060197344878705655704440977666334941481322267718127649362846916063451411698439699243906229527379840630911859671697736948177072546031856686278043894689184754113443791855447756785202028713031059509924661531488381884148583312947928554581933782421001852504168946392527228503443917152288075568164185937875357053221229774061517236559229323717282526306965796194687824537647775691767375111700333028672048290357429565410181638136994304708588264023173192109614405148865240519452316440437413521503302455529869602005838459552651123294704319121811830206637243867457378792028788546544415625586712085220888793194008590680356460676055964901717228710789960128786868284932638984277062806377426708372917691241635977998193410639836442198475965043129427937985198473322618001835605002347662948786590909289078960221094698922435313734689136803381579957716648710730709255580497329613184720049066622452353070251562359086365160710111192241664908537673923625568536694268526859491156537686368398012280556463574558630350588137127267026017666127826928739612478768645487151009558621121253586201297092647288486553640617117001427580767024440076875529070061030793091967267329854127099049049158632037609845503167454172232536528279684771721818434197582662475748695565932483329330624716294757846324577598192005237963219931665480249448698260965895159234976515453663199677545630822281429932993111227719403020552217095239209146590814138171344890343683155208346442680293068561312306239443164861046457833180038437930459975647085174089550636861628592857123952941310806364488109441253043141458716659266395583393371306007674871975779081463414550141027145109743288356129058709319252794963015377799935165255044559694655851362819267518287043941081977658443179401999819468537262215142987722179605334103041528818223621950864449042085162959972481692718893563493939204630635501264150229243908648495585248498498549933666936754880068130510152269519881565621278950664845205024466480201036589541959106702907715246597357017237415843716286831801153699669231529524399780921813760447073362748414874762114604150855333299075234202468932241045345648165310894001025627247745760479658345652503430898263730711717720933411019351210005151668623977732153225790729244481467826583074222161209703910032159229514244004036260290658231200293181877275514598694069496305324217553454835795990220302562882923590152179348576357208417245091073748953968676675314114742011483679313801693189865705830709238036803738284353424211420285515009384829297957537386912715509864639602132330165843628594488523040138820697562063612427832586642923688036514079711972946650472424279936140514404485067170523823796943468055717407664579905798937220140840960236253867257529892468676689187873157638924595454974090166304145163246874032065068394024477745509983210161967360726323683375184702086616608240402863385414500296947416080530757972389186965563469099223495137776018125590857768758431024635093403504348679445629086522320629805176458489551904190264847965728639957345191880916559580774250989837452623320729022744870289427995166997474008232828916256422961782195709305429317235256080422869616582077021512940461123500606269392891447461496385001120543643940052220618240146380389687023725508777544349267064183936327096698370714674202055114294752241101475502936418602290483175737752293968080641860612358973833529403450213933776880272227608058609791782059215350161589927116579450643422317464541993694727070789393724615293645253127666047298169004727358258241881383588235939447600221960413469164219472001018928442577204991222484801108083863489643774491584150970584124262505919226888991246364375431593447256049140649376170912382379996911268092109337375190510032676734826951758255960394700615752186156626126169059880282360782518318485890059291957208075253006511466369179259422593090297379065628805696283645775121600280690159229387518737218098073730833620487011089142028443963500512544854696259482470397978424752034284291507783456527429972147110010029121480009657677856939348120805775079116356557033030066233453243178296172470579979072330709391029219948053811394602590066629507799036249826783684781713403066325952529183566625780225927051762051002493029186014497548424263696469159628029022264364776827408106720079477651093318167646247387166843241678099281683609952562333385012100859981638171878393787028518963166733103619863137467955222531410514555989058279139691650231464894865024173552160589611968851865534776889924866016922934071976725426922294044254427485502068923077872843723789679973495972840389268142858413619553431795344936150770584216719893064203991271952893593396768005471321965495894688539086201332599586524602241752966182510018783009815616486499132835649930465485106154343214592458267284933003771918466038220821371044917807972382206059374127760949072384721027010235554585234778400164962226045752224939370040024158570025580452735373062768806032517954441588944034079135386821176454042192724989834338906199295254747884764881555479966428045965897857040169363891365788628176193554890192107369032255108259774181946518371784704268338872846365109655022129328928466958403938430997077467257633640953721086137187135553936806414308525283879932930608496198048134565653770758880984487678161811929174108809577214931720817436325972458486468112644663823809528708635847168357178288612041621016161883215814478298551750987943400184852809832485139439377207989233832474696204095946340195401935089665751858847677123560021492584999824599885976518989563755253953830192725636185454796878724677929561436770941291176728560781082853335898775191202350732729163886532221012826633951695039587356474546165285517117888322433646046063996211239456029248575471426980267889292909852607565416801408451948550362240896292345646510009292716857951706832047742915877679663709020722856004283706906420831910934036855230989360150135784680768266888660009917145301752283229014463420579458956913843301880803339763676547412095510899575030219300872917001641238246773678033155881667601049317311740422350968330134721187025290715683863943047138378740233397356817920139591460083967660912639118566168299990110032780291942022385025951656528568148296489866982698805352810740778441224626138348351960663193841806921408494621698967378155848447328321787017753275737128914696023825381493527208945972394489837251144582540903551805732220395641797645210672989112336211269916766389911989260283706315846635344396861165601312688525921434402987424413736215563112219807668906736382455244571350328763505365734616677730459164989674670748374472230243289500885756186750704181612382288667901473097108433133532752994863637858479128700342693192610913783495869517390567678475274362155466398337011628520599471757281298255537702114578609332361534885818530651161797456504990829388974271634390674376803262196443519710650497324513924301227062115346450595008888288621548890719106152068907476142896228654470419512653915011947696563402702569302578501842336108731528877000131225296123220566229705559683739411427438413199718266587003370066496201595761835794272835244488607022281847416901054525263276454939201888954126646280579541070545020728295423349790124517112575200657618236544093936559983491138532402053568768684620037054100063337150241492048738848532247027429487575679070833115984806675210650962573184061246060226217934545421464185629800817377229710844083468808353632318012458094415017387553543096971357522754400680528169901203121941605168987886101174257851946963079032804951975525540274662372479012114420131951857344535524430636999685863328561552878402017576096259229906776374240531576039020403192603111902960108908962009704744241691952085500085852103315075473888624502768456004858042751479511120133172722369163301405133519192092482169536987153314012074149381941665475803920062976847031185926522846138807181923163539401543509129997617817509111041734974320022385814435298588673739817100806074679412706843611603792598249113525436325856005299933333887286403271853507403043353893774327823693862927061809301522731977115515920386620004356260279543497203568826230497769414646148771715226385869962655020005183431076454979031590551261207954083054613047515524730298982385662986215802799110468664078983110926823559128161767527472200939678946204837826584647461389711833434685027390517513933372224462999322912521240552573533348119231411518227991341908175193346219888201601944855082892892143807447182539740532899240020517315081304561031210471146027838815583122520262823653097118079517220601431542833354916578717501307959176917237474731430474784996177838014027340352793027991035898117312307482242570602209768315139168450630414409526228816458704920042189275441171617018842402027536471951108960441086522213216783052665653803527130907117051162816034133750194611751424727077927276460239934105029613139964706720631233227154859382827083515155047607994234962929758074107119543656149149174897096015613423897829344969040029564130618374852526086132990769460352479423685020421003623026046339995271656124923635515105181486112628668495987902197427111344341309199264874526412430692963639552274486406343505198658666697423319095183419082159613682167252278328949472292215768330222117898914919439662866700498125988415656093127679804764372424329881997554446785509044820196953299146395366609011688141865845110115070604594602145422007155482506852096167620083699519843338630011927419733632766622551866161088156501134837453536164012425739080637272232029394313792301696832919561422640499491456799798182186312414146677197736515411172653274779525249310874174621257857999377060262518239840253162732670376892253245330132234617792659257552244407214328280468256230917659363281501364554952484595711080199355481307002023695351333975731480591070073076355203103007407514400806533349825305694889723427219599044963029204043306182171414486817030687997818326625534484155856297821040700957665399263312962784220632308236348825868270741537524625464100575789231523870384003862961650927924511101441206329335461254772435227822667919433821659589448270394238153907495704571322036766764519606364260553869928860263082537530910964884580436137271316584115876224494091035991361819213070363568180267043441185133832112220038254359376637529685403985630176643476853819434509917169543046722761148562397617280638563722424533337506042088888361146753403131672799940840361812207993335919062063720938971979580678988236190930573711457289784548473319179555358320296361767453138001758424282999453958567060576351038966139171132042804094264014709701562838321387043386963337225146990809306221106004244215135731440657286028761197367705079816208364869618055202970910296196871862264310387640546951344909726078017289107517562013424296591619009402632024278108350812665909316131161087756458332741270448974473626487156824228661187688092582971405874210876993838629951520247580645684319469399779359887094842366503453415662920577279481169684638027238088714435834769155763808234019425847102436364222295854343958434044240409590722300890190287698755323217890642431817963454220330648985891746299118038324452609518860470646961573831300985138416504814354995751362861712115732878593807230447489691197955807612380322211413626184731165804677093676117436463459282311440318303099852983148644216531140765043782632639673773163787056549761343785583611487655551106680614610872294137327170582308914544848452623594838916421865636215724039666908211886141135497866509035547133910616592389428456508534376476769367601740542447430869860176915556851466287196007282897170584565373947703472600180855259626772827844652168033121796570427923504372316881001415568945282409804626134333565119441859284733704066963780296263447423017763182038800527324209591964941509451777127961219441005568035311870834269005945993127615152898725357481888644160263512404893271271228325400831197987087220202105726636671369602193331847101981572088732222942675502104879324086114570685470127040568031439262664852280160202093296108476813260865454348573021377828221631204330417619322653170135573227658246710630859325381995964792957574244997130615948196936852699946479473394099722933991029197468692744205058542787243891971667858935067719542620446576492924199409262040655788538004798453875295662572128480209023820999408746556516022942786960152176642001830610915279090590578931673850997510808091086644918886983589041929940492754530119516536299891155135276370018628217279881594593909109904643147466127067259148109164144747285205389182714505628836159705430699110069213759574358096339245830387069031066621141684710311531746470319267076844152387357866202114552980313181708038816706994599891625064518592457302961317808911350782594854041716709489164205585593769804861895707509370648056508007122848351993665933062090924399276139607430039978444580754141999453555604716241612809456972775416470559085116805774553526207845721387861409334903124489273147938414695463875695826628053220459163421980261686596389926732130160697834761248331303918001374480549428305685771260790243770817434468016986359326424722706107417606078569453741192452021040262241245745862980443144716460783094494794202433596565315620940634212620763031303930455478678760609283433539966581517869526071721869368706698589056962636644521767858199577522631864943663012528288141091046186824914841162502489789076176391043551879565502767593422169067556530579795022577427905104227435583397714412683765833767059446289492466055610108493395949393839128477897326134892561494895354513317681629915402491481575559571559714732182282941269221896012676496082085614227014972926563719752963911986963206607123817267387428313125862553974198278944135619203539208599457856467971368726063162897745579470042838937122779236204127021101869744987788798091539180413443366632695244230476619681336329238796104073519062027305455838538425339540675304286787790442562033827654475668720113833435081796153309671848059222668559910212207192209364503120590630167221152960497418890470973350592512356643384216276274462727043207323878773767545388174479402595029779512051107646262328897715744704927556414284791116048192831539160245183150898291230608811471390059482511164401020132592055961313339625213523620641880952435642075468297106864359279162152946308849985285734554945784738653805084978926085797259341897782177058415537588292596379519950477814128315965697578321385038884599794143492052889346098582496671952317921641760903849118424539806778142383918336093564871533794543305423692981394361743564085350129176271827933919695126447271162555015249606642833943314573960255728119421173006636542754257254737393872255959078697617515642159541450664942370377570757897486931161286981876705404925345626095235582057955682085128163889076520616838823523938761286924749046599225129259811373432017707606977334459332675838694738186906069856388739085809352431081742030436678816294997931351763925325592600807799642267401964524471687930838956327848494731953046578120782153300140170388776576858223465686998760980260406779427602881226552489276301019311282021810481464750016467527319210251369073673766663472267076198016899619692616110954938268417650753809611169277777601764568986330180330800570356270141430698470722899022396415237529908881959691220458603597685230860415344579644783033920861430426119355822812268358520026739986270108156693582325088747094360638054680800567690435338988835579237701979559518753254327080427118189141706976098366955479543785513347949242720742797911060591360984741558788688376676416862020465403110773215790607759333668028762314347262504896229032885906261765997967330639017055122170230481726922697528195569012609909810030518063964849809255029909337960523491874632020956398787573342757127953607714837250393863866707050668802303361798864493377890889849536594952182628241649230400432531315019036742024366732558724049302106752256842456415237000369940343585481126964685958772835210098264595544234426856457697433967800978074091405131253108913237799177691657260619948672584562056719178374305540678944268398360309922923708587364982020906310252989112884720446154317436676965646932941613497857926340383951488556944461014860772179361292338494456714938075396253663598558208501248765143160059807008997459627768137883472934190490538923977092123846247373045623337531463211776448762623535843467573039878412464286901088031488770844670300152132234941212655270902903811585949473231796003548668326532406296760451842965162647678724796669423364759072275238106002163963879686943649998727042759453964944716416422078629028753845745325174144425397036740987310416821778188513456959600903249023958803301964761572239727052316723710484351950992167764526471476449354602297529340908083383810361723802630014060420962466955521203183265820003210806951372770613929407136933920271692889528078199492206381757859781307393777281419658194652647882318147497419502322168299565534017490862354215455222335267662296561478577197560681698346287451798673296245462094552599117932028825949823602462796059924043834695110102381448163193289096935274673355435358541190479329196101059039355074175069727816372354349616112644459680101012495924239423354104010560371622367474893942394012607327365322089143440564883885379509226154306660692221888229305842991066811036866424594111764530047249210549383921319405943394496664693216793503472820403715852170198231903417399310177118771560918579119311472707833343191292663374448306315728084276586510840955585924763081696911098131120880679387113994348036202770468548669099524687393380684971907285050264775491530503578074471350464883289062110596939859778689796475640109757212130352450148829137132091443678440394900119320309826325762912630318230630994855697046935968499517137484185931453474936685021259678764067851743734037462606707402103816511777826145610475389852388578406829328670594249934337792777554261324041752303309535517738066489379046330219031231733619697754317816183893926631615233538351031652650469518748204779491052887529271637563240493376128660997691454807291644635424775497534022236932955862655911511660214309134541248688684932593702169906923858776165328244359768816650315717717130857251250569572084136821070995195298630384604647278798887828529681952309432134909435494254445427014148514331115103864201031909629841652097325004634745737319915721432815589499596908728462149344606578946600284263299766781633053626992712695006448925601350782038985882389303285888329227836230776598916496049290466580913940193080067818481130482600796423895308056709671838091404236976666539104375654246323740726292462048255287674019103736442384063477667520122876441199676827551518475894808766167900138079987035197562133470054974464778253959537457970457435758275170553216990954370370181417919402032357905425816466941379509484988471943998280359113716959520477872466543863984199540232423826746626062672051700886947951073425257984733140091393061635779112166860529405018916802550976221662310572897894629270939164491399363865767610159887246756687015938090186702010542030670741911631376398683349874670089989296200762220819501118454403109091264512503655410361367228202497432829079081358244295997769665937427325266399191599407134356945821438788416834848048326418759515003100244990547838052393755999949923363087247236851922925004780869972642179890386302314057719704012836436954769314955930798550298318345490443287544237778565978772327703659418206948887468456088213336499813085834734787942912403468485954472202994053707267047880201678767833398965582004947205341159289382107655233120520032783543700910292564120017645830332294981740275839277062099620908006176860999691009541283955864685067874320198670451168102999467115485610450822536679156191450490418424559784812780819560778112024302412142702707930623560439312974804659363851908600169556047008082735226018006781845649460513637464323744133302274112388923807075526850988957932036714237248582133132766518382950850391791410790475618542818988799420208093500396494538632397900271152998937479885108807084506527612523734296528646088125919058798290713272023333007892251496733641589423046025841543417552687592408719850839379641970116716724648551741086461418266724304228322136053377681769971992475890664427649810934661188824055183424180581482090550949872712089750249733515799809752805988928384195348846346271197125332185109426520529157984238997703128148481421491065553921642341096194587483635969229719362905689188114944792317558269431430660936920058013899470250268373553990039379310163036492898187967926551227656654977087495945361540967562945687446731213986867604370999060270016015432144686772414856453433232054807432283698266700474841470382244363860736489373831232789185618054348976168795557178638885117229324524543027163403546758303346595716593571729547694783211836495212917261804723976283206320263103407288340085456884438471975257620871692177564960337742189915117608734935578975821414038271828446180504669109493073884508880999550888421550518672929970093658374579663458438907363727732864998291373664918271625732856130054924657579666368652384792226145556240626152621010910829267959793238226482876708383747211271918854689220284574975756290135966844176136091450197303886254692549201642002721384621571631157742346221220538402348380240054705938250206754365486092897349357498719280367415118007757651403933610307334103095566803323569524017089064505690649214663189306634872343263484588902390789040434030418793632494990323499855252500850822296666532692341204095084936255836902526983973352352471092377312903826752602495484136566928627269347866429438618844948288193509531685938344085832422391057231833499143679593394090495903636647538158791466705705889003173736985310367565591480557089968488579382079604541433236673045503886516510867782640276181674617534734609638681228019638851221544040621840515925183557715251556431917923923566760462223661365525924519172577959901886331370541626087503238686284616752499098893038015990150195201801866509845746614502976831166711425188278089933619043399726992903514837059479012298951150986869033050918924632441091486993561608796106460593290233706805889373280539150865039280024050120649911119391088771207412286515976414661740063465444925158459722731355598241844066342186974887380713557529315378886905136069987064972452521536956539408094439076169651869799798053845900402701868526680810753978244373471918806108317630756072467266024747922265240484507120791976799823781470535491125709225873404619189478598522299697801924835178791117292823806391022432716358971892365292506881167599281605148121115255374723243171409161573728845658618219740028795722957950600364017376693495711079106253965079231346332374149731191763097320479232993757116651435911481268552011842114069221190627277334487812496748783467755390437859352338651441903568718506157130030497089994918781622851680718356867239646726017065273948602071310455250844572749395205329377978743641821443732111840654985468052930407218846003209803154894939660495176881658707110817357354751235681835359477057388126124746620998414009918822644915853830599251987802809842161669058155304288861746990275059890644203718307395274921226771877806286052091593637443570362272526677638218522505333764074269826406219513765076037929009623198240320068377235719522017128315166861308711070002653271231741409391383882080029000431491302336834057247699599646546294489978799643719553185563849748073450967089790749116063617102925901643964587809401347911080340819918123845212589550305613163562946284856456117456681827480394489118795376074292023092566908009156829209057397340937032816526509239011280120082304879058912524912616221471055737903612090194529924141829840987181568287052182537519359612743945670183845322418245079739196083009616034097928256129274247168847240336133682714892032721454362431470491823830397184954393898941739680469417560531950957356984312172142740631682572743556921709390782936053722901214292675680196851897623276719406911591993537735094766358152945419566687882802872788982347105717191668835395224657964353244315217112855301120780246497947074837458793475179667281611009239368849836454574964639290393413731614024790030526600265884747052968311455944950371046536608837273335216866549103003712738473128183578807794086028693151743593951711439785602907283429787598927540755957397073137597863294203567065263195431065575463833489769375793757948035763305803906354717611614102370041765172256434385795327092380975714403512250329365603860478668945784592754645904008877913200072000405384763386425066183887158708708524632391644880957753467360757607093805482214390292841924766814236652200473233652160718311401409034051110326353063410178842133578004162304243973921660620163373944477425093548071377382479350837221815718466534933671979868571760530628012345531892546562177983820273179860585912857275436819664672166729858443417612977937566790822696608832105704921907898456139969476367751349314683732700215788735885595206225457890283983384998824594943807816501344216665942057238383816109982206403675518070627097955542827762299706154433879981655365193270245936790607080679253482196025422847090716474664498638277862318254728127958773634249414028571672792352228706721840939438449462835520142378738874067981622967395114808732465669544498534401078947635287115446704420257513273704859125656080156416203883927229796661064355245629065360300868787114720860601009400551375051260460574344335598200897238840256851742090393725075651330633475859998586146598278890734276256330045191020086429068413924428255515698295326389057652494260119631410125074400718095373051455266137680035854542530030723976810080460009832095909629795593976818138351936037034003009319915369731523687582617286820791277744174164312442719888437578415186342621037091757849204477272690544942556160224116233455134552761724084401529432043698738105093594707954589433115011441899702792069228484899477617309927866004805209815491932945423029458712448614511584565677493678563912183891045349814521897586984519536289694446766944944435542987053494156931644339190201365477799456232969999572854940362536631447011807501585510181521663758691839949082671623870373475620618683132004118498098844936010908262352323073232541509863953522611051295092713473658343059077158259562598969577010879170224263632144870684166405830100857266112018755015926789559247283605615970963661889480332187697684637525470354838963194122453559408517314853471996763389746608392778939648281233091511083243944225644315169278990470442254966211263287186943048570372476918596257584537461154589589150162554669862444739712918001555745303834566556834394683836061995398309921894042992991174192978920984858841943739190845624606173575897561960801274535908985957558498522956613392711188527990380654815544435048075090094250773881755107900243278800572647529050581427736099239895781378791076292949521484733247233489813902390591575431325238753736726206936758633007651782291669868736420739723131863526786053935862775023757121332009993120986115576439436552462079791916815875066168453110169409067922663557038758413837690144007877720810064535654106714457388157863646910241067104500302325487107024883478351986416110195411840705066578661721843028477578990987352459911088064670087601916676472211372858694762054834670527385786917036435148072899226678333098305915844885697759029837208141039837277570927297484220467824162793396946157512972368431022959164551040667175836705269529776556963538289515229980572091807186053479245646895641021556898972764556676044046681070675048998590699978599758098212883743044715443048088183205409432890498100538297029192548032765672985160524799778986905143325905342053940448941626008041723812116871418863989520518229621678613233700803742328224816876247919970376742204708849678669037544088758613553555576659359794048158725193455371644998963888529904778650357475140857807028218833467928529598790332389101326684028691646987006799341120787013635350078143902188069244360454667633120106499956706147576902249330302577597512716886380499484590185290744302607673499875758794036860544026691234420304303682721306563587743662614834997322216774701286562177093246649760842822313923517863138012944133759472165986867081986677971321239640799383681382058047558981880165850924937909916939662979993794653619779432944082929787807282276042385426019009783129419293973813735789672069007409024900128837743598556010177489402648645560791450674770438038375707441475367913312531021427627561647403614416064600572287004662131304254099676177751029815710718161740214818991415693391468569831973426549949209542341541470335232193880046262262903331684321340606923695689438302071083393968559739523819834296287251938441252169164247885255819579931772260135265419395240550519522314953915467604171688913668446708644202863867628034571901839020329925283576408706846862209554016638152418816275309470821709963985574548190764103581795020093809337716960764576410566339492302788362404736970978653536836683615502831108241386623938242026747911300120275611932962141461057180698346127337009037455221395329433139350061616486156065481554464820063943632702851316405984126254659893599286217068556585895443290392159962149955805699799640271319864867581857867735346984581283284166299155594287202085518330936755688286612688065275089825656389429457727483653834372170883374982128526438681131951470244584230562470665028051507392039006067607285402289113810303451467097226886636968735674434211191796565374312440208309545730365624327331177972994805915540460572495523308206799926405441664669941211814211337240651713767526106338457164308113364937056987172770589814421508119334491799363267622537441993675847705372868812206941036336005834227024402502172890659099055558551189080511739912379623799256611235820172856579468170567578223805554203876908258405088843186969144697844169884914815910857428062805699454003137752599397824159989642136633402295166581435060166865296861602989526921268092265716991991548031476932367910506864393774479696405906810536861242766641777903963873706702708339863513660609450716353454154158241171843896867363504661945735301141744020549668977744642014799222765015432447360385076701541287280925198814429052044827411680852108690386996157250559212645048695706915085577657736113521180817488507808954051625451997603550757024260227890781271808032820521099685158727580554667328092249118528707641550538850422199335288789502545133009491787939975836816359148665013227169355096279157746324752369749779894157594496459708308661967612362461385522943776439353343893695230333022651407349533071454981693146471409235343065704363131456403950042513391924065002082467502543597948070392093852883976064123065839643690693645978786761034131755377949444117627665474124216240121237269426493600351946955872871322011213304486600512534367091828345858803166008289383929372306025150775186851055155339046968211684984494715289889533387806199187304829784421487215075225786629532886726762502778442645189534378287818539216442364841245002186488326744631064761630056287597523164253719515406663781892554139552394527644932810201385014469179271586487204047065812291531005284122687358630253860301844268650060479120989801567493359882966703611213837625601432022267313488506490795106011814556628548098308125799262555180014293934632291213069142011382576029273239564243955822501071167779004777480900390393154867194129447459500243846133900489209238883149744881256752462567447722513031185407935518843134949567799823687990351016133028007076604781650268297959484592543968272846541173077628665540451914800781755467351692447930780863014429487179644871589811500667477971497965373720306077022086353433373922853762899086336422182956038191028069910902840809419488526886966281642679736168005702890539929640575451755732620051210542335471611629379774843522577112487087887655830309484952213661540373548762643756356134428365915995394260308164652932077364158066851489271035787651174418215750216097668551274016456580524945283550768668733805659385393637400402865398851563768088327931600072285058230194559142257796514252099950752480259932723034678659648483945287848624105300685813670978273904628159811762657487780361848793571235743896245324229748190479697123404611866693398291725634463703339779401640855090406118805008691544601335790180343133449341805804942043074291154452957726300486454591219958325345186193855188614510369267344639567677271933473724567817938248027515809297051301609010923304682367788062032468936133328389603041331128838254330034156118931273065137050208979386523517499674051531385469378719961869408588082387579523899622227318326414911726771384919270123504750849849575157677533239232043552006690637434063246642309530319544359163232611366183597908401706752887277499416926766260236095392547903235595263592392314720950013333104516704924644750795877588583001758288803265627208231597316765287857541904823280116704610949741611142655990735817072688280599600685929859020088248913371928689223105658091642904380545674445849737288279931959913191896552991464634637152666769285723232982236268988718060452898311747973974692722310191640963870783987190894825106007575951858227703771077722349187556324059109391028551124366230780097778880856405447354903902889858340558494521250623148872627991355745064399954400479057294255912610180752986924979125746357582929810395962038082772886839092098951953919710768024143988696970713309926156012707694748752073725903210238264935732614285979330413191841293193173576691270380511562043238160122339850845635927913169449822746765062381282396480765564359142223899059490359397022507591168424198370658378736285799379620809632580460694663268513720440829769733975430627931490116713241659269158048651826859571048246589552785382950900717579868287830368430564918044437007058631966403234340838441084751026880732122291384221149537635329674907401691711527998367564795344198270188700452890618377114105772103765948048577895698491183990714927566468097870230162551592734454528177426057551908724598687750757710429378758240880734512270970902786532851670247955369889753119852532108738358313283468779525938999509201750815557687381194263623004533354406306621976053070222469468990086448187868364489435659582416990589586708411854756999445608598486332876470986200101867126822195526553717918448543298863937674617264199450782921877896523357580096209557576438407679482428665960521675811404768708898679671035531402054977179268529270849963263428405114515298734458045501341014291494249565808359026039861958047491688414382694829701366760997317019793428622475175852226434740079345335171625446273472264416441127163973445306959901013146294161982461943239385184739212819493538910399032873498267455974132359387704492611617983114019968789610631502161912768376302924712019704307302507321727104478558051857469919049071262169319009994180434964777592927243327933115308482826965309186428188864621330026362868370387220419177476635355427365223583398103765975944213139493237827576562300692813387551470702351511849543823606838671759742563080318310294958622707390310789611509912229283259701820073187830441424155913240322918027310792229574201574316855059758624321703371386935221265967072167224524601644394037089565104115574843025854337135397285600164558796704102131126134536160897032437235973888084275072711122322104618799085931872150108063668556352756195598667630101106824817847860128462005935728823543028002769913307509591740828125666820980990533491979416217398829391738326095837193132840354656467681883566316210446936173768712161045949306632965055610420066705545697986292045620193369402636757068758488593980106812262846622834200433439578938828575878908219305823414023751832422893084910690186404189481176352814366347432146085844532981243405592267205929688050275041503833876880931651772780904271119771267134273450333479113842658988511054632777484496612229490286909514039186854574253426906255396485824377999543718311600141740662346116481104826442417573709842532367881690884059014453279560308821554816020846353758269536264521303036628147622131488919105080732170940016608852225883686133211034520025534329499432136786431440488145652294868628370856860929995181447930447371445271098390885090760662766039600601936607117205988351906053749130719665185105710265459487756813890788647648444753815577829083784061151639787956080785291751533754572692613244776274228840865153577286993237019789937878670306317186109457139931642005107423780776317378243556330791759076591128782980774979371410295780123361735930175660366649599689461660951459239544452174266102965895162403068500177720608087881994201786956580077355012698830883634161939303882091295550650307031231234649667306948639195520326152404584869549049924174262429907336146470509266184705726997765745800006831573611190667160365282952966446819902986483388401290112829015412549506279636056506879490414666950391553064348096063907285866006536220842641469278661053157908282844147667155234506425571428357291282189492813471614546611775561786167393138699443780482635642095355765720166175996444479950788683680554513983494815264951570363242328884689900054320321832073819125619188750605965009623294031227835026047535605989683449625305374009935766570938199343292779527185078554364891070496831186859086145483609309367426157007597546509194656460197427434818421975176264786136736797650958980055946428890745236891155821474548179069967171932247532258729597984909153995060447346291678065819850285035789049988428635348958117295509515054187622856886966859930333885817321765795636517805788554551374352523650337212914132234253465898509334426265374882496138565610941680984022112718605039194989282084618221651198257039367363454345275526146423331942905649457857334429654305372317357226181397424095084191743704886899485381515397885800067992553797455061391743277583798393080437912146838808692578528437450524613495307727333073580287832057351286731766990025346361947085829283173693662683556570084738627238463363668475032401095921059244333489185157011581474846121920674910613096286934035234934751752310054863492352693548822223195467544634146823900933120100715436930215559044998973360031054024110311808895673291565906155617757877439483903369594511947401725274246534954054438168622351578125899668109947492870072850880181026555626477654940249449771455738564999294587245139598916921484131622559517896297360160659407037753350761987990075958620530752821062064767610046688816881333862963804858230030006513346177003519567839310002346374755229124907095221033700926043640567233214813474732495806985041146056597669459636063210635093038898344656071523573074898577729413392451028010367397178101374178091095424563994166129742602942631064961718017324764553575579360624181219691541509071764636062658921759683741632966861804158765858994102582407899407479590520437672442901223540662602723438085288907444493409752367740056384635324190864554561627372320324446592812326918564859227258895994435649473486256576706424374545105874506072297469297773655726154068803734876814740118697425747241052967379597671077115003398363784127123652645532612173667894967165085920260446309062696664164594884201593552286500604448966708617791282283230581510193529350735134965319861970623684688544074064086434047034113985553703461080286546441572739945886123065408882390629750080788221233293026268461534436030456984485900309119870370012314704545404432364366428572016220668446401485729162986378017894158162893437996207714582074356531718489521033415561299322357832549786447194358829584942722534544668698012851392619986873096954361257587251110497528182438546977173615932018765131122620835101371809014091200392876277482558093641132784669600858548592917288267974354940710028804244959475848342174695369415450111902858784067542980016958595849016059841345557187078388404478545047562074695761714883600096438301270356856866155128765209004870779922563367246495619764563463144189599423245909434327987951421372620959943293390497534654819359798098090845120658079881596614266574508294411687117392048513876263118022473813477540662048520030479587411268493446009142628985087371236398254703511685881792093599823170700362648137418894677039501613497509074255853622281253431492396164676847980606237467381653398278700107509923151469583387038050270036327635406749210973651030116680391221867051595947402908394698654184318068778853483008556836610225321383468380506639683993527924143076423260754904598037384627784894195688065360780727595042520190727481242802752897556024598169586866157833879244544033700085320774310661705902126086394817107769929003671853534591146379973896471265461227623452298336117748025387314125033309783042855676698416639485665994414342281193162301449428218652124412674621632377689079111604468003401337754351220583655444676692782529108465247231337761257639730706769268575039403783221844163863275791991800295933156276609444571048448664299292201380809316405239239732702608821734650697612732920579554906245456752411461195626570385335293878317628799262175467032094251093071391829448469972909089728927197909087094414453083586296400418243805022196023420288130724630525708400645318408647374371704970457918684796482093563761485033629785819794270701854193863122857395237696286536562273847302659602955300511542916340231484981504735867573498757295008600340010009654935623343379643062871534052612501577258328780608580448937296084503003794920378897565988105225283725457907288680405215856999936758878205753423977869419816479073761806142201585497150892723199627593725783392803870420842100060851774287427973815266499668371592449531050881067417400841183414885343335238104632477379940925956594982558639201350061475447144096262757660198101460626605215321395957505735481134041216474105955730800238745508518912834284809563422869127975019605283758735941926820465209975236945998876232885716803483021866461917275328563992081716095642185955312831967566555716717636702781590307573385022710615963984756189100209498267976759102698752956521934959995578145291715387741668358327365185368884803449574017405670950475775839186801000624345009906477482350006585256614050117866297164878337519112563121650774241298545395850035869650257020430903383460169159635329062892923871890877273435864337400091617356437506499423270166014835082656515500361681154555777656744045313817898740358940926096575413259329998874569977409795662920224680178762897295760522743827675700051124283746219774659061855454496500853271419554046751515054291120523142153375300086446371683331796640387594431195741831721862450847571558003585094448468815980639159856725854957875657976310672626541498352813447706372377232672745051780695025657461114625924827118596832012130316586333563013005434945755628732286877794901535063783311849443607723085291118960671445134493819748540870456037208731503786987522850130850630129397716451463443271780455337728490825816401904313450103332740993840403335089597039670136860890495715627494144078349611862687230255126610397300120453468164369675756401363012145685717933353353353497717556880144374043916063332690685041101560604921588472844657173931391138383331146246416907615873094418713399534160153938947727800106784226273301224295871362465088327538602508100510366632520458559853418249913349795483520286606005898388337583039659383241186911278252103060688544592125338866762522985200046017710494622998184979109635049290251739261548175715183035925168531852371065870958915349550488490116628526738390741295614145667813851618394414549012720788543827957635546726544294878480328243644988161396470037616748410975528617780759310259684439400543008941952272085685797901577329694628728214514665270608339412889611302429886238613341749471842465715544152511754572561214100953589338172782582903542738398947441607904180249708528979404003148459575521763141332903493173072589514582246734233093587400302808295515056436754152951910216779207509824949234318364582080226760097606879386139753905137119305370021545053683662030076354919160528028576461949884001586340515106022792331819688623731264014113985773047914294296884747465958494185167249340867952223936287726878755490484180439134197394359368568726693732899592815251230702922473141767923145753887307651342723080536409074376809624526826372157213350427029730815233148739927901887357720584797915895857855331632298841055440630891450137720155707816670557748098067055478249176961700887839297792859637341367152099694325936257445879396823730633511303814085352428462720079637295595502902673996296826272384098435338852810782691781243882436700300001687948717833993845199659460119836016664932412174106008561850105841797602549136630709853605280562061591982760199146080429293350929574784318581750998305738773401207807567953237156298589894743056628233007781317621036998296825229606292854461636426729781542670550710267226335204711226114755512248051120581513068818678894713054005594930465002532252274737529465223434665898301967131409301628763030174197692626552764920552613380460395957680882751963358216314441441439983116260968082257461595303641494649214297260357343184071558377086278962664895138315008861476916960138704448061641899805012923588040901498824205247716612079476252864267797096809352070666721132987922591217367411761093700069386656916971615728388416699406279791522022776215589506243578165082415140041551894184277716635968823193008129261519670414998778465386127049475399878686238941944302289076490866193091756022403895225266179428826424953193880659756669691744429220154919462857587015655559323526781549172852820383731900489752572797981392789558781746957175985759518215745795144514003989357202081892085584173363723560826013474284551747797589689445872258804436349985975500560712066702323779157318893983862446090622002341691134089959214867669725823544246406866120499490911743358945858323634806370644119725860352007600863520771786721419497911996973880812384541425909645924171783411737076013896321986490512423188681447862874660414913522558851845406098519547974831035931058453843822320309425264021470111154523459223470800242826478208197094273953532633483365496097199987799896315806560016343572386970869434159399468764673907545143127696384123206625697761141469612390097298444789470096197831739435787765590795335615890921748867281090555937512340414646297901238678263775740101475620260369653733669308042547115187354974476739728361248832370420629732899207211428480421312878823879571257269787166507157656233205318335463567652007522095864087041062928635574233812639743341772458846880109136821353406363731398762376136664152233310253738010609567441867210675048941242054376652428823592562387391972331822758999694410735704674053945905725435156374485390233856021644287467244351883443443178566839509096665034494613073013542604890411451932868092497999763659226727755515953326944313765611575205976165179052461250165745040809270516854662370808106109972474057233816770546115886312670794109809985118195408765161933935229353545317842509690681555371452507254059787636007499030318478131838012865413398993639686118876560911112064113718849277772451275079465520461178066563725588935268436533839203604951109740138133138265781483097598331588712680887667127724512046338437216193234748914682101186857958885880434965886060169403790935861142644570901399622646194650114153569623576286213979375514385161827138896938851524877804184918358793982553406786215245943880761168896557426260187100671469879286167049508483115814647782838354439877125762009850593727633232095443549727277720172373043864962660060609408086726631517022948062533470938551376280096438123154215404968795662286859002460131191401162963798736214953669739135836316883973106262991199079062170761235490340661539337587393452197526540036639656287948959719041400771037928536818616669878939016034262079564616049618856700129477221160532582340710751522589911767749433468728781102192202497157747190409599324706733171207807086474055630074494435591685882771138470912839362947108674994451235147572595283612493573154540058851070348481427974367780134038730777802834594637291380645405277441063662977666362036964097031056027921874810031022056424772383232094628871080959559818276428049446965206817669353360765248854413368995986549718817790328027908330847443649069367974223586230515510195779807538524642897610855828099499287872344674075643377549340461102722017294755712756986815454410838684191857049494839826939673624724458241461482901970708420500948952603839736071169326003700185764143084103485756654663007321257901016484984645348440666755281591831466928065609332132958997320262221559653592582493759637049716993078455682149600808753855641811166126791590905296572040798909124155544525540525433793165340191539810828703462932315826140222074228928589173252766057217687799490176502410071122250182684309149234999164453254025689218727591014704111392343439215424795001757314416113542341266300524962582738146980073737544092638889360035236653417916119908148022098585720719741852919867139396781143342123909647353043026558117525442327453761618867419524286272840045391489334658851029021917394326465653506042406600845494941388167136255771179312562968429248181604446183131690353559427409920828554246268330234771589136399510997120708753866330837720635807020465744624209176253925024252913458260779233324971891483021203554913602926233611614067706111689941649253350462077085098089596954149264125047001626130469187069523889874822097735033864638654109061887218424681810529468886660164667419315476814171391616100546985700627134033461237357476008037705982555032847736455444570185946016567990656867347164960787965930914159070396552436307920546401185411518752546959580069301080749203954416539824458655742819380801725319532759189114106325581880985941037220887110440980049453347613870511896889090460656257508458211167183561572770209113684626253992522154687109128771578116590368229040368753262867039605059695791516966171981409946741672361008724351097637955185553814632080598841960126239239039880157545504051160637556021934311644850181573776650424763361349690367894415974000374496211252908704678042817245501421149914270392417609674419214841171370046485747354471319624978586183426920997253039870475796482143421152200694025097755162830123276255776117467837000500990609261774669330618774036176557391866538453938790546816306970072209205709229903952244507499114863429809805421086548328662239507876415714706488932035563000254946206360796781380678687548807120420224192368728764589956977429257451612906768414430398100700061255482278615025848901434858902275659997147041419183922305319180539942226346612768393744030361842414887425971923340003885943349705523696534857430247844588972425161204154292496132619832811418763978231038390645372720779918337028659067052583198046174126473149986577322865143330873837886957920133864181220196810340138598188638853064450021616185089285083553782478688242037620095065669303614339090943528842624398978001884306127174962290126163514867297387523320734906804405962176481455991309244254334423715409401393245206438043924486962205306382575102282407343340552812091820408384613948132924121381731526178121733778978700175005987602719932373756356639344892731180795367682827193771536720456162193143793383504772387935918534759103330300661464768930686563897921434448677630447403179339816278748485707443765692624363500559664152052272309192203170298918789532904672639538201190382127862720052366587990446501427708573944297345932482107078962506195085810889444666831987122804046134232356634124441281129842736615083331324626146475579235613827652711814090500202946630813976817487309325597734240438055862232606007174504941984402472271071046717466115854463565249074350215152536239690287724203642052274323902005000050772223463259502836313684607919350367051206294711623189025304483687850822245693604290306172436731541510260912704649728958785449640167805188625767499875680288794704153256077026426236380024584669624240758562935772349193037559856594225168557499950900244621061617647751185032025278236827908676239522964065297480601435882240192105977984835427971460500341014554655479723959196899163162658739807400195507354365556384348921387651070934149306159788105795742096351304494300116749319599877085299039048848111702457722589603239667674114919118366716794601912499629903515770898411963233730614064565965841943808973760035624280459750612945116921295619649764265104695720717903644367788282856500719843539521202535968070293730036951524458756565748303174442769248047868816540293132052197468639774142863885675113791142397937024762959614964784212906575607657886079298259875404096166102713630543322646025323940547447837607120576334923386442719218617279333288295237594061331031278313520265309244820805087990189699566190251627362890970564537834692994982275504393118747180713203864621571593541445270171086096434033796623429487664276558326715810168969248062571527360264752790733913382609366429550323997104798991305373278926074410786776795354143245933311700789435978132880530739853950906266801932974988424321978016192207992433175465785333441861306033974642109887927442612150195193817532926502312852539348146728404690772869424861798920845825709683209624677902099535443678999471701624180065116515945086060330893046167778626353261508803650043108238251692769788665499644042678957958464268904111157837697373821181610412265202237181837892854034167917131868631489490941162033615707249330705597256307717889566910471280469749263793920535344575385149669174126833797824491450904118575626490122181231685326014180788925457449815629098351200468481531428763285456821670612115796822250950697081714046636512538067704375126329522827284376689582803535374776133874728179364206133410751926066160028681942072693391159529850735951586174655974805118571623692670438523414284375499484958185086561461661096518575326852918746133148377762932991722846613646451361181007950699920091229589810421154045521938013394808495700593836691801544016421657704950289410418921275010518901327137296805439958206113131180823092595173882853394558946335119676054861526866459037992558718170834952639132975531259875249505381486164269190094001252843153797550358012501884014641570670060394748936225355414357375794007914216111270618909340507711139458221617019390856316162978424007229603674386584031761251464737832742063185359165834151935886665345212549116702223310682481478449162352810268533097926167117506891703654519762566988677633423220584715276017484573142028159222616780353740686279714790997208379211566579065196681770762217881706310136559579739476083227084432234646683005429239728454054620282864121698848652169402616311701555668819335667521895212518906702689641488631575982226874682353493628315567205852772308761631132977971606864888546526564081731370998298819274022019445843011054235856361856465335390114298151861417922255302058617010636041640964811655765030729414548651105764293113420475940406828351124363827743311200520158005859037415611492414985412030351607097133073018821308339211510288116904102127865583879872048873429070864121235177918183471507069620853219945327651509008025748017650656748513332734036349531735296900690141516595674951874720927240416532993502050453411174461399555021274079795219273109956769942783167538409994275645754753837829760073951038890663318378522748610187194436527014746914229839874816840698854260485147188072148582724203662663660472643400551615342407736832690069372702090226675566178833447962567218578439726322259255025875336047232369034584290393905510256025630507701339994367668930778622018209226480088223712797639442156851610679336758750038893382344302607130687628698631462791349949925067653718197013395292359171250376842984357891461203429223090732414293820707890083366637262614027137621745195356311720716631155571560750052183370502619511816225788501495114604082842641240699496649019162271564362539233669647425050327802756604029651544704086844367715900988613899263507716032651303739268003352355793594615531115245131658222021643064157152737780436562185611835124213949118089449591393936815852543223161280949595559662033658674361387056547353901290385707976847922930348985191251523385023514612335298918429100655958686730514454759962887306045503287875841142952586977834437643217223862252695285626103409241348906294873297635141729343326478420350069951079204048185375023290527034558684327984970944206006593355969772494846926014442566611126381263439374966393068944470818521516019827451337305465045064109881385813195783422902103573348847409420463790070786341154390934247550337272973500876314234962020083347152056491540938557419629330271693531462448324430276980477930543824060649423209098936761985320273123593344318610697178803473364697538996884101406082300331652973092964250847302673254441114942304460727990559891131832166825938939869205526774207616195795191224266877168554752844356118681531262826967776962925371742128442573422770180381772688488530449876228676140598844370242984007064725390642853217617127075608574595686889135675554207036560184853387955442384303982182282985839908945876659906299405785951467150910159793366494271599931456286884215677923698614516199368731009851006582416482830594075773840062254110854312165529977715379957386333396507194616408119359559343135146669237833557464618907379626146848444606376371601938691441204609247129979106179920773752283480943757802274408062670347721924533086035388457095912243840237811081626225278824837730778567660999898550668323908994932858114497512175934952351841334040308721909255853456337591553994833557532095217400348462545456579884381623581686699119130275749354625681680329874245224583389037243719621829898799538819795329409750215253720481307793866789092207548936523520898964339229193035430466150571608145935833865228130427083098917522320918746848310897042931708739590699249522006580140661795552814005102217292255072548818014595589988524852470828112925280200261357695612977000494419858418338133778148956563189047433304950506636518420252474254382053886381641259341160662003851988171659675935128679002454267056679360772637371569074700619121590083866355550130066007654253376763304107551302384723744812721567790879078221574670567889063874827419232587132893673663929848819879327135322783846131389432271651850224127991583093249019788513699466265058033997773026440889957103678489400533561236545051176507540049203376592177584879738813530628279035377450871193791446568022531059792793919040064317665155859858664450296515815046992323439886319914359525440166227423061067706889667270546793135233882959831091527648136888969409616573470564180203854241894310191728856490539946042432187336388139218810866851747350914161150719581486846509997859493918611323221749242149936456412886197427335040245500222554103128050794318983559620488197855352865683580461742408453443539932521126021331067157103116486083733020811050724367353071404782745401753178369108505620079701337394051421389581515115668570741720961152234537727796746236172416040345408617542023432197319926740857987375911838150795568912512319249523728988577139477152473208967894013793359269224345254772818659551255189782626922482002069753531370091935502021871943278425583210751799728429571485919476918800256963407917725452443843378716027560118014508611548033429180115633691612163034576667161701332061021191431089948893533350142273788843349770638080604341233403470705565545992053276852637241527400878827852790249127367527262341168503185450426149446857136323158876523115417061369029333057336924341919056782703035896780987158934404750777137709084921218704126408336077019878745406565069160092600544882116737086752465690078783601665225612993634963947780162272251017251303755606445550500758928517743144462973701322412617524297849558881287291824165936476856231409373596914322526296251675424744388752432952730764658616231873588513608790436401359664002484127428799399912219096397244099022991728395077716407800047010871643733340576621157879080618974782586846235278477388028283626319704255009219795331745031362732141462188237531138986161803142511677488405645063655407651896271762467512177094523771706210322984168243937592922635402139704764712554234700418198083623739680484437718779467665184393497145024276267076841216537338282495093998044502354520114904602113708524155744372037582130934452082772480196871157646118497971180480703546395463657396146067190870073253425650589811600821090814958315748658529283232331993174570501420982741608665773055203557260234670318938115438049681484470258632144870754820862691916992354248249849010229388698416645417205670577162730574176308884784771514285541458361464093948938300313433922410553192301540635240441285666374458792469815191605023665545113655737800267463842285629665096740866612350991257478429225697368518159213266055872301112125732827025149534630693180446719146778308811014982115767825778618374090165403009125282624348307993699895584867253073696481075364966912549740768568870186361098022050305899627195723601952741811815474025430783225056273014053416341862722332667052156615925376367895104421046749727399837325046946139678155849426416194124068390095679120006318375649043166794337635491495656039886999600678239531933792235301246523113392125044363209991322392126837007540131387333412395198194276980433845839567219886095090312224235168710106027742419694868400005831985505500255454413494257703847078613951452398902561478333823581542588061243372667191049356187472809172535303534164025847378940994148593517357223894080042750228478260360826903279450396596123908844375366474108677061585018957329986438924882847806558967303609292592860299946621501207925531961378310516758768696452324126113904152124119142978262966679968157651708783191457957669366255229986397726451309813672700721416774413384468857183364200215920567699166714569341132850063722907719245275451856275808241685726606095553931693367313976207114827379089161404515143469314192307380956496093249548547076482922994309200415036487406113207402720079149699752536427365418895233138782619354274986930692010421401267848998396359521629093113419814951667412818075282849513818023969504270234356945804920096850369801022621224638554293546742855429038796622669021859307523692397993915234782483889929283719441435538093953082695591859548803811421773010428441078043462575807527254845037948863813836853355012588999425961317572962598626184688656037049675148645457514403994215862149209884884599398236408656154638896147591305100081290285571354621567372534426627928378658707793654769036813464506075286001236828993116577841456611465145966332310827320607902510049979429912713530102857795873350240838088759594208845851623274408369741141667898731562998242268795232510849593437657013785247627469202725403887071918867388591714352934951355107897401313640571420831572691144952120586207767135115140355273463763188416682733284641421992598854710729913387692659954450394231482184395892303007318949296780937005479610390379655360602442568458396921916698371144914360459531290666273327479093118338147437640395078594962020828711709983109983450372939323402957162301776089079469065571035683522725477883845475446833100049408409988752736947725939920179473197938870337213820137654542707571150750891389136714063469169443823841911239132883655155957573662693162143458358539387899088065707440168053175375244193401478678043827557404520734948505944666423538001492602119336098706115841300881272801718239177355778537712054762723210347575993429454804035773413581852419962077192017250946132695796542034655572594342684175978043494421948514945191126107052563714697627925166648449279833796750662466602043182887801858791632054134943409137966216505014182115173970593616864596407324216816874642572436959261813043890478822258750376190751659115528120979938475482584567838121274707252761542514552578801512898769955149397603531484639162589696475790768000525329407831094606516702225406643016681483712904707732968207804599490674817991040054449506986761285467956260488618289410451324536341514193208126793082546256920221988021855721303482629710802044230118208689221036179740825870613279912533085658090278731334358758695466193732109186156021104626860422762116794971263104261483233725672258391019611934495646018146769904680078957854261147539570414066766975528650667440492183895123598792542893262906450340211848458939956769364440553316514219084933587173945226587890502136805158780172318363204464981874856442020770421687648204024809602901096905027503140760279053140926292403940225592307781974010205988389449677094066177988613174783244400587638700495362113600185640848645510660642414324154895253092065591080231838765382214646447660145649479419836448032501306746019414089956026655523665389588467218711047063587793556193887073335606723772363846245002140578345753264614211374673954598168488074065382858536951634950029072594283004431480914069908825084970909586913637708715190620245270836458514877179064912476912780901446737698797069875291618463084085333900951112778954979229398943602140820381554544089112836060033757521156915890958764714225359472873453549620569446963964009163778817530207727413104026816202125865694104227918186413690849450185249981744883516770000089203595268087359207327606250423275607281994421984784075976245046038900594689922920908230943718418829587832661429366268806473067215409239337971370597168931147610284708200242160030850131442876110636721356553664495834147270720181029725913281196286465354531823250211468412867209775076069410407120127740472316591929385621581977944008618118965073875695694552497048909387102489664961363614597452935124690729148569035067956049096719929606006443351818933889324136168021175469263810818143539947874074757916562210918205962630879489804603701182932685117359301715816874347630308172995807528767486857778001624246710309120534486584781636295354141157655483354971138802613480374915092141304711258320031024899001361608755362132353458913874766252666125640333004812329415246295597893147142644837600035153265929271619559335872556216182344108596501227408520889275728104450271395034856559078701659260213704482530864252333879011901542585450948262467789615730818697399173299077979687312358257360652367019924913885264445524941908314158379640645946555271996107209095576417140634518827107970449954333235918692730599120329795943693424345057362487192053196065032604088780737298356837944746483954386101211310306581307118441222707341965188244133811835703049812158178923053760522416952633130756346417629604829879653384192937646026016366484195117604982917488342859628804773399938012736881926947117263885403436825198592666667698269025118082140047809498174137237562376983887143158695387355958800891518956770369523413178868128326890656305554823485923097305986707888401827354556748052367386472746864840808388083113921032307181461684075637288607146670484528417924714453039180343835552611158969889067290162620210954934740702969943363632571645658077899962216243489599970461110200393703843478635836106444717842667073228572307287491407975193133281478025739817927397291950543314600783435604336774127089288742869381840189686681015366156767021036099667450259713594654154442469862717712000637540295532394173474619032969186836784016876914269683608250998131003423272755574658571385391293085385975373831856231925622348997517248558068164569098641394740411473426768343664412794717919515661511725461878457788815035505612524686376490169248476907333681105654170133312071636836244348224754590706417149263774061870735252187153172823936036425457639022609676218439741381088392177122953537593547732748425395316131109777593983788282401782851258649753780597463291101635436854875511311225974713745760512324766664931465857804836484768127102572545729944024548311865810255925813619399755160212819581043933792839615842258499105368461151517707837068414201731503650793568758289601508873815182705840872157969942687872835915063121895391175023787162561995474505442899761047312937676348397791622032532205592604820669065920224864027287318871682479527416701770211730168798182293396054637569614300975765363114814819695593437732752002972712116492634563047700290813569429327563461956115175640892335684774680021988375871180739986501151508901140485532847142468987993430367457260294253592828361313421962576987299016948084525552111609184071289411014974597603629376036253384261865043429025782505704586286496797664081622662642163507263845164777252830566732421960454190532852940528402277979521390033182461468412835123667531782433299422694020259554429258858502058314132847843418100449188773986642059915299920023386984681215937510401273827883011157839980980819942281352096955888687476219577617778247963846618055475833103774385131185127356614046730775774967047563616318417437617020437056800599585420214327719925584907658914398569825559553133932099440740052964780398317561368040816102752244907440010270060802928623248643834886389115102121140700885697520474973929023281412239447615786754344658262180779444479735323093716031120834407696215744578824644828345655664319884991203578136572945338972629710847738617368079442565098882003368997677424609934345665593836891895150554047588538563335698842608697598507634446779542502428649791716828093278376084516866595673833852740979142701832579402042109966235703495948004020603674437076320670203123955543072985145635854721822199639845397916494416081100526561113854828262934719462573232350155283264712371755652772381256100753576264830741789441672695905698161435215845514171424613069908848628184143321594151686378337148382727774867909608344894746406537865722956268611596345583522886715745842470727608741316860506193039186116342600427419570003071930959915560020085933221527289533513805312588665826710651753015740994620452031555903798571157345816631558934426069150293080989756714372478533835948783013740136901545872854489496779062699559843004518582607328284985794639161341708444784160619200334497080369987212040451664945341247340328590037001474455762549701001428084687569790124498709020859997280796124249860511356617551034811933925594792571621015866523350365494645264824064666445980585397900470423953181174746354118174065673701850412838468077551614136920855967960616980204067935580832350654342170210338479692616350015078962017387362938094218658811480566036513116244903277423039835118199958938645999432683224725585571466610623687376282256480848825718592247600511029090853764075973757037830587687165000119236206118606534354998218133019321190913566787068130013417631506535594515584159222570547857766579340454702573441378615915679128829202494213291276377687845931566481928024489576862691165341955320312140639017726475377996424318052240371754626101768359886578235426227113873820577179007030786151109893557510400380014318179734719578934842592403164564265496028887065525251765582624619593577446486516553398629938388581358458672015644833713350815633258828475346633551127739782887484285185848581505307174547035992702249551830421404946257386661296371371679883427178004003466168976122467987951623278876810090038323747145582104469616160589729465753724967233330223806238012791496852895640759088793292234733044759188574703209331758494317551282025352398759913816779039368692269007094638208170989326586767423889743259029422478230682896512622271584594564652696984521149667079303460744790171772910804423576961055243972829906547831052133692224517990846942463334444419086942187855697250247762752876897757546733199025174256314227425071602141658574084064843040731894600696701619003371871677251233895733857313447972703728600875463991189770563297877178930177509411074692121665185077557836783817618195958618981157555475289155062133837506348246932919912920430039238075201572275743823725861042988465653212547450614384721757669763948575812361703722112622882689976389932396832235418904496483464530396885275190643893459400514256069505311067578250885366939891059344747398630796739053007295825541952843054430275960289644655061252852293894052004357380365621211244948934345799592714140259811944461203337383001038034661579572545494752501875240196405819599634688849109128484659792510764753175387691488742416684573365713429137119019014254223550246443616030934261332572168100586154832091817912110773245013121632786585907642222285464222734048695692244710126066770353747640924464246884668962085361549845292779105081915711613827812097091136871483194770359012159214227613586135992228696723879635829144463789362994815992766056598760548243831263460130557959267595329687002422059323580686732515772071485409312488309478005340546566182571035898104993867739756709144707855130986271903157791741063175307837729478973326042230298773971296611830757604734208751850327352572371043043307941732652675853142164374603160741661905900200715036503419554300556397967180028560884108578053336072579321657073042231234333940432195775525550269868660586720975640200820498317703808853810636385556156675954097354063860724235842068054603832952549859534904715880247782224372190810868001746346401610525245135213745609291057199117709412165999826255045227661416164861775946469644790813645640444753489312340907584968110934184983451943739748149326250127325068028148683190834455666725455895457777138536179514402199811607263259570650241579654039212642962034599429657627417731153888412477056969085126164277167710225440878770052274027004622819116393364676968267345185659331088270427117471629421994193806381013606020102222945684088599056035289666013218148740419558183113045750205542775084311047727255311938846971407902458768542735243572492173768835858101893355944813769326482203599589021447739336453619487133737181992169420110745215984899769592073380308512008968091679334226402734714612401655652087224896973719080750845532951613025948705663633107375371349777714439441938315423311833332279050214659328895856224754588324370738117350504509736527753153521308770745577393097543009662511990994141088651263158923353430535433740666048879702134002459110238569887075806827983885735833600345064740256618426571977821506379994058345108500619260496550731939531707248023420505434236072636650041075382230081254739618266527610003735185511123851708910334715969811646796781289075980306540898938074805837856381319662135526706692109325319893599835774735030867421980406946927035829508374131213331134989014164563915583957840476081633510529456834248632012751987753568004130747809974224005795251633252683342812799656219984789766399284147671339784387893692993278823710278004128422115065658777539473686003132282936344716963353423570272498160467236394943825809041525055747629407492359045304227446802029632303874616241897079622402310022012243052859438241379384412005739729499460909693338870459135007439142958672827912678034846004677898943427257461741554783489433996846625973157341458530014844165432626276663670001337770155137726527491297128021660859958523285378260284054608898823671567635779440814662772385319856599706083392855884340136654307088712451872994318879369333991713950126121195320492850999554955546856156605957967595143284955358624474689702070685586440499469765785882078993510462966775134646334117625246343000338416844793190236687845563439947447138923966174948600101659846731613411705938127577177468710552213020088987309538397077345118358669218722703237405742017811592735650623521503615047595050465617221896630701178661488552702796766013869137359378273630439609682068994513594916632024124147192270915877476794754185551225840898794359027722100787595531546664724929394081996348769486824506440680024979633851735382333799814164822875376123976431139632600475909962909647622896484745516259201881974840278158299345934936746655092677842656634022122131202527999811786614817073168633181334328825492392515616155224772049216772698977214816074214901455732818116147928556929680321634981053992849097559572855329484638144248249862567948710760074160541749213409089098107004046208946290336122290324980178702442254469027357346375254408274462501619898383453028074181878756935454560412510232310344672502019511856215772662056949187918229158117885249350222866848809166528520604036184517906224653026181128326881236765376662423319453258609871821754468551446699018828920427351660356046961670240605025729541476216314076025364916267443797568250210814345216805468099646027114436661446373632207619934876320702445590339863563268388844962225247518349389330095996505740542240929934889070224241511287875882646355313975884195129675228426960904659920358697917389298907054535129950760844301173994596828893856192790948868430575627678350831707276581616085721037317064026907158223792509695783537360453567834277729613145837651328832939343447752189523728491953744578880693942695203007888880802453796393097367764708377159045738474992678371740784315613341147233174544756097548266722722569413925747522170925537480510717346892287985871016173232435335800364588364112424220502492302991992114223269269049370151812259697179485044574622906693054206244348090392330411799209191073599089123820878080860851826828686840063017624680419154714400947286585696233922440338412297407699117962052012816481954188876780208662176784153599235998792960638663899135531590383881197909740821654790866822947125224451787444428795331542367444885679764971356296267266537070098199310121358665724749017707761360924555643378272789320179308875900345740525549071190317271522015454776292280416807342396475663573138082409697555761239145498468982717541077717535811315480471904329282437112630639616780084274133439384607702575800002920481664367006167126754938034851727479165463700483410843245413481293463138493067831324268560112143436124549744152231168474024368881255725383148371197761374409363009799003255140653986319714139392159174572356728931673209729659539130028974275003594854661853543706173186551451042415674811665295479607437570500180101104520800297427081854614140384854542459444075758422347599895875371317864048683109653953920834079695094837370305921282523315182941797467599821933546919218171218818946144313841929900241656270247676209459177560941407970691887475683366032886289634400835884955055094001403622306757795680298333313287728444052707264506657611665609076583933888658240231119534813173037398802126979831091377396326574679663118512185487506836669889951575595896823659500286571426036730531335071074314477910769143925640829168662265173500334236399592034976060881989305118219155800798353878183025889035310099401472230607882021721924297598172127777156017207448020276104259814547386964645816565614688650901992883769251584613142902144268760391228085596406090911672663351317302879739682354064535117387956440600831959932418624207022059579245561401859607860546255852488255398524833560286916520508279109679855501339231144270347658646178057681482813953689554563760105255963737810493105891886358756149764094295914872376864308060827360224790045766884288207935186652066531916474914909456047279406933778739191322463244527496493798948588949270910156939451903690194857918412739586891043699970184746834144410147225930897352280153314273337115701484798281437770627490680405569918673359218780140832392319010985985838232509141931289851481933477639797477152531428302616790438929652445044439417398638707424696983397848339909654071457132794123325258073472291868760606307877825111882911058110023778664723297055406021135609791985549200635071529091453667256244019722141910016134292379872608973765964764778667366884099676795354738660638835105696237760062331843359732293838680273171698806446369332447908515963153378540216506253680147210177430332172043880992442995629368529731154116138114107121899056036954294609468139870884581863886533605395025470886760549903221263264836606644323333212918540498798493273940893293039844813620544204691161333873431635411463933665008869889613716687257223505749293640366853087558024354071264257899414751354254097019682840994693228432778644665088589500177263120072586643314687939965264984035405597369234185568759211494105205401897277139202722990734781781630264972498999538766657484990196920626150588898118305481631672773589830728393284100799438500896483170668464366485155534399963937944722415217840510848786056749089387881196605150381823595250680766696134966375583024488350318927462236428749612251494797187285247727764496803390441793271921277059418725290224131839214389231096563235430565442519503981619084483448822990255409167852567835130365826932982596300795290122616064510884804515598181455159246350833868949838358183609726066942250491017762535753376323475212253394830826873985893192158650309665083313765775626711289277297883532661041315965199808646762380627103730615148573946709341662767298982546262253237860399968392816733007253930292483029624674843922775959952533535081783367161386859774103922276411286636860405732270020392726775116774923062676852702454474854010798705385992822100175517970621647781875477339858650919225752962861975926845449435371499662863836998560298754433296225968874577637404415897421471476180610656205539482880333651342356193234573197965890491236151764202472207092642754005871518388458751596494773028036453406944783658123797883856522995576557386029111945864434848988764004401896449123692179859247567934315446116139068531169864927161118096027610846943253523932804188484199522585977147710259988678686906774978198572020238751948605773344647497941439992369082068651281405160297647458284172775595789901125021859411727817028720665641047899615993849874618474206472330706230667245679930050766238994266692659584904708095634896463562285617091803659235558026733504574123482815129722357549353230648786743922577766896006257176125455631195331645187862299892181156331077938279107134051301626991606366683145846505724543050222392107446937931172566583778599655905768169043352639441335210339109740420076897434827101567865520671247958145410539066381373327801728471140300796243551454964452590308373249657452516930693005466978649763634218819213198265941600519801998447535920340185190647519627935954120095657153899687697321925070398956115746842243192442781611237046200421828389481398969907329074092659350519451773187396842100420425341978249266092530877007638415517654986392784196728563686238836400528346184159847602621870425231932674454465022580682677295892008470342455569917828274873901486934301005070122194310438249881279399314530954001156023865397946854047974412565821058537809190540662998812175514002223464687567003031926643366813032753064583357450160612469453339710920295420326679496016020443157533690100159569839919980905328595774136912584701139630669288947843420957013460151616304060962474522999667229610770870736467497716688436386415672231662759190957206377159959178514741767952813942950185501999536646509083347402494417278316076359471261332324966599241037509576526745086733290486950649126801730685884993621605597725629649446631422145386826425070212521106401264353478910681309406207324479862279882367780565691778742824154326618116357219852109803728987713782019418548217526911952613321630027319669065095988629555310986899526077353126971739334206338120709216535420940675051263133159896789215639542007927659157269555837961068302220741621991633434167784127223898174831086365854326365599647305941590808459383404424858605557565550686483842934948465887661581633404450262521543291681126960384642047871557069118351726628776397455619316946587280369003795040906666982787931972348305853731424108794393048421571800261491628382646782639231915911781047400947760762882147514242044395701101307817665894203138528394867858563845846193507735436997385571938637981824481204712511137028009090934492438429909803848918607529562297343058885863042106570941734760979191057192168451163347809356179547044011799851458337387933201413647799398809064181489841343013376442398700720586219852287540772914106785807917816122981082375597768071304275127225597262051797009489902462438024553400843429782060415391895185149145848463902879682851372718688291916743753730923898949202480209008375921594781547983433502664205915742011746266220286529901300827807714274985870027758940580823227958841417450581483695239713545561567852696907865029070690524302098299255026209198048412697594760115572563644656924376291864012091374317977835208236826899560096277319617091319526278127440696377482557573917743352950892907365064700787809227378318471469273984524420251375308750992293892935209555340420250472532146007301960866608429977978301466894768140025463841026995307842449900443932856329131658015245126269771566563275221236667569604973390873420379790457328769916007299876829591231539337222913462765681544492802597201761736406841938699910684401929136418933259040239704744116912886554158955292196746710366446249086796755937338418460693564312056046607388816934956825948649581271452325260874276294934853135990227827085142257613634858547176437422689229109947278984541044108186757701824807489105905996917220514280970108881304608157360066186327110686181017508063931161950508700675360504108975786847977378345467749147148379032454408332012054676307735448655967930070577902612972689851644091698105202090321079518884890853933004222957232819203588954180234982170718801146715390978547122566670802248962021775182434248992758415247087256805878724341550424417572385955148417032656621099958373271091749322367532281211919349607680906964323558634517091129184910661736407755501849643711301855893086771424772932491318257841841329941085824013317949394728492726357447678232910418356190074643114467300521858197549924587492502144701745160481420933112993972283795490949948498278342340612049009012327479318211872341345864443402937864006583253093433788773047240886386822930025324950667252636612852188648913475140172910460458865744784446855116929915287357742526314320088211327427796302226579631865574619575542587461848833168063483313779101367852618882639433722308882711509423446720723268581645692661552421605066658655825383501343639139387406850457476194197239685357272509455534968499119051464210468387043199222944724467523744730536245081545529400760356785249237549515491798232392090872271017478244910697870310294472241920362239773559561194483157305818924885071849492999231770408175023242281817817514117206269768036528176102510391388186398140027728525974493737648612902258311701163657360615292991086737850788158141481289377598705300082468964539264825502229323693441903494056147499293335535545668271887008449261600214807410408655832235887797911201280340691646275578766724225247006044193726621244884572169492528677714581013974065848672636987388906251914233955063255119579344488272473421673827290910725427382544351324463171666166579209891816897613408968094776741891538058561845518711731089451853940311868183368415091517375670591679583017743850888421629200072634617940819604966158229661926692189325812015935233851610388785483003509413398881189778092027446205671193213093339170759711284547073487763310497513718771679515702760516524410979485360235674085452028363749076508094732194368384540792075484404898471127477982502328023754132454226199235878373810445868171317479952125846907369328964217511165458668462483771535827258624817740558574491075566872063705519483077825099152721332043997592771801607472637636230136938570466235784688183879105596871219841557521143019564543339521219347953566864450329197796388785937721638517282605069673455226981347396160993301795078519181388891759082901077771090901912938428885735528103755434789372263372109521790204910982966241102247431271571202785853973883249595998045562803784637207238312902325069556013978375981801077799389812134559770488763887816402961177744029098162997291331037848689159570654801399932332743519931518652175016331512062396778685929225401831835512323976608110524952486702193795179691112021408578818817115048855135487507518855530169931951692719083224089654257231268080561461337405688130594014324858028044450922670591520614753324726186033924607538542393261761385957506773670882742092256246185363026833945743263134627789414235905910703871903450668214863181931107199607065397093655912355645974735727251393135919762204639895735491996139811367840531209529453050048017521047202388090498347167504229185061602344626000998102734550802226928592168287463909597158035552520801072719462837354737690807542334726530111644998562061917510836020224638732850219211323382415323156460556123239659716332442446280971417191151086237261282323368845370577470567313234916588740249022225350205746515258651467950343208464905830533416959016930388713187019511208674234054717771912665248057915959393058269367609789362323259978901602175519363159042037694787076791085556797243196159597240040298921896840374160221657295763740571098401909906290618267985386216794379398141384581853215357364897465930084254867249634673633286212767607190115475868544597695801653783612266674265406094362784147171467268133193291363378369779237091090973909585974093609633447211680387779197171002600250852875501417119032608323363386708909043268491853239125189379208546360177860188278062975604655357959196734828276110975790442867328422049411950719354961508113453083861171124183503299125943012422323048873155488336236166835914475600260027668693828552633207266773417809701889088868894273019743480581961622169078142274105636647389096449682272547040989234883186080448916090295329147710316739997665108208672288536882660546970256364060370399801422426887206639854946066471028977130100993435134380919520642717142904519437327317828360564531546051132223714922420726578090006614819777031811945435739108821888566694549667710104214699989021967163558896190548322759200765535564983765937523365422555724978789040450511813011961525766157970052456236278586101432929523570022961803766124723405564152755041741293040570719405635873306071091470650791977372588101804495749467769668238741031095088073052873044297506308193538321929040706125356682593975493728875561542311026586904538780946933167764638354278775813062643386658049231528401446123283084441642667395129011319178467320576650647418433496296773920413273578387679318347074132843522693305438844111106893174626657517394274600547291656158856653736570652756876877536014095739215986333132197202502435995296915514528722547732983095423000185387501660442620842743372936071139850190006422015444408881440618538049138134050618429959845054166517655958612600176116024190353137116494059519242706271111060924015782167849099799212724100524375046440777068281524919260390727574560082831374552875170575045932282565850357839706255830807659044016646561474681941880388940797280452929175183170007897479657319649791551280884821728372577719920315381440485990071246941366460001971434101366891674256481182008253038232319443250751327745898143154797580852966042613722603661142157618514144886004367743876945488461834250002190783815948487531527540922856208878454161942658747032954375707174434156753152609813941328062819365670982298200654255426735340942662970221710170526690008657939741936694867199596659141222619541105340528710843070333002920755712511308068281273526445856856024131993143418674497481167734906325845195489785433013498655358227918946015335157799246248051448781178597772523438541663449951044994661548314751347443557702031825586287820520717709830655884724918181760341877884616129628427183296708733795103195591590669794260589472463993004996008068751890784408640267815857165054630291097877849058313911541688561204816995499566626190744973655731692545065930736898076143632137293942344827341347350277889745319780689397475103742820974937733397157847892992055921052209053725359843644985435089253351889333833865935167581216305746818431291777986192406110018638792442449881658728048349938935273950345252554627998967965293985456970937816494627942951552679283382287388045569553070236838014756258148092165497753511096416194316981360247239748867996719233190707850928838836384783018128461821066344621751520892500516856549662373633050757931713917623968036347614541595349404539066983241805834850679456177326741196776338785177411063503214586315751385895013612062204286189119261563420913778198693918378497673068365134253897733530008082109112494436478751069200814322504275193574761008895652697499278828649738554948420095539193155957254980149710957447402979491965436528313906526431155754385492571341289973204681719014681532018272930603401817788810464102198619105751152306139603082718008432812797236245960466195494667698251580418614959312633684181539930779100756018419732324780739306242788565155441585497776081825003088143728550909797073163218250750852340663202585035059993418990658768444945723531285646475453424845872650468149086381076829964177431429860336481062179142591208532499174835918543210568816584010041677151106770551814340163995430291435137539764991024894201894197943076106758345629795286851310949135688008119748708922822559015091032204269596615056681484363419584863461532210397067554272426065907231135248721942034290825173634100253837227507673080032652554002779721519941960496190858922655508164947386105015403292339514682506836261346350975478242453178920871249255922807551476834470024335138719104485092418232961437780320872323407744245485839187724549395539315110773873962029485765981127833406531621783263422432000893333722276293802856347817764185625220240341957282043826235719711114932761687381141044350744710866227839091047347651808557584010478504170705307222836263694999732610887010311922614845111237148300522360157329989290175300954705554978409775352291640717556268912870411175705728955277165585069166310851930877953647778602195975028056477295143102405894023012058349266004971244698933335116229415606001605593323816616409823644525387478272328890274739237759113239905541090822236117103150761251143958315852124848022730275380046633314399361587785018586523177130225017944753141732867325789890822691553888793277513028468301213220560405600409796090194784271209286917275809308820781162137668543566877857526099017599499986547381131206008890774274594061183010653888563887916221779378206323135187128283545111525443402479091740784290397262723653623967840200017406003125604656957801541110906887371427632143959765227218460336730275730149345530663757045213307478554704031123630718808547922437268657985418204099777658681428608522171306682127417855841935790550111670311567767782836168988165445322891243308165158772079817758458418189605295421751176166114632718835356271421944670918814240796479707197674395613901057016425810412736044207257968462468694256653701516794177080821120828162566909845491855677925533932878582592494510217953300063054798605728879583839733843964338144588198502014891475489490013911449847263049508629762939751490059288263372227137078064416197527997287960935874760488195217896308366127840425746486796016837733289168531208665605057347268404909796586921398497136015397182577569939073782194654347370958211867616296519019434844307978260685861741189108419432667701773885699727506947416832344941345059854651190298532924554253245773952552708935848586937142962159112868826253400091202379209458252832080398169050253005206336525377242410675520737016221326603032967641461743255093993312977050742660978679256904513099477063175264470714063750333569776160921689755344552093126600660825809425589505253182259461858135752229803393413954375523947829745987309883942934051067922165991343092895275689895545470546522395994425742535993847306291580647332045534361189800960803770724624143414105597941058879267273175595613642916596412662088884332516695369736727478334522887237260631585339343101749945467446646083972143408245821903510677774316265637933353706501658994571917470470992816862468322829785196334583594885532577979170876892910505466678549045765357066625620218081516702572661710025933384327952729423273547819176900504035825951480200355990189924229171497922562579717881513858407929877763541324306382093981971439810903817006087407046401497952568032828930878780055029240297538500612191828266604799282766374372060896886634368059998591729236021845653353548321627161741905514195996372130987414786670694740518841461242769803348900215625330168482496157400081063247116431647538634812881978567288994875366000023831909568055636929761442406375394661587386244756295230861104950430013994763477683739401998973357055792940798163790327819012032172726418565992436071663690866099698265365255216384331807655847818983035610405808472273447647009448012814176652314135748599857434813706288538199500181160674846544412459425064250830134362439777667973965391920421292473751858072302397145448351990066694884121171864173937132552926033611081829948484560890118855700400421992819551759360024056771472549397345532304661062382419909862201779567147430335107249346374431409517041244276584841893515938475083709726344554948225007533683039773741718946400896955773918961655968368700874587907031189629371796932237041531216348057379032666869312167259452424381214830993885201684699364370843310625821213736451610628926786421713150089220743467046851827550672805161617752665996863727667613785091041696002418608135690409908471255246421406002932192488108333325399836993862720032055308219387490233550127800054140485422996284905181687583733953077934167426045192440146935194034244028223464349074105897202469709006775448845578502749094482605910236296098206150293721146247070994370291334752497326356480688228177102671499884508388193930238942707703902463038184679594039474954261236359199796408167288609286830301273515838216354955691061584862813433580119194029918477026150335167675727858032873039162077655937069129766024065415244154946447369074932956829396597141573685471467761527538529068951543135027884015475098102869559345865025500805451328993017552225271859537974682717457548742499840465112032561965981304972485408786654065974374940331357285843051902307996107971268669012452502092056710705215720252500948950708965309440274950137163663159699192473719044036610866641911789324320623090166306132165202681818028631131493683443785844684881800579196687298173253943168398291098315402178738467365118051455785332150052185807950615971582603278609533002023349891646999129098374789382929245259267943433301736390208541090314406099236512035037471126579278206923912371275647426836132493367622875208775703250314252266710842712970264147331156350515259590160272158270494026949864025995900631186066579680409851545805588003658852026624118250282917581937909702892525443383948398024951032139955551024671036160704857552357125834056168912696145700326196346177063434752166889190448285800609023122064275296222609367960418138903470106508520113344888748068845652660969965064909895248708613374298562127107879841471550459361027927542521442504407586229818713205414608610848972142944193268957834031656705461519679459458677829470365986585430333083666456855352546514824496087953458680959126898580536667444631842480003891802435087705886973265806270109811649544939396147336185699682562633009057200478368410226010851160973190808082563002171331519647098535453294305138328453425934170638259978375725902375815497196133676522705083090256684606370234954102373178950842141028119702787041966654699838331393293610865726535384378355453587922117019077682758373574874890540350782964537806179362163269817707083479651900854356370109676907706057503443220705831875742669286456697037278433061937257756505450112279040287213604386780640885836854592413497173055325341475714523413348219466825449845078055966525622128950005695527685983659218328032143946200275136013572015071920535447615800044476873112798599624515377926175655393367215954887262914565790068408781532689042835282369203381921352801775911227944833106068966630107692228577002308705016703515945241727355767035175444595768404481060317448420403744099636129719212737079937496196539872390594682744317778487510806886790033844068100997221977504165680809070076676664327114038556582514085358797932464783365803114814329877004362799544823650010774083427412450499929914284562030259175077991621104465925361556474817433533431422345939496199387021635112367111211575506018848003655055057344620916747370257423557308558159295408314327950600422273427884363457211511870618961280879340530557429960120727394474063524839103470262921142681380949747993359510801823650685758987043091705551244968086660706464358784754460498180672240938656306641982575516956414711700197450667207748137818148640666284419874769885922119022135075534757876812986136150465007259689980453293846399626063130175099044686535532330490783427721662955851042628026640485023979717070598704664442323504299114013619353229348991016772609085332969906865132425992977330045697480232407207595227410533388969691248705931217579287130299842408726788435888597368893721492724258804709337216800188404487434492902611101160367866362925306122403251796268196354648504624101182412965472251319200820091887592842294567341801015090490427030887311506124950882784679075380887904955890092518837002368856013604020097350392732190093063709347272192350983021141723418614646983470711085162300016937137561891463578283568671569172629554854451097768776643600343917476280133543175512219168796122859546455135607434878401788746366414144189197478893044288278064942756507697759732044046589589394928977391362931983941998915478273900505223979348153430877036102216831047283704171886739216440693972328793135251214771470985364674558952930256074811375136037250962644806169803857647128356486564039021088593990100064251519420609068011361683899691090569857783221555046511195940577583599389473236097281382591588826138409786291575069638840497925753462390501835884394017541298340454374369840181809497864098566167226060806645998284049904483845932954131328267596431474245630359172802252130333414567819396754006821751483682742889770097900763765058726433146729474355324048111687620252420806986237622087691447608235731136904651677391911908126391758139738994384317159242106786462136209481152322989360967279304687020119355059810768649407963612168486025932475410722563224663967997887264123229643614233387584025964278029426633180226641026623226008772941533639939628223393724597708295033714287997275398442425087916573854765772245535372722818208828837344748623097378599993958771192858337416442165379294038471769552728717944795874583827547621005586378945504787008784025526306300836193251080930368581862910777667302487722579403248789194387483688585990838171752924107559167724634701586172324165053543335676337366955110383670582382335219699072606943918564754159085904548522799250786392040961017842169034628368454611420208275943843626313092819541808141317744776833527860198683084954785213385296368364486521206757945993278510056388478789850427957289717879899481423266014276197760268794620861139059425807887455632506082613054849640466751546342068918716095452354483445148857861024213155866919572457899650004368163037214820981788288148761250109362639477569633715875888487163836607041910385993612243674315533178379584987254347434169181411311281873694441194422450076489519368670574201136358372454935974104239413088723954916181845002004978241602368292419408935215049403869299051840717059313394547406590582234920356735579185625288136859011806391715186231319593055439266099579952787717272715418713665718929612527518039793579131592284463318976971007490203917371768362239100660796450626053323567228274095156416922060694560938694048381743644196905629121959535201827298275003205929226155974415371980722120608902107499011950188479503953125886008516779342332341032166841957077832862547019110268818541741336967854611079881855088187831425536353335275828777958806645114347862985712113958318677284861460467952403230997752364266301057959971271662566214822972688691490469254903811275955367992316064273392982848202731873773994209891664488381892504743316436027006263155397360391827868990440944598931617154152044008104884024307452304887622249633087192274856113575949352866161811173162484620559606532545458656212208581286893335404892103479302074195750744264721516676387761871486767985196588371949598556123449961859445654688462262982677425695351889328632997916949755027601257257445270693306465346531024212883908765555090584658483660021076673223394261094994271293549114534358931895988986675933756948430215911622348866585704514531855874908965845314169933439006069808067629402837770794430113844776348765857759438932442512311033085480012297398028183780425045199485315492517643681377053302748188566302503416769388891034255004762283375303071706845066195867893586899467824353920870684426551216515383142292062650670136637000342593003219752504738550186071850656662321914086326843445189940486860284863874279063675179432760464383034942338618286907439996579403879474748786121810839096070283916378757455770988013597352229505393526165102706699344927053019538438175629102570875826672446523315804973670891331844055368606892052517612372852452925024539440363933649591001872000434835984999250567579535249869288726137216909810662660140390457737752773642984805234838178921796794949885106348552757687829556051592134067205801425516843802962471037803554905777672956371213889033822891193377259229113723238852604093054555676347835788932385378175425481036942114498510320306852057933266722446593900615203729338981001430494367214650050622743845539241770082327097518396394617437467157786023058251398608156078378402500782902732123450208514389580178564196972161688283645179570150925324539846763491570658549700868752916950460486472129531895126100304268588560143319249592874897937145042988626314342028071061403689937612721232448357151810472785885405188400636572430880289064199517317663426513119768158958061770015502958681043827910505079750126845741509304098289730820938389446661949373143074781684526034892095236390973001133320864407455213139195593646053535048906413994200485454550999944404452045983900173231541955183812097984917548408506443132515726205805909833155722030752849981845933286536920581997185794080209244833031264926414594923703449562632669688229349382101984479731479901028689636107485545042198709939141591000979457970748019882508273670430331665102193133568315384849880048825488161709603448755009494509383616143616081914990988966843391621662965814946614938837091017654126895128992565364837491690614467142356592373112614566375337616159828163274134974320532355284430584197078840996545704475346701566874024363459218307303535304089962227173220083609381030559090072629292243995908151847869773838648127404004816023231430250935282933861984157883833065745432496925339209272507572668412482919928859852378408137808810614804185796875837133312438704297107255478930390440826759102772709360834493091147163359472524015922591936882431121871314253318690679803215821796130784780734166653554534141645708421587922872085337549253211187643693725100284475907474527129590871626417637914795912301400045879631393340066707353264324091623317338580387067310417822856810862904661067057551082084371546345328609554340673242140184053366133319924901443026740355015822877699691098170083790929600649973569029341996767893017728707573205252286761632300720940548896174687073248790232383437042873985451869285533691993027484443202014899316433244827417684425724175731065913323308620663250457667963674901743275335716273983788710866425649321594244840055399882017956263171957631756994063266569742962799912204274941230749698288676610368680187318911154108914799590284468826553554801686169567286120100076001370103181071307754458881973682114617169349365914471741983528164721700566686350202870702564412274459084108038953204581948626876140464331033905962818761612993405437276343519587128536234893430093121700518177092961262405034273332823623377140094282687008673823412372649743452235554877321662301221424823876082653628460442728632147772785664247890358745924677669988298152723640224476592582324699129027360819345460392691661727268398002314693916541922629542167985030962917329387050194990985814866434294657446171383920990286718104088740654004918238024306573912056588367811523590863991449746415123246247381841602766704191795930981984140844488417679312455227460691139527090160647941508726349938751626685357004444622405385795288782296257841876462339265645233456015450015026813144433208235985753300458046474852227706041411090599784168344890542973715097388314442512483451388116721525760647554113999848375747767257893337103464426839791685969768037738789046738273468025671564753598786977538844849698605574281798385555039794420139988045513790849059904747950320093653821756605209444261791604633122457024728623115800637043046353541269364103832903750241818098889670076045730749218923137876125887874558737886575957146258634312819408877859226873956897502378547633594914974326274695321256344008259966880748296814586428395181391567717822542920904052754386041186101711714393904258980164999720187404961798990126493034720140862059157946134469990472591944453229394106836282790922649641774848037973055220498538893474487054448780133515978839654304063364450759358444077527106499001692778112409251806272010122062940218490460716904797019163398282676142938536085846453903798413277473647920138645854310557201229740612877286543399828614035489165907064335282521663888829153729022563229493275802851874624274908802124443421231027226797587932079374737187960791726027489285588792854366959335804645069786652320624277897168863130355328276991410765763050878159546895908890571254518893889687600712817355699766070657145340717064616197147501162417690538978033067867494322877827197197267163067911576007672882888075149650999488844291172103131855214453355226665280501948689229558774715507739143733910856952897568409268237577327128029328024944452439358078906554728805628257190362976062731148335842181555091731162940339917459375723737682384424815350118954077037882898053671005983074150167821614783226013142847432291616643699748503222948503762255540111921079525598188338403963407816558829894440841904404331768000263287561791143800949929686261389309329312228177420866777544197258813105540027067724185017791199601276578735885738740061334885391771477567396709103505026131353421532489101204397574154602647419777534730963873721033745511861110219139651057418306868278238303606097900486831896585676278779339329639364741735355388607840909696911893660387033083174759741667301686060389220742992822846835782143067639954208369559324516268173126481308042479462494680204822189023666202916250087694293658365789313181702470836482707417823060791838596900555892798062775137115632378830549809487554238871928958769233246582004262109572980544151073229348969868147096622732155615580668429295962849361345269524238997907526243477401056746426281555557141752049086429692532327005676776602695580537544097294305895396043841846938887742755415105774400601845146522681941863105283578705495357795369488228579474963505695073764283718118288581613088019722667967319788932365313614357144975744872514723296103494370275002339305336536658127430616894341292244671926063123392617681836650972446545525019959717267422068418130086078926180458312802539801278402025147610973341501697014048135048226887352170586484661923633326093758628501491631595886677574939090202290946594168229936683315644450210030442162728220246096974073929589815556982845660249427830199750637278983501900007250512151367684591387559405761088218972107837803761052907317925155128475826940579441755967142092913075504306162504157877406341814312550204259652131445840943030193514074368469328243578737741035954757708979384670348601443530437637647585692747757170701268925444112835943481241433095784479522371693324508311771276713713439469630930363077304853365585888438365143246926357096292770404298969104554994507814674453631462251069396684708969138548488728708999655056843135248139814307322533568795363817308883885910906997175255359052397370971487986669937493063939407445644388717862667983170813423225657950469132221123689448534920233055550517627452974891047900264410355135906340718566167734706490333775098970195843609813255392456499132753386321768720674429314058482318537612626040495174367495097485415554875284983526241929430448514923281460186174598623546404447410257944797068201099083771738066438693858581693362329272582692960574595975508260725610385106215477876831147516201243063810976770133605896044667518213614442624809934564240597974687331772451532223770469448060345961524078284552335263756447508564683829719154256412507675743925796618613991971367465268361846475271318316375370723521297142261965425276546468763035189377724322297639658641575543731678662339067850830489478807372512731394420150604876248603753900677773714395010965148460187426574075059109768961379564029725647735007282568544169457051075610944651222015977434864404866384175313941243060894582730443154376096772483619538702222870045612387967355086970411333888433840608314111393490700787595850553517277728678098410187472206047620182472585599340581149293445774401633049864247593108155060860596823469456011754943373837505552155596215099539117989481384801218552233205568084486089601049227564333625141408199074928024603675763697089724883810217656813853209243780454361561983109777953584682643861781605742267231571164067542494699579348517232811294823153712875585344764803930424939652555500303022645688909310841985042751807508111673310585495151119906006728759661608208631451734450733889040298703511451943547723551763770272149799994083619225903141143016633289716478276857213718836300121633213350878727212031111193049497852138861718233211061531195192948828141464269605136577746894213726441116296876753477840583207634250970965826982173619708404709846029197372302374769958287177166237381962831617837693578475580394035152217851615802755097976237963080486237112993554487787698204707427969174047623519227750062864053033464976563230288272399096994881512022608565937659930994214004234259148527096235083899499601546081505663631650321802353182516056646558656256691575325075664438076247971039287192370142174972676498629117157787540051394951341668406071586103940355952024794978403846925690925325403408044745810384759581754296332694378884000584167424636037623718500918460373115549402547600078250574576398450415915706060311396608516249909658205813931315946347143097326155512875229162430379361392427045506219929421194297494429122836471604795282520996309234896554436186689548418464067274467759514657020284721289664878839701456410000359088077495149444684574589776589640685132053950762713019439611794230144905872290387092710960318816335265295053726709141205408828996687827256440850367938798010973850895487315971870647166238496659836001563205122212964140420323015646463455785586040267455277681699287714659556009984096138632575986278305625640131607576460017942937974547933516100663726014207615776032915080348768517478284501630786960885246144229094935439457772034211114633527223355992797731963063905480220932223277216030866650448756871685454970242153463192843309605660012675449082485389966614511796754542542735124114784372780986165240755500777630374565260184635182119031974033288339686516432799315081889666355255369279654803312382515414799454821991716843834408123011291442718279177290623779547184794415234442175151261859046610298851304882625448422719352456293186346666533423022307636940697283162694563712823089138254104798894349367874886965855346534706536696947898976766874514142213893287322634912561252061419440179352000364871563388252377820732735831462871292572129542563862259149676895298577167930193393937809690405005612131105101009565178048696520659578107290466057715400033405219164576861728098563940620467942587611498632260240166569220492547716351945989987842423366470786595533050296230996660673596110796550516790689477405053319803440078690525973201797965406106570402521290058050230251010421627477113548272930185649181917577102306453443596876101402475586734122780193741473066702739817306030129811482193802623532802121924855877762641805119592494466414024366595623996344542246775808158222263541391744551351660506761252896180896391438979791814736114091181470844105413208658770893074471376250475688094928587153225992674363684839551134531250721282907337912897169390452144361089207419833370610754913652113436058103471406480785676101545614362271895237725986834943431765819186785642221292245883716794400473715961957706734169090851366574750563960574900239997842054744947419351276292497640291886240355574385800705908504209684658174569449357175026606024055660239034186141811970641728255542257111166483569207826657441670671341917968873592162286713511324555962563387847258971272937080399829182417738268945319747058302865398997449135815971835515645376270221876812728775256677285057388259728349379123681156209935080555198713297508881934837081088712197249391396869617420463269487545411177903413107747164661046340577968625327215561185462391172214817562434490904389036240910709121710960633837678271738719743437690893567733222877474646328187112495089423113320455267323040758963644979913959265287492914371239695739265833392226628892631643390120571213407534659964302611453969582741788460366873511009169279523354551128400629080023013417429081734178778664076059129633768133657496600447083943905367456116582589050022454690402437310336805839984088136347193994100674139170451198084381978889045098215113662989920432194239295297764858097019287807267382849813876979454720855927641975050100765736934046222961918349896249988791743163539838666022654927015112305518897233818483023007938433827718570339929738165533111968893677229343270115896765918704296286025317627865217556904737945167372448409049883824962990326662401339656180001641569435340677504806451903151451436972639041527094548262654734745831760550651412371745332293203416269040636883880625560985868166174141625323088810027823468572046334649451214868073649196021031380978491910453249221974717300735473190018385652889394953592304872474652032597199177321071862224879776697747199728367281291637391173648059671227922636971852703672016579688419517950786094055027705014519031758585373151313482765508547960039205798493835549712069243561804931100201035552186563996130774179447584905555317997702786176836100751736481761835656579943353244304450042855298015733406021295410200558810194986556846496301306949674082659955790889690145825515204790614508541174692061469769805479222429183161137527243140040196440978094512338487421402361280150361794229247549792767127815701037184489206463359356148052376869750691182786695712954479954424221804277093793991699521256326103392690137560397916318701865472065070481912641909407163957601681933809316119900922702911970497503843361351843940189145546516102258599429051880220956325664122531465146204848078488881139872090513306011550254918768743621886022011621157584954301002432237855050592667821866170825290996641895713200641563564034642493635282038855480584001010380718128084141964136223162514755293590394634115450560673483365524427793646440966444546803268879631625931067822953869533064885214296989503174664462339568414036556857287190596651537319054302993022608061380983737966911706107629923895763405922486789811228334810217595125542425147992502897401332454777552386248353649799540848454846516998610201131645545281279282255337696205745355855636026521975708551349997998319706899364743232632772533515777151254212264550301872785653769531812777314726320444286748103613509912364469207221776534330469418456190448830556494265282220990463412078096119580181672996407537854799257219945690053251751931048278682221643758639118027642494486661835760588877103986287338258457044004458418996126073287010800820581793692558481056187746881366246069781481719666860601225100521926236720188598119530884757955552783853829741393831726424014759769910694664782630438094357098525257469899420190737756661665252537521415341879377108515980545860303410899549126361866027117986084656980546523560812349276897167605436230554961925283179003230924460854334259005982927970807270241304286109577711425947313144516472218111473471821562702040373508670166958342748298621457787897539335118132278662048544225504633379149274743506036720769761264580567413359196688681743377104357530723893615525319557945117755027874637283173862551983670714966872854620471679967119203643890559055858013560462134252893485092574618645351714853091512031190453173240912416204852745980562106431418146596805194972649606229348179269307971820148634258934910195055522040518977565517122558766799114747557663392288917498762440724278672627786958640428651107707725101590963463821930901792326266298120941017689435416621280116415863937798881467095638166266144202107697571518160833906399211261559237279095612138124266498641098990633414680916996476106648920449807741928435894041804675503780255939220870505225506778790862141504785252725533883751519934912009007340708505290923558693024315247555733436793514261923454625046115275907215462546027364789306290229586659369177794163625591091520905640387946695339281212898441293919083468503393151378076836974632145400715121454921937154891501983904429307968036592080321864314695668626159083170738400271878828533689353857718356704169031458749982309495143659091200204565480820715114304101659961601115929488053009164983514779645986702725478736132133420098637481036537258207295961070550136626719086358157785228469291583924684408205657255661109204494583346210162322730309726271674627274277091752821646345341707546358294008256209214072216334296095303422739032575116714033282558456153850028277328521232547097884834012775939415392978107160819166088787000277788564737278391321650920764723017856177304416914133280441285069164058861068079366299543222410313102011685098880699983262060924790353495594937045727004244392772468206776105131685003264484016863852599796399355456463493552027171246948891313621917052618936196123985698263909051286500194953652686694500356917754075190373834540160478738616881718973872479440226139551998341151615065236775849074494659032072145510859587664039551575329098739195761770059033311211213282740964096628666323058332990649516128547414629844405058950984178348727010976423888759534460572795599109692983106625459109680599267336163802660491420526933125604042640529038411713191407794765740211269033904003750477380834372764404232552585013428016089008303329534041343079188709701697559651340409794213116486839003382008364393152627476114265355730750265743615625086205255754599677291528321257515219392689772990349400792338379621131107220711130812818711020251992725786632309447749926455701985773168805617033773161737719116586790696021696529370335808298679769282747405882751328372798482860582159677653843547538962690964973811986968348257221275450967119430835399018368358928659905646040046104657580441225649298739375708496718694638141322004842026043453655052372504651801953965463011719001520297931090864554326617215339508280325710371375048192350134096497555016944581258072894046802664704892366809514355381871176141562245148618873991989419131608554360782056256007526277155947719333981612696709769555027157701958258802426254763958571371857791978710490610302846365871597918084089771300457796375418763825312165891466082755227799076630019289860279505431321979569638892394875552524228674585689595398179412729523248469199777265180831154166769535847858670578155825171438769575304432638846849112024166893711114050374287298210091899330905399611078376108021492825328392089067932219829315786823549825310953526440969183294813141374996288396555721115277796992990580789239770220402207586994627515490144666883966849827996725139108794061574586417243041930192335633200624699537698162427132382801395470854575441112031335596434391869967446330026331645399368711487873850696608714458307671505628291090780164516033887345384572609348021611469790607189859379365728450970004146639955422874003022527331776263260408203639588623904280559225048133600864324855746564550068889185901864631188560716883290122666812012840541042969234321933259069360766927280611970979579618231162811650988231973910740584479626741627081918929754954926231277852079887963416280053176142434918040210868845835554763326472745876422740597406072717470103028886693666255051815368998315881416762272254245168800626643441840696937801039368538428820064991009325148182516262931294553671216306369453826882956193626361967566077914780846887108185165595223317575902268319064352325975641649125204678416694231608748228086082227444185971217617030987359410089830730936212817293426632400045798848828619790848618444760569164764189202445689243852474409303499666507938759785070027909493447446487756252764516300124637582809628922555355144119763833452245141571210934973829803645642136425213924974593525377116282115490771819685584599982349559491542679065244384467070689928556618241196331104830523941840650314095299575839660782796630220053960362900796435640800167492631238146778271695835755900790819865821292078043392198836199620011484558909661126099694411137935564057192012050800510583704591516446962978041392140920647150238151735753067185972607058125710890718167968235924551564851958934682260115430427861602173128189088124964543396632680585929319579862440841218447488985315064602413737849844116401393923048243226114831759924731913056967037121070988729886322594675436117202125090131721879961200393721380475795429257448101007067322232577060588168790514119866180086321054078788955026970998295370146410807261208825027206410534600463368265994258974847980461309736801383842742899837186190532879484590579945815798507392262455064719095945423007222672826364183274350290028813397800127638360894166332437663318334819783013370056772234639053330886818503965064567166743230303682205840416225606225737576690231328268518579922827013741912186030042515321094416132778158262959624273003201060229827482365568389879291446628860661780661678111461571730058680219776495665624763637981912396944045922869033837897313852095558776477543651916209455883451862313341217739609956557592583764004898959245775858773852931762836622503996703579220509485168660863480780690564578660361922437652162382591869040456328657656446434818704301473478049296123856488997435356916954810826604700475270570740517967109716352885887061251392484131497781058521466692947388590803679412821691873582724988173215355716451008254315245219923235535502478622375798710901916258080732117198725546336109821788807428347409062938948471538021616657717244144356676646494033258065933796584048190297398574678558981837205775002045087641438113984143829187657927401459288255640313578743954119231556422832403993065591509020030049016878632116740517004634199338812214170767781808274854090737766540234854010281369081689848335628537022332913855265895403351923667743122044121273030249389661062247447953721766218034556768389960604442294564216043856373188081094895835735388236483166877119965894336756500858411090422801849745739477837745183270234483720062069550227263585640629539163702788493173808408134542086325833403993472649963466537314055461391694430360322245677323326060532503992810080601802646194326434551181194889258516389970154726197705350975900563915627189712937315912121738402551846019326556526371073592527627835259348388168348632355293080838487480596985892371103964458661988480434453772740084175893565832033059519605660769538475273254110621277232337264800562250505913752712247760639383011741345527443004707715757565299310308707572491332694135635516207488721477813151656029342285158605869147409340602188574967260380723935047204834923355389475902092393570591870725643525761534407819623021149966444532186563032199433159944574696744454129142617687608192005553700737782828934336130113976716043667883464215227098196902854494307921229060871387905263141753378846625688437477136639156080003162721733257723624403782980720500428049224677289938176499266550058192121374570141045507517537028861761004758716234352427684369729221559916553122535036959140570254102249567621727055324152323255572930303815398110632746599315915308740245219947959252487944349019595478460354130995728932564798386543540734273733436389918980027521016674759646002213576755459813911273139635939313987020493714814944699114582798986166137983414600390070462970666294949001990876054985958942990167186345478896099258923393731758646683573854089047313101291731380199867715225284381069792970011239993279517585019576763290066127814582537189781233314754786044074435127096065110069276973400688802182869320969464398101959807953568240789348820506720230204491113090629002254212163682491291856688712773544654676899849573759201366357520801046296279863230390603859301089828752247376634961376479884133050149677733943775497660559599124120893520957919096982876917820819777062668282806253166288983029404527754196548456208085300468824246199330720397422969569392914320575869541253152867206272510719812684952906051165675981416158959380582098921598795728289782058288351814962275511248746118108494437253898656726004624646841752737618813151577006099251566177567793927060813444106195036024696577564534186208155113496562906498640643691303879795168881390056820569618321445833031304203794267815693161214109297070008195307397558544019050663633529401074785242234593020460821190342157179970419856590570301022803925873710161094560921498984643883454319002278051751561782923316097436419377088705691622828579817544934208350485874507783217374459168263676970829459332484090069060158306457937491384648182039720610975986919738467720210035147688000847468262414552376571365792177679845060624471715272173821372954098623707277208131383898579950114110924825598370810769260018797424934067522807457663179079757941099777339887747244984412761854259668794706129460704655321128808345021298928029668743125424788833322752742519609681027094473712688967862312231198448639713321946092709209009687017473781934582857634639277267292622052614545298450655110299541988388871873422558430034545887011397000261697644017781305653452624542080017141212642232121771508131442314071863014556892922069489381085290339382230024169435872547587224220618680223770399813019180361631522824237296421291728755388158326502810046421193840322573569704366262974892151712228061683073265692701651102491086419981456727094539452557556783266900029922114427631147818389990429895291411163332137449223856629529943194082330878741038675242052478368361574201807771332434793712371378467135300294845011793617822187637159984884353161927016935420075000817899937734899678513562856851899936058564007588038441754337954088870715135407554249883096911488540295449710041126776931290092329825359554135173869705835019975029601223668481951238281351824699176811170017381228418877471670146045876911065128350635181727604137166789359903230094205737845074383429169033817925849479342253273796391239804084145789009566073962014178773902110786514827260079158662541291494059411898011024648497006856188816350407094749933258008155389553512049500586573186830378854502753766737203928525029126206139572282334890486250160519702533975707653712597893949141648640558554219155576077187554946775521203005199885232920012168608121978459202783556883106306732809019901375467945415031830519203263257567417505720771900921530715717740384220303857055376513478777594746958104439187016166635417133590652784435397379751920422418790537154841445908210429820722130140431505907717174409412506747141144253467299545803800620086639033097072542663753195794449037639979871506933656591037589962905792768462754716653966803128492009375996578942286803270724090819944624307955337279117416253594216411676828319918249770559488399637632298458610197454050521640012889826137072878617481986623778340353378669586536321951508974444635725041057361632081500265840615286678237336142681829658690555738752377612654219585604580747598541982848983149193868477781773065847115302464177708744811461045608649140862987914100926464494986459258740792304873524205201758819896916955780264495897285720876933796645945299573322552902038938244557523451812484987878051234819502955554229575953104453875014814624124772690101277356150129823748619807114909336050668740020595022674503008546850748254445334547463501792394536276498590950342421214602302667117287486286524561433789182996184414018137470506032905363578063937324420688042921145073852384379078498274587572359566313527005983939210221664820344591694355432819472758415685736432175030474520713302277171944644047375693483159052282693256934567569127138912426819508142198712519865847262498989715392765154075427555961844777420954713130985745927002791452223077257693596882435176014892946107281791867327380995923277731571306305249838770231694280989619503204028234650257414358995478904610833658451412855433759759431970140128808427160256341068797758503116608262115258084616830338816037449548424881121808296124642144888448723876095251564238228155628841226673026303746336886853996279323930839813417432948878253627161258570019376000852451574757501162877690625739806326224323358214826897236271263830693793111534043871755918363737979680400533935652335161513559332334205199410731749833400735449375832830262674782967589568493248588032866848069947752031254784654699399976218707126870762901442554108969448097791988948980759420889264629548653147175989824323847888205163513681683041334873232392951997326069116486551878828575086550531004605660367352684071334307662510311823639054442640202676976422690609797672032628510886616918297173448563059919544463991974507355128132699346730126284892187506658375262730953569102176824787830388335791438857209754286972180610999513426531595220096488299608325813829648528608204295226798823024529969540363898959049885783625728739356322594265180904267142644981278627380849225258366840734967951269637407544566203480179856751466053457804063823650545638575362445409685832095287669038680337481246325523915956064295672527458411925566238821207545507865461969204138009777597703476441213736290658318438030766492123333515172335899968954829309709353630950812064703298250096063434668060194322563773226766376734595785914669456646270364679977721683738837581046690545168748065244457243341377829963562248388552529516077177298613664467378846398216849703440772196103991962521489717225287574293298219834984620392123467270379083529373874912073748789488619325299697348732739156545201038404540315336660851056689300743385886475093928720507917481752606112013788080355782240076242863388620377724206946260892734629125902142208670232959780346663789454468428794461414476949590054491763405905578584147281378288632947257828640477086571366232971352560911310851713883356612794691262401003569521555523342714047238877323492616965051319420737400303036531425652993846024121928765593813189829599164079427753932617971112345373372384993558486115853120263081630480040751977984242647339907641689281423181494991191017905091156973130083575582893920303897761084625496064637551404843175909705478919374802295199426584862775617500398587735324568635120457037700524219724193100583153379288252973010743567442124478835604789024284269177639598972332319510430562868458536527083031951470625303998026280242980297622771996373249647352229618203828260596499119813588949218882153063198150104512395991676879842087684076129710605737550634943676914979808779792766154065042913863728871997402605973362161057415480042268667680781899788798472248059293143440595404984955003177023845006230203771284565711316516642418945300699384140983469611556088099247979630889548999109002094961201135997355469248434002611869763368193056207194587206458260389085124495938884256239639679109834459748050406334863427324609695927176641200311011298204435779190964962072363299069023417822840959162091933104964255118208185954579068171464886654586947407153859276887205499375436692754788361055563410986876907527224703070912020278874690968702849867678134703587868255917408574430114959779472251326301182054554249684433997813639680547268675403689150235023115478876921326680795944927188337021203587858444612101414811868427360852182025408951647378878738125602451830899286924445936411658124974000220514785943955025578004459970492138821929220668658237166535703004671310926359175039440464345366617349372286872502147696235855329808477202895783312556553771457484683081976842962058742477004921562421067088924060844442935329370503619278026753474757206655407224203293953755866176387298944938876321375888368258959838513183356044923985419936574886917554480300148195109850030905097788020058889140455714329353605771549435005966115522901274422468030029666437637518735024266269115435859652426992746587698817756251998718603560924814500594160264411471146647646827424076207134304893938743951181292987869359849500103497932233655897555558292096454020716418849087739971609468194107865475242221316736546588104243656164178419682411076037034746556021613889018820022805020223670121493117953570616365372268159960340489627607011027929622860225715713093050291189404973911073579879137367910376809392139869804676041815319903465705646863054713146428469409358823561305353787848028582298552680044068094237937580249100249013835453144292280455442678985796269237325547576298432461572252418924630568466107531314402892129079897773224118808167707835657602281073992626116404630639076009407574121706599421621928438948898199229315918936831872534854283920007140635258630808371830343295751482142743395473679145069121752390079326136383967377495062350535715859458543356268615254951521419886702739773169585281721427482455957791276186901089955393735234260642099533049214499887925093059660262123349741503823787235466150096845696175001042002026787226397309187726450856559218770098313691348430667812564211364603328566029879864206365419430762486970585981878830542549558883965790370353689626880648213150503942314703207355973814347275251350437621872139350875570675048738903575020590268471098165553140937363926002220473892676892331253227486039576413248357227845845513495561829328351366048101339866879419592968242903710193474675352195721137957550086892619694394861723873374145692459619926480964259892008094507014152117247324886029305110850157637207981396590673951263091397245386043097585180458210623254377258442743497540218331189083913293755381758524361328727422058237536586293132842086589993455762495827536046923328132226162490910840818844810033479085896401016499411031300127495199434770576911018723146046718400600925588728674076100950044246111577845453310040403598078358047071889380181057906418161703020594434652102045770912131256660632198073855375342038777668613558515736995327310203163705205684083125875122231011176989135750916840180308739906849912393142509921459400121483842710620915475938033398347732495952449106723663379796671670936450563657567085100532138721206656444880028991118732470437601648923094407056302446614331758918155480616941854785694993741409656874249422412357911598078455922109211460702642601671655076645801350231834611754273890810858301033616023789643218014419011208355650132651284328701255396795781475015358156390790987501633769487257753805529073116282090735391859267387286538540820537697742377463536010848322647370640807963787538111317708380954531841488296176851759090683715550483032205342855683952145422561361035042865875699996320438688961417624435873845756133152260431815163721579124206059407855127303262657356259128474376860091027524268662122871338114060991317179488769652727270338847422392871345463170443982380075853044608523435760755797835931985692982261947879765477386754667009687573125862211550865132796901392855368439584823280325953253701852691807522010539743957639775325162522127648976905915735719722441446655305054614796384803033957998950591156680481851807587075612245198250981356346058457940310489485070384192805046043139857483256161765660584952648366816727712804517169384311562071807630564486689288414393528928683616883472189672145563162157927772215527315721128102841708154486968603127014434393808504573697823709307542645879838034490477536861620835527868989692009307356755891212342579922984326787587882065368986925825641002174641853869508061021101604490429630692021621324964712934577623251798935021557937439443174513862173577925533356509820351548326962069889447448219298260235978477229697818901775996502718305191041524531900755908344739844211576239761452228011992816828196818088405907986757315577018779054149527893813091569231464628920642139084264270320795442459521394938207090904406489801985258061820546656700380269086345844867019907261963931699063281805036487997626484164627355838275620016857664225332543988889729961644036800706637105952369519013957786884454396711417734333246919270848092866224444014243231979307463158306954674388241197605132893077056648459069109028240893227355345174495328837802153039514301848793092616725703053604731022382300943261539141934209535620238879669907159385550564826908655210490806625630246691346856834594565423148264380281249614417854698991558125358963371762117918641460715816888418446841840907287757668476877364556107609580021735953433871066212664962481249708980670812802970790117574141680122325529814913043720062634773972799652476767959389849896940186848547890029136051944158349317662506000265222591996787624952467109006875536445396975545952537410864308203354236344673188952214260150962214761850840106320451089623290125455191271819768284836835998773671595558549404118319629623274507113894915581960017243131253751275914395623111804978355071011449300792129701858663378375182290259647298387484431921945934987518126766693462390321448086120232436682966446449268143907568100092415402886100812005063703663473315597217733592606334621983803613533047358304174142638323282944632213703283585768144315766001125416377136528808184008444656641151615941967317846985108354359514927321880624479815813485009267555344470008477464578213901261793524452887123555779269465002670749771105118296902625092420590261023662669845407517262672466402787452208987254209400180360176857559169053828504722134964477076743033236285494568032528535706166905276490592761104033303540597658821036815413317157387060695856810684080414522376119392152676693666831501165107843840267926775767040315266555676767483495575459320107648261223543913839605826846642469113897965015514014367007737345179299273979533688465393307592034509293707906980275713384194496269930147311970447467399339376273500105111257585148207976334945657402008642578291932288320390991800838283447651779815433959093062390860512218018305988878883682565928765185575184595279322712934044016185353993077845709164737410202864689278394550655816056347449117414891008071413768601373158837273244508805876965168591413069180509451615365392563347340423441159363546245243997755865143001261945384441910471119042829359604208715374639587207319746536506524307975455996622076225553385341632505311350346779209336880036765743503003326779030522297577990176093825567646337709222147387590371779272806804161512970390551764338821560864390966872398364448654234613318510911372763564475856897431473651274812725553887460515963788915113696675132055415572796556837572079153407826223466777388328819068654185341439274002718785693135561590153172965664790591081032126566087438995286965632982132178406222216382859335663752958162203643809617261125992001688217144083316234461582239577680864964217158642123947898947819794966439415807748110385393924997968307276502079850786003892346838023920189137253513575169582470153351016767052461456855771429931907042062016562861335989931633502149439672023493319404488072501300352423473410655873160217036822279374944334480377573800155125433709296335914079669492897966280810927131491148070686172952526572512611824865324444454218834021081835169985828447689364321799053736344804818007361494330943134109552646556198558387858506781482479101511402610076799001326252507625426340410898261369045315971699576494152307237314150578264406456902097217455247658291737395580454080154445190700688784567509707930436311500943452299606055642535713184731179939445241226581370283306558389636784539941983089182971287813958131749659378458748325143684596914717752389779868736548806014517249980625206892984718425478544272133697089984352840616669813453365372216888780431920226664496949930007666224419585275746213487294353323596293856655844537622553050565727959117325442023061760455777571515243829690432046443857552428909396647658930941679777251430561345592835825025769061782623295806375329466913399599338971774333881796642485459541887454211316923776434385375296946463834727855637101073499330178470086849306089946124285454512607055851181086175326162619087268525710402618753567903557851791445606180844567155305417259667412145773303172185863477297231858666781487880321973177597441450625657404311423995737670541709363069986107588104415206613312574396914229279277271616599824872151747366704976451246964147866272267567308916922953209087644158478596477898689247983827520194136600712532222497369421536061154982824766970032389418231686819389154717003851913278759072994434240064389033826889428715059245367920167717784490563449948510986386869692184296839032223079338983084836391218028870281880917752474761013011464094233748201214329831471176841064497138531596320549701457532448424040688347460891405551775754082172194972720004786792097905308558658080192324957174157390378432032033076707341123354123610744891324726479817850766730564363316399310363943998565004318925777363533870049825440552348250749212147499185281378326404171835555483222234303408545530593624299424727008682598045059529602962457572614501538302615552411620811342900326232802248384968046065043222346723948725215588322048204656485801453711597115013826387939304987663349883086350240798235677116390517242031530032765817129003306415697837475615962452544989424092733213196024530816333429712667977622189095883922691626503089618490235884265942605520895916182250880127393045050911696661997896888309594903994613673100028157754945662423829177358689226021405568679294296906609668039368063641576033183659283293053626449950735739375318800847849385559622563981571000771127277276000198062113189287404695843727630527068698833539195237626653939595523047171796189269002858948651078429958355725654775385781922163914572965602623237559227915255916436883935047566824481562814372704775704157423368793172948358060170325975782270909556867390245624701057867697980014616796748174913493906341890427790599138764798559872302223032401443674127631077274909326644082639358849301909154022351201165972816363439489906089549595006026042483574979909366379031373610282011089469683918642541114186972812347883323845493942346096242156971372665841206048975594350183855339471050228302326675963525623905786171069687024924654097891727075061219463217416845848418495620614534024889031211231798020244591711381024558147133231521301638694549106447427110091946383031420549729509331041013474648681622536183154215635097751546021347133716869357602677186869238498555256742822416118381246638367394711085889846321788611237085151269164142023702796340612211412376397299519709164216059184414923656632042834513354828877051469988781654974808886300573267173313393533589201438019877990042447001535775503626849091748610476957385547688536483111842072080708830306868519351545688618581705409536569142141834814920920038198995544779610273836825220314530149422932206183041858784172578418171057188621938674874714932936537873017656186497090916646587788401523053601178474712356457808266752926937888345649323659594622468135025994213053941272339493849069105339147585189950054136567825168155591772302581148060719567788475479184144235541799533290160591605581204748627680878126263312625100372569869780127035097276095372076949170485273032529386197738806397933028381296076594700261957545616142609820126236777987516707034802446878674255579241577459343023908494566999944218595022067452531451077528999414912927803531844422843685569386016114872799584787556241944135090013518823211140442117264676770353396920653104841793665731750930606778401429520501005822505623536967431818443938589692300061618368127231679279288515755541421583851272501287630195754152873395755844281963048759848073495407354611704902766734334500456793366969726108265969422646479645885601094869395575775662905533479370669686325755719338700170634956331079701993096248466829816534837779725474415447137947609949588414759003965602117211925699086710865022258563466656225453088087948856341198631476523059199294014621812368456706608330392390141319864783784517258258552789834315871846047405547555092153488098473979477008968431982879929533465986561165961789032754065457017403317293213069212028302959888765199136238500950364715307489955444490204870949259464084833735105979479969312532867253495697054506150483693973577935562911201934487104670787547031396662583433268310543546695088372483459893327511600102166855334448246607028833693844391231654565107527812234726624116390978740574108061884487382191933271599256879731056652837360709272284635227250600899029217137177548717313827981143077103163946674338022708003088165861302240437903161880243806335071491851537424771207945052891108194322395234400119807857020997262975237646932898298436657481087364593272851401717188982340993366409711101468206583816370974648555143679426142570144487963713789395394862856525207848111220942292104096024874164104770761223206200441034503114761778368987242311603497719048186262608978576284106412306886026042168684429795619595716694844363357718169454139245955901384712235511908609442753514553887796551034610113472306808362826103000715440626676500693084303371364421559761979767294491614057624042570589707215718453611537223823501976662187238588861553059084449380238033290175044591466916800255704051767463997627694297846560375110569735218352238151976233582493188459377145596844650339867325500986827584787321155372923789177131368173201669961304781638411607596766279050338633508833624037306731732867958396608327827245600174135258995273799925339011385841708286365686122167418480860875628440821459105249028465146200898338390479985069019609942609694211620151333892358981318827935141222163574956023281121044579721245529939572589874855673589738352946033162131256795070096431343315098864935513159679165822696875350213406564670361523364858843455433093497127166037971697831059042902919311043105289623473306349804376157135224159775955150742467522968969618834062497613118130966690011283572274189359087456091338150760048749702424238877150496859922688294129166774388836377615122222437843482815652835075724306056264078102368500976057561833085353894931380029486618743952029976224635033178910349801306950206292768309569937533122187052902560358732951944081035491282397461572963094533160154004246820957128595294712986982141688343766673122104773033341834317244056058394491520559120569644659886185333175268667353581837966299703182234881481930693414578843161482614032026656180096105251849349897905891558921977033257497627279136878009508508832888651782857917954393185969621776322942572970992133136013927625522798630288969371318537110447953166690162758377822110666519518190420399241088732612845271325793662310057393750080864994481517524270943193955281415116442877860737356545202217888844505766774231661431097667651504907712508553227314923922223193031995040649722963833362111411539966456755310434305645740529891364776477723894098051245074200805115415515868479412476887060888410186912661039360000313371907220844344897217924507358559303430922875746085499297109251610088408541934861892147116271103781496234850691161568138999417813063783692525328124251049639022375897078640970469669416277347261371264905406644670539850357509918607924566499622306498090763884775618724177415498082659038145441512141110466847974397785789196186551080773207506230857706124699969522443451178151544955631238662669969848117252640176424936175840085928993866193054410998612805474603269646092397338971582860955647267671416579132035873955513768707487712782312261700348450335637468041093925416829853762362413830280989832165538462485008823045614472152207149083674130999776836823807143520809367268851539600884755960615932673798997287047274956212027617318417358956918135678673737986235313494910964863229936438314830654087322405384802417906389038833682863110542876850115113542854187715268446842574370682130358279019437725056814333825681877065550368041560075754271448510586799372465822926633900464007472375422374781569587799606041112070924126427829445955436091312334256585040827009496699050237368732374778148682294062837697665754881922169393800293047333566321603425406173127297430058517760647136370964131567033980023699291100059389011863085326242061685782071386100086930084187229049586461809970100234068060453419172425193782017255434227864619221122931618604174111173398101552132326445978602864047127952496473271301539688641800615911356606623473266591606378518032487257086679600295759411039822957817087310838418113286368818131649108140890156329894607435525497129577167050647008748145466405619331479989020278506234766580948847621092758714720155419259797921546349651898328698748662642559067757572827146293017372096333357311758435802936171513220163669442040104148038418858346450085950863203345796074307193973634292616152781626086303346208940612939456409455254261194199928268103928522261342697069154493382421503354366723624563068756872214965963185885625084418746959938671971663794083449825732490520449656910531294222902325401779759790295054382458883415876864354029778379544881985873437537671746706152969972937792266649658875605397244149976375819035811985456656225705059979575971200852238707435988553736387292712150801000969972863832004730940221197175103538635574701569443376773349785647041688522738995112847357267096625689197285410665444035635497767697040654083085943636086265328952114662915236543916679207031348937180113109161970605701350247983139741808287584811997148017367495216345254679906268695184235378783493015060356475972360982193944050744743316519761539364705357701886990631981250498556579383702981803873839158836339866154844800796090362204359294628421929697897855517980502209359544057871732251787379798403109908542340330512214226733684341729974734679412041931004636794761375985637156741636134518481535118245334650543825196131463983208112149427498235984921421973134166453125992597855453853791347069421220339837824203184436160813929471330239014061284703049818179543284475770000539016572767117114943052888930031910383291863289438588102417011375382003684602443710529226029770432817030721708972184206455537419030624113341531986713660108217606408197718509947716222787467973165899158479125506496020893409184428212591838951341016364776590964322862366190733544988857215117904384549549582065095336485623643144863133761278904782033719667867730836175780201268855304149953168499870034945489719154202082545525340801663194249486159480215737272973126384408053946582688378075754591636631010806834980233451660260321051483533549084149717629712507095679926303355090466048930874452753129648992346920533318900608067593148674387247388910672093601921805019976974927533810008581836688933463171156032746950635679390645339655404239420618059893444591175177681661960326880549145817390392958479182641522995195981253549402574277660309486994140222246590443385359590709410601500106700281341970480365423331766065862334826051927441097430640436717208263695868288736590352805595490960878066471894170858884351763077498329521625598778786360104855414634036758203994758322040186085802415509676282978718748945164507212048652288234577604486138638681489693794497321912262514621759897470843753693622213004545083051774902398735517788604935522362242421412701826425062386402729994561485421182451229090002200790214189049800384689836449202743233323471006526436739061384393410251104447783774387614092090482774048004592431051069634150106200860517056000567697022169179852047889292473295669256798780875722825615100085593654955393861353623760498611354970064608626894084692675005029671159326550927677668214157437786649482539292074207816555266441560649421135088121112521667280367758903823690436437105545534597853334302850790333171333539727501813869219935943546954517351588767340379245979140979046922153125132969130292090241567092840056461270867973668467677991879549431230303151583446503369442485051167348342116085737030446840220281779535101210178262345042271636856491844425344894840002158442985473923943019716460006014725868433497660313849796774023683228727173841962430952711071360390345684213934418662870593854240585971256608396609371770353298811175795944547677767551373336031381065009842962357588730793795827191533319140282244628498785380029341454757011560365689287721185083134189688677575535179583339908898678330847518807345234075266901235612662570747509160333171904343008795806443695715961810069299403404435696127869116657555872045629287422367494793049255374523199659821982880216003809610185514622219299651441542453064751743440989841364125718741774077238942937561410146386551454019979162672306896745478548393488636391881621729671856423766527435768112501589907854621827015026968427492051423674557278833981421925230121740104042168673349337599913024643933079744340106120249763655815448728582902049969769160266334615849711631669762963540133497892739368595505672394409751555823010608880606275147999357598063556660731208756244757358343833406118375393247118932653158312693041544380365031937224262324018938660129088640407801519999588027164677457025104446980454103862624294731654480880974590628346167018047188331771583807868632488157919533254453867760609752255175138892553767311532230968522658481839883644282825343470192314635956645711155524300889230051140080812631418228566658640566189547331040678755720811878574505794936786934836027151219619601035364365038114837228496561298281914347951621457496607022102465632426209317090713759401758601740085544223523145211695814697752766574962051709328802504327818743272130216657552184878274998358151020746224603326791958915757372806479161138219104253755414736860214905508776088223186428008349300116560038685271093146442668681570026891481121170941423412834706987863035368409592497548197480314450398326383130087076271314741074646506723432510511415173537445954584850804701589674380144154550112571858393589226732534970331544655428273535645392359775235576660132065227399769576775447904168527279837342273208639790001197043095398060745078158293299868976381668758949656736209177713721467037522627723746072200595485302401288343699259756534851446915321830218809878323030833786467123515927733241775569740530376552181334418916234322880560835481790196346729160576943685665310561192200140517507284512175163455258177599582643564672317423475759369695138130480610483182222223589148392221333466937113371160397299695931447870257129230088571741578584571589311169778186293705916434676503725362567758792562886825126839325142235005943116715850967699309507964229886388989804922021018210772242944962810516060500609582221844744410810903242569728821116435448349118003152322656947199609428063056566145127104496525361946265996081274681221799838793833200131342886686502016695332771310242454463537802800258645202016642035384364720644884399022489681751237873621373199048468487675426179232610032780283618735413277722638585679790000727479844477887045420695608568813000468897316673658397532324285475189966121901215060406484252809843059336726931023190637746554080986981055705000386200795776558649646586444213344035986716280493317029826036244556098594133096645083235011058189442770864263765342552400977903599980266883799170556148005519250869195243974125713934527775288140169233051979875175492324912927210536284083787032855708188605429135019217982639388405394205520105050382703873629997085442707629810524765088034962047267597261150037134696512401681118553233822246417479577213061645325380571894532915638685962989442378519921250945750383005778617957347052111834941208797595707825869117521015539372347232865381819177946720477182044543655757000650594578359523497493382626280132999038156178913774806474407359276390108768665561227971118888246113088364940625680214624675894934948832836383019685538817277310203041338594148678486859154297208141942822773684270613060461786370414552504089461936034322862286760622962381043169874881286742553374459102527088587545260093945303965843715161326574629380812412713241101706175710074774618042424816385172097897636270808885043823683797068164456076021964424451575104543019916125273092686765890128250839312047708214711140872627646884826396913287139187403161833020906214873954133848106890959662063019556201973873956983974373822045632579034015782554167118560051768902388571917445203543487579753959754813210629759234856135612348390767383750422038203236182954440911114384200692925009234689496066666643940744188961908833372991198292639362969902955182503030217335342246384877683897543507566013752418810006399765491834127146443861873150328916126266956275859856949697941826325419357941830270429947688966496378839817894717463752498805661749679506893001940189942786697331653632210442251713558119017899829780516088208986038538144496209763376103053953668295015286510844543521294997064154363867012254080184970489405838511062319491476247496113806613893206383115241859554868583226758468783331377542242867469619113645492517598025916828373710335232394546420420044854234240142010052643662010291732052970149390905128547192882129954244571175668219737004598578695665853744503953418062326061516032380267647131287393846789433827892823094219877971068655095184987017270305353101425727084985134955027606811577349118887228760671719620962507261542583764271169849405247675720787105967270884849631734926082387637745850990702395140086747587617724667417059520708091077948170306384436010770039697014894248326051006087808377118442399914064153267662364755245679324052818069711446885714039556228005283318860614742004566745455862188446160188546619705904486014096603843432465844225467783488541604436686811436064666700562045322504381221927906262655653606374234934537042657586950427599690150743385152983497987410204346642568456853576334599280782297235366154098455848532753308120750189939317940740266692261171081939481784241752583346114753897328650044033006731168664873491607077669790747472401752492786172090226031706667799108820814711535634413728934827972320348818850145826274136947469795971490140588762282445258316283810850387688128508641387603080539920448313763467208490639558280192633769938093630757761597891557065407589259240161017520767450806918706934991174889558284363883140565276812536714071977942950137530884907503117507283563762586796314829324480473738352680312053733397466678369806842482329136738772483842346144606297708150793116390580361640923048194457980807514404891927347136143030952725805612345278470212272369014888818413618117572875441525778464687699897086189291548832306708395056636817461015503788265987709291102614104350394055838781603725287973947207024761134024007784566622323797627147363830172342717506305959041177430108573325141830654057208546930542435961008369711779741856131759212825822476855570092841809467837829750813970017869573964853859237391717968891107952670392027987171885114104176903724891336021901529655265861414448223963043734560158628542023039120180145056246663000332735151677329825093829468719487639578347323770374627948540762937897965081539139575645066159638673932514827561978647478706123664110753932824850923997894447615161791924309259901309426673258226755179506121322601021104777571939384982574240819729920595265516085718393800830850629455682490306341226280935775368016672789809770535343498035165127545944184373751574448525319122413553479372757047177733177993705111798447501472496816952050510073435485120691331188443335884621568742703253945101098689663641312797801259691122601394438912111862462517371349460887546781032221508719708852100417837171228013780524034719894856263100376769976995172081589708080213120120145827314074833622062237825146014049584419477192790111471053159568473507943143815393834114106713812270879321600309668957347629536504194177548862883226557743387882216730993512428804200975167586713228664864565013111769899172002669103664311204555361082471010802126752461674349896695255332676177330864498502953742422965409136860890156266665231575384869959739975370823460533603871718263416023096823847520095519299483466062727720542897393776548032437673309848337803287385898748972467529280422533417230063499274999788638593682457862531306670420543346867759245995407874363656117013225128938522539719540058419615972998651844456981083043322482660591861882385108328443131361746208469901574259251904319635218551203996846548071754848230788783143999024010167513440089407646478487921535958055789940724811558076111320060511492696589494569609217165189879061555625597768285259562070451252723000503950116152911770590416579171324775841054355787414084227220036349045402931741850189620726348588182382179795546556914921566684210587964180697872361700275320154732651848914501438349391756406954283704783374906468460523223824271478992545867775588681259379312790482815154119009339428485956800774265933544717650750018343808772289863340094456508304750462831839729203468962434104983554318041701296829877295052455850748879585339076564695284168319661062844508713811866036432559995405718874211655225507411229626120893246195474107829246696914447205116414463146993924928137392791763124125183471162724761339428690151461125893438629817980645552820650148401553413317367542013757073582485874921643741364651267644450375029975779936211501261396729713524498111944352892178313331431513919758153012244640375878887246826049242979714859152471779788657941341446031309117982861205241967772233112614625750333682880085686390503475318250433442815648030945377293039652659107356451571632777016381494127010397963575108675663205933894297236617044112136296502879276133952608437338818830722931424072348532557333621098505270499741066141273225712792831371162280678701194512365607914605084398183068140917007744809621148370964600944873842588890717544705282938202913318598063421059285030448266384135468268259511610956337983605372770629312099069204660947805053448067874914322251469691979918836526037238169293832428113603312056639200568934145195932765615895008925508876845864150248533296411333314350164225789884432417239655119398729737586607291531082881279442920125703880116443346374591675570606452495900587931354824041401243763608131596243327641020096971563397479798601343109872750564152263148449717211813198877623009383105895019456243769360709872410327794400160102242221586389305566414598834860477242464510655974374599538188153410883805170654798778891456234854549615518479686297072535616493445884552557813168829885863303457594522167653246128292252330535175073399896276026754139670801533863623413866060486309033078222299130026887401554589333607884790871922086446198185888671870248008478153236883722216622485362263633957230350474578678910900263590941113946317895772544326304906816383150654009243844139110677594587301488502194478106864144076486565632623349321069721670450884665080695668077000646550428694514151151203230470701531403166937830329082654661288069167070802382139041832343465200355934061061030920056353081626054693516004670453636384974769130092222239704168973210130826963743624118679089495943625866471528689464032842279671270246737932185632573946378398054325160022363359068454080733243989375118258111121652526630042974491933642904781583193911570897510306647412006340298799646401654370355097048463195424009636238275468734056943544759562020936267403283551769496783509234428573752137437321016210033601789007611708865189867858229640664666780822628749152829398551977926578870546239216123463127871508634092644906524309468596047025345234090335265695271523063295745456490618455582049500277401843639492268224523550343138808445707684916135464025684336750648082184756863979178690437888684326427955798153048924220539176061952258153634540926341437422295742806537610609491994996692851249771195296080611732190738823682691954011819122391416047041444318428215563253854026064566705690432546603484101381050493650941270693693385117581373181588981360485629804984747205010921692247746855082495584019448529554685304527173358378278511175184695258435180679811847383835077013967880275990325667856906495772148061766102857262183442948405280434362545434819519664034196372337313059600618177947785690796868121248846474983423515612553695589587026956474154608398093297414236476460881142901519620148227375711799495219179495073155227979211903485248112812225234726560629650372872952772752848257449753639723920268023121326540354877709361160819545010480227846495233823993616185545696070356953534268178604794640644698661649970183852346563954589552362292899934635073814637483823102855524951290826290911798352613007377499809492283874438403244470684607839178656660499612318999357544411075192585901689931196865051497642683791995620009566044461456339195199825587136592777781932139410637264903982126051696108942843799340259745059255716359067204997353038622123710520883493815282360993357660881740139745738864048997571409927581758443047897511074282241250605184578379890706042276923904857342766980866581505539374226009702892944245138361909124612481597088818038791273976117714124581197594860789508932708267967628324809847221981333807207344173345113241652111456742118709891336615693659511258876992927448761155333701849951421075251836607840549871791810381219802346139944854366821692553349087880904824146900361547369767499093010059301784211090774864162898986023590348238089990440323067876796064740447003554354491144870763978993586261059537721262534539711411996591581115639372912287674540968669180914456435395138100988250808756407079046157865143657955134966998488348317022290662044288537689310237072196462799321306024474790645341033894649308366414279770874982569089460635064682726293216003458655490945134124330059495174345850981349724775399750192621211364947491977945543116952653478053172445153742114335961568552744780637083309942808384747810499115277434007905777190517386541464304736811437789192124730959236513127007060656113744061615991823937620325624684944781301997143355914648901011602356124872029327543750920346866542655134745222011700223541350816806172799681381470522186936934197419922225495400172582143759173845372176209483849122679470525927069612653199808487552505145280838573605409481129725925432121909271805608535880976524926520624885139351893979620646960782316563234283411735003301616704541776304716146780774535356205603414144997918017840661871948452948723648928001828974606866289653525866136247650375471405915720532778834692016756248370664735927042401102882334768563119741670444000090327885130176940885551103957007402829011796802509733943733271541045890429566686792788315567320568519660020604214087378593356155427677506908000987034834452942067622506630398586035982181400710197407726972790028359881499125369677782371909582088795135011469545983648744083000918708558513337629726308118584977139855927004157524271163135209008365534563919456010865906252672990318679107010521610908905288387837038927941430768390056678250630391156070959001153364391372947097323938764395667190592878179352821283925133683786822920597671510602234861536489515411191150778356942684491109187714628298801205574245387891245221724997328172515403118258123232132967150206100345008543291812914863495243228503811082947986632546127828767424520745079274916538423777903951397557322104017000293028140610340688667047545973415805243248466096102753592738730564008819742804509025673185720361433476279977644560773462805769417629914104161671099902324234655959242214345857322780076870475664657290262891686218812058198087575373820841690711972018516738958779550652767297563995459580915266546990727295219713175948374860650814589839297658244463490254978208811582975718537811010624137201091888813224082182398966332422201034880139185023091247818266237466348883648232055362690217281756022609996489558719501911867499156062565184984831371537127188404913565208579818725513214854999152468776915824469482195919507458768369241645787614057834663186026510232573448450967285337159039731021652063409877820407034617630989265418870721319765128288382480862288973899131162628888248480327941371097010497948678793469035107356212695269463749176811995029808570609561926279244850291673279710263232068496501978128886102734869824991593543959390287136212559896105795229501653600047026628828501491099468028153734084092751750885531535552159357399051188555559655214136119461383578765552694443211607760150572600228992419110646616989559020840720679846585480571420868210181097365823977808973586519065919802754638465926580043511041441423922603838784772865483495612846815576100621240086220150859711029286115819038277003259338931219424234266229363011064234336738123581899696277402442425408985615073553675757679411735587346556302742260287829210171867356558058577650685598278685732021670419256894086219498799887899258872895671953954494051518181228127086150682638350524618427900528823303612799245796663004325464011110303500014236558876996656591140657551474623039736074671289107927537436944425685068177286380961552795290030051013640747033479041081900174468869224768428763925667614139564947399530362661577694879041389125297267823180170467146483190993731941408444100992735266437914849258079387522795494703920507690635183915514494853304556489128742666752336788093604658826071930203903858112922771432777953041164973788477710136577666367831786639464067746853781944862699937595874556920070533494664983008789130715018689950094127507316703603193791706250800459369803268141319334903696961779347860001758835516115904466793826753010246253665776798442407019486881577590321529104964563909500808368158156044783468841881244861375119679772921077599995033499109600211585407972743356436959205910584141026000748202583786307553265322673983875734877274562660835340805646159109035869792920532063776022654387427565475869439859197864773833504555928782966966282534165831784070076548329943166980425089004981343323076640889884091745321826538579346618487801971289513476307798457405574878859846580122643494273332104453888849376993004831860898631547855681586174943273547663810995285044725862791494658641408129003707814135409615696555078165894747883731047996701132765129445481296763940815676888714204627379567345599606431081715529225907179280518085011961041580946698326839116019430118088831885260987098425459054873804464704006733825355703628312892058382194017194769995197210862849138975195089334981758543246838625899075898475700182869798856576900990555830906278964638436646303523161148345371244679360680683505403197383972457142331439437206528550359746246370368939725054753968463642305537203478373191209448535434050180120166516614617000573660469243422341137821993351259621415743090878913870162864863037383574321720719501952447640289550250597076251960042425235916200469883582220789474269224079207583354865668555218013727447754611372066019670860893754740702131958757012753769447644507565929908517672486944182995114707310525212755047916576508080520421201587619048447827373245416582879645733450617915254632883481864981340960736622419919123690821413685417934461368313057017610622953780873410329360576915339015304305462481662069778887371579399220748806490856655228315201213664533890955898061927560136101756103973883237985957593968315584093491436468174523143617588636800076556853837408701073263719820145604520124791612672352368090040670210198499755255157685923254833308187007808983009024555976004242584340144215165458479623572426997659807489307247556187776874112577217786491216677061494629937210375182498622991269985665983735446376055078522523457916261578178436609862877102895077532384421433586541333660947775030063646522107182373943874275781447655741097997428399552702539231110124488130724523438706847337905411697350976424890436749035562327430238455836825858981250343388692291396792789685482303327987277816910498963122160200455942633683724233247482161735035272332166251229375504550321479826840671362839951635790184187666336893862273363165943725861603331411685624975243344961182625372982389789944637035585477723988510361153352824820440166564325809840477872435224548865149531512637085566665576830396704512317561987965552168006923913218478512595003693830766358762758487134022547227186587270206925578010138406441201620289181362738640122490176896721903321566054913918622898934189297669219295811823209860724185041378018026105299931132033029029127919898401876290608228882289231156034165924998362411581932918503992233901920980200730115166714889941281311223967235489246645682594345085107293391742287065149660784562146556849865131472405163907150132170366958076373706799218842522451142522917678851054207867673032978911625909564082161621500064720571992182221640447981888388945586468948944577625935808349326102381541928120987391309957637059074892030276196687714410520452200003575105914126303958567108945491934458837727611341764729273956125043529326410308273674709385070244314884836222281472092592612067361738568084992754443300458336334898890250905883281419662701715031512793041485438920605419683588222811973477320234149240010481373145912205758330958536139869846194382702807687880939717931540078376695844576047808898176854116614022260989206895400100697342665724873259129701987930543298500301215607096767251621890504042198953320358229733466749094974723097410620911753943933288633547800115184617656020160635538681326451532918211717415327035394015765635036369659284461750502299599749614168994689438557213399977256894639427916938288224357102814527331463499205542804135291092523128761804167109296740818572612330695197696077377379611419332268072128053712404627465105704847149874091261784538892700696148152390100427560144939477028936902252227549181611932940448592125845301250965928793633350581415433784621574964633437339637328254048294639163515977659570663293181497781496258358515822592382318803628280556591503905589823925497500944018853217225609411271866787560979188818622061363318722034146930672365648592887163920641666704658012571750189318142842941442991337315275476938429261593461470222043139109815811223163838606924440263297226150787516864978555216277351523283180305204521161791554745205561877600570283791357039723746486201356567229796983166577553538161119515367729929441365326091473892765615334249125182065970210291943277088546321213587081278998079872298502612678208377694542409331938068038544619277591641443939960429098108638687992683938270957514146020152381088075094018569756093089205483031189971478051349519181982766842023899381204687765384730750431305300743602970121481850486793401151196127646037851785194297728249553734149882378546681256190260930536268397200002929721156700575359858274466026301162549629571786495716805864543541837879894619433933710491309008999435699797382019541404432528640383188413562594523473709163037685777197864517497621508873724369032446578782910722977302628143428188062628725950982387677979514668039694222321958292392356722143229803821944273576867061866059142072224472319546775240778458264740655407509278583224630448530577560007949524669305455003015756895922089624636081111673932334141838957939150501474420873426232457782790880123082903244320664765362371007758671404355213510548592186353076807303904451784496120500294530992422933901867789518257845689449730691186522072994586074881275364184936005823807601058088625648172409906605289934518931961373091354962441756515145262145117309024820381202019855522571488192010772041518449463016586555286301458228387870012415753504176620410865555359998732713666889694834809653965054310594061145961471160470531172684808159477249350217512303707051382853693421948622287940025400223243408377529300320427930971813836855317603944523910841446722801522240530994930949888445147340666769140127261638922078543267291981213401294597556434005361088121160446032020285373494922038149244983779063410570107300784779316372807821701959732255326494981015238015912494260170042782911006087745082353682935654309786153632086058684971322098214479100992544937820860014876367122005196540066095792386988914285392688602956644986822026335204713072139955826178609739380791563206349736071086151487892115806806631707083584516491272489053169204668572899598154500554625315500217384945871321996936265566853118491154670905820569221698257862158290580589200320017077846485663032558561262819609722354389737339789118415857051207551851019779630346044870954950118624381709642980468629832693139333973391937323661007668184880082670598640655399798332645390037627141918759280731662902275600916279131519289281502268893214838507632954343777740167015490315175822313569786054466303172712528613255034302355589488353355137884904255455898770848113834019465271882100437764688926533783821399061097267671493572046525036772195663104381139266112140071721772209030272164660734200804983094124199723093935449199610285532306563924241172048039782616309546531976073909257318886161048203757147919411449470100268704012906590286037170268497557675991381144012375439182499414763117203505381302143802697649319897094010156437484624143230540030369675978296214831630739384600146518827937236825436346045032926668960390384883000795359205217548731471900439903203468480066137099735932323736879303805687929107746416943991816527665060428899085252648829136118567623897252876736532979969225078008240558245323138115413251847385676922094665536995537640398496747961769713879393105692581964398098439522102387467565174520462257117979134233506871703059732353598301253696055105401618893670063959920227459906192352116931412389161496387524905402111543340206649323651464366200514137350626183595441607090406445923379105986339518076680974187343256770341801057615289298159653667574539628631162732643599098426087658086149849624533685165755773041586583392053690900127924216534148298124430371593892181119164777398728621969327003759715641464494341839555728858869026451691590564977726674523480403940802446571420298757568638492025052507258671138371590527718199407845617539446483926911475635172325700034341349984067610923851865445075516113992217075005805093217438091764016874349501842118347128163180111584252347867163625115095480340814515747975813156129477295130038618739129823244351477404677237447700482608595541943817328667963896748350287595936351017450203795243060715263403547965186257376938398805943098299100811917704775554838884115633730162764415458312358501801071657495582126929930403662459429772000762766814920236219473948206148020962938063846883403837698786805076854348115215295307252618385025446347487176741166404317555082839500790258408202670093805923676074950066336425590307829569449917090175510671231102015883755956968285341555213104198948988720307315028014698404671558306824337420765597736843002528506513271748146262782808338290455455262965176595505583246227218035920257107348664604889620079547231612373883915270628031510540054128307639728466810299156411541193529199640858941794712994186137521611274358640018974715421156739659836001460109953940369419654496199455039683205784955464459787501787726671403483188412593989248336124926671064604479730985619281444923758980947650671064163179087650336396228574842122548048969191870678674826500793390183035814208094907562687635017059711584063609039353940578648801764269955709259806245317674181942259044598805833998198183975598071262842121982646982818639374106319427489579703706130892434607788324424383914590307439809008958326896533714362851454182169968638908577977236045256802579386595369184326923376587496278902282140156074659000046004116741318412258755566759128637178907929069429406266108492751956453465221563570529694724671922277804877925281945831121625719121095697796977423028075358512722358949360120883100091833636035123393708128713187403484119955189455563971140119121935575102660735710270904778906930497965105158424613171611678085207938086827047958607278549759199734804944912910070455834122877131062101880359649086855427547988001486973387445828296562914384766562869431085413101357558915598863923017517945428629309983063456470657344256109012137338080217845227240553021146879590575508830899316292429648689795434302661617298534689589180985769593189078217782654472299134985871656774031859807023610126862586199800602658011178200069106517681727836204989053273289111954553284944690912028452571584979924657183990318624672642950587278784218503197116192536107137979623771348430820299940269623377284142319573314644974238356109753514350646509449163170582985570957903396839466516880505705221730494524775777703219450622199941036174985214432507929294109764981574314836743898398652074322412492207470978593171268098259421350406104061209234516923266014294489136642123595703975598092025816552041811132057489102133565626031115980455513646167161972144797608340738329092713625139173209701103602812932811088786747702379529390626912077877494918014898078642354591130933508101723089199930879681779398696680968287453873721979707852499671529049353952349641852184855554776091435478630932020222469191047762931155628617152852895867843091176937896512248402720032366923935117687539038618617183100781041007663484935583702298401408084312097410203813078429663880857118466605556254244231979543161024700192558265077454166854741337146930766466294065009217031222337373226496015334720344173302227316562203682561199644852363450425727740383553888730238194687231056006616251255422920491816982416577384051690253795715786860146036680391251961056939770954802758463847867324130172697112436421162451428363269344697646665710285583690520707521794979836954415309721613065368964680396855113308990587952842782071430211226831814160209151775657723220305333695200415144503403510988996792809529010354675368509149709743010489145719944837343673816324993567744595274673602218906221819337844852570014460727695136042396398764610993896880184943144158278002575519719123559512556458421473993895020835824445871297986607720572424438804640549795650145134892126166976842721842225936163722753576611672416024152834659908834061473603990984606305305111839569551444478017929053855011154165676186356298686184675015578107833964583354777090355920040230145678781725724671757462463202248312233621200246664361298949748453635790843727263826638551266504022385751420425504929727450562068172431792433965610596448061771610306916764552532696440467952017936801540374894335239205264386223441477928896342898934349133131332222206354856854608809636823906946034370860659416117145291546714265251481290888149432862173978533762725972286278327690913334536755121691023305942242903803683620357731540687000330490101136926191110986837821558270990607130004054679377980476504177300119907602625680454195274690287167409829317908001622960127864400419940500426516473801124643589775399725798575943256734620559960401654022677090842146153451466169503856422304235211949478286729402111797402509788302808870738302161282958816690020461866002811007303683454771708859308734948966294352367023550130962844726440816303646596793886460893461640206468412112934821932381059992482919973113138767373828118131495075460485043240339688429093645484043642651898686702850794123232568519936462459335197114962574578674568966121748831358225597729455985379961580778811386242832439975467354714096409591714922151503612070634861496300154505403310615298881080581944817026221236494726119128701464682461872671360879004818590418210069265055447637897991346523876809607534465668304047267472654401553779962229765753199900395980953652256022030595667432538687450795107896161871779874135972380666750481667851789592360615052773894493416869577766470992720913933352504858116193440139045388017452809965739407191554599423791561203640645898079049362817641325681425137584656896315108046680696619388678851501403480808866719321678112986711092558212591677354786857881004678736756048637681354013986489318496962777351100293579882626948255358393907276597659715325311826197210945253406001194954345310436289818087787605429960436323305324823102861276305871193140630998944903093768490747824911359858440950508186135629609544811205190905457721767110857644794539454205957385176062849858771147684852280278535124832394071280847693560222980336270665974393149789260567433492292625321456051795255217961602639600083069139314834156328008914971314502799412817301447973824957051618320508826483873989077493923056203249468031319402006486002872080745071035767970156969693134752609675046867512163247321799744038796576255964501947296503787938080145234804461494829339878350764821384306173213336612912918403379478066359350242447042082595765000935056744580930584122078357535978877755897579981051582619428163927408408147133146382511591282690552939904483827271155662151370068510028499751746105741786544797450788820727936418384982787311230715007661095556107637175836409484565912966710320097950418367342090841196387987069773361356645059220991220051564705284569695072956003811571316400514934663986539860278497212985153972238450571281406292410960184201332108524911214488374076120696967839377931688279849435634996774842682880141114028042408536129800112254296786725881250640428119370876883917027712660093104209586850147613699377373988596661548110072665887765505626814561326611739017686341124873257447051172485553891294182952373006313494670449082990185231802118027916145538944832045868290962027583643721827183468824841229523682054600175243567345793669587223817098169726130888360241187336840552681324408181552507588325529648075741288945395368628042536676626023777313488230307553559206573216081402518429277431408713728554587068634547473010011127881488356453094541535568703243542739845253140167058593074490544242789202626117798586831473490773337137961127297329941741666277868623886704669417002039029241339623399593362592136909809429980342711691388014524126875139177251532026450424990356126555532388939619762141364224262375587282719179468419489928133153855086840464380027236264556082076301111098764341926239478438618662428396419305741783167649644756280991719083418046852353661541640327816694684989873155147454921117707161739603663003691772246980187120800200878301228272814450561036827884567974619029142297630287237941676098380467322163894388648235174678622776199569268642376650592626001757750217971672385243792519999852804666572814719401304054842726142515757436846214806093175239018991275111562879350213832158707159008961657323280080311103255537524042021159195251402791862399689104490463560315137778226739100374170763350941168796905891455692349186554221871397605086013935266098912257383993630498444620828897789339106560780454115463756172951113098391398438885776200911600435343081675180649029836106322203862045105221587008877898966191729834083974764566942006069234532993136912998301195546050837019036751625222769724018211395837707033432330606311303575914192664694702705839294174599706093712203865637584984605064844148599111930393228383106056043465507531419864006573993373754090373616444627731226071423791096893730275741803869949515742407127761208092668079710034392692318403604851731127730073866356126693442800903323890391052758723132004445302275351534225030051897818515050548215172530702249633108480618837585022354125327519422910051793955436888203266839098853789494709677213974486181329386668087653869090828394783945551698164883574240827087062175584296360376163033273003963035939880988658418341587376474400348554967078012205156669468426640764154134607365626197897737601215407523054459516290052207663902140350183625152952977868335956423024359566021553310455853259384253511945364368558336797523219976927161432198305136998055607006934618359654592889834756398234355256866858371934167146858353986603523595631936910671303454545431569524000392903936422375087688826705959830369133652092824960947791363275648497808959671812852741725801449057447837425362884357699478957079730341497108761463328114056174172289613186602914149931948377446972334176042218538031785879341210951360146061885231485243609853765341214069884531287285301658849690603699678097272768297360889372673670672631174127514654808567781517300148128549796421942381193681429856277043280166538293980155473782541834332573665570591820064056584708686954331289796801750634947345662469975735913636297811817440147422605894652205441386695531114407813848533541857595409753628626037524940051338086264822937738170032418519962857323015467838169147188352676881539389236435778581394274680623087649376325035903118149094639023352650542117670494922098095162389497305372210933046864307722531664241447970881962651047435354206196621378642813631292158781236237799749964990542840380402062969818451995796409136270449978014667794400011709217280545751766298462329838173880124183472108244648364345333481225122354397271210218862113669360860480251099493688479491760787865246480628689999188481802447741657951202107554939267728272438868125412260053995907962223009328930979237982865862130492356890455439951421972741023128149301582285117655985540467278660385132356860804050849157452293291782793504252072598550188072971435169889678253737147381101739964795965786459630342153763051482596600982182205512615205341556298395772254937511274561767728170095698601543014693750902933076153473236854639167130463745927695549215831166490967708275417332287848982441167988639877664991890403752210182405909207727622413510283942803488577548410990749040821603788082529326004539388330715767103072341199320886037822080146101157219703959223087406305529752633760816724939571516087211951037710378101856923114931920645321163692798808940294590259557418230835997223661796312476569288102790315736638817653366542405016408269705011004675646386084387433398792380343680937815611460992910724404850900038927795123584659995550053068327903928337890097767503521709160901634369869114404594830081865439642740342926966730659453345154718610189577245195080225224828920147020956195344949591378449219162202349513166930080941331419847006102207227144030111967225086586103742472936177851432340482783354079820944519357839868201957406120383602018856796568126564154814601410212793794150916537644404220341908588799103704649556236184622586698934191179250060299094723730162928244839832296893344834091745606278069358254825262492393383670080183863981039120537569010756796690620853390463834415347434588822092515507603634977866001181419552649378206824923092067689889425074697199413226605636241884967100754194890113934682262836311657301854876202582477948184134252180158404761063929322695117868664905833562185033268945332528649402366698930033393459444343391334294757842516833744090259412589709213294674770288889920478506793983882830866214027881717664257624155858693548087700226000342766518704935741686206243059597043500879861010550319912086587611779439001104942314637878030391695636297483999554287043673554518525117549268456710680758664868164176005870961531264528021092765671470968060676415123788727133891695481616786083595959010533829812991692527653083242898203948037859811780103479532120748332252348411984930676421714318206510257806516492364472758109712682145660933870545217923994337300156898260555102336305801798769808946590613837867720967810922184600330487010451305287913409010693214106369401168309367070483173528942520856541176053846422504574928876373687440139593074604417997083356734540792691812239526539550467958001415250219499884644296984489183670746748246049817266774315838088173733683848419492435347976465164699229217558303269111034092044143904447310405311557033764731013330943271594576447439224356000826531760664257274028592411061523592815114040695873670382462799296455685631606863527139713351119465188311603504926484475973430098768598948553212636091416547581956912267531857293686731185451493325058101109740905563708556814153721254082260453118179947002250966665238443269748470501952877437156354774289528391855052923536608567192249037280977595021477522962542194289716394948164520530201803658368435483569893001511888298930241813478721577954596653832165838312613901209931402255296899729180451697395986108131810151131146668945600857557625419726776913420357340515416106641506761673361550584668354817103617372508793674668647139790529377802905345852631805366556025196485365258120966147065948197040722247009304596718826078731498391233337272826978937512347308332770501345660038959317827545689973010562107599310909094253155639517688789609177348141034538343902388157442914497573355869228322886348689563837622083535981525993649716585531122235709929104995175313081134192775976998348009071678108504969195341886789972975498988404505339105890169217170933463993094386586244003295633625882660189355583003007005311499015098582580972917911891506240973739183817259062434861958051237234481033315279404504123551593692394827758317180636102960479685965767222153258008346205617151343816816487629571528180930761764475922484130917525921072664054709494873399162322334572984818260294004574244202654633129503411140689625952121039185926075629687452120521147380542368062291939214933981311849398229361543134934350349885001060282550314756127362391487386730437938057434603083338665251627850887696070967881723776035922580943518063744576006496382654310853386742507393252826966513301132251677034784821632514736024590111021914549126722951195751037082264858237627385488242588021665803519781558416774466375153345692719737672410849644089922877372976929209199029274134623817386682534151672833729408189577430978807278197509667668969052096538532270238953742505407812398124242786209679880166529482017054110866880547901591145635033386991662520311840307238883068121960478634003358372174282447458081282762303514408043369843162775571723127148632336039707039397028411772253060408565632126129300763689371758435381440231273823962555918244090930453784805709792394818566714946512928928761464368248947071576985056928363343614580475150437501494307288325168891792938502070408844231490592340547744548440879076799206357313756111621255669634937506840098123658246553620525513335834662527007480230952150717466305844723870331232953041834787064903240505025785610277364045360519262178106724256764279331985516976265434295495356823188701625542360457723931205567980275665327212769055573812762263573796756319663982217757078166458859689987073101190350530702550594149238485944703235244604029730088008437627884672909694885007579599250326398790339893347742413851516467771250272390534010380358570761394480894418467793536263121090823195031242692908288497309867941700102264087843492248797747666147904319386948358683659764259491979750881861247288321910491493365613652053285987780724379006119127005269990460374706685806809797622458861056770064220644099482180206205378479119210324694603113192347307148268045218532986716002394294425212146575260601209480572541123902895112184064508864108298758098020959365872493567548715835895464223001049546936575876258007744104323446772505499838191189718739432507742280170345523918633196377962719788293852473430589342816004762147495320471130360142862675211301382554934547554659207456582555707433887803941427159153948948518503844367793060534551103510751947975670030373562568773647984855836915086554508150645236059550124396595850239507472448510522120411535084740378483015642992661897195349191945626563052151144656383828738822082010803191507613776742742584121424203829511992506235716228990249945343713543916123027531066109297721566200665240842652110254272783592551272410669887335760037067812255332131554401685924824902628338043288132704866382934386567482488000323977975625828403755378149641529274275712997112246078046768936912107795479289874024797656556858382119530650885758070550814314481819380086371170723720329805124747524793135514965311486151078770334913660012811505539998986394381034981378553501165760699631501830888031856639283501156636233945088303882876293025428388433376317048278237349563557485443823965391093275130809349795235583238679412971947761112681279804243621161284922620128666895048223814031602553060458051536247454736764080033545172379474364387691702328323382236494518055349197905577277265641924364861028729724196398657391506304643816646360722471611012027451726477338643095736503014194196772307143738485859580620214279754988346752567750602992099232220452450979178129866930190635152401784662794829820671166041111862656441062457848723822616242597447383681975515430950020928185576593787288277584451767825784347427684962797865338489447486330018642676986408585678295861790792931069599540143155365890444025840183644878735775053604816992469945182725021859713926681498403442768532660839754879512709620399594834282226138721217681713362791637547702552458776244775314426177501201304598799406597304243922019322711040499839224490849277935555541405693930991909795003910487171508507552925064424228383552857652065765080708198814737259855477727537146085120587367424531815695543884257408479824571167197833057872782980924342321525491935225077422997997140631477632221695330384669923176870852384190721948522154111358444040420171306124197690034557967448328684999844305309803034255108703091821806707379782261799247930986236467141141311423977026107935636224302311521987711505033789868270059082829538807712949321591935632324841625693991771817198252483730140784087276827908698124660575123876635069495763195054373823610296252950350623605723301073042420750870879462446508673283406124995762314099804104897759575411705430818932588710166805826788227147213919146459243338277470238177645200593160809792088297563348860857711339333440112357890804462686107227267353376087932645987297883664898354334486941741480064472709680939543511663146336569270094914584387582565774486341348826267085473672837985325544525516817177398815043552192230491757731239085679979717849928329113672344944064733810425335622673721415757307440302583371069723069978952117653433930043931128285674850623601334208622904774736943931110823457592353844160393460053256289900850056327848654321886523005702121152214375723941648352224828074979079171123603335920386786947718766614471932034431076824867967073068643594926564996151529295068094239803349579853121005166651129863563354814224716795611525472808591422109966794202285240883789952689127950165839429516232698475559137891799081877524603120792624393659553484328849783656107866769198410569397306396019913988658107088306444796871414331500419697615392880978470700765815957935709791710187995595775038560494887260597322188682419875596935939390165832782102379325020104040093938384978033227258273044282440712162153198423336302338849173297036725807975294160103176836988439331135252162750615371289781871466606202520953064157192615501107446260848360179460663166416568778876029903050309841439836567442617989061223240482271736425289556260858946347261779243799537630834046511382489676163432473462344116397367723930009868682820487655968472556294463437656449294409489069912710419084396222543140299682011615920954953318238987197236863590318413624276232489169039081915952296806059397235232394103811122940434631061022086941576451599137112881978489472420282657236925653851502138451089902514826976146778028240207978973505801663739790116145969428433913059837927173335883141857056672960842287941334636144352085953710445210315547650467771613968251834114354850271675352468533739698804130619461792782315628806486433938276819414909342088072479187294400126405670515924024067125017061883321035363318201676501258097689830561948266522507790279679633595704650267621086356337760899091818592212084313050299311069730363439685228119656190472664658001182268934486578764861301040429969543348695004143892032069644136956825987672206324520558912747476276392534132113432484486503303202482195279588917035094161115757065256176905001349510477812811789534945906849512180129262846413165158482683057813263808091874265064674932518018148641491663143533144179915842818545126449571150312111696244620517203751324502996748667225055191768309661177523322861833956329891018063447134769329368017708249135299498793349903327859631223006875370748931888865697729917077076956842662705223025192587903921690448566608267777910362053779423112485636712641721671633636208212583610267116461795739935642712289763113872303790098135820418947188704805470591231132197367776878494416166110571152723351625845932252586902188621707926644395664135243393955896190686620893317463903385830915719282936189656142793950327569680589748477529520810245156119728063261178823724875787864436698549996671111336330574717201295849407979799447357622990453866364503971463930567202978945596470779567760644181036083283909611984561771774755851126351902557134539655511336642462951811000673999334950770539801322597514121661487974484098142640068425571985332689029194888682893828681857564373871310354593422124648032376052472140928220052379886932677662510128674908348506610766757300874908950132597001297363895731481828798738460118194589023205339473406289228117481369052913404177889560150042176164874942579066412259477468135599375076897470398687385550202281462593828272367516397477021526655856208905004851858675526545479387662697976673704373511851365711445350944740510335224651429706605047621483802924457029877824937263237022960699855196946374593652267500344436601043777542531812542355233109854652589541114933973150572457047170215359836221083696455972219315811106461568532196612409719966536744413245489081791088065257228576180269853148879007307622892866458841185000300178983570066430633735393988802145390766148684720027220755574373002414707860642732867566512887830141571788033765892483688176049408735469143487224753397177660520669922811470996129990916323607305720478890929516393656771777617754795873425742885129403622906175393045816667101623835274968839375448848551004638385584891285030321608216010809276612787522620178683106438090517156147029545365284160881040304105320933185422625926927461056258245723403580893469704194630124599989941873724871875148794535613856512334871101256103666739731445328572230363555366304817365885237470894064711377333891059779990182079475789228582771020542874874681783481470359602558582859466502410238453687688108157091326951194406955554873172769573523329889273076311633673204946605615417780820259809014937963038529898052656060069895277779010369310129353610879097266291077979560295589296342846056544619293206189165747687429758316803042468438686174477303980514954731286127938064193080029218993390785847797394123833413625674562915685453770557449297211068803984733039382491432828816506231517783802720564879645937433100105181337622862171398618984544542193818231389179288673107913938806740790220460850445858114718787571065817214330573017438466538109407257633338624586469095416026885126186064164199966294236527145454388494549353184161954336402773747501166543521468823207111709183508116987058213041289415951705300595459071048813123321829455471606241784213297130414610632912427264442663102351054583795972117167005201290914784052337178649591110922257037586694210309315706241017317711788659514741025176125488079403588352678800179623506557766296248727818151255030683662408987343574061422451851935956727922872035314213454035252067437092584374814168770223008684088734701597357071645859354003913981905293144945891674090130159000499100775601248443289464491338969149510498773460626682688688705664055716476490766187641292931202535265243016557764835909565191092517329860726744130432055634731164290076280508282984542983734499151370464669806609296770753777070615283903705654650118921736429971478258706867063923470793462810595186355582922091303179234255006887082093870519836118186628883474580722154702180547757306803859274906068074701981094404816527030070983744238699679479047694296445602481212172248335603351424917661685953109657946726381693225142798500161481804898992277532071079555095683499552274840124445218093075766300072721296774987426981909924282822197520413368960754687105677161849088324302647478411513033580647201912797713897358512206581668854110812021459040947395730076458565756520680348685941442874531008440819986221408149519582833935372011707847153560020606297698755176004035185668018209669002283738602080630251419717929443496689459611664080519280084770680941420536295914974971759405938697112729778490520926592303209551183263384735763799920870334798199839037924064667020478544420103329313496545181525129319638368948783427699171464815610382248372225011498040330501790892483020582148098541249347489640110441879569856745493856944107420309565979352797945379927413232319102222510722374694636166721772272033665487109468630309603960872680042320040242973322977606532011555850251922087202193092659709140100495767451211003433645928251483047155973860013048256376958433634983939050824565466973494859515578925823741712979174434286068080659252385459060665384650721588407573815734181126952590591119927246840193765385466518237177303243014786284799189813356228242680525013388788465353965649383169180141457159935511940375332616794016732225914256658805299850055750858420227053593867358018217442669327638065289033659971611128571007854049465779711371352906149769768958862490568157574736901682912207252455346709831063434849360443046539204652007511665144728716738211137019938417490142386798952823791869717988929171215588114597614171625856428012754388525038656449186316516225885934867631727150719283229212788244323743717503494003757859615160204929540644198517016952693412028146926878253597967194410082720047562413102148909601942665793518545132863333720199535139972710397576917070192027532526738365923385092683884373353306750756464797406761449739545039317944664919208343622559642521193501480630566135956952938045378072461979118757597501196286304504922136231491463801212489785334642002071641945876380512508909583828720909888928975086698522686355570018401676504722640170275642413708545106928088998264758777248817165220814567127854663421531120298996021832855419247222307780020692301408347730942089440269505753900257775339277651849360856976323468830883217555688014147738735861401564047264515372396922411599353102988323786955792169392504658170377834015932338683288525091467287031852732828170975160476480397851674106701702157210909473830632596568619534704333771584114647087402202739412779378965091302290398631362703012469766449108457383180903362101686001669783624718445582803824789620812057434734494223515502214074751871106452796020075458027617425954934694261070669532926972505128797870152086502369305313636695978438441269388796763791852285891366233983266709063921011788370772276602200587263325785552362666724386912800727954490841895516345949044926593495981022314981753292560893575367090408191481360367870388305976897985481933642373880716415909081334924198254209016546526943768783002965892295280815891970467256881678719978793678049033595198191204700063712500643907855950516285897705834656119473341853862147921414613040018487562512101507884070753654844684951119766250161888101982381695380838758096173506433243285456072346060462861137123758032179712061257817061168655436939252353934869377613487198268852012863117673834276443995096659319213802461542078753791443405577250488945719878649227176920790146223198776817595555760494268707727297981154971542359237787123634657643961036718993755473981067091959273157393975150342563070733147062194948727266734353447934975418942238116310275020177978796941779656439226120828118141596882122527157600668899924359594125111571862574894220484465487943212838322385393088483188583436824081210658719269260272726403251678932800917026926503902323612111928804858310975972481290690899520088004963446434587747787994294381676564121486660233520464212275551889944170098548486143801707815746529790765827103931480961303185218737824372047239687836988659230103255416088095068184739534030054565980048354201186813559701015767624684434818635469918885505982312798881678671120949715129790416917569401163750400233315197933027836086569503067817212075369393110896346639967121276370902963002290616839682703982700636884273198885681504851359805539962932378003044333860664682249408846147353147092239622983084497716056958621026159723615896593049360077074878488747791875893341360911000662191381875578476828321725819800704512770999985257454782900233124155292401723253980401989674458228599589809365291441489749303488243930150882617388670941143139049511261463339534239613154188086586432373841305791619238873364073629928288915927979404372350213899379779731973670559577804137825061767801986074280367198975549993526664628535399595004834778993422450545313370582240933196205998455533342979494400628384665699576058491553207810338698186566646029090051753645982175239099595831625812664505834452106632769257417541759981230661386565456018748384770256104772965184956578634782875200606899807138570579283996324498522156458379450708395074815055452459615209222029565285030609701801461966250720621853423116262904876341760788249781075991000361939994414553547134602632525233438129180870237574314352333831699890061094549683415627971350348388791282690412556430019771601175364515016730447681172107856638328934971237420172073643768022408573087450357368737048866603335826691139939677827314793145714583384268989010833793543878814001103741685605442930336058335578946574226460572614086556983988197111362951314041030525965223710553343921095698489482022245956879639965838960768056734984162385972593674021786868641688837246226853957316420742797684193369541535682300431370517042834256834991619352830089084679561188711025417637329374235430806850984893744358078109125600503072393391196025503472294178457019178574251456252993831060619169298410089197796241971910017071840365582017664489602015052448049715755291268441907777014232962734294415763614569999165175668472756307846467435888097534667796266447605007616543101774145953180400402660987690740683965222445161112378745265456564365006259200326773683041736334913747946267662425244552973275721175277070330299040508685918832646385272974743154187973309273847313924199093251686214761592212955865381384396413185758514015582549295201086894181594262767186855515729455687403102350621259948402346607647498316780397064011442955526697590849503172673336786189114482315962708109655517910742530628985986849734607810308607566101440861980260365012446245436436946955462208385627718712767344969276546567821080892696418183779349802417607986274177917211760828922886422444020577675734471022614090173159838199789234247379438004578095283845407626554567639456341263623665888549231990593924903571655399933198570223035841179286229173446080449520074954296623692900202769744455714989392592998592049345616127248725765058175975505750960562397857407250017057594227357630075990614572711976742387996177658134461000853860402077192279122520878586272589428937107192624194577176738317904041814594145807786141482788165326238014405000902271141729048814170838432280168254368261150294818218712835388834813198032067515713603415198098366644552316723923909180172761676867438810264969188896204179127294009919954563832014953630158452191991925699306640000819494175301144294715013712637408906038419553664549937353400744778505294159557930477364055900796661281833676508785799355396430011590265227422897301232564757200969962959431085986421187678199209277249357885526009202581280142591342185071400464657775366391881139300713547628409925872382066294854632128128485312205572279647932218441880806489955480713172357222816802984643634686640309020131739038791140257969385989620490305892213594524827513692806938881031274123227471105860401667940780437514229039285963173954791001402243558264612637511724097978545145139966174028491596334033043374916136560448039868510513044991397376824439344939252446885697874674488547873245372973425607611314627971383377778821449660323848352170728360032808556400477446145395711139463782409148301010426699401982313338133866123993486054779220505082667691576370624632566728029110008428628148486611835330642540681750989611658717639442393632372932948869126969077619836522787042700763665104285285369091639773244341243036301260683208290336222689752367321995458481222470714458228451978723211550838546428230395842336863896748689690440355871969873632414967238807940562614771254025708098261642601446998076525800647231840270782666686724377594195462237286692533924157207160455526524234176566507399677837407074393413994780353793735459764846966707166196560635030452094332762639984044599341555105856500125579381046781781202237727191810322310204134766519275563488930866697833950723351310951419914981176891887161551225111814957186547429456629370585032665706178127924074766042892414672368847687208217050595058742883203496640622244530205799915482352239260573689488205601522672054872061258805238948434493278293070789590521281767643756251220312122022456252449461940535061061029616503497055641694309321608555716885941147135452761704558007685121622556204869367011885371903506420597272256165012670135890597583134254818909570043280443149583503811308037712802698956201450528486786290926264675108617186944512532299196949980773569996503208459394930117646206842624853831250380300333588816271952221788674177290220575681162894917703753174209829480241725593546237846769915229734436747986512311139462439356625473262842637291394693834893441893176488340406299814296315412980728910386605392748506486312977116516771182281997580653921534328493301708906513410855731635962892019684435922058061898466674663835690426957100054012209994392254597424947501024088007521769072007783516503408630159638543580391853091562623820001237111896540311202349859852084210344530114252618209018048001718504688074479584706617864386523495177867473991385559525092922048525393147872808179459336485735092783237191438587630148264495688292530491775361582727501923154606325416827111631280610402808330156992025929733766116589955136765494046898025110338550709708002136904286792541824938390626965546396102728883125036267676584639267285756764665543914704170012903144845403731619148407020262545431075582004647460680566633072914610929628444474469595606064913357994268793373172685621526489643844535100942620328654970194880828715206387847911705062213120499845161292340852050187184989255704265491239755247912015003298525760475951470072139672068115141296019421304472932952647880005464539430619778850140611656342323861112823704025945118518016885205161943594479757837389810758824980480473648988776155820018045683356839955158690714271036069910660337567353352346076513726951935723534917523241133156394654880208910869247974158674169407275242693478785977340062755978075922658726564466164021467222712829806736087672603243108883250170990852696652643375437277029003908100318853866397004375858001679849902820305223908754681175317181252986598137297052782170445383154508197015575909174173572619116876295970270530157657458508672447818087946944751534908276462777855111586265572838580456979438194380243698666396697652850889219908995744271397078759171404229371751741183674743146862155529057385007270164482382451554898294821749680196419228763006888209566616465400174767229622436567596281676878986146205744531928629435687077033419696490180090602502424871662580931944800610156488770276154136918258591669277529608655858977437978119341500024656094472286572305654569551917616322377063383888226834078650873719475029908200205526751961800959938136868042767733956046616495940638288647288563264946688357209042739696588361754546366721316166346077336700035186996531830636768550253513279555045913711989026997825063111634948908321044396975855620759911851456602881095914250410090356377433878475957242523764043139748570147610861019891969947978090573710791164851893899670210562253931574829936112021474423366552984011722501301045544299718344182430837319167825959156571229242885486202138555352465868693974810248184893339361974204459692394753303822363329659376966298123233783426073940739174641388710015728425071870087848849091887788485378678290253545248107162617888020717073826213688027425399170909046740233902307754861482857864817199872749899659866541565396343990816360778605284349897738562609479532158846146745785352573453616706704901696156564583552350762824900864508882345475830456011454483863662805206033838609234704242358215094188213870332010407223227392848950642176919261196201594006561731849613087723164020980231518304912247235933199709233461463987245853942854879491066187630326571393625114235013174775602692320418778030812632200667534658564879906858916256365924210151254246379556413509922710223038871699324949022399919022836823798388794717961553000909968050672655596883250802479060344594442413260139833013531995373040677771258757820278010728573023109431879615819232034915057953563818146562530479406734434375576419746387863452916758748534599051443186368119876258179801281255678081157011126599911988212098806626904612375104896276611619979746182913565952946240277967626536113172622052921923305123564787588929634349815175752104135691417287632737431564831357783313431338499920688551033769322944294539604917151961697672475413913433854267557287840830010074417959816677060362772674194426402228793689537121668164728438642275203025449595128445612400485287467587110221462386158430697433616239179349730078532753834233053107277215596258191803669952384578729220045882513925082256030469459939580512195288886813076487236718764388831331110781896307946208385163031393210308665017146601265061263566712486407920719030274687899606016316304482230020531483178669235280910517044227792024486430792060980219140915232021518577098529899107293356099667018791771793083095103309084043673457623886588000317121698864333408676778878109306588000751236156346954168480033950047641347998182220785538053710583475751316413581832626215437867906896706455809462152118836058341019111650415000221478354263125304755906244659676116498621492789364790259102843333656550806311410053934109641708970662107378062439026717893572206797212611022552893644310441611662818757871330466474625102741470048607252150200014682536196314813495807618895207451918796720525001871523600911615843042992557404070160068336366462303974508982373614666294574205603096284889435397222207819511911029795373815382369334360243568694106355871234155113054540573970583068842591950418133302029541992781779342504363916958190272164177387258789308492439021181491031169018756472765136655140513521459738857314390204500620676446761641077877204934534586689777057740350410831257964585130817997421316862652701349171598706108618834332206569842735980401806673358185643944030205623953857680498446747103641793934834591846964879892516859678979195548013101159523033775562708448521581852925563182276115827499020469538587726127854922841025905527554417489340835929255088326830504614569095778068613650596009120222918627500375523161150867537949763552331685070955104478312361952275884373537682996132498823563757674031133930046171971021627199977629573827765995819713831187090036860227962812805613508657278891731372040558196240940350591379231559128095431523689406740978562392932138922906644067158930686301234308895062901828004842335605624377525145518279296290062052408662239716991233859173368010807210779050826478995968753542392914042607613644212731816939056460846648899123589599270755175407333406706753928517201421038881681637859822961608097777008608205444684370533362642529507079256452887052843861550065723133357938594074509392050807949602474673716418000505828633637401049904421881573181321776471494179314688665732183094652832667945372598681005574090717373941593677044323820578114845834911546150900930241437660909106581530667768122695512056803038080982627369435716347508951404509029805346006400614260162445591348378562389097156254418233588349118232560412791072340773369068850464943756061845638160858972883885537228769892591547602769626244317386070869966682039383717859169660122887551970099856860670055151108858861660037938587254463883759195695078413418670519648272310934934554130408265273132224581372232597269368934554171591521791737590726407055561296939864589570481848360243798373149219328176066454358321867633725531320537677580539185378608840067840940183740864255039941447902397209716290723921372655609643846367497636313782010763494657404808523731918374319609861616549377743477307324208528319924349354909413203426449951254016548073031725458309155587966549460924600285500662735032272219394989507100225215792512896194501967804131783305403826981746182228772497784363247293947640942218787321252146378699056218901395456316115451517675055476993561549334753809289566334575560871802084061007275669556341325161728257336193734536246743636274751129375949792423021006980572746574381125544272152304931215129340428274713446358026711599993963043958367968359550200498223335575783587664142540406787047671926043133734141401390270169798570291109650327440238734597506103117303271130299360543862852543332594720385326887790748877894646064560814898468957779842172026121483808763635330952488300690906616520508732543504054286837308808574581911635189545667535279152284730916960658882774110207043670030807347691247939908865140346380104452553245131287969953307850364355170144716000159071788643194429297035129181501985794847468286852555410556059716215192915647898805252300001541547687021410015931033600435248838753568282058403906706194651675158838550840970017464678066214363731763970494748435292691176485648881542759506367756393689899331897143874166564047138834216841243028648214146060574340942423324273703056285090826845407021326590358183349459562343575556367817110449163445217001816962221427301120686134608423345768057407055222675793409788491731871126110356589106660740454179229686145499821462531384388814750552332730740801339259198987330040566171091118807598339191820204857257791681840313779584115096645101135584212876835278203343855626682451668225410727544805562385986886993612448308769122668670693600335189698965585923454688828328207881725604131118771461602679294891334374002672320894693180506148586550874215592681053378198937423851100743858699267309385673233173801902833384039073412783914735143811908885884935830814935894925349360148158955958488725491898159707341427348464026044626611092938716681605806317871990012583136720702900087464715083302616383020146709156404478266395957976223048022755963966376788116683656066044496637710626376360204111041988447471929028246281111356164972444618904056382072680649980797457551754276616751285679456507862021308748621157555994126899252770664243526936633670125983608140331893800806399056544175751478086894605283919443624519600447505063850054088173738818107963453468644139320740079889541059851129572887688976725997545728272114102950791108054171910893492189779546076289359934535439087320856945626841081391591823754318662098643152932589642248491097748163436013026578844219880783533747275644776968219184273893935879960057642591087644729606532061700139161832060700618658836888587453049383700581939621296918616102613918459463759869842496470026106000778964020175474884178183140701416506318559332945588999990029911540644263335819170795128228604642673317378924310034959044929896802732744547159245376507316900327627033784236872623709002990888983748811905010333030109396432917738961073805807506946115180150293120684939036144304468313908626073270813662789677306506619605689239118452857374771587295262327219124284757245261026631435965502411746144051436688645027554044514925420073750806305268289004556348703674839566827095679457543201303347905305432033801521485625089237263333918641862936433030627162027836631657378966160444826790441817810170599265482018175998965469340958292112769787052517986620408919017655278013914362512281307386731256362716811005345450285956638105131893732732068847286165314326304266572877738415022503094580814222645304055620370628197753726247624777240650904482360687917650493216838931836755387465107548318577658623694285025939869408660522430384463130383304491475130049321886152498004924556603264036624574961444027302862733244083709016172977591824397840806088784173701883997499326081673792272588663758534861950219081954339897343287849335091753773186894064893908902858157740913779793546511427799439177265371600325159872748626622193495431383689010829241433946272605454284284751063133298499844520055132992393985079336750906591746075359648898252648922025526237292803478973475220236078754122347600124412579592887174051057364749425818808308490883333062537958393023910601875946141532179351216276120292543584945432352229169309797982462937654132991892495784560086063385595883957395458722411533620370143319661019021264732905803240587844573852460447449556876094190312458222006967223727340785287747153100630947108841835603992494088209561342672769523434405243079685643130959073972994800853144559874175972799252520426957011638977348695069104124116718186116355939248914706421397947198944785261917724918568403211290501898794910225985924762120373754693162744505159442893766678687375814862415364483055098497477376750314871544389336403964387275410707028066236598676705066082024241794140135160029667202378434362729159134385608046704041250869052978750511423098348949455428373779022670731888933048921925353356719385856281786981613695689174694536122762602315468043406067745209590949550414198523933116203213881747794268173513139165463676641471985080178859768377946436976732898224586442718273152584555361862316460788727145961190446612769027437055162710563509986597309900098280015567528607511362047053903395802526623471998891283248409699521279053468550221919834573380133928377995188398778600999099139182647936282879003562765278756323438232841945845444431756947495908153339148017302168696164305098795063343510113815448435572318950393207197055278750395683139685201256417624629700800884038111879212654745443328803719513565012526991280400199153264494374005543714684469284510655915818216243390632761242345657142281826922545044193868553939812160009090398837740733237069891775682108869955121847113079715632411318521947145097872654337200151899937492936700398399878727550109328813136477690956063551364555528184273183509559433663185715923123237524830250511515436000766888061639775223857142026578107871449488692763049223757284264067298053262752461681963753013363003729309030150277074847939590145894820237530272306236648823591354665569844526085584065677103808905295599028526258962980859899340751230869589062062029204532185276716989315697553733617961701272844275881081937455544187963167921545227239600141675118149687155110177142553589036229384378701778611807458472679041961986707767936354273051573837879699113804147195175738946954381189730031360559721013938251211180929425060027806226019454075590520300611126937453399769868670959711915773379586669628943796205819075219963118360776316987663891545539739899846443917783050375244564445379987039424119681313011233763091515693663783241970715669137713532476315065986244142025588786217612001181332872954780673514077089091231819054437796554812666231965072732973722841654503536360095397213898758149280619588239518882390440522653227994136590209281243213903702719055896550416857431395236035850787526664872566107365625899913403431491433426689558825445783501309056178712357202375320998686577339489575801952943843843810867502592661095267074558543833156228363286206621249587690850863334784016690525652126714375632038234099544916877618018621137856331813870141101304511915197525309454346235527142441886530057355334695367852283883526810562568634935500920985414696055488084420292125735118836337326194302845212719646938983368689203040601138400947970353780017685432456694065185592143272575788331677362468518053426964587292368335681700866502292817733836205462161352479602984538655726198818258778267342226305562520691901922698728558891369630727957760279249280134295356293641843701335776461839485372479522251235309915655254714149105409405443327889983023322090668222767636088631741595432574806196856182912660582533201816227116995030377516930464610739439899672957151870370565109163123113230099456032529698735136524448040481302344316907944638413480358545303751031970667253093343680793221420552556393937932752082073819680815987360110911708546272194001060035177468897325322582596383661668527859518111238168870173723180408067366622079269560950266304325442787536006281457844008531340246916806743629081550926361572858786925045415548540260501488041919931970064665030184051464582023761410114987115585990038919988537643491310330915652522359896338373769077640045901699221692953057764906954511966788762609803378743922071458740823431779783684437492309945433650463791331018381691590681098765504665681461826526979216123443232975191092673722214962230858851503494770037457363816399785565770965669488141881536966798074403184593762178430219253494946025381479966406735207674848506011653181632123113750041263401149512772052662188557100513698432144362154000604419801660583043826369785016095608063798351306698803395351401403895371775533523473458002362448136934803435261329857767174119985597744183307386741555620317038915153973411815003550992418622114689651963594689331651572658374917635233739549270610508181239186515300459823476270897379850510615904508444073781400641488570266019928077791605053905255688295662989485296822536284869435652132264015032265641099834945817797236206000580259845366282221558393666670470072457522975629164744507752936731459478573186493778311080755129011999413140576644780904427651090382557608024901098354671327026746631302546617579126426065626321969048840623863128510377119736949959496942021626678229509634525286459723170861501963919282435973007266359287992210966793873883027479100485735247854961758742935492618221450061593466885091596907917878452858337103809337558871185617943558775068785584026722279687795849369268325083768211711011484151355178260846365756750284369322737988239205483723203535050553095689794189692510471953936637116636046887005771664861145569152533441149684643926246340560492605414271795575362257134737651567527174799234035218412915133786523388916293117331441841836452215858847268276888991072367142220533540004434690586029768130125468664609273181681462459546152753808072947153911906615782699247098427497442132258293724376609253151792711924193616249350680106255363840075407909716703575245950787864484424860658019499062838902440604234843674498728693324988277641963866586893777544922154953667564053853621511768310146127598824703692632041863510460961270654014872598260007113172907410163324371715489164645013429812919172504102214067343189954754719771525533118172528801592209157263604174887413056026115285390225949770705010792260305641187580347589823389207046989351306434529267953232054690843092028903848217489377380503353949657083893362982597168985250450104773070691942055386201282332259282690081251545460356378184663492248670913585915824805238450785638353403357602164640442473914591778865716233899668877068667478545212653890615395849770087240896632569860386940791056304379563697443391902611395207445687807340020706905044952568986067271822367864099596253555240782457205815967079139349996828219544633462513148288270964440033506741971362118112108636163580920899356376501048508196926927253289539300169948776164181594387661449926652640412183288972450115578212612878136295280373740265587563043396604287931149687217966715007974194585217902895367413920384541234387731243334627886036966680308871169399275158885981564502486382834673971473688083689554575714259303102619747172171028044482538570939034141111587541397155363534097286641787800707482890744354035498944040178661579416897789613806226130389319119711434580680857162442274677188733353526349337167794828161897545617292526758301823151674112483403844936491710544152611322780144688757519658467359661137095188308027614486912909854172764847915185426554929453004819224216593685674955322986470243447146619792555999331217193546540659586833252415112772941595028670425697948388600404135110353522384528960216294435006662530450810977556142548170008174810435131383293699768116097512856381494701959078169457607598889220630831026276983880964519351416130171115561411622185739630056765199558220195276984511232305650537527023467522773280425626937572339204697537010115446851480893903349800191470932895669759091460099146224116010908543388360718181631814577688009217055574790303157445375173638659759040145111769181162049162659560041245641358946761160661347935013961460526440163896976009795429601479335296949728076211914879541454636496062155749251527790370529939727655522890552189562850991807140836279497041861970372185346867390811711616807009775867372429061363685021030352792711879612514908942883162864661993229469553994605288038130579306735294695602776318654692668617708266746758527803394169436253193249005645706710273449293722650194354797133631200006595579919723177189799396684183054603114714739354755184820346594104063271661924473998888929266341455846983551373897274169760223444604441767747519703534632130080199888216743132335048702632441716136455828964554296414547036626096149808664411807538259979514263263940240226582580749984709786319495041906680594589365556551862841974655800669521389808578526145720766497331881173147036331829069122916169415761351247986289765705086831882195319230405460709784760245649239204968164332800923139502476387294878003092414872693785473251839157214885388034241733197982468940159445696088764006428312755534743113545175635062567365781459800936586080200233717879561751504275633740335775259777570966134979755431555280456832473709808444896854752881770607835041573149155589087376992312736448371049263623069420344605479407192908772527818315249208830124568661889968212249109509759127084396016568206150391714937319366279595109915987997653153537560999511917234728930485896989509159599682865192323239858125376898869715146610237262504028716726633118726424539830971604782588205997367930985809013238567310700677907174348829753012152344418678325868117887811270192533131210418384242865322904230861192490507726177397631676681792032982660927884566258813393544838391384764108499702508149143048993450945045287076653055950760847951714056435618238511405341294043167882632299932256893174711552514982876669940409745199124215141195940346067072165432557524294908657360949731966578135288817487535803695820386399140818354112294732549729476732263112041456289154252564195947820332099170196958022835997322661491826248830203306058978052122342985097808941190491287159215302708092981766337705471533479883151974200655332226973086811369364495250598954747987118260429121916877387038813455632232511134314064968570836090848983948615524145328076962037571353086252365115313969646534598663747357143082673668924264246513478253026531884005400424814111488702793994023212632836696370563098335529176297321686795805958488658521099111174754921396979305059357929701410118201071703371303509783450628427044204125092526456593611633524587062898590678581175376557117126292055261869843708967919212072713505770929048913842774688015045704774821793209598558126761526366617938974483818492703800788475885921203945329208821697641922826408060952986537148915685157218726362632250957744162358996993107093714116815171586339394211975162419097839551199472810490214813997464876010799864243295052410000918734965807925452858740652749082718555966826455732938966344882683507854298381350567514140470635580500316663236928612467208593228126684733885091071560931087268427471085810942729591085254095557384154922614646668222792510297592377582506514755202088656888243321820277933890364392731588523061390049155837843347882025892094619823678663466600441363751545164460920480018902572502951087340711731310430491721816560622529414240108438222552683033413867711476208496615121511124744585508526224560064709199639661414151994238397697085061409901885618927086531248583374689364400481585702155518275418065168984992629167730417813510168865191062701147135305825981446459387634665346831643237989814244279031032231640079485224790152873906779314244035888056864223690207384094794619637650031611854295078319915341157412191888677297078298919328153896773945291014011657390594725415650791203425953971048791505907348903454542238156680733916414657979668574878163741451981045774526114504000782025399420613761913292686048466678638278451613636367494623648618934331753776554608310745767832962351952168803229825566088199804136465867274714073876351518413976288585256168450691774980050437576140683364441283692826191076018517346079177356063038696162848938406965552618366752646009775894856326261388486175275066925815086837990291160798707845182368407299322435079931137234481999683198859407176898400234630435574922689026023163699411571926662806340439817238482109987793891704106724772302465155930232593014358610833448816819116182588870036136877469048710709631882146379182432134000051987416517306816105625507909435395010445984604726393606529226242551113332098633742674288963554594816988145250790532932668578925803845164087380415663925241744815239205206174911706630240226369751308827141715191210103712612530015079380972067736413280571301109359603330596627627931861127105527181638993009124501628600482619488872751893338204389700814215899907054311394541468501465514827551675356562425714732639370470293385476372181225542956538985540463284846955301680983511133670809357538598363160819324517926222615365950306384181829780830431495252013104194614401375131490824403731964692645023450085387602814966000185445386551160608870115733159875216789959229997428901103668953011970375206987529668260031217954461650488318988912989192217383707114949608068215921773304741232491059325803384273828829548744682598020372251547365288074228730422744976944381196574968210781674726264542071140470381228639729886425861757435494140094023182203044407650004003847134334664405782231054447150071855382822278204109554485556669699177511140272310513041620436791581842718170383094657816664868628347134419657059492595718800476208393451487967640523230649895192065753869058437102582492370792435719403807148713604139345980634607680619169507163787094262147042924307122678361924008690546505838471350824090280061288902517302052037212759756972629945781962468861449032800920499079816491734475759719158364205695116927590997546368229094817918846963196787793808500435603435401294946604949766746728192214936156972634289084683169511642444637960605156440520059865542839603808924353325272410100539224724614657801318481377216074839536082290598827441461025962154832686688397648759703948912523809872298101603146399192906587013081038880156167916296059928577486601173605556980712129779474849162893354263438592607502794258244290628789455025082056023388567343493858526068385133343579854019985832118657832076475310443523844701419419212315276494380262019700305373154202988347323588776144155580468980433158353179484871728999698300106458441992663301959011370651751107229395079011329943003492865456085620438312475625655282978308067196069926125106147529986554537742862904950894679377410348039674542977763319854796365485701874582715866706955153497783377411678699239929631798333427163340760724704205470970857460994272855459610805998639989233445934424925626310384249539593024094091885025539477993519116705183795720780983955337482648020134236301244303498623909167078417402673782786656629624500722503311265176725235755476972223620663650743179350534615090349828174090338574774836982783309650150649657852942306673738456972200015753422342708215901332245061068706420073638761882014149812793232446383776778986920180546882324842331746269152771220276740573844181377861995726921319412196149570921648408594286494934243238790597442112064735184528549257702884869082171474156913593610209294550088394133301551206482637057101091368414777462813185619637506036720102795334921976317891731846080075689556744134037863015027406143732653390924500675939248837917038357505826073334983114450388343757970333315220780847022955864402105297132112953742412447344624639489151783135375363328362693131007543781834101472743818350358092924999924501318750663105398146786984779015274021841433222482570491942014158140571158023555646909456303585776031738467524818769706339420292714801611175657609583498310497265245723248572985009953562672034969517570256406014266089290096913276500856468166106746100532581264266536322252604836914428408656492878194553739984714958131096327927969822264537265258480318170918283093947261783657678764135561095037113827413501395827325012747936153309025746655382528435560672295610292877862494723229336298582696790515724309347423983990448462558335106890142129693962669424610286863657071924511831758299142113127284189514734377045703190058526683464154729580587904444719886054488019040849151473787196479076605539403794353711416625255138026442611361038484118096861232414971401660741596900901997577813350955850657317009085281926215014397199098482242183154656699767134896936300581436594350488197719091699088626024514872526298853861620618759803697339594103628743605094326691644054424701555828417566473699804792011170089232802822406198119826704179100303568963562006926024489815678509450455802255471832424678387762365790633573773743507851986732566159659969267170691151627046308409316678860282574881818089621608435428164749781679073711544845599593132267954537332186388016170750144210911254688463570937404805106851698452230708877545479463941670136218852485789100911322443812698684361647674783637202250582279368394323849840149403742065310991698778951876326199374403736799672720379135186034360087486502146796280653734189310248913020157605727310984452604704553822462071814358571244335989879559297146370947094881423110655647732331692023771593033743784264112429048307252986187045577679478836346582892585403177313695363020153877249625160906178243309741792590108434564978982873768368651283676112045316659036576532624492505623996130224329941209095108823434389777309023865667132147050424461078673327374373794384833939562316758014259626624335927318350199778538646904426454230920018059895445294022418498512809436434099385921232012111887620304659992583974738712351357523547194727338936917222497098030340496307312394173966707717160951313261541895092352920909970917344098235308078240782267606772144688684365517594788991544281804455731473633446896736540554404958471189419941439019439790931556237196392720492821438982898039756260640737828620940774236225619031688032100592786725019924049764987106434025320720655875953974066688601689727173363381748540278542537636355849243901148629548143912980193766478439905778970060412525056943387699878155482967501106754091873339401716813624232711780331439220136737998110837442304930624944834542040053349451767469649128506231299157033906486992263722145548946675198119197972260382925479012656832796914620691750834717685857045380784629727869434527651186752810643958536684643876652478005187110234583844426968871211315458600869837760796001955235313209188969462973083682799765462811706067676892651390476606828499140232738049366900743175461659081476294730093041523998756729119427270022815815196823397517656248561048306709316929780040583975922845896353919003157100030467107866145774735095534803803728686373383013232358171558874886113099954072378427245421065265752723251039911544714842487075149353033366237895449853891040305505150261612308946776446087353317628769955928616736238174770162605077715038847029992301314852071469551375806726253357856153125701167058230421234551714295421439011065872749539355574499756981666057481745060467482792466664802591481165700228171294643808796186625791708870512800323039572511433438228503868338021350030115407516899428717723158455004856524139951492602355704372020043232093532219896806623359829004868131005792551489479720900619084727726869218203820263531136401287759545259760826135505031152304336885697322719457741552337043999917557977064129588821736507848955105178634631813510744924250291722359077362944255330935220153968195164672080979563720880831259899175901990351502803900947356773040675439336256552877476163031607090789955067789013185463460664304698636439251697551375654268101858887393165565039918812910795957396298106220984032448898864348076036911084622218063694107497108001017797372126458437288533612271978095760191416994024682913148279126602224146812233814230153120788069226175560964376844531798569462441740219799709156985295899842493580373923274769955771468207808531457253464446927402335558358638067752424980769964185037252851646974547397356511899402734560526877272864751466775555099997314667946830676130293415066517048209016034010492102812274659166351679833658238546833176323855658501353262006965274707882454540035164915784162042612671904544976720249622205549874277223788946444715077420194906653353841070978584428614851461852787593563355434083365399009275262769228023293132985070724011172394146040961047036988732012351773342302573382447663314833695284672046149858254494395409407442464053314834183130612680344244714446599521452210056758818785161316022162596297737703908472012069339351497295193692014876969014284733530498555490281454716098042388671901354869311607339491782862015758799069613575320339541095931048528713450461377285124538682081542406374985861765193314422998739090122000798333557563176298695854655713110800358225406247757828974370389254146998606120366765339493397921511525194072997757080745471014494240198914632639804320423878571893961987985068524513299295330795614705397731976990389796149343479104846455958450073871632972161974963041729738662698828240807531250767487915822594002172315848946502340405193861430642469592475308223500276156468496063292448702582692233121522231386713356497031952167329568399770233637120756560084131110841661765302521787375296234615741114507401137370857601661762554743331815212228278580787095572034513892161231981757529282279908113302986539811575843208199827345241518338578540848108972551922433844505839237994004392434127657505937813516291897148892460525184703471970937698247584882331821991776880626499186941096612971754933283063532441111471224317274898865126780026195424556222086009350288621706485051305415289965030906519221189074089424167123543792482242586487244694178310762799264007340615793974219376472693993517943787129901875426479009121741600611373566488130409697798505394420862162065002208071289137347295033071230796205608399162760648853324615534319177961956679635465792737723315831200516625838143351900911043745893212010465492686653987546095581226398530712785365884616314928004319428485222477826408563131663943004186045880966997194729234640763352558547182317615292612733492633745670211657667084247713131311130313909451393657848140850627500482245910943863025893243432384332599432224455377842885134543445588708225170007526546237271516492059236925432329575629680760402683818303445868602045913871500178338717511175156148561178385797023220361831771971392656872490872737088388015731753085266388702426557582859769801744336459682551977700632748877705796002874866037573119580616763424605718682687425325588098150913204502676083185949404119126365939943765784227751201528525450978295226709811394438751889725035696290624077396069735349601440978983977202988854924956885418216361681946836334184625888612282560039177582087692627098323741553297485159404140832675339907698207705093638282506724946367111452627288582271592612235908866274592332415225238414516021470595719564164357198515508022631569583427654750967564931043302089002817857765416834170918196544765301116768101968929512686707606158579919482965065688803270491955460916813801179363187932252261069791636063421107559304358348313343208050219067880882078993214080232525472868577927490150607324713589711245417199132665950190255916758940017191893433238965525662052469465191920050025273078078592614612595232635881993343055848215338999616625178795546073855633251831234523421871867949876370499236178853653862531014222931706852056693973635280126833321133560447216597448010026374942062334304072586747095976933101793417341438149695388887301546542583357845410413544173517798457292942226336680355513326972794675824255283859442380509043116976971289906139196320365969110525680834034221325416140215429448313364180007060519680735870836743237025694870574765586080773472503601059972199955088414419075337892627083103161507191216942522168640872016258993473470603288183268151020344109003315205918499413094186221037981028667044744265332996700552824704184462274844787667103840569574110091210689700513679462428715357594345502421072038333243472806958796891715519909656168557383922699532512072050751680818068216962236330651913571368911492351426026045741669814670623103048475867007550748278757205732353164143181239116911244922074840678802630032083422404493245195520454465178558193143085298403606546456798702566540236002712010369918464427217214757480293250275627040993811321435920627413456053873901730359726078035266177479897683988021097482549109113591691352888707114003324103498877119701094956528788827677922263917490780127198031756460605713015983015511744136481409543568489771047535544882027835884212284042295830327577580351954314683347820829338197049042237997481148393347430781564288273004643471056504056575385673063526024855727921955937198747605799813525901882576620537885283076403989826291423535736631926674305446190716409268660368880535232090702550194383518335363132724222642129861571857649147662599113216027151484881722056823345168284766481626335068180592862381897318879908301878517717504546778299636678723334121398213124952567612324539260278140981218546691029173554394804114654943955715320147652385541339051519553830694226740257963089964774646875499398483221774122657444494199531736167197991956035539235326168526014358343644332070339952963629302394192332691946283268473272688344970192340295095978543105462662961223542122428535208873391620208678548032397788536368885259854892570295850393777905155273726998007060976339299806157748481527613434930378358231760733794929422947808947745937576527485612831375317135263072492569762546028060941828165549544756576348516558086363822965829714482891816792978176080955015946528639543542927294363241926603243491681546283091667049749804104635487112232843706359835182147857006713015972790280384610883314259573515717731635207907707961615398249699882770280155493127052933730036418639591426650786818834919402781401847489098908318913948256039685945030772533047983602170989357406641213893447721074362674053422212070000510827032183113544301784240563352041005674884667902395343074935520889563805433253217374363765816710290971922541127060914517789050296775411806518079772122352911712626645159867323574245674503648381884444898738606215360544474233949234394266088834185275131627937238473217459665808142588193849838883672102760497415388732458180945501065674969172495696527158348976314399959787674872881351513077956401567810881120811905809328549932081413443912772385178794157992871298959180369546115037640796876854615771892334964672283630354433148604696139211695464505602718549050607442411812235062153927931443475285656589616111965993361855160252668494451280370340799539015239762486282595029188638030261750809553328441975893399177089493847607398747942110050730408575145857333151437256264169196443986974565693363829531163203824923439662273136361935330624772095338306831716220910303996690280340392277532816052385617687839329686642958727456968519647112799721556867567701529202899980622084440092661740545749807279937063528836818571360872821210984757850702434590348912636968813281980509319876372537513896943569776527007968568825865291754216256842977549133743994968775875165189050724993391495880977635761089842204676941082801938545777565409164054109543253889039751908566273361441887139049503772033183545985674830461873255041694642423152489166875016416622603659148247676034074042638615437373274238106804616355883299146953710079246220342935076758356544635704472597577834217280949775818249770126343698972408087825942961685518797711459929907196611875596161961484392147484263499300016289132730161940784698596102736567706805151626317399695349841357499951862595649965749092160947653214446408402913564925297616834046643168997384183994273752105824835947916431312884254872032158432290230562061977905428045040542600674341286056970451512430139727173054693285192214013366296414108207574092865265274095004490612486024034618320523288115228636245555411302103171875687765062554479382139786862863939210206303459440916848806694777827736199970787138507845668739015801194106966008039537983302862607979644513349190437398711408845632373779354650933701355667125235327900312668315872729824379095443559053079946170577077883131295256306965014480018026993302588221029651986999720954145632174436140620526222562594568272823991218031701418937483915841425263855231233507974504040935251191291987138152100727801944331287776036983831015765460437690280839373545051898723800121774103119978818086064619881627764989685356621053580896850722215188512252850510203005427041792068719466725862835622443603959622953487493203618616187811999944666423644439541788148168217250929786102100026155047956458410268387412411750579415396159597692702217093661744622663518177987764340297230528270376473120352612600010044291146663866479103169547635412570365483986974764760800514038775337688710219983117792556703369520510524484016217461341289626005559164772644101341601140464176075603178178140283246702581033446968696572731793982101158577149533861547785451122696614217190587164372383622608009789280702779075245326821021695054147813643507635845423975384940345950878049725800176168720982187672619071012370663049955923656714790215785121294801139508270802125485327841799467273047133568256783052005956723436231583989359544433053306789203968774452777397137329942352822436222548456506558101031713840589900357767513527783122288867763761935977096721202697332799030962172425803724857863596476157776190833423812748116468848060253462244987324249082617657029107423938917598478049766092408087225866162609552252251680584156243140401042286248273070991243883701501368812131890673427619253445911926687783076816888431976184575844291192781331588458620099771655042575111975459424289628427833048646013612128272838469436446791123654575621407130353211576224692507295698928452350494960661095624012950323546517104027692659171529976227735499217354568915827665393089965861875036956533286990174324263018604405301806075463970760453655857787421595773919389144962140596914155545563603174625181943393686510479999329602494292988815434963247972082786867018858757035421056710951031347997326019527556715597494046552813920245742372197284620016308083370734008095685647133562524329292466625486283972237404345824757998286301258543766627866104786099891736413508291431513124591939740112168887046451190417567982753786907182337693596857098367781804471676728745749396741883986776552428667488793091048167730358071512491388617192295726371200586027042054987930394499512841931741053626260483960243246567271646893756450782349317426148290935144305929928997931243709824856012295834243023332842526086750185885771430816214352452129593160993342086720163313494163759681045745368650992255199806534947017547567456181941288526252951089246873625346047039837067823512521091870243162010619211620881428891097078486807378309577186055502715511483783048862133128103105584702187396173828954744607143332685510822553066559711835831777132004633011064125805307834936977809906065147367887194374678223956925413438696479528499319531595436720708295738931201335977627476387187042271348127214044100266605457922139515691979967550240607365227208923122502670482523293247733705735113231816690151597009402397881923668734888884584385058594027448341837077992623923347036655056562031714879091745329735931393288719586491785552665391468020197297422103340381295722682441332396894237349380971205545156853263844342014381780959268148057059332600211527443424887206840595013263950013587070288714041826856569554882533058020801777503247239762770418533260845600603911204448514019171864481348669970153154138773621533022839828044231933943089256428490990536417218630422017635265266171534411486415989291709946352718672508484373266747071847958937549615681314067002329131849393189116656248943994858280226319273345309186380239144149441370426864981674611273287851905885513879194171122817340691890691157351407037112022377659314952301683776844481597388318183361529115458899122804269611678761688978949596210320217294737101313411387710210039351453453497490932681750380764570731384207288431459489524241963092693549996823324254207189392442245399531756387555266166203024948914292617081623627561787161027177102963844604484729439530094056682912850514473782673902613076080680296485691954331841840573400215882271997307731623805864211373982919956298451606989128698140076132060743857511768484871338325733216252481899855657633632313398186897610650963946882632456623249851680023676039244658646787970322352258237491330802818506858887795592862426353543881607203426666787740937506441530953647431226817026167011575004456450457074153386183820835919885207980998985672444028926325957217642724818934718084274944403788473104683780240231203045025277174477041236935367113320301399644789581441241660880734465660025181039152651171397208004099279943884644649395487218630955263542099382877911901081778724899447706064617678611003624927583315673238914162884214124873047994829959786339387425589138123249987699932884816443355476836913692783983230597335485960740971836839249638822440770426142794931444597769768742525703438916647708592647109191641026437050885492736064474905285120964876900917148863327104753413917061083641216398547653055925981000937531348627402178640914138397795069730835678098433718261546260944276855096623068878540472469049511533856300995255616909811341640968664539467308152946837711687838418851252085007984305108132962338786583649327168154805625483347960303671715084964769340919967229563761994775091121365160106622507689047390235714124892530478829633588518346464657121055988982810368794631032748329550181477209479028467344384757775579353849659961529274800022914881232417977470340546834348027989461393252750385521559410290027249063179754293002310776108151910272764444947730644674655956665458572211355961493845938290491867146304803908169011675027490053595242331502532431376575565493125355430543459929588158779011520618503111605635129494457493767145644000200273599215990349170512137833921110298781856270971865597807257721801896509118757127758248551389860818947695026045089776397962028003932843520122916538833786273241610395942556010878985086279689509701998598477897846055381984213119150084436504392566563535271107930761275638067500663752975110041260296707861623223154947598726096542716554376237382513514708009563095307515946453246991732732426194257730342569854638942154898726710524727267215960571958550219014994021928761034464675636740399212322035633827006322308828077962444145955578915132320091453811399936250784183233484180981247348393995643980875075994419718062030883899524179165969292769948461422606378918702654167004686856937988570740141560585293208933951618349505726262491814528486138487584220970811022964454845992997765436585125655689541560013555819169681943631846768313475231302123894648079628455598918684142937140625760969809312764244786807403177767215318878453762908155762587762191658186960336633500545752503864407624519780357194242105385280725408279913969331401426974398660310827140657450535792920672810033241161638811750302810119526147976808709043545789063051811720075088167206468732371097761022262090426413657470306321383171771532905683600320289940603249865343011958882257025882219106213651040642903093228343170405999968317749484298807181895883869821242822338353630255428221736914576796568817323243217883593973488076072258058313363657114492861620758938275551873889880148418920039477027577901192679300376756445334734712082206722843270555974090808595309993314859351360654325399492367297446452535747093688218019695271034339920940794170169732688129017592339415832694286741931976754750802488104518681740623187199127059331095846997810551342764162558096314486392642443641934866710374438882900509076978859087046660184457438221728150039905621439764478076874655818210611228971237278473200107771180605290483982028016510773409163150032166204184182343428324195690543514104571515202867787718844742380863792632047947263323779617394681895621436332952223779560925633750878799862808947588846401714985467234077339699507855183894156675120048199114278391378627802674403959447557059448601794120612102331204645796739343477093445604347225711137405110673336972173071422211527559270834990727374695102868328210026178674721446131863560248912262004284385239643548045793868842873102888132515784388444082945739480785397419253612479494316436473222081906940301425703720290471677181891293301770236058905824136206342629328931435529394654658234653018406355254621173728252806774342597103558735892704938777031741219324276192614036305302573980763707358480472323220917671149577869060467214769012424039401184118604887357630113324988165560416629576670757492196872441400955752743463995214062807906791762321121257476974570201777882917092442344958715402450741179582981316460808510839236496042139966853194957493580509714431244794421888282300558512569640976533762700632451686939114314542036751621709774674612314623856554741475453309123827904431547717591473122494187083440341795044319416827516932434867118980422957363711094580829061391443071687220864829076565740856668750358303019393612580225582911374989919784065259791833361792549038431864454996255407708378575755056554259467521917371129545181159759222082679627969651734270701965726849959259663060503309417122309720554307528625421412441977082053155009410007071063564716717292168502481892277083978488323601382352100798397840229152571353273754431174089222190024299384515245133811801410026357235030810546395304433196269530266954639596808754670254310563889278037111316530975687260291643676434901181048330255280681320114515173690716116476403505044771214385680232323659705629615394722362342673078786120071793614991567373747981974505598546916592772556335563792018274284677416432126541255044235272853955159610796781020831892090187248181177093630689329117827012897757035418158514619253263666772797127215463534344814853129742244568979005233971263458828156676831737093899316117080785294265812427931400951107946361802685062467956978582414114304248881787061141009200042729031622835628965121209327750569569278982322154799505303448125361795415156539556536765788614529412264671506609192131025844881340971730659314029556541741298363283473121774583279535215906045206252475621626024275832975201259927466662810497457197829410220497886902092251849324533450588002957857003353751183511969257279119982358180302418823725502403640357548213066176214919159121198286750038554998832109489110407217866619359533649950310258608153842267151129573439413490800020019413345415773620255839195371609595563677006764219253854643043153200532887995060125827129103168505549510664161163092846468182762946253627718718375486336746109016083845501965161320962210484683411763469456038422451956905486447372801062461176605482781170263035875778702467479296044331060633579415644374303443126856414199523622005550952868640941468758268865833557731788904597347397562017650444546136649106533801734441977729368327189340901059863710868727800360586340774413307819143977014778768927371361301000991829062887582168779631006133330146830485933963616813992113128349462204040277469999859614355958943414600090589035764466124430656909972844147231420364448829048904458926946256710202371021210874423715820981280220100176090512848001897028615758829455527995346823359569984047608221236982997586523954007547615994895824937136069010602235043865561089011709646278776101821465531354960957545021813781381283217119552584453369346503737138721267916210350918006419823037757419945539940590225267804479823479637411709158228884539106630894261636560639627073449733930731331963023347865298709035790092757259403196849284982216515868887147786458952791590205445778137334377096662108985680637676984832327430571963715558818031274608638846808570433129973527583145707384414217157956896568260674408677797320646434948577540742387910569264126656875282013577024406104756655756100367954483687849743320785788438311051587067321154571135058782468378883147294026904982652189778223959974263843614097995498038374117086202128060401205186481238814911099097397780982366638912319587420462426392815138282180314840905939233858247090302245230833229762213253785992710622879162941233559073844338915834300401382621958801267338337726654459560513789593459579151905975882347391104420131968339120496436163450916276159131416431715650370664117453191087069149531525025253090876139126614991210449030670066667340870553592319216372347569213494626318259241028704974645419801988016757312552033889342797631404637683055204433942457302010467715133781581814922916157587205278490888618077202312827139410549117944431818899926782681323901390688875791640942430976516297373391570114861819454761177952739762177035112482511427399867888038864602314876210298766860657965936313408128691539454570916576286009272467927597124696493980152514018242681929711722291475038838568885674041912783307063670989030027144935889034444160841186000927688041406369125732626443032978554175567581399709915529301415901136268556282357856984937077284473927282761873625609004631044433703868173741009886416178333579342910666276858613082255008214893129031268096091447627742956069561463678160403574247078151738551110930566567598884050981544219010802386859636028034993276076919792906142851479129481848166371541269212062283365017804837157658426023949744745088252746942666483646619976779509890864345195312295613157187094812320396603476626700975849249766887700738996355774029891510787410246012817865167400774072210969771109197452457982371637422898878774135096623549674339111672738260579389767935534861195805561878764944291249528919248783496700354312239439221649229611929113332047845435648101699463677593018691727425023488423888401833404364686398282480974885223034018418519717114371074902584783514355018299654419298751079090249054319692344298668981693249818937722946888099001877233467505834096527467631980533068737061511892728347145458340837842586401084895526727794605828895692990455928402387678713712709857269556863614732757997000224570586303662508155484277879863189320419079487790442074226391690357226819068071682581639004535790353840428949132461487108298846711398080579047107536643528980503847250221835419568985742340266403443004218342625605402677248706611461002116023915230131862925825622174483858992642574265352364046171410827529361477717219291620476966644003306630511858993455768050051429833437793730331619253593971222735788305449846158758044225387386988090056138367193442562254321412837248924731239717398972051742604960449066188384906678359393541935590281481649877944848640830149750936502509009133788631020337898025627416129495908117898497335783928803261293420273013422286261471564973100028097108796735183520851088831369150892764052652221113208478826381273344245873056394375989001461419001073483176295287433041241884001135806483058687211200730843270696887062963755148882088451721459753993231977629232326198105695727568388631024679897992460506511537681609708998116119316130944509526835684916654167477041997775381216777482762358643274103282549020575254817076300587515672800575224386895509490334481992624150919128000807413484889815271120590529979460150748969834142474688927623693560121263022542734781800828875071582836161386135033382834995606447033506026281636658786182006347238017590087703259619393369925868629091831777129248595590791403393566007738065591566595844774252592221034590749987944272807301562760824826426423482894152263628427253493647204579396311335667998165596348063623279191526448829353944134316709742506424395082854414731530801458613441053164186500706973428998796646235492839976760485875507323861228167440987361172504312998461106635377522746493723917737195521577219955540668583425172436142010556922674566351634950094926990403552920783081909751458132665018044524997879719329936772165032357492840270216546802970006363653001721269201098121833450964681437163908949662963108685557215804288427926807808651552585011462304294985514159285202948684589858225416406179308342083972444542078988698832243093398091760175156566686505443548480595991209163995498282508805368086575059004653310674384682146451091611583695698177314360356792122356613008702308497102773487239468319561656172748359689274820799996289353056307779933570044695617609832538619454161653916962650203216585243464497673155070241111013653696301502579145421299457730098919335401320254304425211495999109183763459333205988376852901596569767462290038328756173055669481485729963246059742622272851368264017334034831841823920813358611421063325949788494408143026498953117611364311866939264573707485841808397411334429623407176856212197652327187306429204749769133159571782901304693677031722202033948511763303950971433644598290092427553806969385854740909855351823367784433093504662895259627149282445886849788176378961987142603813274751169931923518478527274105450467654833329540078056701094703028493933250527223704899359839856887853042615670285053568593757061831002412510650867394627016872068449402322436922074976654449778592528397880128003183517411120696964057415201902836066486478930364768383041752234171597458642654469481953586019945892850954983508689822549366354139119633160937197205591520292680616050768223535914352646108523907838793016582523035398413957363011426762627431475281938042746129495918486176289547403767870315686473630344084841090423015541558293869003830215474529653230677623934885470663458319287068501585707801329213248641447821752221771600844807277695258441576605988955898830825314751130911009767683004779199529488832998645616899930929973430186635139066692558271474780397292420435341626597277385870022366645835549651929009471646517568202189993240588043474304031827417690221673501589635526670046130325136377732105066594610129534728478131405375527427553982066172029404695294007684093497154766369619669135815740986043252849509237100551805459607575925326435836691610254849610374693241151535199383142457012120774758391456638533027290928487599720888283881906984392359551930489197768783358681986376179949641755355848815345180540345634602292221581277294479101340763351838239765576998715341314681148011994421465618941709145014260581744807710643997859278385749777076106060774337397538324702666486818905079466299844013036576888933364575671131585724499759172384923926768458330079177454546528066565896750764321943787329092420342372528549334760451994552437053143621922737255251272638612999944519110279223000113790061377335720100339257927885229612172153300493313350797364250396744539666744761132341752009048765163748776459480079884439704711149691218239080691610401163641594939386022249601853797924384796038138364757789016104596510325222632396018095921287852840100414787353662464707100454626715710658379489586783188717280960596989697808751790854582914768955072729036316568769438420304984176323806353087244573059787817646323043100345871845324833440524750123154538975888922281454059839059911291530568978134549294965611316849917705758829447219945745808806903809596390164881280886025332016589223481683218908923655395364302655723766150395628815766599905771686173073225249586186528782241872576682588770943016190632402302367453511475881842904780731124475637249801982320395607897103609920470082136428755839265041746136632675039824953507537727561554472663541132609834017966544282978882233235686516813968549716311071006359919872286844093323177371068870813815209106232572067641499988853197375517177391729010426397488512157341152389302178415716451480981549235024940702033482417884188594384115137713735851572136975398400043277325932560373954721028447062487584824694852374655789681883491899531362314224629322427776008307118853384411338869797173842270767027128379551705561844373434152190522636373152696984717132666188243562714247419220101515162551794420249905574187355461051112454669639633154622288875919568484014398102655458826907544760452046269697143574967636268988288535147466006035800371567095936832070123744525369453354994431218913758740233036648750375434880387896572341032189235295659500561223912183136582572640324628091189603175540544782125153584478867544301503179363789606054877859764528413458798154293767546784792277154520284184030074251393636642116476715868124133691947471171999785975491412447616603196746141827409352794545729267037443825783861114836581040282005030489193784560100304623174164844382604667848969252624651112411538931834483200611864445904957610133902797620947926006275686484286798298672452076080946571474566034913881686945516926417663341343773658906347794025446609274408301989564328116068479426420896157902438850784248747529958813611268207874321555901333223906693521226458521207596312028996798564146051400268160712353874408688951654169358139226439828127989775980439240993939652940700013013900997054867324716793021941033759102597221798220239528248291825531562411768680332879582149790865108631568776436719866467448731239008461076397094050307388118483766938347220338526987366485453841500566963379130831600071607471586984513566381682245305985202966133513528651000875713246311645697348576923704800615582244567369131166454765858434859003463182612139343258034606466727086051485767393998074438674309384993234177379383219958493239961782498089726048315767877171126440192211749381216799111260834014844812285210469724568984287604643726625766371518470961552563885508384448867806964350703988982247797567106788355243839844578523867756260037496012640241487159924909995144263661800435143564113635163310453380509508893759430877260958658649292430956296199864768720929568530665842168876077423364506143324142532557978401653564865445083003299001394363808337525273851958158480807572092430463794473736613916073245476948926030071051374175777343788699022481826062404261507634547894016812054349685740927041109300013263223747500384075715746763702802134249127604707693207254803911851038700360872458592964857395788695458969808283972821353648918396766073621595420713724041047807033713539570889143594747359259014618978059932622350781957228754341879916317498641734596763330535837579733863209888772704390682298890665820029153587454047929892012482960162870870906892914675637405274021478639346982916518533068370775343207916518243807289154404751507472597499614487251020749529917218100890076226158538781822165028124956620281442737604063943609941737929804258370731694927909442792726785718924799532725780899166757095440201117913420872029833225413862778520903553090891564958601926004819698197887232464349065878625549802501985114538774310513415394018075308206042907994766435141528919188108379070238185196092758131460291408823232366401221305734944283461999074506893464698063874588851147181270820024329129209157097980590257801443652630215535145873345727529331108201567232165505673764144990323049628824576311640569026320370753724425316632607821062227734772353545702920738796631852942848551424363416617052261020459813805425056987544222107882912624851358475215481582276660836259650807631820817561148524315840551824590585217040740517346447260675513478183091040976052701063175842601750286274922216889269137594891383165867994515719058139726215548887766413133829522944903857720168294736495705283135416000221550901871204345556171756324005289734501641666658160956144722184161909756135832708194079093019801347462609437883472402727907700529157338300067326343726396209692645634462846432812926878310764311194984306078553361511147831705322709423818317636980618828493781792016210757454905820240561184796630720207252353611556987239373608178220085917636710691669092542865107742872926372307033261649496380182583228359204774581711210825828688635350682774457292737552076345617768218115416327905303746572738205693864099984573627857826863482342666204945332736465600956519113411532415148918685919445742057809862263903861777992555898167071332866070285199977863445144153135072190223483446100827738413656191568311968646743730847049763805454409684473417886919640397957518900437050254213202840487369834067711163982269650279754488824312795002035767213215958246154926793939005753048304592452902423017816822337882056564132653241743616155641326045773507563095072620105112556374875251459569778179174770600533537965968869088462498002633648487439319415420106311912041499190661988366420616184519328577739399447616062946157715709293632524614227236408672128386896700838805996364131193508528549933076091238995596600366741023577908853480507682012280938568345799431901866597466996842296966075292197288720627087449956947534435605159505311395598576366365941472157256683946521091966019244176131633132721042318060385560974439870727948813416953018473393718714026445915498267784922977643551112813062710974154102256772610090935449843184055126397531033707175786764733605515780974369757174023287181204948078910596235850445177032659075610133831504753914896320120852259716900883281260546094479297146235201579504157057693494765172329187366306914080473400822926880884209700602725083733487713208320734349227348584605945473395692495802719585275079133777739208433021530351946291431244105362613755726935467174234783997019199568112661770404274148328204021073647575365528816656768980220866601096209914886601567724278028770544027893236902429587656214206897205122999644611334988956760555519244026684006672261451650518210513678310585590315098204257835324373123867276756613348450332583344259996025175273732879589033194975970698651221401092473585335742086366959339375012717795239723901015142614555709763072578597923946696728900753964665036475228001646777003288777786911829595607143276639789600227963695590260522538901799266124083010154238165067095660070865350168731377996796767746232234524847445004965594201750293669457801185247902034917602230899606669057031633257990679798621233379754799623912570271501135720906790572744574037979432401209257571816441734834608080803212914003936790734013694147007867923221534377897358469742159857090458918528354594888157177115719063841347157785871914786787560089440642276090738343951357181224309240778206191092953760437127402283965623360649278611462464351543868448676098925521484107989640894851279755085919905701013536695920438941196270305734828499733479510531278940438332349305113467576189855716792190174011101750927113563995480805580549650319276149694062266266834034449418165560746915522555337642306979589423243847211916072663252081682655635025408225738104595702737860355916332290724821528209325930878200581206536123653469805817640935758308957934789602317950374268263274641223842524391031955428155585008954405116835555725537255200740319473935445417959393890276968879533514701420488543562645039383742673449108912999895341343122448272828327357468471344133248342213868783452487239860154804429578954373281123479371540461903486751592629331723358026623999425181618627106722091976220087048914014896600990181554383686934786837942833009500236036015518948669185141243840283389687255772720634477976469444243887523223903917905088240222550593825710167603597848436055139222589779906070813168114244077884833559803761576350616138537115566902973833722024459390487497720346089124293541340992443465707794182352189902064656337889223266710398724009924940804957039918659334317026253198041026993405298872651422429877788459647074953211879285813347085812308352247216699065521470384473416140847555015718175701796300673805710177058045094422740558938667661588061510119808198939310397624457280538862338544230097411944487627487562186456196516109316279345418996361614399062752185949377241524350875359895140960276533053327271918696876121881884917754147146821414676631111438034422802928931962955490223979652770291391256554540289546926810610559559249234927465670687954975748051190170585165018498515610964239583721481394626589097427783481491364671640660373783029636199671113339397141852411744141896490675623132266916466789432269091525062159090298622239947142337786157211277797362530741400812022213620820325790357984026207225234546554851555461397885080197272037908614720813155903801880736163718394742061794831532836703145070836186315649041866653437787998605482297208851065759017738061307951340826515638347993524359791795414173607002014386623899310060669802790401757798162730710489679429847134710871234242816222624820323001106853354541763413694251506314491814758492424103929570409519709928725349221023945825654833454731583006775871635444188512072812913762030287351540328652958935612931454907255821738929125913494567728399624476894460477310684358035076403693554397466963924357575742665492707904795967855974077765540012573362722999457661463419783403206774542509963232350418412748349301343175689704018263583233996713380749871273164211261111232038005496238088035789455296171421195369441089294725856609486884995490908014130972094031558689704586892145733693897465486541241409371349998823738258980836369879986822809496122360360875715607916930926689870129715539435120918958859377579702988078772717087217854182306813008108276185041430275109567052713919322135269254258004822919780583220133057040212657578739035434963270658310779544100093035497159233876467086006690349886976043426762815632921896550984543537704296068430224684748395120153764770226527256597949185292232428096160250621473958714653057376261900385525189173545840121517529878214064561906749320907892486090782640366000774089902820141232684084337403182614118985711946811868642588182746779263878188093496607407155681449761301493731794559034485764105697435781174854608805129889034208976268932613880250672899389758295033745181708976885005972209800698984338586741127734822433111824095278630958174098145399636670628267928976189639620707896406088561489355198795004936796867595935038965660148504424077891961527462746116990700053200636680394988370916568432495502194288699430049269390297369634807639747397924277842801173533240120147152502685940781478877886742976943546778142896222908515193847980482303465905151835912190361806222749120387893046836135388722699995288377720085184554457354761827269330602963708013723502027377262807433103797303225073624103147335844195973885802657086370578981199440402380817671839343877396679017492580504842760260908269008165909764488697582105030962647656198269487174680896933020808118142410334239847493307014712897943395611545067163818217076092464760627920807752335456364090934561879150836009216434675987200962309413161135697747548531005394708584865032723571235622693719235604608489265265306533027134009634701374513221086079063662655659303156010882637554708912178625396085775663168800789803099883959933799291549966211479604460559112103980502789546231202501871180919207782810116041092503499894131003371518632834081210053027248751548173680207471534818699145667182572122348326434562374512669188391314143419185246480833738223468098797854446963182426426690236630412104600794318294397033744760891144053737292629802505469600605693265925113061724055858022606656574196793935615703141302148850292097041539721288997801810687683098242998941836978306595182255450585072979795872890832215257566866098591691039044973208435748879636581362217694603295942560100751367852143430352740917386996135485589760231390406981641356655374776922906282405720768411849193688834236147468105064715732543665520087884688152170877723999418442225259397861017331614988050348979439210510871597547443287497842064968287783542206979829133927877024222643530059956049341056465218901138563952841579832595433751347838345388901440896347911897165363422316631558991954583727945267940714045162918835918652302037142665641952783613206040405626142091994448207421051339203466689299285559131634491726840610751005207556110289780082690559651055330272909007017933627288071588751252674304706352688538566999455846681121471059170617019605708978602915185446486259191172331443793792617020391898981460470896774371488056468134927857249724682021452722856991093502168173445832532281908254140511920706226240353511554572695708780743942753537669308042413193015367664741692054155570880186039077789491025795103474810971044944839249610163783488712630786977863955449241484336389792311839379454805291761888167663913894738093458926943624860375640567391428070989529455591444302050870277493077740394099953998155170896555883269927247640549455069355730199497218074230461535400876365013238346477463688895944327860152159882919498309970001639358575616388619479054000899294208336652542461149162069657590288605833602900984985465577972903875823646080304434486173463897249473399909541380496433212705028244534889226652125256486198616840809846454769928292234150222696721343649533168721182226632138980989283910930405394605745897967531939966611095974528331216980693734637775930898839510441552237023903012980718805697122632814398042854249654392517102101667076006371929334556128425674599907658947068402882299171182985713279963423031283143416671241669932614427012392381234536197338146323165265193523733054820383098752458836676411543052614905808771497319226425790782237130729000778749449908214084790842390589756394888016194413362573493350642523997485426371262652791751671996121663317694205520265772061448446568989274879905408574647415929527375032065371178382040775844746218627536834244150794949668992863738392914835097589218671624799069478442257218646767209478522500604445768844068489695112606468789477652372837740816203575128584454621268081272824123834951347845481800993693142828583513187811497257261125650885720283074944975642168654967949470285455607934436467198786308045987071639423408810073840358859556641513508309885676704187924542189950687512726668304435507000718086436539089834321225177710245185872697751636998483187882997775176073188958360215346442589553413081813965598016475374147474496898312999441000362585755202949936600572270180960861914557530187022131891855083985715351603482157547378311330446240065414817456768707677157242824994981970133731482482142756051639299165088940180958667756954418940328888015031018045551669613428044955341136136872888683596863346281237913625688154436392770450801367522971241577033075948169737802944084374604414897959384994587369708760695243979051245163135409925175457725592398903076862827838048007158872547678231055985676163672421814717289659640564051925028302383028132687565612789282833416264063695777975847536844339990874404612580871497889697269282911667860851641467160526754641779953189307924303069386717079540702119397256602557736878987035648655749339571221985821150630802295637725611177298880460750640667977473518886628579968044379069697930695913062135905672633285893430963778152983547320703508694310199957028201198681851647417334631856076423137351968514626106533187894596004599087628979176509077924892427855178485533254748238545323653905307831964955463989054763799168092268896426662093403746095251633540534485249886614440507092220267858636468774725016462530837775531117048513134369943912279134766461248766071877605371731558841137299456203778833344507527348632448538090979450712413351174212665700984266521116161256968958780734504889439349754566343906689183666729826326370594266046981695781389474331577547185882720418979382089813379591353273537611140221810606527948681135768612731583400623022423296350480022123347162823634578506840726154181891171901035430836518631837489773774771201460218093891563697029323680312322043668953942486638436630529917730224333708551374044318777204200083711755947146143008389381896919507275949777827212302912839515907236151020229114018400229839604854430018114207927328637395011794049682169891472765922386670370096540384905758933958490845184132938346924458771587318789037034499427657195031077805758952232349184789741369718532621481357454526237061631762881630766123784841090812044148038215219979943522812211054679217055964307636895654941288601861263773525283455647797176735785237811858917690601773488969048645634547829950354013367330855581890825111834541800363770592591184876738352066580685640815970417396967507694721031215998247679936565888939528615449798177802768908737345783829265364313814926399905391306843039326972532012684682591493839594105991406159419170090460892904278913929736885906510472389467958674331036050450508695953994061172131106061949497888574931128896178322560147553977609037225763043569173326532290381183400155888979137691223482550813096675100880523983100680056266165383889885987247161031305700228290466611555266891976809073604886348974708227946669910394191481449435324892142362838317246034511573454709652531133778174080596237987243163991423484865841608406127315331948585113257283587464378669950041060377750342704514067425677545207638045029201451589278758817108630483988936259205959149813001911151944369930354036798127294511304704321535571033276137302174179868820802934065477532245452727538604355067283220660520863403906316756967596857251484484502288036580537866744052837302900470174408454816765190563792247267705045425569487202970229639466012991621364415849994389172156627214764234674370296560160236686144320408121669829142812427504996943680902264401057096905731219904806874295145410508844495006036026136973943405986073518427388452787959798706110245255864792967079050930834505614195319017681311356897143671894908413484157531656905509104038316904724312868769087963724379842629640222246106716501802594151066694838463811843564719702300647359367533197568999628361271549114556692253298926517734471875971023833306803586025561567093837215495241581524314787356221229692618633572324535635934419348356839776854191196359105039305999457172974495885879127858962621705849195363324696496782667998039726692317760212830384087027109573756274853012576921646222310259221627177749112206678531858145424624322599124379707773090457425922165781518029077684306254209407287783498991048577532097228683905998507987060666808417995758491304527664475170636630846836628002162248590458637085377439045643434262037852376059727408640799683287878790687900027307156739129714268410666392816027769207651738676386416884221559081775877509361631249485661371829547494578652708317126935939110397094613328934182973735457304451331714702421428011828034904882536675672335237939072365085819596572954521060288287736301743648255572831207766055645172746786326322392918432820011933748230085147456283501830252016251393536628293735192607697497463986393524539714718767360750180017051830428308746045635234102500766353512841122596855087385589189151536738034419602580451332021983438490108252624634763039394935217836520550161604951260875867622388130123163741386747977026719793423222052596775345798277599597358579160207608388320279062365095299368417077557639327260239230099247887136726878117133723578217801056575015584174022122981815228451276413539570036397626867017629322691512499930212440925863544967352659859984268520710969271762455985485794076187455305703325824904471670821729221631712654853056387603451278697986813721545928055317053658327566152569159293469277223549698652550423186570867146914189603569890747948723696933749076153306409891287093150810192797477130400170199724441054102377231393792429297410913204609033690547797669554359276145213373129966081733169934710215531978141689430748376343265682668774008858193022409890175021794067035895693213570346479484484331098504350801620049413811806134675084507780369005588920535023986630944031560862317261471907410863365155832859016735672173328984477516845723515488301240440302977475501921451870695334451530283910201442171940689809414287249829027111453569789651285676473781433590929265989159879369060911654699896688212022627745850217045082320768429952927830392182480592250667157085771870874925148768334033640266300911303355146334713147210603602637386066336804505909816882025135478864665209021722717988286419036820030008566909416513351545702657135391675299646077352983181587827127794171629699631392529931956110885337986197479126573562392096316268804987553231249380991796635360509083269445938569951369720417437007284419016578609855541567566680459469362618154278699534614058723116299613273545366774592781737156644077147173931228813144342583727656065462970677785461541790313731032188118582806410587289943606330108050139471678412096582974051309347131536192583710692125239462181434619108205624590533261018894197121468569695985941648068575840453861927528733661827104835125863881745591378365862442877708977041225456618220373629853286159435076008482969601546624375897191913849883318533233398848830847032647198375690393655849787129429020195460703694121693117961886644307371295139115900999827884799900125883851738787329657297152277184336118602683470010560103776620872174711556033338310421767790580901698240454541655917664526573807020363080315918376740798947311057095854303736897678281244374720139629399454699677420784902373463313885422604115604738894643270182254322156920539463469965151836909888526592102157518908114384792836404074835151092159256217629232273701554075126509292210513500739971683321056486097081599955731577456086851547076962123159940897298094319664491661795956689585686402920875362370855779244301880172801923467434806487185719086439935704508087823562359768933619101322879581750486642443893562799062756003750632072283764770611233061391306088639295893548468974353925827490819679823539806282176020144120312241567030539106385112357034907245697621143818765105495344514020139705759340710915953610098126883878151222964065015296054991768372645699474555358105353615473022276001297287981199043377971676116657112125391718225991112006341947383443678682302185349003383194991543222915255704744736890399919572550597910303166268912639436245394792108975178769203008392959243495619384755266591740598723351696233566156952124168478442495893367015417992037594133106681003666522206002282340507165828454266177476201852596577629579763471687858142640582393769411129966509810328238511911866283979443489259104232887889369198540711831211962095680086168798067286854532916589982350128822055051891049602388487486557054951119545621144296902457217192284308970372314344896632472909813224155449227146834122259562629618584561848496954472143503110237645537403962700908560622031796253450483139389314962231252767484126425661934096356693480202661029830918942951867688931711103845550497217007850703844936204345132885275119700788328747590006463443482220584535352907277433059164423531782725528402292960484730007109109614345265347129003965760343471254117898383598787604325581274497204013482905899737305383679250784610773710833437133273417035064297628165220671058624317579603777399219734452825638386885251058260026337295413442383773312704847627431278373914823868315632559404747509014314891574200571228697040282978448074018596076558329781120480376969473354418513785231947811339805374783284877445228326421587275159764027952234460344040085359227921720805707153169645746836279198347075696932936987941007155073760369111062303790214961378318312960756156307937969935467438524010249582209357071126206971153292112726048001648860228905128327091400089545225986122028670010229414928916735634196344317967016202254979022614507281685725785827293513150517195780064820691468521302920755678056132649880000883346235308958412218463939950898522653561829283907835001856192555055277730502855550435023900815711519837255421563106191665140794453315924611988719572263247808555633532437293330964606157812797515318260129363472488697699920937060919688949099573377230409040644088050322123968020262004153966676564047242749571742228078687766763624549493671149481994105302709202407410893633544032707291235203624624170236776136257906507624767506317499882807229270453925901077529456849096149044013524134192816099985015726060140836769019812577099610362658401685297054498805394892901631210522805134282810507534860005483431118144329713107153861141250764583445718728929422781545128548993928000085102072079356422344107954473097080127040793610170069564037373031808551853607236721736850736913270207680950517973446678975488879347042443068120343173019599429891340095494513889833733846996606033754121623838111600788229372624133429597717891951957686871555292553242581028175942948107889613497951598118548241488240800046933232418609127876974365632241057316865477309850243829530209413879564369776042455846423282211949914815843292237894383947731843153382404621384253392712108548621615383294333779756379693612608621282038778802798164227972058417207006321066949291933443596863831805599067766231204570056412116368015476064786760603410686979084569203518402372393910683084880140870738157810171384639775699762232053932540630692574710650047507779167716508949762593744060131098543872061204865164622908949798816368823801744630369166239686338654069404724769816458144409776970652894343392058672720887227508792605334084473661538225711088565798983071016315965314331462865986771321287093366375035471866120507240493529297740978956826820055771041145298349730382333431502326140279451221463052174898625990456568525718786071602333324478165312190329141001835250622193726976321802989167613269261297637678077520085522687740567640025206294131343688082218350730988323845600656726707181378536042046935408506001395711487377030491014610315523319507633065418786076780042822984356169463938680732012795359286837808611129700641383697510198309242783558999759682830720277798304498899289533726073758443701678604882039289719055973712204585769403421411855941821307878158955010361158951966474648210051833366789118127676256046844313058688153354296302574140217453713019795339580332200700269488856327752156559873004266731490567234284392540241677286868576564158791699860292313419353791880344702430339350762012115088666248163909882655611196070194562121081905776063121685982874824129290575162898184643890363985061367916143085255280426734393634195687465284747809144101147763717960049654019696510154970557202738802108456782169626278549619757745041526942763489949329258399727264519156685526572004728613520739345129847852122059011716015081314172754968271363387938755503838090119869881360354529592356635150949562773726191286220355642142254028687056808151158349377721415307689646826394974014628200042405834009055426580540639990624163451364018539559816671700493207617183141162446369114445236578724474773901351588347368924356259691695265508776825184240239315143700684931657035475875640685269674545959516158491748333089007360571419961047856467769762920278303915712260612133085558367998684472090260614973797767484384589732811505421191933152288881728762935540642168448745346716577320997882776268465850055915694401042417912677027481042343314143922693101303800721325404239623871470277051035534244298452281260754141612687547588393455224822201606322412835122642436353842902456765284804773637750186214746648985905468748633337467210177957314955641610940997485857314999925347860242671249483512480427657199727635643223035392056687413671405164514973357332135015669373370019236225876860517274558473730572834181377102395786985941172328439060297940666568819364007652598110715985040967366385131295840143928989034439061418838785468928403168293020134904978611917852151959407788476685977611042212018012237467918672334294897214595212385988714411058755330324787204708076828926910665514973396644994467477084734369147009567097247201213531612170255730671029451821354809390879606431534088676658052583333823885407474076525189569309026112407089302594187670468683744864950599305441341709090403891917445047304712107925981032429049619195033051737682212047181633235973714413650104167907664152415221902278185549873578058459354390468583805071478377811123150558000021797169677289255877581848526767519341387972079596296045816400180469331052033848621465871599038590658065158113811490107567042465048464004436187390028959723778565396036066073707947842995901496796446435162163861722100042708767019882441172883761430453248285825484540196991836295356605052911559689320096159205236498743760983553212505073139926112776640275267839831861073968213829125492267634656463892972897628868431632350317101716649747018054642261466472540066392369274940789118778177688332561173869477545511551709481834415747272107622776102019003327474521580649386109257162020459618387476064051454557580933331644229477046281199161976678433200599983677925789515770133776444497545656065583300639210058234225192350117629460487422941298374972990525499326216912455437797328116546057456394756172488115014302751328713764495351537628076903198900899374849415494508484584426866292982026592772191186551990209901134875344401298136380115766137523740058750302462409960349203193080067544917206124626076699496253660635653379352640297031949902838105190787651120952626583310616380001117726427753064390412201290722778156733233868242272628051008034982594733680817484083439701995840214736893142863349527508554180776578461223897213478942529888832656241541460150514971710463088661201498605573457062506614168765937441653495240671477928213180146803503540781681070195182594957140257961504087211249526521809041523698227572163057299979967252392484700208654734503802951063621069600103401796755944194723678281647680102191768992663893840340852684606797673416982666987206270001133384223901163800761100592889827694922296624367257416639689675991125172347157298939463000260940533780236301963698500460300574556344882484793860472892266074285445721207022726340817212811209062502001575445813710438300840709649354917886755274650753277304225974579133890548431660962128379739357177289381294353621413881685046244295531010790924487543749645756942461006855273935467144161587760231606243754829681901164990517124632489587173616331138253736620877884520282695656245254098846160787227713301505938950236202606317524631579322135146555470402997919264178566214521434000817599967261686100180810396537701853001709288171994486544155299439286821597688125108947183011905880889438263869880506915661392356337076957357174634417964571622928714972021076729854531789134620992151535397855959099707373921139234977405121650773333411348727473413103635154432501004013812973759052630604749124317167888627474684198634238047103274942647304483896522747658783876562119967711969965414620801860753561890826492658032590467866276773267996483597150501239129413959860545759290849593095897857499143538044602805083506596785625219597036328416882015919787742433659504349698298817187339297407580280708091499303024089899761590767280039603430518262926992241512849798230303606638291191620843705093908351952522520743069101771354945918463154925593528891292462290457369487139551282041237304698323754542001215547687483684695636668036403556554651536231064127886738956978204699535851717440697618807663033977494179052655094493725720468160993095690120307923730993046105866825338059911559475906499378745127268656624177619375868339211590506553436976094643289057911980975527003796082918121189065737416294372862459679418823598479271671480943422906479846784316412743261879900010993403313260657365369049786257771879772906886923707697341735970575143137266466695674651875489513870613717844131925968814110606759552057403727408251271665898150708712807806507297056581406569531094508333275256758334590583378006273157477365048584102220631915966487061449590849373272801643931422050117800999659388441623453846211227046485873374632407811426875956854164857209625812261095148496108041863476983641449559903783493878183108984943841156332030484509007271896590902879593706760808955258388129047691703872859457982090737448894648044937866800145666598968578106621285403699450804974310442474318520471417959330888953431529141885327976149535259669689674426346204733229446634802414001838350338929301190044946521779144967468380906186856400847447050361115134816112315235073691635523796310387757695387336608926054152726858495045614434956676494770224422860308366145641554572605919333498667285237327519119632980857268083804791190335836933629259516275822265864348889739552077312242539362002810205105802576870783310732611876009693777589054378093260691957969251547707249534680616775557776988070527411175649419784274904422278739785135553284233245699834615751371959207204572578096329201818133606576719845359832659967652646874905668169617413902786102838108609881341890514740810850868373831948816684858103398683595328898584365329113632738086247670108727119088012494244735901291581012497787347822299314165503969352667800477698995761232793348362966638683096159583038393949248642704839111892473584304224113625179508362373775698169761725503769217888383524473535955983191276418015326634538634835186481529684567502591145932519021859249890569549758691503173515301238922048885278915759912395680407958096142321432643850082075300912125729947485434791050065009437553400202830595480679274228158796664894064552128442291517719054822133430996874757606717660860840431620878618860191420898234119905466404107699713761150236990096079074948658448805703908355210960268947412085332232982948803991902144724725224018031373595669982197462007298282586116747083060761119741748082380870243150803542070492826388981169692705754744077419124799791273486289430919051619624080445451914836618462455530642545473862917078534055500139616568729319423578247730015929122558720737829901790729645847128003035269407389384434518783180875584540630320350877851362258934658990934932250083543112965259805119854835488368288527220504603741026488536294077237821753057632657528506425665036581057306872403680836412966810398489128569163355038309509450720703409752902319803107486941481565411599365791390491703241711639487518614015705399903600248059549544439070197391534040994168156675300974098777485731201790368360450416111613323569472652280997149750277858290071076603168628270238850279563913900103889872007401413033807022295532265862186716333731934069600299629687368534045507389414655944747015377847630712394655916123656601235185514756986394252872076850613024187248998375543795543989761778199789089666735413124168377146578783849734750491911465916449699365967456196781192463675843163149834189617435917979239709896340444542158796030485006707160026861926846091567098608749085459809896126121738475966840442597177766438390948017811958287084107675044566902568094255755862454612928822855255049461613915078912861816485078074757106562763686320856185260829767172286253614107128283794483793261981358205276612008400860209206091288000966334942034146215384219486603642957468406369410201053590299341798637245295540731400010712310647409661766311625247222332420077100357588585927548312412193764845727034124348164697493758202391909921854167680320977679474706340180054346016183634702512952387625380977355198532748390448981101753749371698267750378869940764124756086018704593121444125343708572874233166581467607459685025912697361438155832016231531987004535386112601826380587032455650900000152139714979434774547857805579261066828414714678332536088100955806680958913951346146774635795350136524907672427040635063371874818488060243083787699025432298123030915124844141380893281310596936405873920465220688448099133857178588792109636355167572345132196767231358094890400001715649962062723688565244670204425750617507524446910044049057004073991214615708504583288808394049175208938801518991246589875506613211143977615058994808150640278313101400266303992975454471702970326877481761899070267344946981320348120634942988809705231990240976664498766158558963371286160249731827230190230995054277454790806886750190254648032806194509492720693493068070835547940329796222817497566508742767221322927050091052141770316694354875110575825743557020716077987425695690564957881269074713725456878327367553748902615382870502209471040086077013433681773962215849128149996109139943892061010023051985360491855839782284154924576725941133022727525045007074042716954647845938130083797178817653645725228550514835231390355604383900702187545847134616272211722154048955839288815693827069911151338031501819926567477128673899560161520056207585750134509525405453573449295259467155583544501277216784870125897392942950862325737125310640126468200044222279452324026471422332874906984887923387367717615412805708160747551694287649726040513161621584732274805560249522525869891950901461612434174964629049882587507423148023389255527693910031545733200029915219908844536108337802489560546719350161510718058326988653363889913718596204641860054276361282728969466489026334943565163426746556295220070531849551202560889900285492441083692173223853440351644261433025294899410102520933816651474960614941634161750266683744094403865384745161017645947059794050749846801613848236555122567407508540885521075030594194868729145817462676045862557793423811279612448812384414836885522969345864520249009114360690533875505492447019928517853911218953539560226398024791337260999846336538794144280894143033004007976056138034636488907228848914454680853584859512651215496193815918189281948620362633241635574242781448381833396693243200080583395413084396034123215640705368132244193095053884868685691167298505648408183167232405221807374072720550966403337724189507780781873880906872513401995332836709532015341127801196949041588925184554199500502604431685852466569326732261274127324971004619184954713630044494510889729827082177452154808796581528345073874340949596848488620058761863583268393417852789314651280691044877841788817148545238927712829716346637580281503620555485984070736029899751034058389276733215898217435849871081230153112134997606240252009300922158072848909508049316711301560130304521152376910956426067028936817071382424027423737468520642411803440284612130598894341615547831541653584665714706759552182115607079244523577240468929245750361069697963111434042096798702430418751213679769527086111623199643591311949184853533580896247245927553209623467157026864923596373481726786215074808387278454268549277757882798132146399876054570842029657645768391020003530081714417091759519181224472591136768597205046293483688597696013312990460906889650026227506196204473837857534531101290350708922539490513597515207254469449119819111820272302814688428141350536971921867372467983791225523776122807717212397912789272537550277390981239968399949676149938489604990833715598060549966164184443352866471463161888380715394849248799118968091555138161579118716972274510728229813985162021901377331505125993465489170211854036071104336166914124982374382022370846269974147390381027409515360555580929377292197160907909854735480843032500294495568543247945067272634737306548024958126041423049728066910507139397420725677984850839772338820920804780110733248351548220736466183979912255505234390616953041266424913258647785832555749867964953761701450464423660209967827373165455195869587357098495581356699322737419345960955104653584020428129882291962749652860715095420914851721004579716058894620563127976230893865411721270123517568844944367994518549787984576826691680863939481400357258803136557422385232204474028631314615751391847154212883903863231620230258838058008742415668824943282365299143913636395457811169425559713222379604320637733553591135950680120961892361419687253986964218818694771970150886728477640989992957264237469601201382456780776896178832186271561760432349578785887240550638351536841382554806428506732806182997885179173735620808926855729994817047228548429644832564050685250210336544017585321452893327957212555252486018988062270739155485375784846029380201647405568141936220743536380094606655033737777389403209227481335692550128839591254311361753449745159102706551295050871742067585811474946843473485819746475163805625818007723103543589152313707002911817302902601298883189151801050245162870538098474766464888953026009337334815388146074954007625818985440374259620508481496336119112641857150621684135082299954606230762775457705387140373856767808520486603793153258498452373900770203067469410602427854657823327534737762141604526671550192221828054955770496324021480091674584830048594131715857006621991769346684442020097736890808364201228994886818321631066027929036641027762941733692995321942208935247450479755566849852928563690664634885067363859670408664221069814366163221277798260274559193039230283294137521809382492198459582707533068936739561515108897284890648246567015460864992225253811292441467337300694232196972310385776581714499976395699302505959478432085784364092074871870906273309153268002849143217876649151204763080436836436310730367627847806133850113533666166274001978092954754749755567130609751047109705551301881712624644006250812714745805632224015446239565104573885044242849610973050295614150799983495437326705953144709278163106579620990930865460837989290106282279358070063282841124060852995471303309974051740911928049634189739847666453783558506507668695222084452644658696724369548652153425300082258712868567914185953097036437725910169130104980459507426161306772730973768344449001240824270559351173316532977050708385984572763522672434363937348649221759719270932513228182632509128760991463780012886291481049770083043398224669970892150330644681804022982766269526818298344949034381250647217571109425313195506652052436463998034690036259955692450431494882607036736776004046844519005362253276168039435154059500172976919221035417892065601566898902565020010771223058426307299194560284831787797280812216874648733998359792351716708131085131334680310339065474396290553526657611711614288598893625106980302877137347550514121657363984761544188736299496404610090307886997441576493547425315924236891650886373464889352899040242453419769369933936518242973517657802416608990559097905405315799733936414673287084742652708497160745981998746673771116900765618064830971750276085719405069423857446055926343846979604320835806313843345947207030103180548903757112941056639872474637503188351951074946009148175863364115815250395573368251811121234568850747439550042893080626420463682573575240838836195607674673307746529462198315792556847056124423535891029336042892155823233417930366661470324638208713838833066964331033565239137386174540821290190299010367898203346913139021709087540936158003917755883721625118957519345553794583605372937923048373549516971921671542226783034929165998121554927669643238349579222441743270087966083075610943745375737904477562405513330733182588720016205003411089700814350655510705855572867015437667157179597821808352881547648765402585538619608520623371211169349913051912261762239485831140601505047753066435120986648033435983921899262241167078578960123128587742237429432467514384008240587020512986609993630390457686701797985186925392641154464522315977858018891579239667011341742474111879750712908254016995853555248617664394739402179241717957095217211848650621872776716850414665564682603989507979965971922328311424538197603150966040456170532181009665755082884855599663513378378451838124331448348282489316818456497184855834996256484968679786829512895140842950052814046779188053719609243386270059205741192814869405779353491068689308231010910943334178170182205969848795199672667182482785697532948048596009003762754224606135983706227796968071122199866635004833885485218322549041720594314490910810253522132353215630620241384786902028009806414411062497322994370329144357968185856590520629842841463379665171971960386912816400884269662381002524058721062438723564952993133843701105155012004002669896799116778538005080542071974740570763110247133350365847718760788458966567438117849514576950507747396185015500059937104122413953984717375352543339967849327517939557463590087811619368719828541004083110022560235945240275631139980401275456120152572709808798216959543537433170056767430897191111844791630924881980193313035963919827218557603650237003381649746211338567095518987155958134178179298610755826691624070195991062186097889866318012498405950789494828264566188504748301229249815701868940725971705995511705814108929957525125891602767190255620556378283931892446539041617766581868890345384085547379826875277470252042038571551111735411045765298322161331454903434872420236028318760558991123195907520683451777403805055107954142157614469690416536232509371988154144259829362249965005021686657858335957810775993916501229421171720120012218944142275168705808006600013689607918840008773810283279964290273175978008523879524041180577593486490997347354036438479155378499747891838459228643875882483791080771692015792372815368992715315180650302289795460453239849356204061274309334484168649662137852889355233067210681844505360374358859331888062859044729778052669552595396600238056201425127792715224258361635379112184794896789752373071593587794497893943630483740436026074079872721616599234272003862111488842424638917220498063127516741931935503711800133899365610176238026983461860885042060705891722885839810800054746002939326929909277193061116693439658190344725789353912459546959690314653493196899704803865924063494981330015873499235021999355637120921509768167668497715821891086287460226058844949889099555277129477185543631499592864240809814629372910131281442963001084342926250263088899761122427862954782901574492266392482278502757995497174301177034936921449062563437036629854771508036775995849632908462878173578747247348152355807813410235056393047528581007958540847580717163671575463885030603044762389330015914875749492994525477654525561967935480567971524846571203793382448735987260295757504747650709407580336793522595902579632507932620536131905285006666238510634607012611660467868874522745489108982005670360220610080085273659747381711923008955319526872712447845920688712493985079638502546938379577721566715004414764360379575057814930295673193399166864169799172665373387220536975544054670624452126329023592777043920102712508458978927557466215816168805804742624550121697053040651571345231824467794283926768644397543094548905765108494663439833724314985822275330261766015336366620858104560926781462164465580507000100639324055264913438560913236304639242965486117423385641598329903265833529716993636892601773817738592408178510528753907019969330970912374554684761936736156004669527134480720470593972777340938083126324171865511298606289855806433646639536798676436542411776384218069044476825433838618599459605901219737890319477640692798952741806843660448579004297441621097952262097044017013187810066157027993920980969523563198928160270346432929109494686108154927441895868946500006733808761087691948653873398312981624164816876944816462149564481269529607857531454951417424788506823673001596599868290508823872322091247430154913550211626800012081640420738266198446426913253916165293488599025781587138805934594918136414612062793908321010451882211433102542240724070286730850957343790310670313532298322056378559124959805232795554690319664784830772820284759289631902522967917565213008388969098039253742383267486829826385395120767229509804623264703182026105611507241581932209069536212796923378650407144960124588200724441681579708860818204732417010717744019050502378040786033731184942674421734536844029613940205038282154321059728640778816680191355744561590112583500011180377738062990736282495905476816983505736862769967693761400340085471997932143590959090218632676642484166436882852753043976614186766996649931190878916491727786318786785633490988084656375112125483174549225957608621350380398350231439728945885448314347021858006246189386006630178805352045782946910935029238087711722618986882390912514449591206544971983940750528279794174202955184469751847360058643313878131437047016305221451134862402755132945218428739072970775334308626447337066459525380097102527686907465214742255759965322936961694128500286060247011395751263046373279586893783289790055630559038947666867924359948283675471011001544638550405125899567315310359114131437749351506232782660379196274109436099248319530561686609250015497724204163513047955312883843443116518320992579174616881057445184906177229500084437479957075164462391210435735859386447420392769558955380397624068617530925458983867366976333003058290311733459465226229326101363797321321930040593749441401652439121472306707516934742203694483741333321558324187197802960643602064055956644026553933670338422929408672785153442867489202233092795885139462156165920001880341346581802564701725066660341497351277379931940475422388611674735992688140393278442479860449856395008402280559681160837968850976959112652024465243218745473298248619252761965202209407281316602094335534147277082049068557686201634079256296802876662110956256614937707121103737163650830341385860209138217760712930448869323925217350208888636908179519796228715038142971041614278603347590930893774416122499373143121874475909299060098890868097798098276199160122995192381036746068775227934735706837383746351976936390669026404415562267646067495545022839357828794862047537725403647384690374562293687983494802426937699303896678261610835141217934073187382934192172181882422673839712360944838496527951392809064334117712692645320194914963899619679689506465301422750396951583818009980532492844760482961251854466397023375121200940401172476768136645433829597207016363669703698816050967163010074163892628245928848743699300325298765077305815855135539872132038902248517947757887427186784521604531480143641792390673033236771309238362724514796626351525916803127039370616662775615337367791643368092019431556711736084683086131204554421626215383562177333777367168920072164739376942534266945551419515485628151725214866316447448491191434282133778037389741269131596410886061482529602851251183377795388893067607020587593410606684000404873693642494661751482439185117069347193586542196227931282545819121495374758306818117643994194816216337236255698482069632943085977597500702806633942277195814918339884734090680478162567256779193897891436635970606038182023674828452460613597323024464590879842807750347729047857941767910237868808653478721067486767842057007876166420813928842940332122465437022344521187093451328256902280778533802580791983962735017368366494389074098383285274881481857715268199259502865043922788941365322668804252705473821285527114285450921693765650053075191538830930952313124271690323713593072550591338687994771286473922552270218377795926643758093899412009029548644082673535547857168418043948355812669220683637244871948728138585107290652490989054122146488508512214111426590041924931224048851334307369338541451102677728848054037113880485031443216555997012433550637611897945316505832652034351694759019945759236828278148937854167086797313027758483540024770535104514094895909267738606206376941677116052274930945481304776478487783232627558492741454652112802166565749747064291388041875950317175306632518720492330975353111662573710868512973715978316272072934204977055214427310138062022512163258605950417000610138393610017340424463216607691722473490317275980992902920464183101267419260802473740330105674004849442167756719140478482444892287554264469784883670418058911538579252423896873383668597503916384177472400322267515188770505036821425763111628196156683820632682966552301140451712048779366356022430013214353739545716493891362619147197999489655085243141468150721727160780743866059801970742520911995287005397964447272648453043311331319438451480640977596990650199066915695623651716220810212264209243094616673594649138903179262425403890356393669888340256986729150014214020559012440205925211545888441891902182523441565609656692059772468483807156538698952691642124948565540411484506456102461128592851653384276611203686867536672556071723563461147349595178357836632374177537117360834160549578114174794977608731637593795487688161915232250786134538540603165405522148089869056343790126637399126957277376227347079129173657144095167832428484307522263162447829463873150942425468379709968006825515843740771688152828864480289973983807323438317582289001915611075963889911317683640278083847297068009577353710347961554100915157991351448739784999754552259855859010607755459847806096260937605552359070973967239871223433648611089103724822397576934375934145583164224216318446179706816812641741282921316040256726657118230200091897329794118674457947734273892610233339977174193219886919483129715229014812728760039709464862490516154360366738567955322584771652692589013239866468651549886119468196879211783075990956515496937566747855491880102954823398124448036321934744275967826869769466893331454205046852371218497013032876240606368992201297918738474657311134783622731777913429382375707286896382912925720754058147701344944384445978767514502196534936629034027623075123507950754589533697936891330900451381682883107508591778304567370279827128460991847597332234330925369333700759287709008391900920672457767864473460098312414968191215626030913869948816237865890043606840383904792700371324408159563176191534056380467909088248824502679010527386666156529294979773659088889835513538991437802228025999610360110101424261304441708785574863004323306529771796172504175878055360055268883970496562062710300264419448893006910756890450252015935044831395539597929348530125562428539139194963671885898004438616406506957013919282379814369049535105388196346787061805637421610089972883901059282507109584641443068988502691365873673936152179931932529696774875369881702160390159605563963576818244432893165524989556155479556388155488690176754150130534648705051782874661817128707253515218188469277671378460476062500928975331643694130942445083759929988114004575282937286360572050726290983907375161335541201040933078044011179311242206098127793138902277671972925877766458882179293269971753465597682582252003391192859833628461227622183584833546341296810761874323633165819301117321688803715281835360539223088606656228831885234808184891916009963395729212110957783952163005774432790219367023392636501252369799800480971558680230241260044017258557576976593080151423453802748010514774695851923194971511182444531741704895025942916872466029623356377356213234881972586287829867378631774899844418771553854932157883597936616035150775310421206702811634359004569074317776522762197837004700377422742827731091110450691040255212281178305699127467550757417018462659699894855888597075590395202744092303864541180967447709466193639115370822032351245615018944572269012928602584679273435055140479642251862028558854111064045558353772715065822367933749195667579189427959735584107090483522945228823203848552500881598387386128250507942246273460434324997055666185010226909720718402921965853203583545901114325731143752193393952382436921528986022772924003951795360353151034239934112572256258913682150297994010793794577425544354332382115433984405957958621098021564141700332137458983009676699109383426262441031311820401829625909917422226537150520773446197891865459890271066593850162708155658255929418379836791371560199262626962588980274032235829420334503105260739270353046268884640918805896839308896420290614218920020780385206906941699364788179597976923937244821691809460451764486606760521756451677934963500283036528551265168967629971940460061886178519766161183365416198690812739238442272048029165999819042523436933022894945540946566386455856420104685258245297333605582950812549462506228440971081820588837726106046881222712165879177523247766742862392663453592203942652256634499341353108877460577442469735003485451398579269171356594370735828250730968632026848630749261349403484541271014479391240772406344392283111485408568526391750409999961732419875604641187538879154247401939712563413579867396637134108129987709450955917563616314531990135742109831375059852235783873910786604671760548274728042985052230799740673225816784819847540471179673143063086352367285605636806926499123399608303928466699623562820937776291446102476430470963140940311491759091335681464722693503940892885565907943178957438814733863343957749316181302901129632571553269548881177926971725435386265666737741779438109271933262817149637358815930288172950424683957628986900006764425011734038119497877360186097317380874001683910147061676167479142044602496081268817577080715734856203731830770249894349618030020978739279232458225109768352549178140102169996745989326353567818348364122940151519242312085256209477620730274764925787564553640896392802182047851686874537340754643496806701084239432153461470983044830464537059868525774788133391203995398228882782592008921285758779215460583219012329512616597068927395752538881719254814496642537260322172659044369579689244462567883350661149051248593519781541294337940410540701201356548782250058107936383450328936241484605507576146890024873305128874294655318991439311668987783030780221182363403230380276266152511176347608212772780525400389270059862531839023390978328249780196550457915737016415510994848879352038053132339954253160650879702822913257589381275369120087814220108931070489262523218398443890338836555860828322969377491906527808978537963082555042172051327288487896621413000969762202759049408868076290153419229830127842684682279393805192498901577258591502070657402959843321711743379375708070312161969541446470454395500055045572833307123878211537269992833418140348098565959350040126634563336807841312742104945435095285786648218045658871098234384774063220254412598824559016349957012081120021408148731600257664150361096916673180765532785459551307984480311584038645781656995404982271537506187960838385830671457794027585927358543681823290253900912688858158055164066046713907985205472408702598927233583991940914081012141025490112010704157352469203857143654539095315628026835602769416616707922763917411747093129374574377589899209364816822790178623795809584409643514894836571602997430033514974932378402712058765670908759856494755064609381517625351059985457720543929794408816052665211313985722939240623496056103853042744160371235101120105339917454120340810881971272389593277266865649861348791795284297754808781685874414666001765632031760043485319552667494594074744788366156371259192878896866128264582741031367709671034054508465201512928281483641046906861244542052349735976008541725597012357367660448431522477387219849411845033539084066653376963668027225947912645424836315530656066443999757520831990632744492408169780099696698103661659376105085641211005591397397275522634256086989829452994812705789357383118363684880079774250851889478323174879375123654560796914074297224998154009954518924146859355779311373497544073765890213056328904963988089641586201389460092689090324492495899681275439387934857058124454218714409507446010067241678919597116123173787638356556410854185536852337924084206639498582445324622654968060578028983603576587671704981268117602266752997453732548039491054394491467189884978487446752643742879809860305171165334205725313216186477824128188598776124821839047525230577405244926016160935576226698835578840509683066032393218877047573756058525182884031507457067390639990042625112189923825136179058584008586933775480525787860285789278234661561751659445172925060356571354651901777297266754880591414354773780342357187276215746748567063028615256505100360461994586779658385465903225271123438575728571289051864332507908301205608832796370590417367830819530220093046610087014511047608533250096143385111845935320939152506896213661411304151535247154179590743941066258280153892336614180658467239738632119446885930308146312708043216410771483441664744428578776685507720675979734698362453275469094997704307964065507322559184672315162077956217473319600036484459292697482226495518640320706809899785546513938304636006299390349980531305774991464697014526772550668317371220758041272619040266732311262733967503832737958090196258426797370212621086301613570099726247333534998714126992373356266171376396077187665879141143689912361701742279489377755472040576630140924854554204106324303061681289997947890190959275765388993336563930389646734528925027749567653403946508524213978868750755997049164217106201887712170671496161684051460198556873833934444309010618382770264919099030366138194927712808420148816047670701596526592147004428972022421820165198947448721990825842169365076920640570708488102817304499704649175574798699991701355405999001739958029544478769727145650955160880934138149995436051531636425282338005799739084145821896298295921703998157277276810217743024617159628815419927772266849597282392419022046277252835996524999277378701730116256122442959271433658493649813311714552087860823114247386606692001348081749685267416659169645008684788095935270218725383071477426126266854395132150559853439561055797736770043841678854181239016223225582699364585880570690959640316165924420571080618234865429048027788343895435164416923425732755412293186199999605495425159131791241165874685998731112720813062301535276161722500981931648711635015681058605469748993761910049309142882794105598055770102853722672828439019705285387997814278246600596919309809496251097914099303185057760282555947064414449600316250678419501011379517184057480995607639050060331261292486293516061546562644543054626167328792200797079424932381682537792337777673423302764617864812598392680205043038045653968236687898949570285969330755046502171180434785464406343190015599531517433268185246147640456574375138988584745909954130798023935519340187312710243091495434678309915954726065832733669042329517741866032049773227916445229106197699445951564295359925013014344028762546655485364843990668656757003502056079171921076028678666390523835783694898100258275919949344705247516312953870570921239166708885237866190622833302798211483152195543901432477831800843423119763317773416858130885043104063242788444893950498900828185115233753202511279716048849675958838918086597505971581035339909267174937422388654611422256393585760511035610315982624028661301535270113053809117437356783909390172750692063029848155447244632903628270887555308075235642460402038704689858790815676700912070767457253270628250690525460167504870825289055869210450735344485292900912541189980695979249210735544362656340495343693027430934858088256289770564663300347560491897416346578107138324809138092968830567924274790726139782474427545043577684939572319402968880103666820431801703939484823390426323212949416957973923610690291461679452027372502155733351512006527252649529035976088434968506274727943508373867627687216182376259602113879359730498070334482365116134913457829670520083721004693082685021033490321737232678045029788292319585759966022986226399850890662755627581202149090803230568879836533863605739452487673318032775113425221756154792971291251012998559729214672190162002893729986314401694947000744726984656637025272752381962107746484340295669406832476287668669024686560762965138877292039662675561124406943421463692026499330194313725585083951693692113986613103962567557227532359719875798399212611775265172656152216050302804695603177680551370679649527911500442597405206165437990471502844371391743175997083587196478492355828784317343930940959147120511091174904932018356508664426697161920897480727457093980576435498775017031167101891180340453307574984953819453278987533805412910574479015817995737770999295556858728316891853383701818421715198623639350027021879850985560723238642989086291218336915985164516031915217588986341379718205317859834361827652079616876398767017098979337163898868917453608917683984661720562424584930872339841308765510104197607249408875936055647574327347353360416941846510577119658982155808796617739725876269061545096103484162567340912252697251937903062834252874121395183353253946192959300349461429381794696803469993506873984393384066333702160627535670301761565073343809136790574479875332917504085297370230305797998620569696516663390650140418907044224555993404848956715197415762317706580045666963410225078817308899158910679742657627203314697587343104166695064255852024053784096330018400962188234082933866963848097611699051398699761055184809001280837862936925989616572053860773738317799540797801068806356822323329653587573517066241078836227877009279982576461885624475686245003230380869523592612988386846361707210109043951307537113998443973100217692282768660158568209667150601680376814377887419019223439019430126431264272516265733543564129873331370425177499944695329427924763381336218194911865178159991888394376464027560505293484862924084498871715174063116443760993758939200367491023793569620491406063977145041626304288184995195745290347786970598356530768238451896764589209232197708672740915950929236052029607039190607893854523019190328884267731704560039717281992628654016882317710291833651091731858761134780098999552127862626791321103181750495218129593157766053710577960599998714434394538001493765798710928211043958800492747860782892003681591655978233283774264453410991344560143820957473210577432427208677420879083397077630100285238225036280590734057825423376374343374594805982981808788225150987783727313754736952406537928117588278519600713803660336072066329165122628660788878727786986585045144675503347351342578122966099505710823806559890616783685264654031796716039173767063040168374909865215222206575101974076550321193643759437262286937004107357621679390412482304185919676457312207388393107802486217506812484740660604758573801483016775570788049286994802745772638873084047761183944093295787215425112417445344918604655226912345876107585440603093930056983716738351608364330201556236659469169007251579704353825245057918774207448527609114494225683621171842479333539196381048879992952767896998956959520839961305632858722288185372594079725753543951747971533675399242069463446970665960244165627285640723800701144948306654793486160000892054130141035230837858975479422117109148501585193897004785226253899532289165270658155492596933473865021458194770539667507433593809311928008196258779789219065789317042693093115131887966057654066917517055438148155361322149640126013085310268518197665322304049286412549526958671086437515779938972438691246095823629824430886706561943777226330459063948618893661886544821883616761050172939191605530421804636389842171540279638886635847711869225827130409388374510614327550642095127443059600890727842356460049879983577762847584123863363443002578281719399388832746870195869104190375460007029614891647167695932595507417270501340736549098570924658647112364040857998574410611877935391024440982672212458183838668923349545602566380052577130266001479084380474356284345278606449192358022092319932603034104804626841535419699294094964203794482120454542063128887007987949501516154641162551767684637291072813106964093051874756785011236871324200325986533695375566173306338833082555019528835135529436270725665275502045670698306742481869558625288975983042667058196619652456566215286003568247635366499734716023016033113460907125821366494012524189444994213158045412578439056258456004381605044558025869896714895177408602634902536783127263330803210644786298243252458997141239208073629702032898381721102475678649578968883247072341043383365684904399189427906796358209003882874964462068984882737104402237098346674811577696083742630488727470241633446111206760556472789034959660826139585364136439466467793495706998720653454630160158748190547776075382520998734397045273350725420908139930314462813553429143750425844513136898757655102952400437123386757808676371090679473720230402973301535407678772153003592456736520715483568805357515759505294845485534001305093672775878417347410275755440679241595560235356459498900113143096693094674826286667533801553137819991497905624337779160652076876536308393965210832982766021910731700561733639796814437635067485742753556376110238623975698597228028248748410328424372671663113503969113975193619180996486624375620348515513343065259171410233399728408890494948242866613302287401270089959026092086394521781759701163231916720788504110799105566944759020333382741425734080847682079791987255028392940353322796763979267754464870302531862309744280258837807323084458225556352927865310546637894208579037597841942854132702242872848533437499515793506463869125391477590819053382463073636638727140909994348545007775144254810448546358715282708756417062823810686548925768350695762816684834474831045812676319509900687892577176662887191859526338284688961076812344429851978238586861310324845853597231475923662137314954704441741541207393435233702071349821889136967389339891434393423783005687533635117016623163897665326131958172626374160872335392229366165187816540541298557360208232707205043188743749314726604223592864177827728380744604497243298685164985556046779213520934202754657009310881173866236229010049623698129555289822800079580208881530995351988613227388548498847836731587992566326860798391858836739065628529563328097942057189168581083030961631207717995528980895526719640591429362709607906105778074354976822883919185608903891355183662080288338578924235178112669494661409035419691286976170524609650763474007928660989497830214411291039646784465331852644852240619134655514052592176524892005930074522234130017418272150567541078417268987554770898381577367152975441735620518244907983726318721885821092073461872855493609893786754750842482692163387663996641183621452823329375823175720825033115606540993386688276799692301770275899765382796156408254074734925501899165211646288149323772420729285902898836479081085151699815384372078179448215075597247259954688737362847271457234572600953885046154055840980254431298423441604280520423474417042978375529938610971816596912832382309315271182134245449093609348886676849727083917406308857350419084106963959698651750782379436532723801746220203085969654345584429953335323616897633470700601205311907096701967057132146685430306573531696931704673733917258995761916794788257359027447452205460752826593392800598991299321841793321762577341916573732450817131225869909220131846879428948843279821607283196794745080303277763650695401727426274226922122042079247123152968106138833630445765099652753637035662927827270045882941297114841188708250940511262554634437762388002300475353173018873236695639555868391727151527405453489754531298375571312830439520316312266111969657352735940686358714687869808366599104262940486266814298043874184893402180596729551054682282712088325110890257864602104766155777210582377396995788270157350485346435174606422153613434426951549613213786465105524822521609364829724139748725354989051792826894479735786023173563708508121351471126228560053021002916029622420180205482880853774012413203548568858838123744195686177197117349187978478217572008511251951475675607095607945777965320152408710718964661825431018726571865350620134292460748436181851648560356700781080598457900330544149177034759203349665735289941335200257277009057008871816910495335448554343600024425070954299542089706249301864927906035395755542443754093853538094128819103475634882884703123226896734256020443400455265581567746935796977777744380024395472056768011049334705899067249153287495656067146182875926471239236347540235378453605887047757191479324226808363290027032511859297510640655795452025974480134498932254531452713746653884679781178073100582504141333057500610549576520680107123168973151080573097842663447937600413198578397506712900157831214904621691863770859940459635976981882452829642011185768092318915858528956676830379350189263678289094628685757919027472234852272653517907105634774828034883670631305664690418512322261608688641379281765004376675074058300946189305376299300634484144223172433011530784566072237103579807829046061740514988900367537493285973747710026995457255034005288991332345988204595535901721109073770027767240465699234614255520606853389148019188229048493910366823021450132946915886293566624062480731156178617383552065850536320663832167854094192333807467120347967339281270189933862719153828868155816379917805900590446250550806905443650708235670496913348272778550427402149854778008628076908428023904904884305395151787835604230262295784539337430586683409696898081373556667904590160803607600701522089410114482773156750772885324292155488945536493616813884504992235002486873485061396754627020215945848350109725013517845222343594857346004405950157423713636647594285991431180590770767849992916101218581344720021628088432686854938369164366487270325509644075012269977397535044006163222077802462109051955139238766874561178013450733404667938240887782586221086210073068514258109285118921550616319073705473518571330329323231868735339227365404310867076323035261245389028484608650816110605555669603482408404495611621108407550694912493545089705288113431462615471625916512914424423091758125071877107681389522428305792052986334327828081629298551294872629858466272578600985759934085392333103039751936363243195758077603691855032835919812904126917675983274983941889727532831720881427936247509153865812045410498457558590269068487154026361046344307234607897342055546221617193634987903357696391260042670846252428516256299296107398148293440322204276596227845238178218728162887466048238045314567370266356685247350907290384744943254094717736135600064370889862342597219645720772732577579334488250255133467676971082068425552986908914040227676342173611623294157379541843702290014841034681430148598597881444248677740639554503822088328901969831976405542351897587140063733714762638403855473059219883760360220915227284872825230249114537768692358058969598564030620549125537706809375066319992432101954979441925071507708073092582100111589186309144045727548136237312966216972635078041736283158751541955227913698225680094814953790685610864505329197541251503050842286772894812192246790919104007323549375843636012423151380433137383052775829893338490745644512587555383422570674509428657897556916292908292336759378039152935516065635502270027368840231605750455405938060872331801277589529062935545555279262633919900460603870649701450424364936904299022065584549747460470344990885750177519535682655388019261258317884874328849254352242608259411936790237243639992289882075730089151166894262872414854439756145793410181406563680778954640912502798081243194816557438498705679132076776733879851915156512691951018981299503356220882060669094666903066311784938586229776489555102127906419156923942568931318543927037588298309994701740681709489990832451804620018325696518490627312680517393369271495385809921090527725419828617791134911049481470229712982392999536268819665002808809243250777444321898035380599047376471186617367115157857712907230162629827069853790858916553556185964340049167792665555686428486922828339981610396091356581224914338886768951289200099217052762935711466993498446487344727917833074441911646489018646162057836965638600399213947020060896770899892269116132720152060739414621426816466818610372463541657448047094279871152829690284446615707016217077697560542077238804068367327793982821273935972800374742737056072485725519526173752694823973522336922673823553442595446583511137687866181752880390435150315796526975539537488479057678469435931251920649906350876983363565765894482196748816896534664460470035314565335052338397063208884894612598350700725296133827671413966194947901576150591014787222801886938724898089614999250263250768955138523293520308808452603924280469988509188238667807607374130166867217605819242312410226267831291806749667884414254884555603116881653047994701388173478261736216710055846838345446368864402230977263262107026788271392570377446607020112100005172603608770496808148721304466742283190958202817975618798169717323374871085557777666375561503131414836022712362590602358474584678376618761487401239529616058789593301591515565752681404482470584123140216454189587580462882318469829459676882744311645448643334069956932118547245939987631845235612501332902341469389231469822364378333408412448095604795845676084068327847649039392498068436453382139528264040337912246695995125779149251867004424928366645643467118404898247413103987372904711546893385566147176675311995173072012797540472825439002864948334475673869009649838851121597965684773100460187341760467332662602920480558403138275534249259778445418240993089697325492202418201614812842302322327436518232537530307479490759945556304304589651583946467311921884838826893466557457077738238267550683717310908395307054823274224771548131264716177777012353787429090986904117956795759823984298572008418095701678041143323351110966651143646525227140493149815853903530807923734500370158066345863015903261167524183971442025752957212986309186748559674797033926940783276873854986281928904265162163572284572378017441951281686294206066898014701748228828805552523337668169698010601147689756864752696082564015234496348078866012744144963745734229191650770612863164654155582257622925462241080471146930612305855644835069886282834265306697253131469852029826580527742623983845101692624848499597884820588439419585151798986344241838148966123120304757186792291756685135924240252379302012383906730789841206591916823063146473076935848802725416971596822030136986696275889267793143011439627757248013373528757231499856103081767315598438073574081287139267184219285714426397469572879242037901400553591346162428675343974085563461925897130970196597126899749829168678841457130513017111701925174929833533671595369958289128393954370650301441567353007038251241414849395431090908488192476666767943002010698579200188728134400289540980353224702517370582100644139874820302945030349508970876671044466974319734582172580859075033225211524394737377261951944809007869824650530277398019472347133419487050092563206238797544562496580633071294644853073184030202477232574540148145422327525838347600677909108410015509014734252387509994299437536515073136034043754693700379361457256011022125840869105123633472051617745610776813779345397179298630438572667258496022734309682645953757630242155994387049453021490546484370043727549810267482950387064539936052170990404090291824572177173336989400834329256243526934686551450024593979156626198732601146210920334239065174327976752155912207821254112408814839720633274597835148932037902750967749712497102847104012104515624402751671701776465227436062541589249449417646636819932878381227163610629834180695898030118301180892819133507730884473954097469604859317690340928428869629924811199861113566283302286234584467348819285220431102431255536438014517631377982094133724552522383181929247370060045395824733369508695304416989556200308636087781176471448142685327355247316047576923357365090315077899432232888204431260282473784765504405288449458551291390189424334738843399048279553765162824094012271533670039594893176763884983322914328464343624944134387413383781147321512707062261243357809268987239533322579394036065597277390870417650717582633614521246362073092084439889827216429101258755476572144799382512469333009091027878575874223103100770230510385998650128085671976185944110089552640647242009496892053879414934502348651617286472337812401091794306782177620696593418401585037515927472263061008259902824635829306800187324665381964744005699864918897451179569232507908069255397193650898678416493385505839371855087840978229848640611004118609397745781233080362319963900391692977578244669361666757460719466512158623965564967275356887346640191023445341262262104100646068162526902358883595120784548350802543776583347157654067708213411324162643072046445241579569282519316359694887111411850909134145588059870399570718410604484551541531962968051834677341056204845295686913570000503195031769438395431573390317756862644215842478327307951488151984763102121602385096829834490409732153069721289254703186304927306156021157213750039401657945574561595080483579758503410591534816375920459319196647942392440746475595720254979190106192044600353411728667965387905468421386850982496911563529810261680569077621056152040235352369306852187127634184651999495378041972811098535163758587283412711566862838769651366398328500954431035486440659961967748377295949851604580434242302588630618061767460799250280755783905949460276059576764263575259141512725352661521419209927327761393781811734932455445978177359952957502600267042201621271020161736511378773571576497507441493265055883642991444318888615372217702701448904582222680680884641084109218995827022674061787843442108974548424980801436178994821754621750199985182626802284658158780173606094116851955603435398539833766134637176845818215349490994957801659864012461995793364991724449532264151423031025863959684140584918303656398144090338271446115657073590343703130055311365962954744195140926591027731274792558055072986481840651648841319614679805094027745691235392481672770243818834973978972454032135659950637019643658886962246852599045437989370741770953707149023936014188488293317673595807428448808285742311398129535044294093648590843703501056840794583322553088935514481955597970985398529469357505129339671501123107064076598669902668808122634238511441803591128822069438732436102287810819850903670604875095106186911871901564208055362224847276267611723700063668651379133178668433027296040158048409401596658541845333077041718847416302132288479995351061242241711704395369299191946447020435154173435604424430655948647696151361034032782684178799262544981297039939780902642155175576541818621525999734524166152611624495302992425504139757056963449712397599885859101870409762085504140537008941171872590948932454259935108906065124614638078942772315838398023105967025653055401403902634961390576444703362765550483977884474568362529733340414818688559005313475249392591550999900991167257295813365989410310974032227266280414843124177286270582006915696185480209536860323623856545262016470027096844988469670074386884718166188892043438547455076482540868242410405643598507781825035567664951740602423703552707432089209000603606110366035982263816082940157134481469134707307118711459490516790028875428558535748260945513413017734517893318723419410492188985272134046823243800822924770295948056972916205893908163322469861521546547150227210474318440639382223771995292177167496742563148855064935758035698251241220805132680859893868553745362725927925639434303271193965166633226182877359483314360359758772381351325063970545093561499148516859007701483883161741105788805216904366447556934239541598169196235048718256875183356098346502190131247305632145607632606841989566243415113347469596917536934160471770130428786809746120344100464443647432330772383671946623073275464154505745365583346114676294120746305810641767269277622250968886249646353979150808140366474347717216957157749828016205690516875122132030369868907226654077103146514788971262574095916905226657013324912199837972793725893633081352744821910218618771467422063618597079817385126015522971814090465212703846929365497573311751889095546018205662896027160989638299579930142353289505995916875570826311938580860141105339330925602558495984041536264065140744299078264251471602333683039589927627039824761116244429696567622159399781479380990545633898432467577318336658062281695434774310173834110898493864085586263603859515464193018794471417523574501195075699122126152038598882924538172918344056888264392624445995194887085718512180336456038686434484980662912077785289358022062505095613824793646707616709843957924151129089130050457874226343689554349317537382851459427587079602562149494178475476488340270989173864723926919961436676474903556343028619226402898883997677501429990468203722399241522268305604102285950552991761458467549997193461700439067608770662827052464262157218356735350049005004248347995892539975206772067579639498983436839028623022574205715744317825667131533948954397862593794103264686828611662776923663917801544833272023110757767947706728272489920675656997802895107552100565681038600845415610396462031824150217855340721467911178868349346693638764295772079298462434702168356951337254064318186239252657582822043951902946372549913419160951987581427488452309198452294546268153697000553723582698572368195584777872518301511546422845170047212033639631124227119704103820303495247345772292359745945601478766417672022646928307554463487958475980046822480230844619288392736820819137816717171071087514933853574611614519824116900576901498664514385831214637225404635542607487143584998791158615124309112802689126203779291648523245183663864947292685869115716697638292855061349153556487601515395597661582650610404305284103274961013091722881445152065198986881685529019809504949178112692565337473884870745110816388510830641433286175154607229939702432747766692504580153669115849947570649592135207811345454132280491372611696094916884067580441257689013657722742948057800885693559636865802071695467340788580003225529582054223255771634780936850413626385800344898391369358986195383764671513656352748328224308520779777716204687806855957153429826020543879961347538775740652197116521765300684393850341232382374322033450718697045591644534581717860608080185098959485129584696961707960339022192740012243181569358700767533293619113499022502054922319946489259544131519329386318249684564558199743149138412547794518262125055720172644361889047177426120262198854248653037905416681490901446760599649018883389459028528264714763421324825474033069177800121276545598229025978793948307472999781820656163094645281694563157866761679696864808363569244595974515819615580039993024646729786358111051660676224089598241928114186846035219812708544352096706779642122376455536682862211016117788245591191748872588337070672388699703891809680617775252789196944680406500399523655814812429320073696990887748796000734905692800464558163702238028176090569638275166370147777034814327741539161574754716263645501871297764729509929725170665826772304654145106028089958242817380218056058950173562586235842770097551399317221837053186289259275749910277655500240271335374418480603912678204601033151778395560629535696777820415097531443103086900757588065185539036784422927367757309700989828605920891238911968178624077063454031686857956495402005117819468934074393842971022014431620023398036222808507643337639281380820495441368394721958182583010880341589496838104493319750333414061733299214285252074931774288927147102989404779216941635446042409631990996742796630137156727633549760783782793599316209508335741450990260093252586616344338232888547195501327524313388745660638030186638589309525079681206284679191052344814786421894507003318803359798498805691568541962951779624256296707831587374960820829361184834782025078278151346763533017539854270929355664230546891470564590733728734298154244841025681946874386948188439553236181169160484899793444501775970751395812611313654473240117580589328019474842418223400915932990535351911638569464843373009092231830425487007309286191686861960439246927923447830903697641096715754933646935467604150411391492820228019030979833547681285209100255273670031372219363231801315518676649789153934951850935470465651421266000863533413720891095734812069919834244447565735992467973525705417940833094000911047856624344929834852313934097219674038004874628478799125091899418333849016506773536499856140317764958253938045106267914141013649674947587814008390923723373897381515541218882930112562115325082619618417213367570160823421294369954818639425829014905619139943927136899343873169182464052033111681757924630664145615050286359032091779295774060300908094649778975257940932050001015874152698878515533647362855738831332142727025131008707535337394444317464620779367918233134309225344017865615231260532083142951983627219224447254356214776090268697135990296382855059084170250143192182281597079663466667112699927576120813545917579118047319031027688715971388189235305234964453311585847564775993108722723458601172792198205822851334661680376690876819046766539162691431445058150961967499137495772628463700661551214687695165258889117867883635750586431333470941203852835047410264524356269986503056314676009157216623071911275412807634785834161828516809248597970176924951036457805079091753640394942773282309194359039778936672994583994766217082266795733835037815379127026165304869270159555299074662836922466668481187848058499462019992663124657759640680166570883426356672799945688390923035627231017561188879018074826241883795090507731090718521935821240428633630538559704909987198853106805490290691962819684144412713276696813377951507550533297676324788953287244856279995544660514407212180392172973808169289362913371431476657579398818334549443361546823092074298657294432739732958929983616157723388462327242208384319409619746201310701577143406094695849771043450806375516126725803703008113339328652604133809302527579328505066014276877164107300808882982169604420128622175444025018504932684356298581015073423853623600227295673870505488836479524563736969249960479581134330183605588466521766523173011562564566752049553998941951788101718309557846782310658113283266021926781841500121064484033154145448987375212211992881348931678657384265732700179961248990485853390647779255050635412458442110109381309924314775180094872735416304755550873853127402385185850512623157402240607513092303758545665343983385436857501175383028188829756940150173572029007034572877975288576522888380027177802066877729000345090721288028988442846603807666382003720272156239567815686839490999477431864423097516280363982571829485735608991671642738326916930629284964152311327593961549061588844269350951662224262061288920959835196130969636969336756266747870721813504784902052937790572888630823838240710843173731532419495261408388086101917761786798377140849357480852328889903308231465569989062254048903164320900788013550827946463581447281818682594067457899782336385724096824718851638683902947645521166445900990501401393517990826028521489193082019254086812699366643752059351763632842476339261861445694157179855239966665533324446119550490291788424331230243389723880165206476895155652082893253729372796461581117473792317817163558434182979810615720525305725800215327559301271595183009966680922147749061511984810855482798273978124295546850656800202705336174837553168658548210826394249050082759927298245468310749267066506090777218124897777700179045377704440925688458450878540761919768153280344947117576882136493035391555471624768707193064565999866448692486562773182025697742271397430802540478927838709842176153778499695480583147477567874029476203759946948234331038196406144228608603147569076527922784434290029549239234929043673323527589272865248396298706445835258949598448546798275472340080940734615479106082664626577561404348385685088765106498217685643777887476181602211127775827591746536733419069689598594439308071193469513053266506322976904734813310136786157638589589376042849640503945565726927712793842810466084263265718448397823917526185933361261927137202342618358392648680100271142004091470441334344723637490203220256890145889202706890342329531398124159188356931723264866077263364631577741213686484673188121549552148593008491915715813427088217317602113406181713914490601006473981263497795184516632583394099740896232520868381137946879139201558527942233538644780954305505987219914628842010464026511176192806373512522184820871250327676971417961456314241220781691535533187244410614809614587609140661061060544245028614699919371462422894042266986091077053546126810656861459103970095971293865256280668416674691020277482827452187911552037176892195381266405176409536465362363688552090126781446221641913983085742132494520768526107936947239653260708900283220378288461246349034483934238420422171368015085395956221513018447775805776240072272076317733811707640507812433341024314133294077851286023857871510142430630762435612143562407119713043896737224361315008187852307954245209808390773886199359771210707259205915628667425854605359013613644150008216011626039762002276509114538456478215732231597146106275046794199863693451241251267113783395129746394978081327131086911881794728670250282293120732224973606465530173579289277940151217389474726981360669783398693528114039123674334159232367999228532048727851589846621229110377120039405623412889506806372869592900462302246385367149565157935664781457099281450415984937861178052769753893679119686844873356704570962569525798382198782040220531678223477861771681731150751780539204036207557147304048169292331433261980489197979864691116722909980345873977148709079028888505808100297575173978415742787745668540198593999762209051519219523982648883192709590625192424820025950668494893227333313689856169947444913658077610771784082804008847676793509892305761536689813663049396092396650449459025565582510206773586609912258447645280280235280475853935755185457682806795056737805168561724357172484309391235589200715131327485869230832189017193728452141760903273209886347330346705853062297083519796192129804805293981389692821821091180193215307585380524741465200037237216858653736138439717590612948784326160700920758927195655214735299883642395209772558587398678867561823678771602436070385475358642492539939179867435020839052226911306329909037107869639335279280171223189805403989756706819288230210145353225187987326111508477760538240057840811513224226266278200482684449946697199755717446903716076709946565540352128924533759344019966975804885390879419121701749989786434655095613596884211840012115437310908996725929471493232028416380057238511107973009201535087546754939149442920748811710355021821670583482198561207823492209059296019984653821178294344162347614392882317266726336165541209073284718259308818083683892527421805639640172457589660315148118945679267895410976150793761028872421273577162290629525816058329858593597085567674536577947193286112884741761812180598708833171998619915297233164019091415903573441240279923813751973321890526553207312008965532750925580546089046018996749138708106944520569172280586297978185426812809923761017714944737940435168791645968749343555779473478515966395278229605984674835922977549635875012486919179579505602254008703366726631379629211978518697046131069717999146865039483476559943839618910379002512377424829790562722805627369458489546364215169291314817726020075756843575113496857795582452964680088710900518142341714640148355164574872671453989868550142488434965478453742981024794515030177472891929946302613965356548256172996461857285951814555962019281828737289700533842141014807122663329949460710908661234656782237921381670286940018221661525124101447696576353155894326424448599756463057758812181300994782380578894324145152213085086949809488213568722955346397774883702999113109517212404283061705420721229071937595005036033928782742398922217588811072346925786992407432789200691562753846023877164544691259284016028198062174772142599378591613640199515989295748873147377277487093546840842762272892488235424288808859203204702671044864146225734281945000403597050007585782116057706524483572932334504269153972776811801987909749881935380238519989061027430156635466468714978361675941661368435232168460441833788013851192438538999198567345605866502226336364397194626762743733832370828726777658959983217232931204777758388751412862459577379850201770383395331826937515522160664229950626528208591029123577297437271615344666428572264942458756495334676269087726870730040757070248994068867784072534576002918567387034856653868805163927081292093938245384910046223281788549024425620229752385475021405510563270436115879133300775277888732491832501213570176926589707789884367221958878751648259484366060099975804430274716488429430434126343222616074626826868789026093461387709218504001361174111748239839706998295441929313374383638229330910797388506389192924174496607699788116660209304255674253701945516804853304570072198485379063150926549791621686024939088949023983943072968074441217091958892414826170351285592721802096948405056774375461605172814350452768218432152454325119347158666767859780444284254215082314705636471924303789713024333382454575233016713520613562493808541929873780816856994725964207732660121914241529585200293036920372679452349034302808533459141853352041083383180106479916640352087123286009459002002228618601115276132460397338837138023551367278069527429502729056333409832506904803566841291818772870302427674443142607544844610476167326280896218179680898872338508723135185173572689149652132744863994370453971262971517164323770215143672830834578980436608464518577504637456694911488916762962392684322904821778750548102503227748400030115144073070120017259950893787707662567687834604123004293585577240351908125089198350049752331071661698290081671359262823983466324442830143231662430118116276414388340194274530526758771723244937918051623847895267653022322924460200091845763954960190059316670236133972202902724794391183285758987375655070122859882818774663828775487438045647814039480205524701889518466884576554695175699851797544944432066129675981218836738077856013116196605215226835524560275837202263514391319704486316115430514215478005172457073208311729272231758527939734913004081433783841065526630600870649189830667170415006436069433925712731275338894219996085825700779505333924242542964066511705421262481027371281293354609281013221955754181189958291504570788666125800655406842311910602379962938020872387031913155167770067566718550275270562489489644334365116623743469376705349337982661340452201470296616767104877234089702525424668344051584685478937936146507160716733627853068456485621024913530746779271609225958457652142134016082305156222417350475930021724242311067118122394782439143947004577480112887241222168953182798853332227437134458623651489934718194491630963147990412693849329919216541946201175047674943004716995377227648478420299091517481702337683316593959746367807933586327187003863924993054235260671426950291248012771526763661976508356246616114592996096138964730234162406970316112395379151643347771787287328785017316494721581028957398027390410059882107498939129049442979618969492795623715470350178289271260997387972368024298586049112949307380757514418072945887616775227018406321995772420471565011465008041127489206175460115309294804864192704040579666559234904366105167219231474877788913212345685593899785411533763836024068913969942269995455925652756364593566847849819895775794083450584109341112045577072075752565951333824080452080940364376912747533090455282439910267172949384288714560370287211984321165778792988187895334961946062593957676467717298283559822734299048967620341763920974605949304233516073350830451644080946984054098212688544600973165668220366049674166529196958402168270578627380704347370525500210442404373221690202554334357672299549104451370850575448929642569034608600322049319289199152434639746999315871686600836298232315472101883977779553058854247792679660074369080901582883721678276396955035741247731778895084293574804852863434824951193447178502636423971726096372060847179901497364577505931010956363811987761039254927010083268393813823287407990417159486952835046581225899665569131362116117740021386350901616075153073594052172500346421494190867740717194017379147915315056858891961569560747159443857684835983869570316818596077235811088924984457235965935570008412368633315662953188970360744971579731746261725013197404138145142309043738882326891222887113506034607904070423556941881837715954889183248610404684424540916269078777505343947423892533407000492538312000305896806145268729066289834089816729974418261726501039419006531838130257561002982897415216126894264369319659462150330817040835438001789017761063496249935286288110465261236598330034351363857028853978384389157575637879668316236575313840071130482581333831192058094542100093101683536812350116478177141318851749822437226686846261079477540427562853818188381089794528084497213176599995037774426695517680304122854876198508760402012622945410053182282211466443556584234176068741144071208401905753512756939256433838895449817577691261114902426823761048609923191566290161658793078007284304680971874700828169622962503987668493514800542067668091101190887446665459775415124438599652377168857824172820832435376195330063741357532112619966659787204822147281754887847701474876438775841365474210316000574389848169513149043609557494837414907043862659118132944305366226274637421531559627058283657918387402008027559271264206987298732223066629887362111437729631298558585647246057821138013156812696158749279417850229427227059452989919154761075835881135028539729349635157144035467746551825853281963737647236218582228858229998172852937377599242808033563345101860101002736699484849722303452014222936341488053584479983584692944601704051116017160844585921665182876846267799697575562664652931308462339235313605114424206017193444379647615793451823494794124033624551204405577941954512729765129881490031230634063759362094352470463545224219060140068593338565625302344169401568198257249948351656058222775977399143112394524663483607497987958843463006616830377147754945443037646072465735995379022790873226365232945674512957237919991499120716521025122219575709375978694783116614959213281745499067144416254699542272839559695649170778676012428432347916366596986010751351298284115752226192142228953567994691842314811570912710491868052341927709919573236649476665865626689322393640449233206878427920982331404792903442542820853157446975487965602551133610396867414529290249194766381183012275231067890275155726547711716999086623999307985700161921059150048709317192933122599503933273947538072970849024903576002044204140425081207806120646435789199987648606857107304004991964386721417084834796044286193883910354874713294204867388300924792692151259764969248304126177465831717266676403233936029214227654041022119007282143723745406853284563222253467270621080329957217702295980164260112383582498584466940502727784374419009963754326232054259802308958124613901804645625422816532612771513577480988877717689381910571314857019451926624868838015385894515088466271701143430424480689203048156841910446242180319912620161236536513272270048244500900391098160340551574199673505790818174313959640711170562500776961587893130047847651099898202202102735724156260151844260197480593472068975233354141362050722648498579629444450608539518863053279930647928562671298787652339107823909103634945869997392792369670435651942016736816607978400475160880624142424163195770540693600254534772411698346365464284090068277885127868470361435781761514446396555528851774055681074802181501121007287820341558881999649531393984350290419945704692035247967973292437953602269720115574889597450071811620136971859138631585427635635830270019779420949271940561579696599144099977041955632175373218040910221612375001843551840644062987575682876628208509641448849630351941001079304287028704792339011258029202509008603770716543435619889222794047241864681264196219567379293076204429618123755816834990553445192986835319190628044149223627036456693271898898453547596013093151596460563513459760188515223134013173155880148129839387637065848171359179941678510553816421745806252597538404756143465413965458956123944211891798667554594427888374770515755448089359402358002418130800952494219488114235249180725732999978648913080157954115077116773041069464350250928050023434310272852091598776139494448339268111567801257969606388145802655868322513380672510911102057357847313328319092627922316757347594173442964902517977937284529593302260049030480677351811450047812474634110178282457224250891373961072063517022981577460874660116964508307769519592946832153859225895360865514111949395128935236608615631315398489651288809045395656148869048771946270421993165347273413079966701930679449149706621946669880595377729993921319607319601373613795071086606921875923040793748708801306311338562907107490225982608570374523861221255846249089703498496211251141187667173387209588770282488104434680250806639838645522160185321080089122160773493988525687794413369326295186154206095738007461382195618396490317652053288515880099556019821507702374507145508341078424110101459605923585427975541607259597746286904468690335074737061327746925351173173590769850602295420503733779187757906963179454145640807862805780859081859735301534450258621571616284986553956091411816110432002159744837433408071476589969261170856963010840691149322424203395372433072624006363681169340833978179042318786994359840810571185133036043671379812031419001596514946905095753680049931197502205999151428409827632710129965739453271288970329995460934921058786839964729274892465657573136878492171904316515193169427877670894257999452446015849544163408581266771566946459986389719613168362017710529891580756757449713064984304807674373958717920628837448968108642777773628837597218896575386565673407142337793009083689298093151149725172754609696277855094254625745371590942143864272112116114961433481931914242824368037365032470189493908513869210845245014955124609508536405349534466501867774416998459719219872974794643440839488402151448227714161457402146900962367108503682202289674707093745721918461627439099925979380025588899148089063360877213980400687663986980363713634268488630975910134945981725194051731358550628022955780969757446154925414460557018286049885490273573638966040910768827314495813655550467532873694858175007462151861435410737906906057740777081192124008930926349196588576090831735382091140383379909054433078212184662245549608077325886936328884429666853533393574895621815136691409692438148296455460592789714864737722318978424090967971881815781576556993700210938219297298152933611952980876160065532401654700458731857139601711837978572629000855658420049618269441634397917652611806905033929457507709234916552940618270311828083898564951347247158519068931835506982171929874693183019803105248414469076036577635819990117119154800097840211115305320962135100697549510228717319955558406882162225625078714021704026271589382047175383564347002621773352277519058857255355155297201461308696222969821980674948247297602897741035309520493040783343350281426337119620657395431737269431240146553736884943394554210279391208360296564796967953384619961990269897095537320660055631797905852227798943794385488992842802549457910555797397969613133411349525380537173768713752520755631098022202393684077427812862840527620724623391340948040295971330472506833992818124433775450019182268996797124262037720657217860403747812634892514456834826798869577410052231373665391676488747906173859272413173203827115495227467450742098990408164028363760377860693373991680937826729718087956380180146927397575558534839863570501511815413125807115999444601517088831312733077847010381630933533878497277655689580463670654628550438824425334048942887002452869617130181112306141946505473682532234926439862530962328215637779090382106645189866434549494496551840790769120142630505347840927140012671900562598904516013850495396496485646584726794235509866242426738425995394256101630738541818806603739978403928780667488244017527197255071950724892712343468890507571440773712915030843839718872468066912894257036927651424643447660780842294138004927793539247868847244446092831669027950160436088007274312409970943324842442350744614610768636609329213057222389573390558396759140169280948378411340774463634450743632292450852308901341579838885910880010054727547811603322859601162623614267337705175016258505532829101610389263853209465437740835425812910763662848570355562078606346118067300318809832767673692938202133271048895846235762657301401908149309882019438656575634827323259682352021658056125562903249343087518793984244360808985204423143250908888968493395534947287389055058044200213549222325174800489015412475574889604630142075716194134716854588304102718454058918333166385440934981243188470459418700187060930587184814867955994277681850353644464905335951184042017966202966813954839173198678915009075868887268019758948496074903654672011264170421836359739162744200859477420731958257816999986540305184221612391783309420338321371640635307669869025821205006369097266824095644655289377095978239682892390708014522590150469504724406282842824983022775414256634897484487914723093019985166446999420681243261391420119852027095228111753429183048603836764398721005162975326382813123215205520533277554442496713680414312887012621858520008084191101073771002261142668231625254588553402786258970091197020676540516305614906896173716012230671159611666900097490972230452912579955689230261711240020678828936296165727403149721009599024861668065786194361409480237966884576429019116065041094370450863069309964449622603893199366479646421048132193822463326962142170866658837749854143556871166323249865445399859392450395118601872406875954779384846917470931625739771395685520396221558006095495248426166154244945697612681653447715584693628261862379389296541514247491357406667432250631897776268674572701998855416315000056855747038434514290862743607014547677405318837147802591331350701669126812594686796062151070889918408257478975928587395692903714967706014461120361124270855977636489240118346289503937227663609524024626643000205935919010470465040844720509675017571922291835054608145148738405454880679342911135129021240798340705880997832212844632975230538634682301814726483873428195452614397117100691365096879550974011055263477158992708713854467058032802783445360712344055420857465443430874269163613989572489755450921195036952240133029347509920391487139449443293239960798245553639889801323778380807717599495443125514599323859513803540684713617189566903966298166704627727941010443779726903638857804078737378132277877529281596649991096969848127315009226929313345164102522835268412607704760460664677659293778730197785961864167700547115943914239553055584873734969075490190060973495524294772432939936072086269578749982334422422803220621900276712329996597240969124990384720348122173999257282157044946417103422386125243859515224354442320191576174343899967224744363841600727981539961927150775200762735448999736319279075279706560966913154971505515914089524259606655668442829156090127004257389079903165613718388447540247920928071950428595413517522818532905737493209926948574484000531958319190782240694845871665336657015046565306094631332871073049748099659480442893003351935569923882769544695943072227348166416386103947427703387659071059325376437099555819203663758344260165730004289048987634917647522089139931995464799362347758808130068782959150694258507236282771159319756661522432547019071968744537013911134114706267618850034881714863769912342963101892938386966228708543213161614553123193653989333184969613439887326649293667285246509964350919476219234790492727525574395034913480913246275344584687510338156704815901592679135476678403852480152105510342718689009416232157877407967043450459429309221534268219288890970988608838960470555877983782776465971147651570645273616132094971284541881363167523619841744522452450596166452791741336681086129779153781396713131112949277672384653411855936370547837492864039540183145628816436126696937416395089111160080497889739209953042687700704528415157670046290786576442000459782908740364730188774246049074931155191004355807334859959181051627021971993862577248811525810114168312922633338558191076177995817837471398838314731015597192218361136099288351371655097268932540494703102913712243069195356433725696229843715524367025564186293068410733721136251529380208731500008573985031838507004243725734584312222438654618591331078662898996441410024865519876025268314897598672400156523649783579047808677825880392668874308372707254866408034797049163343525223078695963265178836648538757787504239038883349232689202374417421838228590898731204988541899732387471968673252688839722700474234621095446121934932891518634948440072971862452035161449786737448668345673337684316596466656872426502411116741005784865432245725304726705832957220927271894907629077772855757061694873580249233580819270678311548630492269949434530892312344201097957394658785065888442721927041908099870393108174170631486208217188484653251201961048033091095141739442280642822283905642997090174567635409453600831090044170244680751860345785686393523495582741770564841418712989993153672683578023420279817281287673866768933398112940830477859497459458949947051008496916510628958467432941353652626542986976795080467837424994119665508856595894499016139350860443744692986105962063635369508368465103258150247586598498126069869085423100708041547375571373189000542472795406727281615438998431947563658391434775761228879070317516293293971210198557451049751131971079388509551675813751308855681571597474550056747248855689122937656218170351225071232283234498263753021222963634806032212028625452292834446404711418697046818339443337283298983795440061810706446080801297628095376367039675430589404432882866132096928118127670098579035644493730353582428511792969953814771442871266066010466242361194591876746199123275712085149016612209176549622353650119830812985244507907619674897130301866214650101204214731011680468753620550910826378839188495073436653116866937860334567066247117570483420593590559615941706475279696375183475655508845953511759693406032219972285080975122344474914624966524049721788780292026040107302560436822828505460894703319116586325795383907494533070741965877940933547515392953582478075164880081219314508999311259276072435277825935948658299380279677597138125879286873587812837618458456690422565875464761719386985483422966302033899019848689975248214665990008758870346939034669127476679792818352174298533133392644251443669782133420045355194430509937957979156995717103679148807019118288441298930509099450086023781951658540449717535245520509797527391953072196291970713243567894370371692380137991437697013897350886324015463739664134173675291137311003558621727861537828817065453314465856726869128507333870166407906337506039683568097635274108736862810131494375980441487160014219583216886396806169146139480096493527266854804343665958352471745982692742212640750748691849287205541036833994942582521770771688051415443922932583698800566336872909611984631199966968980487024793899418764358108160852483283197922468484601888714265215022210487182438139202377347503420219576363583462597942889192591011175707508467765957634501885481137075585124429418362851626511220870672188060595155046681160068435975713054740215781340529895172301644328226745811284670075514072622008066039317071480316976975304975851695143818672535902443968024283090541313153949610155283099727659507949507595984674120193415668905897873830389882345619472142939410900245615903783104505484246284257754302872542343306596761038656652502262397804024940175936734348240781933726895022381136150564126083728536902559786390934442137082032919902404748454077344484573382364906617025489321702852006114697043702021378932153390098769649267758883974027450084498660854191005536249320663818225187992969325607467598789237860169271527256541019776656206231405577317693069130052203827136174800967921164077894799445564881217476947209692982096751232695154480205156652383166584041747713492208992160007990187731551223960625726750934493435795164722072522018880569265569915860778523035606398795538082275716748586563161873426803225249452380598224226600387122124468410595723051322666484755577644273712383039204390583606928819209808383690591892409309944609099471970879493228779873921712442013723191410638892683708999631649385532508251677415077715865213542386616960925914578222695346046218318661144216435631236903043083059640118976613509230510057607691530380213039892378070341475898996388573676170983406998542977754053133251499142890401127216953414515816115984188698266487913250002000562424506820678745304114368181065746551163473353517954018423703111727099458794496613197981440104308646988095226287365929216238547458528815172070662729940910487139198911896343602956574126014209184560394023241572236127962012470379110293502304257608405493193186996989868468617033152958163461504778652248147818184794486051095318917086587841840425340617005664876163990603075061140963554445136394392656141889334453125195466932150718518662125878305488089237005437080967440856491924903666383843230508126951913872847706228509353775711781076710506602481145840085001818245073542171017769580429213224754738311656776526578554533466899823943520102663989115147215956326414193384972366279701972387195379006187946429219463663781149374013330948390973828515257203919840651247386322942344254992327267596085816678098282952410878525860561086163912517693621549433706053282219929746509357418925246848675420115151962270164978749216873751337866372271100807426840140581820794543496842779015843368459490799433358442343916391084749975446080689656965942464809216091695403670099601527514419902861122140385344568881174928629382646899253005159239767746035041042784065769021543849125730571605010618706156939307830406201623358111194605262430750034155736929966196007962364861038063323758866421571734645616105759364681130349519726698214573043022737769724654562595017304885565857682032785303519639208602028017368463943720238951079078924274082766367081758043309885581029920623213712662511536931929310007892342104881099479071881024998390988282089492101772516748622328926041448112543929992355859102371614480102473911089999184834037888073032351503320138306663887763243546379554507679270939816378547636901430598750594837642649692416086372638700054115633183135706434339611283664987339085132374289808532987537943580309577673447673466785485946697472647308182135900105918338431747598972941225571162641786464587268634514236743736734459566896620011079749935606295618215128387325210582238665011503352069744688413795643892910490208738057553693589705883129113728834908797075267820973281913287561935084797572497476261695806764289518795931842432973325774351156095006033101071266794616810912380248371450806345690228726560258017793311300521782083362581957124495305904729697423471400804629861716045707845664481664895602560200086881791881009588277694445126167138829873621783455437495729397830084896050244367468594932736639021338537087199903642450347561702644777797636229709636682941075489814855775329442041393581203099525878379616113695651467976671944651248601666037817863961388437342038765312244874837310325292675519094465659814408159458397161101616244055416412785724195227004395924186817430778254748534438277825015068845994886629994360938742268679829242365877550694906803109507799264804635876983311785347836597210600547053110802288065687677905040383154455023916527590450059395089574611339038339320425706076200470514977179616817929510966385055810315960941121513922471894540881018967832830150765495195544526254484896871593745114920332779886887279639177571925009429207993074576952142914949970981185303453378917764698131250452525063597014620409296308027174515985409334723027858494467151724584127218996738774467011320476958756657935313244385362661870014815030896547695785546834196616205693868677806210681530969167115275724098293002774452255147652179751432493079132219695228207595869426533946995237919059765020414757828921911906440317873592079675631359894049307095743924895406616795580291662817196618627250731417208886067672504413803629893582011612547911771702468669018387430633224489803486398243228285996556357235915955075303935907153256736155666742225529855711698257949024235883930959716978298981069992957537079191603881663991927954590428017588782443657903576571835264002693991991941011015417523860458420109513304870830181124273214497303615548912091976112977926959752364826297953335353745416720249264567252657371128960572921788126238396221922793220917194312052481818176563867732702972871408978054277973367132984267428856806483597692056709779069162905735844183196622208393220691955260619732196728656022189762754528867316809382950710356793356538430536150083954364364705938494180116929159783351654803565842072760629350633628222508672736628836706348905260898222058492455542882697927795700628164158708031968735060825622941840085115370547018185277761431630748084042225294853046899174361338622822635606712901604393384122392153185714790831040740098609204846848179518248693629466966082889563028138536060085131187682116569936188138047873469563170461137704431155595178894524829052988410444988395698185908201443990420703534186182861867970247681707029078821713292490953786113634454081587536185779922052148025593838070332445986118703128186119813768768976967201260116311312759067049718284143122171135067287428967733268299137583122393084161874111002526542191865573095002895243958661361204955951752253528468610785909896959119069442214112834017198472405270286601345312232024614212149518746105110636428341836778637991090349646757917703826547128141818499112637279142067743989014159908294979407872743428955076024872935059922109720060693229989461492263012420827134204586335952888303332046181965230655353264192609163349375066403760714817832422493803708697812196176579773215345692483644225335618304000586281462902341560511502626203359087077784480028661080259014126068029585829395620533655434145913185702164223770256320547748494339341918231954199309886328039044338578395277136845718394512023784432170487426748537971965577436031671331699240354961030469906992429402509559109641143320704261492734367305879747627207191415358266772419783292978754136450679939260174743563449666734227836399677178572603568657317906608664689199509718267480549124649769610953276260852814068917842579704523807947654131423965393409653606294343219360278556627025073661968994188340915846368580127496450224726161694407741164350870009883698711982074988190010147745087924375379004462296542480349392503162759024551105755159958335423585483321059649910671346760090868427836043606413976902688253710618041531651553274937533999620798004616780514225013106710797081278823737660482976495185347141786001632494449560486911644024117941516775208942162862055989657866929632548199469831003146847967474570906954063213709089028175445285340280127421511933909135464228591219778973081115854980495161584788033939067258477411653589494935455638003295832220382279194323151001699599022861369187575337041091390866627017581067751830088557234044716220477959279700847452564834985106391770413734636082980976808935776781761990701110136374639347414011551085745990253781442609969883095218925980559052829895259742928036068425674843315223371613336862850172901942051448582118591756984732144409627556560713984144924045262286989889251289247726568968912163770956560006315406177632551959944390464259722143620928714997140015667754347062705109852065077561006658362255033521382219487907982111965857641841273670475394677952842968743984217550692240559396388881716622452960691739018732144240497538056945048106385963982806133690029417449300235455263274386408963677135417410422933310328501906830458085641297821453045531574666799528402334070609884352664395162883609830710273281081332242696446307964211868623774919621284356809284095734021002552953276511157023681907489920473925959000978626206847462687562782208152381797470955598725770590350591780504475024795797661505895755463050470009574464149309903294792033968680215559828956145038640102544692332728948440372700607492603119701420958298109979128437875607846647023630930727946301227761724758357648184288837584620854995522745216779686354574406387081436592084992907386485482996769352354056617491631049857041527941737545815761081215933425622889018938842028364218164733736693756633857435399844221928156217155536929592244011023102485385633981167046605315154801559376775983433581136613831131286828717227407872541730160246500937052302567648829065421597293764389918790271501201330670335973927944656933724768982384282375481456075916991607885311942827333299059602371193156973952156756316047082684621298187014150948137843423792463857366004915975565490454260956703739872094770858798971319856891904595768359823006400934840853704927009707769643744532404979817179635440197278293203244806163290436775226828318588930372105485842684457035282166218581251925522745188848657332652306964545101199629672059399618422687233304640607514515479515651242152837995585397458392784368250073807943666805808550624810735220285774313889663044509740438035996266901774685342237856986058353005613056627391974283115452843464999209651689228023554953800022914388769129684285754101642327211163355762785590717729177123710645493446792447262068394874922733741293000544511516338331151548088160786797939823634017902798457326608258434674125343937872990902395014139406866913134845466159244595852233041653432738878004141096441636710214024327430587800118246787371652188475255251112003479501009849411380500493245871692883723810648442814044400773034688278381145908738938387797360180581807311607919329579098392886903493072652528940941360802468734381982881884322867041166619350012746727142924229855029993931849995630317831784635128785032285965623146500075220983130247804302587193767879344812241034672627435165570496941300051456271352918137290891925329204698589422296743605693276888047844214644814173996374834997101604911440795887733008387149577167401566494307403426063197520647874539442580600915594122162035883193373337943386831233627852046575352636923926453713271928287286704441546097257880241806209730911206025905015702342885217790579360336400512308920680988448782147906097981567435314260654871219066498989348523860431002352549432025571705452016966050669198997220499638003056049509831458350645789851206190520686501968295372262875904785371128633265087686792998784399006351259072123292447328211011269466239265476217977484616711013764907459093336000585090980590490329094967543702052818268994675046260099495669431991540856830608613316437807485304653908789025492801626123279004920623245916919676342945528589469867768869692160600870592027529071574353790646385585442268534074703506466602733278730704733432603871201211745915696010970757876014378807880894969814946244765989147212275034786171318402112517061317542802464090126660622836551854209816153750453125372468238619896420500270544702408536214184587325180882861358801963870519725660829489154260435310573692813132162274360654486452397463623595141118252533431192661905763637347458779425174151582086253627432953761631009399015302804700426664309859996672106437205246481995940413737525167285640364230546514692694975441283464213665043450332534697828633500855082126865948244222354975634660856515132275994005629792945818973461548715687602882369883842208470063485143849323015360275331631425003329611782049551632480231577146037975161120862342423710684371628858856303948526990030098009431777285108534179530163422917926256194085889823202972851586412597653772619571142281981337779215151621448791270513055117631009964431007977421139266998640928808085550190034646490855094062359605167200865024788165743412061797010516301969570414934918252041229631457253764500559963650733695447869666703001378512239941261444145747381670635058152779650202335544412283356970803528770363836354836008109128841170137523155399434757496415106529633083292970581991437059004925520529540623296252518906425675855493429279583329891141577351604129871428181835073693653118344781209589157342377179925833445289799850079046082720968955405752695773637348445294250389725977257787191259282213372500192459905058843676550161264989401806991419786433297716206508311758911239630068017796003509656555652593811413304712743674179284833783649321817383568184029109429703647716731573650755683325006588254819611527516402586653003311320058633908228790557006106956586876279360638498256190469202708177092708760372386973861417900711421996098196531278129481309464283356130958970858926807247658699159500345324716137344101273944580693553476683287030947965543126102432375199134450603442375171451761598144712878378424017471833842062980467415132845184643005964672642630541122897606107599378083961190332069894129966332241047828231142906870534598485052639998549395094904448507871007725064165639847714119388856195634175847948489571508327619718502121680970650880581103936422053213579136364532472589966126051123373089418475357183452139038062264049774612493010923702977006345898477891937172042375085177732086963231746101736078175310193363811494197134567209169278647788467442581592664061604463491674688954332766651722826170394059194314516022221877291134209962415296344516928315215082772199663722943871510657801635343180514449472951608292285357082276002117005521604087176613009403885299318161871733405643202688996398056155365004394428926183643763790935435133512670360408291601169538762480759169210275710331838824807742644821239500534192885663471580730274590539209263389354260880075258872190404487619986387933391059411719031394023160820478940492909615467225528613802145886974764165270080147849614619371761834345898554846247813683112964552393061863526005769316849254599551125577516790701108675741879824129364997501389244109568408080588920835310821683370795036353771981872994388933165711182050595709794059128259205310342259988372052296578977973085493745787473187788694956224666211734477543997559241014633656775542066359533483026483346053584359704253234967393478074501491180913356168729916939851800685187053027942041873546975318837525861074612704045349957587781380642526803240271403804498082703461416922522317574389927037895211405896174456013859369224634707602057548565376840607039639571937840280809051023665852482358488619280696322194347747961101014314696137079969658368421012011345878539868339744114773662633722760510313308885732793537602752514098245554375699519804681426117848991659786593433103325331612091602470870209780347259950974684563675767825069233621105359952098897962509019730781278257590321175771733347418950819322990081286834562942061328102760522094927429358478617205595503815313278371114736118826864444405998869102697631282476218645624337054498620371114751866818261628425834510207478328628719999055435721221295960862499844957459654408335320996663654143730632951261570628458891250317375726636286429096316928199822633236991471393605267787384068318596510985419653013348273667316248304370106906006223904723501853460119444160544849060775432856054413809948794987534390238847314459067798269739474087077459291650510400662446733781002198561972625165943218554544816563106704152211505687074606060478122056099470576111650738944049007966170817786236792176637668278315295382108146679017105544838128189512436613942641563890837003689666227145538115167403869554578565431839342541314145283877915992613848848972927885057521604135598244067264848020490712968304888883817184500481076623811210883998096511059939463722405813882078940329532017001348736727023352914181212684734854395536572474113512300971095476166798129048005480741767644458916089719066882201315678611367894513779768908747978299706521720344316798052520083688599426892181458822358717726012700115787051222675963848027840472029338023056106177881666079159081655525797302649031360131041966737793829355369743721268465208009579126488895300594690123540330918563039332531756500768449600147744116406600708258350592354026620434574801582979505546943874056169436447066775967447961513486899843498117418844226168535217407292041679520464210336978218324002836412117642193780217021259468213275298856459024548101362995812764284660924292789601311655144821144914336082679548882879860866043381866813392300328813355619198449277479353782109284790515423255306127767172895538643877553194171142605401328763574957665384856376381205309460300032493828987264991682379817088339064499359231948938746997455334751047444139434677792358638543698252441851797685238910855376244741926589989047792809812123464627556087709226879887801377383572953363789794121640792431463354468474855297637574970386881496775199958698574036867099655443567116200846047827805721214027287696959297849584581807725838917755282448428518268219982074080527367232699215992882637671491120771939196859352339346074779743135729678995949183542654893031401168130464906182128818683676040373469937127656966879981415017927257151979956192505914512450834788036407266351582133029469454164009092200744776542496093800684198553207304742783519690328403045726279248373085139869663470835271952877023405884013593785688266692015785584949222947987932448746147571762706283085130503984905785646583009429299128979882536418662732426756378507072507322670117557224805128499268263709058386225202817933279991846406283128539716126783075708085347977815510652670244757704853117424704245006828546538420055232713348393835765895860157400968998993131039915421070070814296337839338637976524946346575892319852716193103776672543649207189041774523767852784293795878968619121298256837694571817943178771889126142231258089155976156928326397182750932050405056962358166078814966450124884315305658227410262133319486317428715263430536688812534472979249971845637364989910978823431455483050518498436485661333746494761237770543095051444438308572296639190612402270246602546583462316855511452779105994793831607718827962451282316539763850928033000889038824258874392402008655163237928957426508053756766239218033363731235628891312983958254529201586470831629133316315854291635509384428133366187743286471506068576600687058691673824291589006856190797961794601017828931769186265992114018905842901562469652190321752531735681235584058577474379770688548331829433447920205399000554818143296178599607349158586463282255067119087461542119111732412095337404761217154170105452482844786310951497487106725630626146271577869199662090707339131076231467591490183685620855510825062682514702888493096751996880174399289112273335711441030944195759585308214601659485636284415713407165649119804586299575399246672208975552056535632270632388315878000334709498543874954185230207588469860894101603416876321689973960494171815890810834555759744557743042538259284739742146585513895158986857622501181774592090177339531159613247734169200946929478931429923141192769128032112033684002876628697452835219172440500175423955583183657386449936557693887803161053346941243593356487313643506190765277223273430259753114520584330221525431629266286211480370345906113008858679706401043754589654462026354496084206109305458593617986755738644987848838113867143025223384742878493113516360806759040488777165883304448530253504105143751637898433394242161601776425988588969480511357427412023928493053702277076712686376865859647250563566115975266457209247025821471746134387666163571883803445916981812365823206777175012504857383889507184747809789941073019798320704583487039617331173708263192465556287419411645018195071083325592939572057496917195300805584560790269564630351102759166800712466576998021059267590012398351231282349418551543367287352645643564019174064878462118842249099915496628270451359795887030654923999873101238460598854734749967690556362411011805410143603271292972120148889302550043947630279679153540494918381278667241576449238907833895394496960964468618593446730526481626669202008846431667885533086479559932454689286772172882474698707383427226377455437519777613045079156309089721480931891929660147786391854381664992941034609697259020074256559251885299537908395924768172025468396330332121376203414777420263817011655343113842483554076297767106211643310425750622219803759615990297197400402633020320353432991578116333231610753756790071844803280701433252573843500750038225214726740861657024947984048156697139046275412754206921377561507500061889175430745560261962567481255077152158421157345413348181816386682695277043108768699430187233368618708077035768329273075762421255850821092138236199883844591978139932396550656443519965761999406852862794164189220048790387570517071160937089179400051279271021236971769854157479288540412112270188437958453668788903093946367198485248279619642423033966575171257339096877715494181338392020695961684282012691978174839462840069686397176696602487215617716468215731647988171955650323315999055185076007333718968133247594073636886610502015133608532185384892623690054348376152667654289127314746038792507979817155500310826522178997544000968012663095353856242413403888740444498030206825702687941179601426405609985601122750964630452713866880102657967218552479169279094518163363495439392696083743248477633402613973848472855889625725261560103425601510725009222199759833887620143508874789497276236078182086395365788680108331598680688673831948619772817457519584312246456993741199938319611221249415320044804319487945695961702806735124280176899457538340390342614103943834351250276006010563158271670620271475616690896815673419291201741635364164134142160168639219658135234462410651586395978576407163055660915057335313866789093849949736943851796953007359913272816782984253428937970837710969208390319376261556139066217830903223691682451128110123640421853119398088709282373968038846200205542352195572982993595408439878527733017333556657931884979845752823577576160333796881955286361814568664976443554061189601303085213867095397989524494381628979780944655494851270910005515813507524956486253728417036248814111231443057025238048146246883151530392474109277079269519887617661723021393511075505360908513573194074828934625423114360513270436601455174908235805072320107925369517786951927558455446460819740701212423831773214453749895056936498236560743289194499652888130125546662960852346566162167194064607621580726743068239737616313339955374736570835606957077185787184531965934443512555797056636810494240757488240257777737074774628016207105484224263997432141502635048930956792007007384987192515901909366483062783505567510688754897618575917696126174659364375642563028549202413139451424938129136414492769782079962387372830371291185047950000501705869743860654156105887040505911596065993043381029863251416422878154551693956013031315594367215797451361013828206619083371232874277117735116868731659333451458881131332339842957148024246114296168524770682966878883893304729190585641784488538885515357809376205803435946420234413657861099126728945948881684038330959504248047855443062600759293092125711774088073607925105023958990389211010672021818365978635693781492421875515143774305118293412832339264633000179933829679030357687565464186337990959759397678996391397761763057072137071659260314238266912482785375402846150043539957415271934564150310763615311549495051063724788832242233702217329449147582642332986095611374207969566109592925574072190912696912170065752165497810143823368504601230070904355694799231492057388911518733613495065633192567906639211221463159279126357240974742444281998537944945692241914257020199518711981905009207786707858616574924438941065836614795656644033708069258611654027809214472866034446164175862732018737617251638576618439200291785839709656098809899688217198701299123051510085045652485220962361496684889351522311895684187846039465528188921506117343388022219922562973504232938845616382830895546710666582648432221022126166538700649205607045374364914234664576975807461803739678499669756432196302082622853901846985601445143797108527269067553530927516413773132569415561587653817753640056748906788694580874795392981761048407898134789114595327684308343607445652702343553855803815601164719836780008751926401033060719823158961815909758291030246066726960093753373534748741679487620393409566748837975766624000713035359523037524763263708584845310964046635928881751455097717008493137392734567641129354559815258089630599084111565148283208456347916724026488617292008600039234425227920748213528197821166682568762786211799737981818144211802191936276503802247364960884551824965585851248056278232674088656221763556439423409034336017838780375460243889785844660632041766612141427826215850135896646435621567943261888415567143262579887991116399657739923089604327423299561334043192584946685318175344857952817253504222275715341367202448721884910327586770655937975034223932361580867059240956811940119166709121776984863357077280601376258496016575921922209702576579820351543280605032210970924694838144010465157284178994842222955750004523736420930561423940571721954801891049784703216536011959672855582107505666679326675806875701410893223763061425667445946139700696900919943360402084806958979141195921494842338343982888346528569877131878261402609937289787007241004713797255395415525175217864943811009014174298661753764391861046564179066726570567551801067377529576334847134448583356331527873086715487201203455871427769080346372633196761371754131024250188831468543817400770540829474273944777630366326694386784257261822756243315024359790099377217478534291358144072876973568327924335973362965588626871996975935708435782603085336745152606617501341504117841765119836919908401936929936958080071327164564873515358071921789842527629439985478027489101312308511402203648806066090282826858357879652988292237482276886785941998096291239893135247727554063103569501321029594805002555207851981075727017678376340821976833575222062393389884198972743058338025416881408230900153119495452619102433784347070236947818404107369273779688845660867433836967142257872133394947440185803557352677064570167487943136733575189569521209399088189419080307300069683318131410410527482934402083075747112195268058947968467061652365217486240800637083136111640141674540690942331774585166357236807422754121957107535371156478768008894971699032289088763296168367509803985841244966883053376999180549201693348457588038444843461176724382248478940096301158249719786459317725861177371714430602596120719773087299043427465717557191940211229566499741958218896397608325049627455633326619093438342556207328900640376415329511260645562892203867172544207421355052001315378999566396505977818669923218238945013462334964079962019673919878937593894168849658272525744725806270481975389531614893677315263573394084727681594379417717675009017206910996966862527106228567278636527567421261764924018289485597074851067090286787736959034882424464713951643807619822077046286250599343115417953714178980848337519224713980304251480106092819239563802060502805309064994876587987179346327518154969412308572975684307801587799927524159688427384729370176700517972100585205135458338508664259292853822466058561811449055655217951177676057793754839874945092463963319503222370694172605947951552286157112471300214445040545376504914180653993676153268796990267104077944962055987832639314124979690854017463461212636832556592650122222356101921168979278988424706549153659415316827930983465481162200280847877310081054192179423244648109247258279606013771532750208430595981930380610150718051777649543334317625684010224713010846376635491542208530402856921847984433966100133862634789516400103031360805905589961347715044190886113119888258680907025419867808400197470580093693948322049910362288855121984327383005417184894997166499672021817703300255960346604621215614532758496439220526109893397885361070252904067649295475338746567993148465722599551016302015855551350062192938365958418107651496591676582488609722088296381738829270698247937591239727596864613112875384478374009037033395910676728060308898102814102253890010083697463385832078624773966912665717891773456271331622717152021608901346294338434923532472148078959625584912452214563516320050081401516730907905194480819356377866965622350839585467503654732454767371818962263578711312334267994086203499349838292209556559727644414755476260748758518524607423617709554508571570189828916170878759450935034270728226059887614786398768566965395983315745857738766397830001707362611667698550901653607628989669610327331061689261322952982160940006512146473885833716079905848867741450528434605076479060041005223383855968172925447987176291311109357024776553031905994368128953720942432333860992401622145875486520811002146804124241191060900234885015125068376294073652877884470240709655908676162896489134264538242274488169134944024363865226768263412136673352590089648480053360373212397183509680952565454393702280533471066628223176562175917671855112216828839004410386284242331482121555723719534217124975545419206405666725630883709405360098002972381137754857368778614807084643612781551410895241450894770270747531251684558996826979662062212327029675898508835641554538142767931012311832905772549959294149630600542208402695691853235838945086976574807247761699222876165087375049427112028973090796889839294306781918475777457892958447097219909624549245052071005886294137994132256672781583753688739813186507949163955496924507831811965547324018163617431481458353650001615472621495210127442456392035984733704938491007212217159377713008522416156026788029730773942624837435939575044088097765232846287270077671963276796000453044035305724824449291475716140455817383176660905014885054933644046015031655060650987853108880154753214637047413240226116001716978685309006972344283087542192200297030981290636135096242863609696621847433175862251753039835236026703635074423133955495396594385573429085988137355843926202878263347845282036376982796668434204461432596510023637769216827181083814083847497126572274566122434002341396490974522784778666472869589015302163745846304298766919855809129704606582765985560633827562291670819087627726418444909948356030244076802169179590003918282966668268482916663084365930020348195704582848490740890470530713489639140899553476913039807793758329569673585560442389745043526222112540592330930070886512818171474520812628937561739608945839816587515078531996716925107699040153221963236501599053083341771806679784725473769591896764246830307856126645871424308154388346024553004776163543479372643534377462518368764816737692229733364378941347554753646274935595078909903449101926718072018782124856065218855453510955005094406240712992357106479821484382985650297072509929226012224009715568771123080926882440969583204217726585426346669269999656203359878197858037894445753491368797778088111405244497146165763387742482533378175365260208992891570314891811152308936025875254940179732119060282147037735414986396634559944225108749936278839283422449501664176149829444859122145676920263523509194663296572179943613592308277636928482503474707727579802195325430300676333801785825298277768088309025604534843843637971436951256656625990424742223069521789492634788681533884467806479571363712356974267800228542842204795559868388633102863693613892271499382206734097959303674765011383995257143991641018090252344610792499035292455654225467223311970267495637793396485523309510498676136768903330156942853306210343876960964889355667432123307218555290181918923471787528589449622979453149559856076695274207279446197294730766557420793210157368890374158588756724776167701955171689526561002220443720505475586780887245218576234099222545261222131605696408831073049873720231493914524406670272701036131589414134448709549683232180513147766681091763727429688253681223508049048240181246060225624335476195240689218309822693704180928892605023540127390398775217825765330909821147295119279073355104999655263761303678941049466950358589240385190292395284361060987495744288496951712778649219476778868976057587589683841879514382821107903984022544066088943661434023771029711091346535769483971408534349574822702444633041324307604230998863989528440762423183049188438174725963352063963460697514461810814477648736526410277680694486850064491864832192374139562792502156178023286596601456846051415928799211805798398347493768314922217747239069089562625855774297356506184339410295330201232781625899785113943862442810123947670981665300595172553107674371802477459019266023543828432743121101417337474785456136049630095560516855551344003707502289057342236214046229529019657864248277858559038485920866862159455699090665470882396324606864169890627797339979462245719646718964409668272195212180883919808079026472853562088303448739763753446274830306382888954347466074396608533530504290232423717323162531672247423133586882216932228805980930818000314736723821127737286900199676181967414163559268803926133730707739707450877568168520604384510390699620657759446900793068558871156337109051262937924771759531916236652081916924875062043525178186412628200113211486813518269176319771593068810639769935278326520974375968857543471803963578826835462182710173417099468575289896230602661341825058866815441352360455570197722716406872687601466925424177090995799204820094871521804164411913983772572073436401116955655949574173382763388464419300204181155675591230797963289825060621329157977592181068154711979661874952522322257528861092367010972184585527098549010910194010439708877392641602179839380278926586944076258743056868265751540282843231218034101932100631910306657811796602229179341950035362211737154812634098613559247753987097737843599490270210836239649626447069708012051843602687993752137549318897258123898676792464062446438705545062718356045589885035337677821687043643752104618381964217904646765600080045705117619796176124578404792923966147266389183169696925098899416182305438409598714636110501808124799707272989871088236372502768400707052311529025826530081781706360306259795901736993674434649324382165241933089655093600465934454471501805936916293494685198533317892426511146181459460388329129583146884156863979935768939397226068754462639157692254725447516827237460791167380169736936643341240215989837952640127306638612661424100460146337821416309750381973672999865288940308890459056917200739053008788031328862809081127243706146797507425097304468703462000924310670457531950472213964956376276721375177836855717428877574975605167982278463146421994261149455628221418878784045362401324953031470870176586618551588628783415612661562246503042328926186869502361012114221381352876350109247302615626062190816553224220577815705013258967056988111561454354243207936513326568552930898484605349533036344078543773421135647599752058926170884172162609937990513868065189925525450384276344467263342032745655736187297030290754573864219027364869577046626971231150515390616225265541892893451575228425080890549927202326245238131943124760501536898383831116661583549559061521831756702251312143821571300733380451073943687877954273512953666050091722413335623483263492457745271600690086749095800377181455177871927501830454440056312104909495131133547319990929736897892169208402373381821958534627498063723973292022990345194119254674748298611411858249403928269384664605669793195578733590621603604082468517183425676011286965214470163613553852939455746635981575443700009093316403036451335908362915271234476638788295670676792317027675081782431317905068084514921126544897274082122018079252742784590297341921410445850792075524399357733273448267237768691788775829628716403809589414945850470921614502130458417136236820608442712159993597211556254831180712451204684400543513831552020518961518490339156752845608845453315342792161361915361326130089170422730533682997973800753550608717520469858396199445196971717930817628538419657891242016750934131182451748220664635866084360920711948602986765661800991451072536517793244989182545924798216667931812429245475519567235531625915838452965743322979764012238668717817359403397864172636215290435198414341490882606808064159554357616633063035445071140859365712282392106649391814841697591179165636047981609757356211112929264488244823887952857549462470929893118092872141104692913271978825127589792149509643248883786126896624787595334093755588520881233434203782371593264088543455055155353973163239037210373907565702193255490160622191508573968181780810817977890835808989117485646085224996435028306267283398986991741335815446051323445437347653274603594953768040793308988277224380188884354726729827553093204976047388890388225072087954976302671274915040002246191987683398317006298964427958102532372368159742465062630432096499765849994271109653094131643405578492241456727898201632140959549517806324453303900280016131661793325751383311803989054499319112516581038491596177824093347264095749417189403790794031227548528018616273365006349224267916769953325505946178489992734081086214831375936317844715776156028113509050194094506075393807116763565844510563238766963605635016930945386887968911746484161523396384186636485727679421014790883024561342262286492712298618201168860511551424859018037040058985082668249168475964734442398982832211784317347658387051638267877260812251045139845952540207115196727294642363577764844369182761591344661259195959697447770516326964394743169890571580521736219526803958631432176761518938045355488283663670817966685066977572033138594438786829103700730116542269307887774116289832485114132989404974512422636229254915851146751869266409011268718025001134841510819032797959519355601475215686486912182755098896917320481418588826363105838411963862830791045930065398958615055991860912297211352510879487044141726171066038896914950335414383285131516292657800384790984012097841677577348269754991255497328946780547983982211582744313922721084579529414832856121594044653331747189495117854807061102975350519899181160550294195910152529775858273542900191823374931305761015143288801883028371426014534822075223765511130710370437078875571222464778347324745387628370365877160100144803076470310958584909277399558831322894433208995511845778998396672232395553179935500758594504766296180303303367159973937185157622666292012443279694230539458619619000216126221880628454365633787017261999391673584762777355627660782976915725634886513690383076822556318304514297781564479513280932739162015079643222590610085308706266680793779214381386538095937144263697767686051184556331909534836027833017235571514190653782234319825745635639257596220975955845512063547271310039468390903328354430972979300499422568977799184878097323126909451929192161920042848696511995076047053041617256123331473689744172488695856399787827291752238114550060265803156709947512574088422631074508390820869494848382904139517943193420407837928561741660490239191926936201245939111918286274560897757292001269802372005974534307357084019125368085785611566783406601088748076240969728893047772433408167609478108338635071376753574262185597306367012455216403048704582023710605099208994347734366008667403494498418580615144867288199635180931763628647140487952026835559185126222926808175323627120301806922381255328522364194970512946616270216101936789325219784189429346091296143929897317855922212172814111770314578894248922620801141725356622810993577551201991110013107795620508728140445807432011999997758703863334827889973876027176014565080014283574549530245833184672844872925252093088763285245660664713457777602636587368231792350202086315019029045323962484598312980297453150802185483362070416560413880996190285622469049172767665577714230188803938117598707553905956249228425196325264678840716411864302437704034201529148242287984963786120034874419707586054090464737750057913092400495445048628861139926911832792663724884841307808052893209995964472945870923313205288811796083451358043275568797444728641399762973811378735799323326784404476338399644574414618341733721436618496940872636511017185622217027069409980557282166223508074956885855632029623021201629756685023743338668698572053594929581809673910940645318807185187508167873124485697151937216056900474691976941906572710641921725463172082896780689769371178311817033341140609992134142404392056326467067361451389021497867662010182425807984132244579863408695386410351891990141337957403309017010671569785644153925511330885744387989956410534129616735709580134811476152162568493368203019348522930867469860339668390312215309774431118606718766659482747493414225645716003697645437364662026612493720986464484548719306444144627162882144303518448962174186952846145994150105977811333245398559699150134149754294916220065648254047100475859909205684451190765989508556676048504405337078837886682803133038673138949010920612892246280896831042092934459172448397865695349406807112359836088886870453728016978810792608496874413930445021144414131715593052956499026753465802373926132882740505352137806068048504959645430872173702314031773121003372965650636059600777769328392809782459426710136802407913699820963071114263739003022165358917998232106682838969857845052685358292803227539444461453680798673572433027357299837126174743491173428895694530984400748352108273179728514372500010920906068298999689470423882473105134599959219995116631400495959113655400758874401708086137810947459664874686393723597424404906710763798354767089856166874203551572119608867572649854148347148624086915084207008703924499169593778145586840937384676177360439418181503992221463266140381916484273900279470462359117700784240362287555717040607450212806481314935907477196401567507155661524841775496197277487856266711431813285168073325784078934565448906964198526561917672685788651459276353596552551920592335976527023172569964612605731979019013053582907971001510721639764244445354617802784253519720461194229247917551036763302204135797300743385752383227224955819791252809437316012369083387323738285102025658467022132597840904504680443533673144094897063248801744641789146296503671252096588378811270813945731311179458237657423480676117235755573762454231045017291705057250529843481373568075870558101518297709918477691650340577815043194940820912119948020290559674326477286489903354397800812743540599143544000646545349207633316011379678351561984185336774954101033966512414021824504861032179426781043861879085558308490970246350700354574617066413678317478594845939904184630423276881482269131698521120824389299219030865902652201809717353712690325588323258918039196711414588826898074282189598367605416224306449494862527847654301039149025145340754150666897974480715130993796587458514278287065739234356370212000374641969068506352863809073883158157826187025971093077733749404191250488771109171907106092550406218363821488560317597298151152524542421810321609283527670954005559468579969582049226275629692417987952781776532477428235862395279680263374716221023532153195511645409859308748879573971878559849010117891466642902800151480436379941764277018934885138692085489896152264042282632352298258005257177549939342331368842974114317536711416560320347855936332584430914151041738904450084640982889317682935173178639320287385815199431052160439962685973664221030493102688211240721905309073484415073865125133798797121852583682847868151925344578315566540294785241520165240331809399514989984007138765400070047591963318062655901548283450263145190712917855237258608702676570313898438658263360497692344010229074072715304502047626689898097691020223913906530881413261381217241579471280553012299476053597678859508845097424025095927432141016665718741863411710261761752457613995737334671939743273202138763734015430644744881166358403657163834202481153320883880970092361126247547503544946370835471203983745347369539348330604705201118367724726248080265649293805173444321684708475649581396551373245380907877725120885076881805442567310811936084594835447428460447104015508689675592471228197453802330493228450570117918631513790856284821662857138750284906861913216731169941147561276686780153432061816205247132775844890700364485644981773617608495452259804889242939105686577971456295739760472675458591157717853614512034796633609724425672511172702733861524369523577804441048636850165114416515133115399325853488231423798674822465574430436505006872336565172417081595228922513777742002031092653209986303543863499885923473095490752065659344163478980550249399353399228738436869351078148949178939474587885976286391027833212099134797616034411342436453324962681382166455504487525221711923439697260005825641934061854457005310407916691414837408554430835937554180591784384728768627950155402069386420745216519935044197163412923170607262661980402940020202140005572875368346402044063868414459047350007500102460474743841917706282562944487971264181252188734241110015370791993229900753960971162942781111969615718538051740500403261897220553527178318017253451806075062420051797541583425391411055079684999541627103794964572649380051003144385109810922827390728446150385863300985885369875066697487576139940853766392109172248716306314465096207652781713785162617413664790029670917448254593114138641507434643400538966781666060504606134569798607813381659082960519848071227449546656028566925225275310645038453897560275843626959714376261709051886161634125408786676193909743778948576290224693651060771649032780751200158813518159563148629878163397376164321556549902485464061934314242659364250425977281628367402308305000352515151238110027117251693570619381044562736034925139811326946197709122801976965663284274743584464095743353761840860202858917132772960362976582334945462721709402819186903307893495465436767933072104056519954213371669881772979359113606970791779187107704995104411089306701621786978402961006974884519013641366931014259158145312043996343548553555100084137179896868406194869721355251552522275845401948876614245297755071275805183307554730034313685019488885460569280324149501892220530100916991594959117658679379190744781208877449772876895225458256384213561267070726691792985921373854811233492984846735069606459191367815008768912795423735691107999021827188136253174879878670707439712003248706337767080030932029840831509839570577139529076660907778944570377661638707854671950971871469036571775205004534400912057379302341855836092466659156302571487642950330882446074878191094555339993336779387859276594532209185728088856117593205137531476697195233662591240987444620024028563818336169988198949956356463219567762718882588502654711821672981640647419667721563567546748953489898693440088310141915568675883978821279988280755418316827592526648662502354310096615496423711559044907212926095656145740746152150271454535026475435757347756961878827170960441187093774276310458360392404899570797307890890813977125173773743319104542759685530665690187442263555928706328758922344674089093675766543351864708878520101916918428282629366928489996580941441729398663109781597434165362057340059304238504130950105603690419437886239658974576405119873046715269650200928679930586743702236043763549716271144070092368505345519898179309394887236977745245396964526646008289348089805818903987305345107227578435003625358164361240143491957468203908889064916733128814955939767257771189817023010427038460846086723407160294824499999415741785570892889920294917089510627127278759302011191697090331632713382924409985234349859493381452076508331367722153426897104465488849234865930685092492847313441715173787945471509661138477913354547029875833255450409247035499582675921189966984183048275273465755744556969722303702712398894098965978966853335455512767481289953939280158010227982553962842980367408816836515043167376525161505930017164130270662633448001029433804501776961783936078494022499380590278086770895625961979192313509472011050003138517692335135745965761453421302368287769785904791447234863204822348920096733731141201665525999790570382031375371639259759251640884534135581562868779127168823844001357534967864228830519164956236860749863554119041688437023092448492893621045137243347692404808690721836538068064109875157495018367745495084170575624206567869445660694606960644673414960618601418203893260451212586093189330492412598005579504511785612929822080388709342808007138519727578106652939776888826884551620724417035801859158369984399500191383639733881446690001132906262429224590783025835246430013946126447484358182069727557412549135007718355712321436412569285605403430043151452285587239936456589000499396849390298163740327818515222357872853411353226027521117877084176190081937319036128163433846686466915557716960599817106567159475123257568464257535904030763336556915132159487677180826856674590692386010764914511391177592047214070150322332707474618335030825638473280882409113123469778879850797880715438855363715086605787482262190746697705311946042436804548903108631417265037406988157760301487704906943234752060924238326475275811706185840732128583485746314658040064323415246021188171074941093020247203848601352224736504181126263827774522047675753961317553595560356036855258036429597563048294106686056412142404916042838145038142319420078129166737533532447494554761309036486376962648361332730526952493506961848071082776606546288058131684341287503999370333370898116043241422652407662531259567915642277299280554710938186428828737050612937475306423486483396740419769620773201901539880158761934963513244656635736641307436963349459147174520153278197429821926737866949029641394035693967626297721451830692245780783653824186207323831030543096440638874741807754733169506182844960845699291225942368723575528079471028740654951892378696574755167874614674691833152487047143587515431416135362193230304869774618454922303510786416101125199806830850488825423333060607182307473210274573162419258552557158978364439078466902286078014321849323570494071390870975862891340453257944677249541436110855774381869149169913872968082702275277460724700721496926781218149005604479335141708911038503061811272048686324461033874312404087122763131951877933058155165171443473018885576175223604998506457294335152858840596967526534754640976208208303942065002222392142156735440192702922225498078070703728709779830272437501127368091238860888842796493097462011248863237255983354219296210737410962455301506058261746834890613754187042330808189963458752937465319713713332665000369902747781049594476077988292059527012799737582669189506851417315437521164390338721747764505689727890219455811698764690685679699352101030534147025524379720825024819654058383877759477665403353451256466743214370037000154284915353592595716719272447826462768072979881920734211232019457118241273479106266046364615065488149730101881178523246342002490727647488917901890432612855954577658703420918768027950194301046843151960390101479656828452067652428497975303750632910925246945274377855773516106813494705635941206003428850803354930989234707218854893897210655967917285564988745023329826603208753650569756060778495312526627291248527633778325261573180560789616530587641508860593690389291609965244722300260621284866450913041090923743305787427708829887860630500739472251452216802715324917803433645485946710280319252682814193811243990940855691478105939650648614270785423401411096893202431069837040104070487079873686528330180159459381421358197024694635852290060207290805946767621209143785161748599412370875002625330064283064284778323368954050751757161612290869376940495853357831051685361753377005759407400147842119943748617368766820533687393511825430086032906402517442937684621945294323791075332764476699355967344473723746394627865710487580268629342461506956232410897793649452905801560616811090637982946177548487590946480261472452163667333818843823028262364611112722396411744613258131436029080095593138445622037432127669267142663091682911512711845050179237227230836701808402099295360637254421308724086063183219664271873328848801454514005469644844918440788930218214572743870694818948194463719492152162731508593908486490480894250104671390644516702143742127181161877796516623844048275985489403568699002968561981923168499207207510831966418956589383446876875984032648203633126145491239119967123995103148764609649397149826376319616606189581635404707612463663874451949773391912933590190287202424177377276735333257040468696800172444040725612551512904900049054907438450001074825331313630333431271598272213283247781961654277146853603473005075859454681125326042900640714578689530408976518720968817520725297452515503902442733026751663090642119493471406172946222602270161987735641778666939626898810399800997858683322992209611122160948654117853045933897185917683042536613171173728565601543269034098001051572843975972628916330112458339605082420348398164689580087027565052379853063048379711132796083126229472029019246512529517323351506454489236775899317802089341333672815213105654889669364023845470345680563861713047997525049147465868868254893980441329507916747047398783878390274408712583662550861350500835773938583855012455204822247314198499420481916953160141195535906261722166571402727545628582918379772267821090244718494455443782930162135576070661923960140216842444587403317180998383341690247676744524712873687146654913118209562626803963233936216399600386949247681359176869440473164147877147087971755589336154928634923151112286214590683250755326612075493355860731390735432928833927587459674676822954184884610975147996228831001431244434844498542524397089077918120055697074694446014966237918878875322778547800043339014386943390504293563282149424785686133489286501520839122494205685289889877012868462431175977544534251618586408155614363683191612597935152362650860718774800204324845179971367214789459788873153078491885079755585160813291651218972179582594620090560821584441451359799838300814285780141240773501683628823919026011866532897074829966536963251472576565485339490354116660052274116179460783457796938562549623186449974983244274740874128758217970159956181417119379958179258233339046970476751163175129855607468699248013703554430015202741156609631282724744945676671173089601967887124087313397163531152462914719506622729670041711859439692649466474811433509301536132878728414368389803058850139119351118828174847108009007340811653131532491672488046561104726137266768584322675298168459178165664828247789791151633678409793837643871761640534169348049796712230769399552696401055133993292471937584501649864819050342708435872124980175987473302665358359199869707012971309108036823402856828201522936951395828237797833529617115168612048409532797300916916518883598186509645967797015664348127941205955966467973444798308147358865890393663227622274778145472467198233752376551937625441646163236190968287091859867841369073266010470562105783519721889503710284905453975295392796536177100747117495762349667485080696790971370012163612271765676202884288416485416795846055348342955006034296918986141181887834812654018025681340349889574342990032736799286293314045123491429370082081773842674964948744049683467188759979667277107812798692146401742812403537081552178775115444943842165924898695463605983252310962325080533334044439825989929111222463306263701105811784821348797980233877396988580020549485914261810329445117777358611520055868694850161568672597680850490801844887387020116519008806444846652903586723809637721718142629148664595427658999186315702224217287066868243894449514188074616739608251662751706146152762715290348532193568563294271851598741805005177733510485161544783547298643146957327431208070707430643600897505055502808442821785935456735912761968126084864019690448076233260283317021742438430236399879064459584005932616981775588044932637851640937465987766569115674229783820764624092078896626549975976261905378318400215236092481269727042111881684411428591433336314695145764182481123308234085976251644165276208087106123943487431286887997994265355015342857296464090112310110082157348383570454781915678748214551939651367270770093440750295399891756157360479614017948322471821480110694311081560776847962224605310377313623486281789043079565845270887732906527957380905493114675172177295264371892123650149325104819179892678655009936531706194354514813696095461579711269019687059253248575105943312538470380738526119424906337918837345708650377843201082994138611450554138024151588732456321234980463053641070129209246149285060484208678455937695425671768569867910676182853657994041098947296306847365528964973686456485792811005621796707796603026306849232542404786543085595112183606011310568706539262890948958203623806645438793448011408182645792736779765137978305789118393807772388573980970461930523494769911330819327079257877326698594113359826057380956361222848390819994984192495656717203401333578751563516416163841035749034641341425625970446614369146343599365298836881687395660441193802453395636216467434399891762818442938142066763877311795271683041852640593260109111508691966132526044209985756406936975659335638640765511714999148866408156646290891776218755976873440852989396601635724370051686154459578184541701344593324706035461928956046750820199907333849007967458897574413905470919669773810860712823432322607023391186742887407611780062368407055417454374262347499319100310580564858634177357868818071068957815600422211261599701444429364620443897776236066364793070673590698130131157667244852404869958690481596503423219921632247419950817140793595942077644288136966526613596468778829942333851664027743601993436801621630681109794248997667228589915579576868120467285802943562883604666820932063586228455887432176055584856608110384655566392956000455982998455524923505068375292566701012757858033181628316234091248901869915584171053627788917202015962213438277703687862008085724971320329163166692839893185508981762692421316628550881801761366914673764252112396007619029370238264070512223782253695064167262364417544139663151161917634399673548353588634557674128490295021421684485062369648144180535323003740642367552797913991078325198657178578972956196055424847641233087782898798245039864594044398050889995625968351297424097336226231299943625167229446599297337207732988855161935638064868220178033681416010256577450568721546250962091617992450580959480935896507364024132262065255951721828179961600705717860527578266335359586712352570215694524150474345533909002545374498489991070100541656061921710611179301192053293047731539714402349496681782133036022300059240754682456373680159052019078985658318399594507302775944829238281424370464247287240434753584090920945415726330427158990575526442211518318665867987198418620519878231101828796648998611017985376835857551393864060220365001538680280567635918954921501163301109528444391979396376417593291994678922345815181638448088103532935202970753778177764246940846374440678286444967909256106665704891953006198818482528237448557845384316818745102046041950702102788644217758852903509107507095839964479734463207153735444996993599134371844257645044709257644140054210801066289384493735017831317894425387928618191455122903623268532746075621320494893877902979797360748228390559028145380360332265268640087093381778329267482286599419210279765304301767807507301175113142504225260427342864701850626507256157991738259378715737325437755640279532137162385095349496848339519316100480091663962071571594298548349200242436792015681088099921121465780139751553098150208475431443797852033597935030810338878385797685867049483531454856960426298534131999811729679551730832603856061488572218864974689525053006688019901182550737722304417905031461704804681542189434592331896954629834350591575649355284726735640980400273952087055836968400649691279944813560935852752585961487906699367281783517772230262926364055942486467213529864702560625815166278168220633419373970584049839994650566329679172690781563146078036105353013584340959613010913186574780171105421540921174821032762171928282883329772761356727810250292975651291775896494791658759944170629832053642875232745262212326508380593245793240150481441607252131596771188411254412333778873438432286065230241709771652508188168119742665429571542606212411174381111006400919374182919963495796471530693627686054426333987752997514145473020284189397222735716680966995970613469958881615128912133815709857612025648948050856032320700476495500320056886079825542927095618777706636154033772804591204340103673751358230901700204129718798493188010316243799969558724392625867907079776492648878533814991829072437621125094568963235395761717861258804889461499475296512405350593643970898494098837231373579965175063814011813178153283549615155402551971134562702240806503491007699632832975492917335797103826805729790518251957236764746962299132865410351719282854853057617131704255109589242737056253019921101068347707678342196966373115862027799231833914188569555419031386374489781995857710901839107517436935841396365064961692104923442341868009698683001919534862603911158256556207185212621899308353633048185821035575225315707645300579644516340719725973227874494269280322299040134418788261654983580584605746530250833898065736817841768190290738994059278346116781850151898886130396993460568056135997126605267018727549761184450501422619719008336331223093590536695342867542134705326091076921678855069627684806800698991901534057866385304105560485953422953529961286875823710102000998561113507270372515212128640530306088550653956948081467474803120276076272874068562771610384398367361029315382423892255997346301393791209350401413400756729197752266797484955910737024641873853594515837993276080469478396566047369125604462573193524664242585286539011756720611334432233411110537243576143757332852080295275163967532682068520496180582766695721423615607541783178673921213326410669025925037707256033259936143769635039878824137265494387237010361706758292565931923622385198371364115983448957414074854783237767402811507541456494673832522014357063402139372753846176811521410139870202727764181146079591456230816575923940697884343681506076125931884588561467299212206607083118468820197270545732426481222373125644285230889380864182380733964520988929550820814032205353893172377794177516456860571082588054317689457484786566403134718949657607618674279844430119217204857058615472094724571411063899643377929209742490522410975281856718347886108407044816499494203297590785465825930928243452766827827790232686323362705310585894517824074224475927406629831626683540853372966838231858293073900384238992003775478984213908347054248306250710786137092442310047736076883878165198337570423608776932995181368267124422033310352117250014144427477541488126108181959677776286544810754610794668775492315455987709870848788264009271238296075451298300615107335448600315918010145223295692572026061001278167110622475438161523915902140256157441953272291639164060970336092926043625225582980111642677781201391971769186967511913168900358980094724424620167948698641143412226726434293848531051191323117570089713557250319262830943803475370307276181386390101978777856972712073261623990835233035199457168848827947003578832456625692482078474772924886612430930900730940360210843366332981387822121689414922200510959935144477621143839716437586528322187624448817338078168275634595408627017272871407762198656800918453416998882347325303608041021326006926267958472064521750283546601174034702027845903534042750503778560491015877082658313424821115234832063283688710544354192749995533668860264627732104243892196245241318956398306042568668212807085398751623832031988629967710426135059891265062947871706241091750089877090720086832274173684587967333225682843256174694014364233318233939116303177744087809442725794073504411407711487383200591145785071842105104924391900247771778029210012128362662188152400172034050237209014997575219505419769595733489695290472306665422971431567200262039298373151924738449832273593817594496735356473041461743044011184449780934986346153105721392349832603116078230808855683708269075632151154604610923674698970263221957725390577067775809667975202076841768810701417714120563043758802902015191068855886382338099383502342898043448120713420181174852374197984301187362431958825726657512973705336147203362325308795661245990451561646911940461691079712739965632516097102919764471929119820174050001444805067730189821453326165702607110569986592646054882719003197612027552070521268943608091738812535714213582735156505265615939131925880829524111992496009347341806522588025769842509930702436792884106001706993221811099235849485297764687623591363667124166925723039127252673035069013101520424230056861468441585777525500197487070940534728771683977056839034374966426510476634106534349225745367810483602643202921431860572457887021294367714712236498042520358687222791803575173743690003878216817681679565475114458808790487855467407387288137161964931246867342831170714697275116850357174547220331501485061568505441264943332084938343617788654033825620394651088733626276394041339572229664823577778041147891248346314818476586378206564855079376383693178762064074354708315837638614883993656832984228682636053100694799063712370273030305682305196174114498607223255313930657943417985451752786683624758022810381423295251011330559365197836732159472639414967702010261523020093427552100736612478986557640627352917591598307316528144701882764012017489247586382786578324436546903681598160085007428403396008918094507447985148902047282057781580129548412878766729937262001601306215510449328941867922663965102850341472254438834223803269892119795096567250438596377867695484351237055014382949506426378366060235880408146890467509136981879828327393549486130181257128833808040884759744173913319348764089802356509918386275888682044530881349239362879217712696901915313246398361732003287771373628268929432938730218836249672376348267703464456464609539834529831198671985865431441958956552574643436161902815036831344439359275669433147532234012675001387832216231073331482221424607172273299513295982289174872830784952126020418079911077329367721297492428023723861983981071943899147381752766725778400395952378294281917462121917776439452779676178301469147911646260278481140131131840527513925696932693936479746520415552015787647924206574914571070050130420575765437481829457113937569058712709489610323969153203258254663880628223630356060095255672630653920982345880132544206201629754439332557336198001082916467827435348628727868144158844014780375236313187739156395213153951609111455840529172400968291367615519178865534908406177909839518345673175426717007118832361177446446667509703628404528899652642088602421337561123662239779053670123082722910576066916941441759112435203412639247363600520583243191572603311151250981195039375925652860334803216427928616633112223121663741853953515901999159290695590449913267641046608557759790796937342023353906496493768823575271040195793088493471691279761668756086428175748648482418338463124325273848274427251651934760253433544211018030180034237796823029083204365402706553860936194386002853512368217887105532616174243724184629936624691388293343698807490235701978226720082143722585481228449739590635842918987590600872858669924379339401899574287381758808725104408490152491916981436842071912458704596773759184929380250443202469205824523712359692067071109104449444622044716022255824008425132859115540243251336717268628103097438268422557549101778345294902555056251935337332838395312551511541036419313534452065195614309687491365986478828629782358403580237787517175615598931928492902606961192143177999109093636983762269233202113991619665331150907293646048818843419727616392077649499825135074102478340174174840046760149161246088583727717979816211719599166701050404845961246564180136448405958428956196131788103665523685919414197767533234667927986638639202962700774037838932931206862094730942706420521592712363805852037732570356301209085774162366972369089481434571505626704303808806541023096214272697587411105498867164440791796105302488691250238257425870658166196394861168957118933498254763411024802473124333234289777863369301150988247891606881391147125267152405818331735204826014272554560106970600112254810379594831448852516972819509657755201568545300818647262470008387782001317942794381189462125660365633056757532686977254847367673744056922696485356222275590802199870104504662655759237320993027018152363779329054576139574699497297542428946193201104678442785152086044603370632995944274620379916134353157541473513017723621081089438511030522107573703784249816339216212198648398456436251401104362009889787955372017908494328884937367302711935360005483933142484681907923389403147008820235237901591411391752944680239455179224058664018302396525168343546402310297224754743818978455426020400099620296652613086614207208385410936312751478407861810679619091102485098995559768639930760381637018514955281037071066508999183933968439666443840677928825603301004025230260959195686804408957297322678306277754336180892947096746658834295852420772226759955859652219645762710046329459098154833336600082031741183532827474478814489167748502525878688526122342009863092908026454580482245094762434338736159902397205718521510233288766185251244332924261033384845133928325271103722520253556595749130961567355764609870213772546939796989117352932036933881150297096785105072395548905907331458638173433382321666682219665041470102249725284028755631026485554906780834963925247862857751055408354779141631004210660687690548714459765355699780573234455177274732783046677940858866299375228946170342697704434403648354796845737422975394071682801548746109619468143566844221897525339752636412364256530834501009511681491427793974975235038019223428248174832073124853154322925410954334808496258157071976364488862280655724561309818689945841361337499092373149160661197275209659259992680939719024510877865850111857808534265167364325664316594716368406984318915455558653355804998324129510685431199160612748908397041868652978352665340592467271856301760936949105367242306623430658191521114694974708751805497050780621350758680891577271621466756494795682403501661676455222254611686170285968451383453614214909415047055014355202225545724720381781790358251678503232850922940828902389824363383980228186041096381090540339349056605893235488952351588351010008354380877627350464951212492430806875628733051100511561476105216980627502815153578032343483115521468747965524916951510302096623045530675589218294499747011523494780355395463165214841695274030063372627022615161132020151788208977706860307072324345146004248614987267153006515370130392208742478676842446207456156278108579324962135505262052266799670304001944226308334626492664611293234299244673194164476575337095985123364898133073005736090870151424166450632732253906861982758461624779759216420519632616447375743023257754047274791779089695135002382169484811323143936929512825568241950501653712787482884483104852898404315128690532070863203598230160990113331894985460143359581134409810002048722249157730518370634023333304182334652553837865523433466580861308690287683711873133538112651519695357112241128327622955336694791446437637730784766480491100520390002880434647765344961052925278479584351470892883414137430861905580115843900832659482638670571903468922018323787394773947996753858818107177176004264346616662164159733457487271250449850949278449612762271150046824885039399556125366080641928846876338234135053935094258691061952683622972687301834042854682545966967313159915862255448570612463454130842643149922064879208344091936019684057363273544114614336539671652612968200432488677299723616478234062013973407359671229149909893083816225303842246424354228239633259688304213583201678911028638690328350087677839593471326787455122805012833432737066772481770114326755461966978580736640927162683830387048218621039922680021616693368284642955201045992493950379412548013260511560988716193016836601748318183128395032055152623003476945984574249140392270948907406733222496360948316037799007350137837610644588874679134892650306022551213932732196669889509276792960581758599829904375629662527650634496480177985563533357203574430714780482388641038254047371978396812877027837975993882048354225430252533229932224743806338547158135800959956303779587240086926418718985730511898822515859932459804717741939852088998317672085687603159846540285231214575999265500403668325562743294990928556609790483104920677086430426885997684189872869341451071970263590558335086498160752734679788995737984169955058659522219762424040416923703171925918404468789877229413615617290761691573523107975228506228452068862663655510162316085072349379133683540232231695993567368494643268128230456241404053939338052781661647104426196427564374765616437717394981735463778015492415375095258187898041116002847669989285767362076642821309260978894566092566739910014204842764656631271460155511308577804599520472274226007282161800065596722817619430955517250556683830968178815287297341749011545085840949159378625421499815197155374062096450314363160981634105993536050226172134838974250434923210988712406349786731007871362841252134520689379622086881123890241082760273289923375929158235264696141295603137324673654902620710457912861124177212737229130472909916274799767270189207572870616831717368405986316226074559722077335525042766847166205878136521734510878150347998851843947120005774225967276850058930338649897568748997922891204862710985075232563473232514144131602179608011577850914792660597014624483701920226301330383815145053796797612251418191737283282491062419377963591778561264199570330351941138953935898387185690351386168859387365118899555166629451604872186264920697007363261669298889493246383261806779414504128734372131346648896218096054270893527007836293208849467380144633490112923769678788826423513525427710195526887759751779086390273684206735765345688282651835266542470014893911915630537358762463054501493062176544977893968091648317254156350645708735650051464334682629876851011433085038859713978905997776270466476800905334481434673929395587496374828789107987704838989367456410073099269412170331927458974567635372360254362851490445977455282672942126157261872489392018454484403181740226018858011903768192131219744983303148217994207833802675541349994353864017538425327655053177991115206779022682534381680052529011394742463996811623095092011268154887654861370770559388347015245233833230458462452735678936904842285883260754048357977178149583488829352562108059117975259505839410717028866634524479794303581325232180474502123968442854726006524928286899865077301869929019863974301793764830344468968654125082079860738923115824113171914915794175317136016275728000969180433469573805226596984653379983857396994421728694133670888242306336681908562379621021467539011846051330987859158556294878895166268063260811955948494677284329423876617390491796976892975192672595297218823663657713196141942924857325964623444173557565852906235787837543392040075452745427072787926774554084193664421171900909716359088234223237210332231828073019564010429187884019675547348950560522895113152509281536039109598587086765024805003404365726279009708164661764980563050423724171388298579738668445620784860954455976997716430495473332750243274892306668653003397408734515553045159992110709267511212855101444878706469226007402914875549305074935377342322187937413980470235786676275869651941306007541634609761156139952729771435338885337085147200530126676995013305560599496445687252971861463758840789088334016275040146652994607746623024343016089057831779357298647004857770427732359258682377523285849047883708533444214606002297870567193212713425705916143864439289575921828109759672330165143555373647066882864522482854311453603755755429649705725314275048715740351633960758945836479612949989702786416247491345264356359690808850735805033468175527354910750750361019631817666666130386871372944499447898947542366740374385990445767219803969527138955336107382744676351028144912962464015858396883771977429594668099658424134057182434407954896662892173940923977544868925784208958853999374530843822660429199409476873625554322305162268635701207302720457526789951571965961956390522057860818612526512649511918080685847881921467245487073180797351779708719207978053244711073367128750763361866557256058901107538740353149536803949681797753125228102496506137540766786628789533128882171078893030269265123262737246993510500390600974268952392842630092415313278577875967092197632444821024595411806088936572311315386495804606077093056970318534923717543192473061165725087953002513568060247095111937155311436240395970249703977824779046841814779952544290636581462693736478422853314261282490591658500912924470919287966202592842416663326522665115247065375457508709239383478241276348072546470743368077401757944518354722061271777417344667609828206886557471539148576771354089895906700442224636756546050309591599072495225555841511723810508410030756806969002082465431459051743250542167039643439998929464123658412652032626359809971290148775200413521019328324929041828151661631713994920680831644676291806148265409151602394794227167763295608217860816643339714760804943290147251939635768314753179561925712369385354449588553550262280234465456192608259540049642179189192050257503151866776750293867865966501652265102204031828784909251001998253633425013628807356101806316420622919276041525929173101069881249432183740863226969326688283335763527411768520801881149889794761488630696758692259574479951059920883087740442821927937267012363068434222787500102616864452248157274774054289588899635363178213379528742835533965500776121916395909801793433890628517926478058947103866148695733993514735435001792667852118263402266640307138225159744189400354252192288809530251052755076022875818145329145963144813845577131684736867599465092681537441530470624072056339309302948532798983464797525599919100869848085460132919633967091536832610965877687552053819665706528164702916711633145571568634390616513512683580628741482119039621494955268422202276079072710209402024376068260504029136948685651699393422113253716991728197574850132525441536205417271226838628366238916391021886643305284164268857772011765220040768536389224447002519544905099178630824795710253010554995317014354315202325834090615038234720606138413840698163519081435586150818714766726651020345377604309956053425197662106209930887580750824355129347111708708501182571743021091806193559789210316396397381140448004255679878875024483595533565312891812220161085977853027653131006376430298616514745909060680846435930387405808474159807327658664040423480151039576999939484415077556997018958425976763217177071820761694590524732586662798156018155866546433461405704315351154615999414355249957583930779181488722272056828624306710254441934993503707176264062184250851274879986677164148609565983086149940707067778045415812416381277057557545366300671346587915725981127424276991419589553635299621531419945237536632777341327962445975988389908124180321076939982425494934754914533406823638626227753666031888390430463869994151308603388804400567883259058789190770374746172667725376883367478446693425093728331112465306988520546587161372406538092889323642920054860593312601639251910290860118347849949292369932566523262526274374353309170444339781449137563366869291077429789716427152784859762995856023880650557671462623611574725358725492612733975688629356670472128725398556231628686904912569243321244102951897919307878790743904501673469399568422251172772829733576685734750489809648927119693081608196671319984426416947035179242035522328184237205486274238566202062322224872606383448607236150338812793243800496721265229296187140596550632138406984332263925796031604177122326210149786580868188644666371443206187242601413056360590207508392005597007019372926792132659459362295718413792458772730822840659573784785523050278397656768137536638760441397787502494755776513213374035831558053357603145539504334462367530708571410992392357934193006800063534178982721572971366383630462020138704863580733089852806723063419272121298466753015662460769161825718498632705176589490525526576515095522819437174731154023062124956914281362981485951672982647097260939951711555241815678697662520078473870900471062560516930954273841507949829404849004224949037349447256666541243945201554489344808655123360787741932119464643042495438265498136147040956719724323550805987905422658804328179438470782104764312850585558948454313909015748172189207552901216460064977769789716729562374192054543588169456174611909607640371660509920748405898827085307554834553955428099575896151706593829282206686039241485243166866901116800465124082457504715283795170017195323206294568769314887684379717443060019148115706447287797242043578273777071614875105854244323796884865329069280066866349574721674882389862513493540477103785900230135067988063419298989585981280148769717791674257208896962667221104721121143631011742638783536670579090778572410505089408925615545075032502516364524657598144433293468890226460862704506010751037349517216557096393362900906663042480621108594084137046881420802291731532772461932194189808986239070528779580456943489377453623877465140828402201485232671243384447357940597069515160276367730327273187900174149679090892002931816506321335785216237661419196727079221044183930283069467194883981941987708881339401912437268248837203321970403525201622827986905189428426363853057820757397896809240130955357888882353162515619017005685508013140962840173975855095371560942946445641865606519204445914894637814574613096875386861851778860823224878624269375782123779574045314416651872219567280644414218639657533919180874110378409699775149022481718360736909120721461222605456927649899644756753866904204483190362515968960037163580537255577736763235898159824748976819926297436348926441112244275544640802860118366483919997361001003469660858661714063318191402477872723584868068637557128172362901167949873302485963752094075097201662092923560048773708759614589955593260926050605369487634023729292255112284781979983262291907257195138015673252932868027144690542724316522365582486178396319048142079557055715050690426438721658412864093402866322909238266057927016264851403914112714373098494715835565876469566958573630542424914526931961238141590677923059173715802886514464642777091805615405337872972189076985961727102894263228763170699532525672520986846244610943410131773650230344142332326468533334741878485602550608028863911525818347529902200369692811717462604703119564148294456819765374117846365776104607278384354281565289293679396363811647871409988899990450659168563130114145223853183889754775771708241453015985327324729814529144731820985203486070355508638070308531650694895686315748612345567834449807658124828458564929814255105244044860849008603336052200841370300201943103592484226129225572364888814375491165172074610642215441436925426990713114663976252251740744913003565857159560079583321020356122767642246131407271122801406925750736611970220034540537969066916647772303735902516038675563097261013395915168895862112957338324922497274215573290618200627063610093842236363080337766139530463296152575901876913323670437026916293621567317175458123589045081075376514548988731487374471525752073936101457575824052265679509287602644360891391635112223933760524261021462979365576144828510519193319913232030954513236612327036655861116410031511154364999331324065531802245343505362286915387135578991122391090612302540477045803430100374808370122380758827780371021610265241752152423931043103382396364590203273648381025738444651882862589122345264449264833491635974917529438121933654118141713769211709123652190147818867414674132348688250820138628182240974961471849002844408448286606120041737418270759483899528657997958298080049661135467924997938944104978111884159185641981504739676263726777829505008901691721919549879106856968017489167470434002332866838611805912136388490120991514771222245909615364174620076576657741430510776419782918225652163694612003993126448981777831323573525800902771591500676986196582619438751172333032722038067210771483810686119034461276228497859484224422794839966697987079028266232065889794748769892392278230252872123436504182618833130660486508416104646193709760898536839398907369700660498502458401603733385285958450564516860005531533317054737751243332531214751181699075422795231413126166542793732755298999322236606381950813991644309815695958186964090411852985315442835141129072551581022510885070902698798478175538348858642623851233389135067709865698930802229468425117341240067198669014868722076418623995576062509147965080347763896092180233473599688098517143333983097887799913313682319041319093980413745653718038677124091086752043539649819749236568370421289141562845757351909754158185485129117631687257223492640163137627784541877773419005905921344944674559979723116737318232989885245895762883463161143147754481566087755484485846482312903638528591337328166468427303196341299899013899033900950986356944421650446038443342008855291498278362016192149512089498138714932008754436843990409964379289578973836441515823859125373628665152747598126867213649501815050598969090838872868212337540983652526661715528726709239961083151675263752463586586678341598321786387388524955160288188692490924224906649662043358890179554961232835053935364044786367310256762709198694905998026194410216882763365731344665401003935015720814044095456461927085841171475087623504039094139020386813684054498010547865898656128763881148026299897432716485674997413686097672550854748397694521126767141836084860343862193453421714815719244508822387508904661143879868284265418317220385786760692313891687854567177685242223777941463751591307315128227107376200803675268080538928205850403930835895759225705891893738888579996261583128263965823429912978461520701959958409384679142327244099714306759644204915438199969465623197069442310016978009206301496339015362206259818567862851925856895982493646160712291988798254051965295060905607651224863495435686480793637717530557872986849743834362664904895115088885756081282308753421826071724102778812103479642093848241252607573163991181408325938613420399782899933356997370940734148701945917733940723490600703372831854400901200805565336475522658264766280157250872703232486373847203319305923525150145049021000446543818907728319665920325220116487685175196846662967204241385269131801730941773304165462091701722374438685556119124785501681274907400910832095419663935830591210561700586428585932237117216581744528547992384052028562753107872603581973759056949545517586288398179718178775152259476588131485525425753526151986920879916358541773445632999358074532654519128779065596858561018706842432860012655080264333140328008882023581053480269618731825572374685993067017754149584063611640413947489642306721332173796772360335436451551826750916579547737231843296346693870197473751198083506594557060194502616967644887379480637251894444319836150022247279485170619971099985438744530996546345098455499138148017778765365843323377120123913883490765360308457034458120094312737964127639227439525955438632360002158941468486325543133666996364415782156337273346054414098693213504408051238163039155372620464851930144199006368402839851735719588228351899938474213013115304639725317031866445172238031410162897871283312744473082003401468502646513502209028620296215713479670822180985322790927723327605892042033488306611546581689121039915725310516417605254813260604966111421827495556145638101179156206414410831192034066278387581350835854003587356039624028562901406329143283779930978835522814820282633828684434923884134167659284549197219511049563266859080339223778805089519877177674027535006406617755334867785036809414572050457970591465508703422403549081759648453252397358543380339794174068792251624368237586943700815360511472197220080129524032170129580897018882637346178473770170017589277372627548891238070707218353887876530023478889263707643495937276680937047710997534185524809010574199180878845006404483665355851889385385572882397985257736957774536111351471575377884462167049594372048802526515527375865199326394120100134271058306661453296504264424644671734668814736073701555618164462055084795296797634873010903221053969387904267778735038831165238211264065053627298798107971252855179133910968762715524418346724296302578257413053736667938613844028574664724961802797590013864679959774770924328104843216018643706579698748762621865805641835045191549246813000348757037127976603502791612475355369490560987972398921459793914996640584661457330119205531383643462762896169727392750292707396289596691339587919974110061502940371370460388465905518466459727701829351681938975735712303330019830103412734609925877191992425062132488998433862325394457288483054476512947851564492989655008982189599462715826533227405751589780291292586617990978172022220306760218954057155789618630742338497871880061118217204012578273398046709524491497508362780861374801840828564399397413022186727156500994136826429087694045649329786863838458919108880802227879692955317826766886145611532406858395084084260381229180499947016767210945779639935775838837722415043709998451231870644371099855543705670047122896330600267429652448598672152373959139677589370956497803232177376573668652903967929252066286345764054026856755368115026405853913691216418270571516709353761151899651726982692507770512701600099031431697832798636005291511454367467656293749938680847029683783125864876505923336611821104579091627209896182751268585677245128524268689420135555455925486708375016010986113822346070647784341719471382122813611012275222737212013746513355806976458592661388632783047650504362581235797632069139307402438965393351339585504420226189863908173106674765650597371027537021207708005800758518596881295974850315792131058825009132641760808530062894035750127653082723118209649772546043830831531660486502031758260040698241467604517190622774948328312531024320115013353188987964973160094241798069547252900869978994441879479914058697202621877160222438461215213356291763485161970690649292172534696933562162417327456414742555389366895316614552699129805876596891366581554783525468877838207054504095968420981066037996867799103391503645536273896029504135676883106558370075308664517488642023221787813980935823254289549143690439472309943375829779683274880394042083751338453477251812859198522039899889617927288188290371953385264486860885160375041670293383105897737120913361084177842512336967972783392497897172099397561364672152075154361525962113316367298363788272214513572081396644969096700584805299001897654046901831339853585202945486803745732820112486671341564314228845832736638822828327911682959686002220165494204304795492506119251934242431829539813340589812786016277404836944710304173264610312866924924607051875354585039347824952761666681599572930813481707552219843960388354226674438345329685934984816814110405166679263812838389112456406532774949676857880373237497358245801876440521982604427132266345869722911229217965293960972918976176972192363134381126015630801508114873832243573233427468462993999407520934303417555293904112671723369161555344833444432414531355209794925035736126196526075947371015229879137315350477925938879984759073620920602128329496703172913435118541241661116455186232727697015536771070097930890628297402989355842334073851143709803132064665104189759159222180368849723644583911273808889658172725572629813704252304376352063987268604471532243303310738671876165745877078675667447057832874243310341272182081972968234063261123896572972367069696534202221732421530546175031913336095115560773301696145037245946503466689884003642334417818128398884091623016039212137313950323642263376731541963923392518032217423495665782553130105211820967459631401491100601191463036652103685309353105329462375218909146216173096576112628869879032233928212195051482144177153603690516229573993247956574624884264091077459780709881911438836948727883478679292909006178729509945070621045035277698778013038668727314197177607804608778667758144556615323857321811152211983464401539149206516129376372198854763795067789883850886288431440803670073862051435545382617278720486716595558107859800305617246069054500644047187814556770674364605597556642916238910755171948538465255821064124512280185665497515232181842054731080169847802358234203912131355062375700126453019591742297165799321171659568288025575913534333460070817108654525928035400251900892742586584982770207758264111262472949247511391541412175678539169457705099918634624263379374697067370630135128476328230296435911674747297861280979326146428846640491871237362734447850711274131877411425209941181608320583071814724268805208705364945265997983900656946339560526174392650979308563510529642134307345121661243116407653325308616676432835705391744410223922920596750435272430458026758455669747487124717877378643846121626589921969736417815506764337393711490786411783940152537508929057072441556839548232259022426297166968028119529945706968528724797408119808476058460201497745857128772726362399539518442865806365773079771756289212298551102700449796466782076976721087172821948316668229690935784496481642419938282989514236861989969757190625490727490999279801267814232386362003685809741660488356177490906916605062692755095767246725966143911863971577018357864450851279947344510356234666518183156411590676675183901876449064475127050384796706705268518628245444490721689565140133556056125222709848653113842997108374446118910530438560348495946815349480195302991842458653459710302143808077941953482683171155321171299855613470989874847600536412841735626063651629992093605573343015902373902131608343118360931263270883330226528281618538692084594189646763370246074140529242719165401184435216377377128041541356715292835923836142270765410141921028814106522116676935929376716312243719267268437664392813696639937782342322628955137979063192126030024166495761264105132055552950718909312844354197252304944239787265709138043860729082114924901137301196758868160461605733514267437243689611377117465723566108061260130128698359766183693221414782024144372447465485881682543451902856964770917434749416817071677962714515339734616548986794277464058492775298686972922448421455079966744378535860435543119453947080508049076705985388540441951981664293294475060619196295183606040091014615196436242251879764395242353642128953954247973017785896646320552620070663504093277584749592055292457524696488441256727545096641277822513852711485074304839623774647302296520470196515422268239386649495065500097337314619266791474008902463565654200537766918233123472983900118247840060855329694306850776691450239784006513283736127458516476242204137201538061256837774311045922618106799931931611276709463217485195875917790646200738018989751310485520426321901864077739292182358960763513782825345370247244999976717600238374893318720002860488335295441733668597382146631663132839468051757653814536449685390345457079745231079163952111809370087235436072221771277947323661064057129422657443358391731933994486419917588461458412060649223648407783129609737861626840609156023774344993670869171692507078088729104006760241540437023409837923631849145561606327074965660771905282616354121068856161461104341752729126670319606171999400226844975242454594362465722841470862965165402726814627757131602431441841002208187072133453160709552018456375885969850437647445977323749909434832091387334235399165537526321693579209927362983745017591791631461495607838832884915838380371525476867268443435121605649810679377619523660128978743621422298566963340819666312302141803852348858342157798626899603054494012013129054511764569160270033766715126207859653414868912035322739777327604681298712193468478302649227352356463105714853254086054530298598535374452694577927536764414656075366706586403882244157802024345968946013929275136582157302284971263505947233417798078078993510721823933578089257014431916907263596602817355735127361229767149477480276764040261875208915060320396281643030440316406829530632660023504537870795156057372138590464177816564780217705107622425536324443570517169812375231285033638029745056833873591998939506299401091253253318771145773074274142091180083815336641695128833646125920703632298795528795060699943612488471171724411723839823953073159965799987938452675438346739470249804141632139022630706205804396133311243286892506031785294742197846967249501357445015319221222041695494415555422456787894200707696666482635272280426162319444351424263580242140655858335215257300554640246104647165446235438632340649111141724599661141358320539621883586851588565113473051770397513992924995533426929335469040588074650647098300315414711206253177308249446597663920108380121329384971812347345157662451022439241064680256518699199339551425116430662406199213692968301610082118606076156789895158300795191127008458343492954184804603795388628313658275978789214260672538109319836895796669557055424165813984520718134578857303501611579085418343229170932048618212458922389371495404331940839944878804350887645840396086447578020124528654848142109594754538046452459997498956193748938434006457295421115650426260054206751085692920101168121480050759315288930954267725644241878083955258794279007687951373710174455428254079363951167216912627012703916557268326064373235535208940069049763378266805458166047937979898390452551963940145006873487693852446207243478374594369502966806781664906336405640500723311117749718989141491800893484465502637701036246313173338846044072610232615751350165502076948093034942793922781257317018822779525929513915755318473421422954596492565282473052631725309401197978321846005403974549161653273593039350005628335385588505177237716878486096932219365388273352852251918268645268462488855023060980272395405432431586133614819571064822594545944040246013232403469062372376532517282385802383201439779544207462191254204704590895711528121303054082734902413547835153606363202062085582069595235364023088728206721040530724319404437670324998823910542769213305720512071262378024754366709926899476218389174641556254582498474441941113440213780443241666419934581111630339789524021498876769853664303595346753139978052386859004814455439304758304052444224501198684696297638446072220339570614474811498197717310922464108061860847526776538415654313628396045490438693861803974937420043625255440098927340350612628262900563691381010384770462230229898394889227903432036964831241940176890655469475888848507700888291641520425622708919531099461256790887337411038539403099751377931155160479374505625750630746100245189916080727132761214245203157081889586411847005278238456118347790340695988872275187668637499030500157639889938642486739212114273760789486469935750072238098138355222477076934583041582968943532025328536088765746897964099043808332373272907700356378706632196292273394024150559727983512753833173403508230383566338899595663211804032532659187120839252937476983484715617559380101839765834165350012655690805400761187981109878508868351270563423028903437503310427861025456736663660383927138257080353054973025607709516477580244163422212482681856905571369318835805101460796088394934178249438967683839560417686817506453679649078926092412909009841804611712763967651503965167108686778019296336089220361333201714494594718033224371488448394867721389551381295788750348673391424832258076744165751134846143824413607935085033944852457888798904959363480383499592213604723443542343780041965805931162674199536646918368994404511534474107701965142606123624105739764063231934036882822917449347188432363070608520794506449714419296547582293820426597046148074279455829311194193748583435948871632522456759246536305403560126721856278792502146772566844293331535761637121492247642007544400804545199285860638896366331980411808397809333030259060681588873170076546481799471783469801734243875693585432747195705938556823030817266125504687024476284242867922974863759548286599689473372715906357436559586362422705609954216794916909412444470236205740965119981188341505376751235974167920932109187136154735381689577762637258483380054185902021502271133400338554148555377808223578077723993916084987989235217279565397954613687766809947867273849684959765770898799710278252285494915265074154259869062472800515894885991896898140417434828554661049253344958714896255730436155590637561966794656864242447267938750859391369590546378453945762340574048443923005588687254968693877181130709701272618602195376708879665076330970091479661692019013123272921606887293505347638307364228416246971606739370054704859753699652760241509121149835949032184063058152485809433623525137553172146638366238294122908145959193865707294318216285353610980519596945945801112221975646186923744051171966640123305797534610039488505548005933318841740486610504003131494531886465532139647092548642549597598996366050307374460148269543780158632537438109678541248813654586190392881326065782119612992308998600856400503081451286718335100455171754046886524814971566802077186957127116960359461118703813051706614497362565455259394837789396593185932740728652064609863455079896312997280839459230498427858949759482975225111063643947820126527462785681715206540228935622622736451521956998555450112815730127631760150638034029821010792052592998406679847054518272257309752001647952741851745942683894463550639084400263241303926414183601277219205490969943547486296710779951884094926566070313928142164979789340528425554425614643471333117587167920704647400624722307041675032958530938474822934096363173448268592469929213055291952808333501163000516217593316698029695119045099605074728470733653537495331582479452568143747839713580776338417219372305580083035204760515615151793693024738087208238379175230598769507760153077522992823191856108930342535877230107062129532302167052827686363742134695011422926567248411590484055084389971175546656135742709977306012426158419908522536496893241404964913027720551589611533112434983185341937801878677768222334908133537128106816640775787470759516898243512918233193956339574648688837651867360229972295432072906986551284718808059805194444744970341920374495240786080187866529430355468228564450057020414154287757331399403198126791104913200175833426403991612913867517281726408659559975365822596421141534344983104055806871950920571995104015642710848021421331715731636582978737571242117834776605247653932069106777289889388323469067779266518950853138574934970810903468732024671472425418624989789943511549504175919619348783930904247643750075523022660987508896448409860985095043560723076317002814962868372034394265944118467342600385239718591518217532597947248583406696037096260627759349193076284564461961129616113973228033589275424169314401418760061300109386193978555673286284897747350517207360613068480824733413548760535805608366856940767586487347002646116427404717672317046973229867672685904701855090783225573812984437113882327879888675618513378174621572004444073327215288846957799532454669379984882807456571414013346841982823858126829390008271498609590860276130948339748841669062863757377818948595856127726949576308327528867283568360042806901348309645089959122591620179739070511436272212589789678677925047504092855266559669292488611510460026784479715001933526927779943991095412698730005889267317753033634892467297399556550415927915170215937987088048549434823994061345545976791253786008104056919793613205551546228987637922953576127328301199004091312722638545991479904547756025528996391332138235663245368275019091342009603898823696770612049596335277658155963312360890255898462456341829410319511091644654412258788788433741286563168736661078358689475466445167938919531831769899090244100008109908720830189454776305315544210825533117997770439081489932138263131318996505607181553884660578904152182451636899698842696419972267979072118990307495051837333787390290151499305557698835805391301172889455479831607312966483967081056691718131005908851235843159189512820488176050013774599623859436756949071764605107117706984740595202787638804836922970347904219438110435819104982855272988897815983950414760215412750933544421222819629875842914332474878274711147881989013327520978132080437545015674531997652771577105569381727522119961425738440054783876428661574503889921446714029903744158690851622984960708810982404761702073618583189582050813215769332455304984451230476199518564865027996358846454543848738578279486620683917308824088445416074205982022907261594424745858795266607744790763201598432713174935979747373415980800949062261804731764594064919090547988129911513059608274104945057455183671886103292332051609324653705372527827299637302876543653137015241921022233725061572331066168787486623996142378793933741112934957360300087476525858600923711829607995911065607651704313257159782979869938191211091229629846115445029289791899519379802404876505920198546804962704831691086002592060541039759589539174017236517656576704766484176480364170522798527512550057516344520030963661237413651738883055347791545697230753217366435669717045610109197662558032594313867514226693699707604057329777805931726202117008780197724961787620157057970354785765706112123459816534161811246452926271796038282130372949875707285384792275649327815840833943503267156886577814503344655001499353958503254085416589420840283148598150242948920171187010548831429563533534134748002154798611086620934399222695075330146120059403283533883236332657698242851517526837203133062129839279130572191951465126733830105759279059389686353262510055018145677641500807525786336269188924290071067326376344275312303816244118646697497271317354165178123649924789752369574604624136199380838339625504691676001866079628284280153661186588769528855037336816060630893081256855895790633942071654180583678011378835964949204526048541493648157084171268607284153362979167021203849856590679707635582695390289268359773813954677050559762883086929140204034683581677519233758986174508077737727818727232017792380140005577932898211256427623046796317547768815493194961831756278112779187822786724310255350467574279127599267138311488668391784797883181729844213424768832439271364056394746948379441141523578722626104309652696936808137099241411626013807024196359476429194877421420117661039993276475986469704152113749566984430428643527856856170292669820232948268773649110760344280528009777771210905662887904321378179611794597164349531927949466137310302810887519863717965202260368420447390582666456953943469311327853529512274513961756539265712435648018651704261271628475543998484565094657469515073350710937894942567794663546750622726311755429291285134921288813609145534752530829367560656834634277039312814010527386310219362301354785254575159584605290964852911051539423998617711601467617721405654437339013735994350890763735007156018750514811142999091831916841540007804556110273272181434304805743506391609942071969236636590398657330900549106481658605888306657035868208285804804585215760123169231077684504950720389952895206582057921909735300190200028563287641951638916547282228008611688278225333840490906832200732201936448584866336834646854738282537544074597977126014712902952692121219471122943576359019214338723359530707659621120731282812347872076883497584835503554630698739447430169788918119209012282985848085393255377322668594070540953464900142634963125458811176157433701790237251942608494834174894236646430019604166381474162289035014691341993069111706752704155958908565418900525734607273077887321095439344962479552760851107329490243419974881320385855137741537885234083654478823629744742797931720387038564488284042676373657188325344034094284033838189837911440071880115470203086102159816487321961713273979629027909080319232215951518164666152149725068463415209739128857736773407289419832887118996169949340416259247087549771282699928301161036827714892150335595482084171587746873354421430724522566122048618049513941867444618518795788953207896844600811440321360874752777229076361236073608119874965823687399538433924180271762192229603790776034463656913960955252059474063671573298702767340547818700394180996564742949806156493185536168789192720749061736910107923738640569382808743549245296035093310100835867696215433887392363312049462425618230238223821745386016274596574266581437194577128161208567935735273081730787072708314812116648211455309233326560163318302449642520734453827788045055847144027581649456068866520650345152750708504682319882672541953783110759237935194672902923238527449451609647896799742681806356139858142459862792780456938223289451813802175715302240999370375678149266928262333935939646227645810384967623333964945698447418736293896718961650912694877085491771870777000739633050679397025681213230207787975017964290710563076649779778936708103876680791061725911814117955305500155715961016858306966913280219112941869082346506094283892536095513330155699322177585776958871285116768565791364098673612469088776501365127091434717802710416698707364181578389861240129756739794021288914347095437736971138865359182415768129695558029694312523271737639765370751186670388294933420712999636182389913808107276331125891236978908660038753613065558464901359864310804290643208685415694084941399216166399820139425558634265826043047293507000035953325148161933419679537659973961449716866015482897999690251474411560805314560043156453195795903626358163631047308178068595590360805615747067765547416190295100686412879840356801076903029311657533737065300856642751745757079454526727355480303751872989002813893542673312324360071811673924108054554601759234203332425185580411551108682798478020435295224047977165548320423960518100382866086168845254555641465278413796516138004062583886851974555220164938991170522308828657836391820386689363421284182959731014984327555135289242788592947491002000490625690327000515457690947631586813135678038320022318905644077760380536052719056763953596403043701204660439102327904068168121637912497412427432980108675618555138177682469857629909198570653230689054853426362741081953781595883676088491822376852104845586556073814510051091384010220949414619664697320565882417478662996224843164666013667821695288975904190109600691857612221246522578235756293948027522126269209387930426792537903929867700160012628879035514896163794175529354694230925310078879700436351964384836398351169890558842573537513492800957130898487307450983490448885579494547779349429090614191217307828125009988001003415257349386073351157974937938022838868252337196482608109324277807292191826199746838024401353554717952269174636569628200485124487111679282057821958685905086934696585638502901976418364247791076275983757189253467333119945467597616611824666634546945457028668764755036486680045261745603235688521404256124816513322746721178073443517655194576044641339409660033006075112119233738871899215957075772315777645267241255441701384061472341715497821914528115482959144466348237065972658983111032444281288291317988134784470429082833371836790075782794112445283849921112065107103203694334689932178702641500688414761754774138646542244626455948688806155790348677242754513560639060554841590178951293075745005767505709086790098857082481723172702790919080518649402588338958217155290962795070181740023819207968008440186326054260585344709786581640423289944799917412715297458083247072063706125817666441824304075455461713249795922623293485112655171744063730835291967768752786845244537447873222794326949631714800373997755502004465691283204929819631107941176338411620420084179664691765047400850909674296639196918066052895931707797869069472542430688220281905856565803211947159629067464528092512981888940924573777328905361820473362061281273961414229979278797025781487909209043957565774150689711634582977229794029142801903965685592446885670467649613177489887671498289750969153399169749531204086121176837830108885301790230668472019244645256967429307592290839007498842412293755091674683706683346680885997218745425518503481004798013010609062610419648838235773603381500183567618276940689596611959570570231087123157165448171670733231802761381784212477463842296102746980470354476132805461141428849338257906391049749301003589627160126475608769137165907242990821825673393275138391357127099837043361224544698335371353221103637372316691793317854410310433646864184748613845577928889064875486408935761524387630311751281733402474591562620925135172627299041325538505494621646782176758476890675875864895388622560960430363824655327452707995799647015224442362395598527002718228540259004326319430052229866922141803165844445142069825877032658799143475522755173107756241009581274881813535683666929418600595378126100043443202727685599247764281484202212537318294994579424900988091177491306457480635836338076065201944419763929598947396668550841545631053937339849174195913249895287066232132858101756378721054978201243904848919725710897090632467659067683872071017567131732975776060012804747037217713426860831732766306026478736287656157023991405572267025451394939046574070892502935060516382312339603853668312767675478070412768467354224941395462651408165446912934965985023346728937650720872199172774465029362551911795649526856494340962098066531925396245426449747658513798925406737539772811713786693971890232072627200591626536607173842251950307041707018345677637875610937783105771875281749907146560450936548981078281964449354921090579227252098869877175730358009656911251313669436376491331006745012342252555336854611205326518624022670675981521416295191047831986314033702013640406565860066326390851410279053041062996902859245220903268439695996295745602470852387643005152548229938052713397055021686124161501417064575582191932307563098510840566934688036396122078002439744286695645567842321066576953877478973455225850101540078438280546584619853435938926744768362395496929461269086703832385678585493857839961571245143354923307695459555451277633187228197157934763199811667369890473924797561832703487897847662431462911367823180986633389304054153475457645558343669604147296851061039757770636358029284058027061803556093405930708166565592566335508126238144801610972708188904026799151487586043978141014510509362138770914879769285847477353902002466659867986038660590001825578181311443672222822008264708350309310027239652964205380228279266649300702537716625801569354721883861849726048984053117622098480167411114359486389869141626386309473516530776546971922062029216671839372099617586925284419102184335185362289347425417037938227110440799653501551133347776894487471237488087023232541695906516209235885513555760710032292947130286014959555603085600615546661071765803760925529041405413173201860416670038094517173395633025507723748985942278529564638240696434422126304702921993921357885731166066802329926375469827830604809126978357189214025757458982499197460403555738067129646252691495332438614780326723088346152016568598259581433670188185385494618633430250193924377233317508873348539067766475646007193125577005808607534367240558506882306656245930749220533318698455391313323210616688481091638760546498823931924308718290439831868389844336330177014881871153218470964890246228181966036405809508729798732856661962393976354194617283104353716188643103327750455732687024957791422323618492147527980045140495106727667622918864796417122078153051904192852457079976152751488911889385707429190444178963961261375981670482378882633305950475918407851870591156566382021201957297408990206876203681098792037479953336522488566543158402443494637610944887457116629185508591160111326650602312870375050680486916116641351723537231437631343524269835820209216912427535719092303486370069847351597633699659687876635340391007937336464278540401139758881405968670275546199568768430421965617019835386890904969622259155230584074573739427442173606044455467980619491050644667225465601823693599635254437405788865923350969362425140721151406120459218006195538416644642498486993843823241060651386520229176904256387596280620961779165773812384223082187540637414436605193328601383257585307383855563677744381514386505827259911113119581381793045589292172851190215813717141648708354649565747065915664735343914718198717220592528704971732661998072674510378808921452036239534078875521996794224483724999605549283627280103855753571992745363268665906024947891372162564128539096588880204128876265203882527213293809376109188908319475437984986320329624935237703835646007286381751692607939792409828494431115631367978562577190662917181161087479203340868035326983160332092304866403444767644610830171380166732449270597337303821144237468957827455767798703158927558741921933698198551640865237863318320550714196485519178154737531205692150927574549870172018190790685137796470237053787376976407232094981766611279955173575202281585133289977167847631338838940579954589613116535783621504749767065856584995529347636095569635603467006329199444585631894438597626812288706408687979472228748326003065882589892046620084318756719950707885761608012335831940380707607718636491012416211131130878859573668298282181401066058140268503333997291406670659493041722517069214874236582220285762097450992428509530613451030605761358591149458071524998053179222531857837055309821376196382186207385943238861965901545258138795009033873157261170900084093746621938590379501314197924755537397148848601602385019430773028444621225223424122391253792573243037420495453645422549632089580279842384101391971093597133398428820954159353361046357469038394447929043449078069469609027625316681355768756290819631566728847254335756632769121435920601201949140945895906727610257969936837928051630834916533228845372724828577815303620385444979066918524521257366495885039303608143841030092284472905447814368659091643954393880688210936461624548512436915398747263428501990036627756844786551447638717856147647857329035973182465876874541857804376565840303528354956148542936554627959651972379099930445448368580029797205380464893765479347468950031395181894630676867434028262916741806402114245103358251623739702736501303199284643677261290726434192670854766324270706251757917535374938661930022097933418799094882999156439060174190714954948024007208149277891635093067872736729833280810981332795883818364507829072438133890874259813639938125260739891356813725100192202347309365729238151252924894252027785345064382692221127447369620379338661066192807840058095970450548927760324289539156289934202778096656344077156689957539716111606552079691136910707653976052503448841269661337909965201610243849518553278942044048473756760423352789263026690447436966055237211420274381903872118460837596680232586991424988355868551256021758446783516206372547453579019826889296109608973886533591514699911365955677512454611189339658602172244500078373851740291749970872321763594139341731439854700629884130973757060982459379007573339103530693741348172344983476026065056793906610869402831322245376108583890661325417261445061658673434181242010039716844660133683420025392188250719643280929377207697928620401974915383436437511973782354521376437229333679078427352547944388279363276413781700060725139571350718488007150097744495736726250572492190286381360161784781437776941936590230886222074565694155532137927590495857687726908798478555102693592711127414838854126937536695550778815865066818470753093272621449138455583783308382081121336960069320563066140185057944082604867747621841913501255033652997129671073286565648179090491630391479129019319836001946145585152906839731313172844532091850560085441047304982491550344797453738765169403318390468789888376719325427310239431782249896514356611695385504049970292706268699154294187567070916970690081922571026183329475934255180758080098723333410085429602861783844141923300550313608709434310464375396119798220242073695669033054238552219243108523277021835414086711941299827408519660213695005592181889217085146538325554590083594725474484346966167100259193415239637629364781742040962604660729010629769621750422693376363484136575861009069567068373603834341408401355153513794434278451672022308439505921502376091528647764500424280171924102149401825744765449168411809898820585890048400891165970046019662922686992122890403595318966493715973079342141462589880793114480152182734756114593990315070765409050722095533831850932034410679363114768867195219192461150864262435425953215692390259690718443203734622353470953088792510402941460607301219290573521694577993398854118635560962088071290779437092880568297272048458005657414532843516983455628706540934689136993367875969756813585441046637964014201662508633025972475958031367078544493542303705771818652951207442391539473574366087353015066517316818121904285411119712058784785232854219495241314990176002987115078777924130443503234345872308623706368578419836377033950515904657997582802874826407193134557356929758125873835994422583650321437211259869409475982573125048684369559752422600230372721651393789801360727832400069816526990300802911257500573261832950585149961563792996661059728030001497696741781711336003899776374559954691793682006785100933126488357756158855508195980077028953939299256496340190648810202126019102449100684821840943023510105406660579782520268972534799338819766458378653850770645509362501897359546305310628796091551780503166367579071281579966042326602498237437716497511494628591141575423143926082912206706597856849523046449188664982530406537208438531859847400720247966713970931323476543311057230852578136689971645864529338661476918836709886217386954485677050144818619342023299283296076060954522659332476259539687248688282550908960779105967105465776262381922598090495232831911344869500339558304548708570106673212307919952752234527468576131036071411290216251274606502979297493923811881162427344130212874566394766966555899151323864707471468904400771202461855752863676283163852396085407596062120140136586264775022932735915663306858226117110498510934119746107296408833589918595662404368220150158169654088009198620869349688599719135032321258031033227777250159182538924809920925879946700522312728104435619682529505206223709779604075149090185422704981194407893598639283969249069168072049606574070251611158094001269322562934407761078538949476954376296398187550351281757555543248022318192191527380900264977988044963147848236493673172590000887576746895117919544172947162630404305046273362167282913060182495228410212789649060012794931331333414736090500416336541529974241021234186303110839049347234686869912292296085684780545163428338484433020983584025597059595719975945650438312756716614988209238480988666213351379596275529860212820252264525198166800990940508850822024398329098582087439424661353312944933270050439089458263430941942125855310925902901340587551990797434817731588237660837967292976685876251398985714121857490517385938376316767220493823499651256313201215762258617362341995698595718584150733284119253973643124562442605660390164387931033048688873470232870937541623431532477906602857377937129763781696824318209597797221412647712408642839024825472014508258732464651227784734091124892193995588397642026418898535932525355154338611471577477411340541052023835177758135458798869278190235434301598287358938878299427017834093107449315384931079321306401045937361059939996565012543105161011489577557948365517879518691360925942766449970195910125937360664947501085457970807575281598388456215797793537077886447134697470330490678162147972904788400112003916161697669823825816571696342868781782460190467575186422308070485045959938647776353294214297491154700269446557639033909253071977122578585103115248226405635503486963699600942522060240056287988514544210151905490503929275183682758503913672320116198546569742989536062049665448090105770194692885628958174804310094903255472055224788603269927917204685791339148586851016714127674992965691356055204532986212347851119157531048473742684569278784360152828896147322376752965796494401995202150405135183455546765486220852593692768938997292791095995379716104030761846284222031809642503199844662125394477803620213408882812778748729713487693529527438912098295086159943978460132177595900342626375427373583779898655216953071266944204314144679879612531650453741853950993412517019981615061332085690381280574861199848198634526456086841079901513318959216287928862092677871432272972190948844854267160667706965149645835785851950352724517538617939482912240372043471675239696986841065760176219231085751818757680541710242951076588976561563412542550587233879338546030516014425623783320172316244862589023189408085902404979785126846566835199418287131840835511514607541900851618881420288979102254359902289770609523319278307836022635083177338579725641679088144233782920278228560151960650140448479207097345431454019913278029749174260960413817647741663253806102919236764297075889723095894414257805515374254136869149380783725813111803452268208721582605189866977007138333835870321699265497224875341016032846831978513569856743219982365637356468764076961637829369716073575295475624146087203914539812133069193966155396360410660224429708001740203179801088759480369508345626716270581792573826731565405149146878303583100634847522854515687599999548023398216487773055303995928007600643790450961763528725832756606183293468146274095843238984215790441471581168836826767418038170424410706982966956816366702626708962413759043472204859331598346973765627735361405351126669564134467691784860297055125209039187564344095083051354268201475420468140040455432509785637562645117348758048024197699102852171132708394074197497799588315805569339498033393819305779448695827179899975751433493048826135056219635628505336688922444700775802740745903769086399512586159864053992552656166804726602673024519599056077954814214875806555738978290583968788084859999668163661947034241817777300039768143763062900931335349420473395406975565407662285070600146665365014714603691751126519189040536638948942465152489728433168697469327138902304621876086137118401126845831516661645396767713310499257350548125515491703406517568747410835814738418786751245944067755199432395309620357923336987272162555424307109112209978267446058128281688126625921241118287832305998023805970001375334124157093794530195885333656339685605305234831622930978484036269518678641746013417528782643291720444763986875137056228947326536753222897581590500917269680448604746252888519595240215444372499317108242729838560360239390854667575003802875829132911206088288920434955142088822053140431795531405177571745035533287967039136497958371350945196428621820777372919486625164586133143173665041257322116732089127728542896288431795568828357605677596329470061042368832495813589566133161460308631295601805691888390389227708196283129831791897774498085159601935666096631966984499804325674835444482661729974555367850922581400378784302492592116594260918924328788887806324919234313618608531026680009675550748818210706516587604362061779962264824159082735458085247641007155853619936793129260136712914992428322311964901051802154793211356300769813182449186392782877572417223361156773421271893626382493418710228372863102727668546792476874226622991704294601848881162994877337188649568221058215951753816938116913809010813972091794550733279734663798059104245644514427058334383536542003079383098785158118601609657895249097492589714125286923283635229896620698001294080991042636638082499427392103023078120297364302768968332865829010615814742226127700976775939502153216738686364534123548423980916686077497670712007677962406711918747552013949933136704457412772540063463207812627103150790282187337759865731861736873264664753356676623711007974140555322457826027976721347959241885040323176976402347852263415711701287441763531822906352401469900791475814045697962571899736388394734292349322226543448067707590917923696558648617232927495283429124071524360164302637034148059923594848264247394388713712122185030729036630475501158285992053859879937272128129983538091928345908568757562911415000011109340536075321816014120497128409499670007544011911678950544353823078742814469606962873090052037059824252817201999141372241314557377802825294105625560120902835110353079079587340708671460582317063841108791125853408768644712732517739557993766602288683163082607994498379481011039217833646183225864659844882223964851817404871463431213838223087836206067244719918280035899054857274133167410861563694605178177047886605158094188844118603979780171123415184310784966188555778050749203153176602053670586631959803508582495962371423099814192628127697142939407076563186956499690914718181773275312913365788301811419355922121667647076572931334763726879911993076160463133510182729320259423708786122134496582167310173144824272688342475991413545987419521197830567596973271290427706591488738581596780482830535910492739110595938260369148843300613197958792330103484220768770074437545212571425006701038112340973758246818045810897596069677043877292686386713578307145838431952782922624901366372205659304640911267834578395641360406916628374510885943072423449073654525841080698031214013273466909635431579208720640757104742316671255248390940516474233694286248729914859088802811141021427586509027414426536153242337744135420469407316815851128793680870170250295481747510494915630336101107763433935276528163098068760960092182398167009380737688340580629928637173721094588074943960322855173847931509409500511217993039025997813809435472046517847446852633178068294288853444099399174880233739777574708855126155850366700523388272124063684928951054271619063044829655359604691221316090347949627623234230063189319066827029109413834879457859468158679196546341069398256632997893275096469413223815667413190468020097940478445219520655437983098415195132593365921676670218198357089546237761923196315494074103253377163777739201683651496438060071836754486149155247501184352938686690632825208518492131140852714539838038585801805544413814332504606955292809489803023143026484925648733489702694039808691668582245591182134519129499987547614778461054053824213654999640064541322601320240716503632833939821741093830933356512891813044539675565818747855151905753061326263529304648280615998623558505444245273279873101327362874476969679343970480800979362381254542247344457983745973470160891636750965018329830934088994333269071176012641346746083572812713881049966714314810568205630296379804987737567551267309325369367010925518697860644595693419151192653204612133004908420602018435268682903364293993080560041529093755388773093198635152162328112676578597599176201826438794573284242744036666447983523057440979892555839936593013724273295519797217563432411738941327779153316640034363317134436540213723642148185257034860659509820152587259360087838266003021120532264988806941845870236269629626618006464034033122258194001713696609431449317063716213237079730392105326578603373772969381256528672923908883225483030156746770876881438049554112652435703353425518753219695427488106644307957709386773812158274754676302394513121437552329564002942141774715306712969279622218016444286602401709109343433639252124459597556940753219810891958536016099088743311539394283533024817790921327837652560591610036259399711748313516507507110736269346485104724301617427971628135436744582503178463834854855657171518987348596655636239141765964018528857772366020630130598564744275479303115012733170252822083973892549313142704690004727349075742116967037612949848150581086473290623904803664798034384091398443840088586102608387844130499137687448750230446804954976131874209478510079729975429688311462074177741494752428598682570943105126889852511374675544689846843691909804567671667945548950209336316371724189703477342987070898838186662897797780669175474849891144695415714826730786379209556539901552366858167311136145811859312029369971539027921452236665539372598329993777997680090229374816331586691914452587498916918554106750048431116397115604798759569882071029108964904887122785068886595401028842630118273267974381230686036760915129925185095904346564630197703487165597329903509844298000966703470450731853682358564709779967654630144076075037386159416862570976884397755832909279116118245055734594235441890675289948779046855895912633129636519194845974829986695681582110771773785751185251999693817961464824932438508296504806967242190732664353010342017517743505730338232399997705909617396722590895444804545083725066551554330109248241214717684106396961391941760578246577340652743213999735757272591629223573053218357175442398399293130625259849510826827230883209736431295672151237518381249314862058975944616640598515306135247403900705735243800016668955999944161881640036375165186948119072118525429940879264713831621926750661555064490473625758979124472467158170587602564617964413138005153686802587588396278034999253853134056052344827494346252453547054921625362517292657560236151636726738928723468311901030170761175283319668999170584238159337819199394535092156692670839594743625983004697434966701401469377478987997916519985584296663480779369600532323665955233479032598151367734404300704360195494530337679433520074365027201858159009297750798864950280611004828822408221197471423892401959657060259276861114810246690219154566763649831725578788482168497865721750757327254819820335510489155272126732558438194611954093534947712385173518514418996274766554312194637852235091732706287939171299208053027363839602869287463772025807215241017913050162610978939302430897958390126076051948292544893090204822132200514405939300009764070114224878700607741720461602046086893886635909639993874650796801680140802550546510086900109147437146022294563621119138956658871942135774691435640187096931703522122410595624944739532636249581389685550427851718676479666434455564107461000522864392941926715283923312341455737594905813420507498234419294050797403308094218729212850170213882930899270617859969346006252588611229786484787588559229931739773978552260034353301984376502298298599643172624805451794126411110976536062329192924839676967379896415547504617141317460063484604904055624179152175646732448461058318285201232659918157811680156729502475210986360159650099009986789745954074531310128983000478666483166757709964969181560820304325079829578409777690540583446047875556637813662568359363108451338768563520573097782242443342880489832463811575064968960897640786126813810514114957509624999062583792887200587599263133154651584090240434304488800356625096783478843540962796254529057314419781149168542735035254577179760176204884210999261323355018962141096080233386429913870598734577144116706359610340674351614189895341922437216882475000280600140569445521474558972278203519447124796045071599661869016949087162448881996552192833702212277410699091261474067412951621525375935236743244786313877845875138124151456400434955178588931210104390525383232743359264213592933448086929443290406787076272188086111021892974737252858220857574579052613598677451422926590812548417797659943179618865385358536343497422615645753353645984722260427012301813910573138102005723135713543884682779798687048715217336657970784995696460949568138897501468717017957701535698088259820340248873413244033792419793224456554119956599537872858301317026391749630568458506366218488872791715739485099360579615741116972256508640197793520752674904419727654886133173349654923901837350150737212053823213445998841448901715875803080354016226187243184180646381571023294869638044162985743555238564916934188061082627976496679504829086649805007701891266369714822927800939853752603197848158201935638798131192049783456438824596595971194139897923962191340766652477110004644953021514055634892090580963956394378342235921641176939573709670367616133031312299607265668194210411210823339545918278380176233237922886558409280560720834032513060421625592010800199308168788708989808838444931354737808989218255275394822151091211318365276388173962931489736367765163414814882220865710703967274143321330762608675555346455087932661995717356602883527678111785496274082110206829911022829209461405386458684140332572140606719714368929500566974562797762308939740849757223000441577911983858874553684814944332149940965554914576278498129247126869101937776017953078917581939693682033864302669923808481526787038553461194889059376795210573431698199622341528980934551936285371237422243643050461092803823664781912313770841000911436610049977966709081850369629329403862729197229228366806381010579123596985737960847275179217012864200172511685252866605759322079088302608261477030034422030881733064984697360481130512519819716964686588806524263470165612159439377722536115376754433712162726666368927877143672991318761789568682022969765722008173413545700090368101959438999802413243034264739693552311762839157649144874418422450641250436275849877582093209432945690718891457825505044026795482784802930517902687265765403168080972780478135131018974818107172866477020100619711911569067986784186349901497063239748212759465295930501303731147528626138887950975995896766680637526861643201885835024890019725850732261706054365349786933560421339687463261082940044066583973040999759852934524585768866655080057987951669374613513503952543292414587927931697969571000959038989559416417932085685056746497863653197889308448558765318178411465014856378542022376811731501849550950897216899008489664014409209090614770545578645695767688014016453620884943612877038284260854483128145516016375256593061123752812481286959589636320758000661423542892937825207964547771596582141067600349087309307535801661658742233153431021256015442778251754888059409611914178942249004689447385959976198779778173206862443008768213189330459849390881828993008622079829970654927205586388738443157885473579024581925156604035304186868518283018115789097463129814239925369060290812506460135405873156989412637569733280840301089564179071299746473838005619648293312697613037051397592107033872214235018133553786118288441011911607356032917678497283321681904291549842816559897548982260715333312884191901440190930716307117750722874406996425949025971817091958373289080534418446075351998956756730132640039651707082915260903301930256402302714972064924362426264133870575752151318294147851728620905548056436850571438379391761493377539291832282220633101961395164135558551799490723916359450589905080900882507356702431863763379982270249501427407174083911853593535092216207652583431361382584360892735308846361474965061321442912820661578583396933723846760676903551263791432647311546136754638234254395495250894603980087558863032901070938696030264124860107977372191023347086586345487097732930373225641730565989770151984178782036489230244982556255861273575779664662022042486360357101106877644242303020563593548264154788198308203060644123948642629541981685162941726349796891812299985433097047856397221283875798957622694709673839558846279080050047642308353995823841190745324292033948809581222112696380623963112724048744141104141298473855762393117152622124958450913744607484037571165816143726646309378771076764300956607471621441035387818611495044823675797992145395089142525411352436602000554432558849683197823904047806992238727114302502393262555872809483809895180028105384443244820084911691215483080111332435063081610068400398220854618001477125087257999037051858633781516953886986275810147942064281717281278647244181908102134389281832684143081783691048643478442226630944155331131726569555424017699335423331330767238085679967158425013927865888747081201913900702024280642788733554914677766197824663217943163040169813345455008651250375837946071097600682581676005723489880082050266910158287222338015369600497699876327273423993727375579876664490015383995093346660776987130458548854669107311710439870441321808188995312701478393475841311268705196093149709931627759657378438408657933472572049842443346860797354717600711305886762337079362804904502056503526909740823530816137272282922502531043840501156891022124306789253190083110127850639860629144696145509132145842695219994737179230836498071165811627902374561614940058964208294631329116583279232324216812494621517769335747132596935070265840504898440173565864910912721293061695431448118991888866002721132960778138761086140554863473375430735913792238565103056252232374215792679921623637646011866627421851535028316466075698390185606469860170024265394666427940944891739698134911095323011253133738183327600768162370767272122261409390651252851387835665595703673011085010349179083646994093509096944954229509492416403570651970121214388736147170495359801535877573467405530347923006786118163271676185392331111779836582830752403105881094355373899464358830138685702837024864190674982677790185923508347017254468819275853442018332046608018576916594393232346844577956242204286565491976235843803025270465863062919013275474272705600321893152733191402214221374835006229730442987933262721789550365988456517121536448848522214349240376251465366518177748700440042063075545790055786777259003231894028136428858284705401543536727881384655211780448785426466293744292282722744373056328842752189450255154921091873808147693282736382879567946044086310387148596370916848983011180554315507836356067947315514714159014493637929367443857312279303497383773575828090350681933450299688582956160196274524677761862188509235604105051000342572098005872571147202345979924102923071437504937274179504134184043873105895264846033341262864716007271237467122098737836857124415372990227387846050752338114064117403122599568256463940384522303157490242127325151188578931806622089388120837652072874725173573822527144636689054981737799260848718376996219732053278618038853794425862985668496432058875272727744300350614143196156594026676725874566215922853743752488907224780319151145398183757152585998719257034519243278786326918108988751587330559145428252420580746930577754902641168399855822468788019913863222533480380713028459201576299183674759180588386818014456326885579934970592573957847837842048063571286124666174177814545830131597357597839980811914498887051272917266693944314379227828895084203490566747850205264416978618279668170279164747843349618710666797762361884464414294943695995881938638898081655563898177208673084412651468986617086253727028137468218530273305219056071087037804854212049020496536206242047377626516560600638016151053591198462172560454876228001525510166965571873680662905348788532210814197697172818740762333024590164275332525609161688078301878302921680185992189479433362616422613206166347957858011043034707049711584607750906447799870642892472636055808540652605087045199787414462572368958115423280669281406990109007474320215976519747835265981738806277587418766719797266681335462481195518131307102652266267452614666818704107898162514537060184846587831863487806431692411880470746972257564596045554323268804483429087082220307825866216383502967331671254324680475094374345191411063752161590992410100385114657133557965226213376089216722277051194717273950292703087853654636344720998532867214776223064997308380313017399693037645649905534064151445327695524379722449935939203178133507961259119099849692058223959804973815225850776440905555747316953091831340971974486990592485859207179228223853171389622033350700809372323979652193349540879446267294531252931922971710929052145073298830218912839756825874690751935761482125582847845558436826005142802463283622021817157538142684880686586979976828462435319126583948232953875926353971350173555539069394438257225587166898227983337847147316120143828583293175005431182714198399071719786715028837777136652827013939003718515888644246234744367665849476230226078974544165877866546771642931415503504376419160003157710140831545348514959196010804960718345017383150577601464915240178032916328918583673960573171790405339323904660450468214034106759152219445304916384124716347182007625150645380917941182566034107171523088999126359662444391891941180902997591743616946156380713486396387865747296407460535562756629109764964610127215788646861006079588539564357657983802001512151338829637540888013524514812102361216936199843963882621307759726204569491583123769727501529484392043272661598841618247937641814374161499640504543697334729737320525508718329915140387037554066747652082939045952226604997462911924452082442414561875222124989493381822104538776026437975763681159761948923761045196707218758741485658692410755170553918652994669329791975100594179743047698719096233850986348774738924613513055942057765244365175582608579579687622025246239434642919185324933080032108251101592515761072513995402318635026846327455451969430474954105144354861113318018041101958659654965377004005849692864243703458600227233851674936231095057142411266062222945815996530508805338779539836120813105469652431213890009587070813193131187261985065546217090398103429453173928849502178301553529999347901004377094629403680156956745239615642850961900956585935333646994416221853320584300029257093299709821377876822637894644225256617863247777021953958204410904608208086300999922754202903766616302923531833093188045202335078050561295537138485414335379396187471631046212275157860897846528549727903840538249439857566020270361012256106192021565862479613213271827113222125281635652006699963009550874431862589437080411226247470532492111258948772727989766987838991624352108024747095707762676896026726475969380865905086811688515520715602954557989580635195673605197390370294933053684951055228354439003186741059173069060228506763359380673053145897086838102570819456539241881650505975571527935472253546869730469674628049399339783498587165134128211468247210380316840165508045903396311548394892656571131942114388883244880383549584942331868286222788509650958700837835002657960996700823410727638123958381111727744961068527635681353567833205459896258153623505374169046382461731924000047304072106099649859091337717143685202884901666397967806479701391395057931309036741475369342623163181948565225566712342912393053008172709380558770353846270412850237742456106389019499611794980074794299561049044745056786966395893174946203008412232414025045103426253326795793473019537521885907159232851071976338609325053747305392312017914340985049908763383969123062508795597239018450957921893391649970830311466743432577062427010782428924263638259794132544545379996210154973157135719521922912364581293925349782585639159550973008570827489615087612869259878893836711164861671027605144888348029100828682599497643570936926103465044891257711121970850769957481406773445314591584506436133939523327961981229332432788739908629344709195777373232710044215354536460142179640726695341407110145944188585312561371177902674406002260374535846580590309199465764317467552976905867810307981942773894052658801723746830888004504189170424832062521682687246154669629819088520723961668856665979028812696442248834187544109107338252859151994059558525177251181083104870873771357076184177170504930121586491300733809042263799527291729911514810231005580316128641151920432574926127380974979898695617124977881358032249200517764212140436581523301871050950429805339751058608569499854820801691619140057996576790481450807034146283872023359663655228063989281820369960435335980028414618299235674983535636305891265913730194524657924608304129204767525083593737295044863052206087533572506345647580253691747630341138800583512022625146955758533568991262418226948232035002767787534646837942198474226647881285187726477479077425108590767125252529221951730662809699717248802214382903165207010462740354670058359384162247409605527907182416582884071920999197633927558368301926044800892409249114133827636449142938367441484453797393873200502650860633072186588781749253763959976806024303420652411398601331949224827747893668513251993323943582516876024529031253214465583930588025698015687052021660908108915184911117290403557422585485169721551668554889016366412884278244142984198686984727366174872209231059970967996301102797009294875556241360685466045570189695738049342234859348659701018450549650828520102502424177084738738551305495435700085730170941488532310838881962613110002321074373200437391923461404407160416476206955738569541759382727056350388590618474605498902910310393053098829276426336507422128537458131384536769416090603371040916199368911326775479217041088939954574268688622054788874475138660258668920534591792958003413306765948129270172173081219817519686352368541678151779455272505049873443303817096667921865615655497635279076531961873519609700981795926395488674547696195253371500951590210382140502253230123700701062503402001190153158453760544192267852459253704653618935798246404810116500423739446591048553879228765538796902281095542756674647710427560789330227146598281086674829129658615005938023458568310981740471345659698579872530196906487913257800192592705480678645829588250229568716131166295562084016775910719176904801984256358015142984873857686350537482201648416023164338900961587683964887598514153083874370767024535998009897817350753995617860545284207664239476065572941814488397528079176709356258918824209682614807426074301245771849178489177649522498559667706299752725212638115833637301538039243051985348334593540453620841748664645980906644555049917237661036989567356552114311200257395871192427453684459700937376048520168070199470160428744272811168761519295740151219726882115073997523456534830514106999544050484921028384965641366029761125582573922639705557984592072148796935157635087379388651574026117058219780449987201813888340157072752712106380417306218980354252231283435714275470062101521899794372025096147807226648164175774598677864407949701054232218008986488941001626865952803869630218423566220767811515738850015406826500087309648498070229519535792375208048323897330294787525111635251536359379406759854368114272213606180061540893863818010439851488344328859080608700072646881843326985382996514506635778237452862683556086656242790135646633081225095044259797808841927461764915018866032164364754355597827027058500294130550992540575150143471423618943646682883034958998698259974744705547766520577034901485739350982026354916872553002821451747808827751951754463912641789741284777240268172883566114515806359448961566934531926202060770384862341072585297876159202769320452382131275796879389221708546580761752890759604345232405004854115801367457269127713164613044227833696147360323274564700874828950755078329983878488538310104857010427218291677109372222452313065998367969341993292483347630775681216498929449128082672783868482011913084722252602854010836555028808680187628775846779969204107520289208890212662820117209313369349699129200946698171792591256391836535267782621504421280484283207549870418831307824085322406961079338567073360611913883676042102135749801786603792978193625896423331362093461529408993493260277393421494050371010103208511411848630489641247241831454604261244679280637220778353782341972185812264592050657780367688592664278923697189693821851333734678869220126671620209939702249294614886217575147792027705804636391800133451989469764978166726641964352111691280800589905345303871456486857215722118718762896731508740090890773493252149359292406490910522956234957212124185070580917656468224121586609433902198791330472117664411266003082358716964844060849076373191007223370634102608275841267728498654022759245988468595890196936998706967633640411366766563069648749564098867189146441093750970899828044712639900094231348579653307113010720923234133442718403645378219817353222429943654742967566864704252125319336500403981237139913958844388726612163476458064507261286439224085274987895107534033310556483615118061137167560521082634859278510190276326262335592318606533174778254402651349451864074231091392126135656608865852639823957075976432026290387414053013010511415082893392700612085381407268736692160609019603595047678416051109585969908345080081890018884685947165071300162646655523187241973475727985495410884728116647614835261231421350247768167259468845158180585002486069514215031187523017732496682411116673999532261881770043042258064706065537667200075204760391273124656065717171422891314940410238026493606130313779886716282141785060995504678681033875823906613287804888677377454894216960802062762736482459373605449653015172435198917125046148117569268627000260023809962458330153907315448510633605378321554500448395855145410861619811778781862686506449210351998379625963981455494821820578184804668722392914376195910866930002660909123897780019522410104876543131705995418102663767964543600807322575164783664720103324178530547818629045021732303036660557865284456481664948098571677365776112473004497267476499184557484646119337973741912552199877668509736925479392828664961995546492819984289283746649459742674521824947966372276984909889039758170686613907787916002206140708145959611160382401281331543906691364527710710857281921844446154874979910239827376838513292648800994402644358022140987986211256554250940636998079640403335140904524188348884157362309912504459766758646414209738949001996976746986685622693409933005257210753628092240008738495227281238239452968037907797549524762134095448243809093822078033561009432890727264685702152846418749609999106205341817240255450026135920840889692412448748130780426511523538352704238617920264234874598317413435044801412527228036287348192140204726915573835349774420906429426865805490913667233801865098468868341785229584845406381990323177251368383542679350987180706663002148417108183972360031650545459030052444976798338571853669580840337596987305934361890675354563730244779110267238629949641005323889798128551461938895113729294670233824740889505363845179299434896854099761392897131631024619249445206090918435133048966164730705478630645197920528846070446023083042982413594427441255560774458129375655143433748071781532900236196957389138247144326899784958752729001661479368816397953021565687710620775347564560470510358937364859352880754041769412090504038079194661538889663587030097344416292386995994492082456787486421985082242776254684150780924699426099455159366123111098315960584823891697429365899526797410015974391213209069431914957051970372865407957988230787921029504201849635013876198525653946399684496311456747551910232206791289720059836726070713198420178487667412420682646247869990270897398005191329072380100373577961230418378883892689286777718572104901657909472458696235767445721022783114907822435147000166913083946688013925117893293060340185908565010845994160639202278837121940650773559220120067959017300424602998725162173817690200421800780834880342975769703321414238656164232848050327924382798229985145924964378195511627097364293623344533453350627671413839980916719215709154097316577189740700850019697017225716635144453497956575733142921748629837167875933071482628191058913689252559813872019133425441233204711652487529956106771574110985897756108343212613753251485541741293152781406051727475983110205056580495258418663220425458799569666528840381785910092920181300893682381319854666739620254855346206438862042261819682783740143205807373990087044781118977543924746105471687286023531541724360398833768937649627926498529536284296563523302278327923839957811873209987339013269314343534138394941475576407611690494708910080664395347463000413964452177645934491669996434363846945677528001302148344063855567655255195141613468665187408106052365137356556210177397166444869600175925403319154439256038670075498649706714365926732722732365201550668327994429048256471153394378871909741264631805978545522377308021352644079186350075367686200557244004987539349142071731184416047028772898523490868704033063981493103933209617183760999972653311910311402531404446240997147706053176022066987918954225755975527117343004993766125125201778305172020403098957306061951196236821588836103721536668782129776237660324848737535955088851544147411604118813410849369036785461559779668106044568855574364975142768610905880395771334101211727348177559994424622809853253405687657466578800313160600872247199586310034991066336131108874123346532960974448262950688254174387307912699741208225075422298452753335713687175890968991036187836542317695221278045090558479867071646974666041823466806989748699023400776044536695346504916576249082798378467673506396733758506683951112299981525728698965047506702552181940906891736336141272826654470420299481234378974353933560539517013477448339197418179203440955582017058566715123590133640132407631601871837307386041519818202413151170769494902412512908460098003922220915222511704659487721943624871067666085877868848646371161495938361305577785614408568755313965841375838637852113550401881770160026421246716736520674752650652455937134838186912815507522352475033227792675551142228798261153182521098501995942873555491760876163065837168192659361377713631813341626839046069447478663058208938344518645884304686205217471176255085041135066867570915747632732426739908800974891016319515323762517663205054622421363856155143802360958099675262995966399621613086993981372202112499752247904297080428121235112959260746631728732637803684154168277011416009091732872273719950294564190323364081125579626973651740557376131912697526645808256937143978812909731010568448156069087509706008220477179961645786445305799424183316606284320197373211798643822580330573265272360932029587555559327711502858368256578294533173904199407576856810124281524851566595675239158188119190371764926137523541682065416060786033996231785206470531436998514539956416944110759734036946321191547057696905549954501519187985090765562056063171149415387977170500927729788043666623664230835992668839733541458298141717581003151091019528722537919512293218746848173064542788390584558820291315378930058331012064641116404379336931992320011684412482861729215035432494943115926304441181530468244673097904189976117206412569058680736641565825646985436029854929700981757191404748133692806615964557619666697032239114500644926944202343659328518070592321790309446350040475718279443256443086333206032547121556504454960115117528488744933390239111450836211302198663625911674172837212736038987370798827970104557608710803899289930823570891896720248420933390389346672775603109283940145645558808916479124681042984782537166301675043392130701191886970870802791155690869683212135065383133474764968533980874499094379952860848388559193659667449062156035438978031482233173514958481372584799195023082708687105687530322048325021637793746150685479202682682306543424662788953974506368361668751204446948149022516382271210649562771248129574486061706836931842182249198287861191185414838790518869262491354099417108174699496366908318091517282164300893295915076112525828422742102316724053105305603063501101819769088680596583739635183270883862678933925429063354609755997301713800723545144603613221411992420218747422904869426977105298820613217555199703913497713491579925267412235731658315738744063038418398212735151959672708137734556635880595944754108977228827566287243884377693679041345200353294824571318026758237063228989127041154004296301612113397849180616870340504026886950189142719135948758052367769120256653706197918239905943721166073201550882427451710495329890706127194270464869631533934327947156297670826787894735224148132612524040098822785613827799454629049730845828934602400451333906214424913834233701403868794954065551811281525470584583836237848887433481242050435951391404434129087703145574155625706474177954684837426052092443753162500643743210156567931765682762672204823054405124647986809620350110773742167605819845287628161563621971863774958018467303442422327145571573601042416711969697263122374769774357820860877533551678024301812319517212337718421151970641743771899697351026327699170972858186165554800842373107473886537218312490639867056914386646838640539725271654058860812006210632879909300850244853162825497578221320553887350712746680827022978112044456358023653759899432218299123881597549848451580225178007077891816369071701568700887842097153730029359026536082965559546306414614944205347130920528328971629658508209436959875031870519356988918311212428974156493264744712802905341620021552398570201013058806697757740977645796057140311801162768467037565858768846994176154892144285379201357779751384056092995042915752170000212454367922670405159483688386348958154240622752569016989152918635321545359705374598748751275189528037536134643963282484581032426476232377023025393239076989183326482189367208143129637313194565615591189254188725691552971942170601261546006641530428021176271298770613300084692776101848953454938912499646396315881224776704581943032603311127700214971715370399293277476288732887522041046111224262027240401745103705865041086585221609588461919377412008601765757978838063223558586276031550500746799494807197248110251666031411051190143547785787980174344815348634155310575990757759647864833958578515361882939683772414076256961501827534599253324161666910832889159079752677890209509435981060045433957634183586488266051035700281024711546793575271382681278606620038701619726763814834303335026409766323045365521064362666361968126835234532854486382928498961984623283523975772708538462173281414198079552903034615357387444172169320547531889886069570789903904175468424382598967838713174610122669421749817111269003287384539078395947557367809520147623668451876659721085611714242215417119415082687317175395448044568963371249009626787878170027085546971600526995330018278783005457447497020975569493734862208511146444073611005942364598609445291622776211738657243681231523909963641383813700101268439910711534124796962077189718014468707778617594724081433838961776472434356616148856945267034752072502271180669333686481316160238194314608694529012809030094300128511829156851992834846969294628639948277825205749869954677608321818589179587382459095400418937623960342500499123792572975040903593783630267152901411595880339476266412388673729663869200630249382316969072104128691179832743760961617520345994457898393335926757441019235151243162164586677492506480673043518697851554981643623727265113638783237615507270978927913004641574951934952475298359884804295000467389220002775132707092104779604454787266304921000126832322350564548364601495761539343077337806196850916769781852610265564404237536751465921661059569849203114262917442603744915772429331797269893439087902731224269998963144299222765994963625285668268584673363719381810122160212453446000166162805693340876982041938968423151372920465233572958433162241452158254476597433323411720191701967083006993041788141248142616402968912431335157571121112423734901834092429220883824579873607260481252620809586090017387727755674509136174871956304571102746341442430026965641049198611131856792468086273793263369958964986837622341130438547603623733335169211177329299804486684438646926558998862292727266161655369680421533132652077372764046558709080848037162823370920469614273789809815463926340930398245787941222495579276200834045780332670609161345617696659017825221966393875925653301114418092360242910621128287679147574194164957864366488666615777290692703155895849246371785754317796482692137673801357038728727363169801419662913267874953353222239087751797049570032408457295721766845067990795634671349570934925702167943773260153954110150552081592678979250350953198494082472570684759966804672123438896601473292217421361444597080391049952766845753378410246714939400373042973442129265296411562609033751559957915291148065403843544826301668373516777353505340759065942757510421834340737902357407181251101806290252035056774252670739892650708092144158850197180924153725712661640388154907508608406027849281701514470815782570021820972284022299700797937339364327515775794847542316830965832558281686920302729368777869150614531284589503654420000324517722878646364462806736449466214474264669401016650230626976395339089077867255367212544242180055011247261000447493330097821936258939249952473194418569301987154546887974634718051067921909076328795152636601229342814543400850659565855673896995810470747298039416052879341671041634357218025601542101656317010861135365198961295229516614322080054400407603446463072677363934179422756303054179722606446898552933492766784010141291404617281446010553520170798514921858774661964773858148035651571632730626243998853428698549010924243081051528141398105181459539477556841064659530192371959756289077808316314535874299798954808313865666307041403345399390510345628861376358468598938381553759061868840363319936777520387850870325354328201089634218786536463734666486187261571397727741856170162788059382701756885494225185257764163563097795098763914632438143778124252366771344550948535361726343571207352749330742332736338813259381738238970255044703408496235195908708083125628296584367979775952977040984960365388507682046681442852294107441558942811282412521807172938754533720324351574787983834656936782257164033010054581836457316439943049841306740341722217612344816302334974227585952287181750308420935931775788907751289787912840628664579089051504898660610200726744982989918396847928050690539536363893389999976099976084357922340063248724508379961597772121948528526542076527812418703713864158294892857634494456030349252586079793043267542325547576084419317922765743365305064280501510284897963641726458219762471919507067471455137557708122938980033119582127722741738264241229103943721554835814331924537925543914839850270533306233568985483465559307273710737921788926419972994828833566596815677738933762295515180049235163578073278846605935848810404781417316015494858609599580892826214486350687398561421066433407498286934669468075485759694344577338398036478622401819787135473813777465050217246494583257412920545665259723812291127351698816475643129161135188674341218171018921331918405376636800407326827191019213018962241124384020827228506660738833153459251509465125560236408177133271265497587294694940479008984259290753936900663048014326376851374755505433628176231449112329160000189621215556721738141351725558232115263033281469025492364347150968907693192072679365023037397298737737833884486887213270707799369510538357071682431935943022770796842536642478143782934687492011526705424917155297479986927456578043367006042262616392150166943629891249229160865164176101439972368431220333179610702519358750609766636864383827769419761101689791091399621712899751965900705136121340941845199048186197812988135711976929178151927947642664640894858550314855008431335662689171133538607444890859867144329285176477568136679004843945914546618160794420284355614541712491248997546560870539433058278446517153814152992428992757706333783216422692766148606896756453745134062723683636718677462069692701258155836794281048089096514952375679014007604829533491104610820632752250317432869257497119392322388283406803017773861250025121464711671997193186910792204064148186516126043027386520598233818425362882805414915241182315060884522602189416603345146531656610568601500805064730163151182887440715923657936355384924365303205446882261370557769102313225444175765253288977344063668517919683465715526813082522102338797459053716172330263218261614293528878823823070110642990869443991159766806742042069044366057981628245413700668227092662692506380138663828789631711060462502291451387906499188827418780378830541435593192401470624231020390015372004328262217134222580376060868229044570849913652365676312889575853299149730115028094924568467355664856619234453169881599633544952286413235771943855680216821537255878067644338427169388574822639521786093305406108624877436896515548696485684988736944849259490481331193777707949441492119506324496727075283704003123651462172505497626746489340638140188378286433596886540919794282945708230285560057959800897690813408281200653292186827992528816183312128961887353380647298290388817733162503040935878546404303583597599558113450490178909965551575614392989671700655559715548387701252868784592119143288705369943045833154771768413984176750785905309679378296966122314787512362031385784994837941934024948456298651245584193214927409023177980384942756463455738521661587369478308089131509542898512826329756196571015401001393250127931847314797103887275414075885041370219038977331927411812557494027333175980150422418513301812987283526701247232751031360643571307367015239166713442865198423868221313172748978293393334012665113339301380100614765979009388180642194699018529705952421768689335717403503309021489699622186582097717210706030024439586145120261706452644534427438400780212156438093209783672887108427235783763509738027458482089301765234627134780208891774096722781808888764905071596103339629165248584368972141537201772210182936139096215298621475186452265202422839158677613045902132666051190534440606350334782131951574968629378295631520538661436897967560160997796169967618664710025959245763769395574838145909770577122042948275985429592230575138807411059686821843354918458378445793062318572692431147994904837696321378086269555369709799239892987217952639718772810319718359107109330565713982967158117649672169112692389440670992174242635442259728756263148946565254038953794013292373183038529518292497581866877182743585065801357664002770581978224407343577409205645449209108075540395671353100313723591260755452936116159851074712485949756963547124944306001976438623890647110258575518692134082930650927888970336373799451937193631180183594957266073129464264973205235731393461773409997746561339148611468648198598283254541640811532706852196319048442781857819097431766748943042541098547141443058555776569877393593501614544058428223839657614813506226261719724995222826403461837328474321665624381984674298326541058118024597743269758219323748985340665340017441581278082859200750936725054232765773732143028736949434590492743420266711593142890942319956553711261519988408992531231878086401069377468334452942270072317139494056136926500341707491296577553077769328996972602291239906348846149266476369993694153393191152216458728619901336881665978448104871726472716176177109926314351952693818028946729732210903905902716365930064565398346595144146078844885836110003099252100715206340186298421004785594384760816367864021754022419938209806894123540220810178837908830029872710604549474295976591617330856537152545554335217706373725790455670342951530910291025458809258021459560606036228865088531708804530513760057363930668470940032541576218167305694331473308650999004717448366786900518692516215306117864159875358909406361239911604131243579944056757360548554598288137353208270498197877805122766957298233297457239956124099792727568288030112030831273110985505728409159985588994314113815008139940775872520623376736229161711156154543836367117175372563538220448470650513618259367182336930425095138233150113541137245541749845120620909146937538278267587697645905474385087079826631382328555644057462937709967250967877093962374217481651187200437687426640049499009492501841332370821763243206259146935586666302258777832444802486054308798032115947709159866072501960141077101557726660811218287738143270990296661091542674417826492229228291515568865755345412921650772371407261691539023662938056047024637654235200806705833662994227064139626312201449169498873325502244504562859830109610321152476340503793870163239314937354073679523739204869882970257342104874941350125995280393596948651581807155542333604434561625074654054251057196140319769906740586993627006073643423005609188325436626073362223527703224938062186709346336686362458404358784956260923138644064992668334710629614799127306583994351020529914082439629917055205059903624705676839477725600242988165712629848911945241631702962721129055534711162026412931795496545310712027669966247352761059794189813281977708225936570540176855817785353701747949119991913387839105075471191912499087362765372377733731937597900881872791150988090413057695301201325177386638381570249563279480377187522317307762254163728646523739216625146524565765536886579666184567729571953854565386767278335173021026439249571743042793608802887323611498179800334009155618792263828075306871400002550783647154242276038767429787943174079020987983340901394973253587165426598891436988352828187039622745074852429372252273263283823240466090306160208110748084523570461378434473838448724046947340959147306203078130792785797224699243391071136967729275455275510644053355623363089861023690771083690376175339709330540933719092790049402964912145501774220779221261855130189701277482042991303749498630872445800183414334374759424652460602693361926408961209865078689949529665812425084747746623135539104144185050899002566917196128501032600568684918619546480733092941775093475927787599129677275960885447093649424904120434845090427989069945107323436248032430437716919085809722123441446773749375527309176493145854549336008294038477855927453861612727415439773251760160570990029731065751941730359126864809746196938299131010600677553739518546485428624882811454660764561938943835623708250201674572384628101213627870593423742979683638486213017703115720602551062374441477589536776995679874630042262794437263537856395547955206518697483984797019165434064898000090907074737839269920905353189383452005311905395071761988695011699767551235156434288253685103570019671761065266614634747626954554686868407718056754073009432121415935544160859303656608643895884644114829985784375939843408670034803982737873786323574853021013879121002580661385671616985681620448400951695172390874734781110187185801611432061456868349890269226663219762836529289341946921147264885247324670543462534990596594518224969257042533086608114748897036904948797380077895238189036295159668947772944572299120823879207213445513817032166577264503746156682088026360743187089709325652144990919863386173598095249125916863071913157220036789878245644591221969239425290220824408469679869571196450385851070330123938808761055909424366752748740869521808277977753048809822900199805759550033354591778558060926907806221396179573686348307556480264950492483732949798776483140115547798371063521115023979939532586828408142858431535902415265762085488372319602597760240822867118587007546204154003137035820487548603836607100647188401063571073104721446543847078284047804865319359187900640961994342217216056496128585868935327019245913324977141698199108875637801955517302853438885668682669509972362867219792879246499749337824446392260298243260782189878723266641901642036310583817062431730534304891187887178897531607265762347246015756765790517163825804475996266523839779132876218321637572875724247515710777724947457236674620232414822070440813980493318490550284503734799437044545682960885756706146152383344224292250510504147769603464260545680278832389019666941931477115528196728284869887846634078316621251802215562291182293809551104338605084732061481116420155323024652685726453701021274638692539567576605177775230791788514753447169730844150223629060921194072264924422038336743852415772316163121335498801739190486708478295473693094818977197641356020614617238144281670833448092034641381054117403439591153283267551996680809289087164772241817408228857301468615033822873841795687090560461795725123276866494576524131045852218249545396218532211744017085363863819593322496370408027541648095834209016751066972000501607497288365498023373741638913240842327140268515458393397093699533378091004109423978676491293840051976390607435191898631976431562774096962868552288686289376085752564184559653156450529419258380045478999896451835327041830637103290075760412390701205853250176313625248093414900460138137717695995521562121340344310180737831395091190281193609534387710551229923626249021382521705550241880986752821880232933368223889552383162462718890183860914443070121428403264583140443260116321027571376171620993820305101531715662102118519499868490470813756325184502155711080724918267139769649114106041670372328087856001142246734008199863731097474846687090278715296294002200818873473674675466100548742437310716610186167157262493739080599671497966490616668843948109590396632938348064109947707287491270783192428504882979366954344184971608433415315432394837877619932372788564150767561167527058188071095120123774544355636092209266455725898616946787503203331289215477884711225991181270554062955369295904387614366550337092723051086249429147318286548908509199257194664541916358713241930987775264261184554700100861353472910233554406976207953891987061784088154987508184275260717813038079937577542167735486846440314674789578762290310016078207823711759437786532725427168004848087009623260095731791129485028975659769157390355669925595092372605174006616114608852494088580915424565910531530117652932521829085711779949705910376790723704132253559210106072674626259309172307975438406522419126148638620289592397773635327447376206373552425814031946785642011129642773418098309217175522017551001396550875998611809625423236587339883808061256908167370163242573200264597209002861907223575625159990064185370213895613186147232792700202647798018082507263738285247748568987692128809572289693841004150109874697094495056569247568038926909777899594415350879406393604416711832959192105160767100798757216058627433145387112909452340190084834758128210351063571232717381980274557819189296201637541464383326484268410123080359068207587823997259113587552159057172291076725264076525163375113001480589720154174335490347115235505112002604838885724230628982829242229676673116451105612479561968891733369078611027301129060349640962917401571675861670475647413699267794861053802242992076992121120797887183935814708502804320631328177755541269169275187912808769588690327145301994611426908848836791904535595878336867171668828756774710131550865079465082664057990426918602877192897689027284029083100188003206409739246617819085393047761343319299236182944339270517800600889467926044480100684828787983236640244492957827111749498999095061432858589473372390859839242896095715652889156217050745997718182370755873536785412047183536769840787486348185629172750157350061517131227266753308416413105169093499060480215699418298659759624266446276315081851850848260592357519396562946633461640400344995958356226557762216849556311152744402128152333531964781652188245250761299000895608058009294666477743966944431648856871419241800170841784979894658267646899843693291592416867804205586613395077541625024617223658462494509748674302296707096658964723633634904126331380800033848168572132195442254422818249233241141845510993829989341480724446053525293866439030352358954925976950970061114637625484444767159162748792142455203227518904440278939683229382738709772585196701609876746456838924532106392107457010771420027964963607046938761861642130029298632299612812774718483668261656291498518334226575306707549712807463803006876228726811736517980427233812833900418865684319905832630649533697889414575818086672484458842071469310999171224177432195614459739318712902710937749240113945788378315837780386782455898294361987086932318121206515406495453969937713287909150621198670611269422235950016137276986773913025210190665515882590628679165062783570249885731376698100967120167631294159783277918237167337118547930250648717558191705368467332369750606657066416917962549267374495808148020848083902600951516531095894688016106308119466872968671334762445521310299368314901790048199591556633148469737309033949909989176852455623449555984335180043928022333293016510747205578551776160438565137777136742577385680902070480468548030588313593758434062504089654753101315159676897324461294246071338734321057758273741514859212755449498057977355541502770612749605167937963830792838285482512842052010144320635203497564483223585413055682540442340048060253262891422008033289990518084758664334426124282847566453822532468439243040087863992267006425181921558645209434979064885890005043305146125836900707171741357639560954372430385409240625906522293583591038074897136595675884063314093840682861195261202598529950476421159327141175333428499577852633006413344701003252212302934718272499655264005263093250610825794950151255287512664206501311529221858199873327436834087274991156633769624153548946826262911763435365684228837188390818589810421783673918820283538852274738213601290595269156080795953813053873846767463734547855620802071851423988490454983070031067458776751992556420316656643123994291571587460042010832375632107488348606578105680802879288884902590059528156950719819584009933497423260865913014758118825694366085584580859816807709441472349085201807816895365246314889862715827110194760259739411078951800129743559807348091474298177840301591084239741683764363140362697839416875381984336644154479817208411861173228212911907727011980815587463944789747604067442108761318144900923125019012302626554811692841209384261191467493307547225459264173428131963701915235049791311408756417040173080069008061681916933372450007487735981979208922614645341776244694866090610340499956500092918740480780545398614445209171364318175124993648175388145836979541454953823301507492167206306008655019280528658461480663057751016716850072306429632178493271125353702797328738919698112593823397064186870523929821435559646656124564966308390387606363345645156742880704203915903332604475439947023986627781843376664010450868297119661882057026313152171991817417023298810057887345100476919270418278310701335423255694692061593732416343302915713397607572644529900264176487142158913006683697541833779707145933771564368135274325354746102488396448404408689522115882198910997823220340930477780037978754288828005134037444673976733860740227531945874452612220380566009684281050636303147882887852888272777452865364296270921578230195277360779593193594233199919408579193326165845613026292573340676020134852838177746348498906730028579694213151118820062340527889269495341102109173978342767269798354998606357909323523060628169248982059419296220452606763858472740577273486818847125142498503796078951841847693406100719121751622883164276469603465720504022415871926567741080045778891716105152276783303587114438822613986451773022661130168205328793017904050891579005897587238423832873435121292580432033475261413766754020192962469165787946921228600084120675897782123869148325983873099529245895476832955586376528894170218996712552888884132253869400788623445716006156839179666770571463727440522591723724704201506088199547622273485275923741112532792028597065941227428559510627494076081649472713839102758099331891986954071956980332491157655893929912972168155862917936017819343913106458735665077641682515011770535788380271694439010782195036813308985862833850757003106541714735567994032891355918079918424724634313898202812840718357987067124987448488110307052329803052157272550245716258593388987965649483501715396566983192086304165061028161913699698268522015915149904150167913982538041341100362849394233935578954198709255364030684719586115423541496437236523757841040741217975296204087127414168253242547994575395439865069274215133058898475952995517954060248877612326125203954274667400917292040292003192609604041304044969761690864742370569190226005676327539964747395238079549329116307238294036832229809831625444873918402728103022377588456696118874039770390970362964721958963541665874216316585843867053233827997288268974910566586934846288322879607520864550975461068761512538043759171930611085101189074227692402138830743210208251665348696922616706621013443269473804378078885653480570316198372230660046386274216769701809762039013215117101947963640089625623459254163186587953022072406011493223036094499989667679804064500502397229768408253176249538195366835817657885698020597328324730521052685366427956259403994636803705627720001413555786216551955600930719763988872297399919721927879875472222146936059433234722468751023338714197714336481924372353852217018740791097244036995045568807486645033761945078368775484664826901495439157866677175480985277766237940633693161246091259775716005051189668618736955469572726453013731932997028954414698226996991632626121864321093255653052374696017725083508509962936119812967054160607688496980760931289439988164599104402781833495076007270245776842556395710920363117516643943800810055999312336579936080247260255592219855200800543190400767795902994594371652309209869935886824533426848047053694701793244207586101370980133983686716455912289094175406120639849205551855304231333518177327264638632847232661589316405588773625351993820017527386341825029277627544133859450374804098710452112737514425053438043459539118983940503249881941198835841062819483975859009575960360426531644089032720152297176184640397109124549152650745199472936305526532391703330731417565822649456748535121912282694140194990455809774371369986460261026730110608450050711998212027410951751705320728254284042636518945713159762200789396700789075022519139677197669961518553098099148182031042469046210575069682225109810485665367805741185477776465249677913856282819642015546972364698111736195468230744543569465115997038503958687588894384433520015418653117137895145340391827470094978884120466864870495424434780538229692226224696192225755132691863726058443175215912421391875356164376430642958935971329657228273309089947242982772129094067107540350505395009428436588063220215716444348711953827095904567305851055787720606560646902024953694180127112659992002329800903540755449773562377810010265624688804988500926249688761911713579451488255028555954651850385329011698505120493930730875941839722533707504061293169036885764800147316616853703725546679762046544131640996555708786865514528669305403412540383139325374234326078835757627908049695285080311659195180499731819236191233005901391427117895115338382169936262864263097309874920545514428790411674317064925951184388284460234224716388034495214373723211975235512029958728590452330669575813140161413862339876749568555014310451124554969134441235125175643969783544712337311565081209914627144631326833640167020007237063157842177730750585188223675610218800697822664289761555601808987603957287860821999338063470392903464182107919616996465391149915774696930490553853781099940056301020239535624594928336783231516595154583337986272302352799478205016589085474496579297902719909077929795355231799046177234404370331688360708030350813778380798080683399744608569239321273966549701930695510530201276396303996258459319682520583936609786439105009447882056389236866470278897590069102204592008414867087710701868319280445285115882783536079115093033870219405056860872726634518704069381630687248313006645197106815544913525657682841501169644510719056778423706400603687226744355546457846013878682154056285553533062465711532693040454518948936474321605128771349746469185653298777023438858744958135518009381502557228174924826511412217893539983785170844302956722472821378958850205220674391320194141343527155128971180539690158675464710639627688738488323596293371488007113775808068415319051073931033018143050100709277853142404046628261344275084390951321162049925108515383701186328822571881960601501174750031206843605585556461635099066135110682805538648614185598124159973328464556901853040681798696080237897646864264512166393461441477845340646371353445741311193601075712401609075075384828097873392322074593740594720549512467617482403233987375620091730169171650483575551006458041354592324341420812992916162003868994201602847478895136602957685581922498583629168189141860072775373912246617178747752165239326449068998813590338889038938194388693518357420380486592827674887591237724207248390914026090276140043038114269540771084593112208711762416583901956009058633603842414764858287767023696995374543865754078765044495721822968278812355198041879713699266179242659195842741598341234367414928063078095887446813051842393115925915003593479565663495984072906098949798559636281349991227025173137700302218317124484509857825817047930802745172515525083810303636103553669045015699837348420726398979666672153676972736432612683635912034659364285836754231125152920359753153073663082911367534926529607805804158072602712003291187561678776799019147382389792145561318486284946730252913644160069809275943076586734343294075765675246039969911614054773647111245510180498996629022684263721226693160184421306526864404563332597094728816479209702080081394652120511852732509832618827721262245979363621434297085931513488836070339184909683385103449424880129220395881210810968928300196003687310986566037350315763820197315671316751194528932667053939883500504999464281495104931482696627743759824422922264189390012069258393404142525611935058111461673937993214382512412488110338509933044672347685330640887306819430770739766920471527990106957959445361587656228187471860418105097241718903123016219337640142625410812275281409433682006550131065775572685603936004109302734717121992159661015324383270609577527764959214774099908417923471512681234123248736680871818009035126459659319668293712212016463663471902233252940931676772431507459258114766862721018034706211163098455028524423599422708307476572575376000557377508019996332662721791753713263053914319636063291382950348867659817165296959299484673029588540276052586781914481960866302736292580204851487993715220711554576719484082113283156650659039343061583829905780861047655614439016852796554890033807294926831910210852831680230924640836918247423027082990256177027814250322822809849153859518802106131618659973603197714395545427115526995229494014729434836932083046942623119399826097860910475592389123377549301857854687480239130189104506744275025417139389571414019274547424900809978658819808394212338123012445995999194741627822929656428423078694081136582337954423089862839123426296245448980483211008017000706477196685999912752826223178691401016711528388383848158960925892336816306828622844891078024881413353065305722018227000235972024565141170196136628172064081129689702158311143673320845757501960110044317549694100322318496990578682919418812532987246935433519935205484278305851716050592998037457077108753177317554380755209482140763570246166351522414668761620099951535688998646419104304198410187392656136024873718561402727958835005592367367715048298432263226109462244673445993726636188586186208025018872624676222225961824250104790602978297137747194879913506863938789501677369699777551251635215974040324492783296689098782850923711076619544495309193107931608691713908622447649672126522229612002548845233183823004975565029573041989343398053430615589126060784333082081870929920039124675431874951417432126562221088161056822222854332914917654411745207881265421181139975469027405172423356534152731729701139903103952984278197117544197101174816929223998917970400445396284713056696809824924184389239244423838318256930817055044017252565702009359812800695554811193801955676590099967758334196966225409464260402026329863587106604307354725841188078441962339985336208555076887131456662685748416536459116222485240798704186355369910557116635496751746580180864319227869228841469007930590207639063702060913554161146050479084029829209567617873159146219620896152176618841193208044324299453495636558422713482987132998777663270728812399304085054238494260868301079641141175644229212570983931718967938161510336213720121771707014888812598473692964075932552081213030668440181214383478292748462329324090624176896157930761833559343700511114869210876900735178449729398493861457971006743478192920962699145353569370267852105818407736354289130494054645932142643102339838961964379019325158873754286014272597684251103303430302977008711527401369135544891849669654323419894955320451356143674323334824668052028641693100300784827878352694063282164190362066455532850065635199533698334476373377588503564752860375139064817416476971572590008655002180899750382655832141651193757395689867520203011907195102893090758660024738078370593900014449891018567799848054794566366227505436657671697251171049130450138941327217392251367032108623405044355454697903833937942502176797083594292375210031609447431878401965467995326729836544331485350334624971022340829430915817510189635174767120636973598760907959229704507361838611405855353532771554949805609468447050245673297997070132517484110748925027912622701267918935012169278770224662257084305535186275501568108967222091969073105709049603597998400116919513890397530750080242327716745800919882435611696187462860936479555285500858859454476675437250299161264170525419252830726316112371015364705786805121837167075037460124889048688473259940644798277524004104856458022645767941320990759702112807497546253143440298230686952449054542068408238973446425918613542399177466650784638672363929044035011127893995298430036034287409520132961029787948931361150687020076376930697141411535047738787652796318577353829651900120607457427161572198607896375506674111910264220468123815667532969848066437148137231255756077194712030233862373958995533637119450070154452723645969295936719875409122299040307505252595782796220415165172118009479802353866618798082895697019336361311215202021378060097440684733761691722213705411300747534285387372045464707495962875528866388622746703455113607026153236660662590547091869598088668953880182374766074582403712966094554710068934705324890779293530402597329115171883604250701127002744800818655432661003859542855133166056400615823467740207750656487317205041486983669538316871194220483330842733899001683652884972518390193405885709341860110390790845108422423236012122687901227901383731807794238790716901842471074739539588238115582180057674114179644634961513662249384663922933477399087602967933147377578265272460898624301692990464820142580374313540792815649275357545831081615432666970531923920324556312255664094365127325051846221195066514070325314849336068707246100629902868682621201551343148673678407225088538145003550950697595440551462491043641435629323666069955710554819819341531430483003619182352672916801589847152704701900739543778512336858175127851522093529160961493945169505839324217533688095436056002856483435677159475492524036416432199404615446626450967861431088521284577154470224177184466062718461713690411343310142318107660719238998035045623415965889541328731896332225757376407517660618318405548171294172702227375061553133076039492835162057130908856422203868335737611077311145570342603417068205095089120936568621205438187493149275041457061922835078561425089355646080732310170368895801453255645335200488169159666021120596426759420630332403076467360296246166646571978275309192153189230688138113705444046672297624322828022291630884448708013617672157797533111303577316890715237781703445774869489926973554365677606145659274050918459180235382082518713544380391136059900386277454321980065308977686531808336450401865301679137606894155972558412279322714964171604696817691307875929485029905297394055875678677065636774671911769620444279144473656858240410099731904564841476348576476257336914932618405591838262495494184258677405886830628203640979665342226452600915062387732594242986889956881230915779947092692755724720411505609538280374286017521764943595465197656511577924488595434216153567484164706508539890452384029388719710964800184446724830253877602501732827434032873588510641354889246545000068875439520718707088358710704880199813795333080402220970864451618689085709765508116913738013342459237750302330241532945897716369781810711842005322163549049369776558000896570097388501877400873009166077365975651094566968115669063485646243134204254578866185751347583444338681596876591800571603531302551563095476702723711909800753343265238433126804385269525050613614275970238443289075669999927871302558735562990080639441366831002239820186475701203327796073469487353342585872928063622690526272434985514520367723230048617566755095916446041151272796323275841070488316406816881087083543110729512752033006538834078982525282522295334861291532496988066450226844473623419165706727324401355282105294758445154855564428207079884657475557528181880088850497229987128834708917444690631820157208201793229987810192049167147696246814267528180351328779927441669603426291436257905355081553758753435757782313073011727550579359923024655690574859329941636765537236283632433843584051633444837602777470983126906843436521408393218929887668035109953812431728191941377985405562520991458082756277016575653800987179007426108231891221819917053068147608781963260126501238094217831710751900080357244573991503955129702071515684395528591101148085624069403883965679262924515380484263083166880081184847348218824808378958547964601390198052889180210879667920227109354371041202916217802723975687995366697969391870633149146229811891742841525940866844035085636580829604601265633460009250798412109166845831702858604748866785724006298680842796174206881895309669507805144943555441138625068254464744714746421345514055763404357450635477285073432378381167710993530389808007323071639213127890713079077536294125245884050609959819001951981332154641888814750459537893169309802435203761664913486817268529437375595606356598309057884228870107295253530327008961501005951062902634386335110262054868778795357779735174104168073457475954169583679171558872073552401053585553105488835556410716874943642312911773262341545447466752702506172405840089503672146176287941443976890642726744439949347419667661181221488172140496222569492014515778420619895782533448525426739589434000800399345589541345136858309405250977990730429636004808039030706256491410988528895098133431372626050278326754340777736378625847706865615945912359547616057891099692790461342495990277507223176559453829848847877876784701823317431877375375028755106300103144164414939296310303234315765913994649975061643340733132705456175513469130242929334198026501977495011843938837144772317033628504096756966388598010750387476120115098837986567170922838281159440714666207336125766928329197649165269445816431231240665798148278256063227345803880096520285023886455374972080008678169092085914666782293933000763774689696618837319538217239809365806705124408857272101662030812521239841267056883256510149252556831171096780148546980476707760485535314867821981348057064613195662459077200257428534282632858210862452119289226941192253080917487013764761134167887271687253976715294703023935108726028282447133053411376416874104507390926130118460524983006809391513399590106816680456687124627625255695882223505886185714056912736036702450533479485554402687366525859592271243807667665244356910212919473205210572745271162832853187829501439924708539090195846580082350221665762740800855995438765518691715061609324029737903973438662912682842992511692216153502664042516670933273427965560337415092598265154298347557858075128766109276549677290465998285683801214276608357126070314196286955283325560752721114353738635626740519685920581638556588337796880517724707030229440328351322172985267274175908050085897030770845476360501441194725711754139653408844164402776826194848792724161091476946903610908771287618521298986940929663492898769981656016821257899452862197458307424555692565542957058703259240657371001085886989343400139863816720600763582301509642263867705073673456154733811248090920486267583789804068621414632124100747013408866672773676504582487007333806476404163430641868595461791427738774351869653607298294454566740110517865794983178953716031022783880588190664341358623254153533879686397191652660054684206647246671240584808818902940418149323706705105952537028159885629479439568927660023496915317633603428833744408909019608556311252466950243033375515406708377912327315268573022945103609307622036355588069980493492566262300069827844414801621115983556938227457554178066795491689048779944378315176936948672877909783786101831825580782644403823571207247226391841764789579166796991093323260417521645404208706795618823811647510642537830241202360474763870521499192928155512296156488581102677289009992032562645458247431036856240067566557066314202073804841643640661502058417272592204577913342239510558302531453838783291664991092214125767422086330402344570664114854461526776584357572786511266499080504327084270443909031722262545047647976213322761794670130431473530195518556519477584111854327128296610270497571122613759639646856426195423988865715091157050897362246832136345304593294492742942772466043830545375818033607864040645282093696296347535027554214046948385256953738480143653463107590552482139577349274995448952548079719829942570479029149012149826427411459382360103458175657240235381640659831431132832704291546015084732130550233126452107790273014367465531834128217512920129031556549078270809490216923779966879075914577834253283017538210424304012588425290841150629035356251628525683306175618490177733033476155518943088254682634383161837471590535018611355201408016407537037479235907454088654434585077242047428320551772834770573388360722464228234958750158086125376065103031386866773734619423727156021678266031213634680274994581534631648176429250178593154152311631117577178544845365129785505765577232475074646538853970987226262957068634538393157561685025088418773067476102038235319504924074070413795354034186120950325015442313797323429223186310826229509178742985673244772390443530380214865276589167231122423498224996990591847905196889738769447151628563165980352556371165391141760404780444033462782551178481517462599597342430289283307539142113645836943624118166378992937022474135550157803846457125879832590640191966374211916972213172420569176886512056773365555622801513216671218961635287238945415190085554395322741573655534721348105538244467716076012461988893062508071617507667553387107338275686582965873511375002291467504419920266360373644978978943848056468461989522680522923751094222188494163096733927651220685278278474556618183152072341903240235980671839391519119812465110356594279248460935371783943530873520089178616378645426489497882503866572583348922504581479474959064309428056730565355674519178898621598590605399107960210473056466979131026664943951054414098171242216153246489924682157633133870020195340296436830494147661013244281029284038078051658994356228454985387106317111694961047900549838855188136701903236059139740874634198132434198438809642161460785311927840791125281442422519429430068216090491917581123853689098368862663805332781582727421738659493879502316587742088037399376164884998094511399330752376411161552443608955973258304477773004520430933403695833328902848309122716876527115514515951967547017867780905963211234116306348107031061128156827445150165510654439620143608562285577957284649862172268112054200287443190130307081194285529549725694006929508473974021959385258011697201268985037771591966915192524463177746986286792428627445528962069439959291174948471862040351748129686088132785608469841038504207155791811137156549859781699001876973073528733714760340470583861118976699259989249190224039260154746547680391473930577713922639539913482421714669833210216964246554976079797844314082819685063171864080062388292193683374908361429284219423475546938777269442993938721082336407118044446779588459748914342386926098820929971334682034622039349645653654769803208086192159739149503880291103925409848297795925230400453498373810995969693406775638784259449720816869354300334999656279422982637530831390337334358899088506918210036061232472617421499140630103493209133808057014421774822058890541999642056543321506291243163582510649508914213643724713663977803744778373306288092395014225754481175539611611688443467651519817278502590658649532309839592656378964706441567013746091531153987322460154520477771893293159130050311001652221256181333848257883312837980659703353850029836309697702816502705378400321742487888537012880533847704329556468866611620101305302394827234551895967582060901700567127130601261487039309347132543388114606762899164215318377877835455847100975902409021339400279294987680215173641303392519755797472460621133659435822742519988253531293443128252040252542390807768667335978249314824900236190286464568325353357398002625964774785437826495692988958957943027931239724028665382242595352343329689039009642897370116727662183814421294667414621719253921203816169769905431492757782927395757090970022865423504940223515648529648987919015127223212148573182068216395220506944635298557530005661114911510539265544915297646299664329971519698085399536893354882273075525386227352106549887387291708440873301915718541907683824165789442701857809270183651897035999643253736707774182845857778753306295352743741941990828279942083392883333840135146243511174106850628267945479608374306443240816917954461489030948915195868716532640899449568651603695822161199809307187330981560851596217471855898807691518581587609822965169604767225979001972644817234545401177655663123163137031361144398306440113593896240771769612924654254520499865037535560825923614523256209620725299316986894641204066646517838458074342260347440493170761964816154320671928247341018684601153613304180098939625551178953795743716755084198199979829203136598754223736615852960549685170976861186114078883552657820937243450628452040260708266556914181854171848924231590711718324512283374942131791231951009356855455444445907292745256443305862954983840230081535690604588445490850082825141286638776712705544811633678156274786574148058441769040005603225240979450996073493013425942573921929036188621506639205993563215321132594860915805219867453155169456602631619101736679377689111318123089277006747881923212996773886067099431622538081007338973757015492534034084374368277214673123803442857630772502009596983444719282661472213667618038684129946822807049149107273845660286976484333713757953922916723793607458609583368579547060941669624115036223301458374443913025246707294794722939379358322408061334856367535461002181386848460076790811781927639707639646729136433964673654488822433684326772599541163490827905799747517107607914037789702708892585644105104912860561595819990720382651806108489695175351987245378681324687013814100632914791513709796518391646657699576291595877190023279694833435154582734511346961911803821219530273539136437198600009749966808428594643691847747800410769862435953072550060975652673292995904066615193403079521958612203389928841428551492964440870926770949942413436000186591462300602575730276352685380685033682207429290101166017590662040350755395128541907616772607094278218694085004246316706759881903943934629677794691215268715214158343628778820787572707575403448377611274226467726645265991857008446681926344996669647082373851711325365738763323914013276367916364086682949628625942518758086498656196407972392662864533612487113110655201120528047363101891458508142511230265138789380352624860601721170132511490064409284119621339072605849868295986599942388849683946499191463826580394314183276245612389097987832882260297031678088097996936591459715300404557226057662004111384979235435949127286639086475341801016194895763774779157589872306417103550458559555208762760067658644750169041493201116687202988627897861144404007858665232360818078891896957472187834736144934103067672072123145278605513240648442194222566133418181140907099425603673064508455685817663855043158467012926485902318468248604128294071309879532993181930523106757793155219751059662108159117989732257797014151625347637890700256583687896409773728065074434304098104603029130103652745532885388554536142956807167864148823499754683937788430981155869988586208365154616728594641542375505442612279669177913996871027300724363119813878395435805717994089410763987840861233095946490667365515771539014256832223558748959288375147916788178615144078469055466321642795263660317960627595327329195347245564562092305323340089928175478126269150009309016414437043207062222855375475788458695160852287647093175348974265065331123395740833352131171955460023383945287258043835958117093000708077917626860066918951789565995012962907543470840477636743161620992991086160347285224643074342967063854997443067413862098575716910553875250008677452104894639172136305778915398311278474831732572480640126307900512952333725267765742122701032575221128396081757217303420971960703169541712840954483341467680955552307406801374469636020110302194102401005500918357996305050508381865268180180293033078346514158497826989891963578555497367588856608545315060054045994195449284906839307624221715524864434911885628758737045825892084831279209510300640082037289337513663596223489654766702300887369264608435549372312745672328278993558328594813048502969068159263440456951763678123916805904436760063664233355690331049469212887846527975943707649472340538270688254118653018172117171906712918090348071545347370139135818856212690444124919762536734980845261423741952410794828946339281265614124351251698463560531733298531061924089420541779604074395435542810630739156877916249634535619446663880630413443083166697680870164792010742262464880552703995023999843321256034141801707118370894518885937897504080659607590359491836494544397866760033897568868995664326342895059613169268286214159649975737128302543992195246076972970936508970465058253030721701866767728274834706593508411773219644592955300995661109004711598424595350411975985868153129024944283942232960645887543682069550506122633210500071395287239823458722354937763343323866823664688231482856880195042462549785951494021628927316342004471213217860012621845167099276155011676264272419148179404891721357174929833129568346623746765127694623635345565028711355597585436383264819120537585531533977764758648111708614094608217230130470632400450676563935828716945288531997198097199756671435565980541727221069424354619745712812909303933361405197911515489431308419662815507663765023619624568610861184166422201694933140829883175766079256114735986939805906757219098483712195279171315768748175086975090617110522606712016244890990075261122437006372053398563798062559487650882880877923361837293862624079353954727160044537529605626924808411801681245886888604613192917937402476630126452721742213716793679585018491702302130381382839481879999276369538949796268169392343587482986809767217557881001825477909282048076376416393405702889205654706948381601928091559263788294417121782955663455361171355248959782928176315478942841358428836239706977845989381330474439262339849355359207470402939630024758195829795669029083082100202969511247067237884723932669065674397646081661606800521578937190310544331898918785133129154686205715606805186113445172939270982516640867829250463858140716979331263795543832309982486074035043085826910029374042650074578869076015269135475799874204213984168969876463391585063380195646884252190300480947481383286034114994311613796137180177847212910278226457927422486372075138415591073956871450625979152156447511239498522936769482199967186926910779673036574619423698279029862493480896584476820661954870047918539456314934685790396945236514828878111956822370510760574554645241021191203537314437273348583169973253777713206954884685155069099280877790201342476539813603757893536262336713614199181788501371602753089843643600033864511574201766084565622149687874081127315561598900124875813259262532095295520743943577951815456710707064975219397507621634027483098622576159529232578269998623770096560378434026283464895167712197079515294901669843810312991747605571434484745313965028333592135505507966545396042712001671730196099096977639137951156128301859441755063506611254217614834264553289820830720479535850431708577370248278118188950009006533532690304328121975224592667044632314972074373720387352016093686134145344422907144212406706658261809987294094262161259443650224498927764399848413416139723890805112232453542771199559102336662660298678417802320268296140415978209321499112320792203338543114655694591289057608753436705891321315164194718826617408848354621835537590563283894373431634096129206190969828200591746154742011007839301069178764414796542085152595510191487059154503663169145759263931471183920920916858057290100037206487788415783475151869446013319637677339172746198526000376209673655419542537151810832930125033316194820458178579519417331183017461652648079774105034590334607576769588622181527830725080366937370198148681750301110569877392329735283065716047188421028195168413585679283747102496047563866151373564931349822904907372155502741028590861988016625378286533528027494261013321721925687062575573167135778384202921762292131596961102518016461490895226655048681982180218400462112159627263328148816712238886800057838728907540285389630486799275825004533052338727161755283569250391401062254309708071214043614195887638806655146151197567395748781518538010817721900953039142382237835329390183639718143249461829991916793300546753500447990197958801405584457996770484543958342429197195108987443756183752859583435889072682013703044696284854274320996945884355937055744547400694318318386305850375994902827336694330702556428707638280564651939146294202538583122651871505105446307766999737122375906366880121749585014986624200836554109266453842725060915241215199491745743941325760697033313814483052925247661276202340263921746154439095709999082889558334562094569810321204143220070683748032129887135360098951332359296963015778266985066283679416560543476825388110686729017993210661998066728599969752437073373652347667083488251705782474495079170012992379856022072468440070178115594446020417512269771783145130712825118196676873728794266512524047145354721984400043441934759396490464166990471093506955309656852048322682394688167015931176758661016403836145152686966275343376310086984516345795053544181469300965930282821998596930550469699316780572350216349894562642821692952520718309902211408476752777843005808435372461157072994040954990943917408606808138822539992653161122402433336297112117073296236337366294445853943286520730134234568041678299775337691364396822216041339202120690475016367782858264702222360861407595249452504249324646407069637384159169539901808788435080199710160873310848973346678500078293607689239276343937085122463226337494660221181743511176279365871948920772613635848672809126844872354055068836541257317532691534444286238320011858292421524067051992152136580495169677013974548116151868572194732495474076510144008530639921480760958700311486980324131114318247989577241969066310359649843832590418782927110800981855695079519104278930649637538094676146385868890353510888249831159572381642089850828696737087351071915694466673062092933537749789282740769077297021240802802696106901338055462907394298142270558083872711273351477591882439217041857938095491228178582211170026036009940173131241043115121435474078098978170468138356695819536378331753272054553496739615882394734467289725752065962110231981184464812631970981803058548499096474404947066327979963244390753629112804389861447751565934251890090349233370914460256594623846715021662042601118616994811325073149389160276251848520471792321104499599601942983067155831991104217347067525996331334300218983327266531103550522889047162827799743965683316896819214287638117830791428902481809094557065285340043662729426637972960971027710734846659121493150046474114056812486397737612382621020741264722089166295831203345240913530121247897250852997839419703225989521424483785576944175608996663822092740824471993003988609139444752049368684317264902277147419292299117850665246778703848456787485698172830271700081131122091948199372807713734958174602188204541983241861920697063066474886799575266734836935211759057367980305604729114006808391002406292920191070373371360517842276073637145565572232277700709418842098259224775273361219107822899845816528510530534346372763699289907564835215585491005612363746253502211545512435310897961784690759855264601010421979480795125544055968875847520727137855895638190753469478236832113478729695097235730003548544917967743758433952230439918415207590262256084708079401271065083272030045362049943846751218142190410321513599507009480537345787165541275218276477662647829649353714864080278219866366682942804375200223274617201495048604733691050467092344961908256591118729854437044300941426359645680232427149955460191179194023752348897957595683629394066003798242124183989580057593814036428319593108874854665441776733161088182269949997019792339788075807349731181020577995139812311853966830632220936487968334949833340586981301847893176201220724005009114010460033767551206009632856144021780721561709865514888442819630245210556696444296146239359474712780034138324737541273567939321032340262742152003130710682527067936502603974447271564139704069415952414251044099737908959839387814642195427689834513056434567178965418753970174249374665435726397845316907387561930891319187732705555779113682590901219949473924710142375897391188839324011838831640417517929208427693932722674708004206574032773587101140769400988747367467293243491658253618304854657539856717421014516382242042347372696890822059185185686256956762523575805067046923865662771246158863851634176057666015755823899006935553470304518003221025600882132729050747281257291578110113761238628728876628112084465253725844791088937111547795724611543676711160061945611078970400088081787362580201669299121039648309250411586128835463005530157283500700399447696535013576976401666885906538922496446780422407633742298354157965827895084883941890061895582427293429923358818007050596768098334916352163277490768438127448406547628843665414914514555188279079013023945799180936184144669564395896660977407606137249194351170333312163997924496609886830817205403196585979809051201903927719163748208311531620513944931358953954644649809553101462969564671045276528097322654284004113450528172384696786974223663386470602912171283783812690991009098861472126115881638626738487004017123724317864692811740388153113158020533258371965981137651971930207102786385302689494455058962161977374446659492325146003172638434576718506986368279972237062012045334349625775821017551601860685884696257028992966484705361114412525104871940577802138643886339055257985958636651784149200485002119289684051830152890693393285239095506268582665765238925682628620415958267751288154509580863130490946612298414414760470407066045618475852163571887623975407116018952650082237039864855703880705518657049570723348608620164969947639306681823944663376538045441944674656517158774786168929689452609977637224829820388459245736273520346445937985874247090392811402285414535796891329082955824364953051415515371279312901891649997398087276763168984882693875852178444022739437099400119408002120902544095534572063919231845192350417116836862933464666456186818704430767461798974700441535208751802889435804321449871281415223286673082325165772345652315995864718188227947168300673289262573655299930561646479335506646662407337849051626117729467477229991943652667226527217951582618020429377797759334384436787591304446026165477524422579346663815995949936075446097526233918553555314939003490625118916120369600461122480520236920000415111607372704168796123761059482797807266256907539105477333128045879890062865796017994826738280348819224936021912423604653328597597074862951878650338507127497051152780135659556069570931622911921044420109203993855604671414309220153371218698491262373884089694496080765668319107881990170118527380301876893460598948475306015800690615164158094684505613897676957736094000153230086812531679450386589135950658579019380977342984055423942796395762824241816982728708143901546418293615966801387385064385927562080593062762662200502791980169340707421589897596173235250461572652056780048940051529276262125845609336270758674174564755945625344152759485018588932427095327711774032388206277434800965659716294151051191000604087197506843768586769544518830913590272393720958085613473768361833428301346159510161306001104795694973319170900359051690137332436103786173940070774325616741391322277459574609060450648033165049709610643960359519690778872657798962622452113230937929360375654493850366689748854893320966622560534878868284839027906088086305661082636092717387308995504706478574971753752792210377838087009404116407580451163066321202147274716599314513144070427269096264195432128218588198399919900339840660115448747593458353607300988424369616672860684228168016543226572635359109828490232019218164107137381684860110412648150275095032585431860567682624640490511564986721187845357711946866950697751570389531279527557529947368920609042832615638306281274857551941613617608846413282760158889512109133856374891662081745783183294344843121917201675715907677192013600502133001236766892782990370153137710787736212655510144725228630538264718031951837062202532752399103444831807110952950668012790008943506642737984644253483696351266597788339402918686734581986017183525998996265480911997705552916709687498402570440121319499821197779322646745408214331124006467886912064832940813553101957081036110396819744232266420062230751061523348965789872022716375217614941685979523622002301114086020984844836682994051655335789457348828495643237819693655455267752989952327159337260732443625262401392941831374528780683394994507664899952727607028219533433404387925461435401275860414768013882483548930847392201646572351126199752582486928773754224507930076746972067248073363756754444523944046098824774772860760089345027710347018230076657261175297356070806400128589707490969269655267623517995034523298891392040616029967749380845061556630900910005505952447678079022277360561801449985188994538635430476804863591637823238427437060198678096113733000025129501875473272792785911258092116706819913495407125760107757946992790858888535029727585192699439626478900928183012019794129383407688131433511800381925268989857135864016233461538052752897161114492346729168256222765381111411153865933502967523780193404886036146311870881595309689310558529771848950372031329775493977465995339598842615689191078613645899015025455480847059286755329724066958406290269843532728301537585431921723874949760800352353000135561273684890364483285485254582330178814649607190685869126394767427191891854543448774418037570056296699874856342239022189684506769457690326263229255894172873426433031795721914714924987037338312625755801647942947921716228391996469970989085528466661348355350796559952843607082397447804071805956939313452197275884358641431971986759766769182446536091318532782904512077862143634937823225331154580325351657484563205008625312362948369205436760515301463660434838227466334752491496252800730981495872147361809781315689382764034346842205471976000547350808906959718742796007073506122539418250932765438523660598473253630586710583259122199878798671480164979592503243739074260111672363528716732545769353885835141609966182608563996275368590604263399663224215439430646866424945479183429605120409217211002635619658265390360862061164491725873744647372328326219176086898989550818984816907201634855237272287206304401540093825398464764789085944439108838403854889735600616827074187903609212525088494284057220797245009022573218318712449249109438187516732170596060142655758607892680983188072939497352894095866367943631894724932183197092901406204669884929276866747161939507542123904178672377094115036192101045765359484014041400550918081852480289700117093165576688749875787607726432539901287946762652726236999361270649576646444142603908760694906109759284747820960761530255983196839158215015206898847959720799068316699164205170255422006927513621208701010830141789928946822837126687339393310379734153047755260006536605213387214707669604031071279007652680053338190821384894214018156804943776744583833933421399572682880844008634373932842136121208108336356331885744993572049066390983935533445190216491784607816123160026226102609448508224201287772195757929911228366352141655005860942811096049202032990332635929080690417381455262542894049467328688416138277052542100767751560169357007914334410629214933634752282693362144675665895615545827340722910924396116569158654632797146543004559234991468836711958593325165843526070414115202898876153590748233945994527791547170397211103666909903649831399105465446258480405202075550084733175067678060563661809680720291949861721439968076701350493691252746492393247201257401083485666824889345028799583334847331227683407624716031006812263343389284119225965098582160317503334026099596029053114319612182315812828556891841677804841904638978209150286502953308135877672694203896438473026004620503881224978952662560074221223294372322848603039832869071145165343379384262111822111750509572216622845681121845477790806255843136296300646861095275902500969065019835457218287023462518459877602261236713310813792088583140082957915870946327265740250728343921381070438013529967199414704986568470530075004232651031499092966820593335116189264228951297988944650115799951835514415776658542323738145143712815253055588338772001100244087923226769943288915249023609914608973276240504770312892500913846754772620687824135313760770357878604247362843564634699247857439492975668205572021140688181996376044505965640574861329880985597148917160581613404131167427530557585095513739516682216233849755934444136441005990804619417326721039655690723430611343489785213293003289483865232519560695988969467437012521021862635030421506694280545182153282344908216656632566889649430102909830002337428096198066496220250394675716144339699239452946549608668042342268745561500054086363535106399863086885887420178108677701566397553632507868279990306064139072746427875701116859938055493366341322995836663616174997750137046946766281361958501805298335036497353476393000752309136887775293303037554754544048008047781090990781055540804119648479261463647473081846740972133146520244352877420066747752336872714276173337125774620060185082116830787295225737760030637928506996064349742343913750592253287523302937178214401704896760282488429857802488235837013452938851058834442816912146982436587273865696341038843048902742640969760941713803871035808098016512345245802064656443214297802153864289889511282680385375477883175088384065213397773951136266354097894282625069680543979142830248959651278592875318081249594659797699438953147493609456466409846966955041918669260675423527778437376246253969480538186686568481935529208345746971679364578221299387707578400315196059740252070364712726337593787979261494679909491977886447139451051911319203517685184647867109757666308488615102212847299945751359841155193457467254487669446682900260125113260574051269679633895443626260052616566169238363195216891784694246257394734790296446591540815569890823842590089990793988169398839857503550693112547165046246287107459824551463352761801577041033820722441145482456575623176588058670871829863628221880617253120594789096826756895320336745227167276919417825026297296837122186171100550733832870528728014915164082402119817091405930096308358238713051882618031271423159861124630582335514536899967092654023898150305110400829235958195671527923335426028345160109127486354045423099598540712926960061213936953096895272759525068936051802273924806553684052492072057492458411754976747130346423325389402005638439032653048975805603784599085735545631227586379103870809889625289923084433786721887238853577642475890350464206759688101843241434542935111146742808119454349173073833959339543720162610300476130018482308010585915497683366315261115030557509306652880155146385857466907343835151001069284207206018991416807521835440037886017691503137909311898321205019595735882016468146833230411017994293435865816413773301571161315807571024805895174164729802226528512176958395393981809536807021318048963665083465481869573864869623924854596086210630742208812039279850288429757843393831180207162794642347185949638113259647472826293905164403419907657686647575320596561907531482583838151143829142741080538998080509487335229470443686238266493681801490971465655206244641385537095727296457468793136296749378068046431068038578779028355143554134947409748966822129076651873106219603749126212813047566602786802517378939685117282790279073271264387127511898463041317878734265027929791290245198057656860744168205430249879173344769007849202713773689298744393883876296085035576772350691339845736578661313257552367980652979074039225215726328641086535599143833515823707065880345854307822441697471670315655652017701689729079942783938675244672884775414246381057561104881872348984502442082758537548227815554663675319352300459864484748806742169276057555159217586523849445602127815869446557860501502468478104154425023028318518057055815318364731453888824132087108269827120553951282741724219863828202670026277423015575626475649983908791511007079015166061275910416495215822865400482017672198596061408796034317352758761613684314359007422319206907942974498460337459398476345647136459973616239733797856618774571750248692397272599417718412399219596522310939203461276168692438097914119985966891257249751954870509487194459675375296252680547409245365353248298169839155925808274744975123240503928723926595557222665799514984524654600029448377066032489776855380203899019212006599503234242056414269225557381954592770697952794360263839920564452076637183508746321393149062745776340750320382574339920717766311124886346623500146340193833900173487885832235203402321836628732834586763402799681539164868588349758219084235336882415116424048691433923705098123914361954797201864175703680363999372165804464172248861319721967493346113140479181806016169229214130184547473267046703548328801412203498278278319612481103210587929540655956712909756359037865958441928006195229512245535674282475411846867787089165976787141493735493318300207088150194243737983117078630578478859561276507317248135831238511896570261066150481712471854071910868529728267823965571591822823296676153384718945097385897378599953272627516920627947430432572899396673169199205552597827015748019474860294801916301624520057343264681495346118207750596959150893384408156209954603653847573731229312850372204356741067557802795073862777164518952293132440543407957789969374259640159121124734739716303814209839890842784711987435057647715300273394844521357562347341371035140952886454126058693535050578260492319884648069741559250527019395751818271371138735238407513149523366582062012858267652901054181534980333249752646622981491475007566928648955283667219632834724402205732819277647487429657243524792437957613205589566006500044469123973339614375343752751782084462265803271341010034023671817486605689659220125366891090486275703221750967417019411389557426427052812916714768662584392864575579911426979116490321647395560069251123646007400131696266867451074152954063856257158770373053747753726943157109782952439699991026172792888636477606049338092386579774225110676566746921702984340363149889002953626316518154179538493062274546695795186837534916243849403937677382560208865630762084151718842194229507434511051155430075948271585356525446212467117602807947313664886587903218267223632481658910362377062807392822488968138009144930182536415247428401058067472039889939007741573227278695710685724194508776339312890491540257655107648002646982786548363289017315215237023229925836071885245706327779557307567529457365418985732283946811061159819589666902874906577983410458159642735317579421255145764875469397147531864279421722310591608138283004914080010256963116987119196766535867600852076655495588858978644084745603307534651083085944826805826068480840657979889649901108974392716030792797117621695770026414529716627370015314773700192064391385489114015946132379426936173725482635363561147264826982176037842562000978687865607986042061124584175922777576158343831597979667887496658260249423368574393640902926334805838565770148021943140509775377187141037832576058939520313032591997457547076561969411972705026497212337805629996616270207368830800113569447874638421986413697698096821025242901793151359834162539667494870734383916264794108683299564798931951134611743747525408017488281687936100548241519255646931300058421116500775009948000689434019563091782571529910356842549740549625377300777809111942112018843908264999081946916804098251556419637171003981704204439442796230638769757866639441131692761645753022268453043237342562967650077545724083273704337819482884921436549603062131095213006376784065530356964682388540067982236930060444843675961921625488946556830989014238983496600294614770650522630579462275620513834073056177811654359674728675783501424089913828476637669473893320565344660833829702473781780738584731417018669264326033216262343780990144681087443860988186114756389780509110353364322795133839936917004822761030493144591122958984077017526290759192555763843916618893946285719172170329545664376230911462630740959173362504222947751248644222581607019664178954685094930933933752764148790300642303853340637443472487121864372787521201193313989749197143090944146322876959189294330937881037142825090029249651878560446393898865637122207141019851244007842427292394804236562556776763791348639127986779377167771102201794517937304406520752920034808021384737402994515456949517605654408061114928106089794657436784716188241899007239412188117901894791408882524300747798715956148515505612298975217656158506283153279717089972439675409572685010434073696541190500617445784365938222772928671742461911865934711114012921527491976237067957804707602477034266704031084887190949923144774222455237509589813552866949999131721742742939355902038060274401834130999403518565312421470018280902399336460849548264230903947875437968388409004760911344437138642632294855306473676233354711057808724923280743172294250215993872097481749149797983551784658086757610814996774649801158299752226332500005997618759572355318824646222686852866929361181101265042893490192711969058935172064640555507637223920040668560231139973630587753358195417323241091541101693965375229465756232874685227256101003395955171220742541071759624946206417806427618747824712527092768387227430491522774295296380767805340116282178805771113756929987595213035865049524870835611812262975603775729970058197043985639157378448443460953894349960591845472898673515341286932621454983199996615452926900190389883571360689500291172651615647450901286875715193833449465731443129619885962563216344294625393321953946023176092849786486638164217190265168016590934349330432404641187847757670036627143140858360334284510427926516024324167343410404846485474348979539365042446754255098131440326202999807907523545377584870039430453074873163160492288942279922024993914175418222368976405714561396438576993911552119968978067546693751902095260640323130549711777753247881047129072126269351775355300028351832653149128967961036832523429006235014570075046707060889924065065490742988873625521971786077856877754739966297527763448278005124851301997975927781304879619522839583053861783724317781180189414891086219105008726586005539476728351079934214293226299445691948730059076912677571706489174396637699789027784407473373861940705308755903305460704094721726516583000092289995317872688245192323038886367053910902866070428785318629605968599510765109569564490989627590448659767782527231131977970996079992920296605769603341653508318096226440897942591726638193925932113948030996713512258196325289474981000582365938417052714177140110314138918849140307009423228195848847107586216859363968682708801757554814435083044645748865616806764661234712887988149563370446201652196134089990123831221019242206476830114729899657930010359432485190900325311114309676589340652701289922842582855762146734213484721579542847437929667599663171187856821573891005686445210423210042682426604086371007691160991642265251318740544681353369647954347589053492382438409739012551424686970971871405310283961616966295075169454584240277329236768615586436139794273129052659000479983021334297631169630201249503370356817249004557824165059619149129099161967872751379311958260624304241238247427924069975075857042746865284394500911455281068781108075525646862751057374700006829821719636369930164521313735786736865783470811312868633665158809912982976530150384897739624932987553800367020538052028318829225871747937889057257545191844006984615086557742461854895166812542606728701445731913711288900063793962662695301485281016676246877071710143796287301775286813390483681460711922663708978908119083204606097097256344499693117591446628949855332291896473021121749242864473066904697153811453873442643938147670561880306348469310833005986825642375959598360352901340956461406826727311476839716077559300213369928454454598811887338329974812426902526084936485299006157603159565642336496242513806683877380317025688940880828527011164414134187787364532415648281209836421021921882504443233407385737365501662334174245275471394236486101956137920990156319867268810202550917617637404135118163215263041711436431689730688400178266871201519952783748044561267491181025487918802183699830316006896575892896870186021056432042734654302459843199422840595274285905804375165337314105544717513002907591717363215737781569941920352731828242986232249122796765602670497495207387447320866754699460003279185876784325853729428695014566864205565946549344643092780298173020200315255221067992414240071886320451566445660316351105989151696255348890929247226308001972124051320247523244506122564011915884647951595559383392190700019663780281735511468784129629229337697666514092646242103974429102276472775014092697187857657221917183665467351460788966646869422764029078007626861443257534730098404012061085995645256185995226331210128860044223539486653487773576391774378971607680000529950307411438582965589869646587627961200185321149834056158070533934257290670218890621566787184265315968726861732378155514966627512353235828050858799457407994217064406081569091286014730104120082015865794094358152491512636317885462172714055262339057483941960725237594744817321909424751926285217095405396263883567203397654893838291002067832538654806151194005671995307527381836551121878710365689746503324449114500115496353560547772222242663295834865564788744551298124991701166978555369763783440782076077063104966335543163387652931729682346585278836283589061726042407882080457332333801076044200728657899511462120649144544264648683283921515757063021530875914642358818259513714994934275879091197759828830985322713404313565754434237609518909237297223187176009488444846971359241435231242268421275762441143971296341974247155016632134887465864495232316623289158935461401381947706087867145996498006487100962601448186229406033706234969634618490358017975210135631193655893831827377033705970755592146357138657533014144813255993903965871403976756428267326196811164873868792929901364168143750382190479398398691325701681818031576576476023456637843301460546241453843801951799570045608676363205132266793701450602691830351202429116737454404427662498806870703646197278970461370901225802797989774260551071737076437311910017526783563778772222943307309564629645913521137687268540147304218985971738913326350919788300536954373596979210691113634670575903535681311474724816189809877874160612407449823804319796692259145990388851227256616908141932669692892308362437465008627400355143195823404411446382716547743818615573950670393804428072092583505388390952339132635891935892644953176686175232860759329219439602035984958784598555813001744898159381739252943572453571793094691305457542993405278778800292730390561492161049439059572581918188041280427576625574508799538043595140433399419902247974070078020847334993884915176745603138999549002346404011342689417666800466430623573283327064889052658488238139042710977119852019781492805009630720182953807166110878874493216869298195458081280210986746869157449164222388939730855654323725725952052454671012620412123268214985117285622467037210721133137368428373445812758386548960476067293983790302900882845809229254830257336686850226042540425902570167246521419096605944317348138342463188534353915086312252856714396843736015177839322905827669659389748334723691913448730173375317463763446826942380371937722467930135484291039745885901009461208447604581294771049634372185247137907621544804204776267282231115604820604004695695784739713313250842667326209087948507747747176664777193978290344937988398939181988719176508062412473869587006340858698801431093408434648774891035821145473609394065784355182242521767780788019128604170083575863688573256925040940863532582133713829316166296718840912146415945168058682118414819590808513088876496212019270186892738739614635623792500150200556914146350172421133739564349209273623601656646067390529147308395617636104134273892616059840201747943424749771484080881180649833121076162789423388566998076515955144677852696204952305175875530144861845575660174260468133009187745276192510400565869555794617225838553027114375354514197048032952469857214294212398097912488839424557424516985673349385719660746044904792098514864249799375465744232808501014766391572906983235701706557278144005470972286441568544316961537041989910378259515415872140439148411920218844371163572693293452678091901127859668312210584246882374111590234146186563955130727384746286809448014338796645825556453279720015468783652812168300190808492085994580365027245096182910332453998451064433341095202643850585434960634091186338120046980085031399776508231578566911520054884917987767195098397717668426495145049051053607609864428877551038557656867657643669883824847974046983606595889912723420029286343602633027542995967160962174486684383169238778807595043956045835341762541220523457593637187396846795715946259360849505198948088014736476393670443752780926437175038857032285128891455376994568442595571157843076286164982307767908970343290941889263688383211100926347892661422428506057857967311593269551134008075389781708521253194606569809114518177434692008866514656664734879326555452285827722070622396403471345339318061834386606485754762698759552636283671592950149982030877860020587588027821493747900982789976320567092686713062084068290547650178172475904726318160884004402972352937894119825658551049213151685816986456982302891266943899903441916113960911952354779998639318725665940432796438861197762960768519054261165533551271148165286606541961703805476154227408413148234017756047565601890596599443402903857194859353525344752524128057377729450009096936175290254143411384176453079494857183429999727295074768341426445748177330841936798808347255355380025379402907274876068721258709136126715598180335020418069158869185640172837001061761181022399947848134479823262718788223976885813804900437344633774556917121950893151882149431790698894073877715084270646666931486221210757752252536267667277277310384004767753642452274653881067218018499120088574224031632420116095185570414290818555670151382962570923791905899415797266103838950227189224608362001978070605084639246543751870094946604643762022843717813619081713823345762184733200096219726195875303093156188283711669582739052091244096140601599947319738194829296338106686536471348001852194486598915677611798903453446248975226901753476343550698690463676844343241741453429437406667231055816234921473997578864017620984416551093055536064613108158144251365967382231273142611513875850556486810973429525700612662970324480238532322486629403982696167383807875373063877147477744169388988767352973083276627244401417851910283550223120151781442623890105262032152358012195238636175855347460509480436672953295563058712741609863389388027740038944404699131297223461917125623411857757942075547998052728283457601497103610839660391179351971258408210391359439631533049177069497439413160282844178359866155556192721366239253142516951814450515828248562934718581206558686759107010924355091082357461125346304730277510220048402169937994912233385148767935995032366236514848799897016678157826979789343528223413776598844790438511302701500327335421929333268581470133282885405571941355404310828184017225235958435653415184244368544433988781837453427213884148428057029501971699031724065962378446864011877808494979234625134320576884236195093592823442099075468492623413507543034168823508378822400101081850807167176961068123051016686757331036495008774875510708002722410718612087473693022663603504644199932487494687318979430072055779445338165565869675243941714063335553922451428885032176048198233954995393195380169203800117768660927504313724433288012279695714897715008972860198061096834455676702129127409412494875249433805740656187708993406250895082623524847640737204898481410440808437224025544773816328196010686310938720149967789506013974342943862671573182961190730316454295371463486260622071844274413093907369913236437720042562339489368927771828817179616694372180664203413506028102635645792748210065512870190070645914269071742938893041992946942931851502713895338484999570122618331896878881073629319546126468782966732937382200530396337767134951684178335386518815919806141928115765691335270968742408546209898369554046956989534058983057080313915473053720918865329966849621389611312408999708695562335450164510950455282139791549361223911267869677063731059917219660655438771203059829827748130168601454992456538282776891291335447735403042853090017526111007965235851836653238336925722570274949148747705740681917468304671214327950372584076360294320176001880028976420447728215360212309784254900782340465412612690024155364878266100186066641722435515941711973783279651111936386925622105853090652816310332247579090369403592955653503065167585487906188329260956699379977250594844454733149715675450764689321080636679315199090503574214088690471999572407623687759202571588357746222734858624023629758339473334437299821575093170616074019437666625699423187611080151186087409842879068609938687790006897649069226822998765169371318354543533815463336737277929911199005481557028506429393517530616118247492441966802840103791419199663789143451646592215333518876878241165443669497179898814526484541258848671818382504430406074190613907054677226487732442498419283161916356056354612511509741352692257069521229364185019873466712748871860224045211113438621400060316336810053134689906299499972651096333751603739618172480916455255908474514400968125827481959189331486712822272303979216382049817719356065838729286110472879028862143749815453773510174364460814948178888849188462296109989787080756628580440037413289548666701258496186888297790978795799958417402495593779314297366364655936569418141734539741366832446647428149435985873823888870951715437315743079982928312300533053829645363283718721717224024782536143186877142745441033128535580547183575421848904352500133429738976158846959559180952938712900284240169670949977101661754929152693284427953949399964852652949935284421872295616221674271156380889929406546850729969480157682531156102369095251575247908308751763694638468792040777758339493771142193551441955031521577476106741219448411425475939203706927651405713083208347998228024080129846138955284980972631660533575010610458273686288325838410403257276427783921125024862325512181349218611864356802777226417586706821805208512484978407860599998911054598394946856557558841041575735208046338656974701852206934589950602856561505519074915050359834149757782819918160852274663063041791242744840406816020322059718505014401964208858004317127901646038344057202875477171334452086234100993447992610464263693503750651033668621747302645627326621211265787397482262949586998856623501226268162743083983428613906486976250068234036029807818156729916686251201470823830913090434619170912524533172656118938478150572686283328461342650741844657677936575082627625729821672437721596288900430364696098230701901729324056897409349488929652518616611107917335438180023257950632883658091134268152046140798502159604715858044485581524541966811233624272700461533860309114970114804230170881942711432287218701077119467273214966073263824105885607950193125503076302360780482826762314126984301326089971214564500862922591520044942792695168827468023837342051537983899924717250038941701213102735652231895863777509992708423411387696377258979682612289673538926773081701282707181595377419398983804569232380744533964429896237836126283859180076139830264298978198197389201827503614978649117270646690933261436899117209917336278749956387174191487119911448030383263976989772321284389252947090580793818924850772712969933659691583950403792615418907816174813450198686030474272234874717752863074643461431106559995873392457630299941334894188777366589620562107164440678317370150019402450906006210980599097681540822267451601831057035191777344312211567378125819342749576926823844716087701658790498189145086876356423673348812499234165059604420493607697840927997584604665620061401883827472088007378164218329277220769866016255307650206185235217320998327960712582571100604258690023223721718395129682125008275179333615409750114816608192967229482714904162102487152530385501101321806185285799591327069367202261261722066507013337559038038884181205154350267107766514221097346164052887556447888420797648176505061370340751596089771055584255965290917615171785564721905686520577883224441018726256932407303242491423345866611537946218498280475204466230028457069845630118418422639694224217669254933251088841489468505552934497908209999981799579023173619118136396517345240782337970489663582238805531152573330676061284696290541393901331848140834267044305305552464080760313020781271393808680980352330355838171548249463724427437630953252929400100147749613507144856556380603468247479621412968460805255767609018209267173790052083504259083525221357913640583099592712962216426449831318923397160949448443684675987707142698687393601025089110183172061046308585396888135293759114468401410675653817720921049490337886451974721260896978505618595245503838859651093301097116506178782884636554782499793368090142268453163871982375899976731588148305068011193200726105766179290185765017454063438443510696307746728748313098944221208213874545674549584777221383616331457719648130946249564212907551606464913531292761634453555259042351838191027224578409093478677568505250919074496474524466968808655137308567790803228490982983254072278086304445156591121839509794041696310638473468218019721659017092697489655514894110857166474180488577918668103767786163571834147944566146025106442293281981343243996157122124826534042458400057273138869738179015539442959599688144479921346418234116082886022091041853792740893622890572247887889162521066035330112230413195229497913027817922352795647861822050567062353684230643361206284311669535917569255492862895602753531178566348499359565713613720166780511701452784473102734086501439492905787593756996864042825532739326552716881209394074578651693494806229006608344880439789345842703201352556704417026525737784586036879084343161314309677716177193364432527586583332993922135522325378309821127669907233932491421904984916589176742480872065087587691936527807992803249640135116876558428313417719810046618272336928080636160775253714246007615527497159426585005005727236767137137111479225298128845104861079662664766597436251706727812913393951411555714268202571848449632830031497542919100386565372418945878447417004850622397360678684500941498185352638269607689399090518646071084597768210499949715795109358902185354390505703017697535863542534805986857100521576100010182004524974005565168840494122490767950713489833939657511019803384078599564426998480086738265274590108649264545789636923563310299734513552576102138322213286045071600235452393738591141989443189765364033837241767520566777513785167432326951597755513996641735033451316489384240624161063255660030673821924212385066385740077939397169262458414715362176666625622508467254952581989134985967066435152110589365790067120057908020329695539458819563095436200349141325153855922481680532455000830386744327607819183273417559194920046520385275477477521544878644747300209721156317588301225423725841589065378798818141726452867101391123755646574045883393594961972910519503902494441898844452589712200893402752277923887906553604203532228797338880324587739860517659365050110225160900850685318157819541045994989446502373599381135873944634314740044674236118449218429173044271496732853995397690689429562564814081742410984557754413156834951049744340735408551813823132839620789872765295471459691996895484665200650882831011303440220262173158482158894830056635404355002377024241788806262012896624019939789332021467945351618258667787208303534710472457642703197250927255363568021823537919475545076885563286307651996289207875072579361594574681626731648519919117624061952094966844181751413425346557438654400616997608723814094003693659142519968678071462332716218967870744997572989239993989389960438401476806196882833099195539240508486061917984993414457537842881309391709215330280919015694643974612819556797346921639485890237148301388269562161268679388483599674279454477026721102897423192209070513986310160101763760799944899409269082992982659382117070930102293352622295599152146286766789954508857385751724284446974942960172851399340554316541605125092563282848016433650149140539043481458526438168751909980662926630698850678484388804542254077191518259808745816154390105158839708950245023937310616902899427767037152022743408236888422797647133732552408703581457510877321820410216713920472594456309341237151946469830124864920801210696685542681169803030649646280908295912866695188034349433853443251932557776774989853097281373066086261052711189483871852924130488153292211511051885809463698808155600227298874419656972908209666379199833934904660712988278066360834737651795022280518551564709060790845393219346407486666088042945147642315914977125050772680659541078896094593276341114464617762388403883382728691497791562435028961224184321924261603300920054444849190838500217951328921190351714296674369630295435286883365424299937890480809315248007242984377578663066543256344766141424090929878694488668490328264416514256532629642027274145589126656774389381025044745152673250594519584203983408344429431102728755785689008776234202028980447520054724228725645981187693727471693990939245788897481752927270158077458717172240587649644039449982761377730679614284050605239450512970182931653741430237681495014766014123157728280834136427317605272574910870643960349285244984571474348634067391564513020855452969114445456380058253071744032314426122800439325639309530517326760499398496912566381287471653646468956436509579722873399382907860823158662140387378084837704054862223250386392253648938004259923976354316709827386444033738778546726936208068249535625550883817242580297938938353636888832868824882811334625162209481830303509552946992684102566499856196203925166782438022100635484775953623125261673194901819886294453574543801269667195945835495880603566584941816222668314702530141270955066728869142866025576026660870940364722400230639620684525303978665549153106333441463057013068401002738922830637872469540481873472402009807486431372294481089212985844559242519267039830914281197458978520376548392113135778329778607536464192686482247861083561936439209433934173028056471691926558573938079048849326613040828910932796022120710252157223077412274835377293542331828043494784401200670453253480019147654653659400899994328926820812838833931607292279377208960269312860343821686587869210199156299297807310556772137469129878181138444614941739800851597003862563636062046539903268072668941218824137672941429827423459815525907271265400147139920046403183425694932408778726882154599299788703228141395649802789220078785401897378565427920399044158836771041946019093360232657233254995637409247390684688649782244383636119135041856889568101091347740000753123680529652437842144348971648360679718534227475960815150686290122052034267763716665711986276400474493376958450600788565317963194174556493713203894039499093427900177879715783159471141917071226522423424631493635930124431655327764520662734868870770213482234503033208652200285355282184425145315815013011393380502720582793565246984517922443650437200867683415209627660158518106765318371490566620665509031630043514479133536049634506321155469296346017978494316562936702781859123103384480360204998488329306112931259181207125071564399144144298422031821428202853327034204036040847842555913279980657123618315568553009703122713558608979596157689608960950758435686420055313779881653064167841767912142798334461855170917034653562274741687228763656352647979183406757538646372349908449591421573128403391951072357304616472408753039431470392459085291784719085753452365497626598672495214216211836204277922677244039334211685672264655897551562677007516606621291582245687658618662574103457968766660153493488180776931772398228753501267170445674990271106163936086949005642720906554679152420460844400966929919620950651453402658955230966232078790546377788880256137058472036300461251319652093774561095235423350371535744080410474011404175872669161550505027172514520054350486535944506340250394341912649829856358130611404807753251793293496810173963909574945258162375860458955658985293606209292681118523881684044912288699961097257811305773800537581642099487833228823258678034770379141770058935851748910812549005508013752729502880182683285950160656528018396007649622301908192559579477259854825620733128994475212355983933161484169343337911612741207177282193015853300164093740080601587185071479882881790111053741374274435078341426566358178978617373087665124490845299516557371294617837923365457199570694226041031725492072201564408899291007777723272084353282066432188028928544475909961478286614632723238775275633373958155445243244419285534212701523031738178796106853383707621887507005693932699768962997380674796841395808075244896127854042844285523426652445486755453043280501118005649634089992620230667837031048663062883674067016365409805630062680827455882950029849518063282342190030083678594147185507368539818914288292458709641503125538126306037257511235588885732209021369514802140474128036258006458297280983969071282161341979349512708618893853234617772314495123073217202889503102269573567430499049754177891096173433477326991878692451273695993167123678839392758512998281707918362471532619676107611558106241387119312064315230145625539183965028332968713525220516802003612026907083907876454325940105807005406498724379165075534932655218271106016978614692886039573208280390927190084090379893630511397749986043226284083942377050233066294167087536091038570325698461817586402353467956552736264204230526261163127151259337989275077106297462804786239053464243571730492275953611413490632732010221152134511299397459587280674779800541344503362408349965295078191839644896712902752818787158582860446295454086704990894493531302181055044804140636255143780496073412995143084392087852396488881836678418379773664882693843837316173360094107265770107795099841879380776868958829661849419289435411343681412074804943411848213945204031572824331250545723011125331140572659370175100404805724757759947288003470290219129240086706946454702855935881586551912324006812271092149328395800068604733643888029463330263270386392056658228394834032707900534632960646649891983253998660601332458043854487543436586083651868800550162686056127731657360560444339435194435679287009067165036856865627267652706821875397638120959628894277945702714796657312446073478839898975966086290677869005418009701389965463101075438381921288830486547839691451980517308676786382666196552625432831726572714441239018689335186418702820478275000424790620080111242435286922001383608343516591953050881015601590969093977409265813906460261678003702928810602650902710105916757295755024868504412351385688889710505686306130582518784600083489254926883252811111562950033055205406951345425218146287804149926341256977403358439740109637154454521531380758548471278668316449547282938005248567994133363160044463993030223853278004605672304309895188967559106430152104367944764104233802297203304823208726620377668296570971503321629343146859867423735460255790619960159432608075709756149953336015401005025432258953752768200747139292759992781268719991605094732335203408852068551611468995319208295119739633486659576902584698290439463750792624703044122036667669547079551715080690540321555976386065838028581503956235774974208299800537365327694439916792376085084071821950296609502588126190783508865388016116984570609535500072006701798641871922037145987832448421853970938393189033452173767466191630647019347223749312644597417562184067615887312908888558528202756025603591787097155126397354251133294876623503800150832524943814420918803320842638275514020631166444303021128045369224200940861815741238298395399895193712988362763555723106009885316495336832361455879624065129103191995058010255868890740533185943597863768793021599888972044924614790142685208489184363920148856019592171211040326499704286016594423014931822382355296089325045422926657917803932107740338783010658944576148214844629235092107484167946794994871121989407663244616250966289542757221485229545944483112981956937382633176552034569264395199888299010878360701937785442892764603015288601297802052420937328740536593982629356388268739224123289591829342271190026839073493217499104781397321244454074610775227484245652972001883529102894086576983000790659111935214464693514206951873879392901074407271069814994381496111361055540095472398669557417351025013034023377485328452100087797487625533311976310515677663755475609867681211571123352154043923779149776666423612245997819489021092937403764273999103158054309677170726889037255432980221528414301760550975731065509061655327209849548155496086215525248575329674559783338287053686566269242057299081753165618223634321137414935908557831180375966265789608663806008854457135431891313317084049849408463964699374013219986101592377224004523259601733796898377277692517316097496028572918105926482989421037865184128181089294204008453284729401157627940759698685783960864827611220265824720429285601704959884805675499532670856132450361024177064972733550406000976649881369834902219039095182127066898860883474724221376914909473526989260527024396896772170622971217727348998005861534329658998687721173486013053229238148925980879659499653118763289837579898685825378009780958394396266454996197622493439397643298372253241339091059683212379999965082754861350871562754384752482210483319846962152039498277871957609110170335786162528248132689722665600047596000840809304692176240894890930029658610660222767341400089094011032524476424548458710613483525729999601894735957670027551360746596194178933722203321189300163175379134046601832688210662800166237913125916565100015998636896816330436549744836463002565403654875453423394546309795146878865076526382174054712316793949829089054066918217943275677498714255025743905843366888052487398003671670472769067562219069385002369194666174112129286962936618471996036524273899575470629903382519861221228993523874987550413920591537902344218855177427046255512641706129571756398998141305555822749210135369743182962162196344418087593113962105754595229268663742575367345932047740868140086353388404027377444150700427533042730191386705626729792339526069506061995600533475488159754511934595365046070900764947592432775805347247951116088759662667420699723558142454639398812386855028474667979720455378537151349535223413307855065636133482703459655900329297807908777453155106076623952458809817606676364006697730808020174461320110354186682806355716303191059216700030056090642587393825544571508902410298035860132282271407900008079937859021789278347428951553622856688447310169499407229260205927944324281129642300655820990142310713153964978592940249160470127893210453719230534472597509668957779316873459338527977261789749924214702640004381142726131794757641274042957134058243304919136831490892696388566532850897998808985885087525490486901939713708018105158773309450460649130076244845015311217902305696800972089853333103476508317348547893045801015612267045198200600623117275438776896454962227196909280231058224795404698808496624876070314497218882859055839432076165539547124803775089281444625885572934225169332882001398092369313305985626933378834354762847349442036476391075925352059646231497537033094157168972833454540422062096270114748578299095749835765995734032716345919137132076286892443542200833679212386448133122490981058570181175944298441832841192577999531870822101799512780601884785831639624919689070115600003143436215268489334179219479420287838920165193863220335714245247941990103112043975633247468263075686435609472874185245794562075041458991368752196225185387487978531484999067293854420631525371772968634317155096798981538905319731591820223267957039995837615984279468883618058618069498276130205120363648859787910930155587591800153296273905674984382876964040710246084143383554803883715903592292496374435240472821012856090112172289206638603761698889586314768261948472169862191275021629304378260909526212833507533157719253546415424951106103890999596638255133368427145023087408095485741787457663248408984516483062292726230068856289395481989670772706920371108423494887241913404697314086182699812685022581921012868209921405131897353562279555149403471622948497973915649610182300387923210763353116074665552229485088168124408407208027773113927708763073697121458178181440230276962123273851446633053878069369513640726517859201425834222354773920884235787045098055841616116335594028472450202023318775463509165102242609353548636353680293917169910152674378555270492792690714862620327776127733083577365702550439573109112549899060639477200670224993406544765531918468080861323118291381210800939734724081976684136675457757706803896653075719480121381871129910884442661507808695186565599511482351081233494414728980715421946361762943000374364990679141633797608465035555990833783703295987545645406657131250906762963589761525408783619967656897433589714234900558469064930626925020150974976785799050175521783201301540682792439310179875246674209998072415141883041976976072553135251171239270746278658051825651148801988425716348515967340390229783999043202233592708109580950167691247871583829100605640654784714196252241365814052003055436348819707868867542385826970882909019752144706435959599842316885511401736094918296148301553318796339114546007932761290784852181457216587279615795059766946314586702432741643259771872714826361527695584374712772971033250326534620450903008860304094739180780565886343933352684494636475891816308056886108790032365333830111806235776070045216353205775960599690638148744196192513571851659199589280504435696753213789569381553288821655589206449434216949756205705424216442203193192085562931687167494521760669004457503879358012499256457409635315742961660172286218872683089484208322709540966111529958970988368859398123620438424304573531810563733985623537088567365239485806447797980858730091071811529636847470206084759246958319243721381816914308492644359493093171802324321220449952554531353639259786373428563675753657744032825596713235481584820270091316241518999861685068047290351949406267940194529771341006340524947901281942415808203262556306087268458966048735300146061184508057439406759663890095415926695406633874411176963964421039234331890468068317517846039169074752654070354281878649971927231158227831460692652918371220969842558532003150031685248836708132169047365022107028112519021406956909016785609348486798686305917110781513921651776699473673530968503824151340191718092871450091675874116979892043568506169329472746448709251087466442687297097880541723840989954099662019707075725601253238697231859048421118367772342138931108233859234030938312882142073563468700884242758802481751753522253877168629154506185981694601692903464372028190514893591635563468067655497396726814533170397005084581611601014203858407897090773499265305991751594261504613737924943582724956223357291895234087153404930621982758303627235486843375725122479357270069679687718784639053758600764705115624838676861252933480049696853113009934079882616184067346735324772239031658493917911403350162224057367015429353245489063511903141174697747083934092396730157663480949133807165474075821884736634929095994082891301443120665654043744590197582142977232404601486020814347655410689616166543557088257044214142950647841575604126412737207611878724852338842345113119988994298680683190742806762589261360406351697159680527646227896659916909033157592502157538056982796864737030636787592933756726039679982427156065659265465226563665173209636917593581743118204879418633029644386531787396389411486026342228521879017724234442474613043173538899845608695430910345317491949926251109065786599138428292898166481992681474288315427511777055434692409860890735555457902167842319770755347396904127336307421548609639346166916339201629426345834627367061121074358784706250650157417620863479943403443257331917537345415387991956842697076984161077057477513771588674672469676302101499183061492396050026830675296522058620209307061683003029723196866164922584879440756145826217142528254352933803488439590000296216458921221710280368665638357401163877353138695370774719133038668203267403382617587014268285686717525788580023859539440134309774320369346765943181902746377889764462855044576494237451193083350019256084994810721365191742849187684070447552098506848978698994910953281741504479661674347420950039025603621302072138143955745564380223395081811079124504423613379543677074558121924783648634924876175793502100581973364312052504962268733227223959580020597655331671432190788073842958089781707070613945707545108449568283211295700812422659065583987941892894502680436133497149959665139735868395260531956002899794414419305507783719673261664314396111516372281036091022501301884964539833187699635059221315541858697530027054602831596004551249387346183106819857917205179169033658187088978570839361100331536945330064317420439856813606142139284592071966681739011156809343423971999278942479016062543243958511388637222763118233197192431634365400934805061752485042420454747950971348249089232548071822078954108185935764573854544179288696277215636389579230852096717765612792104932986507385901463228501597921204101473147339209625714079832349132243219738277805118149907960974296846835144533819949892044944480108096061273542591506891637272733586413248538602908851882927780380641914681902492392795121183170027622493418559647228415308699002439178095895778943679187491775068208116900129507130147415332848923337603720199452387265003742259488432354579130208489488090147264212270892904382399112226469769872833303311768210004719198351399821588880432222736557595219561320662374437859237539041521174034601042625932569122777163312439626409191456018637983413847812699755436938800967746956845687665208689387350112434808240826918919468680291062819102305893939223358516965268935201936782849273858240344386648107073033447179487380594597834210370659705973808480469255366904900353455865618729863530198988991939941077079979805103830757982867291891193778192149620740235139461713964890242538827086570404138533658978057973129869367760530790578854384125224489320912967227366183139088289844982506980105608551507804420489350735772742847391572272980823737388609614879383055984452319024387434540391097301380070151856397738520883567240679440250703557014413986484467185826686192164938561152088012172269342838340480125332411621605056011753774850221509116515377206055166355807195361058466391869394011479013959779814574258921702602098201844849188334569479209954460244195496509638917907279574204120426621099333084689136971129221424995990130017957662100987909653199627372557496409179443602495359341007631264381884810366357994184440191764569288689629176194144551329452682895103140141403627795810261641658605989024774289065194786167264395871829971775089202583661089114443630548585292173594036667457979128200027095921140756326747008647562715920278237568841929107919561933053113720724211551690205406193897962466893782487379830845784313655795223930923779612304876134347278257623003709374331099616075250247848631435153185955860165914933980201396005346478915632210945002918727795001254725125398749495405004205835726589680961992055375751706673178321262438187366765393455960234600164215266281549299999183682971056484282992708083259593129832183960867430170015447956472449904891166911018573811029007809396896006570171667461631385103655399605286446513748095018027424441639610428193309965734613225402020305567593434265041877467231672757006604513981119382963887052106149660561424464395078014407792577246458742019629860265520627673527669540850577249049142108233139782783600261428788835626310134635057456162449536878448920201808266204971651744293236583416327429046193521502329598738575300485448665719652760352607784571421171364995367892757462605588815868606007107374144399848731122885522645804590389201189831110732471559867741184355527026327753365639062255870188114699721965147799013671904945752547011092836425165480602592009455723226159513715624269354525784634405002927275021092415299815496970865654217735726562674128972452276064709182131728985991609383413849229485491846276540312353965706111336326716249159358519572724186027988212203966400408773948105174069961221938536905124793933718245410955053024826957693944154320566247876612589586223203457351777821382809040004681361943877867943702554847132049180699245542192669487513458581662201239315993834005428678646566528573505942138387511488176283822483635715929644618364390236678882269031886517358005393363323163291887130454958970027577925052041016277429638174391970566709645313621263394095486378607671115220874454841016605967486446879803624454127251397732826429697143913554694409743016022903959322272584704990608288574134763532229212213149461560722360199669727989335109259048291815757942451819574506534832138084734209238005976632614144313081184689292715127720482827760436640186926761090902035095710301036406152525263315628019883733850164229903294981475721261345353589019870188988656137705113715810439398415183987412366827106482509918059460116618896112545693176047377290503844934647627214971430655162103339999611638411923724098371663386788410867561270320828360116522691854188833988089481928979028425959879656384172351883486264085541984575505158492794961701936020997920957036651203306699193266868288490041028351680350991693704486819163249864538652556743104761923738899632992520143462953882668544937580932039459088922159987112624872899630830345403859625002486319835600167256350277042860252316814058755205880220089633127356825468960441813893228457051224270538280028835377628772192278173987088162963568531091750100417531922519514656568673355378591329610437603164091962268216970385429342434572777677881601568479422771491018368545514891987582505587813919037219538714040184038256891220394811101365049375123079983251936740819590322011190147145385431406446679699674638059563507025175488246223700463469361474241204135333256012208578149267290950366488212104081105638078851354605887535346509620468502918041729223776348424470175756214921768434193083324792299241534694456856222129649818668231298482195605337743720255409744941743795452565453168868204111463698282653530810910456709145548680322125124467406874587080273913982120505600193692011551845977791001867896940615454202554301033449472149292994366216873687065162833317113309229357645014907096460882438063953052294298983993852389110091782636057134718197710774289242476300236600407048901228280583745432035024172979095674812413938379002162633085536237943341870325325165883328410154869362434104702463275424202232754344518057001161006132068823909139928805897821632961064409725995470767629255984539442829910464999497231728608423963151610424666862840256912812926766722173097259915379002832360450043918807475614844373686366976801472654224892787900735103316244339415136969280016051803727559410390584144086079769244504363699165948279710476548233624929155215301849698205080784456106877842093987295907912616994640938892980752593702983224489863248370831133773439073603349456451761124983705923722901221289710800388071537160953957091005518844689894532570272812862277133342490001504379697464267865022559567747830746904713772917079826499612001272314633714033138351100038157274695691829136341726702669751701881276610156941799286828056907672209103776173749534036319376281806689411251214949894501205611430877625790391098611480772239322228279472810804790962966137357403011430149524909997234308602577924295006118249292090069926326066861116035969454749740265780166218748406798564856031681617945926572521945024339613012503262494442201712738515580652533223505345033393431890780846959332785675971510416995790199793262747528001559917633636603761579025671425974408885080522657854540959238987969205111766743288576532511150692804615955815510730658361924012495574219885307635643020391598751706287585314704492125494184109813263057182888519414620105891427536547927918407442581497843852072328233849840124285659910014354210118507397451339094203837465671700020911358757144095975887711955381599434380044772263149811209157139767312675796219664011261693194966714890456315233576889590777003089437534174197730951963820538214970268289694738693021604052450178184683499513433377979475589754114462640636150687608574244875478804732163169067092726636064339043829904137199795947624803369730096765140670114647808413032404201253138219322835526686960820658292958482615932964013580633293004870875908156812105709943118828794081610869134990436200396026392075782954266934786472038543564383010871693032170461720922351452841866997664969597384514130952122822607895865695606895131792625148975243585728410759847446105819861321092060926067729929859328445393097280401668641757912717227632713441698946560229183950367536481426063281796329920976612377837221144925707376664853398816766240092004474272783170883794777806604937095971652609681902753838247038611641747122173734613657305119707862432540752767423176653704603703259170615402807542411130727227911492759585483281595705094730204991375436173264677548676072756723424354006771738574450475389523599202085093131662644194819207275672158503135365019092185515704177012284385928067389089332876168985218226386669801089252640102971124828712578504804425514744073692816255783953618045632632528918183591597356220636588460483156192598513136884947053213263094072177275627786910608193513361577850022359999433107364174912940822318892563814681759664365967872277064010970760311828006477497173646042044018568060514581849643931488399456873158773669701817133654850661017287815227469758745843041495642589276009274361042716526127874514233327716716576571567783351479887654628518830241469085201701074998505347628301775570594841636213597290179968241770914226840770133085044965824352480669976975097355822886026136460367429515810126937063669414188837329465256596451983810036920867698514216794295912150426655598510056974904546220579349508534223799032421800557209441808806491232827445129534267862853818519812126434446236700510401036714579157649799314234414838312347546087577348454029080543764924295751526433556269539921998390951756327550908911815187485119486475756051000555652232947809059613577947838975957244907634567192011363266986010572156547547754204349440879851725171999400325636538507306072400156973624440544347628127886295487546918926891873579185220444399836406422958712631446714117530021053565930530947737118075831947759326576042944240588216459808114849922243584879740987274185641312011337922667539567773576965017125370598406127566384423589883580205263640112763466452744329188616765274761682788257130250358206120711485164126408062215005336263291953213968307898281567799031417210521837619393632882606199334179054708302911943329961309988880994757196496450359393782243993803430359054722346708528141690171818516576140862829175723596951065828007861125882287679866641454705382012498981464506710544864621613562475495727673396287869396736382454506980499460814109008721027490322281015707874915098130462377324426973950410751185380447118214946884120888167957566945953308920070484575941123795704870446379299003645886781466589532632031973504654135495567643224273304891859603922954049395733259828477190938786940190134575890845105386711640671487787794401361180592026983592851659629483378066323958685603296635434612479832355222166057645885110102247413914328469384662424032429721307440318607712908934844805927694514955825902826144241666598334662910100596599799785901432261880012499324368703343900255740587761264478853193869751624132236021459173246633541230600457707797786427259672017755813253738211503839979132658709338027353547601958145154465230371856042616725002521747759065232091778911050773230711544686922498242258453066452926235369647491923825388115448684928238371396620256901969201161002545137725585568695656765786831361125958747934931289140554778482004625280645899880816458882083537428909913352233144535765572506685883262045563282540840571281054659386418771230628155087073038692790713049474434995103249143366415526770746301914611364410197640556007117331231614679709283275197966309413955207663764594274564674392529372854411788831643324516969744508730311523533155101773681789672352058133361729964217149818675603509154453700693883780489633555360518152313515654179138714646125161436812299631266260038116710219820467079252980318661569693948362498550494315376889394849358903845102691862640387039500161990990619294877961859200597035891089887242647463816205610780437586850189105417852792387478071733597813755615134167936925093060163823999788214395335044328729538277529794108315314637560009929307187382216047509313689583205524558889199677803849968096674984824548157591358792639144798598602051565606574014916540416547220884858756350304836578092600305392053029905037562696518012839920002769846739097306391906563057689051671148536803260889687547984190151124643986148364448363618035510410122535796179692444524315812210973182399039857350145801712940110382582742019324218476537486821795345426223176037096845160524258988215026333677457552786158097860526695509824201450480147462290190382278609719710872096164395399554868318912574263875941935780464334602976714095360899878492483949710030321914711861339574686180896614693960785282314886117029286252503123118596598443424159548681479886890667364530933722279679364046518805557341550582365738194733046735296045917582644300004496008143381541684285303446111137846022062969758599835479865379585990152920486538729597965769570436546118079908653916599563794215329106857500231804355291393132884072819540835083041277542417465420244298818284333449124097505670081485777214527967284905838144387259695769010711084355827224516377276678998340071906082388625376477498251223592979178321826997268647655406579234139361103824594737473718196811049201246908956487576187003880301358494354898104458370357098467186277110985847786271086397128651867372264530507415330258244900218340299313477807056252912595823041509088643129881651386781752126676027580603262161529882511255441762821536408418153190230754944120269717296601079945573296432841563552774564607524163076947951837849209502491277542530368396275349436117913068744626794003349239597694252287966967502594828873773284862626430904442703895111174780674128689887396114214183678628053668465646171265833608103990148008290050226256935358296304282575695069044442697848692509489763709150802718840107759307883866127773394699226644703358465909912250769589282680975554266520855888586586213666533253454078074507557798982137850478486973838384966761817645373160029216488436565041628699888955246737657745948314916726194204537241128477359817824617918478509317236459677101022950279845800538297768321691144112626971123117872376649127091384768919113466595110596276703896109586588836455992084650896055251079114704771860667402965689108170242615932397228385224843650567545799493973206600442993224784722999367312685880602009565808030329561424665207915441889253451982974216399745383315442841939929172690846042435200606728699627681963554748573258061612316285190811093942597075855952199059601457929692252936225871311960076036065218702937590615939104856711484130270332705342983784374741915099716596505581463419132040270858970475649242014129077932647688451708220038255214817732844609977046300622567884746454098850566015385656244031476010122474885279907155057803556250301406441458052171125086242623413663831621075135557141646909005592915839801427286525366449071535753670590466283002837007907366420080636921732527133484132811831879471648612011862826178768480787023431710649053737107851154574293023044855496871327937492742031361052660004274593162570727250507480119612391386577278234873195497867258549912631685771804302534363867386659245082487713516235221888066166739823866434089370981713099592784764358845235298984400229993142170645595868703678502338870532405552128610756507557599240195201880431727547233496283555794013181260166274780642918894144270200207707503107948648639565850432777501314898796997448050876258383127899636931081144541710357797790892152702047533592528627901221514609405005058940898390142079983305914209995781721880912334718359323866040551023932949832129012623966557452227577759292064150999946595492368558722511281872150999531823102345630226523013510657421553946100786685653193293245440934933870873580437749751996945619611667795031554326692436065480283268755416801054750245584745194246126948913991198573411013926889974462464057074716988311184701961710281268373324296200572649245766433745909669173917898254138890556708634248848646744394609674049519865967148168512269983755137539824606395423303250891946012283047103994282136945631302847515457759925078349168763051397974754112588016310371461434855270371780219614725201059525250125611628386916279088244251844899079496608201483331949879602738998104885027407597015047381547279388559342360900582392002105615494253225354852326629924283732532531712987898651243694585177493520348500537773420674439202086768180560803926747942216168616190011990331411682885414703128376549399840752681334183724877030375644295551747863703453645586116824911078145633293039372034239656548871562664029141759899873583543117580977064914755701770773169797676099107454677944716944075350757554170470787083909816716944539545694765323954436865270430009825270154444808007264568219990110484785975864819387841619152681049063515304096119202229993817665306312301318512860120017430240643265096310759435209769930030172216551444331497741906650567238686597801992512985922977584894743123727039384754103387406174994366655195987022345002337031515150651963136420233068902369816035326247927030861041283898656394633720665619335105915938589635029300151757082150273595739752040186325735402545651011147405535536522500859890943430002247627808168786585862690473056338417227021367342439128064570978439940490331268267711478385745732721936458099105150480437129333167437885530191548264849231883450041947635160617486408365189564024894114075199907403990821146638299366351637160413628116102336106003931721351396818441152568572629985456873426468759602467676536140039025459297696860734277189137135105648022719400294347276983932510818910642875377779765155996339633849078457385988568028058766472315455508766255744725066504607402847999785376083936535489044895234538002831663697820998458080949231075092840463611815945644313487492510843225183878932694777440211358379385025852709068514161454124881803842768284030224865877404095835515694242401212714139693555083637495868754572433871104135876402600800279947981645004339205421494950789995518765125035737500385775524759438587294579244047598957503332246953202722005364980225817624867143355258852497252439902704924727198136804562548204103130025749774284628319780610145591013164757842651949328917750026355651754716027160746038177868416156597267704798175644513572992188613936778139294417288805427275669925370428793084409482670988028855553412799447944216289327402843968919721200773208898931908386203069556944153640077389845011607576726232043406604319899284731033101158580770733000710626235969841321659875799787038217991773239186751066665108037759934216299960791387702501884905061771326674727650982408385716149705584629814352004244575608536253535335219824140547120121749179461748464185075003074416448887322687061295156877923326138085225986895849721445872891714108653523377211216576444307001412046171765569974168228927752024553739087925475059511631528780186705857916308318987953619213424598052929256315942736698502659638918000656304700049311691519300071359132310150607990393262492920490174114604332859539143985070138618972144794740218696059576772987427564240389814233716137545200995269498243629394815089820088583670989711957454737586084205367547669499322510761165315926016822297088979009048021985971053650861762585588572052962836624822044012097599500403276264163655802388541485301810904969620372824629146549010296312033398447185272064500153828183028279979113247547580394146174276595899487190569476801804639382119215587852126301979142883482806313919066855355196513002075947287818472524438938048969226343213673996587540658469001870433810289793780267723623471406752301678057135861724468776938256404381921759210306628334586626717972715232886300147917569972577463470166334918663573744732186256587718692025565184065210240390811385704513062315717811342648443060493412513128906342947336161086888241312963561545267793564192552993680906899882683432800322793666039146622509927389679831267006661222050118084239770057879544251895415849429952391384613038832953563508459129853336798939295710855773776097268489126570523007965897830753969801427698822051532026070518563998010655045941587226293797256958869313605772281998695397590618185535852594409077849481328499750003492031354134513796547607650059774781761471183656584770711851833636939016233485908640764930720219581271967983964968285351694976447386203802420672342888327226009454964524506721009162305103391000876322824393689544617253114758878589334595305772186857739103704113881951689324976145812416477917505365425267536822978919126177466977843059805776083896877531507050979992874242395393334640637189084357865652815434611338950731384608385624207403375183733788589786628535698250772149391009057850547639046957823915093772720610045850514111033862124419247656887617139157246016949231003232527707936167621013199878515197626636338471199110838529090828416952224729635817660426603962380074596391612990256480980776577381346412307068350840812865552815945853090029174049014382638678823340391676159245661093031354653743220549141326430339244909181038070808825256245502003640841017879152727395728394814443168710626850639666792894743277074265361884181029912092742278451920660797002075343663367782367714256458619158459048964887666750904627108223000009742306198320182044290440544191042443458481083909694654457700509707274990309248631685235838810795988341224531380762998847491128978639480886578475724950474738839320755070875574296688328071055420186575648532332705710467825579520638995428731128772311450658764665875713125925022827581577774733099415053266415548042875444396471614129802624269237742229591615892642824612397217916398238058426785679567161395027975082785116603026509986218182108559580036576027402322227405989514004205010355624698121053200783499486949255435438377073584133676779581813135515976557597543597334925107849431458117321101963833967908393929540957273302553013210651702656232563978828391165301181176818091203156467424952455166655798883714939295279306628289581407696282276347244978070368899427981275185425605725106801539758620565688758363163868827092498271488641131557960278085649060927883794528137273911848265093793772424281653463392097757781006689996323326982868311832911654237384647841699743853431727919045044125753025248836513113600750450843264486635938961177746741681922217303887716536161457934264371953265735054546772146845492218038252723800186581776866779022864112761293475426610351130433798445892838415460743099354533579602150677174349473143620587941817326837236014534617241534789408208465044301971508232457791181960660482136355200063194723880003852428071697503424415297638874921365560307210709229542318829771326658179200912908541725786630644102290886512003961176355024607343860106798763236699220306960982173717216243238749093496911887353188387934997426426767617976790177576844209601712116850050592717585077200645575806363219868015285094220530638592655563097729760291966211464154404870487921773345157353254576330811966040957921570243410026647743339613409369756731401657853491666947566458560399920780008540722321931404594721057627417308763976448164290089828819405739294561128715709744970261390163518753789412123613300420097082686138387251527998910416668541776169403386284636359202653545011895274321544937447957029920848279678434345605411810233435057076354343506521616643841691377424230389055403890873837451079165720232692874154763301218955348631403775268353612980914400719868153339712174536498928603321968376417922524692497708934998947779504649681515296624370687277741709838648957491943834067744336512098060644095269189981343547953855528810396991545508871720170491724793755584212117247725540226961050304540112406735308349811093893271549267733355394203729141285319899301251962409514351134930501575446418778098261775373613762433592913164529377101815371201108892560295416478281034070571337248041236091526716031836722634947511337401075125604588524350573219755372821872418939669243365596150418390452019041392946308953724995021551947140514050439758322178900406064555034400553407295000612247085192444018632351860471101183744487156824738757212153034067697278480058498258648221509491723509185377150601130441307712410360279463211754155263643750492951721052445712079028532771877777366370335550303880387223477187271696821183618976841322986917834530420158598257992464858649297788142999643054124285046684717770372405794326866197940079799112410030502599977164717097911328121060969052648545295929574890956719008746387765418076408225451772423109258704822205805668742847693000110031843892777750859984882461183038466336638973490796926568195474316534066202204840268698448794889087752922640641650765308901162413386616406579702628930904216698714063326451603625038980820655892385761990243303494881471580059908648407045608401253561905521218062748236077771781684727546297481525072410725719079476347317077759274402357377467585773366986116120797148506321816985298681892062879615545750403035698498783895186657351464545352948019406492551254104084845884940816336443285006866137883690662923441017096390998118126126185550979322444315936977806201869055848865058052022842503856465460244142786463959609350438558152326051159215146317958497090406111706172046529516652087626355255314657429138359278651656845918087205491222524394010737266247022882466488878722233502025931398617969859267531243231140788883688409622407805061642971804400677238490262035627517045926641909134585125972246368243920775130300328226542832882963555787661113118806713564898854835840172223053385459886971495460983207010960492449410082791333444946415488619706585814815285649133124962957200704169443812394435101603649510545132213426984479434707004188832506186540222304501848937001690651273325709978834732764515233296718123196195443473005359833965096271991452230735792294913625554961422015268303715479293158889593477482117484515275969432501660040759937932201203080568749136876083239676596995455468936294227719252780872720546655946390841138699318831776200705462799960539414736058291889181980140634153033447431893431061738538443580230006520152249011394734677356006241416011738504201625243438572034098486299220457779523574854847772941175555151948228106725104345518960936265238682927402785598441794397654072757900480954589434301419415025370481369978774361332877427557808146977236205983341819017744248292109764302186117481873360508455500063487706070757013656555461388638229363602287380655733433126716515117105369950433695618701029675341283100854892959669323557891605068182152522556373295168674587272942625807160364416858536142213295075684557115295135318179983966324134649345581955743805424752901920686820858343513394204277713009670797279727455586599548449336674752979299990404592293566393842161789347038435842555462865428734330569702901334165335781007850236244128987031450186182738475728019780773319172497075991583680362472283656861479301841098034429340215114203931959899975989973819155423663166287981183722969572176531361135807092310337899870823754134852288583897069083710148359441624848441926825546427274103956318216841753442826040726537116157171603120313405221504686459128533707840039208198891282540269021502488956146223255271713818861865350685764720016779027556004152856948425376836984291850481823462690544739999522904896796544000849563997616754502004212653974995704321307207149952348190287911995159540147897041815478221872145002181182100338172152405851885989060794616730295017613794778539553503194988523522680353042713829239819118080183780455180119977117600094842927847554539702551946992518319130814520135684758449304860540315746441209361394743602344574031274190222069852919519911167569034780955018679934893103385469195681735309011817126691533726294530757772683276839778875757058263555442556813767750135840387816840615452035676928020204028172007284465432100901821723915962040736201845837609988959890498792744080260206064931339593850373407347186934633162689134764566407533878409317951278081572156576311457933093660680302027349803789629137891643403846522178217728907321045100639602674612848552028231893781744254713393296005794438390489486386782801209562324253927100351932560233472566187117109881168563510684983361856529867455250202295696571989789700493190941771753638913394843129157034590244894926202264911204906837588331395330465312114580747254009824145264012731214856625193944282824481007835560888403095566766036842038181361119473357020317887506949083146470780560387361992351318899146796171440719547071346814094626547527849389663913434466153068645572420209470029508344984700785157044751942573851503265977290458186523789049627254024479830195701657413773083587714647323284707718812245855151449301396448547666592631467721059510259851029150954293599998970337298601021476944400489254622418519257453487496534185429777570098892589485103214937871076954003525949953375108520426627244490122319432185988460962424043743864099994240114469721269953698643205016948199811287263441135029849195388129945547902941407344993429791770300471632729312090671997940580253097827451136198632263385619044039211320029403179620457758871339683005649681787196785079680713473865163021921521178815136824605989070076338103779186169123530576125803505059043286630764254655822465076395474165278867037163697669806824428832912343387291486146263120728394375163534261168227709618302856112606725357410283565428316533537395583601382696281084276839493410895240766435877445963311436705150487709684572018766525629218376577695746077809050090049242624898904797390479744663702849203201287254342165136061972223169660833799883830629755056042661456947579290173341581654104943133217868979090839977594998307704235664333224970712642239739440895783816832689273960997068628200235889741980389688697236516308244411019014300613617181732986410222296870439615886905912993641043711971205254658198176972186550984307650953622051821661366883447558576450739741086854128593244113312490932647912246076118806511644343670810016777467089925443942549852031861562818910614792940073063852605159969840018057381644500345949252609611138671061011105246114885199143527988002097364633075049682634308360077024443071047081590734890990466212936773014957944053275425042397576000035076653157387862478573910811661687558062923686632328640962167046406454573235470288741913316391295408370672729765484445041083110168463129162765616701826356811112685405476102599405831578098424588963883674503962437942468227184151942321443993370017775401889131759585518030355570362588719650545538689742424113262241606066892073021927467835696025417695921545778704329408576496917258975063157222931949373519679383067498705768427733698614578627113482611445769231768790039563832954854850720039064592117135428800257572856849866653017950800346076909941186800513651132158129200521212371910033958647513251300996940545040222700558353060289372871139041345586267798539908848463592985841356044112280660437063482520586323669948283498218875933077826120706473292072132893745559292759332244149104512687920568984492736795885369125340793094868759439408942188921596892560217794637980866209059196694789441431496846607195426043189288201150077410200564642663630344885757237435441424161283444315970753749878984959451892523046873373529045265652628536847212003508621460743926985154886886140007866312813819161849304877418192177245419273089880840767948605290892251079592250296125466596429182207415608335198555304474615453001315217591086604712754118419684498395258886225146472857270769251138527769098725311668357717889611582592104198663021020509120616286735700584551442341128760769265496213751989095694663625413637291764555436154643838452555268671930903388723702639777054518435534890872473739518580459835057196175559805706856107786903254920363541719915890872980789266933420115806816214028154794083330285132904370215431823901356951202452465368599237357909751483699816008096890146123192300026241708480452508950059956259059919253546361374029438712730543065383844449550383861764743242145294375477275562001942551064317627496125184620143466996132417288611140496042416752053030889658391411163987594944697916117507150200499089551061301104312484475329592422711619859578756855911781139496983135189922002862173782374535526659257831954207461312865125546761380605327274792181080077709683772594560006301619610550904881177683853201691462496709536529742065076097225371717134520611689942981491556042417710610977388105599357919100218642323845600550392171107330770400907908505703415165766009084486971245910337377904024659355164550931115537805642376913135634912994206569793432521403040311258934875114173964469174996392283181064805561711484969809059194137027759412201292675884454601660300968755192750110072597776734893734987744788390926270126367139394066205877902565397449271996946258929442406041101790252408632780360392232750073894606835004032565554714417355453866134364951436626255578519590875306158640081751315398743097986905842900318108378958032748687330021001877006798045777383510323472770368939323187612950314571446873334612057362995046181352859185859670830876232893176134374399553996247218865520127302049003160223353264682469945840192593750420822703264305234405073577904662322339975214293113301901936306788172143776593755261171597551441070080081136127556222765192255384346439977592392817055127166341608989517741729426807553930865491035850752636147052390954602735451482212471189825771004218823493423911976357313813532009299075669030317687298641882635007835109526054520226845173326764614183546234032582805414713686786793252239917341609360040689327290559821921503142303283702964998249421757904176965591852916613930176659753616857221402307961442603395813426319045361864337469748192790405467113016262231169430073844057512728849412237072168141415044531410438254359489560269860278234803940256984035692328732165681883368022580479409791808136899243448485568616901294795584526090218242916607053960405956160389436375937567119990501949165770297893020364413924098952642985830126598028082236674932916291044360732050425745307789267359569330650887090795326660828600287099308254456601325748661661418472119863798288005883201794285926274841680537462058671428474880100222560922728785424437153271246128209330939543951559600621778070873387320146085854100291487953975227711675334646834343056181052155321170348387787808508397446063649942614297677687858336983691318890121220280322155407255077889256660253046060048561018407869930501313221788288129981792109426523658955332089681954939607298678038957127630739145491074290317280964807976515712098775303533170732723760205383042806923331556627900151851413218377382705001474048541185726629081228487256006658295895710694204635846085951606874055818478920852931942835475657965976972952339908177619478120294617413897722219917094112053196886947358958940172924870597706412599084732335514823724602117189361062755029250784384337738874495423090233690572958216617086376054008327259449819600739337133307884482889721454109353291336835038605768524316931594676417456544066580324847350372518031740019092586353157695310337185188346526085105172005147331402436796944804804025159150549678054059585466309443326018722221720845627341837633095217089013732632963992615474790732990219198250608400775781672379868773100974578531468184186343962142687619402387799226823773560619106901769272548010028701035946504650454263551079696799773431035788600248146930838728734583133449143527121608936020496588658624058469942822130452781764176368752091834218080789016031830234042835316466138463454604930084966312562126667836622607170847590956404036759907033527283451381476701335958955261985854719449230366117123405616162158210622414148316253607325299502281066346897022465517253969283692088106315711012555224294395232607055438212834362002451928322363766908277587112966939158099696370110851691239231756328721803266267001892754063229722061257716126182808386332921483154231437141648609289706158512995059875237320882641539061136684337332793864456208708887358255388035677078381339941749410479906029282408430068037121911645506067673453911392384169208920232584403323772398549809909215589540959447048609446733710562851002368906321941790029385148594397814557103242873111787184322711422039270372725457157739626906564675097422008264630447074780825538369362446365151420130863406936550325765179138181317948360054207977067367893419679832274491214627132914383532644537963340030909224128085132263625052251359199947279601024474095465659033332565443370162337149984628256692967162579552060768274478079160780025000917701290418854065490355973388814448170285316508771328091881565810681772373790606262079350083870330377832833217522430887204630667609700321816872672273944201775870927404394148359752356586597407857443900028214931493565530788922003877840477902010585654216373297955187051732524612155216103885473797232514245486228035568245876445503963631604534227059756895009311231739993055387328123697806313363778124557411358704862929239230565333291012600439513309201112352750820923224952741661820170132470540925154583315555636413879786225856201548190873339587277046623997023561240223514281031149302734972973098896991812470929306907861345595839998836173240755443078128235259632508868205010410173152512724325884637164625262210445199533946005383033228111978213623318365515266026167207086140151109585068014587838832356974176216854582993157094232779436068506462094229771298406483721620825334881313737347688546886841711647774292960489998617832917568056128813858739618609500491508882322789088461266855473429781663125711832270661283589222578786110840176493296994965685772942224896913829418376452578104611911937899412890951118944342644641525100677434845357818902578041464655732392831364859063084267109850733319825331557491219556924595696783765263113363922460491815956511289864415595272048414558928892806515205199874104081519877135239561971786338690497559972887382093505829684258588730489984722074095774648633310023592716066981039834730165238579711173217284661346184909569989252116674663600420914963860239583828706554019441087271786007046522819116436295061883028274408494537301040837644430217346298894910845432083236344183938579509107719957286594629762959991808782244882783734402757105752614322085627367375502218624484894051863738606651413561209342363492617618483815649135184145744365909277741913163707646718036688443802098655010035181597556374478839442919832689492606449018459396394816358269755608189727750674904858244168460567852596191915943683745531763762116526556580011301562314398471986598787078756633331833436001993805764098050041857965463884696055363314899910287225829335481810542632324880117967623896453034433082246092855960530627178120204237996127486255515275333059670741951601821929447428456651745685859032236855867169049477794781421571994591206224025951671261624857893618649645468956601503844721908991270591906581314622934980011259889144568987879671966193444974390626126342501352269344214045409402061223531520637549922413414444959886388910117371614412189222400785806734429445078373354020491307905897698460935019667182640324469477304669681330262609051422201275191338076951593675973874312156607127888401924805059804978081277932105388902069575180664571224435349441985878428222530778155583260476409930617803605796928919531597000949432687948623976455278892977519798771406572817095371094403657393129023035875039258898042471290076671559275467374142970685775519151572897865520399998869132528469749982944429141961333871475038307735358702201048798655536573024834667546072037505398746052758977750943528844072677276517319103063403479988393438575791758963513772260855237031014245863841326950524744458708635249343139248877329139382441995729189537965972465320607683196915387702821543389849908700876235897877205861996945872660877461732385915402993217292153812579034177094269091027237985718447410160616384596833508266423556692473962422545972193539942005342905961700000930416134879715490009037028496410556519469986907346611319333345769245545540004478403895483105761163212462927821953416230688068101491626314533571757801538903612288131766815198272591079709065713382830709823643011523843375646479254880037938639960753580828646358203671316113920284146800516300193683834372176342047068526874928701057735111541607212862300775439015580676940989573926447021118983883029428469033520569872071743145459534913831737616021217719768094568805780203248489059646000759377521917591552737850549830499511966616114902240699294269230846536271379271456153209471177834595800828114428247164626787891348700897765038585324935779058526630034050959757002846449934748173966695506386780551920963600076421095100800771294354186159463153156370192546312243153031123824285513810567769696422849515687191510822948102044552753310093332434839295815711785020998769296608325267061039860661462106726123013876451363625810070684112857129715192227380692624138885586661952687412391591122330147871222023047253747499919650376950900487058584536946077487060979386925615507452102616078985013151901484657474395709009966042895462942651218786664107486140220537629858509134096631957126562756479168616843130639699044225664372579528877474147987601873574627503061064858043869840810768183231063914367788704114102655872010777055734667205464293935661350778236545770278846843804581755947682953505295989994242218656818169967294778004331052508323292606452185567255905133354932987919279410438127432083088015433246649623761543243711017202042570467079499797245074521074942430406121679558381687552652726322068799539781341844813032166115047217542545870766116531183457251526443020744658023672579916267813302521170168481809705840963281139570655027987338538127085401275898897108583390813999827283972303283805095467378208586379681358127439521807988202654628598662032262794181990570511399196741246182448021327996840289122421215440224836886787588188108033678774453930305473920168056892444232288194444424352777887878620766437946852327832518799066982176501592859502806697192548688274962892828129671790396277769180749057731252743690479984658013329793557317778905690282737659131263537834548524163049852448977049823225715032866295949774669057945295975424887133737259952816707440073305521171171353503636310145765255223419194549030501778020904855407769855748758902568765671106455466259166736147195731364538544901932691434582765900736108080455522807853330352956843906119443665474898927121580539922610562884312605621267838345087302086971309437918501016647978658445976890057378467489564450919970143628443670559857260688415871534985919559826026745688277278633052055828966109467667437948424234351154996915112543770114401117312638552911248366355081334780269274031474818572641532048221489356133859252090807538079875905889119842919726352165043858602011624165966475896698597594757965173950245356501947125553100896673395172286759855172815685028600930238034761435278915797742233108538868032320509977869617061679257768448832960518018335018410363476706690195799552654556367058294678349213091794380086182300442889088748398069110817775212826958484965400548664873973696842976308451023199833625476073354408636662436826788715147306638582936890519112921271142454905000087588267018164570324582844916439950545447121562473639800837085457842986854280017780223694196419154506240812175218448017486048751060105772918293399784012079002567477103859636242903402624228033514522686934722175891988996197179132503470210143137384476750488777830681725195327390274965391057022908189507240501781340184278864804510233115988206637763297592876184320883133187462151910392647898348960456327724131191032165598889465904341706067759883282565333384867885818790204609564714146680098810003689982257107914943825448725574588873085295116855581062207281046213848359330193412380022125239294159628172599122825820731321260543211457388134601248509158774810184612977952333356589478043711010153548119999359749100873542249659795207859697511295808858356371036694369476253829683910721617541866779896092721143624995425276191150672645468471306800561467189839935352907121276086212326400203690630329131644830400053685164485902879324582539320729971177612200580015623161259362734914492690018781440107055354283273268016107830562553881227207343176616455277752975527138046389132875781359197234680617474847644252276478267206370518974407408944628855476263834846956329643408560431326228464931395030157236454727510278316557180588031421907634269084354566132982227502890964575830659122833296846499355089420680533079165631726258946325987963224449940192059762916170697315108037551309160897084043306772833149019387708073467150656293331968639756528716381579042488339916528882623100830575322984969359643192237167746213489674263239802036124815017328752136896843300773884213390589945851589657095576764691312910990321456658582707703937694193940173674238302966454574433654738996179367116043759184327789059062398894266866066208594463677571609990892631127458386054854401716777270747933414569628282532514182957719852149965409110667338085551002842505377625199066058491945832608108243489464260848052518794926158274263624175005914440857160774023187144719219814227700286576869997636891264984676859154076168915113745347018275825951925984467262381834933952053072848334101646224067077889429533870998233673280937181136729452760086212942607822224315102199337422515751537544647132782589673978434084835408089811858444725180252388668197915231834484378945487381090036181882740547263973089116221008792288828131507954708527386111352935658487438725341051464398541765861652044126650492726045401220058650214083606057275429788849566287004139052779070808442311177221216476160135172486268913920632816574063656684391530994397448956078805344014928768283462254921969731026169169031263554542684501218353416927831326652369716677469897031822097247205044422126260363455297833448800110257494270268323969318736838876494990107621492937091973214713698649127127958977215944145666320415968644244472004816746978158550142614286566012688837727993707389140999168478123284315359678746135835775369649349175904129730611521212199170109879879434337925015638588186099083835775232263599532055344969382152169393562673317186935497316031529008242896529336883415823543450811745747418792829122325847414325655621992375327909869272724931274156454506347299755903703631459402568017608413304156576474901968654451252741898422863858746239780113134438969785989515773344151698038532702597524171952112074118190602636349984182606210545643696353011756824336276329308403891871078157902350294589492920533082686841467438727218288681662921790419230262606969852725632778084780759560731571865157581765290114733431695683281741355713801177960716942525694398642517333943698392813670374761987297811440311767332476253860059168550400073568069261860574686161125730332437946915756255132011833811164327105688498637677748418322123711359897433640763562119848095619659649292037682750339739378805956364338435045236917893389316857562624608256095681740566021073532076609903037028269368695796736544959107868768981100279898976241698105804156644924466394325016264544522927998380705062296888525513745941425447499224541364162843905484234395364274770024454746472002093673428603109598180304392507749129258786933166035613768400524825884626769725056540998856453205773071075982327459870104918999455967884877953811291927182427306249558431823736483339884401364211929815779437832998318396837826003665662218103704678142679695340233148270013893374099998977703627765003204661993479469429826197497431345977250795760644440932242606360130284106577255717915113303104037033672628151120250799576215397108876885667794801010235866971414827243338112374450635472204997617875894744779505454829489564111515778393225806717686573857336734780766998890829631106721226053154470857213534199573884229225627742999793651283695195426059583756186730555531707454425494630744881016413098568159949942903512595635620884680583249655970902226088781007831536430695876118850624866404537230243446008959320367021104339858451025755241663530585954229212525623662162676906716098184494912966277966774367741213359794211130955255330306622483159145818362554414234446708311003508561778411946843084075912505463948913139814379399243209675936409701909869071205684853500886895266008761978774558940589863892839752994136000098544672809779945141757635285632107858096534183413986608114372542731206741352769263775621500387209264048485883482002269809815595000076850226126694242818612401626269108648008066559372869502448410996868692008634376039396099977137138169192193697834868560380828591330141712524425851167532774744142972785492170475917113097047990211317108722080722559861647595184695470987838565448489496245302080274509170990169512075046967124720740642216407021069470896701033290796419751033965181368135624560356087447154909423702109855208650665855718855129567186175900165399335204855874600107636220341682745965253570199028674989417996078745568218561677941504427718760058103965946148239088814244853557888637153429999684270684657094022125798311047759700813176873000967064926732125045096846306058294528782310383964792423364343255210800530735602247433991987471399746174474848995961346682379023166514833183804728177663486379177905243660128743425583263964028721147505105600469372449615389867187867358065745752836135477545998819408093171859157451388854645186511103652500080237029679951598302696638391791050377393392573516491632721626446146048153711551818292776933262548580813074590362147915214105905764733906086359257779632178988656428585343404384056216335274069695675936187695100912749480694048318095872545351922356566104367049401867812628209777704283511146789513736554609648482908039172765704616545111276118505231926366343965964068730119178725039612102243970094181656724298271000422376165936228968546867052003586133380370527340860906895058475716289843774982591991944631707830331602646467783891868627914451246313501214729815585655346225260261895154477500536938396048338709416959130144752882223464839332966383421097821266463184559646366739370938768821280257136325400620165781857234656245988550328359056931324730493397806894910522345016586079645639824481434488087060433264335915508950348728588506704276994348601193978510956632956006545564077895710159188338839819432675464699700485086799003935309515747635321063891514749811208682527899625234211203900723982660386890170123963210665147764732359977498581524522821431880499546435353869580643804277259106620423078989254772133533620070801424668639523639649853044029444731031437658333504909651121884471554263558440082918769159999075534916872015040403565145948103651808030309508820131518633885122854919563478461152051370554909589674286232764801174806786384778898939766888794903482043367563091692748652611671023126674662321128752965605782495474238947209087948466737289341302950189972727316273880305452667228682312114488119016055941036592546070861965727865817190262050814239816170840547476063569516869341985432136338876703157298002230245463444329092670583687872614334078761940400377577982648420212619058680724999923944593084302386256078150709100307750780964390930357891299319978126852775409012058229990429294186076411793262937146041912566898862291153255671387924487169634536950550626960698627511749161558346954892852797478486188922228838799727815992066567195994776761538922987711317067515825348419792112182299626018413423628866764757127171280838689771439902390713566436773992392652123146148167167423125939581683699024377044072920773995850269396810504654272002629335982083594854900763699480887955652859929549429391221948849340898593730066362813486844086088346712549766026976854648619677625596422052951128155544267713947607583754508851759833781832731649054712015951954810975921495120672338857896504577443644779708744763729796026564360757442128198885909291897020677725204759494136529050409761373969942739569001628513557472423601634471307013190364363171397097479236497717883721716070664486228355294765771546672209468021137092837786987989151711090531635178028973343710454134049928559328350493187988292576822072940392574144094557135203499575956288846859029671303845583543550388182646050380384975627223031243073394089727385814275052824959906923274527024864336678960832173866221028322848274700370353281227840512142579924030299480660165668582744603697044929808748540270942275640764702768605391031093492933858014340513766820335027259367911746177920557956300817146473052804863094019972213921461649410739087254423882351983637095786016204653839917184123297662281430360661519281136161725045289934839199827094372493818918087415944334991449756434060605671112940194871400505250390227792885204176794517410838640356681224965770639243003786528550219049898389918958244462679318193565369499384009882501193156532955806184123856770422452586801495148912358704154046342869310574552981118522844385885214785897210679760306981792920701149298249021768381276244192395501265696152278376694631554010532782251120354639980777658821283728042427914487825235874418836701957421939759393620748062143802600319676265131505585324488660921143523639535383142148431667917359685804549545011684878243907262962901547679130782543531548931976777302629316607188087809241003469186991735078609639656911088191373414948287858686064323562591815844012102233766648898150968085158301984457005810181680784081974445398584132713522032034902696751545059316388814277491167753231519704012167276119718749344909783739946370252097883881097017957015998621489917116106047432761389633900214455540831636958371648510163363493541070409461293736640998092174454956741484054093038835934277871289556502021727355163369444599420674496193024315414981363999442998933039167607002986467055732997700308562555073983566026439683046949521738855920074508617679673519370455508090806243908695237966809134048413033848585337646087595362249419211178084528869033606131822932514748430933897261752903704881405860759398348021594471200040808730695957578941909543063320199775713512793544004927250182553452314477833812716807328190949401172979212806181743764269121891171467784969928636263004026211593404682709986021277867207456518865859037367779354561042371164431060254824166234252980550508579451561177323632423027113640716869321353349205906650386546032568015985132307934345900339373214844872749046647553607753272443464371764737919372482106348876681136138921056419978947671292965400247093336218949470461610079491694618739697056878105849973545647704025785999991004317805990940243262737485937158696162264204209530941673188934405133941523117772498003452453257718252336554749592959545721649601562871111167766818400864054597345665146732781677494124992580344563636751878882734013441703291785795421559941923960767242434941663932815722915736608874364816530116541498078834612994345764174264334235539728674440642515963323069945588083809979004134139880275472197870802908227092823560867058900967101536480924363785408053448367989034817245268737625122811964246316848816558085449361694380822166956526458423427125839634098642245984240985395373981729276004972399070889731481281468783630807693946092356319558385538241637636336047999402806699864601895463191385700268094226656248249099407399117349351247673519691973057912850890541562373697806820273512486588753049688104296617490235980244107067528207356568870456474837957789942972953915601275716971793660820621697322181211367973805461241423231175240935561216590418259598813898970307183843859661589251020540423154397227905292431624418589803871238464852533915786809611855645295153274963361171466616126187322911511272612062124404298344813477848834986456138122018175217569514635676317740758961989915878121308375909207855851786272323028747655607890028048114072048600873535993568889549084840626330481564392102713293635399223658059140887661116990191098571176628669312218876224545997350278746574424200346635487322336097850163759104635383863030006468484799111487258108035246749749033865735166415139447292041591711396597539244058208971334582743838297515976718112605388105771518663934940659384985790712526660015718685580750074610419090799923842414978856253656324722129770494362325817238696338904675143718268887221150507462228847736765874983374162974735322431901105979260364047164104356842495444621296308076664484748271794396645097762620098507123360985309950006407042910820943148043430057661221946108031229218463093807434596672865904096473352322355337438765465082133650282468365482504062707594364026888414272283587216598143651096074735918044571616764426292039244106445265087830037672256188218608210998125737669456855087123465351069432411803404509221444130210874595420514178312041798948318728252826284330002963736551753948768035662011002116699836637017650632309150099378552875486017401177553870846858752372853703606954979337216966093741308195475346834604992395106468901932161532337073930747149952188342055215546197709003914432686870485754598873587683608120850476292475907759959070342235049691387118998589622706795195691502218285731458512560619547886405501391368344372418960408252322168619070755130180863933761890560933305844392455786855124301403236021354773771804081849394387225218818932295749043676642987504530175342701252242680408999381733802144634646341121221580777786525156784013749104708059476005106167701419642199216377433068868729701929423248388523121586754337337614963709144763177345173814809518672457588991792253145140369413048293037537885818892320054069447618642939036963240655345734989529221474963458834073657611581535025268875309310879942721910765950990450942757169550771511070246415876861193988761475675373641365172069557957552366351979523537860345499919159409405840906372947604688467869481165527414904749207959839984023000700390009147380828914984753481979289095364098463834962785707784794639722198339072126611081093185683246129815657232301838183873583611081644330856249187615542092500891488760008445842906760627910824116608709943469164090527305645930228069660799897937292599138875831443055755629820968244738090793066665489100035625869905914075649155872264147562132484084953160305934274061077397137661797274090058702983220942538455272165570282181811254076500093669546378031138324620500269641504443853370742842464929028570762206993444655627522763682454873225021052703627605714310894149680615354795453770938731234490409634566526436870727673153201552156201573500827715400862848040748648312288940407655668093802512774931652431723255979459583401735299648846204337999519572661862929705138122665286871253653603252967096305260399812082212044969807795902028765444170972968733971380246642927181588812148795613378783344333160601260205030793492327603839736821184956781615650829340624620587796813971525849847709141312898733955121909164062904835192580449972604040192170754161552835950967698407821410783744045235899375774413998653636186853949248426019115118428760536288345024277586466438027839537560985849808359123824348412906769836243102727982176157546674817412066153435156345968020772157013066231806034838579144842086925301094721073826425930108215510017133587324015692038164913870214782623460686999980428639801427183778331820583122893643644221728975376587607324337193929350811943403521254758906713678623801141730669104994608606091105729114599563482403828100783487894352052775090270005603220282437100713741487754862868309460839029221694185008934051621793771396737612426347237380593677217065727477789572703161045364447029224090391816906987002704664220812367304054231149821496043757909038619133533677157573960889233528420776164098550393110695544687914395007821682570535795269617432617548077657646098654955888196440525168484311469522044127283318481910888813028982972476107233279383156311072578418951714269247101168925133124371897281252891670421715363667795590641103087780342547923515651901421700023075603116250564794253798503484878409297728229116976151417350907604925076437157413829316212767558938480881487306922244982525419797718531102519312537020782401264199397822913650010835532486003949019394334403358116855058813832680968587304943089630379545751010933545290411156003720656376774692344740542904243627843491561501807132455912770952695369537967980840639638042219847731161602053570032508451653100762125062745069068789634452169390883213861421420128724408939782522933116688236014676728892072756398249990240453940248541631561190329082605544304351439171952587718085656474837641700647403648311942274504331570824620710009546385484093460732621578901943572474661572846590663560687724859939853275284466585448130064050525491814065488403816134527089890401680326717745389158567691968677433119493744491880663527015158374967981569424212568565084461417486224384209480719236425984546506029443266459992182114662202446616267274115850897343079724351368123351729193509031537277192916415833878172293960199859726977770784255965497752242014746344439929814468200306808687883555496925500845824513924368502727123387237038031869423850465185771085487901838250110542366899548356109831304624760973283484879867471176291636195254267004442748606063637085466790656893604564689473811150426099477190401374825444362467684495934555992049962484249938325492977532256815460642192519315767737167016892815248169174798945859107549382636410567053579713403336769416087569656549667148497016888998572922202466675848507628301260807334319711574473663535977575568213397160577974598478394653906379077639547441132225608638486731300742598571847116703939899791131158086785967762215040331142309080551067914256618416407950076996535830590844968601193787113173007279641765209573449699893137158796230111347018514671544309515083293203354886074482710485940895106500088988242535549759152444468858273582535858752715281592807826126157007048515111967492045809594650727864312008002980655982411415308956448077639771681410682663672199824670288233064446793577036302024036976291096456959715158975936936832225390145906896893469879458698049627942437261062057049526425196203962594342109903913329186835497235794317595364381628673487196407861198114782366452478261289663738035946793872686279975138162444553057202259468342316879087972349141227078711660511649552185924179317655548702434908384190638486322789946719327919085331368237657626313340962024538160196176994529024452279612811817180000744625663986581471348371286988241826627450443823830946972284986664534849630898761663209660095143440630380210651146798052255511343306151840944285820173561246409289223543133456323031744726541418973319412932580840834714880068180327871965708264707793076226467150880922508763986634063940320500745594781224506952374775661823846441116881493768536310002524885683788718917547652153525308654373484610464556006639893047368148309866110439611357287932314212771965156088583615850177349400958594794211325562940795599259814889210380816243971508301364855481650523166766471316018687018204256640887723822607336306207694301122752354126327632463720759807007126499349919492416843588885687123667338494908350847471717512925424478548552748041021225977809948075285486774933530938388773886591226709519380348113587724505546929160713961293486775957323490373214514587503934198761121167265800818036952371840765162995927571353643597088147364644329235505120249320476564963321906607779739487629020195962007587468056846693936262500350235319245292479789274775943937187109412093489772729583087593732675195121956642674649274817746849804525925542940790573946273772786825076530687725243301969209907599659409036005403547233690983188683441015982579625911162057247752015187685945682608468467381281534227688731922823897878214438314397860837223979780743212041324562795093169321003795096870000253086643744508157079106918862535321530859485733165176265220398375935295481329541960678007194150060729205656301910948907409811284877737222986526715143286928146564738637325208600822043218782954764586908166562974895710737806654728007993972911901245684870947876296512818288211505735660651038851578798445375177420960694367906954145909858654224654485552022791330447898244660073046297863175423774003695303542486583063087403858429095209021346560450316298631070621432298037121672281644400458502364662267281685220087641364193933595441427211141398189225352859861364260180153817690494671070706680426001852778249801302674296300437311010120679666529221593731914924234461094168874955451572254960798935347102487675523302281052800910883223086108913097033378254146443480577023631187137977248066111314156090623637352791707339120334007769115160496875623740345212974880990484347665493166760139742864375020861689248111853542865561605578304917233050741342307187951305965297634020815154660697389699406108461637934304650943409907802618520018515421043014188025969124207478736209034797484896916714985266027906634018055182600832600381685841571511244917468100233163620012937217115736172606599703964697320779295922546898110503386253157913569720768847673653188829242238890705207146245253845060383154710035212300437247836310326204039583474018086915864611423266748188992666030871335857198574279210416111768997743173700451692854200860893978412881470539967914172292357992170241437692404148430195103418975528310953949166345732479428943866650052613534182112620051435222089576437104718800584280171096161504646449189535637850557656800218559686927300893144579933503767248741379194739783957468913152297327172147206130222282178256573570973125725468189737414029207330226206351816829663296868238237903636069883840599361337738346626433782059535475793444940176164178601532566285364571614140407251397616571711440581662620918660527856524218722220736351563857754202499809538104876184280350379354343601325571481883074469660383591783884135252769575523364364225837789559830331764840343427614574704421272813076759684948143261332164241367058630160779371513150288710469910291370877156949874911664632475883367853962972844267976398602799441488382224924393363209962882871055166341953151986428001237649990223278106328911018775435074046130801720205792090124139394033821769744650051558550015224050631745191346488487157579320642011348235600931355873077987053886987280873199350890575590251345817363731288291444064579095727125486942461577863284240943215269280994449296609013131713367178546719506866328377355529352124172060880061183214608326109719902125090251646009767764480116250296583152295935201753014264292789576260654142836996799862809636461834105685989573555931205169937166404889568780134988167165676304711287131359019074880603962024212946215276381421040657052289463849718485823266561694074020533508777288012785055260512620094177403008539893570809384428182305225446504309784381332490795996982564152049493808863743853136538676205544184400606323649430671450886464240587472814134177571902853945296163981286449803739178979030837446192757942960043242755590718384127757683082352109621400382165081830670778920657056448069684052824732616584718530343058475344207756981564893559866602577484529677786551729345817286989037021723479279424813600868035139752333229827903194346020244342734888172465228420555058496714292715573010998109168571445401400369967136572521706452490153688672357286864671136823752807076295916036506144088259333147821686794941714627217845331146461890866030016535856830738971487133315952786299507757398890243125758393525235051553777744909927678071510226265698831457675587992916657058235220692779019983257407446926219792845764525367585492372265655525119399717685571382446645873701499042039540274715335397495509403971526805951069503061021745792403750591188403844586862616985756567915672674129455246287417338511499623441033122773918177339032602866011080859912652130642784148336198134893915348317387956695326404456879346622611482265998077882310173610599256817202186386434734422999194870811052882480936871133842713020943341713057708185663349121026704590428528099959234338866222884560548852436932398702656977295472334394998943605194562752329142423801965484672588159412591533171318672847583189684772319118068702581812674684163727396335747523196208323297727970112409057670262674599519770632650786974001259298394731142335742276194929890433390844717907284552614154046662851301457550112146708383138599165155863207237757936822094657087552117978322050067876560538548324207189299741387707799558171176404791361914322705897328940085692141244984274589281868055023085748783831263273845147470088105340775091566960349090601054958155005450155770922009076454703746465564281668408901724476590835163428195245764942889817839177029421516952182641887610693177891510847132511802195993777001308144960263947744892719615418466827211850262396745910366216570706083908397209420550758063909828307030498193099478211301784948586620993765597549542096989431812652808151472474180017240731516308747739078704737656867000633073507522443372661139064574015285470301022281338945017754143639788403189700081882602701141065314382700965434511201964944189790379812428742259709940092223267285892193599316621700297167279877262364917719393888379882509151366589569584862678563275178403313822883047311035864845834742178826226242963003388102726152886172774669957970569663581572979984063073118055396750026516740588808013458346755211468138886493577913935421879859095392938135850707668479880300010717459173367300113387268656007390725886694324429693434652828068288583302508185555715749230013141200710800290255275928536129609278856723630930096550558466834828627855576022260759122937909890689697245877549812366681738573876565974985273538762790118703528576113335046799779802861045516048614457604318787075298292252394714187753310221641412445920734768964022737884041133760315139797895137593183727785727667941941002742578395431926943375399319486848725311929330303762615764217061632928547810637577692646139651286089031874087197654122818564491750913959098842644802396415882892853987091540053987343470028942042341017950525254648931117756093075801615778070077564366860294656256207952694881444099602844851119306861039552556807989100869311135787202673012262486704233712758734881761547774401661204792455196576876649429792977496756678861848153293357783260755061961607948079308301922129011285321052326761129577897535440143016038541164043058883477889104512094927876368841168355077687504512093808066737652154711498973212210292127048575302426007903493351149861840407780807368010426775376481898292344833229594763982547925455744269623971599432302403438688890220607945807522106122051064561965518247467930878200548772847979036735255021203158368959187390870439119179472772524933889434454290979744696890473892539732080994588554254598469526485847972080883738277084719889907330316137597670628679600201130788201896514774514677822957106341848022562108030545872767473521368206640904455229281446002253834817888615916738885525029696586709356855458784975872912311280316964059976998317871747578862847533322064775878619015583796912694822853721580139732817487866863004027507468132686986850419950493855461127945086472305380309698433457459126140965674230115033745472464574400803743115964218469200950450818080805437428608283450450431605640571297796754419049965522781823352052199306797378062578658165508149782691808862679528914802802680938102580857408990508370945505134136498812466681705694588156289001250857398833378552105765221784364101996157916156846359021423217658768699077147878049545615883804118535500829712884648259768323540419041425395827071365099049742561912420429894781273043972987627501591933175735279224202999094838413412641669257457891840403816879055111233332950902022757567738170125892944868197519604651763809199841687272338983548382601116374594936859965915037110923098906848124646573609285170367351803038453276385588767473194726107435950847571010028016022598191535034201915707006005729267141874888610910402423707666963202285416934838922139049251892499354252635072998314080332821797516498396831317607955888611833198454775233555063904824388756787898881265524615375411597592669684790394245001269017263698412443423003927395152022753654542798545478725528534839809960108601777439443448871741752272787997194272210360104891615498924284556158701830600083692693581200902300256771093943451289579391718501393222951326969050744188898507270976114559701780564065192201401961975243104232434824998295063644242042839818005303930131177617252217106810320926418185118104337126606699068724081326347628432768497027421962743664152645828603375646258753113495094538439559365072400973471462524174586849306586401792758109104977633183354133275827726600488355364442989654280673363271781067985529258670309778077979004582051585336799306267335593541283436250050369926150043775302116760164610059089583845599817785997693250862260178948238199355068690429748301063174046557798599419902095689332252001887183404061454329758369311842202750881953019120880088022756473478219254132638594057517228342060405612183759808277472346393873362483455074160138827599581667154492245734426679635574407831571638587059600216774408664814409060245222696812360391440929589931069161338741711290586263127907599957855526880029224363293804729636415669726755945614193087628526427042259572229912868552120956484944962885477715994729660526252104129134278709669233850952410316308974594063940851199701462259724442274551192441645527519164581402178063097082753897366658896900412509641168045789593636681701224060094375653616448893448918738073550367883926218322772033522484377880497155771264332600351152889386716962990416580530518832677326236133868163442577271692868194356821514130406798189297451270696002615180524480474340137399738577576805169012084469370777693028754452794471980029769516270221227608775508124922618109689225980178325060053671321788271357831381876739583676989962911718483492379939816491501593397700355616563336850757542019943187342734354501387182608162051086402403273637191853220927093514358234601226048043585579960211831355885818945797807684680807752995811858800762745964529232578390974652514081620138263543863632984838128455118516195789275628166033348934439640935036058996442429084604516949330598505539043435530094293406428002068304566212922933030002946710638860808024102199276674130807177960543157445868102113277348665839536731241045478911723036358979859728597303259367306874269598625920093077792154304320510333888899519414135796374554577162531039702597483134956488893251888935077930727054104756793283906919450666199275354965381264371897915056839258590971010779652651358553624747022398839684221655450089460404624717967207511508145338249745340501608491986494008280262784271160759701864690249917212646868770064440342335247098435509071703722825821124725484496381460532742103304883744216552812084092693876275883988764827176992048168251893553140729454343875729565081766129502418820813074314591860966957956604302840217802883627222124337809270853585834230397041212327030984973448243256809079685705887741207756407130931145866283140378616364750551476724935066572624703877365852215484915120739891914422950282359726868174147708703349214699691411765984453612088655316172760504523371751968298862650430163659920995325560757403224937739848999613769932067701342509328292521749446558233297474391995034101419527458749227069236100166043664857962634979834546105972130342405102696314024764053970763471574298489108552004445796637845628410259664417880183651165982432961759487095417650291420191725390353227921069662217441171264858993050399190502869727636717394788600816912479915713951780240871083492589308617458141764097865711195360573176652325074531401520766553797764487178023729836804212852618149274106903242364427292256176436123410095310988626349510135805506632577101366938729222761843825623097367629166619408425870326450508958534778372713000532346663706256496286287062335800285216467750347328971055275850105624814677746294380099839582899080257334460284390802354795943144135774751560621077113293084685922633954220927292227680488010376749333287957979820429970763803390979473039010694836774037783090379683841707313059312391269377518023922928155684295423051770433439989009181109788377110825600545028620200665203859150804101863172823432419241604540819770429761658540598940880550130346940825882644148503722238050629362303757042010636127274913317242563983546811050086749928519826684581055783439070805858917680611304917363106327450138673135070486351997026790156042842420108637864858261041893882600656405372776691087296012433552213904530108503067430028035548811761543646279746393816635071429044877501575933925830360850649661248288464290690785823168623615480151056818272592800200545377322604941447496969293726363032554978308357507702158982367431481602831557728410512628333141636275142416856083094744259553071116494235110877559634148639797982084295814934884807242584265565487615843940212537833190550661868743319422599769799147035825258949663780174296702344769739167834923266138953627076149291864939661358489454135183288218841181431414785634350236448474521243440314180844843518296486906042361367475964670794482353168739964676791550361413118412054221866362693036474510828070898092641036427465416232774054197854655115462836905110800867116911025653664820413731755486583798958061412493131455469860137530540406058747837697189033600282609834907695208128106353920768329452610206852845639627107231983210640763930031601233540817132337651484531547153682346635353224730919309869947868803181875432328512828535854143411011581909016282446937436613973904041158781172742746301587794457453843503299215035313498936925407913019189646626017610523564763880079186765043938279044438247560543875708748928295702540729675445747087423317169946634623366480017225126032954811960838164856222484776972211035265462318081906367588780888566275184485973449362447052705326247499020740734947350851332579771477093166898978181976754392273368610660053333624702584159092259906122604904017301438480628038770422009935451451440012213470517656020278609254031036458159920431039163372049873259379710612174797757915577652613647560907400040535563478969380813296775663458456842747210765707188954809853606213860762562992742284022945528886024536400836964698005818154486320043503283297081969674188922601784859514814944568572813623439513743901524414280373390363139586295733896550396927506020004580859948410500318314699203113651659835292986079483077568461069855130858955173223940565223202267813190768421925208343890668757956394318236211516784847947251358173184812573593463338632808729581296278497317007428183271468545100917156457089796275978959540785269446032611756656602242546731301091234092371963439754486753942988376253437107439492301407708175746232061509033848934179814311322535411645672954113615494415861573555672328780810932464172118787439694908583883570415094863429953066377455216467400406065509600730389525430271605758147353968814658693108755765523320762172588056743700957385203063340131794958234533212285955333839447566793350694738802305944600847687810704251504396009871409737508155677609222548273497288866669251967525989942911749367120431783214012516722152159892936265940999931943589200310669239914593306261216338866806174218360909210401790400577702101876298873008987056198591859325571532770418276272315409490737851965221830427561697281668761656015839045122172312890584043970202076477479146309563059579493978079501796100597150092303819577792642003664317603151586835854327057122367447167524565912623461636349454199171702748787357536791006016533891092927997133358590833810638019103295318066749054354020011365927996939866670775662617696533926278317646781504837437086028506241715620114138606105925977609623875839891982631444556293146867583395954781307359444083363324758172321945108007389588807490806463673391366112841685882444176723312175264669964822899165537072634625320957873840820697552625808313453326352041262346018315222488574018003449490397528754724299725942408147882279052797882238731100432114800222285930155525294147145604431142113439046651802290961648744366569659376782248478150875665930449526268502550995861803434951852871843227935418684482262997210345518670052491342423441517948718478110071784733095103501444797710852900739417165986417906569049084700641216385131899796588115394794041517348917475971859099020963916314326522939531743019874259088543613624258370227638319940650363249262530963644700029552488858132626874898835146195341607960163750525328651569693104441846047137805912688589026703919773686560632630921006408028392437512255591684316098755361895063285743760392907612802231114714719945991903006018727180075044127729407232820554405926611205911677348716765540061394846126799652000929442039921665740073086621501362376014827616104143232206073332953320182959152892413845872511297281096424825992707660498286076885538286748124082841987176834688582317091947848983901838769149234458232465026476782641656262929402270871227923401449024240214456103054031162558052638520622360440440109804498547330212457033480799320194580982373777657304106050427379858409085606767957019991047408158105159649997418897135987871738120816975768839320022234645805287800031379581548219190870527133282485004038909134778130709468757985484812001345318595467213499390478460534485188953804027134751462504566531432844290678462602363001061895337349525221483984535010664621667030178763724907356199681536296078421092819161462640124160503796924030665922637418928375142769981720260548325593332355496992384260939455914998155700232540296033757689000441777402409916162791601745800591100308462204301768425045224138765511478303963604014366691086259403986021765822180853178568301773153540406720047502976947245216068571014862753736051405261022644741327393474850833028329011439215822338534999903497070295950869944688089286863485844872235880357678792909187241809424094364809137192114266559075960059338198328514042288322816503315323730847651285787413591896421315899212349453852806535111545886323202705093993923742708504973761102340538152785569734245028865271807625437026118633368857454084269771859543480814258468520527176822011948661665417567996354102101466376867080170399105716641376513372134345689945015104374886537271842477680828988052006477114701298823035450524847288781096237175519979907471804700611680778862539047855067072439024248830749670264230670738860078835380410551649710144220095277120660613065778055760491935211303419513517698267389888585712244915659619056739959018877951327500411363652599860699103736598036200657650541476530508343414890263234541697990840382034281110469298188331479078093121905760040800670738313980418663845754903399913123965011027887713802933808711598527597765754992858654095459338643413861555782640435723125344942875013017287353508763786329368183705841701199956590119261379826702169848641512694496840361812444320774460682550162865336902431814560429929040621104082470883263994324265193021439306712084308552123500866350662863147406747818110752058711721778443477841211897598407311341341739124567315540974824688908652091826388767053276969692672803393814305923764431842317526105526787672879207038083693595942999690613115000110969523109568145008164514092551395881523292853395663774235364868108793525601423365037468768239081393710694233950962154825666061795960730706543779916739817679430351658694351746099579166414001397144918572499401995802284903331067673989876823043390497289837864792621266356236600436301205896642489964841761506273875186054420269838229978335073183495393106434744627033842659780108328120425537195908190378446543059008410989038941113256085679768989462659679436605561682793114806723203496775866137977159076963726859666735089569171931075085082767329649259364937307630154784216601943183332301765618386266451383157429740526240547461704241346635875512413654058545237235411015837921104109939608384944360666961068435506857202087294045012064857171318173646721477162027557741804066343598610801021658776220461028739465866180092821521398885037859774141380579112039966758092501133601870560312830796991408069102618748638292300807689745802617651404384982268641294881841998722218444418490391896111128047320026866652438690932301932279081762901427312494697220403474327126319299342389008227285242205471755872592802349871109811132059008966472621035473716015947356031707251017476623427131649645008265773722959455869288292517535363401303644098325781329877981547036052911643568011240321270821775539582247750256146241135143125360671484407374034135046999201902784194136488448894624758371668810524688963638600467765820356933137987409382730458405332554058996374201207730600792792153609610380885433615825812810062977758396697752580801430702200418936490091069433394032102873993034911130913132249115826276702088766200041857586519667581330130643947297609960783783873012364155201995867091090446169179322430110550244897954365286062743926048537054345070413486808351577904680415108321914699694919516854948400353689711832761630360473782014146870786984129878514413937091617918299499485690997764046113890615542471415444978119728279152634212134902027157138685259695963201824153866935198438110371813619559939212116146815175899889438612473544324012556954951570137006002241763660015206274732258680895964100361494977942183614489408291949850059750528403427165927145662498108138670403271665997307944933999516899580027503387037858036510506289946612160600568936723064921251033483533749488400946859807929730363896123435145496533546004322572374027578995508017713644070866822307023901732953829577526650895935565758054816625759189828445139570285855143165385758854597550685719005425730107129220387311415094307832094885286484182644950222755111151002218204215529851734707170950771792837234488467476774416458929846610163873478029380482739774685008632354986727461949223784616493334966583061782281663668793243593457706866808707683179407381148286272498036739604232101165045315263496176832581499631070780346443125166759919687449250742452725319323374200719068611107262479125900980311022164242138723961385877045815352741413254944205831269197568723188185667595847270722092732871802129972275873558767207352874746226186033983116713702996719701552929925934422883432642580477644996229064410453236274643408769857531770758907065265260632219165709938597562488118460213484010538246498670286343844080126352580807773487147805308107124576014863317215259663624227547584694804458154339484271248928825182496543075761363467662615900668896039579572487016186339636613527782405834225094662623175405924538784579709702780604398037189839305221932815219660212486244709613908655850513718544387774325670801299603441354815432982827945648409759787884276356902907251336286368076557172183136878977970158855667574201439336941660843309803769203265723487823029007643927247934049769950947683669292380236601665158629341486519213291919155232853742512533029861737944337339267715247666066769511771815091158911146405151744364321860922214099215185611485466345341606670361181890996807597999303443513042023376496958442126784487380803757226648454455036986821674779839928559370969639313152764824139292750646299431693408124865622863665940466392275718079715137386910590548332089087733445694479543042456344876645453976312183490589403167038776626884757273042623361209330334403623379351528988034905979867193921840152805249162684642976716113270346340255657842226312126393190141841262649681846251745350064320409478005723428750763257250259383044114840805013709974855676609740573410928486439069839636138750115866855406550484446935085695896717653612188395230576450956540173070673039683558433981507594874715082751182626252625674120521850400967670313570186897647343896377657354749010224312911080277903152425080111370517317218879278188515738145846620248948729943432995854551469162272288470585854114027920094057466989330745549398894082767442468578917794605698924087562106657499495064854956486132952114327334278421851466612495542149620273876243730185574774718897438624567256024223686890740242050687972841794338891763841582204116437859030779959562123799086401682432180927197087625271162694674985362955585223093053527691298066935752546354865816975353527646851840889758169164735290739683438389686769202577780930517839120033158407819651327928312579696919672729626803161020469792347800140279016618661433274120175069014251423950232943393873233694176296354893582676736931353917994438153990970346217375537807900233076009401518605980318174351462967060848181006559516131878566531325240055001011647463647152883735370386855166992336339698762584035177034336041536573940083734696753143080575055978510586990089469664340566284992542309193748418628985851931329293975369134293429716328671554514545243400336985638990888709372849391230890103242660574428589399353380278103434589184005930488793379373369111886854394207353211043077532045585761514860794961371787772598792212499981019160611833945379247980067212298236919274603083173246845774443313794119279871332308662983189270887994813265080200770316334939657599148883915627130065139619070468243510508228861114657822254707074090048068452522260904255203228643401077966908973086377498907617118694760212617286136967963259376034882573508814096082809946630339562348147737383481731235512916891547723750124010163556197839881987767288784651666526396960256650855374296838393870575150784531313789643138728216819701845754584323057907325706110052680300762524041277510436028284360488919947293693981032640080911168425648559356175636964013264971688504995399388236288699724189107786724135291445658986976354228341818646225477926226779989767448204249913076079304406844961495166242695043315066520046999232169567057433121113971913545709989038457757634748711565682539045839326560953655958822514879993544141743128735492330450806447306100186122000789344433730120414626915054883866202876991882675952176224585957833943861893572413888927106831368000317190460022601419043156780514868962149922172573410677299149492278527580159588258619820004596426069561114003741913907932532240785959968450943389190307144443608875564840410282037222536289168525881695274145522613623015498944765270456957228000081739289108312373389740592933507103065727129760713459922675904346444126300168617901826567414375062013932183044846182042611172755104309353555029795944534543806225423680999449948120949982836946796110221285235149519175006734895572102165742801028201103945890686581293973714015733207176651032650146856950420379751352184700378219089488905841353369877296747821519957614984181151851583583841918775447823430837998576299957778586570547567274706325149742243830811056475866874334833356891272454915371693642157574411837114737252261815212713302511169298368958780349900758479169417670599187304163214646593189974311985545625276346742786934966236546131566354704371049333746885863216578122280253520972144656650158669396452904370223870222679038289487860383067843537046448940208776300630285528396705104291162777827648243506801573017446792102280270214837051110136237435023381373562093253072249380233690615108497461390748271942750384236270316433682224636949009952518390147636155649466656453994560033341619050462901195954030372077125678060494091297277461314865458381939672956481758604729144540556262981619423229708673947336464394079504248162276958543055517293963768531276222934073770426989503398834200002043039743460809985864860336060330703979108653421926490136678511974172406520691377562994511611951974107206814721087839116322347199578910920457099117198457416568950289297667765889626518881324103497650609170309829456859662992771985296498661647726238458390432146478108180734677314167730431821701364787467384375846823764576879820577429738748587577352829035261672901260257156910152592096226640266029605653667907550520583631218039644280232792870424760205643836247574528016734958782718837265309937966933426080571057827191424695142045455199608926906845469716701850230759600018043380166542525693759876941333788732225789360478639767066975162406781139404077914467582817824786088721918904564636706787277130952900918579075440656528384247132859108788881570291717406846316501690982050161868193412800544200578882367541319166130737528071030931172983340822276900439815543141565760974002791629280378620081980489888360043775453740925367672255059944725136977638402627007533552830400621363906412147188558453623854332979773235188054559064197535816552979269712551416756822247027407582835735527433044044993522436002480881593625048370642287103443603177195642543401790671780981314824455268437942191664946791891526164018911451822946775778541606206883644751736688260953580682434755367466998623839941477793931846968676458228114847205943452967808702937712380670026109534785855642281240324701690115209265476941455694980373221366566239983516616524184401951464236482909658956631344120050534705765798985787826833716671782687851934638653718165527592072765259680719525517234307084657187315645041429111363315422171639171616346911755186914300977433868429060269807187699359317484757700667790604142521857436034675228751842018175652397642349014268733395438086613265149741880540343728989667470188356288073775671923535807459643167995879815748328411749781824377853742917721013210373099528626169779903097300235220994380150259467224402965559183154410210462374564879042918391602990995801701689037113845577848778027309033096363786581553939287502031428305920910769144033278430384849445510799509383316508673295642598611843089736782156378581599077856474753739993207917426968115111858748152439949071926479235659377696791038552670008370504287004762432186974112545744579692318011286968718554955260458694678043185853218363996562769360633139442083987638017023449343780402047946673384587458974878424940576438368780847434792084186556459917636601591100714365839837537461881816235221104340382897671342396722060993660183191248889361750907270003205238075367513104954249622717133143987309400086927344917724373372758667344330272141004574579168348561325814340391337538243537536581538415006539627792043046927924241476099214299981510522162885808882677589325446992837546974297551914212601119859644097349066975015441519916448427806029963151087710678332686456782540709070145442377114402513987615618416573544945300941670055120546911256115123971482582480851129509301104996943234466187883345022140924018731114712022672303615666505158497015593760625452412486835759929824871730879098795647913231793932389322983233542643610600982277691595843878773936505039866347004838121855808828481506500076084465470227689088103201714936895288984379215626256969283450452776546446509676599619226649622314642029336153200139508571251246188441715356687224004827385006146978986900089335664449301755374495076204778920739383862030664900136932211911929622376142804654075239532753632121176809454926930585015494013309020471055650842493546342074254395788205512053082814427898293616629105725797345387738349184543550911215525064811749007779041124165038136468671755331624985435513901887579739450479693745638836196672526429018531482729586697272063095592671484411857410320587601265711307179184606236252823862129516297557126979329740621107829925564806559472294686168009816552466181515861351430796175777035677637993786331779569283344485493695147018382872896810168530417841676671506987422944501549789858223771190015563090726898771647863436256808270311934959074995580780429061154770617637814833169711827266229684423819116378712449703565797158345699467174718263896369762224318919917118591979137441128701048340789091312413324420774056802733548454441979742914284748569737017215986402846849704129930582371716896524465573676313820817821766454287109983222623503316111511929714169824386130505506146438228009406051320340606871024132188577240027239378465729431943057941996146230270682720542676879985536421041006150404566088095674867806747933275821639282196439537073773033296510945201159915401016096982745487126554635689278099643478699416391922951507824226860487361058333802469492806321817962362455976261661317793396469110638285960358120049621308717092262213011952507817875411409399365102666462958511478200991521297500074729028308943365189407644084737081128849601877511246583513598455965986478223375047376128467261938557640092783194032265519156858979750942499923136618766164933079599674467319109514806683783805506211083855363266694731667082792606686766869074432617540946084985193040863090474805650521630861127161397920744231946132107478222590055086012363687297479307569186147242009384761230360466783997452117044049301512070779102295530930830953950431917148209928887402611664641938897259198482909708280601480575408342234871520579922838306009262680342595891056256324119062795800059822829306522281843244526766147560143971464471345367985444682542578123368407809352670524170890505319997801323480183050498520747651193057227211657141975557120127732085053954657336099341226675104864920004351088779149905400219997709980141001076623558930044498239189143261913554604272745368830324641405973827054600989613776862550018805243787718265622227391713195496141451460771609135017757461815736343895412447352324459850354178764174169439463255693249674642477793354258526654973550621239212053493272721862096549630636496778978946647861535285758844068590113206221170373362100974451510769222749280740222358424755541399196512917687779275017843104016757074620504521427049926894260455983651676866067927047261728335882156013405572945834344368592603778622073472474085716569738528897672205675215373034065549727906286298494016570140925130860050421804524672523760677875255006508552532545747346592397355885301346099662959042301370532034959538857017856728188058364874636036654712965501769087509497021853879130000774964747449686024381323604751457798084787885083555051404674998438707004586160736329115410707237485381985979937704023166262715749631663609511541579913935658319426924613495437628747432931310472032904922668276112351609327668070976946424882513982038059004961063468206873794680753392714516325027672948365027289304192864770221819888993180434824245197739897425778533752366313971263681477335709348114549042966028254256801694651408707422604663085609546911242604566963671641490651523048412750790240768847536113541074515031635605838102450519745756499386388477890213777142583193086656284661465367854501047268582806077308887077683219928983147907247044653352924015963244378512614179692518830787746668127946098343724866906858516034104079027330293009766717711405853094880703533956843122670453593891583744389484121359565462965218055096244727068816529327779989339495006791184716899808779071923336265742305351018372398195423785292319863408313585887694462195586420924398483718534948204959318486302431795320996021013641920198648324408291364817792706619607357068639070528654347996200507383976641944648396130380225533994520530296224806599508848772759436692072157169922340349209956278621186541274315255277902444782822703576665002483565687357199341406801993930950106834265495879034636977064127151140044622934067942190750215663805087871555967755254498096996186143851899997549604261319611122778133141860058472400788557907249300122566637468600165244713770403270213953100534961560851802059512365043368788748985812896859827186802192617720970118256423266761559047443701865776417719546129767764482566218954020445855667335679642145808646775431915250319857240190659011490834752770034757975194888694667895779664279540757655362693664969589763714652132397481495793828791848810465207655599294511499558315993667686662266420916785245359135617256059477470233110500979453207065571639727851672309593112729978472788620621760940699563871713197226579098515901493943538759234912908440553237357476949584795733918723377784631525585572438324874561706819035324374257484393297626537398060175876809393049426350034555293403320047108204165807525663300508668444946129795570240151484926524989283252217081235236716443348512345239067659756240180541042383823068777374725871416272721425842597598455747883743147419178859148018760008793267624959058668590135763241383354363359877483232844380497887207217345300003404399437328172562616554901465520308315814962971358963114212790409517331283262964674346844138638661159158011836285737444599750611916855904063228191757161640539634732925756319361445980022407849170461603649483674856288396120222600119790971783612296052510581590856667122210459738506313145360064069778277273424080217242418700397751486185211066710266554018181314368242041382310115114513366312133573688165518551650945280584557824223942033598863307986020935256913538966008790912214918206315538921701551135977511102564065780426350739195363380200814870520989426821450362829886632565545345375464638266392900333701496592202772799258768061890370603404810577390146615468158817707931025112297933326282618988280831248698693273450881808490102149114301016135816237385821506766994214874822433388778522962307153341847003775981060364482578808033237801478331494138297442772106311308723365042228728040728665024800815321409954525195846582402031482676133507371778718523354295603051944404917285152825436215497828962223552978336027390679766604490874347845285081608776604911066877248727397310581490617770688657422454637666363949487196278455162746717826017925335842895649790576866499551374846846449356791176893972549307504773051958752446518539454548883616003557268921718216851268477851525845100080397137069743421356096587290517983654003398152766133798134448654195827518904786465571011827987284802814069334054357832647512687239499378675797916425073929102628472143566957910031182769196897222933936832480434603113103191475888739718827765250969819309796870890411941277520413938418476651738278719939070367280994012014315572175067712531885909411306440325648892761313406656038061166697903867418532149746003624901623834366790915916652221196994910304692365302540387335141142089043730078219521267471791493167280175269876473042179827881541984990025325182112168031055940214012475899906510956758988776866313772333658622182277384279634656990852911535032674966728010106651215641005624104910463631066073298392116746603335506472122081467313586687648849753350321510995360534182246946449666509770580483955776090227984430366911733300627456313660503757682208574441545456718447045535770779365296269278391145949665056532871042036712654391551118225628749169248679711640057413645967878399777050597412059952481491236151270475715490411509936755178654164516706291361513159690587029762541180491423892787055595205264285293875905434335701592331178067238820719715339534541516293929984040583682585220140201055990278350649285345627782613603989977581160451286821642363533209765095286532762193424826563471494337409840494272157938684448579427340613373803687644466427775124993939352865684597638603234599481382571387878407757926445463050543213276920018455142159871670470379916317140167648386725293242293481687022715050213069475013116530007417490192184063134665391942960430323437919894213937280106077779592643193242090311556788421728596955653072875310174811821860699190351418951085675904458377861500889868255318582531551070756052153584009561085957741745725081635666964423552170735801633347865197847219935489391486633257224601941369469117154678193831172128288860963818363222745297259428483839060570870923689624560192025293860180400267361677119761427576273047636076959467940497071569716603260760955754492193875116185273145294161707170540186695835261605613060250229822826923640172390112085508631049243714452448011629829786542716549642450385698053026896549274433511907580273096585614289379741769247961652902233760867175459346849503004198804071312396987951827482785371460079173523941827914424859344610938157350045890164248247917273390361891885477097170722347565123149466561732138350757536327829154298037614087392025994369207808716948989477302028975904502365009611732640239559960582163974569215113864003076129968386172239093532501248131510215088721968737531867763997042299259766650909593869527125067670109586057758404089331479496389257331074036228562286576365162267153762160905269605872082119943421017589261438892211317079514939718491141318698597399335867006183169565956506230304988478420160388914640802153653238774680495933586891395842411127439093788912071241529866543685321741498645658075823631352671540148389503638266902877110349937582786499443104357204736586524644489853220646906182256142875031969710771966888706549065529298335441348816438691536498288588631656683947276384527379270409240986599523790436151904451431049438931186446108313634895841612354413581863911424041561424494697849169733636280955343094377233958105511253581915421264864897446021244757269142232346590362806678820968464474385223186761768552365459046611675582997500216266161442658363883326238251914695792524603854257574455206795496612403550388823518925192305151184713694078743508290062375528644024884578958039334978421179069493617333455205498880369143948132321521725501797881365699746212100382950146521602649738571689287039978342442984986613070469629272708042997355664496427752433414345398209731086278304705965592665388395621885590086193157617624017327199665491794569201489913087089104373230228428443739391755188093966189234349784788029146558789645094831634185548569053539223748084232703358928049993586044410164024799258801485297319442898361517054573638614565296277775924614374142197878629584140344691155746496579364235331130362332782377383696384536887580010576385196626328313345639165798125321536101460566205850135298651563114902700432808192310670624635247929352044333976363629051383543669951520640441595227752760156722645814997066660870196742219049185307099655615540643625853281991135384966693405896603923781141420093055837730593328305697367681688201673122608910162815237432950917188555370988558167852399975492988753398740391279121299488684125175276497913447418975092662816828505699983648136704937843480353449165702132980859050947741708620605264192490252701253394625868633163774491690524775717028273701104950181180344972720446260816151998736142192213066970172908058740342465508993313068857711495845544400784173999359568989430794673614556456062374474743283297477555134097687173152447728148659447830195387408269710200756032324997509633560398496301061161565805318861793733189636493533502600470301960741637300378632532734979535327286656901302122913436856877992628882645393174410100360239176369843364207380564200193409861345964154964440361072492303819532608060233393112717793467298028540296324235538465421813108312274035105569996152311186614436659619241500000560239429746911913622070380095082910010220687450651584922616714462518168540235234911478548878563805863985278392775306659555224035897086835759706724501922374778402585750424693764306710489082184446921935227850446753777595802440439357179843596576150777260247680298812420555563113524355333309240349065778821949529602381520027506062440224846473675929890509803889502972949747234967071942604747428633517448367741453101082627110553639268642826916898401918770951046245805352252202256137748501598449952020460465844782385251141232878642522618944391275585668945809062918287211480346977227113304391155016242319818689542300090909624282112256679866493636047789763833044504305317878329344022057337023627385222287648619045724010280700759635562734400535404824876634286855107918637060090220843621298854268000013395634522124894392845102685990996823744938475067536338931397736026986010092040300521778605992245225615974805803017034542352636225874406109720263073150043592727107239912197381432246011560231652586200957805776139551909634818203924874983424810175824316394173913808513075033594344696878360692773197570268746457622227734174801205582632527616686668288357676987165215066818269056097093910933996225657501833824592277293175705856612894171114732877704527999598753885824184170112974005474701172069706644065718723906604527124354551787014972381111740885437612634579968903873284749996087016067651910322284250215445416854900185881206388006403333486304570157017617835548026448847131035630952906469212683288953929087265513756851689698978498181538065073999701709535614990598998512661508510273683963323774352081883447614360239843065478381305801084476115994356520398617352452914427232012043507146788177778860673445040678893069607132589872865512955955251058629284694896372165029983998613219795432510402442334558631476446596797572158406483879301542022850018293016229302349658184787905826188812936593806632728246056307540164989103380733043832806721928904229502723988989470470653900880454013427899000855562811338933522933777074252316992073665205060645491553692990188270098930542236609168700905964336785555829494987530730851406240836424062337490695551275392644843055117073420065128008556487019388098015239869160091980130507279642023425285540711384495709885923406662115642095073866347123147592862540023132862053040216963059468491997973404273297454397490804401353226145708232464049446718331895033605880280048521365373182586876979840946165136226481012470410384216215485150888237390409850982671442180952121025127820505841581735172309414210354921615072378208974966842767153671560137148389361386662854166954269896648377670345598845842309820424413334291193440996312717254078985890787113686950270818203705264097315921427862853002471145511290063967699474166306249184407049819477830912295415693264609790165921549630992721802371572882652458556714224446504285337779632479454669587952601847905612502523270577506909640084525075459256064183600047483191748038435174426507917412834004670072118949621492592357936627317807178991742288284708289663292014549530681686352752101976064242820436778671249918494109228575058069964760017118848719353414490468346391383226042051663980959855994400378329216372406173524980000449983290428887206581498143830967715962703717731823711782429419844883709995260047954276512148721932756243079132599667303020054053585133557171262640723440149158264433728760791519845186793641100542111584041762015147079943147055283082799867253896585030781533185038351200655401615673536949239468096358899585610181075854904939632336780993757995383104821623350111662466573634788231949309362559194154470343803933945464065847519734959849665144903812736184650330863473154438425307710332208221928380148640470962352173841923819620006436906405155263293470770187777072661015249324597756088549011856062093634371628631154212308976779330094956703136456943000079758366665707497251420277754060781245164314131899630453701674120441402168883992851900802553322420128125225446927949682628459603356011302789407015726347893845769136754533284651368415902742160446842956386672859478537626816568260050728951708516947470060171383124542884383415540268673943598116372207603329404969105895620264128058423376245074337375337951786040847734157607880840268297851410329828527013077667426992956857093149500236125043027095142417741882066930903068068719920324291848299883342701611239713803570015463301927840220518930375876757564050155436440122894529012635303247280502216505932591361015954217961676324431413886748551670247377043612156777562904765482869689794986390893523930021833979758940850131074722583310950024493331969648354598832823087516654575394903482635657476086482787128865716267387147025418023890972946722383881194914668466196138753280196472645361552633333062194270913683669636219913588190196529044437364661491077679012525634943794320078222872839934413884573367302526161746084050764306070643185608513105302668735834528690816357312509663630829039617169346556459258050709720548527191507870894672987515796860974829161287888130356526631584512961904899896136221496530080821837806188788345154545388110064134577785689363374509485540534173045350602728532039361255909833632359832981958088124585748693104245948162040104272302547625702390654738539633437614062920284213266127846471683665633787303624706015379879264015293506999335883705363430039508616563880124279416908127593454763663137043155130587452154874364618514101788645248515953879727280405692620151061883804480845971639945552900778110249819323993149443618245309003721622951456948373244216114615497086174562349815146902453351476423063521484730615154284900558416263261653027768891955819167092389824377528186548891190005737196710212647053173958917400421209832848844283862295871483127736907476189679044162469376262626928061603624020532043037960497144322748261969746208203586946406718311142709797967992490533990589262432481849060285722844299455648307595815719291244813687809847503314579619561139245718505968005278753394944999018049641688325616226895857093499184796818749135929086945427381691032751551141264100099328068033534222698282303342839355123072836305372992499059573343002156507332478113200866706050179044071188476299569557470117764864002267228807320038480431305626673391535905299411898201922059602772832750151444052404055038166142358651938491153546553103762611184355249467017636776141013462186014814988287451626411502182145534415468837953500804198140519248431756510516333657791870108150012923537918855825753482711630636919636796168346803744946657975947168739174922181670981527219887339716462016604153364283533298799108098439302168533983331430399941067517007001415689138426936808279969570293987193612035023182339968834221615658608473233088972601230233830578889634315117415829389732294487869067773502662760036843991229105502138761487193162784724074908117315356865126783400613507231520420591369776115488771190408762616926617003288715370971569156938434816369577384771316626734440501734375887918083492734557245292035090483351392246972790267246405018792002536276924705111566908633025057296652005587846380870307126675273777308228213419651387427563740906197799668836111415894531134790849855987247146073145077702845067316675008701825532665034669106136490707387584078572658671145302893131516925294258678491167800708724410620436626840287812415206817205569279475606333790707161473213448690830712586573236314946506242284658241410033172939263954795632710199545426683633720980492949095922966918261897792837452544918304406377696401678168994423870419596383181464721551988644226806143538310639177007912192915989655715637063715560033970098859535867873659629315355571302078391193846864034163733371687946496229250379482147980918365512827416245220764072722308388631817335769664724346240035755453061910895871259582131584192318259052469277088540616186557537232590289097108762381488357026621308927184340513828546446759872354692817749083637602969861061763540274978608557986683700443328205661395128801259981317116585347494751052414613263001452189728126725839202858668941347368588037832142106711384863764068310066954091166043345653478495044912558989128495644817893950967901094816863388606365663193701335999700157684450916883307490043865765267652947950230284115469224180901374515780867878240622922968518354837820363965779092887661910874137753590553248729621641366642930414084728930250343702847183848439471647607799450418996827016372069425166695452393168550244461531003965050809007853836243768377158666575805848476850741804186113682689339011680350549303575215760228577611966268076913238287890118270683421966850949007132985049698364045968278537905562073264796052274132730482925107606231505131534743589201044117038243266224172882722874162448566600859804973759060213609931757600537723662417541820992010529383983871018156282610117904854561137153580363247245411858752812592474455274891420013182389707473841003798999806547265144443274522574997019281008433153417527631721917462120705045316188599750693645643061224269979652263220700608602596924410926990839395208800133369453434209094738643502507656548538067489012474057677239947873828543894298224418169443491793736706151600865549662528718866010872370376946705598626536359782165559762652698200054958582704622098694686409589381700660671499095083521185151795026063529112146638630544719674771989743278558095213704379750928366073848178720680996248394531115990442639560633347986524314534655573645412604569884038856201118434161619549223131445920087307866776155492974173822488911299278165368868181401818311575046238791245862985116863167156523797339134567559282753657589742437011534787527230077272602143753845925855669493855518710450487399466104061577651467603401992619166166951498222050313012687758316943830934725631985804040920134981554262874207969605776881294324691562385593880068233829275243837605912654711518480541405442176871832948457870039429197000110921460884614224609982413228454381360009958383638536694899915776498128900427505709841931991048092928016124538825818464422719282101324899112033394453645987090513790920844045872824796177692759240291433529221584680657080554398033656302745230460628103707068722494792743283978948267386343327561031853489073599632366477957713031097715073560548599012897382428488578948102364590168079973011170343314446721407731033709502113462370888610191993159552163649929233197725952928296590110993135679934587472440375035993959530229093611116207190213442691798573642741642980435686916034543186161138757846541381113133735725712240871594069889204223374814479679705296195431784423467442734739248671719437028937038295110090269466603254578524396902180402616723822437849067654648058949466418073095652850984783738781333270742841545419303457300443642697194568659828086168289619486868565380400844231010954243609732122407257479916159546683981579260244175637784276794716389713960982787809874177527298148791692510945554132438577777853102189584847908785246817789827484074441215572298323715241527650636933737672547220554096152916702548456289311092715483632461989295935083455228348980303328999221394800866238092362207880964346064972846790346095996746740271953005804338823999796005259402973213754416626229761938198208639886215541162921987448065671325410452771430170232573672457519110856146572638848330833698859259616180564756139133960483353215121913405977818989908858083282986500181951315673841621621658415902467765132948923749134071072611192722716176684058339229574786062741803410409379989917274065694266360643291868764180572472876152436313951779128671217281600469237517336232603559609356967234133265054880594497835892580553988762292165955292227106936400578622610756547838517706633984535795910185289412035512367088198294114149036665690899412521078638687858972918268396861992792112120071251282462190960008420096751284221710324895321792259904462808332494771104361244825233968961305507693859081809165479822815281466142360777585085580102511125447246394531640902102444111241722815003311696213237218008557238852702789244022031109250415789832579380007511264883714223952088241693163131620990757113580534919352151185278217270826700259959578043094321900328515671641903513726613453293060728912603285869585557330684904047958478835778213215976552188100683246312672970380315598098118329818116845195641929413761734329722439053083503753756940976611647197570947634779657710095082888514676044215075868206396404586110646266593480274859874769922132880154408689862548409389483538826132303515159648385762702722085580504281948679098511356016431951394848880281648807480653062893005419421390557323921407103503306183038960378046312318208088396973707341044868011222315839107301780999198638132643543351916254282755045710576380687516259144812359132746113077763883924432754295303588621959671936569675954450779429001042709092103426363528148150045327501157306498986841554070739482413014859655347404518850328435239139477068359073987439450451526377617757823163206156658570786502197635439139989386575573062593962640237989292089719620342770639956588641121053438412539635989252010507701697735264580863935142510952352288267963064332015228327699707565921473977123838297876041171737718975383314248075046229667776613590340674166248024301180466158313869753378466228709562307871935196327551711215666298775568310216399544916742031325381509745790863989785653461720042068554093122524476326865042712883762809822572767415357341418622954432770596780544488669160153816765873468875965329363425558314309715405001674029160415293678910432302057898809752938098379378941729311206646956749805324466432400456494002093438773279074912943127779320724545171506768678365570323188316654244867791170251280235329852865480571181032463550668751413479866360136834614716645284630607092114904243732238316518123883782625305749222408599575797094746282219771165610529216907253621212822852451125519448693875014771576007455490865843354401389094895545816472453422836749360209918137305955455328145688279145151924470387857405158501038703688378979543578532166317484987723728396470573649823906153680762488598665758081167657134999007631927643207252115008465775906542012405035090807959973581389606980260854226089595810227955607009677341109224942792199689821617429712811931370999939941999396297130946870950016446452498457098925915528308426326671647946506515388837277082070840862840080967888283553335577211786665955473176225601109666680599012951295819687979117505843730800765963151143865094734682362606189260637222881186739557917163218909829890117341855682786313729595163115111935042223866337535016297220296035880557015373933134988101870643041259005862519170827614138095532404786578497885877171399157902259607346225717050698227032966990328101287135510179386400104354078137706208887419489262367852014368335806991177796689128451658418787590961078131886424326543212717749152425489191056530361875800322548348624027918704316946125150771863375234399237459519040845966548202049487984236532197294460118437682831215374306958757920511544830224978757067992422200264691940910874128465656181772551286083263535681314503931306414251200250865809930303133785667835504057113935633799589155319768526911963959182793059803711472057146362370279648584776027063616546253056607488372887165033931045951187406618248251814011420671395247541188679840980955080459862105031224354838963255935226271313002370085952111818475041681773255545903849412633690997007973388104812593505917762468781614323357434914550160584181955380925182865898628805638897190618251434532165661830433846196359109215987123948879054678264661822493414255578368110774556383348859336954501356306364186359494753754899347466410732637056630268669025412542959992510351497157261135874327755908793977303885931257964534652749575347781032168636738545460704381609060368568562897593462999054434402717589786392844139880901691124977359367514029036431553601491491454664307228734819841066862510706058339047119705344554556054162019749676298878774752464972667412588817096542620387755234724505064352412501132583765951196345709143750576171557318579151892068656473572359164880353453352819097835234803492742683289886573975799996992729472125150982732136415539176022767491779723076853125387069840797942667225500838620538125278270457634308036648228667898110757391963736837693695768862380105349666969850690761643479711319566760111742922069941912442009216194406588514496860607916358888815245863474127453886289648756755475669171115814432843303620019142032325408680436212647298514144273360995023857030728834281907530851330745545983721948426890069884785492553237581153416255535786159990926580937627906773991040723042663846399172484067293364151793390120175303827988873644232001945939762674245098760698663403582015127996404269710187174733260217682225813070077439947234062375636325165275917389106101352466030626314326583498075448654324886540073966160978245359134326784374253561417195149805681470531936374774912663108524374486533581475657447205102251573838851634407259796323498349008526686166391214097394084879440012653175241013473146226870160357692805883654131146624257008706599733331590593280155892192638838531650038717711797662551180330768246964266740186482605824193970458699007953567483644764831628719167921984331358790369130795308669610183993575180601575866002563468191362896298421748991515517399483349506940551045894920627168077112057613681977499567230917156898600926876681310354939044873412422720148198103918075972318374238244600719983345024440695562848872945469457196119108353058756875898659851100279509203782603522079566370826133263645255211656170480510214756546594003306872085903816416542173207128229916010610166426812123601831590133921599904848511162962779490920201357921114610419610045143378533177287846888153922640177706867605559808840209366132053997052880693972363491519437611482798433157225022417682801208572518475485006253015677726809401508276949463844464797206337682219941955788358093536896473096434753411385234095221200051524469945024610558028343045689250330400821763372429332760382954509130850878413704164451566219663092860645083235955685409461115922795634300264604665374964494727518735269053201787811390878554229299102003048836791028138647853178017784763474269556358432288303072805251650507329049865444496763274765151885247242112124722486583876182590165318240205381623342252605365107552701731794645855835483055238274935850380436330614114416036250842291071506741550621203873957677074015534085328808046302025937627731957732887358672903708588388790583981671509840303021389492046988740154597286954241845121192661028446334075754881610494879594374212131425015745903127442489403241001029577899249369565762449565974729431918569272511907457439112208027211400353065991169557439094809230563492415915479671246298634959994868210983618709126302267056935891056080754883202949142467541053722903195708907937213872323772452807357030930618072728847049098437356697503182250883450189827789570496705927619280669183156091151782028448085634322954856852204430222354105838014736575052470665433819587536483644952525368876906480690305882241175983557879541447806926686494560474461166798321250219949675364823527221405787749366265468301255379008424766221262524586847718167171622908954137791874908162830646040347877005408729608024074102785524154665052151482590257377428222745202934745158117285322981383356959648233640920881651246751035612317569443566071239030682736972623792451239589452097332125523317703515773261316189538154447402699877026172179077928370760525482673061320954697121403121075938884096448004103295123787318900007185842739098574612350006611394717355171657230363001555451077666253566120255636426428591298272334387164777297561618881341154939048688700699567311877411351917348686614068002189396174334638530692274325754545513967952687026549222862373060723598354454056943159516704756176914875444089625674770349255182025950216209960836469097606961350867949062578770459236768194312385154561555550323656543626327582484512523372505306905359576757134527899592541163708481937945445458135282127760251097357689513369210781618777029919791980872340291354778078144071994523726848181542917665465709601202921141397807177468401171033503924261463427471525920474042822454357201584747160919996882039265456855967113111210050308532837248117175961479531919411346508540839142328456521271541308834897907687838934263407858462098543464344842284325912318303070786647062669982931528738008774905899215739977823602696271464883032625657445335840631572877373305055537861889671523020452784227950795736249604430078839493722115630978914555746596725726718338683696441608203901700826680819017774232609549366096327358096931731162431461768351726359189149638630872422976138296165324068207118728409562078479352627066206730765057580092987157142970777337480884550906904502606842730331784575392620165887054521254899536406107634186142903485020009554277669655669235169077906913660151871538536636602783654965925736898800886196954283514506095231747708341951084113344398748714081161730574366744127309535275361895361107468031304866335174009805508282699023181212470145228143112242127892748244576525907271903457621154226280889224368125807388890427733811932222303943857553024196360489715588223628719981257907581308727204320092117605208205862508133088920662453982216665339214851936583603315376868486134445906880286939161044814005016193398282452219436855933026652726333240114224907559927342541384551707999223953709178363145811886796693151594531628199108989638050418726066690983421489658577069465741097156190032505256825726383883018539542995136045031389680828751674428081577835575594299245292847958384185698804654416296546882104402603910399324210189301500986847814973024129650616240058293546568314329916642736876046455465892315132151832271845190633351149045157168053872661164698049816380084061509608504432739255926220033143629777515221121165088565834037107500945338784379931776154277096252697146310565192013400731882666007626037342780345651190668648222483109407361436660702218047519477256053553314430758462018216595038517675341969753310906223058183768365747889542470017727643527893555263702431088551791159363081533897267489691840484444751656470737743187488133662778784519338436367418815962307236038741611192166745873448761643460047557118117721272004821424277750778027867128963216884916995404019491920856106602393353374845746950918258001688659431002154574588279746960377498912186764911764065923343977396034834878902955350058928466935369107977219843144823660611952230408819004226695361148065866112661970407835455462099151475484264306769147597333569179149099368620894541311398409466653570640927304972885611836652620475970986795515346544180253666947443833521669676267157029958010051965233603628065610018794498575498550891235634162698963337704220164591556745465965109418831160629879049622184173846197970602158698963491043101655320717987055371778546092991522461198270813551373169961855998465086144342904069409360330644084521446731485429321787890039946956202752870767224446005523031193434639766319347246513811126684070536657289288325952645163065420061329989751435729784384059786030321499217207680667629715667334630373693397160067150328731790084006038204069550734524950272662297464419132179515918731244664090627154293786070009899388054998375950516519215260696750147777039693892163689797970505475802461860359802904676008273421995871732336951577737855169358009996064339580878544022488797335837243273901407378250341185277726375168096535630208488009900910859199621226084077853929437482916263237759579135689644568593080596791605757042963844676311226278721669727298052119113664424212426298795149570559064426407340653434864345418276169944783397248713658174335615250143124802638706625104115435124247483443563365823149989073853663942890532283707669738651270972587845364048327909963521314416957974879386602833169666124799523420885364355827559119161371226599155850981185137041928925079442682864078310682925917470714252019519889396152815111607621849925703732399127545626694213773996164385020714251811823703719556898512654955495921828370582904089251404012402608088474516700019504629716404144828082337299730904598314611449009200095332129060698178614721283948322690669835655837444586619853039033650840324365546750278048974139080037819256898739741948353946372435097926139006423773382138641471466501539441914434913018973363352632789253136783352007412598407231507863219000753645551224533591413635694002886276941191430594988082120149725566968308435982545043985107202638700574203712820793217275119427250293615145697754717111966153859866056813067842238383458394854700874380322663285261425250382061603285427804201701765930239613412290463830587812233704620009912777547794406899207290659049511624854097088019969349699453651076578103287338898610313020048255073408376328378378357258539059737398556673921687462715502431098565927571846186394469057056075346195992279139806415713034905967072564485036443813930672572815872078843109487683026511417233582905662144660759125863067150712835754509529390829844208125325424522044196957714692987278775814933638630869375196155602042150986722679171852346135805096648776978032801258268239023262450071584368173546573020777648364981590860619012669064581086849208035792896550685813633110161481416800110954076050488020531143467044819993887472332335438666712138898397950931514219191675121723203579050934932279276108736501899210213466106652779312974798490119431985362427129026802933968583647119078327407096471961809158256463671292715210219545351835811031449210643022565714077316080997081638520130486978426025008461438307509444620895829215481284214952221963151484416533567434659188955373944754822441946750029734531518336813443329106560585139201033986174975976811313945691850981399932761984749421783437354263571970891060560847922734131405986432944717556882497722746218855181534757950251810035470241220623753296697609582819386233071554815095155692472569364444106069235700782121104429308279506868537953212688417130669672769899634649644470232854891524647815429910929160547567832602269400312023546758905252788296213038400850173813841735466707095290937793499915633537370807817675453937306369761731087712350209194061260806566215197569156010611868006394050012723870043619692992151380343910081200652464986775484796802896040008570112058347853543055103126229830606105477057002007986781689734822427395522445175368785661213854760303869010533280039255021790500406580160148962648749971496657029879576738744693960335143738350914553020594078679113256013998120245336177639205287555267778634568421778408154185474161270625440931050598064421187540912828435588632382385806858812245911743297023062723650890528948128063639790779074987628885899037019420043594779954863830043783562901050115102470759575939796028411954566068372612373594847202764085880319596110274665879322519497729369327861674330870714440987079893538615174089162876254049471203907125457860283960781406888750245985397933465852980045667397406617661243241361291287714006741045800695706013800894229607583783180382757008570540982828631829406405538690472251107196462122281306909965711309777413160318706058884331863585927695258154365582458364999285324758940310059151653732397644832839946945136898598355232094148624349606741730515761527699082887470775204626739924194686424594464945354925083543735160838931666493328004807397117876318538550369909143078732846263914852726851767189906986279943393888834139975772256619182181948597732369833939255176705692804297695610347172303721296711122092033907248674309238926812223242817690400757522583846716410947249178735387577013444623508436593595287390294530275203579568158418215429171898307147951995268971431549857295077188681985558756085145227067981386743882643176976599383942022109816276610958128089102915411992547015260518301973818318969371032293302528694416698023406655824396271444400469776439553360315367418662467374885926126163959137614192348425318905168772859090240970882688092762973916373451921806839966161373302432343554510809961123998384760009769636659039206198739198629669052847867263107097183377001903768873454633799107615196035820719167502569598705461758154227600940000091928043079196917356260165531840598652061360525970359244732966268747938481886472676008240245191913161503781571362125095866604605535501988205551732311402573927986599066944772142398154824814130348778806065075802563228982728144616151880240517375504257146929130455282702036020738039527877257413168437686832234835582372307490567445346902483526606246301242059392764382864789775674473337509182880179967207595427412648170020100108739757551496447186241171883236700527217820335431581893829474748833575337561082394485591646109628734256447592616835795713289708443196256529649659808872738945710043066606662541326148165359959510311834225750527587701534169246955683145492318617314332698053201252633487157731494211749631035347417291935976569774059679861308587052244690890157292472780689588563189059306578148410500395895296602042728966251713989414054442953384375931235694835424824237798024954793344683847006138035613141610846508923759096763558165846835579439384236885405266007975465802985776402085890598075361260952585522106776886342972704415235165646805840715779839581848655371085328943874046461452969366790725723794151826030669704811789707606157615093254434327990957686531034131629261566038895892399028745217101626788803618094753943870455697220885444164598537983497525140928358421562398557121115294985355625123181444807351854455653538459009817176343561879495717990490454275245024333834291973164942952145322720163689996650739388027189794810825331244913123161562822602752427540581280612127451395405105171753368783781782093115869019706209404156899637119243536433096147111995531926334099452412382107168761923822803545629163466766181887542051588605496942484032301468674549263425684792757474692993699126404744485764272640787951168131390394799477089947666467128259175021762431512210078481682387702919071502148921660387218843049869896354665885039916569375238359555025917129648619808604706579015619755032322400689446486910976116614964694024941929210128180650118470678917805305574755261344045451373371547389449667911435003949543210141586851097480495306728865546920121437824683288595658204542221831081775332090221135444010261515044588152931741901335541736938172852527129456315509806292818803882546947782440754453327298771899079028770576247429146492314668990741482094858632539839304893160183256037993109324215953802109027962802318696869946570167648634785036596462491167333775103108682514124712169552741374736455057802230957542542127509782176741571485872824786077422367299637999512740982656284795337474135997198058373927298168469030603589214657405938460269948519434439198592813241427698303671816950809235011335563180192273772907953013558473316869396580675565727474363022325946514882948861887769980446244720393895946216040643339971512696336594087304556889398921913289860210126037230510874217127976644656076543985158739032343428001151816320911123290701350026451891050443247890553334840300552089719566044831966725754483216365958232676967463410325930934204704605205664845698557472035175107124425040374921721765216638963551700740032863796729836782195670412345937274216764920449264130688699688795662593216715176590613990851935679894071948815990180260574606044114113069277764627478836684544042433071217890697632167856603145742229708891341513621010192675100239288762431984458685880517574994419000304058156833101018172202964943687732605397284761097828508802271847432767817943067996440713624204401321136141042879364822379096538724165275544228506132853455186152694680280731680149190207722673962797034280188524923153658328395490989441947202258835489760841244657897185747084005936760880069996132028225022638842783504919631136362540832032120302958473278890688236700946695107519818603636765016862142675653012467142532163350339543505225130067895050262308800769013484985195274138943514313694691836276206149143438846374213663219228599402345041848974166572778339846131540863019338822066412266800429382349707548880297179884071999768846382379910267631720834101210127174537216989005723740717956013958734662111455578855856251348977197435819338910780789542848247882750895580638138863263790344852297885562259408054512965918227474045052931033258427450659134552379226711666635233183290859649371463947832114797345135060704406962627400312226023073847908912581587438334963854021984586577782828607573176019081730204605914031186434112045416392531412883378605643795361361592698024515937656338298682118179320728446876289224844625845403074208162622139343540219978138889945704497821862741214514108335617079502425012070227565902138290260506020142939591913953788145795413072990302303635382608979790202944460950115015454966962496813899615608907089296034100622672345567806380663636413836202712265660064798882714553192707201621016403888634772838013905886411999599550806910516513420431459524412048091908593049853407891925517734095004985969449527004460314709840747699213074990181802615097584981138412696185590710722497755188993133225875099877978298030003018320161813403438288347991560198553497990152109921472170681062851687675146626365150336344273753000347574531749893559593326823330800770702495425536256035073289229190280073701845438663985746974857378918587878387809108042487875764277058194032078101245889620333720217726193856147349227319832531166434409715342755631662503596598500267830686390244559282700780470168447003412620359700020373713740012590580964059188500720510512800433688605140080658225256170189182048009833527439038030797409760296304985870803876405959734119393810425419687499494235784337805800362666712182330338648357220156705253840197206180566480431916083387228418942169336851900441964290198751882969212188226815187945272900342320410251274322385887165783708417411593271691488184923548192360703155416994105726614314815617144861574324341330585996864158954684704487837477020721149549721799677249355949480272245240972571013652550426859925936137305865247131208500770279675824785248563425725771243017759563486348850368445096369602710323609303107540324836867964710776081006666500792269782074523426225424204970944175860492528758199378305053638263967485747704907475902901302512039001086487445676158267583985567746619848845634245563569516171965730235015662258012644642382854474890989386330038927015497195493892779127255491208827645365563233024022321509402072551885726229669026698312565957106548034511637911959835966551759607157494346240295325796490885695608790841754302142753689990681646316618896462776729676990899466380488755570452639655299895562537344588209919717086445265643176879117059562916574839859313391971500079940847842925518818930947891822322871305383560528536620971106068292689371502074695889350521763369660338803473237092093914583032445692048587220019947302613649679560839012378635296942004889055477647036295570261925259951876486224869799864778917447933009061508005182937873234833695387465221473666364904317172791976119480066361405713260944874342007642115622590208687992871822298524655140388850794543379393753906645783590859765108796387294490727727086300686322960473494564275220761271188381220914844839003714055436411856869617417795157469531528849072279219601702210225390690008375480872243057697337018702187768871968862216620530590774302034482857570884425825389695813436803363218404904536116547878899084529923871322660305648763184080887066821890509621874815708778315411401461878567254353674006336936993775262417831188510145673250333951933823917598316445501751127274590985242692464812505287903071032745592463690609006125268342276073834976931667327208182716526318018186711541023568098203251907035441366365151820598388961923752401889876346777265866870007322628180565793837444548737965765923435353213148706813479515884507336102966280824233266824301980102590731660856939802740620019693247553351046452936302218515193669064309856407384812984329940688716705223829025196008687005363797289796435650063212256411741434530476527000427401358859468268956243812270033341477404863213336561501659867859204959970436118560337920579797680701980697291561327981386081608065166341784872995586366144274405922822369941843545884311534609982440705476133447585997140131093658977761512780439671558367573743261447691323053030969409288730653228866418170140487487529285736102363489334742405834802102237243362151389341391024165193092369526527316515276101917273536099668897023449344150630076816081653071591077408776622111193825800741282177812449534001251503759273041986215146719143848029706382595062271411876936625820526478700436643705954721072761021851080489721610750909415529320482978793727817945562057594541782197912953910213918539736803525823917385817063010468106445984964441330051714399789058999962934959562188429868717251252156394062240647080400827891664419780793777600927726602169162178113624176809147410484840394239772079979629392131747652116679061909091443194914709744078681624935066417852962240596033306815479715440876551059914199235083208299252093118696000866176255453081900091059792063896693079926763573304139273750798332404999561794622434447236523541418878149951761727977075322681156609905948489071228446697627225446236091710776201555361795372513642310962156618142290142002083212127480084815789737026850999304771392715662646175345737886176602597359019811590371025346833517608844809596026408462014530954836596275870516874694446343376835432845019218940250455505237726311014868826879766665458460338964699389223440504292336427978689352100562238675784870941994977120603702895530057021432925770084617958254618697449995896928420599977954225508580826024241251866225197308577172352987191760911965881140737356417704191961528305686248700643984361473817449825981789280112685065954752928917375605796762660709181870110352885085177966571351736076735829892580783404312316715143076892489346234871054684697605832612259658217663715008131665051740953936658557644893450299057959211548949266550868729305790858234760580357134152795046501948266881152942981664567755843266193066544773194108702954052800027561881014164125223847500051515295801412460352827498362034254441089409929401922875293447276585782308292003846291603935896851760220080078476752698214464948130881578047886118061804879417588812952257247372485249948446768060149969916497172157690149028454182148385625726709437284492759215161741094805113903388377682074071569351572482320020797171606325650305471182016998657645161941886070366301827364499932543157541096495682888718467366472525053934521671440645020494777155617625461778290868173468709812837850263788186991990053324060547993181324381564015499037593094884394546309450383376950952694765124353891139434229269222104592562270452696897682627863644168643677815379669377117760257315171091952590820212611954944269191693696460918104472353592754727956188155683055725023115041419394688853578131803463630583481349470616664608575086892221697371376621226303798533727748727201439161724372968403599977881546885311953796549424843095908861111830851443329463975968785002594011291030154681720958879217006594578802452709519454046549165645147617495167643237512513734451667244895538407011147512507879376024829797230636246967324947148090547711071007209654806612843031808094797260690304529656038947836460698452918367844520274466780819171463716111591419649073113324297834882183775876212517073047259245876437882482508249454864687595867053926959949991725424014976859574198539668772133334515147885154548171646133576591141803775498247489778354932476981250440415836771752571610113498746580842709594392550097664171867034123486071062826165287052205906493496294730116472727141053376776969014374277867394820147237913554986870792256743565925992547445498616564992758147587858415420511390907539450963050351069999203978580288389687916570710825538541509976284913431610475783506731937775767866552564799930361417004223385345923142240613945489369966171308761592088684556352238329334688960450934112680025970427900979440533462190407176012880837546261049194308814851209734453202035810626906748427165146613338439524707369136572135865035681433705532495969015933251584347851499151082189324760554505507235410317838294333668033142628694069307895205771298665812195414353112068608628997973812865957371370007102950354827421525579780515706390152621612059544397719373115076009700456421868209431190734395007680518840355538660172342200542021114052345416837461353768711413242173058175079185438010884713562826116413762580503162781505852538267397235206995692653103643876483971610433372941658744340564805620372427571964186449455881499732732546532535454563965259201724129103492315446435698883877059729090248249689442284802069351904856988277876735156115531101189391507172894734085159748965697720448089598183017376721682752156454816149997050077608052081934898560419900741896531347801247210395030016465109301938548176892893856397466367412926509455125846615190781907529819599474030968103060004549854504642805132058484914311620398543183536912668931582229610764289184580410798911431092507926174114674183725772375845025857868435205438500269974350688504481111541606830462927076745509904662404142092206517026085592099745826979766129722863463871093288071169089496602045479110441171581884208991548870147903067393534206045557286650954834209346152654867722362070698364340973299478369687828192047259785553283892848413906928238120541827897211326571420207100347145457553388193895629505244955933701937063747950216009017553064674095207427122970561053916052092732236870492915652438140364018444121842591206601761972058076660922482304113602335747185903415068532185563412066209406679497581625040595521226442709950049620975121990341721198258670914756114138708252158981107855031985054455648582516346689276064717747592259419397465824428336881660449355657974068955623184062736726407025690118634668768730032630582594359336166031974976470530710545057603745698636776253494185993621741960914069717658966993083980137220501433075030001010912078750638419479317557991854081884036791503173665901699523329772196764360833584499448127368369139067078381019725494917739925369810475575707209913396693733484192144310798519543805354382438722239392553420335393161250593428464600673730279975743872291267453750684629632381169393698021006289203888951772374571954960517326301812354999927129027192234478062394283823422178394225108163761181224132475887134846869960997281170233836390775447703877859165082360116619204633374999798704134323568714335675652535464975191272201082301169170222902934279133629855522873988528666734815573585777521261342005137220024932562868208952736627577916221505409427330965412206875802970247064155610142811812369830149876461187696656849379039094970984641817431618936657292962776793583346242420789067269761147184346046509785516946268969863922659847719189121276155323417149320367186169083605518071592149307783493663590144353647690180688770734813590126739887759462269769055119709441904609486790845624065785495482162014690408955730462710947488576635325811651967125763547687952039191289299111233767750982522203292098395066532009566310617300294498222121135228168495207343905504752689594425603244553793837839337922198297600759272481648193167128509805948255808778583559761437885398711999395732901539103777863498101921473053365822422227950936404903955054905661002952572629062473087361484198992638490513029033812960326064886741944053071337178545499585443495926976663854208001653484425782801216281573914094484100882515214258048238174462937531092873508951658051243093796451289505808293484747118613672259281856392010766134906747580761610857201142056188733916659472064252371552655013469452422429604159724477279043559149660994988004566146948261350111299022416839971415039454283471720123298787251699460912419065976911616346216577963173254678462829628061172709913792512953683380160619020631867404645167990415800820848685748227656864387297631904312373951410434345670844719638949208207018828271101568706270062084971265048066300244794818982045894288563342821591109985510317398033262193533862759248083421263722185560717641759549023142399392940480211387033744684105650241095619079191477899902009366056644952093803424085289746699671113551842821438107685037461069024080271141806615457435236172139001116782350752702786085591324474663569869224946218858821998244949159904698505703249721438711171540447101390852724300218364250354574216589793892409784256240547806902749181493870419355719309568926969977690520902534957581783162396971142928192779136379549977412711307293494967116182304132634518832125336147853800186211795303027915299280748506253326774869147414672600761937878128600876614826024422659086488049154803104138936476577819817711324440520558219931877293776950149485276117376964617693281184155562860469004954984345293856678765875101971005739002117870997244713016590565330918325742049150878866972175730086409174099258390790490381640093019602611662133648434032034095890278890124098997054822920283584745762065555063109437547579477770682259872381365026340258982102544761939217734388030567795073350724525750026352036863026647333122042935709149334193430336696276177149549951976031353687560993410321261521357400113877059876936201554242578690258561164686257269102620825059654729770804718830762194935603189525531862325067882070211071864611660916644519897733573446249325553288354525949719034458061741645828078812445186623881306565753498681672576316419928672086797033884407109667313889710326775662282858856771648177448337040753276341711307694954271755611739026332993731316109729269453455371537038883487767711737509534295921663778287890468510960408117753836697535777165111678638235779880302010935087458386364873836187246095364360953961327424530300388334307454505660677366739652869665478049822846331327762891912595909024993124899616943601546464458360895132496386521698875998821300001654502336080181118621830592489867653803807210674156635131726377765590994228705212879168018438783932774847475119353730421283635932627799650100425367492489768214428472705259722457743715099032292065248427497986045629220422908583192511255434592250445813892041272010291430332894682829297808044937751038768994450033607346653026911959815275445020939035188238953669503525164097386555549870650104576876771888594897249062586310513357556109168009734397999039014600470335573603801346968402505428322421945685352949808779165945498991482858636268258263488141778062790027276131499463018901348702952946128807956699931631567544274762049618964420086384727966844944615029125246272709316428794362120514731937135229865839046501929862903923154578318752067437506798496824994515074050970760890094763365190207946580629311624378055783305334990984342375028954796901224073548106650090687767886664529854578176747273178596668188474586823760498962810794963693054569772576423401539945087450499980059854408330645870303814247311104496429273312196375128899029046486680126059638672064421404789122133631052960597512751231622948004457354143280367375374606724192080120510790328597686320267521117057558502590754667536732333164370708296395656383317653757768608361134323217759362571702998245607808806828512739125278948618423739591230717491318841443959973732937662861547568081329433675958501038004073989673274310249445158970759730971987949305215618573450807687028937276763194053684162726295466284040142315640345016654050921172779575037171704301154385138805465461043329407004628352547075309424747137366842733021478272857793728177555543929780285927689631561648278671373514012527076810642896450253954137735430864898920170683199275041837679197895514574057290307840313916365977837419222749615674204709832116848602323246963482173898043008833019973193970998355028908575299697485578585291785898299168363842435808469201568938159703768362404625940986986446012306554664378922233845911430237461799667923260223196659229347897686304399505364552998184176388972620174925052832225569526351926217540888880667547162221637968926751549387354731131994666873671965707291020222694171324011236831361504651869046568068935678116958190804263340836550234506793435279994500169233540041550135853966671846865166849011997072194113240560966844759102481977556895148217233724919837007674685679063315478131931170903478375575801218133200350937150346239664058419012279822750069601198985620208859869703577583418732996133764528361025258033131720403020911131650553584409158037946652918331945807584473858083303009151723758322637551905765246326887294408260787477189662628070504829374006119007611200499495507412348649204570053574130160039336522639022168433734226872329071713272015972853880755582632871122526452527147318628796038773720220387730455257117615267251058867058054644393638950834469215743164098388559509395152398604472798575411908315340548935640755599643412364271046922059425485185238469101334539912489606903575261905497066895639953141698595757097392550019813218156592183484495315342542615717858881155137015478385507437874710724725600779907991182424939119992358955140744581760599300469331426392992419605313796322030272366660926503785563004767729259141094436606381361872020042780790690105962085123743060998376159220993172494341994079092540044802626734686610335640280135485053971065360658597232321603482526836684874347683693891256918994788307071971535253068953278807227989903340030063741065495416783237108392105550860182368285407373874283727627036431017399172336621913796867176370299003362299735008826405530351281348234367539189439659919954043246597105751331509136512890107604503665430114886397279449590635616920029124194264088646777033845174152792709961153131722828984653558660185783669250421293781262082294709877584782105494672792753352455475671497657104923871048476168358157275441604214016668451914844404341727539571634080762946146157432390574812951253912902324422834212415677403376642086739034734763673457282551132474942819010685664062257788947676627906328269607939548908632306572865835333475212101484306020715076905908548838891614761023401671288282733295089329170461053237080471171835215007235428147510505206126460279545852313057619065886233257987458460490005402244477698073744929124103575808446659513921855881537234335449124434118450594797688091290560831983507081375498340751529746765453702988838455113994769487243320172681655160427611682353227088769915697203149209964976325066137559955065273281304424490922583712794503719615568894721850636926742346091275587055138593208154445855704949285583082762300838761635287427826341904218364776639694777376680697669534383698869057927419884825670977524659830548387401657764749186368185819977013943020169865845160022362262908129764363385398762349171179438298831106814326380215516647257022928002169560355157555995674904533864318918792067570059406511562846728149931450424810686652775558782790217976225491940540239620987742570161774086733973043885289590575393591292104738559070613780247502083096981274300136268476558759328174458523143951304866762923706423994483697735447971037819578970684366139588635604924981347728196020673769723060022548961312744803171763073801588569029721032921334673174307876818002914014346226918883276320541119647465927992423603045830149606356590763346619267755013269598748958715600768610015215594503554416228777546019341535004385147177237244128864414509664774620138557055025178263318204462235158878794511688891556800944146508937621597226119661866075881162176303174883617764662514465128809607939246545093533788651533629044560275017079866609505689231923427159427619805620112947589405804255599949873744081362081684765951414327965691318041066400273471674572747121291824417230380462027508551826134212667130508702799977055395336391467011274101433329697084152240516207258731072186245636048314061780050248767929751946662830021158525358596770464040289241367315143643845369832761130013300444387623317604741927584408964272878307741395895051828051986515170289289906303086071137881554582848086093220746288014565423921695715521940605985533591201740996272676367201377573263365381882308933295063581420505483953636542441581205373731215265996810009623476886983866221293487864878169438942775127627376357382473898706424430213206647514779722392421807673185895401532875798427878612398409491541691223374708684892154376663923575312303727687803885073858349249009716047287282338066671521305436602183358711803227785500930044326855601063428334348847615623528035960016108187702374407834647218158359110798753750887779523685025068690428459830371942720156687100293383602294176683126529237630957534969657616106372753403540722117138589006912306351779039674745093583097477756184556142208345590030346097714946708604910553517309160290226816119415913920967763639461348135634862168477124983009841720920639032306961779103150333902066601536271986783966856693504399861576560659748562684305085819249848659745129477088904578487217754902538981793824132269942820458471422132097797047124364251634497061287519896304540546630901132760493677514899455500784814993095502864972401029971273245364037177128679458725674340612855206042578998465117880236922486945176512681966288426026013184949886051878579432257171373391708823584027832993831730707307425475097503940896574809111779207047465423213994849559549086204759564551709097678511337000576194019328467526875750271968130006835767037399360708365183948195123670553230062980044191387484050492116789577339263822301489326227493333199752836001299109053914349427988732006061152491027357968229119050508450803778860333605142835773573476352594347816285876638124057990810936129288865219646547662302134401285043118239675013607735832344175701760056860680247541592018454281690574278525003389185510327509022454037459162307409261657222681635630755957749218408843966733161714037836895366686273461509603444787616296217341671769282776938238424971849064941705920999891231708749669030290188113749863331697458970700844545225463303513122815163752532727616956189979090496010953471779404900477131201146195904839592204178079295615955374120461059749587899694271448550892158499523825611897905648109384197252158584825935147187435213121134568085052402572003894213573285703306642365897749310242865074042384181576019691741644444021118764076888177550364445395780375806786234091293696120643876870832732190008558967591524511733266795940738954307734751131237044539620234362893665834922503222497626736709024634589111955895355040833996986072218517258277061671109597075604347925806155352779117545444240499320098815277769321106371878248871533724382041945149280827737377743452869686443229135467594663917580946517041971237171775933100118249912481415559477895458149730563177287382145502918009765058415907714219479634505424105675953474923803030823632820565518957499768348312010159925148467227148010085272032451304586629679376291610358070329047252151215918815365036777447261337507220823557929836016357300140965684010988887788927509721025542248848569162717467215225809873357989698643597605167449805754535370825040120700984383432044689986687229791842157155991121110188163672689451252301013075637773822990743014466388018307667562166403943061326304433243118524984629688447996106171891076167700291136799374655784231772959928448280733550930615355044819517249440444842603206079492660438598991954148134043320584149336104456353884702102259577842353594681610883877264067448628931828523233297852320909980297158196468397432859684541937805366426065759338081900475475699050190853503597355029344710305400043416347569756706110773412146642368992501051421889318693836114060451003155927849292344591224892416466047409605024125702831750643672930696447534264024323167065074334602824302608383567442596180012014108742909662788104989819269247102276894476909450384796939498621416629272408518646767379840392140842392626378345131118473869457000387912564961589052544908325010531958520555776294773078519157455298433312817139066007914614696878064193091087697838602872331033092041979889467252111057938943540255824333010721866017327483822168294497066173301612009929556105445397154222553241456960559443611368019485185346231104395974847484962260443643813399598080402655731040159070338848673755375999982122896134383948132162998695829520122268371280883948807334026934748316725829260286593611522022581095660287199898943178927875290273180359843461325947920852722749249204482148251791582809592193206268462023390815062069317029178400476999589561738959417635172084033852697037800295203121057906831453792780868386072975647687491385213181677702825287408406291035848473317427135599936174537928793325629428020230655097558084121610844964865062274463351501671468779204183286779574397764258269385788728931874695174867546148417788316423821693617710746330743937112024178695058368852553819784147729593118076436841440863847491624386654557702248506974377763234200718494811254456708693540433161918882725224950672434076705251909690481967319630592211285399231204809147810669722018591650567056910764821194620321576659772211846491075719358459846129910941897777607044948057969408848463431642962129031017462909656212244863708956463569309369138699819875204177344788406216539975428094647753773477760543067115409739276251129750785322766631181264272996457631640361132241919216078548175038605365512254918950074554807991918084569467922949813968049948506715988626734414219800017206336703330383321742172259600643099363987130992810754371202791919204173317972865414279917984945952660585949098989680179004733043456353576757215276972116775173475829233562799625456264728084637070410630699870350785165613413841199837677823762815788076146772395753076679048217673233903051001496204620553119722302581925374041478071423553891823953730603179104089013103851600449908593835100805116121042269936132711582829689599273634676924877783886171709174283316669579470987463860167237212771408680473206057487593371094501169026280879541860126677078147828299204903238902887184301757889297780561312307622623556283419192052384780874088071245079840706509097852288966415693127813257141854791410528840044243859031237025209778987370913626007537927946379052712281141743090829854156167546650824638522407206189848884215047622968696881744224175781409505948061239957027168513160707513828683618530429890505683387108433628772815183045624052621619091355910164549808278783221520191206350738715584122227337540610756063921305930510819655402905373118159046190388736558356878662412152631554462305202714759043943985409595796739407631343293667025501208464900886574802207136750290070266222041516739417550449704593905133963588166456639317115017007472532758333814683834212715493352910184868532381108456303978899216779363410395452606598627771208106581197052081370548259431620786230430507177296062435422563926184006375083242914681788853937557543580041833637507901875954662444260412843383561555888071745823465760222221433408930263247380397972443631966308884573800159919753990400399720200685553508781530295064049722796586623209732027052740213963310815038431083864070327313934417920977255376044268789083797716135115791947300074171048528950376568319650531353789061221995004640520904720182934447945784519265658857548957772293310910261337184504353909266437062205407398050492166583064729878441828084213785835654699503914482574732487229126677424567081075671838101194400574809136627829716010969886060158010020236827836617030797627400055896501890648494236921060819853175680294081453772945609849945073953356372864020201542521916440977049393508096451717795213822967947354434205456995774727667384911722754329854186472010035281994994670871265624540453687509850182413115210449116491813565653866265940134109349641594280613865142903574182501783907068181466898520764648014425383011080780074968979815337316103717939363724875319041332502847075707214302136733720816619275928973021066940421039088841140347264408906093751212665303701746990730354460674131549934160809953383415634985941918081159302550503299349016446275156513960719791483617588370057326096676560746447595882685612503459782852543393181026500753934698350448756229355398374612206895658635907875468215317275072950781913768451728408375819215387235156171873599144662590762421719730941653216404852430041656828622067615763747936846301349950717696914860215971945225970844300055551685529787295978364870913775004889287629955034024915013930560385636666576755617070495241283692598783523197658710527259386104666114193720376830487869355447593571629123767130851390743108424264184384738012354366191524390635606187371000094876637887649888790116300347275149876470773796991096030794177888384160828304315019336725936020882525740829833140427137089719802212728814827163410824569703463730872358992027224826790601100340626903333065077075229417335706887638454142323353252359608637101205424236181708207811152199639318270786692907600671076012761467027998205695215586855482717646335364279010480368101240297064487065058298303559793401755415821483425259004006929812851280310175954114800851847017326947377416604923315990619509806587912987208671138704012887561737076104693286926568655462559768641938841158446467964907350661832938803736596834788304331855735673004803412200351419646565985324401349476979456828230459045497738941440801593237211484793045967131278359831621132326199012395369247054929253001812217698745463246221558879564805998233417496088514696451909295616543264807989146038227230579345071828006392913442254293040222563186510947593911425652344975565873738252556058155932409319170011785095761941151812861591315225236884860296033780907989552291677226389690857977084058714453939830747495925825758090142448449248857192949629683933808810884005339170683119674287779720454802032310475309037357655681288440214521244013571545652332884808775234667982717137702135195938591643484856226894925469558531535252236577212300242858577533776625516923262920851366940947106606927142741063177317484220841966670881194431571603834322932735586983907265071036997723593511403269397262777253497939319791393005577299461778801604976392033520823828080118868486156093777897079750326002965764588359140221090156180225674471457907754852723633159715030763067445745528149151617456777411563549664137483826173986868162734975194128112429161664507017041422418159262179527425777678118793065637069471786012200152823973071922884576470925517415902519304395335243670482702064583575320509480030236562878896104632568004996807474458147822213834335053355233701123250456843904551291486664025642270634782220365992990137625153095648018280793951346519712459082203614361417455878488000981848377186251858714482664358627775288664053920796105222284694223540928193089022432487651475224357593275871534964715914783442118589539417979091376731155816196186317184142583293489256390880754345223940601061823268114110592110635472763586533769730649182077520056760201256944826881968858674652441330827318421722524241298344249527901321735671962502331940700366050184660916414039936316760070879390954145372273211514376450680911610848792326797580691150534243078660613317520517627760291338357524594470079976146167385435171022019982618339685999693912186657504384276943849864800178643188056220058880066243974818605415537810718624545182389819856593500182334067409595443528614588528550894565281227642813776079147405314145168866653690333951678377842056326412558747801094460460738366270054592347079008461826812218051300339509062882877955302703733786099022490842743153057709987655839827203539274995746881324615610346816776047263839331090255938314218540010306227009956970553497116053859570432932358515863330469912993433827430764758417750288948727859693768580624633467106234420756288983995320489704534818539999896746894983617459687056930043930001375132027309560123130140781030311319933753973678175636332121921418161025665167912534104960498546731869371220076690290399829317106268648716193561552620290280662290379882261504289548593886786517696313395528357404736180337765987443358248971685944553675762593027545896779615604228571363971907147936161441189604103509617119706189916882512830134179246294657111607325016934275736810309232856992015205639523782076638041304560665047446961781168321932536946317094845927161140142467438411071737918729086962610335155269613427990674151822108938385535687223204714257472608454298002907829518533771423603199011216148081673234552419925180925090698894053253497115022813084856167031288813088614724229104068257919527213833731622677302481531416794426464610643665087416661882245834187709784019035223563168151722753241925026634583030663289378903573397615375997064813170121317621010387678468843573075198275936284880692328088478519550684102854328654303844822879787146999668285992213865048981995358539595125411966491403700756316939824473666817127293048016516743924576707640176178179282075728768347213331092364349792306324507527880224829014551761470383917175028595989869529630699398656566689869675594828367394763209702967007397969061793308701725467242583495160837137909258802800394955950049935782040369610347030644604511588368649648453355244218356657047887940608129245845526737711005467841545028040286434049007963336943202672210951311330639541250083484835275195611305806523387717021558264157175740615941597991053770114720145544619336774197778375130754420595197934655243950940510131103337202238119556493014649006481892241540985315667672697103435377558377027326338234532318616474334562850118349322732335177754021148107953092804230793208703248732859580356998059759177280315539718832386494972542059001419432139778540524444158906583146446403488162969450040026884908532319260545884964068235401235403948099296343944691476935158362410908043014510310791312222577710263934685992023161680858666389713149725563516686269888843440649936838208852136582808858636608744148273136259524920289969868639000983699616967824733144380778163295846935327605843957096760646032637450990116514612317720919791387658188957349367105087724493895368982233282907544599514574053572482122580199488542270697375268138055460824011203887718007458062285257694879708118686846020658711128872283373106973219122229276648827052856252463848018104792425716028797592206710618499414485041774831337012578801677494878009076739766402577113403079919269597050317412795373966049105177305384331406316774035317271188738421449568909866059591563441036350364260882328391004392932367050488081165046712133429434073024285254845570934203073749974904775135097604254855581584921711605844914574210427290597479945130338096798922439076478426537327888845893641758141211993599895079927118956077256026891763977402793989303602419533060472551676083414582966692566373746876287349605452556250726401551912624847429407914000109486547765347647953903614844688725027186233536147365215694880541780543496398599510015530918309807216070414059299564633792200734297525062790537329639614378558861531517408024160864726166898029969808823302281707369736769495118787294052729704261561112834188162513167674824441546877396498004182624070571301213054855648217538220123263850348590112600117244832036370715478129301760070417002317420687060785388913503426513205438403198696370208003956098011071663069546924663155555906427175437719682309534359442037540402345257946874545852648051645011878323440894301619794028051401231368829071357098914168098364475202359887983965320101014074716044170619550910195922518807765678722569507819461643304583824865926887980473639327788784665261412197343358721959088462053995812503061599246888962798905574918042832208811346825900911482711194398023824829910198889656927827727033091400194550405236921040185728995197085401796870234230748740416210699137093640537829119898288596385385154954911126036978525621553783817522459689468961369414157216364981240714425059003509765738675832473094727317006199067627505057667445051953560853422384609297083842530161543848226507500316356031735271787682000071675015259012264747909367305309354604034363341438578085473983367857933240614805630275326216225232193173057296502494888789467271341042257135203541358830821240490798289905847592522786393803011258763064838611545584843708749624356715260860019656112996821266850872383030255236445012831948929357913694935919276962658148234541764844343352072568679315053963643702236924589184769736406874816947505206978401784273242370708499054777435856628458293361292649821140667277531469895050696418917462400606001081175453370210280180978052620879351550395096143676441440819862974046655131017969064640735710342237930473232684120044930405239792419420184709724695542023073525750926733649502648193415915340282176362003116516322347545334899838229281406625370554898351302243529256984982276390800067612057933984897553779141852629478556097373804526263559407231588138984188926313137584380848957549565881539533603600204750587055632264419841025029764049231803865233289399832823857400376771079597904060665947936917792043580325105465735601342173213378304632379129526643591123352287570131398394916569277326459014857319625616364128918398447442390759788662286530589459595917252995539584444817306810742561942826318280230722058539196221889663482554616488242517007772870562575251001948180357131892770525302240678910180674889731799569730595854871519362528801049234082087703659713419742723887232487951824696586534907384710366012746688180203463776065798634805577705712659351877616316877149598556155789429755359597869161691581089069996849285583310704002363381256417747289169334913974677090621090750153302006814873361374667973393003294902326998360524817042359739748999920730687269817221362272972470501278241424097865045284243189600747583212583654282241457918660488769077299032737996546018654885753275940500337607377207110018117857444873214565973133794009952164625403804813245979713007494770292207005905967291770031541070416991411796542023387126618625794052014519363665269202116110538927788677599162103596508002355850916677415740200044802092394891442275968778446448507721371744739738535112977991985855944620474434483465223233604053312337804727432327200809221554731826423142765754794335949526980767160233849151841464578362136102750200234061066780664835829032524140887736165316346544877518871192151508406879815378491909471524737099841997882253237389462586243364589254205318868606266067464636962699007691063986786564906365551922831736292041207602022051527659311736883471700445139700607124096799197490887995667330495533047862219850963620623564206150145329590792464354203177429251142856893772875793341431964537869867896136529758928253131364272745414594869412029058156150501797412950041044895345125392367258414900052767043912835067267149613650485697790521826190483055663518056769663178206527592212952899112998527675744717863381029761490315895592579004962689248599121600646640825245955423765601675166797354029624062573984530176384870734730442240043179850495955964831348712625413199359347211816480113684291411167872498102426228147359260743089188029652150720456561613500579421476003408618946419222372960194045766179692576961254933315596896868376311362835854348548758219343552608748583491485897780381685432186083475390336779024577829257522984243339463929979856691990285819040316105784925394258063985074966236211849154139480988645241483927743987758679121855836097416999915765738259230060742756908076779561887662524743382558755823366727812334554198873609456282374572725950220900660957028384107117419209894283774090647729725287349504266321618816994581823445663988677230338559037149988064503378772031479299780668786348070256060209107297154964731049979127583239409499359614551625668563115649191914898510408578935509263895112041668560476024681644826882950678212189550991851266239840236848029886100731779394991830089414072638930994219385935870615272760828172269738459020218250002034351524231612141932556079013375043614300206399855326824086770437633275107251176939458561357282491969294316365319263930197807253913799900230119628318478286642167612692748749578234852502813745957552478761411577853658926286888390960342407136486862655111862432571445176113832239970054327974566307976004160646902635717049223544663912499745697754855491217012072752792309322732877148382145112847279588474771843144366665863211516432781637007160275588982713136167191350668950648304538669157001149924563417309320386753610211543837761198392880622237032847035783742534481548410518681885024813384317256061333694119714864436368204649726559304253726607824825167912443544827546007865889903610755771107991687408456846447478741314079643186644859013848113606194705605575261367686943538292835043644958324963617610517875096891341804908689300789725465964100127267063910813175712341593989586097544573536172487463404645124034933979450429373016213528585498472335009665349992733191238319911229151744867045229601003323931008608726436089821563523420583891008702058796792808424585785143246251956235010296557014065820993536058714052933032588445685248936815951054723597863862803298699706558899421139958254000724598224418897144230337902437000421676216880704065391660623392459080943065756503248982023145933471722270913317496075402919780701235452736745556726298397463777339340603809744195085332175842747591471501657034912683017877734696041082617950205670654441063577728171307687647189996529868291008805907100568274153131776331403536513869099308515540347861595227509018987847602167897977396543807392348351482300469514350477176376194444152445851154818394264495501622982523145625969865842119270975533954907111058651277432753170972941303360009080322409788529491042363781063304763256424275201851332653738694191053932118130672429561257805591668513348315346617203776933185316602094008117093341522294878946744246814405142442158572613296210644677234718584911827634375355570438673678038287819874011017318466153985722882903337331578226351001979151235891005755544981168083214062610237685220856736485543281706081570173354861110772540977373517670678175663395950927012890395496317935842402286394237181714034751451557882334307066046375095572003000332897934456264887156936168974945777828757000516610009085063363886274202039037516082809404117419166515062225060162365865118769686016373983387473662449896055139587685240888596061673443974486000637561938840870155850178106508912801610657789212445227847573456827802159460936181654147643911908839800972139768038978907353508103245410408028584381137891887362495827832494379151700667366282691123611225832858691837839421478374432387209514611184627587660889807070754056510926384918188684156835545516256884910854509730946936253374004885536646458002082851055873646406022521299247628814326200033701025380392342650191176938364990049810929716089363235755304200473876675476512269128865434500041501844839240986532519117131075120449402074849365547835436694799961957622259118305833013527718125764534128247853658411075570225737159494427418750826583562927086271065329524035397052733565191263035608004847356802606591089519551818109599319748549090697659574774683120824778047667155879596943100506856817468476735100249555485533637555239143334468275258424671513642317240182280208110009195461896177207793335743159812352533316531822858647364343618006459571702676946582230342702910288733319487506492604660600973806538765308422203828271578926859360612907646278644418791667887688148959691596807242017585617548128743985470546763253972038273170319005751720420469959809294758061269034461261329540877439871015892198124730643540744848162765129180652048743127932317682511427096994080091453623735790145914827510133141159099505302463331839485440624205786679025825358097062750356396742284473545234793635572004125460979121556465511622608025626937254126551508793263111275947306123238848360838273567928269972189046687957932593194449632567989085832209350003660846886737083766825092836844452446995735914249391319849443717720018317289106290378933461360777220309911664644749315720519992964868994936768916149101473604381623559042332190970933840025029603160074629983337258265434362489507428257400714439538085811503656695043087424869652268471935708408476529227059145044639697556835843709965570431664503939557563077335420560166306373574083021602534704779177417779010688477880888861376760136558669698489152824606079568431393982413378147027825536758318159097763123544083061498331536865304425662045728461531664643506908698288485811950476465403595063474786451334484541832826064407118800932326257916697447823468756392000352213136294891744260033821427260734884818510897024282416133467599574984042981450481431803159435680062981447071242925144298036581162524340957763448880133739322419144504907005447280838190741394109819377964964783603767922289973768787130399283463656816678872831020685753240112054927787829718300619483062951515948705689524494333859018594731615688615892867334089487465067253788793383945826612027251250162187835190147469373487893715643503433844940439653148490867945209662233018699727613764673538846485494885667164305354481130621162758881865605684155314379239561538151364393047711157997994504668603808339547379678802877366661435096709894016848789315839773718369361080689502643632012016833088778064558161642669877669739387692007657443303699878660235146421132723379099377072774322828757173484371453199046159659797426088669151087746837703984202261432570631942099172643912282047288139858523883755537382379591020349640504559585902608838884804027446127864059566575177581367438144123041917736211486021909386424251815539100175004060145395888404687222388778269815472045525575285726711634361653963812561885182568131253233530378468122407456193887436643755643565341033559123115266108238687370773352302048460442124235223552859370757279506830868330873046599445727450108506317790052557826096032824678080254041202299338378825354121993005982114257388998541293653164624086591021498925056943797942852309768310555059601606217763194421470823349108873619011550910504069871719662471593222148033813257854824713357436741579408726000505872333374478276985155081226430126831413861475015984362645151213882205312774689580647042457745427122350379939270734526910985770766037523026150709117663943676578065280675763507042439993990639629856319864973387810802403239094168315198561137629817332922784946140469165730226959792464456080827377996264482102336728285101291922808930895654738594026930308746210338429042693563125697146477515410127592892762067416902393893199970909553683946461496682201383354430032019695446311742229312539146832063763511726771406587826376728695562484899180232299133538914835071525689633200976794633400330102822716744662947583260842305124945302622383181345855613403980728390777404082364695204412483332415456290015642467239110531311461966414428864851397278300203063974771927016842511608241982271502941523412714094580784463242154061376736120347219844548449526649715238252665166914206228310024104310548678832290945427435660667157192502168164467170418208809627986443883460042734582471582849409828521943452889806199172995105667322548747278160368687403542199594380435583214142395130010135716211388659172227513403081282263996013105143163301769609072237415998836695100202216756251186426485926055859886660728034002611565385167887637168328813685793953549488234646468016120596646011027345468538951038854205432086631798805480093548444670672110688191199947625186499210594647852452683170679943804518776055069440582412479067848909944631290746579580979185549489949449125740383707477748022931949211546521457918607584648758047229626411321737675342132435421017696006361466634737806920792532355856374349743654382109726255403840206861184296143934931736850853641096665774191307785798200382318378370469166795713088996917044732552202979997247743210979329472900567781452797290258108051777473340911488226798478138978026468157504187690766438771558029578994197133390614052376667148389449201514874019637302605414791175357421615467663566625538868538011036167920160112236815155033707796156499354028929870234754753297761261396576503016807489950831427645556752061861473440041158955385526213529003494211252750846275913263176945254703831326629324207090724570005782793096200894607995578085155139093892173521877740876977217669293799806700662780910339341176044144929121400588364131988303968511028373220616670180399187569359983977535784663614139444566055950348848246334486046259661897196577959165117564263564181372881514311491859179943116101627334254023036511410217971062153818630809635365780705522723084786051478339523313048090361731772124622992383916588779640636233044702483165780373560153734199506682519556395351787059950074925621967512423242195004296689026613315257314488925620977401634083405392128824784793968215245369273645765562306611249294984265033396052624891734640453199511046415401069835857276463968524506735853840479405414641932173450991210545731512452146850303884236969774579952465981012156311306580112372555117884333545125381593448722459390612819965108024292627391499637941744085393947886012951241383729421418780065982409661439995654265746648352569851878637842263297676333269294034983515472280638153023020347150717865351227809139153019442594381965640461988565530574984659962219047362895256478234463000517873984596685680005921062377218943579535838148555538211132237596885823339958071880772840419099964680397199330149664602117512150054525880398552214966928912843183005142279516812098305074226204754707331812497324509973557960692540834290294689549443689756041304632826528272632103385085971720658583001687754436884981968023593865750388606093408566879668644895760546572909939746505462642982085014052784541748210107765980434837346420811554497502582247562518256229757075799332441193519079758342799618571630364971125340411601609311993683171858555311973077365400537149928532654004532152932173049825337758574824251852669479962940787401639382261228494870624663779770272860948805108715895141166642620135861101475284024328604967892349406388285338289677964132978631037426064973205115533509275356159076330510461585574107549941712136884414350314581666724105670221495574657113386001941434089851397693871457067414190155157154374815704103669006356717776784976915744868110331793428035760897208811028145607626283818395656680740957156210340295402949221592719920543086888052110392314992332065021010580087269244728559442365169706647621988296385146150958726951060369264489516862202155580539017315285456252817139119509384467280189718306786067430186929744779594433385760014925539089144854213929231214237564776597295861311266151359480739861047524649771161337142271328332306566155667760937616625641834246412459359717121506829656177829079777565214024302213867550431771934018395642202559393472875043620465586116122481849601694304073930207800243993743145258026693663927070349826079867526499207372570255400593096291190655193835989313487203807712693611558138728976647976758362988315685073046017760958419016848349054354152473106252390417798888114946531488900680888217532366504795767129581380132646792213783913152256324316352768923717363372114538372135964480087006390529688795914018838799279294229694905277455729601159593231169514069366032879567004892449444341949430930163712195222902097639460961133368830607198211045273516463155324042112920856379612767281505559085932758951058497934083889706674290574389241133316900268345054768111648166499803093781741614538665115428984194534446942694210361369759134637119813681573928970971581010431932092107116163447749246554717017258990176058006017131592033117594938083383191333816795406535575552585694627613946972269198475765343455160568792260847266665736838808773919545605936886116969075149406068161225270495544232043587806799942395133690837706036117217846114568999312319071754153532807186186744021893063375344757568824170238845970154485192704983587509998564626545301714344759546318388365836328827824829342164465432327209883551334804415219266101851389014963044127683893721816887581240241131201747509803634537808487494771063609401352714768144696841037836855171380644159808988880789812550869787601141227222975225015028386713726555709996756962993793127761588273714578809366748269731548481154499387871938527062171559387251965622073120562546458076097541578690127251952140951375087179576011631887327258464856845425050648515407014893706395711264841948135694730933273139804973255166606677039935708091603879943244848649944564489640469993154574175357020130424012681018513075746269181866297310647609842124019199621544743252462284230024760746331629073183445342347080095047578670394329736778489864772058063391538462630359093722302407725205090228928895820506584208673502956015302364367280271412242921059926063689711808369898068365627383082208338786005811056784652402385594380358594614029849393575698281794457251493834849428627785597200046434038445952282149933095657607471081397369901839378021768400897842953060986743477477844211341317708510378165024027071779355796963142985615332960586331291624926642974205418599418118219733750624975468309954386129974108118604472378105060601546930116059721155146947406895772585923233825856768879124970232598668757617245703467064419082790094635291292446904042097326878634489503345308866132379829951890778431105433468807528152165189001063856866960950708160360497312611192357424617378200857830561885506093723690822963490444316428854189304742998556025031597078218063350393246964689878040632379692611545082902176309081517863751888535720220442943221493400326892896776583879391092006179987000512315569128883153431193346407859425027636029288782395922833490014496511443305595193285522494550931928948710144937728111095223036278923662829998671539759660986244130398895498840555193330387495247930746853686993594009666994394623443378480443521306583976199574209914332975085624477586378898303328523516295465686902201264024229371023613243223077292443149736937269915717194791488985351546738276999225170902312809245525806423962969208619190998990927184342782605707056203635542856279887755012607788959529984372095127106534130802347333348729386888774656608997008189261267178874554181120811859339157889665492612342402666329568508862741658759655306434817767729739333647326730086336617827580338063901658349718858463891695911085760626506948537622721056054570703624603192757785990026853240653078802270482200226468405391130514837452724034259912422122624591493011923026543786748021054314790129883235222723547019404447556986158033632785359179426517412820743287379747734852072580124170441103383375909328604389453357646881539943522938887865108222877356197408515418991488296783656925986599213712027538854262362493203863767290280447730306222824882106849063630986180957475620548014551491089718038043807989981708468492152700094533896476104400170243699963505471378154933358671363175506337718347260553243958561346800840113267763453270264965165841318755317030957106547090582401908917008844205714629773062534663052387213637657313446867683565277509776893625102797553249545165470382978986356038648353839481316354944629434807955967539028308821197989646257934019341623134770760113413444804173028920312877420077059836349410633076347335474610685398638216800727358400986394426773168522181958361759451392869606089631319669317772091653710312904788761711560577788893593064225414834638969473785556725322154809772526667428970673989278165203721609391618165948074237096046526725289236745505493807966148686656124538529269025662650363727657160660416022380739987959637956028645368210877110374330062525333289472353556546701436879451581332313954647882367092141578453403022185406273912350975313400565510382400200326842475902375075149036306439309086622245043279685915751992708318469771642544228875795380684817725504626701752640215659520620918096568222995356084918913008244809864985336219924714139297795315270316750980219791270853180430669328839089397858676221979798383999222560789101574061695773420681415224941078978332252204135790261740758308113645360673714656164471632794038172928721809992973073728078359865802340079592897630648389010698535883806170970791932677352992792315093838582142249850174999883565290081005804345105822516724414774456482542723438244017360913328365511101457189573419337249757264291939799620641409585268304008624058425482933163529012241936834052639285053355363810898675976289243710517878992720572778403489882404276255820404323072358657687491947315739184869004638195217957504903104749664202970645439769409134907070819190290668874272913153210304943636452139073764558739546331228806873346247236941629459936604517988229535137416227493987251659994279455343705766532251907142659777646438193589040859241849130481808952201245130073087118230162293498684161873614515506892438665900054865273489622947576218319714406934250640670839009616768216107388497136507550376928118365478839475274943476542353375105440026598844930091173493192096877745775502201379265969365008990750791626235225116628232335964295141883525225576839249398237183703247767212975232781300257669890448473550003704608142861775305808701459983132243310511381843923731211411489254817451734382026121414105112086059891887393803802703979085422488590716663700408238595865004295747908109520283962472621348003782707810835313470337488232998938971626939846329859804033632397443107290595882043415151553982396357834408893214722299946367432543596851874009354139386892856666455160959151202441656473869796089264977784630270752479006106204780295373478773573968670289418806450170533710527513017877028365019077721618582447471050200877202019562517570423509943128814163568975526497235324312385791480796383176265554970562630685520192278919979049845824315200445445999900730291957607052168260835650053236396491252539143567259393337909046771672830594852994664713683135406960418764824027550031970107025810071161017370915583950208903564854589913777867817223173561497366990703174312726294772679045307569105878268513910167293427409833435722043866086576737506047773416628336293816629203251350321214840259802541276823130796157026270736894504033753297317644357056856775466751221296313052005370242557647735268446630066310023300109500194312813429582589676898266203298346653379701848797045016299357532930392483086539046736165392553252864697635351566577389082019841879186649855597976200149445069725147958101738133063841593169414526375533875288242416799398379063567711229223645147266835972359030854111919610029325048595721742593856987042083450353760518863684733242822514570223026780118568310605595692070774525268793004169482857489678490586842314880071684857991327081556932782778021502499482254686749318276017600214563364298019625428721688293238503796426389882044780904889149716065062492405628961341009955151994057882284436219259155923305805108555477178418760167308131178434662940640824667896929646954851135061919355863839358084127734048097717382510262863355353799318512610918026506399254341069542143242666205578113477929147154208159137555120328403046036119165603901280596847861591274044960933285722748024941996118879309020305862970397263747974276319480779159784139412858344353250077594995795526967939154665744267075465402075951115512565843166714864830280840941773919979057160967433571743557391369296723367067823442523735540533478139727350684775769529214863390453484943709808737514129935558608921516662021466849786770517420271943829600887954504594856444475233518547870019976098901702938243735282044564931806396650683346664838992997735706460662628372096033970003944110273035054605304771130378938660909556628337143030084969453867930997499273242919400841401403954697855323785900742321362875407129413226994182821435584653301830379926872459631513764859345841108325306401443832498211433132708033623664919921784228629945481300395379830382711238561578941810678547038963495656056382832716335977468658085675999825996935079686242354707066291764851153362123385289227273699019713226919643345974999649321083128381490388051347329422512758536236611104491406338466854346829649589043129999421781514418070723415623048438981523927707607012419331065103024136179423665055884634425179327033768099051153227052586053621508949020009730069742913470567100463280705248668697949763226765995105775468222332348666943636200379105407836752464299531091920466530591072640909419771806435659081357308905852413057507159035395757496510563854125286878570658496335395799150054821770151353131322180766546992112282038440283451048597141944344246525446531206356056536178772215880980663947014604978835463602239794803557689775479348066759712079864926779696484414215600089684866199066310493727811636425865962521795156828505974143001575903928494980780042385572672621762043679662544204957376288437492142594418251122173879838620722664506504392294262663273759139527084211246362929487992506543396928544479597604030475312418267228564495599512370223605707452958535463548469474413462085184920027570397640189161476517113977777484239553265576331522586471084190775118426242401075982347272122630228847977896972778495467852512611996303950414161923429968715411058801292863664776195446041101878914302769160257034787655566425011277041012221604121479895643227795837162036800132288173994386225067409875132942442050382720633124060080731600428167851178849041985372043484267741692694352236361258531745975337765870933453946944470584726895235334477483781781282735106559014297251855563296045440042503736622539669671139954942503174099178495184430918228098181997832419772368072474015905609842895022982119070497482641934566952483353983932915322588140780755077606819650441461928986009935934533908606371959579979815963261639500918974850185521306423875234816843332993838064862462589949588377988318260404023399398087534806142671451790143429749261836044039926826314867674910442929063958941526177150533683341105785286361492479348507945300633251762279012318541190380770592187252692828966311282167919784994281189324551077006776947620230884373490448265333192251403761681904999503985632732659998216354076213179673025648938765579329629530696193101854897038227147727009016647925083899251803590089949622730794095319768206804157049376477279436032229888575487894393825940381216110450075675123406678038184594018116218086677307183812638250514675278198235920150635436979653170918243181874678096249954886306974920769350643814666760958452486938003648834684068497425463148513947966878272933343027270817304294858138401092870561071053966607658434542899730450046206289562715199734542654427150927387530505964613634762417522680031768603472686572679816595232580163208691987840338468602129967237252202254306633167965925280909299690009946788647835926202437237650801698940900470541622073157808886370837632122908174833865190062538657646883663508214810250983206612025333592393781073532223674780943467538698604725389979786166713386889387729316566445122259911939578566207445483168362398250522885682096970066863434327107040654960495855966906837638955680121855631847488761253028321333897137817256801743774370622549048222448034441488555305155129049823140069212264415159138557486454436647440842250212469344642538519846947798670642161889754881585489533539400551810746203474021024877528365767067465026831776014234781550805743969298537476707703004729667511444044557104294524930712889737105462873727048233873755538180765984206057943292792103791028096557736936185138670659182002925691280550106402029338633793459239298983856341648178135005621873577134065710390982833333433718566476628778840759111021803312874445994014684518165140303668549609315206298527245228825121025131640839609628681180803246503205563520700901352482310057317438356401083311932214671597594543833866539906290444562621064640488353725725562301914738666756614893781483410938119027624731886695514863047882082756442968550616526080534892201940777233231253078662811946973930357349550462739374481452234925321663446802240529670127921762531239799062959922591902447600755035658615745631184741437259430533806901784718794349114465859924455051049622911561384797361077316916378651744063849161908858581085439012608763021707630250149478062439820612300811926864534903158769295365594406389151989138590972734729710812301818732783590748738820824020471041082124383428448104444077455458977407499212416473224128577757408569808178336769421967407941811076044920665934987654891758405579855113917105618000515829042030176753274144043185493213336195449394818531590546858261930889904779087612778503881133177465555999370629791731407529423319753233937121179480606654851141597327012830069236395241974850291279577682181819578229485565979193179200225729683007466551116298676120109356385663614375134925098914364565828945300878417604866863720527925277394109390921114443983639345852673755418265513262508315863692690133301220027461291459033813508821469279038165590161773297297955252764670186071892808401211502357170363160592126658033337147205091800052727038011478996261107680465876715693180039844392682989579883818358108441801074974603815650901263462864109265654716322019708140194752680997423997999121684695849430848108121475093287740936731890711900943719508350246348535085555411271374183121466535619221414101845113354939981725938281436235182817875166016583602202823658452844983622006088424788707879095790219800663940865190824922019379131065416676111904528970285628703870958300570102746590877676176130177660454615137760173007803822818056257577962898025583695069846316660344832553929490147923003010058906415557740019413776269062203770017096069872359550553971010158461226409341206223238383357894448647064330415813079625302414260191964111359703473022919495125474158129499894639363385467441861241826180898535251119701750439686594018911533107877118884900584763331469663835799245563887180668165527103639967674405418277676592992906102202848156389416340068960227244400348861016358060732783079349742641797709995565434367677128391995956649828352170840355607072256881528318549419176813250943832202022548519703613542178313518959785634420939836818707189020760434540004398737354515897645462434667718422853864919049508633371132184426601610863889886783445832751177876303387214732756723114837373005608845543150795328378147858622804846661183563871778371721690729912950153178742217556404000469052435846090077083885144438882746775498105120828966507169087106837394943270430221568602103421025219632750897030733468115275509853440272304078876257442794191016681505742796625557821798125819342273915625608537612405685412191016476767091315868588281269802214813657956095376533104993283544076311702926941429362029626604957108546087646068497107791958449633564401005098134766177228278569938822410079282968041193009448129686163370138626868007351558157454400095934424948280666589530786366270931542139397009059082543233919198010116485869360332491984981208188956664241146693139892698211012772010927553916118605719474619053663921317454218322367530256676237630137060051680847107200233770148592318689360467151683708630541825090478247546484542440257724717782520315454895337011869278230143444385493179641157853518901288854217732112344942673841132950087961402142028323875369351178080025045013452610512656809422629075448530218655520578266306978349619205919170935841412529591936332451579819749899927463691870665568873138157174347279909918617845660440420648989298769327541912845637771695972223607656443490625073703653612376647518533830565672766805752753683680035543585020803666318421199520844092348075930520922419425515939437995813760198607438397935209733650768939891977980512109227431794571645289875855575406325087516100827207843563553836702247936748421091341486012268108150590396381392436760939339876168179962707282703741934442706844985759439339960695411054155527636475122225370209927212453964565772068989243887561279612312864980432557476543261614485828368978685768634436523492798415886389956311973756695362793492176398553235589275893778049598064992960974328768050163453922394585238417169419916640741486811753023624560612720191337257964751680713198855097414324550873245630456569566631819486901437934275813840167340281379151216528158338368834740138612813896528898367803669955636621237275502458345212435931722502414996678131133131517299039579006113366164809620142350001048757314994276732598208508519062958290978126285505915900831838445368845439738355264373511653424339245518706860164372760198634847118842517991512043388074046616953170068170207820028205059144346856100227756263692200971955812641602023182770818800046264033143296394169057111164471820114563400705337755985265474385448236531809290203235808543460434197141227352276238392361499498808480300296705586034795651778289851386900666943041425336370058614977413332578773569836410433959730423950874548196256639259975438328643223091179598780850059698854013840980861621661706513151358730360186197932927232606449553239387034219661740357265599988300348260274185030003390389576046255712174364806727231381605982341777034694573138092108415697615997607870973317494374788383788499055933393412767152801803480405623503538926311968750928073128503664437198212667534618910188947665392543767956839297976192807018511830754974849011752470812690398498143636991588230510731798305326166388567939612315866747175744941663424540278439562494297741783926872065477207846142923795071329495208294448024052971309818248028825799512633194268209704461353359176967067650110368009965971178181486136250683034326981806621242470705669642379454912396810899742013801939490623443588036908331641907923748391495613520987689401900004044114203327704548549365432871858286998956198107658208971203390405294623353331537696335380465684303274383548626205849526465439987977082882621323356665366147308384174206079890602242014943440547396396542902848888730394910188559797123104292202554946872354102974803223799871819317745413760236617841700689137484212782327060042431368048772303181257534490770658111993546281928369386427953852703596711641626069368833957001075035381813725682558000633642684417291633963161352223204750900805436092517758548130371709189020514184138046325637977103196256529898621320661987851386596032963499025317337530990099696589012813123013231877436612567187460904451703082017301054276480942099226347692374550610506844343708113017199366848220474003020930855483639137917873993728963690770920913009639556077059145404181161521512909024227776609201176272838065060298692357282292597973052200675955908463168453194814322253826521001185319865441239136673707194641458274352676128595952732664944368836343767375110920891699353944676287251718196516934994038474397502543242662254843410168366817157143687443607373702873744923121489439925319454847537898297037178395208156303215047281384621059108242287532240105620628489485626862302916701429851341008859994734552467415557425228148796671420152348174958970387252409627160848739726434073488042859376868086342754650737348248841309372583804549883570573179490512959824118812241880412209421619021733986468484217552606275156393186224439259634390432449620051085610608810022714318090723597449738102040857951637060910586262707820768210624611538898472663782124170792233857775526776027144280987338445125021808802314973360914117469130351378053000720767072796863427649955803169800564313130082992274280103132004629710610713767952996939176488665845460639593669789951598183595284597049098092772567352753836138242791134721620047584979200547766884667447683274056764268096034805485956309770885661317062476652486558946462710293900870197161851225637940847271927515659555240830761629430705355215840953861155616473601613937793220329351834341002499722236155529565377683468871269672394122318112608245066574433847651847351013425615072319107976819507037062075969250769544888493597747751982444115769808559287343040513429746094133174055511764926789852200549082747601090234035786346287382511621915112185020869854091478924041282071414068364529811961609609291800971422678919137647073905314991908031541972090157126437873689354529990504195499200093605642589858075677638247249809049878175544914754876023775487532421959968262124604139495420226551547645331300229005923596304695762093477828022051922563172075361218884524008469231110530453771239894965635713942960662803313670361554310175030510176193106090061007555252947072348015355288542592227951946178210697334866892337946996685198179735548063594866369485476409821328625147589394378709186109693761128493614312977220592933099103282175198971975516044341254947045061207037262276844659153956158072181911492045864239783057751923049343294992432935377358186529177297262928873543966914720920250093588860319403773597388315739356351349610677074518994696700053227153596081421995554154605668734709844811210716108833455673992983724209704530719136292932839373380141921766839983723146221328869667381386337727582722819872187882670087259933025595724623991932041989923536986233438563818075560828283942122887718241601770987997762570763493607367550385412367255176821916386925107519533052880950945810099706837234297483352293196826606393019118396709201577418855088746111699139590204429263002078007463172406993827517290090762417131259030876504604559683607114679020173424541480536773112911342662661438898888376393580875579899075155788550050185644779355638651502249485606211129372752503917133891379070690272634231593797430295676253031421166529496460171003377005475903528127844058984084078730452874202703818401447189133312829866861948272260445165435777190825403470328517901664337500706611006124820091703503537418490940427866809406695893836090558929526644494617463184179801460329464213878544953315488120715085821380854630318805417226219059072840709075586687116860604817776624327980263504623139370944755297970008363303481870249519178279445110829580995615509298669591008872733723557963166861199040326267170525174582292578102556351272245232062548638792825518696655253668803173721672287149861855574396165643694609987873660218833906487063686255368507355499014156769157800083539094295457715630310487642139507171914391635133916322777740401504255070636406370106128569066812858969707960529623715187045304793030506507651621236125628938845274563645687250423935209347556105016699930341702121483398330012173702384292973169332671150309098959343504895755342159957003030285591272104281019017229792745804500920446891016839492541961695990210764767524802058947413591240516453359003734720892118179370457316795384787582719104126219792551402268199876652519580118873768590256966882942620297095398350017425662897249890694615015691601122923866652812433262080029070012858827195357474191702413923246619107814345115082813111487700570016320853008668296903433860239406160404462596592084866451483211243263723260019499181882409732788249965178697449472916091858088035373009650049505339123633448808135384041138096977842928717077179141744251077165845540516490005190209824962547518684481924179422516655318625111456500032473512917946331872801723982642115576398095054556248954550293919690573653400467106127523948628212086913676769095991751499306896214623275273006406122788666416299406284197327281865481339330404765563462658233414101526390647891826744136821626636714050945898169455877349425799984943460835111407140733773650146445347404924299992153511215765716551419563596316208240616635422842499547895756192002097177078187550026802399956917159369888310530532659917990073281079747791074770175928999214383044365609381747438308862404070924473868314950354376917924672013834131000871406306126330711163219367790432112733996860475172006577899733198015324312795771953409735220761396714262620849822260353176875725868142531752845080675557968599404774096389101224441317023800668863106665095363959932613554380486517847481803684280073658958346218675710217028034093798917766119154138988524611873947514447812849137501389131310475316078729709411560537616818804688633807721111116107958907589749641099270696215827313041140668134244110116483427816896447000888908155797592449057452754367962900244348091985104790276669509571982606277301750072150526975900529616534989909124709425398517624685632564595909846271542714286613335177406161740604693380788976047900636152375307712648395875570270844666467185813075818690691924648335276543442958761399294824445192732570704548263180919953561584332691998220593801991167775019361280392128723652131004053080468573371823884722018333354859562657173063054968784928440134394293801243885429462023991947587929229463308261416500253936581400327730468448673653751768777697095613163377421274779168799581411530226634213142182841529305458593118789337385577394796636519350321879211259015668685925828014809274609162169284380296526781805158420540975688614343415783488593291479601238985810216419270474406186942212687695481451666142318965628785525254289507224374048249144331569158231525645533374868935779985174459897577846142828988935141822348056479419610764728789649934708449095323982163145372664381449123789312676192156631549894192906586324078728850685785454113957740713989848747871693901900011692983746287647430815049136954058451271653233309215349569109660198176470255519477487860114689414769413310991094105030641824830081145750186500556325877082408574530671773530071671824304440181666522389487562163587503216878361395146374425654946852087098634949568123205029599025217738532232119013942335492621805862393576336404774860536084633877506600189881339176378442901123647204142219525859058138026861059042944936493584909014429329698439091050763941650445749491906323627624835660192926105692999702922270070470596479938173721053757198377620645880976371135209414361537770621343432434261973265963886997524961083747944671777531245160648106773294708767816193523080662955555775702178425268368952279000688711964199941666858727161617820607590218185535069823146680576938504733290725406274609155993760406735434429124783009769208510945101785076559624362148849876678597767347781114617551405258940159691447678434087443096049957570480377035866581468788111420698575164453347029102531219388411819452471535336823972183550396303338201124033999052978597672243274039616380157021805207843077326238215169342762434618035524310999294169304223133562273588145111034742497188139467359243032727567497009647942393366284133605462346704654271301257292247321584961663938565614205420840355053973341210028672901354709132773502403595861662160324134570901103120543889128748712479706361152530262487190097904220491497288937609679239046756723306240038579238205450602620383109198429907345871084849919989856554586208755159041195327935237047145510616579352779767065957386642819296982415894861169946514327167570642066556441861495262632911140058785737013358877486410802609859936065838171037084392545729073891863518933514590231841475563172636003536877463348790611616071867799654956306029129736382865988551133409389808340355395695918374991468991018662120243931771980902462526119115092940235181678868930123690805728154659538832804621927350485819642386727579872052441476895117240844570268571286932812601948383822377911574662664534147890359388890222626149115242203872422545409944900242182298284543127846277382331087139646254946220590532420392764614319594897744848838368960283301437065366158924225618869795001364000845280067143619333857550261754671453697269626709456097931865748699424881311767049325569456967517815988939523004995100821811687018599158691977085429705697072243577001447701508773548078915186724751494603254345107741731732978668478574785823837552825675094958298415225041622931330112536269041171686976105150747483264207973804626314833804659432265605014692567817502063828653930578581742472404246682595845227555150376427437141790378494581995479663437108072776562956400077925517070172507139846089550306995444990075593788853267593533335246425076502083128784135498197700588905659819846133115490824255792016393826665851982539159575660753705936495413181939397975536866503789781502302478224017884776893668941079500094252429655629588777050744903027959420849072227628660651069993454459729676248779508969126527608814404228914630819563451822312681601653357928047117480525180084682158150976540660770516831402330640459997533800843571522689544602328413140898046468154840789733472636785636921384541813282353610808618691714631141610774383181410073590225751218164669224055853943011983310182138950619788570792461415949203856697164254358030553551124336419161938774766301139617998117164909007075129239943423047252057227186970509035323817454475645653861205248510775742745782831183203748469314106436047977904406019083086126679473797451020874548524978955669701140933654726263705221555364539970213266073631389384644556452678480617334330113826010613908203391264438674184773044838383704359874146405087017245517953489078492711103966497622471913455352904742924619895307820656185658467763252132645775055400090971372835532459969626561056226291498430583950406175984002973175901199979306608229032765195986012272972864996139770010362812144029305856707834287706063343843802998870330499289609846736102078615452601611983480120665328269557338033704499645439414803905034059150939980604918639508230868761310679867055983287361637648678025020843726442959303924534410765420860728022580646683567510287786049563358601565579054314181922486994599212088103615968986589063393500574882928616537622920848858778183661893261481260464042815646230268605804656083259443046188858164791562020003209216009959180456868374609851272882128190511527013351251095999690233913435751238063033688149854610500119149874922025097367342748709375998976793491680999926362800668461373159470185150555369045433730310480428239686443329562309140892999256101498787174236835193428170651920186756008011204216593865582999329766380915715521543243641263854285328624551942433589233267439009290017555424655548123887124517845437072330614647637056803984698625381310078869638138543874650288091788197077100841992945686081100308318163495450288744788860358246378987130692827017907294282630171135200696283973687878297483952775679143285431941794611257448604129578319991038901635765846441768559825119292957445399219492390117753101647512685304789512777311188392656891974095038501969628943146815010573761484554312321776867582735528716449472880232382437553203020378122870486511808883127818852432244522606406781274083684021938151717813295543519359297290312740086458623957926585085494328212437618350932579463869364973960808508066192827584782980558634714149514554573597228810632340882348569681751553014424340185301096862262584828732244391505284444671638350009333224100186898262148280739995604421450583788518074511511164603428703105391998572745723179558231636128272930736589644253393357885594372617023536907297708772391519004477459569094973625551092290290898727642360238239562855889690885959553908705275939919990112116227878842610844019186054508490309876967732934118286057148136505102132764677382667017812064687049722650661963060070565783150815762365097177820893278266298667697924498129721855692191863352323373274884481424247015636031231167605109116139825652615696020162663215863559541022790315059219939332243859801732723785002613631584789031253170296222441161761344338327668031439623043022562627520074877389799718659424699504428668456455263044726164657428075643367062071998650016188224682123892025742195080498489265081597601781470868049960262619016294957963172895548366711858052439867968483196096956758809028911376038154239212744358085448863071665275797559254619051817243088341281987704334172021935646960751441720652898517639984368074013763293160453947461249078867823858658355985166918571019267234854212064979210430101971678511319544950791738130486781867754604887782290034926875376962679090827352323034842400201491738274565008458184740441065241462791485632251077033822275433114992103806376963480603049464166378078626837602611275344691679217676801566074881709282760254943700786434751653340984121751673651698962227967481373579360911891280408465336739066393724214713386302916879249755907316558386185558773165408319481061163234284667644052335038438561650654079035224794729277484262451931211207757712169040565602265533405058412313650360100898585626277418529074064498952703083819688076953987780672928995679861468520259848114821834502208418015557314830071592068424347538939531078221469250976891930343001377645537851207585915014823663627742654183568159687183877678160726289647739141169219745551419525375409141651676956192066802544181205912093425230381584104497604172888892043329494941112117849516077837916957502305417418059827766989561225295284187512956073498361296531529252001047411676805751247824416353351386468491312648460910644142926027912364101623673495569561852420949406661818113943751895952924207737809096218265684080691683859553060949598213996269995158295737083935662353183122199043616043283092336537491345536445749297503530246243572739905414614412623811327862111809596201687168929985468795855170881011445488797007907241160757545189875060311036383561426986709254128534186803429293832341640046176490115589029024038731366761481275943821658376018237076439669866613792941277589136990934461215377418796747957158180678501544897247806583754494197379134893259333754661550879737717047892596282596860437140874550620178610452424295085742915091887832536618668867278912751230045236735919640326297955542798068212071140020365522606904121035143882030865794743890181774758139340479340114985340330968485547175026128689800196316370144683941421987919723531959343187714784307006212605361376200264504495224390532422594611756124853028972838641596540584695557053103960046891061568950163016180708576733365200901457156028549145744180901243931645545520944379293150769376765865637608523979973673483237030744296161662825200089787365407890823338753564629978325532068739176196282689439584743753315932633971787225795001682858752076428200049263049589810130211442633676739978991748892037219166414820905964779275762451969931917163665897960919691224845861442548095151520247580004675069144881613275051402952876601520707535681609846510734705127004265631507114965572958203533546401089078869108906971842741037823522627968696001544721111102537645000610392600060471986469110406846336187685581694809926559368523341789322252578614860465647168621702072091131287276048678801314024378362233069220623369783261453035575006123540165567302170346031183257902813007167156602372885173264587899999167791974260338601563062957395245230091904021123204324939594678894020497091651492213809966238948411398101476369764663178537931218781972742146468799931940948165967837603478300921747969978436903705476750458740200611182367091243093246804696339090380647057967976500264052288589662394518211558369972410507720780706265913915363598594246920551764678426971793623713312314663675479847146084191038839305310945866950972884447957062810573851242017398910421076306128170556132861061472273952153390165803984698514046334657054616238864955905454859394469842072605567646435403374516026064533898774385208463172862850215994770872693035513796534357531209529210683761191357105885676420923733655163091806215478723720472364940839384726980292874177153535766949731581547966939138286963777036209542986837165730692360759875152553198424912626741758233892890543449497588954925270263130931018119806121585109982786972567041918512502831940140199329936605341862169686300314169868233839783578213048890144202675747107455199738843897250060956965976869264963626567171739040129026720423315432649142685085925338998127287999126733159863763832352915599931865341886060430974784727370144452357293391479794225618476720999328829608804957407826889380366078281967560929218304264128297823872864343388564503785060244517875632947978441361141972478120250823758878181682481629024023674197061675924801007075742906112167506175493362724669773468917852550639912759401205948379436953805025616170544826334776283446175227684641391356769779977330865697514500742663721793047878529298690005502363768804364572085979618421326023879204257929505739197359139467262457313571738796432477043256695570287993204734334629858903646886765818912463121010672687641136672150426695351060798124707863512787259459152825206036526243476599462000132152837539881209997514657180241445120909660761037315653871647695557432003488321675783255859525863885871344873921293465344596226221986785463007505445534114477479012794299974371454294946486985978821843869282154326756969385073024846869453825506949030918387681960055354313857336086338034555981282826709796518836002089994388450974738225809409734593125299386948456527227699942657256637778621651099281621564433995278710023620652976769366462958068836089439570501476271275762193262342243745478816182189388511128073972751704943112526166163879921135782691655776313219579350225146927810317401040732358779603920578976753981212972203525225763841687817458398556813177802318769535165101680626485158263853126177981992361507851479996625855866552203440861703055827994897254098638769396280371575946563928134475687925079448708861706104481137394281269584827094852404804056578451356889163301621862885310073465022312751307607799172077920170168867599648275644943542252310132899553612270787832314138647454767868026115292695035823705027531764091276436909693037482617773839994419286137445848981388439499881742668250358923439406398712708505891973275982474675394870127877903828334378605022208492628901464342948388796848875148537801752886453276016797072288469821418538300001699129118607345288097852815785363809223241865316209303087904951572477201700297569943812293909464284701098786678716264889418029265856598839582142670281365718832565677645670780593279282714762874297747077666977618783930563314886570357475086080199937892431860071650423853269967022657259355222643777762191719302205231901524442558556543177156758196414338468232524281483148161580295549034486736845376802055899035051484068581004376153842222846554147345042228747078942429356518114965794165112375972236885724184391501231761655110109595921971202806284298445267031029128716847104728830729850060647022401914924236732278648757265289646390313507865934937537847665196144151175672908544064556228225587374414994035111552470011309267089041516135026151888853018306945681695527617711682907743243845092459003546030942517394104241436716645383035637021146950321329237734234733147257101938992827521613347230157998004397139458296567110341497380751935445284631956189350211882932625163982909812468088325099013328129259966787299000673615591364164205746925927219732707056129257442745701938521807362328176396270430644424396438585757549411462235606583635755946916243822453417448611445404160714030576749831341688455714015508001548201877078899954728541793914127428544830140758652794766261825453721032191841941738200358075591866471988379733069474339982834944536370970043716430910206175780921966054279321757112071060422250730444679665491789222744082565568390655067138357682999789536475783894853115194803333266655005825917507306887717058296621858650136226738772754823682840904224691406511607883971806344191348080702661542325494975532633722349781502292792408701066553152705728486994741728188182497851215941039578925221610229783459811222600984802417364959853632364097259151538542655156888507499542860423503402923251676419460930393180063496500362892866860475859134833767724184138167786245022361205483864147274009302070023141417325842449194452939315020046804326281233047965174187393949348855312075736082057999800167521737712694856557144504329966186784228786994913113498183568841358533368956175626069464239416014072853823424011779452726339584739865747504438963017412985693938422671620942170892980513445729502543830823731603778150078919340708577982948692877745073557316952394625012935139574597079841095099524530532149444530631169858927789770112356469838259735363454103548706416190327459632335533763667338836886091607915888406420864094290579814829313301356583642887387423281138688756899988194393205701461068456121958517502024173466779868084568081253600546014535465674472333235437832621415172761239667622180528802598344441115482207926340907933037470853864081934640691917042934463083728901977048150919561025248246548886128791961929541098064145253754627002184551463801477167681117465818543529929784229392075179435251124366453538586903980707756766893921939317611005289378237973077852068138900157162850861088037300263798257248367661444288081890937409464037256236590789850263541990738231302260994356524028074025366583205662187443925572010242703468418377881775028191216944098979768395705766513528838536792555095807600638481209230286162261530338712959359321996562760581375102572341047956531456393208463504780068185104549651540907204395550395216943927282253739008617091725063069540884161098893189596133824237076721339956543918310705851287709223657627820269724023250396729267438005266031930358803299117260429681211986979315781809328524301964580155915502599946757280304946270860609049044607917020916830472442214508502744491137296783746797584088544816566198271991175941484480291725344485069884566119869249069011077164377157118682744626843034756849952830184240071646044845987653573361381905562776663478041409869546755362143348784100581798915358235948070260682486448487400714351949871584546059086498610985581247795822045415126394465353703253611687570350093343135130670434021560022545715282885650294929847048514518085553592982654564465838823708756861715128798208843365756012132659064673698488442918094731970071649944004459777591556852409439023424436824930182452354270371375212392524695412578361625600456357356943638929253692192964614195289129787543730683160356516662997770163810292484716725028709135385054648188609249376301334705735219285129277008031189056154678622225954052761676168629205546440195458616449423357757127872112496391309927632221780742887722232101695008201523428948881552789952155509268341659776797736929259324640445179457303762350352391985634188753532290436324135537167660357719158563010915423116392592916196995283001716189386017644371125701877590355096425718187912463102209385783791743264166331489423494711133512408176782005959205687619534056356562908177835633617548469807478244840893591271918921638117269728375351229571734034398890917932104198915251363985757088055871736325045528203213598013110886030265069953471703905376224447478093032416222058773298111586314721574305313409346861758651194649483333305226225874297214462147508186299169570584079630632241072828942666309526957863399063537782029516484952850368066302388162168935645199403566303266684834267366360979424070067390532921071253000167430433764217026843129853183473760401903221840409157861774036173806569750109995961896953053159632687765723103391715845788324788352393234730518994510835811574283522627352802853404834624255242013256257506252637401652922434208516656244213485776772758509330617035164646329311254580975749607064658856751547201753840279952930853252999126811340764158412862593722662508389077641871379984899139373861502515758213737766500161254713981763530691215524623024844224043547825526104236920711655106872684393307812174484267775822808696152959061108430040005731972533157557891162003362891509778302180944953371035000325842198283162141714338528975999742754219894861060221347028079227620602767591471781433920324901963861887635313058073933590657917735116129485052994568893345737440634242307979465923623208799185682113508583512308987221486020096671910824719625281988117283859556577752218044852820032917530524659920617641728112076049062040098955512246882583916387238241742059057625410197935748714384682872655715025738073872381110412145786465195701471647534460298307834873447484575352827726003673016958688344797406541708961230693180483815110220244101603734745405324750270541167785825230248735422013344613203952533014368062967964507456140378692214292593597565371575178884040284580759019341413238670879919160043815842710328643899868578822706197845135097902517875314747516453948328522538184910756528380061292749214223529982428698001132903294685572600316070119155312597881420141900424870370421951704950723562450542710122196654646106082385981797261250949650275217382364435872552191553014246944812044398449377065654611308328828313038841783088187702766036365578312912778015576143787511486719247310497410844897707686249243948057349215601336459613063267876759880889225229112916293239500544882733655822429867251178316150382180186397910976353965642929171087893986959880324429460186112365022774387212884156234020878677575071413356882133705187051060889077356508802959698901207678146433769097409808402831902971974533391152923102390976059719225832417857873172168394317341376825983461254753101509411628885018324551620644462267503098370034804355926355074169813369012823684625881087668722019607897986905878772405379987130767355746730265225854122221847938216027056690252531179400948360430886141029893728470647453666620848350514362600727041530003026934529957344062061270729174432002256613895471199035566715646052785941257450511492160609206842169231809863412090943665630923097739581213164683668169437040954736915851535734762308501468943077024751973191857592760831960239452902566124585627045595891802611424604306254264030362798261936078924855873170250990278441695001535805991464222519628438184839685380606229439072084735643633323993682099725868769032037667528112602261122714169343816753625297456175374009198231704074500577422689359755609720112349169955468247650873837062471039331879700364546828170660502964470856049220044340986486920359731290180815900007694239984602310962125960446849150214457324824675409635990839736834376869870642653376249988622591111016229272439422242186168975491428280949383715955803554560561541970419729380894672459617297529028943301474097070347697036850201610391126296800107573586268602304225367910835417815734534567522020754811011772295415962922605352881138243187372679080690490447620193159559094360109027995068181393621494204453880130291956665677985347892903795438881256680530837820342156247165455570940240266150047118870642179420688624451818607336833415768713947358770645209633333898484361381424893710270851356920199698575570732213258319166810992561654639769093679659629898566395633254846166616740284855862347915198969891566607604638578098018602206724176836931079179237074924767743191139967196455505697955364094660012508820927382527015109739734742706202971607374850359314664956007942871053721134856189325461798222094710328134849770563420412270203681491374790300815985688957890526504424502756461745260679868068183009521581571195306622003046621876164425068618526453808164367230324981372552993378863640075435874624050232373343255909985623832380388975364018845242619801166202257647272631944608152515984418620631541801479385140001482832405437305138256972134475103747353032320359107805550308595793248376494206398753182876283376906145519411380579633930650102597507095005594534297718183167045008883699334087093203046409896322229832333243437957244056594813495931101275194643744512296108257811698616010006355623939890458437429874506646507237510566454663473989457032531148387382244763189023912281539520583287132982194049493716338194219996707032450952085901895206112577258100287774006926550353085306018745086751394597104748184951759081994786782293833354211723164783651598909046492191501618528609237399725274478542914275275882518783411029367135701515675032730585988868666067247954485805583706074488770602272610252525354208639014759574962030531755994977708982041693413184912534832518404038864024405121521120694873358453953481957911662770344764885762346926611053587399380266211796142920198515268149652973093148406086431118278306766927789289672126407354710106037145539584056257572578680209379067703683326877973629328905420125873693040320976643934386431762884423431315780300131995223979608010660032524421243525743645359598830571147947828862990614055194667420672186101190616698481064369888791296608109627456556526292914877191689896041850284054892524674597199441785177119525867504902726999210755187778631032600789533371855911250339535223862165797663601763461898459388309276813174859995554735134858658540242797115600770369719049046867793807286520854728398741019519445430958459611927340889657952281032285046282802132413410296286056438985175981688955479850615011204237372937144304612330488298589942809954410065870699925139141956694158236328780060663696719122956544816807690106405067144054846143063153360567609757565362844072526824228654538292232690931506890644289829472765301066790098357940248458056276461127158313511812792766122151216051941476422711277155731610249793908056896356186972921883125863135211261693292262317723467464926850384978502150543573132031887636394379069710479628866816039165534865603099519884176679657498089797698841934249751600123251270288091861056356245638179995753925374397192339328350779349079512258589238748088898483175325668856479598228338648094108981515169944345836397712691288283851617270240358740194671062410124404720355983103419285461831892802329068320658759754847916201552039219908572189905736736159128529682914311814393183041914286261925145042367355448331917491991873608552215264494150823925914611427737547389673220433464294554454046871377954393702229330130754713953335621564582892569167945600623962628705234170692232817610930862900989450611499135753188547093682974102421163415682328700537786441426939690879563456963966886093595664377823235316519928101962065361784664248159382553150504427707636070598196390755861038061799132562823704711379816838791267773933562044250549985232544313175770204154530541863275297785846195080102836617110657196493230956049042393278089211583259603200009076226498418751130889610441184295883869262390255542578501815545783074651872275517655051751690517566175113011243501216480031849788047462087495676070704223170487830456815536276367548175482170552378534745047750556181123435117780048065030144906451230029047305240033501958743996530704234783466534704972261104658458777297027301234379806564501850189307992332649071785251263792450853126925110698876022850853970898077757874640497715897815390672224194314137265442570018311894208928992744532210195524999299510956566127455295123054497633329858375350780017411204887322218328101425629862507358235710426151311123384980979540046980336570764071124866389808602592296367768069472851699700011250188263502813046613396239714370197704198528529950564957241625688342862594441243620938455154759600626672729233030191819695891046508504470024254087363928822475391077084611739496169165827577864692265425167431961779669988501000041713481689280470726069251157314323121182978901088069000286906049673532140059590211452632504836087745503133911507635835002376001437764435246797826413943076813843920486966024960563934743457329033148383938871093942027616523196094565252746177602250089237840134499874094485260749832168937379188245339393058508494094200742766419212882708201147050584994335427674447530942997482104824843042976223110147272764348563329902187942385939627492972922618250519914194819377354393551100159977398777215191566581218795561144657351754998106432105563551151559446577961744864589440126382089732674956768789749674093227705642286378470796233959243301075483956660958751795524853126919804252940994607604263364154962225777333285092648537573704836774712385049019451789447024734841094357166444281082942454398428487312317206162041567883305322908290719452675996754250469721959608676488233434233561251951527465705178904173327017999771920659234405117157910882403139405940331065694141637339451733540030513637489828176055116975036523651931639132309435624603916666558284680896854942191936052323176942341761942155791901425199788541331389755725334211617655357271584764765620720684453415983643867254271413729289183380689178968925940852209228538771397112058246272106233767832886025710574062061549427868203058218848824635725063329086504739478807449732105491159810613823706769209085130799928971545619919809608614013419672314135505082913309238255759210961767374357023325404557022082291714652716118931006235000161474820540220943954444075728330415356850709144156051534024215504092825791535651898831529066198259508696360611347538511454788106721137945430613109677003373144254096265643832307535387793452751240460905140050678367078290154467104206299612886973117075859122906621743871574500512831940121327473438587151494984723740958879159208727899233138357628028356880693379985417819178657117894631259128170589527670774743329031293436451466360625991208378543792712070386315664030126417963236331947225882237342163766768669761245908730865492363836027734126175440012228611716278044573940334755729271581005458735510594842760632594579574957218936673577293727403849039438097717237799567798157648125215980528531907487067599397146233163294406227178093636182430576901857290052319830613300491574387663236609437838551896367480634185247051333069651700800044478762798495162893216365866754176772470220734904360674121516224454677156694156457888299725351650724307303303052315545207038205984941558911952240089225936856548968439659004658272077453766540986326505397688925122435372705092907786376574222387529860732442098135271969968624645933558405291316521026373171139805898177680080914066443818587004915193351322483666464768617146617515580686274558812711987537222694216496805179639713053018480521912169666725985884527775909899950299930122751208471271386153178757761356145228434734279677484403190411284899681667754859146303286761250741465262239127638337292732594088804768980230020870469185282295510460078321674676294489165383964364481248111645250434804818367745663503803629554726966071470687658946914828741255724704451147526677038313276468396089724334379341991913548121699898260420259726062062930673073375903510382227754413219900647209049558022974179913850314017629358799949985829957519024823575131101390444849781848697784465726794446833743026759847817489894350678063126181873473508803797118132363753303022064971890474663531691671953754610383429075005292641443776024799595622299952261150811447506331471972590792849340094354536386548929564860029156397395606797885687439394849488657219510379409295474317080397369262372762546485705689941878896677467491266844497207763033923572597321381508133106137819852020811810113605394282989059713592647668351468983430819356124332408347114521671735242995523263636033872431522748590790063954158728210627694632997782461347615512856587780114767044219390531895242698260770293288639403053551237903899026391950656687551918989057240234123160733825883080605844147821189789824234432732183666702837998657652402000829082901815897481265389345697263295175397845190240059743674686222132059934894305021383354354328142130618646122759965122147621976052383958791620617381965669952511674348160254850387023710570681860005346787742842726361513354347886534829472036606399730608441294937660178775026130956267509287102866633867387360559755325883283018859971282043776782366794394731975655124268962829612783900117385916835493459713497375322806553281884078967303170532957062460276049052846628266707546885341299060594962706939138618651094932185267313314637275986532469888992003039423738567800726493000163282646839157362042616574065281267998072828005370839645403179546560476480253831502490717295870893647056131744146376487690617712520203803607388618956560568415579334414385068921957526548872128457091538860119928059655502450968338409539364679969896776169838630042923913243056184309168331299240329443222765131948911979552100087869193043497267476121227057157694528054482439677093373635733495346038433629469137035084516141752840345634595881505990159592183330403913000130304862795389687812499632464883369794676905633036340144263710946005856531230303556330847887257352603463345586154509688360153533088728341053489292630855545580594311857439045630231306549948730477710980515484293744355454658795602109325604384809512679548440071066229553590720181975062951178942215903542977066783049039732080525343801544032222329527612316733734920046824617871349812464771797571745165662323374101803015330155420281132903823092883120763662394712289851611331389741303639056713657752065022940424124439531755717537774909875423677693944456223594608902088988208827083183515532022697228044442819386526043194679396618479907995248317793661260908782387802272611220324780372773263583395515377976250019130891389960387092144161853169119004335598251102154851143021088953284591216498112579154868553016754966804740031651315363818591721776451679888401596075096360239212564284504541517068743239018349107258995700125789274190254175918191311371393289520939743252639773896569589845392800029996172494605418324584798205197029395138706630469455188334080593763343548310357195092978698737081485545685650155993794463664038908134889654993176364617560319483076481561615135265502546342903142701029620519291828535432309878238644856120678179055199351861492068421029341567049791339746127157608743274536856126298736618991531026228176500043980032805170284153602234743796165999655654166872637726408478059214537996521657718325589586041883005238416957291029491155133804076505102807727789361309065866984359833620679118657009656121587931384571744907996588508778786817507603241338660188549083637912884263826560638408945366979684620529110315833432336278054343389804441935028679933131144715778988704744757158915939455860075045301397456659943672780532769460902330802101821386711078791618724119857154663150150953115217582080072454773478911190212454499418052739638893673658916495448954250885609129771143959003627586658439389645285398759653330490104122599998478486612520121045485957749256829926385431854926636059177362749792296980534305158747475053653607490557505154773480047313912507735156134747811515761033038702585138325609242305748206576997754372418600998577182130436735887452002515270197345128499257274010315469341941374594333895824339160600645146444360089785074787056485749763414169403818335873816636506858306617053534927328187504533221465241200933491231955883241706078697858449679951676653684219434830720218297755772308797227321343901886223406806010177517150875333834385101282803109112625852933158372012846723511353631418088740823185093336886961475381044359000584323920535374788282871237810328744266648192953592442662210504005734009678154867275619342123906205798690778391433006835106343611525762044451859081106426575547389830795767076992763704212824973539470719930574669277636302926626541264516411435170992982209849205451343056297222569480616394017818233600722213538690388267033822800357787384583102679680087656396236708376126065159932895620047383827686904986563705530378507804137896842074158282028136657074933544333531676639188679761497886993308269143088586301573587440971045439629145181122729891147746378849103646231779338797520319936024421353113672115325999317442800857621498754459164263721284283933961796147725020729588443429941027483628961333831548901867437250202510721962709954658672259682145218377353390082692648104192594899718573031373715720530863419210840205786484700510107146394750726540513652070832651704358059795400139678110782272421469695166599971744486435279654402644625349491899747150103965037261937641141228734057766250251528417540836859191835519934369159768808873885662733374147293446881360913481347423724284303408151573814942372196173445628058147744160251591847041752396279641657035599502219515158579439972294886743761068186214654563929823062049465977687615150757012322685114854361386902491551796011520847622063149409601357999240416167596097298782134787418219970175528826515513470381346126936010885579506544609938554249172536902901038756105641188691700767870039324267343296259357879096132993271121790520678717756276670755491403142251094147882421450406184782084126663633357849101887094693678377924406048765329167200265972986056565006403175634363222283477820846330008125104835444842275357151460058337821680916012981223143009260520128337389184051162034974193863600172745481768135456261569271511328362900348870174444007403154530824544130523886549321102436796021439359323169556118771040597973866229969516359761339195125526151518051499089857236974318694030387429871536879391052968255788914751295755875402163579461298629291451813156500282550670904276632363291888427519812670027763625483821264080607502740497711173849985683218059736713663149977078351864386564158785498571501613363688074633059849667118394508632564696481540882912584437510744478470124023796948846596845684695106000367243614264575545511664708548903247106413436181025506168496534900426485797213837472119039847155517759585604515770985161904393159606185678629736873166048411692875270090062275475706341838505804596794168390517254777329657941645588121640409400526922956616950205293621814341458494813995676424852991568545385323120101505068132288431407078915975973891962133173048407046290067527553262839556914652214487624721806847688056563731402088210138430025143284117063739487107097219435033316299767146227399407594679058769022389263962069179882713374497269741444320381099438361885376570952705855850356169866329253120660438323004539186619928327844186757872632383733248201512211136808164878198073155414077604321979032829750697576476806941809600948487028448133164279654026935374182167650695684235122325737240807054127240811127627579630934643277358298238595358211000011580272202698403877718919228907838619275771963015118560848605968664431982261177235852053637433147989504921604970320736883928348077265102740958772064775606669870792224267194478090925238147028797900368964657418643039736003339148656095912538932379152130018988207775573823239627594952656568385972854543947391537138331534028099600914822619323120837177657565530446121185109021952563764214377314422008252723913118133663744654126998716642403839353927412193523626431883184072396286228902870517034993454642625815754994130173052449805488034859923994193595278167613308831604420797859665205727392784301644885630324318809409679114671464151413349805832670701506506480494294808658638106371961594112206766647164692534021856983473585583962036111052538572267041968933034092421870465016455475868321874847841162133248897192044046824545739684082880807526842384030048102756345180974045639828626159670570023271286612948875604876490231672149910324930649801585500647847895891750937837986423108064592688107661356537513687960412436815983589264009136129645235378720284839642661493995548406166624528062929777176385789508365678225674156343040253344917811002082560377283899825704091126387897468600141116492022438717570305700620636887129397546007015485036984535419937288230673072045127068132684190611057083473962058710284777887927048897270129221273724481455747995233885588607584905522533508684157940528292875560426008572432060312782321361277558180006745953919474894983220337315442655331794965031841929337655211095694625086650259417931563873823926851747919865052530730802928668622673872969691577294960526366571228882431969186916302807307362318471896676304353762618628698344864946619836448951785633011105485698303980028513925756156551115816947925794398189714724601841134666558352342372088031591532505440067924361004402678209208511077645747447908372412661591204533528258068648516678408368029167927576733050633178460098813472626881756430722801071500691878370379061816873734865139559486034729708374219031069461412474067759991415313587893321401358501889518479859593616479137909638371950082588950532589085464573236680812768664814118551550729146813388543602542676517851782391526057903810809008082206482928727883522352801817081251270699044094342268714058723504816531473682693037509795339202548733159092051775920231855341473343066041075264081961185642540959771376233926016336643428283919574866512055220586031037003873237692389408181724428280065577971977575400079630284932931682157904803566676438464390069615117115943587028121121858730147609807837444500187683539228599378558839644377495522383753216650862740179241688561593652073814092315872525002295214343703360495355730557093340351851847246887144508442494948140312712978614157253258207890022074498751182891915427153597019932781129081156037545188124797703781691439653533158556590057187722659748221900528739992569411936206137449028376563847458612474248428806651061047057536614024293378214040369801033334089308921832270092796731145827350243301035814409234729958593866879804471277148618538263598589933377975198454285409246917882767351006060044167239007828669001024610857818707189806581983670169440639724228403244876433394845582605832769664504876275859763436685932207604647138917229248535226741443834931808513156530711987308737289291432306342874325270975530478277592834331017332921206282803529176701435600900249717619905262529059385373682552127592606911337948106352214923266152290689203207803024685053024030186135990217387390743766074582393639266595792212289307561050409946092734583839382125146955127959013139608268543627660851069626715149819925316107357578469931377733765718772823045717669613739517397217978747057437832214058212674256889062421715875473380135461993905862823613208044138553910656251532453156556991801447552859900703891018703827412962063703421452133576613814221117981054344922363755447207537272121863000689673659652671530136220461574057438101136067546259774718729324699864362499707556749707215909397690108014618033153718283337309109071760108121219404608569001368832272198330824397677243023105348876007757527517434097183637165364898240640780861402502274173320419817048514590310847695112825684761024616575067499590231361192550269432677692245347954754559601996881260147680573677275853358581112370747121262236947240880396910397399561469955305906824757536107063332203075730332074881588223011418954830624029374787210728699127337120906284540658976654993377540512083999669494504207428451546800338975188164979060389678651051179302788825088296329768214750785852420201147662041987687172479663808751017863429183533399589258520157084306947320984670952084571730714412169746650336857511573958081990468711675551506885996644084643335430765153379566797907944536010636260829563402863013989355367206014510477112326526168556868734584389292855076788156288868926581869779579293412733809890581542261258277259673981712646959265028699189589780803240599553177159993742815905747356474851158552510929351681667144936667940069562797752508943236525494964807786869878985049022130775216559232680585358710478130749218575719149213620834712719111340826625100364707733979418917006765755869152452203921907855671496418798806341851540750520442755713797916410391111511363870938036960863368866893208240446876719339610876452627762061418360811604226785456701002015766991735761383197215348989070243434693639888747677809411220813557036243407468482734313448120521196613720348554127064902820095128131714860986458650505482075335999312105386368751652494019966628113980687866311646367718913998055805055696031612216540321283400179514066444245002950156161447279570352353179517309804971923508068179496554769395740730685627327525132984302479637813788101807010767920181143711631426237635328742959136228661045848396417098472713322652895390239654699923736394945367033116038025609794103879631288996517510843254428958553033234540473697689594474438697821697087617684125891528250715282830251952396999806371018976164830042806863013471727895939784684549421892716911054953567724478710632127777619457784096987990794234693705725042321560684740196521620615763486818852848600176361454959360092329935055596412878959452767397220049221986528789796432626594381280710714866238752532914598525925080371886198055346350541448654935535136431071810515450293385492639295962085060467768145309582403830386697009142658876544350564134890904679795711833902502126520471769341227306775435544563069839852110996954052148037179090480431846801535057662118119262328292359758836003386678100256175514897007379056458591934457501828632447830891898628612112962965573499518171740544115975165181615035430691631682796517209340495102347252594342614952633711205201352952029930383793147157175736440683439142978040866691521154238887836643338419062949320948925344882497809487511452662268545673691724938096448485597821292449108098188244877132955387296642544990865353169039670472049822215133724217014785833861370151149485094014124825094206534373707845308004144810504163451745260687718930354609757103977591650055783321304875207626649652169118317836962384640525821637826591416865510116438055379189603588979792896603805188617346746875947507160184342850060909245114869154318787182176834289547543197390353895586003980067158492830865174390211612973349779592109944204705514684515852248434765960228824157742124793047646123220809128183102194666599380759421585795597014427607313694253374899646624198330078824948352695315828333135210739262414502270357191696930577108815851972681217436888550413277852990290323892969070287726082642279148031690191326342920210444877000002528471822990682268700270235052746669989788352734941225707777070805857479410173114704474484356953783476537274214841351269755839865402379104339636869068351438789184219985232822587587162266720524322996944298023859268804602992797661811798314073260977544495749902227447880493905718302639553212385824314609379244422890902442278259711971490773652245901775685559516849063913792582694050812074099209279469088980378189378720388059130015011129443294903322280328193559689194330012996635940189726018229424381771850522799292840425443449129066216234708531621350655201356264838504891843906648177882398737542200829099127085282073107540538263063195396426029603823448303902130445076128143687139354428935046920464662132050249160785603241958491495561829319146077534557224557710773804979420409380539398238325068016665228961727131633355225943992005287612280713814320106005251633568805657494073300459227505075496453346932011611425010192556572855471066219066786290644532500207595555976067053026329636619894312712462730053779537629512983243409327446060970375392429053216196980104385194073158378322844434552792502732140860507682399026933628067806769225943426848430282956462288341095229057256106783206761219897454966352195223576119020189223438211042113495125651372292592230075930653911234690860235464133787444674828728480692860958638282724398768562363936444320660762036678437619718806641989665554202346828572458653978407238225640746300962685860973369096193421704116319281932897692120101104781216994783491730564002945782236518544951100380399703130754279834153125787118156109917410762482899651602687382297242502987475537379447817105721094328045623240846245134370433255991017282560996128221196000349699402965592208401459143163228319008308628375040095485484771739335228203737962496759872591959084341868484309079362748025022764699093125378975920293509718866295101454342108400629446230953579485711607407847631199969885091575906425520691465435654352854895569817884252846760107378490156297559952938589373757120094269495383429413476742722034416330637668499498859521924054723920293162550959398906935051158025845833986442106906665827375019734812686398900432967843356342965217913994838275985492443878475204500474395713749684248641026237431588010377948363071494657739815363007506116244616436095040983346375552717576880358643209926021394923104169035330811541326947957165759500784081185009686491317189698273605836385325609076899066916733058144331132940634657175575648868764186429042683434072779500573310397097536729022226179743159319459442102626264790008302372472951138330883107638465277981780396653492484076228312949731438750362058600975585088048122266244892485038369866720466339615955294514165583725687215268897184427742816426650613527482811077145089330436877447551854193951913859054406557836263183426862721676081102445944811888778594585326121875271678822063948342535819521267061592126355853367516670028889161389893394343680851361552362544269436867921519066741673755757485052296922881321825367720556941014904722039761049635509269462570808238215131487501940231992417884555167703667420960820483228241833088104706694556489661572222146552649683210030591671792800704748080930304631225293394123668063259115433536508721696901304461349127448319877272238657187823410037159930025690169043384198234052097741045307408152557858687088755768799565289899550691696484155531983425725692291249910218249346103174986280305847874806199105117428921309937743520833659561371501581732729648582649649425740195098221469116528920307677349196691048903806889794805160665939165649701728224503500090467549741126627775676163503262317281951584969149467198031880948417521866333716235853221245982854841475867112115656611244483362134361614526504970294269122769085045653492981072626893429586580375297553069605948715037711141200677744477700520030068866238421849926967977400396727593101011014536806348237115875367598938766359108198674463912256282006819280999559670460833236062382398540333897717766421933001457126376113456164075445994275421634255758495356610283137567838943257892922946334196190018859824567358771674208230448802207899894442043279896478054985658290856421001327791783825435684263946580374832931178969313867022902551469599143162028482568987518056229801043549503003666911675341891297599890918161546320141557727198627911533945452380381797287723741725728012976974027794016812473908404481886941567339428431779223190527767229172466720831534106449072941499883229441766273145386113444941639620973182763809815488774552021031619318239640488348558407549047140491074665807620903265462857871466853881974425886616038579981157816410070378419104080456743618652425522150891875148054487818895208318032857278664026584774426584163773939595752762687238561075893933231086936837219252852771431932514808030638382244119035930881138951072435605730216679112805398481491538241817829114336299088086348522584102967002304843236310584123604249759421618697409821618239899489006372150508239134161359002334387989827986597627230996189667906225212684711480097422295774551843837209342262448060267306269846089008697540411435410118043564983617194342010792041708918555911623966025366427560201484399852005206993612261140200078989858670484142665952807323032490047432194763593795242165940429045214242457199655815675860381945316505656205794422170469112415913829686360218637522254255212637866518105054558701775451837976580024183173924972746394470302599217049177183969871100457755486377601878336745136433453661344355154745001992405100184908693876968537835512367632028344459112221032594275370542909515527789708322884035665304188450843383976945487225626843779012343841787554410148051177410633841663925266203613832644039879451757261523742557654887473717284763075284592220089018009187252985962125520131828958091337759740182578183645503972965430440757423795236683787679462554271205391917339359464778150744816516104879398604536399556949784258275166384936940546629287072905418770600627882586774569401496776028251808998390613360099788673508408361183192718940598887932866365397777103393795472378911729218136051099092905609248097652877532514472932368811006974466769377827641775722883257070843208913624938936101238605250794119250914947687265606493429721569167769233993306494117089214238793449321023878375259379498633520558230717628765496345161549273098638964677760747806346699557933191537997115008260311290574501730566479667643486984402381071068717124081254283287857420815110416654382473813888283091724987500749168346523240421567753253053248590568769716610649114859193516432927214418036283620012175991964466149494484592082656411203306250328704319263535575861651179605789258853933702819559055636869102217982924832069007667165795551017611162945885109196949567918826149839096725986769015721657374480489230022619130884159042217408483584480603264725601411187407143932555076737743627163915208085503552722732190532356777215759870563486162066117161999856643607641037194132444262658146139247847783762758399663428518334921384395564861802556520000368432692874993006989442860608858848668629743664002210048218864086491982562961854158483771502970057368228699724002847183180740313826414315748194163293760650730574625947925818152979502626236007862066363326923551327138710303179970781666573139179905895265145600516769149911271659254405786221827853588584206060235969163660526672596975167786736051990763506671963053648447197036024066214666223849581354648927526558093212570263736604839639776604784373176288899607817745850705095666133516376680624333740984849698575521742754437548474752752702198514321137077724597787358404916718037964759213997891379897932226796380282189939663445751222756436162548343213888656716899934738660050289604894680816757994849508934813782831241120234132402769060320866715682040402603986752283838014650504223047065449460357162674928274498344595539801481721837546599312486352334384241646746190227428795507387866529420999539239882230539897527255958195260820240502565755202867367919201896569721168847671063435946080414220209842736981798925413179174957987595902348364379434261228538982761104320689402482619054503938070112586625481777515914614700248001554441893507598331171125938055940973410045689184176027889491289218197417265911549515029692462244616590943830657762035731482933786336202439067146752913154829382065663645689038176930975926460127844074487377751369198312933461618605985204648129262190214573623331183044142768910328729654643764961280292749029405653543605331860060649513126296753440737300595001271201909884277148234033756581755621097260411472066572072443616424456746387472081354213196280561536830455431543975492773334778360990049038801437982307396161704076114934612401167128982600047877578651207402088176188221279595484190249777696657156384233196692125851629764133151032184908235890754932499840022860476771710830933296822817973566005640831095375901129034950670071615025935643191179858978270612840118247014847973698132733688054960218865114171318185786657952378273831869831721144059690241864431509888400268107900591044815547172774752136055424347991449034897927452013646912461500547153560965868458495608368514622239542475836375627025888313191963110724285646109750999205828479393510187353102152628180813798303749725410816127388673784658133047172128605223853273746778761881272012398409172711964719774642127523554827012893793508734674092908458179667856857951610789192259237201601562180856847663438905392417935965873126013615874074999340022935671271622543184204259125535080775774902470338615362292651463534413504771289601571133950550390574496193305595576279969723489656847182579558230352975423388447498088705429040695067833185013815344162571893723010161846699912818836390129096018813686696882016775141416395258701460291563327164046853906658160271801660007948675141069817541397578489540079387462214782660101830550851385609199823923386058420332390657856494814122320784517839454908987531336209603697839575775450870059954939696973111388800464860954145112895489787066424238927571710350592946871102653299114556634431203636660272356650348480762542274677832695229438194471588849183977917733248253517180906809552101343523129902014672894023444400688416180593388347366655726504480471188375540037209615116883283404994028726938596362077773174765885131092467527921915583675825521435942245773918760347655273615008284860980243537670600209046924331687412845748088035347131693269849759920788369500589005926443569359517854374327647059140554205797875854982037729117273078003712560665616869001032329513044377179641174864777343689747359640395071303372550050234954820615295990051451607529921985256359174480183417079434154832919748447412709271005350101900856622063659407566126825229193030762898301200640296792845372237370341155778595635147021219053648842376399249987661177194221579810529587737666568301546515436182000768521108863053244455183556478089009083562457482856375886710268360910346199904637855135066760845966030191109874672151099745273916980614565114754013245814149603752597312332353123451507145898002762642131019293615308670630976172748402858873944104954538732024207619762279090245394329332251283157087046379920633635739697576809695130127957714376939612038782401446396544752143509356363147556389565094895843814257259784594912706712472195701239247282586086662719046028182441781689247693474522608541676465556242127506211174210430307552997098042903875560709857542832887277428857899837951886338488589199023107873828466297064353204070412774936247775587511976856153774934675418187878234611416900667930339749460035320029363124891629201991971356663523489069273894085057581881024111254688240724469687213376695935496797238301714604386700293382830630358578170042901926043041431812963638780477334461535906816510075343522373221503386944061614742268808214578659735997535107576384357610523029462986852579667510526451548676917159536149550763708433295431426038648475736492560693045224792366903920586362163497927765591949982490205760012621117727391445167240450772886433574584040668966622457610473724642639660748532899881941599483694192636185564737826844686186146292025896062542083792716885631793305080818791490931668029841819769640345086838469239518684044155716385356824006473759523191628074446638043904469023439218632535030733140272407681528511088200927039014137663863090264238560258940110446034418623663192754885761939983362766451447402378130793901068971319693899132495812159033201447426273157904400530437524213587278951333773505999894172724440238488856250767758446738733052211913495974822823207182095342275644101748084628577603333629561171029884404619570233622855546469282690568584933808370650995282738446112534958788430230669850910763017110637132995490332643271898220908696595205325861860696597793276235548555539562229710209538979471493465308231979106135065295754342869266335921496704160228484386181092622382171380760816050521538126786632686600407186144360159279612038315516751274944436629227606818786762495132770594960818142481007416948748013971107788800974588176798703758373429417470412794293274141696975056189313360049860562190528729554478995794153931819112805030846747603295243341767994538290237498860434021016979162184398980911226366184088737176651649921677478206486054519349507438743842501518033703301485625689023304157343013249625131479928988511261759102998758775459969029283705720532190396431274756534854728315384208031618288856682753716181750827768636754470979863105470709851734303706204233984535990125469298549574992483926761489678008527474303373812301002801358181395406074967437133980132852817164274032816656998994918490110191490237369635171870459827315150347679309433589212801090640198097251086263709797544310966032320126206427569235923607284958148113755116201012872399415100260331701584911512041644987116448823378666031254794801785884091030796254801561005239546549497842835635164551560841128031296456491531786658426229154115598032301776985169622762991894901066687472424394883179094837579237083932869943632393518470185202668862841238618179909931033983252652345006520712736037546802047125340784115600418347311516661539801863638921201109009453348658190572856640275131123981959794400866308075897005508807153432713081943705166883413589646173355894305872480727423914758750393434387947043264451120878197613705540139008052255872264785863529379521635578361427367416492757017240639737637679022603013513764719190651407394720535464547262792357557712457454188009572908672006132350173121445748900296215001409013491798142303590369630523067165679808082898053039564730802087814303774884675603884864010446122880436679793949852668221994979880892668552772761228994840910677318943746991380625110231104664125185576734694748001320246676783270171321926522584667040126008653788142111451009618760460440531089085395208943704501680933393037263650562061675144409087387265321545527190352409143421001722630450939142993663903216040027380542076737307557647458975944440494440019997060403238529351525408154886077067657401206834930218332496665409950164644900500417306117435955334352126821448219011189736353824110879029017950164482773444443876321605559457766708878189583893752909473621576670848017076984444591874233749783963653429426006151284505228657739558860629105646902092557361087087132881125154753508150166943557654021993723534464113283937874495302479516336320062786230351051883240277215893600804957002522310177728219279910351536528368035344399131362991896924440819534968094998050085249361243637116260024214005192637266004342815210317675229978107585427810456183303891774261699963737904389477833285679446149753890835382220609124710650810049979822394775120822624915869580478567236833346111561422077270698088787720420359897792664500516070362930110198614979019884107945604913748253932808696477918080770404877049292614421177175313023065502790034359129739271467835565767582358841520144973880602035729139919352526796168499086802764766717045639609539235333362285792287578237609061285034979119506010654331366542876475034251471093621936940587527065824438691683397448088529289840773604028346883678165274230558632938821803988130612361730632698601435825972745754625543982217960551176419773116373977137369476374759234361949292638118821974770395212037099628029313573998004691826778276437381749702126267100148895537992313138165771754693164298952494987848126878349806719935713644120114421327641062227675462173909863496541641763298912495106674569273075442986858156611781488380682840518576219894854076350739286756736208951337081319861770361627059924135990710624748599863887414502774961785233551122976388424721508197912664202937649347642125782735394750070398576837452831118499513111043389995337567517907895907769994854241277950111099111096946088647542589672517816508937847039689262153541701835842399407896531851204102023087312409223877318555400387606367544930334241813471608736366166539675790296170681679875750905048154157450344042024253048759839687813776648884507301875567081904053308477652702099581719723210318430149400502996608633445370264261312496812182958580409259621769728550590578806131338262756842354668502857551922878833679858124665808014608866890577218633080197041564313588978103659534368210459724061393364516165109175564232637004688772973866141367301611889422443503457284974826497541003301049071628547292089534139831645132725761107371194756113802316445221673823462292545758245407536711095104646495527136718058577275826240652363861002453168037121394625004989788802545276425758544226243046819040520787355222832264687910878917834508366287326440835027427215350850067997475774864606284421666122381889196095069939125285042674659472368811756226592434528629766464158734294802354976692804729823885697078570261269329379388350945300478280561583449736377973139239793545931456994780559964535615305996736496484216628763739390240953497861149175913393186535897404307576882760536166807722794744397841709001329374475076787114758025295587811785660163872606814921974776607203647671362489037008439020539562702572550004716689302267835284693572457702068390044174800399067081127320052874361042701948338263402274086953375665807397389769220432553868897098356835455058438786542688890345733277897766581062074291152756923740036138090061402449690301821581757144457661788396700534843661693794650647505864495314419387874729063772476844313340894654752293869146484378354305640892922541694550758884649726158643721897219783249535684720768205371586603381973479512019179524652992460187822228649766012730134664963009248178799030547917296779957462501618068193893068021386251506338925180979020520046369158844354686637374536638476552705720788417171007344714326967715533366088238553778533991949888219761125988956876078785830071096940425448640118523689122553617289957706440269041160520346997917842925787402432574992324593454925234065348396532189630439449155622071316481384335078138655622743615748814215231445883932542961221287350001366971270189373055890249795219791784282880146110623057519588452936284061317197071244044950255583024936811751685271236369402665292440379807976635207179180351279982649465627150240613761169094515560240477674516693771871915178576189480733168393550209049867571515136029265657687903646237388241364751058832581070683737114797868983392346085015311857518197993270281283642584727572450835364252849250742194006278992831877561593184759628959525975009897753649007133095050769159828032733317211730087764261253411878986349907030509824246139592309342111100733008858570448504560760194062248191301580793645529485342368882604606989777923657258689281496105320954007208918837189365249518698379183387897474471488033101249922399648552875941365328452099976523933916649733272787762042437087260264805726611265173695824487321478733096103074585784569687084597938875880126777420342939890634356665441524956887057799062814406875270383229493995179547215986976456554867910727291827526601529499545334407182402264762928330049928301368304593060835002176026620762593622752913654487828464348747522660609239698620345921778135779529405281919776551791026631487628904163471807703439495796904765256234811802141620744462599455168407627952693978575771521695349368034886636753780925712564224474442853838842774240790903726537528003862392805483120873923814617454697550944337854665907373994293035346256139983288266381175457386965479290679223096134339531964492767994398363461963496056090011454556922038326296840620952095995852363445932526720800916134313549081671778640116280796523244748270556284203623116658896684516265416725044668334359564130814104518727496359507632774916102630396594926041575443160915849596782913256125675300551551373863530937343692238224131985358692831407515663759225457665643838939331952032360008836557050196914473861052145028172722205909744431675980671255136345526779103272974017617597139006370431716628977182274091693398305661182035867136862485153556238604502885951170612420536419337635223147893931300274902302258494709218134003053076618963578638400691822820578429111664051261671567929925195249180038925438274612332507503124114327131448415720185937807623066473075191150924118417637531022424469364770733519229341047313026147185962918795385502232772438956940074468466480952530080176612013186048553818107749688606503814414742670160866830949584754060114221177801732108927289343198677257445194590954256240568104250355986320227935074319199462268108581057766772578213544226878607338602973262387514701868664656692814035670368951362923647499181410870039235515089634443901338258289452597757213661549956190899698754801233670761369544815684118257221863935287947171046114733829887598696089660602988119888624395613842291100478106536680376594075020126516401831910820083061222135885338009800401478724872919441666339529393844669913995443619614643589671263535003527955876585599190518301644027086897624789560604098399966157214845141352227780776664668969506578127816648391576269241333507662157256225142206152072707834113878663548355481811997065417849404242792568154850752906955935300548653630905480778467906195583541224264877736191272298547231518945940964234733844719956339533035416618192026685992751892669827258447165039752635099911787110356239730442444555325183858431395190454437300389953867102414795540054903475172482877410620410620212364650060123934798755391259825347964182182929280804275536177528098524449733834855453446586066065473855693166421998754425124127580019972218335502465575398144980100784329268311094597133027287143411161818738895260667497141216868409233604304475413882545263805643884482094643437303258763782427558901189977128750090284149578173629156601000591943419167252194581930646257423585078199027706566994545161548838700769059954579759147448014377292136991172396673325498419763581298481827228220893481488070263084650140504850439013061651192970158978277262893332887498715913265737410247692476796017344960545715771460740305380801331098640229335459396097719884125416118645503478961186194198944003780460254940054049325746564522175692339355072333645286089538609774622281762405898363992393676694395635400878813587799196168564295804150987901892416907728855374742114754142819688024367714680175269617635719506053657420031446089121232967970895977302081957662950850857329609375623706556162601733575496660115962010262166023764312694278372348697784074977255056047460456531164811242121690630547333214139530398803074311953705074807487880854132411894453971021025052182867257507815436849971962079144545276452951776353889492753924742982387346238317419557183443227347096873518490825274069523276191133585337601240642707833609816044645142828816963891538909893927142320260746242086592279212719402362722206900086543632259201736430897732838632073131889610180280539272305020548100168329507786203993102046792485480915365436212089389969010048986529954516888081294534574599259728288657219956189748703973693466578546526612367167046422007308635493451598072801096340959545536461470117308200302774737835482731265594676612857662944938404116046882324717586745703760574731794661426705463797248728816175129974722834199988143302419534485976684042973884737907890038228038898310199232056888005249303273735056020958057154344795697598309270215411846213236249852330891237270195701000128028518113000016962453705912932692762421249673105566939741536211229501594435430630988750359043102962354420611865341977744996138999695294851888027842292300947098395750597807918791525847213021644494115911703210153319897801876365243734218655294127375501111062451347055324483630667780211660571406976031114028752558186311517980867023541867934284717321245669581945521512700204138987622261204434417205208295127186212670250169750666235706242862389057056063051340244042860014607065613833275789470718471930428068740525784825961728230560164948701299572217699397174701093346080204446979363359444807817095162883916117663962442964030586013813126171024751243546931074623350082700846927803328703534420992673729942168575026106040519535998201699853783546282997918426550931948204626406649595060215755868528291527200225734225961285784711283683930419788617334128232476726322142196719098442879255466267410050359780247896060455344685261190738607013282550342825361606158329636425260877552900190704120458135364537377377012978506184268879501504831264481138901423064361447349805316304327770745925790883372320795798304730423104120900426551879516207198929189106330659248164906157194876837942532280888197988742802247725865398323930293930904927430343540289548338220808606609365474325524287390079255473292166096759228126614714129908370843746873280043005453140165597284525805211966615466827083066351990375149373026811356755936501348850832628300410893494904394699829228071577616159411347357300088551594574759642132066692997868361899991487874311990855564605962650633940517339878383553799616515275063083920077256481337348797351802247597093542135060945994853232624347697059704012924309622610727629829380660126278110441193542493257413494710015218344975099863309709295132810107211775330628036546907350966513806295540437890821183357956742108041288923855773681432188556148449215780402883751156801958196947090837606588263767449390671595495232387178843444760454975980907258714248768434794645885519445984470938192002734993635504594623571565548626041961620603680535935044843312756188045845337786806533081273338905919827940402213227376000784128895614038919297890097253593031116648620704572924109446982149896070418311379234816278714113137504738754442010172458500915343259058035952397870697899859341953678002952937439301648941007163460832788527271093930568178779333810820300584024420948172130189034529697217838873188565559561171499528618642595738014951083082957781395816543589166150369189057605331267514896367818110842167426340669550079377378807825251499505513442170070521306780084115687003545555759208493153014659802296086519231453175541667521057683911972012431703781214697545048892465595203255952611258281643892930775641760045651760392620844377478697015320559541516532886344500172209537678401437743817733472715911059873811046229100714917389252227845164713106920411466090090068777516998620433895866280122275377037598879721066237116388616025704843361615491606913563388459888704843464524793524401062748693303068401722883502075988466057527591266708694770549097089676387933648651523841303249041711393483140677644930422774254678363869892733247073056621723461605400788835407359558613730309931262794399582472482136465597355089571203315999351379990209413716856844406271730174712618336687885216076162500185225961515669611222719150526582284501140377025643428025650715463611840875294039653191919914024489668911556791115635180328884870665263028039043562370567991033292445161086438710805115492094417397560460300291995350649073704025267031910219405214451244992763336164392569356021992808364979489045968857157630662938690484914874966876836664331830573987642471919386573846709268381512996156176956502173374484784348860328340520172044075047737387905596442188364239092798341302007195311476086990127065463044870542769111392076625509317580288765050793569090286630485480693206798300708412761419101242023684652895835118575877467143792868356507600873071925663155146344388156058219979690231042592365078787123893235621541372952110956444571641422237709620004838091837384441178782882230332423913025035628712082737593183450420973364985060406903145947329230106773980800926250432614933132206947133470538242372644936127467179401974786840294442733739659135847444754217139069922552358151625834583567537246345228982398484537067357952934107121138944826398587750652412300704773141836111221017263883067781768795563280698140314693267525607420200382492406480533230159558876170512832690660274082812496525267167276816748188995912118598886662108707348919551477871756807927350528251089837524787852819480440806780102228488847732600997825490703620778582991046560890370559845836421069789984245921924211420356382210109259633192018819033268430640297949661074429732315811797824645869608497256095989152428771213553882488235281423841189906760394077255419103352069365644923599213997753364471683568071058108987004612311832805432636540070809502484125769670197127924979463648637959970992404962691842322460438940817125876977410273392051336912984382259344932818964524106190356773359828008007405282669969618184103807733566129329896286987525871105766874111251219484003591062953857086498459887018463806301260036372272587069912702310657688418562836333890910498456530635563371484999828167327926253784303411947052627721756987216262953836783646587715990682093092772496199590102823434421271981278878482107275872688750840084261945985063396117486606314736168157106087616151703281152394528675760633673008683216681250180831091323653434595288616373750128546254031275810140090938267444818204066589632432717734049419783325255399586053447468279574129877673333009790128193126862488567870469663195213920623089264047068498322302379861820500830604902548084017679221481895476919825832575945728723094619697237775171047724448343399342162413842271649105903661989945450387338312796387596367839821899594648460113800854879243764914191450027523230624790402694202945243199602295577351491328414627076069272038327213001526847182348398629870039689958689511625594296540288973660208692541303828587519348739005312318482165042291569175470948314720430831716015863831889479926917578158619758771399639938649268798126354755143068358482442390168448248892826229836667677066236494201872343898778434846101515042220123010760748410363496159520454346529929834486332667919287211578507081461300181841127822427029985553742573713989468403908633829458021247464087746149256302478538954160772431314955510414966491378268304902353968294807705671908257604452865094839381218131440617598784677288280781036324190710495226815820520317931574568007944662939176750213309979886921318030580607102756542124490084407164250929682958143757234269643440198819578807120071131052279222766826327679031970811624092160095491180769680735732218551881942985513718806619964471773809854353470949442182000409867833817875141793995446090500416238652430624427238072937299747504786965815968732427612314382461242658177479872578457076057808855626457340725859110721773586806023120259962502817001512623766945715865791238843648950757719287643266426289250386890062436412747143965574251266124365905244549926562635829705433148786867444457274846592460265226714852936219055145229624571101260576190145315021599296024029792159045222215340086741454566890081042392766202614505701643602197629988940177999636218374285817189754681929216484761857705677514608439787231619240973056628331396056977823738579827064053340573029867957700384406089391709849490816579954093599306827480124788960462130700172802426472521766154686351454475683874708931797575648953442518395027485298648714740818232764514947983628650096699527891539442712343693372140284140892785673669922851965399592213780125151517427801640034526514922093365706396931247621677144787558458041974509278468160293302493736979804709029785542453726113187563905026816901581858619285645123890897564087323537172118517818448755877170903664664429091634388619539419266788573151351213195709423407862768003710111019852572303187595476473132390903397372074260327668751280570057631446683025761417008195538785653814764168860200171324240836535439890833360383387774472945402591583041247987339298787368817986494276300396807814149328267545313612764278897864283081602310396605188145625757981939377130414223064862397941399696232479374335304251474086473840145889800653347542883665627446906152382526574749328499516121016978824448059195535539522403107890746253729242405370414075833824490942976003863952709411853027937099084999608267694281084006098322000977660141463042245804788384173285629655638442422128077535130700749170413497819853711976559670612124602424547567454226868469453224563424727997254412454394612685355885375787260196235551831529718432483053621779937728125310545865685115478212471563239459459720084969977121998536549519045287254396039558878049067347493776973057994629188968792457542386687800610746800911192586319520111495292405123304045324150459462069732261329218121773743373126810837691202355217285094954185928592840029571687473189369065642070350020151190772016188452180544551934813292504942630985252943427238296143347306650112444441705000634000729393948276607872361176483205223419408624813943004486807799252795522648570003400612061477246480709724375818770309378698722302748229889138424376925933645388762225915435859754834482727418518565042307880808212040762926718106566847363583049558301028530033355931331755782888863542477434846377551015410127569005873214014357004636111561140316901389152318893313708226157077299897968315002487046237838594345057388579933405303830546718035513075039721811150549337612219386561309321660759997141948324768643177901647942273269079751347774794127615984606778788810919678011565744544921281442428661489125752359546154391323986170600376071818763804949750490086463803849387448927266521100653142312233598986781847997123694749532424359443033443131012121446887645582885828393636613559627124193491991043925945728122913353867449924446157897470261150011977551930920231245086919435906742308765505541073568650631148319817548872471492920481426486384187998355335270551923830987431773733342122039268987275477611358676790150298125134710752189913594292675475310414801465302058217813086735168289104800609688195591295820597132636081833576861808388527581915066855719430227450234361949948341848658644149141698859531852713364395316270496982007527915215003610227350409017087268192367137212878223730712109160813562119689324949436309938381367992585390447808098159991226004768095941287493867177403845557746912175449827518543725397041285273087667452386012907288563738419423681238458177531057228060876024711897888254145095349215238598434605604178428513613505876939320084981111237372295125862058887393735293612063858105252993731341768307494780323778603410951794792906897442694316979430460055680678150175193309595995861635148533208311518580942782265940548263987956920771007788002071971008271025971888564284925633347073406330187099534675501080810067158924320227660278713060630959770491386914867132898819327851183316541139287105166228026457906391899172064976997409657837791209923955084256067617727499994067789063255439858042139661447570462014170733799871010505641752540737614726126281694540769166452504869893417329887353285555145871057491549347361203635206908046488594247732569688628783272814364206228596920523563432480805260640377010132965599655214635263555297865371459972415819754343353652005195313697115680342262615394547363563328130460587006505098860725242169019482366774353077634081798275472131789011402092658848174697423335646697999598426868893788939761174524517732601618521757724286046439037956123697132930118794886619590758302115158013086862334352600219065831332537203867545446092657145365711539534799783211404548775882695860364586838901010838007600291889891522879850391160788738104702575830561952034890438716614283475481822178114317359757886089263256397588131798083489119891209293080510389725086255291528640160297862567010245293211790961186394685367923103101195128246154436523421202919131141598924864124554783404309128506318883270776634173664460178845270595629874539322387922716266602064946181972623991764347737664737832202927275847692730862744644008100016084985470218647601153825636192676591371761376093758381655183760560187008058531222545263004044852327294636367075937643070813759459434091726652253618381650030987626717526773201481851047272458555142745659732489814745122187342648136360068857429944776238361139929922831418095464242879016430593444516562406855147112126285936241280529179827062707035942949221237567304914189751406057772935687430543924412241523484954132438595292572472657079920754702332563521179343295038191996227302628720797550370607585487098027513420898476574675258381807318527581641662859404415372802381970729969369944830112677666381622588026207283189149947664743605058741330319734627084485824155822021123496724897758525844747405319181096978073134428877657816265968559820829579653067801439547502940257016637523193142972364863149795221581995852841925015473076301799906560428783089707267922462137037758238960622911175903992835194636029650587124837330289289791138830941049958980194394951886280561775562510780072085479393123773008113985134803388764061713336691524474374872392119715064635942070163538906694662798347499004717577759594697507115181440217238333274774675515758004096825474988408609211075559713683855481998249669841507053687792738250372134292836305850520203765026761873484857670944526977722499147583456899862520430949376510499119504975365884493379943864820110732874356788479222384603598861429946475060984046552798776151108907148442835767002168549094327800643690380277232866282313733740229474998191611224315638897455263464576684206942825181078670099564375205117144095358761038210167551010554674458716427355654041387564944069630894500916199681092390027038816807664572589254234565698388496518547029666491482750135513554147794371152476928652073570898827690111060314321350949223909458608315042505507748058224473576407525944995268680461468832524007923497621508559293040675134086721209599241307059419398066365017888652756138201397033542544853319976450621252728066544887238001729376697995597515284444937999791275392706552878164635601478936785922268159201439205563764072874945133733896032072925154417940558993198149418750766973247735619741514097887280443890808067250710341153146998717896683864827728859461439494700638365883552776853060736471049520824851120828945502508249009672039411260933154644735149630206971884587682021643625916165826891946517594771441019788909163787006258219232732354063250796956881567335790576050830541127869629448139189659581351368942426811733343573207651176643682248876163097053683194258728305928440422276846136300588238116368864031886620066371791510649276864649508366295584265282742959564891707253158654500390182965479415676487181420370268264809574876947102471276752381497306530837538891690381301974315952131163768181146333427734479114319915275051738999057505432974501735116582099635032946658874538149329226097267363066252165547639357459675575798410866267825961812623084280731144437940628622041088551866912996227737366380406695256120036328628557678435863145806207193294519443594540043994523834433136536045569859258195765307642530045133105892396700279004227590480183290922340009335958504982369543135631572188291997519879979107509081968246850926419232039330878007515537517872137294759124733261101334726888238974914524239701298346689786538680376057342134512598758734978094115652870920975952653842439429657425230937608074451998026142258618214297566968750309357155800232205677128613650315735685616651972043021827124027634123746476509061731751424540774896958786434206760729962827722954928291165676741809581013307567107057518706795148155816947475850489673191894295472755404770771185286145888969266059366240844476783004278036078043773380111698547606947490382437026714485301952745615364279143771101157395469237321266597636522426637686883732652894641075092764245734477768982385420605030240730693333575889438125639343672378055620784040818798075425772117868737074294354268591406943699714802719891309702393325626331225932980247957731839479783585465100755637456176546024752316629096221456998097846802763882020170491357449885756191629226617740575378132657057185569798049519362374138454765454851501407715442160615856536675681742207809859558434705208051750545626148562051325492828369379214298093832860217447538183780020919242806771084753826178057905076279176989987219846506226633906328629535942343316782994815281134580849432233851203126305852727780068584684170366597667133274995229472079582669946834379891582368115601483397786281387605204590399276951729341205935685605469032294455742264401335676694930651803849168795354695601671806972207064705807917240598451640281844886640614158436656147971107283916171251682275844231127051143884483421104592166106727889750570396344712933147880333704546492652698117133293398058012358111236336901607224146087386397750517426864291618170514345322063354088670671383511855924361281982830518228568734289716107688480771096359892024693054130803655123980486225172087951346765910697656678255843073498717814261634129982961290377625439790185386253465060863426338916688570109533163396305078332970877462025757210251437468028913078108799960445489239984899871939383127126912371608764791573341825201599453544258950530444023287857416342537505511760196296755823330090720222108323457659199168551518850224245304163965856594259277529332317582792196813258735351043335889294909537443793914972198069307884145373108200200603040152761671746676868708842956633065174563941150637619331703623651309392880120856894886217972582250266687293657333004604855154838422813430580667524104182015711984578356564636107426582464500453971326299998858884101676987913391792738839820239479374400129096445757778178420029518652937972883034385747424469039053444552638970443878569461681325870740044918112358192185536946128590952724004190714118904564621342976831909541452720209926900994970020163990569413341949911071430381390637800532574666197001398645617138604196045513094383463795706681085957736502031489989918716425072979112008276322030578797791429542800883519125045062696161117010489760976536993303280798313532527610130942607427613431411492354463533410996857119394109780466424471197601168602734621146295919043483778406200073111114194329167468180232250144511940489613807163644420051533645961195673489842044464260214081865637573944919859498125179021234001532448755645492068469982475982226007722366817921816305125396109880159989814338836640622469404878089346273073507843176110988093313533028126132759013374433828354080405436383734315543595448569754696898073292377545116411655277762001481991005503656236610387141372289407361844298084382588276816840728597721389351475652429051725169095327972446853189262685008860017194010758705606925087815354161368023411880657262637751255159971006125475473094468770266110038192798119071410856605656801730841564905739827925666842063832347750493661069772874087687692592757951127256886185589570023235872124377838085205249554116922114400878710796881018701761960789228919938321894015089223207240058579675736028803344338069442431787807139754701195273830548001661563800612145445822554147036585107044083574848623539358567724704904537729241841181091411468297973963100845392408792770817109404952624516178380334191406596965694341984890668319651557728587996954958645846304579305689539946752017423435552831832382769212226015761354231005662898335874921944539172197286496282474885387125623106055269391246592124217738810637104200029340696601266395995537893970599668612498173949280288200553166684805706146113357338088451755124074276135839041086995322322256601728475314491900936738969144587484630950545343736285125056446950808857410420854683712412886038602154735131764895880948157237582269076249220057731532647105912847324601010198202289993611478365636999983924838724992160916284776134417535653315577272702005069658769372147283816406625227953676300832699672293311953953975612107322879887283389935786485118489760083543091038825701979945092711127134273852625239933222533502636724584459006200569422338213003075479008126275211078398868823103879105611279324671314895286334745782231024626728874918927550537536030144198178444003809049384449037737291880820710146048089016796280965543344106841622259158846898973151848955956466636500007358688817706123415810712513587192856631954211879328682986794255389718948063880451176592380398779671686614831786623194893903824065356867295926001605116990265831782164603450461896185271909172447920988707065181192346019679236488979994160512683512085257723153705392327248198813608565512397301870538123022503028706455421707008651598222580007393043764832621384472929981168297046156976183207101004641255100667991853293179559431410133785689683115733366645926415822520816942274590938503139228290210803922609591900863572000097654179082859614306593278511802573735525657339980225854805371448631359240640909139463980298099791548415410424203544181761068481376135838697170582853765276139123064657278021225317342827476019431189401103773738471463888613910337049739471524854891137088981075677322869311926522125247677020563427305958897818933422800985145044258832380231654187921000873255091182328963984846204289783538826636415102133350930094477067999491137087208132835876386617885359993831599777300433338613044764950916328888361984723135990333757480345931339930263920256603068223534428866135806755265259747189635179810236300768934981816179964578533915449888698326210419408899353707877604503921641321416984254383699770805074452977747916557808388262527134762778814634149431422131637386180159732786223372901133603492156960310279012425374066321921927617614430939843366918234000449267879324530251984580306954405085216674517842793918740569980347292962783308172642157766804399552111352892270624242491813429187171563045792148793013380391090366184830263776536327747976490461360321070356471795636735468596516544296179429156790340095524077339011374948248558427017046301582857767141219707945227129199121753234704446027615318717428818246478425302161689621128978273264644781632365702511623725473568485120379535461312241607145214074757030022088722824264511811221705840371079570794263527416367804714544661108730688679886530718616511368466380396568794158538790568592866604251170782544645440231905966522456136331099812430182884746272123663777334725244109378643242028546088825438515524144699695590391502824592614944107940927701930599131935230801547596884820170643986665397829012867286133423452611973361951635922768925002612117215339593578677072493424786484782882964879797009815626465092975609875905874865255066118802559612163345938722850640236853306052405275096829365073296061291560286291153302507946878802599924425561301494359351389049484882535295000623844196113218642209719402571253687152145526266593563336161468314429304047935472708406854359705097345060821962707772463601143271645396069064400705163195638552761249922955564612565317065046593708974597702450650411087776831756215888693809178871909440942645330847662224202933275091098646949347029285193064021732869046883812457931232361242688934187154267280427406920535769990495536286425655766919735714006075973564901567366344247766533339936586144034556011804933182761000861938680161516711657959893907967825950953606689538432372989560267017709310314900323562503800340013573125119109476434655109032292574604339321324551539267778468892139241833012106514335034042265594818408056247732062146843366926559946694344882958585252141843120082603180968335281779078252739355863774458784002727355999349250397091188730434122342854887438974523298593671450573802806194024411015021254712477652135919800532489828730219927413654708802921912660744058355571678372223741607799240021310522774923182317655494580286575574986840684659015808997117632818717888626310318275706182442967462422376414585341582837644642930257342526989120851158027091044891802937230976679807020733451652545821901197071595715983374512986858387632653687999695583402715229036384219837377668931436439931911127029008872369086820750656485762443535015778585166114543205040168407780214275105471470397844487931243693695543554942524301043991615567123489193578608339944534922283832964046890689292036191010931757651897243049104223752620703633993600198189263121154720208963826167680066120361534954833655081188599844336267039928970229604151177150457475608036741128190536964909693007091721668348808901194963979812197229746229496701836009372764258148726441771806444400467114605989088707905694854876654857116034747022530393572944727348786932756946486318871116907813773486795742141527878792723218840113314010623046867501347504796284230456543874751680098569888270608122383423454750880959400425480134398723989077184965789586048903340520922989164791447608095935449797428742738251897553004349159599480447601596917928083702133514018160444922071905297563593854306613836287150934211644089188884766159919441988192477822370262449472079936569067497585384296242154788730660319556600010760940034834286103349052271177848670117328895547971466391810925053196592533044590515451542636914454340637437724319487869297167425324129752613036302547395130014930269944045446628501870958387603521086594807365875784025990522481509784919717865464862231101220615842993591503624921625445724553290257299474779232880587192487486923905557081243271310362044095985730570416384099320081749201171741282190574238869242280525418967230244086823942380333502645772426140375420269986119312133398398521243638579834392349476137094433546993147987665105125269768652813498456293663942233131202548359084765719992032064840694179106354790472121991911119883385407649037713827251921717267046018843657032251846209975806031967223480617790792589712600833720697153767335304603135674866691205500586818582184234839237541330109640691283107478426976189533454167274773731462684895299738825038786062056597642496412630063937667870167353866987970958812420912141657316013129372182128933235758394879219229977916157596466017644523978763714660226809498439943182728172459284760821044767256536140400818351482729490195927054126485322514476879806545596336712858372514894627814849200121390646642583565760658275816486180823445924215219219846571685786690826831847558563996755936891318890148490496912932715544441265431970310711594110552648710828964202578550627232462715652933895096697160344627738375843778199944626944788825089710936095323803322875541853493721584740133030920262979454283755509093464637771182819861336939916114764605091839410114990079729723158635196403735116608773657430342794844682285005300258822254236402870845874279622522357495523832376084223297895056400459589687453965324584498867941647406605286675373636008740459601774528297875300452319932644382496332410440512320761914415845739351300936907408060332321546776508513968641654215247704066215662355726668095303415169556774219602925616029701175231731036676015426239922322053532043025647077920611863166382144881231336390194563444294613061851379827262944358233272781694811655231154346686671553389360313534308254329919262602183026649209057821990701010214932760423196779706078501843459774455469564539170527156969325652240679898984709495364860851468847159027829965887080754084300570632596845388948542713925319028395039170082210670219656407463067717966423248393241004096474130514142568795894671800024310892727383415195279223464812604632380916910869661650293789533051747705699172148113001606278727727157829356118637242689013631278608209925648033974684621261287420758126271988828002625667471165555587427687419939059190989846382198351313305172503605067986463929098348999346989423317622049922887984195539496319935311105949301909544955485633094651659744360191848303752527779047546509719345735703908179498415748177682678139913029085022448586730351774026530940238075150014607850564569890082399872876334557740262613295177762893412786896418035004622309155263421596488961320818390861546056059151694985619224016114304849224391284230713255593302427902706217779876105021540762339479440279001979467019347488956180051711958319645436284310680876686339310749790999415585220454994882834684699923060766739326249085126841468748420090568710207694519207551812034950079617281040395235652546989236943118871314116690779701916921782683423706010979176090620512326131253540680038271305793545985763223795311372405316228823938415453472635235447829142138199019671554860565014635839259172594164195154411070183301521743560446741810050552451085462163035320035872849252342650914935412146376393666449657058050042200669506107049041497462135573290448685690387786934285660483281549737397600442357607364951680910252403642898711031160991812002720680006960526674451402928963793114674521466615876593379586035812514698771189630281702877721841779615891363958435373017377803152931227352237418998656079336544451420135368334472542273129753980096157409624957646968262445041975919989448050040608629309615223337141460418600195112593235649946637227217725359450251428004367991028616564615205427356765698817494273625737235889618037612650865498744653432763412250015866459948815005650395454270438233619465521598390217694632814678592864933874283134633367413438150661475302947597738828607554548742110329490857408129031334228225862125746044506957080940424069590152375016221737526032671847288281613568031088513484203280726207042596271171716561990275220932860093857735311233936207558109312599444335606022383138304889950055159896071961787448516550570548432644571214495100304536878627570798870366051859225385134437683515543723856605485021454296002286519552479684753585401757804682820117080297645295397853382637394346247453962970604248562898589062523384080493165687115915322706950241510624894307271711288308759435047249819612177131631757120057635705176912536348758102379331342534099731417439328426120049411548048854819597950965950658355035037023542781615536788790339643018946339241565259580315053279592248240576199945212838486668519972010553225480493716209922859767122816375787551749831325751409160224629130857726451916229104315037576559786562885931224858969456027683782111274862170043886439067710633103333759503613064243368096512042212086300290837717137079509511808993706074857741256420245109924734557070042857323539374002956278573274991581401873516600084548224995990269317923815151319185968006751544746237344482654508889597042603963877286457472882412396684834933089343712625695747995301228784180633955999453642827817592851925991937410735910821466960972156581055341500082489543903532158039441621044771399007425188805936072667592531276622686431152465011039605656779948815159340897701167452426428491466872679793648193357551060943793282532940695528809313837118168125432129178195888827217948264590004898976168281438938083789070944445716924406692999200947996245311869305356585627402657355400361308613165253039732619893474495677030079170569551552256457731872214698827727762057913116871114562007364577600426851107333451866050436001910037192758628752204625758672154763073367716828557761185251240389497907997043058319481280421470209806279528193068823748954765005688613538664552757372932366916102155158833553611971718019638608486417301939491554917763613751640271354157823659128227788365976106146873149097394063084553252788351727866900355887027742699777234148095645516561771997973045036994050085657674995933169038020993229271032330281038649515729129802885134750718329779306358945988639570887141938334571430369136425157391800070512994951176990666016789194741150490202046181956606741402716954816368348783107535874393261734338222343639609819474737905843044143886584450296043070021777103957681288239511690460448608935479193338530201270501459936087107311350639357899766118634245069424695549911755418199324398813877257802952616186334251727484091433437252879043615171262115871958944500093017762437948281097172040424531914310681689044441741907982769578532104967631943262186295074680297463196955230701357586280781324288035213783873981403091889916210028815991109954955120839820949683068611580406158813014798253538004111083064916981546345874794155035513120389342391929774737906034322063148695326315167777855513420806020636674674450934915627509284807704773860785890952239630729677825821867605032826987899715982277261816822370797093530507414348998641538075905067371014984358943006600314440491145237054227220709819811695847946854138451133204480828648439112800692324679277475651443335427991019860238743140601878792163322150864919939629404128479029050354426044838219630377454052796466086431224089114319497553928895990108371912737127191445207359180962198376693101663062326314530677815740945572884108373976219511212163292398359659251078085114359239474386960521294423619353360792952981545221923927216656339650101983088475090024078599811205281828007636731127331801971325110339504732806823703026550757742627345982891795813195505134095705355682747927066065719736866617545440684495127371506989032477287280136499892107355293713531604193378138217003025080625636537429007111777504285632850285323223519407509577490860764365473535589006256313050715122377086204742042106070171903358089698018294395790385025751386825948937880711962907015411878364602628948272378621697716133049371004082401917893603415204963157517603799599426270282545798764853527773178366582302749709277549254576431812177362823811214682596647035304479223175519561982031753247841821878235402694888745290649452780718750696599105709965241952716660746015392215754667073402701359490503207253606382275404089575107569491400526777100382116926598701188341511215325031144927222830172466158379805105478931967227109688817719643979706481132655789664075535433405058767740367654843809343510643244899000182505744076330073155386074726893992447676318034015770736370308352164914217072708291993114398504914979439427591579168910469849934694213845917618070153048588810374743641286277120761523162657894702704342358021212929335618199027540715771891249703781396474200614870914447119044578954402820251666732956434092738727268009076640849318508706716461168318014213861838366047178328327649381900767861328399305087215907948000017191392707873941238200556742863934108872881508024021080684612637559602441536164876566454752623965711890175803520490449919661118888565870472992703864706104606663937954099497796159484397745940396958284202711438439706555601713923257200255884679380721975237534421558928012452343789103592938181656003124847006262501352985180706165923903274041621913974666472982733462574346023847416161810173773988139956748791153804069839864727684033389399070399253005758748549987334827708077818697877350677155088935436274439004999487533493501011186786168064112438701096210671517058847350817388237165487397867487264734412498976521845623761053628144800117747073054501371667404304876024404660254852283948873550061216977571939144227548611567414668287025636712470574321005385087550785169183049600456949999723870514205614164970851362813588852116649082411482037064906059119529107408761004502321680580818911789569271596067169723430246864728737319922416762640043247237734612350990919987402387286990507549335543376588497417209989619379515715145308651929615733996774278079491832461679030688211553485791324439501006489530183317118226811889932961104167782650717610109176728927543346862956917594475596517498651033761392106678195040880837362873368874268941279725976586323484779388651159243463991217443230543387218711816579931575129435206533536864684335658056718821156570010767895230814435838044641070490267460229241922051811579335605867493793557382367599376841809343477126979686373598009466820420379726461053318607462601338784464123141389052921190317281577452962640249574552444809013090524186842530047007538456011387073456324202618977587468702663877906032911318032572412929805027880333896211733393010682621404566249561781943502358900591135304650941502794591697814929634726612053207521042666546413108226015695123476070957637223419844762504001140616257381664265310670248834698093476584893492904464151158041517137620885758670042689254432018662268599551953764449122455940936430544414124578811002063287567780128130037946991509498076014736644906765211085253995926953245301870437243620217702776689545829803114363381599308312982591133110045722410065971977981489668806387221393991029510372322762509786840369337380384341712056562039868657061750074837220118974845804935093975559571246433209904767324561041810132108632222744481760152073206208445936221539277560754665856943809619728916583941706266419661772846296178361915504996890078318008116522122086346418930636888361671155155827502323364020711127865592116546432521689937492629422837463787786408250456807810815123847814810429488940081958101046854388476504482718394599524271908776151155129172828392605749603276333698290838339478029955504098477313125848295126100407448069965377327461700249567040878661832759443150037400496804250970588198121794065675525338402107306988818076448198119865154624097150479598262108044592008450175196536427351548234271894335954973201445947928771538372624256982378946756835174553323160803645883277943551978357767390001919507373149777081862986418059801812427004635616639523899201810261799989185700892743887734550915866806740208135427198764300922352824183590348388676586821562716702694724699262058079982892929668170441620359295468886943845660607780980957032511560753840001350626413823339897985513305817380160764466530653509884898308518125806828097452962709733464482654044978226838442855081577693342397189495225231745836353009583470588626462154666269225738181224838071201545903441163939275439037664377380783920227874187885994040636012256259753701138224453379455558997604715571993977097350613519490901778383679876674331432945941244236178426590758567252728154493464399010610213563314351884069317157054569639613449098539128706105992996297325025603302716742090320500740250365261800360252393890095243359160625240463160556200291676324780439617874587562376454841118337355517403014674006083373391526534169991818561151449376382389731131230028831477026813439585385029796708503822684952281890334805545550198945543993939026711500059444073645577798417334847306665724653267760462742992029637435786009380566658375944049840467012779413877155075351352378833412025249854680199690245388470196546758446056515837153190189042965777353568031556674356613627398345609877466752368805437691450000567341129047678683695600578191939683129955390250735061954453116271169245460234613755703175865086043554155866544614163627343689053733924937109169185993252493331917231410893760502331264496426888774398610623445298373149739330213823171643775795799608708890013036163280976441442111171203400212076839377426642648393857243712307983270528856930082107936129848877867010723630681105903877260285939819443325585940733424194563738684000226700634242938684994989605359306294973986821726714146723260518382909488222528777552470974421891760911167626070347346861766858738819750585114727114290463581231684751412708474846699098504329638144440006353495770730525030955472035113006359072213756878753223577144801882058222711432912303273104878860324776597556632745562829532114221030926156496168898285391707098430314606398104921038268920881363587846257014673399786379113057054277952302382168160476504671690246720174118011966828327251276160665597722545123357255681058527376125257201649846303044152564180496633328143656403519649322080794959342406530889228605800704521545369549621230750414784273252083951836149573841892087817983606207232026650038265994582310253407747816565826089394645138546349249001568557460176930991222178520126500856912282848877628488011834964660141566069046090104498293194071519413228024690064509621347310550003677871570582475422362216549538036804236482692018915840346030892237452544321914993766266100897676958026357443933151300326065825086993120864890483713436087842091031499401242599373879475757721395982361497126775061882916824049796960731636075007420796328598923274855639024721027119435824444905291653277831811941016919831644985801503533469651940899016690649586342654452238863132133828380822391580697698196928941874979176982078652951668136845437932785219268583964202968365479430201121653753439259318234419269323095235725995147722260886335687104387617070951334179907298752086323181189557573310249832856540818522032350825898019254768034130476445257055719032477648968717459786148268454159392347161479452599536837518678975083396926209125989656187773660902944202808090214202750966965480654940433393167666806447727709691529126209274667304363678399043632063127150403220658697039876969280712734594200914710261770951975780921010170703411069321995219287319239694075752273212477263617080110875835238720805929690562787818726850130575506491558774008100191492241612895008801253809644302802671341412292995383878294416290348345950085928796738790231831259234629333012531620510811700217163664707189793667946797260490395539694610421568068048892905800372544763407312156226072263455417084117819307525152693417595940481899240035882953983301527695641750456058631302973113535168694940619578364696601805750034623243595586229041096522637953223382876045828373004500474862539055440079290207254417331969226857231518048530529297781333496323063174906274914958529205444693823866136471998202957887080808369229869156551856537796751429800947509195929056569941280022490174166574551213526141308825171072733620806665512178900008693802794739908882691909511464763353594469717335471901429010295079649180642559336269192333707991082552088675615497238312190599594446725307479428924543138932585259049993341801074318815342573371193699725137103537687411391791540979924839334394477654479686733189438177287564797034003421249930857428725256513719744651307038961843654209952026082984922355718339367246906725477780018151204785401548144499002178032604716258810543929612898626704814820697834455946319301727418776180246573959960579986858515179863860794521728669223695351705765018971187354169116725292234829709969898485144767480691665867737647045802560811910685089992524412283229761572168819262987828787374741465760254060243735370904674043232629585393456652019273767922843852868474836667755447284166655215283478735525266805712260891659679994752172877865406972862903758681224618920537171979748418684049083069990410480147244607851253815547283019388617183391375082185531040217890107665639472575780448157437571324598972303181435205191823387746153397843193644388985028312861737500830236433407026172916431571641054318229060973576321114074610165442525643387989666934695102106777085256153790927102605610918650788694887547941519365498032381705693061072820389541148898078721689199588833319930289304862976320202035938355633453933145184437737801582337738839469170326056848798782555196303615181291526830605506572914638408648317878989249738835285747319436592201311950248390055248368193742495351640892692783616666497474962711305898695689946778676329639812644976819662437303922399068438351488149615832445385861921319715894953582874947327206927831016050067261126353297678809541127424477056928656496388795235224297079535811883620332884566201549544523271665832757765869633263122395778663052107358438512428589530959099631674489489385195435706304671158355633726995745893555429718682137457498635779472052946567138581893615710990343488173362966070055338646079076336469508889503408573719065136550667735895091702192773394878404133972873923094039267045725250719112182057849035559485641981009930695995915732483434127393985771725711963131684089371814061252219803336843141881991878972799664579028443139784638523211992902445655185880536007950773509945139270526802153036725245494577029215023086694270161188698735842923192413676354136130833459134271244804953687544250285801641797551110615680077542332818565525666874695077077700973239030999921360551053193438109094791463531829825426487385568178604124819205527549418756630043452470356700922503634192103387510200977880049262866103985681377580520344207624539635753087920662197123243674786410657812975687915814887290688374889471898078844204550578670442242211163890419017302232614421440287431547761350358716105201459150962198811136004034277950186404915327816137444776405717139540606541793621881962161250917347734940879330481153917043082198307435674173427850625637109301190395729862683253439003046879513236579642892793060657022654454421431987733851919397561519371919816735619245195880901293014757493903798560797989906460331893000172064151929609226259944552520837771501376111050241264709658378770170847944701813079021960196271609554366788542482003497300622840421775494125744891766198989784038191507939653348725657339108549424685868931258339324282442938442863966116654172219041271503436103000287947992062151030319217150946114288101001358538099628190379275412607000511412587465501985034091282229127949402826032992813890551983684266186262952174815900855772338826892529566100542726947239151645663997500660753831339324804889486544874435412642434786203213182169066003877774641885715258790384035364619035464446129447196072665069236463183192907975104900063654134247992574462575130586433480454167798144511684249405975132558101697679744828592349262776534732174736859981484366478432505446687196394386887748064675097028539142879937527398221709101603706946549903974622234949467648680802604690556404541980102185126607367950699320736633061621855628626085850221927421738484725861464248442566984660872450571994125747358167720882554012421281600563861024638715160565669347096721629607546890042835249914807238307613453854653056254740416624122712287138266293950716328546112624052048924978953168251305069090844295204397880109785316926530380294572011546142877211901430278392364648474269628381282693757534598653895091466005271581287979427270776219893287946038705340770276738222121966243410953425584861314255179788470681218858038147986059812148924976642150677885650166254486046163889466759379651923454273919745891162067804402176753803121520658988274872624454530340253422620007801608938058870533298013990381818085498431440434809029313993503837336632206020049662986821410060661025007643785681672095978955684593944923652884845406576641820149677772395163633656453660401572588301201699121533024304160055824924824590145558793839223027367505103204201286294309864424010169153753154860746959650358578933174379740548736402940086413483080713538241339728078491723350974817063577993856489994491665423172823483133221908813033275527690612379861747828230014358374900659003987514582790799873281711636180532972098884236291141208338075625968048878745543663839788745329504591053716506569925888973724489783831748621178592381900622727490791528738613399254328326248720670406232703353620169088563996552652573878854061733968223843116589478093888323373118944764369488945238959134622422566711323740710823891540459376036765227767527842855558673303414984247026818774633490319760364458009734395472838172668728955493607989333079004129387045750455482092008491102860686363806670426172283968858302783284845299474039215446597929763541089002961254364134017589587067176133968239172309573029114423718067647819860394423380675756991905228414207660589135170113258783692065392222068283741331823585162772607723327301145714073115829161237373151042940824228706211903916633765406576949073574862529851335086677123687845061252649064724084711675830499224058418630212890363545489736816133822153745759847655666172479096596445919974927712764506594656974008034748019487802963918086867406746127255880302734965453136405820232750671827055577561936304151716829936681064856134620283403009694367405203875848579623219333234398760412932603097643792576677812275964206833905422328817665319029019454101531211543965475228309585333181465434807580221209562737535095839219749472576231513034066698360129014047857456943898384150625624536095710181792883278007956532875888375152291749584963344295383436371194070628386151961874717741125767173545335366186046656571509313150205173202947827211687729130254364732652763652107329033999385232992441009930559128408134586121116499462659144430209003490911341130307302673663065860404921357095888854739662165938698928926702297848907626669681049806416717142250570632661463765871868128566559866707719260693713012073222471257562599217720054649318243535311094669090788284107132943433599325904277636701558450775986508580709518694646037669272449388024171617550671598754548391435097510998393062131350963909682523705071631823630425043760214855524387999987171615954745962829200624759968181527887016872027631999468969101498791931287921301200276290034827659016057636943260318780592113027921460725441859453932439850952899057308032913728452959264209246835975974531061918909967919215169867524359320965771879570878386449961687793675101762458553464767764568960843423097084801207187347190912134554670130222744776853740378953404251668574712035418287872180356716733968442184442744708216636175792411856680048870511628219759188583311449491663288638801356260502098877928014804164946703449927918578744572288357759520500128779322666133807234373688080597099887322427913907023338818477819309033835045276586632825651444207521738449925349247460342194604636251858629863738959105433986055498966077286193211281610732976214956489920044578990894846985700835074127986940546011201343705297809259341691079135720018707727804566055621910317850852119876987454280436750070047442526599448688995195063933181967104835616728766858023107975965084516671503071101593149460329191848567407731528551086714090819670716005347664126426984866092922382912130146682365987616931947717471653050643849022293778966873017466958064800725975720066561282921026049073633769549095272252991559439302097158907800369598698474032387897348865143796178036371115832007681535579364446696049267087424150319126066639038303114398473516719800846401467862636982483941482015395824740907571770954828381517027439414980851562726877484642821567333791617002702928155020433873713913262948293558426600458119096270504212854482173824982356331580464769231652918812458927149517424733362969547012496610765418609533495986976702575342218771215460844957503618409988021790490058571140494607117180506537399076074069210206652429368505040010648349496208574607104018545596377381743996747284544260601891272349993722466464489565500749594095988872735733872369459623779945014519680453520197015818131817010177012926426881786831528084422116659048630497163471599786132715424647421988709456686561127171782136964691155531799949083801986815245462997968559562663958021246104048862463568249652329091229054910007836307258783950707020595602643131591428124710722193565416155384545026046607559092059550097894693828804043639748963401915069543685852960824476480529275268015545998889305708506538301488468310553189397696174209498840075573890960788750738730313872623529316374867930237204614361007100113659420855502235244314118562873504593966870129812765985400168236431212736283572877743924398159693512266985578179228903853366657378053833795865083953540778542604499394180771467472375525778321273363396767274014823294082486197949957573015932639146076114008304020693880524395494761643158717938848933226196273994204656279285008025660472823964829168962479104309147700219107600704387413778976355021732934438530867380309957879860778381291107926573354139226032872876932524381925305901711731171860378105286785671278359901326419374187519575691259558552070413582762025438238159716756085134703421558843724696396282715932960582068406778815280941496827141992314490115149816820567580294235022455240142512007228206807868224540958302412172420957463679312097425153154454140181878956080264418013891575787900608493746416755796637609276435237846137380282545660162090403615675026927681859434851215280459547092019983277589795424694624926047633092756992392869276173564312608235188403675079667433687630016255280501142936137702568815139658680638376541580192914627878944290366775820588172078101079372743490526280136046720905645609108316694281548564237568059974137167979431114382788643845141541795095692818882037099794927613304314916954585444539820595843798004373343862341041113324190017615125058251043911427759970980041198634796885197645987571734495971353149536465946978397918485046503989816893297364805855299804322653094422620264708012183306455359020026973227681711547700127452690701025335278951655209271674535005684271568969359748843399548787415219236987518776639059578411070988355883001919818370388689050015478024829986553599079249096112413533925725506021607734626451940084449647759443215836435637910685672734936276443534989311650929553956554933385443798670070680407257861633357725362065359769855676747504663880210703954674246479996040607146833701302293538220037030956772362956675270512928281279155934795865449741594360372975098138375899397093152461065350861522144268946144589074487079114409964779820155976234979828971458062732273091120829236291264826942661571458508810722264733277836675224070292393957168870613485737358012735455284141286146277082274029001847332733522339416394188804729961879852150581145411664542602745005801735638210805815484862036309326156712891676590596752787174690114845542512035767323447420595068524892102675419867649725169249654534318354347617634521593486373145388365544495669584156307552613175550786831391942828666310353774798051045155807872963825794265098288398756248640853346605023605662988164926881802955632394087096363915984205943650351047845789820162824367852423026898799713042700717596879731893660705254475814421199925789246325062706984403281454955838815832266157238486471861793732371147394739700046303700284773697896415803527355308987146154401726929667822665019535051057856545716306846667632619952827012446615971120383973458958270260360772162837647990313316383404265726764048541348683865755064698804381397257105022455533617730477624143110373458194041703096462945742560384265544251720614785149430485557567915892401632191601821845062215896737776417852285770014912726526757531783992616582876838258706851203881731016862201511887639151841761676770070611588697152847536339301492567072849183408466107742997238407075371203311881074721315265803406435808810657263578518750885483077990694697718457139104961243720158163496992393853303305946555172331468817427325935751716970063150793868765044753092086641948174423901421565654189636230498996925614770508511855117006427540713627094379398676135122499080792646921486893092832995904526006647384794458932996472198491816657402966183324369165113978096841296190340131268435382168750112419393034038993446255139071439182177735077064819375090370027516838922269222716487342823564341880059166845646393278425109467424651398272793903091948036994963161953798822074100004201858251323927656227946528487027038383974005310184222394989576850730020815015119475599456754008071409907757483726154342471444415809772827119328573386330567982013040851034129932939879837210518287574850429607908105242959271864463867903892994496111461757692234339436687646305270259259167277256242720845703829713946940638539509187628471832480540582162280735523863424912247926213592953741103828676575507790522703506745756492218231248613425103054886729472261195237843002243580385347993709254181413887330337224966046075484661817371787501500899563791722231751575685788313006036445550411031007784694626995645470130797133988545516466713809521541594715038778668753243821320859219120080662719051561057354664472355322380972854404831743278747122647973043641191246983836380531584490066235195480335825935022848210375695409557709138575364472625477267931718476960155446362062885843398373178522694515842414724059682270446287630933279890619690774974826493949376045236797349267345569913521572713558286866215441622368246089473056102293530120453652354388725998947899071655358574616199350277847104651858133522522746369840850531390270252414983717770033235980701218208191737120793820836821339918558216625905103021877999106270313805895484193568648235792886590708023327896534065749500576105394866888100397186163852172688655959403738598745795076809982138969957075047972768985769601193995470475730443701208482421649647449834084727596275523622935636124681250461107552109192425086542724187920104059638033026317474422380956147491398338725007027792184307510115937760671966423741352950112530821953156385060309356554048178109675050041152863491890630126941092234458883289628637315186683480460838155269286565582542609008727148676207486843632322849920598577929478819126453410978748054281872163921229456365232106188082168687382770556473018251191974532762562742561845425317418893289352762550768464269829883318546860226385184048226606144068743021496731587729042971067916840762753562005294634886257837794717943311916244927168891560909740215090450182222710118354534803429923365924677131900037416503019050407796795799638472781038052913981397238679545743532727654242837281946680379749450019992723275297694250309093439134732580698096894642712024034283811173744685152872710613930614516463749208835623582552299853849916529223110685129663129577420159389527005342530634043953211139081553401939266070435147599550063499719634854272808084608114278336673576109001631190080743969354230549624731879806014813199919333536459733069630220719642912178903499746812942513044715970558553899632328451341952614959913198398946439041891152516546726085631321496550017798023238343706779068077691543962558822235061178233937150934324954025336749466242257667058019689398309481464290703198617091695704818894730624797323127556195553565356427663659278370862485288579693995946714752185723268713282546549727064696799596508221993176331857606559290773299662107241322118407162693025882410025457480308918739874561013474192780683500247645621323276522567995562673900962600431957406767251022926971931102058940446160487975182693500244535572328959061577458155388621243207325092087378092516543840777170380096262335654521199080646236453433743513710835960106829393431172682525667763321892634109793060930124343996209305527811570321717950942291109100731383179589813540306520208262723028352536802167639653399816571334658606064416337942925763323307812823962677860659200708151604800592025957381372206235030995762529342927163255246400196629709460560673104739965675396066346688810127124717347173915298201249105618928362989088788541806517703908392549948319769323397628822785967009807559362624194342796055101441002992815558149798942706473030021811579915185350260297980886647080872817749852471488331254999594389609402922481866772131736533199947876607464163006866532520802096437674474577295700321971978019674445955694258282344182976959895548955737900457100784098899410383034685997284018705624384290475494727810868042442128624642029052932839667378024597112943360759712361438964024232117649200168621178713308639640624939952009858070333324877227515861815577642405069219015227772315698425832970164009615286233522682250509960164597571947877747694993908008546546596045990279972583022445985070124971526293073964129604648884454658300791566186970279000694730723240204837170305434770887811597155615323889960103293849606579698974522751169774555550062795515545022233127099717878597478522950198034766616825984847458321202856280396312016827596319507010716348345796128564645287816323926639216021543298090498269274743395309333899670583781271461039492372802439298700077780232264346431747361555274606061181976543300300796867797418859672858540512632785093053058529830645418643762782820045916571992615870564493273989407609162161645896057009613169100848199868226456593202101279759240398144863339151766185129459316683369902553187852583971150431511556659056526512452607411091541090604871621363181204174125135890676040394073722621120651336946363514681823160578107535191373495330650699052754500921382941946363146819846305363553169216535782789273110841115027566933647203039061857059118734151439481896737059685277592052953331564659764654395544579841441099487605038992999825545475918043497460805593873851894522343103870524981440000532948569877074557754313888552475278540289031372604273119206675516926896431581755536287160606522162369013410965198017057555081815265290200541160316698183252722198132842894478904203479106175228921053601481654165411508418359201874482863639654619881261815155189684392062750516308832052103656288493562557948425469901964611667604204074410973687423546409559806374950507998712212408820751532290917831380914685940258334820530351027521317606814502155721009563540309945939085648946320095375511445367244609710002733807284023826617039768459760257455014960408056278715929414409442195466084628543383249444813156530315195576142426096658576427241029973306355944094150209664379414604823190592803146532489073454183426691904229081094927780848713670844244504040867483334261283730680542362083598683100712804423787165538449297415306524588957205849547801923251511220085972427913251920756733833345673326435982128360530654290859252622763670934556192140939529516175770033355191281043762299829600724306175537454737568243705042604665660633138498702353790774405385037112263235619072497241513917380473119728080353451783762204739948949428534740541712836665141519036174412447543569886318481442167634923638819700213931131209154569080852798514900495953228611299976195209927321236288319061426941009647660497873258791651782584027907407824905274585247733073118719096401434097165566698397939064172393373418452647015490172452867733715800792794938556854570128353792466427179238009359534872960537928006901842067545671079374129896305979852701426904027631111111933336657621271858445489514494368625639822793923529408785920797927635520566256964586149461998539505040024110493497770080512632421588174487522926723368962476814195269563906594244590600570971366598918694582438421945323441573246833804916013056827492041928251800294701653118562155479969110870102541090717392108765727104214864228587892143467479223200424082295415324859282904834327383138671620026016820684124013650753176962180053764134634576080194091205370766479078512583222605072658948492425368187451563277441335634325324473310592710512387958289684186834402795244458912830035711871664298033872232050726252384730246244493110104109042461283977098578456508209171156978466712787936480459720858959465598990550946176689389157787964930196316546113085437645472777635706818034892664019811118789572066323270737905261060265584769106569518427249134192039235530259637159631828135102464576017421160279790485803566809263335069124118759878807455866995082780208241256539912319411998804176287025519170011819489909228112025868923704537956887678598175809228545656731544872473445513767708597617501126833857468671447046263025296002329913453297019557383422800965746141318799284844025570031485734413165357962955411358027838475358701190125877078443752947461519055015880213276080893985571635692628202779731613843278939618378010858437685835605996996625129679898348483892862406881026580383623012652859223200103414403576219349976526389519254400409159698364241387868738978386990822056939974174294861484959326295598654503067694881223674408211421206921464919780344625499660409122232872863125673619772310710081970069546203221406569170082567873853363880197936219228125370690812986223363456935470123612028569077623415426049748258063767068573569926712988265511964276977058964379567628381649673202378528391616914264048988104075894879194176008625384729428016023560449624891807499270748800613707284677465180445016420241336445631563506360201493084152599103720571295375447908737966420841101491889343906985472891196285761858670158902077729292049949372730182783688224512532435310734490823304343397651309409342588768571463514256247030645596233491423007321951163030482288020445953651445037383896631085023530078041977461189331475058869602930496955135161320681350732070505933710746535104702462126968039721103577606474456578864026650908992158738965680728296938649773747600701890177310608445444878085810572059961175675838841288908991149257457076503068488404529794644452755872591972055556194215848854730597635074244819276544924065979740433543732155041247604277342988781142018858391122818165935054653880723493644985989782594744378837307934938104090229290324087411274306043075335857925314729548742757662563248100324500382494722312460650268774124765790802643001059856454648326808627975975580409036475714830048817827239403632344551678631040096354986429962281555115213954166394237440122518359151018951830009175075906445725562552907702523603951221425289029858753451994479616659092233059566181392545744641498512742879572867735594719178530359822159590670559606257988233905180728780756438094673636809518269340184639008723886954265813595416914174406227594187023451686004343114773267161176424679874782147318785329632180586902496913654671433281371105274372804819310267747235697889885886214980875905927897687214161708279390742060945209053782200823759113236328046821316146619702867561535935523518286084915232595726629598742669961687086212166072023046808106584337551305599986289059121691751377540521654849952990130771624292715244249652974032506659157350067559390219587416532489666926541777585609253789486674488972935289451421047801353476770831147472571712697135693671238259569697269466134735842502149149853376942647673233589897970722959413791124083073848603475352075587359519630625316502104814447451265311729884464750256103685151167825737273117764123919803587065954560110308631066088027345919166602168511513705474164112279386583594894665640702867130957343675443656355932174496338827278047782360935523610517946909118254907369333827759658739104360917432540592440679190404793952093335008926076564407929889087226890936514763881019484941139926958134177399302221335821055608149629825882830897890513213168241479366887332919832727379534524838338336689880353317927790820866396382260161589648546737153299268941256646277983839848418241629539237279419959823800761099387839038919402487853479196920461487650173591100772603761159916931875515384981627779461683639867313527977185038517070413505938589998122199925835958452069491157526524722523236229785195729986139323012236619519664539227910316732759050042138532005108372759673041102336872985551643285375935977672334861814279607217003571529564626978758805935651774513151805541511943106521991521332891051412328532284879038133068017311445691108821112165600254481219842030212967999686277154417521088100276390910028055918070453375419352235920447003740936756543250487061248112678373081419004189307750045215162191065557581123178526173879218964843975184044366367192118689962817056142897055271623602702708810563996025439266196849343748138861002412422967991558549562431588997905172734275499519786660189705565742369419277860243465065953920775788730360050050114788303984201472715470110735320511195276749837238461387557140252367855706057009468080908055986019281391072074453200882909199532983540316822817251721624101552876712690874536160713116581038245749324629123531977786297596224741361149989245104107196071428148039138600278548051433961265556091078576626326699418847102592502884372207979566670644152144330062969894718369635080109124448144308939789163679392444137744707992782368908289692942035651755453076970504020247344468329046827667538067029432350295732464813289260957710909323343100982793815584973656532353563095345444539688200096646043169212429684052405362106090161026204031667914917773117334998789410036327693724415881495230957511508259609797447158946219041465651834896734305501382846199787333923367388502095644308287836160365293019885818003716772578942848147310779623107511782684613522146658927669819225913278980684086499022653582492804442716117941950620492551315716599503589236168453494676098545877239012735074680695799681366784746363864580032670440903894308828415264788353249147925227923228059248191989358072005035132240268113338172984038905863598975521172320746826849893788192253207592309695062284082895807675290417504104588101947798840613802103158077216402628070591619450622777236013443782519289024685631677628021321603320578340604712936909365090543209326522334329426936677635577547162182059987021130749752617980461828042388058113638413619467013545926973777750708714494316627905731822590222115615710520535905651159916356489412726518230187039507002418868548473555554203366655203135668641953689419318411215924241017878589093957868491326171736487511390928521796342890076090687340400218729516098463574308716293624427589577762634873581051471237862782891630308383857013920306866271532504297439003846186909416530619847378777395724434126809368553074577923158803081970572460322753560969193209760881028937664869255029079480306245185122621356308506798054883606801983064568567861044599459631271823689234654504976400618809793902964568255596372864772461173068361696172256659074911629842677239341069515214805603941112575159486040651364506592748354782778310255211250234701058289622591603515942195855084627575842880463893791592101642417151999144861937096516322103664809051029687335295638136373649911392977608814963847020721730938257584354782179539704338402228190660825161957612363313587094221061926116922940579111557297673049129884670218368384750343784260932319705406884980928210942582490273187644398782296911206691095902298014882934452797271061544363582164187767859107579243375390869929326345585195492415002441827822795334090520120997440792968597401515680304624238285451527934513852043196943853213457521006126422129990882160499637367642196378041146529983762761110755459280958671472149424905899860247162679577872681004115128712485382698546474794102797729775768036408792172470142798143001106279253032078244337425040253888886571887656773491311700871085672562849838358344549006345171824206054133246634695512210960006223794301128261840199417240739935127664545013026336975602062375742488035255529475201507785441596199591020598272258179389938225971068615726779217877437396817723788812241746628191963121376188861590002003883440278487639972581630610477188314984307165693771378212898476541957128404221172446482421981176015735900637768561862026110467712178926159556452135742850283847547421653899420025989745251092733279049734769159682849847245838313846594152047950045980939604082078201085555597385918556160207695539484837002792624374640687695375266404312345185139081915797154827258764387277470786761505294248362435992143777097864364432591535433784468774242733756655871198789511319476298829720978883285422188352917587937007070639957494479949424793333774897643862668700294687432368687204530090359035791280752061843160227307893504494703529820589089070263622236457131192333931153087698715207043803362633220011148558729977881839652345874070089453812920597669093380909923848172651688853997030725881050709334022336809191473988563517684604408096669231978621463563999555285545569901708672987869406660940324169740208266228629720567718963547550441324767069471486133897768198335559134894606258001871357158557934358816874593036019825171763985594420993154695700951983280263993696171014532259715769545411955488138153266373308513265236959815649992527263761543306518055015389221501593305463338341024079859734825152685946619666764158536606907575643132038331414230300499657822446596331447307572358638530924793876477781660071675624726099903152379757460768592885309877635076750091294147348390782033949293131646034402653686897266430945920041932552767507235530762659703391188998136607192632432660820781369923477007763527447381448764356176878768780683381248943988080189540954553996834947350428571244279822935431570410942545677299541456181489345210438106034469910701176583778016225347339657682317971966464218666604215580681702588105639532347399511039156853699082714395239865975031168845779900031216110014505653136605603983960849046899722231305349200579699062446012545299149951886055797013566138229886349938765800739981224623327947692224567718435550615968156336083113302143965865279333015865302638193098843343271226836798138371823936586593069978058228531790594689092264703139519029689554613259526891789516889264725494970340398673339095344501340971361328610489730317362525683590813525414619231050376690830357456657731604337572205088176705146862185314540164671982457481137799865730648134351616514344182895478289579427099937252456522254994151403400113035693544527573193664190658991408734744801185709281287357146781059722179246481944354780340224275119578209348117606057227389652062559837017372285088543661816784177704967612059624160109114139682329324690392347605900564354307618200465474550733771967564674292476924420850963352700075747577387749638351941156133158601857184066761922062122136208841739818548586842692289841828088856745416475231428523924095304036060721156218257934868952524535268390940034291010297437305400328774468556063416164619584538334264367995712231419806982944063428027812860337749275178455064768942638130448167524260335426710863036229632436234351225136620202767151445786462416549342921247527232120338576990456969976123017807528427496669244764452799601014306171111342389134158448399532093212568235140493343761459962699718189954077759537615492965133987847252081245247341654029446430321896680632673311755984408954446000948830303664146618027874459461669381384753303694273559086520713987741321437371339854444303295003380621970781889044633446698766888387255867895403394571264431083485205834216962453200231424856842945479482867129997333522864693146837016260475555916473121525261827510519080799327436654359268394017021936457244932911690130676049281723615745975119272986943792352366455768083135943365145328935439526348238722938669779403353479274735140836868202119617754247681091557346012362927100317704735276094594796224067357782246037104105034870838201173041965437714770925135352088369848136943973063095082315492032931633559013293923010609140134192511175228289020966516161004816979594260443094104688741148727300947532157866768115842868535684617084012912634645794175478114943096878178574781669705485060591907047760132008566609025744006200025514984358081771977939087260344903267711845722437572666246355061698499512370717434528383974643298424253718099171144152759640147383656598801969034831079425373375883412378962988575230169721485180978638414097955667283841893054998982653760554831495961048472000771450782243242545975243164673971778848536258302969867819657415734813461718547145257509808978937329295632451282195143695932465390146299170183770513493268604126249412509947799499383292936885112387248259231401813529386124712011982903726872089056700178156996560701220448596096123847220657765112159463335167450732525432778739347218659813440377435382569267028670603005336092935484792575540315892524994574546795772981242344327368003953928438534804723254525666614280913065910560788092683122484639987011679317875431804085709073721607161082910250819100109659190233073068903042197621978446158263769577550957637537402934942367327435931056081668905665050537969398738965420605541774418453622929913172688592663824985190746927878225162251846863808575034523409940774543119728005386397869822947005015559711408745741479201112497315633620930602992410280176202081034087660164713280234817655933967752304239297506420044813782164932913894561815894112913018517753893326879535244560727084538352670020223468044029818662428443924650549187551870899645638731287419286357411077734060761884790963043773130843788847630399883427373581535649673034521368737857034388432966373302425314326513466909141714198154280552151627507234861719779730459545919167603123487705717629822809367493261885736314547798619385808740643197108434337020591991481239358748623852258039712054705650726548777301198590311487653335137564108956576960029289978240873435937220926449761466053242338357664203207085906937870144916865932656599975900619609145531987021711036580076321056526280724457662662204243189194928821634060924535498430475790532841663007083307522209153992486846071268261488576956221152143029045324757374400577894544451760148301923686161879407497912477825893554618928489331676584242779923388959694022965681008278705962430507012974353185644033476647777671674274077740496458832973044491376399470523217544172047922000784563970666506363214797078528543656896964110804900535976567613685294655022876451115052660426597668099275480103540961275469048053258028683453084677181323548210980090827333703033351530250570639741854199768002422116985963905138471084844643933313577653238838342202176560787143989741065393863849867716382183881504035332138281144303936370905844327530785342890587399045218392609722721373456245718324408428069201878133904982919252309575742620036308277913503574844428528306988370762132356001443091934815319045582271219861553502874914893575917350169978727050024835473077890618145172022361257241498780815060994925416091216392260596491510068066825427975761480482609468428594498092944105852859655360946564729249481402840124098404746498229722738880126886668462628957807607142406993971526190978415540310453672869111699053407980822620714082744108445558115920517841965607742849249708529244836300522271658788449571274997837834072136976169221853143732762960443024401504487875889056964270817947351030490140069466862634784612999481152528846941285050685989592350198469757920146625321594402770265085257428433322226297002803707726510252849627757258083362931103795972942574821009673005752501251837040291571506829169198976469784997072595904570166965905347179652484191769682835552993707508555668780036636305729924448315869785669319655789315981761802063390917557369195427741677925668373316175939361152580208088574967514223315302913834434813057889296204258189019340445099850897602634283723896269851933931592821414029515296162436196700208888107566957448192695236553443448149654423439967462436059503261776318282194809576564329608278279651185120995442911315914332614341875980772095133371136487119556463083599451827772553559001985948562959430527540412323334286855300180409289793541772456076817441626963740999005058752889799694366840796185938802189473908492864389419942836227357902955719941071762698547104234547313214468791698412023294547097672848016807725018552298446447551384447640939970699970571468083957103586354507324630358340580040380990439136893881080779039353264064247048607969431690180148087425350346013341366089889352069236331081909639711670748568211733877256803513875761826126369219158925542537367195422140116534258038224725038133117975099135607914789540181214240320264392955629180646242904252302102664118376997296448168043216594035475085833012741274429014572149160966593684643693357248931775189203583336537445582073880801268110789964201021098852414930946077181498508600383515717506635021940376746994908555023714611145114183334460880776894428428305056670497593846579329082064187896979154381717832969171404951765367608992227045921087967520600320535767984344889277503863947883227001747660277161419988399582715069329862228022279139267584709142071403691264084762800079740544841034715415309079300905398615802530700867489725869066254016995176310681846046382258274266044215583812934076446784242582994300783837942961031346079309970571404309462031994566888519564280068078263386967590527375445877439970001190338360571412781976907731994013401604498881342619435696490156906300446801490809646446278065849919111280655137758990347491980111140277729419905367267737404715328919325636915449789808829105838744502506671997291637112749531804307657642642024209150039834851755122907507768404200803976173341384389564761217477238921775302652347917709832166673104627963839182419746863151711980392862387403010221817583214320371969730568577656484561132151462677707924332050753230303676175512144103108428217196691028100408499049209704732568220714674036158283687912202493396776016542335144038338467190109171670406482565245236765441588826952932607692101473371334323713868096051760552121268948013039248848901089570112393539077777777221256262869052148709456044176373393128426636928212842319941278368451110421045400752919081656546242238872127441273656639175759234480839047490208276589898471148601037142364730419385704517160279391069279877571348556521797666967764800474180386246232348903364544600871794156555031396570197165451371004135350832147508836955296170558352980879579269416592639463334934527330581016108481932939857474558439381845529603946854734671720212194824357917733899967208865887914388651156492530864074846083764841499701069456537102867156284945404431460177762306694862310593768793703376866675583574852844929458384091730722460139942940682178734774780019309788780414347414820402672673622557585652754248159427000115178943369072238595422832310626538577590258512877881754489516987220786030259010958016786958082266582525807919665571272822471439452560603025554597781991193942691508525905387309078146300274890972056535426118041299107898846675849860379025263289446630033867182405578453967711804583846777079038113116109319675519562344175283482821954273325565324368520180688502782784588373362511519624404720959603529811959761888878330745186328859993450783785878473092391970671643881415134572460999557411204425714753984245864823205058102268131477319138715024215799323789728487693910497732588823294052987958277095388330323777674792328415564573884698967119547388402733725379756237617285647220631027409762822984690753917980493087082237045193603035614641162257903006228059165320839358822936870858628397736182543883618176871180904669366441832496346684515082873678724100705803609878965334069124966637882826678023582399235694725619875653227487520183056620704185614805118327280298680790292569198629114314108692163426305230901311392700408324988834689133025076830363808521135298871873476236608730318252313635856271517621874881677655897073937128286114673399818199927084741882614538183524396174678293468796682528127601234917065598623934176280454402854081788311322726950284542144682702472272706762660520725160752491492485267950861743685684227249247510458995544383558079068922578713646236363736859059221908541845960645505639819933292191182042457246199268609834677113963991771822676872784389361529812470160300739958530301662153438109971705991783722886644190659396157124119255646648653969944208883681515138901782725671001106162661570783253453870932184318179452290944664019279070430317284062553171912537268545511677992022448213311452299338716569782578233606680231085262848869614093598369134367827299266518062216512235089145595573171911790107373720120442804206138765427805894284194135402273712332999035025977807197146797187371893070580304338766429355204649275967802356817360844037137825117986663846218935476549356133659910138458243286713060113728171895739436255067122336460427135333627394302584867096608881773179474277949888712967901911295973175014653848269763941095079981312914489952125631275435463183571735833156301792968376692935348323537073339220188605736730590078323760944244064119438219157809982609918060991270919173380133839974444182469124968770167209676112334997234974008208456035446962785586540215903689581812303263703232799913351099279665676733378355554183032292328221026196106223080153698221017522908153539457825108284345089784572522239347783468230647435723378478196537645251106675088503320219511113297661816025075325095295716577952248891049812144937439250338146019118349872603945446721238088641174250291737997017350093441644527765216647756888201552637834276868362437039059008611247130412262076651706212492811400246206211070985982127511287590315541062706078671526010979376970364679085304532034641156615442799391197018811759797206924241043612066539678858294741210278514590734431868841021068430432743376951628476078562909347959366029982045600456297762602210980754790930438690399510002057964118498123793868812911624781565553498971492832790684981159452925647176007822995375634384896884966731109011933556437131904805123050993150096972148429801440240608420331816470728972541293338685608938543763784426637554426469550627246319528884346621872419795569373356443657209660988374449939129743934578860501577373035446448885631759216424033059897623224284097101765717997067249262276935738412861849344059436077625064836869019670191658547627901772187918627785360392229634739566580973291666485576232553193211719574847303753887244374438086283827523436704208789138279260034874430369183421980218562813514767464536438212153816545115492345081002317353165926892802917922224288196474416546954044461565042221254446860167544320429336895842418830384451985854739364984274548268128551132748819762454611889517635184372770749848380513691553175988332509158470638877764067626818214882668535196624450050793672626050120295745617346673360951862674328497371148760839979833688435992429973292431892902677084647469411890128451416428433905005884011796760096163757158696342593470221725668923362406249209601575555112858588855838980983373329107719647773918018396474528202789756441410668596987715136998090687990630573640223627125092057503216260541781191055655876337125090569402230290978122400944854392722608080367036212376126115326523412826215242829179352050913708232461889220581966284131118248846966671610873039903723824096707102697441515708074540265819862613660465809160727751552721816672903909803145832620947844143281613069504748897044920841824520717559513931296088748466189295912987810418209601590064276141990841448644893365239979222884320080702565629401244737628225182939235835448210577093311916162260090377204589144820685737042528575756579034325801865258281813498401484900785472835537393206019154140007232701163506179953818912724963614582858789021357865571247690751731071793043982552748019190284732746621420577037173200339907730057999513909698678277761935657435920701007348956679047239446880538284770311357433317744975802217433744168934775598127062919778538276186193282639117667763893523749860439396330589254210775189190838715115807937209639361197242024190690362204525159144986430862479493395703023050901475201033903256188765056385227373152092683318066871222098234855078928875145726619849131247334212240109192723451140009348602327598715472910596388224976736953077947715097221598870285520221324989239681258730734143578409242857413689304059008667799244821847260962575767167067658842625075701061737339539604320611935930927465054451998044981101836271925932966700938018863152156285000727451731493760328594529041446826945716921868000631883187119595811775298932745149933731552302067847250024698635816878360242300013487010962392589116339693368577845870668799350580425620957768155919396059013332942079023523971749030259113214820437589598179081205583249660944430357782474307122506623417946973039795228191654275637639650792845847771793895214041735427889493262964585507971777803607799361956001429387342022311143866758221637146145305000210170718277939678908929683313204301814038599375913630354017634275599778394603737031635140265561743560939130295010558416299634778380687533338552621792423291699104796089295293617278744233900706382091923479282081006337790805591137742266643516588409543343939611196511951938216823454019559392508499342743325651300621923082017864416654093888461097139805003799574244792397720972419943218813211409964996406517478236513149961927223944000231989744032152519141628370712965684246536552662579105196858666648153765889732002113857121963151447483610746174039028911525643441670613707191783265952270227010880196075880773225134093209647146182143186697438875089034669792368160772959128757854538591940260107421642856791738917260906068398024053652864414931156881831788303630301119990118744755625037089310920189504889343972882236335553648383859397198423448018072280486962623024562912779054337319615379818146554954785116292775641077727930738752395738396780417975223016516124024053067707947866451331466411199672952515737852332552297926811248278683252603606805521963953290338172095623928339574595480759751679095714456111145206532628449502354982654399790883342247810102237417335722391935329037177084192151287006832140306971699441897618981960360445331976916664808173772424776880515842590277409290669858036067993014056275912375225904640758577999439581086536210555391687037863000476127163256495167033662572517974926951551423705837406478406756625617086453619582487758952433874382412634009638953612224182928316856363295947402233274444985710597771690580797273129651227328865600766233573316254320378104645308531146258736297159965739683426149707335321426500124034582169748588113314105432134827926304757976667017257857595269206543981300511164348347056055714958235671574805039539386068223110992732215450922266806362361387449159891586324829853873274855113860123777656185877834377651836940628133903568380010760609910477540401647410694682011687425778770750977532410558486116270249485068159797270103214910976874128631799655528054174048561124509198042883413240344866676407127887275094140218567049222228533452454900214223955535924250504915671955050538539546572722869478857779328927620999642003562656414655107689993002667069881684732706583844193852297028070401750226003058671835342245683464338637808444413570321686354925995171893078528459681848123950204707616901715514145796497815429396118855840118068228073197979826943571405609326111227641058910749166837683550818303583056665287370591407787196145209197661286942646359060212623076245658207039984206166219327671740885734878813064832943660895397809442381287239980971778169752252283432213530143517126991342936392665188811448078272373107775315743308018153612251005764329880654244195503698182265451802010025070890827467724402392670223013048263529068812413069702025661088078974811410786733921433019732181345754272389848795620538199220980896291147174464073936987429222344986331287931414167846847080378564729783737440645546019860817420993202352025645841585447988657962042146478780903952046974768724658170131984988854007850106044356319074049454456757214909172830778087226956155506633703762026016783568332358437327704214840469731963461862937065417224827333516500499354189682299212056866359066103353970671784393980692568041862694344042230243432119979481818586368675565401639914689930014938417919396443779080554346994195703288385590232012568384510887061549625546883292364393109838801184495662988802227871799756384771239087610359700321120961799978600231656347239591504051725025885070660550280956235991999984200225241234130484444951547377938210693228371551809691560953807569950955132892577452866825287585155474603225201349609469704919994553061183487196534454705892812273039002390656920576453168520889487767306669664469808385259186046613550390412405527184033232345038469024808047126469520333574025250298178413872937868523201790379674297458653667060597649722249830196999086743528872693141616634632946139927418744712236312346860172390477861180432643027786292896514253497862988105192132139877322895302756767253810837276382515940639232453454303123216708149938543130470669647242396033498924531621477818432827552746465967969394360583138683705529819295072857589222803877664665909586852817723873810438594348793090549386150103706163771394437217668485356592047229125616958238906660449111658069344155527290066952539331449292955629714034894339049168148045632190809253975348093759480600190329905833062730517217710000953297312558398342728323443991142872241185563241758229141410848205287794325933790689024175352622200095315722050311790049769773827695087778636101168523822971851307707350350725960225062823223425132220061059392350535661488009051234579048275958998169502825505369362147429216334295415297314994195198122234869187055732033319917824347622127833440486363931687076741661818540338818192699530917987302783040360661902236730600599319946407083996448978696851736139901241264723360531586503425214706846897878631937813102425304171396779270453997713605332237628636359488276199020246354500123484211473819905918331385871068905399235629896221605502640487923915057700157054599321608962621505406579283824355170463566018228877514818506343246033524458952678405753358630664014058402987094750676128112313082107808549492318957011159787899215558767719773407487773651754383844126037054236256723535093956324511591554990588091825694433424803197249557567544376274406401994616722602778187727991141393691365876853839058830936891849591475565824517630462809027612192491001303159569086298240574122844694120290181083986582045615041719970538576546484412730595053503198260731816434649962666427449052992297249917564015901865008587454851435233636349552155332980735237223131447932305067537166123011560891639055928532679381765211689035867473172824920366703673494543985499384311378828097564582506917651602304613599177063015191546226638016578052789337853681931824937537941317284466713031773158651232242561345648748676460527454109031387162848106278241403095518523037239244759916272214069162378854646887816152256225537081408136276565233525700108711011962835339574454096305533945734095857373765146183634220337486872033898235046877023358015163908635518586679442466926719310859218981848957676033310990812286804987822335406700607073082381191572236219834916457729381863925609076929974537255747599062138367695612324370079841874507237605697832440439605309085966328778705305853431472160340005400129008781729578903162201527200066868506368275516383393730562100276347465878650551408624291715642932787794995788969767016633762774431779713170463094652254362814043214763952365594402190529814106810099808357742298583451613175217900424539186395417238879517827404859684755419479411614230094816318404076487615540226488114672497284616244042520916039508666656290979220617017086988275942532253255444476470531749341528258608543918167957494092995864690743848699775863269798837175832577500186493800608029286144314734643907977835108938500292000796605938056704088579657966021806622160689784491595427273583068048146027806650125093094947526250291479095603509685905561217768667781119762884560866659148157269562116862876775385482306299952001337055833992584069686745895432952655854774532894603902518187396923558565020173928741751623866515065353610265335852008276201489399529345036219847167686272190073001002591322701101995404534651248758981160767014909469557017077178365026222010057696313250279418539800080596874048052272373268257067378258551654908044330430020719825412151474009324256701737543861564237407543219343876927311241700810552917699212851596561034134513886141783215882143185047190641677306722263761741475454539821809787899249501878129892135945269224699567551918949965863691656131290984476205775908274346420463166510127436336305512550169996998201203936174256579225173193909853921116621866689032336920872887071682765733681365324447591357543113512989919720259944231309512364412653559055719914076309426056871747596796084606464957870645937358664259009449571725350331214759792329473295667383980279428499257805080010633253086366732102615119530439600298799283896399047795478711791004041575669537920285413351676565131906266218903528194587170558242040448493075026065803949435580840671500424072912056520579282997103217111793801180728164828845322644047528616997581885712822048600400366140329790549695741634228236304116836397612681153545288219719420191342123097975938651795994964248547200586498363923684700710524508395317090312021120938150646168678708415787153437549410514018380148786104601237623981988387748025646196038378526222883598114436832264061944040851470457410854897578975651415680580153466764021837728365939362279832027187790157881595463804243949033482841564647710337700734733159506011442017342351980545818402719410218148414692720282862238390268569927025286540579699917216662598834974031052039954296690766748000924075917503164078289418511286589608563927269894247975573909786582241165034910957650884554163405922358290994786096247603675627703791820387106178490772966004487191880254413155350237941437242653939571159710532885249663531290759028922644111415519146698611465250205092024548906913835284091538864217397084027728648867866434936693507691767529005413696729712080456379218326119667591088954369771870369224248533437659738713708168992463442498662482591329182470883765415029289661861478769719034443561565536366024410778570346175112902171162295224136723332150739515659270424384926435489584207801926029836935806449722762310061442999136378103568385550005277683915780700162751855890174385799776521794295861221820304270070959490424366368143859843855990094746028377018662340119974973019461836779191375941341187202583704938311448057504572800662366134992208315473294643448768955250902557199688155642077948200687872692935518615539206396044207572308073299383936109267501222267157486334578481171029182119371692099445795555285887769120723438979591025947961793942965340573613292059849210674845978998586326225018477762106464265487539825750921331219279434334599131828792204658561626893495665425594583643768551671621269767700368921831174531141906027720430799281383358789726966236393979375711420827898737795388372185312328099767090479633900184975047819143149603844382857106559880239327159520199864028377836949677407151132635552440771974733019958084472955079777536031441465280185660655352284508678867818305704839735001469646302674623539434388469030167360986344781125378863292380562701106311377350160812905802079902858365641605405301079487950931661581873996107327313343444710537582572578996211751091580595507775471892195625357840015251219830713192216122489460127580939205122518594538108211502781980055986105440051798640358722996707968392445392398099781316938302718679134048115012559126170585130971071501823221685133948444342534159589185388011273528096750930550312402420639800397840601706818735782477927573851219632456991507674833588226133209170684654062879681018346781564781004918921251833279210658461803818325505597415248206684149842265635068713375172298280983267019617862207245640214514231870326551158537614545983187306622484379878384757795879409741662658868472968568769607224958568202901658129134186418582204509537215602723252467163742418312195824391647942476934823237842213588822135136320819594510126267651563096982616654601531449526531140788361544936666462977570099725864289140002795498416776923041604862303437516753746938845979958536700980125582523247912265088707975653468990442799661551942121915036504279838412778698451013063532508132209409991322073755202924282567712555740535236647586568894922033372697661141052419318564852574975516959624477183234715169278180636327192442164757009909808569439638165877713415922485293824894664447055904199412227157379474092571124895241028763355724884362125917599688421322340567406824827525671799907201103861708292181663918463331274913261339117852056928093725822031897630666555627685568511688758145837283820443918482375526631084883231070874597657211517492856917580508440261091538184262361642467004182256476437187526282482199259202807766642733149432556704741526582701698058943369117776236674615527508407481935921377529545043201515196844509758936663084265646719865276760109425172812338459348540563614097523760365543009862604026587043368956149222291979629057695218317531704818716598015858506275199248251462262954408777908235734822423608631851657183738290417032034428557978767565751763192726058907414104126189555663437667834329924719849542848277836496940424514273851578996773712371391815760411393381450729929898459999904520389513559202297681106083397551875695052055992168446756990684605082600729792275280122178689424178025767627136435314868354713228896655215198665195595332963287437277958308190876954604216025434048606196276338602073628491709739426065387286891802984270496030421994125103066241603525765258504906813453625332252475898632762991959352319266285900701450771011709081255504210548472338527510820673820782617460900147371391535815832745197366311636603506228888507067610842621746294477038433843343028840994580538085679928792743168053533548608383851351177517357345428269315192869617721039580847646954363865243285820520144073643552570735128887072281266663675549804485628011204292271961119325579178480973544667247423289286950212041450711624214080673219346543632389537506450572849080174735566768667651478477129262330409006909571605831494997927264851981410099063942138773868560534397559229414418565949289459209445386852040561208181708487908995567182338987963686762331849893598693419830389650403176036126416262510023076603694403022593381151785874179409864186804258409461205554628822613557340452113080126182572969293481297796790804085035690196471225958798198005696044693959733422595013098002991547539266154454483726263578696814487048812173974466498258442103473588892488655416561711534942217344337982980893427349316310717575827103082764273750379129549071311690042498538675543091916732738672344005553223356812760508341981073269960227304250952202373231995024529677276039494227884378789178694181144705702046383661240480809474985212060174124361351637812807728725384926266212632022532305754961786511093673915510126651775017598588931142540485685440133590959446486148267049706317289982159065767572828739615979401842242695764321418586422544194701789359324443249901537309746497544838277246740603457952608921905504129168640698411074182980712821049097030928987235627687624523903229387903165031293265224044459036326246402320402098521555709682370833810733227646701964554642941936471178526117735158121600420918313744149032510834993665930334681716875252704705570569475881484116545947225767081259195707013529145874103899743990854251004868703077733227108732570175684249658653859372054118924059687934615266314910755744054870110414576652604928597618343246422673904622112186634929226683400115259257495202861808307140222605959304392790492904886600652370147135794338403516970098795549162753290633769801162510680360809778596951671584295863658877175913341411874732724188535257832088345286639032875797388485201160632892983813325029024499418165440760267862594966960958171701551245324733530059984089067592499851795265009561401526816924073741554008107176431076471166980902314920376743344277041892454861251306352867226823835796428170259931730904676402195980708325688061283471242373551705421879117337559498201365738811798972049335382027321631092412298505355524787957568839703155585534662594024051077898313247524793592140969359480842395098630169287398611273870955683435943981854864505215288747902837676075269650918551186150872741960139170022292023827699144628792557542594095004875157117234613715132801660870084161781268252746726531021978295458850009040891877370847800204965048385259849916093126727154921088988041415692448165789180938995602822989939436822817477913949140479798636883725125415443082876876196416388434219063468812806019998166312356318295912653858756428831525413585529635887979547697931870318611421940172790133154826593976307517761467398397469591974022936332620317844563804087899551821060734728386448410193391413573964261323717837157993287991692310250084866052613733638143649283636660344706401851332655787571957732558355671545979605568679506242755780611386280548366714318225527378737486568458674860185056802733750326911758520261233613725786950686406881428789649138571041320748381439158328964131635351017689422877358807644532595278223040748502074091548491194547668984591346652033107923386967382526642628331834477703041317072147618167455536739300136371664552618647835479172519000326853588904091978803908164887759046549533462779225698988307683041894709668744841518413667015864974315633769468019059045792727013755374159162458847201304153662321866598084508299192753345866413281019732329367772499095590661818617154471985119500759124585974435970047028814870945072496379123462299522022889506799155360687390224402270821872196415203602796887039740086118750301520432559562700935488581950817946307954303121377345747505069807058914103456896070376686866694634227903617276147175906167899593785215897533934559690851809110370122598014853541039643151141894903587360752448806063053922619993810073826080137125224918762170004815987740089967409740914101002527897791107542569331014968334534778632532152748967665957689411730227490820647809790950059685746312571470976050357989786901663905410962631474013058523200020999393188252650549732788536875272007756228104729796805928061305962420466460306616286226682403599527008924829891922467224087787425649394149455010063593035910851082716965194838366331694368478187210996484698496082273558230172883086945410905203126216742232455177528362424538407529641738482437051945383189148017535361884538209474198315142397459247642178160434319139743930339811965304330093132977437368586833384904021988791976031824121519841400242687772479340329638352099856262905529738337319369811335514687477127861136827643575637444548156595022938988816763263267376881302924616909084430810949411195256969785742665400359014253575521967855736825380418698433766582990500576818864240099207605132279928651945279165780433921618070647084488105692101411855356702927314803842626926573641912890039863432299761781408234694334910183158243080406966357671206402229368919442546895147573144806781913978598540522994759149256612042405028756329204535882354088110451398158855517131511200116981142919864890122666426282176747146066644827976928789300466828211709979684173478283212786664233062554993781971810443405175865391833830831954801612861776993801896399350012034730597709321281987543829399781859720272195147118274304854932369929986076229373558038117522091202554853657869527036824681605036577350364300783852381118122992052099876361686405295541717925025969018648166526408308260984740013926354852583976266180030028153577119324364119824516729763932438176899675275016978525266395009076201359085080099669461863431608403310680124548861698051678031916347490470783449291072424404791915080445266582160458624747340202508991389479538946364470962277791265707083023744360846871773549408470695742853853418324654544539195719950039737090441842154271604935906274966431562592337280349607825682364035860283704367117719493191758469877582855694136421564734414296707213525896976131971834213244880222062833156588399390045311783159818756325425113552164631965344431827489660484641376658474681708200020799904597354877536841834954233839590801810270640354487166801538013926717489662335535426516370747049404272950357657080779231337878896015426757230570436627330761129641663505694149810548243770620123950607210131402351148721072754830421085758130756984044720900512712739077819744567190088634133416209237497751301192497351974132205904801927665265422999798466209895734151760377256413661822456781762692227083015284312419354483412843649258799730489516618765805102422257765703736688753114717400389014347657756961889654572762261817995454983567719976092068767390661783669629348450469553531509260866375519081980047616787394017947916190448354678865801996701994878668912638578770004037268443320824537818079576017006259622373789165284913943268557857855093186366636174200103549429858544775039893880922764251219951038756072740439703469976651340671986866589272379746873341947591265253503467970961388254790407359278004757358634500657254807490576837801250962500394917403233226140300158558100128046776014460497288524357078251432101748944164745911326062163444073320043214398370550283124774206755938903891348903276920641294214325360738423176483969501043258605942218446742932386009966447867115613039690429587249705578335910999475103815544927511780084719342543888120355814176373985524356666621563450127738792412842143407329167384926677083461972951843321148762390053822280564949670522866965746629142614850923397979592725931616813937946441941562633529362929306337831416294947481494087322900666266066846768031062740153773158902839264235368524192620712114291421718796212056156518766488781609579906355158566236817133722982822094566044676930364892723048736426120936195139376829231218934936160822182123365749113181770588680112996747875867290831612676321848847447199376863889842056797090814285751023137250504925123144001123143921688961950638441617705723096985888661832867902439490743427561288914944725216741107931813087444518563702585669505403796271465330775591589602682484457712730203075990798196793278117005074029909501661014828733835135371452149675413040980616931462763801590457381542907197206568734436146512399136317437426438932842801659879892925946922633561638332221234180892299700111085823392810685388577855415280589956710472299554000940340284181191263521761769229227511252481454214629505157721696932005128774116065801466485596014913731182503921034585163789844089884701317518458176607076088360569841374382183118071855002248568854109403157713470108562974076061038890024922304466683262030301508327576236811280883622270648889056602946481955708646840457104277343659754949195555462741828419440399045507370302851383013047837310878637459729683037174418688520789418857026604396163816667566104619954995343640640151114411147974465585631848325967125504479852233236017522295455133069111988906771656220823526732438644900989135720385537334103708435603789004991570855108389624293530486961791954323875303266131713780056574423968950634107437977639240657591876272947033510052451661740555075947373038302589007609802609367945645947258456499092493726985348141100127695166973241246982522678004301419011961957116784907665487815336637228559821264401289674353167522188576044591894914927819193144166887288752816848328299785389025839952508387654701539736862153853687447089834614528971917801895923690031230649791064375995739943203645204455019723433426598680380727691501761054254871066454568566193261583568632224594147583895024733283862475902175405441524072441034726834357113999806887950452744850015324423953905359219620603998798431732711702563741762475617146648885623267947786593618290406628443381043085253516397911655288578667129101325685173084177204067066675960201265378419516933159284944998328236783226907311034361549135524438688576365449680317331462816286957440072818913675472432274104488921378777286998665511299950478305616741297106628347946333917910172360010521288583475398434680593478938274574350663792248885333630528994753660922219373037388710750386767842267180314333523243605610138665251186486173750307036724292953858175657133031793178653018772381860362769331577099352803391730576997317636805277087643780387235031883379960748123701118634821799592844019778171731840965851784872157645847793392687580204907506992607577492748990122998872593793026409465735526345591472389811731149479407617342002725951434128681424309761197601777567821692393662366491302407202190175207660896973753894661300260724454081232273329807738457227026851000285347731914459283865228244324885851862209674092208468075866497642201173438289402254574473059129726204120891397200609196266538879522167049100616798356441661366950703733253545543860413965908664915910790086749530073627487393550323019479457136351491845169313178450426475821326862447938535429795102365242038549132153067594708538767485115618055644006792456961640803979924906441947164538955708193453387958251679206189646014192769005658532369887173858994775074120847256311649711368116629291574593519684816658833612650427074102386105929817619740007132867724385520823952374071430050305303396149647037631391058342168095657782483743922458954876264475646787807979488157782754061942109173311770419325543739511232889539265515343674718511898869895828535748797999459543004868034796066966092862077685918738214391305572497076995616292685215027482543833119501205181270487466381950577823934978487609492365834477118017874174349270559175499219786390150895666539516918244229938336809453939178081013486056667286168598222352223395207674717260971274809794165233701004616343304515626091461923258603083771920136924400215340257082299098112687280202943896182535960567991256451665491660036767778589974313148544345083551475451536588867751758179641578681683738691071591800024421286647973568161332369073836403055827444772780200175568600988965990595869258045056912537193322283162971571799085200832726178675249618745413085863508930489301353021649804321619340513626569277461943613317016008519606487192239876456805687101173202026857958674333622901696424850515394412941201615190377882420397698561236639556192508545031110227848010092662222193527710299540659235596608029469967373811069763693473743555601865664909882163144383401296357391363629174404875488653567426265295183122002394579354998189819166250408855994038376343130127000638339258708879482575352382683489224168042150223990854917627591634739690214692227682967433729181700978374728711032290122980660841423511741430718781228950125335388322715987836557722577937668941326824033946339663435397103108297635556206672919687414573625985769323131542308216798713260536176012827740726259297180488587987741332765655028038322947277355338193251685611309265621543192204565179346949683471040732561570090321238832144991110455408238556843688301168967015188691774095660802203777254472197851899858124047773247099648113608023346456959559959481627419182106727802507524416984892566271176033160810885077262645190696886442690080651698259733638666988358045062520543013762941305030180823854119260364164680846543950851006870346116071849155779442216926801916402035382672139710080152159449863248928431121868916457794125045881896262300595022742940813926523354028206741711453650083352628772063395192997237279783865191504851524961703617058432872485758046258973301610353365622791889745716231281613796145118396360363318305971434200873609987060350831788906096757380381931378620980125138416706781340071789734456064791877004710363733341669269161903502562602912001293651620075729049821572322216854193852822721442316867283237317142672122450327210667391548769519859704731919370640098643352744131558591365962134803273622379786829141247635776370279491502454631043776022258539282246789353152162628588791458842937430004325400683125930436389362578426813225426578561557065013458285432456483481045815705095069725083864753785817252253753443773241796706415354319316384286948650637295125226503202780520519422437715630972837077518420933863282232906196018311242154739607457647456700807613983727114597725464298906624349638985035555166773386042348780386880597358023954378852469492743268859385401724791485700713535186103991809561147026777213163058961909561578950707474824073037184494421716392747270860838840245623550394583817291026406259663879089109307369802663702218604869452452638427904068471357482904623069082450858995971210743964723886926753605281236626024284611408337903763859658143415623129951835928646928507246311422957432105100636704999882586809918182648278071256215033198166614494941005181953468508872561951821320809673225586800290313088705575231694206208082178162036200457894185943588802603538217590092440567635534746368143482308461608509557909661419975445595242019677968646976500149021037520681756923389799703560621744397402632719830689742990150288063071495610416301951104204141840425930685683715194529945935634411027598294432959905959647803960903578722438834358327786949545401367719391060612143925528855932338430198828442111393414666015106763377055544714961864539096267223726093413182759006693455306984582816841863275262989705149390103835117659793690827094189530120311505355807553118209090863495932660583673822750241815317647837630703146813042098007166499022588447497272181135238041782509305234946175942867015947507028281273269633969786503824105850966573826717449485018775753601645796475960908083887038779682034579991098211180373010390215825207993902190205408754530322603244594897368775928952432386519686750806377889593608827647969056304693440507977398194416445598206828946047884877707441350489783697614034940380306162291052480407199173538982359165250008242135390769283959420005928125453007865279382194262635227807120032235374800796387076665549279075123265150212654496330458135102703121576976336272285445742715566845184055812880913539994698029030621093766554090061367981304576188347135186394354130311396547968458343471029492909304744133934757534389925147167685379011121942720541632072627706808052194666383593232429671730346550557150235530850902655756985978880734600813474483219303433047105078377848830907426162321293233055577018815725722655574171933614318754794363803944132076346243196537247511720588002931670262094793056316843990418812378761684081419025258954217705548541118112945757875761232539763496230930526355091365352497564059093689271011840493456691119811823971911024260397522738224749265064302246598520194690812317874000770980231895749039002167481060697234310578592873610650734628619052181728890622324726322147633965283130816839702831770502404080714533104183082321226098235411049987073975666880705771634332600456958892581008911779794934588058162033395927611375574566102835930177418973308385259123687636236193867141144942137471511829530202705983607371078925823885590103099107422690972578438534586231138588387799480513608577360043276196702549880485062328261432653403998550611707606705733536456832123772273934746323121924083495883928354038168450353508851597236547293980466492717887347109042392857202918040653638566507858217750904141476776345234116405915938547716577435673004676272212202098498591250118057686265448087074342176710609075404590261788375727109829265050229838273068155298483183473392556718413017561904108671866438201654145180001879488598807524605192927295748672442706784704943224106099430195706477437170774605065216501167980371807675439740225643409641510462860054573876181033040048919272046615739845339766664449497633784318955718490057823014998945171366780973345143916458300691970125631618266533386791558301954768031172294472993190374512276271957940807041240262153735658517722379590709543226006474961137916392557720362343557994585617324673489483685561417646193081328170583429625979952795967381415739104702614741642586069374586449233525157896875902403349678966768953544297773646392566445081824109756888921305461658521650161707261716900329226438003427639420502581847082018557907322921058114979257198362103888085359657662774818710433934797001806555080274751315115917256022537348024801352070156601766299055414284204181413651371776126433142078168385531151628663988904082666625284357354971629214776664134924351951929843447239272918489885469987387918804053279194138369912157222644927763649805867708015856131938462797964367027149118733570011387648698804642227153181836397294349870493550738545198473673712893217690779516575333908308122347538845031731001253775919505864332160192373878696145825682770389837809173271374159395523146548838223228969879169631308408220760695916477184717771910508726153521459296764613385882074396853066317380541989120736173298303673361593617226231941849797078173681420387879175261135968273181902232301077076462341835874733247084748673778796432862045913330253917181335624579534817384619255053337148619594090175541283473025604407054664533052312142614016700310654352856402112902953602375455839663228340049815520560299216171844971038854488876908584568394076199198171753293039118606600026262282450068443235471404402649847865842336133787233684497606689436414302060739684843730180462523943821624383025806571238252965218751755471594219333701858278458309276573280512124527403814124083604057780334572980658089272187440945353094002893721182595019147188160320893047797207320797715855046707796285900933228449794467197571475321468433424466233978962205737321057196459430299831424410063799950390672618228095881994943263895591468897995594413583323518226397601993735962791309812673255347822008585007616095806843841942371563653605104785384406949825308673049289645503615944623506699558185166836034787262897150370806887307344369672922373335725230357083650425244590101384829577063215940033509220324845361666162464957605632851115206482881008816539769054617732490471064927756771568374531565730482910200154381558381289449563729606904439585248668412017477236786250738797212352334124215826542694297583776926474861566727068543564401093686555559594171833896307965651321185757936459831246461571432921210361732761062460333548462139150824820192607591392272186211016550124259414388179288641224691203480440900217466823802383366585709079576491420757380052559575742736105370993140657254814397279969821852020663916757061572477335525706676804769568051963832829358399153381209345816030878199641414835439985780099795187859904453783958404076352290957110575875006909952069620667208381319766186579466467315887429302281298278695337283571989802042218150880973687067195145286593557082390376282518681720193474637820559373257225104142363857866996763198793786179346738649505451799937284027654151327269700591621391292446053347621515215726088218977933672711593401246568992949464278107347799160049121779777203538931926189835987638309304827066106173232900600574895812278012813619057502883072608245851212301856660350585501832389448163792944632544491129410900091240787481423455167883635127224225743627122141129596413778981009145713425630976867112121995586312504725139736823930662857906739724231477104151643629467148941976312536282676767560661099744820683395235626894060987073529735347123979015927046707440291162055406046269919867415082742786729693484769385462748753853724634892790022056520579736726695858650820531426681426268670939689263030745939600239053598042958871260223569294649558001801661716725993610331105635450689042008775484625872002360662026253237886242725408587427350937858943695986295028768000493883175905710912453329611783094151665473429146465020299733669725502267344462311361860970915943290921659555972772435156275565540595483846349048735684606750672215703912549038281508275422044979924066733143104083337840296747469788063673844990358170396058853438801699636937155184394445181868828199229195323586928641320591616874827785524210740077465590447054858202430926128322172371859653928034650624059271585228625163428512306056457869878803718851868420912534494393571311634203866075961151678552541173347967240172648407964847213692158445706704731317197097896006926776974539412125181049794486639464400251011195992566551787010705582920608043277847812166333866350092761075693550011767575353063091733620657128770579986945449410138168637416171465132517190595059671752810920508692881801034537002225067868445615821744638456326468492838113267062913216486414585402735599952149024271192537697552210361592231532173863143511773368389994748479163236898355647581440740786702416178111345650828385737043601466553535737643175390604644304093657232898823720084104059970946428353191395031734392997207072810772252149699049428990697711679184716632130161838513846629252691358596751263639534161930076892184989161362149145423305343188344382176650965597752946082409392337139099234459545365480898981642963758388431993391594338721574493409245362049349651715721425340970450194718855966440464495590919944035650092015851990551045911484390666989438649903194918497924750050222338280924372944770684163693111224609488044377930941212725972410459282141058808642969871315698569656063250638012898585759249020461885159385122128699773923846930916333009355510540325527564357943046119012930509747935786722254843492205590755485637859194704683994862744154112438019070118938631315515509812570100722257502855122732491915783255047001549379322002137198859339167073362881461683278581382323751673881329524839203488340154649675717095058973793142223143946404726501194429331371123858579073950762884489000166764802570203665539424319637769754059069250753681234157279422359253732422521361877410534096374761183294129955448590438197425178725207596986259109319928609053312217441670318191559784423170649098480179526900080234968055883185796621711119810225428449220599131834172249269361126956395932282366525600291804622462858056437418858874186504316723146411162719641139571751601926810038901458237258961696332379223873148998329226386476468884185876762035715168018778573848624444312514192269292409446770935699866124210593641882653452282154225953953421171218232886915916487270465587849232964555672091626445136311913385087949618482789613216634808338559410736769002502127403489628805060567393876070996790632102729836181064860948400029348166390102922436655293195206375369196727643672732224892756991588359809832837956601818705074086093610672625261101397230140210564473553230715262909122716750386895617289493798574596267363694630691317998486520458939015815669124616546129596669413382668163701007132311831465281847969217607654691453574224958006256019720243492629694836037268073383590201857628352569563802895644737202990453830347706409703095661012709632833936317552924422951840981809365525648214915017465951157988572091009149258413243552505984626711392928733094439059421985230200491866398448643640235598124581722076945698609266178259412445471147613160223921159296262045107860172107521648193428591083161766571625280925411399282675073679343969397461827724814844218814501361780774417935561046407938730916011619218518366739821713595562858642923661337153509482192690595408486937164243096535936800281030045233230900339843903136557090195384315943102674351443440980482937888996835929482899095159419051575654033800454002950360791028931596304249674099412301271551065113932457275435546419149843726804609519178565730970331074165500865240159333074208285026807006946899028301436961642570697975056295636051968207662309814216828028858322783956510298120505705577992175491458073019746298221675463452222923902931489651298203749316728435581996777498921340852241433096337312122376978552994172698075674627057283545992057409962942300726447246009551566696910640614132893029658141655253982767230397822553238251843019692732925042135113222204422346252851302384320581874225860825469023294686533438085608700197070622701272324261978567690567196344710506141238751299171195014281988734212243993878033874722036133856038319772739735265722716482542762580776955415460246995137048811826700144797780981733755957244471604762428616875151191390109977376897628249051563052783529650359743792589724235874109819477239940649430929661892994529031818442452911891040786645294336446255770450689741741721361080358887384379967270171264645824255628910561066892903161202805603199598371974998083404015692127524404369385996497185526018985379218513010130519285281601366056897070833519731696729315579098562461451290809968907724917292003332549204525425783049284078432863678238308072201311128369896694364795050950250158028196605153373877831426705333706819506963980680168252035850099121804217194456336722205470065833373838130319672685346450887502718158331185118200363433880501340683632371149649597286817196754949020785164120472619890759161934657897287097854910849773187392957799514960564402256072659919603916950051545613684894388532436863146790517518421359509594817091062104166685168409530835419301749284359895941793924496302443956417733164929671167948529205814348634550030771694603609135326132013894545241961531889579128427156045426105098726901489540350809051926918992336391597610520957166142132546621443603639307611537865856204567889535452064516169219783337599050428673168412910916129309582217152729658889261405099225293842410085933284351700085206665960462407495921686868072712186126727182970825722940407620377233628945904853622603508909734399847107057902691571302862547344790317057775236761359147671713073063787479426153566732359730047884399577391297407413731665877858829558479047910569216765809253933519931840382130934082581985470050075875948665617050966927733061852592405149155298267923890654402242989508659150591232687299319733891180517006604943133078749569566272106467419440752333201242607302760127269397267140931611837909620343698609482107319956572600360044121520379367711384750947691569601237971039623169344288251225158837426833905129739638408337902385783447019231909495727863037658006557385840960309110523629420576652938794007914523394634770186595750153296847618150176286724073627379454680991834860242944106934218577315907252793956942910144393672551681539896471419282811927102479841798083695769840901641884174885285958322525262109159615338169595544839819091786264747488838156794626090687372745501060833120260693924968457772537644735012685855762082280322584005123824267293007422302283852632676685060276899445216540364566118451388603984445953151563269009883056712397443367779815440713072465110938692967408191635425836301438240635175466575834158761200560305805567356722440360722777859030786435135355923736282869408628277538564193700712636881351735618812773321832348138621990107561707498146995006776903258045886927617671408208227881417890095992129377945664183293604617689821324709925436313408933077438833083868238416957444827576102656653826960026031554497999281559200423895380802568610633810732831778820907010724001145700992728259806011260601296304614627369045397435696668479279403292390649957505819054018218247553771775560596869688327064692710987274256897908905098248913489902699969831107711696728624797807139109711769883118751841793605693863495513895482942505345400384836084916356331655794741916283143496101716816751949285519704270987779923570737170798253853450417558262805753784877811815711937198614855791504698030927813223315029394368198555595760658827264804602494560143263272315998372607125219415178489996735614366723651622952801576348061899170037079023400788352996241954408564721185107902673046775846337218528112037712548775924125279253893189287754629401780708311905523393602841403525243884047332904069218821749060865127650717927918226229260295896214498436956592208161139365198455307843118355366720191465387563300969471103297820082191421334364052225854616849766964942269976907723388223558783241127201933564365487618795615316133219227923732682023792794200385486440847784532690319990911287087891604554675507316655515069410701852701586744908735830183362890279060619697825848986133911270383713078215458735000166400839246053075978879282816036638974771225309135495502805364479527780074429880740329606494727055129479074023008502250669983723173910170219906550617874368640810076410563418619026761661457946523777618576985899677214188704352878698049314511612386071247866655987684719986520912091115774808045942657846074063813812964520440003621016553220038936907687441601158164114849037676465719217329533449948152170807498149327985851311173732129992230439193332411232498074307510080272491750946207469664237196890508908415918133590720737153101920323611020895404721625596393158855907089994206818294056021573154113757465448971290189602884498114932699706426811327366124339937090302201716581510957311306368968511869760430453610004021001607413982226968697822477570574357692936099988195208766515012541246226665892252421269218494859034459399497065072701557422819826197066441239168581926534711458982573604185076657915184284960740038735434613649289215598378587987586772594938654451713957106778010799428602739405765974039129002737396776243117346122237871685912533865723041503522218876393546166515355314770440975605147207614788489267643904001041578371216292910857852265130248512494425815098506640802574804819742221729270575763482957277740742759261201209683804036442901593687270542230801083536844512251448145075843829888777113713887547839410151424570242894805759131907047526531607898809555778106535582608627906397001612699091112744686800546591955077547797540928957622868815269597244983050034082013095613268733333391404460628740541443835472486997651945804375688644667396352794109505164360379484681942470570136141499265694749343518420637902551076674748175978218502125621258715660318673223669114105345589513084461100257158891472450770227158830481526520454124852235205091008363263847017576554029994867062054592636196822286194500381798052209469670174238741253628051881833832005185122466467902828015131627660128707725016113108464895976135803099229299245937979774039419513699937273731512914444428704253501126872829424082301401535651395832664471282377290175812867191483119519014194885361990200204869756817216269969964452027465255911954780559867158577871399488498343781542058542791676699965288191784610504551267442992395004280362990481547428830564037991420260229413301868856413720367548036327181666416262433934808110081850300286561225027818506733668421334200046408137158242613244857085555167934175814954083446701992967031213136156598044406662127288274166113440937488894750173389414390246979188743014853646528268988759169174973033269819639516758283285581414126333841133079806629402842711798224524508779898552675281973390036133804465153237316422236400874481418813420402070289787532208811023100112393741765586637412757910874193184826575383045386382300345861690616570142157772467674824884902369561340781562329919718161611776416477134624357999576141311220481442623397521565839790706128259360752223171844514556833815406413749588556181862494634961548614894972055574905938734935445074225041093599984271025309616327492886371472731963720679184384083656775533259342269683363673955340089116892454155303418759730775704384344834151465173554672625635269964127678645258472592324930303226892260952264816193211360430823866302836703040107953826661370903956553509999011807436958047816910490467536377284420355115326494897195863233099778340982115278752788482704754667965967777831404533727651570347089162536464829781402798651332203548365994898072029793851407494276109507594384940481615843070609180123541972832351412789993640851872762492593230392116420682113820327610363755975353321789230608925732883352242521330986180273228579274828273124647987986808987343227946337266316464303815657565440065534924689817048664194356007600699182937607073161620922552736367363805848542405064389014155746676566997278942739852421740307500592163525127554266070217620735761648011720122984216953188926364327598575222601910665353989304230374903160667379986098643524780858047527797030345548975409788778801014436820480233856181885146411337849186026029084605026357392331066334954434096376336044326406921076847663381598441917527641179192151183516305934264255412302276170971227498886769561272452555139146260777075910359440369012585357756283689126016273554984396214702520737855435552328562912711564589132141005631091938639630155247071896189696625668241641221996475209180399232723995875512851750432559243989476038270248372391263779168892663668182351796887128316887668734365446338019642654968227049029461238337463963582665462019471361571294555530840735621471613356901030434135515354574715207298198427657106983766512237438255306377796765473563046191713701796664684788066545351757333446273451401309295633913179972606084661225586833020013951816641030186895996882958718142724217754264840589033622230865545722444867646418769764186324770556531199460713255724650947099330076483489696561004825025637841025735817246330008853619954979959734320395657201989312164476907916673607012103137214110793671503579375550149491769247712346656760046516733690531647399640126728837343633301307055926064423233559393422024100172237670710105192904961752015234977851200669879140373696992620380849278254552885511126520880645219287324730411469433027184936759517509577991357235821412252561102446866126176223027339715153194116473745726883414279443034545735973416147399175887983622371648267561415776113482995176681014626771646051584896749177733390939119689537495393436048177127532736263440156551343799012653133101093337606484188572696026664547149923857012510610353219648093470982535759772193666000445506163322203331428330203519712853416475610449328005560002686762791905844868265603217763572380928125103035294260505540746704951420662017100714189792965396071270360837658526780096197445524936143923162253350669943136296492548133305957100065073532834747619542516994318540825030728109692059734501156651470058655085805037044828496599039681860005551816950164073480176505323386321104839550666443172275460629207096391926330672236385888434176751777786833022020883739410905010093864397477429863607131255467547256352892334784112491601336953948715373629431493625406355842543941332948875098683008633090806855845406932653883588194389595670445261779655719766676810966178773590268777689469927567346730794220964341719945210575994133231584872620797033291270276640747548179198071305693739810234804009637442917496526880613662778815423867479623333735789862081208703619328602351163888333188118500769317991279622562616732987162907387715588121503410649886486456569956806682421317078739806015214739102027530739573042142455766030737335564866104796049234696957465862577624487524908770911685687114027032047892425800006562206679435349539859363757249249327104349441189868366165387050679215519398647548338012740264659154919204888391955379036479286244374487715985644741096649040415484001980920806736228595044312745492342373216627046538737084699193595951002633265575677681773271726999492628710118934103359016962427219079115155176806936912691607245059833773101846552210943216316698526026796292480778140640532683278424383869011891095493273547032160968431584744615689203952263775492892011684051938129839951604569097336855357364057500731320965151650559331878941598445753318823399442218606664439141726004252117866436600451289254934734993164653776035552099863053122119977037159216966450620909989330709678527358437563510734251873003201224589593010106113812254348147564488127793267743660891102971953915902981142826994966773331974668110852138902305657429700781561373998086876688549456805275337161724687248192378442951216653755538730662474658703585294298408082450827470739200269572891689073746242045449051763818981157937168060107755102914795002033046071253813226489618294303152318679119040820811202157346206843038233968434067149276629312974427768993801757082870173277972070794462567485756876041937929515993824491209009357779527024767479148318920744997294582829761009484310319667367068530126699276041609424714339298728890022364759879419134526190241307081633091203596234254814142584551324606220972204815324330769600636681076716803312482009781464178836556087490629237547415312304450869015516934456884395037798650693161542231983119815983641691191501530854900959409900396166399828820215876783823286680488722858947614600336120082900938476781823777429010500848602100351480185282591312498425348486210923490972970008895170174698259922671435167527524459381565448945727803149571102782482781665480512372398470507503665147404820313409105543065333174388800142392669973019943500350842404407134587399646352735048232036385090581991570008189574960719053444766455906428398283203403084222573329555466750513475822803798580496144622435658015965952092102322174558138472731551231541667713499757617939568315057641446073934617581713395017528615614063206615645971307802346005457775570365738832222085001866827849415329276523450163422131781442800310820227803111897445878305724651234450479442741349320244157159209225258318052280769021845822996023723778996902318609414312101658251367911408289777346181189568981576624208349271595230714894506127477321199489128659832167018181310372204262699395213910056920594043204736253525108455752648939939854886345243296918764250639954718562652438958136839194237612043336917939298053655072330379601165300438566051483649999760482211535726861441367582324982070696380693144940464655910094895570244241307007734271133637371581696145406851598520934156647846929345308269474958869103014065528588474572100180601940578300509242588199928781071939696328270117074349661885411871343089853476000517412719131589300550616456108701903338387244470086527396125351791618779314060500818300911587551324223566159370571407578688851889864566586589952045521015327058832696964007421876871701504842910248605121233024301093938320810244819688663236611500358417872917551437360598116498757408776017930021131967840047997923366624262331621846268838560739374594732165033988874661666541819134757187076053930223529981830078767688309105861732471961026267434235330543949321177201468815866004018075246209595341700412700014533005318210936665136361957135415237365167571632933574209662743685461766686062025299202147144492604321568429139032069255299410851581397294308323474270629281909814687676824175574353299268579917643687311938934664498308023233558969202769720785789962106103185647432115738066879412332690390421222356832476951407943935609160521503413237254744198537322439829882351847577919063364415699163673029978973991311430980042434713087013761039904056877853413697876648178524196469126635958647751241069620654163519956209852691572726254299145520567180871662525113059679268992714654644721549718689057132682992022160434889886214185334263288367161570548675657999407953500287753727064992957547912411686334638529972694046920319048098722154255486657537845876616861805696847128146529253661006027271720837469903469888772933538575263212943526995508665062047489563746378233048173344004391487849055739835426222812533592104692579109324919833980644596875975013413765046130925807604362272364542637287464261377571907881140179389007225158205549497357107933707666956042300196128944844206239013412185426307506860173669864515539763845417244282074982759329794659507343365324679513343834472544575754613693553795830204416135473266396594240568918629967602210752805075301224596753626450747706129443443543312998413237675689465864099746770222857087392507894620891405155792370146905678947068659010360597602252432488135785912574936926280143620237220852831776078061731216648931112835506560159884908942311285791562693638350692392196044121033366311387706319760987834963262071136174335684970510963419707820289507036689297383081527315556046884722603009233364534939460045762362316626109634816360656467932801127101741685394159891526879142933129660184402847153745212392013773938410165972695506975133846702769424208209889584621532730364789608623057941295590423966806917998215939839797258612108215405437012342037714332291909589680314267133762152988030138313148493830756879327458769609645706675853793779191279872160954430012463769467197897980810614079415820271014836098057110948160077232388459075316414537233029853169320747112960897889281753285272333403716632373017448770892349358753804865351181456529632482515299311629092763124912299246554725724507588104073209150401088457795515255547118510063023005777774143398917959380096014355524414037174483143778765008780292192966917528599498272228078940868797446898609656503934895326620796897117310796426016104081847127458718882717123876565310736901722057705933288548467633611816209259467163187133893974349689681163765284145559982047202332466682590212809775138308786075710753349293477255857338430215721948953494662142494788146148493532257196382016128273156093184663520129754877510085769809480527377483424522341790655539397741573423733471583043456033880672785738607824815842656512829678422542849269362170845365419856555073254406065277311326492265669972776844240471029429441270395420963482615619872335624334028925861179511059251467161458526727879451014881761310833803214526598312766160934570491387090134356971414651287573090090939470845764600156818233968057851708316518826816850881286410870877716055887708390003613021865407170402322960622067113483041355163852140260827447063868262320505650296077592408196286968891508958370480803252285737414061365799822467032630410435177454457235964607288685456665846601783325670781251259820481664248662596547393278841165680292786740953959164300636077260104708128670859333250329008502179184732163159353749545073171010821431765456074192025613645041332450318981858266002715775290156183964224488717940789224680969845663831721179807471548223124067703964760540248399169052807399976746183231046166222446875196580343349643864705680613683656361298593807095440543987818701240806580998031595319341077388183805609099296475202033960660273051283708016755319636557456915992344359783952051685646667778926437724240111804200226635560214741101937994431671033411868673472122361778774364062242774176717025484591155535348835985425829499158777160116154782933140292099717162376732762643119551500492450194610137377419708460800018669638773144586586314873934220843985119299519086605851904812946172999476937436606935520985229593335031168454620462432572024004967207312305148801457316682096172215096641736632549665680693638246322320303054824698089249108484350750258307303560424073103129344513551344449529999356361607181490905360721258601016633271552555987995684780466847670013339366149152557699663745874831480241289165712168542721995374179704583985240103171857468514117055797195926599167359671408628290829453674075722888646408035390600294363683714111967674842131066820688766456126462892407170396395087369139319108208850602119742823559211781401413504355252898364998647781366493975675644773476261284077290629535696160275343537814367234695246093484447387198773980451000931980565979664346738438453334711856808409043570480640856074370080998905910489635302194462436478305495782706230699723879608149493306541113702372773450679216213573921894699185208125087480112683087974801978920582368247422646117753398194886869195678744796025452510609375409465824385388101900030715931780587030994271945055942236780777862182078205957755180288408173350662348194093439665995502780970391931958191748739099686917640447936758169053712909936424138191915419261082363031971579310339273863718842533974316612409453698712407854199876371634907993675052754538917588782064426424291394713075585378488133698980502453886888933703595224637296019156463384194940889413549580801765017635418273880310087311439165499545743208923614463289005880429284526515867388001992674017547975057916586086785601398803490757909772375247890361747270057285883630252300988965131521691021812638182588889379379896639209235386366450350440636630189975848085718246472632133582595037808729791415490663392076137562393629703624716838831747959650212500615613071607971338000484423074217762812538949311853560041577096807194424357124197938578215578616645972283905435694681290693475920472053394495645609728538827257696713801173638785494650282702123446257129192118669378256265856155625984473262517788751233908852767537622590515789045172582650258937954710109068803546962279051123535890494657820509878342835494159075435858203286897033148958199765840253509018196232659371928142919450298003918123794756680144231230712753457726788878070508572793651268680813111709486758961359824700240344326137699548446328545342977626152198987782510338904876256073543859701073734024760907279169521951276120880749461427924368193649230409638838464817340349914508122238841307620132694364881171312020643151414022437325162713414778421027450848534507569412231209533241380993403621081483755372338286381021432941642818158137310974063535052419260890282260961726893920743755029609273336921512309946182082260502415318608386040643026627997399091781855559110165916597041119064335101097068022264114858130987152769268188018571488575523265848144606324139780844597603085413863274238312235492418122408080166217618963453391917518710813521858115847017009905994153721848682291821851591176891008203286946965976810591562631821756357403165641962087854999691931891859861371441906886840934994967443842252627380592412203424611465586947586994009874152674136105668217573839495422295257742982867304185852602090799572402833712210181201856505366950306943991189173749364508166117543811294101295585012142719857619363588361192803131145712589073060382170103959379896458972628558664617626642125869554567140594770828290713367048759913810591766055120128317283057512883312981342931869242820810590586237929125098370476898711729240433809076730894724007937410754336209967627868405302018986527433606516486604316603873761036431262776556094111511038300033483468934341262420110023808369960654903071368345581096739685156773577486439728356451825722720472204878045731488197516035874068758186016410021243019896915959170217542411382545877570060520594193306717054756122070680073556077768342128229729671440209274691383331905416152585071136134063627278682656697554226333042726851019403567129913160766063764394105158097346581044237058849752968435338038868999085817441730126076455773533154364720019597442258417727098187919226495314442246894002642784082237155235938770383798419525346250422978645134260202453715372003779577221730991704877242219691783624541513120527546059488317819887737463017064505309717792152142152207415698920368757833675686335594237636072528994448863924540978022736920784438212337103830635971558368472545812190476800147785819684344170401390636943174512463183585893410981331085606040888653429727784394841818166357523277910106961313934522182086760254192854612011226910084467103302535809332144940368183797266514744122469545198753441067855631649732599688631232958890355466869476784504948710177373334570710271235891342853460380552303958817480301539867243159899459082724256150747976901290502364187105799927870095070799552331935603779895563683495391391207709993293979744209391410539349815923110297132465370563679876974609821457811927721608951765434272622513420985865087707872493189243281048138029868353414306300049849525409592414169307162528054804785792215034624527749877706236590288128272860105010191225097781344405478253597513269251967260440092896369814252421056527768007891653660117013141193043933243322941640056531485023826711496677305722023233087730163262643304821515323495418890057839728131442323970299618072753745783566002449785324008790621510542748852470494838657856225800988160086384236000362697069514988161569837484700278016456955093967431798174651402505357131454461107927507887417209598503422701385155104800600982443413916887196391016610398300170177287671712708456929061822722055299907427058835774407652670645298910448030071596910024173622531868701140380942508978417661669932486904558695700748191565834161086308641374557043286534388443686194874613722940432118854666864672245525488306238063376649175180076308867359167479171354718737546705893450901428457342035941046409460940709226605049356330036922212850017612997054559167946591608822674723698425637517587271059396340072521261480830848122159532142980961345377687342292954815765415932528211495473262311833427613571533691880909464878978475359322612171427720122597932039014572328688765672911169420379614262787346802648813234626343688967993627479274060127649382867287617657666244072319822000542992045011971333880659546948742012576159111044791745413475404966126381165538668713251071144695857806330232495534458477310507697197724116140178988922157243501041029763035364289010869838337996447106551163858149424254960379483922033644252399569249602834189267427825213299778434806471250170395091120656881719724964324695598134960879595060410262896824599230038915530942449745578079066199505052057981006838917116277536574765407194252012997932330136565861487664195585158296798868767010385887478896995004376992082881574418455094138622958637626414783428869261806816081747535081071370534383569516410811635559400721374679861388201546123250676360830574793628116416513603127094940239994038933599524759117118267273522899263892727065912364631550919737978761904374665437130533008352902110901632330668003323689013880004489651611147174803311648296052198975120131660563777613734773840980696370945068109652055861149197145466540716071752163536246948165733138881117013315553869311329683675715078096391836656994828638116936668015784332429010021849976194331126705375608162967571019694992976676066280834118241032804575873852986937777157488114134190637073354388660651184239710852376839553248529461400086507071139603508630784874501024183838090491642338547230904712622853798519141634697589905369884916744040761146978773483815561900781453827485168164292378282797289125495996934221099265543828865146155481727925427965824863769204851945999692227579666682731820187611505987084819797638544436576278631271973472859509805120313110126021177694720041195161959736386197550958818383989873472743640059803391027048086052275858731632311347839891050244100765299447273001746311848727069792093449219995197832124427908519578407320267378179299406027537957511224960677938679464299144750999605956594651187162624626106005863862804225918382408105878828384971562628156800012517968747223560351103082557863816435488454135263438095862617604882164781972958566385331310277945826585934870447560496691069575945750138738614675169329991624508408473817826939790307122781587811745731460928964140533885490976254492732189691087402523716228204619619991218077011765713524482048176852858253601552788844098695499755955125869943509948015602798557568764616408384417541278471011445102681893092376852177912214874026231568893042803219642681077949299058441308876760042871838797582952277321403590194742579700301893752403043049739922353389754184970149624875682553704714264707656329253275184920469105083377926754502490798628287907476975617677928711507287577545568302657505600058827508068900868291951801339960403456818694243423691247367942016529435814825608114347262100530302407146840478094467441032542086414896805066252696529334703533071836277797154536320727195402649816352092440927231365413594403096803236955186830402726510566290237615127210208648655865067616217999982801658747868030124401985969065138444262304827912043322589182931404059758757315732866286640857449743294811623548810175653773009811644513851677684298509121495284562014884271271582229313840732936744930705969833787156460245774689526162690566482211380959732101537536418062754776028696625058826890767044228802146850261844906318782369248890447510455109104803874247926828931356956310265057203482439656498247806614939019189999915319658411547204548401410430385369809449366547473791073693921469452731095726046284539366805630704853656700195814017009750269469161507822258821674342189172045437063915938835277720451250202259026987044498738572968142596462841172327190525291349915210550624292341206513372156575340303705267498327572779641557931384741538372514735882416138963575737547904507057389301119430664393862267304086734122464618542492466336764814621822931871245285970811637594430603114573226819641387558557738277825488573805959783887344908171617005779293432775661978202406757957730970801603629316566550669893436220993235810217485486154010665107215464655074920906653302785040164287021576897297970526490383170886670887239631385173148592643500764673439224580224854252641994059546238717513925430884053975122717717766355658820555095115503074451759576223913886474165320906577414073576279642346196924316652593839132275540371283888159372260577493215530734915810036666094309206475774538640897199554728685713846298330697925466795694087321225010109082261947629833645515933539594321227289873813080824141105337145469631101012878010086326941670747630594114686698226695708523874486256087776472225057577298887852277654166450350729282235525325061238065454445807374553353148683465983052249064822547716410909176972087336333829913688627925242234000561158656539860400825045345036779378666462428381646276814317673944505536193036478583741952730571699672836593462188211272160018509948909056618383072747456703450160734336272911694053729456117462008844889621669062630113340365492842142950517493692929074092330210218816931142046746073557761782480201824985629021831401332933528814110059868309554819173283245283694936387798888923536626471210911980935511481255105554378718902618213872812413187507957008309454376676550899773666667415198809729849056516715292117936232378985908616972627854141032366963463226305585862767746095633808887239431953569984984932638559854273506972091333876767528178758743550658393661636723608679416355888081810495410177900627408401014146716119460420941415511013338247016397179415289001228046999947987058831877061865944958492165738684568120072171778176839688523489147911570732654779012180730954827567881217606930366211248946216883879383344617309581760586807013242705298400928664229823228246226486106009144287490110440035163607488503639665469660755604491312428949378044497158621453562752351717707362993479918051148344910448543679827488078976177598636217630773222229460677589734285576824468456151727295985844607963850125320585277887166144399250485401886940712168883727820957227443977648250771332600990340394264003824337235803393105593999571603609345641698589802152188060427907236338636496952782217556269904025898912851495984530867406517492557978340943997396743578117629356287759941512135002528744714369041132090310954469739498114683029156501238654369472830971685117505786594990317762748510729495690743397297531960814565448859224330083901126378603920200067618104185885521568025357863928193652371502268793436945031802386810490027681242826126817658943409862519556589711383905801896776588381339596422690800842729352442695863952498369660180720345932837008141748403725713821567220466424441770023056785779198308323008625739575604834573259077145919393999696251853327914958487345755323210960735983634278868684032064683171432823048386252763058951336881506834120229087980511212217124456598210115267048802621265223864026170752379090649549523910339226428924958841548783711705252859495313003386325622168409350870929308623204661460188199680678212344081725980754354216938444639019062369921194196320186873288603354421096702884212657826622475138375605348108358924264665534225950022976311205129518956232224421842945560559578143680245051402754087588710182411119467474170946781109762064739920440290949653188342086926229855863190710945239926026701764985889504050301065684200395266505875442430572018029008016207862688411387007479925533210388427304488468462948654527550719622214276458839259145905639658766707550197357271636504326863168256965256344836757487798824111183508016937680426623870271455379749347557126366865963017390646650470687939676337418971926649823659682495755132528909889525099999829197009195151348403843656736976768059607504142538817695245798804421233352379963986958282823897868666682391378389796681096371375734688951970817158091577360386484819320335560394584350507460165423806867098064707731879883563528357422805438261101625231105397728537451896315468337266211270912041523270202885148732745532053386909643302749361099284177151614746008495865068788468735430900409503431106280444544601265229391087327543515520608262727706460588550209332109919078206434528905351183591385639455459468380081319159180696085009390747822281363226344867643276309756367132907440015657243234182708170171003436426584044086697390781485663921659468336873586629948462372415656896466841504414679106941324216202753739557100768758469048104218376920408733968334646254714194534994510093536520098372294684698425242008301147260698324877777756013656319889153842503460855758467914827529470120063099362891104771128703569335877195501063697515329713680486120920848350224752204553071901515243610585698760971154681787619049510433124899213727667296059044032953806551785334041912066896427089148299045695371346081145723957522626877630271126975066237148350421808263277119234628277781303764227059746067934720862406181551170219747656995775087141632888490385338684721027086596239943838944099794338259121369374786716975069713928562186962000191133725238029794387441741829500175091098523192928054580636841560829710782733234742140953190034830924832576691687070335552430959835505576534264182488981828275279395881894686027617433586586127016300882224619226154197362965396279269873947586464204747573819341847322400193366810028778018728171565020853789092099922745957893656889554297243793710526590632000259550505028387264858735431392290006449117952382037183706778044252798843509232641944545183658020001169197997553743685198395186347428944602421687437066371250755177361631774749052078145380222673765014400265658178604178625878386080772460016574911397300060717075491797937209807985386468894874303379653760675894428838255093215172716255410069450518988548838271072473044114272230256882633679220968788231421188257094398657142796329391204370045246437123897917508360284402969575776212879324445048259092286956795231509187963394117241687931268840313029429260010570163975666117781286697368762737976484274850876283395775868444684841377226337494311742571300441152150156977393369491424701751981439525110959647945163809724107900602678573109252624573282487010454652927576328413355022808736475805978240438246395341989637785529047048718249471005829000167812095675761007061223165213408664010886536103901119305765903295980405345991080590660118527513448524686788601808273871307780464583893892406775915652114404836664950597710771835497394349106658709208365575433935022004882243610477830364306600619900166177316367641732475222303592546052821916060034831814678398923634766870862275519201316752694514162438242880552126058518251032543516179181388026294660223158831282718778796694194445554149916831659221815904805917396437871696974387080132661274000623950788443910398546231485872179733637058647426444025397281625244684348482363311409232439480250189666852593758856567379658798582246559262900063092271972226620301701106872215491685032663401232971541802901260719812261891049382693761805981199358781039473590184539171574698221133728175398064298646195117998537510914429899190188369511999528607205941925329902631449150555772562461925162294256718576956616961247621757771158174935523264383714422302106967084642965787215697448410549203362390255853484311854337477865970947736292228929933921700101876473262103957146517557209864345305270750414709413998060609557030249871425548283021863993704995619360600836471632784855659951509177101816019247380201588529721637594258346186529017123068264378180465555849178925132054448345073793006414633182302004900976111801081967313175027837142089657588994156954543267136361231882297919479960619965225894754771549722962967870512514976713159177533296939112116102095512271041662940400760444966127966997922568984222712164786921224454244294435630188708429603749042160214857945625419969108587551475051806066232836076430473713347025178876793424884829543622472203910969665551290122441253239492907449483364121756693015491078366582580503494318602101246010707675645228353265428067474952429554786937040176095085834681173735232566060459485829233590615998057940836581958133374827570482697778056810135769279201003341271543214609639447377348030149546874750646526241936671479358353747838387066134695026339399620493828548091215089447000441550519994993035922039858933206975796500734613272160814341259402790173083783730846976484831568493647118465250937353067992454928470732471117281553397022923879651502303705280914418349887635368854557385305640037676810373082156748152545360244966607203456315049146909750492821725566323624774126438772834216031563189500794739540273431272406261909124578892495117741395894017097885585025274978653025481345956981619456762806118730565470139085650164800612234277654851375572714047813887749052024430635705711216079051237263792641086653473676363401665273170656119873338305555589354938912640184690616629370367710225030171927226094889071676069908853644621837242313867557341330011258319754230439987812466136000392768642505937832467529188456807096213007946659563902531533895973514311460042574020059660514114873957849139665272108825883626885953273591041896263084699326059808618930797023611921022363449136584595513640826400351119206332499129000523743665919993133755150078088096043215100655971233761023994974748479359261192167460443145009950865971324197011880834786377089582678894517346656561558911433449446080965058008676272660543787087035605775495723417286648414901214046529756399564739711791517839944022496642262903641962691538643829677310407595098309910322792330718748377687787353556523555036600692579860450588575079196510548429680319129777876375489823468923594079048337764796343816083555820188603552040639778992262617174831307211983554411664752650409820024693206491439111845378348776039984644657555690123593662749543892996662995298157391495500847653574891959592963193481034254327141979608496939427736260781163700568482210688465197162783000632538839277968612819109752836098799690563984951478914498537202469330740243197769807536640860551811022992466711648114766283203333414756424676412591810915105876904499524640921019299599138960217858047614927850251285438992691654449979205897732066190437581846792478617504267007619032617174058955182710323600878152918898662612397988653034341208479708736216402567366202551965715808851639698291177478575107018662597822520235248645258837813984619455527085068437088221582992364484170460034645212459086067527381541310946020326956460777000841855752278077574045206867081303547683475794633671319416936602672762651891542516196836066099530444463622167220877665948192844911190500898413964511277812547083033013629059031471163956275920718191608528386792636083412878102591216461611921965036343613257714802827800280639749630794190304215380355970847142817943569574614344874314441941982245116370188306314250416821462151378793200448533653968949822124304559059558746712817847746999413424256660590106524066620392198887997872783631306233363923820895835362990262028630337185921702335754068097483958944612752120666280347122962984242862958915919435704009010359659316043318912364226275546461381908534432171780950366725133672429810337735201459134196251749076027928651743471265944847197057179245868074718982412494902044880692860748595683119709534465592854153692007587757716194756016777082120569196597032648165114589887288439958474029300303243307552006989023164018231898246168667578550883703661243943308308105332632273689803766078118244667401176815154747809667709205085224225062212149907680627067637361439635554113336724542248688161412193834907364454369586675549808912386575713932220542586569533629243785256057228741677817344211350459647592596873958000404742107540361329884086915318925033149653428252297289766512193802477095690512546070464241562767697326766540445620117527839972972349578076867351827536726911594196872449677230359709214534304120920220766041193674533472780608121884710689198916123104730220211431543854470456637710314859730568286919620206535319211471110894871092281335573957794391921695897061808841240548427166112728813819187669304996463206893422792129717195120244528512250102541553144322300550523885739287159959682910287081349586752345849641413958651697679519050680149479962769833560269020624124690122333777175427949047750664712892329663605122907311264431463170154734393137811844544345357065600684738396308505307331197083841009845158161205085526113257807762215154905090350400204402128999302975634659965818781892529181847224751964799953052918488337417364111118680561846498796728261851690481769101614568867238299412424898578328696612714513015217106420170363437563751305025087651564820506094359646358708757558567034819724776997479773083603076017218087124553008437275479393524621817517662464726585483968015524409554702498858239284334745924664594104355479822480888660108720656310447938437332379004977452003619051177175811218110211865580108563747996206638333432423862529186613960783788082783073277384014357342648007222711619616611550929043020002071300319252071004820670096615201553695139678419212064355808113444410486834126691105216834274833412330169643629993983532989740842975334941814520468943115826383006029440667953576796318175871542644392457850372471865305767430329504302997286796489362619660455694193260657837244487968935431676466653727861819861129591086849765281025266167285678139296551797918129962834328412124172054853535648139295403690794733258882752912139814520157547299793045486452292658086493735888940367982686867671612116138687188746895585580271143091706157560193730063163624878506418250412653359681701562252133282478387288651449506738714290432481838555955838225792394144410978332784705909466147890296359113317927470548136317649573163945478963927852890372743229400745664185689368263405125506170055485618991305475724262924140675886333336629013145829687448328319758714951977249859611869776825061642767816125571304195070566653688485004492468134448761233250735204481725468815291862962047776351690764461718190043660163656383988796837908870384579268666974616408035731176559799293421255287096022735709674159731895911271028901807920856821216259880537365772266470564261456948140595551727845787343182158432326948922940578611766447462427794361146450816180590710415082681870907170193393853242740943786967986736821799528679973505199037244006670409929452037277813904532200330618204923917873185398375691654411209969372511412453654040926706511725570988568286380043004443174386089955985303680408186129623943543410147285795882997537905317913344792501116135806949582254063868821148300938812962115893712599081165470464404047184514241187288831539136306427817313629655006644854574551872970988023396355598587045589505502413333051803461570783271870266197409555235769621191674004329759579306200223560420889504410672435547075453519297325591345705891274952758864199680666960676514647430816921671397619533390651722827600100576408082101403898069864629453209705051354520747863668351439044626450370152087267146487108509412389499000495430804764625329926386584777686270609175065477180489669652734457353570788878214808087284051303262769024996911370226463424508093162334375479746001670147561790789304825542172450865842814877943934025631329531220618732359123683454022259217091578497945948610319384370600073945726763159234872581129538892460681059066505490598015887670467097293278226921516638024119762937053169280869275685615055720140356937052383379424899343226020575919153161265800992233992785717243921021725465453639352952276531920498128516667275544988095083992276710696147954389922776898613002926796211076225209833646150780877848038418834212290026723136159328514748682828730930167330014950731829649610814323364179666319421838829640617255679790591626651177373346063031820219153865481855791355390194324948808085220316859902350209981081831501439031374549591586725268572072197845458808143350134721008066099953937220117187490662562435021328379812261238387813458940355195326547500115623254855100696993531609998393396011926435797750570602853697380276927665177550609971594194807367210062549704323052158159196478728371851414077284013713082181340270619270436700682454584956789868951556233156308403189198548948578545449945966910996927347332138426581484991516219899226312410860505499500268691838534731664746650488310155870885298484440415667852636254224754821268436520724218351410650680940426298870950472545038857014465078806882427495608857466921417286650991915638488602059326625037760204671957948502530308362010671360176903769213926213823946578497533989475744212933660541186904761613685232047645544852737600837723450097771560206038502352775725818400284605629460898052321471087882250079357570818438737243519503334974426576446895945502553756881511327910164032701447754781793103300127837188231144616239614176502185957826800153388262379404380129562428494787369697100694212640524190834195878370636388158476147222098310243083125190912857454035773771796381003430380377924948964897098355275068884598864187673768580922357390789134585664723168065138896814784004295931758695485371873193579933587047077138495139518348460437465704162075001990608964931702118195324940371459045524830602372007208976444591576494101586216810763753220551211668040731436040855299128738806795712469181500715898458471639249054609007919386336295912284354847512902921015144886174557708858802609928337139111552292026853280733491890204450874521658563714177030101302444722751549904707044445816797255822953175616772999981162341665527886473018516165385908776998569244156107495468643191926823451730369753713505713914815193000182591951609590448049980558129734703083967754163094029195709061159757391568814379147505088335025719861874669702828426475426640762846500166470812510044006766012036965886339541304550538296764258055161228775639809577239166777930397287490508961973875443848977602746029646567049714521007651782346578848987578434670599709564893417576957420274578440406641918208663427038286580958567510382950812924084675719103630912433761557276972358900338466936845133591142738744555508156140723013314704701302800862554443305147046238368753925625416330680950112339758849892886088569717290070003981644999089443559194456180797702716247165901121266012444507508012006512647077659981767487788718463168245957861290690953254285151585855181583146634004390577786608513431761195493009486721346604637665674789585120589470706492193541270495495728617764841955614067953152805432844693093221418509412733272680246453285952540656745521102714028915820968897419684471632017165052801285127302383389774227735942307562373839665703256310829778466900103453124278739707741715538301261803584063813531022711296581621942362433046597087337474034937368031788839983504172129722171832561151622285543604967282299155138290672667902507496977271879246559082772741270595454355854870831930983663127454783702929335378854851757784429651180180598274609540510658124700072984604222080781474187823782790015866285179589085008528419843832803179812734742023721304566164709203794980791546527974313305674646540639698568535306926337985312793201655574263277931920636579004937384237540683326931482873783922661439199122671741713708859059108440030627954522570586413446045539947837151243072788713272195106739977646547897344409876109109772428626805729556933355751541058675984805075207620293796421377861944198809949743283230505095387047131424798077031589838605583030719449244395705781993960759006417212244180276771952947717962917231080300273219445193616450855151011619531918560114462569734559711423922283481348039364806654946076223105457809752397556086369720103278541897494496711712354371759793041799965585904539012142606749780281098956987159853352736823831764161898839540140133317029161192658828845455363401453726457914163947370901648865885216066593578400163048625779290592172070444088545582929477299598448999598256271199512620069929997358390705997579247494265631351036408845376855463367252211944905435803494288413685714827587145565062125700755082975573861354593668228587186626952915754609619023893186507953477682801837099753917164265670218467043919346999748142710835653739919185230338130087514598582347531716606843246881459194347804211777583420052245961123875783590178638712047138653650354860062416707406989651822079531333829646335697211921231624427219254521636520821926954550846923828908763499408349988423828912921496177818978926634450039674150811051811757470440477097849833203861342465636143483428136417753446182911266250744411416505562317317228887329906735191429996173320289617687849793663868950971233634679280344366081324427996844829502977673001469117104083929122693165232575841659608012630177273693013414717682682363946624149374742150199930592746911251496785956435340637550745019637497522217372957447513697584063918556891971044849631183770450155040548858484803215368051146849803206314013864763200626285114061354224815824560893413881744717695634193944335625000543781724106982317495444092102941718248580959396957474445441078479145952599735788037962212612844171012121578615423742636564753096247862607082490774113427659862659362198206655240808575443881510701897430728007794130488854020846188285028594167110250297420249500667539449197340861068551714203775169345900556066612735624787445566492904307713108219142112456725045879747898038360593833295311455245112979836008146279511986790900347143291348590320194185034430616608854302258050315328842636423368457730982510934042234847447027709155805178208806544889602992889317752439337692680529247024700752308681104032618746723663354268432957243433009781853331633673973778357954377505386620680971594673085725114408822674792390097764806387335214847751237246012273934172084674073898079803362440552311851291773528084278838637384237775575255481621128515559807199461852564477251389872578572357729696890285995333012741982743035499485161622571998741123973764077225036753312168859362871371282374087540162892123770975959128478218894285118350877718793791139045145865257279790470866634252613619577414803343131368658272928169388334160374333561257988783902470567179440856700627095142040970957960895765698965671302807822754963427903749242534715305490728861673385325999848447026100865616185854976746900776893063946108695562686276214450101075248513230467835667972900455186268035149468266582505239168997208327833951379653516798972974748729087921152590122272065636886909870843522364938701218753159710711711982798281587718873682476043438980959693217245689269191259677599898472907203114978446910915708678867103601779193631143286004484055929680794973493128159040579256514522013077816025560012986531092621428060749695473271371399627590781935179157858832164938587848997760002738725562483893634999760161217595554265808036589047140455774103873479955493908360941794156624358778925447317279871084372165063343419854619334263436743075384413942829119982697758073286390759507923616601186664724693735571646290751169878611343170673269869530788423927132562732105201072353198391847531575169441818730429841102020379713152890408860777615941795962578351780815162128930868085975750838071181977258095737419666162041824569766345948245158356488362050187911711254484954629137651443133062896900613815253537285965375076072088181074291302728246922858742578678256451616592721484624700907571569779311296596829159033356797522713990842379767788224798146693734981108858388077460269186136988867958399560348764986555653784587871575943451491049274676023231514650841634132846926268249908924424738679134650579003007343073200872015402250260175847432027865372706850845202486723770017225065369778274106971385031235003320811417315366597619998849336731428158148064364919957627363938981593306189626493329909048854698263731305464999171183935720699176983402495741297744386159021727897871410733049234029453478138970899745840308270487624041660931456329298958526667580302500603666584315431128551193689798934365410960220279257948196443665814502372069216350984364264112757858157155350822301909042009151794141346047283431362023956534347023374332683341070548432175971138080345361439331977430909631671073752324963729620309984998273059148385332484885927270454912559430360682972448721672341229692085153700455579289279362098109650893338801583663099470702986532943606989784531804238251322771837980881806697308013131747974504401148712007197421563003839019516360135105734499637470065770085174273377846720761589499316310412602679571289526023137442300276380390541167185276771657224835744130190652069514581552503102171853606723505942898597221083230228677889925004588293525819571243595403241165098093020300342678840106619819639490680436650320600612441317051766069501131657635109412703971710040075315524133479273081677429642736885341008429510789882329290707618981369904059887905856724551370148448789844138846219410403377608520668297482134174058386866587906337316584602436181119277029892052614474942008605995657221812755558996421128652759731586666120152067255793205546219536211551679301393814978700361547669387363811182162546092418683460067907861441442104557762044849996634407822919361968033472287606793246193923358737673155371963875198591932504768879661981993598254327413815720205238636921934074322584023800108539596902601955699670527476294294612132195543101328720019402215757924964308453228837757585856195423818322777542395335016951604830761224562976239053608054605538023329832959401715022991501859598311582599356940684357396793947307382966890979842157302204216159078300358127938258951204669600356127715720420394451613593049980781927002345776452535757452615235686648295992404402957212644162080863364543461461357576022872954340094381883548980263279050756133896944037979945876407072381734369118651305313706628606833388619665433223780045948406945753512312528383520826169432489294035019589114066441180319214566336002031067683264611453444248247653636308282428586662371936650980090435588544985026890953615927997899672497642495240679230349189438328958163896976037448333334524602677121521736177647098365020627062289242901858142997752057536280488051768799424099152183895809712803688871570457578733384963749884547511747617071185373924085040934963651173371578274988008639344439084339392093670191765586863571492646553699055335725105898797732590898735115182398989488394010798118367972632036468107217213607632231101356835007634322861891656150074024889381414069822284604192538400074345602962726570131867421591274605876444648485991245062321624306092480366137661492948499976651802766272329763742323091139021520777848189998425550494459175385591814937436503094097954299161251609294609559932045592714453319962218353307844119268287349712201114740962473172991796620260081400871742926988653753993342182320267479424951331958831690091636319325956237069674913219325732651034999808543943508564828042551867255080331070626773858459388660784021049530007729388411839704274354775835062885753879454880295212490240320983339338417483126518551207132818640223624301640998045714426221496238738754852845158697457758627823454339621952304752811269615946255152467411897898928409816470714058030179019915873860239882960844693510908667173287440738724302393607965853694652359784152917012474013273204443994169381277949313706968817630644869090413082270276085375848706811105193714640827090960699421234398071406391718484155723778477595105951875811791681564168837262107928833659263632325561938728944799823620372272127145290427237866706754782026643422433852136313654342865522335645323947987320807760530119665970239772339905533240450011168145252265685073384032985356247058352754370655514090158257385840393848486833469217796494112523261853369877052626102225380112044450499668485438632648962125902227138721012983234512221935835472624726650788692288743658993910819073657372099885894339162306048434750395723598016521377938406643219798359739761854425579274399394775658899442979738578812846967054095072273135519084703424040858429816144343119939790140881140285462613357972736998752648135099237817296567119419407738290024114220866699688836238238806119095131518535228354860552825303289790756735489685369342985617717548237011953631959498776569585369356668692445920853211387412864190152068001123914743169227404813160348942338837246102818609180705347937640307266047701343784246854037201238735734563732589576648532649280040969365198853525687393469087027696233766820949297125412419945483160090210931760924877561643055248757552749401375845232476683641109065021014340395200292199289103577789924037033025587287016857674519986878019229392400477921999074324863126562995174451761249115983529346966703268841149733346691285456388079495522099337288880291583530498728919085829871598494467586711757924139108472062397801604678941272422724674434743686271193835230794494719296815241221515047748392680360930614807437024243883614017515012372742406423312378162920752702897500478131419975305770987801354872660174089255732326168263723062736880448016658441414700032975681697244564895125579253430903455404565649272369256205483626446575668832910848768662140192503301271871149117370514493147146520676185458917387175969079825569806699151181043176390058071213080285545583617388835001135318347080331451287954139833393209170525445560200274213876445150311723555052679837902384335895672481914056258552760302507737022088906085328628719282369131107601025434207192736343617994389993192792640188880141246180372311163218226245588207283507775268525016608775848857861225474222233073416587628137510532631935352448716233884557410387733901023529275980520651850081539767444451547418627086172955491293473797942085689685979298267553199390823086725127097549657253407601618165143863009334103530276331183865780422284726365217768470245857121848413717529732910939263456909615701856382232213396232477636988179564351950212407988755814773141922713581588664568826746424445906044691975211118788696217446770615543283307474302733415010098834586549706144275050898942414537145718134283288569969665191112849161201959229886678766861154760000669316784387561809761308232953800952270615678552646098406783330015626907984170747745259385188235033110487118236880873307172687996009928443483564832564936060357154811791109808313677824148509062023884782097950715592869568427978427121428880147811536154450676920128990490979471842706583605077397678025301266949945158605076685491766942961592763297895311835916721719180874600297563332755593799260899749204788023830952022568916092177916125351157714471085076500003673461572603102746971090113536794426903512141217058119215981058907058888033012561498335699974426264906793286060364361885880069192800749893609570718858265735545022231784437381612798124863004425427872873419175846623128982637708071838984128256288229812736800940168812889382995103468886472384234742684167332034105864155854092460691755294291009876956607373751049280311692542194682300334803289159414691778914816428421764934413045895863735998137460220707161479713809514340952598253697020081478044530889659075974357576849814387193787447410566171778153224395680746396466117329956469640590187192664149662222541765765575901592074826906303482083174563007528568266728668553703291543268316326550446091116278721324678395777820349719862952582849328354580384074809197880540845537291728141032048308284800241368957111535810279603735311539538249657482966329606267997341147857658938585764970664039905280659725831805211457724036594005148483650059890782994365114669105981338136044117630566228573478607724505673145323944666744405862361323461257734412547955897947155752713265459920418063952931519254394232893024944526048087783880237957543399601325871961974789630636973400331162517770116339986964163749969710741143956550225735926530734989177200495350051462074090081707564425140704881957866059648241664221709919357885599614799775056720100415565914432362233742404197212559334064918158270791298445030248571357536952077205015846592888268595946467548506508956607305641339350414784122793884532391447108975038402169255806328660643632142251956795377292674528159897764825181749800265243707067030273792554300854889588239651759073244422116861947289692339523924506946546958912633298623081001425367780111429576942194956328008195596505450681896116706952090946266893352067729989898904407725200338556805954733695189149522042373680734940337318605896602592663090120099689492155031354049888157132978886610197382805823895691657888145393745695845803185559950828304903021412614031717972205395093181702158547630865945263576426404262622999139899017858319551164181528267672106882427573981645596047675318713770038792272339292571506097757476104713782613133545986303467208566208828762236725754985267242248598221369840265130573250923848797649272564057487437416117560453057345953279091770366871859697194495569442535441351415031328866040346936173036729431171757018839704907109110122954726811284365639181703934498457972845552335062320648416560225439746831489841265364771602566299098471427045133682679364798492441531373442210777559963833511010056011735875551239221078256027329550251305460070507649490798203430502924031254759527957535705611205621522362880221906442280851013980317382537884511665100575170997732605265164357088623983170614650488048016677874616598984462467034546623332914060415968120448787471996775794586576016247717321225084013077292478749584983625299211668349365142303982972279060751131972682787257596918950021866517994604187218292192262874609997208765033657580467167735837117284724015251861743353394380153747578904616840195108837504757684350010180349616069583510762598795378542640800541540680744387414980474153970628261608740676136161993068923070421131616291186083444875295431033827898849630905597693511218739931732222043715298668039853805870488293185561294594529867956150396857157206494460882560381303886935480601708187301412308050246849954582410466662088687668103615620286562077165857095227358922286033512091355793103704735263870476477738267079221080060817694675582870287277104050638638014811099998890655852665835153972192531841852995515967748727807958888055742588703785027666674952872701670028031599102108818158902613499226123843799384085713230554711482584588271464309795989005821551607857867154663776321354117070362626178770238681725942947063798502263711391346865804904343361359811421347549057426866361244404209844265371852395424507320698841018248693030399063111116595333980441588335228347887918200138984463584589306852917780780704456814695259547578014075811738364738940446996549519740680019199639546651090210664574477733150442819999766612486688135663211277243116022524937509142053390539421391913346478700157175792797213886166912657287719615673722093584206080947742189069493413724172439720328596588482289807937957300836040921320385565670642366875799899206400862652861343389439271054728751672086289324374940870167862354256049149862569909128176181453667815809693771892174359004946389437383447648815611879050898152801645547534698219547486683977225417103970300421961254461202369408894319605735212921799140967321415825061555497181908517654050522247412361634595921317475237593162550927868880893470018938299412009615795257691725970475415151232124530547548493284667159524987827091987605908315609857202554033131622259645325356291982230878768660314194602101308183527203863579454430101110813633894448125392447997862984699219136332060015566848649923031438005096105887820315625767827124439338817442870174446883863278914107625526528804643585569992635798831983275712430671709931617714513932013399276555110581411787669161104101888848616662874342780134556417179932252195546559335281923218980549912524254586167416996907669283427965986544326820097998333784108701097149432437864337963600122252685336392620903701878477057414193656481568969068525576698715190683008943584685183867420445189885403341768852207574406119950967171918329308369437013910670072872463156841295304894691352108166579997442920020331077471671860169170608355195993805402035373443877403124824963628119000467067079243194774716682801939226666555754108571892350764718612941759132456854207836083870599317160669068733618238730080829069366420311553952425447713411095744936926144660798533928792380374407668048241476270116543868411045761931935509669420824537531648509351314287829452873778031724840563519470689432552602348470263928362607138401220547358901664218743382360901861113730723836623747021681939712717803952209305534092883379056027365487863860224788887840259255995421382631531203878478530088121392213486925097280429292726949695552977416130462306102988036929685793267783724244024741048968035115724816407890766470394782953325219759559221442886314770081380531690615517851259767200886839397465507585911710343958863633647130599765051114205073873248764460419461880013025829901800776189859688759791627314667373440215350165577797663919777726825804469040658420375744322220975910905639363726809294239961885982607617907181425071111219517729193894727830523189570981149758753948291968219079824224866393422035983870944816951067787903087321203135184520969199518937518398848888724737675800588542644129367426725218985800243527035285035113822762859832102694917092260932269834075037689609982527399504011157442808448260473453993820923947655731907803294595429414691814658697025269632829854097114654381774743301336178154033586444961829254085038079625104176570819858080299368733835261777026945624741036507127114193953483938525368399543768111336581451644680240878208035940277530937979451470115801080624707891045625276090026825499088182066081172082315642847231940754167485327150243038242303430181583915765061003740218360172095150779841699021204049423237599108751641451400940554227819455692342988514550854373069061536843925495761131240291675585470373624624208773291170317192151513990061177854262652216832967267157505682938527727650450196700359708384626871493373725523761471093732160567699070347733606103260099090705913459019305035937107786591117078923679138572099218520757379589462673495242772837902681823208789557686930740153509777178291958036746732992736462364202830471663298977484410573412664704655433621332011695914132507218309562023825377847186553271546688516951374895825829253157516731300790246413384973854672945824107787275634175161386335455206945287928468147929567995499531794498109567058357814527902984473231397305516031531839042099129725236419627143816457332813484338318429788955629764672400152403255452343861965675856599346892454989734910352477184480859771442934230153456838814789069502030236513243670887281608150448724029064365431630522669890455431246492155047121830741699491877762423293673279397150313799274866877126356227573883454794634563927783983408099844902610314638615608933387649858217743145616512461352259301253537474486038420058641271603309301468174581103840428292681475331517927928400173426215760082638844374273746315129243632551877864771506389462774916883165591803346109610049973033935755416318525094822517505202126113614791290501304906640900313834433268899395520262392072315878496737387686787093473561723613045373314909655008596084005013098195936114742884694145666283196510579635004309460440707516391421402710789303751008874400918907024998459345769115518273566056196939382282235537821043615475788415146587428350627461345696082690158510607664161649117930205624358012750225347090415342142383641969613756398244332915923098980867917146667477313213894675772810213967182346350629814692830872950674289757508516129283085260689402439731781839649110426600670619418097087805320613176737658594083194868400266512358653427654273230617521750383421940654999325766080696795709711784904089905406993295732745537530341805845362411602257881690431333470835919211845885137506477841804918317469733010783887960043810229307216305405573483610775874749170925367675251119745260401258842637930732518153382153912736239004232488455094473912853147468829643764901759344258574217828511425567210532084261757184216239806531581652041363708030044673606060077003710874534260544756801879493565224837464063757897263205831030015954932808249284540760037145119623052508984811880964798838114327888721206882274573386238675632033707444828437727074991822896738090491740509884959297396647426792806196159837131983337180751215708407502295480774753595997817790560845951432245913161122453013688440580154012807909814220799996580010329512663170040529888998905177774858659990949784051471178249792253443699009787040448208607303464223899142186875698849023495950712645286809513651530071926471370140509301754298868716704361860705619687672652243916833617829597402458279493556269856490366342556162700170852556302760092507854756359689206943377485664337399386577721955949196961539147209408957838405391812140421174191845785911845340634218065730232109117481132253438156500473066040761744745215308197832461613409538620551256689489387143653115684357537911736976711488626084478878392600398914132665982600528240505962485923150025256656097463287682036369597342216948333206350829040011328453186952485694905312772147569118553380441718633831605911531526671970125914142026828815221546207660724634904645808621608134542608761500247583091616703746630707428835674335955896545951291093173701398872212551896261763476845428498758503757762531219100157444526290237620478753614547821295412190648477158784355225637940284945431266319859446797667445543887769577697892136698524555651710837066464822862458803411464460770759344877226226408142699155287312074150797782674735730696736205354850241499813415046483136156294991830119024538509666214103877622223656218634846761828144253953285026755541272668511832652527850802903075999644253625045989937664683717025374587488200752404770075584791750880265885169706398435952235424208304461001748152342511862040504939927327262375133150340821553526974717145784339561779935635958995437519611067746939316642123811700443623707423911013203207104149554232372516127708370009051312281714008408413159955492890903672132973604555144435150827616483863509257531834001700859545105420570728348689030557393647485345556720409412082870114157360418966130356439903332110107061474940244757764331824669049226393322394722990246692088550991254000428978545179034513297956554133593669096530527304463429812318132008993636296991001424129839207468907613955471795243670448495122308804225756238940605188696071442090996674065518913215969772757934903459905126869943246919787217745287622337445025719596004876529598372820884772217323386886922140489391065581705793655441034290410432538935210795546630509323572594660873306894322428268012976972617399111738357576759259442324176964224570379191405857366751167814359739068810721972632285820470899112800957758040494016227189548906687202904669778743289535817272299961575467756336982107475079977406056870340675482218874234543378113288113560700334495303244978733485610835294317902317964869317328367803706166477378700638510011304975597942740160977806051271309968707431180485167097746531731762269727272788186041672721466906909253425960186833156119913712379929354910187546919384421795229975908867582850417490021650065382169555273036515809820684363200083679606469000463933800065171288469296961904315182043997592502424011472452727169374688202058823319899454599001759022458989711563636584155780560251157813240134999362606343857213333756917409934029289092702016588988964377699550640791412493430874158902467248247858497959041406926432872237410728559008242220591628786672876719891591815130224847520255144164332499091865936441085902830117901129849833301812976915418139109613077283093301720761507513320709587684719405158263181274633224836068127027203428117693767204543995992825499070187526196621405170713321113573709088658470510773187651238350025800631399833300789738766010819765929419603411096488103362804933117012336558168879363327181764833531950777614118216205764934661511451862845476448030955203341285820485433426681253333693032336423444147077068057023693859593560091457041404887693871777326851018543893982356030493332711848601452535759246009027275624328918038816811462858133784564921013520782919826050185209758240070295828657633920930791472210398515156850254094258813421553783764440789970710836243045422142696350725758313642920035010305743932356406376439052563907484167646212235449156809208826486343112212755125793702043130085915127540408858396174510328507980694830476214122595826663093856053549469204321706247760709135487447586602223739382640615372973150450810170967066988333883740289616688593658097861358002860245344088626711459667285710167408845042990068359658850398504494803789287203748675091643310528405023715928021054088461772591257834277251302765819098980071524045341317766030693485804475655263830062036197308231516605257665315405549900407330288161960982158606391795150227936890824306822285765463165450026395452595878107334885388343464453281169487009234101704161307809975889595202414937965041512030818788719786105729119439309708822561652228539962035951223430558305472921539059737187424667930819452674764817898227271541251877272607392434098687550965592489317634285026207442592172345892414847632819473888702847053588538052903681014164543615271503718381994395546432041882170938585154016071813203204139962218018406501824865417622024225233362511212947531806885292028332073943339822030263067864470778180611805863602065967084823996518185988113478915725904647074992025549808488524214969617429317960195905805769420787057861628422745000078626238574789363169013438469151336780536144232491277963446419861439191152138670354954641917477581380139798817695977986861017633710167277496599155183652381169492305539259344341353713834619616396226589465654400865510450171812553059730247428184989749973274858472340650390177776350835475438182375537180347497933825325293852925178230172989576885309887274512435752910446624764524084171367235214592125953333775132004642233941598270227987899635159785242773484621014676314428353074900764891710239268302237070755090240463271019746792917309655184577953304037069051662281031614010767585593562276986142128893089157395099916286526958380781986563506730080919731484592447381421970379236821448463143375932510851336580339067681675069081269796357684159683713286476623130013071614232704054342929456432349990878403010723650973236401972785002601074829070063418247578993897647813845447578963949881513811740342707429705177167871846172779671854013431672303393236911434792833308951683212153131333385586332393156116658815080342182060401773019539038280105417964366187428396669013880354761691868379250122252194632640874841835781183761507597172099322552100850062859882338947627619273527922704470126551167144525427224671793766052154247391959378549308473800020544935771788464261470020533272493162134015435855097133225565684963803379835293360485705384104857128326306571876207294775916987458188947519408998718038047779063100783637388046526312887384599184563309156415823072571662569086523960342858802140734238399836344470162247059535184752420330517944972924330578056686372315908897612768959997133710759639029941399180671824291689002719103997265176611657351610911168427628499944302605249116722038380263629251306627224354882477264997961046061481338084702993821838801161713197279578385098111632630388935045566548169369492901946743509373058941640671936748462623785115549982210834704160852352126810364296791528561682692403582559189200695926678951837464375807142359222908492444405586114203220082211955439714979586752766936813685739798002977916749688035985502823155918832969052086426900259206507109552892218418489408519687155758826813770093176665847638141476551379324813207736249951711701047167815477345437948766567354240364814339294309084838718561161113747154505454735217787390782571166601202270975293183437588920746222893654651901327480931695650673637855303412466121821312831298734867490765477530616539496922844175392790010426834146153714329875354145946107204340994544652272888362212640749817814787935238521962659680823067687493385921438203503207865176309961259807533962692338756601605761083376550487913668858896182809156227430679786233769750876579295765440878964813378031769897323644477899119555807299769967611671359475363363654768375621767956366432223711357624714279068841840054273976336840603363726571681613153451618873033119870418278483346401289762783020543334073422053234658304468757889181929961111302046388710871604846595662557932547182968891717279561432185683398390029476361415631938291402588763862897164782552486663057028637440588785835709736895907300325001920307635162618952332808912907125397373768953192702019116656004223474415402351254389126606496428211332336421409394491150188018057970134044485656197403157038541294872327157729881016575600097170809945867468833728318251590673801968664127894788971036973624521238731463472982666382403492335513322570902643703761940795915065147491078740454508314713148602583672865482368011616401800931841235020934802202896668638433645293703187230229653280684078995202903816481471889872448454543289417794489001348954900641065433239200301668634514469422041235091213426270861947621403720259885534439405302728730416658754316741906790125301225303521906488220116486956367331663457292741852805845920133381202852740186692305277355803028871463483898821600968061716153828819303488488080254691604287413169739798914595747437464072509501389312025004086343705542103098950897469103096412187715075015249920242974057117288994527683222376275811355246846774682916140323238869352217153833228100730908255894947896548574784857616976885337469861561170557681752415801868478559482434888725833899421884943770145334618834272847037847762162321268445728771442066463984377903847318587054395004920338599115157605962704909496210095223641109509749162486155064889459150408025844000352462332611955114760836385446475480336998132254335036998887719458727923623064684742847012484038118813805717571317667166896441530055885266869909920116087523263236589224697555875331838618028446702464712786706000300398046319553059249045619049540803726415004261126500270729209528539063241431675096301406555619656311031249871308422959761332239760917944358320135721957423739907920801665133045374340855943835358302764793842692590912805939699248789185347641674717933724847542721719026018200260596819857519879067117648553141416004940751782481484410568479980490045251621486148140658241033042974253024215263297313945017685595207252276204279565589077774089055769369597358708617808418199721911244436414851840943104372521395049677857237443914090509517202244891126058583593430903692280722239725788272068076209523429974350720506998365629340946155757269808627713261501262114970497164062962317933461880300255471174380156944704796468968186264258514480571263266715297718248447045507453518148835553093655640028308460679299140813948309668908476797526126470476224762907160183518730537450998539348336795080859899912987877957838632771036053391151015478655784560414768206049190126840153202661269969960197105721253574608170630461378731644859129101988424048399272122080215257099226095024190706327019456929448462546989782621458927316901593759597332336232556788950749188867975108953843332443781448903335375654829344509794362648028378589862964745519145628382037353436624849618797904010019391592316294216883370608964186104911606779462464004009742621126373151680269358095466419072976306853096568845529343887743290490906892513609422079767772238468403873962664259375338867413717620029129630436827085890547319487016261461272648846426179212003961370534026148930858058698443304957243223072192323896584345357587189805273084292743058544011204916088382812173855285768381656254200537274127503878811041495535710157621141388311832191718646366772995959638378740361281640157352066067707323591102113250245124940627858950124688026919209254704139152165748486684397918551584382901603541922720084635008838639404157489325676535856060996226019244279945435292268184435147089466927613121802361606713336633969752174494678698431107611240918415632435627668147683258559073391262185019393838991313707826596034906409707192174981315698778540634444240429388480156284727588861414326413880192988928089145491010806272783586279155351021667580278495297297050411335694329992253039291295558996216349819569407390142986336583041179329340064751651940396565102707272506690974557185196340273299487394982323905058180630547030110816854183812043436221926037724761182038188937562438487339863062232395151287991316112318839179521165992563250302219114213641270624235902812344500472816341691728889048534444377492747304055355974755788506887615396522865163411131414462437855968737484961232163084924538848843773892779148264662635419138280930566518394924367345215794868663749247969368789466660174302033778101044915356724885276875950119503134239166650420932450933186993203946152202342758018991652223555176430604291173697219271665303314804457577146678087095290789193608590825316972678576193416279215219252558505748772180472500338089063418562378633676127066280223028907825532043315575686971639137294250071568750938653948389699872413137271591621748198009742959696888399455671925251219249772961737088648224600823578609338876724328178189406794530201749719162388401323265495162063752793875436963727675267341893766821118320026224810014788753335620282125002534984110590689089187150262732764270954329202663737969737290864453413544312195893153734809812183483228589304907762863569296933627656636486922276163983514802354597023807473397553250769937309273119202136052144749995158064595382033694295440815022128781007611214484687949212313265680467641016220465838029211662688439509370674278200873136843996932804342527189020896094242053032768973244381104513946660762264564233895598667209276713690767037104833166543154807829638142161336343170948612766463250286941665196121082711866236289438403976636928987447826308410142961394305606593391703143698247918893055256672985557669943880014613406786611357063820643365856023036644079125586201096437519752306523518488650728633954545086028391654689509686091703953883295627445920446329299596477239015379780455404540200174794528006652854609885420328538697705719815578638665350452531423640439908931848362995004180361774190151284157338571644233152675651610221291704823643741006914788590447604243044236075388457052377437232594581919332674156396230579288131950004527212615940100894491370659060279924377645633114318257334860647608255797265330843953389704504869787490070791302461203335306811542526431764071663649575518758316997195101497201203347111669754921218895380817561445740328883610672522968114428593672349871472776219676144634711847973518464516253647533528226168823859334618072103098096960862821337909019608962460924009043128443258555018857439346464938005449201613703616466866418873998504925951253783606019387336866397695035348451828023358856747769294650805084400036533918840088381394515889702631265885470075584292833704737053517732329378823964637330961553996100520398724590536072868652259611571700052821561819513436620409921089080847279511595606907411082851516928187288773271349403139113517799657838906471520766033174613429225274575772615140597609378234533742718960488447576293064134297288196958132188569437347562944784865699630765734812064385836358453878103735766480044286037370807475280591986632080318947148310784689903771935583214660660097008470824235768471752347402502975005163647036007136416216742956931766567704600015514691189909703161143332832101425452389642809397947429937056849715454594011431774972574650831805163010668519336842418800619065356960439288188093246112749110237415224985673449746108000076526312188354110085513949336937407388323003036794494423460234756253021135976174641989895403109186160133448051795897701487839644833506900395975055032525410408412549868366574278419779072814586878382974800624086571353637242674593894050274383221476726957467940651101862054083506466295764366402481347139511252956294043629442429500295012364994225636163404670268278129488936627255804152762501338791007373527962829572957566071002870778228707616255941878391167695685465387416638675131896970681656488941741360073612415478545396454539322908900534299398105800114498512806308482641629659720298518456434259577595114059086708581988272997637418770189586362837045275468033476341933798629562685792353016766076936318244716096232490243834959604550438199418941119400671541921828765297059828064893565479945260592505184158304049011368165557946298626538147299379258674676759207201329562211786010816463968305057014389306620936153476470846558423648038659909374178302005665620233304901202059574542873603064726256368341452239567454013381337658153853617945685767388648272333887918642018608505310121753358052577158936725246773940553082131749021538467780275961377027300853322244266954854039302749316826825096581162138500747103982153768431581939657739348110129398176734347361027454364381939128316776302321202280093448875633462506212595267414055474445363636334089327272696589337468580096674055523600364464632277397316024614251783203143167712500836796422371319363379489173777902147962818019680808432436494663964201798105091140239474983212315324609169454202101506134438545073966295942588845229987544463226645263744586336869780245209816318095927694443087040304491066519645605314820676381369255093158884144017852804356491218574410846224567159658927764768687890692033358678385287751077600407716968184109257367924507961590425085294388830441992441661001551225624211356235491727900386434342846366842438916892307266431854661429132042686591036822421494241324624597055645534681123794901424102906676876787994843206705691624570593793036790253026175362179494134526262185944461596598010064762086491919891290394711013305610789599613156232267623887890313728422793758897336607239426344281910651960507061411383741120569654316616227259411212202118935212773689584848923294680029139938315722319470634307239631886985676951286132918594954709941299517864420232617763508596280258603373864661344107196445752080539554487581733464548003294317169331935124996545322260564380252617371371203472166636954245665282395286933406549633301379939234176397538946952915486343459602769334306816313693886869986595473304436137872617818669291493393434070136157804742650180333193254541539798688073841050387179740710234641033515035014349980268870875791376897278834781858989422398872896384178151486686800072776754312730879090763334417951005479210167389508331693657218471112767353939112203335240884282174869042618507726432766184277073671882152346041226279212230038690612846383950013901355474687804747615081435211952880257024322374605751137328171020487392814286222983702695643340075824725985318665664278623520486635391341409062441122960443044181579021713024184910085475351698862185255665258021951814641764797163100584915153150081152477095464004074596965977732940988923596980252697451490378096361104760700175405931909682751009620430516095935978066041504443082029321292442734607850260995208249186989948562744873168106609405967795853502630515139160225314564367592900049666579538928685064215621355097596128022879868264826421121200403207232535862647474368292861870384854943498749176572887516824668514320953636491044355290052146996956665125644606362050527477181694083426624776403998602404503177767619328961256007405876173951729128116302501101386751384011912144232776875998337057964907438501139418857084704431154405271382674096711133136247413949794986404679198343031309783215266188984802800944226681311927436021631855521870135572275999998208930840741462064924824173408971356220281273743472681761105048990174223385177609554218778942097355234004203719612886113224511400371136754299864117014697042369274337625488207251864129767155803268651119148356219344064851664145619980125663142704081296419620116237380375370910114191471866798007053239530917106060024514164043597504090205070364394228398577129494348148172839023155240701303357339480361684012598753082853190018883635523252087618351048021975429712808167249896786199804488357419079711209088836968128604503058017692131315588606922975930156743705976724404793524112305008451388322925999884318452490542503932741218808565913815237225737240922571666159969748085340981765513242817948209621093368818564777617500786237845712556797610708175990717261305178303681451100070427219352117098467592435514130292782579986950495110083288452695404182992270757887196755520604472707265117363823881626240004272515494196061874577247194250551709826075572349556274105691013195005469235255579395800321613196582860767129720574397179184008359410431643699888629212952240915599124893091138258184526940672038991025365997689024886531959559826263356041525310396811282446296346729096220742015948492205935404897858107281188516323643723634288674257062615561153293067683098268680062161160182880809793818702082591837994718933879006755943600133861161426547577649513421629442464749704327027176063812002487554805634252553534885493390684587350565306704227008208457887878421203856261347162495194913060518111874502648404049030088922965031119875807022301686744415637424840488796557492233205075119955579090225521258640104234994706174951024934202126372302838252178583426893042173045393322916916213657250397142696287805543677832250872228919466028199310164840786576914536186272547284552896433150205249848815669458516410915889959166710834985565669173625956598513169422570270847102782777844883031557672232320666839292869142861454980114758944236730701666246808956459479217105454814010872379389019774826061398427839687374230134543226882792309148483782132494741540764738077363572392050268801939899932061650038471805004536212307741043703220934629448055416716675300416961405682189665250316555850876194971912728496545359894847937723981527604683376518980970389258919001629860092992822274218014818898238983055299242789931439338457430107184086416811464851689707030209073426011850165599915186583709594574681243895053112999396391487273497979367919979841493193949873798283480150128973480582418456781674382682039262617550646969579168592004564516462823552197713377436718780931559708162123876373830007901507484922703338703123687929794338393008757835674088769108101938063561259466984062335555467779511551680962583659791573954365311432655838915246201810437168638317674150031675470329533562646724348856266119128482464177392833709886432665838119992066091769354878381760364317246702410467979178973545562845095849323213615863521041902980707502251029475193932058041391944879692043345632957547331655567923052177178661133701899232201824422813094682219256577652393270219573470179505069769516829272646620693806692876282962233211409918344888468920690846746879087491324249255788581754053557723280433377668086858332381252052182995157751479185104843212992019808936672675924164543994907999408438556219862666179059579989380977921950447462861203301645480125087777579734549212501703582460889824784949054887592333213630193484692337481905781033962017063177551780859971758096486598244075533012924301595955127358669642089818722025717225183793027818735099865501393814669059548220601154592478699842661149417133816127652376712205500570891205972894612939103750901137204399267892923027871954859539249564347775093507924843178048625309770748846164835929705647700194162091713468180188064558968934652755903114216555066671950514883564102183495814407706744388026730782348323538795899917287048575664478421102360101979143432962470330716808958328504265674210340932695569683338252303773207487851388640667216641091835067109555084176145552079463465858436609641489309316326672452005831076238401230144980233049688180753074586573449626643277450321910080775565910544199647681028850036997414696895429481011983503067625107078738954514233044709142004301721730631741149325744705183457848258346075828715215326547575874144876187403593310875023487289407330819190311457589587490565277199362223832626687716778991063536324590748497376596518326833401137139829128017995103753111026395357062972160194778896471468546826959661802078404860569946901098446177638303652555399870820760364968095437512577022566599590490773137796956250026639373262497371610158759911433819463198232311796156269886408106669367656696537631203363063968203908937283897904150980929491417379342332737353020319956581088182969192466798772972134565576773839486551984310607576873669831790805722953877536040355355722928737966397452284584056213170318842197262758318369500389849417427335693143859566881675709370537722711264634865486384928546522490415026499739361338863231769925921975872710731192668094137731015364870827380970867296880978517057265723673407181440106853998345935992739327689184014955297165258936693435212279579494101080012605597992075161376293705088370304469890284223292607343836667648532533925327040398820387384046004153584743843460801561717697674135620214299035223537622108328511204786844998261747437940290916162349990685842541903012886273444409768422388002345916959720785487121928170908672672830197600981420913290994793384719658796315145995464972578473351712625155135081811005131179812481620020190111941584114753859132316176630697439890794654390894448579666459711435414275562072997368361019905014266275056400253197627399155956404996637453579076375938338829029264974767583974537844435791477729880298792388742827732875585440216423112578269850904842082117549737850200653813592256968751133025611074840474097640153759142397773304834986792446493643896850423010505512416648362511842138182994444570444445308552105872810864273029548248063305393139046453367336591610974426639694444081021475759804583383918006682586147258911246559281709703556677586298138351034852046231979889516744002338903013891046878601915163388035847032435787567475729609872944380544987955126474814407856135089529728709147699344444958670159303413978850062018811911877200082138044940875927885514546186284857483313397285152376596379484352297378352118923668938082934733194578608918070932755547151904150763023980138699297934840074085019857564719233915031570937273996410407131217659181538578942864645748338838339341731201793416679374155364301014343783024049435903051878869327834400616906470991062462554250509089599078255934993164047009431644961322863617079508799143945538364965000678213708646198619751066253392441156493876575791192562906417385814747321437774052638146478020457766354918469904452754431375205305567329448394106370372662336096939070272350903214434883532617171543174389580081620500295598442604441729134355052558018123838320214031065787926959256620637001339190055884516916793626118340057658897218155080079087429786127137590960540169096815790549613307495040871630020558937127845537207186238816957344412837827994471101850985211431063602958287270805752414204962708955791932753868354822397296832742561061646126145216369996978846729094729075972416985354038960818865175769431465991014443656321716233979999365017045107028045956842597367343638257301285983281381730257018383090818345037052611911687667876755197872701046619397824492038241026556597647650850485518384541730696831924939808233122283195596311250516188876980836660143407503686973240319670044247032521840962732300369375490839124731257329680843753314601606861977992201658952973214078218635650423792145978363978954886966410623300372807818297666409657069747677136480904263350162481111018299209485078224556349464350743573024757986641574268803272300360969338330873419535718460321686526224652213318067758772238004820029265858886761725500175505437118325866255962932441906861535641443766404574162484064059725242604456984448371862206543868996790398407830294576958481327280189736335633900004441975326482901026636003661810615870213293783436261703561783633590360085217016336142559050809107669859894253531835638962986860470462529857417364335479411417328085304285878113405805102188777188239858801415582882445012737758688571334769606619517925672690283779536605763874338704333265952190158339194057591467428200683776563600825364773672794668481545053551593807231492186533061704289249028423008769522826253871445999246561062829799015766573799571956636279298324961654875578413795315653931434850511179895517195861133451142366070366513631617764197158195535330908275663708854093072051711681020005054170333904304247964842061196582505159795031517669875461558692144933360462872662694680956576294782727034453370070912741209236173551181934142039119925236995103419605171058621472133204520364901353373274344609100408677750134741287820435660538712587434268741496689591966442194787985843070271044251600046387125894018767606670471468303240469208574373837529806377195996478633483747631997992944338528864832599997131126846574645195589293220397052037539867047291751762396133231085983255762461242985161708329469196209514813345282229244431611729648667445464118591520544533340802518759149849009039700519198952331466704232622509247640268196805788887609522431301796453356835043174827409265874546687890096195499804459571891019870042621873410557023413802815096210296370847001970503525772249997978123392187106180534026179662226019060197993026595431838501029076887331676724858924466526506640057572456484795839219645415391007242370458682922872899325838609250384432495658946675328201684102878194050929203042056826142043845176793374737649775613181461483310814635926764993181715750393351772333498352372735305497989600018327057768312292675371257619682008342915664116457725979061085840602990523644961609002584985828349940248648633630869682244566115508474907731831460926268970048427961122918796508435828099332911796640307408480162493676162016853420809931892670180379622681546492245213032472979933636015629154003796161820950663120395511959620332185452576277736629080070163956259116059668433536242392054320374257821832902603066839928725842952924997920405272758350009146897974838588980567939377925884432903898704219088039522836553988288364123086262598374431141695113909255052032663537199834761586277877491304406124220197595716376071165839362235186959653672602777857442991390232982780675155862236443250064646866688260907338927775477967742175480819114236692064828174102674518342202050194391174959840706223691843414360547661464142251463789991287047643014987637678548416051889311218884184836441029114856992210608598426036189037984118021540436407088429725606158060085555078758939214538694855466294482813205933534024699647051281147851377149268722544141086348180566300208131143956122796818597447952131481214876838431807906218380969786769897168488652556185820784257329227690667198037163812517324545080561854253162462431642525222203268058904459743830688956337969156688597318119152352937030408261500112417377021522403801530035522825905759417628422827540505831330898174114042037178257775214717826067522119017707852622029798212541665926020083862436478865420456752829714417468577874933308032992423966073746359207231142505242648301994292212922276109373839907669947176015205346160423007985720067045097041575608302690138526969302828278941507456108306142795451235730723097084251686775219998994654293746714305596876779902415868574682001608937940236555755705466776506859838868568154526892122102846674637217275781483953552951511285051313374495694184706713070809614290822822228740195626889019593519561988479924995713601064336009988319165113590078523222481639287977635463357613316915972050115443036761075555553353066019820995912775202966022126510927557480813470511205258347024854459341462677853405244118845394227740331368525162524009366003506788291891025319694830461859198772940921795858790525121123273377176392437896021169209544641203985918895660306280328650713574330812005416072477415200408174204326131006451747779381689398079783735266815829924677941255834150586880568948459124995556563313524798840913993504199833820296143155747544450123958526930955184781482223374204581587498166189522558930448176255130013330180109538812698092795257754850381007404630560349316223786507322560175907672185587218093774440309191795327301032679930395748772187456330846315562671750610296637698358759425189812490562907939488015801794153500346053211384412133179589352090384854491423973587163779113106143826673977903340036573889510554730715719170865708558471105922444564569454764483538661348039408016824373530921162794808515653564308942700937433419743279240867674271705928202786495562296329140757312940952454516566403009150026381004193926065459668598858928480841470742663160475798579395326274632037482119724077163710169672134238900396565840518283079242481693441803517682726288569862783911533466711078022299503995840709417376327725978623219479767000414801189244238714347105532116181007965704757382548105396313015245736762295702383074795636341255076477595617722178762284597095689818279779376152836961539313319904070531724489518174888943173450302446709744876532731382107663515643105340987970535576391891004982580609355154821222066517827704604534536390123906849771755581208302365443288642566981039552593354241976467661601728467386238655601870043624277328130596467300140122133231119674475070719071779764644233824754609212114314346096992668022189751215911648937355631918446334662140153622989752572653116194843126217355432951198632542824150016314187109073116120758843440526847730942799299198376676470058976267050323874804555861864760627144671644404333301064020448719322989227611188157391159850874653920723330316946225915892844337441850007752992637656222780639878502236765709829932763123532012945860340579268986051588187039329618990470155287445063168842416547553673883699719103115642439612914409915899910456680842323156137747066616262819243107416218554238918495661482129120385296766963225358345972934493709984333881271724560200676594392015330187061635226867064675407098656042714236674573051075054323372285166416875089695795510650608832142700610522399392155142422750547258250809304793662063701660257308244158780538118872896013225903205337349152787700461156746173217294868777789576919692081801298654304928798164030254203919533564488638930460436064078368351189582977224990074135598611503427820443906091408866749485214855077010856517090659264974871652740831155310666591185558116014353232326418915673643722061451384893299310458516843149243606455512278022480918276358484929365067719029503377791356144855950135954368086758707624678701947362762675410082097572741493681574657443089024418232362963747646491981743774595236649323174111623204214578682263326574544603265290945038397440157129848430448702876876160690595799078243944861300253391250690366918806240727307540363230849028696277264277240935249687097553405493060860004588102554505685452437787220749532279296996838623599303830577000544626099130980468878283140974362889505676479369270944412590438464625150187176771232818310921509875686638770581220420106336553512500850015937490579404079701477897733986366835364708033466254537026549306440689923827279949170124908984988027727086065210419391683777763325568131030156702215244621342514826491367453930312030355532433943645876013030765620787296495679193261828311616493981801146820347248509467853081178606878758599543829794232367362174075139932020358197648829368429074855385085665607021590776588513205405283010801722244091149989421282374448047091447858290690220927730264228789079386174694451967363385936188089469621291272648145433202782013454836303855262375371768053279614076173715313336242284418699791540967101862983041210119035307516343039351613348141511030086512191447742910796726978944725924915131213860005114390208533786773343424074595512154905122432681205031337202556477439320753658981395524237046401306366268254328780518849233680017591249047809047369356533604767967147092800138697732512377740133595620092978029695301486829755423545919398230718827910123405462235488676272695902827486508224853177285940391770825685792243477140990588895911395525700092031011316955459825603160484378828520521576177087661912167395552083244751604707412652349791043494887547560656804854291678185300635811596509825265581892645405352456061408508914115473642655264423759166554275037834140979307890120423192739369733637653677215420169984335011747314108808799769116659752774801164673064482107229834705967396813293512539449517365125349863957212457658366557969717128467490508571324781708253237121782389878256996094211010715196525026114104045559411867781670309223774160451354080242333525058531899256067050287662868983836763939070752406179012369822340827845457871779569357221151390756627949889338969768165674644117534051557174889103700169281601259293519982769554596106197523435747889006561142296064426667967882325567108106654191486927406365773922031137132919854022224076250942465470906129518295902296122220124342279303534330258627224354610770761850016202109261661343731144116549438381090642048776828901329512266298251406115248198481358630892041345103648903644792994854087143699740173736735050120612604012377929337711546402532085403065826699959271837127945490165990747063309419192622653640630694486806874880183435425438796720292222764587249846049971742744312599099367283606525918762370376196836248954886737007902906240642183494871191734856744020484156137617985604787710839020903225060538714804968041370970045839985756649229673156592716621584879964431764607303052372215507976849501274755586948270558397002948221568486356314919011376215599901981974645566482565018510399689985235008878762495035900712807161928835043643488263707028089205294237749305504127716702688694664897076665574127746602180988530393001746310700927367881831283740794573918342552761198235163246691880570122437759313068416352232613408648569168845459619998980904831726845935093128342222034211717970765027447036930687505161647464676643623984723419536659239741160627153677875821234380487917614795209388094231835705604041462130270953537957329856403672888591433609813450967063574202398069838694303606570631576936128808466747018360960036607594751533320595004009701039912029970309614227177983249455118591667319323628051552260213281397947627517578570679948566065415696715080223406272892635146253869239771785825896310021826063232213685646534968390979379436099599447279075672657569231521782057178238527190736938005428117519161625547478288957739684393943350145342124233990891015972909587205936464939843809710047531444152174454294885785336390177287690308666382015916565866346005478134973051906600223277845696961578664212180002758557345189245757042900655518296433999794069149534865359283121688074417816947903876686463959527961277880843137817401419355771149682387503293307053475419349385862364737192897493478828887281511006161660920522231816956961304074009792513805594289941226033952750517936314097565148737233509375306992457198020387547536029925126042535096882028220071744923245407928846343294015680143418904649769201350918225479204069946845694343724798714670150898963821858432138806143774519556514225133274902197137359008761212847890063824749646917555043161510857665483270815560028375825183544873569804820965918049079895709873897372175764823274521206846925031506503389712696506098543757872589368174738689705877345733731400030488656863076405523100047292374190712688356897795317647466174485498235409987739849183865472933524999526857175980147486338724641537697352106705188243027748374978767542639271879136672186744829270833499118159321745414788773314239754528366256006734865241176658876923826083892436416581072490486905455871651204942728237119836696151732878894509774361974565703758689429704277990421525268477856288504441296157851614928430340050949749606643768476575232629155009845480792051665600414494556550818955068822666501369190610174536405106481973415649799029851747488981698089718587417612624907353275356417927733033341848932826800299661748864990923818455368093635550519213991117376857224188449664112250077949153876826897514974261038438083358535423688618360403125066584823733655726342264652120040433128196739415939503178989088935782064784001253902660643540499420098073035070055514099859440537686705761928737593217522445361621127178829115374191192518509774533670877724585675640297244345131500972163705574527679385763343548403089793994122428747740564082195964696129196490674648180681334447370686762975079195737816206653528094046863904527768760495700674733581147885413490148346808988424217327442560815345929325406811575417394670532078370159661316925879707558965546356252720358561774237971367112212598336094106207805220749935799477319311666309312107900371387191802098628854614785675954853663964749146041072706868569936055086432919377517364567604552620994555439054256951797454137476860626312806937305091215420352931794234470522004347808180864146428488036375280407454032021738390942071232855210163076254962835312286191790038039529652961811708583289187840514294588874191814881787335416672080221031871509598342946929360974782052598178828944856123423445209889846832674168922855546681246249024951038654924864716538628569313679319891228472088043406994615748080313744858260407193852603793456393762732992633603767845483799713844458424579367055818431231309768546579763691999986651158616279620346298088625867500005727218903496507381023107495400920145465880049003632217916231395746166434212451944598349649023125824046259695825322268484372008007762933929325030170154601546681307089610374082660195448671161344014839500902715950410117717734598396368580597983404320414595842851263214542328580910958711212505259879569073453331342829258298927032361377773639514449314644003490471172073243688248981482705682596418939359892389468656497370198669838244275072782089885561263931588244414069208139297554059820217831255416934463224051972649776429902712057916980586787594748337354316697320301351160826050898918236344131623509773099386276187376726160596432468265041121630588549346140319314615124184167401353795647832122022427592716645417266802259608938039937618171784796615084537206551296408778822970139211133515336815575017206880506269706037949151890426104692566642552630379717500809585451858190026967341140354210527974371979058144426192385869741161875591264757752343444478033888887054053207922187742193812876746670665579328871434242246637760221280765074305098158636509004823100113696434884344207455705573810973836487799104676672953451295820422908704245197661091745339804017189964598163810238162573114504886958771543351624673765641982754711386745005658771644315911819559510566157783240975819791162966484318794711508148739402624846567584559481263293428258397090676822106751575379661229469810839633315658583095825784956855952719065049571917423319466535911528301222976657868792959819361394605515859154224941958278873003356540858580290397590221599021068768663412523236364954365928861227464276698779748141084831209327889980897585065610112795800235776822712141013847713371657199983467769875744622235499697964055067714209214077403544038623637247161757588478706823789028541806936549917894650232688816771592352075047615518785930819797082517561032990293401614515968113906964443673693256736659044750164179606401577885078992841452600140411497635355502133371179013664831923322494523187934886573969906995367715396117443894137159805322120566004516430989311474088073975922462715876676794042079895731074651138480465694285200983722485366462317564464612715084260871459556568823929698827534724138797796384392192422790368145713595744582184920500269093440894416174526064435221230160083442340706485838364870586786259420888558306674008694769502578615007259364904280109613290342382798654910728328702237021182421199145975797980520996889736436216561329944259625979004979831500895692085631633540090961090484270086752349490434456612964910925270225367886938841341125822853145039727198625494662804276188936474977389673477634343926828010982412309084986391334780294404478266095440337662943408819268449697268438433662795100442081634705207102977823716124199850380091949474137338854462674068197712698748629815483709290060463664205194106963096655906418161558140705373784728916144155176906774663237531179757050436894472095388391521287260268050898028562477281768131348485773623008201498377189765251729218575792276828694291625747380671397494431597711500611680149673664690725074703481817649788489468691005252422777971099679549257527723517503840532400259530661503416148562905186107029063850622409197261954405364077864091791388847349851590976969412581015978034740785525108990720394390819255234917167316614497996073262496687040393344508990064836016299437912191933909633827447711661367861542992959445999089977196412640071565628934413592868607987138825920117779105515893414826294603867806497024940888402497775191726119419542763633911290137112032370000149693364125575964172126327114052695060601392017178059732227683276640371531651972337740634183517735000624427783044142538133731748421223935655123059737972189805682650800147932647160211605522583283892724940198468498500478318912218188730058708671762924175344158494074970703809646400561979417758035255511167090769703230779021949510763283112833362294985765521720744220437261457275842509248471121162713580539586257578895530025975415667137808544983661248683595127365352970460606841937010089975752492050358518787484768389459746195319818610046498788578485997576696113951916624987666705131638591361761779668372342745460702887204483313349501692473132272755364455586251790067944558714523968908313409491966743910113174580293525597392812513399906839512924052241314290033578732698510544602377422872994882627355023525461876414877890592164056155889692229310463090340967209854773153220571048346747211225977958054943553152268603274366045417820535689054825342312464249282418306971883056136469762397059754750943377511616965554374679129294491714180222480586937833530613723951695300970550394095397065270666270743628322900988202838101481109349517109187321172020256985740250816501023863073615101361872674141670086880454043298551168690133411369045901999617439344553370499282477847276673222167638709443235789355376355334610498559621684779960309628549217309782901228068037343879852986175085483049711705180345134681313948474228686658916187787371211941853282754608357406642075490944538127746193526251463650144472995950582725510103626819034848504055617502356408930171249040536542469739200488084470170849593640387212257147174155366379053551935033400440989965606304376244469856641756134159731966117439813180073334926953404400418452744037715025393039931424780923519477471099198935902012424894665651904932632453084208556455207194346703465828702489096200720828261833073354216456115601370001427370381091442624049918084037810093697455193651760163075934454607394638030552004909617130405063682196731670473298120240498739385911207025433418409942334798948489186681256342223919255801317272515157858214302559059953899035940575417981086577245452572442480631990745337213340194999569027034292366506364315887412026317930704042597779764869970474433800421674178072461750261220972714657626460333763800132335558005762441144299198744582111145916504096197694248897124874394046673700835164263997550078301980318635555546313098275246105881914218264053284345725686802112138079693649430258982633250924492253850806922337284648942932028991317378555969212454821032702379534600076012591434714690949935754023130798789933174737009706980320163979298695817539016550312867662290068470766897831091861228989508666578206920470053710562213447433545882390538296284870001372941003219911157225245043346600066336772580757548370743718324110538116857863268394507343485430886152240131698607451572083118669876356193244799123262503915039365798746186655879370837722499301798131028305216583771909239974328908925921753896960504140718254726915615073332179501410707277414504780951863613982811659668744362839308658188012365291280073983089633499807039319721990414239481037428993581439089386744325814853761462730585408883171831346639953464901432768417973914160585979444070612756771937837818855431490366131452132636295849208186721420753892065709027576457315385271302216426578260346027253851636926699347950324930026823264336029437458691849220051596334874183959688719127786860922689203794350598871487321490153548214476904745178852139544658903675847809703904082406082022367935585782330792240351385998512025865478149130774404730903523095671271075988741977248101385273231729719565620144865396101987874260791162898835248323660551008978353678168820372534088488406564231813676689440613302418287949712904292528449726676655179986811411834616947100253846414752404127029854789368272776839829490289646656473562341454581440210134489034211890066262174868052509871849781337777290951272355075981756776613254211998236718353215366710133754062180541122575162294949085662500149258307249080452056878732096056071587956724217576277819794482331378556480571122280693795120936454967165172953618467183301786905574449628059003370481437098753294155035687918529601624070147851078688395529299616856196263288886877768505629779505771638293725098886428627073988136575468990333704407640435984805115891709561949040181849687325432582010089878314683614546794761045981415747605606067947041557293981353354675746656777548179343631311275712925190469793290228914425855031436326801525921202630549932186042215866068050601299401160161225140314878163740613117260716677777126265338821949729209123963163312744442342598437911155438736571315205055222165114027921685849159529975779612929866851781023943766807082761751682005007729665368823058454515785041959696863714585860755183023310073364082766649641238328576062030214763049062837428401379716036831663019717020281468784647301910451944187900893488075547080665683871014568882312860943962859543078554413025567355811692140946290936785984201920874384555605125466769050860079943951821071933053798194695320295151713716195830709944150928816979978455514781599113495031782217808672262356776161489349619581579049743956512716774845905838654254483724497911914136674937761907692057335334963510088269275035461223596295484504454493660380727146211835600951231764571656353329031739684143702251313944959811483030584743238407452491813018444069173410019175156528597232239753827248763114596580106257964712869283986658816733120446168904980422575618217721121620014416837818646454494806617195879634878183178957921682986215638110984540661559928267932479914892957485557947174948302583801124283558647416829955042438960724570031078622158943636198592100544141651475799932786988103486968585255197870738757964666670514450460546144045862638422867763117968870597012884792696396793402521238279180140866178225538568307779250611698997087280039946564713615433035349819138364515631619690252760246152582431769504735841047270103642187331272304130006274706343016283062435911712847807873123436678531507359032209204605870620733608389867838071756083170140647576555471894484128522502542764548145153888873539335222724517201765024081847743135886049806996062512692965928136782353447909733229752264330637570749855183616997981597129560521485609198623175131445330551589714541826210387840202797151069446471679370140916599434880330360842050287476390333614481522040009126368067734470610579371626266618520829208350022213606594930125611932866093606708065082561860061160995485242477661078356297785436504179537742859700202153451469679848923175529555373118516542599389228426183487363968051332191902739797241898359666776468306135011098062474519102466988935972268945945407182661628762931232879689197970591495849595178440076174588138708211409979855980556017307835445955737754083436642263598731754207190370788097895634566793033740478114567014152184706717021482925484342865269652651585329109126544382182361828466675014855013475052025599145653012324680929577889646699653159266469973218416330128304445507374533071878671924528587306964571249638689050997787571966818720730139932278230553039204440057088881088234253551029085643036888361124023533370807476470899965535546097552101190002889740680949615741854808154626820298308462544787289940733779248324711740590587808057898928698608812534396215109662295702651471960809282503729423561534362053796466285445673492482993369715269567908512103591073731228378742622512185939190341067363107408543494755846465435832235373686265009952130948096660528383718725990612820012749492261338159610313656256861556316474963340420711641019038715102916935393361147737589257120415694463692194592657049749671953001773377713040152328106058050442800904515075936518196525629291716318779649630135557798585198995812035734446243397057267749158576333889467157523920797054391725365928960097190040138725586554781417737370803361035668281122990550740277704336340596262083150690463145002836666978922722369786391480501368040205827260117589078142705865205827028295724855563953965968593249908162544104837663219872121133833196976275878739026608143069158803845198002362884414931258947004430014842810105953813462600207892132171559858447368068938679850326055090717066869535345392899863171635945602219245705923960307764110694159071136827863754221917536264504302409205283884826591523672303285618749336445821974594229413278368497515130707067898584854713593310726741341793093497457927700765236549311568739663472280213736009242081654002299807376735653374911496417782738058307655612678248953000711520568979376370806024436063188701993300662350249554874709458639002544671173655373319479061016680621339771747297019559099745956852856685783455632716551695390227169140650025125831304223696248821243007994065586948268696601267311647202214383297550244399885654839174570995671207501669844981861562591394928924729398220620539244805593782848625610655774311842764670474793935563127539328231846040281414694013149660894223794840276083147847603303984784914821002862604533021769289657928486771538704431940003661792789558369000980530350214160700940077846334144572118145214062668510510307398373866790336512699711826868588567037355828465159668201776189935831372903052347614509426135299716091305785699707608311213324916152878134466011426290259395429310086535379327531406791716028793220354090978220138656607946042427617133429325579924570236241317094517155698642022478293531563293102437419985672079215621039775602495005276201583020322410055803071718573861240351998901809106742900139141681153859333622134564678798296376182431526684631505311575319246349725296882302348071773743113211890763529826963134078632029440159096685672911720807160021647634111834489965401863109997974950536026451552360812186515521737693690493632596841956801270327276959933901489549569955298736202882456913054803491704309149165312564242305326446830415610058484804766576967990660472273230583872562707610259974101132116175538578706029367265889886584985861590533586577543889531226258162075729787660712111010709792369057093674085649791297378330729399581416029593037920099205561309636153483420783116271174903397118035676857883786280414577699829376887829985268141497638098740030675583955538288967928915751967813344196570082732065323165786779826773912605205155598364924209579687317902572558595265040102987289409876747533457862459473671531046561305855049323904543707967586232318862513434621901332387654606235953196881312758964458121085632106660741870843975769867224196869647091674035257172317019329251548276707855922310432201988313290062433878018065184258067938569671153902024260013342959426905772056047680250023715686453430299545357236214308661330784792404380887630725255988791322638196041056635473721879156867998723525693336956445039244789006944312133931203127260152939670475907204550632228764150306736346461433111523192112506894241826747764901424978576114488414565677834342225335330467220025729602573018569889452174809301416057255501568380347335767784565637484365492634521187100944782512373620520523596228510047652481449464709309598247950842223199324048674973419698642939924333000856979676984623617619095350532344493647592921042907198597562886205739248399888640725180997018220547279257299660920699346862088895813117481557043641720214181964696465646842150485628599299812157348614370982139991357208852540982203562404311016636548331202335590400391979276909974711096582750972996641931949926182280784695083729153946928919082126511259726308796881437462805330051057388014698777448947839273503551248742244837061319673654695469512002673233861512746086477786769316451975234723566210038397386804750238232106889993472489923465149727125232555974392449110228537323388177277069411013376976477352749933792861502322537753089432063219001974682640857156435946600254463794604235815658415393822040087468392374559212691650448341358958740414510450308763575590777524870375865224078601328282195117401597607513514146956653448789014746736902832764585117239218674147241018551013940971499603423278451902606821615893600983553868157116281425938299757459264936493454527852839889629526755555966650265301440872990381243911138090600898971929397911110428063016137910673797007732770747161354045668203590954398390635576277857028891723985820425795622688012098841128070557934167333239181860967583278565296704481775698529157580797015393131211186042205279586764518768009888864109323625550021090495214285891457450313927442660000385135693418068848610737347716571943081628906941812106408366411279386742172464351444519847567323590984470476089369681429950601914115249859998826099953976189136337059642820309579665250732374225288155830284102442490816186624971413490179347594814863277880044580493593966424197325097570928621068784818657642325717225329804808703812197716522334078347331260902400099376773910365248853589387898209060043647519931797540024122837005141801447856071764926164409052242697388161557356929863927752826944436719826544969879689144588296233491097336582869377226565323420779067095342972677615448205760012058342840134648393617397773977993206309710989056083987870437178008221079629647097861290521972165784066443052871703596240370113379289836363281379712199868714227262386710161552210278826788567622722371868975636550559222544707292399473705430696205935405707706444666408100919177025441672728296247065967032555044667645353102654427557959453499947849909414355321517079783099762396667918404148657407721476044873244303324710510071829895049249997074944450105152997694699290546769357340671978468017734894840674599259710252214890173937184043464353808643363371766902235412705920119944594519857462705141497617919191067253646318550900988081868722624229045175629049360335917448863231660555949706971013336130555737471758341213915985073217397192271655998111388720594023877491116689401460815521617909168734212776259379944999330553156526726311845941393612961320679253693171350885179835210504838800551520658458707778994126701681391378220128817499622451527082805868158601339942581101515980828014541362467211604842168554732627634323639694833806598419986912539739897737225874738062264298401243978832122235260092738723819902919829329844819561340409343390503075583998680886071164615751170914175964629958949565426857976237650153897912950232431452857868112120911527100495439043839009253665898272613731842949849552255409495707746171031032344884924599981691268304259759872430949156633437712752258595071575438758917647873037136204529803973705707298162198540709118955702937357157010948205278545763440177915326044445567672636323870609394582466240612426898384553527240499800429803340208809445351463679646333974996329682021728435269625990530212421030369258381755787326159259638389237323815368447988053815480227404045605335287293648655618842601113872849238246404276659771804844770572031871247539159237074479403909751955753837406288918373175534949117283319760072562454782346593349934306726056765452360759704016022701015023802919195564380331422272052583144226291586300724338814518155910577614501518266204349663151910912739510445406281017031229972092318969604592924586364211988566114338201647677586704861553201039218429879577507808013420204594940999630352815578265897720350031272428769494249903271414683971298352690490763410248038352431980798166021715846660869387384502736808131943430314538811467489039840176741380505534714754048038790766716094929612513414097598735105761053335828674488367601132110305213812511314073251942774582698082165005197249497133298911024893470260621199064766433581185905818457524204765151511022752526058969531719287215759469405378231748515074349148330272707747579664751911175434532826990812843859293894697693108938264822119090542311455244324044154774869306293835694701136622198319072983676350868585278498099949060619321002307239808457522369797068715675190977241091836861965070035701301691708256824571243225678907167643199213893215224036338425967543252702423307685732790171193290537160380303115854870797570331222757524682604477787334530119304833800383054042282878142488350110073989686171111893485226471309187117551189940374625422424788849905744085367659059949163417751759966102622350065116861496193791245662548607182249148164070372333875069868490883204842782977010942262224618637494117126798323406813542494265637683091067189667904745450486010320273837098581186596425086558718055329138493186435932861516445836261174591336623943470831656025035573343538892843765753280348337238239175811602962265854536729231931393475676277932927862380914226269424384811329412628163553727743191490035769403373591326300896582644434609324622746092031579680513672192923117713275833728398375611186819134505380269212531287519178733548346530618542388566747759387623650384410577986362834165355854882887641318256606090668241829946668690633105823199387570633537935865061194123754918075813760879084397077077788660277748609266494832061057287379809884515506446741698561368688439878712385524381782912345607545370514461920862941591197916299846687018406415037631210362217754112995024044060588947130161621421113281493928221269973165707208477346535205116324943490840176374728976513786365492438217128376477010553225483114779451316640433686884254799754090515202472251639218527030466961995746122183533189078883077335135989595263163569955926004117924889170226406384150693376031012395444253478772573378590784125214327338269636411600426390757958338462557419219008806635746875083017230817342444890323041609099637797727492106690008061791772901850914419617829296552201873678902466125548093168395789286446894951014640797550233597604686979146943292959131111443254552196504356368620517085661564724677050443286603247376757204527161329649301784294754285013256646880183217149466396802189549638121773706058286984254665408323834349583090241816847221806445837029187665324861178668374499817869277409889817964243598577328964066794411711735518866722493708189589717924949495378379687729356408314643340938425804417182104119737829496453166995097466853878497877975534786920327302171881970357558849605745687310088200690359186154593519834046517297409305176660362619875096365227674164378899220254118865950612585440648438660873330206910327120185327437500176083389057876032370268595865321841480551630241306934043880846235857482656726761508194649083571500999836559521149950078054869117555272499524637083735098434254987553917098591399638136388408551673251373789970733675374150719207888992421888080797514320312632935480022383992328352443962462222593655589759668635918992844642207248630673787619524051229334461895183927695711471922374260215164727781283816658291198170983863192465697119690526793795774925235179554331210623639874278136990715494203434232590207161083842180247426372349157674674699090636726163653677182601535949071607377070116987843295385850377993428902371206946606348331032710154366986153380795666680640560157387600549536373337083902789373866227014153405485099606058955267163638771795761694625808527016704810538458873457339442469120658208243577775085696500373831359058902749860964806358123846594791061783820769585066061872989256613626748462868808742514011782152933400661085107885402220387073880832100173443290078870891346933306526141332167433830012656526733301877289938916399083329950025558955474674293001999782134678168079245609498047419007165403343693547809413082139935762991962743015106732494937602897277265938412573656062302879750752281749660441629812670360675163528495952627578135547286247321855191350146340630462115070393062219990975213802902868887866257557929891933316505165050452856849733659451997935579933282048253487336176982621076730334392325804770224055961999283748875045591774766627331548963336120862013299570447458885834777124618606122285322364374503560459837731725019174640371532742022096015835399578059649438517211828153905983622815741920879597902148069576282550773837517076670665934752434904146710877583666201010685412388089122350097189324336554242934773468160766484795538591223221865607462364739017878390666449945251726091988571946251746821653142503224689336843509351978545209035259668143391676703775166229443624881000778970943111807404084351344147288853752083546964805779613666539968573597970508292117634456266829235108695809470361117392172888059861982955366069990112739537273738771560550160015353028393790336118016208340093513167369215704065421390688512644373766843571138961478892391622096799891961750117530148611950219785046937726498311224566812507426764710376715151039874884117740970563245445740279955776556953164281825700876689298857606447834922346195238017437568169833497990820255012801655880577195507743203709274569798837248811381360804593832446280270234844852577178541226567872917984492994480192290481871013034872047020766193528365315761044790143577067449950404923128014937449933138335152720750877871034611497758936116898412189113365750973262048278471029297636166648074521717767076874087751002336650746012091877618608573927982603352876422691975990600047379379646688961898902347901237437523428113652443333339078285274249207206791748586227731612250047405391372193467671069619536837857026080257634475382336844839187468084957087642189439412619468477816480623104344658492066051445650165719843955621267053501920394913509509913804974052026901818697064910075259206514951658657371544189343554566753645270820938612771823055733402435734438641902697690644807376305374716461390160758258519915713119313686884340674672290230228706402635694346150176309640014124859202264088101589528833629943308259764239001637479515549538823670137857257930143135857701050854919133040820210177413708500218495821741605957822754616336134400863081438574913394019447305095778705723357745888228545494742877771005452945825871877037600886402046705945269190697828206892857132205105874971257106228696307466284637365663609409531873650848096708889877281282820816161245950470821334530352468240093318620496249262295658283454982887122535144457722963147692187228907755812880636921090894714355423332504784097263277376116355275328174235389205008959053630220863825259171234096946396753916272132431381114062605022011991503744830477884511381173783556177113608020827881922645544440757114537897282988502665571608535867456894488268754393443039113203190451889662217804923881881930296261817034243198445905979182287059380822334871812503223331203437196288026665315277122669634803074075019047788256487214728225093264857244617663176427553230713221805205517583302939136449954859798048281575572459056114882898060829620596193332041716357398104590977036780616212260214065704946507213883718336064582951817468463839995416140410426488877305944666475695065336813921664253157688788450615521995480017034820363361740630268042112273533197212611167860384020383612856558368386435652125385175136474356053095217860027056724792496104666194724587931344283519441675530710731561387777017610496946446832412948686717117317404023604748468628456485988474135379834758396135086126710660599306439429960740082549277661466683584651534986248633237655139503396266103422284200143888994325190179696010594948953529256686336563782859008319133264877410883624356187841378610179162653403588605684645817597025039439298471295975205463849815512943449505863523198747784693844700662969092585418583125863373959039791213055532471850978937687080823546093041349101261899293920549606372909200785371567931500282642942387610857862200306046416389188200878456537662762254977217884695026712058504527687047134525154046271625118821584129874939970582604712888601991125322145936713185491539666341735725233210129461278283192128326788488309022759819952274791070178578837710267683790913722439669776847454873453323813588827356716119689279921933729481630082516019198966047160683529989415750377870891663219464063139411362980497600779539592873576893395590829429710708772711325658944481850508063975401818317757142572995564776855516690323128491591811415937644214860587937773867991283393117492599225625111635528023197972899122848863403848330505789363490180220179114307167539601205416974799606445932914881733876489763132321007180123526398625577873356933418195650795535050681070079893827756374037119828679479013189554918564193670549116062891559827819083052908739774327121963654798931880783792453371833902481773972168077260969632929228491733932256635434558526496028926955891756813641601446616456998076598622832364460914660756757385368918664163395090513747046455164808484918433281649267343428635741306960320133392205004832856682609622206817746177353605319171469356745539564873114054794262142949805464821497485898791193636575754936518560110200535095072929810044014006525512570325715546193564097475647732264307345369493195310354813542115190724147760684031111060878015565502529646015794382511196962456921109817540691977367760214142863257232071541214476969264388505275872139477933477338000032189896953722998808697109960437212707745734511449727173674825886181521771071116486911226924804918274310217667408311233102129975676762898368911374072161426203090449834477504882725328664962485143814044948821949587629904007301757047480176602270013778111561316101276129078474747569225159604995607856044433917733656232615140639538430256862006470655056371952228651001107535937384217743049067630949497244595653126093142604535154274805939346792787217139587029168404273345332642251603784081331490203436128745754200936603953778557513397974687285164447508304331340080640561867405450923944097583396981654943716677383913374103241047389488482523676804823997550029538351926678237220049327528825287112050355456232620340829147096661106749316827062509871321808960375566628664221334699642739555905541185893841550626687373264239012115380323568292405592150779797468345398301142857221910814233517740852376215987871455212372148709053527650466736224094860950571400339549268285311978062044025988675757684365228267237517899919171909303925568819686006719724363474985400040123189194927498757331747762788075592342074495054566519416127493814304547321375479376697467113019447169837696030206980085243583595726798418407125935415563098739431952372016070503189644328116646697795511068974577066603301259918961138349530720466109015721459617472766726205544755870618863251695601474291450338248547490503878289963636634031016857684588854591818959775625888695173397148041744972527988073570225136254176175456171654251886956038225558756409259243627424167545200255308842753917430527227385262780667321579345373362051894331401328564080765047937948548170760420358596469249720063774334364693893755426555468492688896997801119145894549951541258205065409174491593236345751709586624370577129784013760514872026759256059784449875801404866677344789812499996566842537678861744884796082056500730159771341420079377190544478818408545176542340836923108672797158054044416292164243039391734718326118447245870821395688102308460081938005875218543361401476077896576735021497760416653219321999529855730443573596498156107962182543117574056418057050468084617137443615525264436304906700189802891964793875681954485254891028301517224456004826827855587763114411832743306675367821128552425428378228455059980918375413150742615791811926277494611085372683915578483909207570757611225772538911618035073294538574309895805679288628770299243482115340150881802412041453135216271745226308530441387732496000424567026064986464335145918677484148995824716494931904654158617611704692209408921604721922951326802112026010174775939724423335825509559456922917739420287754185939769828161082363564242075781674878831396786885509296465367984450003982731849784475654812903036717555783884877049072094001097390789849917920490487573156729567610391281435689830111156954154697426749594865770541554173897502824494773698585793461752159437827790083502288114526380415047267693929972149100972496823139207763397160875420084154136307820556973780810723310331574589169375641749833594815770603951163015622421883189254692960860692131293828253951958721827702213646096232121407763573837074458652045040664366721428908852082869085984538143738522186841932962143653773682746665474637569339348141462692286429020393591424556749591419929652143899764976047434071509727021877617555133211589675683587297164717497753063049301476476875813589658208022298366374312205094496431522377229758604415636362218160708784832794054158875315419012761662610194821232737549310398019283219382847371767772252086328528838452306685464062232261784496657992654476263879869394856365717235359114470542865573932869842263840602436304559827353702736059762809502438613515040012688214781344616684480136078443631798106878077416156357631511121975133037326189263907517068087127563591278002501555342436807351725559280138180281021052592016115231853895298013405500256527598635063738712366765850481806726318995142438085859331270702378154541777166234894027941104676627876813804199144714445061888216202821210666958102584228270300243453478606540844972726817408026776585152549637922797883777102520829281093363550271633802581103531011108282982771975850868631065458071851712061602209652177289646001816120661101785272614065675348938656841702042439648999347844934770830689599422707320759455742622665043498944373321346668155440161182576214978045487813636648941315202795197152734803898911208213612823153724778149874759810794072704280904527616607311100751471121919409027205126361740551140121727422562111143556204867624379398118807996459343007372558188019516814709929329836068424861685090793394701765856867803534046997477729984475409664876873210479230368867207476082861637016410772494611800816852149107103130513860525509099697568491451436805667794013274873772345418569668813754751573735806410401704283636633603045975373121020891059787466999043107672004980923630610851590641287792546219234337418938688003904886966752182666552691659582672996483216231481573941113113084675469288762040592291465067655880542692136619681850525301159792978404814732732811479710135188000942277572066223479773462431128436065058382727196068080028232721813114575000298982186301545893244474264372145356544973598736248523630559975977073377230117763409800993768617289408200911395964606831930024172393015854360985526168115029880404044817522479269440567144605903862815559012144750366710361227007926152035495884538112998076678073848938218594543713210706425450516365372775929269777897099858507654386784513118050452287745720180472111416372385292884131400795718476330441767882515702791357113706011282198713111903346100486176541762418041981396327630512298846703811082343551599012873940599172251150621871220750339868268139727565165193657491017716005833298274514869347928960304187161574179124522822000780281508259393550428877830474950329876796483502954289123976078632559602591661060272933991727218342522239468097379460455199852237263447054066164586504603442079521728553931440896861084676372499344644148763394685694731175342162403042202601202924585278845702329761636601937411895516828884773579711430264008137883160892049416408790838463458887907114303832593651484918628180140766732077623249891676602648602807295302977815136393563093282781896426450264182353187960726145242714260504981124466919301169308055173559459185968155241781023255025326802984721226802982789606962025729108732689896888926993024746728369316772710651672534528071718114924063064437178099023798382961044617978383545341693442764645710709862882044989950248597926955884729019361934455685075526205885568828998793865918251626831475993421117569824371876026302754358802202321876898102420998061698935173900114121879150869507436628696913916191560177357448696005866368991847628512303088501209943601380003869983622935832454020258910284267329670541388718702630901685345515572863749310714496660321677733860764940193401383465778002038375642999754885349015365588954529993107590064985646935244992859568524968304986478520924353125888911597273103125553058275332052208677280216848908273290692755885814898399182011961572122681689500866456983443028561505018636622021407863589562219118146088981741481877570323906254445285519873670199536985846063457261098980876219557477752373603542278816553469606734034231126338380323813892992633082748921028417364644935267036520473506455119490608335031743767027963826689470682473922503132307604807226460226856664699527869179234379179557430147645709356631726213347379987783333196081280556296769456627453561618612208599030858727707985893992710071579715096098082268464572979453901437161729648735962523774937196871480475479923694563405903126664344448556920448472020505116954684300402864881113770190936507344938466803295704933079726853043620905209342865553133912003574919019549504346577767640915441629118231825970082160155180105019160528475957057945202471787615925667751461393696990531050407554230561742199758760875455060369443412451871428439184376124816578459192664163419710345666244136405558904775106409152499515987084570081404159753771078607458249778905826971535235090863022620605736100544351069462716210675000450236046009683059178346820150060161001311636035608663615328102082018602857189136424224381407213605399034299613676903738222224559096958612519711070148390594729500308558843708757951082749268908494300645953557657341581381608099104913020764555831203951327241908635330273022082580583527475265308316806938166443144949068895911933673284180096409782058683079815583451897501083577374585800179820667268413513759837134016809162085475117566936833795154966023109237099032697520263435624106871322068679016550218455463449709794519324039207416949481019080631010316835120469359772982532680482351168274997678547002093201519417148774466686270612660472292514262323910993340177245705572630262317357686469935940645104193069189993107188047419786188597483960229803679201257748181130660470584298524682280351912730949302761521329772482110619987217905534966751857581755786753634907104530149855677605190447563211335763981460614115490487572922198388009373544538909121163332282477586749021347078967496334976257329131876778027698618424536919792131734476581984247114703515800582429646065429031356349721305248323648443978929347587795728314545650512861055991050309575021934292566835060221370109548533091357239022221517319671007155211916326603846701291483163240644202481599659594357652795323390887476416948136422716731442200301118539601574771007578735878070773714059643023107426534156780428134494924475220201497297869014283816148677174963106051201145364848601147207927611528290404350222927285729221051558019602096488986419263690204314776927821345007148605605674225419093988349096125652781417064440111045169832011041936244278345155730309971745849794062364562449773297315392407864426910766823622144888750288436868085230306959737963300227049690465531648946502070629242834334996135185274142908631986341923793721364089650450616622785693444453483536988203210582752728453245857878980020809254911613433522965957456998376050228260924221157766903437425148497287558293447687008822228589168279317343248483080623848004157611372785181422681781588442913117103103148718661891804826217091137117818231446667120285088231430358644707928178709528434947736220028760647741673994105408238606407291029113500429762649877292929804675921016569803485471781469394239232954806550439950747736516094586548894437336420859243408582861675287725677161356765007120125737675722498438820501118654854285902615545369735485230009653743168346370116020793663594406893788587234300105089558149368460211254023905554664178923992523685740054817308278712756641526479152045359057751668224833676917011738360639915207203303519488330061084127614105986754091613082335810851113018817649777329632347348708065118274569228438833647129547894591912907060335254991877550019711209993619339215158168719035690844545271312363480755327317112805423838211167430200782882333090165852223638822978606003101437801688767509640128031626274023071484337618336225002020477340209854881328366163587747135214273257763714360587171892868351181432906589634139913413476190641772139654388195707081977786396477022780029679989226049710508186719850496876054741558948578546712503532885905420598558773979543429623708769685753366297623116787148262818060981483385113184476287089943546527151092997953155214351323009674609196577188315276355228382326210133548244901851041195144817613747343538475397432518849153890178595129132196612985237107588407090920027842687617582645958888730028602761904901165823338811351101136845919914710193350428470701243955360030750023387864269489341950111293874468335780362389159759163948287587511281516228931540494106529491840224889554016554972237437678504704902344960233869847977957661605627507628580482804299225573493178962083956213804569703494238518778053942511075392294167887554991553272567687150674855253167201095259290131836474690889955753252541735062658859077949199884564583998059789206256152113343860030253050644261778367929532806072306489423447327038878075853430257635275283977973295157084659889714078939727721098138614380474120286760690226880921380457132986825418971858132279183413337623228520813824741757332168950747899683592082557190229614034256233398896602275038114370450947142620302821373538580815590296845719747842775137838017263404674065451386680656671856090480341991978498097852196113055815697142039043723586362534042776340131751406346525434644217688501657686410550892982881419376483396480208731886888762311723452371047068334556932441958706031766464530193696418565089703434708265597766867861149405402778297200697459769905186383643204537467312748627924228989820480032612980405077703132116001768617411910904436767905264410893888140415323176333935378280647888726025247919264084672997875345592523861051518197452275025708945122874144828682192285066998432267344476950334629102307677310716485871755151863849464932511386592624688315679278624186841443594347619759847413068934784785582525682867558739898485307898753577013578664061072871033029700502776955523515673549264784229608067457950020192464565289504409027785210691323912432150635643217210834876010928215935172542193556930332197777743493158683160439014188589688478790101357706362592326093892050247262903651176075645279326271639507233729884390167048948837456194563354346848484544778096597056689739937817133877020580894135991293080146603006563486771149860989531813452439009348510165280385364506283372533150295069647024760059215350730096248028542464122760775718047190498082806887972677526733203253183388146090607041480518126603081285377280284341084447561568161189264046989556810428705584334858207085657528127452777313812022273014048281873128799792855559387263788494442384227686229774247781430008921026075172729241432176530742552699451318454827054304202200716791626900948088259387642102218458981475232302923840252997325674182673369193805760665935582381295733762585888140139228770801092284565666462272966240605682641337223045462212402291691357678452497594686227065342580900195922277311761359074819881613583599764453716532904331217633272918680766751297384015319951435168790108502672019757581430064776943106602319182758114565257880153103534158198239145114706537961374604250364070005231424750774080655508688802314026489482406209070717014215814503579769071220411003582777025359560998522239386228447319133874849124393501831540033068730982799559258808836259499774392331093551054704620664135768819603437619467732181828364152504624982353047264016872626258119654443941359871292340373558444702501460671506582838751287176847452959171013481609138878840375948600030148840730317506841115831515961678622314167314789329973631890972102143661805745039240337174334615383300229933476165237502194519057588947069934378519809035320468914032501672104071292894968007575599933794069926438023520551078106779833512952358310910254227225017217648778790153443727841398937327920821200130704881115925290889809077544201987372681372074349697828527331518798386557425154117888926097670082875704786299732363204186398933077762847213807189970960351309663773248235009666888763151503389820411345457521976268137680548072614297988001219465455353281971167186907574813808098461784933379207378355749034300481240437200078555185005857853475222221301531875084145577075222965738579831550607406901277362360530739549753230796940659532708756695353263100975935943219514064943268614593086990444852959572241725491150492397659051270750460425504683394621199758419247522676162786506880667020735956909798538484467903599844563332070630521957733500169843318007208649241399086622474489070962848765146100680663955804032440400996109462486314462331221097846189415763359554547466212396742871853814282463999369650500655623633663501938651692602276732763578720239258244738293654743795183294428204347865933913021170556915658800264278345152604204694121003877687490607688020265080521541797223101648201034383981011602442488953902994156167304463735180357089091520462281587522400388185918048340770944628952009010285847857280976311123367397610234007874414853866822302749293810366739435956060329725449270221497333607661661833860456037202652620401203667327118102322697151149866741188723378405391483251128293414159132188465753266308060730323142534652177868375998093696890073126987518268319107313477825430682335208439186751484351763639788659116036680556438451093507881885584817038262636616609211332018061173583691787970870180257604655085721305179823854629073295531195958653690193873411952486452773762035004106667869390680233146847517811214951329538020471255921180610210002716959908135495740855469098964152897914349131724430101291810335279287490355908022383144819086303675721082973473018805628617376203703953412315147724977268233239245159239971921278324932237439390930965057215336268592713278646655505711818404666097321986219572806170941958646664209147515858536465184927383896181487604017336162367274591530313819338768987337265594536626189617462392787283013703009866900362553941628226712042495418859359539903082846175722547177436354047205734886403594476058155249959267450073817835466049950054297673113447738836637588979501547309889667077819132728760937375053083405913561227300895105491857852694743515036164754492575358738101723638777386504256560981302806449779515759470731122729736604278597516516872779233057228836729817328038788835736530016298590045932921406858334302733695890235386062598620211550514116608914336838644407834250585915056070562154064620510321319929135041099438671358932420824856594981024874281628782230027459354460691551197319855437210330067707140351818164563231783595767309731524437045715650423379128802776922703357773439760791414963966953436667728736524750789603946662641822246952568007274065634206465952774683638726888067740377368395573665618912313495095189530196407342794506488686899900429606826882568188298319254612907898429844304824654599253093785559756521549457247534030033624860384793818105646687665861675259425596674367779574374388045899826158911831515718627398440460024121122414593709238357313510898873319011423604867799349995769280288291969673270282183045472882108425496259725596653438889290557095738741850628854649723101755871454611799403127585041043688439817048801669609580346041517095035356939824794298059986897437610478959898651745482593393806084702248925168389469692076946129291929551703397561577282212597473826657792933278824877217215339738468365748611575157770273219782487519678220944469030161712585536865600878486629562154622322334406470658043444323901959358033619568298842722482708784088693298089753850817443525420609706805313492733051286410800969241763099552599913884220005330670624659316659342444280514531966009231770261004047979956458902859484809629581998270915846082011021008626768796965549915319595522290612221529174881000264461265461455934261810441824497987891620690100751800905817276956146969188279891688638611905854503484078787013517954347992116965705968474652918595460162850694204516566147323549894892767329962956332421346800992201181868222657406708269900714664150484884380812318353469457412107842127860650618988092099287463060315428200663152753027101918013691068828793218897159337922281694888986583851485532314973767818941705460491190710310836432033954869086928729043786114782179007471294489148246352522728894499095059672396617978542270491144818528301259923782202322586161856118560431331701966593399755788410853786770646478897947665989728528777822217723175701484561018286600317466887047229077888320057525575182638666001947057269638549256340158778947775742634452879074931734379687838768189034998006703073449181438634620089262096828931396956277455526501490452256029739356592662401335256329071208166606118696313976106688853042908301647891558004375581367201890562158013264009237155334141226397075139900975493270469788118488668119519990655927879021494981537412648639975573521629192924362737511530743007954834030281700573983442553790494455608213179490717362822176452221288955798785071012629381635077340470129187221370350360804930109243002133433017596270118653185187913628817181374077491071841646079922483157083993407931470909058378073428732459932234138689693487688791057307493768219710440292471608373196978949901765833671159249000407578186815286418811937755165684003474289225510842513052776335855287012095608491023437028926302786413796971597419701696613431775865912169642792967268024107443796660707143713412338911460803393930133740301975074528764653243033142804724084290581732869821801460971145739346088520246672547039088363599165538513453144114775761790089095269347662433237569784088743076359373639642390886038887925821358131285863694363471790805856459014751337456508450190211852090306234271880275392688477113646650410350786009916169065192331631355201701018161132780272037863890457274119429430419583475776573798533646522771754935220845559729908051156288232021362426312627463958142628371604055859148755098299909394998995443245888432239573755467368284300686827024502536182240371182028950991493169507699390976233894888373980392021977200470567727297095281804317724007105042301743188555948303285947845854406632388239504586380618827970301184628666291365722137807236126230303935458359009589490902800232688466708397111818421255284070140589391414636469570414677752754040179691857936721958139389140940459493605042426769487494421524178082265352743916088796420433230419380707249114769056684362165310290364518034398944724012030066114570793823050821397149683921789896929964076326245351267380631509803242307833866531260712816651827215323421698158600455498224312176394123101280329112417820667823766472435148137245500348773114581598290776759739210844361327376322447246096595813194900436845352306336332767046622409460045100500475149768755963478276056307187854499812921097206936713220572266831592119254891765275655741310475429601118111155604119066822612397176817177130024119192203986624383149482125421629683171149773667406449081225735799740816707813630268477829807911460448941113486883576832106274135307104961086569362141443260279088858746701068748008488083808090728458449308464366030230126528626545181440117601256009831229594429413454544014751921671984406519071802804894916102542884462355410078964786634254409988423198186334121648621638499619760947575844017274192984301971008549027924944141003397838069428977808824652810644541965810260195350482292853794784448192305183592272052141143079693175870696687142195562877564498622595921561406370042662503749053152228260366044179280381202062253576345823227390374674976868647467286711560750593203134632289290712505566015440455566215733619713313103307458015665834197350193640158204160094760392414920285319443552816641961177212744375558722667841826489588244000897402536003945545394390659842353074192721420752601592722297455025000115549177505846630505256222497523360954736796238765026670869319863186409576364984157461392959373080693370640581020502186790076915600233468783794259462078248717273075165616276294327913516373975740642381436562308697647782591719769001121140654862663603791253781524056075730056217081227407458934957703118808512424096857434805243581172931692738890435095804077712482271749607561366373974835572027520727027718061548031115084192583248900118590797273632013895004263798307587335722151078298744154066839400697987467208140049799767623713157295608641879773251906741332899030840250120393553765106721828848503817298081733837276359759008232117210935235287231464091082597459089424517904251102289320958027214594064524627010812951551633830810266347242894206795317417030642700806013036629374414686375500073799270523810932678499029106120270576479904813502848375957395103554243241937455690022950641830063739479248564740782214870107915792661317769878728058677034324658039501721517006394074052139973112627714614298707619099729733150511775581050084115080958630314362559536725628057403406548021077459358577920997216975973481494426449714748830164268024555812029704162364432688451785710301828748620282451190252987036715734650388998667823112041838654399493472652661863109868131824862256048770721317570632507629484514406382751421518212706291041325845540692262430449550239248914649716162173706670878354925728033998601856383084773849135595720342460442104223434187938342998923582090347141413487095308304748943999484320336253967771510137573548587645983524567847680162390431970052767697430377391113796285149746308456396742680842051408005520824403578477816983497495289404755494089983608715967273005731109237068308481830071454241294090488414424364805969741404025535849004451659635734352324507093245900690820809838813098751216325665417258716521332778369035628370967585829652181603341363169636337665771892147458643838487494159769823378019340133432332838198658982643571063412716931535873530355762110805920023692830846534190322442439056638680464415040972741540649551715541617142508936612368952198954065380943009946063261885011437541261403460934587791967243971220941244174611426657314747529838233507314344824837626647983144438646275755286780923519764550457993454193577323472092611435713508511966371586209750582731950661279911204751141212728940854225368142729557653392175432735913800749803948848438964688688645021267513643278917084954094534783338769630965706139224800930415387344431986995142763044846526059510252294633135866868387921881794619037887216040017942513288831996475087756259611374623259766048364997486184457643252560159216044515802092449412665696424266802467099374028366811998254611307327383665360381768048982103029933513910635949009023156169133220154473785321592387085257641853710655227422838298725741646384599265150521333247428540469974569633402774241012217830582382060879235066119092902011328720452879103651760733531432361975386052200380236007752735824869146480402186706318466702645330068048444252020949619045552052012468749579034838665341866756511673190261541728380698287500592655511746022457974850904618979235008477968319162968069293875035866010559997988321298333866049192559127192490150240170415260466436355131585969405752753251135552258349080670337714857065947418792343759161740693400775293151757224393313110552269142635969695024520434706486506742929485995128745302323812769783091083056243828126877495379989255243362577238386712935119266691449488377112108103683576812854426730173829333541709753664340174631263435634177059761181633966906503454221896699679659121595708893811935121347881589411046118519451770626694120105461273051299269161357716290315686093823318335548650692218028206909288394314682675461452977940618801727721593902562657756093277570946077523989044603573739543148619402584820083319085164980669239700660309201815234069851590691956153387576594213742510883808870558754281780053116805213133418509512532040062743171616553070769395984818212416754073773975060817324057778161536780687544358508853886452976025930914821655100449212433021010251020689905982691927678304171928618964705304784111474654757209875283559529082183149264492512578379995174425553842689296470012276064637395746057687690359437782044749656064086935752654161905462071036901999845183629745922847541636853016738909402338789021859155738745408101716116347211531318804336270200163886750043693263418760117807943596405039195081029969552203243600988194706071410665391180782953148170461463243925513947243162009735664976064042884761820724998566670055113872550009991259516954260506238974595365596252668238046609494038819270902124616487620218892749294469701467015081385760610019378071241224558851490871496460937756876862237214331979976548227861063277828851249481421217482434471021495312414937589924259194118291762068934052079881381451509338894967999545382974370879470934872723792236269199561733311878658350067748324253935759797505839223704765178075909654418272659801365517527102780441658427298534442900180947308067625964591643864522077873386651676152801515731527418678467921223331586898651672284378101752990246030217660064095582271995684070646556791263293767009906939811927359282625282973581802735288283550734617162290860505976465528959716482793217505832556602585717075061068961613226926414518703320364199435067118819625470099339961857986022172480406550043344217315132215702550783324076484815974034225645467742016814870956523068856767936944648742181681392356286403153147580126590508927426992504064645576744278134280155154265616487422385938451583549878575392312995437076556061481435397725341272596454899836957921670803611612668900333156229677993471223700324070247719609010219707641572068738077386270720912553569645391159707164227651331762930694678621229071826937842878264437083752703409220340852301015933370687813498003623099908246362300843664256574756974943799538450358824586297448426599783195407367753093408740447431422635968848555734113255804359313543433236323178183798002366670148834863708295842694958560243465820408503710687344749707477451035470120204118632949680909151488297845616593654816579864348281452684848868913563240213725280670482500195529078885223084201746733076371821897290919387584380535001060627499433439463129741800863722818173224835166950142070520967776435112006038381401360063987939671013345099749565122264961797981593366121143521091569641742992606129939398155954822590108401312619147928978941155751158244010867736418961325594883879757336897714717473386996078766290228209959450932016479160455677925112057015080848472188652880329064099509543941179808063445693204458119054298430330505594786840177287252321730084391679691166220053490458597465785233979935820186235138924352778857625001366386546488093191488975289782847874447735561032664908205268627984091365627208036735448016255236924772760189813623808801678323298572613502567612313438187980010691246562816878562779744744742514308597377932545400866823078270615169524897790015096247458321803970734368014053809965059057126513955967510606617742304729843679073800210233052013455093514031199940129290545029874139651774276221140998641163737388455918217563456599641468362303161278917617213828035727666692066048123902839126004873714958650667818119935102760493450109659302353758296449693965728788496705491690312218731998818499165473848639117409179410528300201204216214880388643670400489906666481178086603545470525525491079304110197991644144741945211394520133042487549123039809837162796844162771103828259390360146024471667375055425309179883881409796354886564367390950098087200163857046142802723422301321450005445085538077069024473249809609780956029871772080993426843484288786209689059907682082831149618109926185788543725979003079670308276922018707413661715603759739908736237172657484200269923429768047443082665981000636180111849730204158098387607969772521297723507139863229605704688017644170827173301312822416627621980954974377044776215649705584277245701688009123939947271693898423240606424525024302406960963818129088355416542393156333825778642032839685412695821889709811548870893994841267002938328329128041734233670807681371047536550325868593427223350507100876831374909103068798039166810714214019018840686023641278713246357777618978367727146820912410845755399021923532810432859508138798909023429116207313304314972764869897609247933926720360535645905828439904405154549958682672670748845495081052246951451336643766003732276458582813770923427535488429912561876162504646448952715397840763886033831474587784271558158913080196714207960236663518903580610856725020791076381457051376972236882839996813496154660331094835625643644596788463382076682586199412454010151283026956065128159492027321551500189162936725114941865723752948776892918486750634669327434747136835395859380439177898617599268390533592558043229622240894436335254604192683166851643533179326566674817632683878526272054549882356456543139347517542512603554811950258240558207889971641569583524749793884810689920928672668559788429312639887779232538860172407809729313070329507331808542442790318470760290952821072449170588719680000994949187366185641578958660195218346863987186043745664409904379447928496841244375880604992261236959476181357688744280613451813350245266156632895142745183509624971061513024554015236182986011870698407722784814010308235641490605027345732960696491199685159865016728549351178861643465545267147705525977314888115483952275190565336221021876913475361923970878360396866308827789732007147493897328606038802258358177738767608225988803757050285576195507125028059370325908633651111066633167060600515581316029155578528187951482015435187464511355821506755321116336060194429199519018029538024785896946202539689004262773252293472576048856652509679551676187173045445640583802192947449957260996410208083849113724273693732958043243768500798648911273158708479677218280697225143740302477183526703311449149795565345295510696511832980366746070514463401458102285290494717588857044356421375263259695459748725442699912363087947570405383807828312295312088445329401594259018302192306977340839768977435502535898722061928366515062211183212493487636307595499894149928849204216005759855472515534187769614876922701124818302705575437953259509870093586451587836383224882219831145569290842796250736938279040965202941226332771593034877691880268421482129599115612554091284322550694716891233677909532955044611315052025596609441897413998342893002704544486520190127324379898542897310432268864383103405694740965547574076958544146361671665691968378609867919554368140843800778613395801274170215703740692371196889382584209869015994083099711972494042685067408203930660884962083184498935868204310602147820285753970377953458343120594609720526125187875117874003550100848788677923930818179670452871914231445409831845421752726781790485278480967060328419825072198765911416387185814333257662189489278358754023816008029577377788592821613740515142902107938684108919544418620466357031893493859686785261403219021383145223121963018437822616515253581386374901671675144193500727369158101156739947822336013838621151094256488732809456848676335666390299132241009424805703149612852695575640856028718204152509052102976138435080416601354477578470418530527445319007030763133294961620106334220138111822650358410868449787630324602246992637135818697915351730128290553755649874772353485738056785673610837359345945039819361272364742152040734730139903123637652842944954594875344789991908731782359099518313664015877386860258819369670610259119942326673704901723854720172587046500093416462137449696941090956061350472582667664878964980843225580336837592818745784863663152630397829436863457422611555041317509710102030887418194018025491863980101064752695111119758332764729475505291787239907519559197401852757729946470800938038392985351268239090135632588869126607891033468600765113310635694633266131462080642764819139905842786618834756451329211618356433130078203541230774362662855210745272554704543074540578171417360530443691495396302438179056213706088116207336711372664260255459561966159723427242699493246773414177706914009719589691289547113017853194781855629112982183059142476708175350588451031764144207408094526069896642653022121338304452503586956221992134713751053476504694668046703688706813828388504526103671500196750565143833078551581152080284495365538809227011649214905470680586761456958658753918714657421094293537845685375131511467543042539834638934270905314825738376353991274668540043626402908823734399796265291827281123567853755411772573180572050842855795988302307859861560809359248170633216598259009759493575738919003430178652313780844126640808486861187256033156677279533614250484421165066860471148755644770403434209263215786479202055169875331749147781448914151546467634672179840710234691490959446842844709375756668718240582037608145006939945815057524833063954279364139835703842761383943116663060128414832415077844943339632546117011569067495673091728273904184565208971027004148955648813821358541012375658256283865444217134509332353674637121530201808240496248087100311859081309260027572960391571999092828587757399822237281829019383706187425967629382901167764928267708675764289582616502887700863715700193887307531898785281953171972205510192529728304855331585652804985446736449172309123101803949552329271421770884260195886971464426912695774405253359938383955200258606574902245542124576583295717096957022203753627402666187473668899131311012674994832934168480814432362979131248303546351970615767173335162632441626180660153105202547888934631624963895093010907609166127075430519885402236692489477704778967441865508155849923776960098018044580045551936112493830971114621069658518352848397778698301799258047460032915582225347316335555791746356068540561394317227651130837409413142265885292498104264524922636295787356277761322252266494181328877873803979656441354261799532350246572820773633350712942484690110301984856583317668923443646361294431896337964203577656692835391521401842457861835460899948557433734516717271726593219643408764315833803529720053032985639053190899075734161942391778542833761998717082170228840239547311703031118774220696617114962287571196672848525377786376533211254318299464863404298855912032299761713017593451081333426291294682872205358814824880189074898167585056962427672441373358510099003264847609320218457696381863870410057230525554340289542525900740083184151681317674679348066351684630532704970551524671115006803799919519125058357798429951750952504552889190543109069489483270547005263450873555679974551223853970565312476340422782037638340649213231284491472542486522509133100766758978082212041670711793316223878260104065864794943393936146669776481488988283120096792386739142048745418637915745007886508220830004832403177973406413682725155550488362536078747583738397875024082757544364462425692988317955563327119149257470542512925760980109827040971658068323043589052988497304251833287182258508072493699263524739744555340209358995874755440608739629315484620519576744640192703863372717684543215636372402377120687652966692263664144150898268576735831686627200519066809135201322159678835559375002962713395624650112623314699374688833834686237975764054970814064101664370864749693390372333424676519346418032992653303617316994598466831764510129124563579176923083794454857886155495438115252270665429269909080959490415003362526920130214646531412715312658263197557322493967269838305374473842088117018716589557186191733630186897321962716080144570605422151855549115393803596167671778970199528118055099119842885475632990425263505660016027546514567067846460383724960200032957070777843768776504828329109212177702849356659540270136259270246635374284051694068523011993157124601887368624659923269568066364935428108066648338566972883023535088796660767807284204135685858733319533687573192921736108798163065509203054446580114353851805728210248122407407417561236307748489821155046147588868324075783596531740641553149998229859842340222179294216067389545175921700848400239809684690187455490849750129489495203424860422283216592503325287862424159265643197164887155543041774718403861465124243800340970936180845344618233892443507523594701336084303067983287624123295652242635427715495489112311035291737069540962935045033224320516072244998265188575492836900366538955372142216509578833321403535673599614142916418017900555115453099852597155361729076304821087898886358231846792204322435925784993642929522627733109053555107645379150364259609102809940638272386218915428602245145363505833334089670439938532749909797765707236305743836835091756660341373071471513510185624761183558348789757429060791969228360401949210860183054561617980401106961652566546655676883017476603253169973634499354622906643999184117662622604130132453796692536951297703743042695969309254518257084145800953536755166501216029045061518661947908860380068612715701394355721928011488125952614804773455261805018530066145962629018122893771489587344502364358469514727564944842922163077493948716629979470704669347992342745481827105115062660350953429532572343260836551808454998786662813743386407363288951690271217769831362263775799762008985049773233674040518771713848507637637159437609004546359059231917476882927904376933659072055278798925945085640580575717660043997580614961543144079973994989440701842992243036893948514044491208758502646133609639515661714587684343915704405376517365541221303334718155390077648341156186851226775000850634617517305779128721256709347885362373608445858745796984141208797290422320917339596815172143472094870966402746497956246805257828534915945830201865885660482804541397785951070273891160162420446619539448194646146917817982782923273747490207165641268799172700663568027380022574989057273794296525080455854732338272750141927608883528197077703986718939882620649071015587125108513148130374326948989577553834851210281658024972017369611464207704306741649829182580892025775126148947026560430232496002414391868905963433559493781451359356744409547957246493605378639850156587576298828763738869738117091483038052383530341905594069880306264869989615060651246516213914145532391938607708851481289362296468117822965235522730009938398333672261242784588417944036929383535488332842310848142101087011861113570062528562237710871739832187701169204417763750574993075413337340044513750416629949428596723590375276232198582902912193698132435808178339476622028273732943425939526477497001089798599746623346173482736228968029315430463845190815005923406329209918899031852848823833455080019650539076397798061391492464241186436004098014759751757901187960666226494621872239550947066645175837025560874541011406121259656249552653190595826056358722698491222393106867664504797424132937317127720459732835110983435887223970518741122740306081401305381454266811588035663430002860688831162376118045933555117186865578143025830463354186232561181574945299902599994512791647071510997934412848340392913492849368069100066878740848024312088125234716145897533075324544487875119124906396335924550196207662855087992133610287777204071074986509325329638484273326421026257430548690112227322620929708793463373536075662078749507324498246359000388741900333785294245977143373288587618720530264528403861155623189239487619594231444992341311744638529884765295919584207646523534991742773366328850071828590218916705502219816298716145247643656870285547083124694216152848200671393033985617785288373179808509228577599508091834003265295568188893364548022561551557759477389823772460638890306766324321768816903438252001511255623984538158330013888613420103150552125730978389480741296331846684483940013275819559811438775687317000101087092514543008743071402208767417073039007921570151828292215333636471837288145811881471771755805805966466210366371696251539098086825030577598916623997395516541442257660102949040639441940875357214689808359101700523376372291738158704168281416280125087709215959787917527764263453288262329581404308192186091362878723435462581635575784635640946836308848038482123298867588952415978129813236373119774004654149532770416815655333041678555703613159337856068454567278081539326861048411423136106578292701693513388875278772702598399842917647303802616555524346901233870688421005958318917253199735672644760137311521386967472771687379116502543746211992192137359613498580923657124560181094645515654647412716623299193235081122703424659536503813693343764896527814919863097959824606175681137492485721952790384603108391390542806382271806501350871998038429430425365916246579119566579313723806970138082471926516799975433606866644741290062840221636787229318865811757704793874704702728102250555543807884104136701672333891627963265268373476398150112730648056365776225688506555980598299235981483260439167216733520419769900011097443424121883515602594506223905344318655201671236223735645668609482688597402435745044604193183506524317990324402617211657461360024365063587352810004877852596422365827561081089530914712649047676257439165219873502470712466760542934043175834677721958536135615096279164572432658098208529153937892423557704544567875949278966927776433815329901045739217429910737830772917725236681809995978802866389526565160443640433696893473954499009951634588057217703936333943457232517813216953801977177447729786878130198078849766529007962442308514365283132804489311073061276779318915867467158141398012598565095123123928039270327544665150049267206376901334611548257629156277760417722805463195434511888417320640420482384921027068966086312890440502556808446293080284347371303533843273652363140412633331235362783814470097209855200719715336295174086320414911263345134884726126879539399415168437520565137039787374083595337981571825036022422123731855442171345726539402044627397783144303018861381993628653844343422959271315528077249493050503550956161366874707883787243267247782256855049560818050940274666584718554507439854341640176725248711725572648696981694348965239633487995994838380112797714130920169362623796338645633906868554706660260478833430833195948118337274103113707547192047183471606903178659723301613120154601225307035034374677686043434921450599431382022134789733645929288903623041256240322774453474964571603746942749631543866076084443831359589560047557094111633473959044685600571460770014530286258805400079920763487954076785907315613023041661058435897045240676243913460974733243337090187559257107703508137962116977204034935770621602633382383108463251749799835345265807409280793365879940359876225957074708439543736287622848939151701519316279226893324697071442143795013673317269573809549071506897803742624893922274956469842034131083856074562617928166304686622165888337075832217660460753568191784798971937280182675567992779673322192968021585805166084337549228337333529013559430073858951137369462530710037341705460544010073127242316296761558026365860241820410092722116111223263801915619576655347758871690972074485493108684502598111322097271931225318723697027902757915916531928901548665528331804861512602958607254740797335664254931730629780339445837000071295679250516045087207703152978988486647742620907212903129621511614286718509547182557407852518571655196115859810341983832085572642118033274002637471697719235612554471512965584897554751500441414062153257901080124816542811922454985369312275203792852988556405427790335912778491214880748340541509389153430275128741359604434054808387903537537482396759875936299923105971437250206221090058443690513020502822603690219796005946345975853186543087744217982481676358514558287766324331966184445938601290396500137376936698998773212128568831837505244697879595115894513245218071018190848459820215521266181378745686834141458234416829755495777046417623172894670428866744286412385989840571641472293532226078343851696282039523466675157726410061662401027854298087532606646983967519120323277131001654694404945682936857727320234346016811236526086486897353827137008937781929590652462787268989975105834730119194853437708251955389680799305377725635913563988333861911242839057895372018024135125477923553709388495822945929782251851866633963553034385840687496688907000667606965895063281701470659683974825967293544986633706190713025158723104607731921772186585318436624385371725961123472474030348464675177291674215298799922041758689363616334275577048509618561239263809779372407206988578708001322127828341242505426948247997432866182238022407503825636862359844621991810014964050234217838788630489868387174580457810648803001471592332134662317164546927001412262594246304362146627162169989313925772924172187861113891007301251942173828693649825622162706252374955344946674727664393268206912777529679007420197941108126895133173508993851097123943669006602463829099396809453832677694443200603921834533824932893896548181828980976041076455257516313229023616952404350734273053592717273389896366015967976015383245982688050182820455680834106690043895286109807368288371094222972536819455163576829711215706887782671882582619402427264179402326558264213881368998027078636485002722556788889649992859328026700955706894374006844305352120957053672715576218672822111110754746493902742021573468453368324308070281578408048081675794880389361462581400441160134195799824710482560859782052216558356257623238710403314087880201076208540066881626182980711776640792372514008639908241210921168464871362647498781088834527300670403125479487573591253288126835755103600823833419125295429303063695831432423717357587135374657420490798511219264371756096788909174043911391746087323328221014209044948326618512344693676123871307845163160203374876318530733493903016284688455933733444592927075533412640306730437818200047711263460870808564207997505996616387155056161633705639852986931668518555434297893374268797222651493000811107584843013479008634153640168237896132706901361534056224385336837755424398340495169737860402594268033990768098425400815559647701239286166834252496901589430337728868386622918439219419696538548331784944139408734187870270909938175973967912158052191488289046159958119051357215073288438720337541708855439902607361779938392711951039257313358253618016375711681773092299937778581061562082121787238701612747012965783963764919527941380896865672379442161682105635254023378262881441388774669707974648812857628830030309813933635033581812603971261091739902090316240216442995880445042170435957190205901346366743052818274320180340707576396706651478850011013119877351638271114588031309411138712409743798204571226607650124163161648374964209740305827203994322913497431680376180553535888696516599503766205811358598771112810962014568589309561940711900928754763586741460346344491685473997702483110475072438317716256358851379812296960413905590921165817964612148589388228434319897387158083230941257520590503495497603171216623518509900841640648775353045375393325192216946085594109633818451830118720369972743244985687957367239785621216160217236923146341071810070070834134626047410422372095487320368756188306721894054975303520389560614658182039710744318501699130871745199790588892926809661220434271842944472686941499333136995573042397363860810292426616723013771158123419725424831420423347946521295895634979357928854890745498647177200105991985951011491119911469654495604127606659841451396989274237974564152925523605935633653149226340555009470178818952887545635740978564878181733262153818370334398914363322067289265026861339485120554937328926257091709686735330693444195699623138262184013567377581319060167117190632079523710494897947013011417146864740940856060659202061167043933607293778145948907098805000751694419024159154062129305675526549296520780929869782827792278187562057690366816355154515620480548482053773420587633812476757561758220104767198343059850211825187284589787792985449012154600355015529615917366327237957813853187886877355286771142733466797895813458916536514193170062232976639568098441127483769537605570327801259002233201964359338519243186480373988214124502997442095985024764741710199797441152475713991477163827102255022768597393687760481869333926133568222564518334774994395391041043320575848045656543217963271521523450955069021039823301254454112865728547647896881869872249354540554181227752833763246814838573920356435196916039884635100532217324532440279396096609787945957285486224293736821141002736386578874670404780056182663713891364730013583140645847005065950155783472419512452810642442513218512505521197218471212954526917513785055387695839087449973732339769360396104587502561822579588335712374781819584220599704019274028225774055484028990971367144313954001861997186057719674240033721517767794236120948987579237442849712303717922813399445525841324712826006522614305419978862176165136293575985653699222163845268484890695909785257125784130186912247435585122548752303176678229793973177054183408965590130929978232116371194297348811742094203492571456558944488168257089532658035978145057591813926061594304629726827044257462951144227383970059181178624639740295841097365925501441811739034954702977292060242315820065538855566313016279032033478572779607571776156861152765285128904959834612574914149639954890276494719787703379609309513904738838997160120157236820692966413944092415984574231862754325490734326586753989298900057896055370061549423412899934733916254053900864005812022991255247456896767041767557194055227729098001568343244368541481571662415605497204672876414061927314538725919939695075009526967219743884449394714368017602585345867724639866074099561673999837160664319334113757908239337205482808173694730862049900310770657686408114251333769331844025644332740072747501195186810357853081332988178154827199239332757656867632772260820004090951137997986216892908317897565165823911971319277158713841554824747258171970416395883621445425980313101943604958846043002233879981673349378893099353652686965075654177949867454680740607935593735870410602128265272939851915104253313479100317146073077515523673391759462535135193631269412596276959821112240138090982204233967533230883721282549195179299042989784565626935135885995734822354494667719895790288330512165883484338801938156562671371860550846218976554007869410381697877250261217114556672524336772636550370146245599427984719568695898911851623665571577435559573812591867128518647292762054234255388728504396139869469228213184670867728480044649868015371626715757015388588430459974053438835710038673596213847475040002596282021866286325750384143195314939745954723686538099038620333683235981094626539641500084727073304776219926938992418791557077794342645245711196931139257883778449689121169855207404484430451258705388844345469985756452334025092381107492669236127412795948683188572178299313691481276231125982723389083250837295023816212229542222472968156807856478148555334624663902905950928398708020533834572469165555822770567481210444288226023561935594138885425369424973530821974765014688204871861862824638431705615378972796319166585581109243215919560685267484879830958803614613122651871560668898940011953988412949218602186727321225123732145328019443385650011750187800519394264776324787246163655164384807116656012060472560199595682785063111749829417788674030058119956018285456133761773586905176713594570002127979361523095128602270546830113514440565845301775314941886938215393634068183835925642199831650308671586021263669923703253834270085690315222143081343165368603476092775883855995533655541496140867775238897716130111399736934253976600291428747489382852027029367797956645806401576366640854012060218686370306339058497756028898998562760497438976225934287344312597638429554941353425670095215351492955302618332608659867109776864263451567224234559923059996664725227297083388706007446485965960446021727495098378506750641275334211308471018495492388676903959382565525163488754756894434506114601865795299620347994722141536344866788786715264942439586101689391524838151527157429118917901403583948458901866130534262441253291800670012650748026138765949312106191484304321390550295726953918395427592018867016683004196618447598368471849349802530095589709395479941967115593200000541063346669489980646568844703131136635781058625669412034614229407704543785000024471132855715182769338779684174422002882180014558462224506270398287662437232896181962004091712242636975051274444691850624663245820949276016926051751430084607935757330147602557358267538176376229591470336073594085934511809855945787523485416906422236065252801020377392625343778814250202093736290733333070009020988044082441092327531344309460659181002253697952480209191304359184724677612590684015105388682334762197402948044766911186676859933983055537785667935851078231629179056938745791523213157611976251671235965181653486169642859803679293768000466957454129664605248524302011244598309898341317307496910043904995131963355165402161776664397788811878210457798762691993582652069099345271536285967970911580632828399531345847597750110809213449551610476651151661120162106762122674953012735059276965114235699108766508627862803346269692622185112485401755043063988532767843392215194100369841460696549516100874997165126528950398481855024489171051955084485877276847123402267575655365951390690059449017125440821379388845005190493876090721837344012841626072240628104323229098667416766667329031305352048701765333224721772010397710487106437195270084525507143151640880887168745075386751201842438268118668054482818287001036702011183368045357656915676131581418609170454141678927654700689176838343822240677316755560850917241600504456625597570247872388406006858202937620907380656831693011367903999818917264678082640391154505296608795984912593723682180678099382494053204555444180362791899018349268499242292035259401311514957724526864599519837923548631830032741426257884247981035651153969860416334709713772711546154718312931186030617404326405064376608938790384868740728658107071000199866530184951209192321228328877353657639211024032321504823574618809257414577055895700770841443286829146538787928983618403646676206410942281008952454571465889287542916017701758774975646987300178013150830815917230564706140094787485618065895699743253199801095485965259966376382146172972029265644750254159320620985067671911814013659119068100209220244911321595243221711143674202733743779162186853526215541737125452369764410425379141914903983409859431719609444537397327130268700088117002605360697977226007022367810288624204247397618019996158568038790753953488585983483588699123247685892580730742477014960189891155746885751748097103016826486870959026373838871353642873847915004519956905621361696798199597218430179829538769789668618486065795025349335334677857801530056918808891761581465624003608849619217981488536901009957219861134385540191193328835010721179726925260230353943770309325151640781437865370052197197058614718900452204486365518626872071145691538580756980292399487064057896396448137448278901664412076944669865460205444211677445936287910559694819736480154639355624633547650029564340545843910662196775652624694340763335660193827976494105180019029038748539603608212202528574595758982702009415156446410331796610181145011666661246762446892551588551617103179806787597584259218021427995343404700239582106942688735051224318087353581599213783982406810494145188556584346659160153226392852809878836201430086132809000091377838093471460434547913383302798165907075543225378922039378210700048141552160756594555274289745900872426219773575283308716667551723003497320196873704421089788534508391910958544677674431572568170558401251248589684480282277230643740179777300767950456415911644469960101061466008817893372114346126301368471016881896714131137150930035442201341413318433709858350439723022553135097218244734037575325882075966394971956080741427836221106451030058551092422590558986259109313279650388051136053868229968078543262787414023700672143244399000648694031305924580746593099186227898676622143087372261835797119337597827698171498008706281893912730135595434540808794195384895347433637655973643414225559118032761761694867564660470839029346381826258469254091376257957769683672717141009240069238342163381200915663397019103000347536780449801343129457044401289925417050591091308505375486625888885853010569313441900670404166660756124588174889449813345238873388457027776019154445405850746019404307065158734034517292506202684253162255739209603373713852682697703031025798411963146788967385447280161206479222309054711268063408168567902447991668657770900603184614370408317093201881040508795957686993434147356836594503284254027699191442950336663279145784620959283982147524186644747200624092573755044472107921397713982673827520071082313376293228363730495785443606783344304620733861001463530237418117730808935242493333733737300244298546335155579295625952846367648926388249335305074985517975028786510341755050114238877613117756093333261341680083102138735754424381630651600284426015064724007441734948043093058081873099375430051356080879417878699003074840089755625644260591391192780323319819472644816281233293792380378280797076072325701325456198402486192524915537116813539762200416138000939706085579609407672448087602513633734084022378213065107817817712558168025918594568117453400447073232043889810556570609658445677029081615858271256639655959814894494143503344506382251974272378618740373529339261921707643665754312740627947990199901976756628858452272432476097531094698675141096620797767233742742664476228672636686164593867952655086919853415871139404483947286656917004071602433402362662675873471019873800546233717532068834095949349749654686617132002627860184520839398150884235563414578366333724320747681311223964633700602917018704476496688857586087263597400059428338199617328176119600020205522301967149039891535153344067302125706368472595090858686355300756199656971346024710376833630366905622228900183577207980024229338593876888066856549090008094115366214038563140212768168498843579805615047772572366340374138747290934844765549842631046735576294375100583799077735361912754422900024842820073570874574236530971137318975919047561259639911982108698645120016463098015336447921252554847285198648849283204224493948219133562125382238371591630143651528120112741879081664773240895374351808269432329494127471549086261756740604049588117974431927356703518100161253098747572829265202134590675083093330381438179761937882575660612191918396342406401442822764701604825530316860970899683133309833211461345531501643206197680607715649379125897732633389232724413559690807918599886676573013217443794202201848864044546022896621792392133287043602376699833194298280076688462490741758896120555722455765786701738576037251027429442765440936898133672680192067988470433166198331324206204867035037673353582803660488629895360522661819194142234321733488680273264737221829541319004094519892477329979071448724373500125189228070557803968520295597707668422283925873858114281249787939229690396997508143667527252424764905013522326195627548941242361211653110402324463297094252366660823200007346173111588395170782134413626043552820309055371869564377767697442866366908224096293217710879563759832234093022313314933157596098401280343224133257069530058128093481345533500463422850348424473114303349335616265165746718234850711470314430109238923634038883452101607166499656151161874533791620041858540112416648289214145776315337552165865480167291083098090671826825211333373832170002267760168535511072316973442795780356241004767916821500775680205070327048096717449469404183242421758112669810025018384343483296647404440292456171232874833167962633442280476221163044901197514844078842330214190576487448698537437707900899825319040272428714660563175982776142685628731223732382620487879679975335355495707691331926578232032579616899365871164377874113098323520020012685969380431555017773976659048204987819615342490529066202702479699386958100661276870826114760000880700331603261667737068604688807326760607026158249593378369634420555169111262017575973350037403626494341682831355026621311822442431464811108662627998579650533517763981436572075383384776066718610040926013439572781688801903278348712152711381622234492880095782833255214422089410551748212337707577117774435120038843068812333183344770769147434500559713844285892652436998493311442599057715783699240788729835576333232807771337512350675471830155108122138182805095853330601289379462529266367051492430545651825356302608001624770754469855218800395749156433698189474214453500918438323484075059525105315501348137220997964828234131053260115948223691901488452456388461070251503879344554931595711997193426502807885943869410922576336234500714548270956023812251990702318246333849179628962693853070450924105691957955532095930387157891490494074666583037575441902569672041537705501408333039261044842966938351059903577151126357655208516477022451848583763812101385360774843671526546785021031559372358484657229215052989745245795651259559705670038735188648881478963749920563562778075296875989111864988062373033422860902117092005320229064327796604482117501988670930075055173548809147100009617581999988535580670360910273263754469100646156355121865879976618219396971539621389821849934742360931320743857940259183446065592724448710809724999489517869669815513847079663704290495005887876167436489355579761778850260404129008140639034635443351987638104268994100960168565155928276305020549263131441515251343690156612935062330390904143646922123793920431329940821724926069784066552810766514074455576727952786792012161310118638331657673000942792498391813149663759687736153461701065116123308421756365812038215523002456602995178366361689587780217537264376792553117362963089387979966201217581472301558663014424679606614393343917812424470793006047336897747944652208459021105395914843120951326789604381943676154634503973023060325862869394355536528623612206701370447416670031494122260867903368820114785701439720399536982283751351582363318355948397338205743817431409078879998299913404404658670675566858436089520143306871021818000741216126425891167937043984783917571924404011054765997825329970395839071277475886852283381342188654304566409256985353592112159396745733957040995478586112165446676048602114211297003705703898600953107128738877037611816424400760846679363785016161007953438450667253522684894621834953327896422016729282341457400671887429406327755180626549104198321173130296207332505102163272523320527712469514283601667014509556445140738924319811489632301328226832094128287963720648506083715167419722782438443924610890453718429335408493228134860197405669703165155908860126025333942112285345020505221903191064056723394653126244915324591197087806346529835287046506335085664523522543565889925633196777336055946422928128691156992520838293508586781677425922899497979235967850080807163150609680682314653918929962945146805677251038719444970203177274049462275061010840854107366519009890830446549593681481614493162772237474176033780513913316628670733571411081838901504230892715424608143738471376972594074371861908924721220154345350128787869135024678817381552183965678094037170492358957391287188477057436070101925985138957668947570333757665914015355898024840394583136658009077377499576707381322185921777991036769379974828208057261599791158427452576776530917871133152757335980189573926486675813653308251686466291920248608719921857140597572776567105862133310883155755246849675932908734505871741330020558078332674747591467576797287226730382312365768215413204017019397196881559698412766234348022457804987757961586015497082939247813331596275910727987011413709376709876523737524219444357850437883470569172458450797169788436665299141903980243361008858840737398108317841625612209526182254768194353583355000653589280343361550456730537984221676773432582832114684642847681473207385906507483259593212409024232352574913120730705371421346637660524006742601387080449606124220353830316423783564160141161990962410031231782793037824803244225042900181449419929118502525590662863833143405435882672322290054399980276646388941171798296953021982358023633130883591457268913038608303231672393299666097122192713383699369782556951350087676032911449278742912172581866277353940596708696076867459525283704088254758859540603182838520970074442749209475207668322485830818581820918262778181108024755240497110237942067055852250771617373711787581672739299669393657412230352779972046881059409030672914643838114852064493449647290322581403171986577198021389194800023848425616409702967299463907094555347473069002011445612764058613243262620784928478479156469064069173990080113473249699340648892518794007652109643480499582298384473178839834032996162636882565739339937077310473879667449503317091175661610667584193157487441922933244444688220362152195287967886512881309234913311911965257542310253394424627322843074292671227034400377589356992499491318037082389636428916842510803079191491520027046907810752403789576831352852157484804220117421033386698698981982420247655067669523564407020601204398335550645773437897940680643955836956463069326159522857484153988355967545269672352672331149343309703527454408596043922214037931136930938425952018916843064255123431603281405411700428122044288600817683400451700879638739588773620595670051130510192742441493743001409240784365044121945146015518336233190197904222117867391533912301266588520274216337064799732606818225454647195135824181378129460622711431674703790255256037799921781154776928473997222946451917472192237951546562468821203572647159754634733298699658509183817492740349852336237592011013143661978187854086376219461258641514547501738164306890020456663815780765400991613361919260539710761463566703098390155474299856159075125107057376011857738275197323968210772350608207056294130613559750320868157152085658577545809090697475220682439468950724229667116714269985446242545793532202889423946894316072719333710326896443166821906543210413657245294807297161619580893170089643687127197718017637742578942332064029469137691477959944450275942285875988045092584085025215844671517960261083592450189274436600090427845309161970503957839582015306859759573061834733185789689436801040218179994946266020986093320557187317758339572879864527181697391464877112240850092051733560651255613447138482253915000272338984863161801512199439665743842948718054118082894241516762682524640014428864521472056042970094162725376163508539028166143110360342693514423146712956212553551064814633379502181657121297560366864745798422187919061671969271032259805128836755817466997853553320676142335305383480190225736605360619955157705010712876267376138900238741949039881296240820413613563854097463064991577408162741187323483562904405519388471520988323445960518761816194167417011280443332661153819159380034200496512559093670466289394677964330622744209735146173511845642216472405090555851822555834829637270986694349731342327261357022829373182613791226150243224103171123627668285074965956005007174083614860872946980754498950607856848644687327884770657160534471780331755638048226335948504644340110926367403519370473260215404583194437344614994514583596881914775087949958826732474419161743872899805670739735363403941880933419312206819142703695861942641247548661667053411055158577260796641803750852489861223753385787730349954055706121252577903025751355792894933303185618061757170497286790590748726716537414035097526785076034949108497895459527950932024920547805032534239976098237070057539893851315782367465887269412322643219119422215976207767354714429691284668551546641070982691031747624112992160597843299869797613405838638950090493178900354553561293910106250487810928603514092983038672967682914331747643884122563923190532776827062663163231617063563939353623290095440541920703682006246203075787753136116718021300267065841483727618603890727169351904191851277248277033851533175890810296395727140290589302793479951966116262015328474855654277890686166861540949370327855024096737956380224183919609904695515777356950360082862654113102217944963871660910465555889608345728887617163384443792759576044047852664122832597327436807053324342551759645962719258178188239070125746381767278858821894619491516706372136432632336019396954038371044895657779577143435941932065772953813553726043939084799666681745379975422398427463199723468152092573605542318288374531879627060512479156263066464881616107024830680334473752369466288097582181343256654877321080729501787740114927718243476122195597162577986214252941822781172351762474055969523114517698566829780396701605159735445142280433231094436432908328010233779324085229321918067786064156440991131952439088552665175366349939606629067935382837094089437517983807452582678152085363714229626808814124304567587196099820141260178223097077694019014477089397754763717860949624468040679793946338706026178740093095260813929551695256614883333747817400546051605564156140195625204554974529247817798111308330761585424125412380503531132206737506739010835794491428280014724816576920581029040670013425446203925680129288441948369265392305933971979163783400218166054093267598149224476045159581104643895247312839148429280247807929945382093925637619845997541021990054576591829690926944640725925319194138693620266137127647058964723665871788266440645626722257051737321411784412568529001500071898714804063401387688207144256672852407776033599984077981548161405886777859851495739221272721802734169762230946054654912250821038190413512698830419599294708487914890308346303708005559958939075352356024656774991259170193898813753047097936342580951369438136361835576115240233321972954120289575342098186992085930220034373003867112339493945308547899409427728311921561400981008886887910232208304247360617379787890392458713883764673970013227280814056900463807173693122720902846977548381209744829370976175898249602026825216351586968392842974553968104974670041061898420958841865014940524395870891817141715089804169539259999120227122319265818932053056830183747390723418166974469624751877543573204603792355042944552461090490842246647363790225806898684906085503728489702365407313687055213954440343282593272622569737114591963581881724970798202894416543006149809993551758578526162951622995385275595560368782968598440540362467385791228045437689331694410796204177323020845202186724919026848415726357215694807988288533440105637731725338710205431252067170627539496138706091775989232277981315052089234618557072659146184684033889681012175541428981176744240145883765903432234905849703308932037024982817564865928411154119094560687035514065066037225606647149838247974493201546471048863890212505556432402086261384450209120056204001461004825618844548440167413819322263536078121664902731231184155669390900079313823408843002019749550730459312665939037650132307987357102723034471319650845345659854680113989484280490485866442983635363195345839590968426963258525911865897648508547269132740682739278369453547220699171484576397236557653059544576882165791071932084656579191197663909781786736387393602641764381222350156044399651519606607800560621665145706787574924782107152252530990885331240086031457593442896803375136359987193413709775617678934499823974656452687194890484039207249889813827910335439914240299432823000255040019050027554501331284285031978729784441296948964562580028327971494495850915299055766996538491049810567542252041189041235657358230112692318831310687528109867501157614028423940401553468647206701188931801851825427550296684574990166864481681413648684869539135685360200219798973729737518789265091841555194969769501753619625182798974112672184243382596904069463151473479682849237049780952681079389907816081208645272528269571515463850577432013044583483383911684579589562668977981736927663453652656736796468227750276296170848422515975304659010919276829988032210078496862613784314506565493527981934135976169504588879663748468129802809779010289241328257182371338124823496264786713178405955497974238765812594543907832730397561285233725415546686239215204981197068631712723102025660335898154816304585508652454719763129046443787544518797660671705951367473648588150351919859007874331527667254132138927563305271106434132269134319006802665730288229260666859244805360162792741540951614171392295745001596583593291247804401175334828706046460411508944522851420469775881690596362487156165925323621071769252499331848787098170144758569754410935965477269274958549437400370938062612843335033643835631506500834975343854305602124776736560692906620517578853782536219522502431865710687051526743303421612192460314918515570009878468287253865237832055742902650851330120927269477923582303249840798239428833172249551679920298777279387352749840529094888058169900823851377970208709171805187090174904614638159598126678045415402728330512059736424098051779623172092489315719708766974570186970384369944975552027009051049977155486773833506957378370185910468903373618770723762696749316053458432570325742850645838221881325130919084590328415104818181347209761089574156738331886443874384182517773219290608400646614485007913323891977647413228501488945172880845396335976460250575032266768408608016873934791467826096421001375977908033529378799006104540590152065390975692076164140610224536337986225376680448825242463530364094834889247610680635814998198787992511581265788138132192196048441386248960957235109376854930175898292611172021064062504478700818797073597264544302523556112297454363362465125362935743671398222358888653040078101797733016134409891336495879781948554201444860496291736275211631610759359531028512076488313634352935920038715620487864233711799321900562753017522053616508113486449449916944272668005792318218692875312538343356210326584230063208974566372061360445175780757796525479394527482801797282807958262081120291302812937512830201087340435754661534578581912643366871257520151544427746381982685983495403040132822409722117707488939641365792095914952675580847889197298726674966717493646582190541340251932012068060884601305458010850529322994780410952799884328644783172573699561097932613716940128832416714930519005349804078840033912732888014129640264682267400519364276052732946292539505796392333261972105206107647290110041719701235846615279035282497861120112522159290664381441239359648858827062342593027075829320819998981341056314352787269732638518202033730578139792835399236285410249025845747147524878134114431608721561113387151569112494348168466761438813541958251652541275006405082148806036949504138133185157786270120989764961039559736572711898628708084312155241133827060072237669240014057078933306789311960475989835825220512319925607700775510201979894255312857008242981857449533438058632338983629218006185258540826314289577036637295569556095669422274255823933049003294052302470020142548202431008820624809083041927418590191509817338904456142301580101936479356186267548753264087121758143087813553760500269459673014715463801697369943460524127660915243876922436902115416975026459664105829245030257419658627346344242082880586834776827215189553455235666027817577630866585287295149885846813884853171141767037935946833832074467585989994512949470041436746559873068854589633676181212269695086377029547348397092193622615934141533800557901959153652041129294766678397627336626039610696898567548618965348988823679107618027128889382910584891415108525510369869851708626953694875152026103492952972072728285674873155669262719507631451903042528763468046515290086822534295599023959908020810045762196107064083922681447706407028985321969177064864746736275615195958480271569050841270195215731868337521163192839266321624222033128226489076627371530909366609084079343574329676742788183344538489235357733047093624906972086696147370428986695666510820584152489313447059920767303282555910627354034118501490253341073984082307046783921722415934909401439347158845718985840169638405841960793029070294918584275135578981205819371531300765912167886684490275314466123124706902447718886398492124685145308087702558960230315878059581959000249006144736005322754980088402054129175851043711525984340494659972262699702300895351477410098470539580513021388548243663332822633192355798876176798942149042915086965400021669709495020729252444252778796340153406821615083625153503727774561983268644014522582181140385670202498900354592639639257956791380325344458313312237245528089580096601615075613242669086895863105217399965417596698226766650445506937662799039150489559846281732214307982376716581156173695179489054507799883511982194215793203623336306263672380829314048836488362829044123576238789160923269543230865339488064062816621604770565986764892747898904535849826111104575519434802911835965579350827941871895325927144075597140842455156929514728049547633279127018962811750773255608890400288964878070367096629682372102305021031303162679990920072100133694342739020200157734034482666107540815438536014096320724980464765264124712622197994181664352901702050861953144836940259211530282863581227758827853232543252162304934940194677690493796837604725243472087278359710868968693161949009445398985802678713889722183066270495015262820845896768658616221035874159833136735026852860771532869868559646910014487546362648045267385810889562761819863556162087866595188745713838244068860319510121068256221656109944020056252290704087349353696432727476525520782162026371008467307660194244178731049769052047952508926064789153560737651874249147151284998269970532375047176562042140270021349420405255228473689709730855804971752902472559174350342343817966052152809516619078480388352786644184841411774275469931627410268512608043731171222830446272259345490033434620123947537366339096382934155549730217558651164887848563535696761060647120418038646377042480942425466670230997232888562888771140369140892040196782869879651501256133083823862653340968959949573834724233459512698623282415821296100309515617172886162652040898486777676230733875948957310008018692955614915240807048342362394265981215775192600365576054943224359938040574202208927279052431589015875499858757291167849461628784842112007294429132726071045094953729564546240091058536395815254902485637749091688712315145905267890681752639112271958789635968751276040063176534701855858052797734632817631041339111196313762868467515017504911982423342574941428549973358024021593731167178022295937636723657483082534961857256463733974143911564874336863341314967639238194855453815619133346563815032678452356482768201831429368134899645707248287640665036386578111198248967303417830217565741668389773895297061272473385578875751296160403143902785707411136870258272723681627764211430205219965248732364818440589851495956390511130222993867108388619504046444531414478598185742214474344074114650282099784260939666881287737829382494706943628707200234308085348444206548277994917918309842746258385846828275783285993734118552098705645710906660537726564263789094896600017674877655858382468164132170792310675092671321100923380862005301636170343420648069770130561817568129736586894605611694300147108977825369799249805545512454300388316356628616261180557086269884752567581977483987730045311220263338661959681819032090906258624780026026303245623285006958347674839693866135423871783838842576120275157067278292238371534245913029786725145479064583624722717453569313921197569064677676849129822787342546049435150360672883024269700309797647765369350501799531341618885922292146782689229042870736965309640361860279968933328953248251034538089524543085514260477269442739394009847137392757941533189673238709158574832411722338455811460608263087942527434355814587789720440901048219238411492992348231454546662580169978410552481185930355878602664165379194805960320972561225033681002459982169317993504670555958432981354217693066556529272484097363562586757932237204169869168707226684172923153685340341605546921300906077564132062842470273279086215990462786027620656357052760577272299449182480415871242841082386017136381132180884363076928317534536833870563762337168518723507775068238509030722780820844116465624021255581451715673334456529888469982601994795685864236289389739966707194164347152679457915757957387459067815219770309984144655545123238453439407323376168875879855181606466657545695259918485987290350243263193855982940486899011400547532899024547279068175827966474362701232970659698096615779342940336341295767793893418974710157996274310467732325725065529154221654940790354171067840736822164931188026270714085078274855231712381835914895079749476499544121085689043146391564612666253601730567808724375814768396465476613835799072480056125871537507708303830768531166298425053535655729063229966423110557309922766380999908151600163342489086435727121354874495424942567544906803041721258737574683986366153549542596171784473730782042946872266036404486793508426682945748776979327438020861878074250270083635458361019806100172703710447514250121889353583241279313469755123617890285529196323898808161974164768410258836602445732947177129317426708511878022413152639449522530869062407519660233578048263456399827587621673401617262338553450251817477390139480535641592838274991686677505842719065062541075481143465853162340684201166809077006923298409096471092108626116180244869208125111648670686713002068792406030828716163572087392000060010470390129452633149553537350158203780583993920990748558625813418447183763535478871830453966465506192996945211229809339113314087359894616743060368724875893990802602354933607033705090974232543603951102017602164234775574981313401813046941203690222052934035424940196896249687587860682841228792971510424436342876785954902406705362260386582143759645181726533595117770350193627300706084240389107620130307622922528627202164942053922640283916921574492803795212428112160528825260227213840978152970363284036515512637789263403453939118755194504943398665123761519974109178689175130086748919117843284517466729865960319326318288928255527757505012662378585278300869222006987663797901656706041647321906869822909959043313443854290253171611441411841314830954055480026492137608712897854037736701300624969787205658941671482413707798130706102140316257182665824191490330995783905513560959961118428993241242815018874665105371093474489435398910331400330434322261858169421011291778410298330182129728967045676548612825582807684856763327026805691621629531664830347211830580564617191379668334486274666642529716323305107448281214386274752355041566090662371585065587991238478600242641534160206857318015018115581695159856088459117865502282804258722807589694863219905064591557589484194678136664145896974031197614983528467543166982219731751821098967272243112824609982114259617304025243924295499520853938641767714881799829918760584616556422518873411212310240902627853497071167485742829457176902185163067013606406422221889736146685157193680140418762340299559443665851941715882749013272443313069867467438780565751362696987599717196287469764291731804048235622538925345456354654588594953392521743495770537119085659281380791911089575716714752971535212749961950485423633284606810446524496668312375066388965628754368198518065159075629935728685712169454051149330415676003805634581151505265341286207090389657371088896281370186084749467505664298816804790178030796065477067168179582352750015086227105492036995523762773283906038755995598358148944005288160569997697257683640875042940826932231859418936672656016950016886991213634716201222069118268757120707417269018145302196222318691514512190581265079016078178033914607758480653009396026594878439347815919430524229162346637029628883807784873919052047328486788158278904860639643589060552209941676706297065488647463263928669344122486862464913321978333781786694152202780136496297027058445431893040870730188625494841638630065109034308459886800832347529457648292371884336054980459414869797568449910911549856034894478113244148824562669681354522208702321498446812042339711379971389488389841618356302071361516140504490032235970488892426946944097112288426515624606528484010288720961282046660652604257825935470433438151066662647676471578396100510443391272503896448520062420213838114053972994246035931189026498762401355273030932590791050344589875532778444415091612347503990768743881464323033574105730530748761503267813620808768477246489172445665823682924837174432172946018541617703702319872693764589316915947806497296952120065927261183926785019503225549415631147569277920314886765559532464343727336675427265815845146593547381840849647583525593697028620771534055605714508711633613143890665393616923951497461089127774235048574829978075001133656228275223210762728624184387797603626733959317363261086524513361512271544598366887997492580336979564632602473295246491831122832447097986739113966117330182994084320986215489936898267225022981033134710241874463679222318046155644618818850632529041368127265999844256818500976229303494240608367305653290864498270090980885549868215659098316018468956607525670805538402685303026771414631441666640314163662697049001859318198885981550833927516320892165343034456163746160517193412088335953963347759343666540340560687717796161477927569120531658479555243871236295555605911198826099115377068049059524465358658891883825796363988924349979789827769964561125110123371362888217290255769286724107041573154086507481908577736776921832383376236610290986127547096797393657933532099136688291923671609724582189881702059850989477847281110981439587417893428972702140765744816551284835485312563665659328333219625772119301225497797857526075172932373630873961011859905317502302241515483036895128530404090269028063078414590051414360330058667616517641795138251353526616639215842022216204474127578058811512792824455935027681612381897884762947288498081744859801163252449390261887696742762568848753209254311691463525463885074236574833670807620992418466590196865438367551957669072922890596711832586563596569378456799373557179883054540106704982022625654267949262255921122986664664911523848653022274162297091378665556666126352740016193485420798385630463688964831492371928220584372328266861546854362627577720815011460764314728732282451490188134954961581347926581348356338802983919393675999917015013128230524356377609205284441408986808602752604540571827354239890412810873474307753843150154559955694651981412162865225216176632388226914689520154813998899376834122401463725581431991386246267909236566176188322509323703180146844984247025058977616803785386364851045989642360888542228266411886010189884717302568752524617850335060512580707912067197448360969645147774353467062259285580125110024151794207941498991389300472029406403247743755163389527681512204415518122996082913425210547655393825066890665801314152427720103688235206520106146348572783575668971344763389471507075924705797472196524532224739191175072612190968249907713619896260541097572590185351874760385772340649482370975249903718390759148273952123240310063998674694745186901795591013230121084460379220887154507853056816311890603278788582569070720577501489400920022163196465298899744400585429103643009545521676579949000247632705056585145108774137202475250708501479830872551101358486470238086852702740143306120864871879731894644851859721204966762792972413971411726797038045753742705034179202954344009692969032487299349887748510387248088528610550057884108888557180182282367007649595443497012231027247104265645666539867918223428406905050298937467053207449081453857042757852630761072131959171488753693391246551064221574437785765017501811452316276917213532943655312380125564156222007102973152570739660683858116305450315068606910041305699734816135826101564908791519018219364727287204343482155837174087696886730959331372132138851050514603290814224200484206254163362795520892803082659346683594421462338330557870555500308847915968203583135886189822155579373492161362882056413352940230531567873140733200499638897470221655443818539676221150381272674285519944432570132993478167450424143501583324092760997393195852266129980179323254041191263103085096941684559381195726688628912617939869736473078211429653084395229545169902839129493425157091326751154174830069212636988247646468440627598011051603608904238108499624070963570589566395006333003682472048257215790832700679244169198693412951027238029496573149701029929784236350479822930209317240493705777977889751483011985316941139301409234229410975847033690769921084384512051114120147963572412459468600611371125074291984123133356840989096551817365991584905073535778141049589979142686368252863279796919860328625849962310958031350406135202969770605266442899732531787998616040864915066239199805482596955557515418207100855554834557167846850009680123872369834581331125799017832491748680961268157242626577377502318342771926347056658218528503419425110486636529871721056515025015429763563731333312061309195306919269650439934320271277396605872255684169888614636852776363681603745905759429441145971118719080745322703961501835824414160355294843740823456989840852177766799300728161668668730304219918420314386446113268046279238283197980450101933763714336452475175166354272746334348201628752860203649513106441186274555078699382066215594859184994304989233174504252627497483267362819836104610367035371501912023424490525231171152713612498462792493791317440736464808472160279206759067945022604981667164073926927940869654029864723777704728785142826069884633976166620388450641933321202527688115561576434958087569047912049714921346265408723168460744524204068192275634734792133838991379438921707665220128644638193438092811514230742894250411943649191148881458727931549647386760824110302871858389759136762236104793043368844706360599373189249808458808704522346627522024904422897050434478337594019606257569107329556637920629780185896279825133961032186425936799421230095785310093970811484976582521357494015743649375971362159845678900384189357352462353492348165050186625685520836456751066431933259139509735248584828358169582707929993124804926792161492993869546199302414632810353573965368438960800151225396857710049572776528091723797824647249973680996101411791964741451983084439128436314246654690297946944777948564762189964863072263803128767873763635179599855858456617777802178868333494977593369900171748725409103184692966124241981001452463969600146742131102956203603600622123334263540154309840258676297758316603035833029783111481041489279628726553762478186936042851695716795817694704357000069264698320157659928760595274229123200124533654446742095874787521124406693242749642922766517376410220545310121361386889395693370356988917487233900489508941638540153806107868906146130263664969668491942676753756431976911876311469419660173671880241013356833980663004354701205705810253184129376527173980424683512544387360758284646141441801245516137715376999969160447722979923493448866062159138406119097951770130281765634302755043661846593691782301678770634021525414567104504332761391485849735351281190820748215636464640137528784028589280076181304873957142080441542229455179167808939840904912085993870037329705556405371301240112394319121118341126972517566890873599166577090085192198569426404522138212948477776698529562682686527523419205201476715034587891361154904337802118571101245521053744922594696351292173135789007369217348895607174742092444765443448799012447082557064640655354942986668242488221140367469414106211409324971710112216149515700047573154518598578233970074050397415469420974789026557002409917750954743380181663080126686935998676948568975335813411156860207941388012120659880020621774242709565738387647437063873717443633593751463570313116498365619332891274713839896444899528458458671873315962560371798483218798979496799635404700532169226974326222023105217859310600768103711160658909635068318977388766400633340562820593005134415181295631147675900878331189254582367009118856683962010681013536032875978034053845525893755612129679684321439472217467483513586074765164366751281984844710507177864074975806833029384908589897670655770890541412844240727141268201817311988792551980280531628286828776040425354727584247801996703697101003173952912772840101331284222522891235563432365564971736479279539067512494459494798075288620282051949999201736294915043122645033409980388272364802704943900340364500729813277897047210120856459773060854437124321305833517814668577011237732542375124076142303372805473832944833122086822218215591496736923354397339067525832689137596259527606133102310846871241345261786236424607383987405511292633745258220685496312260783536301934984955437130530435056753561251760730988746563952495533840286559706703034039554341169180844446544245584027868379031725079541079849161973747262064746264620287467002789546151602806560396840308701062540901726185297866697417420595972640936249673094374703031885453369460286962963122002152963467837398774143286652755232770747425602176735766931987368157621979203749924136391090161566873357345465139044940956166102930045722676451652238797189491804453353994000748881327077673521863196107297155368052896500715955918205672846789498589561478646307618709190862060945422401636983175689991574604690486545117319344328322337286628085129517809648488345167860973602647747328708569052307901353387639426210453020298009828180070941892199848187533880713239775848128733818199402740999366432003067754122861000071078304472998478011758761432422891935146066979294202615252938599828930321056232465881317942461091692399028339795122882971646918848586893708940697049514280282099356505642912797988048573819821695648336837861631815113493869022778295077357264248007024063947451250846797559835208976016955626661836346870033308546601709859348365168531325346334002222555450545599584141471013036565365767774112290829610908860163970405041694861240541796908006372236721324193946372063991033515781712923236964169165567655394270931601494202642064220868139388167496572844568783443256694184178227800980622555998861074112307572685097108922147132820182035866941939708769590035076602022130541667302527437377617356258673491073157618641103391947837224439631040287518490912028656806191055219324502435549652976856115559517730621218688357213880042845591753325662928273397218398559516579901002909323976152567244961588919696519975476390921283169126731463015032006120674011029269399291200724829877138977630895010391837261528255080617832238474482301077007512355575776648283927796920955304058597165004324331627220122125105223468798145794897091112976697307285831379711483983412022697485018121844344075089537551590308714329073304137911309043564096203628620418001702584799004084449155827466793259964009095746466514873360105929789738061012107856503526346589123860647735380870093145017747801312804055969131549592722769400563427490390009521722406002786550140515930168006598828138733432723086205991988998175813890567550344791736413811644676497038188749502631838605419105274339284170716252562973287483620836547352741385766423797659520333919124429205517491300913904856378936192300839282248706086088742405104180461200075920138995609684679584991217427241037480839103646542139815942595454741773974276959491932496241725684891611982448374898322406837162910900759441877622106376335566823844335505799476038107867418104592674144949307543017794250898986134682019887733589383103876893121851059613224774798176063878687523478935571196969117523413608469697608806591605950445706353627709839413393278295997985721002424294484973651949006028604331279169197518525088015088821986536784089118981460298428804452054798114087810803765778119093254965360644922620747963892459326380878866102190627284233958087765465630230743886507215610975999287664703160646518183156157182207653471203676814626595945503323730212667016831486693127640033415383947807444724331292332267722490795877454213865235179064364656871623355665288445154996577267962890819063846831147363098018107174875633116459186497822518177714789299397615516391727787731727951797677700447062735859636621914648427305677644642527825026846537901588337130925596245806690530863504731146565609429968104126347010655093597792087827611192143480551673639451832930609111165711592639797294311380926494366131178186508919509379162984753808116876655557361458883380600229765971760257797414869931066149049049043206879036709002596325931288661050283761622256975285162705510299555627723039510601301729902711112063528805027570372109801054667315501239508204424495234874071867091179213845563711423381923852966652986325392424242024660212909783589367631087651871776867083605384441234057032474356150442182841401388018438364923724459947352851012607620053896700479457804696216334667311299241422941902633394397251246413040273348391824595531907772794499516391638365489132179744211628977973157904578317863408611054949325702719567444514993082566611609025390712531463909812128559239587553481614903850662043224916978016819696513089212348735916933014996025562207550322829276806819878801455127113665911629917795457391073054516724245398789753765810701296399702263103376600675613517710558415521041720404550718753726292222899168561313336410763937467143657767670752156061824808883518557798453868577520359373486445203791622210852849326094560915076551121596301528976576432939694502144319885134808882420319665851198211114173174161790123897314027161695957831393077146290234750524320698577909992621700286961841761110027389349448770516224544429464549808839104597144018533493323175551816707468002418013851758160868834229269093292830461736980037297405918554799205386610595043065743008827473234123199301289418442788141579571238537357867321824765754283839370737201797328541546700490094496765205378363917214964518735224811578513007142731023198387373167566206159832538755623902764366052665376759032953009805837875487362093132996526305082074679106958248431736383194807181461828966231008536026740795747713284230895670666352334416771543393463536083665930658373340614896385202988956869103989819898935073989271300671418467100476506006296548640792087066830428313382576534700662493357854706647364931375992459595858521828095223981385228262317673891869500333470182670837698601096845433323807862088605265678721182016438946165782757390456492098128596085754631926423965269490933152443949705699700475787246067057479422670074660897831625724024689344376104871994623108677575509038193461504698210307478336843009315447697501912777412826253416117672409020743884155804340491736287824057438236406475122185210754268353485145250161446749026867928539631412250792084514504883633726469610171475413841261959555010001266897280836359671521452147896105972029388299192181808330412315014878242297388108337892037897098455368504509226805120003064585234358560699181669918034008348120355214138636520881245277112027527252382469500456660798657146603894206643686164196487138676265823979157276925644182832584169428818955598249302916650694800843395427589819552095566178128058546804699746164444013420649703485194623193280758819041873174158962449547041307824824209851881893494984018551846760389437355862367166961879588115451317800406168530191232043833544795791780408336012413439906793774898169409363637189370091596978569713223084269828581127520591205333477656278803972039151488595575215303073612272317252005015135831993056911265707145164143058249466860061276114133825744106759853933175487973978487677074787953141767600830030475452189580069741260786271311738534586533392663239218967999977215604217820628324773095474127129342030260164566621963435650314382384451936375189494186141916995178064965437982563119800350903740998158392303250237636974867287333854780961186063357189325098537637990472030425222451488725143080105411691101225520878641446500653848799663021844947738709007281653035315520216390697908047758679651158874421977926643028246242197258967182731570464872385892562813689220706277589227285425804331185423003525746887180040326905248133352120359411707450895982383357038366047239252035221182134014487170574408397862065101540426052880703235696431954959030925816873155224121841924116761584716024167863077911335192886511471717457924114186747037031243192281549275319793114385213133426372379927387524885475024355069202134087812644434601478013089583965052056267715715961334591174797154474826419548248040217705158236276192795195561133362395633143428990244578537341047675770770266493599494636753077708233346005510735128633211673621876340026063638773610146916994228637839221928176518263478236805242974550041009040575320759816303877617594896166612980981209676693447664806857382805252555848419587443583051961707634163020886161738738772495795193631758250135326978976904609711340937916508094967560008509317247818655214655017598638720557735707812904402327438468359546519509621588018786606635716477329765594409629600809043036898701764216024219249735475968017105874627467205597102880120175492744443417446963729052886769540145063401222205794926542108791006918756440309354876323163451179319950483810359292335268293504716453904008861914030228950386657653959812167327352306145399251092109620117643153621447749785596237609260214075450833355088930315052483100391904338958292418287918502881164493022669121104787987689361137069188248030555684001576594634538738272431996423066557326236238562209469440909139096583290302341258512488981280122970427734584710680109845008469026220833062035726380605421354868682008499001483823414481497433055355621399331180999770996417318447042285101031575540149540889057637917919219371482722712143884717353219236379420604217052219284058762977824627878860332693446212911668673149104999180744381842476309631389223376364511792371674111725889023509582675756764114961778322966599356177694720172923112046137883809070371567749575856551876702523590642304278631234314648737521749223609788342080944712853810446515722196345471521283766119406987079682746037790115477320569688464936780369157275150772544649122534919516579314495977553117512972616680386394087623977663125494994753275066274240998810330004401530376856780421330550520761178113433817191451421079929495094640730285024868938210280210081071233164574883121582268187838112636392158157663220968949179058697172000373307895420474181701067480379228471893088786833095063559550739866622631820817641610293363519620718791189703175410358441135995421272662999153104712134662612159655608642070295698135780445693972162348352896860493570263246741296951240260691504195398620785719754888611731220170446274250884644630915200010262978963334007345090286345186714055772782988935891386578750155159974335900214689594577470958075569943014792234076555764254214851685230249374163287389516946899112420578672551923093053759264958022152607708443112317239688926603446124871184713451976903361895696258824139039762796908236144139698145841566243993863070077892092155626448035986400966438433231694662586129848284920941092081064204686792813127292563207239981590785859857820542340573868042851972028019757711871245594277506759715001844316993361903515479364278643989313394012678340246231281974953271127759938238234534009799268280891942248079026626075154618140632035335447065594598740045628787611147314837314388033292365846914272766886917343659915051493583417506043632008621263029358534688762433819089846143059845863172128186012091696303152024078922160447644504141349641052249204002997594184100363315058330702511911269151754180231664426132568198974336112177948815223031328353965774633018853083378201873874333040447187200337315777579814456972888403002346922093627662482190105710120322907679446353510728732817818323364259730432150792050074057782170304224721282784113625765158818943284940393311908120486723924224170878423212832221784987479918772474479734128228271623794945023118560586078496425915513174061635979408546749325784319282172313298198943641081121222707435961290603315976203198437824675150996747143957031708795450051688812455689324282777580407842743383963942292844299721692240641661726150426264346055568209397228778547035818512566202539848979639720052098585997635776668639469822228308831396491010412334815099137025754225825142273930676722082964049541405986380958037951689127544455880768679449422067809914992236922527248247816495631694901182600120521459708874327237102679935429671505446515411126956936967563344447473467632645877128793521901635360190775164593940231548611314542850974944842756762115035452878759355233566233835424845717381010962067550370033983306439134370867644217539651304885909166215483141828727573729038804510269510825557692714827097538523805232298377046618317547653140128498443747518245575978673567851203728539040629445512338050112934011068336608412149180479885059830898344959325013086000260927777653431736490741558484843665567725676806723870383600380798827906540105946833475173938518543249330497607479131006703634256090419784837159906071618562817401181134442010371128644148496365554690613398432442164171612088394697731142988574025342624169078771625561034023851248710679307449031109130906054103910424351359330200759315837736750199222048637476023358590652248142549154039222956106396430792810013983460264091421936387587570318482930423429819507337019599736989573851834402521658661858291925762529535225372681915453144371264381821341701619259986039296441331935756098936739435518118960404045930751184931891057821409097628596711214055543690861875132810309868068370421416745632293664138642295112079456714267898559368984107738775414049818161166921243655591653868152470248722554441718537254592474316567450808425741779631000748195968221742157661833780591387074162605638184180084999503432156297800067854504590964491095784520147455140920583365801037648271691773016967384742212920666886205453408168515158420985444051786812491228928207409614461054028612594839202585918090153958840279906898488205000287252593720790785253361850092158890446310586027914592673736471855295024698666140435167137864316776091551287734560152217871443284615540434911822266824890545121592291850501739107012444428593621355219000426165843852409987151670853053987803793081390135371675228153611729092448605656706309861050629187191677650471571520672847346604368941825179178385929378443293839544245519514572956568319829713660708612841726310546864244644151239393484489967928914520250935991090979169245982937420628876247575278904642048352848576143692894631060149876396581634174482856368651236822578605472038874136974490026933840826148669881958126546786927639674126820331702882589513609633676779283412263412840374892774004259460056349734953930440653541337397218973203216652464717544086586770682690598843410490528616468436166081013402011406454854756368780294019167340966281066021035410568289921684600866778302946132331398319303209705866038124442924720258849449486114017070772310410657198415600534827354687830777381749468203297573728776096099720171665242944799415125979806621914320051593555958413678345569187201026168176465103980553798029948257976953331022448243930469948032355637759847645641608564093655503666324851145396047687265956526668076786653714235409407783351234042877862773319501824510124699890746443364119058227954544289036666843833317562447821345689092335941844564381960977891248856018437359955578558944451538428147042545130965697025958469938393624861952053316439423332839930642956115915826454848029637395795868251561578375217660773162299860039203357542750011042207054596115984667098582421750710130513644535252198092455359514476895256567261413869875469810859861000192215085026260282274102730378632011375958332052361780036460182976129164246650964812337002095849253791855221368298083782253084820543014120459162248729220994769822283278363019501059600415408608254846537169001616819359882661158905814267308645638452492219309492964689201084822672252763922002535810167465077408848876738254735353498069624866695411503188477737411752448385022213227591495588804046849779831546467422002880768277851313135147565796507733718204961330659023396691044485308133531223407335818796662693807842610189559140716206259309001365890930026051447747746391545776609334625849800462524571895284214736494497165587231589603457536572350072953930582568162160169794200760706538438211914025559331706908092887401097160168572419468685308086117221262725305459692090662180137949277851831692483309573060735228036926318511612537998438443015703923314677252373178119423980318281612099771647951591186321809938433619896652620196659663416140276725120040130957674503700610912704955901118003448291849511395427958016283482208535229881430742391870668345197453302387489380716686285168042433903762345234329990849165621060850437261143033993704605244434787478613684353592587205175669674784522124698801966455961263352498764913181533298917408411463538379403792653130116567440948535211732848412454596939530173275335012600760046967504911281042062369361447355846670756368109825271467989466837687418957008394032677597790076204414522068117461359655371341634122177107382512990024325255549735423942670095841623680856736913117000490761923916713545256391905664350114461502491582859949045911819733655230662243556530372564259137451893684647521791829176279504645949483256359562040898049545135276504942078433606552957540620021950939160569011073627473421679359410250756905517617647052317405765791327273445174266384357004910192095087113133923835819470691994205339567473550120389337633757919019343719743531644660751967614698543327785852264289461032850571993663392187919765901082289218997757279597759019819838034713689134223371856063943565532944651378476927344210347529577445944844258304383413835137997983522933336208670363914012251454416769928215666493150683351055979878857342949700095309303925979444601018570806238656348881200365139509447553304216785303360691287518288715150277922647493160523099428099771783705123194346118499003060672817540822479898568959060541340033590525827724806446996219137363196527603724825494492127313119879320738740092362002491557774049368149404435073444369100921375765037616754127135583112760095576814273390221364681550515317168089700029244898729017992355553836328955477027872683854161734326560212164000561439640610344903885104585570383804735473601546761778313968926114507966066204234691422582725319299957993790052889696540352020915867906406885233099881510650382097554799918090846898626976315138749715519477587432674978398510236282828619343723434546040019658517082781491495228199687528028602285350107563491198166205399645151993029959951548597165236218148513937261118507147072661365204453810041436028486722844458529993035761924271961804582567025251791274386430825636156860070596947119636021670283800377812887052702266845093715024316286141030211153846813580056755866602468062314492509149699582654690893709752350245162607225188500385233746856040628096885135093865763906341060818585002578370633473782788914820461061862219635072925950638821575117730011723765234096204611001512423257248911642254224019693517962799358228068174139834130315991019028325154062166993064428582305815122214982639867158175456948673962651347111656246022036744442217877692043451821144135190396626005348355583506069160257624833157697035552482337117134946421319432838977995518787830225850697267727675108601542747340613673789106392076621662730210974786355447617777161266103709045331126189954471211075554808053615512339493854325092189191389705278608373748199762173205392582276241280225717866025375258979359650580612713482979321297399794392111827856429444879101073592256051380720749845346308684963142985934982739079252362291400258033527561388853660064307887281777091689541504376171449514147539028060222749342755819708938023864164543361277877271276446159473521190398043648214612816253143522586398799306533076728828034824426797754118401496890453965246671394668337791221919496415056701523453385949677246735607023082017313008347949880313320761589180073820082748378246977515548897712585238119932536446266506237265708634138407569884162237840833332597987543661317213421388121396135574335045902468878366851078395984380626444036091337382603417334155971057291495392783433104201909804220638711064862284975532560175241349545951261983201045722954575025132539702680763704088215768256099421523065178096082981641601384105934152438303035284410119500654835060687179592549368988434725279603078032697798185675114054482850365356314216015798919566154082159018712679054726023997252945489905548897165634050419191353171441571319817017811331320718661387617429952566757628315649246573813738884307387470612578810512614118990108560239307491703367078343766111255005266980624192661719925236450915953502787810778020770475233995631714600188083088052627930173702242926036188863372931159170450336966537333390230163707757089733637254931131016665045875454099115858962392553201305794736849728319730430739731799639066460726703778469836417773459180173667483526562675802356337725947693261261383339577754571705463233391997215775967586260523777906244719959885392964948841099127762149011116150338407437534258786634565676284132830236052731427553256975717812853875593069718496278391764694644042884830726629957837548556941481988420710798807528276501983445935183959003701097037709645996183107762876392353287063722123018323292853791505953640239610377791991238193692326261752435859923465706381936845968265377743604742704171958335156151907084304789581412519996918948590827056316867079672837488994397328331871412251506913985348942009568239636461000488008333087299379519021404789331826748967949884438214486439273235615184546113894756996010769907560124034903158250567758958693231243780780469991054062058795957284920040118854816726439356481547255377540632314724592590761636537211332941440692590376280967544855391649178241786611672458235623287467871222388526485971585107287309298664256094458471035751241503007480090056977461524087278687562953888334730439148391115589584263890158930189975222298088588157791838117709318994285535746555817470987988632094083830833473682298376214505949019287456161644171725329078946017940684263100065118846967097599959218090146858137457011677056051233774602039631025914977486485600944028373643223098126792010190731443401547477627676374017977844307667777047391610051359240015567192600596788660724368325444228249836393289377598550890334683062275281446826913492128379881575553116416810397527154368725605720944140109276348242334191353994967159866114321244135433399448584989446690056807468722408948402589197317329902676082129131480046969512401519519160599260066067373421914529266290331064011231321132815658995931025713584715217919115912716733552731522513231779535505674567969476582290115742301575236109044286833878592709288239548681528676877402238263557404831580895285459931052759029919055089740836092000102742143683825065711784251705216246454521153150732538028782207058440763354396134086507001058050392629335143477149763002752136658677583101184003327906557651302402249844159607095816999110805665614832680539585854594603466370294174203171629844468677783259308490925258342680525200119327466907542556709285629291693902332034851233668141730699525189180630609616395128354257348133968690065181181260630311517208254988994148823904876062073537345720759601441217624809397207825721244511000511151976210845269973001289964819438244805265384977228233538760876458151249442499705697755787105232321083282679447871507054053999715200754269404410833360097923675997255741312289934404848936412851171184258346140223383281174077235448496513210747960029071278408603729841288611989218526219917566593629540949884909268306678642277657268664299112292749327298565434877187111259353606331562586247180482565186029740448286311943770757212363081810248877721843659406355535643760931452282126560667489677874855305762980375972938141917409609387996302308618111256709299350538407039556984631408205462922252608191465654967735557496242007476042106170546952180522749782218800178599771776592399869809387620008549560196416089414768140126358216974507743620652961312837525504513210635976181290048063632939314719610523765066696402240025417766623362487846045155239906247621911917765598212610255277736031397832054485032168638578659695115582495577401685749494234129354869278221443673142316172059201612747159171428269121142892815551127665775700466318290678702311494512103920470860498755377363169802561203813265847041102302998208415120527887279546903743774201537067756598714905844978477012044157884569564740990734594873331289893826547734435394502063326201162085763023359094685283345257200086626717083322223211783010921037023979708978316477255168750723705205068959687199683603386145221659106966251747724824753099699024016531544408297452811969653728637722101304240814586410885239080260518200369285134360732184045697626196445197319066332697929283780932056249912554486577677458867589735425478361187430571317984592464283768877641283764115147971753199704735540213208102266986251883343511519407488819724203764857667602782599097435218270548897756805863149177837257731422514617496255176403013054709665145642583851108911593253060192277958847180611498619106480187185395146166266653993904045917634556660503006345851909563855946345990958232127908739994434021538705074683249952119769860000438867166681387370964681632442003700356480567811771760659723555033042357859952303097135123917159552589697484346416228475212116173433836421276600056452554226403512049869704382143435343734583999861206565138905504945388596898147517132980069553072369317951897324419126996110663903134922121217220966171659451993132455127128270499888531615334680964570087726340317903503913946896438278353192159317435035832778522537397646521709798690172653680198792866078277328489728121386364406015847591240303999196960298249125017773732009498906461123312326691882514286769013696966478439572599562535710491506901743194141320482709749421481761336040664296096585043884980180493533841255446728010926448826854127429020806205374597660884362663992842261284629181259036905263674894059750540531158885713846192627791144493839307557694197841343449711276892843899662673911610473336982966779862823681621041836381235333376737253141372037853524214031736534834595076706529881399046898646709984230033064848726716718023816920204750419154158344770532298307118322359874238828202978253046502808025658847254140503435120733712488769182803385477164779933597932798006932550099116073176669481498869411125768565105711469104378845733033335733284921108296786645159098475476816208680360558573184823353320465621939689302713809858454256125377289560200929804576921847234290142430729413324668937882320191196353615906379052176999708726714915592056652284319542766129268136433591945427494674813762697848871510259869360405974912972184181808754010681855064653767960910483577005361724470128508618332871552527161842882466157474033280583900201164745115797892427396412309056872100518356900287364258267872272716270513407295085154940922910682005911380950708434519469422417166355015784732954320988490721006835814925271817266815742189939188515799049615190120125764971659339344666234970491794443797951957359730735507286689337632473811989492057422753809364115951571726209573446187952756747356327129952075233405898714463027748871644074064766524549833737474039222257664234945278078658369877405357097445682428516552871559289709873811560477833571539125751486617282198391006861156613933548752050692210599977348596049023528243014458339898210144657038439417882180601427182257826829716207422049365372243839077936069675210776592358595367732270232019493747838743283790156773531580914128946759542273060612485401834549772271031846217817705873533554860806614786403456100582376305396284383060356474628213460151962480837699683372971599414440223342388480437150470435290879140898303698353979014375214331307514202637738470952339357478535791240693854509763485964510567936082753285453138981566436364965875079335355792324661390155917413650539285175106536970607900928047503801614206174159473133113308544888505903673297773900962570407719355422670968183265686842698289806099354679565387049852859441238774051812662565993028925521923864283540729662317541129309925898553234500579757267794670918145591410318240175839932421897898998172760908064845590573919539936032077088049322626940044096760999732759927615295472665104699131438024697652957489249222387152372416997037292280425992785420657167304939887681369292734492199177912090541438945142041081767117935853941158847648267243659580753184355990106315466881199587373501254933036608434565511695203324637379714347220500229620111112861995543162441808495129979232099548621134678201633554045507017328492174435596256888678334774592746982245450129027857413592779618570219396310322182871074968016651726085070738423660403403108313334494602876044695931068622584291784686172689271905693093875425750663368704730292564225301423575202239873492460264571353760753506082798655979131063802471051378064841484610466736634962900731405483777994421447453651442915730579121352967236931417075097321684837998623630674895246395466319496631066616426767445459559484114839280138211170131164651441251274395742993607091204137978220511440698408527022232266679313328428316414253743635012461267588657677232778276319867730800003372871933002141785419299864846352188748345263500293505541634014189443578406343179094004483632910672183234188763461802877405334684577752631213675336814537906921160804819721156551526884497712394281576140830399454900577038015738563155739135559062566413896410588494174690529624053360215454273689868676409427920491023955814304678062512088108191475792360645686483533209369751519997968236881014033726671113065788377548654773172873114464299829730956545811955878772960452472793514935060990008534505896996548910749081684204588680971259604841326629151792561736418233277230272971662392901908465508691224677696664426754376467367274219728128088281204734418582543215833782439836484463376446156417066342856375038505571315715202468043911601275571269866184662442556677618981619282601304012936668050337243775348470679302747488084755866143077512433980797908715945445640193726214096846349328382752903093214088034695093192680694412965876694942621218267563534087764328445308503072133336570408693741841162804702319247175505628721659142518499978336070784100923609701651412423505254251226240835445096670211752593561555060607721213677300409587824042131998812532035636229568985130576679073503448917654487632137008031086567638786135798999907902645065071580279587940291366431056682432128841346340792141913458614228460150180416681246736698996597045034555082801085922995256520568397189186590276917556774614679829869985033768599199806985143089529564849865937301616336328420716609672375474757585662639919395131974382732789173201481492527813044146228509782342971473394493673829612774510311601986610090058064491628166035513063482342349124043340500172472537572412003428920835033967811153271868162903445805079531483446071055910184353796831698253155370699444647005891622868498977499078841302469555053167767659376135752009452988808692091125208526282110719300728625391835778252540657158399550315201727605539057820600272387127080328740562404432012012404199695443636636537018593179545435954665605965499729051704778350186590803106478629273152414622792833145510938546307117044634014759384677021989416312475024767802064166774382619959449856755666414677621989642007589295121364690444937504491192000647985857100231432904367140801616457141348799896619045805737394445829541650441794463047092910828551291313239880575786793138229162042524495796841161427170509903843909072739468853121544043025218738391936992308257051080733332818912215778938785202276295929472101128655188498783648141223848721036442339497042637177046283822912948142556573430780752393945932320458355693134150695882686479730913409665027339939463056936611106767085222948241314325644688571005198849833386666762161236509982232365721883501673553146053662816561279889017623378656492245014337777558059182268823740015870379822538423822217561971641159264069244277811414061981674353826903849763307673635339628404285725560133593976871450247943389967258954905151733018026296099586152215332558130280952880566029789357653800395870358635413491665731015630869220879238016160930520907329597550444053411995553902616322603291023924359831320646112135409806523636844339382160959163076438836817159981988444996109366936350015745293752979218874770403942015505360289748968413603173885567735235718731982078594078542175656274346236643433783345106928810614651500910553404959304686776811095004913020779127780242261025618448281643328216503371631991373789930477894943974043478782332886704745354114492041323104149040763077983505321037003932727248151990310646060230987397619284548520024856430216913575982926455341044546252849125355033658763143414539023229916845447945235370197203859708769667951226022447659493414316896852611572403407016569084825360494447146123390793005205907393300709515560262061809249845743500395247728022670705467055531348935204452933077844460461747819719196928917964678329710915760383991400709851172728272749712081970188483250110536422291512645271691993543174212264554353956408814009860226327841434346955357590593891773068294491151617882268396330594973822774406006972704607263893180485896138253551972855618361157657324085148088030498894379487127202674290590275971325466267460613505062956241088338930035686332501405747010207103202775542369094898071331865708533937594726729166911774169314067021424461448298036632080707396670393413914543815344857341121664660312430144532097047260479226773555599218724192778618138369376709654482508016726514735118675727917958429611563711299479434802653990009221582380188080696559755252774461643564027180050710693289649155301695343430807306190012048472739780544264954081895929229839081467677367947804197453859762661723331229822532875169032441694004675601922831728940844060016890179115210755852814533954449323416766339800509202364850134693608661739717465056803290031602023546554309165628663780877250976844019579277037145364776052950245944780499507311889070355383334694939949322823706719498300086815720669979698289026677064730005310328343080916282475894597900632113966222221415063713181262154780181785507526632302093458654922057856141033746732530080352513206042477886533791335621872335221562982800384637766228999848567040946757910021663829709302934810409039727356206429093931957105139522142100575492039673189674103801538122301730007278680918952768451087158232522914951687135761135784687467743384458589656827487371235523786502791787500223470482095336254367025873982491736602949600296547989297020026954022075685975219713596432730291957237404069332777676031775169330620010449977395837283665804232126031421210827372740221482678185856065130000717613423627857876122389948438648151018090351452962221450923326272669738110181057258955866536752737496832938767574778039952828130773339407733894003470563775238347575056847033188239874715279334708852450068399134388695239956714518986267951339937363446887250106797842111660604462082794347349119941728750779585745221579843861171987080677604529629501294323111383990083813580594984929909635314951246318943958575800767434411172672009216118672123718301131190634225102231322518159014172752395068548146677159685142757169862688003273786521412136290051639159716647099285716215036259679075990792650611165253423003474494212255203839975686020852564704487578041879927801989264577847452983444709767075259164530842786114419719455293124927496431333257960898473822728260153465980182540494278188493213530250026075006849970160921838425026203819661821127458788054390595171754646707438291546415659303348378100030550124601461508890581381947916694091145586025161686880316748098129709742827520383203661923309369036759927727525008885219524990723444282585185310990197740908096006680234457864632627693257524178922851229540432688115954897869733068566705729310012812750053570070542504772530666854774667990676927385551573833759092256629471136108148636455293535007112164871651536772355304847478153780298285593210161464495589509507116119206313958855184392638213227729758162667831560259990567161541105684705986490160004053424774084004863615370791810387910137665528830017153027604765464244628805280416138971795519172686785905962449127193283962401052394164619585502227950597394994536417346578672472583224399744387838596558128714299927658077946997978904774529813340262966941130726741035944670113798303098346980043223575575947968084365823300038263194968132070988864417253487569386466210660808648635217304974991420681899984195007889515450511981460291591148168584742041027460449782935548925231686939181984178834916165132045550827324384343726143368480550979292904564965138690542567953142135053867441081623369629229390698318851618167116350967033426533722778596036514822794037593763821040067156759535505314509816806613717075239081862744583837357004978146938149963896587682066490814737828465986772766493712365713080421235627766571364389699012372919573993855050349883957720351830178238593099446376970592951383282630167593622944289887134935466561004547220992367488300889600357668175334343509553458443658650373306468108891630940877695631950780399484023264085234403694394862597504262415719144953691892945826838317651263302768278741734739888601242653531917679511638287788252324650820101787030384264850880217874640648879404688449984065570272265374271451270224922844527691420554877846895513762868995223637802663054424979037959428309358556954954406912050784980485155808176174013417745719383217002299351996479894652396623189978469896444293156613727802602031133212796896002914572607048964931732881123736125501479231945373320312510486645495969180593154607140432649081829852413214073527605887618111738341946404017214621074138659113314178896051880251093667548097297132516290585854204652373302631108018785410428238382779976374219030723770370376285032706311346116092220765273408939482119699477903388896296239800658065203821170727632000755513764577876696144107937463251003516039999146198241526739009156046952465132423450469990135361752183912055636045481524862551112707588355119328119857293835852033654083875113880203977981616692555250655274191033214572451658743273156869781824632330077123289478426206141678671035999375101507474021384198355888666307722492649126128856385726786485341363330088719900175622167978134522245046464625596912936004898757159084043192196508091444304619211075921850421614024587422752790316316975667051390796250648454568431636106135908228121087302905328297881900514107429596735196439950274078293053171354027208617178781126879723713371876019768238614406789027869909242034505821300413019046360236844646922151762192464276538172800827287256505742647300672831018114159584807275613804108403573847647719919690048851404682026760591917582463214561497106040722886260137105557415899449354585055500169554271934529326272735149276953807763964069659503180498264661221592332802751710571293767178538793892925400396409474368377348122423014234481130217102398788233186260275347901232017360580453125876375197139697668736648559277926379287555467710740703503351699302654553113964178763256163797443245942052230336338576893163663497860929319706223257648806962411088909225840568029249336362411161771258277629352904644890062299110959876222606361563716315214299373989789455169972787098426135960140659225669313984260212612705306911771469575192713965321845337187245040919154206891779124881334480304461686144257535167625782242879593043871832068528063995363027242074120681933562231087578259595831585052126241330550504032154765809123467101651588856400023231177591656719339857228608364275664369004571583645598755525097548047531858573914052674310990848782460239540474286608519790345785788595156893923617362376701806485169189178688562041189953717848951080565978418274935852577380456224772030001348146464841123955859088394917824745873340337827210745255107682628527724395723580419603915297593300737346998962578219460414138015799691464534732300142261252502365756869776610115164617406469045652885823571617586340388417901275636330846562929102452582046311589040501435284792893155655329602237279450891832653259981018278382842320246503928136440394447502767565067220866791401783452290271174532392593982171924010028243669994014532580586852340232045004971497030396176630049922050882598719718878607468489854526124045220104948474418527681397072967323491233973508381774337558197541741876438713205845826864911281486602669020159006696208207225472453125528919607319182354647300629518470729596146961427117351761347317840688267686223599570828270090086567542306402617841072577447049707527934496698609527246111544548464275153958805750264991888096413111427521527643466935296995984501097430936208606019941117922713284913716554947396515281472163570130726126413699947719436201076866115804968435531446825106712659425162750888636003503704805655634340098704002318373507843291507895592444737632961682205741497300175853204828202037120655557291361911151816893987355139198913365372863509389176032198453521637479608469635414230964066509885840074324020291175446311277905696225492871083742313250038536560797789009732900318608893380119157355483428966522796287050671329516383528586221540197305873644965674933746932028996289892473710603040960284512126134843882098259713069293787598601897090063733565468496013651922605724044790900989957252502819276603347913159579684915743985991852053150589422226537744267718928313474486911106843725070231091099934954678344737197124837780659222140989809740934102122633621775738112422650907056928982845902478392016853747823762900425872691315214303657294268610867970197892575080234056860899570776692481273695416132279698207646798172823303080753054114206913273807342913310364519751413548099571428694127860398514417993344623095362615096116791651071449264949314138083495091859753223308114860014361090410545796748975469747947598146053872939764215847370123552730096294093013330413444915711739486731601694361748748219476527901843890185121546798761036408558565647506063639042331702386576081740829392460608375936618651007004660972511107657838187937044773704621672805033147731641780769752717749953966965169857460944220779603440862222348530207550890352165903505218870705723581819820306023014198328803805412328229679150311599592467650237204442016750790974844046143322703122913967574729072393667087988743815400448970148772283749249785575075898928450535374926457973524217184991118380576712532425202417003359001901491631910466000669303035695469453941991134804860748243165258931262830760730858036060159086239102234031771831818951759634182909475904907494834864555154926249703775884877930749329125412731463401417263297876989466214367484834893155355124074402276390383675747042963827599286472772822545071573459689818100823857874029258638734654271322160709521249836553446733386699409183589301949920028553018392037791190014482997090631717258376030228561204924890173352780259576614783918076313629756061768757052550514172124480695613023387278076617139293350821575960811933562076110304137426394608663953005899422378426929803914937807772450843870769447827187029463220436130165793609241359951265919871370470952431662930491474061762135525275602549875379012035360199075144421659563279437488932430527897813633547315078294264047799724911179216018593775206929036400102911560315583302628522760120072473555808041680511724588434071631374867398459833408608713655260412220316450288311538265923766244248737027132919747960893643763119165053360699445271487273566621335783266704689761559327751198429905154122837332189003909189707877766116983106842085117670372532312948447376121132240110559730270536911353511725225946737695704677422164740864369267705153231336457576712584470009451990347864006146318801330571377413885514540801958067470110428679226921354165685738485350350381445144481517053957100419665302852573732095852232428483123758867936919099929923863932371269241110294068317759575197311263390350748601795592781342973003378573729653149692806435011187219275410226326577161351753694050920916968539434711327337569009201912538474678291168849348812365231641029497848591116887029495568912761121666049237523391022133630443822653818588153937593008789931366246194560416649930336537701850021136961287808634061894693383743298907933412096199485011612424912400656802840301458021316574635254282508298916529891814877555264288897610440073859486105827663776910440840605034003766192223553090344297468232523139234291514705616326942113906748096179242770752270348461149554221011228174502908354290050149939904982320650984323895617798588890626975250528229231071218584144565787181889268165416877383966217123206160386867570111315131689404832720898912171523597121140594609627493450704299385299728050021353730895229314102188464210586943184262278682139490491781741424816971476395491187899398227457748815388462066242822668091076965428098106833950510665646457413282165142275674731011586219587186680269351109822446888429721154445023026552445774023580246173133678017718145858191428702458625286811094655793180948113133100029063729008801891462743665747391903108020870263787725782558026389016426967921132815159463177199762479887485037162518462635988247560169873813230224268170165906762795690165286156487105589585882973199961146567586450143864309256516739313805443455514197173765239917580736781131331245116408556032089816321055658105172502231491347714971725303305464693968451233447558069910376072925237314099125272819583795463058521494567035473800417299122760571706808585583762569076151396739244552768873345536119273869264843801707382067992371363888621827493256520923924093078985206548430975839001315013126361813970231219275278373127298909972567983192133724321634733954013345515851633272110322562347862652283663862111685641398966746507791463007340992970784645316643650113037108501967428988848570336348316079736396120081490025551307647575308014679567030207664071184133178410208913284767487674801672276150769565590448654783733915968278723953095571513044131111702854125734603509558477744573592280678522924539007684438464061521932541201458139096812946967463086031898286133868905378660025938663602870873348407379572065338297888800237162963657420505935534522489895923341292787989395991625860789703136217591926064921609897373922659157394370207836209933601155073961518326374383908147097893372673656602077661745516046248754002717734905666223708306582032966259396044659381767231258128894646493648630227049984220815899413487294235740224991176214984493001036324708832962655296945501812575166442557301597635450896702765548220286966791048149104168935166683837096162997410758586878656853874919501596005952778098245709942820506109842973298527763993573839554783871619613255223721265790956990481642300482384232304891571587113825254075050980310784303429923998907637106780834746025282112106121868213713830821153543546352916545124781497294051550996662512756167132175407848437765447304587590077153917526895152291710523878885252025957950163458982712087716695194588594081086486044831016134025107805158578893426194090900806654863279650497328870848519272801221150163026059357696523485478134759251704409174352208097747895041266043649854838581972133135026978105549285708458436203563745794659573023572069089497933788738821671835954429488617876604948924136480113025031619277563637045676942836700251849116530838869329612789520710829688050738652018128223009759218139406076277004353866915481873059209331106611509298356120768350627053164345568041507382176172529262830268087889943262100375827364669016408074487207888627855069970229475581197653072354013880689902209729792799550408752497949574227245290310458021705662397033795195050132100503245659791844220675811859835868642977544199635730960047630163617179278826715849381725574117581939110080884528015327070934038322147520628801999639818481897498486139281333745447402769381025182860546496584310909601417578657753077362473307087884105379244336964625668996389033166394765127669064556878711233091483396559982044519953777436340647467450990036300033254812295394669886535528613110049665147240146884438037802896475293882929032456322901899178844927319515505277445458050815048660390837360830711443233256121598073423484870453917799984199511004042613589524897678077679390344260835943537087864402585899209479740099434645991382837805248482816725301483436377443537603073848618757641823221880064656365192318229517897308116524685703269130416607393904989022287687816570411228263570352204621918369484198504913672051572223381144983017465932108747938456802314098246894573137758900898654677166708019548779813799287420143319660472825712513086764139734920268006949825151451940336673920700542645676376106858856024080925019671170410677497843460732822119076141726817341154273041832709105416516847553547206220102288400173849641417888638364655186054748322451826358818522311931979584879711729224501923489716407089404743836172524039580488860698190578302363725697994478774783690321773955891759317710000377344096493775120600573932804882466193162630390487490081282373029552901447918750143308781759250435198483643118170796162494647799223044816942436115070458027126438285842351319957786749192003013865078053153907912361215364101348156688323770533368774593411279927403202739564988577890070681563228836315845015479888006717471326213939922304109329002628419303730003735099779552497446417146535268945192554402545336205302095340651275944396959643262230332655533842188468431207250673633921758994938926352675854216755852428922838882774847260207482165741299984686950447922867147914446605130397599644049585422669342901715987496668609636399368609959149806720645852281135784079583303777467750108985633785712736443487118819826920607146250116109915961367674597732592826964641574838059452637749254627986094003130391488870861269994132350904642065222301675620615115971200480278980987706070384748432048220744248157660490115291453147001782525117072155565257728442691594843296817974105805228603798549515510015649892417889583325239271757347659073843167132478519378245045071004907597402005413170414206328727776695352590652387417541874176190344035258845056375408901415403999702746142570753368107864181375154977307244268498081137738410714840871264807910805298094804509618588668421557905402441003822998365199418743766071148666494461107670024624674975720493685302354937422637854883679008419592960896731915748946691727427132009274779575025897073905995883411763370366764470327580207615584096008426932919056064931237134640214358844474904776159677157448932087430476215729844261273402377547447558520607789813547970323341229602262393318809484041094141400852631553346727829435815848681484567707951483244955179758086257161329699475151718939491335127853920628554022323443873389778085305891927617523404005746970972360352367541689736043832962150649305944257150589707233227891861616192798270216780672331210508660515389600697089974775031764725586779133381665251682519904893108598358007566602788895576695680482354334377496120521948135569265833458756128433812481311072796681091269675817736921933238495657802144745321551660749834250202642950542520059358487404650021402081718546530438734866365515103209677848836551437301408501623773865218037897109248293015371289919419626244299413509048206068978957187411049730974841422583760784665335540233182823505398178377712216651815731397051493239570397627593543767694610521214476877262505981827589546988757615758185893166977228654959387690989804055041842564182918550628430511916702100624452131679701481307757888133503683177568000327439723288821218646529830127677362357761216351486612307656085321282350791782897940806575077960809958609697453830488574702477000766077067843099785028651251307336340344898942412308898817594870337529171757385376158649816124405734553869304994633998371299032870134780746797718046799478960917829252114752734783584744764608592799944898043934098148460772477619046146469089505186661005933323760165845359138552085741840900070641360221880074457721259786061944087000754755766105377512439643203448736708084300341395201077053969282744286088799001122470368104148959824654069517355966399662774656540902321984584554928004066022938071608589950949874458556743283337271229962832481192175088193282272698993526191021050181135527578719149696750654713071383490252705883146566500657284117446085460523102815697293979236890374840145612007069989077995480684068924421183925878854516842869110475475778194995388818256807236189059018310785006434491031469716862191343808654209800040638327477260722166151506608238860232300894854911320208230445860527777137778147200959389221061727056220792202868896558303827646129123475113685221682240599394423640135546205174458699662795941084240310749153745564539653651422228589439280727211063901133480864907803278237559042098284317825768802123352882086629336816009422312116491540409318775703195261987738626121498267536493393303514373427684230367386813790181493838019742572852123361998907258796474698971394730707792007074580295240046928572848148508724632192518066174352363186133787203329222868401972139657517438341014911993104752576374052523806481537591702393889414502333136261291581802650835946750849478701522331675705425052075495423145451554371231577415572830258188118130607368051827934303413932217159865336052618421333167412880010622555459431729731151625827094662724822922872887815332879053958266691624109884095623689791343937591917626609882708501868285567523069593766081871972678818812102258122565529773919782434390899956207440263180245173125844435751706449400599161083961752237970199524758828668629062638422858245232788272289124766956816683957986436821596895137875317307984610025188583845655069722913232006550718158740505868905190756349517053426784872944615371484157404786381510235904203083652095287947475885765674919961443766440561442790782294651595033995080903738926372316822625110536972091193554696643086855076566768821988133164439393089442502937054734456752819550766501302082233224311849809032456227221269223013600554495861066598839095863957407340431061070989532824483670674986442816038429355733471618194517768080729338910473195873142254274514399313547020180486220816122763643274494796810957699357247460253439972868988447071213957325043758977176870982543840913000050789802440870384504695114389275716542965090253020435347699506310992008410270680473240578793813737713731971374811725596431095838524352022997920550914905981956620302214266962899555052191471431047375780183840265979299984606409710748628153562861945502832533676658241226007552605777266893738415288666161051483280365836657403268333887150778876290325964651027230236497472101808008938328280309531910800620564876206349755095533594370633610742587128971237643090521995385694780496372889947778848596187316658833242457767772596579448125656569184210075691279684910205561584951605709355121646741755246283233960591898563048242148422235898813946165759683391890263317218660324524612632979921143811178752299389339668213303465395555668876865385267074030090827052347380540236617876981854125456225431742744883896666928152248458786065153000788906292640593849611982809084591033195862038053457277381055601224547686407683732725591832850128723744995767653354286404249854489083585545410862405953749186967754519450218611855032447781463423002102699184450110794977677559302440984339634583586549364395897442459232563676501119700203491048723333628685465416489891320499041627709894079690008627781312838781809554160085927059323830860100345589206684796823251779486567277502468285951913182529712460071459774595806272050642281619885748252763239817835080596601132331183481496404792157303510831787674874585910624076840794600061731241522459885884356562210981087812171656364296156687384604474630020716145007673586554441549914384460775583967412854504662503658843584594555589705626876682611672412195571561369001064749461124793386182394122112282354994818597838947471083153981982848507429389553851129071702174583156920072798522991473843695472594876075904921302329336940499521721246483484498213365729880128898227078433590528578738039637257264286564874289749665274977840196433123105230049356803025618999193886105296328615586601256551514773544643854509113624701641141893204939132065102268977969438948657125774941045469314270808724369941954325356986317360327020904476679056667232441666060784515851705207794732442502662165484481845178905918368218817702828941946360058305555867644719894128591381082183951332459340117371161407969358287979712811532630799665899858017774457817457548682264049950815365231159949844053733678795706457405307051635897203216344537963438987303490400963494433700896534999146242404743150906944589477223941752525478252957483081632909361469040608889165525524241380327068664068882541991550939629660602553770378261159280012684442756893801479408278412197900700562164663107249536714144092811757877532816995650083675606003931008799215200905316128928789161393913489918354488158327395896264827426751154062531104509108125623100448472598685823333328093468845321989606966740014925771032512030560211961679540817323453467642110511715124370689526513927084603008457093701189069965409021112668591598605520856845465085365119061571954903001575583453851911784415984477595877887715461761477306581072870039486491833744320452228340370170679789095945147743180582297847674400760360136992159701889344724331749901406745456136222969308024746279222343588631987171002427104265289777610766907195153335895683863547175802112922382554240824557402952940190499499075886073378220015849123592942409833638984987375406691189941903129726949195657283806190807557874056737106707089611903000953970928485915462189787583772754454045466365529262344708119826167844177814732130054938882540161607355649505867433163863375419802138010741671540372094502256977972541984256940302008943775401242671123165238800088240283843684175768489624163896200180554612263636416411295494402090624595556823523930459080974938481496000181859718407990694447627462318816363495766523193736206384469289686056423320913708942409916649430936077097589718589069268988618997177444767395584628757569741930817287815857692692250151021594494993734350310418395226800760984289141221305194670993134611262048931987066234169657024685685368052384046940689100317465456500974636054683718970831622817334736089343087385433534671485180519184216604222866121213727583851781458061199321315424673283991465419732893024226073253317073835362670620825334173268863654131382926762658631161138907208546283608524796476374866869994386406948954893660935896989001957021712864259736772963974660573602965454396125715042544197599166663746091125088123113967658509572983147847872601206196928940118633029579569808311289660035959069528909853894392560021814342295694332605614232560650302133503313825799048971766827683275139023956632308070257568536338968892545129675102717318569788502214414881431439732152494789045957399047638060928871749237357109184745545114093464851399588900334503903690631794154063630570858201434479969290674494013596463628790815331692218448900405249225883376674579595692274148159515997994667635557596057184493084159384930473017605727028161313245487955228518474162439759452883679278341803621425696595721742604102306986649320228640393405923691441339696006539953160650673813414448294792586288178555389311256038926208817574734314104695535365006677994021789528430335500668006385607681699743710641476769281082516821683042595923080466831487910857940170171725920162452897837193569749025487752312430567833955120973991747357008742923995348164833840048866996081880805256879251604023861708007861626989780449419457480239061599298321040630288219004565048141534216217690481303174024661728181746085319930824063127819824817942083718974760343097583660439730897481843976830196093872286571752444489507223867259806407338719246168732421357283273858457880781406645989567318136860331018870644157030135611382296541576675808650868048280348066193700131092505484262462325034209686947181212827139353163180734620498965981751054125931885949266470494660662805886035235741186811594192502575637068061942611856045600054312447667631817313545506038287818185388046644978580239051889051282386553764380216605935634628905254726546112727595372921413130658856748313126916124671302031903512673148092761029188119533812955733388029409476559114276234825624347790630533981369505066390925259588511144830833813527807605415124743097415067109327999223652032822437058089347889913368532759173782592766024351449484545691793025822036646575890602486925638448376266964567608484282069812113621110311248401085327686560193576183994052267004764576078836757363615007807985648842915121937648717052178735027384230924784530191945208046423745206672324087635237795909895241377977862086537400120020410148836380311050682642116690386704728046822960509995242484684489457117020733270060169430378214716995959682349599259927876545654281883796062974807112586519256298462655702199345732706908447487434905638805402465155487930701870953720291270895483611500105481583270411975530657607411705669362129463471260997673319967783435185994092587435638205040989750834983244002997705556881627730666914860664571970916514776819301857412006627691886817341193472030658177999877040051666904812629742672777344395360950502878158817463104891512926994144362798722839515363300156965184835036567432254802669070412678309499829617441126343479593718720808116855286480937986088664332746030759578473379408984856771570010265606100743481215140717433097394406106888902182841213298706332017843818502440874399420329303518824131338955429054113859700038901359850079800411649834004888076740902006982793178697597049646948060322598952668724831688744975321504558612445944883003613486597850552496393221119423956459675719114774978369268970062565897519320162481779118988039007097844738972984813398447013794205581496213046446027166121532685124633939256167823180967476880791115801462538603096771749939225157927220687689264137003882270920931483789194413876813890105829096975679840840060888703489411974958170554631391724185831122479539189633704890988190191560633498101339565723475548514870575517670100501663572387707217770110376198848551311416764018697791728768651381647001347260109249745736836234601793352081945352532389115926208318316083583404537928480508739577244102244461855977210213129521943858900421024809955764243011570117244102899348754496691817929827002506481264904203232583664733591053477140660557224106132159511687792658975882321494370078711260011932519283670456585467148156617515136680900443966092552814376787132921208388327548439801620559271514558359395539844978456773042450761632231722009049272014186646305940684944268404739972096712774075703418864348319425773393561137960530246295261635506960594260749744761596137370625684269916318720532461210551715005061614608792557647469748339038818482663359356265468836074935387122202579907915252463118752236801406382995343380005152847416902825654527995079079855962290553189435722977472771095408467036785958534560447836935678083844597953652973691795375686639108133047945569703196273104055537605708198149911430940355477953785784943677124837735273289706227844659343798955488988647181371771837513348005392601888173306625155089643020264536455881593758768914738018734922432153732021966903694504874635755780596311873658938179681443893241515290598028021468335540894456376984592566695736877268171858128542741861801835715888886122468961816074251769732807202731058197356154981402062890685311528183746436615735623399884316430019426016315697962787719459901228756665959679067139612498186962627528953386115186917109570289805345250629391097632258521991692417534349769686591782604464146608029898816184491253847367752143772283044709934140083330257573100475472895151014299341190518267376309197168412388763678657020300621715000150830042622472697531288103978946866064997569707462711143469345201407074956935345384994028800296290198889634586859239386130612526913403642178067059246978493181480529621459945225781628979488654237371210526453361302701277748706060511714218314391228914798923922804913091205039435038915538787783827172632943026341978777033856029736388972318271176928691276502899436092107227805950896371829525886010982412289179902026711169999563934296257193583904531710290350292551010955931961659242647051041148898622453683071024456511421967958001094758229469370275257361921794795617212297768867523044587566322558636231352491232791178348069006029079699161280145088528776022142513861478663005852668736433350663982894236671651457686731168011265881320113109031217822720333638555825643571628625525698037550583673405576309323559519291991196647617209637611167359853883902575859110315506229106596356768024558702102210027311140666072340772392274328522998261899174282347584992259613017494488503026563936256000667434932866813775912808134554202068317181157676259568508358534911548506885695425651586596587251834704596797269130434267679451445835473766624276577001632430514429013144722929775694711467764136652852718742965346473963876402382408656770938193161955935176550634512872761440257923427433233466375602972582859931786041965030371885496676621533662177957443097697294628610374819354885689358787756887785649714674568166644647085192333919543427136295239930395589292186932106284098134921423130620127486557186997200703587679243981449539552081362568858283024760081463340650279398734874123192878030831889758668677548999443178784184199752190278788482970385753497818645636953224579287069714845027632140129086652140642142578974128147535838835221074349083033793492143711108648974823808752768580035185673294435103484666703891774960918040935569872647105943653543004532308610277728612292678625448235829002313759566261607979282882259089629695560409504750976361763792246601779412559127224144765592873196515952812885032588315637058897013918398055147480861241685977343766780311716452067491386398228461418982475360360102385251710264507664887603253253407990688941185759501651824725714579496547863309765962503187335404322680123983358356144298647596052694369550908169881162197902580528286606386752701968943393041605609020540597524766383008482752859917011406486516149501069290836238741177362113525757064103274246912012606512309883885813305814414214130403377700049272544496745289036496122724294894841162407056470863680677275509395023194039078733448795066442971052776076941123586016141827626091589698309550366887255683641704669643290932578294158573516841661581092157452782831467925416839391518996810471231242626167640162591784720050514255997018717625822388812603364976447572777055407207624115943739860054668562447922156540202450549571378809529786618166368819431468181337886088332246142633250866430041031783753030855856701895775356912405386626687658507481531666442046885847269227195262751888370157266358424299840494715853175784663793345986644936226673317593427583764222707593456831357506722146107301054729296401996607653873567286875618575944006587574468568878095753365844878935750453761764578932745984918295699917364703845638115463040644839765186102271956285823447425930967565303318098704783098815441222490989183892342365156766508899477337345631446140985183984045169997152413831411432027124340378326988566194483153245406113813224292453652718934527846015740228876633735757236171816513009850976229281879788387849279202924449500035172442883453166494332984375284921940032749124555801329846433204394327944648629113906944492909830742930567053237445527308813807619716609871588766057645462152527428273901580378827295453935723833873602104405168574817391840292644401091484779827174713496352377473107008837274029430588579814332096272760777809267365759949356985867318036777553948011196855273507240361813002947556251932931098878327983259722816254825291629555403892981313401360002011214991709571617105574973777503458139684872829387811005481546925217631017612143607439233285866296860467132946115351714364258038041169296098197788212079920218418885114606026345688611643562289288546562169833402162576424017851363214864166237898138335411913992230040997531764175110566675080460207433134352719829840260223026215073574341547147954083098900173583256402640822745987357763538798320250977819462496548327725979148384071580365082008411336940307929127487059951135507479945395303799668655019858891140969219771891330154036120799259768403940143973149400457454526646017367421716534947751834353967801968729094333620971485261858215400729806770246708966974517714108019505580368160132745339047556402656910976654049462562142751935864706019825133597427950251866678815617359346171627546073270122603004414343281479340769182644497180112603019424311358913517274646530641948274987547256739133578448099457723274286779023331645720287708616883587234556762795730431716990311469924875562985353246332572075630398822663296365300522259064431242218887164451433110625648725667697898764999708184515549805383398349472532210460153609758152764888428476533560906292929654619467592267500936865589347817313607788828630079707687874043969767143412289735173860998234651224444686860946487075709312552595804466889634136323698095533733649774398835924165345391317183760035116797780681220831618274690708472094784822747888174569581328310128383710002715100169979614644417966056273294398356063561165094111952412594401892603911761383486950947457170510400581782190447755404486243888162105689979841807099562399326104054195838253930470251943155251395648536943395017557368818924387478784816882602610416941543579810720181277854007548634676221225275052515965988639840710190491466280197716424609067459463026119104988787153499978662168512378891328092593908301623226227988886491457940887644452461272197669054087770537771918042660448287040792848977812520103755805524045757619737766134857025655972092001938646681973272020548395929006786753705555194231056791379394992501723560460007283247831018995869632051219439092921712853892337826267321094871201676566819167942077325279763999433639443818857942140306540107817699568364771701038508024380119589856565128585508503801152070492038753481026277066637798516730904195777778554384655517923879702687266374598036660967062684921961916177819709895847664147350240349841369218370003729134192546566126384775485224910046450715007712710033434662115398600250211480217786187410126329219720422118693275475099315063174907600704073414112678449425802996546819950339666206128790309213213346529556704781933878474985151162063678226735412394577373743239234375164128283826543095225968361588749776820140709703862136742320475569859125964342322190934603181880467291325501116622007893971829338085067496624885637032875798703760161751174325062018949946886426628264658048236839970125899274789514496266967365962108355762918635132740349484988682077099609232089167868202980275600140934927756247183646114802246136669598994087941482883972949830515792807768845625268938720098977264116752155124942023133701688101692661364527872133575974897516455443822401120019404861182642591757060791483384841723920307917911090538316021639991771566692917747992658103395215348119793982654068138648629459896123839697829230164479146670556509767392838836112536455797975787013929813430463070065262096983906364724171606589268216957315383729309629156219192722513560462603388910738664614408129893160502529286753719337378368870993132393435967654402487483213824044511127998347368645007294844203204525467801390200731025644867419156851605852793269632996353836749153442545732515267471958208276117349157644673502306264366547554127898080489297187398603811793776745367129573624990757970554883848856208734462605760412460631905014331743372554154577941913306016506627907900650237027785108814849569942155347906382970364158565845678665474639619763255593598997457418729738401302822324683625119556259246014126571579373625326456673237692611587218561766598933788746732845916929359951673554457696934045429231099854813118847330167936021631913170082526487667227106223720412352348034134820845003962603416264644411811185571005347081116552432288927939935366075476023074716290237013388278056378884870707854263096540166569165809305095813299194527016255736723306246028730332888440054771397520448774756947188648851206624083127600064963465835560117171530899692379225491640485881848277137361471276051532312855825015884975092557305777237649134606835255607578394706704627012973503642608556351735180164716337281967673073677371784425490503437532455900136936275521732095898566817002606262818665173523245436311071146661279409399663223754200062906480814874159518791690907971239868263606691546048876073538153578564016623139452559865746701661147202230318124449309516800504397159569756095585222093286534513165377448934190773826581715437173323523191130430486971053294992554019030069726614544280654464768018087379376595654340717413423132493210885819100373257916079177800308349087090555316544748824076096311007478839553537974070745419246460451491861769324603860552592316775385602972051802994128130304880799052674081893217164479939917583650475806160501404732466880734179259368082800434528830179498184179934419879478467343791216427108737489875183321972179759639349219811619631662147439383832575790834606402046682268445788519872232946482877403894214879683998079563374127077393692423840000305844574212726357161720069316372458893991269471835871597301612869628945984038133681546706902750340061415690402274879708810708641218292841937403942497880451242069994871187631131023762668755316280282131182126679962432823386580180859104175771189795090894168836480240731282691393564555896797697989158857862500079105479668692548087590831287912560342609354199554783237584449238937250065239460608142999370304361318784422710784451659107953789399359912610194781618052860129323126093426439788058825506312230934279806638262263294043791878389860730093216051171894168943696333682410867086807274983518500405352850105694787834356895216243364937744614358128556413241297629727343879991899635883888109607366160059947843747299258657197696953639677493414656628486895607933201695939310969850156648166357607450186142977091916579551336997763581904352085295397042720969604594206372866691527531424812272441103535717970257374363974591213202148396939441348284577646835655524205210898118869864473800701962559934531616822527565475546072525555229433960069581967361811276833829855413311680317959825495255041641711408300537471938975049243969565699477776950212866203310074631143614032689826111044817996017806354627475594049943734799610836667090730726365470778889226073883443249649024702134023644208573601761632642921867978055838073817794191667901175026096985181621331681494114973157227220642883079525107123729009534484434233187755245997290228290933147509539655680504387512333216129413942716902157416957759746656565793041575468842906344567413865259225774994086357797755900257192597668773124145304707534780070061986105517295584173636886326145477662150036343292587469444746441761089253089026937612739015366112845971926907653858847005695684054023798237763251988832295630849081052647467283707467013812887331795458707417105893721690849572233889530413389266785004613734960107394390568644741262980509890871874458571156142572780918213779398011769825617220357580579647198653802002115120604071495874694270563829401673078811765452176591959254663737596642320456204423227626751344314008691149686753904362266163793612844693053280483812677661790356976390063875607296314023333500047271480416996690990605317001034936554708963870192335825473926812639544696768659677847998296301604477416391308464954224685050242211220867537380007970000155055829419570631206823456021820333588670272248943888091010749283030062026591700620912417742341658023090118062186223433321359993495513404997697045636444827559420138140908520603530529534461253312911070366673407272041002335929581981172413588000780827094668813485231256085833983720286576794148611507644123947990866880148651302600554489027907325744412069330694577258909133750087521340519452353052091890831901458195874145598330084601520344584346743232687633363856108828770354963996004847212593654084101540288521418556009122657650164277506670663299260519105547725858388010481362842045713874947854996318681755056935793146250765957029762853865547581110533965410313373232515494554873499617573836536916297848395009973274356023020859856079188965374085471191860634117706487331481481129813993028459353728142740231264460679420937487727142548648703485014591995123023802480803193974793739512300761067340846932450840973453535313821299167937762838693267056891653803792987317645765996512966604983973497941974161834877214422871478731509377225555738530671543469364931363080028093473107527134450022604471666971281872080103916705384865112677107477875216312917176060834626528882724697119358722463971365584667832563601813995344185678142918961738915638925973183099944889745053452211589176178060546273127071265217249579655692701318342042667066389405529664151483569466690183585621631055401556014146487505375773416422532556904577286979253766206690237972402485184000173695747902309746311472067604621050468505275462113552835714493112439497367076655608872773360939454891966196861037930573145467403982085761582402160054522147453711910592215147808626155029610226933712479262708125786073026983471163097045857725959386351785895278827079351378212342059191701536107376154195367133481468528070221631665464715892015863875385079613468235790538050829916641654135703114976233713401909903343288867119899812692790899728368195206137801404204421304176879099460385954749487271659595976530167204070942247011849377041155635117376169700700612850522896562178862898568293194147572581923441934617359358609290216205041204870039635087631728582192076138506712541703917518489169752184656425865766989344071667682031524944416918072898352417094489329397766777315999141064815290229977283801140509918103694049890868666904671785381281558294530869252749652659733701579735424847970219821524194883771636360574634859278693806504880608080640874296335981379570160828837927494098535047614591985485423474376674761395224254196659002732374879062683378538658039632574393734231126670306803626292026704064905770479356918149866988612266396218910213287332494223757894012799614516369979824637511597968431481725867079066278165324833878791069217401373988822391534386479381192644999467746551958987451255870088018290406585029510471580586700760419868451435776296418302336705941619908360565738782631051638830370958220529053291987123719680822895033457957809507583908349736724963826060646243801770836863291063379689452557798386728172158434498048955813064678931525620729248239951308696953965272825103328443879993816773131115774788311925030290499706265316332082427235927844186270732846299848734626202546539616853226375551544791122974338024895774201831310553628381693768995869902743515714620502681402716526733203000688767922465336610544515857232901644793096523091009242814100049908588797449653283243791329163708687750208471615296662196276865611833391215858152014842105735749487931965267099909712236411053214679883047548522472262012489999883783423776582205552393978717865026700590008830682903691821209918480675612982301987002813057926983698023906156680119945394525927545998861574924508999199837077530644727610026842447608339281599630568769461466462637324802142298764495563227161234051570937728218743438348597475893676318531657868888725225829138195052057972251236329077720700760011461696877840128686138506822048479705191229007852907042733054427957568818844031069395926702500789266464761178261762301109704907168482934621311557697928602006904532160211402440190454884513521927334657464541978563593761680983700331540778065028308277603649171320379731302943260244014783984823286519643688073926548826849102235515006271100645334230286344734875926309435338707867764621458764512629075008590033867600394597112910620215348467393697444828258647107159873391692637992504868131364837208296705849822207377164388281563586306427818790349388068789493432894189986608342138027229437620138044934592090871569523403725368332429855532570664557603864799539187466421590526440123246624210780784433216614147080750045623320703197761109870897203761724464761707123158417473940451524053982429894141429589391471648303591709661913309652248270071474080380465574203799870066927034088156779203467061325784534027375038583781830174399279583448097412403470492960877624008950334828049113011184639055508338026628743798252291900339192118810700400266951594989249477237969117619883133442781482150024333496470187785057163915116280626136509394976844292236331611364971413113031350187763586156696004658241908569041806797107612793370723723864609030371119030478159983351081519092372330285312987526973797254984637518582450978594885137493878959544145022117687753460406096164421113459914859797450565686764790765676097472084511608469108656521712062415650949187945958787258453617458327219988120813186465959166661108236763501142526781874866062180464487048620697981289860322874963692593005312891006383830816578755700654620594939404507916461837642509720467924814289345720186581054845443074615172484235569418276048992157373254897087572700354386135669405528684899658137675548145954485180072377568130400808728189757162844981801920429976607170023627215388218594796344347408167627695385363971896157988738555798915198328171758198326706399927585464779210005818482928908970579379726988623074141336769977965038194065129638432124976851485113037079378094268060185392357512603127919242223146869420414069106808599578324844413683625762022461170235186444961075284971120536535070870874002600171219146600355548204040835536014148572648680668134029726527630374617112049808817671741773929497964918507252194380232343872555754380273878654078867534611299569964257752802414073181939972655201783355359377512638827541295860009970518389978594013789814875500105400478041153308546831799630505404440076566177437816490723146095703207587196508585635448664956481312013151819909219655250668334084353594129883204390007218119000990179316712859275719138057795971297288612401022148346077936234464182714207721054756402887806451699742368833068224293601086441226949390075845477885533150761205257051960939486881664423424323069194104438657767577641715782187795349443587149721592974668476877439312821934908898461766669554239893889175967004307152496659926273660770294598224750871150282883103636586638712249023654652356610139817943644037318694145279917083890693112707288585418207245706348703930433162658211311585904536595756460812815259608175871283473227194487924259955834089884844629656414292123098688628017681132400748421343749536278464018947403515858782377295468767320444584637361380541499109341311423113157583544713954863833370140247212067904600825991504991852094592486254409825407679393711519731529884186826262606318349291726297253034643962261104986695928413883375247096161146357277105976771754874882187771878584227050337230752687553342324747159420715089094576576955125548697378651104382665896758524025216503304178397545809319587304912084117628297224593670976090421076586769363734677639376229897677129344240560215227965595266025815051773265718330163125676406590267483885608477174862940053552225671041342014472334969528835501277626995134570453119994394622393025689013232594867999167031830063033538288283544206608818440799319615047230693867692704274422050432116343181181084427053258439673555842823408649328208769172159705122686830037889223959093922254899788999026368106161981815378332520332888251426397392316378668365263875028897733544484825853222780279763798785251131344819615347209851005559619146425855864791025615478904531730262920107137960208806646473327533607879579563905740505432982730986187887939180802900039655314534409668680060843475970289692480803831470386768873359893736516023982746507367712686702511678434768025739362001180003369974974716259561992907552149581181002547696339032174234237628260976023022842501892500710851980547055134379588885287907756343317850780034685907011705567318821607551816779235548564900963300948863078078155737267227501576457655841205950785444451595858222443624829315016959668825918683896056094696582701927071228243690959975784977618234810798000428087628394806811729896436885921403660927895811981387633288306107083793755308575423964616728349440633561784806863371147111679332324352910351270626100989399164412141238096930048349978127121596811611471518005248657032665015147526943089777053616800046309339293778237173152916030687636876368914354422045846279131327092609443954449976635928306746236575949775395057066704318649000943337432411620226888798716948577071249483078990274761371613797173010415006681968032799744327083595328133906285374595229600272102092091514336070286169314927353692627132803470056069880374704760602023149711833256984947505611050207600226710460931798172012593571423621235171871792990383751901336275744634234917720795261536517207589199337826969088392856946758299630712784319768518718198085280144440734483629577097315858759789321489907590281337817911503760098195433800498236534746513024111226787854657861997434947261824322250738959186442706024891538393450462986414886220576321446846434227841994373421438116892755920018910925036869388235046905838476166938430119543827080102590232559773676943493845342245272596235821139595145705822371635848812926542979628333163942096747982665671817590904584466530554964214287938549877393883206178676022729944780631434420887417732645286950001683248001214989749922692863885000088616142996479932122393726130965211695057388697015926507580481495230501010360535566070502190727442824556914705629990945646994303350541988288400091684898441795716463220577974778113230774900260658386359003817731276376248493314900297804946085892373598785111482425480644007271707155972565545300958038234272508329659807444914320536269538893609745551610747907654135304146491713314981162680334142690203438112589399951365074353946360747048492315441288382672134229526498794921879350408811794538547883703508679951341538974224282511423682998070529992400783498512731525377994086878972964932847608820461033932119259470136687434094599080493808765018432992123768160823204266077745406940801481003457293857124556886856293673962285691704784206936089360326658236251121269876031757479301102341474616993357371417758281720535977930544215831590974732250306743332852568225030007833539965892598433506268801324699651865746716054758772776617585618665249080646868720175944116013775182586405277726158054422752503875092390307333465709096285324615921273365948266845063818710153890079155232026116048497172702236116981731985832444220627610884055848651295567032647970267493727133442100421190730230151197053192171166755424561771281198200182095629894769661161571676991857801560993837136104316632819558500435270158500890778318551192750036006917836513111980425012166748370771447630730899996346944033114123450121447169125073797537561973556374547592592814112009736632308194282498014644719599455652445573940585320261682575081366983422625079686332193854453536151144652301020257357438555763617943998882545833998930406400835573731399313031162744171015705991630866186325983779587563900140781196537993257170826233726334600051456771429925439938179113786379407287471846795209305925560653641679654063828447664496371572404182864147703700752880050620441779957978846521012740292143096148479067869343945957393623793197057483175217421760386861326996562301551271476576205226367751350009551665428827387080534077531453627872398132498197388954241907983557782991388982385036534560225082970344259458245958022997302978918748972825765517757800582501856331827943900133072802864929610608671465663055800278787351149122581464427899216880230003721939869564652757663590504041879905786523058324687784548339445242963705437287990436405492813074867480079327570775403514217000814332681146992528756776074953659264236273681784535473328605459155468355328090056137355871574220879439257757912209853848045119565424680484579670276655080249726242901172612536315909030804230890090974193825005564625042343664915609666273062330467139494847881103554663852012907154245321895404672073019197965694204834074043508596741957481584918764550856581249918943000324904823202028500947603242948171665997472936689640195408578237603884794872629977645891121153438747338486493803012732023213638736798922190247681529887772408669136550686274235054544371577263352253661148830662364243887337063765863604794800735600703014488967217140782079094124643789842963564752613561964178182270974995203113176106591970015413084073453585475577240447735027459234599429688844933325014872756922136223655590423098698590581525340718431209849833749788118636581327058985337586230410706211317192789087606064579805238851427045473436230398499962991506373383319580167742530915685190772999477813183680438473375205633812927900492759291756349017039513189424797544771058355070846615746358468500330673933746271781776250082285587701927064251535211466806228080100823418229343884612895860876589700717933968065951925220260961080502450854954064189415414291142570581980457590806661207555069347114828919186403991208828150712333871283409046913152355526386364929652489646465877018661808282143451408276650195900166923692710344935450831118572111235227666361543978594908000722663744149779719281729982018408484112486364297513358631353819283651167696191380644783994439632492454807385848211124211070445747046524574415418558978336358405988344332805580149989372329970450141673614761996905379150674887598777347409603380620534060166412081973306337494053281388295324963524146769605909705601445361922946454767045394457793886394024202564769631032029019107831479784819462931296068749565599819392964942369831752902383064625720459763825770547257374640666296480683233827225181489188039679816171937204579334878745412298784053710007130672413443348143806485133203061791357121881190372798238654821399452169788029565237654131543143037502097615351834856225951846065007504524022210711222806184181304804537454743531399571323016576490024534310436655476644949175035609590504710543717101600924139326201537391914099294970392709300225887035438812730465407774781524269783426395554985002229915198444504958831129921852557237631600814886762575634765720136536149207840300816121353110587560935356944616202352913243203651100528491927085351376427785305868289388897668020241587536320961558289149599791561871442130498057757165583637767936417073730414575141652476393886314253320080695405293239079282890728939823641627351378947815704580164778025490372394450665882656398624516884123301095224608731880830091189505620859918244026391314938630320120369760789564309741313413559955694781917148970884544191170799722470265072242262661540080013052784984429641764910797416957797560054329516791513848380031475772165882013998887741661484101155801886079398415320067268439660017363324755809439821869948601586363247584723127181470413510710290105661037235063189507318414541100849611833881605981944626286666878290060282524172284019394481130372760945351580403188619707910939525435675098249017639579285884466388854754173811231612371144779548954555866630762731304240115582853781674574589464636568917121321581734626959719886922877487127987237990439124060067079247241289546626120550338953150364667612870824195233281404517825056367469603713345141496757565313461392409229961475258817167282545102632344545430797677379543592277788322721749526141361398273172912087802188362743517832541828847669762090145167450208677209503824826277664567182288276462014119685192199450005833391889171595166996710177218456904094773775077880285573292315112111086078344854974678181370845399333746412924595726261336859563867448421910607131950977135998973254288085425891893860133064723176923120319268134954738187810581908488278868548080711095098436552895408919142559196448844986572417541477403769344083207889389201889958469793785953315120093555846595498023155369000300245466510510210379203863196088000997492665185529892374419185833795901233710618279119171665488350544965571060252862369041989432163783754385384298668202544061163565101881856841189333747339648863469166001566096039035530857168729665064719474681794079203974120339799764854546745178571587599923016309362409165971051615980990754865221198055761248037656392906627451901762961619252206326576048446734551056784535427957137495283293121407652421936023841439601029159375370257317318888460678213386948932535928751206720456356055461596363591007543468591451636091508556322960196169192019888708248333746703039338021809657698970159819424238093759817311412344309419276511988694321376685177152934597575882653224685332553236135484414871175128737844304019005756087551114351660973617395759908801132669381671765837772944708082539880775598007298527722477861050771405223111945488842209144818324555049503679265131569586060628621021915128644286040022014180521844936501148268095491601691042908113450493445665056179048337744127816164961927031130381826549861936203718205270170649966083586374592987344222388615329277754907195857753553003573635506932818527009612973621667315401636680842153805157684942891045206060064247716931695642126746951926376000223889735225813455436887664312504690193969941685616597984079485769321134229198336178102925242319910240917450718388597172333657905518398276059162357558765767039465500618065556138664500949660672965317521458877333041595824915468136440171850709027089368762854638207763608163908231266037234528275285143221586808247087432183440646939144817562431708186743559956248962196740338552409363126115560720128558331230770208764383078357640608263976394447783649738655001134335278645599973325633075509590519225147952973981670454708934689288362695479454044359191609367024524578162171968191238494461842113711149645454831824287604298486627665361525807976921187966120399466034104228973037130141162641749174900096126307967909655362264740577966218245736826698084105265835068916506242830885005546468846206890326939815411055525538739265088073930132785203204073264989576504835282720232377897703240666884694888964244087382884600011611836547584324163073177160650460091286589898039938974727390440631910192779466826031929202767127794054845012420647255371399453856174317499110801269331182952168051024507007183537236407292239485666341227737050350467122839139918296913065934471516377657801443644716050824139168027759196525858711207914932850895831952095218936372505153607733307738207941280421405097064818202626808827107237973909928209484140712665697833126062185938717722508926931186124108022255245535919454792323012384769507825162324248061820494856611691304022700219108949327410209596963850414138911859904731129817289866027745045011267446778539817542827076962528769092347525542834224830210222594176405012155832647006613756332221693607903724691946091186215353053173768018602502810633988687270868294065359935916618607355403203066503428239174810011727697696224791492609339108104331599223721556450310754929186543239397428852145970975762036336825766464648362188477319699659288268549936812713636693333306660569530701223503346280218418634354310621433787055681793377004934705773656756589150845401468685102665140313523350159429064924714320144753158250505587034820757701824004739877783257513260874260416952648340960577115785523359548295941858378606717115378202110815286388383043980516525891816236096306572608053185777508715336679610614412990357501242324045098439322373692729503300499740730307849148324228311959110425182604094034522157049736353521175650319845177292659382064294718042207793241236772501640172418668493435122824951502020588480163938236926422493805381555630269375403847195940602967249341976041397271256870419391582035963221317307725936555685872244526343007485872541839099887941508562787411598034144666894190181254245939530421825043804327066364445705686339793012501928309501989746319356166787134619349560233692639147111608163163802984732703040596288009156840839359515927580172107320086336297299108392482882575047897997210619520697713114288127140904263576597110916129231384496735363085873154948288503402494453461842300473813802132635698622118871226465165128188704955891765938890786353519379392535355242742809077474900069450793005574529210494221971923992006417578005767655131098177293359432190687817190249573793606420410626227832801153793330309865883857341079032466964020843034249338193133830322392787471793909667928093106224584787315371159089287511155226134814986469319507056407102562897818804840191668255557445696601277382100296746925996863492028309424438304085590246599823865996154146873923373874511390459113360189903455423921778933499691876945569120968253375733854524792009102973943865748372993756144530482472306315052031831735796820331012897854097354736419305987384472147256040127964979162360263424747245509329860689856013529892460485606569043443688473591076739014965188527583689414224091353222170490286928761390852290571871362918717545955160165717187494187042130240406924676366822397204848538976319408389254397754876164987424947128278981407277740476429797867476084900401931982755130989105463882174924028008608842624979129569933372702543086075743079635779399812611096375014195792500961668429526284059685753696166518620000901750604448022148630167702451810400471351688093824800495808516087267030985737576838301717156543114006802423257649777056457184123923847815836332932779908745525924987792238305220949836802624862428431249298647936382343724093479749836991132597439700196443152579952511864636781887760406469745058097592979442314227974232361262057874129756176561655193616404535686169051977337613885572932982059950903891168533210719011210445292264121022637730913241979253073677178295804944756846186588888990958366999991784281088542732006091642053397299321256484589726774077983026362961381423214654245567533790413824044049680150395903307021071998310690504183752873412681091687715313840176075035418323426118550576868041911399835004541050911273604882299570289191856282533521093106181273005520298693499390998459575332296183432182263390009024969500506531571831156765059889609282433835627508891770330115873212794782188631898792438527222788809248673571675884399703263944473103943455219808181442216851643604571155202042332566861131023552182722105984405600108969987088947267345284778942734901384734301509387427222418376878175174778281858362869012548943176654610584119255120191467057039211402953245767333480993944331889013963726570774698398722035064965567877120529062637098134380003257954712770286388222360426256264811368301554732049060534686648013324500842239861701791597178726660433225505137548219708048332521252356313632491219112115329953097938920426405614341373213320062855779969559242935219478725821789829934796874848290298640463275404009037016911243110019238493626424862054280245611470914124408639169057109191715594355825794799181509307779042687224689045680066956568103485018018225832838415074944804104119752987461310845633406822875696453929505248274153018267952577984680601678428211154769902623357066773162845073516031206933655292297788317926982372152248240482992667231699324749330157659904929639241828321398374591875970672791638682397128388693146713388910871322945432812119135282412318194896520788771967378510340507650768276148849851810241802230979017808280251231551263538697888985638450208719885849662500253168725510872862394963268626066706708535131414516966908576397222510280127897878909044580249542989417976482428398697489476652415940699359904160985966457052275094256614120502935729824045226886508204707190214635162162945346253832709644517294552206971005072573766215770741897975251302098192387950540824854943653223149247491725462872749840671321955053797988198645684047814544270905856827078188517737718941099586159195057557184495513918995884132843614989226814052756151929088540980968618063001031569862724396002848666306157995419106901859714452761000437140847862092079283008116808051089937885829512134956987370072820757357337265397775526662676179596803179243539430640817832629487255501365386009469561130867171965185543366662926523010600767307376310266464437940416099444321217127465735130629798265179201770290256868942267607232790790541299835284613282734467962570087350499130847233293188534316070325367528380900226141602878021945481623473316278808708349620378856027175148095623942577683232375219979432923813550113750903249412772268889435885127881417425918727796657671332059240407672006418685117893111407761232421827450777465080513739672350226869174086397683186588437649868408830606592127521724386560250336388494878515398596049780453211547884495323970328900364302023688540269766986613862159404001542279182344573316343510656298068104093674287329857332668686818492823959127414366718836256916013697605203650194651210313662462708562198416123402802510065823630020637218606274769064172609093844349966428743171005511675648007579798930208100527808190486788637228090905653027529718138043418043167197148718631999449322436792777271426633301301935297511752380610552964297369571749434781685061705563766876673269096789566535369205190135787586874215470912348664964266497446824550517167774840154382525790142697770538802647724925591387607833384455169730720200773083232198422750020164898743975281919092274977177932080546425616642149925925200547535665345765527048854974948546761491973703709651147104380558052205696454649507968559979556130359321110301605665551987024377997198974262568516101337989765029229206963345063392760202594705636051788515715363017927164687676992393681849027537650982589182721043734596423709098461342743621293221797079823622510219172901825853141469092800717441717757213599032608228151244383602684647552414297333079555390306315618781845397932873235298789105011676327551998598607919722692774149639984437477265715944197310658564318776427183107903122549831624690503533193782822636368072193886269061142944543837422863156696558663516884293853257324222492616623320480540830509006663122145400857149149636153438451542981822106862320848454801399433834698866738205234086914926811414223118196827626434069007385577268474545055187573098783765157640477457732781892317390250849953278955748819628248975402741592995582008616609230985135581119084518323367346847527112200003310239823633140164000580759196351116381196201688180288419494186414743780023951737553483739357225884779102822709467369215348682511479466355194162536464013349966698547567095727373013914263846843388459823534296113292185638821126273356951943981876947338862197719065839848252070480517913712486512205066987042368592365955159557322200335673706171838627043534277629432628290150413368517418622110456126659756511563745547997462746944399257849885283261851572318683685753885016030936009195890428508490035098210833623681550407742428664028805471506100084382294318621459280311181983494347167333872809532102090066660007719267187417919854568576980916716260087477789015189502978127321841998593759128024906707185648727718017041933509013049123954509419955274910792675358508978962171094835632559689640114609786627297879004331939842055345271234232672840052443218989091304012285269610195430034010916074334313652248616917268011354772915560524743336660699925070614785037380335540579987271578196365103737852302105544502239151332448758341920174934187605319984299397754249600759666819147009222557000062193065003092835955827954128214319076794472083218349231370746066977791515777643523571154886465886714578098599762866577674666201431253398965000792731459306930760876202824469863846766061976637965854433083036414530032294211567148577896976971582783214884185153423694916918686757354621939595626337782648207242085746885598795893732508358500191239649395309496854790774198324539159901642428334828794096800407032530765511227033817902921341299645776769463043830679966804279902038225751088137054933307741900951745014726991932658014758880602336023285424599636660273142626823391658510874895541585120675058297917634045725067444765740258265978682147780310000470506245717667916154146070299263236958960655522599641255897871662899359978338548338811854996735334517472383611482176992199676276386294096674169760100141499209028689588481108801916143202244806284076489002646905821221472753965043918392041905838787447892394941923844422562149239939975521414255046446410593229239627913101985099802699975403067724994614479275640646005817093213741862023816137358690063978630216324388111701318494841347461884862710995930398543034342782283455528282106771765594667944501453709429514289438371981279753016372341317611696381011130270980152027536812769466090884404774581979906161869352140796196786234647461918438365059065427597387484527742658811501055345748967796712444426518140808704584298997628611332617031062754185734668632634094517792482074751406077901661595544967314886983695212632939413519033940901056888569946787212218443559911898822290003466956655965511805650733834576754447571204894576520741928137657589684942570504449950441596831322111401704174465265176639984808317092737801966422583215348907416190553825566571954365646548443462598700680221181213118776603684959374098893643002690696964924520022260771865087952921552989445408800441742319102941176152407116118994414131273424832738924722017082802445946233311128823977357584601484426303380102159664241914972426813845947885821189175376769551603525471725317537525655460314041286554550491281081721215496622165151438292546477004392755733166413127992937038250558356279532297947497880083587381843229482670036278174157895233166926195249711593641561912714827835440508171649978379822547976286422529855926148351718171128219919267158405172841338392591335340258947729442463767739081556505576083339464336987294530463648124214346027920545295358374288582979082549086886555794192960023906289433611371555386766498063576120351965897889858252415641686447554833764402758212460589647258639095839790975730850294955147143637548494137701892654642464342523354005269022517915170115341439198375944763014658659208154401140841698955743745625875117656934111021201532457296091955591247796615062853458599050157382567078505527678193059160726962639549835175130097326621642413819827940615270525494399428426085381396370890941668370461719348625108890663332536754675185491245307065852581268639541447641505234441761374225534773681827794964312778240023329561996783184814712540408028145023133432048546140640137877627380217166763067394523333485482707830661855445036157219618875822987583373051171632645075128915830620975905094731639008597173602632356325495618194365329371822331587131311788035627835222305526261934324001635504097105391603627293056921353589938514801493781123539612080339804029576255124407029300807571489557577832746180201642991383636352395218252487334808527315775192343924080864237878059694522201160828130349420399376690693782791605921383618683197112346639193289943083075602888565642569688322481580519608076670080922501538376720383992312195246927681017585772682823362570910081225395094278751753831610332736971645849925281462510136176749703956528393238535331883507821005351290012876485893416532378559393098971651938966323157817409541982048431694197909838767025807057453846368929098912933135778206832290085646458458677149895760150747697708411675709374272891854599855624969412736346335968316225320613202904817502983369868407542632356656618564459857273451006736224741150881075032321078493109176691552168366079847463994888227400901940788948189075592544494929243296722481669958409553808499771004349921870422376933825137389193157013934399979664477847008034680300917736414696325288535287288877486042154451413044741880092166088919565502897129664642862277900837472997009758469431961420437378969257585895353616220912371580239321358495899744992865784878131414381329740817785415637052980114711573326750773189418910417272397594014192512873238647862640595862785837582088487657293063081051953624392920633811286494625486168322368626754326017588029076030176824625644429189491884027761830703400247040378046713817658269147909450077132858706351796845103894997442157005315041753259544048061848088418170803347865808708122118641804176200122064520538123111328772777386069931565645649691794557796170033275014972037076685191841499302999146139758084116352382017591568901938202781097462171850575807827280418902288716566504744696953943690311407310331591936221412926496293821977697865728287747782105854967657048998331049894242764752477383697618544233730851028615893175384899790407936659742146028674847975354445568310034665476818045684352764862690280142412926331420777954417933143589854040307778002779302209153605760971667262638016436979473729015842458820118046980713332576133602146430693174069148278655915716109335725097130447638554330220044504230670848183955710662527270282621299118968953525178287968974838142694657794316150790905252042035599664303631706953085609893977648585102122535530926788670453294953319160681408749284094426572937416132319982222733573624693116856462049622295765390462630842056397651540346425159040737848408829310543657189472832731682411969926179737337709536084798688416493538132257335698638445608296611803540252509296500498348352625991397548463726215660618089875257048130333730883481689212429264995098826165722445300555611270042686071519549275052561159645813580786237764029384775263667137721374745141276953643670274674630167642500306456121322887641278729342699828197688136700662519679979407573068605489614002021387212130952732649339511388561645980373585672480056474919077348600525640134315751377385429218286111154987470696505081711264788956605089759707589404649014786634017807398950636518632428878207304196855132838262973248995006863521490284059055952284696849181151759531780201657108519956333341294282662138130443261956809024199806623297314322715632536703372885618466991925707009445050054229194940077470116045971508881613025581143551948718582704174682588277161247386802107203664069641983097225323173480041148463331166561148497478853681111598748862363459525570929738860158042282943057883290176245517877936731902474490071857513275620131327740525645431770071240558761022171165963250119684176600422381124539726976615049473820586668478932014706875665304018726917450116741378930568810573929834162730264968837580016540249500338915105967481606729392577706801447708556323031642635710008088209243739672782569242823772134209018111106307956944949223417528747375914663374524864350227742421642538525650919513432630632086824972131900236960376217700449553112250624993815148271873476940157774592677901989769721180246660670089762748655952240237178581755310457840160515475015778751892197847707366462021523433256739251090001496393757283627918430957950491619256760439950901536917455613083101130101210370680450123581711773185014197279946827373040299365261327047322456295163120841362756041722537602358251917141462667057729589439898677275264864361656153140431783283882125820306269500094329813742756450011821434202802043513000339999659051424824940373503396636675109510174521007453086903352339122847620412827466015543972162615558769910771155906880992395705554912761921417477885957856581763744514579757976797668913362358656381242765470438217218601893943187361809827087079669420941798727797478923984181708873435049328839365157335748296347565172055242275940905268994110765420324179249349360511418902996746848928948383858271395581987395173701793796835753021386784838010418639957370825999395105484587477398012212378852246678585726551964017932878518628457656383081963162858587625633471055439134279891363419888135718708564194776060940622892553505996864621131323022534028589295001019152922314387566283323109624701032807419242172441535797979667184848822231727830751031207126943534131378810573544472810313623520882541003624854157845409355708105679929395267960967740193102261547287583234802602889341673225311409325852041413197750381794156543871279675630427214095517228187116519375996352195870822804355084125758355460945959299474880156388699240121357092652124894349188145767763267419020854733709643274068315864982121320683108804441643626777090786812355325914674270201311004496628390903742779502254424393253081591071721242187091959313877054107133508165952049242184645143857549787304205484118087844446365046405734062255019715861152345447656022489085603120027539188118637117912049119682649404144019749413947134784913861295737639922072748741249986009599772109504446343783333199589910900310521661833812860205787204418288730798804458304349070980282496237013911980157981358346587277477616512321824600416932630841167081471728994246036402778805274469524409315154315830300289534211977501621861658780886417716939995672325128551213486910371679715476502535604260283670488106391645315959991172739103162632131181159639673064281712681097654823424965794090019691930397402566967454667045708834130333182340022038048430930928081300803277769500030360599018116061280731697901740659028803820139769044487484754303309273941126673064854472074674326668774954149547753473147899069126984304953156568613672271699945163522968544762437203708188915528033938547713108535045274330893629724276837298273392023769622627507075061067689242520763813520669481063888222554980263248022074692234250459926533710888045395478276838561698708487878622831885520384639103922802645078516967107093706673127082199391470324666594769033136381203910131324651313439291935430051735417286371528013509702068031993696207777815768855478519507202672102726617019916870933196044368315984130083335088789655614231785576377031768436564323848474197773037129667844670136895989187558501430876994774086409332231222100111632836046585438299355795110483348914324148448060258798527951936879759564346200286650440442068262467831219933769870468360655074657544584735181703540658918505946619562659047136753874279157218047223539647096192879297560358274827061867423491874717758067164338586887602298076512057580279229771853051683994043380266198778647770736913700455547367089265986547366701671619591619673754161633810389261692511233941630510520231843292988839089154855593364848649415540166759353178054251666809540370897763114662626932204249185339694556000296824843555586076664294802367430229750628321473952136212966088603308289962717832482760953835840186502230952363839372401401306780716421816607989815952838206807190492551284402197666629668362116941678848959436101534944642324741786481641116415465845106938417225408178859508346490476807555218646360865998899982259176373214879448935454282068020850289132128828282093216905924690832154145360597053914463862136628610811738111339590102437010645034212174839397376068644710174679393522704005783564871220471515799706594248932630332669763400584601104934316735478014418670444500698657403653459825082490564575837461413016440203681881907094849578849155217691013450668458027413655822616392972025012725474004229472737227296007367229998466763661000161977760603362624937426125870661697200723064796501777929415056787284132080981762383462821552170843700606079958556648393998182641313141748020567052385095892895342844582349548625448023595959356997169177164981460133159819628464899571026312762833228087776373023305051159740212605645233595358777195946329787237232989825771842211666453748973478387527511880675988672688684569324792048741904074515611427763972076174957668674808737405059956961199642318054371785362575200615467712528506609099265695938610399553477036438356847802926429693901907009262400720478756311993460305907650143648656108288830387595512009987416668556077358407932781022468015542389694645538918901417854773235455765443443696704127222551982634285323370464597569820686124624078072865716134685555226199547580384404315572322672844049552831858009252806084146454456996040918946442192139811172606245217202528205975109175827818879680405581927273106453660147156901718496289612323625206078909499620271136490978477789455150029223706837457983745619448044595937100352962368908422264072055645489526276557725329963989516766182504058835561248217272389877661113612300755543984316050849666234289776329214775875026874391162057917407284201275617635582439004514120064573996404003287454601029774435053192613984541130487613655232515941968471933305998437592595054534518543284680711773753729851686286467655604709005092974902910181421347549253220939312949338741588145014316497964239965044118070398557637612107331048928959714343847397297925665178163619431773115795338672251467506352588741018353326483414899444216750144125992289335337528505397074793355940195190545197960604389955352142052603980131246560035659885941406132064518632340586422228520309978790958757025309903707809336018658620026591528224332708748819370751706954204247529837429922398400612561256336954035141403565764022601439140419445361954400085641382923699234165217411442698840175768514062878035529137729636999850818165405263805722291015797539672255188632221063913874616225954395062013046250371009765091514732142579048662981734891336620053097864107130192879934387577848977947073021767512988276880526694753458577605391662421557866784349991369579543818932478090767046277573408458823594531678903050924558247223865517758289033461495612463355211914502269434899149002206807411446681200306955158452423016857015289966603755059753103411629944994680773718605687150490381410338632644286308659662369610421945621677223917556764395547829893053631556021306113624026672898300864876982991624879062456997289657714993821995638667463502755695285490171262326600478957898183486488406357140403049925389124711000425200563046986345751270880034150648958192301393434977718188663472441712953259350435533014415146852995767705803243715869917030699797762242356763012459884114459827912862477463383940687565296096769891226372811624830718158236275787576317301863067268653758736811820278164272356296749228917824165681687371272315730301489922390937673440922405471251472828145644601695846803983875851120624312571600667106397706101748853756349300710587717053096335457152255299855727245329426640874427821705967174526696140019613164950494382107375312126496264615889303319839171537370250795019377278024070871412268750102512866567548475862426113568723630510636025950085222434862419811244329871005599144680593274274969221354220023373576266896349783596541282910735884591034133192492440453589211366752675928681531391032190280846121026266597178665848629773388444211857789568156010209264491751709128210478846437477394749772341517943712191636422675609657977272119905089039199188610892107665920642939576006836594737807072773704450194059267467487150244404112862680555044455831867253306736338136906251801167393731359327150502813162653233500339838636574141322548537669842728144260013234299822651467650279594272590151603379329822002744297925301918817125053741894803124522957198731304880233737243147616646155116043175384645683515974105982437895056949055984215337950635480254444490500385174852166137851926137588639275722834798831136647019930858222956821691014290973010505399664516759486424370620568218873778578765141790178531977698482049678487075935533525306628246746510354463247006576168845096749854491230222897089379418819106362657223552533156693517599018920611523495495583365850466601927959890291088974145540784868800186359969257287610240844666038132934671500087126809057495314702466172641333671636456924771498307472936630428621122180165763420428696798395988640923673684875540927294336744968079761390747097285936463180236010721283992262541442274580679474646473130608470254572425708498490691218268739008227693482279163383145895710372196978769949367511009810598696087524618834097825916333311071291932966369188907274675287714833550760559031262153141013256181800085621291463437714254822351678812485072368235180202881966941879259696174522400237045318885675622124143732249699090451508803532854326672584156571275222730252208048175060296416378505179734986740089616604262073282603854515362649738979873335049285728797733930009772911472166758712210878604243127148248177683484513410640504680172583089307116860900315042510665101758167479936525736064707718589092278361749658263263480258065077074137512147108465150884484777389236609160054108785183808024136745451942463728782075921897054562456032771669024894287780427979269492732564092242895420095480932974739508598192912575450475506669809869503876769845030848143284878960233036440660768653178425345246098520404448088376270758822824554907274248022073673496882432312620025143882354995741442697414128297564778698017477520730882559068748545059438374518022886866480875590321999201252996979729287812706873550175760035214027378685214102270679323617517729571128937379321725126163716021235022966705568141565546950656826064084294732730371956973842472261721931895138517100514958031782932193592929157024601637552061292855106637916322430890243542170460539643795175790654076047186801738998488676274372628751166638453679837910244917671850193363415383310545159843676548271696722092289752131695705031219578580668036777622850348242346680694405870253183660266752433166779930993582377257759103473946317727644458501259991068183348097123699701533474503710433822527341884773056662885011613049720900428001617555465870554944693489948144009557840759660747913605478774054284858723423758724260252199542754574224557104079724530846966854581344538788598858531760438316017556149040466387733860284771775848568183948989885064168906110704151083109394072381279699333867654550097468577624392952702329632377818199390479322543244071502783362015483295237117725939467657170898648099680585906348959825777090310756516578411495121534482851757249620468408430852475368006371086830803001552527876946267786661799843293097911960130662477812764434268395056514332899879079646002193763704078058428204859121224810270441140722697449125421667496273562869065206979084657139143480875679675832080539200337380775866360049830990528702495761942413845391097369807131478867012120376940867271495282873641299349875765303514404166656561815264675493265641411089351996673536596072203929417590937169023133764615855804161579520922557121717822222659691184797014338046701385005793670996105184795741802535302386648723881283454896369073748473519809715105126334804715769947623275450264312203752518705317680064302653057445612658827004977737463940785240262315361830188216885400066248511061974399828645203165165902106991804977436701227036422545343052499385401686711401742231571664483572560289182481838785872147149131642769211212599783769160587605441909995593599393420108897297944756528570539886355763948967883585623014437839858142428971181337478783551486158036674912523898570290829349415924071806945699538783134258009261056321792543269696321737883189611368496145047635632430760346643579973490138860157154552227697281817567344849670757091621068818468001593466884991069883772779708086558795481592399494926077199141163977266710855734435816561811625240641775050841223853092175374554562727834090298681448534957019091075259701848424215203659950846705741540315229069552614756089227103094502853174241174355244223667374113526394832915523098773000737352260167325593807480032658297574147454810623070262666405250644605261055117470916865641978088234276075997461428008633451612171954493694238085652757570667172386644046650772454253897104546854218129241789162914793320028017014881686495010641552984300810093965161542487712676290098585375425460248115825462954884106860861715039707040575891000352566731865698178421740206529627313916954528273831552257131680487854357810744522887435719741702475059389678398721402470697255523623708037854024443298227494294451655522280085298209271421241869681211713264117854420889464156058665985774580018382270444074610083725195366397513585217127936536093341366276263394042107767085834864658922147923577347139817253309971722983524159284015442248349144363082459698671541983881250772314493166587124856893931768048967082117381237661201798287752257731817012715161047692013193414509551379066985892862071090611732584821086095439705831592946935618243626610151431785911729495786534012650807314080737956901587106231988399310200645820305459577563261425472643150094646472909422738710482634912031331167776958359311630631389685508064891741231944360836903692099661227331870436655325756375421016083201485334080215563157879889457057243471749466971798180394889239590713175736227035662052428166948574172333851504338142271280038005095842475951254122293107978122469180084391029517171646717579885887541709136749274144634236954623525751780919188629691249703684083709550562043535630431397130176107658763354977799499805182827897791257077259415657332432665852636869358808436655274400584134473450416463462206361038348501880812427115312718940570915043255505400399010005484599763308738372595072157683703969411659731194836084190802008718680403174610557223364306211737022947632277389557043286535916335048546708044409616468939283067259222122399026969487057986112730495524500512584819030855091030853390793133044695726480175119234663441122255586162838347247188192717059536045053092139637152016084474827391278326353079852227478242272708951753948256236257349485099825586463952854674733929834127729382945375696899459498804790588050192301883790425180803214499569827695019685227154195327004081204611728035830363386387250382268270710085294606715952824823442236710443553395971865810291720283898109986539601731978880105461685591208979304341670309423302537995116823484129446425437101302091463570306239244808622186654174813875131683856903327050688483261286124245476483349569134754626714531869617104504409323798956162652665097694214893265749702437694665212669354475983152282700045282447784779447209830416089442678811759846520744720721136033411776676124808134498971164200686350773032033807421788657868570610082644425875652888188218995410351758782086099687350541472974463954207311591567544466118877686867452489365486209248447941364138055094979702359838342316035124096374491696896497646094142006612107005675612757204558252844657308529602024371216322950584573664963072109066921569744210060651909076699067723256954140504995888733031432711245943860282443697555292706829371651248168156496826897601111757937129719693690292063892872916692519324669945504782510963691277233329409027715378546018281581646260534407003627937646075247844500317785104729464075281163212097572841206616439499169930580446006811621461031087850255794794343585768777078576367652502596546433230376990800552261553932314300137698666452569048032060367294539591941540746284936054882739794510355783706399365392506818726020411780577595188360228271767243638050882980605104293413745295521375900063087962951446523923286110907124419155703639975598929080905066142111222896076955658823611987589932172625546384814848664700077916114070314222614060476267208117494940626126258606017519345948714779007688134863640233369904956047663810538898649401894538656653959896271176347095711519908125353464405055633817870416591274156695531794779055500777304004124446002800072351898922087246857644079015843178621186838755900018436879256091582749016921691578221958378297382945699425236911350720454744924131415180520664001034335836758404131943345659544930746798579738733500880105026816608423256716084093623456943070336006894776255042229062938310724859470946251632113337002400174253124905585945333537138449676715626608820580878042657001818929477277608455482020438708331814761179719415299669570360422254036313167484569701556429763986813138966516303234750524326333477793050677367673419435218656444112318724316053253193245223815367064970119231847989419505985297621512637342034705946071578076287743201090726728214582735362454325355607911332606660375417713321741506603052664244320703409198249980614854007525598932816632918273896427309379023480673695678092769272643928044767925571131141782734019036351267709229204282740340424995465227239141856037420538329744942967938800746170856665371901289367987546262794396476598288152105189109857940816122883128782266923781626420216603196358051801885954901032230602447627058032093691760732935733669552281872255613780293863676883453790148121563763270478954717551941615664431474458457181563533359118151060607819173099052040332163990436892127009508765253389183145562160921512074783706280038510932034979543436882880389234898963963113574270951936824464235117493555489921527100878677934966655307160717238250758139009355319377481800514453959797750970868818937089783312039865927751665357659705824654997755953186246427766226851342654703794394071575311303625115458487700593569099106425970871235764632864322911636981545827285383825018006931462759609011386964177539250884188776984874133266679699986271994116498938328397749433136108324814474136569307646088163288788739531643074940569858356582384965370325417589957957480901292404849890757741259860650155470941922908435904237004416805398639466508434523583619775531722796593892602450855029586624301970386043022392612648877738843572503246214759016718096341103135257156094717624214470146302823248726057820377270894360188895604722651960320168883853934551635824265348630797335839568369826137772266936671297020002463971170335083358266488128055416372991346086895612396590963120042566004102947637524431040885944794490654702865093369283977544493526194570174560566763609988084443007396455524417588503066206252317137606618997907696961626927373490049179244029941548894495387167515926865337868429431375287115518314040903614639025616160733903065549850094887439779131058878643120890911344563230441425136056084303594934544215537777447694920859600025141209020138369381890772489938418095759777925224208160525226238443470111756436953961975290716598983112942257818427449849447770688247678182391601896978875373889059625394479118454575530281353125893105493350398255037407148233506263447544943458329846391444776459503003272643930686573942580537116274744942624347526260329064501119377498301312660980100176862581249530131713184414921641517628436082419120261718494167233422480322551017023296093771906764111301404934397902340366375031125591463603085666423879698834365203109830602985339488136609639324982965782401617484468676308753993185874115898723812859729296590949629243611195829632690876318589448908083489700521007681457946356559061324984213780825249005812200524759647692216384063045794215755598296010737648619429557010774848658850727027119457969726796377532707153084632289675261239404084895116898591743690686551704406644337146455513382986217304768198459197968935149433112767951060765420249890916662600662686851773194115918947291643667289535838554625599393940522921772475199418775230217579286931368723705988887761493953604919302883257367501147817127960726330179013246627568205491675721205882586286560897692707353177243447656396183018828085012538349291928620977645690323853750094029905535253760534581008419827971998349866617284868514604336171227805064910549893983955076635326649085567682156339368324236445918392343241817751081946489028095299231559895413667757406662724104551336712212774666360950967031304958806196283254539283865696512297374326364669806348662681619163488740557514274475960446193125983925952089891478075449353090273551963807711072148733673136106917176492530296289226604272950261136616360588382336583622101640561386422211556063413364267216062586561037172021185682440435457851291326745093832812974251300671962591699627360227523002438360432385998463253693041574978542278098858614259919888308424527050788400473214590034721784665019114823627709637702336105971191827693421427659305817770200826896471062222628028457245548610126747743706673500877459115252331967942494342448244874837752966890357104492044556067032319086726548621002673534568732726154023422707956124826660135544293570326706611640058952368651058780115751116086184867422352802226859278967302494688695288812114495924056569728708339279656525168901510015088891067496390594352530014614298365946700102675924621979886946871281038171558765939118696478413798599617724966378164977486164428506551921576618967965395357631967023184015849876105362294176096780949407621542925074478414910931740977630381974449640194975112522037437084678177925860873560409696880879293369484206287083485477495095069330568067388803724130114078416397003266306494395354224798753121424982141395881244613142141562930560762748543612782366326459464937802185334547886742176564253056672718659774853216620348023191764836485677793941353876197186082621136870553594213101120825194532725579692586238319834404189268951756688815130170544801531266251926087399829284117761074553220113988171693080124793243160118643956200255165736772846452992402466137833325244155559272372820742160531286845150564099589221376654874319289881345513797262974412807834253715637076871342920816912100782278721112500020839771269442863035580949752527563882488138428852014319534072935906011746232772340329680421859937985462487380726840782725106861409758818723179661700672213791427001252463359305690282545547948470639964373263269471695873540409849565261273932856874361366568572264685181194552255721507773230941322514164162264130037980066591996593674086613624831588034596925583013791769131214843679937200565752141468958411584009250100078386608766830142326253025719943998541793298542444529042080829664331070461629252605186888386721773902457815230432853228404890596085393869337557839529239659476003896105519968570902739622018606937242714480158217394022082465887507883828754707518074534692698152545785589174344372026165216413243065621722308382738466528212400096696653044513443572658514885758086052124416992488369999057486618674745768707724979678797463557105389801275782724990269013377603049071783110538557077566110962856282843605499387521837107072939166073518769812378853261819506038452497654121021845368662919322059408334711503541432639035087530146945258040832807680244799413228101032449303036987494336307545787136092474467887637368155760912360035358404407258476884337063346381365906507041881815574425512454242347237658582913316599451068973196194420583873236486919898421086243398708330400076959444446942017125585484769074481962952425356863490155435904577442572270745312079179648458363226146723165200692343495726435008437101434805063405048868948846406557479319942740496858458810916629608195396109116392732885386022889761875337583037526481968043143062986670341343672868200429076668204334808812342518628213267993264429379891892782660401078683266375707783494790908158066264911681182062894321546291872488431159453980831039785118942742318616280964134507807825616945904534830063979421195693958695841667509299664614330119096295856925502483757931730178218231461018008917616162412322055300474533772365350899114044335555852011146347768222791980890894278310195346879597678021153314629974860194711645680867104412037651060168007829238120915725879184265797451220973535199989981588219339622112369393148575125739607637022812995373871734131220485100066419697311040677467482505432828627336181173315368676861759244135791292788001659858718975826760345626542466697080590197261516978203421122465474748097741052661278708502138049579978192222888889242596650153130413982708272868870517104497965951630602185959608786317107717683520926233283822110322336462995907714742477143220574241410246976348015599635097548409247334743487271133840763409801141217963367949073687388287677173128772319947981203182453507666317618794654854712366982616768648589274656592788410418539920196558538947799336689104608693630054120945469208365440009275645998898825224438199753709389132425633331106333396650395628099950641086362108769773061966844603919232804745260530107782842684323871973110738198599087857560829234720493671913979189582790854977865022330151771129787674417186230006988580452961806234030506356648937377466178854761360481999557580283801814943969813456446910133861004714241760664865148571042285876072329280603497418430879091976797977104506187921007219738682206302579930090919844140533241876610624806931156498362207674830797478729312717197554891202676139389486204972165640281513372385686797419459108750091320822021131752747439766260599757820139112855986539183912006395436579694141218364136174570888049247045147656330616875563165203517363810016405956229833227381658569520605886161481453149670609619717035806529034091632153715570210634623732421866031220251098636318896505298444308675580823576813041920415441205631379068738762576860452819593355782074117911425404970703956309832201384373907281042781138176797898947791581074171346626122903407894309537714437248882634219633654817660475075745468996754095969756913150817751088344656709957805686806974631515428227001051196775575057467473551265348122460639553309383371464792350275258351355225032551360016737292075160101026795973532345858154288163526283607668820904031414155150999783477844924241566335825771024002258175349266326337853475881859123000204498219879973352379581904331755909923067693315180876043728497526124648816921272372675794498118985839103490754852381463832981433714868243846121823328742599647713037173069634358122373668049516293706221691394743709019051941400627382603628669887580180485821644035013907466039419295942089199590491440953209825227067607281593284847475395027534250783346133416529978259691981208425595598928998589692189103298257133684083806856876961477203724110565829039176888084018480142740729264648654870604831849164938928217713228772714899491437433142715521081352484713133129076698901895191449730886381445644818800915275350615867317154536493141443024170512215235463284951232044236940075414522390347204463273368056376108672134525295581830244417191023911824887750755989496531942256141514304899287930817994458666086462911536155987156028282667071553639496458694417095151952427250409470291937466088253306382118239184348317973770297256349195251092160757724813170748282083564819087123065740292330776818800585860765837648328015986371587104550340369415679877426664007058237968191484753110398333155735748143918389230969891995572195828116830423663506771831225026690341186354193649652973825026124241652135162435086198963407412265494006695977417019635749923201703557662638956783278451669276883484120144396300891935739813833663555718517750276656932259509499950978390123179514404755372335616141136761175003173108484645354829962323628750497576621756830429070943988031814889082191117588901123364628000425016111776894845701212236723832823260175395637518758537400814092441111720676389250279682333160099835498078337417878184565918330558608610620663768557635733104896921929342951430131405165058328467999233842094925228172290586537820409729299907704852737361951745185851402471759019603428075724392496240729942140759064278772241447555173555173517417033870735221780456652972563372778140104497113128057790512731962764219139486163421980100172482925600279268787237431743189797631525038635402107242453582107056817108656961425870187894316500158190312471787103999205063481942221550266751915135182130585491100937043976035776967123996238399634785675633568991687641202116905504896960982933675383415527943365767405614613154858056404821328505576600917029183436271973894610844834093949347173604738905474577723189957334775863557486831014675495208765229684992462612027982347598549890005110415857677400442736426414801873553174667105401862844353234278449368742860808985711977331182682681685140463042336273850287613257857980640832686572442103488307536794596679167886439693805538722106795252916285842138700157515876618204086458094161835737801748167464748211885226651953462030529191303904544188708084167386104565169322947602687834433030804808792766821146478482919370592192760074870000111253264633958684920133627534511779493293363308783103768261241466469167828401098747422892184723889911651116040489526989243025496175872994607482301392102198651515817270359826068135287605582028233315542686870842803292997084629186466395817492347244183465149380594953329717760216281379343202560765464184282090980211967709274460744920049833476019128666290933413306862079879702145083430956234040076833503681639544080366722478947766727659016900972810903899489450353421549657437376282290050728186298865764080108187556826375108720039453333974627725432664632267541830691458585064122088143095080407145579947216661866791625728850956265182913466441794391110340833312572678068654312412015307131388982616118702775261353743849950647474872801919628898810618546837286222543829062854592694533931037512313176644587090340918096012482796353034785546777928105987528424907858978323687850533028362736381274469444367385743937277725101597096122592827512328069764018687812632746429824515405950277141570805794640078496410127846791064516989700839221889682324280617232868282501003620543809014216225245082934118199144423078959289539435043564160657586205800090874818345717851079497187346692632086077881382973859907214098983898794114927412586696726688061755533095247163529877607371913192011179584510733323146791519392676284179185837310406995085032422828072863327072534153619571679200160266414781512008900660709508788838019756151569021834038585301011302902021014511873469786101464615209859935344749065173262095424534668517934545102328637496444618735823013322306407222267926652918936371014461682094661517395660397808828055066880207594437714939913662649474956758666053368327975961874990340375772407369775515006524770695610340580562598967446904150211376336396307905574361420887864948258562566775074724044406442755451540506193535179910820186925271136538247038432699359371286914754861017038652042120614273012901749065024618111450608994310434205517898897904636289240219427680005398166628936316265803013895940133619962175825325124405910997957176309117391130737373882934043007094350225913982825551866721228687782257388432198208184644201677993298287440857925114309053988735581423570757919168810064893302694066867491777163067081989100035393839963025543975036457339819388731405536428992923544049441426296995200499725350004005563960003856936757355017095772600645284516465853907592345669669853419686613967660364653548417427815293066301965552554965281056900913430428013049190653556386329697772709299909310443007214468606170347500627162992061983955270866577969222561205719807136837292320169975331295964264013486094005082569123967270875382980862454239069021172922534803928585356424273148748521380958851436531134821859430952604642217247200241083286390617937978529371025828610005704375947147488992069974211623243966031013860015552044028575686022040560528520058830031395898572703130238583246776747909549954735653548824521980462218245369534865747055095798365424831850197351553624603404063471106307255227176353300647563211644431909008536985349116061219905756595213891685064896192244797065440347833042785660559401667056931483926431470411387042316044781265793425759518249924284864237598638491120803997333924008449976834372188139946773991021580975134464130426184082929213117399720005062952231877686482480767336738107304250737093819803529284955232752183228413424669236927128390559180934858542503923553868461101105315676238079348369849284352656121924543115186537735773612654504077225470953675614059374596090079226880211055972781176936565978241787850352471447308331046010036674007206442370695290565901763973917364160969808315424123490153172632169946121447118841246157340569513150656616010028612307008726118681075921098014432815728679582228716076674180530900634526107521306843178047552802708075676523018089200048818098492140331096061879562368066885826618797097515098634448075360789299516272349426105977065659567027112130646037859482848595448388885233761095512192264622845515800956815343111630021098571089651719839262713437534805420465476861464473153050816230475305132939360267532618599499287951566455042871586915228099475745092318618894388207405038139291261226221048984992104419369597342916145545576029337630525533384971272639071254500566902197132132012006811330865128854220507033715093261782855089928388236642398583410929081557377858361449864022149200367111710782605341032395313240694414963810085460507500823201501660435609116621827583386317606537100999965931319226297549523821864333263994993058635767175861542345939036586859771988271663340113749240472291976777012083141532416251062726768095923962142721363178195963568395588357765515394724557906041814002020065333197638402057166638529887735822562762393563872459091405842228200670044837556272721352804804762918589688182538241219138479106012630296281124565108613731171574944139483272422373755260477855036633926426652192129118944938097478309862616890543056785904921221160107335686321450422773025310582064760440404175344837748209947373552227747708429893337017688415538419862266496409774316269741451938580406157616734270098504471653587431762279346353940373619416924349894802272108247363748963871131006883246773578415013483645208754098674267293067380588307343611365248644941299137453334091154735323836689440770747142770525868038029766156419524605907755411445565946605860178756202316222498183691122009842273028920641429251103479409034165401275907857487522659180644719127951472090125972638504567281149421893856289126013139385357185667521116749194626134128774941264122126362574624214662059981155739854061997301425227888854768918380704538696677434410081128326812926750494215607230914790172971219432310843489477151446987708552678603359753406222562240597765990687885771111012603149672139443482816318588594262142789654124703679811671906375308385294244870779401851001518642407600534821607017357403920746003001147218516000160660595992142271824232287055545492862218691790369393213123991426658869052681007688173628701287390072024410824901671236351167575746046396268377549230763352975749752130860557904991169229320282196741594360282252385204351377471207798248332598362924456267554581774901664362692451808754912303593010290363262752004973670943734827153162852312410882277066304417506621852691674045745789464311239597956013138951159762377477512707804163115871351729969492187076502761116526956326622231356976840486793724471085081555696839854196473383880176732920091128215364666748838843553718570884057630960988755602216226773096789703927498372718879425915541099138319695451289976348933002770181539622203865302824512337941633397330468646057751616926029784442058285895048490669432171273639550634204615335460022937785978298787392173462348123729605999316870063245996513695505722516852445882415732180004538190367626878680950078702352572580640498419601479283358539352185381043038518679517839698168451612291269973778997950254500762227296955261391772285586076088020927374416670779354749132190358797021027937213886041660664253360309525969853285588793607788041290068262965267446671600927245117683352911660734393881319246636813192971383403287365115427751359698001028269180881840574365011421199013667005094983814427652631057450427555199091802699834415135162679278098004292103831282959415003116497608537099336595795057179259564331789740030518143792752261384108690016616335953948917412664169637913980712084227808352682435510713719837015016141762376356714560744297237457429855250996441177314448263701589047484860172508735740544031057504568473324626904141279523004173604623094271342013264968726661507203056281545341881312237290949037894110168005179094859708769399174893984547871794308665765391315038880842957483567286541827314553568390554150050274857263495628258522835082684992488810240240153732145892547767438894924885476878748741037807905894101072522306312080549845561563917464463039283995621843847840878207026882826005019241899489826316881373003858410925366038679059290799366648971091011006823791923790487495385208996461034022932731798730778289438224509280319311965141524401604865738341520998896952321433888950212617519043654702711793459204246534508283452708376135325627514301512159053502964849125702839444758073760697243329186916111793993548626790086432927743722167119038107345762702282217868334147782079691583535543757373936923636153845617182849817845779866745909079411165525878831878463208272106356924238640312012163714873452200424314543285928174350644728122429492154641877295286451105459720212119968409587886625791303342550884125773136703686889171601037845768538192471783246140375989338359833754049772617280243494352647639499725258295067055134258826272678200500030146472180668621366341687032286051763436705322470067633383614996579062635976720706072018267369032913992518199093855565272000341316756769538959566313074405955390623769296296474876798634645417251600832607866908672172269873677205235919084230729589869574531839411345494460833659420546164294942664243007743945214077492256023167074580783937796577754717197977279192556308051561616975716801287680249505683641869184339244147768118284845589590700571722804454471294113536592108574460233016310129023561079575561119030592039660520213612706923518175741893060931202859690721472926760280195579158997052881618383756728331548326327758319460522392988393621486717384650931418294458350974547603323752777542520372082176497497841849227509367603309209707539823850248186864237119555263609339141346714373729479223262887794437972687211079220842022067453432091523718225879302783679302122826585324677433030007497131155740972844037245868252642949161493516901246905357008964288013084494462643538334750181376182841027834674542811507935125939602789727666727176785310238053805666600730333884214828984439103654988844994159358702784869322099835461815684020985228980970304241880530908655099151866172228833776097278084024727745651458113566329218054079753915491481451577331126623838515680419013810753593413356532366398826161886000163953079415846097062252207950476926206611385338303788015227617412914408755729427228928938380893248442280009029342251410859123655685242644655922900919005519403383956148362218726835772238460701960930560489296229547486074527476872222158463962620761055809933254661982525508405776748181763297560853081046338794595952446151475946189721555607556716201571643225761654152311105700086559551138720158205989130076356707689647690002857796730509167626111013968366538231101280752054927175443603614724698431854402124934437482548301160148613580389303195760975230013984258566651069998073870301847373640939594382950358825346059463301788736783920058158557770927396684647003111341843349196771102134429573468674890915014066084618081044772922255938107531535052377164296940038263606061098304890507521127837460588951560395098102548889666646089033210565688298211994460759844272793168586845135746766427825857161255514154354256850855551568264716634076931604403166891386105536333843202734251676546847814809735678402992107695013278974440257693602340979951975962331843270567405487627104297000159677314670021935584793239742902024845730992189607735177007231782494196665687931099378516385489815104935750282509478764832756314378083929425480061023282260078935270149228478416527586440397702135357366034224122843209297303828251644471664305717134502880816324250103347153244779271991205254777035337867748754081968993244640210807242924133569810185801470869531094216162165644473215055113045375190377352419796846784434486639765027511229190107444030056547023903369584004384942762204695012826148878901165212056672177506914900050572315544332549623594409159497227124967802466147821775959955421384452425576479065156704276202682323099079203073292043420318709787510829290843397195385238682290371319769215822527057472865925689491554528899921037164031273892319673282565825717050871648169637037218965859290896226204888423716131957657611160080382910425654789975699855610871467192657541213023411797086853765301892893633282479582975185923039902506538402560225863319744306029022836175558793239895552689696636444798481452716692730280321208852598581272343598441659781270635898517666711399846451374770397650934246366293180755715544023494826084342081295753703021275215899872307281556841820939347741787145916388186807209577281525325264290842273173161127592366129414499563567207470900735787872297714231575491101497632718938453000383689405732349065097643693043871631958584279606676804073123082566674943428328614397095720291382304572987579225936729938036581697322652146850171754693552888534674637910705618273085313245027891872708917554294576835369778361346873293366934591528592457836833006379904428024610042401929592642546858423205323877850779353374680082614694097439939089813420653012521417192738538399509478135967687974142643832265760669324021253556105204821822477697525359351848803959314597680455795338728163174870653062187843120549007227710574868481439369478286671882974028293560838647393584092610686748912346478949702538500534379778767795663609515581613659519880989385498742638237570770979137291979620993957651813088020303499175818850995774042907799605257552965761164622248631182439509890470397012631387243851098374202244010103891043327422708413890945376221502746005286353745581050765182212560064713245273877629722578801904018204994901391504244760208800925666137557020987078466910266840647631669945866331772637397322411691380966070444629337509423330474117705271939252260574304949903359699859196764173446868303924053172312256216568789092723674632087213197903920537185687471018187277238993129502218877870063935867745368232724866790257295287966247254576772893600109872325070786615693827492870330177114875958630673568752680501436242255451382650629107643040199028044589371207428073269617482511835414395529413028233025895696401111939590825920554943146544416163434018201114854725500204008349367420608549726682151587660234262962485850937918858017523672002375857909164954170668818994717573356303455050290963364692573849373739492230818829929116419297715915385882651346728675223574109391864518775260793341430485124008237538910549058083883880202828498009756672563744683352288753044437722141536949270229946462041406884934050501530186246495385129207163604132374423125778693554277521826980203493804106040967176396995895066352982159200176620605702669916225661673083537094431987596864827070689978731351934765840293367536914930391087481350024672183885002306834659123822562418360792340697130182031479476876257166109018413050315932446877232835982716912107641208726663984198624491724429016148485538909889215173097065361393967351276902845597718338849715940738294645140301669138730635535226093067117513973634913151568858487685058135073491364658318216546263024423896096917424470543578711432792706633206942169846119256911676930119514184320922209651333388150374844640043221810420444202846336830715471152851791909311130448580388066919088929129112450696899029969242597058547865196412797983916614265444730371677916168428943709755515794770430502781692740398673010982525620562551705737406869097262892030514366247893010395808276795042865553137262650323123206794673156090250426609967789440869551699572582076633333808823437751166418861732318696474359953731330234009430477490200191329367048384377319052028544999119662032679240251340667245384461348857909596241840045647983527402253943735501922750289991340786591487249420548356655655641988726935354311482189636721841177978259352046678378650149226697906984138538282264728336726564245664498670367844747869414189077755564117088587932121745677755622810802553493441187802359159181851020075568933571964826650498184889750798649930669703600541970834020905277627450982359632208905282566785047881916219914306655679583209142446623881706903891583255700967038432597614439428389250137285319825128785652453651067093227553050824022299051980019141813642996460921127437567281752073516710951593111457829525887776248783481240745677753183035878318608766262574010409964079196668030046770113934654347864022796085330314057111719008665608352385140441949654389634811799962667517835003389603506722373106795505542175478131075817336200830073948816731967927106383204366326569797078520646680390999239717603655984276608736923035624186911628913650205987075180443771408629848178511769656881730682462102508545390913635377000011187239875738168739575151352130641413968779855289720534005415485631689504914617546897068941998920664379645853872666334619614445175268649093814019063940671811647971649165695843740456391000178805193537433763157462937201649407504206988439742115972335448198032938447401029994020664431074324003886394409532067015766864464483027175759675663030213230808231149070290985770496163167019802598836147561224008986424317007827757752648788847198566461084069183629138097046163618909258186142443263063114147748210840570963054286460520774976479257367506618148756456683293043596867341410880606563277339096384818910714751828018190767970849260073030205583934371852771897408187576723249050725369216466287948417988614880772825758646765634374390207689954628351359526101923074545006645451527909763832542996599239802624620727151903581800160695445949361575714405614914807744296996176832850283310609395652592672276710670257338660866873567869604607355279875238847556048899681753848286376628262090059822713307810147030746588012256161852673663828603500712754306427009250980789449783372284911281371448553446119544066110301817698653110249514380320127801755668089661853921178635681026350070433970231459460335148012568630039508221508254295518125657937653151349471151568588943631355179119998217187455640666899617450772154500286942278806086902875875772194724201904868597026362186474316994732827365871565728967795653599136879197990446234598285757290850666109775789452545387792700490749284732030591238356365654665240265715037917400768111477394483607616167951682566509420761603517504185719185443865674710053723872841118785137610798900090390811393885111338191438931663573932318330078327007535431764028475577492068501039161815305285484464178750348922765174847426997421810042465408220023251673756492690979372369310887381530672827683836493163634256295007672102472374622725569533770652597822992850028197756234317876379152043466313735185104990132220851578889088176080107293356112135362459369303362087123088953211252449874210892112191229691493426005141980974041829591690388901511463376670544605008341470998219667713475368075655034204273825582714168360189799884173315934452472737751530432657862976545886348735053427871580965223669402742467551850612010526567563667762063149259893360580053861027045001175147159550774069506563727856681321342152244839044436806293038371292294675791755157516731299726348178083379676034160667854279081853147004738146789286929826362714050461954749065929142797585769975162966017236825805597642283101180687872701626244461082626770735501834536526134364334940475342362009859482656932035489090312483572407263330705358518981066979304445621818503896335499628825068571436619966040497078065078480773835262606580012500217573340474840665473519901750526206943488364426071734016565886457964204339426105473857950121691414438341265719382061874330561529049768056380537633408659480496961735598798509907352717734088554104212194443729624272541588887172969605986103104606321112551651028390912951920810165045177050611413511352249950137251071804087392529222056633031508323534510793505756525790896666840654569460257003716898268009176351161747807220440577741831738663393019484775875224187443908038252798484026842816469321525562920879697482204507661028386257074228318540334155596501994056300117141355800020091672908266399618190676031865749382045593867445711491256721816262029533907062868326594033598598441688462535765002131039123350105895989440733805915279946259940717774815969576074335602238383221244773240583502177588149478872162669079616576001614744049348125349434966900230878069463733262891448396515749408093596378347102718644755611475410903888724462313801793448709160955188365277330857656649398155500909849601723156637419053175288775890455960550293227039056478257587595682171423138484857257064507955700740919816759893236544948864227725578331655016142162631100255601980055002769869277174944877397051268837369066372281008418185681978160482351474441663037073760084097292360299278836379278535192067911885801508620105440818033311010239153067937476732060226941237849826892151349555757945809266774829031531790385335406170784971014811112935321726156829030627924320656863246523397711512498922578698146355881758501927310128082974123411089592626751674548618863492914721767446233951394942851291440222111345793001708003892781675290041006692903134006420727444308647218193977666770279581103587873870329791227701853112579359564831577328839452663511027635916775458926922487136892987992712875653868606331730813485886912638822148945567566245747927683755925014316820208347405668377929234989104909151028135751640466271286724492904592640885994943395670366528905474129485539090314622788404593414093387683409018910045847190533066997913822265270896849379000374564109638916427086655342581547564573683044188791347943860139393636174374845931033494396007011042064673961324218611154485345967720455624988722902802279481647248877998121860835781945278378117104229421940464869305609319832248397854293007203943701366565799329601470351208211144606967692646647051106748810589958410642054726075719940927898397526424629484100808474377742620524775748766184941998768221259533280672021176582247047088224477458937258727040247983078175586606193397206738959735090187332455277059408891923352134805615558854931296093649974033372892252018334772192292946733898273425167161589150967869594805047435777359797411279197742819024520971897863518479745695603151851569642092739973328539986892381926256302477687333072737803712621532401068829835143698261249955435460205415990375197456196453135659220300616520475666051295129437283675229031506464057914174332155675799467838234203329650103306681826956425736007856940459616141106396962134249121757903917423604571912860164777231672081904044452132388374123101230793781039987001004620717371184383250434113287551609614390656475393730309419531159361315667610609441654500988904448092692243870425983675202398853714572504189231282222658832563867356106576284350901571235841350972593256163332469193904700732948222717497096460516516061830476582900985981355762760487187829189875082767848248778271183244332194339171823724310842998945309619336298247123400617812031171279018868978712330494694780975834987908128485152966946960349521743872537176476385902347663623254330446774825981270113912321909011727495886851279143976614315039182298775332567943185755889416126296695972149550671767817750813644543657323621088081423542223250279427038297894676495044820473947176931631491808715415766006108154950256006532377836356373520562411204759247885332060678447998702239848986629508193135243906789499395939130341293275376008549079544528263223693146179614097387970483670508795769229039139131945076854873649056301182732632026200581262603181408280908387824269639323266983776633271138681896426089093077792388408612650110147839282646481009087761424293075716893943247764995417406564447414026852823266491106065545187550505602839236146984548849010328375617654746317955474971124680020442938227115621695328879808511987609829400958885968031956010810211384844633949142511934409752989746505528034906903604952731026794315179221365919008694668678562623364461672629034296721521373810236920633828332183854495290004493400942061290041716075986759721509349596762792282861466282764443291587931646364934258694406175597209156013914739773664203455504078290292800216884467139394557543578640583100712712965887096548016827321279112647105469868112654367335876974899630149434657946461275705127214606028969370262326033757372519001371706163202465526647670232288162912326748126443547414200199411620418443547787482822376200436292163200850894574245796604331869608781642297213083166320240318003101701361247305118902083355410243777515052389656019601736382748073264462850081852849688409659576448125846002654780092712762490381508720516986310929610160534426608107578528369308891117268616626593807707026466757618065894161665213907349233144055088888813760494913975242573450259903312111797397175624573104488969375613105174040858210666483468146089333533504616165937316534837496725756010621711822746836834243005016488986740273861440432768619065744511031496090125931495449011721182189552251957993592883240976912725415992416862672902160131978038039594570448493331724140271325951258548126246514455521502055088892802662491299736341862323047155249824949994365172608454201479541295735958968615927413076778725990361688922109385684753033642587274989268531326741470289355871699735212377104304749169843218105694360311884284356721221555589267889844886534994385898122499835084480176602863886459880379094313367994231739334851145969535759875746079773695386510606381919065447099933801978481407110852668839873430021917487958233408059845251217944334211102057441421360940093226901245006001977531608883383108820535082239074288610925454577538821239267120791553903101857200879132231954281914306493728921717726701633681546697387785536461249147042579285103816786918963316428330715906086340984624049648456924372353714717003959463904014874485084724692830446422764413936802644433075962805266193836626829814123562855975974043095061174695575733233476996719399019939281821587474939915209827749453835724730191514435671322360845404302854376171083143287588712402721230350710935782456833138642371860757675789351247376044045667883850756977736208268221532406274192403800682823870488634909965483077455294625849993849256839285229207832154965825611924703108042649906658243796049630209982113432893980853758883528113165781066735860217676334773102347566434217867828481947231605593793309212292786280981131756132312698234744598150325952768131230066781693200556186740926730966630825085507803591806636147761782228610375668363777567071467376358474735931182615235940075802601191815006901926863540618123821062613120335350670325100880843833298865605722857026185243334734407945742237873265231387804663758170665912201421205967482099451629803368870398510396879832098629788270359363815417301174799913513670607411074466615219111242105593780604196405157495327866398059604402419419666583801004236079226876606317014334609002089605497374366685712555170869156064146317690647648623307319882127327434466126535996490921328031894027360776717385259578909867533294450749397910671996132428120352973106703439950906797328600639665253575313632935056511075717408918350431724517503438530377089541039170330961775290704580366743611967429533148291874822818925246444014506926083262908073497302862508817318182231750402888169606984157130047480901600243157293850541627142678277092783530482043161171591447254919229964113561038833099829118105140910813644707303796923464431454795376482677268912172613265403488178912880703895220357077881866802091024282138992807563880588902407790047861436627373180661169429603203661693259135696407744441870773076573597269877297105112753085127036027405144650451838778118215724767778386707101016942036276459034657541232921127720285936441842779231369562437783888452554874541666484824719342703798638261110234453541672793111717396457895729499587855179930743232468406176736067630986988888853683923964087122676506423819532594018893077032322446925357543776496418775866920617787793523074323065363911047462482697876335629519432319558613967970516754898165522539586388798058079286019877513111553373966337834339413894293334896445010588896442889771630599927047490806059809012726051999602696921025086635463576775421639558183581448951736267721346297310843980834968573155505125877881981651385771411384147143489698484733949984332940427138811474323835868284573845949129437942957563457121379034717039620617102426104114561003123656849626656492905505369591757155337771495834106643240579153867047300540509068775388237105070346305271944403854970385779008512512332511983304235536812476834804642719794354705181660350212219116134301600786409493120708849318720768268435139818110143733598043315865169660982179887905463546160414818479973363112234191093276537618159775379777296672745018643253955649940664911026036418602334897040823685022990521631240716822061597753552412354510053466739569422711994932380233820747950736107123894462909670783588517826335218319096200347451044335173645008191377828688789185265467345791987577799646215027584870217000851140965871276143505131854452063069103189059729297136455660836244899728375528321936906618828916457597504676110292121008474746557837959321139225482331209584918449081626930689636038823358301385347509206541601538206754422211147364587344643312892737290752970510764461521782335948672825839291879060857383737356227395299363050799588149273444817199375402976007210860846264477153863383005313274779553950209422399281147882160643740735372228716325925706187409301189054347806868315896068365155277979889777219571993577478858793033530786253699325924564981970764640624814402999192935479279663057555867016336059688755578819635711751652176873403591555337822255136538190050137489775860084122712260926839591847055511470495175324162747930578100798231870047117753099864109247559237594797588909918756802420073409316133144221624897388166632383211767494127383470779385782380541660536554740531586219147743080787516811453482455586215724858769164736628636648523193028924433379245184541530307569757994226105263934175487230272494640770678373954869098929407454885524621755793564318875442935442048120271487607397242941611440295977719309006429565942558352032296930070431689021889591704511404955043933200579707083670051749963753756669908234417249207172827533266446007674145347800036387052563373625538033812192000934126404147509157595649339844461728736946295197596537028453320176294330640570578368982652172906472189139501658624452788139129834538694739733133493652489888965221619517365222117633537520405815288077348871240008264459452669765384656262684267321788875401842739126415841244235108197099895971501231731683863716546790638686254142765975548661012447079973244013553998032438794969841559477012075782644307244075747595962370251704725666914706060276171405175287098991960112854111294759613514712409849096273166118139266239940658414005803234178860978506883060856496284286737333942548734436313575118557384719228814067765688871346055656598793607800714656175722945445899851474108151571119567529235816853913421225792772993132284551592953708935936760358299390125208035869367400730033690278254685843781491827994529054668921823087991262885225260540685485500381664429322546234110608700549900766478970648481406386568175384021002724262182227759331188513622134653540923489196196710147701822071177931935776826772469333543528510188371764745722693213430399878476743407873731341595000666368667269581950583506085000371800308077815065098477100135735843024322179554170343507958597916094026333410840565309019905656738075470752098910613440952963538555184023498745695310634332766591137709244394783854623767845724662127317265883144329084026353983406582822728679672364224362641801308198249820324113445970613291512632992190738334840039837850390279903717022728150289624072531433277617006100052407576674190685372937146228213851508258731856221273801179781732450308457783587948688902127698294456031136088822277335283404809968393452535961416768057015259855191137519037438866815417494073591802786251178144794572347200001169560382172024438333736848108958321928348996814813667553034832830145652413376431111459589876024383186508893384765229089693111440753145941829283849070400036749273301084181976115621914020720905104663859859153417908461861997716961773632355344977922433058306053789879392369690173174910552532031050256648337543627317039187574602360885766074458004545116548809896165870727007544985494698521268626733753659011460527333292422007011073758575937121840849304962305511276211189315681065223763994951113787688149811766688963340304584886747869987101412095407945464546435257505651598213320557634943032850876976428038876027804686001618887630330544474113750577098537789872191896118626005208204763920457958814134526364101830312459135427441835806837387704032646868334558753858414301595745741393972367543365046176672249423190802572568770147931675064258956166668994864131734589117708804293719579712097965203957939265726169000601487521261129754614775208596521990963487627747400633260129202632219607593987773914279015507155631003588823640094081559581979165227571075622800624705978741136555075364429007415257035470159777042682855339407849705553383558686717287791141871069021488129726167897660827330621948159865169471510776223670809745876459631055747143341886272635955113453943032208788163069322063596235376634205704819573211165518233157669020074894204476679179373055956495509431925473631094015733778737500151529606711833301054968254012952815919800032521242942006690575213088032808825076255839484875258206434146177954160546634894441585683743863869200970216695292633271077840773241027693561762799864381101964368580938736128842027889791258733888492592315836019509093102007490003450709095183302730236210557620809226791560727511460047202407397722317113679157145408177348452990657113177597691887979951363495219375231668198840686335324457913546704820991938186642588673403934622626955068989643287199172434209816530391576982996949731132116966421837009371294153590809513148811456585992295213704629552214522747231487840251489645782974825675113155176184367044303037169133840550663557836254345572453531559766279882764373591789194572402310806558270222655742076850622592691143627469649628912792310686657647640872175996767863154010436958020174434865161156483881136512721364103149938938307623758895616281495388013803753697139090705278102943241648581037271007552481635834083988452449161298687012938689826376552093073562723380020152161874490739396156386746849976179603474333061222649512073601388956690131425101260580272279346570831373397391918192044250861316482265478862265463299373033303035170014918763833821151865943320204432564076344532857643969460658095819395264824525739770994370807151573859930588000582696754887395468883601237392812259255636042820618581478500281688882184041150585482716064786320464840448307789822018396703677976313010625050360142110685688279066945777127404684655174896968149391232219895735783115206437363654603334270951406588203883118523887377663806227985453419180964617361414634912654860819784834288408314754214168465351114667315795485669864289257405300035679795798613771152313758083832668626064858245241882568277878047925308308913306766019181979785218505547754735339821434801171727879296444765135852748878317408696557747551783805714052981143743639510954223344655674314882167921643264852746717304214883450720690074858437738981678632467926440461030303126125851052930683449262688233082045573903202611354685658860305998137250887105076697526434852567765266840541957373778254760342213744517072286337690652018899547889069866354985285254439807963538017300049514443779736669508813272756835222296392554953505475219006456598746713468390372178484679831365969222517088734165381509061237498628796657039960164659945901944018233144942661788799300612742409801639491816647069504697761653303887588103323159945968362904064275781023687087861327943752121012414782242727304856045945652955583569237662496253039723312455623113978284791397180809224705479268111392271555311989014085005184636766567029778264317925239319090039396524213002455137617477474320216839407336067312275264326874268448859519818345863626216767745234569502123526605916276232287157512264630733182462568550947863686894540037646356991591680065566270170378437493267222061756541502194424688939700522515781045081186198698573568183860384992753102349488915355848407283169151005768467093359508454283430553320758874175423756864558656964372977592306383428929090101451408551680979380234586530126474068582568277796944334670058272578668552779305084188638149272531696148688615678181935539172704402923533233007193298220689246020440303505999478829033035632369406866226388447734147263806435759570152908571839857317410355658288954887194678456766733286988817325570950091892853911562763346336584701235247883878656208843176983702566063219912539692734860200111408925853316204319231723911598177819124457450763271663959148991577098929854261523697031329054739570533105853216940810290791477133905791718800212197859929696917963501443734148535918295558073022992088263060249936717719386424246149446322357066493775681745821061513247949622538754671632357159889098850051181719374695138825822016849371841659213687326737231488562980862335068358663634719517457582543682596882081345381698543762992787624573884448819026553771336185789725902493897149115967108315068312200293813283559331094963034558985212939421345281442295898092070800318773941861098390455520738244121269155720263677218659362785858251220091559623070386046535551502370576669888680678950735977634908135641889478232046258303744663655920280279083656358035399485908121303266111227435897510813675619256037751675849472258321283463933081395202158192215743160047611829780297780558045381958865246901614345420881838027945074347060212116196233267931921251392687847109387235884189462459505769275534530443613974346528470161460787447159474409166550326747733248738459914098917385433328787886668963660251110630938867471861138623526476053714233047658086625368127428909233539139638140873784864851239810781647542161136738885007394390875638909472257458103678574026781170683401315538200999682363048634021011845501210373395284282877803891717660841185369250541596472245776455082865600246311676453253258697372028193654052039307366076422833205542861599973917993657378208427885381212537172467855522494897727026285194226804897957362267097524176583930987803176698991014678210724067866330122898573630139485426822629674460608016929293601508403381921680728934284810870605356189812538833000586797916195823435515553426182409468887221050770189867842631991121549246718555792719627029471131617090009638095725228255480057571760845613153821803086792507838914763655889690678440561428918662530945628684965837902646674829799718321143453567522970499183194904158640691684322262367731728266653584714152129609053774106947624759807488808305589627122528992980536600107950653181420333624484953894088315761859514412491458913326003141619759030818823944350097649335060648994967191172275946531983558682084858732446163453734395909419484323848128124263046801330292438423787614780696781885797875386544823840255500678244286566587325126240526895633565434473481416245393426234409797400359498215859547279711847493313276621580821611473038840922833830181292254706382587192532336510346048446276969862975460611811023271784461135592912937363518222573747040665842195935792248764680943476435427781336182182985341504179302990902667396856835675334951180684145572371150246937290323867654559329299439539420918708016942204606685857592080533020144042408229387877254271866717615918072246142778384246967509718179459422038195459560898259082401750748128085655325252788888907775824059079019279213700505126429297178821424436028467107911338909192568475377436147655213088785642254914369195379456580873602141833127127068952588129446566984044631150275417006156789051081991966541060102241960694880800690148629915760637676121466134206108364164056811927644766385957748487633150759048522988733964194997250414583181446370744698458443676484331432718643797133051606700342744887166241050181414108725975390682758639399522106823691797911935437583128166792962900330453092057636401669677878280580042554239235957600181108547620032390276443497714997292658568061761791523863308637142877436830864660333151503737430792254144790370710489863233431817031612739785404275567656659863934223445977659338122913072280056235322774807266008354235456039359566085365135235369916736371648860756607308206231324483638190487019387079061552840126557665963094358990801774097746956353820789554881185033342205432357884896121464942766837759640156022149462523869062236455949764064135496408342723782398682230002897860463559019408127268012788216132067223568906640226492117040168735007660542579715249875310875159097217965818728483203484419745172389765019350961666300831868170421292689185959811205579365090034228050243260409776005979205264209162448221622078433296444939034941646045537434736369966983112755782411444411992870464912828638356833661139764248142624930411853429854851269954169795795215026383776903941523452427810875224305116612738103660954982635067660728927684568134816277465115685575340436742887725225566471128189439120914055111158579372349281482290244617612587868228218292540637166359513257543731258415387999057991667522284038845779509555324715968192957891006985158510285237748312121262497210877986346296656401392265508193656065363470455216153671902776147747911061033473548535843293436614142219575246978823625225854123130563088377592906721772401497139023287602544431225260354195941022673175510820039593438955335628078310791689977127950334191650519690635083556624682542120184553187233795627654016695685308404664436063907881389018728756739007386272500400499921435404924199578225083214611156072573133429226530229641298856584030991697273440610853489457698504281113258519751331725639931182342367456860061968931672506927033634342744801110515551583095749816988680479807606414163886920422863867243191580092537881026679136200712030407849381107435213490209159449908083135889894444107712062269625636240076986335930054170729147437970708238162304774082041516276844547400908042051720040895593096141158894735623506245576650659178927908091643144680195585163531003364455481839382586227812235865276908074937414878129642913094462878391170128822338745528980947306725810589629446664664309493604128554525748546624379667888615137760567041497576022198895409433074230355915009778040396189401378653619714865519118180161819828302495651040991214577384975124345757374244853320542804407144845278370876315307135814136114812486512714033411307599248092193303305856912845803542774436034763368214143415032500664233042088822806027052860012779265627620535685637318162497572520649728180282699407039236219022340815325516968526562786182492518375982855112460711212215720040173158692383532931475044610191484623304051244336083916769179563096226263537389684736558635158095350881345753956091207968271648425839393733154472137172637127815255600603766090504944940322196476923369429805868055526588028238507373629802833264394063685979443348447644212087126691390785726466822759617747985336045637247034385028256271040525870442582452172845551110228676216368362161026814165877116856147380596912549638138631435723534705377982466867192004093019704488806006939884695146992523054416223400918884841412531474181084697110354803468365263579452462693080752625666684254503430740224080405846870488214754767115062225436407057078518901987025357959137719166940484928413716067375559026751981929236295719737204194635344160505150613962003260151669183167910606800978924387486473164963363208563000654358205330001856152637477877771885397602449930733515048428335682680966822542927806991330234727956972192045497349107444052663613628164369940430481055352160956334805707714102538446758002471733970172904421662281372165328821224579892101165499218274467211045184905650475479700176199158370530494516019772154822039225882314506209590112970202808554889379533468892539675541887506727111990961351566611652014891467500437018553279052680345316350958697194143965979876929586269486977946945570102994241835901097123352803644954468851878810923061990674060949876279927107050952014983741321934327061711908486145605452418640937815294178744370997005111882825498606999387165489274453606512193458001798187736315761629995395974605738444045296928930741851260331462497363597920362371771467943128861550164420140466057478852179648281095558223846659486801705587210555934236871470461952508464328496644435236928067797333598075513502435736324824552318777346086672688026432020492362088827629154880656818592284179626378912895384221572868438414777204697580559293491789520108097855008243375478094238038405781649461892102178698116436153518157527247586433743288907462561028971934240563719344695150930813194983601632944676752346889929856948123829614616832632660430858018886991392531250432300147192207629144497804886065831966410433303210595938949006650489594827849139844468739379556018239104806933940677509089735790546111492287008144103603941302406587506656381243648252320343256568061689841470251724279491314287705606788154579799248607241649695833536181135646666967783669766079823677228128886285096171993595112318821944926844899609884745285432207781472943547550611761851267336286649541323875603760638779766668061292320271558891123252905485862111821453838801941280129573845804633954896346779336610080808576268718570942759152111020247055713135136888725958036353355049129442423182818056385385399165330401889248449163233980776148924559764409489812501783552259700436581796404381048635761490366090235872892983728664674162799062869028691762794347426903088164390305176788176016996684622897377295360298460953052433437647828426581078981952741506008295370869502337496174420760803401601256394641789182655007816612902435124513124147246105339264646288106803049434475546933961597090460174498359469832662702651525184795255943993566937157646969027365927211368210815657033090338769798554801317101194649181274199723123778923010481914606157059672049952323545783662865774774636080394435082017517568640857421281668167388500914791741314599379010188977695996692820556124151265505594811256152531015815571813092671444817525017658251611924264921777073766286657062955596224553673337856621150627361357902501346842959251559022908934239708326629287767699702535472360823760083741538663296922452518039473946357800420595371417355276518111084593463729186654596416291947321618265209401646410638314180553543211262544847846238474931586875244685285498882693168702776442992115917749686317175445153535365790124092173489349259901428862654027073997160475401382770106925465661126355837485744445991825403263239156705851207804839772677910046072963636375426712710207741923110301548333362829256518712849111079159348232345712256015330173701816683538798110656904521132372011924789344382859302212319159540110551742465754056566098018674595652062442623278175149586957821319148103781369481101835700530028705404819352175922665881786736285858867229299919262231026427528078675960336503878739281516533669018374115504676754038096107512514913142253032225921401127496076648403366333537564159395727441973908139831721388141581715108578670443919850783220324663180477563531114643449860932142408495672364988395509245650109422222555877543004753000467179495701937217787085521159807557810030196216835105791743825533230525421154904686614798408096981342167291190650986826808553310021791746110433360555143195024378880122449055994592081961998428028664834464889112557825664433113298724199730144194491756685357050317848948911674889918918752259241246447923548343661001110405472196607814547319891263518537600412783821577292389404455632878659672432805461296683535609678660429006495810257373612633079933227258130609637171716819331277525332068204287849230653259571034829764371222547990868876587156182102090386000242887454882109502643328053283310914407190564488948760950282523143769841602908668519234258197012626151129486304524249608347313520171774311791684081476125412083703182365181866530425495327598749932910036189197517855190791334844860230713973750698071646418111094619544866513443835345152029452324617666296382056660447715647381648315652799806310311589566694620946805437421997692550571098679927653592911333453877253413333741835893123046894070859580467481810422574699336762703838361564077032626775845040695933830407587829271700096850664046309019010228515777939118634050260426344507081710466812864545291103001629172858276855306443245292515995076424695640111957933019045518101826288800167423538016017156347769951292864026860765369954910098466096104955678632276453938313436266868434703679233986963714741181757237804722582070056765828794936426252862385368822172324791326481665564575070047394920345658417817983186066308519097702944111136284658073192947923425576919989518702843627752129426446903142327152170018236886402588651545887614833365193844545502579866484119619164201693181475089438986860530084431152740961082708215834547431103662786566003962883675936613350880290592999893917797687832454709608117147933290359376796091006941648208468895058484033167359125936219441886418486523029196825532971657188485313934071466759591103409315293752934553081128577548887842048331271668034688722373779742328370648980049735758165077740742683613971396377435595854030320444727216973984112389115909945329692086481480118695142346300334149238415460011920263214998980716712619150998952107509051688022596662948413071131633182083180861673824513551296258686583918667624361452044846641366266982715096557275876203875276542284317262240663925149800977799392327902638865514543323045018062629619962998739391535307266228607156022685214705322321378934534864245715907911038970436690837714905347273944160582142230457641231891312511797435583368303021324642152565644543145464263063160758646668130952666628722000675875789963494177866061682600779558765009878530672349990510831945617860796274131222495153383761073770088529281240652375098816267519825174695465685905230825262916601530756063337902566464431744443214656726282956554629323685631372870308411281469894258892291787838187391384376448782111781326386822744038774015601875577739221244966248977300984123703326576305609348746671899543874099116594802781426047454921975633431497918998839884591905364676274773665922298247039937754363121130413069336140600563009609875994281790066406812281865724440923682583815267759781552213874465158150524964598573771402306308544185310150468830296476785174805954038419650477721394377628950645797419388477617039591599298943677641387704864315156292510581535164284679891373949482107511926359067664768929055508277783964745341058542115783762877399916459239244154596106126282266924489021830813670435243072103668306332170440117052686795650336144903051029093245427369882461103223993461565605715619564198870892635905966396999847178809718509946927873328777084481253988208406354326919706778402048279630511889498937510795817209959953680849722338838638508411692513327073490024525144027606476434860387735138891173767627925150557815769193957010652742757848507767597341197596291588093026672198803950088402029937236918989252678500699600222062119235597908877498356713935037380096245891900277473208292412372892622425979738013792219682412042833771426805153429705075212900965358371287425126441336741258216434514270807059603059388917270485794630331163872732394738253914978816338836235641510597232329294856764652277025923088958335323561168998524697291208481752045034582106977970490883249526213011553314786769686902566744218866978065206415252633747155465604889847804555096724071800816679374015195783540475693551542188232477837248249178974242378172717815540593647523040676966505218340465538946576831737295815946063203633111900467883622388682499500997867140143548488662443594721789026114617843382114389032939402325688488334501123438691567032146057313049803941443013046821544259066185057234863289856653637990052366897771590275543085563955436372006712528336837476310185002125564317197176200314198859677294082829619217243186677886384868562115339041675872840991750341517794061587310679329226624192478942553700562823090775790720154588633308616832304428924998911252035039014056793228111367725482988381352597255521929483055022416838351416586295826233317285979596676083803663247926112178168279168571818589862828295472777917200759397362229047741476618655677335111391777906904153858373734278646406665671322792170748939350058071027711709904448570898427886266841410096421394320104112393245260402156104912467446696481489534394340662334923259952905760715597434344632335804285270125061988610687566163985513686070257089459661458496662943354219622119802858784842217157416247384170613401149199263516517180147962289713773071469929840912944601579056385054166132052668800943225293526063849537301344015364381375367931991810752298231614181398240278292571452031666344970159213302289563587013303239788799824004004858871311428733436545368746603832878803290096139122795502780885859519693275893806295279974102285296271285121416475597885507706742443066716375681296763710111586627437793398895104685590261338583186539392716779699402000480470592601397493032212029606486392176167633694045676413405496635154253084820466344753126833922493287838297944854372308462438901232441168676369867725805561683479914618524933593098238030014688374974718861703683886458012089590886698586323266369496311151436805117013007495081792200423002969799309769770125496484514035914322425514329828486021132100265940779305833109063451583033309805405663249621897736579876203953517063811372563131458977228033218623261741561022346170525380558042130040991919654266678380700291078419112719619876207584592363491266508718207448477015376311712728311246630446950675166777864348750333240748592299100841812497607111783474399320158923781621581522541563251944284637748455221147747658759254640703530320024432171565562582731875533791625916822253811804575840330385835263987364026825283327963082053491165048716825983260869004373841308922264017259035763193317613201401853089970523810118488665105441564830308199806532944348013234068385952589198282638050947703329259071195123426772818516851177370933938272491127279828946280793909302991996380338915180727998596178308801458016232168187717457304823849342462926453193822310648271400157342845636460627789399340004176587742189969886813828769299054252642389092618716331422599124848271004227053534386613976042399424221163386064185664583783116499709463161789615860041371940084831135332293134387773561295931570247104361574473801388432033489256792017796319826676572991587868365753944944355621635920862323187492851617892697595717335570780537664478165867610275342486106998213025966339596606145648408901708528038243149265308578089893655730595184792352447977581724677577108205982417896045588074353113355328098927456952727347436525396254281772579719274139177452941774750820997339804040242207688115957298467528191151422825327994395809137784501412947602160007636008326058414399713791113024186095594931738726307365570157741545300261832618017075203503501200862020287569532854036438143135344209007969861067759762067024584158022087868706301821847528802121599563409123031213440855286883817018627675151110396546775948392929604764338117649055457705281023682145983970127016169764944470151029652233795973924763457183988265650009476168000740678641345674692539382795741881323910812162233085443683230533238732834802452524529093052757654196077113291247118080742055284016462903846255648928246063600936882397863175819864266475841315939728259412825509538552243879744607253668626889228149765254016381798922101503474413311255108444594390011491107339853074865632130585336958526539815397400851123508003428874992541864650917163520941841698751430960391694809178740761739538975103587704051507154666999706376943983593620387167917700949822402765054644495132446761241039610529632606952363641707302958996576471839634826555090467489890606209802388943005642377931215510887957777055393815009313020620348726717375880395616455375786974660869395803263547026366659803679650555942301525134966906486350493233334556161096649602843290925629373611073257782346919202512483584408499404123503802629460782917372594896316895277871687144055385923322247943867377678845378825306295359888829408962281741176357835454365694281843330174894363942399879551811345962833705976989361094274886403649245097929528007695706603672527141194617853116559927248631434860563511579258870944739468834803801585159162164796555220793029379523041924158800332899699790813786986475124959749115292644157060553414532148772692360798093180809628176012031174317702274344631843374776283093737627623488840188097489270574622476873020099376561098084677020240286016389620390030181103188334410574054701519826742920710650243285898736735615847431263806323700392847378637744869262668972709366652385556716037771760828583311238068406886568608290948270955709922412276647844496501438481227140720305066389522568981701081288216477766211623890689120212941320136049461445659202314715759528426740540133984464295288764927351495405453461806478027299483621378130923904201119275689932707449792828468230100834525032016686140269112935726628343566942178637712740231168298913066952616792517843956592248341469031280810732509963599443211737829030820190560103211643982266374786180860026588896956402629407998273522092619262431591007411204050402096548363246686444683226811348808261079707284597435942219759093128319331262011153815468611709931384774203276985374552719373352512503176094990847253807946890108059108817883748630208504929230953715994555730281298113359137914534591498529524995077691567747662075906265832499782631303646239127146094625430363813944547654729581081470381683529444002117611681136594654193779326808109395844806825043884525211984478628064734751428952286884841987367641180650546514248202886501875898795658661545870971850876591440391661190820681914539587580157464903408916060865266423575244624167414245120714423218532319794819387000153254303187785392282973928219058745741426522184485368256303537263411919554225486562323339449198810979932535670326111046489927417666010082639672353966879566531919183291635883038248421254212160888879348625298996819314131526086867742979430413671240459399079689446869617445561696964414477677766739944145326597676245965696653373221691748217159623754145959287981726398347745813223120015869756630024561283662656282238290408139706238556047212465504086446825636586864602196729405133643897206071543957943063152133994973700622766649355123119003647163618715674842248595917073793829198081970535711893973585876931280264011141416631133074156899666798248575595625183981482341858286837896188489603478754750731494333285707630583156830377069482463885411067746979575159035003212443585065586144167421259243697904988712400960215285033912059276474790434314010223658587757367199052880236745294638787398789994741167360254956661493591812913463592266324159016161672839858593518372321072629741834317393309048208912631602005749235068970954636110919974293680519672790186818651526969824016335921691944360164290378322305787894234222239596660285617690018264041637428373645558375813580648955327986248504491496058974436119310146096856718640349834373675789914374455620308545873665465941978760040211201673337383237244006504696643713846344512342724632348503028132424649041123129303227289451841149482356191616203003774359550552860751883007983297154642347750210750631877781545726984287250778687922840643024924951248669580246629358989946690413953842393675470819535843189378000254228512766856867927207489422500038785450971347736782351233956356272427085813153504959425310693560323202222971600235165626557526628723397536014486939175411962042852397841521645657355731051717824379284362961668959099558264757900226187196946554962775965892903935236943803434142676805437158816376604310537374254551691881353435427288599468260923614492966816460520784721975477190732384974714990229810133220718376086387635300328146471898160174800997469421649526009973706326068895617101175239811796003970712987242884538473542426047744470979525563439500124273011434882498046531158102443973733558774661416838282221399483939018945813702758543283862989708818004192838534769172396057268721795089375055100831519780192227241953680342920217657036670914976443646256109110653426987476341769578053232302771696219552200708185245152522750169183422377401563774495684084136814832173565642918165289281005692483616100551794075339474152701709870357581426585940935396727174403458417487274596320925670565978455685190594655548756425388871073825913301732755888147567748944551073548538307745172115358136433141745097316910351657078319584802202266777194125145143321249919998452088192567693771238825136784871962985899491063792680923626822997727203794529051755769161141199526323825550492828969391422250822449872965407593747338008955024316571548410134786899797694123336886741832570236255295442961607284514237218714771181230454132537634572752296494700263859823043599129965997160036563288672823275889213241397720157976320065101901606353782813494044174918388897315099900659808726218030337920968699712574493509158637218671169122069235690341756752997764895671429423205957222325032923765671614143944314067465832829531718741691339688530801905954707934561604704305840626585320212620145604912745720843795801106958252696350204227840946591140734873812625492557152735991554476628398854958338112620990357785679269730078181777182520209052549423804816917936146170464086781559178175866463622095746790857113596731658977323929217936051685811502036169684290291881205546927738209964300566852569914177229585431616259473565878675634414441277122604285898110644974941447817638781473870660318183111137607807588534286402646416372980817163363258922607966652198571973355847310745815548248304288851509993323846322962466831609235331938259533639617028436619235575050516040281337450505227557646057014918706629293355132813647019413671451326968055063693933894939740364844206222427603145029860716306211988196020321809838540436032043643806686463268608890543426853620795887387822548339496894093327396368168658365203447437007064999171875579969940954651915482833604098460238724831884838403902776094219914164846011520089627641502915649855489057641916960267865429742692038813172066047109804594848036637842166350039773929582189898620094734291660625591665927718840803527913102852181074436757172289213683589295038387931198823555674051949339384636671228996771926581603480293092545556646296315613546063953627826683889636032322692955922105752344273942672721737414185116588520569445851094169191922953448579618589945739304055575856121525502116562928044279133294352508988487423854734975801553520102200573582452387798656637274577398513191872369340935485358777058307083687317263637042610740973120178024297418549784383583199532524838106338090994773010958494419488747508576277441784203308969660500199539024270265677318950919211904405795407302628848239086039892435624417508488095149434715318345667749587159168583498080110928273982657878177440683714693624732139814696279234331039716953331666131929085668400508733071772898755782409039193353976817927200286682698653278915357104425931962296757427802289881006533981434711141400132636097404737061735505558593125222408992806593481276930368669054232549090241964426131720475577056604262160368897721251761092844133692316344841826830948669978622504630120293324288121403654839136164761015568625369717768624537221166971106978533936387770979757572402719275771386643957943245606998844156041329517756421346966060389331991196423896521909254993150286011026121326787396257692250461397748827781858222124153805113113282647421320295501078580677234341546818135406521399277801864322483059563214980141536348186676177957429993969582530826126593976248038431832296938038379963807708151526717529466525422124471295870506273455334209735073249887828532645133394501884678576094155475711825153710253748314480258652752190558440852719412052988518466474235692173920090773536670825303971444768566806805249185269753243174262978607031660526100459097096101613761371965559477760702074552129717264722790236253575485944764400322295380342357410312677886880968451384798514539313902191546322653617787142085209757314019415164714704721472684276220944576042372636333318463497877411862983123290807066836893993734866654965138030378032612206974094622491245676746037890596007074350248014953012202912393483220083689760851392590370635381509436209703702294201010697423755364129824487486262679173439962007718901280662630113703995285270399715263880132545598593456764262137298262035099344231402620260211198260005463064538139892513926470289278057504962443789002925786614602072967721201687361608125525124405850555168479340374791507850010753860016336403683830151852928348606691962763298904311359360697265475100576612301545072922730407113720430387504440057081408035980139418068036218721172722347089052629514955708279635896750086418450521228174596101101534773183319341247466552413297247570495682846684981042915605689652316996982982211247503182646681883164372090554780758336458193979802207843120917493852469321179816447286281907429954312315683046841956406667469523160760689231818046404724325076018668868375524056665483464582253507660888483679712357285233020264218548172936121692589683074274215679350532462831626879764057056797694483007631477418411814679604098127306913943436016738353665593032626567588401253898729264996682034602587742377612632398255347937921769667017725509138223202068475353198266809652456525814732245776595838532263529634523568271560085400405501385019867435276570518371488009608267869791923765745986739709679732883891118239463367981320990799883676211604277806644581818214187024241888105890258682146145044856033738288906049743041358069220541851442922389879511502513404401200062754592949738340705163035906132651841701341345859110818430395687661515707353929272381811164052397429610026518040208047678526783127285272264726236064349858960683615969116620933885583095085614077233653915091017107682498298891474736010599998056874660484297864782863495012356911389995060286713656608661182505983030711454690512558004275665482024532267949742975607854051003442970492035376936738759920290104438181567367790873926551369929705558563418689399103445322033380579717499303474635582530775242316211368547913074918634630219636033495597579268336951669583163979501553186555750919654356168343872205583490300918345487296893769047822238107666709178417631484830186581414520397795373942215841973097551599533091079047250484256623510105075313056527029541723171918550862280448982250472837552867971834194647235947898922704043164946359117335089902602698082284001963396375267494574845399269495537606328040829138139737545943441777609924222037919574151475493631476801515674029866732149400630074686484495241500063063752064671357746132230457441297582087227410498078177304410428386864709586596727275915167051082726163375180648185857921951280342560344859486479596146102244571495383088986419578406053582383445715690996108967989333046552072702315884032316236288065190885891051978212081193334307437573248349822443368089543052722581218172261411004708743985817446055429656641787158568410376446570638072510909036342313987651993361843924242402446618878447834373619803665613047211890715267923139992018120887570397884311042830600605822571926602862968915576789767666077353452629636071048386276060502071742505326876165063727189904799340976669517422612148593420154373173208042273640575727364287076665012766444820947912539020147925452295174096088082882448920295290482885547372680811125701563476381662961107350776029752539133068134058122594960981023108090196464021919913641062272897997091589645063798936979731065471712173326067811806088737057411166991936658589763797904433919098008197715157236747517518418233706968453300398541243101142547779406653160101795570824812651210380338177651679119662198041204928118161008154667086511713198977956001689254138977222235566828965763287817325453159928070106519348390044221827976707914244258285962462185463362915298470882468014993461753239653105539976394945739479121252381649311749869824107612354004171910694013178760777435522656379368232714033768882505798432766926106092367346761603056318723021990907275409156847505675104808001543169273943297915023139477835384705421357968048805290046116417833267213455302326524912232821724775027868115752459480784778185642049532119148644648458418369024785722184259976043166222405081237297331187828786915053389653492755011339183500055732760156261600735168179896977205503704438555669450310192813582482833236732451592170047741218586221125014257256459102342211432295317731830183960970780043657220453355879335179704736154326739083086593440179492965110241177543775999739115120916549675465114261823081644384334417546706434549769612637637046496204550652602187790414630022375752892466538863652179918631446421028792294636568530813587785776165758330022538648014061362819423762308129981308652945228888650784306836748991937683062219179212064941200203151089508946546161983175151716026331785039375810921963785832719630836313464495905980080892092497176576574613504947729941468958482648026621279135970334244496604658124883026222751855172212117465008973008359675738350775911880038299255871715689351301627245799977842206906041546720762852100921014819202562331798391089208262655373388784990516420094723862539764855044911519768191876043340753660493664526827829913431878547877147234225872594999733206585202227362030362101014883917794969818677927823855503937862609527739281130592304722377547012185202523575139495162318189057634115789282447225430402976616117241964407061734822327519846848392251678930661691663589691472211715286394622817734929801682859223666535122288687741428213597226176637736850413762703380804672459317215977026561753949051325023590237721915410816234875926813065615302682849406980441601248639996673519493379810224111608123807894495615924501832528747476895038600162277461144416461671313000066879353656462211139181908478320768931557826668105136246931999329713483041038694589518142613620990518010233132400369114169154902703206629880521023711907651237539829279043303510436746541142543876713086873410867003167577168705924474064518504243799544203166444745597322784086409668323801519606659790950794282559463565491701063543447586811690768657007068340717364451638613315881744790570425010076592174473695954089434253339842915969764160273471338847676315996511491690586644943013176917278406880607822829349758862807108250997436547417905706814221214776876775068926436495765936043986146522696859593309018271826373744373911037082307269417146766558502652889410539315288437236921973870407771110102641493996599596468222733330467370712532651956033719041081172036400234747535455605602188250286863977174236830794828811064244880469794684558970071128868945206176299404500350885247665812409650405164213842601902395172506042953014612549774399014268999406560259945848289509466121973786260764776094386217020815540170322754774119440358201057007922054376821974180697275743853460921707662398528519768708098157061843572746820308692034304451331997811457791997336301843379441881846908812081914407424964233083759013461892311575906499355150303108777905018364940194955699163408338682928516474880245463652270940414825891903097715442745336508475768630245585801973347084954364428018243883876311264323711322531240323272339907682912620555607295905563813424374762225672799842217141298411125506533518660136049942023178743079086602473467570275392709961245848517817447915414645183472424600164296599886723482584486042416109369941578224614379894019955546674037778529610895754104474887979584235235739781641216333277072130137162179842457777001144290560852136073853208902565084333099439934496677193881125911735464903923499150368635659796281636822244297864340650985492532522344273297353209326471327055471130339389566472154427496676304658641406533990228505347591554761650762738951160628406948104680930246275680660748278712876581855695743610060153946719628021684981098980481408473350962349769298164724252639726583273005800524362682416722855766680449355275646417007293353280506418981661772217272209891138343981069298843784713198811204136643487755607871983116633938072730333496860796305048471460176885538419124672728084194951913112466576660768780254119480688337610053599325284483348882081981619290356566573822399439857236202006043243087024861106805519486329646418775940596981485037194450085477955908313522716677119751592840068233491753976927181324852260043805300599983030645149038118835857462193520340625202751582871544846934091117321589351328016480419730290310090890319230007527487689382503084503461849672787144625242480660973565171056288315399640310961133437442684705750167729049621225979576376307939099300832931766156415411456800158572456164050146372227176109945496680611070043595565375523409242624767914560678909926471493598420553626040668171617602175037945072229510811972820976377840873620846037054594532883453449999499017198276040880882335958457695684224913495054497578841965600993205034355623886630657840672441433334815740561664536107435243749140661458050915529791778549130645348195338910149454233531933615301467346635248140845444692689095869121390975260821821798553987523201273161236944200616529728785393485971987229324982071535849955746293389497605048134306193180161519528070488626712918443302238901701414210813905518133095533745577213530680573315211597331551319193788563705518297517883562830462812153513253510382700505270280178451979551881150173171698370620822947045209688892972388328081541502399878609886497485487531833408689078734146883036120927455965475686178702276089448942607417339687832663473004916612699584251503930360802542866635153782709488378013504018529259097766214072262802127226104994710594368346655431278196406437993202134734799846862228183682475808411643365503782749686211836723676573778156457456537751570446044369689820331589950206825779741464724890772747899080405530194114655415298869366767787967824180027743518084272998363570778172879328752214826313713351276021000187184193259486754894007167582281694115963675343513318650391469172821868317606253456754959738232290749790973824826243306035364697087740273810373900432392112997184007023193779529174598582892101596093112752440354322544708019572337885001381170051888346408263181401443478963965664088582446964541777601376992610243493273167009643983917402340574094607781120308438798090423736909382659440815045125347351730799551265732053728092616562953516805573118798493363421123997795641302680644635080424453933166466056065416083126793212581384533065772506315455629537149260372394182456723165077792309328636139087370522168307015010450898199376349517727773357185053925181439047300863409733532381737159671403015879781141337736399468433685264379187338903377075681339091556571159479303160117134029975490828641620591743589059411771903896073963381196038500769172742025160277309957645716226742431959399722392511973681246021794836482473460024688444201500717037486901574819377690853790935028965505422006956880026578614664251027603345544727945574265435933641478633660950362567151355756945134530011541677881388964242326392906490833140332420722848117963950886554223888563771777828363192863640174134014000861268211697581965177119180508908927262485346033925963816870462326445647285761931790692509009363418954044930791899175896304431642710605419388858836489282316333067415824287024280490244926425509459372382697744944302337342771254618314685705008960571919926012605427740647111027945906546734011933068845929361487590762107303539397240454291803637134779474817501519000634586481599056072082468101293761819631145964238789626374138698029950831818643239782382864274133970654425768303473962816758674588211217789590221031466296488672400596142350078708406472206967997148737632405529203125469358157172422523341116230261388075775867902057412950221748070585111111749727058476859170206581864767625523008445719657594896495576840580512925106481675672647902528472830053585490385904317258749970669452598993298527722702706546062927641261187427099939793958992797853569443905725036333907487787324977904528731052569854619482059350892810304966170850023588803781340533507812590824712143694000018397387299429837867819097546943453575856581690451751781089408610902829087624651708022259360087301477569267951267878763083608920475556328267474679425417001860622329371702088982069202809976383558216045564245890452527507190002992710243659425889257229681718271751786120920067375971700256535903288118206807646524770762641980295775392585514747116875631554546102699225662817566493962733991333251989719915362574417398751151584508822258876695116882780835984089433050589338645390655228116033435865854449528421875562273187101280385320774453728548796846463740164666728118371705391580330964386147234651846410667190216471182518219603680287450055601225186169006918159814264594325294424073452283529947417429729019824374412526113170507406379630302078753783769349585320999077646983909875299490599796255945611528308068154721570333918484256388775006092383983022097758034518111912890856129295991759922630584775796905665694399046431462069305738186211126748360385659409108672281030454183211608912326522047135918502239559336053662516096823029307068484941510771291124831607711866448578458407192772017368690976839453405341932938099387287781085463483935135098453642676279659392903398987717030622034071965175106796101253734373200973934751374016593123457207479109236495925537668820404219965382476896710631387048239476100089527403772248032607107509508745479614093920656474020397368092547909787324600462552591501777084181993444832142752464016684816194488118458236024809261498798240965213156785334607077147570924668558980992722716843619019963287909167878547665978635499067501787054058685126355709939578533990548320662565039327340266455712240254288005848926545557344920523066694283197942758144956604311110152263384788595480805559385496884503601041462847732696497154326529678714559774311610452036183132404977679926323546273227275317693650520039291664492400758457691187230134406328059708275833050945523566802128630776536956969599176915197529962348817449277313438562273345446148408931118424091608252200401795204872605712299808742920234020897939438339331887785361491993488804238798538230501977007328330728935070866351833834897459010310262847652633398330430266633803506213322094025429652273137415623550600589857408652909655935726814665999357011637131031731158108733976499722654472140616734758453315643778747521046061176780132594472740522188218900591853799946796771897416225504955377914379871192435848276174135594526805407485212292347764912066738833817244778377927522692173770064860496486242962689838231205065513111120036472250848100531503194843448065747325473758157839440680251090169554543654513076308531668224694231930824520105235879105035747923122521548729791542181756180528571448495616862831037672985297704560206686076165627498541626290427067144992275741487089182412956575762839846388159964026163296383389312653258221655498028685784496608646987116686377082354952439778267537483658702163543074363533182329218114426771348946876295115843106477238555936223862276252873048695631924387041835493206410661475407823738780390081583093208107799045171489474286855068587944220655852088090191385704452271390651100836471361672817456173624287165691552638355342220765550063759625535433117901216843107656943923865737777500063699116680199510233274165541206031959171075719456676954249883511217047558061971450586066613240042981490256104142043580874468474329648639114755899747616510087926096996492044818281703659584738713769648153434291972033168035595453278386802027556739747456630520091739944570663197189572782148106555676352068944606056461063918173441807420847708160478588323881758837327857468659941321611785777602290878875757469898212748232476968913450604611303351999030393370045974358282142562938341743837274015004292146890050936559073992916570968802438616195789445607540045688369462244493670344357029183261563920620847362972876495248061005828666068700458301113463554329572752657340333894465047079832217584246005826186348446443466302809926845006211537264209756515512442642189902566960673283587685854712923592842901539036863981038428431753833106446660406478811163636577122763648553903678378727730404883790858139225122289075152031551044472928884369853324483938850752288577489158337904068333240430969993796584794710765474029878103740900770399577468518938769859336697720725642820417443250570410718134367456490179863830170865808121383853099045043201079135676455115297310356097374977994794728532734854223133098895397215252735729358520813526486056533624558002701652238648184179165770484110324868728091860245783632526824378491556368447328820285213351189415541930244723225030733456804440478615563909114106932755087066931456653319897790860079775965512086029095301994242317214143844972452990960151404176539438771047959723293004555706678413954517290658632166662816995294793384159003446766434554769993326909941126285680075095150960956521439615342619668399713741716264314522652995453470659998432710078993580014557841438253821140144877912656000454434770016325885174328164263326042274995368200607132873868460774777865688423287195837670865359358034159717249547705625787008631286621088867738958211222881952916421011400304563609791220910562350212201233134359724181978293824852572039000997177078386531915065035268520778521546141073009800187083283612830933389975697041554484322314201172200746039329891802934191789471256640212175223734704482984661315110792808325356642361695891028474049477782841558388085285193526930083844230212426984444122812811358483470103860116821919398145167931473225609414897241646505273759846774830712641058983767325347967690937536778844973869100650616075597406972890346429505061153613030138796210573797612335894316011484799493824425614727122153908786992358671563608171140539858604737826286449536739933402617073557863269432847606041736147275422357996927511702386293201971604212013036573017634545266047167344268650248354541968046799206368115453942109996027986995312199406378167471749055161592181121885808652559840542909557512365828061707301038200451779491821809928584507431490257332138009596309196921001999993977468840041514843628042617975949050629514544290070058133399637268765946970668523035623679690393165973345320008659747457352643921351106474421389020130825652642640766878050845851099412705691981459243046590033401414663251229544022211862162985295040839826869524734575001356559759414866142328825438431429054582413090529829363430454054219924302308012735709618085637992331074300996940414719642734066053942658929740733474280916193221982738975030571138735306675233778732869294366101736346343164563605293716586790262361508759969006714070160847833431664706093606319244619971816725223727437744085797799795983985955501544240816729937922710152287906931255301792897483188544128599650680509276108237772783767823906842417806324555000796590740971475600312056901750215663044118467582456329758959455097648364615508198078507088862534878652831406645038860608191066356783590054352902260652647137871561987787221544910521780585308780401453310699002288324424076424913859887362051651754839538838841909021742803039917858436405100073638730414717996185371140071837584404765627480508533601832148362495188951110562544280923335306170503843749923441240934760986475516712015060114198332887718289725294250215599395554869313741378966339100363110845525970998962769726609057038748294671299507965687046835838283703039839605729694294577782121766673319363115422675474169241991785491945024788478345192560936253732190481521275619561200154711602671900878040984997173817307769804422563830153421947847782344787098051571491926879800671423026080187542270031706818403682845329270723158433434470798014131647867022564530229873587017505022603536387664614031027247310975026092526406717621606297329020755760644912320030857235460098318278888119189758272593735097444302190992248575128195003567001019107327676853552933377916748568457549184445109547264769982560652969028769079679926595390568976436588402145301461390251661899948476435016786545892118793606982287188194544635422552723984113077803963643021485664397904858428311230064293724621180191278500756926302298260159761901237226052645889666363992175990755539483010296654514777128778219394565765711065654377269536040034091856671796037182501114135709900996105107614015702757588102417714593945768092331567105230321747120082928428399424739437425263646524992562426296845340728987073027594367729301489632710984594301510618953906826388805299277967269606622931825333757396387218431240665283026187168530054749147815375216274449297221814093926447888483335044480725024865427205296843123327035372699159717010890606768520255536018254778409125957013904360702277567072452725701042155480326997515259761206096990496176958445960702279973376873392219265112972964540232509849105344625946167982955637538030364178877367868085289038801924282447132048615496004644521187531146613931413485367734603350707248828918207893657615843727091105488647932321571409362954776139428249046004333446967573300316842489787782269508019362449688754099445414238012872673835698674207571599085659908518681793278488688292458612146679149018977920237634819889133449826966026799465016420011820800917253913073607321977204014887203912120234601846036813042188212874150175546868830236476731414679709254521926124631558936967989073418247892423847917336441213070979479903223845451158134090966087694761764032702837023843917994624041267779549517845391513482690040691394839791485963403686678887232448329078914336343461857256239135342872171946102180394458272106611295041976239130832395393013647898304153785189493208050114914485898709851424261632334015475531024744069984687149474541545365625502132443416299801693266452268861200493628458886993455305897448093689491453017925071117128588405626728326827764347315995340563945693394536942924947752985350739273765522108871000282446471469047846783204447306603748373899550691702067562658165366959559613026744670125427998628554535041107532813586689102934398132550000107264622792549158437008961128950614310744525695160513803939103681951135405402735363462729364184850155373190194663622630533476868828615751979387748163666015843548488289531965404459941969851900811728602579067788089028818654550352576660703320619810231159956740375910389578079691833997804305469846485139512852719138472070894717237015633433923990971688850140057370290889751799299482034001414879824206147845460502775998826515196227014238088218410284433782500139689775860994933487572550629270844218378296533623371723968929867681799515730903947142096350884381340865404321832615673674649276640599601708365717030036910561556712820282622839990975589276662729338380242557369829902259905166263894924468366816464373334854339325941325998657493262314808780767487047931514102830731631221524770047308310641204043083203267569822958837227205421315435669835554510435788241101682584796872202972401957824744714272947387727649476788006838797224584386619606090464910566684016371105481535791531841723389998322916431679325992476237528241581228083678512578397641496406936988034977363582779718489290753232008195846952755915208685117400987588744807661080690877889006493580050973742404107743755407403397781745387810961532034433785196461744067856162182601030597623473168162165645427966874176239689484464411640623863814931252454737517332335832171693630748525741378590403738396438158501436675424849307401270343859106257529159790521062331954355548647935327892217989571821388328528864526864655670730055662085350457358693618427493321723423875417887473083584563254604343152976694929967968605922380817962466445337652411276993616425054882930423247440809904692050876055146899350909054647332039389788014079044741553176816768276119504859147758883533119040332854767472741923635226682667149932871193933652115776076762839980384870723016359727625312415146536602185126210646787960125085000114440898722909656411529483807515485382366078382181761799920083543342611265991045001243749080562517376809916133196004094387038739757919908580360706557328784650381390318059001624525223451867519400351443887217539082982924527275995234883926179454074958640025712280641095442359601045623008457630850399557639593499464784147017401300429368866544538930322732106717052396412619793408112965079699427365701522985258376773205658843022910488141101899847061473718523317745570144018125605407474585497878509597889704130167068090403120015142331293622551091586322578190468831575071863891397437004694179388254943557913078455414349310790908069461920922017430929595775530309162897631453856187551400617869521516770836665967967223775664339957792157651622908720027431472428769663033600691511535473459011190555744361291035812333972271346063351180886293201042274505987338079756605557524628441033954979516397967157692936715154279213239940869847622495208699784897463956842402439018164726621162447972255391488869333147707094635745432668628073107001003440856470860886952387277077165255140919955678926629163287697685056674982397675169050277409005072517207795883877989467585745367762898599284101018261184604850325973050938753298684765434195792866644192469299007558861024721298353716460878333255769801327802621962169629128098152632002322371829228705706684502834396454871196310759830028013703187010083966307877273710263710554388377496760770079333153471804112462697118780300762681918584672866887447029940167062929783436030874986136118567145301853823538124530114389245641971008766952866869178001403609966906477043670497663377765131179580851005625593182883035534727093171897451470609522515156698124865594110324402477862754916556311901398547314313865998718916422008828531631939218974115034117998458434078591876865917023849888228525943299384792141803791761465137884583871991447500405688257385125505984722956688422246432598436696711611438682210265589167419577618276672432788758299416665013191903110492232498644451557100060933697021107151046651101436522895680197933596676074812513917339780943263465360029232565273358225121190314147477007671533324756269175119093145476517772769155073750959878918938164157937040826455733379068281875922099006506797493795747741504706629921213169412414554074423019218761573458273523129135573969997407459684521677433640074271981160776726825699439470235432641570080274416104515895482776469207773045629010597816186918998548937948141811975480241440668563275024518311021291699365096870426018900562968022332389265207169818658717666335924180458734345804214312996588225013001616734619918363758526420455366001647671803840967257624858356358707484673264553358203032727314655112993197140184220234669062605327182621767569621158248719105822124931516933145574453669053689672170284661805842608094031004905963720127264638120507775711479440766846560470321694497969677202440136437187196794776671109448165156576195210838510099190037996653442799454345448952495782624689468873765779866552159125374501882363268566935716884663241318123355653038215211989597120711707974222518965391837629823689285058748867672206047998882254161554242233974797553427742928950429272275027358074600747502881480907919362372060203877900996980184677666290923480571202621688434542945813055962350527818943319886686412824469265080607382267273580704953883755330339247714843668013831911083861317487613364854311558235935006520822134648021794377337227842007750693801615226750578905651345333524244893354603515286151188600858974663087522883226052684215380323726706012406424982080321418674570501945089977177564452672537992455935088787470863078458271651957079343903641212839719304675758228085504816637145553677859922141841595030338969585649011506741655442046430687052903127676049760567609723725709791995868084068577019827481259841475114898618336972155727186799232729155806941873820705609902230598777272900528503822058420338454286740025561674169459346871304318947202923176066570900217943263503376830579041465951831661101053848132294181564735704207468633812219588816128979379280646516061846070711740425518993061865349866151556575552176231838720483354947764141691665268868519813535547454325163592656157365256622371790784974707719655110550609218819070094342299815046603004005264663581711096934688759759156629493174905931528991212068453097350796105320563064852566967083464452850524574350736598968051695619537403625518455789643765389556625261454633085226259744582657189932213364590546008828476912385892077785587144263413915170875227876023509181153059113592071382547498229401573006237557849780341603893215996751891093322951494144172251258838880071964614107698226558711003361810578143524924095556756404771570539420496505932563295943687887597534004264669749998629747444692166454750563068679328401726637372477465576769726286451693301124746728818213245547186428057041394989893010968998626968800303548354624330631605662835994995486546519871894777856583801701798384980801625110671520437768717936136783379099499851373513052375735439293334322528300920360260831527889497250738618567962640417488492025737184770246741827822337953173199255626502530333258583791760093886290868811408379175151321436831706781450998177077977815666992696911126166821079394552093739320502490059901546346865151807053813747504173947161640179248935820744895244861655389445046035909131141647611803467039425771682297457922649076799397784318539708778032090064284649936252842735812089803479660521974475930436451811969234811459238441250884554605179895987309050602775975467468163739562430861961836012455371538689929556846178565964482595430700921790490268832249951447617457493282766686038706551868859280928886348405587661607515083848154463908193119855519396468342298154550157381014556176780399743962336357592676950039411077608659184673605201377324336384207894700385673521327374540402815101353412390010313014451737952048598362255132069044858513970172397813296241053451674724885377571444097884773698390765094882546880810287522795801190930042149749873757381047124416960634739980624658206307906923962350219832151661077236151813588534192163783442275139000161096958054451976792473658129901780038724850601723526129634210043967432370237298700444371939319119376742629507591756641999647231746105055464372290313195311413132457522497152258302752512957083414147277432997371530570195744952987363828221793209903664296536774456475458570979848560380768759951842918517625153649825584227077682790475725161001440340155260753570446544676805477156352807276070720334090090643048835465781631334552340032521803925291776223482002414539116474338849064227325465730577506147013561453489270632761010221497448099173968976638989970711691535740207418949932348915974829445207689104679165629263454889664827112789380297568213486776816034702175788908808746572050589938141455603869428723739014022332862588022976035936495094556732657366356366712096519921048523598398033745780208667771567217667503763515321046660768821080826182704530025101093724732676449847726755316092616310135587070222921006025094065226728540126520627887378431324618850142434674172763333803638558186006713989257431649522845430288743400551322310475007382382506717141604479977985228857128475525734752043794967362625364671589581733226190896364510422355769648044326527505167987440978646937380483194706183946837838343021067214795491870880170383400604953429888863023082779574415537402851104588174642587409117926832277224247588727866354092977381236404907497483921127450739512086268414080131427247348168888028809057450596462790384122001972155869780767059165705253422871770518506032238287015902903967042201514436706652676359491334580216995390179359313770520508409534240248118531533312226054154414504207306066074586769414135948440680242535911056809794196547567670037501176950752074197525211855597394373347966513289401192531364777091671140667771596058412029128923470546099801135447577996889019014250959689045280321082150749078845214317102577237398792534455843689126839843725915488658716391737315778873629431582908366630771461988040163535400477135685743409113467013608746475989938754838596889090109797320990217385502161415611848917222253496694694588131144061233521704786767094012472563946611518159696105907849881879990272947848397023291548933617092866675928528624379632222561244359736701355419386885985379837032332195190327073355888337783922485801302264243163824801707286849889035487132721424812850492382187781958191132811719223851520246168109199433647429236862960064993638608889708259157522371683683637671293788398872278529544914697481675936668847592546819838570049245481337373449979393267953585495855335630722030990605216532547300123853054377622908384844620682569360555708316357655659569173808844936716911839792387438651710364374338849818996278187631985853023439970574414112946485479770425511027486440501168224538848168075089010207464188129478329696397188334605289423526720974204955884388277060227155216219686445839375149982763968518197769622984503772526428222989919998499796311056528392322965246729154400814405982413125260696660108786876551718353345617660541196999580127621909698422779265159548580866476121041899043879667357302983558819270260949728846953894319570393600612991737170392864988921369200308392148331910437837591634346060458953151983641437582938772940880281879508716992215916902396758169047543728320289354544182654674194323244345427922274521004335090546400923279894621744558716827242218045673094397852647521039579111185994184556731922764580468265590124963194864032868587110749056927122088792677041985176713974348266121921192349243267504570632924649469953035914642574689443271347804835887198044036104967310279442394740339857253982081301224092266129066451659765116901349466270465887725819374295300945764510948425632030320509146927890878082295615336342739909676117277876886095437225493317531362779187294502822354708825127055227940654890998696971784925156778211955234180518422617519296077806112283861765438294087257149551702304140563502610923097477896696115220762647183212041356977876214801938355789569740824269483747081933568319512283202996884199300126141151654011123004807394230156217183157976869244601470934707844119024441063600692540640158499078950312755320816103675254289523899242942251965272471785973043449506147696471261654260145554726818496228952826766002226597009600449141959089701043702291400120433479294556804558963644120979730039651977640794199202577258519762690827394464149279348114161318871714718527938353258728828292623545072606060408192075394265958311310778673427580113567784197498593429135712863330888808747401590528313326009524326263642433484903579202441543739144927968464387388178779861345998645881379143710719332879749115445467420921328219630427541943367578827550570273263319672181421612942567466971707230448757269321579032238978007506924227391180155109339980553737711264345503112314936457569057831847162283004168649824656740375402945999648741169344587534826351565072414890946181014038314741930786673497736945628674284545423903814215531282529162430715628261717525643354082013989591043807053690340538031775987207700968870114378347455416637733524054423677662718146105615587785100972270417086663012800716677295393149802886969984709625652630538309748293152709078774190162074462482188766841143255659904564193307889568896695546328991237050321975204024688068510044531819193798214019247335097471451032301022626662356599873311157921570193063668627184442332910213324321756116036758893215780299644229233233851759970860231167858009040883288460855693984228765941547439000066580994979707475426629053319605094160222346736720379941185395332490336907284767274122103347020526768035371209889871126527223078059020146447215437107583076405229903506879258418989543168544749305247961336006625473328422438332524559599639233777694172623544600629972059174765206415018626083455081535526828998938633143335856549997351477559477666840657364294576172482831097641094452947774002093924935950050840477521339068541727409944964247419267804860245663703159034827092496661038802332655260297662863926818033524385670131553216418432429662428940926114489263046380206425424151115769352592693954982824013945914811235150665747472817605998489930324238788815757482114861758637842950495148748926725920128334035438656188832979947191935152530297403186780701311819188349541413660237381511065679864728148632595461533371391373159901884443501719154302002369387489246275183871106757945672897278793916325910451159359161453754995218033531588876397935467471933447477630591189216317887321547841825693269427481830079034771627238709717769245469206884971812931233631231461338392734418266120689545411859804852391369054225483825357161088920840390929257781229566296125930666272392364098312032083124634421911809145128743014917381179437336392147526837978727377766093311419210719875546677004964474264523411815670463049489356816764127318307853257747767079846313958686872218031527739336897807951223715000580910729590879495358315352177504919825052595631342747723107188090903546679604171453529744858514625876997203467986871595147025463281521188797347848694894940671178907374680952041062764675541138384737444745833373180248221121866571275616912483639131715934850146445060888468050906041628990547839180959366952571631981913348147257646016760563916595075956224123336954571961898440382703491120699628169960472130659880411854945896107910885264277777160052833143639988002159680876300890010634278195763205749972546919509082049902902772606100163670835875557734346600832141986106370840824132801926589365741748889201658542584021868669297306236238561076485504726147832345989952248109250958520493934123512835607439383020710667961674735350437099723897931908543276697822559764073114445909033413012145697433989959479369862047081777475108383900904642035003008627170713631121480573723627028264086637644177636950275072257776891913348375978547491490064226001111393150635015773997766142981911930214831301816055405683182848751244875092028902209780155353718247082660729169856226875484353085981563220654588500583080337168621774378869067422121693293508172554509999946125575381341917134430806536911376286625417953971462093880711254089268162059571286431273137697957843179371321862116856322503287172520919111725528474561316502777700307749845131342967839211484251463466457332585792828987732204170054494760966286111468927524799285605218933558290121601469119659872364290923708133335925631575609127826334126937377023060678131106100980949457031586353869477245774395802857792738145893394381333149121525807528867645348357662930484952624827487728086239624420289132276555888861190237427319166848101237787695365700692373822207941923200509281896150403755490852152666943714525587805673552610988652771850265240385063229257238959548725736300706227567355439359223861236047053275057829373938542718678777862010716090512681331898685363693273824812682170714977060127214825408116523001787765411624649488227577391061589507385940599472868055751060974953722443373239789112899886729252650492303899823799713009281060610497437531052074294117323829522851613575100177003121151687553777477680429876089966311803389837352887468244404351169322293406001950659681020299644773300337059853672161246106904856430605714239106663594647651484376171082163484423612987142752378485552543095038325778793044036927094441928072476937039260484797443318506972208486446227963589049785561205859597861122397324611544448404427645030553786341708623125289359650882076101954484625807058104394662047285299608954772533952273071156666004463646359172076877625297854161789632603511959205947834805809708747303412113965930700613176706186279747224146215271628246357898331407911668457910889113566486292011913691486924513329566231832828966249387246167881293970916694047563633658330796048713819637407837247934470166115850847376490185988844607437830001646293483838277374662400340218826395014295810544903885927377797493463779776745535517960722497970260210485513149268992614968265160943322078405706793032860077938682819169869997921672153669909792207699915380926632262126382566654601170730427442527440077150008925944329776443293503131488277672405708688890002389477649993525515359791756590140133543270369739212786885102497752477603707610328942779151060990912830872702017204184256339859653755783365509249008538191951284595701762403511555741414766279952371467117148157552117701117577364729041878879421556796215052657891463898455442209095059812730823070025825128059718158911617862617193610190260043160994568858260206076901627676437073865271172160351237541366552513377489185131681674718261710401143563504199108001776050500386051532667251877811920661460328861530003573504974311847507837498468535338214633537898071668385924751074277990392055874369239611216834145186640216444147361448262769892838626003303606384927133919865439311204145868164901042487055147199063329594120398412313879339007008662031344103863603313274421280459179740607108156943012192404241504907537398656710411871547145491728527499336831962548975828888007487934939239445873070578181121807743499815774289068447083684430212231084999800961583629209578809921635183962094381550804661530561772755841358705283021073032708849363067440390817026633098973136209961113936443910504671509738701474473188740948137952076148928993537022769023389485194712669460839326652519729353289629944584973480735731209441587883532612559086758851721684517575172977311597547837275922215009572479849939810753421698868317240751401616762527967338032817464921896056249497676750095517583193705382951103360629897966690117532574653122134480270386918345482345881873319467794242296625640435316605109258607064645246545893083997016355283464383707446770132965084333300498233901002324214297786771279910835299253411734311668943229553761474583140074439808856459196110548759189670665520592867176053907054484043167235345893730517138986177604234501055920714371034756242732626072568570027593011448832052369054189768351201858077352204957135612177259025565203977891140100461285086036862092475523826626925738987104225874982316959461418259455817249467599753584860185042455874433743285012906615986414169652147978900654766974686220020365906330378179730437005142580591199114172298016478343770419027329492506655745573536815607662027426542398206062341230277138911112236273716711619865419937493672953707259284790041783995536075857337472543506434228048413534010520026318167396182253005913126825316800266985581147629377342814557085943310743150223651083199927137609150133915938134620696398969164916898945428065284110083936058160370233598929061914678231444635457801240587911727398709294294160644077348896293459235636851609653933242277818501492492243510531934620670231424561422053423799753221220775590305655510331460187780625974675468665836624336159655804475073760650328737801560074329501580296836955715869124754194376961934529805635945027766885810664996428601719345296249431237887940746448204703121618217961329636824207376988876322376022495000241351938997224259961761089307892937802646243994073646897889229076859171274638428845299980248925454455090320103434717376148128483563116870042379739853551229294155838895733877372982645861020668659105404811069964284049486281092513735309633712686931670161900193329961135260674191326584201267870778998943304959014260037190211986675777607421118571557500070072333571186150627721990430222539994814721743955831006485326969478724988421573758536728030422663016720053925146313404869095249939933936521797074623015745571868068069021393202601700554854595401545253588921667115915061666984589513794840829270668382726315712636715542516149899154880963581031641952430280344638872760542151666098032276154919581990620017171482667947899168804738055164294901099489865996735821014051010655515826771205570323098612654041346858397091381076146593220781953392959291029210392850108767107848099539006129718916856685135430876982210434880997624386547331774139746603464443419573277569456869488099244294654627649165086317368093400694197318688292616332778825207819797494682812104930492860500311355510484288331247864137862298100118504437016180972836363763163420569300791311489807080537504469658606799842922438152259581765961233128629353854717596311437558618977725875233827075731533256231878639511964898939734895935017173410497774950090827813830371945158940270704840448245972318999602622710372566206164472482601710377644116853942889404786819031367465966702287786650082699922080995139529702278491560816576767984730959068606605117999531594953703120864775620330020689493073512236152311530628128520836913219586648346200105042104117299305492194265495161663150311723319779500946496906561016925711632832404984937145446593304790810475549472558584960629331271343585204820232562082187974980167212724168312314684648233114581565208130475760518928078856539925098182081091155522798403562354904796164539746660134219249776235115108838040514991077364505885383805312098517925588294786217998668906312725693753966310371995975284422740690507656874985329039589898575695504548213772574464222689732878168979167907028477657864657655515565652086143414307119638358016874620234892629010181394300705769957370862252670574882531402269428585540300480054539038427457548638957661129948092516901006634678965631685017496230860143675121202775989630273931730398676489161720110691203030592735276195763206980294252673924441312540551922034212266899290451801996110165127928888263537562630131772780652354143707160563431707343110618960424590271444257872031491315149214763371927867580445860526365174533088358356078182585130402119253921562906987173893333004985421404243931782540989427859827544452221017136257495066775850589974472052429263784726811495297235447298896245629341731241098204008339271334421273704682703573847383294274173217472931125586987296688859893949901257978293459528746652014911417426870161351034066061075184614903353728578625488169757204609230056699156018898647238602686666629528668367066816750773827690431061844172345641903685422186797718535759362034803512627185493134921436444130198057461855517613228547997241669420850355918811362858776487220020886694797559163777680592137830197794169898977963122230049845532237009049625785238706626311480835248037002111103398184372700821218953095242505320908195451490480154951524120500667760941405390003779814308984236754635876859433857557453535918018060732499230419326503705598456156044434907402877380239749153420539868204375136506505965690542861184008957725761165742734853454114901981316528816456721796714527148946150157981454764986181438687584967734799374720547441887057140837566704561214670051965435498355857065718017940711134874762419840102532770280235412901251333013914145890872352468430566934656772188328405087838946224712256696150374880445856116350898258217258287364048403932426713071108114990075947359314592117756363187831145588303553022919045246221631703912195953642842288475146549822374718689339027908749708832160379256204802119728700345381778936029270771343391442306988472175845886590355166697765272179450789015679444098716571265342381862937192502592770857797277453637267574008331354551970503705297608395604006729946518587973727571094324606942067615250053042848366574177811116923584420021470848902327153088567146513780033114337459020912941709186314862819117823712821562880713970318156331526841898737942086816074313345445896232268615042676497835543642721586364705720273480016741116213112049573855195570515747635440807737236183346609396285928329148786120910146633230338918193734053186102106271387873989503153913230982906377352534570502783311770648443190837769450153119804495609590302083702664340352486010776945264046168285317282077888848724874375548794675806790296781593780217796318656218402560180963723305564361779149194955128841781439789823879675620639979475691016691585692179600700790429234041698440166772180081489657413337028947926759876712282867368988787294235488850011110156858744238974167294316164748190860954344680320221988170076955607612476447836306632246014745060503522674376424130480988581721530461896710435284454777411430568472510247441871887895168478646181880714222194323190610838438070729812369160465900132342925340832105651236454122929707062942340054986308051428717078011030925031574159390158314394391578305816776894979456607218536152967783227909920657074411073905610349114401974201920480617188924695046397155589608174119623907720416910774445154595375413659987273063487605316991903134128835194353814641060315914688942960753721179153193172877731328620833781747421159051641046390979109258174101858267849518306437217767628951099682426814093791348083286388330261068349655057819687686602926564953347837716143386757350671513155846753489527623076587760494988197779406964237101661069790373536867411421952029529060603153327234003811351192770989601866726988061588878291983248611545196545957697184048133204097619528363069293173108242434539264322163794649515281046449164170639368517825748284428982280612559696901497228206200905287100141503749307946189424027755939208947946370491013474673732424335963172818561955482998770734399951542482091452142651078161051063054872810748881922273749616717364816617432364569015023245133487167314621733406701142828573784465125028068891716996589520356780757890008695802373855062974172027592479062597921917497896513337682554590592750541986425377195680736902351228525084999637649761879102205410711172498083073679147554572783424706065358678620284672631516201666009066618295936980502041826986272420153503733043319992849947925149163503757959029882233691061691180959664498048672238702384661016247692285591104812525408514621127455045425542758633056107635504908635845369869436999249037060414761849926444747422826598230110603696994838260072149685341677885715614022666337245919645211303012416677152730124956377461065522870966681668259946209532977078129990721485395815016003794632593854485157343627821167104329979014419074315403885352654926106512709353966344665192154714438542420062860104238047370639341994707778279653908283583430098945248981515472026895705680040549605420148197697313747313752659356015435456907376227504432450436429149578706711912827485601631889658503495698220373732972016971074820060805316687206648805082740556355542988147727128788949195088899856350225079372488261640776928643703587010240696067272022838629971642718659618808057332763663883582080979062662176797854004357005421545085268973533069654392230851827471720681020725405469405299646901397465266858283731623646977617699740583379190244300962760331982218643749094366919306581075196792717688178553268567121169381230375390277348912090335237502939764803913739091979062435213386945257239863606467717695457434641106945139983471690786594695758554822751428184166150167426862739855248409273719800167487777823108250854473134321866958319195644413887547623877295762110337318339441906513549318861100303859262622471475212884645675925269767202038215088877891041812053379635255970052338411570100795110444090478118721705519848783988223761238281584218612424597937859301125241250866425579040884860588902111660621669724784693439315780885287668816438295390169968267659004820287395191252677884183443475407936627183073194544789591088065589845541835737863918307358331184792063891882818145656434462844734391960266255344166638960066782493326050089975567781693855833163683101430645748302797792782175315471820334619052141511762520846648887629055812730829629093133191487124099457723423264768091995737418638514338466693764498509898261422308581466010290956941346187079201498300841442383494846789684803784844453263956790647275614182017004718781989370851132938523881708610508403618321027086280740763579420676995720404549026621752913913797264611322611182152699119888615356913621856380451791997118847363744775635171298566723888040080077952941687270578943484186924727789704419907451172694498957853910474184305425024509031828424428910322523630539174969800032199310191088216847900093916352619609706466429227823936044355111947187034665736212026985160518924261238480176971767873100769173908843576693303740687197057931811383163821736184626844342785513643152934840770682002917418876017505926643751573211333340163083507441850898503780379053876462873810212113150796517447921556305545260263727624776846473959974378215554799169210023867675758333192081876826010739351334776154857841249493763274397786988473363445839556989387089981144016094899377838951330706487750327057005858656926083953056544256246853218554488118656567620755299245445782336457081137810792611087591916985919627515075015905415209340906548370830455787226219036155667580588027203294047650677160932467371089547324516642717191379771723960479633878969405168273328160494318376457960670552261875701983166724072989123078403323413072659305337601897805644007426775825835829772791161928023883416769331077391672453691306600930122620673932231547824016060888892810981172611774517795092451085611413666374754324599373322009473657892976910168331972641917537435049678370252656842473146614250362842450502042731675722759838485674261500877903774700657133081287547438641489144753479953087979550288610874068068591992079007848231751516553932064100645890108266132121942813725884263835164734566821757465942148899308052216940534271442396035054225300800020590678058209607933667906354195363958275900448658332738964695417417888240105701816889837515961876623991259848052435903239062073701560065609686390493999132213750721056212071692596091392408687106042655982337220330270617022362811630511876911809390829731216943881289746351393013241160314540143984399973999943664643461995163613157132026353768297334118380317071017365940288710347945539810753967992688485219442627704893042754642266573159204861660227674329659538946257419247238555825161197072553062473069773594648310348492527405190869025521179494464862370023354970687761941406234260173725105677983628188444430663530232493201239493593566559229044434292465489692087687208739101253842680530560343088580762404713722556312087193067667067126879483846764264892851717321478730575644645941660866492967110238022340150304228659074714910754891386051167613977314489269903857849091837441497754345292608052499105598767634408196431797011075654567896127374270125974731519126878636969313940612524210280109875030786561317088411667718656560767559525186798256266717987894980779513406521530348538282880662475759696105990274963587060831873320963790806345081614578136339631593068478492775198566246365602189949851822141792160280882995111974993619369518938723825980809609489719390149628854497516443185172442004963697784394067164580387313878617223970771960652481079583222015207134317440455740552936993890371893721171746699412392374969022484953221978980271186493134728855256078033691627771323538079818822564440396143037472158927363134637051196610104562635179028451641363348153252088488296702125042208964159154402458249500944799746828435724108985573512488273029982184612705223082294937050918162050221533840288275851535131072365952349209491871396940710868144877611349593508567505745892060481309568363394320255624704817206097477261568468802529616999810856100976628230417057613765691049544185500211041741000384453030172531695735582857265367885650030335735465654229842586533602141112603454678878157783333149967169044200434466648663917667956299727465652646785070928446557277324141873893156303363935213030441634733171150673988346225996642422196123645972453459114905634794300622856187639810844133656129714568839968959662730727848063800522286545682819275849383230829584942096574460092878454393499126761886302039909849146766932774327277307846466081662377725635684151547070172731087350962799487422299564127064150345193083155826732606216442196169911219480617672172530916686715437056660368716782756149006010060809880868020921683232225844840293181104150157632803944748918484329642685088042939862932497688703837932995427263791604194524977866943051487553842841693663412621404557086205059225529025404691586460312518989087523090826423420960102113196613528404181917375122927622835360142824789052382409864654173075066438644175707938671810003929800492856070054662441472126785296057924348605417674654816910377480500418191870919006816315823755434115384976250555318206834134880249697578566916908504764479502064814268309396622775288127743126767925960832501745107683222783825098059104495877516494287132886448391556697093960207170204616136639289953299508252160240278898689086289833579828756448235031852556355798535084624937051376602898248071011662830859471864416158249455812819243442145693090554235216455987247740466282213793675419348668069764867126235359267828657042561273842666850081096423947859448879486937534955893160171550649998312540141004508824862038802090139596484999263079983227360450279383285620701066068726249930856929747487441402113206731314516369476528422558046547953138930087006342854449860747714592941769597728208550874353040451530896867056116893591410792697989442320608282900360363108200965241536525046579695860638339578748974484808749822151961417406879433717940772561401762848425181342729179749546943968547089653297907354996258771651812205101091000114385699479772189038318503201118553185031634943628928408394844803745778976336866526613462145549963495877095672037783646749328105261031068982056242647489586924349681724229292919025333327151338076089013726190730020235285792307466272558056580605608246181958119748351065095631487345443615426685924852400418700524116997993146347508647186061463780228161260838380577117275020673853595167510438755913966808497709074053785740447160664052253846765163361242038939125981066313091669668117038726973940686197518867508267989924475450617995898068369485593426731547317221933941317252553717568215334318434333230619437723228238200887766395423207441868006975908272602026040337861778242399333332255472937545098398331785932654888914827578471990010163361082853878320955014513456210542088094636556964212644428488776591248582351214858333967661264021693483435401138876890106353310947008440914912471744616978846909363676376794643861806984495084769022619854315062180411164462658673242907786855372675184108423418196434089252242059211664324833887486366083071508865195141052807894471369104429447409140741130696374075376207620954329126888264506139647950580432042580932886178207806889678825382732996775551174164670314017983645059631288032155625191679278453918976958389443206130650144387223553981274130170698994616705915046428112468339640902659540950768719679726834334147544492801269685759102482132319869412410290559751667806777139944551447784226985670031465229171275564691968215310496560790504830397164528566934713036328002025739622150670513590234472438001558824681572780046176082606244348272250530541884543886923006861934703096771673266767365936345043765342766413605277667129026917370704774966950274864369789498242318071606129601308884528655505770183820333214898045422658229750369415331900484396302471310820318560518690917106134565228445583649763617680863605016540580746564496200462607608020940621243662575360215705312777538718478936002557044878730954503808263789974368628613764240098580144344782423126361799462688554402209818505037829339127163050981555196762934741433034746262016746256865440351726139155251665614982171686796508569339633601366328703448186597928906206899495753892328400487260375179701488625767432174684553247228682894641870283566851414262004345152411053678387501952206443109938245497681686871827529834763308847302412302032613760375519919029707076911117372988400851015638482596150742215888169833725202927109464614073790555576129954926423170741593478957582955846396883911655743667115798096946607821325018694318176068414862580142911109669678446257572558534378226544822199718754763465932436534197765220273936536996300799508182724021918760610981474427157922900540836391318736587929769606865059243257041999968986547596808355685403701115211242187897057914341219383841091432006633176879967467587511269575157032219170981432308549730461048556058781290431383801771414582741734776073533806269980615742310715259331735398668556958294485727771559326310615892521989252166148185651145325634376657437713692629170051858866634865008783018585275212285714241812297718783865117284277591126949590593668824563398367527189283173665906751389386224415060130597396198500665777825454643555925471674547400433288736764673968207547003704859132436538800956846512144099192632052240881129047123907932128188185438968562838526234228295845013665603525042671062669294072509367149839660000618846489126220079296289442785204576652796184923339185699974883102955813593965297821130372889880030163718091874364788036037960216114623637607473988577532565878539276386216489212315139481420417512471413675394087934990349612264478349845038734104584559698215383239135722337214538218576838023921133075219206965786818249034020992069473962915653446531381229238430875152199749091424133195345601082850057934464735033883791864995498245525647635068153767536163350524296688103148057936775301931416341572469997739656969734285372693785883592682773669309119512146979054428465444983041055113932862493320970924266566428480730354861572831829796289767942196474927609641243533749202898671933847737990426988151852161184529704075666352323466991979927644608219828225377351116700614270497744141604175148799815459505441167524522312619614548687990400510397507366617047508977046849797256639714526187438635047837319482357538525785167432494927402783172564724706303329621958204349958021914998310590420887615937298723666293482979734508147706319971961042015112491398342945659683223775034797724591085410689302620974586184048789993761837620411967574706202488700300701459700616705537792278511323141548805563714862955728617567785153844250427625307304635962699510914781681253077167962677128808284312663999821783977056506874045315484917102305742625243290969533810690056363977523633942390164452738172833101625222885351264043621234468202169533512354117434825409819163069935992774151374965574950714809755640842172308601782130213759160250559459843586632803982392549309179325664939858330343296760190511604535500135343332667870950800594182125997068625533306257965749060515566215680523429361158445508820272587164300865889987059792886499457262150420463147017413606190735183002155481811571671641268066193254350568976702646947056723733091184172361918549518971741764078365832308383553597391817972993490160088718445786033513905869366693275405173136879438589717103790082386022345751956478197361450128904345685666774617484297058826775442872287358842573771974757049726432834536118123892012775871790434357000876114043209287101340915809748327695884335648630309462453583475454489943918021211241585966770378708154871796866190626737450907437652616040079757528710195470011144156970584364759218956466882666170736698605912892429240686258194341568622303945867743524511364640285076093064726031997008361406228696420626740804012130260154074796110586554410000820131185403152660698662319449052174777169606471677786717560134202585586646120704514768896088027595212318132217891633168399011177703783486988134391874021119927208971828126246058756296521501575959068954803917186981418709252564321292691361954541582066125615263273366490493829530169231056948113590906748734089567292042807391087750268282777388255164349734311261069573811188391752182439978488830260887659475163588484047175637824858812025820885739065735853355343824606750219809639219707272645467834678459221149663078926549749168910457742382022222309067847011751787634382395591591282283254456363397609315692495629633924856089180044768397904411886732242666613086821126996941031051055111909316963726893140337582110858781905442906093769045706814058613856881588307327900588950010295470002528806753127817052321127010732803244865726804019844922657152133394305220683233954451758764120561617234181246021421708329829879470663634280275767661608187904456506953992913861753488410005011737394552938198081498117569712875302949087203906006466457660372696138235003795787191921896536323977800492940744717753222428963335253331803531224731870271799749939048473957345357320068850249884111129858838031385822964554719625613149175487891426786483858897616047384756652222684667382195623816263705615434265175996531574490259019687800110838957566356894388237403494114918377929604090053502554189827886126994725403017886627471191371272721973052894878271453182128798325430915388670591711291751921329728386174745816211009059587397183557097431868104516442956463507727591262057165717973711318391315986801842351708206706583641516988215390534187340794215283543935039502959700242415697812888994432498407575019825171286178579807214020087430934846990681789102451367100841854228646833478702634085153445941646809922639098064790879983450873436533686435237572822022777062997428923220688136739115683859904072256529919542720672051690695248740291468841343775606299852186309002702721291507330546411284066133296261788746054891895286565504525649586037015965788053567811458161055721414832009620050684948437794187771372554638066182252820607036414559724861884884031269497757016201091554148023912744222241699691482759885230395240970344668328890787424193469910348900595702293491946221829934753952133621520512218039898858198938170827510855873088640845919113110578754864983331125994967041209673807770182347885278680533659047609058931284606487589310799585998472986991635369017358331758915546441112020206940285535779685044150012833494113405514311060209395134648236622956104166082218360095612578317940726774306511881004892803894129923286501136033356888890931186433871043751542014520831835904973266116183448254429002278694337202325709247146724067119300076241706183851103829708752062943284952244854111985879796926152872848991722974213311411217396494178594502949753855519957351974073304719517618549141297691724353600127629684752952145843291261217034941389680863230274214109571635590707845471244428721338027106683722372556174848495922538404726601086304855862179333071216617948067594158508423612460372407320642823884353790911442657165836055879026007749772719272535155854679665488655639286286087382641878648981571888998456940653804948150899425834333321085902698535517109624400980314510447765050787124493700638463057332557354260218053071207379753656604430684024786418295713638272720371082177196311288374547577107807803977571733961060674107938848982096684715255050401461737278713094691096147380181820446316824391495820731724130937089736676072408019956192149146867345713310133753895534482671562845327331992829871801465986435693711685629675571691352344593892443273886036893267201577042763442376331468429240650612201905371959029639414613442461958820562212988816622007988986887552469623259749603163120847992246370849557070511740105865682602854034165650615649197124131452529020838782403471754375051502276753810630414038775216886812488394253445058036260137243673108235364610495909559736954972648835091654685354905523720426853435214175649923603388141848491223588753135734548667773035459573979232294287094711319411957376561975929535484420137121792774578771390794623679557067586874818289096527126180718172965056898952759991220711572618793961433613608228477330335870435592930022074173574986152581010177609610656850700372810707450830688860132975175156030995827945401795203889751591481338783593923166664901671079293812918425521621859916152596436070879609453747888322022135000016398205464496555681777816535376139907392849678621780380072386855471522805787543627214683631004025434563544114781698213232433211453391111531134817128814827803260996022803230059564698400352759988266113091196073893630805200877480444790519081453038189880173887266430432656781947245893165895081844354676275416951328840941079776315660957375301734821808996445181596528727606392078942703916963759034795769678711189155688993159476159702139191464605708769085820884696863502987250647685958078372611268546807775429890755024919198901058740362893655569370566088474752740017358977410714414312560101711440044488125710624409634105424410227254522223203325738294924958345933256229761892273565673513459414535616852096295172484616213112160684648882968311025488940070800093615611898711550046286408200102982009370340036850512780670617216759457494893592495365991323658017323483910425511007227239825553246057619355924245746241585126451084117985191799622726393786469471336162407455678564561854181170807973615872617519100104031342538380838305107882757608520516048554042245427991739036029107647547734868411601568329305586664020902274161746538362789947704884312698719068737565851614305954894397689610598529882902404190573666948049478967609627684292633190098914624256724328646971751003847320111202317290395706372205952737070727553297918494611738367088372766959826612256252942721814118502549681450344182435219536933376089087401904117238924710271724899939788156713196270737777423940103279254316150530093809161805065335891872738835342055503613522606885586979376911006506037082202710153034091969906163728265821662558398997946050036460790293999668439757068329242802967800311515344249637155671956526899831938064167312564573002311038291618508315379073386000406523879798394754606233153557344622006142373623039434260116047606336118795389075749703707725296355763494685105716019442841816292001256506892542761827331659264547287803045326033502587749206627980299047692248400059050053476499348748853440451384102049919709576502277175863587738240924688786875460813206044359210440767849332805426769170783033611838215938379065904846248896291497978438378485313501938161546485311344998610231015573444979956029979379269534429433132876912167170901100217764799698017747491601264539836826917744675158449552943417093837686619701515462226060136623337243458675201349083419594345798198466085909390547908198416927151265133081516693002041940937564289203797291257336506684748403480181668044090006580459324482033597271457338090660574008012447131024146251682520019990134140745643804363372162499663272981088772937285632491864175295889592492757907086646026130042984480800228129524277110263524535152572944126372456235148020587786849423024362035555583655544342667775075411400063889340402239300560399879065230099420137167201442736503134402256637898177498969635876261425926509228382391335676147329049395258382155796560273464038917758983174053060236368030030829176213900330582444897925911876966719747676476103100089409231816767779931725385818152449039415683172104344760483762954262698056380156555838154815859318168210856288349356635463500190056085243458018535129841985458300248380896107242056597740751777912900702527246212160437691564754535062278586179306542060139424949579762664105379102417413897227475034748238987316715663944288977375201038116857960733220061835394208876531634523226283691818982614305031665814834663782056387767128052242022069469806819557946089123264815962288151655135201764955013627227128014973729029151240878422266687865865282595372781251260662473701663601940923774306176288107453943419607916357812597404041903428097981474402040754062585205143937220670949522148753195008200396939196322401351664212950285914465994628112235357721010360963395888831318652159174559620750097813537185681849761088364796149887921529384594761653111577026240731288119794656581528086637339526607410666566052945535355165258248412764649008031072475806233932603516677128899962179307836689562716862816474136167114237380296367667978246111969953976932806222846002700170882959936382397546649516333987373254463701401272063261234213171830079236381695649120044406340081315206132426940351274532263749686128501017212973783213325993399832983129708204418248813059531794417589660473195322766963652464054954377609935126425228313891094594616281330128045032873568299719841144347710190398484874649829182791884515321911012085402767446965051906492383239391894997490123365800975264174821485058000632665562272822082792663430820084818364669772835446777854938352227688392867000825392379659173335649376950305098768417748289417453732334962260431611384554257750733723096283592279562270424447536933084816925039535635135283284364976097972354710831195838352716831335999846468626559832422319521880899486000944848392516284363508884177191201006827441704257674020290786576186037029207187141840854196092324168636527688742544185426641570273430255068863514121145848412244358533454874988255614643206445809330843881493592057756766441945721329896442829476376430273891409696581061601810252432812039004602816091313543549249577725657996841342477386562866681901918730786312739921455536940069618284496610198787890949085160586329825175667733917531022989031639093678726499043033227949325231990616739476041186555321354083018189822416862511357874944322631603567024495595059194250463742086276790836858831683062923238337673548600245992056486533328599031408601694244189992999540465201010376863418361786251785704493102653512602149613667929359911355798195677298628441187574621326211815960828225402870226557163811774784789543264569437265642133997416264911250737039020321334725554680274786822395428276527897728890462448379061831134413632516360428869458592002435349644819257188119686019435697756206691279764524929565748807872784451583007588454303435197352712480380404953576500197177279906797998185798736764955701595534296388259166042705080624880223081882474486184907178123083560667344498477452651140696996228447781348533141797465283045964327036686019816529304246910110025285288167973334840998306853382072317725747799454736389299142491066378719529968382515909036896886724047693284248576694014386107659500354834231236702542583339811973932139961612068071557389755803254673709360534702807321263099542095180106142548755478143124344795041979756874641034804277980142533809887805130213645279896248681206081102482245839462455180341886411233535154112896161801036895373691173844710808848011920254456282924805877255513730364128054227732418599897796436040150462918538131621034730482358799144390766762702361375655337689006716343518875986258884883803289209823368636186415516792895047455283509536726069357796249140817554242935742562350753390795514190631762667326814492409113027281008215447060544598190918561919977541269675304618415445688612233123149271245408918819812983523751289274268287340518375896978313388312140398139409930288180656417786322228758171171041687098076358449374719949552909409635927482607139221138937381916625990599338185691638331500539929014658202496431152288918456919917235065109148115960564547130493571692914181074317433729890306413269788822283591164035412284200156184402456767843748213161939475759292858257758827853453142046270109024157993804458226659880504444856150336032668272917360442100352174085395495191057325146001763362962311460153824080023460597294182733161827241152517624850767125928665315295430779267626871742137100596196483562040024838626321899846654063145059041417685036243983733597046551644257920682815116337575040973976620812548690649466673116755431610898982779211386518634281985857984736805056763033384720528755268814292745928394822489416164830592211294877670503080266727471094931624003155008649645085535584684061000105779630266539880145674503675962670576849622782741310993990036949836606390896133091112551140311847403794294633647267324937600439460870749351001298726283017295192714674603293511253901808288963808340185064555039223624412915710876339341010481251928245786526334406943937095306341800368232795505775748707432170964259680208818323185549945477757319855533677237990938493409171416648708408778945864168294995856420212409355717377872816570970903305741896387322641862516692454840915183729262781634487471856919631883060062393014673191762100642167712868974196359825955835018474304425007233001414416228045001892798884246363745974994876893776593896282105927030205326774308534113168707918249497755128631248027387815387543474343416802789863181145163175812047120688905104692212887373073969583667213625077546967663322547495093498938879979728408939196832013285323831611964413206653262023350923023585534371438385202098965794064322784644003990786357073005783259040133453226655630686979053330654783552335317903271364011945166381870423887669602262829953660948607678971974716576423927819882339158428479650679018174112017181078278579312386603145661203966979077952754964241246956024778721045107704914844569399889767517870346852731494749374119541885180788363366203982433400448600642427337871828533164906618122954144763541567630755789705980995458605047126908216756023556077381644855231321944439771826570422224053083788560561290068698049657587074665983257232905693401263772578272323076394068774535274953724726754645753673116284779367820801437381730954266821468244353794382663426413378417323894256430796746612486901260797761103565404697324053650754052586209268623870282511729402777915839630069693331296716540540901073860256471314246959467904214660635674276396706060302766685990410098413104183518867911409407765211855965325722397838577113319823661464173333013839563855310056128336345105835106811818402443200514306849740034585855265249220331224112499524872803543516835550229026866202317487865982183854289644547735468422094258005987812985781652410573021849412995334424827640579290276368775877891994597012884724731013854529819753256988052526276477915970807590088077130850329911943427345020458272431095197876039864571339127690531050065472639309398335307071784681530382192518351575091213019838766603472434289500928524692230623278226076034382488608748786823349921147554930753050411260289806530432307838849566708363270576250303540790130633358116622435108028746630605160219682131598709746562707465426235734729540731025095490308421252848509413933956206871961975581826314431759838072714268947426877992608647272386956328658704017507422653930678803350429068924726809777400429844381215802057875423769522681704404189746134699756021862043248900906226329411124209558821124941194826162164281021317943795231409669101742558585522801505946910542572537662077334428942105829119254360080364786102050755372055966764186011476086221913868978705982669145776149363527422529450268856026525336599015914419320276512135910395552341881712938884558271025903589031267870513100847368676697036876231548150277983228517323741060811611840953679370012871390498038269169153837924337571648791955216061142322004712961822846447863014225042465296719698039017058125787865275280898845356700366701388478023842977671962227276581214316697087061012814130127447290728939715755630948586402253616095047281507115490842144612142614858610453235664933066741533304840301794630598092887817089743991860142718583648754162059522317763404329347168632468212940300049096108161560869690089415751496286758395222938164790810486388204113945130727358512579371322541077050033368149995888916265663595535768971755576231536495558387533009528699565009968548843115331239834870360145975248329349257754073725487903632861839400790244603868685268965127141018416052457712724012258183188903689212258350626766953240205860833928559561720167779209897895445944285677023233364368958204692690012647843958306955876078802965843029573281287057111920484105702541631201169925874293910709710508752658496645781193051930749906868935407728236070866069023199815094851638089133147225126993873391869380995123616304604407584787426770927340180855771784488685195761956011758103927192600641915467245412299595252906393634665262117326081172915659453118539453979182604529160098709062409013188789168948187988638245220170005943121860145985392552850782032584714716474370319698584127987199983948685079354012221140250328272695071072032037374161153249159155076776738471255489076646228814543243570488060579755008480213667717804930885595526279841082720284324348928644280647644134486424885452687410699354993184017745326720347604218240706591245684673888844453473066000214577836866960731487200543234225637827814817023288861228475243160374848090735008872912179928950244028694206126390190984658707078892627544920759336975175499245128248502490421737087801024187208372389616558787713503852720836164842758004138679324405044470636169689702752840452464031183353214155536560553066719834880697836233386373091510230544314061969247980894003656804626947486827741991422300628056952862649483791545154962052045390493865320524101882262358561394035118776065567461958769093946145853909680420646755442094429517783923865378468230904799260978646526794462131839022713025309871611320110919979866761281499076321175405421522159900092026062410858118683113536007269214630144658608976684449146444947609420576098188836310824273716357358443576035055482687109537658491353453370443515480075845364834817303985721269472007995423441122970482966361107397887318635552124568675072015596150802133580969763217235330696186839105123910092135861395709592136747440730136659488845933318546756767143350282424550516048130921062055279665639781018488045724770418670572191830454170209117346925889509781784599199992436951649077931465299169042895672890977548718877076775379633475975352909780348865808635980310475719962314081394748685447148319774661447807910919561998935090526644688797412796075016286799640580767692175708951660634116238382850727390315740383263235213322034695250002635699006431024448664393973936906114769748607031128059914273928157488230418561179791515802088788638777649768721888089241363580904279063706834622687990840517640013572297118585962521455575024004291895969860140417115589247167137656931794334584776626792091825795091044415335060333551144019271373427271530675022504190748762220923525591200276362011809018144311960416400118308905861361942783323470426616923886990134536825981959679597726387163380963106046101103479487416384887494834035946147342120321098678145681235814252356225601323718818572923193180613187746840349692447213028499935125959707283345300140470514613577509540787118924966097200738693372897099220171625854692160034215161022518932254638769481068129583649231447490185027749532184276986399326444563577027836599321329114836918172532937505679199887393852158978729302426765208894113431429175213577851945163454679023760388473048219107935764517898739970880073038625679703668652618162581188104355396858276067367027532409875679760325489592110138389602371331466439742494529391025233482795127226438788202457064286846317407199532615885023621358934088828150084321527364479839862634470192787758827539026764131499094106387230107003967383877293226674185886770085184041028968283219318254737080474705870145723488823897596928754273121259783608583230222816612958608338392590084786344716505670243905201830700249076266458976134331595551535786191163745568764106529899134015891009356192127951934625545131260157271049009291699692082231982164654345093346736224888187895189970211566603722878595152146136823602681717011256816354332861182632094016824183277891282320846579973105709188148626856275446800920518858630038676314478022847130777404840842427703653396832360285655264572498018511133792284529910566693172707322439526859586111563405783318423323738104938053574106900093934139262579551065568051521359256218753441446518785754004629237269085146932555530572133013689591330617548132659474659715351461148021187906441512461169628201761374314032693624041883080290705590808860688583898093456166733949362769298790230400335592464119170057987047527518176547173364231120260163347865735445186485696706840521342702911021192503604170434954581680985363447805389811458915773297325204312763079464419068795089490329846522975224044299736948317010013589943033608355462800889311413637028416845842380497152827123279762600656628983100597982911128013301710146554633187271594400700257658786717754799600097997763935442197803173013283020894789627388794958145047530428648250034772102130862588936511298987718791100044723703617891132757332308567966822167226964939183840816468730192533956760935737672848547358713523917644588193728851058318184641295239208050500830361522590694878671705747396821684887587280460571831810862147007419546953846136429512168770008247526066947323404836207134851342020994176877816406149488475457042561412742533101681801398077924572784904477257195970055992464483442938251261708961057439158168912012877183082405217865437858481490454976883980762661599666548513293340415103826979907306985221569431290058453339077031791331374193691845502546253139583881248317050817054557457767904878174968997604093469338654664154715539261755629278280066679758443431106330317651514739452003561307884161876176626211355276622136095161015683967700106986538893887604390856787263969362856660139759004725067219236782515390595386389591271941133072773352354878870133297987732769897504102818554580654078023942567190688678848838824343668795120018018213854261984228633506678209109360832231870057238051479080855098105672663741616487960275039237318315905750588711841350361240941341204270917648839259127418099401755762245188852971770114162960429310271413431274397812589043613823746748848393902968946199648634809093189317604671206879688981503074370127958993807097733314019545043718073960354059183074845174240148396566310175905711943270896323541503747654633702916365667830318421340238879634377253775627617022734967651053172084934231846015664375529444488968633483003387781829567219869856772529299854165632268962498024751399590794742758317432838008530115712117751173022329389102962548850653171693193483375976951155090830622691925646392706308305343504017905237419064024511550775892942538814194363176180211275495439762787362803792954814480860233072090855739383496628668120244669385965970856214441080675027767326560272859214836568317058887332286715001184810805779382584440211953233162410897907179535940083347838846012341017770805926666974021977542098646172194871425538397232961688346669585493552873110774952405817087821353940436759220936801064954772899531044802518124748399126480819474727893851986136414074876862447349257380944683747736400766381631799921781356142375145328457033625073454663678432172130975222576037860142139545781887740681639899308482392461746340893265927648364284765901159676190136867487052656767007191672972025230440858912747255034063784408135987961304519283622753737652017278733418283551439395023471868788810251573829893834258266511828022997877146378299730784424168480678136001106354804575715422908186767704030048213635205142541991440033373741458446015867981942730286571833771424466260563331252919696807966635628590236580713719121701964039572686317115560823884729851503054015713820801139614541379189102524250531376506946781873925233117773692295456691002437035410557904029355674769169128396583473328262508259795526031145662421511676047391965612261180123968589337287812957338103816806189507832964209827383797845520631923487074312550640546242912597737788624368861592852852815542327561340349881894138171577090619871422852332599409004602490383558913957552875001972703513484293717191229810065883994465938648950443185951577881960867324225298783833710548775356178933326886165851269537641650210811728233837791024186896888437979947959995589586026770644387280917799097672663196307517784416376169632517136236810353261903995037550787301155857420907458859366542667783906464060058787254010271872937153212097208081907423449450993768206904009158685257958975373048399389170420387430553112488451766103193517126326337515448087849805012506591012623772172309989822566460752982236418874657559831288435170338330668737064399736756286860056936284503642971225418634325470217135898080914990955840975356385605429552456308584853104498209768435571983708147140150821473677250887634591652536030782242089057523968004428416842943287487310318928844563155329512792280580272381040557816674385183409898594069097104194645220620052267852456599163950408360402780104413243461510326118318184267930858351896889554865620882541390934774978252263868643651512331479242934690669338389779360901434989891381223569265195617093017029350053570258263977002373764235616148123637682999744441198158836570635713756547876472797945154011258406454697923442460998549418616711618900088434977053531929272518471761668951301719175530261434150065338736339702542325982356514488722873022120860933527337948352030146935307849848137634242714199505543041841589661556035996398067441747916851151981544538566664643030657508907010864449084221618787547982058183066411134429268712094115557654496190307424149911702209849757979299010724597339984510620342828992066709492546553392889415360498311812293234231356743169020419443718085982163783340818066938515191307827914343487564716372716384876969437181619502245175718481570626902738260444731620557147713549064087257250502105402208563425005377981221550497510967641307689698620860751950739638955597790709535206056385798605377796840436457784503841598205910526129976494553524459804713913161520938198467850980639545003456315376763922334356984513586967903225462447303502340713672025006263370339782861132748635192579182277521506390783839039384027389842765658358305069914494395386072270714722775854287816098145080546105134798229943793035415595636341928053486541495728383782828345370813624113433941440137510722206273590322902076932884357063584762224759426897315099944510668681165255351064317335759909284172190840081823791360283588586630534000805432134532282737917662599236887505847372717264311542003006169484803327765307695411640275776059833003911775063011996871546760736331100991811650067585098491794111888999481572085896036836064822383714698911896902248875620124901702244127462847331442975809461997346175431700894878244611956823425661753887265466068016013892271132416326439366898028794977202011595258349600421591471294971452227296003188459788111133529571219614294462461980509568930227090479341778035180633530894286909426019994903655085904430003777934823583187462418198635015193323376350928797358022898113972284737123698062289856540644818438533218927718526716660542596974718621535022285606874779865487831820926428469791894126649871537789242962690739632534018099749046331668072306824488166079216054702570719774927643403580423683003068697245748709400830908822652516435387069672665701260034751725716007084164110068836980074839546457881074780591386905312520184640252989664525586241470761434629034335383682823397643911627213168748915066081961083236604198169238456121890464363911967933682571957487716269179028825513493568750471407753098274903452668676698757712173118610419121349606215500035187742280144343363191250014944266695102136076898588004595032332579515704022435068976514593430342040233077039676029793523129492364109420005440573337686972919769546270774224187583162569904605135498950472781820484370229505812497922135148189455149146690648175178057151467707081373095769623634881783389590877423924715935391061314763920020051370261758335744698994888280197015632138949574224767106702901796313657559165376512954096816276639428616983529237536435256122397672502564442125716822657407003613324197136399285038265557304638627897068148548013157313253109433767924262996165261405683124751670316784982797062194933593456269731460610854125193051189059311108391302277495789865781296396261370156782021169223239290972642491156132075011189301050404703207787163771267654166275916689068119091242464428740605531008928486551738875101328071029522222170145573152542546316087173530222514933139683654564780590374778237150190529467683722932967370843824658613653231512196050170054440308605672565210319671156052939063356257337416670410101358960147768109781374901343836814462619504843898760143704637109068116068168700199676876070468678955014081351847401862588922295923274677214035834555496833961891307722701010955512253731575299296632709987646912748023419057745768894799039281611457593928952171927303150840333332712914092950814872520650432636008905407079871283376616413387580864900352769727499658773600566652290044894244472407059861009652065522114711022053695909824270672704567143956144093895948736555342869523584329865593525623368107823522624390751196420728662371993153833814177047507138263143267742497251345870130901738419302593605400123788815744553994008553171387719173973655053578249464637441495779272526634470215648015039590246317629861814372470043940086357226432685788271723665391469874994233693053546663076868468148729054169371538992824094633317584185007707060158397298506199678991715564568945821466786573988126558962986941463636306914976543572339620813215288684559477001646318993364998368720212672091052829683587145400757414247866120900064284863662457940814151027254998101345897424679948559442246798590484924119731189829865390861850008287955220401038451113274344071011501973521006878926058213891708841629580710280099859793006362807593305532070365529321027917261454714305094146810820713905885983159116655244889686584090548932857389283947786855734674888726288864318931045295260905424444528824853225263871014351097198598771875494709308976822312723766242175976232529813836768094008411090619674975716393250449640987961439678974328480910297473424637420415383224622936663266684800980025310614503798901000794506353232071929117168301704642497071949474260516227115446819911451767501948963876420120536518355952598898254209815322407688267894195552063787276615214484054510360669426553533287145649576450209784209134253562177435148657608946463697351711631583532128004642559361255459553203310903002600446222444849100317394697244309355332371298328832769538758087220246833392409228491452587414899235947044078536209683572935651491706324008205111742489013781786922706152736628868424617822489555969656004615299287755542435333490370468219979026265273776012527713111693582479290129995678171042015956179193545291877201165289111913677980103456129218022370652132119825095697797160497517346196126890392223781762322745053133315842991776206037766539114767584646000987666373819556903094731320000295935189235310087785420317200925061124841532733538235072384200898771276346098916425040260687298741717019530589109982794014692907848333733194521131098286106806514337957020748769711059479474235145655256383293969497024794469839351258104515905933696022971353436323511547522966723442723445273138219296511737768797046512142851385570557897599116181129505648788379250154169106471534824893022675743103761183112100502906169182563811123774105753643607538940242296199333264263546430712241421564936853579294527510267302197051968617691708878983952538905379276319864549699858017759221692674900354277055459117982517545622525795510665402187139636940619400181396970017966834121175470291962267286166562252895460487748979430019815411302181680628622963768442064742608877932597050387054325769005047418443697659492444347151215352513581260336568295414859252882209538912680132009390005378288877613078563187157711326499993607083017884239908406392228196666262189854159189905647551602437434828206070208470334947189509867094765035677806820347800804879613396473408524018162005708372566739850126416968731638991738476570316030485984281648400401943460862063417049690999101578740306772904111684543442596832157932761605302080980956163307552813949917163117018838104436905734631042818770781173742667991289592802385623876618739279514434274077889793317355100231596202388286490631706754926660095297681567832242150051918319674275355317954290318380441186600415105463561876869406944368038178862349613298981732044296333548069259117449332682053963497112786908382679173157731623697880654046650328105143085601663671756146897947198963461427924844072391905443651440273002382390318068055556023461640804953835787832385059850993500550289052093117150622287316234726096781424772306534327899943894995475641302941388777752425907470639498237127373193105378770913100274402324795294297978124470875061579525818144173856293450323458425501073690622035260867364280617456123551233436240819484870427742315955915819328742404754625349430531239868850372657771440599913879648153862157921141673364537560623079785325374806645776734142931922339202863559364136163557342577002065276587966044993659626602191362112215329505427868865838044090306398817686431588086779678816418701046788185252900334533705947616517518251798499010857730382211845574754120543436572866396848752859884527636228249886826565767429873273230078108988836700126431699241044317002339675044520706629384825697516974719872578934048013784269602169791672514887012162019979221007987370882403762357224097545863811782776374719799775031104541180394501465691983788920785797058583330546455313112812573275283568796893510856479337963648910650446048522358707547766262118358339524389485597050600642364138009960934568655819904234193913634599660951864536756567929357145851152765354811293690723579047956960757289987442959785808438748974012257786936063687451459859008203968905583424627217659618908909840481321346182502632593932198695501409853994329074634898381552084096119677547745073235860053941699340648144015070053069592075567598359460793613044746505517636425801839550205663371128228734252465120646947082540180130803946664024216110766228714197190877639848666326447175731114028532706503724656164377411153426025164143658443445990980401442992309651687485976572525339011909615487131219910586205895321429553262768811113495286485479337918356571792296897148427725062775489359500608794710121350815882805439840990344751093955439121771972811531664778525918222452368775534105038971857700111695002005191125452104658761101525173247591551870974326569364735939258361568563585305399102764480418986842203742471519473918334087112128167597573234523298182499089066608316078852003974523229682525084855850866584029802237231169116923363036929250559868011469303769381961448396918256747053975864159856023529190382311808302687590213272652087845575645927134931716119577355929031382283080319314591254824079931651630379714339862553956622796429372547217226325702068736202435506345017817692628841038894912859816484221432154736412142982664673387895878637679791407704547625960815699401517881791694901115260675632269198719367823816730023124220434931761556449876019575832313838150687263118419047778650106767713090591886860610235523438825661564433632276558225085597531082050172481127230051744486981857782767805877536729995418515425988745054762244033186760743719513583357454815990457142933290437507008411363424604756850343802162215357242730991948413045101279328140527489460177916418656739414296496509837160300779220893239934580920995069146860134158097381039158904765997521297887172896443909513569924872296356452538189231244325433260569705198402862123977717849905027185198446490282738584638612617534632416882636738477814679492601081693414156938273078037740173827717924890075910810772701547853425250740722234902048814861238535424333904408983967913838446451509617154272298438423910556513579165331387829608147141631772204462078468544524018959749084960331205477468877580560773681559744647367028042763997713944848085944173214605251986878375913953046802390540160529979727856869731570673125290727424263640912909378871236480457793603863917945571582100825754326647833804581896726194973222962128949605298075538718727796317081126619126285926603686629473035393707760044465977037202145335092353662569433837918643194758711959092246678317147061074102053140594708710241885698051291296502466196847457294954810256253940335797184139043235015036603219445011757030492576542061720537041964634802192010493398576036277905306435379824644393197329941320037365414778859263440144069981542266409915443429766235121449911999370032541902012470106871225998452656224313943454252431378198851912841722935757329266493431363160449770383142581342946624129702717948875616027365959319491388109784395380144088252406302074193882343301607320653062079857354390613334187229870471004033798717730333872085299241521130231453987390232769954767172283884945359653380246653655318947122414929060307976973230044903042913239308152843618110886682857477224497593419804961538545988391610366076319285525629188214999680355568724499839210579006657289874217529658292109611588934690486833792099417974426547323832918005424315218281300704428966105848407082348149217280583859417804094756952691945237674517346996424520549778082346152876915519483523275907236867208772120087636447909540573175502739077207032913663783203131442355097148487035096954061426935529156282647289111721788234063530741355846608577105240248452983572524550263850260942472397732230419521200315299973711095922228628840829612862848658232147943651165061533264042664460031437414462643762095763809399563423728345433796425536192012705612639208747830730115177439709641998620895721702931735489898975180058150197262581496649928371961068203701459906012846762766555452280999192019575545646265435192893014826525120156385319948056879924081484400979909044475603321156154814425740563024136974701277813055675443869845674465619284555208853855553479159491504841703584282201794056451999777985978295041349940669298266047126831979420633185757416992362029293270702738097096330268053730621090982278049190220880290786102280636875901073970733483372891593619247377550817019857081627499614971376094619241752180665675826352265509249139637981802266973294322227531618641967453483625558318059548693347774041028217161112910867753144466196804238941608559769353687779326367870958494352612470557126630194198218597488414434734229246555567829152421505907165007349974185181519900974606587096422276250938556321713154972848444625893846439675155895872006664578596222665213640561325813671159200939442736746292214454737185353131889911537644757480296452455609570685437525698391624242627460265622134292677278966742344948711372005820469586010385495095507852874582990842978167992139931208192265589400213916814434293645584234403927405892580686322918750953423119136936815967354119577714736797565939813616300491858855416444440578231080728502860065369930349079193304950880981026153953066087619192131478824220583681507186815229580954708604742752977137441818902005363576390015487411553912437865573212205344415836237343829352945276427513395744347956189893929623470864920224537537130526889957742979547757140568862889629563442956980502714708798670818908224446566726472893968958777354984862984128127879018373267925228756410252874914199135713608243519450719267715804920026489991216910193232796600919725738227138149377664536802624449021584813853842892452170495012671255411272019623020415332104586407907745723395015230138612795100995105217795083992938391430141325810839815243219600624929337914282437106623222568707711229354601868212044566263436180184063355058980029268483545991650191834825395135526882761441472830389718686642794406713912282741679747733846279475314358351114013376682466432502456675672516873565319538577683830995117688526222535978738637905084780225925717222013771282175930009554697637684277595388003051372528735993919040875711404030241365044942316517768515614616172196525512437581860561011226100939297325671837496660126706889632785891647353950099787124501951419649245306720702170211381330110936584820954204889296334806284257437995279960580624159243654837600935420896643814399017257598608861731390438342463799521432205122233781452165723117595006581128370096705071603392993157579050378541172038254943095400438419166778177730855373248770957395015639142852912832633312503406126631762534348794688762087673823022768610887009624701160520507902807642289369377318313030674342263688650535244632716907547427044580627680167000909807879764729862242112411683711863289089967618261612463414404257229504725227669770064452841688022720419148806695884590790971753555128728684094663068579142091622668778085051104111627428312867067549961106953369331624378883885685508939300442529475623728939792547609696698141546636758960619346132870338019631348713987308965482426860268375691429267502798037905188812036104293935538835832235963428896104783494893044880039295593779991321663203943698320402358944938032198547136241814375036222589827308628869492882581903783126729196404946144119507326203546705138728418647760879988275893538341048337894278454886870911063451013788370114987723758395715101456288183237319148767201011624124282221089989314304270102917539264589459150403830286805279006130328956087652300350412936386235572490136316269657645607069710316306529432512896253675041141929258524309546111385925225541735542430956954636342440664237998831163640018590832901293006687507791465256635345507701251773218975255868740252715086743813608567468921601392199370201301255600396098925970827971507175663991350154210735157693975034182567540787256562456102936552696219617164412431848100186243843996097577482570788630718433435892273591078133546040095679074526253334400507726966331041318455596048887258997629373358967831132119598315662867097342665082437956577213527970949969709000727226149157119655618058015902678099844865038880923458075504658836961555228620029372577376147153726385776175050099339569519929633913577957898567473767542096946995695991417319016580858462888634251321647990223307627514956408649218783027870468196225114047289092693241497884331854977472092527344636469462844825423507628901592381485396081907886945965853464140691384955193306191580015963949016336815877900462973940827160872312970121637579770150922339744461725824301343310648588450763117723945909897062427612799500045620392921490999169915871853407722606277039710507253455506982577278572213575304459368678364414406199155749017541711355109381788936805917616783483881848511783453805568787849984637635175075559291157667267752087799244198371017336141966560946128943880265740337063139641443896891796226139299935862680860450239689804436977741998316651839701283219058990361893266079052819377581255725501394038371016003328713334298321724248154082720944238792697946055558119356464289863919074934864136555084919813914851436175672752363946288060036952078392114346053122965027617405467188943388261257974695892088559253565612964285604812786462891168088510380115568078139486290342803610011880008856408522579833099040285663972080623611245309874916869251115515204779429606206538137351388987958997805071087321416547631910212032360473988368288280955947163433469714339320083778379493880522493329680183150173011759118915291518902516546315769034483494278212992723615266081902740327653350437060255219036247151073031748292436001904436803253960259705775244421049548075170107729270050057034723114400948610962603824206935095328641268507419208713395140343374899328480231249055414482334243248262907724090816857277260695379166981197093065569487527734054097730197386427704048169762195249377599672076732558854832158433424697134597248834164169935901926719211611637318734461915190183798022982658832961193226193297711907445782727792778003512981486315388843144968830566447278923434872995040555189335368390400582165774191422493863575511276308645366623375666737347378818232263326528275591105037943461128670289056919923033980967869595993700469016291404558482744918511385901355368713522146977693205321758553578429290483785821781367429940744496877244042250998609707093470975234422524976083079174518939674787952497376095851987476418868999295142534595608720212515910740406845046114639832281208042856470390435790431563635297954994857354867475614952582799763554443873888508968279579552236009124098829199353938876995971032528821794929504086898514351170064846605113700685317196650953901882255578076159815788539765561197290523616938116827890010684583633226963660686631674520456718571137363185242770221188930095810383826713438134676375295555356271599575292428027612683185354306190198937454716721841123351738761377431731622570853553196009541281863224279026780902344807322655196113963367981549124289562756903984375562659761114722494682608385712479388263600091264187249084332033827740150913578083105490176862406768022377957611659119522567354971164219577868427531505482465811636953379783359194019664344136756952767327146881749642393593624211287781044757825753936346748424856698734066108918214096681895732174695092956683973718363057221186927109539649221575079060532940005887349429460568960017336974221575638314138718931125289801305516777044488302167960882260300997451706054803948431925697190590060600534199953297863816175189969669930653708522512587117570379398132277242831890569724256138424956853128198224367262989015763082363837643647809863234614607565928994532025382590205373077530860911681377093258784959921706461862235478556057608159979134129145011724549644315685284144253697705857781892164766147488768350651464257123210982515949188231924712075550405216697728886254599237777769129572108833255707620116733226441783385618637016525975165223785759999009771665258550229314944393238032890606520929191757617487002313164421127801264359820726313686072381436421803428013432068779247855490973373228819884050187745376617650289740559496238748829806044553299975918914615276050711955330663319824368346531967212352923841240016594777049987098193052832454754084789595058315882857201022909282096237858666529081308303706792336758432560184500780937035142109133356722386650112127182236484843044482991935775257619581731043715880146594719519954262837869336065853881446121489229961223790897256522620678263473630861476339358773666890812460608171159679670869966865597134519869349883479878862682652225450225906007223374194177991180285970729261139833082184395646807889843457504807644484271198324456802264147393611652257749750199683410768647544097909255069910845835349000161820364836640736215331835015954977721329786083568003402500655645715745461542657643351172034034024204621282895088854407283420545762344800723645095204558665585112722401919981650273389168604916822367927877489735891183067744572556810017113951143346428616324683230414815662923069967769411190870064081767621949028647529885778602892093912800451277206281804709502957007639768283913043121643393560544781634120359822347286282546570146064383842884792599970221516727656834004488087040152383364130720840557905319264091316568148973721741719577898430050108830985972281614462010480084555789742497660567293637013822808092881748428719713446005084791468842165854945268571008489891529782884573217656289692421447233230613761879031933118318483050595080075126088791477320201462972210963941977449014056694315281213299333310915426500889809181922521818432447768011476232567445980055499210166829901398817743497333736249578869767725010607220722980145022200265445669160337518224352405222155980511642738074236487020127212574295154474655343347467670590659078991841106447855884274307441072173778693638945013577684514012932270135458075386423203440858224155992502653449595992465041816532050822427582747660319721690601194215076825158572796108922855802552564794674216543670034750927045740303944446279725113854062913586900312988003189409742792518914390662436091616384951019110787957284089718816793089025374892899657111136282855192904817620603632113856997373618304850923459935731080712147427220149357152744475112708349174123516389664479702997138516254862342794278458301550857740958577483499569447541634360884806900332595823361641782523196549163983257784773645201619432946105113637114397433400032332776876337074229592930578343960435592770975277310451585656278575766219624335172711964668119683531907741255544781802451987965684056760144071095546323535421706789113531969148496149893795073737533073133690616814157132353643485140170615237376460221357791380784031993446852068992676227067677121698866704555920013192843706092878417998971498836676653223798383858955662597786229857618293200607851010567896096245117487134710288991840375546993286607624422721458449213979766677002690258166927642020683726882075529240543097977769203570063537302755137618000649695395296501420323952837396368786479333019322145981458635135944337220304697283544384620375089627080123022748755461085966822778952880855399944349574890374753805321253444679901008687036936936178667288564801872926530856277831613853875462626717394704122802366622657476140092301240247320173946640270210112982350174716775211289200577323745521194001247951558748103038397632991713604274855262872782833644140607088991203107596256962127279792177584899197911882731509488484503429532571731851926057160990712972531444922617352876697387954169565855331475221620458308975872698746252404855912773074907264157137428183055532144492344718700239370907804382589377409135571009893310485612027298231465837823324416178038277502006746186129531337741956104502532397215429529392660278243235744797576685541427474187187617903699362832533133012952232973443809788632723872128161462035068519192824789643485538022727751568118276650321931860956827028178381441844511329421174115332490886023702715229807974863322671219157560125635573093731663903955856773006151170380642657682053385894347300309492247094991424630536569491548954194980382724537032714412851246810579023678835784149074523662362954499104981604849157836694258722553300123718009068617230424406856482572926162152136274821138054950740626459568275805619024869123343701215751067441729855469498902023854488541615126383409328430184976625472275884707939881562141399182094631328488326832192231241358034818211358765960543415039462642765663713028014012126806929417703074929809720710946647461235455883021360717101814681611771361537428943948001935105782301795528190618136469724629538873772858803278578213597974607264218702748178121400495340723293215961922272097256081609289911083828838917480031838895761953611350853535143093056538594647525113040922765513897527155043361474493770792334168513498290530226479597581027786845292465442459973043908773428276644416898169044082942630714426836878159298232304672233782019711172053700442250018756849412430982700850178121134105550159046821322235299905304623377052981208782200824809741830694793386315482892572070751460805871876821126214258581212795820246944823699964353640217318775480491215160105403503759086539416878688700739384120609615673610732685594936397082404812971673584217185921553569519472885902915053921471244919404771827364626911249615275466428443935040887824702444884055072782321176428814793222028395430517067664737100780300813845322314787739953232202266697561832875050341556013215774482463037321656674873040627908431029864587475919677323721639723199718767070686408745989726798655793248987947759965015461529473271626044493988727152155918132520333132803889195368200200367047892743720134541703974244960583876109121073593496555546899922954620181585525512078445087048805908770303173423869207618030085876563642729553149953844788613580482207690546969464750283962440288757958928351006798785083041516122902756586671747427403759863233858571250883199260183659141478291603322490127533258226194400630829046679965385211572219994667198457024910049749594836699598928791382006477406787484873400932401362782604819082093898524500009174887552530122469175173729381886788614996022024205925173579380510175560908253509575031596748893320385071536717177871375666164805097313768861427361938694210387448157740320697878127200016675680170878961139378326424265794179797077888928363942047034115065875744977314536308758729201360828389136111418176556601694783984863436656286072005597575404028787693714879508843662545397826627762326567604797903964423092227218329897329423531421564902986083498243662754609878999161352240627728577962515407116884284335431538348539957710908212643278735084148074464034407193769514020051543009334209076153786152694896460713233485495674177650942383538484114759402925438671728388927520612554171951589503448173160572468493852578406046697081098723800019576733178582645552827204638723311573381565297454112764350294795587366306636559025204897147121640681806769443024787864862270405321002453201128356449112171625074749147985963115035128645940748925136705024509097248346480287758688618248250408736843425975287411516223958907037945479223727352931300915811090361284490503933239892954185072634992285464172051781253062527265710281040296504643674243172830784307336959372221003597426944436027696276861133787438063243129861624654362566563109968340978387822470145845220748836440730228517281652150864158796926251259739568088574075261016581637695500169866036590905550511892553035428900752452909803433990748537052820162597151902013273297104974763434413760647547778575788907859027064150684092820127676997631305761427261739637456035509137311287725664183677814863266642000988828753740274294217371881689086043427204843870103719521527150086589263088286735194403190562044106334765378497298807780102950174649151616783267883020349826855363992034887398752438272500668970123417538426139503097831692064773748341171801479994665149795946398428758420387218690992643073466476030838133772592569641439563878543696394044974570617882357100002769730216815611624745319499419004550993301698885779692436735909409719933391192842407467126780544398464238454631352144144166459123803672728551699964441883345033303963992199104257677217419856128280926787380338311722322056476606917994368739090219048563786665255075590711653631307600457193594082371125679276806302866025630635770192579283536427214622545677916859383204462133517637852995119913500347017717366409414490859772131703082613596065729208465319517105844389235562598899879922018950574404119227467590388936090883198214176257442744688179544244265988911518073488632033330379389083005787473494558631482324105639628615099499105415230332132406539628879087034800528899336739255224736709868384790829792899406957117456180900363930495693088254464285855530986125912822050761057287729193692360334462705236089913972718556984782148946324934434472547016199527734836872943980384534555414088700006566819898998501530145159152691894932234162009234982644179905755024696338878006765842124353932363309293654467596617087318483660053596458586725180177477722210202360272532078173867374813115760586907294303599894329137946755164070034487663977209562717446369954554276693743141633209941891915780753573813131872301117537220822109970485024837963212392713036025891603752963129234768392836377902255199163242518509858587651411801076746554119677837680819208126299921490191732994319742338644239546079442709746583858768040913740474994303392895207213370748604214351241638533691311072546734232309829791817533852722685044106362801503999691989730759809784601876241873010668693458618974923412044930830533193118402466332766176649411482934513548847882429466648855673472197214277861243557728217952293891249208028017330658513746978760589012710575340670307535558081726019821073491336634000770029757401558867996206156627077357180892011839758289867034290033932677011601057820869075172201587370496907657608523138015976253184047439492504042808018400139419504231808605670471853058684641538717684037446464364425903181821444914594454545423333087862243002010715747529807464129524792142115126890281603552450512623801230300853152920112227428538891430067430130245449006904165008847308174282370807745776846581808335639113446899069943441638804639420253614741247941373765134164873264937867191069303141108389088430792609372671619358587259035557913457401165615581527920389077565030224370312012885007664409789668403742189326092269483514499811080792447371009782521162750912655021386308447395717005009460463058982245238051575617894122776204350373427480669164187514294741298670775139283018044376217925364200266434696630536703362112486158563583498805918343986027873769795452433491916069349420408100018896881134910832889612437489258948973946926112965360974892876680255876443465153946263306730001652536167688222958970006705240469242131259514176971887262546563961068072515868290805424959598955415064163184407382502109202191604560773117237906627996285183103145030277256163310120711660161080019688854756014607250678859646177205502973039018629920436894748985077945082891704292106779429879787193233369488686739435820559833372214742660438674533450160730670913573564302556352153285626471923282745121614179163265561549740048539283017182633486334773250460483230892539768461277297780433882054696940594826506428461147773963297552243328596562455357657506134949123618699794722703391962326824272981036654600695762294009820610992208440283165916317323915605086930014920154066779049443125144999436204942752710786491418088791513128847783480274204147234315945332881626680683840330392780370055425315623492479766063959044096326053649254405109163222589925167324205753298114280284059157005664981031205254632610341818114935013292927117850638350679038796931469790940839560240323765498253283426962937968015511378029415135721265895786470929340073169123154509051601430527445945645865572394163357494663105058859616612257426521582784257004802657731290336551826764148605423434454851874963998905376851899683841795998340484056483987391457917080368168568326834674799201890965896356623256971289974030714621799591505149495346798526075689575744434596452964875869398126733521859736431872464004643911982432808746244627054767868855315458564863539442761419933699772448558337317321879402588191249189441248407966142568606486431964965113229892300418188206880280727177273783532493074061103892064723083365651856107182522919575616095895203459289911854589105624538803013454588438831975481834557728712966006858336306587362164277019658057021196115616870456965393107619200860410576294882257956231594126068126830349479995998398050757145196728141941449234237051665870811803220768478387933625482368170456823487105895972252317638042038189903907161788408097930058566623013346333788061376620136388208447587702229008599130116549077386228499459799653099333351183243940757300834473961828552303658660784574686054184945720876240189793671860044815967685681896542812518475754637520169696187875131396182083584673886176292932370554114922933709671173888185348634589280265035621899567855797461731050526845710545533915487955964264409363752896092652432270807379076333037538679412361610362612330088259867793179823804018623014964100121289522650517970866175840275133161458427168167988053533892335886931523479814968521978744188615255469712742569285875437221922664104402732351278579164926984468303493044565963999865168069258539817346309281676874496146209372531034966030234059715883259618516979630145841822919580187930020184782301705328915338723777252220026445007767323506107131480112914464729631339099753248325329245723703499596558076728244587426042284944732156005739474622318738344726987592073930834713037364737739655856249665556140329357345163571865545086655988781480167848798224217331284005080265351832092237411051607264096123469982637639657594488521207340689947488072597899726158131048366938542654819386416846231820751361486886929019931111051441129914835798595377642866854810583058145741267378317111914909664525166348182873996337850393106468283417210358143109941936415941826585286066142506934576137824421099422445086274709726120606720519913742447800590253892508760561313039566130905184804493347798967877866403810573606685309614912495663774915130052155219165373597312818228430092751382336722695342687538498201663362385438762652338408037554273010774138615975698608579186595431414846484131183700824641030447429311106790981131621073912098253184310557753662327367203406677673893312669323301392088999832689647019253787628402784792247429450241243251166083071076747284779159147197416639746439478942936869584882738424976834136921332091468004346827694062266979276996400148025820260801608193771863275170040523458459607630168795203521993276160518417232963911567639225485585305770505750966277443627856736639375610515548887282789803514452619423540482738159288500204100056520129229218060926855081094306559361230628423602937743739076692013226701927535842219158458569932573182319986487161565982461484407672249482871732340388335614773416813527200866017391778099182714166510888887182263692152559502479811867250253964715338583472737361444166642256160639227498577290409973638831331706298091578283708989769452964749122569177494422296060058262895316947091706586098394310765779416247935911872761205845248756629262321260518997474969682891191664497711017679314475703288288010268374415903332897983522926510274384222451811318739697748227789824426910153560943718626469332304953494170013151537073639189198616717494548892981138103356856289622357737877600807459583491632843610876784060332415324762690281134816190287271465747690211979022468452432459283769788668642178785299366479021095270938501003172493141492094513759454964224082843441888893985682378040944363954814118627735736552853416514628197727220371987206051102104174958654324125265177121370782692780105421295855429222858294470620986863581389244202740877474046674178408808025044275586812116258757050236430393612409107931709326059774550696628381690777682326884246725117360555677024818608800001024288190935021283350952535874253269365963825212131364346940755956869012526247350618889721520270215644649140581398813325710452818157646708241934542489115034420286772751280190908503656125636898968684591450512146950117810195942402578203530534440504580550784940154044326993313535486946642108229966466487347647638348457676344358927550630002692072736492006339972530480528989758848960773222267287291491836104148125371173496377764706017302259766771205690567558558489366625936555243928799074000171655559551458063563958793348475712766583068078797303287170761772045861072835126474472789213217613980310943800103755475095198795796683585887913320943359598749479601590077516511399766844989142003720855891135340289729492385755044563834107002838259039785252101496115943504389533318990591657740280520709165172702827493277662691839144836706161225502828134582133051530319605173448968673284773798451335624537085972374550093577082204927840826785503344102856815734497158497137412528084719948478059703760348390638134202664449261391962095755384931816369331733278366800348570376846585551337126555966249361138281699335034056517004067919980875271241267748371896920508190730041558112102779278505222495724517851825050696122192457198923312780929535054773699832047195060175010451759609912186403683989689441031423029617394986876127035158545030595202248064426741203542467069817484162762449994819119048601478573648549361434660273277661401157795859754546524908068628451878231471180531364676181031754525611679348781163320970047705510800127053481794332959972916212877860145621893507748408071051659074999858956123172734769196854876301926262883791668745730882363195203023924734764467490734370556927387998005313227585737056573649272741914795326871440056978734467722961892742593548841044145752667569581515920117551532469583196049687675217943335808354869381542462489712284757644700779112563787591833003808106618427480889973975636857056947372966788229187447399659815703114582593594196092080314848434218672449936282980986499810904988756667555142567445468046453913115884635090360645915561510322530552426839043125383649539742851329575467862642915218677218322031963537249722416031158341172700349109192520511145636097041615751066705100559525134959795285502912415862452593307806939991443569874309712784396575905281086230580736968222635069795268851092321263128674052916454597818325301156047487840311772380007884814773618095964109516369404818221133365803786440675960688942883857871957150414395413755896355843916465970866103722441157121670371660357379698593566978502579455842214885467899598222630406979323163743292238475155404895273578679472976240779676643703011880100253842645542058514232534210747839285051997477218070828574525832473872901527504904714991725046662591612194012857428891987348079809721595404789999505179593687492652943112524580993559602276173885970988530936872701145922050804477085750200270681226865572345600365588684839997363241299461353117988880164178360991958395961648030662442647015970732340349173694330409472982468698191208691166158312432237166814948242642145074528922157670908677235106987290705391127070700947992824807226699043236141502398948852652057101238272415910935780814261274876865444945835710727421247293317247661959157814844125555976811117065581530408971204060194459663056580733168260372507787356842251062710874005540812330553146308916092810428161852389800801139016631224083517609554227484401694331298269355746964938955579575167637154076167268620543718598914280205728262043955616361208571267139058068383344871631104455612030362327130972519723895110221376920854741576760320483807103563457526452866171759220088289715782536436264641427707775289543937324758711940449321732321129884211678131706027786101871657864821875381706403611352568185192104509307871360208311843179401585859814034591678000318833375156595671595121700464632622100102084493115525078955071333188215808302605445989310868611040086426869296853341131791219342315979547256692329001838236962616912483457776101970043590452776381955586115817550486174461473694918917229495742579460644497340480871937614369844082071865447020608620038801191947055056549870108446761956396343183822636142015281032404593329009719728252076887873771630827324287419809329518366610888979376868914075262168939955166663837267799013287542346651106717909313419414741831718752587394283083596413861220201875706847390038572610409888880491197693608753887858661752340212302840405227346418747306536523247809730024748291913585443208943027713232827412143776620735176214254706219188130568232335208113824797043775757421504362206472477878317338329606358265676691043022542460576447817514165610110779669014963453915714737740076560144296244308359676511255071173429221600491268065297563262212808671165645979195101404692819608049475308890754915134916186395710436119957194056468880586945721348258662432681958632079232802999599407117966238215238966252220431386492201405767366533132435648071569608427825398711243439463247912250427719039241548452863684471005167188290044494251557756844041256774661953071959130076549976020032124285842337442022007696345534156430278639241144448279652508730677282393413526187448427849502332404448759102683611685735181101634369070795191741702693830396039343754370900654696120692138834819951229357725349988486772299486219702019598043078338854348610435294748278791901512504683436994728147400726173921244028033072241542324176655538568251055952646218181579223311783722133068177840090782867241169313237437406755252013779647607791331603854610301020475268165440633670493212411230768519741414024138963522106417429197577206613033299825161538253863141606376419571395554029724056685001433296629667624296984190872217204176773122654397270395464062981948893022890316743813124196446942083432381641350183713112807428664342652400921706885407892541660380897326819623112293534145532941604860443944678584436148920565942418956776095035033120690566941505731353859246111810393357293100017890866926546984490855888804061739998616268096800209239770676412580181172720767981467653427172687240435189983520793106012993585969838981698715748178925076023162134862003013482681138845250421296582255599019982015956886216133931291760064841416004827249454685155711145832448948939051143570052684012359483963412298224437494271330289262649056743189184751157902568463115052086790154635140264215860099752500293227521169521545589391021357940793311627998230632117275342214998689408176635209283850390605992734965489378036185383831556385562419547288283583149550791804521300451186963573895738019805233830810708593717599239558368213899103322141656233615373363992591035169509912699020965790452396050869849996040347239553653266999676311753216164125368472512493076254890198320457568717862862074279112692938469391144280638082088759437028247030450104221255398585917724544119986579761285320053280035094873522736309057824026231936271332013240292965858380926593707161586560282334950031326261505328291509949025093055964306657937865540333699232689510555060902242339622415711424644174632737466814604902140615034039490327221902204978439279354735086444646584639419957660945685649473585234784566536928068205384619561517704285573820266762599184931034270487378766138748539557861801250960339860001837179579811026088839095806395477480736993652812903422027405982200328715389252902735668652952855835788786627266551849598761573012868121534769735546895670080896057112956713787461987530854436740796633064386441567670704858765175146357995410499379653905924615183578871979569108075917604239154069376345320178235163147794210736104806497746138056220325933928351255976758171685961389621160006192737409295302332648510935511288782434688960210032413963193944244774753705646214301213628290980681268643052192758264146162520391105830896217306350603861779278848165283561662991797270876096173977617786938136965532758749720253105046663072490798821697579349381088401620234957143426887760161368468228909555156184695836591382014774690098588726589132289127385807517861081822938926337446057452602189979231077289101821436377728583681626198880772161566518230706878106312432752506196228816075012398409453622771932517872262672302196301605878645094462852258541108842796978930229109905053978683799672174752883816445198222914963997320057709052274354842807550038158965843153350968411267313805618086836840069514495237985649130386721100365252791375861928743204198255673413613226100682171410166404234143408164295703470460605291804369531288161229821904854467962007011295357562153590662347923997539471561359796421604001520236710538161800849723589096243709082510930190515563391850155410666756599991836157421046467844631070617394296749508298377003477795073248489634030823549227575231787174958168291379811051386809562745794160716475673779465873176070529510939594025225673650863049480272827183214147999158372416659643927759234068604172264430609565469366041407769486697385454897295825778800836116593228081313096805703707698385055412689697138684783070667450138218990391951597510421697361239884748103045976157623214897671430606135458470155110999224086398987628899277790390784183061287457240085134968167354828644955003386144438967492493506005591739648349931867072969993907967504339584798756799188365826390457067111762276504481713360640927847522204370874989194747815460930773001319516087788165711733457212052725838393491375861728815540948015868329949899828786436970714294365247053955475692559932500294419801293973501379422375154720434978044923717308306231324019254969094095275359665141165883596987640226357365482688537691955617067292253832115194165730590067988873803466075621747714159827629347674821503937782364818552062433077929475115074814953772816497780662647768785934315886407515783884587796643507632014474250239203292066524436006381810898825645437969763096993525945461541472586099426751152956506917145035643608660814179020274226409158613478727302489910040337717736105010766232773177318729278405227547301186691912819473632767106152940133871114817018540009660297823858721372871494608367386071398527083854633598309401465115184929736436236791595276078852550838383651472561965215336829381719525506187214816713556484765462459932024543549787816548130347604254438374830052406239553537760059206631365397267646886057121033497901832826940803877148502930349401087533771781271450257982297466408183771529439209779785838927134633587793114874099779157105004299381250308190013371237655333308966479644820276553948952669110476729155827194045180376614219393565870593010637561407388647816198827715533086634489616136419084292196194667974955047661087816207173856058051760020946424092331930214332407967577124377256714515613849481871813368617014750347636633061947943702949689916824886263662391528598236702408862107448134016932731004814904191863633474498881292514845299669087295251418491255897790920665676998262040262250664140830312463508019090945748182924073978182848241589880838914105948861966518332734968097905796435553655052242468480365641669590808292900832873672784586464177786913714985352410830355242599727565686019069047956435610973483931487176840460048533379900145426581072767356807536094198150331248731125105252618699460026066671289212536384340676627705984844054994774962945322150414342347890342259100546241930277583103270339248166681504541143140742274337357901317905608261213011387882124329377548733159644862173994187044330457340445418986860187650056413840183943041601218366318712926091703224378765290378499997258886389555297378904136281584175272666788294938032299122972230557366370402783955564405400103931637916656274100844040668414993344693422758241731311079697951317612789095249901764443370272096187504499875876916934876386402373774095768534029489921744081657907878674448416315394238517867350839329001721948449762516236218595181362786675901340377431854348457401764097477122098175736953014099991859218203188405862982683910406500335008406121538618587230110169448135761124952642712983316108072281297064256646654656211482240757337183921363012898335049147429250449585301331282494600119913953519691310257980831880609240009741304038050497694497623186375233127488001233091019856199684462269469113642650973277255747937458845815600595776568384494304935309163138807691914628439546849507764988002414446432934206089775877890895275807442988825108114308292006697505978855819738967424629050747078266378376599324429555342869701643345159722605146916808364756778439080948878405820512705056293981028873507931629448313002020963291860217002350393302544953534699706826422375603444440599487853632067900114840575223070482576978272293870473872736763449478369720511189973884536326131039172216163822288932202850842080678992761134587806227707478799601585517147880117766620533625163016918875056249836043246649010581086383045061592562732288329185808668426439774756034824132257824981905497929969261747701508148968177359980838836576696337260539001955120643717084202554967836150382810464276487430786029574201027323777653220931973589613048951382668486898988514656889429725531834481144217457885465659099708965426343154555886789586472714046526339365835350767405957703842511676087034735834020451124130453554612761433127403536058108915360681282529386048439007979653803010598647363658679604416966181301623273678105191081026156521844906961829565544827363929676719729723319974581050603165734479231309653549894169924509330252937617031508222591661178916245239449081402977706715722390590027255737211305918226426177042256839776811900218869068898829728064088327602132728907649920980828130797656900450160008512447227158800971890758007849004031531292451545665483842838177386375043230184319252572636941551204861638311947138411461010845539957423361590444844277835919035955378511010619750561605832922439781940699190522282562456811307678436392052813076042329606659915199420889259997016727723594118533163890882609863101098044153781835729694204807172632651177369967688413149239072368221418043101685508232307583343518793731091841036550232267080392063707444405507812812553940807760388563889086180181009783148334654862965432529566314980221359091321211714884692674379400552272407732650944963338770219699844349178299442566359328446712093781269219125563777981560643610252385056973647995243483011179423666933556545266813612197657091271284784162539317589538653939608754810767172966004641224356020858318399262826789982761742762849524587281355824490147195824980925653523201300985950457593095737642926647463102553128789575350904153397955518535390473364742310785303763146565205118080895962000565849845958589539287911296735285943344509702845377269546409176072707273173057204999437595591376374896531346759582575049900365544882394383126466622541836338306456882067220429063915180876685106823700961519741484544750980248183975639583247410972838361342768419348272910510400212567216377782774278382949709706392201114602839543338480864705303838972322069461290000057211033933740458497141735829237014330458323818095510484152579348585207024436796321461437490304716335732570527972099827693730176134857153649167926727787946118965716466686404126490230900923651758991187988766572784777405815943389238554461789253466713875750375527609314630233958953729563642614890506719047331687818316985326395627638526216989615763214916251573650957384362696591215945045949111762806427269131072884480812684815912671622550244544859845199826739945874923203230196653160536675633603181786313670555946966387623301945689089451803431158440318885542931139369000356605781638356586583085508453029238855993544386665886532360376009988553921757825566151233112206519823001978067757432450040997444947795057352404595109535083938268891469665946370329792733576694032745483642145657728705320849407354669685370377650253502478990271697107409357784294954981447740838560800910474866227796958973263388462883786946971051464625037301763158254654143895457095326295587881470346190934478117444585071515651483473374860778880036285170365711027420950490727557500362328996071818447354817622244759826818748068555507470998519292915889273885701740351865480125104783740791097128763659187908576905145001330731319527958359216759143291031161497199615377801125544337225417125941816733618970244446673894360178645520668305153039397579659574697162767156468113362727014139351965876658798439493471347751249240622295869492474392070145652176761853724211255982163813114210205257685075637696733550239714875371570866098261191660212736068680208294803473462746802956081926231559894535713525753481120686505522613365607706833681386295113123840455349491265652370037004932564603080016401068470395177785533813626045820244425733529237449117838628470658060151626744855293064524820455394101408430647712536753130924204754626522616214270184831619254577192476784040618431517855929114621239998608676674730482218769789062223927655991494374642408474683483906480005897656135254576101737056039071157279011999161775082646245375088151039109527564348504052243243934538574023985732425290155120614957667977220542614533576664327857598107391379161164663955750046009384359706038253003448796730116584317636412248889797342455168494795205348740801480392242015229161061642521636264097709532982273061532948499330708345086875143163413894887344397812684983523699134608453829354748648224713772082301316180670124186854342997520427225106511323351265238241691999686647577709162688520648317876766842286971151556138946210600980249136969986463350017336088093429374925575364600736796434922616741645994218227573938028955787096950137131494699485319685976038635667930482036258578476069197134419082821675630148428523776999265498753697952828080030400331209676294444275720215809636554674091132723987265599411949782708865347831359635637724893795901495432367705912768360145988538355997137801688511294373535591417021385245301033004522063591271870737711200988181755780269339130142929219495424243182930695050572933639246032267806425695277962723894881227601588082773722057694051565707588834697974145935945729003988760790219884960913842276247758621088252312409945586049100494737316510832319379171394283743673374036242089431513264689025154630888819884231647608818859520634553036869324459464413584485141178523287808228083272672229343604457112336450287361382455510490341423547170888669443840043873995101678626937351630090422408010106960256588904979331294108734598821688717562850719757643325912015163382844037070338043654888714515629688636179351112706224250858613082485936742349253984427981027936408682664166228443456652700848003611304245381346003923192177780389506341885513627444607925808294725021519440513771828905103392511421847705417481640404114445761834539575381806426677172481513313893388982209649086677600262995145805293842831602136059241093296299594735233518906358541212568039607872130090256875509640475165888478997714530705693872151194154546224854730049053316178496784822817111670257911421889292234466231636144862291345761321955084797981411935684461484171849905578064875258536919506501873928652000081784872356452178730055411875607398027341557028826379979113259938870239383639493625239646259832197441946300004642502114217709758071333765629709892511532410419553378944266680188100757421332041050899597190712921642249906259996684265159714060136343315417166080998808082954542654334073546365288414642685923344941361767664302705791887871866167818808619718975783471928505427249395679934003521467714369959027818405051753090072964438357423406957947963858314758209427460096680870688914589921298425841382412373848084607824347913298494564113096100365911250034802989906187858693492362046979373691406259033204095628761031017475717221212957995062573391118667906883775623398643267124619506709839211586311679264607744549493807903627622629919221893516402115735649140575554108691769025608361740050154713240373748900330214050294031794821957694729624809318310818080333578357947332961307969689943002485651002586787975016111304174555594859177394529593466551678244570631570920967924026357697007485160489240454669100114405024537072050836816991488872384961261455841193688901649465866587514687043950466200481886795465968812715208247572369245229638041715384237863543878659241456795628996336387590476905491289604379093621503113270294330486683465777896687311278755151478003905273173926478977872440161995121055625181146118121996372546999721274012537898673339692823463752757915103639477060695497125716104282694784772493117929941433740039351130776938961949671401530918875759762616259093604087026108725134744577022898844083311688643730688727232438617193963910888562266901598250441993696756387077813825794371165562939136977823490816423658628708907575433934238889152390798018084064902068404796086825803901894303415610557405681695587500052350657052143382206011172866457575296176850845317072226696026670507948509005905275743144180621884279792337247931765614378291875174003532634029269257161161789158634580319763063470882829187288280793302887462610861141599660886958382329418789610775060567358639996242419839820736250140410977136374307043186304723495626212023887392510192790597678074355891131560962951949393092837014720217557140413759316191681377784209263645671406068426261031931443881459759428625636153917396632930793874424966613094172040861793425031520073995004198712063347962406429133467215866241664974428550667201518686702154189686523959154146710014920742199166703724614733520727784023962347919653596624327481323997377839794522418081357297099043799131356356946555147639624728126730847332211738262947670666491463007416722742132380951054451733184154124942670505249323955748855776354343750074037114274900949612851024376351255184708379649954696789276688233361664841136012001366335712132863041495052610576252394150377296746029433137921413396399970488185275721360258670301346923437833620957997807870285588022042402703399909792697969308714650740307043699167971183728568441263571066434906490336783600638064354558546628513189605374334217214768943009455647233570475068020235988062866648936815279375896840524196027864616164761259369303634916653209724783809136106007995651345765716700714822853047277109615038012004939860597525413704615792918258171675354538737836726213556839649691903728394329238179385378742919510408860308240405048746011310782670938417438894300384963200467874708846765058889689015677160189665270879342981139387105728310936049932164534372615042949049436066432175259241269373025614404089711571951621917648732890322496021677241566907209777912988153720048240156427915922441035820329979231343681054046384659756363006792067540361460239671438649794921072277985424228352362741906582426151381193972089413264879991769744103556643439865427835345649079309059762733559674959883050473909447439706456315670745934560833839571954545842090855510504732405413453038292455216801631134946741950328170489704567695138635859652209930347148694113850474750011061715349730687132629548998129359446151955490950247913835436254581054752913130909669268491023702487677518024806161893157841934651216857154648279240083483174863846912173669476527733050450618830049422793366872692580287725912981561084674182104931392467048221213827774068575608728233275093875835156619114712571457984130069127306192175367158611392345614113099890655254440599902697789090962661714589341617991274773889755191929375832561484891434494657760170971911692897393055147999900545994429223939515113256049158362055793508295043908689820538230773327680130954723639008868875515371939496536532332930058208445453291223342545355415542926647099736903826649640986977435341495642613009099847478593097034228273096725697628283720453729251419739564992490881011443968872062953196517677945691181430449076099246754837466902647568098577163318414097846360557771681192928736821983060270886953428007174109879289358833837116907636465706071205357783845660937888959668742099327139133245840787848305379849472851947545697903197654234131231405522168298524339757360904694827700014925476810889273658485045424677015432454128295810614638153220600940465571989183418241241088368465690068386913494017991107613183461783913505811334344950736947983366271900314171697524851442175401712647432666428787823469098274934787147655635186757127222300720000567256748538389939181921343229474566705615294648118881713622980412168796322000888445472946216024981371841210886944706014014931131705473307516040245739532211174160616059925320103764642099542681438327377287320060907644027307842394377417610617373431868847880762591472542243506452160942206659268145135893512258205936046420386907626961484360213998742290530218182629726169624505861195041704551923367123496746223100420294466653966947285369424068565572883903232175796344013239967688176568602200803166488712786137801061328262973223789426685709856824805305281820627153623970860683631879704744498397466720360070006982565729263088183885520449746612708112272002511396105818130314148548652311623224874087257674611750731211647899752763888598296481197855896592638909155272801009928764222376547994276074943452595347735558599382551978403330500870220390326739655440273241576959469315516477003282494077372263721839472253074001282865118105478412973139241274311292216697667646929971221097625935269427083002811781193974917235992791848348200831988833218182044073240715725124927640239566226252514406213853272647530614810812239150817537568177381594199362524225517616167447477133367095154896413393047514917121969305521897132998595732292715324133651362835712292045664180649195875335241843879090745768765696585799886469534241955681074324918676956705141181771575357150039385942217278721047788554319342172461465836173163385804115938546303461538510985422945590626993250255061194186300448074343080176220985805540309186831316707269883749786040437055754729080706358853562016300696806419492450483065580448615272891603777328616411271495151313493232181227308084901122606775979905595813552030505299446195629439338539482325327296784505809297968502149908818761024445699422083513724545137769945312606380723916996429975119441915677566413160631874449625943587727895932267667941767093800411009054711683883183135994100693633884217595019430116261979342377952168117306441757739670513281643358115992107752788459852616277198699514329410185457598776876467139852000372424203549918317670196391019760769465643483439178913005770103592419555720428437514196987795689817684924882537595593225540406002517454492405068012963052776737982964934620013844454147132366366443144539004049714691746202329280166388801153621777241604501022104173445049388296263161520322948598498567584153121613502825321380903569808244553796989072131888768068897226719517209325851021977369615737377149913233921250293684229906619262485258092043840335355419490553611402224839048124563742191836469723364963571233158645363353855483604484187350083893618004450518975311066947530956105686172111748230552667611184025975405465907773571374885162838674019857598132222620321095834493116561341028857702520661764104113608442799342588937212934470866227000747566504813827650790708020885193826766948853354952166973928537400679504443337396496804910882855545219669263439251963161207533654226277888281608558321901352037680144457536373955475567929889061657102848800466407093586046578456286402322042270952653673123249868041245618237559320545994582356422759381010778974942603917626042135952386723728127108410489775246983094502692368764879682048724611872374493396265573997109900517343157028363976855758024271538109267029434714633260567734317146230888752046199907241844155422443348916491629609379356974072575311336073980464224582821435359348268201841689133829062616821217032497393122583559420662867163855871429994880535571195743472251949235583384699305647455788743758680100224551844149865221176756915777309532973736037113151762992970892540260220062581922252064630328963552831768358300396172461467270069001573975864494447666982451778668361425482159314956432815940057859013816134534176712212638879324585340121384346480402262713837876350804569152594878222631754934523765861692312315986224263832881754708498731580304431533957720021438604110791672455833560324118273871442198260173845499194010183857342544914608845015874937323670626197693228137547957910580603982560088774709433394565308339417479902601023314033806182815619080106545497469899417371905463036106361659513442348741815688760879594490373411151550938992851375181964667102897952352183691233313474570995840516742085493843871134950246288260964315376180741533743993006695836061555483873764044448914682079508610676671817625958518807542064075231410245892911851083365153689111470164721106848750906071880151553636650895257677448591185460996715622963959542374253593835939956858462366849398630684406412253362210549890319196664313750607424583530933047004502920586618727033698163152827430678419160666159041446564527348783399762963112399025099777275176761369775394321457686502243373988819986965759897003445100027800995047053282483310309061918259499768962734936451954761431667427318007592053765186109903356935931391907799429020007364694283593857483504789272963451516342858687090975396108514901110098584418576189257249072930571458200991774446522208297026418083057222560686565854704856694538972581587489753335214925856917845843046498233340810677757148260345918930389027886901102562574142405324002334036783479988565646642678126519014683522508340454816039417244765774912448197217774248950997014746004973209873898796628360942920444892381054115725069137455227018058607140995205519938828514649212242755075879320739866545771845972140965792244539664312764632974538771483128026951754605391891146969092268625412893757782402721770081897706152917579370610148968224712279323261497143098895536417034911122536909916406807335779960515383255461396833321866032153611274668258379858838934551686115112757502264989185904206764189724595504760112277237055425301270650441896304172313003502035225113290270563563515524100625420011696722694828387706385640272504612018833368978344547719434454428812235004644763182655905869533828372846478954692919831388950445052668620891435870425665829989027923903448657325015909764852068022025537732636498017650848081834988369654697935393221405999884884699563186385517596054703172171905636336086271387523970635222002288917626508175222168233100569514790863224512107311084483223478800505224793124807958745346285163049431231793796034417646514498655792986830110724637093667139866120693035243619620787755317044904397671989073804699672088497956290631460437725453420451603897499592522805317380075850458986169645842394778980282863511622343136875642393607563347496717696825641245850899725240644544819375652303874912555750238560873007563593314036790078299768017227042345423853867973868920187715974595241245562438496817181624429061835570608725000447305326143604350694238828878816911364540554470680313247643396540600787031825537376927523963771767841008489180002848366154976139098194056111471725348084302604398497538189286635925085076095338416180220404646607540297082994164067198270064768935130374041709302541900088242878966545491450280003249458574686020954643513759237832499751998646019323788450419040209762806997836095484594160260166488162223245197461333618909726177922584631481826964050049253611770037293258962053149278698939630217442708261682810047424096661578005199808121249495884094464327386030851516018271730375340829390069681000021391518772893112345806058415937725161046664693829834708615105742956198463585225804633794533102742075245686209823010081302182831877785605470670726030275670326643442653414873671621804889133146259974958027345772894597922584636020409369491097705972811776572386469768864862490961591352378467837514770508902019111530982794449667682874599581852182122897554795232184403187882432812307403649925471373463063393624656321713869591544207240521670715280773884301899510993671273721495580446803945881087643161248565891083006699678729629159521042758481046692404183687713632749465316060874924888429422809177268177470252660800520916430583179221472121224879501058436225201466440218656210425267708869667001760002189378176080394721147997201789980953494181175436300060665042969156750165313543229039282138415986336329966162744661250091529493310246456800221549310553261828705251140195188782472645747547536348081131214357830682320779730315771819556093658801148732871632550097228119094654818586305045320322252123841498885386657042532497906464705001750700863175292773002397376427597714892516933942057216017919371952169305168984955909666459781155780272188533274232538648028873768785820995362976375199554787876505080216047511492105566893767114094166503931204603804605670949783522289115006962216948879108009956733102924963409796617115606544784737464647439010234616522020185736391615369118843419064993621606522412046635940897394882219998138257697351886352513757679284875856098600865746736249057608194248208512298159634245412081964687179048328157831507165001760450382348805952173878422967111320057298336849591446390711261913964968181061847229218197089287817703181860738084167007177300708763324734558338545198011910934269298055713857894593960118375761541770957263235371072746049376920348327626053343220933658508842707743089585361739343813498300885659996514285958101187686057481305064405874460848154849114529313544200362571834677406135266790761086127487032515330934415756186762501008367802563791974091293174639326570140178220101512776916132068996482182074346993183488029199238113902676720043592790515496879122516518000136128759568740356678667181141092245337410098090835508505082465849190531901990146235249478158249856173086805982844447692333525277403522553010570147942074789349373443104815847861698963919700222629190692085502700594231296968006360080174086385025679133466221835215500610063654779824012340298246102554814409963541718088054630881606374705297570532428949438644903628956757465712410950376449694825700009814450485978842041285681440402809555195747418389207624841717125158658866591213001578012616016755100105400522415730829745808818880705619673614209738198842458447690068976612251221497243309097379074868447474483194437243545950511013408189224086956829087146121945301779607206448058364006666273288932853509389856226143827454397227436897425369521834876886199236263867192971993464136730861810944013635424516304775227101262933303511599817393100022644656537414380492847086708578588833310171837787762207321489314623726634918428408965334597369478308143096104050635146596068086663978602865284678809462700541963784556879677020232967692035180020574739498703704316416414134870028632897145673011928317462818714668151659235720981410353152168430854851214144908993205913173216013543272205263376055886390146838905850438414009522193415793620918829052811881266501357912418355552848578244898316955338163105024131735639185819786205664752683661709681275255686316795892733262238265690206085294852294256382515080750477648172278048367679878538603850209830397958714456042028354806370185016663850175530583054696285720351744729863031326727729018958444560750701242482630329255191375223166635186962163672856268024488457275923452976478662082968603744706851836968582911370890722178790705782725700617047855838286840182995184286527995450073010549859452887466295832434423182031610439341260193512321531059592501146884467656968109225238907178313722097992472670221902703758179884144917511898122083016260016380676315934726537581961203184712672981182411590788138499048585906533030174870147296915959307547884434553628184613774613339092854583670821426411834250911929235957289227351395936105320306270491543156285922820370077235434848997272543961523146325995274631722747899830771450668083903195129420121548840982962744316605204487378499115955664168496928252890101917894282795049722725382723520418265979188182430486111662738404159311114931651465492918922667591590318159347788759985783572048315782725312700022090903947894955183825187276958304607525042207036353423504002169096533891821419678231427489088615690325134961737412852737475140739025167540227379794377022747118065340660399556215305076388884422605317786057386225493967075855660187986468461560802655926622774641106789927598074480227041793688124960740804739947077958865259637536202600722058749635075338728968373811104226556545840749684003244170693268156211033179967663607268343588381394426784898453543975599097311102763112159788770056291000531970224209032251342666051546682867785136670955525421863267985195757312720194062353891319543632628926198085152852435922687500844304004003474846789342836131685811268135071853660809530312116995358575372938255501504460950712631486368487587128332385046740225993199488524296022790841859886261719379149272304969198999680785480811437033926704130956527392653532771381382383147683134343269088183469067802067204673186588627855925767256262078218447833997476288173948102062251353453482427139646104392886215711185316773855881489518056953714015093826132053677736149930415795761686603467724317114516283043249096611431796490533071134167287789766960865342159570250049355027614218186830569997489300796135446573141803069911827228982096836953273708011537083349609178220435252032259138909183074115350140470946758385507174647255042307419712098432346010597284909546331439356389345859192198495789904203495247220103347688893834521111621233160251890678386759247093153210378475917619202567147514541069865790235994636291971734756639611575603788397674944062818375495205511313821361611959794279709222370755494596207536385638464774615301890845772942815391951960120285053633447437196213101727527984162568853989822625633119366799703646638160294908677084097860447550604907318271145789791576604207747623352469124499371484487491278234371688066252594984191299467515807873142395193724435391172337721538514088496832601253216497143243778085532378906824048526562723359335291289931980809831315315194476227499681731804692089014990011820031063419097039000828761704427977730376228865186279028950464948485784004945347301992207075839836007544029998918725330772603371582647211486081921222653766251961448968964136508733562149634213896714846559460611202530497485254216549289712888914664312617189955335892247060062399300977920952346283946345808076826059114028690297694886587996650910334353751996729655522141926046589589672010903119979584157696304031980470498122122155439729909110620804072441146113713413625657637115110684158110464799671079276689027108885484641367176141437052683835382062993617529812495613427488002984695795576635507875382440966697735782498359568487940269664938271462099162101656970738734709947454828948727675367345650683984056718018959882100833669199298444273072459650458516090547755798138838299967059932552499978499689345874385059293530712657955618743296587858601070771309700234600864513188191581534997919484378245436083886432662626813040262966143216938233247043711206942456083210510290490459790210406013611234060434853401511118421129066776675658156924664366770008015869880266369134481932792225932563993696766798843876011148205795244259627793914376503990927651920851864048602715865544365916884187337861656280300250209194642709721319190573449332594048504489925589167268171354331892561091341680081947559841368553239485454695239974189140849590439708722418754607283866236842024843760191464121703107860826505701447465681532543299148644396638722969591791202256487079056781964563512130287576887929593738856109915290709258201889681986909054689807454967568788679599609153021859708908597277183753021708521777095574175706313333837779290479264627918416717303484884180103703695467054455153801053597657302388020782561450106475664447327624371033158716805894884847326407359636441848958406819513054010807992485439480747748157735650802307339130641717154669054245637102592518194577121706297072630798412788798532307174001482095130005957774415538152598177189221930394527458554578566550334163874757996955008030503775264035674411487289772213577225219988413288690349253667350455089252800295873547266533513667087312356936858094396838912550112798636137169039728485378931942771133112418660699104113721946753151543087880336126864684151946707915087453126922092110867465080165619904655330906453350738107175163599145172654724234924710606013159434659012389123876972405590670021258654679276816844484973410335366434032542083367317270265062120738093609082060944158151876356026002404087320511568646316433699422484175409189754392933611894581018761116579803582406661359881228367400616087628651674575221189382755368841672279466055529885718487763540217818354017024475547112417464706449345880000240255597783463732524349004629594278018530467589646523878378410734482940370371485182515795614040516407840868052043592549413776389569140079879194074742609194825673617041167582620579086741256797808765889836159174939506975622134920186619977559572108249349229970806122111622199692349049448033267945492423753424346059456203764510467015004087368015233093448045372400101666855742422138467176426132818553756952349849136226600065019486437130291377125270929439504343987924576159344672821064482865993337188387322492240310742754312272844216475654981478703992190117308275763169678038410830331536146048858872596899445225736076831168749502041917307618069727119364090852479090097901143179475554871219310276649280408674849666380845127180482453069692411398391085671528224120107406358751066709419522547422989228787278132375770149393641930053533217976225555035701824251931259845484881634592115709446859152409650054855763032535616644521352229118168879930408670850357304871011320276447848673947562320357455043425992455732239119327571316198141424613014629171355499629941221523970762210658993727541714366171870694418052202136174372801156108723072709677835180356090461550537866668422055349535087709810954320136717932170299559763802894810307590398607231489450538318240758870952577681543280760982225173216572824951928297274322284095059865460947567063845576542456616929549983012547559142660313319271407458628860034091513759898877127503105071561352962348734160916262938740861684483515373407119538813711188839344515612490995520898093979875310387551775702471967051439284514349543931153130018755121428501093389605363067621819961756875585054399104016764642014167109346224351825007906815303267116650102831217172012233801401254693628302680242744239736140565139880342744242108061884062158648385589725019780824660983938790562565804736166839199720162527344886514667534657072838999344523881060955445598375373510183066891914396377558044344308607310717797954945007686834580240707407404123631667327473725583634199647537056481220728019689570957690706259461341531885709837188949165159272564705698222071154610626849941235292181340296241424672920947435879948310025656777100674301645294866224809367153453055574621077616726497282775348939251161166719113047314047910087601434801648664682963302769654356251591374469760416856292983097733828627286489009307625225751819863386878128141064699879591355112131336062075681284563040528901260019079477929146166833439159393054042395309746898569145036481520514657317596487165684387261542274321081452083527496367852403973510431950731442273762961025523619091008969388375534433840334238058113060927549748388829067273326087883799889002263798790300815263309780469587291256899796292942239214916956923002338177343787368997636488445623358993856442108646419386532845928554375530617110052003046376770141242131085251197930469463204082911334300791321397312085459187624162266033643279273438160546703563829795847190712823542921016543686236797824665939425988555879501832814542993323706379065507828232788971321495145892593728622647336887144544931361714855633843931906353924443695756952530674076579118062103138613004056284151849381047104256862834885129944861801732617553087476428378409144434994951033714777014567031944923992786618339064544436788989980687785420643683091208193650075997263936279994313817192144674013585899290892926438143169730648025609528539340962043466209377795568025284939445747326495265344176516403881311932636924190276397106202125875572192376167434781744592903360107192534180472332592924302847549830044837584681988281319505882369922130842622245324728039108441455490985761170522339458635078903995288049034516257710937657450523978413092962703602525587347902084060734054926324664573495985056159417597727727847856722560607260538282297229157991041982143390201094830065071063860770369919482815953281264877913300977209740405247185890599599735978376083400422611522692025981211175624349972708030240996365482680527557689738313031110402818869330203020348964215872910797988040512525372508357704505284102245050515958966959489274972854589032452109681519654060996739490108304875780475256784093104170595011097388471856099351623902209646147913828395716992737826706761213834888004962002338841489446928336360804351748285105778801703833810905048571040516058931913137946692098879541853005929542223056808809872118863674192836074223738892502322575005527009810169509110044408859023377535662009089762190537719356742457951317603654368130214582902547142304124136099782275527562947268428838799486451366560994484853274027135659892272938462993393383500147323698313451768801024956342688207847668928505674572365639394762998454452186385721022299603065811140331696552068068227439017152045876116727327721548928945977213556406713291501255652217962445363801198937397929731088400423098827393082444476602934773988323075642603217973158534369513439523423944586652995464684271820388385114970131741015216640752169233621965359215033317019067494758756572442092329955335947111065043544045103582537821363367997790714234863238178089035692967472515420130975700240702300234303603205439290645788725519973462638830195583184572507618353783374988527946895722005392104046710699816774000850810477639912046168360996484090416074309043508371290410831467718633627465289517211663227293752156424542735386158463580379262462175508609647784407003571323685663493693630424800248015181504979036673669115372561120767898980805044576052362635524020301864781451142454241383613878585335469256382894156870768640555024128783286522453039446972557998568839478991056400313638652734052846730520805807300475518559858607056172844042369641624708288803514620725926280114804596665501379044015831838041234766172372357163176533920666104370252684613604091780464689449544896416242446714436428208100187986717017764043686154493240159599873806258853045373828488364011375344212902336533398308617247327562142361758954107267273345404206379642254422382538039880038233854411820535188251236681321947776868704775110695483710626821341006043477327735699617702623783371204762939101040999222733979736898309338490443195752552744899545520390382454019736086244544842317547716475246545743966345887610722343501774535284931486142307329365408219336163834427124208348472632828309406517759246188126546075783150646170510392163685777418822734718496967776541179493647421418762701963561468479470755156198506470779606981372706536571858181400501037650239688400828781159902071106583341010153298280374036552589311250799646737194323312376676950451294825386277126943149133405821972669857979600369455980837871923750467760816212057344686066016781566281694578237991359978342296252601315017034440332681101001507974990421584947840010581943654951114590892071421731270512059763764038969074876566632536974592918198328954017168310324972834921100148564490268539804834742694106439583114218021874344535802998061323049539358987620616889548977222988633527804610615788278225476884518217825261725360185890604023540135229187769609563080359118043529362619333123447932083612545038631287413368237808818648048380767094686351658849504397754113334923050839656463197472090963445317532749635029654190369624028949235792149391300811875374694388628504735273193375324585700745278158517881783440237305470124300929187062311958755783574176462323039641357213882540716466255140894324980281792875627733175094965356644490810072360316259819870371304654908828680249972406334343834188574976390070998494451531013964541070635622470860193006145801887418035442899795054277315423561413275479020702748408347458941875225058216519972475407273445990216604140261960810674271936714693648386339995049362098569742956296516499579407583548200668936901655170429566474324856137418196481877106729780232714524676702600466435810674925615092044904348985822267831836288702417232296930921899822603020440354155010605285750945679246026646336977702311345171605428585133166882900370602349285637713236104631850251849673752461306574306289127725423579591179990598781809859463211621636756847357398306726167299678856838683027122183430836952598020814960224977725177093873713504832846934373949178277944326572796094687264073560268345416184113009058783217827645831836205985680421433912635017076277124455200718202649100371136600453746958232048148898794696853999516530644370326826537888794701130259802726739625607243192949240907211409574611776812345766980665943663179812838855237143665430775039820444830497471669452476066502853811199278063118553719657198143996044007020822735724613933688659900520654488612609809530898257705808012044656105483048245497544259430542042112970189806651625686916407143187457399030502630780869609494247152486354516457071818652985365364421874679826092359559788152212911788696342236538181824617591229082898915203355939117499984338033538317023857623102536943811116252298127055363144219496239579932632624163696229060946264198442393272788297918970127477330276544719715536992446528456959415899290773030631878532682282834101614680239425361702785780916215093475083021373154952637142527810054725547422542742405646950073585658850314099034729794188204372198015753390479694359778196355609258926011862441141014397913236431382401868556613661085933802852359651515318905962994950825440084872422801860383440544049767575340750745463773180660514734075086539534624394450763058892086302590271405534576787358047984542907831662154270184802699051448307236862691877717101281997796621884150434440597364008663711580860025889988145822517586103235341170127470224976123036338290925094613938562752626141015079788765276008034017128432137254219772388619817214373918163720694366105394015485914009378372144664368478807612983984966599430156883739823920994394448100593176719014304418757026763607405596974598629678613637567082992523762088303869882316701901826830626751040021259702041797773171551718748556119774025033365052961447251093253441600121795775663775466603939141622462899835670845059293808114446443279053330597955777673426630931749229998298152681818747340424508679298555810779245270718964875585019477215125556754155539555368429524942883766387625578575507639856015815387250955469351585887841828627730019849102651780659685203160745603675765413050332484443583036843820763504306891691971557767920821335387227790138129641001892530597819508164677036679425057104163918755772286855503389896762532167401118598713935273059070565900276127074061741606368107295615609972355092745856490433766483996180356476455223903873074490488164115818846181393153186353678135464523226586548654688297446887861836662082521310754222992591198857158810065857086168141720803374883215876532311838945245745713190768361037107085607057397362340373702662286294224931810585082116183911225679327098589287595733556253462848866396010714772113018181933688354252074921073654060100694486895837269173657262516222868203717488342245738435049656892928620263358799911030894283000968755888134735149668180076785160859628749492237198878091112944836283302056262660948532746395329360447482278668627062734013098813294320777084231169285051799859709070922029335423600146925701435659806043074918823764642263760804540491227627158271511979056020655486360733937496383299231335030425393278893361334417164582530459105556227434539800056162375282538787650742633113030284652546200548254662663488871493895544613069729996540953801542532903895300167125428668380299511130394286461845893657725268703271068482852209340519741926278429027278814175238292696725420802639528845176529229679771023829991299355659542004541896191368355602814661055269077213033073790224856410209119884943880786937321338246002051255627962460784882405031760852812558249214658754178072234219735791623967849509496901853018656282709697800646516095248100762644716809622854743130668942617321037679253692361032639529540583372464607709256045395603499388725121453796524496560376681305195581241647753333793424385725516927100303198754935413137046325579117884871282410684532128069106432639933129984894056645957269056181022032151972231350786042268016435409977179125421252356310926338096295274893730627485139037608369888638966084738770520792263924723589675610838207820631915053494487179591470267651602491713053224645495927831293593032600362050834310184874229025571799303412661189912015839446339305930761644606466028531639315748788057024272184641137596350140259619780767199974829623949929441271162916720045648617404774881974747031234673032594055644055622749746089070990287426978796013303092940679429991212273483386393453311801382550528850425199146070288849906993202763370432189379832386723304554809730073101178018043523669286838282195912727277484330054694371102398038210427381388779072406381993410995818699398528615830444214238698682299477834801355705213103139469293368853164082861574053605174746048584362116948298299206745919488769897799215059403164976402460553743407737278405277715346837927024052705037089680034439964700476737508050190913384884509164665994175857269366407131592786789266355640196717271242088773405967736847981118601853748053496589400798982103650065575189578240133506179798821187920871091149558702159596818825703874345086906765578338471970208286430220376151568852748766572285618965538713907464094014927035259589250237650154530681271811887492786568494253791414619492155591189219086504353430848966890328707765129366653687066895267667279368015006040921176229931865510255885934576683066090578656135303870351221244817218966308723730719826779900255541059752555387353073734808454962534683721982775621359058707476442099599896875804556336681390104982428634010915865000611144790786486358649257639566579789706822559498804715088293435151849549782309326680360717367846048511131692369685233671935581534318484405802921508842969575696222025906618492064729568434180656883528517429690189440591420958055069355288490485672113249562016521783081565856794573228379002989563078004333538982459989940175283215719892851226143791304635391814212711244885164887929855800455049909875286150389119889787412068768317806792459940650970096775469998604622446069329659141110868548692526371910582702730967799610062671551800443400481615578583434966173308185447743320928261100505111433300819911382506260298125432758813728757312928167187401653369076834592871416866106388294839472889059947216743145387578038365063844352975361304558981751593065252992122549467799283399287083054005709693966592106736723915556862145425222624400988239818691619084869265640914857940103342434987954500591506417853548969544327792130921976385500060278632584692734638811722455458604293292227562333179677248616351456054745525414784300613306192109624616530090780037131436672501937979428909830414937321789073698078336105187847582018927570440656382179645752670043098191802964974703619840007711303426191671951301061414538384189447808477506616859085048468200198627985795662296370529948659720114245518257851666064590470398284434154812961248203492401056989297319578389779726973582986237218709626683347488064079954569843239104680340146157514214683527749169006954973650636917170094667570915471801402228858953074371490987001875160296957266637850309536622933954083551533317801424889247919967459284845071662288283114629830502931476578550903051159961028426688206781473659480177247886885626618847664687176540856615871095940322961814688246811881251487241076162713351400785696751334771329725557028685849290102955417988789877544962911854771702446827337622246447735329079831522389570951851226932987145190980818278194140020913720146811956220563899109815988634390703153849897394515387170003046969850527430656722066642922828917968710739648984239526000547015550030332460100038866018921775483195052706240535899041495300707589824644176548289212870942718279265611857044559770908568174338660207078043746915857359492381952549736159824008210207710469572732761415189692253000953787152210190269338627310313402857319683303378418606503882106042712180804575031841452121690190708434759951094124023279344003897938168615692147038311356167140418639827634064296774121822340745662650431511683628893225365528815853682484196025452825961111806153036157680121725424002899232653673316959499001207468169110749959658785181391224484505690682305936338999589271403861912380635499652322907399986920371325971404749069756275908850399811799484974256539413447130786070539866772531459202906805888638603311814549479642071800171683776390498126659220125004223485388564958182733007799017888541583197726169337483015674579912402677180126608704242956482697498411942323466848390709860366237297350956757828142701531856335597216999208757679842287176000161784136966977453993437694321770285361690710105858915580976815054656378280359842324621475318544981451929678037983206932538857788992478376536891117319635604449743016280831515596708717911122374760796716335353047647106365228602083230218092056988548276732849617613751348545324155575349810483855933992936984161880127965567689961761155060677243636602214788630882554454799518172947145644119710941889721764156984106925686498203011951499047323618111771940490150178734158484175320059088633197709574873993048704303024935484791702557041131550239603588932536982682513334793537567452403597214408350877276961289691794589976635240501273238134904325224907647897601136344827929392894124729159691499253906629662781968228008521893832369236732749622314136636855239454442268592325749318723783084521175716590323847570401603832604795874352263000063351913142532626022391865750067768374670487192931628626955838520953890044108127162966769739139596528629701533643727020605635968899224648029150267938789379815033367447776526556434498252227110150091969179881134955733257118025183500423478610887548758617326789882670628621215566420713252456071960087494880984555649059211717935203659216253673967590762735306111983372736713096212990806461392307815311632346513528079587695075059227734929145210652262540761941827000250855753684405911612067107243842897158395196856453933746196655936053411032843902582171740710353991366605120087901658655959235643386107862047157224982988487309660929308700853769616999002952516285058259293392381667536435926131445983329396704045286741301807569964537366801345813751908028738011665548903684894751544778035095853242315527210625990313958136996567724131536734777587206781185469456012589755903242538232949895520551224333907231561165663274830459239365608687881258904715530590634287923455441116951792787849934431518038172393528333177781360429954202074641034517037511284605724358458985536409874003094946573903561826295713327192775697937319559479164767640412939395936396843190518205317416168523363782451490130604992425765296225639016041097454741847856830023389846642538743669736010659457548686191588321660974698628880153703142176697733193568707144729035456023579911487263771193321622586077032995000381495107844066671001485750822440727901118415935210851531986526679614270504914605883264353321595635348941641724220502588133619802380086138232382487621227841994510512291942192031048026320032391508794327079741227216388457910282119223858781631030058603402741597133335958695130843050490748250996111681872383386602661061639073921416285317144480048805681641282021559440567746099052351131350658700851290440815125544654234521093169314675264366644102357521024700677035140927234164871074927874945517658594946993234922878782966156070038575342026417043978960373730932879671770965776530889101579304423776818517924537831791222356068973207915828697735552471130661812013619246350089519066582478678871067519644691873921065834471684931737664143867419412846948971915514605136878658193468497565494727211331429949893701846013792803408136860649019655165596199182724791257435608791755541914785025288830194698844680229429693276326959014182741925289270561912359451975094564324163413493428086863784506357203753916726238633265553240405501461404845944597653613839209163474221982957228744181698818883850478365360084667891731576808266397677998326846247654668563587145237075778441561785631667694675348245992184310583534733899799314760415458395459169577441923968543361913335606455029284708750856197316043388895890254370712378151358693678002570690448767688375995952255878556743102089769762671885038299209172638137299409468750188863746239570754877152298482453697781873682626984098890043855285847669028343839290151207231266417248867461029797568444060384242392285860584463939452205391649324641347755946785095495434890868190582780587572139127598465329519465907854146756764627810575445735928842606580167508904253808531897840023670120986780442340963430880846160327723972938013351954013817035582423741519835148206396874031148210749839259768209711337372719083480455672985291421984180489602415299327587078845050273963643101293940037503704816950933868886174661972826500719173219579245590566634638954794773397268611014905898358985408209912228910629298719553976377818310761464392243074271598866768358199972423389516324048372229364832632515802535361757821769022254353886807997606754205192440745604843092482634085973479325801467966425534025045486774069316853110006547835062012001337383319982465257212567495005778386827454864000733246347472557147401921735482033503025378503593786907398901018307060919455429203403068975419908156381950563783047878118057056031297424035548962884145114732259589830081101220734328875662120148524090030274966426409489873116150106263000317635496618819196570511184710269601519652080178145726238637875036298135094393609950112750230610223478293221390741193245496712066698257125500652637459907566018864150301306074110017740410833765562680518865756971908022680305453452794547387455339531668690290917803888996075064113051113832607106590553998672180544100670445448523904104447017712631322794602321428965034080249512083493010374911944047965588939346509746784335174094259794705873794214699881794654841202439502023992859172289099759686070759662491546179557351046980640236962315018525512893707276749826801762442738317079691141337276049724563899670622156586869732875507878527362611437780195545513681851340432267223944562559241915578509288709440922995456253360115867032583530220925836229146316158488774310830731299255885508825334434157018056265633555952253548768404022434013246642906292002038912166551162766201468818337107626903257671128157311501788453650528614387221573496184384634677510164120195012026596538190185217045767738001624083317135357143056195626583819812039277977535743627104206328258803548869956763536889870786410765141614307148099658307311177844698968119216447144648083693011215048778362567711963163955641267628138205748244513300632396979448315162649874250676315980874853142367463625327884379681345042819741846224024204474798751976194683327927021972757033462257340918618087188895204118886840279330851464768663184347706033087817455072348785812205489692866354428054836926084033693502399028516556063443944543759299600877985762770554996825592589034925882805439930863488436191765866531863384916713640516570659949987367623821899253765959688753749719840933956028809075826831846464314412784036239115248359199630789614562512856683122236701735082580143162494413302187389370197619627965211077690810140189245555094306994734643812029844418141518024293508679502792032975227104597509273831589604675708831671202272297349750123302921126497047598874261033082375381603624452513023506782281897557647781315115364400827327509820532546936954918886178877806816852912279826721742615290206812665729971458349386919564033732747628019788714543608299018358911149898749526599127007929739786866328566152467522581759872534377485760975170756611750819199296672535043483490580598003232549576952648975312479149863550757237058390252663437560277663449924274241133866148668123209806442638441054715216203872150052610336223873159949385648761812072860743328551836169607464313263721132874376274209177567979444221503298085421197988120283489137513833689536865063502772135853580958565987168242130744153437310217982574210046645449302197009291986612064157446852077281652910588744453905422288115173066488198364876973150014524364692095707438794020887437446573921590819759850381390488789091729884369626169359738247507962075282003907474700976514806870417010290308910650959951079313766907854068739606787547450006220447371436153876486740509513949603178990662679085406797854184670950679108552499847258717774455711781577313522639966222452396942057107592590778112526133979439672262292798253928487712263378452057820933765254661229669560033985903454529103846622586365533071063017573818715623875755533944988221331364183417686006791658291430450844162948937006046648515502977996236310846921638785156270467232574538787070625337182865394500328324081192403641792563671093106375294219181417908450276221780621540591404230013670918131834392658860473748988406511058907277534010483651326564104681072380359992242928151040589169768189358541498056106847702795493444789886605523679485125837075602333915675067699101707515774629984205611290873106904807947159652280375983773503071558642252008913457993998367802347196314431555355694453697010662483188233975352811833355893485882873143319747337985400667689550158626119668370050347022028222135505128874913338030634889663312535537679284075581346137775212129361820423679687499514682194723667853927213220633313501215471456390282303293957077917501879821500779486056915564580507648798074541192126436548056368257772009228292048142463186066845384480956724816757774694283922533994406813251930159932167756048073927036722208519453657222698622636986303228127826479285962627192982464044620389496192638780936895688353821128914911155230215565992754084687511319363132132335798019754498034590789655550019895823792859369469002650711904026360087969326108558597799251139766626819105275601792202305010328034334940860345511353935553602927905697321178083838227529394374710132569772559642724724148247961904188719075111973833410893623317036323829340163736167039624926734261072135531577232359308332735948605716212221975519516302959611524924242505287658076860879611006825504508300224649347034924113489822082463908036698296411751260607283927221824340216148744407928308539027536289069374250060912496356456984946938790532892997620570030207427873314542404167902343063521492137807712070027717849906218823492952230376340573198826364373517829516591079712919849138987757591312636419130642786627983506799152304485981079574973786611520303783242772549646715198936117240486904301116663347109160488013926390732383121725309941320210847537463356813183471872919591339266920678211207156334641887115554996371333971134108745368507250353673978932648707512150252555396351964985491094086041784494894298340875090691957786134503221738436243171905253077789219369776414482135510997058961907650706346485263991715041271916010829129756750539140216268406838631826444037310504848693480647514070676710795390578099046964597296313418680119758474289949248654400090282739870451535299773507683751178372692499984021243872115277192389262707791352945320465820799425872570670436654225002737283482936466209563998667744718178558856420359777311772071082894228517750043203075293992538658554549663993163149517431187739718446882691948182827516829828287282318325859448889689197015175097288614494634524024009639551205671259659657308760178574454677718828918546575854487520816827904855943815804808514757638178803087006406074594176082580912716584335121590622729450819984272585412969057476979174564289771685721296097208671335947897580797944834281903123738390358955689676132305083161288111158244075546594249183102814886746302579399331713105344261641847168506399908858784228859541274687150321849847322417172411754571032180005219376684895040863256712868555305055452803477491241659538044272575960282696302223286199722096179802304137712055725158014905069705333549000760873494778836848346448411525657096019222230888467706593588058509805779177977263070831134009202139921253674503494786617697292146792072371231614630302650136778318804659457255165048748184797199104665116927348528731931648403988141644094112474049526351477217694891402009648895549616683165419881875339464115708544969295854689023163460746042698330200904473021804424258170877296438911115017150057197220817882950285865876671719852089446453013902479399346319137911514389982976436025207228675301063525091280243654554783021363310573973821823413414085015480238293654843729391060690261730312700770284205455037196111895064145138039265100730085331392392220332908110766534649773989931347185202285031362726927246686622101512067089595645744720246148104191547142046287109102263178519656127589170215869063492163626695482858908412197431229526287087973678721798613680661053633257861888404021720707716860146407142777345567647025662691683845862553734421473627362773589376366577898770947677003185431381266131492792922843934173324755671327171875071739113253467962942740307649662903526600125968279047221401412919973419188621586791508452579019001807459544628971112337278380324404851866929103031772935330184112347061910740879479155318671925715864215200211771458502527002283767517185799556944742290942740864289642969459026846017372115371782800509205459523610732248365805574224230444326707492135391788100651971670187703964431915900979464666751009295986979496003023142878669750210000045014547522148216148398444687038993724256064775578301464420240355993351711424608427409521633426855105717475129200375586795146155307421432863937653423540360202996651086183586915553320446205227126020090774920513576577576699653679464246210474942587846683082099745454781010555263501377278146275948653791939432966076208027892451641107182832393059297093434258681059239515992033715428677171494706501934068031095255673062983611063859118791447043236475953535794190462466208461616485720516856076624344793610388047553167399849306104771599608456799397764606630459463358614706687502001415926581516106561451273590865422282465653579349809445098315180734396299821376150216919758060003825214248600389977555340880109512854603555806326266900975379076825817612004386174751544906668465728910869618526027674817991593562211370824501707212289416033290337386196769041120654717353440699299667971294523982168554358561277883594412568826090740300436611077255806770060116552975372525537413392472389205818096975355834084881489655803758532843698641897320222004753946275378686077115502030931788337393991602334423821278483688019446305651230494655038963044903996275722011852029718248664027035596543510276900341855967327921103128634035166140888928037105131674561250049395025775007926037191814438955019767975052544256049643827746206108142827928005154010868027007798169271932514082240493071012289167794235384966509047652563939050161561972756417570364195314825508912853514977909615787774733744497000260706345593110262539108058557484334913324799253279489359604962573752756716841317333583903247401817818045556718430195050689257435664984444409143793968836047829110182536351937994494119132301013484855226566942990800921406450607081373416595729706822509470152280195245837118965807877828486271650823934732555514133408265690523377874137013873880969371698224767361185150309898540084240052192581322471249076022066763093279818282479281209033305646926104745894827755095052657264172840800889462900922656793468026998841454557183842529716747023575507841615413213023921122649604703506709733099560250344700899819019892897622278651839377510512248316169071001389056867537374613146115481221613602894747564986906463512589441799736280054958025229750952434142244895512321454114328127683841594557098749213239595609102540994509109534096665142182562872794470819763174659182322591690442872898370916147966605008171725518841384154926668784827645563868249498971258535039434419379845111682391504973316060298588107827126307524311498732514973243964560043013855938820539280638299196625355828384118803072121239060194900144149878589157528562525399605581568101038180809205371027092183109566215772012161350112930865399734851344611024897384208194193181602648896710545236034061904965670102827705521777058642227313573742102864609246114127421397063014810016600219000062368339349522508588326862865769544354217184345806595320326215227065524297295806038172335521246635439779709671104248127253505962873596067070732384880445340071307314015765614458042527673658151996137607280307534458409553320122784159135066539605130752772875462283319060070887937311694108784563248422548832387437740400782078117672088325776992729438911415224086561674548383449171823162613810576590389866026397884482283374481367421832479946675420002945974529308726397447493622287881810036915387718329316961811086400617036319180667563278277483041161646328329413192266534945869255345865072789131239914635082849988955517194668915532522042421195229654370676511473359900499803963999086462596369673204030588624989499486743441015523248616931073863074581339467250936058843441085635085755047351926310998424639416773950628086001743117856925853575809227547723801384076820335926961951681116284275405833488596058149400971999947146165345306111206584478664596117252738560607484775637844201208448409067990984433958829641212281550045601458210941445420647816240049584920825639670496167132063036424951447504900081689230076668716922246999154803802802198921375808952883998562390288116183709244103112134708672567173282663435671797609768018076470096700159189680553828128089866378566419903815859969528762242039279692928057402063582403959290377553451507991174053138125313903515265017800114564764438582191075657792763291175966431339584890091085182307044675648166967269371608880511942325242317675376104807709059376517805425787951306958727282641819238945045583787042834389646065302010304689250724658197163487312196432351215881936751824790358438152011000901317475210031636782166067357424086569721880516474059858018293447379001328325103987924748489261822718643611903388530230957310947895669543498051469498020288137223918976126691518754730118702645100981493635580101813329887163414506631512337541363088494591500063645388663093455307119678530794157958798779208057759636668659681350136853760472478473439379924584541900341816086506040321580528564815961895795745578673296431065051994398053305631648275119732409916718632141638469987178903592124939635263085304274077983627136534936997431936523099991911656682437948831089641642473067364464947761918018714957722788386504468954098800994061858796367379935514760588293505915086980063415016978721192455627493069686270949712058543183406670414530890203108572227920168061720458101314934340570620114561903875912362844260706222637583076350938306829712816436297348093222645261767753015441028472638158905430855589547623182444162836839535670647987943978412189469403743467305379568083435576305864016310373502391925030431317661719071088577960107058434946329194149258501041482750741545550074829039961129759057730383385757042722621204260891544589944917016768470045469082908626371244515526732139816394469103913316582272956093860843736543709777406055814615073801134991154761196507338871950132435164655587994342925945370504144770238941990649943962245082680803266026835952489304117229444124757155171231109370310536924192526314537969723797470820295060930873348807100457328188431639429087950434762775636790312246544339453809498138795381583618089626601260663966642521156818240245823134490974976855795182680394827976542990078730913438585425063647047371570913103041769303557732393725601457121376604015001709964155791015659265199846934087787046337710550841862309049879368311320093000000862298543300912884300910306814401290408746700773393911197955545702869694407428520776056215202194414812739938154650799879881904196751425664487774613613181466208184814204823476215852451335184268470077681883125203795629108813912499716903504143422397645873605023083809563742936290201453450681583830358659112655595547733176777326730966595683835769015484027601349738120140285512076764329360224764038010144484915960851677332365659161575047782317423767662538816959133369827945885050041862199436354975476701384962457053597224813960480229751958086630553269272432585886029131257752784468271287768617011583236789134174180600357294602726323558763781809250026608453849576379447214303161281339066471712856049112911599698710023642291586343890714851589302058044589560930700688926059812509285351211514927723088229216286404480227941083343768393386234730934800822422135103867613421151464570815538916827847833579128261528315432034602186097722287105544221936498873955817566745731402097078214674743329805465755795443194031962558212436438710441125759825856997819324935004478398979074025410652695965963969486512695167607776007659565324843797262025495940573064567751435970355400559502989059903026599766179507575033220647312117589863870291286263198600730095049916231511303409492302332633918620057733577752733237561806068253548185534295854171971369481264074000361351317853029103827947854339822822492502597445539758526037924162906056032737037767216585788187241839545648517438222731964044042154116836520106193511829621865983738969576997401196128451906969933335283348883342753385573961687641179084581350184932210574952048574159971252532716611822324238590580361745903621331020805654675566643988789011975280087013134808339412704514198505103794723561836714795226627079600312276820227569637929427003208931595883426308251683576184316342293765867903937827986115255088592553262210447202251684012120582428385188407213553911859677475291645546344272201676597760404980046770948312206707846332190999731863436386283707176776454306566801642730877752999335108611622417581175587626571356783109225889324961222172227477034928199506942016914954189865868807803345365231173196566732435405761107352424647761590643981616267481351722201239412949684661117017763700554468920248116208393416939790208992203425456208187247617520638707856046331981267403350627781628119036424850843723385436051588914020007489255014572681540896040223579754244960930923325084958433859805891135270103906109444671829093773944502688530304933334455325471568270716005986039439109769024737255506390684752333676811981890180162595553191015275210776563561936233939463938731652830388442865870483777487904680477475482727489016619216269166262079992744261436191510049966255405840162571923160690963127975549569199229974267064886583012044033939123764473255832910969129719002517507581188751514048356000693029780850655388662061680058361974551007635316615438071876306687222221894043348339135653524946207373880990126538001479030251939396225331427589759824532623346135811032194064071281910932935347131468171020749316775674205220121070365590043926668597369540719027853554199646488005916278797198401483667684821802058045362313921714558973335739284374536408783773339614263478377783950066517323309524344598632221961041914484809865260165939690252263103038180354383383931163915957237276952739723248859404892912000610206216397355245681072598051537654333925087831273814129678920195833175191905687363848662785576970819828412201511843543574605629717614325691752804523005522552600287081516000247547414867355783936423949966909943941137652167491158392045857882376281098541360722560597395498901792205398211446855932942050575258958055684229090989462189074708574056771073838539684423325519999018388980627027486184357564988456426673338285916726936534325880608321864188174187257699468011235121154954852745762319590160785041082783365013337565205441408045679150449347232207532169753071901993804584344605159603709924126351913613738710320494844306465373034636704067615194634223204926370271490545865622880793598377700880026280310239791308246677472204489082072554585962410324010602761371674746235610761197743338307817246379707091040863544285509242895554679827820606845576613364154394977212792798922649642849305934921502620210825294746365691068367953660134450739963759497390528479421173228803764657583405314886999166902225706809700961303646343753300096504308014200872157163296427029099944964579057398217777959246868798605668394399725697520047435376061711910110118388317746728406692529976097128548582293591811451498318628516549021336432723266166821356324939913502607191138872327854450413205414724092315351131272127620017460944250617437460561597320462587391066908416211143150665018064373814604583463111041248061697611782018162228120548317501906871154612637531151793164503549064458853964892149355760002313926106315435804243565344774855152342266436148302009188801830234788699767746845727665024389543278914636547702412947755839622674605631424701732389606475449660664875635027647888542435691433684440090478659543121419156284359961405477185474439849753670516381106405354599090143864295223760450883798906302065641829324071779626415955441605091390342498058269676499781572749854647676147156462576798503862846098063487525562759410769563879232358257990810422894073673518809102894697489542896966894598353160714615625942749280426442266695016090397307052015294629866404795660164389323520322294819247747246559256985908885430489350051095373232265547394296690761519455237284931461785694077821147999472556672999289114312959147602720086743499983932155415318250510885444933974864587409607597006930068899070049170514837268495132860357807975595790824319430212212286313234859802880628797639097889687525357859290343573981874214860697428493544858879164807269681273152038776956751719530429468220694802223404582569022515902817322873327213954772969006548738305949312284939096564568809078598898823473401545703544584537662969229500697351506036982612840220750174881188727220787853616832972596498073919037987094591951667803873861761424942765181028020747980976257389075954647345566681106704811791467594712980608229140874001528214095996065115856049345518693389127772425907694176430926798827069627966169994550113998243680407767016618625738425424267340150007006355028238636394960238497994695579452427932435564349931791181932965315195178159539574370567553529530239230091261648718225895502620838491107686344223562736924793395508284967748393400432967733654477744480261864499609196769776085229638127072017448528355088938096182286993361826228444792796872566104347606674866871319265709903369782330083934096620799284456420386820409641135122341360126573190421011005589907366829581202475940013272450643315612868641898672868682981067253035129198404883648022706810475669224858636312187011316274983266564633102274379658300431278424715246778555758055992231471996234743921096652040529532474946248504009457256925877446339693187990577423967282034880551835498509926850847213787002357301742551463652720381894547725110373976856959272297936453073086547358377203135791180232732703274000757027763322474249382925017854527338300037784123284382104483539510511735774710856959679828849082431527953769608155615828654876493257769686029109490882864171353697149963155677762310630607967627266673152892471893463458698221778923180613142614016650102223625467621074755760230222291187314376715330842140182512242822559737934299859087585461176307250908648170684505752297589366153452717002095966791409023020539181922267174499488482486727546818527076119521326625415002779555315965084186401177991778026142186538952948421198486350866932399824539162862045616380105517808231155522047354625228930832086781505142158378598666793360452312702627316462580834962911671442150959975978110801890369216016573651969483866248205933305223305032023063577439044633754833360059306920213229930269216433692829861215095036454362002949382553559046366512416653283096481861398102752592095460361991370637031264993102716805947287211764676635151081472153479278159169619359118673208977126421794985252116988801194110056896501051368572435453675575369329052952516690110628275615084050041373114139157399334707522032360865770598711189676768217960320335487062171095894037921321343988157386729301677189167215842371161167177304056569131308331232417853937274334226113457528619808046729138091744444682335401766781762776165906784484583210976663554951444786585152968464806313178309894019938209705693132188844632585007481579793010719117698835080206467881678505465061830489673419176007717457643027140475553113769187469461302661863225282950722375345936712771515763281422288224051631068026913993978254922048965049062393863689718466714279958318346249908486182331302685318927798688296804454715634330934230244876000432982863410085323849604391217413562489098198832594254279055989491054243182287071311126258328057089683208671724626268879630175266069860198460694458377685916948602394544969667900444736111058388920300013273744471310449476894157209796666686359145143044025631177298976592514700128520683653347294759515757275617355443161516689854462634389536901898572136126024441826962773328035502434642577813457229698944520803613034085314721363290411934243045133310182643987261781531072190379170690914074179392990305102211526642753397852716484810553955171780312194213361483813850948366831625017873860407899345108801554424250347022214150449973431263977701105911594888251021511060851696702738284559712141444086634543966892149416990769096677144469461715488023193387325389684067705428503398303218056507913800867119966860158467867208127473280826721435609536901926075902992341720294762656469783884745914382382441308095785096361478564638496132946142457073624536216803987237825563042347227982106386336186584887076358454369698634420718039675194822485283623417729520498517490403246760696293104785729136356013142218442728642461039423384240690337885810828270148880165988785640036787781713541494832630888243012188913213670768618004847307747049507904389711111472741946989688747309538393927975913820991243206993194562357764240598373713013025503857649014460125680462893018481789570481855820646872187221668504169098861386366424525246936001864507879385771674116385485919818453717533385990087249098426572551054799481674742860666680957697065203018054504950359500951965841326947820404603785231910088075175406202064373975935702418954148208829029010007523152330540819857151715475457202051781189187404313624812427145442721300981177505512592841944698758665878549871902756706088634966814804632012756588036383178174581103178015511803881064444263483178884929508432535886710507330304195631963151672657000638397395328349619915429028441570756703090648263538195577049131077138707490703267079618628590493834605858596628860425693882204836718318128755978218391416450633447733670069043389461252479033455299939434951602178525233529667812648625081092319761698491867728171059298538300565920445359450446160633327907462738344002921033392408262610565912569303373759978886913715080429993914818299556055718999510183780157043987162323221210330894600161853675732066495972838792340120854685919703607439145965066015513924393113444313679847696277915024470089177196562607939111801111243701757407770440222612578798245938435768392175765402286317016647317673615796580291924478848382903990415000558926483337299423938721573117884907869284634062496310800847363172930217846888184835925453841110890780277716251400107872949916671341914280828506468812745472033378211195766945375529621092604580150328582156284321975033398284929155735702577168428326496436789063160662006609661720399789760582407366250878424558162670849882823848640608794013415700495831172276357761640474162502133187240720848265734435150568650521435157678926795515616433480021126293239126624348197581835493377283835432468045799931006839575128044954077939168798184844217868632373517073108850968232047498950676025692622187037625856315143221628913602538379256777677318739810859665756349574754591003837728435118189851871333128583562291271075632234817585261338203719150733627229358447570295709062884062063906871942496734747604715049123667049403142081513242230223924544167862142466719129745975892600069821534074854032136405218137516889961497178844156063837416068518935263140023285519418797821037991472040293371089904915268481788872185259743872574699138417869687536782728396327479253476854409757066177625980450031519668071697156341482178579692801134545845608327666184461704518242532104550761558409062032402913001357375255443094951203692137406782009002404214713000910308721681404042495897614446787266640201366101646192537842555649194865507138594035597598419128565797341112677414589058880850925977326131656870851982465585738312902759361045610294783903448680861196181185251879007860282164373721763632449556055260154344255360759264047774875759012249091299481187096605603158741369488388191543142422509229678656364612897588565508068255221274816554845351501968705962368105644704999422907168677714709841272701965021890695185527745849014176564761869416556225499608432731576796627994525351788305616897744521803768291206029941883155518852580754637262550598378547536332867353577081250109524789943442519034489553262993571998268147750784532442590233365069434009013739335789129857119898722261239199260471910011219589859759775826484397039732883961666421116691934000279034058600140753600051065169470457065646977866322336832023630720376787586738867502463897621765822431993709944487258450154311667759617838808948379995667121264988824876839845949646657443450466575344673056299541232951882801626861001286197630102687522381019455668944805000886778601980203921119899560488627949032906683305427292059825259188633157394011283971610236534232069589265388190946975518230104817175142409151060385056261876734772301157670777548878074856906367123505726991426414400741468957755825134028690354144275269200230334867010191329063290848604175956220562761433150149139445258036221768485178572659678403174128825064000606909373287242673580263427819552134410939548753187663210540810810266805652515759022182439598863248420306191563790152542081530042912789931432474851542283702959708997857679213465294717435681918412150758188916306403042979838383517438823308436925854315902074449706264447493724683622190990801258366471986964147876762603682171613304283646865485721926142130521582310743761884969507844833193097240172974445706244747477135634549561648648413025337700022663806767072663928233559043214163602637712184453873467522089826537679636584381762667531142259853248218216468921991886798953835439699709112144234785415503264145375176368988413280306270088598070332297810747034930298294380695822222774181051140335931765980003257147129797676758269173042341362112982752004348222794706940214008742271069923340833573887165023588012734566943729349682843154539217762953240579850063313344946371244493467275071978805988365817169706274733243664666790754161815640853184850976477956993738990009326580552777475730040296579175748992078642622251089494362305518548260383650896416965155061493148407824335838005624187236548050788269903994738001399482008484883128502856255122599154857641910715741912975289519035744493208322060579414226665682219928095709564337980618766502428003193647033013171746380861525623445412113745263729004745266260072509904036734864951353546998694211585868059439230881756373565816060245847814303194416482077840485794153590426941726486632542235797914022078285906144825621887633959815681173573566132715156793194363073781136610267024466913661825367345796435616457105216808437169866289432934497630480956146700903267359125249264479363445521599007824038677392837766855294600798683519914737408577297311689703640133081442890024209899261927185720818435823604723999357564457806611255474572306036748966823927682155618236074786451898416450880076295590580385420486337448307654793818905784504995761456591356612920429226368160292494570616804933111188798834461722814311242806435564278081332943736831287857071294864221632673520692097419577204871409265810533512577258036816172699862851393685372957015990819562089641320959482816403727765645306080086824784816731954254482995706543079183044727764603488930686901539392301127080161340900712160026955711838467756459530983208367443175864736262781561639699905446033079833040934380137094975751392044298613203636644992105075646137100322622396551678841392574570166774143596342949447874907733887718174257444781533916256295000107706477267503436119974298795667868233655998139152777873364761108660558031092839959066606806363010782962486490985642254821719214937609076020163803342435303546820807044751954218005657907276374192958587782447219992279196020055460557852155386580744089417513594203373096803883570686915689876803167948024708431673653871014293534693681526620437257834987473497942390380767682434343702591649647823231326864094580689455177502199893844846470034356874471980461645600973968205831158936797180388007190890507453392740629236316175489275959985005430858375224089222736991849003717234162702088295432265681018161253455997863523094338678216782989389947432625417091481259719830845038255647741310435878524552941215499129477660548626133382955880175828549427421484112371058535255220044655452348408703230339283505313925463891977068928855601382973536015939398484106541407316718653819611977158136895085273134957450100062218249235945007677433978887433828949062274068652948891276371324698151918412558536323045049238981237690639279618871350877269820842083356171583327506066732272067062422202016522913873520459367545892905284055646320160698602952187380438235234904335630410765109035790543686203009591405991497205559835314333159235831849815577424945806766264665191977356519580395425499579890735449534608739816306781792322118845343866603368340099412293874889987974588527106438814037834960758881577973552313731496031638190576815200571296484671303651610601917397899235613960810132610953374249939332974872828790186609860614110928696159234910104255214629530436083389040302741059218623185671351498097605038459269611873726673502260504892408887142851990364581062375836679803077424593621820129460067093644460196983527170279103649369991224251615337358149695562479180990336424575159073628925328921035618957089057003479142846146418815438169867169443158434110456250692956043834037552131513748150620763865749626670857166965208635649811127216257091077121143994930581025561388584724768052312164353670561467656965332089230007941973787349588078629954307817111527591097303595792783379176258644315992848472135661571655250998520079355973875156496525061029424693914938138092622106035809391387531863160765560012252990091581284004006528240717584425142312300993898195028664862755742428631042061285570743434133140469927956889459772018960113972214873418856763748904281430865248925761827875065919973020514374509650417537295151356517939911213492729333735404254080903485761800728450971905905146425891092069787953190478695023873838568490425481222986633910992043508005171426811070304617087886956817670618075070948452965610547877784744866365561721838888606308674160214786530635209890622911048050188313061643256319853570464260587657421583809294480132581728131372466578670819820354793038565119347916700158647875779017497562671552422725529433485597217782375710359987507073502323956954997387315165591517755493212736540527682286730326332265712124035534636401823630472488470462221887569921318629395444347640350506434252667414024621953433058662602694854763307274186912689065618602327996855923350048312181619872999353066155625817846286090054154085368752223117542090282324591454032708550963692744334567029564314624613319460682761609641545270028323649785444683847496786388064902009523318930154002365391774971877645031997907399160296276150584962523184814366983777300043404742873234728414756709407668802401648237351950553437790677040962530003972417998601799718636602830341733953581255543839796706676157738710449994070262168924737240766184570836088342941929737461366018013333760106914953254734547694552096853999067120903884825463044533514403388399939298306309007170055402786213913563220491671473187979823780555700910799104926019736382139763374272660474796149918283200465788820931725116169159820168523506752893351291572603917991134097234030716499452106092605036774058706995440978043227477063335077251395224337254280188213444661464637588948353890509491949717183247195153154653821151367325918553163291727498683251960772649696676232027608629386171469157205128039859250024147607989027087744883028998546063973119808998791003338025527533942156535708253340263923129307565452489317608173211188309460106761813158127843620776932511528988132986317335621272053516918604255576813029723478765390716416124258435197270978263705350621542857599626289797911506919072561692670039841273077381536520892687349548058695176445698686468326897524407180781740793108419516712857165352032119782832336329822787468050093717214857476670271609522099987447848351646704922383687669623776302591511539541470994044920943362085217509150252003467412104948970693425319471671972784488091995635717231936584004948284326620873245623602979126312647900050543983609284344953244004155092083706315353767017163065854460085558551816406893588557585365072035137950101171279367795917712894009596021604166941535968269416157017431521781432649771645183088708679937451662008926951675606563588844242789499191628730143724986222398061663772751719475289982988206644144806698324963570985450022008499978380760301288731576703708875668948644282743618614904590794092411432303992234493005431997448282991746758230111996070435454223073365571775526639397367072496649299848408333093102910326430111101224552022836340135766000561733026645266807218645421693891931404292186560873301792851610656982828384301442233158455247347818803968231505163299475212099556957210355410848206128002085041130762807472157477875548379413191412552684463639840664248194283621913084724365667657441496231649228925801560749547612735557073485603794314642828206151899203995545905966421427765850638752707701003210382850503436498238111238241752384155011949099084121789984280997904427711007630278890714419459034343108558513981463649692236517809021911885257932474273146495931204935730717661558400969030227699523503490157564188333336990347576421627149021153096775565211353047069392032951728587075284132670783116614758373215517489063858157379670405574533506486299218601964488275391335706152534170644251210227281327564455283751005643959140346004197867592070743914385388476983041882604555843695479726245608409116720078010908325849393909637727665320244845655679021791101050424509458240609807277885298318889562402000963037235017720080036416967230478676554223706894791488604755335052730024567860042180521510552973056716013587787664671351608467922134679856230743022213178989346315618715310955553159655640206844235300524338487246632165111666078509513424414499636514412430845858946692801511733437527224808663366761811545141989684266982252567641512018495897322066799562271180987378508081838601692433111745376251272141434110861765707918293613982344112995493519705624163864172037434439236430013191353131675998389467345795965215716911866766696273464292293022674613957095974219732576552035941933883902651326683229879172395245209543392900885514445378939783913665081772645638251034492109822181786442246038536121833206611311701414877424489028650080313824171311630078998403233265327956779523952605474161810656159688510919522700801046481889335468891219896329879729858760022632049692060180464354748652016633162940305324237878465348536286225930964125396761334730305941457049436451056855117223775165082489258522502000013080878936051263015847446141525790827408295721785613897939563171715123853178047724658388384891395725983191196414434344897851389467798196313882441218422009417590020295614627806871281745734434939551474521034143780231938256229770503009099557670489809264527162908155087132560192815165865501430563023599402982934240168741616400807702734741928142978593721519864488123919226113508886949561382827777440669839298564965263523218632628659094651926021565634143183290698806141559529915178775745218153107189337671074973874621904819215806442323796836216164568661028171443283344236754791323739693139571571625906624124748414723181511694870571467316170461148270395012705155125986642639088388650382771759784028464834274458305490621242409610391240850713023797310601124864781415122851044852475091928968924730616921171812492185531146892271180785513467461843480519128141512530379780341335709351442079931339355817273391768677516673521437039930282152744837242923846181743042797700351400771926008308712917117373254458458755218074346038016229497647182994509063610285929931966843245208513057394424266486201413219890385007545078361350247325829305016528595796939998065055245070962683279768769019348662439281027144093509148435729750138401016220844440644452067053881915972611454237167959147157461266099963585381628928473207679224226628182519442768873874826497102018084133751704796838832410613416152927150258308194986330670984196727154391744565581244931186012519112112557916997166371123923891617897589786391907725747723786308516097736863545495780592494537130688740281781497544961424210520456144733679749548045708523768077963101663559153320907170146964763647561072276624837890706120693202993161317714456141335174523790699539203934700659239154571287730114456004650443581331377097071260192859208502580777339926075140085574243134912613255558755589994970293024973576618013206222872803025171885294667731552952790781787168599261004940093832158971696878192370109896970992874972531757733058855316711225744588742802010326006911871951482356543108563032554382112129887107840598568727067869969650493575943367132940008803788706928153262019383842877208671347486087615181413748115129952260276147922079916830833682565561603099677004706502628752799403915378350580764499638356823524746029613529021211747366433898137161418447548373300983316669090702378505869842520059930831212482526667683926478788374320816440377715904544357208769602229627496112758325146811233201526484923906405517376612684725470326747189258595045840128822859457102598823770630646757770009089746049423612437820628170933699617266166044151581875571116770358291058825276515007521760813356884935584327449870714440620830748671840623783168764080884658145227445851047962285722952354525988360020041943333445239062409826328272999595565437088688406407887722050635816514321992715588863899555983408739753132570415027102134504691596609098657403332955680951511422802637833260893429166336858884859923767686982894647499562238289990895234660547522452993584088311274373743640097018054792086532312065082587930210362470155093466912254266467345790983402454491074003969085249032818558869358548881410109380232873572315127854931036674382369613729479540243895689857208427850921492329902260841890675396848440849608632483096161755883960691549073203648760803576024688653882189702454417124523048995929492098722124870139779315233224900200827448375586342791732054892782675105609761691164810691094323439779722513033491708085220178135328578647828794245096045897168920820661514957057026985222845718348982995573614345686904108118686742272930859752119362606212896523515481263494499225205864598921847449475028933969603916161138802825662884975166925964909072558238747116490151154519299080121202353285465213855077394324772249737968489424348959659747142843391317115311473087386763358881424988283572370452184815312865124671735540600843139834579981529522414493026043198546957741209892991788665439215189025723874932162485599933817471680981950322865734245726046034689315319324078022989679228353010343941994586415047240960929767831408702259944619074977438926081732594846438519797224832308169687969067891564293870800437161855665079315312287004660082223208149032000796830956975788343922363999307002343449742387948463975695778785422236740651077697486670074012992091286029594437156017326608686296025063314092251795850143630337594582479745425283471086900465636517305782571211397089534039240823821471882417703008764864989516108319644691862128750065325792553335154542827127966173113662090829108635141156493121377383241483503048414002458916625157717191308213331011780177497285152378272883122721475747281524165497870170640682026715590934853332742891712658247500626974443097715199909102447331148418787774547965081049673435031874920699968314691111812659104211103491043258783656785738548429993860304037464433272131798960368407188561062302627471087189634233172815573623444760356242570159961555186459752156128403495961429155921113863767859060946780320551770712619710579699505406307491335156872221413786751609472709501155414164571384111609479327244078657505404722150760064482342092810014557930821521925441708249674803085387847365825808499980204405558832124154281625644074404467484935841235669223249361438159038989554221055172083116424437640285649931531602720461165031247593026648474880074738594616983185274452212970112511221853005374661486067467585008349958824923837333480012606961271823266665882637263499121971921844594558832114433176337439269288508882853967212956922960684644432474950492011078136579419079709073297557995814147398138975959090091130218678027637871768464272222334988659972518270423918435427400006710148420679644832971314205869137623174632885941319866672108655034348173672171853057909488256164760587760318224729760595840261184812673390621643035349314459208902790858555001307219814516602707562245467314842729835823117869806168125088926629246942446060533235901743249710351081921014144896912096511939612866858901751818708181681263841024791568844344473473084110172602092669643429536503312971459490286506795864661243545569035193837097058152254541449321169560198032236701892604020661554017005764173875593140765766828913060921549073666410671712765231483206397797348989134223653938869642614227654239805822521123611005739211748367603832723448732465243994828611193007345899145631777048722759476645317187472288977820031321184799755833678455591404368373322237068968306226348452377621382326818587568835582803611847168450131436923887671513068218728615890171563118992392487862643987484921820921644928554989368933343334407746672392695230025686057976527298044537591561464843577014627091679785714949282638158392075947647428439565761055160935918235688067164993527016198083525352703162764158326688301975300995321205524389539011332988878068980558543153408346928965370522413061797727313483126151888960049845504025567707381120821695251272319428997184027801635399413082824472225228257485073431953120260981508724176811310546610408728417504641498862047463491005341202618269070276354223844772768976940379109632194164572270302496989918879293264005516270164340166719997346927775724307535557477089912526961056598367685465203432622914016836072473836123819122356375734530005885876469828319120700515073341726835264578654949774891604371995577615702558164020334026909386169524905333126601282927118603075904052985412658384324420247960663716104558586773241056781640236172183371581480388520583652985734328817511698561021479802151680034791624054136809704097523896676503369152146376235993172118002989866616615971438997089684450613253081208286248007114291011217553528465217443806322628104001264231728387970851829669823752435836440208708450344416387435206487346677432814873562647215854783489985107227125761791235268388870763191570033076232779735065550318825500705635022460012295855913183385555597343260072726010620037940421872163277915657636991544211284124359889781349311164401355231424418759362646186112680070034114257128779693405665289000104912296540588283596128508552405516750988180424090242226942171511461673488003386271922879496586780556618405107159251438119082771429983994317102462837109353382305922167047136789101078785743038031250707086577048727319631297299499239656992452419154971997917752524086669834844894780798118560449702012871240923222770708631156653519282172415018673858041265034330203815365482624972259033215538938320339504982468608197061496265601584953808341262795633908108649182013782615760179189003874737505237218165044705872873499482156507713228465746181448628689398601849778126213771315315332787369409636380879472563697409140296841005541150159535705493085652041851789406512222833630546430137259255078237054831112791704392357116428344622277393103564481041612503863583015400787861815549194244157710768631453598217387807370322420271649619216721397065441497447255507892908340794773223652791397540593850398714691132824522494896380720166168461268428460377184802686404523701764952123156646317858298773776322345294367229388632491687906574843253886372302107964479188612433986289118074367723903681056881210205765293281376886402385457699441974184801947193450702042430838371570501743823688011931652402032577753061400468508640888830912786717968622137004122871870043581033416227284417542347854894243256600356984142837927330946508968965226387516828518841124106650800401295740321177298695189091811689027034732129792661446794746525321703414685535330527950556135387040267448385076749710633301906436494586127694529869344959628422568494125547915266774507675401500309902989724771453689048197636356250814967200322107343581880421849372593291073308620828764671016357244549913729099144985648743892248720142523197081135271904551922579751641630677015329757775839402701855794612077644848883191558619307973759978511598798164242955921286790152381791412130836013481961982839832398391706500044277301664715435748085316371293564717987611635828476347202812681382512658566970546517450496499566188260396516896444232056842059207354442856699786735457093011732904717941027889469288585780501640153125829073268454789352182657823817066946476085851075188972016519479959356085315643910602076069601507603377419186606490682305246723952534649839042838795951319959054178412016943214313300408511086554483074092174216483201771816826839839852816875788975070890696690529329607099882528278260180310706292564882506974905749128531548792549295926804279309732025685067097972564662881306233135790116439558004317406217949500520170689342272907808230434283563025377433927610218691234815142492679063984484685864722450123697892512242906936404495477678597952216008570674177600479981601882176951183066963467176269352915295587431762069841818631489283610795378703017661735955727205775098249945058313887444028204407867831190665845848921823773105290784959677500310394226016742890417209425745249697408657907613683451744142116286978109294647709453909960155830688508994913691847765454044887014144178353346486198162434610610195778981095157721240555521258660755453144785259418487091352934052458656674672529241151060924749598899336940172046429362871209116955270879510141792384093000293407652332973379237956681867706758456608114539347555257614061896122350650387918659224312942780693053558033517126443794559888870646459394047654271668564155112926917776352394424967027474292314551146067338351167190059491564104793613299598998834003720100036173675322651965214673843956504464614925229673426670534671880472520990542670078571537938662083766490446561905319019695282026546933341000297049591820066410073968647708881336213651307485930028299216788187341570538558220439369513280859904250351919558691896131721448258203665100807950256408474152013849852602919519091939547694494049076171475086776169959673528136187164259543040584482129276015425831742589644013807159103779455239064159374648131799690381926718205474630876166053998305301215831792616812989447765040906325154490221606053171621730314679634804564840122300334985500535271480101515633018564919137951506391555675558631222568277455519054580809335477004647394204437762847828065250015087316140554071714044307687465153319043172991394470985539455269770745416544706330978181865858263637262827574006474984578669747973611697524183011904921080373526691492125142699108749954653393341795210097781756295705526482867961409573886768847354693394446974762170838519019930893241800566170800748115693539645916903372167735545742215637046665929239068848757321533653091707683142348824762930332614098537606204254213183798930273822146036139088670789499309959098988002641611078064986351876443406174267542857800731315547093465506082943939861653024181850855457860959511814747842593752241971656537851342742344930788071084684092142781206865236830038157014962892446722974271345581245078053691532775217532748069547767768030900504234819452082249838710031123761862555011145245331004783199431866403712538075836037238877731843861217367097399570610957931701029148253563367254840380660559157567781942946955933914693387383746458832017619515375232289028509039395593219887256116232520301541899057475375819757964534275107451167355807393302723184565504319193168657459787431379405459496117338764288345745990016158165517865246704159313414219639161226495481227873851951298119570529270509858544465548962779620451610404040311168151458316507345788948340449042534682901512077068728000822206011174406827392274679969855413936200782605635829317781640672355338039015063411085592172381175742936082375311786238345992559165211823671001407840916961111979765841402790059635491252218537462710612249688528042928723147615661534346510058089891778636756167398101582568952581159617939549459490064063473807344390112537397224506554345634652307584206565939559847071179831739462602691607280589840172393469103642497814167270118495785973884264500530185457578691142343962893945407394124667795638690586648437716413302471448199478398317224411698263234846547442408991328883248558406928777070703335523951907102503143651561013517826036531138081922057011339582878461429634601507089639725549720292054444790469332708156411874598866709052819064678240418285130712558734292406530794826602096271877940761284145997932390389441930122942416585600104597258618925343502183141503079460949741315039898569224782795206599301066543549149701931885614319135754995335072839777757530504305291964963620374900780725842826740785818144059096962167077776963549068012265577800923178016401619447840523362892394133702396695072221640257783730066489848574769649803135919985239105835894637543386711376490560539854565813866063248268559816881388935812187263919266839225008422069362198106851402590050574436519564269205013049757728097710789143085876654593886556245145488073175626244746920952223815451473101678509158259522082156972065088673131183418798245078613130235200729922702964691338945277126215324137869144076801681941783156776449642403303783541889047878662018031150058741098053726258521404442680775831952268345815825944903759042385529398933935750164789620415951448288839989928683687403065757812360710409833213623662310704742766823963259202941122192742162991189722628622701230608056893209895149957963605361979507044434052011073904816337800510567093575885527941157756635513762558345558525360782166003761563734252254476860203641234996636059202609169865730098051311952570038615404725108589606742045562538850202541505203827090979734174876038134734990183586301653496843859998430060224955313682170403827423438433510009360452064170257410884408941015033548784660096126915449251036152063328014977473396553304737527423620882552322675098855489252684700264328169915905400446431195764918679993067850393049439318289954882558604901220654374905717007392254715649330777402482353928555663251400053573434210897088060710583999954291557355988000735053246627241845097695686964893010717640314664951616101437228900797526662276754660670382184238286910518801787568220451793412453844461609212209420652090525842147684597918510643883712019450951625995616121326758139601200757184901842945718009133941280169568675710635413006958442398251593428714564557563166320868403360535322387326490423616228565781814881844003696036183557470980375887525266726425724600947550592768730776128717488455003681340271581213187440241931255173963686264486905613138092580806750205386398832289695210753174865938537407538616488865493735817603548323589608776049158407583554174101441152713823317604429076177691200084390825185344267453003918771426170969779661951414067378394327352997042092456209058006692563255465219332032779863890025312273028218822539945840937057257375259089039766683185604127063073358407207375181374066684194085143540572439661155395017482894151814172389035441433610698818314499287259008866916290724319817457248463324212179716832269297839739153844537934718269844212312942591299358814083959433140715985514134489148697125099465487668241756060512628082246936814086412485135466943185873116283543186922369371619254871365299528154284813888358905182173748065923366943615458912394521436237589051439063117623503575506562978445329087890317816225411469738184001416565276901662117787889567131930077596213475294201288453204525035898225545714633533876470971773826690188150471292827062540021004056523636518231878828197130154705724537774020583975247144602851465658901518729128206400885253621838225370074430019155767213643484800115375790893397762592202969733432930045276711072575635730283958940791215277416831486612700815286671235469552640122996622252283537229868304451446117145657135057857674171982686194463296109778447672986404959885199096168121657471622240842786327668057048648990776191921617720340516023323010173348042852133929347445304307392512784469555918763179012504410339870966551357730866269416321037715757647667240832522569079012162255216978224156577946914465709273826779916837369709141322921135033897861396983630196869618033346035433355932220910888868544744039641339727606302801569252589344221906471456602553608591159701630221129847383587476046109148015242654560257679994606065322162537829727290222872732440629004455647756016500193932446417991569205420241020743715458338923104008490965210812283977851177650457969845549794909193554231208501131872690603814411705188567946479132586001275223363907265791077825742116138037540411988892262820099597103577667065987882496214245289279951109051973584076006657926015461886060925452793695465698582119525720023926275994132675287971672977859887358249189710057947732742076792791321259488211502378484222378049787784807283959693729466914587250286894090494012228992516715742170932679011639603553798749948809131470082542871274735299971646009252605722043636872525480402298615073788825084981903417613115157039389858684184492945052948341554277436712112133396004508191923712026376772298334449467319421389446138096178902901280924102094896624651038861633009426468822754348841842610214231467424387933913770732078638952084913037291329819095340110180905888869653770695504932075231966780980066772101122920774687388390112662707938574833374343136991423723990847464677179087152828611082960267312120488678173407679160675913358925666347624096338424399600922650682606517310587421067590360688441764976072538650865033711257692755369530587459737876806701266387761712128706474446109377482210953224144143723978169278462249167729704900298679464110477072230670110699234324655698095948130914133883960309751665635655320823724703723041609893998350331937571097901367393969894453566214938273704862605405286503611354193362993985683739989211486925056862156857869243437962262748491258153849303353729653512437527077938683457886986278132374341818219051137212396483145199064592202479660545007260405749506867980927274557381931610658837550608984495907500143028410884966904719783360277617999165281383067236901223387128166219007013293304527369148669592959058521167910505958386263913695466594093335337687266037716341731265874401957381052307190365760006622431186224447164493015771061158371586358663896703657402599285770372046506298013226041871787685234338921744004979838375506582556860976938801177554392863950965104050549944706148077772356147624993396909345969761759099795574240002188628787804314045591696108610106150938833575361595741385957295773911485825578804142234473649566345190094369300146304765266959859538025387562360691730416464336653418874610709797252876550658173374274614776396686230767867272520737979095743696097233656119901624172502519989339098026318445441756025446138822133689245349332826174633901991109358368348612663428511199721019666587264251650643281721444811913323873046978220082922350878558086417127530784672142622868174055199984901755314937915971956799262446412608075615529074872595888551984685269877476699221043624768272021596378991432841868280411377842413885596898620725210259338570978272287003163855735320349981859965737400549053669190410075829039579225183786401379933935828620992234660245990170140821334060057149883489498529024660741759273442238033511592737747119241415568061251490499227935859712081135372849644827241054581290301357994225290023227120913166610295663960279819438572378336148468809946463471412994635035966515365015342980837827948465088788571619589910875189760276765354285738405269543076837910272975720636739605930770542202258095591741078921286855343099693688509738863094530595405286645562980053530590470357244909157638770973290227755943929590691829071486985372360171318177951178461089610001375579274192891975381423448342009300262495097237273515884578939658241416677367690028173375612826545950870304013386023809523175732102975934153060672016091831689414253588753964523666752569372873604203970125667310362233086636335156834133760353381571661936624640503001394317969628345394564007379570396373830628494132854581717553477011354709765298136081069311543308055298563697407962027830576162281095863466429689347581718596679066123184271407545044020743629614942283643211110050287316216114398061049674418792151980150847577974114739638208778562909151065459681513996101425205374074229530984232681340294341735957508119328851415864049993904330865648193330657139458919734226742828105026339290105037515010516244251971970714481258123511145680366576694066938099492281374539562975445904416247466770299504373082908716134933427896863166639947378246553586484584732706002837318048886582831007768168942422531461993049320193755067561750511334493086207141927462930761545918367388635993379770053293334904104867968482098214108464313233668453152936700973277352912763439358197561410485798629928659416955455660672127989388815018098775198268729180301967321929589100011070118857053525854603745296270588827095549254093422293595602390313851412200393553327639131242367810927978513419482644304385822059601519405312611173850139220847156615673308445935357957935303814107971360602333552096078546004378792054267080970487150576038742416222253022727738448418431039246403148208609868516355253253664644943973647788306835731460319240434311861740330418509400604300394885679656108509785428619599326125458190584763167610581846906883791065951448945930145029184623755676156262410529636857314006012516967588156349899322742703851527201726004426480816238895046105686514044201827660661795146446200268799027076700532745943907730668977143507236433646672461275077787482177927350428334192939141012316987134836995820338002287681497838198829767449927387673420437004638392592848136881898128238226532692337824803666641416532168801310512635987006284303315206586790512645154182978977561442049733495410612996009425847239892376523074494543081440743437817700942413922178783688010308678173066274904876766687021401336759325244648315534610548487616009952465644937685316758114395557385420870723848752375187190312225182169356786514488862059343454703577815685929423573060433197009515319243295840692445144471997595230774049117079468820681663696112459633352591239587024671320025934014140067259544121079310606653781167375317970299197622872526795027268353984353198030137889203688721688855958249711581507332128461405722121982280308227641597443442418402056133822717392809152841289850851205922299972921972963365453990134374451188306606445463772923129174012406070040970097286362151137647310136681114269177077540280377250543944788856607287863726536700688821322174512087054248924152810685669275119954088315071708921749845727868814939822649800538187011911737718595660820608560705664416500210065532810860618139671493005649660268059308554880674088592026944167032975276011627104987177637676349475354213112646945725298001659187975851786002256877193322153043416352495019668524898624300948650319114863935037948656075589643176060916423895104005019062160539708585546817669333575478391661651553430576492139436054475294380426022332966243847418882010486338016338561838634795193281458610234772396317494014808203837371361795431884655667510563156786858302728170412008283072489827041289861574805413349237981706773684761251361399762963057226545297905294318278157859812466649858620150750128682335085766542384667551190841086668844567990576221282790189050898930721719623717590258525567405110832780961422473945898433949258642351891582091262907651079863671030388644436169417810758716497281362806693469176677100064836969254066106998982416741946373106030168501721550969185484727658634014513279493714699356010856570334877133475077867163691742806605861736652342151792128291648167267860087462066355254517144056485788909231477412903340078046347132122122384515322916412336261088011091311868532489012253686521802364772425869651871649463623691624595208044394831046770204319408419941959241634207980883498534107475550344367579561159233148715890652234481096056799255472526546429406329036259254852361048312614341816564522490449697686107497448148624810012266577097610985398158168742091376258685509843945981927058468959456124871083408743073550699505133725620996926699427942557309984861888058844040742889520484891393195789118249572940905351465325858884732324352586501201418763471050654462685731655074419502767746302799549512469147258520031660153649564841192438497599400359611048352010279894388802858651530122132968009942015346486321302301107790336659747356273047837483733874765816632107627344593546925577990747837604691854616972952435722498433511238315654662368109851824875876494242325866095121175478768459270905901832116870051616317645564379345346367030571033711819035068395956964487656715988355294853892417658683001730600746406128981778545779324874939632934351789180967022164131953210672956301331095473962285250487778386543727795672220395811412558086246433428158081857718257056905110784646374479415067725593474065011692851794877808248233648674123647010332600297624890149951740850917300605188961221678043130590578285786670569467981175679457060293140591920289968735959005255405848610609523038764137599666800423489910968979971411259749722921264347713657343522266893480447979701198946184284707708126908071595061629832924892949123420421144455001538060578823412923629537624760627302072819200334124199732424565030462290667388371717951429911262727292357575950749304348552272333561192932073024906209229343233662155809822000147847902233641006760874492731196630133312002235721933387064110619964273318675416458968387813970048360059561516348590515658109216786564228020186650572250691239443287162217311023456689363311187805787313426984855939741214112569547055958734710082225604822940076955356988852090326174777366324125092674788034435269721775287377387266570436021293221003071658242985901818634253121342535211251265777147375803364302136227981886368633915333967854439701763482092771582562581045533287750988697236091057026186252832535288485288622851669773502679198511018224945152860177607824424320640172962286927471733720204623374870955301525211384248134674953203058101552230766368463966984627406598905430187010169173610657367330768633132827705486907778679884338578133521499280769691301414869745114045277185785742659452713208411826227760432690954017885183255075193980805084613403200857233575191960007526783055229020296942459553531738090445109200962100688536987181761277954116070436498708462690725227324628821836094226934080448595332404952669988107344888557891058048963946562174568398451636953437241947735505104312680847622263391850766321458899309779536512621409174126973126451009347699303847395353409479460746285289898575709495874922495796498510242804617839817348509593780790098905315622500358988461698999325329024953694855475945154823182564504548166956180688779386086210769203541084093020328344061955941780549247777975419756370467299921680708284510745845867938887652427337435870268853429738058005074289117677537049512191050976424930694721018705603181246290576919800240639065254904342194431087419810192530548295308814635973894300327477084510378178946511871361920097501692773586946076490567009928600040531260970254094540368852301097245889120895470179607714464551861217168875866456141753662943109880490432353324935105493525261990218607743263755764793847363297897225858204579395561399344648415636543852970217736224914621957929485775527046905274009859369747680618948041790426691930264066036255086883514272759071965214715687959796042966880143353116738281376910307083709836771698017117463152380634204994737227918558063108562149276588304821571682832229752356253242504120659205836988210683321284142903397450867406682214877409181861999300343951169802143660044086605523140209282663757784139643971999081193482369876054755236295900849626851737404638764330336880475366878645915123130465267017630980482255531193515125612432559311019981909182451419095009743522249250144148599842187623852744501363795830701465287402965633729410753693227670378073399280429914165795497291037599419434335592311235254582104138412877437606398132828333572130362796197596056247947275790369388671447830275397378373931259090808849438762255994751302419664793230460730592684008919957630128302594069456873002773649392950199700203261814414338143121748396912909357904380871919509836886015496841708141195896320066304809804368967414579848889432722698344669998179402591070147106022780415700553131993342464324529718029789475158384423788918530473099382514762112881882856471351230689663272097638154724386881623618132103453539971935532517145577982518627201478372468078969894504125875366894045213133263274520896827243484419064890424870696554907672527647939570081046730805745127569059752491283996559042803132834458495731152676829902485340634156843371675072104490311370805476208824498541204260262414429446521327488350048820508272944575503258306926653028226681679864649695043563674172735694422112261464249939162475397580390419730632639641459188246209595227870881783071856226124200609245818539636297950654672443440185588259354511357551583571122472169269145003991791455199242057750255419496423656002631460833266007645804441456738736141420029307694442693140300985237557885667819446008208902243179490159438808351295408164792687325403395531055271745107667950668630219696556056942610638864331110333309364667184830052575438081909322340095887304835148579319723552229717540494605712162536047359731881033084933544922000422661191111399708388874288310378844336771462815340620084392136544769588339757574700065173574465796980895319707330161713512884516564456461954456913310982712679039906574641078914080729590891434098105615873342388597438416473940546778660776290016157082908580336970519499838876832153222674437231605308254276607975031900665424069983482063953933926191793813315462708438441711579170714198695248105743494925516939140190610948796369829381848992169126582503430402468782697638524953038460399623699972703215433592257743886973193816581787141809767013631542908405629546733041919090890465574878434510316886019220504424840503820411511913450804520121466269014772771595137458477852337043902111152489005313069775803118148471747177439416934916305866522458942727225035503551058626571985292641944766149723118989904223560328492526061876497305038280440141214072813612399956979134094608489874097871143596743140217822046480121145844551167737671257634951898141031281146467468929593194147446319228020302821999368980065624298858809425453868153189927903499707699550680973045574691244041126589208696430192664322383408787526265239613310030274127274158149736524782908716803499447257480511838516420678584444793403992591261239594189524578399392560622343943262784305216701978043583842111790532011424768930156623120797907211022287608392270826184079620255247402328771333939817658216600892718165106865763798002125060739594731811768409524767979566992542696868881051950223164578681458781524954784859836215463922245114414978936955355161935684807959702049679660566616262936034250229531604054680233201222873678631804572298913537572117853796746605390603938579917033577809019796569010842458783422868063900151988100394984175939206878777946812645300170482431235570271399939823206461490073939838613635021531249990095761228654542816087276324265677074136048656717825968848513244154487864890124092763901956800173382087363251781353279099518537142216178757087434859561348656002179218987434280563498477188475673220555159680023039990818706729147567773241339250836880093313467633772531344885036353486917476878714205815599941381789073348249539704745529437239321581737173767167496488860190677244709156029394743697132654095371941437093090912589792548426208489944527050246819540074178665077312560726340496792300944826513898658258360418056559760931347759339042713220628501893546281439927335788453338496228649779237230743584044548167101450236143626719029768625526912975583375930600344235708659668669455386632584606001114000738083992902022196012042632432625604437931380836939462730797751279808735349495327839602799728612438846486958095126118873272261217824310410119429520279797747799745229912393167185101167859668408257066090424249004408879888529005531216811801916267899809985584043539141865879790103450427992002160944079536480488946829749713826280951534048779285870236825278624507044132559636463002871515266703862744537743166356893029063702709739472967561255596372174144961728892647215971688896837752534229111109196773056491037092075780942493547919223309500903780933829094600954391955685471086166619747347132299408723616287377976418090345022099111451773563785770660885170004061603666483420268373620246508910816520397366535571379027132654274781350776932263642841117330142222513553027734336728941454412681050398746196376340526965739229751365685546554246739466001536213525282066467344632095431348895095020524621393916653185421491798587294581518251303218690682812381347029749328065947776727948857856180515852010485403372750354336531383163946209451282638604837170758053634973545251521901679394353355055429899170148261190435367460799956578489566226648706923088731769528937155633447059484362941384270793615477587185157056304526077465503405804366024418595325303236521991322019505497077826381593549864223748982259873853497578666721649653980296727050618946172763919944369620089027527131043419365985044260680765868039153035096581610020428100396549304460880827577110923921482499955736173074670073495947516495847979956894563571774046223455367690976604461903714961756663447406939008135293075624470082606147960941046366676960722392103613613669901170629583967012559874459023099328313766673077288621398648677046039650390767622379408133871445053582328291366746943179946489508881239163854230642394261420441111128121833682077033692318630769690285205768677763740140276106336951487264817712311611030513378288925821500074710318245189492087928105941457547993474470638209801128769604265815126145668959893431324185199671360249807889407679215928171068577254359982571934472610987313901500158345758505925691000537389895101988273105010458606180077096208411355962799988796991839848108423146409548189391108837965358270053087615300366545749635429831340287033475979768035617967414759033657893746106687845874086888990706928184424303126624708959958080667586343568031954983161573276164484785695354392115059495358963327758321763708760866149886378255786697806541008006702853444877370011412161146437002060249609553074305940743965517817770761554264108475834906399595365305180123844274374999504581426089587945563512990596482135014051171992520659024817876476606664437975417218933284268781580965751536123350619622307777705105527634646088436280409288376273871636879700653785259052191824237475095451650549413039826237116654638434335580571445204536683012167453163124158443605105148940250683621450856049306270331463348236590044888824290474944206058999684832654445947443819714631288259116513722074700492430612899267772991168196815670908433005040840347869046113473344058767484079119682066975025292814563365372699759430736665840835993261423913703058172682856995895689975361325242630547662128669025707220784490900235258424931920106999571852056126926831129595997053769888290230628104529037692679019165245034931917656838716501511859043103287649161627022784920630491181320226696310039447190714245210464304170541148642346193373248008555261761930346627366810011330668390474092725407343963191854428663198870828692273945794689851829566826083839254309299780591379466566045495471968660113629174351690839692733104733860833333469137496145272862025188087753557678112850093673100569802480116276830808482116782461867994054927878923582611413477342475395950510692870454680504627297944727125251011422685642444784172120543494615751225717746308875777399022606634693275553325188492960956991296083967436530843567203662169707378215489277129416992748679256700423920640814915213402475212429116548007700708959003989377195351552050898970665998541141157513094666916932637745662850526016419738908966930560858565620568402104422194627594970527480351113976435829797602679053836758290205393170863017983488169800808996683959960134167104305732816087058089999913984818884491796346446116500351734887575139615894002099287694469280896862975477579694320889759493029130549517340195894564987085624132667345587062810856118029535066203916957722654153721744668463282090626746208585880190433536412876940543793301128095177789992420547019978018020595100684386396631534979916664627366723583556303556901644714856922420850384708442264225163985972033750509047793287850363495478117053975902064652040157944377387379796676072998371154508986972570597490523233039176661094696150178320817751136829987650490108161074117846095657952982932065723219450037231443852804038686361284784192076612595347114852382186010271981359579196725690378279364177300648211979091278123426508672833952147809828903437520278402567883360015556762715521853678303330420275918120109773812020968307769221207358884718476739525786668993560776157070931957387064993473678604554756802578863462696301421614080175119856284866816292217198935090877290374732749681433128061808823515626959630135788571465016775200173126807413815162332619863694728128587195484089871015082545644082319307677178606865407551231924116360414139223054758803019775959187632217606748678721206843364661228867553187842652001760461798392774413340673265103938054934016066904204763811076843608438791056929356050387843427157618478405878789341244804349209632474264872918669857807211986485118675497189564578295141171012872899157656435159745856472440896215433005918772608356426186932530442795132127325337114899181604563179954619454338631176307503007792158156423905540848948410723174334327417343247838465161332836748371414723335383380089360173480206709241114642547317619154986108689068111584069092664676311436154952470177579974957543914224956232922556278538438432390242510327739895350148011590740388352048379612743763226732957050994811988036592830394479948145155346108575322429134949945500378670139164597740805877486431623249379950309465558034872409918125879774220827861526070410941067535450803753071912856380639278815450745811769806169545174783195969670908143342508656316939047847111565760370830728261190624229642375103880046842490647028005344223682226888700652936479616573757544160656378490362945756419126280125571381587482385020746725635063770369275638058392601856549724430824091027044297900729736636197415265094218051383862624043885981214193919053691316174895794185835786180124951633955726521888530431886905773050526238048477888073542816810181991634142539255008467127391794498453193028794554473698455179020601090434262095699362610110899576577407806840549393258861876478534062722064838789237042066073616580744984267711327565830137593861305586019184140774090115800295411621517194035387022780447771149892884098198971373542931246388335750704971174107176228975422634932526464817394091207781041608777888469419475757319463175648230789127963325713543279736160729594128101501183824628495669901187766631248760323329293627426180652337188466827059570521864523143025750252261096445873341806708111939680118078562251992502271934189293157721642026240914520063128286653583171366402944829553731952116819355448350132747630089537024852863699023739801320735053888346981179589662055711402722962870127337092108672100414197299577210118650868610378279363286999656514044135548165271333915386679553758810288183380280478330385451284468038882713122644189547351021905869563792500752907724475009619083246194064875333511368425262050129453478973113944466581003878004969463819620528517077140738150809759184007878799628938304462408871375572132608988161220007539467750967684906162083778046773817385956424881963306536510902790629684050020978229221430389722027271481917124495360131961815294381315545293306850660995240440309581747742915000383963276662130266533222393355736463468260488996904136928224430898242074776364212796152944610968282739911579724935687729889980415824846070277595612773110533898379973672368075008581492503058175555395201851216276456155930547978584602356263169868710883929803630513715397037720941854409741736303789151863419374713971887195337239308880160443359660755009328022526936419217022657052766054740269443102338729181358739436168390345194327539717080367105416812648686943738087048638711320495723618516203190337034839762672008659179427258365796122226841252909674993418886846141039449166475867907125429408074788488687313668690809169579488521696846966266347429527243560259777553303842960486145559512028671470525751582892581590568461097731052695813159342512453827485980838665505713226663541268992216790360949220310745870252187927540632440804982932791502962139048346843240610232539135570434414905453732239149241566719157457824540886957173994057203117795445598960324110031950998374846376156525223094475038396055518298671041167114310629663768541802123624005789085966141152623477120405022549083459925959209948675494117753038391468954618212692115899446608333756865806371171085700777005796048186126211675818783908018594762201694461854260222059752902258735166917252548004953902326997120701639499253734740593546099265245513635781672228815786604899771216368350246890203775302370811874863046127210426604194677510273498597709574363905585228944040560144302800098602485444023028095482233510976716732705552355240817883560739276561255233218614510501677418456097572144789515635999061358000186249460348725613059063680066068424838075102500538522914180134808592546676513170486393491839913404658303933504837125874334417172658496580952836711595363717773611886652952826350351378205432968452189488735484104339218149095108945246819899397361309422986403982372538640029750463274381328538632286311579981737394934112080248845059811611191658440578202501594504207549455305853949838682833839638843650394032967970773236242033143656132491342670971263461040651063431984380116974458814538349470958994066359431356112554236607866629879387893161379610377190785023569688125267465611651143476585978008632906028849058262170915993525282417188437929515549053546364880574852261631154777764813760863914879240628152106642635927315571609708911943157456725155671269458601648605883223167533183345508201817254143041076831566015935593516038425732774402999915447344315380173986700111489137262307040815007691747405138647193650570638405139177944774991421138221511865940313496944280807993689087611193241435524237401117144502143183269734110435832311804385934036422778603662648090010634572603812742057163829883368933501354080400239829411632651734820594573113232921986969845327492814326722251792978610921438783212182822773628540432095652212304784133537849575703613751804944259352654033319867530509730448939164847868328684899840524154940876478864569419067660722791111327564019297404051546560358748635891223224964905625032393856391392970876330270938171062485183196835979341273272171619745379304671187788185938545258855290057539459195890190411731005856662428297552916946673576384926618156130008372634125565222844125889342033655705660924977567290627162204843679825688821044754672323044331130008393804137454874452002514306637442460288467799777429613124178898037889348598275378002176841880517914633952551574136502086465694963990778668118168143366306972226602632142570907751542417873718543504262836465986268644722128154134531605268382982252598509406528502284321695110560172370243152730874807125878177351388325448883809739349694145123676167712993536049827592499754576157761535019727469284395888035314247900391396196414516542030197766859920234127647928063331777063730048414486850418088068566883905658700242592898654489293752363170009203092242071856072241308214149074607085477330130975791515782817263569302131429268201010608665566414854229752888408107175863530132050692473638871184206329542106132742930934431055360139221360049336641576165654034874562879489112586292535000159348778664490710815451417749932654793676151367645027906034194573001272344587760772869479340793704851362774007528058810349680673052922348857378324123875640042834401300080146974908228555852434860855348752831776359414046624426817370007828224570975098972147791749003689048915055579490962404846269533675256337652987805220543112864604160564587257690037719759369447460923819486020941849785920053320201053778353778181897389294752022411418802315209508976369700992099265119541527406770486637665450271134979784161745029785617186328105298974931358426988397352834748601956643529640928982168032235080097804864119945067690177333410290089197278273109070361116358817167090517755919028190210723439997599150542410068753924199331286659746743337071147665199691602742437345619097853906507031113280954047172273130415130185297441822423653201075284363088868813322268666763710607012618873760645781397065804983084887162050362122026285299044352258836796047337720454826922141333725926197639511309788872336046183548444720088117026794436548084348298962063317428198522815641832216458942854080806357282014552117387347262282114177462275565975641216237773315615961037500741256723830554194630601650188634608044211108564137630292877174271512452264988632458392759715258508208781650919838044792313436308505901587764471137639133208452807509655212141446062253228767256431282234134733541423049504681451112812945770813777319941219095482202812876970929629886080452962555104963854438811576662122117842568931442563564923077757015550409133009398126919132715324258291567560542501714072224425068130298803616747348374916141911812589955207163862198604373131132203788404756240932861758865702841567084269966321460758998197427871950610169964389916779812138569836699171278405821748032660839583268676956741787286014909239769769413901813015193580486180175512868802866021939394204966681209013957783752898914425213344915476517407124482292821599770827883156390767369370474473642609867279613115358160748444975385472758988571714055873389410606804519440448070024512967208423854980400729158599755346512786848494338866365414141205618565393896825498738259277214834214931648107678629707434957041936871147629900024060404714495171104818576858035518410980388938032588175890621794787534351200884590412223239722347181938337803997432622806070210019074117315352073258731957595460889598232097087473712257386774400317489491961291302834837083880212129819433546202246570702173658865012966097520932273666555886353851756526767452494268909958067775465826274127562341091921707660325547027040421186430697015683538044008535750504125413813443809506524367577924025094645573347139784450257918063572454134145017185149742653119767517530386085066255949108323087723694414452165749773476294126697512587585369622631301976588049934027269338424162510260991301948651629849796903542214584550399982496322077251164583597843066611263567439967986511523651582787151269228544116017119887541636654948905615209882845055306078306555242547612780751246475218241362387245290776327542680322810167013852347111991576846483213846750075849703584605800055506186108842129669013055409560981967410822660077266457480154904740957465627213873064801955422703233210724671858112160448459964348349560407736580682598581894613726784637982825960780585685562030191540921617495607801233547171094755188817925484337502870858066109690231936283209467533008590401508419356532490973906847515520721874596867766761301804061400354716821812304351056299356116544803083898545217470256119720196962447469366893171091315308800898454852521075080786039808226735515970805528729972256494739227961958018928202710709298425463441394916594498336353276530855965540567441864611055789261270069272270828411057547272332496064160943822704838327801523849319647155163032062960840084708355142305657389911362149693682766796380809357357881658611408250179660862288449184724295684560550837647986109980455812783803619551035289793349032645499131618393680890974089480803184535015082971987194917796294660841353330824441667751063550447534054223486679974795824335309380917662440935670236209780212826056874729034277430379934418143941212647572389373174208418155788797685592789356949855289546620782913941711056291616476830043145435661905592788408308332656050506871415335113560733693423405684969463361123587191700331067495659835103744429979480163165857372952380624674163305776357237288829833365701918807486650843505563476888105377120782558008292168799427621455629681759848780051086004384286937312673535185420319700359288334303076955259317646558575257659677846824052291940170947588692304862927318826534033558548966991829304058265999109054843797922772445228874791378507427534361631886144908450694672920823469794902995996985642128759302272076413339256726921948078305302048825899074414423228927052012638807297288881244079759001118707146512202539029537378601640017494869302097188680466832173717953802920583396060020751772352144889931921764346565817923639506917550645311280788875480468936918842287219344804067866281205760611267559202861918999109471995705205763588358460449956467600296925589583482658710344465869437670947428083660097700146820531741862798543438837510360718344343553447156317426636138877259666094699298615050614292118401644662915258898440233121630226879817503744810372250387021878047185843977274638605971839920007604184361027038034851986521344649271304834957883741346868257237879536004267601168711800570439319981285199613805154487489168354141511766736474170134826902731985358278266533298304022098927535773640291300421693189416172959889513254502725480977971670789096193746489416188244746737857920321137367283950519739563568471232774891976846943032602597479026214129216334361335278247765095042761396471501905512817455988995246619524285815632276214738127639011321476469627951032629730326034812579846203071004714471129194680108421890856322947710993180425808004579322972111379918850534486372894653626792538929833111481007687003126773099575330960994243481042266268518838724514527779447871576858831993543161238380680773294176060723704434881865208243586501473568777307185582255055030940053686973182089283838359352782265327639899384880105588103025318522861457896308952523582537404745837033678389899527627887427413888653734709052438850074969069064871108839207564196270196156929642028818709836222011618117418601124635302980106710305798214054786838445823670958268757256962636300388119918774231634510840155502614884012567486332819258832713825630350996149446168370442337305014213076797399991263086666779383879657895203508400095115163237468703999644500604946903119953514814935931059025202715797485689099451067127186629352656780225170264379447029637744639582500118320907033326286312572922849029766912116939167235598436853845561405820557371607055063251460464792509251595516873714864324583801493843110006334534972693175160461149944243315638097963361387920668291448737746030036742905978085660899370140371454138906902051307016919165823540773600936180282437932008334534508835927568193251386928702944632525222671112280432015117538121972887191362400097021658136004328969270874427359961579663537161550365859054107066688372741770652374535039618596994114481728429080408709594158099305259574555884676683053555261008014880165111921332412095204270311231533045281134762034604597691990728475145131533312668951348328505843760992722919886742134237486927459855037181766735947029744097362983826551992180579335517438306045102648231510842185929516147438128334723956503097477785332856547148717635020361790920768650430021574399071330757268152612090671838323081839312599697369439118235464549853936539833175510296065315236626167468569599860417731827318679806485011984253540898410634488128520012000324011719993860412442098321548868298754320263851649319106463507001974464243036436652199123851341898107584202300499666942545768596499135887593534085908893932015195752765720212345058555821895667626322281608655086584779152097285837501018455707356267949528665422840449238433811110433646494997796558315960683581024381969498350269143820514256536145722269719998513744567791239998083755164286481161904000345252782986856470172677183198804631952147080393588172201072501225865908405475113205594831408308764722835125888260873354678996973678816752727236891301747622510695463777022921757012611506976829388043158142920831864902791804187205888806298554496937543471712546450085756929284158506240922501589551035705208521558205163821429398048136183946441043773633442415194319390037206556139894068772742393896579454121974254769117811540626027836983402797153594685781126697303447248612333733519123767908087373481506190638308785250602706732427905953332145380798818923567074327963700937912556758020195278443064091382310396913427609559446564834716309717179652441859725339099172252258910926669349569297149369250719088002145320400023717659287540916635349125548355281404451391970095188414219302516975164781149905346841899777773899490835365285963816908131327332516954512797235042277457449085785637052948568780716504408053498912998799906902822733005019570028692251958841729076390329006970293787629968393335107709190810689092808786335825998016935486266151766260965036355079088488878784535552809191148715785953082641861356079547665105467978278729008177852678996263914570494846016030936090293101783360551111400147589968840571197190534023397904173346132854710817234914809280647992699255185858222272229165623111085578192321883772626625122085956517300206841471189073532103880144157593297079365333376573897480521725957676370506883345367325625936980873682311262710423541105638745240625134692733506702100171906363125492363875156119435809944614437373591084610557686756753840068522422952377640100712242308274350852492943685874348340984942747982712792529535368332912744267592632927584178888750071328289331905889448720434924868015608435922024342635462686605139986088581468587747724902395631354580208843114126896581673306781509935940414733663493906386333309539101947892017954086235813348825816981842713432536600387304870383407376662283340235359274209638664748380934410627511254905304653313393527965595674137446705748066291640696585142655356035552649892775383054954206103169285771140519345019707369814415640559848116924853380815876097484716666091745400606554022210107637531631630450265517528315237549021848743301041987447263693962237288448434350031317189520166625464860640876393775144176450731588748655260331236943059651338104916120484910919120085802097081340592863693456964081818357076238834242169921003661393801733688331996079965361256764441322417474073043852641132057186370741265797949717612669706062735952478498397947400364095398549515630818092370578370019649902375525029211925502905840396623458559230040832919130559124796211377955558400040712856411620069944663201984762600815295072398931983809762376590303470741768926887687366462042841651538201527369265271587367620489517250371069112759483702115588140210308505406467576723857204157860345131756904824248199262377075184446108147252700513536160418866409981985561955282331166789426013572517124992759594420087567076199068043245250448064613639025772338107655621016651047620274408144248958707413290631030399223506943939668071127906247357752130783254653639858003712802506728548117505230460133019458964031500383642014853075010408502290494473125094620033551080483988360637342914821757696722765358207915791114037803362706823823630929021202328055969032509365472781524069163205548466130875455586019754622308032192488020227505860772988486351906003590519776374618682456817036724087001092682424933975887962572757976208977835861393136093739068578715971313393450854476563212157995702024682373786571215771331045276241125920948905814750176025889420335946073001940284518118361176109647547366187634337117899626638313119365535945479300648476410886337569565451519515775843995291174660005171359525832039639686719470068304065045289558791388388642917666925706755207226767419970229714909334034195485188189827581079289874122402472493053660810060015011278138441360533131984222626829653073846436269078951272986656446274153114134819570476164839117430791094839026818050944427861616263668929032662738040969609569435202078796717758027148220047929114803662858210970715443411037803108961694924171609379523842977983860563922692204453914448010520900276686261659014147409251451006734010358501003041027638215526584208535062826763706461021258879514963974042904690885808376577424849108866913657126751952545644777280388258352941342390586339043197068658308156374587141751255767977534778408536471483618525999301789400629208621909171913953075059134241641308973322474571788514044115462419240033902591276199671035470375641882704419471071473348538627593219632965847951974492340829120028311770785821395788920534406834833027340502754037297209561934989781404647822325020009661333838854864445634592596518366034518021162186170912023903620412242949071435291737021637364600176637106440493608398369679918612279836622303484855165958662669325335185576204411665243310777944761968668620407801895059846231737147490892681351992946169355757843341283717959408246299591145793897771461212718733489220591537267822525995062262754430667579945317202479295731424066549369643306702579105442471154992755767674495714631161362270353061567403098019930503308379228825653161585696576480782235957751341439393673493455055725343347536979900912671924703587213070342980425099299564104931543359766375731435626497353962457769325367133590029347015455045781899342893939250656189450174423584233512835151930506936965287039229622736672922638235568738092557097867687176347637542066600556891431451519304435019386131450052093187287003720960761209232726686185786841100594478192987315568155891353663418081738824697643975523334140484512743244515877927039345863321223367450935918463069102727729472654124788513646228576329294004096862149581863585713644535404942379819806517045259360524686878331961766411204505966679195321330047586653702830689300800753982908652684714868180798409990303556642556863692038916738152879489397678139043922787956806477431528549205498025021406456994846720447474221125811319643264878817448578701476399282517581857725386838227714897846521990665036458244343234309146843144790402458767386566348741575293128349434507440651036444556812800998199214139798892517123597439955228233959891320818965842179906410419677968732648672410725360597527932584772779701818784719359151813505950771876765844819781425140017985738941088152373947325212012382212687225806192260608640788887862944342237304434171586245179478127578971359891582159591424132303066856853582937220859446613271927940711474026745997766965071575179779098907825369632024400060207858812790266910996422597627838697824468532372718411516507175815022703484144133755383564328416060300330478177958740615755123762894874114969947259969950170260551007878214559554046344979798596000808307081097692856128753773719178042784496452152137536047587642410512015716107790881119229121813462957964207708758571588591420544613086483133590700900362154238567225656302598499754593636749520004601283324482790546026896860047603892608196484203662264067417289409176038885112597682554881223101755516058256392613687600093544494045846211457793881827405382044066880635567866006781408280256237796520214909042463289587894711624559696030131874682543854538236919697715905227170781434230591611683236452742836064041565210216924045287042901775765254662420692090522733543744497597395200302318373079584226701800882539527080013388915247722372907359273876033117941729653066284411246439923220582906256863120323415621540479345954588244938748211392331646360717912898055794447214035361597100659906747205213699040270339803821405603401213755815702145624781053251046143113199282552273277596794977984714391400786194246186388911675375124117712680443033286452267247591537336277794137657855318236542307534838810109035718373905914524336739304815166335511118223297942405262923211589897910628405087446933032241061319340863788975605668878954817374517768105551237707185190429891421672006562100168549606865302252273499445252013426443377002901887810772548887093782688335429167513986029940985685848395318315738702104401917301015980995944494461601118106803813697076501782675000028252145259858265600104397021808009243382674400577699960777097737749879650022230429072880903909082304151834321602046265532940786185225368679109956698268626469521920561386879794548814246275783188642202782281755904767316119848142861650376202627683300089514876902858270371943476150669126742453717407212117268071397447841797134985699189451749235610972399890209203568486946917050117223648478964264395540718159705506675816307783764608525378191198848805786237984961285979322185842880505120516086708613626086392294489183418543354096108693330283173824361469295070470560468039692903720704733049254502326026352108321494724824162892420678371383902497231732804773200350603514378427828073322096012673979274955534965779419287031759522489112161620706594604908106286611969993889823040148310573581198857172737233046293877408613133744570942625876866859811097558185243542589760498276268476334538698428103476198762825849254009260323107736002569028270296151610281288018263138140447337987501383611350138120364306137380634236020950319742076860250081402516803796357169838826554608416802099632342543922473789293845286786783054501455469542469638074462743544306393863245488667241516801085457486919929807460595818978964970294172771879563992485810612542571659600700661598347112359302314505197617546996492363540493584367000136089478692840172500424597837248065176030820340850944142762931721372862465276328006409829132561624087300833702398815341561254281974449811233507370853293704761075049000309325630676911310852936762257853291072387196975076822583451086144854835975242852828729717756199067992413166003280154455806699107806715413528218675197596578628377172551159649717972196711481926903770847359321616817291013148902433184464282378470900123782081800613302683638598956617086452360362467739272358088210925581138813033416836080289939129757859985272847643614371407568188755547010406925093277440373665053975133579164014799158889154060309213149914210477788141058660025281519762392323533164192189503931677541940887921005553010545474761791541105303329871899991958572515098910357012109470200255431053236670883672317355086158872048620711342222354640710080657048520186316507340155375642545943546417561763435876564776683950146996062714582125753532006438304001587428546438553047168778013559786057333865945356530175858790196367719325778313904402499695314725029660530464798826594409215309811333952757509107074034222341491849080539676480867300679895052364081150375302363948123087648220150887111777097153464563959164332948100051785490870318005012786299789836188789008519522574617764629435235082497521044441555821753974553632232439013605466477851140734427560626661096819979449088257126886157466606148806833603706654746353195782736731677558197665506714593751146996583866484402373049551847727044317140758274170987426794099848969613994816153143737444175260447725306548272311655123553982759045307058215814728609061781227821718137023666874200031532402799555197248426113244569479154673846099815260925684124843594838369487512213622089739035201212295614499805772460693075387424403861448946966754592068027345090751952222769367306498700539418618550853144992009389150064395174300854999943688198788795651238823838993605285941262618055939102499349259483627587668824313160220746311309580519508875823418724630097017317091531152977133201233931181077460949517198014820871894126664494316296980943124576749440559570549229367985405770328748447682330204557409283298718870590452733507239266780617685323219209992316361019267039395505213567675442891856634573913812325218411089674284588763657882219632951725292286925310160003979223961441240668736392828446843442115475635508544650483715114109189618669235064434389715238429379431326740262129259432061433604027203930212975156616393340711971861926642815933066367048554443443829853097980769044281318370142597467016136491973483733616076635942497058688296195260380364153629083353037335070588265605954448486999252111139359823027816966918710925971816449769864767031225169468685647648945376982037690170685439269453824716059158604108479977774676637537711045895046359876124818589283133408890065437469861839914557716451255893204880697906721292543928166074717784538272162954281113462659896374105175152765663306165205311858057638522735833086414520673831106458946150410013830279777752791784416996166329959069059408425410672618900235303214967061128434593930585815911486112019032766293907112010750998581602079483385264012226825291098413730555532646136764216505082022553852177288851780465963629978410778492006705008751829402116512892716422052625577268199621175086575528209699098170686979602990214337978678118166367791753806663364663486351894877221147384731063461436444337578424690496250989511662399894717957059425635470300951714619747742489362553066019296281460053512432955600596512165244502290680318765454543745084995095173947328948066237419649469523821237028881662782964285247656932763509708865693677178867059605348862068610096500241193603959979740263414899179394517656973628151385312416513798052857500095128727631865363583193290515367875851927597066468895937185515939081829081673382432847167386449537057373043543732781548339135480915480522316420603612708380011636511535489406557658049500766877361201120170850494863054890455367140610666135298171498398595792120528091834915476931241321985970364576888447059365068991967611064435498559191122633202049129267596727281801475107445926570537357964245200813573718795396060452461035302690136495464094918004968275396731819011212889719424231784427877469851080957733665995506738566119092901868405174608782754868742126196883237971242061741568165563460119815324124575944920052904859522113437526245917105149102125035655002367150245979737097820972973828016093324207118109194266844548734040831998267645981910681329962565818387049803497880764707848792981908953040552621087105079322300679250539293355258577397008650876275890517640733675727756251842433423384844481166482628692507885865157143771156155152077922904957405126088245573199907980838542287496393287556147763611078331651149821806135312131129466868848068977647363688034472511620208828021398406188258487070626613052811750592759052303628091307965026076393516643481730007486959719971416925365753409918467671731442875157726611507311120230763078448719460389342694630422130898147619049873574853739087003100475129247408239618024392704834480448494065453801568435461013051416492324052771815000572491239095286216380451738313978903615889999540176260180656994938084980250352443481476804611550821957360338270149266891128047471481616423182789227639947337762568804094367989907908121774753382941862743771546517323681641989110327126434192006996119450193715862376485818417695403958001927129863433530435399585266771654388429513734497037324546776038193282090353525397261276288730884703762806925738249018169750048119984736401735404139625531352191593955126311554285345468933123932125682911044357981150855850025523365539701281620736646971264971311327392265584912639607152506704043200700749171393012693069143987971573668831220390499113574534994058613480405329681877874091100074614533649559642272113099029701020014960993506823152959752556773129943848004609623294149397342786566119996097969673219546932811018351216379700631584796028633861615689401611191454356679873621335779009233214762271532694691967652626134860585421723134999979613690233614156047064141288250938870207885046361799364500626919017103697308471080738320694977178445849867901699129037393688172804923896615792982211258023875579390480939723581946241744632932140305309222453410890769293593598437743381918362636642330817744370857681010209699651417424541230994317333061877914572829710078204229437561858333618411634421601267543904093112974781614087536933492303343067922155507764295761748395847591791025172808708861663429018446109490818090447087865952581604631943167945490609410755340560228086577506748913957953428671118506115582355582370363135620597749675764748125982532767423296545161908823908499189468160731956254969758120501727402453772605328031676809565814732848501141238652766126201872144262741485536262727761951307689056544315192037300646972170310703914179051379837256067723114352379495300519128654949023113161431910636387939730148805956234817094297815887609887049552337243588772898098024288783017276505425198385655370516775504705277415012405852461283788672667578936062953257985627844530871524186079669737412431633675080651993225687638361110327397598611844111652182669971507693685872970868144932509614517850486234305716155815648480666099401000099383319858264172485557596990143594076682202416643521755095772822793136566329036530380747583910769010146429432297043325750017745362191552614288020707123246254607347834040953865747691875551968848878489386042815745332850490681022480426185257439292934917077226208104273003087852498546812164764133428775412152602861307817012632784279043604711989314627151717580434330215833851653500355910215133896286981962637344864106489951526337127323011670723343979696824837168292135196455374731425408869522322411235507418781953339288267536028960511858623682218446376187236144594106608790243089416889129919219393135070618536077175173180744054658737137895609603291548454092421961890759073455355442756816187382199152219840209064170094631400328098568599072188586088476077355224994469968029357192105168670363048046597081105238112133893852396063170620676511458101810485101806384992308189475364593578465113675310683538762598532224859113645860169346929077883270204072811244084597485628690670499128298399807370879098267107051034016105589104003133273341966483327722168993619452679279306432777201359081129917042169352399205031822062206802899790013595448058633477045553199266986952787440158119056516072777074193870688404170794938409574617715843355669539123391849602448076667781185537178034305547213806399156817090448560242926156785709071540073748285418477330928056048776698556562021432821211737782493212738069579360010453447175009169705100872659057050678909166593965552562052063794886783227360535688784574724076541258293829850344795207764394718582938496826578330007666794636744708030816837001130697617037600522725390644146705780411447341208870240462847638035258181581969874086052557262975856701692545323560674278591897508035412154571996585072566468809237467256717167879552731820025907133395347119858319818998122054222203646608079234584108278918226127342360553071635460765257185476255794852173196182768865006600610033818403803383178183740988934270220039305888985448954307027963808130783360494974889871022985459560433386408608859763420152731764288112452207372871702610328773489539869292069258549328111531797985723705984689488230086714794706977172764638655701936069608972125830520517541043276722388677408774228700776792641076985663699628473371693104453215869444748016418660819806112480501973374080437413147864381527847573593916145347616076294189423789430843458116336892153031236028759670102607905773907751322395084405485674643496014230312740422328766897135058505295541891399552062619813460273397967272240439406434514274823333626849539116383030330490979276396072383447331191473998460089952523507037272708228657889260650434113965343965138244955966782548950930141604439807910541469539040210717986251680331617840777627812342132687859731234568135327493646712320993396234818034879766821838282786537728903267549402913420655616349500296186967387065824918885639881986261151062251026410908361972075467928642680147371379191406173374973332557194311734990338948162650725840661789209179951680136097162002889246958623033154318196246078441523804269159998060952150060029844807084871695036018331317042025913499761508827943300856134830439781805653066873296369796169959457568261274186869982852607569645665117797407068261894298385271605401864058491041287227090297497513591615214508886908567161296009738755661969364996828087148166696738789772578805541173659215165272650659791292874888554365532928699123484526878959897528391224649008023917483122835790693010621682702631157060359736308725372685039197361670983090253923700136074382766544175529918430227398742271127712570704028024484946132684880644385059270882657659230485505938827824003663694241924797799021092394634848285568114970296795909170959400045379398345906028765209510283162679479874760853361808140067731968189045191208914019987482402475687176535433269200621879837504049432904262921611995164581424470558371938771389922248583972304682699870866473451552171258715490073217721784232778250737291417179314150695793444166566964995858430954687399354793210018005495733427280583788555873702449527475633974787543694451560485973363752272572857352819135614714641406846862351432212090693166568940231283838098278128706210540090132741651953058560095505749409501370847126214198055950433883927947635997233675582324798543115607737107057269346223670437163994493761878522022751730475544185299291145229649142280789968783942954637911909599357577329252241598566591519805592948489975275264424502510444793984284440275916642014589245760297210453654648174132524317984627301644893718272511381054391843420366099133053763089027270463905005946279320429784841846638173276885790850125399918180722181507149720716863394909752419966940357014259347051553148378334381006139172581478671645653466215225838978802959696232329621350190445207559378308019561636504366927758397929118220079286238509244297172433300319104357506204991424687766098137464780264045372420572813463096707896424651872243819959497396673684564892065626937645963407523924522008852118933564930202868844870260824429790638987661755623935405126079510431924748102484591581299663744673851286487690738416571298645542398124250557063311638164910370491552586075050831952547964047164513543119890546929098482152356684136851477134812159965405589874172149943030516984677905045610364077755793721800353574621069943156140912274897926395971113970667142446231907081877982833116835802484764108120585935308945238841641256770038498248268460521848580756563237824448449552570204824797204967664331422894241155864990479460697667390823278129386507008925019413278843624097965651018707104453269051249746384513654611756021514258778169299278547150951858778432709764252770853042724465915496937181688001914488088180898328445558871891171116061634893738732260671851414536168766493629993802289612282174711239702356334924476715269447145783223892072148716820111835282617435193042561668735411548632509952214217173343956629732244641933325484318570260677387505064539529618795900615767318700531077594800039070200424704539159251824603457192426037546578980551353299838038474929864860727456716872741555968892281914578726244371834509656025711387576846348299462240246638938525100932061939396372748281997494101513810309984042658865794695686077786015548895661592816704618765188407849493219713358581779629498722267655357857580432558140460650053846389080274300223020040859956250556891086398188234285570294721314681879747395679354179891695900310313635988693524592319670867356409802070946760500074275198050554696084214351345472230790154716225862089183566546087909545098124255702192332556297991522865022443724064583317889025326964937956392298428173107593273554043945138487545468591846277776143709003915003673151742591200594877943377849115863914314364845198376285638335010188955153210088316217853341315400180811018387109188694384072595863240381117391992108309240757238284683572067189879553514951752866948805031625472052323057421440192196898861356737221833453149675561669971486281856855968782515176034525150741862814416209093044527215173424412311546769477644268130519704638731866083747961613522218726970661898208405530954121239714707718441061814406332546302652844579226274077848457496717852012081915870899548817599205315014985855337412049705326701589062388392881027857949176202862635834921988867711198541118050735890045443614903743629912357873084228665139115840640219935866627801926505094948908200104175747370931543639300136353181779699623505014780495794273352165995324649119941389324180928858829052791018285699900215820786399419066539022212552863342234055698694859707409250250869695964204763541246063830553258914913853454986985167156958047311833184129207511020600465865748437007863350519282116818886166337502146354176049648322929530669519430574743761869830310397552371677882988824877177941815480130210131276947305838050138683300040499443194801244490490484486310173954732115260382414175274602642979884168499944351307335994952604535633921721284861419035694427162113991123748399565654718476010182437716679549732251726264363429829363271137138962162969668052166014206625309883630540598432980443196970756625139823945397632858912071639125633797334494550844683264044400035761526375180109176637428973394464824748394062764869879838121354079712074496013619072850705353217000089848575079993095778729890474868862167163543522119333739513315697451939969415915217154985427278311767641421802737897986338753065511552655776997915514894050658006913609203796223696099179405859836348801553318323366635528319261080819121710063713586371452889278367849485707421874739105299305089135527668919526270376488388697824983991783054883015457413394151913757318245414410697904041182494299922517379407525970246979155370291722359744827395790873735858389171359480171716070692715653829810471649885251039532956053696317516854248892757119944882171521340129736257402826343753551443922622704186421154596855942903756802866250960614515756646333402300468267431666686255521480016274455424608476456936740846541907825687708700372820899345524112573407213510592282643901125230948145895722321897908129172945912565605762923171265253898342455055793831857340179163589902014717876391244316702131977378601811992958780939123844000183165601958492069717846553244304954483768522569742886120066302926891956864016535971233858418015058725793851385556466624278769539520169693720258482979933277562735808262745516050089051450757948253723002662579364782438127574120875935548449896006539395088516135499661926778094107093057851626669190408491620870589342074188302313061701052518422958227252385801458491115099959030828134747233884555570074240375317096613185057292094582572553214615382763902998789020860101506689751382343445280742680381922682508484590347944123223533782000449868030530283542569838740517115741983996076738739161382212777851120795819609662655141288971531571508392855711870801832622328695459430090145540602443598612041185405946138590315236412892628227575448704153557205019103015426674784495713208470360456605446073670375563886333059493474518883032511807143691192511008855283401370623706887363868581329400072476513660073757642723925232720208239543937391577710542716463480563360830821133532298067971867593574566226973739705154078479796699211478804744346950929611250001887020927738829055844226146482464417390003872786770088297141579392276374579532029406284719753160816193713143954672870925594607874512190851896597551294824318090860511757521271242686976363046937065019195120817165977464479198238570050370124538357902217963004284305237713666142742577384239646461226088381032093961768332880704143596766575835895640821663527963055971182964155188292532418842739410969935838933144572738289670142340669164163243740508336669969157853056199007455315455122233095126129971630118522866606510286188041768855808310511444075858250296386156644849851504841110816405770625456397674946902718914843829943437118142750690950904129963216274512411233835453112308027913365821505164615485990413105454326664624810808989970424526775776485571093112760159762019445497760310708393191928116650482954530495153952444196204418516837513218458653808164151615013131962997179212777775951305409859329706238066836523907693113799201652043637651474583968597661002915816769265545183930948859701532834199660568505386078794022355201390215693776228895931413587634080910934101804223034286209849529211865938100171149695407656389295739347278237839451136188535539452068165227579770101347941403064725936048958562418563844230680164867712327669535982792530185697814631517795885965805061510880149394621429876710622374647042657590009237012212801469796107915068620978554275161147919788043324605643853218897893473046599942530532108816884625247179316194219049373261983035432908312499201151879694717295374442538883080605482963951332209776481042913292581045353096906724762188090894177181469174158847397636347182162992965129930022141317839397122503061214295678922168570935824999284243111711443592501052435586963869726997528707769014268364809108070522606975265015735082688660691981335152833898097895791759771822695887005227233794508399464147537990237795565008262349483954299934981776898471966694834074184578202014127610699847157091011777563104160848856199688405130204183442884884593550413221161912183374701007342915051804688257190934483046009040708399110814271287838977928402043382795594866907172603767600229344385736254993674572417185381417534772429579847586010445920230543477670700641424695059088942237053261096602862067069242589105194616805800183506868833783545709441319659594175458936643693436949615065919275291159767547490683969699387152477736387009002969415055725334851553310541405963650183641577425814554208488135346013600523851643975333395022797547634137480938901313868404693016654327391023540903568176594878563461173935980754568124386875083130080737836692396690333296925353713594755917251656342850134869973232563904073219730623479059621963003172492213497597806427876197074609415369054966837424569484569165775516205027917126290766445296196331203170153734846252420095262393488248991822997390510379529671285695836982525356463705252009045373968400236806482507070684392125540101814415466093752275575551002406078355240270260142602400257278225065537354235715705696282512638721167810087817244168225781714856193549580905430018870098989434601224464613143575145767809769145993134040300768536869004196128967784606232294631163085199409641860953048573038406654149396610676071132728264656230575859082051358048761485877828901043921270152007997177617823643451714116105988587994193134577192383775240799076682466971409128509675491419998272089711904336087104131839643794215520025123564706730453893799848539411170615597080285823423034674527011848454918910346251807742755926207674953405350697840941959898338391885723386432507074007602322526979161216259855004102815659254146279533301018535567349132342896258063155546263279962216921324131412059104223833948962819928277446922401510855693709985133311707921886867322018164034314333196215046054212334837432285983521724642906930434515168872637672539493384741080097430961009323973014047723552261725503383665254230936670651029426505048669721417746227438431282267697154621010734570117095431632424867347337717040401000259936304383457984209192026725835399955343694686486248625478434098663534267816043803043820941590507234147130216950927245160550524743855551699393367539854635825234479215210022933187171572689819103658177741661372930445840870862402536589311383302815226445028369084258107377217972804450709798183956415613452506852367535242083660837212452497278721294048844933120513379431138706528434142327507558670313814996165838470452425023585150531235800206576966499043174204087040053610761466959839890258078675728879382361854292615926939632689809565274665338980876686255431476397379340350472387924041360140477147541494405886095983479614287601932607492717605948333225608097038385366307563313344928034243340669419604707300066272864761929069255387057752625305342428631181819284508203116010851683191265235550633997781764686296168041176187396875311102047586279414755124296730931312840395562822806028081013334288850687707983826074029832451967957660852926042918224236634493279688393680269316555789850404165920175447510251735323851576166891603419000404026671064223319533394877470145654095262048094686612870639727254546791357143156300952446470353543017933514436874901834457982904301461347515851507631994220296935270271947175928348589853624677494684358922824841997880574668623704132457843334784118357236867070582156233398773979048857730058302743730493233275956025099040646378587966020489586857743392646611538312628028431829893996617557255185263525130989509968191531017990842056366120328990124318127923630884733755192777154731927451859061878171101186988439733397141298701595303672200136585263746308575964118027472121798854752774166188032173723796069223400888154882140138939604839552005293016014904587538287708336109225909667527750405492016044208452669761853555964265937313194818992904079407863717018589303712761181728459294324485387790708185301251899934018627235573722014710643905869485315106987137752249886184885978206192246315702531444397027471827870846356939489099825019773709958677740811348994540199997171958395817134753954737466916896429970399932271173708940772063500636225994343774601819984711278545665802933935404588502553751953092307569529811271602141646739194143828697156629933996544471428942225527642370297269406315724755627881782547196382023550687440157441279320281451787082917647033163306171758022865469626888421960693680297296560320201656352115136050434171854151643443256407821014608298394669946360962498959395718668747808796436353745673708246943383663350091748413121693967947340965828704664384351984303831975427391919182415825119363243090046842752882485220093814104122998360606298501380255104654449308364179424780978011067386003423339100576666770248426398239392882108425714230186739458043251923557545300360088130405432579729242582506720811352127392459305356942087403452020857269986302603692672160512533864847054415225606006083739482289005961623506666124451315399374363335636564830949539724266184839390690670841133912949466962887181970379940939506707947447298162159440631012170222629909235918814060186902679634826189280424342313698104613478890622049956261731125138362391425455245533502363060591278030993308762867993595967306915005321694137196933183122263403328752740739501957667972623080631414335371539833789335671924985335557603601550606257236087414940795077952319087425657792030555924169038967939044286798352120376992414825315631116389416104177536375081174135857802843617540880612255238551991261963175457987390825405799819391752055614033051291488514885992133133098401374172338155845221221492723372105628171631858159932929505539341206542800639413387184014931778114589914176626219799937884533300087340753494443651744199037830088939487266918539401352929800948595120376968017382900715989388836255443005461784198483214386379040649377708307945388006603510487681348552894344596361757392663992796225130396755121100354343460348318418804366709928859516323993011765924347094754439008098522264514187530734829453359938907865784500163448630238687599323226814237103090856654619390292522338785640466280896894884675707492499563117861518809698532702569846424398870778535847799430514565634842315208748673274266397080812456321339814777497866365804564435019135561602551501849521249614897487312480888958838221586296858124341139212625581492906626289884611548909330895395292467091428031420598309400545957205144136962203447644568716730107681590409361143570419167052633029895657765998446953510794082203286625642554052621547333659131729447348579183083611576209851747115088835584241112987417927556555540383104880046480797651953002511066149206692329974152328598668198373364864136980552327198726860025107008963828475055834119148719146159185100823963271825663121319017934751487405816660564837254608518840539643535099112701752896534294827437811263125776161392970495394397198671668155892249374180914427871749600012881531462038771708501188983622676728437305842342358506806560332696308649736851230498371677831222921621697668930780948772835835659259598154189676564502943772942036770168230267737321416590789856551918163826600984192251412186147731194570572138768173789849458406117662261667907385271026678460873244705872091540366996549657845701071061003312076219553251735121563648468458457585864300796775478337091011039711438887948263589307533267121752832475700040132489006683327009143105962480001514245526717434527814763515583363020885160138021155707804191835641132463829766136576606819682419825200587978429889950042438705084100985664972415559468102689729455855964158860759815849899014667867879493315539073711210539487409635193317272299881390277927532901691015091603921945155540443969695274136515698306184738166011702671290073783774045775657404101649446260919418230253438832280646216524649427969489031708895215421845499573042545955396030446092936571060569488203595863836360589443495840555650091915204328250469102413099365694850843600386056869598705970370379962073108566255995697202417906259713339584256961100933294636906148171447071381639472109973839683774813179446004199991279730757970103355544230144332913870165796348576855062628921097611335372812594952089534660416323783876125096267290989462810187085906472399484654529151920821590110479917057750520099685805480025624818713509592065105628907629105700691596344324491506402741259708469790208496831247616325265618396949643345404286405717867817677630236145081540148227051580111607505894675968897120438862020472531491047949778395163481779786091612980916588149845889031266388033007741415874473759593943511672338731299670123927466260741586416578650632628124132377982106163602132945785720207973587534794855391603661963292360320923680501054458363331554838830244154658591053702150369501047073559783630847372974165193950911674489051612731028695380529487806604619095363580638369690918245264844049988335534400347384231896784696809620497466937327532797809791344136317667159207906328387810224072347664166239152761066339309729716883665676138332957793215429764221363252693046068321938743212998710065911171864391283725417645030289544572760957194100735526205911776055112588020772533964833069624498533866301703816816031893049653961217020377473755884442629513445656514011771583493069750335862314626911473434421015280249217982397424358356938589009068453815567536104300954545171530125050712991922396726048935718764599484811310445652073360178240017054624860479599536486198498602765169053465549790217160537447885689544559165952813213407309956920069233691421205342058209697552567583768655951786825109535905567392339681321398008173536583267093657888018151319048721728607812761344370626589784190531492333284650219983216685481838977874699882613455556450745779221739946509477844137527407293888841669767580018360767103117122922311074014095131780348762646583125757433286938235129244528398100816439975084741916999382775182082113034091257937932521051829385404686218704598574570487413213044645951712823318756243450961686799594345265543559493009998371295672477180072629037133406536837285872643986496433839862851035486700841292475538885085413745226272385761812381861409292074942497077554272105053738792502369510458516071765641153945432177517350641560477336867600152783048807261831398328743878102169756916860299930475208932993938788962266116412883705105180388903447257776653344656279015514870865992107391312095602603251072952105482043041346391610451247892960779921650889690242210312891644357204103084182107038846290831275477286023599465975593937806230962324485674993084854528230744214133597320979438807058447972645525851645184910339057495856585291309569713653522646129290456484167476185459083341183662088902653277545386067862108697821010699810796403264700966685764373717635794188322461001694865114141575456433172201450649066624520131202368466250703388401150051589849758784519612795995293964093341529269438490977201645932262078200778797878902500858713336675299401551915953301483181726226532658582835528082937270208275372290716732325886919477748417271503147491395504447299365282922491346750265152365115704770961828777699981371393313762153662951696452677281211539719084781520930088283890294031849131160605856360357791848237749915492556956431278409956792902963947956890805824423642373315758581489968632791919171743640210482594055057214282903937121782390801474055190926482689858025498160828381026216547849981588402422183542267484504997006539318492496882942781472656191224274799476806956058801028415154049902109788930122637217051554617301817438842510168511000415751885821959809691929384542789902500271479796254059082675787032263230002079182122660973680973957329727573230539797122229317624490912697174747694469698758778048912244638415555027115233011588135852040979873306936367725548267933707434732353155495171503206438439308243695572199413110879266025416557058933895056548750837307694796216864536662518331299307948681142126328947241643926492010988386368091316860313048213203701731184859566312440362469596685992350555849300670221180441110459130615552707305109342348253444191347242341583659697669023344112207621224269527640463739124476056756535439563856166331759248432104336148351497643737893796952891624539160871321230343272653374993863994244023798376193401406385421598511958197867393760241088068919543157772280450914141670827488494995833148010486078809162269988017433142832769518441542018082788715499626279656937286342749268445310650364400856141715967977297752508942470797018374798010463821209355761897124176428729198268613655417251716621119718019744625582812120878204566684882497439976805048749363776311611943282450527069678211939635844160220658918420091541230593222624405708206077803830815847802239307105082055939401396929867162514049824253863141848678974768795002987176879577913467167749527698788413054571552951593726798930157594202525488316543498275945446808361198023500412753584528524648344086386452740460731993093700849470682816736809815773310936133704014838058057253742759615798462838180023224757643336044879661491785105136057110005285222959778295024940339442259927383463743870046888023986695605942642366238261534248777660777751446888703010340405973173746060512217883768119132715104100632159532371936084083502233340018623120873079667093930265081362776558088120605945529844507778080662582444700458403024899340854164863300746049084714128563242497950435969402812815976895844577450263906014962286208047230647969924719159084512000744560893056320844870656360328677003179577814817778238281364195662901529305721658898614626689077165473799699023565119087061689710891869883029654451678641094554057936069121646400462896558591575640995456139719568651559585194119960361282844424990376365563916021930652645484839899140478676436092743005754954979439718497814205394695271654322317631103249856115120296790017081139400863646608393960399437782332826173584686269726299005046984783149450709363013519790105126505645704847354108433563168324031361879734602950137007553321103360732846819747423467460471580157938360444981516778033314208685655778407191159708670485110324068705251672566994646295133452631470096568648629080631475358990488324921348386148977947644280662424124507521004040257200594498696745677184251534980052882480804183496716326543908029896892918835929989957076077439372261386490934276758069596922496327525601182478161854493342904682570025168265119941838388917826579036053112612163772206272726875510764705659816364827437464213203615788985263110094160214875099392757957695536359459846652057561414728902456813365070667609514386614151940724719018172565383969934247193653795399193262353355573588207702225119143493628075009376742986129059527689867250665902012006994461405347810869407543865479598576318733563998876789465903741190566078824393015597695313185694585280828104236006127858594882712436145802657676548792088047670240260767305742835683599515861013635302134245629772321913449420461942680860254945088067424711293920183128774408713370407427414481559091991219343424974610794372458528405364309460587923697097306985742334679685393137298826371937588041897600215297930311838034901158130705157671133785498398852004541382997605117659657275385426890076694818139636181406619996911262342846571400298497024306187428334108831500334880256160158033857417916691396702151231385320449901396116247353787285481502318260583797732736080780494696195488931550239448231279955947127931880725487361394559226585995261727772260446066256337821357737115411710697449673953545947216117605917578772475128344700681128451840502398046925018056636905896175982283704594637090670636431173286514143691876369431693606916996467082715557380095503026624949065841062020133215334265297619091887422398793974101419529974768435370413028044032278569890998938970594882278910966461922888812770045837583463525062237262354598522973251875123206189857264595370120785173974532546720690654941863980978188957052782580802857683662135517547792665110519522942166419595003851596591207958189073672838397571437570366424293827202476650774941847019873335462314804183215138917128053987893052441067700432646203774286540757800314380630916725528856050965879370159768054536553177808423700809343086661527388586730871839137923600392142000427742715844076415394173431501932560012880933998025624123434703326838824761912253123003605679962158532154654673007953720337029536527207987632929785771249175668205719309194367605387277883141102715517960124787108148190780397007202329742378419956556342830619228547651686240701902747743300578404253311811525088283091870722762573314324572426815939121864446086910271883115422632281838609736382529685292662993571807756846253828642971539990912388245057045202980258007383800157215444928692850557440599505877843124770637664939339732526513686430845486212577999912112513870951856971142964374642753925207874752057594808231523798535415073336485455036484811657526476115791729764667322417658799366821996040358931850195371626244441741720555188381112482758364911577004361737935035821719175963617109229393716682920551146994709679799655981490817984898781449346271336363525517393625000067633670190592874661248150562845252411410375592409764405998208123184874715930518982929269231001968638581731117369079270927824100786452833638554746604355501611044528668787871737414788111083773587188905603992555876856971544274045579449591581615278121963604013635713977321241621473218463550200301072799747260029366976089556354742276679288506011804209540115485809209910867485951980689160429285223765342343524102573651604637975276654327610100868478980536719300405963444164150031240094295539400358011191093237122095944877811672613460316559302292399319305036029010859774712971206239035169368524011505027445381221973369339356647971071664442950783095025004098853465744738616433935411045776925277406052580657735710364275716028217610095838128590817988568430015110540189543320602146843762608716064230972690282505673520074751502114547858127808918601694236425144949209011267987668585301928563646273762702347001659230594162986624310489338425550047649390745117898359911106399252283434497146772487949373321020396216188410575973432710735178301188624927458892057565472440683228256705224597329845544372872212761451527854122529395259670895231408302164902591933067742495450668099799718961570970644582655562856270319278447670654608316458384978163588366643202523919248848479587927086378793762486867614611366642632157870716940623299747241372185758928796049249726511346826877833291674893445510265661297847385563904373505947207105815147715066653274396737680286039323716546039688298580963432039125161556216795032431315740637370330816902450305497432123252916864507711507734998443148106063515692978667972866593645119899709367513530673380565215842160067724055244375387279632026357084350083581555995216627590810739565579077723839934541144897723526779679825386802427577205012944710312173156569770098986934954769561917188658991529963243582286996744745742770392050352289181384158273360417131808552077068861147874634675290565608506606200054066493718867202411134654683202340639875224267996830291780578940923333566029619189833719181213870569180410243960969219911321162520699606500499037176181322375364362743338320235672922803268072638604353579837177507441963003408076434788034906746907174178093072515809636924400123551353265255495106256237518717936494895198917265284622892508291297334806528703191536768614789730893750772481647458376170683726703718849479586848146926158328098607488297273184550132081216314959642530023585135486349569744635901480626580687093326917731634873889754985920046624455090782723062212711685818939994263467381707848673329497010791097839633200856753105969654589662281215353552943659212379255714573606630377240923691105653964014816082100328587040858854059990295726982137450716969641513546800486595386776930059434732133836000505400983668567817651872371135692621834415381140209568963377983925722872932752917778867644994737757816443064770717202319393093555752178732986189586255713093365595735271649087949653223010447119211966417600862586948948736180435894714222125428679045057387647877069203908360224138291560181214330346584622707244392163023533468612045158984688629574617247513112029680640619818415321826766875578495961382485347499975251429602820509487454088116002392916951636235618078341269260409914407242464285186146869875527266117637364305172962266635045969964225930062866416544125334873665906327545929595146464746747876328712532977175472399312776722143020161439316525737110299599556225887323705706674284663693544042732432848247614366105409116744616203128896518478714762481510802610443431338294670699384902665323801933633694617588754329206196376436311296310140972097591955959874798992505381590273211921986447365442633592892651092879805117525292880043537633613007393308400910476137095623457846169739427418281532190244174395142940256850984020792127916584123911201474347392963301280560099071060477910137846243004911732952853762791518386168315151256395828360398796696029440253632054088906243749383920862511822656800378817522431920843828775833169541338120532953012116241583697027158256356974613228539946034563515188960073756394495317779880889668227743354598825275465802703319164172352242797899736213730329770683999446232863570664059550811564941252460017647060425033133859796366689886515957995675568679576872486767923015286920014830507100420045993331070615591882697830974310583690890307073864503038334998251328148107132784689446008011398687462723355441789118451937271568925824322830575863848497491599931272165890509487239326492048808203261315626959908790201362792027074824916057236088720281746701662321120903231731127850243608672567228072122345803728169436035703975319095181358270056477727776781066498225592858211673168405718998571886441978667663122544904365224194387423226964530661099895471150936028770222629062842730050398144743411085245669471367263073216637206334397668289492772037627507560742645345836645020682417143355326480169396412435905881311925473274078519160375965878916943237253063849382119931389954486115412185633602300394870727793454289836139632552737228391429817546633752536360134937893946521286741436447356963507707706890138250290132347179464244274926429887579523020453154076624510115934761529867579416637669007950025529092303439616264645365847668684103625682261734155704721892789615942762424618324679185866979041155117649493070675831204579804646597372125129722728540574955605975495060053136442012890756889446834188948282222608183696003271123978887280503789492301015623575382449526035852886314929298820432967806074364143539343052660631374865457302049586190540640344321567221242618560947539814409783411758818887400098707544582324375997335524516911775457981305179417074109611314214919338707427631943554731164171612840259872374066709591621578681730915328437650823147011197145405220305052504747229043739063521399972746410364848596972090293051983633945820062686454053776075597548278236329667136517442632133759694448641364410127638860399179192913076891996358863285369546157255385724501943576793695500107728699963149306987864622788527771725616232584426452742853793966961670398453248509998212716356625584689728083169098636287740478568877183588645344697883910921392625956782055108222510269677777760767746926551315707078229646590697173091629486046187355212366703669527050357299216349216089628165053410883776540929306936865405852434810714616246933083728903599542183045241452171301935150974368874744094095887181033774231015769113229205633453107864986857750945053640344279678206228452084274701740345737624683878109102802078392297200118128365329480989675420891624684459887221981986646690231171434500432997939827098457040202223732702247349694312343852655647863261604022098955542472720147478878851411863417592568239690064776528584203170579179832400905018729978183981732575792756115738099034016399851420598831389344052060014595606744359480369548771081694307839503493835751175728317866973614969069392422538506389361469077838134545585415096848712705372292338541198334131534978190096425687796328801445182814791296736718943561137392534522780552496847676099019705071351850021204019467865751111127451517477133753684507213268856221841004282214350263339315252878807446318835548234730212794096560081237070886057775161965853070874962517104999259999435689981671166839763575107042833921870214368619792601607005206102047589557846206251599897872357523116482700388437138350149981216741995812841181767592343835146971527319970864889446398147586415742540916315245637222739371903358831370508336551016719699202289895771666122048546570050433925853686703189087805244947765209083378909071013925350567474013939248671061488206083412117745745715378573641464741044424628972383794283405302302887073421150530072300281293550479046630184636332646255209035228125844470710705899400184806134994178238380360847250167979659158181465532322825931582836076898359410248078333927964003617704537922214244997475152679653914911871474635400618317943338774386571928255497278007986386530859947700637001994371021110282970505069174205823928574632711802597004416097511225512998849628525054813493270784892751811464529886395777492858759634006991390162971322002159803641969000154515453902897606197782908110319199828741916382492248795350328472366666136784796299414125720314620637017742943172819326759097247376910302983921485542698181832279226934644770956163918875040779455726006505474041037930575046773941331231990930891689879206510982449132565265728548595956054996820521374945790567114712325015846723746635594137808917208322203040200125955768799590907218970596720315221645001368148570707160665481871314781202276659641052852761553541673886373808457338024537349483510827448355604192272946634486389415899819909024839236654112858395120089989964696937681865268519386098973231473443729569265548822344412187117778778187159160138515872103016552269084577055706508141548542833739636638359132233185948275968103936099614278635068523271178740337739869761695833936679949815545758808094188280353835029966006954247187403900700120424024834262736828563542973663030657715676340608310977765523515896349265006381305325787960345267481720384406710625747549817080921164924073670731307313928254851348522144508164226312961202063942944559851189404336158399388813497185921174746474810126797210283558478764432898340668202366358189232737539048786894148720548299595267699439963782922556442798403121764582822019536025948589860013842870106770352102457226680862371221586824199188990325290985188431342589425187904045369887371988860601365003822172582585691012321405017168265918520719852756410191112645951333452305306829391850952298860093909817829739582123150067789885044428899862064027508631628853812617902358981124012835707357512098354072672527361568837540773196973450791983638229051146900380119777678431913598710365669402993838124877580723633482080286053041082984732708570186533896090733595779091185031027130199654217367171135224923814348179316595444820493439887427056965667586235302258699358045929906465826207197581324927514561635792812696075198975143538807660797237417551797519886976365641502221913259744359557646396122426922974881792330041844028129057294840091383171018596849565111356501347010432766428633652358319224439322534531620164277285850183499651362216510466984764950323300785919544733495212803237703024324672897718134850593951586293574883711011576111386048903622442830630713786181951795461542875626509805835527837222263360497494178558795628916982494966228105551667456386044463041891858563015899428631251136411300084687644824496457177829870032372807931066253824174043254690049507492879998111876930944905689727370608065823868959882341028661780533404435105357284412593318310415395080392565127337830151758731741576493357288007348262497048963127654354417669277191275660384785607028051421595977245598163551033334917258090949637429576531594423017855206607154170736048792229570288343528802722231413859664457172944806706019555630914799072779987534671308097938453249899006065251521400053792653863817246651443037607425200371219095859233503269305950156466202846500636905516173041017771590694735428723727608464846112552514091153951825493119129684781190719339113126900183834976020329069101288951335996873066895894467178905990226598173383715552381597805294360559591485080891475353705203023661564628019070828261136256868570545598634696803631076741039342964810450537155736587462682391699073627748894823081415705549600586367751952314966867355681925400302872578359393163997259279334697252875337020149452739559407075507236592972102246991115059715440597832754538623796895175517558345972897341270063226022421612166248724543872835103306539611236474966589120647205696552894513450493228845611605234272687975420320990149518482968970457016820130314241146348677550874548357916970208201978068861510710949576514508106087956989114407305023402004089084487146178090972121302815638280864298329514097901757805692557677532739950007278741726080173055761085887209517308079077256581096661236658182416345679514788615327086889809788545882418978798706388877001056390420991000820368701060845557067812422866397708848991593979695204315919568054213387000319722108856098946718237532173320247973987346274822457006889454637189851965770448110924938928445970686420679697370055653323789901917319839868560950290856632617305695284543107973853567008360730653968256506312477605026368412021518258874519127578001652207702195217667547114766420785247940445251843510135124850635035044835826770952443574209964985350055460339818683089512102960946806807883292898045682682045784473772245011042370202007948345407330331066220078292697197334547199624670819221447252150115774319756483756357109957894986754978489352316459680203794665447146504107497317103994018641745686475730766749979607682438910875912386812389448004945578363837953274595974614555844631318871445573910419562426393343516882624126700217317453265484555883977396879368200658901359098895785459683202059085352359639944512951779438671639364578421276083527068977183667682554774688517153056571151299776672517564758585667916550980876952013960899108635361499012124403562826323213690470889173789474825043420295474690974437961928289480823694249929858662991457467472785458805320734220542037457115737941683129827858755027448218176689809502001403304416391799933042466168239162057091663927045945283086909403382501994539633620926178465552579567890921397395690589740200670276791537413149409003622586164687836396977694351173355442759682644533511988224757994893417461605254842633949905891989952811446145181535591898250381787125220761077740292371061890820998263229107410051622616188849410780014903221163658821778507147793955159322267781030721895318902261984960115633250091470810254734314426320231211832587529203137229295695382978306008411445254517869457888695529262143377985669129632903111690428891298744007792215163178377186098622098283439672248718900237220425375324067576852842490655555559247483944700560487289847353720328665858505304710699051555418411369548452603979674517645118716585832160269051725798293152319399901969149240331281978460374356031205367419179579910801442730437529036156369905484004659398095947773660474469380439358820324439402953528367679538194371404558860191702642889070598270083400175862883111192638409645827268444398723487257581431614973854514428594770406295848194737051581592487664393669035305472717256415613546408415940697150899811376604098231792356105414337028944081694549011839815342532930099358936125651052981555893079143661909886473523498802316953544110861488442373692757165156029048144866823160652517546782489893841836974109963530256920613318458749839924448066575473051866557117212409346875218184226871188961298793288578797471706895121235177289652234092702280113986245032561639662605355985237884587402918512245758333826138809408626469730154345671515077328643863600894783148697267507030320684100092891278670542261682138443505352911348503539833539075105775970845728340913145767467299344583737962322911288970060393852317961728380680981911543208434980768449941002073931333300664195703585369074664471197436272023555351249434332160637771717463708996507956760596341738419333506561609875288032240196417867729385576039689961011404571080751367912919501346609791053732717783907310485183522125068965579481777707734575564033807202105252817719131413175202125073486392879557182411780121082416871907769747333073037466676386825296803978666337048144330327298400879215586290387203021553191123936590263838569111247177204077458623233187085895827327625998291884854276831925759381122822943624689509133693178716514668277472280812774592153771936177127827421186852588477876146780222786154054464448887669040284240285782220000656023586440856279244900023254171031142461578205631298295886592157149149933030895914937495079781076329862140083490440347787928016213912545869382440407560613131713920058026423181600467068693831609327836438326131160826619578685979044638262393469405727906574862649109223184430284657414102011960374446940711641305492007685083620408097064239522040350097765787815142296446920204697918312452765535799237690553589507330906737276289841006794788547337194472013376549870015566551411656265115633187934145214675458679966243373364618158573299816140641569614538012349747689586559166539493371993790411647604832607564374251491383297879272292837113466358711744550361241500028900324808539753456933854061147017971658697359249548676607998914790440376083674153746898505955508635958733665299241619480130772864552824016335340827977506237865097705712342220060597973420494403677958313739620669015186784923346077057480486609101088999259690485723131530946449074313668450033576913167057334732606905174133495030244838578336031570755947496433053157180187948603915736137143338770205130781826987397056429477980910979538370655258508087164234934235194316630272251440762782401868941382591774252101393992100098315845857504336160181261969629977941028650166003696053252377701438331079396534150053061048083465880514751720986274601136699121067248166106678697746508135157743700987639365244343705458791572474859896809424519107455966700241112603217464663488241360876578651302914437569769936188446356089972018784106294752413527102438714612066305720871998323650541430363384622840513088447903893889695820252453229931973717681453529401024022618484921126730271765063187306088169984984423221388081556452864857265309065435030327991613178766509357642867443504636686580522954259294262345693743677529426531097078240032791527950878663026514406663519290299933516428887001928471471615704976346011784359723495924757294413674995202336739982261657573704891035098510654839670198365231528702370310199583891013875967672245011140168525998780572272461157752457192707597808345927903591369334958357882009085218759152226887314056609699638339873498820278770442830413737646815076235162733488039812884136444286413598130274292142820071468157272444278407215224621771527792347924405025591648725590460596153796369487281947926188837923706945255305834499919555202447078412324162499012222806406340254245398067216939182330816125918866375813624458548037739831077865877177975260565547237849683795566426335724548529022683887282244023286839798927388803783370247572972610981663015451472591060794241819014425305747896698774052469067561894634894776759597371732109914562138670535666165562293685039205693785092988702849672800803137001093738868945354114650130269959012767143655149437110785957319634239564440117184721612883027608433335868969333090773546390915537966828658954586517134901121730504197568791453532392993677942692038921946343564522986069095767415144724413264441001687894042634972232678114081923816173546932225238210232810252768010710132123590838145703175916301975063347344098562192002794835264165901896797658068869370917666240915356138330457478879788137571995508874966668331183775897836410144587398177325875812081894912734014091185562285835087575910386423929653053739683142334181331540937465941279895107514037433254977608344554062071159055740290061376736156667450722097877953599251325694577097000911370313573607363896462877175213344497058596990152480237227335453256821730969762587320850679582035318706786408334696673015791890227046018530211296260613823799190049736933064395926622649407945314038249544856959099232437739319303018151237767627757657345038794716855293127111274795167268600343477595064679879546584462093925070517123882018237796653726366742516598971248692221889725259423517752634743307608510418398013918543636673174490144330113847788536475033820463197855452197540987557361759764830551995894554112438444008383636958817485132896232953601833050993252459986670951602745093345489916596447773313283254480956157394479802225773424129330782931059882649317141744335970314939240207280928435368524697794928737123491541826618173092729862165226744839404952935694589248537276257200221504388915751836493846825776693745634188015229156991578315474454193963889343100506451695324301496847121244819153854412621948728545131571434740567324703107819561700564635533065126241826101795262491991218405308475549492273054187241288197574803483520078330634545064709561979127352565892463887065538334827725928692392069434025183976222740511350517907618033309118789799017986774299346345611381855019817624269665080885725310362725044357602945350752230038452945631003556585944263039505016425614576038681404061759307542892078859462378896520732681972894316960032012597948883437236237394885285593713732814878690698118029234479093247261538740917076461825735705634003117267772082787555242714998988704242335900393504422539403431958865718185298636465015916590100776079591427135995440106681451361350917133672133674794323751024591414388611854706492771860250571081917203494482392533961337879870153359074054406067784713731272199220185746789726417661810773089379499085219838227468251785786664547739758469768942076208752829417544744001042052556505294394574732856301317661206555620430493255016879883983163655637925744172254885680966332327690418840624515232435856583542290055092160425608779231347203129046760280266369448428492270093871595640268855575419756528737775486096771492536768407779827630239640392794001129721086347605728140783008679495812701258816784424236005840331365846872350765946145822223804994209486247676005292635415952517719963725308056848003318824451124650742212312409453719333714308765343590688258420354020304433189342691202306919407776562328079642078106778300669424709978147923881970198419149927859687601979993771692549126073128682879611271234795721920185597325005877029035030545520857179687205277807012048423457416541512338272505508488776302448551593290659733900612427613753043323896288349711764790823070623973177831600985850440198110221357899238002301986290012080511800982391237298818790217773175473388508281452842078319934591302437739759833716637751206089226543401994353225424883586620492248347775640966745536039425502700085982250037058861875648640984095687972815082513819470354500305568848223110054854509409973225055789425523046487080257595347700888243971697445546997559571317081945518535002241898320040199628969655529671194719080149069755546552874741820807604649837093598140237129505081659204497754059014886669328647984218040289060701137654314688973446522840688983641261560927091562107889215876292044966639127708947898431108079683871755504616117890467561060070000176035269875369721049916636808165148669451729342489742558660796468855418837554815311548975794435309406418959456790557482465221140045638244509027548802284446027894579490961269997668858827339424248244482348400647307608977267790866081984921651381450315894673469446781992316800087324923134085293868953570072129158587240278292179019114362183875696845239958334631582694478753327036874411429860920103785157670810400613094321889700948501682356362004970721426834897968234327893244231886747868841027845710719600837017046492817132214047492669610538402381151244069658850426973476606362381185887721125684012775037896913433197271675789493183624828275713742603931050649968620134326227087719175541240316855426109236110291669675371590364162950774477639589520270533548907357816804849109892092228880792038185951490943344321502765178395286908580334889169716613663021630666650296853747569018918713535560404103410819952040362952013411606969056094803291499337703770295455114012067803359865267762818107322458371169095134072985965512236668673857414782554570001187334534105271322181977468371297264980284420989295432852039333045700854051082908789176784098242934750355818125710597527264089283447836350117235104459358198125633841972428355974682846007818761026784497002354418401549444754966353799720928906454436008637044118332133747737302575011527892822087414938849289486909270822127693531624049713584170504161745711871252402404549565703271890335379497408717320756552315549795328059438351394742908107474756902162201337478177977366898945866472551442408423751482175800164505776219639798267971631425139647482618016581302448942531434818473389708214443491665978360852041941782738975601387109847947992342641301871489945967699833646797543663577268724628308300479364362085405523550181093090026294110243214141138775023995147472985768353819278144345480285694021924185719364263791369132356508045387941467268484983445138106114557824309186790588500629011014592114152167704191026602431239190859005077140898156261100792452367547896749728042754027314800241137381093868656050722800462347863091952074823028559441957164903465061429966851277699996818459681921825046979267414596816139122437648290768336159235128884101315442541612208434666715874096959137366965942013923765405786835876987208774558249553131493890968527673104646426137556280377653738798160628058491456859024106370662059304246101778450354941581530142837256280091033410101759560124283283327180924062063710181221155608552913574412033930223756930968401939156832055802660995762668936039858622132564823560045862203967355764442341287909463609595142760764413199444315945822817886512551737780012907854665803361759307810792082446326521005408901149169998618962301133973070629082004297665657345689345769355581840033592649276070658582420104584061610773689198296082634353437447417875369837871730213328252946595601875529617456886639266676225394409103228410567151913933714665842918204643900291488795578945047648965194838123980491346936590616058270349763057085622942785415887982018456587713946465735089286685987355608197476130111898516501092647474284962434043456124661781381387379307642349528006508918711088347149643884310655923172215814259690274598642912406993465170351609852515182384508629151749862770940197273233498424960617615692553259799967748347683523126649770159837482103530143888187509805734646572413586890949462417031685592466426782954390043847249034286749117762855547003659960536095129770057383742209561963436997229538793246558433179522214590533767500295694978968876899099740547133887608814308078003166192219951041297520879359685411655949671607662891731178706954590048386009559025265310447538679616756312864292972436493113304526847171617603255733433434241068072338264005257569246331985403607724736793578304350395494746947637089506230864161602851534706016900810881009547485091787604540202192374628236306441295584629776202085976888283018916217181614295943971326637418496208862863114424443968259510847659706982805749685375642903447513107011621075802138492721590263552640721075271876725374108418393943783126591427162070019497742433408312435489767460519572044991764241372484298121478257799395314806608647766455311544684609876287900302157884030573063080471612458994907463494174636979339031514443472613632392113241198509544839098354675112885010556384790342354781379615567156975377083891279405070453967589445647494125333818396106138283809123030414866601238707730748632560610107888993888307054483052098368336186866975621943388726460255193585921958279990517021554201420671845834703441222895319022190439288648272850169479405683321304831260504870212612991269515360521062339588762685218673828295493506302426379483546300907610761518094418716472950713771785264453404511332457850910259786663399005669052582433723481380470229966602641117725929833972558707876559231520104634183298174973861318434918699222774145290315313529695597491290453347637605022924583108120233073762125912460813611547061437431824421866900566239850113818201522129031821957739374701680297531169795541381873136762224636894660408089080078232943202675806477209843386734157801209444158933057392934546436566450171972193066096004141967702726943423934372124941663518876233940290643323591830800809007620865089736852742888658424833398258091390651442710574035944958946456339742151728689073344004025207402271941738943495199242609357664457045292465665178605202552271278266384133955975064268881551513203654299292713105932464146078626565040979269279379234499551272531125949473882586252688329132944916091095451539777242868952307209586096419560041588425788602652086004443786470538103328236581071128512466231881596267854610787016074699297274833716652134831474993961756154332710033815581657184333229463622924642269827613182412792882069763586353948943741742100359440159675446239234105295570017437706660357018780185087605670813556229159627868693390236591249630859101079563055513280607512256218005092426514773072665609722500742606264730470355927359668939704395619849947875652901995984191821434778122901326289531343051871993267176499520437166056459168949200417503813182962322338672372486124743286047265016300424445187328534494963415045406007949572183820354427129846849706641478649833115657146542218226644195106193548310946986457428860949628865858884355110863558374107422586866767696589357769748179091804822301539553791754008954594175151607257482460163010326597434137077174884712533413279240274720843929523151060635902166594909079879562471853612663129740201872799822744875885370828333964934155125638430706170072504702848958121410885327063794736499072539897876750782663793899522825265023179307602668434221448196686701359835687979169805925344986618337725017716128538187849222436040250623472840868892179516100591859903948569192838728702256042633513715204719030209090060624855035736073075970340428071574526634487959127651897323840378259978547179311175906046263345844376283913440768379674486677379977832346894137090119911578556069304585042401512662967530445898601210988047300351046970691892013898006895834814869773389955103955086459727357259290531415490439965251847299889342689053334102502943826442351114921923454229468572936395877553013041478445956583376783380803356449612449874944996576405645683730692017415362395421637073343711964292729562894832056310017063004576862131169216404709221826668322599859077386337080840345966355367358808215685005664667039338823984630891453042085524648034730871191491293894714464209366070500624168170675668643102307588947098254456155811662013857767364929800471428610420703518417731799055091171099539711352978555325082229946118668637870103474697349026749731898253842115526236698849275725579455527277452381087789314724743001822251192868501565201219549953405357064355658764531086596860445977178966953494427519606554740010096267458001653232690079164802774809289047819644368035756518660742821721795373794708000602604876202722601128846835140981059751680048468747675185733198171191221566005048303155357358681423450380926874314751433464170450915855863712602338763571105359570344807173483092934707322827690626694515011552593913219851464034012920087393387697524343349272324986246118337933016976334009639270201318104595573664789529593636641680892576519278071253926010454401916296524935514667055246863538697755546121127832469100689151721050125005892351863921943484415515288541031209194533302654931719837644058978496478748840196463770976194051646079671889390716030097805119847591469083477577272560411336874884915650089715528042760921492036224525027737248796650257552403269117561062000962038890948307850401816833552815431389719309918662413459576126372817461490148655246574885609469353750028099928211806089714878147177004877880562633326765505361288750329942200417384336012967901421282114023908452045840173837760118087021187932632992316277336101657648608321802814919319414041696918475449439833933458441254547694018555011380069110455894413543812682592014607926063045985470417018824414046700092292005056638586576584289589882105632603910147716257553852782095027220023098162027964178223813940461670769775062778522772527588021024278849536212530374506187810483957520523147145881407429372966476470090826072001456222573136091996116329457187470462160008271963637120037226855543141198127247895370812917545956291037700258842913866772129050238947625041626559660579545326531740602569022095560403602988710220375393682506334519424927278154962487763803050300777994904135949774550241566565577703101771371832122379754676911643238382331729069471957083934166119134857191393040864885759499244931554968429410646046418059674801493056324889751900103260578356763726201281117637254411465954993544773637561515542261430030011356055101510106586993581613415057856024953484900366432686805240475730784187798414181966616666508310932222322511262519318164645939355448393957464401525618718490798961716397516793398227938392547616377092274142574810631877190296678203225466102835030116515586449942411129271506869607468279384578877605589561522502489050606422847180094916360442081885810450896536250456174276045372361010121354938388926083237902000485884602939536386701415593992786335404313858701262054133673549438462949127000679548851875316108732422368075966016027884157035104742136303281969922412830182810428459230607395168127321107299725539714056068939992353963603149400493737255798009700135092577246516454866303448316506460187238581680635679688238347829165927315077589879848486972904132808068122710748804775377176379594180677694412538748128755518731505314318344596072640605481786175681069798060979779479675984147209747762492490999031423385148540227550191585294151563550840579083898732604006516415509120697880514276270748353300477647315186951379252241911717001512080147473009907877353058522243795209769044712528685029447837643490101397314027776862325861365185857200821180292920169054633858130992014820873157620868425579978821816100837940735986039010859295452669891777572865122639017264405602181456346072189941204648437001404015429665792063718251769062169859571662893749366762573005894105410380454242651785879357163330021006354389662775128051168561600176447640388517357976380710781300141510113729912145416478960134243336601678926424987970032555458163382085703810154083970902054194756099682076230736947594912984001763038782457490460163518132133919534107236153224754981142298589599229002348506169710001305413549200125561923311442363462478021362139264494753772712823152739748078545251405286450065869109826276792916145476550085503925245573849336055948222183237041713933895677052445860388046520618843481013265035787218982045440023790556601416808241403205171196923460055807537137835753149866667704962131281636245181952579569185141625636985923943398752687029624528506926236804071384074434322705748975546517572758653978492102134573436232929228255470471785537564095441892274688922476585502580309151521946799539260581505865918138805230795159495559791602590200262623999010401202049751162605628678537291886571463149057607331818799026917131615121951736717261902413196741161742920454851808649867211061613194338882259184013407110269019634645756984727953143350831701487631268200776383107631187851908659332929586702927112960171980879773975746045721227781551898666329105449181366598135316984832963311371358863926609303247645828307119759686073581526409800650716026016934263553807419643174256444278476273018158406564561193238538529929967232830223585777758851692412339472069094815748296179030296326749713292976047458296899728008344493207423565585227992865241125349303608148580376125869789022176232847768841335127375219487704307956829304448859087575053384520165550536788627299743395045107229598889025229798631571468449608186969207045792169332026493802050877781225345414067082939887582569725261264934775280423127229177487621852583058471623933193148325642587176887113095000004603491656052677888212780694699294598871601258204481572554139447452088885556841736507831597193812105655220949910581069322959965157258957685310348005900564744638827260221711799800782324912463636779269226539637974788588476384415835843494894100786428901791709002182678975002946908353351484068589154910695683226183565879223336254455035097649873376724541223249689311362835185097139890895577933305737776995231946248483146621590563005871375952455176493199303253857702647015719727359941144642984377427802248920671853499253375533193577368781385001254562678918312734629641623170743121409628303319898817196974220980435389963469241637543330174921334999360757442102248750566693902095272137659264808592033110583418093316686355752608125118496209224603028776135390796715251660717645879482206004519582520440300499354806580113830586343270060363491739709921843042078486341122042833475682916624748560238194850711030340418591159899925194945585488549447132143215588023116519165664309343653221520696966532815382778552375880297041211834030220365973113667101234920057182867856114851654289205718916990845873209169639455359129361056822980543937765529908492823938390669485748214969009137643535381972716175559583509692373149840293046159076272046072248182770437003250279646093184606420795958192182028953995150088457777762607355155285443398375882827629678970754027858976059906855276371516445303403268921322510311075471780336434647782789323658712953200914201993959449116440930414534337354750118978839343076324595492618317907722595988568052515060202909528819882158376301710005433643693265987558857679166055986820998740436654802673533420084843998758620855059761234242122989376524061550453617109674513444928451274336753970608406347928854138016993042960367821028568095816780212737850238588037900120800786880859043574346010392621195084656431061513868598366846008354095913408615664678020567476923977324478894002783413717417443042769690307365121899616753610053523128433210687500165997137238561141977383970575606905728789809399722480913767457896551485664222236441813532600756249206977083551433743088160033645207307381852831523013718950424612702684413457503711249929339417733065068123895068974084576165751363123706450914057224826642749109047212573391972647782823822169991357052827096311267077022014089249407006304269114769633736478557391377710195112904093904783402555000749131672220710830674673486138546466648502875754414027778137982282203813424040982670499896169365824020701801949540900382342075285827049555368308387078925809787053265542600326455503133641071532746346661090160229558518474025882582142162249603206753124176288746505123616679141395090046536107483172101351753804070173424270327056971405940808338937058169927860559297665599112080414032831217220869371635189072201362883029095111320765266224800664941630978059151395425484949019882079770300342530072231433748220817764280359352217942819517633473519281788749488754666452072203268087658444879003206473900674612621602725960522428936573174065336374859158926369206612448592234579251459568662737453195021662107401946455718016721485359870554373747584613351079331679180832530483212440197237470435132103874594956998741250858438984986980197441539394935695052269690193565973264354786313593365464139094412748895071525472455293342202564559299113035789508200254859318548625384449346479970971718678253008976010094787968895270439656079627428428656351731979750605978711755748079106177773988494810060989607543701074696345759192226729365605482795929951396499650087372714010066720405457226989365515171044753187885561141319813977503017369789532210106583092829691269509079180933719019087443880435011342030551502125182638063616374374196491799181102341242053467930232838576145692939601824808918262213393732058934213520376180693785551766338417998548304771738185568448449063833871343478782566404535328312312916125030653714923300374788449939547076942650828603801544460409346650928445292838091474501277966724028204150696017812859000971834332004707059867960479212456792363084480592521491194454380822284174883635487862730705918233255286107967231349971193424429658457951066547236314400360506757021287488725236202084335442448713834731592960028861139753069341538835973388436821485873650458622937348780283823646680024809196474554560754999450668116464793837963716173698865553361084309237121772624766807693218615551869628286437020790925783287158740956146643374391482943258865163318771014656740552590220587589755193109376489537751231067975919092698910414703705749590506318928158670616579016263546846583214835635949585945863780075487831163039684432061226909489881068491847766928564091896372147602721487891869459480717176169078182960913910535418140427397528262668640021241939777188457234921181616939728309310447820998866178260616799751191179157302379102269312036051489113099531670419749322714486766297034427452954795880569150454450561709510097510697225423766800592451135189855909830246761191041719731319586758036641790250950208209760176798380979298438224488520094050101754322206725711840530125375281853204103692301985146386327701587819442727339685504991427170971047029223687918976077269637700362444484925822747974152805527612698806199426877218757943457613689733880719704259507330424961522708500121563999473288174714307484049332026617048121209516261016972493990330264351844530908552359172205703885587473004743864035616922996727716286354728500289803625247611917563706587316092963566575726770493988038723799160012108020915330863767868094300573583374711464028279436126270285758691181401220757124786412693996852478685527575288844999152084769831678318668779444109564367332613978448066402986101736542415118374125201259886120809692306932557964420832805555021114824030255508910160448553046355732849895707285270363442366483633902842377517415175968957443440747869786454944756456551596009610067764707581481966596278566384780401540508260496736800483256898425989531273205501117435121513984308178149235949208324087969867837568774837398382616505983456183031916369433604586553589979696127248494567920454934036850337062466815255270590927952303879278842609523587241554904902447034317346632989052402427388453874872634724244800385171760372477564674197736171157283199681985318071220484838325808101223071777035349537567679122010828916607197886578641155486268270738961693009025938501304780173634514318546490068037992216413749527861282581524051068218965023607773341769514354641269496303812036413904010042147186212675803526862758668128461679181335348575736717239804747633494671914421380858844319994233258930605585696337361887412254453620415246180678156363768316900483798171010849462728968778181517464621433993790039695922447259890639774346546008604779063496186010222336439439244717477016368809975415676462580621634544262499876193965643673739543770608530908349396603648270722960406754939386575012053066629094188988191287803133796504192051504751889825945639068258191050339051555856934644009899811571673339633379153754894342604471501879974313550389065648609877772134589425284287046439084293779494431262639602635800526390716365485613221882176392710945375165119088975300990248608602970296659060995777967815590963432263251641650336601096322708078392197388450143625028416457388065891267293493768451876168720779091232168391262195740846587353227900382556222363919005669063914033564022871377902383621995796305694281466866607051309257150674223811798219700102191369750511725068268685667799963118016774959799887942277455527250690238783215338960573158820974463569522683905188258414399071398514571480629649929488896998813619302377469061277980346472841940420975798338061142750117098339236911260171404668944271342697301732591569533866969519270760775773727685099203813659320954264661350836397972240574935191473510121658242702026134022513542603657238877840798033500866906358114865970838162897162967325400344648893744619258368134860047713822498405547135974433971335279209544482528938395940904621026347643768737076964082740280864299567760349270213044019372310503823488108500855681508364260095466057743769318787526577823817583467109469910310329801768703594713736959708955394751602062002996975291881993334977369560266355623996191617731930909508223193365238540093596490890564358030410741427216285859997235589548335355595385357281754781622442195739753936933314916950377262730058369575984581610537494357217687334563771009247869985846005224930360495658181214835594028504853406467733542395439328142730898539587747941502793998752533738920649020487077122659239786406377528201183571636634087688946794289208817633618804277081392707046534837333597656742303916947122514659143345364217990167264428768775646445332840072980414024230885813179250019343071158165487773951689570779700013882992330759676221888511128740391333240408083005724890575056712557757610808150819124429559705128111602894952107641025007242119316912243862154074656279921820702514400406122951196237322148763017659388786605599699927051305670953619624168073890733070615656369695591262592944949733741829876949844588098756163157473570046786769781559798473566026537549555847172877066706375786218023098629165989366809501802710685002788632421061441338740625475522116958103486041370721425686101220278410991804416872281767525092706850289120354916881389818956448759982397081678312365648087043239137306791735779480724335815049837307382525748661632634470071931899345153535331247383761872627685273520188792978494283753651405328999953271084310790527074558732028155887124804337944827009155984106206044226560867485535516401200801344024695944924360578025279577552862612730328464794722222767447329998271108304564972859744997923358463096229367653137256721347301325971303063712228632237914489838493473841654400212604636193813184840708641838346792195925919728862808717344574219198463899572627262194795411284446410179608711255509442589679151137527547026605141914699114082850628964929223630364718594374466110873619250724208239438765697626042099388199803201499586522211348058733057333050265737872567870041953410281556610903460138626522116755738970246671774511864388436504361985730843678651566341481929323296237377708145541686086346549932702401938158516530596545832970396116855176056496255578014126377361746792876557198316473800277560494237340500220805372643897215886690237178992572631338511386079660759129850457803031043581854568203961259918080133958153371871152535820650810768470671516849783649882494364025915077244204258292668716036315848756323817148327769267727019470881794692294473097399502688014116858569863746023911251073887580801375321999476397642655875397277917540388183110125400465120470426976053178338227402634630487847738665965073566932983866799159197788270680290403220713613674024660618845329060782451082326623267987268670357969385969517016241382857623588703698275400042934937939784441894665000904074283806679988130906961786847434921192188898896231678519276835872813499085689691426506849753560321559205036295093469127981507437749587134544000979685616907204501090114673895616000345889682904854548407722569914241055109527118462124176583289354352335968307931932035541972491464075766304601132777577122687244645361462662784588194028697660982959114060756237594718799911088173744711480373527549573505683628931533303385897906346143968084829250907678849403381961050644618657176159164921623461937384668002897390813990457293305732787650178937557655189532798512829189424209638223637057249409376086798967802628128760674569105614945534541893734161055808633176809081721078606636775582328904748234192489908029654721215810043390127628236815974778057492799957062850070193506114822294673877759910698938922233426274271423776270285093265223460824595803843435260847959771373604702708396529252443462269346708774056061277129232424296591164419743956912716166935215527511292667508912976140272269599198009218399096794657084553402128694771424220272579978365752150436048729719925446222576793569294291292518227353135783115209329200161423914238264888688919216261463515545684732862521964292059444814629342101093318070654978621519187011210971151872859112922560207039898097156891929489735965262834657542879534418142764625925625335859863110426940417958164822380247752214296180860022225853129214430590427092672939551287234874106930205845571014450586745018502347511099726620653780918780823591517057517252486503348762004939515234344886419296195937053431149651287082179733604101779446434033157554732670198739271129490027636722699882284549099109484249101193356889254923139243497641090713561875839851880084475888292854906834022445641143605057617460693947916577972398285197069307837768669968658102726238719157420830564351319220434422538974694488847548539935879636533294780361785436648594042037186299441008810130073207382657412064368510730622318297613232364384301091387569037685122777908805032635726031532474141371829718151793982621947918434606416659537856717943219175952208856459985440007655116832646785461072124293736839039831971171650840733332619421848911156225694416281480537175497122345113746182100225202494517671140637514258991107659674225583386120277475405862690381394901816942344510118190832600592402191816976446606127091524585701986273570908537796074352209821560420265883888576355324693073025383284919935702659457591331651004690316206764133060572573578101074360480375174372011311076814985545234964011334774486090405444727523585296701500741541937549479020549937634729664364877193726264110567572923873350449768872583142830418189322924842804827892811207988800841268622905991344273588600654903812962608821573326064278396204553332542970481800768105045376141375526395982315240650707111391810726030823029429999933305439297188839276974325996324604370371608126312953629433087674477942859279539009549789657600636139617644879299157146173458792174869024404456918749933270653205181207155525037890833070222474091971718998831667167631328179828681636871249289080483241540688385906317603798137690364569798202999125328835454513375324129749880882537220673002961728947993972612336130579980132366045159992183796089853353549226691337435350103412546406435245474361715376764758736431284847734668105369248205768932122711377561504711141705513617916325739450728089908760542211229306373608583139279446145061726113390297035421092754468455501280240042914582897800445624963326693054829381044210458707462427019734791891294607129550271996876724571209706103788981929507060488332729246191640301027922295325956500535435582424886769852488567252101000451441078670601633794181348918951604452969069351143057665260926712513876230401196423691871024566134563791582148970343549047607514747468427615205699789567624064266437520886310786299575907123976829866401134209938636194455936251047030879841793251334004340576304672699090685153400217970348108880337508437767977133746486985255792247934372539035392210042117463711351870519786535631376254082191185763635918641931608254334717469625513165436797446880126915331956088262725752017171295981855848013332954897977514384360073903212294725952187750413066558788649784225499657961709651386668058413860333571460105893249945715249357734994218274218555775029539812154127697639263813393240998955530710098955522980227222005337794609342401300731694219696166801662439863149563225096856034971527022607357954251140973517574788855618249514754481339356413118357848057901748595894390466673794615497242974583350778013290336346867538596260735679646882910821504258904811465671262293091773666260383894040579006127745485065602381908669627830333000916133017168359387889576333137830348249868781633299506201489227204501694782004317435742941191032072857177552269119156709605052477190452060694887602354278202081621482411010198924321592105130747206398208190813638384877286163930139034400609587435131912774467249946440248103746121899021924667544889389107596093669553727078505995741851184453989536228438188854708708147084471805886658540691195255656991722347995575018041639487352865068655090840936222182187912207712406677140775154158934309165581636578287999186189859466168680367186909212732998195828050430269959399598268039910698005480881771063929248647246702768186262705681207242831810192285302114460453838632724449175808445837867327024022708825077604050796433094570927789272598259486720398286787949504771685927476470459324468268881779278367167316948844689835114406868984076507601426940663172857305845191948156714721349952807450408234728842100520673465241332717421450099701369744710008948884677223252628154397279066430832030185530726158422494782714450116350964207516209780442135759765426149072810125598845254518056524721011336246872574685252969668673321096517729399196699044717740195077223692143215136358402118623417181189475377472235849331868301495934222618653386081272622034454493277491237766376288751805303089447587221804342924399367213952853429992436672115586317642914683703307485208482540790682205522073463079317973535076166714190835524015224032449620992178957527072593381611562726607964213478259004421441363497439271832923907991071546138487773474616942885885552479021577405424827824418903113424498810854808797687716018772113804563522210995522440566999298644279875865900181745559575477361283865267059777417530591984554928396670259200762854205462262196774046401541853884399732258575347472985689864581294199146485612779412921555100391155037102343617697984680626068665871651024900342299118094269151150022084456475562954122875819058358508869603929485045171736422149005398799816507897901701337073233607985236271436604097142723654850047990888903312337517587141665694809487677920085441107958433795938109955354967695329564264343174464191421034511826196154922600630316669003380380422121883406638620251695384030910300341407903206870315830479484887183647149600083121419303423602308094166878482868827470893954027343195791280806896622897808943214736942891518172093762716562595216381564047684981955366710247173717129416602704209873467260514669191232876731410890011366961222030224828377088647790846410628165051444763623058203014055749574805455598506233285401291050775148827282781594840723489693309073601713044030632264862990614115178280459894422691824265175426145907929842664918192369539580493243407250650876980411380648890178466727639889087995520474961044752420258897157266109345526170458040828051820710784762150649763297042799272436806890000379198724676895950380971569625888791782902599059318078849562807631055006192593973955335759927934096533996551862302514346716748775889747175107349940238220681048262965770302006119505165730274242477599367426366801642792293660067991116754433808673930168195539868972401652279293064732943410183053475969632732559779722651644906982390100786635006919470127333120956896335158307457315156742248601998608465218163127738142224836520910229460532366274722595438272819379299674203404019302851293437178918267205816023431678165711775195601135591115074354449107375432055942913128478970467079927407460373361661471664575166913255954369369499169410954224376503569515988682972545952377122615346334142432979151253348883832697734315616692747475429634939867818349219392492492681858427520550813829447661905931990768206901938044395483432376218164640340348262513829741529340086159618487869181036509169368793077829813061145052021501299314102386824474485109921277416976511304356989443087555604078900730908797889579257206483348427205401312408451603435508388254832423212306250726893111564521605803705171495415687075629412394182500954068422285053415203261036557247732488060368584287427344939055752895438182918087943201616802954367526826271363090885553060166843443787909607565276183675543858072065480531390742038677833311392875885437972714280320271400441601608872456003389485474380205610337261636008539454173362164315965389161253521365229615591608295024707311177830697464274793297559124089018521102758974549056965197660122008733686591898038249537284954570747756922819548626280609130746031348026597048334453815030779048654740156024932484654851739959704325614216104235120725184032815283015554399404168539752517915313030974624712288967491616958808890259243055045051800411691907263442092705976786450368599212165140601019227447583740181691483912105283246346562638115185086179046834411519535168367394141491402705012885058724388654412494095719888201468615092296831153662061535344221201544748553550029116809626722336764442462747414078988517918227528237637401754302016053470780137413183418393326561144700896669717514079724810695519784840277212079785855357697345048538170363542290647470651351557200922651241828432147096903336005416041824129638135226311187869178915540609429710613012248295595480513454216367070971906892870743297492122250330158230890849981267373385095155463071003267002926181810224240700126973075959768707557925735744279448595259541017401000989812362628972283365303110527696695190016900158797360338862796617667627957221414914857589842342738581087539799140922879437982147484382231107440958615489576556146654111496836373686846041939304411201152808885689002575625022225146559362456966251632669655484383133253398102171903009725273776635389306972127895683792011659251578916570390801301104248236901692461478229251044540791590538515394521952810501393107925014138378872094843913282701628686172224319088528507309764882828212871293597919260914442958061691364582367070154767791899353486057722405702995876876236361519509617961437321994716451055535339539657892192105231456551023083831407708667171230589553329302443571424728839272132181644176924180586244150035245136897962251976644206730263403486218782222451921866563568140412254083350645791831640926183147800259332332467888875238505840913324854990043898895768796931205791537782415520593495854296421712644252387865014454796168726031527821958144601407140325066324707625189291325783439887583438181313112747605631869341960388325628222161479106184835843461272203563266728764085015429896115683007430422784068136588372142627879425665974194067783656645745427275571487007775636060160025645680275326945809014981869136296976036410106565725909243846006029114120656688012973309924028621260005124356896576075069576879548583170403183007916848430739623625146886555432770508045700958773741653592144592731195574779032963329505093589884656333067582121379009027926377883665115525793339738415673425398346445349011691527532986084918575108011066181920645735631577590019864760395979098348933616706602438309542181485782668399359805214205000593317572556331534671667289737054091055673944859732377273789064997932882930600134988935315643720379611513269684778211259439271694225551536720474430172843123981660152542237317293302688937457760696384220449183229854580743599363235433527569501076433751705907349800298279010784175174282746551680782626542293044294521414700386929827301741674971202234145209984720767549151789896281683548967624139541172334612238796648761716142113441528386399107277145388584950352810279972139795840671080480296905522156498057862912512990078810308298431100151037215471168685940885739757967293848479505684496738338626028900106921149198986312256228397487920142189373985835105600316337985262810791990257795349411433683258618212350935035812456196825768214442484218744316602010852988532900013625107083145648919699285309956455728480608248306024559391106468342518968393034244750350281465312403568271273482898467284509903554238131213299454009291943590805154095467174548481574964907935258439124985653215148708593068818375848205281428533568052254652909825446293722139952563560547126804747071594502194328224895098168041529772995555069575795719725683300287824490980616097688238972659100649002911969563689017235453241355823155911225976728577983083390575005917500738342826959937995202002866569836059779712157656497115754301884358837265297617287204810365859292847476058010239811365696916390445524549048803133762679035356280128145471429341795245633058129895730082487481682917305230779861745551847817469914308510943978541293573146463148209309030707020172277400844254667562241282059148595494760113568489085854025861272507599002578591318285677817828698028564531886090884065267384880420873471985930251655130231117259216130100640917165719697057581312637428696618919667550161376539335950598456204192184290452285237385717682231833682147926282851062719911779218962620013525627636650145497659978770136892824012870116690617260773221445903575340443979328251920639006181617794996460060185744342687847659068054088949540374765104248068848745713335733268563788033604825997167038736973300232867532751916858869799773550658401159705052276902724465296103337396109265052117259729978565364581306016780659151185912799646371668900933754983718738865441940523660583261434932205841245338785600884594508110094935636311007157061439189677007623564831800439264937636214307371647331936117370821334028056756268456678135306697432695997298598094799987392116046653272036958402860500241630130935646579433596285072518065172869228926804780614771492265193401618813617641532153998214679982711393847489713607054789357158637605290842827045366753872144587596537337462333603453300052964062511112856633446726855632419869553830184060494075563762753001272044091846241445341545768276259176236849837532867545866056811475536720267179497319338373358900846078706661434582341000908745205681599325817851704233885430616719168535714754541358846772594535353433012120611410739504710692692497064561671206125182400830302518153709644450794256352176286851901446241472559437562676079241509806633095064220186207099629201344724773772587491474296729724802135049207216845787445433875733346176516801914640668453315651500919544894978056037512783468875890654524601221944303793780903411076400044705928758717373170900390580172221427124199008038763320010469213391743639212331579597500451304435835490762360473843283032488583915690963771949113541255080226259115236065361749887679005169122493611491683597913339073060376808214969314981095779372786049422170710538082629300243598661636503389303585923545717924495319147095176179551315546185817685910579289665167284178047940268567651964821925534250701871145373282568864796374987507302440961101057528446067276942079791847135404187405818933342871108598986718750645638152871376160959181295337244689827393571196484700526670706297417054595829729157934444722810811404976975223422684560960673523687823709371357846193112645320146309662194622674672724690950649281486147900131008193528739014206390050400131099609738017372306851227828457053288405096920636022175650132082232484240236461767384860486162970966186085848567254119105441935497502134143917288831976666623177135712697660908136051649301223022537798640967369606280401797015806259917595568394520148318225515482229447490219235546701208628370333779250561576493797380070629540272357866681878801985408740310511219872773034138530755259580085681977613384603450314890031258658533074791177918951443995063571221860230925114424684781456222850194240657254942174066903259857288565119086753577027010642480026069106617115605906092729467861324111262740969122183926348498250625388934266469530887167304343083291761961652552354137966109882654705860046606310747615075938980629358445437921634124482679110107061557991063729700757783342189770856397050040888106612396881409734948317182761075265257031859070164439309346524103790474875747328080808529611776168839265265223624352056614856476841511675289432636048558742913449778952868819062311792539373667527719449200805657215221540576903161170333365150970531167145065299563499997131596793764701611908101711662066213156287571011506100052196752829132069510191496119194776369996840922391463180311405756204259777335112322974723564285506082345741730009237866690839416761781361809561065357237965364771345433194527492329437054484968970483865174233421341658562310705958509659763465395389950524737356448438643363024071061517155170106962638547298637209169921078788430450854529426043559996387509231258160762132955940259381319479863322814959880388989847406978565935257562656018163240359466724293924097918755948552394102266053258537159176929367287902791352880460203414625569278401719244162558131237335908220058558369754457117458206038812588649096080045897053419429178924712885861342767978976202631526452382226025558705866987468355412372118611040471920096898343919510075918341909817020163291272065689447301627738625043045949107575656584120886292616754222898482412547608681867758295128670910589060515853390003709552343388176879310275426542249791387966971869888802665359626356062771590034039857853031523350154587099030639584085727328785367354385393948356906250901057881590499771798690205106888623691185311039154796384977925432666516365911674400097668862278742176667814547260647173294672370594177086551629751218599195392637441611041406870657216158050593028705798075102061324611202823711674507677270419362054237235416648520166637107334806864258859118171975909687265130322584009939030491431162349907758955107817186151084591994494077903687240260270634874316261036332715210294035718792914895822266093796404301499363655749996498555526430437878701653174087614351943580870338621352386915142658008078686495182328106890612443316603105519575347821476362082389606580824504668561780001209412359147243253508121760278143466805695663308166854381960352160372692188286947348449277370926487322850815459886192068702140473743486800018174841235586200708241944831938917923565418567015003155852812610580555495984324190466314235344885148326074555035975033514724485142226706285572194029367854362301311385087894704610036713430164025074794910826738734689008627025993111900190506041105676522328639745485894918840619936909026424070823153629132965232231565497828652157828178581077115027038232995670013194193633526976351295820962687939814540177990705049321171396135644692646818948020104383753634155043433503955406167987187422710259979153471555851272863675473533422348056184024968791990070897938557453614410380257102955927922326898183638373106745311244998295926552696672379376469806307238850224850646361741347174097767035947532642396320384251980508791734304631325648936842565269214483661260176528889060298880482479753091871873542883054022502644849343341185360230311336665971291729979854866213112137766003437901724898542021989213846040681425618394930138167741067271758631136455659402962943108575574291021578038546897024173453018023083165520292802279382739778952374050216649948860178974804885231461632298698300970744349002618980090163993643243462705460842646812247757759335341336948504812841310495251839248120424637624534335783978892003720404613665008683007565076141785083000462701094332027377111168283392278991339098355765312785796045318320294198505783427378744778482003557152150116130737087836453410341662437148725858162160733124294490235443884406694731580364474853514326107430310434960583313584665201212509280212383412374565555456183794997666861552293556057695208583097816651176628507987778984635381189895117386071911757807693158257436912737232930571705141141309423242654587322058110951571231033889543256202889169670836054630240948354893724847195801346706022586018118911942969961795398500911647793573388835855811580715500489318881395854185230063960489430185781378005452544278665764220996857860821329635504425206040024296092058324101890734913373762749147319921246872537325458112768306554296166826676156089850808038557053998879304022936492120924598665877475680172523957671561629509563881858999846468771243928747008419617148310584248268014582922493885845981866178502788557611630491100061051256860146038028986266061366587378192979680570090209867928108243394456106180635310463556399720298312670099750893872802958762673301755741966661619887498678094758224180912344819238800250488400646490477241302008476636458922928728834734867384560650529677091731221582386093237530407661387252041982536488443244150636387719418519422127689014510565926155815705506796724865488884219808043704164933599218210515470461027297661881432352707564143214388403800210657816059011196373340487399613914282333363109754595892186794867579497022918417228030499310945148208071083278671505031000909126150445616847413340997342636833756308551484176482789695202011901267499186659126262608138593178655338988194983658427237477652938988371571872613814235929687024317816388572788705141749019128331387506108848040111789616422820862593178829700001559732993544558501160336812914516557169677682486946041182664275750101301604164811273457554946770402278449045229244733102875835305604955306486435796275947119797646998614364727941117404648089405987648709085385557799878059723215193889108542214972466787272132496657015843927510487777199741711227511296045349641383573809909357172065565864319930354398957848939774598391383840992040967466684919498220943384968629244302606460608310387137923334240662097755103724421737591574038192947669568771032519329009612750420032550897804444214617305081519653122041350845463737745231032914207469769126589720225056215809593944398937882558514476119740691570588181337138677977543224055993146739421942329624887553868869587969995706554106977494577687113630594194941536918604614622807449805089581296410351614197749859225416731191587043222656067171688808435764751069312078265180485339557092763470530947111035636149770811315424239256012502537828736714661121711687964180483812189967380637545433383902674800059396948623394684682324027365033480964006104322075142287009063030823837202280747254563218900129941677758881838630674582393701096821711359306301594764966869098908840535951470268826516932869985048447222305160446696152763124078284241452608829971635298815716978171964523354802518239383393199198490511739030969076121730050019758248986373461297482893204017657845353409305047522507389358654369394086814126678880170456832244875589051048671767722001066199812928583248528421131110878948717604139194999126033528679269793674581007226499428743794452209191899215953660249217508912950811786628935043888581753147448763905038222519199646235311362061279451484738737396180987211566243151652638341210757522024820069129764034730848373995974327429629076904501016995885557721565457672353043103022109481152447381790914032295350532727912328059631404270447574201216384436272389713371119370348567792012087889745414112168313119212631083590236731491385046991101754597803974247256348659868961571753328226515165336379479040327762346330200196959761200583934350279181023077227278310019666805322600994837556882167574570122503425004349109889734592915065692529981053751767646022787501727146068327721130655431511793299899708591591690990735518523243596907197858923424358519627173557119968293625856405351944068233511167239535768537989390692827504866183487405693460954383676119794164232343373683352746572769814772231167528109185360466304931469943347349498019225169170781176248672521025853906185358162744703312021551423115354608065275103638014166660284340542245952063877266187913599274801979873052233861291203905415664472769814925830625789998840816749756641110405571535067743455157608495623094914897750736148115428624309503037561816131212816652903090737124881183569645281255644722600236913824592738468101657760742081851921431912134306894580759458927074990128854113849568347412492371661173833678095452386574999145980388841400195957678342950963936053273557731119905970055395355892373823185119878736589988587404960231373321811533048085820855341628558046125930567232824877665887681536067075533623830592298897751442069325889238675126369638422043027006321439639003175030380411402708591101348821629831282524594332961268049126504042864940967660335424031242998523832794779272995473060688328339736808764587614204327499087437521318145080232133989779508079254744002413526837842983198339114673088550490738311462894655402253371871381264452237571167484104018892139732399510130688941608586971440894515457171968146091894220472602386152838586357252328822203184026281626989641874114809472779343563453802631198314561846264387564143338967061168286550394374830975056052362151534594419201194371070931267327860852377921734275714246098602660600206670914377976419894404814498545495828358025239529709852467006469376221462246006683907039421435549924052427830069527591224070374411773541275888872181769975883258962274635793161272174605686822943836622255515905163734470484915640297076992766476184274566026033224191686770280150375766008316409615424193251504605363394438369271386372787834656386358709779828488960142663522901469970443159959662192895103363391038381912369112210154591043660588161194999023034246346620879883065709888443245972725356937047600827858666007328679499381741865823332242913485676725078861933214421768595694777643637277635956888664491231267058343624207588159944099762052811299061133445948275666390517914822932849173790741675003190306001552892847009974863367496949636255274191766160197597798346561913434396606175699242902908281241988898300689788200067003733136978602764077110802495287785245176247203175917845291499794104081219442431577287749249180860404580973962479941703322696091067285243261174272921038252027280298996375968732016813570882527771898527500263668671883017784567379178949237685111697385487629724884705984163474758538034017736740774611000278778774009073986839195250319422157247599814388676778379798654022114548660977586446938534828964098161537282741585193447022607840271537170298317320170623457896037773820927305289446610777451144808445323515715526458850002306422496704165084848860323513009886236772557167480525251652526313754334073871344821997289764813604051408636636898283211032817311529429865421723067036114853071130964900510528439207049204937739121133939596815843697327615582693623775900489912238558344364190485904030020472529305470038958568093076494523435106010075855978575620506016029667984153551642628055398335241760834366832728451121600315247502657541836042909400608877211851865708547330653965662802331806924396997624702732602369018935032859737325356902849908041708586143399728448320091966248893397736712907003628087866201899427285397832868342115206562585528874554973383142151918239412276732175384389056248809419697476086120616731137574911191095272583976595719431997872973673672709749744319800492232831454818300310984641826002528901210422424603195923385824010347225628950195538360746185427722317900206301375280717438397989120245547882259919087077445844134869187553118249308382113856038140441484810090488351134102479743646071631143870636857335564919662635484658105754006589642971248302798693523142437669652676260600566175767315544707423451852043463827546172562749746254746876122657978940459179578963334018631960483389114552357281263104586613934067846107581804564163486612535251804830969842025104240014187772883163534319588649464028308779294593840505663338141816414365636115781550666766388033182016315593830011803630301978470090051430182747079121070096626058057627888456128695135330736926393952679769815848979969484209924703851289866873025818673689218272133786987458978492189342045079569312501598842937335858842393746568278900640813547903308187473086440406502249276897104222327877159864628712727768743610918160775171606880811840671097458108905723601829481486550192424312479547649054511558824177458232540734971393507027800077048384898119830114470298379772400182131860417192658283441172958789319235893797926364172764332859152862569828160829356866265532840091381576972338695777165977593419482443679798697876391916453812979392710547339632095902822325965221081856128002831397688093874222910889228785062689733641143520686458794412189257788483746735537433276161038882579270509507379102097376579187881670562746723407879542931315651154752181077607556729123025829613055354699272190818937009437365539464676488346237281417979652420221796886142716729300196198429084708605734095359681142553211060453837578217538019057588495609693656295683326867381475983308642329568929457455961617498281674598111267927208978444176484473200879005508235681729554197888412493483730226665573231210860331723407548692147167352546894236139393887478327013352946385631056576118949690862550136328875143425096913873291738450965220854766269938208306000112346783507220064407441315037027682514161631451573453784148486206395340144993634624700946596471599198887814712248963627206411611259665798564912808806781049050748078781943201498702208259800942449336932733714159526292978453311483933404871673378230022756444519169757319246147430467106615721207585660405626448251317857996072128822055621389398152006316844832530358800567341154833324430878616900564709650069225825866443817174228993826295835591812902550971593137977436384222104174387346310903465246660248038876745001066095815633870567458599239696056429681044311058671620294867872618284189062390359767367990936512664665239750162556616057018755868274164442271668824065221293422677496384692749485068506982735761575363702567290648744319262198190416878269382522245152028767422571549535716872746299643436313390156215163992586072835778692390525941073196136458713803299259171423790123318807080523476162303933119618879386119277419151285152234314651617967491293797610508349758174766906364413385168021154752167127955560932115207466435995462588729756437483593874368166969994328595768705798611030853422565579028695556523219648340043216669714327168958794796318745366136413772095260115038327246283091913936766817832543142205063137932842091040500523086431797774188514186119984991261356728332587983934591266274980204470983951599990769709235267855228859185177602657678922705546164841490731241613127242174514901549112020156558383944958018808469345233695875300679776357716736790080763977379516754444595927125703048506922426974271647628851825145968499150100531548659460304441496599286865094242652261389685172668291351375853775325294095141898779287763075159471164456998565272549325446567148820326505024290100449194900146491844889481183056994779317436276348583067567581376793365710438265638391705162092681363581684068923445278970423646347459129193040450210409617711383385955804642529916985707642221313979786296896326576844436415485592418346882802524841163295885045107536706556423620534451507794120540962396945072827778163781903808948888485237452809144047594215521551135998428174055594193107005724472967433425331181784351258674523779472229226305679143663212576368712452415385311338727526223651965228279932402660694572449811448385035906600380994375027598377779598194427498225539933275788351756501877876191391204100300633071236925589474861318735983324611096014307928617575975790065545861623354874329519885146606300973892832846205038295589876653309135625166804954453291597536919197550785323051288535554045129889196745736879124124879988694775141374718969441199189184368071187857320428445324004686281205728975940343463104714844848077868298714691023293355278644968327611314999461057051472809720672454495562905098814761638071990573735653373718176768369691824970285881144408911049308688179855987152885200145989324195622602728432330336990102213365186796031035098133086085704377159760638112767830485070533449909918916595015295627009047022374949284964652723065463462378547045512834222133940484393582144693779607816062729787080136378365164069612550657800311326019518674525502559682493819315401861484163109999062495489984192569120420324508786611411531654478899063957277212130928048052639437406989270915594133535566198396346574051325397279313307763591632101881461708936077962331782846115656762707378358774430878091316585007954304378853370290497829006175423685139756928200353704035762048949216821634791748836735512762194455668901491127422343234355265522739361555935085144438249548711309066899820546518972228332752618689368274762850532423448270936306386831732658209350172873344632294768713901036620590067614404756082023135988984486179939034114337225437038806628081479729410939574965015572564424974210848555935207260384730490713531153651197479952444086407861687591755562382588159998728426967970234281002636753135304326369834957211028905903276907478108645752619026066756166655504286552676734386748933260540373728248615939618221624411780976188448376396616957360399868036474692522697587974569964984237877958239952876700186630908496677684993837868194036045286944347762926085789560865846732287562534735371307126401746373089304403660353833247009927857611017000029919125473973113404895990370992867391862947157654280743282219150026224611658748092973389502318483940486872427437030424727260599954284733761559017248754804603214212240992068048060960860473398369279807751001053185821951325035025602420978254772403913391318517286307495257067407987074388062028280408292165525850145172021753090209082728078241019903673191028661856289614888878272628390568773975190357134168708327020485109377061416588678255289246086753719839640579371504985456941049531373878275314125787145849763987788588309639660916350949815740781974652468336046502869521880444319377482040760191019803989659235954215963952862546293918924309716366939715796405692543851877734461193132704829057199553611500460240075287542658984188482695081507967308954594925578094683389909554303911460875775727747283406589930513687762106489927374141588176089438502356983023348856532354619873043838380614977250425368691403301458556088020257824231340673514129778282671082829386876934966445694375898250432611240665352055568129916919407536134654170521165151799199310450501152901471226531895842045563203451154236660136590212855130467499320247850491356282976128568066666252467259954522212886969659280852356818853097790062866007349176203636787614576107900145162254675581266643920064072160649401244519464702126299454363061243453140381076628907507573129955368302290383739039597126183542448094846797817741146738719241510808134115323330671570861637296991245396603585807705124645026490120772715020979017656359669362440646800976980227440624121646742073164293368802698273924960675173748929448579884922219572584398915835456089053554333576093221695134551857163961081963634723473517761039006509330661336807007600129893739144174728166823041075415459720304429301101153835760355048201021932643752828007895031142965759026944526127703193276378812330200153048346625402219205093777951719434823455999122128942488166775861186653504093318043965422948361012901582189640362919330751590549136486235411056155571821770585047000524110364516712582342793104449470133283740048379520869024423591556371954766543859358136938544350809646575114980075999128259511673970178700203543014982287902644371944363903854495230287395474495209022388555316141346830508935316703104608192794031034703097920456837263104761996837947967675839114139921083356083794855006382357716688569336439814994077940312321718094960466945642971575327728092663096266876210251854555374608638346237536341198513998841473524862008822187442302117660376214680151186987183497324499008769559271621282200105409009418456609101647696569559943190369509615736288963213386655840417736670388441489892498827417103496642465112192867311655243461989697769165411684009724055019925577867187907275399658749480050043326595410730920272275129234208002876683117382115468450411338454055791048596024036950302541672609223455050242715794991901791720025140324607863118023757387390093572910522697109520260147501918005588436089574132330330172211906302758752973093154466475531815023937358687985893807933216118217275221051000733738722184736043728064439615027909024842977126761225576575865155472867205612136533069460905984295200053173725743038784057428946887649598940563369183035243806584510982137738182696574601190987840719389327706162536762953248383231490951853247646845365473528769824729106467221347851259266108715514980962002910112564526112459878164730098953624946262327818256710006832205272775027956498599685751604134518369694797678750979070737613772074313369705716569622925792293750177235681364647570879305602435441184930511742375457780737385844599204707048890201734178393009306087224645161972044918925511411104297837361413668100070105180578962110579454995430207742016278887145272952488386177561762035351529208790235394737925386438503329772389221751150443484785414460199582809002144890527104070147335688842739813828702106185307120470974307908247414323546499850947686658319012108243655271124727534899604928145898787415854932784508818542975131086444519370039554534467355599985030045667489404118285024162782738289809519336780956514586871559653710202217012742704164557358206885757184032411568315722599875707869597978487831583634576453057530810803903193822896230842009988129999891482846830485948437214541347182391982918342825610645803089355953349422410774927301802750975646247473178495005208135414258691700792462320458370692754957761316112902882008605694859376951230648086209602807463579304999008787149548017613791012624001897612265290654044794688562021338096972047224378857917185990750953409119545712844979214379129334008628142579997672999311979628374953555239350565717518061354068465764668946027124323118710115523570286095992746463457429659239203571635151617139583389029631154198889838389075619372906729322498683666008617555019541722474623120452152088105136755800416642180902609616283372092898057516344875959380451271333421108897569176027990248216967651198679920646681798993541594740649034326967974293433988416272340746119717260578791735431645622526215338925542835892954762213654142361680976744779049890930318161660430926582179285518575485317218266550376437084420860507045872365716916387172122546840471513085404951821185858030153544691570253693210571094956145210164239142037825969225119933362373668158963305611820265251677281741576218211738883006862293286849030848135908505282637967477069447560031726370097363677586359897900866473125404009242205126863132761964983752061073557406374015407717439573371731213893863844347900575445742069827570133251158343977158932379376613994049682253791231530614837465869390663787016536982924639468287513226083076668348900504396578763436762383956223218561288494197643418791025247287980253170295321737399148703635998389511808944640341740266614173258043971139141547313733978119777610421735360361071976070133502188321613478061129446887288485965240152491568697919036734131634966491181028856967509395515168357044136894756903992577688181975211855227468910255493396596495504728981283570851365067526183189377382886523953413603270609738343408821514448426139774559910213295143453318223302366449257281071331663563430195483588469979386547958633376030070048583338413635045304619877654928002128930634217774067634240199363287687960655409153053568574853390135044186830016469578036368203243615881186935371883179762435221902094430429782368456436613559586762927312387918653012233281553184588370123747975224041325523238095473332792303447998214272941478876452769822128314434547134207394443244949697505329968968568886203361014144672991346941616968689648405034886180802193487597865450561661531099918035490658316616760805472418183665552914646501238864631339875089798037955409194296660503253353256096635944507199849800172530941633537858159855312448361865217662610090612546385145796137217003899395868937712554874960839626263406955499919583999199383476368477068322420083721020525758714640429036770751336614102204563985225360151895071884752259755729294663831798160496514835362689249751598882568728676040787185190947855077954495167402258573527781307220498305708047647950843767080229545944045057646820869847728858090075939642334132152369293738883626503504636514147195451888134070812541666148863088517574238542544302362578980345354156798742333606120472284425861617782469279778841559807303757288105737508919779827198897076557747111301047007049973757795509374544403017161213601824089434320871990433218983295946978674026824171409500442473266018950592525064437889460954023537800757609459145308511363673254339824244744974762707487837289555204340746639193295167128687466557237049471788481373119018555537183386647998217933628086460797088254309860748028857948823817347113099384986218087139608479939727401429247406493659419836485624243280049845931191180085300449881296292853435090616021163381733435268199683028105523671776123181576789034721482757616288047382453055162960399177959304241593506713061510819285451249965784650341700928659848667483963860493106757830892141620451737038667570629814086237901459788778980076567683678356624188713335936325635142509634831392031950650377555666870824004294377786740622478617703517334213449558377305851445620161967785166296472630973988432098958882027813125635116677490747754080969109419315372056576044035589517091466916407634994213360872801998459688151449704071971393415232938137687514473861578511451306377762624243941711792591474975197199453600845706132775789646910446125603662683202956757792614972001002976769936449318245741939950656510293975317221184364568778665807368107263492208929706043627009710411745517230889688557310366583888019073366815312881706015270729370967131442529090162250781720939440826563561589319095546272329384576930542438259292608589801625788973301688208488441359722568629590634544203315851500575824453411806814825513354124345087143729432102510293026102057621833245018039146793124186628854909248650715484555454329588498983861368126031394004637377133934202164658796117183751953701708942252039957894669020346154524016910979834939690377758969962106906711533485699610785384146160734847515338929608152088154195964189353776997775464565623058907418574067994185550404153776402926232695280291463446174914484048524535255850059723106420552081191797840647436227663815811098151044363736390748184310531736822473029645478486506659865476014869596197310855473771173391941462748499396949470785894103072765653575906744475472842022344472437808588429332146894802897521814233181348099706974973230817140933217630556451190849608005040263176690516295337193898130515405225548241683218513981540535864680295426250378574736138464093162530562186097928982625293333992706641188237286868727517141547146761206418503149627822882307461428665036771194184100287950021171749987751468209766327709354555045973519622164543012682712552130916636866813308433075919014309857392261098183768851038103105522228726999434826414741159449697870275994069794933541246041858765893072400449807437586987330728138192344899274104412911113328306272216143147653902058816079571085418521611175632944377306027805595999967481672505411718078525526189732710642612928240000749460012715124780658839317693355637174671541414905938074770790092050421393605803864915248349906756561240345328120251801014325335539664536488928711287037383579866534018526892306975420922095567171541724790675466800028556950350500289516591581149599429053474752087795642058232731973353588908002485635953247189519830764782064868008572202329286640375594587258247452394742612175108887821506929572465535861374579479950099760515416707747951429186575224397604806297004559242290726465380167494905455414422867338612241592853465224845278541736168098625831120011169422429334744363941082868253556184919375106360188459994328639900133199357580822770834291525125857199647396543855829926611778774503336414191141106142092683702055760905307394954165494947854925114772368395088424184851241956182303510883271930687372890353274372083978542328818628443174070695112150146740097914217344837524404202648246852280003266243272991546446130440755979070159890740342115901197477755846326424018203220233763966604695583796423738478874841870308457396101121657253298123380102284046611046614971252758166458984575274567089851328022883619646068891200820975148611442032185976355991210608156431678049189604604149518978100111802103201788647091515378240713628414437179434713406190968083079047571162925445496460565368684699482373520666121870984383920989463475617856571495321489851751212223807595532536365618084284730848816569822111776482922728111736682341455285577160245336542993668884864455763991598469042226011807629213999635796002347915645789450127072189952970743187431671145675015589050281521775250187641109928555619316269198542244672545090937983478859342281062140945720887775362920448494026525914990056742590906995991133272561463264375596626857794503495216058211063939667071261728570813167675639257920993163544493615346310656992581154713186688199637294171088110943338036354883926430167345512422113050147771445167456099761343749372349436773224457308167432859968629201309025555281269150644363629416883620675895765033362651126276338428119187616549541941707221092696932152195837716822841940895455204280955260083535456179873082918095711264940547485831420530785004281781009933133792031112564997969382213513632019303499903151911628089165432930765215881185072490696722522812939697973895390497657620998991984323471180060040875329850477666311561477612914818094553319226283711371290279321931960223159803318487024757264561707583881781227657853828713074784516439180999500051035296045238381300717342827457891682381223222872479171182895683888509252763525282960652682267241547040015259632232889238863152881291997220370039574268204552985999221141249745100569008407899876318896839301927831266171883081302204471523628095044243107130616031417041701940841960734580727217245345173404127947191904062520156899444276137885487366596044573568555219887010519759428480901164972764679928270755860554398184051546430606225034980300223140504736047320045214178312055742600574565059690318617575771769744557305715869941123888598790128151864561858470157655079848957503500993092084567358204893694016123546425478935530110605080221573269802065044570950789175047426119694004857988749513444462189847656953567905815617689614019291244427623745931360131111524676527614341392514469928043782604022276714506825688446942443546425989987082531354672131167621609511112272320614872482187863596365888079996954490253151016508503348106790500735920523072114953060717043572612182836601344530949891622309249207036995716096028298659655227071008549907971965925834580620323457769701952284060505507560896188774173102882157012458476692715800406281819339433842041128038369441793355147772671032743595748086057789559622781683843771239057345995122579340066496121793280707438370240299585382854324056539642197312499548188729495455432576074493060204834178836169475897049897477803580094840835618326173148695959664597495432369061925282507244955988696226614661419055729423881197447223111690324504610716453278222672979004838639248381183938867042377501778213858002096803300620956315779396637153372391494239386820418015475056405097954821967465159735319215705145843186618154146596425292407604708555312131720880288854877570465848391810407093670610949645466301723411037843549413890952813930912671582246300522339863575723662715318532373284808250345144231403578305558573316071564765847893591363317297768574052275088189798773636993670631076370053596358653862212415479482519937052725355862624255379513085229374808966435923333073424600582314372994736677315532171358721671562170378510994164521838062851544401576874173998874092706133468548786166046099330116561685730566005272876665522715891642746288906055793161085724311554119005891533762520542630959300169313058869338418718565211815985675104295437004739472061033877304876060151352311822047079967151144073362355896749626771147040507291191850312677561252978001271639967019471760811399626246598545749525833383434136647773516168781547814386116724803873832330266020253997714314378913143850857611091425620177262628887611723266386092418813086330421919315524275786564504190006635991682884734855516421510157539526513019395206530018464005684684573978418517350449870135700552531917117651000510507737810312078872551094638557809973596245676826334141007328300004616172171730337569932369220888193082131257382108894442112427807128318574542543335283138700890117819901365163171606395749584085181516545172944496920791212271711682499331701762673631265477564313842460236247584093692235954567180250726482217482061841055454581645413202245338777046923919476308532257659869665932745155165452505546181093625175026614788244980531835541386756613690884364696947992277130914648509088793335078399764611111514801887403454851578492170966584633029044062428954424624680104580655129421688567216189443487501949321247061877990153756663778630693042861427905564350797564028793556887780409418245956167398800450543257158394180728364774502736628052714480575719816374131502826958833594038577564777850746548148034988119888490945464369018586033039123310029123963107540391661891020875698367542699250211596069013715975914046276376229282787895595842570588508498751351861740159160712976461257733087358648136974238454696921739740276943320772500027853949453672625970480356801064758361031554710958755718194502568089819080953960583721958117962663961243065163386988307425461006448408760581121522785831396496396540519547069379453459888939556992926650468840624570141671260815093168320015003799414868486229422831684139451403421669737165876327230925380006527941525261806380611968497136010041744614982308267601689351056069727202260385327344483968618759579778068456369117431925568851593960150055683237065092798137276174599665512673305275935598376740317527594079361310691586601282239514995668165677695935585891763829981461314716463089988462593071932866232164828966743113931393221518679184591621916427706856657567501952907695268249979973454014275128629035632160562172856142833350273861397449684624476690196986058990547290894879015309878716793876622473546705183032841958391314760378201591371432753658275529952603176838519401684331280194800002289116468867711377722220598008634632270606084699135304622909005624291464732296359121692569555975284957144160069369063419338282053762624541924517633921961507879292920231785558286677406470284867734619052258133391201359608391803732197703587474774044232796210121637747915427282592115169125668254377412640907494455077491140861454328605786699963971790274190134378634704372558847204977771914800812772120088274934281317599395655913757783335917200282515870829833161482197649888900501554427408399398307845320530499276273928576354895590288872987267956355179075766521110694919023924494518429816044847303312912365129405378259305401650977662612867575300148605760861108296474849304509633555926553230996909285111541049825941681505829636762100020517109304152590534584022263837049766233747383781392288815429175462471797921407165788959126907946982077413704372656806088593897251733407306754076914255148147627533524313964943400595706220528319714846258201245339174358649996682124421346314200487281754329807747603970050438375141140289253675931527536552626090280376590049076738833719698391465673315890924444905523983223558192369511596655947775362830447242134332969682298728209746854034429600731107369094340534019205762460297719483466278570534169520172495007266035043923449530366718637838058948798237344504531110992984936952743284022758316234999295609159739023093924929112321408691386236369839570064856998946498878126499482778060833201867392620755239094055197914535894159258630133108733177036907620266901822076371411274259730695410538660676831026894996851476208580949755944111027897106017424969287492508622457313416817154229650909609281035226972602886317941460898815988907826839511953609535758961461118877793295717604620871422166854978568299491090018564390633511110059831336673180786434918250218876255399940890774893628501186547422236995704658521983708032416571094581305170124628088046099890140459337174446245503485755664678804367619542121678394685552386892146895140909847723479382189647286349390556758833540038092508817593001386444874510221308530639055852063841667238380573311631829704042210634744617861731308958221224459899900961590765736411327935007744609371846076650211362562824639926031410893812011106927621175199852239309506333343307268232298586527058333410638922923059083929953706280886632019145151447252290361373650253436462040885702124878671508634897031993051651665282687991364806003220560581819254722544822259760239156279951783198493682380177433413850399139288029383695292661701831769928404152296211581603148443861051067870474657035089704798097483268293560956701438069071508280459908462624838754944332440827529142549916826513982458691042522438515953472283042209282542199411866556038114531128049676779996477783813761227994416974133484595892616235647604128264574873109069893264314267412538456146957572191833057889351379216145364510648000243249613288354248117689474180635195863088903325538347287341768655848455410093927850277814428656961736440983008872825207540622511267868749740643372310825947676747102931427781724585395472615814485477237707411267525822614753952040570834239828101872137253457128875192106579680724655566982039311442190455698570486453737207345732790508321078275429816580676464657481514050891102820149802318325691086539857513923371301084426383420114069309371687936838503508430079333565840610492932443320708862046441676569264456659839115231193565108553784565061209894990480337897108835182277323511309847271475141569714424619011455695852556934325988687326168405192506804014222318443500377062193840103041950812109059017481718175262866319968380201753334667872156669751761728663693972816567706261158441986661223066087532696005345122307634020927363470964050141227720307113027566779639461249767581055647191964645347682979506227820654729025162417792009683785812784690909429457518874362154362433152018020056476224993475724824737712000251097524073232527928121025107487256599358080981704627507783903141995863882024100611350784245599225605325036687139515861529770222073461799946818818199293904094088948161023480193287986052042025827010779436813628443277964417104043790085902681595157553327079728216655182035751557417201840859556486383649111553703905114134068227209509797540355961402010473862374018105641360027414817327613699612577542850025064459456786635372662424751154955225312943840942707777093052554865808603192033074754140118673815750096616361965696071254089924595069856461316595803775398665084246614525074796872353549190345877974995711128115836317451925878294617414147313251584224536873945507602651734934157584923805894706409638906769818440855335428081025261157817649205487616103816783733048985171164250864923960363835214554393805279565091010629893903658038165498204699880018456255263700569825282472076289448484554952078092486604035098553431068365072509991499300194407731473663117720831239381894426233083985143508654665771894078563929542918361836891446398252787809880233146831120044957226084351244819344217275533487967030157195494218966045053999837331893028690612944097187314535944039017466174401181097407758972539199706103827456779104328654079293177641381375102697347401308271069742001483156627650615411280849997622781730720348981918164624082313994252749656208662930131442239010157491059953837466317186617124615546443790883586755122824551213575704479357629692913253965683580123839112698518903174230399640446335247890961057838340252495704979966437563304577463056873257778151331592905661467065956053959257668031466774363430312881919431234836961367897587468621262686799823452909695897232678013072836265650055539561050675895306869530261605025053358194360466344504314465941835215751787305147718667805892062262302713349693987218435812811416809391102318997229488457526059940311275161804560839734756094934297131609226096821724544151221504689732101755755204104153686251007832333710320199004028141150755934142053631946660968293157275244170590840441728441833296602901381365462879995413674071023630523211538986043956659190756968626037798104280103345873080270379993327754784294620711379991678471202509167019796241589485379764917541431385412833530423775379565352615660514887888026830540357956530237745215438820448886700717900892709904596216839864261633218943243019044056070824206144303160681198129828459112251365995186103241189605790783108865297318055338168491670910843680239050572215061495235082890945193355320325307651864267918449411127032932156659991555824250309687719193178009313584447702284351469614108725911489173372129352683900896159480229428777397358647224883019287473122778524962435755635067927885599414410028732335734722193601374263768670392382690406469958783699889827943410491758778414090278779553558756853167744709814444740887134441174268445013957508750559137255948942950835896211008557912157364035526826719458927760249283072034164092537425992184812713464687501336918462602280549084221232608130966820018101014602952761025743454774436920576074003762784463133099312504627419545101256042778144173520469269867178578224933180869841022518370464497399010693977166175211798865819431162788592674188185464448282918965433954578480676569636524556568913514432859233656903398517210697680221990845144206849467960687857598665598830193983297399517189798801911482132605675130825709171584962576519707307249554887699048966589444159221384129243777623647494353455386290276023765114759009605661568604238323529788135904623587774468137014338083183222119844243641448953924459287587248027590292147764945964662827308941278732252626626997056737541847602230341372046852040850149888332860224440467509819544466417889411275045097952768190607871872151291791050839052700950879703223443052356103063273671080806075195436119146886975148655381776901115552225268624597477340527246322650243113352439160670725606013878748782444071121942033012183688156791526473793836832054479917734695534934942870611422400979100790632994197745893928185958058533197921670215439980819625206522626138732421742988801823238091144452808288218851475129205847066364267207985126999806302525680989997246251101617980690736178427811580834837148323347260271595301535451285678346525374539192426715367630925658950045482693904746981513418640327718214765567775723390615937269732339389978972880463787100357827030167585726980987469740201518724643116335977088634599153502325397210546553753023051720706642759283623331939185519667862579816880740558546289698414358378616429011869354782661561412364116942196750110750242597122311660909351768563572752748966440428142483987400603205982111549394079435737962249636090549529474613828955407167024659354580030024361181518251291083896879301629330046819285351706269226302393747583102888271098692105797610661863308224611256001476997387385021421746090683225715546817871942777877401777410570209897853009618106936642264165068506927438330668273022028420902886554867425058340481156643629063323308556808047805011928325051518602355571210448525296590033404911214921424708468570576652097886324494419270116470595026876531415674503144013859068822276573838655884454472408858509019696286649083625934549404857589922114991769727256472598394544878659658801281658939483604630482256810164199076078537524792850604982559475039858837982344067272954052835731794975411386722501607915431145988286195127502871919280689146768258560965507804842522443473875827501718409702148869162497775949199398229026081093896166465514150067447096181441585081581444046344514847347786040386122757392103921215116396438969969512566234833310054462596432622182770955242470224400301936400139153517449480838417669954169180290883819856953414788738504540069383598966611237696135165004473467678761343931844573486927776159567647846056998959337434071688809671855024762077494132910419377996115172009246534949029165863387803363077323344760569426358782239266525779476889142874307985896635493805621252878738951304746463514767945127318436088027244019883384227541156465920256049302375883164408632356535758807237039743591492468305393259715099402984055146811521249613483244763661807754425773136951232044477005066345422460669682379242385500627868663931354249008737040004547400435266565556746206764466834696838943731000836277353532388415088092402747770219450338920190868000337534549806163951833768155835107862140443512108067860793873670917345740343975080611873686533169597773019684843843747556697230260794730527099308796447905195731966042692438063621546995887778477791903989358139113155645287470154275462164461575206991305446565969078223597905906226810433828086154744192688715231423213249261198009119074698715611914824139323393350522710437769709672608475097294240047643987493705380105457464617501544529122135683316998231635718662256983089282421147425742654588995000072799272051170564160747629636763779866137337759856494219929420911197406792186939093090297048757574754825493021520596979778313812534852620386173664557951361676416765179803787043371722811168853531487370192282827996508548502966933925939440182247540834306230005110919822461508838210705509229465397379010808050332260251350483862046723061046721993761942828411720234405066423035975913336031187093837877188679512734102540925274377173450825622877413733307627097155946359629291759535154315785229995124520197948668570673257438756553448786699074431439888899769736518283222533533151238289416844459695039885004290655697115128894503033099287910250497450150499447593794370250599820109657480919475368912226731406551674419214773674404261477069981805293544116003433392156549751836528225912545695710528077403267396735029375916801490482751209943234611774624499654936837594018609010584656604258876598994872862893843837089214838019809980875589896903901844964846667998379557527669273213718007185472819610256426429201164915759363940067924431828285939264883365746276135062143360086533625885981905920298287398853279651674218957414017915247448874398954825720543278490732140975270141493997950333867764914221879932009587584146814777879843896132359880745248388963781814072264241398920016019463048753781598683423726275790397343474267603103211594305706580971378652474876611854909555446585535053241616194642340751590817588105142068623007337818485889809134000984045522344624108334016894017250240243491859283889247496514422554967887833659413758134179284772756960884069223581808358972499387966820147462667668841814858446187293267264105888666416402940476276957498985832860015305416741913738005982040683787846996034847499590435051733498219802752240436420709708986650546741892260427237397557973796579656513871455235734168769508143819971564794394480513830389842847454062052603717369064201911730999275798044723207429713167798183597402109763832915053207247805092205592532102293453624755218708727543147901544274636419174953262907741057185786567815275699826507044571533585438021410178464176064501976729253973213397881412413538787536224661137938309718655336901976959834541447473816759056009427438350971387865541717972110319227907262521305533646038006424767081097380315842477901259561344107359522837531807749325530486778056523199726269028681965835342553711836529309442282977791968452226251185029690219400899952221096066187642336371308361715044078288314604235313021847569796515127528470443330165975752574112545632692361220611206105671825259727505043874171834087874150804308608458299929902677704498891414881280172503204663238129016126441509612568301468827636972363712688298036180697186636519073786152656849188196273391131702415543340092427668754312541137961368148507916757790807230657003162833282047685546311196779244117379810976390207604172721412406137257327179655111571664873360824700741809049188747197416640805190906414249614040811959984882660547926439606942027628846801822396038448588597461314279987472005755622501575059216371751637445685160042521354071213758650477922904610623344729946384813032553237599293750598534309961374269772446162425852947173856516676705068016142534879576697846402829086962922039425147266102815822984311363290889204651050905184273197025382047470374690891186592534705376107022949009824380808363463347421165451540783192726583328541738361751534520752869255794990825973827282213985540041979684288358558731055582170208945134439586072031747998948113466147190307014106232631916055109295377770588435970525951275399020740357634417034004839954845360342503338803760832763066267456110951130387036066677813544947059779735189912518022682012347168011960989666630424790558557178945886767647707287982013912640486409250490299417791251860286661704760354945828896089301827533486525996099684946769142886835226892112604275432463528788466592941896143553224555831442195439398459600826566865791368600070642907249531776891705630516560248688947759454741996217505815857253027221236599709239185709441091248289222627332572723936135365477856980779655630097649068326958032423080847453136909761106534789359060387385720281149530265036965210193148497737575709669591954919030736870206549713160822522588369085397086560860819792629351790197621416415230689119371660597142523019242776794808111170621536595579273822565348787918256374355604857222764211485932555257119734810854485119107521896167322428492617476178302917814965212861387181925693472639129061910846073264826816641344142598684972986898229966375968518672893289577211771922439255044213017585554072290744768885837900012340175550187344119461527796626205163671145694163684858745971375733498866162725976447332330243599525118884374415393300444155531231812449684897312140659548319922570614896035647104457279007662709437569187617288282293386637693379166151689458274621394107182694437255176582758246903724012213841579586234437009108199166550355620626365803738843573985869700743749863728592145273928785797316691285334050101177241678080064002385222788160051053875735065913328579088284520104265467699266608112448226367252017210491761866777480022762968472866243526682691488842742340800273115310828342242038337560961699286501213934019548893974377657919010160115964049848787229064157744676270886316405620609531707725952861510123387099406582386096261272851204742392657691473985118962676822850029985926516183355978485449487004213427781850372085890042099546999537438244059991436736624689816139689487678021560182102706410730392275578897478732473111906632346757701523823731791135025901217587765186231971728497526138372292141989506366595932393674445821837975503486853406361176937246725402727210486964872484807658383987246769049614427900741197586379040962483570565175242545444024399811323956745971669632619524846054531608034577419423234778386870753045135689506733286087789062216804711038117347105125330746431217634839804860967407842373715047368176340945129515919949289263821545310426577612672257319255099939956314488952273940265249831173662709554503367299049953323792320176977485448375064023786162435323607556577201028401238350840894104218309145424239567577058698486633751714441382032114874388211673265656296673982027035568641153579215953347159505595355320822041744301141416393544784818466617276148572759279266377618398469941789591979949848291388977008050838915090292182873548899743614666327034495616985918427460466480623691567450146454754145751245240091415634298683942156850723920108919301167810094493168829099781547324232281573242497209221430728513422600991432804875313219494372500722365888862735561694785670638837369010124678076808225278477988832450608959941370416264015866956181110406107848111570139591961253432360663394877979562982210429392383409344218528113235992096247949926702331941323669319220971317610925467987685933205383586035022996639597197015796737750674287762413997408880743956034419604525927299378827614563755087572711086132234278140810757062937176767335448908063789709573552587573134262530225779241889569033065025557365439294325236062547920048847659243845575012334311047145439623043529328259395232896723482941363070440441557915593600496086884824412267679237057774076254384617233725164899703448298607286862989964923620708478281642582224307793062432560203254052047594167813025982893790845438605615205316574611914413352623443876770262503440397664719183114070524386618656082681433791932937440419380811619435368487202604947996168591004193875573095896629603023694086401053811553851673537850269824166676872380235190349526248028818775534418779303637660232817945486982145081735533423006960806441735751788933820184418866522515771431723117785657974542197457024175053078077136103851013224970700786275437800940689278906380749652267275510165383427085049027695334274443356162820172444128657727178831981500716973002320265432348226227539328774613286065974066134419599181402766777064437681235549576525028303328777842374599970164184744502071436567660481412150171762748899197400960041550965226093326610555011126895460160236334430108785781406177675349193543368925020165817488113505786800316339290681997222423531239246460210723224225498117831154844682686197722408200885471124857382734561876589275176583229016914938858847468284417249996264680769040520051757750904526185424493616621028128281174598053366185197261328962173135429975251217551806625227942181283064820007324832714035089272280657209185755165982471548352586105541028248001658978714683679482791527623649653126277768881025839060240997596547621945417676707611668752770453233725529330656349735810481315654478702039679132311895708017769552733399983827042053480608196905237559250955468460289250023125283045909756477573702318418505791049227679338845366556014264322512607218067654307517134259304763965050486481401860281592629517591404718706991657469403864774906806316928157293141175806574705972171642536596643107801821060971956180761369401925508350622771347353271002195395659535598297708663972981772573092999043168440750981585524370354641470164613029866931570189177905399260843046928124061730494713946977571648021291989865780218147174834252308343316114579308002498716995251060431972146481773251210519913307517040665696642381233590633953403958766857520823603989196832847927267030256758312505184600237623079048437611401044788783402515606150864873649875302362025361714683441853805762767096173665739246729237888854859103093102513351492668926645293629366856104877449623356809085062915099339300859720091020464844179073158903802351995985483474292982689470240366012735529518408761882492360022753236399850512281646219098823587889224172997729944711921456136512461105102085369134360107391888838028517480908042044466690639765043119373452277220562444619125921453286504505073172280574334116672293722854783215561350272484639411027838008903954667028275263949274076514339483088773878691051924268244146474859292166884055368643280730347947617861596295895036197142893453114731398820153247731792597948776854309321347828304603844411084705086030024446605275339613320885454263562181289890787176915983626229850618880458062988034502233291533917332854626867459583184048193454233114508982465803996552417992841034540586523160981806579345066118590962954855679008836990932834973234699958544094839586629655560355785104616296864880393504513568122298957618788432421813112231009873529975819761910407210245331817560204183563127717595064719360447019068556842395808396249527383116589151704739849260806289397342445940487492337854541908044771191544157314465865092403390520565889293876417954992774153340276230763987906835515140772354924749500458970261655880572256794973785751946159532504500040030312074141729067714644204432519213605828046380536981265226141116755307867883519510299394227706792538879778185952925924677184819512969427366102013471747136279367971319246840489340155325776829048587463892645511293527129882848213550683233279910339501170764071913993867371038066195658571653361740409629224003479278095460704068761616995076758722323036964217186666093948760639815535903430836468835668483043763362498840264402917369978943907149411477339916172754043494757885299308663790810215178034168491094800377713848154518038445011816476252441749522165477452871982899456381924265056049662131956389748107102688863998351924954807309566367936335076749564699315066124507170869503659579730782375133291659439979851010650813638642400436424969820326793861226552747665642651837410952670563039075543530567188591833969462912550245463656661874147502760492130665066210959398915577299542967256669948573641224882622727757378392714697944718748781905456059899010506972675187974407530482700469077211571899812532156543551321615155816732148693751450872611823938458747860891193669722716726646456623350215079618966908724248175011130263057870965593939404490779373734448307309666201940606348443390172444197002195106377971314067069991314029750757803245254295488660239765797194723096648743922468464053209037365084328664884616531382990899489887123997605151583663930456525406655832153449521736071628611359425684624927682931041449096570947593233948182311852864969250728244618387998246572948632796155261025842464487405783981646084621284695313113450225900380666248360386681310502967867651484361330471642434635804724531463291118750361309109753062284277773006963089954387674940404622575743043107067890308972803226359552355102630585890976413057257063772708343394011379250197082824540509881338163425935007192187346808725819311864757088768759604052495228604323807854375866347410399237098274871869348564068477936178108168875263827911423786099746426858200654328880899106564759511277001796552364849207152631170208868767048278659190556748489352398670004652776101382201163953212349015026195189426098499493707585390306758128211881995005938479118806575621333253471596091921531935773613178568598264899529825856474737878123891449278380392925937674164015168311384662975439059046325699727726299075043775926025668493566060223733413593213729082670323540191621354566121416394778124451483587623278207684474706685459190403556299557767701025461155478014619549411975474162354672000194433718930364823187851048267369638803717246204455425013433790142537564822830942002877424537925019244611814487822528197868623955878683237269263792911029690020904286205537461267912778639113124077494088465998684208517897682120774223419084112495069736626764864091472677459384057371958564314650900364303868194269147548501724389638590695841585700490939363878721080431070841415310019722196670849213694503502228243125663225937646698489095780200217203864059931209923336739046091373731026729148869844778371851543852635937131407423487604013471294694698643092884936289934429417606001586318846111051446074183625286256616919402443929637444066943677288535388468402398038353737061360853297734758128022142043391474128990584679294863671629428709399811802200804354676846991919988512514006957237579384153605248826923793393601540918532441767840548491102182864319288947274806149028112817226997350863261747646497491766197455626464177400266982856763911242954823597412208790763699503114905949299953639851170848279381515858448116471433970180123615255208776636671943034461743322286928760773943211634169677670996801366667464915781482545793888505916531279965737422027551070986779099035283503914456444193892006460277256832109745672929588880173499246835619714711858905863125647880339280770472014853695651970354575460005392428886435826633193196757626546960960041931585596269198958481808047401721392619252556154664596098747531624454375692827437317410205495118992390465021630386838827482356052990931372801675488319622112178241972729963916891519117371202410216036660741412734477423790403467863151526009345336415151865497449337149922298047279561133840793853412648598232732068159753249392373057574373468934396598973241970877580805393616762899763812016622900431615442984342801958552665922744158500760967777210031740293290878770172358414962993271074586915007046830469498349163230974848153385950886708351415494155809230666203541642526837605879500914702914059294486991454727082844189678786227986344325851779277131412433548653091554255106251388469447921060859372149476295498975562281529246237787397694217181902132502649113636501621467290896656770681146748663875556199754589527490802865345292066091388848965119920191046336054140779748657005414692003538569868263131141685113919234873333211848803888094814704281117432963815251755403136141519798520438192858673562507815124851224856589831649969274307582802848763691587643031421371015947363775023700206672302281031935593458677410357330040137282036212189731066962757954510905390416451797043779637073933069595648700579968650852096902926188712828859356458162879672254814055170516013558621350939715447628602901067898107732363207148292872333550398479047568008347783649353911302648211928837631899471729106080346934207292169035056584869228267019422871807115463526001499476248903044646922429839091109551450492651084355625057611758987816645189517031612850780740624135612982580433837454966509476205081771153007886388066843613572853097781063829357935215663212728871653776293261802418793014915230250337929725474729173638410920252399755872299796639760969305159714351188766504598951311295412105771791740542641672701809918970217641939230744831891697490723569238122951911708071577162302181816854706723067619552722445722634209008041710276313065667863920931398410040860691687173209287491809070874735518973821549598419239638430591851488765561294639594493625683083892907797715319300657760112092646461254051021789231716465812559736167328673558354894050227738017980695638499563845970985852722230914850029701935819765452532020572263455123250507867064705666270683056672078329247640422844744542685692241737964133386452144071775431649297354483108492164977659235669892547370236507485520737604252458613514639382386143180085678084354345506234576569140756163959763840340718964684838854998211679654462060144439331001318740108940649797287052109216599430954571290485812893950287611038561232520672558522923088552208490788017805162974278422689728010985228483293369618172624778375151377356446587436386236680993545732839400678809230257642210255625517554551578872160610525404404682985803679362212863120789548983255942456587229109516135427156743273889513619050036600999113746004043500810164333373916873328276138880786182289493163764025910427256522797271808935977679923834157760162140907725472867559178585809599328288530223841012842558840906693319617942392471092162244299968093568830003526691604687614597524236984241998817141799411492861103168491627357163161076581772051614415713349328393286750562593257620974523615951174059991910881516570506266009180375019137869077894609589502630865582147543509211958086470036173178607452507586151000349764308129398152576270075095721621689990660667982638152760405760687900969009480473868569268364377854485590170044616299326836519097106219360909643192045325936565002855011685914631894938896878379067390346008308427014187859853316452807547129222724031913929682998783853291741040039669717684707307547869599414494762976243435499729617749138949374032968253573539331758359578311402630963073130366701168541070682683238727828823708156556696344085338113800869188508093917608750163593748499708623501208615117205928217265452209627522115987955097764528481911588354788431843322946922044575801325804083554253900512187059119393161249799077625013036750892719346879226283741108291728090356340407814142797771406715537504314105575310657271000529053178332627482983691800081937062098179175424084252161233432925503896056812532307408278120218992642346989823316714662987674367522197583379294171663932413761436468054679988648603041439461235591634652183276758051124362007192028797416514887110348666157244247828116943124295125520278357863716383725761863538360381892027213273703659478267996361932939744306303615310276338901969671225963793332723947963667403981778515905917814902732683951538730216383983546660219681740825076492798890508479473059877974631663309883495966272123931426434540662395054607446896945180183210285152019225754815763535542227410420034130940315073162493919786341476178335655631363376037403748661073551103801425814305676863275037473741731866133497687827684432137537741517054986620641014225688755233203676627438616952296032791671171257514993834815329878354567520746398453928844902999428635640365553708436731718386158553367775139000417688660431177701739225480873867856291635742060876935281328017215744989162555268261238561455762159929573978748905890825536076659873607426552019861903853337956378268416993323473234678931509611383275428658134054552060304046602432024242290178268563861118416378967725750202903278858097647357351150793298841991670018014720268229061289276694814546508806200244371116634074075996676726143711041146889993993723708836259158377917647819104348180920732312081256068836647834371205525277002301658529564960375636405252691959657466634026723858464375518762774309253203495305259648219253741229202331928003756774329690965867599995720063557530579431385252725650981642761039467077927443333390399573227327633397679241787130441456467991720384501596182172294783798337464957952518467129655105245798288204670461716060026213444014194931051792276881219517020420533109751081098565745654101788560351087494347216082448183353821913466260375774598662480574932693268665347045812083426524226487629847551578500321550704379872847570351556154199156749666753431276113145347395720043433110885302012578795565393460716778041003121544692255016556869804843111481974566243113984271005753222543075373563306863415901346795858457835301253245314697627367709121612331385545483942771456555306838911374659949770112429689787586126377013724727422811089050895921215197129484449656534906251220849744521065094707857924554732044042204179638324848886578030122872943936536525479481218549914405976390415282851287735160572076551668299823937712986650022100817797402641080525979917537281317012657869478493794437087791465164923063169367305144919892481272874284220532648820835483809687646038158916032274247078330222485753300648014189953132958839937527218257972949964381104178878798700173880492740503456604770862121159598817516830572048465297685484027660226555821480480636036744357746175722992774838001379187700389190193489295404469905946195604263742695853229529795501203158270185978015381655147312508994444987216328942016734721543160996346941823149340245834507078764316418802183827858578171901524068812701578094972969947362647263436338431944059161217687228686726574990050178021444839519488352920638546495976368731377106139365079283067199143059218838399985816317604916375391805071799741444896788577294625612346392969345968947193209891747752641547374829332958560321792926413882311654236271054113757715708051712825375154858048884279915839070160163921771967826302197570445809762395017456781570360218829114210453446413627283481746743029721277648821510090370774854295974608323398776212579557183559736757855548334025975354528457169166228340543069201552787017622461735229494809153532086928208927511337161749440256513586697446592627220380235271859948295361236743900223830996320001381004502988275649621101325446849048753516669563897388233789821107411088695756499781522111752288850486523884171972394840852904875699008682273171741849384433435422081159952969908236763220183281773908675293681619054797296137691617093907389645309784751823254043193614884748279564308183429824946999849926732023386874886035205644480451285446591784645285454973209957517824870025879996655035186646525228721522214823626559494084197832067246661488058820440928803423108083202957646174847399227955925702943133579496565874262541171461043938640107394410725143282845343386866715441059693961582776187535890308686734855669089677943773020277917036873700284778608275571795935089790276397929203662948563407124286217755777822995683414638481524310724213718606273110808975065340994899848887172127472314735951129766241210558038405423782733183516849255605775863687396368264313093628545584096351209514280670267069214731945848864484618483027462036480440626716454490809446112432962489694620629974102516978223323453662375658457481784878113562998414442535898448870425810699305467334849682091425631991141204677866658901409989607152329894730872537519666035004912405303335371875970157288664457160335373971917349687038253038881880689782619026621050816966902407697083345373414807352382544796804836447265650847972754732029435114525680114940287190194765804763429578106803514556580296868694905922996556138522216463449432169570079471422480973167828146743057830897449542616491176928962336853645833763662797585478174734642824623722613898090408260175204748990932112216229997874949001763021982207910689522854334313478245194297154482426831634364389753167853277488690012989502499783302735285561010674296204067137055167162593461682100678793507142821771661559201265816491425454089681757845189670001147348566264981228999303807426812016258929235008456354508567109736291789043530407021855493743949277079585849236905608623762417624181653451505810169301239886617631707876310772809131070854899583239580905735811816379559792211593532484412796384800333181789579838435615425450191236159891613802100255774289829534387951752162111040735484635344695205498563748539767785224971911428473680051078862358732928282661167775717097333852876757818526855692598015915485754645086023582935101728038682205441758026250666892164545842621602974846030283680507998264578761220190424333721405246907082501193196623476324152226611312854631132297761870726382343110454166251759403416196829624847029229176636601241179451537570441082101964208264904857417829075517617699861793319568040912989116989771951857228097989655513510463131022526524050617038501460772034796387529378159373429344602319661667894286026111907889774640239562677070774772441455937081217842965170933527549268568444077601486500742246864324721953450447586503611257211096752581545226865649424846253250597377130230282186392893140031423094676553022328482177814084901109686917608677629963625333144360793653917214258252527381227739021139121236908590749800605887170659019528015562877670971598322272128121554250387407573441468801832022750005579498266922144775231638479695286979516829737022552495098418534103772390102374058962817203720847528962887477029639533599292421104190018181753876687257788728327737613424200177541685279657265823596556395293588165574132891562067461993935543150317253912319201235433194292307232139224026370967999025383445577495087821841322486001560258433663897328671606127570030206249441512370647460942832576784202738027479752074572236894642591406406399805281734792995186159234793353612211580659438485476124777372198997176965162862095046478693664735939976385647451631060033170859398269560880695953617961691383961177593521990816136661228624426811489273425241899002064297793921842161535009375007679300367530503636272129239742175736755662778833454586656678330546102699660840390414762000229933542076254422101725480353953331578620999447212958814789356001353732464556662695638470713506444882305769469493455802636228386278715318038485215581791434062015013283727344159546572676268391372039681043330281454410113599900111947262857903125064842216947494978869712113718078645458918058523291304532353769030731918894779267653492098541031957577993053668710506263850543091988511075990566451393686880470848085560011594275837229059543627204786675627605439366842789667925522606384483679220806151535043565256749869127559504153984581005342106331575015219436586588845227352762464827724240363987980522395444257501681049527551102917958820516115828186410546748178413250136425580936569186167827013980821189247429512640478581100455956091590362860270772978883008045599190200514827938636009971725123064820956711878259757799536670801913739693313862227820666815739162290355973976436184860902449787260417574718625926253482627941341185001251574660927944378398720635713586515839895694983094064594034626713071224279192620331476580339615379157572171528769883895942871993405225779105873888486622706108497630347589956556189084583191103594671905050351930361129253404909977572188189038669000182632179806229938018836625366386858507862749060574565833534759865957784796494405010943296313982515143007516641246806278480682670661700670849932252776001493451711514049273081483853423924593359791617975825018519638964683330168822525427451120690140800856290576369293419247358707840772048939424029492229585791325088478633875804511263825044037480153442002177848288299604703944224734606762668530227663376517405800988779903298506290378444581693241527369108694848256462821982930808838858487651010351090339432557732159211385951079137796601636278604962102522595491575098992079179275525130037996812387589094708265725850497003320956758593213497356209268157889749330873323139260570930191003899190056826947574594948642669204917449186500934797425616076736274182544125992779838672921547758024500645102181861583677033196992828829030317743060493211536512696024948334990563715186226424838980339120830986556223529080386571576497807168068865285682549555314308133981007646842518747461684185599494003888155111264088617779105335191395979571924116016598688040571894352696922236572988210423953991524071814280987741836992040962914981774047020689058091660740011840636094064984575572730884437984082393896271310958925465010176400304506022415763618728605997172546453202589102576624806789056604968851361259786459423901710602060552783603086569993747821312704462450562558746855448822070533359740383795605973794079825537148506146605372815324606434433621647719089931133659322604112150769078505961025700516676016587680821253350185924721994850649839873516325382433592319853175311335873749358008358355276914320530729070489894325496230265029677194701462708884086321142911938275257523499874536086121818487899532282633851528478250838902617461272080562876513506404898955794673232020187047264708817233404155880912347751373599120053724367666276880359980486632546232582346894355355730054907498079703504877655560343755062291789964476969904924223160941618017981248810735248383095918388978564753535679951555181481939439190921618754898559865624714474737191838170931028033609423155725617868337128431595000006611114948462246124714357791287886184766644566072418827876844216462005252469008612540568121835675510290033143025257167925743552106061460636527695779015345763481388746930974025707367410120351559585292897154573385917089045401984503052511664152449356244705899674196323951928150478266871073604799347748192169123848886832849887331073292457350495054308043017850874485235097278983409788660236648751715885097661692260739306619350488680313941677476227776277677044954142809420443677968343072168852625942680949732274374201313301555910963720004296862755975505949783823042956523062427739802771285416808700605698229665695098808858730785982560801032292074702482477795377019857795257447819349599665561976742337081453163624560510197304679048185619380129273698583278262679155379284232998293688312861392027631275649572658531722529948247856753911980419616347615121534361913461117263204566728705361981233011228308548564437707515881073567385406139579663655323190357417535735083308358445277028438413769154025361435530761281944330204737985109539390115499985640879953284442949618395289720611651277019966908135504681562725093566518906777565351620782689985298627019503741298803032656941491486859607702323729774787080852891674940635907027144612996439114027218855250686500481792154812280506634036209580074245146681213872761278968228793034077526600437615312683780916661121694558878267793001821978463631461249705672465044914760413534180162124619429631665162195501077593461706672043912479316715234920362179240379838344395870467184090123457666138662440568353202108258345401374425334333147412872569449072933397788750210421372238665525624683016519653171275677594116163896379541632198328045514947861408144588731728415492319876726408416524218605613812314368714395069249727541147840840283011036116440676265037685089588385282867019337504632981546715201833765379783713533308296465324053268310397304969634742666761728146244532822242629057530904363527420932254923677078279664390738286394064545629303755275336651433071194344872280661250690903407881455374802534499500092830137691039949328942315361705076105596165881619017077618734336097872623146709874490252545830551347552996032276812120459376498672339612784311784731106360055866730453234614145551899436996825895341895590220574674880141610493963659053534623323258771317337879669772808105023446578800215500483228882749756101092681593583515001464769690140391954294583478599441006407206724910707408059715238465943658491383653869190449042256781558330601182706594536479560476353114702557888667179953017879942001020430605144243984341175723888046779143706465056161261637036691107887882440547407291725677745200004241903064239185854335102697995678668255085668941387427474335442264407631461495614487498309861953627431943001622049467435449940930369730508009957598960211063268795091415400414020751272519123549935824428541069271921061942301419796088693663309423466469962161701111670902753666398237660727825144523544808700356899782934883183738646938508057679532753214250762422637399938944059457173282225203577889454604324820354537492896697130571761980012055502388577761652485831202628388682148112714623565980963141136133783997782141926017840028711691340581218660508194521148981251675080442166403537410267494346450911522512827082162050204268744389135047722309405559731953711344068560903144705345175069754515003433294529036422487975501560040189135869914451288679629133569078355350788240747900534344612312678750877553275959508768132064012510686075990333507764587486177747801479689256113886663001213709059338435971644036085051075762844995210165069017055720075978198974864346299097050444822802070122003314510864733294634702403320573993188618249921747761019949191485048596368660343889324374753029432272563849714478881272098289037293142578244812734654102297092377718016292995589790140155500028097937082963358303783010307680246240088158694585285055311166714422096888855348220353236341564922464863305951514353877264192995676232344877837251710002810752020506886295556764566065262258381989166556975416701113466161177149602865591629141035672009823269734623719938378534815292833702147884355645679072967432724980931243325020347386601117503782448105463910176498776105103674814959539532158423688354430735563928302540963187059708374524462524309123304608760788750258667577412221402468570289542894102120827984599838459987241774270364242431595176721917190361294472996928243321604688736470978078469204351268392633628414499002223271805895993912013972582839958205300126802757223241463078793438679679361065392534110543226325800011518094452354187205739845137203070970494236893521229655501588371608763879093303222135600505632794995952551451803002075570196887927366448283251046068438418470896032200457305059244431139065464009611302068834699017598769611052060830828240956449850393714537354368482564324894230594395457728114784118882882253162884720572564673941925510107876360080919345512978483491847277010234307199915132688695652968151129339704914914194026374814264703001430092688252706062196821029620667084349566301638971343885138902846829967338084337076123195409187208149959272441840123438721639290498571046051003651364902439726911354598181866777201645558183943285100967194704072790722729224297209621117038094625409037538683063293141196020914172612952253784663335834876928677653280451206160960990655292550084643826434518164113285639620447833232898700442745450446806898871659683809011149553193591124122345075354895827094412256234674078444224820149423887128241850821523697591652639564305656938434643558784640011537775734366182689048789575835675340328497507587160054338033378601079979743068814387655780943601747721964496536626161583330882285565977922465050906501818994545809427295481979518564698300960746998758279304109524613158567517713620628831502928306529474080089906437118444818854850945886367409789140481269257244260441358400769356903799788297189445873529034951349267868257914073496580221317473885578192324395922775572933325455793913032405273854423520288987156852399400042632198891540426959305954018065954977105048597013914703505585637684072525421783017323051227848139685256501725894152837467144118367996877853563606635973677407189867023708133202203835314994560464703657897413230441726873996730866277786715208912740152652966365984330231724107632089914828746255757189761001629951132913770878401280748641613013494257150411361646922038464348181405388172136140175986026495995062378581579184867913656836225556498799665347166303266403293628032669589559774233613221235918482471662112581598507731079528424771407468587095564511411586875632659260723923330660324191181015369777423829038846156756586595516327841260790249994537759393785194422220209648488771787975941966762161792499729736156130679117594818346852940450530916736899220434212481865892679951726783373888643078085145171524948725033115644615540175642805665219873850310324769570484208854551834728254678993365324206153801201506630962398935914838176868128498900559497761191242183472938877470888166686323313952365429972690657174950035151096208356001777141557357576654997324030936568678523756542040420117205164247599653726432391360471642100788061377291533755145798670863020361455507087881033475190295981251869963977472546136779383558744169008718335926962298236311598889946479631091036105301875197424805163610139815459043672861473920688748092065983221859536019748893906087425134270155818986394259077086399562913639554657149032612044704177816296831640952687213768594828054365533646773374540261049438177191864181028885137951174355893926025250959435758919105519924669131101930891875888087522353694913277492815913570947025325750625433727711310279081175669179205504976966251361990807363534885503161446405191202475916804135841350243209686123119038572601090564326007299162095702566905077268818793040388029615970714596810741392803251718457894764697327994181331172419884488149101415385403860903662846821611404134141722608529368994095979720617975901212384963242458572240357973339847884476615889819610251538013563605494878260720774140284659247525233552944699200484588510017338109608856452056857096748458627341301617990820341637038210072193019292727068967933835257590008767254583776375983698087100519025271185367808317876466575856398529086993121071904278404994954290990602230080131044339855621171068610546011409956341238019191219024061784815522597965801249870402316263022648675432730609618143767527748941615637923906643015294797956422585177985076613863981853768154673864852275998729875850853297551126474492649893080051531394345658135831500970713596268197371228788165756308218734839149849841023779494533524439689680743228778780245168337040951316990756778741717771494631334541687853545500215919093772538564043471828622772365430407291189645364248578894211696429183270903209983306015011778991882530352926543501280312335786133224869903038447560415767776630605364964613132384711668323756972885012627552578588935974875119608965569446994390249850069700537950192004898571288763258144209550661538103022406210815726824101159500938330172504451852664351147368503083211133666154528121222956355014266694739361763936073047528797620777301412639538048635674530382300147528766208012513214783856601757860611720222274010391558482128785811483149314495599575967300011251788722615679748059034174738901420476987833182544549888628794142266714868837160503615750873200076778286945074759343624089798669393008615675102212430696686252154140452518571180438964488292847838982582107253551782145722349707518857015316342418094554829349332430212355522194111941432354788715192820369239116766616486200722970942715539308913340454049409965155266097606325488908572258538315129500721572238525389035670686712352743641936653464250714376112200565930569851323489285496207058693355346072648612639145021054420904997130351912607506986300476421230324223341681308680620563985553077252874760675946525228627710709159274161839289754409816534045541454767048399762932116953202915749837718311918900995196725637426086594188181546348298993095294849383052110255130856785921723174208548435541134148614661391259906482789326333520948381924963388508256484685352457933600599689855646992469984092597222624948343468230613606570285267476644548697152017085677647332172750255975468301288334018782592369186527812429429193693990208618275988664056437691486411742238953222358650389139344012796855629039728497008294573438568022193637906216801310500484325282135187471005629618982200113042095881178687205158694867844012451754095925079677605255682229988394114146999168771831835355583144751583402513950282406690023748621790186993562320523179909351270647845338164649260737859764592273869983312891858859565041914599448834558616879812307707081917487958565490800509849874683336523051443873356695077596443057435966398600336399284804516800393814277493740827666779548925946783251266512135549093104983049142091316130097435436948183353417955768465659910138351360100490766609686023532480453078232351152617126831223922759119164338093291159227284460461583241745472362779264908128704246152231274399234003848354437107676432528528142432315259583627787526822570598672176029885120621497574046216660677849874413429358478380018987660623761113417963439473190029989914247882390169773948898721120433062252287227087040014502722997933392916266654451332563940572063142102590054649773481023534400368737540984900093624629874836767786922354245130012883353627011700838911910743786961733868105332965034280848421942337928023797859833837220602993109787062873356874666293625313324405213533173770014651364689300135294086703595792102104123894278022099064959580304583197719583336339869916049774317500590150481701832368298272390092759659348532398365568950314918625098336683478063564707303352734910743637011380969097643194867965335803362915912675082662006148174766994637177426121838714023473473595264021625603950194579183291593119709003601512577669433271077533365585987394930657355730919556475684084341116762541606102356477897339638489675261163754015498954662384390398849736680130082192745483815076181348927874506717570482649175257854356546051117609438327115010830067803928001190011268268855511051524403398108744747637466648953402569219399222990930889384420200324752856054699325946897955479892880244973245166480813470025030184182425732415481653227513681188042718271322011909489556566967966870874479389896652705718542453465069852983561056118774410206218694322676603915565180301879067794944751464908608173561199981914798430093728133464187992149089826484759226721209966750402472082948198914563341328207871164656840199642358601706738916107202773409302726513137316460741089933438348547328880891409700204583921690049879324546265387531963890234921537085882749437916083595344436493318044939262018185397590171182226806404958479011617408085117130551975098462635665153411101407419692122915151650170653999265838302887247947620380416454452468601090411571602242134881443179076725855715350757596831522668145272752302030999263497516799401539006384199816840706128774168316024669061542929861492733793364373226321898005426506906625517143561196595344862366673999540151145501042895281906882515632143887339185318126550371933254947169173674722173065329131663016508028602903345418804893940721266013825253303673989147175515144386103459576629434477197912256228768242979205104994508457616829338737115523078174985423306503124323623862986858561456071964770594420246325770953280986017769088396631548743799786190090712327909179740240722526251276746558067656239664379831426093547370572542261721537551523281269667639645495987344785875611169336871371650734258422564365933203692130331780145090226161799070159357205384318794422036528116389050961282991979476546577815220984952310594796432165651081111427824018230403398635447177227957331413469782923518355013645076402659232389599001755502579945499983451432377996765956765560102271386534211615186334014940620063850748023727346146605872034268323281024813864537244779254512860826542913471141684288623488029148240029888314685078581544024161473421711267187021466518038167804820636331892260269465352785101221212185329637894686534625154882252067389818065627978796066900985692293012779657107942330050261841509596718444997940347474893050621462962202339278846788184429615363997549556528160269073457370726533391876918837039807014002864832809911031664382672894908417386471562713895875786097549695719550396661572448798659269583742899109221105231582004783378238900138725344467515494697039867024242852548351297421103182482340858508225414864726999032329250038504720585563199224597281502795229056710215894105658403106188012913015038384163579087592678639518586200650852540852137199539887672131242414655242669906766543739358242494232468001644729669390281943388677244742818120106033457008092956680696263281709066086223063933341704236566125379504871093611199807074800136003889911373284165732513763698827434840596138431868823056504895096432400155130463802350652017283702072950999015174157278822327089164957410084605069413182908998188711020403652043973129934502733239615515958754747000462378979427463690801493816227330279740169737964957648557175860592673288469957199053236079137853507138952401456257819527358445769734317762208773493206996205491884600525800655960393036569543305364857107124996258553462539372730961603076134688866071076791316734693704836894200609677323118110590701078281489756922191816603341811301268689855557370895413464417525129770324942211289602664369612234458488583818776002742816527212126910718799093676885289217406727589178022103992216572002991204730743763942591174643997668100815713537587856461175576443312831560693577368111383164846577229006657499674490590865162565075108730603965459076700471211712726370913325730689579890007717157865956506839579710931334651591608456338940979539958373039670617527841226698859044710574382794083122241602643263788622894589897935126641684808533449080245937075881700150838384086884207230009448209836733006010524007314053200809587660399070369867879218901661765263741487154786580711407654608650408480158178088033326409351099284300383453948161270251816059847459918071216255605311626312286794572495027529956351986589838073535910832131663121451072566208133625116892174546174325821581606666803946809720051729353186531020934810348279249858394981322414944921001388126156732410518120236777406509387658307156942204308796452973018231225681823895157683785427937573440095597029928516516349367899979645222319083378830098490993753481271804062306326702717505720557867608331444203266299215467043288220840953332269100938244125134178024602873438710003155928063265131257459477053351518839103274617551011961368658985662644389274172342802366409968788367479357576431634182689037325678660518544302483518780616723483535084057325815871573201792904845426909221105815752122249128256910081119661229166494722330569762912214415306364513464078202632101767945640719252876151008900006902437796824648724259782868403663546192545410179344785423434781244049033372632241448014795639132649781367440097845685745647824701675015992538209567958892726512926130589008103402141264782941836133412876820912866902799984451328672216173590631648762609471485782032201538567682303005100958833272604918307160930556673896963923651936429997253216740499357066279363920308053729226324254756309774745834736374212573064694594499825374301933415337466562165900804336934591233708654096821497390793758968813116070516342891830566587258937149731275366234082230969299297782778585510205211164352994334799160574252459869313371656602248472695969686595093480708366375740764412952909084493294370955710124352206759382817862687094832009537130824757680806323457061364334861128451131278870708172681833385172860670597313781928847190342510466342277732913384050210136704901193378123300070805102762318228709540210902979893665991110178163652719838944662669799733511370783699936663525167476545449386669729676931716537156443624788121986221610824428136261618064729122880891259094078478467632210561066254378055460019767647225325144365014830504726005160429865697592760838587417169848372320545159347273117998777100722515153205914366886537714836561979051525578526089741499456704423762316401318819386782284714859186510705628827934359789402896792687070031552237115807445826002389050613346217967566057070068682227805147849705209790227440153916712851337789155100723457970538596677762029788859600028092356904480901018995998914087384285144823200851658296955273085565456488457525689166436796290052925487063530246405102025079825505555000667659992161867827508000131273111925657808575570319614231122074514640131507649345350397592224220443570698332601617865448379424915602596487757908532157719034461319035653371563686686149663705458637707078005937315205001195778400182259447463349849859479211946497224839239985907314642483164654766716557371195264418372912789854253326596144242389991823948956242949686342157239558683081654610471612001915537859358546426539246920258497519605503038641639215276094174218070986841581712727306929388434077744484146709840478295647577041499958482239176741824519559202856200016636141605285212620098644562074711163511631055885929996349163981499940409408182154108868955720303573607534211817548573265476242218717260612009767028937038119000828778110315638789835656943445722517782417902127051976769501603091029354982990828432549992957633051395274177649321845565193460569031497680384522492645354931629398055238867656573606565338071842669743647723580897959803220826913795515800920407375314065572758267288215840360197637882651418722813060679738352296614585062360481422237761410440210918695096051534701558207435777998977899418164741090881491275110228569802954541083609749997710041761799972121180622749897225827863555400088089497828851321270296796488655652472354955096014852063562632969006612579623669853071384192046324325330334894577189873922938727924654359114892479517301074991979016472116423878519295172006335452728741528922644925990536636136849512453912812457678229185334823700178948979952111413853235303603704383320460675758859752731947938705568559760661769230762481278303243994247760402268262905509298585862836468576356546283358648353266858385644237848572258346563828927286916725707417543821604221344099275945334552214272050021107085690134156642338030608421268063645549747965321480197419970835452685685698254624179073512784148252561509232580399822004410447262567072006486446066227527585335530788067822136841772018776130957632576606333344273287930417789677324797730742266367172385621763239456750921935836199213558839705632477772247184021293844044744830094012167854525609482941349760620420387002130279220627588654237063348553575355630151683925595738269507704854236857351720479825125366103502297200835143468464312483508850520893715503567760187187335366419374156667084985965276118016474954768741931569276533617882194676876638241598462789666946597278571009486173820514523848408301155085944856039410049300422280177873078556871524463356520750907664883980837162037593826704246048858288680343700863087614016689623631051940568316589576372047325755918512704186746722353569055552473561189316033180820155069567543131866677390743757580123709368206930661781375673979189434478581617766138394998057496851364793208260993988158073630244585215818410749676287382510914833127317413053602578501769374431745363920179935845414282754964573175153047325504616268302436851331953213301941424631914401894346420033110573349409922933133501452605195930093517512743661047067429035903657699315174391578451497123135541079878504528041836687245963979255886024184829034059445455386713012235222179503670374187576730664222023697945078356219792223367283025619995544305060097500057880182096239526348779824701226736181878431086969871252183759212158876966130432927597255876886455780336987253219029532903580980323158171952266571609120219884408098285899627197480555750851150552898301227368109304311118799218469944752117148348872590901203144886456807674410400743258593488256681992804856786998403600543589406261053447315701750826173689076287595273305297683715675703122171500314679730792503677385224814633767390536208141391722220133718616001767050159312958678670766457188178665387869968938569116664228219622974114681795816392865177387596076381453682160187417366060242159906503448776482382847149998501333661633288456299893992801579258801913502885856598413418423806654619101165528861044593755196206247615665261524624743831189594645362019762383156351331300677637059869026409820735154460450982480197427248475025012251359252081625123360618723604110154843396405037315258502514014362463070099020546296341442602688915630624859009377869676684819313957091412187406833311977048388430030677505017789006010752649633031398252021670972406575158414657395514349150742223484511158534011085824074878523141819921687401749705206049509073687991247298221749789298254206895611607146291795303481104081337512883147664952630214964325188157550954130020552934855652075169180211833860541642457381311933548564370151624777236727909449944844372484410369076230182636303562337437946587392887800581781833973727198784659050777898356709743455417192200659927275927170825929633862237720602970606995649972728166359277580976782736485418708068909812038150501926168985124236918514531971916001323702855046232927496556690149483350492868426192027125959518252236007413698071248527329791694547503625312753184847269566417106900487866524949664353525639379273537550903218180156001380924263234698898335722393078075222244545889078670445043301388341201333605662758691367445824710528396111437565335411141738201593750316010959716378049402708891113635367635243701145104354857414189584911785758495897537445151504261441771539240410246629310956033850947959311342773223495161409937393160354175318839189949489347894427475407021871656922040759636835843112286251451904517966115827240372130434452528664928348607035975389533524060584405193549724771561806318054640739656720604753677976686549179840176142052656549155070821003575807005729569494357546138469479849045510730026051217706349652935402296001850762744269303258064036395016099014639369278796719144880133992608168994729890420123048275346752250196410030739139989751375867362141723779844864041940668683161689277212755315563206739901544898760101399339594437879177386287879449119520254451315578293839105672980959537112091509910065000810828078744990622011884554922679016074637580788491634406822691183731764370824458292271271369118947260814593352996008009186093217822909714235314849124831081958739962579322244753592778420587342871719331095509414696013332565200465542045867567358674849699191366890713733919534551604549763864485146616585051094832604338514897096544304523412227970786678523115491135568033616133587795162420809559886148863776878288200865732068152588750057781723116265868421059924026471185387014004035112658271540401390131812470255815403269774851262537392579761345459503666625961374605471698729609016596129930601870572869581690177257529427508905581618742526862763848600882514226977097377279951827634794760879391139272162240171752252185292520073283252175347474435423868814465353605925135388967579524912523913471359948168900665264967137721696988098554340420916134544013943509790285587652416427699622596792538097794698278239151046500274857005507901901474911449351326594816845761703532130792237635455083269947307083363028673859203719291508209984151019696337541511255177505403565404376464810941749848664619918179672149722660299652922539721754562360062653070593077598993250576466410472400547048019686495046049954481132185940286664034911019154654225628345236045229547833072268011675991639628790733688831626076321368355882427132050799718483217930599637358752327345241562467860845801790005158728517365089710225781217014905446952463337575060895796603266215534271119139691558979778054713653343168175418088296439307197874863075847422623740661363834675802036594565750203536500967601339117604586350560357798153982700101652624338237405726898403505166636237595156756306084415494483982077542400109427001823630380580809395148641406535591852092618501512453141251707315944005798118099768594802060014955009404680517513210785165398855033217413814592999583776362573822134653187262808079787202493283120003709064257673319656357872305207321877539623323161931380180369523052355340378946344869093345250585226710739622684919131787616022556027067235419030285100314248086854651381404301351191293371234293103189609769622685685407496978348381308805702901823286173203816036304493739185753481083902902100830125576872769959958930388395653291960596320869753326557841620529397910920827216407643407074532917250854742727586804182747407795057082898983096814904517882455362530846432210652530970146464822107108856369748273830461080241060693310796573251196702296278946404682330804460728197341028542364942703354411267902678053770973632514737052855195455381757638529092336200275733495218215769389919572891184909589978895010082153101079469678476345854152887897711443670034212466630510033190553081518989125244964804843656333800072286705969643245099888922850352622978477418936159266770678548613982886892461839718606522861628283490330876050722756781861315957428808449289633907763458748112482628760991946682145457105907832941377434701272520776250588359288152265434318286105616275486603228016640959578936141814791770359556080827991184757364443346324957591685378288715887941570554808202191971523899225753509629317621590127839392817741402174117306532543802164145934302241714979077722288337778828758249255760288330733230819749498833511768286976229498609746782462788159474576781912992681269385431078060367793614806481014142830189849247418208249320409617519297223381571285880927579488617198209290368693613200295656208859274517437756351661890274256751693140690465304890603933551255116632356244078538160273727267737956364831023472823661592546115114217875530571436198336985446850926986802008082530939396029617135262835333734817521704050288546416743966294127059500289889587877021166758690206020898915406021930738670338146352116104263825556748641735619694507242648206784112295533879022478866785004054385314797020355287512275131145982970647891182593632012547950620210152855037240401037078052013398558833824373639750745411660323272407974264401931027675227182257734963838146019321385630834313760557916114829242721612246277333204382086633089074424117236751546863132976574939936352379308670509339092074665515769365031162233235477295686577984234868815760883421462778572504646295596684804872260729840052977812858624511438703150500444483829176102320572871574480780273922823545312504667769584699472364509837227003297217403936806921892278486421587132678114397298853213909717686816403666607057517850647731696017018935040293817355222950835263010556880144159278661390818631721619801199226868610279075881240380920522817883868195769401261398396357519200330536248179237326579772984016504026136375322576773409232335586533213134480366863204034883014931920243584391385393393368565319394821259951175641933254247924107923003456084429135155376066937267410368761898164602565430371101086915555201337077259688598616127361510291694924357574347960440500713908525740120293600905684157857676423126495669998403812631598758513129758383164650368846150944353265675845567301229670765932646536090123673820847143024381216937815066633642319032582605162449356592085158121027907987862498619496186013470569376955985146599958386328883036108242746991954922477334958397139295030610305693943807164435402135696755208280651643736051229490639530015551999778675680021281809400717286233546200663537844865064584496569683563983513665881847068029257777885597429825109692270497721799551540911910380333596238946677168079647527315973347073369596921432239131513884460614869333915977545824345438965309628685120555061012232530257759383884344480139719623523865800175434761511816417910144434028149989411118320602704395044037416829186638224581085772957140949771690578646309963029335066996038938482668191174095096049151197998133005382955478991000000004765498678058398212786371036209378590319479114929879663611504621090026988081002202332222692726038994996724922013706895355607838938585500990859956297226105500357657482555507373500056294442212238458327383159325259332276158793168445298356556684793839062677828964242107739257166109917149534137413023342148269199031530252287695290747494986067537265386980171496902209285365723657730240903406359642922110811875917519954823886530310702286853076467591196765239727716086323806403127733826188793425439209158481313645049631895217236139719898051415439481417162420332478738045434234324967179300699744589223200206777713035469077559274044191462752545035808809440901609733622843510195058687703504158563188649354441447373841132808963827970938446804028473849004014061064847638095196941132027488102804442479899570069787508187449085461510471508810657658560054420518145608992537051256939113512189373740931314060948540122819098992063697931217575159403023667196637145921411033479578464081121739655061955586223293255103173972363838501854731533919046645294975047289855525028614768555961820052520899672171858478734502600129866643498657248293231161069662783261054555215525073950891138773260080820694478701234769244297045776344890412022139423175926022297063973145191845543746606163436302979833607606314917185629217936596775673292687558825482173131776533516283807276324704064542673096722050054063801121729271965730124646645622300742281784486605238474217231164142253938059176592835776008117356235493291251743319827506807651593283326196952520244348026398496924053714971600946207921812651391947888387297472875041138423859589366644948196446745976109095175080382518554442467431608430487139299914693851713815991511296541919011308526680712844547400463478241928112476747394721060204209354473271157335306365499513984654560654642277038333905313315350597617749861042021928032804073320062051844945266727851547781905264492289116550293532144927011506804957486405526676626661281404999141995782094700274227158991651909237019781666390257619522404847906827931906683267475449317050059624724548690559006060643761293295075970984161848084003464268741761282459395443526299750754104440887149319760039930096976490546411745192561212495333602837940066776596635763199589127062718404603667744439589422341905811514728792677752054885589406024207319442968483305303652854801801360646537315166094105195454536398682950749228912593168619813254095436962941606295429847082245637835230388374873364486403615290507288276867213184885818061884126411936653982919132070246916103250536299112185354927550985894460921954073342647055552070697398587494188229169709660035612383141775715140218290510493629424811420376798812107088986673279102109629729290631499614125067327547696440967884724559303103699243072886044527702628398873620322810932585673284849639306402916133573420411357886811769364722280610899997065975935675761282823678901649406869208167886283421843158049488719343506471091979988587826769839075095099223588645791783438428206984340003884325002623546357197423047377780559512079402929166544837775866122444324270128081794172876004122509512527792885122594596581608589085401137439826461351119227497196940564506231389610933128395059863999517611433431733511234882318155805547315438224945854234600459364867457471728793303268101626448696929624703348900478192997592041138564574623160438115549608595758918786474727587286597378996276711485073281476336514945008228868272765593897466936271152756993595309618851435673785091467393379718311764214548108273794926366104534006934441678527251816196718391993704846913233265912746036945404831709304798962847519910858054458378350704767870991247385857188129456502709535343074773867912752248509321714487765029706610521059328301349216041876500687189951312048150331732689577307570235360416233785015233759829426143752660671458185576415630130632908751726483461198825656317085780648121261341998779311876526322337382420929838989593002455551294041058559673939404185584152526118022469954828274699229454092407217420136599303356544712287271149552271376104164505618207561030822159057490240783737307735687499333282696367205617225851438119574502726833662986285174270040560504836960611050901285597350380044568337461955141640883955678206500312258270793211559604530539122231364128514070574966642932460945639490337475979661693806290407693989201674840235564018954366043707942114868382661403248778705956774456753900360558119781637634578211975167220731299346670638725841318520886182560429790097278382278023828915631844722263050465862138825393923944264524630455801341424642082658183009610870305917191179891854736243373991138573794600445868133466262537681568694377504854123709048340640065874017702993985342814618143916809452188922397920388049502387850363216340811703132008385202527511570481773035169270195169611751329393872227951357711418034512987097877114671132423635680631688184804414554943390097502812484745668845019762889567361469575402371744917939836733257101762332925854736905655303070426516255803894145313870794523706395760005711526737773062592555275358550221132484281246128918631565801508107280429562470387711476933090733467617516814996375174900881758386606682525948069213007414175192997627615983375057795891989715944474633126441528348470983155312846624334434031903473333876739204121023574236011747044175783713421836379003073601848138381035613156658403638803607911335168328098327774608449666685697137868104103400766319712144222519165641525101826368994972410776403711341545360065324516554361108045163058255419242561387426469001739715313278268546605215568086540797316898326753396530911123987484438990439731147425711738501696710122549310796617026924393246663150071375978761268886300273702396481514339930593741795308319361266952149096702279911905015600744178927632059534143529557330599992020093997563873795220013324663909202422571052852500222168392135240119603019494888686375445993281292661022007664559207372983515500871625934838219125468590695014994648413325234618029613934499662067897518484616339371803445451672803543304767974029488243354308842793986155493832763293800546156775651501401356975762480439837701782041390574644754964774479719806248983480547948406151895008610996526620877511226306673124299811629175948707133892576804822766904291476107734386693171803618772713919695008501616415001400877682041386616336777192341157762639080273145322538571273281842683039560855773186380473628897488770488762567883063979376482598294501516487569724265036314255535656959920206683708336736696110663245743048841727277745076757416337998824268355274101265459823797477571516661119573113957025282981911559083810585620767241636661901150939526292888783103803479393005917681252364680845677625483980272191185204222415117419746239287845368259847078250767100948120538444126709316302052740600185153846112993541840527812694730784409152736426223330166340068163747821495069030878275874446954242996312073953618619822239804884712276192662996090703585052370459683561582827335570606374527971785016409936211480104256581187321751889711907734473506377863118109068864453581619628195966162319453970745955856804366747328424385252817916618007990989483561173229143556294424385273154818795976972336980849231500993550208819843563555593082637665160069426975356115588558389970106297738971384242707420295598018038277907406876655503544465129984392063963637786662912323095706825320534675600609799780040058037926545086036509090659188378170606949717882396940601521445941702321303775602057861413983525725631771006603312473577207861634225117136207850760017328854728050859597814115666031770398027643484307473809379574586164043299293817967700210881389198545489567138848142188403846860574265838663068215869676652801797964328198846228612594977804399617411991414028580276495230101590803671726149781626587634362154650954204364957000200884487417818362335223986113415500312236671264406506851727298790821944818329500667647866057439447181737645360416717503258591288180927583356329519469283445294750588214213055323331214976332154312924856702117293492775352972231773755145581361903843818357989429808886786676149547491459961858707176430702381529482218013513387638375798784994799134861660755686336681918871533998534056596288485244962313580405218049984263640895105192012478447652897351212750756449907771124371098371015821440625075348159659926985115131218852161750791035510965577865358217907107120134462092136857738961217990911521295563746190416536750200258654246188387340865884005927798079671724235014833042865849410445282158422449475713535357799304302831471354452844170900121173739734490244761643646658754805109999416546900570714171959726643173842044049412511400399839850005167992690766529376714345601109608329152297304484794261316928279593199447978929682242697369929229038428099755686039404928080617946227420087525745514830019860571435461600930036863821809566315577342383515168908363896614289629804958462414918166300355971622626157512257014127758283423768199551435944221989781897347330591318047935853098079783783469379296126100231344501285854452629178071428327530719066394704101617119933818508806860035250557024324571995068857543367889479539659386361562590554433709945938951723896380923240162021915861321209604525615411838434101096822536248119250934348885902294502681546195019190229151557714566814880386435337188959222336736912624848333133514295301807784095730797919081952739515131170831348581654708206287140270016101476391470746584662594894003247647996712086257690038554298386392801420824851895846728092903779897783656042374776499427250813816261826900438342543699769299794472025580318984287302345434191337824017532701293555257983620242977422223242190973092230905882781363268355633379439276926169322959787543148111365227194846843137152265771409236192918903845034863410455103900959539921966125437597041018401508028485052613550611263984580629607387187218547986027309057352855547534561864224076125288328959642917017689872740119969803483233194791585728271319756037351578323272625821595281038495176137201542458130829539624801987091446445313271128670977669422800524019732958007197668628930740914884211008313285878217993325262104482450611410631390568575556766002231372575726419755333949567665778696107594358173456769612479838376022706995638547194826146455108079473230512696713836713948411723968093744204031638502689111519479820879635317819871226200523155203774150938866073084163036252047670694381298598768283717372320576180714786104682394761096633470655065158297516488022932813871371905561269417767968157168404930332864735120236525679727596861367766530449829427380216670114111379703638273618341409766744960517382853231594689798016018742456757745853467203060130608064807687090458813795372519779943911974835905233516502745817210926168150029185932027260160357435850407329500160903192414967511597612963144568989091435402149345187550168624966112499538455354780457390874131560656889395945764516162363880590731218679477693518055823573597003354185193702090848559915585123642669667993444974137735569344942217176767513084034787294136676591566074663293039066981944691232616754228495719890001812702491183814301170926196438415958538791676603751961054560128503187782623193290615709168389350996512353137968170854812915683141418983116945937946267265015533208287473854556966800504715436476528599262970833697039717019581470462855027503456505277314711880908264145811369144299517852222770753169376662571539990819726756068533213369848693230508131333267603108964006583643347549040174297589756482070804523030651402818952156135953065220897790697241666781959870548356482374948856242649968268651802904262509958712346422442668350706635756108876364840870783088382356030036492296701120537415049747532493653956219366538297682458786659441919755272876857405601384267556313788042096804901516846823408536142764792229583999229781442660757868793723954191985913441504408375218955277095367401785774014935512032748490817690651459351777942684816985546565487509944514868539872933995886309547776225836370696092080645076843075003814406581269486318090403334877775125059067455710820746054408767865389073197393091144104637366434360868094423499317392139661277573701239007552053896122134190976384668933153696164015810782401230792809720765949364632917230326463585973762079844185256501543992460722143562139362406958488175436920347784736603778242424576691281724513497102619103129291575483696531799852757261325807954455747696711264987059332141533441666780994421683383515773914612047741692450133689565652994090040776194157771451181480753797309701919370415965010283589547557885079677254325592445077089201087659761585635289282236036741882373905639134502251948246599779091369002946605100522828106721679324665901156003296598798484299871299816751288229981836430864538357841301873381717743595211524174445059597420756805942202716323474750538458125157594431790500323688519423709123584349522873772482948773876876325224853004306675750723300354947119734216279712874318033283407714822614281424905670915278383617921592115762567318877250225764696800012881387941737510950321975316081216760976910294765297730646864410211132495744437882735874231521230951992093095330594094323140179012898735078685029078812340213028129483555227402208428727738085677438394799542111642217912716584948088144328694322745771934457066226094588338105268323118805530509703711610131075193682726305288368343313536771664209438000899706609203483350413956266439627188262064402864484733731232722643220986363487673912882746824341905115066359101031591656368702074395885676653831866030672598036374931695404502775579824168076703696973297222718805213557132334848732554353403142284155464709125446023213313473434910483991327748929500600310167623789746746960431393265834147485159476073678304516633599785307696015561162163935705002089036951098016915099947188610484147263031576014707283234427298066822551240247460655423463875289694930005902037657497541547494803468621280124954691136882853784556647475693667494488759613582228263114128562340917936241510107868111800304573223585892076747975665844939779023326686690537502473289877247323319336193081497972081077348203795320475517287132750887145060134295367302230669568729342313157399037418487112925190411117274237406679211500070316455953869229316428074957389353567711555776071571339544971427363751041265566840304162971793285020124239295642265453706526391961619835836286973395075641317267745536144461936028642327183276784435710109744059526246767667225598989188097722636942968418011342206782134489489268417315886461386975638668209865588019787848013495286945492958866772006099507094612394669657749333508077842255225551210866130373107348493282270003369115245764775007264774863247486813242788728604687220521214720605254112788893601657717387358358320208274044421048123015225689587320379315913704034723821722653838098691783551603078504251273507213008326956374919518226661415180569382470751067191492781624717213066827842572509296087558421254823011079751172916332018763752750497357152593188366986317974991575662707553523558858946959037115328050365534328678449727162037259535183100039393494390295420335676429973099342741688325790074648412893989825633709393023657307607979102239674319245925650552566291214636780327306155737965488406924679817149670929146942147396412182225850542135491351300562112729680749955712704444069280454773004781186984599016073939173973794640216335745056624626643715272008531192135546975705545761065663489258063695771509688380049383593729863730710093361616097015015816014310083298064049583855634057494881903903439219787665774421578256970370740250473451224110392691146994809328531671198378199691240734977871470817538318311790098857795633341047091446899434952547333003247986979967131776493845138624414738102048923100684278423179165110089458197297955615561868347204487719402189362079627302852842621040678224058540449465583511072318313818073153177598977418144371503122077997414314004230103248810234714195154136650365776095352090006578632329593393587459543349503998969028270479072970757989639587601873594369881094869714633295006252635001928901901412626172894142458422077431054443742730048171059011160702324321628833846378664164209416026800891360993643104072213899830940592398120782077161108756339961917777751338018316815800319687033759626140717984303042903088868543949522107023662034828104478362973344181255573838828686752463195905682564877621690960499318582546160828729657615647190459471167144248135654731043982704350204322101592726328564874476819857139560111789430023965349985040189071395933453452860358921545186914243179871083699744295028756194041030023849667397354460553691673994448657646439708465280250126562711335139856269060380659885036448561243120305115662800270113282486759745270258907800084057104593711694168635156162080041110216567707285199231522466080723711734208254745758483453903740025187466351011000538842097061515647485586655498063102774720872430495802113872075524369932914265266761833703880241894002616670658027625539908749891206185856757310926596670428226170356152312106944135405490673149103344398941555767674131250498646373077928104482293778134806870187602469425042596385153026577394332696710468834262245213268559727414294151472205362773926844580242510572010532312912377244476887959710541375605684441548695032470895074829805597345946569071948681191110592598951343121047904472602431641264233404480904264843280903969295254889998909678554992543097150249929072401388890752438935453961783896939746370454020240038651877898879551121222101316710174987971711120847888737869074390876153509668199199799142150204384344022750715181680781198627559088870888658891360992690435960172746940528978618434310820168335042770332464054234921068632762405521589939889703253282983166008309613291977045838847992664661482389335338839162478314136366167182885280836337278576187549827435882892665895777907394236362590215037676528711962252848055854595442758739996621160670636649066108120829682688600997649934531585641762314594757272281932229825632290560513935006846419636258129084165971426504782004386082664632835194309004831181838414144846981070834797975352484769375263914875714232982870430093729786888788866202514225652137964271240182659779344309155329107177474437206000897734579980635816907046632643299188246323387390117564855084684018786119304716027339855042173750751374249570530816194675384950849802200636504621804223489083732792980316247733590753992587925107376422285566880264961721956712891245186334548188785223187185572325074178544662714817507939552214701621911153755843157401639482213757219939062786671856399291415816396343415913237532182027718760696989574048802537600015901187639173716837890235111420056474825229331361678559339902187996529951520222745110101155949246837189096796028042089073427694176094365218176901083918321061237293097300226879959118746936730988910811521497367460294032027227078661791282358699267565644333969075223447195577402021135033913035397693472752970753085191565440432392465052507669243136936225519132752635924680887316909886653593157042670862282562958503389758407864078009500673314996006600785222017992848922193534673597160510176880041607477753787100715768119783504656814979892361415590772164495598211145457431350050912439414395388036402973157961612271792717376939918213633689142972747351121821148663219471037616911474495113060476510803801490115599244048587544245145547741270356050109584708245875759785499809406654235817310583332407616294134954547815101784650812624864683682362821553025914213370049394592292270326023395408920520181951511298738645020807316845752780207283340941452540562161642311331373511292718935850831241149535213851470775759728179256665534363345132064647152182154974104796868487844857272780819378971732585812425224154966406943039498496984207087439733583269878452006784685199549637956835744199096890231041940504835304044132318257216883040367197161214955817020079445490644436190583065773760912576391956928488654661903268548255699281055873640447488640153234805573943559521670633519982820346917992105783607406965553988822682104001158242832641969619989537823184375908587727711741845827618774594960703847215830046045399746947313718039135784639150049866429780339380210717366175926095750402889045107273833247122856905998153341481216183273682077495872813937447054492218770153029863682423115492938858996432828802057845840928640610377001901960647656115016348582285174433705647200545206620019217413911156004830930265044634866514048703954773522622940323743115787730074119607563141671151326062703593784061630419268999724944370319719265744218947269227012531184248299952410578268613295156861724586804131408716027471449635588979182542985596610700805358217015979052746263910184139963188441392076605669583128149265340172548007033723193457162224664295300980254165006883440690708207574938917170180814201807560555215449274731662138125944435455026720439580559134479909635363602658059832330753715596860479646502057826551998373276314914164433707561565283106743365038563194747030778418608615074916461092921833661701820070618306354153245170064911425102282580131346140807152987752336396329763249033107256706575049091937286849413815766292979826605243672132596191365782712313757686358186507028350639561614304896139465413105878117095463308121977869282859192153447162003544126755429337058120922525025154155872224438876083900926295954804639932142814163182423896782888704440384094905253309778318935620610849391280330903660259364145898879931343412706736602866667021045697323799185458459977761257993899731968056406197126537457478825053434638333471147837260948130310426557714847090851736572392666696106058856100085470328899098677677443253822503155937098585252150475007957639858798293900418171742890973372087216593456661971471301875543674803322401553348353942675149244307549024926579418289662607325944760073006038885144058480943475197335172430309150034544404058448479218725829617779803923653478544677583734005852790789141599535165871826433135284963463912796416325529155481261926739799667328374510217747291553786447618066659500589966128952516811579738011548303569169203823141769871498972512716175621002497600284163430833729496769916682240616855521302149976779702675326249670526562650868998189811933615477026059647040854059763221163130009306303503597969686295361931172405251907746978491407408261904252962620088728453467974244092703861134032787653789846544441033961603330370059943723766698428482556891847383624243664252098533675760204014189876632433541395219435326667358449320634105453015774233100303884047025841513758525734254916400893029508124161622941648700490371494899511745739430501403876280488587855112427481508245210213954398303536736069750092407553316365962594231232092376809822373306620297184571764112643226754146799793806753559059300296153732260523218052168351780592463843577906864932082673206003302310640753193614868959387871948481734848074915072122820876983671299969258916611566078105120803661093039265154061512055830388625328287793490729903743534522303377224534246379586841586178100087436364279405233200041647983458879092260434819277086823647399317607617861071550797083827619091635351884390435047158262324089227388020536754790659353951338738423731522175873730536818672154096517837577608857891297930056910133750950107601324135694492993821312473973261346497413556491271725198372634862411728193788634011278166639235393217133262540788555817262473211701503032728868086692180679716930946591458715649686018959612692526119374559825010513979714533305364968205214073217962349842725930770531245433958433006242738621132927975982974396127811795593617614179985400780392079945351246766114995063437207079870624084660775960253850306160678101951363332300406791641891802398265087787184803875760796522656511063558400153562785231956917363806203695755368352749697889707628341931750360434945948546576901447730405271567187900366910174872222998710587561598758206860322467749033356320301131196740059063453653271151118909635723758457719671382288644570983650662596879325283006604479303080624374522545019035294762446060939460267046320790353134175549685927657322381502178769948279811635778155732282879835244276285124563061694719368792702933075452542888003248943775377496847230032662962054846709497832397146559110837481837029507605735016155934174245454410283051629802819891220246383776370287494063753682246301681939897023695724168837051870408078967127227186465186406875856001659748408411030108160101292612101336142490294764039135037299372005335660800844791942101913332856202988082460400650133535506348069763976530197224209988623294429390479539623916791142868627184453518053812815911005041809996895007730280904398970604093817199334058083526799370407511660467582023885663533226889941509818540972638772556210535188235353125086824791478129747195806595036876125763764033977479831176053388058869650277903646501006636521684075724467688243489143243932701873842129203074403876959343183482033325298755044609290637638139041886701337550102405176049082185470894740881756682418545606115001848398096372779522971966885012085995595723002075627136912632697282836467509323273335024765673264087815301145435739893293686213296094319160391102075136236380855793999212366333893792332456719355562363730460561283289953754345453034537596765056425245853637954173255159956155415790085149330221352987632257629034311261281227581210585085739754637366653108553191953247882789797289786240529365453756103326729329318555009550233946190933006666763541675387261022481403370133140039348873416620554359695223263354908461944419092653063544183312985840500296065981516317070744005547018542139870139260967814814943062091134867230847946611963022910634761970197085882304979139128142363633320055405045609965428791223274089328536389392784135826449095598795218609206295849541425270985997519106623216925867975109782052425874718701632757201162954198141615520487070985582905229291757264806812595803560630806328192334382202693264982029890152183640327378801588440711959085085951498430884826234114592410194815991183824074799408823260660339248936242934105984894400424188722704992279317292973936510729024201042190193541723776178934565938260016253434729865386454204205944037348189747491275278212311866393194166577029501848695503358432194328826234579849410704914977438189339530883086674817293168394784158829242887016635983380488336501876074437554156900722758273686352976305511129911597052306039260196791202657120281868526042752123532710376214612018334739981831795908060603261108561843404387199026259689776813829002764350225543507067528567103021202259392200736365980537878127720594704708565726214710965240496836060039963791694170508133579868873023688453915139350158475348370764144947542753878941531987885227391679176736949178539972983518258020644603197891853675708622773877488823307667810388233979778459630454817715622271208532222856472967171500152232081067080594456251241153248126707684139742272161232629456453068837270747580642770547068163925264914103154828603720295772127630968735959741603818041295787743833372117416574515964068789946423534796445327524747965904904170353470898417799378537895397862036753277443123665135934738060772331069927036087257004079648279582524786289627842893599031956833719438584054199455448193605727224740101212487403155746774636555780550232984299406469793958197825786494146950139707604998399632657798656560360412209377217497364576937246720398320688131636384740181238315712095599999117333975253309234865142359044242445929178586506788966646388235791643180955121406901949711696539854936775688542100095338384430734490660761922117689425096306283043260315862371810365516751374122595901884465923497743159300528525675949735590344001696013422886162666733295863640219439419171362963304682720964670649264290786453155602511788701508576900438204310173200313722184184792519973155288070209889759777993789434495333822192737133922047994557021267831448885684766143472625146493532351395029665369342247370002168446473834962719388448245808246270303988237180236331309664294313782064544023034625829021213207283805216913381595626927888398619079273799762295797310328299744354508041014364144702883435876389850071533180265519273539920634257663319987494834631039281288082904453204185602412198160400770909940758963960931433018876476630200907096973590737237215856502561794001948816334129336250351233650349753862574447408248033082725742229226742086934386228899910650604822215393033886548376921587918615478732670402022305213285285401115280802266202319108594778419444911982295411811529998182100781282957798934632800622981514314721368782873453567459485322595800207229303724003890727846987082069796360230232729263765699915728666587900998749152381987689039232024413171432885882323639606135525068312448994531636433675990161819574279198927260834529915559537777367636489853333994051172571701265106951799116720782170128815725819938313155556360199757531397575965959236870400400291287631702457990136450557896638608498754471823938691599276952959540699588047030302331148689571559492468389401500833419825151160945070876920534400930847002668229854039917329362179476976014508363039503704178079209907256962230763098472159378582207319011330035384228867205211504699202140494419859636867424902953894563542923833058483842119569882319900814841162619227283552181886135745743449377979140700301405882979558073391697899763924866469268675852887578997802306250454342304258741005167113146658901444597006001952938759915875285303571502138681111967831412183810970932601900032744533251892295238966181912279403458082826059290260642022855331455308898196098799624486118255210498599051574859362588981053997704748782600253557621906563488811339852571365747530703046094392058961102263667534649992285376926553064837997514607796490912176698435804145171010771009567469470755348695394692058725046785400893924379179494949011651830780765912122297040487677831065141777510420686209524087832117031919225334699933024672617700879284091059570135375504696160069816079439497352546374677300615891335316158371918585453353972827820084092208623070098564368514265014465878513943289893035719960970764672827225629396070082935418512398577705659108895164272974394859506373955890426311761302370470470996571352239179811236406657150595989113028139344791934206772742903922535705575511982482785899645235312389542334734375344844491800464799555598424963042641512511656630644742883054101141666259925614902547076736522224453661382625160806092336360782273180980650366824733400056907625760669689213946265299370571698185573486723392836493103812021444660719873215411161969850250872120007281506280704683262829872059181504303313982587925540943224870661414528386069105692910746762760446716648297312774751141229402251647225111545310112121236681651257257518610799532863588252409666163340856353642218881521249647833144772776500533782862081651947817025518926600428785942571043184595415072613448998162316346319206640487645690864738249186317658297458109351866120445554415320401559176977597778819162663631654096169678762759351321751153004025205600831666330421420361249906660402949877365601762513646100966309575586264418490880705050894427647844148067519199777638813509738421335555626614758578364022177378872935151084546288496861329628155264272424076118937123094297357608350438850059795610073916277942480142391503498676506141002986940284565371004168001111564222478401294662462279436132384558562722510474224512631336935779700242540397033642724196575903096658427355715107405083655814212442618290439721310617888014533536595245915242568073620504797350130361787089986875999048277324248687233485835767819950582082074255645075672903003226563455146683457695560355205649700201449780242315674835274870042161388815979129105840792814881687894415114083188664805274942043257725310374055402645312531933789040763807083122540435194337036076006246966579447934448703696440326513989203152848476534306811115765932553983438941892760730329202657749668884606117066726091259168827784267394751599850924238318902232582599689725377687531358625502074773069995226619522134146599223923029416717913954605397523012408481293088600271735404956157545469909843814984269230310803143673840188550545485752662436296237650479076380397868487657522857931799039646079170302038033018501938617115498845724324817392195269859499255739871314576943283414256972641866527571729608309215386030624443636146729436267392168049120633682433610328246522896286847818396721492546748554726603804893540734141749621485995360744307777853659363757404270177281552261298541763982691139096468773223674442112900928801509784518872673642671558131225953937689507657641229537595755579753401071044452840137571393776397560690934406976686003830167599171436501815902937641957318099243185086120928522024560221419422293776358259705997052199886054851747014040248429916474816472533779288939256904227662852606317731037229384703474166546695946570881467004215486581964039974813369958497714746326382471091552687331632813114757657816929693936941973623863275272628719833044368851116707009981255064912312989564579182800423287374224133631111309362613202554639501753575377985041719881603781779036305782926586803927158069879926092655708753599482870409740319212146260912138089935440172022632560641345714525083829688533729451581061174098525061935639383738017908807401018306985347953017897764504462366462496015485965790091235526371826564932896520465204594634452597909689843796058472059127377269662519443130815981714959829804181541647336533388198205408946313182598667023504254274523402211764003011364775251980515602586063631046200768769077530486702851216223868372639977601592302861853456252231414820369442858437857267282638548055355166155080758269531519351240156505342896129225531498517215357469296841451343054877029521149444834290362713138743678886966420947974470843622209441543422243901324764472237848472815772861032652165197056535958963503762067100358168527574053991733369742820215450688975092367117333487377906019381153489764128304297233943149665431801630096612035151911224428650138875925922369948730511141447072932373204526964625920430059157561047362135796472955374061782724771147727178473741609698704280142240095763181927204208045830298780337970386508747618973151136129370157553208013890806996649353873278432994347128286780632385453789797254345214262739158196072893649429663510679406708758123918624330148828963030822902823646536172579980481192740230116263080208073783775487188563157511348126754617073101073067312212616800812170069526756711991536012400169541549246933313340729298160521720294759141233133680888976516864572826886117776139872228741284718211504168347448008906203988767864368593676366721952344555750449597039950460206715290097125316129459506129985040530446737475102508045300250874984342325262438157560582641372481512203241534292322806518224478826928674179656106113450182750951316324291095143064489151497901055657112589022651542345005945999404023740295966931295193885309501795540754460348967625576374908407205304875170522431554484761124535136059367151260912849140050525720162239179758049103003715325782808743624095539787684020156512219321622484980997464386936594229855259435758778399648939548628687722855422768391138067897816186380797500728638973987629005651480975271757962341457610623689052660380297660594185424686580068898914510645260814631767615503036601865066747639370242327738201797547783255012857779553014846147261695893126031110869442909621852603486986884178582696384677991267673270486903687591399075978186171462713215573998882095390798524490577538865029146397161561563617439297554131778537936582076947012326505665148969755631762409757487160513987496414607240202002982334527157186247243807222690630569679828856784306887675658381699053793434872240940514216013424353053838252119361541376094559878917807062262333069002316490135688355128639410218145675851680630809164227525763220455754620291298637657241333724391880922599294520819345568785846795412411309845435802543125367911901660342544753525039064719803753613795921171101195347258655329263122288857169974264141295931125822412636070011105913470054949509312592325805359675146597994724377714442641437951922159150483260693928560371132149227533143593075404990641348596099513582642378748724038164570922246513257235197070483774053821239600983436399508557484268446482424133041793064213769798941252165046496341802093709936795109983672902023394121067414136846441681614835357885699497689801239638751420305767104979843263068992070100570673243169941176539142348359998816296573089588986627285362833959219349674785535722589927239100659705624204981704772694251802599124942402629736385989416743602552534124966357990062578715247892393281318488621909785924893790984449280965660914956304361164469913656631510865081671786737923305097120519630471388241207001239859001562452477683799531136879369582505645771263484885273731905601466276005521079623052194845563494308143719076227907167824516404574046584008782979496168132299125589223190906889118144846591783100273998250103157078381981972493015203499103075889510087804484023621104801671626829512400358933341484986959189837392766013633623696095544560299774700123950116470123086482481599799369722913811492035949663273616874577939395481660554124656883363715116931676658966481987659336200048173466475153980829886163111430084996597839118090612303190964045018117348343614239207688542178443333210387693945461598200975158899642352664481201165543436915559443905217556554195842279647363043173384926108922454585096645918796459978348013003574820130629090824885264572518221944647777986465166789718979841869336142223544775479202408347971556303594740441767765197570657386679483998006698370152074138906268330513477650836708489668362311894629549268355741799480289858498176085336829569233265006584321211074373356097765867881735659135981208898053699266790973208985731273147638099624478932543434574928901899200662479792082914016745265340816180299932155872933288504780536864775049360238481140267127919511864073715211660071484801768039760671202715742370691073972646806279779923404284615011654171614033526187503884204813489620025422353334488323766654441389775188514062474044756227219981730097908047671372058455278659709395860695890112999280249293414169684074336849396914031825512993294523490998510680643932211400552289213388086091760698563266245471359133807890623434331009266168276288939351831896935741588110241050269490843746459697974285909556020205449214809376860796418389473082843253296805508808343933968441976576516374593271414011781477931552475215020841834800733491539563212893248087216185487659496621510529540987285108949857426746275023935622979446430533152459949048801785080600816432610198045899855064717191085029714805439260617719517607156448454481813020120341276476363978668074587459157924088575494838695674964769315200616033779525460197305732374685216940047951495397307979293853330863113722673244162331495431473741635229827310104705098515586410148206164012502455608793359547651900705992786629914583489797662193799384282790018599559178787377374515083374809623856024294434545913977558943856302201347286058186932954295313310011508450296737984029397968071268367027634522619456720912960511369493794618135470344197807444019770337288265074071343459023745159209894708271454150123102324349708192335700922593165772317931590196535856312091757113106974967700443249620077241934842913975199569714776356105715391599826535209366969779611194417773584156161235565547026250917600607444552355035360350050539826379281795837167824610689494188882083541732512930662269825779528294635788972553596002159330292179813554030537945219322748147176703678397002511590962184740962344919645110938247049739788758610633323916420460014122587612624282645910841445221692098769603850820064672833044296596806493381979887674452243717252490181935321466032150929206115793013899273185546717380857634134992691551957637917717363178935048841517148082189597927958987191534412397064356821613222940838151667208985128478984884107594700766887793652726733410444343304927260549299791502182566816458566496099145851833860441013266937143214053351911937564292731284960359030985970281040854098648393076347972667628608589744973232321213191478444880014824042728558109636258940907596541384001887361344155413387659613126537576334587028051438462093153559714849018313263450037030264736338225937737008358834222829087158803162021661707903192572224907582724130044407830057768072986773952157135320441387633042997825607329717107163949047814905974495979719958916345298754864858420625514396423373799753609350409662547243972866994835467849039231146548879825496878008464390594744462553644753066231740695427079072010887835315127271803096510142736596599365473897161904672416924358398044082402096588229015080017665896572989980357844187299630006835298596213224467674508188071677719516300823666882999292161858557607876953571501260027548028341951174695865753462760143980906064091838672814824883875839551419353216278052375824827389875212576994637528211033853711710645655039851694964127472322973986393719077659583250880367478765379064444238660371508798828621635830271271987577736322972121322356613291174756379702442922032337935836157542804228312461543416973517967923180160954976517316429082828736440540086197303232889459549716260811676663853588167681344613812585008110096852427722169079786282750613820623731655210464502188867720997050333900862305817939201307801287495296295151477626761214972985209904445608061013428589385184911232485241830006161617741591468977918520183336257263574780055267625166403426817616600625060884490605147604131018508246863000003523779105835379994355726570713041459392022825781606198752885605867159927198303751053919691444837011765718100430088498565075622352328581874367002122375584761474105678926915155778499997854198349869501505624036247379503898715314001367056941623173981369517977849038850375314423713765657254425112809975758336764860026371242566217840439859722998388282008191217265442396739485685940765460762541326877098456087704003156341431257794535774967273388005611772152316584728245698700855293531322373744209985281995637127970589252517509525447626810083148861025531897277300201872452930485968812321969579583427045369137737754500030956680684264257586635725028288632466160704321221437301662418771022840962670591595223461652498813668899479580666939011512106140588488783056467244715805086914003895761786332829858961112661930192758019988911018112240663549901776527638387556927078480802532275491251908711797111681481767034996013922294173175853123471070745087913246464932722136007672508640293656037345740030124360246690707012668557669505611015047327528900561714545848588098711791655849541704443233117858679681933060480083909691509546061277956798238791597088276648601071491581364545788775659189823467492797975426673644513349936386880637939477769751811567933971660480119588032318897414853410835646849618240342079247808302009613657623997823972041707147749133645642206336850980712913714315844887313524780031274269389347600404369256121001176291550396522545987805705159634543815017634685165605973002558811356430154940911151579916135585779509156843066511633313830148842553147607540322855358986568798394632399588859190614180543573623389127851200755743437564294109172773849180774849530614300944781781284697016108907026551218284392361291939284135245549366268585960427900252025440170493569611636349475451577725703803662738328511739009670529804796211662415911223911328570804211963234793529239384168822541665147671033698129295949536990836896236233067178110030653303594235937493870220966540352038840975478148534743907623380826982485888139665208351959066241439141015064851433726774985757120287041673025392531196983130275423374428744834820296390232285809053774177973628862434351478079665128639437722878476886220325027956391599774899955306263074663230462639324521832957573766699087946608218263646698550767061624710123353203259300465664626394861834181212654717718152701764981408413416624763531383161670686662362440505153149498077302760113362863234823459719362509188014976486452990125123072184348301883831230930264132138795161775896250400305605366207516505138735737328096804391989226498573873068150123138656634631913621201183337996374899551506833692576655409120971248754424350196732502715315920684721194634425831484231874581050167626815519219988530594279844022892705828922630324357434601157422197632182933751006728748031283750623272595110145492859662619569964757339343490769190162375609112646557877586929929841095818294099108093342238147752616470203027132005983441948147726545237580050292248819124326580164537436022481070227873354857082733996791629481099551392076083716663602759264643287587784032461354374562213046931175813563983766004705865795914261557895056243885017629837722237283131426269863635027550638883010954033463580870306732793045504332308532135546810567626594342152719458428927747644569126885194724610085409306405792036609107481956532390149961249400412080277232311888101460015711213119328814328198179387996302637881369634728646331745865294816094449464979056534125650288514082718824585042118140038029665598605760688305160823049188024130125765973592886786264461271867483716537469666537704345866578497209033432086044495374310115922213518540447722242898683275298345837934628260902163833645473744774532186161136701645726073433791514161195466707284228882294938925669336247592187082499945569203939077199512105317830859030017100520740686336376315444379294272343812540697144609221695209154412445379388393942004799766726256761745233693123569125632042330515926642746294156578898616342238745340935005153537699241380006393189050628163249486214586399660455271276865925480698664606799678516296208713238837281097217243898085229070840109270443838868277455115171971423864032451983007111358872381883518352094534530201829578464608321959612609681689489855706964082049873258232148670701623028258843921505661692460266986207878485560655211747022410134346298680533830171951124861125467449087201183418789519795394834481972842047895942861856838032435201500763888773518569875227917643760750618035246767647511400646104926316397823075146449724945711351242015527757393972701009062792596404073291883054708307784229279869559094905480602406069596630387756832498092949625040732078547501440155921037023460963015201782729333969248671476009364894057833556097084866674342590669079541523151670981137999660127232766108194798500651555989551739496814022177207219858684112016272022978390375890616169026130618914028961900100633114321787587227436400396058958984616237231685330827108741085751242182920204714454231826994386927253473421385361807035545804302223876214770708794991855614229237719293120889144298971486062226293369573172034103555454744949070302037680770295420297788280879160220777091316867008630886612016422927442568491504804040009402163257846541103971957031064394242841524399823629988285708011689356567809124047155846735132793098472007028883706956066042405009485360098182595525391590221113087550940839628317710260730977885326376600645747556336082279982408976032363082319304934800038947533818008123436566499538810690490174708704851431294153784408605252929123141020674562837690745036853958018388651029308050554099735650800618749080176775247735357573072877454182013781911821211335714364663934669099788073820868934528458728609432629937764633768502803929730750441237141301756696207478417815261788076213301558503659585195935578485326071889279620694185911784636111931928368147675294157742075491047292972443370837744088758580214832452549124136508039061458590753444428656265746578166977784711863021367620949154391538429618972878279370786674787376274443724176076511733513036395288969846604023399674432400965000991589699913947062802000387141096024567982432086247803155708040824481262696544713342251392535209460566037354217235852324611318268243881007762308135410749163221209937053197091229558398753411135290774401308565473019620096060856836227360209634722080288428964641178562906110548715463997791744663084818918234226132468552560663565012842079795618705497646516879604969518095174627148040856332917544441520527599394467121869003548332336332602154691544968364663435516477321296273943600927587130269788185928390207107087095234770390805120580028422349559730490344687004628027239814467715927744172041850986477942955175888920716115067608459539197608533244600364931552283939619908426307503683520859203603376877152299498473213973875758808738715095268584098515174448350031616169920199383435146013219856819901230822792342873489760128604205557694022643897725787826069904222744340461932201528347011754334856663230034208853881809163412384357488802179442187893528435311524030909411866594186894983352188279831569600022710381523139987042915075509703899035376239431495315452611605778129323277697071162761962922196707263400984256524507182203122549897354189954962672327052760749396493873502501623860366407084082802557158210525548266667749958101787897480450621055638158836229909463816102440293939358022862770655732043661877021890031044091049674305945614614435674986868722861500417067115873666719554242414282204772403042659304216659673963287118656719681637470560601656032416369148426160547889380597288883816611624957821287613741450762290762496676188615664105091804531135450318225785521747469847532236447532941174246511829497133732772994426139034020756441660166143921700149621726058347545952944127010286565779397923782201621839475977749770188662137135131509065605899058295580929002272478151224063917338441572788896342945500943032406727930890962579428241392179598798949537505521777630125147170635530846733604274094940805613946669364466682210826165486465800124201694994937200701330893179259510648783695037635821866238388048782023392570530729983632661385892723613343583274511984744263672059580217411488310866574715097264446941756625108611629830046233228328610405863468766262446349060192464776432156604818787036703700349718295033728501590049601771896843985175101635447664835561122495290693676282538006695376786997779642453969453721762086918191745999366829362742447757446667772171886154240602372723317803437217963272266507194825277899918645335337750806727357907694109567635320040267932751458834612037653430218243717915212354230669093409508839877020074047305971140817628192873397996738231815473128202008224641993168749376658523152440573368279793710954455346092057644013844458598024835985209740048157545450259070400007377077788515936438708643457890505014623291584150237404727431158028325392880876117152220689068916005960243193481188081526061172996597461216552967782804289097747064893935569383156673561144741442380792841410814487989836354196921355793429285994034082167601580055687163975811257449332835072272080638778717706818839049429925918319341371563588016585894674029627151577488935364499684903664816758568329319654614035125672059059444327478178533457561952701805398110916015275697957813977100836296936418326758084101685710413378250688672077514119379688566596652766950086735033573085813303326179743428867171817921541248128996359786256135416622111915115789306456206064867928305067716811287070066597871697072544302341427677510057292994650984007169007654474427577710481380281722862519358205158656861728296671007253937824878221557961337162339505300464752382634031060617590315719849147277154572648688047688669700229401194134131461868625401143276652419475624507357656357362048117541790654547255038483696877136322900259605877256194018654198415165665471018525949614099367787282544559576657042131162740143076179233489628583622223904601603767566520778531031671103810831539999106724352648396713101466775366613883612121295451875609625832892533892199690375900722837699684220110062406288188710651709623387508159930788672003312933395426953671547273795183121941290135370227006869671272315499236716415811910054336417570375904707214446207531459945460400214589599122253541538035504686397938932738114381173086922801028991429413490682295431813451405654032351009354842274430417067738369215037030401714956415121784580816769389866649958283019805908970005000193732227926820728217897206764680534497843693424385395754700518474681190002745860683471768575458360005765128427193306516647948066952804399967732162259161408354715906306173552592148884878069122718177539707727531170544156004308903936286191413484855521083852317990985400772588852162133579848613470333214405449531745322678377397806010596658111115226249663185838658773824747881908339439350780807709327385308883258658951016176859960428377892396820551804058110519423365921643061988552967250637420310327788448703552091116938131040254649449587551546651094947244782884969171585827155788963430563252768333309455633767217993080478743639395531102184393913871157984897823866555714587529590160061384902128952938959853236642400490513282091115706301550928101705312148915400883294095653797728099847409128919217339444217517444684399703894474413900999440538586382999673892355987359889279601952149489816222735012607162601326487677248395303140676633726551045497738294319837584295542118201343736942378853833619808702334595089506318760651907324816885500963798557736420237370339761640758049731071663073140353040934926108408615010103948348261451183662066153657227156538998286371698314936214903052040637714500024245250738129719384665740209205429854903603568184840355680024091194843299479388086282597289331073365918252473869514396360480486284980176773950460363315865191271143101179963956031511205026937263142419643677152348381096206183788895837048433272578372033984261907442278756890542076054954976729426100240930274228824208659725619686765061979861537180764129558151049345191597660888642535400553464789249256130778994686126333162530088833502113002683803025015143043114607302495202115811312206638059894669900440107920315499537475915069495379242358975603059775072390629151873245660195516922296908024786210668769863876480971855958101335055674107236242825201889769099741156372688636382578899564778704260412819903073341720948948251296515871261613914387871248951826999101536324901193520983106209184945943718334443552755470142162242767486492725104247808861323907122590031893780582272751359096655830377378662354808760999306997874732782090281320529550881692293994590849698615286776964027296724629253457767773981489403688367289344890529231750718804200275368635723065235597686220881405767184268612243543454595215121419216147506628600773250996863874312708682433283809737067721483587204041370282123090454739176330249396333433750393018376001731312754853201805860165570708674477872950638772164907391072345856000891949341610968011020452935052479099719997026926252542016029566220544874242732976891814756700940044117096860291155063796206656438337775454289772542964459485347487415939449021123946780850521114854470973442336445769720846462544880165642290182321723387224427462806616833971267281197764317867197533039312101120703396839528207874012446511913369175671720580621438118754863715135453158155792729299753923736070029009560583781616776889786431674706725604847139619539779187912495210891001063228201989860714005637029482319764556386174296187240048060972038664152722841164165089351496175021933121417769993415648435928246653108526944623522427556482575707231487106219098436563232777674647667285713743474178993956235918538526634217393515912656715413849725449159214886474437973311645778495670013752931830034538346244767555672983970918848289225131357736277643785962886843737970042519231538347089982677812625623304392880472769636439589224968729349289000247766262468401446843647540319012553450672313782709479548225356044056481016249441031421089890656441395249201984432046944648344462914844065443333467431401115672258068478347276030261194028919591378626496749859197115395880585108306789611442894139549255284927324685673177027331650910389617388361962203078198651312772080437908091756388648416420881509118028176279217589927537946322106491030241778712134716917929367475046730832271420246929785967306202114571316527597453883918045430679165073925003368085273263988150292057001539230048832119147004039909547866883816089435088684971057078301539916509521924991573034726478456843959941679066508100726405150855395242602881963725923403657417019174736302622929224848931836051036167478609831273849886504212508875897556334470068948468210585354139495328154146609887358478106440146709940780611595057062761928619874839150463606984745729612253865095476775109175327838348008569930780968830222679460497544509592619612340309228216816978654950736050742561959670332765702284068527732870814437111387879602598153561335436342359430860847696670859817746248556945028946736002060698696103568875801679609741539611130058427399029215709955393522492629106888371282208479205781886402244608638883338080653313357458252799431441724191133691357840102642639318387744618047145532980050807151302183548309282952976067229033401056627739272666565556321080810954324304783906691445784518420332658504713501251018498678601567419029889239710127709807462068474195640054482357028872450700137588266639719846627129567794005578361401132842874689941078614628791025102821097487559959637900626518745371838066939968832156988617534983382905954204281986064982201162555171275481786507712085430906620686947137473627948935917928840154039653259138911586481609220505008962683896468375042034055106570720618963922098295143888041494987711560259498329703436386788621666921053018233432052019870990107554503695453552026703895315919414541774020231590000710612773195229795042050803285876264751970755303454043155421213224612832562397284102124172199952577729110710588187717616421482892228742396708432669188829573562705598676464410996938007879723344175454963425438838550221925025603397129861672677228187820586419091906601865315029595124346736796947423247036871632822806771228554515193893977035327114291710140127864239975950086596474033447113906054232802242199701956982299162752590190901323410907592051014809382132883992665261042329671049002298916450598318561704090706579876088072987001670970731702597073771658352097975040964651655283454002566842871258442213781940489415589038633588566892811113967719072043655735119921506760840475971527758350861393511930060777459089816892561297941039065167209719340455668300078320667452202286830628968504891420636248682810278196328797665257515223577049730154505886200264008974693916533343069580387965181201007639051216027954913074189069994964396716406910827985058633770838332068298587650162946464085480046413575284423907193715126740684600238160281102891101392398863764506549302075959348660825363007985501721209905719333570712505569210951948216279514660256436888221684941250970662871570236478850916905372809064830192732928433447556878930993590310335252371111554470473444109093617515432210080503424088162138326521712400426439501917487728045703503166849525270884808922507334721831454913660855302748348311450129301448095366478684842942380770113695733247024387640919902116407894455052258463449423788992891239613236397357355078552651730975338274705851435962355419093794856305543379108705487030386538212852821437111009472484238395546242104850765441190742846214894910011175091205078169697651862572620151082041351878575218821075650875565866538779326088128674851662517247472603142700369071955521793011555133267169968341797818530997923685602713158030559751148049016665880089180030737539258656125576574529420245735628321009436941836534583903082236351671075623206115712031109941235385568004764414778051242140547351839535255627816300919009974891418762424898205860343550758170689123216339817932425966598450701391828251229295844448542546464443741001876858725233197184593847117790855821320008939694823653388584581278910237626248135616993684542922962494638252828165337129552019714983806177848275110923065981536023275222463736764961160927701590792406483870034000726052250470529805401218819568278422996928406653498802794658023199646929487281621637156183547067276582906160209575520993435375387390265900312152272807116967249038452067322442826796803612169769357940066576729834488361789976667189819404910250194080219763050292275793398648945821428002200661897643756111986421074664634021322510538764533297525544170658240354921330284051886655545023934870540030579999271460066320167974056592236827568186662584616168176398626498242345214934229855722411589893662772195711963574493208301923244745053346460194801150572601401746429586310323955993323066782865943922159392635393078441904332508460637648395389437487967865070881149530179990621181821072459011358505509463070520935769249130554348993185069411250903566313503129300448034129599736217801694333528846880711096952526119877670242227662209296600852330971425422694201243502469748146920567678159799739242999530092716335629925158384811674145168978056242354922100455724262465398337058655541218131716662182252051698143674589592803739594757924591479805745321293670000978808565549988178496658508879490814108460041200962675167469882720919908046166970052710901255063491723013926117136302407944315960146117905642031641119516420758533390621961814968209206023788464111707040565748043687468610936332448172318194036956969444471713396858425590672828833792667114327736328607009800150106821645633070934816945294294479787015316048132728416868426855138782969217030756444041662149257231505005718603305390531682376221003435603077498572842521671311012537333943204683578648916284418539622178895433568595328849581017234665666481221525747172421062973162232282634836807774970187242754664619013549576287290258146504536298953211903193877285248441653787959067875168348899695911819695169855303611334866645743623064882945235807807928731436459217005452837372105510245158899162657470906682569600157374222343668796434384960262718858652614563865332349618960742518563080187149270529686912781934112791714493190803758979156283561953911367712190069083002610434043107553582623176561187651293336002412422939148424511700984291151341625879245210382231857952316485348345878594081634195566213721400599395978728760374582478131395361671034290240801800693896390330291921708328929664416236948258887328971456540957246271698912285273985899271248029888320127463819409319098628012153508558958050133443986923535102110259739963663875614084837398077253763698323287340048537974089341380649180357265728362311580518906956252001520929669950369377485403504317280814335721842182929545947100046298342548188200171485567711545843459729790850111546449883364011232381616197494527006348331095086075651165155511986092854335879592940972221172307354445168344500021918693256304598532233315203088324838469816447058595564667919234863210619316138053900757713384019962634444945016799395027313539222826630313169591606554783887893999607055103652604996145758385935927423201538736869954728226933258612373393025246783909044167373841757795276469002429009431834725288836506730261386107822411705310762380708334731905355325042789994832691055728580080782009592048407650612771882513245029879001953718388581962395260791597180241233187204318755045321388027106197814827691137897428190304400056986377978347453889680941802678632768881386685502725046064078596480307414728100562997146888608933794126839836130424169959895064763686146034896135582058336908014255567777448638076566598793323993316449336820920082186396195062882034198480564219016155905761553051152638202839126796329930281116632759002122819460809445850486519685224150915144857174921382990154333444848817242735769128044335604548468386232388327829322035688333593218776170735653751023760953392411927042988960886559490472008234110731247510096500620525838594974103956888089444123102697054216164688530304721886304026726656270064049296999978016510055003377031802590428722784152060782669450875736775895045777992898754922628749383186542431754397996194587610038551507321840846731487405168463783255936793219897100715674511901562703498272788525178915142157728454504375088901961443489309413851048311978749454515940117378888990020607957133906464801779163877757653143809517016759491866529960599146330877800073764077741878304894727663174982616623797234475583371516593101638853249649438393428339257911099320235119363449468173231449120185279609886226040664721779422101057011599194387622256157021938639246393837691931131137841999324089161525724636260768034678082243080752803455268389786710501413943448998393008283531059329366184973718064464256171792288161754685123227011369920264305123528198366723447682859002976951839175099558644263554833006668905860042312709961383894870537804869566240275659188532902433135960560915328780374521999655625181532543990058352541484932063541350887091794114853160416460136248446187768047941739400270417724788533116548434381050260911994093714992738750970923907112762141532749671948924701113341398753827570601547325147475288491731415708725129455331758466535788439237824183112438628718928172049327947018685939477969846547746308501467169637824230901921268579566776795949955699695374551192826820312855396157342147520645740105856439711090919712657422558175504407846899100614687374255733156636087990595949625198596690958029851734387695369315297366303554142624050171753655641399282397660825369535781529772119580946990009619615838846631333714393551184053683639189131536284965099615784255049520846557821626623739450621122012810054355153591006517551983945826544890192815122767843877378873424879697270095417070122109145936252115265648689570554020113199273396021654761194514873709540610336902353985103550790993598184027366819345544951958638379624159665044052640427087387445065261269372863768776292078153555857446762404879323414981339812994502928220896776556632668815881602176161234535863745628375102051920528869959563784908953375268648257121140768751014111329868865798668005727097150795470693066448776739457899883423521195341306486587050979439498653326296670124897444051649106117529637945722271384363518360005898718927017142564950776930491824219496042051274096171035294874480741793693864283855968816000584542420792342679078772206915114800819286846245207255156206651646692756951143372982168687965941239252137984002478953517626653665650637878411263251078667623216899734384785911326109581541774850662159430481578457031121527964758335725163409732020047497058748646349159017582769068957831004060192006864589221914381565849105300599944489003773479601035755695137214612664425308842840074565564930872656196000060266340445472859386955125321156647701234111746180549033246218721756920708443054094155113401517948634363962406110392784064538356196820102138461526081919383875247615959971985575046091087089563664561162032667055386171969363842725877857428504174997711439443031792286459705669329008924852173830500089751736012910690335451669438887699603831014931826449832917261579602074047452562620239848293405931899190531572327739551241695309015105822254181073225413735340164399904089248674041711720430022882078619979164200390279438565145635667094464336462461250981606587617637315981091739754878581999660621613308675855055097757031557813807402912336685985503161323784641609795691009734572274061722981923253674281617050840794199154075191481878735326882131632739362110484760702326955132296980482479429303210342099883036180936354482403128900063855445317961977629721437334434413095941835296972995823209626168768839535076265085887746758921946585463297753404544947675927903895496791902822987025419386809111414288781966911669177868311700306550938204277249240690590910602013419303376086107696888873244304890019904960520209877722328181744365223665719073080204454096145506932494174735368195475509875913874247768743412997143502170046434456559117224994415856836961904911875864412710092336478770576296269650258752135262486596430897500524030901141385961848803213839959184984847039511457483356853377932674104854038500844265563493620207585090743992936778623390457623705526119328156466764557770046934800546643072504643523200846054121012276638757056370587793574210575282320683998637976557632694582763395559216041015183802264614940626722503436087420597346174833736184414440630311959094214165430998129768097172282613893409820045780334188422180087198444972444009487056491037728435349673704097326232549406965301259899274667546565304395398892585054710525072984827298927103826150030770721300852269604319697520499098409727515748727460579666728427649104019458051369109633670601869873083321473200394150981693947738089047983823511621031513477817286959482457205377444569197608202155938306853090419492017774713806020421149021439367857997738140767670263217974162282820102320379866818932474579139653083969953085512783647166236811584203686332656016808326397144398385141284100481178264616170009624182803814119958602779810618105580823876028906307383506383163259756128045227125001086339430117871524715370787977108421848674902394729841930754258736902972132052024915285834402697636414941394380682948575277140441823086091940051918347441444897810534563141053644134052623504485963793442869040171664822572752501987539140446994114335654643789476813975673347892889790989885222347271590024929277549461439915410072032228578053620849119635351207986169332306370540874502468055094124651203590740356812096373299512268794016666740488682289323442194597288658729042667969796639849879379013129471675866734552999823390506352253137531590515520281586269636040785319741558555755122344095032426932616804093234953175477723167390141870059532584531684924821171034385400436129629817509158589892621570076001113212259777367195837714917815558176533823096079317293817949027907031947237107967829265019317410071581502388478398778945297004605900376953539580957104364333077920774419557144360162944947371845227363644438762437263323401974951686556838050839001584996733434918805057890989128693373661170971718297578331271330876097847922292448102531658566453043589167442736845534713476090942671137644191445219028774172715461963827554541735604620024508988904656242104298234305138464178741897549011331155852168334191412308190356045271058876421264616289407858536890078694351617897867485881761513133770570720681838636511670285613657515531375844398721130006688948187365646774758555106947083139973466323005514348507156286768773792754770302677603871587484312758175855505030760442823385127490056624161297915772520563250120476899600408362739825555181713565221490966045805514333818921846860574336130590253323045908836990468493102327550850688460704998562972132906106024079273063141010615731733874909416797418444981144994826878710001036754530853121034482944827327312186118277873265827793192820043250808940621661799817828803156666790855588543991094674278414145600182504046911922659411441381715078115582468759646899795424964427793476169414638376487952385526067130869582278008745408723620758195684011698698862900910523021778125629545531546182687142007065042969128219669149685075845353928728230957669821878139120193209564176516756986102266403928077080495424028636486738438306439249356010828916902402807682778940907355526271500298498448819543478176250191769850390356532669460837950373407440923687795904861915209878111069586901131102675004089330343909729831905742827510728743671386511389876083654766397257167890687807971964201852129633986338739277214408832647464506372585126152460121567765206893255861723882565114612413549622187534122747591896467677056642448812406334475060721840784524015481565021032057994452111310814876278461668253176100410720986559291308999648748022800708982540511705858078369127126894493607494106186928144081293039397118206941643201778155900370057372590613772824400809149096806578801821874700421371683749117238684894385121217202039455078016199056338846115470026633369531942678015345008495653196739498300683113632234074595847738785735258689830923068793820084488374844923896568048463758350883666517113629559969419746903864309729496971525387595397127245636047437114324374638792460071127326380309500801018710367338980836603811407652584575558223857613684348868863982782386318857702083338366309760516656023642525382344592303665493397124591748114008635744697257700222241877601831469799493476799977987644428228579907185454078116713950363957041928695585806788947937547676778907684131861796284189142324278565058909131136468141657760082642970775758986058785330733221641256400541435845540418780056531575767542899752044817473430320072627682070919787571506246051644932398249656734852301438014363429654650293538436384993001319444829827621372879592327780197175968063523466707485788258000857331509502330509986118599607594461177565924761783530853846357863207491387651541710881180875152102569221845165318543129701167020559115079326611424414287930069068714097824205942591997324185018870279898090028872890701644879350638489284046075236800748064172453917762782797438865903773754857398419366970094620052721457653371935348206417525512101425245467091983996517341633969959397472742860852941199346475368893245588101970643401657085647632112875173554547882077599067177211903080277650486460748263002233290193122343874369137504570579182913872045188780645482845468534922054523956190278561339161488922504012558059289967852027600738889727936646695183791570352452130593413064357599328596943560609981099842630286036792275598921626262034286779485799424635252331345196959654418473605362518108858958583555154199096508339637200110962125240389879304302504746758968724769973353051684702089160294458583919816991947679060058670722304743937065338565965762444710040118588183131982566620550849759345411080701725580688120917104735285032220837745868741360415548092535245235422054547215510256047468464953822768630491391889060474719470892522424157051878695917700062291530744721232091474333515141366778308863215598047011524818668702808443979790473255005432462308089592160979125840554974617531374047580532707321277809560979112508739801258967837687484558706477281169979321391549183312170158449619068211389921162112144799086254627182724677257695621887691897678283834530747870099999810434857136725839667148015241751610849614289140455166734324574057445968858378871844329386102024482527812594367847589123715916895936964509147317110342515872012972963113653876712831151042797172770194219580748795183441585295038959864957717909272704023772700973393847916697941732600304258000467656776300027891680148330186297307234910397217685261237986986112343259217781072649147728221546545666579936239408832332407463667940100272865828278824064722434891773777353980006298597552397054525686889066196408249138838890764367899169460024660832381254602630035869938189743431282324944051890060669967966548079451330744201117942471155891617584045624237219424237571042183606660936674519404900728128177073517131287387576257584600189420401515582788254138703931601811581036615870914257853205145812718758494018921288363471784175186124517777150057789800402948395428021951403709757379788648122109176652190664968771657717016749389306865992148802684103447554831863724223068437294638172480286865123737945840237342904824261003023476338973892794558537120304452543171502258383798207156040238299965115055457705289693364110752810001339280237727537523666789808493424067693951025008585277856245491475016636538756779226573491347298206002758235629922224822313385170586069359897606929556630056517721125044847931120850310048896415294625207057525672221845808551518128078004258899526183309066924796667718410600363959386670743583424105298137731206262859827617529573065695011309221135244871348455081107746456699149210169318609315984954117275446780902580481894695824133107949281494119556443003323678930593042677802140068185847172347072582520379616724273959470753611936455092555504603948448695596059342685317028315358196747893686225440990414231611152265872421567792402548587199977203961559615788417228150905790311725393696660883839753101856658650467069178938505082819801440883342745482157663146181036508294282682204276467473963976847365643469606361266732412779908549786515409846633971553552081576964658407123570170652752218301872615503272770597300644152645833356629420483868076512986222391769840906653711953274591496741361818011436927088936739237968431347749872855714463920519915687271034604942141077274189142984925315424088569064401493206860896948879022258847379950790565625164601385968454315244100907731318418723569324279822005908410906019653874022878388349043729384301792195935067529886691474734143737942452835041139499988305992980653909561781201073983376470384508169825300208690945193625199447950512954596815979635110328883618543725779385118035019572092610117256017228894680057268439202626718575804474305808616109425826051085622164670141403939082132577245825591203230245346440458859919563238713188574497081070760312013199715767643337446923344235954775802253890073618884447370849047133459279039382844327179296002050384070919552852306547709450944178603746518944192546281586059701510856727875337260257470130681267824797302425120889879386602037281186422720609313573421852154956328990057437272683094607055901080105520132173734669920633511045168906532818329973862913269013477903407843806234554560432933011164649233088439580512581288402433237189547699468709475711326470312232910907955157971245214954226998212906321978477103847640383691480682749212316647657735068079360185018476925647007831472283415843759747542257211622996321658526506194351115098474001279033154646150090675593597659769042452435096483932120767917460940976231788749913077007804843548455488980295677366474674315000170241289621302319330071458253086453304139021810288042599829965308385213141090788142257107231268873492708019846505287023252047375873870600191403027103708206500443607587803784976715014275290050688185545050117514558818902745593318296873527756466231749319068587164163703368201912526303941627115802943285469594679014689125017206478147875110079522858931712847496224197991754220197951977899211213066226462993800408972010965564992246454648613870083801927094701143964929434519937268042644982859560895554187758528244681997027339222679643301236399982141232065547975115186894093771121527014154207959550112263509394975844398292316749994352236118443977523947681510750632316632348671227187845332733105703922234219049195100000328047682763472258385732807751692130536042651579708978963450490687146393241427588844837337071684418294919906439514835442368857248486195590307072401090754130799649089798171081771678706613822230227565539378125367443832141089484767170784958840776757079737655505825348026135906341944053719503034946674025279308981314268595599643706871512127235290430496266793922029972810040018103201615996879011553602109710402168444551836437965573576732933045217536859237258595158221242555193462719031453624291363737183197932811960831939448239387650934313544493135548340128653552459875868285094336820291847128432878413631676973104649028159321911429896243130455340679186036754903447547827870382528529093051542994266701985395544310719613889623649296745753951549911603818125562364118238961372804177980612009861471829752983575092078135830325941479849324610457845001212281904836311826447587623562541880574393561044658100778477377359021527405593158251182366691936281184597648203410269386569495033553111937854250340488857201613882839314284069047428941983234094269312275129814577355351488732412385808888849011822229735693912557897815032136234496091097872770384221983064104240330532842204707608096806234028951948418215640971994428439712938755272939088547901788543630619923133731966364754130485505797783867286737738786192835908045529620598599629545525290920086973351134518424783446430178719764935488260319824259696363753411190442301368365024290879094368398254387376147792736163599685407214171385024829123055849145499026585844255835839835806817169343652657863764169079738530135572852926401364924000703241980368249912908241724346112568344082867907520643165737871945192136613061527536110671438820272197298687897614064143033264024547072975738882869794964607149690214200993192859391254246207690457902452129383077780858723496252935723944026502337003554651790440790107881870275241024044278929762441116747368176563936970159548666119599419524848631200932351582921583575260227083552016758681565943030056330460073264527427555133334604634834027248488732068329138548486315918551983283526244382876600376952949434764232375410648200295970081879346834111060062219191457060650462073324284783560145573833879917731863525703614931180008550909512062124684192439105088945518905316470003877831269545885709588567060626830315908147311341372949912371836176591521420471259191806192281338670696451555202355223319794377346873717784077370123517962554556250962701210420900044950971313588549587770241536883187204217195720392469366765452293864798001126286160484117707202466419091373341437761265317400012378827920844831180794499569373444589941045998781689194915380349047170126439441900996628909147593590041302141178193763544265017546605061130965188136521240343507501233751751127333566767603015383662818528322771261436543139446675389814691113841363312230054262753139324314025366848688379120022410621306886158737982403642113427376883257837969931542480371823555890093777084454424458639417032494746542418333083952942402990691404169669004660916501513199271392222191931267273028761620031852632688976791977237367324102354801997164735439482232296737043750038244845078309613121745616324097430868345570587825684098599472504906630453437826743536560064599913089456391939364050348998311716587263618340518506987641977329064833282860948628618628753745385262317366532307217401881212575504535701311900686339629349779866925137915406715014895631826553613261678435328421198061067995939844844623180206745288746230760390953579859546936037741587924946922977347150458636153428807003800117807283837899811902950887785889402969842111779619712130856717089303667468925898090863821424498591613016868929651916278710685716289642128301907265707269257708614287626149481318700125603488342644976883616619175175239938667533067516741020467075922662850684858621499375199792098679582187642548752678303283766019739727250053538109507471249999087807494756923351492712992330872537369496921442980107756927244122264523955748675308745518875276885692401984603268298671953458890828616403471908757338133179296627230819501765536016509919121525241799101583658764870513448587417403574380068567256020739834243886357890991463475876955109548757943211164294086650302592254688201271067408546385695447943430079014404266340064827760682223684797047869081556410987791584066319863870756214508928854740563407783403606348517497808073617194835962408989977943400375064439169848365423956847575218782586637397936960166747501004643980716110396164585244180701813888508033280737917961626484629979393866439008289931077327548277463182024427352900612398458114375527451504881076951504664891999272766287920946731771926942473637050758518933943067691678819100547768819950939370064263632855819174439688480404928504994668952230590851047667487393232242117109276794405185117022047004474161860594669214035347678283220114092675451690079521659664262375221911776638342470712071540669048672177566160669173212610743836207243667611762148711585860370241818996397527357504876207752703553653140646645383831514041111764844736890884648594435334325954142551617220953221368558803231816831634030962966657799729015471573876537274513879763669275067248238893761753816076260733401052298535358528910785846028359989541094406252695401561449310004375604300811699297281830829129439342666585634599517098900928896666243717728905973586959420149025764977979890432723010653289302428546125752035194045797828387854620104749664468072646108577902760417026746133940905450955374838229372833182260220471635930947232056063651170700451141529694948956462334283379561740547521662092501215003209441138942435303599757810951802174034655676222937064060869289950178004202145092147920450219562399608934870139375503843233921187288877580424045029955126627866055754610219110126287779776716760155406537999974947215154471997747966331402522014258859947072470023219379843730448689321401570141895797181405968628802600106173448166573689773238047299949092156152483216548288482916365449030362912206209736912865077554713863920580794678211827142113428070146681701632770338872090708783075647485870999023109776487320337783528500190572145048589322463343077652448098820226199386931524425236561646603795310029648963702679502532655712435356164754907065864805531792548124221603960970871150970060492518444493423080830559844399602337330033717577738641526110086395809644505814763629095635169967216307662405653208868318250818896550984537734992956426378388220853355262850152935673532308432963735822048340988829857281312388807480930396865969950678236300825785780617280294556874326184764955132034387094122333982478161515847890660189459353660696760975509973153563409486890036312971446930854855646813375377998257649082067820660968856567934822486536611079405596599439928382922876992312537429486329091949102037725243586980570444240391783292218437193142630349768459212454418827879375650526955255302990107490315182638659519164750303183018840857313330901957270030764584681328778497019103081294404210842234387454265246738448221246859427148871168928174187605398767347036513189078703935320257943800218897699724157331923797764105634405333361728772967868300135675752523356730948155740851873009821314396152917006310200526113590973505118154097604945300864819227410254415188001730260006551706504966110204495150631741787335183960439513550027336517929758690881651702124599243834103988602357192870408684018313868895313333977735356755889226493990225439870461411371273458069525258336068584463152264286729533930588404311891977633776328913069029939340290584083126875458120349712618413349403990310118266031245218852898405018548225532531009511152297316498141616331989110567417669314233430623930935106008371481639942539047791406763275221099032849208911907408710457742473968224779205578386005569769886626300689467328785111470668984248635959858938925190440398811637327724759225463080353670779144506122366717264375851294668979665607142992507857493389695967913914322298013573531160535129180825815911121517834515749777205824101825150113219795627123567644823382520293571847639323311506146455439083491760592434096907069855885527651937017737200951870086419903532527238542838857454587827219685659448292899445072380209890899755249657275182847973023532177287108843362291309176892001893993854562309000834998568459972992633984721815384411475809277027552515333782845327164913039600066199949849567507011526400544886291004411260698813504278652609327159306495215101470470945566266261428730384686236576222567940904425185108747610393295695842527936648831950160242350351370546520381699351830056706659625586735390719188814571190224879493446543534798538105468415239849508636405353913076136079448165943237700396111661957355018508761841090438043602311786342449452142194164515615992873309075293829126529654501230416256099392695390815673571642534953308940860466152999617887905508828413058771138229787705213999036210050649968780846302888206979822355712826374068537480687891287389895524112169611500753433495240307554090621718841698065570979078377486856454023293200652727523618550994566142341271240808792699909425774358142861284320389597604340649172439387965804393650331682540014292056373386231362786830366311781779137884450144104238734777680732831469928031795372403614315120872457738793083600962199992838152995920920235800202403772249150519175156405584635556920525406026235761747506932158670348694599260101464176769510953913856346238755569111983706628460050376566820795084125169463845641131114248884505133506866486685457204043108529664732861507864852440344163595551312687141066620477989542667106773228693140503688103765194972167539679224667124334194918059600256180021833541786651238214290165834134322528592162409417869137686182870184547183926129448837677074181179329236737201836233414571733846459261370578412769178292818697763420036902557682954260213471572720250035857274831353853316700655221223073006050931448101475263865782865117898994860762573893839807144137795520322402251122921657225373776917950486108454873831661505976578235305096670045103914397740731114197506932717429892609122783070305948184585221925065091316747806875012484343608813859180439680619272720309211448323044757207929269339602960939869085872208172674517713496902063064973746400631062534502401173858267004259093594445924629672276152270773661632061579123465628050652072165359565537809247036336247126298412326074454610253211457387346697575304513119707724443134369927419203125578803839516392530762096714806939817528726715540035182678337298378727158746856810289531982650470045939825797583452071804329255450962848687656839628425198541012344701999935999664225970240061821394538298255924291264561431744212971898645395066880358905356974168380665531674486865545961181592964152162995872873314020649438041062152456641302616637531207630548320652303008997199918933852482351696686578217088185705536678868730705218312902154119593619312411480174635368892867627534890874385740487216557755986239291552683352119382052644860369973121508272958446426972699450679787426527617454668537274798170094522947669034362016161446442745285510849218395734594349057174172284346237593392261833281395343289662067171568439934355883146167788167539323514367584402133474914461294671674218591187132711092846541757667465333797638646971973797427140567773840421900727835688532666087420913474125739210259918108882125537153417261684736839161081247988525898681389753411844802688763076033629580624686604688379756900612612981618529585373572095816062436239130600252015840634450013987266975462278894159297093327100639352263629444816186189482109094782617843931481312240306038009378209178982539079702580115084788928607610546856571208922821338319632256623924939152729436149643666760632768617962057679665386340940481753414647539535108712432145232820506801253056586252678651770155383398010822971652565825517066666203146988438434533751576529848069157976811263432350671625507184497294601553815101557064212794142258747267803776148539276534883662251633876357616237739982791595718506261906659012466284382561902193314049269005880763399857286172912018333862914834438370310661721822097022530212070719521259398555918699607541212627824633963544721993315882622687217889817717886895386903312218920759900823860816906088986577064818869904448780260190047072722207928712580977767378169440100912806698457221857770106332241410246900765213011671330476216764376340417720945631685592568434711656261698118982728007277940777717057276529318743136358558868855184019351379911741157853161691733542083190735075952288982234957618543596683941038182637935442011390938396633170457993177152209096426710232451471263693088955459174432651219593663878412603662501070632863341897280500819007904886978308199950595880540444427324917190072946711986441564755566942726683541540659889451563751099066873750683214093211881947154872362141966222411165318267397012578803021605031466345337581753205359146082020567085365691943884412093164862574133486466631746603328265184786275360569735186091158706894652481202989447291020713685612614766367230743175395414931608776639194770119247420895929564924177897893567974329460687669369891334086334420217350972834461121159884586138713713795242864206186687271652603890710051951824916540414756584633669613706516388337282387168830919842098381309538811444092024742979952734174722537188932744916178091900008468164379111803808162112359282434697205430286438463366384506587895425296173523202433113875284476794000033674764537848934775471586677674809747025993796328067241350676327786734187489082169553011881490354404137590346251622670902925732393991010674719805296909691615028814483847825301120754586044427272832354570124536427394465734894741467471653544063683931917600276531188411879173555347676966775846467055912209083327870903981162564881779701424687864560171944217369707406975619365099680309462471399180110326188201193623333738070710407856521444559734696513200263679571972983020187396412312359402224169080843050970257959716460893074863320551896075069237876401159587719066465060452168110894920198002867757492070806222887818117448978494005852643414649890972715525303145970407917066384825053627014174535920003064584938864848881250145664024667624392581242654528678144790605260404794333125806520853500043659365418336645613737417388621761082002305949664739769704941033913094952103975437711095609509470010954458518920660479789337160463857119103850265570296747329231049843768776937698036228299774359176277604122875483468992439800894260856727991644527553334419634241038525137942734209516663563957250106633327344234464496359520009366442687513473541838140640186537250826590015068872902364951458574400999662192013894376261573795220940174155882037604249658325943218241131986246626975701276110703302436953394878021367945672625978419000544353307146081541620535954073754048144678100522068691560087701883612448017815840634999348825115877039928844440591843978698805900391198320454939203229559907589391346657947419060779724633549994803762725705342671941641281163750111105910192953041726172781481964994194461255538019415699444019765141626613832094091856996669562905784198561550774897250254272056523395989566011244181321550715694975560135171743762022229961120768466546025416404738560067531079386447559392959700228153998200560614795320734174105333277480019344919428749486992189067540581271169019021537793760932544693361468900931245644863266153056283624656625438923562892296075074825513885258624040703037562459725017613587880399590761897387405126901411651205608677371001264925514621451126660102806036957600839008548982259322669795126936960999298056453855438369042198919561030547502269023776019481867182116974210503255481976988429410635355403627694998300426790121182280833531599578135459016773442726143308786876854854751885818814466763056000518812194169786424358461628963705097304220686057121641838637151623020127210629450566097489264164660226634135560045416568019158601125119911171772692816676891803917407230215754846810025144365959993257012039391916230182908975574730517614825280588669997320121422433585523574980933361033912643049949493014607276696328671318418169937508202491182386541505082844057401059800597833946281944296252258201428062031134848512281033414628010790186129116565930216284639178794860068847650500099648538254038935821197790484737183620413878778499019128124411739911649337035835166064230319575859032543449678652150268834594102685996331004306797558384795648412064136126437356726788734009855435212761143640031723339430570071012760800770809284240774872854970920143379155534883010038735916226002155894672431515361121524526590005654745164209741280905664158956748404563296501177390283454863917424467590436642156229675977025792354390125174804205348566634557132912145985775056783419605263464992593118531335129427409680516761754734291346942547303915422023542398087208548089428738788034508932062345227551435525808089005597665102688113432112871129701165931698812235126739229043961227498058606288802041971759089082087792116253319886958879159039075551637258129501087588549418340251618902889848535584147361889229020172185217967699306559121954794296340353730272474789867455316005056509173282087062098043939678400281348638847977194764996804378968437600250748517224372612327911160140443830858793868114127697787717165605113252334758400293058447641799208352250162757671890131772470415158018434368576787951676441195261715280601571038423739363785452401230362384983657685331354102247936556071280143015022630286057142640852930083800607795094079411121504016388289562689570567513766549957345570822020907642800996647594739890867993652902379860740814630160989841215673549713906643218557603102257723352377690147141811005457539973415267375385373160727530677608164688393067823153627055875127283276636099940163776596650898982352407063268878463547112686103851266991355862855998090868459509061564556494318266688505822191793221672811681953227418703529813792115706150783586506661729693364375863670217888580896735954731235514178187561380308300178799423728577946109184901253637501398739366073637369203863228018252524849457578407526061582983044403979966416574589935011093912350073560584588078688959393415690177011902163188196888090489332422405224563673713931685422147409402039933655876392810903195154537537376267113465770385104083730916514203620842900244361925124038966693515498326413555091391844563285669241444555870640753371791287418349407886348819548819808031137326209878448436668077905013553777306153416196158742798690347901406548499557912431232009536734668737151581894818488788079665047544392198475997239369335147213366482075868392794176724810460597159625158096856698350636320847419663028309005306793186028262703727350876777693436311124336624488352175144322260712243732555529805082035390279303951314934552916591670673773958372605558235579027102581911508989020672473712143891036226792690699057944305378129092523973794377695108167610479576838640604404288725902979311199864634391407035289620449613849817551138593651604933023046821363995134927263194935037716594303746212274210808053444937732671841576378155490684410106702928509397047022622864627181172205971744809405442779758303100077925725920783903971075155492099141649330939702744815839474532708177767003504753734119474665794783272227517317980248371864903784738120501275959852320710275871436002192315574655589957900444339780301746887939817277402062626657789351555913525878519029496546478600179757896324276239705529255135544975377571380468225353738805773703752627567236085967845124487646728440739586288396368024579881701019772427313526997234765214361385093440410571843379919003913138971240621827989100197869765858492379806129213473399584384936177759167047156572595039482192097042580358644941245600276515225175002389720359735894204514841899270061596972023819672163579468754305710886687388184913689495549071921317747218489507164969377765022455210322635066577355260495340866203289374702479624049091477219717601240680076261416598658731362088293302522961545186510362351635489471618812696698859564978577964464979451767742884273678524603733979963336447133081243787348337493675743227940053483136892547290396607461784328084121607196819879622707944613099288321042385877176986931089359117499178168603120371207728437295532701867708876096115795875018762726094227720362501428377768370629739322388576656981424510535633608246762355473695228840208517003273750999392714601387952330713161015473508274441994129451432168026413834651662221415876324679394258948312244789628851391941996572016621821981428216152642026180601095552146987564198074428664579921516514031702708321641829821192977443267859633747769821072621836409919501194808476634545935221477459018049252049126279240142441547784302257878995202560240153851176379679957247321490676892495930320390873522695629938751888100959027762855002191489399727341561371876559684291344399844112249669473882294942892764853629796466846876345365461308557419253544123648362647986208372293663774106341254439579570809339544521773467718511840867972957398656291610764445038134592482380375753931419491083618476171655394663670638431381246469302296148613841713739164425536604813597739431025719247775856456691680920139494704858416891312505974534971510938914099902769787029866428021665863898699403795529946428094114957755843242004412750117486968057753253343324608357157556562341354914408490175827234429303450748376973892604584730156541386412877473133271157408988484591813684280224303517173864422019533272719804802962923709295344227048875413767792096785827128158450673820902731524750518638810389266761179407846946737998870117793985573874953073581229969743931624456677392108147706395560240507688816711247357728714915126923947635590245845481980201821334432044978763525154470745884452219115743661694328508579954933389389231470904686717931386712953835525074387049668170765545542512239281784784749374479116668101772315587135727690658359664495470273621565000102743775172954342789318783013628660148502718118451792082511255991363230052597914480791036148948511984547896086189488658376500968648443369762753357342636327336534959667405403788526882516920300925452972520576320207518757061984623016404426637372622922362900607824719598936897499607456107000983676951922405189540655508531694492212571825582289113930684385047871878848617928589156146290344994511816297005470577381050749448440922770003078520783840183092699945194327734929705596646836823719120525962233131894779865539003523724769956538232970489299961792345038809319802259846839522059719111519146602981721724168085477252580197737692331003762380488381607349752746782373691685683358466517923271398105095837132888300935163461015456175026745117856694717202811484032082879722757054462912067295830074453925462440041134481370238307041970970856174754896715149238388261464209651186416970296844133958795033803561853681126660901655304052456231352197341821993885326470877865468378365238598344299768117524186444475029632709242805581079057529957163527185275751441271845287998018085075786060612848669794866033705962953697935979531846947365052482408174826055443333534122130209558841005564291468041342792675734971088850307014376026544691511812349428886169661149984073042292992861729361575205318105646404663511575232164245175803216949524483731382398912655969841974929763424525093950174546936792514842371247707361679127098388952772065077626420961148702794212233157130679221439550793929790875100283296105890597690429221920573492238384432177421959091724847240992160534352455114603290921489368460576349287632064983915220790558010810833975735723269331915573867953568679698028930343166077498090737423113529672075436080180696027038430798165203408133964084771163883290194741980496463910424884631093004686801426499215672469171241021373058140169775713412020780910018498882361750048934329752509037573248332282980208707254934724717023496997952056610076305338554864284852719781216711221198887130991462252746022213490707581863670051150701667947032573714212920972851113651523586649520536170814173370651549659845596091372831765960279972818556661717864239681286986877346819457454920425568614280826261942656313907293337936246238773703727932314034127715211461374918220239688774664974510367642083245245144273262343438590430049014577435416521663992263513336719161491338926672672665282291215031565042875070806144693179853906510349096139710428565189592973666442825393893827167520826899598959330700625981062707211125415437296562595985842643563092248817369083586314647563661521268253874662307291666626570259341741653534809767520013278895958800648967642920080610043772066531138247383653881350664191281559659149296054426820819486618217867760770636068952830760887068076109227616881693923256900022218410547715457616869081717654468230549312927312367913503550152684635500488988719831014856027158982653584105676872264193205309003810140104034624501996413225664963944984831496458710759704634303054070174863947052102758831528065179786125793564920242571248363204023904527180300958371868060881529018907809588076702159453127672652133369703398215964738255286500377280059973584971255683581559578883454348564457455677577015549261060127186902368627224734188337346952511071288919625874991328638790923701553951250617947346571545081220530539260211516926566900046466617135626024159059432024848944760668190761333590077817719529680717712753983707591444905688201354819942220287642719267216175107324308958791971531944040959673782712810873143493688717686846309905894536925624103780680246422368891787311150789972964653963660254709240312152807860731061969811764371486803340272909527275455322321036766712702937601414494290626456456076691776546386101488996136530284221863851220729944506259731578276230164572053181572071923047753114129867166215568699129567467819899839898299598375527047265628622368465302672040266369242388283972942655239418936675581322932598535660534008874185912115387089388545032298405129075959172639890512120034479883956134995636478894636733760615737225504243273252143514829960418281767766788022627756006817747894539225133276511206274314064661077442214004459315012473231549215695595385182757108110221881563591292023065051455501511144309739166926233454675894416773928612044281401709784494354160856635625104892591530350394055379253363477774146457539642087779943252652432093075311009401114237702079455274190863665180845030510318340725147535396434067173608987364462799282490382075758786283851273973827736515444595509500732377418779721467947076448015346641284572814615945316472315622239539651143795350218212789822539389256525593791059566924300521883839993066242157700593546401745958153311767804775994511817108843383565331352610225934786957894194988370377986811921412173833730640507358383956627459734079799270721110429915120130084985645764096055435620619592698384021426424701462387113423342413081915399421162132514114428334128463055992429634881661867696553894082962472662736367817441024456736610190037613549440916501880242186661184550718336814191307489929114019809042167252725892473539726252140086510740418863997728447502721622923958396286426253362128008041802252305228585493967742936058579664802603287934752191547687678412315401846337843367262147319969742402452079399078417083077297919522233409921841973830381037597882638343178333010888493275759807901842052566182905154566588792189028478710052420911413360548859937844777251779618131646122189324377082390335507117551422658393187522121129957853217239552376295152635269324341739959967034929876453744862424386811315252280309058744553778156918085251142020334952021021580236442721677334121440081535917383363591942224368891182338693535968540721696661276133134199785269377814823090730080494459039072704979405769686696856650688703487844522496074145956437841285491225366751622368510940708713740061568608813073648658707175828582965439242823722449014281656663412404710574445810514426568960329296464655939298080795016225713096911892752925645989850650774752505062115670892279298850686201229468924593969196534102818759868822768755894886122568269241585025123072316603294966846685791632902117830650419389813400054889235625704369350804911058900170190938578525166711586721234761123077334165468813207635992979160873999626321908857720460441511696382122071668274586074590698339916361089131399032220457159048971505141435629970488166423805513582511808279731815897542894438039610328114575376570367695633840299483968602116642396936427424560430428045506763708441152995046413796257782843789867445338380371753415115415821019187726592282931623428180673854945781686484053942558885069531856385132049116435461291834531162767950056684204567566894847416239151402686582004890081429235103301611458651291363063942066287490670628937505668886945526147129790272619112032148483150911843981433291825162778718713646508188197867954512654086253362636248447001618766425559301623816279992765564221218562757593545778264812601438946926274302187416614969322676300685920147480892711582364728155602412442885683324574163761987879146280753795316968174691242628202619989244085954253469903341377032936799664767863354426342444772560224236011285817683210163671338278919913150990039962335476080722667147273076961648972060828052418327309959676176996215071464468011931392297029484707557888136989281903857066649365682059698720434639907330162283541388375568084405744512249976661149416901659596172805315271287149506795122649116454352811066156013608997161692825896912511662769658940394532098927065340806062061196873840319421505659732213346119055785514171520860471850043247124047359986210663034998864857009225494418263204625296572000927695239908372495946844137595260603707579266463069153924219056445219281531492971663701329417331360938753943293095850291512594444820247974653072560014072717561273681845615164569113800183828122112307592757708043675396933901890827449685134321223311841335005372252100833682899487908919952992574721073455552256643775985332425228774292497143148142005845597049036593358592110949604539825293785603142164507935265445472006044967058290115871112083784376299839846270326717286729038096076460965522083875541980525076594421045180233422723218987395035914074186956379324839880027889303458176393309169695684173056386191799323941963334193243474337908183040099792715376528325031025490569276974040530955036151968897590065277171773922064528240777239650630316925254802043416857066734025772146860614495412762845847090051851346669056680385969649663000966763262386007025138271847418027939398185523186476761181255074194204134019754351947516073705318661179917299156848160881855863612797808412616222265678042392914416184478045979975910566956678553679027245228401219839368645447692974072093204436565778355699896328385542293346008433319659954996952019937174761142631224266579473936153647896153306078166906583383369762938813199890387564339083406759502010655557147147351604114610403815142157934398758617182768980783988124150572269714568671244051304454112409278571840265917184869299923731105862401454217972825220548015349288964824861071997493557344017089264536780651785677732454407227436022983951206004482088586515476396226379548904502491832226159332877559608820048047551952293362434194187251909553116094997267517438422595587676951319214785957241388721754178159091147121874765301605839852479838434649973603714266143306444367104895871636624514883287262754199704345022479999755630596592413615177132953627172587045488486337740490723302022337417096680354677458939862899023366656694559514450131517663733997273165605307268458076791590154425351744758468507083432361903250688011943216428518063280813052386980976573897907915473492403428724770561479700617358621290791263642572062124142954079305521467425687275126606679198558278726698139608948412965591548891444276719472805515578502889973958949966408560584998964773581527025302925761632447019627450329808675077523260609039627794183687390242140179522687054357069486949116310793611517275047783180674449676762982795634201645125460397606216638729868312249276883742777772778845476440639036452492544497028658363514277399846352297879645819615082617665511298415561952054322436513181540245376308645679916636612740182627077890756862000091036906292017534782690246394790538914383874728617731919115769062943035527912557461601034103993776952371219186326053784018566907237595545979740570284553822071117757510632861675162533790386698742703188547292001498649557632296750514157069866557280089375866178022884086602875679616354503629709010332218436546852729691282434517852979313959204524750840826719513208330066758207980141978325886105453756170755087951302645268583873112578475181959302679768529117886405103859968540176073371332144648987582500782945474983265289484798467393921786697255557826869685071300590256431943550513270521733863976374048502324562154257977221682509776924727909933249760332522479017483555862313722293939217449380871806741140379183329846723721416706332488369862732053788082367681422930040666287850468950784197556667651661582837191224885265515363553280431838383638266485469245058518611380013086534750003388572377012915137819535619482033299258464703593588788478472449173537456556469123876891547334491889541250262153967264761703755449882934600706976264409813663309067783053391986246117770581444891348644311659823202847061171199683552425506731190292444744560032509440314757575789511882413106174945308108898807835623475552843556113353335759185875463950754194458312509501235890323213262483645911362985461366464777593008656191532812287457879889832932125621011276289181002682322421722486307140735723743028167619736038144640509884685434732406878672324077152830557086093239444208173492298387086444562786615873715500000226689202101672347774486221848274680951834014562839716113671106024213523230880205596423098010665524204227996985985465867298578165572639054760381945511627788444935892963308995584945292028442905954920883686065069942787307195394937890376299315389614501180927139261045473216100067300532777431300106264471235117262519961960831493562037214114241782881416458522128001048449969668842185299852549738609084251008430023886475475225781780198303484738443677878844977730240879602013111912230173308749395984841223529243602706833498013100838680949500975039692078468092627472384073904026402616983536424609346577240572690971606271020370166561017941837558895061324171012169342912712777100397035555880670216510864516732912795514696906025523225632948638808083206887000905712924842919151801312237820211359162020661439503746998393123233033602639299252306729678623558317807449322301180824649985896219272842179172161730421117151795740728132769687471175875134476625547108111191220355483335177808151752143749197369139390452269292158831653889768451543069419818933522628211374145394031213391214205290343911490608660918520419319158755807313538018590834051296730379925551625103159755899456777255364629495057375467810252274966359390066447127340819637796978583618158594645091775852142197491323002122440686019860743030754608363419220535371152727677692794355023355294780275882327933871580813023227044112493010551327284190265534056421192316960694803604439558023936882944925913654301797694815110102367872355414658578351045556156932782500633402298304579812005221341817401120804737182291825935866169503876600297584244390068263751960787689599102415146180251702989002897335830096238868991851064742528811103716541842229309218622215506706870654413225909384198051895213752994889266731124159090203232038837361833859397505746398314645275041971644557777448178854893461989104397839792547792857809222078583033373020066305423479037863432045127757265319819772478399060968635854688238684805384077665133942203472026377948187681816775786448503728141600866090534961390402257440316205530079066209114559122406100892294481806461780175035220312716509213687389397549442723231834477690813768096139824558232328069957746912936320015015672003783411414167943871176451707130301037801162940768260349647066304291629022634515484145111893176815857160513291036616516875132748758166761274668148306699999557067864543402340933644654425443290660028913528644763945244235239441315435000822509834602048807969271333661202378803184750651616944287432424816226683828490748411743415042267527077124075815341846992824345579462269350175486318933150580510273308032396655862670841455774609931131281742038771811888201911469926969291100178345821815447187076750260352320946752473631777634460651219516053129447581051344115114565213037591121508337698539268592350994375549267785602452502594357925002564490511408038048784607008020544127694003168056063296566962941416049677031335302705329307316148685295693962862198759444356588718933656718345682148671034039891821136272913592097668955343532119455987070835999473328402831420063812540414248039599742436732644549874909283001596708980478124587003249019140911658593738145760965026782076398007427555096073998993251013465017955864955505673391519386811045497226035726065268248044453594992660011808991371139110865741381918414286982244575457840797947975403924741368292531618356431429162400297467514708864650181307312027876664410435155296688287422862977418123591342716106113166147046712777398557413083797866436131673430409084901858116030417175329318027834185734851716728425148525092934724140042831462874608838302934240511189715202049005231891715213799281977453459379343618490499358103136664994203573209910097689850275553636204701093820667544528761766928221096506496453335847851568561228791080100721317461883169139742315050244365455931548351548980501022351826692282973608337630305306235584344578653710467712753164356325164233888123042426968168569430901134041731953140809293819182710827717101530382083278703830084705776810496154734847709904351632795462303670468360698989854347069411560037309754617492017919689844532440726120876632970141992731929096603305264798665757621731276484900440531394831634110087858151226732397889807505863171822467561725991468304950428258299090874869452535944021125346428251288275927735327485384847911878214386913060852588360242267556551686146583972728874691463511716517138375111420453257024163090917440308505901594159042004561330452700936873097767212897631846632620657038754501458566601310431644542048059339913242732446197230019216613332244023147813052220567324017850703847248150991282394001427732276651418049959996636028443174740708291162368179718106143618799724305801318891726263365475867682235752668222976259798882510030513027703135575548653995485673690502734085447539564269433026952891349504184322248338812973618124951911432786788524374909744093833424016819962584483994937573369785051804048961894119249645104005977035620684181907115429941288254109040456749353940388379623778297119493230827798600662688332608696646133506812311514198790252360417126037428466067572978160111680956802637637637225629998448467538809344294660851500143057935573163880215560331065038197080698058036753400697415545663036896429716835300892082247835461673283127594944515889972152869014927788172214529351974860756280469305532215859750342733834671268280880907525360587191273615035362710349161208509889647273581593155348492471972041204530948008721336912621801752002417576096059244337366352483895898419214094676149994806799205393377914762906419431277327565545668007537616670059904036046129417200794427510189296073239881107543796246041067417341795443600385133555319008137827293086481063408242760395588160669956571472981771072602765346556215818196485703569233983692066210428346890806563040062487356828303441253439637265221961061381508292333069599826955384815911291519330465215968290300344894460378119214276311520195090283556150696545946484188665918859476204418212941925580433124014831245335466623204922150490611100732197569727388130095100593595211393999268812700638741316443595960281897063532229947764368196554204792774215543492977603021266365704419144120053626731616561451185227090912847539302731720864696701930720438926671343303579515242311855536554815895315362839070113044053574591578371086045067138527708039975975448699251551471766142810563906405730410435983023938650074791663930183364273160157624379838268635484393608993461076069755429028077520851182992752197082691746329814621720551018320272512937258670165521571162973266317895243704847901355955478488686439999841164116049234343443975893307876088737372588718285280516078072888718315599642557420384468271515991666019359684433661102390824526974237772851211566778525044267495211439651947730555456393741283039522642484110568127102300106374094908327146690248263308134970326910723668214304501475398731451528953687386846562183097014828876069903060255480642641070139482580656014363348044206885982162026624691171239406357981859385717991816060923003824071522404706424982723830530538430872330894698058330172555106597210330493489774620078491662177125674314159389108574210705626085729319595243601181596727412683755258258984724104203770936012539627343580441065163458640378432632117781708704128175603844559167368149729009357987029484757926236431588789699576246147571264261331289216347373782793221383114596608701967885640099433286397466623363464750781259696123708593439304622800231206844767114214235801758366171199932207271343363761845870287953382707451711456442746758143931293935878055370560300739720798741105040319779863593042400553048979890714742609590331913911755609233307819502471404034008704252255879127847292121972557336994422267763584239004382598396141924087861068409995760779602454420386964523848914055468448399509299325154185820259802280463171324834992938015199887353002463083105558198659406346302576140104658861301023597533136171944590798174771435486426960048914393600113080641580132656194529455140044812055917150962764460674174378308546645601649677170133371816244172022198576270485284452688693132141709382139937852993261531169217025339900508978436030734110454534012517310241596359177953152080381169197790407963158717897779027161285106389222191750608376549677779448025862270658412226626918670457207787379733184844428423437876931889400045884730125671220809755977530786876531813752117917156221897410896244342772257602528638091699844717740373835001853815462482294394258302335902740942768174637873383532691728941339656672316430058356474299344899405571954694770857797413310898384922573866853091232548980715614434669998623453650290321966414918266420654350184238300094030253213145150541597265240244913074627420733109350398009637489550736495527711138793458905501208098070140726812428447865203766894835358411559541264771419297094201261680901536620555688230669786298907491169233390554370128023605241039517277198121994083229120165015835627159367663079506966000350737685882821546364905801915188849929804770501130264441864799771648676169482384933572107646497435381385383862871878023466379088922244326248428421220228964325905420453979521894188721655695620031203888134518194462234003464562789814622268770187356170801424961181324182499428476929052891354814157361995397965416777162503464017642571791188676096691947767498634514512917898707177253429744114003822509370777297522479243030070721755945961126094269345586208880485464951915523660774375944740115416908959888054865012476138693722354536707573027622543689550301772638889676607226826413942128862432774375480830516365965928233718471472144365162611165760653901370336019832011406264299505836573134336106331087722581016387058000765564622361784685482420771328267351977496114444248884822913666518371443042606309010579512199213355599929036878300277356196378200786368880034262534922036825941755072765716388504970108852605290633761105848540434152075977002914112838130289554369936651090074237544365743217621551083023668775272263617806298351262087955094115237652307429421963699761903669093459161505731682243513188427535273433947403513642844203950446388936698474176950217003345532977065522829280703681149869774130216709009537965308623179564183734511066416648541852148771649207073563863029185191699359414447887572636198617089977241360143419420243434326452629482345487395328751989658445601593189716400978177584606240126523742912730427260862481439496064868198912271271229233256848383417403379153071408671140977358898642314965385047524136836797820499776754653910162608176059313799171647723283284643551852774808987364889604522563150911635578999296220814482938408054038463420946211059157687250129654942987215578069967308289849960890096819936930442972687095330268127837603830534867459800669193065498248111326664011260196268547284965614905249456833811604799258347786898321454736999352174692783434374475548326471106201765213579956185170241061541985232917428357411055573750069193759953407698141151631073447335508650522379655953684039036676368221649733621573399105784913505404414989103757293165877015076817260012515470788194503557478665570163399818228935190378022262061205847320224121239275129906092140652661521109118875828527897579919265925019878361946767894869080256929402945786050896970855394371480940746762041436145028611386551078011080290873646964732017799402443469751780758775457181349415690616190532329821017104115124695443837176569131226268325420409782138411613843831366279692708746873469402044021749937169558999936693570559477959117787396969154209435515491246542974924475672063166089017341920867774215159864308703774149098459384165276904579476821706492764764746034899397232937260968308899772414141549299655991526500049885188418128973737883906874882804336743031365290485708393269685395443461620127266773250745190861071161856473461120204544374438561798671803113290784580341240771702311852082651509112594085226479873862100008584252116126132508906059327275483434636729134302944844737240210739274229060576943727361009886515600262825462832229266536193676354134337326824155329584313696366780460450025854895434897650290653745275683528235411441414111569103165648179883677979484653409666818106338330717944633775563506990162567992820552974073632194452327859810018275299039742579993949837562339067271052840813469528118505926725074527844654694182375045088614669753881672095459734559608207501292318524959729802034170346372242036273602063032745014344597473379188513326408711428681231992081679695324902843992317356475117077221973016522698276950589472236343012946832402487426210214873351825728277529085941173540638200794691280784720724246104948820367336128609582249132372071700640858344711831636784773590754135674957755226753593468450065789460893875318606546486766235974355791316547705493942416324370095243719055325658329919699063519499400935852610926367559354935858521532714141213812080326637761794660708909877170461719213138301566721233254358881617221307039694606799634751054136541905530353032462830733566066582276660066511971514840799256568601267303766907241039716867320941258816967013886577771404456775816751534525825692309482183816273181393625023316661022609076284193016980308422625794990649928698880837555466538816110458647236079631006060976507557514992977333982883265261965117925064594505028849565787310157091472547535146295236363000490644391498626023704043350153566360116450714093974907024929487244195173524661005041919317842879681253817252456634062139641084181453503536972892559547558946213324784372079492613406565164012078966393861703447642379810854643856927478863044383971914389017726648709847724718063346001394918175417833936074260136995837194094719516325398533802239333431786625186427929008700132240656187514184846036144252968246117176805145458214711845395581630147251405521718206878713358779677402965815752347112221750291266633774573242322934409531134968573981100273351911921874289252620779897368728784970723385333166094392663321340996804542902971968600068343598497564925673562281734800087005197217053543347776796138623961312089351812620043823894137071128013599571128367406762920985909617313236956240143691797946781334579517274620156384404172763073240112244393582052559190984804823317085514709870148670237553580270977529080775187449287137105958509508090454505435794488766278886796529372302139621655237459632722668924942223724198966801839131715862745504698663297207702410056448678817635948448721565326530578010201049359171589822476810413978936447196769693175239355094848390129947581628075383197659917567397786816753939527225949314002758617303538408476559581531553601435434783347667132285555683320525331602388827843120284456329782276390546643031417727618840335578657564099586258739587396186065025559286530387494829040610042139505996472316965422126203683296891021406891800544994122341314935462984219269528591661288975491688084677124067801798309602782355284890538607083136173026225772864578586096895739901776994557349243450049880285468423339187755372801654833450053228981804691632326962580466391103085952314361834644461365038217983473196427105305844456256787878432599843846557443527687373055518944264613831557801629055622987982457332207747177608404916514781589409918328629854626323105010326931451607085078798649826260192623684331161097266765428725916256244940658555761380487740536859911839450315608924006528130770411391200182490391936769110969137558452240413428192453416474051545539215962537607459102478346086738174009780782927165616348839061128593437346329392898217667616514923150583295657069825400705002425309342776730512904328847214802966123335525110776470768022344756597905109123179037857452326992659788598356428744326725960194852995918160965602649820740394207510157847710470494459621382104148472504962830657573757459729353997508121002643945763711423813385235428589759186265121717324488260122865748324636054349000236528795566788457763824022053044430903091702491717288369709670476522710694878685835921098325129734338383070744315661419012266832250136264934404791534942672063467199761132579111357257607718463478866592586643470668672951367506987053653120624935310324197370729178575133267488348136379537532265268651728429244158436966874141924429572132625323367287201060168503577297824436283304620615493828273088158150208483484430792789697954265539309542781785383278743159562849633070575111376743770930676743180501308343111698348020928512393490549126316264947546713385473951615469417395203782076653801271420232745658414548149029427455010832827506156780611417071262858061794589129409928338615890508431746721305655502605132756890179585242056003992690167094496408589563242078094070173223440499993942461344334059795309928255554411298409290180466819870153307710036396485813975336193313028348992399860199837161408070707788437248810402238406080822512032243529238057957658680471347438379588597030707438073467761772397095708159404112139690943486159047262155808485046925272731922269086171505269745519238880390305695201944320429105508005053026162641260467268257171582811027537263017549866165615634010034692134032108844412511088098920067260733748958450185016128625511731629296231085325346946670939190369327211177760498324331891928425154113148613586594252633454963039395767765111681907813893904190956537254571812168411271549448461163109166821314997435716223642354222167953920704920784153107668077367553960273347277426166198826801431959655729325575161762475231188649586044245595120320464314813307108513528427001451295238796474433648548501405944761067693829435300135677579908106511858248140897955310343808946517111628633574093255816898545903044839659757923340671033969401628439205303285027790901661469818449206055295246397380601581700607278176660824214289257374581056360754708096293953645441551287874912424691446806013188466256364437980620270656808404799492040786064931899205546016460249534257899780705660304992633186931017489547628157159870079999939233281351079744901354922843827373945737583452876183689367056670457413756937296203915778313995574943579609903415864222689898707406418989442764217969172988802668236109403384426143845433577145700586367158022223709809949860334489038772279738431706971912864116265593082816260421637242243305197277684678060505201150790340471455749434491605882167027813281015365747576516783464752457966222491883750288427398299487812998325146732925545385251241369355633961928915823242077014491873666908426746459374936275954256508651483857939926142511551338805884584387998428360100644048222527136563529244304083062735499514429971533349059352444681412197486505900339896721145247084668540289472709744493644480674184192263737767457473211291046413859765859604932816095651672318089059681761437937983818931847931750895818534782626793403711885676709982036906644626066099268173045535029650007101078403871359757858965215321230398529208466684016309574533633234753961588533351703102524178656815117607168131930576953377789159595400284053294283637190290878500184850643599732258668895117117830050378344199504858959921148735741533057365425338285987499466219089368509379579177800922891833951086722236555865698664590014614255219183534957651941004443813392316874478615787731505894658334189318698687924040237030493253842836298911183741928130853185778971646385385766185455802621203641320241060456435031150717093133342671207812772524225391946327933742483014666948087731689440528593093421864961691878928306486662366070013998726266347046299362698038572310713737962069435473617955948171528177959512764245480909864713294408918096177207015022509191250386310748876276066683752533202066611047943994700909328494699813059287067691744548048967756782410315065097831848476280692964727960457380609192266024820234650915844031568885333381212213152793186747384027618897996247102620107717829675879978462446174763306686708571854330358314130001477158395352621248346412207535581866123285709621117180471845815201637696541434998741900458105101917447433659241093110187783448290697159426400839546305434591796951832801949765173834252120870854068516936585698574068929754079237005315675279191185709229881404934039010749581842330507063424810665406325578429018421002502358473951709534140391504384595599634106034301923793777904212260606486708549542706362210018710210412885851363573334365930998686683331661892796456462887968332320464977624974565479359822295475002222302153671529450794164364110566769159588835708307767855398311781366971698993942900471431640720897369393782544456618023697030511779441623655595342769247602929655619091438931260864564514537686608140769668134097237879231238462229878031573082295020167173708461415090773125182872792004355988037109127699788880983562309290935678976092487279662318932061464955590338620689342411886497856524131795714205354337517220527834954701249478130569242142049542601951567785597857540872298143985646452778125294436111275150071095054999759654819024093781650710531166787429890167601005458108454196422452046057512950084668856798484785356199290851926629132048010413958431828161637128590687504309780071947572765259432044959936521881774295020256818399106134861103531491277993887977211684247648038884437523573067400793828792584447526553839654728010136153274934481743331450971897635473305386159455780866002997083288725976247441715771293162331215588464976840865563498316909315417335048767530334260226487017620413068223802878319742799294435016686839110684451239419230888144089318823316815754129751249302030929332280680096707717852070045870201083097231082615628920323490322070111340174295443758519034127025262760914659100302447424184349390172543127856460332309450252524041513798806580546117129241174546688973573248156596768094367932328858346117950975851761094651437292982331422519652510967533257882815503070581873970136913069097455363695919748651121019133804396573465112058681120483461610597748042692867187658533466886350957108731192559055123994150445050670761894097280809238982734576554397580280676465839873541095727550739097377776245957701683512142546155753678990814109619025087668853731239930756920398780106278222518267870488006174170850023290808343044233067668361912984721953225770396781674800886318120910127380353582636270994028293141855435330794172182153164820809864454091893805382369591800008307829106787311703028511872311068155407328341202785540099861360009781378202004491937567356214758777090719821192194063308101916143487991466739333407696692552868842348393991286964719584061868780322613926717721649279088413754024844347042077788995873025765464547573401053194168287316344089568025881523731578678569159311187176996084816093109584087724638889496930579082476227382403935751482375091290458691366092130045019831975794812704757824156526076683947426657295199562305194163174267307993833647761642185095445851915755950562491757655290715325728711783398558620225456453464030671569909608812147293164301886157281808480043285368304205140058014223856013330408483750653413594637202155218934745568149304550608984473180890331776041710027806744115376895538909071309471368910331899874245210327184456144197192630325156538404650930666419797036153350207410829233855835428363491550649138591950504606902039864676202297458424743854011412286081855974913173437340350709165638455094817533628631505168860403626090457476405581722606975687094197612503609127108518360315416078114065383538230240091617812406393371859573210271664747584768917817791940305729970754597586886607696452724516997232361112708980125976797752364826089405305443570743590751821538617296272121084073872915731206748182902989601652313772280557422079667085554754968170877804211972272197476289197537866131415115564773714821182013170867159232792029367560705583998673688070616979245246411975443846623228422570337398989077333877651592578696679747603753890874109075705478246571630473191216342816235262616993628827458729919015040213046927898736094930171787336122647061298142778257594818040547788814065634141683211485873976211041152175522895297200426839798159568727767869685545371856984278664397141395867488936404845175953133730218812989043153646401546601354447393559593921543788898584894298629987269515063758028895711321179195055920855964602119950245993013947512627759366077999059949608609495856047945544511672964174175097097064211298789213094280488432448106041192378725648441724238991594854570712953401611900238652549368710899745341351917657108333155397015515255313385822312059552337215688460839524157009006269036909987418362757509548473121508189692279713769261749238093697383816274996154658807187376173167728770573298049707284634719340911177519771451966180726093576137736227113611718614127764284143744375030323858403918839481683770481718426989565014799494201050447461306874832799070244089126695096103972259181818741098671750111987069554256895956191130755975160185549622217504475076662132083590184715653426949453421877643402915743684307687977620148253505429415707786129661823424780516645409915877009579754242853366848188744142800670870282246521997080824030553169915070721283511356327749812337278864793541302811507358513347859036408457529253319548421547742244142368188100359008847230434024949498240320649103366802341499837316134676915417590496269389525596862859477078782716127570358796219334814178551999323428872233155532121323833570669567815448101855192092454960664613181880427370666736527331571469153453297216901805226870024947307710166398558643373758940313490210608094522462669019027931839670120801895756007203228525649463759542129835445161260680078107680079997858473306981419621044512413295595901005154403419550414260369242491281956561033683388481726299402375389954864594419481475586501294227158835588741610125882262328382947582614826875608149046234362876942423080209039151157536330668677343190728740367210675784186786861056258846077774206730822596855096135796616299399299120367652027756207099104713375905754977951056567179193694921572431854870298546702484023924698695417056210122491299989517729526919562121120976169735569188127284467935285321215852048850798178303917847886365766800962490601379587861962438134487422121124002869592931449940212091628312217881256884000931267051361748273248405359844101072483976845438557229677388356346764393796364725253240903602368446169303064265151682719306526806087081904636722522205188648709731453040210224881726636390664389974335846852924159706003139356085344483423422058313662214520725892664493318419699812160622348125747897213846846451303376920288900343617869286585396029101295541540783292618555673819912133802900233260662758628098990583419081414735300996046013700744526244765403276883457527562211577708065978263263341138776611693647837420046687291677299297387216170194343995764784856529971967790206964667713869180589913141872432847064047281725891761038960866245197647598769838557743491485878852745498223359791500280474625392432460171678012722720257988280481070433249144255249688435397724082340641926710974416151383990311749983780848063339943893098539408362204260001671432987912068109398384189735852380035060255369520924932307074920253239309611340459517200572100813058887923982290698841547835054476695220800858280125199878460621455832713379258729855411810881900125110991070233776250863786205773130345928479563550266027679330696576124801049211405398924303506697388033553383126864687059244283779679434416407993735618234361527286323559468541510809318875388212366820042507845079376794362196413618499112046496440184880726596219914114083852675445607343000827297142079872281646489114276590770041032311025001479773268289432838007782154035098161870034736628392837530242224313223752075517504110784955173833488036673316356827142371339165604761283132730499771674528772869168997923482617183106364697228362787134603359378194021290210965078914558470673416795692416697720859524056645725798815966747717000564933401238820927792950811720921048500221866016365241780613118760694634860588602507010442581369909251041754899902772143748837168104795592662742866489505484544290538101633429176300559228768376012081022117155210159662992743710917005975896693718792134890215930999243113698734997580464149858629174853433292289254228244809643967866858475461754477279820671523013175050606072437120039356198507095339533209355499322616387256358588761668309516036454006809171030434754385872986774985570176812700033890464526637633770152315752503687980046877932493751008471620601281200104394450719422039088578544093827032841624394511542915019666395330648839890507920753403688613112858766799371957041653012701656821337388437819489451036998567703110874705475396185629228510753526813706499131424543459325229756660542198086734244329912787865860937602031581116974784661248473244046754135139915163203024873696053364243335032051757734484494128620770515535871682994814708735902594222907563284474817788057031637667441999277960907487429832714036891711771574030795430563767952623865555865996953383898744547706338343169436735809499601678110096990764740436780939562541904444317665909101098433197208866864232233666604927171401017124790755083826568868635034462335334197169438546454113529904052003413733799820797246995431248470902203884253455709199126105228119987483282976344526120142828475522771253889081985730513605441117045830238265043134830045339253088080236199956357605240246743157434587373575187602623640184277034041209041140948186145531086133966286893119842959113252822956493833373099660479630769941292085241629444799106321422534064847505562936400894476978339750473413566520895541927351201629641006580981194955891237626552383626586112567820105990634260410652303588510036686514348264544468184758808862993153467898963751563891179364954346580358136564589812549134747713293279583818864054200632308518184086674201621080790764650897233939965427664482343971843804191427115245027940883413851454668918997928865321589806706716500158141412042622391405334286732905258548436597047903620304389096890406150650711705477523588277454391901048001597800594811814657898944788905313251645953096979229562192243640605716365654558702069585970055631825909957724236949665853620872380306195624194032891675290660457314322260756723606657673610508996178700496432061900575857700419436086838066758297087812381930629317769785315022098566320015095417129419055380115981583850982228695907933165183117314414066737616986515482767462915958797675567641215315700771212852737074816172114568380047578481353540565818178153089000863155758289075856848069980650925368469783139482348582254596965313601395666291034162456366919638093486557241418729436512905753481076908892878164716877632957051931758840597725904486556778528505934198170238243689229354667886705797020562750969248529441155552962365368066918235943353799948237078497090323627413131275755362485819128084638856635174579267922701801506686103167157215106215681347799590233914309068080327370052750489047762866724110583883016685465284346667943910472260937862132394580560909468541776008196222539154922942563233386023680621085370593265277876389942023229376713295376097218097106110338324595751351853980228514848820670455777165729389546715907209117165639806804088366767253263477999745480546837499066304668048982266338429457964716097982098962390937804404003355513874282682118909911170256412144366443173948662913635881452556856313593081597526767043596950037848671470364965392331059181007267693933503017069409156628725142608093522888893135106897606474275131758899746840847957853454559459546706962198650970515483660800970345489167413245580727909544109757189037319777169523883993904498824679637634176141243511804609304406814657041637273844589175878067649151389399537832004839194138176696863016828745280993695709633320044648297364047868462980570604366507760006233610993933502229415370222682899925575971057567887348844377389258287244459927928081474596407285228653664143209934820503301849254197461398371981888716683605266406994735714777398871212703348452860635491164240650586868734724205061810233865221875885937814646100904123322160961561746676842518198754836935864234572926303439512790737827515761801171768558236982281973865115534122626583595976678321180740849892666285064640044621354711996867137596849426953080121343901858483254745483687245143771427320574575744154405722425982034539113682430758696761941896320084003736564635570794185830299619178834571347351278706311499109224291287303147834032188637636650111720952079777094475239899992867992551228890845592260517640262204413562625542893808029793492822443799083601848583864286181457602291455155402517886798115250112994271322563340091245408322008764369639010567430889974444281742555879523988891221069690790521255367597391189758035201322421693273635457015980668776675431848576100818428183241266245273047693276661501866164090043178479354218073832974529394124441625024780377653812528509614223030156046324699221727903147848305384624568621321707966121217557012835411781950319285950395216053066023418130903664233408615296891935383609294032740408831937021191896749998714491366650085327625004560957792193091403960144760649766018305298339378376358968319436342854101968573311911364312945923948951492096516882242909156030545380487074455928447764879028823541920119881745910824395577592453958969906762410297834099443778815969702184456485261630787514921051971910072165768841653950387595525987042584862148768540911545959938048263998529873487133124754772368484412830326455236510007804716032755658137128210048661996527174400650244291140484751987800900274682538074974986168984280646760643754560162814544626726115548992425534214242324922521726009063512850712189353442769503409796444546045762635193925860595597303658369826949847724896395685858736555358599890976815535721365583880637286269970016052505599678464724460725672829957292266997213256420888110923347384574453588310629496231758605050648146958130590499070209314648168388058792169297972209716300906705718335321448356580046259512842754084696770772308698791629536696512604380704119165122978757955739128380380474272674372468594106582291074361495333793113211649504654335097168979301534166451647848289707819377103563318695795483337560316742550183366505059715285439800234981387666760375725379946176693488416097456913619165628660703384357883439590077831484664348167095972685637926241973361849064744685102066339602495554188636346628522837465773774562267878589578143596845651717456717424440119806836043538331562970130645301986549663009015201206299765037612550174090275350895057416995833458303193069994826940255765011957377610699064784441623001399160792883144196867526354772210698085529294930031693021982655570030146278652803507062882663528627347192275331372718943936719078262516944079460432389347520296511150437352298269349290221752871412812655267545512786355949720972966546387160061726847787649756064352414640789496849412967950153793869662993698259036616264394571393859240228248507290864917762147823132653098141163885825947290943527089732483785313801209803123320422802119035131245532835714276394396843650679313903977503710510880065789241910697865138234822146024529274997456936508887103753123857140722906788670748905236326445853072804702183400933466398539840229074521211770017559225348517505394411120631476139475550663172590499189306671988615480904464178299254915581332517428214849754875372986968069568565717107514418661130301006879958116419649733421236654924312921387968716781534178697186180712814006088924606031169205527994935854478468633189553509385253467863678966656171020421469846703009232330606337607264108551769545445477058987996792957810749272447725579242492506945922107386444316095785321847183861302675954869322816922887942690844644672071953815326684892919030780552354001197557445578916529136978655714541397399631222834150469534777932088131833683990634316419961752411503618989516186347182103609156224033377494735088984112710333516158434765959055969846719806831263494572616440205262911606133058345014314369704755498041450297946448977213003350151879314196238080877189426557549006794213865334164512423772287490356901202436892065446506918173789812676579666668627965115643655515994708654223976507475798442429243837236883415600325970648192579655610836206034205759039844841322000559004149555203540550903024589581097834042636497161839262803369514697038842915750335217072479128729043691406709213003816808496318312415819458424019232074489629286937893743763058718226568270549590512819413862991735496078603688861911726755908246767890773540134504482051114711674547708760015423617993567485998431239954306675214665805547711968814073256374365675633342922937787441737227552803148468261575531104968559920723468372295313388110390191071550244110285240130054019861189180365646284272793384152363809467421871075798320562639296792862887533884409927639969281770304195823910513885601648676764907019526043601842394399999918340729761638397880363356601730596057833966571260152648095066165970359792725619983147167820187076714892709437006067991489193385125072530603510084824629284972453988146557474332134412760296439712383885569094610374464810424606285140371410766944778341057751099844540845486837723071944781849812468878563299564580211149507420524387132512722526691582806066933000226586400894658042338474177476993132847772473388681284496829635307875711952533692397049743564762680750272003153314069331025243554500184139306847259874423144696053464978817867616155624052189997807934558568835857330737738481364453605987470403566959596374415480380130351826974483236919973012550082362438350340584345978723674566962888953932415048331131019584817019670992068516116633300241624208069211190811430109840988547203414751746980476547200310708266445740090289171249126173707278129319992214137440549927211064195468159952249625990756814959222410394969944799796412446100342389479809853147795807716625197923966753545927711588843067753450073954600577756197229645229647924139518549229571840421535667365882425810677170705414393959361346873099877794088627979992573043733411136496494341224393135380732725062363604915163094078264767100360063480106528850217359072110586557092944340802270694640118003209238700036225099599808781646651750670871680529016115187547754571061643156758171150797574597522449995822369114827890591271942324691886453304469731284978529226875386458982104598732267682775325430679093711686692823358836394036638389655340913041440439485395233776412277712781980820422165992385220914375239023674287520029674868537899198372336376371741417297531079269111254635854738709906385678691007887704616009549381813502137234135072318776255179369457696202604733286262283937198501850014779293212134351213247318196673548454436775760292343876138004652535991507549478691733446910835752131024239776221445596191709221327118545970127985556027203606226063898055225560276267339447664604627174511258239256899563883364613659291394929791690982424450690043045991016970517089574726788246459321643198875457805884016938539493374821838773121031219043326740417027600595974250351124110854583645809154494670508393728908515327789927244350614984745117022221705663111581928686752909484545294851025221083457903106057303226965413039487634586940342971438341329638740309526390016528344649101060619251463399969103082383056048131328159632800566605027295510524742359695297269830737986266852290367018571539783539657180034435046247959814055554715136623956429880494159189451420600417939669600131009086473367001145976307292171252089331899668335360062168924067502075124623140063833721376978487426375519431889084861440588628485304835188488254629817862900162078010323008413279250914881423928044473072172319285153063884338923852929989736433105015560773449995893637076723453434240473779665789395208412084521568144482853229588218638897086574921105390168128443860797254728687887617104419809019196618073603973500425198735219263752706809692712436624756043187264814263975210386749194429181935030619747786818311344647423765448530593176862346421672872833316114958774187196309159075780155016057349442539584097440113190049076163020421965562186266239814447749628057364642152886332180509345366747686793943701752040859089561739844918754413949744842661019881161676401872378877600967259909850726603545361834612292200800040858005905761056735483902131403521270257346563889287300360104224557583692812293498887305056743873714533073081776488649507165425709248619454231013097934959884016287396529800407732777735277277489773815071095178214344926256143984792123166606231008275475661876670880621509724650343176029616533831047699569014721893360148404085920240156291688979173145884810826217625820838065424511160151618213081551864530521279526378250184505493688563366397689857417119475315634729230070574682323689852510273199062242083833839314160274442975477373694477179631179227530663594155295308997449703239946228064573185521025638048292282182916316451278274105622635884606849081746897260124275089686237656356744585352048026893103824162275937453628677524234478714502655065153516501036146368440137888188296402332822323560806769821725543668940382262856772725203296580638260288670817859404606614461232896008630404015570631529611407012089986945333470760933235958732976784872594393531250441267429946866223118704815588357615655900195832901237111472239431892738603059349185931238104160055713346664633728515897324376011511225148152961398538955089559570572273132365862423495084594291132675858711080570285339469509476785398452363260738796750208570064325401011846342813363073629376640352062335313671926743970356154397137420162290891236381152107525987288601410952613293113125062812484584671775316774135272050425686096514324776327143921614438763833454775888185191843346758221999318765884005952875786854216396702653310260529629432717461011890003037755172855395847592765377141689227743699208239300105730060934368860107858670459856773661414015247641206351286171489268847332523397202941671365742897280557803202485904238508775034790929886263230059351263547966054342204009931584340968545485738522468089964888084912225716981460835114902174014002948398574152615400450298385432442905063576097931723445241866283344920892295253701010013931419583018927723771192895541058964652366637441410599701260704714288982565221776217471943610884342012436298570689588555441661801724423342026176705215596144794113240902294868251890511373592509441492133176258684750851567154566838335830625809028910872220657897112469474195119557068883582288891414538366270781697222962047980117542686629010313509134291400749632076415760710152964440061305065116787916007203301464696862229233896069490421633934419945376018421173878744466166751713431245511187884785089335882819542523488111307083809968070809624825202794222151058943180457064108774555885866896934916421755831241867135438396640478898976712049890238524927566649661733462394885168406546705782723598406875802397411247390950245832576607600237544772732542802064741331318004735796796031145134902701344430240233820228518040139149780253164706640935455470413329366166554739593616214732704837383698073206194658422448775189683149630854662028730525513884319699603738488032256016142034252815191162245038198193348982128230674527791476248780304781667508757004412214044999315422259726232079952785151914620029451029917892560392373938366859068465775549606114223224687571690138074709736642284177132789938480372028459944256676372031572449793007175148505927734325483687302195424010846897751378266229465889478020264864577229323856406142216366694056070219486432216184022369112464360965827232303587090813142334483385888411357001759635798973783496008342999170426496807286766173327430078846673223840920127371208175056411198382288558207993796080060601315230715342741401504599711833894657134056029408189173313556466879778652681054534973889601311565221214160903412940358318838135064994600284526647525074645682178893921805634039340043594671316194035010994132660980393636579569428789708330686278138074746649310364694777290650470005995514843232373354077755157658048322099034576364008926128487462046074747366532304836076533624573543456418971993167207508359245521070085425747953976217947729179977028246114827897705299100745475298667420006458979701337463554325230630268915660770874199676687903385726250305449315586695683952107431574243498737436529058610181512131256700658868661204413467322268448545771888791575624830645182608666955101214365484061228018669451811658898397397022246449682654516865484344053963684806520012345128468886563462680881899963440442150284988856894080272355679019786529211588661546940605449000067774699839426184540193633497705245037148643525286992619321574740613022511853781558253612160742391295595323380893190061525548998621161197005320531834666984783223736331143079497107770788084304884825443564773129411996126204842184141103385230037478738165302579389246145782156397545507170751754107785432397067876608576281162592707401922756805981850620487219675618459661063679892278237703889111072686438509822478633918027025452153000246860898536362125811933442051076262941849179084055676053963948988582143935798574988115512424722955515170151225463021576989080862884095943078743997746837420149868218783609423108450774054857181151861906227356466912453601161029541445969241439939388252475803957661229471442353798028363407461075945444163039071198783671397924079918493238987428830628052143589061516062433332690700619648201914378470878311708320557720585579766271644944069041223334914464486675859441603801384733340604304918622043517227338040298613634174903810307522392197147207188179938367560871710323604965762944400060870496458755053395838056626738086798123006711795768918506505178525555110867328826040337569635320123691558831704047222252038644047940561883979142151502843119080006824425314806617980552614430158212268822112468967944885635931027288119589445410953745127849237716331650683883310085598366822873456726458606822962006884474919568682737241555219281323103634181229109423267104174180587545995247607381207153188013777953533193425754779518668348726435620014125923788942766089454344955743603989628864252681389282758131370887235675206036058743355808257710423018113078969513700499233049714879438887189016579152467181865211608935437832227618212303413094850650930534164445119124530242456129748957885585323360043477186123243946747142807567723487503573899799764685968326481489151324065004946337199454281290164639554672085317503751152667589222954885245424783187492223117014390178167171387376334283894217534616057399977401954487300373334867656809602103685837237925817487702160828851446090143826879050577558021778185211809666356396394363827911347372122194804078179428992797102997779467002576845835848931572231609257588326202660604051580938727271474919082145660601761682712300910727484748269594493934707352858850906778748565150465661633039698225632324119232087309361141023016981309372862354700201386435504927882505827823789037943014813689005858168053773842824440820057879549120321770322215653083905191085762416084014820711886720719902947851288554123325688524022746845236165759974106782553153036957506628558347002187182075041769173704786560822552478493350918233163918237705844450049824152431482809948818632546042446297816449759532485621494870097202465381900192106132978840901032701610921764737865978104018861515089138448482851254029855897202474670421654032166073271379904777479507411245958403702834661557400021622324192797165913628572692561059056834774401216447373629043682423151252710248282221468108399182205203315540063930046434489387586248267764700260735453175962936749479000222456195409078799179940145515718047590517940404409915524428558465182040442020039414667242581002211150619893509334457021082294923791718068953576166618439358067838166533378679460010116083863203757281014557290558456824118541819850364856415156759931791660244458253823279449594898231373354870746017583790238738192646869497465967275476457408806654440753498518971176130474562355927772363242404612408111449690692730419876923986121693653089814520676664608358114755110823314173195860082941018131762676986748718056035095733912706910195668841965385228190075002715871091439816806225580303194876459581881656826211427604644282101486310590970722504863763060551986641476386412455422398634222687252421447568633672600448224718739732758403098188917791620682156467347762682459701269015856166031175722343496719190950278799706716440855152857849479874576531849406771240389686887773963367088565784776833784070078202773344312569168991411059522254169386109053445054138043448037393757103105261840247733799482302486572864317266729127639086347009288972944824372592642138449342449446569097899820818163626698989915559209201447856534759604976247807153910979603772153046337738618057424467594947523927047501803581782185993213888242525093849917666958170050744060535031647012685757513947232270748272429785717288323003246200025577810717403133099537613165382452176536310326201462978183879275223457748497876557804512263492909033327317257733143069758938063053472267949258074559946014726084085993794687858078734735248123545822108757539285044790538546385308209803313038615114162855949856585055736949961353374793359660453601140319606815595031082428766062883336603967232386672041761528081517083968232856983895878099695514572859885100585702596955534906501582029304048205456029220601129254022568513670512951048176988388351401426172139154348386385809826225119028596525347072222075165034635066355430929605818394673385102489183732034411830195620692216853220218968127708275350006380535292764673216056549289953677076349257616032069931211881596091168940044218641236311163283956209512193708408493359624984638770758558019399744923106083191731463721634129476093258905981416718023501888064237669920400924604624760299795220766605021050875867699296992571861271160792325401829045778084522881632303264406176535115796551590415529790718097938847462087074643964140452912773417342960801587136505942245013063826032683267955490749667453949868623479363028841771636420108969700139595291471099377217219792876103880992921977634869804709786478756586114953163958152758631420491610904821582789663664104212589481391990205692041266371263311886689435959874662464849989879122360644313358021222248490903470983813303251793360170255772226225724911831941538711063264143036863060849644665335180518581816277411008598663932288732580505241478505112608506232464959717447315096110310301240333760612065657488206257115544545066385108826479911547380143500287725378745190153531001223862661211711574901048667233167790206877897524462599103502679918800717476935144740011546674828736090250584109165795251200127669219559742389273768052044767158769298437436793592142677856081453986241854818664429251679560420212974938401127329838879945090842073130358143061576381753238955909170157860088256183109871093382514820012858972912824277214228602490570667467176156399377819492953654243524479604363859890713933836445329456729217890401630308803931888738728302559879100183903585172183536235811547789718647036321701644670537466328885863604481620491252280460994242697317885305500758065714763134636464314773708102525889330721914766503600137273757238170201918209394916148535842951477149768474849761537646808330406431465794431354671487927242406749964080905540291182247958136177286892172866619317383986904713650835753015951323548457113130346125377619228902344215263877169886265466959072014833829188745057505065270210242787556791260026141833153616921338694119634037278695992512831747600437835369109962264814164341967171444974086279551730214719214311173896881502752566629909310646956739917750580440831399761357970933842010613235399265516361468120946870063276440206190179663436807769399231609678101430318387389938654381501634261289069313604020400253712494616016341034278327511284596827567189300006272209849300791650215791140310208917404977460174017682942169130611479459977675732614078046705713284089694194947501216398240095726661251344388164465780606041195902975819717069372001227736950915529194231218048323437003010650817743100592137337818218666746360496006182290969300836929254996806701454017843005910616337923123872060064652839140308525034932428908886873660707766592427999554005903686905746056008812794580714574036846788325191502830467402786590358312250338335340112112113853913726133018446499790908131182843119317557095330386933503784456219519434290812705579033287385353751563534593430580024923679058796464952292771329810471173917511537573183633864333214526055601305753549885120754370097298970917887508536447185478624136112418825147320348283468929863353782812177889982764436605650430492625621771329062814098166650377835158104252485737594279231092557064895800314530695868039369327710273665676260102754135453653676963065536410653587201387504491471016821258737862507302427306996296946436817824695172438679527383620595851036653531631497432007137376865755829745957202776545401852166981636404482994642241984002129006383833053794258034610553057094386188117390724022050859290999524367665327399895953572813500507645810613033227900631633272923197730979639339458401510991678509661485475870726577629029749669262931882444016989403403210493621325628069810811596494418841732723612969268081664705474262359806234810892956281748493740242796579996252051125019632642536077781478369065506618653293481244490890518597336757753928872588178640248115861340046384857740675108287695131095622299828225361045122217925011589777441759975167425108842603340362349591688626201304434336744425976339056667602469767506064188150691044085725211789153068094345382164693125403845440867635847945939653441129914145630066853151345887293888409038304434494430757448618073389888707133520939988344644950239994529750685784685534660907689712868097514877877687263817305652219223726351126455005240033987861796450668394904254915931432645820670721408294095783564597613266392649400276626974381394872376477610281219456080141478293546675645170299873309508160282192261943113103718739801693776899756096366240638918943075860808185466888182127568752045672041613078699844871634836263457852884748427568946902373664399152206531060541487707124087233085083708441912141265935711177421441530425458286679476840385097982442416950981902037694974021782038786206964798635924162826729578942339002117371035969698234255811555906590048761971050561051653209676698536485864099327985190695623299721152983584671863895563264916665059150652955299896653153610893932883516846024758581610422146132369197982136722999993372731519908388064141418217249395639381728084794971081344786101930514534835234030870187862807721298645357734801882492083934887802747857590272722094098823678947501185701728163324087368819998102857606487710427393870903015872818718756325326217282469420423922905259833094707873249971387934059256311631146620379426415810621213315736154182957424908573112613341042186865781637994986154532354626551249911003799688085578334260746810198074939107580856636507779299639832128771159578282783504197414473422411493421695303870125329205391469961366370521055995690807811012560834464641989486245196385478837610219421060275122001993214426128745836575887817819717422969114786709605384660478770876634313296811811052110958934027454086007769460142210100957748213913483453560225217786279798735833173633188507807370954832049205982799803930757080412084540740744393038217025525811053626028393756266683160770873241483252427566399030402173500887856830518065731971327506382293547444744543338660686053656881005369337445153327702388464810106535193166178264417742016445266300615223452097893345695792517063207947870610499069693459790837835311019783337551538317627154563128095521666029417620792808430243610497960706308663026164420342014768884138875695577908232492638774029136853647301873606210129745689169574926905357249384967481323332843627075345497606421706264869338941965598122830828615983150129986995596584665227975619167441530889089223022792932998452086356718414929589771787328526406007849371236128776879465785465790855826974082256328332462161866449350958855612560464478061784483345033643026371922078979677834198320882108995348968858698011683057627094989481336800168329262971854186428738662876258474237046451445648416701311241824605273341373549229866124612798177059323787751174320563349261878997701308114372156449375729786315662092558313228660178554173138738512236115450673528013903189540508078959088738677387728407228803148523438940687520485872193859301907442062056228922527855630511662683558185631883729283872174450449850189533236574103843887389256708105315467352259249219314919990834251939017935571425289687609836699142893477789044677651896708226330404270188730892917576069811460907645863994096878270715530491534656915142184896222514096215429426412781140473314934790307619646203204163064457417044994910040154491861412578406007617819537218974520497081521483047119496860092937054614475504150277873688127808389224735786646757156280551229899446324701902475093292785247875275423546100138627144004551719713702355051508012433917535045580915134475864109539508649703668201574329904213449499552952948704593679318989916621806908160192350178383708491409527316379694996740101971338202755048222747005283716824349114772880711780691185990319979894296634370427415641108966162007747217751317011122052314970191429406697419714505561675245570056939327148126368749068256285600224741551113583762643533788292094333632452811146445490939241084353624877883103300645500687658428693423685067461516416134574109360553843222756824723467808793126781337414627605821898352113181601161339155073655844782788924514047931234975320240410447981010320370452830094140141251676343883608309229186962111589889021149916586226176251851790948592947677243953592677787281928702338922583154224769385833258085088116665411438850532120330720456322376605731567381996652951638108268354044418029687238277035945830407405453718752297723671570034932341982745829206575070298559437820622123142566327292758797321481645521312053341263479005496366915805683462598321820810766500137428529440085475996502831384003028472714179846732797559712231133781564248775470929803047403022953713190633900652604924659416450627745173639498541527930910175693759848920044772439770063360790415441431110424968467132201047127354717106391995491256466426513387613540118368658476438561786371986639579067449686743501044690525967047895724955540197592322905302777268889049281613937726810718372568965061095449208868940631896533098366193015921619036414408781365103037938050582372900634986866843666848951725692984707666895771438840574111834569954017448999858471538388540067086365832977645605414558958932685540107884758165585070238919011642986504564469275198890729622371073220404346716925761952671832834612926721382062289403374242925496597216812728997663630161361932998890574335486253334802094293376414917452133419371372982395945817145419291302347561049533742938282751981927674248159480775733965686272574007153397428706924984918579702518610342600921729339974055048326710654972176219155674675636626179613012493324064944843722191281728943342435843357093455690883063454867818686627900968335534750174179753777611230708306205775689765156165505066230076323458879632128948950600390772379053314308245642693268696370160950678718044868968446262644119255538119463593659026545199273269334116333753277547112852187895896581617664869114968635388875820490174601354877145970828975314269526606588577091059354350160279226253233295906299594025523971620293498546562784658652534093907509068518882647159432320437375571476977136849574475271285815479623159996342744736226256217853718397118129876312561556127261156478321416572258844745677192756935953626830078003284596685705834502407189381405787308627960565058342170290071110416230915623612166665896411069372085091041367363369039480198637831473319570355670577414648948047774188646351730369014055175912290138109396700405661690250377695477752269002598695411053072006035479427485591424687763946757360703384170179639941177550157098889094910975975504772756791372340479393753281843200154511485918814386246645905946054776106174193955039956795863704096829662107839586151492000895496075309036165940785491902203190992394007909405222198511191217380304765435932554064984931792265325798478024400034991139578762913139018080594011875559805461557060973850141186790184122413492830399854913001584439703237741782382999343900807496153814211096768709203834347373411986477163294073278478680246296185812394859845171645691301215752012724336214911539359009677606446816274039170218688561330740051538671960275391864641991671243481582363789760889951966243286415398784945213711035827368664708506571141878520062527635325205527071555749306685818284216939184222701154875213984021098753221912514101161994524406506558338790442958348288172415433600981680069100877468447792158072932222932845448774671662574850320057728895891706502331935764216837850923677120721929549898687021872120931252339498949628956923648067981342014856747394273454239592885214314498591161197171817544110090001920168718571615978116422415890076501477953316813744498567539387815968934681304908778899732144210806385898277671625054454265762322621650932748164689685765590910161871798524812396675854205566019486905387628246847954896421372012737441784265711508260499058431122673496982666687621813073584609952936925611695991560263142102462311883632576799719106011399957844106711060099137588106698997701267776070780002360933959295178341089303407606529076745753161059315516352797381371512281024436506311964652228774390559658745489514708943012795733180879862039404548214912437546258354506301402923950431859272506735308443914918845849692500350703562033529219231650311974813840903891239632509186277064808612100242772457124409711851427011628655661112344685884063743663105544213149974629759974106391251965569747623863977128158985978172977099433638779743437069134247329067266769240423363650789125311909888865994877174605491856061013573597189113758809493216722882447737688537558439306453466699833865230423238279579926387249383363828487846938801980297171889062669949302366872416748640921298211392395199140807483206948047308324388621968162202230504315624683019186620105015978976481219180270620415634356228337178597149490793684026352583972264769738868786644418783955730301701913589629375035187491167820092106133930589537260905760159290448848221384391089718866510807403519249911167492410995768885845672254533816346784294530927535264268734065897542604735137608788795821697220567923257779983454481973420378360892414957518015223321811718687296822991185937052369252454353406870366124085495260535994950327903391886751658442358183950370168628176157915508072040554813335251880130340418779870107510654644376780803436552617622994171955595069934600873373491149446033941039405668117428459554823671119682457033564168719560218235212914697057116829075791220436235039439398274214154926320336437592758074182317824345501265198175636258702425983657614482235562748628652729812566433961428720384343695890429875243627260615636242965216134213460994242303928818832625553687406160754026996661666456578716256352774969246664142675656945139650326634258259367767466799234222986612521432086020721792864980878640688838101449941128836566418752286220293185966014536779793872910854104074882477813570743432937916919737472569234234779106504587734336189965697023658520053133092910983276422217936153784931023752864433344480480309174997080386632419529922628604536246152258968799313931249937285013343010175498421717350608357141873128603237767359228358655746603251018495375413555970634337957812794776367794151387946440798099704334360299487772124174320981033518082563533395463950349578676390176821567916382962391839971536993628562041032523441503162342698925249793513448317674038388728279468177876744129767728422357592017406957732297591455453575749368727729812496640500877616989596303643430835721792534385088433366847776253952655924935291632761516496366717604150675888100096533920523669198600768609747677376154601241048349353152807761252468401587675937094701471205562426606155764530029117381548943273962560959750219076377027385034197558837148786035538656501059413879121180428066884840915793014502957583815467381502536105959581266526756025529834750127798299260768447832913561973730828238168268067376268622330509860923550827556895700321059633273856957647006789758976126787048908125881932547678355183141053119999085369865035392265549491935853359227733024083236385822444752860559456292840130986748750534361592358684919822545090234244675207257449574301151849488244011880873156907570075387212558474100022661824707373495681946257263162366056477393365738769448008171644209391192197276110676459398300373079702969090185468425705196964077369884676106698840172746269774173045153024707779875352168543021583451572147165451409091692537510337718345327493552732152707132406313794252863899506580303427764842118010259751625732809332574671840474318361490066046137166656750078746872781453263511169242494685236150716323071419397084673224622671191861223038943139734092236042299350840964290860868951517182561909579397670514125132954752448384296408719657180249696246956301327597131547543196432804781545322153185903904911623892059404034362857122057203721037657101318218004865067541458974994289208893533132357701996638823726017723804805054106924151616436557553819763999372896743058214728648732192636333099027158739316408587769857653323768867405062882975527750918104633781427308452090490505388713151548481660230932543433598508645696330937055428792312677368748077728847230615042896414234024740474148265015518138860629571136282919762292636998900835290436973374606728167648364669146776488568138540888530683500137133015425943110493913474488711452886611130749687515218815169651111064242020611976338752257693596874005477712410548394453942858847303293134958890936800282070241929659154754257999280593469022195074041577866631619316905273717222725100100847202727989472209505316753277364618233811283930276801410226044439878861887381589570436660401021051263440125020923997537092333904403080131329422226875214026087552879464514190478306857567022681012435545306119775141621018398436973910818618484600799435651756631797570554328593462171819123075803232671303438962036408048081189830000238710789204660226088202780607340252055411739590890130770703409437801997920328027392147276236241206954643499446481295333988761328173908129952765508716775711813627039411291390297294754095191219378330175946227719626202380666636470454657240818270194225208526172907265711926974158897064361516772260474385270729716098322068687602533870153480483352427905837225931841603636406639935917409807491046969978727436522582149449704374519497665362039675071745839325649380784840464081149564367631629494651626005613442118821054430574917801582896678126403371870311468608970109604571894202461316548263074881612362523810562029724568586347085212584753455376514185113540567052837829383065811263511159255499349835162325020997592646784353626695133760528042394650721192038661481774933724610126838655188269342174421337975965542679786672273168395737123191427329911751269297996659578753545693058300523636313874578158565188032229766580052771356568999205736070155892100669512058418615113505499198803975547372584951188990782331002845464943146592008139576299112281779462832961283311740808308431753066037703060727967987195197437755248734631640491804439351633834403998359192726809236676410300578402312113672166471804339889473367887793730193547977148036180398294454448062516575670557375964062981641560047515316422358739489426024203409678236779549500564481758174170423269525739199279892563008320708002578827525045876290658559577751563584146624223752450429607141623363297979426642242213551231289221634971564550023299374589502031673966090370011488216421031149250140204750858439994711770128291689051943333631096141189968948184803792574076008931981027545948902636693938852110709000531036180540561164571884080970901586927549566964951243369484709518973476880902206460180474153037551084065511478007745149996650800598603370186648452515840827536175750392098876071412035443475278741989236393516330466880889084881385890380777726597250355881065547876233406540203252793121665460935097166420790506159116868656679839284446296446802148057366558779148623361489876668719233744327914756967843354317654152238502345442370922801006699511517391499555706454216026948017294277252523530037227276431434181230448376009430430249043618930928733212334442276828546150675771300072203330643680810386236957785414440191489282521499488162131443605377665285251245388746708210786140693839346220224288579733241975101948270309466902521073601762286740966565268709453514021799883771387064660943250429533617144837664916243680107078979029183073888859769350590889152139317266387178856946716738671232424377753087219097443551177123569200403337650735585663811735918444297596890026206776650424532935644311244931509047163394759502799041702385517295493274972110579043107202502070892320881307394013533134561669606383564959936209234564345004640418667877967589430949357349340418495915709816471913294948909137800749532257289408186618031447334596079745570377655647448740494180433672783772935927607907492790158269152667950172303790243737851295962775103916176753969468144343591927627751968960594412144183324653825372074193853399550011497573122703291220627109470365903030531760731275625958968947653703103313642258103064790879402577833303343492918945288318490373063444855681783849540847009104700378286852261537997824529416716840770873936132638911816619949549140562745801034592237741346217002999028062154734219667394522740443358561910037672640761135864468340846202014496217585653220254522589696132724078357852689775103471759081144380289829716576328815588551937875117446406529416946994777812050876121347209906978051358573846129375096600698542911046312011275128720960989599301598608636199496071823294291438727567163796281919407985260367202445978109310796462871244907775302365428340661359732185599696047281054642170368724768953550377040895940529761138150720581065730438213293512904592402941588941326546361517409682012450787616808419384180902255836688830179033771219431136152217059439051652372649835871159080813014549854449210404700018117505848840375494360547660723146776926821407502091313496078844385443349248785477560282367315716307970687495330086368858402150759244552971017416267130149482550468978586299531168588798702417361493287560580963230777008365172428378452551580929716123565643854823475053225725205418605946459368544489804560697275986563663502151570891139728837109223226090688693157540079301321469768494193050857903741435087934480320175374641608003270806384925690558950182486698810654394104983250691554662569432835253003959656788293020053151486160732135931999687379158901369753264408531697534674814284378692197549572025693621582382479681173165903978456561281146438174847672169796021765881164440067820125581944970106349655722242519148635604946279344177221809592165615725614384712767328435751093832923222984087482223927145144780853303235850150394608250201200280082666395242002808816627932388703534611910130875894259427705251191953151890630983584432732222948731559881180099630068854377144128247271088206402835245477715544658542423404270500576279104351162012517652944910900062078066011934116355738781414721525113626165006789538342777045155804280484188849027223088680301061331357823361640874094292156034125948370931352634378086623547308580949828358891463879232430488406211351373562209234560593269582478853015497759350165649145950105460073810309562311129155338765821072406073771528938714056765073799855786709328462316413987593635223269939275734851135999075584926305083084259764863844481781426478689723586199006563724479018277130949447334543856403036419061060828750829677699791702574233890336117176845818819677295122221490624446259027426637349168635974305928097078447402855068644783991352941167201965701398052802718718027673193147012499043538432171247951089495434948710864274577673399649336911074207618892482568142888835530093707853600026575211915119925100950375708738462441050234678669225400940821698498035868458390969223509787127096205477319011119857669870714848791034697779744448195162886274437412196782264614192358302145100696855435557154552471809393606030903960426453752318606784759929597921798518001411542619453196261553923318157320491017191495102510253162287259429149587406725095730352745958061799443803755119988605384250365435576205442467664837936560495810131833906940485135746626691819573908771159860751351580658710619939945042545347400494560888296631010445631309811880518883092833803929576342474802644039478089363313745819040799450011608955320767952269169246801269505262473822872589411843112865713611197285938849915773213350645556673878001747158993559304017906879402968149040149239435064457979469962822436880079789783387756121821468149621909699109331207823272600129914142548234426690904843599747140128212568835879650273645952422642867049786262542668408566665839137313015007884286699674116029122201871308287945902061498714775665008475615413306516835560224090533907896320046933665607351558973342984449931114509039082787147667767617718832949124694690008212861752374443156570356587924740026340288834002085953446833706753438962786992612046276210549908244066544954356134036218986299826982365255675268034046458379826589211302019214395760358310060007242244193289395638208368908785404149728853032557657394315471028765498656699430223569928870414649170090326913771192417300505749768351115158212036997134193523862221654046038254725961149069656408857874038896733283510493220745764037771221254187788911776940750213686730476104429237264105348196218229721144112636813382064338054797549037864639363685170613432646384037348695152093094484855126704534852653808219193307000785983407349506322622080173557807736949794374226983887911384372925259293111860053443491713857259140551036620504727911759723699921471465125473885098255854874687929957935857808784680479401346202361128442240327699589778663464364204988688000589311861406035052986901757798758456600293430031450281099822723080628229949481415056914968651749155850410118179307499415559636865673920090961946487730706172405779974012918947899111837592463779993803765181422388677883003667589830264872087054557954391409017689919987403611327272452108204050110714110229559043216631045315606589721974264685685726588793535509039182362088224525527808143857011694035519139102410839084654205126014543179376219105072056182491882499782935006585771543321025153879637654802405577821253761833134121112799519072908808401759911146867414349495350693390919984248496753919823510146810952312532943594762581130984322485683626401904516607385387839843659698577668805351946903531955952981476687238449952413103502373502184179695779438496187885522044448935924993850049656470881881490463236921609488638287426691166162362066498171901253879869095975450804749768926419556088128471814572643626060288003561622615576647323746064282477526392711352719532129311637046197062203557392976476844553035024453387062351188459900256112327122273581674978023075552925410606624869392240485863194058379539243091149881978782660583641452819629937303950023180919422279159242390091060570878052865959096715857318992625797683127614086927518460006483291570427671694960243095671818755326897156321175987862861860878486436460930825718737098217838315006367973323553918486607077882204056024595638874222091663839934587882944395639546305087867525903231323577123708128739785392366686845648604110931021915893677104094929022049679971276517210959021340711674121466532969601552181440013284233255350544003754724471625398877945633299796008119830632882604225889151931625604954317273965663373659137819686545297724607826002077966398592858057922319817960368582965218149514837566027358074879367051390585757185580872497700741139210291614390717279735962685754851782178658143613378070725707594463143900440375886702799096946723756418606914654241553511907526645832821198247951493156374970887979360056447633377690254103367322595004222060579703215897386608060366200616518122758500033150153436268655982882316344846041663653414586109253347281772553195379563701933427236319009635381420027532673675205903035779580238873537362961252998306257270527993382041406099815390045772302624409114016158825592498788006822321065501859905219550815675728864616647222227008743952040720912605713609919024987998802037116253813529936182232104501322927108270238571239573962027693968047817721529313267556263936837920866142014368005457534285217370267255095906652240771633780035590821987787354517605062168082009455650086506696522800863684618468942155173302531457509761824840816236669924393155386871835150547908404179804559994535527273076348174308158486982962078155925635446707059378451572588892299598147182845651194993764685382452787981525799723747782506185868911753913614303570053497011101210922020245859475523705896176146950556392910236531962368437766141782440597810235986568740460075230751098787268247448159318565066869110694329773969206290963608546131717587668015218836596904560904141695083979877990424214399071961799087225219778090825788738357135282768581111065212277606473504020577435211411308878308440329988312819776372469803976228508306693014964132164162109483742735652547068470727623285528859780229565440810835998308283904615865842344444015791393847523198415682837254375316136422215796999617868440823181703732992180857951515455408450948907794461503348590837783475719441206544773520116408029666994933333210138840976279916990941906446246657090393810746505517814741631621638971435530039454348579397840502583834111951861898328465261029788982789366244333508321563966065978810967858851450430992662169836942728736547750413376174741634507045948328336252665590032803213109147642438473477542474860514529225137009928625824748736393688688845296778034761039664633575381084431679649051439408955654116498490570201127183164138045931994758943307983101951402920229902911005629660148032257354880295829430466530469105140593979658565275273928337717660712223740182658994547154808367650143153468778762641693856656089518338956518530960938271660200850274632614006540670456887143641855950843857233233476048166674074080237965592239093026977386358513052797374727387347765502199311452310365059438511470881877616163258263920790625354698351508714290932252068758698076868130392951317263811817078965026021152613748563294364740852206631582503977323766203389773680936124903757019516751943565896242401677482665752334832111805487616838830706099025637498405150055758553291469484903890777052885862292226238814587422344198862553919032722195109783858602502324588206969305933580899870127754991315595295205232183639581687899852369907880943990439217163750544747014421473137191695474589235857816184023660569612933434428012746497388297724139302640775311204962010706478672479657344645604190567805242224767213238901958204310568452485334324802657261522586121182116515964135503192181597430732546716594654584550790955041969254638407748304385384429096361973643363388243050240750659599878959883952792700824709758840311697810483567436167220058704820997167699860906230833364916345392987964120311740059798313726904188792786805553538638236781279948481348296091348055153914391338458333591798898479353248517809308152526681610912129034933508085657645578197021429076716688947947541156775334870257514855924314098199349990280082982432886541894502140824068599301795299570693546575319734790992095851177262990652802298409769381175214826966626283762073724132554475894956496004625069492597982253202095119613512952835097704025682001788409172373381216241625853476136540921760235703426586565473352680404788456371664315907167476117104140066329173374001565821049285736993128009302191244373993561030783605852056050437919409414631680048120911504927705650758049650671708094716943759802261532364160917934746367746161418873277852677285259042442700856265950754660253743781005884720014458644442863899707663737685376778793510708440098421681484796277266887130745235141733557559501723720944471042739046308379015316339114770510301822099636936861881433838479169661955989205577288528091169732789977792774728703949162500514264177378128251294447997908765721065484943051342517990624500457927503494733890789657227400241938232199194143583538399801851328356830176916057349866196249248471633330084205281494155628239489528566367912143969739113272063768687671464519492170283453140159255191119184624974919893306375557510642038625249390745962771113591824694390161331547105008000202326863328931442606652302228145759996929586399872427329334687633534703385215449584194001485477854538179419870911035731961185215530878303757352430739582772163030752833449010375367526497632646713406433337700949856436967231016664743574070479660662274664385522858204437684593264628242262662166134666453040501165239031728634317744292853259200395097989531865987831971509144820463123459228802959391194543483236041392735872661605188230484997328118740951946714423011353646084146137767801571780730307532384502041111844715401488909631963120196945581662876421084047960052821133916162869091912592184229805825386191921423591957055884050779505804280355684643378772886306592892697916977926850248595194272643313156540863326331107207259930348411039585574778589312848331277801589676106036288957818659218842293467837877966783572512215697885140003710296320983373023955972386241117241989660408212499631896378694483277704331254436694004642126180096194657761973460797468031309443596636254380627540085705148677876789837329462726236947180316998969804873077695634813212134929461795279902146038428568222055376121911056048877232306631116895581370427669697376853763182107527454542765995225959192648992798673197317612765178493832409789791222193010321293674316368276935880006362637456601679547391996777437681128398183827059780235761924471197040511718694376983695683055156987971130888867157683507609050688675441093809039158791638143055303299915632101475182479267773394271612021627251261952490738350783513592899877970114033184148068124622877947838457152556279020499634808805432809617123695431385648237953399153144523654872230772991557922332359472968869839929119629371638383652965805679538772704620959150135985732186699742447017104643093452304491533228181680536420767688867696760205619636421613912253647949236700462982919326845878823060952095329589808572336858523818902545092424256453597712763227590369768192876648186525960805499278903647584823336484241404221901188993825522134472801215519134205071708416466985059423264718902724469876037152104116183011448716037963160574621296222186793842021738042567770258850618001809671229107663602708515390726016378991675371660131056185745066746478507641619163357120137728178506987851901379810329179765789377380879989235314156051488023295792165159593130311511095015606107445814798039935343053969627094659750054022026242254175324223131050877740440388571477760001152583389033336781813760503559517778560832747349796481991223438442830083326822958765529949756218210942188865743169291514607115549085248138392924311511606074793550440590822198846181401725476364440346840316077912592017480060566290602524072603184970728594072061405612277118886042652949616367069122992000721419898913459984143461327318496236721330432869738227332717640761344904284834605405210207467689681075750189801348921107852106178121158437298852741049969703069199557091879417554685756396862458415533913730723106273851401388379416428829115738437754042281259598789595924336634807175553214101355814681303547057127802938996242455614071281339082939293600798320196309576475451706927721399350867778445416980276821415475174207549708912538444322124082550368570401570887301477244797267191683503445689192549162159989549001383502623027611878300429078743565558039190780636900045079120563566992212320689721456902365279985350141072517627376532459950609230159666140770038021790291976756601027349341826717859691344464788560363024202522210173250534760895528684150809134343248431914158443256814550094331168521871045926627209877510352183356853681237155965938425747230844421166683885912739333999366364350595914649582245713047510314042043496359029513013886625614362659625908921423754931322544482372265085418568167735132861399490283649274561253717282454511705735550088766467297144591627085416544618781302994817550976282315720062587229665202345247646994291649239543936348550822213430266024179004433713578881887305844844903031745190395877188697877078326784863973503188004098656410233573862374182669897694833278678971618448643205046567517664192138731071007854739501274841609894141187844876674331570432399546829830289509137836190927792288487682504218661768247766805356159905734770179183177143041687420484505775824668669065622300340550454065468220206390030147714779112757428779054729394652991815684128669215198354935269819444930299542360365218473753620704905045396917633112234454224882954656901148819518325045609593828609989729147462419716423684571700792848105090013303829119921636352761469024359003429462950904526524383493342361376234923788427228514876731826700097244264355673511249845478684306887425629912773558152839407094070423871613082317811699267489194969434930273735904384800487455837740405105991521242433453156699981602744781965257713406702193172333807879419698700124713891317876418386042677962001208504286927795079679147501061058517210408237039656639999891484020898943629760191185932097272158535461250977780748995558629277133881742214563509289719865367746890204393840181818330855083260935976385163001649613818907364300786278050578084167401677162167184774874424124555719888812922846590643447931991145862160840825431927712165859565956467791925897620656519562841743759162086478385595494767216971218362481419239318995380175445094546664534404190704437804024687671663051171640285956772193026488586449617082740581771738590117923193484677588746608464961866250444965156604533624009895981957191252150093941130679015795712597465591310261239956812283617569911308149705440901109231299667765366558577567474881069226008162862783711745174057905714759549782827716229510091427983411794924893819794428164162275752317407390686178786106568917414750935737674391068450477744915383215434372224027615079873518434162554986223022020287999401057517820157101440937250160005518041095828122591904100887533989310632910322507277627605647428924269966414738647361643371244870979624366813006380685750282801050696256321376809285118461230753569324088980420802952585751928890537847878713458858887099980179830784388730049603478326471429368507355428281588083356269951825056530792511656657787547170772585974087310720570911714969544814511217864551263974841837476471368223866631454812029961319916583957709201294951645484211558295064249523730528514946098102834221488859256205114968572455624501328222917318005974152013982081666983255316106866390088645640075136557647942296750489783954838343658487537348121029202226366867175931382230053555403009127064055515143009293339469728417712019475311409420847816923352199702276524680422036422222015282030028301322716120196040211333330290324816212212331038271760541580771849604953036356034915279593018287388664163696487907431023815078690419954817424223764579065091108219986239467802397612727943838884947285056664118051947001603845680083251683122243485312168483565361695325508394704802776895765589542993054012226904804348874856138321230325879548671665036556547948573739002365704835312755061943756790763326229989486079419274298639019940517057286790183112230798886885903182951541109367208140705293939443510226701832339294306829601054731479658633943653730020185423368997784963679750089345496013817729106131631989511276117013581559840955879625987618145240388721081277209295028007861696474898347943763869789813782188788065364462228223537462223698633569072312682148214119131113013459004096257351389923249376785148750757465776079209252669562581934608886963632254086898430902870924742465927130454185262845988731423525561816139555503663654873907071223744155935993096243389433455794779023664349646497030325322761043878236497192396596419081760857230952838540589997744901090250277847627483774397611635695121346251938004040157266887699487235658767310910681737154076890755814251442271306242541269104655656670927636979289622126464857083827386439326067242678849739136087403276170847268739948912328136986519755248454266079208231821517916790273299611717689508001882195526863525653798120485923331620060932603186923942293907441199012892271161009201322395878090692177989969314590487154624562007310438601994498965763837631958596125459910795602742218901376012430775292472306474640583568093648775931026535237252610814849072603427127415592308592357827340153207362355033474172310991243868119601169134845111775181186510540147157014387960770516673008906549017593763562412442879336621166405611637536939667348376367295360891615772968394056689525005112825199210600169240494400412849805610064084178849210510745157970090325573983462973686704080317838579933894289970312363980579639553996343143617016459198037276178187976124280356906396103570415278800130755965052163055533743710835578947838726216203779427571269767954318001905606920766875357252184915855388596179306883186575609849616161925565739482973960621532136719830143233558153993945659083451722171564411143954927554085185227131135341512959096295212387655937007581711030272475495006520293168737987421333283897992874983888483787956566762344859273111880175758635507605323539472066825374587138827972745116606234972496025174395488394547794200381035014069525746006026745073985157134843991774012952555028309509044769006818582415706690695940668043485230606581665452379232144530803741907741784104310687252549788484250472061691941841551356908880001752703559457019150835973169776882381566335192225974074751608960759519640180806608534791692074810569050444239208180014297184463314006089101690581976069668785334004762176979820171534899066107277597767068291937510925205694084914831096614741665448197817900386468289772721183312432254773568991073409981931819115529071276276468193395884679866720283566355721692170000448173198131906584780123315871661805674072806624447456066950777260468216319897390796215349077006504864595712558110310151996390046001983109304028171919905610153169971474595679530089970196213571892989526268979119720419090838442443738216259982075248010689647497399367355189748883629309661309554135074084672666951546437674864386674403179007068470661421439018957107305360517402887190389806064575675346486958232605778655363379663670585850598858256199066693757143418595424021021875120842828974031591934202560468861870795803317820933102873452065607696250482229502184590345528944532443258926163422882181311529885565002238069962957615421160789074499756329873463360241768915363003274286127340142562525870372178755466588430223741380626352414221897979143398076843713385945588152035351850796690832546013708782969264848018307909414500813446545616764682570673975220631873478638675796141141666547377306804122064929601467602370575142722685106137038196491038515809421482160370273710644388881296062137671818177234182497323982024648735333556882482849206344490315851254654196614388288647962235795496758221880851584103776967240534750014419202216693157512328309163884676357822625529761925725935336612245536397939740543217274816308740310357435979640287414006631918028960815169247135200083003371248504781199406450709236418742342136967690384408369795490025998713683579005505753134838026584747896924333937324664044210551046191546620218511456520800255383122710829451022626952035844215807917545371251739312685649971876907059860072097170282217542308854545132267549702945234858984322974342940970622637037645442952868270974294925044200352990753374951433585643401793754261883540811088685374197558035853524368188491128806082376009527966690308318000598793184065848340330433141518964888962115209803701294163341929902749923772042381054857951498336829927942500190603182436680867220931483815957919879788651735636681888837493902293361219286022104173230144568921022091222322349218733306509982188457349119133862581876760435076185219934720080567726572534491743099118942438914230131576220402049150763540677180176723304324955850577436255756073266445608558867696324978753709648354623437913302174911727303894047672304455671543960793226278219120137404799674751786595094680615691519949174758099538446890864605855468454511275758211579176000784287927696082562384853517093210012756839636871878232782553111151851963930606172376813119319725698009848435529699257433146387025133717304052332767659400321760575389088688694530043583397004272022729856106865928655447184289396959059754233714436897181749137213116711891126049015441776043323724828198499679959075149873156460388996482729071866184950506021454179233828971977364310253610302755284141069299763621563164846434414071902955822957838003974985770443566708795324303777538273496245358885468373648926351154186690379318913294857321098069542592595085740581447172151276714435739895889552755736887610861142422358115042000388559643489366161632560435033637081171580557328803397281449970198267626959845577942671048047286814302153120291249970208720393124201888156511521624162802559665247403336823712236789490489164716383144354642022218557909721061336054253379152998911371710004010978019443449829051956601498694204759252694032388296130355541671793962868673202559392843933265188825567492300236308457488992545506809414730195410387833623125855923092768822571077193652851344615152344471870690347382654650704522332688554330036825514208374734621332469688603711207875114198056807458342760845285583324356125914025541501296180709342394455815735766542417211026942560116265645346262185284830475058159593316970138581247877231618230950502030050979658161062942704803030762628738878672760526487069352783925634736058877547556350196022523529217616458143349381342431100162944477112659538527456435879887776432214767124423233218582223550211159343761767984841252385723425377443429288869962493774036032256234505528279507348582200003176887688567187655543227145219644437294253203422525793976679301007146066859826218445185280878405597287751892775246510556086725287230474885693196731444870119073365056371075235082898001089532360575527977034486492163386798901882111544849037348996074590163923366804326457522939099474601465193318198475461219854538375847644230455821112606143943163577116912300949212588777200966884873813814324136943819740868461212714218764490395909298471189812118603627727442264692979532300862068674318988077175312281103199847928223281840322384302260303512012594607554909248309331521836909176063438127396300538775446786630686043515866397988924616685233500346017674182881846848963267125753998771013788199998889936040471447247164112387579317706242672052439500054772283844984573018465669134660781716723691271321084071302050776916963964346885381224074878119297323450779081846381814472247984764799793409122963967838856901957496441862597056582335894899664904383399129973271025926538684138108807013080903788986644257599904205428335144334111469436924748255281155799739836519849874987114188992909542026480302486845213886024401129477258274343623719914165763643251940161098799697034552919582442579342072660972602306886792083653897571515902626854704658122396802636313154225929133849856048933949055442504930940763130485615594256216583280170008426725779063969342519998512459920305474941232485068612705055423884277094406771565514573104039567188061245613253381286890331488144748590119193074615671631879145483649522128119785417950322957252376092211319691502170449798206602624475340611579722236949987335350341182555319620737474395953788380036307721469098956068149208320271005775054713073959353090692482674911528465272021101489614653858856276389724002422771615465540183399008787539255810877873017005586508711443199334535029095443078122019861395260444952171866748562349849268977347423772293817982540408636140653165641450103746242852275877409951685305547010494280625815809405092208552865854018370529352714215145754587543619184079922692437322625573007924298163708444541231444248959836088782295300705904368510858093566866292600771572125071405781929099257202952450731680590648834278316219894262487187403377330873710899001865052101539563529397353169721650368214000640815020957026750789066243848584508706776496169842255368394275431217200051257571168498933502019615072737784951360831908376240001653965817571710387478640248849047980592390527646992884367232121227775677346692118437270686138565224956734088027892395492528415345233833384622957710350726654061574474963465065018901265075581163673489241871625449458835201645816242713742017675557929858396573066195997726998980356802968635624472862721255120544844207683344479003571333256170438454807481669676655739448382683703363437205076180881584007123382693013368701501766311245359418347475616444303138103102461193650579840969913946093821113178553936200764361585999430347283737854344146925726284657208296928555496444267645949952498406915987642195792105561379173903332486510904061527542342681852214709515567980038465519358247581767300158722652561358825005567144093149686675212608999960809650010310606287546253516056145471197627142135334324570280203475770113229505414861917972687745086377794649644332616480927061812295906784023277736503519828626639626976864595248321485593209196390176830481436803591156981166429255990005567253793046013042457662312380409391639859801377982142829813366002280493682170725239134364802158804522352260773913947835058042698487301619587864227824500815389765391509198033203426938915193980267526772390744325255947229808273468699452786207878334029980937954402247270757271373027304634772517794798193909600411464605194036454953126804314556452568273176672106305495778822910699680529564905650575655343682129598352065037212692439022351776073877807601419387454913742987047195999373216524543853727528606605588050687172767440270853176706828870779352293678317127892721873755566724803019849051162758996722247595022224119508196796087582979767184143836913585594138730473469513055599861474999206231055942829830581585473380708478466870039965279248285333643086490570240435847244475565108849014393356800916333509148566063194864042667952651284493670243979778175437641752514399388489910971542551282512364106118881246206016949399165162986746130624279702412621658816838390735272096293338026407761299189937375021041219052291150858507457858080096196980128434187325169248477916765388571507019856130712044643313495917155594181420980698610654067836794080819041554922605134461734123833779774853627290382911270914214534934331048325354875779436005792330933357129102322086749801704842413850796825258759192822424136759634081976671151824131404449522009465244439523205934329282588624114390954102654832974744055601257139310350572442092067879667628751009994139336178792220159987775987615969625619180396501938640121537625966781138071276691218743752612899019101490236929020251695214957807973158027956850130027101288033220607787636309936652035178776628044912474369790296470616739151978215951956457420929114243770872135079453105474934707116217549286072951245940407914925503599657955551515859590865019678138026390448110300076629976233777550415584915534575736900858136027276267501826007227234061855451063382910848167650981443037124474676478338450132077956411946478507727744721247153624681041383995507006444411013505103408621358334234209737865226395637804758063539876964441943338621909346015097203996076646616499759795986910686235815082904815496388247632317189356102999935846968650778390703732486656409221158718519098065652326949578284342264716908815543616022620494372825978382181362134006737941839093318240380045890442434245767614849242405512137917401954367554427739450536927916286355128342003915054956295491594112108498445496234006193349739769442809677424362975965717473532269254932687705414102657728922482165025950757167617539174428779635419626810304963335652027944903512966520003620483143539462263881804438673169662261198872287945866637284517506465440521076378746232230517491679388968724814808906234906901042639171070445186268957404260064956387698854374184870860229684570147647785834370258011941699026469344450605866935884125480085122448234566663893451321591864885277549970037535243480564750207998347654650920458209413391089899278949877086516320584243749686552659087247503737968262913180819483374635166471166380370089459386304940953124379028510441284864236428676106803866721382357203119537616657787201707136201909662131259801917565123595658730425610608620625290290681448293791248523610352157328076391278510745595539348269314618201676992104414952098628621484445708968745494867869257313044204775146719387738067361427216647991628783701063760249749375514164582395040761133691426735489169827665779523877889263362372062998449030825558538153503247481806751966664210313764101201566852355929199830728060098984175024717331840104740757571974905838035682289072601057705223869838097688984455353266898940369288213988220849674899011202956381624826690749516205447844586844994979705429248122802794611443796889317394422230438075725386251590489953411738751259960579515926485505286176668650217812703375831595202503204025503216861106731491772364864387519723942871698126575309604465898027787457859801104074821780983579177972831091725461163209905169724785894781978286587261589370692971149832321341612537994575583605158639259428695419847067345591909582679853165310674575785624510437464057107549445280066611435841933404762401023066630861641774180648651969200707381034138567702207525805549193229081202726204615787468305879847052072768579461846152178689690243122219908658905243423711237287217047852548346806136935795463480912835598871040110976446188887313548487142101878498864832566369764043713434990912036840044099167536348813953418978798130347341932043162824162334180497172176779297087328396143211414775609923726861197440276252037100749343072697048607491310595694814350207299415033329844666105829083678564973270976413262897897053443852568986174002943299878083249720056700285626821262049785178125670766114228569010025771866171435372226181275831093785126031562828572840344516033023770222582487108215815540592751254200239221459614678642491304756403628248244330573445509853888435338990793406710274384093016726184466279608213726581831887968382578093235838331621544347444875521954014533634580317202013457093761313913904852121672145324123200784180777621108440850153115895463967050441653398669112691468760531960439642597923028036474723407876185361311341949771508523230153148260591561977075112114337281484100774420825003019576429786818629065683628844271502904621302651093938199741109963429158567611306361275095691974944382546483340701294268502475200531312440763419952843390329815671914785846914309484067914404814987863672723018787138277197952944054779164049157060343811150735094884942626894103288072236481277598041000021622499684699100014093396267716075679244443632047336922583909222263206001061958087048005771995975334401944628118078211357854242472881303705630033145593157209454645847316084284526993815915224710791564891157686706912158436155575176901493792194289630777830094815803933122327052872711384482611890398288949552019590969310638219639122911834171798999811663559757856446313844108224074586574512150276035827002299428624892845596014892503010953743607201061565493939833897828036541375035500028341508131775861664206010813331211342837276743033019533830942619337649444237667931753041439271339971657150958506976145978065074978168083579392976350795813579722565600166804650232553484167695204416747144527964834081649029643232046184795835028317477789832097987725484716708369581927460561842735041539252916324996417989639058008953502198189886950086774007217928235462916082297936657240168995733130076460769898788625818051621434378603900709615900828996846893877052998548741420214573395248972589903160763572340306961631498963614519518092494618500984053572543183411339602076367258449830847397057709186314200870151887985479635021147756414256241183487674287535558176612802461513948777271317568183184150266732431870178122625157725254543371775036111138634185240101199419698064211356889485646022910443490098849687021497860173206742289003935555343420803666519646419697759779190158471580924585319838736827160230736037886547387547950162841788487755867543987599788041810880031544136430024936358556608375684246004113536317762496107384076254407494352615994971162759111416944124272009925290792874326689426246481522898950157678816976417202372375775608213326415452845194883369822377824457299473759185316150641833759587953574234533087571038788746547413943929505054066836820984903816867383674948605558916996997613226043750059443952564953378852816540271850246936766421708964288266871696762915051973704951711486776024015887087125713358257964795807497677324175626634405104295737429626477866531732793413214844448244517264491247489233709931816636520212835982631097290765743544218738426668320489967660297438068691347397769247363105869610471767981957530346843534745831403106505399094216382134423716394053363742696169540183359126055750312693312580378280168183575781211466268239741272715584083548367196388106688478356655451605273753137834476924457214597242426807752262443198127695872705146895514773303538871083816165689726192071043767718915406705382615206454553634516877112190300684874801328421581314239597075588134357217457458504831025231867832029675300959373941734499474683517884671822669803405773017429378363511594520450728683533330168767952694770933412119890093235643338755030750891101631457684960526392772864889593597679712917679265310657996078749724556322748446942743290502793218874948635309422032082263891835843525658091564353148650948765821947818987847218549000432578725818168677374162958298830779817809668261100600090441075384528635893588789162578787227058811855379914006173414735363708285722436545196310527670846554679392839405659045535104034686153585472743819852261958620105388135976503353612156195267085508493875076912098788218931459250478960480342063448809304778500896060720450634094502877154771857654982575479307118161172840227526396449526082293362961991545649428346856033726812193218867065800476437386146175316987083063258369947491034486285183552197557941282082835281609694034427164754597529611542183420656360235350310595817961456961311908740353469915350723867073625253336808966177420221703094347993818390687464781027854041415098477265573758236817754347869119232174470420282942585319050485562750605609709298302491434222910288648702230709026825876211532683885109812354425020523273762145792807624928165701700403331936548511139541242067604366371967740096995879553476291417859434997719456872528190353155820603656527703120953362433245522444613415673503290260582835907010122567854065020937137310144450269304322197605596340766969026171115268008375846580304848786217365555447621367764911408456899337267200414280359092462019268729282529335077262224543962955797890894217831219176647991204008009615369520846191653370241201405505007892174639029635548069135206102039137478130174074142057846349960459389531818267710121475621384407211581000025878779729276384663747480329105282199759289076403088615854766484306596678422547681805604659768407052998910215620192184566365124292000888742210615656197121728686628498269744415458318517181862072112180885583889358680837073911421636745400828648903767709021364490314265640671277817633846532946791575775380300591248777270886202283083349583186027035015355910424303897868268777496615252521932236273401174655576886672848298458594116723366153440276405735403741257225254562913382028565261756043706637860639538732622495450743322226273334578007311849666749352992490577354264574205641472635402554109907023648831751535653903615467949794613795768438379720601117394467846748545754709294752723149624661914890121155923668577579131595849985843139553759832368444118386007630448109185122401688335014039812640898687318767017964103386941125725815821522987681246296741858291758378250940263065396174667309585378357954112661257592068833025430829786522330332164595923722114544084282516549162808732069085301596659212966600195234238442493373945519283643833026059303624377765492958178415341657872174931906896650477313821365322519253868862651648763117622606881251712422039510211986327150688659607920081897577993141306551092995572133806665344475410329178651636876650054488276631815685977594926852610971409557667399586086923200152582176129346758820270748340212853259644230323148833416267254556231495424339728650059407510842312753594239195271924373700690718768650267211315783514211576210723062822081359759798255257054176139847616918007518456709357023693000075635772623641701445709972335967689793264496354342973367720083110792929532370060434079987908818467000135267554834020750756495206912811446393241975788920931271352439374008968786687316132587233156123169730263061644552125717658365078136471479752030642318974186945363016323196696226706815162409067457425397864039599948106926545731956703810951982828957451691857610424161059689597569683459083905870711712744672329914778159566969082188397753737017225915749424585127359505106402670585087340805071690139433614546658562708539322307232008340207716355269937374281835541819310746650918760267638634778371376621868538003549883240621976083717058331937380855868955994113845135120361214243520417654282124033600842593377970746736780290963443447296633920446981573899376612764699088338546480221774275906825066880292137300224233805446293531138921673819581595223254235718386714577995922459296879248140816248879599088344957823497674569883033467543590030947728499024079690170091546522794340303576795819403629444464756213484183289631955354870638078261983557473881168157150114408529772488090827003225716039358840575601222223645478167456289000298161357231658471723850570073285367058516977914933755114171381932308723983653639621684380089665187940877162383370836424611597616818989959147919306859015992442840873920770904500185428287426239563516154872240063432633221437562062470337606128960000271210317530981874840666849169427797419378180706297364301404690327910651726127684444707902642423804524611033160967957589854875007253216215479904488213265453149891240167313239257946201856774895527108254952686116996398411325359221791082706948484400352085734767120930849914367396569326350249596173102166315264874771673807864785179359182721864099951245738699521854907793644067909660571984470649354831233928289928228435375888283066592622089926000981700939218840253992986406027659001684498872669054452583501859138728741385635376639720799493704891389120351502798538056318851962616117624495457558046232483947875333326899460043566168641273128015429803332244789136333344273341133690060554655023549338849103249385121164781020919370364296591038974148596340176568469834649948957958976537022157455075175532515352723893322165325785857214130825406599050581491893625453539653371614856207294340442612879272611589191904499770130445520974508381836879854246940700486932683121945891994963576524511949119616258801503531069623495684987388446810461583285248962586233554434221977668580567194734509068984293360044969016882746732885919446083434285807758543298318805485802959378288919661937214491123815541701630131844418412022969519269311031528966288036645152788862417430644992965215606130206461141305261964566428447473960213351294145074282325256607308987829327735698230624543878402713873816852232145181171947244124542000894211375616654529044185906763778992034364715134164186614144478672858300249856118232613057631517098853419184086131586040367248353733364405701543593593983534268878143131851170601661336428950610258567075071255069314786306814749267669729436766649445670312658035353288386288724432229162755041968887875333967489835497967043302647579285041198782715032717000652661258028589542522896728626090282984518398985551210852708002655782650206692319191168564013901509570250084199534962348543363931700686907680829724188685658800375261246077193263567293984451113141349043307774536806902841376792526672864177995806063344169037921106702242401309568364116217849752761209655006442719629152242558290415385406437202121800629721432629531310806414026653904790964024459682520867743588963703924010193439398983990036329093061669868230626732792526818688098139949939651385965685633767533101145476494789883327427946821395047363873906364766599506494736410874075175705892858563804140438503232078760937075352050110968645084513570839182511176043292007628819479561007076209415438379056185229357509556002446191266336911248552143504774746200898774550840077810635876441702925514011690180390952040561358196025624501953263694417756632568191248749798177667916682940100770560918023146413528062036709310747807048457911704253718902855888898442498533640459041343939429396494894245667770331270329581907880661465765347168030871274215186648637788626089727982678677669385332406950309294362222423777011432803059103340525908327447089388626391036099564571726858064751130334319036820859189966809958032413141633353297845445658334102039950343712918459747568659586573916651108879076569061044003755064732417779390018575076244772100076934924570348735989474955663914487404805625838675869152575607473247663185710827516481128567717725758418100104940080303283078051194659601862029751288373295340385077170642064635287616355198316884279734921524284509590242144668175014988898170474459598073301424774410484383618938512727167877368719206468572947009103581755980081368394287736484106640085259227242406324794118492215063012439160073578257101985393865896128229269462791954816804389149167719477199095638951951995273496245311230549754401903957574748785239227252802855621897291779214032610517310944750031329765907029227320303214947487401839197746844102418561844090947297178460123790381616709915652594196134497841570909007901475848367350601797041377559104011777001523957562005564479317277463385764622884046392225173694880778050815415492892293899463836552190268577051592568816723957151896904140834870333785635974732563225655140759872820251697608832336082476717807071624867774129727949260430942544842175228726793279422621441098211462521627283594184707525362305777016651249632448085785981563618133855755645980120650899157712480601359443313779583113736222807166901006802667040516096191259089618395342242521147451460229278961039555528873619441545951641864490271125717058159337832551324243590146229062742521652826970338739059924588688824855866068651755531286974858796662766757394927938986121857272364449758437990417216128228800248643942046097762603420724489858927054722771193539301959160729796357019885322592970267038300293918699873770260931352107547606957206937012357888831284046799619282184997891851655060761595323331028726795643988888461206367059946010185208465909273923889897622520101752805754616692800966842361806225714982707204283387046644622441527412153884162073708403832582178134669925965951199841067092241766471460088061875385246130703238595033443135641446860830429442546429109333891889699157624532474909675783414226966987277655636212132321781463017362198912093250498995071467361886996450326912770268153226881002754720226514085619106754569137298942404953625534416024181147701474082877527010964646597165596078647833967211960084428668426715210441085550787564316409644356008749948905534625068712393452707846198415513947456130274623907543154846146959940449654282415364853052361351189980482365668000455462215305987516541976659997689499805342217184367911980491986468554500187001438778392985276469051816525788034387851713069676628539765205829454039840775742754960430842345706746412849673951900571404205466019500082035562596768940433522053758185959380956771227613502932482814785086728429015409153932149611193019070825884801827467406320735233705577044471846428837218144274846275431799110734604401032800657873208580994692020871991407974482702814844773489737818504507057397135156896214795738778411915353395218133244927089199411286297739363421644006651175320520745004028250459829913874954549081321071713072932186308848660946541106193957917959176592342924767694119510497268042320191139197187539698231910849982975183338364003338388655868760844128143369578524181942283752600913295143431893799266495586445668042142143167206469062269721033732368254013584604850195462817008063566084725177169421043347706781205116911683002136303988993066890438581697155226180889188546445035688887286279302990794751729104903222436677387883332013713269887200140903122627170359321787255637537171880617275677037111247532108399577028227040641089300777632675924981086820688825472937502318968053210666371299243414744652844295741817310295504320997478168527452001041509819478794086257848135497289439750240916010723868974024797864547465610078401619332663877014912155942163510851385074066942819096431282633134684762751286327406984764387580083618411174280669942313264814549472924395235762322848853993852520746552837389134636541619747151772625299425405088951512542291569478346713178273211178506090305565566607480507089193758692614096228947892446127183773850679854364333566384672635496798499407063527093266295424349005730363521999720232831818695966494922360756763743392692410207629332886696850670783088422127310600696600725457240831973401747384568713111877905378768096156396529508555012124298378339271071122500156651253830566664365093368543970298400094969269920650123225414677201873035384917952013265000412485082234438291487233667136243559022936804104655219243831343762655729753087802945737508606576833358435323721620790895118586706178960863873763589429287145280147703375952679352924307597742559055621814742641230234869222125793053673522579784739760838132173276241508459620275672399731133189091411587020457147925290890180132621450815735783255185961113988605530642343421934660428780612822451285560285987011746068804575384762812802169236239874857704153504077316026938159929672613477411164191266440277026190288651634657062370128925903832373492854588168019689904819389620837926483999121604006499045007353444029424364510253762522442509145114315016529896271841822398455878545979855241087879251370188454380808769156474934207056639953961825900348322538399859530274650732995001381330874165929653014124566800108320516076363805459722259634301705578173709661353897979396481026949595926362207522132337336816218798914685974008933429737351031416567800979004613300228759891705886058700756421850955454400049026712669840073244185007425713830484415196561857013322782107075924251552450562767874592224671313639757879840768662276455686538411193099342065773907429637142607166919731281696511107218510530439998918716934029541917359587025689781738168041182914615701419774927603146720200741525918790085842035530578859683493044247625515204662375161333530529601100267054704075830020736055740427266696968266527764468808969060301299859510367676150997927018883552220127615616450709630642201822485609677395287749292993348981064815397436809858746237026307220789556953006887758197849577201899771797544981064389553009411726598802128758772337999655664432123162991297441297319827743953895908953577136482143381432152863800755153520440873517961358548225817832026160322813956419631853672174807470232002033138022559706928210183775881080941415804288034809108327619956286227879158001910678789117632959005593572045427794424980822191303391066323302007728260536244894743099495510032854969738469119898298607189758967243250932261195345982482961470738755750073994111814815523089727978373261912046266081351179796618334249165326841241758473039373369543419821567636265804504833032584729774256556828364152783206907765354744244668078533126626470531519073659284486856007745098059911989088678654990711566019340725491915573505190386903367510598651485201058551530167193901165364143440479115292037298656470519370782869366824659499314720181164089087061598542406028560188031616672623478845363185303162223829299076763222585213719799822621988246691575788426805868771310081020647926238670254310632276474227619540275700202973657377678450412690352768993021835406758774797832559981691504784625688707519699617349432786530448931653682691007864340071503174896889532377808431514986046736121863162984740959735423386741745274250796842961588364647655790123290076928228443383787825256516929949499509481925705838332003924202427964375746582608069766490533776409418099170545284473222371749878555275752779426003640465497161281290280113496028881869254654478220749476706366591318133314049228035284330793865113818520377633372346725780821557707333054763217084292944455391736825889105082376741531611180356794760494350957173368334502416758147809981221379650557910663977256116029013403160371003758086866670597464104708204394308082723941614866477157794049459271247314060313784247694691903903809819393783191306255679035425012783661929965931848059390552479967734487574039012562809398891709297007480544320901767445951690010916575810314860554155500910422953822487717571140565345073279703323938158975380229589846660765246217847845198119727438742334008377222377258128373061579805234778065436058935322793580787828452365333209588687781798305086684008526048720712338229989747986802848639811029571985359417162612015693121404476262741545388231795628368239756926095982943716295306783214338889721531273006909206039551863080176161289919924238919985933720671447358604541826316858490724347203917619941376853825720058984755972453066250999869977326742722512700908631688571604013249585748720557528373448445262177562669996081707823764246275905966761036185508293064435330174233398425742923419227850515971324454465485531005087186012066394531045774888630125956345284666230570987769639112243511299108549829225714946833664976825595149221027925470926860619418126532440300622662320074742517987228999329094707474963391763313422538361890118151573037033457496421373916597872556459840912956494490955171761546222992619197508574034669045662815758200352495360557415740363516907261058836594180254294425794866965272982503962047852970022740829083701774628324002042411594242461710122099947319929317913192544420726609728661084587429130086031213582604795799137219924752115833252300402530694155852891992713224523526744730612693767883523551975215136776260954004004960407146472546420421367828721876499950663641205488190313423971195204699511602695189131790538134674566774798049213282952765351223486775165533172883393820862945712756850086578685594286313661997945310982850572910498638853198866786868449331114815280432273471169493747675600856004902184218102334098270790969742847512410365649011660733100036161210148195514565822502483565054768867173939682729934883160471818696152086299717976701219617859178813367593805076673526563590006219278509659608676991729187119611707720665617653155077942314584864022305455582798264843847444735018834388055975044735152258666250449475018167435011863117173748315699983825256434283023749922217333560932878216362877707633441711173235794027331727514816979907564388327322403943019881347065531949023829831245777910113228639700281455953135630063838739373765364430513105242112683868198727195624722349008578505347450686645444678263196198451689625881026336206474180208698302961212406293270387887392412609469859841727164104808483837065207203146268424279461077582532329891760159628630888047199766063271230173703884601343446623080689231599120947744694314903829228619249199454759094197860483163498918904946328485089466058461509049052838202389518565106976876190112128141088159071736785749257433165923282516736410767229039054149161179559310157056757202730214104982183242637012052781011461925437403237535603216846478162703966071033285261047020126548391272035324475135211007043408097653550988216530403574724634956075443176733064271654066103420531278008093519996167760893150247636327309445433930267747401767005713101497717500136312200251565849147160584628532862672842445824463595404527762275528843266866962350970951750159843177708407644616795747751656983546336604010239210541633193972742256505606099553908601421151353605773244011997958061879910747300130019380473762656595041080690541955853076268985711587909132112104916105548938171294750417139689745160499153364173849100356720046532294803004889047434558008239038941158728379445980224043101045995887387560289880488289713820829360466192419396497559051589579603214771606428938436818414545226105197341485759959387742713211181907287344789264113838409266506297817515593619908965014670468907850228610926224650147821921139435719267806281294345223809801342490136903471878699192980581550996079418194758199985138534612969781805055009015285512187851965950111504839366252362295075469867826872541077291387245146044906848183929447467408619509566099533637085801188669636040089632064894724266939308852703978433331977945513354287301694989010028686320390662123236353157732431282464454319015775194606401815691274815868095051515843770136313287831014880444102721002406944033271963664488443468016258698733943783446179586464503669913241050893410389750198903785105280854676956237936219317226496659450611977690876793976542187434635835074257131416273362822795607534792791205484846949242557445656108276008924069646188163374025050851453881358424017767707541768261885806110342311082234682498184095777027068762334856248664253934092651197131239428678873658813086575783350467539718399503040649146084703343282136582819724744224910040560995446105015913703407613597131812741452490194295634520761379435779430959667195917695484996415758548528060809176675711559387408271905786931951365550077265920078026278161833297097119820954838206792073666342764853097897009159600982443069512417725981934440738217351241214302668851010112037744118588891226914223484343363705418486848568289729832013261011201182418422265171096843452295233715143686470640756207676206800650028567636785311534445895822485907072831039848372508636559926607308061492298238789597710608143214979030886569786232708950514295397828568088683527912929409492241341349763049982514272883809351626740823040732745877593039736897060753983845330072356740192734654308032730078901242768197404794363693040030220471710650477460918117848016604516998699898428998103008601742323015042858372799687385812502030695428945435645781282506566601762003832953214029030335080539553456435501820613949341433042077647386081513935701331846799925099133363050883380121727282402249192404920446437221015139510933868876843667704345176423412865365700043214516751373519426285610986439516354858483837778181705560301610786954789864226014264788009500914933172630086456945755345773648217436343399092762016669712845267032143511759266251078951896014976138957708491831770702492794331242480473745717830091720728828267507626572451533037247155098073087979337028940037381840354344445107791912768924080836640374170142876629934722231729892011799213600960451997986980093119710429659085998416988388662143364276023004483691199844218014577827934883919528964014071097205995025626367089978668843352399849436908036909476813866819012488764834128159085123045833786072768015756927942708811854188350425639146732982849136799204122294549062934698260334155066350117766320924528132784623342549221225935143653434429602217867289769768649638787933613049780709028255220736115514370894283230181209281836947079997026228218888092063377816301221038176345616411750864880801889447498771555336074318199928020808211226235035451616768192189492522345464200145632399500647916690086178980948964376742219387947114852921198788045945057853521282516403891329434549745965427068664004000379978856100102185762876854315936867758553275817551355327656552150062702952213051522319087781627245967449934226251385481326977345676525110101271387592382153041397173108377937477809761741175929988150651249839652149612047616407529992535049996408695645723565690771563142924881247086496213564852512206533398903458773754664772282479923028457432359964412497588826000945976957656582149896565143209731798782890958272654951560179846432579084910773206210291560068236208687361781497679464087751135930822241498193464605469227601639583649776882245209518672123227519612229734498727463971679549314722026218882250392959213232119922703904095699895438840062960423265735495969354653963424113845141078484925778576490751600996418775682880422241895007763289658284882541242294961902390971554323564507908005217836722116896124449046384945790487220977999998968680418401365187471746058623403237838082217164140282657018290640571349598459402505422596559473001645451502896978686634371269604256714927710248052939867197299270376061364091443669289360726663344475685405865643209173306329650291350326818438577672275718009170481650296037902693026658382906786567088508782324475361525833557305493082964929095176443176159447732422189278400926953179914306187555791417522350886128930090937373718974831956990742530854155124037204006191682276521823356654030522200314711104242902928479853787010555751837482143802266112030912031942018474365230928180587248106301228920966758363772971820094856421732926797598984675933950627732399997435423527620653804914994511038371380105280705650876074292981409386331729997545381485583459168129273507954994202676437260455908013286435958465812794686946396702354191674549091428366362007380117960383120508827118190534160022156547981517596553534341444016566737047722069623157848774682523468815987873166163856907767984825005447460762499839692740013179888671436397024927137057586292578762385287699139923306093593499933797730106269879537453423679122828882022310578073793876280322276340749016264599995194792630494360573414005115611366015746192686191158194085872115302688611540842092194748253461867114932100721448002563521311765947531842765350407257729760670117610973055749405165316263982781372081396799073107674757149369105259027144321575284744802830112133694962584812246583267050674876237321207559033206529199502427640837099839913889483415133815106342577112207821782083508335204841572761601809112365155622644936938746029820766347765504477708714241930890427556229035836028963543196317028488691194764933699949658179015025229309581720326044604308228560452806907818578082099854710445103297684895899565138376610886106395682779444644799393082079620708286562834993718360178838724735452808027613229336118772439642587522872427490421185083951019848851630535759196117868183792559970794797304497550514793161556142864300221057948188224706285725378311466031802702807975020277451240443723780747607172849810097302704919100839918468994543094420813513621073101253071217123045022185563325468775194877587068299394850455139937171092631473952764123567606442859185754614223608787368352073946193723747194998577190453349199012517719794721261211460601834615342828690822464965940507921702366124278136265169043013844118471979522915106882544022627401335457821719638274169050325913991572899375040424609119352531057675116980260957397027077711885464928294138873022329474564470021559303770092425441999817507788375286588365696188619016556180164807865597504487160201957675706152643428235484735107222348577050307982578393791701046222722571751563450152162315260986457195570773895375627753475474626245941583980294803978474877174601188168969030109409089615993030121107922100388656283079067283088547256413945089360941149231604671824652622744471035408662385057103846868082021789012120297256387114689960616410854227708012486801598181056471843390584139134104886798340696447995569714973448841763445373689079894960523066425845865103317526130467597126139703120998032628004529406739995665063354983857663478110672056747526162252778354926546258096826593924375120278064238112055893553227078179354331909250170931508619110924568178346574341045701294389071736876348209796048468558287460972159965735019906580003220043379468705862968196968089816415596304913080508110362106155700072705878158242313824910301421890838876483367956707399486091398046258551259335617514232823377610462917940401194379225589109727559245437346208840016251469910125223527305317606708835290810311701266098690884154856454628727940127479601598343271926990180722845655661422279220471818409817543778173104166867639157991016339354554491301896102373764194564033661363872991595389109927263181455265493794199488796587563184784979407742488737687610783535113078204976476047614495611841651870795262484967798380754334867059635807040401292478006873462774910852457389956776807189573681450200959022274579346796386423964060814080361054934805522977200885288897941867860645387329626078129299652283023550747769117414398508498601006065176247187278805986911637438229003945423070139752946127198736526393768119340904029503013280810550630461919760557080342021474328879576929823388662245827259339337926985859368065012247673511104379569901741851659971755995636182256160895943474792395016675134649378559876410009228752564183066591504951915001200258919272236719876366181705294131694894420540095756200305594551689457745629690697718193516143730522944195587472196623569631039050317479391616791090613257769482848150222560185618970662179681704821639475498642562944356846178646441808556095925417657262363803213739142035253576801278775077993929832040696919641687859866971542115417855697808683078441592566986328012345957937992637631115307395016405789334278938551554789692505847881705627989121937345227032989530808830375466782083386126682423959678899606088413218000041240266750100554192796828434990168134829050275164379559467885589334839284030194125096018339174622655589489583359939401117520573664640018678788713370218565359788330042469720933187260542353477805725404136126459899374391552814326487731555475931087715735579898631932478138414295403364840051728974910105585253238797280490705273771491175974696163994384097572919383519564661823754088284543542214736516208131344586267931448858972815316687642068989432273421739079293684362010264615230249903520148360931574358538921973506490057381948454336677109796946879621119257763889142118156381789207024590030554291727362094303547128993939807864112660381675773048000004302885607362145789452485442799981683729913542479080049271031222582828600684764372609854313857590934658910746682221990011384387690255129071577610896671626136630876167227928973359312908438216875946201379859656567106548983790270303678077966454783705139964436414800208914387127730352465306957867061557145694286498734899780939066907923221426120909620839248351443717352008660770974688593370376335908577849897685875250821757843092612861110124621871382996427860038745038692267977153693005919784695484493132207994407755651728176423439920886927191422751919601457698355572882837451074455451659841004851318660079110478798311766889643137072140580540826270116749608777057991954384079282010684548198995239286613975917550163567221417468540976462078582534325728266785563547796999050167887104232551037737024457567731578563045818777341605269778005363285246838123717581292212723306344967327059799864701321874184497209328644848374727402950754993658049853885000269374986651089677036673796238917155015007628387888509288938141423701813402193107316604683346298206572153137933154105166604763795914281289034034024532214818698386799902578847230540937065261222800903063354994447211926729682843076376427273371969914464900356233900427757744915906397047521169896578271441146371379679089316336884533972152411765424903629194503264724083369212179875370265642737627045164906958995560985574125903576835428891105804586076642197070312920713789995001107505495003180129592824682603115467819032217377102515569227548156645823203139688749343483042790799046146928863938069194259559532540462261262970727546422190128245681490636464289782255203663087737272482907500393654927603086815135492573415475818717586960755608886763784853109799339937780415793958344332289777080077000189486063238255898023189350930256909401145960969644898871569458513726414102877172646578430894562801281404342598736644774031038625586599933804053693782980631115262332516646754297677617493041120752074585943328996268814751821241897086430554911830384617118997357397589587775838757974981033117696006872236326980884964977239808492849062419403763516192404042910659856711997300256383661754625656247174139022117806079917396469368614327173547560920846302484736323078166175180103998597691139274943109977228939823452560819134411688514956627555651156217080663983388430879381238475198700094909527062925620318556754292317655131567479008729136323493342502402507753181787924441841926364429471457984550797357677831671100499488173913431864338049540949900665824052817028591401153312297793776602869873495830569621579664949195897668056354055665706162865039372606038360718731574006998811191257079115954226538024371492735425973463377181227669115768934972937554975790762092288482362653651454887243709262368927857635960390297539226637811964656208342367023581158522677203664388013180894650996004621838033079057551817067459329088181879168359587229494113933321000138918936771099881721738743908420579090370114330400294600848291803994074064352364307646339258348741158141849502020269278980272352066382525826066811555311399135022506209073657892707113827156310350921424518679941605799904442384247829509020090417243317757855831853204956006929855847609887882579666269994725162913668351760498135254995801406198557215892135940247872284655086594951502042960136886503642283967222320222401272701817932441263989213955455678273716849836288341772742807021860378078586002626169375140550338085158174535791222224749703129816464232342490586227686575904351012181509620498660370994528880739444128884176976344758249355266477086538480720557679848814176317187493155843059873602489278978188618264320781115567561701168214714479564051769470532556870557756675149598791593115229279059850394389716285135633425067036686018701711794342413631003938511859939830547978930308410007899664624970368332414473198187022850515743743677007845823879892770100295027780451752819159727343549227739506616880536812058360786159045471877532049843051665837048678493487615807569684546908713766336128553660539631048812344755681264408170109791308206210909186417728025495736844880029535500496143218979118273160375976898293569000464267042820698331927920340461006531304821311736458702855554443630747657363218163973515563691353328296987827166953521159554153322451315078182696904084281708708060533907709790746597363619211994344215953447307616892767709517580553065209537288296074031117149945883464296112603625391493903892592983340843350882150435022003781374125666982538340757206988707114851048480071084707044502288564793996080843105038713883105549589655003560289175274922765405467403174023533382994494674291446026710017133513745456325612455267268867476585966363414841271777790070475345238992472616370160395197080334196845323101942608610627444689320193391207153218915304720020764078662845986112613231086829827724021217638765914184954991305069115433130102759824575764737130264611551682414428471350021307354189593020207605356123430304883734406810633645953019543024306409078277507916752279131106968696835385418383590017000370969834264355845313134437745322165730778334627977000541436460461248542403333062685633787787077841272106190816909350288378984370744118136240507280591900002045239560045926096984309432961699489318747803212826187627805696455221842878298562332715242672833132365075859320881099609889192719422014384875335269270640723428716378319776081715855603522499995585809728435701176650859499552367002494577133790911918455154309115748107710444522935027536332975186764724608682131781621356109405901767212838090477185769260994861180448758197364259760170101289174356839663001003406474817341467462500261641091036368358703976818552514360234848719112721178804016637056446174530843359287802572760129660152810987340035510537067982798182845695813223562460965533199797140580223801535863595672991063321903256693597901260425132216246770477380831366516180634338976375482379904852544490566108065126020609409589915319434533758772475691177154915344747877438717567847068811304809287953355966703664046613426843091581935579628177262763435698992549596201351470014068341540024116079903404617947482608126003872900389625068802234344492045557006701555007565594752987305290041872925250103233718310542673080773951318512551826402118182958987818708175576666083351082791049606123485715074088355297134766306296353906634783844653250151750088171484952321279348842277679454993935027642806926192543872774926334903502644520020463982821248432149438441206488278683785730660901010874039567565027739187617631767620904113074892946743120346643523560694457472359698451919508854052808700052344290217941569355984210530891702702496430113410020162076101900285741494776531137854528951381994133404774381566617113170543872356566080225815629679457735541597207235436817205336631898537299136065983842902566421137878040816740073884173985549987274874043166662619960261554355451317877973486482192033641861656323678002032471280799745462672533944786425241766737483483541915294756280015321630371061892744829642738100989876646272704372495371557928589263673114384276406810190237597433855209244046537688449197105158626122597777947342078006560284805809564956536354754104472048752974108715588657069943784264288832859933500382118776936220451813753305590980497564599703174352635995102676423765417573058959954317564223616219162016618529478085996886019512655021382173949509208453430669400830554388895159863938278145390763219944898983517339664758055511950182097851819266875261257806803399055979456888118662411232409629201611709855361126234488788984347980044808708396269391916078906561986514074238026496025168899557075757012524869986173440775786593087931554333984439602300730697309874089330079334201163352436762903524255042389274517172299784609596364510820394651417094978278016323360893927055684758899583803571374049074507834154161087186457153473704582509764853317539916893368207221659396545295330859494458117342198369063827268921192607763585773489383053681023404067723257059657581157653648654383288456148080093714429694393819575393767871179340574820232078931197859627942965026750999259373244542122621921055436212428790346677405639302946839507204710086338129513007883471691191678511154052003080542210323690962675399436887215081082001719378930458102244661312327052803373762007076962852137639865930058791589617031392069573836557337636548484715666738677687642948488870609696734477242988864145620229443765145782403447128657733824570160291774864947844116802446209580388905484365814380413196086174804848779282273019217822690184742290624581676736429429293143108144993486287798387901266722885114799680732583678244152358995395547518995133745081370796575793910015928371986882028017341177768113928410818279061734061059121634407494471216603345799578814898816530728888422349460390571642185388473473150264962327940170480557359717947155142800311541730729541477894654101405961481026761114260345934143002160598374079922025636056991612206699683749976820405504662717992433012127125482342092723404521378020894341741693690756904138923664949551213780227803302803086508975832459340328364745066849901922538871771983449823183195819024300847043579065458691732492168759508813484670155961189516563350062219145731832696441246010091978745145078760436297911687030079248212139411729311798633955120164549907955573211714011782421541903708866007033095916943328995214505277870191122239740915869539339017853416868107064318386175430550033704202138312268779816017862404538312186883594157965328261783381321805506731855149576659211586286740151936887547076879467778359914323831974984642347539059135228165299239504709394355584838525975545667455412921991599599029474370451496457176573995755684835101319938421632652240219960901823086585836216023102955440585513560946482255701751735466184464959141473278130745851652366325401261379139773499367401758527917934813597903159136991333460799192019362143784525059322983941888396372314248882889090736255987640522952219328163854111495527730721282494934272864059683410855060202212196983582852247781108902429049280025189388483348828100153744212113948053666437475857702742001881363311701029900543648007587965814327321363396347510234234465445209341350062878882904292966909257746966640527315122738199284849501290461159634046334059427938815382302103261363689237336911459084895192036535857403107002729161511493711753507490903275477163701701633267471644483804024957494528573242094694357269568802376035937437695512832456911396418962661074439554783551907277102714991900559786804205621135574689053058923684244471295728670582671323684378310895041900085402700718483843553616599890153616222781609411945539794579031797705468638838309118574233595677886302001007801734820565246240630238275654526272160721391357494512328114164030747669493046949683811937157884813613836927743914912150766667914747143026178535693219350166285327079417392233258467434263348768752202331475483070200052660721579856744565472442080753586056152620958935633201302843495749083572110836651310507514384524751537503626129609121940077936396379209564085088954114340396679870241948151746607718557123224855447891373637924498799074615701795238584334924626687232745744176098694067569332943547046470458368258732942678706970329572226616000639851493727698402721248630590642638155894870758757512454238494129147668627429887687585356449065674069543946772150624769173092810085992337469681145033038288914671322270612531507508071581536706960768860263852487380073704369465904602392075903154697829725971962856678514082368379741736143353721926307541475656387756721507034464376160592119432722286655106727862434642742063353770311131151866677264105233428265452944247338547711852475668248669917903049198334645110708902429655519340293664026965094352834021912756930925718052889179890342215665852441591515959967363233378190226705175993970877772108732039842088109888388000386987765526086421766253834301616637582494387115177993793644023538041332523127260475208754792886806510007960914538370163964211569811322649727520967678185295004856253729104066385301147736085180726247131310598442988093219331216544214270717613516835660564652064124465597172180713937519324785636374401151251441247811392619803114429693673866813807939696315230151102318705955040846421991086725091129058604627690234909135856884521811479498284250827842387974556738453310524208125214134729501635677361545096543962484187258046689465056910037356632279950128456128254962791674979896840310268574428145253898262404426927652901117884892202996161671118714978502579386052788030638826220726886853494113497760721767916554116099517213391170843688413361163725290607675727825747437098462283220537984669607199842884698671083449605272374153188517921966021160710578116921730882220732072078615496036352218568334594490213632433667115984329897569149676919866734997650920374367326475426983346281309693460074727463202126810013133052035775376443875348575284057036234988503131271197363695510858531770825164439383807162652528412218825320945429495847120306828633742891950150719335032241284511440544045730670747704406906338613035091674808807535615838389557240681610974143414996850654459338319543616113430405181971399919461604871970842661937060314870725922220065190070808569025686494272752834369512571022810444077201136440054494193727493663803883925880417598889347690309590696215111797872836220930535889660777160867025604964105556702216482383567612699442500163188683985127727685833618184624532183696324128265901191665772209819292925788477803619732452169574130595797449532285283533153417648648812440886543101720226246626145857318186241589815322530146443492956718268042608482445665386781746939819249959955651017819276243937395880981024030778268288094366893373114990080679644326884151703251616667973846859051157168791604841090831876691444697641192403603912302446426494063247211037596372026170343568969551675751510730027547613817665934281760820822189083876475047868250450000801042596057522695036882545353562167536525849510037224717448672141927807301502578307793985015423609802094364364749200826705664825444374300651209429368669244229090001447983952564123807390629138862889470321127166665334044383456688703769169833718618307840225664377707016024595302459064739920239646471323078172172706131758003359822591224220528802446397107206283717203996480007662173281930929365725981594731385735229713462937045569756014522740812586364736737243651830060994391529267170154406368394447024350238536931143800559193919771904053336182480210613829411318431739784411608216155896503494193529825202492279300337437703076183091224606944512255125692043465510994573586554521461576639290828144649564542294155726085263705995877530525174837884204218739543212784493803693303525246379879945316659400957035996082543672629130183657026687460968044704403933436802313797108696111662578584475372685274752289424439726572419559888965362737632090969503723199418367285589274307926385991778484559026593383429747672376107129464130704552220706448493949351115549401532558233856655756307007174283870292909830030521322803656013591054568745177427246395367012523520119071984998362029673675133095078657547848793435563175958000716624432700200079507007040148774409582218037143141753071490180069288156929567868004884414536315334772509297455915882481589613886524669670487094866784206879307211624335713019128449647890880207951204214399748571712181013405165505499466714612278312852465943258578522142265920407477662547690949875586280723289768038578616862468156782985450118855285290190687011281444075252081045275354606188958690757344168548971888462019005656299138862274026207465651550471446761399556178962226218339868057401030764414244547166309721220259422420890813655805056452503560725585406553321392998875165579578250214087483332124160139900985580714427835465610030247795164953056553488678561212043211145318569325026439351312836308074274825936159290380067895680522055198345277421065623491562060785167420218000669188589436387654480113760206179372363699581822644583496103632653514376368463314338596625731619543290589236553702658203832953569758284325040042711604374699196597496155645166538790769300960847489927250333817627721804841585757152992165141986584050928688076383573217421405844674691505284091946560942379691076742885187059039657132435594852686849046047695536112539428064761647507431480789990778564918585983012197819255925463834175935572901797065412797831290302455733458845822918725473733991823746579060713874487007135250545563813603247019087068127023995617636575334647898119350055140477026757617489328060948686543605252728399826247523620509170239266012008574556300884111723594279083909231618687840092466073935090531568464307136631337010174303151305300333220617562016690661829437499712806065291818396025670481738289562425265098477793629797949597162368841265885805397481348493422803816733751087231708590242635560584780197666144411153267849916265453542232358499858964253560719004638782019257385797970288100248821543233427817511121191358884940433673930418885899946300722388577295302359545652442236705862860555271965278411071718177972229264059506288571701609928798735710804449752842275130654456998852299780936137682473708826440607119742304736698067714279184890915882446629629899690094773464162502325075522274424538830118340495678011689741910826056959046525880271251003270130745821869694691360612564990102546306883970833283992418049131795009926713357475136225779810422112808195022464974903693474847047141342661429269630935518592917969775484037414196834419296751151725479346254067355013905148438906051079826982641797717136764545050184819256210896619808496479507714264569140531821366505058054671763765004530863359920794535870777824397194639077246437604788203645497891814204849137816626079590484040446416815784957444763317369079560501595473977912073976629737983065506072049645266491652422099935664472149350492948420394223314223106494753108380363542172541041438300672325291779391255172864459670594776185974337860422376602409402290943116329506264748522701936248845398247338210092765556770595217823764880891542023218483289983779196727929197450664922750693932165436642260488206290164054108970042965334400974587570174641472616912185724857743182291051760062012736641968991508710725882468657168908378334941485699990639739922620541715673305516328577478092002485061477948215446850001998415716639915469856990951823007476553849804277060423660197684558962736777496377852574199352111407250754035363416678570417825205932423222838148227468380982888601795346377716526884712720480106777939711077049044062690882873107543146185747192525523833231723731203502829019364390703391317988151338354276473909080177169799735057868030286249967427466575259170594666779316197143511976838159537354266361245013112304292723684876793497372665671277792488889898617095266825691623875551671946407650369876984432114961135716559456127405125991089930181988057359133149627433306300732533985983858802970495951321466759472326598940996807315162437315574047641317807266017884321099377388134850456145030359033851595709030602213657517535314225796943915322610226957649344695029230565067310404401408591576500396281059078985135851094280855409455758714764236933832162593901877557310776723707132283958807299718453016877898084915445897177143697328385234807291186002282762070190439222736563659019247550540494254126918408379454655517615864320941080886394869277502963357084577802555930124317996970378845343566980665917346237249067803436013671080603840470914171722068196847326313855350233249865222034752964354237135592238196321742187369877764433667991653293381596598361159307209696265267886687928393529418483635220636330858404096221562134569242744449054842267792146385302441426895416879939157963699252204113801454018267478816615149879627586372855165089675837469984771955963208515977484704826047273939895938281188835931311098583328435325946301872463081273421293234444809474049422219749617611802542009738547831113227028095463918391442362548388093992477332901983334275280386765473792825686241078212649765301451698623308618557949060022726835442898451139353191133741486479321962492684651899219842953946771989518940483265399983815872147989928843588829462926856572871166539285433503734404074800310519056963969261453509942270111752976712645067355405185027993280843870624365173234865907335533368366717585570853794020049473044190907563430221708917994112438661024031875062505219066925565370499001914040108374797707593530467558425408707566281207772547638186317143879113874487003342087394814091136387287253115674565150320356601335580053565397099808864393353933457755918953522759819630899040023536512594343848106176417974241401048154096438490882769766581318269176008189899498489606438455435019781249002638998790352364510151879381303541274825504866749690270790270230892192340458610225466864793317655967320799282995806162136791274767589896568372666578618764049754721242353058240038044122392474224819896976075161414907667367277627422850238364634206389056418467730568420672255542841681763034060792737620562185355931502483022978872669038889652374375748714587009135223102656594076335301805479268992616903252286363697695387783332343249733341001669294828644536393535970639495277911401251403856627758655614503186872228059240235187383039884282466229892747441879546026145020120980185879282275553260451987653659153607585109215433381656924220158524507814588021485011896812751204853791953718099576764695672333512037527922273453407890367223615850097903679935462113194387143911128987720395260484088180074626700268644646553992976466180264181991164482289329059949262094893864583745098497609936231306906976909496771842476655428611069137587087132453358470506484061005407698987527663113995565712577450883808398652094432697216661817222574364763661736610826524064316247134298621458466025065672745677817075244246742764015500067376520201414960130895577405436212397789032376606058544104062347795363632092215577613353094620700100339677458829666992548117076632863377431806220020653924966550797832607709858222315754211743573927461429843684998050984522877174050017145572113339405394422311237348515409192584300275522055927967074815230153197881241521373019134887790858380927848692531186364782877216819767739722233879539744456382555001345393797595447298253851662105622816221455467459901246286589372040318291420994643680658031256681156540652789654381740897281736514663184517135821081731214281569679608283449132791506020331121848823445219301164096629837179655016249762686140363330897855613744404407478200013414880301718689093981834050864871704803179455404844114002893302719642194737440389768501468445249087972991923262767474332792040443997055570066243234766284731088711385382918652785071479073855310000268934827132824916198716995680162191256357417333677923335961745388002101249478247568146498076373791291389107569225748048283791856657916808371668041314333870065598968514904018678711688463572386934101161757186645661791514331391029945273171780517695395068211430843514826454754004025830205622526348314916693830505366153522675323664604756372869259148140279049559406511313711619920751874441002259853449163871456256720070350691110977942401858220384994549435372571414629887903310389225117268773189459868135451185509579812740420957809678609584696538642301128742057848449746068331386724987963733161340464654901893016787112505299819217648782172217952128035585893091715771577847042214631972548882938212108432174893295921322005224215672355472806808886885967410393944474900322187371872172811799858197391306579002807419614570272426546219466760586181938516360958023864906885896033493568311125677144040273930366661039593909856636247881780712361880132529883706433971504428993431935353118563339786359238102451867478062566569011777429822633297120227880782155920543880215029799184738624782694910958213551323814466946285714696111537108260281463468078104918698141977788951544057550405180445609260838046521358281463945331854101418945261538244916011607860716987642372174668383152862822386623087869758682672017831435209933193823154988562771187180912442275699594958125567212823929591605152364749599230157598579559611406959720312256818260726140121713417254421141582343788120851149338308906494240050046587784106526589699400118588068349053736124903525057999894830324234229399524853331350944655260949028881921546290325132818143742813330621328028801328046605132168517622190404536790224831105935985686389729192852933630519210259890278719796077897478691839165631466461785842832281477184669719317276800215952262701501911082062881370285726547248659117291177194328989399989068876456465823532597787388939493789417802876195944714266567108482748259042302888954402655692243804385740117701541358656886461545912653282804482674228455799694877385939854326238644200040237706960379555333234509237370737370387075263498216843068865505579964145965217311955289069417783818630795318153188135306244845988792144106855430559152368120906114647103012361729409811286753941724280846123066878736484454241658236160496708785318480181919542136334859414483292207563352347483813141584286273376408332636755284435965665842027896401592381155297302634999119347257445373868561297134710450627915518059644245744853821806069023285941371094447294890937244026024166471600387834008213574620562749207478995538751903472074202309974217752294120701138352766450162755250370713855508489739556558283016104660423837392517095798942175142553983585845746420536149569125126734918350458443273194340743498598973427865949990793785546767704954312274713306616945878200755638704590248412259758398498869030489104438784530638636681866209570996150566982555326291702237660265061926078975615730910769352632893083214786331285082370903448066470165332597472233882676566403056532509921036234538589731421093860795689397757448524493048134650877635521082014041679186908109236836483692777124246644937241384527381806884537806074263200613558753773533327735036755131615320764439209478539545993309576898425442322152313201785390923092425407650864291700584982085618189219484967905829100708350743893095379493809298166633019885264523372429429471394744101740401130979369448893130541767836993705617202519284647155408293586532189075084980114088260267607170192218719773192352648648541670030759905137874796955751880909064803797913488806810411426352021512121392393805371061587964756741607065417908508499105329088297571959250832037014432918480641829149392304306644731788738892907845698440093606828117061896992425331463551939664034524890908615046782941533611124813601563946337823514911075343768733303591107337560335789523220612335892924547245450582582708130144066082242957133924346992756583760976257073328636030904032622523876772777556180630143455859180499823134721372085528756400168720324080993201946183644103354166383490373951316263500361627990377453514044489323703958278029534682398587213581048827971774368075441773923642088515539191432331436124132943718893733925628236208089353542498722580522927125087190456268756366257069312703606267960809899971201819549402610067100200259814604853369262197920607434389139262478582796151358951374909954300007686986462187820497239897625539861466697371894023886851808897999464250873625595578093257050537098735173604649510424613051982064105417798429092714518104277780471739939717673778510459444591959347648255334271754437446163465557878843655362435448724727486442292484834285976024787019707630564112835446035560975881652502699790039716849785871671695353834305965883383080696834780479317508043695081595307344543254147623974097140135056824824017517067520613719149813326797240191636002604105406885668883353799563639045370312879566761641592931180788897681477616508455931284859506770032687538755324282270270673622965539460053128019977475776667252995800666692531058653271018640171372012450873758815111428847515115453247737077824452040861701194662179536502507453654955683088169437106551763848836432247975233548048210853401134442642467599555172978132251807696583073803296564553929417044041075347722196562056286619868873459529679433916046078472785603148080801489188999498637927608401845259374939568505378830937380260713652094489648524149270093510601948424602636158100082466105788529480357284369848210793980884359273476405681760911862071610839387217601454087253106591259360759550727825179107464953909535999245579794172084928558288187561510261623640362681161643905609235287163373388237913866514625063875074840309199412046855762320127154241310454881165514571477395717677696586945194314661388019152284742594896206717799712770720506065937693474981245202815797504792225809591463999698613638346800316936508770498916275419301562378335807422583128260792658858265705367723983777649576298358739383960915728841655234815509686715756158085571419452221966868210483944126159611750089489191805457549800104649405496839311236880318893205424362586520494827668965556700522767513212253947047875642102710594689598576565640017450109311461098241322054437913139076894680126815862212391802754375899751991031759310738292949571675272296198853804311448414595282556318633529902033409132092372702478270786645090001541956176688709495602694641623844269520425225438998785676712850892632147844860877026095193524070823719564022155475874325423132933917963740030356619525944364015897489661727204612821972696842660603244090931938481045546642998721955751324679469765376787413059710544362104133294815283431663645014930262118327992590944103948713475328520808339358403498978472319637837487452398040331723485866976583750975938686408596638784175008991343674268493964124468535860793279036471474250330650924842434723099868615268184656016094441832063923899545886016167749169845332599853358143899990191596761030538925251482168848254362775515022251801080605409908808780896575122174812240548482113977660177248286781541608950925645182476160413747755146993224163298433048022479732206014653640479858773403119623359230536318046485062174330680684148927914404799234608598718100067598879896458133028484839030065783278849578459111371704877323492023078329361735247664494808101816383056112890811916000365246998630431348366011894165479340250945456016484156903566334867484659136966607683899114165374436606947872832853150154895910637349441246495632995385144053412831213676354710799053898074488547311473795176022112803911646114974856662636914129961399330334149275316970252896743083006502560137593193096772956109415322709235244162809029628845638085802511423055529217577782225912137129437621105579441577813198106790891062617572732484145274133491885444200940063267459962049070771769247968253973981970898990176873182717581646021572815553168157698850750336601280562411709205817308727938866572572400940415706358182675455822979355476856152566243096737862656689013510581097555607762590505748003143994355800048525622400727467323841896683546862009468792588501267120398497325560820882131829226775291031270332475813418476299559492956489838637804633139065647194952557061179336143031338197203767712541784823219419287032913524510799397440041305740866504230717154268306648375160170317111619397919081369204175635106141231644561965816997661929687560533307810112714958912607952998091616324365501222288206535208095596604009200642441100062049060412268406123257741082852341801791179005925718230736832438673927465460442384553384396573320318449382811056111429872758388191454702785645402163957493242004038384296100684747845460592690963738109958226139133044256590893338093729793698423303600448011846056009456927061130693296692288150493610161329965565111593800648944590980677978375461739596528299687718623014216866858405641621777913666256897508090740830667809108521939127973767731902470004696011539547937040000164564974067777944642699315041087619707677606346836344275368074107900242702046469166863739572831755505614087771040101684594216353956093643647795212205767034867458635747635691546004788538794102033576809857152930696486937798859675784105598585648847342918690251344850159792034195708454050028525228196415935425193204694122827043609513168806015985312757061327149468961220215208000686561113375848910741000573077065895887001567996208697609476153141532838428498640582722682397847808692566759290862487819808861356114268146364605535919522701800224598607505639480124329672043176751799243671697814703564072098697408832595201368635799892815627988010973564011089166146826195992738698675091706420141871889275657746523693703014998704528058796972646400662877874113023750443187007726124268253253359250369954136060151619280921754183605742602847321179133797288813551221722337825106248869812438883055554597774518866741240001407204678936773356631461469626280715438663920080613954399967353526343662089264841014563353042962143508448958227087799046913860228203830974511996685173191024981950870009618246849705914199670340947867416625707042097693322274595634335981370372939914868159196373581346782260615303847152750567493376226786513699845631208249763598623161487409692215448046346988830588635729415650215513305299086335523727487662714052234881312493138706994881382953827259734404893585602512182223839763027158272201247092483142776109440156144692877059879012751197129658382072702132844932928248880445086795056163257264799898783630831351433774053835273288189047826068525117234879086315577350135395279474725425976659760290438424203083647530645249516257859628372271344977498642320840496477101671511383494039747618115404271211625336651648253346510176280193459584479662220046519939163109611958207309349506632885156013889392807663194787231283578873615011067384983322539522712581631845304056358227346264322045772018919407146522652491625452823336584296349326033490547825150062296143277073508483792780577198940783771209717410103377718232916881332118492885795958245491203870734742209402058130487191821109477645579621819993521072896751920509264261190333577173563363074855476127025945976576786377630814854552027546031442262523919952878512781310412359847161589432953492560614507697052149235919714383108003496625215540562313519137589630267277681881837566850610866087549099680509925220010523494014305925341126286791384281654609247359543463026678508652105211341381300396953533634060760999550226504126796049841929331407104770655901283228227515603163424158871256314062534690358808440709006741881948660117430905150072297003382509661936948344899271646093872495984084985073079491718954828327866184591005809701062511821516124000314725950562716511024755654558200184660980723594177994044667076970256797055687238346608008018846080447171602795515283521567936827604870491971312263252329938234432278653520040663652219309379290305884271622998316076611496834077946881385866335029764779643764892236253416811964784278290225811671956933555822482971458875895338411332587377674687431491662849759872651691051433257073389440602142170973518975435295364855362412993436368134522268601533099584076804645248154960668274523552462614460692128420963004694758689940432076899111811043772961494088085591693355150284826465111187341653489189878052105669546996497940974803123858972931684956603265697900301211837448295354074142961607296192526054104171136014265170025546010805781992252271808981359030207640822181889874463658980820245585613630359905428033951797901234735012283314064304637053421115879878830008344305956641915124109476412560092481966685891360307947103625482561554419419331458835040010633641328550897911440855664640516039338435631351438570198114845738904710111902550305331962820687891346773704099763768473609303443602919424241657067711793222368818865378597504821913483786981022131303597341539704255524633390723372639674436826344776897780474015646030364221518709786821110980167387635122569918034315732479451866910666737131801291408974593315942962765219621706193065636227025651074967833966260979087480077321618218948125707948905747614824777128141049339164832525562877188377342642006881500362353740672236653515282703143372631537608581184668197594974883310370629926489734555918214441568931288302381170359015735463430535167795472743136908597955706086681416578560536516996295602920447785983375887944172498198065950141394968002659247850692398316493241683585474465727699031635680059654607251022640076916800444332664804024549857886602056164302782092062621954748239611365292993610350326167672659479215012862927521512986242733116513937663460281766014304822947894926239945540728683288667999179064616341272244779568698734691873674455768879056426618407588619689754278007711765337146496248842185526990112570142158371448342806811075267921668730319634119189074074977322247336529604557298784880541655615264904991188171449069378189483366357449991242406305584330394438209654571505661196086333275363271275816546121317742414181547052859142343105600882047832092676713602518953056976939257166460015368041430057905771277714825109261347356465303100356781922238254733390243548913204390360578958621127462848411332669242994847339541641037582741562134935085179243499499318493000449826127726610367207605375766405345847778082622836832803638754621002015303168802049573300026535589586367278835050888832032081776007075982539024210796763611477920817974257219763518335922639199552058200382299213354273512791803175598647937690687937589930838439315428354667148184473519338350136822773349064633554144428244304860349933701715298516788244732883535522528136107395959998934978808105824933871981986812697969932969378325649536938236029722700644951117083259124943335467826039952183158601608605931652810615497341536603868439290328735223787050070754601660866331800761789202246795909486584171525533402952373347324815170420422500801344604243901661187950551158653584259909578385532766427532357859366915030805255678332077774320083561160452635049954994562163349889061243963387032046841383539979625791850569797841643275920072692697483145504414477590285960554289007890442465195575131710245876917698804737836761157956406625447074953715557539499549252588016648656472583610905232697251144862797934701714792458413747744235011177667514271535543353266919578289853712934216846564950189105261633383893546100927466763221242267371153538897644016667197005294763737051967321719072925459536734880820908875910618637407866825325745457885136242779551562965802195411409617347988196354676475427804872231755122956530139362798785822268142648235229102109527891461611726407255732293633984957852495897949634843224782247167208490480997940186156481020006245574096389566774318178605997095579559438372602902157183295145452772355436549859131471108262129214644930930249444432015640169978789633097876631118774830146003591272924876473538319584234277507863425343838869268440688478713788669636208320929660884845375184512489094338785873992036435683512278670675536697643576857991841805749158634247242673773284872282524801582008446126531740193557488422188744875176470497333961268131405650490777405756797911165647000145610788454267824062602199150696282459978593179571980701076778054850227590630409385867053388908088930202517523559452882326052314666937604970183085004585550683095342772591152411981624943491894999220782560689777696750008260639027673599799040192917581200468822007559459634828674575796827856775005944235367198063693592973866034879239619000259778953216893371603280854537175810912147041392020432857256198387174180669899950615507479235515931380942577267333317811162268963432816979977826328819455756538043662002616322731025954708451674731261370701353266889714304375795689354196065526533022458878747795286804068609816833084069850850830087464827806288163610721711196420130759292691308639142702867582946700729621913318435293130932027875083882916600907666047805491623358264687274092744561128722044715505395527858255079476944395119126332144827380567162609686068160254613774357408483645160843679989360385468975367135196765810503349135673919997957845796199384026346386908701184777794260504397930487775619019109972209815123676148549311724273568428556636392945598750845668071208519799900712144341517113479558828119660517554854948155843754546360538022106364781915431798849972568765730422262237290470533551431848831105710948783057763149723161160839856986633566247593853250066552607363397288083030778079143751579573297152350755947935882136470828070472573726395676381971931582009539750544639552691921053422861988219144086775824624752401819957656260951947853153805764452088805248734369770979320092393467028242893324590207953807276813247515061085673463508154260070062702571790318911933066163464646610995961217306216433984914334317239461279893006461352987011900775786039688599075379728462381462163472958377846558045588328323841359355013753452892558330025803986276208082522759268378850319305955251264575333531867454080002477193909762387922472864443348981998425971006912034107751249403736355392270306110848847394823789821064804343203913364571711039135641395263154899278227121878570644257641630282187174822795997637100649926232309792315451319864008632417813956669489176365450866778951009398191655861096262948238636651867111442685787037718638429650688039550152792896497428983816536237901094966089037048772978681980216992815414459714178818750386960652898356687751419771863431618449455466414219896540596104240733729368282044764940275238013063841793211143463863662904046720699964566309243285641349239983010016694489144928876307258020909025557038681022234255132191765240357517485004850709509921622349142332203831167660760858196121064984569270227805868445319953169674936879466865726735746973688179315032246887358055808827539747697193208616595192238596322460363584314463979765320387200402265146535502098279132673065964675562810296748498982056312472949969308895261063445553552399551717817448512763143345257431237299454140311851708193629444369640641815411500980606158749245923062557146567864635045947377921876560085000393174490367451776511254123121854489192344002379176564925542345382719388033729701173209757734759290077899725579591106246022985074703925452886666014733085492267670325740040935069777909858517655905573246657294195478272343281822903005933723637546376966473234569453758638266276936468222830406206350104917381402152868212878484146042700149234769176532104618307759372346894316048231130074163129590658481833455580955715181800138673167090935832324060984647610279898224477749251599509077917345447963419291416476119204873543651579820675166229068802754123597586383206854758073741237555679516717683512914176958477659585588999714708008608929894911374780120506880502495977188949173579245696829560775744007264254843386258258167628737528927891207746941367038814676966166443906645996029888094032345172392206239823528417677368726535006711221982991480541333354092747361641298366687053684948143159298124526981017765812887054926658508947623306700971902091072391782700280510537103876735242178091010106749768452151805482398370980665716227930828471313297065042010431481668545882538447646594121106791916818421469561257454893598554987795676007161128253835791024695816774835253976190126498958795318468831200852211589516216851065763614249276185799453737673812673660814281830680526683024910010888274308976313231388864536794876619489833915605052826816261120019258693002328714737976912664662794449237691754078298045346463509178165918946704285239264456933525675865433400040163377435596405618693336759081454868151576031991810987700320378314095780224021411723085031301043935104676662191973576845837457705690811557662835962917882928538501081408227208809499505110187392952496420908079616532085579614873201962252121693421771973664356885313322547188081719563794731086194867365828936773630944786430867723705085074487842001402476598154864477921793268928986545443704464334684144526128331453843378854789038024993385582117024192039938922457073575083114644527562815836877845291853684481943630149079263117333221474179930930024307896719177339949094642561430969214590666240748939548945127916030993741826005575870277199416547130989657263298753839597626082735931891822347027019305366206111933070131755125111767004855139619082628336500923101469712667835815236204602717441772544376774008901974579721484672718829186062016756166187557252209673053528552473848642045469753063023916194744152834202379941392618153355239076355523520082889119667508000746472541508758533597556227951887115015318017630414247821353264245812838255105559288817506088707370392714062499239168712464728165915488133567590395847933360445591009444969759017009608363465035577283576346963436833035283251355998582249695750819797494875098860693348566127136106735582244707328174917574122396767017793869941436214225866721417450747252331913619450478744420622622310093003474065120574854822289088397856656015358673142384151276073127705234811372941806140790483092428256333528765496776102122415756679443888754281650764449092636137902097257165637244090973977052733623884532262418393777732801090591387624247555201515150832129761494391529877694926503111957980669335774895835502312883018253582530367319984779183736242424251768043326593844685941072030716309656850491386054478390123782079689262234298853520030224747716309513295986142135207129963214147066671213258401023514303925069487028393969805079115606864399212307464151517393671121422342836502155866499683681178292675968175550026657384202201101497829267316322665844754680927695255087485432447578383779977090881937933593531292288357076254478126749923837594311256628476314656354658942087803123865062395814890324130433260539814543845732631862470263870342914160497295613895195245658652781133755334298124546548748912935102192133843298234563158057813745155289983911922326851089669062755561435529024445088159820657343557603032520466708910261250982969245642356723973056024028306572099959940782163407690060231163013037505927432586678542507103081835070744003987278226554034266892229215919404874157774305599484671981020231969250694805005531586802039134117451703976073466237655198591814718692663224032136881816164023637900968064245745111638756940519624536776057161608384721137951197979441613623498948366099896825091458934579057821729961994057956474138532122031990343353668706750754113278001688376689388763252638763360061101060042190201592282026501051259578168131632641354934471978144055594070516509401439139696186633441513575871538252012549377245950684701108027806685763458980364161035941767384272336465613600195656951203886668486561549298570070651268503835269190981352052392155680094536064062967385354015414728281360104721408233323301608638839339890013178676982110039779272215260949333374143163353342643901382098335128165820738141967311674386447355963088039690149287887650766798581866742375166478131415036240580484098388981041443503469536635704456999040805257574765950037171474426377416707303317721184055580846257368294560416558210841420029944336981858773690942407208520363531178613238313367839034955263810023258993724863772517413900529131306060506546514626390418507137217132141253414806756818317127788118941241131425836726573720071744305160048941831504502017928293517583002927173800680155097218506253520963824866976770125849065890444778017634308139622453488894196569450397794592854673929235077477105527453982380292374885290395839050090331203868062637214862028991051960651884301955775507224200231687360488419412536856917956674022994808584318936279354756903767324150969711607897236370639252026700185017540689605391986506119904487512495774998001610110848860905480136555171838441556879023805446226515573564270217074054266687505709960642257724735654579302105202231697314735903441886925682577671821238809094680977603794179774209640899413534427529144151463485365072172680336646585330295284452072941785631273664620502806639441275514911309252476436390435349184034356091276027216331864840229921605814365898907367133661411185114775607497593430368151730540223214681926495492959548235061190203013700311788954406185893677690114080822425077498456695491008820575951762582390936876325903675191490063374961804585920486071613491194736999016580672189811490565376336982259997257411011290012011614603423006860736455773915591140813928979504914538820884100396362361875738612734309056426944094851430353351826639223806389328494910688496493194537898892194780537584322631412700052886161117304015481302457415963600059291880162441861773499703792393046045771912376667586977779976654978457517057076613188065225539538174240611358028021854852006111855566979961860196945169903646289984516601326354297383576894422580792922363630523031990287909803645739995362260082614359403148163730430606895745960095473275393911913459002800746918246313971647800656183761883835948638635290952778722079046869523088193479172422154131736013147225811026470051337196407601655415510704073313509548182217743035511956419224683252861239399351108553096326102626171637470650708142932723047051090082777700979602693355814369754853866853005435514172640800924151902997748922029005691504160360620734749701171201978500996624531990212086056660798051932904525319792195904371978033673866474838527103414299038283683392169327007902899833689439457090009989427280443850077245150172537191784400059251401058035017096350573261115607354965645606240512828570790890689847585335217179172979366795729589300134129897208355479630659348287677642993571268101575853788086608048556597712027415902770079543710803483809385552806251166329051413455770079839466312334805910727739259565345410115097620215018232810370858770143908113493286717247542294779431299340635553397655657412448779984716405022737568236139907771310106168255828323530660935492138286913462233853376646885018690371271320548917068424905846047918822287557979734967616066762270116390289006501181719390628030554386570022412913798081460410400747700903188954969097531189120968820390944914023768160996492447985475423310564636289126724303275842650429833229169461792839550743653991273552295501316686992505731497845750516510509727077285758680903657736915465560941559642038826706503186335682154929281319499350410439855132234672721517127897646790783065464159035050213612826886205185793645035400605245125166321878744660987814963354922226235645160935614366655581427303776945925916566222873296997456144442210344551245378193184417572395378865371002336262543632944558418164917761149710928015237873560516902760685672450908897432283714857222167625573109553551579775448155991915786831265210826678788430509945242467190461637766267350048708141767896602997442928687667904919178776162759642502131320712967015853829914429926361600800354185929154293712741086813698799443204146182936351640244273997323148478094787007545376266611321027970187769825264887094859281022320632829148637328293780307579671718444513021286269188921794021220274523271359820685433655127863798088585166299984737987185339748844250506912719922356608545693901067294443120029118576307254174910652902676220198957481055125428864109011371729011597926905632355316028870399119381550348393265079254640461265143150160417389184455686261440495554463780147186083123544758915305668426625290193442362740507874807894385673544654517970270328649792633704905220445517840449464828682923054988581245863173104259137872688695292074677283383195519015083765460170630405410615626720090025319008410096125136912517461092440822263575710522504009442075687259064186114980212734563606682155557161722289009052795478626520971431207483053643599734835284035496653530894157263827726688514446483913474012738953211746334504014373998806601549635514577154083350657607401020459783562722558254863431168343983455455468409771676909197608927577977668906511599381077132827753717087381987823686016308385523018500057074501757815505184473597270269874046244301246811399741927904363126273660715062123512203398555320162966997364602249383124852333771015009553473610692498979823578576864787415812022835665105471847905703038167490762453217911312585450166863241439523663580441080137138114558126014595518771354302097497744598935786495215438435937144051675169934835077627169039341323699704186308140336539429720948814712062644706498405751205794037922081353126569560284317323103049746315190698795895570906563486170625820723808334219169072544890842771631452401721551694987578441679261496149085744802070083486859999373961251776123704070833349283522997586585352902371471403262913021155288549537920890248690405505579892066458864513375153823177605878231975088785656403802384390859176674881932685802154599813747272950509707685881875464398486796215285210689059126589937076616070354127231526772061361494487286507152361233099822150708596970892599551234258779096834690861115199085445571969447108826085780343089998833827631127174932668621028706150755584406243978729459203804147434758900918655924835006659820177089156181515131063702971469847062415309654787110837998724394260530416385421300895341243499935837388693036425450794239661780606308164915036991334251677872518531786515825208184314303580311000921546738324701794277652410148446075450551808855245878119599901194070103896568481060686461467034930138631291624078359785431336932123252782607612825015401392049475735785355826959091275324616542340552245506024652578456509652733241335871940832625155741354446434407091057501735576220532397164785407075879888182904938676895988397989625034278907717559102904998063108430187399306536762273135908602074975928745909124519778268395779884196134245292426172371958123646112301373418982738982703113418729727272792750677426238459789440365937800725122865670104767157514415821863586725165996776202383174453993422986110213931390667562658572854460871440531031411505369076804014406175924004375789772092645552562191093945745932459321985181878807824762315938607062477050643993391078469827944914500709860414996866964170327819850441624410257902780264594026245563674278917394089440595591267251626620107242512424280944651054921947343610301299465779540089377023803018117218789034229086915235308868027012414090325369314295092806668067439797451986972563115110492680878509374827923319212303256360883569976473350139123306454118292214600559714075514090067611586597350905948279804970645124101486930477315286445995795539969775982860513282395648547749058706104635767702428957380546912040992009794691739404799695002542582114039807137898195873168902736126178381034875887795215276450782623960390626303372759687708807097919087310082300857960542462320705018215800420850396585346986959566666572344357695825535947239176864221043448617411189377903223806674666159977578581731744841152324228881897273364244758819486186021028381379069058946508166548666307953395096870441571044567166680603426098805724740963950749204361832651803985399048716791123105714204371629978006688314543757877467812881855184647324910266881507171523108251341320418364693019762113545848128008916192195929312562114960791241305821580647978525275175360753724538154978446557402940985961853189209479747779248497352729094491131784351062382654290519044664303899925678583626227706563055114665377592592136870758442411149079835532262075119009756515709317986497372893380047188316013222006290387251523688521976305025992197243663686329870408803992856132503939672346823472701670217859484263228137589666712051203200016192998549357312417816489341593363239002407536446370145030331061321363194950696529453526789587417883676452884891556470265916109587006860211564341771839491901371876060567220981258691374708375224549730507836734986410779366282705162531219759435903913729283311109432830367210221328347792073324449326739379759528329204461299761201899620210177125320799968211727509915046134542054243425800441002651944659624794625212564855798238883798494911070814931140798980619439994042033276043761449551959467042373265422592793732101497988102710997804977239257936301805138718475308659349485304705296383172205929306846551080040210186390676567158250574335514807450907013490291646265137838370243530676495131083279437318823381470244838878335270988994025901467886820285654473477955323266464967190353574510727668273811939936882700786866904209786694309468981544784660436298225846520617602494595838261271991436050621019458875404631113102200946768914832856934862196267484552081757333638230971594812464914268976523583184417848616187987417334610527139658607296810701887705142226171745261720811812886877269897553516736993519305622257754416774601759360721337833638668088331365899175125417974167189540478535981174389133606707364668746865341991925302028986540569250661267596505350170683804301216540683780314409208701405079241134736530953790825842753983829656322741198953646911825956624176339745870341796945027813122278251115712788654455114822030086471046142125211801067848131429944607008886279711639463802948174677287412413131339706614542862465157067286673913770584648517902395483398088149968627635571777858833621043669516303494160571427063029581661839663275597534951131662769428429500416514038461250397435257485206570681837772113505280725939072906080030966085366573432543922255893352955883573503169860761458089605931547835537719447463161607030880719186257037200952541697079147393561394273097484769761079832241221969364907696322028216986164177014256313652500707001392530666726861312456129343787266771298808106445750664205377701980891135757806458576886895208210958644906178741434094022718524465327695141087096834097431239953263222098589444966626594792103819473053724461718138346825827772242394998912143824908953965840158697929134577557038542756490170027503709473443448791289194858335283330718716355931180661555026263316671784525482785995255215473127260199195519041030010775075486376141808646730040910917538107383662719143675344037549496467038771176755764923584522098270567824694933932669931219644134811120046387596193266454872013149791064625915035333973833748617251916730280285097104782234565798276250135159260542570912253109935920920070230861788953075569430127171168350210632954529456417010979692698344467524901374897535863026478200078872717346827907935591375783508189957840333165130379493779998647529288140765529272436302241735420575480610530834650956504873054013547690261641894070504818925566615194368513777704857906485845287046890807113275303054645017322481261267386802326760584909509439237045284627983637016295274575655474614988875026397464510772046014800579127150527444091880610194602534248934968723458777261525065699694855309903086137440969682359438023342195173680604721706641776395310522903587011493528476067257278505284469959058859249701170332495817077036849065132764777334208898933865291518129743040563773790428975616269674065979776713468680672228659113547414807662037467551441434017039120512897211818625757538207333394527886805715045061573733432972145483268921934714548013840597817281716228033232471151823871653129814962733398918328014677651836717893413120175127016979201088874073090094370354608333001927481253985363813497050164316742985075350246011871669516717175769908720235614137188662919735590096382751878523762715136714192315981101329597201744168233578178449045447159375441182247252424691819264587892089833305319161786655251200486724161499175215166915587232056583856033960389966963564914290266851920753947390107651103358779420402955954598735193930514826143538880244191215750069201164998196719666440410639087648392425826378475844286127507135997233888714237444373394382324724727753919552250855321144064691427599055505715330945165716989600312031764711029410028208928060581052839590620852043478091416498422271148938182856225661935940656886316517483283636581192857375991677875758614361677789940179121316340061930174577846780593209502562738394967524101810903017000361996105565585825086512966918212327276277618130746358181826997339323143630400455541613702301587470650904560684341354105495464554149441056130995658645325642301802411089563148259791642871569774537776506613468108027782951075272953191875172389045329530726112634256128652039788087877539201911710968623676292472208066909553449854126619683484302819430913763122812416296417715752318821090888185659445810350702142397517149752684837076615030624295369736129693620698951574472495083932714168212208316270180333955537843301439981235376515279379063284436954094987345853695231922007190871909178221057214105438204120059488705326805458883095603416353797235208627953903580615459503935129605545968671410925290368435179772287300099197765961200968583624108860718841794828393867609508947821291613607811689294874663376063023120537994198712131982744534017864204854706480301638475114157574679960773952087480018738933210446467531553408969847520998259269864207205295457421961291337005949916314776664533690883602327170994119958641887261354927171668844037405975247048293197563115436773165222771673300567214346278641179289938113362225441017669080491771742789390737604400996129154127187347863277972462503364753430400186138257786392411928916645332983962676263052458489842632607303810835513380138655750013296630663936229236881296038894271495633004158357226234980465783786453487279924372553105884291345551477009581870374948594980067526108770350565948193297652522469757022305550702695216197196774088928352487319618245945672320177173452115348588286566066399064985433841959281373358859971045058046405749584281844504896836781089379432975916278566813976692317751737916995249782013255808018943843613935601479860140226420793584187689115569649368857725255617247797114613281392509342923123279703593366448884940789985787772144356287496436080233274607442379394174613931235376459489687429125713408290617797340280242871344118277921982767019697648343701825977593969769744448575531874662091720509180173571916446837176404863675468126775818106211704366091838026791294582969664959049111840318457928488354825439896328892754131850814862763673999997218655537741039035074530711721311432654569205528339909616390999210218226223706949578428222186452949590902302868373721783558251828352509876115816545711946466072671556028215533869075389238817866401704344962197013731859987078962214910855839436452480010922523203266062551720916685018301646002677902275992033051672767875716770492923640845383846885569984039676180168691380750375846399609686791943770368117740947607010765371264718532249858498003971843773898919395733878479752574659050413413245367914115237637684188277247954191346340173312117284627180848086306268006023551179841945495846967042698651417788275055345273009935820870942632160590338781484593011634080923237077973633309303178699396337098550498584452584556219095270262066421603159967204383873757820284574220271574691445803630912967308272830967436025126463477741551275120870193238873178641579405279362080325651449715303669954018646205344946697784885746561442729286143087753359890771658839180920558170087527917500731111317006006511879722373300819598684042397534444263299312307913705505843007683482905337516382329463248831101643281969955594184454804721294415186918453448805058521720370746616876614398706989951186881071533104555942846501680956861604848357680244435212544030611318575428516877216644616944761681981040360084858969213243927070360739564870524734033665951723028973022443363871643386181887062829925963441368650988583475680283137517940304386931684350719156141423905704126006791296505656318835822205357946208225641622924284155649355302466500765594183499827416490292844174574181684095668688490094050543499187057081035402097985410296709380165623423220518317753584643582582878668829407603900168559459840470624086207907213061440150695261011063786697200765990745809758298509225123524419897389949042834621283225556972968482816139636828498982704321225567386203755572756509669249288734409355154823697125047259567692330085282216230236028638161040918395834197943980956651119281201937535754139028978716758902632209058080684909981590434624728016233833318928123919342982003734770774345557065269944623874816218098730823797904090004006780263077991852714054866510308202187879206653074040860397014831430110380067750271469345250999921440561387805909216510344855872202362542734735810226502489531993434315397274575795164989253347154212842984749990808778794912870406877731239787592775221763595210719478887706207681315492152950483182571457275486877274787657156208459295750434881414385191371220188663186804595783660972214298329569275201824890188215354160619235854130306425028333379853278871357488632405587934451633324600281663979404181786336694258588589132260745361806631273630469711513562745610446955324729912188154619996816044460410562568673191087520525795577291718357073260101273200050111669362037991187479494114783924652652839503548860100209331273705740494451048483822581782728552427724812065197586375895807680888697865135983680360810347662234743156773913343164057858956890631402469839150771253582448389833032142591115819400958012493463569943021995199569365889304630112864990391644180168989952911575080505037161272124463289475238541620878757145555453688380428117636809624117552016772461288395416984216560144688177160875969249027661921436570352678090961575824937337788032628591705746597899540385455234614661663993302170106725618087209872028944596937019269866166993404448407076998480065018228260350928934926640044072290059298636968500667981545221096925458100275052793161337341384650822906961925742221712794806838561926545262882915424408069681988804390665336746930974231061731008301965365036753380521936600021868987347379148057476629979103353444905653144617973695847357086390235379295512253819890897248993579117870361982802537549447081519689961047505100356992165054182772784011876876909066381050782290232282811705844789210897221566493943400570643325362402724893123094622365710796785960027792039566717148498733130749148211010100670280180056792799537881268250332132152748426783831517965582356488018962619685415279420035686969617110898702573462955977266997615187886551420741819768023794602251718791257223869520594924029636305443465449683680837658379715225387169992227356442849867324092628515263045296156579446341332497640520272688502953888772938217541215726304594099709188200001228740164889061239782266811947809375081502584479351143221744042174938888531150455467064499130602044499091408263831917965690139150869847618902225725729518768116097345624096676190155330584753515395156724665508799077996617266713522765509592771312030379399451519447626643752872300879718511247064839288342468206066418609856296530102788642876616095599877970078044344050019033271294321311063959693581582701495159454152458251951945288636698266752134138149119978284824908306474629390247626240169886091682599056314593148558244534752544124988242646717690912892962080143360450001899792477451978728186852358671594163917955042143906250625645811046618065849956511127716793692037242378507352572312241545529883145771757476394446333387715806075786480587209724940986959823442997843094699323130660619318531130490651808801162077366936988304710412685833159611651692503976799418224884397761504156532239741560567058466413932238617034502157446086445493917497948844896991473102048986034860193281129771710584224452252922518525631686556567638497003250225057419500629239405085677018570216854178069467949809868408704109414025776751749063216784952741845951673884465699708526665495906023609543674590008714280789251311435237240770892803161288002973896967377456074332415010359710054934320943718060880376804059599097484168345702480102322889302238761109059799122428147978033273925509463442407646157683444767350585976661566477628655628053855122704617011907403793571886680594869354090630412143312296983124231950083323938986872246819856269951495414338253079612366241768138914517898423217776763117412033141382881530849106978881966553295753273442971487875719539907667252923013945219987336948784631717394133207615261017050548788794426616484048043180565170103219595361139800833344655991126018755571038849043053205969296112222946175758580769777133095158922520500857508559252265028492588553225326502520424514622342619218713653022749941224574712782549524762609698068283543682996486832263542540278353277231273489607091969012612222774458468936679398901805413234761522674703613039570135179873166173445308939689140333037473589523741125169430936618242603715649552162818179758988349456622429105015913219053164473235370003873732743916964882875462493016534283978012985569290459053722450550717412780662994950088671213529581385404001912357433379358542943830101269631873721356174947592641186720244062648737097533421802960643568927593753353663013234523537693898564185166109122255302564556706734159093305679166557409440991699278538442988879977145768814253332614138615861866165330444512699319675683188975408777022583732981496447858846738608751437757106562445883432036530517091202481112569366539902544987346410551444066904161381828656468827778472944304902827627073763444781557924088853807324964621952788918303229023368267685310528574552479807884846036890577177691874511010332164791946912078182317539423071194315054955230144924668501297473572741979623855408517447536304798683619255341805128866213221938773808825469002415187391489556802166732679839555453162428857934003430823102885699871947215435100540449069263015363322193395651187275850535237084007999321413910377067839008793651702182903089171538726112122644542281638893512799084820746484665866085843824456034542344595222020647752964801534345714604598365575099518099612503916174442422463259942139939405382323253253574072412956580494097261560529480627424070896790546842328649454025393765459114428430434785458556494145777237496373830300583401783209615407050248690799777970177594809943939431796130257650707168400394606898305050681775598502998431456450084996882646262835194795795760379640238334775349048554246779048379084027849828792227602230941058053014271261457435750581757165521665481173631913586530530443312659428107489051219695668732387768791824264171961873891457429525299945797023966469962740047894102097558680483381745429586026526231170178254046942659573983583353546469302542833217728884989285988020586513549938559773376631767347556009503192849223345147540371040605430551723809032093687505699684592655359919634359135225543089995024474765226500855166501083464289346663757271509252739248653357130409304137014453923347677234351749053244701476490002764142410372125463087553678930367929611792114357264100110521594620991766925642840222061283199587135708398225360324196677792420703582383218091344906949289452132319612451803791924432782050432573584911742096271204485950049341744869825858975284842175769685684978674167144334913261687317130635954456309752362749006658303285715597573953558030461892324705938073778086385595786953278644110981051011485605705190241717677232854471635993844588885327183957816577997758013892882684322417823946237472168027484792694527993638634041752692582442115208992768956014619619253472124893965395693163194188832915165170048931695544147775543497754618731084913080006652436593072323934011860497382827495925564314360496582252635610198943945444284208152053997952897713317968150170553329974315641777343612605276608039877415826654038644138776322635113056794819990207431717861970284083775159264598656857106090978909114919771092878269637582603718520187635030334927821034482188042148309573726361204224220817362096663884774608826201529763494683218106300524817511468810010871665194607559019531315861915269445560355181362402556007303035048628247865180972325285206103509912345745314149369230948401031732712077914490254460693414565292781492637535242057664382991328923013977144669134451107664498277090305217321992342408209052143832810832764275088572970811381636026716899080152747090257542546074299351070519405210267090776985747646239807116734025309875153585299056886094046694915156740309633105895912406149656729297052041729523719554613430557003843282292919307572865230389778491890016335007816981126198463946560011289086456296336623264546606334337860173503012225977287638348101076631244830737290501710539097000706269485534349841543162387034692197826237471737899132581570075448342794144811261685132462201772321056700597530010079087242652861805120344257246866878952016754750322948974226292252712933106941029957857012741404316202027984682760782146692230699716020829044408952736136374949566251560631552134304520746247217072066012566049973789272995255722957950959102199173192028131796052832671359260107139181139370074199432612873127771594665412578383494264074844637654523921264020323359067738511973921972313792281600010685903669985707528529922049666070535765728566995921132350583325027637548464308838973930677218771882839002590329374283390861008797822338664635366476893285853197147673011372819589887513508034315896324804877107658659101545876213981919348086218379001530207346958798753053709711596128762163607341142050890511848426023979880887890913047189511079927189778246856574471142164587412815602630728392073280327753487242351559057539407722949948516972071537064490864782602530565031724679371187330113078055813599783805193195610227485602632345977227289927192260085014828324584380549038549331463873456586620429387986251397244462547364909145696795418744688186246140880224504310133053318040312540851540703437033779547734057147944973177035811005089240934223519031800620217127748883856487146794109105935635801757131311770129304004664764329481210795837292085379428560143232565766563193630820668455532718892169093113442870943069191625255249356806845621311738785805597876861121177117044337788592456625466796325991820320435591683390332069203181354368974652509185540275126892791888454484593259308815966959850983224857902150856594777508137100679022126778241707080332033139862294850545490681590966096391575310702110036587583249951779804407716174769516435728192206984004703296212909967507066892387606984721844201132830485271929997656409587258878857460154779621329171278480293389066137256418361121904271464558806629137754079129691486440621283680979060932478493553127941090742848903852480256173843266548130158928416277912075702895223333505268187407880842814768681327978001465957008608190100773493590368319612853577349040964315725365782434989481467156539272723762209956591229309579446037039946979525519924594599049759682415947473722755191074691977008521217546142778388500828962458461978442939281040013072361847962224885473660680383975709401147972000661689717630286345809857151960005990821266415547917698148550952308875915704377475976485394241549533126066730968922013819314409690933789931016660372047947853433149511743146324058151012225304205955672812863684274706705435522962280963901525334914780863539305415933958515967614603208499689645527086153914731134661808018680020808213434085929161674973316495095053246107465139964906289684751582653723014315397653181805204131970142669274619818926179959448728627670293556092407222340480393473458458609367414043906353371120364392022509174614702184326566930825066284812604073484347953705290763023794399677311834677132045454244791001521504844839869197037433122462044775500831022981750938171505390662368591943865611336073593139468461704676390739941027876760018405525776163088373058624938598388950738954187870993058494505239906041066638657804225744978188971293014128282994466228822444141605842096860840362390486069037966594224126191960140890953814368895959150474238555320543054803719131234654628956725296421924336588219740840023996908184785146070209110533677752886018540912187393385733708550498214807202307180482120847090762208111116168316817964233109408812562616744959965082955666125327856590469755960578921905707779847828076632487279166497106167561026149222661937515129529331556588334033389803268808442520235587775788815062729763722772967126758043639378945054453834814389945088199709856587261860934661560347469773118463690833436378001049065907994992761339527499107914847184842858176072613477394448504204323690446369205839859627791792659637001844548264516112243266582053571557811209093281829978416040383490285940578626035835234779243692962852448023344626362185939828082583127791845821597293249482214729044934691293137794158592264423355286873139696495332951105189154098805756940707160218314117956259481331016872932552590855566731935934535581574786832422573872253602851337439006543923404373150361028733318413502364775536275052611194716334195546453325433719096116073371118593383653705813021351400011502114422337958039041304224578275376601078947682000442547599437066418340841923799166537544036787234080943523214406717884430430888245008046437554163585955747933450226689630480688142639746877958801150300122406224169145840805663256580967159884095791379615307581936751115512791660941311958618787225490534257106826890011563242621632677442303909249348861395112077042358853680110205558910597175228532063333681152209203583815672917486453355318923593228617763575351837564816153297954910584183430896838903608440811658574877915606778426844701291541423791490570732212993886016670751658832044575926094153080361203277449989711331465620207855319794316181936738639214741505402874443375856537889994403414958547983567473399745462724144693846398857013151924493558668952609273401440122105796167912253367250073717187750026220864030717648823518959253340176263780690064759663390390145083657523545372073235979899642357495128301283066441843390944362681459127049667804482532587814122101469227799033645494777631521980604078878476734817407806446973829747933497295137216067055655697848131075003402851655632694998766652514882192913599440628149677105522418083312483889772568195280183311125760610905694725833777502795386544496091883072738825724932812640421151100058514025275504492938652230152037983504008371746675453745731248901342576675797580148276421416729554403342388518924930825209416835242128992720215919369975814187759553076099745417802648106126376967172894613574289754810719273469097289323527969123696551034778305198269556857930886236008364157976080101692457887074935958685556059268247338237714330987427610716992920551469721399401080867523700892170831685718336029811728918655868836014365917387852582328027197036540445865235035128300470939587709448397537947835054327056899334319205478227611797367945011814860942938194544483439112898894125104095064314219010354753057353126157338804423870410890965303469167745334787510128325811155702299286842474228535600650122071816307835390138021087734817111009780982354273889728058999033375399213895944398676481415567373014557273379687858642409888274115983687199522257293843675962759876964508326518160641032468176744699308120229298999837788299243028549759742390982348884901777074394680093001425647648015604558509582473737637245570203079506755452517344331009969773619697223721635539520974375235851161466754804930572035005913741599865795073860453874595097004939092163302595449529584738488058246548482030003239584246711055612721727756197087255122925701260139055275507857738873081561652843232244237700331160742778522231348266270266436558446626314854448419914864725906201682775828870294884099613408740962951218390614012550457345445224961280930447574364928454733598021845960770339728532173290675728897656932745559201672677697024197036107233451000899666028360626611828756012478096985050757071915466853762749146644087803529527288887881099313053826436965127860592202779383874306116207481883777796085716892275965014081518474836240555611153344155573901982494285191152921066424475458228257020243275669432470363926871849759374763991509982153393013416739301202311007746506584656733091287160628385138886953137593203112898772036333869879270807494127951258535519151844965752082633270677758728457444496144736912115987860977499378717004854550683290375586242619662679312022564221123399193363215038865607648547409678692315565004732367178834239234740062830039728932848634543090897387981942672465773123564322463519373140253141542184796283822234521108560598981440476972722970540751096460608281602956997135726382623427720685648988982728239634956733938855532682825988531369036666492862493124062488574363077470740868322397619991604443528503383430475229860121674061390886415238352514827062877337827031068052670387885936339962972385890233454184573381918205500616264571192041346328525761033779415341229585519477577159641946234214119874791843199757587616308239517632150749673402996331450526064838740719548077675320284878902047867972036062736302458848792515538232077594303762167745748466666104514699739912932397349071411440446105767553557495077066411399853431626200105091971302135853917319540059275739713570834723870324516022082776770052986999882546831100570151407146877239843919565554958275314102579837197821333661847522965396335478380117480290493113052393393254298701928913613700876002922321085795069472357900739308397074202264444657347117417777939970470058718947230793069034385677772660538127475849808625471033840735509547027046605001536247902488211499567792738356076365282206375900088903311483315852697156936118865308792163528270711570755255621203236015970734636744113358501276720701316222810044436885936978107517226435683208646510743306185553599077671194994923456343188932582731149210590699513407089861202538764015001889277267135166436151265718534083766936540732603938067123433637168561094188309455290530919372274264705756652658742641660884808258390147678328805096353088663580268877685300036835130182029325211926691772639484415906414493396484834340433177980130948143913076550054918187776689804892631504483445510243063901741473938093708265244965103447865647914508516364346771969107901782507150877450889161136904929514117512926875023709923106753055899354502158537212831685760058402663174014350088379409653297519397315784697866222380809122580117263718449962718910049011698803028815887050928518602486171377528850638438981307843153992413595069875676562836551766836509061783435065671964461905163527602893183316259134137658991396503691946315675661680454826237928319232798896969096011028786193893165625419185487465722631095158687733242092778366476971398293184019892909805327935938635375330622999973848021876414423770905220617585363643969629937407494036478130852800151853432957024861216307465293888738893031935767834297352502732100981544361211302776369566570750864796036596733055196211107654577877334635800564302008717709543366995758977821261492983974851412901066417363614507821418834608562840327951312771465518136870372152005374024339403147665339433789864404704500585031722594889574690294513724243801568240138412528089124561901127275907319422115354658646499874201720820542874867977466543990305289328018516643161508002799876181873211900235659704504300941266613331140513520973849268462719557087667010342693012301991671971977229701578666293135068573085561945566369343696522399041125297149439805293760428972882340273672355577103638206747429959302943093844345111328796419301382522720685144581071791955494439348533981173175336026984848387902715162007158049056813336323361099730760739258947232892633726416416689068749505568331188760141891240148623091936023047825657148562577778235697050630779503133070366256893075820735442487518103059811775171574200533028586560973223144794230216110606518894441027618580374920504404124233305519530748735898573582371873355586651142382471131383461698913495348991455162453146077079412125963137576316298868418294907269792482267101812624428180240031606957614990840226140008805483945203340333716667641869243051364010469157804228583902029878130332278653683840284406704026727689208481254499608190737420146437693662979668142190650217032639079844270352589014964499219206139568079882037244227444555152216373137431826405089485733394131365421606643461634826490047500724797815168021494188804936631298774819629967607114254238033146226245925927121528133613452138367845881818171979613414478361287306231214246302091426821159897312374279784402494244219317686702240533568919328490820421497110097468850174893640464663348885571346798165493897680964380647281196600517304215389715981946546487316220291851557297918889328227229465938189280643722732414798679480345588047483730987868057793497467188523152539716857937497592919056002468638821009771739690515914827542839119025283979652390217773755772769304894892769165411310821244404312103389040016875507854929175255846684766387475237390479524332240441486297992058270594884061312100720561767169332611467205040321696652745179065739976116518533349775183549352369531273167412724830077772392752948914850297125608901395958075482699868524345485392179293015174038062031801689266090870984452945683256892326981536112890458268784350487208365728374545184522344682449365265805829772446262155845924828507075771777177702246513520508198259942405996916572086100432728355430485089242481935946027778789909178464129786437998358055246450305094336927464151204943811441794073739138771898142983588365598712180085284872373470732355679379574677275333405523467197152631067132338046051897483484209702358677565435698357298984920199570704418195446844366522176508936973507997889727226520792835296228569859288731180737747896488209646007562065723403300575501865227657686460930127678715652744972803220166556927051156709894563208612354794228085023014749448008294629930073105329833564734376586115172967557941328689235398677271443555085559740984952962782957072388374966660670439473878509372803916951242272411647997990593566527770432818938859548551879411469180336756537502367105787463938860224809398343819427304832457256442742789016921192134137528788313425865512490533610700873350943172619976931898521598743464934482569912097494223470517774271939308711285446961916095870768213063892043995317191324404383985957469883342068478222164977547615394322235849781786658122773100688228132522115225409981555732399008837338513486174848638891997880831526309919176066935473509371915239358430732700844422516148937529934942524338950677324417792306256430344725326535297746210158701838331538548869344580294078926299839842982972240961767114031263062390928342703381500110420402990835870908163031503144448774273768947200227890981301517333106390060737152674790525632447255587242161804151336131682070075236911827423716525658138965688442142685529065496895054049480343766886576180934929093104496818493848195907653234467295092578297592892059490160113718698594951921373338660235780025171974157316298431703881902283318736075260196909204427120895293769077729735232581683171861980309771451822669190696412604022220397902432423526841617606115292626920268491379655132639987485846692960310437786316764771049181369722615537918040898264822802863187083709511866994823250738078447698715297849603761780521717140912601693550334286491067132679168530518464528610200685297597250272989641010636659558759710205336145726499043213468025592331990825567999028281797225750043009330591898498161642357979614558625970235591503464016285271600516284119026660025869808906672938962116913190349084061387052149905626782341673163165499988026254381785735342996383945883684562292985951352022070241353902554698381913999567072252184635264791503743915367765787438650101552149094051170921835809800710509073868917577405845384142045112425097835238657449973458380486879578901645841381921724567925274532231704041503716119497069878108935933722354748773508483658065798401368574182160060853090480705167399992640228935718140320560909809116300321740151487706707005389430674988590321748949397674097744149640886568429530115698089428762225579938730929634283825326535957726266667205981728037298160414854342701659249969029523731239852197854916417860244149538350551690134483419351472753432193580076843469183938392830025057549879462052258563358055379436489649956223823438667642892696034158633911176166270563957683849256633226822616456827795800276855384620537438666937858665801720627158430154045373944682713138483747207770034403360936738147207402912093643043011714559654079599467161709326195527372945116627315443013751979598099799596973590362332050655339342493569697303270937050057682296072436133474222786090982755349553744106709868896953545766524924126240260700100744114076483168185645900836837935252827044035571760950486721323531377062940671485234995196159197740862657704309366856418131530662836636609231065886990308580777811292238951823580836660172878051305989541321825393859831714890537345404632380640581935658752733181120068815771140824727019440797938834357145472885804934750622773397949740432911761757377777034844938232445034335319229602975992640965493742416088722138795294970365769603288830308772012980498726070043409329276137870985545724023105275823487371175791493730740811978717145391091958262838514200853812502847466093860621877770259775060584779370901484268219112709822006858432327119963510343909668530933501750172905282463520901789507316180273761864837129104554184212392736188856010140058216401319011766162607506350019091943885244374784515900134860870330716169963403513980967561109984638632380032473439622874530262226826605958263503163490887949257006713496127635129580110987780168115072724831488831268999122850618476328782278008790807001216760651133733500658536429319525577389938243149023414595442666804969889629903186717813924007218478962291911217105598482960364674100016151181284285779368789141791417427030886034770799501783460503880622026934515161435332835124254658443648755714720652161270897786920396453900381137648057104845635539913090524650786948308411936551710039237335642257386311859471446134063180838394400394445206326485248164566609046974621361255702767163145091295011218521437909240402245507084232766587093735091642911524783414545820586460340066452495096236726792900908153495019205306212567706316691248390132033272567680092405886997514057892107952435832366731587250960968234013694306514117053539758758941033779593477200072387690462770957819025358633543732066153119308686807920907557043552272710163943875569249240399220354309307073527497249297902235978053267935271713043612506834604873775644148359265022878208411363020041121421259051683287952497950346078956562256257660449904343547447239778273469086160256002070969923638869740786328477616856180202213621536282387889027461454522186885088475551340467175656692656081144289227273378082416007571655155832664753238810138104167291997769533499539036016004821507507837286769921579436262567159146584399986972706475400464280777527619751464777483640542544384742259573963880448242523949619626348865620608989322676509909103815525158902233383299900325836485952435572980308410196246605814539156141127760951456859548748706157712901544984915421503234046181133609710630059524603321072420629226552018942298833498025144265789001515722458012616797347437566786839093666831566438139009904550275731624246223755999166562852140162553080436016363927636660842971295934386485542979945123889120399051765060826547347854121739210017645372093563150062256869584336741342486449294003297911432803139108235080886522058043901856510685739877038333037408774436641692841080641368356702449796783634440517598157093081376299874480131442928141065582310582199606008165708492406685563185565320846928957845170155640343022442327867837453122156452900933905338825939205287255314614408597303622850418778974285801912417849440167238049517765432423003119114391773275461426360503966455835911579263495017589794431628958925565394231474992536537798094005499980831630853684362738842184359237400369513934844414334115320853617641704668816666802547841370709359924661051344376367858374385858297786675924687744432897682283077234747322622387066846125342957633770039875609228403553728304147282737121571082144691955131111021767426906890062920999975542647592509968817748715460880568858142853850632292491803486177583228753427554684810125789180792229165738938907024833287603253280718300900968863892900695590878185024175523876250367381448068233413727143686682431373889588574539220888859633001926897155129715908054604558175121050539025029610660776437417427890148733065845478887620210661921137069877624073713824183206739478172889713795859545707118427125577560920105118379481891165347486246385882804630805947549263185212306917106015977625375231373275658753999136964795940207357066217584445705462765509656372783666205305303683849736748939151754871689896601092297299714368271518904911965876930490220168568020793044873667176316878410222567079970546234891427065630453630589360739352746269859930822867480783107766689123166233950614857068270643950834132444638801500405399939569872369882780318421099125393653373788581657804528919758840024965383644336313300587159455080387729870234935444218242330336679576896646618026012814129820436149048676999449071910405962021404803506065713832167506492962469619935495921113283492285014704689504373267252827181976996944111033495052057461780038121609926818567198790090059587046233575554250032382973063863406797531841739085286946646447856778439654967755906558065328759971469284779804490595964981359864073914171261740463156328269698944702225668791256494043180306364167957814777528712900738931381758142179681978570052306945479020906923830297370425373134856653040455401325739827063630943515448173899210049625053518699482065338470518938206071499298083750678518471837255099605323890525301365556022622893223847839798140237830975382133369966647637080621740379174920187169798791145703434571817821480521836592180759322849432479025376484759765577419096387964193548023465041387750960926275798828535787535098650854162031695962345063837536957594350583839556854504299697671916763559083362991840670564718330239708378275763221291115793253528213144758199675136398525324979144474618511394428295328467099930566137322054785375478330653942799475356174313111988405989512122011272687780413264533979521143984519246491630588235972554306957758903677513523636887877958675097901639657543011661845124813622812153812705882716391420126640253620068199987717083286999164808493263095428537425325085556040398957687154129450172001244622483821749433647162233503257911030552862781218704856918557283125969201928345099514950449457239950798733682567234458485458713534725142434050094342953029455453029795320988705382355740669880465292776488957435945530710000374469913673357893213663649912880843061508084070612117747624985456150012777534960961486125977063164567204828555449318736678423109733342477045297594459674467179827020911066082104070491767983338732417897645259420806026392509569595517375670645741426175934005081009580720685453257507590820183379222653315711038186911067802170813961860444653613109270779692185913078271368717402430443787202548009517455576620905911693698783555882664929648360634173445703142373298999702309890669752957901858854010869844549058492745629306586410381458630382819999564084199617692058396965580572433287222010323395760141122004027288717764120653201389286409509135046500524650867925631525430082833659303591346865480792535490184263603133006534235037498879649847104536231530092145750418467598494880676893887114397357662307240010872947157362896712568025106962177686861994580154447222662492857711076390212220130557298939052193695427195536319979435162357055142283347775341388288377259256949369599227709001819527582864364037676224851521668292088525968106596443661476680525419200120079079818305371299885814545132037107764964934687545005894878780863932032095795446546205581220484363704482202063165674801048298207050849387610788729721981218216205571944165849941573696934433278222247606340876239326528213357012386164879615858846045217147021771335946735333816189518357416212760048134106647432311307879176509738975013306762433665873824500268291899499050649457656979538832785641831220549615591242902394974041739057284567811179298638056877956743686838912429896431717620222172679423109189309589053408945060503975489754656128685444574457480629741834275330762269096733725324478823133625446395068930364974456972870078928775745471602199472462370700906752724344317035570759769187328126592506862821033961740763746478820742363613959679195184563273976476021902911756790810349026509282379643044638237670046735091350316090736260034804914075027770248599843838456666966051735709802276030878541203733644004504267887418645618909702702689534990258958142207510796967880689870458817586722274730950830262469200406284951201892487100445791095802128831578918276294721852535487006403610854956133810471206697223150097613042047116990234935999038940933252031909831702214095546449688861330838338334964273657484213318561239499631268569987662220144467256952588576797486165810236181474668763108889983600591516845043706573814456690788226271494186483236472278599328600788745258636756545990182344515405814108207836951800626099737305979236705112856033769430094413863209280865106003261219454847983843654660060214622039089652812616380271188483664933017762022411957929438690895326342783178093139660436301420763298442981724406252511909009226894379696773849836680832255939499968977119879487829496437983303905260949655916846812981506440529193559299905544471596806210938517252861702402243746195828308051332109914123824761286748108997676630671276426322842248801433167084695983873569665841375701756199495830153043327657314609364341251824674193416646365701772675489394587153778980611865607354850432427178295586068726065567105244240349598895835416464367164259798853087784831557280117701728055737377338867100615545971071762756976375632194961083031028455687014295971070964265115270421874959244341580402311151173664628900368010753909450039645895005738605781941855803044183281302711266646314962235143201166335102790730543661727085269554878202091728514556998782363914034401029520255796699910733997654565689964226354768768064991508143493608805453698545633997792880757461872969362707784417263716958648143701547668420032781140303319304833895764918549871117310474152415585096611750117624639664290242710292980850514386719947312853247171091745110846392534351635171764389326679514793212759672431941312358601988674377251101630860015649365002675284120472771358723602558469688455360863130878070542946084720522516740029528665635489347904594231143469027175313682872978545383214026021503720125399255069127485138329718263971843899406958979566324733957520090518743215450192564829216272876728342448187828387775151992287397918941684570328076828939894169151365245757466118217648069267123335719352776038467452310724175148657446176387539314812227451381780829979625471816744509433959984969742287140705819492949065255138568101890951633788049394661281227684407757421776578504241304062082095528765283122126816979856896494741284299374096028413661188437032849600548113019014336076434282404489774162450037569667138446930006767409924100063033885464182839449319188839388980025168365449180583610621518604452003040887843808018356547786807036673165375476634857167679677890547623084780558235690416616911859467889159109848206315718199739148522334576323168499637484666026486205864402466676849503664392737495459891119960440592896597950298408063387764180304525103212217942505452750406341638361960156201950341389967495795031021088264671566022084720896716958303437353398268257635822336088429195825826522092160394282314709929599722654503363918608701112638409167577616548313959339866779161388266370297495524103382451012468134553591916098420301871708234317072262182594237785850380139632132022519553021112230249086733900908516154744968541296959120773617649363080665436058932122666363066774395036678959791481215831001101674707818292875970465129666990343146074205338235835449986153424249001119463532756449152766645843415940555682303163798062596428688138466039552445920716866453426946886733010770168331637478956443038702485979799428169051346942598718414802056368834606292538742763806390525459460969937746235736236013232524752574412480877847328023050763588913158077678222969823110834935077949806889926008094467203379160322642905970505325136132015139953636293648115248153934413909851126023042002885800785508309435142645780878179216015956028627490966866618951541431769819740401203925301089850834069374085578610996102371735649091431932478763184475664843147455820766757546856147005230325737473159958226020223932216059181096078372429144580473181806214305190915000344733337566759471495301947567614589716382765438851890437468474476170828793494563972037419706997972774139709669834610775207208170596467731617553445070776899409737330466060156197234285448406337896876781027456976155590897464559101789151766180106774974590878597664382376281163969975965963173151580415279676644142654504365656843649125652176672283829145519720332542676831031134077909548873397349548345192049695135455308416280009378085591979206793391108485989032579443261062378650126786750893131560639265540187306925003643834279591837406364981161301691062150786741362197680238064062926642624869962288629853649745798847900067445548658827524986806641686652255905808586754261087952618652636724856376550670822719752277182439107579294292202327966960253328503057637955073892567873437567355853386687906190240252258323019905491220072135579201725220079820927041255420504286670069361711534196261250745485679642813177757167906336387158622469160686627695065438273449078792920052870393833674422718138078542920613309482208761712326278922694185354783739356485392757120783213187365569001754460661565957733412910008009857211368369904882565217055104147821227166997265955331319373648886845006488831426664916022923260509125218698655210613892113654665748699897085901079374729472964750119452221868448724405838609585563388752958905638400480784500552471338872851291472549103898754925810811035942746716208927191532334247064706581215487428293943018498800161364602513962479405027254993931700878039819571332618689614388721386051749046861985577087954091460877013965470295964798685481757548819978008634706434454557903312441336206703532303944282256461304531811035648659381441886390800657258324616525682147418344104997215998095202280709694776713809461987383948708025802787889644728128996820380574198683682607651920702963442501382868984167397976614323655118779096184170248616079148888921392383005580462783890660270580401499403243792167693361329953534303514966527870776795757460431538740639771462140445832162033765045869457135666490939256242840677996474722655571403110398026388748817086377692450584845714090339477572874982550905441746647468218419444649312319927673985155700056404345913684414584713831525707460095619884160623323262454169499789484199236112872205485812914454764627631000918553920387276284300709898410934026152130920682370836385600104848658329544762954014160222381575496593123703750737778868366729511693222770451197268140381724166253727165108379528606093601268903599498858417945274177957747617410410309954699559313374067217459119908705241823911075006068101402652396515239258607647110619048603190675131408660652351617418498764669418919651651419882232372461353623100285602233014128720466714832745864190517827888115275159089733608372946076177327038816629243869157230805933844893702413227535408089253138149355265776113947592656961976775533968161206026416517637649074784573356929247038244833776308529560610306215193175849360464291696708302953466743539043985595556330383163856997734606839343608498980994799264106373994416021845136301633049025545551113819050467413134980499999955519878868738454465432397825970461621597227565237146365607541495061209601731542550460114515564132463243219840317818128016600758764863420477708707996640357979754422184289682658658038488794667377345936964296588794889265881711873242473884798607579104473342768844135185448448509062708305459353235619034058944861347148404155221261885253420397675114301342512584590861259817264409422256547989384673753416816593934897032972623403641198225959404501848029158375904926688891703481676141524332672938112278220827282356266692933790992551727338198494812095483380863767786627955837375648783396219619764514314815758166210791555950045350457742033203318777294791421600678397773474922745068790214515499790049672307953460416914395907597363753078278769714633148614147839073151313330644822034105103264154612264962827697533974588643397944500613504852826216635701726325271326518285821158873978807992894578570996987270623128759991860213853928825583192762126332211948616167281424967005319382146305195899235858437321168621606729153522868621109768653156998185392887761597791095816513791954592331512882106271500974542853481789318216108878341579469977730597462916800053799415291868722722509260679690786280437538920167360228120165862886500545584483278121838421060564323427332798395886547667766483282386104077623027429449059138116447813575721376919910027961364572121330066996817877048519208435175422031013829043353467287216687343511462141740605576707707346100419579216749081163541556964165033262931451055202988242023914950483326410117711144764588577969168947935898624202443009004730580990687943847551607834353134376089299030982426442397570776170633343177887974233769314702199292513991537935649359272657147877689885977793910926347765456068571377978711872030001262751946304063710236306614049872262198255758311760808379954187157168238832075141914180586108679064233625923066269990979873872156673110000275411632207393284995976216039633002470971332184406175565306961346509479963345693772139883713669855987362699975216225788702004046028314305767823218027969766486535639379917030463422590136751138967299326222633477270636179212814787194072551519779218141788228068141623182775480312177660985409936953046575745069729240129703992187331164567311822496668054759678154191292369710366647186512366091845812099184290068324545028225711961805855616080301952271589425399550274373403353797791836956402103985900088068237476228767715953819204443486157954996408310997783055195765468266557723971856630306297952197297184432599265808979326375956774413838756210013153457073688823124592759840423598895001203086700522096478651893295920142521527392262486360458471059843678937990994171325940444520703717307452183508500918351105625337319413037571446389751960914167791010201896101111399538035669713541399289439333733622111726497603814212498207845227472589437587469639014398717962680992128566874902550860652592017356865305477392020254033975708889390650531878609852875759382819842589640073392291245988329673192196791806322263826401269179943942604021636126143268434189425776781254135326234837462675105646740090085653423190110302084724911393584614054059663588119031804837918414266220753729665097684275619196483889833243335409835075655382691022606788112008946681353882635858909791024805344505552607895742049253600164723865160317064381793698949311242514050804433333485030785873027337300060220692546912177339774764378908161564054800552034455830680036420504232965058502416012041334886215285235798365338290350300660327180831615804749674792875461463086909381101634210447615401267835195387753752839347944419981897132484773249237634163705371723071238273985566770242368191172276598497613990129001692920515109516659428323649168130493217899238796373707010068805179720468226265584349894663227456188734997282862379600848062602068517681761876907103120511051906295586639498810973448954414041539712196560903899901439316835931110440396608051973372868010543200339849459863460761968550913838626445024972890011281207175590564563315151593076728930424694609308892962598828538875773601616536300270505500401275626429792379286549114408100985237164987300962045700406232575356957215448558883510878764158662904345728604186364189927725799900838964287856437610388141958903678855022846991218317633537447825398456027397070223837248976086197219660708535752585278300950801808719199606993827971312847837400481907890731256284700652335575119846468522656235636089165499445649425845116580701288080187635231349598693845883505525967318079008984920837590977877914133772115805428978498746626085914732703022847640661392914839038849468385574401698403347987593940730166691396302564883798544818623900031652845825097852277232699971490563408654459588323175045442317815562364958062526225425360472984705333891481567851648950379822213664528142891079677977831727372067435875480906139669884890740353262965238727101209992903012736475739523346688662785361673027295084107178980176975419076435487237592521065085614514904734080254016712185524525015862406131829961997061066197683346111585889932850581819560066323212021305916664193382642962835800793004888397708812097676431506844364196871010110963085413318473146115398383732330840459649166917623914459932197305857400813127700672537527644729396586864328319662291522603229606594930844338289690794726823131800325490524711928442033013856023633012756359148974640405324532034907916293918167353702411076392507904137656582136473003186060625172034597039684322987450027114250557108253599887877906540758007421340073026137714859487877754246916400243923278388053988815824325532807903619119309966907023721751261115653036078665745917921268213209951508898526966966229329152102839347587522060525605230475981367584438949187360996905216347996280850291824030180432403328033004207302708029064799638281297784725937049592510818241556580427881916926513647793596297163575579595535291345402386734234864555877061075333157716568606431665772373479973895785472792201196159412344529773545611655145462515072083439965662537673986047410248856377802771692478062141281099218145508813757917730938840824140748873009126282643459242540498963418732789009710520276670401044184398877662061502887814050667572646277036464142699330278043184033613905104984108821842468352746378062915295576899282703270042767956796812580693967857139072297896923699995920089326367766841020912679585639061236734474443845658446538509105076396113410732280691595836611577976636123266826315740361018652138541231893854687528541634239795340482593480345683360379935448792383332927387837144402705203234130387513841681064087874480289086953629095722675255561261835394773431880245337209659206743782681539561694858765143293854931776036899351693011073083789944330916674662557875603426039318936756148947379389240645376731480082571373345697273105945343484816347591746324768151464090372323045716468535078390471957829798988771618057109562165266982331171524708199019087651102391863843714680744790257164790417912979953519206453021163801413035617940285091528136409547392549259104685212616573772582715097717166634518590091816935820744237157292276202199219490202007995659045149749484698928239850746492787865788006170356675230813969925511059501487505936764638521337119811154554191567364746833138521346096009362857876658754963673723466814486723050885384327003007570489165944846196432816463047625953449046816857884655213920503732204165403206550419333500016013366695918768485620058777060129100521402889065288082562606924594539337433440562900051553250809855604660932261677993677371790956524018052670270128872682830561127441048739428346924628117686671162924409242197999474383974605982410683935954828633051624397458503618728078834959465229304523799849069368594243818899364640512951759925542063035671422553787060363375279507591418848292081682163086178342779009178029174802853080246854520769668012761945635206573347560941591341684780871549149336557660494752945424254324481394985847375980185670700708098930904227038974015383200022123944424296521870923735802724817608510120968822952232727371963291521668758514733796376524015900211444892140278142876030023393769785559523078733423871733982882636050742193306899437527581575492214316374924214793762943163288916567231598438080480401814088959596763878680049815700637947969149627204115218463817308886691310183592437667734697932294662807643400399626542248309511235536117814235845293776366730278606357655392206607619665848198231116854616878082655191793041739683783756302606034865048938619749794131204170087466298093107779087257793617297086091346323668438694890415983441593324859896188315558765971383518830022940702428176499725547098068204055347682398112195434679982895464095498874058952388147380874115295929992272879711179683480515907812109080861731888430602224092134402933218333335374286130487733932492308672493346066510535179262334727889972767040123909779759779744081292986772226624932977966123956557165047232547397643630140960805987763391455589769634008080623002274503067572952993539551619328666438029026473531526087526795025309107179816063433169508698126543384258583505880510364796143810873956407629175297994545868201846568338562387643902244777668039402359512292128028017755706517247801293380813013612002018765325477110827594311793822425601515192845784028551639233642120416304194262928704013146271866947204689483422249564202667758516915840102308002546045345021594491964411962060745759938946840609093998474215231723323098038674864864288050440562540092724311732802734723781646796585072198706509172328225553880200399041046710828547666852336514749985212948348330416034345174652876706139238534613337996334147737512943796298040763143259631277852305405181660795625686045004045356346580774997388339122309987113753434137125410078981731505874309953179513507993335407719639090308405737212812725335264642600945045776913254399470294213772711052858727441646566543657326869917324981519939916506204174520902709741008390192215624179420086612349561070139199632602965628028184160116172887053821975183103191904549276608470594908481149492217017634448805244304818037522199753902352732043550350322299733025842501990342150632759173212503106103870246504148560954521237169225852968912879760052166605745338747950562761160550730285366197094009419615309962823362709726701248975861593682642338599384132464330945407339380536611548635106243423605014399930311634210290244181400713931711082146411879977748913542399143161951127387860183815592148659192095083726479689509874792029905808217960948214454485269346986824262983157384751253533287709273741065601674182308483841253307334949903069426857247809825390640367163164975182919021894192795963331314459798008628411003016329120212240750135929660460523181704605958847898584775335076132693768661406446105991487863414559178476474140237167494834894129603039250189993353060368368341915135917286822903582495049989376450773526807485937894924970865560835531640411847803019648579733855010633407963745534665023980890057901690347429730279142059034773021153428175328158925751664354379007571565696047969159179947839493338583781001178292935889770649514768362109685148886770306706117219733330126031533764346012141782953495316677992012816659155482855136407143500930827162128496997108620142742023353565426137046247778509414156900338247861501447730894027110077693839012186058632717816073462890945818855057458544670825163001287702737378706026099656347778079749196658853154517382458928616058516728969842270875798517732965855740749666951946361873717093875270787662557251715306720691465304317034990828976273374605807556009938330971577138954209279074424813703087859563913792888117459759348267588293381873297505606632847966313017259930881084303096002766881857198063110663478749304723591533489590370012839858350076958845614941514480497394548083607292103870985985742144165825001111483298821328361466041787065091985044308114444347129684398456240792349377971522632710491729487242755901032726957464194350537951982777306337672780663526931830206609284410833582972959894024583432600046635656566653504309599990355419651746717854747712759705560198931282220838893611624723888898891847203518913389237028791882158189137153410118625057677943611388048323909204559575579156472701763457355296660569983209572646230762486808381930609777870979600319740396951431709881795417101111827091939206680676404851213939995961871831837240844769422053362475965470254499012108285786769956115030333220433961245626192792082505154035347606472437029947626632268069372873686245240712860140130361216054000534352308928476874726863970415075020266188716293996208002823447398462633080773619512412331895463280824785926884651746234107585992669037501920764444727005066912767462998065772589221167221257939001045990700935890116397187594262801104236937794351956430022862230631757196713982048102294267311679705174429379362359338256144337317645875555939368510176026874723501601555307139264382413493948132538794423960841387421473274265415274166400650817828005792815475742442102916940308569528406345002770550017845450034658724355153122453925859213671063434530214439148475977124119563600521403375383404608928297766226697609167788834320950634152218860614759865374423457496074890479327127495880392042418215067998246084010209746528612435539396870532070273147982952561721130571587709445180593294895301976868976012099973120975666587183578941846657469751952424524453429809940631865263725492326035192829160131188405945743247160444321758188699730953699137438248411986223217186412551861113318366137398263193413115833325098601607677548034593252573005931887628779272096151002595146379453994204576483869380537287795683971789352482351409443539572971287264059916641955182613653381015968825102124334614431640233949186566689464031720941689379450683596667227736007351694648111642863413546641295671145229436645105684630811420353383108553021150617389459792038350909394693685779252866384115311551544788398995978720715069578514316898427986195722441518490389358429828255214206429850798710260614212101422726637782738288102152383927308880741087050718164361656436075991963033576830935311685412592366152672653348940589717570721513536712754742711071821917211528910291852736509732365143115803801691166275146465163792593683683187081028371205139983180200009747065877618014903271782301976096115409098560930887493075168993520695884766486833792172513043261819819521033289401646503268207366643530100179896745478363209778538987369837778288358808782319040568172295450886510820286094639999804699916293725742315667508457658393591776684659981200503520211027526629974508539617745052913559577939177461319152874979946892055129194762147389080935396377647990772461428716220965713152575093329165301486878022208730173930314354800636523086400419841527639642155341969882212894124797038942727194093060951845203166633455765061401695645344519520222452902877824062739382244707468390219113618175963740096250763994587532119401109128307447435564957442456541163401234322892809102546295317485442185373603112398664361471489993101620149045188159586051198996917562313520714565630262520087870757311557627415132659387259958837713196182461919500070790445059607378095607269594390130640436433566534452235998849182910891985521718123612146897224201422613767795004804463998347174793413143485948582952720536841102423806832460735985926224389139821712956842514111534953039461984262580795355082063043061340324595022401153497189530184332998171253551553103068357657641673737496198705437155365354357908839036579446073899704951731869801419809787868292818281533089533106659876397030651792449933666098424169437272004578508122707928716244634908102693691995349826759442980613308656728307248149700785182887264578141922520242847429958738900293238054210650047979578830288117009509978476747092097317446922993074330230463401596080897244280055081435277834775043346610339152470280483010672527378994321793612171010227191692079023983832212982902248347110534685827033605121846531542007019266501578001559582749733548153942242478632767728388163588679770530026368738234659585988433990245231099768657716090734147691131684611261297994356980417385907738992685287789737851715646777509501615351881133662651021622465644460335744603520154745064511916492925902181382056328220845852059921503909275642510021962562650448757283570453198983676455259216105945483496078466275154813734370160968333269612529848181955389810723981880251244766271106797567298122996170400482338488541750309030419963825880639877306931439613190229752308136761245455088999964993141114024658521317648767757729450841710143287654404410010138643505813103016708759254286622438094405718775510500574863554547838082653306632920522104243471061817521749203105940891051522305578887990104108876847133013067122733192477948164462116232208109512448481768748912129048028828641937853093807752593490032811045933564159925256997149222747885411058735952250366087291977113095377233093518350706499808421200094725809021693804384038039457137241665085117450861426326513919661155317526091165294613662463629847862380660626851857765556796522877596795052856638085050089131759313244817772608712449509411435876862338576130501460904430899538995745420456535896386354396848033137502846090376855012310296606566608427543132532515125564705233916862336305187551176707482342234809714831003858224140423838575766345981562240231262599287856947105181618670521213721204101040598261508019702135496277987836658515720365588294352317183651140940042274046786538071418392779860282233279374964526990936339813898979569379776279156356374184069997738007791219014175396190315825550549190715885607165294321030424739444048258521420961182058249220929113957826859861141380655126029558541633196662227684762551310595561722923761454516363297846011994170616267341385989970686859382163775615066049932580029071409012898762351395636904387166839662705148055765043950809466618996839275379186114790941882578219562397847623095260750651905741431766480884357006201729677311264283516562040311743228397284441996221718924696347491866765899765973972815327416140325280574989653476450771735573286649875695404244052586264530477850455966428744025971355618402610618404064969591442146834389878750645659564972252953608526185506711394537168175675891980415269070630146316936255911934778596197241107821197976950233503101598057398541819764321825791015429117986026054414434032771784081048878787264622710266258252186659052002081906572069712739606012110214019859895267936965325776313562256692866348831981195196567962547920407525005515482644520970429519455826236663373852660731865125374312521292044329484777842409721445312831012992107813893700267117036588375637112121910042985415975242667908418329169411237969277229776385993127988859058079603374026682835235666183283049514161688493226773567694589917778342494926296435444492467254532727333957325792933625545466395473273851034488324426939614727010548710327632710217150452632851604670912232894023971076879638138887965160258610848210822398013245526651350910066359788345730847089808734077814392727877702278890762325095061428815203275004492689343872205022990182128742674207796436147144272447473484784873799786853480808476181338396710553343522436747477735742296006755948511182153136462738145205833415968349316349933969642911147996562421728337168807043401111899525937742917468147073353570398005029051137825553827447662039225582382107446196643467898320554050860828658121095434365694090549704515559226481167522200661324347896888406394029687229655483930965250731177716395127871930927460076192824498732292050210765474561289201496870102378510170140062194329160494961568324143338549185860253441897288235547574032774434943359225091013170376343740530456579278298515370106984628188162536685718597846896544358618564001379029472532830252289521187402757786665900348574461846916081576255998011859454633391783431926081039531444477313697239017430008633990620501396151701976273921639379701989443688918111656290404494739193747239068240875646771131915811696752882705859608006833773703452938342565955413488653009547434437353188377115693540388477221474368866140510316612832855313961379711150558164529900368352035985653234489897054788994118588560015460207283299546266935380377439983355237871070413829487622269687306277655016873988773827757399956575700372563072189375096197376594587547507313622181752352006579289276171606691063941905966762256238122928236869594387317480885814447990004318224103680781022715735863676413181459915751076418787925773147337166288547571074658552652451889881869265202664954872398200516561810802918185828232647517187005965123959488230213992552536887456323642501587888326658936294365130583106631592697321175590133053844987634665715510279740019601604829250674411771938046599086051981238374427110398278146123161202406873565979114754452251064005646817103865492126969139768633518006187354557820372297238425189247429931777358933438256139595701131560630601824241296886116798240841878627100030762511474886794253392665278508296830034515230557970047951239667776593309494101710740073335901667482357178542221950578878506988486720869557012234135450343256182464406263458527370181503455802272517206130043217210055608549423190451437050751019060012240549344148168397595335979790085086549486443638227143775778846919015939420074070389911904811196532483801536457951036160923802628307391473964223241730078335844753174997318715713484262321445465161708443620546190604135035390405998236839383582993604596204082651201401823166213750102465545271281138128935564711558252807754522180696138742183565153471276946409488068510911859560450054860261893708537911133938560287157657493128093883278441615092325783353397124644295984881529203870352461595778294661473371952879272027060977797288778596402629066745551403054105729324684824578919826447783173455341705500145683499507597879505296062841179764929888368815447878802543628248552417450006324078274370671801936234070199460004724862529951377323848640050547428240191318122484825506152062421729546398057694502826313808831242683195147605280497981836978870075852587166436990365120130431023020100382778352536984931604891482111455430818040537484882174100487858600065043894953115217678573399102761858022839186197745760671344131564845656063712338885203741147603235142166037969045087075516247277128814154666340014220381171741701377375578709223901210066847069513297589888046298654157692319656134296537499865572827544272145087387741906840988466959374931951783975776790054844165291326182404839144695338916519727391842684290764070473649640304295339971836208321829354916811018919881395105450772532187172167764668210186091453998675273433987221449455670303190384472217228360596268591855117976256365677139523263093792375432820468191263766566003707325064354447606078576548959624025310914436408246944714778062934483293575400773483955158161084502637027896052259475609206988014715758789927148990142322596964747930592639765831257060172414787570208020688699947811104617178202249502009495894324346645297748729152368740436824503186420773633684607788737333745253175489858854766692360056111202038060992529010638566218787529375203104514766598505605314292500415229830944817372656068015197095311137463475001723347363730398771323677981815549748483237375820704639584880722361789072058467331928199544129577436985232601760362677489223148245082161242977659222492064967536597555214766556541384007443413271439402411257524302209709543914335979511904839544759448582486299735255829088284601093333802629705307129531990281713499550933268276981674031257566517158517400089946436013163600913660002988697554554469295830634571101019611445352812200833773973554263522864044090845433082245524110620386807142699665031838711137643304817084782316660535280705829107990200091718847817778109954902970769344305700049459355950473794844198311779870435060503989052030570781763098890874052839313817508738494484502882411805497463880472690310574051243847029956516105219307150504609190791550658717564317585507333906035414208114945392009835526239865073285432774955374896653807639729653811611032607528589260205124683534945158042131587275945276712892714972957232854328263002702559342604162012455870876491400402951960484105070034720403953512241013917165369107346592363093723520499645346644876945475221608808167042926053415749105194428221720584145259505402252746908463217550881236813123319026503593546017267573347649530498500373703646532982662812347229392822797382341555616606805505308272088945157757962585441657035704046638847002801450338609649964366380437218700146594393492514258911235639125922402254736678795018389444679162642071705029022587161284033174318688600938437479414903241626970254037219505385429613658917716374381243194705577870455671533293673743802390273959743758761927390424825302899974498942947660800043312711945868083443636115196905799866049929436710495321142647728469388029103545328967389776078839830944481734608667491926566696548896332264783237110704403404168327844924981071758375803497911994951935060847167330626492690141215290310410524379158370497684738614115504230624548094216443486100585839419560595625692598638421900738886286135890180704463190309142957802456091026847995790495737562912273765391307313431808754009464538388539305959074748285292020660423453001705580492683412075621385797740671217821522245037111306148816504015624574069578116086282057486126589978349674636616730746733207383758029393782612117963971857098483734655973062071177291340201514285636171979263541472667372994531768986283634057914133625835117559163430830889686075375519644973004218763022591168719057243330494891581146403839706078646589633469107310160442149594300903567728023522075216118870057634141086893546519421200858502659255733421815426093789178402386077875861188146269287817360437807564031451045411578210755281760110631688395253666758878274178045159641792372344129714174550647588248361847364856979686584196515859923198900896505522227100895732174516069250706404003766392473794136732774547862003210152094394365219457400017406444663531699375175267363052129848572445627789010351334019686780192156360525025399273960136308433846405325835550698759649391885735704772324678674348788627582436724873894500632026623150181645327667129167107365282621680084316821746096433317578942234928270415990941284625450998962576365466595496977485602556543393749168048561565931328670380683852258967057105613406399558422993268582480004410152712406805302379713592230576410448298333553122937834130356158160901397391235703266655758642956040129314097695503193251628781424920902501277746773067933205526841291072684290423671495224882972626013250748608530306715880613982043884655723746671575696664167650215889309957927111815892931636508949904119995057078545495330752035345484107725660225926050924876901808481211846659275916607490349216648109435659003951211156825481011677920508950204141494790091171387240565506499897521963662145396593183503249059812110587411181643338037268007606941709280246249495759624772314187877209597680249944152624945977873778070939131207567149107760559389259921057393232250421075491977660159227026458730033420614586615737648199016736450162227596399643157275675066169077719248922761235761639176644823432173644672084483308232198404415005985135690056704753023832275005673603468650592244147127673680388316417895730745896182759954020317657319708306306360586821258024108108832884685831444003327017742146875533117819410290315413729958083617699739743355313481041194450002210035301457559368632486077699671134656308502759398257470905036906924419180724541963718493336317162895126852020460674985928859321623821402489927489664383106394907585221869102184836101115589762961275720545560889093388428466970821440270091694436048452438414741824531753706038028106617160274303260532296694434969148016447918626617905691919481255472457467304125803278356387334817879574582397243223951827569209146530782996057957822987827325312664997378304355800558939325575297994949971370198085556586849663075262963384792031402614712149027541384344264345076992594072983954611107938363120628212109771327715922044316730575061549015115355958276806574671188996483412274211395955187157024272521568171140683835117696360737250457164812076195097066510239998283950542957755580975102040777165728556075462992629998602362688752542826614696412258182231292628683479480692960003399053601288978568248592709970420412820526935396461722271427610559004908833133597182204410808352166102581204217727657923976631591258498837671828578167043851178952862933558627615009966124731434217063869678679254327319295149133725878299785831113494376989763438218738847270563781967807439653258583551212549676459902055581612100004290261173744774230221027013980286332061256834034289104645885106009972985798293502733259158366854854900823676665121354211878032136736595644344510811506165734383488109953996076720791638143211690672025943312459388069544569351574335504580058610515065225962659723350007277679197369282006768093214364469282362416618335078025160882373322079621827887870779059601530361952384048569461259388533670766767083667352047483399900494529359071158137061733440774373677213678281909703943050868237001632292526059007888472127736377163115990244870655775570933808792811977871656516351866033288918847229000617564865030152736727079545197419395008381433129313575765964776195700675698927066486744321245067963077785935557217885855219199894666437677623469908019850240698219451594189889284050309571310354592934472367590063418089938060363506055329749486274846582313664877354806308339398847436452720859882829617012634045430365747773419744166186671149240594791434048029649372360111412126182417779574204142125633509781679555907448115307943249609841873926099462574517108978223291635129562231949260722735177004222419006531491667387404936437198658461922551288940126127487416323357713323009619725160944231416710764534587600883153492605039276198312066248866713816588809334545295202976907821396940134073799218193147942441247157196683487223803329161168546825796972640300931841995198465835289344441650228376735351736171301556584051035727428689404385470516568660850144883975346101008272525933029058545468024536042100870185586625176234327083810647515150496589405622599250548323050165178523920431227731289661583869752839037566167350840643180252748439116754041813746957380617099924945475396348476230751326787304704048177955051379313393341639936805812187256884782695144718528250862417467129015006281163485278757506332997255935343962319504971903353117868909375719007031048887577147062377948679608885033409177721242689963642011912275251153732034935658081272142662940585415205988095562805122308546879899699114882464071857190982989234983202111848998184696507345975237898689638749671340364328009067455516649840139824303881187780020559557727652224194432769921416472735636468288843589443427727809294215604591901645582815771871420877527629930342150058622877030103904563306262418330008417484276723408318605152925786823077767835815869725635642281277670840105316234349620915284567397979705189702319646713575582861066955551151765466105155729263898036731037061605440920251651252178706192100629089517485326312060119938673704339214929187665150689905104437830428625261281845363085932326505588839728239961763277339810590186312813221445206313518513500029924864910486362494611626274046144657467110945376865603780526893091754961592999612636643377938946974929324028733783878406514747768819842188013434961125122980271115714288411261544447270748805188585024728951471288826859681312974704847641649459059490085377656556338636121630031145122457954600699339690200698566835873101066585692693677965106453827337405157920425532824545683747543545587779429645705730677530513162726489621497115959344795353520948188880550497812137904938807135349125317506777181170741970298015023739061794332209674476894141465874912265504471645451128953355501873888562352109006150041472388696199663860585355314364943278661798183744077395735366914256954192333149731135032767939259993501071911439042217353770883231893319657962124916849739366581460646642199735194528971059860256892463635664571575787302591821231091660565659133371111300565337194265144210711062010597560302049807331968690545945929032240509686402578451125076851348895606247898658193721341958451095462718283578579520162973530893792478437485095483808751490060261342753238420452103038064216428597296815361131352527246398468618061557019862031018665750432956513331472067220423145316710151613549341644430739754344644114079403121084698383754729472444174463614939257148760279119664370407592329556709618399376121251803157765935695640204913413723847510348376270926719895722280202774801133159153591789208473794594800341733294206716472294050466330045901269229064596817550031982706797552993487564384694484785232832542608737945144943740021157716676795893016147386800056026262419795050416656668402768265266769267161396720335566883359953963654765261311869495260894795220344308328664642195218529829687343163294583474109564235459224164900127996674679889657030549349976013843248076921187680464097600390430682244526450763870357695496330500615059542589419681601892884793932546065975548541583046008075553886809450243153001624436550879525284628650444510749328344819358533628863519721633509196517149462460932797358571147436493124731546889912304594886605008955130556898167129454839799744529321702058070904676088259255180082694023038991555274674570195805679623955566150153840487121193978193941533997710630274279109070662569349551902761731338232294420282612809848677791374870492687631444689835535902876208046953136332969693894615500071035635938121515840533929517867725350122347932842120174131599055544458777945692597276246159092052526236441360406499028624367915267020220998292620105332878330571198706776393307621760600854780141603800036770812207314877284326390241576942540085735479500510197301556317351258335552005015102625364540425421046630896821258033458305291273692499531104705035002462078811186225349564604953640502437953352036145904581170701262813838266343279342618329443349538734945576882934841882529047161225643425662196204180447874273816336054005906208439923232037939731180579459182038200332652718394353658013835169745780895324813163355914805805022079539707649452922062107549657409164302639181160381479220176724603468578831916541758133197870482997449265708898086300318797477476074973988949593560119851293890636690858828075376032449899931449446049238991329058118629166232846566549412324448383807921729362865441374491446273510445918618799426125102066971068115034201457707707311887205574410686897626617421191592626937112230155622416112852740764328563710771489860237504399918959891463913259443753183069705639542778967719892575225037016879944701199776572652079836310392400255537953111963439128364357073065176463172035417744244047261961474902857448481995634389096943310468414059518223534736902309118368814344239202220699581168948167288053224909623972008545527541296642059091826215567599920861360299926337948251492165793401445570953146301199485831485208646585951042602498719804916466855245586074474863155012687487399321260684875661146033440012307715935869064838294576124220049357416615479980044904451239550232376200098874828373547658605599464330450999958451227785964503681100382753097586193101202578025040617463285611491750392809795036755368659838751879862755242610896584664477005841188942313256243167347345099311545290476832026450792819171956443767423028249045294896454320060323492805964304832496175075055825367484195229935384870695545977628923258949102021890910514569622332825210782084663805574260533611989090579581464914518142548101087456725599285872436151842434837186426212671489535185488328213462171753795547481045432162930657811012261687203952217207293504620719253055344424393548005211579155391239070593247114831507091714486960682423262712318836098316413181274892996984077615544921888949886527076908104332741497616787043279584993266154765305653546960324637985845987918717037589101271912084994063363475525007204256306814907795245290887315408073638562843501370414699096639187546941710132061097545327319422479795720148225802200069777667668122887012564562085606855892741918643829079812254847450535970587218673401474927258416216539092466873284553990426090967220492913831870650587030424995488419497553734475786988701956955290843395424773198285796217809113891667355287180315696523150815429235145052558834965443548709608176649577471569669402370384301379574818417264172293789075943018992698321987830147154967829725591438615369942909501868410854207249007591972559954441912903892370819938315174626280496147483061575490958746543666425920999372175855292285232801085491702991709072474016085721507376636323210489738426959459285927068120366905338955697063585417639279622020359182889929315854079499536471886340703002591256773043570373107044586475479646466258231185456983416394496837480292325291969981584991686523161943701674073383173345515540623361004531623131151730843710853444525175576655720382005525902502174210534071759611819256599606695804142453670045691911409700522730497237323101218592950776046126752612117348887808691125279229287979457614891316426557562907720591296130909021800356482819212368607332454141141837123902267443022897051629197694571369911457522557572751723911818525001482178630702591531854049861222806555985863465619785855227181407665722282068653126545716442132176436603344098229746756707138270951491374646953743284902858211256942606204124727942833428537153884955758310712069788801840316796278081971040575105354067213189971035169243280360047153902876418891143016956882380690634857123035633437355856136172694270566310803205122712328595841839708338312436118886224054945142515048301960218150732651470415339168739985643614280933295965733430773147433748876267369390669500120401173297015828812239140658460339828711923501576294587907655023184078376801587082946226496034339406773147754808650099883861952670309188255281022764855760765348175786587202656151426132337600720368123186358240446838770848665832732089858329999510097958842454246965229020650114650511708668364498676538027144774556659019116224447525521015979374964282260951299814885546617515417025094132342790732926775107078241185004887996705882356389713554026074347554680997153766858165055468899787439736060170002996860976930613376438656096932953208592570539973673137669326078958351698964836965852386838763241927297203473329636900762871323879458682455038434924703528142342129979118565974246720762966154660690646653340442235929786086337823925591381051488606193633077204841596351946909888195430115898140809244836719164854771978591741009107009838631313133467415783040886817165513206998592648117722342877129491138447952844704546946812938614914226461879237864792630850983588413916392064568077738796329195020634007291200221866870873605484374484020950997275311488534231189546256892419617918000590528412118044309674398558406785893989865688881037507571624831948536193773765717077592946885750941078460550034357040266739243119353544625586650726933005824933607581014109768181198734856503002773242458654084272831946142807751036798686253159807007790411700815041583622409612592258232756526550050608382546174505900747140981932650170062277238166240472542072269883838476074873798727734758116971471340456188865561551544573750287957663229374027875683132656808717942132993610467288249075790372741861982457438027714267149387813645078796630985177941210452144690325659186277589454407616094238801951371174280716211003870166823783802141016502381493386346388197701682405561892333995923707920103453233954698291978076549650511410138126303697241404519304916166553314629037814280233901480909830067354442207622853765361911363658767983646015943791611648822389824751524512752443512545570429902175275103181888298980327366319374730609142354820056386653528903790859658032527041896304044860665671739742019378552411421642868354695734419125970517344044865518816285402205066691742288532826886024603744601279172008092314210346477615710235695764201381171554572207888834841930258541405870671865336374849619694468205564074647563463993891360264054959573427703225949174458207064561553744352217931534455445631823397693992438198560929622314369512270579681455539653864016946596732971435463886438712287074849916730030716921426085276941936858253931392917002335166080405674486196900753174976808593751155942422704850931560492814976414722697524233429933453958680858520188392717685585497651504397375804352701865308072001818694332919023404060718561205286649651822328668139483654706954762792309929561414943244343516480669092670634240008013501474826887392612949787544668745165494152245339871145119391073005628652384012661615027998034207123540645664926921372989078941128554655837932256122602564613172764970021936677114872043292544672776259006426717629572727707361605897695132644258279576473160135293507086795913956092208924633976681225985284007941141690048275419185365793753463753533777107674259139485685278590932370203451030269287966996477666727531040792532419570279558670701034293487474621962522271354688699851269258691653692760394450956536583129282689275754780436663223456501301794275102035712424500359889395764312477162708388471202723402585938161172176012571010787658424853379398161718706030862991166275349729608360328529536305562057194751125789810619807817376740847488993333811954494957965373955144558819897611683392907204992611781787302408182472160550139065240464604513287490595856416076417716908029348909070891564468105064344112189284723617779306410905286884491480438736139535607876440606753164702178790964939721900899354135471297286752061410555672022286903734657127555557999692081778007343920251158009392460029103089429612527294224100017339208627605209920795914373622535878511703221654165078549143491272952675299179292878177280828477685021062533299687522451879739701562907485196695329416106800943863759761823655977738072379809197532993409725295833810804122481518509164619984892100724586412163449366858518073933399932685455976103273698404779244253650831750665892708401531175784384737007855996079068669830425464848496671664134253182197403960372756502809461330266939059376762244652274996750910109816291922080866358149184307734975233731261716391539690395111026400652750563315901490272872403349046075119504314043048984481392106574113420308221568184259597064384465746709002928563465721703476025242555718189733376609086252865225811798105562402723692248540739445260497586210716229107429085583807828165716630137372328288436513874308428187770068999973902327934563675110394738717404576108954725617682397878922098133110169987781607020637438255325009965993111790720615219904344785478242789492475887592721543279140107672717728894969917943332914362421291016418689424356962363471048560629547659630154223719469218699428937150840866481001794366252779062263228902552573848758372480092276523906533244458297253202262003999775397249604598169051904840816225190453346077864209813054435588768636527245449701018973950251444314603344006501959136630480168901320424708222158913169916594433461193905230259298028395768882894962379229473632752919000553200881712622988190716025283406242756287685400336478685603670642560253193435940458903393752643592324113364749057301531294618648208889917642666643188335188771879420445042835710525109520956562174540012381190452277288529671701603058116369655454921037043325270138933819055896855808881010218620098132341323217385591208010362491472961693451341535738425217061810237753479673640355239311418845797260983800868669895261525659907910796802569584269100592095084981590887485741055962296849979862803892519951354888031424903919820021501523921918541120920936624329636724861982221047096543155050453217361315342832388354041337243214030410171953452951017918961896378280905702639761243587195431403964603214033119730551917521843437149746055738010324987523544384760018641113002605684362056020770489193708931497618194600832110919862309491430622869836400722704431050992448476160795575414033826788766633670478192058496821404435801410228403598257065766864957346174847835728289032550976305040795415302281034792539689368640988192987820122321569917511223312449835106442540230149688802819721802334754795397141589056754920396166013374519055950397255536487278123234341794894475758072031728486434917381138785287779083775746020220790869302281981066632129423794950155954150965951534130974698237474925960998805443541004122672277207228019649937205052704624104885509998363072976520425066429879237019810866182694120356210620909318132264119793429569881825788279794887667251835160590764467445452058469798299075115990055427812466253213938177829538263937527110215572595247342526630564977663173620719933968335116607362648047903536705163460691067821080322117536324424682572541164980924275419486685679836563570830219016306661268197829668227882268528832768450707257220876588789194035920482305276710120946750986971149754971299238615363485397400343647774270798348494898046329909857636090658118352247486722764303587239178551662640035366769708636621300902210738007312464077754516541405916092066767334304483418361477839344546106878694977985164878401690472398149906351107222459706337635789084984606154265444288497120549994095810562220612433542643242071655342208173639049548891586721977438143755661547305144957447279963261646095275312023782364881553853119591067116880750475516818193879228659373254128562013426478477453409108766571371393071260316661402732909570240871429663095369014460170903768595544339805519254806689397547932108321330594732538963829583812751766065650670776188863577048976953744246547546523324172345559282227693511145103929369964229597490199162701698193957577901758326954332462464996103096982391504531374984282662143783624541414707566301933150193453119597939011984685213572511445867636027431635857213814752212859785718292763408497838626067748854043481761826395943787355900457632537089808081316918140779595378086471559099930936639134700662392308523663048268035801361235884346892005272627388128613347591439877410105965109109024274854074494786738800750131206640749443146302092234103440661669578057530790266561108161884886285859707952615414969787464352447481927672688058406131039729786325169469525815294404344334912833571739630805006788172808007137315276887086477238800038247501602737215166626409223300373785930866032408730111592274012666570675140798544528932729250339026040191527949064555234197947726696029091794445166943276570953196168204992974488397190994337927509168533995449111635702967563877942549758529936724127619505898307564123438798284883496164937435655065456318993953104765765132906651824306960898244768725031121553787687467044388731399427424969889708515280957013456089372890835582741604637641799608631896700154099938271459346169215959248619469764582085620097385545252875461411393189289227885601457803557112391716915492662955564566990890072200288507393020823410741948264701684032616602740764827422354198472482322738869541362056849365821451508908567831151006318171105570274065718890135194806519646983983581756993626719429243777948978316988940705697919090782779749711276121383055898398057968385000286246654129715552091493931092309128865840773846978687980258672646532677809904563682304813395609678700831115425982695220268984051674422575429086909214337345184695934621507004401174423437994438317278120629394621637036012869212133610428265808891194773930303713872543886549573657373040457646456529716284021494075463933201342670142599177567963356117766060332379561911113723518452289203118611844382894999179570901470823817672257757114180065822879367272552239432727186621278020034689405111806281137466122325984523971999528138341800553006395258207628088149526089434118522005827193324838929262732928173038708919747271971665941226266582559389649188008723717096891919751560137368437086354264527974785997808821618225755745563624959217299655761702916398922706650754109179741469047953553975790748183684794496449643378405756317873111044262351035537340285077608224058802844809301562281728615128013086294877202445149946153210202236092299151129523465800015434737793583803452645091585530223056848538427202013855889265765101292235925692882660550474990817952597826366502309428785457539924815329287343660884338754799226416456835079463364823084960744556656980720789760424009593264089301819513389858811198822257541745371765630915698120384675739883379761237294056880317683771973710546535053480825615170851493585196430764984882620368223985228229212484911379338521894873417964315586686998784154900742612802170138655346774988892965980846109133255669985337363681740552853807961252674808331055446237625977845239996281463320872816539568182235583744695428887561710440749911852958431713455140346024984559242679139645161944813198661606589750942717503107457324035743307287933782665217846101562918672417943317416944697430292123770556533643757946117317090153867514175109638659339108101034155072255942278034752785878494066092533869367377277079415055613827128810618029795543021484173431260119690083271004856275125123708192683637975568176210272187702713609107228320027333140476873073455266703278900506183396190349690354911147635366234325173905657598354452202294318060036840132097592439446480172746630407229847257726346611540938263437965712500789350397161445715452616324886469286468501378803830808993831844896090169855423298946742247094324616277240151341509078278995170193445066635248693244239534312830521859035608801398798024723400092704374114678666691298482646798967195356996834481623689426450322263283169660097093696745378379087386603466573652029354928647918705145246658053181810781207770687675587021158547509450430839156825989236954879587636543022890918617480523629729560620640618340771830404773994650634715792367289693895746747618947707671192661394791886256987904797615521132266257662410121561845740181824889527957148791358788234585490398222782806546427737566623073763684262091696322257409839897800704774001446326063301601538991526224482978951582188570643498983588243007101672657460297209236816107276254830741104294714385984137879934282310309549785941135125799843235427793847621227104157691671027473378955956331029782587962073082511433743529702386950570691721702579441830257332227430228159155092662964686065934346327293133852622344188016598073117754322449709712759014391827025776921901473972694070329413212599687264392868717588011495073223255168535198243694079073480553644665556327329443597269733236832336761021304053449048989452463952174827401710183064157944901210592033916608420452584487507599278176538774694034213221397550852457938395350030658809377317182743408299472621189205456608904295090531394844211709328838109281368698112362967826050714612041211154872431134227511668854346373337554817650855843756392963299005250064870961733617722160841090369399221535563847832231281861717399436367825320117661825971927212752895703988791582556985410702168194267991962905606889264194581025065772040095879533970832105943565089443089595800451875571329228881209043615156037314920522994583608289631182468807247940961503577398557652870758438928884472135415841969940390658594404595070020695191869612119068522902425493548742704068864583151061349284713692224265435260299151931637376701436771801972121180999386348259496810201814867847213779583215034561567097443692609796489329509478858431258481232178786354927124449822231980898968527962983956900990120393050499216106094969304287870086605157862931166406184295077411703019030007393004461624091406036754307851472725625563046783661332459432715757577655208750159955558367655798690392518894942411735371899072138035554488970472055209505146159478703568842594548929201855116546424639809501284889351223058833662058456114571371556233552064433238529043845330815274342179216814123826723650895362360902519817997285975628307982632322586646442280158375583677790552976113039100072730084460431078213619960936898468636361596357909167822415021150293278978434833912944312602285432427205524166257759934461322459691823359456917185968293108774298942671131178112744875827121970575978584146690048522662537391966081612941803572825443412837456540585004403314986274163790599660341388523494594495706925340460887070904212650452136451245476034790485417917409178995036313324881991311168564969387766139431963458121667228010545249156610001418367909630897411261411406800551870527256761679874749741418471431753908122626160988094774485992412079843212089570543919914922929291090666421456697083785456566688711455771405934941791602426882080145986798506987585711470564785903113785795587897824850233388464522290694592766405256013113154269611414929667839147180457070448053722318243232874044000352624017940158845577103930987289050603964130254202449043388069501914046352366568165280641495260683292072195139111899865187789811720442284290161636370951216700748704080332184633982366772564013216121891365655317067749275854693612496913418138284525394237497852175116952604829390268902837724592790839359648064786339891973956850927822830633590315540099173828209385244805090815353737877965219487985947529042129825346100892888031951406551386092137211441263711076807433431124987835972525517964093470583268227177704924533325940821312472640589206914289473916599607083703298042255739946409651095056313763925756512256279106909831392085812331879534994870932415187529710707333570238062938575461609951848722336227683354975686980939380663313710128540070991742712097407379792230393687001817834914488570217147347761801756067398236204739358586543074360480842783841004113880961864235046904100271700413870564163055301864503514293017691475179859240159947884991421493141000892978887390005240473092302961872668071760806024976234375767556694429159619800461587808165074947095706941845105004898534639445046164008511642787120532168849913261810999011343860232924896938479180874727161935991668832546404784055100008472418850640344845629504773938270890376908759522801647379310346279512207121292460944333931976998010760600949554339480088020698693320272517825210813039565231221354019584724220677696529228034337714176150266497731568204878429894899226218828092536909200787174770747988466926523573073065364343644613645258399400284274080140993643066570149660285678460049353727536809308728688211106952407381894738534223088898013078429723900658133793401633734641487665350335123901322488963311418786946848021885501717241066753930733307421792434768085254560419174215302797692995217275430346616990546719725163635557592673880478987605776453618159115634857784064255722597186556232077330294401171807819065298325851652532344987492334712460019760890778025282210783515452113001251129571568873300033901265889257066899599421109608340370204268141950821850771624499492963469437510394768002122765037872982604572435198278459108422378356577924474471523412238856465153721590307461549991097016676416145083334561570500119569692487050699605069762559806933568094865064403277998263673584850586017453031148874152379632506560293979708434410177966906238461827664550813507655046118066737998690306064884541804535272027908188544803141162532297978305297921911929581745515615049747469214882461447485757932939539538929168997558883213233073315700387519784287160108825253873884209384482769809641259656505082189213562137987228876404307424773723399443447730932619284297532148397324409736385868686029508871724401603426876692785855675716213278443560308141273393266685515989763345212502368417747007043951935551556286760034750072217533215651910651909013143344565305487299723595099772812155693828173079647153626049591316831062529340693506170029034262439926207769878801080550976794828297979043421639742802525070720344416088572821739731669151887847222118678569278779862878338617712055719320423102103232697967216708018348446055478189065311870501209618911178513717733674446050917029574363769351690206427249680729447294942785033997832716089143036898159926783856073258843927956418427068802915023033256635139967158963420592640315754613752169837553389485110270601908566680740020647851617551842789240668349116458464088589426737609426143977802303498754017712156892536440681840590101191578939067886116000298602628730394332003260905880065529979745814813551106814711286465390193490290656069053882906796281131850369218048167961197521686606293362120704248200561727795811577268452696584651989363268223462899749764594191104822389524208190043703351725591900806128806708375743823432951780635463173564789609391999970793591931925312665014388080702507964468065182757036515660194374754392232124776951883441224578069373628959673582135923431713994662089150581360859519756744596701692676910970824561064767071495407218189337209279446515003192443667274682885655542528750860723177546806251228868567698360885887489421741461080186091738372973066587883041921897395701510536441834772250854280992184301865328642666603236249125014362210803590924796298856218821992699454994601508987585226503495665039931708484518830000815821983007513951717083516374826620171043802994234639774468606777909740230146439698704671330538818590473985011815716291921121507015092337945896298242990004880441803475558062881148120706658421092180458717821909050800012565908422934485736124253144722134376981119221540508356592448216998109735886518086485651430046672452208500199573780424179216648771197194630087019365950300443583074894108978100694160848124604022458777530389660748796519630462714959889111350498150108634339786471995745369048322033346790863557942751185092510897571234265521301771540260599719828366048869607297450471827140434934844108176720545546486671229357327917814646602221457643388866805103841516103948464971118067012920612785004788926643147697980214293428992523843772615120080335889499581546014910496347212163511866264051611318152856798086597898965549736588586154892904752159606381708463885998031043159622059333230060201784510225298185444128077695473111260863745878778848674990714058678858873819790341447195833058389921337935646720177791812208963366017943324708023192147744623106446805851946372351403157213837038606996111932426612328968807477521128131912017971211183792957899147033846699797340556377154674165460374715990293204571471885566742490826263147442604769840016535388403704541644822285899701728239332886473741561390758250994400034752404601949474176781782964059808773756477670493988352307959930433491991036811518324663753679332690746509162142369199362898502605174559188188152803689792607516021943554082114637729791227277864990562146914693657908068348416029076407098374804238604128899711762621225294448618672031985952456204287438499992621037481211615159931568297414172130996425977694998816780305368010878255628206657274700758074199132110434835460224814413906082289622687871012772778121601193730784876381422849630583639927835610176504070171983055039405581743432295186274662768669433870105896204275750214514791418402855051580790881643744047995328540661420910854465799410685488897437408144752700237624347245728902768315973095348055835272806415646795680947483745950873097334790030283199135159680903586680297553737634368339944873122638246603694762040859776677152086987878078925646196274587496087865909212137523581309127303038847914815963290591713381259219184042790140873236800869119921348609585115473372456931346562693918745409106770812743555955039988969262113235086779080939416400986766511931359576191121315474116057703388110939413238424763824080812106604845247805291984424736907453563554131118569241707963341944240070350723006911045833827710697188822609655504156652272261891846848676552342247515828265582586142496408276154717975011091851583737918639704234892737946779838174730393747977360874199707535936856622887426447912308588130548683257804457895703494418185182232529982452356670838576886664098939047471267471207313659003274685965112363033435421395271661052303745804808474879686601671530108801971815378487829891606632680898692851152853619533484015574294759419194167034142439573218884605182492361130858758947592629875776742491439663828463717747208646867562573618511240811080019695041459401480743615421778881920733068607452185558886882301035307630258126479722068236404513702307612318526230662349008968165935309200156951603261981715247458141818762312605138322395775116274030092367529556588541815678649814944697874612604461941822199515531385902974279438378508117335063249534796237485345596557752653332666052724959000728108968919888368633179120723105126126802779426005184408323267602451039315178697650683188554364001446973181886482047376601922893498692064788078206003283689610261995480253912627206628106401214309701459299246053031308248605764734959848208786490379924801161757679907506005286211096966651749662416118808848327456354559074844390444016799083946813303145915005283616344537370671321468708521706464537883950985685274994747145982529043617815082211932460667386324295968437730591750060686775640892019250991197812646087697201533855657279209020639549995091417901348937714624521679226801339031183513116888284426949781625587247238823543404736676616292865888966514441180612982888849385333972508778470890057425734861057876116311654876722092930053537436587197234086990733259332740479388309490389187504720939602165810451797974547081072031986607754237630586741424833599927279861541620354059192554323729731167536308565984960606081728340786757616137746618481119626391490935736730092491601190184493898158040473848153362790992812397438203609369640868452300889485939769300938495979476237034534403950770024333023790404021800764651171163107571463622453543789352629628539395527192855379866175304003135989795786143782160617490116613274675073357711776859022985670423437508735367415570153781014045216783674661378531379093262822022265206545689763004820919931752539043783027376281404133966645783685813829922903092257664653689305990785906297257726296290477182873331440504594518460122016625085043219260042573897956518655164704690261832582237827422315977383985713020150306488348095461850245599817953392197354143826595160062362233198152481452188630284024294534591541489908350560978236178990266556064713842024745556781961346940644455119572130622694909664021586471813162590926257674758806849137671407678431033981867686085964936834834108109945950289693311624152261163985734524621242176633070289090720794091542493908011205992714308474030992507792861405503340393608072902390548351680172339134001024571425672607944048477176598413500992022965229861336919367937689506434015964319466220395528289699165788502655609992259253995140475950943789844891272907252271284929739843818861717008700795200573525559160932252304464759719063937662588395002297565017190338358333437630002355038930522741970639765698489436714929376481495487817088823893721295907601189998853482685628717124210758785145353882841189816566414032442423830317950517960079271169275820119726043063398414133604139065302419910808586421291575898132900487688471074981152824085158959403755073820377146988691253036664429703387340796870158983052471390622279974340934880117593151410251427259193445877117280429805756981256406401839022584481651104748820429869299793549201064355957594932022764074319636304523195966460686647761726684449047769950987451902948464815736136522419433469849217301507760983264358188131768548229165290683457119799787031048313247324959675200010514904938641249879016628973414157893024771394494644066405287352533551734011342849518131994333212564142046270699435829135165661964955079347334927700722017975518515508887862194890697037796162382530981663365106460648906065870014701333177830418875910786307912010890551750129334879349308086302095359341733125770463802903159998162263927391525226428887055403073793791281348880106106684059943109287713721705174655177650405989040691191081477181461913020072130044346837558756505985848805767866122767478919367749960220002079358990233753860045640572956441180738936614897432851945322061220559950323745938768127896108221194625913405541904606772096940908509017451395410186502793311949336466903236411229097849954950660006194740858604390424794524294465650597168445482099819930805120322589355578994308296658387887943304236679446425115011603145346702413775131429543046881448318312941803103290895053350866129764800163741512901733328119752977171361116210577515730405567060655673290581607312591548110259549271338114241703471537149069059359054424552676513001906756979465829530916712549706987026957090978472909676870052664249010156155090613464588220216344679226886724913881829061756510616412572256823389292535127645927491894193336542885971301962354783645357703554355503009363971563902133980122637329216822515589452765080489743175996823726349874039284473742154463761037266878099592823054613763278345810067682298613932768964049851625334542971118659520375577099847552086752129064700310685315758393367789069056431380577059607688645690993187175290026357302977416908868462227244817586060616053564014703201511128639925218621750225586697838102016063663603586292271274873071582381178590191206131693626781132801540696344548074838093725936088815656260240100130367758358957013162132692648702383952233986518673466248381338678205073536338442468422419190665942216692101047902335725591034164377056285783474661424883866756187733507860350536360577696962212851585458973852894631605935043921695671239804230201750040177831076406062957843674380784285701482822709771552326465557449810942671244590803235320109376760580976206411105614039807021786374519338399535256580551525746263447287588214227241106053403205435902061170535254375684548920724115892115118744410083902499956249584643798022733227498525069898202617164434969786418774434124124259761093084168772613876332647136969597190887365537632394444716420012021123487548172217089907730225957836896482774533424792052456480723944887845373377290087197706302828451507971147806391841135067294414792300136509805832055560325108770874191566330673652098031669874931914979670268475068368876104725209246106443338509770597371361324077065560160702634750414419913844312409419452245447159375415175287973422285077748952131761155274051925104107064370370642922713311108714014238809160039716565134400564269609811156721842841264965523202012657357170585327229106090515809261789370261003840451963004448653543155027513273934638124370237718240780138922554727527831915064232292671819072815650869939387178592244274768586269440670728052541149036346782078521698568875546496496093932945782890424998772274629718210662455823169587195575019299246413108525512061102983562836173054256305156251652756543615678822469296431254854331589547966166468994440765416440097459173785876601008174858991373052539569587342406959799533424754171755418458825475080112387296847481440666794111385997195397501590684413745751678339293398429199437085296995417537520363883266743557885012968478083567301227039455350271710186229648909225722887127388983314372624515093563807968137888668890347382720586958434442399020992448140697045289751267022530472482705138833365568365353958647241252565670659139441966670955632454266854813987298376320341886281531272233404476977659238328600138739660595531973795758155238465367235896269493034422162488448493733596098665143574826071461234247063781383537958622669662384306509234658463222991477888105329884038082762438054811238471743919430265681071514158179384184111274134077302769432071255133033142146370705229338273447269689595208142466300734743165510037244373575073893957373093839395988285334721888470465751002580037915455957992513397558970777713357829094223742291364551213231243808266167095863210582406033847224410520829876458650656205849265168752888181307751297359310446221397986693555908248078435875231082462690706644717833892611770667517939115635457226000503713972753350288381261206210723351164408037578306925879762514516225282672972000528779245583502026235019212865849965191586387153114444443421859108746982290922549917913960819762763364454704914659338514157369222407132107274816366859658347174746727829549526457645265605277644207952640741873073970878664711397643487969924688985346717254877381755895417673282519077379848459800504877488674538640851311942282389243028540440383418946672694456409248202742606192896061915104377810862580654018969155788746855818192359136680151654486640521837879354502403501474013262051538459857726726632349282401516086535222763607200447748011231740256679677344827427764721936167705215731601513058867971091603405409394604924961361305011017209005929346066497620777746694809464495606458817149985805164755771827819963185679636661968393486033512771660734614836928041302384006859755348533558857320095280608699640561407550859413094192113968758089540639533924905507092539974798449949556971562401244900892674931817121499652249493693186148224419371796958221796393494462518824250665551483906116663979080090562306591731622339826465788068199590609171421249137706454904715959283043858242547310661146383942908969121923070401095961619231341125346642977831089163707071824470973806000376577860506098029057537010202495723321302922069798954250608004807584622868544207581922040983272805758413584276597719969081218956383745369662946382715927153430120204344737072213289756920736964813297811743508113594913246767646715850659441856536846612897573799373172180197976635618869113567315926454009009984001485297998148347660495282718621767688003311919068543197221314238447142282787362083407021583023832714930944019017787717823406724133744582171355009203879152246425569114611673414887981406861708972192818623160587603475065484285197303453625706816838542954087253227705766855995900533839730649998273892308965320498772534062778087408003121235585492835341635286567228251110743684845147290193355026436691006285171742770977376771436077658131864403401101543252102427066360909060735862437325820863994402403301249560616099482534902560604265752507047033594635360769415211707181174131169520937942277508472867311900363397601776783946816844533742162653720363782128886698697049784341866099284361442440761863553635895177999310122282334851578963812530413496927309615450028237315507775442419810745003663982045536112511256600171007005440959896850185799500226364087127376426768289959696206767998551355732834322683022597539278934914945506616108674132962648697243650818713273949839910793979024931118813141880457164188027396873146038260747240176552035467376527068656784434249621024525813271383217941046011702949664551610004811589812712710456449925736276970915953121948015707551615434087230543365431860409330643553145406437974801767359701932505185253350268929787523537760715395995720893907282801231319153174395488934634242486650397171184971749157307893522629296692891381860619410262337290345519813943228275680166879006546671011787587393401512455151332573157949791481852664430474179578472080411223809232865114757971859930933590644946161012810828293605762979379314108096165115066584777620027248494571285582074683148894901593409905095942022344664865718838730223818214320493973294650181420973361507257502271181609393338309428697382380937388338410216556119905286687923015024632531323285872370761056831443149282627953711349446107385951524750837293499498650480480467549111307829265143479819379355064378825891016708270649800766131195341828391443076833041097963738304967215927807484812778963313372268406583129653530081247285305480098247988944142573212238685355886928184820301340570686024794826608401454479708722856614883271349536998255495664647559500571648004790271393879183285419815442259466324443800808289280562551742206378044306002426557128325825404134052712761356349507940081410745636288968584388294655290589088662956604695799683389622918103159970950225997611524412139339950124631584085036286362802344231799977016233614397542759329641447637389335508368650247727712857762672863700197027969810300591184216887068752910857137065198473158162317620614439226294438076081292498752687502411947909050778820419989730236109808694831951836749119846620717857348075823130854477589936524246234618758102254679689357233750057319189759251962780353574432570001130169529763243079179059257775390892141050256727483054000253761631481804530513077062981591617327379231105095149453265831474615132623326833194029906808742497297621394604658449939609613852872147206157071216762888543277108084906524371425474080435655527267896650785672536563053738369985921007619578578744673124626727865381724860032245559966101813166866496617805618192649097615410942638968810380982986617978261508187240508014408589669533565236807321074476487808159397724363795016530052251851127482096289231404560906711231605895906227096079466120114937904662795031512737988469358382404611180627534549308199467091587959493474893529088644503597081366661956685131823704899732898871757351693471608361166945598231614398911037346475561220283891835250528399512309082500133982216014189451008254927291661330115169683457698557526480961542688882541544423076879636290134705119536262364798139714869336910676497342924068409056032647926025247373445577633398922700948908618595436120267982575369363831953706437291892538616705082610754518641543831188973533800751306440405618463838447788923779247718130357001511665438474976671825979476356449135376354414593052020795597505621146815341126270504816001308777063933777646257845700065501126149627359726815432975619169007402428473896385748861307420636091802636208691792040329632415998954218330523887712507437975840252608258953588890316714474813822778942946534343507799749893285285859319766160448351696552016121526189645063961233734283640367049503583010603460532108857466502865045935246096327049601766012265252705611605787390938519424027697631969214319419073618494955207833289886679203738392400582902932593079676318226285073748725661572910140279929441665007414166771091265368397068714801778276295859381978696585627418455804289246353511355772488394995331271281899751090353133829986754346327465528294371461298627537808697057211662496047290710727311890537894271254058226211326840461395053199587599480276897914247536308991433053591530398116749182304302257484775366365686123458311282790268011241832806874404541344237419244495185240331678843065427146532249986732165637535070539633693277552992509159494448921591729510894152002858797696182900850758780077921860210909335238189038311200903702819433696985872429540797098991464128151274553009688607609343638091652396770087482472285518610612180852057745214308280831393187002177762057592264890572423172991013844182083314152397819169718345851575080719195469357096303803956591005107875550556709724297964390340462099929148364720868259122577741905197443927756465537714030103080995082333345841082484015462183161721749827727637762411396403710022771412321868501235673896948828472227805879759181264294259188456339427599873543989567462732264798065691034432424834394513749466564463977951499757256719978062307819134510360292016651778605371091616852992464557094300188991078696236104637835749318318116393452429218373055114201456879366114519042092664777668610018654723930291234341731899427380133383730817587948729482686715911144286354046501746074988821050694668750854046299794435934153484890301668556536046423902876481297539154803367807446272044494910500343022752891510467574801558633389989790177995441164470620756349295848146465077977415472101856809905949860744121018611245036391652532662206674279227378275314069734216500265271831792804987555224718622521909032902566900623273771719315742094364053904132294767555678100013318751178573403120286927547393888307556759134358113163393609361242080672769865469703581861784492407514247850696539860452711125995614786107073647902399256166269988288948915952634741617675260054330921295204811676615903301530013562497592778079842386038305658065893242628623327563538494151385250311601841045344782882789113665698033476573072573338006693989857089248341288465239528714848308615277332414093840604803538376645151670823803709985422883194081913790946617051252539152621732513145847365884178129072101986113018116165227123895144383180090962609063773972887947894718380886917487805276476697918779910042991073857928126976638332462939793210810974910809892831355627520868901938127253215706307012386880860591357627189846558841203938983007280883219872862126457598788854660310864987169358712651929573780617194686668829446852785709752407413751430027314137893731125921459144940713324398737039547705886050454012745940058675440008663145236759554947803988203034788875250743053343197132946526031701572171208828428736922942189686497498048888676332722769158337524763045145460285780912541254018210351459144137653431062772336554101365330195016725808833194062222090823643015982844536642375080137707057004458209342670846639349234886357823616521578047586129646656894007338452085756617484285839230096422687047779695301502788125514400144666563849160558658982994294900816959883508463904385237208971038165575686653185613440372370034721963063648670193395638891196256828110637062434229821469548100587549064424810100420550801618111185178663138968304558483372353617577711329894273777162062773841228478991665419649840764764591766719773459930209048258171874866039965632924696257685547591465679519439216186583320957986798552450116396582749952707516182085673007574956055180350246417335904861442950452313217750573427845917066418350872858555789993656324154797866751985430193653254474917501368141932503666414188897438374178179646063507036302549028899367724571281806948761334133800217234284814026838485764742487683486344469913245641437351729449435070584994955002942137926203290862331647282220954364314454233864156303978446506733362610949348804360249122782215582735523071993967689269571514555139394189503496424787149144434313342002914817339719165232594091357450379236957159281975172768536684038295240648339052760407847936053175113279561067338081024842250676598730090010904322276919354655628612562290792582729974507134718107147952635660950854726496688661484261595972803785069408114473401610763047231623806872614095965893187349218276573302633038266722721299746060043411746613734463763115617252139907310736587124621570432051702105793006110144114745863232160998605101300153802765021896833627454758320327060926013121151183253086724151985816328032574939976025958277351367143488163773492313752802481789051867154467808074865539715437228858127980008651822203211589557310703370551173636992780267837806861758620409997929863368453251239612844106905009116861593438142710541245786098832538827937302978192076005242418185920971804239707259935504241634850321523245264384629170318808639513680106689364461994511918806399840008868479864656095330210037427514898585161422291793483719653568237267155824171505677182712988432118950254786359996317414804212664199724157235554017331961680521552963432616548773981012375976192652004300480662087912979392259176337246132788424748816604963326673736513219932390173131124512668658181219010838723307343497751949390910407998743220747317639323141980395626047716571399713310977308515641357839062918787737278735188948261282386660873714119811104876404660928800460003721168393890602372500405704082393310617383052504762333880449952551644034077093954886184686097352816432550112688163187150567258782076662549445987118272435919340967988743315743080307187963610812103252614810661806672904612119132138540571671603126007626340269051378943292709340704377050816475932619951794606556030360803241958414776504871050864046037187309958293523798562038952972040565740556127530897396577025096046755687824070434860716752413406909117501544413804309507884239179618236122266807043293778836088967651762679206187861958162797519337409739606551662574101579780223368963362699980929740092837729079564791264771963248073359352078840278894899411879607701531911835705932035467542110359996223484086434782445131105776814489116736562888210111039082786842133776462832760057411527016087111165829948693711326242310347746251407448244981614928849176444272265157123644353130802192305215791506177613735959601274265190713552473123821620562610552316107772027956549989086661687900699103846759334580798681478135304215403958518809830160808017855882865412430681094062678980110989321270810202498268148726459949138852792363735243099942040815667923260974134628031960531554999479199203521438302511319318728722767381044039080671147976295026858452902185913399847338824961160414973095405363912631632530576629440829435474142827258690454828827144418480681778807479017367934583306926024938202609169826806186604219995559870050991696724519502845118786360378337287867875938711966793095649716619578095388433593273953329916212477204058202695506170009669242146408388755862363361720435784614961412345785751046074179210836654871260549664278368767244938675601957741091786509838472986315192176842423086385732917796614578434208962034153442510359773043204852105668093161385336299155569512718793613879653425296838720369612008199152430354851518609675205908902785697340721808276623967662798446659281948534114585231596261938013956635476239012051204689556225605180466534904488822907781356225952078801595174141611110955637062968768450648274991112571977622451260831672864215084675891601485027710577679485552930246985774124031840863224085450604214372785659924124560160282179135769568321048846323583120365946572277251153795367835348498905133419756459411736715357600399655922401066047860476622142182048814067230528415780909193780986454873168281284255411331648037983389397836315045504711421399783146604685267806239047951690158706292949338772836539538243414043972655281779160435503947080571019981228720429058800964201003898678838439544637846883277556397622430402232362925141815644038392006588111825858421434816643496123772649519623967280658544565373645325869568364110579376144349698593768444301389642099871835883199056620936292170675713630456770685059275398694806431601044312385436995409624787602333118369026927443938343903427269369820086066722480976184804237465277129048590569856314859177197736558768361171703873558979603977365590389437139345548112543911188314619590440041610748699617548878930365195653816023877156366033793020246845551600568264699840563362532933629111771493462428601046453392438019932179904828234596394610133439548857282197683058806235144858344171612435361473034434215973173257223357333911691862761191869301743228172174458563798559596517325781595766904126958449164133081047545710809960343122439907136179854549001135809470350788316857672927739214751442070761042974789554287368262297562119782376398291197280142555763362575325801111021544791880049950878052058094538906670321622796938594461458516458669045406289042450605517756028324720268860293658986196665707218064184438842054993062223637593320630199826847200359966034791765524176034386065541497350278833983729294905821376813741481787287476124033363096599499838645287397136258131200484616366756842796191518333259593820765029625078509425335552972013643319527912343070652616633959294772976625599419625277987109758572697079161512653368129332719421395370924817820397382530876275645353984221973828105488458857347211061959997998325107240139117537139063262281022873496093421766976786278035370094285081066767678539170157933839135643679176772544033087608451054215410491561552452710947380515996773199390253055484487497271351844931872585886431024911088080733586815918627821652725182825013289263580855291938620440057093737827264517664600610386296161209239353303924686287563347585131350733164691561503045659712517805395521352041653271776452772892024918434704679273553099848989532025210889353335147907478390759321346579024474921088892394758823186427660217042756772892049811405943615625717500598476570586644212217968712211397171462307627653231183431593138823842009315807444594113405869185296840241996057766198526515368094697682258804504668112447154104775549819616577449811778736087111757774964099952130022617661826374370754135392661824590355267896938143476283694382739408228472661089768144863470244236233525423985239659868583619567126098473920341092420343020091862989815713029881395987385043518910000960211383651314817450190668916366561325731985620932896055877576401359665268741505400134233217919247773600126623329260809219457483501727490901265614232159719591815634799474122038782899464699367197707673642217480023608009163413421636000572231458541427237512602604943444107381126397961928949827141166706441531509529048188650520517626255279194408082260897201752168521919987499541114705158042560781288646578504633712254160581997340430416950959126187757649238965053037528401595418923060203292773440921996299646906003419303826098410682587223001495952818788714632519354106269870386898475202061020837366794158800810927052634358803632822493651898469610033212480213917140712444254604672213630677872344311319055673227808025790201883401494764743984423614894985447365796092179490974608965827349904666317983362661708410539619191072829194612616134461438686347316285198577560108470829794226839980886145525834431387742167157497802094945204677980913833322617419925961041891616666986765525760520655542271380341673641621081557064746159345765642384186290326863720568735144559085944803627877306024886145750790696950864066615660400928080911532839099773604736062606728273316012064793707834542632187832568411421217178670055700217530812414450894953689446550514562879036592027276227959304313299738961333332289497676614241401371629567866127834085762897064727521796470231701620840931254251524615722690209147543752891889190494121813015765667582796016105483023301815237410910492345675719630725119911899135066356426021508316202980239906270616310123333127864186060096136268065156887726931373099969919591911382022087402826157509072306749782060439896034687457283349138838041973584456948190668761433852807452572057872959804701243244260594760988571229935923203656798081003784490592607094762235662474951572858557821909063621896589126297005536949730638754887800019755497734714657965184073063766287322470770676631423579797162937590739792502058571610342968628767908335498415757252465457185286076812094019829700271011415544904378581055138776228756892440588158927508541368439125184487724204396513094365091215821496757072068247745337317869262253376864504951936416285607255721451696695848075795716269206699323582099234160596560730817415160014619616666324841127854732402296424058433624703919966251618807364183271283563126409043866962954438960684646484510332633971692249641137649258988662134020942330211414645832545402837891426069812042495504084663569724829367717635935253473097301802671632318705977920137507948781404688202996362879376006201088712075185164789045623868603214012074266015540030185713796773008794546976921635616964393454070901006903082125051537124056691157972990006113622017729499052977325281992410109019408303908272552220767117694802123755424517457431345007118162153579032645636134117883218595231033700153263366827904010380671904062917676451213527796247383891091234033188597757973902011604671143214679061386551459764436460016603858950528507735474359777497160443958865353359152764030448899874217566824548140239108214508406797740649438906080525038546404858572413902162885316121118762490165877960235040404000494205747757686464707387195369492314552643542282150654069391010616886479342955639249471775838314834001868200228101384104273466576773456775284102244021493379027864989611083728761007499345922818265810515217386182629290537014810553173110201190006812625166362837476779616786259062445923999158872509755245593971262541898455901154784945308855605255022171206933829645022628191677818811636337613350604779362001295993551564430777414120036229261735270412363770354593801845494381986830929136465290012821448615554312012345738507912005648387064232647822800587434318898504234465009449452037233104317939963824537690845004937491253106698860611944449205613921406458722915862061489977600474847214858712908982085406361188696433288577034336189971818755050778306413684561579155909336469597990611618232193425341025097273202915168281950668875881634465980660382553532323616408865419902064823221505360279611400695271794696472277621689541759932359720889590560857762577881205045582388308324410741881204116679531696809427222789117996145338400781860770875186358900055180894635071853031687567164925830265944601951277970835778651300428143936639258249657101334904515573199740465435753916729309657123219234898635894664339887407086904706629806915121353791201052021718635021171680712216597614116519307204642087650413813089418562106421997961003478816700895474341769224538334093566106235329311381443286098519833042376591205597188147972631587122178183589853842954228456656663819301964722001128007278888393665013069738019560036223579910014180700564039346211039066509962299919838986264844785384242809729264911561795756594519380554360926523894137554989250404322397956247970713359722371532849948095039205039484101669848789804037089927431533614166188186495896971635296003000231898830782837467776886076637447030339039223183607031699645701841350250845313553375687471847527170590994868461216398429814755784663128018382181921908096401426717162803868381814962135228728458506705558701041369106949044911680310569849112518294026788202452539809721612922827996023904595834157938953624592272688018057485301436766947432429028926893038626953945443175178942257523081378294136201578175071034359019171251620649128346155313588179137423048395328215467527403913768747737230571568618945018764457935264392097754400356401554835656905861122683748096089278826326692328501987272719608103671496787533357864647972813698640536621738418384145537566498712766908185675849484103177257688133450351472559027458526591663967204216254564460846824117162952708288324286739041340691207699496838423989694983786180579016476966190748943672356148155735780633029047001465481374367210196892496863003795058772541980878519668643526478150638619011255741731473929518397611765948330681645023824278555850423662559651388305048025217661060955551533570611154563608721921698174780193133860765693673602444206584305243853255887015674245148001022007086432084613892814265079231286085334893974941402093064391089521945659873053645700846134159767593217682943861275924306857586038077185708255835571227241526522852861344520604096657325564750648816613868257065019891199767070499879861223187286601254753835187349824716571065581122955406135790738451202127992191800730799095500717920730446529399001352963749228772834632242704308048162584542368491010729794448889006400070621514687869219710972460172228282496292697453236524445634027136130129213753848631322552651062586407224598960211819278455736702818019516012230225430666389065543442962375406773227384624969085299608681390403938866919130354379813667286455613831177393688284824857302615471976203976657287772649258468855600096322787507850290616013709347898301324639057362252729432915955535328013635361397679510792467594598817737333321090764892656710876329887411491310812587041996388002949729989040915844770975107075592709847412220117280629778193013786224812271554977999129039409940950575060094601748672672238603034257176791347532882711466004367371628133012939722717724724319250060865487604400489393571759397344320332046791704423345800115955509516934478626147461218597010715810638395158330364959070420663086690896450314168116742017158917602045893721737255673595406764588945770321550579070464541959513744561005117351014814992039759316089177638876989932622946644997066459587598037890027460400143100136766748289778388628688214474613185400520325480565196285117175799079110635205725750940233261985373196148927105507172679996075226556469113555189385251134152053477009490837829235461727922892400537178620187327119736752810691481964066023547544075564769675173237623445039884761097780500119473737378277943461607266709825724511897416159589840605305094982197774753209617046356573259138947682149067169551051412156376904495451187049894961785784289739506051231893721509589945070242650633926770950087669665140147850461003712713805509960681308583502612798549949457994170515226058596863324653497638852452730229728084764626516867360545843670319679334141000675777062147197831461017896098058082057950931363132191897796016320041089709399461014212378566651868665824170765969596193673430370281167785076187997815492305804417162223854507647402171545100020945459720267323659350159671730824851168216350031219744159017107725783907136654650695015612750685068557291607009751670708589236842733090401132694827352150227398327296734423773833969290680033176160987114656458825287292929327440643108864112682720925356010044191258927040848088502677563925521952503552561720250793722269565646829234054413840589864837425387805486161968864291218823917729414878509378033504508585111383840946144086160274284803284429645208418810812092765746584904593944479569499316266943126700469256301825926579354565863652619392686677336467394780943484342078456476604980889401774680620849628466384500865243508108079208230998033844875139812985532577335700822597494444690144001247863405169904330395866377715516632697581160716386636443969396336373225866796009062200758751723073244199531027614356527509512819163407484913165878956546931446219763846603345717322980858033073927485345840793563750038499769416158751629878776484739689327201621561255884823691484014423900642574505768485889771627053676801184238362123462631983540905975084954592809280947104798685450445836487633540100398626519659429111062608253638717384630677120511131983006610694838513196554785435238664799761958803944878627457415696731173550181518830960427552434648861153929368772135318347775409060111853238280631563911019602606165566430634669416602096723705150549426150972350058693477203153802166928260240675961167623999310322026599421652224904421915712511588822724058587571064045233569984753258172565300352193053026574514926102492128544663267392146482062925257780984345677885944137688485322210441905182409796080831639991126937148277281033020307296460329041568475482624714426027729234962815229301613029956518748590634885189313919005056398017790142431434148149951201881878342350620608950081165925706016983731090937052675859593469449139355298235862615613279594275485569966143126374499982964499035516890053087855215977240742730529523748334763556149447366362707669864164225116232119391547567065509765504106602953539631835082621669063446979022761983757968328516491468413845282649579212421013505191973487603943754144539256323801688800950153550978370579215937552594440269086665262794893427290642560604494316730303727245197331880678956994594366612202415153343750432197669649099229303307511531692576091266253895184989936625633157827174807020269236383089356288295631331210262882724220825108766443650694127278973587851933695101389786555198057312160901349335429420415147950896206673526777416125986226958872250908185944811945514141575936488468960094101000255959310543519706380145833510294301720717504104283682160622306090208267516001032500037824870984193150999541996747589224535485393974627432717361041403445304274879641696703215809216609798056478986508162562803151388099187156463547323717881953339891787773079614813699744778055892926523405222649219341334029674290962350161161800727973838990984007454288125426215604339446365946532472263871632105790371357270761800358319804920208469806015561993722025501760270909602880922197811338749676475541451215051071444161649715779903612262546971162747072952756567294126608000050021622346561990040699595039326591281624675918164566582119600945330101474835126009382679531187314147899871724611245090900659766243922701950644569153921431934787229476544807990724802341359037902952326137573761332913658304192589784750411026198953501835903302075530805869983689446051581962554496946860875729688658019230531572194253913830110753998513164121785334607510808718534083496279147546904095750817198598025636190102913326094808843902293230506452465357031060718048242454871983307459972671646561285885273425971278365327983497391542862383347438889920427438626789986684553918521685892185650425158037247716513874056537346660311907539661145016326984075530517655261405175464646152794965519441423355912833337864295506480446081193042931606922451612045254607056656416182415311227316919399955051470934153643039123994589122350097477118937931760405970126337388450100633436035304818814412342514334338332188817357854940153203139961233463006240336624233827901187379517747776554780221823602426761305231779833397041996523594652475144352653892127139174487936134832821591180463742436639811195833331678132646860825626830718049963197360996467338902781866652754426310275476308043311389239588546934276241585715517284585223247455201492775113888971662263928915654605541556210885141413803375273227096245317339662859622601819624293227097376954737741858194993372711701540436395963821819161964009523267180083635070396704575361203779080591514423087203885707379937868455690986126074319669739824801389232011422772222527130151178020387331398170007838591724063703818505680195406124189401709918770235513211871904701805909843801365952109349088356216680833280412834839251274449359238242701095345742988603457910121785471860027458124853246989756240081193793291238722250753300246732204817847542955554999642820466579388235252099061771561100658031023743628791076200415550074624174973150731410478794869418611079320641118976631480068651534672880423438612413522646451046823240515098555119482143103113069674761984928127412070160213654518411952172342117476991799781085408829118672599155332300747932947702089223465065701245354303914798618136169941528504906277281696882695839417188505552668584815056628863420655491619581380499603799336947029067538633546179180827127053090544548557009716898416217023075696013478961037017093650870689593036620811630859576118415194610937778795652174425831221562752528871651659962790689665606723552465129656046403209919024512520257155854965082007370691686251320098465986171398871281831643581950256949279881301187376343807713522533019341888889171271778609614362560699790500338393336271985498079624123944396172661679110676139880547421229909175976753260948403029958440984185357852478308241138490267658788718961268948459283480130910108177733355422837004139683056388526331689368301219501148576717826831293397041089414343551324766307437234743007930542958315620304656806059323814889038663767968277402987291302628525257889244292858621019125547532951950151142037248306172555795964848711046676326182526105650911727472164611763180420423008828188401813101105083752024952194741019283348370134357515073929769305025281878595180668226911126955045621482990772527957171171051933891023929183942624217783998049763454378215896965197498935884314904685962680209923009883146542173501382574397466412367205116563951641352248512507651323660119381588188425862424026374604318764374481926138251171755994364183950965147222561147490965787231973429201906915256306243238316027041204365955726457225339873778502844481731859091401041786192967893294638175098879991498491346422661450433524547557691458858447561462408410609534742963549691149453290536471414987588737738610406926074633487724938518140056405676992440547421828496375048784306359580905264593673223870119679837411761191039887741807958990395566544315038616822064760650912786360391460939733889662321051670019900402703355400993367115080751757453712523958048008621054207411251449742451992189438968619824129543065456679347806993272498765234587588147266848081891355573955794650810010536466902663525772888791086634649821612166037384709311890674448713272679788305293616749223312365839776974396152166286457596241729971150377438857247737267074232664957729919610622248574868423221960526552940672101173556843638537866218455908642339027875888976001514220879111227747840090369635700125880088079470020291214790758324370384919774167608745673194513606967931442675392697647295585387922392606739875242219225985352296485519579184033559945105238545164330593579826246721186764441459119625978267779310789086828359708654869878429598312739418070884858701229378406534888558006029914113518398907167882448156270166914666150065502327455098821405781103331052521160781853472923147591311124965881122458396367024792105476950784451116908392353055702071611830817550074068201536963389766085548000797004817163793743032128783943825968536777311893632341376957852159599698992831692975984963594728638832786068005730728161855973972228184303451674297319800824705673437866508801323170430147382458754663758019233474832356417045989430977304307667409363019063226096337437338811352889368277258338491473492882081077404000140185783993638808787383857555374630743704756096627621848767202971973803022754467448402769480919347904942461726166987562823505674951215097068201119166368841088349663681960136864472988011546262523229958931421192137517851540459814410911982122361971232282022748622467176391148115213630498909489009432720633504574379637834924053030548038879670710468270710951009690775924022564798523759596581848503308864555766306816743520364994594219779094951572167008562181786299433179338939561516316683677078423683701503240061678130254473937255108536324685668379494693149920052356184540916794428060167156051373794378981733534337799990271429325287501966527512628080137026304326103871038801521444341112299446660740444378660687535242703983605371788724062131089381171885144992697807368285511224392900700596446547669902205481230746007171938469292346674110396815981908719279096776036884580614879057499615223114054664429891161113242641881125174276728839455481392302876287212013244721221348409989274487467620556219937477582077670508419272165086643650273545989818930826672512192172026407901305409018733415389753709391829870892469269622895939213289304764304171813162636390497358306862626344896202552851467556392081594127468120390564769793930780418407316829854960436107389316877108443834311544766895734195958548305024245725958584333847483310065683154338510779525840935183886077314273941829637684715325839262639942258303753254170582574858429088139492528432774885941298000968305416110905344851587722558216214087518180706604815818837982559186686956086003883166781697359908437530914340532843494289038654800430963534951103950991194664822112381222936428983631533911642318267465335723700087155112061741418117554427919437794143017196301252268305483825357485661990881305960171671043240045505445245489901782516018996630366212632564286437520045044489991760265213115090626311300934468483394875978741906983131980680242684277402096322668603246088034810025571599933474651962831748460358307251991074381039879472797965832952255875849186400048416727126341453377847227637875893377881935063902441779439253699884004002354512971459671747613366268011227027136215444586714714583361204323591199196474134189925505936927572695800105191957899335486633135682208733316156332564250650789437511928767776559665810107861874936735706865655677624096690942305469367566524140012063141415931243657237870975945396169212635123557119068008909060375036152394962685968013474447558773158270804201585966573992794978600410410196932499771358500627054459264631890720104105908334020676781605016799968565358746576370637255980000126826129660666522852617535522915118385765538251413843272355918500140219096396442596685641461782249860628079643184868133575334395194120537453970398846248563045804354151432198200893985128164720630224272946809895166315037005776031880677294711468297119870278818223093099358449668424126549185833661136042907185434986710048331363389198041451448176208382253355920911557386484654930255173009422463310806504039742608918057823785417675807722165010895390912927551897370935861372236543370595044580900173306570233364099757849404649872960683971314922501596866741809016489156649420267561492267326151411241365180760681277587203606707940897986090050290282310619921503951866617683568730697901683407779148262610662577760491768884489591722112351975785685922658076083126117517748251519451217872043878399008009834712922276569613065390828936667849170382815901798229805556620221279338688066758108703435509517162384088757512836376346229134723942672425540551366012104217129935019031198586783493616422857259850398411943128388242254363399083861299441717766448782228565832982823740266406211354952111934470766566471945183359682059986228053445636226394199999635774507646458533881492001015422007132906394609804588399519250862731409889737142112077847961118051790171491117192772959823131742727735568260257380541735824039663779614387111454732199550457231732427195394062466093851606377073689968648885066175247400181835214808586157250554015274271509099643473505173995963443946488272207233727995213528680449767591345957643175303506123535587176032904423277284156035243957263987228152355339509092117391390618122228904672890651502531182075840386546892417105363603104334305705727222675638397337320125517381801326224164726141304508850599574996084953174428766750247153669082517071999888650896989215742351350733027418488254208519509432362759494087287057177585560675514028399364643592457871725193635107990888213178128366262757542180328467949644228742324389099396742790418793123530869193442209742370351345969664957871360543499797304069977280052505353935834690404914242054710191362086882669551481489424276489180137458900561790526132881390241674955965084955679770033795205583210858091450418055723939506243970553219117224110587237442359781393957432242653668479326970410847501327163544085678845138337070525733726360068309337695397745474628961065412538164533189573481801258991556788278919897277139827121038423640289792693595487433860719020470970289683024916690008649421569361421487109344634673056264468556153068276378034953808190623367750794692420146294261616306230244639739416253282495967654761172662690102921956101483563561719714677464663880041589392622471356322184678404305413876173090849431323007895859571292199478514047838091253320759131751908335423192558152279015699630155630040403677816862732983541372335497917064198569580028046178067830283218562471358896615752623476479887285980891765794280708663988092311969409696834036505993081902458998354766687893436158874044121790635576438005681044758837231895616702119448016023761158561103014186980311707004318852759031154841002790564817362477167211210070907831874913627829444962373367756290428776724839051056226945974487706631496528308694046775200734050474099819667049900952946040965133849278254456686888702048645734902669815353392017260935156144305326308638010368994301341923525880025568544167256119875918680906662729010319099430211044063749011055942780659274981848901031963736302032156919382918928527960882696943284248193684472848483195708495467419935444159305721671198364493701852311583592430018024617237127463119533981121809654348411245222068384750107620698740207465616645055621405155879976359720664275211085438382792934187022081650215293867930092031941894725480575779456772213555934833859279035874851213792356239685256992995061983033906229469151326450600001481514965415067038298122221838328790077630892393932293998267654072031065845781385247988519378330219499493034668792935675053888432866266624177808306578120480078807961253810501457423105823926136156139143360645648031267914841913891568861317116548136060391802888884421909493924846550453837179805426220598018280602649728672096957127308612386218990588192774695403426444357252369883313371003119141073429759127889966198729319636303228418273607176009875538421316187237714104268882387806241038625750403803398480811376054855115107614402712224240042592350321516719885182062982659542473832541659426043279345274479751107713589749434784769350580892952435671194975968682248388064594249778634284116115958831180926022758759382834634908556434349848209838760101725000675525735317357096377510625750274397614890466191085662369931062861442184604850256794562063342663944396335417276666424361565471462803552170724878324286039778341615752610301054310710806790482454892763402581570387064318479993954416408603553045375626465390770645171179344950476723628202524711863284161960093192268876577854613285071926019876072916306713324950117408729363941621422981083177011506832429223459032848450132434233584836845781067790550080242761731672753170027418615429826570119818596954043634711626776117893260791689660269884287901461514857266612531097665358834372623331975053152569388587647014389950608761166784032068979664533329096695698323781286598042881879623198508296966591793903517226690064955940902587627370401188956951160356334321553086680617989375196138052986617093785691202293770174214897438586057944101747288698279087706978921082975266700922764097235912504888653279707297159212702632530946035511870442901437345217141226411853304444969233615411050779760214878149845614519507508297762860143821645469079274135765241878263276358186481890178353162961712440758401547188145747062938842410067572280314920155132043967930504079622665766050111782355507682633691617816826832476672737039668756619178121468309828674057176355248151138968556841646709388318067603705356092517852815784323254271260018960698884432982731292857113533489095723845067955475817283455476206661837588737882911871943235854382964874815060490202717044919831519867346516616137900591628537730767970287430296380025727958961168227869113987342622236571913229188120256859050374512133740961704014767676553038397212577473786399800115710236352086799188429262270826781179487817336029044019023910355480493330756586413297310900730472952520037403400065405434363624288494770135817913725172793018856500339387377539354397692805476000945567602700290861368105873273386646087419176611274702649099950644398290901259996760451780516653382733598157159394103589971627688946435195821427531254842644530285351737356544799836188274867608988999932496846545861131756356977468596088582799248016052651843611990121608427827959212322746501248686569424224458454798898103352727560783670262935068861561884119398208015523834297422823346711810335902886921344350163821323846417753339181822061826682412161904650976044760579110318787000992496818823416213354569887138594385610989255206793220130225006211336284177280639631712591995188339566585073220045837567950937063515095090604596689402870492892480079197821633305263057797091210921835119583989174176834436521028324233815360864156999993869031150901565157169410506146315692879043013022174576584959630222457684701405393013073899806111116189811182430133944712809237488651743083132997745838197848875418008523583773856934985398017247165133300949383242929237036216804679293088434351951942237538360709188416908734804081949634792327322459724823905437839002135242699656384506262980922548882882593875465519862225831157288629342652190215744629932474244384549351241788284731532343495223400112838529347630716181777331079405267323714362630963489766321615880622321288010047803264237682237797939846942683548355039791387174542341684972077163231902132035620817459816193448507708512523000885167285923278968796971775161397088102284589916620313510926034295432695740558817675622750059191995820377073865005111125809753022681694390268050350802690337670161118048015094377352540517855905474809560291048018795181355845769978617082850863647155009504604806450549556359681046425610564876881617375431846020076408700103094338394722305905823854107217014935064742248054983818170282992516287196258665835086000518988264974583233544531005937771096868150050090863418805391546427986142713926456088289675046996171119257115753736533880467641334011067039458535842283762183251958211126628745219744608644444434348553423041629742094909636258175586248168188089143378304495545149267452514797609169195146763361516750807288915850176543306997122782346014749363597018663411035176028245155915923271178546388810509152956065431194786030209060974071197075579432527590245456659245764428549954227310163002439875335263849717989087395287211715737776334957061466658081249699549100143760411484562324033816968950951917659098917590868261855484904760988619125965758705221730136610039821087680692657868532804022188191354092751361043827283142134521408745132101826341888491122038118779488714941493776132841132002026406202613774689368165464240607287358025468201018878823003171515166745906189768594822671103621374706818524201046024206072410212133121452991137425235200912551418129230259813614068645157021999325924135929270010641345783848700117655991736400922445670016300028588238496987344230223886099515984999358403427149241465233740494573479579397807440837355765149659987964849203580869242647864299882208666676982948279584827024491388167608207709801325487201574287613949759266038941635938150084019208993756397077951978717035474587120755185258448782625928731586609571277385610011505866860138407723015352208748430857309993911727627398008063548295016877382646543127157226276503885663414230913551755618786102914953290659068829082318205175937658398339042969759085704441805819039680849112601314031798889443779283809192547969058789311696973627697962081513699975992857451943729350772925933396612198610586475013115227977884313669492621701747597365268122217090376642001918549861491358958665932932084359211010103759553000909237076577760511080588360356992567015367497362280355088724212058561590439670143574820743493711792795598691551931687127309803376490287285245648398038070294033664022075804721100665891108146418285466446883335773765755296410162111165469634272761087184949421537602636373971661461852869404105984773935481916813668841916946631030560045765931909503850177826457967002222714148371371657919266687487104992681808093614330280424456534201263739126678390272344265438409797792552110005773758840765115319440893320413720597508472703561116850892859515842826478766267952329948654898571026083420874176789905338489928885446272023234523538596486028898331287674340964443126932794513813423987087295830894353569851012791028564758884337754760989014922401772391748746466447880179120543430894270482986111559125945264462443939495331303408190415164864328155213964706090849714659081482783427686427727933991567221689894202366557631628714862419091663282948607634022396355598180808691083657511379586590794507620075552167675769455882701465460503117238290481019253582106140289711186713970421915724658454551345961686853250628945500216902794850878289523773540989654479675820148669102575405270836460334305854242676278020444839379145675882350609294661406735660523477801612468332945944828729472389707790930044350908762002823963114958219727541635112393239437955799208113403633593940945688451748955097578323053989940322690688921950638356048957452035004923492457655186901103562312426593398163875937201742416356368031494514388218000804814746569409111414675065344405375538793016489358161443292209551793230688647703233808994899579905479964865254952113691439235464415771268734332123173719169469396723926419615529589671063864963780170449474533807721478677642375451760063326102143992603539233532525828243558709868373577361634378235303513574854764509614377272440914307715616077482915561185844203269432266000209475130296035026761442151935771913903065007134509481325358742693555519214292077161159105932516351229550881616949748476831141940190610917474654574376973146057973471742530742190785616077277062064553827240846875144223805762763270909942764764669708425629397861058155146822809487276804872255744357897498846293051286710660953612999152871798552771742853663751395786968241710425613906486307288821069151187094120446217656729697448509279916419675221171314929554726824286765980742030075383466608513838209065820643695457516696985838488416872057684272359157135605818699552549341686024202489968569091657869349522979540093749146290105750217497722553504668417707613023895414703366132026491184351739677379602268368106547022249082273967908285900265188884310566416298404011116029057904484763349321884041908320987785303194088370284286329184022813629711979639646787676496779712808163022721044213011562295831091784880117086986245792250744754241841667987523338476220546680871720258463974313578030407223116534932579707404737711661866998122139431490794478671998751983893595228313919431774003968504318918300804401929710052273158109474361508224325218663545544254123095952096678079121511612205784169229183321213092961232533524577405343226869483686615912918961988967096150208389276978993966490018259142823068900834132100079643016012199724327823335988313803145590672162048202316699604239036726582447945251036291803649135515913273072161539028189256644688488567060896544356446268278299862372115748121236963402108665259456195742299882016879909845250042710401444920837725838453440480194203490775605895346663575676216655196791493952585060204289854837563380743405172628164977473677927147859910332947185307963962998284735375811630360359442000305573129359983804188273752801006298788117876333704606600440377129991536097917684385997295658967436402746159583878634021209831062809855418106429705911373143755965083823680772214406586740069978896950133240508014152865588610804763614373640643030385349926096575544918019224633117139813230658681022716917328720206772768767945968148515078302574383423255793476310222306425522173276234028231716251743098328868902090397161487589867520309263570567116818418877125899049195774152213133929176832623113289557632130523969425762125607732319797517916675821247457722254453514745113043394868270400364696014667072184756127169761695713479799442348853523938248042051198213021381189005042869665397998156502627905225886043816393938707270565711609999893507620575549402202422424647936809878708113319146104013672204934222968839765266988998815376967161425435210990428217086074678519900019053499409041175572019941117903467503806581475724946575175772340638297825167751760390416758324439647109953120528486156592375990245486913832069931438603708475864587000532791873756213602547496483612565842907423468670213043144928038108245449303163189853512293165074465067179970517598621877995586030676827202906404879508540377398126597352855358859896025079652875246440530002743065426966832169561279531032190684400155683658134612032762178360323539802296438052828601548565352544201410879995962003485606105121150291654362637946698328640652375007964819917178339137955160980167591006329570033650368111488974509982150387732973764306022831144874260438544237478901475330981937109643314686402481528775261142427585974831724845671017323133356534484855949580376105191190953254430489842837581994198279590790259990605583960408821009476610992101377047043138975168610768507341211895551586473040137610417149309201433829138968397084963860943336743151875408569918415068433330818817155751684001385876599920517134378394978864614848936039142232643309485307581391919609231161298347718850321888078333747479653222921090458197346002739082902273556921287831183734880013160332222588230105713962796365501859653978796464308829896886377278979654853212130180644465484429781419307709432493054988899612191638571302407502050492510927239399396352335694063247300265173619320710385074557100227066709844439306074185410040064758678992323388009449216750111857206667510529725935683569289428046480504839154140483172749423183596660670103579985006416946132915591839655205479543078087994439030904140646767826595055948110854248725287357949029993394524756932328591858827982253273200043835028966483200352892448121353815145039250466987042826228727231672852586793060111083353096167641126960696196466721878856680689144946444918288333301506797603558378415179480324782692455226590293777538265729063629520602769882522837926549512115993533067415522268004580777382707134544667202423461009972649569954777157132177836798198421417976722141212134143101305533007824436546060382331794401217201087950200688208238248216252656613385072406461982991682000245080270162927190473046919836016996667679992542658622276644062210748874468460719823212581759198266469190861161492219335630783541833143638190917395559097657722188216643067437086942980686914836816423914847899878645861067827262902093226689000574005402830163085597791238771358819152450416647241971438928133710575451491827843953509044667325075998836729905175189817820928196783992273721508403922056483273396899348267014920278222152192251993355368851029417888186043425369446250384402362614232143340754281770432162882061761203726559275863738807718657772424950732757643195309770211447072400126578391245875447348721535756843574720014008633471931911127145788573573276853997341991339592534228197252383148235242578655072221287311352212207930809852851868537610705471364651797875034992849106715374393698337895908373911532638504752475080978447580174871147090867933814516171770951727663986149757447693632262360694433742139809224455251886962558359366286408007098452856659710452254588408027526280390684363074939106263544175447715246482090385899133861082313774834547621243032387960341161282499893140739150982581594217927405109987902399573576779550908515390451394201839551303066677778071604648514048209422229468488335887353798260779441954392665416644782551132863983624790634667816948094172030603439280979075241351024929226024499626355663292627155674324586525421426288706532995848639198960383388110063031031957525696182564260940372084186438119967408188411702128700014275108872198154922331721879675578956768603035141035272817621136583180707986646936451275503909756751076399577869438881304304174808815969730986391971723682629214090903914674835983055614673056293619155799486437342863880344837380717376596395953879406982639913766349209314083071234040765341667615806432592843135655486999511568632334465243205272370391189530484216163531712952748937488321368732588556361136272764543961422876953699708649267475985882568232183155225768980001507769935242445141024568271979391887238385673309334567271079202977958888374106264142490751776915491222244927254373928625342507210974394621569262849426858052866143203926279198457988794341596430164016039396856922101843173581093717735716491938875543823755004872870929165796741484849264867812147391296461832261258806438828470618102804876872323827365361235236500157998522818653898267833732945777466367701123015557635968955893378193912788095749135469700146113705426431981859660426631876615200732541285348122909317193905778052088435635731200877747612241065124392099192749687285206265164973841229241073417510531705331299800201573689727211677045304391022897036988316364730622392638198424675317533816386008104804818139306666996957935345988758415236983824077542318695550697280558415988237172287293590139942925994015919272936838958998611255633702003794020457080989972886995116657627530292655916852234270903730267828974627327852574937997090559912488887386767358877086182347151723969846161933931676824954768639992215715170840339056928176991613778158732944599627793700378534817857940425491087826175544504222058094157194906080589742970865035692390107980348456423555190954167369617152989242396641821840506380321063097269151496932138371771514194499193770634027260351617979757968458309521776815970234845095367918052324780059779747320064838049642718355683429431526063956908046351249829198569393194483403974436040832339858958123794043217667888568681125364091587559644060777549535470784378854393116290525161161163145542121552030354465120757652195692771380580292064805348096752159321445180765386400171274921107665276455288958743581618864158380337449296584087305622633042765121577206668280702060730869145399231634419561318783786256568562643812253785655612514883563251882978857110843472566663235254609657839746256642598702259462218255794140256439840931328338252212132811588891915191505276893501199759075623585928240156926580576711306654893996299821467871271575991963490317994109359414774520510186991384207652190303410530720716533443387681608726988129706573370508545036909627267562313305519735850235311873426096691377951304174866124378249982399718554246107110220190311334219937619321657817591932661870532593489321434044871104829625370174750682514773869419156601541310830307307280876562366485279007684474456109338250655854039381584478578457218957296472353221208911695841860269277434773232925863285587000222847809956103322929474355493957169331506325737452142498286771355221897235090544199599024923232496769321005168378652077108747957098318509269333177026807422324996773447336824549935457825683254992878314850436639787328424984573675486298486295778774494279315013975282740632604911301963218816508513249700555958686065102571884651573723805647503963342672404861759911603747131251687791806285501235173776289818030867077221792484417339118708397439772183752786113333406760434736759635511604357948269916256571362940504636684324657375619357995205116431743852026554576369966667290267606572079665684889918120424685146950304768505032837402693760494253766312278508966280863927488858437359887631797354289270098808492072809223639940322435272612464048058589580397182988562668443459761992679859604284973027716621686642668687039529494880706238433438080456564079017946792817865913996693217500433628449228141125241434053250392409133403658765262442593732173092954229715078143767978307783078179021275984583289685011715896409947819672124329938078800521651302269438824344980677211230151211421414733018864595299041399380983258097347863600659541329111659640286336870059207349607728597127862525263562307374383087283390269368477289449719492656145480782814348198240056639475230254509355075297204334310507047513990769554373405216580279613382209750702871227654306735727250636144260038723675280071129884562985905905784022551733961752392673808240246718827706969762065114745289749112158896828122220364738349824450012641740975695569097512639933766315451497552731988117282545898332256443107182122518421389667502726790554254941409897320440731359197045532869909326807034400814006955612223496469272166434243056306059970984516442824625026121277829402962924986397140189362997282948049547398369822123905261233396027437148371320947258195990038544049390284354187607536056648179113069760148957757377835018705961119841410590927987631794673643072207208708168463343329884593841029447716256236181494249453361188831230752723940529084188011390421734050325722482773519434357781303733256220166444314450973971826455788479068703210997529584226984560639379901384700215799296044317826127050998079817138711562411310159601378050577261857536180328802931312028894177360248284098339947581186884638396167547590087407008321822983368269893123143979826486657763464815591417032756461907291261351075556654035628528489318561210440943530876894101797204852499918388774588223450181136375472937902550113901665207658728808044424662318491968571743457375258298193674825951642410873607837441743958287703863803195607924008388578117990140183267969114819479667250577805665522476574325237499576041706599416041503686116985715191337285892130355583759885642935245294962469701992920591333409782764515026792032683432293174442222222040153066757322488330370808721993108188004132317786589774426878491873220593774270326029237947445672332947546720714422089566017779025279487596771983192772253780361095424836145137141540921432498999287315233006291524018850019489387756612080152095807548707086274116568830079014553501071105187854054921533918723422017293596005385594601005363839851803462806949802951986674051725971920483060670804873500525854109697959706064063832594152508013637632565097100015012612720018013864017407975738288415838764676186620343379389995879318994719246713778221106901811689734391442562819948094832530638205516660523008365888873711485415851527121552923102690381231631189623668879204979124282766638754802541726602291201908430042854789552285849373601478946014161837535078999822950792013931852009469901890298720583862743846891681997927575542088389595232622185697247530509226348897240317138398339002610615449472321078387049908095800152674618476399091227128290240781633086957075711115964746830462438721210993134337318297154866974699280505114874531542806866851742902213564269936424508745615735195163239172335652627144346109621997822797184500221702578008780018658879649243739120543252528680078291905364312975425918702323614745398254681717991759993614677513192707372860283872664617441241096139009634169944110137375373648119314708131971730237533619432076434172410400131536971697174231858838437711955678128089193714311845363317819779335856796178191525228959118240479388587121468094529429433608411501418686582477084814030353797386165105968534071361321461245878199939298884878946960606790560773122673386689694652743745455426922734122338253403221303852144522716635932081834229166776959492342878114711019051939620808695554299842607164750747933436303301906758075356263384863668987186899254506654578951334046313150579391794059300841685546308104685831567379988870703234980278739654501232902846688038596424904799213678288397281643882630008771626958394128614579488346126355877126972141498980283684331697348167793438413507254915126687234541054390181807320209967936072979806753556752276935177793949855344463031459813466838281330976707045674325296321530168474407697378425717834851653939207877966793784521895156269617203416731385966222384952099882022965335429959094057901250663000200232357016722442845049874321777349827779412892163694391118413613797348007374964438393811243877766673621883000839033121499266166512772722649972602684555462249999533137942399346538202726416145246550119680910137909867404049522853564080050204007366951768693444133682418127851843815679147575771811154677313712196168691836782755442403868972922920474895489380667622594107483045620766383881339663511867202647553457398993283442795647192803299889863717424841875422032725973336000135911643318907971389643566991613138459267691681852635580932836811269146852622949620710691622450347749290539495437217622136743342798262702311656152474781506241179453135326316803334480626986293606553316587257068867289943216942519614732178221811051159742442071103458342820121397384164361541650394191241500739109239923831485251985538858830092970859276662396204699963174130425253352369868872116263913382464398228577286774351070057643454034365282723075632393585119171119407149652254546700830329613862189730291465795455356120611294118625779627287338393867127061439329469800053320350984652584070200967726740345924914933050073262525415296722108267607839164784025093643506883688766665523972638147958681456974007374149832418260059272678924216660635899828149278722130801624675128903672867479374878824668118804682299448777825329534950338111319216356416245081628069593088014342084120465061550319820704752296965072526430867092945990951182761815610821257604990543908900475585051066128391982698945400834687111947000475084397348089491472448789891340139298599066331353491801395788078072876455379977276093994140381866290825067390082095835142395584302421832435765568506283401202427110339964687893668587608415088282305676326080632523906555846935848071279623748765190393980122661075587712593137809578791814943509534146657881583968003491909043090544560215885423826734862984001796449644400335449476702054070084288348299504945989065715381440727394061059013603153838351767583229758850905721709389198765475725980199951665804062830992206855092885930284893663521711885523494412258727270498960122208417053125048941660746662535650569966452861986094259173816303479813261546821907967599355895286207447748185698372294013706507374661311532889037779169861802107825803094113073453662164896913863139910430647059983560325078057082762401108104637537718342237581305086712650794886130479993156897081539847201690009261625298230267215415692074037396479051392648663136492160089868336756759445319557794601520906530341569341953510330631057761009935532714220316761802245177240766049931121960190208494843529814180496486515693257600325336309529585431181099554828343337653485224930259552391255421279734126318463710522890088075016961239294007428961210916578255701838418903285841871889960924677575573876095729290873359946882853243632905925465217367251127154142928750445354056881565683537052348496434072738896090601882377614535677738401820944439629049184205939894014008377113058650702570385744001720790509576545578846906072958817737181166709460406072540940162189601904628299158507479743004502750084688787292892435479128585283725702483706304930735123524319356942455074641829251680182801944600159023186940744453124842824395010375192345326902941399662221012992752044448175273884621368724585196517691149643327660171926451242708864550625456125889086359341824342362532261924668280393314094459025364718952097559369357557852842202811789643465608576816414424294486417777333419794237228182233077649646470179715835598318335952840258803967969254685323272454015935735734716043362700135547576651109625609988181755143542718307034464678162154095286661239247825276004419177522679960057842269343794691821347966384526949176065365408321466295216496075448986910598313366188876329972202202937479443297607050056089999239192398341666214454428194695263431421790750166594516474833294731517251223969689822123361661987552387513993134683750848070024436301072326412043285093896373190452155924088731234151401468916994926869919549115950778454120782055765706633177426197499177158640602867679079547403902884927534338614855189700530738958749119541441864874959337530112371823626464801712717076726875401789374743338927968541546701643912751016259544739546988444188580307784903917756550868470424971692682439964473477211136052318653549435978622018977542830645415664138340196800703772502209924649692669545166475050857986900980165994169196852068988449320461594404150878555324466642230183317856490765579231162246669000898134674190920517141032610366423167639353334911572514920520137846626775470485191166609054146502831984822420210060976643845762090859717138089212416076728367166077035817465776356345782072698865032771895627457924447823872042780329243743758370310191558670287735654259373308233543890596957600854473533576017100715270076867617040819145152429557646399354609516833343017714235401754270760467823964314409265646737420085479218324677897286297255261099974163090389670991719586603456981167097853054733427824578156785057914447908004434866641205162874505637094848042566510629791388555246363156849087118695285692920277334680442703132071649551775806139704810002624957287915797200716807080231644113417571558834958884288900328202768223443010507524436995858546833895908431402567860630940034019742519940217524366532060657319908800111480591892429815756872187911590112122408879233060027233296843062959450377190142174357994584166529443000389396185712785629346692240913609731662523688968145376127283698427251968500436250364958790007794458447717742741772464254901246295703155014233573852999059722815864481815954628830939249533943043770798024749438533024767940396957267802789061567672475297327096191493440025479661584768080757995602343492505677423874196686394061778343554160830655240995434125813457998505918628407999625064582337677370732573835442028596505181814684538304986340813636118196006286283971051920362271101512384353262827086612911240049487797452534180272252287880394185676557358697014678229192845170099751074680430654434981498031469049342915097795270439214709641249655578682540555262318621460311770379982689861632861681847593922575059779583593526195363549636905622416661384849423039561648073404898548776302482872030952219902064673927946183862257753622715262798909222965901865202633478277730897346555903762280851437777753915838904520955313985621135579802062173949229776656338397407274948541957045291628877680111816900939621998974212894876637901077505741022642275773592847007886693601745964069827760155151160100499407271896086072014534234453243741354802902834051701187086875281703944229994918545562914872890109216385885970983470487418771727986049255165406736001276408647109799712324471807824604638390524810056878137310659526938219373554167601362789935393822469725547254447974410922306047244463756031574652827677510213206264798196980066085985321468028273485396991957965248556146831926111658826112789245518289291954965798065504234331956416998347279410079040897592941917957847695042286374658947982250587387987010142613125842285456296431720189234775243620003400411258346520130634271874137960382414498048105306971606866672979323686408502032994050525045800316267898148049929346550926099936862583016689765902609834413725078371676129691540371403495112562623477189204863308296871560813811067175585498732308205768174280039598702212658876142831445536569044858867533754535208953589049650476281746586232604327180297551621259934195225356692113238697352486944105704639937070640864182075254170142685728545143542324101916416313803281409105051010395039829040786538120323447339697745319568140681413859849714912170481096452520735536179525287686652208833195080961893362532988506026471633592394160307185256570194848505605552557181629721611768760692826563549188974854698374507572133009922678327688710825726140298450904937136296067269539883746463003552108726608934878328484062640039323695102793005080514701632751329809868898805898706575048858646276559748170930787361674079249069213743717246310956824442250063875505898288573010037583591623334039951188360165130937002633916563797329663769636777127351934065864498329120865324007231403269322184668216183270444211568324378588579709347393541777895451635469669679036440785072318446360176709340240581342274008510899846108627932532664160975008918623077911443899362384669828560327763544603411083763411478468854492883811617998531043653400439888186451113933376159588592999248479990644556890595186589549542227574658682120761320628094348751227798905683664740880175986698443722564467349580878760774112358280290653396137232272966504555280007597705435413622324839046844945710365714000453270846605912856912506778897163290625384664799214597847584777665833313075331947343265703748576302756177245121982303834558069342867089001805614978769026440422262666266977385870515660799640550280765908979001715204798096670263272985910579573523701246635754046020877381837181526780083038574125880985197585333054451337504608205211025675971641200063960898508419036608026513314404608594989847211724250228183623361734450295859058054863867290214331347419616810431867061396941165995597099717631215467115583547276561615732021184059741456108469006334504915625188771747433927857403076055948428444746232403449709576042169180645774831196915929188678415500091294038976417614202334264301671478565337641155710735750389328010555524029769569346800794351000687506851982279160299650476108236189114651599559384574354311094920250410280896647694493265757425645105501641468980663356091340370114214792788080551864420017961860661797637800676150906111759595698134192484705998808701159564687427367305524026427321252675723119093965447559578467845514655268455299462083656405084163279734918100068479360210688227230525065707419563588322400968707236327864928444677805352965781200469991496101358886099294626346252851470567020740895381413535376874032708303479971087150951720074632007721085164249552924417157130210656813333366157413422302843585233133016728829069042425678664362273427289377028625987681961891540006825008756100529779146280393580187976156722777016011309065775796719632895471738467461050767995151110606194058105694876469227390575455076121507097857422200775229835814708082578264800430291151494131807910721421550834206118691554353885928512364770319800396798455103293715280991483624772663556976816474601943107894850781873629214409050179444930183828401005274690205686756927909996487487538111175057411129621223526463301623663874629612401720782614250109932650028103779461851780489110858601222908011646706807963415648304935297270387333796115736372086399447894536019934135507160302785412058154637186510435345539925868081265713938153839943062831875898212600142327835728270515743597541962868003857173035430317691932919329641902758548119423245844082981445579339299781429539808019768479524397212081169785508404117908096476787958495165757172062867781819106153997091281885295541873729335731151965061012187033672817422411967108258762823640746468090969413876028548071448831476183260694145617055098595899359653568783089527596862080860519602903448019541525301318710914441237486123866372607614821099105904185124317711607478002099852553778663829632016577679224834290605431886889925822435079054480762396076027508900746029174208520179824694547809450055390182817748324944091589032701285618229600687627683426901256322501771221413228330701148747143998962091377632830670347424136061000241601478857332403137379537102335018508823327548562356246758780237966873184610153632541026654849338669353771706050527495092910743306747371429153543710620714388930738973441406474284312439020601263192357424347408405310847987226731408411165019100242212910128755002656461667325227716572365651549422758983933960151081183663240326188378876577486904650664683593615073075912188320431377170583853923013367807197924869323285738022512263470778851449357600877089144341353252325782801433044568891625577846913846529126762633763556486984205273314048008315233032483655157482341902089231285209918783432961868180268854510436498856601342215758548646362368500312988691667578063483118349476905404049568755491151976667045746988286502560295232367132684101370841945426393299441208420320712154327754793060052455690108779577845731276411575281972417144084112548708112856145562111620531584811076320648415590441827586812832367698337551143306554991385148760594776162620561448039860368804273289545063646316533295222884948295668705903887526450109274942120333679138085879084993127713564084530095884692678547899861125242963245102937091083209321093482601533133755987645881389809426624462540379238022952144210566779835423729650225502996536175558561158058736138006034356284706626226841235017030669671131512569818207901708658811067495292418996090335202294815641353657200654805326937884607843477951531689527952814501966183366164090598328789814504046630647072373087444456496495237947383350208460982093517819101342597464263214329481157911075452422819109818530479661079397457423829300330349287977347861871146064571945721212340590686007896302081462808836853245474090021272328552929101965253286816006888397291489980101278042327280325485782661383875445946113231832022266552420390100685244599070135220139253175989480744063538021047652999610002869138579427835219707979323820577605233770008063164609784750601157553475407757970670260075145017145771832082827723704703866162747991230841821078848851730452661494288234001992280408011777497439779226965134898228850935114802973115875845712791121421267566543308947064998325492724966312377993780343206315189871608092785930508827206826854647608017373101829048396264207612347627428650752827447578827796117517695397398702454553923747063771747538208036273322525167528784957546704736069531345553915713428005287607624259225182806245818898954521632485322821176829605573920416572459639692755562539434447410927459758902933356109340138629036389879578643158374618188878632497219515093528101737240866746359432409276285964496556702008355967731303146636691011573110815062183532134875128059362816245601904452303842415297936144541093851334037049454333055700775656393464850840639005382841154834078297445221154233797093623227138124599953009999729200280461174508327399432971952641816107331352444466780289700914004718988767419427611375050551511222936467490431357134760646256227881712306107526963560090215598283274796104856681594115103513035879324749457871727929547420904382951023633307646168993154575038895302843466697535666319339436802966538793651826265167823077585745432935404220087975515796094037720790036599230624654420357601067348724345244267719379555639375294781769611297122952183259611001307894132402335940546679512897691055409241656633090141525249220863841785583262533981862859977268295663345370905712064389507615783210824510142475604234746016879517683484113750421435145976833865390704083349305641621075058046578967564004744717576355203659627058785006520885935775383849311317054353803152988676194019417799905000170711103999625157615602273105725761594336466437408816230902504199768966881827886634104901086899706599250116279625363077521084683373290863042401260625263744742665530390176008856643442772468928375473376381134916172927964652733473848382680549151338081312660984243071447604409810880083900522810519737492081264236000490702599558840219621273040704348329987591740907269367898112582153112403724888475524862630957962020594111871130114151938745763991253430608152675134644347874566763586615745412592831160732872599824385917904222932412893152160800202744703003877335760902992762313092646028545942122222236410324981537892782262733924761899332679026124620428073032413421807058881185542096470191754555516134283200405254846516106909751779287782413003179034434673177460145303885283112283321574756404716670609975098547646406035979236191597760769666145334099175984935938218613427638903128825207528742460340799003126085181623990407174413217771565201456565152392940473967514826521801343754177625047334438522840172337549155058458734143338552059482055544377848923130428424638782063610878182822275295464644814140808442932167802926730834444384058577105734954317612397295872210462514396063546020404059100258931596236502007101008520939694085691256707036014199475664034185537775442314031585574081157433410914246931990481091681640438805665809278520896251322736318393263919506071107451264776673227311116413661372693913496572729643462133278781882604148606797040333841331217541257760148750767556902738224703239567980985250701716962118065561094365098536990241122936543816686657971801508183660663690370353339996809867586225098165427315935471058834559479857211503704974257193595118084136910253065207701653461754952629859692714173106433665784346820048728166538962472197220047518716845884877217630780440617938168807232911163679391345925869289617051120742780249531595647497012848654943011684745158010892074562838299708518063345546293896299847832544323884066155986737571833077919274382428429158733316971181295000441404546460167477968101555890794132647677660998352669808344486685887080718728180341242043719395174081001227881229902161946602736978420919812572377849350521928376949984383161315404596734881574913927166360479765365072561034018455413164823598504114036130973766752219709272017828000391714741549000062010972033005791398679009598044019366788287901391163834615614037414947699793875476514276977511394304769648825675102929306235829239561867267331608248251165669630280042231613550862945653922125440252566054060074971931009168269390289288580992491918911406727479142579761912741994222895796263000329012204501727764053030091864024988281028225640918253109858904119112102820543689386633782868399412680176543865531148599463287002202779351055434698741050167053154137968131502985854875509733507086559580851950683019152453372782506353454790821743145184316606909287681865774148104761996174235131417406920751378153639905520678581573986305117663782126270714035877492247006093152617998179171248819086633909235411415420438895448963796421514045982120817270091974621573024175807550330566520371367580731835256377220832725347200783435667170926379525686918966571295718412230294112157138736604564110466978927100855059586799643260160129065021608736180252414662663415483731085097933597861316935853508933403857754527819223451285603847720989817242825240688395230305451733466040455630178873850704817575754557295574091073917572365949960805710718644482835992241037714586096009718665317556577648694914273307240916644022178925824532975471905391982851015585310207757816146594767600908132183035255549746291847148522349961171260071826939664949604810961634564082326052807847125054396552357484921692675522844394608234025940696032186091058186282751245465442980403370196383390890206344019087676887161793993569957005500262387631234032327636339854564743740735821761016513477659339910356932083889839499546370658916783201986657658462473810315350535643464921168052042801342320397373143777263533147465134066839844763037242181789308613162727003691472414810631237619317191008062553098602782087303137512972363031926742141082866236981324267641298197135592558645139204974026140913261483392746650559026977593644647470712788224255891736651031025918163718732573038162281366845336112654448177347665683003904684740997723096908938527046990756218491658014102028534196364860727369629748997388473884827987297679834777575921020663838607196828942240963523377540404715209033505336197872461159680273331278218724397658654364710400448337300669197276400158476411201613713747359279431356000780185612373347866532041912945901806414827185946567342756450060754951842777045988678451947684482289552288549060718451116570536425051230878465290227288437899809117065519396917745435640260444838400812835006155839567410555906023449552146707162251367189662121863502976848930351572551381777928590211710346404074550432208428939898603596466624188712648747692081452400605505880640690210465664455553836585658018266851933892996957901715414070622135658242509473114538131878151173909181370829246939158763091801371876698068991061066501377674790722794808893451918633508729755474114894189341276843606119075057526319820970769058168023898855283937954872166612041865948687375902375495332511216886127056622980787376646437538392616140964978787676047173956657402884331957225624463932724283561452917651032567917041050720327208581278097686185055053755428673423303104785399318596590267450641228199292972590583315962711998009871645663923396707187081171189793907015603866565769940319762436831623725777704914767866705145826028702504748878559416520454681822407746370620344553265793840870176505934438493917571694359331545368519807478773933321105046200343881066655264525621761322678712970936538737863196879051963478971618205303089657547612063672183166124538434109648372578208901116823838609287472445287320818830166245610707098324201943430131573870471594621728839194009717315036115653791320795870938289295313847325270398615350881791973608513314076238772071592460405512877344655939707366221148465860962196001568537025260445221264917699603664413116112155554520383613841451623608854396077363505190769321202479602116064229463985703233983765135185240032754002931520698894016542437077551199715149641103446112764046274636941841143194718655329586259774113052696764224806194932314524259979702893234984469035989606330166783138853333994969059834928739151172728141134737592575348687572464297898385953148200463578082311752572240656125994024891285816047091430936791582114573503324677255331498061562138773488138780830095062261297177669216902508389729458409172139393312028245385143640181711318678522967937805193955259556235830798541196150108158368259824419284326281868279169146293533674919436281209364511474668625534040322428548193552913037878068293118482047881065068616427900557678752495148027393626518016350087341341748362989209792795317442654805902073176793745189378778559828635730095064659898652950655626325825241821442399939457533895554175687136632832134942534098454522916348464402372502511859985673676331266138133887474747188491164349878643970156659725591947772113532086830413809545352196402401437116827465460944925531393842153658129764309485208988027402475188979593507281340068055392804471673509260922077804514827886507258792376103639987006251170545884853737400628255678481681547086838852144958441334769764288441240953647135607198464979854323061758104291638117587777704706788535145834648533169571827083717098123608846432694652094069488830263805094986773034356843894568340592676246769916330746052660689663233910355569614418980297088194821341524083108310081619692625442982333256308370368116608180149862457540851311438669300091507494098290722946750230594000474721258747493754205672427011752500047145931785867892995280904144628315581996063476170865665345809858883177699550918738237135588108698646551247946259769656258001814052795737172190797076639421682495300585649467937622916309465092896090081304657991276031882638481916198423956363762742813642072843493421382283096072504512236514695445856738846698202100773909025386556966479747142099811446894650219909233698590533608799761596681098550424831568293953132363091776061860095015352390533172922164365683255281856173162467005345184969540133772336080883871451245499156359526255451524487671426955182995495862287914496478529087621701627339328960807071110989722562466785859848664853680201414257164630214702689886871693293602546553656026908861039173308513302646920917266437688194432410560095785328461415138508999398574008906715507326549758574760292368718707750494983826085777527807608251746497134234773447151184385939939058123480775873804346242198434541004778824331088388948000135278210818543811579825898485933999859732123281215203757555792085893580535256411951131854256020563579936682610520457343002962929931778730502229816269292087752429940433000005613010417206273707039785625479114520544163373626328597559485130514787610043190863991765910030173167127098536958308083319610994617903598344738961790756787044865409446778849288009050788037628631991908915064376265648408803444265572365689426438043662458094537078319104158856325498897312526763693964526034633766967655431533288122613368161050035665558477333672180882952272982175491198746304469958003334391802208252868702292201646781587353960598067671844200455796908719385949096734251583283938898226858334318097018097433986934529093973765992749599517088495363926911825582996128985779588544563979836032170030662508315563558497870319781920620349139420742078981993423840538703542905992246026581870810762746664313279067330577343315009863449864348241689782962663793852247720143612509322085541078658404245593589997715037203780812757025476919126409689330788370274165349741341251452771142705123952018520976304553853596816016597847432228169338474391140293965742189456079362137000465264197854168690328276007667673717233154447543441503129471430397377856171599610528960353582515453176593352416325543230243464155895291755894542448729771918111628821114389548590416081475103576574153521217330601418498802533896579765086376940629396151893057491983708388397478453610845054955997119371458719996867982036774273958242943471096290737459941813273123522146585808629086466203668806264017227007774529508827457616738974693387427697016252774229392097449641437856893891300646555946152752749008707352862511961511562411984810139029321949359454082095405602565955810895379965877787495939951167143753716875067434917145807980107273381715448938482669863920623928350552949970922855533447702665746208418498707561045825408681766520400546263283687793687357976784483515167763348957851727926745023910837340988417464257973946864229940444410803550837310664525180983095353512349658790207469141619528692233893587690137254236085972196205928519162434015520867544881775376702807101879927160927442935551463445894210619082001137395370488055300456430017854132954307716795269177098459793015316412343408674711016971244281448795377074619078997494419119259294906994906697839618244672085445678470830218893728590158041783071994466999486324122558119989305550976570410963161783133397255605044250900604396703150844886836564845158761493021292974749060012912418805953862776402564471115172747242456186844356660654538767684359369744423033461680941558187159874380829458129430403847962700962087059194147854929895515293189451776483948689223668924941994055287905202110693354046181153550676010667705244620793299999966835839347431114526327350007442593664161429024679596809339349421885794695559252548442545319236440646233181219970992018763195752705143264539618128929752127306905329394143460085073126117634853242051095970316771790528151679037963549550666531816344869768667124519615659955902658374900237472222281820954734650666048762221189387283841965535605511208566861595781388898799794854944617832398626578908838474945441066983165961027150380236582560925206646757701660061901813953061292199290704980059771152441027491142385472464085146376457460766270807887559543874870722859498009276877281603263434806544767532871775317403121556058061887290420082798136135255130411907929160376648514819145570905670286265811557816822157523979293370602521907083147603513446669883220393307396396085057128377587605019320613214799728666756853633809558285365363946722567450342584261467236423369806968022599599040198401846851875750641067366294870617761139344734656596245816480471511170679121703630230939568384859381820767504585113548640107854832033245123042533502998419992339935185381114612964483833932054232441304453522035494809407084761466346982549255883568916806521843546546789472227070349331067182174603131396332184346714901108666917700226337840828830492327629159695213110492920594358395740147487366062278087462882173249178660859760500252120027633427961704489187168373862352062067698462792940046186789380845464905014103635085478198376715971591486057335151594104572149821387431279839361508650593763193208390247986959887052110890706776671395079593787268642652940633904320440363711830814451191377906896549624730237535533781003116840222449985985693794755570712315401549538221630838163813657342057844544810631306128264409052057091932848018123348688068181289865524773991395451434056821808424397202302075598112697929775292972305803489580617737956585065795392800799956245051864840036489513096762747709691052528555840608746152561964080548839841891397295037575486752452610256347451351659207736326035462257389695975188651172346561810849208880166214803114142805859641801100802728018282171858787963555227790171702091675656458676469451394417907319083943200200827296379509997857478134088950016106894218298579336356361979463810810622617642075581140419490489857954810407066183486960133649148892332729939999625277058038032102451380880591330684844125303065341851687783635876866444073245393273833499643327500434118544898316273529849025303658116393574668304165869741739445700830362135560623904694046631862327534080619278686154620070135271917941348484913859357637896646501768401439293458052736081002179010093860267719860279080864478059308656128513114593182123388427247292994018688213373910585208667321455940737106406143782721415381044092936970653861620474874913615523752909300580163798178452685240169376165192958620576041343050007822245542610545094928485285665559908997025023718473125696700489391547332003631712948415776849065367193040247190607162156599668687945491202052376519292520834247194257202227246717182572918393540230318148355280463213130300708609918495989313282177308444446866238963894847457671193853750118597376277246835317814525095513580885759249892608634777884933989616372575594245440214206924502745701807782405440814596035272137435069217559558743846243252996650379457354340435537928293878060038585792680118598119644434562198331483358216308126330608599080726531004479978799917491638926203043796827602634103795492665393569977710970092095775282657159941099800907265124296156443034054163611403933558355672551864283210195531310804645300389140553345426073861279617729734089537306134406326212232316092930378521296127957560740243974131918095426578372861418321181909388458688454225707163230540191248585825125946144976995264765452054352245274473047089956567157551313195648374006708678054606005450001264158016899170267205875345712077686357119525558497135338297338124149081607369960710837111226650959625131447020971358343781735281861260056229916300418978349924413496823345929428255480805151351402939968304993420369418173711039312697196047305595898536357883041289073792205655008134141784872637252294587080725648865197271464686206281366365223608367945358106065626037046129577928567298865254900659444756784207284591752467288229694662983048024731435608135710119061713130263191717470613622297815524288236230287305510396335140875021407852041428474624766946617664587758935924932853045906680265602961169770584101777040987159195055654813647602890225063704939839678759969264579552854827720975718302079071560580188414527623631326718581871548370295094619893519982390693904065645675943245490903728821062190004536980361051118380757363377310696830718379196165534510482631810325183649553237497890777357761725136673836922236966149384915054959937090327836316138942581998301673333700293211337712004873508122828831379555322780546150849055745970071556856417697626288656369345742061268042857754334130558467893382695483612044863719808992127507635622714110534961158432808078996706928313521551310575964931543617089890070205377794823057046669918349998168457622883700369870123893078934266796993670973328030188860320480737381936118458763327542909229262272121362203907154116227694450453580829135000937509616575348571459527808859666197987414321692318002881575879458752898583561301031178438657197077135391704540929714968115970739819386468257272075618110496978686697699126832805151772062475451384211053002678513815336352150242473180243333154345847730670476255928280263555359858552122320878604640354731056244385090171082449048181539981162924071167841956608245421015829949834823643296740109462378290688417162447658102929136231770153419753505179597349083649053087629656652576171776407433788735075985161355333784366829638189088814302462912219844443556331159714414429436959379103411539609957505155304982306307720808559317737291340845544817189863392771496844998021693925700056184940569254761948379459222483100242345687794880493339741684535280784555133373293646517364248123239565441442613261140358624231901299232019659561813124258422566845653291659973804014122428875522732942384531461242513112985582797617164150066566542913731237837559273685530598262428305621455608290696264416248871473785581823768002113038128446452159492058730022965608003946305896953694403815100567945798731883505634465960332136948903440488333802222273618552973793723340115200437065336075910344187622862072910206647284337260011401949717823156650938647858392314152864077011776355339465098598639510066458912531543544462443159537155778672291255716496327697543913921530496160697614866941921025975224220390741365826302957428648069485399295010643532104138544591428522577138193858150161001404378812755527913606006838438549397025333567309321334797695631615603203489314919541943065447498302932567338860899841215076882014215554461892819465213645713545062540579547017287357112374279966210328121644169945642435098143272399578853862006992688579485652913943435164442513330053900012590066461559277550252307546084757536623094492892472441061579306538170613012747673635545044483048797397984969912183247818724287758892134538755964093451703888187300022502678734199847675222983136855136396217038722977306917773875830176970355009786711815231100235304506001360191560611367125545954874235983464274382594407308440336753241805785349140735158371835201336317049107136834731490494143958077063683318575625379693971597723564722179139232365063406785959122046619610336262777198369132875167845062737574650880913450536203143561601613538922498194531248056703966952473502209272339036690944353044703866546454651877911067836717766660054467604251249263948197851632079087500440365402577004634970233613398223640133134996868107957667960865211464283194042047528231446819437141532970061396111981372414759679715991635988276966603790250775924211844694446229584431969180261052696930428651112137741152767147265316958038678330241580327138788960219151851159098372591902434736567863761697325881981586169411348504280128249299911841121758313684463663221847779020868221166169500488962010466174905331197283078394820275541120842520719952723935007616751644396162771201681905017898864210217113183750612292669322842906262117405874757453095934881844946753407599909088162277196337999380184474969435999562584171249362725276198167729802009222837195717118418784915292872610780295521215249294186417392145174795127897725978116751051936048802523314919648949344262877982999077107015094629187396402642293015693502987353150340528614282951389405657719464434000003783583280747774311125115427071392632043419304646534231132392628851276129612775160855884886906464232716769220772286202502509269835891618647688536489927684164671387292620597176266494124410194307396309777662278552884244590775307784998046666734926491534341777903394601491587412768785402396381433629610911830883612813922953733291009740407353034946941916670071424498750863428361443306476520370531991638562662006158371602354391634904677789297053089325223014153529620394469031708028198020260952213430114566232152131700373008922039787362125813915510618036809796823943190614430026375750160963579462119010503096315445094788343109245755484208816215165309674958243647572449183990278983743514718357222957693143252727504156696696467023431178051263755467049636190189341105385841400047944184354633859869946657368835394063246972780987183492302209416271765605865500003189967883447045068270600638043580690000041049596310083810758680350918537103534199016893499310812300472187314119035904739707597342611774883540064715904301409820195676098233056576228357444841260551584523879426847766386452218012744287393949095814873919365862378039263802026593845330005263270842672195300819416530089341997444318684199228464496859512701512792003184850335661474481856272471448346552738910132942312160236844201399262186446934461670375006281118743867134246767383799470578058581797927368106059461461934947430769789054195022532459651682861740443408868371404234195289538679579616021842361371681258073872540860312024110820833865313003007925469726587936843760570031926067116102211748963461486672167152277030360717506937914289457729350097362209596654141555077857074890432563996704144999886388626062140898185789728860887975694127799396912468442384720528572952444218586181297346434636992835932657274389564853876605512524957158028150190729455972667726025043492518023492458796576156655491645319121482290269952026262898196870979374789374226007541739726433680671479863124885879964840649562100541993303196261161242327547175239884144181703831649853811420629647796705420362393484653598268652352044768327655100982502327256103426425543719042438984971040761183377808656609304834628618269725247359875582975968727273271475948292880979033238722914351252482980777723825835281832989334886430507966632166244433934842942537452720624298966101009825711895134550856159758679995754393624541951462939798204198599801971784890841444219747465307329811632418891823598703658158924059772803108645084739834113630701622649095829580830925678153668463845867181889804255899901613977979827331330454526923880971320674972509008796347635682702220694297646695954355556608299665447701849389646248502733283429081051408036747533926894478681527927256168813576652744767173968739411639808181425512061201786959295067241709535587898927258721243599215340463549895777836325398977941341216197357143248108588598827354005878583486751869405981717490325740888766081826603431735361282386749383332892713777120010665048155105795805455253650457760530994343423820141650964164415052350641518902801592900364236420290091878294848819232789161782227479246513052883082467966300931446549701130665468734355361591785246778538491534920894512899022449049789442579442260190225567683492098558228381015467068704091739193400890765858666340305739516140488913818473559333831294913767665498231335000601027730700457582639288581218248610487121322772110577852447313693771109504750850796127055508628813497805396128807771331772970955701546699178219481808254366705225264781586736505161989066391542969678728243068286025057186378154880298212045912535065237783107316737496770021376203021936869889135970069174195281841639866497881541671088146237462664508274067227666792616158655390580290112252829327819578915773896087617351968284203888362059969027775739894660476831712548712067066086663184117239864554710640795759236904616481848499603510691081561976993133373390279394260532123986258482989382275567682027104929882368541119483114300521085933419835651769496942065409005303874706803218757565916253454169745006001274078969783832062956659878366993328128470699742396035954868624188213554337326965750536931526199867339513868461101428844758465547804396582219775736776395810534681872387752279131678018980275529849248162496701449328827504142999878109977730016900389708940771293195435879852053540689411984145467703941902197607138842213395557973285642907114891011372093241007742296447836241889865166770594802824855263274368680810471034403406575928776033873213061041874006246143419249288994476010715685786003952179222649472441884894976309151688523763632406645518850122360155342416088575592650465759261137367345742582464458401513356553054575084648374576508974607495270521528721942170403314526217583759831806286395388322536872756671179447137023650572981559166549572562192784588061537888637711437360013604869546567944078117130008435560634123330285338849323110483376154802560667258242495397767144759571280075532224465412760472089414313402321159534390791911958785149229548820937500794210192351783381520978931383917998065984312753292277458164144639869342581480823857685944228639555939186146872067711645124515593379775942132573867520014518838939602103111985955983186618848082733405160128209001092302567791636995226423798886366917645041236516929497374190270124712735810877864001226147110357210370572176247907883687606541019426411866009108335034850256036887828552892106844339103216275846628281532452211603040168582695922362556621304354320643037680642445681057372543756905304824277959951203156372915036644544793246003161480698141629602744199789664178995836261596451934194944235165873101145842410349331383845230569509905465930570531717639112270063198602985014292510619007370908907482783440983877371308404696174973261795598330755518541542583558777591344581573875986042965125646546053678051501790103595987970144439824574850206114828214268025637427381488426684662829541095198364134956555501365489393429095704187992116068504119447925036006016636099104010488043991624902685309569636926960394739767305003877230817234061354070270072516092637309423181824003778303739137698030945605236312835947724038367965110960088916517425102892507771805951260159868354335136395480229887541484656199684924342460443270260450984607204826421248657376921722217615855193962031553136830314104708644995269665011555463778984241032738854333220325342343599640197730709678486855822347021893533044264331049829580311345018791683244489919649280999631517353252039904158977193622316310224030950598632022567048243070647801184696691644853231032582867542427061636182111886757731885803072814454548166440527228491566708642438645540432641276233459925846291128093414154327574648717627668812563488462019993911513475603182076766934523523081007085946459622507093494809479219645706718395862240335263414738265349269808207057958427084767613515161901476106961622467589464095251828505722454627189270107345066572277959452783094953549309683680895256460474951201126671485862288963145323080993850705321887408608820140690839994665549166897317205895119620528396979577614887087549655748111525979842169289393576221228254788695900028988520223572461999003613917581732190875693479526672960294749223100728189418339219315927292396270123175562883126335942489350432430896579728426855071244389517048270104107345157072059154886425963910601304918781269117950899661047417366210891950409878521502568035452871506823319978882812302263964594940199770093885211158568778459481168954376587937211678169452140305303257768639127537937645221650963983872912215591723837261079191850684798771442852940767650081038680795897148143749330108191836890622695461100444836186201253057784139654055885803561352550985063707827896324481467183958930938826553693966211666683106321752642719639533111185405040015577863294158214847787942723226109052693836997399931725079053828372082188336055139045359802713022915921713944144879149749832816216993759498160745035197422260350831113361072424553774580165259988147637317650598552836290932474720690692338992243077841695348481991189334117629757766925973765995428580712852895945728934495606016221634868532425491688950151749810111243250749626176429984200960416468335098289483315628488588701772637235702219428659279167902177840844220740258025026268162191081106561951030947197313760021331662118923905989396170238083276470088112721259552067419271720721463814207915507821358980778379478641966828573937726267441800083462210016470379992018125280505326262423677349593462676454690749088574844541506234932874819674033297639524574096057134432776997297069044894475729016205359839377681917059167671268328636645005078569501393743478521730874612422330930295049748854424887118932723600649925874748191237288713300089469338252432657367907339218677747276336893778137733210691102389420962849989038170091910681641187958980259900834778196707500183231766773243098230106946199325942798581470154636981102926400583194799930377721081426417165826958145182102633312108242664088293738387993466219458833750380925325574016101891158056331059670861377276813238863605099847797430233768777995065453871193211076640238019925872832347025100878147973222347943436690001944632928887963929522633631054472217274307040861243653905864296099102867675152755586141232496474452217890878086189399567686762302558978821108188009410843864700194320898490806506847635265325795307551830783323600467177434586802535296679111501440786175774505184546681911504202808227594399999164188961008816950692987452392331882429471878259116526317574309105376375845680317987706496737050890989433622089934104576586999276469772198288104112648660989655948894506277273247261949708848848394273454204045601250250710262694745308970038515558367928511633353620866737017324159843381845405336035317820934707127627808361001927068986746035658107232070028181649768286779260039383046741758719302984104199928696442017455207318751129335234217155898192713438921586209685079656819144972451083936665154031609374163829265762829026107515390890920511518211287629183342528453855586641077430419593943644979869272008495012870774560719406554018149183764674850698882547409117496238139018256499414526969342353283583483656377414272444740945288757967332090683302846358204328057922362685457941153896371769331986209112119938631323972512344682531295812364909081269448244825115544363403165473925598886030911746643790760642588676721879456098148138789163638252158347940803731954076161584767591272485968257820574188287983997192516665969238021920182209361626842467979640797669715328098789192770020196060877310672872304713832772400985221338795025838578354863956133144979719838291519598157860725399618447517915317573117930726901297386871227839826785448326041486919582753703865490946707958330342947481498931661646289512980986997888544889349913539172038551981336221052605450401068683384225139986645249873952024648423451304086624264093211582132029927260717808442742834743182463659642963190494885750726506760870804756724242861192908132436615936453360275173284236723480891929398018726091771187527965847136366572601425856927006506758115501014714758927162207721993533338550734061434873172577009199276140496984791115814293784671171272547175545715959295595254934158488978583228983255434125498115882571955789317160175311476896417187028240128021439827251000189934945387022006414655453634559024865008342360913451196483257943780710547825977986462391061532519462745964247933946822175256505965720560584845880001723699669145699401444018707578910625992289803148623316093759071774801403808654704407463595187727742766202429999801851371736693664837161193010445156046296801472923976113366471844206217565986575782247599444035236439409147427018025779888647396886398021261366741968712266924513742747939640047240412201650072833579147194531881348721041579708416437237951347612446171753090967309114807381120281020761817380869711728993062577582487520090366087227256785531597040688684918185011947941509277695058902317571592902080789812439002654114222312889627557454375311256288501114768015661990378309815625207138426319696407630908302646761452407585845408508943767361691897900406157399300268576128896071787086645662786756297736939729734074957900950244342197228168804539973731027976742421660054337064604471894648758877398704626252824478154526141889380793012837852655026389486298125463307947529482266682183074542051591314642513884299428506760266524750754611517022861351565091127975659209960309045042590209035485000736132677038756642342875223262030109208291749677936271824550124690906068861501737781989033109475546772137894841517118516724617524258203866876700456447355548689038519674270778562201610085207917843997120351503818123359802699852823186316808039600554502252496237193344106323762386457181766246062809428528058361990084892938549556942417743516003220274977553662482927438922529476766980704632397116882993277259465938810280848104834477932368146945586384389282578212262425336704709647491504799245323441292155059985000534469148062791097105471862977542577422667183249082173387733826918183603885543128550600160498675000856901928925071471915087121018237472114717803823158571579905177060691010563915801915675586261114068287884358235745385005847845340783332736433217368369131142408555638309853485596906442046974142359295039621438353442453097954307985463356198873292307893537017718420861205007769892972801047704008229433532341160276241141296709090130035345480653024789080811878808342770172468890322410511845438664510732844434732834077670422918411844514289019900951094840620572706965174457362797269276538702602484504732912569550032930305998780037921972541373020843697480488147564590622950367862774430681939276795646675999548190039388687870549914531152938710978956196592457959373437104483588452508588765237606227074061023607859194329877543215765074506316963837448204234484219264306150677634390553027924389664257183875476516040548068236152532265730780576942926118091162408018121436592968452585265193246003898654081005094134538738761504496029721372813393243276874843862271604385670010995538369127387923171360361344639919430750381565133899249009408891395970222577088268229864134921197504736530543587170091007953165916476547065589910000874497113423838771070298446752142776271747101905372327004853169046389320444482096239046047359288461687361781540785616603643358277230461422688937474708721026980428317389710417663742616528661358727797419153070342177056580846255417676681592728187520656575441548851381739521867819482542205971121415330225975433133137191925160744723255508284606916207956135040298534517277965623906834386336873689038283426381273594749495372549704132676120329213759635764975549443684022314532422224992770929319563959336175182338489761318639551726911454899329506069115269573270232510010465063887601606529203730364797761507957775417952481107418078690896684711941436947437081371522276734005995916781214313877409453182380636443313386356529135809773011109605817500699831010868183630657233570549276071506924822715065269394251323543756222238537159340909967756025614048867068483989199047408541324985385903653770369498129965439671299555276435634930260561988397757561806051929135624024015225501963197968121605528249894422507182219474726272602989425085782318158817218901293631771358042468124869789478437176016384353813165923398788824631923357673513468004550207641337624698885777568746165771756944306333926199042023686046177929074536016163937684056769195126836670149574884633496200451606551210239330938869058394916600077818595988761130199546244376575498864919537226910768336871872499377959423619534659786065198787094217837261144579071781428338834216165648662792074690212898200589510197118916326621270770221514043082374640477560776272518196202502753427305809515713342562678153438206554954438681787550768027572896045896313503535589818251027229881407459004151364572672852414315826276965831385479208756976218755138140996693118907848225211635861309990123426598742346952532151045841793095689018313621087788334074755984513619630665419659963108685100117241912694582786292080150632662254826306034960374235752226470231859906140702891812117329396864346517645664114365112464595326241840128646833196353301541423560707201792604386518751508110515697356989074194055558812717730156992904115147444410136985169371569411966561133695407760055509768249603320958362412751472115130984972435258009426396699999526211328189488487988754766824893263729771804961314378685561039540784150341077250170718982900091220185302123611780986458718018705175541511178794104553538346731132704903435372552868900260330194905099230663744696906354608595762740684924874202500419379678073167473280996490164682681018167530003442624041811881606920821650512658303126643107745559529405441636296843125777409415252098044166536404595164142293374969531966883657406654670794933493704268534362628778358800809147600617699812386624127682302892806732437774504181292070357795983382145127255076460606943911393678148636277001727164395133331096355227283413410952277511798240969103183795614609446586185085425956587810121473243724439911956034690187664916064374027061843259571363736714979256229786527189889857905709207197848108716946706001089231640648637860803110626250714705893342500627144567073400737505614901967728976205673221373552937102566769383248347910651016607126323640665312738249666074221720537143196097391876721564788189257100679785473925819303923131267479632297232056518361238412147897471357150010043174526975580386897222893538888362588564659202424043349669811738742474894070491748450328276315389211155197993617443742608284409055003037872892009991047687222150937702632049645867500689587160012147293562226136452955765704367701055575623682744755516364231305857688036699349446604536137867379646352940439510349279389212371387518248811546424618688205800662460089520724735539911541021663661991900794191717120345047215774048520920974316913415415293408299091012553407489142491979273113008188705673008691728638110990996807182383193574030941495471032653885062262663768894331138700551868285853799234903453895449348150928732752961534615747959771227773996027621268925738849938312058658669678659812066054313243529019357997211730468874384918715062957333113730135711320394680606526608381056564710929320057686624021221239402953149340137948041060849007311047803054511448022281899234890447775296945596836454128944891574797489646160944968376109224205645738136730742176406279767957316560078354743101571703808619408085436266015361923658757452943525580768909280662040931182042526805519804954885283634215333460044682448965418059169061441720915883916762869607606547210885446482783637883539495540549902798505483222672456947898787083943818569250178608880258587736732509438642939958765905319699370707535037757529793816231785765687969857579442744449478598349192209792051554903499199048833331205400278838493098956524295852557876539065814748291774619913574841078214272616376902127508744407350761307132905930957975290847381015736107761272690008503613022316187824301056002823130595348496956957919505491211720554339526172154165759898251877277154386428678037712114289335049770452961406668826333734861783393951477107315079368795133893162462572057042135557027432607385837358970592764190224622077910851221569091570151662263553424131457917402946115337519019469185328108014043486724917976961136025730726766667774422997533037494552424049069247679502150807897325791526233848835018532083004163126718286651419251148309856601980090172126287279768707471527984023360798435603800501098655164055870102146954921840165692774120541839765042275627953772869608087631105825353354407440560743171406149326661192673433048665678833317101270459044228236339716241750880788930692143185209327564910858398412220199257956925296796809330714239062061937149482987522665600478935552694534788640172725262027847717992249186051654063821184305233393580542372632620821399298391607457307642795094233765664298879892333960814028361072804079058948245982509420956106675121679817392519716419552681825409421202658247158374619076778946885640734054534204438349103327462505890122293801294407267935202048571433824466376032221826759715262296845847087370203532919267605995022887717136039776216762876413911324456898964200758835601030593107828722452616761988411395538631064886848136445387145824726357344560768706335295975226078786439926683557691585862347611054861886927606942629405201519914344358206686475791999579383447155922352923418224309040547844989063682215516566002964594516720173929441913038026348947018817426830217670927817091512723613932221227646723291590887800284317425498608529105143943624809135248918543635983918858427989505756408581034325670480763791176379538115242427239964567098005441347643602652650036238190179047173672777518063317490172616550974996476235787777692010495657022714138414351327286305579785526064413666600691836722820119145825243824683271632837443746101128800121364343642769251695301537066973446130507990526851414003200163396713641828842384546915049894186990470130464499080833277311068775027522749783478989534791157419534559222933854964819278634077765742200094701657430865301176851852644953925628492881966154889767477601730270492808171403461969765720749563177970501241151937193733449725883544309993359125496781618118389693355650336201824704021548242867274932295068528820449571290766656495508073422341830071076063329174227357871059860772571089517888740168121979182008701106172930116240640928382904368074840008812933679450441783148827140831723858194358899781405843210284246306607825113811375338495309364203793032064751815778000586945046960900553320282727997787027760186954273231731350435217436245960719214195659714998548241124416352038874037455937552807143331435911941600795994017351213861729715636303798015039578518048148830933259937639491639990632673005861774907954191639535166942236647840094307548675180185262363302212534468841822133036784337957006281457558609844219453270904164130163382822431228426602722997304119486727546771381198472055546539563789473707897505713248360207338722905351605143583307135043973653728395078609920772333886963778862901838202122937718116339748348763511172730357892952881841921956760163242991448892753253670545415931835995062841782511003378592507082565831973044652540721922534948676137903634993240646635687355838606863661343803116251182587790772107993264433650178313083223846547156110887533982488980284799624009472120713066012833349161464796257237691452166527512544848365221100584022128842735809094274048293123477030029511338279004655916380432438221888060633021954304875460361610965762465526386560991658308293317486573988117229939367411005510193782294987009065165696542738876528024614049030022623104805095455388933073300455154296878477357909008206039663330171270639998968474658796512273891744895785369513584822842625006422142234364822636395575279365244379511352998902760975274756265954505404164037880001951938628990809052881573625831400140073966327727813354208867169277821561372223645455003971447305809165005451033027216105967213231242134720104566281578125571166722934496391632625341466983933378804808548693581785713493191167130220914885625208071110435923217882947141390800769977045298377790921202408499416542504489955777007384196327191404663753789646593945171060755034383173807072685844332562471389258612524354085996212113482467383823650305753524293657164590377066866144858326188212506507256514795292267170601473529561597490366297386674893225843817622432467825676702892178425881348420604408810459479044104958594564716938223439209892663626664408188070283711369418730404895135710357587473462762531494932439678821710870572662236780646668225437719374108891633113859999784417255718158236525714271915758726409593040526642399982974245455421792172360164241451497666114228581373269564007369754027513192002204663466024157713891180726786741851298619314095132236127345544480044124964251214876169895397437050119263722211281799844786982742186080772704372167665728362800451023895335943541016577587835788411746375794106703394638619876370105441326029461135678018606987025294128845125596187116594766509241828400303592953304868445646997781433455857687523535669535492927902343548983767116319802062828312125576284959295344685274647271832362893814532981811275051943982750870230907841202114297680262723844541478408582990015139935464763783317876366308644573206330929913892480193022893167087464280613702860862892002235889065069930149890764331084131007258824764106350475465157344166358943151252485600542985841070384434255641511019560083332595968751265495882987572810601086551711128575145455996878120073882571059772654678154096675350876423875867540834174124541139807461045977403662366657929424677680051834643759154039814994316818299216031225731556553085418808490108693919699154011223197172847386120133859321050885900233104356587552288480678461937833999344622782572627889327942370606645355569842750665118240063578267671209769434971879628762363229546947515815615298221262248547248518929470068114197877635143396824473024743064877912694422961144286480514371305822014744482555151100715499731445460044370193815682612497480702688937480913953087670507692366920626790464963311226355305637449923427298613449024239379937089723329480147702098892822891521933340619046972544473769476986508549866815797201817800066333409627108853107492068357207606475804672451556154396622362881126032475120691114301048722487987075647345978908608791345335103521536378301591752289976875936795535257006579848404672839353445430179337584256634649021947817304769708176627637041148685017624422766218605494392049268351737869443401880039772981344275592765521575218905741982444132094517371508882887184203920437734469589543658753586388925483929503840404315451453304559231858536489384525514468262371596716226825288839812046649513720547432426156515061785617936055462664927106814847747657511367137308320439669856886639811054123733516410040528228460813851186902135758211323086973945239634456457502891536188314326025027659015911079277401336405933676412920299638596729613419419123731830553339772342126477312586428297987548515249169035826329725827046144951433606394574404403922132696094077320830507254796706877700128175178645013637882493851106866419587460484273375400067487318867694656956265130080842469365577232861027633546673963259793026029589819942358246726743287542857481087606033334544028625155240817372862592253119253227446699919655777609899121086795805702701519060672727951300419748938906956305749483377386464498831414212567766437859986366911395321145193654859471572415725339898867991305465758561124773604493016322252979991859049180314075120882116937681262155119269859973755762507827216342124847148176338330428974091932724986146026836516442654034879175271872620514370652858885894194638889306975825600368814137292742716530765833611400000324991086405024666756870088442582144963152738170180616181391353328953068126287311368033207066442428097203333612837505621117220797354866159349153816005862115570503490239510129760156100196422766938677016987334797749696472923012443966833667939073194635123454502333112601496760617654031089223889788663683663942404349271511027029316682853121693439401557736124366489555523266129676771866916965001669697489173936495373755657412522673940903815898230657926994084420538255652880834826680937925292303711799302508531023422183614512244181863132989041418760895525504387460193083353854598859028119191085568365530891245179524387316110105841306972885131600127004528917291039058248820162106981478117957195048084473970314104517911779288154885970970706376267794966397320208880782963123303536066247358945098914297342562751578842889233624832403300255012717653872653399813658878841632422762992552362214388418011190131193217380988205116398619424126557293010712707563224369213328942142861350344688558055845574659393533695970590824486422624291295077491169631667300192390809076051946133621124944196316006982799881640084187205740092991584385756321915094859258707570387007316938849218998798340548210407309879867357014134222290459160908643599488179531627637144675080590156054549983351349997655208304504938726018301291944418356343207862878347193533924976907571514183285992972679364777247409580249112517485781693510034991048194759316238744181932008324122309240666445196484127913574862320823312065643067103813447936079785962445291374423653598644042690901381637943430184418940012809532078452481540548445933898102060616313440571182611411599706014158758967494551313307925276394970614320957591390888196000437023670205514991312926157156479153749448841405053030128698671898037015619570686963542669953855665272839287194722405483020677217698163293951881900450604911462015146462329080545404332519835073670530923033307742387931058257935810688178171073170937754705690777142644069553441615512035698021383420190005899373754162403013611041633908886019162182079060609834429348454365288494699526229014757491962428446235721795973632236115582275883760254621572895671495076668163816652770027808197455462615489073661804674325234903814435247611479807425431877508518131659100180202265274414577075064356811411640350962956962357401165226437845920561650034609947066727676255092301828723290870707925217236870525091538442002109317290307876094017225592121225533584317654444754785287095620466723860775670082883451474723261577214692619609577787279665294753092703845498771330294774038957342966961932125784682371670353887964916439667681287354187354040486056639068590816952310523146879516615972689753450720284598590035485567227711517181821028831393901631929663865329729404285378587924539316812071716141795753495808322491076126248043213433004913446702495277429163639381697111655912983320470993638696391654041343019290254723968412426771490893593324445278234500917792894954121624534367018748707646606982780756106272703777227608817608138216412342545261501602078105846566193340553747181048722464267875864954064598943455069235961143420106950023323466270957259283439330609128402310338068994932229593595448209005860765932511993642933335761129790689689311022196647185612453639237886738461085882729560874983445839959840632542723098288885949105979376008062768834127847008510205281123175136664800059803241366195827246765447652608155297947377655138774645290879839194965753752605182477539183821610865341088596399156041543739879794132210539504630446610833962474027211344264254092816900142326858071803916523665621205700313724400925887552581987711298102801123643656989524866586461418473580017346154057253578984785209888218191097683668198204722594456924962868506485699461362553044676442243177151142144367856276844005529601825156289713743513801120771996893581926457809816964110748837051684878509772153664394052682788180530562018816984834002890240028543905071713536602236097988091604765371840618573266516681122402191043670599410559454558674027263041808300956745055449471003742296845298517498477415341994615460797239089794492083635568609461416015795551067785827277862858113697473463131303766116499355695379511348091215205723660907388367415426064002174623477511065640132951138407466027777332176317199438764506636868207824508619422808062994519981436389241366667110039916527187834544780186482413549679863028753753153588293131321336225639801114509262123689769154007297435137221502348070818223408281943085401928118210538510821037250432299144472820505775911132012783520439034176012780914854577253931231561833034654516061367146903871449724253413114502701565960459732277523104960842236104341719266967497656643941909568923826987574765425049722395163576115810249591145748256962870436990609924560241636031775076586084091805279766643453039108057992941973989686868170170948688903764753240092012051936365503695774170342857369063822573110777338175384118883922266337637388056334350231748270343042890973264198515807637625789996303343875064395545409822512802287510971183901659652370867465601756518372191288364092046010043522870733692149970016603210973289396480138776791091881899693286922057855100848046844425374231447032650487561480649494081668950322384933479779063503057241052099106352277194362993851570168626946706485284009618428694154854104294502437065143295334902954689641261621184700585622779364606608908539488605521496805783158847327473520609049739800513864075929179135374249596168320695033163347566508907344112193664897228791064442432457480301509544490519499466319633357251439406184597870834341850319958890301764132187612648325376965344785288154038757052539138454365614906665086186537684003191390834889709054530072780240639298994039114995755713214663315015951220574531933757330297300293161813028694258797739602861317402264685897257051172031043532310328466658793297535053737428843283174591181681924869506363966529256373509559111860491709804914741111524497817312623837506899180696219947125679527218599472975385196452068091180305127911262262742718127821595104891422569874372757358795469561834135466265067184243017416433393986619303422423787443645426360782175610011737526023732231604083204779782984375851672102511484841945467505644949639145580020691066578650309303143896630192303506734594940401316700276448261962896996047257745652202719062650934397818599244861174849928479647995065075053847405538406871111819228606117728653504099829820093782500234463295263214967557369838008058514396714330268561109584437078186634049697736170375978408196575643025537249379974587192091998125506023592704241883146626128295746080462016608842165645668556599486623983276902956784525987021096662508932117300989198146440332974082509556789786588233769205117816077433189675570709762300800614504409485558590227173156565638459067545708058424541055509374356501423804499341767151009890401819021168738326989575115304168419111879732827780696534975457092935818777018586290422587575458463719912896398204219465737920524275701338246369073621036060738741062839443515618274361196244754648665307036240151347285733176543558713796043113829735736425414448845544557768473657432673754235056113217884820492597564369973499496003932357323847590779655661997354186369552601419553093383128451135234310391275812969869972333672004790421754625293693304983049383325991588138211462161458247719753145371076553758911156828222814980664975245220824055529858300207203577698361165325123510998652205711846205619173100450903905696012838636426446134490858526686646318859761525083871731510137624663243830325344524396787289690659337280341006489635418022876498472109223630455077038011753617571582706450110577290711449101897592160934812283587819364872061206988391850326948172257695925621987492624370806446515451973610229002709323729327142522711915132907900531231717458340813113687756249445577949381458685105602145960308244247150988553231685398891701604379913376768636208733254211913916699220832503166937563893894555784212993498507638568706603097592720010829859406863424989611079605843416596776560965171414355607513163529262123113552310174054947693963260072967139516637953289699543465854970535231439277800771113092688461230005502620230886988022181925939092353869658623634526943036426440814872672506991852281043206167997436543992649274368660819313488064138360295299087148229409166000212971325355385089642404980805547535045456384691161606956605768859962701134034180701023583704195242655360839932694353358068539119676862614440784694197569421392758237049020055258440585986413732508633486078413062522880605602936897733217248636707413165227435569019393712751483538288410694203124225762927521753435080454251310641999147212772403613905982572790641507731730385294819246477783167204443583404618523132594331946444583202303559820338916167247617355399044633508993596132986007315078815401473798314923136132008776527881792931850053209963617038198492022632725301935194596500647254231166251346016447991823590424270972710719450979155237438720842403842484954190862260402656638161482784692967316414752855144931242955036471406690702261371936869879773225580276937035295507401785353644038314645166191887991359792225891490320812766567311338863612501101434669917567039063062699792804142110818606451536197719600071824201315193788180195312240485694940162937751840695941917998213936076164528871012823314949638328101200819449796314411713250077557067424191341675259012421977562613383482931735419367759353544304780263320433134346183396726198741432002496214275461987136548090565305209183209338774674279845405270351368422277992055248744626527855398228938291568010760799196275563340121218329657427354141596627878907170367920781588990214831692130534489780685838536617329240702223849737981300740610133721582901565777887985332011952169182378603095907371575546387649345259843640078684265924496293001986092026628180973746743253688055071351052147669709067753257899770086499319130614217960323513941033509213908110147960185890570485250989829685170720565788955367947493983937516204661970460142294193625019957138820056192602078851772649612684662094740721613507944480893876459125200693675662510860874903965912329946028449200701840491904056270649676125939696328620190313552421629555561379750262873199040686985146428141465352771694048592727107109360615014985322346449583138895303881424800794891036523745324423474509349358127723481249803801769078168632048498948649910822005983260807979242070647095454096375298902201609582328729957819463202534038038326104563341184963792086222224740492533255701951574886720476663920806447227821706457729125211835296528795517707885201661417308795494297340941555279583646558592987302754815616899959119562736868471267169128253142589519140892755887807900954936114508181380053544381809772049276620504649683359265071244903550871060865227936085072700836472060959822548448959978170044835145174288560726171314676148212390960517676826879950432561885022686114023274033884355758241429745313904418892441058779750429053076829988186835189588244015050499913805101695261580145300032258044439537252322608384853079032857416814955453218764457589461777370221974782473310185180010387543300000597603398293288981487693043453220708689826667106630314504871537048277595197387362022348644088529931812412413267025247882413463196820580508004198353311977948455157344196340011659009852966282580547010217443323884312877503692626463552916589619936167092362458614770133944397913248979198234014245635836881001371244690002692002836711322806490493631532218465540207705608128950177569991170111520989631591975955372038785597631614003207547938653180218880771252012056652547975855378908562027489037055755646119825440720895429177789825684365058094635573219674448654855472426633944164135900524942750763736801961659165699675271235392600888640954988025691532807981495773261827730911142809797452383649597697376289944968114065998954733746683983246538248080279285485925617621115248498403997485460171212893132811058104254758541432943396329347352694602062494832267079361398146774556361570115916653224846032991605804975418748446857858308796732529987878924286716792906137427908200395750036539641339292593979516725147862831556014863883588839116275226783980857508009657673481953580948950868571708802732145139429751794540609932631841387187186252371437145087105354712187359151948037253153095856487322604396261304975588738610972608587310820205892244946590555785371402733870722894895444337956745584637913618885870385012910093800790633305003266412593956258021011046997806352594622244431103181263863926636002002145253854937699654116816060582867985418972804445073121722356092245044639645614522355174143763541563508226164778678815387297674515204313416615937361511822480885812562359664612557781394393917573581854113336464179595415744986032256169849587565125526522247207401873089598961755396870297373507380697318414596933444448937140119137663900255983116797419926954538155173144477750490984126895132182574650544103297556862237969284011816015089748100947577678186593684618936528744253269067786244123491452685136025687698364908445410413020551010330472762837200799813068730575404623871694608131505325708569848557166888734796310302622548494470088742523218192756905085441487040440339928189505858666226437242619916481867112486789214457597757089531600193385976207970143334873986692235715320450875761022491361476191500866477010024738285699656938858498272789537889217894601354924254686537515114311335631071799874321454763677402740064910212185915977759134254159739697525895463036487335755196000275133188663661433847381846080083639888016997930676531096360383001796532295533884197772604265292620875993623295322509153163634726997420523237484328218404578576886807505893896735518240462621616804138921649283956674509655796481806907643571234469821772167243204703059290427552444037689035000517197450583594769929603279620109194039318183322718668818685063491216862804365380124317296845302223227326113317605446669373805133527739764536691387118418083443493481666512341302220576429883893507762203199951328730463022390824191852065468117663568975809926698009998233027111753909573947877958253360249583334810852298016670866646748158668548241678327603074569703502465035140067318577567301516506705541246817615236650947269841488012721802193796154069062469559162291351947904848080317289553211659910848632085884444852781319897587517720560526960778518625536096058151178504650123179520973959326249315951330852220600764164616048964754530433509120241516331852133519029942800924276326494302703986078958385694827926440794132244406099990373997094657051170256626487633943255659873329317133865179593780598717108151955820674984789495697834756905153569450272937960169044054620723974200408225934272691537489360079136030905071834852035571795736130506720653641023089613450702065298018210162920597492356679444160456380704916086169085975772620824758038201388019388468385026171027353261975827014026070754807845510714058066590288236355554246522370441593139945358568714272992675400604027150869121718155617160316356736287506091903690491659960916341612078436747294102369296675305680287832399421910484290817747503713139867573697550934954874512983313482090403959924930181377204487495529292292941201229323955803462516168505224060508615206448959292397862747785827739657602825634733738936956851509278756605015172875290936773693028737005199315132474587066369036231200753155590294675927440318301631663749454459274293947547332409150835278342173556372927701186278971477758120171498417560171635024607104822332741558007098901206044608317010449284087127534844235289681966081259544807757623066467484280131600130931652598618940663677810693783387831469488724978857059594662964080759384661922798427739798682229507455996031579271433497587276840710788368028554985814780565384171901833211969075981424004351085959553894094840072649679463704801133840247596202009279561009293677876292337648697228200614881986381853670007463516212732745130723804451574096540970968728208073446231429175299420943093504947104014985927513692747737787490536074979695779540552249237932071670636430319585411719630000405027548802918877391432095758905558862949974614350991411980735137913535076308904117037097591095060822333023892197598651409494584621645937798898450366115402833061651147152782850034988023504719112221412450663285539385287477427481867140205516288108343116075013896748366280231271671994435444334037707418414681999331960746868870549436065046409593401691619328685357185807704029168969897295539697004447604227717418037932915764621033983671191567102622803323181030268909132407453360477697032878607307375957215909693040513369029974322617496002398993649680688301026553079754011061739811928031540900950709536229652787219322878954041436922038891669490430996895906358790024344787610576730641844996091195539259891263690420990908999038239399788192889187910838391787840579477664673947413118036056789815565352781792657814602199797796863009013238181577598615069510388355277647656677694744836363658385747922949883173005044655360247894491909107929699379534631930154065439277567897177957685719892558834710018103818408987911100333290764639990244939036677291708824875619495969892125518524882458892548347741895886599608665547108726627507706326757779347219686368066227578860356201003924855089692586407446954811708500467227309414938165919493367836086926540465394764938854234836474899066947472785753037374180689915569019384344977404573850112997288286468226008130501781674795102422601610381491105036015543861822782016333557851178382080851316884276374191543769358302635332297554457909953226082363772158587100060674641912601874904820400899977627970056068759057432748457840704615334805612728591827352355369325103046479303918483215805389792344089129547458629097312992786578823499546136855347354658021696875989156831443368007069423857312128563189868940490449895984997931973386619342411298612484234675790831183390201594785944819065393685697674557385802824246800218735120663053571414863073046433510919843468413944426343331333991993994574095315383341230566933656019711697401929303959516877347840953203037554557376761989384314606344843230243058109460171448585798634116040137137165317913404935556034376072218057673411808891999702524065119505392258311823082389590997121198275100976840415049095401654734720137933476350026077195471945816302950238416756740466981412114023478797443676663086114544648192899745959154845514379603108745138108837132269479133897021025836857269021186539535177115050963724828626976104945372118223832579795416469023618501929940514095254081738634095757547004988820473853213252209196684478976280023529447258087599414627562676669834955727314392817436396559444730841452606214758987651608368708053404957581016225422476720604810437749646646277362693327715792610063118386480219192851147369289060163353761995724624319151647504765258216228476823945654300920324752182561735758909659665073829117882819830585714887754383763254447913628213716609066590197286695586772156447390853488326448930736651429744766660779722256550626073690171101591952085376998295312050074028957251779211469945157983918737196849203310926627797347478441065226527489923516250486618339019322022193378126948481855316517696265789533142326848617039453759356913231696262805924151896952926238658162588192849311079244508383020637430395143684920930009551638996380105902030394905667602482129549733376012382378515474094699669629721265465296842359188771226738534845363224197330083088391037970915562292869858720464480680187509960617634532165819908702823962901287762519040815132321969960709792523540332138776964567499235148975996444283494355401070343151662810111972519392249259517023227121976641318031171971443788331741116454361809507160071891405476823784478723601729356144985085150267313500647846783814540778760072572832488061901722645477637552945887508965340863622096384321430765323796856601470744434864315772800061613562027371536947372152684749198823816811979911007435515864456564898737313665873615803667323969516536465880570101764480119008446579692285115059498777289585177465921557802752304618074572873060749076903816051264349769846344670955183235425796192907737431689481461073594500046964872448069145370837411357670150501613259528095163632944947397454515066630373945688290647197619652065286716886917834438616022914231382937690906280131549677839192007118377281056713494841486599956860272004639691159178962327764612357993465686901332185947559953647453698251807916768371006172782042304788008023464533871882229321486576920439503127241940586266010684926574964210995942054421181200349783410707790548199451093665161316911172795629976812276065015255396375285351276782396993539631145374691277720207107536189466081158273660457903162235599781785276162550870813009375298931526579911059071452888334519544587347029421350911218314813135094582243480204371729377377195831861418522590639868692406099940407768908418800418700326407701322379557598059492412271950234522198647585208094755870909949462654402505193277137967964798739557943387633957595914515675387762087842826723243217966195093729945532306171427960588020978857323467109369617476638342626224706771950954645616884271399544422342086209260706484040726645899714054899141699897556449420311268077070505505466509228421282298803906489768184981024649424156726376021632348146655756028939042378659084647203472998418455547301226912414567970427020071397931303884598283201528160905241411471888271032685889698969382924448050118733976562380528518222129225399474326360611919946723170776181535539179327531652615989181644389205454073780973711037963750707293080754699714372966559988213303139432390908071392095691576473727140779465241371924985099628176249796304689696471630854160414507200282256283837947366055581723473668442931117868329794550170280867479124022651383883088913163161691517655653722277298684233076363187698529576312601365298171305263034049028374257850065386592363149057093683917808200630608645488311458112912176778207232392252603487522189038643237241733811298491477851078308464666474445701740070395711677722056024275587113989230762713424948894724459664253274339575286766335742935536842129954599477488285781930320814114879149030874469182084136353265995952082403514257772182427921127450849526473728462645018842848488186262508592116575368557039392191763673442570105852964605237872617786487199858099851870613035017858808076410092725990153568628966590978864295909887559234087995741636871084269443519165800069727971230025930585877267365805497583708384880816799190529898093912023671736696788949940900654720418344615441571452960938471235753185152334871464459085828078250362852823754994540651564254774225110737746939892245671937188742076193038321644923249132273489474072551077662473299154324543807369564132464558295739864096835542363742239356833256409485375529572916494072766101665233519937158150259647257843202630276268933979182854752949831161761326304721464009698575930187748820159804137804020226109110025744114264492998367337861505206369718007734924636032308881576149468967459728267736674036847577414771790513195081951464042340799817038757462109094560173006224430891562873757641704472832105639869823276040895612684334825231561487256984875883589313656879056897385714431014588182915514055116437497814934292825673520768225308563850775347002616209047898364933989052515681152660967696588611457025728527983978359353568150963997470740085885378622602741170807657992109863065510721756710995391651077033502218232261150995773235078066978332283812762830423410498386467164352435554646968345608340655097029889855141041082852479265498187750567452130005147133576765011945654079476989716004264630087487753487505922034902225750879209352730534738764281500267337595634130608676220174487387073857951765217618775934873948214636340462870044497118227217398078309995433515454523839902037902731407405669049213607154187773066500123134698150865930534161220186882290199280987334507150690028245085027547509901661046664549460375504026823083013032597294609838351828512400971601289140079916976766504142777128744752027862029683838075532272232759453878528162245003280360895862988242871197544399918883937391357604653198248527070223282798777239948267944640033975780373049957877146292714466084430319198841811213954191160223669170346916139799169598611357075762792713202583256375025689952264526710580436466072127987907261773560379613906384131657269380323410675758458538854080149188313289705974633176282164531755400419717199269808168169834341310850891917553394551939818685167786177741290612187869146353703414065913922402922435494374344545913116162849933443448011432554400613582374712490469460295752849522547010083118622792842255707782941369835679362983803168379547425053194952255587874750617329388559027572051525315802239074836690984100297741519816429454980809309173818137068297537671961997707842641892224429125779291010489713667223801513852568352804939922451146269232908480817991735369596993991765841704860516280528256768618908733075832157531047640563308271041085389897777433006403654639150840166889005651998138071114738313458740192410206021241513265172681025640032332751006524055928794960704586149883568675665930403113343949667504822424150260197389097165235692645547909429396634065496709141806310837728449863497371134665437260759135880929462100502107656147206342341839398100253361527671896516369505190872154539890916585700215776257812506593214119656494447920796160558904541541280255913066369180842532197556533374410527617833046931497533727249003549324677126069992711471575831288814392634773578486500008879244138343320005550465394520971555517588781493039882866760866327419444885278208331200930172905877151487617927349201791221757923422721915010526404181363241923596377900456830606915963044042018770879559419210357296748915720656164941750472088037565492988158153672279244088369764790465238816677326103827245287843905258489417955057695762259435187046345092136801704017017486872202000156926153832703934562033509488673330836545171086506522633678417880061774717330969610912829824216485192117518461514628108058353073817041082831805227484358225234636431847384800297398586767614898424026955960984728760445420454408188396987010585107104870911404154094815983546636320632917051018768271635751184782087851784486558416724573257130319480945540802511047195962171877709373357946937092718571307126381476562246350128659417045749420333137768363844192145359750816545599728008432208045537003293044345880385574142469616986542673824313557904366748731429136929769246728894352177162764569122436106504622261779587198639066741085621981285415335352958301157320656697257898609186647657796926627295915686929550089960339587265752530679274763164951291789113166270589442450705247592302948548452207350307477630826733317087657398572425503511162872648855998708875662559941405450127427848770693283372821029236152609725319317684128641712105958346691263241878217952529014702524132277638767638612009920254707593652863512516953924271149027977065750876411713379205387192998076780898379367392225834206195903627643010880435391904853014237193708645796735313523886197742973886359952457883421863079662979260469352179390179300159184026549884598883039160999983865036964268502883434339670084683570536374736751929059969808493616864041815071806627294018514063370286920450044014606307045236942028847378173469562384804765367679854178520415825970564363644010506996050352047284944432595670226955237361538908299576972134362017734798871394851661073967950724948770668380419693590917231647195780173111818276542797752278666376636115159431419940943499694730451582324338910461017318759744051604044213675873347057541320145550753406955251250384705029885727074666218048555100213174990287423856576037334778336607515475351116869224442329736259477225513442061690952053806243428858189650406114324838488768355749931641182142165225020634233471448425514289076233393968623246084291844120841632467680353957897684301434601185864615667223376732906455384717775387359129261503101342815041716146710773296818991587926165492075359792953864857849890548707841132072694054646127751752846265525908114677823018136909930890627282502628384899952416604519078176494738748278167067892929626959890096304678640017392318897194713989490393991315779885952003738026480176563209202205744043992060806336368243189246267398389704381740318103604994627352692276809630695242819939511118320896333043044167805351321159558872702641587195431066222771106321709020976717074813472753513371430641076854155744102601799701383232775108727201220446047065746792436643736529668388750776352706904412641285106746889102842141477838285761930897197662959005114437259354602468260452170570721299398500759218701610809297820560610384992950784662854917507197531202989520918590622246954258798364460093242881543776351852887717738265676213946059589704609953614127114745260645880170313721831851378430381786170536683156228619879723077193861468641037697072351167077464971179252616445451682271320332929655163221332068714608422370449988121869985842402737623317167763003547705641594697873838558524983132263615650955962532487632516599125190577067478347854621149783206789337071659781307720567614573309112275725651205546105302694588675460722920957411059405811998550779907201517426317397309291853330024618406195814775110164598004310617988569358421223671553152405863515119410133870120836256803418675199834429274106700014206227622717826130412861671526745858794026582389099231505135391444223865714662450077223403251929323007540582231337363606770436712214744032239801669727036405745141223756768452112926799211309218254414435567975645888520334370779473501770140510536800318001332587554793957349656966394248332518635716033027836859096625508702707571031007670140673439547367344000246490616959347875462659327863551344215727268762079285037743291389249987008029267896582731092572912823678444237163687386804393664200631670698817208243765517752171081176166355184827777034354340683220842014574836126072005014473752996187350997758398460438324248259730929227072182495360641747525500804143563887898659714167613306504604505640410528982916466903765321390397782026464037981114904575104972766089250891604104738451181578579694240440995742336268107740402647777690996911470484522286678572183339114324903889692380547066323612255709178204246469424826320706090493670061163175338682528332181507213133752708009405010734657803229942676699697626880872215664041268780030664085293028792721426940744273908265493663560779783700231828496224376566871631556871731343979230833328050973469559925817598194188836370336209339357488850355943491031176975846910780765426722128311463379263917596709015112837396862487575987453578634443626504193140990054639649999046140524464072473995177701812280011208120534870234125333738729693956493070813324705031502732160724774152778662325115879219452304766923618604019107144938706759804734235451599152038177963583567869802535940759711878998862097725783291001227717460171790131826685897965901489664402548349985510752418898868670141254072061441165116467773118032590925402762248596153541075058749157587314693384163745436872472909998541081291101963362062913656166025134395449991839867977312389468572030063540814421046022420642502028924430075052942204999347618456824950249294503465693937102252856881935184655770516220771678478426964090604465472325293416286473136547169840610135588769671302403171358590883696324621593156714643135446653816022410053422309166519714802545607824967878656627925490003354049023013352157644629182759696165841244414203881081464636248167822596270554147102026207025628190036335864660354065945171860027163743928322340990979426460024116247198143388589165060181225412741231880119264533648775416771390469366627050142228935080278854806717440547385259462682448419083499018330665684456102579967988015232522590323418810919098267207159068446694856241063890451804031728445998007300599429870901275200593150649375229461180138674518904663833172608764703625895216247762532479454318638648068332674052423112092443473537571399884686796290345555868797156621685660661936613651013518756938111411037573154324325804644824297423469068170745707086577463439868601339931079650497424937977815702513832939608438051902815688360823836903450016918873031018169375932328615993032077944321795767203395858800616716041986612392142577166887924889696430482506775558010242121759817464340641118806918356233363823991806158169254321516149471141866240495430582534882911519062418736226089053573483248977329701658239894779823124148018903249780640974671187854222252947820169375479833856162738331425283120488637098412618130124894239160152925682997296228784992033865589286190532088895538870237744777745197927101275618273675987617431590226125063521711710831932899485419080343971177508455812734682751113229101779591423959558028734754938522341462690246287293774155559811690044806117487718357509862893193828909587132234819296764849965296635670991524514136878786668322976153414312460798352650330434333046481448704631512075293103014923479351655713941975861816210715235858390275348574925515168058968236385740858253310760134108057387459683701779406963282829827040499791557276838809627545798718191734264489633862996579659161415021461132052469871388780550579279433526597189104612048544825794654054988949501143141719057625263021372423148921160218486447238557102608756143652165984119073087773354244459135478503580291131725009043872628117893771409587425335928414092307912490550175091776829809620678545720644172690559977432941210293143263727053376142187958404853442617455395695587087026299913967756305401869844787344801439643117136723738983457802185448055821812312454758400208905222085048177135819549469298810343547204791448260566206921701397812478489301503468266430595813084177652032991791024934838728605890634512559160187464904360288370228321253397519534160495721341566957113695633117213146103016187416250561432263963836817022149713405367396963359489118890934719269922525636472215558259555409874348120264814619020699212829064003981794930969872337356741655020340508660371827012258545689426574190144836528697150078793768203905369328266743079720212970036499210164011431392297534479029076320242383715321219329637606084297631133024450961061744247698073011094402883723142749245844320486394042040360900409596192007876182727180638683985953050101493024525676266326845841077767725748943369704566846098990784257934459229323039990047925173654833957011056559651733518531486239213643889900245698493009916816661935263046710309189859307101663852140049677791444851091840293727910791321889015829057228343222179437024573934403433846808711407148884917179988071933481801850239125309119664315174674612782511284724258264297258305513544448510707674333568374590578360097082031889410563938610452147235965822521789947184289620840594625876965426981442193009851871258737536072342281948941195656228760114684166352306494820825711578497447323040851795439745501435260281945963399551006584679054998942332359124338019688144318323342701005479029582614086048238209687271155335229409397462075505802259533840142173529667657308993068345470695708267191610852322507716937914961490365984084913961036647520590087933369765337734563468361675526063101619391898851815724092100053066226248983635012771073921877078922771928536027205584289764039598490993063055096750816595268635728422645833565422400289422847536737397157159976101197530419734866457902917570600988565868977605353657897669795580726995624666890906436545355277714764892959675166666032044705465397890816740591485763017755194220462148176893598261561193228690772060135999291827494410834133974111283920998524964967528370855256075956785377505252341966980995159355031157636465535017517476609840646779149962323672267082569180278769736563199709364026009943088421714378984665931992762382891342216868611284255985178382646682009883412634593419712567858292378220572705970390428855958791551242964229217853758881719500015614753584990897236408749853144110495190025723036804772096190551323527360159606094940738330007256181406495429585769497315099692637645339434047194476322307706889761584968887100162605171265671384761193844540011629596913792700024382841801530878231018123872614623577567929860464499311909383008393606986470054195495780237391425141718807666250837148973334921933063841557651085813962240086312320096115579117692129857469709593615339006263218633961848018783865331423900571782363624781846686812051776772348962336457363953778844434361737922750502043966419795206803414284478078198624485196542665290696020657289227602702913387806648981139842686821610212175087454482704532781730224789255641585942223161210194286791212162348255656936973361208926812867682755209077097439768202787344450542201803802422532811126416299695436695506049961701581995588637194013317259434015274466045387046850844746173380014704525221728284295041289106886706723077753072249870505375823608806233890440134505572229902442620715840351341387961680164310287420225326683490135755840855024007231974519103840377929043721739334181016278089122651811992538779857462969914610518833272142906519672926052482094235329888788528259261873938017683152337327168811978943692805886171181373800643969336232372833404187566177662280098912304431251598971422549015832400649761945130973595862706809767046256283873184175839043894287895305110377533948251362519798664660136250088043322663652585223309917734181373335687515054021212634458328392740214978870939609221402981544619368660396845029963378827039774405857265933240514127073004060490283029182404872919010275145258405944350936759440073612015980211648121322418400478625208812046234061687989701839380605490752376092201877756509555689721907297809898576227806901934848789443108720121082924717275098228396911993402971689444021119471180382701800879791284993066282737471174135914311993357085633118392546225068969933773579405413211010923583107293735408184711304401809146464192720879957588792477047374279669544658904737260016089101699963505951215585227937241124277419166669615688960918350664215770733104374891860325759274574432968946464642650161177994578653795290936251498143935611827620040558628273462071608134903770811425140478068854390061997206842384497981184837929116526978881015433759280096745919893153375866501264307115370734888963314321754875873546100018353143789235590500415588074460227274388558900199278834775236711038123918905594197185132439416802995948820731639514685779925642460814766565434916017557108211352818582136967208343868802982875124106838901921023793355420057521163135413298570828943485829988056030287999285883054326062024703393277820533377634098475091318091002706553553495249168082814603351067781005631797439204700994727471038395406565633047378607738445607116097637574354309799776448284557608063625792327197853558581299427697934106540487064797509921431650110267390507183578755591205409910126723589383698635694458707093994589929902131757147883303117339718161218848096528419509184484415784801158756179205538694182501750595163281790787623639426175441061508142495830896712992957908318679918678248519909154809616153670394712354091196552312597068492335440197633074287533075411663167227237057834853142729242194634688739140025094000434006600408002037044347618584755598200117715716636226759160963865217027333306810722316392258221294911912501830055619500498102148636796509887971006972614515547761575152473322777160953251963314357825898242846866913513186414082937053550333107381711104731912755230115441328867341998670329812011297625672454349530933074953215399717839861136271786880576155725153331196796700332682804022743531417586524221648362309427360352066846380824886189508165350112326437394926376728597787984626026031137146839574020353441945900216304643194866030325555333633840554286970376404469028150885734715245300136588077126482950362994617435971023388469192137534248053517771825505729044840357519096829390206623029532609366890879567666663972056539380078478241049457203525373522341753302936175036014480858786019823732138023180147506514695028618803762125815012941237794455084676858043443546377089656824720367266397553770412924166811878933200198531063556035520790000106889279374208442039544473821915395327421962144166441205532656367782225629487519880803158823567252547070122589023345948973747505259986673826150446042002346389876919175972820521770196195453866852157479158586755121448243868994200973110186287623690795926695453035459767506774254323220194462608483334918401084571786428136369103701939816319917925789347682495656427000629543826457135217619215333397694596456288310912629310055601222026563274272693852134568269111307883121253805822144578805437078482160261504452052476805713726696566794211439182925229419982713993794337652715152304754481547423349482543405550261960338754782978730802294895876789722114330758763068194845649835475962879585557774802219788475521037643669022666970901424311919156047322421318422903983337665411539085003754013806949089850790853121109750865173990456469322379751731105513439094175351628461666213058728474208708614260457745572026696874651832423006190932927232017420737383508368456660561181409975715552892858511804767780330168121507993178295307688894038211692869688212576067397411332019930637494823540889514436561645806054687997173618822767739371995419932986863658023239917700164691813405207725673259523391605496240560761940036099790881456734903728546960165633602397436821172296267818696514897573556808288203517906189312777741489560309909143360443030865919825681982001577522271379257372443602871169966341188146446237172265120940067856561808513512621208515482649792889136346100486227733980483735905533129475336101299591651469692783776159379146225829581155910139568348686096556629727917996349486276565276178269122195608758549987064355550279021876583804011456550817516523057639108047357162499235946012632451931344790653357461749046054004505079559896898326369514224554534216861026467297336961208375760814225320407391865388909611828705978972387202165263273098450414788836287561620086123085173405048716096937767878763660800430806655965018576563573957683979465862099962016400134357085700363536919288565953356844197998324225340614268097418853398575343625401247737231107053231438967587317916351782200587399881679356398537982993730231567957988806168060217502143767143651224752203280366102161403439401423153963082191346656164340664360083974874340299898263376752044328424569294144405015547555142124855658425749006900683886887670391354928272316314798921772140922388597656764838382275969772657038787772639118309163813314479581468716933619254901900151906732549193656794647516448740695455670951335275276576409977452592016878257065869983528935979728198252644209704392349821568018370546127484560272949191759274179583304072902458517591318898811653195856992232070784464460001354934895785234344393296609653796034841679076447035486831676063478445463785347399875263398231236433526566941446963111401104379224505906294079962410390310230661261215510188209478371825913634070649347986726073785406640940180803453413091581668868370978301610849695517861929069686222461759410417923917555680840397993114333368933658800110237418690557254820085360378834951661598708017606340839913992624468239827013545506555883437080099377051016422705495172386937805668488823857468184926496314215006714189473136138197693279619048087729065392365484978654468038519770615670749164833722607724326518502879261225639655837424819999925250868271590848060758250048472444181573859952943162905660707698428485987642647499118475656818533588836610358105519470808843526935930152081804624903646279900196444687146061785658244238146625019721618666621004527050352128529493655994357798802547816099848418404762732206949600837511447350154283085918927629996948109728516254574514260277520122963318879674980536294813073014343794964188707447534249055180240535886725386626743893040062466408868024987681116425669793631948765120807114254037482088579225359964576790301864566325700455125862176844412256725222560733608904058426337662630061194848794883410528502798495977560841338717784952574479765865985234367940473957897664335585422077972161612933593841181754616720062101069738431570803948195345805090664995927591164990307795936292798776392466380287608767615084860436279944630318584171731306402559776099630429782729405467804737649851839049579666403505386985617903859116934209826290803025251551201022374161588339251221426080464798670341479209302405646695778026549714929340885571250388583550834714233439609930627753695880461696630807054627275374008075579406304650824740364300438683233550487033319290015480696300425129759054968528438660840413875599750217402791146834648722477770902366718351436436409776073934371366131602509852058091239609134177387371895397772695555237605839260540353415718097695309901459583580201648208884637977710698898391759434495922906542519085601966828526004614762262554951427799239906032843209266236772055992138183093739431164330630832137359439220982715236902092545423818931602879973589450800686293221445774968949074441029919491031002198300196620400796504188001328140772146986079965116733582629004109043536649519427477518030018144084439333262453832963029165425219055204716358776009357076096656597571521383154492968641620840784525543870580587817242914230237993487314313396321181569140320767721197633321813720524778045063160081643772361551394452856665273890917984217524276626917986857375572419590933320202652699042566260412597382646382092174212108002983427450700928857725191978022821676892637500032516426643602255473240111556490656342968794874229446641798823970827540965046255649124628387337942681358864446112127853546212342571628023801096061403404586025348867588123841391352011082909620248273231564803166497735140519641956563429326952691005184919844102769951799332152169351731617627121822276983146949736922141355495930043394895822651905797972118979445647185236955177718817169322602162643004065985368737187840954995619853334987829458986332641619520381020687611643788862055545227835137438965797874246662478236515999591583037330937569637164677963746941555152549378407324430314622196232371022481869544717153585151531782218884464990657164574991640884230280993700342363730668114558764812667168803941349480537078384294960609180950392789091710066725899283642234983160611818390307043161160575003076889103569818895276199174543421708607080655557972797905925390229309517349368012238043992869149780319700737393813413860689702094693046988425758022482656322273878511958515386448245282173981030846671237370373456902474425849436385788583764806660317295984285942999480158161483103136379618669636938756842874689673300607197436079729897114249026870297985337255385929167667215021710610795620369392170367575726019843284634138693108649386008125439417276281215348908740429383201591235151963615504745973663837046199338391078177480291398352144859443386632893519138713841170002753864893643165632444826163341526891344539877202983446283626078409750083248946815209398940013231623526605179451152892713066537238511454512316070114281657731617563709566266779950552470091702065015501591778201023359854429265505490455789441978119483707681100145733523018584493807906918058237095321483246227397106816125658082748533753778471976696144136001884881872661278632594233895610206549364761005990715295260938296785893538855735871334489359657667458904582816776642944159912085014730035525131416527308886607057351994048478131561764665470458265488071849838299907364018718995367943276770925437852520674605527598396568069406754056369824395426786250042622907869207938260528122008264749921727569593011421869506041248814385661632024161827505163796468756887890019602266153803944496422650818213743258651411566537008621452703271175885669981148554671596823197372831096261594824343069060591210856015111655550952039763115336477524882180742314958824261756318234639860282376674370962578075817149458318454578891728278453469075031320508312060978529665216810310863789181356418896297206678005470917592705924799516972943907902027214057127813427225043063506720498928133920875191136294503449266933197499024009584097387554275553462523370780381147466499984637051182938013768902481308606678599317286128289653639275571744878140847948739145820109673923494056994446567548092030950599760733206678855324036306358484724457862998496376650887658636655540071011823400365520984480241559895447120569027637150767312440140685046958607683140181476386644707390794796986648733885585008995533186928579597755713987353494703062860405299035616086173335210224119837169544190757098143890875345250284886305505507930090311428010894571932669001021310304947343502223266621666380366393420354246107065998470666904018899130282553619134838049847427921134710412984303165665418145035736557022018465912143528807909745684612119451100944933315596494333864231554515446867827204269875048474596685246127393369428094375741959239141372365235803201575761265190882079917868726356182689432512478798526524101330450427337986889966782598018951026480474425559911170793877114665692021337415923073233805113223127667628157778135526215335892502719920547845532563424874209361063475180420548066672772356462614491460430899674879278965018414451045930456516895736418539550970404116123008708808774222631602449722145638949327166915555284544632016809445541099311105452275133418164549401536864635744595228283418408152417982810564661338143404708882888577846932907369550590560685692046128265970131392008360363043402074416457405974857542801406426968753424147689912428425761826402561900864116634376688212244534969496926274115786280829539329272262637105021423593947400460677375878667139170196566913643925415363625065066796492560960937810957892038258639389451869168975169708136365573520376566080786242311916775424843219029054572042872443994352101242611552388462701792676780659234720531060875586495165162626685470531018909424959808306813585542624610652343367478997115446142501362201975495621880282947152814642083860585197017311847449739680326198708646483942576190881025013071314063894110937248326631810759017873182072794659113337768987656841121935395667762315971111216475135354418064087830666157472257950239482991040027898450608738202333722566554158205601943998001204346139912642991075067046623897710577646234958490607064517269152571066299659534628856853960954548106504414296069111168283422541830674908625518289137513212569901028345869986178921183632690684561512180854282551291957882446126690323351814908977487999835828933767955347559562207080756892072442916497914789937069926012444983472489552757626552222308347837129841586188321801482667065837134789275818645541506257355659200231566381780866618648604325333042786231118742720632167054687189587041506681924886972320432876067626934152053460925688801751187571171438665351365157458222922121610807988449958600116041133399660273480566137440364746802486370329430254456689544700830697574739626620025965975781409818288626067779163825459227876782622199359692547107765070042116324787114864316631433251402154208522401666885034405450841995233860735138654007273949758785129076626763763152325216854940068058747858904796630355205498399645053177355629730880310170269225895506934167209428403443944440322553457572676001201373279294684366818859397242793445196395037299045259334808053981310707037941956092030280254377270250496860443680430938488566507735597694811451379707567079830183798640097040857449688917410435237564781324385574699872702375434320045402684772303524010486699577843847940675186414845894981481251285369768580679607274087627763909661396988741121614877123338096018365063528937670290344087788332766090634433576229476261043465077960373642949780361461543918710314064290118046364421359433465690988292478017236829741939666359554850949923491540895366725406468662458152741800744491100773645458214598301195226311647247374462546585623645801835190243753098157214760912520361866397375849356173762503945025662432969686143256814452535567555575529401562313762105391426962534998526362579175875572951303003995902423238122135247323915970805717326557933265227312287580971049457094094758574900616713217608240483246390038601938315408491111651967667706067975069647318571428420938064750651088595393774955057438917919613652287522995416692863952610474150387524738268313336456702728703750712706550326018645371535814726506739906475131789545304713862579997858590337799860793739257327843252610310938778600197466805087784166640509624938722929250809797172831398233823249622473998255387867227992730652246369102269628818387790635958847421868430951502225386857638097086445985677278385640007018180820156536644790795233309080540895954388163556475944208902251917549297318576025672188551426635296233515354933288488962117060719155860188927511640312946694299096538661277238009199765704162408885019404908624109907155428789241277624151775223836430611186378752395642307926946418511654742469951030614729738951279741050393212397730911632024081102849883559135536894734314116394258237282794963551676543487449423815390470387984534261447624674194854352866121573593154061217614739633044636617747687556512751514362704935851406668564854181995135410303661272843468629438055595232439710170061437301979933035261131802748351115702689449159952664392967607497661294186058336793240982067706372822621206252195289124862531097574419353185093175212559755788647864508821404530199561943882611455436607245417415373824244424450497986697346912024342883988601398274785455708988398485903210276805873236849797177878630155843047848000793970100397610592190023336722172129015210523956998774155447968664917481395023801354956853234576418515871217002637898631953699001923870686360187512498569697293301913699089398225430198958477183705474768102996382581382831049527204919723373348761282491061749786865364840628513840501859612029022845087839900364287686490224854018301980834387446559971373204691107438929016597777669681162828387174682916958497669627703550923269365530148708480293268793693825046210300832795098647498237724111855674076661145587695422394491572372269639880198172713550594409448725830233096515517014949821454032331655361431857274679941474973346945244031811180131942291014340161608472237413729135191523508523567711759788600788037062485245618594668528773469748991812370561453976224465504351657139666330037361407177236109160050981457121555151825538718265717053214218227465151872071421938994892654530621828014084471122352174007342905874191967900586536136156084500441951141406352121359026613326133452774595750223925347789247740991882059999675875615525920015022989072451208995643222265837700164391375803185842784966865967949781234660100873086312612313787530747888208364286240642450735789451821762647123549734076270008286490626385307545502805925368093155062861599877094238452976802049186711625251624111968688608649951582766194726818732122667514173009747345939341600468710926636707974692996706729335821533425701010278495244161690032359595416837270211063543257724926688058844559276242565055606461569309255516762963637280593768525578984020455518532077784475221364071624696747307202786613527572854477725924465261730900924671833237204668832831108349985503663322790662197955904692192813946703573040712648771458079003208916819944742219179226423246663306559874515021237482731999320274253598988587167469210629028540513635766749820290787649816658366213464036619548459468764467513949952017637770261047564087820374330662362204266545371836593263462252540715055342612789308277222221533508332230486392706460234644586345780058029063487749864891569086843556753305529652878763845660610787847277354148220813737514961541789656666104511751218126873639692025758921372349353198163055432846992226508811703564408462021478331189290173758597412086689369562470716911809784398341667153767333785397651004850971925054499994359595498179999532734805279743313269556495069526443496237548478187640188709657131658808495835662217440305933050883827400494156170935637427690753454816293104713055892749786299030496550450680648614054452224205697204178898419743989167245536075879001092923865703117348065328666503470682462744139254624420752413587738761109338424177628502387598732514034898390880888235770142989158098644342305319741569381901158972141262514513123156175768876751119465703237858915550595165241617679482071730499882306357989225571972834002787730443324021067619090208411498138796953018360562342507247428870361701406237369260618296034444188268673333293427454178289774511890175013782746866124436614013790970860739025385340001102435381952102325863679592232526871513256474343556448322581107826368726917988193646874287334217523226611345684908630690711254412851082821281616447137000218421318492857392055286093654026332626444709988066649087950512093646346556901206865914959497303606834276984963698710858579839525591828218063562448709211595690954453164375063327700895243755074245880715186593355778436618659376402284646335175156976154922664041112401630395924731236137094489430334459252331133549395252361450902840256550880342262240462192882848736152627797063434466527869270260126746718547427724249611394813997931588279788779838487559594961973985533614671456970723767834677179770139581955987781693166544171321148703701571708316635035738651489015271536066966363938414514492504910922137105867954307693898580234539876771427465384351612396196421442609208798398585321774880265972449421349053777007270825801059610056208518962818874446165299223089534488877275659715535781124743475014052623966455362119703149281462702829463251717182112323789563576396851159901823526482262777601834088718414683356271591113524972790114243713874699898365251312850140494824005739150681391336611844736168844025013402320322345402478276180101761092240406147706752442766712328238061877702440743308160155096010751179738395410449431141261457094360684497544023029650797220357154636890993799929924756127815719804340074619849207911015461946111151967790099845113551017317934913561427678186836261029869151696472389073639506806871009393868744695039594481127990226350188168540347278932800739598284622977095510506861995492351625662258141132239249741147165443943054193689187930693729259544975728200462978527299063156538032782573056208731874539281806273938962232431934183489226150901272694272510880782503493689930050508877437772612830268725614629731347053059627794216939543825725624445326129218054966212330496196869679261333926909880754459262399784267979549284625918007973616450149040482363679289503098553802673082237644609473457867235634620359131863452264298238950797188342583802780510287943532387769793277175812826538652236489915327645823848073825954843294418807229764794005698971165470654289744665413131426496220603198556147995012188894080057040908108412196132824537495741652348133892757336428360295574606119944511204879245897187710581829854570347708633957898310397242676575673357833918877580781398441288698780032157082271999873297778950009776378191806433846470425305757045656882439007576786387994785671174601338642613685817959525449070536619964605545000628723940544239939537763198106995250990624427345561754504357911312122552983770829006261971784386425087583706164170670770107137434188663665719844069828077849488144599371990267852410595769885263530207431043199816008856541041368027456111151306422036436469680512035339151037919977087005696047041461291031951456457051896745274209824661362945399261033231827411856700725293366125580074118695406985567932856597254667060944398370594803711341925205185025495001446158928140082498401306101693451252008891633454935251263694433079483694595786061143226288070042846256573345974351136761738256532813041525815680686347731100796524961640085702776222937578774133652598809364950224296873383450427201800947109394879830514334128618435320866307527472438228112760116130979191746059899905655983849565320751409777296823174613125827884697721982055230517726668449722299573880823433816788504193222617296044931993765717244576374592756308826543712392457268225218677290799940495554084416606089673357548733580930931699858546098472995996614836596836120210161062339209149836926868214423841810956178794435303600882084488605695919025377149920554244768844338160906087499501500957227773809763899018754504099317687885483863265603275492965836924689531738537152738322156125602927440522966176901338809754052663936837672830838528123156722702446326252298226817693410528433708854759227077008543394549883753777665188782709958923052230742077586455366052581433337641417220412612949246251037748234732331168268460928172883037214299294876458174211789769514330728378790170350463190354644712085918286886021559016810085845626361693908958681464409693301820239035444350653062155193167688769599321118625119568370576318288689453031905010660872773624887940173941795048981724176838276200632458403947521535898273874995494086553848885634472931566725786148088633165221789516539158955320484771700880982960529278355656393789569465332487759243466648351088544930780621735368585665291841670672820358462649191503474393388594038359856251827023246813240374827814254311358895947342123877960263650080613945910755609391667860914039474000188447381099194313282611398426888961055085266880750180167351749150601464614562402216176116660293101625631174970545139647843910579543932573847204006941282110328833304526436703155862729383163481569781446148127623125864149307560913171061495884427913617443705109121840152633185150197622870077587997351572880520440452717365763353506398879364194526408254311971628122459314912058496331860932725159140229324367582881640525631043275678085956684629770831201759215756799550814663730176361634295761384588780834550480672829377550703228225372240271815214702580760493972185317131994520279195985190680172754081754528502822066606424625922530264935755069085892733001176558641795430367804868708077255527253357709478254300340755015729829381190378504677312866756158295251941332082516118582465934076119279197876537027733167242607419468623886829183427727794860995454326787764815584570888976597142694638591888905578907841692366185221239603976417729142596161392253043364717813526145684585905019540144222508438683440450530692555377288646549691486615458124186997173480239284728104023498239079235009240584464475129949568508082042739495158740251979554105464426160060456891331257702289509205927812346594673950687087958452655179511892658840482326409098287696714546412884023798575245761184345116366427244322012441853741528991931663481177683940924629074049321864409530799280419621935353775409431955090933574253019965686669395201064344441959188508790819024248226055887778590728989981797292949813551019374012148062813915948734345414699361461627120662258706884368830853007639771748685114279818917869339904888285291333582520616408015800962155068449173307734735358561116698771509660896399178169643994546021196303035312887118155888447527779096402932891083028734839988436690699183302344439699326630952568590909374420153143673830793012977888282816094487440300087975488519287483997102893126037140583343693446320175139795556049583347555765004773728003070567347825652419673359577434025615130088734222874148161408890369584739939723497581107817963752206757442409502474582356784941231155792843858823644400351948229017226008754101282586900813724316397183360516873524964988581058049914241571139835294092098323305615360509019777468035127669980075698715281006884296044572450993078609803186662023655151605552698323819752997874988741117800159956128961858430762046738305455152943940405645789394710677702496269590763907213074024809305384127626209523475704566240519616372746553665643311635932195017983943557896941798022532972436054652559677185261399371178002846752647425920098273581185463599617000119587191061147205856756832849967603457277234506194919042064877445844445594430159690041945503778223007163881639636948604368591677501262026593305606075368177733440065910002812795935408460544318382031724701473709394109584224113385556277313558798123138883717081937790807278157765482427049448880621421355294994674212439460858277763269356838862951405187615561287738833463361613211978761367856958422425470228186932094123230937029425365971929371341651666903113476528430390985897804440917589503369706203353047617808240727262068800769573210055585788504124570145794911343131748248198449370663805311796915468383877307256351903441103670516210462326742581659366273323992055144367333038694023164730814921477902233227957076624984493433574351228726702588166452051435198940964568894035990654452073312878210063034337441703276266176523257784593148470623745493190568149889328783765029913266693943672455109235957845322464048087929047439406676186350499914701102420874964506341814994449030595126765561478596812191089812579845613656125218380103047653836239673994975979208442802539242111868362293429785651042554407752343503692243166624063785872892709051516739135616257330521641921092513879013704345856525681808260150097696095685165103404827926974847869948956532541826553309686196290233303430332284058906000962283932530060516530152688794920886352146337287890064547611504925373134190657951822284159807345024058061157861221384080935834650755425916331660986286480323999928133036098648213151165212401538018067968932693598505888010825090095255481890075185076323701436345553894903967590322961544393456525243747953296815397132543987199404174752181212546709488337223347528998550215976120124732691272326621869890931241670490167782418797354717758831833305493284499872244244898365188054439668556091923894714264317557911763690579674977555951109861308688693735274629878344444415365681074532046825416197970108458869842815434000741982673803856803176673346575211081454871789572092046868662623196538616747496799266975081285438835313111185819934705162256535816753400202350568598945875045377867549939573922547214544456540758145630864166126630987031461236951737430271874627406262484938109839883022793680080694583127818911314297876423699630597384852148939033101416635289574728239706437080598775716300832157149749928674900926199940168981381241310398681737779675371542867239391607208647835230393836496972255326399907647151576873112405753342221327827098063129477516444483894428887895259236736323139947682116951041354956150192610230594475314982696479927106857367379595169923312412699537245582664112517904266889411065770171701023078152843520005112062477335523584579752083888075898924699960513803049926290870115287405726689003063899603471954439073663626394019353263790023161617045243328581425221346713305231293989602961097869055831107930529666278022676098891265664477425061340014582588898975448833241923757136786373825790347688840585048541310805188940439261017463477220485447063075298599689782725314016380369104172913822892912222249614593834104794601356426545553348105122081138241987511996087303375727358746245249162657141413567433087958492846037386328493605462377697479486951516421649640842805565149194970372480589022963344418080187881071570266116049892956503053192747045212400048119251200796019321718131523638276816145074568226734472645341473854476306254041434256685321268561336225184393655507293899266777269128669235872645956398377916134563105392632206179665948702820617257331954977131892930137605972384235312974694785935687315868104430448362702352448158241908731971654307878147293865963102500830403541200719385739882644880534637439151715309790155439821708189253083145562919721368426528724288868362774242900624261554789595658819367352563746823782295847706721193827675650785268623290165354572558139687524833834890218090148472585252598947733904815988763721269187806961113867845993229529985250999897397624975061333627951282099602476529405532661399257920090390422368004477152142247362991050184617687760141980225929947520893760113976407079967245067286685516684786657293506979140074779051851479731837340736958763121730890340179114137966319241160346217776542489581057861271102790672725147589388603487152513978009265811393686251204083594616125378833293638591541313008350248920441475411600741940345120726813262360203547401000221458621777587652563970345054534402727685884744046384721777023613691576048897543229437429493565347114221564382799265221255533494991756467679047401582909917976756505477722962621698738662628262945290571018693661026106285511417355084084280859165254583707744658879458786904942821136047572703927345234617667461834099822890371409344677133119061637719109622899880270431258477988185488955828919496316415661034884807656841394189142987291582696889574191723673891330615018235659413828922949130874160004569996101869726163352667159061856212105711255921841083907868892185108998359781757374402523977993919892115636347081504178269513474372932118423229568833604558509636827108767683553854466354006714908243114937026900314400629087850918177164077818315363844050110712918554872677375572692139761638122072873831724687965220884487952855440462663347505713754531573275150112172416682238621301786768086394892892674554809348318552836488017234980542353804294589911578029414614882561548447801547902856343745621636123666003641443665299026866053676376154365506730032458521606923053669277094294335728491098410654667760557749526051561962477700650907562202643129623946827716300381707236742621451263747880214084502257660941307439712980971912867529805310976330664299145258313185904349370638016617709430894148250134452985271110656612727104055293441924588056589401694482195567750859767049994421303386451998442127289084834383022579285398901442788226267051612752201400084691466010634463769023163839978395998796833839285599739695324180008747054161915560845884812298540282326893827181308203799482627046816084971265341281665164371356596261092681858921054600386804929085775745271472051322480434211282603114000913111956636267250785082083330127396306291438306234400887580110708592803648583513630069499642714819214097358019860989392739148196676242621545275381264963535783943072844843819186138005432255993395879681679987664199363531072202929733652839139815000478862361248308251189168556644106787006695909256463664367723709274283513416692242681902065600473125544702438163451988338714950752393160981767815682481009434927197820978596640267024693842221336863377635794344936756057294670791956123685708848110907655914063972445732587215655012476524223235163740054770873141689496210521408484849573806018018513813748864570240124600204563803073403615288589518832128180812552399765086511115667882329802526361205861300597434021507584853837246595757062507861824006599908790330201023771235016533216949783304124118072581521435298714441219264216090190461520258978789980853253966550490293544867113775948160804468815654997847842580317220272322477521280946426452351152372475816756596379630341538100908038413636145598929692779956601325026090128190587805906559407364617184438418893288465499570020150314550596444936522834846225286411360997647144955999905231597905446576768725716110046406495731300755487500630360039392258324778505970780624870997294760350154509419203489025434694207885234081601231292400999401142959763251701599463162943162920413625333952373272768669113851586434485112448848454971526207682516342577272640483984079793224751926443643435229326840361977222818328578878907605404611311351112108234572164787682892245907550946031741469508045086464536783996149821364780756243003600072912361760209224960151167505686172881227321631746691967326570238914774192257246118273314652805208065281950686409662505686497781579348745144703880507021829247476622316510246190150550542143411676563308750429283867145232276948447331637162766118909086074672896043667289849058133422695000811514358631143087855724142943670700722883825109732743180709514416941423157390289051393174764355835766953415320198134787363593916931044787534158930814033283468335257275901340844723857122067675502128090154459336962813977463154312471220904550266293777437210095549790910718130424994991759839788508622974029249898225660160495746396677451781786051561714210367666223773197201393152982283517016771155159900818054077676241248115552807069995587279611220566555094296717889149850822553493537987483779408371991320933045475918099062870486736332692850561970374428787852231508317748292683046484746877932292344283301873345635308174715704628503006167966848902221255992721628152915811081068836767783769016019538122439130880161386787790310081356241537108079899830096367568171320661240317721062888025750011910313148789093649550872065438475231841989820549062600767667628283684993718348308725310612870307973475002699047408764067244012501594774356289539791422476467828568824550602429327441656302160738451804960738521006928782537634438488935003095487103587529283043024182698758042946128320541410045676176699785064557623730182990504113702784832760404217325061933336958733003141811169049662733198172006827467259977941769155970097236392963444353252833759922596190209664169329080930369244373285647753791527755476028136597477370154422598278048216729968743453270334724422459281669757925262314036007989831997857000350250030149225327722494423155965138473436791480022588777258651897010701278812498276550359582771874266355893073741721937369020403606623812164159493530726898973575447312133036026730477114905313748687492707859393582820649723398411224149123300692284087369250569672874122279459647623178996419591022484658149988900765774896517153496549104903573617904414585126136466264904919923530668816441744770052427921173520386993683869741073645791624147632938959063677772902653469879239915825288097264347440938603561774957215595163904031914426180477122576620228124933934132826993554825597491051860276227133751389341879678381618558998895315917042451436514601596309137088338946785993645427948112279704618355489989435914082076470154425834744607678359896350063185305750122903746702941325881273865543152381437068002024204805810582137329160352363655328990163428154525637043723704562117062774586393072544927444335528327357381402140199364837591519729181342611539781441443048024178883298944495621134958260329799642580768294002216771009936100788972388406584102476309426069016190582861988405272425356177455289420926104097040656148979932102552296835193806724911238885294423637997257984824766562798656823721093448555429984037918840848826967971264543213494203520814638518803514116343559792804143567779390070170118056359360210291668628229869859011605149801999061885363226965573131120062794229495079299513329797792349839278424583193976553536153929776017746282193736802703139861934154181349389381454385928897465328841185994461068084835695272631920933557386197605974234608397252466871448537225191795097768457732936036131668857128571706872623447058213365191058302038438119998460972350910285174768334279401200079628527628099148001838807132652652007089153191973718712283324324675846662209220838943644048916111836500590112662985167937013921069528269284088855094827199511164314423850487395621825332717259263719826837838275808836447208940033539839219379227296930504916482868799180354186044296771849929664642733638166045214046850687040488388196709340259875904031044248029584031597832132453722986355620506650339521695415788129387492235066199996637100828492250975098938257898729532994893767840989362610273496239368185674398573922750252506573858511349443949630199180222189863270761581940825389638624556434750343454634258984367831942687102537180062837874722039026863653136985761876255845423353070716521141770926330689132243644962353968535216817562330179447149037274928408931258001014891777970112226892511585567587605646600256249205717322256809787042682298234942108061067890315194086618659783738368330965936702003152302905945569773523647785093511000697658209257101150833079637719976449857532578472111862867931758278790096403821883577899468373969941062353926683524153699110098997819295109074660191486606411889632000200944580421825086749415097204340741644891459335153097442249794052161630815526673717474266414301271538780591392533988060273871853384308674000536271715989536676639980985088992396815773182498884519157610745401737794447656818063236686928848761029531289462099631317889763475686525163230348653439470787544732444075320490490718736691162060410944003378107692986476485379776413655608717095404904050070387654643471969727313551090780107828693674726323417669193189397995157728782836517534248359312424437273432812652651303956986456140438251861322367131701327366915474554027605058823210978418734114895221940801649170697805022285379466400776017449697961063858094144330314667426337004146416419575301283692386804754876530492763947497354040648457458231745753056639017223815098637385125299516094807088695353078051684666204850814510727041723370447944188586473511628784192340890422898907250378229338341736140132909409013475114869028729412086967185440616288028549906387511608897002356013380563174644888827661832843723095871047485729890919929452849426250860280652323428291320220829844847392760387090085197256324085061725113288566414483496454117630808658403449171183759195979768831867821709336766796716579352343622253907052699587322306754481816385107087052296388812330375878106499475545613804782023039744838406386538577392811904546629354660428443924609771665174919077853073135090287472975934667650030791516463649825070579889627303005657544915268021162288502558954976964891517981524365867684208296845891553349590462676491874590019751254503771607329314869252540362093171585643826996490794583541704414718083092851597446720173515520612872423383005464186256389372448425848201260588057706213801689643205644344243087377361611584091852411477850723555360760026786167412514352176278651476148112701250096627816725849039502211196843266682229040636104961418162801840131618346986985198933098619533807225828306635009451622896736091382636540831090549251060483839779564800950602712746771269717076522153899472171743119737561035960501732382488887687744541456252360024242644275025716257940343755021123248086700401103319380538896538241910297009024771556662636039565800480996945019337603714876361353133617100050060537400135588766996155515502701693525800411619401681517640531518833761884850626558422239984264950096260458397230667581252589211323604238470507613113221262331983710511746132122366723147532126988003160776934087460448275541677841315582901049762483703582163770753910771355585148388861532407709904900753855048700361116436296316472573407627893010301465916284100461746919242559819867618477341963793414049053439501079811190788776148866147641253466793225658357596212837164067549351252750525117239361871334240145791393915768433181495989178868928241463688743971277398314642247879742333075481071067302877174745724967550458982372766794508696395601424368423793210965633882391651346058685805957029402245851661925675618939521669831922698255301727929249607691948048580720662261162677073637716605153890385061697389669383303991716582475534162906523648200651067794047357257507296047915349080963542461452171757359050502760443884903719529649962955665424279309206058091062469018174689081032053592360761193341080696770542185171612212657841070466806908328378161528766865747783481832054723023496784585036612956114321707939084646772814777942723957675024767110937970996148250147867140997905147107900650962697847883788160225265226173301943540128665797992991240346908546618581159873607183354525904636450963529986195721629252272767056516688554144995265488631509095117012112686545735012074140227781429061410783553553382633154135518936555514227281602644924412100570691530571077096598312364897838582422002486050687368409910084634189948882068443444544544456079359607258556838584948404066424073374932067222980940659259648693692754639227665779634613103616490492962996598584347704911134554210880768136125696639151262628342304092418485011445336280311384095460113883121243522639221517980171172162917547967774034222126502351482209620467549526593186341306087755590487672522944487868716066300224963762656218406095406271544068986887189852810458686295943818915236563847712227319623498729507250486160491304347161863706997718329233319739180566338133146336909540366680845442997678815666981401994333131832699706841705990787652883474705486750954585958408022499512641549331741254124128976599167480051378381979172017086990303241378312840715062556829254797295214592139616309984191484330294378018076217338988459765535753631376048952861601496691964920289743133508161160172496487321518258892458065340146489934008692452074617658478156315221471832442119746245109272437674759052351654839687720591410566786107080657064523838918940479963567555510690950152579329021852433773298130872937572545686024429013158529664791313170680664275716003952798957949597038031030612160613767023983497160111331034421862042652056132299313036381612742297451143664258066046314918572535021822117256157794439548425519897685892124646338233279070042767799726632291698509862885673926094685614444303598955128045966869655082835581184035228280435053714806137719941557953645514012841065692545205286351062459268408226435731614831149549908523983164262107764557784619940966185494500259548801163569680580743617007212137478750131462537670958016145215508396826401368885045373683058863376120443921998914296707403771965445758292098875107698286274155425269211918769990276439625538195341269832186175415196821823190038155399697200476411583451840233669789647942819329354719173935080254767134453935151800095343414040848181965018450493309028085078515723353713698295519660060466136784980267949349173476496598111376512661221208095369603754289658324037750888800003442159713180117882154514486641444727655210711372247784757381515229104894469896092500460994339256132001229005694753866521398869288946778754450596175464388606981183164658240351718391456043618459900746553869700867895619964251838926021297175196656133928172157071510785041354284760685361442318566839353165027729025611002417985591039993568715454401665864129017382836558396891088863541515769826157133996465586292354958850311206646685805945876283312546852741022517032385446918177973320323029914588064282904479886407143361915707518964107217286247440761491104988421269268820368367239923707113762953758222997647358009270544899391337566570001890988930572259439347963207503721733525111195958862929123041199576514522112598080947142808528612893451215964550771314673128905340876108854888033027222500734708358521466301873583525966225142210228021868473184160832194986364913296510152517595657100834497635286413214162027765330397975601149395981216368319460782234513867974262108155088768396906135122822380681807640796414507821111462572902350787090086683977687996873442430471268895737657824167048992410097416015688972871002215554138120618585307828315265146583965142407953740223006712625968658108518334896357667567561659414066851573572535809165502901864987386208495179036053751977395235485469129817234852629417059326079063413116433343758106773926989310088650461998576843479697228638878890967973485718131875043379264476733604266129657721597302838132201902681763675450111423372020967322982243699225346932192825390944933262885797799405921485165561931012973051113244379235842708686969885795673397774175524007558892585855788787206475839926234712858204622354870481191943669325997618049836701864664922867171372926559375142751934759711484819336319409782815716497071556818744431429561785369489243102568767527140735482400049025862296988303675686308917069532714466503388216860762810184857648994905975454141652864833684458637051321804360327844860302869290007693995728306227164099978909542101818450102205376857186612208279824609816719605104378106254733716847058967481005379660724423175944866182966005015865138905003784199160579424356010380088249900279145080294749941009755400115081735359140518210973426643927785527619086498835979814734903895959793242618370592458755548679639542641695704222172786961133991116060867296577192109618007074293045497269384480978080420241827904458119850775907458044624072016347664470352124228898126753944311033151359909020677185397792183443146320064481498328600874573511537675328527225375627624697179459531362655037143183009383627828833560928771112931763566887732274600076365909010611270879638048237578468717833609807461680867446567846799461235507585005021091142048951426631501229182286778042845899205596906828163592996788140606595327040122680342495794269953605977092436787389376045568958862089011159024659056730493664905250370679285276943520605604513881762839396434974371710833795252140120183829576795328318171313252646046753163231328550982885085553730847420822376805867747386748999355509104365312025712376327446091645618822190841487501241938491964174251111662809062279372484891650919839685238421017355601472374221003493063488164304230655761964922429784281651053236391280869173505694689353102681136206930481918291856439961288647007616506527052584238012583606302803156935274708244552553780866731631942237906073038988343010499157629431828052523714276314199512377789270275900473059758645126752778571162637871116555700101599311514910818242310529034055757869520101738387391348783883012512423352191601109075250441170791202962711545013946302661721947155575236528992201284902765726266953023834850228886713780530231448373196664808256879347729692000750283427358985943707970350704582716123233523737706485483149240800212313789327104407383002598451764125286093524743807300085639512953478854084791720431718706104891239432143811351647453990998680483546141732876795030149049315653503134089307177391189677170030516608463032570641278595823484726377037566385431518981164282425859362932702235001241926755996249450970227951782285710329106742533128800748606040906150719429032393996732925446230323007814880212483660578008483967019124896501646381052978760352205662192815859256084446914889998685336600213156676598104650826622886503311984527826302234071075919566516426146480611632044681002511822985886812482305093919497827481356882999703442621184654486939951526844040637064290801194788448126794847503548871974348871889190451131208686489412157549869199982178456184625722544362858615856293472848450646282647627861435631314958816069535935908885086657718725293970702128868975912981417851728925081264647705021487371551260972574017233475055177339615640067944193985793402558751236960834126439994087748627888977755225281803001362841341444062636962795706676077899968374005102300787179513162220667038774919828919009961285699393929408219803673276330830539362877903743215187665613020997537994439192530543074658862646905862233157533743849000925535441734299640906262754477383384543699102959489955993146033215306950440240959241222121299739953308719466239602234893692182856421998554038544493366493804718313684521754923607787452635090099526126391725431971337943359442784469343434444008608810716141583277736890699952621587522790172221079281721399937495459038450679386729908623800162094013713237388426748537850103335279630446103965090243690487319296090061534022317531561905929825064917821158562956314443896686677449796148636070801983277953661576717807390379185283267387027993750890123043671651345103573910286648542707289548475338053645747543135131704098551222915698243352078820122552420492228339041942059490152374052344314383877425351673486782761374457375310204532932450768134397822642412492778907348399421484503172227639449222393310115035139147340333434563411001848988923057335061379901326943414359340019188947393150929356430336465483901610781052565632875529949343828503002141559971200316172233209991374153348043776618953678323034148392257165534405327078511477486892370467889988762867870620586593916234484348233855241926495573880143408672386731063663248952549725310001462771017492087335032816365261981617512342135428374800293496369307007217502485271981526408394012192234931947946640138675257172402169382642756541091170903794708010446865700353845715485383901255944073479478191768662977432866002849901243574476199097433253266315696880432654834504004285330807218611007112698037690283111232204827893369338487630131247546096828329384016652614627884571878571093161872187267965366437898628170071671370242824945682072786069593957868451543158096215437350101496162714152815378383221666231840977482302862341606125832488031329613486712998354258720597166084659960275869195782741525302692501100879293885957414799683884193835630779471158751115733753702620810949965785613309011716992237986866367235226713336369512084366939828510883819221467619242069267595250096915898687747442373838935071555764824951863434514130244735797344944664880364470902713676072258726888094485255988294512374238916360149850144860573108100716739518635675760116804200525293410543422177335284320724957209224019218746087970399742070670388488927058541451491738052012442711876233235726883459773514152445331214555346097516861379688025586906324967146884106152649188718145149841485958866094312368975533301101020529903363705671012926425714127853403849443125210776454214083915234714798396198156037611039019408259110213512504146064662073043907335054774562661001338456570069321387296118223333994052105035039873800326496005871909660448021435839669823424198456715288542339882698136174547146912185963506932996319189972878801399405333390910274326712248314776890975348982593393590323280715910416773062319602913618096457497122140155303554226484072989384226905745213158850245946209861909833771517714748761759468850857741634591458809423676630302141982893728831268417398601216488574078326134157134369427392261477558284705772091618414063814102321471389860164970024575545412449563361397322789733666052726452984776722242336842675102401248249324075852152649529896641422841643313297654188209141513800659134436383536519127542046293781060125294936058566400690558102608784439920084380048461811146653649227162367656046564442701458530937644244130237807193008052589082665383356414709557357880464256575101025455916917860704653831558373254650574356488695524588741516823933091699174027504465430630059510650936438345643055400412412004047834775131454385277952579015571306709025224340554822213353769959813466812410717753265536358511853480587265381018455942266353622583367174297981618990652904001246738678045130991097955599774798360046066737028555950414379021468639743137549427478339890775978511116877051815116702699669598661746431276447088073373183988547398447661579349244378887585812002099378204638492868834206144904642974256708987792629387375350708408372804142068130816131877408856907036348068106307718391467965090474552798699441965331247893746861525642774230656830304891388799490646047354922180483810846018585650624428399854025845295347377592683783144911714703291901301018332877175823314749153396118360412639066842846950275237788873811384698114128156551377812106002229821631935193227030717977078567772763018885574404588705454012020175987333151535948626716130334273557808651560620489490553272341612216939872317186779854248962899601832286977013903819536964560674146566274874823612638009793342100278688865106052076833993468466502519320140773298132692905087942459382281624285214059045198186292390459326150645547066726326531466227715597393304458245646583363988789479089270915641658289017010236908813227339270187191018306707088374799526540970368241690002776986959959092261044086663069396621538775284360818449247383431122088920935001926175193164367611393371406215970556395496608524463546903496087008138872399083497427402745037112529552750002269866795425317978637669988743490956520827962813056320723380726258581607365117381238440569276706027580776972802876870405671331580737090173006264314060121102003511005189271252464477639315108658606913478542726334465221633323766287567950186851892712101634604155683429331230891759202635107519658746724791525303323052723047254392691577836404542226958038459767645094504005780484809370199537860460290532316552943096673442689009148144962490989020710008252798737976822524074930959963087689170968033341621057600973342524678842995926754272325520583691255747989976478902231610245298476194761259775642723508254666647938824068601150048016233617658767015262836566784981845681989687421808415509046142832910402094149143831609820666658262689349871754876103002670622696675702122883352894217254785220032479023816845920674916852754227126466650883776459699945435744683016926039492453339989111261041762970492765203132586150391241338800831548075202177318141593382680453033136070827188956700972171475068328829406435474976243678438423837663748714938897386224853453873955239682711195042500974262272541121686098434516293037097394182508250163727187234585585850981277464936171171822269366146744065787504612851476556160889541265660554720412626739202983557527156579428203215947677577765157851545625447573702001596343531127767676824873349942669411849247402519668582850429038178427516266613637949844938816101283254894387021187595529478858481858465592594992439801998596251829729558016739930061441202249353442736971564166235269839870954219846375192270601706194283146390909196553024747939791364264039044077148517755766735792627124375351813587473785190990469645296273936880796066899460301453963340599919279217503972619088002961992718316581572202904988572265267788881904386436190467588479952286121244139084025161649162185320491618834840101153077537758682854819275164276809178662993749873084847721094134036536119990944822133302964360814272901524372794920954091733453507901592968749480227452299276970597240832856850729857781154974348540869804381193235597688057338926151623990792280292265571409805850286215561152630519802148395352756493586340653861026355957979967357126145736293360196101501568884794714642549670643748919680144045239566907312374745722320644760844324779407680330875756628140921543378708562096996453783956820873392956584798481273666060600070275476007933039038415395621504790314770099407911455698894574326624122470677430459198909589082214108490612424839809491890980999293438692486905189808772142534623236182853060349636545918722015642958416767173026216340330651520468288546691587651147127979887375868318702577697658422952082733277736105113294681481640845402349953086436498333200497477850095613764817560208002820622618207529212386606142086240348375640472742515591223740454287977252728827849673212286082505607635204816871326211093999311574062100730382554045135171890730697388545477731143375740107815655388840205052664787693791945372810925511362024334062336389280355544314676387009694521260133241574377013863304043756449660907592948466008881551931239840207554608301037559184854964340971392294763093393498189103696566673262931404378207329044855458921675468329453388864993574779307563751756224068663748685809395322591137040655353969714727287064942139373735482391783928924205197773937019387993494677189913091768626139134187277901792644315885072830789688465898129747172312806621948629965830322856051110954183261361681485647541964108330708377117386019774356599612488015813560983148014559471806535748442663721930069949385056916479743949438290827485254923512703084413326449854155803575338590081279913211841099628274690520321745929359468600337494759212397950141691859369094206732617665499341099646889360631559636398078761863096250076382085686712512737888788924631000296927020463442209665564759285786963598209937307049433891070132897301755892411285726615630702085113104495045028828619491877758603040540489531184774150692482465621039673859073899749604140173107661541022588377351554186777348725359295808423720176030016813307826756249095187079052048081617416127377615520963449152153739569285996906660658685701625244153974553784111681402196874487940741060768509839148248182320252769811758010823214339350972268815603666390239615906787107099491916535379045538127174764724135352088501253891130923486779097172282836662719085387617908976938327093490152985858811335427083403627317149935331600391414319173329936843271141821363363852276562704408219913970132669880455637541006452393681150414812048720107395938649421420797789985953361946613825650800505527693339643539507523519264227394100250198481848297229770531197624783045120082116440196220587470194498884070484292304250684042474101128432630306895084471393708184232325330673705856733195140212838941740568388017669021237018287516571777154981694236981028329679784160021946543565134907560345372709828877366231938871142000802383951410063430621505675838385210360913492638342417885807305938648229197537202585346751358138729364978112930307885746791181750321311224725940812094435296791640518132900080052096260659731992912010126348712558147512477566537220656352159875787149079632401689340644457495143503134583144034925710679691131346110077218246317305720770609730754290220744608959009016255611342234864773753887037054883366075380221553730857944500583383478634924516726660996328291632475132749162947383950522289893422371921838952188673166304408004233711215499113067549717862687883780084779392013910275167664938828090941700181520225233597675981916333218195769884606403866277175292904354385889691177568349820795619827096226988846556063059927559065441573480845746494748885918000498683549356086363985303911359668824706155181321477330161543891154891480549400688506153836755375789203840473757160197743288748498507491496462116961597023406092728133285304402034553830171098475480758009291943661746828103318766003199023879035256233354506686510451753839255811455114352670597003973212125635335586364696344607692817795330594433388783744805067460134031698789641428723329601698088508188860765216467258201011830389552937457058465518022057573005320543820739322346177152021904173978667088515689548111271434406194625419636403199859463079186336305804110105506741164228339108933463245803932941031945318297338092466428949628421403149082874809400735795566092365621489236543664467103975926361712473162453625539486211241221128706394301982206309672167148595326348228748620505009339125956293359206859175082192976658538163636525005049940694617171090457947266757390408183894000147086272276740211987230667137704181965809306937512103765581600684204397133295426622241150671113522802903082698025535447343556771106979063187816046560702252486286101670112395774591072736206780900141311184962292219261058465177367690894283586511121591069916905900756580979578473825642635579426102234999414682963391074862519558979167950650400184300254820840154798805392389260570187981927007410304794665782154781670343549310410192117521186717999536737131902615280066589537429341453679384162257217006659491969663292082438498347378818182632659251117287105344946166527971195666823584603698522305670397443780433745774023961975602160862010739499465064546768654420408467717433439436898024004015605977077586679421258552655452716462256208071670705512714707522026030849719257689977226069996676953687870277359096425721838590172794777931150758071512864415523197453504664616139178917878486127501865367800196025535428040616524663324020081633299274559002856308451404083152434772046494846768033728613899683709916218661706323922638359581688140286245248990466575467141721835386729701001423726907558572897432305300106807995939097404019050310095081859063132873462304351115993521620634908577818938075829965737138936036778166414096525461041894263377871234402977093557095757783631942990288903040769794378510362873032421677907563285949359566686448245391407601747994267426068821269665790796322848575803216532949967801461343709953046992910835470515176610383773749842809184779191704392592225618303949788379770563968138112992004645215987280139920968627534467172373244556792843502493534719662287370935625535250101655770291491780449411378265276853428542014746614057094695059562446022054498398869024831588589124064737907549942201510502327738542957181260940960862610750338819273485700936861940238214982249279101919191794716076586100172741926306709169918654440180037915411882525737740413272997763929265038850385564994814682567452328314394480170699575792147365088006538766534687728735462551778800896236140246002622678528568421168433356674476474066023264780175773813831744482231425182793960737480046124365613427064974167751407356516382203207012248401993590742421374938119930390490255269157184275063525233201072256299771172060013890283709925065691345032271343519934236909249276059414729261168382704272379745425719181399716589010270279319604704172315931776609861504145560335729762625447377606258397252222551276756258728188039026446559465262651055281233045441512753004986193894676375743780961252344329698804177620381992741974944700237410223137162952653033055674009036427715348574813835116381567268506313334629110290147530632808829977306876095410946943424872424950830077973704333318895810531568914746387499798097816090850673040621592494365753604946564833189350471679929963315915671302636096604584351652373929938489332772573820859945138418152362808296849326036771807986943604799735102513290968109884748467658198920345580632860631105342532678278170508612540726646243342558155788210352248390981942999024989267131076301934834161888441066978343190596919518784298485508860425639157795747277519745997724284144381263776447903390067570827738280311348146831655670985128115050251187044147329510315077173535799325019094571028918679766747096692204659520190261908479497948090132335546814067864536572204487755372246772012846402278540674332250526326597535388920333003693160706808272679634629090539436875583053939456387171509140649125778955579943550874485938682288516122770384342281213081122097756632737497327872700334042596944251672508081966657698002704957587872814240044000714996645918506778109790854200472728081951312082498875440844414493567027695020676155639196238286406597452515121659733530748640011796489145047811234371533281762893807339535829818056863290177234056329656620671164794590816293878787664366504870992622015099801834168230426353803502814031288212144394348476901388935153720753731353753470854047809956600901280602176906095880523605331872582193330011593970359247444370692844769518404995196707357669178743281979767778025170633792517125398819937042010350768867842697472942328891906918239321929884599206150024483033969080126559922424349316980472344171146121973512859810245874915400096575634180658521085194380910955905859853767049461784489382884910268333409715166054837741615706875032363275458628131334267035266552820276332045215662295265501055760634079165608723588180949318427928841469911255026499940681529870479001427851718832886810060741687557339019877851723519162500865050399901202004559305104942687046282866833542659784708996599219883360631333035886829193382140003823289035699208398264369158160646172768726440975187255764726013033053162558318949429520852954676146830532928932294541792246507514267185744086709390351494143257327762156526229848709841528790938071260659359651963681181152115291282297392335994952656124277238081284343834884575315970890399939298319476558075481022688523374680130240950865741633470235477403303807181432819169870695351926816764909152482534769281580722120358161153195411688989129114343843758051992555193108934186271711668831288108354841698085537135889444940747484734523496183167093873279023828630824214908110392027148315103656227856619878338889822691088838924160830664926235447622082470931769627462182573219805712015464255260774369175810777297860542891240638625702356924092288332767653789839260345872515356790649392036442494128165356339972239748897501572049021772107375455767700053276949470228442246979629359930891630237548671747606084285763353521264409917645347494254421460512053096274088335127063297320805294654226661247481629520583941087529678759115518585111073846509015145914500871663569625198332892952901931198104506576042369379365585487149786465451397561007246495148876526247757491703356601078118774289951613414552779473679131513174542794799219958248644769120326212662387751577031743241751670929128298438825496276840415818290353415109101747670660659228912703933886387962760505726190146688641137029770842152555773502914156270700630980164309715097459503772138688916367376565536941707666055609146503869274629177262298020623610409193185241622997660545623150745601728463223389405665946170636022797474230425474555471216142883336068230302104441979227993928439155275980942020768587839742548533677757332051510178710807976047622984178811147116400350798070828810511998191095361363862517649016698710964274412380610026122687819564339554084196509637540378936321667006784292190155482892081717497587841498980465238537220428405220508559332479004374780237885051541235403688374696086051483944919303016230789900800216467926695553514819531142282756497876107089880528001124368637011698781025949893210286687089114634771592006281112187175570440791956948683884380442270939142677760130398814401609782265157963759680243421212495926043454847406596158344519354166629681128779697433773184224117386189167138533947453171860067035696221795243044009748648879958635480332960694832010534169865305400673816146752907602675600036588687812912893629894630070172417858423861000567183993638550237906233244681426704153387566473135669758604545027781945790937091890170836452604242448408028713695587382414996447228456151594000743168391511668478168924632492891912451315235680927161862109273817943357428256025417823130490091760159823840359470485517746947616639336968302393451055433413169599349965365056328219623277218839858427728965268799678296220671998860053136395174966071482949032412808465249534950834306709701814214327695772094583085103379684034277908370981109297724913993592532270387497755374019647111613148687131561312329458868399626455900069454164528856167155366200010844189128181661288800840889230178025504475266766565169269541367350399454096034039195879628132161190407371184488911110530452503983415017379464246302034323720200176276822407884941536707570523849711368894634179124192141129476125901255375352639773796135355467554655972658078561119301505450124092042453122820354719456557358087682864092347381720525568117172798078983951052258767690590118665080659390396871865571980635483906337119970486752532939527867455141619874362041356887134444238863215593988193346064148060165364041725133418048766572638428409071683221019482522458517396556088177950246722914653261634076867685099001887510194506051827755239582720854513940449835884423071413983249578187282285058764697370808154049641670155714602831599347635604956444085618654725630230843022278312416367171832857980212598501664675582454324979750053847142996310919215454843969386389655811340672928392108907545306456385135937049920035514551488389446831984115330661486541436777292285802825961537808034153859272221639519631714573920384075679708103610868544493132237993697971950962621662196416140150047353064021781045074313376223291352065504066273728054111874891622785303854197793783341923243608835561971775188134518329579623248347248513016276865314022057419073306993924803007781623830834580542521396884776250331880059417761309784402804784806072099747677194249784954876144370076105554245675543311077908217704768515846161808463007698447941354590631778644329211479794102980597560612173353263116180225252863259737396108801190435262174653147220895191222578841753188993330794126595336763194879241217508766427097363514442995828485448106215953386105477079730288174102393781766671198910836859287830528515325044331431301595642047433827413971116014518704658919408352720326467301026878029082108007338789923621631072586286854731026781031271056014875032998983929187940643042596253492092072958698323576533556714722739491070791620071296285845029559405091606966365246114971720197231227222210307152602567619553406702996051700020155509351840554896518043185666530847456247688427287509581071872118259473815442674141579958871472141593768763678196068170750729348225647517021597141585219335815764305796097389327601993966012529911512122212823333863604459020201245857077330805139094924734197937771549285488170482605130243159809168165365218038312717009565539007050890446486704069966671942338878229043065815197479338253509431376221756166846370348928632202066613760333872999810884437078472514473149976672145705787669846998271418281122122178199129481676827271164739622246658775138462376752069540436542499350107571321847827530466464286958229536126782618499657914836716374346071343592745735145384050481077162650324220798555168596567192522883728003959390768530660770523881358592612047045993145323864322759178211562677952627032958559008025084329738262620766424473724711610393385574026858867720133842835461775416493514532124799510188627267976674886392744118559334713893989361674659782721437391500088631026645727998986610308616150336608470620924573198910987768496970494061297598571770166691141195491243609154418100097911295880230144525693177853271264762953234806808201487819808646475355646508820941347403218484451728302209154000788121326701233209421680623461726627149086015001606143436015943811440625311946711793265743533046448168411264460397216101656070236367211752060737169980653641883357000316843837903615608167729308822669019308278800287068925640775736071381340670052260729046847166298350650218195688230753790978878334279752221246244169658077374232361542992393114910872997681779211987833537299673460099432859365812337871302020356271373880360547400845311682588660340161868804202659070908513848022441404646834288637837912129251422689380749056537568014057571051189437525906510643840841575476133235194144072392930026493161661004083598734015730370915577717107094520770834491770652867431398919859998639495770316741412031618942105812027544659075162815197125206843728631055658675650341775078206335689913278333788767265623137898455277155182192716528839398660478022089327727231803569469375470367391364968587701486084653878622467049746142943118592872226592193726037769072231808408396520262597250943094914101847898943810174558848595244297988887275141517421173199008508540404854810383368489507112269539062670550717574419386973252837804399452250665478802740766223097100856187668333570558851311048728087896836930946740560034659127703813895993444766483434388650475032603293075901885598085643243544256500831078550905639144207902133511008209212953415395638119385324177111437257529409130432616193472395246808689806374449872455743775613990123725833229203334871706047982977670793682728360955511541526623374578589207415687868529587023076174845396974763000968793573760389375011250387076848977024697289647886151972190258154689106478071471268823120327343281590111514223006473261776951984023085656910959491912242945659334902933945785735470383210283947285538860657141588988124225257669337797450360623106161485070657908620743123788264786810146431219680594792468562703705228742723391057105311865702102425345369283620036185294347989875680382376856131335414589406306760246839792278216404020772386004635572509250277757521622891937338303324914597796741054167743044268500696397087604924357255558152744330787121252182570616638635772046343992341754588135815668902366528849862538012479620823082154739531708669036252036690733324358353349656284232063206591742144134763625722223335803795584439060383083166509916101179964647569812866681002659950393797048345882356108134260431893264853209218748651771888631427515335639431968949754315685618530079608518949990589268842837814966440650570809351639148204207891195101177781677978837045080334491177710492687214131485210598210451406430183474970765139905031237883832688146396853223605066401798514544255488732639388032108410252588955995405185231857248867858924646683292004401696883068189273227999112514087938611353763701727423028017112882648135467335162800993673687030710588508053894995034450084306755791692330629838528711712092323709153418903570114989863620200996843247731376436582252078434468759971227947283756231126176599086536843610125174526011847417079619877718836697723650147624513480781844329247193809440553290790727073575697553780687640352738088849801414504094502926511728830065792655563585370501461883194263624467528618580341435811752338443311671138234630870318129563407088740504188982543388020010527366511515697667443907602965273414748182953895554502436424611475800946422462059509640610481384654024424599046176759079813179247034647336022223735733501458637710586058800086129860146591800319310732369265429584082297579706423767655751611845531704259234253214002554099168859828019869773038060202651785642568841718321074204893785366210145520194245798757711332906832225296978357442761992133018814922053398190756379083570173249230661212329754087573763164967712302274269308832832468359446413062569686711418066240269632037005253283228000833814450589988539231235999735506958020163268950326556030898264275004633457025455921212729273419210349542713669624855717038542530691172464715760494573184900934754202951416157975823195749941136749268162243230038679436159718599029720810896141059641173522909526783007526647648565227504429020071389448918087488950239949363026645912003454575269249180891708852712443609378364233147647377677057334957726314651889507335591183816223515697165229182531115377655390268476921717178901301421250971652468071929860271416373064586833504789427777785343351688269186459493010410397428933757717854572994789051400015246093843873324449328239031305749003948612171122298917201931125762101532745299076147220531386426404239284367682686897425958761361791131484372363501680994117736939269297408430676024119530718306740542684195007826830379878362050929828594645768166209162445325320147229980203019811432035495902399708621166026919923039447052051035622443616841094805327674330646880183526404157022375897418028740423129289858676037205828472771444117850509278128882306823632859498748351634009092705217147244688451218310304543327577918811157433195546695849681005466999781299573831051701746782970086401364917420829364170571983698470960081398546229877616909390252492574895127449508450991686272875426596746949830383473243388774390759096541589295191990879582494015975928738902014160887860066220607084389450501885021385116975073943924918528550566323682712112285749416001181290833964521388923642626487053210793415916616625919120617864882041719605311614905207767064903645321614680485026689964300392324701230181907855128134392665589980339331266106869398278174385344597957031062748148916327700325494462025574542382678815981267256531283307496313770559894444078300779660548330456644849405725050359419700092670638981091518590199435729857047364783403301667368761772331427205265272359335258339830117863714672725383215440511297143920725208480549914841243766654416541798832492111080048279993887846965572854977347919915452965211941930978313113926793447304990555166835074976935227336349306329466503224975752697581548518494080763123018930926333239495056659874510881583673343737005187982204398950964047841815460093352666586335100290945075479993428695018960340049516224414334665407588112482086962435940202498436628094880147261877780960084115068245399875641459730828412766715669608824827058396078302337282912433599468741670031275777161400668243051002725006606899712339668366435534728757690495532170109652750499641033541033571281005542375914924686885159522521178987290722626114973158164272269290553924330574423517294574945082532583693583607039527860750387924849351325018616945203592075798624053924951364109051052810975892608264607759848246039582932679003947392417356596987550564383099199837709528669961549786603665686638289805007523067821440162725926441576711897754432516392282891105498377457610964688531915797506096856111465157410933590661091763125908560371353149060052584461880722839389465606462585332712923146662456627427967175273001409028734530802721694268340108622863395967773655239952654438284700695570278406671432379510798946174423767423744550534412353922055177574663098493019743953295493045570126955253886608201331412342292570185902959008197432570558635727627657697252347069146782494474977786486528352752453239447276465134383094194908241301830080705030206297847133418180647091959634738800956866241086688529852373204421258403332192864452959907709217277524965962936656858912694028364237465326562430758632482632386891023202190269644023449985784443546433508600237117203046015841140548235318729174504573374482815906198214560995961728835926956200357232784505139960678305996114404946223129975141676930210616000730051856907654387793409304214120276133226634407644539145749585800604079924383230411140283787670680527529571616682075515033436325345167214542440430185066722812300361845361983747154808776841005159185423184661845627738491587192508428473613817650693147001630901821144155072312694749841479703663301598804453273710416549784214844714984780186611697189121232606250514153035771922213797174651021513514072076541445700821953150284364692706703852326786787525788971251499675358222299109345893223418925822105425259342723747356280119808871083019132572970556931026966119748131315919810658271468554864163197714438556651605891453776155486656935310988918018292738300733662751995396160808895339021989926997277414299388364847481367598570750034180615703623585914205079011582102648231626343635118237863862320271992432910564048076266127412307363400100274558900428683566455986001099015982159122572607860948142596922579485442932719653966964733998891957864225979839705182517026746132363252562179881261701941323880063005599691886640081608918128005919398483318002694336715150354036654705891252402754166226236975110061565971274642809452042812770361353188742433691045256961537750025770797067170211452175847380888809428224019784043892940626217820574300481141795680694121706974477067136630509905013247550239659212126395272290727581596916991494315720231387721839783746723706709264170903937470480226617322692176950846147961388309218408145032048123920716167415824688283275139670819061016589070329515501570880811565887780346009460232645627288995640961501566185706565891802110926452998553037294730792571226041528145965367344902675226451451132457606164774770755721077720836163388371436823936159089407293263306509781315166828210246421403663607523687398269108489678689744535230414513879898282537192814497939579026054532487519017619370493093785571758476991697394499218789671176989952849148420010870327608746277861703719558969779319380944491240911434225031505162994343082028576535638976975870763538358295517113586142485803599406458771182009069838335067719466258206079308928218216558282838231098062061264396168437122292244122860233802402994019157805577386898106688522546773023457580722687076728795648147151845617889294213155338266285852069524775600860040948660497608816809994610950482620486797231609298535776810304394364806075427423514630555856674496569490609784722927738070541099335775240055258544978007023620936102611367306945271573584096602624599941439448060510154193600614415469918916439389186981629847561755974489522491858494185782163730064201655960313392068148952544885580660739187039641990009219898871468580540727746990780274401089081179894573198675691451892982279058732472713242299412668019885912526410601498897126815692119517337885929536429728522556635648860619638034386702366386046840895124306756713935276629750374091758909111690868045549646984195920678961473736205666370831347825073212716783766624341459741126781886977873143098186287468803727897677736439799792141955834949048167446956131304626762506180761111721634839562677271742328035743572738788200467682109200670626005432959510323559434086376629834134240884043824490386187724720888012483869739624659203496715380990264687044620916520896983828345652720235648858012622150607289608744528781584898143821524478190977383022817996961691097661681031111737967565179443550421471060828631949917721211818174024951548443868150586779420464726896984346175629004294821927859064806907634906052794666393602162847767106507793145541964413090318321950818283578586719805326046473678567983919659296464099615982312220534523645937819296971032408674087722321865151293417348098114579100715018644460771401908169863422555181094523968340454655644755083350981614740315284382347620177701379421570607998518338804127328654893238054738494451270693425958816315876990434588435871515751839825374885196487899779094865926567546676302108381742517956499023350895056617836076325565319260037475205335943850747233612111180211929632685979519513973925664588566176600846647534451056618436663625445365982625309879813108236355745311336875360211016196888976298562285220206095411905264185752534813723590181426646246182689953691670502769758431417161221273042450228049642233487221805605849327280530880912656927420023504702032426964070556939673184773640106380317455448157139177396278813976744256395086619336037005391951235409289084143858862165310764802591082157179471728648479824961661599310871058174034178230438768646124924045733572743608865823537608127910249743823906086227635885866001880517248014933866659180555350875537492423806727129644390280985979451548195357311296349134160837865702056385241108386021478289865560465124115170269116878873539744257798271306146917621255370912703034657134402264169670301003460248460611025478566749325249880508932468384069235740295174363240567637537987787676208695540464537988736764855661236935295680430945023270896557011345076975545049355778608426184263855206896153620200737009070336305032786564065447177975325240509692237727002240777770991464012546296549912834893040034535377160694966736549714776879826033376536769894463632254116163298323717102082730965126522699047999188005437688152584541028757246692414004815119195655280905789456979602815492296657494269744842299332550395103619148739301761128253496041234387837573231384857696553311153714754498543228256412080347137193533392467117476764671436870954276783715422245319690312458948666871294910989649741880650870303770222235538071372511232624848882048520151827586265707557230900079886350361379625086438292226266164998951447366651845301380428412629818739618557872587531326172656735555311827669235896728800204279663115192564404779431198612657348362268759472295181502118819280614283006864563643097987648111868889635383539099460046812781233085110961045856992322391879168837327802212050131730511788715175215551957253473172116194146943382131128336039705786648448086344901511982979910988549983087094834749528408274897335376245510907171115879591683729883907811446958216423100564288400005736790948696928224758874509661575830167495641704742929452228787660103732465676029905391342369607852752484951844327407818793453338557469592222929822191730127055811516202811246747649064480460229989484227504011968375961930405980688156656274483150343710862012034734684120884968829842891517408846976119534931697986955800356961045836983326376204583412607092445227462910644727110249839365935413364541965770164367378153484272156899211027277477365177489076581499223800411415978104465511779275123501252566975142407997715614081801114338974645205229595232544701314785056409681714493507994061350756544106303765734105766326031156937250350475449858469251098880894921048140142255013047584321120308604998584810151803532714362851321499325889962555169121528867666181117273782268264517252337706720404175901409700334227357044527878582737242241062185967604556981646892600902161411014828721830368399328745653363543858420073192944874191587068475379648834109728819446728272359453652522357307458287548875375979113050869701545748700831080243703057097084369863068045011122394772587147184570732862543484989373279183718895835366352410461068108158629090221382109248729844746458163666720940845087203957198654952991007676320491535451131793197773708815092166509466713075759041776194727915591800274446227157524785252808900671821223726874842214760987426843597398119749538626593794629839508498020761574338558290021599202818499255954891776460673541244984438618218080395363256162576037156774046847081809412225806894498033484783689496747021240738733850343064387099461040254830316807539411161576863614533439252619535286762330994076159303081245874010597550047553859822012494213906927948065468697944406078222387510448962292292814163768011766879094926925428915820434291003062904647486548604758394244098856119105118134727913305554675956162633726237000342627697745926188057443524748050830115531340073760718864238728234919563979897597781298182261551698798707748229319685320146825629946665019921237882755746040833278282859888591075830096515967766000397184080852468161571302208118444323603823216706669371585851985750240481837377935722033510956906176475877576608586220117478817067441504740478883717522330150002838755372706172274560109406449514586096573196688271256591800559464005564049175521711276892331530890149430586539645317558067360779266015347213651332168744540966543340695803596746916027301123533540939128929655886715893017197344177128437062544964140548788920730083306674111150978755570170217945586458811785828640230883830915186174472558878178802196963361329151041037367554946406305858176747100318352710642570043260363709223268275888144892434320497712304461270781027443499481754826320457743274446061148825667766238687559321646963298036254757199775327858762008284130355718447703423881330308238398233174554268186968774998863980133345146559991706861423983265429271283741697661088236894119287497833384186422284188687237006942326482636040110419710273062531085375593536953192008153742594485231928543502403981419166389517362504198766055712390772574273632225786264982448940215050611722521784291336609011761467343636946482043524866992357070999722368241470632402926863561338726812874550658419845053707096423827715870777606134732595363393020331162575887359068914581497753421256083044110147162827650267384336365093799492532582034494393780158667928901032446107679205505890021656794745920746265092971481649906808283426406686550500551131638469537114556784155391033801368067525337852235174921707399553588959014743368544629009740351760820105911222912299094991391075186815814244981451179898090934168655150508648136676324703218841070022191121443687936945084263240201167740577061920729137648859143792709022434154567572020492351564702183629786881989919971363566484339546693841048452124172406315406868844590748380066090585139457797583891013167145992094936875496635878986536993623350157870429033541043881339119769954512723183771809278231943550927716018927482889056040926320819779456741232789372428131652956246150204649983288463438172569537706677688306322252878319808839534847542111054932941520979315020840513808813886149068685306560042735231182251208158675719538996870069021245360179251742907769582701093644744406751877329014960687167949037257003365817251546629350417344037518991517541550217582320960704129960180619784869164936913716367222218325658037104756023533797592325174012740374303659903060395174215668288345340757723497577453285931515837198409194094600373714651474882547683835210223898688939753776059023048260324127838731007752269753740994717755753062156629356898778455986011090126527716092480212769321074139141110262879287378068480101516643584230616002676623298962014947810947999544290288492346002904710948235323764551077092844093407334149094354652775717442795905964918544427519579265462927175991291825012203058820815566410251117445249673056692910234444973643522402398166761006456151444460849356751431975469698083813355600873568879362742438212808654000472766063112599438453398867549237814887133247687104683474629399853122323783583138776776071727076104483453432264273172702763316475502679535419418146945883665464814125414717787764661835865380677098637079947812164889783020539345112214496985791538246577434128226768169890060143511343147305442867945833253005362529556754456855119731457457302622058282730545863107872892915531792563143478556344789160779321600608919057222233891098750815069601404838116771890883913264882293362780078583211012430912576425957785329235253742454374560657037065708865682588192955800058350463344214148667147324870214746301025642788863109474374969454606293472149652286441226215745792437162006346786867265895153008934878444238148967223227085822056974882418861627596531293559987106589017664743883585348122747967515297636394953068681952139556401865290307535760747418370472892448148824475520493484515300803075957826216961171002520347827610094428617847363406012842351567590414153250090604621257078164764766595002915762547584420734825504469493597443463977610234139921950111430973315701968071554062756617129637211647321790900066315805975964707971056052078093882268358123407636836931289370959537026544911841541657769781342074366943214189253425356284816538171519706585019599146798497662033093164525830976320649549047423618672235526501686705952736510486395874359674773647784873696586869794517187627498307216820226657072853532663240318837475849837181213260178780934268538445961643886682918010340261743721169608052760532834713188119807695203379028078008368718411355555962655530271096670027285837800463847010292676253162001186002578159162374994375354701239434680020442289925283030996128624901860822240049776681539095891751718866808449033667753369074022335018265895970054506496686928390180277349923548557715620601805177568786894750682244619283375460053856577533431369183523533600715822706500454679962629334452742210749885376567828281565702720400774178419913697387804463636824553855267688075568800941000924506414230696262001994563869106400229028896692575191657757433843095154104585481691595253494024773682057145650264444160690353538082346529302311608856342126274220942654637613587664377527608879001360086801138079332014533269360569672118586969788715820932815361142282375436231860440686628655297970290547044573609396193131621261365874513144182650611183529662633550907663371173517621336742380830954725065183483303220623365410049036712910817959191369521494922699167751163610991241582838007197268417199940134073897126110485895285828500315654991467245064926552124760648904841419657436499982241385708790428916292851829406512814083800588582478492132924526392896734845491109593993080480519866363440371407783336613653117890719832211662594864649561224427055952917170525815018692812586433098332051925966178076730968533823237066998661144301518922470290009302810709675620039927111545272740205871215402620179697560579310669965690512010681849879655417918292298481715010877109125788144174763406806872899917768655235739741156561084549699311172910508203992504360007075059229702751555606722105937527210008283788312817987114536269142260163522601486486291520097670373870442627224889234034941096578576490311532573180594479693904873351950776862128592114477403801093853568725884007811513856013327053493855907297227276331237313515388979546309929573470557645898273594100748631854316193718978743675204316314374979498681158939583173368059099112951102763079223952364005785072327614767853708207722625493176300728002742861215319823154029725234441831042787468159058359985932982858348293925162347407419971968608914834743086363581015633219901122156159111529527602066450554860777095217641604685697815479706207759822446365606408109098640731304650946561126337633581846691888796761630143873199553359810151741067529579517688949782013868447332049972896629195924366160037681088734471899060800677577113423836296146341821186802245566500712200748535714274934902473185376912254509794912582358412160101641328776799429041095604833772127394628168055263052498966923362069571203563543732828364267933752563872404237249458613652484067052665626211041991661767292264012818629935582068299846403112855997863831639845534313295298134978300451002100752441574954700039112017200313936322456542819540639451203018783929962039015046468201684936396645158123654762816528150437294389464887177973745652404058222593705316941733856254770225684257615138921543515795962968972751945628692171530061684575872437899954775555040884965691328509504242171154621787893274861416183549846091776217369733452240970125951801483211449491724036769252150131706093735404103119270424640386870730057265739702102208427921583672356430076107145479961773077354518975006051825657209593834500424004181861135025959880145512930298803931910915355279450479388962259320317171379160196030455472245142858501222324062383058869692228503344156200195763577581790347736305102565452037574026397302071033312702845464425454714513539367193872412486653590596726185236682021456482680207340509261092605546168134645154179633665859030921578850728617081045168771210572566304412219877286554300534724606500357977912978866525161474863829084408791260432598377668400494973028963276046477833301371269752675314766944093606328407943665284082895488362127494838752694345488252202611758503368087632012768540987698942310348315313499385933190271142950764821835364688975956301004216608995909532902745347757331264343022608335194994433943256229342771177561982680375756574762863818691563722191737722646937979842085944259506364320790929882964846800918583574712049575563707307042578075201153875524922062350824526484766142731009845248056293817272563218445323358726813275033028448303381131044137682162379027633764787798348393812096833772188928169322680890985093257379903708304574604340053354633481392136113076004017112860898470530407890064864440506859182684788770398005486602401204545432570542112182837959698384995305371814483464121402249971867460940224474055491563834833555311991655533367599062778055569167324907200833205759029817166663701079062842579576308783904791043519223291526584701773762023260245006029873791156852776974120023283174116143282702514351158810632299243216887701368309181480737214759556066049476545628855723747237785940971229074878893174700256473323555124241385521311797148015103132027397307519314302871557209077942311001652815025330391440922344350163037780578970040905033670301301539936002651120454850484510379539642628628868633371806209070834841694067745598619026357412845630751048754782849160960960506084541455388045015492866289735512770838166061288140638293103459066850193892931521886603246822977529163539263609712723305837102106564745421463137416775162509282384609794007583823955031677368076782958269830887726391248335788843671758165754042252993865443208074532194961991420274692806220577587645709294063398856016686072556566430119670671179029811669166200168069563369753804719473305844004958503287356899120542517435865961225190439255178330720725792443687917288216135136468048568918174432312579509792307585301036652395957706898613806423903449135217303826333844989334982950658748020018532381207246949534599711592249881489312059208847573396433919231103732697183231648098696656258232275644946275804020298589799775893159731974062165110743091426223021537185045707993172319504815559548618715368501016413111558878791265861810010492493156905108141893211881182895626244657031259587594394630295367223530631385847916137083416320988987289928881446499812049490788135737154267305160997612800177213439415720644593890782687137914329698077337906682810883269548724179423300612344303117698712447115843282900453604302412677276809908240555301837158807381093777175335334482558948218194803435351947231049597224294156070495309501504598563021946270306570366670242357633000699162055030373594880123978768296679966197126256289528988554063165594743304331965130665850650609878619317940378935997372014207183840089649751122007390694518857379168002859111167963249421769623941632859334701505005688497197197010369547067857011425331648152261057117681828389610370321180117591199256622949046582609241007601624376924912722846573494028357793361718975396238234434662795459638384737889932184776074942130919945630641134710328116727082778991951670177755042642783527258824247776281951829136985200127391502997414511142994407602225348044975965012396113930200581594953384774008950626223366806176641973820591058835110387557072942474760950098719399388308219411538473636482682372173633972874443009375276772442901597380422504553435022694719694165074710605862892002238237235224904571540778071184852574182534309286975689818997532649777318238970231719254529001950900644408143571446546172031146517024690238278853144314541480735352815039525296325321184436856673030071698420513782379688020365222449285174367650299193762332069985274980372475798508980652842218652795541586075736979319095732921889222928197041238336460717922396442476258413378437978479490308302739024551618323805935524448383816263872752373503363940778659771643137054240386083646420687420600905758732313500073671875182786605331415545167334210031256298734131939650892934386274747566902208000576724697949039713054940618426506455331881848772997883872150114485704169126217987910164599323575644830020734386024334485763253863862154446738387492133256594966400102906239269072838130029740289293777742306617044047231889753736126085742249124267874878724384210307919618742855083448276994646481915556485458070613942136599226728885147177444423569292957859260715947390402172747283272801940021329157139166103015989209770393261323247528286752864777540279276128456145528045622605279321633507836199125622264523549820019041614801754745026960657423755172351665129184808323679081074388317801476467085479442359342845058565830770990818821572996351360760019810236166887404979463212708333944755566671615835116256668356387944413090861169221358247289884608232202324432425659938512662284268712140427765864099409905037529367574815183678746501500033564772274365045876948568956290779458382720083952328706065998234434222509075648923567505184219246463285268384068407714794972609549578213227803333899073029983819400972131985613745213981961853052265463309626326220284491814671845243008155502963288487311364926092438294581192046426474014409254589284000815872259928859115916750244540990314696794297161733706950525917287219733605974302688210008613098144491516781727546258067446276353294982643780340707521971936392813445071449599153067710901941239523523992178111097470454405313284457738148165836805811046396760024469022029584771187003604682261166071436805779979275830310206826164161699897954404731521615562771244065767357571357455566288092158320841900378220173586158388274391893322769558598595029004076885050882453579997765671612994853797763345546827116478681203682306647920576989729202404881740724715145428745480021387857954819417482904307032557830875974260354519259994917480761003518179413224319761797376985406882042078380234421087720756774783720557651081998690136179178340818427533656422903952737396455092153097298309743495618600228427059476967173884353770708986839479163477468111335010360705828534312749965810302824758991556288445070624435597522951663007136870166610529784861378891002424089085566509816826257750200583210335903776537641544362870703976555838042672482978673813044199029994207196881180875969133216374581312978241752790840413726862189961770245334439467122931828644638746450151691441211958052359068781975600450062571904225532642576786583333465972231722005509647906258627411211220861864010776900668220809769461305362042094055741391369272193382294635645426942537839469863659050958645816001650439484437015026291666331134564167604362451225145395000001783274460666636191237681049662961398854619612499452594374905699478097648521769840004597917821007466406641479178205547097690822067290607329309155307806669276624561762732273400528249757714493607869304776724702022668755474405876684767725256836710576361874514013329816444516348524586955779936322105322163115501382980534498818399427268969476751154784815927140165853707912466066413297442016399850494251455275378781253078818378210503500943578147924690267504797432719671539513340884424944315330596331176570564582546496566734232006658200004781449427852294744363811414007590964897578444516005200247657258162455894452449679484136525201169664694871371853929190719680741997887307875093679484685851352634927729540453647388329007087829796725492471810346667248892224562577299588343120011297083318520954012578399689796055860333498416668548125815853416855575681372526054670538210727279289622986760100918708839977859737877118339572816963885603458338007659554802158273968809949157495340688054241765943962437748730061003907292898808390065917677504582842024071624496563390079375528319060712485196485444378853944158190544686531006121906004315399976734544823749443393392810856931013499518924790036945380150997507662419546375785508916711924992507915908909466200329884803049598403328494072972656211568395656090025064864689812888411360245757559207639485296909762747289617035900324876934476582010837141522127670550413052018723985556801903883420531873693675094266525055681128880382119482009471879513762489274408541379973759756950471294083071882175185007408900247842935240250562595503720130805319877794791963564783525413862324783965279473432192667221891961188487508579782233034633276219223837500949454237531669894134969416244736453709602049939612761447511226873154537415814372137057463755620799018291739781286902455690396743473143419952257338268210582356833753127323579402823367880557673087753571623365840885045072868040735969016189495425552655507502314776537144963260247911361607520722744169979916005976789456210020242536862601768552118338782756723426893697559641150379113360057660860038623964367657269528844149962113316360771292371686530371239440039006329154549608437612817444128984590872820415832974629599593786976409219145056118197674818590958229028147443514923619732827453413676522718206225063581505296840236941186108209234790245048522155870389608454507718308738688746755436271192152456659120096936062819561846652278234519823541969086074170661025388125390668725656078034321673861021487992754385253163647651995549249912326544490699557943240727656631619532176083607623076057039737769926926106282603398570677893120938526338836682145331994474620926755872376818371792157672709405755819732307697547820572446755192808138929167602676591303405788974639080525675107924252989324998155936869444377534449351662570508310505274376414972695307761301024322506645278249587119569550676027207673352136303134822161220723135461481995851156567342903152111531738280280984372193067358236559975416590708506204190422886488249490249988944910568373259798210560296485808217843222625060346169636174004427389538189011816596476314653681251930611302484695844082223513454582831440367443900043265085653796487476458694086391110202376777527117654953648758826235922581614607429209311591128035547609912656526790896869872333682574167876824798071317716494047924447595600054221009708642162498636732114318636719534275322605234673867295251609961154083700097594400323808409260577732374904506684811079088510019540155727984826224412449135982095339233059399316648764815125459180689726219982479005530876559637963488649442933505118312076711190661699186526225093583632019173590383409428039486001797828082111230536962909373087395910371283824770146576349975616540268680837530992524361313763456867100666352741889239092807895614723328005666843485352078557071634687161640033925996191836354242062366827338847621614766442548520864588330621030886407641017897740266601189380783560327126205720198538633348145468179580615218164143242020294698340072474648422946060144015441718792629654146644297904306815451159309622380418219544039484210481900455809743013180423458251580066147405835364355579916405145529403784658351114140284074815550680531950081024921573094656165460986411359990078506346573300930775338924438147946913698374743880942232918148883855777302931755898945066382208641886292686351930509966100362754199875945397399686268180987816604854223647933662713583693826484197249867961804295301387841428106225941208886294171755212749245248826011599533559064620676888815995904145856698448086710223620021500415671932010808054078379318544349414806335210089917589234497594543557584655203999461842210612318821063147541043627317408632854757855372005343523911484134551752960202410959532589632101998550235388647539093326878432977096730585610990965500037477688548405101628684070377475014365710207833225372167055631256960876787063194106047239261693027838392923255891184960367171264568450422121005798484703403382761566680102783467797112192860862986360761936604091196781103364163678747064270492589080139476041101362439301756663343774219020197139655491946963549436390406853456469316932687839444614793987947997677635007932578211371617285287048778698434531749330089114153117857874422716988866857839291284480030450143699570131139671347339435500359134287147302267677281014916368454316586111626131784103611518055590653594785766416579877428244008058881276220775921778650841478003259119951651292686749593979262955143723983657104215404224687304340330078707965225716481233610785592826634304205359260914515544936236141461084595101767217770317370549214559002203994488690599238939338572640664650703382655616174074319309292532748899238032684840379840124988009102237728605704128403158733005466709338210001243272893506689546999026638912123637943448066079788755290728247589936588053234101098299131602843944826141774441308526087054220206261715805811647580861483056120494653953238671585010363076284537314133170957537774735952382762713500848142569545741664184985673818947970936263867550244186512846714308228562379626791161716296003803779040399814666145074903420533664722320855036211218057279039775215717932144581255332484828322636940183921967774631260596543057049293589464224914323093608191982727472780469607136020914469055430639895247558699654914434427716683827210091462924707684899824673393931408954873565477410072208569791365925555073049518897012779353030372790944065975703890589648592411778243246462101967894145540292272363659843643690158815264548348198115731882792387659980296644735861462182962938757111181537541376870136674578758979305779376505547966298886958518017952146158618396792153134384683894155403019337322312515820423891581423728895696486263634127019967107197370344523955081021858114686359722927363918031859659115049295097437145933853577502745161374039119069192723715803242460981941011097420502552180049797658450836164429217744607918003517685431348030083960482021224870230257853896361464169548170986478221989665125855793506030899550845165789939336397825667120038946208880117190331828836709865971644526970574962718600096981741684454781788168916362848204460651542501186269351261152554046681919405963920454172037388485908972401534500044916723722392926792585808762759553908653034818625873833951307962353772460709482004839989255048674180853381917853784289508442590722502295309934167775296158666745685441908849642288061662074830832668954576384182461855406575035530772196303057974281065221311790201090096301869245407609953272871036261482296332023845169032241020615264029633804068148149915684487289478404820184618583287482803329687255348496603894205970687490252367488768521847704148116340407870120407522558152490074090124426821674126841868124094721698028796158776734495874525709607514318615021866688407745359819637635612595248213476760828954962648750008575044688589293917913928393475206903728216415437087224207516797452443332011080736436167041962146569763217393391812848770662295877038704128091405951183318972678180082737254123364290609947837421867204281577789006436710530496507825818926294189420795276772610288562108808659569183743383582661815711068466134953458343240099813343225900757003868584878113312203651529655936416719712477601182142162149759752983002563704632419219497216925765359389797794889457645340789509890290853549684960904862009821364735975084233246821486163041355743610931411025526715802123331547919145855171275274358277537778563684580320108625690886969859804350813995231537952803582324904747404299150202107608062074386952173083741658391678280942294893659402533877629591295534316301644806529819641964942898774979080841248202917941189731349723655773267293085206168036683333422172301932524284429492045830874122599815130776472630017085895378267083470777593394208771192075172368697469538440551841396934452296847558198563810297849570599080181049664253469474305114191957582208208167280975146225430553208386154331579062462297754836902003684402808118670599545528818054272361144329074869216355908584505290779180258412576141950756397898719582252812655329786534933138388589176161040889724665843384676593248693934883847253646702234750921767843925055305572141226499427597157005159543241220205739401901282417554074548764606967123210745460261295206947458023516507202196844610062894900595563571985763875232655024347071487789225687420563160242005170991850798994519705886440168711447918772823230628037460105340059332240018248296883585866664220334011474954640331951330604550265000524730915188370038959353974489958086735851638286701512176643670298959718593262967958132802499736410004990049968464459922979659787392659019773354574998308593500199011515043009921095212067457880063220771793543729808626983414172075818113675729163962192705555716695447059663650545033111717163298122792049856242298477997414528781141708730943639731961950563133370383072216450898963941396586101112926311683567700614269802230408446464169324840151810703121669978358229209754076870590007200877174123035681242507892294996469143011210598026979967796026892896408796072949004191940142333826900363738891062737638575073716019080397939675588522584788161558705225030099946514924405842867394967409695182317504199126919009110370546213738011966650167744564529941584250289988312869477406097480274965054164181534049104445953050584633791723338104411333319403688186067490209828129516406114814233280233160930124005686593674329032237539154050772626833718095758760944041542491132253387839551784405779955993728070158184224416028367262595060608644774462063311550751178792632490046924085172861397015096715228140760856015481339450270107759477730056424436783148676639774457520709546406350229589352323045375918120674757610333328762063327746286102019938083651008276679626500654674055702328003191363984723639704721500248755476500162508145202504609051329621600483173921027283233621340930554930868259558368826727922583956981781801544201615159946333500056594978072774877552311448530453322932263899771149420241977744986779522075654738032609186108170682679314677430220481835785120280429070552761207244693853670533652736143024941753704559420404863615859063440797291118685817657534547613228914865445311420795100676656882873594028316270763132005523712195342409631307057763022348831927153317445128913645184127667765387432678589860495661018377807465289317664521688409379568377983253208354682464122569859515632661518360880038109059840862019290173110145996001897130284373241749848126483351894618838609506546761051012436891958769046550780229293582009943730191233570485002526941933979948365115443041789429650702734346561609024437024349220795986436817091374546485111280888712224556511670351752916079736501002431875388701026597651486214950669962458867865111112620204387479162740907993661784000037757005733659587623022662136183070565401512194573360318575318809518536861325100796556084614280096301575862200303295655683306585977444099863375603586568594954626984693575210446607506027546848843692536906415777986708681745655727834868894458676732530725131716711646524518181448655487308776764231446885001316629871300826595088489731356730737478129468054705662537617397151743621852874285091611822299795908050749170680452454921973411260560564195705406980581983977999480892342212359366913761520306707426764407828165455475366526281758614597926673451417961404028140952232750194107038843721581961355778688701794050664547087734036472027197085856861017894790674060804884746063741564813620740828221677843680467332809046040432506792422193489200548915575098154916947622010889399774613746405035896382371983922375705242645855119062150548914302175399479381908672799656554632060726010641326929802619448535020107965482120338383664537213420566696243186446221194915644174070383313120632107248253876707072765119141489746954780927862471864139234363446495663154275848011843017688072891362356894114607048877042894431137962249451406948837491415535381915431823535739878125505331658936351159795505639143906806550966498934886197275623202207649721320023935482873008024082925109620979565299777589376842415213045768996591928809971486034477814543026920422047241671733039816265041499604055876483944738981423967408787295662212123932708946960147145156270968193633016521598026357055923611721868071497626601303329819023775501543846294257087091297588111061984231191350103905790290485761707608421125602998188345771806751801356018455907323538208251798565251717340114499639579307998341785523342991847233376993642874708477738923366321119913347554880272481303219683166958068782311628594885902149790174732849116800370622091821016948444187500324255365832807076542736127894463022984353319724153998697679082722631049478952650646771730078211750556360271031240979177439946881911629836679196248106073863921809246045574610158778546749799322963364435840224346100819436439025302945123001184919041025450414347484011444462415604631953376121852448889857559039622400201935759124789432348071164955912836656845744691880869783500641855093354947599792100049812284019492433573669853522215917017073739740593748388554010319806038828040899208872019854708512082258123447057837358700898865027135472884143098819438517959302406235326749345096119780718764956068894284022731249222396944335564372850637713094478533036432174544644581901571135284727825206995684645069838900585098426384579185326233951186190602858142372951274736444477430338495021707076291660365903935003557899709950831000129378575839030091212212270272948699701516784361759010265241202067539910335682430035637967525740240982085661844798304384538497039338503664463114764592681736510448494715494575136616778496924204116187893044643838698076539224723554600020724543973075463239510965992295035475650899880081605967767680812104348821123777135061264088328874939235633841456096837302456573460430340700557881229692866781936092623795224000565718724037036394978260737581144616419609786380140387991499046576666965609071167517033391495434090576262359372944563884231707414333621445636075918302674940981644068613159251465981600544547064761910894416869518524944039972672314854729233416371176585077019767419846059996407848761703976795064187867622514653589975916606922945055130280150012775708957206212903443401057789827180673575236567280799981169446918020771248942363232076467294772782608090572218894439296400418194404505488448491092579313103906970847101092494156842539198569182679951939717288336313516281578225735235801564538043107492693116875517219820438302125532773768356194270260519254050606153385559708329580336053007501541496757388378174428434204022248563434478614497924526077264260409250139543290066433953504183417371498121628990334469584221219023821382490345638141984434695185455341614998291860780038058384284620156792394135483859954800577144822111897186332557422124543847325629283353250564373958315169036327913690636953412873365718294943310427837522024696524984387588117700685595571451500565003284002699448541361220234250959468514093845344649334073565204946437927481609136903888660634768242483521376857494982520720740093360910719670950234327643479434027931949821194255169748697637004796960613519926318506419994155880290458585660074200605091063442346011477155955918628968411298375149218976302133975530900499594864675069215946715059684961596054048610484145985821269487877680688137136243167707574802941962097900521885631210751050337907661596429322403491481800674051480692092933638993321381044004983911249670328930955892461905387979871080445724911044384541217414002598722111095909315744670565735341217415338366673401865858926861182398563776844237305772311661460980723165565577845436143388863112150861738343610593241238054451653930788956472849245548050115446465317024294946275797498637550387240320795798638819463527464377549469990505519259152068398041695998727704347792839343210811964123885162922391768979248724355343086230507437026682613534106570452442070251984388346840326722328958954052137145764204516856927571024754764636947587144537285107797560902379468373399224480474798047085407999739675682866803829995028174548897843807327230784805164608826023360444620969430221459688999463789247798049519761439867521442499305489640167173821849272078162108062339298491881072221598479851744032489024795192713237069866857346959367640989930353021612296171157436487089035890683851806692063809756623637497299730857948235649064839208641764143857736857688075144444611530028281049844376052717285457940873570555629078953799613712857241649091422105357295810544115054183553032203656364476728693811130612410406777185911635905065342611604928128375256625469312894325238939176171779293331280568905737457000232187402861618017662924470722638784754183670866732914818229226487964631028869244296097904361140543656374902195518491700382653920706932880519423756787771826599291090364055608608348859668278930153596231158433717712371255486439111825086038141868671131721434260164643082203595613069627570746459050393329658060093959272738267683796586867763191241716140633430867752940953207303582444219447087749834778332354004488976326243956596872647712979217630504012420183865522092831668641522550306892918578869542679293202411328331557830992838964421716026146526474820535005496826433286103168824583354332809530736223713612975862085229740187549151363718405589786949296685621858665133561555872067253086506916683122674520508179715797717315398878666327319432959858126093149258941724124887932044054562175546853788448827491529034926211558968132241063264569967944903534435393627412407328586475945252031486345869548205562602642409123458182749453509125666909843483232983240994523304894954829418095917058354502434174796761371285690123198431596160471993167820554502434864226751134092348047513835705522048266281423869937674811464860010548770913685201279950610204951573189636617843928271514735483657794982839023433827887066666989757495797092782941400098839261472267264112840979476860490246381332961515202904051909855181167634376110346102082354859844793083791345144625579496844709500320985516832446538235321540045698589662471760408177309004940651804139825291785034885661793653395572204164077356394817387927350856571166950723207994512577602987942013528823064510675852687588371298233502579539186840258166676121799658401305627559526927399370234452314088303647382908270224093518371992836048164191978762573326530162032495129444235623208499134167361943838853828375789881697442156866179488459581579345733453169491868687849142002844875608428277965468803331105142418737066509382186272316901625457243517186460055397502197373292353440081106788422480779946431298839165109160008307293768640954642906695255380860208959407495166191249480652479054915064647166587675848382918915870980411489392722552013516268227367743228862480855560781742862282489115993947215478711942900312266122090882782157655431866306106366271425551964818546826114784095779150674488888822516950026323651690589036275831131060814553692113147366744814972852989329059316652931852639583701740763857825420203940212393379211426614576167603102234088203198832742308224095619818161975470023412552358005090388398728526629649531050139030745451573760121373899172406351159259068231212585030556203883669810087838176383565231133910817404879098240157660221983989961565742547006707760086221907909166978968815208426840047611800887690405434459220115424938794880231279812314951315884611364185676105674300129991455256783794809847803423263354326123570999149612902856897051134447072566984859945189495520048983397474627923621271715407378756329501936128599945251235827038086227912911027777127059968626278071616441662480049849053994865391148796001276723781195285651301941222866398989844115630430761635316030419059426536864517803538078385293047906429268632486745730633149190715263959008973702796969889815575635650541769772530940955588287623230193172659289489510177991004897472179515181943258347636511759920688621494276331985854135252686161484384919467500581171813471228827588540432299189179944058057527021154126820914461044016879808079791985982076810118213952042353947276859924816958061673610904175882764224156801846861842796798303127951731974797948762381455854956280300399499048869239435917405665359621545967562428977201112520070701306122638252341306642782002710184924191134887711757322705573780325321442368241177503602657956297681510287965724608676703542541883325691009837955033127913654143535695298320735649303500576293169468403727974635769353016223600689565280245749927286192845075504047123796299724557438454051737516794104805802951136492539325257542952986779951540250321923038233111958924096631930610287235699682909944158768135637854485665709382345050141148498353522508168246797859101399245624309137343873692424082649587723740865924140263838966501129956239502475689449056503794223640555727304477073370925727858640019559205075850000019761599952221434085469943602515626069269037915300491656413414481000739512664341494853405585097285294966435192166810511205638803271029384902425307069584783086886715653840872420836723501669433537495297149684475124626612841065839142796347067674476185891434143436697937939076732515675963684194315282251376812964154925139924822600686902773560393371158295154454122163741759954737941329120409878690619721463669947831310797797710281770102971817484027150337680033279734264265894133228894926512319455954746570407323612743066778549159767557015346167606118281923767807942238917476311763860011184107140987700833212974532286670123807518935912807416985416404935008349267976187545177337556259252747693156648490876559226308422147812379191570455442303822683821601211838953394732368173992117016383836384312948006241548734897063401501583105279336982409043928621036106243699818686127972463636715664601723482603780225250490026921204646109552691829124892914152046630292751227588394925591296860016828739302967889347161880511699060461587111927904044819484212966295966862240826520637645426203056978791858756399771648143349514778816885173956829219479413146856512718195794442790530378208818325374854369725835691298462053004829308340868992292196067891164590038953027245284938319674566462344540823361751076159154637690444818308767795246538019139442754778150807421734829519390729397727830481138330335137397138948701216191646897598267264734188266181871566775584356484553866880342934131887547967685613551410293606120591185581369089812277952372888735487890850181700581578543649716400463617353198412908520901970246545581116591630817140165686641505263604281951656030314693304230406197958764422438213049872082134056681414961452679707845174984776701177283883906039561051576325338663459128924114961850471950744024450268858800912148794303809881175714552316432691996862317194334080164899029875128813712864865157642512555030676059304063331719846714389127071616129069469981787975399353961959050826801884830325099922370755656659097319557117525284478478327311451170634784869229729399183286740850026138082282853254776389818636008941675628192676470735568800713559556075907830452550005278484547257785135100463806730652596685351162619792680500873717428965752513332055079760851020668391807249424597241430987527843631825469276404061590251168373743813197926719674947138112037045349882703939812538558406370294815022244094175267707669656500272598715276934413335950415677126262427511424206854815442298882379253447479605652099353756658457601587554173735418047441930419752234839125580920146095117144811981221020151808962056659173830634942333715840731768287210263804390194143884406338935020781584537221171363423913009102681747886113366157735644744734835842915565630009157876977429490610281745749132448920797846411518558958065717662538001527539164491602026201249526144589187148295934892726643726036747671020228643966071592647946316068757917257251790094898242303923738098449279109949885138348368490500433126415898673806759886577685571774101305576012486306351106668857233402293933422680500970982852313909821643639803072929652022414425330257876564583220562845483722497688708552552811956461955896192886186478243818533154182680482709180815208193059442540450878318862405457296278878446986885660548244202160658421064677014913339698606807479823644938981903157462983470415126070503337170074555186798884534914030017001453688969182635233906605564716362489758428438293434030411506741834390477816525589469756913778161856508686367407805662681285349909650012606097544607300348654745265050869880520255228886735195834331985329989078194118501694874524581884369386228576881326616940208657282063243986204151123611604185565089218806536696806665613549753807788306979607314211343879703651491108760670730436782160467634502686052415155188659079395174773573247081291065048945072079649979157860934174117582486563617887952984296874636492019256638551809225173240794690783263007474220087946642017335188819538129293413210994571063353212213658061004399057229374422058194742769505838016629625413260786712543758982689320616346381136417519527522791091211948155480385232727687851947675907318840036237112679923998463089096848538283433649948023981884840539218484415373953376869928685679265600012605109518650477779779721457298041399722062852347888106231394011713765847406575866016369291139384852901685533487149795762023169113230006044614444023035344206706724724416233698185328994792031186424260347523718472903972450453011915405723464587701956802886750456857102588797116933138907709837243014511973750552802088402232723464888138027000659074747642599099401401470327889970839281792602977411700819989729332044028768427083382166143721752755682257665488189559028529357824856908209058211107260963081948369529474135374362387746891921406961582028542504392233651109206218290494853047329866802589156859664658297178687990768104592289005816670501910626236332680408253611348477400538857041736587056618871922850031720182050956294193352832962958933080729977660382210159605267495926625376014094803591200488681670595626178524466219771605876728775192718570515903797155956762335581934043077452097016092970111846486919103853805222797569268513194850574666127674861841517221619063828528307168241282097362540612792844562744240114719096293191910020354185592022779923141447025382858009762778273069151958370600652085157360914481147208612356122729917278240147289972930739788009113311180781436205000361833498510684115971570084987809250929326576961725367841049166113347243216974308657709487103024664816156050292869768417056613700436502675571081149968576025264101126022834224020687276137173262928435186868557406762197820138887928478105876624158111484507619919574096618709586480468808782126168300899948230533391257204208313502799593957981762592267113025159895683559246413240755967140195409883339488417659534169031173460443429116855857180710952041007250759615766663597101293095022268825449422547558987835761492361867666593911603876699728957096844631682484987146649840456595870960708233686103437786236495470965934525999264321180331097358503886396584491488676902219848283087631459430156561764781578927808552731669207717924197651698425681810274570312792392619279730527746027270581788329215800567559157977571121431058554414281903979086214438568440515919549278325478682255880050469160338830219811238458629575219222324343635864792610014253218925530316429255920767133815133832984895607222680728966408969280259369587104765820381105591523633308206955630890130072940355604537189150790118978183102840203201237685128051816361988598745192331863275536878995198760585397331015552418364722039405923533951058493713108891951583413577533137347424084807053912608553388759020381413793783075908762179949724411430874859991209704215671224883728480376448944963826888435012567613494733301686222445525336710568741787881097579476517117495757262495660056509331692755021067279682802192516408904178304561711291460426854072161252593183914000678697685964392042165514732538268707422283389498615139412515662892679294447787279095617697648615416158316269173752036299625860866566410999178017102317585579393465508643881406442643766115153364151750381224826725989246850924745731343248514822234562799428057555242944755400839696202474788482838085458786322362422381619178069967678591044159942577723905982560460812556401271836304106353619285179017581953616134257442323055504224251953790395747513000839166667541075270640906746146033015371335458146897276817636765652849368854349039884715522782954771389542879352046969241402037891160995285999404844820543676329033863648601570111129477417653469139222259309882904710800955767860917134397556862087703354556290548235234897647113363966269567673353379498101564901906175576645164141051178633310128142741668664548244243018738673418619280743170772155919648248917027488702625777645256810255176542337313776911751611585984816490119401480903163059392930850725871470048485443213999358352223754180531241000529059970934936520579423130411603396440943726815995228769772294918094288640390803165349750687777611943018292838045836446091540358793757755079861425408395769510314609030483651630874204930764970819752770362500612224725133098957622594449196517259099569443488889515763953690547097918241721072899942164475457735542186766831973881714809538290932606833789692107218641841470568899893965357428978981561413494397216156295678291465941221386127209544429869917299585746873319709262599112711568314610209904363121535691638180724723417522562527984380963572484623805262009067319132411938510240986652316804240767614134364157205373338309850390108052477849211447487918898991911818629232576942793610914893767194988527195889522657839805711597213024042279303197189700862585265309985086101322803160123018970309306295712445192355107854118487571530126110065639360077845521419205319103956025646369700483761079075494846764019177069803770783664967948792918413033728211495198546686791294838464259627005046203649620600339542786367116649452440170454154643261097489085971148851241558901995608260615811870854497873439444225107968703037506861019464377710583556495524477616987547233378843602403865338479254229967279866352812196472498493236209076792641937021616703151984331315652483470809506065554712791690035799321047992010979854496134120737130853827713024632735973164055762632438667824957166334295504577018437309155481315302052784138334819965900672055641171050674647436047360912529079287698378340374580209830854016547633637916525924733426336585021894977500275164203922259058748062441778763028465164494295529023541594822172823546827931786131547268334278722979313280618569228495795804980124702216464998919956404793241232885754173760182339288845000974906750827978395535414654351426350448786788557576617168818512350602107171257605042956830691832373532843012519781621189514604788425856179923888497256602394001245606845744802583655050914476594075654079555092795414652444998457483412366355277006614590968187765029208804021908859744422715442395643110905326086249198592929100408719978607409100083076611060274743201874477422140243356878969298567224240952876180874172588642507353943764615250332124813786681975034198250168116547091473554867810000548637787410015778670621033752128733845467212725874945108159977140426350443707406286744667274329213258893746505673064417125262747826654901026936937117587758461017073508162655701988097475092932915285881102760277430481325250341898004499573824182048084473686459648284015395851527982080279543500479995305671697226119943333462655451649008738934033584418399871910012230656599973963991255129361684899037727928195709933608349868324934239939015963034817657874521002434730778157565430097393321341581325265991239143145548288284560593779760867977371415114483157506816736175363482518516221200834642178324587347389837961716278762271153088954866237553764957926898421244387291390728365876641503368656547192451575469312826611601454161805418796302433247563328052824571439852570300839427101898142951783171846892357928635442761699060591793488565619912996845726701331360454388347611784427973113702848481002384502948836789681336978580485803557504988981900192278741312366101499997280376592474880699956858898002074378569619980142151694916616477526577681743159858737729979496495901361638703083869667246241546666316827914429734260760802616071143325640632422867154147375998598878291361797981458384241309940946832358842936982888479109723325785245832148429855591499594596205357095320721766562584713251878732726478857797305136918562742637984598734573092581756408924226896051417947509863200467687735243276305531614872080861710734019962685488769101710841537413420312147350941072914395585558586665032984835012103104275688010898856641317463937558054451922065915984810056496785619026673283053018137549039761030138102892557484478139963186090520063798143115330623971244687370626048516038145379208857001075359844389721567071952860793707902052383873538484884390208560277203844080747961844319561380277550247119021368137801435446541189565983768148612725279363985149805365766905401089653849324373342558652288856195499473243501723091771486948111667000087519032479772229342471695734518787144921287443936252276144590325476594456783166875339312285908306125186726321569860862439559110450606928280147686050201597199491371192064412588050133678986078458227191194737692600542930547178304772435217672305875183403806854884976607067086986440811575013832439038809136716963117093863089326495135056967145369881713474382528063821457914258355943234906540455587304864901397295711255677941235033522069908837727915320083734065608328087731589200225172354095584859047357250687649364570785214590478108738244875990870574971070020346717375839702506431299683005728169435760994899089809904946995025661231887535503917016742938374321730747221040628727059631887108367677891277810529158591897772316267677998344751792707911516374535381871664709711744441435394103410272081390641466129677802263356757172636308184133681149230722114186832395736596070195963190468130239955893176292016221775969504312310367655770085216086888295718402835630884407648734282851602059752248435069724297178822542416311334737458740948045864513615481152823982526852075476600575296999889031487059849255755614638014099466786964708957410725109222770791415840083317519280769939025036035096398022865975234804819450499085145750747173428086051673085624140627043159034855938133632233723917725993294553562136034804968258789052190888996814744658257742976890794302320096399160477332010175842694761877332323896780071640739282643612767493166625385562834784564908829617880824215789018478478975282194045026015868568368202952197862976309720530882881026969587916139395855049276693427617094096226951652274259870222870542272453573755323314227726484255552812089367364842572781426035188078177132815640236500690405425993309844619323682071511617169587744161681619612044128385006418643846132255645260022325462114388343467172517274485448018443481328516241387643633012139333114479537948307646526499381414103073594073026276613828560210586181409227055770273335624355504465127713031173136341895204735705622168888749669661442882461818010425202524420888480104520177594428963001285860458064620490205387238687698469334179282600734317100458224982298939162794547461824518138195160953208075152519337310079878615438127708233364446748156804049787854012542409427626204144184830616676794208094775754092518858415239074024677479151050391494599985760558456635599412740185813728032675062575716694135606477518907835062323725288698867334487142880506799795577800543192228684971885517293311145063033878690023723720548293523841112384437490321085198474671477427999225373641427672171501239002344074720984101471839191170442552368579879803919719427534467490205832693235617030089357190517589304924972653723566882850275437587498294314101771694272317219468054132249263232841890193292366316009188605210688666108127844664200527715915511640940201700707297760887742819189422880081668872988052335937781254609237127330576707193858728835239230001608335807264595244193196699726567203705725906438821828228262037490488161060362030802333746846827551435515564342081295269600836870277123168233605404563005802525963233258435069901310977964016820271581601336944981205631043861222292404291791014249424507411058708201899110823300073831327075806734586876602941343702797626988517713136692447513111078656754077707601946575275777145442583415705829153539473239597792968049866506202885581925203728949286451869180968500451531002153147040038837237977629128382900810348944791453259316432153129488252179469137334715590205751741516520888285532460360886219111807947098988286463052907404701332877379983629468942770394171132604848485264601192811114345533394120590299464905745277663895877705958856260947494294881792452170460355122951092909522124471144481611602084454350668661532279911296359154109308530448306281416606440715538072210841836308595045526997129855028839453832422687079132979621629098331788676130247912967342935099678892361334123379058770246166353793328502691434703379390642088207157692726450333140393719458577282295910839254612429759053248238754577889787599434396425859427798796365877882847955263239773470376584161843126522706168828656749397796142297378451086549431397553107779810623042459207432308055691691411959679401232116602369945760672025386773190985028126655051433684026992808156541660771662486512899493884139968040905584012428871184363222160330873550607853042745374878121488479131854511700831836753431392348631876375708607057251018684429143874521400743400567981899302493860705696936675179542353881887227243078630641348020061575149100874823628018602479806304168103444064696242588096265723011408127555411080576116419678546157109682450889415943831783066231561225033594321279485584501274998978564707082313270395356654374353763572407568913772236040264990920925167610450116629960334786050821470367235728312156244886241671841992193144369777737533276211587435355494262329366482291302131902964882056217860388830303289844551081252971096205845545880884791193248011117820148491674006968440167951425128849979513191530114911416479166945228297902342320950980545284708335778912102098864736036095034943085707410339662583992433521209523227959189229327747655590041896723419055764279209466385318384806043197715674715295454025470030383855258662322238746175931151845513376262553252469763923705681259626615392155407659733459855297560200727118789178032662019313217527494371593368597041571358253081961709359680280633509970043056328026035238448625027773588090957810290763788882829624612841812120834505572532632798225187467236583456428656470213675350218863225393418499657210580018919816627278975909220829946921410445036304194478399067416355283254779966917804340328728445118608763670622777378751782521114161926084945943517026446754346308313187506425957780286833805874726044815521335444267366913131191687784873244495741563517153138496836498903144228175922220450619876655764519815544213846151538841261996537991892988767784548125012882955374400863345052310011434808859619737889213817784038118306886324579150801477568275305119040195807965732268828882814159008808724916537274545423822220593756270519795936110250995115947348627984693489393503843145811613049328756938057926956977995942166401973554599739870009976252287202910084909398608790152394949891284324822009661935587177398485131157207706276198262498648665099881932808423693189041309037171656607356826100469393692508923619136787585060574887782253171563095183841593649109376586066919344768849087490941527041766029156912417500958537363892475652505413316382919217722705410756766673751311863206102249243149675274428374193165832897052311138043597887021678398935577400989695068464241452926011471586207249392821451919177549892058788384923694216351562634914522509908711947274606049247987757758202743551101928311215312194978814628058952439679304042479770213286434115497476121267086714859260638859822179498423433728895958663771080105361485317792222879504491254639814030983918598417549654684933890670462362404822275269925017640056237519288467346068298368223861669668777684243871132320756085536188867542690960916681444487645149514967218699411641959097911966910657988984070103855758508304416621457846523355120302940500192956039455115926009145964510679034812054636719941655792044119259565799295569379657586280722015967585189924335075926045448336931855994633229490757556139501228284098586871193710901061641767148110054769236571727706683923436477075807646879520095888559911095421614854470634268787063666780968385337664187595156446694935594396251826790829604500711285030458866115992728807697158531807929213220772720699516720676959201626332823905220274879820998926828511779240444565769790289917064555846093856465787513721914371650648443701797099698897369032722737769927282044660667563746816863078269868878500204626813283523481705309873803640910495502685133596311671529012981557002362000594464661116951071130492057260064133711947574245001340186433098852990520673593107965572734807674407676984957929997638890331185835133479185165016628088410449569662810880712671144050443084079450211340495773974556796894171787992552908089949068852874439517492092307697005088196853669089511713935589086114310592223751496928058909601721972579212545429430612016906573701841313616418382331496457416385806924846068092250775893455395574214123869162134182889024288701378931310671988843516801082609999755362777258356819726498308143719136683707096871096963546004298852641777340128014237472764292268493491145702432514511271025679317003441820014804429355280888814319461650309834072775850851828041175059786128243162413856116940702014551029298737216016460352280971497255694157003346151129799904350957262044594102141507155335142289399530835884305404733215280402638620329018652536092636151934051981018923352562460354973378019468435825353220456156307412841176808532726525238820655496274364313784465259638888358455950981572876532069892230953580680826581227068876293145057641891062727361553834277881716899232680196645879335474209495547940893724950812381787635377164918502938130274949460383402261960450692087079529303066325834222778727054699888737635386403275006150351324649560448919661945949477724581361279277450251897304230325583630873752599126888052829321499529616780627245750668555835518995609298330890593731233356608422009424741189648425034782448852432609172452254695463856440831329175761744591313966351806832770641676595229463217718980198090043557461114269514224836676914547086660601378360437601159493241438448579616422824660234007455782791817413279350585522200456016731568960498193511899883645973994558608862709928568968883949538809846569908892779198147780440280133857797420359412125189686784405415592308356955314267340669593461757098813965456066925227925969839169627119653623723742533668377781110521392028531552300512186118694040690725903881446610494307735891681137612438918526519111960294246050436108010608178488547664488430731433854976845338303638054733231630701141146039942237768575639924631148249655017805541198820086714939130596128805528719261672687460760022383686351847553435288383919583115295102053759832844605003090941590210243643203792684492198254023260776470582298156423091517449169165151083827049337829305590897665375382697363774937436876414252100414730807280325975156467099946871465625565748723255914204579846455468215205742170647602369114400395566540839101702425191692713966790817771851596016860016280098282146455521467358211786498136825540527010421379423282008428320775739298776301153497704588977076706070279706739977003628168358116966730788490674142560596720912363817632025052989359318536791937296166007931364836383351951637384653698255526944377434193306704780087224228558491267891692746542835890665569768984824282729214716437906029055299178028478296271495812420194254418086084140609203952176293827896855473386228702966884093996811572421129321747196746017988883328802878112258249918926086490344673117460208064292242870467991664395270174908242244131515138490476289277936594332083275445017031332934406295287080825573347140490709765454105873289932608070597029709837015957337999633725067779657978675702839085440867122490729168892676035851512778248137212613857976260753511362840074914342918053051421459518933446233875950295249076205606880746020655829834355980568910700895493423812805518739258008570175485335935270866452630460673564659743826587241850299435342088965506105790686362323797356574129170815689275701595610723985824333653251236562608620984316282910707490796660419174034363044145293001216893578496538636017859666449550394639984551955992961759514172826996211286297416300661834286815443600869528869794272565175723895032671615089260870139945994828642071344829047906830320666342838495992090597954170587364592462023161156076960624430835552820583161995627479393993798801838946829324584485178186466836931324075376113698313411222097658314550791590906327083171826745421446175279517160976756004960852698451019630987645691194661272526873414365398910409412097735856920220813120919927212907106238653419489914509666619885431066079243044434512477040923061188394191265638706390764146458536638703637230381679241871085219018721811069158198272321608326584168997317159697893775898133405774715551910172277775186512472146888414587028092452301991201825066490744266029196384942039366756169627027828601726281207858057449830403951707615779452979744127574854178915707436117167221356286764251624063401414981229620465921694367471665283902451654353381424880023020696091018643415821655905594922897322413501918392003669341751509386380745581075659786284280292423833679056737206988926228361923606814257088650250006410139332434566728728355149651588125538129439870985453739434217055962764205434851328383224395607305309689137998235582999656054267967471822542050998338744703193178120285464914166800037765017830634455934006613534849382889667004723893078662397165340924955463203140454665891858325047951658955422623825757413307531709166761736450531983015276030142055623263165973603718837781383481440981017450912351200067061720764518070061395543724197024123684830436917821645503365344938004433459082666767195499988037889858732988048796910119260665402521330819410581090844173743062516526839857895162033300742706683942920651603280450772530907677131626841006888698204201470468678859767668514049013056269682476396830835836595455615476239906016215381427422453062453873140531532795932840109140202227281421258040283734697920057155515153306864520957165278003830249230129588451727406055512343230809404891220691796475204034181980383008718970976663986148175360406063741375783300431892775677969548361451354295943005727319018764053550417872001229391782515220723039843342780232179177925028860849266077651198238143430825128801153380486327206741355024195933052542258050615576675075596405917741783075479502148632427334669720310462166974895561692391724490135836607639952050090951036330393552966140234098098706592964878464467980119661855197680741297290925098918224363397643325591680672742534227197408107749344730041822435480229749811169442385273093679366436105673590071445785347140012081880827262353725286487265677216374839752207240710355920069059449994078305519268284109688269704175864028533232335990540006089367752442501844512226946951690564851288843371193995959318681262478525879044145446302611506308539705657876643352403254031439224685196922565886377340469823618429899813307545000491601925631413998889312506959284169494884995965901972568381209343011066948064925548068480764044164150741555888479979557648293140678830896004408530909816509228937326396344227873890698352144841566598995997059581722976739224600778063215277162455291586199199331710038032833009382358333496109726693445879465641669484564532152257230767276847180693107640666761760655745644060441766999574948731208544917573138331094105349628477373665212615379711022063178667284005067969308802896245892943924958502630848592695582380623648627367126566724217021513955790498810818180801063767963085431858971350140873210937101951050882275080904689900144591102853752501176872633745861711216302161304329723329479738232356822235123041642711215550308839823941604800210540991098429894944254197851140726363607550785665616203949724651001847893356725582485079608769535294950602751303836737219656161834624040192707253319383091943990822788245242009455199778700332814322315964248290450157236621106729178547682286741656448636550442873814535148000438753300130684395140260820975659429872039405850818831217518434438716944260378562328486490985878638641801388541491147622270768787380332442510109295599936563513920334009673527363772451681937483899460097232011999667616238273565003826758583121664503386389178815028995423778954640605220326402508283937582625308833011064635543776395028295101041445893095136946406271640926121831208789483565657221932115225640354806879527582275464158473444745466913464863859284808988426673710471111186636414629478378725695055163751525262582871883626756518530401340026362175459050960652617374567296625968666257925915253280301504327431901808861221734200926844468345814114113862497373124844416644239324988399546391736234978039477392259400154459288708733810271962860696573255816542118626382518148935065632805629727880824607753148487389050410614573236624945352108534800249139729428269658709369622066198243977358330685529333804509046525364667781782493967838501810157244958330582543785573002562995058696686011723512780065272067491541963055168677670907233948368240967315873210984183822208388022603805840077214134320164195234031065363019172864568546705456063871016332969936894633328898447696883572349068622959739539818744275031598673893346726526474773313434463496428371942887454133078114129500489412581597628752455307925394117271033747995995462680028447878226081329610688180140400546843420302913094605903996055344259385340668174863908740476986413674294965494724339012980755351232689707984399385636197037093899670140400362709898189151878926160384780441715631044078389824736609305575255916776182503216226913009508289978179472009446369822985186489420777853058065187664804878241610657713378282645755523467787405048236821388521655383017737836822925167409059682182818374062006693928194094848879989550587236905404339650887559394847392886285115621944281369566074131609755324949544014454390281198355926788084831350361380170765519272509438039687858502023735574914234236230486061151884528907743726885924019130947969304050731235131141375047447956972699284660575469168047830756140341225505283226474931457177085451103210506065528673140540630896724268254773012103521176358633368188364645280634106453499842803193096575311728920475710596799344168028070851916004432034845300018317314123347686259219049019771640603222476509578283892987169856575031261735526787536921704328233935432071717629101551674758373373394800744436117923643250878829982073569136768974698345938296843348700297691032414249997623746155610999188215069607036397838110423250720836101726134230676017581024953523123612073241760273716921333731030888391815164293163104430296966637150242311859043963200400772913331315024123568496858410766653749810595501341974472798734465575031102159350388417410553831437288365866600115578153832450587180906914681889649913736669926729405579161338291134048764471864313893106422450115338095811114359168059692902938662744995805722143320786548146092553275803402429471287040383200710045435303871051696658602115477965500806176363345418506945840975477645629686438499181975208199151139449629167701404555775342834349830956168976254459127621582040887149616262788473672920620617870090268958905057099933470869263505420619344958133799480413804773147060060456998170310251767126400619675924366873109393076028635778057419928161196852299481096551008478942702361119451206783265146895556985300600576385795647887040131231229476668432389429149867843224799439582353043968859770293779132678907893292517583000376328317370290687167214702145753569409280553839291109790591191880191531721849855594238810884122582852114957688962642952214975762244479556068077920144824663769064253029898941630312678169158125590639002757806663453842762634155516076742304204553468071373460065763622008267849865121444203815014354209389914843708273931044872049071859209273781373902621246484474404759812512412042628609572677042885096655579410710843536007165930726333804795147910428593553354844925650791369472997655847949003142429045931070466120197511090450684615370578698576605729671497816130036360537650016263791985751001819682220929079419180490248849636401884181666291231095873685480478608419994142922182118570493078974412411259901357358173873026617703365387437459400645199053758235357827772325106298943946293711237292239781282247497088023275590645382978731652843735515905161987413970639525974246582988906897886367910527097346675456501361842940243053203462259538418272581505554627443116202939839459515241054932145851745156047130517447005905196766327767158836055214525033112793361338310229058821884656062601100373416549641354232361879154371434533734560041303119818353203513667926689950452578901604765088324836921791200702835202843279671555302875040681401299475832235414354524048490198897271273273890646376950574575043707131846899044944884058680017970638868596098459504510573926007778670053046434992075912156381001587057253068946326969850615371900444798314647291257795881824624976177015650752832630371752917762229857345077656863246793272649243792369121879630979848206983920225983476794866584178551335073271294450958417406842844987137951586197171904528711201264304382768693215992675815502261910813198230903105352033147655856886835890544776949214050733255704518374664755988481239963516800049672158246693269899397356848476970216888418536324962411664231578475444119406247079503683708993808527790266822922162468488488360704216313889119432191057353609899999963131008280297580542186225179435727511251102936342042734141796100485654472568097658596710592902763915747510233018655381227100402245440003279980658150120401793555457263350958852626981520826348314195436348351915319697217859315022364985747772005592361354825243344255438560565251281366186446532203638772476811718497328250800475207530453121987495539044562798031163669947003013641539695230005393086390877325026576725701741768797535736843921322801301111228083163014934106811245314796724003867598992120206662529530985068568492331466673728847883395606830112254400266299960534324884966464885991397495887038851194012248509241117194692185146385376165585739861128537975634960926069267160506994017892026233585118630248484877642768718455351019974493033284528267202679885815698856712493113802972551263390469035665932964163790435592775870812997578093229879675054371284439977317801289193758814388320869889796084773804566459918171223405805754045804415348361672988460058486596660675492664941616198014523392268398492802424547248545156088642060457809954339331463792527518527019037931513227792217996326829341878815291569897161386042770120646533587934096689397913375642968953167228513672286560295939146868116559935781201639963981179772817120441921770523839352063356796103166090013229156984940302822658745137863521153489713179852844804415637929098464863278595402260931455130919305973637744984993230979068605628093230552790609441976990661388044399973969141681128662518002921518853981091886348523470686801275291754719324056871678802321445330765581715477374170408707929020332291399109332534874064834154065569648025009221188626107456204841395963912202802756166981615406169268584521626803255828962543031273283707147411143681652101259556278789412339736095869304278887347307532500832890939421925236178186692702435818809465469988445285297129468800601736886376380670385970072127257502886118738011068402082889117744121486298804735578010376380251571606234494252771301491188438943142030300163343033245147408262669576903385619624184744005162879026907994429236976176735861923428977026705491386686326313264343258587765628768444548041438008885921094772833868461943047140044748820416471385658609929287667496838590198450063850911843058341899817419660665279030462181505924839556493767938268301813404667047570023333344432492219511830561799552514920176886260746250300597708972258056569145657184338418600200018101683643332053514825190703145741738729076076463162971212115463662637247016011357856564674050385278232329837587105884280439070071193928699484068413582816224591276559129724012166866120257678222948046042214586119211199654192483081320820582232434320468646019538023594167125182587748639431870584871726257994854640166149851488207496195669217836614500485504722324145731131058427518299073080960464223964061597788279718840637992441014402126650460475278576211357855688501773072449747650977335723738004603918768907459230178094941621537473449082942211398980961854896524339514140158471231802705555641644257198506301484236774485502366230409386125137405789644880353034655506763246841517272164803996457727266459318514609650793363700082168561390682129549263169588033313365646485683225573508258450655084370629958688578831068734272546960891780737050247789378646130779600161802960097377052054067359688335208312618929685341489394878466212580206685715851753472400580152765102200057102175768560546401574605656860248573413715889972113713642959759885603089583593346178679739003056273891118777707796385076835187663460089562843715273574745850718034478934242249749007099209640680223966786029306587784164797679831958449602168525799096366929143964980651492982303962434087549871826278459794940361858846667656773755850059004164390071353627927329095805348911957840179058337918078727965262276111986716655293501068250340046820030626214953354048038731208927842129167402480590458711397577520088948445860889950177932532870241298851236603918635863063653566251258765704022791877129357517674531208696931677132826030324595625715554525245997789813524458953256615589764078225832700831415959510986586414621782418092521820619257545450348058192791908908201469594121421014034309211650131134783400936075060435653322373447819546863533479943926193150506708705500027115569221321185602205586270589426064574438487212462134154372047197496546567807650679455973821078178761435662321447242423855956216467841543759612104285180933922039115558795050637809346042729816058843134569568146349402881090116394871694755217412534621567788142168498256160233737620734735185019874839189755799762418249246393730446345724996044962318827902831780435151992995093847250151367769121942860762121616432013517877894399581036244871159653124486719733859514802001012255067075393356789413949662617246102999088317512976826424222290126226353132488198097768325687891556551178805072492681444410302791114388071376768948281127014523201289700823261926422279956494965158950412626456974288282643546841093258165464253933433191953176278263312211830464088540932093197938931799146702859975810022053896051227668192790170084701818852984299322352988294195856491680345456410668709195244305398872667914633753791107110909556921409588977423636158814395554413846881004520716089214196593249555969160243869742827436044852788787877096338207101090956526051050171594355336946797147558661386110879495699803963412453150518834183802649878668930117447268777513131243058281872834270819732059398211260703845747709277578232297515799170289378274963283104164238414041284805581671494198876308564295110270757931866635669591967049834466471882727267753633729554392144876392129042631580989673693185217861037693286340854220093832108970031415289330910420436928584502270866343841764061972432488124451800114029580481548081976557197512805745645694735569153892774200434650807500019072923989642543734066499307248793856404303352527306091728847402969707245029576398215374799408005011117520658387598080712227515332325329468137190245682534694863751306470346146283527050879067363634775319365457084150976351871736090202390222909711710323354017301122016079311446412355418835852058033524560803320933480292197392818502004044699992482446509995948962353625973375593275421450779740740704278712949608572536291589605465025333851445610722407907443932568919621250635906501632789028214810252382785264146598169110661789204724615186568086960030421162791946553008280357608206674747807867197934959141049189326076876974831285195082730107063319196790369076877793311799372511336601809467396469207765847961455686350590851055925892010831055250907195641398279627713408941945945747536971542195901615119134754068999854582473923296956267531169901053622993418462657346768432221239888964434356998769847110029042167228454681749555428130512118012010695113929591618068114479498858064571008955422384518014594835920173927521713698784218861744818441753075433211979422646143274010292207798583950348767401369645775088886978886855172517722382588049591885154434971210633012800724057378901245015369579351065918423060719966723257698893549159683749116286343560688078077267243792860685738274804888710470917869988995867479733195356220329639070790710991950886862571003458698471327661982740818810769457603025667457501742441551435145722577816829879387468350117846015572001996090223476211891119703150352710396612629554550509830182069989912925110416838065109254865474093526724991589205119646879198142042557179214692384856970094707781431167906972910846702468930683661052698339306767288521255018791719678591458230623171726828257830042931198922887856733991414284938753988140610899765722706476744474289350876888792115891540474002905941289706248254386507309067198593901020785309445618837701480818962455281839157838058274046597039449132679953171920250986890953968478963212303338678410968704529790619484715677631990806269964301625460998393241534091053169541056204018581436619435321887135709826408550234873803058096287840327975831609903488784937246131488482655625366484389298893377840023589672646926397424800168415603679861191788941526404967002000360845444826916206917180858318015502356920625895399483890445300224069269134948020371976668005023079252638378379759374581451035659308856995884582373725408821571061040342983055263494954818339153111072252655952624992005513569740122181416002852418366219559643462245089751437485708617077534902183253988996789270376060269338661445242979523563369607740189208917844596617281400356816789635990713418010980354333946707184390917920068455569484034628652721883102676018292180370780730369218943890576078352855585502881261809049909406273661642441004155516071576662926134995964610483833888407944091308863151900462508980250743209860823669599629739611414725123082228233409484180008790822612408514929554955157013917337102362861038683362438794276904259225519359408284781851180976832111145608777992767546426398123428929768985007088081061717972923461327768437623869775803495416384513856487939978931579459147946394218159573372345293308392205672104548849193980888969061557562095206013457801372813204376786383637788896480189977676726672781424986134507916660264609858074719138444180042619410260267575938919227548714939013250738727595655866847843017426789060490084824545927964001928929294755308118213385761488707398015396565791081604395814531994153059214743788088801691585631470044973066434431840439995028098860909605784379077609946569639338974501804216045556395457646205910260405579688775775150682913195605585829497486649246687101992155001567788245182736585903674877809095993075207582867397401133128588453130816574942126121940830175341332315063627741059515790250386928760675815177770529987670917473406271559739000394656818453032248329895671015062525322769824637665153038791882915135455594887637001097432887509734098971838844696436248970063329955955398893078713207590376512210635734672678539937234932407280835735473368274402478404381868104162512656071979434206195505641648678293439704819158961716521912306257875811444395953244890513233449444393911005883277114681871404962509207845757658804946189652162720121674491436227387151391747498413773033550490301912017718008815980340420242606314746124374776895841818280691136626749633960145040289884347896769993810637967871443929860290532002092780729293490321705499117910016403339710037285239638226775633518153250239472587026096262737993800029199161629565294998208150847125358008407628608182086916308023005152197023421065619270922539940887092696856530194154025291342347529636368137698929746543203922934355208867516844070864519765490575191540982079118799216766325071596974421934208804230626240177309552696246643332218561485166707623150772768309590569288580866291290378024497089037708920711023817304754902126019708623811010513571501207459847347722778949071593003750538257385417691592779732271971988524286158185065494742693308500575094484356168244043447712432188075499945139463152431156990054562824613035277614143987200611531073035355832809321282930918221707015130463207356999688122177254125663934893811167300104196592986625565231045843475482713607337311828838501765469580467887708372849704766897112951555466066723987947795978756976922174249432677154155722706938914791729135868536992238771385517361958565397639050552382322455149771689199798138463162413920373126403935071918975508341343463399879034848362391568980638468470467529024365008609664357066993164998602936539744538636015111949842599343804685751013105708967210311937444317812690705776020243231126186949596186436337154707310161420938909524485808967812475594204121640962606428199692488728983360118737709254251341331599563547044851356290351765512435199020447204493582521457086968398812299339629936972286508538843283573539839502737393463986259966402790272077293648846942924887078221569338327659342645318128668410423509561117321167066860879561998116486261927048889067740618445479345825030429465360470148841955474491925167824104399141783317984136192722544084135008299799393075848542433467833575213136858566171347657855050481845254499990040615638125816062029147976090365071274758112053884247023099667279519351640480825774264924038975308774720009209355561988484854873887908751167586764454588817222284110850145115749892415428762865631817551139975267574867212208852409303772433209789493088272110168764984793945192607054221954154774466893696429309936208232769206191057600726760038701657243277542026615878848075397281969483235738828350580950916726304370204791943591221847959783873204302435258868306154373932468772832721828088302697544450591779258953309998542341216283036933905634120490291812579341542422236262247784538957818285872231273739895196559138501065040043033594083502183664180409047900992864635938050357398537083260572671643698664109586588487182938591805664324701855654424819816714762282263169960889689036438650049253453673390867875439155533126063242797685406429764973767202529366560650355808527972148144874603640301201603559904012759394986665601024173839444486339796000188274596235000850359545355000674399242703579365832702539991353523906289770037038421148197512930121380869788676207382413289445859863574403155787124760098985973506956171113668855749313581734217490641824784921549299378397316795078167152817599080524102306182694736679417106072014369341950579026443892720930500500394115780675948456137775038218491438596758712314163825079651036625949249622473759163146487101920413794268327881212271219891523498373014076537185835489259020750183296180912147610568463157394997562717128795159741478414359202327691483059833794028053758742470390175734206651800799311954374335628629229258534212801635724980813573767140783732823202042398483305885717025912057062246807223936452273850387831954491573543301926484868967727171457117504916231085405999892052806184814746976176944925025636303193877770983464791243237081393998804935001041449617806280528820925379306081971139146936772291458406214300233531103888455274348299840246151008691943934942882856440965936464364556553159602543735603390778639754775046630585987013558311089433433489953574259341028144362933645788166982116111972558514435113540694743588875811741915156805719550216984991830447671915818193671071691582411197061692104526345855798648759053240527927100910233974952858919336017116228606161114233156513235352742264637272212543881596218874434187918657472414852202170435052055027639573927914320210406833220002737607960274191818317503731128298588945571276387813825131696725907077303832346935322705480987669260610541678115518381754818654497765202910628228919899007746536814243335135461666656838300656981442126885610048545073943384944595754051937839470038690595372046338758307776670340704216612556885033562188649728356198122524499778556475484029279175941676572561262867822915265792982951772344157159659361244975679372709302563387675159269729946351839821454360698461064672495974376415154055164457682784088081925355117823083122855082145727988306074624326054346339061677081659165508563351311636792072688855738791983894947205197557704888071734695457751818378120901011974230166754950560373092032400050345813288092142661239812090926688894636636125653646081132760717149025077272444293269616943295638058349818408495984972904219418035945975738204661757301852709110826590503478682202144822639689156487476622718287369598333385563473142927056693045123876266055899458352142965485132964298441007239674679951390110393733128387033315845069194779129211581748429084037945425079455764472581039743451332422269013356253759078152244677395951317332493985654850352823221759921686451661402133403780982111989134309509934780557694953843090078337188431105629916955370610873468856491028660013540150948617660955667337632641487983310123393495518042362960878718459467159869398408212540440614002183380783238810104734337212973344145558490694866379355051659696104307109031335728868222127271800078503040612656894971793269270388286903620143403631338184369033168752575653991263938689494596895883642339219946204230603884369924678089306301114526035157611197601791459128015580057783275458013412166176555581588340414620994047944028033139934619370437252274669700934916823355559163231383278354158063554622112711366201682392845225929182261527509753503167377298384528614957085314159812600248143792699719146387548519775298745932388365275807322474531242786119048051264737690335360324781189293252034274207186280111509248645901498945441989149229057831878699830465789814590880448533819347724350293454110380949774598563286688678061922944177457465302698296657970146051355224918011478096860284646134755790333923010673066005600895416401648329567931690560991607814508161553682173806032529795765474242806777997694950891659486168841728212662971966306325703739693444927461040840235829721407046158731642663361224543901855760381087021660556317544399045834698887235481077791616716345884741698064200964531476976791773206654460390334365019080375545371173262677745446847946620453843340695588817583541972094232939468534340691086714070069779908060322076649472174339003655335405996084396199511723824054884960525815264836540171348308224144550454287666629287058592706724075403976369894253605749782911355981480194891385889659462119454270097449457856506508229853386932674865891811858235670949281269683321795334712715122625452526588258622878142655476873563496202609729776335805853467231799357428974617069462325439055466080825843529337170392283920506664532589616958311353582200734257599374342689470142056078104163029817824335456690073144333498067080161121753434766063820808666226000503139035455045789519155581268810900303369241123117829365598776174637709511448343644236972093293655226254799843701522936348457080560027804278219219990261579406240983093455960920952766324696819410382521644716363197180685804346584598709946248789802732648377999894217304044429859073282349076023381475292157961785384801226907232355078775158536368569907290392656171193103401411442285277923527760498048066884322776681320238776633773866349651396580031944635452685534410579856001976783408941262177363912741655833610105445725189293180167675961175213618182752773176512127869509328854364611895138660718021986924404226659366216883141422210670026123050101164176552521803453325206293109931277511460227092651156880032535225188165211185845632351978629904609487219947474268423510536527561106715212659010339688068597566781693687332683407300058341183767966281705209977493914864632685849487278841636505671004775689845422457222861711911957151073631489846877822324449619846048240596483350620358820427204923500231126918426036535833876977144588368137016821474654623131800293148406991001956033285454993617688115938655786599982439750164388663280891539666834685525267249419721410288090187837663131999709696313046938120129296387799938665616224596782180484288288300165000622975411635736073477764644189767580560737529957875427236682426273076581215034209105266207803763189524882046840949627024492133435759172276063533521975925806040799202034327441460961589940322988500552202218779740496819106934261129533983498932494692263275857074337909725433138401588522273066959496300792762402814928241506025465737045601271890620518771605677599270193918109397836504683355142127565997528314345863202037313028851325013720959160187244187451869577616828928071154373870976135934018360730362932915448651832987843673816144006644360917246563276362017422717951855302010219855890655312435616215147953396825155223933133497266167287321556842042315920269053611908878826160377426317440388992203236706562519424540446671905827669375240264503139729847100230035109385974077380295424020024887082623579418778395440462488116699692703051017070981639667450783803681068543289103280551134339565888810948021929484140654743484475437483900395566212743529875153684142548766537462902732075197241663545033124785820908635850591438193304917980642945284775106568462622524947590198906543714132376988532215397164382467076549035407496501873412380783701498775482027965229233411183185127476587974142216389502160411251716756422222628528425949261456623147248022667318621094615505034886256778422960477591732616316379408961907249050591199807068067609026118361768242988432615035835520023496674036274189888240198474061692007937030286991136765315671865584020360051359340903761946378979232466244348345225981587680145971163482824316462035340041126358194351804851732475379897824580963068042630694565193030870280801049631600772392786756290666683204687632761062824328199283210192788844379944587797166027693682181255357580542691653946612154651131296376952375182799880916696835965479584830131083309517560345747048493170492867988114708554529851370432869801004798376697584660587073045905939428265714996939389266748565890981192230015881453267298773157884931637944599995773636317734541535563985609843376703153265030207357722484642458790773748897154689761200944686850287346880332876672582632131355468655823896693873891813604950495475203966872486661871723568653582939467976161121580811362196470206585165912578315524778653736671656233593752837772540398740657845709682504886931299938430212269559021061569119255738358295282243197948251135559466716614314520140292616818390995714261964692067850817049853597954083623016668122306759712252996394428278380513800958622216949713343522690481758571390130144264963453860634601798571971530239638239891864253836718648117393827852714257051642857363314040002497990758970741322461407863893477360285769030475651398692496278933244548526046599871829635932015897450102773366470573538113152558275609855678902957943349462831327878937021003900054694309087693689511270227014657374479597832436245821519838826564694583432341512021893036689824212308513471309981252055835597494966827940339916902027998944234421251458406005211866019398791464783955887188234777453102770377361525860912422669045661244055580379958814608784769714085254172290397187693097809859744042464299161886384105108679976261429058070759546150822171282787869709317699373527172354900038847145372493743482394683144334397091499407350469968231478516977902716552264208486789048824874389509478532625257708514827877114851903471508837948835172843381910738596555777265704996378789645931606327233116558486789556084354897476035894274886466242877926284409989346799375728694056391952799636049758501616078382147091282801938142908498799793896243448275830787810767815053570246825211319869990343050582758840106610739092062597562565063797835768830062044702938592488565827919780500342292976020968024463942632348485827111593565650472534720855922340849816392821413995879444282859378140028908181425235417392019599464787848907082361204819278681045676686684291216842324482364114719938299537744694921908655343486414444734541138931261057333385951921494682188866814653487134803858742262074403742999163300840863529112726833980467339984817629914892184618808605087652658126740023536474201922895561949014097115521997616072121413189438975963566944163926316238294606333087288215482590187670781232420770029226027881114211569514923517878008787225641831526536840397559099016070839516597837296768363144820116582304791028223770703597273542558350698824982729206393837955355398180180080953385595352348691231902159865843879946610871982677603560951041735200749457657523128992557775139227866327323409776766628480683889535795511705617008483664471318664926184897160733269423534167997752766425007774714810170786833048106823589482526502910086258385626961764277739445981877262697808067298714310319261061443535962658789475863881096952290043010597465331502067257165643290370461643315684886638075943996763267052482749501542728771105111293154890125063292801936219681001839234548472165760166248593308842066468235976749410014334922483143659115361548036115720108064350435808822058327493718505862518113096783160335128876708359692295108877585321732500686319089513321316518480638015270899883230409910999627138745613429853300045539700352325498809462386482994735519834586571388612373793701411310478099027512859230747653298853058119608900238312631556466426737557017559343661445055397012699669620509250383637716105142381110366568072277415310828246001272473074637636042466167162819117460451478179918888510606378013086191993927513687480990367813160059636063801431133887912177188043008218543827373195113563686705252411478627736401225828562730482212853505764893456981450600857385202630517108491857720418895125192430273288266667072903524732860254824073577369297195257284253220369862546413104024869283669213179087374317246830102401767745781668515604748259438833737046682003427161240856799907652496823636353060834957677957040431377845561349165697945376820226857094034332073532008513702674019399584129032854067354917296840393042257183016806852351806708907302617752126061814908438504858403253273988619772564651538822577226021187394251885306087456379447873775829815423546875670332582358502494837801196256127323581455713170654214080008191518595638196039493489313665893497112139714579075621674001148916551005063447024134467741155807971750483929292517694834167944103210107741419339019194688748178599488628574275828469876928154700179518763868017613517162781601263961343786979964489009412171286205996310739747911004563629042691829425164546537991922152329944987700800263039875103714995637111537541451389402095436817173767546442078926378153529501549315405575843697520160769369001005178018311039283614881533072399124327142370347867178654733122949261236591464049298095671842323781499491044058203322554846174149104951683299905179124316732934027696364869560614433236670589367272788310303231129981660482961970631311447421921090240269354057377911321706819022778977172539093652561951983238075172750497280879444105538158342622631847838763648130336812543305698105012202898009927899819459531219593583288926082697895728415153685010626415414147539733362300366698767495228607730810931685882863865256865697312482875793863795143633631725730819031745571587358678923719262913952611138190866683571153337699153198706338325923366958258329004452301518216792667540930703422606024362852558937179412714701078620386449849445818355143686258702262951832978965573100785442321958743239372456467229375438661662217971146843531368420732936456386112958749036557253867845511692946614539721344430267119847943105683898321905182852867419222777457863598423428638860359249319326434822194248239030173150395256106866389378128475544191330012591009277521766404122917335706261221472693481766092986946261990545409730725910733496186767641136388051726768262433629759078724506998244251914791362578533220571671663247104757003717220178112380701126230361457408419591699416186082593793906626496751973627033824980323974518151665457455546109238354981000394147446489860709775186466851293720851045371440367325749369918240382137925288203747128496668477095618412562159112284160979113298521648587418252692707573736688042924037394565850539796681818403703442955241328522635563935704487390148725413195518848897294043198435016749832018037518944450533781975227201644844083366542231261439465666314236161537868302310498030090144480472164029400285278336577451130105225087616629813635016960323457846785952262671097777709671905192382671314296800966253988893807035771653984087254996954327680665505078823678258469558163666944230328344643537860687099160939192169037007586463098072872341785139865584419122194870020205114721890136681597494659332929527270200304601772623420440450166416032162975108295721323921081431025325819447396441613295029454397349330942567668996072645205674937133122022114159586776733018900897980858361471610333581121993667048340277877848241660281339786538145863410210000148791555847764871173890115630384352444745268670011032825023916381106002190859253149669857085262335582255788788199665759044502903483869799602647276692733229461402922194455056776477231203175538157360046663194627528708689617409532591846048179394587183030198023819782939340253210625803871870852590474618596746326574983365591021819667928022228798081280358007294112579964753399335154776633036971364145304315301960612664399368562696747912536741844547468819365015015346282255850906274783005654707193842264172465020922305366996383880283228120787453109608160818383788273578300299701446394064707439040402764249011994602573357734428142453565832144733647459671255083366020091153025327048273434622356378479813688906821854170198496419638947476389379305198502603803214254358704065890733140894511551974577823583042930437183855982595846499765814121955819600125294178868192727061989048145073796488097978602356891899853902197207404323075753204787452712932342310109607280958247965235446959991297958909475696918110245710935464351353431388726870432911272143913366937943799018474812432340886032049150827686963409515058346954284939054178493606747295623950511664205719948257975862857041178342254110064964440043744979468498722292647032239627609591390038961173781683276656012932129949916256146966549180159656636425011511910636951695626001655383653225844984433201490404670257166886479820402226143952350201758743787919299410433045694731892928004797433510635256043934466021333919974184693075436578658466041118051158272045980263568732771112705368589549341367505640245675732823481157980036163226087600041887413665744653294383860348011598460669231929250040219772051813217761255056988002767218465045419981487071712296752378760494223928477477757280142250049054483412177740494840713966314259197452102114453878429853599908415248084269080234657758722939848538622169076177842345687609022557502770104044515649927734820050133588612612748796581227846583918114809040313430248750785861708418846295691473654373887905819808408369783317777844317794575384175458190129988025793322215917729073142160739816517317622625701867353673871644559111016200539809990438562682763663587230759211788817479253263265580395601411710246412336325204843051815290256984903726757489427557690012035752433725754397577561483021908488701703444153704255909768763729940678013504212246979757856739935587534454365342756863261230615404421523413502180663050628755051436948933809312821812468103715519712743674260017187589676547850004666404398167261639872215201359299061974824647760550430561609800399884817671578693336543600501484758624130319139786965517645066096806059996020651850304965621388234968274210477912711388351293604430144863686471014209124767299846252922670425155931826630040255027198368924373474352919222454697183254629937903524440368799034607793074574526431444636121284116813685437474362165546667591736547417164730693766703216347209119654970056372923646394288276152753084176444089270539598561535532704280244727674737629025351893404718026025739284152422904665094088820845849879798527223302197959485475462688467672785822221341504110350329338695761410857913247666255524097484332539954330087286982310942974433695028263382229059092594973062371122046199862743072901081571870151048160465387501262480422079747943432774201703648290465455486755064641966136846788204709348175514845188276166411958749961196128252275680351679916833893310757040107056877380514187696244606831437214644251912774486296992101286294841975333602374178944921145455077239398603444605493713180906789879566211122858845923621461483507668104986902980925399188502427539740417855790880373619572466866115266119217697381122403661433812326610348635325024802579659372689147501992671706733355979717045221205627600787493625852989844242340677117682147239838219831584984336929728826787448801844130611211631813889002405019605574019143299122175138851664261277571226085240189464121140139932093072009696422412282057245445703688310795026292742697104600928180695113421567184345681293450994909541431963613258774597346004290207785735904240873525843814766648015985228519064823547761507354454645035081469436453550171672639895621913826516173005146184159319276907880902519394156353882666154224568261644964580679893073379674632793773054187947810661203961195654527390699834920077862820130246672695825934787997008912882488576875644530498721302649177588161223321739328660155266250406579723465108658214578432553246390174347645201438841651865139069939400002243063984052653400947614173017041609662732804790574254353933334357157892476324802884687405586140388597995353394817450616455341163946814488828103469730110068405946531491976212846166882151613969875168619605590887965866412408393534252415452588796015831756492345160295482848969087599947626709344270935290204752484639358447273251419960100113483281602890997134882378689529853553815597394839820423859062824890011840839725384885121959453793486041570395634391174412605363854984779249429158921209815777052078803911770911281753878899033483517203491317717440953965963568384436343497349890227568870670613101455600894067447257422175079805765133708343291823270265556396473590552409035232197635880102081594303633898289617900979705708140540922050537677238969950035311937366869944784412179552909289227341508528579146075489597187593698587712495115216695678775568076882190833504669182146497369341658626083578801322292490960913701620693680891014032250585725391469293708024809414432982358374540278929067090588164629233292720941045192979314045892526687634846463156674802822232180507396437911793744726595422993992370251493725481378217006923847326405799451578557665981570458330539633070541783278096675313383880140852333276967773574304405227396996098725224621720073823535796472581257191285086243117446542672676264852346416416896920188610853487855306285047597950207476809037244282834168653985294252300534364965403437330071830731870373851348096080281733497092497551732028190786128074554791259441839359636989254626095840517454820029293934394267594009929435541901798093358677770958646134300449284668988526726982986715670179823457853036327032674833257243201409255245247522895563760103534957228178305438007455060449332361807605451392739765622074874481774641487687548399006672324265272202681949640487687034451112314429746668623689458319283985392185594800871423054663607269929243040371690727551298483287756746857753505440943675853052344419802226024774801610674597461208046781930379857225869503049054577768854013804377496089454267778259575089740123638797154812035091226079588680560967969052183558903597162428678561564868071003982804538043060038185290332464350759592700873712592141529379738787840866047799090153195436123179405955280546033011390794399701976354480527696410986638184687091339358253316430144613964187031992138206543622054056684727489197539711892379684915471141175906535542386625256002539131935708618086511920565594575371591623867214602430607638417432769667321588599817693963033533537777194184876952267495954286932403980212034684996693850295519097084083825627355588706959850824433368897416732650549893078268485237034760459487304227215297675681231009519354962108707204325723913507208560629388276928824015699098826446261723980229481059051233264651104894154963675700644449692730949019398055445160274992105275136221695418262960017272413685947630484414962758926310029917358575983864209924453795141921480631009919204676754226237791705868615651653134962663199200894620778775168382829363940909204134659034727255645875874445194886458602388183311455339844289876051504693957022866126678606935074082851149776874342687152229255786111854000335438125182763503177914997153902655899894697341717537291584794625342854168722381269307178486468565116707638340987834096790953817959869628987385459922827024860602853539959113377566060064563911554334906892133665764748652569732758991219219128283317633679087910761901569104895740015802208876046584101619649955897601706170209994004352134627054063684052982945154225618237506393476727466353163323122666473149711177848777216664559223028439347862600346674369684142016094671072042454118462631274173439780181986777907013910297947155556749028713910737090976766011882715733796031428602067172416120337000491508651393226781430266721092425608965629126118930751091733086922096088460684818263242525950743288657312116030049288396777172828831523383332914562667207464478383788160005682026637338150642885510872610433913832394071134680471149051421965918357845919627952810514830887786146647749532076265238821850107695602235613481349110427431211572037418522856090421118208289804424399779077643457344058443587688954854219695103119012755770092452884951380959855125180005672030629488122401991276132734942046048053696741548554546289809498749582010558572491671008599058221165541856250038423370718470370691055305658818420223882327918396232043443800300667027978692718728985938711475933837392240020577440870087948426114831282997624812999539900589481960521677263797468867287444113345681489613821955008238726092560106427305156711577895338766463033733010029255808222273346612268236324965656454709316042912815188239732204928635732855676835141593679908473621794199533439777462187538384497306460537911631207517382860032978553451603705064392173109664828549218461752243606978507613173762890749643213370250529449232831755474043842007883363879540008525108257211911340251455438889770567890778794447245208059925011273008363960292804737539625033123035632930378661593113698489819785768390519743270171831344028144545051109522608898339396431239243179104781455104919221989464123998996486556897169579118835557989977614358375554718956139979551021131038570562858929742057197505433937190216145507820143970895868602411082661867950594726945497176217898824043941574024726725227515825586396017601366929014997490636721527803386183660537368492540479997131939184116250067313591176062558491739178079778902737555948892541156120821048963235520874996556061199002359235584405345556257648024469016111782856916914936653717075150583920630873644512059398393540861018427460752713215210394937694475300281831552860493239436840122784641859502138286631521314903275103781394591849234412885623199757586027333829475956752797455461755910251599731694537531261234768414070751345729229501836996345813760055265404793588360076621432835676173519424152133011770979893242526048418980328614111573458685538569061250614218628999030085872670149368405199708716342733083220093514045841016606011307563603628610757885192038336547223959909355357522717707487093450756510364267306132977730450907106612752183213388737805044777766024160710253629669035998331154452894228512230709968142466077063763504784728786069751173122746710121472700296682405691051697640670775885598020881507922727815193917396810719916331940240300506604230740252294844618868269007245348518400328107075008488795843178900923652878226224209622253330008864490676863440661626335761153149898081413181796454826001168024096576224341292475347652921000522681416512878518374106354888670511906810379701369828842387914875050353728774384345967193889424346116464014404533143182423295944498722418402183353997912465332897096063887200148183201592262309432727148374027353777300625172653166426109247362465316271813358977019577449582431143813037352365646076600341815317547266052639600335281925988083637325574185352103618957962010035884714326787549171697812454433373585279373492284509792301402115237231745082533054053463638682274362340602631130908232182182621330916719432976698602667481705667269716053565648046249712314333204156723876221556242572372138159236429823367151699051345658398479935496856296932878740455945103806897972144428754315545336922054391372067157590268153008249741380529266752874545263941882031535154630129367813089971202198369872615489655644294247127644768903537762355498361002082105126065588366247949692908080327454538211992924178498145625237717313849601290071749164504552678992871672641052940348174154851421853548387691976886240859007635338572823046371387660219293183209347335561724126941329326210945391387989699521496449936367256831591129590441590348981460088907698822355269479220445347524412677365742199516815051306955767431757304298974099986047418840803339018887314160564361666428504372694528725005236280574911331126484491997181177822523479723939929746964257115641148488915628653827665558193931322197308504809074660885364924523175381308679629121778223650865620935641418017053677405918596777761221705322684163819375671089306463503860551652969727374036351259354779563730870296104098310199797434399787139424547596223527916097649602773553909067129232711111660139680522832662221493308744797790022939675053177381686084868422912314635934155035338767698308674289133966486910374160582662569206088071723853628438091361786738142566714700368674162606692443792672592374791399314901978430266252585756222677336989422416414004370623641333803227778121917795658510802317301247502307133295668563868892573088041850660610543361307267483507359641780680354103612547368345918891256279920983683297514434115250296176320081741031457653893761456180064220586727313119336694552119148659664217350862240765477299234980710713307334564501885772752796444416862259350806309893069388135973249594058550582308756131795388234978830643300927636225794692988300770736577681379981762919317724086340310907808573769154263246082804172646334387327224225199438221152305462818354840226854209345622137550239373293255408992337731838249333090288958846418225963231295428695677730918119564333516274678331613039215328254939678365818467288630508657064154292993297968060431288150184387696301851726401669181620649330538225935870769912898169575994234655259884941494785649282812952818187725417199578589765727803366962799253430676216083686662340564399349856389294282077731058480950946620688466260415848136629280322199134274232791195613097282713354479834855868921357750527939290738088025705069602861017214027085703382083126547892422339009797805718502056532154686843058493685654418084480196859111002952503395534934006052509078980710102002464600314240928156320892291706241204818996098317963777482486742490841066561257692648939353672645630844372784132956934043766817330348578926416106048079329407903409187979947778962237296047313029301398585398525907268422902656995803620474417062972837171866979678735908312089086217692958953378267371886902694380278215073434262843172265486389711807849519235456467900290584765308970981253915549389789954178008953609502006923667891253302428538513555857920114273103577976613683938671057950100511449401240904902698686442196362728185200907314003181781722307717439745362115877971888132040709201949290954404785955025382912501514921424402889402181672268107581986072634297772120788457748908939265305610590763665424438148172418367716332105175976724921937076101052459689799719420862599271920888670454735753092232368042263520125975838339099051143808966402041865830226756728770234699425556265360974348514051179615630057725964374626950656479433122728128878794365342396908558055322995552799849043609073016175552328450256473222745102290384521507792682192582774731500183925482600917834449668960805207807852702339595679361458248446203609306102665135212367984329527625435756996967281797668772898297704261803676093810808590062398591259568299663131554004733769858173918685862641160136586918910220463661221583583742746917828471643375783449269053153977641736110083568398941832043211295461582042068475862206078183893194998139591775630172198017492780691207848947533954299388931419757377048500743357802309403756984129668299265821709074213319649960023240256794096315906967440095941887024466519038464637348634617321474500684779263896467942330095942562271672674695670721873890987748392756706654572780933385229047855794324453248735806162004175912563621985213096753611299511467755088023204729881067420846659395074971729857304502089194322512546146917106432137099494749019100974928748115494719305932715158568315532644802280509730498183011945927771223580886639519162197931867693849564603034186967620434552263535509655201116586973429991653944628923579734692948440293340402951604682929402457539711501504740767227712411982974881371117541052628297830354102925127758475797743713054279835135554912185927310567568072111364901452839505849108768051758450249314378515893871550197007838497711002503933267784919024503251791472473464373476353168709989403539975766441678373766350867528804966041611592193794067971564999913238828324885632672888774836398112416558741405159860542598079161648892185647053046704095389850331098742341924587679639995116835920219798028858682698639410821192338178967541126332057073396749720703829156032683771583566520563145748995960066908228838763860309365683020742935794037704495583326411493127814004994886746146812708777037605910387990010009886587619942731487463099956607958045768262856803810898386409666074226202176001659800313173437902157681439992763030894224324791312326519950944999828771858648602001551062256830962351864875405356582470809398794472947941238585860811438366517052896981028328009063535754003416368352162496789659485897577376102758932657009904618089728804940020762462614047144416890095069823127585182805561077723445275938422362164447334031469766793607622885585458771581184952448187474968197659390929274467162459124789735119711455118366906514720732601446833091288423017644668579645576282580449801570784692536197099628834826306061992714706268312106638969400237033107413642201849128184781425852997962386625796606340528399580627523821561386952246557802874401106592195118001833413673055220563159435925990626770948922748200927986377815035999214981294743094136931153130932941954595056371510526144940286724945356737984806916588193930733242997565334900975632550201786622738808673357103988870333486729131415061943274817495716365432790549673826686485049233428962680321135872599733767962301139923842468893379551143108051852880262901355493186528185603561687506286015624651702833475209949266618394794144223737569922535679777260986290937835632124717667152152923762810759100442959778604893724525548962844940697733927396962073112436839079192232215735080819441264459202659431601430534442805162986940750333789407539808059457948037056098197800630852207633154291855915824327459238262933215436109844072368144757239821259440395760679289947642725528202900226778962774360897547764800155532358902432955077892719952141717063771391241180174838627631710895822918008304937766504947201100018359434301804979151460101462968607374700256676722073288877783215559365680653004749594135868645846263983356263685226106062553961786870122360071688221384362954137772024190956015272521727893377027036664766528020043915151538945126445432663584262950124117150485417038279567603474326203474935886335221220780739918473221378568774190143886422880593353650746248306444251214749210873577412422732090321451546349268397508304305551074787747472916894077160212298943231819644582772054120337082902756425816040357714893786952693513122728819332859851222415318998942979614417452314856419684893557460962468505084477156940163886098507616674468112965531556065940002661431936171194241283135984104009077595751339370611262833780923009777728842578336861595180688515336348711913703578994494346904888577958521339349055619974407224821677312401615763774689427338192707081538771479862943933394333864734040661639777558769310506783811475771685292830232228783181881497998929043849428662623411870715131556289191557746829652580310528075307149436549194856882467165451407897157242948873726610236819413442930658934428165921182128218594763182682992038863311045533112935150127709518576110233585676715628342101495627783330128244158672892166135550976167023965656706007396755596594704400668577125955208278252426743682583442627380139721474787078207359801141354425675439980259034794717470819912740816532515039694859306085976621971971610750692046723961832873188283752271190269010570836362675609049947487488286736750111505859655366379170964705677451267831974368861240920350635835875372541873923190835189048606158898392716304732708692851167758869666630165343946245703656385849012788671191240890432414598681041912600402196594813612971335777954919855405091129050239311154617115894448051153945100384005003810865426327479196139985436766936692555765629267633944677106398614570770146314225485548028822396653752755266008348161398706500328404433335523407417577596958733947089445147155366554148004105721609947068008016205733230271474974841890855527954629465072649110940073032544199757756189305185368929392104000171289315113730606793484682441771814252856869902926278334106548459533414415579205680544666619917813238093659078935455206238418758894859733733509393606095615143834555333374497461640194202404820941887462204097227427240820984900650245028960713812224130993140038098826697831945461242292124327007172308135330713384240056275888694644486184505629260476494587226069847092485424981616325186496325926896930318677073701034145860241790401877862963875370448529769139191416831434503310780183436404106549694389934846786944400436998122805792589899174181921143214452456306422170891396805264507963759629840469512466155913400049898725170626880095033575992846202457950940233511555057164988269343331630890153301438742783489288195736022233380092552072310960979672509959935889929102286578664100389906372960134999009868223179393196421613072521195064236404506178098654202413536248970702246688896681312033385008897212049039560974549779034687194687390891715171679293586324376608981832481506408132558524565046988474676491512802266891287600525823319500289532163302753188588997423281968486267129763679035302250965943412171572552739168795136711791740175578848313737091605195300698646957661894063799509885213824289815797757819463254868871748604493602664048118280580539494517560358767231089654477042400299475250810719438892399584906364886398072915342403499199384255893147003839280994443303199149456656704197828072347660189172199611188354853118665424835398382024448827807133074470435995326813497240584192369456481115725520654972862904338997329882214141959993651197741443099310574163070150159434815756192193434330135864548394842334027879035387583409402043863232358208886757383694341969763983013945830820571771310722262122286835899141677585418743092961421808895770050120914381841282098582683886020163184660191700489499537354837013296885548538317455858790059148039597697041388564572376554781679352704777715016769659549298571202214067981053128308177358393628951353204754699806888779179050527264626609942792713697684415853836956943261941244855217660505744373372011065343831239689765031796187708571482115551151968399114360004801322386739542927440095384339780159218127803558014462658370122004412912432408864638840536405232434235837354309120309321834521234354492999862162769308722914606284080909431269807863192348616877797428865999803160660260086860310063744627513008192441553342336213637277479510265700778249494197274603334778497335096523385650616174802292004752013295085588341790705734319045726042398430042680228525203451678108678528453863418738272769473692884470769810817551870735467873728389204269906050691760798205689642115551402305472866588410339015875147587875810841401360858669090995137403973969831705414432639756870049781921414606329260010821997805727235736477307404614477235932349016027562207335635177597771366100933669206843153510135478713603117623370723841369421681201260197861679152654386688892564777310215898883265628138090041622987104499815761964263299734505260581559958343124074646548765876766924483269460452775339785079116257099199651986908929838531024496441110190135313516391076842650033010449469014700785519041840347565849445687536864521385347679454203597801120066130803172046054545506488452304126956759362250878671784118196603020810231973759618859143184233404636503573435356534574458430820388930327178166972814083202208213574454746499784542456676740578531430345462149686921606791311840975125059056314226808054670405818251330157380432260112670261124042861221217842023231791293455300444608761880283043882989246838099165733926854192933954193949381335790116824889515522761336435271850720486248344658555371798509894550443137471509834096301119150734712705996747659433324746601034379166786487393129020451096490800767288342909094346232698361494902002972370716863396211805398576142626879469224697162778800796322476439502884632820207802478799459684251519555278385123827481571422210427134743972022927966642433749553886012874617033974017778442149429281487453441213176143335771723109693423736848060446150866122977855027731272960733739178885949493866051596502583940325929914376073864806525989695997688481155265449925174273665304019660595308348274016580826995388233290121533122480566247327344092670649671974162244341474679657760905794321305809832623848202677765220571085928420152450876451611426192003509351404849529740934547797134235038516134721772490979079975180369041621873357897979478085329612997674643701751371301762852199875767650575960216130120212989590025632540912952054185419782233606881468447990672257749123300904372048304479119068429882672962917899645006907491431444525398008935575814728738714281199850870297820385365842694527839215218826957052731443372897169740577650868778719320697154925600227780790768131815324068342998452179154253861451362511335137286117510746850463661159375528131725487111475659048918462001408555959184883752684547742440364163552510795248040962320879170229564853873361563807513769706321335502349501862596300617394311325548615378550069952260928080111783562910210128122361624071328494881450854939001119086013467031372192743980490649352812812646606451484021197298310011511018547564668206048507330098166000057454778425119428077878358871129691703694984634607097492231916978534898071956593504598065646471935311344323830841278924351366187714099881882997867545724797994661730407008443635222546362873637991571090907343934837347728819311725955889725403711814826339958822467751091288378368340865242929064873220518585568490340759452038234558227393507289107583156525954736623094341429821318680734141335542698494689994763800893181398410045910851972164189715435482045758553586372666357092805723538519517502893305803575214914674137175140524718889683636347444183813945034752268388731259501252415354766958008293152629365152079758948080033798712996291574928930220046766416155884152737972596278552355820740910597096807309866096094391147797280203404510581075970873761239019456659508685775830908000453607538684309770625814097421830939712126313524699398309221518143181703838745752019777633860626262066332147530740955048285604909114261219074232468721649757133757226350430885188200063599293645880805333565140001335707205495935555590222980749697121061394263764759706301357026609926900309394702796825322459732130325392842722621537868999070114920307594677163744523376813383196832364615875221549071721984910277866332299936236896976732298821096840735306348486446750485545924967088331706869683914256722865825442979671022702471429755636692291513936656005781711360628035671816366759061715029317636095914791779822090845550419601410929558600263410105038126479089993677867825980506713258358664819046187673579089066126908827483131611694941866838562505988747433505744000829043484533589593988763879783016046246913611850373946013038556421216393086202207149059034013179906220595306031241237766504046147534138434506625243346574523619815165045895423387336684797439509791129123813435664341226324846294135620615051589756054278429247811410662682747060269441816839123576194862846221616207483896166407984829685573751847633835361988821468341744272680363855345889373409696633742987984905736261882300231604539141511045082964108076369536791777413834998812433026966523217328138309144181277002493732327404659369017220566772774440983739802936139687722273521821166788999238137236752825308625813942337341367018030929869507691727798284644679101374228700307190698969506768599212879042078020756787671365293345349761311774749330891390655966004626760968692720102204732388273745384133226767034359875640979101506302243163894568421990410868541322746056320294900926568826222836504116484018034439444016949488444216572818365627128786858786831513781926432681892933203636371690140635038472775028979700654898729803535665407160278810564498005027675723640716632690301687573769632291541321062274714547777013871492403724374219795859587029697340288237697757853466550298890614058074174739594307695495896793381390977916433373471633986968654105009743920143982925875987608399702034567500305585516009288683175305889300143898435715632285045078644052096022539304137306890250389004892587090830471611066219266294031014031541323361093772061045688161114775920359046277941578640310096188745752922334952731859330746480154055328647936640907858468195488584718209843506959903591666356218219641951695911694515650248999584777346636678702013889951383832459614566635949941534374542272975676915301878962893671388873143451462717884576217574361375148348671461328367329675091959649000966425661636092402429485964926554828242271264007409511487432141584843770722099128003667346440393376688690165380897595784397443953061728792326911763703690086406405656464878978900902252946976943548930825944112978530152595406406251367076778576024109053573299077554882980561029187552085867901914913722556003593181626960971830336031552182049978757728914810138704356602745001884351331061975841996059172669775305388976945701479771221332704815655206767524236684269123447151016599880661768112059425681567230524014504251303231979382804041766400562019186322194552499334385397819230839244649795633303138268771669822481190377765664906755662052506207046795613731916514494353195348386479267621043396097377106801794928645494026303341083056105622217387955476983378399577114753522908598462817547705830127454028598719738135884212171661000249551663098848093576124443546498712419017812355363587808806586389429845095536100333072916650576213104156536336100964142807464643408132303445656492683911070702484164958608793356919656931534641987010857732600173268664303099133165623784477852793129111973669712869994656039212743958391908028512793621020480682626084086284099092901940040030953700169412826086975049112149281988566925828176854481667601679516029452528951967502703718622331448251612850515272247272290679152627888018985177072605649529430329082903091362853761467137760557959643424026197200035711642269346146018531649712784073924262880810172033859933255949384924511116130869078397012346766502412865777229227988898641714785624538090387006063477845096519547908424862977443622617623292172532580079724120026698035942812953902388176811954932183566134053125195543197391477000962060838846160623223967705201396311945900199631970622184384583485483025496881605354640285532284561335291157104155090227745577407946714583229260307608859033969371156138312884499483430573817914041938076970584528875818144054207701584165660898992127700427313003097637465105726651664011794350656963668251753040116658303563594051919744272804741839649483052216602264873252618621000092658854450966375306314994277127013374956445624494355386632036582795334297579254336093635881444797706139557035836530882979059838947182285750540434374687733215677354242390656916004067442403255060399006748294002146396509663030165648709241360382651518817141784875354608202190807505370561707784763209630356519360017437068677607500302303592770390123884689075432060920963202204820923954642048295823913587735077994148003252771873877301369486666935382615610988962521616987222893612657692706922974291793844674565802310689472285818231523184691896839469024347527227205759002060691559263687146372627107546619787567207931889180961768179327899933602319760188282959728929341406207949409866237463572756600239760424695465196650319033598378664768247280015267341074547465753667269624299483615676758523433634662155626072892936131814674213596345181006968140628737771259231769425567269812176585379101001756599554527912389839821894637636667258681527102591351554768171615796817767694743550252512946948242123105029131140535881232141580828688761495697884289128198992246986331242537143656451293186147693227880086000334489446683483729750575590659576777705087446648934754187051093372029475919339040071529138859477079812669753892077438667775381647436812542665706800678009932691726524751212954279774449701345414486149643642576554762547606293713743028675283483010195527478703043751062304668977740012927844919632632144373758304719654562401131156254034393849107073368170342467768341713155939150574859729544572655643618968024819434460725941625841668180051522504438095745303191841764843061282496606010057017448108323701291722257922890053917716483676942059619345491309652647849501764227764464614485660400760436447793554107465293692979279332296721235997808267920966429275169681339889211147834555440955156178782777057453741679475503470269372520419481852040025730899518662372489177010531956677826303727276118819917337826209614289229107697727521993721579551807474295354291849670828518103245188869172933237010063387223405917076517748983554010579468677404446108958097663960335293589644849352656127030150506262495123723825651707047812381973114913592924326864058224594962135431675761948139659832697141320169425367722413673590214226163217688850002056807769792239756025134915369232923498952971801083385427223467966980140290828408657381157814692339161766510429820548595289208560597744517338168841803179794704039857946718798945830081388435738015783401877560563997740411402758941359611017299610461777374888783267374704294487130539029480119882568889122784853263706127554439773566874092772192408956665622559000502101913038542504994334637911737295732586206816300724586501555964323432300536092228506358777295298060568030727538291981780794139515262509391570562314321035258260223352387512566878952801361870847389518282875618390047359230213291328430410429237861505232452218081385619873680993780551308338850967424524544655396351016722691078941754348987177487223423063148136710555560626624282868181176143814601530846732353135845957840952331188814606116854299762125091989453297457376782161001173428265977318857227465406747642300609095088513282839359338513795473755182515300227523222465442656653332125533414678552043707660721492041987358536881736403388772249891716407016024700754581492860025856480380583007232186075212149820337754010126909773257409369355782096924072015811743168825139775400419716824889164747472170250015068192946658415259360818421318259557880470583823627121111885210235062405085288020621709224450129718215923840557535195647640648964678059275778689241588015063156664970192540270744907072529652077500918538729339340104653080240518242017174061464805158109648611684501848724132150737283009073226275814158010920505876726767429637363908928173202154228557550886828832240102656842518083749972987875134666199154055355062969124354533254197601365358019220418865763147854340889623456645504523528458661224396607605533701053492102766875662465935172151685452072102497802675310897317301654093779287373410139166246631863999898458204104445094430487732555249076928332247263462886129211503331397277081771512538939649367911090152652103952223514779678894088394361676870906590795570347594938694260016385163529063701118605031066466024824174506936396357665792198335314423520831070281408832283256391260834117955813306209603265275308064974582885724931894262208852413885850725160651065319770229422243287830620784939760476879618856396216553440675606350504369797119966033576985399783230958122919600356083146833283692858044205726152543940394732784321548372057594571735429405902589903513198712203153678737904891498284322230841296615335282196357609813928191636503972423923975412596881390872520995991961922959883707134546740613625437818525623144774519470631844879217585933538690599059121282018140899891803295705552311096430448476011010173127559604272379091942252395825055484095991358671601368516783001206985989241525806318086529437154163292060525779937337203629525284323841234065332828453225918524185907640776071222628810230766233960861236969484643510020304877795271950002846692960846903755733263701643780970191254396907407946375281200100741520040837641278461155256129435032396673907988233059192808237384489074376452883985325116519433548795833252330331276537959887153665027529065062363407276618982930373118339010103005843032134951787699255368591693854474246502064276372978051589322324455098760347797172143443326709442946889949913566391004555785732001050998579714912996859730016312644427645776609595923710484227766715598529276317013028558765386403743215393220194641440664803777625513372777212452990839705879411845413981877959623324926446198494530873819806821516694351617526351376388123934229181963713956987618334212441337718814173271888196609648504493368311997724182638413820320302409406458662045469835449205260605220155578767391806105524452245010079912948179205077495758333870949032760419860185719895235952603248933466637795813885720320642636528559235364332326424506745526770131948946667583021539081728454940782410014142496576138356918091896732659808280336568075910079574000551798444444886653873468381152714421366173704628064443375570209177310680665399019614006709367812658464649722057354800272882995548881911283807881562094361457646483377171943899690496178766928247732885035009418372461997023385375810298418959420419758150663203396478436309138329037988942505725732947759421738199014053881430894389786607757399781096538377161894388613314114703023412252088602874418068427562125375408368025891500577952160635401171210932662182578905623817763222627073888482686695242093664968497762088458988784970251528832948420029452737661610188398487669071820720228111342943034766140329355434248861198437811230146485834753213973676339325988908187061683906325645457180260633874175518049885789535095185985287258320928004543777343657885784931578200133334264193538834558622983586696737027113411941873714182161386440453164749059315887685051254231983610939278037975143023661909033133005820372709960715048831061137133073710114031712651021792176201642872874630312325732350316983209624963507652734971349578060756789833262336526719774726562096423498450542672862988836446442999516247999920502021632131582966174847218039368483589329485649682799534813614401435296736355023596917345628570187037418700813085585715631567294731258481262723475126895782685968444114985352441626427174860935507394453147569687421955844941630436224288448289022608317668139875485414201759319143144519925888108002848610311261272975942098916675266157134234828161591630927950003812265603123862359009964513897330713701977458024283422467385724094912305778375198605147501829459125502095431971141751792272042563892500514717603162910114229042241605472319699646123155662040354841551296437105139434418344513606032730959332803354840475774221457693486762852324998743906866278101384511890357044709731013064949740105136226422892785884274794512521327642765741062139625590424939151852488743063038392305943811890265923933780557612752764976670103872445829092555775875833388878095254476700291930768422469103125512179236009461105308714299092038937591469365615288200775608823891511707575636558475376691822509979290247658080088166162830620769460909046786885187342370855389637751631631071835113671108179703202250903799867938154895911902431159008522697806393087973111455989556009299633356171018523888387476397167494384035111077949661983254564867084942247494344687357185128233344154618834479166119848504600360060908039689176203311042716601319675565803310012561102768229247604336655201654049356170457956773992098523019757125907792097716528043700226847439278784780740953674203459166452315039396563539410753581331357164858156632328201850979562545272183056015116782534761334816837162595845107590817310950390470403060207362280242846151285934360628773693398963125026049456814945924144270734055150255326390400876900641335021332890875117379990902687464623229175703762820558062244595722574733337200596604335944343867079601001494689725236723412811352773302910777237535337001998930854153327930552821238580879937137836870720994425370711061651623039099674994865302403952192326581916545708480259970370881524810399002328176376027497819048849562169827032991616015203090863712852302478217474358927962612276408401753374019796205290358578412095709051126172312928604445405640061418611021421070139066622969254116554737885164870572888534635772260093053460444350746157485028167024065264560329155589886208092972020427119202035369299205422503369654627131841098397946228387648739601845785334814162160854355080727483862047572743481061298893726508247533501662539291309608278335795382471823993423964516447320079390379806300312473374457507759830879039456092708906775105703585569928087878929073577367092469589115902388001585853723949507799719265292296085962191003234781565379066254575451582665822230637755675260796101907006923345445778570953979728904126673366119382715265074636075361577077954508529126277764340328077245246676403498681156231658445727103040757236559151374468125405208179176902673059412458468777899833021445754088801819022372889409465463334800866120064391433618856481513734179070635476493174394311765297843402038177421361826021996163369181831817190438089394315016125011529823056044273888076490160376518336796684933161407039538679021801073359636302841274016026910084652201676706374534256997236735618993611617373103353167912899445189060144538584990171493705807316256679804857353074163028930956577752933409072692086080571030591791625137341114444684151569154662311425435604565693069623700141595078946401524311889030842658881458412890864811881470341905808083226424131603768602327119042976325123447595745256033467167854825122332312907663389096492241873668624566407741050688120302456517419000902463660197306186812439481343981610093404319317128869376806295871490755406422278205508208414341425239487561194243036445015714430384114469652219980513267514455635533459195807163126183526871775339537018364785813674265630066782662118633235899776458016033634259601622114720344169287442077967132322203950770114809509358669426386768599278904566931723300107864474012803959311891003868987168209457296109341466556419740483525280948312462773287038302910377126755243142661969726520778058441813225930829367318325744065087223402667207467681603820375848885842627583552640804570886513581178420792515435115897330288174044291543936900662833618393502377795421677793601373619110655378018300655375513645247615613930202564566294077984012373709424919305154851237592145237769995762944051627871162650236468077697480306338676785301670881164993760452546212781449071344259985766676153206818600078044663175745272780294963717024670777917025112850977239719587394966447946918323534740182476464950576985966272139225220832822363371064185613895325225970815195220453281603236619159824377998184578842010065900416835551794870571744549512623433754598367599019509575457084468613153388278649405493085108891592663619525185912726649639516809169592886687859543592117751494717349870866514057102672821082755872903316238321783563804841167753373354766907736677134011008958434015077795960268736106478821077469159109539833382962805403938689025222868251242241519034533107003739917485007604522950208103458207199538494220886122607596420912062892101161241832536255987972830298215684903358296835197706313166116841216647872384219857189120263243933499869567505639453001285753386206464768149027842209011490334643601691032185311262374973018409824953597941342832536207436910284340948550130807097513382045698377329342716970939827558868849857585344287745448350122805013054497593996340111262664903137175708825733706709269978456296925180561792628742626742663240610222191804406105920075740502326282021434755972316014734851774053866940693680013816694759161609210967555737271387921858142480069901328790085524843200023444927287449027740973718131612877879365260907635115293637442653330161734195052915036639271796314197563254546756973266789362823900849483870457913524376429762161115354381809768763790738303477313883776318638306543768724067989294275500333413780049164757864061360174276425755542395610097862627671066267088236547059960069237630599723937726320737838631578981706149985795301473748952040096771325373162866901761149770837478032059617858348148486074901013018323840146091299764156247731657737579667427522392938039614591084668770169017380966358339195244373606228387335637093260670327144525206238810933296542955039369898532553870586570526352625081900114236181207600264056110966076056518154600786610289566300963401378739930236715344486150216029271890200123380520863795069324448826562385893025438127444273950524881542770213615322546606632412185942564770860958869344130204127477693317994189438351329543230943126900880741514781121761898182074805139779942295954561497685674734017626054213253748984020468807448757045628936567291295599076586402980927650843925592772011210290161166019665594607703190059608719634240114224353445836909155886531410121254082303696943736587701282602591363068790650038347251547735471401807305650733063711781423388373095254963639652215821663704511960463379950227792861312742712052004924218349541361881402170156008372905928879161809715795594986780146970624280268086820878945113500668009647836229943900870754859117323461010839559867904786427650525340297543254986317192597763755712405881034848944360831426870963398232325830236298161311180772068021513444447779956867317375930583026657335502150473938351322552461657711402231452962852310725128126843889506105509765362770685117101466083457036888223599895261400941164665093749790521023388695019004834230767455679681380061011993571133470556526645221107644168744861061397877392925614961474366115675416833653805423180827807234531005760262906341057265004295097167238729953533322223784195785206742453080661321298609025474544791682186989700143285356582438543881659693744605273583294895532691345008891916340011993977209093648890270100380161896535539925028631020796225144901430469199191444742186658686835485810728882437957092216600970664850175981706035330868799662624709091137539878721575020525369367232668602335336362016752875031446469888837853474363309218542715258817137727143963931720062847553294749044433660730237658395723902590281636433098886756442996350533608070571328427622720076502138185473261702809229234416517784858965736745633613538918553053844745333181661122818760365906424585148542094877143632295409558215500813800185120406940845898821179369991609179404298458719209523179787321335244947162475205105409764110307030257218794809770465869729472856873656489264201696697536941921181856312431627019850405649293327735821495963520488777884880263779463335557891736016392959767092864728333047599567451693785295382335028320872749436518226324978863924103069207275366840403520255718846110415004086123816549641554937150753358772249923519127646841051378220311638380108366351076563630520154568856191892007902556926532977804606620187177184075936650000816385976250214219567203464914795706258522929420212463914343992400819597579281313994279513126759954645507145437276713595895753025621715332628304381357382081144581283778501787623449905639604719229296028013542827561300017531804830771222375898312131022085798015524343743785445939796790363356377501520737312471537522126943862528030486314674414754580507423336444268474394272637654306843985551344834841942813443071740517436352082193831236613220169759380613582427590021705026118757823231841061369687822744056876126413886948239012880262994582947339032670098437740079242176817855381402818813782718831071173751945421102962488421271927425703735104555585432616300401748792798238623067232541643740350160780664871749405175751769727518287850706047999708947538634623848938602895139671572170493529623500595779338290184278948944714373967919016966739618007174843809960129992247011917428133357345084964752152704885403466715646365928736989829516832902979924001304558420902429917037252172853656106959742852979457691406974323582815797494878635823904890115736300151561347238637041572672006080455632411836120181791362430871810327210737700213015978485967528255875533077664281450970138474287042182218150843241137279340148558631160578179201665523674565833429575594468952642446104397894676925132842540919707300021287365607083528515074180610770060302296206094861564986222953587868943403841498012423845799529396528918596563561952719975579729656459277669836963801631683469027100645367895115159260219346771667134904851497056249507585965530462882124584457081852587823234938146422550181777200818392006949050441266870978596063319110041089418861675662634510588092957242125325889879404635356330704997021776844504905153069467149376858509275149851841754296765184612165238650547905110964389859709134449802187143555057473613840670216854958370065493648052386944698351229030114764588083598893427827096417758638729905053728516307670897607378538469224637980899989765722803149859057987065963549565752745796790468948065900953450153963220202482878805578720081815503949240437832647538053106526881854268203197180914544801292555427796226680792891844338934268392191623826521992268544913363591718474729020472693487657373313324912980487579357458930848890474800169737141654320350504594731942136035691610996209246502355487382372998838930873017034153665826881080124389360775287541960265047867411534903403516375101572661996858231997109332473268822984940847934708925649125402204330846075993005049275973651551098407418653651908001000414264435573651141498630106343921648708062889024475876712661464529202500738671709218173510332983678198962362453676095910499286142714434948817597245178005121130452871081841063564395451243862795953632524845657598989906620667106035936560612807237230241400263291794168824282078126858670230471145841475364837683606817865773368704094833374020408903590619726104491183473420679753011089854509580046524605421696057463214462105206576217983118032297357130495941763921379195358556619648565093143837141825666163294554570185005212346803089474984113066368786677516602927943113185587012566264346867165342453325903890314105147100896726833894995784072625026961443466169832372138343983284463546113861258977890715682791034460951226296776560397230693416493008753523225308730278433204358652926161620146282978948091741206383568958270290565635226495307599777530655491412230488682897495330562847074525806894249325687312953250123268124609180771460558673445603305388323056148776867280374414778761601413312391585171909591314147739635428697287970880907555245980114030777139319422362984694998391674927050957734170205568513936499631725817058753111573710597636831016061640248078191620459641578742975608275444257227684146233255331465628911224921852645502780338967404077587173697898051311572341623067593329597757096752942962039293237620700555654569296885378800593901146475162729352596420580198142966191427371980602256902169016063030214940605279630402050528080270563772174218909555492626397423086853037412251868747516404363598344328919783608302008151319996022126296310301739711468265787381976096513280848262305039051901158838825282405025374505932364866256063703541408069992051354752028536153028615900098455019957570935243134102989764175500092438730977809952796404116767045680387855856984617983027081497386245516770193398316365211763029354304707783551935853407965835380099742596154308668471736884311000323585511263794855398126577135562667943876318082516759722924297812592087744925485136695610441292188282191637477496637651823561610664818662336581123331123332767044139842991262402996856036124459591331436730647581892311238462569244837372006999518111248400314859232523745912736293902784478652641857567545097235274371706960004522249764550167731305022149557139081210086008845967618821910951611985121732936879017772670653139179024419677329725656946046052849649954689484416923733862449335321069226082123947422280872992299477892052461964858670055449038309320059728526214923273912914313474727302249534260207572530872313236343300342000275433744586727207807177580796182662403130483999725312896461027022909711177306573302027392743873415955359860582574256134140102374853094122673348228207334042214014183329470064321670396480466122150020561548224015737064176593669643417464489790972091393424378748714011983529371788792973097725017523556749422262241544342121805163759502602677894436391442532648576253854324377649716751140808158014045519722721477538170688171352668113197913273434086718054769090827734700679969377695155446324274508605459792619998788915320579000031797226553587705430338161375084834529772057472476681113125609835442175041904220151665228849016003792906558075919037009189271336600490399319046040942283200425450654438348330988157100508950712827358835357387792329869893985228586941598509735426055100400145305781524438697742495544555526228421821513373812053479874355580547928206271272053164046535767449688259844595892353028578732776852470406883297220581263638312502522162912854015924207126116425583520767619004434358254437057699521479633398235656640327377323465477956211945764508409217643087017164870195893840190080368891768865856581851443917857313671773161299900395843586471492443530211264751636596468675694065981413492983619107050562179591553551283415616553710326497962747084293519468340662394672719353464768012864361948815636841921205193701929848492168527629619634100919682229856174314165407132817022627534209590561787263441643708717408961667835353405222657995986906993164500263813859905160270288343312902065660736109043667916074490034544110575683337601207941775693990846715876238975868266212078269432189469233771668160593476860939310247011771645211633176475961047213389132955011601420586092728176009644767186025686082209471358875156524305031408863784488870735725650693081462634872636675914669270392394661427899842475501016825572283226546633495116264446214243786408529732869918925092473928058357604475437433229405580872045232372404999449593142756383956628860477829020462685548569245561068383660349006682717146028908628457066177990914319774781066822008763493562251857644302094776708268046936702700775431760981491344532557738664162487769028769749453807465521769544069722781849101915997641558189340047043338330206230256077244949551331931565762036621296822159908527124814400372717082445897126369480520939196936748565870783170533036176241055456470840840312578741720400582196988291140450920195781625720932594664346410179993112422285368675688116342782362499438297211695389502648902404813046224349949588886886911390756397982123640753329036750357889636577640366418655186555995337906916206012612868797316526777457851159950600863975136950792317693570974875750186451051162805829945973059648536960202724345285099976168640738391054556680000206809665029998309064597869814060577379937189447336224201796412963441414636687615156173669837662382770493818637000495359045703871593548055210016541117995173674653663599755269208035627172644737706108382098789368524276269537463482665589923384564372738146211840669665663529179504857861313888234624922320956882757379445347839183820128454801061611558091740854383527316179442621758618295114833990518907771910311481648470732679722380858815646857578578154958978079962124544499905646465268493742638559307480399448026340120854936091386740300369497155670916947514591649180135954795874182627390754525299243488510097219818176923387938081589753728572258588051069302800092384888060443301254317014269843409837410201657489877942861367039517318798270710188737794893590359203068145787911145131989255669478040548648615474001545859010746048870581320454832297873908432162372751684758224713683817883434545341938393651010611036941419290794352616559515860071327001620354549160119836448645317624611579271035183337906404367029774077227015853253640999179407240265119435203076528605850066582214556452881917501323173570531990542882863565638737521347180154320969354318531751050724556675494781475979112514618643695678405663875656746119850662171369707353240280466311754245508076438154834779618637426976823898529581493597926504709997545312817683859345347487522673811598975261757901267933616526394685956146596134059796949053062196076370044794198010778618324963502854075044458100715433804196020815787477522458131906994154147615144179378412377125426094977713477442755522509273814705603419365993925008112890819330216354212778420067033920719988084019226640909443632455127121012792496299817304163790033585953635693040630326571971770870739034622173523884737775176359665397876693897468463952416859803298041462089772366561889005168080277584114912351723230099815745855179101491801273465935779845787385902930769958224811855338212506278125386156031488264316741079516239809063886774684065150309744718296608337162359797237501873579179708092755442427691070634233557200885053747853405051806629067192166599888640230038359882630756186112934437631054827196275321720856739290245327026653616436246004379528249841672077364849931396933807599377069141023883274074756856576136647642407038924905665255740305768696798792110104157339035220519783462332030787248741562396846909468129585867118503630581448708520830079009573044702107432575781402117902200723221014162308717357776024550460057444672150648528352475161867456960597622545201824806655128738045739030071692205298084896259179764319534860029338206046786898467274045246769747223834261296121649814543377026615824006699334998672245827555549486783210977105515255753069625954558529592415059330322443727522352682681209000869980025526107530525989551745165341126205936371760626802121481112312871597259029754220054066082969043571131292688114789692944502533967367553993780380624555199674317314438048914781181047019962573587906604864475827673268278932568746413005366071762197279197922958225095447501445240398415230554781804778189030369302967202272020157085036101530252822531309844938767599242647290063712499863324392961308346204497082871387374534834772256569151484927084247376828313206096128427118933301695318702542461239567307790592023162841079385003128121024864030384766804240781547512600727855722530796144905094751628038433697480914103561460924620789104075833037478824017594322007788756331194324626614754818214892033490130049971277740957253188969754931819783273731079368743120344870236774587820928669994655069619551584560375434808131222983040164988674432731223510067816301774302451180709752634875550503224640317980559618626829179784829508435939416109575630787503193400446996351023826404009850478335883256663391448789552082478067151778327925063378475502369001506919791354998385311963730436903862490123000762082008738090283584853395829231037957368955525485018000838719405306347098534083128772604675592257701058509443224867830900411652502133602335241488077325002587369824950886001212704853410072529764879556648795014278733564834880076022924441192338618387123801948147099848338398743892026704669458780145156990646174035338183682284282554294170055451427721310147558003255594620086004820383332078745581884027925930150276069012035602376784907072617148303928070048149780868467363644863528269163895694551215018258273531681070005975529329520851922417597090165491147033911717223271991000424203937016765565798542465531869630264554510746107176532188192925236398386844144295232341107248136299836212000221442156145670764057586666667843512720089468389247125094436958201340324631383193809425690349507493627847232754256865295154511090888576044529120536049578893325453042120789996441237576619849239005983352889582038778338975550068663497839608576363295080613652938410619849290061298065013839214260087356115893113503433158946517059517697828888727346013422040964501665147136756234701169882561771433910546124819621261240784892087829843004502067189266221985833905991811706555593646726660640993361633581173481968496712494313167258853135296478364188829511832646657716864616780180058565910878185042385960469251459879945203634374916984314827865642919999036834732384889988584978684803368555798285052955646818494637062964628514127287624749349113654412352040796332834225291038442889467085019737697945765770451994917478150555433814912663949435243376732591836540518033289328108676548994215391344713810004285988869724191808857084782260541282160632507572042295418242810908273024455203172928627841585499131681957434023878759149675793580979646213858826098219129053406687297677113976424440958756554294984116515520363476937579293901793993472402087910642981074484003394286600468207582020764868058896420460236213061288222788567309789576899958897845685393673164904517220667365979431853341624417948602440310302668600252151687981454187707277088473933756887944590470986690897183636466315346282603922659340287130559061515007477287043166688381473106820743854882495427163246985540776136123252666179298418603792505377977783069040354833994541683328416759814752413760081658583482779179871732285180016545731729476978643669968553777767970357168388731420245093849748712735310249066402684335447582579120336207026951647371876618959270276359300385154141850815401405492646157089559339773247328899267619305142384855631695397180042807976001427244822561577960394754651755110375363875923974445935047366511876666302501088321629357979806562495914616522154342815213321037539868824017088479483860800034089560568097265464078061213806421321407001770158757508199711669614204054823535556482015788657536759179056632872973514543422344579837676586684123323596024098861258984916982265025197806071578000274694834699245516009081303608501404717844913934451242793431841160547131714905497862852096559643675964056342158644844897523162775657417896206015778022772441000980399795986395533703623060576819454673045511278941089201612425223227484394243818351203373356413758303576406086894983593930733145084066920451181165090122295156982387721437716641315410458997890007198036393709623934514267580039741100422530255821792755801119879453883604472113974311025292313716745605726214094274363147378688475889079705015043682023633539087008495135733661459896275096172256966001833902949732747049820171512278590232477607567621639744439685222593738983518204033028422799078286278885643074733953022376806020259735693839464334195105432585692855617576767205680830483716088881634333622884065294834704115024365949081400118110182667465044173225441891310526986240229459537694852682709329035918422872870986986448381491946693323195603881062812406643808665053301961603055148314011273183038229227055335268539171739310312335768593307564688339179792887900155229205035264951531341393352974169884831415758523898658336730841738177464647568183363469832910472367278383834294767594399622680115078654607157556732076050767534070371673185244265391187255463655198851896297071385935420151672122869307073673864861657160582301126289033444137799607748789685902420179493091386762179442885002775578688722636186642410536755746015447535696337833122720674354821778010175560708103449484268317605675306739089900215266027040210382936277147159430780734737542086853046541284572207311427706460054856541384188273800403421175854759301160852502364827632034143043245714673482232435247563745971587735990695792569094955114372419268280129594857000379737217026577622468367086156210980376120312689603176730570119678932712370399794444135337867666239250762943659420678699881891181279717575947692973363067518847783858093717030447016789130794119538234067279530233337808912505582845056216773926841034795946051206260637788388663434604264191336049561525719417611773882589920522160931815906845345944269338556251807710198303047546009952008750979386115779599991186724783663520146963851842708832523664389277487967879931387999581460538566387476840315204804252906128986328758697371158831468664031765008936914204878864922529165548533153867161349346148312734032291566416812424702429545472700400357325939882124910326214528759629874987266457420705895045095396500339942924785809902131126585069381696073085894383019618701252961493871079735549146567290400746090760220454559200520222602215236967762060031544673742140207989590045688242692755322305816118079035412487411011576530561108625683672540596345946902770787033746170034957755628512586623154928823735731770088308977695320368378389066412854893538122482738504422981101960707231210982229855855865345093376523031390141247892360400273690163228741126758304502465872696234770187822313263103769588210732742168506104515238748371519474660473920351735830638108158111221107144401455113590302347954566708908393825956849516171857902015741181125020276931493388527214405922187047359081618394294586326291131462148959937005561710172749145249677733635011827003266531241883353491978530973767188796470448293978385643534537867663693063879587559455426822603331056476187985660991976011965752911379742265290029192395820154766747143391048462646678543881712598873209897711229113135693307635718208349463446078001808578918589572758535404389575015986346924747529089762266863098775173192684751005469982433580310609779200458196861926567554544068039568777643485266097198618987627158306964366402746721671385851901204000618268678154883532325929695177387257032544081099770283980209722819878028715069384453402662731048738198638379638397986947324159253902523943745881153358708235123115741720208052726321166599309495807672962284592349520990058582622479562961582883209177805315156269067611696086880039554733322682959737098538136201888318687411376425497227098712417159705400982693460074672862744229653525937973753147471530974067836496194775924278653327252414641517347603074611472284712284790236650371419440294469200099421543481677314486871065261806770209834104255945176671495313955368655122103277482617479428202433357440932482602248585849849679420476580300266549879164467590237501324876196751558466482516699458780398086808771494380690757889568781761467114079779975635970969406617488433436925294232103559626019209888595160132056964665295801488485715777011359906500518898404718280748901496512708678859082043519606320577054315832368786366437818181322024253997493842609919658463440622879587201472311331914874632764023718112176013907421281479229147249563571826122596503804910873555186362352018253369548105448617987790655130433056733395410683962633534492312341044333602023743176116328194145443107833542589481809982442816717882506410454316373738871623897047107948904353627040220106366762307472617245449250212127710466244810786604493952630600197851612237398452776489078583926017399592512048086168079608723872698164582640615979317326910439992748827687972807209861031762624901740269045387057531345375706455777035138418287035484099674410218475506467578298046015979376165786151570269470298523698338943737462647837778830140613054156884971971397962253098448099918118428253710566301265334563060155544579081983989635444311329493480537245671963639083252158439157555004833433285984955855139896381810873456627106543300227983802517130589125102381817511809974244231643470360503729060838831129618520771083160693401957569721631480212161049856945258135408684159782756658787355046903697600793771071684572005396599309657912545911618504648037027870929190418607080535869971394993555967311889947866730284790657191746545440099933946640030943176899633085312126476381521000908510031791227227475379615726009271532823106576767397726320692053210341406966924983908507714137576344559900493314246954876680113349041542993190144578323776162194759944837419701246974797022284516701296335183330711758405787311250633320546703689308518231850256889745438755365655125378015438991516901126958819931539137168291838085700504216921957040103025196601045184256939185471497966782589598735043774383753291449260915005341948289616279137403808160106068476825798951201217785793319135858109523687878523331521988728891260972713167042941518079845234737572450570434343049603030843310589183768076354574157908640366087966299592357490720957055614259237305898343963962366938587376848405997180374232745141885366619155233668132103911094518872356768393011702427947085658029590631835928809758077445325439947779253842369660683804062040078306134225230157449458409099550981361213660514714355916082477784791880873001658006603454778290233661375549298140484418675123379468561256142399051799980880145763424571910830143220289867275574374066558052454314593271204998811853799462466862713879588580956890744432823210153321889389606002531240523315739893341572278772761087235974983370441527462367190622822121825850353039763350142511381802667295982432089661591831733247777869166683561904656431946618277782477711218383647174948987606527726118783924652330852588751099462421093197391569414710466861686804970056184342113581380796306503590290150101250824757401286357325295478830032118127084031659713230347309974140534914785973277001781458302247920844597675345641992286040307097158366313835316779634090978257113550834946021769478090993957567437550942773111144114910637183498547931371662210767654011814196402529732818227265217380012104388290362383415560479606181411433236271028835537822954040796165064142372483252491655051439658852993189833720474802287875761640635928451330178439992994687481346832051396152589584155967085003273971857590420337386049716133707498314524261352161600431972144915949732946533890059291217400034950790149006697390346298087527011343428403621251829868689112711161566257335756468576540155138298404890836442977425857560607409980214150348190732225452060723737574125039093445959031089196885320216908287476620025311774278406692721489429060704240302736928934149493632635612770944411635023058721728886348452674648413083084384568319351328262457757441127563247221116404988900877480910609932612048185708790099979410141049372732032326571679329971466702797125016661733834237439420337199308040431965456096762459011520926390233004691300532905024284981120155281921588768530444889415915344270371818746737955325788864878530312192974004364226118325085677109441317587140787104738006693156304112874219098640312941483595510622160027105469972373612313458845113893512057021407420141376804897623964065530121294091287533733048025301673593058011464120599650059120735486457613478801201241074052327397092938279379326986636069277544877676117180200998253618646895154360155549450298431075228858948850744378210560093428455601592894656411208547327257585494926008717617592166341393419678906188219506507092573267936843743158052091294095501665014107645811028974165991822507898538217079970246371012787978453278835317790221892758274668821743543043854547284578178839256717821294334082779832596813234308208561594874728216618964158312429894384234126695970388198309615861188319960953083527744847222596874981160942055358333095797520360642107518921030541188617489993220276577924935052842316950895820298958675693715575608123612645616846378549168026753508159915526159794560845752616350595209513844762015827902078625646024089706594556339320872255287648036525823022682258419845239643935951065449213644647719788545936934718295899715472337076869864236090099988653788188122952886358726443109024640310795310452443211500484414179744634693605856163193374269714217820367853777319767642801041986570759344063264229465793370095018566382677112423254744765124193179913197620830047220006608342673412388656067353244044092454047216192272091933128476930282470297808800255264833962981672438147665309508231883831355792499752181499552723759841515261039903061197252169973868265284627264186646092507667301126035274620260016383733250207972281354902591585258484829340567885679453037562819072467943793779603431091566736814996394931824333033747777226393401236388562480313738102302106054414375744000331805019732028120211277996616540951147768618818704057493544184906960963346541795738170565456338462697978992985970686000186327454279875651566260519686707332808717130967160914500807648370173002580142534766854974821822727972707137259163360973314497695506643055440948847863978145503915888816531374581164679151173833010283250902941763323998888139167843120322550780077432992656576824806551318878691919533490057912390456018690443631305631430965125497864127644530715582285354502530127492870935212070619997992060203871934533059273835083172730914448079687955194400088906670010134451221278477101327679760094862066448720116441177577114165299937534631517104012125239739621988942643568894020081581481829612066477565491690576739802445852586110373152372783679895340759986067852698097072088889994937388783986353257509866439102701758408885550470744607866892596097121566847407868958037362277836963405493620212407822658606477220955346128550152553075160864810218890779503246428156826616563736767463495838959322907322903848498849941258668967671746864379130690193476569388464824715417872286845020767317335080635105251006020259778866559009011136295462867426360272453067293430660556157159536338044819433318068504274080514358517602999640417204149133756207615204011044813575299609179546775020116517283105628506837547202373380667735881361304128624723749747816272239216355988366122958470858056595672069827755590325767260565700263608705882638368607672244448111163382294406400595152401029381448291993177907834839734603045407453226593478200235632081404944197133014024231244167478771825770400760625097408465891598389935848565802696588508227506943168988207475294553564905571186301856537753998936703451554123259611585800895426096909786363196630566721754243654900798899598640405309071673419194303877607208173384673960295494302519840100595091821626580097419794683349447017318901606151070319016073237730521795708484476068266719106564605184981246175655599875882473203999714680811925296595971911065058634168518950397360229573704772900114010707447211298904725986384326504438408396416503273476369125166945372164345274368508129753972740286440531945902167907565667896048077677764979363413690811486461553840971363325915189604005329332942795537642939595335983464832020726474378926026340153148022787593579956964923581656501764963430086503528240225348295457800195714399929611807453514985580046447871738869045496369204966686657358070756786723160247397962018549100672949533125700486469218765571804519166115646210954366680949595817913472340089436082185824289826534641067315748311837505987515543644675383661819620420872487895336587463458066442931413945849499094757017745116065707027533099696806155350750346845948019161680744907566767513706050447367435651864871389688543234735876383954624030595930018778843609830026319334309801122699325523903501177358287451579982718431733697007701159538320958257292876141373362279266846526795143505114188972957151830389582813108756392727615371417639079762441388658289985459186561576492453055985114643888493055033228978366953863946751265472756867904196780248337564854229694030817614621145008148691271918952036139289031479401551654645208227818947902263652244587965366899230027207596607511875917467146499456287784037297082118452113258165272398259526237248443394925138382049556119356321723771547211724840557893988268989089307815703428361828235790945493323195936179567295324657999000622569371958973927418816962101672657452295257613535154215469273273630485271293112883611846137432816720726476373304524046716604499360450059742306651252039482059635855596671708026819664805671218925441977134191856804257177168537273108642001977401278932537125918030367412637757098211401571887590604358556052109650035865708118984204048783987472930171856659633800115357410793416267389340315577162655713689004290405891760137032567723195466975129078382017480421751697275118326262989887240664310382489319583359825637330018336179653284824407165163423751758964917649127632140710253976763906058220970695025432325420056246196564534182958351503527942583348651876211792105042413683926873143894591481009515012340377447534835330459798576022620557830274740966988897002026511812213251799413094840598449486894543978947861235705751600460324591666422270774691449095359621066971026148684273527966954966343734196957342682493711217078822938388723024570781368801268115019110742764396941011377820933570262730396141934874735258359902090525141653399395615157168778974807967387610538527026579593809925566736241671838657716243090552331554742015783584483626473184163319068303708946302936769947487562753337249030115016175230896109684088228334610666028113779628826121670329658381516939105504370124901365477905883786113860813045121219896560938598551364117315630247167265613186398083807254083900601077468633801873149823780731914707056778450987701654348338861255357010235414648518483519296594714173178269418107783908137623285801787611839184588373779525867120590142327543929997624530083013301786006413662722003974178341458046334393826950098139981926478839040778485636995875897874255246286199581796550079187724176007081925796228558108895589918121712890595394659911286275722355115194003757108487321811105450306324190850400116566367732560058712792929775392649683938087136106239267908353813983471343744205772192588883595611818522923846309326285061857063543239621386984222785124141509367631055533825920434000603967866265662369669949027101926237249928086256263079554881379658014378661948140423496730699371379079821778808866754659633796333058848269919420825346651897667044663031147841298235193519191295680831679275378229604703147732097942251393349407741987409745156527556332177797405547329671646339741552043405393620195179255242393867144875295966790586522769848057826179510714561256766202593206543929714474110041720107810486291921008541415813504753797365414335048092405761244278583781230385576988178849624383565712125148936938155325315926767689316102650347259741674318814859049253395509208917131195802397717388398069834383459158993824659067256270123321267017691917763241358637685568817803628680156043823926174502964154758436816975979860351982289172941581447321330450566702201839254292392901525816234567516817801070316771391043477418049877901498139793181377209268834472422187951734633583320493032761527075292275349986060085086877140371929790152770689707810438073807047576088163887125065069521240722213107655278171783032092583907206451980581460112939516379082073371241527873252249828918414757396971862348436764933562638733341851766115040889968019329194410344806056752668263136424073920385485526566652476623461777644645862316116556906610792127687093779588613771876193852175641079612848595795366342980500498205255294636429440160054071789269868607514748342613435133215350750402144061796490983421462960605415396381155328516490414479860293888430338112295137669712123571881491538438597311835145454766005850638971014918248243004979402947329609076995613579394794095224106744209049203243816650847141048011071342321505412623266049230548533406052298094638654064695054050321994770920358077322366621430477663310563228475306308563320521948594584351086526977046627460549939414255878575584277513318510464026734237690943108998770586221568970681948334470737148633381721679001799419576216125244096437032715727182760554884682968424279653301628567376131596707075188902927995269079778435778452978631506181875296557748640072572847668224148569215942597161133928565082679281096655553995453224857367972637761091685110711647469444905586328614824692434007988859333498864580037949739762612480574246047897820234691245092083967155271799421923167559563683126555165189178967220616114889931133658706272408872928972599871799217106329131046038526998043251916645020615221329473853721903972481454848974366014406396269613517488555698855718866703984967549835375655032034914791517245746791589720139878135495366580415325500843115667889242942913924520948914011495903819780084626288012933942283275670051236686920792598119040805835682480285056593501444554641943557541238336263476917452909647578684764424686413835835830101500188898081108691767646665070838206381342404935756682306228962285351528611170417086589151990450597561984063771571411148795825774144114145465278730799776772634072193353182022713341911665362816226662028157814352475673238793867300251545473720794766797764544562535631944882215840081822696565215989505533146817279600142190127940983193990885682768617741025210866895526381743822315025256237608355455843469377907194958700613199129284895650297186956706092108236799379715399290568311648040475794878281447276642333936242379930987211136377574442933804312497307508914173671006852394788980601399359316179176381487662348475499524659769818074581343503082553863961904277753675032426310744277113396769227395632253688224626495479168548081619943843817994944016208078538770208196428591997525979752477127539597234157893406366640226346129772594359550858986631172326049014290174225092183628729047460177553519910147992503255966123392857560751592105783009794797976706008546708764682884419286986963817297836567825811560984854272042474800699777033663532092805171132861769811338453051105621168477261376255904117021867142156739921286687731159097728405612735583614944546384449904764137911355397021305207156115421210448447668986331215086012079168630342961955169901340177839198924676005008293379315146708091880176154773404091016001828813717114538324680512880320353642338799518614505368350796320195340019630364480980121225398616932415068583809066788196101720044544209655803243343250141520945312449837446939082822461341515267000855383701770674269920017521934986044678077334464385967891178846496693807218088412770010930134544675835295184266435998162333802481483060683398742432344052413011330091116327146282101490341178480397854002338531872489668368994613929292856908313748584084968512545732903997108258198202802530590180195880529585271765410982195315455381995034310591159917631802872358827197126232207024099860829430448941790720241113032710336828094105592588536508349197327124526842488581399525796188987899463567323694319981687166035227498068024979867921120069912540894300159354426289513685591478230323447809558598826479741308133858531755163984887002604550468010386751793338417940457554388625891370591462713788778761295220311219107100024811708456050691132027791579268813599091071369340565887226758089106709821488198617638181995548370421303379697285609936351732029045255983526673320872411519731204076268591192632272656142432941015616570382068851064212693053574747910091378329891082497376968921451173043843117363345271193619932397257296515674968954486115029556676990217675655727741050066651717677069407632483434507405278908901857696950247222022938328635176607744604765726751143991214672281892534009347959235289856861201780115105841563967407096001185947801790869952079727436823304915013790974604571517228700034137956098576071843664778125605245843141168662609366933965572923822216945709285473147940862606512934729533214966201817547344837367472596416023377911132353123315039237200618679798709385809299684038559772345614506547344484655972090328258145890457295900681959893842331205361382946310799631220605525767593228935380826576498362243754098221964873770553406068407296648715824091779770005278621571809912360530668553251913614788294913968938944408654836878943900834012365929120663141898755884035466972696733537898887752738208375637246064139263156080158343472427058300923001600816493002463124113673435186467798810521570278181269826062895442590728909189597454213920346381785262398485936676090480213796993396353999704685109327247556463684326494290218555027057450463321431098425911580283148891421854321533150801213890250193259211396150715347720549475672439551593060843229902781592480589919191895891983594623932523788693960843460729172024367409115123696773421860329915944795286559163594272302165404143483493707727010801048114509562732185333349066088143030513037015536622281270656253759350548771419329167239924020056404882371522191702348221470350033899726269710652328973934745374748843778063758007501489426188429085232580776743233214969402916826572536647397854508034061508714412655615272791293599600611046827823779807899876903859365960502654805092839053872867897006104291959174631546886536182603145656248593350180779425173537902325071423695831005627548458896830672500950534895429872800908461598620064771737147983278589699714463507177955921038897057934442191571364604595275538313058539187566760363773483310667437520443099419866390003788113689205080990134827642253482082405353352972514071976366807128893499775053283594011152788525345092510164266437854090166256940077432717277581132704951412362787688883470286465821340763407328205608254380615928541279447460743313623577198611376953247102221196339688944424828883039298925551121507832056613079421860797908726808412760155695908490410101227049223179654263269917720988080507490774299944045630162262779217026891163919765817011083814309054428660887693636930446167080011572845115532652624707374692347427476298093827809835495132544699057831683241515571487949703254969724851630167724309549757994873945846420147024336631485791575257539472150027917698861522452217255917726176571996273783481689188910157609550158062478214541282061463177750426820385319142113814650552651009936140015743668050038429058403493608211656146800549424529777105425043409262936337492143486187352701535726529770574931698760475990777933045160872283688513139410948275521473458238362432358390084857784276580854711186949263278175140967923580335561314360803675996050045804932459412914751900867769028254515493451152934303645476328398701533761985773054470985757676747640507818229625019679111286692628993549175742612768354284464987702709208420373103843604304730381816957360355682134414159777315259990945904460918096878297987486321943387747254403804872882605589064553410489969383545662487282080565173320216314355424418391246537795060744283685535892980960872270852945762280089321354039200175440893549115332424672849751763579462511354374980093208475165137555264276024166803639465926101408506258254059146864143133422722853148691851900662857665402208958501709786177679983886155369034428194953030865432881248119074772248411990241628116193802953353644852474189943329722387869464175448860072872641360495226637265374499745665497999461802957199772075093624094100095661443128133820992310485798314918817037785882272159252440083377283055906446258896453139925178711282029065544449248620260540816296691997678009582822394462874462776087426610958263663569236136215050391542833598550073321539911181750864840969020882873800778323596383080022013605306808622688054571175672432877857188043864323844725102363543620029538621181412354810128321957693619343760304454238777422939135983453703682847571529531771902348819279864331249426700421907543879009028813355832093440000404527191363146481248678806480188979475835330108813454949167745893003390696331969814511447777854316162011686007724362063715805286194773575785262189193781886153041796366542439203519327242700069953348301806192184827524930537020708402003174909049944352758785132273769778945138332357642383890133555901786361051485367297537469926082162343016516094645050685127489639454320663003094630108850545958892227660986917658261401697758406467510805821743992000980555258656669699369377067793891049334526409592082582777607400388915621241287652046150783490549744320912699887606856242232855601878602541637213283328961867085492994867282796793578493299794519215486269288305193009843265879818749970881837873366523815347296339272523178516541699536951111720063957375391849221271139889022676234609199029292271310216370326649808487380219640375047021351126982593820578071410510672483103727168117918987157132443654005901614149676906737401362377779881990703141224022033806537295129893343960290263835485583604414129379948338890567962194460222425105305081125845486653703304357377410522379643133522931991511250040065534014193538864173958431121720601428333264774525969973018614104529683496932347726480587720053716721017834036205766970292170812728603253993984630979355842547142916841815791362864689825299520785683104883312734595396636317287982962242401661054124682534709655959099235343381908248806101716483432270040504063249290382936957624010330002242430335781602557289141799847768242286843531880694599726121989988681464656783111043042864551507772689981547710109345274570845988440293434868991749340231631173532083436391221382146314263875557430742131700623253349869814166337004361267122677619597693901788667400635970511752807956228522671059369594927179552350098687407665775028450027485780154488957152894574876126763089616184027361247909777485097133086275319165992336385527136527953277951620399351892315196194357730987594253093183389390825187018512832376325644559095837192592437684779445717477777481078141770068167425769474886633579300610947266329105143116642660224141872792377286527712365865236409517836076121636526320733417009475180545408609090358532877610749033978250114456244117946062827938365488191634634784763770979237739389001279035338992544525318645680623292934645185368228056174863089958498146771872034956716609446930850012837057253482771341205737238269583211059579549207866726334142974383154449009454088286607128040932976982295798912541142168936395789349189000544795252888925967678540682867703576009879508557115404261969970438174336478712719397581897355042790116980970990573630509646839396787585743109330842390617719005079334844890442163141449124543913918929045853735068692598222951136026832592798300123924446097567221926431305349349794398879447190850938089296741526529433581137231069593398509879779687813353249087831097312885553246461058728520044795230422206287025547819620179095377765060943205143815070309145142670982330055197337138164665215371543347457147287704452116163831085884787537920498947687493999126882798232373827637499090673234736302596977173520631880668649451017665006886224698284698150035355334695285993263922237472514623547352859218480265301277092966855248863345412299764249288597515023818463649368785605358520201661106522580892646280363777066983488094177724279277981710984135158065441829464733612883073363395587333834842349912137624148490590971960513836085976255055095114085793951932045186313425730966616213053939984915120332757451995258758888566309914113151981878775490632947672127193057246533283862654105292893709014290462050015321165925339853455115477390883597842796744208705954477350368318703963828939244080808918822081468126864747294055430249039423303891316353093542709125472453109111840274507938019792925870250959059281631245863676927926163531106309557198409475569096024702027844994590271598504368284931587355371360150230377732415156020929431063255014392112337312818344831970622258713056665910203323992311878111007949646669156855059483179754803777273648386755879627687604605934715584522602644688129807603332802741079819252081089038383679408649319578186866964168348197909171096850614569846482159174224801325395089228141210016248207731563870505555378127860676361113986357118025660082199419786057325158895140315526737003796324210781414385238005412953529576111489191566595684105106476413023592389198192501678668647145490602024228441543632371992481584004045706680891681251787563756109303468566640029138560865928539621430420820159062274088199048138050273514198305297625877394745447389977693393336248116003881971923276256317563378412545444262804467092261618364078373806694035360998029580885888905477648215810063711747469741913234160940991004717489544548281362233643209881787367569083382466504121239830435227978214445167901684890813665476026607617983952257063739480884752306977390647102633620385914008964822159535447219603175039778664716080038086126192328563574991595994273149355061356244989154546328983277501196007678347919963205542260491591073549341092878335132554022571558488227818704792999313514715414422863137437739902925679275691046125061143469190657679573450396369233640234145472609326130835126603716924691372157748858342044568528359961103149844044799745907723087103181219642405840737304206345110293334736557781374827620166204543536907256837725003189270523121967282946602670424305506084712164841966445400448325252619935702601533788358494846595427733309594339414841065515220605442892932033033682708335106000543825967673348683247066372570017701855853490903569604827658015351060017384418050926231723428267091169745236111950766580535162474752757755785810832783349642887171634943883907861218927028806987918970718451489895553774469155345408801633583362928378203291147450177012091846206885927488769506087784773573598698927652613826267148104504168425812137017382262132544230284992727463406480639925157877314306610266120037389269731316540195850944196972836135460008430883249762893909963492287508172153037768793363740859627722528405851877698376910175885024814237723076545642162058367316840578210841608371291189687939947771592737504691078924953904120037059114782557906291200988434561109856576721376072171283192402199126159486143036089254516546744786615008012118591447507680466411735109367313268402885382525623826890830531214718434253400504865713758122148707184407234687866252804188854981956373177250403341728154501381629851224330877064511837289045130040469187692537422867158454546563251047641463798340843886619343601002864482606642522344140976916505685041829412017884319329562337220373638629139414456565543901941247807660622686415054896489966144670439724003471599889024507835246685865769008282459489025052471802413672210837517901127956488824195976868472505130409028468399302526744865136466607978524444073524815014291713729540645140011154790325829819724851945097596060303664783671019741959516171251634836505603045425828400576207679352127861209439815600295078634113752334192796733291196658525475032864815084228457568109641489691621001734619195476010888171285494877830971200195293262795639322431252311304053206719770395253805174826988328408524466629163348863659824023598245485270996447582011703661010913407253005216387552926360530541791171084268596584955061973117961298647316060589996022325154826435318519263537392256656648644694309942989231711613303983933642425174718836637922319287576498126760951177008420350291574960733164897676200742233206960402602348972601479333083140493478612754446720049932783966057072390480831701383184186107471882138847634193073615958783849145502718981799407507474264740026288105552752071023011185170122325576121696836279595799235695987058037026179800292616162492183712917313159929493835511122665464877607856204429293018344349438617232985346671061525608937722688432952567843086524664793029853332279529350655419241908837564906045395305615208031895161817925697770050323064928398804649918629830455982814823415512554832067550077860994919106768158660570968307027124846114100652352937009759926779091672166531986150356497057678168873549972261282977569824309037810180575601778087645963512617273036110502531771910316319683395952395868682419580189921306762503254140124430302588591237513321589819307664874407689750789306401834088651855331221783482695295484948927412207150026958503828821884365859315119633000087101197434482304642606369650020475147276507887393842640195267867299120033570731442646400734230104872260241541488746410546853593922543056363642053485816099509572405709401403235041465085248218838382596102976222956650534751213501559630646248991380843288348813624364815175506404009184049625446869122277506000493771473257211600359546888596153630651394162459196218873462397461831208061752447533862711171978248369352486630588783625105417440136570908171976799030728662560195223337213203292420754743293768925366259986204331996108315902843847496180524972872424834913125141204796385208465957947228813399521553726741328379609466153650745794004953220241100257102035880094193152072594139740699339144038572081230534524219152943458589917657622766371084628926946142913324791995670869615224925309765212349262179274697792299808748367209507709124691648920139090609046998839175617566122549108303324238030281231102139494944212928880548466993335320983044610502681726864098663042403977999116686742216539509336323741823910207642299379599697527200828087285372079335417437193019224706203103271841305538762615654490154865536988253016622168572899784752809392419849520973543603916014332118467182940467444516748951757909761365398729050826558792890065055422602220157625788124793400683129137441561051046216030217920069345765227387039097416239099029429141112985696768171865104783512771340755113359545574666219021493608010394048879995338759896240482794001269704018635171203406170051974055885628952608864277188494109465958241285959714856785415456354973516283326437367682349467552546651911344655825499019260547051930081537046012736173894884036884752380094540067573919247274964459469113650563120834760912347972189239661670419075502207044691055976312081359117762711811768315945475807605251507820223165294698534933831870103490172432178128827010580882750670409037948942956677952329410032264790896040330942586612324972555347154657747603840583237508941013801089958497837721352376737723129805573500073776800367967282280384457351115841701424229949597832188416612365231145151405817014514388120551017644403084792284151023399640367682665618167223346759488885426411033082936006138811191180836630642896018291006139675165832923052789207368997411596235462030617944106427877218208757008183010636253371038573536384994908041597536402111032488273184187569464437836967502623762328537536827843276503270505565894747921802048792119517938940089344064231517112970291382358852671036874524070166047107149801595870431269358978527931441812207274056680915213949883469415409596152262864722758931828019295329295086771751071920998531170558515736780759768139084262699211949994573532750305976997045879422734703731212900596251781061518725212070895884295639655523781741559900954925882355243881972093628057362777569499646059056892533380992639824522263250985350009698887825480914034569465378949462425110077686269621637401769131782583935682975375218995686184413505425074039095485589601148189306570438309835273003735101667611250437374942994379523365209804959221572023642758899546611536801910578473813832162243761150362131247200034994572453424908978226864019674899548304776176330630830899627501851902966657456367768655768291286247815502201330199683708273787429553732550134852337000239750912637795554987973194721279642918790106736189095463018446486511086290029846425277612695682529492762528640037734039664297881777383409809563656169357034064118268896544564652375447798450271106006370083134514873681480561159985041475729333056997240025845135799052050825054238813901859999424170319752620459255638546546757147197313958978951268650610718452901427194646544875684843451492660054772309220871004019573901539935269815920648863762528093689158175635271103360598074909185729013157518822574284500430933532843511296107882481200611111074729306300383423515431956680326437038587816198123783555677873941907951908480818117271809770709629889522753470415347511320520049890048786833096513709532487795468859734149911451946941632683499678544055317127921571008414058483115153754108173776209487519978152151617220920233727642098635421225184795832545275396781426752578301172462333617488589793554609543984669675539236862632945820112132231725359463781693512109508895076772789346811075863599928737304190548317857878531172298662271952162040214819270396952604877556652481567132561359097965933981467272729222776363621962557672206333567708739464201125994430952519392741207199475836433843695298863015425591837223625316490376701054018044751002742292910411446990398303203418962338407241658756417996433710141051466327309451295727249987559390338148750034062883625005595675879349363161278396832502829331089654586821217827021554543369333369943805162058596981684121087229497338997124896305179219585883308987264304573638541270579479234614648660721210824192329051667760627394196707212252378720343377913953711647086624085392744941878851371273364453363301543436256192509311561109688551909605165568777494156002117956245905434394849704402426683044395089359183625659935439991367627801979422551638451322234322371745159829304469845278653632070647844985438076266454873569703578631500242064376220493933404785923477112653339743967236383219465479998159544482454551067700107988734485294310604814371520938414817198588981250079273507767437127738159582963485131710739214519313534429001917132043502474459194958220684019396111357163608040972515998991932497801689634903699979009277354208807649572739988371892469320096753500962591661306794366570614349454210962481076964685213691498984590807304300144339866134162614606477612398800288600347680682909187012645185821078098007445187938868328110925827357927611445812622623079186255867211062506742296613327691486133586749484594613748607625380912847527456287175221929309032717566199684763830855309000217168353493764233821187772953898540535899561818552341218800067355372003564919187920986926313696084215170395646275842739714489474997395750823395272334390428290928662668589339793403405383229415518060428520584735273507767186088229951517530658921598013916516715733652390508549985549094456002958606481946505459564887091829314059179901118521975322221282341963689925341291395017465577213063768387913572932215283939848303960251493432824237221196899360481984373190215721681302105179082700584848623186138370529815124523927689982633910763732839628214294578773208108520132853526179921783248720418270373377038477656082741463896358660963072679328332831258752298776462447475628105462531702391543816194566797157828041529347344322948652365427386419694185907627831683948551175213260153803162203312938165010757658614013645657569269350544286897457497149849794757921316314474157491517632920195614517859142310902098904904017955143911123254050420372095020184801667698955161967136657835686503615846851602582205051040486304541798174824543198700847639212831918280972766610065712603705510431789270244607051844061617936356693251515093242202730295848252626229276525812386403568417811414502133150727230181691694166001706610238451972842333907657359249472494454547865063453063386505535305450567210027104279714367611033449861873212746761968390368791240804503090227414399303628531490966224629870928350751287975293791527586611569172362261797812334630570899625641197477864737642335150087862367201445437336130123857480796122934041876317595715660013990268221795456403438098120470565983524058733499138890343810343740219696387641139142916455415891164440426032056177652808087224899487658880529747991420518038451861091894922347857108876945789048961942115834659907869525958388858822565707346574617421374714921421467127061396659644193096616211244988293679557275567454986681700069371338646153654109572795694947578142135497490138740528934272131229446182989109225579631382477284501630103747615045078434192613618001737385046222719749032682640005970729751139899496345224509556199381418678522882763398811256993705142619888493472375913050351726389408882652238185156437485886162645900401650286396820191784339662877204214189228285375170750874451909993324109166328454468309462517353933189021658536811789688320645300490587381206576131752329676507356632447672297488912514263242732484072003649838131760883939355990393366274342274642098254779557210121853826018736633970359211467233633653868812735168404740756694509845793031660099131418630745843784104900129447704441801678249617515734426350987617201815744573732484567775954693806005335477375940434743145878310699856237066060315954645142591331314940048332502181580173055586839017893746317887059661106701339251166165251274943162392736318032510287012503349889781910432759968427350269512355697935559536118948308020146627206081938188335857508878131923935312303007706332076373082260228182225655678178132642188932625144429002102170950222697742526669259713438129022794185283355751489640193034557933342073353844441445955614790331201705733245291867395581262506465094676559834393145282261502406426550169242931237692417516416240099194317223847633395149677036508230989302254808680173281206382736279249615594664938713646790447587959154460202281814926252951897918727104690742427766264469810388007653686172743724315043396563409868048563392222470038631125148371739462095211589613435465205476027403176102445283876114337522731962466945115309313814284653680269642839594887433830204838745633928173302756989064543781772545627867481797600532964544072516647589530497378720023889763001664722925431134651809475814485552778797357277552051812755301593445171279476258673811898967017352079735091534190797993300073684326649793565181753767735079886772132853339455324561700018312758683099857938589468686622763791266540068007123577219258127716027258320632184481812282508716787693976110284407824191513092668122068222528742673605989197980719305140334969138445035454658804752952891756446947813979959650155135312265537419412581817955949291848628173885533190259456524130571296349003165757867257167973681541412539021939179927651150441828286062175628614382069053817995475674266652790406080167042866987646224185534029702980848555077348004660059835901703283698464992485088328452723441811013899820065265469346724121626779158399487854391100502064902008957843805475847468762965671288769036471485511128944498038480891617141176803394052514871037771310793607956765681216559068286024191219184737035813482831725872072503486397403285487246156391622071547639193287204614312042830368404035028729104188915629088754184061685372478123277682475713015629843818169124390421936035424779253830036648731844464841154162492575757409782653831515026908114970603931442368453961756951732550105709048414050277058156027618982275271268051061553533481723429277037869035167839242596873790538675134201575143157606114085209884393777990006950193634448628246177180206130059923422629269328792453774278116561504906135446378085317356091578462734252047918118307720343649600292222576885789782703592292924084904002519495070622343978988392434322276798805935810949448941842362187599761483133636213369450278557839688725054596328761001907945497126711106366064585689074590426128309069506889859705392987295075866952369383927987905840738888282202095708911721204021793801398007637918130797501788432238858243541296756751844784899132983984805256620238282743642503078686120028056447397835274767333660665487717949978027281464816623358342676325776415986803035403794248925313578617051476374465156674393691314215071820224160897710052744718536968262561092420540540212247205540382667765528841881861891227946796784563667518100637563347238570466102275933657442780032849545477161808808501218529074045018531447288320325774808974018713146481177039750426381307796619569989409221349511064428242666813084410044603580000511323299791881100493082969325953927204912786170203507672628157399195433799393267974931927136011629323404536516692774811977620051163216845975132711004372615670092149297243430091763320098351257867402859294579221821008889656252113227891604577179022583706561825361911417635625944883321814924640230053750527846441254797046385476192784780659714973543708356647109247192296742805793341685242727274321567524431055893931371481067636443530405827014512524417717972959207042660377889361597918594990402794468063136463358136755199995857369481310195783951776504165062937010920783691110385054587726951230871696456336568613772189815323974441106823533091338595607806018019169121790637511759202618933831309921025314695851680338839187760962872862475373247845070132006758000012054384580502416872156777407856688212831214703564024896164462689415023294214737095240301403190868800209148738961229097172913568303413496699224811389910147732088893299497667909122360302461832284575961806373574878030228648208236089645847297251365037639720240162107701654153345139810934546591152678151277147511505425633092468942416379648852599544380206672364429312321488874636055714019307100896205848126317538584380675039586794993629102717919073902747779733900238123505395151626625384175880086032419261194845788097051023505845432957331364963132432520635840034023440936911544683531933281451372347487333992276273545132971432686063081666386853667803976434692048748622872845723193605449603657348698165687754065733082858583696094464377595657344049575424705870694267572900110951101382928889256686914463627391837919598020137112235849857654691773693882981043008558634156472012601235108812542718178928317458253238809160228844391471200265090347595692817596601951127591907714005005566720803526668188483452996861708495281532730475865852868179294364188343842803041064272883496661120981019470452833152390948398959552609601237246803639608579474872720188523628999638354730514101760844521827721966275033140213817167587521255310004583004282956941110932528934205599161420684853174363498377860407980613801407811738588127772791869423626467200167286575241807589717915607261850338360565065023049163421363491669490406365830026958403113445235369500934546292983455378696438586542523481399888658328258968840824781086423833030278751744209285807442515050169793681226864373708211998049877020434622256930317027149367582515494562011950587320211498371895523776430021093620128920766911538222263485298736081854653919219673844850046175625647092652737195429921896973418518284839738297523471692391239644557412001125557070998025805940600225031499339395729089173681817586966843241322914324905513559572453230047944543705585692594516152127513864435994846540114958332842590095504121884709266809636004516334854916966114832610890952365425701245357729285766259588524245996590279865309949948896400999374649837670787238556358468579171419398762766654991626654451519261687393042213688421561028437786527029720938015999429145611194292445774439402032367544937443180570821536546155963048848765058682002866837500743333022687458143682590573831960185246232697323699795190651263080441782301859887054155804086048003333920788078821115775550627275288902909363780745060732812697367324879172309704929440606691618384223654024848327010912682509282487335958504344289383972748769635807222802323928525554914956636768277375512755541901657299253935067889010899793949827594076895982228585198121012252309704912569514238748556502718150850521213444361012800516605338563473046926434579248485379602095705528487846226970590064210554871542806164691625022257033360573990170288658519558119359012922733220717579393188516247772670415768846041837442434284880209690682524780114655996839860128253682697915150010933677473687097855537290839862802442243102427161351487290623293362129150392398912021797550508421961769988271233044248744180931736280039268486113455978155190687536516000241133485686412728983982912139295413891776677332075860532838722022019379256746867364106021515381528972256953405007283282413510867991318489548896790232049573173815349999225062106920657039311789554530823100330462280604547100669551456125138060995995661305061479817515401185032048466885529885546098859139066745152249928996294580589396042643206911937391694777776202029379724041693386140592284951110823421988481428187736920890862311497224826905347227107788814263001061949618336140838246337425180694114915378085664822857832175646897426618352158761289633084781762474654997174023583386700927206413015176005342334816184624482872846424829156384115919917375917440924960498481422867582649591364221079997110553370913232949635455029097493091458583188013194567590143361375494378714496102641565146068659833340290740084439484408903437423092695054454633076829915397203342204498956733087299860490318272398426327444705212419737875248290246360093285371494815930841742704384480963999518953049709728539295615260437947653429968952857702309046972915230920914344430678498292351273023650358726527384629092138811636722513106333617933673764144645177278814072280274788335585908379227228974867894724052791604486138995637261783323790897950591642028177121653429755509065776415319486681368933965635704626545009893035505768485279143148260678955204005675859598309196282136796287353390661400943767228616287775874695335371937323771440005244977811900305310259446271478774447311942244712757251720052330229256570931752197300742624882480858057881191036031689532170182249553020989955597462033119679259954591529426431617221561313475876844353958042606399199997390867756761721127138675874376272821957020208653224054554347517007706947040086887599304377422641803458064116053457224085678823046660069206043597856876664867929817811451869317828535185722671291049257586455070336545209529670846187238122387401910865340543903758383767793203522822054330107558983988435134467135467527431772175118634960632904564135095635723907697651283494091152285269290105128813523982485831648084112391847612461024816412638083939543198189417361368967839305580219999891799087042219934482043666370351157351538775712261615727212513032900246042324209625758574113004661160245309779458086044940369905440438171629657374450445822754904753853008515084874542455506584917148283262939917713030284600057430405956959750747803306665823263626798036147922087188558697567771178053996590020145012919309215594968181004212550803863777469976170585797687128994679266926189276368384376896482269737104050793981494470545151581408293899412922345876506589530625325866659370249609972748179437939358671812509478673950001440407232197320483354426963451060810785949578783444604969630147158034105486869046649424863175561386984030267565698776578335492849698749236082016205720524084535997246869242941219136961101699726260128161034938339245995159065660878315276181259821898557992786662219336645805287846804875042295025162822889377024758482079692024274787770354228079800125288931421999236261636869881633624164806367892740621659106988298924655012383691871325812335094174324784985144254529589991582550910699369859343827794537213943243048385270145904948577911760055243954153580042482801215817888753222059296442548058473719689132138441101386955432219469583146124404615568812178178987719835509249208832331474366270386535699256210533378178118830147069234546980412075870064956419255363344719671172990053770591521149994484197441691624629796638413571378251264541277811383205584656228738572267221319285678978862508039958152730372541662731168300525918406748107369413121092150675491051807123481456637298126155819875128005346993531782116949035577590015659023850553380394853916243194773227043665847856465730026714471077746206219448950628050348441567228988164721898076093274729941998691404835011032658740096747431780558466241109137321033405663693685048489883283488780929026287785562804294628390188439554748402865277852259750774643520414457365186080860430644513109066156841615054022214228758360489022229338772739059353935964427401235357030489738822879676646269661016003195254703032420006428201597251690264431356536924525427101404767628617379086092938066359223971124293758963395011691981529269708025095969993807166865960756756779283220819186964638685938871918604163516256681318010647112117508808446643469177251604675508523299201741473123433867902945053438222670337639137237168747667540911404336962242027755153622430904311845479970422019953015013082035327354349374184232234927296666328534632994097812806196401028447701430115493238046552322231098141255463187694021101183125310241959317135614559953347700480651588877149780316860985421523994428782247671021398539437158804225320919450356883119960559654085528101032169274199921869710488826273783089032271066221067122345647468819059369200198627505712555108372366781345644625708831864613245047970002529543409294250874533604102115018049832236250064830681411145333915100997712906322564866362083664776009993063723523005220831035210001619969751657912313423929461360330202107933730758345711677257364139697893206109068837230290321257570167889657063386760631516040027036210536567709595907210989364695242232897328694217467581128829600791471185728841940655384308663691535240251114302865393279163548000362126146526430318564621151132937185358879282673731850466680664388975026143365334948271757952681671817570338220481847807528496160066328114083030695164896131741486515666547015742628939392328739123556104297491084548744393325698602290641504513975226583740250911005339604205956706712469076795277808747927644398285932809404056750688457774277515382603615795597083602781271300268156734513954651166712842732063574862866375665927411286612634756990147598487021859265491245415679795780980937136207672512655467387587641721048434025151095676044300087003537289054243081729393086351182542660488884693805541678922613783260735330917101987248156230797404764911453897057022139179907985253881655941295845228786361171852150755155933272632234264004717117105460970682339648438678163378512436303626591043047518526048107886763366322036786971096391438546346165127470237890861437481298491111931305459374836507564534191021140500855386677734481474586936169497265990779763893680068895757718441485126287956700438452289827926495914986296160663266075802355714091556178384902610224337895198401788098307196111345239776583845065596732885802610775706078025745629948462834356816887056689174742115831375455029512292990507222927714493409061445066717556338085544671163054284563486277655469278068386972458860380577143143955162778229809361070455132647890314226432547785877552626843082809140589603526541728029660172220146291633314906083118842063133595259616747470293087780969888934926231330751311323910232591314754045999080491798347690619157254820775113495999611087257488280536373880754296869856833302762359017827591224788681067118520815327174434003424444648151550236249468064290947207057161584334613268354300522145104324704833516539551701952447940778453548238312142536329158408705019788587014766709590362563079126935519984900679861686320418158585715135012448902687547970329443689254984827484626934121948961919481401390806007959115518413731951179944154562177635157938589825944727225114324366296826090844494051915628487478365597854144504287295300465554389458480666369743724430191838294940016808851553634495154369185638962468564633193667206185453657723953603646949498434970353936207931641085921057396343479766766019526566062627924831380222979890562046774663648023934083411210806912631529176486779192629051811322361472303286055242113419513809841764718565828741409861275363818777813978992741533743388016804861525974580777329037348610082920435287734814180907123247908204105799686567343649889262899431288942842844829825715521814895366597340921867701306430377713002143905093721648466608359591048233405278668350397912896696023830594180773927463848199068264911039341678107355612383121825320759539191574222308659192777533119923931841735571802403621411425452304979655141729944994271643232843681136034517052102859181128083529797145595394610151302074795566998248424884581764743146146866821267475434844444401825529207376442593045230545476050586350327458737121219636228112863202488286195912685912484031920160079013241404198217909550448674410708173443789887237644395777955209076497432860284541635114706192364806668027332666996501461218660832952181399164100900747837827525131989171143438663832591126118415055018847971139065893606695606183945801540707071739592126222021355772714686152829732217511085047652539827286966241479178330481699144798894307298489438738787707588979484191067369241613272088006322731338887120879603465447453674656726810948286346590277511228389658994945826217259988401066952071379572586131517380085743111777859216973349872102594209019714307077572092635978900997958278947855481851585503165467010999699490709484595096252298916382273736954371591831321597622770557570560786424688081126315599048575638571411281089986746366217179619965272070098279299973260629797462550294171030046866505135360084623267186801489013920527482071587986196904923738426321397531936791116163454372641692304099112622492147755331705246363979641574854198876231490299004511042892825566128544102124738825780327920422481364347325638309667553120171624980072260145874039327062797281613988276732361169942010073325281214317928161168339667910246025719245672174958283703313308092316780500299612996282755831303741550030487852752222688221527759326396470750745633613775025983967023207871548922588159100353030154532507759065108004309938049061935895297266866145465581273255106259561317038587656310835071787102254964184334500227347502938794810396019341449820558332147450106559454247522843431401884960263497574290441678397966892243183478732097100677756261818273154793203733022134868437468959536148860888212489537186117803538429607488485749400906424755375972198870500982119078136205316325259655252984175030345454734283165457941443805257449530261776042585397404463427343485284845009840186715046169397635664807982041768524954757561228194747980102833522525991825928377253768087261164006391131905672615650162137041449708017087683704759815133241694352892142079914478081925819266196248278075647327728873024277603098828175086023442584137477025097047598480252824121428178858804616042136915900028747508221865306948808112870648434550353667207981307743856740102239286953441231857131384804628514144803842938706512094438768219230260712818080077790278781564672882585400430737574378048524493838519534404406238230646983730828930269505695102822467213427014163422972871077168654621832451071494066253503698228608054928402357208415591377830381870343088328967322565588055287445038567768401546652944200011414202885161870764385872004814565919985954715765077650166909082042816000386514075226811296109477112906772307175188443598576019475866406488418144123537187691960947236161468125433811478834709759080781505337027326212521845087032092054877019856339758486829910241473087475727241994552988309005101235392813307970360626194481063402793829753552298854415067674443368831908975886679025758248295227487538940358688257046639398640293007401430946270645933530421613417987083192818553838600950704665504536810026359492964255376626529131843981217796056893224145156007396686673967941199922399294198661148758377368805259937551502361740194528499286095301373571169082849181023442100155703649908901284300025981058263253002592286466193555095681125625517260689541590670879671198628255223452073902403260786996491477175338257501813972435596032209653364357267083426879554065227155231608468674246099945412378772500865355586564677990100885600528558598151191147671357535191600107898998322506456869711812547835460528448154976777182442182829191970233112439386989021686889416503073941768868017033294716937653586614085383439431391703641958523697091684322224951043817550742228381006058880072236016035028326796110715125933527367108800160170279752081674945684795451904564182091464796153424807661846539789170930289592376113750343429195481942980118966600781317303660247021270354913541113044431513908795941334897932512337775939275644917095009180942619598153379773881415926739259791215630871752859572107150752035111545763112376047343999767606349030506858598585970056092789765382090904924935551926906328536655581467699103939753385486547084838187978197424000997902766865070727069362482888645002613158236093474786945162938859013067880758161615346252218877429843942831524601186469201643291482401947811976302856629098312686584747441967826187536678173119869232139503815641620433143843451902208394382003174628858299095477375893889877933674496874429197701053885675286095945681925179473109731703553663335352337616477991252792488329869048962209128064358100663297336809886497814755125200635281198285532970662499353097830424181855345720238631415442211711133740586291345255538200342084022330399210820581271165818100255051054524535578759835644365026458135589647287327182713934756657521671478791800994328665033166544026761099668265311383836242256326598670164497241410005111390381768610091239904336499210185744853154852701619186141083885427761975612444129158845565175618472922075719001741626673763999953224971230568693400939747237835206044705887371973324028185395452346342737528591595072831252172030738136336302822031495528868285836287391060786762142603959310058188091600777473594012941858142753540502245090013039367641975460906815027692760222698807733294373653052398701314391505794540036366574742686291445404399662920470892227375347228121524555316854821570247332070641724739565585278225442680054789408360847060635507489807357693861936992879440344275648325359855316298492379792776985940871785793030177937498316145051432773597402083467902634922075694409623693338926353572634097150454658520965018413328073065654146670709496817239959956621781473757031983380395582579002842029592371893564874980694229880666649930595200919980850703037570773451952578479198225861833420126052798636608888029998466307924018299819538051762089253695804688881920391756002802314701530448308816689268194959064127229361971941737870695192575473365944126173663162792688071366940792964272367862587037215318317650028720381219794611209802183651006393439600139845272943887249136859137943846861869778043830785526690409327283062910495427700937833540307582581319301867490940057848193943283883178599447969052016265247173650444471790794324929030305613292771206982892892359626188084470905712333212754662622358300411218711629554828881470906076791834866842743364738765422365873288628535251424476100747965359699171987631401306404731578730429311254942501940701674901851770170842679822008021470425758243663381454209214619810922718794344199465507949524423099061017906947438646762933210786562635110332357019637583406957555719956851780628913116192408473890492009945201869250455920193113874512322602485258233055385700469749117776234125239985656522124658593600223881850614739992222380945085368869633500841858901418388874898897350174503260670899855168369659314167588398447471541739563179033067665280126341939958594653400457119712083473516330263036833231672796902614104547582359704572093680956883766117965399067384962666933839783890908550765703088813334530128798399208666731411607454128196928324416994585134315846892379820149755786207794878752918688759571599764988715686917568422823407347112982262414187633752747268975961030789992298027775930081888640756597592352311300594289658869805285569346728649685310512409216945823061709723454936675780443426645290629804232154828728881846040937584832707260194091720484392128001015066501539381789035893642776781725476444263195842768448047738571240442263826286681628711621242265178321621995886009595719566678027803078453292687761672312719356551338528968652088006212099272949888953113437931907876897793246045644133265745654841597232695126384988202838952136797373726953890217792207744374373554013770453083986564002738105617498659559120131301658655702164483671271753849618119485339806843594833277415397210048180848037527571148802047339405148062772919940576232840558225092936681728890626249986054105624227156448284771352931497766252946741826317327207066434673446651634813422955227271790665579199458562059032792562466670626872065961757037656840848152718002651796068746561758951243791922878402740363854719646297480610997248077147330862824132007136972807452534640287930669380589787025960552019359216869715684160675157367718325985502522966596937968679779019713631708440302185279402400223458981819129266843938409236990700367821873766961848277756492151309486174282463870553360890746825495227173922590555659123527438755261253212862081775264260089610494195639256236815112551985267149402563781482699029431046842607055506656667597641675147455816547821502535072201624679599213817135716137527467934036920424503303798176680958725902467066627172571057608125608824159536756920580534462600224883477593834076576070327100581322376874969122496642203615054203987306037012947954627515297282653140371410848642706182028342690123901352249131880124170803701999147223142671944916284659150446015377888011263226050010846992812488159380443137347557237654011299521954348029295094324623901920197643887705974909259526625208937419640822881710627589907192630586264782002926683096832933531385858403160925841727478537120585712499282675922281223582698842499373224214950986231812065525325947123516012171064893819762487791394596906271779287957114164459914534784008446466521883859777789598803111255642457276560229100619184281434291133837529024774930884235491375609968457353811440136576273295335903509993796344720052789224645006129083973396062653775635767327186652836815133438313060099373600430641469202693421192027642507331873667329711007490186257411762912229508494605850853729120972835958591494880195706015083553033349113571215665633877335985708922399582521452681659829276556384883401683706708390157156187733103686637300180433169145015285402359171886481755515422340977129357360847666902042122052776984379933873342693165076551768925333830213721884176562039691764718156431413953817573351365477324173204091348302742370349438745929098534324190107622939687743415381545670968849336247158446805663388632511888255034047139199596604134322278362973588281169267683863261169235413828199088804253423431893611478209592662162737122310151505301003530577754384342838542154220821792461952391546564245793057797739794226196749769126956412452038789508652173375999977833418124181771624575756051754234219806580343802994094788343498724882052496499214624210141712027262733489322622361676674416602418994640469635271236862995051201070660691903693862563124200728959281354012522275265519451930825558070072533390715109989445883172281637320117079194704102840351195919763593174679485123034900159864425952869627390976545758407375866075987467807388128656390735665100201626718174864203875095263630700726886929405509791816264939654037245573889765610154482610855447578068438809356360441833910527307097519497860004341376330841408619303347236222405042087463432725060990660174916273030572372417252856675691031548398099656291608688362952798861490148424876293975951063547287823385286804331930804371270935433534804911082026047771422077207017318164137227817424039295085794912450615605113399955576480074041684502863063627345858142988743271514219481031014053777810534875924241700612259054251413457548064483087407185426285290825486499306681055188290129843155676115759416721869872273293881231098059758916548996145684311239668852946705339705067828847254271337496496713898500069412366241036327860518278508702582076278566870176855139947671707125429057419155028045855814672320624614792590479133668699105031550093721855790642761253268106215617663427259522491806649428107117270527055253233701635352730295993691925792463680085866469013397705166280742425917708551574543148841915457369493740634938368313884327750200243618203838246702393608190022640724619638158322772669841754426964716347378180161765863946167596443738878025359794989347999371591335070467325483000181048793427543784527551762800334011291161114935136643578826280534507908515631934878889216989182188925415448922839220016570264359025499762934371655313455560239524834879507752273309348235446279316237960727070882810471389742407056250344247102015324991281570910287146746031264720796502974994969941446797794673266976129918388682320693090094625347471843171014258208908490724068111700507041187987444621759549339139437633324624762046773595653288267712268977827360412282674730648833291464234464169059198157299044661744986239464030657584285356675408406131008652155877078025827366186085994454412184469414470476105308927939561578377706895680402140327934318591051916890129214784261215853048583496714620079948130378685144931133007324008251104872179736722336080715798068666246078106647682954968011405417289091555120729658439147040511415582648171449533029200943150708749739974354859526905701133762176094370612766451868522816151160275949188675482274431873698988693327036279547459880100022485787167074388691901893091705621273792321228616258605649857241849342012407824106224361332457533086056772293075622079267880169316334365678345930382826365794772467032900817365840535056854279750230244477014155192913358137611533770594980089033864436218443097389516569843134286283904741833429735506358104488873595315680830502381528929444109220864179179508468596305734035987634342585933631978692541805935530945579962500130953892197730990503384270448570981209746971910173348522066747351105578069752935209831653387968728023668089142180405469696333657760891914649367829788686942220781511049889992013936437267712901029288698345343426894054674131266408286187421149475990209706590766257517066984285052377303190772358732540362897979941445310625508760726158950302915023743647674821719306008788719890306711079432920967940262481197121983234750167308412872248215458831064148622862742678144430056333164292223545648605128313823539572165381914676265865780705782902937511629594734277932246509840396795935194746049824216703848292163007481799013903109305844383079758090334393639080710939158486591625740084249785171322824954579864124620783028853888042687512703024105158336171547244510622114559978467746487388377683512376043665106656618734155895709616237037526130158553931067005566427999722832464432527839854741978454044730291305992232568891845226073316363180206005842000920933431258479284416185268057396061083923884097268736833720871606138616403747015190152210081669300269143876968984652868864708336648031203842790821403213051238960058822003223846658491482994704678134241595069700796865228325136710986330529977002989859269549887251014630123443646212155394571947749538896685051890578263030447133631210680305865015699128678751895017503289394326587113182082280265841773545580205016626788314466691529969848928507474079555591489737542792654965246475750962304174281767175134843213342222262834483454420870108605030771800788336873469154697624638020812640559269397303501879382333622316814695882821418947007289644559100210517329852912209530034753720116375546976611203522717393305681717660072261280802227849069044672316319538721571999690049259735022060785989777470936591025415561570734777774880284640110503947734724208144072403272802348524013448634986075489282766344767181442639674405467199656560671275310318336861529680952070505510795612360275002455958939044237171750598655530513490720003702400970404273811256915252183830003416187097803769151477730924012656546342945849210488268597802538703342092083158168425462532641087832166186596262427915222133146021903914196643457123009061299432788211632536436404474809806906167586727728630107678791360418885794368638750690143103751140762980042726053000169930059546248671598324244783532846006430346542065782247519140886399265065135451607236118502820788966781454790443867426356323037138556763212806762377469252885101436012812112368837058545449644445383462207690100906997555968919531011979680914495425627864198770221504718648658043490101340189007642038686144614293063046705520606215185428166363906958668341572315336877983055126700423793121901526816860391836914583399816392654429818387981891055034618611442682878385319023474499111158341284365758417519750837950752499271534048443019581738757430732030275574979171753592471899441547440847264951138299729436599783037588043940731395822549156852392474574749389258773367150532972749335631801261605077939689131565423918449998860899198008514834912328550450839009313454598360091677772850645020718005579130537849097612895541302450727491318574817350911393469462156969115324174324478152482654009899854239348521029469071814089595922656841639868470190280862577787134848993522589640305673941461110296810422952415280035183977117921479982210924417377611208923662377679210510943974249391792528928121675006696944662643514129739425181548696817422904267621309322159430995234992374198523153053566588798440781387729384455271090571095501127535719530267694510624666049483295308834147628241448725527196728595873848204155012849661763731697488154666234036549390283747962636285879405491079449168765712173622511804975151003705319950642206081217618853643128028440321435694785352519096280302454718070472128817406976628595850201381209825391747308301496022801251332335495597290754594747981235375807179648501356507828973116982684892581364801707278120861815963668775660871893557348810690368306762621370320069503634042978155984629013668313947348100462037098768977825936052733613906645240370149277216084626680684622568317408446318596879981966698687032069055557400914517662199659100552498608668385585981602051149860950528122145453110246699656989212174007170856008380750186130675587731706472706767890941108021510429666323996739889485025028196266252583781124181108300998707845264419410463264153562560273477619972615473035150227936241940321229605783777701958873308126118250182630310604604468449281267846354021733431049363267531809724504901874885707501135066646403626648693234539720238129419681331963785704464268357814704472574437419888537179982734059971639712278134167378681923141286146129770392304169301725041826195115668314559836671346680653035033700453258866474384816503038025050276224950646282360621264549203742819567801880088617456927098702499994526144520106996120164601970645719255779949948787918361299968701982782281088544212101857580479540077577726566520138929372586968629420273063624547915713783231460414396962832356488620865443046831550804121066228964950524302951115240887212643349013310404606592782810937413274020312132296541558703985408142290582741551827718826105853456835385424259172964756098204747590059361180914417397382638038801433561895805173048666715222664314081763671765430636478515734638556017635340781250129528917218544988552721989367585577581215250504206439798380925890812147915574163533429035828230883058631840136256222969873102041063456092694465355283823544429758931421839890821480168803600035680011846487441347391418972620176083224960891323881645112312582713738230780212755974812703100566016738899554252312826834661351797481723348348600970490804183398208475204107890700324378305260012289071205505970627228696959683404695182733924246956662521386691368896671199876720857104763705275226015257910527454241763840529428028351886343835634477946539749290386016239762640051401048542467371564700117195880371878958882679754628766643719936719484132527621164209661054040354410622564450906094077074834744179425642628145881036829184935431689576572637584857180164754638711027654208481711856994261867963745195026769424932820811639518296210546770128587272808770288932289000563973724720088846392828122293972932309087969030895069155260948752545353684913826812085113464116583731587153519882898590517632407591276623499423681162655785985156439200354875932992117516656409348891328071219571129488594883206292002822307230351348789305997457926529819550898938896528788577376935428861934807103081774720576593848962073691977586272132198701691017731764217370142465185397437417139109951017076299536848653422323751647162827586143085394551980402075025381310815328258481527530591681581279247063536414559042569861493157908863819961288795991184114816859511713266097039615154710888761930272254936805154042810900445813959861126016219481420721412069714979293917882271221225288434789864086236318049697067338652857860480319071569399256794536153927100883930653534464529625113460383305248449608132528527877513139175332997197908652062536176451081015848169590777257765843409794557407475076981200545546838657691749896352947346561059219403321173168036268156350151763832900860771658981325083063464102906352906904073899271051370408116380532259097357385712117378592149554120979783074925964908477069656748695131102294363484987704551262949802470069783115167543862016255387795459944240207152496277489128060855291761103983883723458239736777119572326965412473666576727049531050351592816937697763965472487467324428474999329017866449461420528170917924906133960318432731882215416167025853671443842553655251376830092548637918293944090742495289510447114734389627763154145066511371936121993443722881751650625733228936086350161654033694395325882599127501881011130983250937368122132779396238248150877166360205279871454281967610423886711407720983213115781072499564541213142973021884625907863169926610328328769975627754729577671261060717701821819699218095358982728192596475343834204790849906819519585696999976239405468855540839137961711446740121916358579325679828596587436245067869868152245414455468023830877414736790644638212257260687484087441619671765505647146479463741003333398832653797892949092135991925833226745492909738354091015188625186190293325745457416207110419452387437289345966665471085430199945151954862172019122589258230449025117702799705563461042429163930095995691118195110735707527229080556982693448811259373804909365311730687125602086113619550995321153176760462579109640881579483464404767679422453604402112233042549812095716191527869456067460182109207241648426727637367792434107192299271934631980761204342646527251379838427997909826938156110602847574480358033947523802606671883501149025526122760637969802284375507107024698431783293813943347296804529167067217216330631550079387675230475737525254372369834576198845681424287902215548501987160875365404266497578828988983553354728588314581828471814815493691750171724034205728720458925267621897715646169108067724544295451258717413876545214839035585131759427222761440267696495134059044806519857732090771119994863170779403630234767914753028704729576626612307618901321888562220459835797903906209526724236220642806981695837276254521713909879031077299988706455197403657381417386703602045928727149698322917843242882981801638638056761863146343695875866421259822880613851786252424158610662304791897281256178415269245163979702515938329196585407806837899168030966843170463093281493238966296733402946089207789625841078010470072227351062738285845627023359994655387180323239463490291707910860701620723198607270915359410252051830205339843338859414035666634946626433329038591716678440875695399418849210179725335624094359288753945827242022790411434575273604828040484924112512422617188181071780934949360012888893583323210941578878498776076308372825179093610690505132460683090612931751275321990997401053997113536210772693494542305314919132047690329737289672465397999152085413387173773371682636938667343869346275362892944377497632680832993641883297852519034373882358986244432990295198507207602084762786040517002666957541860029316451696550674237320003990239851520685063741288596056207446887275787961680026585405232751827172755076888382381491019157108863337731908126627536639658325998078836116611436044912101998423488329643093956577859071985051734888461954195982424521464807982337783477546232554649806230106844053015423253107548371852329725905711155489282516783314818598378731072908108503607531156510325091717609211602355395818859942054764923873155839555851847639831987684430682630332609606418255761259152739244595538964464300319221722809139851213083692177355955356881670155238348174928515509042327624905781403091108346840296667374387986471789324459566512357142382038018449880611416384763797943405731552204434918969955942757795695393678574652193387352316285132111886112629061752613471469815504632168194646993919530562942217256538410676319395434867166129022635154810781446282864283272084573833233645351873507541090618053528697530223197635145373864906361029433144732125360166636288001931400868377905962943227097300709000140961027491370322670794134964920576057626183462913043003008352669942625727192388455539774584739793220694580844191387859422686047549159335743885083573751093024970668042418648831771744134594432214022063534887952232568522765439126037473581280700182400096716803076787133683518391476786350344740403326776222871693449472639253672515825777842592870205040126457508550228687231707821296725706130464642814601780110683548939705862667496293375896504278339539195044180798786601958883664329369169689910383587655140153003868094784605467039160991388843577724772576724023391090456233731571651899561842189665613528027502476373047246976927937513515911831556759843198221412990548606732896838708239287788077051367992301848714121737498341095481773339091498904809088259231624727901006687344744820637449115410036395564744928155237930860497269924354323734185199307224689620048338488937602093605868316579320882688403846832582835561000555641297598607670357105839729152597801440638704347004289984040922278991533970755418782197293610133543079598519289031322493705818940856191310534958649099795656406624815001050735945437026286565074170694510269318354757364153738354449584554151762985548515012308135527659920737060247488042237741801826120888069444798194470992112086250724205962507293232727610275766759394544686220294373891652488091619572825217904644151670976576068561581649726114972363894874153267022201230925995172941212300688715808492934042967328764510141451977618290351206347748724907573422328169368126596465652445590654644069538714531164612330873152133945035139970167379666095193035973797850875337115483059604584438646081570322928580605397736131905570413552788709897416943126623963664583366946520462635519386011286643779110391237036712387633165613071536747854696772980634202364773083065761781331403982817980825756589411277663118394066900808861917961836902579848612865104080191442689454040021808291352416330029155083205041598541672579551686596133425442146520903381449814568127545023293028194289976508534761667323461350354385721823267859223512838145561565992209828876869665559528075916689535439403448365993510960200397091695645584737523956691887847258444306102311785055048980666696484152261627819893911925555034144581390255717908546684314027272342645484961933209526846316897553401807226686220560104262921769962057148787655109192202712715691326235545675792842961766764146426184787696363422340433954563734585778326604657519302679461088542676804866574069395817340329397362280319209405597527210488123466433514392872192310573082495892478323921992204948675653727542241612144343015346005895047945404214584358111227768516898002731988645160999104082811595708383071337512589621068913849589921044750246003461869328659198838698805865119362240290840216246976249284970020161940541256880301247019960718124198033266571261064739256730018595971464894073285867655830128282980155677381031920572092307808153823747361287862790752378846870136031570928555555829188850164824475196543352671356998885245355144884484462150644656389906294006538920670145484723683181023765803801675690952205096448153748398704441093245817137596597070939673882392572075061994218937260265942261199789140215299123925305136330349102503256087506896883014619880680428153183698164287995721399477205224269438410582721132103351153450115634219969401079052847501252386396698974796116941427360167668391050997868095144216411499692612471580926685019248679571830109005904928157010654915087217320358797420174628612149738159531619858796612593972825868247557939824492726270169748087879621416848446991435113935653474842259519488480321194756803084160460635023021522446701668270553372075243540662392744890781376368349243763095310019082498281218891879245906784619290004697033224816257656051687235225442480508464102494672144674971291030921202347335399495988834168670584690938990696451431620075507227833150235420470193396683395147265847320858370260401833020056904776872581599792451233527630362323918798719771395333331010602122223875824255897372719346892916690211672007994590717886351217321449290325613215009601086242323404550673510531977578153554143020207925221226230313294905231902106720850622357851163102048349322373961253675969511345685715451721937452256002751590226632795473401412170443268160274788592765248828640836760299145299676753726556391626284017624780030898303982965690610105577915142418221604893091489858734931819273907797028369824579904859654284418715974076642837232375554300979221133470974004689708675336576653944176129526922028499465827901334643494066732391244848389198514480628606933486366798448822389687226215863596000060728413595138000178751240080021681366097509557427127365178280613551364045582287572053127666450214797695526263231811984142243550467995718197803824053324523823804255687028330433864728720271309486145018030424884085383833278320409446500210881768381115344150117622504276552710875039776801739416389345689041829330365744199974430400984348758509934137041139303870218045404729439514204243768636553191569542583162216604509817202979489091045886485780595672718369559863418976719682094171817272014511771256335865172144716232594832316412502264940538077166516153345929905924173477544738870320060638372794828539262128197232000878233421570731579417480097669130133628910888451820153505449938707208041136211597068872431813021264488492803863905885045574392586616140019331199865795141915514813641133187154626553696160242823909657376209007391145140555617567130086498135005874501641946529309054391473860423680716550256618341099519028976570361785825715230816590743606996397069128228123636553907304468426634273109539823375686992600829161789251525793068704622126530824746083329962288385885087339204094681593864231896339723196346341471916976144108141396616068345124386588735934985153344980132025942376867461284697412124233905097130837420808086237441988277119706854864396591970875613601509742192564343025257748238758405723317864814298763509027208652684919496909447021192268892295325874052943714007672277242845564911066556775459105966970812359294630684992292897332180793657452537081542765810061397644881008208603740007561252201129219786245591377003758134745041314345110788736757156274760352324596063098636202146959316586369657137551788682233330455983808043155374062233154792941214818744222907788516096049356365552407957730555523821858121147008155380294518557294206374799427471734691832221101739808989260022654697247439452133794452466167899354371389526935654444607043800602188947549079362398001114380311968668651675870679085934896264788778285330472269886124444727841166663238428356162373790066442685183690461961505918640066632860143575259192721943651837626723975577553506296668874288503300477631444142137938870746724060420262220898189980327712762190280999560499723828578827687676467606069971173608257306167265518606074832931729767182856633208803118493355590518443581159102915227652712533793105529939786327640022036440163450607177981341484255640383955299870407320169397548834579310872458262281106681352748668606858487442597181354042692827533759402659978867034984473602305095573521057943882459111397342921569666546610023245346146904677505760109554873522300817204679186457204822472910618106854958348403189424809535212214866578461840732776954899527032495340055140324229903826417567227331517736365754073311232265223256605929756274541385201066341743986385113017875002249013233479080075507674849290978629378333827628371280441727142066259856043346069762616728673598398667616002681041271274897631820166947666305255815432667120248706903547852320335181699514324495926414142801609109027188971570818618917048354419806028551692682997404526610634525720844424409736684461986292843496143261695883557911529644161928788600159611177755120274609131314475881665010984194932249552883340919354869427206818672047427700878195797720209497337064063885604173535487280486790171921210479551455838652943721559371366239806340716454278642117575133320011657043493697825120351119135948773957357055535887949917289998816320833241818035646236742386080160903201796261946889770598484920386560384738999881881945848150916278699877623347839542024792560770211651426684554325854101165812330831207213287328504416700996522765294968856081690531239709600490326608176332036818516550750237820565170766380768667608401311436971405167943731574252506003907113077331538023872702365655094036712441961740995638285457886957820483771761474022484211615443066049763619314207154564281579966119584183689211619119775542550341295121099431359868379628929431977263655566146732533789814680558360290254694045361036121416482041594040597719623411354163465267132528682370003316916457497134625154546133055762044043402562235445430223663987686311965000292736294917667463906093616563313703038924118907355436695272528755861592872685179128143475815834840646529529465693503896542347746281908265238320772404373826706192057599530436971579695586493282659191257097980347322510200254951565508117699023074843910711616169088212504425342890873713350121814281259051104449118386837385489385944342130814161369063433994785838867013720433098685382222396368365637981243414435116054279428077001330403552927737865837929401648495232160226801206931550720835801756152050832405741097743585888914029748095335523086166996194654265168055875637880747772959724325220346223337793383224344888710335060668036652752353368522289539170458164216008975145238266517961779420896000688368988115941491240117448327216486990707230605959590158000493119919413442319736725371220728332841664737348143366287141422960343807359348588414267738523724176084438289622311831022163189459143942551843621945372133141628103798338680820592845762993021748794497072463193827513426307869424670027267737631730370362563817223667400624406979614868518083024877373210985676203955950208583184889009237424293242709003203749400924237754303465898135807472132881008491153006788058685694680560302575704095683044845133773408982226633271466788942202634304532539251062921153518741184477307620633804526973600448811713330185149053782299640949194900506504159294801180970127848237253790432461674673476987270309980540759981086759454348782382882444045162671558226936478199773086964460009470680451579550691101758393735197271633570023674591196701801295250948423922965567262559005580090110261742649082818665257206506488121468581217689804692394914843600745485251345628863489183882412494221961159263633103369192279903225585397028666223451739681618564775879527975125731775706217976554049927255504111152825881503856947584028765244866696647401824479704146360788076502562228584848662269750409866699631129694140617877720887773783191724259849139920456863874990944087973560287916198526349580512221563895550459876070419747327155618366448875493682206467945236855313543807482863519256567228170259221495440069233863410195192644010264258757880579226148488418452693782601203381643996784462588300614537569015582977151360637651555241446328234478774705795695091779164852979239180609633892285724497388061550801450361875892704689228131996642662619972535026669836653131963225628049459156602492844702709672018905400404929444166849123454423650927034508437881188228617665174502620171124813378850621319217798418943374592415773040317175165512082532272114240956572978941897473059541081710607996109575605849537084460890479080960143323169514927856466046492486858770439487389460873207084287156555197097927843701156002719302043891445282326569675869163716927949915216436285302250577735845182496762697294526637947839949875183799445611829385127245026476346228258434051891972001986978820692040958995502478355536679345011404145236830335851208744070702269550465935228750731829160491552408106233127112073340113677476302367290510586977832430774888212621724966446176277572396156120855722215383399053870971361513277854376347755321395504821508795499017702062944219965020417598278065587998161677696508022831116939026787200230435664486685425074812768213575762497900271733657850326308603249845445455167146718928395859154747731634950345491021762826195869090072900492408633982573306534800154228482446506851281463868734062827812491388555804456279235472290522071582189391496754618292285509464003705735332199187476839146007028062117318100395152790941704313304793937086022958073914708051071883936577221293487328632330732714728763981809370957827411725765487163616029490086758889552307721171077869262878202781586436994803951657815910892013893376746650711088306195955257978125955320162781387982439034754901652248865755953991826252964705314273444974754141254878526258460060804120867655987726719931895734628973085815258027905479843823656494911677774384899584674352436363472784263337546941364925321291568227725401084759925143534624968716216195389381020818123960241319945866861462609301256779077701826541978139149403591960508585572185338529971856583033507679200903706510137272068147709821739341918655806648778764287204354747317447446883989692190275279245708286781120694149977508534769075452436055862921233597182767891190211690281538445971275834110436722053924137000158447315105593707812011782238590015302800469858906070938100345162756055847545979485824726353962445623269158344308852152609907757114881891920652272491534792394575389161430219131534554847442640623206867648476059261336420587503105054523872747660435563530697395936504991867819487522847095229958333915875987184014980714632286066847724976622997227492308399108775023598533507619438703453684944392986292323844848359366232817192244467793117219171967516321073866855038719634657126391953724099885361932523083264962215858865604706724856908724547183393316014965423582063720680690674580918828806322026817474716619604090833665589716750474268448189472933239282651683092294667951158436154035208718775480499722881367034272747599826125913452258042415180461880112506543373082622673524679646384778901980090966663621263364944732439852987746677106082701896675114991306911421040401862803191085153670919441092383952591280068735120254543384581735595277759481599216363795053507550402478035463220793048583188133713184757782232485337163533896822196111647041183622472816610513716933991086371931858612408484171090549072269680100531399476156318367781611935163059345373627341205117118196932203606233522113004950270820795750734435732629502417630705961179952713513453869584014743215275498029836110255293226052446407890577695681798129290771903124150715552106561764348241683345645801013211314867120115138608537412858075050994492910039115720149329926655442076497670761449516272594012695539301670909284550454383968982338141463647119334040409165680422777572085786599032652654369712662213034216095019929156136149078911257140757446222445300510370690638738606203189671469920789447364672326197151190160089005102116096626578051242596611435687390930665065808966733849902376627918125709203725605158782757497345703716571019796490013749144884306941302773428116275299544027709416376506153323621071443708660260894546334578320236483870926211741737438404621203882643914478652199684253368187928498209542015198559598305286057573716335261269098297549803729897798069830244447618633703309793428202839089907432476889617731691739240691815009144078699257291920763712661085873325718824260826379183923048371769903647095730028241090964434513361647791331624932061920586487975868573037469716630810927932807918671911969303805755396981540086345328089599702576706328633445166010881659571157239458034929701107757146178051311383183298561765682137194817101047888983097221551389143589866155174166820214936280969491227835303244560721764551153280986777726527309124909551950523115979245285328243312469415673222801935808493513125063708681322889023150428528573091800428913286972736658154508534692614594791050570119303761147647904113774786528140597657486478699673771718464764248061443043428679971651355622721110886965493934894738884621372620412466122098821282833233853079518243321313780269266840585743033941417002634741500152654786350627520220524694363367975861390240282361190789360279468568008121255795636707812258214430592236693837161509969447482875828940673037507723902841957649120952352768653384781986737397753371920839256928339909845089843893587118262247393700430426731647674083277321684705736036113845053635034105321401492353536119210695088286370191899811811836296056114106753456767437890242736302333008024937958500948967123973118408904661202356965571724442923171848650828754044468631243125542093258874771076072721808404073071355994068866477528773098692553376276526028103841228371205262923081697807010320525440120722035960666092193536466559232373968989943351559621892941138638585625074559176861963964287444698080982335367738751850553291913553890744305131545840325372743053435265146849250270507696314896320855939334670440572541402320055922825655140107720494792256012137248138815495674282074267886659487047318250380305249062076962797603928777875272051920832164338828256339491006649150946233552175579733439391862395522222698335515349907268544062621449355531867257604553448364488545045198148948712857362809228783181041734014292214748263797851174181644828094963892522663066732872933715575351187106449782821067145703892026048023094084672307569082393186268876423759913422486840913411950977480026159798798928378029574504450298357826374785336559128302765039360803371711371377983571290636899308788653987379246076880371924239026805487132253228991910784099266518122928868234557499640349664695956024457783448230209462816383113656035097870153915493750348723874748024485591243009719836664252965979837102685400318734810917254592877545953877077170830457719310720897555544387053479964530784550873627918953860079892865485542679096879913370293045419697716246559292238311276237647226596322542184510655881542748753830274492438625096262765866701884781298679157075705458863147734303297608380845102753123324363955240045586817279753972385797815309930695455592773285924043589396693788141589627299555173397835139346531331639880984091044303949931690839418479025645636252957645561607489560303338396567771190367136704177734875936468112493758436297680311934370757831025199160982740611875418298434569889474361924794169847568236388904881621128301686863928395722466479749522973456458999812061727095382933290859897002945814157369534401777972474965880084182868955859936275289190575614148009474433876523995386588321185467697245400915801836733172854327954011389806576584862310667981619975825308336652186937223946846221394021761637658775836016119987086097364060671650385867664849421462610228631359177470312581945984978545569523296115990088014247986298710930692735515973523876345254184021766568735307946049998230724189988438036439897435525428852086128712414266769511201234346230632150305375329305151360268344369765972967033448586570183548763167633080424261351184030897873753572035181007308141411981282208272783099460803320275538495186622976359728650839707732910987926550046062437283345260195057251871749205285076440630093141054904227896670729922614009343971569186119521052158371740747476056601673015461433384052616747707311854557499192098361950246323875797770271613749044945534530228980584579742158739068298494588250809403608315811988460078693712459728135519287695694489787048839215077434412202333871031299498419490558089478694604072887837343444940901902373739889890434398514923025727927878840499336649377385700945100023985989378331821451548514487673116446596710325111189803410676378871988869065454291949106243322867842047001946051556462462203783473629942755448765632585075809788663888178019672347536957640638987134967162760558096364526701664628688612966928925532656611876876823079774309158081118830902873615221100019214466468968794419548126337416718510577361840698092712847498283423694655799046796807406852027714599727812921954630190406708814177032336200599682884158232033948866232091877708742924823242350348138911140700892792648333744689789575297057545413718291883846125386631770543486947639470912260017024740537485335705336669379810904404291931429686438277029512980606781307948421156694079293401587779163038024886157429661735026054935486464830256305996876405864486692213144148708055270258411842783197780823414309032595243698621052249071540138023519485863361659434305879389249293228289582883240108012478657767363355306184871648563093127883455912310822506202598094435209615609860496469231982079045067055460348851150127893181170470812462000027657949309856268218496925344704208216899110627083299924232808311197728643058348172537709475328582949000171644849733231971530451252462024022807915012133354771475928732153918828015012487870230969902551379080813744124979666843215838737021971850040755357666987707990462924740692038416118382192382526320233806979620246854736966292820246794429575925065179315840719417045184208452735483800956040143655046277367891345397812787307838626395405754849457120971195501478984578117341444309090728095109560995003689936776059241329208571825553172404184559161605232562571908460439834962273408642578941538833954899060268537219614013430703484461517674325631879957184145030677885321980362483480859689052054439618679394508901412788070932278214375263562489844777816589841693742225541702603844014804024236821800379025188507735949285727191928032496691266271888969773707190853575238007833911329409851816874780482831291905532882997262307799416838654645545161683226468832530719635922281107827230563490628824173396753884201067818745699072557584348531266943042341773610130719414125731106690758828692236075343978749033238847320895171464167200304420027029954159177374359337618774617227157136004326313008900775018651930615255567979447505000224321104789036915958772765799268665053310150032724079628519984225545954113099713753097497703155647137529598418273323441546855875295918824912101055902492027821027062503183223221538566347815822376506155364663122965872423481894001187951778194113270879131082608730868431145802700434340357258170516720700970438906844860514164996510940226818318784157526095851750617658954361090759834739535133840702723894826285938099622432694590070867899261350544126813397864778820933681858095011873725432187959872043504699386358083992596603967497791075003072179453248346536907066954263253630693340260888104589008719592319570785235543151174748984546447037034512911201481068608656286169341315117689440548065462779936252122243356094359995798171872990892192554552178016812749005132980701295263819502584807292385907795509214372601808296046311217616665295024090478888464078761865301786320070516272152949511501286990773060202155247980008158002010081122776705858797400525032662343197040545154895369451511156163635891316833951731153979951923113196152602429362994531295484683777755986347583996764156113819861621619403987095817184338388952404127529404910953024006431245728874642081770472441709607053746604716526855029629587473772829794579326505193883506593964883163048356381222813628556610818162672725222673317381818008003376563562198860679257916445137250505687536504405369274396024455321796459484364971565994602758673657692066435851237560513835956164452918957236990107678632840122624387249590548380484707148681509878393108690475775422285690726566897932273269530473843589797970684664404258460526688479361610259552640209426030895108191752413434732298895506124254074154846138223823814933726571804667231185493098588569144217875732217637340820653837634135931041811339665384870356088308733256731852545066279895763951421488263316076932848063998621534645071639959640667315934225972049243946086326633361188329795839951550702065080334599261320360865765927750774430915736241941266409442727750960307620462930072497556181877433990962288639784868704055329682992384175562702737839686407443312707913532395538718665561971970462668114996747319461967042761082878196830613066220905856452229259425161661098987890092896646237130156863734589504644258652752755477276380310200054492964224771262149877624030866013422903413936707590813653052157268718176119702401701883742318063444647026406743931710827891976856414438011543412469395798451182466530675435521214550267215028416593692049836571202799305897929174133033606148981105363656917166705465939190901971251311509168276958668815403109458399463117518487689134825722785274479464336977905148047120934199654742054147009568079850188589281535566766576517692926587278459811496768763917185490920598465084162788292207412817141649913451980206278026436825513550345055197802296733734690776467412027443501502344781976344534619179690991449931508621726048457349528676405045811862327528870648686395132202433561783410763553954527958455924459179706557839730694649521661512320465898128778197369023185328708199538638854887566444972524458142590631873010359726723729142887106445453226846342999164435386667651566081158055627846916801938817235176085823758058433422668573091105759691062006843166080496127693198523918659290033906133614542739869263559287549982222950066166108381529807480808144299949693023124162107819299633900295064191974173403963838991387731745071469767942394162020552268322357458547432267460361883599926923995737530065752296033066375496373909310051272362805087822424979709934651303373738577157011831686160340591655026573893904536191095828384768939964956519026949794625153419103214692484515850931894259398314544578970610792598520453460438991123993040354482728179179233929490527938446831564736403215694272784226242285619642064984927934521809976198809767597180628917933047489570368793724722148103920190534389028151604863761385681075313414039672631797742853600286683256620009456148638117028665626204379227282041013423085134713321759359374522032781382530086473629955327194030351235040160118960131423765917663610522754785712028214921906953732746173703779518021060405692324219831176899023336805240887448616960774100901096073655648764424996500391594782882131818290587188305163774149818642752368735946370230805359390512314803643657222487366846267385391285512902881077519870110857728895601831438149789321715663955315841130053008670690242725011183113732428931417653210309313811470226041510550424364593948041468031672235347878273435137033788292647515693878827267149158708988132061191223658531337165992173836727948470571150689002830675841548207065684187295909277339713669804580720607210143625793096788468359423006954451656948208328307521522730656232898426709036165793949319937821257589785550989230685256503454269524413240108027978230309161250464432809240094403033929316565681259783283082128774009402054068594086982332064618690217040674224774434018708009367317357983047676551835356884184988263448870191879337828893501171874491706838148985381762117735012284970651643213223867768412425199126983973219909513167897032768868975657400538128245049920839376655652605710662973499159774529745108850838049210634554836091032473195983314496435602039720734243546229049248029613261503785594793481189296173496062810770142491657651910514507349186515683425879802210542754041205503034557067255636054355471551613567866025626023955300580618003248797054845986494621706175574813473078094343981091678136249836560003450464246812830653810217686110567390529999254958780439569555027926695888044623062822871153185731416165030676282740703476994037497077552690143649054097230613164161228116565635614335074963496987603301488940186100787805167158663204441151683973282979126178227572521470649173849357076314654590585512807862794247026083477667933570802266558427483385914060238037141062009046004537940322927566110754075543189395323913625113427819902247678336731069312814305517293103394818671040551349596360779863618175659671436318066414356780111478478097057338879336102368606808988676464533958479407935324111848858321469448532530879443944350692377223169940599280695585038524060911373657963043900396270838783707554459481264085989383371946741122412917594204358134232708808088035418247901527575895458499992097353965834992253504133674380039417854963987623118721437867194564361266522243405092237037340928176447774015264416854859543746118838227725058851723263115678024289815879818952173739010903604190748888068474309415072278282859642344153242611105682204275875551562003780510889951800079823940338608769196009749482874482939010854000399719655743454211118101897527245416870972401127985687850518059731695873037093107783715214312602550021860805107966451506374621163641109192118096498326101665358758401078305921898047434504328051009463868503160668135023054704228810313575575868330254210771969747833777626188003543621204123933380289577342275949908125970790736912126665161864918642888671552526540266985376815653991697065224110489143917907016798202313433145264625090319060573603977917382991734444561512765885026698908557874542948230512899329699982472265245145423390281511341082770873523844436953489055782536201478910449628052667713714923230824652890950808317875521052975664929242562703598388848077352588671531442796786817024728136100255238357452781336119792584593996141587225269503618698500915629499898741070327694347782153366680275459231509680218500889785393251228654426033739440740117506222967356161035864210482012607830293578502785473315387691239558664567181074323996816501857240077757530279036473235183078254301619284360157570884143320805653442598770331008427770984840787145830194796763750301546454009133627936429946486402579728245553904108947468301460387888122737853433959382310491215094560817875388750072583830561550884997451346685399798948817987118675814666122176286667553528104502840920998036347157338288768463118779573901003504842880792544897590755309941417685936514990263788337741775950946208827493461645698646650396124824520030845034180126562853646437209281752729491506305686987517233171219060744789997862112058236534482746102852595875844341248781984463594576700226778649230144411085217233117152337367466988921668764935004219165501919383017280239540833449798823160576480452981275088011404687124710205442036376838798001382512591844373593739933890493092460482208059731203698976159707908544419827428652483140778381219246700014952754971459497777895108718261843967748756138717060162195949700340047886703229936814367153532259087227695728597937244372225932644579574506365581574211181504364642963168455640688016054725974098248711811633804497527080359567798623769995091490037203412306839749755204904762131786043381784079762849503902935813334911594566299529152999235147133350908784197650718790289165892916090545234367664559134724993639776790579525011838730657635478269798680002809783318623415069148529712631424289892597019249682928337558409088652847081357228513085809467239409335589293318459105174036494053440633071755911108978882717164250545761707971988185132539735160308577212590387311075518283408334287887316880402679991222211904344107688737152953147659860365184561785313906913909550594960856994932972903876523745314547428085765664045559114163626653348537401119364348402213093406168721555540244641670055083276922725923207714685155018076228506358940485783984516087668170089888502781202972605795539199254489547248755908343953695209229955033162950505540742172537810781727058692580659594965761186558118681331696586279267625839644201770408818520561372927701852265322050712492882879692741316081950828046960155625341979446382912354342913541932791335195719971264887047124018869716491080936572387440038652809319047545776961452615523022030587413942842684484543578354073134084710440322327524422899811858973915053964157471934686956499566597516823408823798625062986752790724445842187771329430486774319689871156593270386015041454527230514298043863545058128261096250526121302274486411656424488248197760927623826787565770293892657286108609763669427274721635288004478435016146788390540590691794984864032510548012208535515339940618597956088076974417780106426477983332620620298676141644855096549351847918845351405716611728842410489497962405002664228700221541795446393335912200666643879636817783561662453573398233730049787198925721242355647336242675684015247761910966034504748075273215305445938898671748753424089922429085908260763360404264833088982164134817947730213784916852893489945832895375702669803628633110781795032799142423137839666772610124574940287455549754118181959261344947784466830146335547578727004691248321301212414770055579330754112962158577835333030015576190226406286745631385650141358907895604013374974871250618464970810525140900093866271754833860174313154057863692327634853155109375488114566677047358438263174702567916161776699251561315422674943760832710970233288449623166391049779331731216776941349723695669774687740240372450611434167336050720487337441386156811567037788513902396453836058248410617286218038162300867297215101429624569738403887678189532984426449549583032605728295944642406886773336588583582726505343369474342133063533570175243752367392110296882462025171272434314930992045929130060176491698827354823142718740514501312899916963890935425981243102718842566337404646546495216394694146678214258347217682200781761776533081555540936335688932752490217456365664414099497621460009559181518954526346221220243286935760451859780002756640067793199985487758741189806595447992635935593160111799665525329051344659102644377131194910891433579911311184921529357403133018594922897490818271733477936787881042875151572126674625452687183302529293658416848299193888179477866987232064328932071087826283403870249792991253455194975856916606693629806744336394066792744887609072782185439759618913364369431654119039636144261234187802831014343386721790006778766363742172746930081852162145557889652870137214438288492954768867995760676605571669343699727501673714054943513677806956090238337387999408247615068920883691708048484341479010596227870552018190427586877312273834655716335897427626117756735566703692104954483909948431727284220018238092987559978288840261862919560643122230121507334782595804221795606944481643950528225087580427203654788368003342727075699994973128783062280565385182932424202326914139821029617081584978669102826179897217777499046548421783526456923685827469864539443549391042179840547837869082195700970709095141042270448340840325263920505405290742967526086885020597877425206643785095604491473149542799663611200941817877331149860747447611250929026289992405859026019357693072110664107279602356637281579345473305134248787779960692306016114369205249477215562155489552991708625046643518119643541785738202879454537857696871718579872598017466404530704897454832615565850714780372904668365979367703484837581020100486994596582296566310504678845409165607530701088103714689809556361670635836474560948548270989927991168248329534866167464322453136906056230828076212898400052217107600258172484394743372297346004873149914678402742262343213663641235661811842646240690727412550755309908994814316212675753167346612594331754311145242180006599506435063903718929323575344167276125005238883920098210685426675388410745580364028344861407805059003632407636391235248406862340587907739828122587064789450649427100154243190966875448388995004661170388066755157833188472763516505498474246251623425220106940982009160536588554132142966281570023727534098623936386446941089901315562279572593461395132415734041628274005672069479341546098212313948584210859336928555643725337618837467465895538704859993674734085672173495743057434264095211184937999912761899043950609113256037944436559753036455602371305342595435535468478550448365465750177600677788433894582702488243344858454689147091427108257197373341515625435466445062304609257598461669242288202685878589982544320260783925729494761949603471606009269215900212131866075877388833550320767984303228447622905471867645555015119289025725706414759764410449137190833559609449600178210719534919730739790345470182732125882960635753728388085441757594315874624723114060845106159234011222096363103316507185963334955649229947096634012644928538086396381211765499902980676859947712472023329347278929646012577099344931892773515611199222197698801520711535814276259080569200129627518900593299031448537157212377138789108040334011260086549181426195226609198830664929405214378426588870488922738442156707832069133442357485836605108768577094165226637816769328835567970890758244179756355732744564021003219450253164263577165040408987241573061186806479229299970562424395075731306735443053102180481031887885068977197518766935093551546576085942898307749113405966802237858620388186473353253794931276899139339317386278622412176278037701913164170822392552018543477256459828447538383650250623184874666950818022006384101974673067466845266858680210736298637393285376507458746463168296300805887769652732566139042834892738769001810412056274752774677758683542328491860580312795223526456512878745678358734898379991278899752413033203865005255391425412973237191670133232398788417606677402731978661351882033922717887214728589971437834212739018885390846039441887477301248706907765702478507568647319588735437415644135927616489930293773234825589399741477784499110345524637369800970277115748713808042659174168344206942163444404235711806757869711217815414903106182179261687954018878926081718080473408012002087760908419677838019311381730160221299071947656915621985973017119307112933782158520542286216759647041576962379743802684317322447691756424007190127505085334151336326352669219067494757701564253128517837678497809378788106011227845561915234389113800410383289757380881091753184368728009155354568342148971434419799356837375694718851536676674488227229735161944614439220868443637233355928842519317167565750665104736476633731545856563225703223650121688811089203245883730139738532391084635804421443305922004451420272507185714599937940867588137376588667521095622126710477116851740106502162054039257575716306074336826220405836928094238659959592641139037999492785786735431394421063385152288902645159944558138656065922021279508084484162161247209443467147291960564843092289303982394256194759877428514874573421424014245003580156599631852967727016504594725658093131414442757250350127357675013928522351894895477806359861050040311141778967042937892118719917075401493602715383770271540014431695913057989715092403316273788958539285690110204649421383158048394907133495695612564423105362405116697420583990854753355303263913241815097847131725438254856780448213581304381277825311966421586667390728840530158695613366815208084553412773754175755105777129468443726430015832694957126192272269609124121223167193849348283000142265976961544702225591897625763249849112986956614495922202512818298184580696181758095995368238950382013730108297071336192937244947476902482521631715094347942939300430891650709272831367382111716929960139383529270378783078736783631996360598214232723284725652600307151326781205627476271454779413191939410133527036482108249046361365971741020145659506967715819853610903409629230530345059037716696453989403560868016662002931824004398267343854140089021848117011023608985422289417784528565866208476270821437228190360028386802987332599298173835664214852480932196771587193193979482722817021360690999863728733024617894524320167374266481893612239849001317997523986275017585916931519006068844268213480052432248596554833988548314955646876462767088432741308420806566687127254001167967779320961970392801130239747189938354959307117870689265547649017189576449818565538754611551002800822670780568049035261585154230056401453018630444166329517392525459813318830369283631618515080284631523092035542239542272377220619943221428139680166759890679295599970877822273663703001835310098475392319966821747611349939359573260458701769144774074998914545144817872008212554206077647852982912770981047199281861207260494416435833124130039950304884149571652097016766262309697015494624670480930974745322914697022362619322018353741818443526863823687098179397865276667772701584221330502703497619586526657758705448627688914540991481449818784936794360062775015566722909697135317097877073030488122514928255464426114586778060694959508911988907545505754825159940700266430487683211437677379137414367876387119010936307557166870956444658626164128513295163988959738338508222947149164942479878423831438732487316192700652924150652593016764315433308891310268232684541911436455937114692146934688125299553417850366823230526322904926071459143273747276579563800332397510485982373722710227130336670003935977835143143747052186659961856866707974907231039663528706660083152923947750756379821995830446292131683387944638441549409925573777513878223066726684929092106981237279288862867912328221626107519040210078640179086455226797212661787906512455903690802890575396908987947428528102765281123053716743417436643470326102964968360556989896746996977523384214628735913564780383978940282507381545167264398045494912644626687901067242034264427739792509907910788232320694263498585264393416033142957383614312499468128665342292400795567355128228673283230897223781702404744201374283563027262992095877868013431847746894177089834154787170452609255497918298138300910991447340334413096440120376914075349265433886576079787550101227854849029237275365345767641686501997716468830544512792476555955112067312850109384546568749981204047364169665984926610892427615978144356134142994806778894733773019986881658519128809307481841128842973689412236945181069272238342900317640075053510967964104168205722252460058488718834116500461068327553425040387519129714046198426457137999566319959492064395705445531162443186735348834503297669709577664617906586890434681105360555074369428462363692245967109399495679249206144357497128684921432294081552424634948144029974100719282022855025646295020956400563392977638493007225559973016799097578405428094842577017824953511154041102657353366172632671964291287051582996544924067482182624721778666051079542821823060857310372665423038982778024661540602419809006324884202788293069122639826803482169289399685070358443314418429916517942252846624345259548855856092775677264526646015089104290430969449740429451535950994448435178619282837327150845837148639399705064921202426422248271976778463562588375068264491595829783363306964717050756853848785256444084299860697977532916832775277779586572892198649991114676189235437949694600892344081176227173521014407404675465140838885432297191528145173196418261375682305765954003683286116220762584382350191658552974464301211670715275439775435160804323449798731656035915150074425436012832864075080984461565291152791631743921604311334798024411692173890002805534730535594054199027292895770935882149743002895360802661766454826368084865644333802625303114371294684916500359763951460844018433814849572440961261166768848679933282348571532832923244965702038624547150412630114552647887611958511088141467853595151246095889307605836839125858081211721084161497596166896511008657976246808581960819236320442754398354389874962317967713382411672966431142741486333096486999869840455964962752281291926637732586933654383745019362660341343417053637812233969622446655777248335161950557248389778209965639314718620038627866990426452333312336267576625232423516255228123285082996360971590922361995808695281020136037816323198463696203597958649953407221658508972648386760384633515097913101229018227471658797027698545510684757572285255660160703554977715975209804196735987450532762522718719556893453217659825036616884736068000717423169814028465875955647026443089755531747922901435778270051289188693366889834065942915553840542951477087538341570506968825676715316082407002574612304457605075086797279660477179166864938301450485022032198768184420135631395787772113714139011239502973416574808103118912854852100123214378807763746983098342418933719583244031111768506696401835950852749198039364298817063871954301369801909850749731178209566888657337555203624605077929289564270681104078066864432546428203175517165111347630441610225231833133993976351398499442045537948861020126627304517986236139206892406227207889388116962965340857052004497422364519494971804915522204288409250677842076469246558283949347426467914993092220384350818076408555859532460668421907143332238614946982589304134733092714957651304425377821856259003799617520866225551413580920789367160927472843287140598557914537874933160275789036760133068986415732851490761700588055305201663106116833876949506741850607336183591618278766022706577875987350638597846165663215904984662680771048289178416690026324525823530020752864140055370924082871335370284990081050821671346295156660016670239952570626657097843650413627902191121978814185529525084707649300321231986250185150192278668071211697921823346223695604044637906777678036594609527777043367087996905910315862689119928520715655676103254122444813477893315798323563314213821635072545132296441109352540461491871587286978713753600976096573578874164165692242525020945812019647371004293268335206989109757985811428965969165512663421102439307333028653592592964197350186782923180092793342275710474284443390144366914385380205193357231423796537028539105584828529340046765862038640311019207208463042375766076091495599450689395276153155536179938639849410974004872456541160810538949987318852871102129722378778197930556016300197579566454136686003359396909002318856952797066417606927183467637940285171096956469706939411597907966461871511336767084513560287229850406795496646606730461606567243766989634618895050756933701691488199954012049542367758171283583635304079201564844321879685663734191107541587664981767945659431120874395153118243355729920204007080011347195240238472212103222310958973215624174926090604008656225385458350268570313127940011145854446309446225816288521017520999862194700214157046575152721977971217572007836046471106015333962284680304669939064438271078167233600962562536695823965040284447358949159913478757265964562980738737322146329021462067615717174670047951054502204549960989880708027552668582066290050062404297674547418802326271199515635446358413071823057176696893300825697511648650590162390193269370217732121296603398932640477402910481157026067917618752930570570114537422979229580607531433620347445147768034739163238029177021327428223462967298696198362418752550128201259051238075553743894831562823219961126226446256735424060278487886287063835760825198233608454981280051299243940995070899619740337335932603522761898209157517223122167795055764388575241597434808358825645039415049064072821111067236024055941401617245772493991725192183066965907054046244186949984285084021280678946912248674667782989117516718532153783634547288235768383599590221752905338332227699605103436460928271898395411315327725663369626664019728703693268354216542697676601085469630286150673345055793918806062423171375866933739311415137193481431196349077274728937477232611117421935306128274341756201439799146476101296650178225633880323885013363670192059080661919937150517716136477841516204044602048188759269094496202366144441980599924115303653437984618952557178334143732154617675541356767620087946928118911825138021921495196514173769488444628744422001505552538061115873693292398109787987140048270861910350573183576656458811163099211705743129447150430221702339908733930435412952941603563851965132209456231581719747866729133346277957033585821400463731231077735278588034297968806904699435005511975671932355316862148489758117747822430168100589889004501472504063510618276009470492414268229515026736783931859087780002900207058466974814577493686637468861951472021359270726228363845020899611158668794199467575806752201785923192839918119682366442570193055927228064474260816207784030618900380783277445842090175757378236513848091418713781885845183802479451212906030188487784493716626418921111701275532328209706129538286708665442449475422359754045134511896049390020570155333581076607048463277560131044680397028929814067637939463702960445778139597584439558898790835077284537661168561581897514797738647093714822016611105398057128756758222556421774115043002837497351067837099510504782808217500048113658352436565392388299856357733898501750639988835498078573215672795173772741717261195076487613829141523535500892234244933251703215687798317624522468558593229294235764744696107863757175763863109092618130454822627923914426353982950575456501252084539777486232443964635538921526212532805872159716078149550372999814610662891927284461177483343346618095730786036795819584094527300655186755242213423106113401017259332345497460742611093066978980073319059939982532188612785125212483046067854744437672935633345347519617244451443541219791408277597683267378730592469018615008427645907197897502723373178112087003093761173370456395552608801635894531698295971016242428457572587334066101430770668140034166120622908693518605914757924000591467487896281660713883786240258700333515570592639902887039314759291388347472193276405320605414218019639446413903543991125619263421113383553469160070655784647308199386843215718671646382490180403219313104277722475296173355917012716000340301177844828072917370946161800900060271234620922682493188597242987131236112015187354125516937743714103760213509315258775233263366304182386692866420497610035409519664169066218589840290848545076592375432888054052595720237822645640674615372931847365723621567421119512129079061697437708748818773404856567799836073600247540749965403017574487426302217156961291848033419433612774368516216720450583555273330028971986825625157441147663425687711386777283575093027607173564962740237644765797186148395415518969186029598555530933846880510082079350644321788721751195515652300513940614888794700947123791336597705321336533721020637348777136323586681323985902687242992507036244930142735580939967888655143597034311512800780003598878830271963188108325573052781775812691454125409514435185437962397581761564885718882207930576807528301451970637125920945086408047622593435439640128974250915177347333921230057916307075986547491920132651593351073034568787780286430937144882709213463371906219487761961258370407631021596320202703479717622231654320734554115591355087626441513180145482848036049353732463427400734912403941207746020525410789689422992793490491508504292374505819486716537845738232332491035143897684799550390872859590652880311458300457524017174842685456150887745138058465946800476694205290680466385479379297349913040178931790096438357966023417423732322375851546894000277050150898929784509314510961255406435423780993718405907306296593679892552995002071741755978643813415628202688541714161517610194481033670610128742121003813932886681069029855964513325044001374228164704971440071214251497884988325205235619685097050618901223575795745603537084918282668432331926991687128645033454011669427895306311869809774508983727917879235777517031171558622773435825575892328521218457302322606197180965375605922086352974750864096749632627646232665702525765861867283731116166623325970777857473071668607591180169419598475452101332861267815590349307352215190179938328225298157850242085102437836269785493721289170788043496241293324816259695035280719980986281354162904247833668529915041751225958745470364663140660750698937159841789859218713872219204906541769192905685374535128758992845441272356275573901277375056671923879359789614652883118322083635042624630671632811703157279568916796487443955851929940527911600487170505308131445837910991053320598895003587578161624706837439688811873204888741108707424344560847101319812654850428114498526283156422189031649447477874998586756023394477242514321887640821880989428590411259097580079379730023074846336645722665190533607620459509787463791584127895478738984286659309790836780025776590461712762167574488531204346605079887640900873087946177402078400014816154612916735642559521573279698165859898187191257810035981471395484147974394171951618743221666703183776595176624116966511789121357078675406878624048896903124964564306121625102731210300891462338553271915154158119603935463143297397726019657971497349407290067850220193685894165141520669099853917459619858292904248206550172721765172285416214922155268631741641707962563451546950400991659877841786318166101877183543718340769163501123708565947174762033563745658959925160006932999739062115926285674145187097579646184300797670416227953473534595828310411314532165424702441310267314940113768297913586108809005256406722406772796180704908210007720028071131943179194790800005872261190327245477419392818675937240034385034386452036798631652983843197812738868252975392793217682490105382258575557784651890182653574197800627762059369828108039989048548111318493075038323325352274260432060738846516898458525147167372994527743870159108783287321850989444602874298473859878062940808999050433595213825536240068005306977871514611756087260973395851132805310853523694996419978807621510160098989499428366829448588085620604266849384896963916893396417484769784020013014148870034274287567313059467530911958467849431688997810970806624912134298673763314736940835695189201496244956427554197826458875808500247884967857399496121776446487589570962684254161865137401691195959072129391708805252462619090641537951010804802549957894604700970235773816259761931746437541147235388829693250088579933354401026656753868857660681560016752284543289457007528323968471360525566917515896060807768856653803691936162452654971738014722153295425898306822188110695305207398814261935169161502090463273152677405479253347662194501656177040138094741884132267775243820565432082172272039420031153167131963734560561033504122859255335413518116968106835584667888275191512261702078687714018780474820893431034909909346027060825232965491584101911745482220576613831688288646526523534260195433186473162542370105499764919203944726766862040091781072105198585540517984788878999164531357351587198235880151675501165614014089011165412618259758235551573515291523393085111696703214250202690734613604112557666947884111486291789642079023161891262295920304940710372928427518757351975130255965656236064546501987812729227511204453032107978130958591493048615734787764834308841002399108303102612492687174913474269498780998182907102148954384358025448475992132978397740473318020412683095593975818739333996732402798075012353475767654144257364457170291890347877373213860323356270686434245221100329960537063896941196702652513650939714976215876994351431543910773559157110089536904315880473783958088680527793381708228543985305487923881908329167754957712703919626636545607704467567373588302493623280827635112405466262394169123083155261863656234432964603055168595609885204551955098538334376273356001862508298546380085233009966593359209828118102880078539947712054350550533408213191404656022880903410292434732922247415507194948304072093846324997136694911154429387606356290614581940319826660119589231674979733221668428128232528831235277390352025577200983975951309659853058006230364482476249168669316198553148702957535683874128810297341981849032247978496294370967823588566095523015980004846864289524404272131823635957353042269016428861038739123247157514923728494485009023851120162936797759935982632573200192912053454968654240556251429265257259261484060272035173478753601314470235063146566726894456389722100807245921389540690945640093059209816657777349863255502037988930600114868742245912428517701067404720730362483837096682006602021735747581540590356295700424595169469938182050853410388095702296489412352721211659562562829015318854505869203585275771711579326799032516656343096202495014707577426432095797283636748531186403843325189207818932346035248159735453974612292154565562389358111086350862899961122980847164801576888285750306604505341470036697367882728652568905614527914197345666861323469993585578920453539825445644121879120930881049148027470891856866417268161342965244697844612818594464301594662856449090089665613459256104683136804720219082112447099357362728215631765711793005294444060195213641473798116750272145955270032745614857381609650977608747217156142963765891626100156050559676000247411981042025647675221860708782318605325498892129816380823729192989579575331800560273371835570050553475065375904328050505870053053844298720912440993150003044539827076658103610687804253447424241949334618901464271641993375514823547026816132256971685241169413454205735380802154433006704774551045500221120832728240896838260178327537827422916855030510412317813942677797536416355412912132274387693297248005284346438724373069328885553107510408202616865934338357262345676419601436065256424359174415885973119767932332815683619879627149305909049017438768164810239836396549324462149938961556839708303791109537984104424613480625985777820229746707659589643660663966081417572529685016830010655625452261639405974754685901533949964852571046214671938354052803224560474031318542549442144753262932348365712291335419803531337195876058653989468741517597861405020593298620466655390107524643714654649493538663418816743825523845831866494299114136212212593884320731907563548728810946743831872078371945685947606886795937163278543058590204845471852383311476600322534804585766429479703428132894591649311906488056549803549808947131132549204686573109399956636241920889018019390599039155383673470684626230416778481356163927328276121048086297417874712742711596831219581315353611859773629505489687558753201096084182308983540993546436631997549264735496524690487468941438559284550990513852071499921732174891970558665385947672983249586600742019167034532988763249515371418866248262225711744827128455298509331999223200236024587967402310183617584108920378618103583772032857302193472104973180050937101540357961843798584552169601850917085137625631169267467702523524974533025488750210659874431101114046052856881224522998301549175142111761866097516494335241220499385864475911571227075617050096991161574774271026701202215075777398993375601802684964516054334119847669139880913000365792342294523531765948343720994155499718712449792035634473741392943759743080761165893124748047658238029469384347344913827056408115890142738869982583547117445729425840312355612196076094084155011330131325147240622984380979421240156738752846095887555258668453472692739828813580147987355075761623058652487733464845323013237780928433303816200416318973067518913100575716516133130856024278860976015740621081570160150312256053776717905617219345391195065921339599700789399495188043314223120204010416979071718364970243796192487800612666182106465190566418143569281978155746995405615361623068481043765340192499764309418211660564972413176981786489410557639309638604880916613142169377877513826658500158038121720140371787196054746264592655307260885055710247767588677490722138885254401224532120127028911147937237665389993047117791231757930916296156317448303539184002837461095164647725566583367351881725545596749059613515072783095795966184660495931631381994662301884604642064048714581206133753113088288967898019512938058317269181549945306822884430104573334833393680989277988461040406328616300276312877732841138727459640609568651170084501935175873723195122690140875003472240147399445468481722435385173324514391605672301784740513032710137828792399119949017260262412372054244001840454451303386863512093030159067374036581373113878380023773823812034610192111119566323721205208922318678028957466656054197719555928062626399436494134138150405627779785668239681840688721840265762390930786073828697409212496608634667273796832005202152442892232907624077507264218410821062863868499811600316514008092139985321449646337733625949957430246648517112008123431695382804658908106233832292780013564215054010895298668872270894262893969404813596459577692411547737743201365414575900884122651414821076798375563533437036297762324575118026795481871606557566196520124055686245998555194926769545552089738785437499295965542635610050638290043363300742866293558488763974197949520661001635427093319749348008872991412399663108519407720578251753972399940919511519414048100613835866316043370234958501014255856850904557268165077100982003657348821329155687790938850925043896420841003852075054914589931116263791410244152421952400499253249662831893216944280017881351014497001595617116381792810630180069774340732539039257496098222858731736144857335027591009490491963685422060518153162489281693302968821632371858024213898845595768570530170507076479679223775522768481816665997954850334852746274734268997103432706783135561677018582779059234327629328612518513219146324005528843495127317316700118295132683775233145061868305477349789847558072593256095009884992364860536453216016956487072296113458589981350972131144624627819347768655128517183293486879025072333985976457698800211773432097747259298773981318097182141381172518386179867472445575397299862040143485397702023986368117328712385442030292669336983980208690164476867510669004087570424935258000932634603206222439573415573257848123961188430473993179017599387040939410479867218909090285485836411362786947985038164291987657871218827697067387859093489469770061042877623264841724575869560570138981442978614505103345230424869806199248081556658410884151644639537139132427204041326427229230518296969509519873447792178398498289417651462636474554072514222044561721821635125218911928633055109719660629645507140142095099294243268077965318987208527008724143601252467846029726469242657870105007974773829674328167273887009515522180833959972171859846553921289890850957117045695423698730884262106954541718851155539346231762311300080701423699060174200703372313891068196461310906730201155775429941476217954988690262657439001964228126216288666772496250891257052827361645222793081668197615384236082614340275226775694212699020440688970691744605267494208448441872441456781980320831384375374262653345676560763801174160448772682654856896168916498108466786978081492609120167409923528099273549223085397637684029625566010829047509998281886580769224801317390352474923440434178816297561400471427356563602418688753358570838051361444702555377485965092028166244599399021083050283662648684770298930671808297763423691304485712975289350632903781004113412088251706135428048070150944230239325107685919653811356756274223109522718832285552261257041311805979829071778355834138325232670141567406280100696714218623476060642850655435399363855554763234874007709106115537732943521731682770574974418567260459355932517887691228351627682733073065680981944510518186321053053217540629346007875776154306406471025020428693347467863763328975605687483852896718620487774477038809888449618710308874779960492360430801601586960060006553311203077658677404632280362814782121443640408187006897836260200534646210830739691334127147288472610166750838349230141224248687645657750077550763644216820289577238341479108757884061543675388578959732057867721667247439769638802099118096213756059280680496141162255013535080451311255887449019386883141701139827489795673898088584404386256775552861861096826439591069717021220809836276483244431872080743350989898279423395480024957057735592423689286191210035189091702418272378698372878171539363152051106803736997742978528751876893433595477917390748234927457037574737765825840315562884902833225046507043037697132633012153501601514121469237479848333091971174734977580976998057510818989088658582536385155487328233580109370663615072658889200051914058080509784097664080121782431288329555537822159906543981760630058945786344300785527476301545764990976871212336516184754759513273046085026612889278589226060522269659076589163838123986913366604332603770804246133731743157318692226110155861737440661795044940078592956765743314126549600265881900623312805571767390829035138431061015187532375305281094989242814117427141367766502439285779828554269108200469706973554420294862794453646413468417295774060385689231933810258275431519450505534885117209681915667272691778519452983285011333539480822690721782877020236079685158444171474162986446642979839327192630034426234064688088524140197621736391679390556713582392111674298084985720295229339291106143433620512263593218781870372665848845491613038515319010639063960749226094769624048599692194828638978968698586822488421845551571683058036505161568200699888350272532982503649430137898280627266137638868446190097086678849025375103470142578406371021650195234678572004636737739268629050471357163723504046501856661443096063271167748260221659564971006116850498576369023339563023996828892476976734162987794228207473982043753150349613542158192912219415412304670784986974918359828703786360445713537526550720697399031683793408487987517058101847779489995478858479474881853644976654412079535260303213788324306937108824757210820216224182827214947810511423705559018484110163742125423526704889433041691968824475699604579245232407329735010003343379202603974090154599470409915522820483372570920029931839422770299133297676989435236766529491763531395830299749470418000593225627616443736164802117027374636610793938065236832858889772925546924898607804826919355881024921634584764903582447890226441149409241039847157604779999300507266776161371863319355172636826728536031152119461770986146908272374163108722209859277200588580517563163509068638574562941204354169344650143721413723647538146741331457475437686327078861397714439394443048122454037093958020247539330758151819729060488761234849838191300236959856844689075564037101832109282875637542187888141324771820728364464784967891550845367231603418622342789725825164434127039678086538094009054285477462815134152451103025121140814214685263347042832815298056575354581948327732445686968842649487069953005261750401412846304956550883121021771679335824008396252347183105763757983585252379082021626495857360652810371423702794392425854885493640424752223923740932532535834758580309459290371013074500779347446814383348957280036528303025462619008199337469375254627565576524555552492712142055283859822962603692205421179946453212979628441252989747995640306196146179679939048514564550348806942413661587806866894564695942343237214681305081931009249628693473505376187837822135094906805965024188436455560866168574328166464562634377031260383371530803506233846465487162210639455484642399249415473585507636445188814192712211469453770056906643080779956208329905770999532157141176256601601226191270839751865934798153948980264784503076089148482323927181048772666881376565762114272529474981222627477940434215399610690848007219499559241562009221571724043401238381206020459436181057952894771316213934854348090374316226757486257761222788829296283225183582962396629199828134658598416335906361200921762759162896863134748030489767054827108018617826215644492905039597154215410510666238152232617780195677623971090144375779559284191901176990527182218220948514652449497686999860367767288931491720991082073617917458703816573901526849941409331288395936794434084623252308198494626572891449851952833358265860545805384317016374559950565685556666992607351382947427089704724689096905724822565101756917307833593367068250108639928000034725084804006157968121769154286867013527886656851582654278461961702906483742933208343210903654455962504535886653788816870236849658724560743781201822536173506215992154372984601671915577515971291796759533564691887812202139706605882479182796418419007420780099452361943287695571459775879492389633074214482128057503518323417940189319989420464319142468138401797243008992921878210276815525787476764393663229233768509110780580568685481562546415111642221463893523182517545108101519656485979747368832706389721330069479984815190917785892495870680451041498171129061850000664205763312076286403582242778787142876980847246143134098702368564259556960096569319168927302643872152389177070853229852189408747900110055068550015617130822859471798061760248241518680895823972083370917682146098783269102034152560780874426638537162316073950960967829838036807109458161536219270866983028624459485903999504284966059604641822751328646898329504899464359190489513328004759988623680655526765520870693320310078549396546493968050628968577352378570345367816384705047945682453806791198384489413312999451042650255997158163737925890479356780855193027939227752556802605503665213451273171937914476505890586993409557858784629744973389270380458716493606496736848688889506610466927270905954889915029797024729594210805541984027896005291496136639341437954881921431952365620445449870146437008109791451820077690881264636387065615498495325477697583252735193020923684473752720241679413287764946322915612246991516936863253102716583307854596211663599434104498425081321001230187426616922930461479696854523980536338977944541805150191645428485089703486129580035654937799904320792659209813741493396619250715910491730114972097555386814627807831738555323125028474140815478505867241781559538811894169703917663204059016458624786973935417832905098644148931351251333768823146253739462138438525329368554951080979180136735798714795904521174582752855984552873257773576275633543383213868905259885275431173865759458332849293335957810465398899269592856710104609391193581389096920393708625003341075560901915639761052808110957506388296051534167054614243888901436186304604559419823226366170596980862255398145822146233461781404177356259964658494797456816954344415713728130471671232362151472281537241667910845017005200113393524228541712275702937136721845752748695983034082273627176433229047495649237268381584678846120576693129811870178907512642229858258169010160953267648045692560267157236183633177201227224057179687674359547139220414376899260140604649070969202167106887925131803698374322744359767825838486689132984147225754935270629285990830040268490390828615951048191004067601532513015500882741801897416226698913543831699699780296291201859070205301319189820514166647081541986794566828873000117222738198176935677030812779924965066432558991403390891013346040766665653555543016095924742904439653640831117866180136540315974038254319126649129068173745050956443385025504020692487749404546386027645650298496085992279695155004349434015654546153379451108596168823638582966939367294584755602510836853926123742278316864538164711326303190325171062844010147219615253113284879849351319495499654538157738129107761021691646256575316519907753950477207822827126145952304621083345160480795637697671588583140003681431126243112228454178700087271787021321276695629116607144516597411276100771135088674567208210649902502525002529360453606434841470629693265487021394807545279649818920202567234959517116504741239742339300788784821265757179542696582145185330777976343355455927581038689892420138379817102046483202407831958792489804116369777729387114724048793251313645474940218011806462905771028536363305944429411980327038724156400045487712932388294476741182255653330979480613770990471142548028491421173593891169539886419994590313936481525025824964854013932239200873592487046423040359978108947477656595618554737400502781123232272553919636967462231780966759971494756127824489556923694528087720738041014804000597044493296100102199090546440373782971958086876716295824929243758574087087060266006082875746972546730614675489795692702208572723460061019640524945686624390102457868881300846417313260783373904397913663055214826369809381731440942718891747753949982215250182798529691180173913142115926784542051542227560296688850267194271057592505259520668400562714909485601360674420057011198389088051889646106530605643898743527532702177319788499809689847003067471744251452383002839544373259564522607473705427835204738090074730075118930136547107950202476652841830283370729964445484748241158678844747972402248494455862862908910905797843520660349843654955274569469649433020782326741393280980956129934068045462453605687239629733315333979912342916792292966752016702227212436639764358414731165792143948267222193009153509091903254612753985102249074409438173985270975018651710295157482764201800967028211727832976960266453374357836900808886292388789604797527461749574390455416070596471631057434224321388309905992209766568637736517629800990886547845293307363510355367945193578883770394703331836640420202943946649646143958097334388494617935639349724384569103396345614218142579048950411082263929906212209994312084342061780737637129489055522424599696977390532617681014602362524775790807447982825700068926865124010405225174737292723953350951734633948706794161221924789268980402203448973992804159845509274489927929904101612761013512323432713184547732917277990321476358455226038765131698766687425832567092075929860928402256049663612085464189912583485405817374351922446644721690708335720481362919443062351753281026326045866775769197208887246116596609512761557188898682969132379165719063124420100959893762177966294922973553763300304337725874838098229081216360318682885875142453610669320201387741199215691244499168818662372132362410199432805199311003245998723443290487769027265318384534680701510203952117355490810221005431033281258749521786214504023719178575076783832962653619367521545009694741966192800798702457767483970955023299412190096006068440443073275978653989679189981353124004287745842217950142517146205419900243209209680083826108287658633967458337695152463236386224917683128415480477109979285019202361721499758257581166886318889250534159547522975941380957646918248086231618223511619282588245742650932864250158813312214250877819780439687350031127610423450901489083825259059595355498895064287188941799848997363624795748311677023460664480398396117625907875257728400629141576153451915429640701009765147848555721103748970440510793502187692111248766653439809149888988943811552215503869671979687632253955569819644875320353277666183534239502219154930575664658729578784013508145764593507804536952379672602995083229917931830973649123250455895816978830578919808946006241439595868588232971341630125818055457017473580916051653230815795266020337963290683145743572745941163312373501396661184132751418850266539171019514368925673210653782097028043813841724524697714265213673842067590279717754988620126638898230333092848942378494833171902571805788042660419518853798610863575660995444949219026249356048888018909162210975383440621826131596811010019434585022849199795053042080136692604130346417045844434140879524904837256752049442267002545534751296476568858718230330021524652719812625020377972039765220853038952863479938903004377635543705118379128466399044815413422486430531798932558145561744587717090209337648687357384347177449989078159274830551509354197814663182368809217692132301844027687716171149574574741160819648727266988236283721675022182855991809071930719488115880952205954438442256808201792835224999275088598029359222163733436842942533183667260432513181947077717284879581712107935577440196460858369448584771012307603704381220626420638733522354768981598304141644137535651991274147095144207122621825630819834016717837305431168120629395942927289824378964217637843952387645527697553613464814471526235160607712866714910193633474752746448941141211097596437007567129660582662359829673611597236534503253834619128063062796149178414023714051239921329450343886259124530421784879932477081110318635716907860317817119569293870811876992880639937728320263581175090161757282757860211601412728081563494819773808140688632857510929487944339156403798125405373272437108845365594470555262487430409765327560058212933119588406898108068962327830681832425756467433895382251829756838443164939852837592347646985113507065577338582612463048528921908227043960957208002659577380645984726812967698336530709342873351437970804611522067855608692707641534608397120159975555456818498876025767644546277743219249001088899840618258043563701084460769713469866437658513688408202779535734050061061956769888758823956569657600712470261477998654662241729946003470609328296842033339688258272378865883774995258028503044688898719250877907989097452429353307694703648622070442859205866895105764276613338876937488555136537109746715813395413343513135137278996137716460180234793537308905434859760912781165145955981903059786251392304252352153216057533524024625918740577429489187439940635127601177227968596816302532564486364448310336536064987220236605235247285407837529042158416345568072373296304672455376196430712134394664167319995821049478276952524264259637424240268804284517143034902188184803070377705243778262026716483373601071534846389816487990556858543430931278385366969009306148951697274480027381822174870271448153253277130968955432452101000136652713947424171821269735804290868107140195255144307477653274530360468462078445117063798457609647853000263080219723602148535764526937665106558715673672648635308639522328575743427821098156824393082133445979755719593628643098425960698495925903563276028670938860692605341253374163528341523193905372857935795048598650869507808213502812369742880574314277677728019982594440839882000668209277047883090424676452386775480256978311312595314928079214275338548819012193073851879289630393627727743654873371725888275491244421259518442595114642041897343648142605764062897170956067914868481125889920928015212171555359344443419660820138833272609883544647167729103913947674767101072990572426390433807797350730940747638271381456075143026702479521305948626564428760413712518987828637099988579868898210314522279782744977038139512904083088200494770191964214461794305219572730683315469120442849910035317270417596085279124961219602748715803197930009925019125530137380151806158720117306510254095038515541790715946897023260029718056261316133148137993797350972170404216630046120423199938033134538550381488387111152515629137226336161990992817287733870732172473593893659779439344469557803391873975580680806836794466286228180860684635621592231097829537208695080520475095713535572886092380708551197503565485815074874887784670255732989580892574287206290497094457613659005209912148032253590211317308859642870252033155162903341848601347495863019143211877908835276700152719974901399310196883745161844345876991518327268854891483059125758769979024239939491316723942944223227084911996755901465403436847439324415377962228045593602093412205396159543681664547184484637622903663249790146498338685009592649391014108409726067898800660216304667946928202358312751359848150328468125931634084217465729459990659810486709539154558014613723198627919178162421035909869890144115220673484911591115091971061304468947110773778650494228446120859401547345253036727802624007429421262016518747547608080138460399193281589899606773653299538682782382485835399266107091663295270131579868555513564936996576942471223495783727193420688102389708066025453617758093173765932319155516065449253640856383987253391494028679013140460079618939746297770478103763238291740655382583886396126697368869728617871585953270689848544303797830038618351222798553536339327950231290803970691607913896239501308773433278335118575143100146708233194710545129180455133378191536703067274394686807794666085079717523307218068092047262435144041403909365553068959812104283320655076449627027128646030986703622886698493632173089936769244405832646213493250024935964833532210420632501232162014975659241164719634344806358124326761020434310408835615651298077788237902387431456124305542724211801645199638361930311718099708625919660171332116938986798933793697831299575432851884707450639860269781772228342280290154397625493876631944163172887201764986763430959585896254220773207657736611446331717905408430893470728955065990115528984032000162913430631391812004007155887773700799647452952269127612377106060334508583124697782649925595032145680699468949485007894881805246556226441099838294100297221605731089255072147387295023545199867164375540677002957185596055791869791645301823399719410554872825513466238455939992623093676184809743127009270189665690117118075469070689644471415857727175454001218377957430441453793876495345108455631473452259845658104040965264259720979207485387611671645671021447692228823505202798350357534398415855848418993200127609002050475920110227586577483092820592124248573775442654669905907712458099905320460915857982653483198655881844458181334107959557715952693519137775743520049779693322544511106050135439475743259359592129887675804116392076449545363770830618269577698097832120998276082093740156905496255426904849396922810342529681472149156039475801990179317170569785189833828596690095835112718555354723900874959404255561009142167075839506290366646496879654546886152804879550244385845881192986805275964294613111430905499925882021256324377338581052767249799595563836868934838396489485978301520357202251794397465745393007605013156314393350601178236925549794371343212702184374266914964192843350098941456417807872487658736970059390857375972774482428250562867542374046731255113583587855320657130117097476043096818439880409213199763044417654229430988755906552617473054098897049647828285944224345436834231817575755909027934616593687648325854830852542921947003210460156958421721639151189341467834810670763940119792417225364534222305314849811382424999244899400838196193393831624407850786717024303916444550460026055999055995049896352522436220664653102820545163986236272331176364453878458170298030741293240714289663068208106766162930768430028194437245350104458151094499344732762778160208029170119051203522729548830484874277100582350026599781955015592601527873982500465677916102048202413994194654990144293322420924274932041451121967904512301398574769796276461209069135638895240170426333368471543100350488846974928349532297951099990130625143658357950043989430667044958291662643730149986354309722587259091366807067471745373571475747309384169110669087761018664598797452004951400463191978705106183802367183421482662347284807883988732494370673519622510179581643213501653989269217900972367231890019650996474645586694070095506589204890878454608809046481308612463139847364955883884107974290539972934008639992802197890415083707926722869673064743365566808008430819276169992687460835905510916635138745134671380326249510978280774270841344823482157905585473362801139543706240788376304878131043869506263182765087532962194996230086000824819374846594296478284402624304905884446542068622651642466904819170874121688754900682213184804005933381285491990410427844655858973399414046439473847079815557957195611460695761251335155504795371216859356314957257782164854330684306794269927552003647365911516567170965100988603695920460321439700170342745844705720354772171512862846739021704572729279763593288158734717171139499619431267897768910414666832776726849288298902243236248491377355668942148246931473428683118103683331761678532788579083091076098719185048313984854719936065426689053407599485123741786644118103597906099824957710761657579966310368949719741258685669629842299233086230821856019165472061259317010620628871605155679113405826960196051699247261409757753624955220561040757627612784720890254681386270382414237900929116618567192015644864134199173698142729951160458106508597188801716321847993543444282120070744685603966609491687872249495947630633323803607845519369261617651245238842952956644400160755362008445321152326349084465952490398514504049503772562922147069536322229124793362548654770181264755972460752323579194344951590681680119250647584693581290161602785566461300865489819891470652030520404573963701224633865185075561599551816261072283454896230739186432534301223258259508059225277589887665314867956994369920223915555339929179626106920228267971093731377414215285186223721609527880012384166931248315319416967275916519492920642030274542001705317181380809610290032572115547443437653951864807658672997728390121180324438932929830379003340343965961729156600071711287872541253374869229043266354854350786919466632450239993358810217840640918641260567424059676897206513573324676556163741741765596175801698796441455306721826916814280836838110758460785181994949862819764582053138115196330802304831287637885966155523494754976395193607083474335552542756246799061724404568995378383374533222392748641723913640069171439279998164079935100411373216347118421720495865263786303335197813177801987103922288059656359907087458968395716030225694486397461583177239047182660492330450135814474360108294625374715138253966879971733475612520638144407543115135285373429702110376157983453017657132789720776394372852493252874855267451128241239577994933664624421147334859667635951647616237791740655406642281948311665374890012417778702990604437959079695683358023851133340298149492408065559877558154796303867534575480292381847971319162291936796464553242282828990676088798350781227282660007579451647186431757070169074757417330179331807081516596873411994745649913902582101555324874593752721021395700353058904816024682850647983297348188063842945418988183961641678770115448786642211087361229925730118533097401051989208198873092019700124160759820735200068114831968574419477980706750272138742709331440901177100541496332535008735526118544465075682760878083503955503972979223404691932881322535511914638384283311711322790444066877234221982745226443929233541863360447223169952359174733145384301692656748729494735325604476072133400415081327550192427300486065517657930010669889042780609664557726009129543606477478390536347404833140901015858016389047181635401292939722630616147456411676360971701596662837625208295659167436113448288491086828667943857355418993786749829153284389777294019198484387593829076083603901653473240487452627927528340277366145863323140244871574762512017705071812029738034989203744225066346227394800702911529456058675382817127308882605846023564421314947585697504336343493655427196444954266929162139112331312068316036570670370878389982797692271101477950116267651240830576263494097251487800407025853401148853679747699916840804648701479375843148390378154329418341623153338322782228381323015957932030395682333663042300343597772504179295288936883593309067068416442262731604003396648985234427035982560823556302140036836954303741462259130072238792967147667014476769225149137414171704463612030511269187255800532087857012415541336162980161296141098893913717109340292666887958807480626388689450634422019944459574298065731145806223457623696921569139014140565055316329821658643060664871450453380054278748299456760788069145344900204099683166406631381757863158510215970116103090412862685991716541570750729736350370344292017236442814316442649714568766451091553611599369510335507148444764430897684891952315686976867740395753057653053922658196484066681213034970496807156094851603147347235233155261988888305798831429840916390925327337704951861832948700767459218714523570726599088141854971867433679777271113202840565455087757329595482470869191502739752257343311528599689090140386329343777252699719249197365911977759519421446218409536705002542225382432921735376020080037080325770241873572107287777469247786764899656082484233897804282648045928073475304595645867317458026566446918506308559317017095430411172159719055898512269694381793489764938114161266931865471750434531501749038331130971177207279242429820085242838611283821044831589055499186128602989469813364143432966434537891350942019860176856957094819963396494666535161045857802082202195527652881946630645364237475008859504170422481728148304798523671464057729277941803481948148559780630829784486983478683014956302162356349107705527849831955421330428181426621469163039416344212041738239108592382790147417993010616235391417572943079585859265248636905395674675496157112557342519072600817163186621200914146245940991830701473715001522609342317992127774655284305770235438655528506411881226158085810613070848288666415870772791646510568367666921866527487067064801749804691666411720767730803346434617385757072685375192412730808537228257063423202309226577763697004446591643312859807516665902713539070449512530263674952511073191004396589541774532699399887590628656397396273949702283153768926078487029525283215260753008921753379511999572972799332381456420152966112893976899690349061702859336847041725995890591564063566822068168487330502878323197032723755331602595929432213637875282773862797321726014825632201254439062747809773428614945274903355005444356103489486479101401968865066903318098052019574169168908838229018190696104793944132614405911912438239733065162796006596400072647281280131013286146019200885525894908610866681715521660386031752266379184204411098182002441385545410548349208950848349632058724098346094645546061065151564294538723615047688779631807068550888319408600586959898959692302075912769432293168908548688433100894220690781362884750667282896364576519645239002356883355939833789253483258069309486880079950333530933479512958157422723786344281183647030135607643880415377149549239559630781510960105429870528248538588981409030022653639822024359999911092436029353517905436595115617941258320716002049858016610267862862457573435441189734625733360185991742502578559861039009723289857877234885153308405882299320531590449657227865939598728356740634686967857527862460022608235546755045754318303301537748955979782728154236916151057098446732304950587779314641661178641117549144133920916012992632836104104421002265133888537086913145064473770122508407150687966829181093713128970308810338490484010440722176482396149641669111374144496267458988263038592129743290166167764600609140280036212654954540158548859091958984486698445187193894899771464140481934045808954357060388774985147364787707007314218127477580714823017899123103968196031451119560701832501472219340133208471344431068826070377738186440295265764189571211918225098975642523839099070701192185480716452004478327609972874579068774649728473677201005267180407768281873929650791327473480887095776083804212785781306758411400570654554749203131652921676651271827139787557326907296261446755022711704329025199709099145704566519980886962167494591067682883624146850682697416734341309762351866225853414278612235231621733423633796174443343908647136072833994390785771115043662186942614898162517271266851541046809524950342542618456765980819939395230714717815110879463143442158233991813847394961772233298074271745576078277131102950572616370148968835176950922416831580644792581285922132966815898890846573256264108015483134320950661758835941528881254058598911130895575938559715404088481365722037303419249675963176036574582222904270677490510600992521693589280902134282812547375806420900993222860125100108229623505603393911676319136054258963305266889350212161996651258107472180259703485812934191398214960757427800325762294188527379187028904125178082645878430324073344355117205592994412641200620878761584905313731701327730151392373822328145887253229050699684064981183602674480363543468372125520908760966216077230334841561128519617621827436898361679196930485600512807842314767860712771130373058115560614647426414881890273475945475312098924159414144379032493233941285618031273288443778520684292361436076083171538384341436287038919125245430402674286781753384793267380619127436134779387529926678681232454216414768114831938359401270800572124783066835986739389651238093436604223303122841447101073447140297577241224647420219321367351812105179911671328375033287116531154873851504363572137779501200014261983660731777168679477694416807552267114225016812015541540053129622491718233286190006552330629148823471687727875168398397456935170720493588877640243166679473900480759296079026967755529759722023068434506499352853951724900686991626571242507162280898666748228430283945032562716145034219881095510508951778016270292336351128669353825555287065559781887428972315151781926478961798385101153273297544914802760876175756784754080353519547899304705676712184938535825597831573520396146484475032237474004406450844249796744028862578440232592489300189190926712082282982808230341308536726279302477504156617037723382774195999584204287815819789803787389793639739660709227155629185225823120746179315643414914988191127619736166652086546970764147329341735000997901660651653009325874749461240904766126785306419690236534885134526062766758713933002051105889624392854756114148379503921760128501724547645926612105621594440567167978527818004025606406825967295768989849835697068503191422602606460049169515403394400834489372148633571485034168071027407607054909084679051892877890600874998363794080182993240976391624788375075220970399012853435658828586254592410321128308093310740696976312054956995052604049348282155176753322450189483229923118946229114146754888002370664493919878914950946647287722999441795491292130337531273122888664282745875855791353371650657607258132978793083429907102646063521628987699136004929280169147339462559916234333727865677636550082539658006987237475652759826677959438796260555040994773215563318753263855997052402032567227188582044669922997530097050638818407237663320092621226316067617887395434218490084182606223027737443340622079643291729477063763146737429797723408063767239522547305455348847552406502923925396504984614796494163781365916116624029077045652746588428121960475294316149472375456633264286895194964384304651798370410110761253938832763586689753205450838992227991813333824422927647066087395290818375782791432590305511343494172294875577067447888591452403139489155013035657551746540447104931249022857009723365915003513546044949122845404599507689523921080813327128649697424887453668108860241276040185566159453031390970248765405004919378238855272652890870109772247921888042457259597959695232847982496868076134592556481318566292229365888280514071182443173991993245954613634429608767040305906279291601507003890133775338687760853906508362778442603154701689251093873381638693654481686068255366618922611994000665132899588696678062768456669681894789605154843606709394673374035222512250389308275821470220235992015667922500919612035502793004345751801906427798453844586303049933832264154299119990229009427156026336806376657049842639291340714087284846517313096520369876521787365193198600394491056837525137487743358300475362079785013048620265742162024843372680279557426943224145601500243443491051646864006213411093347525356879672064678764724335538684490096593414220468984891551862407119240436720588693592453939083836817864603208836973381180000997763092272961575970980022247760682406739963162676593632952370008475051337420479880639895607320228963169729967568705180064382539562594101545044605111945407908023837956130105955944066209217441400096115799656375293525636725254663202618938810281670591749939697921677959046006649800843747780196739609694379759559695992742926820817946025820184378806281678976950977611764463408548920830715591765574589333630986414343583619633621510935017411183530920114588128335998215035570785338744501730078895259165281023803320680146554648209272657917227051232423485491956625731758661468373227231042676727915832007576166671002907553919525912977189332150522308294111670109367528028579257695692607482821080155164378521491291721784369012572972473586623413123641205513072357711259519331710547311627145579854381877804931664525417962600049515369134823010390533167900427152711430130099210988273625867553466702759125066431598460115627514182648507682008522461741437132483982826557118444603148653291607844651953851799797748552589299285596123913397516299554235116436145433658901717837977733909563857808266161240379725501507046744989779994573640103594653675973053043828651102607006020276286857751303253499949915107917120230512731568772246367495422154656352151332322099374954194896067539290760663704180673967369472980458903493954464087423945857098971377637610559919579645145390672327048962537231214522641559631642849409232338080126963013300741211707704272723635276579379551445978514810954834904634247136960510798960742455874940211288052552908271391720575436369438023786662398309879811177956033951602036441201754634659425391528402079202537592371001085957131468437738125950663760373022409670320302147139474701103748367272852766373892051875460901161843898522515678464430099655627640318380096742678243668946899960123485280771064138975917724173281654232784423608399567001781765562294312221632630865880064841060462957117866415718547441736874370019039685301157898975611960771768755670943889104477509760177164517216531235354107228371314554830031407573631037917749043553691994919559862654185518056791521287852400551814609992307338074085134550323029957693642869779781529389108175710002754521059405159615153073365090934717888610298008767774526947422910664298388207287780789061964047263079385119936101427251089828656380151987048523686384178369406478422797104846581463943409844466209848634998526895308378199886163917123206284708802871639990719812170968506057910061040269604733049481881602399049217009361515850358430399942817809418136653973581572316100706610377266990381016601327714167053990222391537488626755299290110657192923362309662394398962164949075065545166096233914586696258219608668522648166316997426286359444141985600083167332616169420527947726864491785908865888113749055324875638099452969420994703338457065307458541745820524714432331216172240069402084180322365418035985142593243378089112347477644142144639488410973903381765780007488677265740497003369393196948287326620489921360593576054497915976623240777332069392102928278045595833592840660403382054598435134603226084296417126264873318334169878621305759209166496471564603374698155616156368793679511788746519175419358265293980639018090280952405090086870452490859918104325974410916311392043582534983372501231565335690895043680203834673168773122368792186072693178181304954381482483108735337669983305166713957997140736462616477025849807376684018858407674503264078704521281807493134868473321524597891321704129499477886252907899565686405373532070673537956342622629983078562353999537960308331435051318182380729672504861687553244412414944217864134099050526343216196472666593657414593550570063863447558619589174988129026403403634632341224567058655982084777053499331735090280414495750069228257088293202301169085489148068461791933725307087689312195541574227436873308665639200287344127334937411860726460129013514052747318863353512619220881981699618345533533512411800822014913669750618847539351978245395252085769848777784212639368054765130775290609532508388931701863044383979999671545990604680798873957365140647207443819018492642509577294705068893549470498624162793770883289902862503143824135152500148878282786232338756900169464190964657810872510489282988705904437658216457120372631892061035144864924961361612528716511209615430730001649962992443479557688582540638938332689589175523264908060857638580888455177568363326778596706490283227763155511474050683234434651914415417839268913078085247223856085042482922404795343945004624638410502650422935423123980408168526691763916622201158729908928303173486967338580541333196760135116992425998387018537712038783679015469054441877005277983905970323312829892835161875509826530914005347556810343232394263275651967237775655720623378953443758665601636866542211928181467307803532047334890919638141562610396798415246078609800752431002801238563652760906787075443327213896707818061383255848951350593036687455890626994826595872200352960929867541616848777995409432837998779000871532602616671599680515459312767539285198007134171770841825829757277753324086884325028146383520931738083243359250768043085785575926248865299473423316697213421058780399990654716068237038144014904885304356466073050155534189289099496290692675555889726962477203594684134779422863969801736938111729455226870875973434922710084329520524660342188753144944671639847500207096517771057362539269162766866814181964737929101289999040949645258348004854214956866051943040047001679471826375999981421747236452161069277223214470416201140258277361056260527874838931886160553322632297259522254501739572999688081424820230304663941293048043421669197254896079979291503089692910647431367933922943529280707629873414853199595561108455861049892587123272348546386018978310928652056511324052942408098265395726487916269987103477457017265075656119210885552343124691170496216966934107659160431984439572811930422724621841172322581057182036407114004382855862542131564206906375807494068004690653843972148311146592208395384084026476270773061953615579302396881518474989957194442127464305896806844038292836280418887658788684819680856213115740017510822714336920802555429984476578873825015654696516410236183556221920243697772657917132092176383737271192302042352411754862483267298943984141811073996097849258770946181897851941240744394408666618416162394025439038400698919604952467526919879240458278465256377345678927204070193734125765850880464915758832906715954648175955813459884996811680379255347684028661913684499318285600529338636923022336289526179351960188746606533487257784755522054784121158114280249012975629377828953299529831221772434520552821960226642938525316101889735572891041096659545091810092729120219748372377735237078622740927474583533782036569535654060140585830660888613111042568446057448221983384815377109211769750645583923839676672538153660399018084048751079010428147045558608363431114141279979420220788853104645039717007760484704084394660557300535213646581760794561372853132255898407695551777923305588143238311815156705864768115723217524468765085847665846329920471394419207619830282635860796500569481892066884010484070004025428007491545609276510965306205260680073473585661010779207934383855219464210865945447130283572603074772537533847159559675265351427617268682950263561974043841985188826762756642361894089756306319512379229459601013609393479425402836230111570810262500935341651441210154755916212666072657816632014195731148012315335093270693238507819697276336626583265260076487289535022409358535456820853444993292395570005784742505198572317872845395839791719998931504984339426246394484781586628300632059231520925168759850790405018874963868523372215723003645437479269215053746953239902055117448838684935729909266831132609881884779502806323021384909626073252643174651927448523774947519975530964764374871207675856453901408845529861208800302696759185189542043080059864036108456970475834218152424804334934578145421507581711796950866263735346434625593825032281985353732339288131521983022116096804501118719045340922454256928575132645859865746330340497897703386331731702306015797457030446167028839239107464788408892196954423774297132360381699582108337419224226068437572184258500174977177518117660998622667358919185761551774216356609830348054197621223589889485946037633610547058971102368157653731240069538314868638210080732228648267136393713952589218938645645412798361650887315798318356154087728493621360248445594797725825630087093192075457122723894603629244851317199677350712692877014056475184766298782791766920946015312178402525163092200102135220333888870347688959767819288088101311771979579027449495580855423640262049332384224764396740690101444399141036686247962502719362612675488586990957394762986306267076047669415550850881240067523422201879603752405450504737321898214200513358160435099929600042608001625210605903264309888406643389419129041591184649297074312688544180887332658575989602912101327400303204312408701090227807390852532910972080946751881685211069830230248955388233175855328672562932444031416549610314291232472744314539715203664121859458566171015851596442475836633341204893952075151495147585616821525335138936432028991324528238221687070895680777254850410257263095027530027811766767035875626482264406818373463796003941462113038171424425318965792463538506247343221484947361588893851848379027593106096845870999365270771502111211491991531432321832084873330164416562379508154425650491418471159673582500148617564883285523553078613786230840004528547275020165763259342408362133396761016092664754826395498919070780069821243192939161751032226821047011906387106441239021193299874244956580864915055953912989435882810723426830125526246949858457658902689402849727746444701169392311788759926983464440288319629038217657173695053871734472410019204873811231770424120342354827589481349707779169521446172659936941841230203823235170363362460899044643649204266489766156129498635434321495344979479908373944178913579444727302106061505282604698617260657853485546437452995419313285079717853446593812158748336217092027305203802091937880176746352824772646425354799468631226051905156218539945659513503974624036834286824859162025247581115937410554492930275439464185122557320594900867060843913343867811303801801012917684196088217266924174124887822113378572428548001195689578892301475194221250514221429035437617895361934204583689147391644795201753376876919027739456037847237847357484680906782855857346718922172142430300968001188577678515865370682871069402749555049245713374613773547616183446698706183221305872866133960511330512924051238827256139232059816256274425365832540791854234121271426077349569245029944971849417610028568720355118822369265684236007706574990065105344808247805324572646848716755168830833100681599600942369183694032818432124851259704343419805578295306295203606451153276198753644469659305349742191031547778947038312774708860902397833375731417209095866779716036857188609986545310532261464974566178182495840970462913865804652743401896845881370506217137629119146498703021509755074943549712285945920686009737984064798902642658018935784735755475399855019322270144485729117007220687598227371449263676579495719275106313488076691233200597161541811343558731620421051034943535444081133203591475537787423784278597685534373435664957276599066208419939911992131048587912003284508887161073268362901865776724122786221801947699407687024585979268622721797382888409435767080462768535391768777468296044684245303742240209107816289165736103180160360726100646412822342415562857410060982178336150450814209606745961446775763133787237903662470880387099763520102428907312723505942876123337466287008797934136068509373814624480403522885420308758730027846562475359522925812952147486609085286751694907414079798491612119101201712321725547579157833730409719338243602313396086529653000484412622217476195354395533502490744769856137525084252168652126853689883586929470741988838775287819824412320726047081274934528480765144219216939376971958746570161096280316724546159653399647427021961509151037444493729067480917451876980947501793502940071527936187707108268362758093559210574052171489562383651105366417342324413440859472938168815301463917784242317971034116760926896041728905504262495273696680061401284856148939865657105365389058540972135430637461050673873461172187129796581343724933607134920823609704913897911090296837884861329325891451231284309659341087318109572193320393489829006026155341529067516180779452541252123756132296371135241828492301494130372826414895810310092477978200479098959766799008138286882433043627353704846924445386592390589641892298599592155120329620527247581922555199516989772867373867698545002390632937999558959435637656843676487382181986086673725156526701097666437586294736980616996106791365597663281127681181498061983333294911759247301170787758968172888415123084219691892429911266639846406803924039405756235429515161174261081194486529694230979508089722434142948413124293681933135299012329778826672796083932092519919501397237129926677483622416026938458166752337439651176803113546401793698690663008995914529303951825024094801694376028244409129648748925745104162904107636322246494929688389952466247090298986434223341529010237591510057516789012106690436879547689919984302615722804903735953749613352710094177259980976855232331381152364842990630246087189634220728483490965229789772236831186296430880673383832851955730948513835229899140541147639567705044689709161746207071083529140974476089442670939343707948765253484107032593993426890213320478113602630031815075014178461128625877059910231630319046074870687361462401010133620769785251898123982956142057664010966592156831540142838561718418927320650157806068025263123113037143005748644571848772548201563403594558763854243487359514133503553013343265560557812777640007039552972794230414493875654484383223953947940828293807070416108574103331143353598579736583570987775937069899390029332808316251024006513491687871185721360452770154391138971377098116757921887089746586221154743113128678261925890634836618454331217714443854543741101779963724399539789378023400497518908183314974832052423428529334961529242084481254118257852631462411777817439402782900098129126621394126102107239969167107267112552130940667381448224661515524375218072240464745734406155270422398843329473154858880978961176843621370157405687554101496511137716210154674918522995921514521918568517061306385048692411215990191739857903051444438176398006806258651882303558381733981674760299729452428384298239817977493887920811323507905020048684036248538334193837758247115235326913365441616337007175839468587431384265504431554910023908403455939366067921532225619048289702590682464356992301500083520664512458474486442349014811810179049679148349405991257164739586968165836076488868336708674069664787187986807092161053035217370256465843570526210624027271057317833003027430465658347908666569621734740626827310675542607219868791099331198871215694527888174272270426185121881819731957158490592894656559463312156672207758319968767406560888830635882322736063481077764676610418715212164146900269290115360908258611508002668236473011894880140710183334144787045273605371504687108884397001466932885478847057635740014147447035375051724188579520374496015115410083544925663011707309524264637713100252345181972042836112048043095115239440580088320640456460900621706131656051531377275411947404054605155802145017362726224846735903651954420613478556907189931519296434282320160783439120234977415379377238435926524188678814242269041125196015010217959241042931571219477280262048544658291330004831091360630752085785938465282660660499449940872082931409873791409264933932520968229873888012490007093633329580084424439078475724558687446397737628682863521170322665555538375062788359872956111556357803846972684528776347453071567034279239665096047108063961625121607396378035424854890076967427085515107162245103731234264120914755688605463999831581654797953941516402279208324640679187305510100669351907053320683880798735081382296461899636019107742471918301554061921913359045364945864123374925720896525952811005499415603247989102512286418099539636845548525235121439785523812627269975672707334737510332307763374762026848287176082519022101776838073092463357345138241312187872495309293504553552775740899670347477605024407784937322760840805093688331082139968800990595260909251539288060085681114262442203174207489522228055550535260343935400867357863738424664470348196946974718357484977528172142728513929462231163885142530192174347067267186534509633846336173455957313730172915328990863609919302268070965443295395340501767676838491127768113297584488299835397566721303236136140886722990526898429721198764807878060482197396579724058830197083238751934071930271348404272577818406926306758914708695870174389582518122041389146176119928342512802050099050384281200003317488591569845230396981853518395456182783809318064843903479172337343065684760962474594773359199290751998898153502485649602518323561140637333735794594219609716663199002809348541752920576181745608506414221201560389502326431036646402008642694388170341401359607047682993606876564731354005461460691571119290877125642171123783787933972741614333698862629835969360569022168776391423147595893523990258878688928651403218286617445415804275732799186279614247811951089958233256931944786131304380232909773346332601258282943730796499769136288036883768720646671311282718521483930092090282735333470939567223089575540533811059502345088700748378680673559283749980175097326976314442598084297649163960358109930097186995092857814073059294731159953136634009395538163357673312297117917656362343645654639660950119902924151102442998656309160422828491078785644387950997432677112363839351129925922432013328880314361138197673934085139594004136024911769944137216261747877487290173485954018133068355413756351467822711228726516598877762998925458176740542968074623597737635543316718874210124628684250280419491644106251135723960710403575770016131532092697191975387837648703577499363192437673418449891563650917483096060170732259579228548044835690803165576458703712522613559070511334685667724035586611186300991040945171197940824564410388397132717378553834521337515556190456190340910271251387760195684454596548436512336338495411608022714620881266303379611211197922399425001044327112251999996476251030902740531358437338449767651752672315307211870629012203231661010491217139931865600881262317108412547768421446096848588796422476114768230991212723961955785447360443727595994457412001959184840832638921243967249775694381454094750526706297250511733275903476288627187206494841356307067993603745876619732475413044703992890811360148171553635506772220426851268242053110075994800116115955111438698090326022998539284607510172374228140108501918276936632754425826241198752202345874568485110980688756518859107036811838074104982873916605382228956609664239736630680748971647115272248857873535873223880602062678499991582106270810663143304716659308418208305958448879902345446326228898464380503489535608463674688481120287157602765755028574552698997672272149179463807659596514229697775112542014961566640715926252191821491827034744547768735272288972654417838805313329713261527858721851905455037672838307973576237584823691409571145821388690435348039713239099572417349771562445654012261962673814581796080297269635201234286875795150905849889109342148064306409570167044335156928900891296033021291580144991848183841105405551117638903076398308416667335784663954277911061047285930223909975785333311280905940208412861879814147665975756134341960323962470976175255303415954179747660793332479834059333572451088939977481561039460209299056452186623664062932459566368348267446476282215053799844222599413633676462267159924599194256743681056041581778591423058667404928691785633264646397346408955004506378800314962555511700818148965504717532081200942034345972817580859844663463271171361065780082635576020037963955106598955765207212967039658499419906073089299727783434417300384000435500014223521596005819441169921887131121370996013404736071914901518332563620138297220254371248439438486721234569010761962263768938570225002172626369990019556889588079770479571599896820137709101451150651457056898575949011583332132297416542767260528466125338880223235496334855274772658956532846294962504796396232992947264852220980441855871592001353473146808321929022244278641712465919285800288373118628599857625005899681453217713106711088534645731958079076119189654268851522774646677423600823755098192703862578495753074828681256922838871011828953553830951806089798786603660755015137105080913912579392430075408373316304109746809154789880197515003973988582170821631775561424522241735154037812377118312778371701316813635778717109306347134693014712350385252485531542232095661645885177411708525109564551957345496164004161582071423653908768525047575510715419035095698804401450394692232168625005978658520724513564599530316987076722599871503885610840301073450976817712570617030617693162343187790958746045243795305774068643768801634568754500358733815917728753762116072084576268483759397875990487588890907081646494894782520497738613810553432350468731707370169097907252502927171633409178749925060634267979101433229173446446725780427778002789824679859259260944765698073516716797214476117237033630918759128418398358136915098678450841751063835937701103602635345270072649117824029867475564415077277409205599373226643296380861571438514736087107637782034954048253221507218686440064775610759975233968194045100096743851311674293800699341071544930460134682186912128968326256464943240341159603419117756957979422610936455646529175211066204662295231983194625045179024875145548177973363401780285424881716911841903789658600816420681721438155684077215717295126449327221157224474194406913858052735780984872496225523830114127165001703043966998125164951000534210034339114328687269169084387169190363163571335183923366768965625033111094973420725829568626668051411504875581670725397474826340028535201028529792788336345007607979828918278264103533045752062475144058493649231174204556868269755278464730668087171527836981490103181822026765065737866897830105902728836102842435129013884828301649105726007647914479212307150448700952076636728288517517635542761002007023642991864345956699488525993968663794347575238168624051114700699387266338109346114857672512672776504882016760026702484013890580483917927640248194540271059259016710725581160623224281441738453305892727966896255073888028017309402990863432770196105000050649918121976890274541603806891204731985373607823103949721324405804584387309470194347932884840491392675084180944739188447232123510998691352122153936720963770283035803908530311371035293430093367684422772542442417372741672831292203016843151055776972384324234035517170191736256313544754875836032258505922614772769800850842564865552608868808159948589654272328088973577396292082092170975090556418063845756099667125977141431756407378451932663355027552753936731438353431869759421700989891098655127420183574539072421708140000843622996619243307175988529624514870126633313334489080288126952466688567274379757361948547818211655459222624309290233736363090773963103097048395592168438090146139887721839548351486279725662137726334359311636729806905848085234792177979739580327816503815903588656086260644824993197583189339300547441790212561948351188415338235242202837399357810566340901050654661003711415482930775541512686180503865618738654075539411779217415749596959366782418302781154214014110110569122462349081596399711344472499474496105926186882329971633763379291930981466610376310879327036817072341776546609841889871859846787732022299602357445560619770674107948069705339445679555575007914133671433699313575083342142333417448982343295063975669064528909497064301046984195960143676034886878106741604321175515799514790897825305708432254193202174774232338802783701469226440150583028534329411421157956860327032445556031618469206731378270758716398123484120794660505036609911104203615862316202918188526386811047328715657880359996865455648376622738719597945791455969508707128616433891663201923864978872994830602358862192331529335363072243865818212366746891888127506224021015609650150780014592026619660116854723066762595832063499858181933204594639736976379851200932761417590335753368768577641128859151367255262788151117865777015286427970526418110183602325430881461141418130042369946409845956515618584697114105391898128578682384114925131301107112848091356457828811074733842878041649065655618635207064588076293384494224949082838451635707356488833857639692290589216453402969905804364346729053005983137729560790804651099268748987740264682122296078455069376529857028903830117085789938400885229265009945055447211354078644668089591909896761306007648259345132377889172312273560885766992131030345146134440389613700044475457884616483018690645807115247074469608215569998810424009025959011056082800569137902751150744158308321856998316290897160878993614082641710725535093087632804570293402899424144319281530334722020064811431072200657717784517011372381133508225840530954851305048172031115481936156745930264016211739753776139675819735701064126775396072007712093334935447026531975080404762100583744090958383526759433102365644769723127234631222168283975976915748923901283238215579885627767637600928431890758410610632492979393840596880390579254000793917134606472730431756828291143360315370858212944173104374640661111704042616144723456896229754594098554131621620463863566287024513063656670312071565202002694583333898848728957969262358994963106901825550709629607874750453069717474674316680062649350372474885985622446564625784656251170068262833482689845794079757441715719611141408176876642770460371923559072947891807906112674943731937550467380009654132692204717359651051679287672885520307136802763527547888410815272980100600668895781482961234286284326074361067440495490841501506253035583128005305135640037488386973402794122321555109381723127855373346794292984888211655922698217694710075263329117093080239832921389764226142531436423239920051945623542979799636952044063900601283814387031676348294558300026264350952023970205696851034685122435719714374383254302228720913947677125072592467710640295035453608848542067376343447975948554820312239550791411707306477858103008034742910579338413558062096904469573755584333819008993289636211805585444673375131440327925241184968042097968715541127059667904884083239620019666405314090470345246127649409791024200320363072454589354186304944034084255259985032746637337676500576335308969989162259913864037317654467332048545956425817085156471094851107200026645668998317331537911432245698236499541102088077911456843814749423185099587493627010718697900761307366657754939250526092636890412907179541324302357602445309066803272194575113397923878398454872148440220995351317084686978467733317830817245406108256161357860508865102005529739553631441331160486317233163596090592773670430271287068840057099216143299206854085301374307023510105172769649628612353640925035950341992509000766719780339283940762197700313564972570122473540855511599367919263698950379503526216164967035406603162672920109766865836256079968707709494657483367208923421562117718902375874149432957254694597706234404191836909885354607360622922047833609622909158113636316050979168190326367885924087445378576934539753513385772210946913003769616067281683699397984536565319758990761045911014268153479190983890006704904636170025762692932743443062169106894936464885772660146029164764919983978166638053456680755934711256265966940809375930544856812670582445494934853060499946081452431862708475484021855561082036680011702893415244022010493762654521370182814447382827149550000806013472441489769385239877532448267099796025742208791351215074256654866750056650647248303111454911777502880418781662370773756623745911077053769175451269161462615423506686542366306349596610401718855522825243404020481384281184274943771378367961242197508385269041850652461024204937493664489059495106075664841103792252540148557358122713963065596695163006780916363290258110366835460600341581858042614677623279380266839731359682142709114296115758002038866503944224674458603706486008009776968515522581501504876683988714586255397133550197394718852928143893796633943790797934041700009493867631100811852847488346466518673883060009543201596923494323925159790543897349713885390139349700098293818982080174804171315132776507040433090435104274426520236511513973845449125478385410677551713183042750735431552005617488985398011271098302654154543398228616809712190661357273031314233941296130641160517093871697242038247157648584781124598277355092385236433488217108903247253051824286249653359495097320022752900676527478479362305034398626161452965306503377618898197916594692144705089021929088091363146525359689004884439639018704348119865101734538384588270682662452813947874436629725387298241679710778927372362911712717215664152812518067734711227375392597524360503399898895806556616680740073314413760900092235831917201718130163357234880056285952525593666959383487631605498532365136000760249768503013130515126642687560398426136654795763122264319728982672305455354186818445888025492815506765720882799349627902742235246375710816848901137990462891110166904889390244148621556659559529427410848189610014905478623194802651085593352537993510419982794026271380460008414058736901518758781803123818627308368227508410672402426824305725812036322351958512358925365145357408803472477852533503729398334884793516296344059553654215999293818270263076107804847199593335159618441488537233175161653881052043922422605065387199575872409309682342813172269926907023211257844148051410463863350941950269973055492203641660811768943731754348058805121816685754683858435657807082440920292151773731785879036652810252006502377923551659795766972817405034875025595098929411377979189235862333829183735669955156712514980738432912987525091960705136593633843291506273501884141036970414716022403955154370906848356742258639172514587600702167033011952306024339711554904302986964876643877038734114652074929044563286863363801080813602660248227024379219527519522450489354438937626439867147748981631057620772934954161267372155762905989635200880784998020574853915664460845296784496639639029310661718205760348382556342299973229915317526098974037538464206805874204708100233131997457198578771291443804704056944712330647758531867191169197084747405268097505715472441159747816790822247134320020823659645098802037121981504508677114503786867415202188473377721803525721436205654108866246461899566098002556507174078786301721899793933922852766155957562250829465607721035324495754261328769260007461647442915466094154441991039452113403584778710050908116879394274112682234808733266903233708471736274074383781297788191988809894148959914526876982768029457343801213116414727305707906944396780707568696457494684280287252807826503181368017763798919273716670411954592405002513326860669226070483317145979379932544394574950045726436093504673578102628475656757803502177291677565465024365810186138233422510723487914839249712133707982348346591392492727288387123008782053638430300389953843806363762585738606730026131783419347383345038605157770972274613540894103078144989409614176020646822081780341898434294558641536152663300188403795838702053078584340916624470198121149888853636790180521689468730589402815626838940078434622845741174937440114700726243140920341722588565083453631686451128046738137166982519073281222096913309241097131604967743447192873566172250163961086665462226071528044194011776334413777699521483014101878333595763549011163151649146575979566257345111980691589827908138536293977068535760682745278916477120502209224020262566922299113987094288905364504952288916544176949556639286667650746145076640737006388242785796069011272442431029945138561760669265989529654220342938629836027595987270227354254814712031299214203140386280329426901176619953163274606550404202278697399542484723197663139763262961163454895539511248346925455994161195736075100733313945728193765509495463292495155548835931412858005495990704996136138122460724875421437694497854082296474281599420286175940376540805796082889081193028404307753611897708211214602488697834434956383763384222506089393295716870205105777236233923028909206524281367416919967084952810489618290029335921953100135895156734485694943115102533081868622539331372482129207379983418120555984862820351729545463341165820807649343655159905023416178314075691044570700590834816059598091514856026507285302490262524209969650186514184094933833710231713282462092596540232309042944159352128843349595028401762597345816495744330129057595102228139532929465936112311387143722947535432213507476566289771288956426944058239020423356379288275031149679521863638849793800107595138011836167860093866065355620032623074782451814941545583794877857137176065750515458085407371334471566505224169933086599945276479636181074614795218294732470532616945278182646820955951388367572141387383563525734950913063436702746911428469944242146358260859950628465435616665363714992097541161122279386958771049790481299165092868667250516306983989643899465584564320919148682170745256555152591903027947970277764739165835990209347089739167120989179609198119113228196100480913047596501280789900867815149031847666034873197651758469814291872370861888652268747134002957550270287798605597845686083644152201052398219685440535420095375605880324463995706292177134256287964293448661271318919238189592026132299930618460901811490788226163253047273206192302053585176451019501977352028891471625150092968082235334267799112783305541062082596483820100023534688172897566768600635007546488621649225797368757332281875976551710158836602714548835093143371595854944419334899113694374974852908740803070102868418813254531568282771656020026268243236905749354431116992191886911657590701220290752875633523239630526007064668780834689783192743933752640341872305967352711528335953938657369856380962910434889992233281883096243204678457704421334413384561773911304587893499322388321281029490357741145721607814407351696883620292812980140750042587749288036117932515429117746690895424699846666208587198855661022032222273595763453464778374674403819422375294486294722594897737926663722626659324819741459613073863596888467586895012383365641302381451587270578284049391224367677675611754714008606094515082965688766008727831620811306647252296307496759608224493026152548934787951715769810843301818081046243213544900523173440089924326522594462803344825558544782614753734604160802087766631390804582437887932163740987388619473204776976576751711937040994058876071938878251818254886225691967688556837982818676803202042977299161092670737763382762877335299311117139661858534800613916068579038322436680979305036044164312764865190597466783818174345689439865009600533788973275462154863433338589663589473789895856522462807907527959739194137209981143232622539526516332835280462566020665141627929623409879567889209887358844843855312755710647574844243131513955779402395580440385271917357050562639488421712186123999811960581524075455421366116491060923855050389164335619083303425674206440639469882330779209846626623040783628039824139307009042399380070218463073259795550706184942849534816743360470694341251495834816346541335620378059408555460040126890454658286724096925356461054928560225076300766908319551434811275712297527543550066544081167035781980984932757154594596982656498892281241897386895919571276510242456492452355606409819101193222727150469706492134672933854941993415511674585289724325691778339953245434999193760204525101437484112596962941040973542538507578883705355297072738953376887584910087582547594881603711784232357490966039996787465169129968532361613162798980476349827685857707005708134749475354222475154580364099861096281169267701603773969970635425377651390621220903925066591618371237770940941778989944913373662167907464512970955142656357920199725076802838343317070280152906415272722894900280714708130963908102935386298067863254665522920410257572843084979241273649933632979168112892908002222400519628443174189384803762082303656340135470140488035753862598510460612640567123509991818892757825936250700197475453363118312341778120394283432008220120688002900677146664410806374285236162986706465546305786245640025087767898706277815700784962643804377516324278680623139533378296115084470497270373152901372808042305464786530877978032912266031676252213983221564708346307325406582453163567347342660559894031082231125766560124673866316449374718412330901815045210460793821557896334063547350106034343446967135249502373699389394412139629647283337769873147250882406631663932436369309345622976424386445985915781119218312782503469663610688711172922706831746086841234965287332988411375635061430487115403170127008960396465770410510700091027532475164093026011293206514648774767452396142906270616302045117585432327455864937954932447050204957539774091397950473299764635701270334806613290721838185501581506866040734563850496149132943675663558824309880680839160376054657632851499085449834820219365021494443393787703984182368460426967386729093247363252262026309693430239936376707413271771962988038587977824968716195147126264147461105882403074146865700371343736787878155735908646564594425025314121787112698471583721721857648338929536674474202454864017203106020797006952986459799220035616015786811688596123616822997713014790069266760759042751802821870051310442569212732043931890900855517582293420174363218388354989938806208959848286755844087450030747165132550722291462698103891335158028849064265853166565377662175212358046661922466511374434197578209406039459882602827694574669947026983483024147448408378540049892636416601184888242771832119962996394233567647562533411031709789518507669266598695523803000434473519612334795518447995055386766816437039552987044745061084975337455353124806385281293119159420271849887340047353769373710914467674004274624670899402909769345166607424886601727278972398451650712145597332750183336474522648931612736947574239682246615832560766824502987348130365753332174388410039914570596142134200406993304643803695092233116556947778240778869562721818727752607192791544276857066998730105080588447923944503895381592610808663593393755857099919760334966191057509365606807408877388661605424793249998222017471911299430020069398162249053769719310657172667798703531192340644588048162377643833001210779484150754184246250153164962456804768352291472808025751595328496815700169113771069308596292051879158834302982627098227793010639527865599411266531334279134791265425774819912502262246704723924245692530238702432935569404719786539559073121386234677336176872423230479514244659483012627003843815238805548948794988881679321671854012632218467271342811674523360207465268328780049088857552259220957684054437618052322246914547919451325891197006115018574440171260597060154172947103331960362666302968001489586741763562248231642850246904291774382567053887529774124504224765190468125045883181000662537355825125711732779361494599841987736928256388261147725078983286763086769580728570219686356463527554935171158037537931992018886819432659573631463442213130911071177223371847571265512288734707629068515090267474030638442090585533187030950761345945497755676199364161683779470103647327537307019020935280402108080388907061134534920100135618412571109621741881232127018312393249839960487764359288441950997416378911389954763017583034398914024836737032179067646859500712739323013375564133541769072887067678724658422230494938954058969796583863800335917131633218864229800173639085127772076212244477066099086087274830243291304603725674138208005931432310143068207570798007615423890195942919559088246824400512579674353265135850581501086602389794003632964757214824365879332576764190294031558937481175653333376183190299751388635105744063090098844515251866158252653555770109299647943317611392313097230140488261188702822225281419878626322932057109062698770846041090809497282316629669087355161850593234704960928258615053739317602889351613792092928803115498965615207501934057502707400390035160650334589373264416666690281409723251271992130811385013617719945320334385881944803277280411298628722818327833949756337886186700998260797428547790986395226437776505341279693269795184751166968436741656790651495750745987231788302789161024294293486977882197429165490346285258378081474205457100918987963030966738901545989092266515549220707624863391419822442883361551492770376224559687361620415234543161071069041481017284809133539223862716469847118158648010449432295505120194041823822549300562641608363840669422395587356251709801428147750030114909076158800738574286896624875403076304461620594613989635023237834316592884817731571487717950422119448819469167183823567003886022598659415924395701977995689470718268947713571205436905800936029100924899416497779472249719433757131254221778285164947229816386892772779202888289628999004246546108529318183645983998359778279990377555574063859011690195958331464522919577524610335938123121885780373258530500003808371558179898231763860475351228225748616878436380261922727767123237688351665505948932089975391000748925329098198753044978616412956350137963633157012893014694000239279258846607820285542653766606497583672615717364284691612836165982163974970139301585969879974141482226127565672005415569800952356076957877642984354916127263211726197148210219818790229935405353363200466082196476080508924329456552220227913318345022261434764202295713314546430375301547577121722335083891232047294868495603422968866361226332536933816728283683070913560825522981564821096806542487161149911603832308121068625271766415214958391982975347572568801921390045920516452580472978876172610323952569174145344967154629225935072308111321329355421210316178576189381958991497170948906827170213250927828058985112479710733327497521064626359042744295796079536408775819151488697553968131045616306412360558374096120450829320226977369399924518201010510230237870363055225034610294195259060147313182645398441346329662067270546523922306974721271696264499263035939867354325417961860578566866656320563482018427357809333889990284046568662548445889681619018284976281655732454124663552660829308761268914999101380311720378765474746052850902897580449602399891129146719298705190174877719361825079470671229838088427111474884056841652012006821766995399538397545843344112421643691322271938899439360057336033109028271658032739425168415402630039426598230843522142211511820178191445291627778242124753026559723649508845216661408940763429480339275301631083479292719424136194738527386183703568533645284826227519173599104009454755983855005023911603536792329909163039685830695926630082589463767247774803287578582540726962356232687141417945496809129142296717648190982177702046638015204175620941600986161324796888928153702618458136190527468123648750381671820094926495074934274757113659701927876085760840865105688392561998660494369043751008185060586673747847199585199001784202779730596018045493488710141223399003297706872541970303088603026547607224435144644257616856575743285242712431839298278394754242671044675570943355180718639447243496640213304649357616787355901899064314179763760957769807810780133801021923403721707091563378832280814920698489615020713630684325795660975966560274908389508198114859475104927904126115518186136204177814922478482681765629255225889653753693075886857906951082863765064650008686888815339113237077932743246294615673675210689142602997633374596184129168813846850497585901386620197238826754500834530172364838589065602958985830486518601471570495733354023818797048067707197951589024750702868710585698936624516608579466879759837189244787106779837852623766769357103865879067947337575659473740923483165388792311626719011933093961817650428112835635264757853881971083856557141005058933178077452155914195764904288366468416958603288838237802057179178278992030506066021147903396151307790170895470636257717991803538294578239237067353171587119430760707528503713944833771564255569357530515161436747009551212325944165963857504205760905324472016742548606596922937912911776045880241321140231209659999028410112526048968791401443342737353700325351476192478875043469717214687475655533917475743560546474623317530851697141358214733571720219457457823335568575207501122022768326028955353193545839976652806307018189666975202123130177113825223110269699689570813031618364424134105995982318921352482781625707672866958412828164308475736136015232124199693411010886720435251937115885901460230441813474131010505218342036932389173983131773773151301100166534084418288759488453423654440527492555951943770239818989905547670579126046088151267992379811738946404996720802042763267315255956658978141143013650667776617903031596697050974731382713375900974660322341513139142591459360145581847940861647710722101235850373283975922352101772683713867818358647202187547691778006580400210723659841764977778639642000092035511060359747119910863179676570635275755262948221345894503912631216644859916699347714479700410043192856874243441155520925385241786926256446417502254537427260677099397617170894487072272857512306746025885545616427653057769045321345697048993397794115551107495318830759974953126881714544611201711232915702343651740713808908729693459147233615400325041621119829608510352580570399397146250007390115980999438558980975501172368520307159908473008198350761774712058825348383574016618523598252386923201566293060307866715254512633323341012872452190655994298520132594916103053583313334047293943490932079372123501099147796970046310086262592408420775627111646704262448129312545241980327737757414872433625421501436556217826410048797511033205991182012866304771824953275131457247608839327105076993939717098214782381852520157106204540142032107755583774742218043724229187225532217998539781280039770882139240999676075596434035041227726821087589200207690583913746348204016539210297427382004052564085945652026235014514602632050326645840036607406024633583519258445097520075648755167289445829817444017731821112463085151884163360081078519705298933257644232797483696252313582236880094661529457570698167622929377566352737240795103155933789626266451143679512613556059749043305189920229112150431374138816449083684667671902324871980713430106278655460670395031763747131540890341698640995390732049296709359876903068908966287377069913961043141011950515548949121879100864202277456202743838858263122982967038195962365351005645665225728965112117504155366544458971749970110258802551376306817011139884600388147252150979393685242059918666320281784514777942376241417313039936460386534116213472889415765112590429053446592350976955152001835063201192535758907739720010532579353918928819294924819277000194616310120663097479684810748033747200393663303479364798941546417848048139521457217074982572572790811030614539749488187673718205901452402211739198944260604573506888696391004837094908570169498229484364014923738706547999304638478034138310865232733980456335197560636416700191041577958348399354558028160204682942180750003764944016764136463506539897297738501734275758758118933759873794222577297216857757785133268792513617563739325461692553617245178227673396260008598889975930306018685753867098575081409801096139442675587340610631135872000690296825979958616147431716957914173232732839415758947860218938338092930509054443791376087616145363912760553542423565513942421549525371312090004974778536297691007850920905334776834219874748818495142448795752265303524317145078792939990076641085069743394978161547711824200775412083203716386727077318399104942866528160958221892964593764588220646599167227810470980233509784597281695866703139334366656042117419309516841902131013807186504898129110572877008805675150017255038034473948971774222575495712171035254958202598069173997490625712081869283516506825660012800217485646292551873243985080560991159465106588311680392613785173746071685756122999001782881519076882654325409281616800508290489297139684288702639335574738895536859573528705185291467219374130097478966572634240576292211654732565919634521024212830105761543552522312787203329060611859083259204098644699100541458889066154059319235737763098860769541815864487393463400132454946727285553019983389741677742519352662010762251077096107671367828848257572189471113679389202665577510106380134878939123475954423779745589600477851522925658848566927407760144076410456393890505203442415510178053574102015970604150342777337337609940092147602078562973495366389330831391829282110027881991451377958463452991046200166806734237776811391020074046076781347073882677394916915199425719228505625452496688225710020014714393573680711814204029813674113801519267593365757192960397096476517137040711093787221973059492657371617809289131984843118340830328672921998720963518234059371035974699014216909339638512168846984830314215072804574753545339648503803722257488101428571104346351610366110263958410248370772836884351303393926212484951364302176539114632096496393993626084015593713185964326168072995525562284114374010269217447214474869678724025009962384015531605686749735991038611299613335490784600026017562466834914594589643545147394354640517665521213651853850369714480140241506663723996926856429914003910735959287479431897095396263875755111449154843023538113184396925479531141803791093648829229930244147438562587413895235399612388939387008385417225430880809948745692234813940031220103855671977778843708863195230362107575895634155437711522323185892981805266774685102984926869887621869514651430676383817300138856049496804743141799611650815250198716701722258332553550910838105176140472806619077726965003933763399576555102045739680616845405577031681674552041304653386191388148223738582474039268506447754389210597500214689674099775911129643692476826485495886084896868189110889964380210131817746293996983056579399534319683730025523605866573484215469413587429825695674635082394566277079281750737017875302794173926981542591296342143268729100214792280139655273607722003362657375779786555408801866688541433729676413842540477668966626083113034066146553275389128080984464769777466586204546214324719681548185364075307653302424147906925581087151785166904665470337528619354765352274884352308622781790181538948231024429345437849920398022874530893387110577130735494072931852401115838490392495756908464036618513648529176535953609643653897329703583369483959691632565901737395203734556535122308917370113321741308045177427597760000263961156086414226985923903629421525749481071012897954550216549626777091995518275594322223258288432805777196316496360746541524137784911124081827066187369547911795641893555111937270734899877615250458220048033606942539633828121783851009847167745096969921510648785004940837247965831461561848503497040080105715903550748310522699469296306964590286807941344050383783984528198748753429932453047141546085087265878295871957578479653835410094699470113799002579270833669917193089875188389988688671231192320857757223196077331777946228349395509020153866852969237027642188534034939845434616312402422383983195365924279885759275971228049428241969680947707886028904799331356514244436400557177948448362267358907967271935955893288494431161382899068053586798460005916404336856834200890274303618103071947564545739445840940968328214206813019266597489781105151149920227904647145960430448467324731048432174702835407407756768779026668421800595111802090988767581559643803508982992555260735476050463012628956003332838336317554401219304519140638937553524401858987719656261884866608837526975382595401970375604034899056003121215880062182240332271071878776035020219605298418614359940272647196927146262226238149955725493139314221733833324121518029650818907385768172740164333208793525287266700488766517175717396080063414253787170642336324324716988475588542407104778966283079931794966496761196439816400893371497842658367055870875439223607919381196858559292402756004785142633709613707031826553771378672935879105822628623142467239440533745192699160663721687706311874277778641723395575544921068952661038542604095339329151758493218840321453824433471501382041244960962312044044105843930283231821536434362367042448228955806054435778793745582184239201285777350759937808272763313285045511083004870103994192177997679155635367325008097925580263428174579716714606653987013381741913502458358308670985886881612501108420206823458345087965314762259428117998455199585716743206600325021812680079626676855653044714453322850954193742590929273296072173998814485076493251273297797262406270222505783254298034330031051928936376852086148820050764136890601750614912015723057584138182341443050772217344703289692719128929456662887460262642683291842036361450605250003060452545612877299808786302494561273285346282639491499051524884450255953312504586432433802403853835011358642781726148921745908419302707230404307720797359256119899089770061448941762376349561916598524097475276326105237817075080332654320856519281797902839298936624772516084331234511348472082912000358578111830712941489906092436391750404750135689020767521149409202390906279033923836294874754871025891085011597515338131428396761515070891875698341198827947043602555339855630475382401124569931650050534469814453390872454108944326682542927081990056437746646723412378167289965111155341426788931615522911401901175309823342739192149080045136124011643532189265123719182966284713962597110373605854703331029042866353225530748930183780139902291156773436925754536679094391266358072219233695862117860375171056849294049255530897903187384740615603499163437239126029258442789498276705764668213540003656038835391884964007172887757437021050166405188804295194179674066081415775128172121435638362318410068730557726320138905837879193064716482851268146889911526727453515613900442616490789091743451412121373869161319242607158657569527144852046924206153245247119007350368336858087826713030578049139885382649884603723790876472734301380323842063623515033367026200850251442448226173239724918467816235244238805726500187045627767308043827580528138116700759425668582837667508860728478722494904561302226262522790158357552788870093645565943461501280079867979363840985126200717996602676435287129339845863926954676954298216079649085137069862198108589344236694378358465657054099061389527793270283942811281254729423184116808859303400996816500080762498922570147915443908257334148967783148881244322588350881716324927005544788731494734343480211588380000920269222698929544610752211638800113913992825621040124682332665913104566483581010700231058828544635507056910846023710769129528096024184764869037475783347096801462754383526439810179564957297378177484950724963945021045965356428211390521022392874014253133216212284534491576421757076389747477618310542850222437433993152360345200411861227612192497095740964738268726519083929662104633578412516583881956283010162446148512087091713949132821253005169340688392969452480300642405921082533738294940883435668526205119935898572145025784470030813962122219239758266667234600535991285536939152107268668978595037269560006384488386913648821296422713038032198716333366829018015274180611851904451717593669366920913569299288884404209853594486918931475313509215058882936335272458650718599311583395816632387114808607602542086604364767663159186140456306741327430619513229682897191854409147678380605894953271818315904445153928037293311963541183348150729999574535818903077007295097352364693139699429756514537109967038402049837572366696576779998416934201448368843347797034871063046037916085983189169606349750415200370187248301803354203806360960939302428203157178124395808745317011984043863387405046059798685406129037964919747974422621082293401700578079306442678634489174072418785303153871239717179624874976597645604850396277927240484657934939535639881038991833679322651992733268843273308684096570170295276018761380432153129881840699843490159603065076842848563513779690141170411928667114810704456071177309699208490904625540817158570066761739761646368164292289138989803811087442385271216407470587810752467704129048032532509475122126435628468618696531127954597650025340884489129496680565275516725750740676851166536588634986368338081284059084279223112528061278122566722721857745484244390264617917996159881726504072815087573853318539033507061447792256197753515959999182828544817596025992019315785251392735215773235665108460882482495412205137047160304971782025969618359568146318554771822762547461965321207131847180351703545825066586390814560730442114675537748571104586034393342461333409895062520045281836759159753414442070638358515227768701753389610148373501913115033797331336067746454926669181475458188474427954164805109427615531803588174825074896794656737700109895248006563370642961299791795796015396016443022394233247707782174344191055876291808367195874388773072733771034043798774421324136024252065675947032865005058286188279336050017222163482111383571824911208886283847974878271129686541718614320682719927014838514941963734148512008072857999501868196935471942348824024256139380069398617938322999435582890646249177956390272029776144118264132596491659027929542457172679883112785070596581773185133682358128843725611062896905115774194105440307031870375430730085371446234785000971623244009141258599763460946651834772448295075152786061084807179793811814710510612342712023869422942535926516846832096602860791164577597009007030957893414210277705386280483371138282577507017836654720098061098285281996904484000085659242578029629209410792678553801999442169017809817367589937522779155104533432851666711636823810662942079652801838081378473715402398684307053885498746190317625524986808241057325530869292372890772975253823158061741259150706941344890623336354181447585898467650304067638253227188718007961191463910890196217920334658629660220420057119178334130323574070469099586462427671922221766346947069143990324119330265400477603026030483839342687063296687696670457112362389258987554684382207588845053431408585758196436255785820856460391908062240421679206747468433090917172388115161287232081464613705470244714935673176620263276539557579633992751391332599760354223649460765476834296361066640449781046899269488914922773464458746156075932216457488885046814112964521378677245032563890661768724283798631275230852777218191495174122040001633874518393877892435132084387952015614278987165177069234495776777788524990744843671401395608119921358661489058150199405137998697695366581514359756763278779593074049031895478780538304258841161743272132441593104019094137437969503470376120953047892217910284220196018932054130486570694140882187417502802440425253119940288607171724884285005025124415114784985875965461453126216715751268296397920710677045726659423183947796029554031406296202362467895892177880697885744731145907285005932644087786101702246990048236990872080722679968922597510451370564262793389997995270102975649655560255529236489773542995555250564066248253856920377422911553273842146481577479361680818146059161964300794775086734727168281844350555048059623146070990815034069728089216948857332623225674147369021430413858744647126225859974945298054597071417486510595345179109899713817300087317640367431519696372503224171282594528615975013340867170100948182789178088045033692120805273916849005437395994789101718618692112331878891268893549516600566860441327310998663984248196510588630043687575657031703109047139511437862011433556219972549814053643561096101347423684804727960566657731860294474975174954164973129655299369697328793892686607766557366909639390535034008259140366443248543341491988446418560040589751718667974145066704513797558642127254271778679520892153061231787142032574852869956476246690194910876958964986084603844763488363292988766279134957894177090398675765745966980195886414157719177752755030273353533924505931840396897563490212062273106801095270819476816792491467320888314288839096162803216896801297569893481102107433447693526361106925370532606455568059814915247076263648629407734404859380617376517033740503832492576105232961830637414923859085730032246111912838300580571775540731857430043833674242926162110466027390037858448779616839120677179864954779867138744962355449808623275154801202946113398926755822739541314263397197883422414502055406595026355798723231956108860244159703496753986769261468591986655854291457179419565408645953635536948209905513640729793168590020303849374124579724136118858968945820418737483628983970814437335424878137116111431503895708092975981592602119844472237244343684406311967954870560592030847631100215959306645455039222840998416122807773141489422275004757446423059904060180584444521453467694468480942377697174067393746820485695604904604609322823541358774499643034422752343668249497449459069590492165906814127657584617055814189241480839268177554521469101299478635963561568079096706490457707726085078072249199485327909481268805683615982127159197374175922260210660278368958836771542171941016910465510957921255660682456087297460662667065090850706387699152694543667976845017418787260812974240320125060248637358983713620095811269084629443565922385118382804322556177104933538233499180482026437560271671926306019645899103009897570235530217926689621484902704950094581684962321160700226169926533615874352928713834358953702580018864941669197011545528243279367014767332780405215421198238423154396372627777835822946864421860095893435130616110768221060740015906558346513473384790711262780405061272062008352922099147778388036945187393881033451368349957856958583760985410271841138913005737873918966476715714813055145147761694645473343370971659280310796356448813143531585179035813317736647732770599592211981147474848425792433291132283563668063154132606440952231199987851474127832200071143771313905924444285200716674066717437034604331319400218669056852433006178083968037016914462510486968219461698548241470552329824252980628005042257662418610233072212004003419757086683010994379946022143755403399817285665671548383290159896524121071172398261168584484906416553119653755463822356009358446461491105939919642514244940266009198955762204648167764778223077491093060558202726532256123473682909532281790314295891668250732998658553850769209735244123928235746751569642793581884632296846299963300277574876985366662877192401039916825760904893802611299603783067143377517713750764146551077668705171540132446185573980995967793194100232825401958580523653168013597974681124964906295407374297075264092911485497269677614334983134241987622654130068469407408449745793604923542717764366629745396422385109909744378234661141862274394519182624982466413321657026119195004693023445270198631950487144248806983013593540947854442220639453638402306695751855225541696101615500892521697853255134911525391327249742015621911716559601018723180163702425457861175627088291982090631356966773874547753515473098396910663849023390283966589366884847186795700500217732431163457838506050121216213364113639992439669026703574017065957331476022755059601213457187887514556653705503358985808237158582335169708807726826729089182508027543399101545269779389971913792229018943843778660443566955414429834519404277888886177473963069869913172246372043983341530606139649331311357213778326057648863945447338108282217591057352140928623694410566169486805796533627358192521912377536380420737030194679095705820248746771763694781210253566148238296386528702313970919231663787287155147466033449905350279055601966765189579352212278454860995996924611000802197343406665561100104505305191251222785586402105253743782004729181301301973911199275052659434769146485623795026693965250218244540231761163938593408374171504607292009285060297664194068731912648483465960424413195672045048296062120176577279302933229991271932940869467503445905082662411076804146735313095115696010258703803185597433352989762267027908857541238825843217850804897523867255521608179413372448165135186160761047191045232682280167012124132729206865725070978204261110572303676455318543153014710636702710635767773557702408312154241209495549356641426994522475165684914560463300052990259966958929893803024711350885096193597215513843950481673697995080877390030713894874492338138818420569228496778011397952690919758371457046809130041893598790173836571169034713566305125287105307389462010623678228423695634730312667497824774350090476423312409919412320351118365789516141379823560265608580891212823401857111884623520015766875171915967748113962876101252585809817856580462841604406501638618392251472395629582523123962371817841546357990270759638487066821531890759732890135305817344559914348331514917924401388026618932822456640920211570688471842768196521489250012948663546973041943905820280752761047938897650328931321813562289454233249082098476993642484382709434758025487439385389046241997885070345720643351765400723835194444743113094852333455992043714137512496395160144228310801311435797520542222493922730848472960163653453871695902269567721927734010995391023807737092151661514455160248283872970520830362746459735268149904277761544002695770707038362634384942819788663651437112216317437192580386038528657025454430167384803910920537391517787027924913046504277659550754981552850793842402675599186615702845573382064489620151041924710317627848975526287360679016081927767488355793876233267497778158374169713416073909143206066902040719945401740585733569161633597043682720621440509770020054329152982834652651850360630704535934002152073186081701983340001741129891423252660067012214134114676622006525570579823286299325780795996619685280828805986353994814063631747331819073053771364645751836899301025456950067081283865656941871347103520625825782784842614622109108299366035519162945708520915498041548727531592302394601480754400340172729662972913612754724469115006850892956668215224963802875779855788266649047522265986339888049519463384771173400416860097711893658681168387761342955528418510902805657329555248857979860617865612829354241903169710444739584410471868930878605187613310265903589296988119502355695064485781984286715930827019421785924666917165223139130494054199269159929541969382528769306574639710479250123551621294349674188252819146926773040857203467565246563389208089986259281556490183784999242210366599502658373052431866143463351604146446285791954270820063841334957309281870248138205823147531359615055895388251291066256485001298066369162110764301563384377743390548753754695808755338223548076569114646887057277743146901870795803793284266262784139316651007553694288068075423700125563888081149822960678326802614357950384580244654256186846552409730382646101749597368745481696058255945321302109266231967947229112824151253015801747947622294473791291835209209166111542195297399429822019670012118455594997298597415169404606932772658923260755675198422067830543345901931028950570416656216096636168088026301284002385192488546653003396478018089996443122486518482788262919575900158672781301776610355109123836872009192679928202866281255527028955639685705592107935793037729035880257965555078435497211539968933396690188187817200207366382798696565579556044634192046055946288049926882572581411175690719738891687897507834219607155700611586724500544117733996866002121195586092141366825564740241376152665998389626217899656526226103924167677557020548918917296846038277492729265875293933151698095009925610755437988320533544481876018564049385348699359756361397564917801320218727454239270782174575674666529314950586948682114829590064645802238794567644535377031334383434796419739559958786125188710923513566949920360154722836778740545671373017515351422015903001314507762518220251636247641517295378503899959761149730641065038282373467794780141256756849121775082438065739522821979050352582567222459358393975564142122955796349068154308355379078372816131685754878067797335498545032038805714318828243388813974068907010212127465901637933034402651745525929442775381413261664192650432865514175571297512793332597096657513003006316064708800554228946318916480330697057468373079720017998396763197253805652176872042970636304089322409741613784375503312750096353997431249822136862823064745313216398774405301051459165626181105096757015030415198071968403251424247139518936173865728511805037659166940698265754780407483818670575719688583950491843709626076611213186384679407281185838799939281161365400370146453212243174129198153816190184897287402490673117342189746599924246868703433065747755310788009903507603872538299991277031816858971281500819948058574466365750085443584689890627182500397075763611732900191376834518011760210091799997983193063412479388013731356832666416606537127638405584667445933100062011295501184067904880110701837638313348132524662138704553821321510820622407914813574889471904547549164647695310360909931661526609086503907070905903703250657830447027638240486432452019546300854124583175529578523369803443015644430421651264621085096460020290689494337064803020863994716373664549710379655094195684055597668324704832193306667757231697275811731550330846703101188966481042773388813949616562504912879291498424591662806846462660866653362510950944817518254626654078526540514324754729174789851184332856095327497759881509952756733225846173559273658472617791809612735022953127150206421669611760888387266673968453731897872684586190025376010523866717518227109803814095086410164347168172697537774108140935008399215451331771580757524104386997129863710639863368392295032384966138978322123765978274879901902890492104342202525468013071911263142073360061578920081049999430194443095884836683865991181580520280229070855495048789596267589177570228569602744634860821276517726860658083391836035929364871849771929319482245071894909997413885580193078161909821385791154026070353443647548310847022269327624866044696991149038654739240400922666002751140276624261479489045954039701874987524637087974423961698796337874385976269466517808087584514162179109985316748449384488976244483214583274043260595882313104219113723140394513343551286418407642403032585681703397079477304084470836270093985984226446435490032062031377958253331137535585976664897506751455804830326709196093239033032711526807972739121099739578796216013053681359462498716118428743249109388622940691357929052838364709299578391649264300671563579557175657175398196804627181242039482189515398310438583776174911427925946705490192175379456438920200118899694192647136214189113868092969146552702679986969753870275145964282654237632356261877773765464523922507930142438655618435285918838612171027283247917375454010432996515279412783045391506017330107965134829967235430584761480413043841863106796594897529489167677043012892507697105251110243188485513273711529827914696133358958143977303568461633172330377570483293964504495445404784872967091651241624916498168701009451003737195627348839893332479665908624650957279895775527875074432846445949255666774836606828884073311915253314113885886247608167147867565174165202282566768091101409696815845526563651442571117701173568427055827014180750549764459596767519029372695502099006315241585387567277802238090442766333746335009617123858491863327878395367003970523614615420096482157330803943383535681475548562646535146866347220291527942446558513418373552170740154698770539519130857523669758583941936505761823002300672308208744558497670868413146988530542902102869446287329965621473794823956179512164503651305262892739268867208083568747066539310439615917586107248626750560316739831350954640542860917820576610135901416049629962385308926384492602297682061595931357609214313128819917010115207859886788621336914321645965108568432697493953449283500839794224678718336362384127033791354787030272525388097401277324265288548967074358126012001592618584127603263961923404703654146609815612364262447219462976361596893774407003990181169626854469819760535720852298748980143237224149160693941652010333631629997210733162030680861259049855281355566684354237233136240515011240808924777096400994377298273099435044884140258787230406346099497282305547387521237771308382782568902798455445736395731949151828151570720979853612851089220126926953554158098722188016801335502926726766093946497939419223222380232606649762164819849553585242123369199995533090825658428880974973322746528065370824005958932421527599425670403543502183765351340861392351921635916633952840887319523256749107789711809526511757398663611402391452805791009982547891711126945698981948484143564495527763764835439718886452496631047562139451958025872696676116164728275869775349956708162296254651021878855135723078784976835667510004535631343642169704261935488564904456522831867741471425599088552234579061688820209021957310017736892438796769887010529611402294024268144478243174997403888816009467653416221904490417837737621582681746442132588492269054152219482942569659876594730556721200233143950975209774510595581720241273537770310285025646376717991741936376472725519984044368680636042285542466514023374372998467909786173240483138336278720156845807194437006579371877838247725107749150283629233334875231708282122099506348594519627004902084761194065963339147134628349525542719875447152804170382725347311464861945607234763201055763316062263777468377691447942019063285342187084620452428998700721468504524206244861360431854893993017033254763494693607709050678670255826855656857723657432805829133598318690418038071495469472970868388602340815505253295835140600865537260148593883665033463981502328752897096983329536214115344274081488456646385967260068543082551114604883883247664711881195876344106077112849875184554424606009453114738022967927089593457374498186174524550491351929083545011869614204646193934178800386383280316152804684321615462337494028903046256166822607797504558263789390790848583123867175808257572909521570755545225666363068177627151031270296668822058415980022758194990878662989505155619727631594235008825200556908286927196326414845832769340298416519906658821858973215657903944282993401933497033821705164079949851003915731730348899010659273736410211244979229476362279967983695662955985180201826700066149240534271665729023835186807478511486592910499166769778436838913628845614297013216406947991025945574628617968279969982800912263959526909795215241643362481187700282901181483835137867529182203139657152042197846671930830629838011622825413529708352538430557093770733328179167569102013966906204219597853644140458098262141764498149208288736956858034185569306077176889617310427333248574715671346194666692327805398356230060028713756255752746368451519926823755869968779872794097516435743394786614423830679487010828814609290793993319155858588733036219207032989574166879098654087102817588605970503587530268321227243047259694532708410601280700806654358444474709816368394190109398161697895877804963747843574407058656167082790439480772901985186093299185530925333359760011902394204284963840690231977936822105392374889853966102271879842653233673666789249465429319651221086358888202742007075180213736710251605663773492363746136705531620837992973840164928504145799813390281863244566756316129928000144084044012176927887055443674088298413622482907244689086683050301177105385031051464172966305860629016402299232380293759585897915106009235335634016757046811494351609962844479439182680642920108948707892233427880088621765549812713356882174418590087181899130198060187321140467812503913992736570437077297751283817530164067309607740154027630562060970190377693720021201479698981852875740659783074678719545762413959021317355173409644640593034205201353700938972275119455777842749671010187440866039501362782062398361673983728149331963456332196429656870669151395158146445685614640134365013682278346662152118529320970134889368218047395946866072401205316550634964258879249262782406526876401102732516202494870314434049363528327747457297077568279566860280818020320407588202104377467852019724982676771652194941144329396945186429039290783733852122917999898256106885699614271865437153767633363266326523455455004446332380218825480104892618830480747035702447216715563037762697654805355000301414286083017921851479100174582783917252568972661967102899276322496720375556706489284871754270774897668791717455111944323914857116872544233918638508997124675920533537630934048809765507582373661769100013747003072337224991135447234425311488606501961682402649104953255504072154141196067163700708287197299241089708279317775647460892636333110989384133647939604642994656014947089808694533481942341533131010102834951416388805464843389575460128273905224679905702938404785185553520339240551567864465270236103610445859682020143814658809917614981969799694300194223153826688830068622043616981976254896655889266387339486348282422884785425527384925292309228280169761584564642384136252234814809054796573290750017748985590414132540645244218665177464681816833211200824273053017576793791249715915077356617437023384081174904201456578950893812936182363090843410903631768176000974278848867016448492267372727498912491346993494892449800789370768220118048258241209699844143549128178641970694695647222128336033015226903620840689293436585170276971734529851224750429572415714455053427395736946342515688008660232804575386349673299635588189813862582196916296883557463378423561392842570472817381873774435712658060410402470531780031134272824110168138455718773828768203484421031727694694568272387709266862752841262965890904887736553374038773321277405070609155156314244134998314354600485836649464258472534747154509514810751875649079120092696421715991514183695659894207354236740992095510001075007984676255754243396578694471047857839058110512663885821040453527474111072703696023483873997810670073763107255242948926193520843310675376980070396519443074362954947559039030732139721255072480526838385785392630783295123492193383988861737367562686896201045686720453764745772493597210638686251543412228499102656362828655374041866647013395918067526395124646679124546482078601006135580921478139917080934523869769916494495291468953902409189463388062253616549103282015598115962824949085176637348266021835860050563444949126688660255868215621301896733502086995265885684915529498862243771056954721325602844798367253137232397819269636442873493085316242793690217181941451439300391135523822068066787091132489940793979343496819912431121166331843721638465167112430303636991590564371224069964556544476652409956403776356063353923817782293771365008135027043543040102097246198963914142799532842259530487683305102674857725277661010622075763599038170575244723208408462167888503427910815490802767029310372393367817501511156897731250601702237677761714759585977728917051457793613968714196839755139624131254665631757907989274795006337000573374763833793488964494354658065831257947133336062047421999733926726887517538648504239700634130753786133275205835628247803907847130866507329312232651702671723603084509976019974602702660894167249146010987828128957984337161659125217449160599243920158682924213206411013944808052458451169632937106276963674129071546671416957439529598730748038525470521312952098326490882304073010059792236912113222165308216406866609129994939158081605246927736851073559646692870286915494738726780972163177657346243494785501858102714685964179720612178091043271637572811564192195440463059754688584568104531700939803290059717020783390770192428176856714261020935786895475063844277591246461561551575454874125663059027576655038845338730970546948118912481496965278542362273819421726853084495375725208440940350439987961617826774393700100222293452515634770085135907423780744584434271714452855781153828192875551512902769259040381128474545737702615359111797743430551450055369162094318420294523750487931788650122817775785644305861659875123131965519748868680612895928385196597818865761398418694325999375808311251030160118475465183458653664351884558218545712547513388278943817437630121330418613085471890642448087929838314845095287822929432631334439358034385355003934650144449310563710175411107397829474927213381536121882314460179208876151576935561823491353873279007671117684459651867574122505103600079925590337588939480833518274987818972819420566485846285707231979247683682689598532440523983717652878670737339047650732323685397724699221946315665174649669586533873337241583771255738679076689589504298776285989129874134586896494055140636770040118449894308455138584524477447122471600056307764798671282981736794328722807194192527911711719975138656418639379296508611114969951134210936923564816305321153791956119181249268812712295573965746108901526859021533387153539494610011886662408830278797938627998027884302315454843013192625971444121985618687222550193878166494222122822546423320785939825095325813800511158271805388027090150978114357612866995858552925972893944169374027676965520877746997194397922672648926597841603046390909767758296011927871237374409727474709817961744817387343616079325709341455734775229108379947635062541457529140100111673714806896016025649045268424368207985977355231984919881703711078939434713285064664163802988836713267423839902668901075058058207167736544878783225455852555844965945118177652572474837717667894547275156502445071362170205744385228368839454778416476818956297234815993252495026529183288854841932935560592073834951561563593171362007351455131907171691326761258708314532121289339395981728800255322441053038088197956157028325740652568040036227847594117425425757322416113421688210120299194232167016755684024914835791052851297589937505982219491209216704043816125608787237126412877673752098645921727746763861743432087128780392289134895945219172098696307410326881883033559355050684233789917809847777360683792608236053741421342754715221235959316656677689450351883178838182289381823094502250210215421742218713057075700438137963997148016864887602565881552980596119253424535120935401588112902879163822205513683273991851674843896101325058648679134870220748351377778149340986110364047921811134803212748989187620325008741376157827244940049226128338901760281556711891382346781745247337416660445459412534900904100468578041361733781168524468851431896336663868581715442693515014270195022621316719981969196717616707389215395431319728584348705482856409101884429772517119273395025928341567008977280524179920485728944204912073780072359590911177497941075388607424479416073431268918616870995683805392251891982620048486365322661521941054709617593223381210734074484169663171457346706366852747548987187748649737651399197305565343457023346973513609036126246049909060273173504663596792711697682242542810816008737298849508650711520399595269671503865189228739263549328735279135669030026666518404816620211817085610997012367882006014417085707184642179043321774229734577270131037134278657942613221200028775766166427906628275722150787474400793841332098254652960487043558103690429701611935930355174624061955295724005573239734388270735901277181418327384264230803099692937623649644322052257731615693257364910345776258972270634135655697539755052498917139120978053658073267169319228372119988160508230307862106508406199688956645567285746538782080054138086103609330452874876749986284640458539128733617467615094285185810053737871600135949448664703134638063764345840995738087711637850608241283146160937834251548027712441335598146220583831724015069937052952250665570520438796966478439813366266891566001547368104904215251392828411227817587301065962909097213923014913603153652109764372788368279478139543028146397665119951134618323648135818322757981578783088541862769884795637674020950951010366625116643695524462020242526235780471135027053712957853552836260059592617609468345870261695620606129889161245950498995978720739136088536981867671357610612801838933793677377027720107835912320246258130649039518680779593458598841026249266445138298615997027139897530946090813989738773635252143483982535130531247368185855134991537462827557312225644417476853462518911752177767232911554848609221413619505615315369041701036260547752762251533204875604447949922340664676340743846664006285299778576926014860912544872967576589735148400574487899991342577934272462207899561743586676861354300985580361941790367892307797133140155065011927916368654380610140507831725209275724429168014007790801294579802727163322966012366769139580349027383884671251405551079463483989414014861196801501183098532274832035294277010610109001276383931566664138194993881181740309416192830571151189417900215440943033584187801603404456461733860047655155725043067264364661199333915153603364060835988516406706703255582985663919906988916497416952885316773282196012743278686419005720273521906530436711928071509593180655543547466519827064202229193477973543314641816302773625264839719835560041779665874096565963124343169241503192105487167098024141571599408565758999722764990749343800806766147839660809050659647332607963589096666155716950139759845218410942330522499306068422354474014930272576778221332184982627063340209126799776181063926564671199781018213849510590359522995450348421813201222675680808884942812508067926233225531883003626431856785379241346332204004241260542657717629030375977397373540037052920130131228321586123886915284576137620442378605066806100417296560353992982201275966537295316252387439672072379511883705281594204402255886948111100218404656985490927704631533230884481335313174802334629493114620907935894348327391107819050278951924875433387171219514479626886259407123563762675535884862465272125342490467582743043764182829167843493989277242810931812749055607754302022324762824898207405442280211089254740045641295429876513922108483889772372687533646436666146960009944913272577361700964298429212020748472789350337142358930616672632672667360074557302471325910906974517100644538962121287488108932391876241977974041467554677367347121083467590461626370235310503102999552331935731307829407729175970417144293037578948531205602550572477213226711359814676259036764273982689690558804329279061258211725239810203801495992039148505787415639874448331365402847484359779817292270021401312589484828836853004918873011566167524987821040193377167635070166540033506948004721134475177754780202825882490435337332031286374542392648281356589874412987253649104525175549900343007874738041619545641290774249734332765424509556503083845373870041914069792637135128158357111348149814659872704541400014364240170344485228831915927924747718036989804844761045827340413282188098346502798980323658275405073416755479326373660060996845321754929477729197243617253496323420683781112013660806213380221936232915154914279921105553530738357769543668524087740496747465772945566566422749227561117818641026769406055661152564039208526208874333065709604292698290115822623823822215747920931075541575374268379331430199759937098252258461277825837947011197935465507817103760945803408360913974307484477604593736602860994579177691947181936530511203698854618291311680720467691524863192435619907012549379586170283386136645653546003823017531429090868785767479972490775045047549090270236438904065077044994180671999707815550097192784039363169345327014071370225360979286247771101903421577238913861128294276192871088743585603755897563637072405128660578707123136564624766479126692965093258828906865376897940783329938454911337314845563166935651938668560492046256266170043489710185651395212191740777010002942649293792570007155181826658270041982536117637734479742206291614695321248515318167191505475092222453223237015838165406550786787785868179009540414753353089800962589271294974908162071052837163090175631388391513351449596414062920812687743902468335227826760962463666047372680476859426600512599590960268854626301137997985612667125800929164007926498952483989664933147521507881603559481561112546451093659471326652740662410377554320152485231123563080993612643268089413683790784690600825626347658346983385114853564510285019738153258043409298357998462646263470164046282300522959132914277254702416022065861812410722715106466369627791205483031614331858738111777521922954983871740181174460171433117995546242762522829307118147342558678271141599720789726889756087656015027309705470081597329180460371427465757050153047953818893059662619397453485761809452882124936608010492966329437239252146501066915206721654389828357008874778103010431591900644069854193107523720872645446992704870203736699698258089651772280344916664997412712849693043185702386881825654111417423873394410614473730198756874856596220186334388681568746797064918380696721274124236254449384269952694448114902823995688871754258877893521910186152009133256986128169438672241298690455052412037875647333013339161441101960761171668800635600324953262811478317855140783857164103802079694576200524158970531856498907526152627590581878576993850192562741524074615836646123651905943957005446564394010266537056642877465891124835053376066821844087707044331477757579312187112084921478356384356542507081666113420566204100515256871360241083440074717116436812246660151522790594198990668413119519615191897940585652845857689792348885898364956639883570017635447285748338166452056983794262529961738749251781883646760670218290484339573420776677499420483737383461433787532158096759321765639746162557081059996206360109428725349297608574349780660773580160072867570779530388565211182911536065764128723911833382378309916494464577800126863131696589266788368482464381242329133375653540069533828511454144865719782390425028984402621745645373295607643921467899789827732267265751953475292780451811407032469794266167133639352262486917862899818070248259514811098040387321542223653935096560353386913481040391431059256581865058996665994189865917972297776984801190671558162414290422557609906232690999520347665880901219194078535049081285167867100748674764653503481861648953630263853050600283727201504817871944904301699292490129522994045538537868567048549583954957321396782085630510480172230381828869786180660054021893737260522469822698844201968836012233156344229546893726414611028296520551244555696822855615972799838950163106605107339245028634839969651005796207375830717709515965924567477781089410686484306176509777639387704819441120571187839167514861794535830558406675136102236244405318670490608303256106619067324428913391134220310930697255668009052074383340227105423809264839225223365989553930258879253015689428452565890251576352863192416459245130886544192454003725639976187455601867492569970931811821484293231634475423490766590273143384592681783660458567244070096403798804270006756484237084397384491123012978429317630980687834671573808711268344049339336219275025499605344559954788680467395219021059977573295989681060205188228054198328533552080328878826678067869253704615448126688695794848449485360273104291305241551807916272554003258580841605306763656830230639104613260440793249116463294235084805688257199151197936701808056857778832846123228940639751932731609821313330356930643779770433209096621089596089846479236675584923776574960607143058265737774194446339204233343979052715405795927579402214993470513125184572395293976125649112276425500085440812781989575999585010056596866994382707386678330985431018431973926915465778940105584720854943297211133546789603853087095538484017636009602439424806391371677359046432394300457889452892648345441820135962597168908320478655960238063312608736487096302856165707886325644174528580219985446830174291808582690974866102494544013920542215626814889041577574685716736554403674309994442177212085646090892790843824841743858849303883418894438816875406052565119043398031894816342350893604116894941535082790646832112641972217030272866388607605399950193608864784940426735583369728775648216554167129028147889473367663671512944277055401553820278355213837911132459916258798802646119175628838586250593853901506829958126918704020047154631394915469867598693991306402246601975606046466875200736765067472148878633175796045353084578556052335485887011685965830089453474380167695656511792199372764009472538346662637479246751436652001843896507514471174994886793378676273084312858893519883761608989448937293296141862504716344749215912819656612791241865664933147004872071909956294671170981029838441470005001614464972390804628722540523225418694066275293788448018321741047525232565593709771025256660346015419682616223174019717144218016665225214187794797737932773819912073477776227812819403201501762067065133186712540756297883147654856619303399050265502467416553759026039991771188435534847764254045467843922985880603751532568254463631036100300126247082992438112057763939794685317159563461416614136643973359810320830573211837726673307667142977821202825732590202517870502028877751174901582736920533316320644722624825268110963993442685494504419747093182300472136748845716464530202231342477303518919974236585272541004585487673372974874133777598754765635323429828338032204025887195777045070857103804077537717711591711851290387246341222729015017662435091806695679540590449513574179893201123911750327155230507402778802031501108668515796093990888074906195836776093719790732029427066777037532067881189638005574923888426094124877618791898177954436090271538987828705822316020695370571661055500722793126204181072288645725872502786123983883123163868145276281504385699778245222092248318655113796207984271987045287152079932986561461649601620141172089563721559535102614790497615646498556250757523487746975561578935742641345736509191764898854158747777862038671779334552124152257929834805651444705749904668552201322099996304086098740966613776924563681456698511806886082746008502887416404482681203482008579312491441660341610164727708671248189955599363754822689057441377820161112095959019613475662218656780932961440917705822962190525180093988518201728858933785918635559242887817345271418327903899746663165415075358461196359756187359504502531973249405845029335597353346937947998968437803292768409420018633814168072960127898425076460243006947012656928329874775158266588186515826734381534128461933462955302891471417097720098880430567155989314957130276186487658533618116900673075630130714066313435486518275491017869546852188247786761660303077319082028376093107313365821418985675159076800774188497960892124339635617067224244699842492548523239508249400951700896609687803587905575421548424636674942452424672204594744108486672373325034185133437836699497911533415702908609808614224327919409786001184144446975018314170595186008742098487854924926834577284893675994203654050712548235459843044236907750750090518378025239912007863806378587309201921040166323682266636174938588753762616612522480898122956719477481456604378685007408253258114713121929514317246421728351478330780731007241273221380273280140606559118573478073869256020199026267035654665991943985161896991329409255602417930181309961983603716529641141756653872300705502236600052645489498349422486969423915467788915956215414097446559757906933186297451257685649832534593570087702167591213742936267222778533813074600674132088267391739686672932775148056237174097138116705331939517327498280933173538879549273603104009514833404888193741731655865466830391737464372309442207554163634473439556024490139506685314908100645281856357357865169097013168458633394141287648937101312979563694130441500883245135440520316143121927169050544940708074161332722302653032219634952221329536017766408499357152673358993774500293627580309286346541921250672144943945659869335023616003857936264871421064442108689742706530011548877577212482188097414127836779878471352528115807778602287939243495482883320142068024810705163387512939653503421178333056001804258276889433970831594113610069681814985255068158828291205013469477353200074912014310229897796551491045571419541915322341821863337632225943350721982825989491506586974128825356840904401220936128362475212378045800537051214265786914793231432199569687229882561276068118951239095550409662041237711617132668543232088136358296050598410503965756882830318715090012950769744919347509922683416269654672453332671453110564967363794437585462504522518460751158328620827591491654036982656628764722501413060191252203885435503425832224090871589149451063680275380682764895750581878722470569576144067978778164988532023285687855157998651994024780039971924375502797310041452814274897547659214034109848858944877469532838538002370425687011889330513297128601999650668878916471345544225114631813462030168953905925268982308097721291025304953969080441835184177055448360513988404232805028572304915230558476711210610017955371460024388742734089000680558667190822902236539367798000222642286694313667583093949529444180431242854550184000066430197755372681822687834793825819966797975438275008061485102948014093250986731382231247982324097439792306945574845126862651381440934362534042917855997252694190964411570767540416329617952032999614964543679512786424977925027294433716069139798295248337104627346254215531542929281577657398185191154990634368420379848689019548501166389203738479155265656932825781733657256064793393866806559081624148506961201174159909391439763929637706666333502626531309037504588416224067255200041211658925763905151469512639377386870358909312392046603122423493034800581485075319713486311031338987149074344917603052561712411507616510979198677063158312387737319477125213707149468961762245634536196329590029609792789897144768143046346430719814676744605865143826919692444161010782354120156988429083428008564195465114825017093501107880995420537062547299075302847519335366015379464180499154859620736874247517927128701714423245149500067499518973801249251156448975670488435574508248668840089538966477106142557405170305173311293293731166112882380780543448891699434233651872539179075575465918048899568635815374470990464749836487436288456472344512843025513509170544749095523084083475958833686820087924091123659455006939524097891244720727872662353476524924483244513405522191881086685004015975342430755039113423499761900975364822820937913034295380252380031358580064967660963140036430841527543023086010411429822858615426635711321063867762588524369446936649179187502729054374610517966076575202048120752481335446006240346326243168582791599809772163541382650985653506897895543788672835392287556436487197802345531100434426098875920805667673415709130611939133948778191228958641756350992283399807362551726439656829515628777450896945054012841779173573075900232361931977031979013994337852137237835240284472895535650827475281807294880863494059659862277884377272818403832393174958637314873433496559534738326969863365449516953890207341575313163275142004224176376643155864196880067770381743912815752988658127183528445972078955255340808559903372508564336326836096065398607541981808554477864362191596361100307581563558366385469940532345365605804793672024689764600324762857482535709696695664875309456359522501629019489523921146085710843815704511664951021369803335663031111013087905724022540228592441056139989934296941295967800023210165191396123634648190229376767950776378065900096576441604815633151185976391645086080211146139255140103876747519435452690366323956973102447965502850982398329691654172435707630424857489415872291909585994812603635032613289855729337797431830251611040819818464189899673513526503052012856405132533295566318828213181383577433427291907180430847458976838415851706208666003272429337241389189682151503522296218798046037768336767158216246055125202205724775203089202615131176411525521185021579033100134037521488665274999024618907454579788850794478874343857179206385745089948317281366764608021452999281396727049678143515175687679608183389193561403771195917559510915779404631638822436326454661798425920286898354510868333425348028849088357615827442883645433288075958032040390527451587769007875967207321193195875171495705886530987826881637912139716824920226385329136900545571947675500914962510720814747597636965970377023694755973513722791552964030180789673676317887456262666596244326290691701691050031716352845415458899331707061627300198563661839778275301145004239029062333151546864416768768171782017403924054053306818874772211651273256233672322148793988638604569577612172419740072516169781732928973520467120068653708891880171352969121314516584816306313776609477770931968852315298291694449007271616433335406007612372391521069693090337826455257412305651898898518809122318526384568447195114338077698056625451732065154498857877686253409163356778360916831084413947868786097303747142444630116226201441607190249090719751396471950426908693078638296750794546658982842862919235195201784079864312359174729879913356828018554089390749376400147561680586189358548737748797891257981829321056916216522083619118626170382774109432383343025867396055963412211856760247659746213438258142484001293402636023497813220668872496592773485856698881974535764534265962315638131152472995632059730482772284059285204872724718176689887821255995839236523937383952123741614517087957516346468302292875496072887999346947919020896004774107005615375095964165378538647230347550114838387862270576825991246969497043458266046818987455060478192180102307582434124248047312919421400679838863940963208289829421312735294944791922235708793249164103043116567946332752226522145568807007153657124408069659663412017253581644895559817295204636094524612205419761289776984280732313435041843018818040422145362295106589305604394655378763933311099617500304245473503625383129200489892686102273767919570123303097686463571436643494891455333469036405115321880933328614010429583458923830597340616496473316905773868556847198065887840951530131385590245627868743495790322219366162015120078984066414078569606904489041265204478571375987247429669125014365377314687248321247968559503269214075529512323594079782576662251597342677079678509255621008474402672770633995833206237914016594409086857965924873247717809346229980926268534778366876350386550560920084681924818794353729261188971342301848800159437557665732839636761801066613961093090351939799244820893525594465766964437839213372624000678148358859088980335223805541803920916332255428311010505041477205958458652193034150922234572013265117880804884811473848396047219333203006096314162064090992115022025731631833093679223218087917398085789393961782992637251123381924148118088764919681116389279029172355009265601567106944674663750108253402661739149559112059910297905508775880211406120147426223459936448189311698960087851827564894238220642872092660473755683748923700360994439885073780646530257088236707084672656678391146922083819481813489162920931486484946466263737348543550647820704809952499060936055851604056570775163700655673274724379106933843310829601699893053111079819059091089179545540298148784030668640360881934720871248466512366132160444759080207510782676881252086022372283801330365476108093282225554313281490259566769348228199742614217719530401197229438595346029547416990311822789432548708920028271813214585070878954085977468162261050858792015196214062233116055200220659106945872433984651438356340085924784880699364760022061502950074552534892771422815587129600711093012034181935779817995726786454275160746730558194239413270040134118400655386965056247041478938985317073991577769719303730591994365443560776405284161651007041812242456156392436140720006766036047547968660936783275384217961614650366882737174567971682294945027011825799633322265017475411867628073909542281113843134158474593056546752108142893042723962619932189281901196390368288956117259326738653105412347869055173965789946752882425862426465155801048631189912361248371175373822057596621212478352437681452684592041287470565018498767314584073753978166777970428575496812453925704629786461579159749220540241615627668296366401549318667187036624877368865268612700909085183521713067790339477730977551871911162960429487920493329300887902056890734598529955663763972823950801328541543755959922665142753950658831821537318723710307822479180230718642380843397348284903187607581410628038213703452104289046056487865156569585605909671886440380882377453129093711605296136772301872073524602166315099939630995948260439172409409183614915182320182597144408171531039703235823577561764918374734703225168476572357994603169466022869297935668068180782618705040510877624032168798692258735450026135043805347426001184620590359651424132816352552200140226867244283036628479547287539303566458260471646113610694712671452581940032736272398387273883528929001682675064716129135353549699756682799617739043989839151086389241239335824329348271639338029141168713745817914630080136566153737017589371220978679295789378411805859643480928411136793423337016916369898044892343224331346073114072293092704501525994684851648239344907355016404811193168293198893942161391640539222251694267461054600683094046045778311047538114380469772037606069643115835951006817479776973660061639410961468210381699806099108179405964006876593150577496984308119457089272422850155016216951795409894835547280839950241498436942590462131396168659663451985296306355702704731308052705831535701510947160168259581671985240626110345678242293946247106228899056175244437509667101757191283103882502193469023657001807825166395927759750619857847000707795015166664965024470475610045412550029935897108020038711617831662334784307872937447462888009426162158040867234336213107382095936832310838838244218027128367853599045928490498825916049751654264904477373682970618317905964354205635726309923553069218372033160132475564361654156263715068925493736220893469854126974095009378382946685019355753892380834778391570805789931623646862761352208547046399986594563035208729852585202854179662085854736161466995381262279074514982280267938856114658001198139618818020173128538962162258814491417424254390868364452758859574213183661972338991496025447516396903521983728584563631153935181204384749060480036780039955341547455502385483965645093585576432116946857625395367417625646016368156698072699220563822444345140201914305408940902705733647494159712354174665350501722302616680843887315052072085225878628478564835447149414257514281272152172512032316718123418278379274552227266823188066202690783372054269709717931020084908133841803880841761750983911292603893351572795829895094512318866003358063621416445475992114661193821435448598616024679106987624308352620369554657639124202920815048163802138042381712592603779164788968715978687585733903232169349995777265087908138942830655975286845250637234174652116554274242288327000027879021531761039638738467544336560278296048891807159706493365537575203308464283605950171349264132778113696270657127542773560398661199121469602626374286158695177728440173030139479845629688078387289692765867523265077769657398822380835369138320759497248820247875864962700019721271088661421159180112169811115259140862092316321241486974248688853655749521840013874102066349461996537108949538758415323300495306750683961161351067240387618318084039300887706510243382690931527309523267710376105899865638342948795055440624652586052806126301204833987630565762166713307076353423289821878808341141661208163313319565290089632847573552487772133126184325861525794228195148909715652193341721329391217585676529062209553534219427842644549584756117860502826508564691108844991271599354835349927671334447873927003839870721629669884005047826124401092443456178671835852680511131830457855688626141866045179889349894441268101245374490047387845503440785630714565331350427843804279733903223750207690808921422130520845448930550814079779225534584361713715878604464810426958214257875922975561494268815263060838545952535348958408406634517551165743829048882392575112038241878654803884807994421853554385842432211237894573902955897424465827634434879326765294566492140170395365303341064361733322845316590782477500203543861865161974712236507372955258257952270072311675793542785214739539651732967203582978415698609104734355052677463122955530107061606516713173763872221413591122510151835087184655734102819606441069662118383504463887844352877455610989446250410027155511004092923494585316452779673108583527077722330168431334578198803208057943488719114432345093662162151182909074294348070212019602480979104296870762738749710669117659637523802885005534432887949626405458817998404732886670476789203833745507485271668140903682856126422554318263030700824720529748210253262433148634558204420575187964151910034683523405204226547357591624454501467982498560901360532698841902521362823744746239119983669448553314536884915150790328708100487514081605069283830009761124870868509860535850682306275606560465217141761166001287375193862385287487987842162046255571284851558323624890544161762270531233770009115880618436018732256831790546884121031385491025229335914212968767419186622902047078716540049842999348896292283899328154879163345483772127330317496337698141582116554339881319896775391347336443817064845957755634630710203341176260788722126286131781816491430323349330430620547003699132289295867144807433577162716217622581099289558812682902492697654161534336591557712782388203292897333393540027091918426106414278845724345938810470641501791008685883582333085295268650132893316133977705156759620023917890200795088423078711562735777503116028224698313898201986608704410756804679225552288493950596008285951313043567604778849922496738727721819967785333582335773753016466686358538438513893469086859131650039266298326566618069913286854181705234455568865869748343112461297280663858862149996536620858336122124034273549983913434794094835423533767004588150788544926977937792464898208909363879821241447642037760048769892001496363940690187514314686297720134388855384440773507149800935777891649550263758600454373790959049146886917177208282657096341163030602863119586475486426772096598661739770200381480649205124059280536209117639404321983890944097593587601197130468581651930638632962949858022087400785419489703069820150913111685584405026685908720917998613744722876529456025661759575329476052415274155540602472470376342714855961487860846933786578288569746450912513406877355153266124755474021476665854958353231433380505305132638829955781141111597278047090903051962853942986736403274048095157481010878942456933610689308385025027543413391399938339098006174423918749372851953002981878623635798319444009194023233653793079953467375007909158067954968586281927520125748396637370567538613519459766164407610399992328843608154908974127487252020907284171782938386176357900087037894396615222132201225556373355671446660076049519849578584580699544941774319060018363450093707752351506750105340459299602785815837069297396533716472709089443057943949163913021866152871546962353052715375999641630497214779374053398919119201662512444079801673275325225355008943855938121507523547637547482081572499363439441453524031513299937165753117540664736233996827576796660693321587608063401799108739193256595125425546871594171410825950533717625670363334266977516832168815327062271962403954168133565172623982760948320477839798388589602740389393764861508316959584985072520651197243199132793845342180742544372733070749687250617195166219120697581486368000252536535355691553923353193670009608143043299517236244195502047740339577302553866751156039144355193092263470970274092195868853393671427240923440304348976266641545833390843773015556918417365895635452647585388995102629928705986426387928917848696122535077062448950140766031686447368386461302088351052719148303409204612907606290383798724531202963787245640392873482544263517148514298945917819185347545945737803322127587053515931838752816995351299989283429972800499506261974646583308189466508153237520373177166137916613497698896143022142679858256632679004511378401450158813634389725138001818548181009134128578156402464947907701110934497952861517410075465462181495490252023552505366927641760626858216767542513541152294966759902541841947192539588794394584922553238758020857068606468553263180595354601030629657628260507172691232713492056521930863526369021220188136044570709538604848035077549385885311810281067532048020607631725546067443020826595795161660926325081509077254333003058582438585796178663456488311790155489485176541459672951334768159918508047274178385476702707617587374512655245124554729272063168108232542502641112676100910589065922361925257406586321608700859782067303005693891863847711305482463040531827286054392846227839045623936013421915583207988164922723603107362673955822155580929448775571206611696248366393518675545554659025161571492694315026280366999814902418411131431777903447246852171520781122996053354214588299013987745572790786292088362975909357378780646921388255027115821419945331152488721965713737255673327197389347754571172340896828964062606242804118755922700096472491073773265202187995277924884020585614840537261767164913899856589262569819417507164693688317933919324317264066760816516925680283163314663769790805407718406798391555629018375778435470696420523466637036298145331930696951643845453977552301475775189943525064526831748798634775841942816882715961650164894818807807531129548202955169424744332157535294401081306345241008043345940746891472929678547037028560599280595960665363771109350534346396795348146046823856237421068332644776698421976280930865949185485737974961298025344590089593731255301465463222013264632469157237637714687278044239649680333294064111339382564926289177819502438328551017299984604648137443339505495149078915306695106389494121677352036052514618139848702917679427133627351980187826949226776905149583976353408996525491167636101949049030748203952703349548695560586628022654438289755669519768602780771771600554574650046815295764254163709384225352149340562337052310975049853755357734713759657748857881147522823413191577447187117048391330267729411518834735242631587422840076178422418156214264844759079448672341180343887116199202426185217718784656971514376419475326275633985808673486233622242239106776095744003752198572356676960911057944946579644059997964626664294431963498680838794412100831997973661478408841598887068943551106073433329796078246392841393007810517684699287325075142130798287939006176654117055985643660910464619801046037277848954182722827894574978504554037776208556238527562784178111715196781673131777418634763637744523074021294414142538459540346509186581544793904126957004467508708513371950492019499135265442506269805150565026713137207168862006626899027259095702849491170632527627196981476440861822014121296293159963213268502866284541164282372377461302052359588385682109068523039157881603599170462263984799273002281093591135127399441612473753470700029793015723934545268416821557453514065691681440387297802507362264828192881370861042440118630578516626540250408551564074031988006632999465782172648953547865891038664733847562199182064367124067799110857828846913146258966487143820620395108239638909120036169729900498563085813259005053817932144562937763459102729682394940176505125386773243320195823120099517380278557166199414746095403640717435582147443718101440978108137888039060885720140479546685761620943946881185643390976668011973550764230168608665305696141992440639555551534677233221348625853233858082008539948244511129437139695827765418113545528741193560898516054397731010925976202182394248984259210088111656360219590007852137845786012865457572501863473602544409151219163281049848448968840464099483421648919876326334126518250752808327267713413159572120112512633332890312284411432671937561145106945290422670469607043579784368279766060384673496724696007898665477585580534840145418123840891387482240215877747359696526527583850740175293211723201544390270166327619640389721969496890127774635640573109788174353441566822374669608048267623851691435360454104885511776890600233493807852394446295896252865448580320554355322020793240802918716361106423554631527221656842651623642569324892947855801947965350669208024417242196283644513494372076204499746379933572779805831733676713630741799435018327197371377275595527296400746016434040040667170917639470546425663547201986803478390803429253482275522700455066426562599271884509944474178879629883390491311985910396266655228736436582132762407738697321983700075103847784166390089944862466274325049592557690959728934702086788138688414793321318061531070508513628981806707719602903612674043660460536110240565506996372228651524687747608441207727481306999568950106938311227822022036995555009390858631113908504951779085666582610693998715507348948875643647462825902487855529672585543857784739674596277932575423216599608670556666349765700473097961953646889719892415922993416731529952599688365769959920878547240985521614426222620581810444347124222765765482170039817600246516714308783597886519879986251364831112087486294704603916642499617551193802013232219072203379098223337113635036543503303917196216908664176121781707143730331596563261740038855619627517507824315129983845163352735414727207955308245659309477586117411946372826148603108828216565300035171433970376967963874317032260108406624342215216141122667801422997728025916698245306931184449327382396033353607709921682238221751351426275146317761963210875602077828768911207890786224065632492802529300368457605899510516814914234311210311917591582634381563429289682207842230909258676564374715635282021769162278357456481929770568775080301092637325318319687404677903111701902265848660714120966237255040840706558120132397664907299556630498031760146151187191685220230198491401177836253554600155828379008982817329268316059228503111078920481347668740529553262278734162066919074320069680966601359743555547465031205915162677257521504203693931536495667571733805496688671475130614505450655032374046479522553382416978199204449351963444722382501693615236014806423310513849977550279077910869133149620032776885756621305328445484630342567272441268288480208746345330563528071157390683375565246578856440316241294109142550278683620275620071164281772169948854550533669546211246643689023344290254072503679343419249342745371082871652409011276596197259590219847758926222285780026789096197559100688719647142308232272516085611773477744197148818653474962314028694066603378455423404196034740889905413589588038101919042042080798289892139771728071829480585970102865791207785949626934348016194016893473830658983731487265113100229207138154131021369241742002806580832081577122970626215851952770228076988577267191696389168377100436066851395566733925976234514888720866343735412719407235272291931732968042016744059027159603813051906339069881116999459132100068726070636589695751822841002947152537095892327273365967840984084008376164952710066851042752797393541289390354762526318976153031166830180373883501276839476292657297829589078639023846914431967455894198652292081241757248022368557324443172693442496418756391364135630275028348235649255503056543650508309721304050884569131221883615564109990585093607504226335950722338316241809492015812660718489234746319226140334775732152933303484982502999864099159454312659718752967948001801701184829605112114770870932240712296927393058712840247629102430308619222977307974389587661192576573274993536059978264044079490694289505470018311866013079576181708026508955310079602264775109800949541692939537696980525487009779730899110519442083920375679248360147780260156444360315336708734148963712667424368876849595461888462959467457419133946176052713859432781356765390057286032901953727331119926827787763922101810518551729668191885670137548163877023375031840720423140135535039700268393814172492171561324436982846086023337129529161147638703306342663490367165172945176074252681935992467900844489604901562836233915382483008826784170288700006724671958641021887845947397253068556668933410523480604751432595062053140783054898345814112283679589082710910995594188761747029260688697418809321472822021270585985645753976178522572680266203332208224329473427625988844808470899557647954091954678407929995240462808156874678829823286052398043672655794994550639626062814222776876998461611233151258931746336710896242298737473457039292489152926192537512301873628114285811713546397597895186973896373438321458086050653669139660655195974267311073327499965913692570745077202195112020808721226063422793074308146837547366456500083164005726824437926236437217007360515745283283970451326270023080957665700943924564520622033534926134755810705850669842510921172358641049418672897389399268994378277954050737264141737872945510572393960732899226210571715235214532388606635118706190680142725436568359275717368786312972628111286331683574675297415938971184122897381768289101902019507106599039378859433768678825898951755256354145240811007294297656843642249659009084113281170461598035821334341094314665540294022840685473062775890835909587336661855268040422684508274849090864937251584599803376920917787595925958659756056057056415669768561145655145555606305495731904735363248713388440496058835542882084183415610339568327125503305473693920725097274633577288312294071655929369114261647067248931571848369043003863152356974393576313595647063126051752555836836389030137201697705244386197018421370048271669879885019402570357247149098146603655090681601077720906926545525599600678390688607718147636039655558017814554562848034729657721487059338685375486914295812885475596242303884497524920067768070345573460191652965906712127060148075341062260664693090274493452206667577551844387186812459483942455947222708721956036997310743783409853359569539967582160840456678770998769313815899550169987912046847059776381698016176803004071045199335887646688431145919242591458619109764678343840063011174539724456910350600821711185526842774094310256798819001033444547948008259752957789987396713824855019141291447845261484169596541096584277846494834624233412239669508834574209200287864739618129439824427778139442896923195986864646530118715974963480089874333569584464794142821131158133286571442604307639833481115049956611896442400464933007879790575893698856074280361845371059439034027873036191330406910353435130402825594686611938845570450100028827067735368052161967846863352845115738833411633462225685308834011475015133030962865183123361822866258701594832447555469852681476814996428915267579871983233494522195225160621724718826490837205920204837351864190882485151234433590311755400516502048604460320019830134023535850921627512752710736015068560273378541349161346116074819000607896815638506879416046111783848122293768161355637590174972185881490744056824646911810101651489064432715494443102090285721355986134682517883109111961519802817643006620071558214182193605467382377038150578254590969072636305672366520097032928714029450661337618175373511241256524937763874225996376760856611782760569050520945225143476586810694192890740780951786173085537222929368136613952517986512792087385276030663236501729721836957823084055675670099891111471011743703706108800920743384487339080607824618223513184284639857239877320903832501788137483241997532065556759970910279997531724067966927316272148236815884097052379706107657647883647673703182699261708199673176465600886729525844131910149051779682503317922359964796693144663470191043640390161786244466503538730283784745009976963131204770808476915277903134450570579095417462718486413682336019340044030831647636057021362301901143440586073845883682311419869255403544276394829510918150167271280689900826868948814997694260908119528621469389506037789734868871016245216507133039459303403537687148825455865310684763282886686986520519848850696416151764006476650149539435745536203913387150006977389599690954768733811543037684310125712133773645752849453542369298995703886989563609305075307123919280874956181558536610570505367551423848644316918530828531147018961706662821999478867379614557571632269484513809891472527622970938135967093793586510878345337950848219331449961521192693269120461713636677370860352786804561552838870361694765916354416065099678304380947371899018985970361547561368328461008659695374469607665391018885801728377035217986423867099983337754207250974981863000302168600859442229129639666563115781933458926011397870406436479075985786709524876648638927478292156990916649167242007583762436873887412505288394424141287340698940299459113296048651314641749677301266777659625523647960645611751241870724476750378578897881565478533405325049809638545778961563894172516511528419726985785902535757228282786456991993041108169523724266389625766052611073315356751448325880661892605462619945330161819507567405344944138101095177263647204275099486502600423400181240477419058105529603831153439802777516289243651469665447843628079283951550966210784581508537031948374698034836718570120374192899219843006978738000986554694054332752070470010820700898279753567434383874543756016957549911548495900183590735450631670352278549851627078793584106210814241110511741401641725363366669039859284348136241776444849154367912735630298809032322153426664809129948973255244408228691731178722038465870949418777626936588441270219133442930558743062338299391833163279302838845596015476303732930642812969825162704333699864059489524792941675178974033369751632756607322306640304942477954380470122450421544443394698997598350312480874234941995130642858770972053521385335767854592904955957809837423017758156681644527775263353856503999787042797246469520051068325639617624518924655031190052013891834094963739798115832461385137083259104962965188315434141911539684659634818144119450247942522924018991348726082759459207149135271209496058155217836741705470678888792034727042355013394429081854340016314086521074236197329405132082348070954917895225938929951315017283674898745792560175061390402435097944550593518399921717076549495423871961794535807176284277830131403630857892415632288508847624089727556134659056593314864976449469484082453858913929105386287148252649324963109268769263271427150234746837457224402784059022099418466638414077952980062848060982371273067691453193761769994669825758662468602405516322943088309980349536373783024195917622732994841640583177888717573198010007687750096122920482873492306705631409132080538072208623879697866339287161341514753480297257836673377934845154053928301278253998486385569004990528954942673576813375282441785707941408451443634656173424067268059410198269322816701826694645957603210474115651864281562545993200743998272657509251945270933749341625358518696834035905839455564213574111255756689013757529591553337482721685397647610497266434918624369568399645508971901077382764035102010921928505891744900480054633469064612285732762760217617280701514507595413189124237898056652693571177761192520103628242096656170830407130736326071946189883981971899350565993741587020054548471319622199479376283687206891760751770115784774236585082202586398477739034741191188583146992428988829776993506549606370896555002610705023579409718093224488448208267972665249117014035167582978055865826290918429756610302345571569430927166762013305267548950256125817817421598187103344271322370299569719792704301207191478675031290723697253065485208267200536853863089617912123781840962073983251278247475289320298526211464425011599668734991200267157408874429506419945866615575789484373509373530094941813798146551687477641363246189204097036761823024731116535029315376791841648098997040026278509606327620523385752227714360147440499195503247509286155131068359905335302180955123084155832690302579872660636953119796960987287604784525479779828052704736113942632746431773446466393266814274271814348046213091873495391905590586524360802120323444632939248915486280739727206591280798477939731093370897603777807601056623085663939249856617316495602995414062933489197338666782246283112475071780334753752585061151472926926350034613390287013853109000652181221322336573471191415189168359540074243392700056277801245391995882337803534741932647556915180845600408951669488562067985606788398246956001725761081965542585334845705361226128743332010443021025997829480654631994069387518446195372622919774131932940153017633439916588200450837724179142172810328106757623760435937663402376387163342699076108884021196420337469592020137766683099865581181510150035754982896485268498722798102878711663288445335570375150762186883023171584239807727903266738898599339603526459504839772095825425656533356328969487989700033732697943836841807637860606727716619211951351740753862748937545804878403633353110015496373072531383256973225357643592278576074619651450893769600299688941807121963290972620118945048311153145671335456242332813891145732002230045194353665016765846794245169861136926638934044153934188482552324484137303989147768390247921432254292460295191509401154087512100601763903154788295803789883493976535451055986879876044286007932285896528337071019220161044874378134720889202486328039513368623796653289994101428390146812890526174599690298714556265660985796271620413573189654746785117553053661793890858660255707749514566086085395804661005583858535898539078744090860710616291080053194061019785264325261062123152779320244561003148485408712576912089716630288436920033459037856767190748266388321513249163792145697000602178853833019555163031743009999148506853758552855185235550161100455710587993060684359300492560376398995515219462275289034910030759105694356165919149498907919644900707847248510502955935762830390255862738661588818524154579881569643193417775060941855320009387890755049611375172700562428323456481963867478720288736930169989582344274982920045646465354916443165529244158155102608569223540970325309579933918039378905259294835555308541230042292679408921442953228526620794928900353368922961704369732676078341161430033491873161017999875545512822004640909057716553928030023817583845277753762764646247271065978926074987125704847441859428978638378332754178978193985518923178227549407669915500210888796886851098937548262346176370015748507210512790527947958912356853080949357610164368463360115638883122969596611007561764769505196973257607150945957846410009867890963406224135649077027694530531656320213199935745539995382646274543987500517756444605259733232201483740069518286842602072179071149598502642627018551741735319979489883542310842843472226546330780007095040304839176619357755389357049020527060267878226518845905618335012157760206210867310184622031095684777376856251895275587507123984985662160795534179124262653401048278953553776024402523113474107856847928642610132726214019479926614447526551961266797558057991480220086024187599424629675930666692327441500253621410487782782758631203462430049278996551777814284444108853505082851465044438123800830837305219238235071999708645884317064851069825859361104753505422438609943495043865730613694391069544153503388096586848839603389487191981742215379575951337597185094658153895300702550131325703981313899743246821773111831569235433514285917977122903187861674039932875484568279782150435615713543699242188866039109812839966339702715641563817106817856603805312622066420112758769363650689608296812517949801592913556390339223945647223799188678648075304532232376038577604584184709301540066244808241545099975520613265000155771775853732456615006951927095216251481661420989371104182000222644534044821895667335234557035344541965398392232669689708580757166829272325903171202308683395491909936455422933402505867905750591629606599702273251965660431179047734740623679082730096859595716996634355301010545877196102516471566652127572408470263625063215997277051854846108295279629331967229545899412349998312202267288300486052350973329934277790231896006134116514971437886524139336208224145686265553566146205842548960896854477591575500241812003090144748208643250640042885380592469157137117254870662638019382084757808276221002374991659579223643667593461075901708696990423921022344058856805828879140642328990067251412324720577451384708912468378014666976406034644206794442822401865091155476212660775959182674238875173254559718936454301211309916976257899900339045108437144365871052817755043599888123604292410273339680042209047216714042259472773072192431674210690378676505071954296726677591704164797724296251828554677145937872129979598952247067124824631948515222083374631782177419335370044598310383990534603908160806296657372347442672843703026556664879729450753237675306604437826043345390913606596430251532695766871554582679005988195278503815386256269898326415816380446034417193900391847859167722487260658200377710630613595088622383005821217568849040275250627933692606382279713679984024302798917410364284347595386003418151683202640362069408325231530649620107473494653895103842167014063384886772599583500760843297733302259149157083679752627178259091308511644276197783655957343239986572648005163681019056165773626536628090427448155904798314301717554052699740816800503868248138684055499913660412341154278069396667708560757161015913536733326369057408046374868248051833883184697391920637404608122271050896436753943515594117126322889900895318857211572043802167176120481847974471176529490408327486411195103542043762103869604181496726081948832763030253930018521288650848371137170487672901749401237031871598369032003482315502286535805965719341510478887906298884788087842919559364991943199044916790100108316347375528613906636557298105370495491922137467932476976906299216871190485944440337188321886365343065663555961545965333833957349101573056302189185901327921369281843031030590299830316045166086321801118489778928635436501130051019079734193457109668434039942702565780334977745396823931228437374013028974534904975252247688298399525550354105520649648546490838867563631459166789086542731189620816567874428060041179554179486076950828415689488410710160795518800412629935614573395294372114627534147319901453014472596622031450795439371855778911952011738731511372875035150959811128227610669671979079853879451721006545660146528633019275208827024521819620138558548961783713093826345993018116232837773038809879577004621164546642535276517282996276188112516124035818050614260590929234623620157039122556757383044699140086508565863684733043669639867538697592679026037269003586192840817298802209088067176344571836968811368076208405284594592573915477468685814479856793078422985035068532554687449006620519475733772351651244839229931582521999501226085713281157350300632732492378779535623945807550415739887455352288257765868931121802551548058405750311153214477543272562582153498185720452131322123154516579164677823926002502562851147366803074039576544109381187695388550155437111422464867569562333983139825628973324790676465647512397251593062864473580422980121640785486664040219390975698221625262327492277078816863514909382150594181901408014407760815196396265800506260454316209014853990287492002229322024363246102131368605525748576263928210961669551103701368120721228226750523168751636898096307700745698130650300266041759985066468853033735635991409498588345570818937810306996369037619720203815835311339321533425242904717198934129786630292597065704020212363908371540752871691251946316946290021023228944902226649312567198406602576473817881193548172186123173463828220357571775734484082998068238571978828501498172070069539233763472239189643985386222208995784751702821022939577966684517316517702054652659009256350670058310605056400671839625625396473666444705307599342279853490967924240288667397812446940137082625455784222838836139579078814187774352711590442798576050981099633593369904596994364545029470852619597182032645924280950820800941870951805887379040981473585518082527462509075533347421517740488277749315700006916853066843641202409020131302450287726438559700257442052056956606923355767641482537325589226346264450564527682568855616978116348576322800149932001191060661365190909578297075854967525454518805160721602196748859663507802788787294980979150570920624042575674312874147650276950764738989008563207661841575397086753065753460183138066975904431449568564357946825624309320662433401575896090132817012656995438937548295103682248266016191167981167595471644728597270663138353125568738413785902798474575518937558265434056489673372170502573815750919096786696749377386183044174686482642857791951460814050379534731945103041318063216281592659017797613411797885382572636408430180822955975564335519240906844514616208222456661025404994565151143662229129525253363159933413761617524036399317217547220586299981382586907524615388777409493043469752219472625039780610897824854405806373014980852633956486003881094238981345850069658888047383662433181334801172577761139373429533958706628144965102224240544470400523328826665929068924451631789405907257693710104167469473945309589448060013227940772346365809295503618173559566757153055271201724113761232109011584222230658589505528105903779363702684940727487774323320657996057590019923440259205316723052922764492730195592303010714875229555438718627700424918415767521809384359107044789349458472942391368592834262982573282060089181908957163102505854867091388863748874302364818682428446728857075503924814843421443527940268389375596573878769545248995205445618166856654981507451858557333505750637605689797189293449530800634867488160115718966661008402052891488415407650937300210506528236450005366513811607174756362184398725960981002256320505975764074175611925087609225742414811438908238631945740154226930297767146206563060993170267020493416385008431046386064498246400802563469260570312642926779614785627404049986127613367990131321094363552541125546143120087673692114659303920610045324306572554111738778142473849754471181024498524984450144039396665213546014499660931813476192353353968019020110165905088185786140149671629818905743927783861763412017909824342347307704188946013259660780073867993927308127647838534089383750612453986502035479796735165063027153714846953645096706013542462005240118548271830698396157287475722873771841940547880647656340432251724817990805270375876739780666610290998907620786984112976853501060869820260780299888723576662173780267767311187945167479969410913656479947222523481216488096926590877410320101251252391078091320579373806232544069988817053626727433743220495873938560061264979388873499877210443534889834237057051924302269835134122787774705672057553919052791375834161482548599961418610042838076088527081722885998726364469284168173055880817304486053970173547823473165499920160372957718547466202435265622976077291242571416670245054545752197808064778268653572940565464236282956748338259786528539564398196078093292984532381083526583976272340558574993356628454006862740108953821857818411602060843908989915711484170329680060578415302932119876259955185701097686476015441883548246707205439382384279923850989395953843349138882981373290376106645972750714106858621138851924951573721622690360642791984835749126017849806202963654901160969532928626392792040644314038333965344996894134880345171118581522816356260497194553811186918184203484698552634623555458014038065269235533562084743660959344319889767111879537344666973860359905831126526886967201610111083874287425146650320141504289248056791295963206753485672916129997002056086718365312281577325924765273794138005585606208792490903548657117756328101493062775129254391380295717606099745539792125578130272818843114156477748446670008687930062440403849097590887913461318308138448012077934499144884662039423747273422600450370633861478352166650278749594988069663578364520042680159469431424772572167701845745774420284147434162432080947228046080148745942388926584811546444005691429227504560347215622487381867910687241638478925100523116242841721558753059540753966838218505931414197060485218168591048507337814872072168007791351836297340967021917269011625637683280834939114113723190380584782208410009971934188737819920238297318137957969266596900600920923834892026629014194118881038369936683712194840919264206822161957987053081306703835788044072095261638711220910568188526554267561695751838574158700113056441093854881622178866212806626924249574545935553620617902666095552000712490940430033561164954372467895179381427478435415060409201854696601601892232489757425239238332507128584112006561793246818467146299832016258017933051808704301062868969623094270494279478804528526194317764696638294934401981301349068064934039852316050234992168593932490532237678226371356110524824128444953254558442644270224123124706707858840661914165492048891504746527013940096779472386886996780554994706250677277084332174933163933216138656080199554968147947234956467006293352000939883809595193958049855775728411109713327496369107026661591568804170765479466593856648136669179612604446534173743828436977865701453373461803176517161596499436123622679762646004669169175335389500777991600741289044489574859756202181360175314552060778326882053266310881741320941473531939105898126085959171543752534510675953108113950542841411232273368943936376823624483975351616314368856369292107066810562477307365627104332862152685229942507826449750031572910305664211109968471823384095408662467592851297238397344596737838604316919148992643343008964165396683804783363732082419034175629999219413451098421948051525089071486211470213865441277147081763201027827986309570528117003714730551000541227718376078147613767315026610944911863948037552027754212057320409166809248910107679610307608103336949550573488034868356674519600458063755375344454844787954069707687161493911298777035061026193871219700697450589505254878247040411614367921846599763732174200380641356837715302774436078682214295216792326908062712450019350826138978328418207960572829856104286893497861586170328296177694507618456368795851816027654898156506427652151958182484436094132854637978635917907596891450388798380843547144965508991222049825882485667535917846121243607177595589516482390053042110775315120337145080294853146249553581069430783266865346166931010961475841598227659783210382607748564974541094098722659973510482119332529924315121068443248330259580598167408438629626580716304379924847477559199172974136121314375953637884476968682804179723960274659124275347584610596980303468383261408874553726439791375819595802875464771146091223868956677433502667363074063831812175652703798313295743371694765359195203758321103293018557044294360405197646872254360518633018780180686793911339861491224490623298964232202599478419964548118720462034356244026277755742424162289535225203671986418945224003439406100065854172564323034339667185058518271645710009568041052606237220262762906690891020258956220929662990973682094059034774217783253076380437704486206534083348181225184658145373625168657201380499476436341886783015219145586702420310616375358945044407346211831997567281393651904381342986551012811662954311148982050935313815490322164281983289448160073362946116107514049847256841341606867168809293890423156811645804535043684676685712732759928267335373493419458518873265904249257885279105580313838495673035389125966025839310434980018980040670760652783287677944905405677484137250180658511223788439972428477456031748568807976387966715120359515574451038352751039018121297279220582953406250435082107602510246695523603632973807637152106967372691746370001134143370702150743505328806454519938146220346473955364196619017998805575867936251782140471548966986221610590778370521939016512862508315642568370174952598179743111005728760024005809829064076176007331059984044033969332179648986166910047473909402813291335577849087944411026003063346691234300676089381252682056791876204112606137233621998935254487687957580778971976994851353242396822952705077917062910122226224096658070177084857084601857198563051457122526777978229856679649000871335540853245209846661490206129751031779124147951443754290742222248326038075112045906572795343221303207961760828863250690677959952247677661210039702644654200641850031137589151963949221610291396975522751795446539813352953156486207128751243826767744301723468642149700134609779154733081620005670357325870623841367048877998161244145384410930007680301587482184377909515772124939184657013409538947214587905732662480207396971477952244196620984753658074828740844191432624587162264897096610356094934160614490590524413130261153292729611095679975634359453641696498699243101558855736515381944238848591902767144795854323187865249903904934291152950340301212319671130099599801576972305027043058411213762098690498813809692801838471950091743039520122110666986273138810526717696571622298556552845483671927659322279063029340769739918108301551950112411581577789488148960559712972732086172806400554584834901583089688435162946842824360456781387959227615736361152194371306819735638832628920130426943627600068895267361997740997916419964881592464385400552041901544222949239775466375694008458060522720258936325085189584401728618191272985337854384917988357432972703165047923238599536284090828910996472241040880230433609293271718430531384752672578189263022439393163066877443630380814963493525044618848640974563047516460778862930290292039015610975738238153770623612531231382106996973959161359950064104419857626324974100761475364319103082266268222797682193861588817251774541330802977544035668077822267478469236896481665072483085429020671430615522923289289889204594594981453399104619128325496167912547257742432697277058568062562523325488853589962286877820741148661887322962902290289632486195799249436423214099980020848383468583852950350877565528146457615756581868682808793894610101980445701286691681683003052361205273353580303288091238570497328795304571238340544791598745715692234500955943931508016355878912587617397101299445670742604838765093234746941670799614899343198494079741434063418199223987177272428553652497010956685522721869105772595064622098673086642024259453429313995007575427343435870923095318698820197407553458443717912784418601414759596776230484590178799781806387254485689165542177573340655598224913035688766972931506753490663280770809944702895005606106905070088924531303107626821249875218635544260683293369715913923137114893379833823247530946413308403982630674635947273275102199925218926174379248910923992726790903947620717395825919941390073999554177384122397888341204639955206239187380267074265711637588956204400566596841333707656577055013237227863890409184829069035602190629214435826869019816709833126985364409414539249717870702522012731714057219520711560152651191043963011263305903607811176334212423585324221208382502782544684431762539294240083876414012173490401344526326146013740992775783696385808667191703006013031089090107195864632531957806101421071084164634938675739679755918729329219387319219552154199320158051890929290487312544885272278769370000402894702958158421965754105375837238965161059477589620670793762364895407216297756553144353603300210808018841660384683880136230101515142190542611624406373778642340711997072386596707027066070112562087276446218088260007142232824410624243441630865287587133769385850100080749127403619096571084357310371101811690191975783667022193310101107631180842290469537612920635348329445986145141176469088909536265848508016934765880835355196183044350325198665403859559284885591880417676698419370534565755417750492381992806358166344916031664557196722423541996035817954496436937886582105259121003300379893536372372811579973059105903677662767171035691372706274339932621678769599434644490350768016519040500204681591093223348342554595869955667530565623205613904621238923786379295461837984673237739439718665786676861896732281979545769086594509957464705158270080253144292598035116973267238250586298435022937690448134891781518256922129466935788372634873733090438116740437068161583677909441146269221238559862868267654684510068326234722150704768530611324443466137469842994347721737179581198911757367426315499671902365276266145671360395577855847045132435790655426877058357282527828330834425577435989785757507096912387739036300132433974078748372284576599499298490896298038040371756255078628468562566656808743327922789997314122918112618429280066425988104776653783506547231491698780904094943075109408696501922865422661672782683028229611070750348829776820228518363322299108973557300624602851540233371841474965850195188480776607847674611606580916205001969878987521197028915397539544378896629209214684319411157624117630738525605614460479764542702170890929993496793375949038769195149190659650394581218948404970685442259468537252480006725634755372560668666635140125493613752590234113450761842463659600640749801613963645002221137939478490281998931805882260278815227161134390353601667709977338195056593334132229457289450200923107379026000258406274683477410008968934977452443370333088890656649887793045920236068981612570566775949722392726545030346842976024863928843575932104357452261058529145064433789175345240010991709974232352755626846726348711184969150661355299824420113882685684053572024491125250017612726866747241870818513074672869441220661062412794692864456465550795358751554708307084171200377725981739282297082658326497725091630065446801803269674785538040289492088057468608778835666415875823905150155429487231381644560894072879453360455081393255136992521866186428630420874147066646525971594936082125548772099455373562490919171945556789606924599420297434157105815009540629439875503301661040424921797972399534835563506570620719629210184423938433471527004474268603507501782522084780990420101762871920632375208886428287187749591054847198469577402691600800224927967080482152408248574193478974402905010416323767061447282506389298621930309337622309067826136751989458708900246938654517858655354636522043389661441878117873139349253425061211206098530124518593327881529109996733547538039012455991446835785955923928058111262098077359842468317906858940245238958560350456117155052699488459572214629956190991143452714649921359840103824631997620521170978968657314692470418827709461444642877705632249937094941405916664698518545267787600243332738268228588295221886079679887373706305672118282678952965627239681320799457059861887278984374261558921366233621805120662999964595066952864740872586102943559516116552756430849303742161299520670156645903594335919744348161812718450102430105216534614996475462074920070899079283097690995209875717744931951546624331402034359235288181501354350430662256017432782042807074891111029309045634381558551277411003487803100608513410353543655585916821860667011366721852305792089942813644581201112334331637068592611503417705279952031251678394974929752165205940497789059159464529032228371798763296999353691793311623125889604744897587260547211195966595345433516107867493408611501709613257393583493812776686026792275860397326819027693844644279653423470779055852454043050382604644812691258291705821712008968123960571508582882207464636516681994362071198475336161815447508866694227891806789247977891941208840852519494602891794888747177419002142537794091202890165538374340089956010115503938286303974787974580332873835648442935286198310478094946756404905301133185194333796220740986975175144649228784571483453992560723715090188080407254326181898150442072386818101537190053422737709171310530823362935184678546712108154394333333528709023723208046216351288025280175558353817701635426542102122923591395355929555956927810263682477955256934973737994771425123942284454053626861756876954163669170666051546011846594395306782179998616044494173819941418042369245463336174331898609246386900789907098078841679143178692687652531343440113713438039467715558904381541468024378631587326180913061447910611230957461546224580726191542317195614064236579873141499696498130615707368603838951047820046940819473942396281486945943884440941269046450175456770960892495487262799194314135691412922195103577646921131254860637821676304462108615384951839509744639275160240052511123896893482699595069037145599197780636451078961240826496670276095627362896549247992403024520114519476517308347652779448565847646388112581772968605243873296518861008068576731478000481722577081741127245545280327457064615070903406470594215985129600319400847031488432660517502544541166489248318493958954614969915568887766228036778797726598144866746571168996534352450592049707952453836780554337488893589088285771944620065936187660420420508979416907291331237617099653588933062399870087210383489892613274684317336312086847771578527421533613009010108712818717268756191905132047945266957633885869481731221723991171229112520159057131160180806387116702250400638753745755905483011623019321731590786359242273551573876460300959350579152651404442909261536196287343896460708508824223022702510370344752119005630106545420120627460013395889248707157646764037184165400314421216893380748845769249506278126120247135196313871243610562128392102279905974234746792321798742334843592984655710658728331858435399925578647614562833651173965075256322425093789422828169199930038824162891219557956453562856348209098045915786039623673735409106988024692719504491999665522234956354036321857083082136223787173166506861540235609620177503977569279733419530256970701453292434809238551143459310251382286081738141342086193372573583844132095548747238143580175796941418606305756241008396300518925761664522426053675192865098886497468937006100693002117842213534828897179252097077217200378692129872116487934109465992872865588988823030641327350972554517239319749162301420587103677047084753250106998105009311906904725520809626458077131625619823865737400318212503458504373350756871959144489405680127579252089514325773531202829478118200600485160059178943080773962764509701863111797016701704000705358515588156323484322844225001176802806535702312709394600830306002341084475706956681484049081704201550851346516442288958329236010791088851197321156814928823190169007004862445869123391778318382022343376782889814924949982346984382299260087598467174873172165298730112484426072938642177519314698625269369259002095376257131395829712483365463261181823071653926073800105027115399486222365542352236438373832820535853057147903287218537686448167239943641102365558723439247819320275919496433823991321791169503714846356228543188777934530381879576305918054127450095754644335483571822510886091000577957686956813659853713097479535705433566687844333499817828596161328487754705842397928609112896718401248540502248540087517227361945879395073673624973169195316747683782456143657341759648869805065998899533207451880583749898670900880749048710910439129719384118849734501318549601349807550117334389094912772285993394693107264630131239107649223758066332534397732617299814253909155509655710712649778960710912686504697983791686690872192621132641517926026814938510080808034832256778797752263098850232063448383488799108628237196135899375556704011434767406040156713573381868003777797500338636285529080746695366983848486917904890242920839413779900258085938736346071823643433387901303575613011820574781509066575985544879496317445610624765394692909201385062651041528214813627112679653284698453449765592208335280094510236816250201552929519638593145826968488492549630641445957645552573294320214312452454192659798103056822787625300093167968881321975589715972553016005895916564427754826206789334219550620403816063003005336407527033992990270056694852323877134832667157051315020696495288339232205943137802383603525361797838108084620762196083152674206708572672743192197840672240218441754781012032390456964043370585599741698701055682092097329377364795598011409944313284308499731750688587906992074908536885654367297713895307601274261541414326581996008724082597427558021202124036899800893742122682187824221890506146430297317951724349577600703720320702407638568193718938940026187723153382913535076810942640421388996388043325925771706751459229030989887475260589612086923663515491179290856588271281680045367938019242052872079404019951130556778810299040090491270131434219485457717684209565458085091206685634008014220873830326918468476428183066445571386367114373155972794456307202869673146679241254451557082419125445331836148492250520186085808056618129577879415730610856585788701391354325320376919583095971333600084025221702650575474016006955638960367381286081643406106557650895146998463114254934628794953673387005385494768900836330707588567460834976802343965965756300307194930526226419773103515880403013286072872360406943395109440087545045932655785491000725218106048942388501573665698405652844196628216841493127437371345619764282313744716727086019208883973697481219125223859201906610598883997701406427192998631082833213987210864396274389370340498527050911859964453248212217212359478127594018849604073903061312071509722282684268657176901680988722768315963530451214960805167324371697833074393610068916114893825154928246946073874255958532480926317827748231916072329529857231593935711068301358066796843280256078341498129997314969073368327296751634256755368897299598444665006987726920177266377738749147401223705801796020458604357789297278644383148352188163336765655229670599810567598725128567519806471153876438826355526044785939048790311977264099854499066323254698339459677903089472128158417479977992709042664794663541833512385612200248226453210607016919408673593213471435719058755553350620723479129923367438992909405763410025986899553709496811335622615983295964628513432414779620848682390161331565582311957688601904634496742920681162180904990580644351704463715033790515399107139901146775467891143002048391392909248210318365366117192452703321443852747306672446819402030212264643400260689552772021012182895956357304424756156193180671040562573656417605471706908254986130500219074421699600061064686464007487899376922663266429195350938086926728000192847847871433433924841078382284437482870459262102375540364543982256219552916981443704838748026284523084137690238383628904553212677582794490943328375689007337549181934973391550198231124059667058041824933178212443794477847202154247779308456288158935981357316278386412595154148473037628357480148158719506247814855615866911654982614335699095424653579497683567326943680089654145783700861653075045078497551001740297845865931091716330240168824303187952959565525465222686155504493086060947299985798359850382828029215203521660210065102517978653444177555925782724513139310353643153066577873851414528019734575260034491145350566056206061488163543914911944583521331837010142879807487128150056756920356587860483143631305043658125267951715313984799288416815798658812234579766191742672380350653073387584398855202022944899947237042252712476399535755590013652885334096629638813427951377690375925956831501636207987623052821565350295706700175295095293124010695042921590886493599368660372142787944316504963754330950183872967550502930346041753110606854160203076042839616038895383179244499438238143308119124250945183655534513921483169568995759846990288629053953330180130262994347437450099760044660109687569045485441103698926249646185046650784328480932283040896044714750215933529763935178138783503761805544433021315418830455099331709438235864469776683305847723931956733257747258119654216476661498209650278825692602707207952697348164288472557770887992764565491447018940901039408770267313558663887626526921564081126775970908737010087348868402459670464063112705064178801813006343473462179612226804306844610485091268067080719644586402983364458101842582265282671394468231715606897160511605821374624604526300901899286227501659767689953581862296582773693227357361637386986830362220426050349743848459070482448659099753078440662026039565825898896411505671939498384346879547261788746763324382973913204694794340356603911622124456789293537180610603614334680112138874712455118697195158220909291034248434089252119264958661409929277854332461014249212472394561764630682158499169788827625278982388104651009338687818006371954986047703775449522345679665894870260881243658404668146576756510324645260758016558985444391660591649244353198063262759184139391896256783705529629348533365737463420992857114667801397109078569553310424759326774663563992805247961468053848819245162936536945430829419919813804430023332493238504544330424220098175563664147037543286359871950593383828465900031011430078082500130864491356435012627700378021067624661816535764346704811550508608738738008173315656256198334635569909078595593417212536163352919869086613358291932692351135820861806663990503870386152561860238455118236983333053649231223832799564193908558096209382107790874446915401623982458936104230432629884353070912746395710225285671642007059846974088978560064090582119298732880730386000041824053651331142493768549120359893057039027591240168732113172188134824852040512742140493343273565891823974584708088244228452076548111514211452550945206524506664016685811044384359565469727371829784522197257927101452485635077311846217543858306920428083873741431599469311510713360278645962719199297796521067282524015415147807470609298468049904823818931967613177920801881979719132119395730238152157456258698390576955748746317686419618256060069562505448652834163952067680667427585936374611594796489691575218125714454624634338401223393757767245085590784942529895439463275601841007609233548819393735164975054387690746512711315386566202973021632741559873834519900013552260830275376490426935951865061813747700828061517230379732470438134931629433444048279772288430410979196221197950022826297370580039268351445429093761417108743756319272721001704770397472193567420241628577668142887146940092176376887177160738891964209778597558830076459279218939465769261661980993743310485252202194336107950928462353697512648153098344084575493098096810212352311148415457619040545155819089819357328246027043476248935660391224123724646148716718646347226159800904782236592987454393269617984519499243334605186167190078824122884415892245109504868849575113939344423591347163959894315198015042581061903389837236051513611309394386868583867450490063706488018434948257275058736156526484703572718838956399919345221119840670648069904624271792565893426835695867569390033292028514622760461930557404420880206223376370508740230054483560941036465394997414466147969025612190035880686361975133674494682738753837875759475801301292263481888771177492342291100924937458514114469651163706831699128517334040252188006311273879629639430107474362404672449964866542115245749528868149254575833629815259689072129273384054159679593391326886380182321275511751983996793312035024999617950779067061120351327616608490901286101662113695308952895099080066743837436679510869363268682059451118930167877571785861100208739857530364732813783346798597988674522873384592696983716356004853628847315642595303279568463945972027138171073583578441418657483825288921818970461164322418286102839838138732230201911693235896987700802031420310133728344638909315638485579516701984880249975236707053733128363723953607730987544643405013249889714252690904025705711812067868775097731501416944832262921965127554443185683754514459917054259362266827624679513306056788327283669151691996484237683844225827175624130922074141389318667914077354177377987122320004865410300086470610604594828465683976285033604480283138433540676705573632740313763340669871215599098261830402855219624313614950455563918640272167942181923374374557660193475856909587664886858322084400879954284630158723678573801624480381142476704827770189315191981711116138010757546595488560702089434815179419194591585361059937274218192419397165854034926006782891974128967244992075579872683687389269982238805895500767252419900186864535627279065654437091800418323421266441676176005464954353116949212724039080710901818500645479134602860066974720625450510624604054274205470152409987999435701981670316539804088060235373285611557362689954052051698326212635921408745406451029470584596834003929807435841230776965855365048838863580651418817879178665158187206737447583267736239176155588200784644496680483025316560785955557223919822925412186587674015814158195497467788255754441217503378741591662590043737328602436116865765667179175711926459776686015126142536499198089268712564100797075328520190453341305732418543214544999557643491611208181464070616480263912298858043709275726447987716056509906188975793415333935430255330397770489013599998901022688203641534314681831906912683429956657266169065169042936506324910265684547473901123453262450280676627372978641152752689902349577846390646351914039440419797300467863478773585359769235820617902099710692509670369173373867962357454180771050761301132431833538510196850663854807841319468193259097383841438478287092695116374052896678201077773549551047859447843318342201395963968151416613030333099791852621241028059722513122150715723698069192786964351351975955590563977469883837317786640599053131861650926131611758759141749610857935165968247624800713762203070071669567756338225726170273713454033575836375944191403890018319421375294338577832659203906408360853549361201706907533999198725036015293126048952537976915935476180348441186594430136962457208826715165715148053198450099997629127917917139277053099588257237907969503563125255084714151350293399265905003720339217394293657095835017186163004309258974284808670263999509557942500325331397293441380373385471579887670092012756343280959861085556391007003501722126255799266717825682388493268412748849168146621117236254540373898862360798414793831239057917342116514422770157656281977095917824835572657954752106377302446056960544594754605678716577723670933799035863756262629223351540474224530518362513208507931152578868764421631290286438437299525543150744976586321261101722660239027235354978316733057949698986854940262589713868361320739038078915521943455632081758064871648826243154240574750904996066411828889543875258183720014694247498300604948570042499302923308766220539336016305748311771526941132772426126622252420721219593833034231728059150213957772267342133097296679282637542526194546176667573411883247225733895254818283582050395453310252976816704593376668618548733174641494625162964780199099557825995341639735302022223055334986409293748358913546008034833386526459571051418805753576992560329828093248882031232732971918392999968114079983901449962574175789717326706276300924423504050766051751195751455511557937342446234607324510097247220166962407295338711314110915951934249829603574826051726227346449941097421584636458140524886972949277322499122027539501407771728653015662184254142818885690496600012847574404438687958306308607753537970752907826225886669194243022944678300295595062340692429138447022613171849937741965901643796317113068985921296226540237861484604845700443243753776816752961403817697178255807903499835993841013387929900913680129743543971162691443334991737778634828571902176087655717269962916914856871719982651969245187797475203066985909673840026346162558950845169398619316030080439681724887785605022514357641918123087751085911922410884495537036340495614467994815121940992722126065572571337462131386589745775206204504578681618776630986326742115986283771887685325176457777732604056718704214305112343208903838284793373987996958839647019334875797377015623786544629946739962688710877832665058987400618136651264873540479830291071809207434995280316003332190328438577790628631392586594913192054394506069812279225315342443424728634663211451623387538568677564275101467953642019581402697425214584480313729697145051764699739815610662224751645310769547130003836693469711317180663758823470428772776883014052313542985524749617782490567919352152094566791691387015057922260660377977997742192726562498190817641847544186708979619072968288901334352404437315803555342387667810110174851084218043087596769486633289973779394328947247977563260496873472981898360805290961403360904823423764238578804035955183819852497157235181796551761301112012736924331504878355887653337799370113788916191187256760878802296439485155712763279335867543231975348754579794450618226520862131572060725968041427747712177201416421158813992912409147935163741159419146746755236997713107331310096732529138749381279657551041479018192132211483381243486261912490359936769633705553674719471130774166823406801254245686222814631462153419902303636517546800616301212778637062955711035804736737881341925992291123238949617911622375894825485961857196766286562021696164071096946068039009361901453810984624436994061173879967509499583839990942673049011480389226372172233790121720928748093988663941979763185036334654776381469836751629950268856606680480973524375113465443075128556204863032623741529666958215761950300697016989110557213345365404797439410229162652052522496309849364319499443937137812700063954330925767901245154434994495927871198975564733643833443788483755784384557724557020904321399476562916954364118776583031494966784513103722345986070367867811022134551865039050393279683834117724947669378128286833975351220311899955000764841660012051040992494353999883725774756875592686433372206642722139555810627908229731098280821417146793137039049645179866138708386160610080790579312423338521155732311772833021761264197739428662521159283454716864154629266820025727710198092030968682400670637028623657225160555959251258164336097672337815230287651799828251520576869191874575675572627765310372494365435669821499881678888212106607743606686135290997680786908595079208692764348462199400897834202693921110166931072976517543955079680606958812678244835077417814107084914011280005979173382011550834246600852860142055997460986213657560870011599857475774512961209531681955715305340919909811868471816313093451948058902596139683022364620231701809006894026489975650447706510530876768592895694592532338819819165308577969130794665472431550905669663077669678926287574987596871907492255047204857377535030268118517545381034280607596459302187707202690080421883120649535398367072782645923831901671461780223213754356325997790034678360238539873115265692125614182205433658029284148529773039567315611109137825073831498752312163893613460810918416067947050315356933065506224830489579696289243099988315915548941860531233532634320336351345651316998066600256465124864020005778844406212632027170258785558291149126013689949121373202354047285297217603881424439384054914790789769046399635493332253355472748617527938235601382187115890702385321621878411350567555121336623337425797774675708733698733033006015753060785615186861917244424358041366306871828411355982248612984600550848130151129902625429230732831453975172092733312289999683790226083552447053952346399217368246921353144549323746179505513354261396055468905363074830285177383181600149373777276353099430454520111630523146489298742898960491231042539689031674997673192615522469078473250473312866977840833283508846488411572233558214022087568600885733703890096867370343590843280153995223834614019185768701170815086654747818983581828913894246121977973072822716815468800340748471026670575642670166229363239017112959677702794785292860347233589367480022562575404166088331521745583933291680297596133400791670821888062356040819010289531153998555250981424103487117950997348306269833225632330479884144139046411490528726954230945553235258632720633632431893753761482102279468490740568226493629022390534863124982098290360296858564349592398031993701645352478167372958810436034158266201709195629637770312792737485003219757347186100840443829062495995179450249446074466893209870174694478581970662384569119709450250231538901946318821723464320024208071543923028748989884503487867550267862668828114868052353779275026964955413123066081084422453850265981363778166134198730119783308199463927816333013474365342447107004401696145539945200862854283953063512567248780142298719493544023936927062839243880756326090307217295540615553847344627385860126152324351543948117744757044191974098112146822508697437178281749329671264682439781624384305960729796126072856092703995881219745046703721339540275583981144455310049895875924619416568789921781337583175029222536973217772534657038479070668275429072841979654199201047409916885074690177707393252741954838965192781212185567705935760829217512417409945459014823530906616561390434249942371337935339884249222784188051438975889981938272306020658501104934710318894546481103925258279379695754948671762739734453172651152193015729366975114856578577039152065824239912199328809303305934363972463772171891539909428697282225152040391995709996920135257693649838166144826494536704194330645608934697398406353097513735606186361667406715096003928491085960070364157192500186304906840502671311765750308364783860501068470628561524804954843234128814745854763055818595946375093004773923091307120749603561314941605116630080477060543381844305921595852593082296716511793031712079989515413028699236419842176353319625193132957702329127617360855650033664216898444401645913763859624397043718678604236506319612513839986531471917264470166629903108289803374474452463793087270031488914444934833157441080713369688800660500677184381951235302689356660375290775266371394456641055593070383663971281113137353289746741400113580153162450311112132435082937369025169665336752731961169835300244851130100402267618422770760195851480233012060730469719570402244367629622849155619341581810582063911987416956169679519562422972942648934274923476685070656407363813644233048584698249653823722193393308509240273444661933611267935922211028105451739742416770382477378051104314011317928816260666628936723425125399514204609207034077565757521407003567424987299477464234121043527180326130163594486690424156216854627930149873085593907569413687140161511484307822637222216632649145207468269782214172881755922282944620113323277672679177246015341390794194142139363890980789873934714335938414315624169604938684932261590958193872435932620842422484840733048112127221824918036638606363712699118508176139957778558618045047856985449768784569683571475062868912391424529428290543635621089798877006960629289212772489292897347827143187867393718524969134922858454572075148075010834473434110968213920597432812214361213409411970786489633045672279879029932005201031088787359976394664371915063208686654328253344689497028987574687658011494199868168966673947593653346696102646272110284174115272782711719160653712429028370867697950311373719808550114102448778417281911915973381610915977679862403924673813508437485023277893108917825833321539954346850511988708406292928022638600435283219193314914228143081084823124594963956612646905277838506876155888238816029469845105946884593159570694504439933333986507826125714543313123084828732612843727357490034356130237947769511415759402456786334835209347496736719075287042578262034415073023236841519429281310653581646102377606742490015665862320834784911568840647343623356793155778320349187413804187859736039991230845396258881998216673930563663284208021581877538852647011448545449015774955464552797708741606319486764182091425598728799634300769728563890947070400797815493245231653072522312922825477347695540389316863723646167003646739598268253183455419123202555980140030416931266695812738591985433906506319264359072087088201031694409689340862161376979446530393454509748092671463868429727324427754232563201809126006356916866763941735784169213017247223517687796193922440632266860743283321306013351159066958960014677416763958770929679697459417800978764028799169046138995242140008085435855707437658131199391118484252450165309236172002875474596094509217081068489577448011467916989522915364694499084528310483740904475065457870976499510944883107236889897558848283377175776056140080452909024052059321404517169033180125209769273555481702863735568203567926064072673665036158376746827842812173970052995061400852414276467035793072956498716938648592068987452872477190820612008377084267352143559154977980064920539884214057711428198817856059483011438806224887671671224373316939001977273490542082801656193398298572364371694403159675195833508577208808057526829521567405520408299931097690191576817429967863156164185710571558486804476267331572593031223028481635775752750937949159732319770096000072662977249917522777768966626149281719438634989188053123759321567812640598996791177528518043934234209989795055481984044144844707604096623045884883095758238137543138383540694973713931812616065287726348795615213981461370678406503847810448834891287533712686499103950059142142891345594045494786478156435128830388437601063573019192725190636199332422748589377731392039178763110255360923826054195916063897397803876142513848746784991296875286125116884421722563313142903380586839046361041370865206012667894308673618178539405360637143888368113372754805349442447834925642290294014071849614727278798034111828506951677566601364805556163580974230080282646867778818533990494227056134087097955877918777860682820140495078353859013206077841425047820942335485029110336124465950466722604890762848988818789659730364395981501193542011607508143808920759686002708125789468095223577507093379713091654528414548099505360755217326661918640212381759202239445336912318848477292031075550022658531852847305334586572366519541449981904904966143346254814896833451658352691292736311391062989009438859777015734779886894042703020824230682478696521925116496168181832333713704018421286528799903133939686782484872560801634053844457277324727023748669503942780651632090165626519311683812288069614718407040734277704025918502571764132109240712696333017938255317992353710724051969582297336584562459144706936237094317597160898055708949917980990053896318618087320015939944075930834203898676365677481757558476837752522907062116531828836668159707778320887544370726100980642931312278904881293146411910400309286924832729493782520283427575830129047166885626525481769554071147958091406035917144128109915053318491122969420574628650571077284757754428112176040644602956693957693704106421454637499805495679093916840640695894337794486974610433365127166139177899562393751881863801536410626226217354884900003386674862982117083170898918801631434058542187313727242055195918751854134257444487187828136968741366333413375655290918427443701511976454589987685957087606488553292567481715273072041644402135938811285231654836502551478625356341415580415199124350119569215244737411212868320622363262269701164953642605962815076059758255027815911549192426860087378572353841019618148365350436803914199561587042455517270082360664122434994490346005471339964403821987375317358992266745486454963763908407063829028736116873462904192482610722355084224183797400498534946045132784321445288312157586675663080526749260420875354701494160152855663687865233852768036343322672716771354797532292863908097122176086885756139824796343207816211958391508613339763466126161843835136905211818561795147775996240551800881643446910519806684380773773295983432439040385903296299945955102191260720585791520883915987040058572304242328031007386037905770860115520728523468292414404469234601098728197931910382933245124768981922174343447497669589863924272976804214292488640663482136867313243493222755880057835936038918643106481674746591655617024803606608507669161282382217855966511043244486339547787106524891129179410289447143369479938106951667831317553658168594855403199588680951488073643411300957954386514889716447444639553120577753525611779359396306226860894550677594345636994651951569872073963440135710120800133871953227445157308572379197958679099305967188232663489040084248366045407260503049965339737303727789964132664853910050321281246987618344833187408535133231437145828358473664645652600392826669959110384853968335186537823619474023066197502820448685798254566222515944563140490802874367729121149602512323359288479049645571797321045849703094140395802595198134796535332715058451928976361139310271251967075737781509630539665954157533111666785667354415736200982918976182838080559306068359221571018920304376732287171923891114420968498187762004080031756343313894315907218331989291715097040660082879762623754983913985451915604897274750188507193681903040923743560859210403636199787632576418475465756257718449555049653526446704445132401446365977726539509350588876661182764661471440077743646124408992065621303621519378501515323606548565934277939441416758650565430688583002163713689926942637778542065075006372656961157800520403796831630233525806991730280686222443640361386459978567594590942449486176142579387332985713280455012380286584852207005252559185674302981689491618805570442611239875089916123377012214762934092731790670636142769343026155115146034184093034429411552439843949076445999886875055380444524256328622212044790072251926788037151967045151561235637564347678058567205914255574123504122311919503767638250212285652756048361102041566122912170597667818903042115013570860026315848921347102364480098129803088318873684254800889767805099859378123352942540868262422255944961772172616836989605765441173040972708167709872472169101292662314723563243158532080772733634293918911593344111220195646000658536070560767975074691711466712138394071878262228283876307817935164246019037046389252074258320951463900589632843428353510779446570851594380864271627579673078156988603296040799063515206475156028368825414681964239462526847542615844910422785874007998683252883027310949427852876862061562938452429076808751568403818607445969947344328512787740175978644757849233171147132744893225086220639221535576046779741999056147013692996513791827461844132046948134777544460997917923582783415345890054110674184692528375726297004620506027990564682816539703621505273532406716382136378011151390457997425589912310648233252946128558491703407391361651508402376641227395593903093336393149967420022495679042494614225753569289478261853921532041672807533932855056922458104410817550254606379140630380626119224292217345277288811678290540820863836478244883770406771403864537055022304987338727794548807535917914279655973583777542303421980574811746306315914923965672247930385306164395577266372258442477465032977809432268668808235601295644041204739964592369992750480325676726344993709215881860466458077000611006748666459136361845412154948801416152206893370646382419823092696586925929686137280804253196540262457554732336966160623872281401363611252430922195565081035418089588592582620927489932615308480479025458077287500550082048241257972973800715316879426546321178148873935644784749860360936964138040496083503909528398454390282147510647611211138496629357976733739754738311829079992515853795595396378760559921381849458668862284288798449767155611222430470241392665279918109281178218236575123460474170418523573230577665477769292565998613868388858767649851684442924243721922871314592103719049444906030466276900956734081957294477183769721112829375636591955041292402174505541852979180761543987856487410486035341387791132513178089339139674154589958103318973889589824075112844527712761601678490094821859142427626084523869840609596329802561332071459608352580941257712425015044785333622171632446826257075078948494532706914154458881693588139538966468994520572579320332382164677133303686448405421213394621864518568693964828916044356795537326944443008368346775238359575093562775110517058139034573319164206246776090793585151785013035304735832935121093217999355746008682563662956700123613915804096110419797253511068953928465574748403141070809284923238244668988322132084036628873427510010953687710078929436390135654590809143835956231809254023687706368956803147014312760807141685831539177390148746919683645455252078986896785935045953112264272743784614290694428831643224485353063105728058944404130541534620395348076661354355179848529823161746744304424628447582673421323852797870973131643461716630788557081791553891379194114405037124193600346629707141022073963025488075816415251270394604418834586914349202691468258223618827614210980546603220847236687290575648610727192806868174761078577406846885193880116640493104808324724272284561093798306341211114361208981401157974871296625856245488913315859352043575204174852641593073526196689329694518101671340333237342917414997431143330481659239767338481425766840800901725917886307125776522342154878929582797736478092989062939591625652871071712836338366474072017317081569838370011306963888200589788954429876676007114228688544787359674918520155411613889993329905712370765774297371518778191908216014086254551089976966551394626036700251780437433109308697944552607593160700462558129681564284394279681973260728967230042073582348321964127977952983074506263409232660383740074032317212702668112364619084612717909999388514503699475981755594473132723966522569211896314668012224773131026883691773633039698683896906545168825793723275641423399681781595362323388077662148900652311318691376745183521698988559749136045473700920170935183859971562647723271611052998899680138383561586254867543578674415518331096562315732912184348485020689857755015211213838143255814045511612448885889156574842046344702670029838795865100126047477824910158924130056809879109126677802309482889842197402918226632789283063348577245714539961937012125963603160871989053388096664061348812590887558408289806766732072674569858388246573206920851628020510233550170362402816537872869284856985074223586631350352431601304543301518915317242846400866519212668452234872578611759503925934014263269511597337225459852545111571013327783211310579106070363719712272967745571741702106174878883953272297225988223065404026050538482469730142805434007996822862902824972781123148018589344862506087090262344344072730160763528840695564396287740334433731473752880094858242516402322944520411667746602441290230786659557966092544079887536086948704530229801129812532581970538784033457267999876664823895786213061811021090988737340698945716268392460545749447918172108866273566108502153987208850655750834890686963705684768084795040258293629854440376643618931816166962931977859430740515717335772658318221001221534624552874838093952398765327068512372461479010598958393129179495229861182474211365199967112858263638652703386155201066984838123786508841304897613390051798873029286988319925462659886006576199626727606040310919096848597895212550978402618395804748431307354068297734728335501556984665128224345005363693767175986871243921722667961102300825237624446707598740977239465691723511702009688608216141596299903447039822434824417128432177621151010829115662842787957824402345847026371534789696826618216291089873373488814977833184357022245514059590580734034283325871227410107800640915146682943613573623406922066942467044531819859471610539367071933623589776741288571453192993078002668912222029380462904790328795506500971473966708028709438744860278924217776453109339887821130492185826725658668402455838142362562615089450622451670542524638465997070885819175499018361244472524556474362119445743562834844465739595260298481885884492906724438628249613149447413674642734797551898135287339482610733783015388030832745062908678155592298618889771708365337266660952483150656413560276632320691995731163793183001176802188205733649876811987895978449693075811017901801771214651723274934507899169994346489447083619226970015256784683795374548870599617256162532732275932640341944678496929107554330536919603935048853589639019716591400260457778663495687117351832393640817320819208700994381336078644580525944384086718645685783684467862750274908875519131761687031126324124447766128197669957767045220161765642262787607063828466999422154005215251938786317710865795146686452603669065346259587454310650695901565188837371583268679293367768212808613964719717187325141536331851878795704465508040482621108004228435742078136325902504345255115171214144469772909660409582199300643995145151712500446376466048925468204173025547401555337651831053859640477416492789672546556425955956120757863009906846480736899908343831374882796871040972200777269645396835340000207094510786131617430266169224775730032463270814144105537735816720032052594289145402593827710960944766395914317737039263476091955208492525688087015269548243942434733026382684577634190390233277616061175603062652553818666521142223584126803379510819085224326219659357350026294761745830510634100402831503020820118745807194161537400686269083849737489557600647605533382922663308634922308309390751513587820340444329394084156124825333023956631983267549056226980142093497679756148643235119259072815566485592877905863169162437305497675539404351839664823673009341032539258178820998177589181319759088209986788163566070093373093467259162245503249218643119859528704202033558068936893101624819250740119646284859901281173024103224063491424147606516681974342906462574607734393889324136161244580925564105473262682460933782540581371431010336111986725634772507711303637984856830878760484938380687817169884035332124669070909790210564624292715599362958950266235851936421813217681657514609501286363379120083838839453603055498767225488982226597163679946616665788164263156177033507995727768828588536927594483814786096747242087073663752389269954671380681193067925310991585162139395569035108265255203246374045952953592571971795375782489283692110311050738379251616628821707642253977942984353562170050726635385026693770411618152391860774419832234654017863818045666042368683358427977188760552602778170844286447465605488519859493855939716469366308237857805927767753914772391311607367654593272281804661829983953283057515347645510003118029829209500027599879562434802911826401528183107981039087502667093661793557641628954637522641431725034675300390614902413890395137496976882182227845957036388974758930950185462043014019728390924561606877878938300230433810913780946961405333209555033228587272390515597112650055660257394505344183057359433032546743373269664813621193650282638016416089399322999576627655653605964760053460339080567075832874588377403204420992312155391895387468958432275757882641696877229173374793694576536894093340292301551767672660676218695902955633733690055822063577271795713817522706675714799458735970323782914877451656008122332664747026392406841664405769122858654274750906098150188485060377648480134618324818661029841062380650347512489927180409608390151794609751756625059837163002983446209300913671268797207145788347852014676589041027385824423092743032147637141317632129985660953190088400039151385598966881948094958212727204807481164009494413440645889125536119198055248625522556831368905562597035370084592673553242827653441016928170360279646067925596024994250251116398652246963307763332306569267248155904265949494722837974776240905225348080119471323053304992839524250432768253961637533113839737687984863580057309459674785895212567074757703346374958631848474996247643287387602750753243544077590855166057516826100389830975040558484337267109656669671082139578123118497213186884364411959182116162661215078424951559600943217412121149871836629327752121261659005265233350406701435629856077176223164861471234770164225607176953277625734069160106620374344635907289542078745984987219361590584303654367514797557699086204911382289047440541922986586287245071273540311009222461127311990862771233377778140580911041306493518637375582374949933334814709459277218569957197154097291927070842035086017579398151505507187112175561558369782568314390810390844800610954653669088022562205008498942114436854995413869943318114529406009027089070478904994430904045506678979370876050753495493380672593288604933873285562249591697158812294526982281104132019023056544258983742521015784344777775709225891651379757741106479669836456409821143424207489488543066411290108501542567287484706300431709973988821350967464790349383241878921976643798281864768697683507673012918266367291102491075917063996640473635381683698684128011054641090295784176297215238212296059466047037426314010290366455305046515071235163242623684818888962584512768549738079443965561703892352760830649730293105597359591960544366172305760120480412836621469789056127679597385137486006245557218940056320566844403314387032225147377464442387031617146864121650336768687547834269396602533309973710181754366389254506619995050866048371859757208180132355344495507506989831220239050455162276963461284476775375123986955428618470076288546995390593866896218993090646326163374181017000224554841966209397913830037593749562621958587519508512202417953176978184476448547556231704416536449963820571773618200822053438608160012857173890938186273849371442355975434491439709834367791853322591044621784779449328136048409963891026445096274497762712436330776560153162272780776527874098303895556538168676331263246283165010770995943446027167076936410837966056887243274037529922446582567171614244373550070304641851334037660349049135733377454022253993583829686203527411437474706775760925178493014286940381915305004506195392272411708084739670272821976291112372053268832648746255732327816453161136836104653513381326530300259723454079203007097093394168827088464720024559249152672363713382712850127752280194181149471933067105050267517021877998876253297973422545063393225124342055590449172962714624940626553290728369378908413353827965796636067400677664015991159541985867335700878448890238393650172476857269184161346792410084856352651803816818288353039193731902695852398969431164922482546960419822428381688644706533941292061549992591707154101129279008793915712823682849414966963004104869300389316577455742028506842074262503023156440334024889137386591725424679871065426227883120955879598617142532204047572777476871265052174367148193319671571245233937089257152799926385378327859555664281376922496771309358652046717614412202622759740641300365383560110971454071955578221662484369271365473708384274082529948010053937140999145890861897074218016570323018003801939737746172995201850775588576499122644590676464025407675548096451023296065403147956186768624121188167549816226393528254621415803697217381231888215792223051431910381466695373642828621632410228046802370246418919678606941405722287770511014133095921945700840642193043525426324613191930529715914931106396364602722199891772210448074621543154385417076675729540894828595185344017892180958603289772732162244881757379120840914431553271062818216490240448086332127985189431281300856057860496227152940924904547551987430544446755920963949131266011904633524960721619527713650378032468996950368642210308556128259124336716416403324098828621327830481921290158930670335979367425695884822080945990590325836136493771303048109197492702000887001595275458376311169243780915046563723184036647494506655323075809036818681698678284267273524779587591213409021538666150206512291427592766611810429216744238243804668888441211229361123566821120186249790949028947303642541871861187158691311006200421403200744344514846452353498444667946549975094684191288654349020661492674938589986959324797249419921260520230458689660360354147229722455264425815935268995928283179213620516621498289679073141660292924837677607213694747740592594531394087990293059418582840632085426941038924626850594768988966385965124885889112214864744690027419927315178646262623717601396919467378254381852645391943753415654259069049089663087142160118895928992914974250711507622079379263283036490583254006011860272912430883538729932171491719305453507017257847916451554562443515232849961717602101495993908431624102275589506758764962904668053126755850547467162112304328958460569666664639070173319741209893005913975473694340761286566324118305659784396739925068945587454619977498996717416373820846764146695665948428741542380817773845400919621371841040050332709235417263757754925780567077756014940912296444941784147606720795573457027189144734176102569514804281295843103949614603683254643448321037788790966030790920019895212882197543960871450179553151883063301690920367298950201007077809696822200938462298871299212179672205400216995112639492153400595169075829070061386273578663764179517729452625577229280253813974909707261300007504002210425187696852704767475581289276999722462262515718332817103839522186845720539514554996316133505379820154380966794537923796397695572194435525257268149792838866334546441990302308077929984662457895165225032905154500094027959057304089354551611073700625480500230819795843052416301032678316282074886623955757408607998496583334049278620603382619159166077972478603648062597214805519540244468330408899826523463259728159207772861157686392825867570639016336067647111134086022332478858192700812466338239399477599165024315622974143567353539806843844292189561095754495992826633527885308155468222288281910217552405950132350043041861041613572897312275657499875392231203295773153374014655502940663395783404691891192320846479408119057074369879298203186903722881132829511405635882417969324658925826142229022341719014883004359412061318033108208735790164239491573963324986960764825831982144890112860163193799638361309248953673965989465008053155101534051582610094695111435943618642879354810042958794887452070395270282096517591372887857241162521787200690965391025239497401064319590052188062931935767872917623171854734400110717429047591796256152008309620800837031950433868084671473531323068272212055339068084394253496823940357915671974560426727963082707516701537085309875166000595274616389790543256573536815673941545186947779516654568335970214830279672777069739541701127890631783031390750555487983851055613703886581177688918984777773908785315856872359253203951681248499754105974394348513775833958182993220434714914966584837133633431100060611271677007990481942441801992520570818742848740565816306831060560542097568549291776492148731322327619200472547346906528219672154169229755297212184894835666614201884675373406578609072028285809105496586679039798500794283218218803188670724680202380589479017469276435377796013449459198114558185954354957167688682206011932048414613206046983635569408880156556817468613376446163392154452503306133449175381852486605121502241556131118285301373478488679687407745208095231462432176855006997179994742772001201736085623551673933120327969849563018884970137027504763916832815533661878188415587404948385010564756784926285933583491077456663964113628362671721985170943313229162511927240653068339384452453325555556949887323937374674149846805524982765859261558880696596559337770155385411679273261905461280830249020120770306687019510871419087977241958805720017155561360975480504013271074464317295424644435111772591850092202349146533089893655086934883082621585584255085394725534381692067484872238938226468840376471394910727281825132908603719194153142140336153816115758787510357954551321291240474501522409313422217131823654249594111500502415603032082661842701242078662820205920846109611673269225184219952571267541263674023424604340177916989604416026723439561473307358567504761172810927774204732995556786387488732644384417073038040995890503979397665279374440899569076897007606333225794431125165586209965041921930808545400605078698284234495555927787191106400202569283837983255439676332552820878002441636412904575820158281697288501902995923422871261931604498997913605851029515781154710894827487633179509841858037426624164748294155915957832064024998480202134155143051449104330331863216548177209728512159157959168594901604001544911151125946883189959267394561530353260197769201769704143667812380438023735773424251679104445564395985771326631324212883394050118992946514864784147843549792299794867169849412314147759511876287855434101446017645605677018551321912613043646296963552994137037851078877190280817440943347630625859023710016789187003044636481793730918518459866228892490188591161602464157684198118004981640499903424612169997118059867255956467883584689627891976933540215510433129983380783329663397679303976103479447526870015747170574199192572760422885808245359779501476212671580381119129004950627542553174349884738427878516281034668654075944604769661028183325328103116630023756622982414325968247488480549869282236822995823976995670527913485072016238173848217265984184374428889770974152947132738437241237316174716037963167591538189771499785685339160135088913824719950625855947313549046814496300307625634653423723892175229263636578544736630097738269707144353899726750249759724914076446274021589701778348489180065335448045560902241292275208040559924772472164477960873987991256567172206438332795281710079041224514412235272917640734287573997473368516309906413033308469739327232705058054729310896874469062899976066487402101067287717035558264310013505134754642248442272146892326204871385395796808028801148748340148278229361214562701688167056458508315202764649396862905286158063920042704652353747732815748090674580080986093546774046970923601629669295038651196171124416980982044209520685903059118548957814152549531484576773131662777185201146622692895800611852572275744577821463474466539809688271524374304461542036041822186281343107953484225311323429111182697580061375351144182972458733914499522303614417678043623539325913297129316682275273151350444097808915823334826401951873896029825565400302268453999488465056327386324514080101532712765106687933395135616181579524550770640288592064355478468597225253426888426774388349754592967653137017345018790634974003627247802234877396119008771709126233767118000399254372935989470557370819042111424429915368277036713071698204198034353930262967798487469632520365423453857527770079782104173665883872883886510543418026611374800184062517946998527282987055646870809376438859958315390400154381912707542762854080686681322364450223450908405280430905651939729763635103894577533665745290357894505941824766544841628037412434116903647209466835482335400089042147334382247981129487243653704292742697704034489944963164047343142610431309460895865950662922054589442708827175542625327950709070910308296542914099608360210441892429756993138752105843454119053876392913725991687830487073917661007364310640717128546628193093946515558207683827559607488950289627398276651917282269246124932069110314090940062928062270808080700802508757892128532699120051886577135554359551088764729212224346712802302188631364584737867132568995481861395639438900829718406985548377263501564814463345738410776139145303319468642369212080211241346030337681761572123713711630145946860969438540076381902105492894400674116945556131731470125193488011787316135592330334831054532891422197233687453129269168132072083895017565633421453492565550966648700980978343602998974477853657674245785874707295817839695138077305724679122166173471745297261880003267703440615158442641101302307191991577193149694160307352176726938113984168151257562983095509327828535743316993449127680129798521003091067474507468511318883102652640346007643771845257027090987874278715655748364042206395920132895799671432360166119074234184278503330588451677388762177190156128542246364193773065201910078829678519663136603844766801645153338192357350789621364717840582616891982886208044500408040052894565903568218360917129783417054873790163038668693044023899839757557521469970964639514053913932605670855773973215077828604855108609833225446951791603534371558010087831534969060532785142772540041326138757468762008637490365266739190704098634721184088588677360186692522499334166056549193879805380722860327128624363931207884909783659539523988469457528275810682639709020113793926196373411590105045968706792917333371252710229954125462695562735227482795196241727189744824962529877283763283133994902800545914876354396190318527559977213142975279842048051887229386633207829457392777980270021367624637761022425009541563156435159073749594035571134558642049530338976328859278181479553304769769477300396862049305425317394891183858680915803445937374859377784146726783116934187567527585411197588843934087687750972930437604952439175225589277948770574265425717169099161189810961600179595451580683665075031009576388144950318095557745218926744555616515253618162272389721442351547206894033041985906493426836713493828677223216914855754968346807349559069857488035442614000797480298125603890089374187505410726918102891450458432684721240874052861948991191862930121284043368772039424930181001508571764738558367007034064418194552052559566243052550137130127021557330181207849839684313002748870074016958980297153679068343456865355362787730179757647634676192128395470730386161129986129603612951424191055119430819712136493834898008233469576755300921369945831615080380660323678510497638861310303436949926997281573494220420384715441127902153730318205674297127751162955274794559272232974030936401497432314689065368158395424364494083299327485454157907385611884805116096378602626164585447964366327177767393511877492792780549546810839410834910704918005569352115992157316729500022092081272605291372708179783079866016340145294886026562647225594446207718464712852082742783317714952735503944084695103373464227551216640807669237517172740387081792116782419970479518105348180389041252176405293949182732334194491999481208826067277044141699459492256667487983446538011232592516909860595611029003900495858594025829059039822329441266707562015233727197662534030045403210743579199998932737358222453555405291323680727278434909212928357290600780212427013087619783768251830282810798922223882816338898920462736722661984871652932429103054636815682419310367480161210164344536449594391128606166005699409512580068968417498886212083372130971338279528519502584394299771709519056452341621818110048985138949771099566934162389547353610682609813062884591415284438062392951548831492360247181556890119812809250654015461193904569852867781087725557311961739869833570351315267161731140990926879563295008709116688221023403002573618676578036289546164915133816275577368056511199460044244159220567423431969031844448707653315615647556838662177192141703806372132452317061836242101584356453024502721330687786152135973581318767413650827830802283243201666293026847130986091313801453544381441344963096106321441316322801594181669412529970692624590364451509645058825397074390168124968976387125640998218028248525200841692996997588051009264521110569677841854341268871316923340620732825436300940649324233828168163556751609607253522820403624684588468073869793056955878709019058441575193802393711699744828324712367510360707103631096852125278271407849613935116947175274844922804063375278823756910509495799959195988905956847256948578604749542155232390236619207326511087236019302825193918930268181729039298488437899069008041527013847714868535509470556279144592732615001367173917346188325963742112740543504490719250214308980103099302611745930506711335466150824773276322798953297539774446203764019246684442119643545818578067476502429707275141042053996178112916131787856700036328846671970842586490100317525604565638751267034424819548589440511621870121388241719471455147624267886671379299600512081465079093828745838239511596167996298093720681382080682647494266485547019720511161454614917828972489072724756690681461690860954653151128088468180619937569404830930074593741180061018570598157099350828106517499267121196403462916517858135567113183137737233477342915244874342910549315832031040796481535189162981672234289150320732914880255278735171779991605507010689451258077127938678007467389947918886589110482976664781881035911976943741090341913600581973124315439375770467008445701194480537342906359837088410470091763751356755041669542874818583174749829464855699804317818779568695495843819629060449935982290809856217846674959327033066031568335183295087336128722924889139237943117725065078497198650834559755400911789285316954777001479528518152596464623347310102589231264122427143333542014900811528247475795983111286101727654031402811239089181516776421384636901593696175687004885196600872105288653420548535603107759179314568873085321798589465890119264355426106692357002375266431056640277778843977095388785379971758737294602266786344274654086759278877674705511151436699612493062973362040814278314239098696086531583255859631625008173654656337276953558374468272204125380816847988059942612225599260623229246405062931082046660826348089852746910164990185627291372291838593341471726024034822170196837068213692561687244642381582485042314502689583332197551271061938689234817560426022333731585282603363683849129420048015486800142719317134411762171306820678877933146303792891037157281846644220276645783609816645277895974772381246171448213475614925704684423851289012452693115006088255677817356375736850578968484210098116130870888953257224549111391824735973411849025742931114089003385641633001192711412847078215392217609892297748179911773598886654341734541532241084224433355931915535103109149419256513346305721688391460368138839363759944344703679210070298315482065385792247999533393970108459324490556477774880026869807634801060305648804095821380801157765333448867609106289676285556920845020455646114549043668740142667653719867056654895492745161367570099066855248047227433405895418635353575064146969686872826914940510032235245888586645056746355461461135871878162306643965834569997316551789143673012898108197357059575774213261257126247935531872553967327901725629652051599806302958425526123990754872451413133723033508532151068790231038961859768934388806946086837147925538752120300662316074949177198702777290795400702900678598159557235815979130094804189002907576831991498751339884149375440422007049698669518923499784460110165495266364494357647241878818145106414553033876701333005879636669507174615450965558438357501491876824192385193264017676823470986332641014647899014251870093033036511490673052442230753805173718685201684014479071542993638675785490810897007545617157910549071773471707177779094087742283675339582158788948056900104069738904452785036879111925888260009772795597959660622229688407696032509556748090361279531465922254421510191833784556310588628684174914485393986451601965489763330363330372837293643653703538589144121703873455392133116185912452195451810976407614798427216474772673295330953375211532432440787992062833634315380749999477020793094448781307799631425978553308517819456324172531820702101578208059410005488767101838385938137078044173481385071759820954386677593583303147101406466178510950236514493395737820457823663611243861152365143031123272129216966737027453877878690337093133716412775486124599507046442505198016800935836312455641311638347588585219373920597393953119197870527253910956407288740265841952669828478119403924009754791738452978064093090945945486050699679103247850308492847639233167780482318472963839121297276799914270487684319795966740288051099113194068741595285770166770642458216275567067461659470899040501562959470535602534740652890682213569918485048033392194281864670762836616413528767822721362602533942767387001109111341704175845492877499077163067635639982276325605297350229109198371573894343104616960461676492312697909990834726951821173828264466259368017010065020801763960242501687484386022287386833220395598380199447431491354962587897671790254153029176324347741126270152677896911379737874990198324166108997875674070487122380647795246901448912661995661256453580429661932434846914785783460777593977005856226368280478739590474569284765779015582990002354258625947605279333134075293786855020361976603833859256743748440045374753762381013240495880165619227012226120138498333713690743422149978342483563316527914535762978067284694591548631306351591804245102798944538228811339978475883533320247547085029596171913694263292495742966794571619848333063654035307141839025481784646957387504137168695344111404384084558339491743616433902972993189577988136724757702214806111960787674922901101195632404125062858904926080885838930603358685094304678426788178675084656933527424263114347392139094222938298114452225397651498581067706779107565593891159834110438645329069126918398353243134842018892786910794867636003145271185824217257305772644209098089523347070623908928602734956955102795327241966600284833657692226277857586751911098688627560700026280293697190949958002645642205138102764590502374995169636976931886055040425666329376263558794871348849543785810107444723913347296496719731443444768350765753333473215587667740337249775516956088391052821483233323317124014574623168799372872642680161324709455521786684920213300822664366057702360156902012523411759800356271929877221939607328049303408359202359219322329192901177803926554596498875598788044125367090529169599461158519840249946011266866542747448700850972739901133342836405795559252649503294672271880968342852958956516821808512590786132004843603006781847634831004385643993756970299838305587360387501938252847383244394843782156463087009413149314114884143617282749764497017586737148020942216389539622479538092547831972350275740890234403850472733977912544536194160516620062029429842681786540160949571763858349161257529312412984042547524391651561993638050883408530135018646558573189367359549878410483469924501888088643343921903812127931197466165968074909258132170003868791897243810208546904398929645610808933245173784413287475539057863382667477758582040688354750212056354310316817217250624575684969105807705361580988781097900345571014261654805264612404306322393404973730441186228495772404763161416783650366155225502233384948366733175056945506981612471782196663399866683402197048259870278630459935887962928905829434269523129480065986953377708826788633812107813479364790067877862969063330396004973608827082581201022510700748176650142316585981692162753713870291531673486123722280830827030565183796173722362564410277524980822682616523101365688940364701201169682624569677027054357950016921833315128673100934243006144535136604523156368839526734531035920281974195200082617286302861084367558923863089629483898177305818016406548922890294052686237056645078820567843465624955199127235227066376626311607858760195971099482700540123787544698643704121542965716749301559908673331600999869214943264629125284556228700672835082864125408403113582478349081207801542158227282226993956967325682390050055843997548722626874664203259335885777537705735519169540748733450392756064354984792409179422724346996951330067316523111447649310107403167443798786007975240575947128382843219476649150797081225028936206787320610720069696205655203231764134743920317295469390272364506293448322394902045061673066021224205800369625517505072215821174361313941134014840836782225712395109664933236400346288442301231104668186945303726710194658632196441832999864681427907943749172343243309893153651185669968903206734332665629589160018590348614749191563415518234764506419649699045374851141432470344226723117384630488410594213491687164701856063340931685945824810137097820384334225789317799013079638764119025376735138125438072758240652196314453286198271284374752783838804794230686649260154211948191393982454373846127520550520542959993232265222377070266812017305720091949553930296608990224983151855097115888367241462849804852940165343261182932446695241502102484166817996141697914783685671509009846317875875700911593381639845649592334289245588991257808970705196599443732545051039946728217626045500578445370504989003553599612956459014832705206174369576531717448699878197588529053251292637046745642587607124911788271785415386252561460410216856971634671489925724266979027338536107906725340202283415009802918092340599095666876809028319171295587555391231790727750637234473382073128828038073845351918680561911776749314746197488383767618433410304847900206857789121250641614912019404212939257749286247000846707535605987667389609983270726052289766978580888656744982753155794691267375943128285990712554828302189545056597281519439491073758478156563765824582837371121520664077051310093461542368795223847053152339505144179230798224090741258047271092133315305414979083515779310064630597384712092275280611160697451826152392459131472168611102841937031501779108397996480091150419604816551263624425549511750090818336418465577844933309921711868728384609044178445507479523064078993980976798161653800773600938355543985675623816239706353237062018177760912621738079823086910032883398725239796694069310380739171127499966625435969903364240590637212265669532865038133638978214133377319543733630903626299664730905615180939089777601648020553112326358346530434682167750268433195641607677666495390051493553134185190131154201474388361068288706408666620497009836200775899181529244077123675906575335392519914206468192517817132442414817720287715571560627048625360994760424888356327995425851947207987401278970181209717485770288054006176217265987486763450739634980406389514886535923722028974250954568187266724912691872268181376148695217886138673467463083692193947746600296787724227437709618114997986369008862850637128320171063026677946822272109728592396914566034331006130333988330267930624321290221207463071878972043606473084590988878405579887602202111435297541502639497669882548873841310489339695080602966203746851954283886775706167773550921957695044938108892052394030893113418038619777224495454211171736475202069323639617832970146372331246550544135771415780896900841933097622735616450113216785300290626703476372713549676136853778423725260222329082812731461977880583462219606200269346909586871127489194832001690906561656229740786235219735386385981354440960930480723983122626954660649270163852034593277059658153961673761381134171817632608251976179445594877132244934262960027413695385477135504273207916661074758262002653400659972515670914043939842894326042834846394246454172415356673308213536774748030375060437272327664378943791503308870956392852025741311453701269418651439128307649531238101684579620468248022010867916239096427669198208550510862268598555036367181570635961847017539151083034915120804648135013819329118758576551662397807673418101232989813384239264948164701507191136340410027077649309466570987685789959978971675213080967972531163158888769668107964853728942686663098862454095031388253260468150644987468147261514601293736384492252137918264955303846039872249081730344867933941270904594160608184712731336903430026088334759978017623359863043249702095158580645138519295855269354553542841285648786044120382675932036657375063916919837560788756695235773286909032568676927442336561970458095670043965273652345391473839108391124409374216136374429147090142793406627128718927395604051983104280089494186945272444823766854933789108680755137552915617528664268245186852697722474020467531790947098287933245465341357712317209596741344211580823941632099267015628765351872085020239735571943644877265498038774052060304258749266252466479883700270941838104801602108809096141545966616614503398466272884132698510676355812574767191779699182602505405757221453609928519424850980752910113134658455294402138154026857169603963092354231811092646428920161615423863817221955375257130375634175605523240168005087552936575091004614033415146549272092127604766700267426365015855861813199618734982757628136524756730884502203020523723933954074203325973265678382305624224059903650809377126695451869031210670897442853162366782920469397135743184106098463027950194655626949046176856486415641181482472881738541824276281601606713428813844264776243968203862080953192870747913482905056606887941068297121268515896953735340578766006408236229585258926436959591209456490475385519010919469195970611354515777517456865917942469718169600566175995204680579284617791165006306613471229099106115110068923667682706815914748711404139892812013340770659864426368107554639285436901113010830400007820570941894035378552596645746084802118149346090251433140728274699365244492459582329235267273263902639789602209427718291571592431032335182682465815128653184864223132130929355145265711965643057374288698592941108113385417292494901097755374575438618320913949615618980590244022180005031716583243221871018692941740939872364270564020348937371431526407900982409902605855773557619174098104323962023311082376027243044781556168260367140876573531141861549781179845049349756657056544228420584160859349231697890213305799951307802019415589584505978437946136069913698353683813220446677832817038656337530796804695161283679716486075293592315662656828051980049630697847160543035054664633823878541180473621066223345962021477438033775604887770918282654815721080178668708518320453401205198663638122186774923123353237443031194736448647933676473490841489571928009900758787717260711566528281790390411441026744400853944333971324510202154278765061703512291887095911374988856969499394315406286218086635315760975296128845146992361273452659660113854775360599537451483963129388761803384327047833459189379950211340406281656388744787610531276557560526408953342742431005222038271519013670985819876853406067700187350130622024067093397503987895707663503362199497234306164096026202017471095648612077311438397829568393442342394337638190036591033768834744411302967568731565223626388910242405021005549046303228761542218366505887359067707711732776250713480514543280984574353156943686842175095164657565328818221095000038336048135704859674696643736212401327682312648156394488252921848359366082855909932038217858778251158600378673673753408261159714452470385861277228022695932401095072640830541955852917924568839728768774827701997127521371632453604775487825713361379261081562757357120642816696914657943130192164183400927526256496897582131550816454978026362499853311389079771971823120499811492951110169974329658621266849422208769836276839748956150969290717782931571658540839509092207948817983132707490811858786252607422276090898733516819066861933312365439690025163068906708675540986932143780215935481250322470515194044723197801462054221068563956643863283010433927940964353488075940423467532663215393389361422752612066249434931921894901710823511657864364834843146835011202704745311642133331399826993257944694217994910172283367908988224574107476380944224237234927711433936442488051272784608874819229928374032942024823789595429224807453088771746395932545760690624903488610863296889080891595145947925134133331972931587655884329945425292359645809617115665726989173760600321069487732597527781705173797903666140797606207707177489581543425210785307368533901522613078620504876736565747899887593836499649351676987281692204740166509016720075989877023661919655361040566344331812000840759957080432409699504670107319668243722662285049831149208560177003817236433963502762017812984965906806291057198425208939697757788791383629672923391503662076731532720230604435629328318908681908189065965482760686645973050658016386330613805010998531641035452243147309667169192037186057199612064794274888445637778229257998151140736434089255331297438603349509494171713864564598427499824515690391095154292713675784196473952660850403909735680564813645109371873082438330184210859357885697763850294820035914438536980648156756675508689689847795373365151526778269785838173948557889886161640254494935333873882144254229504334567991913264621871254121054422259767735990577426657627038227843444917593763897388002839287008686914096337208673760749965879148236345850501368920442936970039976121459820660203220925988990090023469034534594887105399369142549589301837827645000687832054199888751065612567892209067734176726517773984915944800730060866810562755877737273040490985035627979400719120618239353822136920824185307648980261506084060685871716237300101221991621269428371367673121420050058819755289253769920211360730608413998284900008443886232485511672840763493327297728825100093830940682551666171363612317135781196327925312168876517480099751496283431536757815252721114909538203200971474269579809189765191877024670284313553745932630525580693966797474558065776089327244932950573052859907367322312983603607011659039566953763117650819135576471725372050845324288439064416435297849408955461847175381051575741952828795821179619672546778844893645791635860790059528076502105383687842102097575538769820368248901472215218057371239473395833415110153259905808505479431353647197509027691471502432274384120343378016199296551787318416166920498912778518586242655937291822518137474094175774057168476436887376061191200573165902814619123442261035648128572277790544197989909090420249856827176820305919746202906934471568887766227025239846132772136925203239426494753321104317992655526512524249691834880209244911988954224857265496972667405167450327253822263257688202975070099240726035714453023177113938376879072823170865289256127238408673759275038701411678767523317605694104898415919885342757125677860476361076059940633975303693192969881954616858720299073859729524982759618709500850539428299618633584542674073928521678703687747871369772169655980573662482583761109219793347638387854586993453022985272823667011703132929494656857095755921242572811565105117640840592928851555832686035979199995755031462115330383238489912841552465756837052119264875914247220538001229244880967434476555048554830324945436630615758700315821863798707215461280519287567571079753135469663772356361788584043005366839593336539427017603166781376809643559865302000790289392555218763777848938365204333545326377860785721790249128379099393379432911497984717848291306391130394475518664414638413085481810778432753029623395239273843549836079498559646935959572415234667213953116008880082320294233449346463426752689785247437276406715125884907604393059208400953377656734856950251399575934227237743738854176314894279715502303388450707952983008220931465017953981143278295570706393656166273491109194901938311605178852156131377188932231042946827877946921219725022230374864907348239648825013578026269665849807105037210216062479542625062141734495401009645461604302429047080098399963672367508733796848676451575763181531926842640420218297046948545194686951048657433329288734999086521972092874294016742141314499115274207587215718982102952281859466558764398293374754863628729585770578847731771578550088313070231113151426253490450350868443792451261295279358488344911791805460041193252198412036687459374599697930794905095503524714877459992193708005295120144577264959333441927868947282015071162427945624616967009725329443598894916237484005053927795235453896658899463200325229679887417388904128359538681600042254892304635253055889881876906829095936416226176959696582839536844024588950684411538261755233171907926551452837281761344151656742628771959904564925996423368901909145375942044557454639351464846576498609048745720351469832860813803653027473199940512288819813258943506027911805202281634537907352212041943095316949711025843984169411906010346981206086945395284937890147371693459581235329641310170510859064686922961199691758710354364999971598008239728461571504728842401164189407337173120318993250490874952466730068146705874754325984222236236313122564472615026649132843433302105078898079797958706490781490654100049907465278200029446569390371904447739946136902445722283268216523545124567623148215254793724734846062367005802796232550708032858369789357814327961387434703805160510059248107753908983953428186106184291064737923269164142764490365326627636667935128823612970535150073201102332939631105024007207138674114279340897105313481864868355167835262983807359032712406684398424009359280254240355574790586802205063718917813409970821196028224979629125091590616488334139972318426055454738382300524071007373017166833349224413062583051368987749019803993215339395357598681101528710888118966203530031502324068295830030975918769309304464753054077899308197295035610180619053406719557445571496676578525562109585118509963998996625529760389339977715720765160707390183244205392623480792117387837822429930359097516934633028522188000692536328492415550077002005096424751392500358657199958131233302982507051683274925752519228997968504616289058085223827603142259435896712848275457834875913210544118938858115635846008888536381779123930274760227069680357034134152737853875375916170724863214559440494526343217304357694758362916857564887909132435213916565604768763298377149928497176905945959929345562883796037839637436767631523242329235362422660731223899231993343316299065848865030902975696493687990239745425903443377950718971454425724752029675293415661294564333396071879964246939183401156836350720020162710060949335858929967880696327480019239700394462275391444760908486437934682042424825612677584558800193346089991870916505571355094524924539609367191517902838952868880272588905958946706134343538255202088367220739816010193439570647835354643287734964097188436639419104894091692370985043426551555970081485646370899375051381984198607132652838558843267168086276681467793813522581862417393233533090720602637290159270325651805673169578584231387535628442242467124036596713982771789563475580329839308671492026430354893548260078773912625438650845202410232241339732843477093955703823160157539110024684514582301879642426751838966230471784741017482257974568161583439035498500696685051042537645120142355144309442865471969890190124370870463166851127001013239747072166444572480806224139998326403610994517145197134480436054024181670762901553569514464147982070538875952911194589652003212650934361612102408736031226736676197351894842969307911828654186171861060665070907880364003530979278350932684135949916825768981505428589276682777107956106110363625704207711911820766707193650216837099824783412726769276676483864838231222585718479825209933067290791012428118618256113765613117469791682563033466881397606016649894419744008999330424831978535192008060520671201780586115651883534475270836521562750110853942467829575380687862817821034345752832617970892955683491735762497659142667123795442666665340344840885546674655632850285075866104741898816136703857663867469926610122730645659796183715113931454955796794197617847199317050611187436374199602212227404110411482546643077632408905404831775300422325732579006049067984778015365431719911774791686760738404021049122221707210642159008159285856429489068770073308565787322033049253605219305377174903220860649206739241191161473007484073623405197458464285574490880773688456246861589153567761557927428921393555905019217999510205334385080593681307953680289960431078696989790140081846796289332617898923558765964457059840733903705575129418666061569738251926930668712346706494213604497251856615958561493816752726987817243847063470404758646523644633694285618557709350942264519948480201337013554573145003081169136443454709901579075978216207528506698370362225113997805056771221958781304292694519702083793949618016651118085686879284232631696104688540194883369066714624732412449115292462279283158241630043943168379376365796954617982074479917984556852809157696608883122833136214049208497519595176026444064630630559441044150628897626339951841795834564729901812261215293171582770416245248015633479685225379780446087698206708310138286062206497887935119482707847730715006078920360696123653922185669160746031678439865103262685021528202767680771771447827660334533597828204402865606677349927330383700932569673385018429559220952008114647981059336800944397562449268880932123274499975460084403573885622191677599328683007112529038350421483184696098682232748188922044784778190733946809865056118132105630417667168987882900163613646054517896351264864295817243277931071557321305068993246589276315835544267668016598741959811442246841467755669349007015082550070209478076338277534252132284507677789959515704003541636031335186465186953982927661427121286117937583167925013106387181349322699632120664514530910574310030201990447566382620317345697792221066972226198119396720808941870607224030372550606618261398979934698686326844235903506011702540226388588306181364442827277470907362392580473382928032335187534171997538832918605946676668666306385247111097469591308330748313431572061198658018010683367459205877021513176168846079447646334989342718927086197665517456543256663880699836599192015796607693268391124066882596064027522362198328960823207735572027950278796787804827270461328797714307059390904083757790549157589061439765610283529693960300182829155242724073253563701339947047781290786110240962481831484261524927220658878193567096259514154158833476223766662674833636753486531073507981200818745376697556659768011707037950815790251884792534166835488718534520379655709820050723649943440168888723256411613521235152607482200608418758704235231057621010800175574333724654581994100437792765500897775077946721914692890350669100487856999174579880669904234133758990985372051206585306840348248192971230777793845345254723624398268221666217816006963348659786366400396403787027403058933521242645082704430926926529911030173871622473574620155718596517077775680914104706006752885746418492357126825741861677774511294405793230139477344289984442269201454917130919752938810307737581372934615931773452835032321114351256438370485678095312973866832328475803461072606285786168761044928718113809659269038037248777524860389856513136841603119186323901804125902757222558650108253568565774673905940146312610755392054526579137173006509938262756683544291045625018502963997402213804469362330604493729006706096370703746558131846076441766024972463072173701228747151107417846144536032148410331293358315117859342356434493177251126402887102758269914403835004858005297860709238573890969662671313520950662365870423303173182025650933916163136074274787107989851977213438114091938577380607467241757322844888354341338202541754913919954227925108175422448910387539799934528688284196811845484473510909635309055479806305793698307477989525257967187587977540154517572195269095171257715214938842511460700828498826439329660718602130216729418453231941005400793319755263597894960810129434638469934941700168854070654152655190371237677496730988686659222328055229693626643328971064697164610829891536886371462614064982188786289879366702198728721686745915245456452792903971204179221767242553193003982629340182744098757363114481435679558735948626577467684916848317327431345386204193611008464866041902582046908352771887532580079779791179539637954576617499263477824179192453740768555642288949029499690905289180528942542044336038687493816785038773679797150612676015295027472642410258203369476189961295016751759902430112714424910900208073446262147813926854737889950102967667324116909741716320499861976991904503391501407138697609257591986691662320547954219604130731999419613342291500218643258290011044355277885634220776618702089036834312744353751100940567486847661666911431366137501021307355145959505235371745397515988019991826956085840793810951117806990724170760166236475784325955423444420992632447843350772485768415836075259043292136075491510084698072382520506602083335620669476206275227641354142575145592420169454883017981776767672192497870422724233664915192633107861821023373795390733092811086224945947884207409033423307265752560808136107407081769872839306693925703074442985530037881146301086927890029233133679854696049564206065629918531820585485803124879488736318026339360111823492867077327651244934484125186446069833222980200033015411542981679349504667424896079526027559039646718864098632439509672951307549910213716742572450320483971074023462872594675495402739522064254264793020814100241755064206832646624252129626662639266157707378130788667139330433171651719265906686764077192258235098403132722091086373153039413311101426468376602698033292149697861911756630909375523183176598043153272677064533014200064078475882602744500440919698156875412780228411659814515371328114940603917504873263914169855681809606626192831352683444188101570704887711628395754383759052419754276010080584685640767666680489865290909702307393441747271195346039627111953391105723907268322468248107758636191147770349343144631400949150604488951769845160348989462853002197877228997209490970283324463636336427947120111892515948874119599973736944823490143614698861566268366558611828486534997681025216262728557091066231912317090247048210982842069887631420603089998053110180706107803135262532552014255135638782296637609850394360607544759410641648331573681902600193898952915950930119428066940994355912134969405639386219830455582682623492534742870071595498982754670183770366171414812688604655977255559096839334722247394201170927790461457689473989466000758528023480383020810451289712515046444297862809224762914979437497363422057073020693496487438953125196436894902727477470522963694485377566034569863928777865341338892555120607926056406136933473714776838885540908501850061470266951861798939669247908332715264676077133307096550464384890252048540284118582830975179702053842632586368047342951822742688255717723563830840923997858855847659970574056274902440340660811306348007307571275104907677684855896730237094477278511425283001003656229513919313400156197202421696045543640628660324163485041581044430258314976521285403510107203105098421758655161506812124920067564612257956922543815703802316923178431698280124182551484996475944774282239597283989528626773112552384461850490736038894067393593748832934053528834833373106880435439901913635725753833990082647136774726151051291159861543968131136352788116131885747117510175812312977371778643514652068042013772914971116267047236356048262127619894485564185039106995570518229562925919920693845737566335412306486829167926274681006693949902857586906797014463055498212774181937269718920918202075900876451841274244455780399289847890519752861504004114409305525811920990136422622443867842875308575069507042673646169291059672152355194682599707477401433197393289638131769251407827827473127785860468833135834418875929300229869242096654370042925718938786127237308234573912500316349213831045238623188012974195614985148283819689130314234531705395983289598282666852335287722025522471664309108278821341588363101998715119993808394318250092529583278954260018005875222327593733018381336053799337923641478558373906235537258578840798105687744100239754575776472466170675090969259289843544973015559382727258994676555019210484833703942451188996304384648338919402753683372298447069326622946171815668103537067974905275368126107578458900671218959798718000035803131914430067950843548845499128662461964341152654063975821902528592173838333491805289391599720734821535062443179472995076060576926866153266232163499442986801404915370118608366375373941353689097968520238502029966036345413477245501370486668144537717935120580990150572241227708141355768194201486507232147485494392148013328297453331847862071757379772616662681694794626734926527823869676946882099985317898352939222318508492522674012353438743889024011488452509925717395872908342992777497088562353978914526033979545691768183353243570377474421790913849165659431614457452752508211475505260880367444297797061996547934879202360263368542453002594639916093486682563441817870560221806151380854823037387198576725170874861210299281366241229722243155655246938011774311283037065883059209920117557516168000412243449410040949408321682159599084179072345872481423206175549763518744446026061664385503659809434474791861962856775036757303006915645458866629861253515252460314041558565413650382250121568417267124496152623644574975531779315230213873619967317968655956904497601590373466020388960817885001319162779923132571450895210731714420670935259503261262101454089327316399361121175988643667987403282874114565999728275739050216704025179913458329825265873133872841632358042829612839640469551190539632521764561661154078746873715672809244633792390487046428544258714717088619380827306160464391818217896680180868057755218626104750947551758078212645374529514333544988152328769806180290768302840280705245517018512312094617042844444690727001394131814368053572755907172068853391760781578969453263209765873721781661052723031141780117627604859825812865263965750248434524707402100585930903218078953302256389886506468637541005500974036918378188543434901606920263429567093055994812654009211258268317868142088995144871785593732272347496344881830765870075410839882823728322127549916438064582849308192918874356525710964390526193052565355714420263120245613090007884994045046360481052512236996615787507403542150960101830580665983778536939914769157310317574132333193908995742205103528223005221238106298076084667348017813445681449662267568051826066283555461989504375666829301927465863695411511588399510961315827038984250218266909481174329515495926074093035595206827058231618817495073868508461482892557248678325550016576929956842449250635336087597368666658362973630806099060375779918657830506474147390202689290279682118766170725024977049169421526236015232839494847850099929272041006381662253087156549453556773746578407308125581631192968758896468901446308392836293640387258182842521606453583031634760605194146179313777555824603456157463955651098145488709758718001011457133898866106063823461518331626112708480986352965060475639087296842687716556358553807442177954142958328532515636975707924305968118080675738885488713185111769180377444700651322115624594717519366528834553420794585209542241410415065993734442438133923889526455801470022777418683190498589397848956384672091240737670946603823883952194839877014743168782352078261951870219239739096847639999292249236244763838107775901804797461654848215425655478752288205112458173641120806714958062906572047871707817014505254812343247883154469450877555904706230382127863932133178854239190972121207204522822944505193688468773032721845541283046661185903665168353366635255174603973261260400063689741335176328144830458871061758378696840534317074116759478256797404215986677837321024088443155905344413402614358501309475396888499178846398657954280892077407421443265863899550468207332148191909257699845293070835949915711668207427208565840448756669290040218607465852852762705389467941241135773598341047230228708151660716467479864608272196843897537607827843620603727482360575235253631963978587080593959096694741232915509998239986987035263181934252273161637607223994975710760563196346890855286312705295928623390466375911113482494368387967577632871802561809038407154433207130512321053295567401302500878546218519438588233966795564744648603393866961073924444511306535603081185810960237916572612806468863539141155642335683566051261143074104049063427186129603102575865440121904065930541922026398255732439692680328054297338099688270391567645613684540083458311313724563222016280059511105057845981318669861909636291479035717766070769811351634042445981119120987926607600683430553405336602192517333064125680329074787137662757908144284417389877299662258121487941743283815444605568705713842919315585251254181879959716662949151776492487515328193506300609159123044848042428591871977113443847478407182435045568443893024813872517591724788478578987008450181940092607590309553242396490036796930585200388731608656424472965883375513774106726579570272071742646180112489773725607287731991249979578540263497950113459815815953821869227657561065553565335647496499052411443342684674794282055739239396033800816515122070760317696614223063694276044130280829329985708616802223821449222169786000600592636117261488600569904792031564344311090891284692096268394275237075233587383443458363007520876065305583029907857213180415573031335611819382145507364777003030200196513806408581808061164336171734330752014152660906645271253557623186329400977785242569624122681623040411294683264792488236157259378072921033926300432776555141093229542227942772429094030242079352466486330686244654715246395808618369138497104720248518037109940125889931349119543423604775327743818395640952143908261328111988077926537290517503637268693130376936959197791139863168225724089700941798880847629144792706957632351101218639924457530543389073423654461040435170088805434155083723441052875612167807649739139005560918127870327689483248323979845117650660745890517741364246273201229609294874653895496779775741140191857830228224068324837065660610886387417922042818366120783171000163027221094071833542279816636239440710834652037114843970263700947512333306545558360313949094349080472074208405250383447149879698688491728128933341381417247472549727929963856325560504082727721042806551099767013092578626896808096567194814929442196638893774405107727998264803971159070069016352956151614814736722852329584306146295484764781147283243331033896310157720831326361251747046656246194804915051415555294592593697763113212102113132286889094214587198650854123829841439209290570332932921704775018150863807862170677130027536214699609533117590413555614277057789126703464097641031996175798041609604376739698960916741475128955462090211140891425012181608500224382826095355134853920194438434681078335358260478167112998050805112594808019975339438213420542081895892941608112277206943354511653157761574583413134054132261319406271191615580923092565724920033702249383709057090554427106468490517843682849156397431743738101922580084819033898897639540951190909081881971037916150008484774512726207316788920081875074441872010216205104607851259948394876405739983989204005440431995172600893829445848630851946977819936150651664789071072328171999780075017794206765609633226295298783512834690832266713048783215232859452624680796405481626323618509682362586067175837894752530756289811604813949781125228337744343616357007439775307199405772374316571430077076268358937313828047771566559283711101444387192453449892780482708934319920504086459887562337395015056534893004597010128166744492114913641916685153075310253335204825515269210318885917729410254741930655689298136009083406701030754073050173364170792327639573732158124081916127325464014423494093864620575597920158974193576710990785417744545622505678892631980621944368500270589940950168463631392833692023817512004253185246000719647654192534875097985412578165463611285529779224754667582589413515815891382457703141641251596196123658640170540809461637187859712423458421987328099869122098448788688573912607234153233858879046040894176289042272942383300360940785724213255161019640335059401857618995272385835695496347553893278847982097809423928525027189783968417993103285639215760166065612795166834783916047432718548072571508683969959247536045267744629206205462324936591420958043193825245702688135309598398356837629196696374914057132724310948436588364209849400814584961096461190157651511733289960133351444359152153886641817598913623202932646774850615066094607286574038575882805139145349257166683841421393445064205385938154008609004144732212695018666739019395499575592622262648063878952424516904584629641309694824670547721923945712307878849150968770611190552596483389303919077666754232683212105331897869582999370517398852475737303183274774131525423540177828049291334398881233465437447437252844850064439653290433361394473831690598963134301856128756188163003111143863052641657124959396162529271705118090019354011537492078305210565912738801047347363667006243985387739001765117277252079286654361002187736558851941725832020016327837239129887266516897051808003258428315558095500898236661957537940277901381619551394044297125276392884680082396883832177733933809076118370868073799349044115233362976932528781601508470387349246465151293806964833965677632817499521115063171275551666013522199411134725067790786892551290081520019020739532561439693161728299190169965453182901885366823673774358293666487233912485253093234649421240388099958664523429095339653710929727550681878860985486200619784028298598345464787354685126650632021999664637880232799103565579722060406083112141681968470338709950880668764742739206316438685910097442002902258737967851650263279378616069826626641893608241169458002495230680729190198224062712122486161770512807952383852298907215843767824628089622480341988179066567231994972052116101792793540237513283838396960376134729169289017202676249306320323970819571302100757367315707980813748410917854955117871791402119651968541903806847697537175569260805035456665133768709251239267159624031195731718658714420562925967897018974979655913937277637011877196376950704456997205059091694489260880809472513398632917215292952014064441486686150666492084883958613338827258414587128583470741023342035707454482553005579997216031188162106533570797995291422363924746942595452444602311449014601409659517831559220561041904750454553829859238838828989847618948887233254622853119445642330263104237577848539346654751857398938269801506064900856726118437199908728659871402472979485755616223439616533131150557085218255566669353783855955401774557981381174857997057207036213892713048004005928849379639524005507638998567333135739722090367762233978113120704504855035356738398152203196403087102422106785044546509225452242239400888005157760808131912013668907490970618101318888850206061516485128403807874379023778079426995407840572816274030588745759103063452123855197126296273097913016193371377314980654093610728868586569092561001232164556568500616021798204159843581906555328031207218061471538505428454250572678473045580429072811494591158739046288071922457256450136105447488812353387368556188053026372236269110992695229252764995722171365035069183203890378110405531538601532912095582624136806652150410137645434862749563055425113788803523121987916055572413856826423557663915801437265783935783139065669370620588489634559787990078204387489192717096826434853174551489284350796736519779929459177981258972269734403780509208216223893588668056832535769522503491767495761631916027889230326709364182129985516640227296068105584404817340077461888976300030683735669954579970544785872410356232990387671921961814585145298534516550979723257873110845283434752565348673739876979395818008910349633991028503848674059578560554626506446103461437917336334828604067139404868890579492822883945462123582096753553157235793957321561655302635383743164595187855711671883625337917688901739735117370542056030816972636508432472769413058453411014349799883639126658969918415436719409144715468071414703540112413816096358666241537145957534384614352119314494790113482499595765924045757273142690753013831055474953270593244403978866415196447406275276822350052880834951279691720475118676573117155078271979125622527250332125525061341514004187010336497063861061753032955535184042220851194693350207462844947797716422103363658935872851693026842451277081120034278180691726928599219567929947402398912198751893410654700059993800850428566226243640361247072576482320512301362748630922407099565625439486656415744472498861282900638124143749438111973014955438093639620364411158653722723007813846853514571414046195502608077867397394813751427442656364273703791382149904311938960858836086764011319786883056848303631911887165872724985272157556544008754222019969396640081121543974112923704483923093991240238058984692790935689668470368451029153834102223101201070570784768468002096884695417145078912140386965420440829973467685899477300607309924978645974252089947310599930185893138922770943309001596143716850728926067060405600377117869786685558704646451138454188038083297727295271940154460505827480766686648159113852664552578051597752730826986986752558525465830376354512848081528143364144905870576532695915069357316760035875016027838199593459004383089523824014429494180117503588670325225025204709409419546308230853315949231481634232210212570400401796574741158896942498536362061388779450496397301590121080491591731634592069547971039740800142110275853734797680951474460429580506563238067580344566303348891792892342755672725033500647310419004226805719231458909501848768524478559861629247300728785548642585899258138403656419443639637686867281977238934736566127891857130408752580845098526956706774013483650410535753254480234810286395546311094202421619092162802044524323962172844487684651705566986416676923732777881341263420282404174275900406924488876651430276813451420508993017061917362564089472445334695167088453657961997200797839679229316615283796415128579051312196271436880545880814118984836951866614181717846718282728836291461139577852031906367001158385620208809279092100249898986180747634484357230246967663268055590885074683300492558121327927200264907557011999084194004000176067917066853060859923787813358243395117936660617765077543228140376502455517722501671887645961640769106336136233223942393331406191686938035774071993327146194657814653203283802974144652983071013615545052650649488828504954514555366404609810813138728330367595601227970681636799888290460421779850403830514314665087220694453798972557758362788431436417143710094875395997633951838797981587272525386085089553144042812441364557731562910628260066664210183075180796269662818360936371807574939287754330564285671938107654448143966524976568991152261912991168160763795603878692704509165497508314224539135802490253458918690330174678439776211943314716010775367272969482985757199673647954202673078296056433220893442868202907538992925223181522979738269531993382819780638856789527464191374418538704908006116676244820699118004347394798673839399986088208074251247799947790368264484619468676452777339627101438890238832861650827813922537929056644273630349764018037240728310403900072538067414651166475885124552271377412345813459522364791279875160733347957430360817445551487236817273492776298694570380549132679815595669386494993601785592784099738314813878131407865015844770915367206698787427658443360062968331996872330552427668023475309431047024295745420885207290292175150222587175760930365005355268221485708524083121706206007744030722471490381498661208006110197691198880951760573803958002667269706083177326824112773969489186619800731185923794505939732739444514853412200166787907200635964076302215111150506694174303205638682560333241635597083539736022264922442641371140313523211136967747615321656947494517528249605176565168276867209124961370317621514730529939691778381089052481815976169514486185840512355322279973182024791745925780459319042269658311310619254169016955631894987471914174209294616384966105305208346980665062405133659284680761497567581493731069129530577749131798110220841127069600834029808162391950229287670563112729778899388400207877390928930861939478288917034115856550832175138405467414782969714651793466373859341172669742540367226433772638678783362120064439857250066525478520529042429261663769686715882513430348916331147733530374799423668247988931398099434042418999824966121889639211078369805193338484437888306553934632893690037602744804259460648912267914135626741856652302782996334679901753903241395772364970634796614245911056511735733311036342390077069341932685616027774107413602245692657266767331975723772847195336175021322802511083249252273278020847334860051361408130914454295846973058500610080245022952104821083774049885092012540925779448126490842686565547567458798200770998827858425541336096496819748193456025830179220757040202240250596407224428496247251702184124594233243943723883682374105100609605486537800471216454784392117207867753894367917732340313240636036119447552238099980461840533966796173077070793980859394447196423287383989035025910683146389851896797236785371178457884018297592105315639981001054762267993525587354619490587066728521434606683406410956582620910554215618468971971351572361463755827505599195433527813607714876835055852817726368456066002372245615493306405173744172137954916167832815301774375526071450390102263631368563549712149690527195426839763092807053661382573342151493942006265604631748306026668298995866845609816965270444982522255893518391012273218576697022808520334996909796143406306456659660190970695833652009867891223208358696644455736672026414147461361411018520253421095571845126276865095265427898354251032999392862689489127605271719148634318780307235765812279189381120910702115794319036490656549584884707230658292326615520791506124151291872884921333796954720452649054759851074501338208306407633014229049067521074188001327151469984912612218184259197878345068898147090719838230383363147853711667114371625139725170611983285000341953358310248188309327054282690274803593186511611838453123004747754693436568769939392567224224298574699274725508414643384158221173835371521479826316146031882429503965108946277326657109408490236451066905591624818864250802953659479776960766950769744926593179276326595220856825307190998778283998641614949191130507114716173954968659252249506230848939037373486451904461422223589514394580086036923270458204720489788590805893796304886164439371653860539182738507491556371462363046044288857597781787324444130711746561720841091996481492662831771390155015404568894747504045547980433023221420035174547976793885978339073174161866498274168157315773506301578299229345382928177317146426881859270517449238310382074733213087442107211082355259918055540886578880213063959455887610597989109755195097422826448965312936043951986398603257997690930194921279612382540126729849101663331210975473798659501157084829797419914709168770292223521412009305200151519078618583076340091184868309467770595211950815438632337351802249364977030663275500455138317887552826839667634503491553696824684821192283911531651576937042391150249783773676880944976439882556224487212091463617497222950025283664375883451312795879942804002576593876589379302537829943235989240152352196871596826462496921539242845345507433706437268815921958752034434083196903435841463477697511324977054806290737396348775790434975066080509547560655227739456834662037324024288421016566781534472283518974719527254246863893473389754924477070840998296880434763273000003710262173777329161714904183107216173902443144159725766468673905377745054473320687081926506943578429235162087877545263977720975423538618177044437107236208691454225103872118613015557453590925030396692772339093920271550479811369078352197469997607864901652271429199649494003587991704704842199502443039637265362224554181239728083754010041546092041571084966408905325050755594700137578575914106182068942749146064614221883219973785180887267988374079389986988242974387076061936087449989548687093002792808315857951016478670194415376446295280343366493422308291575720634622138261964420098849904232987788876884993682334635156013572831177595505790115813521532216470828448494801715545513954414112509449548259327701163460911423739574919544042084704723381173553692739044207312453647865679028296287485748408536180637315129697181249684575705304283348177521226382473278854607665269597929664745489997998106290833859629494598259817794891286256737361341191270899322951708029535239432863980044234845284519842379143245573368772092848510191485304983870728786402294151110022028985721520025230464353995793373311271384845322900387489009139125085381779737764028012956851828408327971862640505787078738449077262712060115415631558435961848810647203615117157619411714859192386074547248568664512020279767532642524556157332895522856030999477866921767569801462877677209507207605410198545622296919438844552354476542706949510050794829312774840542683087573849590398525132909818244360189147133397653571420928598725230762992162251205431502511659214031902355149230256433372128261782160296397856012969595659759761996946770888424813581357387669912466319403495977688219394017036260614308549271258311928199236019238681985992841509084372833134604622541434369832392015413320947470998075920231913626918447510069522820728209077472258652143259415637050705655384510228287908005291658381403475315848792092386782350126330345823404531986999545289791703944785090399155487092370870976487617368619140480376092047612793325590548570245659314024792956712251794390438120983026367557554096284219600872248855136126688993903930015863311197527148291792883643225311053943265350513581253559095185542869230328772528747544856131014888346746182006878116021937167014000540518423766454539371994665187448525492832848654197245107481687301456433944291420547410983870101406315596517562960732797379079524622076134538311240690853457135191117953961183708776294334359726141572101323800431192464129115516576233866273537580774703272173423092673928206717107174300108311643933743232288366355231577129560886386010567718963672000471573882757774634076496105087264780788967940508358537713652070532049036279759696305104425285438096385728561195388143782573860288092267568308844019380373161476592597836437589822728002694896417329175177560878714884079521767720646299325688102974143281786092270011407604583755159044656164488556535789575039934488473746349553722911161512268312942658704590161675751516113783667632207651362745030395706887367163229556521546931465743211413110993680018201130280357209960572515255682976887944584310846096249930310697102706072003489092265944836894970314980852637419991990330553276944491369321143859120563610291590677220075039694462389369926419381660331931638164585936947719429195336754618786804206752088283971494333999680747060338722647215824744467352486129398507813932101322499436795020671710011967725662301219514185338705609633755181458256197781653636570258016643117113908011787614962863306876866067616216974249379765694635014042830959023617322694716790392245350467630145208870368005615557039225228124799529331138402023954185260343853383157203315911493711192923352608778816009831160448236166789832699371568239762416957122212533155040051216618198256147616177336015657713623075568224539055553336096469641513528630936494853984584923091214183196470300484122444945222282961568363087213523941522861811618541075925834506414670203403124792655027183760450451221704130013197963800222893220678394789675742406651203050531948221117918648642182477835495371097593120817540261489418097703491830386595704011731009054263952594351042162716084319098764811799500771382792673624489882521682478428476014473198321970810945860817802889704661824742721719768684524643229313867728737337987847261004912609073315889485842890411750173567023295571738551820908819585381345003020751876164669964199037987015822186231428762093429154659631212443252201341190446145793938387976014361278587050491544198005015772255880103983457088694474676555489966281167250247900549600984900555238421171533807579603822952303646489100112129378608589659690178959319445099676009898278809090707127967173453075488939487509502776532606583386512137969682401707139962566036504827761835963530704553137275196058732048336625288590283651983089781819639350974521382911172531086923716520986704807628498375334076164941712940971622186656829283121906413551776189198829226840668370518907557946338593739515312881180174070738603301449980073153582792881469260467641623432109682906161125316133257251835771449116514970982723081868718284065202613317920339482298840295858481793170936704444663021343924765248151588666584231614795755014730015733940057141079866938816544913234932570259633339536535318784102313501791954123565236701038950275555803338400577338902072991405948976270180497746969549763686391638297933580992475198384879286694589025028635832930942704293622527708094837064761174205505306372207032687647703026552607103664125367630046744928196247213400849066172093640271057778823104272024139754876722628108348675800685717161222120155023351200610251790051979878132899801899742337852158705314824524952774625208521273221882666155426878418083278025716079754485906582091338469891988287680558579581124017581041889963219638010920017187571752085709376175462554012148855360112457731940927183376909543283328844504151770968875380899638737460087937066815900659461563505450214287583914174887446483506675505686260379663433908963731735419094914119938643694370583590696121009805556692751847704974165122522168733079510009313429812497841909953613130533832135407133907287877661507022132001759381130974483524475651346642269324124871989061184108566863032269233295271597512133757963759683847055697076013690371655496665493938695752681117017101854700499322789260598967241186442802081203881159033388444003622956071987554930950577100672043823529467372058104869914532492720319718744320265363203838419091626199459257903360099267140882645775506459010353686031110088321430942399421445215784512452302003487128957923235736147216313848011798630175316031457287889555271729012619439757462138196014259781442600342876141322207239659904372194031648065711964727374670745665668887137510728431146955069199240577883246061873310567993486191824178655476929599784795455661460955874158686533425166590885628408663318852494143542528906011423447394898004528361583219131790670415862274029767105383830651248258151714714835886616955215159448910933488460230913151491243034064141629913260774676851461110337590740987246577004346253942575981049433765677558544639272154266607427262435274474068056911398036164516718318632831528600175778849669930131138360418021455302078800885238052972231272058673685389513385864055128572544263060904795833909300805075683621543101907032235021413281995163167772690611523469463229806496406126410895731164628229479250157059915382872145260750068576051294136173623567570336961133678786457941890878648318590630594525761200058294504522763898158048693703302144346744728620953538361071873766753004514889620663288651372976002212432940264593590777069612621656450511502291446915843941089975216868317023702341737314989497236905801946545908859760537555219769560799938243082481904118529374959672895584370203137319913050223363064830700777927224901111132978714956803803908364384065854224819389577723254114735017761324954427402966183042365296183242828601937690763043244550725948708204819196245095209959763910443267089023549762860801776390596463372340301763349439312652331676104751903350645597374567448484625427990233385864005097175269562309569760191028087080043821092866947812374722190551654374721700289070168960114595055930382464142097574764476835821494505277461654947653684344082247282191284603712026048329117026196138663090700248635754891877057146373185016194947248460455399914275314150353615484372395616162718051576877251965469455234445681080355885130280631063992853112660587127020323452034094018476978903745096718115542200436615743668022224501704160401017115163784842262722620943108319964207672233496995147547152879373547364255528008091467423194426942092896518465230383151421115909252932399150445397486065321010365960806989763175809958297440802864491013744665887784340271303045064230485784300142388648155619570692266867732739613511590472434374031623568469507349011481149264654879974690665938138816237958114522752883481417752584411756684931499052136389983449759973073397124017950661618363194683192566956260671529442773083390527145482275361698552056573758287062132312260595810178632390527761863815537694517883391870953559104681368390511779393355436880946266081995541679622202691015353720190411649581547510262995527078995555085938714089491702016657489888075561353747372679754358092245510922167140184509267414627714833233814043287574940783559323960685166940118017260989363324447508288718473941084805163086577129997602510162519506757026173908433086844699502853815100426071371189116830510132587318410866109380865343883750017703316699303437456923342042851976649734442812496906425058531862556103446676703952899197608771891463655649644973041016102507492759938318044842455139839911289285996041816345278471957743483021052184011209061916318094218353265981231017841115592521220399731235069808601769564997858733270991994511366526638063562777591829494074505553756900636494090176008603532612644769004448773167534642326790917522582439554836681440845444614546777752902578878746122429682115264936858024616810141930308112761401322710128262667216526124531296415915641314625280714992948620212957701000940034174600348884195395139292365202507320318050029091369432926939434335847316842501414775764410120215626384729592181393286033716684916772489638710701622154769744618455648273594134854595720853505348389362381914275953849874055181108281460172207103589397641800357605525017229026715887692953207177131351883644828005084505922292528084007553407181613203361960314852823479175252207480645415697981704187112260087602462556560686049316092552108286320727653579761335871330681236809458305730390626332266314489634255640389244539776028604699452431215517070867428942048783993734394810877422677609276080722093185440283904789849270151271190803907981796251927956593205483287155159555515307915987637839679200508636440621843224605173608120108660729310068366417829465686286083103288377761408847912104825983451281737397746424584339892488262858827004054679751284028048420567965650845915445096259455879497902830257463246644335336998973869823572634054513726259464039381925179046351866687905451631993598072908214420999359121359767187731028141504290117322696104962018575926993808064879846650495052631439482899406184102320492797612035020994146005076485960342795954016718152013887400071530903051882562460810834143232927964254653256565257325193166261699702358844828885031986677844042529207109160447426964436982731920766601937123699452775544877543057495161835354199755317896110375495514673884914530925723191587584973069360585094992755418258423062943360999031405290365572323248183769627305221696307129956641035658123674618301858833281310040960918049468232053388788586904131833425339543730179712602319579013723484511054406713989513613811475952144832708652561752423581059377622161528520839972484268985522034771415855735062181087305744660313245352727535441840525622099339630301275444857970973164566489706443005855555871435535532202332346410234313986584118001870155144358129416494311388891285030832930957397192826306571425976208069504021492433394881252278838909851162956361325256819463183659380859720177621421358792746196134391999655142953784173465086189119621127523928595433885729761579852510572750408002332263756925065039816267216446848799061685841916533695528087072856525870991776764532091444800719174296030937557366805748055505789635578863088917111758919621500157198044321915641005064095124453442999327325651056470724929009900449867615510278337907327352685456710995412546263514608416175690831020189511818353189925681041946631951452850706585773260769428809480651167321239763071923536226718354332771764609940461558991814812175144744935640353561164266670291096369811651232289731479689397201805433677511409974960828187045443825826458812810806216963175580154145843427149601368954489980306915160301865291289308478361182978246990331626210323333741899110049059224467447388670786822101778067648698656756860671691280710068792987670433199443508941936009526301541730602122101858603770989920505751093500014086004391622324902317732885398728497311318488755466560077203031224976574240425002806403865869392969415961010298436849603578711563575344304152686947402296933916419984668628525539981273577476532121419406926953860458238827254727469087741527707775313140400691029841751745559409198769591055387332861433045957694536820848552046447627665462018376528925318405858693120630133136283065473645587216715512304354023879174101267803680436811007445897063559519207233986970773939077094987951352742477329988184134636222196362927059949869251680335920064632486731611736485081581136292571949567049557876933459571238754225564990898926548765711130997784887243389112286939376847749028402017215019061017447572412477864475071002354323058029214856532831836012343727893270404590796825909452325147079120198998269555943611061086172886449270596646032573378062023048196985928095489445867214579865350801212525036450209952985781530147131044297728627828374051078247547999402148146683116729827365399125258132650283108898900338862046028231940931868445146077374135214704383096756075931365112109285065590711750583722773833526078269291749116689169375699077746224752755998397350132194233683296512581784158521452253838280604660184080770452264314373833505718247011789034331540488894441633348199738725176761153919692624531390198868584521660821383026949072675202743153342692224130241572727206525787411858253015670335439162570934851366098390979644203669091175120576835094958860241551047854486340327932153483706840702079005836541398805279651829616659141331983098110819769614234656756978866210234697388262628032428946589690143021210305841337232052876451385818485091077909929559866885661287476289621763213714976473214348083914254228449251037162614288047899542417543787115501055921055288099398692791887012227713891157097385210171766195476869362840625745405812308163446014771389266945489832747225002235473605868187307860924624894270529279697251584124934450250732645876383706856698162302019055138360343775692254913156406142269383841585924083783866994005511744538810614997920404665828677823438444521035786337635230070009532777584556877936773356858860920676774159816240952757873257761944104549553041269749007372395297710922871713381310604614613297368518684585042472514996091336151168791235141275319301456332481499810782608443812672121039382189648317456760710046739102724849975238066196622553817241734351743365806719525243825389714245548090117054391473193802191173607218418247924752928595520214593264018936737267376768948224399870675980737868141612893671355686321705786252106029691691066331303043097847406162757399040471522420792500390107672029911771671694665090712506842058834678542805055698393983852905756227884781208107070999749306396264192614512459926252953664112939307194410169169756825988210553001207871332051119451763786966979861044293096618805816135935525906423646542925827273386861538116929007533862232845364760203982393998828056160934066108759054988631723163369260364526866874834353910195312267168388189176264546341919504038118362314423447009697818489409442515458274115202655658086180868640618488572697835047289287230005275952836930375756134988792944210839919504290234322818482417107287894258855174784881183301433931134452188758185974404268080999574265022344548270856492324814150237612469175686255568746438640808123335042155339586443265599447904019911664823746369497031756221492134213131492992366416291431921101121110337796045757414601392267167027005211949917138939054767796858625175583567170422210184124920123269362521470133171002491743519498803695703769637401744964019823001470893260263241760315353005847777920188969330960487984802193773885231451666545914584897757722911519886925050629071813194553479009470893718102707087840711433310502276667642014422671987170498469260296202576648021370753347006308126096862527980092249965562417942370657999391097138177908459436022290377551254277499471509721098475339540670688504362943721253829194403743923368424352230680024766392839491082979681888821797884109192737046203056596166297539460308833982194488173570994451794605660165484503118394737861473673089923946556643436070741162894077058940581441032762305381645113306654592405216257918055991619997677679748034317060593783363409828140187198058969193144974199854064776237651245772152255377000570905044222712852759666952801522077799904502206041452706743330660646409531947213405510447079253185819192378179077150660738818230889102179071327458435895295171412263232092428464694024989402224393972134719719517365347921319501335034006124819167328172364661408833155931043990774950435911377381930021394193704650588512692498153809139339330331569019429989124231806140553706086431500079583080773189854067941265492597280001066264796796896440409332106089806763104759723957789144104700659758026674701602991339557978205544373180313926714365326996507226838114586091491971426460782611358411768115456869254482516778327678021516461350873369551324588674893457609995649359776776667712745042053280316544689207275016648100796560020295387278642780549474246593836205891173293517465988231639078119777290773374565496656592701170506931579753170039587740946926750703078863145197079571409847349430001356976030353852479691610696219137918415390705149537670471689666867109149721177970270052632844102607963918607104440123996473475456847918880401638883811192230275918320066635356118477243640634600941071326756170708163464749819896937205444806628414662094454543642616452176829913530133440902591716559926075171745079263141622007345163670728019552084156588483907650939588733983818164049961195470404195607761242127837168352389296240845390277831028169194566407881492380933999374671767259111411155871315508318460708186902301510940002598970862987671105902234985839506069923181347766873395881558699877162672592891514809786853513050030829403332552391498762187929233040767725729360622597894270091524270050268585542448769615679686714878503231382304880429073380900904578939833930097336006261639012014950618727004529272594250391337782505148969562785655352260324186239470010163958030485435858489692757888547629474141610138999003648532164326664771926466264656348516799875719279420072642717781971228910610100388922157163371843357162353219037299525128311722505002206946550378423806986462712783487660112004762384406156126776955581394434427250612170896576447586252513915722723883781882564840053213835313885354202966101698282618042995644417344019855345894007218825800238714982696475327789910344818429038313851546531823961210776602136468786798826922197980178347400136887930423018943462421969025329040441730939606845707721159722490901514695985280035446747660843573003916107268531872560577525618381573122404231901689109921340310214162324583286645582251401303029939063200578939082488117847213558352305493463872241512896778337163782183834082931017823557830946806509655421330510732803769853322102165304637353655610612041889970899927120524645103141476497931858696095918292887266133491135991770695821634978206967005532590617280581584739034764958880497859563671203120153307253828988877393693779513889911662239732651466710789954075974632509517316811960047036206947929972829429658227346175277789998029646198205337945069733979584122851082886647303458433675065196401682209479850957138150122028803927521867986746991257663138009164516437505186341241226294765404976979842455548602021140355999254305947391542805152763395317043528394426121651967847956294515627409362709188755438616471109554312452684755788848308647250065817425541290696477603835304098582123454182086906506535468068822985668724266140606940286644151567445164140343707706031082321276014835928935223029467362600092087903009182623127346881954467709604143405397443297978670996901262391222564851172952327875941744499114939927798025540554921995915788529085780767216393476478896247035305353087711338276836014286061027897238863055643550838945909715167080627202879624495596287190017827644161298048227459110315167441907219937230887560696342822640064854815257507870276089959539987648599319571424323410979712705517938185652262910640152372280303594463939025592723780978420271596617009433185042602905618637348939780236551608261103360228803508360231482641048372974011072526881425037141613802232677759717403271705505505758934537737353225581793640753686354477025098419011166592644830446077398813576751982119948301332616667805613396074413462966962773333439612221599610861998970732889694929970004936703564514346616608347847324807865731584456343619416019136867414999755347617959695790343110748355559612597940315779088640081565997115670485384263453646228200218807648552390792126875056765040429855297922381878018177608177845542501557472377982848497748985202840467902799337391758669672148177365481653312756714100383439654527710512089672712889940066320940024848421658521291383372479262800286138138665289446547693341579696005093303999007901636373042141222454008352628156652438073171486893344565404133102248601741306921691172905152711871461525173635813202862225275254945332700927445461539990449600527702492905933091801668778195080384745903135043624113013486397668824864035952556175464165204348462748528484496434480218326091816446696355981080234910603952849900725257919710664385235378603769558350161009860795317089266073755672994076914193877135277297857461658356763828406938329991282445543544221166720190681112229331445859180894564705884037386589004614953617587619733387878836843373815808770055254386267304179236165637433696818120445581621376468024699299708715376127833569889516132820827543387502761227784441506473382385616069157590555057611754598214575861475956512861160576044159258252472395617745969296881358457521109344988198067092205743522312385023031017461949808838201754406739772662243396112699037155103796137986855527470633975164490729820950686580287823919685784691254025862277876712203929439836022044241501072095039168222653254536175924001494677027867376221696982583418732482393157423602836316763867988744136327034763614464328718112211136483582698728916411908566790536960884156811778263729694592995089879769036587178897890832445317420740382834522551737134933955630040072585767574001781654747969679556836344548449743546905570422696938324548502002985893565879980729188803448963223984291633399851777326583666878140244762035593171004730815295250271922449332602995803974036189873588651505887402505201969735828577611551237767167692005324352076658261139130560386729528697081380249577253195556806007769358414651197014345340464177442320014040219452141884688533329542820547062599498216677589557659652202288783835697947397930744581022187792495907157019285532467525266727079016465032557000118844099788709089323907869958450242151417619645295725204735867333227679059567274295115899117392685614663783277625183679473347722465319695645169825468923282555006507327323094698918109049722693279262103117323115617868240695363307826384988620559387818244876576066595164559787491964590170084692048883701170411668228033761525377131056046774619269013958517596550610012442073970568793499307299218005582446221536466497584261339004747284053664815046275140677203854622431565470343841158971961529397821859937517801334953745978704510149219988895783945842830333241593527905773353839235211163574418785263670767365605019963085965101652537189000452259262891022828979966805340239442262618519478402198776986428741350691207049201049660558050839929067786205986656651117176789521041399980701602442628615984051477024218085144690393578014271944585977795322870657863595271557735544179879607742560071700964836972668906849518001893490884569015659985356268802064254809146578643026856150880282831685736018869783596230158093692276830310744978673621296161466227713773024584417336515106924960218228545038213616175015550251891875788806094336280917769104931543537331605090183629971858021100050627244287497255454785141902156465452053697817394304166042587169500346331202696807791977293510751674136175044546898700707172973518089513828018628844531758350706988998804727149956966422303903051695621172430920189150916852544055196044146337685989167204434996888103641243551901862468365231190756762342697551343903213354269891466818827295064627418599377384315488865960708237424562187541225408878493182748607826834616146464034445990690717209056845202526963225574638243940251856702625704145881679247248006527479182285395362578639116477128902332154071686455849074449995694749530994844506362378377885872701581957116132001386087902484498917212589394465521385340450698256989801877658975804656685398437376809012582072423210272591229869495661830805646174023490754256335373882545558949497664007156838229668374528788329849992811257074149712858083085944321481989409689688006559436753466426239782426036159224303886580803379204785359542224182927368410565035301003699779008359656606682377258516169217677215944530599989540582575438664480900531373405190177076925019978355803332165566586020116297702755444598366192966453677782603854645658659175957544743127860527143664119601281405886365732992244046677366592448997276800697646865135024298710257179488445097778085047512497298081980852779095239486259381358067461199794796378361695588575359321607708631965376655295615645669677056424278293104055189866042963517555120715437483880040430946307571832546348929488877776357889853538882971650390114127499300409146633973037603790849163059518752708144905005035249828235582135737740349628302702748741186680874862484358102203465919846037303210646189039948869601098125304275292335789695936147540091221111553045967718432602488441771145181203882253518944476530797976926002939827491730019738117081599768032695624082429382181622982086854757882756528947405811346888179497363455384561851405823372245983158315802339225955547071883687937497487389003114474273894429528832795627133178112460380558091990667812425166910890900461950485037394894202571107382868209526922541795083700336513267279023023746800361164493537308238805725937579564628127018516362212767764644425231335192189390226994530834960428932882411620046329645331900136402947566170668050146876084644565971604692999833175634700243234026878135436547272865336866427095274462414654574328302164126801084627325224274473336985939923884537719816010155161402066225801302043426043339606916057709202969899335237808554034493708531373278453336609701450629999168517707264428626595598401567231154290794231764992854744062886257267327372377938673052896541848119219502400677285252983810980750858097759970251216313409350772558089782060095418841601613177503595157969731277637405435953323474619732805390674976351213085884206022563713525802025459224162907556391109338442965974706270439542668854388853764715542731674683354888995782848883983716152349203714337219731952696263219635286482710190243847905526968447385202761615452255387856067339543247953564277321932370584586451137820711199626654873374858845152344723507968135010802322798238388142583484918657031525142613556230871265976422388137610484465320228458055669884695978697596677561804884883457740675951458059574098807271071995239151643118286379049855645831329416114254443407318938567733501627967219151108486893541327940874319792915965965577169091986560441757032196732407502976190862622535019951208325513565094905908329805691889239307585155388488163684703163878018246513955905166552903661884020817803175684769252181248080917159889087632853812238561586752400403342656001278957306857445185168030811080391227905980125042942917948788854051423463752622926024140971326848700409549192940335291627989908322366643298205247843944042327726700151209933455391366441320217679403783609090144056803035655521286815478895838550183257853224494941944587093902737739779994488164367340900850672419863438973636155328443847061185855905307811890920260694156624366698107398550080825954493822127318178548830916533064711971969871302539617235558152999035839866139126870688255860187824857356765826000108364079927164205420735420063605003196737365100371277501148330098691442281008270887094649169713687377887232043309263328744402708297843408104471025052683169304640324508451987142765743078795418345703142723334585095986659766583518635616811985754438361989078040093101847937122755167516405731061400274732706148268211865867003530361163155116145417045523854262936357319213324075380742708780353374914718430356849032623280208612434207402661056311432701484803019316862986159259549052192080718166664121092815733468829087776246666096338390158662325490306343589584673140128906477316776637111999059770574480185001364734641247133945290360983340469675248036936198268963945270519396926354461932953258507266303488054111954550055353497803364379147029047258782618938213725981603532077754613785023324605714281784671138612163563094613152780403242618173646023230329410185344480244424551161942148231784190212378590607779960875140964265824789770083658596654160783896966951084435514050856729546224165713903616724040491230760213920091694525172812762665011982100901491300780289268081401284937084614703014104985812434007358165923028058538423925069125753151302579504869680514129925063225617564723713688111693502989648415983699685299296199578436511267990303043596317680588294962699070558758630295872436103331327160746401691488251419475831143677046595356394270561811594404714712085202501107145104740166926811203963664126943335703446793937483829682462763728342654879039614451285280094611976112314800844332629921387605870934426734474113244578291662228265281024702552975145996901395504488570001875100576638311806995364723002142159763888162406172262273315095323791114641809187736209376310826134685757872021168109319320581792109505931297445989841605400437116017324847926715911479459045874049488725546624629784931917359680270977043858034688354570611710454567043389886911423410033372722768410189700902440419898520709099137267536828051062285303848563070343750426437626232086481140512165055796503963676830889958825747155206749704516271865515097010578697385505817152659846533777882790559532132750845703355870587398476199789807952057756519511862788425005680514082464988005889571733765997752436202816066097032799471164996999395524864738546617323949455683108197572913080755856343951560647684614962093475243101373156334282835953979824354534736542467291154902303233155543242002437446942694627913177768611707682921647596585753957050170361297872956312048318626688827937574842702386236032431070574372429284643536556495992049519675251266886736420556649184593377420355478270597220417496607121974661608736273723339655220443542999473045943609329531977467351637703559155751782348057265541983732824687986125445298973657974067236498193611998453491595053905802221289500006837998652112369615315509157966979280568935438839959222804389361033826133999800402446774425975473249018691509496798725344476643528649810033398729525233432320288196876163649680024567976290675002578325873465573097638276323551111387812495679449831320951702467190599486264945094930462228262023523423892901683302577898709697795839709345898061856921978998672498831793204695530279269827383298363157336829365186256138786932015725683152148384324266071273987015475744369533610381078667785863678241133930923094954125748600835580093069535303736097749061375461863471457437983683380227807680286991364060811089519173599047701193136466827396088350003137525139390086042846519286012217858587381274154362200162414521856827828504547631909233582967778738599538236116436466932114743861584615144236944340201097100186416675912934348002596774060278373590227322866804945284733951240798039402847705249995326556366594551430471232685775622569286081667363636029823280913924957860223081840791716448126255446123775057407619161211016886611923608225221349009575602008960216651490529603049467686556985808571672125221491516316627894978731712279281532990915090349170617020422126885258145321603785273702551186474886601092861855748182207025542930164832324350848102221358681241649211519396298582294647555298889901576506792557683028907018247173195570868816866988822104042493395191031479514693145187966730849271787237256397192301557449046487270060862724258567299821920724532650265043073483931415015153042009171416537815344361940525085759507426645361090058740925997382848504587907574754676921779501001749709264834402261088653872179971101814847300174989021407414206295091649039625151409137769837661495282874442320064417230284410859122259696012609370392299971614058788343637451301242451884366316109384482310383023273712526112638883175096870467528888579584023221052492523999874219320947294660745783716604125158469932227360425021236586319685466466750714603713509944821270294048379595889788450851068650377605963731693268398185913541191343089301824836174142238040358744038247109081620527726994907050777504165660068120962851334098007348435858493170273051869685032399154786727644325175767027475289151690975394594526749243296771795982448129916254921600016706896093343051365382010005869676838705778399016983802481632162414930650157743591849862890385236458255885538505595240466218062740702086351249890370754448859180551674180660316976325725281162224402983911261452829411030808523025725675819842352560920973766833831428960654240510656775026918721498182913392676858171037605304696701520359857068504728771662508244498354165211831764654596248782882184968504481825544729734394027072661530284245359125103223585752798350529217138448047113494747068333904703557098401116432580627152587177539728134841173607120271446968621122054522322741210505561109202105182412415204383852528077473151974155719501072175271646384876971580001694511526956747555010094083280033119471079964387945657510477320519913904313735999326795069766618286083300880384200265926522129208655955938269244561526133572348616340352901854615833477322507333149367875291344331752884533698014345030849127180055972139322253850837363902658991515201426129681582135514005279494010142098729080002751573031227759086046297636514794685566848796242541277195468432698894871517267118209636569351092528687318658956366064716975128209120278830965720339789942105302287512318608838400624908099082401746129330443849593004439614100040164546653794937014614021501593351854522247650027981460868522227702397266266976533167328217566229895128467357298575969752060285693510707948502206337290716406876426553113227374914109450837186315482412079602956315308022397840404473576931054028878613619254181531215105959018922190730749537717326594052615462723617027494749835626541936874171125852063159812418729952255860237525529223500818944593045410666506904255779147984263913214896965351356933145886703829865978923092888963521749672383838326568598280215263787753013000030976603299835453295588064349215353389334185642511838849051411136718793627172647354025392737086133078636535901160604405174666039847299755675147104229713429012846786325825300944550534722610762811394973959311477013944038856020065852314648616562373309382093322675025161627721988393735147977832798052878986014468160752243500357871097522869092592981198051019282927725445758535802541818603483546690932571874429696205789643695172075117787580341969994714793763473014893957199339520344841987677323569002043066319875882083046351291492854218751658582848145989888750036998483751302097597080209173852484458571446395974021281720632873503103839633992935631544859440745976599103678178641749445873743707946666913973065962786195867776016667971788102218848588268511607721445656636633311409735779122111695399043295442659259803974351436658466572774173180859552351215891860359185971430412168123937770399808634943269442979486216436976738220558862499288296487860259130214620377065065531463540809391977294499651939351021344777574676917281225045429651858409548247912755615048752833804950412457907189543418163759369397305927669221868744637727768347173574163110792526441824534798408070160302935406850634432019219107689384002291054675954347034843200556612972236178134637383841189587968539821267753271122957773806666915658674870237975613635930756761154437429789567413702179679663798445671440949757196390440476310316192168721455272055526842911033628782699344360440749488746938667351922265436796338575580731654110735294742552939236063653640429262004864706632625661085461338083932315686679309419112072468999355648973813417603993018133586916033859757053288895543115800935108125400832954675329774003047834018309454566383483734677532326288705723504591293633524599340893831502945281409178361584312704956897087083837310506355448311862331496941746920462307132962201683003949390290436391382771194765805501029904813124667319198363408675256512464278996864661663149239389882390984783612250458184208341575139122652325840686525607097286013044310509134659937382441502725764750440672222260682547690137900474611281061608652765980203022629165436254653177303756266835446841133696729679968484685609480448947383195581992986708156715300750342159397830450233182209750184315733900579224088292224565163565836945254652979583413538610617506443234730080500731135393124861813225777865281074905887758006666912441199699540456143774739856090892362928142586305415751687283027992235240114520506897155238024061102082245647510338939440556270056227637039833647781993913554479291236271882534075960172362996661890936673651746801907848561602668031781523654755739074002789068993123232547322716993198003292796324345114484287374518199072318397216097965820165978697297760950615319386372811829817586099853405903468240776065608721013269141315648683025027651940557967945727832663052553204360177758421732056374239361414784330365521470145016614359573556704105024413323726117713312567076809408505305943793454474170952963046807598312667547436835746723069365969770137046709171015536020190963495837379134129175358967427172366082015048040458743163826077527008644645362657812267993035069317589363703309735271103157894413001525059556649967893601264654171590085197405873361214940603997332701537377176811694770767505090525814201834098275678973098011040441405160013516145905019688441755733410389883650693786052294051988650114132184346989636712294247243526297745864585732520082801297208274560350692327490214276780378782337254773445871921953783082818040243892408898714980917009238148580823915421359558601247775177105228267339456169568748229480677058269324389754628494228595747612773179229030398183714218900314991820995335231546517948085490083795703989182100472961355998849676337165030134217964996059236330603730562156624557085693321871473786794448976082099875946302774582293294192850952669055659494190419001517824346617654500948204207311539468045507465264057528464159557631027790576834181441293112335249186107850686839693325807858018133654111737604765767619885129459788330590472446824801012356006568936068300838189852595711034671301155740704908430524035662976906592676651450038071852563871911723684200414834865385340215516122703404233653415665595654206302128444374394526315606795449937671406947270866837062634386771348255674194366868030241700832243661293230659800051934686638845485035520787539478695071950754184882569202300276184308272630251499896029661579811509800046222225497195918584502842578202979700486858682076658595467897557804983908134761147699711032250601942888742870222277513229253849494408935330464858279052324661470019360470673382529893075873691635236161780504478030185018457439493642514192219555773216134080930096283749499417162002352731519442513307296619488352168155177427452835839380004436026321944323413295511227271444580468910367772304705345639782410738286658746561698348276604025275397856692019067261197019922462349735414276876250754207811959591861023021411057742938304986270894356300521979510529528137929267691647433884174201328612230666703920459014435679850490614357382410497681716261846312811949713530653430365691094712634634810174971324491014269260690694192944321439817512250601009729946029852715516077930734703404730508226608891617846087056671709095351701653174747601018334859932401438200397421048303082686464903421863024385473515155456475933509919432813776777480619008474408265952096435044225453074623741561567066608336690315396754475182664618852701594275105547371207630657062332890249455373534858462271522675376571316416619607468322834713892138213378212564096732725417725295791338496936512639101678763508518648017562721574029604506705092633940162112976122457059150617733535234824406211893213594334412220755837316989387254838412025745899351005050941896976544674271980966581022666694152950810725765233116459193250810207796865132381820518695736032607638364858453026934936646220119441885863902427459343542095555881299480508062842054145628675094775399779140192080391164209225886442359195087528703410690944791833654895687367030142578736048366951409559473214321067113854176259771549452004445882915098240309262144914940683930506291549022514658485398035554525417491126662870971356710306470138791318574346527521388385135010564298198480741170762808851980205492148266913147738753104446663885359653105658106905221444791251203864750227417764279453289159982575255696386036768528836255575460457297075145156672910813228784339499095460133028164642701991601136842784880593322907323859892526007502605626541664693221657604136535513325064586388190469693632615712698231327797846904548229598255022246762988611147942447500370448959708782225352004962332323981742947538428488825266497902574364759948494277311764940833638686623909199096114087163354432130899439245934541457470429367485695810950703477093038767193845959454539604929193008889581876019829853503736990430717858357319482216172927549131309681376997646137238861535879810126959946196000984730890626681029776127938814185962262802845610357834500128097279856962802209807701829463487048300015912667246463079695559809209467804959982855973981401253274163439150534564680551176148758534282533409774526123549851770025979565485592236011009578790271310112694798674852751836633175624253260500608948287476345365728656183208268178679458466047456920598963513204194830113687799971196655845476840518626100832990588276205757862422362085241438941683527045195888282490664873545696272170440663195257921530608029269122340134003201596768357406443762134952566810448645463672833279024612056593088130295775520411826881368969476571243876388403524662984296614791115769346911997342114963841607836071876722296912046328001794390082169432756618698222573752869872257897126975694269793529511844787662370422734283073447073956464260101369348188400479605374177690782016189687257782705582022283245000179078728917272291095083014874883286561133512869182315388177892463695702636159327697289192361920734504134256562161860218597594033578957321160913283938858975003465020510272337196131472373981315388743774364705275548929739131190699764778448914547937990289230506244042786285305840833203462232798251548984524870912013678950005977646684338153905364481028572668615896743037943365914667085419886213542978891312350816695145001924656235801978176885131015303478315042830281115779001234871082026439810775708263753879743783548983485471227080603087124347853568330780532002595714025100861164940935000484358980635379178708646017303248531432014788444230058035724570391469629770888918186868561888101667129512261426076202622680722289968539876689654882377744696420366459315515180453740642652199003292724184380176838082751900641440576360177853732284516021521203516790817425760353543106314657451912844441686219054181938258020581807683460857040539537972494466105134533928375866554049791344581618821773107312793599736665236987298166963323675999024828792936894686849051537489398510348043766194800207709376227909456945334229611654885353793574803194085098782492200170350450290483121060957950032400316444603375405897455937210375595921279590351332445243644741330141780418555620764290216481965518325378164214767735510957655257401558089922650547189840106137282862776129536287900355296307098759141465447899094940601358815026521955361508234040583083326336002284307625397239006215027671830331960291349470155418845604617965218077879285535088579029250207171082639935896437948899818418042646531637512195661750979045835377095963712210872484974811314463501692402512758175883981343715026493080630936118105329702093471756422894358395462290818395389980452502291533606739863483962937767702618074553684289105605417043269186145224676887396197011995417833767226365057210011375611013913973917361365740204004741954675538826856229018561626075341112162206377582022990232793920498198392208089920374303113641067694304403596684901405158061783312097961790513256644460993326297787357125096323084874280697360887383924745258547845936521234160645275978219418266315136208476883846649335712438479999570696585904475593452311396581958741010824703195863452886094217278874830811916819660515168814149334865472498498586390886999830522525126633306812508720993879777086272277752648455725364642829339400876767242528345551935484949117492766033729824203364074977724187667116403465530691632781376496943844648740464549688177195295808680847052100724241816202707814191042216866286075388429532875906748268253673156009091719483415071271938345047501259218078167161115857102402564998359943192320665466393679915830295738510025089816328384556660137366990314479394641697441248515605642586686615867105919253147415521742834491957061700390194819110289357300979545762779750122578850641739309851814756800174943124568058750524442748919810916239033547758386788306616567197859410842196993638574392946188579957125961531423186214107362485037310894172508520095657877983948899279543531262470419593198955554967663765652658826068418135941776708909289403757599916998761256692370666266078758888192155615126944295631644039152821796366281733267590030951638819691367595610408980883706943103785098821193511325015491022953414991142626235637517082810893110835116065946652450066937056046972685533223004089228454626054640751440553897719660689506716396019465241935780174563371993268910114791265658450704726545075315955972045753897904295838083028038241542571062307453560963354681696322844952113361187135176506411854923200569526329467546251318273105246917343085304412856717160102383241070916180341319843930749783766719617288149189230999988946144019101618903297033327606534640371940282875680589891316294551950154451879566207087294287426109337928344594788120793981127156634400300552924546438014099607670394721521555041388521859457057922299201633513423789389581946979752115216092887368780270917544766882457131913250515275014090658633053081221051972976850881240744947316551018061690990811472474913686187569294401553705678435984426968605109174471233223382385498582892361191133631426253038317920195680355208599752631279534951087620767561214282370582340483963391907735178700931560114742179973557957724682625173993434851914455689479034654941535338058314471770746733855390755839824594934306885382006622417272592286950699387026295403526670086572603935273561456955437057346517308214560653793840161731260094318204743230083614620737634743832177175056141985142569127300015805689071047122561703989962369747792258857641577422178516493250630447005530815219309888132075076411539916150639315715714952527468162418246100802081499642174911369905315952987884067495738423042606548675551484116258416525661645332130740808708147665391954622251733847309526925239318286869718491059694582787566318957955981862387169371541291160483773790785097665007017624923856957684827557259015347189286864594111560116001620121356345682083352489892817260689973368106173606035089782099709284059741064688371980203145833424123652181308220198737944336579553387822524411672482919666188892812056262359647076959093814047425206568858186473836049075475017584291941422253101212372265650260777246504461192698527048898872806347808147710239759642528333495888489781497492026513412262815299942919291010588196427293293141516857015134068561587811207143477563854333567724800722449687022653041121304822141466952989167804600994485386828224134436608131819537467930119738967492329481662377899727688132312765972113893310387092434298673671314297674131065380196755319337175393574081074469052390659681416267716680923684100914630899193804452297095692341642648027634604194922517966098385530321665925434013655581005608093136460306407163542653269035284285200101135545431890244515129241905131451531486769698473538027253170448430915479702924006914377668147850264943676725340693846443336859477421805978069708169493982302380454869652045336015293023792807901792726368563997520719205947795075793752811881183501827328306451781316638668496408122332581213799531656900192397175986902659149645826128055337211838929021918803677912565436555919023915576747250273286165884138507648478563403507184184596721947418627212072806407435322181908578567162362450731475443377188158407574505705241236343799416163865228943833978612540558062523335458320661042755347663562441789874778307150640546765549896124047310974985734140304630270556693456655326527624792949035547333460691283556597626406923279574247658004749310688758426084110979297100570074348960609983278941817575470182136294673130393708182585622577551918958476463284107920877603705177244505239457954467507042871618240338572198951123452903469985276358925880184268214156468016860398775962202851244379013493934845136499762563002728650261760463860733584102633675452427851227899209818060139317167517261255158529322026503152843788035409510214684458264321570742278170882195283454190430283810249465462405944078324678280800944008191253037257121393125213653614092124640640507514547818463607267166239645106023353410078340547145990335948629130882152873936010267626625220215237144425833070456185405462952513590482668796988009719792213224652969048231220022981299874158130886499404259098089215537362254237848480232742913772392467102297675851827040941927351014763278982939376237456168115454221785273299048512771828972440088884850912510858946271344719663538910595526023322038053711887221710749866453494053616288035107790316028393162373541785836575674990486428105010668407566859890251069889310105467857530393079518246469397511324400824114632877440251957308092541973543906618202196895412960435505719945746093150211566208562048688835220872136568934698021642940262067699262609185407271943923631351995523569040773126635869565854542964084282352566260118112071922768659166945142446434903398369640638945618004483849227350755704405955369671215082530497971358784625154418069311148531940472586075738107037716125835315171137165351294336371366948003417923056667363592338602691054547423484622306485715815450134673811570645679303896658924843801171066780908363605070492086723952547481994230476691537523441490692428171324625108096552205123578753333255572119309488072519295632896509753104706648014438337100176208976494138501807825087242537070435472170487509981191395280653847531341106914308017656850367747345728559826241544591847974519829289633627121808790659950069937004868435596296270042723349437771569879744073668002269753989135941982711619988710643445636082833411280670345933516552361809643433632838883441940773291338768602771024395717529176805704483119515236370325435003281168478003696388634822853096060104168879937293759296427936754533296813403906956956449633424490191259548339229435017221783966459399462834049188880266943577698041704482008165311501484198805826365450169275342542378052024749134505950403284881559085072066535766195846160960675049752392033423922966727650275540600248271871942983646661243317278120292530043438225458002384856225290421625489728647500432238044265813844133389387519625762019751528721963774151976837242508378391806029259851651437071167566387043511314242498942721899775134844847263594426587192158667397363490866464532880306382441711995173437746812956981465018854624753318712747222660943734999420834072909767651095476128189834111049592358892539272192781185277871506672462427856335577654006665949651107309534547851218513902498051616819657770558033995050732283489015716158018544455032158898675008787691427672246974448208593128194572621248694573383816474247255679883072360836182795651197743668126713984561512179526321248692384169658423640481819519680703286423784655356244019664916322040948343771712096352847877688398923874656169552243635981990224011142066479923497647452605815501948323412441715928925109844581594707763205806745019966202593730047035394179697422896961838550868798506176410565919685972619888818332912873208555180643555382770364968329022997446905272390041101305565418804709558685614568122628767509984980350297663651968826899748206789816306075932062103246526747470147407229231667113834379054349128196225504411409380992647989586033991827407069594081556147768585081362732952297564125986049554846479425585216290601586031421663504822671030843353919164935328771341983693655555677172333830114266532691694571730950365374222432245850845431065739762816496346638977431942738606005608474717666199546710365785954496734225808126043926549820936589199909855692279901205000495801429266473758526765000775652986782592375354654163621930775791910620185621955181678788336566720205551042717983840716273429028456422974939821606522575723770509983315588077783547971627530092064493293585696441999733162501245121249687375877172538532491686766414868218880354171892183292841231556871032039454083948503857618274306991130373938134011159952836392428819312262448935678613162505098318040456927219004596036425955996751708095687320084603914153741288611163386613970730506787875895503462842518813510208777677444299950393514168642001680986481648015265850003812784173074502951750214369899062606420217164524603988588460606181078289326132782311360267762631946106827864875774521891602276624711653808142956639753399744107332451197343121372254358122695946224110514961338083933792345079804761698458835821002045931642438868455314719923728109917888377886295869087475733913549493616865486773587276383129231324611432643468075624562720003607804357980941923922835694359561960444861745429860039820595743063204131958262048490607788853816466607348595982453345844376177965490298670543556275268910462005669480238288625529354062540839034518087426683776834019079004499433328467642830948486252526193599254789398588120200070570287257563715061662909986765429031166224454902128085479107565915720551499062420955955322714949038653303520737665261603610364720567909172877868865623813013309403782023387238012026164166507341796003091243342911688235459867908739221099716530297387955823952627013066690757155562476753091601737608557797716864144822453354602572456701015883106039118189163319288859527890996894461563743667889765324314169829402580561738987378315914266966793502958326390999705764036179479206314014203792636708591285132155117606853325833101235999787605974373579708674168436999269843693563005341700532750971750011898279261576217129633795754631702698207673683728919074771375637386563904483378226829343004281801868461593610882043930547971888882954422580970105898609778430538069395864376189727952619625042548844931150113732604280771446582667864625135056192073666912554603418091472923081838541793795794859198542282980636878072367254893180075847481599745949156124182398842394296323082536281332553779515083169028674800859528352999487045874442096052694197877958453150768973671452369215978868570305946552431895133461407182761215338806853234490325537618874253703199787148785417200062204426353757589754900001419946543042592314532079181609691788298579050743844919022917180640634730026920489148621574616377632913133802658957094623015199743545933804499462985073235777288235013690316055395931922115835838094955727147446574459656546345741366702198597257435966409847109232992088403897783574167197156150354503266364843543667882578721423854839523459988380657230665226501482424472072284450474411639200618388211806771586441945214962889868342734519038971632380694459060410543620937194208343293121171475843990876600618804171123879087512832628084403073144468556869446034163861039369213876891674422028861322631973610610896024185887586338860382139378887153965509217877859575757631512669332341684948698764539268513260529238143120141636353379915399577281936668333653449322609784867827854639244078988115980467585496039217538680580710164512984218560209007004970330393870416118215435937506090765440521098021727324050636858176926910360547156197150857115786244164490433732569262823325684483429788626249201816243682263751201233109619420371553416606776836973631269187179529821545916255931937361545077315460140775388327624706363888430255913619719428716796429329573765338597735684452460268882648571626826106940679481887415809620274857383251095424182942859258958270513191084182013630851846139132973193022406729719145587981172142943823072162906071435169076150214422859894502545650617424492937547176169058690324297381265744601769055973590679740966295592808018166555675098271609338103895130446008848869378935560187371562315798975357827637587724568366172527321812437774242321050461554058924172366886951933717607387215522111753678561138029447840156040487198003657544168406784444073483660430391862225237041401359770092780521048660879172359976799969809755549754427406906658308202683143340762513601388310717160886607059872745696197244504017441497181469654531399179838388667089628186944064463467230610602200398821303902977911926689144563548081526591611567024230159042107462339337715046162950574020326308967374266419034264056063821381077861588420255313049271755059612071396418266216930708663244294040937998622186828831855809413741880596531805903231863424502849000951870121091882880441290874886425354691931932148891374623551847470770805637662166947191300837173140687218146269357307858973924925916595778754004789662028011989528023507302260110019243395050268672443707698715616654223163286418092949351438701377542579620707611295534149156291310391203378251895586126111105248015639234056066499921501645422017497978109727701640221756916550286048818735202916471173758556404849336312142398902296124849186421494993836463097541953181210378209392817479817237440778355661300004706169756344331917279540536667625871102399224484329264219484456317791143288363690905185444148355278046053172286640476571661345139410507304613222749451272997010004424906462828990422977335456604330931068955243029187419142960324702350796939856685662686078467293500453870038421540371750367134146683620664453619431468833188596587010598794203234152315352875192254149976428137440921776992075658557076894977959027740933978085226108276290572571664218654571136430411916821530189573999127508060763967705976775428693062853112839904969626285080740700099291239106761776356359724543148993694484929462076118485235697170947279571545416690417778412956970310779078737901916318054533914756247828616087371533869640671221046066650931438414482392273760438214247063316146773528489264465724120277868288830451319795111662740956173137310587043028327735150106446824867579956324696713053874941896457749424763181287747623011182180246719175246804999135897405298232021824678723813639560224457526777402585989927920151389622354865154107741797892887768603626852682736594986115588908170035827224204890671741977565012281116901412408802783846208664270039872812946978679749928994155263621270497971746379663396190217471791423200340627701482571292872492856327312670967631505059953705111108241043868152045907865643196704732051927882898419755139741377937451948499359971346009129944494647885291557088955590872608211149488796145595150750351983785082023999625438303962738341828954684557180134194210767825472930775334205430546190972831867704679257473020477602520799614366215167827291378793358068701067040201853771350124807183557895364331973534125571835503713285991156416878612246425670953697835164112151383688005549380122098402196252453587687990874562528464555489169781671640521609570670768630442347024496733546171381216533223915713036718116459125753252424875323768681107006247041124066346361463601859388311895377213370002914467691432158621530249462200393713166698813530434912683829317390466807494485056770713897835848455405708745885381300065857728939652288913635163857950052079525481622442802615274597175070054953945511116174630278768191522509516348928602971253596726083556912011814127984030539412536472124917317029720485588001922320920828043899282712100725495851764810342381491840043327985269737142079449010888623496736229012072079120113771613210249928659454517304354439123293244913887063790854354067512885640028706017037786394455791900413656686000808086114319856543410319440893247232544078694803134725237603560331211271085923416459991777691898683328633935822178375123126437387006521590368051514996185973715179969338737320059672895991155718435330581459108431778538492578998412928732536344178557468995078493223971014291280696115602172471400871779584753223470122716699476126774726980288229571799382636548838826218129866750971681779845429546754608288229280410160331540228514576576561297206511479378838490866752954227775189471342580939827992837665669306076671369224806477524622213393798476808578187071637126500002167880887696198898392940915391222147448855294883960073838113342350069354391007209554293882512993952876054539571403800428772951458610534473634482591683949302343281889082859992011678129116331302159682300597237584720968972174539818853760143406070272617435949720648764310063437549422151586106215445189399256727497660762205933909833856520093745795067467531204677938545470554948647414061314279515651802318561086010862447818697207382013493719634385962721115310430465152084486195306934795867251420785245801454359857131227175749899116598462095571122330017455344804958402450081935554867629694818918382150898055508490557253484700809703401621678442956768899084588742137503200932733553410758798209709375492210312341866441221285455755684986830751756006092260162751970048394268088604797619994898941151672285191778110514174766100662248175916307284370101967135828528466188775711063679878837594084253488573575498291156579008612022208488611622731298873243448182970499187002344237766919753768329672052156231027233857878855074236635954396786096719106124345222238492889754456538601183823024983264841060259201534916349696061072156518156222888573326875118082792086991367409020875163999074663347031020183686842983347599045748635385523785250233581903822794066336218245925705425455437324624086039850195246953010828209632776130203053487484389386503785267788476139710166994517619208886399465287458688374986023285106534359888094541973673164368593900464459343467356543533375530850507652899917881259841864182399897953225209263693194086969327607957389008879042607784657669840697449818111941251170182406929261062824543232420721597187761546273517133817156503397924513783044452350734785015240210786350268074327723509391549939383097418362177786614338463926107298084937111898836244999059863978977638330275705611735722795352509945847976534019357892204229444511410171220381042695666775736669581461863678929716309501051432079792139835671748005190531968421144452680431434391791179062036699269422989653868349126251848986533233879444909692977871803903354828902092361051637755360843286466910321250755037955057168493443380325601222755575325770139774912922661666415901377811151911754016445861106395477439217097940780025148347684315831351712687777756217999184625400283784523741121916187648494221454528179562396048974686224539732592769247052654346670585489276421127030322414926906166074707526772266196847613957430303201245083021842705504996758481699438643573316722402590764450373154522224148561623893682865268135305960312411116908699863439614497170739167855109382013626535178704245570416435790074308062408916763198706316915058602660093372937922928448571524414461879275586184514504391235898407229930993981400902572101413917489065586430643991465384408728652678075392108703073458486683405023813463306557421527343811766534379160017368891372561050172502689225392513342224218437228445536642890996664183800536901566924107197606072512436392361040956291934883221528457117085904344807031541333710180662113519986088934802431964655976520516506454203819997586004849925557654680287175948203770797534512333772295551267575352800566001838315608925843008771698195524096229928827298289924949877911817125164745582307646043462403750016020582555301700223796980373932969948679460667088339033612066204653260140548914113939415900000906839111870760442817939782451915812309002350093852109293612272848753789855793346632487132316756226546038466762589739748978237683784201605839616059179172905260596480165615009842245754143110172462377584553570352860862675611921520326120495960491972841834278500895154984960231516680227924051008705798840936876043565099498164617950113809510880556755134260109412381421246987735434500071623837767197531522017791853873877435138613306989285884863115745466945470290834118784697619192134524556688844878660200623367630694648260944808286678521473876301890153379704133029380802270378984731608077918256838191107855746599105713310171172900248380191425554644064583847239075267818235104478273576297540052266546542752633370402081328985629720011106469041600589900273067424674300545579041888367638349978113147700475917791374619345198232931802774491279990889724339604472958002912222241126229397637411839382269457125664154887482916129632562986467923437026980707912820274692668570408495257664162690074874766608890480312017398380755671976554914641615416899263512416147779450510866931533297015200105465679485725847969150894229543681237662916793369832606905115590302462253722915937958062445508806385824652099311129763923020779882190393555493299297108967710931050276276324324880837956344951876006642933083483283294492361338324683975814871291489314876572319593509080945600609746689710181129568602848617142943167390662671756476319721004103736870045077310502272966497211964343573852764049782519668599975414735926387553153474503777801212687363099221113904550786881480853330506475311983863310940164160284078011410486593221972387712126197006955409557267309295656838552751743610351183072007372958938411505234523559667435899036073505998656099878425227075993957543515137955388608396076028545890201344836506018934737796127586501781834484695228566102267303264321398258942426376621873578864768246701789188349369171783972014134382237677819771863006104889452412167862676722245587812534786347327459752450975451564997366934607323323644192531052976183214273323553342954276351831699833374767165185787014551233066180260663168453623722537503671159209103812111630678264410298339953771517729145021333181806674596396256979903822785376654575049513856485594522802526402019791966971500918460311137379551631379896358679848827265025029481110520732961438386926975725115759385942809624594487490386906944395450445908131362473366184495061940399544814658254947085014327651396437168028275563230668917353686518669939959205200895611966743062071458219950444562773753391594186589436629731889417203767304419321021774241199735470127283019631292779782287562626647233975471746799617729435030914128960562045782033561252141185814300644814766195917391606816340015378022911142340376971158401758187909700260467726300462845100287615771111167320648256676144404222773932716500510981797158699950363035548826462338067127382180076813962733148860639537406874018335147108558386690727092626586076237964754263251605411016407912798657750818551438559793641584026984700656941203597398035806580295349618585631736766370883878558808994566291118266776012222671229879637162148292479253130760551138871886397831910433587878690215362269864037266266420654165015825384159779512942540239582939550062810891130349297330291420892933856704437527378206938358112942816920621938462207662304902433096564901753084929785443960701215730912747361028070525186691734550998076931681660079185643667662740852264031858364394955713703979683721579543134587883214520437123655701569270433676132934825207334304051488309520251162435475541901954814767844196083255192787361473061818972791891998424538633921564615534986277502240794854229614345272305991847771994436021239056896743191188648674020136847637224914911682113612855640176904603901639269883666395397548477758790444752502446657946281048668759989890469826220076203321411607143819663325787306699961914698692059863211948798430282811259487400557525990732835190806631767735929834273016917419481374559356426693665018047560301290813291511507728930556345834206507870772735464531145879589146872579629166261738296196290717419300266578983940228897805761082631785099410702991578117023455552177667125431323780057223392789304584609187241846037449855991406306242443351596730816567702538894480187356059950955734621772231557377338229612806501782769181649556000937594795547063623079020948418002855881677887499839149074146469947020185244543422936208725241442353172194789250425194605503120399952183503683315039851944034614980265865768545664732622898027601559244470623555410295757651238617247046386939486003523377144842094452215123025043498007590551509792855934097750576865841640005035695866541609724402278320394970237633623584498358429297827113550493135248503150829623003663543735735650286986556217273958056375283835128166291380282858268014460445944478805883743625749912358153037025074138259726655472533933420971099122446671653291269938436664617542399589338924135360256702145866270132791048725527056476669966651703833512951368942323622098723482199105557452974010368954261646626049965907486668702980348947600609152121895050240189317768379568027549526234281302118342627527958115775949628172082660949588755037168067205773570551934557918662210560754181341910292437865491119049629163669102252413772473972308390256308119715262179396417929713575232390493116434385683210459758132720899605644393060592170628268984553396819056498456802897080918330210592143719409026917300234836344720601453854509461197117274574795123258248971608526401522861862654301824966232501150752628282614793546553544167743084003402557890642969839068438286422396303090650883437001132135773341679516235445783227554752147170765902375545532096910014078403837733100525342041431597367633870777071140530623184511797475482822991040012138092853347235279213781113326589516852966358482083382162153494994750405225588966640871693614179841491964525029428455667944784754182055093620964871923526470283753496753874870879060678900284290696543929138186008529856525172264295365354063839685545329593345649928880562095873154896761270559219418211250797834750450124378305887460289069089924297800055627198516724510687578646424753939234544619460154449375140172594469410877793089130001889490202816655301288315288548691208133855845278050798541711486240749440281429076562941819243513674309584054992391994201255839149690740664767529460690424755826397280556103704843718529127240115705268682027736141866569240238247411091421665982949471769090851617203925521126684002630434946587875358435883196771570518059758371465125969794787083204765870089130621948311681783193242325833894360134571834188454145705789299298271197429399712091977850637634620783244721231306638670281483365432436692384995079763815922108220176594833513927243420413327323286851234270339086182869773915571584524449792034364750439501214541840603614587649135698225443477162367641995432396382004443405833383241901700292397113590407103177550494018903883580110774516574672076330679404646902184217861604294816969594006587652110031376970824686570046426364454262467596481224700038363237390154894224905976373446183556674513874560131505300672943993751746745996154445883965620579033189063084243499370985602730929767215585079072482292837299265677579521458611320705515456214489761041615102929194962142366919104546611846730578128179380876438760919958873476666828288263672710767631097642693036671810125154851747557391485697759776696214038859022953216748647855436293100840478677219445057696933692345346604099379709801688439589994511197564728014863524625903020874999917494481739062001137170007761505141103958200267492568446600792305903471576386448015749458750716053770283560086657357349325440997700862181103155819280726192995870346566758173756219213173790819668556530421120688705484542415656193479980386222759658167299389725770313312657967016535876279426985599589254518799722921593355684906029437853183443056614325408969112161537079672641305704183196822920017411902199511166163624699722590258881371573983165543598627864484206304380338261226562768133270718958126840295304699268689727359095006703486785828783278148344973592443573868522625866415052161452540838005178562803251306229438568174371907516801465767811420758107786505154655537887504605512789140054221990129396300630351179811850982154314703253175025053922163476697987492679464874580855994990412533441467874069832013672095312799267333824653934108786961771911611820183912994750874660718414763671383209903638649424770514146988569221581688894446109919465801014653402037639631253574646139853406183934901735463908389935904574845744841955847830663999514634192262928769156737537030556052668477818898610214085109642832153431242928069616572797149651815899785792915491379086358308008017676755930633118746792125992710165274244138535186350188231315877740228362897791327076213509825974420835616886974230058785658349627613790890696786307881478171524079506411076735826749403594336014451443837270928785514012206617959005515116518956155404719365833401390204795165465007229831273167054761047920465115341389719776055979236816454690842943570755439490051153719754335178153312680425900391903357920778238492447223020121059613083653571774574965972630327995151077787414673539799034546396774582136514209986609846486160434848680818116201131875594936291162713270387797980558477838204967790191969522877451362427734264304420036105044808381962463773604648785558521189472930099301423754661980724252612311043341839611931127451034232345403371276549660851962568154998079709265083864206557635910692647287956476502577157217878682175558800421341613895777617990375663019744463652110655156602304032488445785735412302524118705135510304205712067129777397390816433035303513397257841565507479624768051592757633384785753732619710703770677663843937161318256405748197120918116881981570782650373807150858200190786397858319308740918631971267438142380116765143702780644579997089835342943983680038829299551515058430124099762020184936069567004645993151599617389993667021300676122475409704899102893994180520676619287682347721969013480904543627406170236418808783512496683145098752984526752428614735434746775304985896670669459440403042061489207807278372894762327219239902185293203709470859458429791529810924358140343382199259780395242708699663039499531427627880667810295709168857412299654380051126985546728403215138131538070535881141529301206736583168287042925573518558211999927395683997826790382053902323711833326442426192924976955479074353490280861594843069310383746313628889058078189040336493829519977358150337067019428071849050249944864344632296938890740513382145086649753044045716841945242974956332852967369773212219239873391707612080405063056255286867040954209385085288169836450607424659920090793926582958382370453449289750580130944602630189799209837237769207456705840316198889930404294146352483102148184951884169008345328255536060887259937862050655410833738574850158993334551815425052801578512748728961386901606975230318602014872058314707225765578800060850888107624171905596170511515473134029574334783797475740308050940220164276748530552237916855649432517758936944649255303202613890348918848654748470811831616851908654145733458407124527381665121620523629385361983698332035119261866191093684519581412124047064153090457419885279339221580290743894780993479199228537218887485163378381133813546212060228169686078579919830103488828290718219659980061176588497215061130342611153837424555465626099569365961424328685634694582826355143116515018907873142516360601994245918895224224635009510116118027212619609295826975734211497662375358532817195962459186794253201247899553573966414122100500508853451089747155101957334684371081355417958759665759113583085941891253530386599999434172975689513586269361472417183916880373007460269244643781219098986082816828023577790987199033793851481246026301919110689487589802519538405396651706758208408621547713734335651160423882701576915614539580897725503793256993757496501202614912445754815908515654806769612942221694072104003832281222529824064091945153193927207956146853811043792064797848976961035382319630586718620228258915515784659618971410938864059723779470587279011692282498601801317528898877079097154154618419168162978264944574226775026726615733318646029327148827311733895617080655536133685292854197670025106382444429660452764451158847278311392842908486098162676154854263649912141083895886272149710604324817324076893755907366755809105438725784816686506217031607432468864512758358381835787827405619369029000902789710466170020609623643506582978480880341493316174574105192643176108002897369384939149375734767683358315080131983900079680830193714599123901759185110945371818216565624382142696517394079853509033104854579555880685702587008748631158313662134107775426957690077910016515242516734542105289140482160067770599662948111520826109688529223989978988508502886714582887680886057048951884142471820822032885336533520812912247062831558223120514028950858131040759124564150844199816952558071557885353242119107166049804590487929625055455623720205107140060545916135196470565011286899518247303587823894696928251342175365037544831783382977724601510983146254634001148734189238691171454080076485093103072067653728770978481099959118735082126844547538490768930849347085399924170308794924989449352852029297796360315325681826193533743726612233836116223409458347140890998595050182077368787616755333870457903782673700065316738565317780587083386303629851075875469866385380429688380737065949774988621645433838355641407144657848749818560746232756876512460110277532837609655552948814477285320091215913952670758718261997206132626881070327688394648972928661112470911146901952230677449114224632898944467627023448738105867893256131377851039991880490432758642866952797199130636666210876565507464871685747247912656707264876231527172294231439468071747714741262508295924157368640122949071061220481378174003679398985886327981366786257731757015859373081249961219127629649259357085603778815164572623659584023546817825902564842468893776700399776208525733624768654393694455217096421012547025094025819257472859316804519676339161985693079927582706053625512610735612223130063133100262348985590867560342048369619442997562230423156477504160648859608758627632176700721620514420849425651872023229316659163559407283405826526667779176474357735710034922972183347359983822870824380130815399611304932706112776457271245522219148625739698071080940742706388448369191727641654983774584597293868639443686550248528998829399691283407528795547151826329028791298410002484441337757979660234796371918985159093572733900124632240863284763078213485571551620026440025279432426095753438213393842141585385952023769463325677675964814301530742878340851855970627451309360435540130389306315618514147035970056618455998938818872507601821199757642036870994307103331825664669041461062573199941570678198438953873900527639790780376005200067312652834704116821377636877470500131577436389467631744546242386773877664683676321140605568703425898401557845432742276338192550228021005550265389192447128501789969067703340127130573418144853962629920551918159481527728942797537053924871157303122909111666398099524763910929990508625187463127477163626411601892645113360139841744118286668861286924519913549266111911735087429100312411218544576952482479154984931020474457986797064803269167569859900448441265256362573340367022350028989229995108547358810281474313764299112284937882615335528334154649517511858032645060356678712731153033063955554503736515489778815802437398397611145881204238157776862014986888299248256666862334127624180075778254660404761748781409188639444135500016714713555407125292230116827254615476315725712614706684527716636123751435861546585911996183723002424527115493523698658093016912811963943244549867752018564050244109611850104467617481518719736434590220819740356525335880897711440814420073515389956774352585970136384264131538511336823436085493402387871843109697987789424151383364711511319679675991302001021314952708600099207848540992728057060454343332919044143744186399217933707459457304585171374180642000832373616205530893678302507792205063879792097482240971755157162057384689541675569319958317489280405475652781974694326858281496645794581928927444732132500265877545510745158749508958972940613208396763637393879350182152607386363000680155003096017814547567959975305211452770564309642196479252036162046092587708324492737037746396816668148626621523941586170530397452558421075698690773082978723130529453096388118432882499724427818942576304223428169711153176371810132535685735315419929116890525546406930652098340619901949486834123523921547447326733582561243021217189997338540376305699768778741441575776753919688479204729976203785568960487640959866860088569600722071434680735889819170550961942064079290780110554921201212873186485296463012707096735092802110573327231411432743201345962873292764366507851610563988332594696638697340299293084012186573939352243786511611594522902225803607910495964545545799930428912165208648102133228186812243653519034678771332460346797485289626838326689721762629110337722632791913274067717123326884564806835361092980244050775338079917230789208928221675165021118879744323230051062197176122144729652165217078085398755303219347336585427861262295981532583668100461009660046657842382431005772463328596151440712222272382352785253832820454586815180564910485668536658800567104489586525444264801695545363419084764108941557451338619041897340717083312129128083434301992758909653241198092327233543958622185512670519005815754373766567195098844957823121920847556189425701405875814201777957804835596187546450959301366902931635693849316862283734931986219445901621480699693634248285515609069162480352542702573065586864145775489829726292760197784472567579563868190219057508173227090678321518985425984570754190167049827030691802806765165345412135298004789439889451980211664931214082884630307483790607917673361071630219239544803219105650853885798904550126442872283668374224380546877078714067486912067714144538908748596446162514153538389996689527122024176205392162451875286591660550527820122099284071125849746858935329428209692218429094062187431127214834638884876439049677593217116926502427688794247691820477855871147388683918314502970165344011631241879050240516483067667920543307097259774995902263601019109576925080029556614420161995597877269544707199442531662657775491546408871904075919173722067661474394105395313563116295352259016280987436399587807038683116391273650753276061352071821724615486274768592567459033616576737987066570891323819352466296328076483469029842613303555298047699570268026375841764188030285993729264296509204711976699430250257941657026231632258909839806555481000489098703588120818387265020457166953135724190637169348472939807332295999304833847049151695372657850391866415672040047703214354079642615786921016108289286878738651149430633329647857960931621440631040988108775159595531660158292098659548679888262206451767017107045442667946811785111674595306611762185857293644922204476760712723292676555189326494668505084318555056895540499534961583250908890951484584167605622320586132338690105484975259860523608401880289832732993126486740491741345558297707538764772184116457877764972303439141357212637166311221761058589434179678153370624663946897352372074272911574871039701946809300406094438023973487337974057938455937577536150039929592765678738791351609678300571586264482779495799828256893783678454227735223323116648077483607863310299995035436086893992487989346269390433711331889528035027753625371808975877373721395281404916735855204200980876876897738923204744217455939279231525913264290583215306201834082364661458463528166573369150918667635203617674991056710000160696040217156806122538348909880463923463394160556050518985834877180599950508239175314155738221599594512779421518523364277922804716988010457439927905421638309153077917354236877449718408130016348996204364521771898066505594290114648713700687048382574993902783460048223292532391537455445581593495437158852351444627192144893614507053877530565016822632033720134385843503348855845907981625194053589504453323953169551767026569981035235459063456501104803109878683791128278153579069418466609115457022407409534604689298139823398099468338150620168042469410896691864961622318897564766870118610016815282863509935390785309902486917778792284859116610997125145982061859627157386438430443547050814389973601102829642986783981163559655908339029942073536994857033695043276882465522130992275658152419788241015236574525310673520383505881383599977399846345693277180872576292072258833657434627762617992763779277159312449738211806819672690078813157885443609029478633232065222087591882931882552227893689893500322196381016469042587179618558581963238902502510108619660514327558116605637845912525793419001215496279144796503419487219293777419594553675414258166581358227515594840718403368087643415662690261907085446497925810030843431199329484596407426312337076451503328894743623161842406183477919973941031489481927421944692363982394860262453719609525511144392357216206807982366646076942347979432311112509673249979738861623930686197831872784339450580688562298768128742356955722863438598447926951506240652720509074481097278529708748186341931816913339374513791236990717844774511599455690861950198694017607405234546475948930532547143045709099557294595149628098096325858260581083175882421026233169340469876254386409013652105092185994015757004904603414706755646068824093618934528555367278216342317194502417394992465904881195970926905978702558895654831681260084029577410236730683002314679568718808828794979260299788349631331547175769239925640454885145629417005668873263324608377378052921896528359713117339715332888754112204774669372835919219979965247823922921083830770927480529046596690055075968022628035484531628874209376272283559151043710549395919389107792498599039038753677870530014197920829021312803460507820961057019472192577091899751304505198612890862796607486270847007159601880269218430258441496308345887371434048840640517522283455758896100104880015990588228444960478187342847129319055396702427730680293844112807598467034618142280538169644042973315219597079455212164238072582588597479127130175693679265253346462836957029949572922191130734695745417207246419457435809304509504660560319505469655488862375069356289516136567513375809682387230199562304790190030796248213904989634897936444614398361605753567013304214906793645202454317440909405489609342793970811069095173614227699190331047037683707875039234052391228855065297006939118828333729043033874743241369987363003106484143263187713767791057814938579938576165642173455276119337800101705390269019217399703860547470512722990608326941978048722775700123414417295912723787786573076104119513595720605237998599942905277784275057794025794480819746618564167082897899995945122977869756208965525517144239184411187790445909430588123521240200148012291752492015845231380200690759334422303742677870439292956878849195635754537741182103286146788835820091429834635274931978805019364832165873359412269038888257093207257398090985833921753055690245818154782572266922522776853635595135265028459371516835920541956003745376669755197695477514382610638355455370719909453345327711437216091220375771651180980371104968247569288770670430793636231931256457045020786916585621412026604240839195414806621011935378180412014368655831282639461277146961828870407132607007970639235768701260447372803121748637219468495519834779415065530276778757479205124393828052119189560045532443263469180537872493982198314677019711286346848887364196840016344857372703666666670432301814987632205121544734789543101499701575846310310373819923466787999785926458276846803398673489867895783943672487286223446819031698526942405886266723086873450854078350328739161562438293811467761265301077188182824248270122016810869103379208206353276580859454651365915636116124396123883417163530607138485600587839593004507171724758568746857317296544723510598112764457809329364372718241284818679286219705858550545893813789950285492871311595235910649965980188218194984276149958089463230344798462776417306369913826313652786545800131868708664369217018408460621011948563939953498050207813200409457901815317254568692860125951021772564680404094661490708441324056946953120067700291529245365292722280055189196858214837261109078405844402850205700935817092260344821959463456888258310419776281280805049036079633239480828425044798462139923205311200298271263295674202551602553995613950904213108555481703996873628706277507568670021696057991293743393222650969730052982579072333246893302055201144569103402784411396706369886831293004912038306386365678309452501649576646468971422758185718041210842394419200670941651010367187111824973367111409515125577796080621657490541033546540982858925272894498143375197415616609142366631188184677791107833961825869118936153328568967088928709459889030641320572410672617573731493998786635700047472535326075819376218760127040761970733399064612961040142868450564898247800667354392125186456054808602585406235334518805873078643586234788145597564001751274842777329812365454585095002411928538549874251567366836879049928551066315019264587045324605863172250244837506233863934140351787884170914632875249335189189174167558541329134221282374405893300907738519754421681058038044567582065774792770918635046612076211095941189375993067829543983983054999332077029859176760731431399095536225540799830326364385256653078438195813831787407509894910221307359807433654735977709306553924240644979432874536489957494832086377548363620801504818375943099971403912591467472665895629600434916286917075682268395420152004258623928340327450376662764430829415833681342496110692522288307743313161361834598768813742051721042502403718597724454678182085608717987670185434890238373693526057673759539481708752080162290782487020114359151964319675583383771016821089461916460719740391015316989003442122126384755731643916043457811597201464598278096869713366924677345358676577537682783252701032352649216536871721887603035923818536802251227736647523814052463325335408052619831100106787034362153065528601475480323504399482252254041661611553647345309934848798196747464059068101611554027574789001163279322680098971551813565694026391356977470525116975772353950463544821872232423108194317825610003695678790108677560920319421955356861260004036353712650723834516146265499026216495788684701980885932789621429952350817259370565600675618484303400487257963794759303084606844526112961781577520373125587314096608851711382196849640465012310860791199343244991028714953690199865243066564632342845197119389544098179827584303650848728304673451372441401963870809295230336166319182903588655516610044077578552960182165317261215681136486089481483327038125290943771025533458113383432353916628534271949891107125568119386295753605912694188920716911356240081809223722479235300817764545644107358019851648786884405163074449218160651214592491331806689477913811479402036609315771981216757194546722396062720355003421225227047062774639307709838187737210609891739482466676853601847790426967719820852732702125773394635035277246548325662410134264440889321785682353099821136095719353468419286294961814626394707931248059197577756737098508200798721924240344446192178892329885778942419449073270542987722141760792388356504158384924759828509978899799647923334260690148978694609712195730403246873454390905817093846923406000181601305410844263819970604901001219021281814916233889812599135881450391666709101831580772353588630413200014337799206932201195572016554359885837344923937853704519451328325279159181256167488032665484550174088928116187890825795649930335644300344751736974057831355183987779241409894004689911143107150783866248022740748467690389140238607660887942872746717075793299527925977117925040220033444607735881893856582849521084747236514603580327761853514856414288102201794030264900612941146017724234660602932575477494872961000990582986080463705424211963457362240448167659763106004552464418302710790627777423321376052779575356684422962341733465720524932185192075679627460905724085355127641020457356608477724275073156436446449788257472129508101918650214714591536777596860585386402766559601466652267467435700413735123071957911114151089923957977646511926511958462194626080185951082466758848568063642509028930372354370298310458797278900094232934374575527955942278069279766538694717290463770733867100423292770048165276714124820696068313119310045311301735469762764858691803964546557209875565123139860597720324609523876563696342203740040952252607092622989736322106815295292357126608297560020840535332276312952258057714209916856564407819934358185287656793449142914241995895409825991544587259210492668353127794802248856628169781491991234437764192677663680143754641961022921039545259501684077269665188878616464939920896536701527429221093472714217700329025575340209899805239038129429668522373610214174742388319207474860275780100100436036824353230593179378167716068849995614276767657976581175818303404377505460430007106731632205114645747897973774801051640350219462705726637662313234204879207729356520847722891621900823954978156423995650713895168645152893981023699181789711697771663764318529094704387638179599792011139782371513584547555600551318227261787759942750113067537208998255652884475680266317546136064660788933927100585638789845378284637815132270290873649575557265806328323119146820100063802989960035831819861639162890204359775249711678245091570245423880346619934994901327962670344966382915041352395155177971701344919159618945899075743101721639150397442489059371658506960948395394601699478492497493654190835721161805758360554130265877773520093791363655756547948889059516569132003201638584395534110899414519574317575757979687087728733872996562785649035188967106834152922185659635802777433274857846583928380823506559917417397392417738325102357421096529518180432413400187693512407244426307719915154858197682144953937131780175463927259412924356874099360388639183784257059064831307897041410354343274283258755766553820680699965233453210470057692021546433598206837436484180107754211091500505895608337591458185843569144953484550573229971567244518321177535246381991367693948150297848955373032977778121135830356380472482709631101247942768150813475847833859074701401915286709056816850240686662634780994534310320944515689599489268548763008511699957673538331681254095471084554120028772188685641820203756317533585975754411851564371040812449284866011416260542430880970848874348405862642300544563844562155562831965311459109155295191859030290460791233555293693371498839135707140703746399853089859310994752110314296288976249310401220794159616245409195389682939908985743322047177076531644247767652037488027798664542151190469354298996367581008978390227146220199353284862109122013039759685427575370055165174152331036931331407022774994970581870142733003297947637264845670167251684610249276229369455220120377173668265084031549513024370104291737959160893846753102621374857135646344172739290644098791031195401863713873867457734847494112694293798959463790954184353011592519871772677251654080967353318154854652208048173131491617553987164820161198804884357156225460321615406936092140762443493597003882001195854699044863857559810574595870412782937053289080729999279182652477460540484324823109615269019919675085205677356593365521823809147473064122634336679489182545980190540955487543980515049284798760519722636577603303635923550874605920612951930242899037473703760332025472398661816139435077499785344690520887474894750918719318544382617679281068524764294367906447798948203626104459338506284594521729395478840275056120276066534439492230951627506947012040275858973609754950543182875995500888887377973375700516958803073125883550320956216323507806771221813907181124957390997289958519108770891734929703499216875298859249116247867081285534532045805657304554067566039133607468523106851725876331246929405061607134464864490789389940486540994035364240923845793228885905871856334967142664693969272824846171066838370891879312700873818818228603502539127439720971439197237387331791735361553696090231394943335317532982437249590968472514935962468000551490902700277853358413799213578916010837371043064606482573124876652975641711891609879807185617387541527137309439787603556797793993754281022290514775623457053763355013507083147371675610171315710148510344618856098029596235752302101468054351177425115622522415927736403257700134854549289763832570080124081534122799092032089243959082506091048958698546936413985628885084699644313592942506703236233732112087333543925502465896537426271007566394185479390469744438352303101965276545297091277539040008480288123237754348509994806080255461747765189881351489276728088092948071440617441330443343603353868073829327438214516141102544361516341269833420256991767182798400230025377285648602706409285860545888726208787677061556658416727983777853865454254431291999265375332936513588573218442499703841423968996907477656015283021349245752310690360592835924989925305974425572644978140851238655228586422263557569151047879879791535158157508035669901707161812706735367372474084489540053036982172906298332091853369896242949909989043540224306770591696441313508959693041248199250513293437232016790923380962298220253243059468593141602089003834779663913109798867046457204728486499459228441164576998772755631244011902639972740552375866249528902585367667531392197118954601041408607371133111023270646745287877186078506111818806976350851363586302440803902944655335009152690985220966139368918914870180920874970176059259968284623402063677694085258868285126798263988963132661632330870596682543585388212082942559368814066693898693952727588774856617259638718377688405497767903461705492841730787015918680104998145720163223516121632646942132845818108205532748993316155826898100404462990423753632358650616349506187874163200788004701735977244265642970003610869298145277458080478624373084605023974633225068414800877517553154802206369736040484879183345735897798814822907584580617063185615885775067548214158290837578096958395119806343258972544178484081726072474377463086521653262244811478729593286060517191069174880946637195182479605198741157121967109385935563062432339027071712760012956323195803026799245800186009942177431783729269393534600891558676628079610122151019637304134760068019074882468398288864206697573489443819223976603753747915062474573904166237077331506646956817669432849360020819965271295626472787346890376044786152483621737817094971217699860461292131546106347134642196026916896541101672452486716132747511691549972478121549860173533346066098879608761235422226987370887694603635578988765474504853094144837827986164884193362159873549939791921859366898360284736170965296021736786266850162795170196697384879490673614784042080528129448552435790530374242143098039394681423576223264761961209581480649667820234772725418391396724984734822011514000087627818671660541635784099900675672862549372864456894524693552423155288136110473602286850227391583620668130370266732386977682576665181788083329241625775291062680020814422924013574403414436471596302510334140946501545104500372449884335964517017293197333029559785670270900512348045681791811223791370660026159588771030110758436489818676891214661798686624216948052270495399249838318403689971920064651083725012035080494501291452930805092848962730162597904781748712113894888108731347822086474353501417532620061293928935993638634085580931727494602120558225302635542504938541354581744718101604774828053336536999715797856399387966410780653355160450548224849122797689242557008123199725312398520255866228161070967142111604959237379769668117847881693327599766583145880205976249057004043464397049383773372371901149744889751292600244251777113776893696338606838725097487737401478239664518588223048427481007466229094478354568885614333466602430477935657714398910002531510587457425991952722596991177676357137485740234777190638144082919823696587270942436586200288983742193323978603589821516978745172296119495394941628455999392238082135948851495736065165949212617155827355476954942201978241319882396256721199066010726630953688804904811422744977858919466458092171165183819152337392086902221120651200934466969825199287033211576524815321904881821978326450244522660249653614041285185949173714015001098667348323173714116259304097425529453452317223755187396459360646367007160035281251635205614911422891459976516780644930688618705749743408383801373021807039128392806703349200888908746615019674144207533638845199522842555285486454543648828574967436096913621628590034689466211174080391218221548390108989061122269885326975296420835447703763075621586416187663256831713389144664531806722482851362779760762050133054662390449828582178759656926197264168194672592030028387652827247367834922418055370827671932827932172491713012204870791749561510891087670606270579486182854136532783142615549498503812224036468025154953271793870257250503496235706414220232456323477269510917152216122578866275892248490312814196976290463245715924407283555555068554883442399189149297798483469430229106171943857140890149876393057553537366166738096185215954203574259223372674849835431219603665566616179316292582401977119562438866455408296353948323524167820401585761677018501358902202000871387374696609249651647318112791504266393493183013951928123786646576613351184536334198594389315842068657578087503714900932721402098010848540314222491063272955016791468358835952296564293073183555530543823307735670730497135533019886512925141135156397664036494155756081679717317122008199235236646032467385439222740067756501653724262981940822879274230878360838125979927101237803568567402757793651841570271798419153153415716665227499391306082710363245328827527198720454032074286170429261153896317281964974762038687005377384170590556344102116645098174402558664645319572325221953633494142520748873595116004728789352634299865413261286348784401241589182011334610303991763027783368618749179939404097858320048398057688165693768225034220211582433641506876003185317258349342227762331569681321565051991644838792437857851366223180162430885692434630378014588486233941417802116668965100042513637100501881255479922182722405702740392157147801022181646966139104175479884474830059490302503139502548227556052354034084462570909801018179647537044692583165405085697705999782735322468539270751229378605886142343490662112247006314926175198329032106430666027074006050213227445722398480370714084720283444449342301914302719426721783269478217150190918297929659742694187981985211117503828453730965595378895935468187124172558992038476275223588436116771027952068718276698196315031417805284452711816533498949112314244722072947715678829372445552744376706278631574401802028471542025225586771359258491425261296323506282763246143468830399541891561340454417274806331315535607418481358172884928101847059112620302999228565904201112492347770715921371808630298020115671694154167797231596577160898912435977982078441229074945215744556313867987640366822373054780408518007319585700152023246075134877902663758031171161517988483009409116528116753135837460639764157893791264802333509279029490526748830316101506694251646126163278537165177639152851322000919852342626223463669039960707304340645065688788471167736694788124435074897280548444048460132902396308869067258230277809691670449602335530198645389026294109333915347702245708257131157071060556081307022575205411640677784530421243833254045238196803447355024969208230604422180632602741505386164742244928581800088287790525918282853339521039920675108364763115088737400789878182995383208651421322887010612990799750630285486010203245736190564692194144659182876923943503510830611531455530262492695074550673459114086403114924093303133857826360117326853468604137841959768812021422412715158220697567823754141456251058394491583399070689757317280846023428006815853085081002307215669673476999696008276341996659791518366183796188972930714062101613937817073920867963742341058729274453618061406637054316285385087984532031921658379635618078127613977848153715873558275354561196671045653912246418665240892930375903584599805442166038843833984403932140222633601792725986805762641818597771312253908359756308100847546954741565319848690253762822209751560443670812918443667180171567509419391000908429742225910203788245499694596566564498302730793910324963214778050994164859082675899168549185616864358980630750637199581326620672161173915743253031758131178480788761882079833899636725031429774161179876977524414005262383437813540195444572655784022589274901617869050663253690807611299373830637371138664038093142010768018549464265482605415089889235943491071574762175970321515670637374556306581591803424632598270932836914839886097779261587876544975030230772042154984005721606018097181891780762462358848304259112497112888802700967654262005031011134398268837707603510524911844508874861298239306672509912703276900145634700512959528589971933605558569559947483901950090397515703500031149385643224084017208800752931408447753412642902301588703004176731542578368780587821693121901283612905394170719476030502540142070368421119341268688604611056006132845452036476811079707351910842356520697644748757824866614393747725434918317946782998837200923239496478841123700429813311154429695391884980038914358005139318111659963172781374311747219314868012324733457734397839080327974307706328341771237209980807660686362862760401535658986265845357852154088687593588726009661952218492041564667735012726779188013110074316469681774194688409301539631701056711330088017959633654761164896422549155779826231197750244071419446604004822067307667010291008058615856361748935589390482905270408988521274908249676416445717995100070517186073572128873144367208548376782057881574500396355579456605813049280459247018484613534312202889216006309285801086326759480838491175439927727380970230329750066942180226008192523680663322552744141360756331282977019410327145481619346040757514786984344781570839205945844417405551101228874232120519586577592379027403521003483124761977265927706519060520411022911784342130914401559625978231094094570866638306323269691735062121952349440257219485043173328052953245072419375321767427013687431470414701839945411174706486714396193848810768528399486422047632543815284979154798669269227505071313637574286337784596837308758371845265706672225316720700166261412788132824639000112802373109859067183183298345125319737771189768754657275277023123761914782019984658153994747396104526460656238286994552964400966864809893664170644257053681552770479667362726750948122177324131455246770137473909761807356103961071469336436889598811744830947453496351915500290257836524271213575399012868992024589324881951324719388052311997012405366977060028471297023225366081693712505977094489131216711960114328760904093670851334661779932207729046034914543871646769253144257244060274407671618282089012434919921385834377905827603959625542947364866700442229105199825727247342503930533186783433442145773024741660309082053373923627133526716596770357009707091206950008021578259298702860837766635344290660127806118666171734395252294067072740465228767358230223081049414782875402034537715247924731674062826969188046527511749052703738012818849543200414733745768822116765520560466835135877377439033502349641062295280443108135254274044763423490138879315415889909596099802718830188309856007178164898976725201498734191930017561089176095442416993260576831487020388334819893773205605818205830823939153146344259372448494448930707347030888726648385672444272403000118100270420565899101732414207732614109099634941581052610481317919575965793109090215291553435160516392238439149390741927806078850357567229573285256097756170100956738965751073424643827319473237829380218429912463320745406055115111886908712330632304927956302914921818296478251836332004022302273059157704031373993716040831661971168855543793859863565260358702222376990610659028259418997391217066782420019741663523203929664337479970358932552864591649696515315659643995890894282855250248703456164729646714898796842403118160738927339777840072397365498601720838101766190702986814113628920489639903986163341536181763941602030720765741312165253817295918170015861165063479110680386170558935190518385873809693528448425145424199210338550132231026730956535331381814029608755750429836091920549838601671107420487800653804753030933363493320097744683103150733298400060862741584022027798900882185865296519484984852445009408743327813343452147663939460532825619247980630084763823525030062490133290101529592964874576941170607056364926905660868140820349200380797158483626808591946564376823403304363295441326104238056554984839590302048732365914964086335292571590779125340509440547482955508977907140954291415207065070675279728679030156326876400877620551681655413601326155378070704921844168931276457255962799577396305283550148971397661561516073479812961405510335440127200231978928985107063184215617500287167021579622570926955360482469840520619321784723677397853636766328852085729049342008644753162874022893829051319046542956898141994561555875789021902144500021018747995804828988129644432629980753941273174334598341475718750998309602679605590836467850360263877770479979425648529778811115189744952334255417574718614697680514981787621599674062224476249029030429097946136272587544028407690940185347891179055352388353352300811961761085234675883445247126968797488998868906322546996736844581937739401150353965527885395611870974475826281971238498117175132178125945522526025195119097977956977021439600307681170406277154219961271819980049889342052497100022386370257725501016255168699977087426026147242239480170227974631149877665872846181573391729222318696497183126051574545850380636545883937218574024633667080141946425325010670477058035795249502988841544635956810095240441652923236615566131593682967786904498141851237778933947418870787994308611945565623969656781267068889879907697108861102070859607131523025294443623832937788490051665923268120717350896302884095307223111642734531491502729959582566882799306591119505378496700888888743694786941163426607219216245471691382715752900318080352096200471231758332350414194392091149236863486095154596132482201598373293832095241122782565497250079806375361413224049330328893714223490136908528589834074762827309001546046552173118480246224101049405714727011410208893386912322200980128644495944451348165114041338544350931465235002540845980587578720736123397506737796786932138710725565011071512506402201349414377829139574942607357296048375961891710461201048958523262326296319028400660785682085163898758654873439012741592039547930625074874102795251091119726776132680432499033114445593999106610273258498411348662697836408464137893800217095132163061412803007805862582774719062143873722939233188436796317824044862816511862620142041766667042852211287394002040183607244262564279514226814002679963297827231946828058818604740077952249812461630145206967121219680564329039276564559169918469591273375796620227394600019532221108973253764647513372131179101209930397876905983947076755085666285228606461839933721511555272454229609728747643974299973160487225618478347199699230066532134938714371752453302635352858174121621530210114985092728160541154923688402929202188941815492158987151830313789013838937280939404061694131263298690114674856360054724210663648417421898910582269278821478058657938266719256895336403343145422439769030762548765164104480497917217012762241405529689208764887117650999321413844101182120302224750762111593424706650345992921831451447950963300902520252587868124477029629033897673529030381182079639126789188860477238753614041352224027294270695795195766989519335168623614979948817438246362265779497741647478900941148695853466513900628691238850884816891181469750241741148669989372603890447968325178709864098552598446547506009955558798148441443863200175447429247445904276205918182554639320520503680324005284516893521626608228437186848033271971893477235113498769983836518289259900431786217434357549146533073745025396065736350383109215115721102213381959071501712337245875920646567632498912299828438421200861672736764740138742224994778835791330488736500498071076070915255103130282273731140075527751078098364810012926031306930863537675207876293862515785745632551051436705611043419936537878026976618608852986800005279197348205111948690427572517207326911427074006263944518370901284280882111349669773838943208324768106282412021169136014450472739802325082034064727926949966411604341261706086469930895980818198299441228971839966202726652120001156068551526116701666844066905083957456722362460805105111169226557220629433421438497594954563402909260456780994446246918356840765616907277631189229393463853948463587270230892210528174820146463282717786973028834246246581730133557340668309655994630622249789005102673021894056868041774933667046403230606433836456999874946724121557690799351231998967782918633286622192446471543322759364218593473462622689026065524576792109251318627702404565198022238424102501646284809577199862066990554441506324739615074309583248757854127105767220907202760258326416140597513181014376163061738214299881645437803125723160858483244443987995587274691334683337603503821629483290023979711112861849931693983540185238496450807682814517823387749673538816563515444849943436370926998323257573119928833907723108045049562118719430961894023157209598266076871023826632176822695787690369710773311323385343244209767606358695688071703559003648667082636601571648172396132047890173448669937985101863649736935637522695618300341641960025820113946793802193676829623865995304980507932436863928984003033211390698745270757043654556597460749193255153378832867838339241834831028414804345443253730757852131738688135898420583423037588527560704562080045535688118703223008302190727197210715529300430349229488026286236069627068118331384769819146305271229854904779237001505976621469086337127649148461079772386710269808639572662274044508663935294368699979569852160611932208769574413729574184979913799890788315548896930043707143115975023060423955271401884028989374663369889182431133850127930688510932298778067161873227083512412575107440943359358210940327029732600843327760891196027909973068002327254320891853348435824229123184539630616360076189569208377557002056521067008998853858033186760644466446228785261873961757640457972038633329271472403553404749809200638716134729639088978081602602716743775828867212015549547875257713318618401330678809777974340542879574986186166791165423417169615976133802835304415797679220171704101770244731158350086702773506711736446312082756309526620236173326940659476978833423035401612460989662809307705129307942234285164987609889559281046415145038781029602699123106283252093747265215621412350749061864656313963039663885171681731242468002395287951542182377867183425645539817134261704175384029989728801157332889652563286988133418404788139299521039525428756881994591558328595929264629104241948299474394529302923174897621438637627415191817260671368094464067343187079607603723734665969844116196734260136515225452591394519550962643192118687686528558144084627398404147910842860944157190243609481899318781967013345909793541844953605368542025013440347157233410756603539336754632787044586541315103114446456153378811310443738143637621984287750378231164984119429006629804568750700331839916046929515304348416632525221747523699335377546566180466168769509947504761573170595555862315570525770537926310263631659680550776155973721095940836755714060485502869614870797771851224972692460300462742773450934544888217389162876276334161452122120569199385109459548165128011802313515378387468529219629161619309016720025651209794708760543319162164881543621152360681648877296710694565282844204511773310117354878082161484116370476579611553590051182654490884191387347052692280139638292225817526378136715444469291246004620238090456092579020878994791424290858567605290149528379271664265810542935098167354805435678246829515328870784652237599148340992199826126108757167655146602871530061701090009546668578041412372694884538844995581321892076940407386543828696338444954517121650668302453291290406941574633322437923171648780174676738433145329583611568311924923992925362221813905790374666882542919214633870640475583209170621285896460157549210113521955630290438094036298634142736385696528236563558021884218527289420814120831285688213939114685955425218901037631669536185931632073561435622321390687758550327877628543525032441014062605027489558634624014788456808973081357698398626058575231889144720467665354432001657711453927878296957526402346169372225081071972495705794849693596294272375346897132985245038093335854213426785151638688379103315897875192012267722967128161438728829001462895291981378695425796451319869417474403685295887459591215923935003946290281503786914598099673007607465688800506169171416178403165609718370901111474995158140509210812389720295332234605867753831236411171808797154812100695990817412514921682418766252505864731234293443107622986197328452098372526745326647371196868137135359073447580262193940847972437531679815971463854768326713741845531718588760034907469988312723550792280032972885729000885960296464385157085039937486492120509705396591868198894881482515431107966639417144787926299228650053477846983447558497706560437003208572916143260514513778925449628785973651771925270482589048705350818338370060008333531675411262467755851725605620238653391600059189685867221350310251551341729672004277186740978143966713938473693329529897555866134145328359445494444840850893448639646244687329161450255647219681233885812845596963829620521936560310319116779412229990272162587728200174642274040112142437547498307447744628822852284824587515656450437161994222616138822173119356051975067884217526091743237009645898247025345173988248488494039583308246380644080814901560745230151720147981641062010850273386901381290839962759245470707819180892086226189585758398127055761479848253416424134991024451801956039246345557750647255550682699913855821620737547808001653806268499999064262627137590112983002344796100797250878508895220497642445096661885348015660407058047280553643854038884082984941837834739321721016448527690813183344073726548757760651892396988570969928258309672175429814674706808694414895677090799618000620868935890912724694741628031804494163901875158680961757931865574463386734700190848198277214017178205271742677398533432018405088261541731078069749527320432911884376109760572691249817156345103989253324455749453080447595350655662436141859266838931412565377384543307344982004971887534947347349249130636903895541834815886449106366507200229449375161321854646673924682885977164617441725715186765066119832889574049711664451740383268271874899480788259147169406840290865337003541586535550352186489130427505838689801026219121709186513133835510013610058477114921354379555802096205961565663291326110864177974641138568641399133655520839247115930448770697308795092453211941802116428080873186579612795220551679647859064779734778169140130275401091445912319321223019397227432439815327975565612539669326741835300583109766582716895400336986150206944277715082396379677095520773675967833635849876396990599260161521367331971910318588016762768179134565703442971410899648518002299600705276485774541580247135550955319290348758517186910907303453893583664458068238867403638253589889401677812092388342008118531032800728464496842269046555039543962584829610130607658140568719879037721257702392595416303536665785895765650431388369117445301741296762821832068228942535743906356800165396414716058861141637627903902073701660105449905034804959255045721956574582689100499398717818636369490536003568296228722998762114595623094235449969008906778887664219608005752399528559098503169851235686661207352640565362686313647945883279623183828271810773829599724671789368918619798628912169841100665916707796921655579414178354104475680554361519304818762937534518181385696551034055047695918694985415502510509769740564894633048465179412715381141483881744354197429338026598391206374798656541772971394268861492485449966704422340445994463809060846399988051272282548866314018163412457212228538383922513138493608775828973624483859078082397708276423165969294190595329171115868092171541203954761024328907542778173330798435161724377797219225187280961621117439402448984830025771186908110904612093483742563304816789388914563741621005004128729980120199009438262724555582992214140243738037793308413392191048774220403100483015216500980912648064195727357489333949693290598761011812368551620298177587112734826751343926391630042395556689939170143328524233545871712101847970710890082901036928422254514046362288460719745675515495466961007163662543417201527242554742398284118298105033826480978576671779285746720984733556755711769732698910468630570312162562015883328681533957110431016490434955591517713872373153854051682494238115299369685963546617757994037774528929648246476990971304664017502287391494491249764417543773533582982461891431877613701435385796030531004585373891787221108239218662090597574345712614090361644112236199919968049309940178322655644953250356108157205943556861178650641078487034944301583193950337014115535651840627549637098139460931100860914292524753146125559173995251966444404695944122154920485571491972522954764578982120376736923773925908301372361157788773569133792105582749306395158174326233354228590290481888985551463494579791221400848614861346426260891849250875694449000680015341498751452345888292144113138871436762631947886825758376496480395782300007302013038859523841306287858742952455326537655580931809946355114266895058787835988734730725522396379689957719949089811092676529838503357386205734479012325348853850701249981849844563600175219512860839050898578489892522313303980629349805671677557787406419335410543215438620806660749553220591415764445984151792801991899643886584070063736795216529182612744734996015015472976023271005792817551390895355939991514169653588924279640930861336897279765267934887871449305777544661429052266609158068576605172905956578431500919832277294413963190493188871815921446857731314457863245245484555870871132385726189988250628774093583740899221345325224280824378120956549334125336568178426970824648021534912812681144295288011297715131182415983112396848477584368887397276478621503152286649435998973757985303840339163352612425374508981827470152198081065745959122562012237657308090095005612044438254572009162261077932814026958998843393832001377621164411079429937793795829708693646876809590115514211181264384289997121736367734593604619999865120958130766404971448279701557181789218843394565597218973053266669387974536087332895601439396018888212724116869216052471601664914281186816453059742967911432305027386276343383540322097548445880652673031785279383533973430305372646739748161438092871554620080966123970593074318432800638508501574659193289690015155347169219410192250351013577057296763141817663966114031437185161081459677927667137758886624187199315426452742811080549254845013342584462898568339159277274093161219067375045181156738277522499811149074301189570649620350874694576641642797665965765608246740870105163592341370343547785633243458721321947540352468526412578946584281625154943125160343385400953757416946876737855713786168081983135611689550493959019102073814273928222105108522065621840958443787505721777477649724292296660181945743408200339716895628931750472521406151029448349980639700186546498300803688331365027341682966122536255121024192133878382390679431254959933185812148086566510220560535677668525985070714587109869574134488027133204371998310852614412552160016149319179134848444983692675477314962450569716790647716124675915903700575528481531552616198329191417668904836653239582276702121785389807203068481101812627223066790534532306237146248739372881196750135642437251812924143219644233129829486317447717622844304430756118859515913441696610836973876783927086310204023435339057102375673831861709681318505058529906452822998067337188754254830936130938313257873099627944303451746670118633278978735935364535738502002419615456510934286517545153422302022905979638153845514537385696516054707152122173681378245035523960330670715222575786624052659087635455545159748771723735490589290155593656477161304777124952109855396973505502017331742627705182933992656907225773410875744203657630240003268126027767096484056164665141872276447330570110728748127144604437534312904506115785559172610944886030574001800728795818908735488721223390132734735919643810212690580748753585563815743465396717538677180479138624047979311768970020092220465020829407954035363860658896462568735596123853454985190987764222354073068699958213258359575376467664404690508129454619813879788360783469840128351369820868630859755064155449805925032067806344874070483775797719272205068994921285303043622602277014466100522127828040133838621269746305033265012013806307276639212666504967607250857524297685777959912386451726094583055587978463400616481303329612023421246502818794661835480798147385007361194230588875555750394707966829785320137377608898027559217585231614788813279252213277681754395217790685594329378496186920592008148114501530348503564453512557389844946058635521244305057075333446412894194350547508594109594237046868815372181918223442685908338282332821923580591395151964673913684933335686029032919118859912508756255421870029778429333226078098131028244391888406621946314679276833105586378453565475435921751744838677712228195995474035633399649111115676042465133577546155522435378164392656416022170433076798985407881791663381158790221062081297204307042878390693547391554519338592883925711469319131321943361368758772826596210177587632523406704575307673242087310454302660172935099221591396608750576844221766566247451022316019673038065469827242880829563244630339354624822597014607370677208118318297596005103612199411279802038797688825468076615371229061527588186519065507109206689812056968056161006956347273268522968127921577917046424230558249489784784073778721222355069793410161878218799500627616414756221559272285540770261734385310276167456650417346768337382732763578859405196110272846917985572255688701829349817543693094560133622294298404220979632698852515660186648711225775893676317243951951312991675261669517682458199037238074138658661535387362858831059170233861448158165004583095093463682822591409648397938353046348859251330413073816619940862322761593218738649064477660749024460566585544313491375805382177851650278319903629176338431659697522060504812964760810044007144620934351351850978381136637586216048399510030337039880117579845671196481138207361853821456796005849676113653770697471934397357615313442872481620625774085957176893446132512945516171368483367444689984848404597674211698230795327971212921434438606382140714891336414438069211318410993627697023785615660806206750646525986322753823245674088048411779152325236749630930826265878801140967574745625543170499326139187606817371828902968436899524594448207599765655542404523642584275486176969949937239970485280110442830682868190035112106148606811556338718566930565733837583532380333934186906900477475632868291405754434220205661751518331491624752303862243463553045453852507368761681434086701787669951095391100002056118125449962330504559692492963204852291459051594493441507829986211901646222409492258123682584468260316477404874724483194443401954722432894404532185533996108916394717877422686289163346886637173571844757220614604109166714656238310264082501384681533280257637250590193969357897718120718851302903027051372844170828154728125897158236594893262846912443256587315657946889142465446299741921906264125337539158063211221388052995024611140716557449656736473625061462023656990659438643525367510102663081147337031018863396062011798245880337354120085344651372356837425022289499628936065985247483166311181291509926556212980601928374175153265673573469709629725204705945184081544156920105868521213930997841119642522506333712637750693953780181225962806385248360406871704704606652549590995933609372728139450914434750485743001841307955312820381459862930403984417278487989585213060882888452160396560164566443329855982471340226621590215655005990837798974924248796512204032970630207005339714531048638344014865797764106945847454043816881363482289452840678429177067144136880556837902801001793670860471134125285224509431139736960610340213478522807189765977638097734532561175833122661549583718757794170778187053308664658196183865152247431874290708351377996315265253385154911897951660834637090848237149347323079388625464660857442035340560100505951065663324624884294097290742351504636007979592731409708487080849926910816335520065462162773884546309051694064632398950420698064728130775074963237360637076486989241687045451053931998229189753105500024851381749748398507294546021821021983049279588965022910614452936432730590334444752625433723641624205385927761062730201985291647559169490826778193681308794458677770264665096914849691872522271939372042715300074360493096919794144400164394600150629577784715861031892373633121063985149278587973022919677741921254845172444335927107782607433884695338801018789773388904570471458224617469313185289709599958444992832345333236451568985524135046124610804284092039607616874038305721900132086943416794027739930185687375372250507268332213124184836789829138526036289153620007429242566394869233313578724892947372711747746745206144499880757777490008091822840183784132564670534620521691376403078203544224300882230552419138530029716095066285920874212681613533097822355277030604546144723118291705806694930186993516186568445518832209987518120281170450143826233270922201447257280478616121962695856115005879690747341991140314155989645198236576976113719789773004775727996702782490110505045211557537110143117291135863348679287054215434436896468952126270303601717743453664427034123614081497298743902891833681692874453106075674889811712690633612314533104267720621911384139861246274270977947642469017569490502296688092818070881149365421920269759165732001303295590950660948111315277582816155962456610586351079534862214897397349757532899677417630758922149684816118891935291597355846311807677060712235008784031543362738453694385024082194396642788728527880963323783522759626500310205512366611255418102750772193189689156773837673793894521060620091702666256325313234066143947921281461842027426353291847966223645952816219386632764934687277321214836844950624716240768424825704955648349218220017286900455097664722069706923269402437350662258988295484233516420801403806633265966979299916316243595555318394000338896727872799920198977785162458737445466559159404184135897973627169261894343131691603908461297270552845399708374456739436815896129399835295105263508318057878371239109173484178174146069838633013248155990221671701342480898289525720448968061045207648812932066166403004423607060764492208225997081187206751154982223222152323679366796278971641338569570971753300051112629161423818667707394518680525261931056348130122750612204798277563151555897286165376911015873852525901057519737682360191189815581733467202621810312065099927311480362712406501685037315794811632334394330316138235504295584802562716950746337370110455520009632403281637475853532070099458803313884969415050520099797652067295518036273246925417906617296503386473266646192302488169639867266649041778029046337707390665834624424620177444688027303390471578020943271932043768083849383882708660253989125492912850778372506717469899009437660118240157188687308192222509677209911386428185074682931074596275453168581541327429424022364734500370846411059445694242028223947995778548301101602023304635002360304954064796214125786843670864204245434013922299542422433290664578773198598829483771383117931432176401860135014878594824341168595566134196652292121787909858826066702417483245062219496074994707517980797260148886825008435783852332760408799128711716897571791214779298482120758534103645327862466215770600148824700137035259385148215723023571992851874105923141782482100571506793237967163228080269849664736617927282899817509811323900545714224264182610017356739663832985266099172686116159210442783553097202751119598736513191904324947952238049957132838164813009470941701945661757457224021831586443953675083482035172605359241886761060930987634897976326350484787679934652190696777567968870435654774497182248424099440731517152280284897338190309597956235615928378449889589008199377538400625442047305361763638408094236434208704300354207460424749780944508289450267991014553895369915108963691731870289977319881753682130185006546871138756733931116071710788622009440692573955604413715136013713502282349088170290333221368696128327362669560516242821400184086354561126552729524251242137506393461015555780060118259968112644261204520030444575631056287127705397901436263406909905236158103370146394208520708659132906154539771488438395882481266152384694875554009148170918944662777941635730095731759903753621771737902190166753577069000106365331241954455235416817440728099851293709628638512500289037160071400102146926961320272287235109062615287606118241183047814453745864853406272241170595853274507393711214545872651630850732483320220601986253552448485415859752864295362790492924529571902689637951219787745643346173535814785741960143812526586578222234284104501300440225282063845061080181608402117571475901917579285276305839665929314171247496355355704829192403493671740916599577884417274275431751517521114727823467198170349524141354703453985378255691106909779469248550056311449339439329085438493575015961391418921899206422774880886928484104756823429051230780959998467812759273733316690246848539254013398606868201414117319658676510714402041478503328753763792914205221364397024332233941776634061239736303481083372658806486125502459672875013269194653509857775306044031667848899388195515553552393238178514325097144172377568835013463077311341994213813941826287087836587040866535558948041810865651540168896138334355853010474896541225627614959200346828810693128595500283901782312958930494359528737380710892435600159753400255584622802493571495355946512048590347518439865889058609035481458495427476340737300164801668948530261876833700464580600900688353296567092517834304588467134615860802971859284257209908984937796264863134882699991529985347629572015987433815155339608469277474324385290209081199902370751537311687565373988255964723700753015539645448750147699471146065727280365357151960786274967325026200332919334413139920812169290100929578426830397560586784070903209585604109137357239422497042450708670673902034454604849418241341725071701843589569701516187294298555985185168991920122426081396559854753768706445724242037996318786392169109191510415295551938201545476390776655622261107796204789870824978231134324185699287885504123945245843517946900738046259412503600156599535601064194713039527675334709791733570300842261537686744753471460728545969447996182619330049236436701332049654708188626084880722753065945141584452648737239661958452887394080320698768742734357172432723006697861426163686260565820418014308980226953177613915157875960787655368847946295887272556156219401942902228033875048645203740165702612496796965515629939342452502103362702830547084415593808607359517693786396879157443593653222483831456012955396747468850057159477815619267291865051549896365100762900081636610554036611892708844631295945882243257699961252603399063654779347472394441772812944194049752154983266134873863406615644069019936204323349045664694886502276865379057832456542993818528257081772466344407519917040904442126308757165196391471872031052920136180755039241193222069750307933563497047494804338550943486991245223960910559854819002598087423973451069586995076349783427468375421812360387077679570433446511034475486002693289116394207692209500637276808014732315000630094727541479759158080912947986299760586821119231310965987781023087864639771961683847908900116732206660162863053275772184072335028298145992155350979249902179618408059444602425049740247334484397357763129078611446414090990055682403613189682006946121836814774386565334786068094399593532325420383156320158548115758336376759334186020964797290589470985887913899713608376319060269971417624103723780952944503206577907467645741865723143937545065346569451038429492545177905115072512952715571001513054261109127031615337784677865328011470826228662571650486292568031603101729846294341481123464027243026584098038055348851390080801247352057453753844278627951774431699287152992272874537793163587787184491626047043446320873094183613065859516675366520452211729289166145228830932812873238597603867273763776183651187069321201681905501216414071197503381228462824872565629272335770168560812803267791321294363282067137491499724005820827017920593568995546585899190701930651769356959674521773428194889499934991441800839579707505755517372470315590134147695777200043250945431036199720087463253006735383769561188716038216497817761774737746769641363435679303371172165899608448700994478859967546370766239768477444568125148124374994977573855681974643403345337899581225516165820114187099847938817069062723367893978818408291455077506246033463779584148944661005702237604051277880424706690918738444095957184215931466160636203026290486630386685157927334046135189127171874737429168670458188819745232533480349335791841060993597438896237298656409504866627298566834347642938392174897891452251812436354748267164532996370433096247056793070984992095088240730616714699893032403125281162790028803162841071415777495478052002545202314457418368647133160049803688628550863746111448228537724612639166683902541832834406412650895989402680156725778723897566846890180773094064753132305809613612143061227816748349732009077809921846342454584640390863523257296027224803908642544537519670575652896332916683435815719086537693872181773870140600221464107713116307882482824300654221364232682850144063899035994889930200055350263147584126643960251105684289081091614955469168811758158821036187183413274678495188876457880168883678225630853454775120958497436873346040125348659071666999422095656852791837872157331513612565671280846872911846169117842228421212208289563081517351251912819430611132938301985246002811810385434385371212805065868854310230565001379173119863144609658425784231899876267327103703038380945089411344108451768752152490436244197649642767691830537656503421114804974436147754490340199092855405006081293652360311659392544205104754612349164774392324813420472334759559154152467591746369708527306926857979508923018323780220305155626263407320354731877720072973060753791060085969460093253237890608239148650546231289378916939618055779539449301349864111116914216416632928605846061922117697317651536843719065912004019366671191147190494362728251799977662484642430937555557755162153641261490194982370691589679176262387046899041670411216452891694970145606826921034968525576339335475026981968152986569310051606011423836997551307113396567222072672314341995519482368641669595085981541332091072510612859932535018121829107441526068326198816365894465076116718010573576662878969887152734654360128233733075890401073544616425822948353953077857715658308713941922352283256109535339903371401612875932595141619072724225830516268398731901095985467809302051388004454710586091929694859092520039544382558844682335583018266165654643512206540784146286345094648025791203904687693498635318079194104155127652342199713069204014293425382547084444194478833571568075475270953062646458567628807479961212263324151463717816867719144761251741339941990339281630669909907737674784066882873233875539161352962146852622654672811797886047321844267017050148232182047752280465585909209726372836357684953670173092920787422208006169197470475759711028577370107024141732415249936708451119285649911656210354297474222035767810824106667670282460091851783020891097617643029622873701798594934813986479600643681520743991631073670484849188286515268874077943767082245251106671391719866715215983061593565721286102451965620792433296236842881881594266688899555993004490398027244283286779582707761398662557266278943725170493938850297986756895127550696969933407438218356434908828922350709573432656329500071865156475059269433256665569416472308625164398287747608558152551414513370819720366614566511361223097757153100115398274707010726063455840987774368511388179223423555809311478677062408021522432265417111099176153644086166118550555918499360891302168033257635901194233159435355393168284920254235421008567306146633046000934290950980786044398636637881444534918831467602945893677280192073468956836030005108232729046627829851813261655782004386345396343097456079536156190606944846621089699737367014469840900519436007209978972188626511476484632597355540177229997646567854645475131513102705515651068385392678116002960896894400562756302646798608948953741728916615805705812156425662429319582710114966918544494283328943740585213811499479091024264842470505275826474011670454403311155800632968053346999285366732073954320554524922860512501758217470031283959697567251569876030526764290766254345763094803138013948089503728824432823034818730036311658148556509272344662545790177117728569632882308672780501674448371095722895696658250919181194178984511704610184402674928582546820694772935210757000904204589809074145616942368761303391003558030547519443168044429658106076583288891696511809013913137142613614008928847452718517998748546485336458201005968558108950282018719191819535746088120723616553616875775449661608335749839526011136385865920181646799378775041313872555464973191000507266358538168389977411649321420985032177128892269451669323200772002712984186691033716539907804917585289145234517676924525353815440828440474045520852196600606328405572260327205722338718842149149630593769222901648645046819845332160546953622312277480617029108585728993501893604676953312870020350467502673407450144673687416921322971503047415619327496815059699945115120690680219852386261348330735895438097827711640263965896717720895166293728088534191426052504776629854516645423315973946445773433637370567968820772972434502877869308762448105543104694249703209524096227873638892051064013780421291706165038665469748971074600527471872174198905987566686384470714082186292071747510885434425653477541322798245595376622150247538344223774300057981708083822957399008752035647225891122069680938498323188902318148888144860541431213880125421901880365708113885398814427027119510653371795630988971479399955030460161803337388263992097626860635296188086302950744858730592750898931520433785158897764715459867278000435238205488190438804364018809405669390241443470304044726986168371592576253550956297428678132193630117584445103046411825896261599393621445456875455232229721811008779010299547029593581968312455008510554360355918581545473254616194335463819724880948555278211641893747073156914089507647328430290929965969230066472836245609782448362456925213947426233707665821141796485065480179105883719583084128550748880822431358480786885335727722440773670719342360731549680770825924199364269451322160495568089033657276722307192384705667849345174808698669728245075198808898287383495406101875754863379558994487781060765198126208797110635906707078927196430241853542852754900368898775450377331245047408243110457461976314213161352698095563739195194899426798676625727252088838524870926733672379899373789062677593756794590091532557222645085536592461422173818470654375951679185991129818624898652276051212009272949668907198280930315587470464970876125601865596948349668373726090062409804285992288988435094366797723955001374731072711841401987695195162376894024502794425715093309425508583525391041335415559635230175028823039741313760309069453449111190876086276987712629502071840162755403825542531761685019163972660820130902671347204513949964867894944345860188687603226740105668752692861290362057573912405451627814081146900578875762764405577458430963617540581006723107232800431908268134129241035373954914598852814557458512378644020247962338272101512471788445660903971357682937181865968619595451427857932990730287177573081284543975436148888676723391321285740910911850001695965181178308825924353309578283525057672618168628683561828731771249678918162344626859451623859022678292665086753699572180636158239617542388960886016538249381941843952505800990950245303136716181305977285050775672294835484364949845118370834321708546626270088499899349566559901674187676674218405167073207932342771217921432366116186592925671998667574196448936463646411176328420280875665242367174366885211403991113772217631053392159876687332683299204894018223884190961007884835040800489679008595914668698140447954053347836160964986714792569131561185584398016744807104059440830439050856235527098605638089535776252739045312955410462537207027008780231762352383799864577762250323345579982488727064169230852188364003876105948337736736407266278505067434500822876352664574753194151953628402897609956487189131761463207591260171165772126530851376769400276909373867715262109743546712055361309461740654017899101341780475421579200769681574096768445384416719442125765177945841574815681370463960162267592015857606232314848148214250863751334046265071736235568144639074596031101783884177722126107528573389049081031416018355374525620058073167900055759577011783402713574563846699269892153835071634177805868185951120712218105692935424718427200208137897548282094717878120308442596852466251074187978912322419016820785645587717909247739254140929249383671149298202678975081231878885735565683547440894156323925543689359398740781245111126673027362908247285799972707950205525504320556228417739673731530841642063216845242233669920437152422720182007250465918335671678398778031907471084500006866954760078324874597544065527749101902068320563593222652329845661452960613341094365792511057243312150029498519266898323688483561338306156326545541157673677625114677453136907816894571120134461027761118976309342402309290816803850977761755141510285062134519388477458623602486779408562767735193104723691262529901675964422868498844373292770341952655733998228686838047524355903990806153091658731815984195036523020544366392743834276077406602332197108038660836227822244693826998065468918027706833288980004221438597748296658277419690835622420656464964489544427037117962098997014484434235406448662632609803103503995832378160931153203290549677875996138379297244840006925294128899721274525245729998194491568621935536173957146131959247608018782436465271310778866010285129950499976187024473285544322885603034482228776984751506942115662714270963918640840369070769305592069466426511492868349331979020116610332935009891581537260434849719788716094600813120649007156996717386455732923261927887314203765403879295165146450772258274372546631264436066662876765200667006614643524713026909042802036227915776744261308756913231886597944614043225742263322895986232652482146514603992998013342600703160954917119161159327195864550422003394269421306672761185451482935574952795727945178400144115521056309630490322009064339468571566068638103469682248014262007181047125815525612866331352288683389331380533581299696784907831763811868432907765453831503456728715443206602510815205887363114181200626622418503752130483961218201765451526337947412177084351327905804672420462221496508386105640319270380208837744513235040073932896369574602624169593159125000094280763761623308641252205569229759701312249479715416968555018692178473273025417537196864954718725085851019236159982175354005216908479063609324716907647271316518766896880959157459911789219014085840095427148030398542344545166148548723959405936327034436384949844135819430724662947863632367659264847623419600587186407058776913804587504071438191394775525504152272043129663340431537442036839479013730726221232803033495562485204725081229639134395255070581316455875319952021815005845670731167594065018282670703406341821398491276844495053629021239523781554323413003288642932486963526907611253341689942458146943773205743233759893470471625110308445602561955011889213766930456221885711427093588262571987287892878608197135269210453870266521187988207315650798258288926616610541860772618709412674529078081924340532774168971482862923316768567679997221824002020806677629710520754539099645733815280918408947862615104817108474689487904237477820403462544910816692755399051381671458090873864893726429418995794423547142548548468456295792713586158434849019379733158296264357978803894028848031992072572730008034546752251556054497375197305896996934840021246004705544284503826691959283434748236498252517760981562166748269796408298431319190964703058197953826570645165476691932930302439214345573518790942380189903347401466637739790447085911118069524664516847318420862804869077929129300513793468837795346544636406058295966714244409737246820940045722794575919278991891330664033027276011393204870515057245279969894393967320966081991687437843847875604705239735108430478269002652563685868568524471992537962125890839711418992025400347978015730972922233099731113322105320478373514468183331061136055590793125058287303244879986285250018344674093406811845230792696163213713380257723513279354681896849013817210762035718791671928367017498355335802479199148280641239705865563593316351271626951767941019722313403312071388796746303699721649953667319300506504246943943293089702987247648697763777900356264717774747564978850563184037398711773309651799367519009014717570171458331822119077065678962977688162980448555605878644429777494318156994948997630188915636525750558450704934898354014301765820961753086164657192737107744699604961533354103106956600956871378504484269421071593665434608243269241109974292836367027876109665538455720400085499568710636523355463862975106285351583831366417424523008885282797511809293755658221403415898646449077048232209543587407819659636903527699634888480423097098553056473769302799422782091995444794936232024983381471979371945511381732048419461516830499691467697402975267657494742496939353313106845133757782230242782655132518587602276011709674566238395946124560264541572831452499693702054814125542178194115834430244086323065644519380014997897181955463133979725206774289867480072134949547569762542757079547092317867149526591917924512837605578359102176238491283660183152470344027954001279095358546501715275684552423417868577930246983910281649992573095827764824069055294979506184118323466932480041176876140430222559688738041993194759941586819620612694135419675185842871507572341010532644269789701618832523255433366262917548961985545164355191931185302068206338602523555834029360744346518815893228899755309456684306563534437892413987964385689988604593967721635859672645096421062119537834791285812694036108616101950344822246175077128792463714052032675918839994845986142335753767111675795138927338011503583715335960814933265999105391105014110265848747399844394470185310082911042287214896892688345797713093714729486299615591688869074877573631623178179781112729689733526644330704610094334269834343068431164328931885761088226846378274508222955446022589674263199385392145670483938952394199236848897842417725224387311940406931386183225825886974911879138256868814430431403341921442707387169401924026505830541948034560132321602111712514522795954651187219612946902569710668572975356407661008948624772134712313770138248069952169482388282763877106075250483696437061023739515615951514751023292424492877712972007478924841567904779187409293501274521157197044469966527446292405167653559483646759634711974889671171073901184391695811000388108543846115215071813021753514621797864963371128341368287388266490428058424637878236744095489674051093093923246181251308624311126146219314861956083823631794797546994573264329016126618510900418419596764814286592261170185901147114369764403424338647476560018838535601942937196431007366663322074287902312615909457302543973168488655606539030724267022276555053114397204008701058040935539569828269265499863212152600716322961537572657233351691850599127083017103221995043303063965806077427249727725427621671719033439432446013227064842742444727555523311003580729154773411828615490778625339592074747590304704847666020663159856289970132447329509884371920793472493687801311830143585344907209612545583680968044659263661553188511686657574683597537676799701828963876714477281811274004532538198586366140875487538774168898569550926477176092281559714645570558457895446702898326967238163793899802843255234745290114257249010876169293817202352119067664523330188658755777240332660488050292139375864853633252782583230642268308519014428885600626685441521237325039247978064094005613807463599899156864890916264985615098576197299157509128801468860864473053078740898115885397798889881934654094677516041277944101317159674110580382770463212804012463376122362717367036220070187092594905952132792314338611562911219815154864277462732420194718997044053432610124056931904324165897581949049651951014436144415865207721715690494826523270325450514115392045724351074371846518911833061093599080036552361304047383032891835412311181566810234025571025454410734040870603877667512585808532113191066083058044197522051247106741177155055440491852507916026724349255884471311023528544077626130945347036436770326356592935019902744822731404438572551773856767084846603512750236592604192279414231500051422877262696720319022899691928282449576490430408480797702709953083648928290520879379129508590159318882015780776301312788478164854157558952821370770136437500660842280598548488213773697085053706232236928467073618555257817383713241770765770913931620347112633558308355684406608997129048358403588406239877341117153207252588265593735661766578088554620223041671048248788101085744652648449379218287571872861764785814508760502235956965109462440713653279690545977018598732260452916875336291840949194606822663617315207473442875073547257968558540133486544576735568855528651667741950715120270313928127941395040646107554196376623244231071328789600478682694616469466602128870482919181711340454740940145503803052711939630646060859708470601273460750050568267924118171341215623864444056478642471370656394361318592545794287311322643431704699872220948657896863776246256874627099570260935383795076664309693539555475462584309930728688555880338526782872462016589568353006248721002138884510687429647874005634913018847757077995209543799934683963952449535131101280642137033641475004689853308103025700788301030732526367366783224875504439453621609451536337445875943409822796495958544295456478515899268878057003688947587757434340298169049369788986516554946908228648996454731415928265047519160253707970452691721149046839529603821076216445137405265952847968326071402726651926825146989817743841713804829294451972960268660505143942616009343278494085463178808887604692456885156284943163551462546402998725029241313350724515188911489315065807276061326325588646015905319935226977524842447913915108443124907737502393380436484173364010278621901160454023957141203717202319547030249528030563498859069014866837172331377341095648143937152369613447083979477579419695453110879337996327934110489049107751851664076209505001030652937455468136038202058876632846641266325882122629023333429518111585484525741364081852889306028587284463702654155267201171910050348898375806857105980407735560169585400565609195904715629899623153923991291759332558821921798547338260215956954769440561252920717536487125999810836953098501352334576544778977790173534446203627816516934667117840896480463377369551907578790299083045231670895286919793527757483295869736580421148061243197073650261476438854021357232457223849367983493143143525664347241798461587005711286866612262757549910557024797965957787089016027328554144310854705379231507232650089899986085874727518774447484489020905977937493913600435254313836410836365865105884625814052928951579009214011311644474713463234659198294804171749355383629474153294158410283310385612264519994965125398606110525226724349253410820538380482659457362412703089864401803004971219704881120510904886019654941540083886938855719339533305322296369650664440836081596838227255227783165937567927288997890878679105065489400106357276166613381308756831802481120927950538673116834801791005224845003221373890020538709687813022642265547070215025887970277155000681136211094242369431554399748815596352278538315365881293723745427095029659096423745018880822814573853974960062700009088714937109792973540970724165727008750568503133527173826884681208819876653367112573204076237874705285984102839545988214394685855063161501003014295986348324564635709188399792803824413061768302065087157280507512995224740877022801851058652830465949069872018497928357832088542343154185831457303143874292348486353407982924203868952292030581548906834539587760702626739553871498866317325248905331010926960879110745235295075496608958742312102076208307667748947251300924639103245047640266484550242636047540899705762658856135003292936666110318326843772469586676404182826013672955609441489092801008049584859766139910323372520819031166003868878956218514939212541389741768470646315443587214998765139718516690733766811279618254586406615870438445286095449313886889913855191812554547426378185995429147410520529608720161963873439457827064261521295923550571147344025212047614992427264277984801917037604823682191645722589028994559751141430016177351678409610158185408940088259118088559692795270374553504844294647537339896506182303881883719685605911096150791475244396931245218592209666551156845780047676176667038383270217885851890055472112449301232179390482188124507135192436818625434842802003867490765810979011470895745914859613173092204564014110411231819955569080701068550774489026180852834459102213667333673582775110409080641570308586065184752280832542442578063087460082390860808819193502657362841491785633087408175388318804072376117455437104012024618372712764652571127490403160192089285041521978277319852977639670447648721404491890910423257725422921517678722202305295992617714501485633556149096814831407434110753858326075102856832392218956714434931858113431952591455026489634256257029143167613190480959285505631436466722400463733792530448245288055239155052306813162975464985732161968896448763381976653100934214733750303039922396674364470536760392603791631146122989560135200961817346691767274140948315838420399806942535468989182096866630923397892466938011157944207800071847408446412366591984733439729594794977332633050402849240386267285469139093700719592693461423397424347004715238531458351789419893965687483685236105537220984649739387381601343128319592816023719859713170546616674757357904443229292622917876424749477478538399780254488239197101649546267560670423284352997069332542875488824914765718337046965568068971754637891669695114771578118735152681341702367739779675915414426696825007098929628653496444991106455185886389384999775805531215417231390381400196062018452407534256647585090858446838276762270393204669545918661598708780798358853663964230179483706169086997393744621487091405125283545750684701320625503794681449190287219522313699477393365970880678664383681240259645348289343097595097495269665355673983139253268498670854302932634923021041334522837495304982720429140549858647686526292879338505425986517346053310171163577917338373405873125225486147111510883966728055635310213478006237917495395799232071036536570367063857904175763020074307384130948634562646919186451703289831111444075601683841898751633907623543915914331787065611127624689367366879598268643476071544482908547320785104622301222239410731845731636626756878440902117805816363267717570219142400487120401886211914703454714968760276219152505519354245125727163946444679206851112906627915327752473236957845007075853716471466695784685730576206303043704473979206926198935097102409402822514201157207176763390793856799825165285285459008893824701414917609903550366409942503868997893197183799987014193430201267435494439683208910329722134034914447884678681477605926829073857369131981293355761618503253553046448991365400729422078374712268009746103290282328220312298147914265065315822344211358871954286228704327761963069734415949260637670601014436546116017326474581130267785827539191286377097685470191159152053518614677889372625472834601970969979625411364522573607013217185406280209116208445954670437035196382484842603119571707371469223710221962530710402037820942001135845668478780952509246777421756428180343884185904354321454681249126411233010162240236422157482585663317016417068923730216105971807248200183323168902555825792140588404755730625135098334417088912246665133513320156344169785888839644402881879346961728162570120898991483235491106013303250026080581489977389670416285503294498432715783796013645577896514984363611264810981932181049844697511274586000307295029025584204067282913296222020248150936266921593698321959909127158565426245965950126868552078425688248612107718423673547724040124967641696624573882595876668385330684282723311360169365257557529545798536108547662458627734548167675401529404111105959799547077245246517949791393453000539537820253381773606262496686159283638671145851876890561061721417962808681028244863200738169180959895383278221905829407077553305515248805901805309972426481622556664207731268354548901413543547520513772250692826415507095964952581073628976911318825956339896676322420615426757257757810306866937449717142461933438603536559077127118986269425696076962576673624434018636292993476720058730255058300017686336227438114316737939150066455331537897254206064967623654262204060348993697468998494674067204595843998416762270534323356657438422796270679680319753505038782005567426152043300028262952349863650390519555088489192978675655795703069581096881830837307165928276768410690418196979269639052225265855115687105593414197224626409359389439163066833215416490322083328913786748170717440338128529256450540114235554688454054541933792181828157911876290958407448030792579074649340168293479751646563540615585835966965183744585049023020725608689197899632432214480139083542889221577779828653338944658737811687267241489435621128693971623882848829015010855747134481481999790613295409501882475826440139239949776867214276703919765008551665704045241943950306676727911676084508049619054919492719235582109889217697901698325885822357968096718481114818444047989951047027903628460855297484495740707409291277759160384351709804747447055854067036177593658623430143109180586213796981685830732789664298774241191610928944877901057287003864695510376231192853399976377608815265854652764936532012531482933610487583372251733106142060312826109784959360049744473450378631397910815579885640349123085603489423928064752690761667657297731274940392851302904480535993098715508727039961013790388366218281271975536455978754289969336942303846847328851987347004588006303791399815298760247360882316692787661332916290694793658657961258045494147723336075288627022032582188766184321595292034287907650803207654907848175395830586950275985483341085217299741430897183269483708946144109780325180644398596682019165470707317795164365170103591669365417138088319682991547028873421730663876639960366707216522381414378642986283385100695639262276621801489186088461024462830146291548716681917504826532179586713113699333750402901652209168547515027639311530746587708437165212293115310133215584879359448858284536123302410609129900643556569491409903058520762362384639755378910490072065430599520656438780129654907837983660296207091837834808621697128582343042094734034663528350271184364484814150876039726145294108512492358541523542131277540397023208358443582464532215356695484426841910298792920994851954633285650705641717240633517664074169492081682835328872769194947996446332849069039229114789240175779434575348124082965366236670995921266540450410354531970016928077073079360231790356105618663800693728296998824043324064254956057857713152278517014857212469703537169663711226980165029886657425435115273412395912285506177441755191614777074654246714507748235990856276539288778213989166072077925588311194756946779364099534576875111238775713608989426580079532844983067897909155329996800638966839232266617951386563163371653528660332281015662593650897908459072232396853822144823398161068794612695522870184930189811792403166782495500818739007921275701632645801728402903267050639297854937395774709600097281461568101209256128084757479267615960166629141343591143370540240398139947754795984278303107464970233884262391299558480074756354155364043592935257094186535186896013521401916639035399355969893439231550747229525150326974560111205548462314464304984458336935229781121746712772924142505481577028527255052572264129608298148961679101720228225977089389419298936388772917930228204872631884678033771720932482006658942642302511477646211989936276313516449694308487558717956008419368435482890986785794629080820491387942778722663594803964993262082448890755895647997878676553281003310205218942751185279273555840363313112854005363066088906787813998419594261997739258276136686751136332036300950176815652006945905514667161594657782079178967825897482303914359027603996389708237369371852268529213904387447032745418976099631232891484395156727996496124064779017293380887243487098020881370161761413912986680884819261969829321319584478354977611731532096774382071572057418168458206546099462510391733200103952740204996286773744879083158888357686432865198705462666939031238097594931203061487393124189713200767213717536692529018586778414246419379433262766502825089545087617786918955885940612573222688134888082778804540431924373826808989297670606764303913166709690988121853895076105985412214701258896359206845039236673632715312508455153649709353116903604251247819988321810727539255256494347981056426025196899260539235784320423741099282398932645622814477225240768683293019859459782812124288122136833584369834412393990637331545820666376990812576701037028700651759762379472377234316852399091494909730212889549822589899418540572472479652569366919228833239453760427854455900733029164958785202155930397267533609912897531220605985419701293893950752908259782477820924505939048368407306733262847078172103084576837798474097164299833766989541286464546098129986825520928365136583193433050770587028395984510342406951425116438206928088579795469535139561404396525169787393972341406483836006453496862748181267209609577703712559794104599836159505891952509932728126718516242468068357965882957645603510407270750117376576917114590939078787297876098474437194948547075437189787947385492477565126370403626936777675770716476113053654457859301417320803643860154239362202018111276919348763081180273908605837260274944271684485594731222412014597518720536346460989459213506684780730124405379880650304745444536761405862950574755269620962839423410915340162653211489514055149988614841923584765894052684269500497197643061062305727320456911238593538191963396004355380109177173531930136730270120270920836419277028116810996697714866329527168490016699149464149418061384553860802777716952486652027157113642630130949829359289501990236974775023755194398471362079245451076098874373530325925925276219929673082405581439714551211898041797361630742990455155815140626632177190838967534802057346507640423992199903344297700106399594005045005568045412559295797157524200525866843103822003838008282571275071265874874207761195421354754495925572651793831429593753171815535340301474953054185351073214054616308251305103537656307028221122357601197070634716550069910474545807148224194694325973877145415227498818779486238463857164482885843932281466649311606437875270001241898290740561823788938806089702908348375926244764432941863765803520649273116306664148846508868093117379232267528446625239036903460416839596737957157644343391246203060951723215211266726602033877967135707741848617447250456300695095045000276333886342033902402431132495025999402052789319767879961961604689092395886822556349772524401979169807827060748139352614192651081142575744415176447869640868629623679800563919253046287667237559519951155688570343138402935436054302369232767436260581194422991740876461756019185493713730133336983096028158087095238375463285713117022747503317161175795689159567469749910239880720900821431383571711191666134687268877659591703629495730076155945818463425778942440522271842546828138490527975121774565840234897509419001562848289128248521798974087807873780590938481538879455335504534265835282691836050147820774759928688896970358553819915115216298223586713665065067978295019179960982895806338389042366227438998959571497210408817061280112737605416141930785507802760223583214615804614073698624924919507434723197995822094150112735140309167063320199035313424515474949839230280315994524895759419909056485965999917195836608986164806134361179881876243787299010514033369803420587616040610565679137665363922445392126929760379129925750616357300503034395374850177105131762837300141474878605498168219796621995173568797431370374109201457146170150211636838566310252265652622801367759173131515875854867846759433980918429594382039751520725906605522228264011490236538152680113644822809671175288599222613459713050861363380067193706254173253025540909283366780293501491486529137905202375663289570483432744615279404177138992148175914072774412375851055279699184096065924272491310734157901570316968649798843522916976721547039308605564569001337615906131854614275518512641914230635293379160009979757214786375564147229148217857798958256366754773212285987406951125637443613387379430782621348297889835998343122123561512558457941983450299972371187476607010872466961407100583112020393442428717459329210164144584993574485567887272573656048428977344385151052106978052855920605967822190087784495584597700233546263870108249228762451433567201609486351856509228811936142994208729306599010126976652549805612997127781227211839820703678430640217932772118980769382229899563420664120028688979849867463161818205967785415784158805224188226058264183825387944002625482207790491564489164173276136683123725161107507014831321800825675577118591186132921441437247618918160277625741170006315086031987953992623630636647485275195003252698550107693853613669136759356326539278628711042721957496781814702283957048966351927255798005559609736548043864589403688972366833904525645961124292681282241337321920107548408960821827099590377529687624925484359881150177937075616066509222596785841331961397521549454752930440277017330979068508344785583572165694030035383154830737162332333600287873588224017930136551568234869560598555476637042064762071785238584583493254436936139493772377127742569922873355440161921846115635814391128963841374087943391697872327600507830800364302982655200831429038184567308391375452236779905308869829293900692021738647443711623000135112442636557207296490205486579010779350316345813823458104734801158666813193448370322208315526036750271170033876674961218838227912887046737457205765706462281944264900601143781182318402799300570250244060454464251322151260374888084328298406518770615401358681276279449395108499642464754962436935786448675407205721514077623821683943497515374534519997239607093846498224574664957878615832938321147059632694162211584503468494309322459562692879036241759843011414744504825876983145264621915424342689213735652384980680045176285936986559971001386993375342038273462316252845120519402989850848865397573148365226605444434743177569908014174311523817985041861529401477378691375335346167649883893972060152941110283349265236253817710148059244907358898302155388659812241016734341081972167397550970137869190301567858596978323390768484130805407485103428894817992471456487025120833890792867048049788248335092967499194492991655852121881954623112894793999277683039504286848691591503000224563378656870642378494128868184602438952609971430135444561342165666092462715456391919438505477931772458933462302351284055227164412149137283929700675191948422585478911088198895523590617142134497780285104808580295375714503689070456920834888035833384838590144628390030548760077849869739095084867085697397516582546254968690327246620598026383248284810436801309452600554044049557566644138398677064693777888514784317837453555686846132004119385165238568332281235072540573882118883611777702968789723193413283511418837837043322162214077617266381596703810678261127928808834443224121526375796346793702638322105612572138902518169769363504970934393482367895095843702760312634779201963791442031161705094089856470897156427845299990980784501873945794434598209191570012647084487451309516114878694420691243602334208000107330878572062382450290385811880839459031872842518001850209404758040944631723055036976860508345490257577142475364465935746035011298221159544255776623469140846224986280742456140228403258764631847903727709659108788136611204936641610299919382580555993552421056013066516382071692421155487762689382908403962127949083331906625694966101592971070413748526419977925093431475105506594214023376547687013882646525714969067156441645291625809591132015562621574347126220437873525185378643803725485097241119553250847531600939045715809974010641455134935672774175019212188992064928191549320268393366504259087205522091629537937854636389656031201490294032706816106571674596886343057639997542973221955855455034062033830308040715244403820563104888973258457602399289681068119187673520480607789138451474559405921622149930220095666116224345152604175207082156573086858332816425856071036090401452016911207611291641014627363624512022115277021340282999014376966639640169417138138012638675829270041412847312432008262583350573747062130481776586729437042476372343273742223102390370052094016823437551331341482394541386535778779674990872479274111158651556516964763844442168183106594065656077376626124068855072385969433925116615579069099252540421350797332502407404094233907806668532906221650303312368154348278626516274499744711911792806155414991856088673387470377344692812960136846134199736603736872013693044461794588739883228005690411307337601991047173149308003122998415932881101931495842067587618442935883542902526328722289774307467691779247925587470661723413314246686219476686932076642874458401610204165336578884404935614873314567255200767450489218284747029921131494789556599185663095736149723206185523704560079756996838041439797479217715577003896846746785809764140884576102267683787056735027832281091454515076750575770079471964150234874298656269084906197501453867757094957114142919327389646798413031956950299118776607161904751052929259711470730953278523157962850480249102652369150093390851961461562742866907832692804926757792988908479332811025411505141204990598636735477404994344860770455551021584255113601935796483686512034315011536693027239790484456855211829058201831679426955168042373234402804276850326663492951283390458840828969888720901902563918831868635236267439753292923680988433138911126390849345027168004097033185558866959872346451609508246546081081424374121822818494532748131719762717212983183538788229007135592383846110633560357209728291607836440269020072524025114431302386429953307921262031674295963068927829969071018452927132427145523515538975506570668868056746307076876004338787377728012556039537420218253660406290708520817232447325040884773713957702646150164891043471531028827749048275453369136157655923899058318060361286984024066104894956553039211815238481210835024442126309258254639614240652494802237615828353082912228169242410836484416133212747895547011948169819578302338164234522347363499812042846504741135401027767841656244369384681116495177779205544348747788015952689616503041446560174389005526790836181572076130518302081718328525939411091607261130551011531387674266920564497521069238061410444620608688283305997390424520676954794549021577299577337818795197757571880869847016821735588130264645257513946578263711773531754236100548309907707996593486936226474672628009522247559803450317282561547579818526403638237834438622487706133687990611817530978999669961469681087024334042338091663084740294031045505466070344237796327450262030011971374376572085374885745456830439787539821278809645409727397948328815701950295886720989593636786591215627769820263482399330432361794220751389126181427753818324141437068296483622098840122232120948371782409959984096883512809164364398343930661442024322009766004994285185345190699362525729006634354542058801107946388859542011662309183582520468793185394548356034873409321286871716575848030252577937245557510694267743158361027024247920620751374727660975338155209963691670088951341346267159814564711341592787738812939683274467538896026484236493928330956651882313442819430352986455956554811801994012043736107639759328824624911626413756795777098072990166268199362372684829895303878953510560548550615150425597497108440719084135577543743245339724846713056132814185277871625080063024737117223174684043682987072286498683376563874796407949161971828536997325248184306325815283876665136322318894760349486980266303889789630800873580506509769942282053072554236302817331389938950350139319995679838325467077965443839143641929521725073818172316841340472979129567655309950066486173871373846943409621577727195892233618941911749401965525063153799247364353997044858596726144160926222036586719433067338525078528820306617910148408727814049802569151566941755256938151328748873002716017201508446308944402359870946327425450048997297180041322750070439089128026261825693358962346676717115165303000564420871661366420748950992272027000003148206650955898789974139085195448321586340529752657371123616601418255496011759029090374240115402568638401473246598210999362522328998713580240723268637915358401270447861762104666087009794701606271722250412664820017327679927237549098912161617984721352556984896429526817518554343232102497234237707907264802179850681251783811518440195147260423810191306434099053930163661301517798300901491720638890196046322805272918764098125244941698441538682801623258181079238866105517905595848809497158247458198318804542027058239650789126301873440335933490672281884299811490763946133713797963118303711709040265778635638540524172218604041403056503310004136370090240017116681957250589383110963503384532177273205880718893939308929798584927817981172460301011939831017290050569967208797728665234017763213103394005368277075384567384404157515661468123540609582423637768739944637810997549093420858304251940175560469710162860198749497487250659341214656263230477698849424891231796499365725610411190134780725429199043880890594178256548809392271577737106099731439370220072898064869159354766602510117249551822807787613747149309697061920448378279425986385847918075039868946320372026450416322962913012464692499808538933066161649944650971943566879667570179119137666340136086197676812113711775890008589874089480564976838351820132610733870879868625980707172294065196683577857075891607060026760731871249195120506870872302348566896977261277016328041394795901522022739808812282915958134748861317207059171475559830662473843291949948884733150362968249949501596398788421386511491299325041630339815446705645420068129272810646351187965214230851828137487767703903406877165320083871358855049482429920914467913692603927388662981455344392595658515651510930066052219017411277199073659959665190180964016381069465405253162895732900296659335695973716913407984921617961694289425010015838539948492878884988731442976785079399830257726277074399759681423415327247140493764947654343342094031696943681560108801917676779270056870373725312122300990407613604104236744359139504611187060727357077957880100678643088375131813601170288556570667547362978789397002272052468970788164278558670612428545505790423366823281938919830819811305635148570466199559560806029535615044737871619339493138795164131983705486605436387411921782084771931877424460528890651706501367565862603167663582397192504418608371018549704614248345370204196786303268077440173310980101304817336254435525994045004845351593147703149703742106464321068951690750330266002519684070069995784547238551720346578720461383828393626681119116708844229908395188146423240463653927216751175120554621612467072881320460509778958910520789517109834482089566522216331575169200857279162332087227213774539864623888574430842088701637266711853567598815503096441341344839687885763418806736148293448291142523942935970197909967827421432675198532733790383727822942154349795568802135876407819303921935155445951255120884310679036309896570758891508959579146981134989880290739846202309741553929345797109540655151403982546376626254389302852357132970857825667435420112051027959548122739962302554509973698943720994652634366445734055146665508732259302396634731884442261444735978225155803018873790560621662678377186055325030619182444274251702978237545027101654168469240824675917921908714856748722388794031420014208905293396988578282985932694334939000608033352751291545690191046243783388389877332762534309247906878678861756827256897480021625019094788698065826816189472421287497193122756394276261842295216369499978444607689455336839006527288000459977010189197196929378792347133405230626082867994093417430136155347046513601480261689910464333297915318341116346165846562599075293728352168241320613904907963501747913212536693579203720669839476277658874094665371098016352978712940881954064729440060679020515415410587232200780909179801709308862013883444653281149741702885248460473418850833735117568442909897006457881168679202082241593476394049353302241577114599359800898208303621937006111240180219425050030097273240424986751608751460653950649094881089076137485129790795058042775780415319107615868647172550604347806846955012362726324817894209518322605954005264172587963587666791032809191481472986955061586794534407958710748979782587536516576785372679020549475061909031852043819574374205760184705403015229234944781412923988403608812551759398607554747026197340621888880016525444620991104643471202445512123784090246880969434549111567221516352715249909671074254429040702234137073164418054037924429509497934982214476214257790798331943172578423622190339099018773036737649337482488451923659809661626464857092472027360572718431078676269976421865112761849329315576490223929511497172925081965331190710198256008521681803561482841931186825470442670650871512727276804154032718098010801777651358239562995595753846590198561359746335193454483978997602388769604365767327977160696347100896940932561766865178406488614537435167693805677400875098127357305598105859403255147033600838058925687666787528060852094167766040337198227863823988457415494788418578558512312295090617123807246461750888561319324768940913669758455955257811109205024124946227958732126610866114740431061723288944391285436835190593377310145602009748151957020314004424247310215925365455793624937528128004121479568124101622346881758921570626903970317737750399450267261384217745548745725897730334513244217191736718502147553547596417733214064902601619558977738163672530716902360285169223587159122667502999628932579955829002258541722388528175577493710046837622932178985264688367765317833588986461288448258013004409511670115510012898489334936334810573231810355864697412833388308691331311230555862402692192901368200322287047578657988548691363572958357054693545356000278766706448622247656245355369312344870377165925146359222360384849362126131308718501279696313492331848760863513544599399326870144014415554075338794874885311775684446684854530845475137301491128547966141921814362651242104754058118337454249250552398832461908189683090834854426341712638739672985867356898599728133187269174766268778562443292352635542227832569412641345035306668560442684019253362347259637978292399474887018879453934792731787623164916030398926505351094971939938902164818612073367438177948798684472107099838911242108427712653042018305760902346621303532123790818401202337207191119551207084505816334607779323369916584856623363511765109822419449377459795493227540731461987293552012227522598034268507880143635113026276483606678000771585135183899492741207754550469990680971228311053301322503391713466740734225899700446417825145958768012431051075969472508988264314746524908699356525347734647135571504808083938440910450522864677168041108733743105949565421963899087753413110278154928968290626649532751139298275901995497379032117098108816228863637039076491008648850979282744300110726302780434712828549578059362766257085368295372035698836213428737138675855452018481523628189822789507996627413925800234252027434751388174986812801654791702871973320275379661089060297132488930672940985419888896501198472024261914009648131453299152583276422424094402078027697286369128977425697700722551700125204162527544104166359699296806469993622054534445369287906834029045958382224437486973199884599175129235192834708277846666777565653280088565313949524858870884576327750060065932723457928232033258671674541455245756218775799064959035342410216909195799092873093129596095909495168894487647832676278506178140651363213050126526384520231821609659544616958500461780625024735837244580355573130894186327313818909633335386397041087930266853981253537319725088048280546924478968619040915205017626162136302477530223709336983960422998744950618128460726325736493587480796014620322548006866006751620119325236718105855767233482590570622591516285294257973280214944890657516400868935736038544765857481868071850941706575755099837576032514878732639749446763724465848589636178121787128953953481256919626877562143709200417402711956049902854961443639547906011223188381612642484862332521287072704616906203805845914336880869873941215048836920675508584869877317420158736387792660243409408152013631483826069654715702707858336114460311202753197000392615642501823193060726179675034951465618442947039931507052347718585618750898960789540908457860698362319468893366966600521874135690841796075122155903011659069969261023648758941191191820651065761428446476856600193654302337614586815529561063290528567859989712116465647601041231709711471297695300528119178984949637146440366650605743815797557123272697538562847025396854220721709964696260018729904618332806284368867212228660925786015104068646348549236859433300188734970160928341823540444661598815836762176551020743331284844591894557402590168885433308650932335712033017641342437978550104330746204098620950689228084961209814959807111712809354104162771148495311164965040839319717739556024889898387900784207309347985654563231824569184668678353618364299511596952609182039522137327473918352870921901349819304482149190512879882903990724088943914331748889855414595096688785991440909620894840646052940353560033228737878260676911884721817265631464385227582247534995636350548454925839195520189259101443595773953767742097563249549774174353088415967751659279427689577498214410004757942579353335359956516207913059288994657164776186319781033528498652963636178746580869822034485854850787853851169815190960049840598756675176980800680002764650907126472396336536263458494674454543246500440703826981915623699434747569740091178472747767348101536535905183854125084932214590163967461724974381028368262371923704112495933037811306291903288323882712506084594181972892755839444792899206159383732721680374624023870100841176800798362258596970312928634234018827310482527616336364849784100689492675577261053943624348934998954304348061429518039641582619848965832742064913552133205168446725658836466551693603960124553619507512599907735875486704226344203632886864251406627430157216540137238539307929405059166453691624302243736716071317622261742395980472593487598316829587188321481080676971425248976327827927945165492241408258439238302833746256855514499009639867308459457718282735018657095736970003952976848218631431729171183935123526824229712363756452452713309509458372773767615795553355233510891316420543535877503795394087394705497265499443617637441559116800791282586451594113699083762362818109592253769982196709870132642881900410882133233268020214635380996427167770662863956079092239307315684639643385348365376457771595827018468508108858382234355621155082130500277125363411943464666094167304300011507690088558369242688336602821737939280105255958857324703022515866608506641555553069324477398827490075766716239469924415404021320079915781983513021009294407462840051214405390519274086207972862305299858804922951265098149502997695448304647635908496545454720685972932127698500146931974405237260379270587484967515873170110153400826766204912860508170967157512951038617639086194058992958619554005161638350955739486348497037508929821534460126149021281072378975848626947864833578993427410775347448172424651572987011146494096881590819720447969690025121416686683007017790704324296364544225825045178427138457120555288477476432791736669280078219279409327145046873448540488385205559232147479974477037846102614787884505928744864124976141143744897710967388548935753466624566886935315278792638902801518155262398471838003445808134525827507314783121719125718619476535885387033472175640499729768914117026513344985683684365588995048924899245723431034184673434018096736496932411341380804627090351463835035440826718465057913422504099641500212095630714887301050158125537538879650313085040864252591259476563311897373063034708045142341006667755937120360369148391035296069418886559750287914087277456220863768167544603801688906793623416630371314821511022749519346260714192181164903079728568230656403216108428179629781478603639821807459805286184827555593947858610909193691743154260134407285255226517655384007660707945542962354936892439256707008896370051160766928153708505738654246945562523823692847725860166045563883951135962118291145779602045705582942450038138861362027298206885978363111351252329682558950089698296355010915668965123012440568473527763678208754423116176286416691316049233054899216350680431762370196560461671134155423134135225787282402504587615744243409872867876039079912639714012792850145211138915343893173467808554668470936964880662402114870965340435783362751709809450492328510771674289937754943545047587568888160484331310974560959745651845755990021993164093334800995234323226559775995653832080650072376190905618650266002306778568519403054957614895070592131647740573391945931981396598518355565204359656663515955106908248826260114046925687947273060612163382271075736790134967751470897777028233613138396821788491294582852236829528793428831804708713382613496833125869449032114983484315007091920552600975702325315234875463721006220722024472606382904793804167568921590059450086961125821285137423195684702895305000130658859479950093085298243381832652836987878058460900286913405067457708953622523215733743162203457995422479517315210944431274524571594359763937184814030925357438424939190368120040713286547490374805030726781302733611369673338663431868489410182344517557578282192065691275706571513952366032680403421020832689509452224325132153714727680672168024403386362235214761857028117672807855686821799012324882944155652786982397783371587722551444997581210025785679876834612200898083254413463316082532257546508156034976390810873107684768863822526706087765570259360367983714355069844024984745631954349261627422415238780900669854795275992532515194061262205239805971999765466017393537830991026425112811464849769946380479076243767330557976844119910659521392698796725655417083311791467549652844773977165416313941862887439769848584183197062544173539656271904744827969317559944286155920067116322380722976875163971304714808218776439137416974594765918211120900879364346546308657118623080532965045256567428786445319507713138050300256691120869384746717984629337430994208680157067107130160885539896136911465657263311683586716158161288725487296304002710442075312599899099575478980897945484261573166296833768399635469256829648818885307617407982342291757704924605467536738994692425193171645414645114354799558779296627004315292387439374052047599797152825805474695112708579156336979773643133101224297117595327246570980564030268270336112157221104116787308025631434058339813406105667768023448732541875513147359550506881837564741723449599036058580930422717502541866068514427536440390779105736209926167024009659035072789850616166761409857278572055554355968208929517232450070607207784352858387726997565348328579234879019732984046555421973997435507417761309109728212172674099740738717993079829251317658221437349050123845948501867579689915033162143079265286840104942910230842936843223896626333340950839552418459791360408256408514754617636860610050837375940423858164380459749452532644145022489078473371344127301759761904794898230512660549889035370639208759726220704898178360698812345724612414266465646269465880438228619444389613356735227967171295954769389656168279951323415639922467615774793780748973336002646234679467162916205524127809336489465007252281440613229436669158697464871314812671086198305171246449985772833288010916113586985437370301262056397859880236176475928344859805526484480134383820664905325787763672938896109313746329427428855252030469088532068495022717294947597647719875461895115197990958101013629539247953489494665087281886309554450678302472970500579441555799336077198361795690274312207256001742544856613511624997086892684623090444385690020218094038629852467262298320288737930219977795649511688338605727587175085276089948081735033307810704842496030645575151376612409255936941524276786143831507400243906236604692827642473448410771554213979022246899961332565925151538695865684849745548884686453778856454264149203064503233236339208390621440563362594905835550763327591622586864301385250338080912214129184314537185135097270989556306203403725402057233455775533867542313145983285410625954266027454094332853893424967435894426720387459879247530170312589999966522444845414313085948924863987106329517445147134945144940994935618465127250515370551994748218066360997207763283142870624165487623354437676161738606930440172547127934602206479922167989669701436843862816765093470937306541543175762072101626581249888333883429338853445776246881353606434327107997578556410498663664701308107249066643344865811138180673329759874739572965063328304692113165694184505625169817874542224471592637080939315721660434582595936977498536075278786900165091645175705784147498841712837980689859877882056633900945550663007782900354776004331320655716273069984928565123337898758755130276033314944315173867339532979326393087890243210543661548004303330112221912249987757586841129949605944684677250142592371355410661687302969451478110620101155764731352103990420803983000865869391226452370171167790279242892809228086642270598433057519327262856420567651232074493033005428670200117079358468694012884567932723818030759100663120462412138267211029093558353816332903641186182127011217815604225138972649332048531686036795235720922425004588032898361573409209431173777126797908249452980430235281031920004687489974557730116325350406913312785770047629830724996670859242290175322639093021234469715359013798877155075484720809355798222567795277043003290857634153714893013503207888647303013883493630033957826724989685714595931688717057462845835780490921013275728058038883222576878919492429242470984159969052933582268602031276552928136990866252335739533193878610004226068777493757441905433864242766859153906215896716988823607521096353782890281549039900058738196972497452169983791719579855511527886541995314073161536239765051972989539779109899166422341003900734352712766452316437252960748867414700361683871716724103851877507719242755373165935107637754963264114158798086895348014271393532143791649876048072799544345128782246469075545668619115136491662421539394291314174421039614269939594837567642789927863243084068701453668893824803322058783834443400705533643346040578507051649293055425592614639478807806209205490016761988168743251257785776551249853079475652091901340769564220124127373601799810280626675887238753153662293201184777936247407069277619050271982013730003545619503452955024091342337913083979370256172060307475923998431622132430376723169553455016024245393084638556964059246600110970839182198194423961123273945893094567333189587187503917348911701407871384322863550962839701281292129466324933333609275329926490686908871986892390029353254956377745950174831875982567343894398407618633875307582239138176719323627270643527962539827805945119384831965215414560555389133540753435632733858859776774411012273042523034292605768520000997092811226789201029352094591597551713626674428420520173565316807594628829428933596624074745621994572033849678378349372805921805777139430293539705078869991403279368308556983098377800093326807608744012106843995394898986432262937546637158110792747832899640672256907058758048574610584551227093209643189901054461667242598130511893898884637055122383464107647212610433646535447252949016175347047969840160581637215092989801391032035847173467982667916437612340633199186164349162144728532481127652436949933994558815786273305456639253945865824700162338046109015635298221397101213988474864436983066167207699816156233419583379366362824995332967831225627594309776210963531382072090946823684960581975610573348510346373983782922061628637251397778447166517148870824561512718607960412822011951793100256374005263290276031669093734753579725032915964989495891053843949005069336576683604111706180684567476550647640495672260002235061131859221921353518529970495408105293592095675426488487806567880905014888665616593281244636881353859840311208919288902961484244600128254501993840236532452119932899829306076806547379218886413422322101242859859615271943222287632389155928643157784110542414398713308171283890001611225190983381283403888997249010971457997154679820494969327631579783023302487175862709308855449441269111051597563703641380492808471585651838248715913602617231247634789258201273031220237190933252394654472467361271405370061469671482850288025416632153865061758300746188785309024879156497226131581461255227866750241618067457556797850222977919246728527858497799501757842331612970431829921428224261598994606965765756262931151174427608362427838326393875570128838775359688845081933134708254791128201294573119791456251375824437518955250056343114778971981523337312591205088195888888304293689048950336128628368420899333212935381748798492799011885524190931361356209815832181591652089878609753338093060078109586462908840025093998979914577658003839664968243827544454200553365165022069922279366161510805178570815866785886458519688654225511014071031322407540416022013720610352194239979916076664433340751557213409945722230696546672807274489923002624837453448746658951056023072718173854013456678853432115467331996528807292549115422332811102387282653944207573642096856666740666276047727455843544256229598932410928803164523463565400177875205158627387650047252387302336255563353799130608305123123600750666914948090207303306717968018793298687631962958484105408208934273563577175917194761070046665130294342424499371367962459185808418952601937168590658906933282804258203569208025393465076072270980551365157336605121878558066087144173108035833907024093266213732632132027293123794277896451804044404125581917592084818341119253479134369261991042585016925539131458171302732013962609476522027150297092115607599980420599860059113759589978655873706927364006467892655024418568008992650574601385237598694818069876798130316242863173767938083154995032480405960088400374494032121064211068818197024052681247583665806215587164484818226676706245153669134573487820275214912304572864879850769574482832552995059236089531959406812909056120110434788554841204289606142850791889155734332745950292880961360852236686480175139275818352760060800211181639887901546794727865036013645914064126867003229668010952807510985405743419943522586997309483132678014181349103475485911020933015049753097648186856161443969521270658981661127266771049981222571821456587825237298094992877696240887684485726796072796969779118983883681165640746968306868071220161071328534455600969458596677747442713753950098499392960510887421311866096813272673338475036842724427544067853778145175808709964125400873098329744805798204507476377999422194746070594462177241144500012346870541166767071481263925590044427468252829853507450233839475918238108215138602326480157199293897912908111835413837882744182493083522512132002736295893688067606253881204544767459316613289432246124380648780665478609535843248167856183525175615408064300995581786983446957182941147267365046269215778598374983338475084113749945787681699146197122945528228782931582451812508993928084965419441085345941381287308964369031332668480702891697044223371287407904271760225997091714342161444729875357794154533053427807627900830279089564049442799924547973997326460330875687371812079278606179868787480481769117391384588278871256943510718090978451138816404504327567038638797199424559326108895390499060196579049412001724716158244339582535110822741085767106693654520279850718266926999753367979014738598909518297148486863126403331126955338326489076677278976253904813900983040786973266730332226439659113196436210225762107268827647955449866617076766685330214284297745923226392225972038666232131502686186419060049530851539791467757075435865805150138158732598035028625587034709522274839162149707415470372865233306086816527230816030684523628584077302960019811849218908796126438568809782142037621684132986595716819724130748177512064301550758355128358300848165529797129582735069977226939924837085828306422389191960733794160009106917441133953754066527120566640782641066282734353940954980397355468239711132039494708368868659513130166809535698868304881614424532211886529987005542550659044943824708535478672323655044437766028711199893199399122439575181598003964855467498966509374351878801770377648909948778238658934394845392045033563150664992054065382362451751536639838006118215154720499677071675628598141016595619863230945082659018068554035716222866984455482319235781663189777682242120546739878130526589175604475213893135966804099565989921844893863818662113026351357927055533020581146771699894961622034968015097245787276830132889964302495928449219830199550226773930892086529553350859179161106762913229523278598774583739092615473531231569336877018465058929574370623533779017939591525057728557460459247385367344408493320930547066611036019249637538905434393130738531684062494727133065857410541813085594266018342339653091291617094975413417992226512634640813953985322669053873825483963460047869745366769885294296365853080457859216559873727704969026185469599132901146218001733553713757949606361241404756166648890509977047429787717255825485277857293816653879055786005722023065465738006858443657443849165018021855095679175146082232092349493231501143935084464481504034270507977692493246801401226110050472379171741688656360174884961360367916080738532806456777522240991368893137576582895819278132108692670820908131608669522978085448765296755021168056324625629989655045392199520332938193966378611798778304452131090570085435148627031901882329057425388364212484497911879528880912960120929541824715301056390160798309006977775240885438354746246243609237331836808400955614868181717554867897912389892262915742779861941638988945962506578296207087795275919528252940593625883031770174657802322082054621697045133167290180562633636608467119795180498797906428423832610467741516258845409297086082171088502037331410460086320207901488478898275533614595728860999403548429379622690899425804046576173296611934794406776937980945486127960541180029059940580152630252302017063670594115031107372134852205290863762067859482304097078768937499692612860070581426070277770741053648917816720905551347863459224414354173742971947510568763306544226315788817409952510570298510371771784577271930001089785578080536960288790274188862253959854329575333616579642717183862241093429148353826791044340792644467052795173761466143489015674660597474481955775821617451303950196505429187151335350948549853273604947952637646721447283092218208130609538795599731546972517082132974173581056923101635557641110385103353513498297988029228668173649505275327850370915196211753848850935649030750279570399792125801181540435729567535061857946836418724091726347372106451144483454438228533708624295204083511101002206102920570224284993421229719394496240965381665090725811297012353012887308673234246504072782101800155930800156714382249758869169224699920946628249707630583833432691115318303945156266303362986946288368012177432468010977865552265559090714830822425330924363169136237526033252396428083575959472017676608995144319317063944104339031850251904618235663111065171116840903268467056492686417493573693697377339644990686369945937233719555661357965977093612201553609425173300012032428387286884836087310897588282074136720637459807532528475438377739314307252732135760404744229033599931327345783344941655836608103614383702367695454040213429447155847549798541154556812795033126285500825324887051888602150572424595357685984963315661198004232496551085682995942894695865495229458384907411891092527747733450236783756462278175716538586881498067151069058189641916695212382383248938159955597707279646538686828008463811473845929136384403972728188325744763284511266329203627518359245721381478090273606978424961041483351580814298028295735836767339326983929842805645980726318046410988609406763887224562516970260302315611507232824217909725497996024171996870519739556629687736204169957958327941245693390057250248293247735096858444650576897889412382156665528587074069082208351903020867119102190925266718146558819474713855016081726543988864701261836680941944009430632758626219344019724551332072207423098607016244612835586023528347237018178084195435048278593911098599575865847149012272045712070946552554019539803172585818722856369191365502367934048604736895619449871336345050519355220403847598243530426981000731232773456231778436389181724258632282706494038258171435386229184353441867280886019929290158357361861222974666187967936285510938634542945054453663550777055217816571949713904153629466673426417308777613914895267967441292226073966239937922474772296431184529206965518478892792025395953372921709944769945733871450429670512970104692910826621230627355579473259083944982598115973982181356863113072609723320769482675574064309895905252741560322411055092624439156337615354464990245192496996700028490291101096124487855533585166804264722706329832466772749556825853476573262555664290420595468050977093994597971297683477119391657472831476737664836791678086005324656830103859507005983536878354775985172856004082098654332894832268252495272470798247661562217628164287736938720887217536849905697605782386905078776352093403085422525327798503577953665873801609979842459429870623333009563893216126017959320435207674521688799123745309136223428330110834010018155487687536274284072922686032127835156386627474301246908204944519620382721921097913182004587170073631965363703314380185656706871502086818168165615567352888719506450603274939307974246267241212202488685732296378772848262562514855150735219038643921132037814588601235218638603192798542296378057233867844654845873835098554391481970391871515978272369233146539427223094057900963419352519753452708514084370212102996975873683004559769898810249857180134548666102062427021882163268807039016623717561528133796701365313687378417023771538634598718836516227183042759266145914176734267109801530656160688598330889352167680160330429562361622778287834452390719648026759926977035050361619796832555814616473661128922743437791939819153296931543362965061919233398769849431683599191349346885280762505083768343031338340589789965456158969037057737980351353856746877192654082208231425531401619022474723220292476258818981002783653502599717285311877483103694774726367307576110344129988224545492860852054050122600454172521026536289540471450256889435333155403123451265611140131358498599108850015178235835618384091241128950105102824550049375455053916483402160729511411892903405539667899819467022584316002319161672536682007702527137125924579537116449778637433480471395037745478797199711522606143770080099847119510371840702829181649311824711868949488778642115112995458922680257805881101085592288768779117846098696167794381515193196005392953603680234638014351314551251808534393794259314356080873235198187747420467360929234294531451331652809348539617272343026467180263570938124869700873662804251661075664322806086756620727031262349385952454393572781135868375949175763504345949165576578163557631132580054807823429769189989497120297633425809976752582844129298333342881990459306062720253273117333220314546808595124212322107267063830121941344971277932100720771908665794063272082640876450451311415898100092688415186619545493224823520447360910239668094635594387387739567001507283609349361155675135172942659093944185005338839176527188482121052419416347966616643202191405991912103643938336578935083597932743328746357233289906979130935603927506847682575188047809654214533160468362986263205791917930538653176564407402323998675281595970044800340448534928411701922568606593514715951250163904647890356013518850050308525880816428741842810271397177634818071444543441006863516242041405064897191050326238717263862314591892670292507530581131882003876258427937154597859743642403169912254229392783075654913203839354392806666178415009166313165093185543380799826197084921051684010604402070613713530953529061350914932428068975513126172283769258582021818110222164014036225024816104544663725207327089207329616538017504694371953863053281913400837244271719960179424442331822456135274624003468834046651448439233204790246279974484581480957042733831292852587098924169884852781864790253994863334373486928907588518100767206914778620901032809698322666201772890920817999237557980558068696091025468172230993649762584206664574785924758261976227152050166643783762435777116000985322133764481835540463180276610235886588341515869883778276221793020241946397622512060549776104464820668470947889341004204446405898863385952518120606018932576100223772689471266869167382060441197500498563612294144834160662622256804553064112711214392913343968597584029512303685161451044151860586574859131846208212107608786816531667866156203798772116607997099075955983422503291341194174626678496151322703359536648096259709953374649543734348636973267244921238380574738288337400828236808537110736778236623998699480584705865797752654310044544336774654081535887949492305750148510894067797296597378069226234879415222475285539377570273963835391824361127597026939309231265020004844164390180341845884662411603275608953437346236589510769581809174247383269625894653405000653893775749418947547936655266919711162581264367692398755226156707783692524068391648834747987346585693353622407565021761144039843946597160015109992334346944165888028085557289246243224203507254294378003515503596741549895044518440215919900666616120285693983247642580447577005121204947652810467497508706721828006595854806427118713578523558786839640627816487145761505582566414757506111623043810417133708308498222047298904249767451163082944712219608071744015582871078103246174076413417733989530638759110061171926009853373627977873222135859294021736039617458671806361981582453836994709491813255354802536512969858033132066955821497754971313672699692493406391283888585212492820284314964012276490769314354852690340690688749129706061237780210979746854434078353371914590360206743294377616457398131779276185194379889821600507937933111874465408169884521751122227742372764405807918405091790570530235233892886127179193222145787535038961647471004964994146131397876362778871792846817061893330720084602831424165787488101108097102727019215882862946489292188763546138983548493290221384228807285425974347153202046006475429654409060630710368190233805254954372256926415818494300457123060232579909512906299876042023932723518197662912940269996333785921330547218563679357287826204236224153049060231935818913591979983507001454635736254116476721372486180356968104965045888009256619335717792978727948477573321227375237133691600630096898042779226949077582977769971358779299579347461334474707146812415168449009912940558008634161861119365249058358021002650180034598983933590055611916514639410646657435952983791111222189666471084672942528600380012087710105058134348314724197009186627976054384177403945900798478670704886439020532872466310823316237263271816227245792538199881175677553729987565788089400972858220821239517458572287599639367241831748036210709177518775852062132361706579390771380141788820787742119531814776536859348471364635713213949828822700922532500088575772128108177377063387920283597358855382303073982529040044447876232002369319298094121500946682141091779848067520356188343137310159459891774732373921997182143134932248004103174794131579855684902397446602820812910657106827088459820402318427138595325432600758401989582495032048528741694231584494615786690902865236623345479997002960353141984593959464511661902537392040364046133233750862161452331857615182209157262700523921914121164095241014874429321881580669633138983861492333214526663283481280804540280296566556739784737685004839271056612764725740349643097143131826758880197895044773436105156278309489164755109097929813846590082064639461939599114080430544187256772878990060593986086664478381946702607659784173613693868204451490470347284088268072632668773563760561519016782550046392045025204821280846242078018331608045474513513764692002903702230147509499186177698936623291947236826273577118452659506119460649154716223055588676945379708627417333784218962467024700707120926214831370814904355104478547838772778742254896252824579200029371977976824137576076328615861969199900979244572257346302175358278571445684963583365780756390176742129665955404594871032877927786136343192989337172655847970465047818722848225489694110137648808150262916238686631709450222473485084173976406067769528382625391621954426186019481145335267368228762772586657108725581331556736028150264449298020151779448288361527549711615366267473404453102279067980095645275394813286180461268598809802673551352519807394038889815779078046449821013987330443449595766793229725617661476411053334418439384936571073464346149247262255777057687514929197762198852311846735555400104461621414728937377795794032434200408028594928882970297264257427344067857194308003747813642246638509918602730834515558745635109349951265179554194967615779131462057727277177093370703166660026341598130101048560321405775660956376871960161755504076576403949504286108765401086654949256345958110426759629333320316552208830327192297754597687775917610631866235065386723057065755533985912530578249091631904092493484904433548294788907423007895127830076323064036503534729256692080391359401473839753485091666942970911811035036500864359792614931624566614578503660885900067537082002490051213493429520957474549194351684293685016040194611389971848504425835442496287102859230491107909037238787469662329553547376763098551575784146843832826442580197839927745237849076007531151883979214719732296401796620072239522480120768757329848216270276256506979502191989073219303736870726835395181544212959441096027522147709272447218938252609358085137406171417994380048203310753333177712327850307115973722489071510429494608557068791616606261697700320221892107662860792310254596957874443100385250471776586688276021875809472873719001882867591089128189031789887384764089765012873257042059982512723960661317888782577950999847478546552787129712203720378781893464089730997806641594209934734649663431574056568951253431445019146441545272224582560164121985344389093467391776407878661600395183985765911033631800569440142963396997861243722263743336923080457478111515853565564013684755862730688328923244338691821446249922195420779673525565093474580506591026531926276800893855121730650551822750474015138282807365793601825148901696347418128874598947612261536930717206138224239626279869262668813331155033481331798197917749587241839201017374419349563386966989203008894823200867714288058901215153328175380618465643443318038598942427261875039664368465090483442226577635555531295073656243916353647992066223675823550714391180861846986899085098696844026303228868523138179252796788187850198068816383573493231062268682469971486970280461262973947676851342848695963552246464635570459989798023969996634477218117574316316799099405344392978160654405066087543134644202997626840640437068603146196207706960752860345006654251346872378293831043549539557792752394391133358594347432431318565684203856476142878316143231428745352612629983491425483909605750027219636226826611384549542331339580051789176151769016766025990702131689995524647040636045628062042550598903579082112993280723585659760148644240865593952214138918269804643069290530324637500722547643987449499717935096075123193298713513272728060889773883588485121017310914745768430757220569899294634973985063382535808380932695215458361369253350453169211796478190329740645411697296873569527621530692693233442292185171015062496257040243374190262845515766388536022978254125853363998714715227630962917936160901241711731371075595980723322238226363645691680712538238954715162707114984513574988920106809443477056512004093899757727691203698139112509181824754322014828655574107935521493935170878833333560727387259044550813377888154282697111417868411020325796512319193725895331199790047170927647885109006127123438169398789670282412970770876295113869925903423155837406313113414458869182051762832343365612331549581750129417903799341707220484233015457642650034243832232384269443201338960565522807449265689581825454807573638447854427379855246849155580892705946417412083254782839989595003286279230621845438573921013619929843215203324217697640900634700518856986415455721919303762978871236281772541460553192294462595591879088820026311576210405069353400508307326128209447985563991142144328037738984499796055325690382165027254694915939100940114485176696369762490527224198874723001072253191379157112503634835155470843664789256294400980117808393482433657986131699611404875548812888692011066867434353190371790837256622418309240025528829550641299805903599838569059694669341537844763083410663750962612135812418686747669865336291017085574103215733830635539800175588709223452087875670936836351530419156397942427027599976033068994252125771097870844144057693058871447126595025094944864931878497569778571493863404853623811331702388142207167157927062021515801513388676168394147314026354890278710915662085282131024401593398078782493636145588325216887142945951858577278312537760706109992006969858378991857434060773042888865314091806322807547358301487711131891718010630363793483278146965638456986628066286640507588065973910465825188324549055110247572312698050209777727626315606110416429340115191819844541536940639329776655812640205378602812357514488713860088446369058337927209519363205008610285239906228090107267629282745645090472446053773737598067621689891699378260278252400169293157919648628842968218497062939269064360443008136014818405289899037447411444935210383772545504683813294237958755964579668722689489867472569048965058391465053443322088666593610027745992997545665718482838602470757604008542705150170963959945725228628153384624029051547466294316397552924085716197167394584331767165052961499053542365158122730599320221589032371631110041387129366952782595414053859521312604709753394379001528030828105201042973519432034248683347110769194092752530304186565166672096707456245097800714422588393223817959458702125373300242911235931467168703524211539388579056431382509686755820788192576077417632816736626915359345956995894595662855106135249933593336279015967408998020277827605146290138530527469460663634830493129572108005296321959355642115033512106049935842580805738500653877280255471290984893984831948361017990172024562119955994534466169644216828920550562927904026263590097366273548243937824172889410220197184246718882114819861105383509913801805184024588862519665991781915977214306814360543892983503302094707824722091238684029627137726545461423794310943767530142076183562976940963173618424837751850409222844773533798783009377626661145657308209661636611873081180285249079382877978863703109659760086361803035484973491506785628903279353547732700442550622273893104995317027941267524027204562635585250680920273466738297892637998930790325376952659846000932574265123938448062202492466016359226506138797865744827375192896913174194701340633048375300319354228894295631594998065495157594623659913196296362711553750713672197480643146988301552405155268109614973978543894751676611511409351512291147551684777275959117366715658645465411375620556060833732801572998596880304525394141601501238022079448185990961027743851208142557180291628440554011657216264525804593049714565395700062581942094415585166667198234431737986796664680844816107667359654167057464092547089940368014246421544350961585114134380751840918865783391789990808081689023528640427548592044052985648025048400625039969757883552727742633556058661135693331719236018071457316040651529294749223840791829579224272250879926510494382062011294112218063276359085698829999066049064321607560477354890724140671648105721780000256192729972609294681598129938339553141133036822627372269128175395653094447834594246683692323996135734970242739724720677637937964549826870348110341298751040416201759064671364134456122675365231324001174992512357338165033890887352146484660041459257561701866354349929249510907314281895044748784544409579701404224502672788937899305014904551420913436013669925424654855599226881502770150068259166139382223795737069208796124137177063515674264049307947545026586456507556635931011976101805972648418054591954286535906673769838473589884627394426339201466660525261441648072203344194943598394514958963567678434420164153664283739578664933667337055345786723696284085744893240688764112107397823241547081325802366052201385267036280954162160171712684699702691348119941537833230006604938116312053513345665931607060560608188264752181675171371705632060604496212358880673774045709888445709970414070475625041730926597166721490865029412091829516359906280281969554415305640269725124737783298668656360425759576875923716717262772625656537044206451687205909553307887272875528693708511902609398696577197047299724195575226604252037662991889910268239380284802128195728180262213333624671373435353567854737754974142985151459647095398034217156388783612624773457213239269833115955959155679768133342268683349167700642150495151830147378851157585963898327356174336678131749699306932145767015075342330939168648321529326729853570179651641961659074201666167395305360100563369867973485875166972723318748547756784378651222052448705043354299140312592652821755363151617451601542452358376342755554694051979812093297602497868256718410668261324522813643168680950544575857552513460120723113400253960860020460291305896387163727966062523953427032286468252185394317363811649499790266216480594375149861841309028405179330707942052707259946454386337163617808550446817436695238844135012542013062588875094004501039118594928842673582758217740161675183472177077650061299611957356392903505907159489644757406736544464706154149371297849137003739964469885473188295433652069107658071954307354925662122103050009935016566563868523220671451382690178243945248588543457770609166837151293402486603914144543914147459017883316648280102176831370643014648626999054661235914824004542271316057072699136536727927601333093548032041260316044286055348015093477876812984299591274110331445946672920302175812993571458052411793251057388086523484666983518713306131008450906135866188197210027767374279526301941639017991234202921682216529040327354742680699208414936441653644916295175617663264757133140494451532667651168826240394331245722600245908353417039839178425914110593858443532582683372543500129682514989395113682896628946059776964963080230272803356821845273998769344338105895095221617959628306431417181819896966802651530405116935901094210687924470970739663963233130886817240324293501400051154005556661469936364713306176430014205527257586951390020651948181273077520348770458422832264314118439554154807171669004263343010539759889868170115577175778987303871943306455370204965346727015801857472329358690142083449542468588497181961630773540831209949383640161922526951178099718605873945292516890171841845602159864253630536622365688565979955650817738048751174531321785318007601988130673532623769047797901611854968171635408200711122355193974937561334456762222369909781938829618584719968421823351927760451926887435152853525649021147438514178618519629288509569100265648312757312393536430056870026001864060114794597539930239420549947194361100274604081923944376428290258091089161627910020859165183668284918335469952592120575203488376792600200974196898865130710284905801857442450756912075863699510326750917250983777570219509121000272712690896529848466877369655673422803935153510215757880950682958061444826573888540948771243015522287767666073126202589489659699745844933097606148895470526776506446797294222978554708361396323897180242093225393594109075463297443664709068183984848138088388483608783831014782508531932354964431741079932294394243347744415808588105091676863426085350344303240803750823448870174496767918370320455250221919790292609079695260240254710757326014046415873461680743516833866827185149282902497497726111486285606544703942723124559163537554533022029249252343485272462578910955819432421808929100155294226975012555120490180301878790589232959603118470569511153865748358349279923242750190461915614495118019104513181096700442050438340952116237975132993951563645925576254300379907769762895351642145780549608332392302419920874811743886291997793943655826396864013370804543051148224637510214481094586794320393601865560119959653860038001235514912003907401687420822355754728408092831968128881675675479379063722768799567376741791404633790161592008049873600203322377414620868025594210987246448777335730284247466220848818055751603440078581790375370977603705675396489112605862642857466640183658113744185005702997914015441799391501853624081393850970816849499866553236793089353341276652917899676058166584174656290733411932767176852654819644888484047652951448088771275968914507740144472546557767593836097360923453255472559997791781676502022835603344358172945609012833320928429263078868215278550441174533179552593772936344203627694243981095688817243723506418945747795346677218325152839776784548451279014113115234889108515091098477664021958176589409200263363585864555859447632927859224710618173291535191590467836942561584858724761409420160007921260686346471488661296297562496414501665557705828763562246840709293546991719177397674447607501025729744880691524080441529232626895372198090206026252248710098654611666453450214016351286690863041690384814593943007765176418104514830472182187900561746011945601145708130243635249084974472307487114481139257469197593472018564330614214170772341943766172549589144797448854626134330880062004860488760164063491655660220942658146452571989471250231821418950837206342667266281645920912398544593617368643334902444871112242681303716938524406377875906328261042363702258024617438071275312588956628204183706504149130058277371168163409541687459215224349773422716134807761933849950898065865971366182433309181143171803308759259280039581667398544507726637117979319633553734790719384681007589671283614059943529665329227747532579412452043543084368970192122587933065718184830876681057019742207494531612762956324395777266779564349112453789435646042138821272016378534835071378785916924069180626258468913199926160271534836923225751864292818103731132171905586816536479781001695345091022558888637296226815189648108890831888840390809589950458710802734141726102293918152667757302939761021619081919654439793731576581459961768626817083672845804870449731626133379072515298110251570492013597081671402321003059592559604801112357233284778496854033848011534697749562583396463876312139526228545768956731437818707096937103204817535262537831747819953799266176112814945648031603912732933830641086718766093378198030921220758756877222284534037279661836680662230091477917508098881695102943048933357393734345753877661587834529115818974937943962199024675819794992781768833343288059448868594982929726283946914431036453326494068175015360492793707340780814343069295362939528443842277101536816071711761189512585911450476917206170181718057539287362097295056470761866011144584909135471623520492176846282071701329394027458420474325010696900350022192929038881711697897978287905336113600010847803253236542565032375365545470025916194261305056906530639380262732526182381091189441473397869831358256860656170110678235052105726875137784285132613303525550262019674854287275103904872182120168146758172537392757748336620202219306548239441374465761076954463179297814265273321218887913199618121748844621232781952379789410799123227475472699075688458935472686695365567864740589672290908339027964442715914992079708593399977627052666812323684281158435684924017058058623799740030014015128794714768421870157452877952058738938868807289523230202157184776711339466993974594429390249390266564953620066673151510784789016854805463690198633747720991429584647320591246544251505183535214303391667565809828078312413141873282474968620266816802357999694810549230132760045387711896002929245720050291030865460401438356430515774468781625021880112431927530340211354028056748770685836074347612158098127575451499494367934271503951392129313014579298705601372774122502268435427396114328466018021609331269708093811253169221295472361867459188786512788966184595979622426489935504163332957724980732770048299478332098976080984227127540496630972868556338260557526865543641010664342500343342959481952201402347560896487266266164970497076634747684129068456179538166242542906088457504165879854570152130820979503900553114008855451436859319388307114448174615659329718857362464715108206953825634465868040452952598051432416760440442968185610948994704869278096592043787805142794841285340562568391039395954428333497821834993608754237632730096846886525296792124038572411170894363944789685126206234438338581249834882569186531471722943839593935123517670233514225908334421837348700766700388877045851900652937401473090958210785993014399511941802175853168962404106495413631711554185752257164661188882364987605597877609318514495891023809379491341422909612203953438535865010256507137277438449782824049764731166186538946656155257025342710704817642842317330999885153781877999794479842290705377271777247675139728919745183330517531815759383652001113907158668162086993936633208184703012707230188747615961553404127788060377618912293946886462275960256939916242534936555724835855962193478877016553484728439635584741212328488087525400472677408764741680302098131105012488952493651286111880275073090443445893664854661703386767457516781279893822875480074465421694884879378010218237406687883291369506444937592169068750766675652037969870366612776422297522702817800232987734436169360738279939975506739199250114156351297303374527734787931128043292896216090378050855918576502096984958420510031297665684975020493493360609768699576584299000659418558540240089451995436271712933363954382350554759160704393175768751935157479196294845314429196706888094067268590823177590853745011366512893277854184434191816604425733663102354585452482859599730095979709724523228422297260977450886080437073401228822924161549037378972936870457529913278894659829994755413003808835255222435824145069902355755331760658007641596792852478805563270132634816352596926543463297936993088004036386820258515220310444815174054559363876592281839377361865007704681814548146007038126925866489060221248197202127853800522940781288636424304143193630227083003248953153285866882723421340764902917196499930503654468124954086292422748905350941357078646806203789775429419603725640563011761512979461482457054247140137555125386256759242445112836024558372860571523982421039569587959301566388667046997543318515650371580545716509655844425654516044022614959874977886192862419633253700129391187064910218254041302139412104560773570022587933511301906061670189973704952684671737302366614219289395296138369391579003593940366845862831264215998652282743919240277758808229914560988681668662843829723508290904598764205233295351826450096899524156015010219401214327920555500403904918278165590332848630445852144896708567793905812648697752414799424520524246729074541045769484378393648114987722132633274605870948270091724240686482573913166136158035482995328263078232721787499079737574407986530913889969059391707027430748948501945059382938278495118382010850030469038991716650856592354562287020432203159119407986794635212685531980830220527428459919746926496668839025760548287277667204262857492878880828328168669270892646026584732942710232271486721893181859668786041511147841299758633764617087668397110608424589628180347523412178237005339735855123013525990303391496087402158912583674116709959778884844045893950943887871586847071068262877578615945201332429722630863876131915516046355211834091516468137337375209053941494077617790640455158336335265902741790678842176266405174221001531527734785872655314517363710963438156040266735011404113354391700112804945904706874092666796461761258029577968270713973073266846925637440877956961179493473630874018186347345829413108890119329049995754725805831364441278198397096926185033735884349513131781863379438420679786665613605350507989911418864992429327319254490966252927002940657505351576506494267372386165300127649881689842405937944604428589341827879710095210025114452230286315320103128934120738236971845916950691889759869516286734271079945288869122666979143111629352374913040933968092234506592324603550308817650664945717532414285793559558974498588436194707135901688002497106919087120857207991377295684227838765485922095812229074465568318497908885542845480825868200222886949786893830244660691318678878705499898747888037880822717718536685396387734077330500269125144697276641040387344711877443707388199091082784042954794016490904132542953829370644505340294390558964887173229036971622516091290043233405283068175671645176994758173792161470151372689087336730169247026707050733275992300188756570648055818052967975885550436126009058560334886741542606999832592906278473775566533578789833229876495595055089137600396385390156930428414226644420997911428289898405109516384149938433184384983655897133246859103291750366459030551344161198173184979094010124687245629927617961048703706841852959474303245617847634965781435506544017789487587075522045401790862459302720648533521151306103434710177036874243468873824362534823071655304602647261415595099711845337588409880213012076119242565613628250324847815656047563711345291200459562992413610834229626745096280806611482554215153558604736888264510577393157831017792107003210844810088429935940674625828044565224890838605431923995415548087855667695206087603481170335708369842381174065075744341378285439049172163220170693884366683957314292512061943099631428066625575163059703153910081286439534374742886545884965038416060256788100528349750841012646288130748186802410645712903176828253496343040573548550243942478674329754923874610654244765167807323377828737355470656027863250761789257103318080514673928597771915959731988553270043944776744896132996374697717195270138387357102968933899888526672801719187926957525389575276034468271527646997816302993507811221480009676069227110057017776558775759531065829756639231917726883427013290060561678987805859012555183220234107071929484481754905429781924445491128577530885106185161343071556313414198437839335616508421541787900504299060136360680434198511055375682824012948333599281671317486827465848630401853599732711225697780391530139359683948468609154551883892306058206461605604956777414451135925408239661551330650633741954361098201116008705681801492393905043705847475280640303226999469224483655482387202504049875831859581258242312103968654450602908355497033000855583752415186568621364931540472521211413903216576810209992868373388856721100842963368156374851539044978123693925228375893179412813936589903691693757805313152765564305971838268240662012496094496160818148508773052404413355348114352253725214581662006720977499105247898281249867851920114672587976841709199482932139134999837499249050406020190111272871581191158167723024207835431069081082742298926084122094268995336907722612828728675494398617191126297334833053403502639908242874617991398872564336928360471993595292893847560089771048335559444162341742895638630419820055016665585917410644414993469231742886144349907167609070583809279608516793696843509970701965218154264393831752548702114990234163282242170545070143992209750374184668337763724676165181007251233568097085256462710011880455857367659147219866513987906026834373855033539196529903281947838157610603977640230899814509936565137537847141081907747649026334389921181030644412501432355093357484328945519992687428997057286083690161463298642076933048595406682615725185030404795976017285329684739145443715887209320049704340921376787678117456234109294822630844419978652953146787605947843948937595299124995001815804178301184770332348072293437365789988163796737086649265570993123164882436066101413553619846080690987075907143326783974206114090308303315103268640545847025933633603033353344662528655949465872740096247108950388194164754556978711677151710782742467286000842962629912773930189116136182921371504720656708663178779951497223337080350677218976083680055601933167231869391360257828070241574417877823762625214473337842288943345589704931380662423257202047101587606943005154258167330925718686424590638814508304462242063426941028487738921207956308687078972815528076763628214311089752779798691608575161160499411195701666241052225659231328947853987344348918424219893571446928687911272571936724020547666769270732152877911440169015757593643403076428843895637208646148841222987107568209614789741668227295537649151414186138861732583897418024251909112590802903824157133753848548000878867516219734294124992692001904432983162243148823848799840940742795289511446456773491212762818527466927042367061425606890675832466959138341236795387662822489056770554665902223865809245353873343891171586986714073364004246630225832151477219321693527978686466276587992455130771881584127190124084827915877712667653074045169221569149877127089938733981839520324922842476610468409455177446260022627750753072448718292445972611240886360456743892444392241962211726969489267194702929166399455624054224461299430137723353503364066207716106112459509257596260102250945481090760066457454931050008348639330705756220823751255535635188197851408665126913469718333694628304695867386321737357508322460733709576043790355834400558252647129810435742961187894521388937089386214651068516759858605460316811343048691266578939353722716031806552195138375795284520329926602946160263064062132571150173842792064380577029838930187284577843831614996560990985444461623452328966604175573180724626698301288015027460047814970279921875465616117244347748799751053146644120388845781045634541666781716148708583358857162968075615886383582317073205704378222295505704057503004456802084030436291950416954248347578021024597085559629572899078569282542804673021812480347988475653661702134251181805302308133953163737375885868639746609451028764205391491434724580147176393575319991662095298129105735844296862266844273522137778654720959929806219474618635199498840924447418926195577655328597174601962814672558036657754977708900577825752626473813164874828438855027768971344591558760668948278881339301329637915480240494245479167599841110217663895163715422616866739547744622097906041079481863889230798106275392657406182333354343783147608328984041967323390836899513632152911203789180833039167050333657245996507340618377868580166338985447916215179178152121410901116079845591849008773617739138787820782063655053317148005511413406012539325217703333107499451221810850220868771100014835198386990796841574908864185740603201155036038582061616242464493715789756421880096337155596568946099951529562697196814878654779462644555776729669281692924681502028280588407526268399300120138757876426089944092593824654867537879576170149535676014783160260532952310767611142328847731711725626321791088256861017542821988211617124789122282861938728158628344243190905118808793527982832801597043700422893166193692458933079058055597828293013102728579866854088486845306493511799702954277498946003006001401697239375740154851297917545654893144037951987673738691183854486484082563909336159278287192441515781380668468394700168315398593705618235726935600286580733304305386848563834097478963564043445882670128814002236965153073202112357749915125694027315554260338102508486665684363572695640632393973718440759544182419388743051100766893996143010399192274611873099732767644547536668504205170633231625245104935975505082635092365158950089626650108319233466056828682973585148020840449381581074386601865633823829752632508176667038896467763635200864366364705789726281374450525514610757897139057097161666947829414841315066026147938618843948539029625643652735176495297553018609394256420365753411853377596264498874623740491857229086759393744092884618330729236554258873580267627385328206226931868158996911563838124449493101084110374691813414287488052355432924485733685216653581511187833466641377892995900441372675135383970377570692666411767656492350524971270902326054211454723609498203171895297765998140932285429342554279817189049797885926560188414130056619694936692022479471405677969839533078966989400336493926667800485602019144249267861833055933446784761586910726986593219440666581947832910515702591778055025759441703235361457541322426443582745087109753617949864133305029438839748593974909381874204829257649051697895164212732629672611756305770108721528498619723139527998958254423859675837476489900643683796030628989325580436020314847326933846301871027922702766512490959747747925552376858690895748763952816703231678394813594165216784801302295263563545010817717822255082563789625755671134315822123435149681642224214410822271738894117944013294701131464693627593094857452966753628847690965887331831485794623961581180925272593188528304014558715843890292376722433610864605591234419529072754257996749236456041203735241954277376268316463522533780678550250218674297776141554486950323779787150271917231109612815118521566817618677524496603889112580168619818311719432173915500213125510443409021964541680104322742290895944963444404573280498672401092450354818117142435113138147369840417411226765284084718042326732145321938655866360976369334079744406070366638872240862371818565737634037960377691696001766435216327152505066454717486408231316873193096649516400690964927380306202766315235949285219111798376708750963968061562942937105081290609590681329167361734527278569551010803215407840780622707327552810799011554508552974573633679001077523251404292120815380316053689159751035407629108698824423448509560632294059636730976564972412996847974461056966419093124778278451258754772082587968021878198344808823823695990651910080347278249836223369961728861615932580367698597834795180114345049788302528486943812827715838068517013900509137000094775194844745856752582873190143520289192475987422613915336902282932555188238819003008936171205631418827679022587859831478754568486956064398538910251419675647395401565022576953721135871398986290277328892152017584819131589704468109675341012124087939240395339897641012335505505596543217942775775528464512934306430873112087583963078803156123885210982872224076603707865106865468375508543293186202410096919861680710197130610064447683702264845266276205671435612835296474669452765693748938495559234448950329424504591768117392567780655199521407020742020037413965610709458817772012641112224300900459940515191799011929262725055125310476244735297770734611526230166057505818663653172021606524450970917517491144041728349003153728146545190458674424552664142894702159679899525084563285547098803243450971870360035537725492769036400136499066403419932841848325990041166011425468144869104493645661664245477728512142340902571287955649821045908026486760411357052515760565227133056121593893810305484825105076172355904149049049202225077901404675204839319459012832752936305837229853200699805783207465879768668305353858496726123139771942508995833817979629660922858549383434531066693943655022597143170238812863082436324111692652432518895965260718475436925875982438736579754584922453005542017811540370351891103920481160006508343025452975478953933827563359413593505505161210050709229105732920707235562343911999156514651550265895757493075424547102719275192468322417084357137203291769036776181857888834925491884537215159761484933787982755700554408979876845398525002324419923038534044738094755221016385004072242144575538708011835808468477945159947083474506139940107803856415852827792551169468493167275091743615784317792057701816932085145985952138906664833925869577194155159046541997497685794692832173382973444079461517983238367330699138542410351983354297358636338127892672164815716215597154894469240751607384018808012805201073999608806584152135037444689764599232915777058743191066191422376744669179356024815751275764520426471618539792562239548113843433372068091967019932044114630796777889288634509383684733072309612745362576566145651288910090801445683723533764769068920074026346907332806300186522573433684993017023473075114864383392210822018006003234398617493365541161295891576557607201033684429249600364404684363547349263417624144674788398362824645587969591104610727730750996073703946896861631227352286755818604445725282017551649492632243231938616871706214892144178632402090545191806479340830642213192432676148596191020846650275871594223350005975651060193023069755836166218228182585192609529997955501445257406431312602749416322421544534959612111280799636014202012644094844488664096532206291678424089158172050926190799740191693367525142135051250217397678304878297028690352996372026646389361136548882701019895948624454643634654143148481088425579331689525854336749961009236710740555474410272061380776696038856536689348229128236891134925598158946563055108841436588041358349425781440132079514732778655173835464482483980129773286217899619293970006217995474516986019364613576606286904053717252952959323086764025320463169637966314927824376868125460495645371332628424232832802016972786845485760049650531401918025322159088023368071728872232136571907609690081034221448523140528607328564399380729644285779395847140394942438707462641526906997536910062207350358508355901013523057094455946219817241869735130181326794126842757442433694219450786294510953470876142144572580284173306131363631374093235789256869360844490215426035733568000934959884462492040458268655878614669941579346356996533073374661891024894878910352958896871725005215582746530180490058421588491158981718973880177317238890939270805531771272764917432403040320593477948743536786001072683526226803024300094958796287671284359805699384473092483064022958487215524666433211547870730688386935671785136647066470813794284553331449471713913967945165549677621112597535623713730071799608502805921805821814582745117414306921563855304406739400161491276222394751220386523824586607255334153914087941318002029354868687274507356442455042149028044757979285952077401736943574262290403161450459592949818863767881203717309136461555089033464517008270649867245615407367825112264663632766619093144639272479297837457189017874101935367577698515949689087879262138503831372999924004613065359894015807500231185807897527400210610634847442215329925386055590378459995139956981556296295327039467699785449636336841517553053063839039216083981701598449321752546359351326250635325957388096271430643842246042648751841127910114294073833615689032771599646563760898293485481299434535905976958966127462453367860033363951481101171368778492654961053745826778247890943844757563941856905653300998395113063434459494817062245627242369818520770552867365370544205470999398505777144527409328653043956553713164689964367707682379168044532739930410747571437583781324165456756397034104993172681938246634238803862021951647059886888570148193038265122705105282739671451835922984710709172733856849277344358489697530286555625923632521423131442722467542653238253725463070004406569238525458380153782094561686987253932138426605134058463450836850499652720454491322614967971603741591184922445029237764850340386455849779979392736444957861293987198067392394199354513231073895586614039845791431232460270894983005135691087736168984644806591546725571009155440455732656170647924788474766364249096200961903454732658102151928682994912794434456558565635567081667804868543198684261217807348954986301551594454203027490274824857201496868915454005363827505091101953826156107188003617454542489268654944282184642769602000703724336498724643087738055012724805123592511396064525052648352832531597817098991051182505943972084361536885100727969017411540968031459195866870007885516291432697464330301950874967319170759601552002523633262558036252697897488062091180550600850040452552493723028267436856373673388859171807419612538176903345416754702417951171215885480537361513774056610289355790598851458561372533778523798764900357583746775909565221196717021817210971822529979702895212135739017702576653311993632240964636881284090068449034308290749913556122062744443215687812971002099412399516816590155450819178559026167942709500459882334816281977196741019394176878587193097254881882548234416857584526764947342308630035531380742143921689861942171268483300741270853816640508995046479084978074904100436177512607685265088160804870983874808111195521724696606428212793345289888287352035287442804268531548806202165385047990959765486192522626753712926320194884695681499130979299641061958089445742660462038266401239263572250339067261984097118033811360753627031761941316642402368203862485051555849942173416365872851216404704396694593245002469730259365036421707889285974840847386044531019617481285429757581515284818178020458443677143819855363369353685385156598069202766929634386375136276562683874754044348530027733079773182039270172990150303377880317040161093877430444614439790923366441346870830781169299769512690913057749931321768357558850308380991982877870831152597798797727095350979870194581113475051732422921085467452693380552312444351048456017847353608987134220444078387120914448095234851328082672416082788272131091856319590193677370826625198152568891027842355380575249144269899728031136625599886117814110835088656656946296704230883610229053711976705479973355527443703905447527572439087590599225247565139715775441853852559114213844319548108910854008646110993976202646937439996795618910856733223757864616604114884409826817260894579750759817472108443564872108255184701232317127809645349515372456775630807820414777177715773743571905334559800018976122674576648052768923766781675773431372728265783395463726010340071921807181078360889373406320648910588072612532745554280284381337270174609874956011996352553003879854109013651799346642313373156343867435024804274059627027704637922210298197691420233211769830844414830380628229924767275522336232001346379104518440597805245670016819892422486428695241325756227528382354071219657288131366654775897986536518017759714859735115990012623662589500915868955921268936490194849152365308652527961528671473089009624439168477036768642869801217110877716193373972371678196335635250251260088972186086341348695760367588459560817803633114994402915070159367178061097489144967557854199540820175387893807230773190844817870384969454781815652270068397229282531521315025142861040532125477726807233856930870495799203333225899630645366980606652499265898728103617195344077855319596051238580914339617492466233014697890717905193911044634544116274388438936660838246012317100501247330515209485067279464467612463847089994135040281763561346091046235921073713070014042449405993703110250810249668252932959545553318678889204387426216029912077174283064069565435266897885826127175329995317305932316695536066289520956857289601565708547732647255934521691867475964598135035758338952080292626101385469761503922779834142404964563711501234322852361433155368238790130313936620723000858812974897581543454468201659463093661775381609799068345284946542942796913447731976610237625687319931030262713368809920919570537379634124772794898185933779754600190193605063703866155418695502388830054796344928594186016955391195347306341140176676735901114934319982747470547128238511187626510911305365703389936346414355740072842062307455130535150141373466930330615675133569009500213951059816390460117427516476985805935567033040398834366030678924022453714251827802938119247410777829312580713777133693982990447352384722970814453923276822107202464243935225949683641584419581513431102651241614303984875722671636634922706584635088827987870228770983496220397669368071166511272547334022210247736074906943988688865289945190130100058018929931557448777340934472064943022985139758351815831439870714919420323702803306347144109372339504514072746871377391599853459643271795066690131285270460521422344776986031307207917333070216924447108930579453348956187239145629501985969048905206581468226196437844945755105043154155321603557514107347557993034129856225934397029603022010477644732728122693179835408517075922977675841744755971774612695915047239804749710361594389148572350911797446590438259503170716172338761606863387409945235138434899076864465222280385033504002458798861342410416681817085069634145983869592481153894427935220805489866823066532399028920899342725504884361532955793477858285812335016403191585456881146744113031331423920050038892085662040417489172327605664295515957324511974385795293337295712962324074403856103011611274573335792786901780526673001607411677009899863009734397023276537472049569992424059384082951851470629168232197162422563360686554226397719400363209377379054133250672249093371930266735895519850269124974734912624045844127422104875039378312894521548295430197662939166157541865381391427690300002018476590701268945183041707135034465393822837862761423156848453960734746665154642349677305785948960219623703457097228867333537441556119146293122203678321890109122499580081149856406828946495530508913076763813667669586977274534467308680040923108091683708594167132447111118194047930716196356874304323975269888075286741120915569010647014541059194297326701630623606439678318320087247346902661916903673000921376434158317948165910505313081282294915641789260266221135632446165471681847452531602401477053053270065369521697794948267654880181118888074893887610945710378346834696120528673848067941441629312114158682602591686637012704607277611557921972278046489125332154046370322215067277842173829170568319959276072956214809096807013845541418690869114069573246148340688630014978883575356186928799505299315125372308839981425292025758919779305265852783010637916047189266998231240871809256674284035595332335821978378875055401746984107345639501131121934264091118277787264833587226809150185847775026302700500085899774442975411494215193711907778555737200643270924172787071409140825650365797401695201720219571532853115284320686576200749439593954260714135335321637999526835388440010143875044878324996662753022908450044581337514453538880167501777821814779318192135807077864714450400880234949165889298718582136948635159079125134525789969144868993354521445366695810516381044541039867167753921701913003587110562569489082057444743942574699568715399050715467492414492147973836156212853637353302661206290466727282675976976018234006812512648993065154318517973269158235096082542066065455921020973766636384824549397852445735900078314106422507501447947255259384796902617405766740942291749379064404669355045465342255807795656339210850216062337025380439166282640521972477381056746417810536982208272535713494255028482367399997702759023726813881086850212432004516321266434594042234389768326571813039362518463957732550906596703569587884615401334866465814755522047325355674931378391951123815840593366078419174844430203035389148710479071604998383968514980636471868146640272328543128472350105860756777729797765529210361104172092097450009301385984435668871574699268560516132122099567720717159205513217047078468619552978540582708744399132139372902769962786766425581551647815940590379657279190100599192980342455326721791135245533059685549665317865674807789784731606455541742482377533449766849658685990639641884884530718941087584003311777337603878668994307155103740307685027571769151485917507077688945625488408594432873354098064029817726195007433878847994344696136984326921613715256039109863233000080087709619024495549516381392841191020273469112929187680651249924699412130525129226172358339163943234075230999810869554273435386828345417754829303449410325401659047856146322619493555487156012417157356035792433748362811301934539233427182621022448353596142874692180968630705675364986784078792643714386956048265614318530688294831595055781981609145815419822972698135949687976708066176431085910446364463154460432955757999030077430777333521580981857751692253393815207694210585159643353044679692232308522289646819039421819150404430826072811244355201029542341532068999396534849890028382225677668349727202601713945603906346420375492645882592874253238598195141701099292937242950585016793142186022521082678133072050397289371175770977143170870850227822187865004067445233932790410193095386709466168511737897719485753293666074685764770330604722307198989344978578669361704598128196785741519919161338489404340684241161205161795746490857026926814257795275092270777878280309855373016262112192486798128467033241051136147952886697810835669452362938527643726596530783707401560037717716983964897465001874644078999032703490653921442640116267338144514174789405607456465885591124656001257034405747053048396498932413392554973847041743290092081375133922839026955606305753803403114920457463378033566552400292319842401240783766088756614051111482134374806519947612826860198006250376414403261271581210198462887717570304161819439259139245359406504425280544152086822801295072714384135823837588563078137008170830084343099830340404503347995586028296359931203656371896751054592546850896740995261632874470502422253944425861433705286979342015679663514135726730268534466247064780775194003605941596972578732104712346183420413063833294522700464330464888548183714275305288947952178982902610395298941457444709011026963331979908226201037465192844993701844275377230796604384597949784417611678374018514267036235537106807906523213307496085916179399424590276439139019868250810589226399826736950336054970871130694139935937807301411750807888120746056889997927311347630112861744948268193996069216747156465231731179488055046596633518974236941206515594373770415105245317872089764093936814246843878734256161864350799731506121328243204997796377441314914621623402859523220038896737381504458980062631637264444741174415425519921647360276822096918814110287817370453429909714974904276129318166852071314720828529693917744196780944531540436365097164082518050821737099770677944074539893454302161579316817470504098326125746963852009611156736804404652945793317439487925965201534767738197925935085818059850673634988421510735930622801665399324874692911901722659857653339638250847863395244562341477082422646820827852332759028197181951442522434744116130530721271542036980812498420323383483445629720906958728625118291792926009658114529148642821477323544459291686136384772313982253194237666057780234129706490083733410243227649925873659605903961270605519456078168375684275991333071162101826023725446852654850984516710937958567167344360405506021758725562888041782790273199605863899685693084887713477930217582859528374092797263186583445654310649409468983317826199927715490248489143077359740635325687948006825326248851763668604129153292017398394630169447030853452350536375172131552966444141759013656277534886999594494694423931682992640925237384495642282529343685601014191319405155404086673984345760034527559245997829109626703633963370763207376432004043868308529982475196993288311205882166781894687864279407731358223104370911387392712252926774298095731392799412926784727625850081583929205185532412212049732859961984634208233949712062150160056430321366594759922507179489680639889221557286590167246448805499134393785417527025334604254728513271002344650824236865999625714580380683450331856889665315504384929642371032896668864479051778593020313039128412179892894889661163754865583681723983151666065240020172402428570266050884219969591302135467572677251683362217434602318608753910129218216819804629282075946138075361478365489061322444672160385190550192916458205624202167132266532696272416728030047198579636188713507244968997547145173939236810278220042118258833129161766284241306508403715989936584154950086475913219574929385479756268928916955481442636734522426500300276793965388590139601746117909946441762007420438822382387410029383507987166866094755973708441025171715249172806026626575321051579746456123875266084006669509418639918038170207470826565953924656359183000717180528190509102899740713779075940815464974397404279716075694867215872545360355142860294064324083937071271795711620123479257328003343470029784234453231413530290107947250703604024673385277051783303162081247687152046547229889911690090102839100298030999622133870927831350334192920351754429360407614304365358403248302658951790958379749019311476667118761302635075129797784456542444540259607337938800634333152760384146637077626897757943677799891257303660319122096065631938540145275249054222722102062636371316548651920617875688763004946350566505983300789017035875015973975400011907077477746732800059180470875728968024959721254634778920574879561155953275240001139944054861885658320433053782166420528227067668473116476871274406402943451937891884756401044211901231144620328487375537510959269354090160854552944145257628593120598737617765291876893153508465929890225554007043238634129563871973198215380977519708328104620441270770191659223204962535501932880551285565966632331255149352085282825381645649368776381007818554101304148190776165732984429405696527659818244407924195481315499628424446426728303405920045534033281080814725869444782421952676439819534989237638931510705055469405729767736699043199104932089606804374878078829161041594321114630446359408873808857106514810457665160035699959273323600629733387224536962250175269755447011255557183166624693435118846958243316341176700989179754268347816765693333570795028861562175480682152254889269092873584239518679671726453667368332480467180282138456974158288067782025920506785014626652441638331570968554798810695563532817585513277912014498479593195855296024122373686832794402079006379574210155682297728712394198780744725138561775589745509207167096745246518547012789875595814647086022951941897370239437671072187845129425197950760939779097214311087727621469742574628781543600664417735739417239449328244744416832089303213936961961502823996563821334871802664648617168457844851124483011148606439284905757764579304326101412921254996267345718060794715842914662727189659474751283523151159066578579945504376643756968753695623539571046965394669947733189768966392680983195156236311479820176417548785096888410666727236218619434533765328077951906614623771925445129503901346390537076650274286891585885694356456045377635206547674601397374503811496879686182111482367992918120607321898519597716787220435153194748917187471947561821025226020365494401621945083379329196994202768121291135064429504755497116664181497277311954444107995726212234539018446463242644158263363009394055954706214340805456248190411715538704070490609999769433056068496068104850006316128798362736793158737300148139801776393392374709480966978466114300184929779172898254955426379219966699340924574087110326964967135688858844357355586005299166257438484462848252845687937005600456788052839054628696983277490700714677927249310546410943811596539406792106735393081040532947599155438248287648906816527545870995674642546016781898118660259376566476059170076908603414653876504317905689299665268628816034049282055183623471156688039323175425679749826792926020645259703433508487656684466122863260528963629094267041767803714140095784211075671265694843386819961079036326169516209744071498248656849681868117768739830516347239348334281935611371431219450747138933906346909759276255112011888335379870424138043282360596034025790240273021706475242500186087861954742221056768736103210468241947304194408310562281770710977296247331004199766872946591364790393219866996099804306960076354005114270455257350843765458496638283623974117246543945809283048336426200895535432981131167107637147108018388153613069389890302867370236087364951852350919603745888015996626782041523910799704001085959509309553825727291258466667965360308710808374412206543608709817829403013882522168359062619177034026736982249754955833686835362900180196547437521641637031432090695736827892102753266519718550980658035158874086113228615321972863507339855484102068243874939794295595588539942939654948461852598033337367355525152890781432266318684674596521642154125295875693990077518384031985137274780833755402485095998176221524950952606105108771020459315322196649216753716218101792381394564659116607255893961322704254887186432568164749886812220369161813343587472842019746157858119419005316958982030282149486159661327949632899984433894162010078619539066456429371492689996185171639398018342403281270431555843982061779377696165504942493146524236403144468875612554315633701291847559937857293543114540744833710979730424589545957145645796947410880423550123699211444056611921691789006480639949859506556510228982974637810958119375604983769978528195525746441364137205625880085893970701695670462878335402798335327467753582555560130224129485991343910361173183763006625942949887882258916647148152186837926123598580228735372383614716736475792932085853316364101760893553406914094051952006536843481809959652680207769173409930330177061703006691623371188377827954917676875232270075805072192542758528983813152918990142396004616991209538281608669757972773966247925024883566369107610329717601588513005237413246039838393084688368052929230742672642701450118518271035719610815964022570134350389594837535702992377670917589341993903161850286700395502495940655136426338461397456827722299551974892858317060974109298743740750988002820904257297003474788962782007386070133339932920963024090615479852387007736477328941639924573853772444507077446960194544505736244018228387624340174746932605169308143123375895413687017438291911576212093103289137035038890999735050591373068243277598153920415380920847197570874892685929410509754086616579823782353340909009839786772435117567828576824279879559442623345420118847788752753669215630504676883467149014672697155575650507873333958364259179363146648764467469386099873911211398240264321168880135359446183423116857173667233996706695456779574125218415237314621160934834576922285123069095087529939156575071878142447075706035805828505212594656652167351866164181706884950895732003740536245253851463736562520025363108793640555465586421433965444750130963579650674676467881355369609614905014043751033454558612888851478152285449286175507381905319124553584992980871146526685104802510716206568599594861911670452438787261288644557264379097859229559415773777002366006999921802170957631702254737197454297956293662847508301735251125700601452831892375600429557719034100620336263533467843779976517018932380933036983198473726741134265831320722905439323653850893583697250707960067862756706928066593606660804758250603670375038477511328032684238646290061685003289565418926798621452668603173180390052192701312823880680828870331849127753035220736268441396918217594482197189523958676851832786473512448587959669926698467146322044430878899456131215284123222649005360989204241052239864146729950511124124981971742774886229910901008587243023949592920412471800823706912697901080439227945553056866350648103524508314254739999808153326881232615798909045010679508349667152049057995795790604134097106378192825282898044849871835205120187118728568666319202083158972980717185259845991300331841739837875151738795244784005163555792321315182646336434323245905144966969037762634844611831564079807159535669702816232334871947489400081397694155895569892614171887387247836055638362028263527901146110227469424622830157616816680096730445307067417875421568617635149521589672826989713285483827329525192507040560176280602537156702699808953722572848754599429888168446253998583135912358271942331523509826157889691209418913698263931289504345507764382102999133586558086021793281178453665261223548384484720071277890588906223835391286799288773094034606411783391579540593896555500849627030209407555895314266190674601684746377440021632173878183948149327593497178482761489258477194791462200141960390174612037530713379123874142556764943941072352604925911810431540111874589405847690551872229953980456495691564237387996446987134793592981675476363035088029535755983920175968914952338394711458997091112705092915039254887039214722109584206944005556967385111884273048523820635561275586319326583405320404026239050807525599682283276180114956750602324592375957456618627166062496997610391662340360980279165574282903427300166317277474109234803530332702187935367413676987133608081177425480386445657861030582186158310551451658411652593609532419161924476515544232432552091456252037432420578581871904336401177083680572664456437193005333757591326935446293013427009840218845221389649601117446167848128508685994307783094725453394686532708123083787579078763325926103855684231376062678518556100671863062127562115855031748141193044862938011220273651466756508611290030925633414152209907136900848341152348064400473229658285381554387482220234068574644614987447736013260565185196337031790643049965429321470197853461414473723662839886217053330733906901527304530731686977922954834896278291530223015704930533750171966395799588274782961143857753016640676596044819071028294749267036612130886873350237287053508260997957784350129595071698951670753247819653381196351859605675175918838341786895601963200615132838118180579483584350993151990430135117094292325965328456802349315628794750639631973455190469800775158142176404921122674819920773305978522797269384023870807797397112123925244395284132138220927514400229612301693086817384279184958350087836001036134443073100821189573738675385708568577218879250023666808561897896278613948787206327031929622533690648492140640735479662268916247507472141362720996283302080307084181875188651093915935919519137143091016651619167621626107706120484709923446541075814447377039819592747325036269726929634474127084897330353497161418651219702498825249116074136423129288685660030584381777525867993130121751818547389618842406952821604464926391184118754372339296130768317996047885427891372851770342496913750839556664156908026354795333297664693598435691242802220568016530544553240009250850037327113194537391154821579600943606855293255754099868193252755660350933822849978093797574089641614110366755376294758375081795766747687732884582922752265295757807205526465367041622595187877184159664469352960482856933223581289537216761355311756203315975963786940482185100664200646845403406003903751345351034490236493880468003086839390977385325294654770754974852219585547745846656900022607467832769743622373334455068101698499672613953148401019925561526017659074769449091324355415814701262062072476393254913925406414982345211035989034574623885549899187013200354926841071988778600442210074531118514439140153596341174321735754739575673691884875416220315945762162599497324412662909904782469857169333048667628939488482345203512784334836140254811440894600881349374307402353065374749634712306146637851123426579637822403456146762539191945701546168658721615138062805121128635982567306202211982902280699637894934917641241248430275459573610440139171852318026310705680752576129949536380357797936919512150682294526072561386006844540810749787253509268608397640600477769070590682197791135101098131071140625867975320748108483602252026449852626294511326428875965708056975007301561220881134544307584880746248634954383574387069460084673356468540697510473692364070742864827359934377442106397827802322112032636033986205029907353701539059805813393755245666378131922179712499802793645961321836957515326781469228646820650309576796017785799618600124077184104543971293554224518024441533294109873748722003877282467337663401292503448516790994663156961899490630838528881697968812629080572628221064221076281952935991965041049672892043999544596377188345143969317714645334641770571963688126647606650921796777077481474155099311755542348805356678087092438210192532741051100985939093401751670719090923608533136917959862832213489105448210457384355667905451593282419023109538308329901906692209915836703411927821748653846174013989661287147087255166191514869887951811741498877948070119088737791202625909655642927175181091999015434767541549052735593758354706549008603322871148652545234205473825968972895109697711544684664023419377792859480125679357512110876153373427339081421767654478307954369693142239805269555022969897423879830085678461981717615662544410138535303105058723669649405521854075673403928672814702845159919606026254653688035382245920163871444562439743708452814822367877943436740743575168723674677835962759489235165788644952113225642185516410976822392303066629651002565587046991767881553972179710987228617116457627086348125217395379823460713906011334916060447296843130392210378210390902588701132599376883355983199784738288790076942190397040473099797859353970932408207586496669668148273562721996662821256426953320206255766543036140075771394427978511162402030361702422846626833540863874959647004658161180191918190362459270310886580453412887824284942838241187889124088721520791860743584561613834207355346752094182013532501127623036748770071788564706386246938403061616444862448453898357388835895490205481641488888745700953865283400168686252680822947696146952547940880791076861931632735490254628353160179296435358139849147047757504383317519296321612184991307789978762050376199813233688488234855809058696840998796760812226937011312554236753774380582060842866598569222916116119159486220431202842885772605346053879135603400925784113454501815325857183832912953082100578266184270673605994939999824235679723517186604392616714845350099650205780625709725294494247419308239741666838944429204185740423088213581180824032075873382436172031073881112790534706809403928596389968108301043495475581173008268934230533292505211677460050909510475800814104457292027010483450494584246347689273861307544219756605738472536774068862200961340580501636551885594606374416385616718264197259461637646907589376201525227602849795669898869100380554724435812874028581467228088685470717920146481227440055933766190150427736125180364463834007605991633565741203592564056223670257490378552931409101441030064096993295471851902978536891914905641505288767990973343801991203307852402826396319759218102606373553824877360397565825046243933027964963537340341126879457467957320210986299599321377848710165751632612570502372413043884968830759826220501897027257566321543223385548808616023241982253190945457188064485477722341804011435646039732417412080094946399697921997155299635149588854167368063683059415700649748502941484202226393073312888568277861714771281716596736091650486147272642041404233690831259833646936004090551582961576036678013806786426566110190881591719146419061543227030662425515974488604281102272094655725677810197663687880164318362912839764484606685034184365137730922286162421543584745895896268089233003234224438282408116530627138228068324888474876728530312464981269426460890787652133465524824731088363676103074523097118934399781723006033723337763072296400754650838494138882808784798744424943679241577636968948776196191719371108249340026509759718410805432471918738113415805222626669085354879599007361127936526369430846148198066953875911204650066656368175017035703883858751919064319995554700300941010942129913105036752431545490199729224415923243232375101919788342580781180939895484481079961774615614933621956394210928494823958927266512280065131307785626899789787806117326233426132665381318119303008891556003031952706536219774380315970678585069224740654774113171541129665378074485080015774017130098467062021480048168103982006117842517332660766461084635282648431797109342003062655761689022949471373695792635590273045473650048028788493338360055834626396937376031468793836668547456852578559325906562058297033712765328266966855613834420498741631223976578698635856089338293883030392995027314639122603188393443095993265469085014691191821494624867085715114104031185985995212560445523453396801097433325285911133968134919799958152477830679751163804174411319985099928060386415554229513975707285532900269756687849717877816080758886537804220033455340043104382892889891328875968211987987039988770487519159089755208743982566608877529001632287047286434126802512116822986844736522759725341859361291832744883696589518977369269889750800080096809229873847906108166621516672322207387398465730341827083012888771934718616051136739089416648866189066301043440111071483213788476402366943850279954413985357096043331933433860829749021391505750168414071333139579729332918493452619013767894044994182875932065803376093481507622464832256642172325430279966517946009702651320430364641781339060684667753565924907278817270224409770234421050186576485454150824881507744483238474762939461542673023402553312652703211639535872722048798454076618367915811830457773070780622088937437608308261094459797051118805296112733244314177759184482123760187623381456659985916641142555187092479947286696388265186937583075123015467180631869263159210036433289210947087940999082615512249959690940782124912221185985749588858985821409636031337120968034259915260450144689404496683113865853392935066978145542562225121162319736358399359448320005933224796038624791206326519953317329910166626419114309756597490165815902121012822660149201193995241746027664049287035277031113920608454998909544359226708953113148168854459721226583469656301710495197679322579659502575235289385914780218137942177492170625620888459246452133661431410664342404315879760729223305547357410346328025144380159486541518275045494695717781615630675310084957967668204485503398845271168649345649060251571595051582836539605851058331093318113690903769836727083444689257486431674129388871086587301671040377555374308583019054103945237908036294665305836334054122623271053978120970505493109705005854955532585617678269390503997930783051809874848128661160472446184987015217046637209438039994763713305831863613296660597831199314693046499529207260455706247754116526043038151841182223313916460817615411665943817461238399946963551276380592128921174698488501263069478157961155398304839740183778360567452236258418692989730724151486200739222117392570061556544138261099184642227004419654884355034327097968576931783585987302281230464655367709746802518274181207104557686449365016758200606165016753667601531586800818241200125360673030435054874005328750207130897636890429833387468969265201516770928377639064025777920026468075794511668054374919248933980463775753892041549751491975641468629271095526904454862739373108595760921706828630426761488761078605453552463137374024075839632041598802006921452752453279351785618682738545590880430623825214556075256970716881565928915468396943854314346154332633255605296595370739302675315712781981039412954024159379117561954958731888710162966021519820271648486149548478470020620579339529937064178364051663616132363407387375915521933425202738488530196597998134997484200640954872250515751047462303748446346089178712716059284110022759569574769642101228402800955079891047184049785675260408001946780998517230744314620109391572649241968270831969348457802004861225089291675408452408195376219730995296050508028240377057151072008440679108027449381197834337589453126870276697131950123767247963747884093019132655799945209531949709685365936949728425277029920516973208943284573468228886448145373569230773681885615161230207208462870651300417119676240581540300689421380709708390993588863851730559250870076040499701459350148411298411275487238312703937354340390585915522733025747371149174830756238143926782759621108233309806241551630485303847932744345520803625189006684026652112546925643142871489518718019873872748995501566030533942350606304672600063852414591778034289675607438351698624985280595088113126016359037615010601895283049661608696638884270448144542531626986572170736158846637514374942521306778217089025913521649186430149606403067253520661982825798798980194486028086396401385212693659066910897459680761080011077460604709839142496040212307989904989105308110447361603011636025227640332011294708350854933514685476884010359326648477734793274812326347107355811003013297261007595139718840361290418165871232638416168365518516084372767422500230010218774313600149199175398703905590337545586266260236718034665463794710085410488337517338131287927302937962268133742767842479372304125566402093973053953002200255998378852797549008425598232202461167271782167004452021872278573504818251692571070925597968609981607419035300913888324122961081405134139312406685637846521014330726251877605240081277509148285629821057898438872468208198221151402331300180654918208175675361883912874202148155446837508992906670965934577771019722094649897281753602780275097298813745969752256044952344290795250167932913700819392962731698615155389980066577856227577695680870597746948242248265930624823813943229585517014341987551105780561649076947908722612960534776934433729930961826830330151933249647424052530478603368194054704046888295546151396400563119382027763841380682932800467719390677513204891011497696147392454611532810713528901003032491800169315593805349282665111323033422385348193604742749931779171074295580694114872914667708428982280193354949767807462317065646347759897644737753788450609975857985865181789681328153085120681219976375134532246981607300452966035677003172933891004442516806242829512098021373093910539088965177598701279000091549101408882384874544248358553605795325296051310255813711331846378136805544783682389642673781593535820586577743908717006435769535893983474969060350457528512026322695493111769556992072492187446530438116721077752685983813909665421184565190691709419296282974117041956757169729137816725254163597777047405372578786377309173963944218480383052284847870277184235884431119639428746587865423065424364111526274871332253624480272155894941527076439779821406612525161902914294019670554546347725851920278358555231022198580734038076919777500063666569346311308322162684996336469732205603165091897775625052334488306425996958320559885017402127252015596470054131517750704206451513274710899762984213015101066175380824372504717589087757507076149991416560051892020491336849064494672607025603755189644960719323823053202095639728339429578376245762818578538884889954471345140946265081353278626824354274749569490929382030474909554708835369761330487796138422774533974159558571900668081236771944535965875102363400005396161392111476486592004084706050516494654233357870670035638073967033550890611971656010915841314760417396252120929189545837277127656014818315427075966364112971055846651627426558774881837550019527782931446757620087725912315725829710265399977443837961437404386788650364644686201716029977931774174946172468758219151722932578576279213036630089352737353914692558294423009333976537167219616109419427964038620468108697053656808310357661531175148288828467756474190949532993285286134922635154346497966249463440099735333295309935582996660288175607367991198494253390386964576958597943943202233357092658325354793073229201990934398067373722205846316998534526244799774041681931749816547635789254572397022308458233156158200167779659055499124462823891060534277686860716015910005873056180530541130787959258031255092878821526762424086811938553315698477228042127067697256697852125963137149482421689719158698878496523964472268974039333102927760856374815240489916050247317009965361351880582487826850690442021479294216325860507357536726044578630543389178417244070817159779033493042775801108217451392880728389168588117163585473431283880244358342026665730602737897605873086087429143559049196344209119594699868863829645994094518285665649966440307571657741378335926301555621852649403327511496253760494399707771626171199112698725431457779488592458783348539549621879385690802801739430235819028721303950921354920381997127167238982821744160332049226165281148201306126585414566777253587495353533017214548787386563979868490144566843677458536865650926700454751711067987180193410926941285735976324884038622261148460400118557313373606414369519025581026088303927049860745450770118962219720043958937329477390737857398100561639945204696051608239641818870999718944209474024290472018366705507373157950422397897502857657370069359002374235669838693981334178461447624162404186060435511490116207161551907554118133662312040752531781321331842446244536433722301794262714539823784292547902645057958269842331102406593142411295497257476431929370480399582404239224953230460420073809941352838336359053630088569632522502176050130013121318973647518328872649809036160825290543525647533496257513801563491328584427024592033889666122694353975273722797218399090812878607273433946133600848974710297458688015181304850396554893017940288027456723841061212113308529505062552321512040844734465415337234181604458856392480459413504802708996866994981083232196588417515267298658026968790525983353698692717449568033440284702121271864103038155171517193721215723033230247202330831342811611533898673980058918497228227297984844823992571129091286530565229485440480769040616380554643828540369100858709918937816360419321268188162545604094585217977074907863119904620694979816212802138171051554999366236769104944995935851850961964937741296337438991066125149967686246962136883223955263328018633320015953990905171610684058596294128877377256588060121323664089296655132569193328974103037715519409305194771252837245076537958487251047359596344745425804949091418795664337343354456780498179204289721179131626988997705249863093442313069713681800684943340461452163927240961761893799894832786984502751842444028697583685883992230327228546497585849995745625958348524963472177272985098857607753873328166069803888442140251258137605911055792250428119155647121571077176557507159290873620519153314821826843673243060583570166233859582351049605522800743453568419368628211598702467354841350344485973493394401460674666163221217959996374005568248987023509932545219545174607505253652873741938588868036407140716557006920375015866053532185517335381537915613234169248533455113372131675735941380943886912799108100804865095815788156833611515138619438894096617076977255508703087463305520953878992454191326802628894815448083292799439927759544352982828762411688263717524828929228011778276385469137703380937626667764836316682300888611045865798392538625419052201793940006198488959134793866508371604113946926796035837620273574311150400548544120837927198112169388812328546373378103564760264386118345998881760212394763288290825744673629283756705303543993794567668085261142057022909945547782161461145012963127731310880650496367678078041019590873576161393750537677726958222851558806552872111831844480445691859752652994549430628030205165462505282169907743279677005980502262916703348072330871946172356537279585099819966362979199255406122463029150859846316915651667528303057590307382004522114974725133319331941982303537148231249522123773924727771820858302918224788285746322619538109837369448363012005094320947581254433970903159650632764061487296084753297071071478923755806646188501191429432071714497863467799323397475627092528988461649466345164358032092551721340881161623415908498015640843340069990604437997388417536997856946555074822590767432411369501674688294705453775846149062473081254600087306089094380127350571887689779419321424943710999217287566659322250439287558585162855851504704638688075348475717597763287443513686827013314060287724195362049387927787250635922344839517970939640619655677445119019125723911782880861784877894644087253338866498524553110551086679477774223228720165292721609116619809117975092671197075164729590007070885354640992039731057786612113604831605770464859399297109289815803470578840685363793668900623012721411565678141800842556007149691497432387832787802100874267767008598685030759228911447383964845422515250650599824668262561828172589237667443764816730955457197831031429927551891950274865153241420190900180492505031918100542949695071278747684364821219185033063845907032163431944521472179684102816391803045472786998381995870046025323303814639758289298251698600100841618062932504811464928781692241191793347572303142084493873820905746486818491636289367292567003360170805364174547326422686638032818631901717019549405017526922144244867921625942379886636090101560840420744104574307516662305358542024724400292711222947995262649791437973235073291821458547626795984593259686775935620603782089378976656818610878452592205881578141198338862154058933949133220886970551620821517976250088091494705165797825088321521026881328200530650105675171753666508658591166388005773933417075543004857709745803859103196256328535566508715798585257168380069598509115598939759201006899639338069710886628316906894249972561384856563999230842752248632920622362063159488725383353898504990843793396533736543034288279047885772015955783227880661553216670561233105684997791009377836493771016503210618133801666019661587841356339411704213461914217557120173840193766954448392235790829451812835635539662041212938190267756048505079760583004638267245511029599269027689390923972895740759071082926471669452409788572458618273371836123002748089288753702982743268618451495180339221380313808807730335074599367922093119914623521697663890850818392327768558311332083598684335452749233537202017610554574666386522438550023591305632278690583753658895488146938567202059732336080876249773812036892042182933667842819013329882589261397192155296638891490685437106346324811646186937281289535859116683107559024159220444417952341683613055789016615619456967466966908141441776487804657649460267767233549819637943997704031414960292090883453604084807696270881952560950801439991607691519087067646218909915737366193642184813527528563509128287952968308446578678997018339961438861432612216429496701265549342247985896036258937574670125219827206815688605092115188577936038606997861590276420841359340247312309779659883677199867788732859913428993306725854753277223021402998784804608955426967459926886332537693078661417560069550225947920287304749417280252755780720169140495332919031346530677074731665861372775584807143426133402020870803833249855767555959733960604116366919419842304592234330485627367454272132543771834324088584024371030484935825139298909266248396887219681477692935199748197021526949886096788428583193024676045375067855017230072172649901356426572258688105668194651213499902231794030566609583787108009225088446869467196797795510730240530061977560014941170255203247322681082366831708940163112444527725434392645873421444571851065542089570366785778450495136844180909482218222448191953795588534912611146814673966282041987528364610442409964259738179596946338293119417409021205261395555075976688966549201160837044922726755091511461878999725154833677664339616335914027023747952639445685267801314318125905470346572241886560762811990077594669198696843676338187690897166074288206514616239602124155651237745282192180716234866970957036338173515662122336226470990014654502448481667523632320337714003756049634970796243348305084485396517068062403880582397932103683141931660791219229947474758660998138881454663284645025304479845568566505179524953859830496894964620553729283125100156300586501616765434169916405085072455421447350368016528905129001094243752328074291102818899877900442253280453571217337105243472816138932395107582943814041941294863040799167286489187348682667232874127305931293180290854786502784276292573707115672594800459354999115852645188956003469401062249305536892619789320572328494359181723010633992856745608982352934977279920080950886533509804047984947513795767286939465043201259780239381930475666965192826199080124121357317430952977277241496456695438253633839735074827864206729439598252139379670369922319154704907848306676230540298594444458600560578572739179471123643402878300672038237256917125393158599375746968089963683515246002533843097657690536069845440621730280368495878868729177474778917734796397718095662253534384525045299005431694303141958800135257590468127754797611723061047339482116221358467550361651730038172554906166412838398661674610406213540314431844738262053873975654557932365396716270729547791575531206870292862628434909085259036710609205384121065586784008115501687572895710981906700651214322107781457557466760241225280631983256260813953867841975128859731219573118385702967760388053594589281774292433547638905998540283895916631479154671193477816725624269688306500205473201086157180460604852857494840224031680714441817354814320740497141007999756100047378178711702245768496542365000149800230743675896016093232595243292851754616871884616274685865141990705554363972716309351914916788632347111238094064124428221125794126137047089350201017722236200327938369548645040388354882978245051233651883754235659397641485514886746455310116896900347532045938136973170852824501156504713908151160892652251125012225761459766084979113736074974212528711741033589677805885245428896412301614432034102006241753097715546538633332934564051373635732584828970773299096149996726497153293148489845457948185961997349896113558984046856695541496257872602254983920535648534470315307368324320849779903820042994778764700341096200464923170483171308229142472623082650592664426528346197566723528795092617772876939401799191718673260096464756187822833158071270132678842515485806626635392201709629440528963747024574191344398717502437473298467982273086587879030621187265730782663129901617139947708970737743320879647557961199882604507794815710660964062709881140061419301565689326997453032513721932142841595733906558923066156301810927658416120755947897093558342016142923989499185151365436809354721312126888199529446438299641396095384406313748601441444071467644303283503480070711444505778438137083741113056866980707077716692277574652170833850375428282773999211120198839797406254921923832301327058166945201646628446467696655620728740472446820420385706980204147439327903422015669177618221121370891050947776617617440753428981641804450584456484180903146649538169801585193154048576739591118409415147193196956995033558530258505028634540072915654800682097534614690013117656134399465951817564497154575845161021222373666648498076267097158961417752074693402872765308643306667295500057698378441976201305689498725146943436198819395508261158949733361901297902515177601991295206366878879258837478685111154176626896358723505415140446444601076352680461976033612972213129362182970727601492839765121833348624705067949178593114177183258506530590168018233203344224973488640021684913232768325396701136496481932734391245017387730842599458076240956149379030391335505114272840223934856311763702938452077027757618522180501459474319865843340756481157162658274065040700481375466249954009594278001165905554485315206026150273654202626866963175300423752852176527018065543697184320621758942213633230961484795922174590753577417414381580150084578501728406433044628451152743132477255207979512540842572765688542751585027620958342736888623175379392093976771536485610676269511301887680371195578395847811111009042880684374503101443786241610478163459760166748736816113526863417240611283319185853468029909423970656418625859730145974950044625302588696577655164338154003137702372731710157181992161698864521665859630900294983462421415418275341142937835613564687308822206312152571035801560370442126506716892192934195736745020269474137510364665662488226919965594370044922845479981306779795435652251028168716779010266464960560616441930350524500625447338604056228551211085967684935955536492810385884231357163992858938767908693753995430834615783504091014939379630639548174033881364562247183060094513593999442444343674624112733296387993342237312907991991545397335272118810119501753675021228866369745966732423692755713326263807711166442468404570018694453249804718988855294290961312648781173504368204609178629391024297960518091433996666262386693782438542334804506825009917063398585873383780339442658533444366397183347361377471001842974947670445428184809208880841670568980067170532196021446961314160499626455090079804170283868952770759872331536058913337314536980535237088054625031497510701895986499455350738666157111872717818330963912192854930588009268624356434545708308494013976304620951511783886245538216825094930376331856288236206485142909086729146259223158307295677864804589432826360208222219142422630212300625514155620971452734564521619539493401310999767194406728771152341823548257345430018737226911262518415112612679270433284736461741087359279441407347120262158732044020805015115144361977934826069868532940366891882488355139978591670036176403047758363624580511331153053253136873070762352603368394310222193760763760434029613711027708258624494417079176463806293470773345100888820803086969904903735128565606104454469564945426384629826771625101609152916866184163510009081073662610683566236827679567947593905278445499562750071975440782265800498279842259231089940914303026032624367176718229734341432184340359043250998060997120886090687881738824622656487768202264211522448617760250798025303881097285883891776352959406499236395456453856922749765787859335085623112105540886667633881469309005510598854748307531696833481057030033825580570466975475136628044246960629532247933477617430125663310430687358703855155807383641377746744475413474112431419291155852639718864847927383174510042917952844837166319581796548660675372893178362555948587906098450012431174592488263350036544026375339922334265511197988066773347170270291239382814406007615876280459980886569552769999394144338379649435234400537677838034752776265744969321048057911099337106202292607204940937317313493050790909624013799443219098156962852169286586446174127455631615751143573890889392276150973459624364305695451214000311255070328514925944626553261844770339375073519665715443709030064662790500430368342840185635293571930526842882003030341442015478371995636735526800591210559484509019306460278546936618637593219446816861136443096957618417277824070059442373546374338679286262295991840962852254226988728862229931576437826993396194324600835735508747294887925084049405886949028124937613857304411374989588702960371362112492006777717948205552445449766550217644852630400500141188363310574408520625832397568695264791151903034683871102065583121646808360645822444252600224133959995561265502184579741646856044123457505879668343203610256009264212637110003804471282421157429472537097145957624023941686077751526513139550855871208674492959460225642453511471065640774670983261294804611639517619952548735630395695672341504595278699812549400433669432925975577162394752251341683863742716282680817130055475604787117534399509102667136881771034085989821569637525243138151353744916857837195033460758731104122293179814201997444338256164238544468718016770000241892176387064518005273875196851532295897480052348537209955460710704182795218069190693649044692424376666757363923467452842710162065052854712023284943256307003932514970155730058907666334849587475672565923543024920699425403668122402150583688753020202146795810961372349597655216150600989356627628862377916945863438075322486109549071414082199375584869799248626696088906071713649837534091640274209442431905954239946705289576523694297040913489575680757939166192249905915285394759308528135011339150968415590854258204385874791847280432718647342214917715252990669322925751820023279883240192374598969116821578527918277919341221014112412617700028392847061710777061628284746786985005993200508329232372900936071220696706604074510942293881422210181413557853170895523217221401436487814518965446382524570322572600445348955195665613520290080615276577055856934565385953314308017332486831813978441478852159925979694357966711867074961427938575114082852283767446095358215370785679675121715265038786943373332342828851876549724952853885941265237873697768492473644449122127015251320070228390522261492090036348184392060335568723847747503028699813078174607675536227842854758026783638175454431700901564463852649961502175893856614016980652290736926795410348525388785521097008345414527095966335505712541142901500411659502691674609674111268634614659589882152760476071333564387750689552601150499013449024948027821520853163860206352745312858818391109176021226550930372915574618543991538948291118526732884437432213480301876950984009557366666997046457358999452124874328870410587076929127149952309912026061303424955225649015231082971495574017445163428936837986181390012951212559875406564844617404702396865609066792353337874968893504576584238030577220818220665960801948083835674567778586639228833019000111905221608010131902853841343516085971699408523570370239970141341561729473697474127860170379247136455603821360548821168043386015894121633156615335149944422387489807009479577296711977426220019219769390355087093376840329165750165255781469288952505271207557884954730101614103350185127364856949975609707215411828757551325244499681212944771955971403250101619151629928550248017287796956029973645864582244563146936171503221471192022800701919559148216637316470066013125933567422277497588434546719976648328451412180485141596750942460314693077860360577931532170108906743455701877697669791668272391119495572648638857832459467156123749246945972108056215080410125335220762291603271913244234561257448813804128216182307892987295521669231612705869455344134646440192542911523461089403675638675901078524392043015524276299286456956159640727609982118602097935328980490134791549642806436163757550895738760115604006936464217218825216710745352607675894147366657909959587713333181896909857939309629907116867602826759431880125536649890998101630972555962458945423232947903705880294225789427493742815749283484439320295751424034562666175044596932206965557151134338282477088746716477806023925952285607074633035099990759419868201488594798733813696396070289745700868516603093358191877122533064761106104608922174073132448108112888765536373087480127985309468869290176642606149363609921594313427678896993450944067369399380884492382690658417700681359805363806376741866978845517242375436964533382421118024567634666823527030663634363958127070938671028600692436795946513971882580618655723050874710043121345279162939181942005542168804017538797248272020740005981184874536365575122935580438319450999004312166964899720527760849740668567403669001367268690657629689702590646936544969947513852493399008723715138140571318265018257908369608869973111562086203106665558590984717106105345633495555711137045251572210854493349920315259169776417032010908062206951992374032745598541009732035542654201269869549729280615604326709612704400738796008761371080536959354709870215475856347208172220506647218516952155541017915609068670584102687842572612749334122532128518832014320516840832995640631959446311226837718512522936655686968962356890762604558985612547769433189061341754727355585479163533155538332779247933723213128071127241508149009223544204544331257689558552010122681674365471066807088043089157001808664650379502801055468403249347500566428899234195161457311694956797652950931714410129734840934700115761813468148961344303286178969282352217332779748959269609504871589837416100458760083029285299050216717332367502100593989612647213534723078970263686062951845581778334849845876983038578880271054541667762583086893356672131929783909677337984332052291276224291301272674439349288116032779036158758342977477689926684368591848594867694476879332837222458000985918696321525336850965306134873395320572755246774974421452116914326242693553562941606905606873106678907909122295536266159550254855494449339406858030865775757360828953678607215995743103398750475124034366389297911036586934517783513910621605039426694900161183461940768433144411108276949949043858418427323576370300652398903777966486633359460755752641036326102425153357594056382843747605790869252254617423077879886183972285003531259262489343013877361310803108746151836276868713761745276315647800875796920835048554466050905651844579778751576451349175729238714888295302774987423796287309085116133242541485373849460672046868908899332188191951692103653578399092550113675757107921600350574168951531285112622500542749529029090774821641904397180226214788630948132345883058976943720686561978820991539841356492396175340573617782045614905988972213623470310997290504435086078932847919118754886746410058964096605459003203376760287852071095828831167917376165916462896670955029360216568671246020945313864746147262998792118272140407625961902622390901089160992566295220110756356948062848695926062118718126064395426908781082502012203048618524854805366341171407483226098708516973008197009942494443689428945764823632620088590903612196984738404045903379316275644052825815220374938873990849938856202000202708463153593001420534035612604464970605480895768990541289841723545307608272277834706050638591753050425631470459614126084945849463149605387133304941933667380994517401694078875755038348837197223344504812415032257303208904281421393202875167404099908101998873880363520847749927971041114095990985611454249153668508304385867934994405906329494259736320544477590957734143727490090449188404487111630449111123432641175651229900800026662153205383529095774181346320554662594553310129476685426940524203907536075380053759266198860716722415392768197280256859103034595649975725436296631076017112460341761403120475496397238702317367691332574863620535584311706167017963820200585420497626983966056320664396527678667288980867776982347490571365898922524633326229377250649778005574699541861879343802593479490050690288749308098867244405103331479303605911568031470543965209002785132140337015843881084633511708146635689981770264088393905811611205069206618847451324753558822259904247709268028643491483529485398079576133852056859900717927648277572641426977110104915887718666737719254812480666161352080990828115144658125278550248211730898281790520157027469255020319013749927204395068969811733856975035885762845289882733045735586858277465011084124680739480745009220999015613449853124986640841116607867257593654067907351080382450143176437685508380325769279548227530361439928463716894815329813193902973999783597625857690293497338987934212513934142655577474122509460950281141207594060836838572419744055035737590445022964753270291974294935848680008433079553433386690063513271108064716227401121083419354147427845288369477118439558499287793952640247788863629000840747009321544945829120613230935533134890904549495775698967111904762787736155130819651344657000446553446998447671466201807433341573951291229330871377393961128735072681833394258077184067064855226082265014450918728571254853909294209212452621643042340601959604188500971231457255691953826953163363160545056299535843703386891836050012278899175675198850059953285273089332150001866981287902739856715365141639916503059330376202691275702225232286013908444493900091354681395919635659051559728412382028445575934579311884161224211217151445721586309838852482065982112939006196616323665693907232846327929075582917756689442273505661572754418840487358159731524291449015263586874164738794165972035772583378947073053934981946802297777748026228587257166232294998541396163051414383021325771226517765793398723374529829263833162566015125897376690737950545154007767917213548849440341588992314807271115101299094778974359097936490977414370681540898490860658727999033998352978853129690834124476397845220831998073800636845950471719550557969848256076908481908613507884174731852825022546538499902616019483882245700333546626611004303954531460265303541267309253568877352661645119293293368498038020123348889639311981724769865035261679636700618206040352350418757443598119699577065430841728409082688398016844823702552358814918436637535264901966651485060882499280154468502042304696141999329409339115597847210002472900607469030438857153975925657665440933345750701877600263231046881586209290859695327666463596697284976974852894299210022375403513765752606404029445449177101801487885792206093528102493906605389320343046200929023070947576398521125002623948646399675137106195783495262944653258644730693175968276161596609104819760157494273951871098815153839327455817318506375056854991526268034223531621265464336563649640445583484294882063854614448138795399825300001193387054294813226653342270918385869588841868759152410305992474807346050785926693528585950254584882890762434085941737618164873048787415070023494555631100907276426487114582684057775750463002732190919841932203434209283368159892053343364923592331641184239259906235073386282714169857317634763305040331695973026438922275104706317143896172823931388424725454268576184290785646153169820969377440375926451674170927845281135508191933268398231326060230068000787497668759088579485486213422840928804451893906467550112479638341353497520554976241977587579312651893684806133610072622224323727839129414493636828379755698847829594421845450639579790104012465556465491710970947296509911568718741477078720897161967359245929883705409759527947663345757489001069542600818234747457846308608468435114590558437855115523418746287581863058543511047001416664289653811441482807802582241929498131000600143387444441746137790948219258747825165844223183294096040379215131320119415780684594959288715901627252441231717462896612411823228269678077880292481145369719044027485144247202326583269652205049232984355638977565266665484894659069903349372190048704538716668188568316290749975361941636663679112601689577936459226557021862524234795289069397882828512419070537033757567921550325493758016293593476753152345740971815098842503818372667654925746977879740921450731371919978509113608439015705613033875749085727728542076215600040032694698875320638123038356662218943313528189301704484209906937221780296320906123863425407275436022964742667279029135974831539470275995343290765964401903526879258715027998307186082832650866451143102598434826692559439526281020741948503896760541021589181154104278589331653238524690118505270166035295125018130202897240799642440117928311173067169514722838903785190444047764196484864838290678920154376531960110034890600209059941044542884787598857970059164378931227694724369572988409044338955767945377281609672161778121084959862614035357277580433821710368158896599349185702125752859916750083511030907246304624972690119737655869064437535420043025917582264540149716657710166419944800473099978251184574950542078376560855548592754937842510438497450726833821723098366183362312672451195412628557798451178625149710284256445068867393816279551488153705333100977563920687165568174858933664843051974674142120171159742638418556003810269750452053155075385173495604642645877507256724440288150369037757617708166072149838429876404333564018693087961890432513530901718845992145728793615844981866731557211123134782557390638441569682719960845825414865141357697555764426994588482878115462989219139756182918609477049201563660734621248577688208190350918690464215804494498948753884335462109737517896266518954699427342927916365656066960447193523027404799847474586150332124005959415820978676485304273193819454361081967174871400070798659634012788187964009829714656780070209511188877725514529078477753748056101572419217325134379145474802260021478042378323477324403185716089286330239329807086005602210206993863805200248922569555145672871158834595249267203930771885021422130132840854726211005727990882568088511988294707674109092862146168225324629299621572566409792885149881323899388728233024080761068014429267641110361016723190999989127893896864428687835356129315953793087438124217687875667289824914544249782328016105911426932951488207373097553998770304570689114197026091704390957157728560898427793176441789347518327181151565309601493045792927182815514084298557492516175679005881329387178437862470616877669426282001602129108651061055289230493355417243963446183541240585468104331786542009029019576699530492229673758137827848264772762332423265757421192733944798759200672065788847945140947811376983615447130686779245816223594955667087716197295757055568244120433033016547498836705680893965034704412652507798913850221522572406527117046095285113055320285112116264978098095223377797310493270190365497080106376200655243910328123102451585069996954207902156980828216938070513443855462921016706153121662167561637289185028924997222783377225209522371096414508477202327844755014992870023455700448011468591053403468832607825286762282329103065944595628009614558853672601410431464566406989167709606362626928710692018282738432024644766513455186335801007215757660873304928714026661926261993038580838628465444449162773657294334005025831466771269656482141854549750547967145023553529571663360757236882107809932316587464306821604710652814010932294481926356354885501048362723132094621591003145174658824207430370934430911632001220489850706363759714768005638684475325900473415563765429946425019953186628234898128636669636050484948124082110543068424842923216184668278134976560433558627415546228210935669355854065748503860004205830559528915950935689475157134907816918366071619682849955590879039692578624689969881050283407642933244971511939480540591024451238560815973272424621347419497164678650611037037651850241282842024803823607737106442547386385151274869614302781387649618154868403493569578581384302830828198680678992560760923910412277901394961755516796053899129758234113347461503099469798106486627873256772111858930420667639977589843502956395721075650552295782136922087234705549179187584509337401996509825441276530962446589711091564154924114247453777291301111349801794544855658441890999080134628972920672733845053481334211836482419365089578545398503487207715814248805333126731105075583168196515944256945216332725120440709271500006765423537962320630415818339657172217178060912453527608185220687478312040953277662527285643921444872564512576141744828805822281604848229352921875681225440102948428272702871597172527491819650048803935961684472753752901180244587045214959860952284904167868482257502804743180503251243246783543389966230757633794002121634496161204332826208155490685016391737885148224109164653034403817489608999108244310132314349276795361495289059799871519785307202007832808408190640957897299324957170403108002555795294131961322646396969091505645954598348598550196581747296265398506475068280182078696441861311694154555793907490851935126435653531099734832075883954155002444858213647613222425652403532863883516448868583813363685119210595267350303498216877303263624076893064802204631561268542484524558096926947206058117540674513214379968231903324251119112608411587334995858701458236023855882006600130899911209392066140631256919987473503367244931274506741378014049235578688599751613440759959720226586913393465551637170724518932304066053882600262250484778860783997010425462441602973044657260197912336761077141601238779296729042019983468153523228919388064624967887244069770501724419978346327481036452071313988630784994158599683134502048124385355744815489602313122304354039479668643054782851310990446922370757596303491199069546617655808975819174843929213616495126016964388107834111427583807863192948975700868000236681118519801836366877455670022588267125688990710759160522992923904520886426219068516628163601101967583424797197524608130901488756353436030961674611147525940385445699482404260901602223334749863375959970377378914829793225840229993091560258060715740097664170920327163751072922592093820538608984266059361701961699415428574105654506794001407697743709466629064624435946725716958539836399747443454127509000374226186356891378013177951270988307871482652275926146600222459398988071603255259602659343639569117002258359000388439612002083804892513183475274790769189993031800944505613958413231675079871254558892578301509807084978891502222096033308914056837729387632398273736774517082421993319282591507664396757363223848598957341873542171019430561099591885225401310195870790202624246207808101987163741616113055030466247910532277597263247451565474688339477350615762712403425388505106325748979803601537856925795705564361993677513342312747831548117119422987789716770855316210677095858994956973410009331193152235422232699813760827941060105726400532800906284956719780739787062605582344347063236886551342527050111160520627125688654563213548432073845381626139560940753120184818970217087387799384619851988805247956984006657138311440306548229809845402827668364495187515308858069629325538180478136226097450242583212678246778535138543103683062483696609152361629388113374531886235719870272045608088586546111708415988747712774721807075895912888502199399317594650566702679217433741460513255389450163206910305008775893349115894814543845820573813171982117846652970042078850274018635272190185685313536972449172077947216589152038927404418850987931241276857577473041823348378107894342817022261019076374882433166701055621148259411647396494917886398450912757804035125890322564126805470214102079364503467784931498036313330067315736133341761019555582272706659607410466627649652541873754420141124332516261925714821091821519069853923967204261005721371798317324719811909387265992601593410250497992717920937738289353995817811131195533787517574669654339085268503275314843593731628958820233024143510206872633904182237560384067164696385099087689399852684525734474103250753874832130940195958210576859725963327461722389216598059987689229066710195627814673762917586827355025361689030123366705842111589468361373107584453363337336280605649256419311303755799727200950598579298507253076439637903829203042089665827069278460130205646112131568681347199315481483137210178228042808352220079488901290308310697129151574699558944597892351683647913605263047674638926687020584967792860269870825030836842247903703666503047380810722521663374427899121509906119973453477281785218830644512528661634973111936042169139765021799778107220139190579016035495372026727397420141390512227811135097197149436079388184150025012025058388732927143659593964513193197542280905705286454934946400050323219671091742897962506800976411719099565440981116917983421236641731878061298961397217841345923498306287231667703146783401486566860382907671876073743841663399690573696365867483186654885395498354704360566721545760996994490289122969586814459334816064828306511776837132292594892735600403573036116088333005946025214541038772675279125913280047727322219336298670170426390563816263190138222438534271238433809542933496923233449698075980608077320597352926725484503438616313556648521950787880976699095343050640023310500068077919555944587358427892900599867723730154645056870101145024813709753375654302409779971323484578327744663361289936716372571001828260242042907385791517408757944290687234151193813555591412875855925155810574820769076595708686948224596228842505413409345470807752584984397514376223188030663808597213301775475164001331579198318577540951258849648957444603057308457629571021585870055954791347126314772860613075675860289377023994601866695425139403870514798071180999530449301224367627634417107465061560344875000109662900028232704045560316980402532034038425234902449996315273902816935672777971902424739140278607191869109457156869427547995452758220659682096495152016194322820232329848904304502909611607768893403390320394375875014109855645217106276137565802989984415951214164200253553836676943806724540938640833952788503389718687691618923629092055936193743453085538155646261314332877323528069176158188096508545290042510464255149090750086787737783240971901666142580767755482717508394776013903487953193665370286063035452998383958471874209323008321656733854510391383361494220640407913731849930917445569151659755524359405562457545471103154221517378890480262331600995397323811385880490866129577337175044165547701680563492908385971053258845057745651547986028579839325485918515614289848210943437959062199337395288083867558694172572399984810747116976286840704242804060837683423017166250539003665364076893222817515078306811761950879046378319632980391951388344381456135815036460040448315606262994835396650518103525280769243307033905483863707600774200438674847249666821907634643666856660219995142789985361665551021995531394793339205863882951680687971625658528323116113643842867701088958941883260548404930379727385825967726456810350221842205422796962425896898597032190496535059401063930951253242448087108943924909745738557408233380753506692132612775110437747572078665969855612428382821164653399585772932604112293309431776569316488725123319560818793193463500402958453783843424035524283444427208547765237208256562914400036047633697893039979632827471572295749764603066809095704301988929753876811401134843556809143488035107409137624163371550473810331088792913885192273687006396678772471421824968330025011160997500741504299629978693947616316068562128840842462380138718487049084402113428038269687727643812844142683229050571973964741657894123109206181645160176061856658972871423112803615265791567307849912691819681921329010627981776014489141114238236923189925599311863316107476527492346475605041279732776980123493631381041408232145070543423039616760952067135412731113676206756453857827720578531227512662776013044087367722982894461822840209875148273981380247221484590856479815938330355138891398066010373603875815184372764174400353494784671376231775645445763825126212810496664609347220321557127879552035173614556565570471530747378962378411324854322806850223685394359697268552171579267531032860110306662799746742532107544934540414658238726653900383618211038795031623676940121899353209223936084002217277449769246698839538429523528188956682772716746727651813823783178956461148069775214548110496739049264866201654434107904435774736734215583413674207848234098922414354397243607521282733011196613420052254963814748429760294909677574149142545699177539497560972651316911042413632352800302901858243160044148940457833667805632147610354688213164065588614403701508076904695421037968653977135916085587327928480541114003930471824799204701554768611244018283077522368867267888518181666027299011284877358757132260130509026733683752153849925077741943797922840010675352344778568711558933191424684700809478994515347944260837125946482320592242709412085663308610082312426046643154251894763428762353257722194702256389526263662894204898371198567136965519531410596084222416765157888044170725208429079132609430360470824677924317825499908725831555112931119427294031071348945953794819458027043580913507019992567250263100474273521910970151906856400122580967457021656387484914173159983461927612449173381586146006366918900126639586707825673763366695192552913770591936024523889305817491766831785324029855426869286709785547763701884571527232260978844617113073023434480846322513482808864412421465252472998871870876323650411889212413911935257964746758832795454518633858199239220851520958793815267674763282351054072746057362132894017268825158169266103919461817716286429372161385821726634807415797057042498246296336574735416349403731570720561675611232773661795122702353771627459494979118992221511166553841458848341068390619490629573988989450047554944514316291696211550893334480651329203379082797631927250731469812658359086116504885020923645745726332319887718453739605409040899151626111169638608408345929787930843584034227028767744598788073804106802539480839146515201218495678110103088137362758685431939162036976492700651223492122369536392504490545547743001527751503344688914487561166291273205362602510066854480000340178905879133981106867600120942091276309182190153962177450629420552786703677090973866033289008396985096876244726704694492073532042862834141550712135848480163631192159483533335239355442676761146572405740966293878718801605838704916167608882968231169367834358062347147134488262984347220191581369682410929336636247109289992232696917494297736008418332634116745565656307169979232912834794043646137309019440873417817304753924891979648233040378438575435632372174114276517504542349794685335810728708694043112422954594481113738170698597864304669791942747480976739790790258401529273734029480538398332366084646060855792400597421377020439145625991338359379033325322968398785586287938840741794918328062645037397893753839110210147791399243221697565271449093595533896417674709579719247500609911062748762955347218222383824861757091919556711152050425038706663789983245802444976130900658721335369548181946294104322958667559209209079476372157904545107847930902256553778994207367480226554648582829793402469930099141061167222934822093718421762164503575377392868018725137633716586018803886074817656887142433978517871089399969480363039017178527272106119474015198587663606373022121240494989974063768369224761458167697706112980862155469075687459391281076004652831009037316190567400101899569789463184890983160080084994269662495931231692814372309688461213302589699572168852387256171540560319538815675002897381736881070642829447692726782302500469670274128202980139990974864701037302741253295625277397312013189872040972582818723474099140010674495183650838355917134902877670441334346699197098411126935475038358141421000412255974484302643500743372486451257915441064496200348625409373538966652489595164923856142298763860451882901799907371529147523403403088432287620392725646595368049441700754926994430534755754301203685306011863075299651734203636880110669277106274926240326232431335956637861154306973427890354469402570250303006275061603043439467525805445364177186053550070293206250456259887896980782570817110752740431641528165691612413915392143940886906946822916607703777768270714924361324725592866126668407153323511710792307916092114171145991597510623844526644562283891640988632887183367953477903981543252274018110287252300033691764020895945494356693230393963130649708946198451859515435090547677914533925668308260486529368985719878753789734331626975158601763598070215546254355311868872769199834107342688697679822015362758220747976449737741956305866051022075854723528616522262493012610156804418852190722258638889521311368608668160987645904554113080644679691319342382284751781216895794106156749592869187869495275987407688339928148512147784262632737643043512512353180134655401012177880361341940105383663151432222383768622959605192522584275733997440346365573099313285486275946309082424187014074199396308167186033093779406304489126315957950540608930417363831149636577902561237765015208086918776028182739927384782880827031113068876729141473809669713453182184816690315992932462803527339472560570761255144952340338902632818634482207356187410138393956748409359010252447258455404437206405358325058187392105080783966256607173321914287874030400248959436223222461172327514189336745803418970191187495611494027392557226823600662191630544740738077253925693256434695282160885547085539497628186674782694548267154903826268284162782810666379151993666451504536724673734420702648426365959421696203480871437963854267284264626356233025220224751536029836304130776928514911797726568872509627510004535448570786255911446299335195153825689334523539094669989109125844451326712423330105248943265492650996869070288763439822764738439947245925036459649190252338582869875557518151933946368781191062870790627208344260392342397076162446371796361250233372247148834797966185741056709151069189992566925666349221494171010923334089569472176714434614632148517818367756418683652595022821133679388782751527207145693514154200407309270538540756538288604633993421497283561967646541740064519446588696197087513838423410947980363146448140603694347626769908061561094377729587221992533464291988810140883399903933354464298959410375153247240354277239701280152098944767776896462844748671900370487745199032807499028760965560576139614797022955058786121769120829311928623415288814425052456474764681061093821193072747378799247227421766806685000476040158692266607541653297335933137709137856080832905964687993904847019382231269539814113131373940242783864957780761601597691139389635620993493851296545656762153542645662112072956399465822783966258252667064391191172418720219657190222841794696834058159956833984154417207194970292983068997324568039619471412388516430617582187067570143274040874684445401550055307864673618229247671720009130483895863112072385614232677013811951581011150445938607078749536237055234198986655514244620929336233980248623531033529246872839830668999907732371899858796964423028833707305998620971342989426597581172191957397178718620362764563416965216433101418590108195651764222951305023807363862295499199705500889898115375030387053179896676734476290422581868217564126754084081076412995860254540971064595312595597739339215074047692457828131691190104658094767576815778909898841275873576620710884030640895935497979317530876328708229381192204286518925203894197688703361316048474432226819110215159040929422214182625717822356907962125781375049188311827252793520382509719245300453695051299233771121592851534799906100557387836631140433911446651122636579742395497521447108258422945602057435650812513125455525122459766027183337989864912477438618087646376564199009741420062402766936770445841681350058857904736793254090772104553391932125808135477697879303742785376926238473406376788718643475558713757404857179297710309354460199216590460636896040049736204644423007518300124719048290103070701770303345344551796828299016447526266169795786443048922479059309360652521497206142562880845439717696339072213399138573302011749054884538510217674091350154222553133829130049130278238361849524928832110530489687673227908443811039911095201053815953119220269745808882037689609259923275299753352816402410495028873290070327632523274847955022124650270743399547733853358841949393783213755042548754673612299127408222738929292984024828590011118931836980935871288278688206647845516367046452834167781242473304725081990621892801796310662668203241241391520117946109981617935867897928250312926573945416683097198215089298548918606504030321538746258655786717810671587329835847199105259853398805794029735276370237407197224752039318279548732251820417956657518848928216577625742269854075649580135262641709407834014433123908727641704904246086469335956413255960818203181477990676458560087776979709952455527079704053092070002317019811372192157722815386194436887019310360258710744507992626087271131966681379783021367410754539803003416667285912801811410559746397515388619842996718574770609510884946163023127144346906546483099108406590045924120029121502642957667065906299121473530134189085907325650728167276402995466521387103808679130821956712899489578860835929041123985425741694490014590396977507152949789395187948646068846358322892840760368147742829452693195409492735471701848990109811818981491740095630116222211043184929354752965996336479253035658560538072395741043629216580794124868565137341377225291547559060541354502076755466367510174564041837639521737881703889596080064867036748733257782598067223091930104200160546076989505316065498394670627803399634178760295230521563307393804383251305799983940545741614771937313382559991635931234996160267390093014462790351622936456083577110657866944195343201954723268279761919229663772125174084632962780491409504304623731617862484163744379141289943355107144610361479019850909705796626288090967181999670826059492480622581154220479508577188078013004891619250948988732471292786969739989102317076154148520973526362363459623011171289844976887111700017047559529856913555862705824834193800560936809483856681211725361754412645925655804476310461815514199457154946305556052870306060754684455689497447487894089247225521979823398210515662105354968057437569270842325393020933412991223481402316492738266845939988981785427173484216655189982830969706679195040036314532769625505464688384959414033309838072834405329191009774709829670897930055945260380806015515235591076431798301556311651090373750285615529622632830498743571592691894370606251092033577989852571227450087002496578265508612883491749553283579471729580129076900062070472229022177203087319077726725004217799170333653704230743602016448619756197074103823279343035967252944912527284678081965612003650744835974890757671636274006679737587095305679333798828469762108055361544475967977383757804638143763754517968275662611536809993875629878437392538578102067582331126452485843570018112948588054013794429981830795030097293637951644807159477470241827543227340528743854592998605002546386422177477558263958342486708010585510007074274122550987117239918523633769890907225588612649191640103044512514268701305807798433075304941194713726655536366408281676376137493494378598441664632845888735975560915899587805468283595138885000542275258367238200225016877655698728705958033117215889544763444607090385973973305688688691893204445296165234654674156898246418528080048150708632769294225035013493151607284896805258916832550116991675649517138521054257760792809618107291945266471338274166429913483869265588220453072194414439250472777936157211493299492128073066496241406594868099142050031455407335722191495330954199852816849048876371665937267160072763850362003913781434485786766365935016062433383406522121971384752877695960730917337032855666797427797539490245398619065992063335323266708729542484443680188648602320152544148972413041163928322368254033648536508108105766542023379197120850103255611011732618464150983104685843883698469689907822854187034283498077306125054186548054722134986627926637064413036579522466515862816082286712699144847364610056545992227644842318193065608623087600073687336070822302645208760649127731873104337388184629341413475865351325211279033157489607102548630759661133669505617702013857007074149467769955797615236655280521412288160831715201096246712877702915363935981549544626130033755289072187181240949928668059718478833042181619319311459392018778626374393775229274786216843551948301330668308516736068630319587492077963791769189818942149080206508156156112260727334281271551823289354409825363892038728626346186187726176949469834843334423216331779652903919967884300916201288476932396721439693781268811073926181098941840945083966144634908289193782562252155050873878945336966795990978467435097089620694859731471643607790409042075657932118854259629424281312119716877226093993595829727245903235540215223420133242338735210384430523986279804075020575128760962136182714890740311372125312339481473153068478910402018087209438998544202440617120336666400996615181723199355503836239719728823438607900449002149577313223238600259807497961336669925466744596863824697185477527226508098014450415027977399619685165102935963792954614143219588506298623774330841965081722625577539140829934920645679052175296416822149584833259019513368285638060128906822819108017998131404101370736566715597521581206643070973927249042004069195311306339465303255427492214919850172915229605358220753051085395813217023325044093361525746966377124731859375040456495156847330371504525153380738422281297023518343761749991802862299085824168557378760895037882199779728856833716543944439966650458950140713745542293648833732900643075563640237420324442469239129163623816899755054896054830353011050559465348223532179360791482017397451581505331778053409586216979499733715833900647496239604504976357452370270730212668299077678481418220774163406977419523286809433693617981385693634718534711211205882367636941738339752297022276986394033031333633616452864561248409761622185817455607058777109341405298586228253018955764205948995844982230985620929525663220835156968369439173120235801353174258623067863789967058015998001466087952342445184337325531150557079509370926596600553648908071833227430294846264235549727267484269946991334712200906872373631996566583811395664712383744732718280501518704560970064748592581076588453099541201112028629060208996725335753851338373519342262673388533778516197878105469539023017337149373383621074126057077134599511454879875988240389864557561863168037968067314604431143668764653534569399044292430041546118137659538355005762574471234303155523598374484726234193430403967805707297653629258171985498514551397175841296919950269899061898533259396189485179006663848895223336687732987585185332497343342248642468794847311915626888237980112723568640022658540072237511929830587820333438741231227395263558393762638779329381225275490875956593238323696894250589553034285778269852585201136197850840126727982492640245729941080409603455332678931227309039520789527897694102238612257069977517498959794915449245228550517274458422166617560763770134439018802830899100794620968523912389266727959552614856393302177406024787252652504575344226548331435352665200635536089992882343622607331885593486112635115028863821222508452784691241088008069705457600318509938536333001890161522005890690384184204334506272410380100419325524406610837568143210510759333329239505816435287897193157925201926609890020751867416535946229595122907574324342088596239245406030480147693799746067342371715217717899086063529373828199485372571831178742584087490556077710844082818194133305119558399722217892199794118402222381194165962369057102697931242254509638119175394429414894052258066225109873020859292106374604972118826159618032168283730797477262185849026236165000173650265462837641746912560732556828104140806019763306394876483420274056304447067670510442254839386844104959303993953629240924068641491033938635839357707473395457900027706888237744864384887651516781764403752469133204744441823809984268547685618856106600356266526697520653707518238043024935875886094754129449519088931176972972710176261351864061102176574829409187713973842450553032154898779340736143903989854735354329704753356098437580429043139775236110622759307845606082843651566051862427110117127360647053055642175626735035889685995557857783082431455151781437353416818244913105004352483922533598882232189383481705628360087384724943564047671358111456175034616907008934829996323950850684384496831463993714073925441392862367484897302508277279132774248644521094564623764323084440932551321386997699909787042838119019200146467883682945769499536757330759434679446405815429854415903005695361766707271877398485333745400742817054721567535507104279467047492711251470019996562249722054952355060500224050858129674290212780313193630514891905725379639605814019394596431084725884764389736412853152644627292764105709367326109094128141377350737181718629898630042632449143758196756560421603836136781311305889814622114251083658573895843880805034561229596243489684163712006576085059783769707952186495533522936498765317179476673056986691628689115759802378598292332072723397629795939517106683783154653786240366340185509420796975185443888624128105915284656651224740058237630380273984180988567243357221710774948156415666834389284937521436139317010255047689038640804919572303499697878649835238026510286483757928474407371559774473417900356141586054464011498592600543665303722543898462274320400806564460642623493787515163356001288426431277603738228725601564716689003190181998840880743358508511497332267661000275585122145877114890814863009211833468058343958043784600208575511192638596141189031862467599151018063361326447528728293871787869192407983979040541753989142591671846965810774046210272742198826162408694860423785989551900025581258614179085303354352831944538283929558416501452219082469219684462683386605871362432855600203207779147545759535810343553629632694953367942604579366411711013072007851394100819372508399393720433340265978188503671866230760321596049017906647133159496540273998525353417738860311820259875268994976679456686663989802815254252052229251705390525275007291902084442235379439699646317919310020141462916775563911825611474966080743744305889912144816894037891779303109801419977870049009500175169093175787159289270342697223199464948395080549863818209316387506229697855444320463840720610141570676046099758959826293762720903002378405126636595959503496330426739927872835724341293496064527565591538509952514878493698779183257662493423620382242589715140253448923633154017954437474382081468572520714120369221451175713399750733875134039031186151948111709694317051190117580887811595655692000244140011561613271593186584097082848510334873224664447102724776070792108869671953981452216612594253176270128002269888181341498937814738483531468753024416153435301389837069030624025208977394805636592258005271093235787764186996462643418754892837987236134966970562693775966880852756032438367162267167655188745345406189093230634493324357782681101071259462082116982510097471027516178583917855826728439101761954727847056452394376596540618881064128526296852775493689562807685339310695652959025229886909633224230760428551116702723896205012730061896086221834738197047322315095615353448272097206263766560104220449015731880425636242841535349708335011238046551673418090081541399293635130528406602280462626659859413928820072485851817841083450561172517655860530039262408474910809597402813876649423486404500610395081201785992609324857648324406754012916668944166842823828748946679570001508083102241635391363746722447963132809830061020269650285352195439089415387812215951098023200668177831800963361384067812858679421693038936022093764494788310314475566356059480492641243630511882557909683157429736818089679178873631211351948441841225216402945374436790501243483645073022788324937392759521658337125244939375496034960950472907171963612630070695631149592136146800437845886476787925332673011163722520810283427815552592675460782517949416047476444921911287610407923440396283065812226151245905153199146487099322547526194787030355174674302026826063137433876842822242101450337879122070749555006491187163152967095823027870815367902380419072673016814275289370230283218662081544097879634715934310925937494893025865805565600869868551735575745959923169210797409736066113647763445623386494582546352694075211246858026632020002529580259427565497984506146013619931446492197764138640836826054105959958256471494272481728718561753702917561801455255155280141273550275224026172740622034844152576644244925190171055829124434272912608067226077180236628861251652044370589921924492895058744981402631027230662631633895024129292962578481198980817271101804415557849620718289550467278551743801267938027016435155311144888301530828158993805427515340485399507532030489786320877847558095919853352430080251898352008260623450876538424534663695433591587021904981711623844630639257391299854867499617701835738217555589933843060823401105532656869599669344709456264731870863228050436689633576292229692165225541680680840073741042084235320705584777829910461128056203628667465161904351541359585854253785863475371412734990386147424248783263958948707521711722167286946242523936568236548858547893458843469953624085530238419469771188215675634277557407348026004459479580376530699320783760104249856812370728606931798430879470758629176516066539558513861068870208346285464212532497235236034263700735107476791840499598743559608386655850003818236187299981217057409608193005184078050254604637052755119597215587268417926454244928996119737399495364369482577799053904716653294905313808425413458722260349146013049870280694989792225264182742309175228550749969988030974886635141172873272958830709833749096345581799151947245493578898659444973885309111393977597443205161670806035132574338723842150484864081995872743292835911468419585333944771324218500642488834638428181454607200083436257000834093654948456927386553909881223401667668575100067343616416140798704008399748389062410586240642720520287703001294988250486667832945876592713817417178223108760146969608650418202916901504717180759199056243231740906166974878897547247721063410490771462887392382116433751611753318054095148857269298110794414366914753956952424564669119331590017530264845717511808077944685921242573550269398936389461785362342745606217886362027455927642193251634596645555750150615799059144740047443554183044754553262491783542672862469135827093680624393532722130322803711017612281590928174409494859876351468600366099682491261800608932741395722351422540825220584926959148618428141873899404753250075995101279239936739603003043767860307859418258349408749592368430800737306782016401032676031208778611010426018674611321592864363363837360900868862492061071800629821455662083489980646830869712214537340568046903344783993266999276224591399657025527326125003609275748268902126305028380838150167481720643827144443647844141090393694756711086466311446383695690301287799362896551241753131669250123469141670970178482394087953614360365274898383245421344922295721164855892025516852515695903757376839234249785382784061352422640361947697896039269335831078148157255167189596941605584125744552734697106489319834589022174347783061368717713736618815604221058054011124699670264434446255523542301942300080946355228156256539084725126804375567029106362709393133284352320156382432678635873447652127529382520566188351093376455119751162638472154771042087229666644640227236730044608048843283450034365817057395794447106455265482518876738088813414239149549678447214082481626585974771541896732043175754641729077644757278241874893693895088873680122758480822815469887831067977986717194068743312118714546899119379816375425351486507365294835779196480643506433767859056205666549580643239162536848298711359816267971432784971220198593654453985233510736195162405212471899346246345391017542550738787834235604398650888679249854765231656232290304300967911793416443936211500175861309065725093359750883373045137670781434044538271822485416737639594823986648815124914463175046823896582317349473926377273468907980880864453724374972789605207211456587943343060285948073343994052903346581765668150029066464303458808151586321149133205590467252282171817487070283002808660628335754491095916373882753975253606778021557418010002044797542243708137081755476908366442932974022065620811957661771906240275075648469849740779151124294591722611289517646841022555003394228538296001845891656318500466090730069182640515427694255944914643985331426922809961464757219776858803893793491340909495146096518746834175439833957909549590578976777542138110544578540109548541734232126082372964348176240140984159517295698754569518529330127957557313839666071986601811732704183281379647911123532341296828045341935597856841176823263783134402239559046341772839112208344589254448104512114942924619929802997705190741277529757079691562586065783888935713457705172440247933348903558399940877661445480480515383062497294987249173012216618948627541321192984894538510395988274829633182311506635476208196459614519636634454857885164512225574843532139804399549088910527187264711887974717271346096237237072583210368962120739944792341221641556393234627648764973420711614855713088031324428598718092824059086644768827554251671681517454431686705301196584614464248853362817195365663161207792311997326887223748300916365356387275303350485949260896510543170821099024997851246626492027465881091608916993233629206731527930833516459502949557638687323790679572784138970834533732719402399263061616054901984154707237980239798678242102784886476539679585017243735093959483237196747897721054537898248583431370074142255590721265499146851194261786703611875213977003419394732786770823469328375512768918728092603675318924229315329766993638744347322233589981224478041957104641884108648780180017890958920528045728485220758646498237081817315199139118684479269534772485878317901592696792972420301413254967958793123306584061580636748125938144962742729129971252479649589503643158590338972691755992978853406097679392085545119413209926590544527796052974153757290928425828095960349185161988912726541211412791831956440228639253312284324862477738232400705167134134282627914125386259799595192500022701323538453084942485861015321128737627174299644608099657012724665214054739982646777998772674923796458433158774989292670311478223443687641808125441084450810981973229801999887546398786001480060949962348329231626308657124049717016714435055524786659082728341775640663230469283666749869254865858156195172105839027302442160318171652711580386592613337525329836614610892886866885098532384700147279378842809433730029725127397393403888456140551703204599142025014344763880294997931480695654433096846834649996107751630935517103380084625594587140185058522994197107259829275119245421101769452020815953342951149099461599825177795121672395694014216532622007071192660141423924185742273147694029938232488392598088637100523080738526245119961086282621301618820932257962829122336872710157616602119509214481259229970276848845749634128105703985396493197098898988603180623346536021027083877391923501096926706027926388676120855227693759286255485853830897564866342230978432554094008895472093540413617622283480738151796078179669654192399162679767341918888012782373622214645066149558880077430075088404463526536665778815212709515695938887046949405449216266424766214854966650392411391079430415561158018322939003415603890713761668922776488340840903109703905642796865788749070966102905804988475124123896216703398208040948534609649414083676397080166408406992435794780933820048020838264789810174213846073807814716609171369727521359876811743798136610754208918589026444176511435998329304862687569829177810387720304269151821358950662248354617848819753556541051582723757428338231536142077062851754490724023257785942837372778344054747425107936202040410116805680368886593587700784262529051151752326162344307982933953491272793909098957134373283527055194071032230446753940255903375135444100398404513756969652648090349510616313108306638051119816584453712251151960609493097168080105645966079885384635085366272405202828192685486196054245045044972366205663541111430518956574036329401461186780882617906129522149856762358870882030252564661741564841471470246217691013957466332595197084109358512141266364167758121968228623221641573695232625513582323829824446290566294478805964659913586001287851806292579921670790664060564089996883982231247126799361136468905354684633947817703026750502618901548620743374768842442123156103521537966962455678805873090182292537289276202477160748590880801542338833394761760675326625425789604569630606620376194699075095472210100543214690327018820427395606537336341839384946062315727705607579105530540170657064692921395977638265523191447324868174027093511190032828482401892583173557694119693989645258664088526264763634227687350719150003456088667296443768386681670810745588122396437125920386365796474002841813407125187848559464135472154968608155494659357730550746676440721299581057488331188561147523978379590917187459434859274867576855007239622131802874761106730593537773612331103028057342799169459826925221182614065042087607430756414676835852552650379119950692524511021711220809042208261890473584851950595713008418049712392560359033058563463938101025359578324555976673974820056690574585852080866280734426271672428587679965022858958407064579810306466188075412095235263019979467378134823763318611288427072655678930432701442928530121594504290310627928466800514179580172050082310987639604016886838325173874709007916440381890340006651886541355067312375150868706057854608495500922945346591602816643353104662467655619260980724175473527296879338004356604846649276343242461124191801321940860438848741791372797331585588158252587732614504429288191369659247505406661041520011285714287600929245520541004668384033673517648874833755266336872830325108373949274519221743582649132246539979775049562525594103750060476046487033468493671913707744218636308520261004977332466176880174883462679476286776413460164699845918569880021338282680058392663851086048193612596254578914654339946238435283590968210968256870763976084887040832441951353220495575863818347654753950868234157967160071365658034704019331002898150172839680297261808307222678064851635614652527515637380547299892222915420037789277897702414636682173922723304840305467326649726940283935310834927157623481851172181159031888964892978708087778643575113929092522438978283040847744222902360912958603287497534855439223323707772401772974999364875913203393974184438025641810138341361935803354318169060602541445072788575585420933167148676905884018391265436531602907606622091730302500924442060139211577908108445501353214843860735084782350765810157822202710865544289038824665067919649403035802721099756838406552073604526162057412621252734931933262418756740003161134014072000174382126756128620895483910838971690137893008549824281920079238451161430404716146409702699278097211527756409607896955190642609080968345579813836781095242646293203805232053816989045889228569736003676139370307204013687754006951337455754712179232847005064293644601300042560229059815679869781874457742628702725725858666615684265065054913791502635884527040716937520442402654337370521127703476501234100138062434843166918661842359742903954419453502018795873720824192198816026635949734424995555284654844751541692331306337452303155006986957345730583205986148666950164115128414605464519199220269746430592378988871587044883726026207800690974847730993221716845050761712195167977137769571112213566009511917291919895702563124617671524564285435747697167508093564588361285807226298597146775481493584705249591175277751083751399780073275894077090477625499225914581650638460668573170731320581167019606966238051999766019100331961116767863596965985202654926500681055047622110210119139680478595921399165742054243026950467144393392966427269599766244278937133475571534151112694198984682780232533801495717993922233625609476420937964346908818835102587896120171445939763010593570802768351033638694851987693268170663626167219293330402560721325413024558195590744509778479704568449514751888164660506570642203495012270637203537416191354412729184510501302058756449116245382347827509470290696951292031603217061431813626723668772178676432999420084237490899396859170962566955742424248922671024778127139218157614323375594274722158783524547145408726308502589264231882710633938335938782629378802003058538897973502171446512583239438775882391625578139928092628873569346584026586623215259231697235361016834056013969215030720691756928149979936647092480358394829423607915164832482108708191586685909682346007124975963286477835053947231947246217597090414602015579658851140520000211514618650797168502883132598389580606404447504346350403937208587044499286198021131026077330250762082573844197196722809390383000440330380137627381468940856602260370466298731643933014995460538644745548348085609483542721743407267461024249150091304789224783273494538391104759406758104082439404982083484336733661588942163076353693230384580997720491962904746759602240681069224225538596588980278922669665862139204418941694764650497323504330945605888745636024801638342962435447807245956012828274300830959350615755329069665698564463212498030947185384396524657288652019808652545725727984765411660628614755980750714882309352944402207932250185513011326084555927542789586714435407989267580995411666870279897743787579174818887240715825202257948104296257315307324149075980373044498201303291567859431996208732966574753770086080865642792907921857604900785486448002267639640888183247202269246036757940637320113099249664169214341698727210556823226413631834773595631382318766960664224958331580455235248259543420471103862026829348913430562482491066978129432134194511814209580307375786058908587668310275119792441408185602778492976808121069376285667852256101064006319635947860747191424128586098888371171976648261041547176970991496779014291866280000123661662167729043028111680648176832022896140630101515160238630258770629458107473700444208071232081180439648680385466417553761849848199342124817558413913104453830105899128449914397404290922223776079885980164294211930469403932355023635848675599686692293883067380969107727660051275342448429445667402193238907886804061273430915580378152360135518570230740669380172254718621270455223590582878977168154167174776383548286347111284750787795395127258225345104596016478165994203696117457377196823734118778375168115997069743263425793007731336519593325584452609916537647838165167808002686178623910265936590403975091729057309886615023350466392721747583411537002856197938111468957003957670345789183397401943567714358025308048688221936137800169060165813258792413015735540651047895486650729550846358261456743964428485719578680290254076241260819428929675954312070113309556611557509469594766324277456464931644611630401778524516509411490997347945439160698012822167211579115592818476296948043426120551916951869265685192070766683047713892549748460160883541566158730619715435386140665973313524644587986681674818202835724524787125959147754046834352845523443084881996674720491853306314659028481580313486025747031709297263924098628317062562117904158002979337108607450358129792825344414778306337518692994137988931169950041453223621628485668360005400164526641657035537914212944034228163870464434275213926322048603061202073403193047816606627730543563141969221978097193504416812316204572098959638428271552226264779848812639294659454168426027296326110081972610597302988760395177494659452605487025445329119442676584555564700210014806628508568125362164491017556943896190084440309613228526022384066149941886116861443658770012681633871005687150388131273910632638433286422183513229401174355105931553593207633192162405351846158583091653185656741489077513342704435886417429544802052565379315328151978988542958648480728158413976332131912272566496658504826831114536892347895885145464066267783641165423833071082568031892815791933001331079358297143118255984600976776431122062035904046726681131622726218415130255868226441718365173016209157301749268260776215012003290830448341205468984442753814719968472714514036917535791199764804788428636289655675458285696752336246374373129071732328374328944332577860851900782331140161207272537995247397203138837962309628557586058711791666832150558006978856750471115452087005634639683700922516993490741863331584850337036185457371436984160007967976871637927856040192147397330283175887683146919239412095863008438524544215551513542019193804134979378479804978928654427386616819665048085105843884648979533343133692757390627155445285864529137225548220903845792130802774451483965249016212197762523700046318763281522646847426786504122958551047388783220256053270309542227243587988212925202081858379186278345039269971788667316081598948893796468705925568794903854519543112092630214477312937809051905407915988646285128459923818194797997362736372101584506258439973202272462448136821082076896584932766848249430565480833636887455418784303970828411382182647827156463540352880335318282005775607314280606515955880659935814307084106825918245083370260018106029351872331378613169806007377932237269971646048383840586331419614383293374267293030192312478419975376173360796502053150935550271316309082467425858460752888162426724645664698846430709638512386413318237277688110103974738331169097707002998782015292381401644225367551339314583910484666702320335545481120916511010060465366379377523803565569188484065401503073126233859194785575421289226172988004559583917171712157149450301926871939210155918898589313366068256478788732645269220011331961696906857025534409410793665078515467394799095163149936639093473053034537740110022640738672795949654087498090062825879561845805513119344755760168839417283491710733276696150593809912016398937276014100660174581209891492430103468402337192724851151048111282035998210686209159263088538901590451564852037898381834498652771511862717078375521874278815150594812854196537239667749245240169074486702020849442599109257460191170099303453652404982073382724075256784392898642144644488425553886089438404823731934753107899959477270593253376175151692992236720244024790763492603170335545831951155982728209810516941283205503465831637581023649319132045605701049763257466108672533625822110156488628762353976812284290589618056988856282348060636964783474836580421061206545218908171650683025506874527846683475611499754814373373943039929323732755787780308449622242765773678553185750539349531741510378278300056808057562576188958361732207503474469058159059154089431390802994022514155410046762455872872307443939129769124895429313776416825716610340377487403935499345150398908773921115612097293331712493822920962072194680953682594917180360706840093397378258596858133099535227485236026446433497566445452748445201898910995089950821354142129559688645887773618188704139864264566953355667477805215745052366033144615803501595725152064642678769810116057685062079383913194091238248556722370164534850091579402289374628347138754835441897908406526040689623178849845524794387724782865793845373973607823869515772426276665108905795745006892330740781553600141125982103844903806608811148605646782049093669259993710910030906492100706100708652494211239850195392809747124978773918353711137163365991711302739717693107149802691203927615264939985355756927677537756814503114384585887822636852425550105641797413566430365413510125856120493261541891540659617170937919574126657532235877755302561126461188983818470234385058781532228192384440661701222247731479903284938590792419349577097579764123068548145802807274576619127470958902795145897168912899701965542564461067352362789523361245981316576639086659611461357396560402504536366558994119670205459840607042680531688029841957076033308428117388142968477213861702067835845747684558623013205885347612325677319452228365798641048910490412805959884552806493494163964575736381742350071849455315681348553385045403076400735090377914224414776409577764418493031406386641775064317465674143143895245861440554147856310012739625071455336638847161720194562198648410313716462153478748216879438174404013732554744483147185398339667092637048400729036998288840838451904274197174751042513299313663460800711454448241075928906196111351795351934371168241816150328878644748419538545674929921027980351871027045521730076430060142610649492528582158978247059632551997336743628582060129882239967605655522822718156826707630948212628262042324701462202779450945262848341013124404210931700083156913179107104865083083532900819807519182009812453133642924453654112192927068155578299222795494182977814815888678316357952114789335215913260674000224103202105135684409468337178848533549614343814402560683598402845010972577973151872385714387466180763624407032825809827513308249799971412919759815881686067593302541667923899593948192075918148393240331027706086649805741175702323189217244146478858474345737996137149825744798238487202202649182522827474836979487659908237319271341882928447985196814531093048716207122645369826003122450722848516476535307449399452867299916030514202841946944253236672240638581202889612097185613172663118369293934754355605624748456422792050588175405534219227371961284728892353662000758416423002267083809183376683377832922801402551941157707412597822300862991374435426201768304210594586407674671625187982791062148078636598831226892149037528619890661464332702636531748882950612612653882085145564881943536396208002736925881745671631003480659042290341243922037959134091416656667881478612125675090072676563426428913487234361453254785165647258368027085224696489543808480943001858894195755548104742286305223353290630635605948684860113090416793874238860669152554245084829227461375299705123207794082552791620109301090786114825414090268342522767705695243019957152222930028972040552389573452260720543639336332142761135278144888513406513647651729315439469412714809178359914864926381824313037341921717113099245607207120892403856080475238709582721308780979353475621564532629716622742530925419716268269187595937335169662060518011452571943035325059894328932066407803678858029165640781146447334833397436047047408317918676841655421902469893738637430837741755873178948756009595330220238935237390706828170524496516918500340252805277810425496035339721546717554797830949109638419830117521862956622926048653468611490017653762939160647255176228877436738003826098101498545096561254115716883061475473113953376894363234209774241757268777805429127459687481460279738993248426191875484371926470312656464023990855926180672409047853429007045509933289274668027483306161113669492580863111179822509891121385080714494444728542845151723968801854336291071242845460536430076188662741119596414391182463781119111960570612677252613031189695901161120973587283215963597611802882338263535283298539480713432012399899487713250597184408595194884863842229275830727166531616099111572247558814490809992604948817179891471568978364591355466998169868845824595775324338221970352733960496416373467658075306324736568171696604949870587855759277370681766442747540069466755637716880639435599975662993867676594905396968822484725516026386654390018483340935571875824005871913473120486939933725765852343163371831213131977081766140530600726751577028723478453629352602764924658521217198913815365113403474749597829321207361718763560619654367933514558372251199437612820929299180608789720248914532651250314500248907188849017511439545475907404200328464216959257262784352124158676346044485750045239387321118188543184389436581110574212014534984061061915685069671333157111067392091207160446365422508822473886931643982471966178377438610171603051471261708899991063361514402307053029577298869505867213698790520502186374157106635567958522376655299265321508170480824348864558916636431776157108603818702249501843514940206606202794499536114800379892227239919050772520337725509475180301344883310740057429243963188573299280626646010984111434474652738413563323649536404127521227405770227423386180536903622889807298991038401684783937089681659916027251257062430611097387027227680836350142457631978180157158949415099166683904904352250071504758998164337534917731179378679367811451602674767073098966812254517658659800282323077706455157493512989345444996519169729679396712274188199329302635908469933183874044703858163818370862468767403477621015707028968642786707727828942006688470265029043573884491045910761046017340831754098924621057682094161793174103275604474180204289070545657496463159646041023841554588504207566691891351290469070684267844173678638815901710100943291766256282487310993138027680340972284941875863457699476127835358701106270643998677467689302640375959865707836108378323278626886755794034805286585798558668509992498141632967133663903522996923757946137651725829760767711279956799672188433808203022394539696758706616175088161008540888129486813402126986309596099877532104051958163370225069892469270005649764515182746185356300827634008373641668618332592313469347984646045337941504280490017914813139889778322486422598098652125916753250538140322649878144717833029664180566470559911712681754028210860611982335691913838167983289226598940698389869022462606469042882822114125539594224539355422657940691232890137922244875736245159836080411173804985477788059540354086011808663668059553014857616373922359069971911800319925730812956994677280685970258819993937751956918875423474923012327766068372644490719272151410605755430882397287687553711251415693211272157474303941277038761569864856740406111998957552346157174871862889813597125565975408536173703992824754388223451268832456158037994525934027290898928243800800380819346665544706658921004134145007950999321286482385990934675216877800620758051776347456362521595376370825918756814336584975744955288330444255936146777306170029633279435205447445871042332022341983450298712130472451924144027081418493105499541245268530722204791214044657215650776095599899453173892654570038980246286959572590783893288049608323229574500183177834443924616838968281270535564788286906518569991798306000536607507417543290130797255538816497234752464833998899781026230207005195045482505948756138108829854760814190902043328073138266731974014851952537520539331839298884602844079963624449386387009556672662087698615202316103393014356118976835656620488676212890382091016043657297033944976341859825351290042696066205413762189934823931389428487307934404730104754798200776721579996617440450380382588589631239906677225667586040715756482830926135435803274506922110569310445557080394462498218230610030240971169138360293050578216138036756533672887106847102448953941489659198646332828787707003044832065763959144206221209476494093501031733322205605283248316976537254273741924178105804130060055328541142188880766082844234103723397594945715231752684648976007720883603672347217891482446678886067587853302634849233167514203802916016357244841799157955217111327173535459166863184759418736412720945347471071326019497384655936469063036919088848116755675127881355726950968017607874024024070386510054277000867039939872752471887313339603318204924616887803567371785752949837420200687832128162215349402304985736111758548858932935266844536955247710166739103914462946388930111270328630743529737747442951205267213395824055515865045751424028832967674241563021080882646932564107075311746354535972735061743651344924127818088839787352457271847487824750051103533427064558603079185256614290894828612005940033456080007566412542688758961284897607654965855518734364024140830543400261603680980859991583193272422230786525604599414628927000912277939551591980370227851806762150487571936181633736804129093227144079383313386576368991818276358242128986440459753966066721404481705696095819146034614239011212808371397714402234299377363754055257931521281681560063032347999031276777789186119024492539127383724336976031121895366807294069011539361788620032732331812097709137692917118294799411502742878295944231077590352570081685095724214525171400887155038413738486911094256493485577708553488325329777109492025621984665186211378178818966437040341187714562299255950318058404726281155273119684408415043618581834776287110348836655300360110237240291391402367636423355357439445874032088936858217390893959513456756739318936065235967535171790184117098934958476638125028774231050649876494825388918530745874356637507697028796802667980861657776898305025406961626857739483403695937029008501264609221223787870725272028706947359176650840240162754017933552991242639392359138983796988007058749279539107718514201633131798576391609180067789701627175846334034872889013046052724661537562508511636677364267574407447492683222861401722764026460077163794575317645671999227687069653990943731817646293730909401515101243341740614845885529289010717548661468013196091691863804755077007251114080984485347350667146773271188060816944271943782270675260629119353347270679663999588138207784835525035437194639064171852657605528363468756586658640767426928514200534005880209417442145601785571941566883111438037389311092985782937960522879517887418886828273037433493403875468235207922491190231713602204759688579076904331384060057798002012564369293730136883888470252725183441915601517702270925655667576489759185596458720585040791167497189024783176951120441901954238099485155980770485450792404643579199059379833836018975663911597596151770950507973320861474044754131031740761008270107532782591824100562692857678389952442050644697355579038196676369500620747219409785120722662382506764704612384678308806994858144928607879875089260588847091493592638990079573652390195475299593047519547401068690499210712019485640826736159560008083641184283539614912005067387112062310476939891528598500564840582113086618221277569264242652058870858717844483285671772682084786611459169699977480462579067345109728086606215582335217669572439918943880356888913303116332068710184704864364869179539985367408423985140619711636593084198392937884567227238192720758728758188938709707716351652998490711473425257660541735608498042132608508738090099452345108431439302070244756824412715126904960843527237330603789035847141596525703676165260432217267588986567544220972563589033973078789729232345790379411849753604316915201604373866602794398673497847136567804673266963747744788524157453681148685866063769047217414361195405096371615701859060182791442280348329408999106957068590440774937447676131096446198446966513806334163278767273080602612181277942845999469330253575142441375095938733416212828123899187627957766244209284856092013313239345588637330026335272667167873248283256184130625757877999408416996491855528921220088263714571461098256211082977657111144705174147010775510094032913418353215316383388389957989823994282238110836419230981876902925980178337633524049802716069246272733326099111839649411577294080154845271145176993627519377938442185261636976980078115794186501683998994761997001346499744126055580440201288284769417392099577584518143719878411879576936993859173088898254133773036547357495970588586253176275698016294201270067985475075826924014332832036901422560475438245865129583301402613214951830654861285468239628386424870555806685471572335077263631824552459111202508951996843147753311855049181828537611372806450404635726759609211771206751587307180523450213438177781917911724190192419259426084155744593331343775254787918604595825596575294087864653261670238507627494131960258667006189369406101079347696417272429710135777763378672709178415772845334453363478486522640096227880890524567871398539537112518004897359039332181669938216301997085579596705005778759642329681396317520927048843657311632332452532343964325330991835789620049509844031423701139881148571856222895452599252821263506795973440700894096503992335314026152097060071373202820762831425216364155728061636100309568702629616775683696872742512254920977622335401498898216500356995505314919615208725039273997985552580835060552630030216560306889187712377207299766014735802089685531802207027008023436794495692674027925900580876659694077124651729463035074529958412323667760448422412729300590380804023080968835746922534979584181721447195732357846691743213634783637805692387129435946166198506306315330275729909433271354338300692615438507584360849322724026171962683248525535679536519934111301917859606345046824442697272673759689364787513942237716956340089728458512908443144803524882472335363245599143114047737291644543163373044748807252720767169927559376806471033749076130269004943173503740817768772664273168693507232633213536860990022783706210901221846595669161766335369984216059531035831632590131168469145949519339536651322848616266654647017894980078631986175593419578316906749065627566627059419493154612276915845658827885512310730523040889944152080557124815633726366112533745256806570477175417839168355929152459502853106217755626555376602092984438040833390072341263426380988437051971599318347617028617076143012069639382766606744778801328035366179536078979834542575061694451712557158790839885511502439153831620348908237897762996126146212277002783533052777591018150846280561046147436740878885993622541431354428335390127740534143919353368425008340069561686817163834458629865711990374305238110243971785545350334690140214932402371420006777384688013240784154168036065780443644086015725691481493100194796021025184055985328295628727516487427592705411493111115784508421300525548263293000920369652175610940762048834425247338426152370540467325832284839109653353369573441678331170235105153107995161257363976057327334182763523531660981356920648874438962409902216972716682353825848870208848384173474118633828690497032140583990393795935608168571637627696270335215365459707331375317328605363560236070039774156979024769133513356642539527866556549824041821932760059116916243668740095434699059160269602022836880631436367490071819472577991389546440890253291165194317058762150608313318585983921539161853783549364141307631303974580768340030324005419853917047175152418195030737619144471485598051731056661099936997374734763476009671478073886739616433677909882252442365753064818657502394163215413026819262696783150388209380533020936999696795422621335121254091195348205899988045096959395668405941247241648190389460428626044391145832687553437780927580715617046685576549253949604214372425012035945653713115442124927953346590293517382962154334140006710017385589623280977976599498988385462729306884024316400760020662300319336408182138718988918859814796488990359709692031966888677198280249843892314672026696089298413268663748524890781252456262526799351282234257169374615775319038627052737778233035556882579747828556395514343260527924046653129549605534691211502018339327723738742833489349448772692796279988308983332256996963325415888332662469610222504192270502464899322851729718962551234269952982273033026212769023630937305199223301295885155765418912018653225212463984440159758130203626668816853816213288523345444223145378921869291987061629509626187471313214326853175570449590132538500762286095275595395723815436790565352091145918136486047746469773984702022217620524469700852540834692075762886239984040114208819551746414218989982640654763724733426368911336062256618477152662923901005494126145312072030338984036076226104928380228037194528043671801900863192685835055269254265699895886464964816919844582593926360028747414887982226584706927998534328263433631813791741686540200784813860691960804514815706384780964816629712390755473437915014232223803503757636978900164065305939318015229784518180814555889003085509587607693975167707080418390866388323630561666521072195599849156827594962074572458428691897337661015455720820327220737278971875866074091795636306979675085200712226389583120458441381363178620581929756453447824831851160220619474344632834175905226278121973024667421231978591285760957411649638942150764831431541228570326339028299053353920889070233807980172314834157030029885036019843920626475992352992526752422993663622329407153700567198612329432057014404271046976278857142351760374098185305052262442194250276278454109352586828089596610752444236182123278090052025512307692756578165307086197119195658701952825850516119248807573491037674183374815106268860672339288192627350023475053898664334118066925808734550984951324636141652004151853001596174218713655714512709760987020787300981350606973886113091571557573515141218186077799861906755710788556937437034336334857854812485684261651901841130482531429517274388456408846237557971250961177958174688730116628331427431480389968124072939465957909581063077385712845814164403387487386164843003299143698100271417857441081251634281309659155537652738339977247445636488162917552576430184253232775302895635086215371248482349389625673571654310148809374923136689162600521261340390654736412817557243589824841273860961521468062014106165903229772711420725350814741891478676245027869240431011366029885087645650639862812191139006877100775446427794034515833199619270962557305280193536561824506434539934374232211298327714346631427982532062780550194265308626078648306648033906396930362963617677577448843816276672536856952406706199056629071296383155837522231694766473496429024229445005085173052889970548148342466896544652982467214940916561249142048521549397365657394898830982343107255963282531839604150348468320785199248854734464977489464156511569921608783748579295294035619239123028325938925446472710461882397432050692554567160193799199543477723914766762362526020360991096856562790308483897598476382413412001132916014212589840589402376108529064155153774290610415544764842931688155853075515359214224556224395026613977612418222530262673529691542969036499007248772450362663066576341735821352750927605824828719038522255834993588220429148607271412322931142924877461621248939267139953992473304555914937655588086854437723454475492642549080823946784023173032371529443758258215576564481723423139292476898815199043641627989121376664021998585444360529144183284075108208917757515753236154993341205303957040948059990704188738556711731395650480617273893029801708637835515672885660546520461292575677363294952434211099669679932281764812981811866118127199318399580545695969227063404166161177406260290975756391639533857694317356778709155636316994796890358621678024657083480151417142138905063230608826704650299099299460892529838373518868932271489695740770818862139086630079592199295940842481795392207992251090197640124159606883824493382152770258195105035943130743035251447297961682859436633807229995020744782579869551849517852639822497682638967987827467006192003527218947684951395893815343834130763149264649622007653722684964253075149264421085061501631598919284358682181344745945217293161200401424703193330975268241166238711646728616991334103147912907383633563721826531577129654922469168821675405997047784342190521390246231886641109988631719128672602653080105986329183501470240599316936093700142131915674965441075685904066890002817014975477439325267682165571212351243918978184635314454793816706297711197258500583336166462387613570965170990745928681595992744493454760230365811660202761534990976681812734058030562878039860734128941226918183999633879410992012212831288629972161169464893690192550540004445133928251750815296704561151168245945507080067418979107264548798315905579479562337896692196634064790457200252622638282380749603996425963857333938352481299664062285590881941413164643893291175244634990640167161673341062973190720697948551282727866389526452101721226406004748465298300029756225716201667070522972040752635443372383855689078369324481394673110210927168767967808345265253726775996281559974136314493497547822718202530012124078949999139803291862710406807511878508129877427938679401013442384329979522066976986884469722759385466911832986505919831286913214566915247064573279593513475950261922843933798214325431264945676195329210143484530216201431966379635547903499632408811259598904626057165442259706435058389316438143803042190196504381622935564772024904529235701640012890429713176268719226720983151744180046189124836152943199874422801787052155346337050979382532624732023853546026075595569484157766720970086849391159787878999125333717033535512314537259807024577234406651935164907517874141076936815133691544617026774337641583715616738476186699619809005636580688720810641727323593281305267410196906800629840546684254758961221618028817063631773671493529542531860940296856396958895050476807188559927622597253486265405557594954220952803918079306172406794589345124538200451388978253909640830545145963631243755576340958743449533991897741751920753175144465683466399500535056952015372092508592175342632453614675049454951108626699656377004139627774040356367653421734356600212891868034522621817776476861274766760773157469958769721511518611640447027370649574900680333590204462921617738033167616666774800934640501009718385313384085697448061602798296287220679338399991560509721970396604897796328237051225171636634122873082818184797207403564160499983552268823498280390879910637360024130728334466476122439550689806895800910314410002985882875939074844132104575725728991732498494013113061192050780350653211032937819755172550226902463190443655065928997445602828689353356876859166029416223813186354815214460521206708176830511859709371947640787061732457320162010589269846920985923810396417138344242403121931213809051093824407524411754231923536107193354642195696618281708588057062404056522769934404410360272026114530958997481578909220819540763617768466312883613249482759037780222475835498728980969830088200174206546147468338676875005940946291429097706219428302156060053857160775541720436371884494905366185391020142322493385431789847812670727378782383739079738701712295324058077276279266065133418338639273674650218318870698896303501716720950349369954440468730941736448921719494042742952139737772058862616004335714723766988961273001279510657491474746355640629863685819315881549779799506335948934429492320830475573392993841129628441547467164395820694980295682346018255246765748543531275986328412470881787082851128063577609020250961528376054736989800071882685203241192825480987614260083479597755454650588204363115714420638425709323944827708133088821223508775469293705091160557531831757689468770211169484178216244370838532427332487093119112654686304854776813722472749683787956013111601128321171117664261774462202332852488371882072737054782278411964671732505067609130496159859556231287763972089831695562799491931182781060634557000927431415984015742259427032780362133904723100457230412338704926862255938510667187612077895852601442525766864907545837482732109992686454001169648686877093016037415612745327127155479308447418560932376159884976166699167637882746336388697128409024098983404535902935484528997010789605103392219111019112356569649935781875453109592828463620098198598757546285142655336127544720709903260034419335938312966325765052442875851766609046076411135574985387336355901924396304491322716679345704804505303081087758543090022082963860324696233442803086277057574422180595800151953572250185842294428487409307974690011669672355785781519452168770722369124139054568030099118489440408246388181278232616940394383920661925580956213881131089133732797809142884389959518424704600914757090849983665496984452873807580340028312055067112187273393093581257685516179443469888003072997850750590652880461184486139530410257218009677207550497426896531748852929844753547980100331069392573495138115716512465212787957389114760465188722699591407251455689096650432769929941266178818836304700104823313298688106344903778658915270784550500380068694411264223361223234409188390250654449858719201598452300342888081115976520517666323172492566126087368847037219698150381562942132859532881455129359423046577036210911098080012465963695870930875685255612800147713444273746044643319496983779331518401797305970205655359143000884869782693224565349623692203033579616489056418783783077164033368769061469337448581088623765056255884434183306868121959035339959971527994519714384211524437082877240262580578699443601880633182737897234410070243110910637636425660478987630600176238241409749418536262670911520612519527817074524195373362523499170262613399573190276158625116233391812083545821351162770920984974065070408014082643191129835857355169596223554074019556948295769091029764667320639126100964222294751764436098948269924073321576009165937711752133646321580814207505013764876890189403632553125621317700652501603018112611301144241871142149235725647148134887365468809315471861999666302823653986641058539320014089248694692197484158320934923343537857092915483400938737154172536470145459767832841370713764507911353810861196980131588484778221473772169320070521292551639411994166745087995013749789804555086921030314311692298294670375750132478068846190473190791929097978612197334670729858133022865451454816665531079414501288990001350430258417303140368512589860641544131381694220225334111972663499830614672453491240780164429305299738380910780727854050205002260172745860527630330464276503591764958224041192628483787967050687554328365632624717032133218871517683288590795432251765324982264867835198896628659177448193557927324565024302318226989937028780581734979713901083276302022548545972084738388349785645497066721874092468129821628332989915002013953448895289597996109733842932702240780811915333099750993313148730582261917646186699704534786170788861885196328025253344309379334081543662919249605652405541771518754829230950147733021948190983810405184864418334396555753116777525304192443044892288968365867365705783826036746864358158795464944669139775942256788518454435406321198645080629426659387300902145356228183997428028898323551965387536979603424806772378579467623922701310529750519592556764775249954106603936016560672070002472550623708406376026139885655611867909927451876525024793845657966675456535568968216369817542740015346628096177983678165065052402279191720083627531705684257207932929884097028991512778064008432785343657229767624750696077575144353183388708868760701107325619764123069323136792473806689412969359633488908604223777084089795050534290671750006912103515267445746313040627440428712022518397685184489690824970059549760820197484037050632541034312499172759567340467038737286918102943644601613613076946756408253027468034124064441496196525478674698752616266289836448275130959127270539663109946821919112228805793334689802682260122008605057634951256859389893126437168268541260303933241931634812243881367318363257049069424630914844268240915787054730738635564043112098425170373049460586091891206054816752995560615164682043385614205832940400295045678063821847715630424105669169523153410929555924167768027426307841064230769998009193337018136991149125117556634187939517341481606716966131421819443518559869972123113310851460602083494329421144593956978871422230453689255356843200142203981126594581208695117682764485169700756402459903186913265225726590164426986736893415437445237600277649616500827250251981388123095127967017652842865011704343373605266414977578418091976504761010441392532763146552873080863042988082163896775299858556626899348310919961685639579459969357356942503372192155521181213411237070343845537341253837525327217142622156425260106488172772924398667299418660335265053307448669512401131558229453029853080412933421684205940048281895628827002945003499297933681495070059546825077712123371023794856444340456972282298766001577126675348088673598429124250690678374818555672544552222019286510545072318414407120975426169559877191053389895853523384915606118704773719908116387480945011236268648299552814532493841611255192806155352058195069142074539746565121929399565278545246396293674054318154258759069745069506700681306245908732311244877481273359115348117128368553682036493906805301869038601042853498623903460562766740597410110169290942010045966615254565061166395251037486383897970673129288227687738230586808298173635916787269336093412054573217563740333605048743669958773759350550333148676226358688019105094063796923905086772311095526216752897656907961620305587673416345700992109197350494984477121749109104946264429899511065084181816667551260474012023938753538936869057413013436429154801425779005008195799417026926443663980027186493699473500280653798968038093025485738465636023936001212417828160534027605680944746807720783162383705252126792457459280597576032303027829729877174064655627466168680981601018793920448140875738561975543280574646962113075110700395437240523800951820929784989467556988313417514146792988633267160903284045791535280239024961647608893274381738409779481274064045271937461041633582213416096389474062242995555817723273741912744427084650133889060439870640768750488707322279084299598533277697252795400844221185435512723301528027503557775209438248571851444757013578464756672340631278769198953910343677864273746389731856986990671739024342368277324204536723354258146938677435351793649500658665172885410273716972455935115456512891722336931466205087636287786315784674733369648178826609120659524239021342863265352015741160719241100341713086511510698754600057377498554214958121390260690666230392429255881803793559993247359685677706414856804685689393856937249655360524088655113179174232134391179720389941816945058748440389984473346983645016870558647157881100057158268097324694262241079641918649581326595262388267818116307737053188000074156716606319361212390692686158189023462897671042647846197844162804352359238911977029904411001791046827423000008584448663116017081619363117125682012069636566753911784301775581145402015181199736242929828345841639209188362718076630148114116957876636953821191487162930549755326827761259839522831159666693247911441608775088632382700471184622985064842841206963498488637238333798305261696727919041693410749089282331577847864365198992059356055560153896744069879274012730428639920023891219116127461561438471568715888512518088927883282312017069515188868288196297270164509328781537762744851638488398672445427323247751910401123949766638155857682173801051000420555203829456142775493342399401433415779568175580703965732313845643276245944054712105879886433852050932708877961619194752822868790919051291614689023137800308508461182064637613019827942073728427126974874203111603827728520476161955455074805166317726452752071212388884794902272172171498024687748304053149375488407259376588747972540048122250973991213881704850302313079134166825630319213465180096142442688468949111595410287184942726148916784233878477190272947946166849780143361348165830292003082064098834517953036301432238521753040415191580827660281710121698495931909330429134813458896483401087557483524421812959597923667514023304121527470222234075812664960466995755716746190673853099219929127889553716934638476186342242266308172400551929850746645411652125230487813969656790349642938016337006398525435358631116256078817542097321848467238845974720081704514386267313514548337963874834080261259124312492870517957899677809484985942604598848956440553289144795131649300607980501787487407147089917011471084154766532412173433214591491275021714868376241522804626999746721228635756764762618223770683391768110864366138506028708305963512124639438251640310015256149482797543009969405778458962223630271083995816591037103850420053073323739489370855061246615020690150970343794678439338282150132277997168866341831845731887822149172704010904793698970687810708029043061151397187456646107183651100132024800528552845424724288443454428222608708583319758644542148030212357227535712421425287985586799235475095158990650182357072323677776727017105239295057617536816200947124876962293117373199220169613005149728019647976533894416585747923071625924295860939585266235119054717755195032555996261282755390843125790389166693369724878554112041222492176548810526725757084713875183490367662031323127079250273804566130138554733895252695968171554834420877085007903591533619455384501188479956646830376535679096483382470508247816166530620705300592237501918978554025768208298021252762223013613543125077283328452784604268252060665659973604091675405608549435067798365954148093187042634674634008755119434491711444217261577350956901192667367910312697754567573323366965875110999612349441626093282597441453387383278117238364230067341340921315394360820635105149089691861034655184428436723832120171852265442055766731486950233269229400004252049633209026548009075646255391101321697743107995886988329266503910213614010422963538480198045913074513968187913655851435658829095369278498910781205499215874238531952435099402625402425847091337924013640633300212128899687942886368857460785979069196156405971992388190945146453026832790020912267221737308977479899041428297820674547372410975481781475843736167957745833058142548977833940170298640127333693155975609373205431097177101845159225270086374398203661908333671855336128008961464386967677484248559616823744901034307571434699594423899756838264776951504769711642218312833067711302946870946212005833250198327718761422609013308535859878088693341045762868708038107225907189370493858206439812619937795975973762835329713524846321247372207331515364884014960422470615703353590302721100914952318068055926179685681857681971984101552962547770813182763835006211492684836407888036538856043616542745457772379406809705096843925729720148770641226314269419520039609637528706904588952729006745339628169085118302798163360049389107473981918063522579430505341823260190333902803022954341003852632761339127188876214839555926090991193397772138906304034340950422200767360389532280379433976114256158178886708705485386630418951934776942246527900902533305317568405465571770154609348066197547506926779745671712288353415666887427196948352616700478943574820391389029183848125172661922111531302724285297733066312619675642731436783169596072317932872161519529097898154478224575471343463584248812651701056285732754918975924572199092313424351065319025150138097261703797837032317673190805555906969163987354160349853091764799620297754628137070827811776415641227576960938732001473962099215334224419641137262441294145719454146801726256089735030954824050571408459263122448715240592009212309663474473806189852431054423390251558584749576044725669185406810649992782248362741371696185680728608413080760370979484698270538682314907874419949663126236712959323394966849623975123664730793591068394660392272699859736946590503093215121673507865901237948006673390359557025302057323624528572881240533009467637734091408358041344599726031390066855113620123137305240175456689985907526261369207386567736525330862489331783050067948496783340595006858897675198609969725681539382887638269620274494142263872914682915060704752244998943913015282480780168331022651681814472542452574110187566801712972657814269734204226586108818009865497718673301482107910159240137282276592342741195006230862431585298614575358230975452173187074652918790380426896372092840128559152428104483267622150865677661408330578425881521272708053279757458848486520084902302805929480459492924255556986712561366905220284562282105918100135155586106509528051619812854043100300996192245624042978315533105041049924289778198113387077862902232688446141778844587955840200600824134101202124848144163721892287710584141068887735699772376605195311952854609777697468648451246668164622871673949761426209685046947435783802337016650652575890468603365569857906288216719300964672432079699684430550233220760806575554955424919862911385120912939441395354892548033205813179882545818947387083424527393203688785960092562054975987275159899420396633345800667581286058569224746951482660035342914026603926207330628938474615316374416643519997852277688181091639780598979880706454319520007838277556697359081612602499776968990852088009533891036636233638744726441881374751867035661977303631896474074239605302377016183854174913486680451775660490994054319267461583425541869276326549608029239558438870313359427534644028129839073801375412009873619440433796676526242873229199220952602360393634695577718705811211321883408447692264890100595803407932743619458560086188592531877978769167678826073402483500444293901885446129754838328817182452954039018809673429143408731638452558914089342091090705260271747273288329978935009358039314257873888192756769674996684397227826684327301941946648222801116446892021730768519935407433175508491463780367433284393358525407111075144028180776374624341632195776357004074168050252359198065132984601579195815226903911803093726264079599030665359658952524526968977705098063962331554927253672848660354082131054447952286653598310676789984113573057430603391827917386653269049854419363503390483238258510803670949146803521433481696524049804210316739699638432259093571156770739606356823619426580363879619434448088699830045659016846485652277223227599248216572938426179715263098487635750333515961200911082148864438646544086041207470006059101191057503006031263159266662491103417116516739528665167613067820973931834335801743934379457193031228160300028299223868774750539779731889241093658116642819445402757303626051889896259967435407692089901515620095863484024720169963513076082273370955461299230124098925790417368024818301118273906945111266703906677096733706358340185934499757146249766489986478985690042730469144699393432248190414756195348696610619513306071904364420134007174996059304497187919974837014139287289445738980110236588527148901589250033905682308789024995965176181226607179158823360013441103636387570849789786325975472917365348008183841678149345228001810739891590187253375073480784667145592425750530727710297129725795508604360287025552154595981048513242808613907210016930159846522845129955459187451000897992312408932660620169966986029702880826185225395855002833490625010208506420238221345477328752006972659218771781114225255349398106615191173826757968944706291375616189931268580623996523969289423549873415408537732031146125122009296221433375847579792013599023401676599161090013993415498291562776659222682892371874197917969942481246823472354301625666921379864069289972238361719891132119076623765074740151645614211452652953432485945403472555522047114394777936599640551453065940055329784764950646002983004483211925995311919486568141720092074703854644229068496218459630790156833235005380305389089124142742126727141154916691731040497066951134526385898379177670407428842931351339215417064553278414397269459085196378692708812439250300461710465037737074185773529262807976273352730517433709574962139980446538703758226310700530209748588594786259832360083636250729997345440458189899439167736585684071727372567298017769549487196152746232568304386303891979998052168656538084875865029878682903784489390641271412694684983286675976067373349090121491266224666994817327490152887951675307322853527590826389077007733283431855286751470353198852405534761610565828243097721880656430462371881626524742168220619714796734997264059272656158315679779967259107046839086194668670711521925432876082926629649018714208348480474408910028004527938849082207099521743601022479992700437033880360513321746046124899581102663250751451221990221538588627308358858669280740442717982497298038804905129983283428690663274303021989764311324678982938818669650952469518691382520142375925552691354115722829666681942824149450140738300027053153982980309667091946391559264894303182030986586383099041707551805938756216033965353710399218694719540321575671301576734565045479155985021835605066939626647635920999087701447600097956720621081718972949030815474711426988103179314394038020690020917402755370138682405134310619003266440462721223175448971561763072949275318610013654937369857471505741944726733865117087306858917543041722589003907451421647570448238987689282033269284170735030323845541959502036074548873010885185121771089757025771400810429899114516504852973177229058883658188030007614962327437966209223438023798873255369345369144784432522113907542463288607947288998409674784759697226963536619865395589996955507283423791721454303159934822273024023862790186969033760118789951868884297046388126808553236122037808524721505119176813817247254978684296226580814915354408144214596075004080442934069060227387544835934512194525289248212479227422773952819948433150658550220748467904963138672288905498561563783923327351145999091515364979666249672277197120118004487245813929912848095607201050889212908302702014637423570926308713125631536438297681068343517771969035466976582734733812090065014836817391778338712161980207188727010310260826094814571960124759643063606163365596260929081299077189877236073551593135960854253554346239435286866037847607548542981975705844661676263671588618707456700949344822666058549883315990157765426201912653795617418039909788681083135339446420721882691606960881890313293552587112733616622390224502252221385371178993783378234875113975732425441797149927694373948580004711861252404385897029823722564202870460464161321265095034532850813047924980138557956098076578938252253807851224600071305008196127402315185567151125722605917928652632237980067240007243884090791090798780342101287916172662266784713206247618634256805325121789314537879823508975333933611697287287206310820543139334852972232548614837252036916132709332515394782388792308078913840791796953982990629205766898634274982409661436639110254347640149061020134774926841886496440504200022990593202533062836545350596973639571217291689976217739285615696913492721999747022456631510712113874217993104130168663424813553271262836219822066178421751836962595910235303434610844487719636719001606652863534987712642910591487044225451504879052673131379595012062775669955936460162761082456288074822684007517592380698922568990253388134497352647370370850608254718778505400982581196451220803926125117755595026678255614674978343229319297492327399313603152387977089153659445412328780331146555148902034347880885373912573644595926365862860330127386285004465670808048657595626938592726238388111126664356839305421194730813934240295654475517663192278754491492638856471171342958256751732861481090862627365446436910399743492391679376305192247228010837132099172939823458757348195825595841789012763745639611761041672439558688255635750449506672761095655595701407659677751250746769941796556401906085594524778020498449554502844411992539277566254346459596552742057326980805859715260293661783112730314248405810171336522739191061822289171323920535329499879437788055269153770052115896553385266864706106694108948565271882897200905463562562429094890915911763046658926745778400223913677341223052499682141092060503880986792392288026392980645225530547175166549723898500844026941813956876509411914664185523199618251901474671673809360855569785959801619723129292189513747541604881996127355732226126680863893123618667406867018401852029132645432803284911436358001291077509399829066383852442200211578086654076415842972443863612477873309717779894315519404867150001487007983055960928829962947101882063017003610787865119930574476179392027262296674546951554740970449373405220351275831853480095807043919108658050801786002496146706253624864510012213158772938353993701662807032947317339754849656528761780637170826646049724941820818882087850175511767447561226629297283518239171981327369008536240772476045144109491161073990395029102665329819558410870047555666281321781423155698670635725041153563532153171715183154076354080536558679186073022279014365736998714799804608222027511081277755398175302835454404435385084580971873461556849761046119211713115856698157356474521166253339491599967241251532712701861350440089653029752581316794701480901635163525600428043851849418085446369963002971028953102758007953425759499417436245735760555262119967580115756469074556258516786221738267253262512977178295281581883244288553337539591532576837881349125525820945556555082040000951472826987697927099286042436962141133244991512460129216088437392689622712941087221896612577351358527817997705709719299624865150095568816662453233598691984376673569568841994228169317125722265491711319896383613599867833347208025532063911728096197692760962360604634744583621942882006712782216844533697219119301580750769800463596218012780435585286544029601527877129061667294602958558631205618049589482890257758208271628505798835693264283987753959154487024700998841791967262434527383839959374292463028327693368460867602824972934918923265918061892035751257544804681926374156588192983854370134029446436788282456895327536481419609294806020206929520859833569024406365509469645938570949467885467564115836968422091308214670519543033493192586996314560996006692664045227744441632396768812752820703050054578219205454388516409672978993502154998434548132372887777057106958667415220738281818618423021738929897286388937475573399225658310980598886234713761727317707675554296035118278362754903693600711721244808681936036971984600817520423925147823329178366913915223954726604798463227113552776985843494913332309166198124226181435282751119710595662669792831737633978536741949394021742108226791025540246744227801229859109060226407485683373282506898116115254328704409215923389453096102696148950244039807888877386768088405963078038423026870474380860603016364804623150700311562715787645697272835775490697294111109572183379918795663999180076226913428597615846691690627506749752970489299906278250307299187252432749133251272121165239150127004723981021277055249378511329671371662843235439858384983039581685777823769279083201460688050588689720420620023930458651158857877007629697075690288957941896610139274652591656541292993594674058490766391653493335673487146810360601144615991525513371418445335934937636356252835514712941450813331596262466920596555710107997860414605873537466042491772732463140534191545542966256791996655094466372538968564209641268683101043948445667251730090660133235815812365784883815495527525327839516439196407677370396022347016729922663308034267223364127286341263959941672272302711599682122502163376743516774685103693858237982659451319269877201766663606746658637767124675697319908765932623273972247393619708464881612197784968775054562171361239239057362993470581877293290358111074028691805076214960821052503463833955616029669914114822224429545501635320695017645572718571675577347476735130808249859322128360223157380592697431225296362400968183568443308565568389384292246935792335899694452850940534430686649170635924121458936741311231285218138208484984542620460838282632412619892437329881862633163790164605317299587608479452451038785286403283213783023880890053865695797724918812487730237036156751548918625018494649192668066033661834254833815539971612467875849240066047012331729836083398030176894387159870672819216938084100366307170738533356474849325700477227391994680647656739355496713141242082878470720098933652448010808902397401972673512224581033610839338565497058913310256802677076190376352524285506953791078833627958318200367351885546125274507571432741646185314726114127914741422701911949327173391122423909772280946825552310411435702760199360764399308497478072301479071298152396339288438497715480936941062306752042370688864898019806468071747644376547294151267513545703216064563850635186383430275786826467468056691338140897919165578309690032457509848224984596391594100927256132815337410583216329450244047197228485152112045981343147802937772238955083869335551174512436947176059793153449595527200240781137035028019429027369420628504199133254484874741508458160835244083891308563697292726388349743609429306786311063380105040908816771479422923527121346524519989216717975506365794826664208734885563917109228256242140463578310189619956285807404740011141322839097807584297142885489884019695027079605027948800095707933878155383055908323219206912728481137245548684228013936632621648054014499709797398971214947457729845933026862280170649344724229985144617724447969640214817190487189756544408196812366632011233537591632825632286137560342751667419692710096734251760439332999238435852164922263861698061211415159580028397818234944729119280421106895681618185804303641867475316214346558372627076400097020241760397782403350860204581919319616655370489093664730753317340289763902113273761713832303738157214975029167140922002077913770271141291388888947748622179759663728277976479817312724795264000825395698122056639560382808950540907340742184128069604425393619880038712824235917986902478924294835329570381553303952079177375429568441249531267225209262931087269282890701803311415921498090243943843733208036874555065347194749598397922701899788600010898486845401396365624074275016011665914347272886019501430683116083594182980855524285963792432871409050511983625175812927390010731093508748913671774729949687121405419269120933716061908705929465759754949797809752589964408489485090351675100211969852128545053898384855686913262157020970635407854331440680027814699705824410250760859467929960057121159883882657689205942273151540499953031214163709139289911980261619104930008408991150402712628786383822567053299707190550889124963669947237361085392370511855334374562351763552310973802669854709587837381786571974993005186241105472796746033514607675945651109355387393614189093920561693639815347161114943664732884230944888092022928822286484626118781901307583303891948456757365056404841233791165961418477919314374997260399344143360557913474737498754942551974414493370328050518877556413706059213405757235165435287238241453426281955411492175102759575607639537455126382580604402767025484744156127372750594421097808094417474781263896368828248190878414744998606094370741839519282170408672243913977038325389451246963064972117835564334670236613243117411823050276031537140387610640206990247755094992858233251567048011705745063630796667284302027105798498307791483319743306520531194810801861232734552288948842165926679002556304644104634986142633233362075126301531806729026369557856048128889906955865310396799732527571726537766901993640984022564006357928963609607628560740412775723690660952007123351994013711786843884346169140820876650791959767914585847922157104591274676223269724740236041492115150838191769646190291616746232496973613626920427186418996085054198510923641202816248329455175495017218450940332698315801495547189571147256371511655187939308505527153363855938861484787806633030620714858834637628005312360080396376179118725274299795417897103671177974106541663265499687998879150950576946555376349967214851393604231755580731027314368609980573700199246227951622576754700584796838695151522357053627447262441420322784268212222753822515946847155290774965664491316118285204108773075734978339857770698669344147310974023000472236179822474790046570592401280751720823862530671648875696445631414193077778997911847561332241543210419851962227941174228296465979014544847926933000018014777708831759708194729585298780619488450100340789780516076381008175799726559445225348973645752113959278845864679765895032905388322375657120088600496815393585279814085541910839740056081001998534718688619026384208094045339307712123570581131128335297754444329337749166414992864387329855749211357621645033895593313072634793759809230622909777679058559219389002059863798455975445300219404659750064918961410410522852602437632025568290772133290576765746473974867239742594169129313289470470690497693361842229761203497136553872655671073869394004920436494502591049885030670336441267835904331655546766553919606612689847964453739060563148855326755682524707056738755326613849997739757880942179828394747440429693557065658754881957107588932428122750864455897431001454341463829660884174891336182129831928318752893659165022239604803875650092062755634177796175618865388829173145147653943173383036387838363412996898091706235441559880834077786250900487712517054310794809264681624387817262173709187893673825294183957075141008552260416518813518341155388095174738065377705849808094725993935583909723026075041221805322373757258833801512615945168938373052469171415329866855371666643242589340114034189266240343046932246561540590309029808246036248908111236969708508677461735285455440000441539985552415211223298142585167927862731354407219434688061804512470864117571495277429771567446118965021011846311145126472035773846532132810445008208743517716692842655331476012813864507363375076684024989213225912227365224755973297488360022824857796264235907037180003603144424327552274558603835547606068736894964679361312744039553373975715001802490846803451052726309349450985123486782855351229328157644489018961065065212708118819132609371675837569283191669486102160593671436199507112946431020710717730946818601652962841104501034874446260831695859695067981333066662119362333472338114296339392409897491186928165501043311500218172482316723004954402413358911315599947235687220155482886868991621934570295054831676179498905366645897776138118186160820074270727601212420081757508111445289989136839138262562155942547586185315321028105799454181541350119206133603764043942080292598024692681311960419289120077102990876912872148835034861491753361154040560013973358269614167736697348956273723238726186945100774074842929767292476004216403311515733041256727894344053233283384866642086067421397960754965795773170539465029355352177261391024395128895646760195755837440407061448994125000131241969337989714802545196202740219458194581009732059280875268481377314702254529571731655982373352870782564285594169320514758865580009210445967735468253788062553833635203496576963388062242627756661144203246242654850696830571638046829274986323352301254290780461366533861189091964702132910014491300692978655077586893104203200191270817539910546699971160151941486463211407024151689304903026330344662502640354727509799356506353188457335059260513864537276818345005895213139744151223631231117907163681626904976252211252555792117676100616695804281819970316052982187243943634656980868210234013522509806347663003905700701068251743139315725951054196091155809337844538209479087630927175237386994241752257062079026085272635593637081932687937951629602599099483254079752872759433592984611739240021104766808985294955965789137191906832256946429415695984739677137402151092967097165200525041903383129264711524565119134723829236750460172786610348251472939934895163672301426454630908462246909644715559531719148681782667553863357558262716207098969036615037340341256319732145309763154825411428060873902509867191690128790904300722619637429207405728650148908805313432174194425216198218110555634437811513185764032445321302265540468320940533400741590838425559121754511041677262981964341051428094364556747949109408571065037752187419193013589307408579389193395182780771409357971223449986857211359481387768335673904075914021341866682212865408718089548870696281568136022223140168167690728058598334276970763897701280399063752551466176511733833771464615048392116356128178717222128069505015043401134973557459844513744504230728486897195854769442688796657828601004595896382637408983569994002296353593425032097712117810860336613159359470237587328582655132336925116317942144076600311499571591479671877592133786674923629671642123810005099026551779550540835491210139182346644274490366331237625278808176352169455789147764404742623968605332668525253081570389829641420162181677582009695757708152995559120451254373644319303248338342304648144596173523731854562938549276452836296795363974257785327379243857508619969274694986253352188508588922375231906026539253555493632922231741051530441545639036631576692299287448659678230447101422409629132152482290037015001506223174736197716764390434536530595135629239555369246380952825156655933103582248044984185021286388522149289161296730290872628411487141218351192534293099275564410975281374640410461005800667060871158708105774561444343175721666103164907062222849568348581185104554024648992067447932824731709757905476594018298952977421688710195122076461362603535178459518400808529278447339880190743059245968464187080356500771493121051355192947915947318975488078060538876733265404638578275238482210106886842332665902829963936413918835016567668267017927144396071694776387767264944425711240476479849872488178659949384610115247800514877374067469917481486855258285419142779729092105676244491692355629224051088107037050020602621292807662419044232467562330115813719184370291465759986363564128210260579235103770821440828897756494645229049866730293019520194231906770666287258400909089204988371633736479083119625837585030163068689435747214010793551446746508710616831382858701057691848614471266547371054308323903396698523458844851089685093138272284105318061551280711624896671503357143595591139839838355809094417315092242627146330133780491901636890538232316338952803514238860653046504349548295768783128355335857224272122900584169116238442609884701413238741429318580722055079513626152707080922099138163164570959902469425625514707295212955932365113578016820717485129393665170839089458933948705573172676600931811545109109276491221391341678352932893420630097234660589637312928151658966400518834300362303181772562210589788460817743090455933533964538456346030660280608189541342434537623476032578983995234435584381825047117108792690909948590062200388464259292027150092501114171941045810468715363101270572066942994160490279896560661454668350750689659326157669036458645179650546088507146953841806842244341789025887712728079569998729234386221077435734887424583703495108906538950945372309458731730583030647011733318929089693517622676605936176688451662104439333829651886214510617209236519162885281677147673431351609792053169197595629322620507741561243228607665220858095086544680573932754222502384238916131653876029640674550645135826006111404491568846124803074242109949530702166531426761210557245236512589441582704102714708133829832239742010172254072957604135198524622278416453307012093333593259801566295030743759216642246069213742151901333675733822833745068005574220389819752169467099858880081182599438827681102668959064822749312350503153657391083392671813265124761163649681445653678688873956557734077975526732552946585412942377133705896357572409695121805486133477687379675437765407724829256994341661870615397625549957539794900345566522621505622766306107521484565337857536666443909455456046970074559647095562266821280232721885070826011130439665944373311518345593738437095229593815889107046442415745007392666344046822842083054827167405447807403417389697926625593896414595314277451749328632991607690900471944380146694248095650362741923787728867491099159945512872061100485187241178544885616552808738020553280454336691701077209034043355884856159033946791112597052676564577566769789371002640966529988166158231618024494178900226161329147161856859255703262652810586544036988453997150554057725337394784605325942474063948053026090227680157047100273299740861308377005746832197877182474758761431185357317709763905913604729094384750507258352190546481103800058433373605265817296779532817011475949992047575957695244442884284975960978974945305493591883999491332176084755329623956867264457673985415952037558283984914510496753525445241105334104058511798180489881189095446830364708996917370270764884766646674937421573662826503581072367963809689864675554269971419129656239568816637551079726731249010344940243313332984873156589126210657879750773109690478904591076731469570799048019979135297095283947243622555012500365411773056344447621436850579693153729612410438311852572589571747875412133066770993060818389892672162150550440736951237602726170409039888938422636231747585709626916749785286102864167604172682628097347355018539449645356493913971175649422715711310167214015885283905479258246939649826442590038987431105399452732361774758308966455025511772455997825065577692175611264315918916730229498806647912082337484825395069892483326324929606470877401163437784732533666945525641127383081123055601897171403058907097971289338305703489242389437015707412312761161586266902343987739713371939744218035738931354680267595927228779204536402610475680537082171077297103616449165782015002961772816198108278943289231077229582487423211708358553599967776067104160114470549346510566992394951984179175425555329280467250143969201265475842448486064983506531567403313948474918672213258835424903718168798209813248976586661516684208726446103194765964906421015095761156904980772023904573035852890757680682114046468065201373700799879675222453895756299485794398551110677294849987042612378526634803280564497312219452122771059684882950618650162769943069147281042061966743734359233926795696238713200529338070035701961909058414187821902529891129738612990593226953697986730344770171148772264386382248790625033612855335600289541711210030913177372990455623285847833905916542829228232469119412810421599197373491645455126156442150288581336487676108504817366359792908364994665017869312886715347482683537576390120235748424877319326904770377259923597006557501802843859694852800185854099702337318466423841829893052609820491176789666202946785763824861315457223174627416273751990779768432902911493099996895850611846292089522186642429403604332441547833852644778329489650997552492119390711779823886946562394171365508980854768273489093421253640386996088079095621607604821390422092581705680420414345057238207841150763987042754978671768752711939354558907669472041893354728782773829119930392414081787842961103175697359201984437186450752063760454524293859605280041076581563700654578603657968462976226065195231814013983301553616297883918992939768580709600512990726746737128021768662939578493687131162757806310144102373086057448207861196621530621002134308356041889796506429171438258356354855523934670575329139147998236122622892292037199729622207762061215181304646840321775977393180545007750501965754244174324522377139476022764062107377509047899068493654785969913033173449407588453022761243323853836029763270503492298478029641799460096743175340280081793133647850009885472433729724220380732168341234303737444446459185198269884345723931522795543837983622932420357372269866456130427604052909246383611144452460576294888324582047710492983739592552998082336502249677042635316997686571794436667059715319911626003689543730637663827498666653403438424202493438357749988651037307762523250012717729310295910431305976881149725781996815625434545103531228403495048178454843161965338512170688687481043905549632507875206311378976796524352651508195370386520117176439490986290297676482022716072170000641895468697360258769840332602608178486906731178080224672201997197226546303883529972680368325769395964791477945582253236330070919037439855507089202011330269633755779578387230546736799093757148199425689251575929737997421403396787378543863664933922233981878526025988321809411449362179285929486691742234679098614443353561543531517314258462518226599014366168907658985678724009769123335272134210912554626686467328618607290140716780312690677393285142093124590924159871228448787299045525286120152616298943023767244028500900297506275727498495019152472927299256435869260141498484869931642572214770101375370286337205464305767625111246713242600557897261551454018142959866920891077139231735148802158711891422594561035943087398060887319666294856246951191023791691729550786881065376670668118240279549812850451768151281482000618153761473743799976231483247468646135238781943807594515847186702477625271037746970778855683622794815592093334013657160074279432466214986306448836670134047698890888339921051425234545150891067588605603760412845074367549170209607524602554066684931356490180806879189463702302755777331342555049630087597170470726209793470471579510834777178179126670433817523664372756489357114975138790125063218724905085764807003651572306885515994755458779586366371234951513064935410604833488269576218262505325329528763718573834039216862184840438373009343015883024809790380038789237750824489933307727910940312691608832088882358778372406539792801104126301930723488001554481479552094423859537739861558362527510970426349108149830447081440188171194337375488725632691747877277615356855364035925101464643806442903934438279839197227070459767741684220950779585950682411585423199586650730877153570379496105221783093225637823363970881313577705971171573123642984224980612564124515111268456575487444758746624099762099387885809531595038695745408219074057594697177570396757230467753631043562172774477991603257439944471314049937614548506149094198118379749592887683078101405996676674574768829743932331698140918744160636294270139859293536496426169088882942524225223718180184679997105926496143270557591218953272373609298046427208728096779349406745974168698496560733982517205239519451660203887205678416699193049881347513282640593767658848291691826332893307379634468573594622239133463934421687765734724870853163193309139153074266284432320238739237897054322515433844344972583449194378242149369881366614439159865511351828705564859107727173029618341695601083222681051696428123555900685221226324714495743080423006451804063064179237578319776260007771485773923669271962059545057152735668746172053559293581836979881334371095567394013535553638921957726251142154790260028384921529626225800686399585620552340492978143882598915131680297086005244125987916553266223124062717851969733006332842214302974590068799383513174610026188544507269564685042582052718755730040741646612415719538220616253789043938693900770238911297842545942228745531294601642738422767669301356444167749140823451839741770646881861284645712520057342773237511599472138183863530176061288892804612522287949315070846223422222502635078450175587245754683235398995695271096500634433211733127967019627405058368309231055183922554253067903767592447201703498196486954319114461965664554976719076526993769862110501346109540293557948115473499270818842730239368318859198358179986977235853071399228626084136291130940052423337553768383024687312916228597517742283903429138802025358832771075313761232059959747262667954600670345066515694274702485281254582898010268393047424031522817317739010281184748497423046854026737153084399161822291837377112124856974470135167783759092282658162126172807300294688261002755842982872293246535473548507570452454145157824763870038514409325146713755640025481263101246671826579062162006596969736997519365579093938897297131692805095960268826629686132541342763703710521538476882883395973671305202339266513569028360621575047400123245482462387058189702358672855577889590872842809650022060270624251605701935333973030693461916568227964274483657795218046853454626241671884422620160689997532101074280537556848068973803051323877120663477557395449991441313809877580211407048699885314990395797232214528857172360416110035659598037332369839159281425203854032751683703679305834159739416834353773677587148182618912781491059412956147441191295917449731901142581965227190916338419697731684004849099257492965961692386760982981224833727834812665101177100149708886230483461797855802448691614975793606652492307381009402421551549662387516228963736897935431499362797876445561098354930906396191131075342774743129359832181107455409723728458310190527107924942426631910545765511613235784981891745861376302834294374048887752467446884855416212979057371310260871909664543348322842264330885245263685922024957648101440550530212763041308479798435738718711885639908781959785746194180107733254030747176675835630867315257269585312828751384646622046530457941393972338042967504589420677950271146062927666536863522509363261272043737031009713765763460537748870177670592160560507567933087246179496250841614401969889702355644260790059326927327077636515140570640652863272233744849096566624661897794610078191864130180754506891089369923940512001293380014427848831228360867146101351983689853084898517461878499164276298815871354400411171245945706474315581482732946964327285279913549435477614335629544934769776707393055478152605210592638908180688967774838889690568252314415079653124383578096524611509745078031441962703043954838659811870299617440804826846763964158803826174032692386083410862724715116439768330027711822812955842075275937513936329348066447293906146898203591813686321476966328339823287495684386835689763735736026353285509894096541910502864702668656287887371557176407175019227634038679757854653607046821667104434679312939780388204969172645900076970459597488706541480956285568730825584308024466183917065298869666685522847529236351179054177688303359003814087389720869716803051261321353224695515911003490698023702103574078326298143693487166072857241000231311033599598004022270664771019437979444736354612870723283661745403026462324652875582643639680248495493800089870866662751280293012619599320631119707300138549778684905400978520458382757767484996562912409312848034635883755689554544320661302231025207691808272814581863482859429555273020593768519421150778336338445097462790355626898880187055064790059380941747043600470648073141894716557667240033887569220710175097344419877222429046737712962981773496427731154234323265298043757221735249046864356994125915987491907847829089364109254283933952199668593429630724434911094381375923818798490077570743140070923828666630612053375830012132597012501296164282781641888902309809089182397869940504881360934302911188634576865421453694599840261478549068913018127352987881075972167066764291901194800867600425338071423295780964628328374247260469742336742119410813249178009459451925381996376866226865956617328772557742834888381153051693417409238435427119218433839361017958167419378067613140776154317236460906418298416211712439880948011779267367440165000210853677685814808042302095453817111142289937918678293324287818599859129311936999491212146745635766387663196791644593870826319939699823507286778426885546702212953816300237475477299801139942782414802523483609441317163940344995213583371732128629117427070143589328481974757699761931134653980708327784498399934691515590464604346748361371387756416172559109487625488202879178070435234713072876375664128244581173262201923211081798401735542525627151379279025257922646409807734188407435600542595238866247261104685425767815488237355527867171804862102177439444983065154252541769254398055560792291591897997814092383548070439045910812860794490255546135032324833750825522739579175301439815344071102217831538049668954011102527467980019630979707896949347644840692182648395898793762011404810978111740355812029477159344027752712136637959468821360667071790747952787563419420260440759476553455006525990564245587923026657099045285035280787888729897692987649425308001912379681356481023100895418825558236104600325954417857085667610239786553128045806721483692702362166356124084860046374414246724160145850828220681598968974982800232549396358863458675131330391838813121767316878679367063572144722386098459652723955278919630748193924222555939998761899859698438626526428176934286042711685134221350217043662146759873948360874004868454582010723651372146314173709959667468055372317757376468313652719858970072949731077444633190328235620093173733072014034107247141625813245638000292202909418454976179750382376106770035264662477185249815007368386813656943315573054767297145362835561137325558764740681691321428603534385023838224195862129170037482509144586514018983149644240165800415252489835459672897367740368304572589133467735166150393167427388634513441254538888035194377645618731943197713444607129463919269943294153881971022153993716842045629697014291539384159191994627203663422372794973223881884047005560895879864300846420901098733989427019017034088560869726036242091501413297306314433149920090286597843119924277950506391219532488907944308377243764263573750321577380706773909651931244833643409462039845908511733387042968848577029421019183340011289674172272305280471398569821687394302177807023716262925185799944131136617351972114946667202914838641410057967241561555875960346012733275727142751515700868034434668974859063267629975493082935562162857013860442917159952454858278090178775015445818855900194475424155030580010509992863718341372847752632565734765061871968850653873158722020258092695171157979486080870309511953311123112021703687750485376820999642938308501849257858767320679873660344119519189660035884259062163646199606059841958602555033273515913616737150459694942723604565339043206981456829450226760556202233552978514264092357912333564771580898679722683203233642509848046319553948651640700591325505641969283909997254803558976675383251428469056813704997948501053142385586701406131642205979363754398690030856620734154011220692421558136195914747160787196531286630192476904992067040757525726706688720052635604678585980561928342263921101091784483502969667096737423193812873030739667459928458169192383603692173696464880992125694718937528386947632905890850239098251585026639187940699047406832991534200305006955860356739015860629116955015029187061611495935287237434272602533151856529864994862948997306455158098232394931979499801008737908317678662206915100805485356980162951680005218769633372851763353894560346377724353364390653874485290897811509613460841944887744746541580434366242104294071516395811349527718455992000522991761748986277008638652752666998561839512597946935308013316979355681764770513334661949425276025616210654493567208209641370677451037215935104208972502193188665492764901543334763164979936310409697549438816823218735134688329377030300375852198063643134001742495090237206803481472090121155042017350523020880592198811587603536552525800841864346503409034987113594635840846304658256526075879292659100512821852370759006304461198624280037050241038793378138666728780507344274269538057453933006763697416699595987723319014082702066598483227696259253330649204508519213220330171828961123279809510915880946463768784007532268343662198234385676719220954689171261106038697730581018108303582702743003339600328582420581015351174439165497481773019510982814912403208467369360412183481090865567799433124045414976539130321163997368321811507286238385933613856642994757419431480280235862095111164375236815718005118115483657923857143377510582044584432733214962608984488728996881811215032684343513991719674420488303876725342623297516967453785714638556317692141640525820314696085676224597206630954388763481240113971475477076007737440300241601703028942397856655084048212838548431621276233766652829831617814187556153903684663647258046548724700150857143884485048616943778366195661233592167961892887017631265484722036804980638415124781679368273057794337886417562362179231092193938488730712865045450970812042389365447800120151378001035521532429336813012687645464607476217217092487061201530612211858797933998021263520473361348716150213422465665602008641968335118123982655623049713610466547720307433052826988485093214701586923235214363829063573374795730916256451495963577399511580088982141814359005851887587691408176217034490739634348143084885942283115477160815147259516454522709847677477882062238365770886127254324208063415745751000065827843662918229975447747496997243999535960871448401257655423310172595366900126580466716922838397721327295788555165103774194409447062858506341552802104398773019696291452300764442961219517070628680392695322011079545282584120612475557427608923651479607742065270958080233078216417620168486044174214504651144972004497070656186865038656095631693334637952131994068232891648276776308347559725082368919154194960893929832844252940879174601652133673293120455172437789660074820039913554902879906084796605698046403872798874768197748637196796312771154802313558209846716323035610423922107315059170846085897278283177667408315071492747154231023944547826862784312856324001562215078431684366322387516242749195374583749598225050984018510427358574705543249077254198680020104266881376659564627044278752208363792632284971983887773787381957703792959019883047545704833224821414639197491905590109698868215298997436644390882760934605875841497525601689301017766949125357488568344797689666173823200393505171586322433835568416421756753504450927249402143465676246713734873611580539554370797242250203058160651426572686337398030557422027297558954909681799729532135799682863128974008175797860229462295409890613412258345529680871873079380069541584407260295730403548936815378405272016112465801626463566980129963968212315115927382821737637795038050536075857885456766211316378094281716015943633934320365055911559349447898131638219803334510351427524986903233033651577830695023591895704245232557678792653954404397870340917909274605145128645618709560959575748411088807658005944445397396376685945348991633313963548655472121692701624085964730324704802264624430636125868356647762574957581306180806312126952590365966131545013332310861718275720703237108501938537521642563091918687152896244969877188951811660079323343498684810820711153494606896538985234361622826931464693642323241926452174218061124665630126192815183413388740223412232149471061742849042748062811925199012068100047273538394588206142354506993460765305490486759512901672788120033024072568011877332723706345604305826596776225892381043211336673175868416337887963661030664660609324462618276291406888898575981085805573323671871275774585381353572500418886362857546369402163882780816759332310363368592567100051112058958512627059008016985967073128386918906020463359695583537706607397476718150001979583040279593453214242336848972646284756451426853157166934869058318006481100134146198764554061688487575823723103667939036369205653057437550933654716339806000166686726381620897927003680345977500766179932163134121774557507043448587533659068880182165269570106709877563407315518246265715529646041331077547621789813932971345169591192352624417784591844612496872385350586620085552227780059815005010204773493898988661731962006734686043645230153089194298792624486473364512510035836882005667765245991564134132745886684391489275639074253179187415353794837079457682900213981810083086334577888782851824080339613544309430713792718662283675941029045375866382860737445537916585419429362642295042846499617837974016420885453163613445871692924367283669748165652105049895294164229399356301464804870009312719671793747624303566286573959299160759058715387274368575005150940063663535547907763419623712236292166893507353462452909366895323558133795623393321963263458407611087392724388549347885669266971043846342654610080641920689334512711441329163765288174172443989863915981070805976217849346586136191260486849787834108245036020800871961666182626374040257917123954050768113879874100576096718650343311441067725347811013414621836726321478372857102832076224425092412671651963315724312685507663678376926937981715286358321188446857838311980507701659890611850732971929166288323128289012814910549834499199729851513646467365956021688383519558333085565083550574687938303640162950477935837142494865555389781417577150110975095524425463617916468367373072404459134031290237840900495389931646467866843940506709363484100082449109373061749634004876895316335876934602074563663589087011756853663192341096246385098708990347679533084983549447959555114131631868786762553823892121647506882535805288494209769528292397545916139890364893681172541322671466674362868695605360948905198730974210589080543902669660879626871133140222051264880244956745961395006399930162282406228951744024177874708562960879426554154184937469202170850645415976568781869533384743914385913568213552653618146127082428730549317989944642761824414632082720834179945212181063454789183211390491948544056219222684544414195790183894535729991110656583237859488078018646206223634349294268611461404780546888888226269169494298646868729588704735896631093691992733042096972009929251221834481807102120505333656326335543000216616088354554328029004101808512787201463152119953621621833442502780974671988785850286998612430932387459875249546437821639763830608453587453917897624362459539833117839973552457486078618700707484381820246804974910114210865772116968844604115650926477269093860756618337520113109526852095926557175517952205737916121042359685267062358645748352064777419028043854557144799754475641451101952312920465806363613789186335542997237872810979556306441219802984862632916865568504772634043060908893709221888146818369144081349532972766226427292690438417358628699432290928208124954171316460232625247941849109168943498379539455867985370755595037971682161407417775777741294430415923649103099111186198410046725144157830608721145909279788317268278097672932075142257280054815395403572804794200058376980754221586244660593935759854890763804330951432545741537892813413094842646654760205322990017624780078274707483603195955630145167055426210993899736721864995810544544984439893423204338446021195048677102986444480955193521062954361755861847779684582123394654868874254641106193068391270319432889475403696691022155295313111003647074134624123712952321997547293006010274859070963451468547290412180304690525733937039630110973672448263046593118246512731720012361988716504541925642469148491498408545722736852971841607905778849580860092694388659046025213531842265678960478476241098793764907898360236852740894275713976141916060038562676796037019429043699849479041639942432474945288951915600503565825700233388336281180745414249234216412287377157096943887658071522339329550991216947369404062799844248160607532236513819587695808123859764617345444068602607308218071001427741558812647757943867065278857833765550215805999807347603283962103616479848296577552498335236114636368891631057833814055470967542070268677597306326131377298073811542992395518755402857084576102498264180435059999706121058869481274527922436922656285072092750866220370490981450382574712331298904404729587626869056865407310322195271587252392313183015662888356969201370988654907241205362168976266744867540371501133705274297171161232346497094620704228349019237847746301523947176383730810935265932799050246359408967366699246354574776976551356454173297339617579457715360509457727575453532099556759425300474439197288162323080808685704955490772579705772819394917757633119895265099497678743484043890342392179755157477414750791710746578821243490249544897027885568918764523721014989524321995622912543792849673038251454336417702695688776648563799864700862256660580100966299249653203753005696130040192729009328250601141015803388205531474409728983398727662090891097278989775783456703125670767795829367440695790176397443726442471197615986953066214341601936427696610282421768049387421349414021943174310955629854731459190773719405689856068236330674858644391350701780730688473915973849085037734701059491246183363700305499051758960064713492254080740789414331569553044227276504529930659482716727078257542213812435668860869670861312036739966353539537276996269701173759662569116001670972160120631481759883265764056226266580135890341408680067086931020627750009176335522930258749526531772458285114452906224678048616158566511040988607289671963136967384401734910990736824134149596304906758436754646480401523211799939164054566174733729719851573170044016583559131875188448381407696814315750032785860335349921435292298658627680297840530850523950207963877359288117935051010031235807260151615385685973672177263696504303824551154154748622590748622856145199187554366132031862427138452262222117022744607875788183606519075882801514122557990937945569186738771748004987494351612377079265303525551489176562943044007809430271139765801958027733521461830076726557814343938962019936803704494802139217464557559637269563045054697732547032894052302755761561210027419141780560313128846052949873320733960323320296888646254498692687023504130912693225473527084883496045239960797048965560671945754576239189376506129521429380734182621706838590970142842075484617039692815644317862004896326205665201198578949164872236877791392454933797084658352792747278291106256937062939396314467875859662590677105671017550975788746819879107281616311051410654824986381061624805149742048188493641384642774257293397275070129045402667269886733571333690968740577673288291846010067938372590947753702900443344799575770211402664439733856581582790791771141484162035201481265647633338161205262616412670760596610878852350041567373922522157770962220847282815683938573654107954694052338850539770034605592530561562809111103777193772101602182111956528598061965011020336624820825150448046658136897780099836144586072155417609853963972743182195349491985618677060858676849764954881016803187722679455918200118566367679213304447764938030488959345291569582791114929331138185954469801183501038172910226403823783283263424281876606728346062296031460322947338999786847418164636534014187760459269233080034222273723687624472690844152021104654846456430859659991180257537896995376168151494270182372245806189283913500699957020112082783024549437731807560160953506091116408535163904843061044280394666868165534331949106746895461831998826939401181691002570184341811026499221140193745460363131393709957813317594132639036490771934077441726318158417059925559989636632302098433294453681632086911897064227625753216311886047035009159700385594237540606621238993110833747836420068447391235344282700037644937128838631448296343080804906082523476655369076833668637839961519885879662262844916864804099479604865872676061073704876887959633450460795677297024097993720499101693751169533233423395260185356427642863600765373395975180350146049262935249422236003096157129203800557415916538704894982413798147133190058193079055525961261102980156496059851335403708674204341423365726597787383002118481659737677837718397184180318089455856913389986075714479813974962301321078139893796254815627673954880904156183096376115613460636046543721205415256570748389118334116602030982043650901349035411964645144904849624983826094833421559587356685390653693780958037064804653052214294487379177557413334786711213911803259352544789384420022209961979238352449879001176570293454067527236742115197417858917428993916968805026298555327699894008560872515018270254511504219297251885753496677186445893995063214648679446782136295846063491000113457547776079183767464585894770960073266748263347710361633198486575266094599143249748831315032715587211722612793598499549708357349898673769393116638263082179546253647517982687321842435773416547242962480640746751064448629495606802719055110933812792682867508976299945411240773235069796695261158295993662009453591189111438556115250860259233031452666310745983092902404432674378179543042830628934301976107955674066822862653260634370355083539214491477485754230117289497816795097543928676310401592497819118980381977159961335160955586076635243620340530745866854635886313714874515327390428273515837361881770123031306243248561577831957657562256317011665225982172515570399200882130582925525048008343003723974731102994017646233967691706786288557863347292558358150862296621405929712295043547060062788701594007499182264653773627875548475103566311057730033231207161170097190158728534799659352264432030543442609856358995655910435288397389052681158467661129346709266157776199783514256486583045710199339277104089004410558141064485345549794783031147175230667877605761606663973609202809600188015383288197105802273021381298110258426796912099800593886519457740316413695270706491993653765571440462387013460894572295819618402855152190181635709124776977403106679240845628807683348377301850881129018575300207944911438504515001481101465395033499344237919102321100456926382617666670986716070827384306525502682439818180342554633099772079109619084169080519080604514688062542491067600821878416149893257487791870139254899232239580135989846621616551873165173656407083628672613150248891546895399758535392934302739139468816619062872961147177414619164653970440803332665234632095974368166172811055483281733952119450213583583801884280041712826478364042125720873347951897659169437201291279200246090666412297384280889737915096871591920322690067364638658855261181207760867336227588360138959742478936926982517421778431637101963207385943975709837988708258129562931445909802585460890017353078533854609739293558357009019203350245523003871907067103078439924963315108809411406751477851426170454833947241472797821649259274737297220113371536283606638714276451341712752027216371444464430298992609774367846036519086368468477103697410140726491192577707242430851508881710650056487981272456149170196784103460861720198705103657457554495879413579146713808211492609677442973983009105311832047290383716206553675249542139951050348697180345004535081437903103364040203296352514706785291283495067311421539820396378405427389975746397364538122772249580133077084195216706286907668930405179020684384420821433919235951842320046499767939851097584577889280490771468351648531298885742417503898011637300760692627148768090227328603242628906275704794135875461115765669318343508725770530293613223103588000311509394943509617095932959800443020826355685415730196675831915180329423941281331520193527322661727207806944163902082062841728576802014054681239043008542696176919742294912319087307377651659230874830046743499521029511860096489699967919295634530052107097278795751474748018007874816125166176337719691586393976622124971082786125903538490798950838643826526740325409559126379125038197230962757173878270065356614091844048707969782322492594403284238166381921293563488099980782373986268029848588570969747161378388863715498116833036693170998019169579910795851157601813238659619747903524504777061660463632085886048093464363959097790439122965761327881032086041266798347205815182058472429092451549261556243748216859409352284615045589837175085329938537111483818750525881054653353437600710453727951468051581955031315227319202835862651128792402873871171829569853469745242454435682660848827188050963232650054946128699592088927428474148903649899555335181274492264665056908224920034634814734280266627295443652077706577998052173178882006281414981964478137653885434939716766338810439978921669311070024573028851201753029779049615592620893059756316030518465573633287196316999378186889298871712074087991119861791373582371569726547333542344014850851890519028611751241606858168028969004616911269776259250526031889202706967527344395849472158857842554911697755654507991598724226815885882794477231583860148982400492061070190582944108060393816622108260148460697756055391145496591976469303736657297652160227513690859386244831325098936634032888715080157193066875677893067157014005444611275407067361896505255052419702055625791855074080880168322164558715825937890725503587524875687490409688824327548833611018577945988236708341860666094741032571352376674755233226127662291748609241675591857663608929574454400625524986062036163176784186727580453591207911389678551306633594348387327844546041962174447213807812237496720221909409022431702482100068784441443568650163886233406596703352822038890473646952609311096152847859871560804268079585724341543580705953759398250765489837420658846353579146355453931478471061322866816613655321783724853897788484861206038554088089203496649433365428936151639256944907276309493103919983762573317508117768670077124592818288340547444381976910074772600836744772134088698232025135240567861555251443201654858377407059624896326114655483928474224497980029833328221794034648808012438723366294801856383894173820877148349238895931809589801897261717718051626172600377056012242211814114652928166923771674663087090816265115935010043505831517661786423481700623380352203709555124554047209671397041181760538033063159749202572092951836315326407620553809853834216699359543035098879806524663690809620217040399004519352231298895635464129949115706720218227879663189920358967488498497475009720745334959543598096754222954456337858445751062242020908388021276831078557940253831963530645310530029061907024956997007336441502092101007514895240402375064399992973050285414552397494316005189787655773229456567614796322293496627784748811180789832522321328812055470044840994547432159618346779892220111296606851723370784395964016009578135464461018889277815174487255724037885145538817202059381464890510894609616619039478923363243103650497684254029004689407113647390394069781099665050027754883199065268103389465076194595029771080504108867257041582785910676313332001865785483655523099150002797295202473176024724484033451393000547760412128995227248932384838424818627461458771742316992663227034900466587979110032420053136299615535205654028864278233324182532265963107567795426881542204174736418082441626001767197957503343105823689419535861892420556561121513134074636731191110707439858328564886853556875542801779620692489173134185156319354565525355780797811580180751727255968037070822211860593082497868340533131952069068413162986778314475177842677881933911769418302075364709975225144924758670171998035676489050581697627680736674470975755821935598002356478989779103007336025346134569455756889823211517346369602894964846660339050344553652743334007936016281055324865706296422848857102889038605877287209211958020473983295714782448533741845119439416903233545321153655869198225275699569274078286812687231626123097960245532054581229262966709216997794645375774349122584374643220353399834286094646230653811780809469467942682778043367653985234718520692867233389402502463943410944356351180772030281004101544183002898332563920607509547379774116551826125374707254421805617069008386927059053763590106834099342756728703481105067143220706434894999581145261908027838488437721199214080674001269691081513918573736356837761196761824549463257148990442090320041999322685535648911277341090653167621354899228770460555446123252477834560683656489888205947530525147838706691884925003110675807181774754558359045346966876857698520385869352312854863419282223839928662093112919422711169237696139543392684932582269796673576721980320315038831587540156389255770045290535122988109536714862436018545077097229263671494518848302918795624302983279326184976221829773329983611490257675006041711696735313010421297127309554038149842927112056693127226795787125080053523459071468753943921637691936379039755933587692791382731035406992864423669073198370967492254517640558877280019568705803409993326706086465778196371694101828519146977570121971449303023023157508670349369654970796742962395028349263916137613981657826686820980213249118776647103372179467597264330412257868454067428127841010460655247893394680614546141619660965402974296119414100889359132163758252281250282451926782678767124984403621218390382588884322836740977441581701122100163453591695750375295812392130447248417521310991519489462867980687143344072353909016184037760077298681270184804374539408633047929142102929024721852056826451933904929816887685847832831829663315138646903300389589510257761968590112975301304680887963233447276508856763220903271425235146059014968097438839729816783022675663857582787722841784462940031299481122980391401398617542468278661014625758899085007145194855142148019665806745167293027400644249360072165255026396768102276521076471398015875869228590090026502354587622777440300746730723023978900492852910524495569321623565934045209103861277740433117594880384417132175023959689643559091688167766614134723495616725435001080926137116480565366955260089118409419137518228984238310858374848938694077820666874704487071812878709984866809086644277663293604582825103288353046597306631893756379905237494046634488442601043856535448192031794924185153320348286594189365611372933164060225718722984154754403739527979803290731433962747388981991070257192064354717232021566850528287245261491430635144792107033445083589714971494005992032462294452506398498132555935954769520121481364561354791859582009609338155004029738077812541150734151517359016311853047108506466551831972113817810678939706738847099358141629491382782708241693430266508001200389468926984631335594094346621018513732624906266277564886853792667454324104009791924554294048123756509058006716178100942391285394292508660218370442588320890642469690138188322805238858488234955334955547139654303037876650465419344563401899365384936809002366644991405843420549143309257077784938559957846062191598412959262979782705434917301554602461097435790186104573310818010078638507055743377667083570434249440290824959310116516272130758303979722115124979420933033143043048949858498398026774329744956355402136758849218993726862817774705786094313823573544929161913316254311399726075007327612503535056274921555758813318706838453981746537220070767119359563336992706499782135580106753635416577769613376589078389596168112041090097940790947171472351300174358861178081717242719074834065999852755821570027524128858772668534830860374577156094470788005420347105910023168007318776906519903939887622022173970041841572483572902445647981372563070104007493201932825779705525289051960725337931715914152087781880954833124484984889899075302493345018537446171008152812498543799910870566236646845556697012924659086309931959200633788802280884353395041116151744835634657093323935616636476464946208478350519217781146946080251205599241842451556798854888771643588223378918788305704809425714171965099537016513722226972237419988407226107708301348177878017371229018907008615340544019344754016886438519472693734169168464270457673468762113012164383303812576162632839949197224204206403097134723707107012298987561753908687022913746502934012498487605587388931473156486505742105716654025820263402616069506905214090012351758775125563759057990263196026625131350735413060736358099868883411704535347158491290660742439664290114369132937481194981349400633038920220708260533514635584444722213188087492859521342613668860470255804055391672146716681631929682378066253357708080650107382383014242739454182622455704157346190838377306969771453981714798584822278179662838522667176717492255070244566830939240158961647156690697217239078540188190364255687771772270841902849674256412263526853832004316081034330964143989566943950295894700466546804871960778361843365404128473337291205301341155722620315212303657800374672045330108478889322548715212782160359544377238001144155890520539794302500626935089168221924238044744175781553532109281560963548896212771562200405055823415560655419542000513395761922074887750455364019003229520347173502917338238270766654509317632028240094644140091299661572185755660457112457135505075892675954809298797722894508892287519483570766519840517360676586197805306615581596743337976374108751633286741130570433812075962157048930438723619160564595951105202117346271540541990281772671151155237654427993111250586826604926004315076506505120573805739787237522430294091645267839228277463611078994094138361456731718582688851620872387704522517474352672344894593609569416552417799907174520290696900775628166598624529682659520021684950111738897270257317411689649673785408668247368817458896815472167655300215855178872371804348492551188166151430298439882452206006510349411089233310884326740106301610486389501613809813068205915906385675834712894717693754878649234647399589062110817705780222171582504901896983574257776535201307029683820978298559829171147216633689556403005915572627385800340119503008059379831923015341346875380232311744385977859084118101187206523008009774565738963403067195882350755613610834403688279362052187569387119959614831812202390297713280429883700552627487148419253288657835006550980758242069820682658295390488548687625970220238363233669384214706289206548630323853612320848830771275303927891882406094950130158948300347703457118357206838983443462921536978289617456684001942010545759167686402615534981016413514794921087471604338527056266537043367960510392220426834855749411895393015043170219791922352209003696405664742029086156157647449086005769266792602792899557710360777089693312830107462605364300784236068969517811729663008690934663038113606326453951161250384028272361293908166966738562294514926303210282724564918577348871486905249678432237617815309047307650765829718068669712596086507470300892048063962550243045233667407097545238155043314520345384728111391550060258288086448511525761721253871790223335547449259391915114400405432628480503380670067734225547110505308448406844900736889529639841420867276969027893484933190641665579603928402106489558763480358350926367748956711249106692004262296438004897642368964301095377186059734696416396075491537588037927633465411873345957989670661011528299363521790917694213643124460160607353941436410657556903702501095135894371931167557328151408806600060735986543069937668409765120669332829044723603267615547760237820784320061293464081464104834984941057283673335457126684622338070396428388832427863882991085297899378284893456116192097234353931222553619016994010553268881602588196788742483322357513688806106533893658611864053058771189076637411573092671561127105245285660916088727471217135728322891264239009229639153785213625929674375280858978550686265812958142305166261172182935322271342316717420439566636118864478143631048299386427799170716457227501476610348789884841083700972328207284808405385174232252014581979839441668668382540334207405836361123803168669780350035134909910708785646926926433702060074179556718257617040722690582799488131376838724349400259600274914988415503035310248519482792185026592056475847983209452126979710564872609475448875307621022406845502317814626851846072875112721303609367333097901701803908525989157243111750773758538390053816244618125642612267588691717724771845960058369957835515534947178153485766490040226300242551823157137111457224381392134928924573281190320331861492063304780196904902846962711704496157556279221501107172590358948799289000634460407667464388737270548822201166874435013165422393761086750524425411735649777447450802252153847574807775805650368398237464724791431991546511766922317320841765921924015625267008139882445378041104210204764144172745214081913161684497276859671686103996474111909887293909316035614089008279640009456646934283586388110331460268595017105008634105138331200419593215243248335041156043527632665158717872244639361586915345651478631610442603025300117418454393312763533988265948642419987883828425236105297022546281639350242697097157501809035909605859536982057158399622822241848602923748105259729350557266365597160874670824375759468291917623259006976007489423203810449243761909884840006625594291596958913582488658005070271446888345968297643946483479225239688230274152795670725411769123860895408182763607228805638843879225361446527927131002428294352533408403580010577928037428053778362156309808108102689257520316455896045685149349866717419056892059384755182118439403230950335885652257860461989617963175011063203719178736764606651713370096914599783964192239125011605387838821956742193147273798683630461509606104235706915716606220697918158993852285762590273466062205107580302251245158947511676460478016430090008769692315154743124883920153000890654267072603006800899709670958160762053214932400516946342166339486547630935613598460473213738972691012124322638251537189563907309749271571760455786659752740552112878126409019933012827399907390032917141638599024296839550256391250399846812182042724436708637011902577772807089673565166603117219504422973715944635063721581993307288752135768878236187052389080403930241195764958380828262895832543473024191499618967236999245818135841911519515528407737094303677480514784305957299463269084810112848529086022910563003750202767791908039060615340162531346256286545723202601348480656036562469386257456512098242077084207960128352014464201633894992321332892365923700220716809739437983784173914702755458007436657489476211875211315859995635593378883343187392603849798907671414199941693275923919169813615440909531732856082006869043500469114094034014792114575033329808101520956114067396645550296970002736745598689699526868250196912571027829641294626881728220980712080513735269131923356504020791203466924430919079240751592994309432147067763435643435977592423578224090550710328295698514716334331267172582695540739742745589184586129125358169527087216543712348903772234034995395559321974350732718118976479076607847071272220504259801812695676711400349253341382015822406477169180797135430152763470788777281714092366110539388472295336304871150897540929712818419486802819906763727740050009357782079791971915564841427937490124651282650785595409681438054187573452083869332683026783044827144275990576047363657152538473523071253028219674411809904917070071987280355971641402942904983292443768045334639363423297211532496493467061945719760467451351506993216531601018383469170447973309696580534064990965445559244073041273391805293946075488498705101621935251072255102311977666878648772141767753454531933877655911175291595280527287062612022276864226351209042756732058078899203261795364399025895509252984487598031327363263157315887284437620797721429638044647094387515735407179545454153947135883298869390393733514089529954574721300154363203049175640991727308904840484375117540776141500729298666095837270181065513389332679451001992664645601489676218836093142868248051949483864679239326176378054269936934752767325681791890563367531240577650856570102966942425585506400262197243436459786022109973444154201616568820844698352974705447237050419924733698056605348920669089964564188185012434199268746102297150325008590525302874569737870205478992315653700014405681231710578965797248034488771300492100226989658178038990192358347418590585601612239322931128779076646207084109570063132066308232399037274618407956073051260175096202291573963614398444252207252377822062036116852911239775309297530223920999515278995171292726681234847815794950858634910982518669190917021964601496707618115090881867930129386215094697560268114128771253267652763497588785389322249028849259323322379529174246963865058781809873460697130158831159723773775092479076235456157492855773616455581743433744982242516171207803674557710073705667051347048479966363910327184178285164556164035710877063549141623703820249181194022428196367253487631637361929562857933323849014772389943234011911337336681379712560580207154020454600080935926442880587110323499306652052656753701791991398539795431860261524963115826148119321649551973564845805517017495107586022803902180909188678319805160332716526814361130044573633463726986952493776868864865548637354094000313204400951871549473110130100368764025788074965966049224974486110888428261898866708782188945204286144743821087047592649874732863267126068526073464494740296882315585148570034994927586480524872082133951361954102412380206929234133217224513304879783403973918213939737655519168149306154204994213577232037510109471874515194217854417888361744299884505609805219872578641513557492153312383783758183957827956458035527569944094627488427980471501307330148759141036139758318285064813468379264355600716697638123915493881990384982186857795353062768304436338292695191315819819357903362043242433317882161413346106643911651114084799836026117673851660244435070953747151554078822523967551185566539288148868487530136361728162047546234109300829071008573463912489299971109570441239223039217892128234119551534599107448506068366286054485941685554244624242339844613783859611741904918175728879537162876849854858613189298029412371651046246104686370001070355451618822849007017571099256456080145431601341505592210328226539826206079718486226689107634881506729121515644697888702416145897313605656356377548883349664846175756163327932529541557528672594486316426210481171984965817070060357155206884066173416354993273840567776239760330994084172767625297899408891185944006521664705061427622071897828597197607091749623718716695563454194623386254767952513687148121182262781650753062325645405236643041912912819160605028146126964886478916527501211335150013195761749664850160151579886757400024785390244236657862664474908732357909144994641851363750353717889700133089776010659770880402588275565551237450349924148086450376214679204819017852785780225414004510012232493953177967228748670684380831283016826286949329054340535363647636313350826905256832374166645652253711523288628801276494092280187203089288735692427222643249321058111225212767153965147739137243384450627422826393356689097307740045938154024668169506407541573776369431923786568662595537598324447439895908710099585794857172874553241008061184246818336596735427017115522656160343291717343023040359940346381807716671372358063647841040941771019519797764917302700080893243513266300187139445299116957880357429581270518536349209127680732775020123763807891596818821366924118757320969330207856397756534735875104331083026216833384351849686342085338527742092066015083595998470502326402555408098425490861606778023189940755946548041263410638567016573331268497527318887046837110831707098157026438608726226300828954820595689752449930766399315035995863224675486568907460172293167475931372229331805397733272301533483393561842660154548742316349817636508273837564725083305204889572213005895482137450615640543239632898665881744958953158628831395290389088202099998353609794576066376094621395458627692127041721636604943083069505567470874310011145279760949819574796515778721523288670377698245182143480851611530839133382124824384322292116516002825950445135802072793664523385847479413875280905964395061957524782947793969185402201404852976839818119581806140049994181061175284589064614847209803451405984331016019814557539951202442002772182556698186416984359906554230345060988176033771680702673077151375718929858732943547997457084455379518829125425854419629563214922823893480606385122420261091117518476734177865841810397953165742247213799036799012709286872135176629582913103613380193903869964247111264891203298091462215519010297550760963184948096350239068290887616649222274791333527334954385277765779436890215843105614630961306851616884592445308583849871731120153668912613234977168107667398811246152102729330887421918735446172125841652881197751084592318241430807158027973221224250026533952906048618050165746777100380229513155745379331392404442408557190106723542054438375553663421115608308442501419256338018592723363774826710444513398587388296273649168651386901391255164754042298008174854039947729586237243101369092555999919206989153357973941819573331250158280832149102418856565456182012484419953961563082911342785495194046447976364738377772918544459815599067219034843005137930311502401469457273379088816270419894436510797141689845431151540286214889765864855401838343964244084865186709876543711828679347356490504944663975638794794080395459833436818007270175437637533460150982729959155929749218068150754975925430520603354920388428002587850300804602655809167087590017497338523893039305876177756103140911890766057840363142281014519464346099185517386915177874581174856954349241305560709758086529746745444854258758148638905828085008416345800789709409546314209037122513424165527142423135740933903877188702614090246826251498948238605756154047337239242340371519268213102745477761402468099634760484491256491794622718856858932319108784697834020050228521709464295390291433443072957528256668264467785196436793398563064368386328102771797016036954487828148010960489263846367800900552860301425511754432989223000692996550581770532368740173897379028947671335487520934088207746258914689588131228319106062836239761113533178615117276405374327720186691577492626268395297809693376192397754626234811304441411440194558541484154322212711231191037185734315003624442625052852689955149858254729258490041150314528181588855220431820878204611836511521929546650815346735598212465201814396269530494069684414968652462272844408418605898655739942554069895569364914779505018275855041677049746843814473024187712213944815980594965478352165455727909721558311661587715169465268814496819301407638677955250754268533815668123314261064634917613903933292371881852717573782165458879001407327068388064328064305875448706189633255894310150082895522276295833805277520165295749790832816572591531184702925121501337097738639087691468814709492397953881276070160038819895503597388485234254823430916118170778575334283509431462958168003681299282089923263822533909350293688939372020685561484721608166848992704768353106066558082153295392419726450172898148386489155646737869556390843446357470337331039430204459346858713197217350270105939701872431727887798488470852263148501530864619632284082040454122817096786962781877929388020504073417651625831214238431152374634789853694414051481750460339265529547610905825711584101707877063937534617501391438441399253085966573690413744029000722722325050371534243651779137519703064791691535062427094326998558864921564533318757082601588772421755605875141278266810742319385814827657970330587683690267180319038994365794263126591116937652060234534208909623841349692901750638133889983148965258032939659086936298212435040580633084566169467100572072409020397337664076863351456017948751366465239744677956270631475336966352652483413551131401704089040065698070211409155946982777855632754007178936559652840043492299071135049912061365499198511556053092044768904875527662117539557167791612940464397189938542711105957289158794052276385695712604044007763228347648881735209436152223471770061135160854970254166341384764404813831095037582243062018222658049827713425987336763787503985627786711538259564753933234432507827321264255626574813822749897295828257153611497124358640583505230061972457654833491372344305264942306147397679427703308092741737832307447894000879468896704371786286437013603299652696933142100228767372140005793761846437522917160292993135780462852509028016696043824894613675146931413626710701758226400477084166737199982250877443175175857636498577188814802749789278941953431038360624116385814225361380599590468914298846130610514104840833001504122732695405855154020645628408352386818916575960931371033046897368343823594426485675994787951920805781700434154600406748028244534559113496573047173592773881782107700584841416489608888070164804568111364004275186715526352000152812750314697452394732506274091054534216965312837031552569891248980352656563689881596783222845143043279891640780524929979821013076343832339744418262104149765761422140051757011221651437809047657722426767407271033950839849662177420034548678959875671550168923311866858796104882648810350964170902729016119589145230174556762509155233762691270371012905890122814517480849217280545790960036145592969795227320471176620544637359479900816503775158111958436522277814430767684377234505843521422689628351200241983520770154077982989229888386555577198017145124320055018048801301975055993731238683756223787633339598223269917125032661144781094473474532492804997044804615868163712981510597257324906339062828563308970619104004069782012619213650662480584168065494175972253101749921545226571590762905323405897505426031225830117624047237692379279189442532484077231140414949158522057095149035753672371503532330299835063627453834815212179762216199106210929918642810056276854679534876590812425765380106950776817485271060135258395883604948745329170633272092076233833076976784055552149231516306041776282915477481059703112320665512203708831822291833482569475999261155405272366337245711003667362765281825688599657458716401976887135772254438638101951124371846950601540536514231143414962112207043130340960736387958220657732423552705532002609564223098195466975594037431711954442807336900048817059403315916623849931748199269141117059736884094078197348367239316556553866210583431327422435022732513291233713425470308757478116811146410086461621383462501559971407698558498960958331707049158701457032414533629916242806012972310708306375217107467749385307591902705287707684885743435360440754923574143979404968108951821120837022729767779321675013993894413573481699288234478087743291118295247718140863375108242345935015541375968992409829654749511770554294123309051995589591619159857383648918385765872669245702412762976448631697579642966884528959812082480825118057447784328675228147907820497107698466587892463269502294595010895800046049100464229173426257142264264658271958506956645874625694444075739517553272112580283664541723234862620146512255566703855141663782604086202975585462743813036537636983814607882366632769616634904745036042119253962516175558601525960850850197759775615473037736712972174949279239542608653693656137094549188842632201183934951584967579814249034150809596009265439075303092988751246131768848082208290681963400911225207903427660477571311719203907597478875984227957562424752723363255838079663983017117915667555584227348818373068607184632684980317148851933654807067633576432659987124300468644219241643320466129437546378707208452034662996531354396530644956449938042977544131055921556522851737604514793994258246450787643902931054170746729022326818589849979037338794757913905538547253356969293133665334445279517635630622810493565761884483894513441203027693785654264423906836498947430293379903412033162669152819336506666956730543563336774611814685863178688336317927496267370375927097196397969464876991412358028406471967072730775031134166854421534910610906216104482040382568062583697925662021352028732502264363722372568594589814832864177309229439240315861885412776888751451244849445920616950708506075726349871849784349153598504802540654958458603301922291394479549154905751923677006972042516555343903841325870193857182809225933833323163301422050391329898106203348248949538348619534645394627989071852325503642181701688281293916117157199329663227247269665600939064647003826920135611267067335555587284042844031667825681580434436597507615161951041963758420513725158346857754403945527134075935624568709442279342213217716898803197465548585220650520618655691705642829548931063220756593855994655500169192950666416331991661384322193464454189706960855624238924107641153385551463543074243584700176552059135848201712426871640094423495638992534102620810456053345431546413806030021197873895922160091452939718147777076444856677878044605754272801436752457107818368693219727235958971164900924801031162190887235255329985759293090432826643174878705138858269284702115627193137386565099156412004226068586193647030372639085524879428236267784256796615079868364336398874290322242791310626725176734155824718867793052129317231022869891189801503316874525098863019558931732786782769062741273833091669799483943159088872095601585116158857082773850378648231534470539793087087055905142871693140910888675983765788386989066667792564484264441344283499541832148281498698900461197900016457589330401033222714376998048035437478157850628553547484355815763715579444621707990383345859992588295590812920010940370061913878319863553415031167890988498955052686387154627808763386485929389014519640468237771204621093329908426984737070194945633677169426839460680120274924802524106491199915190415816039455858483634580430562628364555849517954361707020950411661727746368149068681560176252050519968105685028129520064628140708436932292622099064872380962118142980062229694198107902871068248103980889575389537752478224759785477421328832746052633118960939935619702633905785068505683113376890402651383849752959702306384677397921755347414984748416710068843149615763213122640668595779887779461008221256787642738890601572724176491695629394600113123287547121659443111662516575841728822116314439930070760836236771262986319174392450351369588499894126109776901608867841095148582366560778977978356674043566943012425445577437058336440845669041317552813304309989783583885084276533906727824593522025813844004229436506331113843331534075474710391626511089455800748787995226726636008975760678410591459365234009526836374688393977887243827923446684848042267474132568108526220438989847838305628651506058034178554882748222625014735456945657089791022105968317991533656100636533170060512572176668169624060476498768566215938172175433234409610400798889132995516142808265248598654814744809722952010871998573875804049652979039821609611142761077510217931454902317885651688662052354229594910242743368521107860506673823894278787305870875548038183749120616920407978108493485941691967259402341447159112807819195538952202855950524880674052224288923294956667998677708253846514333605622111793449175930572543170519393725216183194255989048437745596365576883676540563541827535669274804393127667706605856677508587060461981331358468074125412532174605593489063735884320166161245137366475584696436581824554553862050038390004603216354407615992095216754278055153052021034701819890457251733698068039454772273181577514485899440419344059912722154035594311981401984548488201933396707551790132352048049806571090697550829892010943473363734426551780283956651231188061139045633627263424665490162575977446483835270695445046757224182999117588276630914056254016395884846606438439035073294034335202581932322835993319872052930888188025388537820777582193147032594283792771781967519500325706589298891492477898258213275913606276087570651388928672852292507835597598403826791426209674970303107441892363600824608461688085652180224397664001073092210449804488961018303891733093746183984045413663168296132602120673729467920742724016529615174265831339601051919572752714090774197767775189199209726726078512880590013007642843118450130406453176588946816053253550912684252024701620357583183266505793458188271025544989340229883078256268411298945462940735677848908956244229206131635785551642978751725828670577147472993782039940576050049941761019623607783968416357531357048123098444542135811251912524157029603668195469180415808224579951562541226530345363429720406129454144916749735442500204193876680872131587398151989804308535124211204014013313964338537929260701825736947163932837322562055052783320909809146571391591508630083125378317141963685750228681871331528727113354143270928610265434332841058594026625753910869433218815131548112768577293926635071012016263683933459791697750743712994790690872075558251394404094666271884853040202170377497465275131265028420608377680226349480184063797170130755121788117034746132644941463061207897790279220494844762960328519319336527103805083332370971438771143437138475056845395588999475919933943893466652708747928364781800872514601059418475124231114274412703954664587366383162757973990057528215675144296895382143199675455175420959292619403953668451382470696353503312158005377111917061147525137875831468932764027995403547848655320245089247425292997438451995196889087355205782045099491036377264796430712162072483229478298701060322121333251462570480197516721723558270982889412224341403912602161439539377250649208255440531099816300793448546380458163724350666305514538995056605401143328856665960767689919331519810163797059819926316078818365857327861906089739917602781080949481548000138665848135258813014264529165034638316410246823183209883154254831379431882087212439092713583035796914941650470887936219319228534414608870229002976047473878039009618619325496414009286891763258146956636160420314853077406083764745129858267689637407661561079865609822675349064909515734361216532991918861801042669478540291044059947771715792272333938078518508019211127017385750564081627781267774834988585313480681161495813858086582739132859586295224754314405140156238051655227882540359689501423838439419095295506445058473343649305941845899943394605251325034309344788450467469458877929465785936091212052175107494507352265667982084100580145922266597829647970314431864318434518098579549582701319350991601138551535714507862299451615185036683602086333938114329101713391944217626607449280894550439721329301147359695750402063819482371568153797040112721994652313567455443162101382106386219774996097175422381639377613079660488110958787577626319705596531606593644979126101691117849047492250361982959031197523115294606349096443759255231873491280622438849829576071736098183320300978727156675673053383695721167025686328913194629842703181213620753851100621957978306967812351590010805069662596857081408420035372613894977649212416879222435938913326462098930009360113714794346998434569537331945722746173398704383476757481283604204123525363011795888114518585103476313839795008223779233980235534116017972556038444910602772529919172068992438871672333171653589720183684888056994222355063516257857303862011180996235257061713737328000874377294126405696528470358589279322159767478343212224707799643965632818314337000464347093416419142711290987313316069992956446061387061791256968959055163125507740614822537213457241312446824509767687479772556262537315645493785868429065054049751770226896079872279471843084080417834260633214170180426938545710641426299582778985434399597512943324588051946349326250171545719975976452533975724229717565106705063959439461497154440405173496609422221311875858914759587795302813355082898585296654237401605561863739187831719194066391654999505369231350251494886932384622570126387457907715333459582711393841314330525619880268132610834249970450664774063051504528957270740497249723808136388173625626390478109786710012470261070755648585332515936377123711984411035968086033975672217480874687225356072806592265502498843725034803923707646753969657757934097901855407550379479731719231942502537375044415877329664695849094106001020611153701259148232268558644366596903620312466317422960263822229436265523879621272788899435752207031916643357640774109424236886783780303931025854247705391903525277538683926227999282417879470117134413267021816297813503924915576104096649861896439978729375824900155659635152995889749557709256681991125030908404408577873987489174199373079814389016229923764144542655136141720618602880362759079475190265208134521309573480063121603320961251468806064439136091481635749950827771905233422921119934341471182292721636187479460079248976313575495856260838362558420184715242232127530983817742555980618650377478979158709672204762099899365413375747968625375376112931060518210678410969556837479218482797441643702900129926522423842849406771469696431587261807091345875185296622981550057825436561668971374770711185850516984043075904836236387470138317958928340060262551882682197336776662358879672635184289351899164663097356444740898975407549113533245679383199715815296853470703348133773746325373281652347229641013124103124432566505312797375329983667811645662787127853737072660012946198579127831429682779920163486465178143743413524596628718763033271599242482299487425928807932698003859726614350917616743129775035766614313194786447264881781849576982582887748456504227112612391483660009595138064661936250427060083855655343502875439975089887268375273578944217730137769175489815941246402501133518225744457682096544605507076294523621936024251761741472908396310276756168891387022710143713296251346383993087980865111092685075289972181820328292321777699745595112350734240399254625575520047110754034063155021107467277210872684336349730912259019486236552735770483693261543445541153094494633704593924634528808322751354761464746127610208223520116997234465758129627779773586822053022885145421465026124561854981478551527746695990967703892100791105118531600487167096963980076616719471656074365113428791799166993918406494070979669386620679079437180083458421180236951199535604209191859226088080393573288871869672879570540313799502677682305958753971634989429110584243769242877402763843150560175959900737731738026775129321005302666468947178920853908867230764734448467200901034446948151263680437183617832576804006573876147745805461843746733099484724363376863707301201326644412327359997633053108958973893088246299939196093446031704711019523880290217879704119052920923863803310416295293737382936014358237289213588300179990147433046284440890583132301212700648256244906503906178047874056153632013500112445169794662958329558857126825622616020337968458317569187724622700439616826429988835798164150678558550285159839024260630127119941364784602004611148582571552986477837929388905278939170295941890156863710622148023028319662302287764652498729938426857507578687335072996330571149141319039500503474285435274592824496909233732135208761847877043658733668979328782866966089227061349843948981362776053731425692638302642460052740576200792456378520130195006405048720264584826397827642420303353476463945081007873820610695041919038585250806570325799529498310223744276655038996559026055573950935924565897918918128189601562826567734595173941738711684477263810909935434479849282010407881922148091680272256923871439470266729671033477341038331429402497863338524653365201656654764543358884464306791704519331145383402305481880579079447481287538636363392776501708994032538009222779094385702591134145582440812140194801362443982437600266137112679174878353713341325089262957671567826860985736745194638258007300844251281048011865720469067637589458769911794212807873236786995663651986671298896229058821707664917238597123492088385406630188398063301617930682951690858128093240271199606382291398950473171411049848565931738260114914322798744818874840043983115555773490363636600965405805944014466959414974628286955032786700501931844498772835682597509383666925547282528020183149309889202615394107145987356940271260840567596111293923780130414914203832396453900485623077573680702913489223172088769636948246964150509988134065489633216081964605314370350664209603984397716595565941717693730886644765757260559603628176834176827402316772817101193300998181448540289970415099017379327320713787744511625668636697071245437828528059995520018577079686147117919031868649773654692496996067943383259079521737585404483398476541170576256220322114479616389641086134741645127781527631316102849089502696080295681442178484102735635178672852355969442465916452595637919128771185859000300121190126786124553094615596145458720145657149252189865676644820775148457666397076182572795304366283727861844090159506444226078792185392795363001291231182003611482391479759744754304186954106618941340024692189486538524577272296061381099623065370654518885530598841328354886678856906631248183160545468145103536236942661204185967379266212016033041532075700299232722780533282180501712686260457073503157503498229721202273927442838013594895027802704500760370070223511720752367163749574040846388300601379438480101894890446928899126317017097874618820750110743430662304799815445708105759138263903148295437770586593592011372343237448027861869321229845905278281006712189026287013160178978052808619033328769934317550575463059158321963636540158353074445579145036844122791889397349411464673428998111442900780256667486292591862597980480172981917619715106516134711253843382153466804378570099493900071092784060478004468304024298721318332371464992596775280271901470842941710695471633213778191770644118840202142334587549228573102700677564876615031616119145060372072399660671817734284038704471186889126602857995358528532283464070252955388973874773418533824457043013960679607068212428232573227303583548047440823492418333326223613345894764439252227113016816990715754692891701864659559850298638401416460657479556801362820700092280077152530348517627939256536489469690186391612280042827585601072854127604320762831651403948543441483507488740782698152840164508154150887959960736608366805315612167341867885997265617593677155040673658745733006292696956882265979129906500730234499876152457082952381082739010878165271138110441590498061670587610049657029879402729685812595813673915304644560157252568996824651022183504449607795057314191117136887053751951905602409330156825328561610573778318614642360092937965892699636289113311856850723991278207728961374743664514824752413678393920621286299616903268873422712655189448142868196031261727217063792613452615045646423509262116690223953031651890758924827403441322665976728551170204957708045830674212891014555841585710149442264765574435103426990121838734979618157089038964883460451857719288513516427342051472934543294952638506043669530315205391116511551547241786551215179767783032128781330857485832022083898331801799680578816117694995012011464356127939561311196501327098400090170938958193202229799805420043960001513316201005598204772830605897099251912544366510290320406312134989530596053346294691553710738742924301167518233654027437806767354219930355946293256428143415969960853877976460508417948370880747713701158377961709582767243152435852714142126717869375788457111203831511280723519941589003525964373615800675143507390934118271537518286538408579807740477518258759651791411717643130436721805435738260180562877388607539177911078538752864574053558957188429614493180608516262941928687097649390727433238531065496011985706311335571126422281288781036450965713770773701024603918647921742395619374551726529711194625698767523509535733820582545509982595023220187035578153239308005441439685595982693561555577506686966489505204819582768636701050917859887120322127206653452962631574360917145123687180284544487341858281272651269928083215787018192681490515939468855322603793488415181645630640916179359891271741697487897516370365145410571090333885723017965915482724211333829069112655963446519113684948411949259052130985279050423836865841546536121834733695037946929761988230494812613215437369745079876285451533842914460319389618053361809806545767759480655820785793512208900048684006670387648067339395764046178326468423943543526699753670536062810913033039548753755769728913081621145498482292130909066866498746132073767398003062777509315290117524173530322279061902147926127628573527959919594141740904150798700465826369233689398045539941957628264679515766675108211226118200207521692542555878636686984645585326935658296020060631278361964773458383162987626845142412210494605314846095369398492931352855372371660202497567964717942987466315260095991855098501576088498325577491276978417322202614600766723714962510084570985492619439851453090384229043285602857458538313287336173181571954245019826876795253990443102708680426459058186464986331095430582202197502880821476714780280641766022679207676323819717360806352841143317098431121308428247251648776883402746975495436975943427068431449076643335400531605220113847917299958949440701562727481418870420689132228128935133237532938301387499281607585457102164258346003345386966537493887617343811350234493398044367181370211629626204971241784284316776090126789763207065133135658169606045191401080704212430546459237970834671607104161942275053462590801116431890126262686872390321307318142171515721395145419952225112881056913563396003598282402687231038028963135222766754857785701045130032096836261182048259103979716656153962470029175264132696301050427636921634902537342524789052937648330876260051284764713678484131282147627604691319686914363810077191742192715550251331989010151298281449264626644673313972983409082323717681624041158288758671785519700750815732222924188219283372102630554206341668786753575003458342747761120943538072454027452935467171744748092854259187790254873156104179524100294938816574656193675937961524106257526389653259097833626702659712237553305687800892861928081665751342260585780515489356224952789126312048742309799128742624356357551944132332601971952057463880966785095174863969259311960983476784555188740082363958941746236395969331667988801065570423354039349172867319503880175781826681510821419441487037292871709843042324174925660792069650909935254676027481115537877124064810817011857420164672110655160709284299248643395230416813085330513121682048235990601113019367773798999033864172886318829711426530389468211741565226686616835363088318534087722689497730941542841494441384574081868248216163153320558105954313195986918996889366891100472969487014926795536984629628113761611410517655314537103849663425382475570026164847459760379392483651199508801340273210895321863371364190079524838401814251262022924440240638276012328178871759886595333818966832450426175902581011462570547564598837646176594803233368527932033840547429563840703450472167080323900488297283493830492602994966971610964424344503936718553328915092572836108720111120540605441229821050801562653418742616940208744778512558469587235633738438711176904852510098628174793417716491783902233600950809510081995770892527281960713095706272574925019493296568776800474836107155239622504568970372550200945352299578297941622767978176223893039512828513126482762139284994867971083560579984860901079873947857534482148014946456821793616973003864271040944406821523047071603151320174566573137456352859860428389409510666084758081127939031726806081728641810242937488365855802874273730984446030765016344107596333407150826032740189774059355018604859719846524271266442283440793387050628652316494150885322428553612463420156779803130136480318346436188770878965450989575437054425536941000477776612904024328369943865468657871693048918608926597511955983845180649438362987754334665904158508460155233644057966577527887682065429709965698678358616171722895765011221047901928301976561504438709628110635553440823996109450499612740257464736610590510363524010639830479671092853211395063000254192405871309911261696715566217139556028791741498454563524915056658671686634760786939572213989509830204758430691049710231278475037042356068244771029039967131063556825348040246353338760983090993690230870076655203155734169133085872340207319005222131748863907407699435302313253072891670552556278226171895934417359126961212140923283717439397695174060166211994026968141427905323131479828123009799875979778629547775171508269986829792513631337477844358707346064346386458630185724977748620448060600247212654421059675079663870651159960246735785189491928966462421112264851173597750053412038676518867530105767942361290628348649336567567026091134020311422609638593574542803716222534529147274993708345922622225135319038842198672489512749905907170560312655969407230382540978275564594348940155974164347596283894045566643341455262228926565054256796445451941184303256401824290241803426111754167463862564265073724909657200406485578934742719126806641297061024719612199358682415896201288792563099526621834768825298875204489193339875947126432319779282792176475447799711420464162695870718379543622083691849428664386525276926769988547646129001915703711688305601209337770655331646198035948607126217506542626926307882605667409397962270968228376593128024484691974971013513840037212120556014273460911550238335174184687870457733122482178691092711480487826914221454843295600905172898793290782780344634821650873611175223922725452166783696941524764486134257993844017071214054299571625873552520497034543945415290586454350975747059316776268137869081645660643903765877841208678581688160033116659608698573623303670554370954880956769524250981762528209541371700538798128209681071189080190882418353085190254515362617225358044107296951359193058523916902816166998264670811971260542252815394705400391563279910228306486635107456758060839518519167040980895116012603559020127786850856196597069546651957459128188972018114776550342622195042897374893123680635015121469997848999869793884056210672199773749568589786659955167130797266418951858021416810237349586159623499443685356881465032192074070047942908037224262207835810585150828528240571209395257666527695498818912020795706607194824915093115765386488066268871200592147255713230442702928983374642981851855386191506517118841190024711036457296902606871069465521380828200059592570022917068524860579879401554542483708254468509566339083412702793681680733195183058627453149121707019311203832846967857301278872126218703338868036455356505794101101124056616657651645860311029149230180780711306103306493434014714738772350264490707968791630332010423380256119083472169319771526932939530808285744385446248822090838941829390101872591131144089767051582342179605218650467901990938748211415934920399940136933227733679082168453437391223839098338613690303240338227249601874944715648834840909813491560861835320070089417285502000492513570558808248620483373043687151502998932394023017229034412080210168536099611868360342278341826243871666333885751982200538287772594141302380257317128404973411318632474863976785675308912195733782649606204840741637839040891424347238598574411336310302812913760682736816088402113964023200093482091229948611744566357134921641330131613656821740567147699420340270952485078713617808924907693897464129451238034218372003792113498987926409042359340708144078192315888468571472236517364137683216767895971914755618948757541053125005140375438888220716024608633651253614506086221035889829113620787891541091254981139409383273691319337974363227178921563716541403267743620179533194545171118031400142459377892586699696687118843573467241444478268792238156347685175533712398871728458665793508264525224623307788572948836396334488113353283154484758522791802175750782171826310094265695749426809677434382742478569459012601641249186585672877353644648109195134866040577482242213466507769581729649933683732259122212891179512552277298742944463612806368259488968881514801091919446479423489614438749040881939651427349870848524354616003803441654992415315289825250661930944796293212011523160517097821673812239271040163431859245765685459497908573222619715919082161020280406340608664663612452707222738484512961284098662798183652540448809941313457296956894486279109777430390226468240491400919587211662652246932711616398111065803665156805847462230920036547297530940141597875668997296063583102158198725044038857583982567510292098656557916092183393269386967993350917144930169281696610311194284644442633575155582274470655581582044926584472970816835201252857311022375289724080937365824597097169840589169541674543777855404265534283223933801402014629753146445207005532436661641274203740262528671699787798603104867164745903770279163752731871314778226186459950411533051738234681821176357599089990286353738329454828872262844480253125225576633365220870373011378115448850307957221422845256435776876244539398061062958459667662291612393279836130342446226643971646610444998945500607954900488902016480614468314016978869221003891883009499029157425103420707428418387218365312262235040718838154555718768578081296307113347475359955578426609513258083280088455572828263678781982293876726822027720276539299916310814946411541682770384795115505517593398608766151890084426074391380082003835529047799065600539885273171067031048174266483245995379892485516981096566256191377316334406409285946348585151179432625576408385400141352854737456408190671220573210092405854772002675795148579842569498676507238638110043493845803403368905413350695207337818555206591856145184754627615639716528710345861588986966972983653814924446669192250630242340254835944040353326753912125728335132546046089984842599458314710050091901150463454948162807604670749283383383106568877322313918449791780991239022950740734529041579438731235355079941343282565839200347441843168242024981066566772499475354937639762375331928378483639011771196455420119570995586516375277198089482877430767549557137886426923565124428743658605982194927154521080621978018002136415753560335059804189814231863268586496672653823026222567850258951243368943249819207432325991640601954760367000002639132431752572258066442380746421661043033987495420605254834771914760857642810641141062325945615295763573449245683464755873181623838165889083350961285562045190452404589980237885640085647890360449929805074682444146545857718687881295841297306888213537256607700651112823428689439260556487517982058973503104746335948791839751365639799914482190372485304641678912987061025544066466541034131056519308404456051975729517811226148272791375392006674488307352244317192380431411066260353422664964464047682771432707398368608487839788021517092850404598042510170936306717446921523717933578896266344422828713751513258270239743355449214152225037314914297665569234047746753092074409291152584075646880064743654141401908779424815890814560924770242766526213827775895330007198319331616318584926631291912366014617973751131222134891079782939113194250506434627119914428879470748487901124760052323659370654151510054238475122193205066690886271494495051577126408977322026781809615041219232124051374759613109566597947142037589085234356228237687659556805667238620787701076386017886041761791453590517246604839838792236284705675758006211071771458280443090330812106204989182643663451451996955199501478019328706014231987614301402031374636977059504985992373017197785736317096298318371928285680009328733659727600035682753398624460962536792917898234003049094582289226605634058787431889593115816757672308245521382351748268011157952512639905591027260554147510113557720590165967658049920856387859906160947416534307561434845756251332598998973701991180806913988259125126910552575743089390216158691831129757522184719528140225583478187857236365179736742763382168527814673828402367998823574236123983670461486615460405456756137903718074929355977491301147701901756172161819109831326512447213669939367541996413196417961158059436622353459159283146502195618780726751510745547924826212651296007990349693323530418418082260078158293232355162958888491214723143214032619670028439802294328636554412665712904810673622274015970088562962518199180726693030938164793409474660046280773512519215486483746669288332675006505251639503013493500650604427645630198309175391275972199579490498986965886208330534686769579383330983327121654353667225030106267724221817600848331305089692856393038797926730623414739238498656927420108822306944558852269765727464426199328240100946923393560795960315785392961975037273041083894803115801290609941987772915921853414514565313871912443269183230487529992602417806818807752587737701749949938762029957450168095799461107772925164599932290991804720152821170026509150760592295624389796459040582674797860761661414343755377627488377477554211427334028981423411966986181260104445689290795161601420419577521204602953215267508381814669464379072492939638518850776506648905842138574734030384316627174960356735150483787473079832017829451978260504442717413696775331972112842929131451368932892549776623526704612667232661282738490803192431525979073872679972474049611156254629970698548966610651490998218470383316532578703341589946670901118933122548632371480650254301469826208026284192619265361517134727854653140450553332476175146624550226751940366003737841436986446014329993568548270505154698869157579308266763450526109827912937965238336003227526082730025245753044112204749513874733363850059290421934966697694918453765318161396784410226553109249028396482654414005861880163436149735894623433575451882603240717757990982528478696343771507038128694274150864102764034213674059620428402675554492905876276418537999374784878812626839932528738848871274658868698577467343394606130952391312802374988443833497358747268000853005678154337431212255394803061411383848298711988247528505808172637497720996995290453893798068544401038426224106146263893030383956616680653338388278110674955547131843657414789036290462486667536447616232068972841908309852505807662598299192461791862078664001737878758193645821596088630176384573628433244740227553420538183332672042136137459241963178520592460490719930696638542660836417687149507609686413692673704731231367865405367952218461551465778791708407402301181759890043934807379171000859607755570697973030385459792635928281135323953032420764036772600862797993197332444274107261754476141609822873782714089923911419598532830133791302912282776535979032884542618727830047382803638453766392199107551047520574589470266016896655683781730223518157938921703946191173036662046270735360600922795541225603618864369131287664375829204148670034628198792569385440911768553303182011471915436285675548022837862090886242591957786160356332624302822277806514133531808695672355524370250791268846762007489683746757245769687284227673271460585109433029780876751716390618571721657612324859192311016295822233290700324534952402298966895814102548954014526595544007233967527750659097958343073880598554489623056597651705708982167285037704248119746572153108147014777220057709238566072328089136686855499297020364637514935148512370670325252338423487862172760574020729670534275042898670251608546577326629593022167624640694661084138542499060331240130089776046762421966143322153224538208056157998411183895071445817032902051672350328287184595390327778626765820194058477422375855249936793684177721620917150693556209371881899375374733028934937282389523074376709732949241024676636764123752822093524037888939963285546550453697662866233371746111759986921788441708514697224375892052696794124772082358384775581528418423877950327343005705562185650244533941517844748732507199675700843312793575014581403018779433399417195934624511005954189045756306882579306367805517231822023130698805608683603219544793611165068032630923804713661747974119367890456616891789266579613982198975978482368108045922433831635577399688117352916213877656316885189780174494486609347886482253518070517325866967840358968986775253441337850474538376179705184818575817666171750684666223907427721223161827885169690304128932843703439183053032402202171307141347245889345380259150560808151249385123506392188492837861825360009305785947897847810851136218735554108908474948557026712426853012615200358657309405676451488018439977519133554521815016311362209901467517518597386804605417129579760392489463747108143382617426504763462547908956488683864905027453572762852907355804363821346992593644357331728576110719440296749895703676226336063533714315850461075626016915159641948995813321460414362900706934383355381227890464990287622691225353030330213923745576558676004195160856924899952054769982555829766605296876309630845042885068421253766096353472527322310858909960582017830748078229915521840130014536881017410798151154775076548927571971821355506354774687627287473893544485016513020500144504813369619553887234789653289732018613347142502482525825627224355889576587051348011188935235458854157188671720665023531446603737313791350862788336289365809280469910627740290672011157922334364245965759247139680476867350688143148252708509637860101243949509834275177917846347752487872950164254368297542283321568806052171439921819260185084534602261122504256232594449687482729105579601628148460549358232688272003103451464103718813651155254044809898639400240986864356380580958294559276439024251685475993419075631520284392951096073993582616249908877782435570333918514734858133259069935980175511874118325720409585511686805800453711727978041867002900805817920947446636266714794521564868823984662004389448977462814529341377836815410647335504402276434693191431609527130821819926933875124911806158222897159912612243987327319843700613211783617575442003405767276096378545861943997658056674560310094358997182469175591705031646336952476355130933298834446352706654749685575772324618850554681021287258159604922026092793636102410522394302039910678850064912368625042506522719853356681819266522305393759640245604877809934425037496736137996430335689778933420088576838997155278588942163282923940980207533845344985336572070276009371709770498013166179677617314971566238136415969666668041410420330746578155654659383686864110451524415451306851618570014567771582917092744928201739741726430230945736231103303226467484383667954640189963326405696168859046387831630635970577443216749412258398250798141345703515459135196136158318850978452611727974959950603266510026258341530784589086756021633912983859070472505883045951718358587243053389834819244748861463726973824897809684214623439682688246273831429454383161907582894029168662750108097761807608775960691705004954323240036801057529151152597471193498976343565913472807267541561935637040292671416086605605741336204196145983380307797131540259428932765337801650806740507172414992838626353367370288088115362984919579776951416334596031971316758615095462829832510329205935314373621853703591228255555047615756837945781373932388090594427989778899401418242413558015785414172894519001460135012399846328681539166561113299678718420085904959595011211280312738926338599901119638972190615391856262958528527387170590178999378596830402929387125430958062034547508295714543903084468620257578951213239790969848969077377132341791905014755265755601295683493725633855610890249940465506575190519287700582606906535580097195395683399902353541263894650873142197659270115938970561510178600353818268696825695413567352176985837336282112533236581656380142463466725090439819827025916875853073982327312714599098499857537735869121177454030148671292963389337002960113322237804637332707107408878858756556314315863987483772578006998544417553387278709850511600179249316242237239077792661545484896984931704619930181263549769615041391834931220370830587336063763311992689257529175205824980518064608388399954528921045410889802878158773553109552026133008157845138536943394378140153258008776008650612098778023595447854411214562591992263382453926347599883176839588452869499384866450156925196602908615615808913849786341445390473194420874131564591514730192643882659887214351615962696068403963778874397334193409873071667431197663528610645260327666036122474647876785630080245460360009779299939039735362554806636552610640072934991944164019362976598951289667372729612454071331573508261613632774535109520520964989274304580521801356693196573964237492877734632405432308058832634489443527494483786759817144438886474730036839277248068750814272565229453254665646160484789951006271926753016222121398555385926388859583715183409434457821228645747016583544064608439807636308480131265251831414655719008254804194552509884041783922648403451312907128494946132547705044107406207100108146756941190171639452523426040676621931027604831375898210415286813006159481330791434682317556878726206790785291598306542184479844643438799888693824579416139730461599828566089504028562587892521292661222017247134781482111598873552840917101650984075327329176466143615763037687579819014813915752767587142124979180368355902497792630274448901161393741058583714280330706805496272114368764089827941918116770707440895184384067572753394507757846000112052287362859689174793716768371743900304368692213582018939441884167095198519028957452335575454808625367236728672840253319843502271411901167176142312025033509533149970423852272749983928581373346114948558329401325413759010396325649260822369091257177137111596165176792609968763904483050414265213564842711964435724462799629379383128157419622235376736080496383666515440361625697799074364094352502632255642642284679913783267163676554237923598193935003644385345719227355581738814547658706330529218437529161785777676541637855997772623649353493022317266893212066836625225165108306983417726082617661173686350999030025708041695836265634651300414233949081238836278725195955521965267645856180980014875476967200911870810212339526798254648027584862176681800333032880538919796171336557604246980985594254776707090204838179612783959747212622893763642970136258998501209013762556476850166896533403913336818006804647376975123693702945324542504387728293992537621593400126865789289111100477119170486229680878284279954064796585886713403563923414488610152549616312970701597376516492819613349180437634710206051989293727868540056533198723662715205935134261172136894899790792629270236114886196205486136543302051890723982666628381731019485213608762325520499883267914405367001847223775705102880957038916226972182938266349176209432497386484881443580863829939236209683005840325145476771056065645045678821121696212649953324362573214151218430428682889863432575697774308014688009099207298043338293209363777543493600826545893245264275680169652757795436843478971306433500317523422767892223012707877739649842572302123613351086720672034260061547443165212642953658054131886554329709305384919787561829191440687383798552163998693918168639688977104425952937966513817466531516864498085712847096250513359985937200180530524401994323836565333495354258869802902961756814826564241797461565436593175816827236242666370247571164312940939142258577671182737545144428036494467353242925825945040019009209955302398174821604358364774824788657920094403123270078483378922837791061189347886440890407130714351549770674667839577722424373164418218022648427493001088419433286071780533741353759464947421221567564103572739495710224338503392120050155784183063574890601484005514785027365640418210869946772177484850877741313817734787244153844965852646451797310890299729508572249203615729251657662167833774555038878321647671760094492903870841944568615963303114530381594210568137187901769015160143460775647478503301045739218433414161749228921429474573948565624122130269788065543353007952327930732979449820403636790530267082051625126502165352822252139731875475323304040682321593709648242152030697390234477214293789943191700692277172115971357877015198776666488007951559322685921531666526167494630658079660839111881905241500383382158105004340258365993273451236816112998534170225883215455367444927782066996554661535007508444293373393417887600771708111719317305048327906208932100126936676215893940693072209278637533731434732032424189997821928307086483300903709160668008858520515071547191499506483241491779073964712614847884509147034683477722890675056694132476939977950135599097018726986905080499159121391822749737159800824832979208426160143108305258405951341124181164890911482859204236968302023423046859980216097394049237999879865830768211445934026537065427717797085764807757676650431549314985986224071015033430486653741543076521996790221021572741629059875532999771302025057609506298907501882458383024310088720391700463314550136314024187577768206029956407842517660489528197909574120814116562566333157972207665628118010020043646228965319862978530056326776362105156187545756047423489716958477468556312227566800172801168614857843690054058775355212500430809603605992493184303872742840923793788682200856840759586601500023732064722483408641705103102522705113321981020404223686736015737146959903532964365511174011008126414320149187732037165732653200685102663578190977375932371592478535868239164875197520881792974135624520064584887761497791082635559799391012496318642891782328679824868419744537014251236483882137828422630517072645931492115622859227042154313248254500551291809375840477142790591329976551096291035915337355888875659243717781926103742755747677819515300027424338993533821725631000108658569232788024105867395259616217544878275826057977580144368044308145900601942127011226277908626637571156299245424766950244454092983560515165705223175551727462791148557114542524891926578500748136954617371517643429633394422527595572345417528871525642392057883912522471036066327998914508384893062588966819430258586924674002719704021688736792113048149885767470356497934099535344590585490637306009389106615741688977492594338462854863561045345686214972311447383697213114960650790739512033043256915776760648001875631153163454754318046255418316326025867902385401049274209871102589895355479902140496153296694796479737742545157581273593953248321520804321614406176523079024592842933583870447867653728140534014809021101291544699357357510179046479860534818688037136585158654780089355020762082793630288743222487451606857010323526451501850979880872798539777370665860744536563398467621684418564155437225657022936481106651423353808929467078454155350091174205507605249033542512505080622554976867113217760739266966511239219449407905180072742248474759512232685570453033749551453540358146649036139951407416452467776486636169244746139305255181923852656676115136249466040779371688219416786789412178436424945263874739916268688056552548143787948014889461935974789500205789159915601529556782864411296321776852359989861346764360265649697410777693030429840299247660047761622246299262670909566930778317680805206123673478159696579952827240869178890576896938842010192488963614529829578740539295210022538969250265402631286505270647284279090279349801085692867195627104290850838631348791833186329120318024163453000680148964010488411481022599483983682002684785888957953552517457647401358761506622097284488457756501118827774756459983717222301862151469677177183486571347106683932201065129228380470194020518375658277648107182858915467713167395806024570490252752724570130172499452559567289121706758636252209551118980950153670648355591107366740251568835906397950731234720399963962836770281742016550807861292128090268100045701785459022490418814056872437262149050002915784952992047203562148905448186637595756486425748231902162417203188954489178400984767044056394884705419084992162335514619303211422933708188625499261880221545708907055525512281701485773484845915060126749882778439746195763765092943874685271171488335964345302012652042040548533001691966911289613564070338109405738814662813548111998570719803288925238725525901145314600896133097616562267765101966554306327749399495060680312933048033921634028270113718125627466355914345383303830042004842797208394074362754623323481288539134383476848918564128204890126710627002629139562484630637405869416257029267590800110545459188683070544185195067792468052605191033163762921788761494124980881492982968440303807891628656087643732461982130927920430736076438484679727025064322705820291585890379431841425455632794728844740527026284407549378018219167582717834279439251360943346146641862218868016997176074200645544226738287293359775019574213454340326986686659314218795355364114744859076171534912116995733484659906144992660008094764459620560690933602260867436056976510965749392699810747853412281264619241903992060195720377396653891658267969739475345691225453551075699066983403401380905030235437581518758781116710956677669517617234396743658979846128331056812574437020664234442579188006987086084122540119326027381666827890283175316126061358795182385343156906819647610911347515953494047988007109021277119633351184273308336349695938364826863651538890801846734733846592480954428420876178571396430432602844154010342485048462204518787459817681461662915162751375921857551074358810623495888483453322566499486584918263485834592464602143989247871726555619541323587495811247174766450611067197529308209858064304403741466451753253804234226941531371428249985872343398536530321760928602544955894310201819817540779063867504687997597672522107906815033693434106951217146911526080658341484343409216063414254078642428892459318035525508355349605270771378155837479215124307778314290645824422963429649013935293446789776311461684820400129111386768155217673379066457103663502602810802853610615817170282978208507900387457987055272205579899157195300640202609541041044589075528513565101470162382261660790447879026337293377976596532724155372371780535337121112481894579162966443145974194664434229537672407375073036045447316727010276620000836519890532139903068905801073808869359082604023714717911583153329817085877009780531474117443460502476041320263289216573343510384971840092788951316507104736097273605159823331475663654334308768679720136529067072509050954446712047533473341878149353769804078181460719869725612406672090468913712794179803146115001553155792193602570693182643456456355890607212194206411232651077131901333180912327425935860573823363960252875349062226606614073117666337785191871428314014468383765654364021009231741941284985678526856093856295660244123761337835255342289380506158094250805312238287097765195476555167147847610324433823663735901145769156712855223255268669302401043089886483791888655932040249456513902844632300161308478208531802776126832447864212491580110049492598766772685528799482629638133388549750280250549196234840989018845241656709968367553387697833550044655129722898004005608674699900464127271618526367848938614698069921631003847144903044429983595098933428033968866620277076964848657226171677573720481074933690692785256898423494778639252838975254850993687035229384688381337905022858493670568629446865085788649887641215607333075096086557821434965409957118443304378275475796233650200534484227793505771229261662830205067675780455014902164395015066546497188511170690597337923254265647939249314370270009096898235348832625050096604251652896273195253108608102776529286779083988003396735435063572986227506304993632142259510470417558109341145502670124061375450412488146282552699636019213810680652282513439201392877202557325132508818613887189360776272867863666660319748378610512177868249560592898316450382581846987422405136830178820707671596581125791208487219436351122640860754722176865199041699558629006919454799486010234824592770283092594963131133874801665948645554477805178775055917957384407353154812077092612871347066479951663652007952749121171719559739524442501839901712436672196126930682573223866080176536695069858587880396286974128967235135803645196938742202189831928596443194342179471071370581274476407067226020779861765540994029079134305802899462637318811568503022722874271319791585958028006978542313330463267789701549235278988888632638693762477560442919544512716508571000647609148272949334316610798755027948735611963302853604186241742768413955753870449952970879080298429000309464247179318493667876470408492230954118950840031355539634392933056636377833242160071121307461599347520322263984931052785131962260045337853697884739444978860288712209729476904037237421708803968730401041004199852877960889889341942367016603436215235616582692501912235125727343430045640796312113738148923395634039398131857440222423467748474374925505136172006860182577022330064958397980864820720112432773908782737638337840531866063641371740366888578340618781632947434290369470377193555701199313843117756339553683638967949027918706088750416794308285747260574821496604577930928783885075071748788088581353237244358421734222734344891685537415062283240788501105515893148190889416870200220254058042460404414357632781067952978357243456456587448157248904516175333939261019150362315836639267042487885056444284685450669673985395168741514149423999850792282033486759047435404942591502348150477093298429553554532046258677556771471468633671173194483118291513068779604766544328933785644897463646667558494972767547137686628562543374984728141741724079100762881937578037991643415646206198940928520527118645433155094182221200117114578193921921296214283317837884542108058935526555488768206903169152633022980313058507121503222044339584757444272699177300033291296894863516013869797928181735646451209764404048705792720937917480712672341926695498973892064241810517221165632723705395034091123425947492573998525773297915560577719090398995112581607085892801505108645275647393511104070946959296592445951104938988135758404721322748352970651608575894768787240348188225914688944289051126762530904264409104136046949246275202139159228535727425486619402950660313546648313639767148299169357660029704267034947300605360103597906038654588834133556232859300091792613441902485460998845112525518589507826992056121235289508775105292355780578975540609021387939579485422375846076125495346995621986113695787020875480382758997715110017940706858518754770687602968545371321696159353223933176745068384286774919396444445147174213977483875940220759568013637277948465442281516888798309349104922644000829621812471365606444703174536631267141830267484520326267824666988255140730309838456646559378994776961480743883042594056998761396032126954072227679186760129697512528242488652061141289599584575205467827770700466216964101033783594493899781251741016940992295278703072140144047646479084255787742024949515987201979039604522980515073631315125565694077698719501517363177420221152394864405219120194878080352727285174002910961448076044633367293175545295746046572195311842983936320532737268232115068405598159808564218260561546763697247043185483128625630189580823150162689481612587756879947268511981562182587962932296295689682295400618130155846571461362420167899893819012956594020875434951321124926907791516256721216919383194139252061918797540072888269522384497056988989205148937747272189018163523699010705714015678596196139120892333145008231791157788310387216728462810229285944063396211787693691126135952447653470409109250043670944984724442059224003583717868222108780800149820045950171329757822784442562040968290782190225089626224176142745986856213182273507512130363107012691629026724167630826531166368850016236444378175849240665393316946050524058816163155961935334064791706962631963952501208675745540820894341603037124247133395812759364005403911178931776616941569744976882684539215295411383437959906636721992245402402357861904056340371879723849869099115546669787277151140149847386553589969212411595421945645560198288419041657330848168384342612200525907350310706227266271496148664720778201684215508666614939143165738284669529377802064405887006901907560182355447840763714296068181838812944572583773178998298858383951643238075104836130225603548761103834190803490245171741945101287680904148500309497899436842744426336647619867773573873447029602663358715017549570040385382220902445870712822481037063008529221878473282884316653488688572363165131574791273614641042814926221139759551632811294964710223339280300918914113569674225049001254831515654635693043194554083175983416219770974741564784986965263892486115758814258184987425659611871151726324143482967103514002028265297412559160582089170012133334902853749489165957314488580629149447058239720838407246299306467043954583306353366402298361456214432198170915679487744464784890794763729130793070719555956786202938011925349453812917163207010603020976581912399784843191824076345283868652904761238501695587119941387434574060315452344593460460370252806613504855310532276331547664661286507693861193384212533177030077787930198365198513873867646125450309450819653255279293946585818851460123831583663673624634899328314208810471711404646240323865800164490133259636524063906244076836089300651144017270244878315063852399202772832360223854221224761688062547022113442227768536050882035744964124148222248179196063560631124075626810491463568100286337915576614455152361261357200527551916818510287570899661365538246887030090483610749037309140442856785393210005566841183603389777126764361581098585174431139426293885404383352805899604263201966068139969917160798407863078470523527154762086316759418849465743884217408660185112343390856826376537991495516005789393217468903573955339245948170748944934852132410181384207443395930733332099033795858618133642502137242690301061796058424018540331691096215277821741387615435022140717701659692287522945912028245707350037431603960084629626859702310092917222334689734202257269939053435045062878833347828579846151434761811168295554619342334216119437531355808955051427212615954803670021269362790003317325755611242107744342856568813257893931136754628999880420852065102757732546399520859535694546823957466489507811501693076836409183728035086152624670608688389232501653240236095673293338936606739944084907818374922017358602346772667189690075950866723341538289333539777941123516427029218546805959972412472613830583592346096854189780017300902375159444356332759873665642193244364942230920874566315183467260044114929121755929917091007438326964786397569941348782701399039571520510903869183046839259746083500718588014720741602600761827677541263408984270545412079232665742707153644066831271407733628382354405844082222004077231908969450243755668980112517580050215583522386802176968652463563582717810230259864171865336185066872510911082682305627912989702902164622699875863909473946388474015558804853975972195789132370792520016639870322759680015339526223909011762901057914410571372909016359492725918619490939940173234133855169698466253240514748518459063264055738997090838993195790852073036680441937803689134654287496932748759712234356601367024446783779100246934315210603223161636747727047434889308760846049135585074168439794205704320067528288264249602711560896704859795559946938413082799084976879648637843651869452505404122286220722631247585928157614884000789133131317042619297301426285357740633955537708333897224428149721094761387799820104216824039587765717670849451565201668338157252410469433221394692595584752351968869768735176176090375057572430496218431846275105661369832132480489248363834087607745991781161379207832547774156707168518169669759400081383931360395743620138305495195235671363178279553234263446976247709368930505366129286532097497616486615007033630466534520839338182355930258698413611339664185159126945202519704354810787838698607435999158210303963983829373503895735464056003966872928294606823549329380710373467740732017518052545175563113614415688164884135557572341309750242816201108927347205658199227174476238632278886519599794100182423210860472413256828135279163345658915981502490633465252243227361012958485705562190171975324871159673472634528738724639671461330646846079334390426242028188068855803199221378532269536632564015988382408523504070650319388817679131910505203175249117087725773772592956521931524041663860294485861598645338624633966232293878310820308590025501492031976983757658405615274103794160977451754300326231025754624191586543862948351297780240213836360011315480966232433463531003356921380472431109083161208692874563743064734965532648508967101116838816731016293223900961275208712739487521822277795674756769323541041505225714417804194709623275381764897120458913378045155299141413571941783646795748595204059120665437886854022485714618273865167146066494823215018325569345927572422351389503176485688925481075777731470182816595755670215862179602731654170717965434669202780921548491388945984360512131706428239311894709917880493922025911627988670102719754731097473764172096586634544747802154645503295487794472020187447711377482294449325646649465247364193771183243367977999527819450031728971014431087084217247206346640359426984073872869018513594270877072255173468508426039931506250629231101748375613148387534546470149659060015323759505047112976840587751745367120731344105388899130153108855431557017197987804693332691261934188708473029660810324942102435688755912025012065216338411658109382501283350524649683314935667543153715911681312071292496414586714399930102204757968890368534780683719901559595162445987609878559664236679856150496229458333631721798696557891000159433072061574199193701549556883520320375993822073489888660203550204646460852817309695746958481638559480830019270895784808396277228856792711898122528011152370197444188691234400751158003524268932782138802235139191163732330168416636922527038251707389818043828005630690753925640706150947529111258759152540804371831931791359802225069937431730807408568388128174859898408315605255357435847230407700008087034028400146185738848508820044509955501816123933730930703905153298567630134692632594165456961214674869597337665043187950636075145608924319599085119984038869770004244954377776202381464120907110261468679087060638788626049199985734906380787002388248015172180794907253613721165676153715336799522151521594358242586582569515812105885637011811461404694262109719413930875306944709895231452635974875108230260916077718335571332110498822054480827292149887191084476979139827006110902871750678371607895036040581275769778539970276389929648170051607852624950920781564485739870247891081825812974979368105966358481317551876423840356436104290443951053216521884346516525776181452188473993146488590110164513272221120081560369050409163909968411407153419897068056424044864587619391365755675234533305326912378235306575544291213517544417878346478585582392077778488928684980165680216672499918691368036585303384297590181962607475352446559067789835915416482931705404312621341842644025963218020858296546435770943042202614804897815341828372010960319632742451077160953933956747088326980121617419142386069583644431867750198777419006830791170775819901021387983543104805408688555507399642026266308546048417101054372502123090263135083775667983718470778852231655258433583965298852260440799644144014157507598412945453115617292322594074514934642648504328119294893879776897824301605223933688205399267323946567354505077078607928682360895110751091144489906451957840777229854237764212277792660676452122650437456605922349180566477116725835158767849161829975605464248240196581263098801585484055617594360025544312412791045443273715632992565381998067856752773584116831093541272384323476972023487588620758406694169965661174463386202323750511430223764072939999338852332423490282777155607209133951362040138883375898977019699884938925515128136650256673932624726510479415790537447491691380873193893320337867172218685191582456972942661769989932376530410677758968422853492999502783685251986798353078078231122479484616631170390402429635241542318208870821221087817478832180299528812681606723082475398800616973231290780994610100779814390078025206198700639769041964762764543516727073316321390627273458577832257092723774493266731304035193539965684192894567489344183294391636332794380817559059375490266922008742358144115616789577041135569130264150162232561738105208149234712622693212650339200420765712145172090481093105272925473029284083490119771163448092678344489247881503210044552489001193690159655575503579952769979230342513664518478959484128051693319293322234066684288205282052445302080516042772043331664744699123698449903952476092572920358296066452723991911838615105499330058265831919496795229000103929350916911996831081845839155388170717818149496517705862893266863840295291476952053052420551123196739509801461260407079157213042375374633065432552350699315620032340243763539314619137034212898041071722443490440598892092792193948597693753662830690692259313887419482627725341377590360684941263432998295967535814557283891202600275286739789117884924610865789588279093459850186849478040978282959970422807237461907647282354253891907090865151307960880210427298439246593495549158053146645973269234611158557220985531060374534295304315202485096442199899725738476492873895589805866712786441165263602249873030043717997382841775429121212290653898850248492880327957702187110864472333567368453832381882988897048122675038559265339789827837997836371847166824073781020075935806172658890926201475673621056215269348551604863916873583071033766904696536905779625731996883407739809063806034836380762308831084088532459273549261919533400494600657198798630081217163202219183836707534185300628745857248740881000801638717148520830586564668354840215726614419462453220504547768588073537147512742524793064425941334890407104766006328397184042017107722237370235000931218049820721392947787702335509029740101978476889469130106788100808559663907877889076359612017037519940894489626478975997939726862416493479878983070337803557474348352598178480534264176687699578994091346022653168625685666136509721537518445798225972458144591572518027993233789127851769991572311692815215353651703612905607786773810461220363628049918065392634300104795642934308037943984372640877223743781342897063020499621734583396884685618232807659237468865537619074767491185341011425587839511402225193053677018021704188769380027743262793844394370003118640971665939818475989409575768268443249876239015109994577619412133012471765020038437601790750047581947264518702260586710482021161134200857700865451703935985623144984140124204335210008514100178638805261460830918516858377870156094913691025902792483925779566575647273195904060283671125986694582721567056335068234126343477624462237685117446316884233968111698614918975983155913643412375452542991032707707478106085871103764667383428893501284995121869859220287497841081417827684671447428104213535809873643490823984194951785986352063837990723418890430967052490431042102426257631747992412264862421880591463566494712590070637706274475823448585979083640689006405480838678299174024448562205941190358398442476419257566249497312349520782875172087108780890333353200308114596033934321230309757754471618144789883640845727042832071402467830840307553251946483205068918819788278217537880525121446801116910026409612639407589076902831282955962123837117295887477079600566940712201825779417271463315821740676335700922078728471135319432578548519191969399242048547378577401357048847871350477128677667814784171045398925659370665884091879697352120528555829040876110920594125959328577685019461290319190015463855267755308846030951603348987895144873188134087217517201923416139480628500567761122113239582032042419972511746423753389076159053577402135102129924111379059027178419902224571875008045519952097606024291916829250092167043370160654968205429739628720365466159341787619228932002936490527549492642241783795323013438355674347497382698330934170027902093405973637424342562273351837305473438011136256385431837864447512264630302465363695329963108713112139864831437602455148181475133452025658751684764169639911552863097878441264417488903392400480338476939599049863942596593649389876560682878249353216191087005186673063062135748431925972779750389806274881310436639191073896396146727415240721053421714315008706671043740878778100620123984327199656235546980604679442241108862245617443392708826699161320793696903053580389717855681207780544662299317738295003491847637156778673172375124659827828958475859377480022558762506598369814244633564309212482375768909724290528085682806664138481299883757723743931937495727220390422911285402511730110254794559155934031163231438409758733779988623673257208032892310284124664041353622896113345597411103321743497601392491194913824624147238311204185171269212225627976661938902373718038109253801094984274554586178746975504697848325075858268126742720404686302180865192012389420710233784199197236302767333421190084408029979521591995135317750227536250283584359428841186632193822765123058971206668297412938290731983248757102631546933051025317632699643411697856149747316173913913069497671871051534796431325028391969837419854161244739094875155673254456786342673253713903612499324886066817890962793765757765117124012821852377933907108675125897744751097969359616384202612750262919127658285719732962489253459820901233515687635675669040019264928413976599580284609532226629388637791364130768705652652595744949631622016554122857908896693655115426170905678196882558842377574149443607468644565709894857142714240973965113999013484379229052745369359772380124192114755556364904604969393372022627890028390504892614063304445932964448065360409391794594786265442852201867160705185357446843563425251925050537879958832313680240908370840375567744397806681780720129438577860129250759989109828928139169295878031645930837437803643015852175421026503727866019513633677526140228237379019751631558089903599471101060680335924735618680426111762402509743505799850017701313691536032730255531343572021903691237916147196850492303867117765685559766758996807893839114934976320506907836723306765002509566180485497024215642358938821724299836768009649259367423485527603167489000835848841906756643304848641315513284068865766628183653221332329875547546895206508588541288390704233664957450018523226214299932798102865064668788012168221103963066741120264331251912106276407597827431435814702134442103242969093021120898732162987133835251984322129436697772992246599494843785108558003552782960864381071507900754358488260745939292052709602442390124775097226527541912605419927134759116182404038363005060987525920379845938524134545542155940773191733370789514748656364597254788199926465555743596384281862846575529832770732900527926764940438324499214109466865461102775236512960567027004039609046054476324182337140818506181240900800472445371046823767138176282060910367586965541035070987216967621653112878548862613934875997886718219504684395809657869811439564100535074091944141710507205716035573283636730248809607682830193553292414485173472172690695928808657752866266896618637598792045818028740965398627880266536162953503116588666250932405867916840745506241906153433338207376692997771013530955512208024358444700469691618541782809159474041241376671546572022889907902377640998472852912830250442712019451922040204558946834489042988951008563197967891304990865765261477713071529910080451557348493183148618738917927507892007187234416473976227839430633005593494021983352399435278064574833485004925349597103247813370893463137957885529830798014522745639457411809492608920028940340801882436755430781636702723708607974574789823220571190041797176983946047475347919456547722941800045095523210433107341597919226663409994161398626124797427796856094383610640662838208939423235711002200187987743399610151454689799697636669608127132153927063680288477791412376290637528765686830364589753559433034673320814675807764084644742678261087710658700990638459310339839460169557245010441682643140436885693339494828203801403631647886246904998826201868742659380758532684292280367008833752611172286613777358966134886138737629803028427842254507012878080468476348574682752483592635059210526694394470749913403054828995293286514025896221396591424018142059960854149251908419001885794927093555858809533907273759004253409667282631598202091363165126981527314420031596721751926895785406050393616832490678308538476180206080648372748344929816433162522243815656317558288460396097516895471968727912179844117027221067705145162873065677711095446347121806433406872312135823525646397115980568257061270290508629442794231656540156550832093000279288548996216570392317043586192745773628430865428952437468477244684014996862738095053971876535454345494394970767466548494624380670283539537146674513054202520603028963286097557713269012553580905113956246945250970484324565160608344763656877820888244382448698724458667892212410360402600554739904314301176432810867997363090869505195687065819216063431455943155059913439370133833553843749124809003667914682405390181380764811654634216516490314886831648394576874740892988930548471903968575571074340067213928883827719872842950126294834635830103646458422623134706984100764564513091813971043231221136101997854381680490478843749801816957091881646409516821711780094733981222761247559316642953071624096908195706138098158220771801056066305842104239035955346241509683121528649866247636838651559828693113300747179347594413941994594675474561495405222750223406914643641269560802609488630412361704621739101896240845730318945184835395451110757021779539937316266461202302523314421807060508192698370626831346832476778341927317693635079997665961848164068848825917672626706519732687841374660344282851342325588124375600684144769715688403756412019126354776230360745128662937866570752518831497356281452502369337330166541052048606691191022067851056713054452918280259253666650831984001501272292251144049142920378101505320168593006166279535659336542466543334765064349117135558878929067990327281163846567284872267880029976686943430277643186166096285659256135310050511726572893252387422884704275830198376810432838816349040671705676663600935913343423444629759794367441363320102107582671350788375807348143609865418701305076481762059860533635504470054106738813489403089520713609376416426003237691595094846379580020077531537210568008980311745708987715733530959490358694238371522126663133260257169994146689343071247344312773734737838462105545557875991909699812107146516083840653283668753286980482660295179382779810379352846319317255119916305422915439782288303337495413744112477051702459482210970899470541801981309738206344278793857145354436197625584380999892825835971786486979216976298869785881733715790332816778679203669812696405937662486110984818182374888719309977289858604232493578422905538737617807427886837162046146972585766651767847299256486045722287483016926072116615268572588413704500200355632399661516026860692719087845869307415029188215383837881860182102193284885262534518018788565470694375466326497724614975424852390616793585721087522906954758475869950149184355365057994108320379460790916175383094395587510359453654586850680125224492784030386207828566052399244581772555900518461869172340425830666238458886656270587610973865190502431900876159613805152916797572593624705579994702992803844451313157549305508760387002227484312102075235610387218372122955563501932456859594994760062337322141957684748790835662129273477166277570831543948012519306268846106228294122871918224555334865056447184962107881126344604492180315108936137780769586939408943642770297786250247422409073402908149845812077855072976596298877268313675884791551050829553051820147535706802671874611317939471259918085915605043065107583548277483116630909012759884628869780693192549635510932734128718554856229357495961406566485678560483351900105884485276891216075407567795841163975685721287030322178067947816072569235699246717198014592288359247876130406511320923253939414154085419966601924158176469449340191724050238147847677729060621944732108116871906021019505379012360648638814268721298564759481242506171807842518881459217961277458266103703980257104358765664376411984751065158010483946596191108204990286175424212816279194062149790817960226541912456768447063876188549613662017432512117238637634827883226576860982573263718744778575594277226992366861763265911200851029809838805821328388454908875938908027576510216073552290257913294893974107021559108085420049853947726035274237665887658819960707833079023686215630514430472052818495439180202217552513707837385155019886331648445927847354957147575510766638900376207731975102195967011840848137893371587471428823275550467696828909142786161701813477089882509113872337926518797024848449912671406943148673338327952279421285063714047665572585123184489964066845501023161662560075745618727748446305988974642354284090154788098973728124490540884267527537375750221798008532682209702595211190999025033878638061161187461932506162147899306685335015670881134090584262601406481234196583084342170067690279214110848037482044167082489486633994904254078037583888877636709688980772772851623351687156017510282912479237571646745620698854694495795443071965205182273234252517412679136008572843827613515389168778559801756635282812924211617477721487206379525733898400830069841912978111814079952923474604547063888693429042087235698818453957524427266427538993647423081511458141494004097437715787988709848716456112706650478994673658254184080175317674017150769806525023547717378820301903285955387530152893641914138211836674828343373800375907089682340514887762352804370969541494599228822000441041383246140499246296517381130700220642351410106800346936751580371784366607878464716968374033347204368747618414078954913354196231416623066870266352933486669422114470743403010650706455679265231488343728258655420754918526154584607105519706037085206495968825429706833873496420477968454636630812119013214923172829127163411560309571938343309182518386873645053740939094990347867357330348884583671587172639451796599540056019647516393628805520301748322517638006913149992647991470523230259358936864855073694242753397564329744885048200711580761583660020704843072208873553407792038097693639656022874435532003721114533403499508409597893323445434897251235728280454490575209444421078209653157104164575078138936639315281476800566076555299065321273494468592257005038830782658394499314399073158738454272189813067784833241939015805614225018707791791508281789282043535401712929860557922146837280660242362387341515959221113444345552618984598505126677878338057062840315290442630293044395804263638972272188087835017693731322960168590155017542787272801314956215657001343998791660014196518647828826427826115611061491273323241884159477141057035968614300172263644982656421383565549376860427146297065628305606862404319594811483915264037463800091637435138492632839474336420657149638829066569161982130506193740752621826714696578552301161268682319657042815994179245844358188355110977931658137036132381799024891406366068041923382648412584462464286595950572049891173616204110707140987131111320922873004448829640284808694210947603826221827564640322295662271935324620244115080001890909855236387792840766364741082609125799158697209332252965761743761110089586255796264762217825155909728848869170382790973547429705459252142323841183773192149954711324740704901720065080279143865671739291164194680353829472724908830973949090510059778522217752050398656415366676793224836916513697468114245254665232362495871326501317046035276330879614892154791733618698298410757295760173182191888782393234088126116279065007861384047959032568778467148145715741538717493710211031762714257164558897877275772376356855700628087859463074671725644449588573625244100241135164791847266136767102759405745336534860867774291960400775676545050644342387292386117401942956931637028067098009442221813970547427521724370914111799116046200029303531693856405237639178769433243397412052991411050535623719789254331966101214341079562417731103131304483013940103018786323308364640269346564112980426284566850350002406864837636469679594710998142475819265603695909216527498436755542503007786502052543740654366696450876690351375447841917215577648036938571376070245379518250539865948640180044823197788410209280373208464040572500677170989699739293986966582638296969341068248455823394821387302344876759789839693527135264300895234425678964090153659884240504196649972971693444910762692410296555640667068189964387417781174877592997800831677831885177998309902853406105232910864285269810802406366337550468946843486041980131141857292509598667306835054770803203749822749611160212596486822544639715156399485310496628125233075995270223350804012931124725714666370670380105577848209847995993105452307610838796410871699068180299757376785311381114319284291655709958940260383953571199215443709648759187009942406118049534142005902330731535812881539087244795972534302617452378886245971400689680316049956785802451165459372403819805229969077377308890198603720342742312257874966746661525537742870702340557805378562250707099220959936208309478787965209864154147020061222023467249224533696705737579318413657968183506253688426300227943875126284578356757378507617782050288431081480321192649210074986951424760512347592991791158338473164504047270956973904250219963662953441845094178642387399975008823762336244281630565765718349057694730347611544228843831820379512105285387935400335005388692898030228592155210388587765456931891045426994674186575934884838477774063160863284169005777639816539426701005727780066030247254088042056898401436494744502752269220436528284260176677696562322107533247431838990906923870574469678977544782799974246320970044481716500431647356744266860234034985282662845584356672160094465497787284489702606262068021910732460222368866849867018482869353668385990967471472375134728372082545844536413610900749567605016654319249737405084518039949045877711214880895471092280413054507356940996042914342636662004032452346038942508869507700752231558725069395727943074715045517849756814571289532508529297223275308174854106820659028867753194900170677947801877993302425328386019431411461164856557444099921551971624369645200287547299229094627545764026444548179978690070702782883584668462078403379376597006743923679413192169780170437854697354210811039167712451782072103559098620673452896538554363005158375497404743160277433559555263339130782108033501531408827773934254303434087313201434960864832178315433375472128619278299427172746676018576096896591552475938719679398003969165572050754200559701417764452362270864023814099751043294411248022944755486682294753353539215161914450928679766215863584030256469362812388279969632469355751772173077557510207805501478027860649266013185125541090740099189197054121128664281707438528414584371702075669230319511690581034409000236741775363990776520939296327215232129364330492855625157426649274799766686606574092689902624090987406071990312997940029236815636937180106927398382447503938512106652199790668365715243917115486562898992054390309462428684284430796687024876818496798888378416834713364160756574746686629443893491075278184202583186897811180632014824499105386482256280963984967332450815312755106161533394249772952910364288743709968560576108404401622197812020472131483684759359497743650903185912148800308554452574912349692703641246665241811434865015342941169923021745182178437590617704297219002066375172872029974289804772276357468518943032213605475210576381499363113459507217702426759929623893572363778259754560880998136763511865484223125608938645216787410483747833131487492982933307553747939097649887749929720615773426639479832079466388357654336827240245788200191153879347264045871853742208057483033949666405927565475440934724079478349001859506800093406915181734891054505685631773744491256661473275477511759488214939707145766961845129592276953759867748693423151581975029201170427542604499353638803419259883875428583603339528738230321487281345153095115370841190030130314508682323185951540502245201233818164945356929724099523307333879246331790656932703413270998964311098189466034080365270309559113025971192035050765399600907827276119321625428448480893263426808578981775831314803672383822024860384108595217727092638682102298885682993433032678084471175857821766879483859966896113670859244330233220367259066825740727656799019042450752530574024953332222870056129978570442847904440321066559089188067695714270375140201245684193301070493610528252508620235972357365552831559540053017124343700752662460088031992360762631176992560303474675034500294624608361765155434441212128793429416373278709467389447218945891158196455643441730170123381447477483142403411143497884663753652537232029690291918984191198310165956812922422806578733718411103108788177472162168559399534257383535089808526932625905889858655438550333086155203684025176036106938697835948681937589325807332602464663339608993737797542309995975556099048089757457331200346791648039573648242371050397596657071066500048180115561427890810902586610772476110345097950038088819250405822896539734381991452546140010508724636645557440066930656527806977838693772237408063751094521465735266053107573032757688875859947406368909437267887754540738391749321834030294661814139945777416867980178142151197184760520411406328995656561441343223880667919579707929594086020967001659414024686843752857844977131174945272768018992209739190627393452920730910419434382136342476881653098237354618090931566274831457867906313798718583232362292363449764935206145387202360513380114517612523839425825982420255102872871035919047653761475918797420645580003817925657607661072387013771962329043355821209668774791738274166426484813518637226290523040217245193452015176180579668047466976113304133015525160332734322484172487074070648255305127567875312459732999214003696991767894458566500999368548733677280149601918768783633620167661594889370681881837770934733377208442235927862771526029409435284137208706225183814478266830553614979818159009123757788178111242865622286901517760134183530551852952240888153187577669893590505616037408459983121952775417423665429833920072304216970329064161400256475323014171543556377174214138707809610272646008474154277887344719333797390793640043155585573706471258477741032195273056073193821014739157535791420430363054706665871763368112141228866114857847950725535824846948830841430130492460433604916046305714535868973289933844953243939310367182302710022194095622082358253565295679406907401861408694510780753172553896401021391513430016780774951759220174913464729812578326030524421706935558510727472860558315509275602514149314743791934057664635845689250742884857158353963991554442137250212087914204251197914078385214042481542171846335603690289332569710458324250940538502447223364346725976764384900623478116482510536361247121769383217907091281575573177466614041332377021350416163733181613930332986761999624649766166217980729694221895543318719573027689146832446649841952526183532561916154784823788964928212971280218606866519939016131469711712018491169507678107055026319957892568099675905097429779081176307801314552540905664646086552881116327470371603707104907998106689453767599257867936372728205404755735614011972748684397922160143335213822875193932515810479008192540856945966853033224711054069941657366827734631358673178949703099280645327856917643421963481619546753461381982019223781876081220285316987741323181405414084105642030354624661362477183562635671547553956332893127179343015487040802685986256668659456027446030491406942713836898105434829978078617944508123173128650894065172115747881928981565871484445100152097136453642650922514282354784185319551529960043529859068646152472044799411181867318225417264170108639990328538806616219920645933440302883199257295264435221787595533270006381236669541093886142866281070700558154906040524969185213910126009198305741477791875822232988172608608034616729008402479714297140970992808713370131757221578200782049268894808386824154292332032543937095373438041767051080163736995113271779140590418900577731392856528914404194275679801290345209601773334313533218300610845021261751404096605850595661345514092362338014776575921834081869290873496493547112005815399601033143998954825990525129591141416406806781545098977588929285949049448805851709251623799346317348773047901575451748373302822796414122551459782503896872422361458003139848335916113115233565700642119646234881531831491689237428039630578032172200616804320535753654526389857208388077529561936223119440134600099010645261817523366475827756787062382872315873812655057122613115225880227709161909735085205807092068292455546535409243862117295167766992171855120671461406839393297474886970292944552794332567001778879525090308196362567360748409334774855824003795673952328434136033355795527899309546607840452097884040185080524117203125058083004362727651115159973342486815029238884836811405505304530727152726137861487197365494808611654043318091557657294075005332845314306822495062132921603305165377192133296189154740014635945299796351329229727875652447348705760372188141468486983080022657625699337282578647883170566148721516782559673376635233243551171499670292878561442061969532841090347411872994303184138520384396853998592854327069734976125622970726167269875038048816934132996842889600943455196881443439284670665206633151977742223220980113458248601946562987876987059032072729529074448239551664632503813278046235780876379409205857873486689743260652976536159770499865862205694578972243558461415389244442595132872829375829061908570702374634963752281344063893214252347657424429056955141971898364955506697722293180969633919239403647070929112490609200868454460663431003901490087883884361072754919885749879759504468037076357552101125454307866788110680710688980115956841164102050462966931233067181314203741319260084472033270466993916376113332851043560392684550182397444491442084589128225430320173592889754403604635536616483703807663137796896386753048762773634910805699053080156646035015291148106213287291721871353626809026453755258724173884782179001698938732524571389116274387689389877038339957226362916573176827457284523243119506771836015458661452624524226184012363389026298257985169828643633971817278772416049195774954728288460646121010032492582625755120438944984897474463785919453899696000533750028860684990156311810367224798991817767881516007005810438788582212245948368244415481997627680920455872765572036397245183436680230896890144268556947474310604877859663043117669717916413676632570422693038272601658096432478128941012920103823297527728901374021884969616106486785027396922811464961280711495141134852423818796556611781591315357431181555991511991996954143316419063792891497318267072902273041189764928854478455386255982949471228821128261501731650656376823836083309072749181166917941378625876832010324062674355025392979010941537772355003245481677074367394405065846020665044376659805873318219854751985809993917021058797989061182394627376833700977934822870210407778128235266334887677531347210959881138352371951730345368208084707862690918274903498307640908779798353158831316246963047054962658760896595508980915269038639994404843086514329879147061477666648841191635945221394182093798294509684850909828602775238481530850835014904169116525490176467622779084609846133335873090138361239017863713581725815635191198093902105912186202222557119553640035101856056347842964060864579770396054347288285540391238319860133187144232850354217139140753744394291363757228433298964331069700653020130298588840635478726561760563010044106473224644062836864722812346548690684703561723819662373655393649264690520926988054684553805093849616202419242368852951682470449652403045300225043480389284207929049680443376294449026732560818997540622208196297901963409747753114144802474295764089286486710064837981434235236454238343270104947756492555437439363286799430868175336515580298025523191709389597187673162826614323436311016152126840295923296243781317735596251654754332292840877883599346651731319959132180666209196195806633796242920635532544516132874656608509813152426907372836308442992654801182671923412071566923466505396584537512605039289014855436059786531405820383502640377318871967771313167989594001777376806839095803474855479237258454854981235665118229888664614675861812739980205668583774973719580774366737637576489247841140394660057983451523124309779855355421833183496565263288018515886126170396256874321789165495558402078022426298180512359533360876665569208301233418108235229585434106395980622405120372689889627575275278849547867322266466684728138525733957375532761270545750348239495562095051063967263652499095681449412132739363222994532993268130589608490441497595385627013648430400389144615724685839911446026158013530619821660096056371756075539384272795727289493130852805906471047718827342306087632277543960951484615635725416176314925183066502198267295475963279222228691587209689976936468944818217643064550198225188014666797453437856193244346180659183456014974444248493806398855349087940189391535193487333004410250353398830794121946585634707236478135862779603873433327173286540300105968459900078686028387168125839936973594291411902763283706762067408822067032437969021849454295317597217702628163674667401871190689710455571496092965128973619555386645686007576646771061076522564090730171677060332835672283370594620123294801560279722967479221977192755377412410407412362978030650562234897719387706557469961914826163181872417308941463506840151759977366764059384621127090997897513694050561695898271685765151308414959652955037025165266631522356398789304943644006014175645541440053656860843084001100936043826765250776429731972097866062970413191497441148364359051311509495924766943940087891277643762673449515903901201982198878508668410137119930452853741870317958405256306203492796606552332620745735164316241935451875597585345091044217576183078373113748438807356706091106116449304532225211198335482856065708474504223443090331629067469247800632466558308402682291960711483321828042407753309373644897826363964296619791107415168970366924927733566900151418065685500008528096170797489613012797805337285181781956549398283677048064264310201268216051104210799778945430256257021832387709615882935451001776698548617232536280039623448885506476546331137008436801776748087178739386817408163008954414193693572159451788093822186077505593360133467586300249157510739452171914431794072233289347020253609201804598285972254548517767684917090797514862502777216424513360637596284601022829637800367654948263014006242579313434823025057961833557678705002121508411736112495437988887189989507279877422930119408835533428539378636049751048853021474909054106773979285930314435061445256449599465789532819723587949219559853557582809275967337662494126042072328946158400560708612784688002536531149874536098781575976753604396441760352461931749300755661065821471328837048170839072783812023119600242427631916223255913705080050192088882273276923853978730575244828958144917189198995003137020233115628131479827296687331166118010171607149362311890708373251591437296739031603429201397821326601758025710250426379901502240736721926407218045867123362970076219437970040870908535712817953701918474548596636094419436400050397060442263853793197338271704049280256192178466315907117310239238133712401567647645835745566462838144388356756721169394820065949585446885245434852734714926843460046533479195865111834862186280782608287043522021016908075786644738460276833650239244184498084925122998780309108821143271978187345736265343795517128610015452205851154416016097048594032210246999840605076720704513564374466179556292317048202973936375016364848630336425697910293764315025609077214271741954859801104768336873646591587890278759758790836469081198824137743089457120543695602972636049270404342933963824394992796576440408159983070849881153874584030078614493507060137132939570281034402546218097784941471762181550538202799260226618864556217910757397598851760625658720735443318776700562907388701533966392799007241974818543329402176143704074423676453971480311819041520180376306002307606642907061676480274020224708967512685745798560769729894774119865564887776074068037347880944204068234797527050295337711645766832307050136638598752794333453225083230756607038332858988030103605830950098236131759626106743808969702185175677367114252653699329540242239806187639480475837705645280624371309411807305423718778951601923325647247832584009215018847214178825010341445212384386946124577121301613054149042175209689660571999047704339039922626272450485522298053219102604880298920676149194847259080782533906484762377603797146604382468263894733112858209400039220424451555380256820587239844670112044996906706012447183933898651665072144062703503909750850020297578670438573339560685522716887695381707116499269772093925740372151059589402205150891580526177613161419721375665110392426045147855750447569575902440375950680892851427081946303395114695472153761585696377225065486093315624434469416579904844943972626060164671514110495072957835438238759647381802620990185742014869219832300741648612095109536962819678884467120384525801580790838424524520397400658430725760884126570636543015610730847322765553455688534091363345872409700801672139484464837609959991345063295241911238740665325026695103241360308124059705130493963414828147112111668052027845926350291715209106129600288505877012247113957705320112486300170512778455444953766260469871337695770504277274861735255339240644140603038199453199813991004091185551094738306528338628195279366988424399434717822477649477690194242471018952337034967515561392594644560072807038742152502772223942950037575320478066531093397053397770435079313380664622306909590593276745797109719282762387526981782658106322493717830797733552764508050112459545471841823606484232596988430372557714780908865814040879857326445083006117220108561836524919976375646753282535869505149475000648587443256533108785653287686581916141635033374319378526127608997378067558473048136821426886099985566813775941347398490267386281869338342092439803857422011450279929424675757918888091707679788115849123551805700786527927782066410577272042926322023987984197627773953654438624089070709730777175715495764531957192103879459607888491660557348695090311326191269537981180472290631820911478335044313596842779546541598040695449961306773203644628379157270659989572070547634750197965078439413804847574556487892107972270898421933159720479749193046958703783334188744442391619871314921543779625767120509451961004532118003664086982756239945932926275926764263682185226108145744726659026201621185285145616762208385694508269340195112650303992311028782061146238072861665441555620272971030451471113565065168536264028330098852168960679446461550975589418807519128157700809894078567214647936777869790872658916823427541844710902421016562761606608358579207867081402820811077626339830921899639429504828834637165329026174446438816489013784979406766984049642428766200645913821477905934001936175697167513274970187529159185562556370989757523442850734448317369787213555731107285488020060245001782837763612582821108407736996412316146848509100857148300193484763079335429393624122671883848972644222417496158858875175545449077441405311244297395278202725388318504148387860228270615826934038181985593680258629222860777790893142346533967038436716976525973614149751980395167917750436740403289445666478730271831318015791682874735904366828820202806236767977378022092457267179939203833235776411384171382593513320601337483026040248507426150208554638885334518213335453950194310710482969057648124720162241795385709756506897174991908831894508713811775396448502310439610606935420289948007873001260903998787822974151536495968207742330760152076864009811186785658904385611921265229659505351420543981314473897264733143953921062267680160919400115169805240989010851147092051510684104702839479591612964676903103291755521482630417458917081617709799963031674559453255892322845920493704250705550330027480748676661585773362773139562047396019664484987168049696723237373830285961569504401434196826861004222702962593272828364084118939998996741700790549530471190845818669386223969166727876561695270247095791799863138265987068243798430912827414137293547983994723735265439663129864466676391418914585429033964887592537702931668720448026047260490691535903207071119248607469783638281902435162708444098565121760910610676310254241936316261037243163141460817636437265581919497864180888806458201411289804230269320799410538321248947807626079085375189273304902627968006336468867942826930366498404952743966738199192097477959833126551201215676234143206468858101249804380514385452607500101888291865515084772522529500226068190419333082144979408307428244329784360564988037311407989174081089026318044237321413938183694931791685234987425754857844830566354722508095331437831835090921444831459527861393601427358495367261698043315106856537405965616451340832523065889462742780805622566439168677276004245799791037657591019284297496857240363932198295750777690922291222096964839944921764853200171155626847742627078530584571665872377457513068293758672976944036888798037783629929612513746890442953684619627746155137323061336790540076016431229538011373906228068505374307522180865954086105402552399738417712822373240276294519688804604964772736567599016713143620491892187820266343055104255084692268196379759442763870811509033393992654395135061139377524138746555827400188435414850505902028376744914135653141007315925044738240751812003116286106127652405692915935362488171224321434279085010429912589735326088218722055350845999027160695113911104481904879120645158163595849955656165439722683296401236685331459199854077205335469769412822513320411686756289839047845286490536663099812921951916291623224255741627387949282803690111605102624981748130230034195622344554101349241978677377949256872925184321092407992288103172924764343046038467312712230668304956560399286732616741102585068719696383249999564818806289558210947131050991774261272288893344439745266594215664695908987720094336371985413985851415814259910217241185356424106225166123678573530026814527839753709676495066717100268129465414994946912874220799311005790767630202709067152847147409531477733219113309624550108777652346491096733539889463708810439928346377408910818585261815268677486460393176815071372569363540101218824573281871165874691311173362989996788176348908860750356492187222566705258728414558840857256954214388897601497461370088276494169010966622266711200389244244308083253807944277203795991681770149098770347185145998320564407536459841987722364771651068257552517207776029727065294508423731463120392982463783999058093764656486568520960022187840750712481910302156015520513641701141132641054601609712493434062275234868047270239179491834713534863212030300440196862230422996763990546069901271557954987555850305465348494830837762986088833639368743039261059509361966206518716173501458634451486173666446440165810915508373034846153566640976816688815948469109099149874852431880387041923738831724771775874668461031875531474297979885068586209422642648739352229767734923257108506275795685433957937676710942743494243031015906828998474318380140588149461178980202037835165909322794189539493944672624398545722903566120529419006565646350148520159348345360166091826021065467954101605004960258704755327814331744636512790729394248423484119474409289566699833467999132334213312828248849273508363461418905163458017444318960425542070814485216835053024416623406819754255041970677979658565753612763604182137832649164991189819241523028069776989277349701677304826902615550740914991696908174265201328838595001843069468586055355524245283218764408476816496705590903458143658579772308461517082357280120644781506552764918189532609339794832359530890734118477461980193303726275634916984715570342946850942007046569244544896612099600381739843275169246360473165511004198153465062565077426959889897949909923795377290754969499653224657200887140593637465387665902533373414948212910449256209252008767019839585198855162519905640855317126925583734881995458250314451642844655017458843652733317508907410507566888176880229468359840108892479262803897608026606029255485935767437260824059059396995295200532316131944037690648022441693308691118636405388156205477544856568524429241400376459868775042986184282831268087924344911949707403810547732553200277781046460642448819264835533905387026541376362279808662676314843512325151826722651939350904426980153481285613638866074167292779687886693741669939957998797710139950742041646803971037388104129754137151438240599962177792069124536559110167093380003680928299962483046009709680419822906378725157690859858640457405192500657137164061493932506035700227128473829956416275761077378197511512523958306234573833515433645781175583785532349801999343118607909377681008048131576942975935711592877595855362939694841246677990638239838548976921203418458168197703513214191844365544542198668151014884238529773070956956935589637634848416011538518891473062608379513490606284716293639172381589673133281814382556801619464529268680570651804633744239386393894464964385791153862972719285564480055627360901061698367450673966457093470005915943183644772391396605023994786087471905289370345192646329321389206436646335950915152856249447331365058046305059635958889458864671201065079650370243757764748757626959829463304112198059471881678377387138827196715495291979274728948125918547644563818937771255986924174958132488131244217538502780940214872107368723645573013412353439002365301575473264850820276239944755318067091793791519273337263643498470322070841484778628178189991471141391315450634373784342414742677574092310704591479306068258461666576919553242623985014480707027981301911506852602695538377043089644906936784450422031216218502356228327169883753957388623707663196314449749618547475555193973259786058443152004038114032317425873916524161691131377277791072403771518110538446549466679059803608887783273781319100765750487083504923125361906383500226745581413949485214826886480447114259536013093362455020395888006820011813939248423325749690670055420134773840848276296554457338575384967276117786414154231799571689846376559456929308465943903403737031945095631688762905402026025169272688979755604365332543225979553294762004534257257450410359893430820605595530996693269970853360763054078590025403135186911189119068477021431560066590293425732704262909908120598930584065103911395754918456920605125095729187930285060490060852262939136504590453289296142494670256831808994546156176427952708119242095288999385039886330339434954189574881108270886140045804658469782496887598389602384293009655599929867211088828376120087237641605457191510178732713739505876887687966190035474751804515874908490401666971042252473267037771662278010879108777728004307893357651483998060189708413779847395917920922373032237295365935229248844046199602240673416258277210264258821649955295080379237589418245723436080091589456673969629300796426220109458285235671726119149011682644855729670752097596245032594838524805688498673900810190332281224483951230273112329924261520681569335893177807887632037909262726761854941214501650320359214712525902026381586408982892790428828774617353929608550349587987007417270328498711350489829153130618152572198771803302780113641232007026718988149010822107056937053890607690081522831067954705880739354876665567584126646282594684958472367323787032883436436132473998710135708201473760433358977855044737340860865671235145823408297690398841203402766878449607297736643378366014059078195608044645427418305590333789295619848219371490957935529653797388229195136287879083337055926433016289797191215011257244702270535588824425582154063525690565384235184164952104447405930920985010013298698633821046531929387561622187761300004714541459929261458401434484001317032640072793567158301270675980573084549464780818584642402507179586462431758316882999923800226641355647367694269693728777232341948134867672425727410236875838755167475683287801789663173951539972739264177539647877487782549784902637515855366274186094437874887129654382787717885654534165165505861675163503025823265406953561354624107341302782259742769727419402856686728202522845192030724921462849968544777336594877283220182997807833809577356040141017970022041100909646640083614259379714214487839851367174687738926290696740385686634414314362772689850456118966136580208558097519535250531112245242120627069888870791632603835758742010476609009301453084571210490180105770891758612462515680846600684603950606702638721033851451009762248512068718896724747197049916021453671783869268841592213392252903606888895891075204728615691826499952163553375554100862664273917406343487358905217397816023367419788133045332050559783878447516843987353821763585653345332352465777293627659651138514504254338479750867889583218166936562500560537265143137776774388788519654262745440541210030424529167266003651743613319716806305540593431021922366167299720209929093651881857329990766425475294247494515307837716215448395083734234307242072357140991596887986055278052056378583617646695710176282248123182237117936449068978722455559164170199522383445119570755512292542036072235613969000968806817611591530670076166967953083080979604642249226755896546874506256528650174791823902018928499502773367835106691664023109106295999553517349709164503433249162374035784383764842568963284263513199905566553132720160202573799959392413145243427624477498149965415563242012249331650894780099866845496093843672475843848602763643441590809908948183467532677280694147406976182385200689011740406443379502437717393976580755627514233200450004166816901035328835405644175092222079090487142286103967188645173117713007667591537129347216099176139455291063198884618616705789403689847927125775178556515537912701292533283223753274599490725498550898180408017607359819483339828100028652640110923038198417791543882827338766774657057547155531045187515188498291679860062574702885171326307003070176098285100454578082621613304662127515363661376941687739698472380724932656813637906559659938002493651151650271413564987049622648155703060031733012935614179455857791860703021039412241131115531619210631325074147935630184887040505627274578665271454133277511226488668772779224353393459465836515441181972061074523350810040745017797827294635188866907878582304441626773471078979278836730274964649082709730719056217546520085587686047201029652679353075765491311209569003402833010794608134084897229027391916944312053445377811632151065050315743530046882552752217370296911274612744728829509391086684281178547675087846976756345521080874253392225047742782080550749436801134925026997671828162534049091114501858447573108730621478197397943488798013052379019814892822110585167993708402316855689169443201563208057977719972335174793689338967178996626432650176202795996107771671616707271044739030290796244840918928207672537358733660167019887543430424220944467481354883663107826381197266628585006324171215825541501157433941727474232032090217789866962204846980197677961882979100386109546494449168473659378452757643211743074399062448665057482547990173808725047246889551817453465101642187633305467820023240001394877955003338794928825232712994011020482056826176147522704477635843848446475524711465668120405751519050362828113348972423382006599349184633897240342040909175017555047911055597967681876139259987034183136384906258756148423767977153384953155452788180795492890023038884732064461027844858718017559161789906239129790003823801884031507370579787401811565549313194708486845724367391001810785390550963399365075060229680509394118863026366467843453737597776434610039581871768460650608252015989938001754241529102881608347932741892612229115608717143975638964837741819744522199581962640416597199549930317453180023233642887280672779864852264394877969591148338347142642424486074763655254732895156237129797209950768212977012583881161381855552754702421211695764502872890745643860327412749627623940764009025604500212568293993708896234741930039174523601959913976506959647897073434294596824874605879181177962344714944712178432583987941911364399889582270988027708125083941253686850743304966913528835700743089519475614952571771063815790799549891690461331216938127082454134652242594751887049402464878475686810714605268455750823962865042343395506952908601225331038698102253524402949062535866814598139662734741122335516091457021650704352346139045907172146515287233170283260338005848078996236334733443827306703198610688960497825024102622340774702894062439901099528615021533345260879905884118952741829438639673117780908381048627111976572194143555737067494419020785972003291322986167929546768910243707267435824020506353980633693462052930934707950092788592957283044445289564585820982429305923967546882109351383575355421571939185245288039443267686769470785694780243305692049901772616199077853068851559877949503037945198410178175246152423890425980149455570379760036041690761145032328431035515305163949440997251445307934352883561035401457396952748932110850338079514370089752480196724790519212965731085558068892879711815708979212381307383067123169410501155885037005661606202827363846091539970162425571015321310525730843340682665719341498584569866362242817102480135325461422966150683234635495077446266653563518253638599399369611955822679278541140180071417035000556936298595707283346424381931726142511282893344256099876128251799700327443836252748732011436669226735261439905836220268879491263417286562288276173724260093980362815780408092434434860614009771040662669247975662284568558527781550038576194749104841078677269022695963626164468092116238874669090993509135784511213467092820912602569824062154737520361823854264727278662507005430177918913205228731150966870939407358311273879561818466003113280569168982114482382882862977792125526579377289149132511814043465359457899559678068571766387335107491663342737246313485814902632921962108333839647769083002711283175794327430218887269724783267654203691966703171579079230044606124464228102742114870164965604594913965268384573203306485644346475240638334254817323203137036365586707928494082795943737126019081910792257643934661956880217119029288312196286309861748565947027805416439730925273482427693030556531386643470724717964770625789509692339969406166620777114393098524798124722095507296566284633050909135539439292028295903481486885087832392973457710605889784917132231317004371678114619534856720058900972145274506623717921340655157966163751459893582129394054056361112845585897458621017349760794882713347309195187342911727338036795988505987794416651235789296056403812820555726044847774449648536315102696659557982431521409581095425743896927446059244597127825804289760555833231026660666634561032000813934631603272169402790511735419124441869237020902428965834817412032982897294696447773259569177054499762377912708218650190439427616416058406087401717210734199071478459140007906503511643359747908436019638112601389457131131040932319634544187385085598304128920910178358295097907623258449285935470626114124357135692172003369272991424660925465160061432931697902277948528940323199388748716996474110417023863001604077761597834230098845064069057451524736828638913257901476339954290820064907078371209721925887938803271179743313252191934047176877090815893472072240835402633884442890349148080739292126632298451130532927644068294176851954114513159994463046076200532368791000790929610790177155892140183480388807539463856262621122326833042051634687535019824147744777097965146177383550709553967767269652176572307658227670938938532106111618174945562393356627652872199532880416160394000117429391042597887777050818849850832422859292492597985084996079066607949894643880791789663794540207631264383727238938481863486452466706379976869019950291498911601947554905238258552895478728605192658940136574459670880552688092109101936484549717488780782873002953032437851016330387758602152227290011992608774487596889306275307775302169921069772583253335727895004855084153068727053435519232624363834412483741712671866226343846913126447701835433512548689335259558156278890437409943556454137232548162667693679529981847115321049479150888569250907808440351113426883990076405458763495353572787018531170482771115376018210210257011212829027259308431095493894758907446560748975621833634725803622881876858007804736795841329665166502280888183547238700337666117619211130033779492785715432391139407753322119471259021106290038475711174483901293050674362312997265686398717007813756509207729944608400169065388951572537503566557768187325305266633104371674207919567484810957968185882989871280363573531056783397624694337745288188595218122021533199947774889066643970104119125870846343978230210721344720385609531159360154931237502030876727526575876758603001935232773243802806679628614224639404007482445343293354311690292787925919674718803431066386998242008935954055915985689370870146745096127019585506700030328220790131975896998480387663965414435583623669622214261972562897423329661801645487268706990577425858852129211353109959014071280030266238753728847728064700345114564240456228984210844461823713415585729132493518125316414569011433128247939966467443846725859201410038342358871537288333213358049619460390862390129963011263374379055842224237317744163289034021203119229064395766501470676656651817553688540691329335461042016868178525661470304999192842832881593772874274485845247270935737471095485824249546817991334053082027456950071980622128625307174825097698870876577279222146694069152388128561147122778228822206709850003054151038323090717347694584178115143365498303312378327301746769894195492719620435201677524701296899201429151872868721271064493408173065919456746661321311813818165001602070783663124432939647968890754212321018190835050111752941617932269845446155833404757059024133499331796069730392511511989168891351694864245257317982281790448590088199715988550809310663707302939923327294586457860875119468487962292437504967743195967741214888581961251951165358493004302414566595417982736487479648385922603183701739217793264930556382961848239180560789006079975923088821791644066035394117652479201420668596951814023077069695959859962255368281514942435163378856087193765939707742510176508998412660707690067504310148002754754958263772093498752939704248144355412532251784788503745132481215027076269672569923502916970779235444609786238349479753058705909971009813419250198904620398325788326094579140584133778711123851591675846447854785770271089628517322793035284777985573062960955014010738068617782535567535790477225488633448156783249927305544034420522216612320848792776243469783560154942161684147698650001432573557019115288811221979540277741265857307368140013521641407110648371598583308675982306920137718229503575468971415595813122105515322255798701253729140842641754916740420663448002345203670639600315017365662257924165813242186716791963459487989562919715625910649783596159098881064529111354996625488134246029781696187675972081565154065568540437876132000438468034504131144293203961079282322554104278994935311366073852178812901809394134630245811073119762254895759234436522819228977882632973632355374258074541880759467864266142041725226672834040240650113750921571869896481705012683331514080948093748286942751923325221687519040641636108118516613743488516428306610586886063146606604406334569960233126074325450807282084247527400795400894212863281304372316988250039564574880793305509430062554940201507849996465445157312198672997167851706701453731116950274696563405465222182016049766430430659227069544586121228502961108065329478861945816774154604052403509989002364948026646428153381573140046528556283617531580413971570790618191650534534408502480904810254441392162912742432318954010328671263190655708606750005349570940877097596985935019265430040634051231915527900004719558190706020685565420261277907556598934004197941988152345944104007495442120866361406423254509103494689939986320097182716814834634549163565338496603183301485848948365258863377417588803365632824797026301680702022226739806673132441874644137403243868409424541141292454299333556413508093610799485559688962765958357929830188159417160618638907260814979573428949298799999179425964755250858598262628195350642943837604114801085709977413736873942562275151222534459955784020962936982410873701887600668513276657267147015139070295679476698236481325411694884437515896296563518367925076886753274728021444790996373560730993059149383939047868111524277923338993230898768326417436338709290331713960506714067877124628360798137198192179833324597535480830087175410253404047317762664463613611427802481662360031843396588647492881650319451028933710248627841983188867631072131244465922774273280827805550709828756339259847162009269472200945926757667246964084328224156825662101120281603879865770813806764985727135693289990465658287615711240909234608455623876502989749157755283002516269583302168312576713890396542196688919046169200948935641999035714199252791500020184755586393595032123047624171321274378197543613874660919510876507629100150504760230721370247774255824105347232612306710680182684294940692437340717310861676793297634804149324766224429241539531435578041610864124306455335516223668192867664975300161014088320317525987524451186633628670401413135754724118512995920587371793631175427496098115599037212201543780829396192468859778298728952115936796423608273800293015007304850573264061613063098652790651006896609451766078606605938149714061518957418272903511106981540554212157900722158857494188426604489095166408391612313734692284137706722533116067923805604442036138409237601760643081288735805948134734474919387524089406127739819175156832585818400376724332751773215361262357915927719623581998770536234345278246449108110417656342939461699852097234102980628892198403330881757442579065335053375210334587937533548959604980529739783743081095504591351982063903296196783290682766128423397453023149165877083171639504579753977428379946479688400685121988189378243475214406091902800133653120310961447664496372401724522085418972699608417832639482908077960598941869144684717304744190441322320070201976505292677293125132265629411334292175632255992786506551383291864845117016254227353826441117185711953970875425267129873391697629008488520469589958662758989854188968188942526150874889745669547942006654564742252802576555863347864398406412658312261945605362026637990953676125967144931417172189089549764170640488168054860584917511833530911473091085753376414404376930054329328377330897577968185833516827151342140370382322816817727548898350239051880899757701692006340749402469573156953371923151271788700933439668458462087295614364283760007612762011673559642924060792373974514168582016759855031726123932697022897605796079826684739688778199916522676542094695661893693059941245260086945532138070783618279372711025284767410690991666818887615257722450045958612684715867839678505033153211559222962484625618259971010987417245433412670763323010216025966346206393999948146097939938934196779341924357912162387737325379726470028756005722711570625650886066909143824079301230622891768121601161731334786560007736123954883362545725648322058940369672694762111024516687618488226069951448783264844317197305450736818432172090862511510356982025505035350028483396072543835326739198837314392988437745591890514378468816335457392246955750866761103121487146531836415375407306840165403024696885248608963579820357732699835220872285127643484426993709434571239153671360283505676355316791915566368206351931680151906566476084323048740227578348859102000224602762344768500750714338903876444982759708265749045719229432999025965756530177058165060481291672613415563226672502473254353249605887097294234812571965328385001135317989259973882587072543938551524368065719705108451663052823961080727672041603299064975797688516547538404733305389227283057151318464705983296452189344797251883470790937147614138808399165518090828563898838449783779052317501059985808031653215898297635011927343783115828081438663931400822254974401619931643307677229266755839311916268465197568823697476250091890419726664185609555346978937972791728150613261251790521285585222399804358765144391755768427003898635723195151882583855983754565549432425108613882133718388373205717757613039032685934937098279917731931142824774460379746879300221039852968280506255754905193841447834591996804606880145455839233612530086307287944348050123924996997007023337544749376485667779546951605561510918721645363776832359838716769670723682627112766241109911942036556293802403246063805282468289749296841757997194182550203141272615805361732609236274937558612229141657445672845254236086292487314099342453392528921772147049050764848325945260986291883775706404379567569249742085886444945099011794136225772398968396839115222132100008118202432610303801769605575732774164826177795397870216186419360069660255047569006371975885755287555651517223995703916240977566185265554147568655382547378246843522402424688286846699631484946596855081112467356193709554088458494492957801568919348279155147616652015909431756006572911860415126915486539933873133013706792050585692729857860660245014064069799713642226337064382177784411438128580438416596918126144772293350828076783112761579868426846026596889563803113059504645208451384797791828995428783289163124357482822459265282240118221093145843872648916548269247587714137537417540800574980860506649207047591614882400583217457600077007783917080874949124431638615735078358017709058829394021489852853537745490884223616088569538290181132097797727884149057114220313666737403710017957468408374289620917117463195205947216913238034584073153764936062903971672288153762597044146304600646770746602332290579495717727763843338441957124443321817838688551083493587047365015297466890271960960059197475615036157656949755081352775568736072990780945683840936925068665886111151576263900942549470538591924733512964222176101047483844197496016906281483254804216859686582575319745794100523014797621907820560773022992389723131553992705919746926096555940672010266663639877680416612104398628364261653052872743251013752071214844937637305697786860615111796266724677895485276017220733950935625513649621765471099526177814632398987930991385296633555352425883588623553383584898059139862344614926260595168610942151854570822683475251846182118625491089651239695145799520216624197469973430775511198817959274714227610699320442209573141181131419813941442873716427210914117825183017719841136374563499431257476207036893469938181069082877548506443807130092733559481921442021832959806271851456569158922114368595788005681769002883598209864949708067046657633937824721048259725445533217528053343537090018494403599164484554172821073166297369245073697084369409555957885366611990922032228917966712410273662207905914669433934854359407973243447870308905419165844424882759289625564738907858843206875772769607500154904252480592457945050421103215637681058923396296800253965375171162524088003027019122168442975805723728127935121983103221544949805177975875083982201521728989083275854904437810976192171236363795118158665562924688801273571103257840314971257241439284461441703730309248059486353983721092525059655648158205013888893070291574028407778742643759684728090689837853978911198550896716979963561147591420463361043506343075061197730797000455614350605503824303265951471314539705456618950238501814305832250284620389920273951260754663353367554796924194891735005974058639149850745021466967058003968964738349619975992240397005640707037480579911770397858979934335753555546214740523725380540823470106331128373565388493444171425940075543996391204892997721112278806363540959609780292607838958270431702599031672806526896159311368585660145072398389507581387472711970967069962448843362629639011853329185460584637577716873708918348759090480981212582177429622442952667530436802153841334508890707331687743103934693550720924773439641420375053894212442590087386395056785354104172989194779535804921279264584379786349228506456594094751968897163739560016634970068365773150525013023436767168854658412198594922199250534765066123327006828023130298000413057081255867791551548033464518832820172569037623894848772995221158891544029125933810465477584519695977204144258299524656030611797563442637080912071476590066154312881634871350806294801602273616176361109958830932607760271878525817736611244677941777898379719479409674518297941272989135775773202516490352375740432687511980656391690149773065364017596971298496682670214670034175892125302811254411725649811921258820378097879179092290301127520757418203537333705384442280797245163339553755783115334769676318572288731703169568883296170564972810503547684066832140575512013802892562011961081101331232086733873874036000124504876745303312927083993730184234970294362612260172254882936496792834746106745838150831097944500131241523152885498558571638311808460958381780270012401414958758313956379828649456403194073869643042097843879334961120675878618161311901498714955370584007847676579737242370392737399107164476730052504219074948083969595386503601933843823114193037882147630037618120489171487818948241251005483934402512873564381964912467792896532267912069177306616435715151840976050378890550924323830151469491378984769409912472115659885027198760857273234464729396762798853365009400612494860401450331012474978352381103884517368756936234912365550100623241266862355468576276941556492920246081062468241428981510039128791698939171050815718969363501166834504267284827791978980966862784949291322842064009422573972619705045709164026707248488221355788205169308995567867983396620231539680503719532562231340576147088195424951385021648679636122893927900446837214748913756505460120701121652700490535397646650442818752312589676474984913241620864524198861514380774917340551987594711480114361076437518333897611652721181863009895158436193208882747474730347665879331318899809642559861281435810646088536426234766276505473472458225056503904137219157855645316543162782207781577820235473936767912655608859880956065692497140282160463648285596991625093014366583651162479017837548050851292935163164001045802699503583463385324871303193816982964777225097441453797691735194633573814571635366477567367064404251867140719085794704972197576154652729615571133393617959675726624802413127777926442607037469655956109661840848801437398750883991798491122485119610757916884784894373946119969158757985561251022601051037476662464126934669146203426852463080512433062479354644513318560374967205658191127042392091628676428115151328334583656004392070872879040570929324564628450863731989114070160578675554949691974146643727488261792661668256354653447855905090031542843508506752616570018541762344575371507542482983878272720419973700929363488789174653129751749956389997648512253533242819163711390601629638727193659864821096536622211693656857664210598574909995791970671866623608217740378713084169448716966965605357300443151689198561545538112201563066713015680524755276032193082900709382817052417213714809990471543737631980879195552154481623289280870418330787307527074737509661852221196211220995988029459814854119612261581162665118972235928697228907924871621795201453830988522173019004427031888276597148251090772654354083271909394457491097824055931592481650618909323299158339795941069620104516539961711561893992814337864209125244395910870165756271819236257718459939340781697828641813238247979607096032536673523923571593672641099062638131123307822924023603944441953751387332856101490998483766855038662912861289349509127614500015145897308193778432382524055886825783691726924003451640549778569451469564217629599418813293365826773608945073400272236890810403968444321485622964302606520960802878568331727261382245117595270795889864200910814760493283422957386274832556802077745763186588085824466772482052678791252137813155107731408739404541771424051920664698529785266117294913296325093466878022068203678866916614788005009474910947839768323087167650788201163428529234783301064879230633538602953449599740863329983440475425617269140555207119275820685087198959041419778692097372731505144893710363679964856376705099037646879816362622223259731794014037502231870488416867821731992707489550511009903165934162133849007572479061990046826461523506472824622667712287671627392470229159857259065897337544071338618072159733266350802025016696709728053737154172030053367315197203597298587557554044899926317378373512151986761061936012548359427761886338334961641534788728074058351280069274077553900764444210278288717759143801143253520022267823321678792286849594110546734076782189695660239022608676283599721519601826345553627911357513942894801597207084729640443324275602332995638678923777260621148953223681875855590878420639141724690385258212026639519285968184024346921743921351535769213180178410706435116368751261921231216911772843490613696162559278055924755334105578430269686889339719224692121533124661834789079014653825100978620341160562060613776110217304161926347483265973401050467070405512535849064737291621598084588705282444187776138118904831809745870258516756519000500326010051465232855799202440711264122123703563634314272749260487566420045453295094086481481789543071316345121782750681980756797891320826729284153235398292287331439852891605747880767935341021660269785602286480607627669315842004953820817674513237653492020847067620664603657685835802744179910560780634396551336793762136405093701420551660893111072367266953634762233599063328633218636011176225389828211305379997768991129060108602649151284994143158339466353854692935361332837464068106803117565288763240998910927307563581204226097893923699980426436474525486339310401161248635623318285689327059852353406576457438836444119450646664437085997595360879188616559874197981548070499405829189468804994510577608824708649102365331648726880638216894448715819112140523504606739916426899200384523890033155717770364341193301857907080998585321514203967691427795581580163829026325696956529464119473238961640484110851248414295135579743343386403207001436783414218776251586988793044147077455626507296366132038373174062354389027181134989305264663951228477096234902252214764799067419767706088500980730042262277688418814999667191989111451802448802753148654458392698767716358982540596209856172715949603488968297408222631119388269737847681490909602502063409255394351546494023420819481682879044990569408944669488401723441094720244867058540771999190182514823888899415553715252851035153690996826191870465986899465427011573612607099412123404871031061193869944169911967819884777792921350505103231307466105495704804749657189144704655690633548749238527648427008738307520295958732942387746983459218510272012753050316003575987565031174401341437393062343123811535819632869092524999752919232039666761824527878865083591635207098648171150492921700034095377466374158377046950265938077765514700262162825558062713272243984769496331671806210731121387930355003858163650670373494845819407814675463745791890865970320541433948624838719646220865644002008704713084289969968228663875558460419728985034667757630774123152098887944696596455607439288109903516971374952334889921366675815247438759114374433554230761511616775297681261006713848440497590255858467886813386025838472961600256863250402567807927961445084834146264049469996739712144513949516266199429020678511519978700921515593772096086961866110445255324613733065557199473291372771217615308112490783104675185174352357352172919244331284815227322755848642980720878195158437638332198014103325863997207180899047370945643110048313374147510106580942259358030277797445644779550372581156516107058302841523926692230567394643876867591618356433860569116513394215682272039477922453417663673175684070918344323642989670943390564773827868263293832850724168866420443830074332165162182498528106745226299092592004174389437402452892140300509329764365901746986340551485786990206265404774229139704938058707570648093259835986287529361114590468065915589894678521162274874526953698221465055928706302749403614469797221337418457610090165939710558821962066851294416113646066415220386022709891886505943905807049842758519673532998908231484469525614557457756820659414464521534784734068215697846864043247863584976790892455064602749308712380238430511549847995711571373477291629104885148953277435775228087255160115711128696468569355889841595340900728840759857442938771692032401149012283556191739058865843562934566232424490864593124202956303744993263068142248497418284196179642432542762737214908470362690926293315137858540939344093784710392010417649091249026455896585313876868896722232692349643841804865200791343438611450647243775126346889465134224795494587341651162286902121870055499284971527882752063706718507830288612928770841848399513022333021342046273664713447034502014303815864533037989677765749994968302029401007134497083377189674802763693650686166987559937399996313184120426524715492747412261239914733620116059859282497265059475798982220473078452203711817583918508015424910720724893679816752448207682030876378614428797923569296355161327060307085978699308844950774685330737019556112509316345709700645547910556069058958072282061755297966937677970221612315560445618148533743249558480697833903664900760664397707821967597977255386745402625177193090688367792585571629298939243986213362952169142342493328646624766543146970758145840874709801100380031170072748445845947936248259725247327059551905745588724329763696564093067892949250064089107988484947527769703906779183847778034889405557475118683192373667323210054952578422962787858052391053343809965969702819094892518761086999605061273908736856167308698166999706381821571478889876139151799255014510170690562653043090849633792721189143620434525343434233294630290471741374383482889028824992760122290383751310848546375589565504253702620314738103996384434452903720605157600478535622469529077603521100465248876323780834437149005489896946549222555090184682523724138729172211134410299801059999770023517428543171974696219374580342293868063767862399261824800307667307933753621533001033459556126645829436086921053106556797565900789988271869727619751588054332532711928179800700884010319175365891847439531800228382670974821960216190122402691997779744979593480510414537131441296958478030880493890248441032437628418305185629936754411328334854137383607206726234966820305552612601875601227445459152979389062993690958108903614302489037251724918457405884742416529732466696702471666737794819560483821783082392305452604408380080132668910646975721403988164208061371106052397494423569817304372902409329911076813663778855163301210242496005668643442259181956045752490628494808961854808393334269226080539969422645674841663107321918142971692399524811628487361517883065608173390350297552009372858727958833364905704541468317447556462082856657346359866868834072325481234186910794495795223812512514009148330431788820347520747090988194641827624605795028799487544143994012980961769584386849638517656178858797617021953331954627375294286339974876743782958244446372552980187201588473990776485005601472082562721712135129788420425977410328265015384452217984383174606197958847232827101400549815189599463021488894261943697196842895471725834511567479281152903057187429879135040934800195475124684005033679559751172248065079464803306310711667715055341816001951116164751629660444537491319066397171599072678012631915858578904322131277474202538434762236099959415067905024589891645267659457869649844932167735222979035088730095076711289521294183196993556929690483505267328913198645251884688651645921278862714122738638027091736249073546227301887439076355903845225016257208573947537351460288490297904030584117084597693893523043449169248186011413883818175462336954744789449533701202610502051478399776690112846619188512273228513504961320800068456997526554064138722863762614084119730742904760863277790223760194812242128196890516936277879516469849246475493122809806239784295331913803537771506687516244516025533540531490333786348416474177045750825093451966526959596079265621481366959766852701596523377187956146086732908834306832878689706209674073447565384530473388366864341103916660024532346853787570986850367371341415156147734899011542188208403817699789411173327272364550443346311587650108943037145159560591566537064505929897010459901310709684837319852245008213625846957557132621623486100899249283117293028649394936908842612981998006555707736091839851680267505303801841610144151529334166825526345553217776831627094771967107646151235962582535564303864983589503815738643397920014198822984255602093463460559839291184424113789974283365470667138582028002638158238279787737201235496516560218129943011283017490107881232886862437618063619045375016368293358095034029591928980870274937929123232653969959772198810926496597339579991608204222669711722978732634232645145642146823089655763192272944388656437673673196188056937539620173257154655790983999903568204442382617516456869822514648718653505046010935387524808237955212421320633955091990869801122031807972888982159264806678441141450944500608210676314971038260769271819216308617287709915122165890898027209166729185214980240294489981846955042903934313034762905172316864789392188811748273089363631507692047620484282439421849018651750977037230929981662296767385624113648300363298277600335804426784100430851152517433183634495171820127413319997896052867591366478332828430644878695926719895906609131469362269022581615206576959802942174777427362054438123512854529211791293304620327121357098657554912718263921452608940314904926718456276507485638226695805488987117198923974360754435046382761619579888018371747396809976411096279093145093553702449591356666155844448992028533712353176344446315184930788516724466677643303284262246421764497343108885633502986930490477818039883096614176079775835612918721395766042056905053639388776249849595906415863169303730339280180779684196204170891315758285971867593094867202327015166956662087833148857745967675668548090297191461206885192225386272724414238185258509187300533375170278156701224166999937824234127750924300340862343264111050768740067665849320466972930377015440336893492379579907832186396828007300540715815489793675102186819755069260632988539927255806571906869756759743741218555017721082522066018621964670233447140303812752706862864381029222139483082579028597527253750868509630580200392154326637436896742381523339194594684555151574798068048583095648922217131259371249995609975485224295280870429121400662465737178070425546369528431405907791670963495314405974946409458841232197213189712556053662141764463073372351826515185876829902907947138682094626368037527090429349791375540870600507007770947082186734910141768531486380871501450775124038921677179896476035105643718702848126056777160950980242878894436352786991603952522112209066113493597371244737985977651185616857143455350470966631218230618789354355207167143449942921310989428367116624052823846477342690806952659769344110348642545258077601940934731605128550039138905499422928715245710740268181928734802114964079712888270557481465894179317978263756711745005942301403766499766264531771864024037348442279685199863834026874843226994625216397809889555770466340115446627705741154437678539751175860938937716545407528524091463098512966220306726302533084062078158324399805919735098035837179544669429741314406616991969977887974393634172032908436675251089801572827609833443415020051877516207291008222990183017971601953222621678943709210047350780921984214254368134329343680832065487692299466618612273053848737461643830601273889687691429769426618388435986844110029837601042684359305253957376436545403541770685827632942783540309784440293299936961340116950625073525083163008183816906604966183296417045839692431155582426080396775424747383521577988557411467093963923842987565950364153135846718652732509000074262072636902267537770946829787139337189786561639050111625893920142669974117758986028085354129212153950206504793371459146341871268886882518343532805380140207755062290173566594193223252844217776340902878450067531729842221690130793599111821759155692024899846370774538242424607614430246206487844336579612282930124990392384764018979251075965785649700348943205847016221409956914287065082072318792982625235732874904179160012082420153652715661721339346366745620297748760813756255218110364014564437725416501027779582756393341218255598445417670701754656456647676628014793289453077074998035540328379311184062438934290353397384065374247414170888603082548228100635862102963218465556056935115202470036422151861586439140616088346355247075945984316267627930867451541732377902673616751997823197708272518327538924806936450446844970412170854413910518171250186311259650721159106271608683681025506016242912133966554354700429908263796418582279542212665122391376580039197949573346541168758160360491630842768764407476171977535809864447119213795501830065605992079021639950324588376559121187151593621407170244890831362703060624629154644456816658851701873808278773195742145971635216547316405607196852612420578482460115763826643765110707014173138121815277197649504035916797952742024113332827700703521079701160800138412723322405984338462620605686950705133980934563291109966950270556130129013576329361787016590367199473242846292624105249681713696011143210055949721880380746649597908176442846909621104117949896181188985218947925536262481815372641705028185692275003910167313546375352370516736359431940674005489771534361313157505070206485609052893547203620110400816601241038663784227370377158957076397616683766671251932518812136880694342921976846430199885840629233817469585775289444249121860027510344457921641866999131852866670368924074886941057870031446094910505446714491917392233136908382191243192707062434368449592984853678705122679735196727874674093498297756231610828310961399456440158823071827401221445127729271087122775223118539415403301312240406893271671766482084141162814284792418598216535685947446747216354171975722750964406847894933483211515327714004113776851037899708377640187124235611607719358890113713708394168953149557628619080054808182104407198619928032936474073127597295672577936781190196045940916924280272911623401374473038933386813300168034094317320542282235928214309690851931712293017189739307898187643901639001876019358677817765319415424699291586287826989160839042477260562082336475235770014869956767592007403565913510922817154799405265593373665568200132020185742958800501463685560847630262168536446138321153518221571769028450939994552421713329064547511792041328582190073087876369617677589155921675566308912393109423137021743704486920992474801304436457159280928431847170050708272602245283499889979893650694205887498971251181851269447889278049739122799037359322287077276066208915658802659477751254870952438940264471399055361341510156466779263715030562338900124683395180559094717312996216900490583736283774716416937424223894809915100529086625463236714935806380751854606944939514064717273730264090612729340925501392081462876604469444486461706161189312878877896599069837870255232924398836809975887509584023237311549619327743040209074339530667386732239086904493986221342776873635093068255948637866431953539044206423045946683739747497487024995995711330502278783650992244846072472144593320183948848571073919130511800900801318925047601290106642005601824032831890324737795145153952176859897983237295245547447459198355541339149525135073782895937102982379391316906044374660435342354205545467169061253915386705910511927467672615064876138919670824645498071119503615061151926989601968409667562485925238457641998609456446060694210223471521265030555221593112694955230408610902086918829767150532291414350791095363452465297605328782609721144702043578137087002817016049766253395216494997020253106015780240679530049685454087930911545730723006670520043452109569917743995414604238249019429256607472744409247989142810698458492869444488495332680993363436613469727404581292996333565923293291631175306031082724864936985202095847762918991376888152997594009451847105551183269661745896417711954366996945778497051323580943110364420647547396357464666638810580072535631095573488380489730664921090253822621812815423768412820913790716078009022109741587205310490769310734761650878013520805484189386358931400772632117296360959884821611879814970396420541916914673226584955082162127517322716386874099167564042786727224275414379754484396201517105996223911515738684541263341618515323967813034428228237674800865880910173977412772004104061966570105777944433863014268191888374473503812458816605979156129076573540766739350699766551019412200184818811658320573294948706845461752764857478167612710613792738402532005488409663563058672123816577810523744430273072022344582678167473261098320275850377307325971874391780754335490582123766882344639924906160008628892263086637595488144854683668307033844106723224767456786465434720087514182241363659493231218217832622388569878990245795087573721054502856815103110829664020623908895119850970386829482167494328494123454886556789705026034209150029274926332241921305620995316836433659105975107955521552139162280720073028528478939407315688244071813296451601771059769284727342276832407356999116535356333850049983378297798688921257674862440586333703599305030762532691047937073024193229163005112280294773957303930117622660737741764576783316927225646459273678523168661438983083272355534662241512910200300616352605587541705959567475920580355670586785892647790931952777940031992346255105943039402357459263314740932236656699959690730436134288777379707841140353993477375295129158231027124652215013377560820162535127258018667699446711328248834713776591325598279893427966338587224288284141227633132714015644516365299433486005031778634106638804008221482055346447042701180250489410059590103830591147286237597758951392563680361794931627524490064685659840757164899128789047487983315534398794585422427658289704495636667444652743563172466457405687026468395813143955544357275049533081735971158533773937910879806127917955295912500611537278092942066379379955923897497913367909544420870457626524202756416134393732658121059020220666846443646456431140179672583510814876583889570601646097829292924680734220322489696009656315986801867407474349663213852755598401981118787692890497714697753211373249795640308226095218237382850961529191882817261108288253494184785475239344812463527936720693073658776811445720285198382173348391937033987291367464670402093957725964903655856066548718154144430878583150175483250629937906717894434310162743725180926533681663254830263339615420533777462997196226412147263140757129361320323546651054149042210529053561826012500821710495444124598688642656683787082224183504860067784963053957302866788057518141309196454091466686669432434798997679353140407890507465866671260475080808366642738922969300460485750931108249720963858443226249714878633426089639808140354935685705755092402653320348440128437227871367495853280795106732848467184041799869886415369513183071884717081105399323942658561153269630166685847384330078707378470862656003667893542513138930693403842500065420137305817943942459307462502462412792935198737792811752529153504328600039455062528178371238330137850804359880213999365655096108267254641763754030804243925812198962920133648339014745926387616618962511856194551180852304388099224361156204729531121959296341593081965817443023748980790796324227052662337170666004105972839821796180673631161194132485498875338741273292273126405934734023261109117621816528766085939655841785041225249293741099690519333272486084578435616259016221453365599374613253545612612168007760454032016684773071452306382433903202785641596844626551764511270945004853702498050564290449413037683892147693069240449121579197235048091615524142855600531604836935927326108997221406690926319159050589557848268656439822956261633218402617995708455230489603078389277597658732491827771266717426930736492472377126664108568401489902227158749099033456704136913615057528920515641954804245935008694659966868637395984161228684009275794552861683349809994540075863944467495457203033680213673655373257152355610783252774944035172447809753037090422551313558540056561624682937110130761175738130983862938115993178549727601417371437865813003355254967379035895318519173603031538478610658951840133032962071592098687666441565564787959698021599373568887393195716848173633800117744422330663766668072479085419923831810406151342341719879647784195002363487513896951739597383890947061722785750115497647208742715377390152017311593468600908676936176191977230716928348737893821005275505897989223773970296423479805716911101073390908256564012865577913642730697446932741311397195476888902001874804419715825502362593452394238119237757366089952823548303966640984206390004883039220553171755956322093005929442644037281614052958878157272859150698272033662326550415204666440134526860340576509417426377787828705765903901875161896000307287734546326249377701088660496329805899576572445555913196432328886163748870312335385888654383233860452596586588080582016547176482199703782827394874779081547862269721845843974607574789866808088395076075841283303025772441470271665519453884661915056743763868206301832278444334269820102559391445528379153178396189940628369211040492152392282060616778335878359166668182423745825189485894564705906664949599779859403872592196726388517890451014389372665315698384326850784122659856746450594472899670202170996540953565773270213390966904020712310766879631256889443585427170907129435581528919734754542476574982524480523252923113068121107764129236543619202476282659442867554508456344187520508263885151120037235364972313500698524079193415963617113677618759608261926110421774128693563747388252465327554575584002879041935978551260243709946603062026337976342165429528847218438059644351597611412112652922230148437655286736585179717850775811457734283717723972835316230952870273960211100122164286472076666749038731734269119306184801217347466376848329802124921440242633123385421756691217438460585726060390416640097381027805485520811336951812551027576444594527451939534906769304744999061204058912147155815908284399141611363510620229428664284351218814777645089567606256896271467535590982104370320989006282319863201349054894022368702770056357511131146078217722396620664194572427461142767617204577082891751659682707227113077550178646550719827913621216081655049768280878474156194012192525762836548191887950194101238437623433446606105847942675780674132456985811796282875449924869661372221192675539435552000321125190160315845763051150490282525342427309234598438293424410482154903766882912530398678232461604691259021754204890969273213875573449826572577926057497425386692821553653259527786366745544825845440240126280225256652761828275937266274005164387039524094999332483840028836629296182162062238433530537635571184826440305228177368755083209887876134050370507436935579937005633495858880090652402399633020236741753276091357191902372278062717056623167519552429244117008890233016809027945334502077502620644530184727369777311330468254791192081321560787745061006526901444340811204711048659734736174249168441122093628254847150871180844579958952455166589551092794002098747840552769037706297731554044266966216152985376324444136495934589281202876670736040461259972318689855923447261207520283841828814751872053734227161914837874450219730269991942881248466903714363103471076665164841486044803828672170571977478183094093134595689145877736057138011026444847112151037254948480903832101716957249184215170180007840042451321673308344909112298749887035216315622700789761743462271377902610191191852104308956038718272945130686471103509161703402057626586448231585397265296752701148087183005625356528364702742262700381105979814217584128400580676763690284188381834581603699699684607385289869081616116711101537472924608499604501273597886433245773960701767589444910935123142660134160904108939995131942244812021383907519663794677343741932897591157240975016636930789112493815692197256430974439635660772650161306329161021819207551895647561697021427353082728529535146381955173196747441916962831348797527617826339637503636239397732581506949715872882447548106957708923009209124596128669891275113816106456904468402805616041157678045672520751433451379329713838750176533574294267154517071367062721571182952052841516749503848667057032895386366494435238117701253535506105095485061011634392427288770168237598562350818544121754209357088423665295576046074841351288447970045072356801564277538192584374691299608324745061135035113049673066955931183988643977940504908443731703408512716653334059538223111940461147210621839829775047814492352137562269953801414390604518113646520160784722590188354795189030277932249071359420785991559167679068176065040242764614403929712319716462441522123943644000226735257505059393271899246111742116991729112280287908708878516296160731359341506203695595324600795576305128936723553781538846987733881651112240269869109991063996113436978959155401192297008725157897177710223823689839410208282055050618517383214361200111833579194728248710613332214675419106611128097985431616428044360711981638216308265735037069365700357402157667772074465357003221394179513236439402478702297462241830187757377176211477566456957979774588188616678677488831640619510703052489965908317732481136106696996400248400977257015456237927550853459342044745100555046976534554354247076081866523737474178403814818253742786527983662836949681248295848305512671518481638425203586035501449782200668970498423665527884152400276440412084695350178955441539652575195357419905521371367587766787513674477778515926523177748738314186874355292158571717067555637776214546882432409485403493320172816683581705835605607006140850992944828100879169619441471147620085915038216066381254994557348230611024371865451451065966794811914768651111077644605845629069548000157662864439509975460651953658605403147033473635675356729555503999441041435554176237993723149714729486763446401232825557709842985152336227001867801270528010233560371534323946463341539412166331384400124267028372514562416364817769706297798041396482103228563991853977559232812710499114321673203278704810997638339640455293094800634909963233007765802458521178181182748978557656768198038016327010072008459770858627831525643686235869826817365407490484067787601973222536954270551477057006289648140963318461129258845497797083739508227084569373957858466867719851948328634304531447959214524035062671998668640345857487314952285980048382585897681456091976936133181633842157324416837313871713531832657376519054854158871978985280899338531162635223757535043067808783743871361192837093352056486081348675247251493880108430523240316285473682095073556692672431483024234162045666974989362698398260327686342484416500271844758221437041719801089633082146808753379943782019855041310800755489798373740931199501387314953228969184682193202470439864410293880359267927968650692190547365267725001257719865398906085151969760938778645242214659997044757394679358810761322362602463595655672702590380050713882981750640470369148207748466629084908205293578372008954711463597248390387351047299475437035539064486682830398036581157448882142801254198595101378442039749704896564947608758198262689680800439732374637377306469403704595222260739698758769753643562495420488302993269277427971611325653869750786355420001737336163368920288599711240043053171331874238417429426819908402812394080146412747410327179340252462481758742570599801402913273729921753732870294648569342880291580014722271159512233259593026199074500644413446024638350466754241092354288573712330292311932540531868552146210225541535635989309798748311815038244249724467105144531718006237047732557652564393097186682062994834022806396140574893081660666895395575777073387335313851272859649165971128717168776960999183147133055032832345121131904490471034689850221533350693820480249305621889236573302988267236806139713722795904463503542544626663410213418067924242116366674545801254583871474788565205706551588860501272862546697157557307181188441224645408299004525099869884945311350792324933335375062085508949028509219134210596256425399681688415213084677239523508082001052202861893890394102035115928588489145893659662359122251079065835188243383209939703583693510100298215847716306273830671865711542433921657840665185279432684211785100596949523183225335599705539995778269279659229457585783466041526757608432110413198866852691811390819201526663088374920585313162477605987262540929644013132612373258292350096681214239339020236459104927368920917221909178133202338852681786257126676849126219149655429019496278442641826940681754470815512814062544561198462257303748697522918370177939412403929765606199101055421605164704285554101337868240756862799756798228811836634068017995762151642199133991806716965449053542921761263765805467905111816694064259235530659996622330439819668798082237760445522915732988676433544125038719096119017070998127430001754653301833012727745837469449986441502359503036900820845281466808389613580686065465379218117050162129941211458655644807602715897585458842370722488396502326018393820441988068859631316770452449107646045879826148446339944695088673477084718384203535849196175599310484037009662074257845675232906641822449350148143481338480131267369454237133585736266360581100786859713793336040846466990246577932606554971126085771901687361144794092609461492714284219547714141558529142805209949201296330633383077064346394947836073805909960018095116668836992787351591537605396932103197931709184805503076233077587861884703243997629309942944948430826361890609409852761629962874497756211767909354653656965477529949011277853324956807727464081404881514143732641986122047258833570854555471059447757060908940741495136027891052548854945657452994641661690903501758743368931201263853382830607348644355084775438512931757835112058969337963444799443587379663563426434323445734633201440564308376281336669086997371909028190570018049655693005446196005768243815390427732795846871617871321041967806700114868671818172357358649099299677290078324584573978392988843453252237517118903703367476588870251832940038992647698325876243129454705729746698480247046114225535973014450698991683203964710823268076664581923965594939204583695717605584341663237904641976119747274058606662662730966027220573878084392623712676577965640857600887001876529165185227189430383908986673812793409567144162957217587161862445264256841286354913833337355884040177825360703800990971065363582054923409066702856776422918142932001579591708278871386592398885418781123654181469856135851754117073160078584834224563063411577849487977672133544203623996617506414798675165444803334366998571324377341699937941223141420539644242315904119775051155969281595317710789270415625835173148417749077041178770354536411428296263351057891985420216491270935264812865301465471020857821534641113631941109287663251324903225225544658731528693989483803995853788753602495125429211116568066648982194075462422579601840503592558690617947638701878078824932185082924162013239341886155403684083373818747326938988052086602125285949384621463500141306627086014332328885917629188796259497644569595997952007095301053262713875192232524180482499129434498970513612932006144442085744887289136146609988216994222605038819391742022238651116390741933871737055478367202692362310270812888031692459922697301301546009459493842878731206596347125380802420649624889094218382067349142379541609704872565340209353179670623905729657375897827697658606479051595707952533489214529295417079020664469886581465133597825658411135964831645919986519232093154029271216064229355954407324814344361501246014888012152806749142557529513717318156841529900832969755616821126975220763259401231039237959811197550972384561137868175820520674674395090172448492092764360792712969740905512654066949001373196100521350693776421461378890487080971484623147942519339861859082406495024732585195048116341689127934009687872166449539323497420417825278380235899819972440011478902245936778228817894661800720209753437717107897149904264880708631919958450806090600803271364942975574433221442951438807753021057285451235235894014450319687762320617592934218387263647412244634590928762376997120617532140152332556879708023924720353564531223782519901633818032037031679884932856268621229545308064587492776341376622905550234099547453355759883057788211712632302000306443228650519686316555826116557414301714818359991548820625009758213764382598705117012559646261803528352714071537263866313949396825512152046713790838047223592746212952896196087482545019044363543088865888619769183236294072840460809129325261087716317614195949733152493706536185220295557080701702118450380396758369480677488923483059559102959971454871866127366951872290790825597371537285719432791282613712472943142018023233073352890256264686072172280072939073276588525547093543984904500693000582508699738919017857513121960806916873466121427564228988243834262317629320367755003726223800765257409978329092736161201083653070741165139144318617420585559059133848565348417210928676885105589502786786560315051419950081738424124286677018740940562991945252976460968282528731997538647917594352256956889636917743522402253343314177570016326006923335628284576507916744387410386757463861535283987425372566332778012655825402625137954028526464300289278069340842534339498752895876318472504666593224744137878586462905678006968489234547991477431888351517852837994760668233684705787422746557839769155514214331430737139577497009269068389216332141055004978660942845138341433728118773909300073992364610423519071558047740194184849467699976098102649245173324012444341616672130313439743909021717649739590696852507680575540575421929970004762084447128441762263548499077309917379207087790278147353288727855832774951229042688436936230382823485002203640182211830132164278380656619659081602631754478111585097449534095573664465168575835439467904697555528580152925493035755417521996719763847583048404645332556324724675697123306770904956950390265101139567754419601712502456206070468600450287335024236155618156290973756902867713982258901582577417717555103491914286768915421111680762162676359520758631354800779938694033214040615618507244739224598978264558760748384941973047802765554310760238862817277621674884271482662804993777689129349299947057306316893966036097777450396982291828655318302566011997713551056331154972295361259811574493711552441229202557620125595238317956059545131719452946715183054344854328125333425627613921834764470792377413395432533507674338608202368877284965751042106625474363056959436275665551912529510046553989417757152134467983582595520088517879957698741810087641641590857713913161744295386301780959569232113000415535903746960736007856122363447003751349486330346800351315608051661074545013189990264330199849504384890959459061518451672126776083522654260488354054481971816770258579157228429029485746173826924015664798296140429391707417716231755300657639341060664926270445709916387711372624160667388964689555208777531992686495021017440661575651139674593362780978506082269792895218847787499898050343440275528918908279657427314369637342271270019141594498450460504017587944274924032635509704554342148039661382943145859681000167199407191700284925917384791742165368514829143185241617232184806062631786867390822089273479403027560693817901395417461415009300417306019218090266954757672972297610617500767682239779221651644079302083810976380191495083526995922308296009045041726231727822423348662248998509317735927615573608029072519542679520039582612538361862596928735787467468297567555550472911005910952560129799944088284168301811208251259801011978108856532660961259112894500611444547185742405435123495801834885127854785575645701499117356080839420075085856292576796587214925801590716689683983964070014947230124839212775023390434755888566709339937295953300215303114825028625989789858032372403483087966972321128079311236077968720497515028092754099522341418164173497301696497416890091592674605750417270763514981181221342178501559270278037124458717019271799798168093001752696624762641925970504796699194641361758223125415624884791522898237570640755764971127856363195489699063642432384771395075394747514977156939343192089179931480024483356914252139609226526765771538723075623935618781720377309420513784494582820306197579848447734297917218541732110783645916001639272358536174846227900533583107849382993677959980313282461345613474279876287073237800047294772686556560015643845399602320972292684197371333158818567689901248952044472274803432938074715279038794609762039240212543638183392976505908068189770693752258289381214205651694606564149314323077441142880795957586163507567910971867838916044034328481538084214128880149312002393687467716819456163827579067105758739104487822784847158744007668961415002688444088461511578322386974162084080683323087533700732098639225050669450095513446184734819845435721227290544697352905241418327230463716128722028136637583171728168871768343716203747431116401543220436442086109608476492814023158780313224417718941948744117724995285145940095589034449947578522808891437556436237371929964080462601617483657873596709335172295833719652476563329929748394487871469906834590482340764956377776358747722069713346535053686917099718586299354650742079840131448208510050955160057393256512377722169646623832989107663156798390840903606221338778065006094950479704130633885962867839736856100549929923386826626776278274317154680341422271339728832276745233286028605237555114709511369535387783136692191659828189195330354736121469517911766609989031058453637399493108270630132710004504011849563054494586308115644083191216116522078393894515432801690300911993597287353434838040203540698543027229260260271475211303739633557226824331437448504310887566343604750115102710219495992457272698254492193507266096100187752062025434937389146480048436270619958914946710691613771482711792350118075077756407067963611306046214083949451586361831274823248554440109096497929128530380062162751417624457619446737898302153075522393964177743099007968158538309566531062234601125663179501470271445684949967506635734909476106374306856463138179636792589382385053167903801895401383697050687612003183344724873828130531509768800329032060136262988139558791416987266758935148406132385847055834186646699310525264019866742314886855490920020781258752330662840695789719671341351184994924661230806191713042510771117251311432200482822602703437609850924007598464479451666723956017608086106303842341071956574474168216987360118357836733599580172362991394551588672514288379756184385271131059630060392718689515818819497127838783903660077215952904279958001691509472039046216401297108561727608149329082409079557516380154869643419256908204127676716942148314524849859024469283049881755085570386558551831053596429861727567748142388142624797720573464290195234703268022554049484274361534101278938091293525513411306846525034548677981391339993489553151875573639186996653013149418767451457742936506901773071879127286474851086360618895866247932575635566556256616372233867043196683896548629029608949077572674012864637523695788907811302380468910840858363499994793892428067902637159636962454332873265822402815355031391709452049645167602820849098020206551049793634984799737561204186833404930944239452254712460357114292374004304517714036907924679417517786529731591490523353420071479558824564335113338781813713565996774345591497132258202170579977701327901187012726537880191604989857686336579457797542698108102875019642699189826244755564294488497885287044579149045438841995484219530912727612228743762234892138601264635996924653509212934928371338105112611956465413149709415686948670811235554855977882480190262917244488109131818951287567760192590551234503701590442487088597267362286131552004897351124296734308774158275167450944149264007607373068944677551579273945218688637646082325423638105737281283316240217038438647921316374164513817370908007363086416889067893725020279718391804219467226113672011805695789244079986119049081074576468562797089687163395043265097942738530861893351783526644364239508595443768119499011226068229400137232533146065756596704442433162578462057300062546306535078690219879214037213034087172093161262125120436521097108171731445635794634962062686751163425391797732934133223106805990725976301806115084282621626823971777919433953602521137101475548087340293043364154531629552712185262012937718850431847944640939692216376775351423248678013704837636133305514396576370370738275164117716001151167121403424091929017837608101441587287024115754288719521955894741743027531246554185234562880105621714556040448830128892526435112210420598709690790945867906914163632006747286882919590719909868609141464281157765107934928457955513029025071421069501689404988032329316362079292810152782415066836864190200473105060305054014105799720329722567152067791700623922784960123339199238557298111415946286629468802865061227355425466699375487181788330308967553292280719934473398000455693637075047992285699970783837309785047017508321096853505591000569833311558290914523552444575906551414248619692730310938126117898658140127637941160420566432344797879464926234825983433210210275789496352463330218628716058623866739104125993680717076407728952611402750783546785539171104591525232177615315106109031166607794508968187933839947336176504793935633540030774979370794037813760653719460100574378507089075946424164138493426317466120477455972571684897643574992717794798379451220580359176527554178435971287127142345901925432967348113193033613507914374639202993551529582959280894409918632884023194130944321548188038822935810998561870377636772246538680551954831791203464438566173626395373463648527354061105949011434889588864983506538129849341509217026474272732671175332021352840194518709708691025962093721119701733086209150637680361420656601735240901971906767201517371037146175455708735590905131533943211434793252953669574934287305649456134948682775899663707033141023796110585298789101485379062502871671322608020802628312130430362115474463122033458578499474361796204703482368630503959840935895471587250904557624599833365728874232642376595831817620833557594149382328992407138579976580689984835279308367505264939392500566842888813516603021336113087289462522613869505558808741615339436207273632086745780959619961979425759876522336601738278275653869592105632058498464560939457231180482613532949072296169046072802716906964445628180137266530606932097965853170174762262873863328620552517949230926798707559349836855931145822929650215071260725022521741109578191740459154446105907406374074786716697605768341582792429430812965114524601557239509844052577020543379667279562652789063158343373479540781742816411013954955770440966553220525500765030856639521475327786684671018363678335903040280450275927083553297233792156496807794127349736198879764914109030790391281322335713910574589850153991021827783420855737904003157927687464562421370963445005112265916695093921309492271692309314979584928138811128080094769703632797147636497868949523100891972381495133088728213598951074078964029121576992399913064803281818443624150968334895386912836694484012778607706793768517770903937029167771438171583739761391873870630692019483756027179022024752899037608231758695019140924906988442986967683470313099142502830479729412001359600636397493653830093201507364299688730557129358804451530262540576686406002670070552208375078050638974956803167199747257640583861520568014459827895832841895663860034812726580510270531903533842218037225933110133081334461447953695694662923533090600056042676687207386694776916042477947843543926027402151857486769230211641991791730414411963516110489014195091471696058500343645322553758117397129407271025803812289694143071222475272486494155223873372921768850045118080477746563243057591469879830166366316028315070004107880552423814900338310330039381788567402226733541375604117814188754640026220603505263813207939796646785555427640083722413262307745645512872894820265583869981300672401829338372835370790472095096150880764821295807803683889908924228426393115551154995940689152945814942547060103984268576335902575530365501395549986505917787205341972180307002994720506497328073935540398144774129210376032266984970499433606538502040803071536169640751819646574499490768518171082810318171162270573643716906967601411118968793544535707218255018663963336726142252255397145469200304641063637024867855637979979565656029806055366184051556750711812643500255443210441312038149092909793970105707446284782617569066170883958910699986732620289672564494469692975944640749298527330659167602631333501292592922336966334603284666494203089496281945658647984237974198217498977878127460721097147478100762209117773957022838317708718238051318245128345755475984467124182931772041326519109755613030666506255551168979530360970157363195880727977931184826252606076266830695551217248241138689897471505255400294587165913821958768742046135547423005170583168096458997777795966908286417302671610654957808225834545985627932468384870053149010522074511784250198214753854667928415615177415593675452424347219840482497994720241738579217546348791733876669309484130150076464944574281604042654671157022963629937440899238379445602588786147847864568464999068276194080691660838104653104994041233347130289687842470717966933453578587807145465386446716564223321754332175342051717967930661106693945175005624118678854094112238537096769306998854761799976164853019454653619446965193843887370222282626360556137730861751894366949140936338793884592512849998206493028217996705539395733371128405515776122297687028690517528108473647798333734369709839678663497674463152774402172122493901904192862758333512782315220264621499238750003536663573539154560176296769518139050018080870312501426854645629501295290785691062662377910301609594913327728289828775217830723872404563329955822477539104388857808900113536661135392836788791266102973097768168447738037943104318903332831359960212194388118458335106228087743290057480263094694701082749924477856108169511165499606675179168385831687754772923661443792329678236092691941346755154454972420158557262508497025400314427391630681022555232873585133113562229514345001038322261089445433613392854158137985603553566841743623589607592885466309351034044379241488683465341848111139692284677628769541845937232712124955947529672225165882791385350564282192804489204549179799305658283576110219219110295667554047324238238162065523379228697207240708199248601745010596479233368202608169111824382139403686445887379687749165902628410603179418673009574936253437566228108550735735994377336278467819254930962524797626861950450487324674962339112791166791513384663753791859338876230627525593953133381977744841040999852235895791762445079646700194722387178985720016283260630907021038319882120870944866003549564213819555133185629035948515073146943179748230283519062113698184904724352334103386570582595860152359027252350480508861464775515827301608469952807652324830148527476176628372582632297369705177981119994304790169823686523990891951656112824978738726701837698607993895176769134564449764494860931990847976337594893282217919105089203424454150435512679017060949432000817818574947246603293703469150723744756273186377355730048214835188130622224424128700280312121402625116688082604086874022929596894546191872561662339362069311733142880429663293487183200091746986653990726304692149717281589021848810943305068891075760796350065709369887718897259378702551433979880709019359238559542969111577778196308850600244134534889990274624800103468510360019934940166058080809720827358302813516951748588632955502455028889447841325243257575058169116558359462509932734966103568392118048291957588857944516021364453635334270800311467804723499103747156152997853458723910651208994862266420038037912403904368187237206509452217510325373834053171710816362813232224363800083729940203000696489141082833089552712001107412784688173469435247540036479788129189944359913437227407814514475000794880919191214923279692858135440256978079045553147587401303515276293159450788268423604388982950724171439013138820540476241747648162397727164157583432893237882781268811907723642923224973778613152968217642947691794662314708790812422208531498583701913966125831807748568741947383900337756456322667464197138048219708733525763265516252777690234436493708244612462060140341142606524495787554715159219889738424475847696075552647897041871827025183229835656806618333682379114655914823491041019362655751270447592245511910078446411844024419032078889190098094402831521943513497794414427477867157182613945737099913256748927649356924371390580730433984823990529219501244352439071980483827385067427756050948415238528416502476554437092295881949223502929372281626870653473407680644550906818313137461746369007644874164555568426819751074039659703650848969826400007889521737632010631939365090113712789252199121171717048375424169859714316032861407699686249302657159958247464637296069471250686909887082276388510867116926765591748361099285753710669078186984451661487086595776696566383993568006034580924407005073192472889093228687932468060755298346654999537604297334648979501276437563831044131472947710002618323416500747423013529012762241814851331823752002192745455990519545145608146346408425410484708095907078964991958288778757434297920770535108389164681796210979252467616225033533058945445160227849079431003298700674380771324913791930619463729060502895650286669322438157854742936520901319907914002403492333965138884488643699382237203080635813353776948150288478880212009709170162355592340193230468032923949674316359627799467471205576353348426964427297128327820932763674494919084902926555254835855147349075021541854809253304353251419014526878040418688691879228688414604609638817062273264162198485428479189733080633534213899249908545222286923716465569956925194009387014346008971524867537164564567059658969936973265531581445675673861068154923590206005727502274505812674487646291034363372779628201287492093370449817916418247190223744954109002556187056462615993749135869145979214767718459455169311249948686305730046130121041548560824931122067250936134707954473686611070444347313478104887567820130663016725371186660021034800641774027236360128492511422697443997097473391643455715638304931213719526499678318340253080150071722072077212645156176157790052410692615971363660409615992755050593792360983401426247291606892418607749049684113403789136528930121764356885309802204067066232930738818639265502788228802853844007866428102398356132089373560679607518220451561962517731250045798175113764929779512967101203510151006724629227974588307098646655295310925309811425379475743632893816988772545240407364714262236869977559019260711551316331896891272443494098614186208207357231947792592568218172932982629992828412803792355549103853851368650796994936510264374799918921062889944883221482238426514760114501805458077659359638877067858079205161480474667480809483035811321179064925943373289226370839942684866690540803259669060991473618583749638817810007705234379103868975903441800187594614994099708787132011126565022113196007743930622816550104449406889327330465982065978755479880944608132408792100964743475064716958483082412975758962577111022700455644501360209305776679047506610741199533517390853699020158253949287978987093976225544315711618390720838705376951486669054229365395520397416583618119042646637565482406844476882660600658156249905192486210487792275946616403504031618468634434981589248771432805554685852545319670301195346697821078009449649257688506409250654881995644606422766447718382213872966892848365873317672390459537984436077794095007090622506172235483168757551592033387842041252539043885337304405657057137791037919866381642077411456327690017813855485070302371861090344790354652104806085319980916393766997297990236682792460988020892124649299923963606442367116465213641613803220424722258407569190395825368574193645821140553351583209275287885867681001351725923209089369740990075176468234985918053167283283446304488562925944217571890439191785372524966568910541941667891867665351651660299848042386351890028563558447470816980897372549569759194628676437978795061128059450346395489600228234156670758331149971086342818057286386318976996375247761197651784155476339199041190179361370371114009697049505507993266147422427493194810563580637823723607069331956634414538000715854109660760712871958312452555439480261382010482447349652977689467906680500154916983627079943040954566542642306817610706399615821909979004511951216766919247169470344046583271927110531092067545696503665503299313291690817373523340341059942275229897434589250950322821553892195362646101669022224989114010326301480557719023090807935311293990616808342202440356633509193156918036567753392913115094383725663638777106880273882480526200690773813255655746449941664203535256095884160423558667698280380673316668411325976728740886950206532391944864624385269443572450227405293994494045670975254986400116787744817729538518846010402277538899550862186316051803564015704068914079381013518820444509163544116649662242435867704788160677027323000358932998659304642028320370740738741291681905131018103330114745476983196541457740271769148708611449866535352653582484557797316161092235292648179166915511704308538149162258442312270983985056310314652739704022995010331270241600936772907851957648123640394245611717850552898498004234520650810975991254314619250263955899065913194534610560265626850335693400484483312990492113899951362732939786693251512342152483586026458638358186656205132520785190319532388964283454069084935478106780909448837902497412577115958720497184664423999505656963399850383352945003242180075920400910049376768784153663368683777582064516570994723872894649022186123297544779334907975289393544075311311375476653993128899412806769177808765281147533812784850183808202938152535902903546704694805016197075406094280395738139647053261333749369646279846971351384867417281786699835059371593949907909581265753160271030502898086102436486226487810668074422654016779829831929276697340487057682675648714666783917996956429692076000033642534285361156761492095164448258664106241861259176073497945634740659289103199837292999744180824413661550499471014872193755856741922531658273458918570510932826321203876179949817888707608975421012926651976535991189306942072026259795217402145053173594877646323715741277542374154466468598202030600959589137036762306696858901830340770679094061213957338206047007189641604135871963057267109034981457324525189092436699623329279939463310145395530277269160873495389756050322008223103527847829854377451851065711074802104071659645449128563916210560491941026324490599868915383317564888466832008857892051642057960327976347658198434770678846314281593351767290543678700946553944894708298180459864819535375439146689035562885094790800927542452213542743548272364854568383005708702738346146887716554001858752929671924060767802445030056463959374793883539913899438698981468828981152997453899072616240077575660156478773888045892095406977814362346455342565941002549988747319833988987955747962229968160186178731481730009436985468550986390836137903088637819991114821377550467801031099085494166248886895881640998062744516020361596840232629928712237920013817753242297324505069553624106192447325110821715071642301496464270294121196142603013110027585476762855624688076598245485539238801623997166228754515660574244955152717419602988186327257454600358608258551485068791745243596831041990717807824353667645706674542228860563676619728391917360167024123452168840686669686719525285096314049003848982722757320485242362338424275844071378874407984001041120701659003950315753308220651949634574699855890292156161782764043910677207417518057251010162980828081230504415807395322562776364514466912823009312568495317670287968473278849929041632305784572169036906782541142255902769020864668855262115518537561768464004171796781461537218111344602282800449177185328919815939689058278106113141482438781622576457787365892544533220954022255635181186102180738397553553017289041325323317863732990599569804058951177272239421067103211339776029158013024521827918771214010775081650918912058653923826661220296964446711253120590202653182203914017674790582391535099210143204966112216841083506414554518910298903542145583154255231562106476295649795224598773294659422899679782868723635926604841011469489788135625345780753978976360492287102101239060182179289801163834395503679594205614082641308197544630593653795191248933586811396265873938657628606739992124613368725324330908940455508784404292569526990308731976085523714879869949870408058345533451340348709430378121738558195121491668497456951468793839570992932653319895993309895418053938470576675180397942585216633391486311976384105394274244175734351441925712228194182599509052250581424980874179174614880267639768108746003869501821973814878795329521886986323225134434404660175585630609300334070830432611978074157906748555096717860743010851864203673174765902544492683717150714988116913343430776204500678198572886374034556377502603935361407080127914618648330979886198628350371282184652665971714617629248283858364385890204953001112347490473490589052193113309056154489369425251442531293193451531778379322938167739419002495537197073519157949855594363401380942127253795116001043171373317661847852097510250534382483110416233077093622959689768467945326589937676236486563388447049896513595613599138044861293349792598422001943518898644736808212261929223304217744850781188648313977817872497870106936757963161097550932691488219547379884425544249471244330484508940805655560875688256613614669208916017128735395385198771170644895627656402525881018042672908819841857429911593327376751865811197612785495757901079059765123620450347067738927068989919014672074567861941149748357216245895319991120630933374958214064758125864832641195712523664638125106325799492715218451281451671009401587130090099336250242858728394443922534525563051765552778995391324645690688357200319805378366538365606901866160686631405087365346735986982854334898204026484192310166901243133351544592035507856464930762690559273226829293586429542570078565692850101016749018852841569909441541663515074860700388241503315503698458179745130075126102016588411699617521631282873128950811947463679566868011567224215205597134080460687740713759681570436502802289461333095974310950816150674261516331759677199510351526304959068497176311352942335099139524134900241730697076561802139166650490083102232311048281105452482565875838963425796735546751079726296038198159520684015291338064995377633684791183470914483327402669455126135757605954508429977222109464816622691946801163158575716730646599338441343645582062121785487479347533668324078284472652507254317151250739058193370288072554741890917191268795951087988394962738020760436273427768900231669242812269012521089878355038754258653473176814426845471122951275270959680224094052874709929501132948206888928954593897279191486886253046384265699115661481629362909208522724053275254719845716433602813477731326795653909450346786612514975399398003694817051987326504875953781362277489718319889739346248012422215743611993632882075401678786531094644346078240294609973351545961322947443334618884219437842429317947770015105441930574638968678155560418792563383462409176288393100266759122380030081510719742836375105745199753236132596199116935805506871916328471913873744040154303831330075386739664237285041518814014603191496652562472240542529890003243090469424080145806586925632340765547666771970572315295038687439837015365369658041149128641811077320924695130221462994464317162583182159312696847312754768350146627189405872201510367578553307148468095437186558243806085237746542437287301880455232585674274127383767575359874207562384216722222276103027762741381920488361723184794799488465786547444774415905152622640143561334329861532880808904497122315632991213843160115760817851869187653418741692664069585687941482632066555154397507944995830968290894507259969403458714269833544355955373774412596315054404866288814679021744890336019218068626400938717919416295130717311303219495516963036956918083785679061415595458583051895940786534277406040525808131585510982247181143566216967314609997872331949632125140052538491800627724786886323551421034381576904824276500187668467081601029751662482162633547312851692238297398581752087007148068659786938470585831275709663779098526509025758458187622016477232325697990367134747180209019896516182063317056256126819292086386087222801281860022676173078313140839890951138010322048889632270469015193801314780434600225127368141008069745205943642386236263018998268726443306360555645181453088342138546487166259709684619288571539526148451986777693673451907384439533203936594050399908273451426564432576038417748925848333695162188681973762685805460489485270860835245206829046088578610992103641043721752132728892980192140907747826543938108601856822455034742654509166192834417508324704450256441011194936874398731170872582480697144168341839541504983742458982110540632645514932014536688840837651395072845027228330432540471925764164047982716365533158959982532966531894661638047814675427925244848340375635005051986126424305651755244713205080636232609195789052287267779060544930753604070813993274359097496637636504802867318239731931307042528341130368309669243151886119041836694660008623509970577422392926427190534441225174785367797693142085923926490133379455732748006138191396277435056572030488251570371172016396073726482557389703090868958673929734058286268544682980958927008022519046425596363179289987053080241437973459537876051415635018987096591730558765634295814087187896564264395349746115141652282578108256072142501890965725576147910772740813097560554928131685339867842760017630339178304954486766742635401576307690802268230445056725356926954792365359903990997504191574519283794593898549996371134990789195921787633512547112910268546456480167985790106580284683686190732059515613402637195605936504205530307758466270718278831353666688218782387603250830101461367801895728130305771060589776418916935426359888761579684027958868730551212173300406332666760770920534613408655219433430493211827466912333141028549958566978344496784614218495308989760015193646933681236757278818806887926252795134142654975122096065499446984326944119418011517623172710940270202324645232832995787129391658118196042411706371675615211454608884979952925399072518048242074538425195257019362603688511558876224918540553426347777356138535373250097079116642141372440015893543110860676707719035634768892429033443854990733914792625430354172884642819889082410092668434783033071841435016159149639551368557201137821086618757497916304003189303290431622402516381616080569529181638358455090625712095085346952504898433211047434790201115442817094781874636772416517701999811153216130613460062318107665780232756463570217911201537366465699094929359097425051867688194576953716907595510233273084299166263125768164890341837454241645387926963544391549566824611587538213774199950135681574525152244162346148580810882034660396276286976396272994332931696705713294075043878950523833888263429853442000639342724257054022270216582125938027953244604413891057687306568585188927752479270651951523798076989960477863449333875542996404578287822715153189180538147656215624686308149763580529627615032191202032223911604183784825979530133604717832076640868782898302891512254460513884246206849770895609216376736496661619156909124972912905798092953389031241238861377940067484029153109794888932188096735748411564581332090334036002294727198357949001217213651415185767672454557427754881063777941580713076814404803804989372819230781624306281991505805659055852505575444822312135093661728519295038529077658444335365568999160779231789956325085003071062516312368945107348745843808185757119413478255836870253200548546452544250361748881597584421506293798242993202685947062929780641036818757149188268430488943737622907599523793099124852019982479525146758305014050122658597547000387926347848896189935476268974073717090911102735372445657303976745063753159419005987814979339608476677653206371839541471393056220638028448149656321291211134204663989125154970351607196118049656043029877275700705170614185565250642443396942465412795037880376745530103509582015647524737229417909312654323419028132301645700434960870180930351061864137867898968569414188023619848596644304221441274690920031008273074953667607868516314253776737067447634290660031368157193752798847628576264605522157714988564369353160801666049876144003351339948414750344582321314965998019624129855133262272792714654910526872214194466295006636308550923918302997572453766669926483743339734596923377499581916155628658059083208765895923296280226605932146346684675571643107162682387755806500424467141254946591727198264045100559373813368602444372832616561087116895723890636102142335876589384885880771260661490424805515967326638680432262445867513400303931122667337608335829332213056984546812238103534437819581212641148026370686566779633265370942259305183873490575926166903760616092224059013604093289115097471656008380816235139465761091896789770231559820078912021174580955648099105009721375695093326572020159846005648486227719146568179796478270509459682249780462585451412363397265517566987283476261628750881899972581844838633903789173773223866027811957782527234375481661197898523421422373750064841274642789823094544409495139989100222492627603459385142353351908125642145678891212218746496374997143782393029363988832765113908880809451066170842639003973901121675763636803071542123358022582424040936385360472585752003515956544655015395428198961785514038739081381396707042033536457638607027981331461068665114817346318688740321816536369039236613872522696321005412889699652504508680249711073919021307484777655304542736677544896790731474316138426276095088847867708259684723369521549327901472159417865532122982183589085725187407811382698482910247163412801474978780342151249871039013748757902702322152768449662845854945382332793947197315821534271829286987814855724683407377658007514816486537192674813383247531872210668649242221436496612010593575503934368318103259361931255322989811384506999969480593860254302113839309465470637249461901059407797343074561350166706152596863389777290948142720996294531536027255675653531888946879080770603076733960466719656511190921435548852445672287827197293442975314201584684317418052581836356447627548212544441304479997718380944851505910785494117283752003653090218814346746397658947951658734943197573563674525678171508651609126117067793107778752465633797095216085188317424578503588975575750289980329518631027689270274215609325821904912808398067598666297096137622510171335400334222380990447141065722363499863511876159978077311669565543170099566791385146519065771224326008830973826826061966636710487685237498533786866564400249692981128040393194352066493318001180919419196755230566302583333621083532403973318761553741762270477265339807160170446336887452393944731178085360398440533017128210550870552048984651156026724935536939055524184744671325893339305916776983924745994964206548800183196573137443049020309597687804989635704356412217253385733700432859124890027564510818882213391943442285358511419701966383873691202744432839682424291132361245594820256982490773678521688302475983088442970237688993397026453324972093589911515817725757327945519332845137173554375339238705616516816048367686574155270915147003402137600903850899606286622358426103409269686284536488208322051247371162805534120455234118631986093229471957840350203016394842700485040118081866322680335878035068217037121563242258762176493020259185519129483519384654945094594806221746330337154791054464622346431024564553819931406301091559215001618136403967863730859321072660966660990058827684341102694598651579596621604825956127299981080483915099557503077077777414417845126819772387697238879355725423736802336649598701028265578819242206971647492069452446431243953022402782935946794299908467567466824553552572522088429548081511774793376892216177910316035389263302178446337378631799334893358496125683972856931284831517435179575807637069024315484360177972456123789585076611852349447022058891185411308624452538240669913839430599879543899684453398457414836881267010554228171254301678952814276213383812345939502522105300948719913476315889464551208706531267060563948667995705212564605395284472787468860559394104852879813025566224050613881809488988669813528146485043942624615029221049214560685316136937640007029809791012033728837266022229618864322083065626280968482076895064108553830411675888083959189390024818407680224245353697418043702036226693473791302491436673371455877001122874068507778270472467906076354288541225795789039545688550975463206994125360463950197097167019462773446624160067385982585023160943541873168204357188822904757887735948398140302395541646398436608997120574130133858152260534921230903701489434606955245981640642641172868660038153066362820996292534193477532152818058767949058881478183121192746839736265303677970240217868963036985278752952816318069462352254100417251785019083799294146214827195636897521831760675926400902550523230148990007800577677379464555147343888423905519602268866489080820705222571959521079459538616748992294718648511258834095852918434338185876426547798129921543051447698279709713214252596410124761107388058079876819288120610651117477804234307629831571926802247255456849537536861727437566112691684978750503713535800538970394555584474100922214167005032573304459093637112840170931442900023944174110813376811782667055361441339264149800427946011689294892664318127090967055934556461829753557355813069386159258043632072226576046481055787969123104878982763567949501941955022727916078346513642497381227492399685486491230313136162540990366595105369841675611356828204979827594018609228861726485839324145834090528565800670346725241597660432653072749381659791623452801544204583151595347051270769736608642021080196963066164644498851630825923703173940975751143561003340408614055998499797985290249251300712455697815016249730846027232652273884014099710164556635974761107519279255275198189684248106400750826354566103757574221214321585011170357175422367937905019799697875099538774109994051816056013398247613269786836888555356821075683697389252866885927487312359839928705780903405629394515146725871083444338543866405206017585884124618132016305190802044827190738118810173385798703622884550003073143827421094621445615184085074691459336132813701133362671275977380863176760056637227207630098225056497287031679407293163070785590827175091628052744498255181827154711686431477332237832887537718375599535967705354266974770443628222438060328852587071692921520860725087956744852335827417448909054761154745553763102306843807317375318167821120164345175208350046920503705352404108195625376183845885303034456440532639661925486448679156428077378572112629231451456101867186069642940954970299207127815157110525112650051169216173514069002409432928835946422131940083915546890293573347378136582037014854954528083020985885161088027366559525003914425461036568033239238997732206375685215961069280687706650883378342397743549703800317150240922902691927937305893122629731423960366615381571021776647814777451164023300122544965604372605545620347347670057161148411375685730597108831331292444808369914690058399149189549852654196626633759961897512433281189735436606067508232846058502134382087278105666325859683054144479722598439548021794541507140833124773169999610929259928167051804383878527798436667449233720479329424500317007025898389776070935904731460588992147171651530684864727441476794365261834752252372326880148123518893545163888282182550012711700009443350799394640934840841780196041642816925740552618069430748438739594310279387150081832153901268578986458349980408223596800214346436342626986593138171100751384127107120961872535047063158089679281498689566090280562030194924068505421368223080818174941939956720271155175086916367578454861036130200901428343154437486590040868885274641736622644344115123006301795431402005425160642455444841795053888185886747439212312693031388620542703724321973542711819219269930485820803336536902698781463911763960866860747364936362531123779418959466865750519401678806033906944938671534807732022385818104304015691540559630730158483667902196716725812199635680903773089938711717776473007958639303845125045538190079347173304377108380255657698383777122956512596178912452312628161062565719857123067959328702177523829100265612060112337840279305891689087187368352930317678070410847422472550321533127701420583252966811427101032128071530069648887650548623568016098398842556948521918812676565472992658184487807787638052361924680954322137917742840740458321418074019128560389216561173281893027818345333014599902016156057629284308120987132538655272487399626066511269432901549274171540514727114868485692942988686072641186192154319157813986702841501380272197645887873789414307875606565422291601149478224392794749354986619305804581334574026525293134834122392365663133489145001874546610355337733029760990047974839463910031028705357864452427548378243384320756909313295061634700542762207743904259012497872326335386255512949247320871501408806871446072281541924715638117184721962442289869885267420642008781776579948871887450552378286327939414015263506177214000407399824468286184461732879101551406414820770901299829182456431376429356301473519459759118043297269696470232045704819245230126004778624104802936824505324385431538093257819221038748674667708052299941202775650782371172927840222039406881341417235277585442535235085355069925829009521923614359263144376792523102725051517411424975240812337073348847554129010594294932982526488655409035308598659229179802854350043623367015855598127351392308612846675574991420128783718584561665364217327676683897690839359663185569706236566313566980069115399955892167706539787794524964254350597538075212272538731705797655799771278683681736733905970022608597984957052366625293023349349197449021315621634356727559735291626036422782290105521889983926824550037679474286317915551596695065018258903330793995511153510773822383119152241489932644352642516236390277868790914741596435371534044828115341336312596804032925068578289801094119492069509560853650530785242276659735124474304126411532745849676332537592343443679468526567217404222134986446492661697192381981545754243646123828731872358532829190397742863820134198432485127393877681124136224644848445654120987722906751758193728694941493831085090728229841036955704612423769721898214863840369352398408807171126783040849270895022613147813486084288170183608389495640307864551647387592145754192292106660639228084765563286830200623420177903279671590566300964482075836529128217076907756561175798378098658267696375152725069898898268855096692731947673952880230022777137118375559960179243753450823067647963277659382145848024685800673341219335904216160337062382613433581105289104379151279180946596896314463264896104233816778729841161272019588890634097585846130260824502717898784145758946520863203950576995241231190257289759680212900678026502745479691727458714349524201374756231556317066891058839569686188629725560660002366486144738435967280978087305812663775674551286408978484994425060875168903500734165086607172762531625675254650088030138314589062914149875784051196926604479311774333388785446403869073857148637048233527761537492694359869296156837373974780223664214954866838722616070424080060545861563403773229372560348889332870729111057352736280240919747580437220236267976045060514807460847290222245681930972673255795153752979513795229135703024765509119514836636533790766405676331072736669500865431924865549012143193483887243851348713379531351882404470211382447331455300263497410018726165979097602124390016115465305490471549987902030912104584119917751518979427160967322899227671287706866656142224293978905415144620909429594879562364770273213253384776368993061060013197648347576647177342554432490998190446571667590058102222622908952824477435749128504771404938151978546564721361717974036247029168887138558379923477456577635241800233911287270749031337177374410163211445400713083154585614937810699080766345958042151113898423479193711039477704645820731289064474932946384041631859614515037664136764531736930714755397713059171624648796495695336794315552845290909492326176681676879286801350826210032289417237070822320963182482978668634655031816208876478822710234110328060547974239661470880931773195871548772776434265398659105955636622333726114825186799688580641467557987149711582650962909462620332407089583141635034867986064242362785341543958278505263092751015688382815381402810885896092945203798669250223907203912909328725345876234020267655574601515406390642083315481098568941098488529832631368826190080602689318003244129423643003253565557865969527078161818180909558415503739116656045577729623335221283249422779377461746022409708605503393934735972244479818488507342051679347199791196416704936928410976476789156906213958163132396328136596070815751535286797670506825448728933645218305927734624130560036928883672921733937385995771221128839538714156823401289610665221220783499505148679958690710055857626226078690782094615075033265055366396951093556055364221877897759348623958691061356863330599923378271734544746918004909090848930651429146390964090161038746288648175304958655366979565315093039858732845970886994626402589388140452572060688972915142552539261460626456938885044613897431471730594790039290029441988931281807005061990201114346615060052133518619761408436799071059829460215672271734153039378913804488818770418375626741887874211888187384084785901867538712312380235519340450653122684814922046269407418307697771209060691353697806848611396655510919646310397147933917028151407730204913657198052415293957188158968127331569073965469585203857375057265863137316393855633685324746184879913375524347023164346781916967217310782004824408002782514645835452382108131904991062369826652736965744848972466240826565012681733864372288237646131177949540812841739262620616584170755320371066221573986587829479048636318920722683614728353339111805429980087851166212306973873017077608615483586313970867064604757899860206498504928567200930778841364250900298120797496816631676750171754474193650050841685799219417351772361236128463651814360507795618391684673474427460883613655090596812672426061959723973376323599498690615056445735089453926511506393079642831434485763952291004810800833927220072885568317494021504884451924301352143062827251659930085095086316631813539435814896754349812179222669752162863719929598112657563046592604081522794365281976961557516311767368223893489602511456456103307076988423410074487370721302161985640697370927335987654569210937171814308764450623287117967487735230610139135281874508438545601809758151124847981469026269766958246444616764257387680433855165247319278997230138119728551026470894551366804060842493092195164968597527826226697744805517957795653165344520589543800720688688996486540106497264613071811640923759743769294724791995040416894461815036569066076155132401625929892496089506213936464481104165862399357377690035160376691299976934196255101502418623972659786925835753714412358201156703076196242815395115875883786125219054006934896333554297024968642996781749060425798549250303144453368701809626126179687455472692428172265207479336321155794493803657252301562439527388037599465164932827836561386943707782925119095792452980710798679290412224797377247632017628869291295222832588828505319519913671052167699413235063689369229661701694811611980497885199215923559836436910658505972599120892827988889971473719469783866142857737230768958902114193194470004579454996504418773375702952800479721747414027451644760906391510085624514584638217700871309907662359581835535629863685274742601317169843176251927407723954315073207374735960282640432975214942892449964398138425299718862360850565782462159555704236963615040902433402488622657670518203724326975007887395841294832620456704949591554357832116830526429404227983909651681044598090495363487241251893263118199484136038964191414556427343842287971162587871230497073480221860467337985976542257565409517727624970395848059010275114762039789656958541539266985403635924667039520704161556191414012003229431851023982348925874747173756256152739177089791585418057111475402799867667195962961506005038902054913909406655111671890898804366713391548938802669677234042931025470480393004621658752551910404129897045428702350124260102328118450646085279252311709613292489860907645856541761501182591190992686501857654624266675152061218125014517171324487805910349920691795562606271322100677550337360273272811949119515435802279474435119620676389405385355091945211379980382990350066271978965646725591139527610306981780337016334711299454352353307099399122681117829973087710523929087186272739647701678485905312370963767586010538026452634159920896796556502240587426347592325831883754159467810782798411242918802345653931381440847011895749267533172346569928678254396705698123557876278550739424261148618026105821938951007144263970245224560123717400281581645299818947739815928599515236825117990439000493570626321181197184345985153040813547487593919509671495697002919645802724788263951248482040925519878331994622485957885051008602265901951050357600090503787859810809974683390129403680250055153260166942308507264266266724810238248617017257922692335717686252330738293193607181698345189302743471669022605289864658697734780224343242597783140270985192810477318135681403117403512962496799058560687861766137362752712368650635479960568184306105484578947556456741089596242324490614695471309412480551125611398085883095725995977353775471499549551636520677871529803744033096853429719283031588283284807996117394322306735689449771752285854011259406940244625288500376415827636795156884078856901201414006993862671003493181297352947156334024731208746749602340155517305323108861294574870873292079908606471943474194398554031822938682659343255812330672124829806791936198412317744723966890802024268261334340996446814217511437534758151607118825102947740715437171366749871695325816176863263051464382294431175879177884185601310727712778026908709446100743678656896055780567201395705320566338164574483784250657771100476980668223083526454949393628913887767192597346916795923663231113573972468792767697643136152114628336383542454284211989605726675015158235437240214330557568156396074650003135125354498973349939105973107679348898406032005597812136096665846390785814510188637432152932377784282003879384306452556868996686158084828967255811664747374541600040107284725730095081365212596447114045049946149162530088867999473220222673839963742214564671595762820765139118207219553643425072649420166730048061555445147319587727678120304523647873163294760658582686449251459808406159940120164689806225326432343418345530081504345084412101077288616613681521033838027656952343391774305793658769950295809629703930172752681604539193691109773580382210701956649261261423247789496806466025629136298189170824569145624113199514388592163634841456736447151448690837668018204814561501961688063636288300207162522434087508020781932921301011481923344030425941689645730125984257728379057720920569732593800957387678249847327192325635788291039354283538900279862654508039534066625031854148714943757022036163447568616854410925631166339327049856854463671057676214892078473728354596412242248149460050980467178842736383579760801560524330357830673074407273182101630222282306627681864487809802236623426184384317293607511891273848687609075354356281504572099356494261145307280617228957767926042039482242174366911839253513303945488295957228733484160108243217649346573951779036771202256039808086536112656132902057822961601718633540225680112739767517625232321861566370025220011903375566697058712045369270003791481940019238629096201877446999737838582350086190782207409657316139423124173183088777586141386683610436406871057826086760808856748034381859782568194354043977676168743986487685331199903281377798103763996071944258962071696334281523288428386996395196607853440680888684082316581051965316812467450012523109181369367786102156440234480738030237319072223281560505636425854245823228453901769438855705612572828030096207754699880643138482221776006940038470748355922862528909423713225448260178917537376880351061611186114107033268315360692487451450748991610328453740798571854854509310690226604286890871896738600681758432503642714681269958698049767907901684408781224695478351115545531411172255180125531707062311177470964828701533098574404460671967318510704828872949958684013273016117613730495683850427631027854002229474852253029748516059331757659423642590228259498002499271731635244821967815134801130500989963356261221893568871869329085778634937337495864926851156806536200191435122775736677393664846042761562732068052965448382156746068847760563611022157652815708330857137185849517362370157183503931364733315338503128924638039001774345718609311897012583706901644330358633721901697819514578313266087216117751905560599024139992721835335628681458957893439345167937112320184675529517821460119434106197560547584694711418652986518389943592530250442143706990077302942111550029068900323770768517845867867400210724744464768694503302569381725094899766279800301847583794466937295107504816876175380105737552220235977194958047851520630982332717631659685498758730551841634641450371875031710224747673687284670672173595283917882128738344937474724364652514038457460855555360421099111108078438826468546395242916710617914686804174125026474451078077127445927334045823910361138930086447292738153931492030105979789729279518955119807606776663928102508279523071249743218853316436529954522968808351855760129880049787060597109407695708633770885023816065426983805926897460714181436998851050413321047248919991869550683948037360634017978682249450740702906834747876130302238870385213016429050426706010879436948286057175503808396713180961646142801718691831034355844579318593043491562560044750600035924436957265907129963175318424644982054608408951109830526383199230630086377568706256789279593794388972490999096411289023299525744915019965655385593553138811077227109346153617237951244441572429944034419536622495446161612274714958589294584036290830530088180052735953872715108070117248334739841055028817558644049301297713756565124869290923149726388039735566320860278581712380636841709602399254330208396189834212942886429972446360601290847867660492140578691074249401064587359371357541618342350707223267625095066787190938234604779050931797881078039091504971457664633435673448671152258762628182152579021876910469347134406631563977038518332498557695816977539007962404740084049009123057713806382641603297680810745686186714197626651893240829059484111794331028948830232431921507819909851015461300666202181568602764792756463385811323747465552516607960226886704992825512311472979577636925022979668364162058173148210175826674809155726388752611161862138566838731755866117241997687683778822679128088601119019584608343491817767047232352806493875400222132275107537755081208029492535288736985003527676071528847829769690042221000618192771555711763414311648103101641293871960700359967642890997754003703006170636532257248958975219764541714521675707560448374905872589373211056475408128359498201294440820935560145009402770208194091936208693055557841862592254854958356450369143291293936699195012578434255941183101275490193472436544470455839997160486012861888994830149843660947849838892864832780812367810477815753277130914437605303771256469375498345935279753385979601266378969916948522244655142593348602614629610562724073267842443416271167997171975260894547343827725888228837333793265665181961121348443085818023888001935753910616024505493111103298517103482518736451391648638196338671064573096503384969157885569499049046505456525483599112226841283769348205635534668229026632123665925789776040232979489320855975392280084213045770098020853331249829064645304938484218751740355098942171754492692541138559243853439226575734604178743364286003498255512935736917888519088462293213519081054468706496594151686849194523964835656067542701698007032180844713024059704954624213996187395098641151733268035276021234547048737853668290623077586837339690830991117711547665342687554534249951132878203851127706470318597793716116618950663221198272439596309138049722588663837672778790810611080228074455803497589063620486276010993934507932269985836306958069307991150817044644840490579453812078552669857039567732748828931556118673459967701178138315026797641103532608948301399388304897496784081482772704332724658281394333536810000143009546973978796417421312305550044361491243243766648071420472205238730934115612384144870217992134581599629781210846701966159245515922593036010902358403085057184951331489468279423437842920104412540971917996234509913285308248798959667228284320070293783729456038100238695434429729044958210561146758016273719930842473303555416222210070830226758516438196877387907722053251513738954840824576757474259258458450936879908473311492299868613002358175796176284769787429563060980745942977689348990178292831372851629603077502502739185312191638526144588666086157380989106451932298100232946265235371528396837095920448432001481511024715382390438862650834754416731913959079157496716691218255010242177706310922059038371122314796549135725929225038694590507228259247742646312270508567839392803929536670935787188130664505312505388525566693722608032430947989303281652294795948181568509423515171349003023295344724905794046827328262063176699358195110050351262443134015954913378200975077740706001794748363200378299977825770482910653740384327693105830756345977796985823405036885273702536134990450896795408852033926826148740631190052205313685277102880874767595605902858266503473723370047596101179124788400827247275963008905758072629152049132633580059359591925249761886186811584728155805741377449450186788211704949379810283158056742137472784605813937047394162209857115800628593671404984916733002221663780135141991867906607332665949199439861338315824040504497067416676051138393047790979241630015752806935665470183063226170355534474758115894298356840349068229283008746927437889053693372395952236736149700261955042768056150462454015293840175582474435104913273825714742705497723834276925695610246769717264635848110234361906553295393856783189955080085475090465186078548865514358561829519337496557211883959680093962855457348612133106547012628074520045399110077040915770048612639569899248416214139599068941798117356768067027352636425124686645327166492266205849403431816017101658488327656564655069480523355057827415737703034861316716903456798366458870644990948753866844239220942540609864465381706874112832079530640992111160237476529785410386324265210829065841060614961738495496820824005422193907508215661640545853082209573711645045934868327071525190314425612323877687736270280369706157460408788193634484055584003295469727323319964112214331037506121342358879578939787025046089306968927912231328471800694818221348902010515292115781697152231873231869275777248271637255748250182821231471350701918166168070478651808153314627067656118151099902681629790775516308248859708972032274786431762557009214920856044997968504113032394147304025385762766552940817922646827665265854090798936243067742852776160829631257351878220131299065985419227496088975165339998061924360335229080655756333335986947164194698830249131864883668871676433782512855806536808925883855087284091127523946235509105726295017336577606640913578752604388058921558146978741788251452776007752128149551783545743005071989950834629529561936920222690304885519942791738632310745642707463492567147462357798233205750333108422372885148867260852466128538947793983047428310231767651754572102476184322354003291337896122650020706337490786296183235955465235965866304359083037618553299858543243204899028019472012751832185697620026692252947884550720881171497403638638077893326724223850568050345361465848833785577294664948552557246629956029012322729190829854590735564700047978736140103902853929558550331348735679945372401296029665329236762539274565550301696991914035382204751425131586219572493508984704698247185879024211198598543798273364538378597761413520588904500686798609394438631303108448475993263893274867431437292836401413425283746420378133926039241155060559447306914713380166658423630526139990688845199431673137181699949604409190054555053813000133642888738297871769100560836281660421818412037100040017930197801189710237118390120622287362677211151803766613990463581953086439936196615936535528232120039248583197123620172350739089335908347563376784934669790998590616415095877804988106243190217812886709314596731495979282842466732254670302615812129938487705603842802277958664452523159232827676464331761274781233871708996561306820563495347486386260756362901480085465546104974596038635088596807085986725268210586354925822600895881326426298865334202198371797851449491637954161381570814269950074093274210993968861940239743122856220845791988297382967740780121015948886892705133818851236658485431125443547750128481371581748880764745320173190050863916921663184193342673289163583625750543303544146014204730434878405802109104916853118096829588085670994292589109721867676385273410467001690654357580282888399273614896641874381636816943939911692972362556271608934911613497891023966927138849517344757895316917879405135586202537940185152774193271038014902292962721386503733999507118025027710211398641162126810972380916242178559645608428463409684408490474014225824434413788018773484182666949092719008869671241650242560317699266421122120777677387469092482738901261369766346610395918887589420510531056959826649910732412451654164386010766524043539604631009321423550946375738461504540323616962654354050096424021424483227127814442363155182471409526478062746856982438815983256901314020222362351565637135871387883683127600590658454781173213595214070396016125742173381414411387860142475565521060211174692454166659960099662109015399561677775277943338306581612974118255810359391513974301731608475424116737649874196924716598312730952084919378894585634657391281358221462547600044879170299743941315795745502689748028932361396244273619628398670377470125428328598664781341883741881385664454551234332150242473442075950326443188946847409315830098393472448226706533266178191845277184377132948588656983764552914262129227778806873575190702714238789120943765187625636770996020688695336159886987459973474476636771205361524464342452810891493452727190269442669817008750400411520406343055304244509257576582653502643390912093325671343844130488510171157614107510236512255353997886830353261403704349339583341976335353287820898297895332304767167841867941109299966705625767127133000925975139400367854911687104933294392786883121858901585618635331637440577863786441117646478870063481441693335828349056625993110221839996442550189963384757822992099405886599279355469135465656282163575811519202128856055201627946647981506010858140699690586840747520034972007335590902506878213757903373665222733115963487380197739209191761668413656137724390037951534546220181832529051141287338860168709883515810340351960073350974784269318937333504836229756918855508736033563818482741736636418940798257401150132706477447674588002460668228766601774081497055941681408752497594665539115088440633344524601642812240612192676838563886182138542073323561439831726605718549126227942405721470708339698487898259348144410473435869302400075768690948619753126247634223601385486933961277459035354246988490272650356713635487157690698730928502289099433011449550743920945243902375013038365039750110225576639358027045276977020486925624978465338149416282726509721817720759715816761676359971548648300509835665329620756396733846740252414118469292299196041711518948460124443460311773479462728968770947815249815111814763625813447435703613582160297403307421677436130100527836609098809228756984075022357919380363533005560076537860869788036438178643523322698989525838314066757123547882279029484471460610289285902067660085323190715137816694964780150999137254770338383242728806893765698518073670002858405958457010200998830450337495291719201237804486764931951603294763908570485735223758723941542925414324044543600473828255062495805137252988590805787755446237259650207840058225111086351692544818334310219989975878389086293364059342784421242389122198458282346169183558020403562725938341979163446231347008910351055936953321330456730922070062136998104842199150761665211983607975529604830094269382818114861831657587531526738306630818563087721279848120363702236083337618189614819031736901456956276831029949273770408384484308418481801358281479873303874858330770375090734919852482662743946470858725967767784783106775088726647382309329172434740263760192495592611423431551937019254955829407796003964090713250324765509798131984469178188594929036726366232588002260334634311045412100060045163128826502630791764719491952079062890360738465708968941413875814903159254091303211248087539195063110250571868332208979503542700865634481412460097365195118604513180970126834607098613974172120243223895889955505858253586816204223067420614970871726351286153631928839704982173407886408758874912388783708703591785674350246851107952804672213870933650022905085878137258485075368778404556020176451255184695208538550459827547367214724293319122668347939827569502837739580805128839932634054546821405006639238058312136871960182891407571836240977893906191751730413168197104696000503464107145817915260162166072355616518952769520602700890087155304837779108911491880078406601171856785336571477529135039551706114588397417640158035470867702798126353409124648350089865902579686649599287375091254744721618672379267096975058157615683405072244388657546156620541553245365875945444263723316554628804790928213590717925861422470509253006581854294267849870798145174672484885523722151074394926193928010808064666593377495572745909450245612011707393041665473084553227081325501733196552755823669184827839741302046416518664064107906371827158646095055303483583020009084888598764863687543797719113273672508642736171325536086518217366435136463125471240246531021549306913124854402586025318713119627782783819534504442740521997364334687650053970559918273894645082329257696508696070560659348981651966660327418661506518162630991277256601129975436868885694133618175225975104819455356841605665519113320304776584097068731097572603879194159782751078743763153196697935256145140505613797343653086981707335338931804755606780977225367024220186991250096016670349548551752864655375443592775826129276074322481685593199371795143258477468962823758678928217221243185657818487891276466221451179400038651033150593902787912739892091650868620190329076825295443859724940079287419869427532072736562598021607560189692224772145458055807356429346632776007116605609022830935168537292376662421928226572614138889759525878087493996722560711627546408282370082712640396117420678359065324388265064288997515545982920854778563072454355244046788552999345657051432052357348227585730155754861997876550584432119325470996866197989509241416931899460969843660555045449183561153418917728590033488686043476744328923488885726235903231965047363665333214974366034819467219797059067398098995627123664574427537534666684873747181397341484251070257898233415490121943752391033740023710369032057551253697959383670522947227455159997208662737554206489820948231709324296249421782561575451259285015744920466190459470964398470458877154790584169823425390668913269506640456770625717462270460589420057138012292574842751985393555625046888762969480799304106866524554753561432218140688229201126896167621294706837562374587281791691759639134054050328290448515341801156637855329392856036592709661674458985539396940232645975812862755073819274005168049544475589710680951966702901557474695619936409402418263944394244139703120019062722624788156819655437400488428554136224459680294466253776148939036882581552944227433334059593380739487291366512959088225084744763775343662389860097298843950328722559332805656757132956233623425883522823978137728823602764081236868784278034164422522485112940846703489811860032378940114259627641495843528578938407369020197874131113012577925535754828685668355874522247850765389665218436539841786526782948186909978976002287504264864172742514197435474413588245117494179986241232720415390717630222187103015871665580828091936401564349498384248786499402387177667450922696930999219470137690672656851382991736946265835987333937266727063363163626036911975056357491353447335424926259675800770385827891949763801847032183677073979350918684719125829226738301565501941280878546253822764114805548110304828728076010592316379326990880072078571129488340560795703783645663137001468085322141425615358127013994823736942613868505073440355125314147478909680470848341690462568459159215765511820707214010648278966866177327541225306411480680096414239300050153908216710755081672473114301574057780969031963716733020674147719232827409682977473295985500824143136338406294268865483258794209053550571872912973550598129045282560879297209347362459138611857043961783953168991869580424295241432243107813084143722514272187995100470390521261564611200479547918032832232893740332747253677024615807540143571611543663133491614489088802712304174459656027917830828475732844661721777510429755515657186609915453595784803129847985361464271426746183924069406819917317562996611336615922336908202003645985045398467232764606003254593633739267937736012450139039277999255807268092603299655255409252235830656861718202438551860928657608131856078062012693116969082174466314632813607092164917900251347238093263264752132023166869604046191937666915334558404397564809589847831176628689013219869877212739155801299050328941970854405497562924806660222752411747430881769375560221754986435206043906883087582032019225438545111989245945472023486534060299319233338471229501264072010580320899640196330808482707491661188955911762190376336365238362952262046274931135080921383877411688577649270481423709453536839079825942866407028069967893859179987502176832330147456459553953719245973169081790436717897997755073081441876328500414715019115895090135995974778945409828998302565012272308279625463255824205162589609212857418382320446357988767552535379234064133243561569078482879607718119646996876731211108979388035784000499535617880873836171826522107056428924407413519224705479602071895871454972674489302507119020475192159469672495056957861369639546654181296281473107749063366645833473056179807761790606351048044307064667258109214184186455368947780360837399484047209600222337220016872738161740671907721711881349588899593985973203207616177658711301332892064753487214066765885322693398391951944470978070714993036174718372513229688691380789880320281809094861487768239063076943028974702661860315660118685237448908465737184466621893585619914140280052432025431641153995308236522057413678736017729525626404094318922553396076529265161018559873022571864628721061527344371843896784849339795947794754591522056062750935078094888883893270576038271275627391924741833890815644225074329433505501259689664808184594008107090688511974023855815295548455029382368724084329981016302515991867987482168859222826089594737498036513699406858824706563672932157763669023151984557046215032025615518048131471664702734186919388076633722862685046306153374688283250502425332227068885089547513515241909764194593896090986107787896866456592475487693319530281555910479454947490148405488199706269573975068241360943595807001047746087360347753118018559111394175363819996693505068967204501849191220127535711459226768477291175843251078331869725900418331786878773298299716679798088390745251207373507862235845036970965759116932917950593673082896804678180995924770294754089381423523725951578128098414816605582424176363353554795321837543600466984444001549292735040475780593817258657179508124771146970710177499984925102548747523476709640874975474998028957148190979893381709441229458617332233834805899908543620339343841119146925882653456159423554505809634772690901952681015209397720804961484953376161081410026393053916267303754688940828000572213401311514153393531489698967685340108256636231452680305971169056709691293919804879772376197187599636774512826970664508522355808262636563630028253355818872259334910508451382076960379828276823178409529418770322342692818316990083174326422411456113317393787101325322366044900388796439279406085920368212942529636801270872019772382764121157874901689506023827668157847484004301108769806060077453763947406913077441208838723404322151442560404266511083213546683004949525641627605568317364365552599694271790862512723818874406704913236804898966513262698804795664442477136522273812306262436080399175227858364635260165361182486468218034921231287074489703304145896802914825188202597421828995921792098753852579451102681569804709329754825123851927434825640083637884984973526309835220490407446642048043595225165293556047178486349269054563841482368919772883613208252228251739410080424765640779064328463803256316200306775313102336118062760822603383598467271258361752107620866317943613674286933991016842396517266246476873043876257796203095527923322965061257934283301992486938552201382880747210037281461206905168844430389353582749350249390511001699566300270369954745731627146009565202203093353678774290312556537533138026079328350040951485026760501541155819985424704682550525869662391264883380264065212228415304186231369566184653045392129448957284223390961069713026229492379174683767755578866835283388232346741926807929537214225801142951669414595669810201706656230102708280003179199854035595712481793402095099508433247536186021277939720663633227012201460456498627055196450309492064852980884613112028147226128937158897695466849495694816522878822635969232201671481468079597247099361366715100108732462045332316947023489949872035726042398714413357783482762231300874578384856912613504484421757095907593035584226396532031163280789986321430225374439855383314789102634459621532167948637392116351622012160183606487310682333186386647128380550609450433145625416486543884830907754733268508653606496579342727004746811379600919806436280260626347571909480540499266108891915387214925381514920520286508743386262350150415898926355749832036525573208952549580813454502892411200360484513743837569274723301470250305609686562712932214070875155333245292335051830697613549782720322933521645662582611893321932338349555499091471983520698293564393518488453107047160896819967909388066899929967331181644263915893822291508809865334889187249221426747006416571922136969280161509046016373703315326519483902938159533945920664246575233450937576721559961398430548124035476683154631198417160518954108365996227723771092252916924220412372885844213128815391260948970968859999510350770609196832653854454823558759745483981952847729496782524744293695184968811484558529165041901457082317496050496128353074643779250536398553738135907948211772903610787230415845925323306826169456746697346671552928556742322230758473265223162375523837423727126855435423175974075383594656521913803373864902377492398167079043460533549157150013415621521113467577092144439241124433946012118729813565611622611359610117417209624368187407021565406806713064101522612807670218803909344462374717159328030263975262493907625749179998488262686445593132965670012034975884980367816113170892758254648575904400789880917036597759978556824324290407286196881725289556633894581296346340238171144632577793269191399979798253105424434774329542125007640484229519334517230090647343698189337839688775692096451381310261798797269703018502072229322220879066758864871803599987434908840344872827302632774981619522290845865287411055057190413257163426934491883626824874615172425476778188477247360172829096977742562401737777418663667320004362527229162286227717908054663747052518873934789514523098078994702521903621471817708325573152573298343922922806899237569893377288586119355085561020477448513917271063262902667270345929734900310033809244217077014010584181810177519749421464812429858766227294856032770236774287251975154420071116526636541122407711561760526329987877006388769362862747558487121265801722502191380581498721863839974025072642106895829069224459932274922164259648616965578227198392526309254147712108130347903975826341492816202040404828852103187672923949621987122868091382742026841928923690887706118776159913652929142402036650894734128961182459421047089611403731771985710648871483196011552773088575632394456145736412634448367813388916237465685973656269739984750714428391263680555245497238371695429611212387872145112107046070364964130606730537346716602303689839615701716861206146906600482569091519257930519177373750686281537020192057065294101124852557824860340069161309233875407609046789302755753833904117562475939166096248214370958345043058709625583399492417948055211962024694280068870428064292348674008035449299564406885005708467214424834421115912631478205696928626532779225433693019096276696041869427778121597571663048024221030039198505937705216897763875549476929145213410672766638500567696569305659833101271181186349612571337818313274533867144919971635544307683797378521648051704327787741611242016347456605019593063129176789519372003890659673853811293923096703730846703981864766544308513121096633513032980400589759152471879183306110683192865803052650752502435049282102630305823887220749546089690256207407060217359612313874438706873437486657401661344075990821080876040440802806306189535177633462512283581602688904852958242027593213168601424551006227616864771626994575832840161018275561020901363375471595311393547079676642651818656522170832891948313670906791284117557046039689034855186335513541182378736608556445946351850676547054530314082780786935018276176612061993748981186935215125260934087656890416257286089324388348026911150985985292988521281954928206346096964636664090865337400586775211989538450898848461312222313896612454772095316852130456555593299568669662357905252653149926008436484167743660187233264029343320405937031852063986460290921340209017701947838099727579856689957904262685799547401496891010068837866315089025207447629065341177010017047531087720071806193149263379015735492548554030471452423680079226161750346679199283220816460213629536056623496229336707997033318591302968459318790843366064910482815284621592779241146986427959271394065368248840082078012955998086690999500590380066462305066874748039639935960554203913414996036470850655894193463754541832573043684113924493546888988118328030570571324782739521823898636946182874599634936585318020994011820476985719810725062705531710193966677940602508383810044879984264395382107760993969583858496263290736628074185831975848541066154719827173068116756659629619892000340440724219069430501780330182225822114364697500007784829575375864611562252657969476892497885811935734202407372803588243904008175379317717883478820475656289871786196763874284837732132342014216643126731535224436110719135246970043847001256182790625496085866770051382828136096158723285809073091744658670568156031438093513082038237836795827270752392557913997773784077210805687237975667250632292753165802615041090709703714236847485180515643015124106024586215757996893165194323561586560586167483520976375405517501105281154873200259351916161957874522190545737644899412712975213297585825907128001936107866411180647230422113230813052670914128987568896438632469336956512474454207375080546236231159453265714132069956446266584103751229791298178364313892607691830820565644943590867768030151537896719284008745907259842652562835421882880874041375529327578735872363332276739343825748853758682142868433675600822485104158307592252752007217756483049116604682740538102033419020833259847331097255710586864962209400459615699756877821989594901496476735320514213791027946533927666506085036254116450133816597674128881212238704733444473856316066362100415977073221618707030021498177679747693719472347518840827344834205349725502391707862315657108108275149432631053185710289695552512368986402434378392244009427976248953451125592607678896907516840972530157924323887818780969200709606166004435431664905345932498930336945002789375242887625332008811642076943280195291525111756327336611450553532487367701811579253291553710219116328098277889401672172774346383052340144812867413001370404053849881782043313604632068799199963425241378423570143562113847031019162073069840410166566255937350545250804613444599679651491752234073389743504052094324522834457644405733177088032378238983484141716109502322805223482942481368196476713933336062484632215844893590735904481839413048854214756018901535976496415264114411250885116061266365689568716341196281373371818005778343709782403141817344403444086156901419716680615655850190991930972239212562492388470925270623614351912915491140410407803338391560256820548789660871787688541530049940029944975994877736955331616812780690350918833039225097407254800716365411435555702143080749127843722180941040317930015077083445257380371358424512046405972983125077132062348922045136629603577485398392058030448365868345179525010412134365099435811098533199200189523694955504995315294802857011209958223391934237181742581814369158572314607132014453398416685535023931259803249418306134717691896519489904473769398686193223407291882189448467743081161296628603533349992578336270835072173857720065675938249365785089901187176373289938581503025660370920354115720353401382090468614686376686618730639670851624273524748607399117765412679778795860868976612797869956532325828978225804371769468176517680289161032562986336287114601842785938422151521241840752259674183952510705745124868876509176896823702758107926325676537947182831042713030592802839495757575738942059457489004664537039137631009193223200802489327733565432721881296286860387354272193721920302343204938487443695562147812754949856192246984981490315602867254366882539312666381157444053561267916823839325736943457898982144977672325111758825419237311459394568948095809509925777298367479699886056807490151438942803511293359292718502042744405567872615492935086645909935692508095716151199560592781499471452091619780766234291842011848995541979751899340002565403371713901521853483080723803343395441825204127441075310316762739194795369361355247623248514893579759530851214777984391360279985590719118451876953387723307942273572009104153415389000314446580657201953806423632672843731431522956697227116624607068291010342720220310782828232046778665737801499915946117429898906894470390597122154199416415273579653096534341710493778353363195596916573191561993091791847334027164189181091105756143958810300688253764756980758828443195822215470634026560274511857313950327384257005530439760218820600810899525389639440927712408901784529398899026551573568631791853048121228141294115455594829189963627426873198827382288126067147581073005277632420279488205183060956055416534742577701131041926718531232928705746581337871694183078104334406511643337257971726680641469807134634733379680802130541412992483682204368178974388558446291133154417390983956515083906457736319905837404514242816550999141934695789300095623458305443583004696353544838069973639008936745976818124535586853415175766662520708809864209012794745835460869425014506352220240254340464141069613220762753323777499947564711890226402679116548114352714184097001017657972850782687328487118759726944069247921074016959536040562795443223406137558831058939527268869105100526771664400070681256773970378999761562012125505019765476358369640590942316590861966828981825653230156503353541236863744238051626746615858427310909955616054955830080335351542079077377837534603950515483919247223237511646695534353085447336098069368082577651570487704591503993959708842407352400202887321177312838088362256932942161211848431229990072790595474154325104230240780628523670268307747661315177419250553276918285229973323735667458642042666095496795981199327372935479127020838376488938111967146468715311352112489860902953260712484018023601852443819575356324001174261815156812886929382628935315854358128444602819559676463731713000432914769401430819518946176138051439997901632375517074748465400791342925846957260635707142622054910364012847099053959231735157000360552646804190590505553713737168413197498748501580447257399323894389933239054262241221605986417014831173352855852274534334374729201138219161260117118965878541614343529728049000792422077820151871461930267170798614007550318168401758489457344391382472433560344556499196023571850373604978634430140022014745295563325156943247186167072523283442551627176385371724484357107871214869465664392806065688926955326077446228281627003531450998801915352125595323569595756369921886235844588277890865708992287523084819043168350778612218842021222620982451810057284787086207721029896807847426583119508323939075502593913202328054976130679539997025977420236362310501666606262879056841575024312180342475200820636973931186755169236346847668491656364336246368350198541207708933268749680789938226319454378352902037723132972603206471024690074914139150292860513739711757990168957898699218057011449618750806275851895410504343882657210833411657746068767338551825351478743632129160594540203188614885408484362690262932919694340300184834888424543070699826910805670852775706260561120402642917563769899534147521392491196435637790401976492193065477997902812459582073755166238815897047911219194183172875339951630386258551878633511203799702153892375696600964881675159729320221986396206252577846636835922462289758930220576600323771765840399229152350254800566016405250933338883010096707604873120575785359147251902529814631590013929357485712283719634277540395762077833307500500855309134486890386610288822110429182413205976094812736371373187298669412915371148377026255130917909965911253024224638793405886501597324714888784508453049345978649761746643508997999124815905817411101147223622207354400446649835054927092358961466747731332532909607687765628384104327957602305861032613602623248006686174771173162750360232939503788831471422690408846333378606533586440416313126018070888293778865852600888966108737237928439125790526856642365007244510755949712895678709308953750671650242586411359505048587979127987593158650221485897831078774007821235655176104899551796143378783056898413286329751746965890082029399541550940589718400254367658515614784715720945894372224272059821796276076834343493840239474374554821117856587235371385542104868157339394965510364391780676606064101889904956403321914031290919504519386742744026488430672654060565860202068366865066177664892518277209610100792038137540896555858088410175539394599811529681294674052331391224652313195035748517778881027879766337731258094936393586411619268730513776797267497036471649128231161149088665802099388179262516532101222431470282307691893410602817796276371577817969023277699845316511886069042099927061977231413888509841165019098063302276306680216343144622806617374738312985673037510924852751909789048902512028383177049376953657575565374441219488886856120732421564967281240629975244071593989054346026192365844519844696852807448321112951907277424852993221617938010998875984349753538809712656617197309414423314525665882478058140735859331521905953472488283718771988847903485149019137598615418729093663223281999250965820695160411336595651142284471002826844221367482707488736691851759156441558740395341475812131975068335901585971259471208187633898626627576166543194248516706762450000991167686729165319384509529815280692592813254338984691431383710775818117221542775619569419945967425842045663478970047276219728754870516644192971738966262571401226555312663472181994830333854552161359637639318104267671005474464534311930965950971113708998401971306457804894551948134663330895742855574105678885617165124526615937853716518975570861692246986962389728824783061945499156645822679983587160958802248485176401111772150193867860852449150959611005530552793268378101169622400230799000420812560315412051043708585546208423719182117558964079483857539139702355233258299770977098386906329920146652795837884402896695422751103859955251928800040654233209652823531958254093561278714939477103344228227050472543377890940557100596830228719745985450044539217969344446314234959916093936938639203127045313433633616953239505704082273633174038454751541303856825017713564502304928503688674419507291651815937178693272362678142203980069367476537973237042445688639126122273222495698731520184492857978058376519475432568316035482001899134335461041843719664590379016289063299852570039061380445786040296766346973570987296332418838257350106342659799149465160151883301368004433501813959250735339386686747668928616392400906008395151651852613679375581007682053588536415748387963693181414960076184958864033519975985699584280248615132016600617461719543024952733352310111522492773566364659575411906335921390262384339940146428646819754551948203182688757815820862204285889581935099141199162109176687075863856964176259808164370061085371719562392086616053692813514292999961325977179301811626754006579473304463656730653638489230876326432500938829362269467210272868268322408203752835022993534833912089116472516818980205956658910000842274575533251573316164829859214242536307585287119197376646306349831026411223087797064635572215298536029361894033007945253714464548297942336866717119611879295244500485310318456454282705353286129234143081820705619725152004123455188841519890138380454461029329438035310731117168321627206919086778298796399433696191429628194618963789518324926210304820471119553336824036597856375944140312233879097173781052336999181749785713975794391884576498582645764695293555571591593705047698756215730683721611712085256436660250456014656623469797472092894886011944136860247069054597673696391880814390076785591371029721309505900167742837639645385310062710388473467307757834896381671447267153052264311625548445558030883338982977442716403140418141399785358419621011687935454968425841992661038696814918596491357869209047671446526467103955254735184915185437598961392735089753878185405348190891698383201122480359464353616170470129856353127771339663470969610227465069722844280235055798290271148431235472887074670332637328662775361872212396225838158489035029058346405491668646065163747243678172545665505868768498485920473374721026799080665932551226017508853457068993964976483445457033965704325806844100049882758532901552840205313743499771596654899358133540172497852613770988473214211128250791919714782945007644153533105090587164651949002276128626605387333437348600361908330922211840675755402781604664458745372396757322849665243667229734901121278570284536547448961642797457970892805060028903301804609175268108925880722234830772907491948371841264824287030197177731659593460668888582746818574190177138223112838210321531487448678483337053026132084354138830951604047098543226446127036439799882161548804936598429503504163983771461773288522146554764831389354363157808169932500332839271114302247066832485516954607804412688229382145243719308100520531062493045747807458501301091701142766553138485308445572787051704054743465094519531342600442997231345230349527899259152375640489004322338006332762882872421582973672286234475283586262218027083782894988176774700449137470610950757925245492232145859955301127286199868398029602490485318077112572301241915815240434293656445257904770638040750637604343708992577751950182700834209653176012704937318105794293237033180450178615853869103948554310430315846306825530613505265784567222565204958376189414666226078412179279474563615474785479354719103378932574605792690174699289308522728412445476209361984794185433073209931150370740499160222980923405605199191365355761435865369376145795415295575738833595205154212367295056273335623089806359179185307385454185327726739668370326731917475826842845336811058260478361003809750623940850515735467187868189150111439613424918442803771947575423304594891763741875952983764299927100195006857759029402445948061762892524565163548165970113097441567973776264144094361735065962244168463022760042386002544881332395617494887197887375187040234217021276692619486554292651084570856269983582719467627896693210900503168111514347197245387016071095361579983492206068313612067095611367731097860442257268900558413890988453478966166070353435959728536887423135860428118708118164749749789859228971064206495300788851192413409299102513082034843832085274598078911785213063656804530061204457561515431498830091155918907115458666286658470283782420769038219811362372296632805202809503557892187295392995975778293523175467460363317894634030215888407722199775043560322620686677706369092871838740804880424552215329132689785920410696826659486768786672381406444779180881094434591197577077928125285111103923484665683357370119937477376505363629862649800781370363032862143989738840093798064021245848577459856767756403290244877698813449391071555427383367284086536431332307971642948623258530783882214554471277226770871071637452513912427456528210431244341001696829769154300301781748001729060026008760818193617829510242246095595561970422543838851991761448665599913430721012828907252968942000942572250757648675167619236069095529960310470750147115267837235382219963010100792240462267027973426529288434598274127803768316643774995488735235297087064515938393902064189486199129182397420081823933860020417240030723114052569201699641657833508268483481934270258018988661894226622657299289225084161488045906183667861485035543426303546089781535839307736386750744029038577665643749411090463289185457245009091637388518816966274755056876430940114294520477104269799928391285647321675768295654065489360226503016582443827322024735503979474912784264708296901923947286576364935495157856179981187671321055305779620820775122598814576204027241204611660352948580407310513919060029822128324317061711128521467797924248008552601171464481705152835909564190753390018367279852754482766979475790204461643765976056574218607516526190154489218188628515469154952719865496618728753727058218974452262651139679403687805360389903130288309330687972998141289828726587751994012696284244018045479726828107065387987521686164575980930282495603066930387336641986458696168330652149188017744952502538494545185624600824569882967666550162507340205570106542729771118176821110771051340037510857749867375045857243931005420926487025713675629608073205320085213388119631529254675804897042977620487543697150015296675125059405480762090580232948015355385443908785507597949086655601456041878715649459867543566186365781903425524613779378463596264406482660614370426309537967170187346469069941848909632958060869496835962020986483182520659290964497261596273119968592113918884977671397504764585505497997362321468898047146879152455671950440451566442307431244800071887976851887649627612850174176983972404279750310597042945797752923542794410830494044363762555722906064671470407819193873566165588081797009699643916134969689199953646459393199523887722937753122937899534307082170870249793479758745309557159172214100587260578168355569313468502734454744428256145195378939364195837724568758500100547389913590062753586980161395848927942282670761962806525232360442946002567528768124000129419452202061545873406043718280677140497965944265195395338270189707163151233245768718205834919999076908866220693209265073084256862353385801574708667029910217303681789251279884084811993016912628685223939859518057310406775761667825082698046659370645869889482312667816015354547847790751268637879879392881219187770203697112291681778479836325178908224061688878899651925089510610017790918074754755430079623803964765448872163894559845520513338393289851333381036638126720953805523830567009061668892247584411591904257399595304366061732998153919743372100291122578793078353779710863301175315899898330194887802356728637547771555713891574595603400072173044106635059970498351023868944330824585044007968882452884043930131783951497277422891390098156381131741535013728672442444277923161190914833648650762120934298079788956770523647627664279833206277715757217345165335524184042780230454333515066317221000147463127252388883839800630816692122745757458495669457337476160520797036523206109415460317096080495479654247059003657095524271680551855234547629040413497518457857906930530282143018241383383627287849932527805142952958729150153809965545033625458142088802493472238786652660149344449385795992462548693477741864513548560314540188553144601132553276806924046485211866918353113015603080057927620444327738256153866052242925418002979984972504190346130674251221906907967473855570048501118303705848647739933400952820935099269114550625399032736585134698253591388178367168157816860574017466827518485180410937649476946132826579361127595145866907419320779592817375127175647514982135195811571771620151665924384473334465468737652215487324819340243686709145461057569813135280123292283298630321043220075480501355185437482126448261358572810397548507757226538390471500225635621960036108058359708474567318444587801374974444945728603581843153184768164951036160126706378448949954287386151880336117717475085461259512411471387404278674099955620209796983119654732686589339196705184679065579302238449427718962898210950233716077973141490069094630918301900284541926346191766591144162746608161968144676871503010479050106091578795726108721219366388501240954521684164325066390043072475401888580285840694953332654024237776998741474064076357582076925282014150248348291772929407209534862904458440341853290671916248029363830807449899222927214078718982336563225693544855110678717224198708375355045492023037879510044062558351690787504187739253303103658714928070047193723012786949599168793283195931271466342756760719036344854786125329247203108750058898557397345049164616598255699493812986791090038777410803049075345755104313799774623251905624911683404914266454463463799857747889848798640005420842241149015986223900455494486371767795490476284650406401107166928463082031719758533749092004110754871109635537215094491880439148885870764592757607596138802603495978947992791910952828897442024291254471210230428815196058723905904018012851430286876517734381311118178495884784216319146235082884119437491217929053531541443239258106810588028260174779951426148064531425248884712672245334872035746167356279491668341366534042045722191076368962685182156553292793637331617977585362112026926933380920050761615981559526675709330385621967510163465242957605637722615069752766907680174778895820336459927907222614858236628942000718187518186546344491367515520469411137544264679294920976718100067073919685051118730675380544785951446789573170620168692029845856305242498901056625968378789219834040273331747647588996478873296882009724373640251527066792441246882855998527175751534819455146149554313293369533512710108116913243011304076076967846644690312519713803517226144947531658202590766354191783955206144654941899834443526691714649117382535620678363378142203335980881838445357628111787213717950784194852378940381342772829331335543991447572776233527348826657711877049885061301445921320667348109222796421897925549442788047858418699304715968635601068572111651892508511595808390958920539050874336718657521844839666154393896068388002923193945444724993373123411256147948647598806002573070516374386901319750221267853857966345017811661987361124734555109833442881394532786166339282089764090829817921413628236653804114931737515928590925708956257206477137025856317118868504463179376620518920414681722871454729488808991217442057030361334383527829744045700672605329496876852576558873260021897489796950226618477088845519222560390496985713597019055866215939883844667468731760813464222236276610330746540669627156375932673967642940759657635963589092497261447394031379023103011619013646450319373839817688066679831529792280787728996544562337874330747583024985447932654780885114631150296342976101015485312083080428328887829021211727293142903924910950029075755160778088161517548479751844906565174359433951213177804653912942958684465486480086888578033273514717675266298849717659920656787604477829694080812198775633069889568895216393523275924619412729493280905387818736140152578062592709902967664831518573410434008584510141001635724846293849896325393508589509915797559706633032417815633916977733990411350993873342636848072113067415906724620526916133894878842242927789324613113017210155922383690722639014826792964687972267497440962780214374708484207444482151388068203210320546647011685662578152379863609254722728475689432647580585256338781026939850965894325714533377820819573457266671179125223764782018743327773037992950671274462068238099042186230419842628306631712150310195103287466702300423461780269384264291651270466174513445504413721212915844550663092616496124842517884985500044850713138300026207590919051937728911048346670814012277016108366371205970127977165621263429785955464638877681739684178799868072144757523562582093580384249038222453382750423642780462608282992577517026432632927184504179323645260001894578844923062347356766463968890491300286552777688965778841200616351514508919626765800524765981088952680530695746475240172997159407568010673851155522762635488464212121235218111268422693802555655145296577364676922723725268678693170812778262861266155516230531441600176506300104101548738757837001116100758938106757625857967481328882360962722728208411195872896845557687820758482847466947738898065735937334857121266266661480038221523406147847898647555700841863552691111756567194431569519290529375404850855354123346055840897249465372693593607390492994727230096050738122061831082044606200855256083434140709493569474868588604440385741225148902595242319355567684662596423145261229450886048987526479357245562150136089625494404949684898919674674297210215589495871617455928639920169646395458309301134891909255866097635524141397764556266199020735793960032300909833022091979377298394161352364267705598884721837020395086774581094837794936022325344129438911375688875332652384873471945991903201115020796614523369278964446351611835430877699197866911572428003549454104593698879830994159473442656727205271728715611406408756654651410869380962898372140652706416213762045866709396915870158628063659636725180557084405085707436182019543867319747880609387202041576910278063133152165636469629384806064642254369722079051043327452603690831778599227820891856612964794014204462928327050329188474713604565576247861720308840461265684234953425037457948291539208751507037221492309124128849595946457428771659477631442577866454753566079721805769212019718673974414952652885025357406662057309831096835123731148630679627233403301620459403088501489544420359108352717608381769688973647349950379441382061628407141468733957558028193690723872706807970580127210101597109599344340481459553394016477270196948675006433268199569434765169973187324069943888796819816540276468014625974896753662865948414865245742601717745181217712710026575742853142498046091979478276359476607976375315753101142851009888998802947365505241191711669500068604578996670009160610115649362365449676625590914149953050159605749419626624146663228359942028004223866052481770523935003980074129419113246420905555887187382523960824081311635762324785007284063031678149176570752615504730643226416703017056827226946560544884746156298475831075950780890607725397944895297271592911525018376867283911645873664712119015804025506625434293424061071205077368529644811575154007135462251030492978262681556836240481060892397938506723163527414746622344128608002527156850727755774226299907341234832022839664376265345318975032842974456620264595395974206780208908033619590796668917059684683705382092218570843154383309833475642611996443356949268091554736131036365075565789873534713676141088067632125733248093054315697941350301138659178775194691057068107514825830989586581716116471549785762730476795599768431912400253735596920349781930076099737065875251218204336000145267551131463348354877394108805003953418187237369085543944681170949627482884289471737060369800093302558726128736393509768092628948495463647540588923420229270166820673517961458953872649472694666281392598659150090002520966484899318766822023541106919882662366678412970807781794106930282408656110288207747573347398980045048319509372264796519682271113317065875868655661729562721361772826057516269293483612424795852970760864378361427698628646252002457359322800030660056903842331294044127698503184750036452554512747137915485729786321644402812343217711707286276590860363498918258721697037497404016782996430352181678095795764348817777754726624670052912817659839489514722788482570959496285294066824036493137917376152346496070368553306480175083826567593387446237790103709344547468573933358513445891297835253020899770762455662237782108320330551816972136422362367268910862303171554234318873806071948078150460886214647145763561162113323431928452034460410262899112780704118221035105440449661127576672594869799834901582329423644769093716540854574892591532224112928553010284148348440065989445496737614349029017706115090859339579789178576133486630963889328363844662326755186060458617581431391291695210447352333282620670099358942057296814019513992074335388307450233659943913811849742851639871889874215356060047405667692454016920651646864585658783755044662468079575269580025539496517119279739565402041443754745016989507988523043942054084861933359589608107331592961939592356141178439160271919058604988442140413623313262146892205455490654815055136317377044502385825320248671446244755539024809520866514949886287288912148682507591612910761474675147089524531378694302101979522957226221713196365068016295786499915747957571047827063518738573936314574894431284039064302340313046604415726254142715998135605743577248806388880014196052862527322655523506787499908662306665365702280659975220148438810776270027040249527412910815700867644183896281482636561799960540774026259951377612009776665535310703163569765034464194073067164861447463467211392570984506685284801531448811715827934503977812244603896102687225754449433447052425682283293750462403667960274351682699004383239007944399383610916528435084022640722448052387511022291938251871108481939052791098947526250703104956464830862405377272235090172954077137781783644147477675640708762404319876091964939739896273238268701779887665358507874277299293518234024506360585517727678752021566891128579582929534809650593187166381855440893496853940636001965350453257510922646923372618388233166015524973717458775536707451288979161788912328056498301240012155084890453656551237522719262714257027165544442925710175487500070355880329582807188201307592760204165004076764264134444941951999384684640116800203839013770709999994937860383273079621464497349729685952016044072666583993381486030424025439065767335689521309468250957055694384538560502455889587778131210480659925296117843650173807352999383230058900721274206545132832854683282048780496625444904220080998616642984890044281414772976011493835281393142433290994968472480338171767072604858307115494811260671646032439935838841747103308652721931874453146953880184806573198400570787589406929605759520271841231440585343017539995473168179240732296802644596287262198232196997958562911756580402139421089138391988167654776973482527644611478555491180917020931794044631325820589438047057253909208575006002022858212273909942497232184172375086096225148775538778688796956324783058161979262985642946856264275625873666191682109129486409605134980930969916611860489135749820707189238935604410592038008388917218622198996756541110524170180958896146203467788690257183569851874291437970384483513845078893489614799553010744482383750704159851472370687538996001107122021111224388603505112151899612154762469214019381433703144825148270269052325744038553826615840574823006086226980354371316834538976318914020500673834859483201993547265411231057431420157206360000597523157508747285055108457361727739759606738770691720425317521347249957671411589049286687691542057725521416885582353892167272310148639659047134837434364794151973294298385126521270114953842758871528639156603438269625015371111487523571810502678978326455583337037539227981880051181560061507583653751375593453688447147011730893576660214000960993996089939489958848349317986906819619258242049094202837647237286792628787904535978687403269534163018640630581555338705523022356741286912869168995245846407425078039890696196840496978213728777889747999548869306750904423105229083001269464691210608797573550619857616936598904583854021946684659674716282355634615403868584832879505262941490130495516724116943185013172886283142254744524865811410286890026846753966543506654439391477164446922401787086428329907330296071700348757536317178702252924800488191037316873314885771174704505536831494250549984692966416148666247614784904496722765642791401295655816484447329833993841028013962045748744288635925089079554528068432718699417067490467513161091179732921310671905685516066775437403991780421218165129098479942108364777032609899559463769781754230255531085611598520017319081099778541277126734329198051729415632599726351293389349652715157147186751028191484227378646584096204871073439560577064984155160263805369461648521784166677756348395266903546964376927454969561361519102248379458751281575142204336957956979871796287665048458789144374153010296914362523601495966590384344166032372712117024731461834544928089722747620216302365412709146004126710354676347826611236156640582586244331478710128967612949855609178609920762110879699271370373696032681680510672551388099560695106959159583223205025080727332987679873850115399941282160262651545868147786283058965472675601406164754491703390792632639200040898890738630772127416325920548762541614972890330035254805985743458846025791682134019703191888698119029149339303197737718620746232346883942095420727077212184669803975326357099775994682829384597106152322089767192098251709760282496417098068879076584900892848762860227857238290937213331177743123384751805898575725328808712859736749908860522256105797289415958163833480665282971152127149340970018030751411240257406998203796084302402469735534538670157062958416467716198043933186199820054982056732443466685910244627062350053500860747138152750140792445899106846869700739332747157770405595994770047337416493028935513883326540981253904600846398716113560033929834637873776292397282260129316517285364942350988131424970996542750365037904140022971507428097768328579551149101779314900343152771681542705614957569950226879638264343423575896222457010645384616948647888323389009093482486766611147561078269163859800966390264139912619995295764486677556941610992232032987257721954128267982269652585781515985825312977305333149438600806874319097667671822343533278274693373428713131312321388952056366571601815365802610858708964965243534922752283536406506864305410479905110363179378827182635472926888653927919490943873037470856510597085277674981231482364236306777531251270634689319329582723788602799181011264558320901155868322206823628778041749197407094435531354897081049402754125578629535819168507175133933464991443422995406846946037534141742659605358248433653015897550767338880482691522138346034710030567927871966017545881164371146054624310826179828757537783095741767157401077484725524373313369408237777898575681190107966082021434573374630492958167347619291817594890769332012266666548328781361502848995838455595662379616792959039872573112394557217127099422624592969988236471090385967144772810862059875936880946850016431258686771516108403032297343976214475918128521922218884035550866427228454426237670472864802326993286388234080806691723153489894447937745911758832197999844235095537503995447021996948328988462244327951834296766773927620321461850574634717250212994630060587462123998098851712701811637270804515415290519088583590082311970284678167580948934080040484067780616927896611086468959568792316566563184612092301915587235341359127578079548221869946698134011614946428272321312646486538986564906722591339651386728600010873173963531877163745461129274075528694096613157708904579475109509051456232144338178735531162697896931002026433142938832501406410689117575520509130175031301019854019217309715153267195315437763554354228208029383247011094336876972950914292803951703266635375771729698765609487139511661085807772648799988863919024271062662913329046312579141540013152032583235611552448275640853338537178163065757776389335483846900406871933714083898564853093066982767097636060417971213413171106524040976993087790031347044752741172829329694735058280186837058818559431106076417750748223432112279359366789664774991199724889466586534340792114302122690167994641315359994827128784041493654180301316467019867433812271006645479966470443144365493018198391049679470102484416124510910738243133712205352344644658751036366896664780119578223679443442779038830861567175886833971002798059607865851206647233845733370396308173641807031751255035008838397525983533469543474609890173675098715632669325929218854497687574201133581933913467426800644440290960241960114242881136021986638494296719891478330109044295954632562375577527135100786435827920943798220008627137085750287198798020956482861675468621205979954803994508781002413466579369897785771775896203262434790217028665208392913437890718259834793186225692050386761275650547655948331763632642528912206108007279390521741549282329011964485704242434963210230531584437678166776128026932338759701050990142764965256037991103771557011171022078540204511066097130319658654602720976790588373953618342673482545252439012511346700733239485922260551593459780253034357128083885472875196146309510628164127483224020147314319770030518997991124276317050757572263149096390619858771250028045712937657713148407450979293151339792965272357225876016035011641926724972655852268288201934790714546754932514014974353566734403622985606668191167091150989587067878064234166454099485663946371205328809844137139435369513844435576570092898670241157052090936046128265314226465235694850588187721666558871853167246611785489094544234145713396950860030642555764675463240540495666816033108952625869922393948194439975778836560736731841455949864370371428308720727913566791536721572708689169117013126588613029653685862945794535322166869431722364133545314263157175089439857828140511593413688350053308437874498309089496867030169305204932728599391555437353670538616694329625737024698657227154444986878237933819374973747283515166263923251896600225010559116959816500910311392627069875792625389610838106590248497146510647982518602755553643609778054107956715315245362320749283857705614105154913206996193568846162888709460652589307926870049860123271590130796436303922641180840975103565855944237130018373376056968298897743250405102511753207755802523728266382235006169926442741999492778154991939135057397683192988287089311488717297882367321362329298650089182962220106664184719978585144315123194405891854168103973943486857482337651378787563261577466079281092833793417136380822047742225538569185339148635722605238435919109992268720645205456856697991858554605896574509301186299412224520330459154206740267982309739732774731563243093139081277936944403359437036042109764637257550172493252704992199857538408030784539065070732411519282928928235928184282594429599949892070266242485682630526119572568889192437943769804924608860897230837925333663663601221868884168206559469712242219883833836089014737247216629193767828540177007313076044810878486963225095122160690349998157335105036724814173312934450301789295863942450170999857675256413557916264612418664672543951948774746576162342274721360651426131288135749035762413012375096681815313320680535662042497224634786075640348817154426403599695702837795719809164295056070320359177326426311592604385217213860446773583524432197843768623410682191031323969214730744094749384284435191859067015237255636835721008160041813829569147688877228531378177583891239999490404912749816879262011860508049364101608610767361122758115977869329271003405767894005470555634337458916040597984487192797965778595117088558842699204413227734065911726626875536701604555811123551260674982434391196426954235082413224982018228189712213040599146276485606431810764247736578573233783925587440287129058934355103386356994098663881975858757239354263861822680022258071679456672799480063361862000449956189421159932730361193636612701072778900767613606391851189943909175115071231498162799156156363259734524745210208983354264196795845715366942991639915883658116650827337119998843637186312974788795966249153306240322463573721809769061300861467341599510741352522685340322201623558423943758091569792314164570337120240718004378727741375679467000342404805117170177468762873869267979979521979544107182104782210764022231551724847570671671935199524565575713325431495063222742503341731226494796687844483985808342084018379192872287929954315225735043918560991395950090504988879525420622024348836762395088416921520195773065416422023525437460862741899338807040369100051363526694493953349258672730132191804436597554745836386669098807742278997980095859071291150526843338764023863598034222449232112599163050715701160815324566591132272144529527084782360708330649682339526013888585068906416447647878995634973812635801340414585694531521986693608289819043475165197450917288665665914332619952585829480637766672890567644000418179190146854057225806371459845382887026879479395591337191706364908767358381232863526446517532978174782044628730087265790899179174423861707940560862506654137229598354102411133243451684145301148895890420278624131505586562637967620377657244844975663948677620751094184751999893227084496781101621196505856725589022133100641145013480031768119467676054265226365749014739047970179871482149799433385102494100364824618373530853842388497043774621579867039632962332739584774046446375327788767155844371231619319288931126056742622474717176176739814879431847482421517377034193087628575660054405675475196278583200048259265068530808087950124756485085508510465384835233853900645841240137997300355780830376774267097488554972259496898290105964707818789852959502944460353279851987709569207517233679029785007604755790471082402510547406997636857565529051167190353031213086570282861725429916300917458755172986850498195929647841260249080038878424938421406526659149790534419409731080927408958224083920090504324411599944295845774126634162853944083085307454445647985420289702157877908787767464925225731365466510717122707811696352660956835022720691623196688494644946363769646988386791691036027648547340506073176429260494493470547223283276208014438566701799414847199698429853888409767705655109222939726094215666443024771844171984505151748165825665186138692877899304905179348871751156248042280304373633556245888402534678013305151220893130031593073121001795565714398301231151396534852216332101221490589590912755845418093875642417530692867099447403420550670941138940661181607959200073222838054360947394427054710024727275685382986834898187309140488384373151627253166773023757359224083120714180567979462783906669834557423572099917313592128713749813496864357667311871836780695866416662396340956320103105700068249410211128631641229501278307390002029318659626106790319880814377798241976836642278470100552594353118691754808124656126237200122477962429764038798586443751763734063236506815880860718573881380608971633058936030224514304711419415234542306229170703755290464321947195178613356509192350053397023418964738030769933090849170188543780466511545128981117245551032321219972433344515602716234551128544405487418225631132265470423770104058550653666350292424401086326668172846144905509412204659077173858362443321173828016719567263811274168055946543376340539079309862151209505169243956895418942960401492628356469033516891093415114177640233365574327687457100135786911198399125036550845107298117308572948882683021653616907127133838099036152955777700981022744048710263320913574161570358175421372096188020384033332877068044600343947078928182876571518538939515689838456820601445147705649741779328783784093592873988546460820711972728664749258809961565796154572517409058163236583102624878066136354716399492941241021633244580217571643580413794758420753275137315032033703398244289036293764964052628566195497080520268392280070917812568113953469902014751906694038380115494104997388938997907558995681469786980018762974378379686886517185991336957830039351156180796343253798761852704548906472431522091937808717539626113522397328952158918686375662595855575614518557751798641155447668932620091934621916200659457024180895632294872584920325187824345024461737945876972453183401766201059353740682065218830498223736660634103144039914238906738639574974162954341113663453886936322562960956433847032313147286672986585345855977420089692261901576818734598218505858736451386660071349341719525018283734525686184469342460569782429884782813149591772281997308438163319358556425256387585141142163507714269732545893890637280622972267360074335786928811814625730773648804569714408389038652283936156023848321910897384976080828064962183309097689786366548088714580566161857505138808774942811927669395317962723344628719640486551443056385180099121460355379364570225148750823395157601674840751445893300090068909604069023639773270014447399248864562836929093611259998663350263762739019651407308538802288791207136888251679802792157329087233776013905566139583734897133471279607930139792643475159265904795874649241083408521058025774179309520171637106722367995738182723256735652991380192668677947097725710417476086099685681517841272623420891431663046744478696647813049121352970693148201776668650635650753311749108388806607828384353934726347584494351278853860845042732690364346919145770125965469351632073727912191567344306826954836800029103698965037545364052148865116444477210012309782699948313711271065642052355546890430590839166931664657867171089840739390398527264247592387991895606624839944380039143224652917957039479161639117708811876023487607994672529237914521281655430474715837576671785822123849309157566554392555448952700478865082771848863441601684228489043975486980693917441611859933197589990198534421450135871929285603640022371966764135354890718169065319241747738615302792856699395447234671393261419007462569764516937661338126150761535127523718921936462502041177779727218352457249625631178480032749783127379223913424588015901934749850375305266378881917340009394593865906979908680942316807158162268556243412270164253243176595608032903267100894273212107810065750086884742829037174764050575272510570067050427322474203468240269273277294406462666522761577183874962556995286333977850192355372169977625847066946148986370842497467334831686109662992720287288726811451920962247823934547464442589669673336988113108429245181097287704288566795283002645064806372639055356905400082764829550268889880062581382572513999460373682751882921340990548670494819743661993760056451304346217801535756336069387384773895554219909857442033840340865020570748416159603128770744496790102180879927749029657886329450980272815066579205396738170904730085418131257558751257515286486047110345690418490050208156784082681194040517343685402420787177070133525021669352281230332541860424207230905171743922389106196368799752733187592253426507569758716481098403507339840483316561582149854360182044386396155981324611034119975716388082817684477374593599087056152241831047935531936106706594142097299845508376264982176194818741786190539427460119855681022641120652878415084388612046177848921581090197114405954423883126991074118674332277323530974823988616584540177334586642294818514549182180920187530540215315511062869896246478511546837431405839745517937548803913113403446826710978013744868152509500068521219520391568869620322392075578515173263051145982682105154252349441156596527502023793447254073509485700405313725944911057060730218827342537756154707721627280847015178638996416295104186296662027840276759171756262604006011604177381910361384565025740813890765410723243092518466645373588165101015195835883718999321174923803889081321163239220521737393186267537257591910397628280954734787050889822497423737156225307832196127107945551756620556814282224052972877782408538514640418778910937051525436062805508087350034641895864371117109329375434468164140371919356270937399762491513077669768543972722093083504840822559201707043028545109225310021299873040688307210660172401423441584962980138916067230999279175729443551357500381650080662822431306618309472422775129186796988135683211600788165980036872885595920344494906190249634406141612293584782287244116481009658014773166895942067534791816675877187267153372265631482078306764970063962395553445846548264358353831103517877539279935319867066269818231354290646502358916777260179627848643228542039031186355126154707760019298185577217310218801489880769695549567981071422786716474164785738622780542837464889614906168078096002603588660574920871431766150748698753729321803783074604487557273407478759523463262032860930462828679707630302916129948327476973403176793356178777972407860276738485479671173586321601179700070390239038685017692231915187741367865497909683287725238888415568536644722609390383606108454764863524789616350929560600812572120433512066966133844447328681692521655532795625952161054832414131689436586211450679320309405601590823485713537899332110911063556828197364817868536326793318203986258766467509638588691520832914776221134035232464826790329199965461731303885514343143869577804374145505995285999500183976113004588547913835462129762869288646323105428870000671356105381101296365326556513391108686051591281780397579305497605479678844822396887604177601794256465422201667882766312455621792885828303331189233672540009785890521845549273546066684890580981418059973664855310058754572740442229113199721469410772882968943169118491371057084730570975113210592999513552625729108241741361402499253605113902088714970870197301922911060507576747929568307659385305839368948647105072097562263604198882209702777991345823857721187776722718115752465757749674169187738287518650900185158269102697262933988594280965481236222264981536493237993394367353423855735087333738493779748886772324930115329600116715482993731549751869320437437939217617730233955625410280324724074828205642532791145943559657084740569599765813689817591259315899783073521930084988943948566413502389468005607459846764926954094664375390912250909002481716247645812178367714162079339532200686368041451839303400966560670545084594627370240690579299500748060887167536493722698599776915518728494831735280131553881922597564377612292053166594349207920884071510075986058562174359818779134167694665801360299865638325339794067305746103106343752342266132868718859737387044773184089127424285819001429175929263081682868327657332908748892144788121536480227568370162200103070753452377674839727850347128295188047657020299885441951520334218901731516051031534861525345514620541531982703204828597977203428676631983981447937459235169044880184448595371555105917075251855664459011808007912667898904682356687021184863538593677057474515129546852727383714026957612152609950742972802024574471856943876578743352513327596940060822737459392758616726138877571606213792645994033695112671216777711636423157931805422138198683201241553124483896940788753994942691744892003253665519202729948383366130910873601773473042439170255699552859453727160993492839879992609647627414207875033931023460138519333384350080442286415041736575412803587692098359659592142448693861672639986535560655254987896984504993688517869428567469413090887055950122323043857879700839547189301386042473629465309601575299830567099298813975401627909665073772299494899099478597004246548175737325829907174697280028261695419961546994781411666020852069131003297302708062279277685207557721890046639857879980266671656662364392237346711990449108030315991772717346855917338897450799386258849983665003801895143969072315918981872638854737268317153772482434602145523570077572098123253661058849725712426968958657184397659456482491045276651176677720725770181433628340386548739527454339590970366122563951315095205800522213018900456397727344746899658835655928200497827152203318383235225057385031574481349936812983172737434087440222649635248092299303507880592173592430504449163494763621207611662215887538960970573846697881973634050926923875396788514211195200839665160148479686703898605112250353690257710388087525057591023400849231671136919334567812790097859486330279104498612910083936667527712019194234606205135807692336341671188489842390739724139645579573002218109019590873522744834375625452828976735847212613863467997822292799167074516950047539127586140486918220752559419896423977540120525263048071038140562928672914943977658415531065413540344620455552294591496559200824047767890437704050829765533066773398564355171123435815942836291474939714607144355108332302561223073240314738836130444025475286346608282779883567230081260377602560302479316261167283999723290957292264928632185333605142107495410784585444665911776686939727139692365638828171198423929297300797023075166389765697322344659876080360263044364150454683084627849737150981695630405050758310728706272510457986389495010513466324921707764092777577308126546291520721659486310893306588293524538290058248283798457949838887415504406567019905206007786413857392367100101005772990693893478818383012864998118375365045135665998709342353731287283325401219187516733169602636135872432852590224837008418954884855815528158636835747965844041627703787854525285104338466448052269019874474276935870747097388170473246169960723495793982151808305617697757961446728580355794102555435839036730746147371381171916740867819695734809782189849342777606101415787113908317982287701140431284316840635733527845973310789590308735822783849834708307027691993115072883943030475575522742759355855094019413287724303869026726341106985381637880381521993273288076640438268917281635455682691515723719199506945723891736299091688665073344390959594385238802214317950748943809045580223217541871191414971562480146664967157580037893661178308955233012906194436507335133698202858253776271153790724764560175644076806417433828212153862144954095170175146779565586999275454131111609419208009071040468034015499331400151260991388853231522586577002751484888400046855087175240285874581752374242765992797288427379906597147602937559525303839820090577846325416714320599271766945638868488981278253266784333546986193748035305499530586047302979432316072588094030650332168951698096853862943131092971573319372542624536524756916118144429323355109615922687379979251592093424190173342108975283607761140584315957101555435385658743341338815706309851361054162942220367639513409174951382050592027612097404000651499819201898792460813064122202252365184898719311702821345699972240283736331198229047092163042034198885149140692675430867014728317797203294541883700445822561132135372672837614538500217994207631452224680845199010586402707755004637794801416622451988084437213415515729223722264541435405187141073819111382149097610230484408893677861316480092654698783547326550665385197820357719819113291853344967984101935089564104177757579457684018435238075971859058703436444097380088874719187292261120593013165513081737642561352075183034491450448105668242544994753875997032524014478698164927264231568407755923251051437811700091993704329776303097443978658747796796767656113353259123361405706221553607243735161199671866977700239877730547009656066311533184359914257172941514326888515014116146939118154191679360084805410054434416154221561007514872917545216510592013490183666694445185647882092225536190103437983696352314088086435018069326366890510887223209207057057150806443059383757216055583703276414825624573602963143756826789656277507417732046109389105165030156722104328828566809918980815816008791171167721983629255508197918666665369254727595916693236234172016065726757481004889750146177574263387541547664953273674315737344714215799156406978137223899310508058411728959993424265019727161079574284203027479591734607675220360475324677226182473220060329606970171235271227861092119363540127429248923418853306337917307826632391597103289273975401327049221321139145525067435438769218552985597838115919596836722222840784077471881303442967748201462862083975682905622796152178967887034853675164115126306034996820391313532207653871041871573520336338493149123889873157440168229123448178908840430197728309866209987907945078521200721917203791453995241958819208158465096384848987729748413143248375322636679046127949674401530071545154388906949160437828337507376842388610482348448846905405457000865782970118703413497223491629097700036629116519300106122538541359121195203025933155615828674422947333383475986309132469584038624604219967581141993839927075754897144419215730544156704179607597177254988973851468792320054075281887018302460905768338420650891137339372196258700466952275030777788011023984700330819679605081617309498231492175791257837090020245592381579245369652467177408113538724239461201025691386259371969226603780134421625230473289550509754591319417800186973466118970384232585344715242992139508025333202615292383503724062903153426181352165531972640905050405960564021678358740664992198988889707974994839332393725316250452693520571233188935810027135574794857821091791556996396820146721738660960994690649220187730072656016372561738465980041229491655348558537878053363595912760992953538961606125371576175535408298141373376837451911086498995112879815226599606684613998904357012586503975442684231734893315579830687578871303429216236477538044273496812314099547679379858153505148340187113221688958168306960236144189118504478923459519734493408862250752635646060047218434668044462537300315391428426102210768738571234658343323675772059811764921177971789357093258019271242187596134983885707061235000599094788176226833778802081752544577795225805056255260011220847050143091660011062213377010219194593350363775617304542916652669285330417419736754065276958851241312856542222517135239278414072608875369423911795163901361393496029268540986949655954177159013983674174985951345206127354902780599483867767926988666298084876939252727128612543462967171926072088454976706862374634945194658717680758132187815035084721516939544628262663472279405963262982275971724833585729704033449741274916642309328632235893955454348377008558450903279182876629079610469479487828191113575468238783518370697210360541944125536653774319059780145800374394396137984319183910979659490853272416059711628225837092863965578920238691205441351407222469115157457927778577931328145575889825555491910492599562711698583109096203766945356639956123585936839893004816544116359003570666761387985954963512724510638368707918965484515737953263372744503007151264414473673618290615248361328418958262545225237130408784446055131555631888045855939240712245949256488892578058690941732617857924596339959599295136569480582295623062332544029881520545529828840681902194196200895898526027704579848020040136233745411862524599648887103840246949143166833854458623613367961040196992180036810351579982254178242655098027927840236221478338622539168734830368532959059978775692079169154922001055863079530852506924670045044839761579410399404067035788715469802259636546338776550705626124164631248073799403334644694840599816494675766631442676363621477586330950588378107243937511018845297611109488373510295324749451618364500481505692604280925474990261162336898397340558493875787011178285991847008652301319259527990359481840541404600195998774585150328153043380924286771615456276977964203957611902795244236747874945830315182492025946408565371725361440364453790094812605560816054934388685613980928221307015781712130558886510114806950312907144090576226101991113299745121028463690725116245283147283089713298543383546546063831925131812183766235122646044570535779863614196451942051140287319678605972524826151454986232715036036165952597046875443020061571522467405046544750745396087392351539613051967490723776514682078868521196636012978693158821950213239472739128615913121660231894908493951733852520816815434515282675945209537098214953670327027858764256101485432932473840922957417233095804626141099074487615433939314672892993412091836889757627600641537805838082202912660972743257247661913567144909863963332847898741024027663792288507303445671561281652319735778347784716719384702394327823038070040952846021132431829152865739480115911465338516631969634093796688462093160745159476675590756129092137061810682492466211651703000895438522001483357333895887376399217746999276536443073404420053693190067520316658321536441583076821248332119884453043177078092539255008434592805713428544808972871439245426054509948077205480661791437860375824123668752223287481181051317363177078238783984565663943613249562598615229024697343287742886900203321314483876857272129530838597307609403096325134116542411396498901998210961208219540005762039593820244980542951940005895052966437697736857966164929881776005045269273522903975603942516256848288332730053765451675080482130603008569166898209234115541042128784147707028937431761650133313110943806621144460843087925169856761893679990412410415732269395630035239174418082505692914746729815815257424015975565441675612302373339945333253462003451407858024492859932986116227837461471903837505822947220931144297213639555900292777971810282761313764610063334874886488050961366572932380184457762446945489545263150480518125967346376646643240608472502379302541880976772751982612644883114816392748958556140961134365792769938862746083914840492421124170775783782011622747123525315725147934958286274580265712320745523888847864967550627263331918777156323340194455158809907951479481789424893058499060278442364069859586238125185304764779895936482463336920051197893293245683301461782416444458021724984751022701385249620219104138208493511798158240159089490728873653026271689314426225679012161178398418452575281339688021294936046121794965250873139739549493450374541280029379062352747602839406783557062651543830204013781162379424812381873943271389616597285576422060499978141634688627452936503982187892065286564129463109923339062753135379952934679828917942841043207019830249296897265050427710133483086360289843600750986348724759010142512430901413413302512744252840351092659543853118478243478718843104301778256740276160637622401583349607292910607942137969744795195292604722665497598549760295908091441288686053128223301297478482828027786690858066428599965578942973468547120161276916209386494495973722580391740748801683893174358746295901258269114915305792100395624041717491517033297961903649778700520843184021028211523621713127953559887639791765408937015845758353238992463920123750358348317481562784588158570701199408516530269830399266684066878816493079386887541986570695476230312690878246589235437085430378875735227252728553730260619385805308828621610427182620621036482711998606957033568159600609079558660910470126073901898045151554517598294207556939225364051592891912081288431142859084914268430293202939125490582629227216336050389638395219761798965080337941543198144671341874363867854728823979260788278788738960498311752224669102299033617315294605997348171090097799971706518688579741743208295263852268998424976080517084777042372151057619303143811941772672702533273402423935455687532753043188258501905651543144416228287024346193512504621793973133832636359904335307080372361644782648002079221647818515832023644608826336351986973167808800081757187900682456929888765744870585369680155303404372452941128992982325949192735636619918081465475776129604293447758100054155823084291883157182233943056057964884488437473648909785536456237074273073923360297469968177551375821017941043703327264322581408118532229194108011543357993867427979003385521404364797645294449246765843686712579470205758056574774918638816631440505412614851669468047183797615939307525525709846126819723403419173166234294964527071615649211855163661328789611526157164195432554744611708077013333222094611251238112033551306097792323357068393096369498551814960637010547929428972001995809019138301749159968087683981866722502284340013985292301874916660166652032540644256671055735662559753882566160904119716806497922345243938382482081347116437884332793101931272710096807412101522659717065964885896484223588704681831930185272049269237935686155811936426363495874526836880186502970256987380664645257066188879462296744751919342403297185441227945158264207963173195873285686025512726206054957822233970589500745375900168144352454075117677806514661367979823381113640434402687808899403568142948756450866293770636152289329562440071340305603095952112667627387437705622599772660642125399200805287537123302585750275052249193127500564291802980703014767291862700823863605654389232076112433430804002792089509077845762541130065468980031077537056116335627603177081388173584087633631371541738145488076303528613823124270879265798464905940109292302111180696267137360162352286256116229646483830682512178921716725306375821476297201327403700426377488510975812140894786482285230929798441642376442031129784564395823819281124175541057540076059761849806109312804676804520745196655656182410490863720293185783724787224724508551884815133899937771868998304048148871976797191196443860082030427336993272531482224473938448249636565642740273933653911384412821235534368649471873917963416736205532591013628178340259999284142547285555987052113095184383824603547512631559366468251725033594617952459032572509050596084741641741945861907984860699896209975828638108596407429742914124373239780681277776007393549548657715304657713012687509577105754742017054578967109804970893182782802272707919065687618133438158123516617809062537411010772121416072300168362451429213345340272562063949424303208507777188515908484067824048131249472765413945982640940554400509654827126957129437795666004934414820603475849759086057808373576910845757023797823148515311033387399644465963127131220622296111995841259038876944250706129239470558439617077071662432239414587314104980324396580251854404447070052600809920046281138949697339749463059027726533919568858880279957851730988798073799662052715046148880148980939192642701885168315385100163501522919189150602218705858403549031861572853082016402144880563570229913142035466648838617850290264676648262338494809608577072305757534704252666361167154282761924957502741679420863977962527731922645480175574914574094675077451571505710262038796796479528589086364905669297120035992635130583583266429689280519058249143598050278556841195851541891365315599659578547023295586507950801792426584465270620835937352757721748502772067317092845603030744050592832724321004770920659795565868597173040791013373937574217078745299744580035587500844289200652925067923532474356361200455948248995369740063003549312308118703040854600645637625045900197409366906149817687877449824658333035269906429743295048816007840244059575426999276263694664186842698766168754660484556179379123537334051186430383275661868840397040168337660960747663493632136397624918644622238604687305569929288535138776514434087408816585412959258982292575193853129158130394617794454616337575720042750384147379856658721948231220512447908732943048482527136690145447402006026205077136869475551195134987553384049393594023263628743447449801070415614142887671017253752580218531183119598471913706392318343013129378074941055436647323355525975344835649190780421274565418268985457048633672165417998152137748566126315715483036921106297126651494795964323604806089783889081824785723213034015469013497556064357609585932368197620698785703737235673708230938370458472817211604028262784433847425885160445812380204345016932278941497203417839126925037840820355381589913418542665114209607036283852359428061986796684946155404437584275483662776235837780113999959235520041220634644813301172772152880094592779279314273630737354913736166243228114281676210665632682085498039503939195788314861385758739795617867788554368683704469344514921128318844758912249148098711656015893938991335117824566848323906207823571826209725918217976225713192643733497452750915168752930413508109803980288975402893780282132227881699232877746026484669345124994509704386472668708619939506648543727887943806354464813312726503006330188278497342370368796540027370748962881686233139643627515325084446928460144051070479958372295441959781467100471972358964865036211598483199705898924334290937936118136266986320488385943021188035837464540853811430509895626239505608441618904538620024725388304380979525880260273139102842995019102045699741976934043010423682566675045752565931980038903617310730113077381690292262532783620115451129985800306632987241940440218585351258823322633591812778874263319023431644243300767338777754500216523615092089225339801257166795607035090678836265954954186545939504397201645839863109938931083522461637664613058744293314841942415167222589726005546981757282368651764561412876236887496805930879195834042071941254124665381499681312857946984429277030692562690558070320284764757896933907968704639205817772875192221960015374075535981308515600643604038942507461779695411651794474941539070458937444780592160951254173645533073384755432817875159030247757669961828078118718314148808848056585846621061123490591028503269293330370665361402827041442568054767494627731018539148819722858806257707460340383938846445118054380306086691301822345168819214523930161792155298002392933633446598217316431566384456879116827551760530533034928914122180615222864856873663583457557925231494500023408586541999934656207376962154356100475490095648985175767915069572424660961961658106428246260414370656872200893117228680174191325450859354400163469490971901108528800471775339775120090357340853676978529479981893833170487775921804261280219621565259772197377402934233650800663635513402621401230774283274000267767967926894440686698885150544001258265454144348643576339260744175727626759543327206325670835147398660455246357208671800737516738048024748789395471319443639390626206987232907410314756205793438456139214572442861689636864215818939465409358311078974396081579371523025822381087434225750227448831837151822689831737920667350850188388832557356706752228943182852708150424268060353815411930151507193078496062713410178646035129083899817024588737167537548738141867230553298351209541449393468965268121600149225031989340136889564919613473015010172853776497301776996226018892367222457191671255823008025842737263887693596107295926675215292419567822908722977048131072764708510027803061413008849995881693726641261546828805247221547234005503271271484517792522758679219738757764108642373058939025499782138875368246457044495260905967951991991619020618628054760158047405938950870758833110756196545681141261367874914709279327265399527253352725468737113900226120646132980542099617961549938034629303818935174888263088249075716837604628241572619953885481827948206498341124564890255347928672854970102373316992929848748786961671011513647399461470483004748737444706334735730737682577784265985254103084464854595670512827280545603677968547460585695333368520243521283797543515219930339660631127740519876448262481982023567889179647758608666861282644719455056033866609613951936264256577182446336092631560842866122607030638346296295656709995586531140067101089530330970123840981110468990816355222482366928411026832507539268562088549774981119479476516698253483549151703779950598519883006090529778968587891212994701719956287061260322940217434164868667239057345899680452534824447227835410679376946064145899765919416630040304834929978225167526556711003799068968637995133299275078436741829662429956216115879659225243360012801188998203541219516659779103013346172825265308347418107889551712215683091244035157981565073864981714577310534532984695599432639474142894665926373962062168493771059523820260043666243338728602166397797784830998760602859381815206995454846917623166296592027732323273516091457789636292634059933153693313839673061722375766969332653498862260663877127366122766113337243445501965932588751445377738688737887391609698662035987223261904164202129785393961961981129050115578561105854613900063774383824428471496877742506075201125569181625522739330485544232311334231940439788391970239747821577804053281497047479108733091710424849291097732715681624993362285990747876717303068648394105136489889858532062716135989724762904984420699963077285809414569175912663609528157968592416006112754643614834481330426158244634046075125978735896875762613775988166174020124270474888074582278320441356630269681247272916381001510318101933587917128079993836256398941329673522893126875744409261307208144854067218934709285251339455348790895460871027905520778481526949517269345756669184521010336016207454176010983215278010541101389452803239292144887934404731644822611763281614605609429558754788464151335653677013525421731032354160607678475933084811481256548466835112223797690430682857056857579366926392952697850928241512369295558919105269977946701192710893240303685790045483101911799449196499698425806394784133873549454614594254466562702057653726374870620829495677910752323286597869806711512818582592392605010316660405087534030637827920777489958904089026937190577304491650678491802753656693853982357084022319156796621598621100249022548945501987979675201563281299934883137777006826771911168040278391075117268253742837076577465382542598664522439224755118253405872564839305540103281407959270176657616050952324651103164064574694585732687428267767001737422781085836821868104527580912143905407969341271281187512359401637035313314143913820388605727492587606735670667465715361488954301651623422368559826999753614074245134685064460965373525093686031892192564022558937835911402066477748873606194277989193966587717292940818072393878053083954338390011453437807542926246266033994054714807991146480496921556029453913074085815123398386035310764817994546657211429304333955725379795990340733378986480892921748967608788385143903502971494966558048175374484711677110400093735161114560451349254018564025258025168249709211059867780079798742718352027994732027728318834621613051391597698570699105920167708213780377620228905730215984935212899438247102270378655094909339513012813177216704029615127913552025811654361266541186754666116800637864480060651242391697533883650205645667134771029851169042459992505070435604314964772172943088201427149925636122801029228583625770616309394092233150081836812081700579561453672405774076124730502903909997083974302709699076302179497508477024979672834507862885163868480366022242549357680010789384401557427421913982743782059058109412483800798715593903626910047693084759836436190245110826614243070319684835436309427103986163539442882200143703695451928873318983048021455815875433876708709059276071106967189128353251049334414560905654446350769256706894967227586606900718648214509468288695398760441808593287097361959535046457860026767420159260146007629480138037234456437813145025710769432602303443970503376833144444484319076915623048122946275750614733298370206822965537126260455888390567289268396329843733552649574737334986025150461952845053375725504385764237370701772057789877188972519321918702384458373217474986918306849125881544423369171652826362463521836634824418522800691063866326161822746624572889574423287257545088775801314718545753126932158980157806915459339515093103323221095373173010829277308917036285066821930132660982113575373611884165034867124796718182057661972303757925568758727232231886939290006757232297341287802383302933532120511998918564678913458065022274309413031620000379317859517256407322808638142142014973428159638784849457874561551450323246267847035183905227375269936809665384219093423266074555832668909222489959838485018572232830950571619090321456820161007771074120609864621206718825057101334014551618743773828432519951061271021293922629414236591730125555614404330401477852837649634939634253817462290199952164241505131800160685126767396526669895655217318066950740612556975372092197117429037710093280398340964395972853675705554534714397188933363008359961856429946995300984741771108228513828670588605065801449965475995630144486239930781385251855890023756349065837058967456754540393764916481554677979927294453576934996981571683658045691245666027022343581227765969109938649654322075361988047360624440287302395588195861007803299243328099884259066760447527912734800992629111668059936562132047861318079380329049692142161919499476894281061839158660024682455396057779955169161217748794920846645296193797433837936776636195924235000301417903883230804135334410696021545167486420223144832748726364861179057592157359558980387118573746909180797220759297565563148143339769746815602021923778793435504949230130960693386342018345382520099600387647262084787738838616202829889112678838026815486483950234968563374561481366287640986371375736811723824064832315318895329484414544823116261276927955360938193311763598939526722774853290252823157360490731015615725261076594576221619285813910998849963754642015245279382685706272836530629098085755978427777367704651562571621148381914925442629270400001187620417232862998062097397831745757532284778009380913575275108566232153965756139758499275071149868172393898859353337647135248971093302832982631775151837033176255769238740443958840388355274695290883468958715492464883045392507203368901310026752153614030939133614854347537585393135873727804392347999207468568772614891825949576543814809425785692889920347266571771632531680990919710341384486998970013862700682687335033993979157542206218737265526028381845764086851471542700066204624408291723926009995562474926649738657699808771427419741732220211014141285374452593894003488851604816224697672025188914114434335520579177659384761402729783484152601137376896589747213568925106432311931944409282858549709103102418831469208521788561913353514508988374116051514950554629849380168722295403033840138429015692087209044181368359604724666136619368039003548134301402829534066867430989670110595257946213006353514744470298583607627014023232388517671141903761058452235659406970605714177566748030077420533804456862832583305002741343820813592116285078866521362484753574966190710646181726325148127474020265561654234899696905021101239224566507845675866285690680168850015547237719475616731050704682801611478630740233836224789601562096140303526527565741222791864435359529813513342866326885384259888570972501473717489907687095988296512634931017642004739490634375113631095448407867958324026334676287895727377622167075318288939124973245693155764800410294332143849574584272734202243413392658237141362658875303446241409706961794495596622175029306518328651305360705705372814460776293492400174308253706931058530694780923329719208657403586234488979554443267813976594533705450180991135716425499604828236821656785745759040626260547004092185308082261784878589628023602265626092582474943611687264237291974240588467001752053640325316714087100947536216184885889389678237363499336590394462758676477926203103286297184628064052135146126073475866724132106944509987497519055645715775106225631868336888479647827459836780938069457509899094199575225153003770675346870689311433581907925244281862050422554697486918264919173879309547331075313067926188555778108052334299283670628073208207936189228513974479481161700368695608748473697045827370016493867837363680754524914359716702335986051639831346786391098534406946338299261997034947599940587165702454990664010343286505958055024572000280475387582458643824344889879701353232983772303223213114405886058473247391775123299472189939905364828265544728444370359207034566886008262776255393173842374427394671674805523930794902986602842948988647269917217181530771441867598952854615936310990615802486062690020932486506660036426513100794638993622298470875207332705581050857095023660276292755272644787717573649935975835377644862089432742285293095767262961584962838522244666981743998884476662051193083744244791237937312925572558214895043632625494860240676888467939784050513537409824303769820485548641337734829305219162847162518054903708259834726809017676697992768728439273640653628003143732944311075734904004265117536505915742254624021346272673378273274696465455527558513849285570193660707868083757758631004516116181475718190136197280395644014398225851335822811039109558363548769411629689741564487742669570051212411600694711079368865039000432542865421475319796024145097700205548997930955774225194002867206383028947862093165160117532848404387209714234433927470746643654771512362014927869358388098426795714168927622323345055494863184933484177295108527583619874053980342153134563153822543588248658816131671482787225437154766785706301061348163959221212077005897768195642349660178213593633240262722488621652402535974854647887136103545074132708655234217452614775131784643528367237515289057404015104636568995707826306831658929029522747257035170884388121291942137081417478030191532903391515731453127398074711245386144909832591951948071481952772490256196865634593364115159749053215738495816299365346405778725540077323870896642891773462593227116651147124186408437838975213554525404341549917111333522376742890650836430621071948369777127495868595719234722320941126850728557845268273746528197911759780049626461869337512739462157725522729724819722068810834127664359344893180682909806267948321127901955685380099647262528189172114763280980830573427156423209113823444843302026059404013067636875996129579510607074263677412846996752076567467270922471618218041043268188023873530271368924470141123613969978646803405178099679017738031171318726198330484386171754586173047474469491735393799198550553340293368392673529514765325690223479194036258589166145910096378146779937655477778963324128476396433250076741501055250107414572833612628703579701469565868865050923563080186346138189707491763728178924389450087798319182810043393452858706937825806798902180049835965942298220709090974987727224503212681934264422531254801480369461496594962140799409800138071181765642246363185472386687883181632074805662418547274427399624796064884330666021267261198161469861546824330698879855006959150330457420137742302832375404995567252312914653514149180368014948868115148396043905313279462861646301210402759975561367614978017682844148903267765572175274935401697571105154794493765593235221539570379719623103114262803296866255605834544219992797497622863179725605049986802009544168581822856453465213448469313937737697376189846930138805816050394882912096734356444086005401340835605721296131284547365178528171399774355993613734512378900368639977099936269844940783258579970875592259019430571125403836731102958691135609708900876414898761407525325981716441804963976769415065340021969309825740718842826208920430901105861497816765110981186273456648996054476095102183935886942042545287270903090826976079885394682738893339292521241670658069967223884080460971374819710203103862511903600301630031699320614580842895114308723160967276729557630895574573553305241211474429447941993757722101764012167397289394331800665150958936974430507359867124827870093530847197009205126249801328630654515923636126773913272894352137609105426571025370723162056276203624461929083781826358561964277080685951220340859688771957194463151041928068232065130657419621033620334461080476986215562863824046517647088292179683142106248881894109283661284501841954538474423697317139695426620154668736253414550152072569367951213066056961276246695789830847116121077602170933303041833179530292231990520805175216920168396835106576303655627468060145015417298729880424692476069665430365888317196242230714735992951711294731446248968412512833962233510652516953700013884581451829611404501744730800852299097976167727678809089242935069527318249081029751314916529350673210284114846441470512764965915350958861836707917023113464087248379142941931674728406372567972008579921426759996393472838911648077659034652276926566247134136257754433365221987946543187399833577986254125356823494816550565239743204443526509285104636091462259705428137969008896742241446361834622055730852417350273556487784298553655886610575523039970604511416991176412950553733706426515159165250430986362178196718131739553743674063485220348931478229579192824295531553352942161039514309846316924371346825150584403830315719922869170887160116401674606860587804090677216656883781310294538446925177581657663125855250395678443218452184300705062743877467309856794098863067650344183636179002283167918353405288949658435777758239358556409647755280605037410334596787997636899043264381099041561484340817674255540963085319701686256247572381214612302798900412773479065550954977580583196931178305995642492018075599151895543409855989024444657740512147204459998650306216263150222101399710469547433373018183425352448461797313071789023149480641680323807163870035570096690359459078640073417388711697443884549679852562204581536406283427966641633086023648727722163806591810146779355412775781430683873972951250748761517182431177706623284621137753674903903761749297298657069421409831240503973121800651993478148808830592574551455454276826347863153022925892955557346270232285818095848498250579592018669723853327349363651590222279740033876604083122186673296822419062890810047184567253236386547559546236234946236482259339906563277378092129632266509171959281234207981161975679590711499408676089825418458499835269566223839423455759727631578646925673761395892799829953410386346389904979823268791818509579002699724014905447491997871120490046508357908604811106228210042059862453640753475357364578306050468244686666844567285830425428130144744022507417542983490709974175113358514670554200901134682122386899633343046024115957707497936203020063767893293597655381042475718411933285060578478019306007944262221950901138193202753721369848691188138476834205818114376453108252231334990314684310144289166407837817449218282686429922582633100438011901118426397014643455272136594449336954690757333471542939539194889966124602367521345270587449679130498973802317019688809849860348080861576663253509158856847840183931294078376806769203582108423597340237091915100128753739067369572627714540168521588424859983442476348329308009555891339826769174959416038802359217321085815901794078856088137681807538134870780878371830721863558328386995382121122601035474436369784077786031474632059107069332959742403736950198651067964935497542157863005683177216546482424646542901331271047889798807068831979683168378161704512091711221295878640079846371100773024477315426563928467839848571844717465525478643564774122393587254777277991228289104422884613305874450357476932751076202082527431706814081287815100467790997975158253682944672428531518019136169624114756240048439606134021721391185204654814555834768872347107167701736812839715311467364905266579293375810010460025419903433198980815493680883392785275939171675164578883349960941974156392585784081162109836262203263529944516359216620777204171307105265985690441020534710490702954789285073399341734696604163717095141374886554461401574620008721729427827994079571052862029416871878199821075791226230483312925219851708786473896564892103413569304215842806793452525283874339784426527783906579738816361001116000360201355956410933099445667111131363075938894442771732234674101842566860096072390924872488903738907564983872144479914161987868511915874017193597834856026997112846503902029390607788998497145883525582843850632321676509828099400581495031987036708405596334197543132252345907066085755370589833371310989790736487542250759629540320436557644447616860065240896819630625408277374879573139392095884316593843556921651362729149715095186850298452033476812097721771072414719396205709938800197467464663556917757891599616718321812626391874975015387109936795425693939542952368525639806041761029586345906078573921027989818270759599427774970427768569572593521864740932417730927401715924473474666687028398617171511131900725397673332756357408278375980369905926428722396335598728053057237695054420703972642504742714569318583992647213766329673915298716961669826776649014807554067783080863200770630395951788611541291338756504768166601908465706053403108509090262715087005873608428738800221081850400332378800301110352183766157816522826653812802590889480943282261708500286032344335265012579941416060440522241218689600261787097124174772849202121211748378123813358659256587795076961922878520593940181392097170815119279420837413220509682838107790975619217197341060102966467752061884470136430708685255709196445124087850638940736083271742296208622036683126016026398334394288793006671965924141401669908895728014010428115824281234897828068242457727083589633402061855452497242841505189864787669977058110037047280140169920877891531904327007357974712531393423726016294507098568294433184047300043003097425248306163211550298194989078933219151348904570237201107669379415284636614876706493354993762750127331356008594153657231446658289700372960847269675451051551416560194230014005801477698862275135193944192850730661254136372733542274398424775858886184211798601276935243510676801157318517831661080271120504493894425841389071575502793187437673466335996418019487312385478136627761864150455362941429634163901421639493207286577701529884630514672159979869326206640476380749314445502427942242302744839705478346159100187004991960904064112725571664880580588868436350796354959830792298391096287153179109531384123308894361231885462014777789590352385201804939727513280058936784453155829948212287683793601637790831642068705717893652081018753464400866899321108386713978281458521127212952235970299742862220893770500396991533549050043404223346661481655436994478210145294368616479727528133173019464942036576536882280113567969193109192506231087062318474050644405838799242875643215643422805644403489656582039450672162513914522887561814140622907768074096202457299419457232270325558173473087350078865156148898095277997325554128268026764147571556294086366717236402471265976893772822775641104348715670583206551014339721970005573161040787771470596229653158377743520662161019466881763285224492007802540034113850017839419760151918515940396882265765004427819830109860912235578065257873822552389353705904466112566917780414035965894881091175548170146472710184530056964861740598926762496742445988668889421392004897942337245109654502667530420060692141933105184248449881979395413431207827288973941576649968574206763805300658695996506333398454772193461438307309418316540396306009774916777556564742916885147618649138269775548997950401741173177363484580048124776989296339927531720756041307596658460185132905254265022323859222725363609462210924523168704345743957166529681287218173406685726307434897642757475766479009448944166330369208989677088568977218951445376611619499193821170710927213037826722717269390953868747514858985675607828753525807895437221033299768715331331002176341046148271554153257097484829666520167929866443432345380667115914756826427487853851277109625235925726842666673565713956818795569474750362977574572950593133379218516710704432495850387862160015917861938492026477137882217515502419446350553562538079926925962123903181084756943101767455681211303064966197031660117776446852359735175138703822257300565223251335996562358784830223848020276727457687939829694725316823701917596829446183606421876985914492937145442700027880114844636072344475038798993961898010137335075408325571831081122533589515988388035954955007556536500285429465273747610930685685896309318348869811859879685754018491671649738941585518291758008210408111000407763147678382410149727047152154125527231208052248815498936834881327368709780411846114893261327833075484104653843990451815454327393587606864833640223273000902285418121937695940473437650600843231530752705419568876984370224414652752733721331177198497561555114146744636697774684598947329531678221830346534502359098696789082653687288452123421394785717615389491353350648957640629514812131955970658194998094437275821873048225523471094719652181326907018528298348230490657030529479177596500514332851998565834901003038947843859395801463733457268478184551374109890145931952728179063902193181991186093876412066821164181135415058215648284274509100634216506490591365028952805532512944380001828742689447954190279360244091487137576936111828554761870133952419256304974144840026249281181033947250008037982807651011322975924360571514069684018896430938883232904262364580979997992927668545135530381228397107737961989856555923913624951323448883448017505776497586237159827417195862722154715162606956366673039354977382932059486920103099561354545317404017327503983609674530219700405888678303779225560347948179361401756306517055371515470166682772724322661423941956754780647637963632050760830823700487847612776662087660633989620058564133069435388942044161814765938182528907026916195973141215969694900267130308356653184811610548839354217005133665761300211108954577255786212739922868083617176342579526253855226050823180125720735803870516393361229399504542598070840939538793484459568457944138445077585277486827326274982122690318483999542131273222399364080836603232600529831645117697026070872012635722546640736572404252913337442647143293362045787809734670982007717570197864062541449314657258686864890124892832524596721643622828003569230499075254475673713347530389042233092806898508138611206287069473750091292350031102798496282339817387351695960055558529809475236256663884074147562758706130953791780862006043922546141445258152261920564870168654427991055703359425874284796294309718386579784836452797248483980677900044691051135163695446376024596516742109960528132575530254547132535607179131021495468020567545978972984096775228824312786345608303668587936207449707631424047043087418146881182812405585522142425241839318144585188246001637837300956676444183639927683173592787414749823780689518228303865420243465424613613027575771651457695447032210312635810830458641025027158085055476899573493557631730226415023341530979402401295553515873344708061390834796644594905029779421055402204721708338317613613107388917153657919074563517997212885283718048712421787610239473368994485091745771669711898466437464951920581980444612269857017796100865446185935868097333005056212998159493541727465964857592570352346155657603576340769280153538654886385237308422729081576777839369760679438666849379404066585663113585392041986874146275147274717997484690147842286319948164156978306373555147320830997047006263740854464543599970268467727230818263083984739576694932173620041335299562625698857058635650391138067436642409069007969298871290451825956484145474628972403436806387598608807702765713679560642870258017972427161854669981200929681620457985384599100096079876941737001986913405039536832092040046886616630763727868578578296792198488318144190820511850241931337522050065725545642619313446389614889434368288121285831462959361489715544028672952218125313258837818375610272476520871588594315123740754959778655597443048963312984890814883512098346334217825561229883093398635620200138612623747841348905583864761424965739700292154409955856078040659960532060160512736331237544408620786632180474905388924164064938505911647715140733419789536074824492399745487989893925795034763437539884459861608058849429521153181586604329645074567047459491634383009149088185327056806374791655371643641269761698661991192722108739127016740892324112294557389928071760727804071454619711622267750796104039427411850902342178678911976510700922193586711129078437693678372704962688074689731109769225679754123376309896574175375246247182106425031207058643130463875604462934859573534732469172585598224584186383635321383509363122175263318968516974950582908564299281233762544859705066938973792403435223308922262496957598380464049352019951480442960013653594720018505799591046339745757924228676595677381215714442720594678878637207938347547626301930194472579858761290211632371687909153638706353240466135386032908092775662380905332970635145026291261628367254081729777011895590430792982087316524327800465016493215180131892082282844661113721638792376820804777604241242047540915663697825192234581683124537764874649219797915965640135880988681404252571580675196496829911372850876469926565352540932741908467641751929337699023986493809005081481722359716408490829255073411594231810924961734454748745533571811144778528261341968173969602449064386976973943441168283210373596860619935400610163613777800003890588462996521479822367014026140207851374703113565266102766039678741667441145447791442858761016237827798347199032089044619068258868803820550097973184969629898241850476326996837233839442047313464733950263104544883572423672554113860461781531195797983365206852341956643198849381202120350853177125695010481992164606708506991377647544543219302552964352483220061862908915852626797305494087355329541254117584937249210939040089833515860097071282817906688718134369690211512339208776055698518959945673049663140541285377928931805058543765491063379926368292549173655049320387058445119743141206695428055917778926656045142233673797926704014910238632634000956925058166936746320069134276404293520386868053992078189775061960978887823738478039635186846101067821230905092643474105459286817390286093265729949627306211484849871189325124006017673919587746102372325642198256109511099059312051842554307073588557395342280049466088820266796151383988317303548128962297986681919640191662479254658701932244100456428858981814070446897585132476414616532210783798788880262790030474090106587888709234023590850420536868298622800459974795309376450407577549868236444723508553825225475161697639839546400691696938160076684663854771055313145826052085212906282902282599232444454829762044734948774579137732849236450627528677192257757897484028926969980465317547453854413080049217098662136529362036420236934930962539300716259596680610994664070259513903083394977461545191360611747965881474570541311241683747245331370374331150889802701287038297108924705808487000397640117885322831771473233129601941789116070902090004272177615310720244748736161317002270120730236968863817740893726471736246250381127391349326328969908749303462619997955391771019093506342333277031580570302846664419013234458793884196196282279411292789388948828528904298688648517235096260656982409980226249842587453401355086019738991436599509060574706706163726114214459651197481041836512158507052407141348258999828816316847125443493950007317222501295522139310913185913468256692188784737659662151878959396083123995249652938828649127815676469803498503392098299057397392164751554817656117078327777106340358694012160233524508927888177002720407579424892482686889108769763143291088906041761901435846603865503451350486960718055640438224420023790942576695475933987551392814015949349655920400289053638923126203188962614213115486113150004175107113676914914768017891354187081779541010654267372037783868520129747657564591728117663325763119013097452741212991216560308949039996830244929097794300020857093829907837339700102878123913766330534318931825695459370596200227957481233237997746384587862888076191625378956253651920306233294998131775866661340992805093376391438973051257291381849756819251896716285732670584086061132792772729232345606688579525197246121258297017444263728784061465583043155990384065469419170587923883621820086817749027724856139967874704205924340144143621853391365056737614020649380491347538189110583887481769664952337668161453307571466289094437023643228187055002908644396244861602063682344595721264171913945545047917654637613052370087688148972177980103757356428447602173416442865498293353540629709547038940681195471789204431257105230579616030074688155455426729198784867427114175677696871202041116956457698413645495340638932120916636722569951355344426359292028065529367673725725552512488778595348305769181385089455084019560243911836604846008789702003574831564830050531444358639504110444516746592112406514743679525214175291377570992267571243604061838095677644810811465821692621157007698120234868256833341149186083692100326812536786378254960001965749676254089709650343169852390110486406192330110956558846280404768675299144019068793625083602785435852290728751300974326998107030204901185239781647836340012686490734454051626302652310997980771308136327245986581050713409080215670346149410452650499721756901735218009951906480155546015798591224277988822410090305390660275385866749516403362238207815471629099986067074103278778885681067181169039800978052974667005086473977761648909116183891826099446285070636275037757838843780696798789971667960295214209479469223507090404419703476844714964927797769647314797318175201624143783353966275909151594090907334177080616549802271718705625986067923008891225285135322280990852014496957455659478346058636214488320232507236014027436397798347442715221172900313272450594451436075866339400755477879171806704171234798209589228729813643936459684395659432788384593559943754653513190866591199936810211158556235110131597646468474520223549530900670828635153347582998964598725313502693956313687781626699834401437280832973137542551388457932451223582203302897117120576854670903591185491418196705410618279106397303551856355083204725238353924984585990419925974052393176095331187279993513872371240571923431568134374546230417335922294766799186862380254023527951532784691920186143684515733124762379847979278589171656945347006809451339018195394933361930733188103653693797776070856650937702833370219005986152542742488665444668447791513287259133414511865049934048804146381618697548394710077520213391093413871628149119256039396948364199486707576485874819449115243397918237032363406044132823871122172287696638178237311211573582980985920448345184055241534164974409390657135472343057236493344712425597356350456466187247021360639378092106381157710886403608015912368404491142680322653589635397109142200989755734886209532393811840181870773969265477294228617885182685106890662478998257515698859269793088717130072367798340618580605364345467559375489898771311059523698886719768134910881822099104302934893855294516812994804115598249872735044608451013429190056114811829602788669673945043608388473953079094263685124407902783980270015264884789270243516883004259483187813818689207030356794667843313965702026054680077463740512820667088021777769360617864320878206709689050346365613947422582170877277499601718934363209832201658647261000573416366943480126652786904998109792173687918105020198569472283838094934051890418011352443096480918962474253132071535657185918850912776143587568506997080515898010875606452320196959441204798611585320377932216785483736555654870205213539830666219595631891511369225527130461009710022222577305671677181745526400660833393382169537344997336842808727945941917544962493218669043272940333777038017921596904938340593535006870199273649008392285219748596161231741712240455402306915309756925253763847077136705182867148690655051508104548381056815915414278192694409530501023433756716495319586022883602947922946502406584266464901863116719423345366849055543808589020676480316489700954999286404364340187599960310879288033679987168567218453294861104846718569031156162844242823194137738163822887300312138374220667108467940500146125642096654771233859890837377405485014492913668572375329993554689090565663730514681771965891238494580136488320993057705468545547607299699175290594168610305085243048173855429716884969102916475704449340553075628441830031286758030820689690941462788903280615817572211025362126285135411127389054422473352867054395774916389191232375279773814984523595148881373788751762770499526053126581899408372317279192994165229918652494025164328040960397571455992030522295506985376264738215253208669157001133832481194354703398270937313729677372469183719384885002914539751435694497449011062223154546173859608329880453145942825035661807226266088325897776894059480523412751929061973558145127909613989519935189272669842192145132575825757252417506822481669826175533542257451364436526696807183566582704883507007952309930883141252903781918399995568534535127963372454199306628835469814359865799101274465884315377539709697186898414909912083090819405402943107559232446277377483894857292156728731703910371888797981083437419026381890703404372371365503715203481142418503082116805346832595009203192829507899252153632764924119431565969207078541396375844345514699071081553786874794502258426901541857916151539804069782137322907912085723443765975519395498211204304752734700489442394782132415514589648665162321186089524904091845006284939705147537979826002135045424752127856134059895559594954166255732295965747593349061634695227314833624872195677735956958933053134159507315928733743499596351375614632855051513619565568766612311003756892420599250476837696307690689545191532823656831164958968550567397482514870517963429432318693180800392143044173441835996232148946538713721843508621539004278804269213125061558412863583500122356813813251718060877836752477983885552126029305545109109431477976388065643571448039910734807964611902804668194535194307707606541876556716584728410782649758972516470495796932221838594566836453537224644122754362575652853158051185852890722829927287433220757203556940324749991119792993792081715959629755794376409484854910196410409614448187170251361620211070425320593839649656526004478364883211924282346213449160737939126955623134158580360990877627886422834160130868935802062958284760379502293144169574008073301950917961765925235280696144331704818396369231533301180854034711780317137077935817288359516310181153420192832618992743188716375316056475052775172513285153266791545641990647450972583376209112789835847887167919053119198628247080279772317137524460703701622598918644420385556694065017679201522186682507771255956986003617809430695092253862093625430740667290783786067853284865406500439280027282686282732804957028433678545704954233472479140051871262767539515982905422203427306084632673241058894325318355151046723054998234964322938077475631573091188127717503809010889309261265140025686250193208020995176499915972737111369828886412152213387642914157275594094331965457882058465316340121010674006111103073578764203917263040952511323380388935153016638951902564041869657773737208426800394791871796222134868389846579129245120466050836508638752288244438817774032891837614287138951543295561363204987387245127226445498700777134851629049879535217515975881354498753701337815398456793422772559332406975371095319648455986853746247274419461862505796935750095053296818022850506292317953670483432968172448846396767671911317936203168764592132933690530376491284857858424428918271256301687465727802892264651558614315129272237473439877866588115338723924710491481950534376426093075918007599229933982463829901923599804591241065895370276459676562724608452313801524756170855487226930380226500701685228763582261295809868099617525120074585360074729473436916221527352449869678693838343426766293793119141498835782860706512161139771323194054325959386811991622660819257789844723136753231306141924351804727794297594300926003166746008006737105774170535499534156766092233218638004409717173926160215668933669932952713632431546821404743156102484239894474739613707429160089035054595318874464162897235071660162867910049128310337848386864450633371757980129479527106086805660757703546955981576398533867738063785866246236262652283613438072479575647689948086139597913741874369274256467085225459544179585223414630562473483914324112451126578540445800859328755826578389061914468859853211823304059529901618974658861658386687779068146428909758624750003060026918718744898055150223231361853341719211725899856992074714479696707874998559026031920596075877563610730655365341421410131168530120059694477666224142863136683138172185614767740144303230300600272895270971745207048220123657670003243100602279075627937508368146545194768880696216221961778220210099076113148177450254975639321396877255703320267282003679095325818167425170797445342120538777038943105211508091037740732232339258560329412404117252164977218707093938555025224695638436947148339503854743430043919200145312425622526446097543913316979492930145808480939020530299402552731384588730156112100103964190159989987384683980603918412849950519177416247913794552648344068640539071312875539602651528227630317762928847480274039795841558564401220547867494443588265012724425072622209119938028040405176245083907682643974481478203588278639875732045223638649866018212571010003251811648955657257021496965204674266130269315917864836255347742662870834071222065887691128905418731333228871037149757518725826756229960150182594157493284857396069117967964779376347787768657399131084327053323284349583199687361915556642907292140325970941504190674031665441159196066893701618370681840100932803113641121623668117002867157901733499715283118039321290760901559823559405598380051208772613672598399712761290537968782959575081320040218489566038717151853709750777619307095786000756478642752773274064491866400200189762044907146607700054641170047268705682463022111238560382317520041642173634411197814769225661490700087698453391265095567554299237283873145205330224035869113194717999985619062078019551276569655011653813487685833959556866260603630585415743828716641126917532027198903069711855370457014346918682214562297720627585421999272504614757328300924588936367916670104111703746887669689691681388403432748866649516414393710991410159581042506843800705786884623255839616887204691648759548793745271953346853619877286618377278487434690227120839943296175935145678222574807274890923623664041079384975382239243393185122801931715087986728747836719644861606117770010489600446479684037832910678029867392962382176836172545187589797775516023224475046692485121421961134374120665783577480296807656947731633327637290366463856466002121411800772395663572802272902695157709634126177708747763612628094055016917118486622413415820193594917137112843947431620664924773558343470929360176371626069654873362533816184200917811011057215073806324470856832238545595433630518523777078103040427732403383906900859182994540593523511669672198336969577014911729566431360172270237456556728002206875969350755693607356008702665129634880092314869355507195056624901457536571978206875976387347892962791788552948533181298542960172742667907115750187680680367580329269234672369134348896979798248340819860097829149335860099719070360542152314617300878247098493504336647323628648873121803981671378396907246164847501930124811249723214882023048532198697388048756320703480184289321323367034638350348817597380343695983114933490941298344571582600411170212802752267757809391613225419210986254140884937460874105849451049847099300032681935572158574626693797490052978599730916791685639334400951906680851705199688061195611943265129552565993361472632896007849046599860006270674212576022277363695379013752496531800122978433743334208050249840613202669027304746375285273003766094108727127406995480588087472034245643822226724131801580753168883781783875210936822998195127426621177986111996846520085504408295454723770241931480570693374530705206965836143936623980007057058738905185777252910460314044136753455394527418556163914458734976925127269918066290069499257840727316772886365408893924465754342340915842339577586144988146692295985689943515259699595494269164326485451437187485095737330588329263617031979446445429405969012471564229525538522322950383973057448465460461343209521409137731815601109927441356712631328824620344501332713910814441501683099134888176221916892817821506270242756428694935882617708982017446216836359811322767824301043286747132258147429445749437244915233001300908398426601058440911602397005649472048558690185030800843596942664264153263059429849946648279959557762815283120219854261789469382445813985528543389962769155770815135339508038920975812659629429230832638545895326934174945239991852973706786250832998416334854232244402538245136443883250281827623252838192118340515005828502626095295153592450803268832441811967509912819336434222716169030819570494891023424776908107635461072330036810975573905338537346610372013758909343778145112784388276895860362914276837380346591628048213666616735067380684074874057499458517685019690508945481828898756659014667399326342652529040761883103476555342713976689507759735959502741014764984692948566194407577925875143711235265898814322057827509571952291826148561140408103994477066628175746566983928993016193508463518428941052215942859863130011126760908369501094986763785587967306374482945288517556564707757553522161776158662879469624716503608039669951586343204165762374675106106307005557291653938069146373041010001767379356465183531167454055027955148538575739033404493993920892965683558724206737692277994380588181714959659445112382170277288210037587600120161459758973443914327633318652114712300621416723302533127420718874301155178519857378020588706251969898183751317509420145064160930061532115043079263100877896131743146853658048229294031999415786814841590382188824202900749097319581566193258597959066054126701980819580606624593995048815616598829673206622244376263259030521889570847305445704095337727243413120497708205886965196703463312452670674149871409543426226183711772184619767304295692548544177664394851313392992834959149674491854099116827757138178506962107385343685020111818502595407019492596192537798440545565223987997742621180856566707165366972870691161282322996664837383823225209860859217326257353437203111880332669199645345277246453187733605647881588804768273133866604353626971039548564194880684804742610793802887597097756080420440685169292205059631009692176711246045939820927632035419140411522671687226096558202304047139891764204245257942311006554652678541871435085295988781952028969999247245021250683114926944758934280345708468750285633909690558288374251677440212260225919789952435947561345052058323791556155404944327751016530216813779267787358551167802658411985179900620823118194808803325737221104686976050875705425924871457633520761399428299702273578937714163284610450678627535380328313293432124116986700282440169751740756102916630227962211794076453789949684791607082378733941095218104424655098829799631253127723664795981433911513111903629715429214424472359595850520355628906842511515298405177177781485211128135092367360564306967005668228105069642306522810730360026274181366549331129683639284829015785851750898370013644697872703626206444455713190225278896953726125450725798406237515111825499359119481496429283047166102164669115603918888616165306880393238037758955726604876148951766408557237260459032472277483824208069861436197326039182037150701834069116405643459235155614975426929565853120676218266514639110525371344103450624947605983803997912826988284704341269618017183245410649315257069396237864223524488601930157100453627069808156075303522764737073385802148045592893658985767388526405705731555756290084595064623000868152622009130922506873866987371806297549582548199328969894032197292211890628199318708425164151627727783051153201849392714492504116472393811628771516278181869431734962657918286301350699751731160984276004083057149212191564876730095226322056471972118161433851292039344032379782541085936663834617189647026557552839320250833447274641374785656455913305443841796641781740489763079543987132482386473505030429139004337789720780043391446409833054924675038593261143174593168061318764897791481672022666430331312439150695650563901473233672551043486583953037583001676035354286958809351942998354117604662480255185458020305684528996994907736743168564182151898453721813912635628580914311993931642776809045017669769285884391239540335940037979301988036419476442181107574469416579219159817062805749790488688165342150675575805946093158830769674269350866636503730369465213728220537662305891829333354228644830940094849651005012831562904263780818900719115391691744370615174975413982299794993206553874722201351004654198464445045120561311134647182074705495918383330688034825281031686218050959128921659713113390863679632591178582339426152463596882377417372126446593941293886675969690444511604561613408802030548346446152403560570544575499681572068592955798839093890842303707303086033447197659987624837686508103162316429158677509695630603204966352951991853772409762026367060297532181571226454608592488782519853253140127033145440319634130803982512982797984479862554791257947461007235051476972883955031779183179153423159555356952759462750662645143536236389686710586754909375588674684908959687017805206205674876819666487147197514643572381405554924902125717899422189491662048351901098610178075606952153934337716678200719418583018835995661885612354707763606976821290819586926639537494968108768966887185791571033745417447634013752598086600544932372691657861296519358851853094345308443418912403432857575355727595826592276552450694585491976777693790446977126485612306511052330833261111127397250405796686822075675726045608540163078850221203957542316654748395234326275315118071622448451615992375513618572644595984898754849073192130226789078309925427384420103526154913474111328938636258703603021095654742372832140951636058997740197519842416119659823917604576514931044107499294809058575650860950302695744026782000456292848505554876895077442374890546630887996305832740478913395639595716094856518429721861592522985890049609499568977156874720862471727006432863292651635901345973936058502014180154927698454238903649607234145031445775302875128518450173025490829536875094365085465453312046113899744817619118829197736838145779707633066949468805479207903390381691257375049501512222459025608561659725277363727501923649043385748880172290636933260212005140612712246441277203066125760893120920697416521243103726943155615930156132189447160784172669271012037550383312117249650900198122802695512871481815765423173215895791710547870642347318482755676461473702190099719508947832156411025692919632013756757353555331287907526333584162667977992223595844153340182691014072583807687486548626316569490108621654666226105254476457447095349910068102086423147506429806381896099175349967212939049629795084849534867534496275211521975056892798673249390784128367909713822991958794683491581497659144672834776380314959860369248647666197525143240224212933383999695564081676585734240286627762163482754848313382564189096226788374110483182089218284448980342559870543043923452887799126711412028511959269954228549049847918596397717189905124108849152549464403683630206442893475411956108412223172734380827195678160479279750916575460180521681085869459031114213181907776712447050588936644796797608450144501622668338708849504809182418473897761153441484851217435907876822753854892538292894534620465283515200545949095841825240044629034833607006417262246713359551838996133460333068259904872935640424487696187181579220467049768532288980016140782393410118047682573692603688619289353063717269708224893473690886490906332636912681338613622168144708282949254809112314369295715344813151562702005681563430364956025949797013634886032478861717731567888025535375314675349547042068663580971474128248999507086685052630982187142607630658684396668839938532149823761371336350248997281439509676785711773961512096955796193769087071309147835237601706916063880767829494585008430016783230328219780203942902185219182937444954250227844270057011249231876591185365968885046569034519839910382471325467384854305796675970248778139126658538035600345842701408192310730059346850303908407075736747441506508570631847709083911237321881449932754307615482876972450741904622485169471908054863340456587769705098564531676745159165226961227915899577641166639942420176673034106718052871849133416924555543549399144576125734091971956196949074639576544805528729042997896362886262234811665234113235675237951537952702768626342575510046383214266117653381239579911746645484159333303320459841103911193296382899719801138498964141252325814632426995333920977989818401302801978554672305046284467186974733563172785161724930209019840548840287657087880946295836289965574839381600752724058425298509696002461394662239655293532961559133202586687687205471284512281334649919455986643559889150004702001084992660135538126962579085176485295973526094022626327087539639521287275017471833594364921519363247242448125063760644065238071817375724833941630580419465700467348872927077358928830980185786180910509142349750019496160032536121497519688283267214070553623748583104726843931667712188389848789465900456861718237769515303398410768446384150101155370255035038811532175722755193216905914449918977554139056664287979230096346890172554699319417569154187028061138681067303565744313494064943066794799999800181140844151532674582499670383934055009021829725672643727843519975662139092163505158031007251320257058007054152354542279084343572701272826431980594146047514677510864783157571813951408434404778507617264101431727362477974727168100225448401450321236468840132687252138251692947570892619584447821713440926527522014406740153629407025014906899733700317639595316006885391106195343508117589301539749112032454227346206317863236463728699035482153301682482713367269492110822292834890911938635017985006473406488481573150997693075655257896585559731704059552935747961875540553651298933464215894470973990274087874665333164857185864644151893684001184708520425484200594365422914674453947291647564322189461648067028890049330602397336532626950889789614512860865159354096252510321426453086991381958871427591810673500025859211840543986804641975567662629765552893459977601674744105346332801500140504795780209644969844291881990096994882482820018394769330941855389938094205593661646431548767203312324637642915359516440886633149075686288587521925985959067347754148994689374840440181626299947094002932368757777996478832177103305531733083147580801152249966878257980189756486498631874741556721213980224587625978103560868627602752917996774873720132488431986874636907742410531001543553923532542065583917451571914642433669916934997296726076386174993275685499988707598370714195256905477650714048137038976882256222698961186900403013336608781361250986395732346704145558878620509430289089425342749366615139332926604906982292742350999173738352958698072450035359484678525062303022710169592164750279526347006204492929329502101319541332706576952427397673550497059184984723161781263230517736586433546603603283038968818975968413722544832567293050464070856746181818400551526016918061589709609383553263251614700136784031436715237876713240924493916014986208987003669687507193719132030213513900319228110369649629393336955333012891942708241296752364544160683142075213784422060716583129223611021214972395697907491747466034700404073109197370988289310048370054020744557458178980855279772261661978444819852750999007875511430009272875133979450898795495948516808608391543869327466736659862093331472107398448959483365058741410404744974199065270869313576521558906571195787089578739085568824008976430651332098522639944052063859826819597498920915107139017743539097980629043027213880413284157947700029694010192943447161958462041680495879095257620545152282108848782866931827025754464394124572037149026649711856124993794726899105238949173757936285974062305127565783306742618671695156533256708339296915584709868479391943567580874147018583467601062236264668335320834478421709146302315487864889306564539420624329489021871201711478692691649900132977330570957518602379106985137994681224280474368721025621852148810852589298244621866701642988378087084858473030798113319090992204216938273923242263377102519490800857079286736012539223484184711542776852957059553985701874489299055669583524702799898452212779922607228634525893366105050861846342586846763368952327548391743298285939933055037645477271507299930280860571623041219996326682499332828125810752129345422447861210183431570229745499518219657632359860769372513249600783264508185325634762075836567109109309878122387861823997019443801438327138361879151279286503117348277043539651230725166347141783289764652968073621328782698674157773261554547848464724791204287093721661589952032550321924804798969501577925679722694644609193578734561168977258960533529324140355986263419648832104725255513792736570550882886808084941024373338225199641111549762556537427064682496040943061810607367779293185435791509757823693819988005923218969314694488757551162447548177850111439447937334943975777035258854942297642451687676086243665800553544499685025087097550198758851647450072605721868541587288477776824103214762504930271545888002956036604362367206347903388985532526541336213472918900803076625665453662043543994067914185536086881981455810269290219417774266619557719916046613556582215833558590638769742680327862172751925629508476586538344499758315378142705751242865729892673372584334868912928329013599314428853501146980264384611068209043108252598821592002736231011837573928919973732101096547953959665145844350322245288943215628458628524097227881076993769112982459189039362727471153488238349435279535831971270689092588617542951082125686675973489098682980213183689924776364931324705954703828613141865606542110890329430827774505929040648033120448081562262931099292385015230749713951290995680457270940052143944838468326937343701848743305475752950732959837302664134533698069252737885571503493207254439240638350528910478275484101254537774567998233418652576608118043896810522248954649852449589045966882991803580894980716519240333395103860536069538788440796120780627348365309378258732918477735480446329208480267665496961412434252718993928350732504797878813963482992604343907038851414049049242987675471230265818261668187433776107949255796110520793506145090920904709223713165687742372266239798473177484924621643525943128856007960975484683559700420692546763421757837347309181226872454126823184942988920192255919889970078858567086806238745673382018567807841875440729221914097401871336623708048023111755240171376312730708899212910590553988861204635646699167508546705534183726823329584854975552846616559317857323414096810428145562106225997960998656193563504247240439036610414628214631283249605329893507711059806868863793858856539252914367511141107011160784380460719474574992195176412902881042132553167424368697406835660204573015221905213670003847918530778637802428396621800031640185748071185744445916375281332683379219131975370648098198173647037775896341059144567338333586964074160373613313710451035063519251619216323813272286955136723778582888222548465296991949277604965003940044074490390160674448682898785036591750725896763502246084826616537997387950022477383064085009606126010777367282048441054589966578645352455143769259155322955050647377433883369492955572202524014502104843064492597862151783289644866308038143518870837600737085327555093719368032836335615708305338832147144087378951153086164251050107176248773634282153580304436786361457802312982023559039511392459289652638938804488044288198692773290422903082722889609469438418989273015436209789613050422342989471477311942340311946727792998297046388870231822840909568368502089090309259682313112679927687756465701715953994456377776236267638699315589559127806076795930062742498413153294978414303788054453116074396516815145139406317191945893460929533993320240294544215800953831557548902360727796050253274675034934501286079742550747262725834814000961401570416661679231160759184252489789699603611390398423147620560727589395425396423658780742644420120258108554556845508222160830151737091647489024636543250906644970619867565612203258859333284335357613425715540297592905727142921033398448794165253217087216651102499343491881548230636667679257996119349785383704950666675619635692595339654974598884265932438998775683841152205003588342693729607510882729588744157807344249244525512600523316732441974457097412476780445679897205106044802280910838487917452144087400428981097398298795880361397319803171240795226208474741202446457472852653031412876447111804874074646446197703614081184768579416057790598166525331656382281779161004699029443312600016979812446740536550386572809534610471567670709921848211708587018549983913741206491645387476177868905837751549397313548969962986093828276133140700224377666956557192150016496392569932578357652416915117650602796024963699325911703569802787017019179551784106826786075846036022627446896994804566694903604818533914893946031130846758696028388556964686989493350323266902369577329559870155326661932382861738621892254851772668325801465180491100170035328529968129941339835313774644525380343569209558201788665211535473677922670830774266825625742629643509632134557406158672809331520649482089890807618953302567643269921035788708486846671401352299723362780669661979339166768028474073742734228708003989263226936034365147470200170634252476226671282162062443290852113974214335902175982753572981927337726800607203432646401793593240197634041162173807461540681316300001392919752619792811925122687332924598700408547900003885932189199030056015626272884894463325430339880374287192595031197018167110469100815614003998592832671493227133055529891240031589086278170219596838567337981197094456491910887525140595697090860661614952463389864681840682504285833778227877075081395052314189848602126687577993410947890739139364595926416507597791938784386438912660535529649883572660474829765039117885349492231250391395601747607730723944331843262058303060542437189814262125459017092943259256205917192826065782197704772555850720068932976336201611953567537868084820543872907572287357223001855471798443925846408027531762030405048483211618341548712261948418945789903485762492199137156113940112064840601096936633416597471458079475266311204811183033532824438466567628949543516855412331640916059318009980326377364668977052054041150526207620406862072461406014231737395965723033713630941015611386855296014971590498640368699108300283900400668622139882816837111747341541400824413284329857240728796638935809545437099054785626976092886241041469173261050472635897278820299637504055628530025452222800749475302606567888990571504788548102906258833251817371793236995036993527913450888055000894474265084810129673055369433479876701324029981221666169301362307538193812053298961299290373005108230577425223022664499769850153420813076293870651382681697475448625190812389504116922928997326834440478607319754318681348779514913446652860448726606814099426422108881154864104008670023193337253708769233419771368902198767886066201386692372376743317168999574584939896941504758957840819148806645061914712335713187577067706143144831972490243028661398345478380066353693128938226345501689584763717190565261773990050089860598840785680643054233816051320683936229901912780376744908846578262125170986277309876885922012196044218744435921129412104059677653518173204854894619914614362626362937460395773305550185135517450977541893203144100792365338234784410801843120455412697814535896245211552574423886012984897730089679238420178722081146072952132231636790702115987519668136613948350452326115003007432233388451867504057325856540265606595667586552579179205406604757261570680553673204686238620616111377592241594085919750556985690656089218415823026679936366939559136343849432698186293629756746749619324992797753649842911285493732164464686938776698513183947745069553646134179588816864974298751035062531784091867633774832606839348175465267488828840777262030538507541831550636392449745088479549312243374621466256787597375158631613104809926067427464909991795332787241070407075935648981692103253970905067594012356053998919663276510494867886580917092116062181562958661478691386734534815667376738702142229064531009031841477575129949766162771846784407623633731691589760368541135252447266063013945304911065240400442253109927181004573181686365749032988852799350406123885842365186485286452630645433927617467610868261324405272472055897530661133382084931159509096096389881896159323910569158969276580946541799761600829995365049511818517114088530727291761222099165239667058135051419325764080995707770147950387554268784289436410091979758883953194792797497463004047032584494464686470758097418114328722802459898522488235799621533345007143472251497445343771938520627551857730711818176860098295100821496172443984306065401120630021011599918906769339310286370473392022680241444771781624832430734349146870517728365868354146512591567085505528530647563244613702023343572972897880134422257083187307053082591546158447558687322195752709809447310096999953642054559887261621564385886648157730419538105390565801841218475130642419441280869834149668882928401078623096776966378270183073438922731536701781982075182607198996919717937501192556240755213898296000146332691398730253146956415952056046558241035465018531359820176204825074822854077014033540904285689515848916102753683071564885762213839931960067687703880914308692529784957640646841672717403516008896170326686227717391337504642083270768470181290986465369038992882851192069368052215306856698925790238883139463824539473784966100123154441665911251805487459777895633817417384041374467624774537820044248190882944547684861216288011484944258199419924065565342644161734262484198093002836988460586989800729769529825429363453795096002280800986708209336687026036677519139361121159875586301701582899414464234859776137527455599640764458251275317251719184245888477773667880808118101725014737328802945745361902602064350654548653472061946914139119372512481591827175277055693626774371004950708353506962025924791489557838940759682360913726913684811323984899070193269634476658753363703829476140054884202404965662767993269924287270522822753258928138379238018471112190318658548884144629165828811637641235838313407751046186511304290455671576320113038412401260100645267527536154324375183499258527178628880962953394906140740069686905346346428304446014172554238246272243158346784726090660323977802223720266985049912502020008083784471035812820869862807918570543620010330625652403390186699016337140957259240700273297554317427887525004571825255936582253485561716317925479883013691491163984761181210638069159078236974895288804494879371478020614865007647560889563313984320663693847095168333625080386715505808738191349046520922778460811104456571401028030021295953173273330495167165441097324241734545877201145029718086489765266142814947744488662339917227063833440624504995582301098912089588810068050758100579633916729726485949030286913832162930478544640953284403310095862920927196886418431506840680754297567930924338494984446219245564352428611959422619239889389566503516874701142166573407542463159411581602623050160750397771129714671291404663869002611192831351321797302042065124123644442948588953173903313622493373016529885563144462745910675648142217160936757590299564775558343731248503764825398084934333785160620065128931084902364668477538282461850895579774218986531334925383552502845282691027396013562753487222072276682756259607194396953795149565303349356891390076539325069686173055879813041176993331004995385923661839115063879314886166671054285662175095143500760730372653427684548434927566550455970990934046739440321988626224803433897109286452406271558583346398631127623262989768924544157814476045986664926274768907240395238307939439466850341689267833923662496923698070145692762101819283825979140520210046383352636253265227840301068631000751315680105133911011879176309420553958368403602847345488252792602236234607292302668110900354848814412371428564363863718687643170247003048336654585471931952508696640287424621941782715048518187589000640018225446019066700340051592457493603260330730040325327590852532555314577013679411167382299079746113763152521525251683933485001989479828244524327910038448522264887764217149229384438144914467228099061385158950987386454371933613768309085531689219710718139389338531385283199657433499487881059965868843148855808073192184936521731914356179644483623714157284561116003318598870732931740286064628723791925079205322851938153718281836046269514433247939295171714189029373808986530919506620293640856417666838526006176530702757744479300716387664258556170176672396715670139098248480078432347924120791381853652557577744605303477929639457195540871834367319522689594939988905802131204243785503962663203904201170896504387048024440944905023287522966324229394091247580856915180424036218946497124820182253028756785089616846257858426238298490924583376953570278425708367255353623408607271372570040792758298196705489791408427413255891524917420384075456136291990870664459419955730914829781601837559131045842032693585153978323309786841724059207232134477817088485662571262520233581758222491792753146467935131819075700262048439498538692738906405506269225245492164198982445778992124831160067357197633309142090487451106195150379607856332461952581981880525549111407862602619552221553805579041987573671806612902752833131530303118580015146870064311962742170719956510504647351864964583450567733643439981730120336095068796128401136733786671016284506788958594994744710595986822836992296740574621942753445481254997702612799411454059801637231735336493493410750361373968370212514007062341907938126886468991590292439164353400702868076009807486134798547875805034875694974208074987087602763926924544108469126948342006159771584759032907424681643964693190913356082144310590090106408820712469394770004479359391852354492452447434729295616058602184934514550208469439630016479976179786598516043650368145956898080199157951583470071646317914192314162021551562361569866018559928529566988680288556294102944925463786778820788387971112490392119618065759092972540235695888661085531394534295332553128292437809811874277202395420227032606578763451927995067302711608628585870071784474420298238351691842795986187124103224466353184070069818798257173594988542104062977895135309455313363733667154424095261706102065413175303767852487194318924825382414513894149186870013513279395186730147430299268996071505474264096961700298617498776380366113661461049544964428949698664970379789132837081463783707896629991100439483299608277163251536791763595344099528539194594681749072914845964913125632782263624674057566573390643029672042661341218745673140768146975433066183516071996275345222682003760310512410564035374070363117150986127494334048837932667760349776770450303690034472182982758343782787576325990005668513941810801203133182790277498084166888785990628838005996034180474338798703027222747653371208457706445658080268452411767914665403460655919851036250663115829380684145014971479592248341624025644823609896675695444428820695639365464398311511055189098386020121535945241906723570454775457878311372420117751553375473588395706566172699441379032471572279137231284209126241213653080957218231184478273536161323240829602903384934313675710248494721137529595723949992227909354644369518647645937780314567593866450559111483063466289687269722774431109576469224217026964628720336803053618608258321388228628691540936524998929136088019697691317046595797055714250761940294999338662400333189993677538432472780000154780490990952791176861908274019805021945382253695712661822541378666986328470221096954329247532160886722555112852570486325911375586669534221730022299863706636932466469520064825046345097361290846451436903408788465583851095727847473788857749884159563843400233047732012464801638880332436064105495139219650440859337495193549479906642647661088814766046108596982452890791279094320002624207788407919811909950103615717144221662928306146395585694568820500594067592170790383128735532484405020926421407668198554840919801212319524926810659030808315757797690190815208613030403953592396850473718961697333200827107933039196400380159966010182090869598194770945080910452107838734851111188014807432155798022400902671251670564482316821399998042268579652209818240907754603804005719548928508634952484519770342996835918140014476520981259692216052230301778235755457786090490113827344526465052548475304843492061285075297450678596043096500001792053189492213488945118914008550857155536037937193362062712270402118598904112235950383914705211993362714532607572476118450580789769218354587337312036138027926888743982446089094652511294586769916565471490248923884072074108209088632950166370221973819406353888016672549375747797953060799381832826957034836658643771379206325362295507249712758879256627060568851851362623772254469876957431562154686673442348658640662749543983001335006364997103623683811200134882584921571229869556458867854511444370182372736734932083064456217099986662989540122334807038526013858596784361245167785287577842634679644856064864601195897165711504133255077096941599578143733171661159289295698183817119454189670845963084096174826168600312151021255460157567205104752333771164426408276059156419513651304756537001939169138008784370759141186810810919012452031557465713362651908535286937405131964695513252830502776116054378589674838338873313186100839520435570621727310821417943583553309684852559018915545253359761130704062127144100263314095577882122479676561755309845123414457772803001633942126245648242488030306809123159894542735243052715381765585427604293803316484374698500347529716440286029554087147429724726443867319074811166778920213412916502192737204556523152136244646180982540405279149083475403512146526860773966069333324940068016634576724601049416700158061291141797346234943096818428542154669060330844754024817564648561660073237909531755388869032794829670011643258533121392368342034077129936607214630930240896220303522216713058947531310629179838388871851114499734762927321624491602407518911989165614884488750201499327093278439573788831787458436225599292437948907872268220958284350529780254288097548000799732836474424656959492169373992151818326166553957491868556516578491353544552239429444528691773307405827863456371046647072528427475305873476939272526904131216818769933477448054837796595062425276229325927404560824939926976800206371860924845310479876032857643821776819390687836303008887246929025756295255709716111671021238595778393026505671772339287481011660692439860095656376535711520099963663938064186364052865100236307582314631085485142548027171282164700642529226613405981295480385853305772629983031011168275923529205645388722132790591767309342217018068199967477481317882012139512999955909703165913161634652901625931173429052630898329097933988010980057355286084919295979872932793511946390617672085874984083776472685469924055594251823234674268310949759499907220519359453410284288561822984810626034488917758312724549550524616188972603223146834517044479361026313581168128405213449275784806290970861295626469798115627596795844223384526693356661637772157309097435109489950464326220130567172797777641390223124636219186254705806414208852189841151220860290276776985270220107264362144194170055128075461578713381319040759237638291568296609824234054035014207577110120457472678276160664992378646870994547211368241495527413903290276137852040231293227866043198757522176322600555199022224022438354106049965185477801929908674534423471185978568280995233264390318912778053006258473602192182514267956017208221780788323758806188775513360284522186122869123226054386171997888300550916438940026823972744102489282103301582781550992167646733244597154050093107251354846147922016978252342788490743143876844893611353566905520657285366158192898671231082645102169338355987720825054669799912381598869259025222544771112868339971682060409853494176718664765621302278696577570740222927766899703354587740113155891681724349598854764538454976669194619118979191998535380825379342626932290861498595960201405820801679914591136482975067789970115166573539388929110151301198666191242644904098561300386759161559930926180289800018468420089882448716172702084904280682619822047762495001056490181167973253613517044176018809632435150666236206845422387051469497266112485995206137188781162700307414946759824894271604582947600800452946335714558742988397999191935561827023475965037162874309278612443813238479599614673121791932082364799562717668825309465221007047436472792815393867914863593462554332693036446692150319830031145016359925924914879808429006462939471993276550927204606714010799000940594130043637320180053000027280282229774003385919467204779250607558427033427148832484833587317806105499426446983011457347366246198688396703835951257791249823879603616236176129196135499718123388715433332853978867519177163799453716397838502347005579029061560731809865117325874388533497954455000542136417794595388922622476530463877240062659236966506019332839101980585837945510955124277454742864427096527083591011254463213028436386859527995578323327527633353356691845533313813781746681338813148746000527845259531886862806007646897010647341345082991630899675856554814121712091734321604898245085914077843765184501896537390912632318130152161337784718131362679249538872999241079657149657012665143437127975192034794775984826054415607841654199451555092624776318653316694347137620152623268028762344938221903131104029962113190547864987864536498672541666306065418566074084947430312092750821897652884489212415036468173355282061890258327513695041286595723965327607152049093865715281139062434314885656539082508952782706923549478739601440274526504123418462757966849703351833100134428919133566274349780667839496903043087223747541394220657928970480916263164465145998438737823285983690816447032348417797290115492741851637214075857650988528710543583337805169290006556077126687020147246277260917666071889376419749326320413569202485697936926389848836019966543192575994335334953191493816525389126164050448763717206777312310857441861241770930250794213173155640634233949653060533096380214600942702409427984311548169014400347454436330015836204637397060185338444644812698035183777087170656359757646633429483640654477263443605147818028105176226433204679662757592306726865670565043468706047682655045689247928062073757906831881119124317502292367813631504812387190631410680842053926679922467265598234011664828497105717853234797837304201505425263409416111423148684485438552014406508081008303179214882901984097462247263157445155255252003757986281547035376646065634730562569791010738188278106086226893431008993157837772699863021049416516224935905775628822545750679328901158690321727738862549274022338437563540509620109055618944611676796882368747730586605203132937851566246007607629074099112668137199570979359530788404163898860744039867511259085325534502955612767586270206078640448366158194331991380861718844553621536730753047813317808619874686004459033506272846184959179129674103452206795036118869521096494763182850151569886917493662618320898552312148018340308032250695319474477677109437814904859970697553824476741680192090756343431755606798265466764174716374103824657849700550386304965126379024932685641064766988215757450619056115361626886070504648545490778187864527742293261235369680364161863684688187049662404790615188861837838585923408356550962874398008682012041598062625419776962366708326400829094210319701694470016674924092213325081273982760374917398063203385104542651707519470190396417466866013618724818425138481951745333755698744286417690475084931068115659006315123077498168221012124405805741273511526177693017224336319458777129795159955797181710979971776307281236357456356133815263285818684512155324235256862458937122527977769821587306259895375006098371580561063394433169850807559888700634957218712472149118899895161069461296082572963638511786093979814783764460860689296836286167371010581606391119874762010302410199198603823817642330489557352373086292880204918501612927408284126367967403433964366428788805317990905456596124378474155643425336384354389383659383026662052871225922703062328954695113837211604845067414201590445425100126211952328972908977009902378049562396643970647249876366026757938946178605437333522016062591487547240174959800274524311700585345131782805924076647992828745225492618679305744780629813509863937259123559962543231371140818793931995649822269642538531805512679023300392426548417079471689645020502724194316216120368740971810095993309912103335224135451121192777753771924297956232992423343331227252979821970748910962002400172987936600991792139657484633835135780006711657184835033869422550558584599430542837820600466643041321730124782628671836389011277776710529414262248048754414993081250668741954688171781282100806809618620168622268782023951263415475270468989226357477056715390256005724214593196216101884551847241393794358218347877814494330501656967232259107205709307235925155847522749774435556472591045486272092762328594996416016513181443926581698778022254432739913493827185189278201254407162440928523632688624591449460708744859389575963454504689205878564634417536934634857082923064351715125013193389132224901625917506590689273829131423072583342685120115650060248465187375557723412379419735299442622961865174304606393216728610446257244207710635001070460071197595991321381373898396872179013230588462950407755818370623470102102549130773181312404641141638927400379151402591697375619317427752200980135992011504861295353357338701111445070171437823610118116804249489699800020733665293750753524576252589582432430189631844155081725821266947805646022023127060093082267752095243165749519208870100244072506265902419126088953836843563840744438656812619555774628143041285715172195792833267249662725216394599077669599463711263173416359911383450390451166808691776578254855488444960752239296949791855618180681080154404005156227204186072746028029302130412557901296517927879949973917341548796913883857773369768266736074668674686024888875046268466300484191279175460703945573006079744402518297645740868929280764549477974052078531082155239712912473206397038106327832580373618682768886839877396538072880370336140314287557943782699812589906359554904382590015975211373774217232860133988032934972276661643242533838485851086584701216983680126676546886628363423377445833593288498342791071365162081585700054684175510612816574686749929034751343402615101563560813433286716944063571489459622814285608897930253912811019320562568600785037723190686708435617407592882597495989509955130386509674997247198735573468651285162621732309902171020338456627963960396337158669025088026593764181628998798718064923677978531401128851443199337851090477428974663028630206025537266214880991481128747587623571121140603964979213284320698679390728341143354932941610937508302517257603384259896139872880158561332010657896035079561406093144319686926208392661054441615866550377084298400639681804144016663450200840754672168687267940659292725116521724549260989880807020095217131063195502480435801819697564486923003639551744900134781852384474498442324112631546704874730033164783010061226949780388804216690905991843662918094296999759245588903377543515666772649205892243849675173257125092900607505467498750645024985320396900432116685900213951317921480195258032487159780541576067217850390896938132806485376659155494355365884603594158661498207844463402145007871822476688483229800243411474288943880791590871657028229731514967522388299930401786262539116213773567316576682311353872409723347166769113611681007349095993475088067530835673931146319236840375120607926907205538399150314844097893622030679688222173332774812452834190317574530094240393479145902665769412281533837895345251200590823429127126331787394849646924829580882712667853452547241517031155143198486343405681889405932622443543440875540894326767425818496994144857276566696990246797262433835711132209343903290688190811173890239594504441074093144884603143619440509988773395384004960645879428315299235870709392922777712317780195644687999816984919933210567833385156236801727654144638694461972333819853731352336187797584711783011643991465618430383459464022456677569299056065554751421750786988111362094800816069812162940895186553216554515540783384043123736613829914540601692321926351702520046808371823812391215933558052195369890449705622883954719423934647638973307106822330456042684551044034772490032662598212499448678267272347177692809808299895750190083266348658238227164566966277284061219604243546639525857108565098848096336918422001476847284569181729862435723473623712450267854887416221772365538817423821337266855745002512222834164176258916896367387391464869057553280219348586141879253576558481513763588130618087764599329692661749585617169955942397697472813179699861914426984519396933075738533954482534375260152788350913408915040674879194157443522189648226946786036749716170724417925639672958257396433732841063221344710917753859807801987744744866834691983375221453397185238993072227333698745951875467868769760332654078561140025683755984760032410978066415786032432407176361617082158828117580474074889945808791069158988223995250946495699475645715685701973653714498065098075546825015114961713598470293609579461344707928607985222813057737311651088070368299774388450888463335130261069084484600195982759146882728284625401090133117055786154939925995768292638537676357239797660627084148975391044138505455144445226220188988654878715918187368501806649484417876391244184134663183614195008915151859880326962533622312410755328788083890275496388997724350095995650726800741194487716977504970988172151807688156367795064632402227337740627909398323704761517023012193348150913016574977974161546666977159153002035086523274470289973706252758492298956107343347737207808468208451808648324514026045244071933660517351395934959508876551812846235455710788283913908298840876704805938162146253581336064158954617622631423788588555957055159763214715772229312866388426419207658289573126695062844146048675692809937574444373180903177846606991302831432937027447129732346958869100179233993594532124734065679889593916257059228459607133611859220059008608210877166052958088157281062699720619326370410430740040882096313847134516080692245606206945891588254892651891371800469964933541772174111089258670288349148096398051230680315411082193915002633255305062521408024192456764461534813248072577998111579559157736000677057115795516769572144846742402910919812291444054931385065261827731322129695339692259073059732775197149808151247568618792105135868428720226116164926581284873390562156372047433447209892266387705736598136588852555751792969922108724941165652627284455246396746718946146342459663605214706705837421077605566726395046414149761705210120998539056521468637081949119255432894710012295609025753461651417689918988059424107837477683134245569171382077427668843865543094904527433054280556024037625011075360875906819357427583059600321276801820527691048078613227257581815671067547307354351996554774823558148518937977307343882259875188133245849182060172347782597006681755763707007152503819212707824700692103816040282364670172087971367398407216845091415888318712085576049535112542943636642995145516908388326615095761262890579078242739400903548339840263749511153018382345483097405030432179428277709311336984237457013967572908540833602505813112813310085549917303296425465048945766610101806992394524111575937809150529462392746897370664380272327692170257329063208106643043541273239545291060454633042823759102474064746533462213254311729425276317645143672951773053011950201356748683814258196478495832808649299079239920518921575494484876870323631410700676191633206041996119363161183682257639715750844019300702458917510988584158517282626649566899873495225734302322358171376781214249381649056407524465068988845475093025463217877649072875307308021486147940244371010886539929520892392743518073356185353796584106704516341546370123730002893201385123656855280674140502359557149346099600938096576054756760605606107106398637277572275460931884751956135522799061666647234088015963094431237489217340075783806437532542105630838243280255030140986188034233202328142135133753399951903965644374240153731690164176945257199167407726086021864072690031136973560838126856448254524912544842634246760855778573610750730917077665518004643656083299818972521763670182433920428053169553756687907077476589543673602714366425704601632688205313208347995005313315187623344480705387916323156917265608711199291148841686368001289336352350070784956325533053347458051215389773198428105672264329637724554272898108176414118306369628089473369090234993784935945140515174083488768827112412790723763723193853877843366600577914778518861185984224454249789382623309156049429346124416597002991308842078869282441411066592478333630286542788074159105338758605329798262398137882459498477429989882321985730804339030306411225702919346851437011807860848581732492108201222011547011305139877016194121851870595635329433504349119523016396998055233770567196322128241987159488742326357422903904185834683617421931548789375599819299197519237407951323915407803830028569969818239195203749919096375827406040459362764024518822754359668374464443062371062196161539371415914841404199180035652857435710342141269174854058856084236135437545003006962194790984828553719268777875831914217084432851245097082499496280021682530616302880409007484138862937439588889489237217143327612710959259601720707655653778500155313047649339798191321321440716968049217708869032222703937703804087629908065451645644410709725737534276747511364203718553677640171758931041137344120980330275714876767308455025833186024010084465339694558855322890055508527371199226956316137284458727665512821095541972830844373460032530928260268294108424320537716527060224384671805553970130828558222247206325064029882686706121789301477748808392084864136270297909095775957279914049927215806325376334208868098317812014900538299764913020210452532778157601448388463617827172890808999484079833540228714709143957145497892275525805786248352609112708649671007166364262303545169757724874844832689929745480231451394180015629666003660570754890445945588426816226577584254313391645396939438996979092809959661193886358076626833485690484910633368643642335943953559015290153926710647176545337091526185544535509461664883313980561106970003153016493447512770477048178150202891363090492162099785730386277624542960093852381985324025554589601453270556328522543095757943254314943306845760616680047566421283051385343703357641846403813311180065284736999212541401322651407503952551400663312001302148876714983148896905407152745283369327023003306148171495855870453726390650623781282234342347604185932993435430120683891707362718225897813778088560320683827183877856934036389112111613838949061303967504818389701203534080604309687672681343271201553133904612654780596629996878933850574235395231457886400381179510117010729751928750983990441288371382535249287070964780400302617457802771562128163451102107460043583632286990968839328134552544454277445270518009515887305676645025875751420147446078749809923814638113851380631778441117597025789894364453966704999485063777209080626270832041704652256803207216251464800285794736234189892361399932975421571810390758160495337140117739924808523748440845013081507336214892476405109012180175606255872509635500994519982670022048580357431422307842581228837597798466989529295458200642569158883247176446158689198114545128793376746699198876900857641278826434304686641430644972312410774162831348180222023711650704236209776376756696134602405497715203399482718389684466214298185336269080886111534559229935685719069895051134087358878576075995248796964619639076578841337755515971241514269066393561231909552794129189864578805295523393444199029355215806305219560853703312990745471342997035929227191830564968932454372768940204843966271889380883863917204995781722278508848399700423584930743779871393019119382048128759550215922129379212884423137608837078956667989143282753941008585037136286373394332393640775504540048195302319981104416181454739479592957073522111835817930839448199131414083033085121179803805881272105415912357033287347968225944994558425606854124607274842363555897019869156288473452041820849369103515311224145213087409079008359078706482387711896669660360710351247274772039082365902203482842591221795320391441876573717539044514537243449819956356930875682121847131665284992450658133946891594690812148538146412716497156977267415903814106716151477322420809829710347598968938514844634057610354932671209657312764828539064842717431644114689327200121997113174725669322861646437477733572517232428689104251270715365696750689526136298631941443605684335767140441937564759066570453583372574213569714846286306072772217676019745366607396579878872720975764962844339633584665947670028986445620324450674959829987095249498621114562334480291717207335993852608919287575370405830302331107636622617663793571003978509434077050486245507987004043615381084685650091087646503499138842305672367064612901505242400971286638385063346869291915028197537467403133002930448882358130537868589227225024702676953343618716077793085136424048192584934850251185985947416996402350387582006357537730276061981826311885467988324673064553620380452623249723616136705910798358052676318316524324715276551056034348331096090537899075032354521356599943160952015786349604276239603366301093968921724153471502070984115871422464002721936082765363421304530729966565480199406505826533943927516069491145850898663866697378958984999311853800250814174946039669538107932141096536603382637912698196696568432964926752316709702634880562509559011377967398164757771973060343719514003321932314979297590041803751725942459059975384423602810989046939833125192229836444779941600465065102872969856780896780269632140439739423388699830286478899123457053731758253873588085273393175905330459648040915381364661996060600397793679467671685883385157797097389957301396084409046905212302765454124760858387689928588572024753123785905470414321565775418104700001033326400450651649061567928511052712795950149320590984928328156077848628593552485291347345651499381461449256405788861610948603793498290403839551483636711406828766550199446545748348473387454067897745963290738067070251367403293366033100199512958879707487682420889056895753984076098691521215861466164230561897668869208286387203746221602203500060130809789320435897155149478264661879476707534660524103944298864498657083463630782061765576182404747076360241711382711624053189779942167263763940577372170871037216109763313578909890337759151966495286894854101206264954340708784215598180191606048722727032723091181424035703380038269885348270220499023267169583552761983810653079817292345678827812568184106739978875173133805114631799241122818788650312812505486103115327130738651673052671800598909393363902929914384421713992045528931952232720176552186031673987383588783701484140853141284162678028736468424088427986239931706148643946802762175775171323133241676709501348033354072930770033168404249056213934780197995306172426255677996623659483013670954995635379304299983317928384478202742102485967118653876819431005683999326402078036660887180776327486801468944466044563998687882480782124867845511716356964539403486110417503928906928185903830990881400893437921399270907533452794424226703499080448003636129979627957018953316257818947821124547638350563143144047704312999104006716086611965366346076966537871505230301740387645060768089614090053050751941864095851443268368567583106996774291198213844359715480921600442022970050695490405671217601435118968846075539277861245962373484631305479089022855679456588566587147405739215337789647035398386895089834750683436623054717157167123015739141812307805872298469878474502449931163046005064292591936588957918779563544590821508450625556962181159232762373544109149212234097461943437092878964856516352508815653385750682331860826759070966263770231312791279170046367454160278866487905117401375093264452932442637208431280378331381614983602845398842557229716620612682107589418863624922393899762640583144158742459100820076305484317857099505364630808411548512048517632796938665794831798196054211775424844129297136668671482786154520547651589266414743374515337455479807002053607341029111734185015499051480191627757414560181827836815262489268871144512715047636532905828975018635594839645874597351762076849245764993365135823149520742934774845617737752955946326674966670581819247378807931991001941146021303140118777386170219365825250472335896192156594257243750756034207791987998451153174164548641930312372725148657147576909198843912519210025599757539967446765350636268944396179920057809516463496616686231063304498300680228271516654754042244702321421033674162516098238064931806799498966818975422749411930471142940297691502306773384660536624029036519411373326139620117787991057938281671253777002277044610168132496908979528104023134884173866695749071402059808965578900387209134233515097024577305955262127792779721079910067499507741967233977746345942495556356271679284235410683265301273850020550742274813899814914612610508286159691938744762389618347859251347913876114268343122213271161938432572087943362670352528138059161805199250385156566430036273742530608771709102273156711584288916083970966276901923378544287400316693114084657952775856258486052981485482350342928963378483233755873828991221702539968285731985579827049911985620201751951879306004862085238932064827141462722039389684646106937300173214223691592163857156505747578547525478953817419389878342219021821191150157702432866656994825964229206114927211934476119541319284763442260001016064215143234963496950751808381332513771895155108169953755135638342000111557423475185453593501541086694225281997197838293391093788215915869775476039534217917241128419824199725770020925269287739260294863751366515991476438687017629586840175612429419496891742419270057911400098262092073579356829784776243278659470113975304066191619816407587805034984180294865964358868641195293779429223406147647790982359683134952930338433124077086133484187325659291488416954945562465392948292066675677486833187804145260287103984347026557626010742147646598472733139013229613909993483075495113775016848283489028535122590204491556287137892286760739166779879447072282964409556642815753690915318256046974718763998530821386535388484863973959462902053452492653872910730330695051560064476843761137571181282483785399658051132967233829003647112449103713231315264981417225068337403289618667059853520624497504378184863116840436491944674577321356712836462030868834367806323888942331854138806246156059090850341084257312652246554150937831148850784473440285282423710623171550587792542642838344461481175935066734593549349015323759452796070293422631418044634687897244863043262594063052318389041333857069078759656668271775143328635492203786813400594357677195115413452208600759654766065644956771667790948416299554455762755531104868821526282663286781849316426851360599570639267677766971826890312021072223410850420396457618007936737389634221992236087453828772498904920332438413591641479232228351808017480024225595763954827881180329687848781793505984884418564033833166135153164433127039518399535614998028806248079333123012536271002177803166377847179258465824735042907121041784127173130946438369310822760310201364121374075993590723444683959577320520853780653781507971511037167439042338635811073812011371851071079051736792859967374360725378365500568133801413858673109551113758226359631522284242031518231341217928539394910351479296786027440162437749570663756808211722879647100594399295989282596034007162423238127878496486805083777784952168791898501811091494067307302615494216394667259459209894496854104769512266917775937643512843766531527383649008564406371869467187117988988752067306384750690226746528414745195478305070363797141048263408448034073090892167430863222367332079141150755721393807123823817775586426196907739813977360725852531208165981241952883139643792789515884194380360635764516644884367466530619162949786515390251385633349472060826434811026360281927747045149081728670384525380353251716157811116002581787524040176410612680455789939781306202276246516026628910417507610090928575524207012618472568254331023360233104458226395959058972530404212764675216711784688403957389909151056510133138166051327844967621379785263486369176749877102686276805429930676760764271592824033770132493253878388386238805584065087041135548652069331509217378710533678272030098304239297728259409985134380165521820300273172437332922197890225210646705980988075030936152028360548750793688188576645792596217621615993149116877395215401102659840657622558993356523453205625923936007190349857036057181718016365407096527989285536279124638405323019768265582633138110411786293584635334028401255851348759628804867095366155805157492087906448086019105904685311754905478967414971827411821414544326467072172462889435612362547572263290900866056998338926892291652295435800654365201447924568081656770976673022122343530550765979089979060409084079561632153621313798939049319422357217679238210000169914880084013903899609531164647638417909244279579246684118244561245325906612696598884683939536413346216240065451243186033856928087731378872591509740253483141073833016106970001616959431047900610076481126394667695027128241292058036358677400648082079769406251806028823149715501685562636641265990644844518243331514701294007475038925532648920124298706388420126348931421314550338941009921117745937189351217687411061532519438351468810472430445952331538030006250461471824609476833747822317316980143804621953210256079085323689712200854653954604973465234317854233190239857885402804689095300017180798771445102110577744134229727346219954451634990191791344176184544226367514684964623385068075178247128816022525005241843935499534843782728820253038762660365594015019937869395656882100585708013460800780493236365473817921872974262599121043993428266803244848611484825144173865513816712957336364922507328973309328540702813417581705926710388637344564545240594036859859865110527969629030190177354457774070826595952336456153766153126844949373749665213959129503177795286709644362883695567272696880884664132363494177390121308170928174727949092635054230302805592480046443156822302378950019859795778265941807536124499016065365079989524111864972684861644520964696090825346108261382702925455894460890668034966384181472917598314655484483584154679231359211929623292862774896908289806439040873426954965366063904689877803080850916226789511308733604387552880000685473175526555299532058817208071293905124733656649246870476254204341524287027315784979356474221328975550483966208172294541551263925540812341266020398962462525770953037822333135072759132369216685393060421841989352917124020160497829479512755980450839683563755327325269515882131390800769361298869480152552154555567545091678185495398650563489439317687235663682282117177998644808849960770127650255279567125659895026879506799203250436972280675515642344392778173116651130809374544648376899115020288033193063288633592876467462068532076533604790028802531947092487994124447149403060968688968215516283989566467190987318647693735917696668016600643755634320141728791170647253758962391567521412647751665537771205150862112687498793089824891902314609000822271427182075829841073396313975613812747710169575414889408463100926254018800720351820077184142294072205087910018906324933560727569094005248880532644996947790345458105283287453339977478989794751158187491839248325366872772153990400673355325319786326485974476801280608956801702455013265647784956755547874699724413263940518602371608826147771097760683107918494165475188465612003405610976341003807310718191556380689767249441586256459251166942593564338782110299543535078668540064586000236866312584580849982374610606114034004212353524784314396578985884471895023807797370170873985672341671701843531246045337618607956132310778196098377246124963263961735676333945149076159060408578513352881505434533884910428557621186803856713826677179713447819156451118716717369486710168235664367111817252377112214732795929830455941314176556652969531541644345033012582915185503794068630256650426869137431729853573183414029072181422592930750035678155210625816576645484419434823901962458386023348642474174979823106483601745033662209237611511547791957292030500666433664588702235411480257026288662242033600143329968535648698190655754228355683803481227435517037996850724395557195736412427907382607980181886236594866492253080014049223486515843926329295220269456588648735659395614409470868758157329426041231583723991798366719803047793064479974116121865445771093814801802392039359057583811163087639814004990019366478626940427139246005319873874041530024307850936448450603227556405184144754034946077068095495834119288616731743382440665098351988568274407560945388621453086999547509229558636879191665159459605162358471639877753960255453108369726573163924147736581985029237197618946460838151914772834005431541266738318549777555922867193318824884093167498748486391606290885933586801976996787585066850410467202147846534083717305333944139807872288500378158574556247536591292986299727984110497001736206501179721465509713536158240918294676693266868137138626921397118619094629561785712229599661869278764048690580779890202870188901248287173034907812031907418419986467377269658675416042499854510284449526623040271215108094431863721233259941502470456115668279214254356249112545006836559793350681512874944694123044266579577674638917754490437292989216637261412082594890118277938853214104977183939715787028655558781069535981677462743987155319226288720030006390373536285100365621430819796584981468585099885787449007942265406610956623553358659785180037469666324149548453961290441809903508121940607084915445468605459448026219032848887767204121014830390161818119799936598734523921238493951350417882179952554245353342818036821486459090615010270024775242862938488311715954265980449965020013472732947517521193833072072171153804068344835605736490953528726048232663998273646382422830325757279433050003862751265886463544740978669423433931789902095979720512139794427245709802845210598865950197082019982026685428520382388533388217334815417220619999236076614393576190781215326334896452097042274763658715533031126980653859964621563608356346742211303242342966008662160542895393709330648506560346551469599930317240860544002298684285735172791811767464388790710149753734291663946575201280440391098974650403615766917790200116106148389700558379134244560817082895541297410082658906745663941354622047430473896471462653453674873725301487045848927533603760190486889589823269508150723990323078913700000677912571016525415125422541465010835926001952918474026000993396660614209489155326669252189228384712839891116611783694622323281732658817692508332576190482785376023776641504949604069564284157460864958118072023279227796243675283352550219421725812364854300424630019735179796052940341596895480886672518455965089643634403046911971855572087369732156417111275485463571934894751483942129983020805320202056863081837578823488821133925056941580333264595570815993432055166183000167991840962936069456522685364038787302719733077153403493600197391951013584755951169174902054425885843209622532465443089479992165498054023292381859074448995846642000998989086037284490052649785010846572692498559815856030079841922740908739790269179542425254227109830809992918957238207970432556986129675473238226499405960502681322733884640896377520367874148460220392919843950788627844959839208951507194130054857972813037358627395550782334526924641814845052166467086603315990346768525199561312064330064419606752756915131155075834732202039124998582751874285954264538744997825089676057163612573376583515803179393724678108229262286150872638481003702914648588669496594051254673824811536731166993032938640300414908063827941587427804683344357535400840764151326317855457625204240617019989763712540998004314031260625433434408324529212407146294762771450373291337727816801780803984553924386204792842401274580346005143994882896289392172437022939337217283889340198005873804620861024368974920588789377386286411712438909067028567636587777033831579753842376475007718077400186114418531731044987207756033941992780049587456049768366487747844782418968717131505341853694858403270436539553924376386504198655239910752429121093639139997535300828052599386250473069264266502764817256557000870089966624611555047013475163371083587369926111127783267510830153338917409689734125958174772396416117724470545065961478225636322702215535426641638840901379726765944146037877174881426368508426105603447439789858691592143052777768952182261572064065298905439554816192885923384878099482106757014664816076621963673918677484934932595143498627000825375218113005090482075926804276525548363335526413590334302347744556910757685786494808462348163737048931154534141764737725996081352497231856545174227635639145193119625633067912342645824577650016259122636180459522682498944589987064631291268771055140636993734033034303370398953549159478872353302963849971200361477178812217760950169636927530370724584036069099173990765498115268001022317326576636876028721068653825233455282932033840539623189665560374227992317905363277721712987374823897752666415450363159137727977086557658718389848346782745490037135317884587822756255884491555121890409218728889119282484489884282226547287899662232673537926295898212802756177258468437327161416837926217420050614221209476405679442570718658440616890639299000488884922450606903303122792994566026414193607782762379059688213063447138069863022694234294950320674883712670054208883182290938713003784767720729315006166887671684059771759513425759075934774476508185664462617129421287773973756916787634664281153158641094447503536388749523740333784710447471959411010108622225306560835980215954880601290811247354950180504266248332948139060890265203249735523155676715196379911569532212313617090767688065954730652453260976304677200669899142624208856678848520493016303143028340157040825727330652143674489057035161009167657568991361511122162962380000279932519567411561325800867970120057994950501501738124195805285103400365069025781465579837398623666971863326449552963771832093124988091217143392552096643831048033671486359147944002979563616381432615998693409204218123337261087487377851912595220513430172199999198310051420554068523887358089099272604489494209514119238109608780879573464484121497949468715824711106862604250633539052745931450986946892728656827963569433155443968798597958463754193914161951926039440468102060264039676266014881530384430977275542918086380217862026976923544357095500804713011062650093125199270377057021668864933726082212841683424278714460967446155973356497490812912371049219212675777169504737336321330534239106587651844682522029896753333417600853093594073768220265533682211400152108822616708446194864564286196908673456658100096257452393210726714474575202042434302039286527786528139287082178542415382072290456106691642051654599870779732635543474922440020281614525495142768735351878687056876409253077370296821228383725621646664826317132287402024943084501492184302906858556180484275358047203859199865767778975652309365749606382817785791981890371979745104284482612793867849867734120551724163986987181963708816296390742169391165823584114285080594008223596148428253483170901586050457553134966174254448977046730743289384497081270899660707115511750301778787793573437876028795020437552592822875846996196148780543266046412979263185550799424427942817618010358938174232845985769015493400027922022059673777785099533432674123995842693284423770666165307021311460886072134171799195704412807325041233203178284256919311482189734146847482431811328241944727031080989759407537751983162468796614341597318765394607712253534413220415996549904704928277080492728001324069087053308891839195628311694943523165236371547104359042329246195869183173790285077867115588725367911067770455571458648711387594561414681485463610290994795561412545481161509851713547855755298755377454683061159049872642363144418061625818852994933379677190290794794285681495441387737477396914851078320661782406259528068845464668288257308833983455356938779893737028275671956630179417119728140206664678543156211242447525718971702104384731714022043875932492620447602714492806414943414891595940730129939652621153023236486833217463423088916627272601427876507921246037206533396251923942618444703255995276226315720465551944942476073151355122510694339386964502196048801038707923791728868098769893294738595766132108636312843460526648695788869649693425340436834168978766642978360876414744718407168244006559402169779602208638184544496166640685083799484978415701823242763684599013986117562123095633034888086107863912778063937232866589196877501396974773421178947401065183777145154871717224880544133487665657762730566736856022271396273049560593709406517172824674262846684467062221754844266945032212013984383550401653475773930131463160129493390779679732134133213618092813956536297524443439053336834379176680939099691165143247034584475944387366176020573015360602654693742124760102057192251762203549075824143731055403819326870154717695230352655545344500479727931863833305107274930477158136964087250998261360544364073307230481115448862622584944140197833885764475172712644858158952790103991005096866963967091185604165632363330109679738461311730335306521874830615484864377201103808170742590573360194513063219910212969218751527329243450603120949099262991323482091927095968117071964315843987995001873389148625998682011941289183200096528383518590237228918135324482955596596306313885660239989077812914225610684633239048385013202498291179414376138168899127176371214530702390954116698727037446948417786720437752122073612562466812891886841777371400617660939737486734823769299243222781133860236326076929762706129970908798549628268621025749167266348001711718309179904313733921166260299906692087119738957543051363616247874063569475296885215505631633475767889342505619691103293879871878687531888687748766800116049609702700418814330454866447828586096607950858015594177596675549521814519067328240195483652183487403864848932313526265374836707682768717937626832205776339510998253235116590493753476099578685743342003073881585409844452267466010547295671608169938925387417118505173074104089597751396364789731847145438881189397765167401326625274660886463621127702590771655908276918442438957159873395187872180250433718473379523755775336371288743999358705888346640442611926792434696599471983385005839296806778244448199982372947075362935391834089341728284489830296109112991663151643937059674417182911269741355538780299313059608100311297384261907739570619824617813272958360851507029184515070044547072633511954423952312693840570300108373828032508865512852081245871672088312094854707471630214138784932316101453741808205514872599972274033780138033358543890817237213349936940486941106118598156337758686784882016202521411730108011672513883233463470889206290116780613144193232793415425536529068328164595545091078798273824554979097991571148676782303828802454975716132383537374885320532931125495059492706685733950345845668907055717327826635119263776286256616331928559225706844984816565279402084682284214831988034262723787886612317340324997811457376049623407138247922249774995842435077889973958099121065799324260970201839142784872193222947455539065133863208690150408569949886282824812032845502474176449429616668660799596080709462190992197782763115670428586761780870621796275921471325299088325758866344327739281639400083234375574107400641272652859554689119946437328214707500565040387740216812391163063011836989425124065452165610538381582450994459512666044527876958956418301249973774735200168035386362320792976399850277999149663328626234317881616673970801106486051940085434023144443479390444257071306535669380602203716444447759097847645151779175196413954612046847588134549243217655295159869018765894038910730364260781196141383033316961649260764190348946406193819105031009202116269964180699818176469432081987686117480158773093676447640031993266493292457152033960987673262839666809488424576439550585314412541214729593854808242920572170803862145703478757610784769270712720739883002278800179082092438058427815651926422052114005590831454982297844149880736896127343563128468075968925528032110715599919103424347395780859755996115593734685810008457792995513074192904120964118245749961388489571761660399067025915436568969819440931514669891125873375555185406064047930266515690930813334147172633208505432540678915887311695637284899159553719387478463896348846133412729266909523555561451024742205971126024056712308117253773411003464045372135674933327564625606907094259738012527801229646770462390038443763762061127456117879451167487120443237042237878023514307214310882122446419692796428645989023052184770969382787586877092524138564143203550692630243015063047666271451301822888451123279598180423197982750184469800823844645816165269963892479783560673560150353884019235266577644698991156076331187999660112807021862277273255628011565448714321489801303540215622435149402518815243862912743890804305310198388583724648747763285022488768569458624329762978217939907743813690561017408917345643160940268415763845679692279071600641564417007049474494993562646465319629720297101227109815174701562662183836320841768246988553817571871506051917113740973779961585813346803731481492998770681025439919578958879512298305057443504541585126899807701586109141875731663657188047696338659257371836769823335192666426453733925571541333441431421493989966776672923536168694866711287334128866843349892523212953784035734039286820357007444746266341223350769401045702759433314300890740947161185601569179127660569381397983060563317222480312902856238542297110715216279256966448984094266153701659085639514043442069596013641047419076322860338684757532965879845855955013147801145265889439069096134579465413701877321970528810979605352290502635297432833657815930860046305487813629263595752605340013790684283878454032085690806774320675224432314437115164787228736771444207080518454702902879046069972743680282700809030420832058856879758465171288710999007668185273635061486759966765328785487673500445462677725656945492794429553588728567966093857440827481746167625553270143463100523997897100105167556877127059305155531235765367875854351326305307480577457051309945985320570592854065772614252789761790102362097558159431993353042368050703386911467964133218769675566493392166776062744176023532937600341203734683546877101543825773464249498643622442054650678442564553913292210251468937090304692139532845872506672862385982882675786965704528320036931364488034209511147505299386383021670013498657993538128974206278721721925465881329388999404961275502770949670943539949739597280824473042361024986238894023784082619982270621125416101685124161607649268825883569047177793732091045905965776885007687993083689383542181145620043714162165742275481276520452055672079807631582902149673016681131639762157917934820284707786808763005447240501350891026693325252946165927002495473708835075824950530414362972159939489360111231389601417387348984215738320238138300538079047655036081865879464810615630441319775202880479592619033396169671144735215749051238387124286987623677875057211969512141451827877331158265817949555144748744750985990264418924596968507108068768940546977814630579862851419159299314203239300111609361305978807753575307772755625828386609006755217714385907188636391122895134257673511819533731799895163504559222854425007378948700302751027772477959413385154723410807408407575139192608523980204285684947023096594022817780975319964087567628291800879290759431961881978100727507280243565491989876673484811478150453761993587739726515315252099896056821604896708731839285822903948229495593630139690666250606469886678411384943457987590350597681637880422885056334411472469076696347846841886613654509335478355065304787992910272473649595765169681298220911592607586241315497343887293715577914148932969664865325103156075286309626763587462127306169530470554108261754696806183547189253625393920638263160832507043572106620605666246903177982488551614177746183091712585258353162255003346107055690181579776428674597219990038861674889961618582519036956529535837578704589116658041993799863385369370759462230316893172659952116819766213536538106495230590738460060206937673489780885581813461748865461527397516014288762617828055476180939101107276364609895143829444091267070981384896828603918225095407756180688346161111030573555573397494898026728958081267724926262062355023181353661585410255447670283917663673572327455701064357679639493061410262781257094193482519083734320195929535940869490736342219284865756405958144493448032686669959826060277940792075685854224244382104879841543398363414002863655384183790453569333735575792708278022939401796026414840280751472916239014463779881428302688047356259303844116606566441554157747764160005274919960117213536254785938073250607932593245278273198222035388353510197888049168880043927656338823927359021759190312870414086584658057397358732163032633474633336980015264666200654910995197054444154258423106436927697143119865973349145418740480882955419914420536233559654833426236976006299977578975715416630411489449780885101274441279514936599506005290200349461665028096140402935508251402292572472161928333445531938522164822531882075468535058936993562455431015979634950295239569822341337019959851948228256474255381733123668117491489379746466087144836148821706967872588477015040320771674071249657012724207429545631083199346780635416167131748101855053510244537216969840594329862516151131186412415987837867181367483587650575605165035473580959832944975343879446325440771665139391301057096088792183786306881260293699010219547411631366005266216268640068610197694273550602695738048942881463175638474594670753919323771207404148936796250317706111343022816673023564165207593408063390889238400505619685099765626468463697293523449114093885602040705265315408332605342804640696734877241177717699542208080690153017185023103655743309691595912307216304284603215719737803173913111595743950310900316240308583490182363433145699764126700714244958088332507286247992832452561900622154912178510840249011186024712821411058328957477975976286449702992175468569652235979823948709401347958372380862059799322740254582334102529734037145204088375379423715384644036963245664895839551177348598542785303821381760579214515974422023223006937382405340851436882883940379683457355706347552431532957316564565769227743485845492188240691992667897582493172800469674632227769853939663559851097701475373531800177788169975850079228213146319816244409148313173815839433702348771755316544512735248837433474048518580022614721408491650477234949555665991220116431814006946858868077027147372954592525758780777827581838227185469112558021834234459272104112434354687625188850698480910714434380591504575554802063707497639899212911881975061749694624079718735115983989148334122371862487498474252747152245912748516735800134503246206889727142311836052519539074476033339420425979881245616994391512820814655174523293323899127636067901728658861740532636387929207859158416387599097653373575828740061431474126749154220339756255251991924678078409333052406261052497979243589672119380098724207975310766660968514985785694130582641295596987074371551716404472493887741338376293830928416733221843613948012055898609680628296442866194262425307392882594257466224379695140118925240817333995829019937085149622045242316963631946796649784139691031740257915605676976087361717693890922871928550206657912605869542557742540866997674460363460474182635159318230971638372124143477797380040263958374151735713297644936990930015074176156564627282785919661003244726795487714538172443265737631122121930677818146636684075624839555681763093088746827752040666937425593112115405755822423398200363668445909157733027445216117523749525126469909187115396633442569988207405035371407962085444290549938495980956710263621263427301339760707140961113461414176819055621257262184823270651109309066367239986879363133902381711359270852432389236199924537674352327340201675625682295698704805414897324314184771763795018909961855380211368831588467812086677013409250707878257432885979737414850486931943453406320922763397924099136884344979319575484057920969971080648954119618930792795066782232810854512543672161746095996889948038616332033549084082388243452754537900328902185015552086851415508093223547179230023694927956372569829487343085684535081085125563073839226934515924179014501910619050568143541854759517690912115251265645953091036480343320805143999486777092407504649680939979979245679563846656452933922928704321956437314360816754831106733756969253409373875858503621525228040072871248305401263711724595397488313952138251671935386374291302186222244835009425544179146120131777860461633102225757847592636946494619714716491723032111564399987778265377397450851403775946429655121234007112675398009995124082627056045783062514129514929197967229770268603957339563824664424689573683323568707773294425427472914305092894905955338891011875870954973616515393757346919722670136793093214694400293896610579537720733411481471170348447413482197353199268540969558585487289686494088384062678336405202630385783859746058143764190114119596042020129365439682116055331424847076756441182842660590918613317665428912482505136003796980009166701124931846250481360484156503763397359290232702912222638594070670758988740074654761806527333895367842637147683170596742378563076696171540210224811133821110440682685207111300722777664625839047962721239824021634419178653400339277537637101965266452788886419769313471801255753791850825681664602815047902022291935678795231515008995309735245766502274902937861566372529858294067738061651422239349682767126445077134532740927928429831282815419500919752823293774094130681558981204431244800138441758348550037490047486060234145021615573582493160182101460745626402018251929153123244087001571128104369962231062381668595942842066880393975795436906907272495277896918831638315613332064589124714556157825410948624816368560164274050347442124689277605564909782685899426011998113257220307237469083128637967135723781757854015212958495422804351442179076292465257473381030388840509044828127083341159521022680433576425540884367499093376282219859631200418220460631671593446358253143663624509483339590988993033321156265191323978008049014205737127587137030937518493929730866119581773105763724725019231200003905658598189742789255231884280425972233334691904982112739894009271523318914728761294747097961176250229110844419346821772790093994245421562819369519066521712209600305935030661549062589226750776875806459919163238358554276507316903543369323288376478605593097553860939537441401860513189087568380786910963903642640275247304976155940324188510430258527901766624598050467718229464880710875776994935634125005305678096922365207086319399661210731395259154540021925619718550798469028346249635406698461265585806467327649732757107806821235238808061253157903115383100529049751726725411448250221126856197748555722500848502085986799724606569039991024695821225588510632962333292672440347955030835956104451870078724779469410091091666921430010357090199658014495703786684639892793485839449894565453033888771193588897370090643835125639350859622401228425462308918300768586911826553254947508204445003317889785037231377938267866437429795882368803396525530486248073985507602130246187732894209493332046997379771033174076854851739831315885619029982943204184903076274095459501147593076573442787925362689781955521018191673810685022703560806843111979219311770059031061201699916215218354157003500101483570134648960604520021892603087352517786989524280373869396856248376814401688768675914162148022999803225501646711516573991225412842211936847986118619038190370646326470317294439903673089670416401906123117119702541056484464832989237547888527600150553834619488556261400594370688701149002571243430900548355201503583756763975439656004142565960592808501213756773378651565536472097976076203781909507706337120969529418647592943880341720521381219032944845918124271547375509648754605506683597818633227765426941922166948753703043145521553285466063640771421003993049786570018040979490026620025761592572376250974267437701696067165364954992393652241198248276229322716170191394219300995108493906710938683260699899629802198833879800035559754731227778123732215262979669133787892049161613724798766701613467316433782171625534765585644643283023945356181948682744778523821430364945401760072207742412241982329734452864820765456300412641067561790919912220467700623643203789858703616621539756862220198039929791069829966297922947707584001604350072018286677605718814633914535301783283752134351971958140221309374298466345553598725581480656276761907432259415910300224583692894194957559125640331900302514444127268355624801070698333374678472191932867768587214984016145136735315839924041372970987050316405824810736694170839818128633412406352439221278890490270369383543113991623454427758043346840237781650372692270622001111115745335137978520900262200047921919954784970562815764089079854553995323814184870550877268293893686172725129706195703994974407199385393954163770084546926426106952545607463498086234987957626232263050637181567503966867809359184725281736690441345196980911892937298787513329993999264151816140129220213318385013932350881758057885364608305796310955983995555007053413411244117894604281370097291727474261037660346147738215680850705917303077574214828232227083731169281688510548754206737528495994753853313719664622106044014220851941411348732086244081763848999610971266851266955628087024605229074477084191941958659529781490541912072217137234569478309202890135538114573430339126259300297306226321984877702408097513394595639429587474513892514547453359939494527047291162231810322423682375230364330136060333401113215107209752032561392450230468890538421022304574948227522259340352062198202162608547564667591351657296146109988511165586861438413344094233812234001984152066197840676928864276135060419872731168093945209987432841706001656649218786937484493891773372469303793932328708810079706928876249352943216855549115898105101909844933105175609132440593757095880171893622723746912375307922975994328278855499432181287970712492171564969847998747069062510273977550482988970329128385431089474388182638164277001243000213109789116127322026514665689321538670009695126436630265813634022379827125091111953007513700299724130434316291879016209660468082781356804831072716981955784686736696253539497829230020482343564064043014133459252556838338077883897768866841661940336268579566974425628549703370016687028872777147731201566128053474050057502524707708667332453574270978642537819230364022877498225401509622967068916674791084340422853744846704509045386209206291976969278980639818503978869403705183267421171533365764140822169150349092221653950306630230930064017397007660379359178594333052066436759201483572662720114142240796473882459134859043750762074839615218951050489539554468069519786541728525599381682856870068076035149219994848022618700359756415925365883564486405362770077018559707804095216786081630242568586733488216030291100960382058253519136581679104877914448700758425350194892318735700977108193694373440925442253678204448861153148989519749676646076398496747719757956575002598345822505819165300825218840827527040320891320368463200372977478821462186492081069831645922874936836982351507787563414240231703915690528063146296485844502551290220706905781188393277818225974015994188507855252749787433613001597630550803138567899577585515403822175170850099675550766403485923777346479549378268619085492853438532365287190631137512784308764766358786253478111009150554909826363819433227473871659873439149366310499642456503279440274050436184194548853392435772310141345864456851320356953802796338759947016271151277003694897813723664444025405441236853100977792998616747870321421692925165450397318307159719494922956366970935479148447065124383674382580022934008822148754922060541669606837401417680898695414006075372325572655674476969173627378137248778549948097961619897630167391607198961901004375594975956487096498617335600111645182500957468770028362370194041356299727408138926023075195090001729956271961346218755778068158775946042910334052910148750079998519010328622254478638566883220646848417328026895907728106992184011352742045292624325297331491332643757100983775589579174673861908243788777018687893274643824731636747687066816576013471109763055620047840757941133550671770269742133453088671922569806627697278663760388039548292979676572077569240999392544816753167944928678911414620793855942040945564441905034179564440265941614619413325369393809750298753080661236683863688375181537066453654302413580852594249300755800787008343597261138284659564313367410416176174765086441491309818653050369400833903245302915213641556523820536398367117789335620128296424398575570647433020852329471297211502805959738865834750174965244843636199849797287797008304690636911533117045172003179764786211403674060061137045262807167561808625429945996232294595080837294346796220261140024449998743721310318291706334644790584431422162311336926933301119754792886089896369566080785440878596575118948765174471440498861731797898327983715605851960135716650250040264734684443783186694680711298107243326671586145655735581129525957086381045341894598632660755712631081296335042704144443455294144546105462739293180430077314917797855806222844838573737741301308082486960212318191478012274300242824081675629554598299406300285438863255858767757536691911152871442710137236435446278658934768281851030853799885206860990663948350380997710704542607549563696672070464077262615084951458620229945416658176536365182620231618272465765604316932279664425344854702642114092875483108767179420885812756204927626195260380400088146838950875552578319277261178009645469182208580982390369737029595828805594991651123367703611033208423317969204265043399339658006760189888693773482402018315894543278488333552150911294570491314265454113896855485055014549172051876104336421597224944641834883086382827245119446455805505869786284084563212127546434416317557247643043134904905592739024879244905425043003430921653431655073934097585455066395632215838172428103286539147367390889243839372309937633065422041921903905983287971237548687400544078464330381460999975934767384855383039003521501779596806832918363493466769666166562009714716264612222807973525801947467970741146606325911123119985240193460499147038098572024386081724326836790215159158389095653445988213627776677727955572189693368497604905134946041293665297117458226233740721979647297141725302581902888640737490142249011914119997583377798375652794621579997336321070167687755653081416892962599217933338112340527624443239461809884100502711797729995599106090213540139398938754720219622921257551091311395702808180639996837123783049098478499154620086578815884903166141125007120500388436197628890573063300594584695861311011237736871205130782281137859685548871005538809214812111387157069916127693164001899560622264348172107352944511810956321947909218434220203292584306458755218959382291491543628966122115517648759320393262426281933683881956799607092847542166630971468736245797525089825650873248208473134602263038026633739225510667679609650485464154183503814612923672753084393102011840064988122646834381449592882910926371729424992866949339039150126043980241341200201105061823534266797062243416821910847383408243838019755291823759627730576207758971843177915277606118653931596695738445640137853854645778660640767002348436887713696699576200923796065277117242501800464397763991014820361759258817545570874047417369307543496549624983400200629014361062159678154223926941321424791147224276201363724733474997281028918977892263982444342873387804336942848813726308425511792307656609885284395699375616204826808046405947973068304801435266874391458535740219500597156228844019486568001625956841678118789601893401097723475471815820220772331632088479316095650944540982908618498826722500651844493932677886253022409314569554407725186295302648143237991960761913709189814459376787814577064877347011041690567131120706513232802171351896841739714044400437609211986738559477268828238700640638231720150461290388898904146367681251689233606754383411853718659693843497820268229830809170905779027566680777054223905424437940606908351119158109508870572710010350492608037959284551146276015085754325109270227307294008766611105459422368260733749800787361140451891103356394052639811444722502441078676724090143492446467642477235750024099294099280271151744584775283753733934217143890828764052018353821598094622567609231864557470595727828018958724448673559981009602600950426857446153611733626847645771359383165694619418008948677965743050947185822398863862478347632692313433813959339706463539792707026758365270198006520322875404528098474830664112864743729038797519381845939499678869640282013646058245744136655755066897434219876515168737221484027694262471930435239496071601879295570310674084104009331784937159160683444283130819165978364100087494232401067168458137745186900820583553480916294621552477283250880435386811696040871770777453096979287025811117272979226766267643990448496709028453501369174419598618907058035253767349560608574996475055948609021310373873491400906367485277409294864470650074392256902373521265264655626874857401405312968292566650180212746492656456659155908740654481103400650291242073290681892689317141321885986852520353479415667446720155758744848454838942398209082516662008466798500118519476453363134115306509105309404031761050782452965107121778589780704209793616290710208530136762697489445476596429500904892897290837448056927032249374970847802115458604541793863790594075150973294884081533090356970765127294477805538889971452971266310627998991630232117671085075512975991101711269369357570772020973003238585164077428436816314123718320250079618687562842695926644569555768493251325205776365236107897006364808386108635419682703901177817617091517401649546660977351146163158514749334071261740906819484375524048754030962609868326272984658620545826360779317662405238624086274923544015738741874043111940383811602994165589206602322861126114650624507577606664922761806677532681257523582142533481421146325615691611760310525103591695917254838310132967525274718166764387040810272036365262039005891872559196076658241533681423562814077378177946654585248133439723846546332100199431863093646411358199972634890198755074749933950795980469101808993616414017933583235137305963776529722694767032387588585314853114836047128668418395830340904273800571019111221672096261636573273816193579609917357621505549865809103876020922112675610975052511042166601583401186670908883923782185188668017049024271071773478785185945664384336677484099710948967741161927144350424351053710401080069741973577675706111010222347122116387595264286391711944472996762426689848651947245169611450805757194876997722977763539631818026409656445802751694585323559576999845989011587232734403291305165252233566826720759403128428284962909788241097185153223127320562800821494438001451257764281694979827339593531173621918810685892413866999835147280978326013857262291269990621439055922900665275164513680145189729871918051745285578942065323471274524192937139114695995784113774963377936427047754018423308982720415155782695982311526570949530760134486787641269379714549024544701504597078919476026535133096454468259680861426557972986099286246567552721129044491382537706696978885725395166549263670390560752145933102668561817292445035865803300599237841005037520784810792683487333406569094475406666652134461673596551219078345809794332415776029446058104888936779583812924261609466390632410085246510098928634627711021932896851649849479515713106539309216366099090179483149439070177712660130646828687857231913603903176734123352665853725425454226342991824311521080007762045871462461963871991904530488748554546504271904545458855297726566385084401374559593190442919984715112831989088567618719232382281002330090756566944159199390459400005620991536422612256168625425979130955147073919010915608111348343702554571486136714965357507181045353650894256299481683735318645673153885251339085479726754852111319666135670245361394376702259340020093283921466911276605132928264527004685951030971981741846282702121331856516705590255069614542969737415787833465637081469470512281749370903937314543279713283930309106887160719380516782839931457790198117753463099398439495179602944730502885229487371727190750440843492690732353432281921524059232127960875025707569592459558580322029862854949334126229438430289821265498615443931771489002008918743477939184277146472545374549239247905057193601815503768933657215164604356909055667487606277242513413410744869137031012355453037104355449844526829367096261518643367097429738185858298271607599914639264323984067762391823500052202634039999835943109160066188548376959779590939156859063201014376418025897349006249664672558868466444301123469483501502206555887981750594158195587292550371173676184397906898432462298076291762948545519567377885114574462858941338280522136514695515853950122933605957683085785544143801973002646312589643954426962108127891866568937311265742178041101305759392630291208929337920321776714334081122804690799232126774327647377889098541241537002765018363319113376042677878032411358635268746569916975118994778784993191500188908489406568355054500202525347327879304373229308514076245678911921392548260237319487104854478067488935197090698406953598796034861319887778479101505723193716909273141543720763023778149086889221520062844570913133631942615381296566347823850005765700293189328641614681447217056674612742510049262093117382399442944761051335738295181962173404334210304529204478960337392768305470864219306093429680670759556992030831799957651963575225701877249684389842181666326190399542836621866358874201764257747889964998229245943113338919027393781600060593396485351687152794656954084128098549569314566517530542811577643871102284062779860195164053775962863371459342605297235934238325873195716509580398804241096315484262009944801467360071013012532008777654910639441322840633092998473970306280614363398600173903971562806818073445715549297370351167667305790726814669962914203432774222657780374924500119045149426920369402147832369378888336588176288636119791816582515726524797107136001248070634618173390947536086886763699476042187507706439585963429668838917305448863321867356538034501732365369155665901673144657340046637327799558057206450936069423464666704193755321854755044057649101646014941979114096385560188357113616526461713718857613413102818241175638681261946922660024201780580623531320602071602610369731621117359529515367056410444008082678743422472041288972375871783151573285940587905686551791997168553382355766149641636510997049597723442576441944224188378316882738846900366702593184177187187527828697821521158919507151007770665324666094253778462745806876074536897459097484020117839537826875973721789440265838510910491667391455601922293498256316311175653922544783813077041680403945831653262971303217605779835771000868797830458247998463497154138082879972771823279719836829241375009768604800578867444875921207366413789320862303013391118743522932349008516968199442250774854312597521892246592348740954465493256288073179758014466880987702213900189126727064945112033112364428769407766998220035653365797404987298250629761684638707440782177042778872033395903053855139862714023755536075667780497689876589876120642833077697030597205962158413697777962613861317617713588473323237080410827952705906452556585573933613664167522647894543551791996638836388316556534437029063359782150188609307416169599958239151350388887427311333516591325648730137093373298659570040525469269218173574487031252694845504969675695672471722184033724953364616332906075675887756319217652305192277383066873862159188561322702683046916358601549988122712900513308847981890434823974567830479902545445498413422972916286482275432480735885773737733864307164180699455145580440159983471036295955793894080875098728890473870101318955601208137706120210388394881392277018697515000001632785870972295459907466332072928762347562711496217750228397671029641861022600512089609620121311941965898009774078937526672137752518647064886270361006724802130792532598638069482426740811167072176921683819528639138004950934263454068059967951071420580302960665281990457130757042236257886104532953672125044400190958256142507675704956219592186781075715444067768019240232618978676950935679587249741163128700341601803134427230112708187259973025426093965049351968024983476030532260324090932091688215850734636424205559713003091523895991961831388168509777003552719254623240423206316568430045042578078358397362778425070095391204389942398188474728375693820215730949206590498880038511838889116640325863323945176517304795618953369326873072796363271647220124147105557240495425431127321238007035907476632240856586489991247197093584766023757849284738606477173531326711707907452128442329722961479480316085233344093321714203319134271958002685699441775915464029751834510794640301207294727849668018072342741539228110640988821635536490019262609232898466290384427606285217626533602448062102444991744994646339978332454839006772070255962133059035444599913794034919274815434656130475161255776383959942451852043510657236622416824497716045080520429442294975806971014941395803380854884219456949803968495446759562747427477880202055239502772864417851605463658066582870557294249873737617738491241798100839514320315433572050667650468797884492614142480464239296267179664832676866848274709063792219803449894080061148192481944983342967246190316360198561827183417642807697023580373844215469847103954630897800159340530840453988561890145174805348948151100683534726958417073080682374398926076399216487912312387904488352794700580548585079364920151012769701171225206135251516419325316386494600787058702926395938126089794304795983030428194773530940178244128657935814360984536210768241977169416172857709643629768513027244810002423203664960661466360618069463705566370772155786539560819185205255004461218804239786080390479870183356652991534458986251453975788468503272311773427776034664613350030683958597833188521860678360982308070027121968850713103089960278056264843604811521823047293319703242576020257149454248946523890629555533422242092055041628998989729243270365418227411356164365513676469358568086344447664731273097185177215592647655616952524872790251004795425481017366908669878205900206423048206385213440281629368514388077676987033500648234475977976669138958644127784656560034903803536852573432153640511341956533035110392302087289108228217162660414788536876487934303141276294445603486066297585049331148522608947077063173903363014155477570253815033159554419392579132856820030180712945310738612405134170818666600491193011818475482440429163504487460188344231907552039659517785826515762253484695222916429213754025088799524610954271679210448124875333140867014746446518186965993769636501661902027963379913636595519157695628856332813867788590236128074804465795819533325834535068726375655720458144065398853141828952014134629191279835299826902846819074500046115093387406554592554304553894437554489339848509239713109794932336007128877918726726451871229589811466863233373126038764633041825112694163001018914893364199000737870774306707266440156934390009676727167501927822960696210132811356908053034349621269999755728034700533435846195034389670775731339891239493215483341578781169505718040050794833402202902834195227059364200420801069970805036002202369859818051656469796947904009058837324898672683135673398916156901453199030014500754559634703093725161024739135402430062766112727497548027873254090962950590346416854023141861913126507787989651203195941883881844674929794409571952040681525366463823805014885141362104241621031660420539425347033422356244069286868365363197907368423468315868590415010299431155254059546265118528172627851804632177573140989026312156043809916765894743688083283668784974453492090737927475985640611462997785706717832777829132761276812911888196246966816929381229738054731426100768067557276062938832681475681779246974970219100678047209234922497603091264866499227605496609683804449408978075699266084318082202515477848248934310751326108577668570821000652516676882171817483926994004980914731040045210626053840554885763131923383116566576330812660392536899607145867490191949148549521580981878602845247718290813024889399378839423164720105584832043845470625459475660929464316602811493347037815786783979813905358428987580872561333175327478753666947190083829249353240151125337894288749686848276449693859726479389707125708204726401868109631509566778168950217071919793067979137622008272922584249888175835451334202094418420969907044399422626874015414019719864256483399326353974502912917670179766376171102981587055318737078081003170089866995583095898276730615814846889483614868194447617013835814639847531040273350184739315719516940778389901107752417701014938076562791509424032600578746607920238889117105122536493805568132590846894667178184479577439593022727838098918662349492074979853931240132125713444565105184297479561231741740253560464898061195249666932647827008261748445396796728983969413395574232532308302725597088699040782509759301573082355228063742624651880203556781636881885046831540666056928762988270532726551846495015020269863114483321722455347795653375706362022357242701216263847467107038997376847701980507999275460618621658788173241718845861600337051848561126515234038660255673482765560518233288701227038261740833917959496677588342066118602003052392089432268566204841338810978284043254013696049740231505010873876917220091309453616770246955488752989805823160501210385675263995165789311838885373220929553326233151933951218803837248108296891197514744077970563050035665311022422088272450216670951209025943675936519402828731723045938944367007100210347367088475375415074356785271834368482513536789000264849100703057664631976724054391860797492886873027267960878658752258197017174458921259758974172306807389813932339127317535666018487751394231687535142807327846122049607349659768817712134173188353756302037614847227764601721544492362301459738524855810789642654759121166994078893547513438502025185770418368192863734057312585135501279815829050025451337861674494055200381013282884603692158125637778849238925100527032859184914408684312406943718368528927073343119186567473209676832698351660162810921540195739156468246836718173392665312364684864372847758442710927133675548110965845383156940686841459665008483687498474140005162500688930428254989978889085913306782262734364795212279457135211768584018717215901576452992925617307065572464602035427662854067290174952735394732011261359741501890352509491892125681205309401699935600502719644277210512949651862278524089154828704670676893785139279993477837226391800075705866038207616280885576097882491727825385486516305114298034288063535840917395135404850093808618457088509893436498011464417134195918496991366048999229168129500284616823284499732850184978180585698109401549489724286262932619748945659043661122576882968388070481368041077500431790125459253177873512138149224202328926859046606893473853808684107993805847442612179106994146947247868413569899037755540131080414176021527951143451602309850892398775894448757810139034220949047623797219975343605865993941686755003663474372453843446405427018968553333882838864648109677844128976662957722236427419721467560263243896634942951484508657317371295193715426312630063451002216350620847617586936976456998310006873697218227758108329162903258144033235250363150446055799007094644760336980852883176390511280555546380011208687637070591449091099485567563391055820211423543241429092402235237863648863758314027365343187253630452210836067265840826513267143334154862400143612087148907402104184101941711159889680335842975841054322225827201447823194185396202107866037487776392190875208768146938918985669818047094980605809415998835904470768981528595801678323042047830415064104120014784663528874880248342891949882327436579143134296120305629775785849070589273863363928910260970485831213547754126617476542533645583301234096985329464938592907347932458774440290261322216169334606586485529399389464489120759610152910522774761000083550252483408831902439722661713047441008054416197741109437323921502940598694001344809973966304280816193408955420837139540065723318187613903211613710458026422559640595105046553159460394496085730437159708359163791028772258530431310093095836664277262434169935639437732332743856620667884234962894052039987136768688893870831413375859324446651143575834534886382610501181351036178653795152075859133474913828407604113380163421794700649081238937423251986497074510419323779027773062304882820079975008002792169491267563691643535191330131845557309705382341198500233848986167492991725277241197401632034926802371071260555268788203518197562204958031990654573196623836424348999078343894508194196070194797187189796776244453162990757075867063004464059985405654662161244077040944551777720384611820334355404734285612040703829726070056139134031546469747309085908077609167283193283043138204701772844762203119152516763804921326799577328656938031600932200007953902219932596412365386654242823706392393072723045979494465526289113831223962519381941242055636117698169533290063434054105208758234983603443649568139695547320948562280218538407162122830277539787120728015150638828187011537285620934926308641314924637194619270562362135433849736003707746297836644269345233229024028999507701923066312269087823898369255096286438757855256572308010288693910766290135668238596882014005581268732751343987811627104511055041529505204894954406714798057998411049088415278994241712750524650312587096901084941276130780642830615566396894319769607883153444155825828112202399764691233431295412596873888329741905892285277988888232431160569377001468031455776721144737626397558862958144851827737861148457466390182550709176140558464811431801997930494777712381937240964721842806449812659399801866109556281176739745900194189938951409358621484149994029222956667698894985617702628869365884682637778703202832806397103713870440826106842483073000786702785807072233547277691576019980640430402904950087320687655533666412514577017195783621190383509697831121664044738176135550354246246654268099891293754249409102389475828449983670549731954036586523354841160169371578835248430073043708577211090034481665786623978103437516131038649379464314036376760139662694621824569732471471205057409598543686377727531570759357096039354414307129973431165618358634741148902636563456351224740670941054596340254257729688266168788492847463580223030760330480231859784091592715488597926231242720532621308799089229832740384816960302921740473664334648340315822442317313843265974237634404792676268388544368497209796422126805975441227733822861814738664598406471842165323767444111198756342758397464739067984449086844716637282302473650955901961651982315193563275155872346192751441111104895358091869532318419278864005492860373199650706231486005511384513801759248052449203578471584174310090474261925585439386840249038901373090452577101128755759297219756241851867190170903312462593359399685794952689177870129085423686377735415973117385320195811461470628828468265851025907162487511899791873169398095195641999153558512238038073228615929366212888811641692610592751711676858957714995027512727789935825643002689685674822875260610336867646865977802110066217758358999305740107301540451701688110984596136205761565469022224442342567790668802900818824901418720728715210353960297374417322320613263165291241243857263627828365961209492879257775088597041453256097712030747181580915100504383475186770625062465812106742508477438066694766410472957086742897476718610457409332103303981077073113487913911874918477378822811930746845827793285273890611493167909865722431348164853692341062395327652097829022215461101307214691967836841710539368873160028469283487734113143309198393599447937153691449997017427834384795149040769102769201680188554064091285687832096718902198058587491676536769273526686980266229105183290772089506877369334645715216821379579979676926777269296650581544637474775256485565481728566728512585764588932734154279844881243536612491771763514601960350478068695745225487424959245950726998693373898605952426152626292337145110717628649425016883386410485350056251545648946895306529529630951429977607199087276946049322993418789385282928370259956722957347208506753462286464255997767454896333227733289352930451737346580730593464311117395769239349243561214091296811778212053669175695218364377147152024738126635189127045733778074165071825621220270749596275906355998298287228807005479862523352432788656512205879438892551524644029561251113719870946792363720668368962315708596122245937266811927301399001075197167919800509133163996759343286306332114472840123704618283267946242396439250068376985902502045543065843097099380112536417994577025975813383567788166875429339969312715089002561250222891509217680301885239686201644458524379908982747280416997877173089122120428368248013895679527236828951255365332141983595922364575280525647655014206055166037110724778406749690113773484436616369995403608110838733924663907352228503432496950732155614719591653282092297739290520192472444553590355876632714901965675600681084402860675383951426815498614990176709035528445081140627763277951146556493771598161681757843545023137489533762183373397915899969096964883320725836299359061580689443692004787297871020099651096000590270757524021603781390341988698871003700339321127966222504370877511065014829800798491300135665642961277629937546891578281012120083001204486452625085102780073009182856360607038798476427090842450804089341312469731045803712006312901574599214169568442076928278265312281729352704831509515516185633493213149936902685189896963771327098628638259230167851359595356985420249753331459503708947162684520312996889489851031007074409274131922966447797037283964801040106592961451685827816257913252880323056492580411262927618621016762809992981496941710982015350818569197123890729641170488816946612576482182094879385887463859203616437001531737655681623299221962819679125695855364714016762218488756016539751798921896362676478469681683150463724637754016643740122603542334084115711190513880879350768800946012656575152364564740983760936844605146631960018374717331420465526477552313215703427320151302672633939942356752862998138310043580571584680147664593655686785472410816611921204409922647778153666566552130764348700158894982473330427020790388000701234076243450968167377220411412339939302945964695142453272930751791672766213920121684975783712282893081361853493634871622919828830880165820928881999349304650822268815275061061272859531116252223467584623214805572893448431227365411471696293107970474708431367347575965989516145996503309319294345861618470674011675643865454633560163553580175260248807786449141279803818565305407517281093299853169095256220176862396489977077064560758402307977254719886075624148291684826490163965593261046866674178615786057697221506718231574987698120371683629200813271004885764453836450622934171670097586908966468402258201898793810304231229043100688463078231028084784779339963721163023487409785053286999312628020050635461428187116515014332059031664795248907932186660230911279005238560912687052713493670622352853585369583891965583079562355175013435156144511891922090718984630516656096179120040752153673720447247317652220978986659738530318100645131466069648961696743826624850926316680164351749249162671251463686180334623458379840638209488512746453725170061889064951259001882766803489501650335707488533823669185478069025819376861751170339736786226774919445267352635043964878225868339065816313444654805131940781174583997245905228594807995763392908253241442202615757158108853510819020030183696997544811890204085507927849744107947456796539091623365468399808146273198553027639781040260345940431601162434783249834062822627274797395117279540647874519615115642588420856268769551797387580779079469566958842023083429998142636703134571007558683930417979524783012458941122901104728254798397900424898248438542576687813880995625616246020304077576361217654076458351666130751408222411042559594930911511626200166483698981761077749917017054465369276878217847365740189770316078142848178688299601803544671093474035647143853924460036441205655610314830496518749782786921607884649967722207646731238946082997489681934667736462496161240424111631075502218432036894028868530214367410625977288069661619039019812740498381218127357092984672408619958909665355735638736136244276826170223501593828931514404690342550401052569434947386838089459793057686012694098418156244636203297015635415365026064553629371783466853710371838282800380580170589019548879791351669469773364774132697806522135800253051840081659603562310737365144999725209302624977631361652273492882790555525725121712123024023692635366369796877668481267616924672256155070745898184723135414412573161192790259501662441648001765750777621984447856831987791090949361259268595620040641045354323898194344139794607306589665245708811057357412425190432534888946142072265672000079008694755831554877142151253272752102382028629669460765298314775498523578998206745702080428842178021482329877053530340515889484685688153368318221811480527983598595626092974889274814576455741010792288585772770741811063781362157847805495023592868512824954418714997155102199636018272543581535007560487574906795914777067746196345693611756315912965947805588896607580212026327913657950951471053004848676968030960928986116745375541366704354795167556597251458311370551129442629472497149571498101983840673785881435084699783315420310839223149645518709857058525860578499530463249295411086252231396699311168803108754362757804353454273665259297163221857168874589884142219217719209449448363881526098073444785171490421938159756523266225474696974767526262922303254775552747851125852170253519379458870992351462902672714254147742325774828037351272647638773669973847912020964776216895566285094080507771041981651679923246806625839152330237579117877085455952712800549025402184976543542019104809170352716202475319246666803272421435933531153719086156987361312478482240392868753162590455525880693192771516810863803882647240844632235487172402148107968714268122898082345840598144656701344024279549344544771775074584439340701419502699194356697894217535969206313211633237579411101870125561032823681708405395013568779296801132188089017736026956797353728255843753565326195878188630042468688671725935649611376980180792040825382480405278566362844972497508926936788924572201416029264815647504365965400985542686697334279527191360910799222695101293259659746262297485669698887614803719009878860836285902225415974302325754555013325009068091994525316838648920439861704860043131212764619145267266898904866056424383409385064868395784681443494382072987304236177957794257727621050905390419696512196104300838816734821636835418397686044765110118607293051809745904861667052158853918616347206862677616120886828026090122861119210710944960453704804831390064237793616576446704966952826321858261803923191546066084244354589335445157723680789189684279454248083180300341292720664449556695044576085065619111595439056732167014551854154110992591122003685335766391380827872421740963705292151248283282391185999692045863758466146541692361058469635138958997082181426232962645470993171845576020027753082108685214606649030756146698017521289954828373209618301803652917097330566579009967002071305901952060241387613267953001425176783293121983660186093619033722160216891409495742533435870550482066112298305378160055381222126492282840164138445836053033750077951043350068338280786924954033459166849063489157329560524397851329927097376563467821338379725458829088605554482792760800618276763698796940865481298717880917465625303531133571444040833446605875689554297190192940080781339902397207614464210220280214838458437170791113272129164506979838694386900065296393102272162606708900450959897726328494488427594299129908033292737578308861883234400492323359133327338693303639035666704938913388241648550770895900273035117321326710178794789371591997280113148457764588265840165242579027216014491629309186400694272081440049694314327245626884771282020852048666152969844066677996221520895899560063505730158508227594525118112116410602669638337006240025268273001306884620195496583065365023669139610656373005767790599410130607238800601203942278461641615629997916708070284135308949338951089351659497492163985490716591678950010459561983992560704058703258242650746026319859027316904532312216756364525818578644377470618878205711814416687688850301742644795234184095292532045538559840272797720594386561945126964271529853435603038227373029383761670837441116674322006942837229530491821320619490153144020130468458954404786497668210101717630693564757161826531890654873294322798391330384711427946663128228717534851675605150765046560427503125077739769368692813592502275880050385275643369321652703696179862642513152870914337930632023247104340963728113737438022859661955894057597472707490748545910586795374813801456202086582962491828873960766167796608277133428326604995364218702919920404385341668879879035505528183929257053989438465913573465222996562774224039183059815178861299486078204475244933161516942652346449254145756116021629380905518959518259475073735580048183281831851069253455755626473019512773013129811558808883326340283680407504801592201335594661062597591714267586570557953015156230787418304781200789614593606537494752970115922826330921017685119021265378111470916764366560517387284937980802367760034471154200974215100236610424354247388266725438279542951248135886097558492228457196898734088103131407868320507284797984819002818641943293540518685455835548829240894475212457769849885771924192312130798542111554495859608623974301507897615989740156747772234781519730810801113521192965076393148898391350251499576606995827323668029745604593894273444636192992520997447595916462453684239488636252429775816092957721971779455637915769421711281804001852646001350285356219904101176963146456729867730168002527931263668575772586177808154934378285974362198856423512217287604484090631001943081918760887732696158460501047638653090907665311151222254260853482636268742608866222046318642344610763443546147316732445277905716888092354672490970494041881878218877565135584215676743737916017331088724379739066668741076291266392799576542461570144357720419835053005015706759525762477393548077869916670491139791333766363379428787602954140025954542201363566105545581913305512935555029981121838451443423001818335878413228742870322802803515719462907005019915996166070913922651960930392430577173632154084957989161437851774601579493481368066453136006182390128504662798698983263932046467849913436199115289624428151699010706949922645218022855810461442033217936246065734489372805051653460610605528936526691439803828933911884297557906717405008616153443328012855361947285288001669981144782923869429153973864509582104622380272712739346405230436254416412435151548921676763175640869126041081713073418900886968293439227759333333102883196489738953978392458977045621926424003270467863987632314915911903959024523681656375628875989641283320018051664360889239983989800613602903591399621994948658048439794141043178082569732519017636900706376590450603463806203402835426166326770317150467335878247373643346128799495103176602191375232902729015797251877790038592305787568897802437683533741636207739491986709216136014185763039276492464866641123477874651419857891284653275507787126245081650114510136208285758796945864656525523370797078142143833627453632007027070571238258821614941325439749242660741264863398032905877521426523003462658279331466833641752387071693708988272442754028276246422611102207943724677424765623276623045420812864600044268307997644318951471362071330262077949627132877141472104208147257227894466244117864931353217797953464236519888294137554554682026376710090728463572193489527061964179682766574907033903614956825059857418051755630196274146249159885605110399478716162962226072312799007970342285575142042506578198508811086130896807430439158474586185350351583065378587846663115068963340451927645000344773200423358539522922846505526890660140923004140832450602084958160868977437547661062929982388540218740674574387013637592071310221030391771192759940951677435260108570835351772373065993482048219873862619002673490833718485720713521109709975203251673302187790467971481914257081987039382760901202782608814602853257278795165216434137736788161209799629896161481746849608035437732664598149796560862441582173814578818385302785983356240813929809974575644842463709482712736533625619999719256510986450713543983102331417089109612344861823489164502707117749725919862758534289321309992349713211058754965808397940474306230577433725409703670743841227670963616353684783782672793487103538950486320643536859726573727385238426771315179280625460268188188253762952238712910845187491936157058810691541861245898397208894148446370057436770197204463589882643610097071220410444580902444873268342005001959354758100490003942412792597729106458278991462676516924154465634522677681987359479455718379137540646050167073608067791312309287330600636506351465967812112794703677318521045273258447542593125954270835300284074172953087535871170387804465317736585836586893483813835033943532871742645499029588622231470730437421096430159095172113816367254934709736356156147569349388544493363922857356047724623817878164395480154665409156171569100326208952499960666361695540942282862216452076714032635951692875018502375765641995349859513081028797527024942877610484008528432104367283318755154793883947989699336144554528203814999215418522371425378889389444325487084167893626379853832407951715996876093986907995544799811096699419307995313777780472461460396607663553497553757756569805221885931988906825892014454083066022894823066327792712805838514386975561349675717456305351085676133352251970010639812019832258451962435556895750794941058331134824740245350910527547407414730242619181833508449076435754580038470322329457198123397265562057596654309264021373431673782861714563845668224570968061412971468535106190943519641102258543718431223296442835961152895440812502682241578793041861872995623617364314799580460892009558758622133491695692830376666531613759564858479474214700269991515270163579330916382533023059992756626723089771949096243952871099481711219254287997069253318192485415794781629650094901325050604602291998316750210437340040245311819234992087120924146345231263690985992032257674924232765315176757660717322384541296125860215444922593991608710639507530571478241687896992338408798121585108362300422382703316019412967118306743672489478718387896007561656193058051619835132865494193322936764007511564879046257280880163932999912952829807901097441039158753369814191851416638612470519838907568168394309161484371544912172086691533048479311365226703359326216801048340629340833663047427655886451286580050164444918552907021928020943584084209081874877696173266581808233869239454468148029060163257482300035069541547789348423836322765523094251831714008606968906551655903754744075379815812957855242272719776344504602366948692685983781315075212494301082777667532236340882590774601834519578453148781245984358716909190857968264903770280667828648367929762454933592804269532129859307000185134172798286321091581674293926385088609701714618767756151974963695904528918473832807042441117958065687176710084696534925355330317985025067483120084924642878225552493347756870816523360759004204765180589528123558457173332663498638681221455514130710764343464788988881171277712868016685882619382222382347758807643707821465629649915927042478478334317974426922321437321409719004682623191407044133567042825289694510257048468584843431756299536352744098713391557956708682032658163274965751904286047923537250360337719292279505959309755854437455428707657545499816192830441092522117268468183813504598349305501712010965801971332512406956489271927459936975063667247160704723111046816161240208231544310275486057533933867617092806001144405151300221646886646127107074559436961013864793328301989854156102338549961652230455679944900831704660290501455927699290985238797288050240739179224116997009978556758339399915797561536132532605355164391820520336525849808098098456931504701360867310630641896486365611254875678495117980425555969893769778228322854195698708011941884726520687517623129160208083595046064009949205631536844084633439831571267993877481771841584681552503138750609443536555802015809422548986208589287839675788556083842648826213180277377285782263975443653873344354662533190181832764328843279329325923903390015542509858804369526319730051467203443380263682124149480248091035528828813029337794298310065408157363766783731172939531578858226001966992146243530874750544896468491449930983204252552320688314896955095296393847078915329235191688211288312863210595089324673349057550461490263431037994219728315993605140567722589145197002828356235162511025906042582904932022607977866559611422507702092563003711771608025983897448084148950754181100488634166467526534986377109503350931378455993810375723162928364600043927090903064844960115141851417685383441042895392117676950129155867639979470859180572626625092463821867954271652608926210685846510117455295601842080588147718380462373907151900300191834634254420774174695172306719919363950270078239556207122252887035439651982671539130331918627828903134707882837086234340217366338865718942062812329876710599083775494226060862078411889959636636588420349410455455931268387158798733877457260003325402154155332840617861232083712509474896254489908487630705678276030000680652078965513117833001239617245517530900472215008193151462968527598874194070697390247271764460465435640301766742897962615680798081045985845197499660897184230348044894581899521762968160836726429543731367712293768354913480823919975281172100961824017083777027326997670342977956308813443059779719581209371093405582149615220655486479756589699883260254182588845440086437134218664900968744289491161867501705507325606669791230588055198666501299468553497615020321861990713365152631750813490377759832360224588849326336803259270183912100046936844075789252330666369409990060969722857207545361062317097575060388006767754638442937334801212076199393220225332519354081003778612504572728782349109941049806623368965723406318577578221047624920195402749847625757836781396136240094157495229345218091950398158484671853827331428230616932932660443671730788075013779443420791744407496326563707977428719593792608368740100319624355940051772262697659073077245184017125269092559973400421122035062315707894451804877081424930955856004403839980462258321790690210088919183387555618709171326028274094040926086984411063881568020169462708108173776008064090953558982115355818595609416771263493077256805775140524376223075113450360938176820537798323931723838747203589223454265684514681516866108070889251062400644814770369946951287991093009135686555094307819220555965345404608579105408345054349793105547141533042762050752313194699249905939415201900679633640341092541074586566607768964378150354995407925390260758402597370913687085576016446325933239629457513297086151453847015700126101842761798697094319624233544120789853980577230499139429401512794835744607190718367822324118340782716630578576290338057128944692696658128545572454730849404082137089956104302708295290152002112476396301675999618181575255276852640772977138506421518002704949421402513130854519533202257964286272422949092926559424965735608272402719050628191423560188646175273265519969079954224858586461424156456083152264303593641703869827650676367475311713270796134554364527548590628369614285904528630142642089952816630480006236148571361176437607647075660190672924419899701362323663951666106023070359543766558935747612423493746962441824025239708573561423306919177869208158659928212547786045290587547080040475021142071631571392988886022040667284785785605576575283016362873927650170233555694076637345359184252516600406867808152783840080318157296789065660062760318982726360467371195258424019774025954255015733987851277710441811806245059293483864712786090381218854961823784142886414559206112239353773197868768108753081811459933077013464447103334608330931333104261029094876810159792419443903317755380804821718947274271138074969352565707378539728744191241917311387304769714222700845899936755753598002731855759189653448387287980087738024336159128151705022427024065213954361492221257952933992161160117192738990100415283806221147394706428523309960578669914622108309187716604737885640776253054648366909580932485612629882244955560470950156900140999891507515242740168673233908092313607533686985640877808809040284640722503288783993084448524018729913574837444664169251662454927710948416128325216232464037753715690127890361626931353894728237614353651747197747826945692469077635771177564749890086937133593991164792193420907158615980031612604933163842385136323565799016522867344094379355755143379432010289314888706419825161881592365263021457586162345717048018617169877040342191102860897459403814207639656678856630549949771835287439134725414265356929465778867269666738428311269372945786864491218608101274359083580661014103053547590233162814946496802909989400162595847476248703357474995116217531253952214886651682981197419955199192481089380776095245078482138241129601495685429352598088367757239579886783641321755447477726501363185660183548644639168627167239098227576414323097793692563938175203986228860996266416857234843725114676205437338303806438285105128875168736938985409519545663087365752702656644756477408171094465429292893711872271192750981396909968454609886031850671933315472850952801189345746465574007387581941150785015065396786448107739242778489071247897697416690975931440095415300472065616767831918089506920445047360268767121729102616478536706229175000756286853926586657117451010318228269699657718521727793331285575987026481858539708520359807875231363059917280998165275185842829076937858710159392722419926958830561876138158616738672708198241973024861436203753904033177355453902757673895361127463025685389836063362252820690112863601680994516098491467664682168101466066680930053291697619327991186392903510306464631338906630380442478584451796696527525540092160520615938453833250847945412052402661629437683692363194818306183909739162470953262784022188740982348757858007269823735277600996315069690133648872738318347773018138430135757147508154075101340847701873142291533007320812590964679622781282995439007251215608799377648612294624905729632795775393098786552981801553389821799494866333742926199721376052564273530699702067996598565065135125684435154767011726959449886514754009103344674644293027779975442316095877524851784401772035875969622576952275169567386404695433246865426862246251054532038156367073362040469134971992033394271547441400576597565977888303485112065942826893235563697288316023705351988711458748393927673691414072199021802869107633311226057513732560682171026091982422386170216363533077680777058243867164011755259167858850193829243550891175072859200805574948481896761331612391853069305418275631810533927028236202641555525959143669582339898192785016675639534926101460470505751520015450754224752550221700334767752541241656122161026046489380288785449825229652102872458725634448433844725512783587373266052686091458915339235195152215076263550959160835337561213037114778329185151549416443374074494595553838884789001007248528604585938663468927573796947965093579947795569822224036373058600002704319490850172839908612955071726692731821217775704395878094599095958072611105370452275812166164179197605253593694543711476204930364583829974170204657708527216182384375198538528848863504353460083513185374184291996714362525551465604833946488728293488836082143826703879642959100134440022428185891289158601304044305116413417884517307031297167941568494493746394816559371523769639464695906980894635293903613064142870787472539393239991644339759974939676467997436544146940667574299926117221173964178668055563295512383903700586104372819622563517162722358903578984519056057354341776133815536791619573501178837988797472823650928414671001994615738766205222235225574463319684937494688428189967792319873441660743287358149793116046430710754098160159476649770047730136224632997769058384864541848668128639151956592120512480052734977763333607206570159842826056696664411397090744291958657217006174558091962809065983307066459233167776726270751093036968638200636508495542757349247216258221623359562980924253134404341076376056586219216108512269811450683730571506921643560631190972784376836340978886962090505132319786076903427411456047700494563707626661602266578146871505693341220770784741443378199981657907792256617657817228682397417681570444714448062092919875243366862462595737970790241432332033559324683835659488518656059265120663732837220508940468329129691397014716771931537902347343715083305695862155548713714044382917697620202060777132588736187442836547161396365766378648830411708803669652399469067687143118752831939613979043004756256675119591488906838388927099460721900332988772393488957965883045693424833763288165379293801781247025393518973248851064185658662372260553385863139311127164821482357854459050313125016089570493839637813305966174842308084721121082656739055227959649608863734003304980559223979171601965490491236338638278569676902407944285055663754288659837970577038230020987597188393968891299579003524320505930064999468812820158805748461327257198040840255825164619575730846357429454428320055014099714412078822802566161815436766917689357780905800966457150887053897049137721703002325799240118469755758143649013202133763670779410156864358486264377182875425269574260193244328294654138480324589240668568097607027919750884983763382063464480027086126101471491677211748780268049125843477063341886751582796695777030902940493246805570479078888849573972733784548121295369022789612162029553756467677438342651831993313132046168676549315103374299161654395002631229891651245460867247955782696005670413486915242104730882502900574727338365714694695813883291798801118959835033565712278153222723996427601721793551195653649658444852211283837698071981734619970016761044112926106693481472929518412166741540992125697628008274485069868787158860279587954793906703356104513985019763167241436604045405616471002302597209694298416341950147462214845914657614855206335997885455353068695083537178520549087701735395410250492779824710352537344210085370344813268014305728248479358696722284496639674766148742602221701595696061717020332532683211180931685374019242318572383462251699185024513882580414559098772125888188149605621841398872743197029625452566310754434673795897218957500505248400600897298004557639378751863450128759308045025683567154956604473067215965649069364869650284108843118761280274679937171959106640054833553004320149075288002169525120616790317293703550598145870026753602781096258242065511513453218569845802753617889008362338215698665433875190773750795016752482248872182057851360788343668703559846154252945027484402249820641600210504493671078600955485998578755312659854312439990172672788875126433545758623766063330241971380708919630436505190826541314584273263404805212711484122619907140815741592683550248684330589420395228108386970346060921989175173937107524869260216331967601667001785525957502046941808214351260528804538195163701899739513680907701999542552108657161949866423464212221048843572452524872065937500321192296872357312791025067017093073732044518257716922705577463645729903324562135026605623679057538179057493529669271496789405673440080157914463248276621387136489098735680221752441977311235401029351752888259044603632328406467782484445074705187194401091012759323444886776229663504214346076307332843628416386953110861436659910341783819967479665594100429425015368581888604227748914786786730110910669468705049672650798222278050087849515677216686311978202788569845291137099465733340967455357480741739148825531659790969508593023831163109508347368946162109535422395716592900614999709281835643403930337574194125715741631185305283083279885314415164730104255749114825337391098548589902889086255085572617115882837726068781751542026825710701253983914378935068608897623649293593322410000599244521154325537538810351730361012715242751015980729004964666520287200068186209290103662720538888005750194211861386477123260021089828461626474733737876609247403993859000204065241988330995735620595238618107867209906345639612272010094179964040314544282933201856989613572103386187343674287145805713880695701700098468802768073789310161481487899181725796453798366814477969847967818127481665852693581910748124228772178640893071037708781487887732110617265909404156808768651826312590091144928936948856895307062201971183659364218459052799171843484149379612138235521650152307719387183577147690023178191677686818347900894595381852634846070168969832440367867194431912626439495693719255040097317453411076404585637461491647061999217925444128618312861472998472964904215826681278889913684571671097035148693191351342840444209014820657522861955698353144806759187023089514908101401117898221605686851281473181098808133316601475654960340316774812542823514247752757664529606241961366843357245663916099992612899819062193844542797989585386226291799808698974128124394077638007322007610640920914106676354135937636935864308229698996865816010384011445489912005087532999834147416755260029003003951594299357128269313367235910254085064662100235362746323243163214035440213212167873303199866258787010665971618652121463540661611371891250974353568873749731341538887635191768410515918580683824821691576510072483743578499715315532871157316351340286758473740172500913952932079945207764893451718839374313325398396355902684374121477060385210684924444854579610744548242728068359564467135320398135146824966696722015944438744669768028649008918538171435312891981696125005930331779109301503100270136950917578388803534121815974763862395468329497000012037977839143751308652448527719740178916545608654515991366835645468187280161717945686871916416499782353290224384039607710975757753729568322416080010352906605014145852897241920458375661691780841750894516158259626646975020328862132976202810918786346943784483889850531227549329581095754297834634722963362907941614111841955587165956574099186693134138488935849598882323331555451716482219168566632270988215770642004390204729175138423531487739904763454382269410687691804295961714702834513923021430272272804951342636714912872675737552512403729938160517058709288437410299089022126123792053480512170274176514579241326904682877372630129328295473075722724787210632963492813185437721934903908699806273209939933726245484140319812258541513776147862497550569374121278866555570887903120609019683888185254225920399991788998483645804073536985449748367833541265817866804566793183701859902959041037921760540583565261752130513453962762218202810446875525407763791615673060993380504824849602635602436797881915757891884585422466878057928517644701973096848997967312868206510405189917569912903158237293103781968152849188125524679348885875340672628955521664879349135771303558667418964711121921867712996127361039774297267971936126931445218315925648189022265073991507845742107634541753129000025161372661168511556672726591340117764922237137584983723264625809548327596623605692055189733101663379335362397545118535042303240890077996044653475047529839190768527379212193023249287431584812118917536368330551647671380630943788276972688552786477973966725724319306256721130832823051959426596067412741185259045018185797904793696436138927606482642756802092575829504992690096545981335788580377912884768315018056324956242554893453557489093529433082244905541269117130068982137864946490859020496602199169919958314736016523885257578290865583555955133487319058437141087835908366050966694804545183553881414304674825653873882282113777597815514779359519991585214727377573660377098616763295785250680744944372184794015286141644263124763649245079862915208017787944040282159466508541444669970343462229972781721138935873411118847683719030574700997231466777361983005379482661284462865920967877602653703262099048448322897155458498621588201194170619509401491765176088359386095742319776977059220694926960391223832845313729511383749601205895139308110269714483251810224101169205205999641641318720231623808472779313948426010901576475688911677012477016886248507766317116307867552885293785984398188920521515177985467096366658491091895721203890913350829126960167620457452954706669094701021610923009189246192639714460021858761253638824792731975061210378926287728712538989120940718718776403254837542358550143625775977460411251835876950113276706302066029832223384339423768486062077380699960271988530872746352296755165715198116199271634958979648830295515846255103468475233620803997306964876964376001685824931693985373764843023866532949472217714686350657854770072334252608374310576196455738191636070341301343871504605905474193629781405782245483117591933420287133466985542051493067324509998569616866295969644539803568228799337710735945955262924774821181836432183782242919088878109805350671181222466000698252791898490431169671413404136935431651284385841409890553921121092233903161505229276567426848358707871096692613337166798042498847376354801948356714863021963021998834504390709646138688532673861680462763666736561454292137603741582946227349450692931512469010048093225878429590401157467566616644907468536661529806871122382756459687504569862133678662724934788930890794497543396047907647996260372146007480119506559617388574823068843884392637818892771971064509743561891635940880629703910038816620426566325417192788049749939756859363597643534217745287728394526929997299337271914446378054350261912626889989687124659577933156479036247348879710140495333708486363999510291064088911200975980206152248775768138695682129980430186290369175159293298893046707225121349012648717872919544835339342553974122029075872727281381018841594847338460976849232282136155484301991335570739695574745284576732114994634956933788148065508498162444235977119838145077445467560083456529090706534919870612668407609706719539810483760243391333829330098532570937932825895806433445252420285374181464689782747033825948821592308930414830170947697401735311898975144848172560100864139379229183035515836879521697495793383423998602508697273232682250336310727444383220742916315432086785025025748317991500915883492744931774194690257700249464305740197932202647481305159315133438708015814634947837206338466694801761947944458792974025788735951936624015136339010174255965783657397321875509034455259438353364195696597433591744411517840422151738343115644711785890945886890285197621191345328247938906865212625751609804253655549002846985945140679066531749459587492749981134045269419461138271513212481271908878566070255040872590487823845189725598579387021600564426159293519439182721812804202656702467101826530702759649358389698866290566604642861570375433873766511029010501171146283087011895022070815435657550240332694109696408697115353542466198425901980539138610490542684286168794588774215071256891614920642426333657661360724044293282750601959222466562015554570696639267143963124614967339107238385883805492979607008849119532538653143043391763328525671686911032308162728857146749625542040745864491284873853313553804420432772368331265592918943996324825062200460416484356276752389547433023575006303080925056229536436491904754275063523712953144573689215279085800360735531156311588664784986206006134227147821971149668158005862211263056731538182217681609023698651606575046917306920129887414279614105902314782276737051892516737930980807079392538755441524027930642373245952233063741726725813509455093800510122617314250161457930570788680030915867796105024267455269746887703408361077194270592146463006134398262294636484437674563463085879751695333201214580280848056102352633075725261338672798017386525586484747418308565513505809123094717272376469255856883555050188147856871822815660698744100991158165386557773746995971238792492072807330166456342004764509183885284929935770251037445329359693607499456060593306057444230829506819622375630165962064101026440708232156765636747745151504065268564696747423151892338989375435893563365871778611088330528182243481337028706434812607662033196826678122500238228953959409080873465608434736049867181204858202576941059797357254804933591789019853614064217801751887066288155171657263107701109151927066609631247592037802004107912057639775015676753900523545745810468980692756085214708086165071159828604329433270245472636214430850205412629476951694420901169972755540667238136065014133927358995184399740732389121236684499398034754755517758529342230110470339132739557470889539857445507153045763522170962664141380930505893975988343604003713374343518306406109269400482577616113460369289172022105213225464956596616158661107357681179735316096321272499193612843086732996729533571773233264499253718698260968128307488046182948623350033787201013578646823233415329330991497742145426378158531514475181999221864777429205274571902562493726851613619479195982276209794133911040751028151430529280322090274190881373269866478308146417634719271122668077475767932509891472252827187288788050960976397793166274245615861923561875024922912360766639505121581916957573610286516969783433952079584635900757540044855355640460475693175341958879487949339832435174624004668142087319023071754663276294052507478513426072778366463278562987446087880405509624623245249763335861915759931796654559691500787552957216962637727741657992863376543041381832561622716900674056430240512936627948018742716353199956298556979913829749584117991184995279968669719222046045661939383449892425622461234501594971896442368842481192997723879699136869951817756888898275693416626232425805658900932377469936984976452038245852396200319609049654740692658359228376648971319535368840465171745898141036818270946628892375726617232278034531837980176478968475407687767197285016627186700882257335371739065836536706502889381854999551362348615198345473874308725442661414569041749048140117222344258328973928254143039382503274102494328479080773188991355043011102732312281102485485720159851379933775441407245480362837162570681531172267093304335789137065057863107467746192702154837836771935301182315620844687650058520046165749789565364659547237036977158678636544461759120301633957892415000404776792384915240129995539764370679442681985039881439440882468393809302064966656804671186179811823207690754531288709142841934263031263477475804652580034391889622258406937675575181588323751078887016752738252940397188097203505010219985038711782733947990425045387048698914944769498013232820209512942794447593765345176353863952737493636259972615927096062258061500973425620757242787782698862820970190979151485767293515945808292838122566443600393866199351379868517003951520972623943096851383773291958360963434139514765111593677313134281547320842808045342767602753126802484145157182913745691240984161607516679176867692246105675274497535301007479491907797333089312632150015055525958021326786547724009120827353985590637308520520769553054685954855779612740908386803516960034783497515572663287694171888500384986485025187409744060447616355320627006994336712413346737162339899295898524912870378918740625597838969233467689479204350818765354474868806280539227073934787398781115663123386795368942401538608058497463300571931428566425487068987455326797577056264322956610848855823253174563229847443824068535590030602554884326364568648906293063601458765935435897144945857759718589812505234816803224815438322671638196650478579267567660270434940608272719249936284604201044491750561875607246628819900878880043993025322591019713559233274527475561811241270070851582105422885112029708226746883865351560805796136053629187952050066346039243348758050521633060644726108342760294599618818545498725884187795743170269337075788557976471222338148606164832102665388910514801737563026355853515802435481098917017322179159469060390259892298432776041641836975620890391392794675828767923003324608404402662267818885164163785401445199013428151822109206796629986775495627050506867501338542257549991747808957464064909175636969672191069621013942662101137447962431063981764872317287983312631718415867137180219939138600356007657190019815173112511860811849185431634592203246531456985471779019238287448977016701374023349599629613202207843942175064448639243661861386371168315458883089979748969685629993341296677929356487030162676790360435106708916975282041879940637711863482773032396941739255389531021565557826764994305979110841889691985692269111087289992390794881740142298204715966810146126747570473799212673543687216399030806439834969300476729737153292749459217019879143937769511635986033169679677276536289481015467072266326029571465140649130454283528053414564445194729705052645900894953664397975702660980148373238411816306614782600689468389808409605752115897874811659001808852085459013046536642579458412470943768589444018160477294548068042092382565023238445140393183040525689167348078282183192187514156384111536288277599169165014680158576178843201960272704908031284597962029759598737231111278981080860595334498861522684435980429392385463003124982358594398513583262859445152422885948956814400568514286207505687943817312421257184871521899741181163179613037147061587010208649970056517071662064746740957668107986452138668218112114580496448470661766595603846278866210842347256388806462514654913779850431736314100098621030911844621622306996498915269827469699712245474690192135776623841126194805229767453196853408315238225018227375292717848723367038817017865482936955763974478254291376977829278689702395580559888807749538895843691625138769936407753150851990989614930772826406461944604271957350095068016944513858860385407395233362017719071053001129304193301808865873191160732739726965893204512449645487625769358127684209945459730454897273650829402468919380864853423477767155221240996464919868425325044817193165122397803493194268592897822412246119513449913838174368683876454367803739303579596555466682168517125910792575058062323104518819734281887163680215982739558737542396622670803403159152731790462563963483489433969769630513188983720622732658706069798532424106231129121171216394738380326806916254959750595417587297524065708860483980063318729880439060791158298996324075227966718395927679595284900069743691150989157930100053087856220136888915943581084486582858981672566519033512416577524197883748252022284654390880815202582728518218521824690302796800128930274815926016299588601011138630884136455998681181361060929134360165098117091931531414482592571040003642317145730691755206544934721631662725123412694501820741771472838964779242617849591618806645463181237127512023056255202673556760442088445140104156364254334672819855395012019017297413872319832910072566888257664092671735820294522840055210710337774556303330681053212164876202502120726310587848559465283400747445133833178294697926449919937110627369370080128036806991413303365109498919812873995761299288494084896228922877647313873730210568128191342415649772852665762184697852667751822998518042026560985033518199539213713339755069557957827249497742884247565154629443860117730606749640049795976353066494627505113894924422280166288032479988875022815068076627968195883843308724270140784621921503170635169044479190552042698367195494798125649228788399873370126449850172537238898478323196845421493540649721242035593966189633452035297621461749981780597153714739538161156157821539642686549072178371214134347779986908413267944824092035669827694457636371998131647452837191655203501555626726938010849767971113270736402850090661764832075432516622495367538324084605748193473060188172567905671517113825320884536306370550328944844144940690963952731557958104842345051587052592289108229151007644235344183092784632231473723720002652048341944910574888713391686091903213762621712100416787783961195776029776966784873284019047440828467029301570225342809120351139914549812521877566299500824627473765556033793977805031696519692685893608706005460463629257107900284028164544264058888525835728088335531525854007152478731962989157605497886107527387938810440503777841709780020398684486088606186153764271232890312734513928098485796372593992237784648361685149013380161320065873706900392898769305380222021825360746693369681867698658423786719251948415796369388183835301789952191461362499753850043186891007384824155020177541162781904031559054242676599678020068409170189811702450750355970748599772243757981969072311783504105870748024213727113812011572125790650943379241662349340605568521375927758074442847643757623242923428952845973398623513874255753415092653068018587444663533148312203250743677666377447663187891855689554478961746560331057630940985191637930112228717187813076385633848746442816596300137354662187971861943213156266582886115045563513634060949360262689450716116553664345625368224463107564464426354266706445545568839740166087676238770889609770749733238725360541263999779995703428276032377815071960401949359365460727557133793228120571574697181004827174288515304730625550496453513268541566620086807189479219303205233152631075881391276151238875247746746489502697300161199773532447084293265608810727419044601279191006832528662301062559383251223717465591048176329187501496320162859665927034574100318023952386106218401358122460247893644671487261319501837865365311725430134545459410467192463793019746175820165650363744251635354102959476925051670170028819255398364248423173377410781389729514096328105316792536824872361486248280963193332525949378041055674122083291711859091976845335526167242916292311718189541029600393771669726658207186592177358938896367382653512286940499500956734833987269920746302102098892264501060317381118016304251538100382273792863137422866666548411197881786745352264906782991199108719403175997187162342281180296331248928714211930122218948334264087297887136614137994151992437421284610158862112590120781155505844146832338365888977132343183269528901328106809309596477832042506206970097391820676793206783577040127800317170384814553833151707084783719163177647311512329832101309536756483771106204380216408735602922077816784454307232944894117807050827266293049190463151641529173294937993842081649383686506384357370919861105841230045004392519633526594287100771952756060237138007698696220618006947053087927821346096486148943817120881067256731081172157359389248971367040202099385685292964589273880871652158292750012062947082268483317070098646239411660914749089874402604324303932395904969043335625838472956385625530540129708191986700729395623194379774436634936984498465211796490709052474416668509263448006256703463162436172827683801052393177769985485121583391229244059666132425056768516077544946276575032231596273653988384241162763367758933455217724656095146768771360721376465399411423002187779792725287647569014494420937197186256294816343226937457022507990467893744743276701335945096161264310972921614703893645935453672562486642013198799636484808568992834861797781528532129656752929956905658990307761820337011926534761655946208868567615796700566643862050087133447776739235458351576327476937137887586844492030336541672173810681992578316403889692819975460954079230429769932891438178594978258143076241084753531094231610707926888540036725325243198043637878821833727368539544271729605819572834700097311518568173694623518471951423243241955604102845556904843087833424505201207391607260880986167849752723112989647025406204976374411956446207005223360244251719316203958400619412811111691534790838978055646299144691191428825534962997769614409558227776934442276093314830043072005833962623715772003581630820654043822372389623427439615861023955787815870404760460284909407830747477879161416759987499164446774045602260150383179860831091956811502417840328043917068428576971752231275466674718978193588485495833702178539839836291178343938313589258435556916384075946182600555503584692615661767582773022008791941759962252126459744616160251382094490350843299723199160632093911251712070114204558811434828875040036747188644340162936622430710407453188505021719309153076850348835669667627552522084427511461006483637834264044417858553438125387909912677714137807273324310046572591831612161636126723460906048032497830024034402244806865156876642158265968668499462199594577662091870851449035586079582018503192388766214319341935347992093246025340024536306308897162967319654750008854656985482541103322346996738401609052267353056344808881012352716269290363205818358238232208662548886554989337571182605813913626827825757224710034984504315866806297553963765618197178118799800404798985472894747535133961036201149281358679107092207004193620869869844686912773225362407724896635259482052047058887711495990097356438017144390047930899741082385672000867320301620869990274305878202047266000541212123023465404547528219255862887618045657218714202614379352002984674298107644231900246177990507087621288562407687492184462203210959327327220099072408179061607470078811360725482561443688719456313323074946196936398772572908401921236161231917097701728466238755618414052902605382207754031294650677035771394127990927207888177709570212241766637000966000244407765834466281363934162255132081822653877912104682881145424452481653609272633775855628548337988617364538978888121573053572260799745369218274518881863497042365661283785882234493236420893505997619565213648769346485262548634729226023998659286614030472829446991474876838647297579349674726400422521891969809211048169485475910655993727959482133832596056217369657930862363618830636442210373135315404000748569329874528718371648462723932625778099192753019807293414746005024300159641746179182380491455686538734276530684908046898011174402304472449129712505892439709551927919579979929325062333694579111258660937011863972163021058756437663354404471688490692895162872536880272082117209896565345850496966205889547711757532675960794500183757628216287690582985827073721052111489001527451901395120384651680349490985476544544865937050987518070736503926654905047223395283990941578651386381836601779297225064039942738200644964735215718382843663127387297684410113028283228380086705704680997374120589003633472328287216185704949613739711066224324914094345456035563009011011689983599933303664995958494542649992919034656270128937014652402197265478616280397673687582527839968038598594936581671145943708063931127713584914619225323599226954078979489155003431425870775232474967854192644962349822224037524263812815779627767577466661998025685338123833491639286526234628798653783594181070197339345102851394401599560250534221971117834635793178922289372185738772815857150717744775862249832695830083360661957489474681729888740407656834305536275697700346185688268560163715042921285853652857984789667301384451632156974063222105194665272288000328267559893521955278948698774146698542633781411535869750107265788898286784827092278686954617538548100667303670638230496562341597555429463406249626025761814955272364741319494665361369483145439726163774766085280367741142416989992478819559474733021945711686620206643215600486961802011348631460939895786457544306060613482470744578984283233445209443823205059993692258748937906323870778241515069686694033908001211070903422522851531951262107132403502639407865058740767496598551327838585547133895558894106106096074960865933719932159546230701819899204890784174457770442123810664947261819038294705059569718608241251603828667100252061016583139892113828343247242156394532162351226979439507504652875857995518626597464218190803171423337678015145164605004984569588138636941118326631714297669876103216271554153318800121752710471744529745477604734815962769478032455354758171538929649153090891319725546401691218907264557541444189445117602849581152638243826346415202365070986635963029241099836018596517812874320619236002226463657698170619254146020371203079725878320310689430093792163786818052895584812357082294770150818603046259947272083007143425374311606093630995258112826922847139388121009960022837957254908032065889907994660293068962461697555793692509054469676410940710475009706670592624902133501500409913583086680263684234956946352098250922501850382320452768761690613590402318728454733592695960013550315715777456059865714865661518867920830615476201025764042883445728764305685694786465390836272130013711160805518796076058208309338011025120402205356064423057407584408146720124693421926966210410993323468969745550057741864547242992871197089941671182154313187187028270346965903374336472140410491510140938711325644025052070337321048182869306207656620334155603410295353557182175215149233180037352516204044355799779434502454261056364109685920665841664067791726759812427632164076832748241179489752909825511735856862070453198148225454684095211340784982703158963912964649018014110583493917738859540302358114615182413609110896613455551465228466430245937377142738562992952463533509352724183500485487086395369343470180460158554536030591395923765777306274366059262576483044741019046205396317385741590421350430574849641996223974624830752052902279526710044866975705496774100258974397851082710856280521789767793630032635072180488703335472779796074042959796527310628604228736298453634534743073298972844091134982482645693737684651543004344425796733177978052695547523448353701525551371832060329029227453884176106077283141597061082729268698348996008769561362681911332295422934992573117148501434827269360760585147403153737078529432486434681928571830412682850654345410858776739957093082858353012536348494936657455744674842312314762930979424772599295350231997154296880377900147408614246216977652700435304996920740980473882383323113335871751673022957567528647366044263965938043473488479160664744555824980700822486869582151833866859381923356111632608684603490156098838497409846691236993538019681563622243980560422761326599025353065452708154241587605780578880503585580057779480014606636325429780161657553835725650036187400555807635935654249807031095910568475832963848379056102625401255271074268233069453559299809429462280882507587333930001129519880509017999828362408185693048655048462551206935779507410729543875585790404492163295473718254826140823984542816636308934324036538058173972112039175737691622399654632065177811243593597583387675726436191318285137382038730047170464923469607614931430456136953414102836069563602982043536603465884075871861383455174081672328226323366631070414985798390221874008695109737095557348353847447092668161825394648919948625331016114702730805600119387345371293490835890244109647436462940106114484249401236776955888232786314285283650149490835623515589459425995710183994995530972335499465210504609652511623891165764279233154890277870878233435054338770617497069391184368808857097510899691560510681141085216543144880019233169388172226197873605715094372225299063932189480464096277070464655862073294871839289892440887215924618099550948953587735670881689717144835676823759346700427311743395525473503236581482163949375976469685959050595630455706270210444572649069876214286888717502714521256558060499415764525335420496766793608789695824041574571714047614543480663157514031366950892242139901087227002301684316423953491887704968815070832936301505802489430624359022967373458317020463844857877757181248759904310194736660920450432038565466547323571504273387730864722750647619600199951166469296464868300960527438249486062012589199058644720108021447455969131502786450115303439435309324281137539914962578141895683513763117197239235699705068863552178768039922019648192555975795340206258086152470839022826843923362120449026567247696755329943672713239370027392627520502668409326123963454762349542931805001606878247722269468466915493122064789029602778215177314389820232513165951972856063518052479354404095714622248191604795617806197905409030619160222458406778608936569301641721819979467070435908123155498064525578416215785707221635164792718647659970641070555410485288382623655120220599664043295682836150763261352484956118006308891820503913498571353061775153257119143015251514985605610041880810611777137776248770414994835989565150921858300394605830692759890780034351613173637398294148874722815856805539709447327896952533466849083583805328191379305076894916789114138749562013805224552359183905707038929730532677966219339623614130187204984327859731270333597032908160995452975693913990919617628688887294166970583974870697236569715813942285874564205733278221746323380548575759544579655324146707767993229224443542018073155708963452308200509352076182397170908628282175545494019805189968681290160969118552014179978090939269705436248344011244280782452338276228703336366269711365689629136073456714992510087551239981420768707215001882983748261787905930515171935372401846007421825217363108576165543227878170499639313933475936871270978165562848619744076224048609465531591291834328604370790383677150907849123542734770835070767441830049504885032490582379719874919434726864657795407892896366382730899566540983695704709305037729509039997545185489087642870682567755826806901467061218066669412496941369167594128401549086887529540369973829252808888414783216205548163299769752252289607525558671546017837840665804707394107406655184678241289692467193305397271612791729855773982216982844656721081505506143239636166050094277006409303119513966977912937906821595643034970748072424955778717346308216210193971040706740072622074836407290014825057411380705226124094685011240058968831117937752512458086312915104310380685833593292695413578685281766522224664829254296282316639699284350410270376436062409007950435831286310017413666988752455748888590427767882159895256267714929761271123506259751603491406940245082035635604564265167625482227363192812813321412996367407355629590900589720414536751414218297915965936292444289696487286415982975662907240664513226839926610405059498668478038268980427884976867896836891825584145436342993107615581109503240922893681136972068224809414587737824389153816578324431278712168829150185838364281659529149147959468105509396127440745847867061834379250549840865611832922543853594774860630673171204910330477407397309778809866898466511019075889137507956960322997091961193862147524319985210187543476907979976717834797941732837091348331911522472139299257621181206780120015637565234480799656643365142475739094184742648455189371425682999794008277679679618831248075676486430075168587016591586687562763070609560520474477451920916921441766601465088897981955651729372622528888954862102130034907151748378013463986327500446833805195341974561136141176411751515116727791227161522682528206277981538263203357827703255806660296723411127860071819315273745406793299892891572048155606178787005727264388380335612473165389522929553559847451403333756645855735329540592939884345010877557981518653227299462548569952528583317488280055182603425458146374121399715135303587394246657476230612910901230625072743514403992124248744211692065965331172269792351565113877762727518247798546853401569755101101497180701761006154869702546491576912905114352936688155336976056923638724834504171172703912604062998301415222246465035278878260039051927527894329621821115164627568119037596505666744590853051951941768364456715092377094011228656552539582363624694394933080265852435825389761435986779787321047771835893498136630230215016568872166852253937998518871395973464213036322299410532181238352617011200378207402671536653472830111397604863620597310972643555821421230379013837229315842996824104600348098402017191325173416592810942073175212984637945137632794091983958682785343719534092294686195995480541473565623939616939610563961349825337748760081484166607293202014988090625631706651245071983021137774494497596709003146177845807397181285799643630530624830826717501812013244704132694815120004826633194066441626760464595055880238735105973919642887783968776790844902347246799598619926367273987457708106705024726399338428208908679316027680731479699225416099963264630036508775065364597089918542970534030005520025640124352299569961797714539701275833234147598310721491495097692734154861918153649303997397322121475251215904123423441511355211437475616758444403636168458120186395476395821436903043343244430221506063803607459387291419515219330468344433066200455828132607610270729483641359626004491952014225374520860142119414880945485957143047946153603756499552089048902007915458387951867211231557316798298995202811003077930938089350110604496862640626621523550303560229332877428428768888235951103156632282671405329326306116399545871098782016687027980904778956851757476517808890059628305579622512929893073413385284692780091415380683306153902405211903932513112990204625898733307550361828302827622199140466335047562364590936026710214057619059584261347576804641982970568746125227748312019315187187668662588857171989495389669070539092125473294369313020135833331343623475282270034631467005019147239342221391098400557386699233478770617265730335051266122936159795804338034524334801090100857306202139196672294902090039205888470723261032147038845931464531626484958031615265315025427582259292024046586585984010158215923746169982861275631825449875595058683124386309110192789376384977780996604401366838145065841864750134677560931733628540849351383276590021573660123194495053092906653588893401864185840923470152740328068865870705491390194868555336289328553273596184158853778681208186428350840323721670447332609793952116807124846868379431311125853363845336441598576088918355988126516634582108948924457469308786882396155074828846965766806463535632460417814774026141757485584197529344137739110022612634711193441842383500434242340943728026942812817495542399392407019330658085007331416936258058568090755540189478420102558573404639611257563452168768303810776135765787791319259037056423288459203740292989557638860933829862854410165239265586138566874821557938333033262320934639098185870208782874487387878269294727502464250141954736187523560965310759378113945011896121106658114555439504502487975033315168132999780603755652352851944750810988010241116460356031701629899806050721175570331211144751419016222086309780998734530246898171710956756218852531403537284480614886987148706608459323318216180503918979491056016441872669642512701544006381572837404432302119427210865663605463061977563343308135971103727538489074265348983990013091874433982323180499818134053434511388510653209287599919078570782394067621664443728660006868598116194223663885775853543055343759249510536692034606779891022902365051402036902309801150848978174809921503563659054094090829747277674370318419540935860523461597321161353303895587976453241073039170827333481796898417187335575652254269679662535570567671769309450416552235069297692988476230745184886587885314023707008737861188874815970359633431570776036384048204959611308998388708749835057011427339471984639291852337646190432779950476272789997631241562345626462169073902846910313379410049157423659887451205240823482454000958434684071297871759465883156808964251531040151493370499714245902942300934280143244708179580579826078472102845071823879912326045176932558809367649109266248151951942489103080629277514074898106054213557634894332205471769402799029712806260507392491713237761959625994280132673973808844642449084837893470868837821660210646784919020628006382221552122293627765236595817622623982419360166109475751609724208370118557606766778964493981569566380065594570006981434664919064952710151393217233251148174956975701252366712637376255035899327217812777313867471167837147789437158380628917629411297836541095102114861073246946407793504818719078339573882623201685124414706882455461255736329005364028650483049427302857938040006654762428831909389610782349236859536559287677193628632054989410452668518649871255258601646393409103935855273104468601189839811771216187021722869228867575157738492662261914352662237022155343733946698036202059165251096930287865298004971454944319048336666773341699029859125318633402861383136702735879710444735283582248438864898602536674464832142268522010769648325413980288132651401009402714648319767473350865643375667244730476855231735374895583545200348038393103875157402012025346757684532168293578932355126358444309988866864164409435464450725364578516584719822774600797149561216573973357781980313632290631114276871278676217683096749244373257353606492056257360418040842717196767045138090181207410794989885884713802641148906264343534862222137639613660587998191840262559741200669175162036438333021228752246012537069816313208046211144791823207728495363138269357884033998608780673756199801732412780385725458876152834973954818251105435940419799634649691969259601376790995461981739040908407248403556879446370049632947218694870277089298231680027451721547883109918404149500686463438101780637618692519032235854909493924592739736366197382281432426678497654250449797439775960163433529916580641986115332638731872225520528657791994693931990659356301546843023870512473353901550316175601066488938827367781592865488537630688876262053251453951664166854521807510541670466489204467352687677642088452734096726877577346278175538639668560711820408259660410181743905854258502136947780237974309633625514439305900673880184538028268884671136784417375240616955075602497569292198940263951185311934872254541010581812109914880097950245041068726754089092512537111255515685001938918999199853387878863017345798471235414805003805841558935953075740346326954908867880804923840452999364693290067074275062113307065230682124707443145834886740430497659670570835213246782190880566497395392380201436760632749042165537564067400042837693533411830911733229776125328856139915964901106563826115282174726069546997791918418961465284392493504247945880821367545439437066606493646026391175575312380136060841866180298261285973718820232910644308294002618062143443537041341127503420962332914591344135776326618423981045954464388230492224265677785100534116205931679187555370144053420776832950694541621771206612975004408798244125774638963781891438064684025098907879856275457957822309918049678064173237900569034733797687675569747164538115326150333921979355794113868174960920597817872129015310521054068244886595865209068866705896284189208738727083869538506839385175717307819389209710573328240459425347811788746370640634121703822675483194661601884873223698734390847125672361370614693190044708194198136643275987557671516166347613183251094577249174770957464737823077719524907263002867342915160307153808575299625370521293167671795203805626405578962957159959957247193925103814248220050864004591277029358589394757684551382415146838404335533087168389138287301553017024584876523339313441400971088156363362488471912119387678085318948444769715718277276110338064013240013532537960116213977450655787897086822475783357843523810686727977449661548764238692776110556164201322219959151746484923755947525162907865483918848367960510878801555025865584030994242913818445363379184714032011816877969348231725839243689407453108902285787240719883581911233757627088894520979077264362979383259719475997884438167489628159409684045296351702888403476989371940177213930886244082779666065252350193004796810474063131584416609044272466724583137760627462824272356943197855274077499446200670981267184342469426618223044752921572850033092571510131428566621128613812425610541926493794797035448842705536531013190311647138172913533458791475835276123461297840699996491894325108236623666425626355341432766215715135020616469916515951368926490923623155172549633005772267081017753297195586269114073491206668135664207302222858615339227062329822791445954777615564542919364981299713942788177776820675190713755902868212112788787608895695315619993155123240164109527408717317197636241341893783644072350455395039807138872809621601623674047783440949746803776772907121334547137870565076445189747612597667034979633041966007123883804561998050151909711669443319359458092999230719639249483584924787427911427723476118390388499835246574703079583204419947521974827078669501004851385143007286439198200512914763133090899613824327402221177568765429636960504625155223200179434175719789973101340766656365457843490123571332655653280380235043916979464277887300108180739549303553085137375829221024589756559391157385981363795496111982915112901569726273145559597719681958761141892039284784243938893214878085701510898000382583703568735843614170604130073868267319968022818090490072514100938585782892370125428795322873564575761549493491112064791221452058106711462494896792399819307107022897778831494426362409625683206675551492207357603499231159435161292487378396299349089277438356191369005466172705346868380014294212973449584385460543594916536043123143581884491782793136483526176587603626813293365646019924732058672493355754974476192321641573184192780598116761437615113030809156283380321339747894603668858987700280959882439834062724807798932260223241836565230774904862646599117057944670781162673878115380282020979762806701250152601663996008650976128292375325092667373431612368069925428742106857834622572366399474254522580136633991341993008287557764982421832889708464995059359383936408518555402662335419240997515145903342808432281379453369617392770168644723643021967390188617725817731853867059042309660560296078453530962960592614593309543647060176191296052533939989144295091564738278999881752310774238114284592157822870962145272577689879155171992573890889312924775445847075175579474399462827976674989152636875918888937626938894324761756608368585901217357892569199259732530480304585647598449931465751891710670455837865802242724556606666383574771138896251672892054228559905836292979234654332516276309845104290496050208782555348690434296095264426955246344055690657866362037531405931718224683985268127929707802729774595540397509097450061217622380978811757936217279058251813064963847435216066095208337461498150605119153438538478280220653557834788089913773530474698721232778610448889294602576055591515280634252295539872242804685451057396375012295070370902599562296490139400060125532933181012430483012384591290610380875009747112486953035240013876415209309402910094167104645749177137481372761077706243511596087591051044414891031582399790929283066881151175336263696758421770515472925737592386349047819358862792967176804151725364147167208224477676863601709878597596170220456333528899674714542126354777573603228419415019111464612249833971385174491344123703955742563079266546704257301438969808775833767599644778248315199789627522673151414419869490431115109951307821177862722003688367484023981678852726679153556278640134318808652932744023691515106704598184525931609214239765917834864570141432455112320674851608304451261049795230746088140670320495023314824375507625895877779849683333212194609375691363253421388122290629297207998160766100470550710120793773154142277697873074684495865296890202628185061606962119463172445913571134013861424558594473050198133624441247333626727005839731509823189849357055651223695273933886748945040642966785801578365010935512421397529388237408193632460759024532079508215899420566177943781912992438388339127714591546029361802409173265393717526255523707618547536952764555090714204911066606077631677048011586275157545017739555025870626376895945604098153094128511372098573424247976385496076215724689895950669538521050651380406486848700981865998027424012439701524043365437877918898692501413228096529292949345135205808974232729227761094316704970419679650371558336126042749290054004149798168021089811695178857891571545696020037945870509433122801014899991167898433286364447719535118271075386598006058085476319189738935009235450426471861748781921906424446210454029662889932528489349484804864262667388526189203172246070544713336243331894953731145249126641884460501026317039387314788554930564939396273663918046289811051779615780316304768873806385020095352774058754682143219798159737342800887547804167224343515111444384117540449493958125507240525021025952535210423699231494152682334917265857407171367716683063107221092557796248743436533085403347889753321917860962694909699573826892233970084530347502656105481835646167843551249200232221352816310539326206929229679474181995766483544543720792835037714231039795845661800276267201722512736692375186884892437898036324289668619969246351032819287400947803134515905663760944644016143116952073977610141934993933909224859607706330157914423984708100774729376321485270524822413501544222176869230344914030702107008982779648531212028618027652987250356553945063165252196287599833248618102704188303395293136089784333404553181285657468160562274115727241397687011831068689253079274405883914656825836058014547268057302891261914123714823102871507805177198194946777018359092558146885907326277183228100559254146775792563347281824363285541866064140110436871559188435247805907645010596954755079951237155466548406080654082507031081461649981196950418451318529943348760029969610280687864647331977261433014523122839296199875979155886525056328096219128280261805879727887304727869155822683579630917666685628151556710546556429518961622136942345216889789161964792074263826728880863255671562783974024687320379154093771322985402705059128274506023321343208356338342781298668650491254448788019501104226612144793121951632851008453900323450750037480593776611763917000552698888815114778925662047378048203668651789492111472974071571878056602268486557636320764224071395791023451575844433809953418340458200247510261124367183467562339058292360827603624385688138651072245154642337186013523744634014483446338846495444668104244205965777772876208838405023118865766882090992735489765416290918806690230841815476109022278873523411146522265542662793546218527814300426493331061752643398315168035859293186616318363943266727067121795916613283096536525450053409264632879228699582997174369112928384347644811900404582606972809429161253073324639405570251186960426800706124605696838715902087080861763059962265136342307661715180757140575747061705437881185492970613249240978565207003070849748871651718315080681578880149232468901926714346756603771317201376659536029888243482313952729953218394195110514386363450139759676915354002097376038340220392896519331511876836840935249743006552173606418421655195014297236757028706486381432137765788117813241650992082013553219551706281133011047084191380274266755713949688851065148623538651355827376364222798070031889319007155110082166328760900215218202926874500098029592250627075869162087665160798514540627313428104728710458374857017777057166606556340999483230003358559649577664466756597464058155477601712342187388434167779069994036583586712145354902475416468108000449137299692182122538817032059541821115096111299896473534037206163515016339331871422961622248907317829243831430097224170865598511233820834715700816531300079146413568403042827603961727491302160687632949500700425048904676995863650302204000388131210595897550521457896718394397780242441059926576269515961184923476027249115301519043507051245260348802070272959898360014510359897342273626526275394064111168317233925470734942736698512281137813327354523749024552028258375475091099345193686074389880573527784718990457466487281272742175574730296690920718713781252647451630034289062834651641438787870237978265406174906529071496374676845656268804032407876665746847654615788557556233271314412392885529988602493259283465653018608104210069859973077895355080358236131548454145637663205148764484318485368789150462876430276727370567958998862332512095785504764957241888436517338996866843062619753092031043259918352267930110125517649563284574848514959263157631453585686775202954758479397640893847434452923967401742850259435878062426394049395610234818995423966065536154812513933037440999241391096634620628548454816036528041786439984573901443548381756145703209190301150625062333845782909475202172087170342470215890258824221046600390639983706114889332295624852128962634747764920804172319043883200110516023717636956537462000606743102877376033818741915054710675310068895862906318515710610659898197042698951050116377444150567339111337080824833272246282664698757937758204706474989565038124835241887912347980579206454060291128847470003289480001061704269781724447046554346306672945953722532027243784341218044453648810361908553323564560207960276698472312001555859445838424593372555554960850327966161976632438483771120287368553149829770591485449981244558652599547232507909233672531851044052273986701459908093048452817476006480859337247209016785934976432707694374472320580989644599831502190843772753444997155450990977116295320593667510890083035290325504790270762253542718783101159876131666418965083987895234526177592476440336699177741493081586976564347974820970168095854476558468849141669527731391698883009119067218292477553979430648793651414721134672571272884776013741358562152444760863729714467557312373349223440488994069654496471839252582228097978533907493883269052053499361843651296629442708749821078984972011484445136660297488122538776623378910396473788649094779542639694397087223160956874591539881197350438802965454491721090523929524022592408902778949344188774386427422750476277786048176059025089516396350598716890366812076417067310551103830209908688054851512990856926132779309856113411911309661000714056537648134552178348751027518547162113634656760922519028464244892307251094551628388661640024043232740593611238856170048170147695975051808141101954932498039131045217731157871948650590930396231468275422604048073139889530909397820729985734710766004016635979426198713875887284593448313240895699587826383478379751772222309531531382210338897684935430786052520453437549817923469641098051594747538961689703414843607241137896019123059902820223780552960820405379770515071584120174824391454733575685540031073521146906385406457020545892569169297050434229048803467515114013574967451129585087425825333046834234472831879759042725199346783962322889649961661785762366504996287425801792541220251697516110478666186611196544579551597144985305279035465080291646461339962443603281470399005334329199819692579196453628742916071890404959169890233116718162479566298246998232491797282941187406061501106325825898345005048319599920515470530428312840164437690302817505350080105999720448484796775883628673961702801006367976760470562754868145543786558108009254312062798455947876622096413404533517620429853161878197556647655125876706817030765375071826125453335435931164286043793116654288394098790858902053990259229815915803922720103681302007517812564939047565269761638750322414072090286766174388794701336510275777650741665577603832326269406515114750398717649307926927147380002108885057021012896779754422399677729201671126617086782249956120426770895658291506221170299898070359347336369361006847470506119552279415433307975661308151015825096671386525522654052110167426818873739695624604170931383265244793923607756487947509484017840223206812971751913867806483260111654439559580866934627255009059412744969853350928914652929332064801567149033639646428357914886659646046747589463565682611583782161873882382957933202577314499427055539970631895370956335377649017231475257464252416998923931283278802774443574438020352701687996916418875998221633439611467962815832206437245922999839864392258302510751722694571787068051788531937859911235573575249308602226542765317646709667732312679139069800326976240851955757206912199668948789976794779606592847436103388010647609280030978731017762079799626325192533236118663648382991880135506648900243535483112516379070847998914285341287350881719239504204093485832552056736525781022180172397391083206785815830221714866088764872356275455003317719084590913826900939240269346581589416525068144663455855975336520776750547034725296925328134402558498072821548359860705451361136005913063965562448245964446651951627349986542546778818083516624387456116307749574870280662135683257436103996553614618780496361719564982341792390606975720213756592139229969540504520886809925206644660377948374063661092301134768366850545349028963528395848839306618557795431632329617966500866174970456664639803578993986301240642733583439750451758643464018821597046865695723373101064372558993226343951057735485911422436723820456043714597565700770454512352656711088518421929353116628968491509361768219677187564531204688900999104272144482998407594280382716337445842933964726706193524934275660993523939435988357406252924390710565447070713193337214541889214127149688965856849462510107659922561475764452901771831736064335906172476387487101171457484258667416731445366999405065862824604816954880125352566040614299755338592594623017765686475705906762721759696839705363959277580168298777270132567719673870565970987868424097071706874632457823753778102173118863984139872671281410394033510759075557572720508911647394420014497933501692523103786267477419378073394837748709014058603607023550170608123731447228057695462979940749709040647313481011488407503968597186726539336716403532718170873846434900138463600420442345939190306788334499775831990341950191237588525569144215312042084461498708880070151584488584009553104093641539724207844171035038692082814646110564733477195919815911925408034801493797409111256800957098455094846441016591791799398239892035576200573659668810095910363166250971533390517806515252058809795549636730458154173269592884229520135605647316956333475920040597335024109753092558954249395557276235574928908631056380376899770242484094303220782114330892918489908620473198936270464552015116337353633311170059765532948516244578828338806579056553699869840677565834086924866260072989951237222367383945720237746036231719625797381443159475062515234037700522603893184393507886183373642591673701750069270418481442616332231198533334697617366722509293744003812019618651878731957704688871601095773031371537530664013581370000017279535822616093215646825552523746976760118037476126938585560703207836534994639098612085179263358846991330525030713157598851795400827297551703151451490743289053975794588178865963469171558794564913702058358725481031502329702917070862842803485071434945487987409983611215315487741336543041476562118558046439680039230729927467097893612783546032600777531762469176713585960570458349600715029270965079668575949879555415048268408140435855738883618168958177814571748602644359831679800158017692292603410019371642486965788140107808055286197329814319604575490709733334123836603659490186767313341879414989305646276285860009294809548606859489922080529014959664354369936313910958335122301110265518986441037537403729379210363612402705353229676540958707746803150349873744076911014398905962367031389906889786644414112956401244934363993181161901727452316387358394214496659837433617143954839877522523080537584380132488220975869584871763651421134173950725792107470577984343237274786536055916858972205861170670304360730669464667851843490208782795964332404335588592246808843194373771096398970086826358810575594878525566680717570323094437105803812833513606310540453670203563287829803616029740552472705707336942904352675235536248300298279644911915808907791777558109928888662574776662883002764784438256822985674427393021277572914609404789610027145072279675470038718914883880991921901629527823130949676734681126066845313073796926460648810609262390097439906519812211361318047917458699920289771951323192789672498324572214309195570188437094554582914890525530661817494581650949690309336827404913466267347247490379195909690049965175399906027684636488743166836176966462894142466774426802349801162868029446022644817534034216374347542332344281270927021973132717262735937816269070144370785921568267139792930109906847032501912262153895356050441489230285896338459332323785107533835642214256897578752537046940666926308053627279687761056355540631194415906176210171497160775592752363185107596130398408787211727857115806008142314918477519840936028652509977860627752212525846274537116390125028837901027858543262739419269800466835724596797245084175445330564026035188724778696522250088245247787228982412473669158328354049262634007396064603669319591392314693308241496455733120431893377158579055320520834566634789386158470034128292962076335102742035793623883441249239972246449025118805157415290882691356821632838186860458485595660357704745261630230159594671101023916548612966930742456872479741244521845858632316896952456691727530361022764790039630543388895479783102228217824208245489482522036645395368882383971962261886152639606596563605372996812189224916016759553991427971858950146198938436387679373225643578304924213138827563480001863657646800238336884504212332997691100975917648551652313860040426368133762915006472399143431518530688956960995213644194726194201314356372887470988086707158475680692895688782007822068338314415824104106202243303140525524112060293602056346813196397255036240169048949442054718020054819558938228077997819753496114340522648060182707753534324127315419199016629287154460887268313777828356045521672591962563863764816874973574726345801082725563433521261321775099840004023341843479337675078390083110634632881439103433163477363479676678625726096615330624659653822550250670583570396276224611768481289679606588166355328881798544420853844599724830817005585459266499345578429958464660247203064433649635266896685768734657996223663702758453879950223200394206844063545620893014147514750772804721386999546371725652674664305518001126278171133816535476203297765265604445934050045766478832576402865736419741658434933837234297438375380261960398741304093549007981176023207249351315226467272828733181376184301602393964029672468114964397938909608744284097009485966792787635734175567494778391826339019829251762213095463508682463099099621725883563667618453459351277713030941009362732710575157396543799660569873161857161500378783078835886328884387861081932522240591310552578008503914278358884965616940764410090559012641752221130944258314569004208243561844203805710676409185525689730837118672500780638446918228182831614879366972259599750454682151956027884188934009390112274200563254135178649654675817667888548462784717725092224062567469918302656347096178611370229590747136707344302813337249737253337290743824481801104365710529746313687980845793193255185694139677898927089010230115187825263466969169129439321296870382759302707119788565687187930992722374989573617690953219588244746787723289274378686143614325619971993777749225649848025510597298916674077786952246544290591779902652408195446283535239930313932340736234358352284373679218687821386671972968208157874443155218447235030743282330164531055113544481636565865675420087198144932289615853092863242308175809604034102316489487130920349734932436915365295700900135430859313344140909071252030800157543210406928023998258094821582537417132062242213654142867072944481974844893646618094160744030107208492019071812878545095256049896732832579952383139478761963947321268840980831197612568130777988354443742690969688905373204200968979880929462215999757069973995980092057093685002714193216015327590759363599262466485004718788588530528486172540966373738100539102671337522062207932309751578967258239296371392401691346165284260178066857779811353890688272947615244604630566625816573756560816156525123380834482945959612155408825056142217631494479739172253604958789510508497036321702994982719440729148015689566250880252952272223756322020989359362685964997663982766933981036162490772164943706526456981146649864143951347903266163721864053535392133139985539297380202833373873870256260119634612817111087086211485307232308298228393272616592487301444156180317987598375674019112288161585012924981668151954015461977029301264002869053623063908229843336804819507560591379276345814476764777876986281733350475862244970113096807158577979064943404278920804325074728587659279624363286088567174874964930171195584118826544059971611446023679342516629173949255795570398111156606621576629057432769141577406219005765552630677545296241919454620154921636026268121002392717644932872501577295108349555452187332612885323093047051725045256700778199504102707404840581224376735912456135879992193467341923685511133911251946875614819437844565826908404314958967538389212820506433196650158896159384333773877929030731552819963144741922623801473636267899516201804990616294503682793066284550089318437388765540139711008379583096215070364986058303696440398029443288864834705939096883429477311730981164684073334968317241117867764325340702645936175658338050591730161262699094783353782111069376467273881671217029507981825149871517307917944604889662520661611388388036109273628742312892972577196332895920116891424604789991913304062727263740137670888710775146540703866001562746938054212768138666909499873534396113942505771666594003401593509489282839161933446687237513979054020924224044876968947373464272385982639802211414389278692725046529257079965093285357977712136186676314666867646214244643132658855321513026154101478523065060904462899139944077249072235809238740679363035352890949727807020439106889316656102782435087072874384471419231052843464063513653577846858054828250049059301353690459014385855133922845861683705067864067901832798604140317934355034787746330346427274391197424513518686181856362796348621383338572698900064532677163369256383016359158443793870538154970265756611102592861089738116036531025324821518150741643935434166398634047399591591507841256010603989573035037668945784201133204397323819281379900296985043679903730813628555734242789309982693101851281705963976605298627465702628272889137135420789693125890904591684913842349503152033730396509377811038652377753031698690024548902585754755417712798237512073418218198257245311599656257011968601180359177274715260130526495986695609363945036756122475154991985960671164496351489755637017852937241095891060261283391171950431078835514708825505482443797634516277559596116963596514590288062797424841774847041398384979024135770283516203598417333539346861792248391226173362183515943196335058547536107191123829924679363476261769106110130452055427510424750457177839475067583262704849477661736278431327697222774213385817990836204160244009632566732286128891685930583203680640733116914751415408426949482407592193956141440675508995717678700104418171038941464050810279570634082038163339980735896792350753431549264082754714595015741797546963622822588242199382639194793502117009169866724105238640639853747192451363437482416590231197579277542758526272136322522688775133177725970593457207322016834084641354291578257493238081191199980960037283454867773881704180571737852948518479342065094226643610340354971134914174705962175483759970736765850648010350840718591679847573971676298520340750600171104629577630500613156014800676567861101483109556838873493052604989282259980335792984788078033271696206302193041947787937693389896363074010924247256191747107400490117302566871905738887946196892342074037145829986999594718313238685407585323257988382340467551868257196407363636493111057612832660255128855550760130122233807776409892231634715582083472120871766430416993239591978573615443491372583986990643650915758898209216151979941755844190214078316473711550357454705037836548915607427575264078235964398811130008429054690557941713946115952736294405519443764361417600614911550044483405022044704445562279935132522700944189458113979466550245792121673749489420783067653671294568742590098847540440678031942233142933777739782850647943346361703413156839237615529805112064157363158766420096524755313101585477625859188151805955561038586943453121951450670330165090494066129323683735857959121418861311141615742535397258734224292965730397619979811197635842590801751914906027300764795975287456672410713588621322150669166029881113793509580639187647822254356903654353347122737310296972591667253554361408331928269848190923949206490761718374580023446715211001311233054531537849957357467793645187988985506331035398543931231591670432379825352785519143224469827388249898952481050233114238374470244300632885504396657615180679586539603546658913094008414138050562541051529434255969130208390414153454620603782842902683052295338599810154119631528066063143869359506348137919746881286708193755776145255939451774313908338183646155228348774780943047098882249973169009722533070909284893557340293276886052945503957251436481846652390896523109546267561916455356970488978016397440704276945398464301877454473608770078891349573035373459856132887471522356143123219728432838999074025453685878606623129476798052570674820892165379973229786571806863507309974295224237515890655785946025676521499575988451836681486606402937434238891707940477099877658122080537472292695323257803907269850832182591999365885847855607067565918922516400297307526101564035040957882790876982275628907250358504431484581488797916095987703936378358435518455753360491270635031968787605229668232123966166349130845745394305531501962917940588640883367717152375395799094103023773726028214998596614883762611096650183193143748588401975709971715124482371612171979672378842956077046539860457639291494336279578319742338758102899765511320035627514127726355525309084371707058890548007389676676360275299673739634905485253052181225502959705092943325601617242125174434035264110646296047501206832539415551904437704203095296696638556392514005591817707888492323222613972212199998956112844607656709183587236391286869325197740815371096071519001824317491922533257640270939769553015898396547418799856682512813908030231534295790990803402583540855773958710209979678856185597786645737836919549183251478928273334178944110714263501629058604624680046320577674584258503781248039304221818879211376520164180259589161745457224293323763361202435548719579679410400978751131773785537909610794104373906631855724942276325780027477641727306095558158583610918353994765661338081456065217248769626417844250047844524575665571605074742422355250572502994583189855362149072475741988982744443380790105676396799330126594468709491913863799120744148250647697096000573345222589501282708679862651207333520616363900100818660348028804416015186249057916879921216110735684707680324693386854955977973637758676945760197982827180817698107570636427476722461901115995924975855026011093409049815176184461193117634470020876315277069922994126139067374925692996065597399130192595872572004826626136967414289722378357278878458335187231317189568745990348107133513869759403422951142634570981921264399177219748295636847352126971201149259153482260458172640927583507010522138775777660881005616556651691016307585515955958321733027527390615265453614530752515703721064120555596937311291320965107490873201597435422433009121940913310325297039327541510532559580257047421671756215529804669054902597773099413285842675305045727872199033666256302733017711997433672182130979758207730554209642966100724847927433810724431584700339254933810892337289220839827329587161741048388919263309781633120889894927707979287417449252338600566522715050601957457797596905681644011417590617713300388193843867354137017283578517595727220514239774301583908515765669516275748629632265297321689544616420165904820515653775849339192422688845642660763367910767121864023934739769187954962183146863888122938384078122882254516414605226167747132528388911249399599626488221842193715612352373142020123449453416246581939092843530158124148399292147019502005362352776289020938191185837049330949116765829223350495338107239610443747811079954830659568341062426620847278327461769640822951682794996605840477431815244099583134449769064665814796087805220656925340801958355626644344683205768120623615314959430772449213448857146573571986230352227019987520517585902070308784204339844276737639976199939461070409182882586429357298900424505038961870199456085965076124879919508363431093898422774459753079960393088733267014313729184577869873449704867825213824176361945959187324292488305510846594581452072136575592737808637523709206251133188393968146061599870194170048231343410528116722555598811137928103680317159094951309983686955371570192326929264846691071015128098957886288962121466817950585608494864611695727331501822060490262636946612826407383999618246339634919633548757296384314923931110658323508887528758901695868042782853415291863491554261537056797512461500985464769592544470849239476187805356183818678376567617822604774785467889490388927389689669540816245266332584025491464704291253273665695773899268057869094785114229292247070126032379473665335157271458985196751280879245169669979657379809889223924900972469619922143195201175583570142202301264869210049685675778276867313577271561275442805232447035482556532953152801764679286573268725420838459765860571597211080573143078815179098383400293003162304124380472492358656994023751380997107164227338010631513067967136216936305450796865481428855426996378667867484016192663655938184150155126858717948084517062683727181778264052613009367784588684089350359467310357637476934533631821182851644751776902215287113143480168800025470065688818334711551445772411795227340774953760353202362777673275904057072743106353064121322185871842971967985144211646469542395599586178937668311444127684772968942045002802525960290817619859876180634204765559969913729162771137692708177141059192120052598335805315149445385840671358552358361307212262461410852467305248460990355299019341671023741279689225619265909316375228101629104506111115160547730879801547349231703776241276603850235622586704690642267652502835705969904099156040999691480936360762764016993278178759559627452994845952590266457346381289296517485606989342000338292699323987700988986311470994458533910329610365875355677282531785788638612291066373238318400153185805633649668076756503644195166117128047152713668530587081379839437129267893396744127837956632152694455540089978276136376757206773838642518550049854402666115300834930094364094030542291130877937808463782596537872423852924799128708168246551447383475731919787161502866936633528675214092359364582546348131027390508743711588737036863843550746507488182952507024108349465929801919556878372723083501290161855261884314472916693733037106708767565783534449607790702946977823295881596988394304734525803627721611491867735163524323796418686717783575914305927067016068987661333956017796075234035454512137463808650967909140516457172647939828452585108701775206594097322469460878549000564675339044275629964957777420522952533289405987230435274246168944868494941646059496649565099243131550411103449527648363985250043389321633359658483579484669756708139480041630779148179925665014034854109496305343761695116511069837864540916848870601894979789193754875061646912030770928994018396555057933177848388359905835535881156578552625818614009220749785342811620264184888242659268567956962164521541864055042055044031406551905558580356423919100081832037381478619693894353038560233908172702858337265628071831777103839678309706041789308192623194250337963340381877484929463685692110361889242243981949777216935983760374645996014592223551536035434192042306082746351537810111544415698879453275131682189637485207446537102605620138099989465925796278207758193365224901527164647395904158327810709962800550819710921573567428301924574072479430742420122818531798916940058877496063417560428386299722792001477422890974246204585984914068794441068350073409182643319390401157118225041338773766093156747871598004696023239451032558556970306546210001702788742737787655819900378408368303421022226548679363418334584363226162749411426798877419663938035628676964664841256595771467831017506268140638477404317338007496287082619922295040000392921064263395372766645236463479859788797907390520142102300485569586566591955597318791435026514917633928581494519316920870748920352654738199639375890115566913104930879483169852407301375961736363827011323235955432780522942683507828672177023136028388057007542157868928834611135072101131115118903645465193573364506875786503685760833723646280068947198502005037931646200688718747443122625940570650562878699039483432576703109934460003437936882116263197950509449210906995014164038773594123012604943221890857163663879300224191208985142566467132529361268660140771537389085269460602704804822902952759620007881430487256332612789138811860223817937522999306949767182574532973632881351147995021440235545320591700119193263920612604878164278832883033054166483537507687405581873518168101450540799503599621511825221353865756618560003271204580661921307018263406111247515470529220097459931017116474791626051470724877039996166275518885112655372162552398555334625511041127783391835743837409778677681679068349435581186108666072545422348512770685379482750120428724844906563140380647385584296740297809576250126464899308888737841689083860317112858817588618828364599926406657502953972860724541509248902442124126244191702846655717651569180627084220347959765018604227678145744243953194765229931084784779138469218151630167620530694558044881195689719534472160179199111016997326389104413772013321243039140241933711571618877016718569463471948253341808868738299945650148920204297091147423556119375369496217443675397220598687321634887948403041712149666155708515862968068837434238782522588198836456169265672358639883202049780353750949641925783821167872713427755173223488040069790540288018229603158455605514228626611147517319286199504572068839554830161203730282907077295523418080589728721652809868070619252917822185677272376875478189992613804355059262391668984947490777141265833705522324934544002038433950883098028009563471014672274929847015770987107389410333377163447899905954624213753475115186227074578570917567576070675880793088951279477403655784548905976448363605146894735997397483336862559520035116503909244440581695989212785811980886100657641663821315023679268474821726877970653973118453435920687120937661234395617636355819114278713071256262010868291580062255110418016217344867353171684611001408411349604185441777093887844478740808624352142947022349125397968766251142564013025797032820215897354909924653091303792552345128830957017930742894678844644438406401521168218193233472992758873151391533948399650839630797214134611200064873531729444174805993417428144644495812259263496624801540736028038532143940747230689865859926850488316795453832564186970569668384912359923642094791663558350607575190813379681559847711181154179936436389277375497838269130546314085916354003811546391409235462852466426374284599418453583280199159949807094725781306401573439552713522756535786641374112528839985898135389333684783224668365851065941802559969364533541977050043317852729591392299071536084308478757787400731799421714118898134127322709334949110093978623065353582956685020049992456897786474873332468522985707899588814047730030114744372560667785395005691647339046238148780396986448742578737290436743599326192480329010185849478984897668572791780469590237097629990198508672609021076747757482126302282339085749741398049952788512313832287585571092303300895292486342895535357965188388522040156998459782127256474144760129674878279333242441792394037824592410554413835593970253488970254292475964318869043253072872016701451449445521045913858164474956452116924669991402675248245626823540551579311576689533874343540207841584588482915664561731574982140145558226781144189859586235894868207005152048096409209805669914238681609587182623421661445906381008292354488533150014482520017868361654267775504152000015474140026091294585616383113275267141818380448821787474697923281050909528906514683322238379996053444289196505105383646192943856413169032852177992031501252614426539130770152852803884486539119530003034185325468476738867020271661447817267873719604755489144734189868824326440716620835021466653440008629843965187919410251431684610115474487929847362019290595864362117050821143425007470207310427325167040311014703604406029997891628505997283763923456417904795876857730023463763273538852333539650567588269947865139572541361306464719844494593060589786510585632630123619550063889495515291726739527980805273062846867498902931537504169581073002533671758855956802638644482926129713696209430853265224243180254757710176431904611123293931651864403044896497259758324362517053572049760331355017578298217822267095648742488446516628792966405686327060748114140142620456409815908223362237513663799429033744620373517683148418232431069830195738194962202134561766946602456716468049897728973259918837417729485983056394843561644793128217647310177613935769760007058919900352814120102436663954367715929329532564681007245413831878742810053379958431808091905440615818837224657146149490418675288543355890001352887710168271197253131595686035553568693547112779774850148488661568442632324007821414338490592585468347946111460406101620361652589306039265698948150371248983321866311522653736668709683462107333238033309963441529937946102880862428392787037092709116897442979264933028649820985121338790238415260447121458570407476684679842842869623145622431300056107566973791504617909527139408383996252508665881881051885435838246503274380819662532088385605409838150201834649220841535522852143783408640398976762451494229898749948147710938927627709625446924790082845855453332947396797368158639563532294544393411498916240407770068860269031193243120291953425120970159262964485637837779495806580632834986608973389388622172407994717780002028018052739526658112868490532515177807481284558092296151091985522976724765814127887636310435581406237321910380104031911252625805250842589005580505457379976123107757543937994537728186014594484145934635016697285043028293674771177165062339035533880432521976602795623140076558096829553630837044527726550020443311056429239747848326110481984139559400208010136727063141384089267744798165703500665121867904974009246655288009989187938174091652383965919628993799964545948161345417537406150426667908636226981759014320393369588677352437496501143977602717096906627210068918489647521981416865104129045184432382315061620343074886826614650044671247876482586370513278632707329366757128798557615946631376253361579638720679881900714650846157497958229600902608318790992345511483559476400416623311088293361511500815530280128746660109917966691016261085144263727878525835417816528502531076098918257468831722959622832469188055781890957133402184144947732909068554144305087227177728748938158584948366521618827473791943043415386643755136890309806929992586961512190606320983795469982752565972279780155749586635196992100030901764555012812287329995921899209162144385962721847313044190957597888926498732055935023195018312506154318559517268475033178160148097548462759909635977793297830789606176691791468766968591969545435210544194467898544127178893131691893691097766603866292691538827033736287726791971998469023945762628852250745912388825413043390832763591015380166965611981890875341912893774091799218681913889980430756397150710300169884484989417027955993179748135050622973094452378375620973820216527241417170227067201545379532508678221018177927078494459021754872601961062044610131298212063742287062757091174602278734219615624504036720395759661024767780399660435726994767016954405071207534980196592214857841601730075208314530098656596899988146966616723570319291416136505719107063062943292398784668361276767833932600292749945748155026430349840414085170096474166640946868331726752324548095106559453350754162686165071391519147562513356472398611614506232184564381473440701900470067318678401275460787409733371839174378692005969647672202355606498252432402557743047120534683269788584759377676207252554908143487553272409538274587878783278910841759371883698880120664050055033431213451025240233404685489160017454364902239652337373108910443817165533279326004717663158426725044096248438475114550084669074473042320007962033210014930740379397378034394709316578126869761575913403422442029938775305197577097952128187465644254746188599017501750281058798423707153203414839604124436735190333688423392408288543967204095817483265128483856654283107549581709456402340575122657243938644909258651929627398690071241156076781162392055285128572738436102977692464674088490816999212632126610710361498563272769992152444400192040955373495236552549348313391161049307298877873112763991851898839671094529117681653569594182123272401244534094265395324872403297567739895932582691415785701298485460243622482536165175617642830934444146685636742325241292387960278990482364995820753904049298697265897980057135295289489512728212593841544512117627595649860724488681752383169410252073663090804934652034408431325201371108009778970910789158825708911025642591979103606619675499766992374993746523805744445087864914437591703035798889168025058957516325007432354677516592916432037218076262859711237644944176312469859021571538425720281185860618056479134598847809521989881813161235240107066255029145747440923957920349389312944472316767473678413395678780699056692095308280830428031472121292756076812863294776881987052305337127585813809960405692066697182034220100625166190140321179581204989120095207224902474632814324416027556043656604719278953129639475725670600742418325870754453350491571177385005654480677666385230166684380776019499026251944718222102204743145518779458628725484060899056518827916633690869297557964635023909780386012199354968498270288875125559283541616442923361226424173373809264930738254256432385548036351492504593055259684909008178664603779325225094162411859706350734245340968182855052325607265624019176420211812819800868283165243357748887930374162731672872079660505785361931895669326211609224066909639372695692350069101356957705216351267881826028204714118867190769724570952308460944313605618370107540231673011971340410521653313465821137371555569481490439347447222132494796207468483409001768528758680114046738886686307679787932267413417584017161435135080202448974586037558529582958916135816303084465300683683470581603242740670841009318316197982922288737086450425562876923486028027582814878955001357080113082374632324513158781321539523002215523226705818599350681142119427008387300217035532916854447501568855609272161118752965622481616684563036203710886252724495221548666017529033293338331196497851302767436312815714620321228873510248675463683598545722002471097223158376868710928163324424219071716610986006022776763149194885255412819441019394733469598922137911473840547686803678553013749523209858502971113697008318900024042032428671285292573119349495062698040586482919212567003892607442057104629740841618655361539585803036709292835000350580516539436625727056264963449062512601924302922635656379225161162314389361257607150286206965267449684118244788797861782732266930570888179635076271469402088140216372719867079397084503655481658455519854778457282589677886064708963502189596801199207090883308560420479977161140347274170440541977002897367601863804164742077412728986393385048202496694351284393422199297985785128561408601689702676467487347875419113526294793958660536246886019948096356742416125104764222927451981226204010384020976698056593973156523693919662001043437460862932051123146002576209415234532297275683467939770364426004991861652405582989214397571608435431077453165829907466633562597835856000718097678535373593057031933276837271795151445663534307467933548767832731143798156038479656469178023103470197213669027652250077782051330097282598871804051857182292284991554501511399669377247194419164593193062384431516670478936977527842930581649106616942148990165493578269374101604243791226420297337844797845796628695417785425176504585836702053943743302720952509355949550709766932301028112937607320928489090006140182203582388211752501171789719353277061346726068273996594451209692577524677792915976934800703172078090426976650685059002470267464291928070048760401947676464523285046029827741716967031197860864524706990966750012091908618283242325471113397632810164974856162648935965715620336989813377774341360560338248750575665720371560742472377033451734924820900528797220683430933867445163816274559726049894234572918229435292463070134367530589025366405816906621040276078237037652517548846697324685783767350406677723361178284990820418308925916290421785407106028589811727789681089718048898779032501857533103953504520693917131375351475630531257856938185430663624236840184541906197895859185831211635238776088753014061776314166384266095612532701132840379324303574171059801937505500990757425828492032605510944804768662212953451251074521461063691260195183328450841768518293306378682873304598364140632393490727073949279101968287736188692114474857684616229074402108238941150197125187639259588172513731278656649668867736872704393946227807891855872062032837970657639681483940046291045646650819120798799617478413009347046180761687944984958279122563465720732893412422220614537812710102424423500510300509955295362140274029345172419196515866670969415859093437916197713744634428938189225932011710748691827523114001831199751132276032923835547073207183813982526883299496605929824709259883652693940238555188348350268415731595798299382626329374992267936926930570764336323547536535960645402983794307923110563143563297205144511047508084154592046640502239590169894699800615855072183167742908280133902213116234696195595971721589778488293495006295472134551115542427203915412475740041252926370380902790126931340787073673519559535448484330678178326854467968268963546885588163185985979798805239201487193188782463363344730888667969597417455142034215976347937349215446772503657301841310205428356870493665899798098379847098931913819506201602897222267474492229352334659198020276788325494025043770435832687641493704191676351930666557411513811994245938326702214049732380141500325681233948362740184929128739155365170546253319842100405459646231821413091653550974184390497406028040618004586227391748989145418532744360358845142115196386959702858671637959234969147187342120851651861427199113771568191363458020564171537092116038209185880111162696486482865417305050180812427021110676678062573449669381107696272284980107519913481603787761418534229360841210490466038524504548774561219577540706261341129525217896556505489559091456341155376883273414247453833857413900729036386827984711970563099921879642847987419276353789336363053464833133755665574863786754901305053804857345858376913672097732658622429670847945208283830544894524403719215101443423180143429919472453290376539042871920135737972570639622996768057530373662898505860760442313268653267413556172406501758512586897534234988618199281749022890146610516317556829362143195859193069082282301903580939423811958834352223421611671377980907722947842211320694760578027547557867897812888931882832441784063001769748492378335880911877935625359273206385409421387721035045861350246536562098065057088540076048368725003611783995528924685135497647629800753361971135760101877237713992930954693418242666401259902531311247168293536022051247675368509227489545639299522413827161003521368980684738111470803472369877336851312278159642232137672328206856940180538425304248735693910874698896655551283633727280483479853867811558766377094044662189671878781595946693548156857866359976208176608388396203110179390218416874388871859496291339621275672542021646495340324122863867214882389150061483218067031467678462361303235476585688314451048823495242437259494696078986448329026108699135557585450215309089534323386925330461816044361301926203271350427781005738213906448996977720750670850331729323888484585349834294867400295600669470462948065391068038284128032863274526469210777282565213600158601991598203969270713264644708364456844687887848509840098459696674040819352348195400084090207187060107550196585093814291059695179242826031323836803586282625685781127137009477268338528398490660224544674652027953768450114012789375129835234158970657999728665947058095479951431394013442687313510345517286851272553662648678027107713267644414150979313775743173276306796680048255511263644038108125360426976906538090657991691414806665419704139980490512122776913065247417438131514503837430138448717632379125514457368616731563918510449485666274838914501455366185541192915356035559155084095266716983810528701083602111175852730281821149617741256099676796141706820021996661245184994993119459169983252697324902974102581704970534342397976920380569781052519589282048486061935804753518530113346225786005696278011727748633117207196871593698629388407148976071080923171642962130974182041056349375471790420523594727278444993266966490815631679343531207018379389997072428962073413025231533781499002901883031198447631073129452202016263364525839484452366547472103428172312104896817456025780681413046476766217782445769933931481510743326320890603034752264285300144117375794304188833773313601338876416012612061256742468974713613498451969962773661568353826773199136967966790346491232584100012366335931754907940588695292193009152747877909541352727292404988283537108294074712532227567210068774600630399468530486452834532842378903860803799689883048514284237922826913019745585399981793776364387782003524265563571911555682227866285431522762124228750379418368509526109059612037313115840806740764477173487623962717104462318588900656308775690070596031894923694076660142850588843725099827138240170960861699097275449934473911197653077675904828180891538272654527370847233352546977533198778961177811714386020822484275040979118228575748898606640335428701156217918098813083496542530165178718865570049741513925871620134556935671795653121574050714917798405479364362183626788915553485784612142033553786788060231297639020620798797906612133403652515193000165891043019549863423631130512172231772090050310431079571796636246007524341361384060693568597976420584794910967062912932114917458100407762132989433574030000008479734906044746521338234495017461753442792308877844710756399446624136958808030391707869357284755135930101055244137873584525119436921836871890441781043036678970193700655900178868923804032599362377164481937667591534063611159930412573166694692598435380820504397796165344946824854993594814485287713682777263555581148966334400468122350793137392932385578168411242709196368192643136292494090889919862791506031689135963377781094812795254375158908610564325759327480503278609241313883921696074755559377409941746830604367976698125088970452750811776714034586156149188367735568429496053486050809557569196645987556218314294633511746292947154442856594128855931976842474318154844034873732201023254390671623311303530199635747711245294269642082000652135936293528938313276116463001783551447141222814339865564578026267460566064143192802031438461889459835962659120733806137823371035920821135541721055763441897230273177627637723477972209005105703974617726021483564780821521765681903830105714598041049182297478548179058880550279455168504422114373573010871861066943230898842265385023625464304197121800196028004033310082167087847494672115935024391393476203177139715672987886019503898318574357485074907840776495348302085585438448399228704795635615569017572169792761946794089691888441878698465629196820383105259522941316678077463011731225211035874869431031021078190308914428354785241339124545006346292749386843703492710726913814717106978724812361870367453069471041205470180358550019562899359023339156783942105627548638120994830339473418126857089422098737710765542485177281850226421661805678362657946068920802035251571843744392718174306226674698938157220434192164277538845421098976464635284042433319020109099359404900486260523867288363089332941764126767245463500695317007137746847093952376513643053002966748217667580923256351451961354666098599261944086274049068272761769748044253184992870433151737326000549843475124428806409425605519620549747791198610075387003796022803393876811198602287347078637099637708466700608303413168362450790534734190325455571357492764250251108992214316264762066810711799362380282848227365775716594760998025692177022497880659672948245561202890103733343584276704697288654764425130603519538445162832024369615990042217042410249603792396707458009640309258780126345268996207821735062215089676396548987710840312863653370391511138409259248851904164036643810503253486710426189206414240471903698441932921937156117476168345287926377985685662209941779119137340370741732661717753140438962155199353660741181951789277695582004806203859151618161103158825131893071415655096405227299465871357038026423923954266133130717308907788395701112110986100807326636629568717911912957364707328334420104313919046756714721369945954735652793764259289654799305389587105208065516899949201480944846726577894115521916695032205622951748537149091041756805582586736084323765783307948646514364694980522585142356061251715323073787798847778745640001727284426671287077005909260262314403922566139607773043710033091069635043972042184017237055716112126976027522929502817734675540853917869003177519590880890053468104804730060640827697349722237641079782299962372274741755868661281638962772075703183643305265430286470347328886161431260160850476115749548613817693461147485634882197537977371896704781606711090757426946625636587538576024243496862909814396859344743439908461096351361684297525219914490878990907866478360668702807057173414184905270505419643280329068900239142992373686511579661670665711621872404622072402688832710909481839326752232393099560956679635139410622758591265527475333242841863139092949268338466421025695645294208606096910375393876953034658236687734283316228834811193116233541972247002422553543314783421493694101836910520407558774452343582047254798951448088094653386765952847366111711816056307334870705832886049849930566681534047974478984464071787730386261603883660513664632608982022380883485443003474012147645604888158307351359271684761553953606653275384131168197127917156812072771063807925512128528510037662674832718961430155652674756721469240252793742991773155370788047672002849646559187541925363399691301554695629737173960567578156639746283323312339360150452607524177570944160134913967538589153294933387744903932753150195221926707276972368324437461530558090421859176473252383207987506446987612415650387755121945323961461134421961854581558472292740575985299868379065382445679535081168966919560852360177609728841601766863507866438989017075535559680239877343438686861689308279666689350865760990190174119030490534535731446874590981400914348559598747703985992348368817652175179177658721798942216477744407064108446913135307948521432181367695093894370060371446429380722113679217748619771815896525630179579258402666709119804262426710808210829529197721509158792180188425593566041930373556771484058211114864410732164944913338090832475086041954167123732854527762693078727763650554485003078252502693576607338755471633915452498562152135623381207241240672564481463711437448031853434767685083777760881144122880293233760783328161003044326149006683664256403065404751734562025190655986221852427834634320135103654311409861838990870047825699442531235106862681451816584042088784060881982867136029990127703833725152235655762562225538256160171474403461510603225535048784564333556645323814274536304561308262310780857137103629227438383562853797235108015318687040061798793653563378578912701378906762333397940558718810987272616013022748120748549135544399424911757485548110425765928997185521765034501045961605081742026891500479561031522708587539253308770740845170039312817448528980118687895808668109094276734185945897826084600738475845052442619900377217208125366372265580766986804364047026811041585900563108725859308109106929795976942404705871521440213378244888382895840515849477336523062323345030729366707784618524110198806337336023410210016503712217242392955928769968078664541096921332741538422596148008870983627397614522633964807341958372304546350365447757507091386350292040757181758202097668804970037536888922122731127816278945355265245904446497023345746253619703556886701325808242682303500873389661753787083017826584146373039051129603181329447729194889421594916344554177943366583450516198263068706862313164152599219761259715695666324121575649088722104175529853762081746406645337119452332256425584901670471499667716667276036929839914719427159067168639052213485137226713572409189413907458574934670656586071600598203663233169874273240260507988743349214467427250232096273373471386899598727317432836368632924786007107677027838521766478220810547438637774350224667961340810920887744095679811082572422106020128207868198092715355660093498333744247518179025883760644078850994537553165809033153392119034428133794751569732058469301727494734275091442767281779660813544615960290850128078096261617897536067442818056777817238092245037584817820189864476846712040347920007819683084888386188489188344461687710913869488444090234319632584586306315610370233611802958996778293950187241819439336032722035919921675350652765145467424501560902479284952215915063329988087421778533099950069591412168260302977034277024627779306031707956054327971253299770496909797814035515744107181650605219837326402299495184464362587354415541221414905638459359801449201564842385607047145656401681468237305727136007766280859489041099423488717187904452681657369670383881345093092868068109027442167222530055770410097683892720717638002291800549745572046882463866984612111457601997650598892179910733601656103603836654926687979074974437511065113307029798260217377540506656071011524881113299625017450261305303382366227397377104636276061765570357910909951874925241518115360258898978529594523841991371183438650204466358941888265121519912869197098955945217892546468333238939613198956005583381542424605590062889492160394995136936698331315168825233367133443821716577616162694642863330301496743743463699246635477221261950265445757802892209288246475363538686932972885156476218802884264203559470623079409211574436289499212082750171362831421744232343146631063328515903599874678494950765881656469302194816837568277190473924341367244993416788842288845557284242807726569604253115801926110904001664477478033261151689086226909446992300582126147223510542078472730306223377991741701152755460469388329584431252506592579431830610515567807674428429909405101019396555569710580658600672483543055171745260036152053862632461249938571753233289460611655308067751734797792651629186047881808927615717970061260355855200552329818281673261119034641433399015336738797900588474833803906158407144743421077874930920076075341930200248815714712239230347089637367965586336328542529664146775518055676749414156900034448178855566079622866678144126007523841071424751164210758937359820365511979754664357559270335562433544077599754562759661508830460712467169116864978827135049074913708318192787188734803140712315005520136608133030988587601038786024823335646717664288963893473582875831686236822846580682560140380126643592591102118841658780234960950473427398803250575506611217532300183521573945204506737953778785006042650434058184610458969649449516758688615086568104137840126276541778838361616293981422357947764724987072797649704107967363883522333353827481469773828213903597388638300537390147907898544802025310433294815076047525758788736758723282058280006138923564336416758524381237958830817051996094027929111110200493651226689438830674368209735366159878110394450336846223967880146087612147721180900922517170282628191670656580410438862300817989404771087489713682571014268488576883560887608610969998866060407571866854772096572452953635635642802732929212994021878157542210515886306941594570542378971550997307147816020094071284845919668571090534912285415702480385996814997300695240983949968586524055883662262846842429512436360018999784189164353351864699516392155521657643085346238808166703534118109135372945606016057993461551644967184904381474107176563661992638355208017797570661442980754663326683797980210502381623480557794730709586838302565657116189514591967975928242679392547368458074641774057433373277233772306628488527869066726650635452242415821799764935802688220813924830650461841222476181498877615571175216991721146165313163576559193796409423109470168877164670878631816142245287260783035985877565451620311195381702874702613835600517854378256307811536346163944939475162155180730996872189057089540721790294739493129171480403532756361245077688142921690973023994240766628164133550583325248929798745395692455828836800494509165443174224959179190181993131135839554488833794797713390019976597199605194784623321108122612770371977256859503527850039998883663993560552023960874796090912822640857001050136542446648234443109530124316268369678637518925700186597990062523160492409729167457284374408492180832288663230385400628556616423465231539334337864501131597486840005312971337119563381855899513775320028934967879687192682610320053275233311462980906876256766659043231973057485004610296719145319742846138593398326692902687302058522465201830729846990286616163463547462966270571367970960601186210453065892655281737585822962468627873901624474137586218905646003178945314526328735408500869706946069006057738753751817758234725522301533029426876229714533927588728477413971883275265106572063596306626427166018243528246074172577002187011680474753399217634409384733313343119202632322511466514552647498089295815448390857391828324956253396436168273857795325630249404643079312985068828078140300264639291135554661457212310915485907817525273572722195730468235767083487336139544812387694559105665029537020565253365708207941063355072263700351644525096041786578736388464819920463456777954447570467584278525271249179338095130843111332103627771889241253212535262240779144913339320148804689447240602688936245298297857767676441286918891620819135943910513130521161842137382896983237532051567108977496288025511640312474096565552729323203719015164813855335259537435658106976533535213236024446417649273362862413147169451604688162040292434747526096491748889566478379250395554025132511199228022647675088041859866037449475026097726845007103496600714256676319721649647586013031813336552062838106231606358688763007227198474224935567730703287994305224083186281796954354151248787190586702073096061415859988199844977691060329591934521346982935663967645551247280652969088989132464075969197153531930483731280352859502933110490223042218164499249811888046932654974987734288436016529459448610136945650327126600158586722391566626860134533305347776756476715246099855379701043134375805747276786748278009180328650197070621992942136952807974416589114930855601942561502788004964541914060530505102503191746286590114479986206623985632998061054670223975638656811827199463129894818490329814186068534059357109982207710490953230920556433125017778826481415809578319818216660103646865446774990820488022018265361973651890239361098013421559534099188585448482431563539298036827649186629845691316568622016317845859559321971002415507959897381190747280477834758565433867857427303585732089297345116948511182862550080435596403622179839356141244995497903954217640755245749478440305852711722412714010960851244046177143797012393550627241495789520053651649553815401410493123276738669453794993166047163910879329514630081295091534885084050139883116772429280518980057602668722703371583331316145126428809138692188412183211011052340732447648521401266438826213138151104260575146418961085612856368341297808382792764946317688310788657696751429896326460177128313021866818065416986723656062578861843854469018207476620537857179337240499917291685247495498244594008306921153439337677160433279065492617571544311927083149096068699547036604969656136786778638493264407162091914953541910808369058303880382424014385944532208953025833748127475881255473403197789522098574179659749011525123580187267531426238120393128227843647902355256526533431363839962837569159773927281089291476012768950512568113736100011513856248057917524691490519237980813721629495940047884771145089663289599011009202633371933042313739306095650095250279623600544186141644148739629577972468241837480863340640071949548056395431230484830594325429588577947029069751462743891195727290760393439180700266699075833667013679443956267754068857152936605155742612338373317927217092292203370511035670276863758738621644452900385233986314001420606615957759774440410389386574932102383008096761893051962928447914836618215118504851991039377428570272347600547308195191450975462147823543392226410127718289269638416827653187807802285566175939679937450902048873678942708679012423583064377715749463261515068402482608406331446448160421543511302092028222412078277590554574121250270652306404940835613690565373977817431801730266271596505326345170629363178079127565983654643121861007887421285537212335757515795259984895743164988115772771604446600432676434053615973211995068299289337000139156292689777631174598403319630071231397692806735320000425107400783488141442639118290744189255450617292264402785749145446785227102033610134647916171827548289251947968160780962092376615947266624336715310161391149045227868898270265668345797539665182925097325897058138540285980077158974458825921210438942579200814623713429105203361549108903960067741777875662546585311458419138248298014187563294614970181330600020988225017911548922420479988520841275813983144933127899799609639825533878152899408073242830252554541831373048281181010870008562888299779386577278979886917595271280034910732128646939790358666683647107690722201809650924129741943657829918645253588755307200906266935073176573309071178928712933243089342967414784526433183740407526278045475767546619841629400654679516927743873102022673162230275132476118706691426591243081570576344839532145298358300071739595201736367979529122588680301836876614579995640721879666352890918899118955775855861311747585869450846604391853521417017406966665355994433027603478326644874876399396810438892398905357799204185753431264183189166561676545300256415207510732661565575955407573394340281452967278752253874492742942035321689917844137841928469779904481150757395441733736270094996024521618971813427966300942639765675718854241590950157558432593124709446098973712758968162210557565464484676825821664470934763244143144513933210835519337599918943532798835186580995913494820410412860929639197197746646363036967186521211352525203947087446270440611286081766707815684661976302512055465499956558852659749235716962161447855801953827423003565412536452579175195062242009846826518193913107468678312118084760840458451185174605536329135374612904124922212860519706225605389612713757208493257806879240124292751735904388490775449079678995653803892318991338942711882097626074544775391811717209891090356435616485696372772436058897764415579403866865062268677752825749948925221233202369440453611245907545623967429260959531519712032884813396038753192491137196666454734821963554242613259206518687372394911638096115422085592282290693452323466550382992874858625892524390922721432650510224142686981757093846907290821605571086458083061726730974799998238581624527371216787320828999616986046725092614353174196319697747825240851629981642469536024013548067656867776769221405828379619707377680998051896154829924337150762876272598907401449504758227720423208593580548339916799392892140010098093674095733219025178913787998801455956310936004017983387628919109826818314660137504889618100669637968492505640632971241406050065653758027698606111297958476098539772759237238105542064544282564448771360609034775688698546308560936467602574794714624796825963751724185972532481979401982245435602750578967283437564006056574742370214671311048763537766434073893114894217319820646558722157904279500091479291371468921725353701084432507859717377810411598226178381143624517930129874575949200051341281662891685170197536304729609867044461763473030262649762271599159029603075985050741871449053080599040814897292682950475786601895204451998029337131917609520977408065090011444880165088175910106685634269383817849587938544932582304785597613988011693314845693246377547888276697772383890071136537673078617940417478072951906714599475211403149435879573511258809665858283537236807627441431276223259345667707941577589075000536774339745195340689888585641265706109480492202593468575520103367929280477060140711747461688358233976057510961515492486367820410238332173533456699649621283082629478261352641751650556374702553778347339494606687559987634856815369130754543496574736979066513702084231825561867355181901228806856592523871819212150253515087987982056863280155241233561333535396578941504805820335863581855037999296802102876930642130340374244269263801012687277391861401248507065432228603446394060300933649992918179266681529237488860360160473591314233781612030540042600175321017719729954463354847241965062202972236703126474602970195229805102110292252633609442937367039740778543555516801090159080828495513382365587092736317075501944043498408975816877239810005837853731758672783783146513514560304464137591931228828900373166567289763218052460793585826977947034997827716457453676463783267857636796429054036160276549413288992150860697776680957172735512793762272846360255809221087835495843951589509733562978703120383939412255412146359948445236695028609944017167276571960735054298478756204220181071708390872597436663639393851011442464012091111596428640224019497248201530592995806740553712393237787483562739689655952077347923718822333999104688913573598247956303988075662850463126065785162777477033174193238330670953467150382546453156183773501538286272750828655273315781290361544320001235712016948760521842997811268376523351022481174012111563768752005997060114943119005828723820685181750720645003781210633005779497294944180321236821858778687553836540352138826853489717193688203768488117779752289299446736312252072028539230798014677612396650930336223829027065021916377001203255361165475421096101996695759898875615171817438457305621043629608527416891036302677309851003474459538360361623247670903455011822847419604618205197458848684837494330315968704621757564721407575387783816161391266350037276650583995690628895183284760866971987014682275887099626957802514702821217172058288166520800166097538306280094250528034415609917717587129444548835259813549542917363361572707196935460193180778697267779292743409772460910731184365237693770661222447575553140959986687600907887722720322364995148141897834389722131133291508877546168656869983776491671989112282405044915180534505408552087488392241974315769055816247506912037299008437729350707526002894426900115199995721184649491402816421385611090487648186007423838667277514692564305694532927321524710830343278948287652055020653221673770819518901503951096324021260590878780030534003878532397344025055178450476780314180346106743710591272225853236681872103013354205744820363073670584234693344209569323514238839295181851433483249977307545481421760649946524437204703769783321194503978091069145490801077221430044994043101987272140541858554883317971560872576767945195392850416633396603140510895288334771167949997958650983043180783409522665879429810798878074301960585343600430822224517892830329648484889306326541317013475424582779349162588099140889486385028514325177897782369558018907423917578113482710368574774897446744035945650962260568001904140276221466688626010941606973199477804111028101226232904680812974961277637470813897208888594561192409855860429295297504139038794216604250125031291990693605572259442278978690089654960575006028959989719862352496273426189944951681731751588257285672075022611813878436792138275790609746158795336244084543831346385664796611415618783885870138298169772678362734953966808458834619595230078555061606024675467817844654228526942993839529704492143349621468124982675187623449251362314155988431970860109485283507602783444195390959694432677040732538480090270053401622949955068370757699914901090818834814269677477677078931701047206881956573617490899475397553835919271983296006422042558496380524295836407058189617343329363051443229898593430721805231046381236487189850766609121273007461438127324783162185679759375177799060816902817313373973352130481884364831830821880744314548727032533691877164482531019513966049386520626292781649912572760885832404119813508305450060518935903402851810493492020083828628576626287098797556692900163425421959765364054360429424500948270168758080338020248006117942048670982333754579046741906996826059057822211589550888178204304987305566603602925886217296349853215763101262450586693042093778785227805354841141422034146081229435479789148969104275791415706833850837113928320724566458878124988212161973492705314638257704320903720470392496399443866742616951958625121045345582816240892636671010594348113749057289128436725765179498643083491680123069220757403648659008707612405737469445333104090570119307691484739051381852240693218113559836608716047020490264975202258672771924421990268574986828778868763263785785606403187972968359727362910950590707197628360369589472541339010026875987345772356495305743426453707192432352426643336942334150466228539142946194004168020516871985291305869117138141680181122972273924045418976991345933722710416701227942322429884683772612112744551022758926344641134263287879483477979989552829685812071597755141298502058818378785773367373456026906984567090297455034094906576716833809749129415402372855068858288688308764807935331249285909023579936426553785555133305236661341109553823788128880385351014282528886017231860308978548984053039132130932055018989827963520054459269807792838953618453826348613385846728804960045345919065926871994803478680873447522207254909560086035286520371323098634871315471548983871788491136208107923084433316981797690228476679651948013909227766617141545554594908083687240596244962890734019719245627966871679995998772313179156005583274716136568021639582128703562833239733813129256220517036424364268443615104711654646479975986543185534794434692354042319031025657789670725234621216304307432989704374789611195103216057562437471497508031457115002274091742785318179907667689746802011702260033548872883798170592803142278339032524841345456826758876239285857616891902081721832987936719320506742426358356060714640880626646779126512715768805076904794803622675880180964357318780596058794864897043992104416631832520699138079400213848382853712918471489568877431100049827367080271508215791486801701813229402097550540850792372326039392552773013289135096494127218375013924217588092978000039331837544492817500979541230740929642342826400325659947978299447757909132463017690680292844817606994434898742396142337061592025710188695577674003310645314993737862632868518914927665515968323949984338531390524451922466972417626178939781085439459545711633100475193382564600039163348604966528277158179790145703036332005405835728564142197472743827268854843085612392532699027954146604252788192467411162322041634718644033154451906361700729187379906916640276831893897451545129738597609457162940667086604712172939109062652047952427225235364032801631527487450136850544032663352599476986135292715592672298082713907456461379616087794462419317160820775077102574834613815530272780987171558961755190178996704279800469747130335803501727221327555114717241818802081589598645970914993583840091757035349329520908396111402712913369066393002361879997658756292840891918393858706292150244621364633925778933108296487317718421020495078494433771016154491407090310529084679108854646354173033635945067047056303231086731108362702073559342447922442853038159328131395439830757936389357740004230653572629615813319793227574462978653330846980687765969725113054482016336599348084462976100912399979985287161705309389822717776991336017787534835676798366872302495359765284176658165397058683870871024359044908709526697243155261872788212358918077466093381365720851101581008732478610828773020287898917705263706508327328231562623839685569906531338101841350887124021509253354209166440814497594944343064655792015715574968722409530359200258139135647232564462404142604883966760886685768491517780962841868051461316411527128076122368487161749836526828053443880318507733746691750050408415784063834341519767537943410043546860275542432026658960447176923564057196598145089209336286394561017106857762940219521338957727711271327643619157238388551375503067087196398327944955593594914267135026040967129739369735456426135106742851833644138524227458123899870868847232562959409142599378738087428246729478536038415058708427141190756473374430995703629399091587880193526422303798400008932092645710571062608943151755853295214277511359417617036090587249146758201062523006650494681637682428070824978857731254856707625695198785901312836996099508299661601734196555392442869868883995744143760954871801651337240322061335994932810303128555703569911132560153949384669267069687719397956694598695426295783770711897521415668032703189330399985692511485405087876476066913522965320482268939888488903078560358831730500440803390289389960899797242157415854521803135631464434176993317874709385165060332593976272947495574766511669770597467239345624017692576216683578218214523997704860685313380216317778788028313765875933117598046136007169308581240571110502922909012693721003156467273282591025610401999995096410328827593592656202946822589164941949498321096178084471291007150376980301725131466623580046047563949278987932600177813476383680937380920799387009796842164521713022923983030937646556954435978830728409671317389577031197016852190376814925962060202636034476643164199816712461802398589512343321881392551333959969035337197048089365822433595207422656075115437641120852797395517289470418619518124374046074543230189309140086391223501125955928309366193539791969768988918962521352730381172898155647754956295861646386402779888720300217161446732623517823603101005505360552927089348185169952126909066254176529837102836950416266151832012812529074777776244496448054935861840542468696598254471265300805605818699632980748293102349304213659218788226978902728406191402601200414858488271573384472325966507960613947389977855751637046442143497951986432788496590664893542759085964761065374084318321068192593388474632297784884606699412462596574140268518607342012679457614349634380671521871285535333225088700699226708928079025817378406922863743930481853109833616570585814862679740561539113023004715168916496420761705664670619843834934265718174783888635847914388689363465838853460507128438279924638127401019034409364480198664066568317094139888980388040046353715011481212893939390035978131070673891346675120077683921091305570725580493782488605668323027734267274461431222964093610427183730566427454729379876580511800631281394475334946083586492628240175002667245653916642519379978133785420688439972832918633429336299769816217936265576091534957356825213088799855821853982031136113580255709869294914079919304915000580087478547567944966705368449800204881089596608610522589603873705866808948749956540672422569856209246842575214177880994440442485622148127282349178281342942843899528113566506983323478812247640225245314292338268182921681618558616037275532540655060424675045429423246867463629155148477004891430708263578483622204562666006443918959236206058089874656660021870625752779660785876330891882506550688673182226703465455622042857729067225214772996664913667574114331324141893151792786241840100687065635513979395455589114727751137328677922903086890743318203990918004998827279596801689928261872749661681330993121501096295595933263030727133876841381848385819272119600690282437181504103516516486488287974814433298061541145003336116553641724969277670328711692833663236290128966530622231260437225080363778317614751961236111478980484838262760868217305584616891568673908681748961539160001105196942513689488925821834573839839040267661219682945492813643583742807418613262414561213142744265315948104786802807343182486216171505110419612240100744446607752269241264173448248613198780198513410583240932398157777009074656525205084424487546883052739125452651659020455389989606712782345252043457795314087284186139245002972674345511750889883475698378006392775167331781609979577173574868044100851208083024151502609412117218258227239504297036244160531166657784014544174656715324933962670580027887010913451406843531794451739597185327138217980957026665105425729979508045005720539828127891940971134331791844597162438233394533816173582854928092611437657109548398845446660793048575761879648862025206429861525365767315925325231421190845932486618504063395485326284995612311941771029667265891896820214843693051119141343449707351421070207146908798882134997453579758024664866040541767625513151206044513018633602415727819853663845934885125835970031282738902619297147835811206792032737213067439325428983247875739514913599422775351214026952330578590818682455240448706714435806255730901052919951107480724324956030184420705539626369937950795872897523560386895632729916334337108879057171678808230180174461160261749358430490166547311862404042819283620615834678385893343434404549680396403224430595191587951302440119983471322652112506242157960243517352331125299958887963731954658946774559576886302381309588472857917454923530458639184249319883507835025201057737861609019379351615743358551407623491356739527420416225109472817403844806241140562512327113802404152636033522960861243136048213523434409709924374187993973483409440949478040575139237799366859312544722146812926702473678036936475022980628012362187271172489592589695951073916153418822828837616267236477604332731850153227720592884169942017040830178081393796498356284161619934504469989063152722956736195462883073440336935247380190878982011433344240354190409808078905230353932194711591028563368902823110087288417719691997066598052045990792514196591193749190642118352804795255244645390092810530436790741927461002265668066770691960278207711661693711522185481422006379747857730359957174804815201030960209460396469677230806426955894822420651254895655709041586115482048813916812369316640476416482620766300854609933327336625295414885232650492183229537872130772871056951037736136298049442101998273331367530728679308259764847711742975500002427523162409739467159685887700933346842985644742314888815157979038071099436405164079886580335660225518361524259221166719938468656388787869100025234122596143975222687537178143587582116574651638510946077245245789080215453975567524758334670216246306128853787015874879499390684333194119211471230461705795899016510969103601446918196398728960767055106225327838673617645939996023609454911276716056965176761353549298471281609053896575306949436925697072200849078408576249374147677648662650409264908673962227602883791556910013015807854074876628531968177053413288309165306509220421349850093825363846434263436480558683662442894838870969593091440475914585946048146016706221414597625940502934320663645922215972263668058117437424983856902747175086361460588182542940038123597982861912135005093027012274004619509145241115849431786781281345366764733267447647141134822975782039149901654914048196917810710894047576650336016706074320802855296927975490648028915227619595567168050717086651560974390124061186596167364612297074425542692153344426522001983183941384707972713026919215837075120743363445194839014195619105200640886023174265389228806534640483966600288218893709791514141391554677754282770641789342235320047787945491873826959942463840494100389250256383813415563342804745340672843415544630190318690835804506503609308539242372680845043937395651610525929882080746353474709122457164245657492745156591099432415039718754682899336890754260188277244226804606933509444042257904659243540958372121142457142860622755348297275275417837709912449812231814343542537854209567263296845840863623142655358268907829285420877387531844022778131658130593770338480573208011981476251063307617871717982275042779066105218889689346557707460158615715315836484059564700953202205172526769059467978968567784262271576040285977292275162560914186193203362802256541290035450987204394913322362220947791503628897089547010688922235795292254518746763888561450771695582700714161204179169115864393650202821826316417906360361329930837271431891379740310364293671122823730113041084613114096681407698933711734583017732845252627678996953997000255298781913900320885002946811976977710574959250747419611056654372936221533900080492514344420952456410549400669375944552006379947296435667124636037306857547684942558498950328470326192489194968629690986729853942313973921331677860802526620623248409060682148629567885938026730095513384085884274862128438598872002335438975764743842839454104084590699052613663443773034328788353786191804380726670553942548824341528251699492305367720719484595342108567159784385434933911803434250637675327981715573897015974457910086297049516209145425538930862197915779683582021256528783445147084117489538327989296189200635786268463297975676200876571252695580174175405351347546080783850358583275085319342914942068361514005259754213320318881056447215763518040084994230471316843329069740412742527602135922770955135816263721144097441852443748254951105226556029050169584502930219067189638323981030990559474030725637114260697310374149957601535924713743790698118331496121237651901574046164514368410770837511149177057453329154692606194994734572595229746961444250949506375683220115264598359544876058100470466806707603062249019897238259601294451682481996057451004580126637825869585593014714257323362616654042370040441743612098830139814252354213940183159241971002428274569136790525122313225529392719100270624564600642158996207952446414997525156025503288724667113011120608338748969603575424730852424703092951440609927262410881088151332773276571236090114640476726233496635178503908913872231588989462220440083609647264128687346981907778985295592028470350779788715250212373837915448287771601560602930916419526345326261845331995499752320098435243875228367727595616678229062974381768661279353624747475917907297547409929927545781721595880601274467278754853822079172618735760636197590169270042941097420827497905211704936654693976493146191795232238926764346953428368800519117476098440871814351497221351331263841314286744221441556963338415116945463478921064475616932737079317083610177589309508975095437268935724549026630149921196936716963599636905935269724131781699133658266470640731365502044324134613628057930034781234076964068296135898108546512868704371811842283871745850944486513707893947244701342007979815043316962591112872260673797073997054840625066746032552384562190833248125864176118687210565680459750364879016706624055847071611129991918839642934390877306407787715034417092449387992146689564354883070224816624066982081631254190106456041590225113961353278710337333046843008160245329198781159609192729877829368123825631905965616006088505286295293660507057966533418365262224883834538187424780054778317727697006425359014667025605715395767061760960817132194545362950988104379354835710868639393475828716093827691937228900183106770691237480782694270974004693598878991063712522583368280825591440204157864482626516233347177897520106774659086890675642242089881101777707017619840200287898016590416354174352561111914881219271008417351813819266192646069522625991442673491774662668481836237102456843912370114159450732178171504478375907127435527705425192016016746708522994293050755181684148756903668774596679549029390946241758436462655436516689204632668542388793192266989266646662640614867099934850090088921789921444575873047381782679949836746626491178757228536096666320624072797230115109967751572829304543239136701249684753420420787114385698013071879294928102326307714823456318996389997137539780553593976044810987291506896498692471125985149510380220727115106022152436698679039872194813336582390735808532884704825986074281356020007557146789554538442401207767957342505710847053753913686791404263467263997333343354259517561015892159041732309533260731978148365369490486185534087889390639166555040977766186057468285500796612648907242175472180999287818358263457298696564008514605091121357962094827476496216885118731332448543247901168351043831693253845677814650886412472926711889050398078298988828337831573233869783036360494687283255936903856309240528997380113086446021792653741863312149266316057416888615369719987975375402355332502832495228724052779339565629713660884538392585037031602062718665959393133316944249340102098601518553174717869934606497205767909520599212060671355167859233228111570511301241788079343863208381269381829988586929172716875992381775644729011375577290684324641961110115750911323719201392097163984126289753333119587784828595523174545097594435041669726505834045585528691820138795625720737248777758406443637479398632098102612470629077648267010008407262952358377249181370462116388337773700539694545284762881391250867458231106328118967305696320233254614206668827485756789974643938302013661101137073102107538849228845195132947220719875738323859975401563092571161297910038723227787203433929757048620996335708503709080862908610584768511519353636566766754033705263992757204387420950452343613237435718215102655073501171969710622482551730825021992203329950579775413721761401227718826827486979867738033580739047695693500293414409973727421563664063541069446601142861288491812428432227547038415413249667324675399839285782883623884632869843230782948373445848022139026609239975993216426180134715443017850979619872348070618860375925929779000414195067384375852136404139532302688824596853333584973071426434276826523426157368144830168884199819701323250700660275131945072926094274427423795539237135995614472971265059724224857224150801143464984014013695916063667546759913545224850870819970994914536599284716880592787432439479789133098741672333517995223938609323565597182735488628128007858347959220291137344928595601092934064462142153344517830314796129207572617342233514931210472564417119452964829393279918733306936275897912944358261210625024554480601547760530575054418807979120778544300195139224175185555498558380901106422985617044290663983771019291952473326343652105003694665343736390063801264042401806061410717775542184370447874545268070144777417667155962989774769700375969441042997771769025146105049859716835160927623235069010120335259960512725092650071890726876160118845352332321728768222652592733263596065342225370678344245050425917618925210357505349902473829901806054104666007817084437194866051670153890661987215415674070713328723042154851980566650295400244974340164546927498532403693829868006730032017477669687296692215074273548339831178152152221767905905018436219563179592009085984165032740888287346936321286397483813446756072912162345802988347830040699770131857712535999996098649413817875325070621412426922969117337219911532307255590330578127832376808208351578263612920290247364354897661808866432596300838168971173194940657009381627042674674876308966995447429479595702223471573342272980610178666006507311144360917305061375674997222767785911408349757126455423665061393312686939778489079875566127992346835654442132751980458665457695017936062076447430462386981775698985345546821883791097257781308565563595056101977290256565024696552879716387378979900588044859019756441629086451791070201823458107631342723765031834416960371938820125611194943204444911719294136292547676800464591040432300750026956740477115392769032949436554896125427799394754344969430798672900097663434550112056814509330781823977104708915737427519628556505615812390397689825166380911648849268580766181189747182291997422930111997250055299979581703706366666030749630351760715498687478507735127497820051284464722781775122593018244302971627371894149360642161969912657546181898243041921937295247238093899935938621746382348619291392464468853588427878558238365111049486636592510973984647806653306458641220555390284222201512084591834248208222147117193266568657993728877227736089933208649171868702480759948497107679763681988188673725899190180728411733587946791412449219780307958286237076944071858202664866996784916813573639848487902316057022699306792823712358742268688407979042242863810758935095636314214954211110384516834213981742359881168446113822121963872315279694083264331862118429192282829108189005339291259347590084149085475732843556540592518730079610689186301437026377626210574238430794540118024051754491622947729437998863370103245297718643547380624453052511833857520615664748105051533568315273440629662790938600517744862552565222530346152262573398076358498822865464335547856380067282649114089495816358035959989261198429283658291747721772784997725727319119004675760875024352911434111237948694608070594355178442629290546384161454079045346541764623973222830131073256707439590067400865056748536040885146003880560997283160865723755544881707001207658914886397605319925283863095423995028375990540916055484383369916511445092712857455761404884497574775250975436938989909715085114788771168346474861532321746769437467342296311835956297134485294178897467805553228888039584884934413511610758341675133288754087540389237610697761828623842564011951376182672316393698401145476555257672568840093560895142512304448724066576306744291585859632099992609352497507894593344024924069201987037230320889058010420727633793965129764863594650132331585334091198655777177294378934728476248476467452857791944530466672273082038261317269458065472991163711808292906613731522906094010293234316814665030914024521213155931585427196772491310551207615969987961114773982143769744803060305788569392927494259991618134220360471094455312837033563886793853908853798451439824521602765394498365327038463993331458755251070037485725742065111697121207947322843290119586690030091608319597331239935581488048535987332005007495625544688267091993791487381732815886493515772433302963112881245853569775232324022239688203133591507760662146842335047844057786361303229011273125157660965220079375023164860912191623013500949893831852070314618331123401889998332094675577184387636755420933582569936321045175327115151481336886112895668810826871889103643929157208469813597879508941559316706409880462818289678164039605681883191425398567975319991539613096202373122494212687995135486712645278780926307392216146081910607641649103256233260285575513655450200872391538814158659952006259598601807819224677990437099054781312068748083200456580808783594561576278941960328066300056997231193317166675833278866252895685454344761186947896072213310294166088261552371088844981452712876469644796784985506917552988240482599887736954066581328617219535522813664188121239118043848854877971260729684882852967774140220569543080117808798540061549212947694550155917507453678830432164295471795924899273167660483046745495423602549778623383652260103500940034018342711578018152773832718805438318706790833690286468890236329609535211063827419819092074820132016842762177968358389266422390414651935617798658686223634144759449011273478989214732119017642131714515195657322105288074977488048702294618725990518740493317736034213006072281768991201736110246663139556644942967161061675650981447904840573275848384756798462724957194091345160860302092546320713945864493508290096177827466298950183468943381773925822119946719235047905275055987940175335702723221051220185825718498556947520241548073201888768762125452447783549693835545630372560493120249928027710463781949122315446353565854964068824868974523432194896872745222700313576388366455490583066653119644288073641523727961571190763356095223788528221439831826443688910615449094232342755583107649520837977761844533081589872072575602583260479509727771031627075703510996481534621894002342519929428202258751698599741080970311040082805794662299971999588467294347483663372091885514493994364271382070085541732235486223834328372730109791219948712256508057992817782660883261696604704307731418092519745050412048248710936369884439621541026561934265874201120234644690962509781312975312633435429988968204887087777432086071806642570165359960568054645420635367373136313098127866533677876701076572337918971526194438165340799552773478573727161986380883619463096016094239857028504112314575098861816483617462846786515268386761928895144373251456554871822539794748349644322965253691844645329423046328879151948854196486759405449372764534020814947334069718931955080379014567777231732673623701174779312301988942962145405336076143547850943999879586794200065875027670776091983902115983008250136946595862233679897731745781302926942967817632238725928482988226618231640964553908284630386699668236279705378381019541938494524327216361017955190307771286157132498692965335542010507788886751325441380799316454817237196346500813523428427440869948228519051443328353617941679281898929031082616864075495453459327000040343286466624996268603298262192385643909604797360488815005312074706458648586792560168762536668530555116095580778745913449683037497693887040351361278608322858986092135653206971713641054011413943307172086036901636572019072447296899152585181676183177887392421944476568174389679750945767650028971140618185521853573073801465106257563617576652238480131547641237568846815266276005195238482483870841382879627374270665150353002353339167198132814538547368543884616933185188533873110389982474628999303758254629996330535332723161379027251820373961125860830328937262288055821283724106766551318835132356350436676014233858051016217301589049562498151638214197207574871079101718945524433270457208813546643650153535478212972821839713846843684238864674499371346252021732201475080239189217957638176406271049029095743151027364804008925964666018445579982675331650355556477021170970923399233889872155310581977225888984140980020325913439682418722027369553092690896740779654137720784881431464256062759249704603778125507930584022511437185370731778780600526751247671452573536907265253293511320726867299839576702419136040252229334605271403194422720311358463497480462351784800505402770267073606372276290610112168347433987960146533591561013544085023707620602607346511443550753270688795869648163968002920789142042840019618899923561937987365361484860143001568193600793513786126349282373988949275574680858507494725106804777517473851554566877506965509603604258072906106246397721199627446616896640840269882804464239359109589999186758466414006121602216153617473863751129084960284622821937346228413980342676453987971403432616229269077744342051760103888863652212667671858451713722026870970070509336730629185785191400090736083323220791547372465798984667676463633269706153949343784253365969607214169194385249667314600943856122926799627732026100648180890432431647034733050707385339866701426329720489335623343538919369884685492587781619962113420512625429515327684658570781317284884184104403861080551626546117917177941033096503370653214915599631201471029064626527754248888912586546497327672263773081706922961697154304348836280817157975888891768783687024878282890165601596337660500875359552458051582007638756790504608240244457486086131588818390973141809594220615940584754651401671527558166443141417841784979851291350267245994558735135868093796949319999603286281334343138613790709752117623175272853924622748134462852872300482675221062549140631997340036884856950284808890153561693293520984036524778883166239349479286312668376253618851381271195877743634744401028930692046170215928621132750537404681141048456089976158254113378072139922052396375010063129481516688669111168883158325285129749522252651212182591029425485805310764266505143594290097283056835140705698464983038650485888009096537381486494273775793664762060102765791411424420184063888557379975620240066680937044216482937861274856581004713614249519578832681269770589044533910138788108415616196164513104557422450390246222333707512479140864852874222591259317181778647066312630119621933059002892630123018302789450385358639818009451226269849693039012383180881739204044539276596334563711164620760035189177619584176160055115523174787202324144529889755585833108875255554123787261017455687071840573307571788494470599304788898151841956662063106822923876418063446907617563605584218941315325489917035792357326218251692285678549768132543747556137272232972955389914393299739917188722065366235323878216069503608850477856156121815601807043891795081208679366438599321939914872941268578585415959409493411776586668343227862897466963289701688867349672365589494450567632415476927883322282440469262597688886523160867162935734535347322089509751912503724278896409297585594573087436035282707346974024914813983742295881193536761496524083111154456909503377873057962148997194998070732270932579533268376429046409321318141151524962244321054273569778074173228902689482375943594392717941750829029221207414405923931169864853550853854861176162545414761607743412607469149655448364519046892302131801396997963020130222920479138597687355323784273988006492214804744940829334725472523393817214229086550316353115980862071211365323342323402101156000219421121079765538296669029689772343077784014601268549759872827584155771235739855388731141223163895479415487436073349517910415119080945658248287916784627645632933805494469443668508545250870017688647882636023503126750393163773794434971232513672441338045564670534736646440986629872757041274303551988158844600807684177773311967693746671643721455966182644547510856800354468149831389067845017385989141757967894225415607245854829899719237463871162037814197120936592029717396524573384564003988440838839875609494771093249074123769376817309212937041300411232710237276939838540568642421532708446326697572010933311524838119671238525239160896260564898162868898820953518594788994414657091285677540973924906110295283045875075453057463638507804729334596835196827015375280397479171065505595278653001109091808599828289777377209392481080709503723822186410922178613534448983758991757619276708586785645972583903493931812709837423507946224647961397808821725054942404091394989989093965475543378572019414716638571371333509169785525360388321052452423071204315314006862375151897726502613383076596681335086359995963907363535555819322450259569311382260775606182973720712211892722108496858532700976697713324664546852664348780249770941104388282171918038749879362215610766978388678500236376529936089374740240173288623236082375832963231897716730591311160799989086286902342128739122499801969853269754774417444123512622668040693909691474108056962270769763534660807041751180260893093022399911700273234655190059731496974135058986864514098454674713686146241871487508085091589572823690019208142993420355976595393582046185077877412873488554939058965260166770351546586748037691341726995373482896528206351699466794542359243749581577083881593276202103743953848522132892674065709316987214145326256969515279671942072600620319621293266488590777809918616958623198240261087182980973405380694208007062404626632609856378986948679244947226031376072156210644266659003092184655741880034147162877389294483689334407094765481351679136093269035021769879483077605653828619053486686066673440679315406534845130381338317810354326147930053497879435654816946993084991052668710376444632731466120931488121077413861366396812157821787896226920663915005406851067126263225654788741441405622434321395595473695276317852955659850577444261509926125953224049255110599976850740219461622311497656225389317966950038361538286297203670226293711157558053196449165755701619340782466485736608553019159905445088398952410280841259203104219655066174213067981225020069605441343553128740220186122327036944852797524556101116605074727538352874305498650120694942620230457181588633290093239070779221991983117167453168308070053276639909121782040180794643866777773822266290628928424548930477024528653559660303729825734075024019901814954694791470416031608686610324639644104717681431981029813297956679478878870579217795389021098758095869454883935154634652521602986014465024756536636747644122191403627360579324473681556321325076222329724342796916709876303276069777487334546198691548082527506762738531509707898368512970402686759254364962957250338946941678657166701090992474112577880562074199486785653914909226559017996087012812378330317352650994790713405927007082951139072584971422098079111907281134419726840297707506879227469389622798705363674409207290976650110035596805424092605982487319930759673379514869127633466818244907811000484250294623255972785204206583091651885785213062863660149473976227647089189256489516855736960160388027593018884078247960220043436465395059391073975677580816577241359534905746583309084048340489441815606469680550887313165917092368319203773520011701902039293620150334060472472002596550149418553243857706651885275493224389527914616377416525725046854201774885659763215106926201697259113155768831579807723454575598601382278114460035564747590213093367572146360809688179071103135313859905426171074180847783042452607290206889218800456908598568085542133341169133757371876098867307727223772264735442850400739862365024007671767934670351947518185388401459677928129454096906244486538375269638813609859425352647780349824452604013382911743512020731615372083061952986041857941945073776619583623465102360317111321581641571171694415185069616031757274814128569360852515277915241995182103875247134773673008918793896423302641121689173505939914287805426171742111850241803875316937795428395598054256895509456714196506268386796283153694186335837749119768138563626684974582274179344746194357595168218688782918715976667826762259633981399932426229599440345588969244685784596175677741466975314184412820341296463905239959932535893887092249196559377766747500922639395118818002949198168472252891179400637994736926046331441159714791524638364390413131865070707485518305763122273374768532058337627541428696031798416759935222742908665062172516358202323562561998521973486404988769113326211361115360543723243729429702139230959268427151318577168215620443242763003197520573212457905877610301650129837118512121875543738671315336974648473346117708067647483248823551185835833067395672534103537968094568637027210249199615581651079449209082525558559308122084126733126267500498701387790578343119665646395220902684721526428045550370851149635341998797564453826930637119878214392603038590102608126631178672928754271341851758101201315599272237675026300040918393804723924626379789497598033205496835088975355568434018205031615418521657577732606806259014230320841207124772617345874090924052516605050871247400038126713287066697850265850763934636727791924651846707075692155328982570860490447138597728374974840385374840525015606114059904705277055058066840817233789510873397592020950173776415401796457180925636160672744365735940326799806574058428683726576544897210674794969754041532441071353556415530080169948751139789807196540645754277050795569642206081496423390563593134190367449678920303534251820962160215828216683828550052488339801363494093728909908709189901930548024303450104817798917366076221966524488139320810109736799733746807880021691282695262218753027323154577441025105819996277631239496541118266415668362520399635960395585046929657239140394007496911086384319473845426949741225410410343405097999026819873885183482229170167871315488985613733092622474624440575536055325937775044175152770231293431790285733294776100041023682575986215385959496665602522598467140496293074504108985270751863261024290473717095632057575452812898108671452702082432801407912038842223824993393794183255803441583462016499920752994578295375483839040915508750721837904812394530793936632411620675302587472649402646470313118607935876094378983443339285807076660355658704529586915930508404346209639540964510716108705970480475209378324215289546246014320496151453475608283083537126957064535066479026488031549953846500628509217114303982896174048290562756674159025169629789570001578661659600996409657879257071110906216316878640720526017968719354625947992434042859737266131738353456135134424596424413205974386195170099242819351156305914846248666740357345456182656566478335927554861338350103279755519943554921410614591053490158803373202746543529385182800847135485883152577234408762021949084083725058678748639934988297863539599264433026893040821063502823164977274602988549711100133271335142024456125638946073716239479784947955052554327269253927012177789803667800806577251035780322141838320310050964745622229948145790583145096436934233597086622336931305257101266319277841689661622287525832098727504379018611816716386738624506845931395312848144664682750411629641322678184200417599186986749662406626861190763937684437376171898291795693752658752249857685789652962064566331980123618039181351342345637359763791949173671357115628994034734779988582771289756041228771656026286546080360669665609640358529425916571429888297397665497479981813524927997634033307887965011429727030152267412005734843587280924067805631954360180205895460426678322255263032826034585805530503528110331527700445113273378569244429315125022963125454790372109014193266695205299567914883059960241360277350395935358627258843580544583465520291831654689342474210263318174154868202387233569354711330923231758562954709701236396851655605935552226646237413718907078777923585128117378859683977799533586177665525079551640701565908542923452403257472111239802262575610151064510603643582008841377618369462427837492869286270692403621609273414233752194525800523367608351017227733243823027658495214607394663836367998634370812777728308081649225088221372917061706951453141567470632550685073002415695993645717881359794923205382300354947818880088131478839267281167409165048070793111902964849363091589370931819034646748922335123387562192199540314821860219302781027883310317076571502702640649185892399723279605682521062377457730004946578225957374125272230780936124908119603849285484866064804720606853092513401739024882252470440846585221470158989716586523204019700137426391060866083760289846871481175974842205024786270646923337458389982256624763408892719402757605807734067043525840726997787434168180465618175490533795866618767207795585777479863320469937536779374658962157151747430075620783376475985820202543360073020363557922389860864509524488801828089403462194209912039980418671232545510633625894700886813009806234396968223795154687419737778695652251910434154960174244592232652470663648828281854793216927927183332890045944988986225880401683636799399553462519481316504809790501771198582639407929051288921190771879594394423382726540648996497025528753409999847973876374157259886323493610683847299785856293030358805040886633131497911091367188869374252092735207602844476784237480714668257074279520594394859155783736772895480567886749167425993165431242981863588901470890611002126910417351190429905255837249301532032469884719623528976608049302526651687510853475116751796982283070040830066998336412459107163328347365550343036550109533832987209984771414259506900656958010134413043557740816761121152555391756307965360107921459181317804307846228190792526157656950545061770787899328457009304556419408821257821751746825405411689180254557672465212445111591918882228519963570468505695491795392531936959561864005222116288570408172052760686419519446519796250092467009496821013552645624808243619803516197773234406743118532126182405499348561812056866569870602888673641933624846887733707032898917221984907422309010562602637522425587113086454006164186966547336665977641200681458708282754133332155500700591487496696261676525632240314668550529487818967966437588114222536351953216552901587515352898158206874867368068176121615790242190621686140092406769163468093240311263682417165164968627599612319981518948829381580030598809832777308104404577859948831315868891077597462456390961157319761906293733001741867793933392346265505133352840733419364717302530515771636060131477565547117031646117089474477026955801920409257580356755977188170258355458982913979761765604703118950891808187396912095965111273541936217834807315512612375203680926070915326311962504403806626475039340652945400210164612194538281397101488186241998548046062524985237380754258484331636500314180756972845456568856458401620734507668958761917839228205733176355414097381342847444405954023891531461953105198495784468610150403645091391074701041932994401272896338152739468430727216092138027737578078280662673438853003933591536744464328463153016227773073596491953986372813884227561086677460725953320053721712445978845105877429289619201060461500152677934384654245167963690443858462071885892396428868195999520323245604160284403486798910864351052606609783858166126543506540412236945801574397216765004131940655653198623713937761082805346149489610165574182419047650335394367111775629325416818560912136387585463183458722050431477661908749392032235590974970572934553654788342216662058259080720733540886493597638434669351092256968986498631452129884250229319164252230189509487902621961410001419851346484339844407799597550750801751920748019300473824014162958574180046733770894238991710215574936190309033609492603338130655362180926757530660373004559599053259869837509277026940578563578249167301749860043174766764249967969189811661265669318603143923552390806117754480809899853543551387143760768718607268589950782424895242451205427001435511942715231717206782854633700093427921598377440082113840544330783735710051214848127665450204657897068257726712175875663661771299318358525517412998525842828598750100108485347508851242443327413905555135815745547349033059386733792729913740312373032885564093866909062372878621399795482578632536920592483579493732570297226197656743984662718138835255845230102746898071732961700921512865987070673016318878796379544561874378111996479608151238108699952390746148228686993287977217665293132651094450937934890085404683660865461647634058895053443885520290551905522741826106986499720449521822798472931619995245739273633447958869163693557673154177659283925491422544091987670880593863719707949256665779366334847938204839134164679489211608191329748378603091673963981592615653950821331542355883948018120104869104754135850687220268586806671979905649870333037109202731371895939824700887457699908930835456584355927239901788938755741436370208409028076797310993775043943239717009069623605961468430687868816350560310432790552111122658929746221821755912808972575804978814389053699697398236208728326793178066151939709884395338805952468526093722165916918399087080486431397978338977236103004734749530095036023003218355728930489001318374022187829791098607721654862804254631191821332172119479237359341261330153191585178833881851158249560158984052527004134676069062886163914056978921696802230832865955228502309541512081690159432711023260742444231368488059813254615162714607770121351848124005265800802195595167664404571597851585722579170374151881650006423048725514408267091866691984207458049282879374888314671022017981269199228473988513615435551885189125227352771551603086521300555071594589813010873831303932775506537519310479109712212276516842306041796941526963457769869198277010441799542596200045850101465064508030870956389659511809969463111660131953974207029031951944138623595573036733404700154211323120084507431172816422809108147809854830402535749586091370764282556984947027706895339079560018558935876987610736709931266691541279945542207543751284780412708532815194749117408678624162555308273178864168518604235558661189588139197998110655720635535863463909574810078176032414783085867443568794567937212719947618724647144602059172972714100764169739488404680464600409099556069209982903786614008055872835403543360027319795263238581952377442624254367322768470825388773495668595618843935894400202150164831833239393037148747029733924752087932877013614496279856747007458880742722770875426109918260877668216820281439926424935289302070989190049725811938089850925179881584428325262376363754707700060869595321287792064183954027899478658673410416389583252382467247660943857026281401738206012844297024396319620763459284665515264363673593693387249629749121732684879564237020842534109682874984661941564834604633905544318949461197862853710537903064252486717595187434472215716154786624925844372906156921882390057527508745672216345845641599178449123024413378847037804619519167834781374946762524516762552447719440571894552783758298335946338901608416598848278717323450909714849264121411428938679025895406940318893995953274006949143171503393047471833565852497552210249326824179423209473723135505370201071039706237532340378720858599099288744586866444788630818340196225236625690118807878310159149048754694883855571173332897888648255348862792639909223466564640438685402350116559449529899630940937370048984648904756391725514921609437417558058551364686561780264410690131940567075393070142373826436181006033898280541831291597321821678660921677685318070642203806976984577983107793781669234065108630614570134234556956447109898380383713512711751360466440956511075861377319649792312500723004283206038237684694166068774131425064897886445267692758569386158131501143919894769765564432026085010159581462881665969996762774109363105784011942830486509895269870323414258237566098933954832492192905798922991847272980287774971398726231860985025603634102520178492989691647502654829608369394819070443164408620857596815184800535309608030750464057699261096301902975186096874908958928529960265901685984902920993080326924551343361186861143326508238338579559396485208196660347479687261503292911830934733248153459132918614225404155330789675431315705428666116264747152398908174112565872439219887644806302966394483508752697839011376015622099936199650748406447537871044705499288293843834026356967123200071704844623417094708196189203146545014552135519680070912713063518290131529703502520962879423587890661801613194135422998015314792467240834297540152688756590449289928545208070236649333419482045658501161300817757372320874924048424972511954915084594646572959361167099312110617747037309305963250842792777888640818681864472091180499562810569454875844866989292071900979478632908338441718355977897919636162555838666672858194713391835480759026733568286953258990437898654363010569168910336039937763477618478395779364058896727338096777886146632537563537867506412507693107900700152937404118561020588041819116035512471488104145689935406540824790685132839331262671370536667441572777427523804232962432974247761195326367709492841357177835686955175922091022005360746094374385648993191415055693124048681953239207969050135816409193304953915071293422812231730546559123720085147309569191689583435212499106333522019499067971772489530749650422021133957332914674292446165285911963280086369792576267030205924578670157651104808548224984012585254396269820082777241134460809741953350426334720108088495716131572312544864189086010924471055098071095876896305039612558470683588061273329315131236569213120049793537035897666534286228692240955210317031194596584924786504271233677821793921051864940614698794661378054772069795413215311919172632088694216306407551285936897634641030801908135267866277732929809207957970441758990780917552177188451999844975725510292028531675559912485662882492211635065701117265108390583992146560795958711932122677198544111075594024182704892302044941667269889203770731137672888474900206297751755999501567421430413604802531781486040429602030480494211792226660329564425692766462584345959750600698502925643633843257373337502119630323410061844632963565126630805433232014504724866111304122039033524311207208056988212249824198172928066731581639086241849540505911500694355368384897765514904709518051918019512805980040464441174563284603411232855156259749136391806163863353611041713895042006373878066259142619404615748256085780137794311229574579186602745682500335214606432740728682274976191350059321194711844540422409848850657253907694104301054577439162386367233102816902778702122949032275910338142786434666689541677661901653838073705322255682020722145091594976161415363689266155046718616844855496630495257112644059552478583137784052197007716838602695210841153723090344096402575767238056737804589272126384535803500873357241499461996594130050790901917062041058981987263319338401742811171602126236102673247660302755143524723992849167194951232204430484067650907911112061132908377815830147037476525229179465075893128459645865850482519187205690226243310167839278287364961888638224214187291771958932113587874788838611074113705868868293889882422678285981067608509881548765422155148582736477708622860326980082834623967485235780522170963203866232485311509767366860326723082428011572479569843792239577658604887323926526001893673603649073885728139653297152767675055108848341706017404896894971351004154311163079550725164371346143624625340468855121400730736935085379609756259479058556251746598022801985912039842158380083514462105702519382569738375781798119406528313015552172337686077448607020035766647342796048099644913484071694950375283303281626978330446139047983857390560731975698664327735090786311792907890279131210557398623222224026672295297164691718346044473108695828797259525364102279757001533312518892688357695191018745973345763442793882158219773504381343669655176549997696428451097332661165863374860752237399180163729882228522727643569112353515763218085957310517168261770171724737747953222806521637525265392857711745625046776252304522309919847707224615884017640248869093766217554395497597632614620767421063614225682313048183955778314101338189261429848842084793404416940105277261500982273972449371584682148132791092298510982340795557028673015578698662221096562183137567717930742278734071669016133944076181320230871647549088836322637589235549238165413757155158666880874190290866770725233034143234510184537591586645229843292557351241134874667251663276363914298394116527058200010310880301220760354789199065055592424014043033953451224449557730074209408806120383214349228963392938442516680135076827490239057845888194394151460614364044464194964379187250991941585556368239255561562286255790715512606371106687660259606300236210419608513839498344517306054217973686581478098737490175695028684742394062819600590443001665078900480201163702684635538096545871406913488814424794481353591376168188452480358096654222836010792301643989704797030379115579529593422485506171913112485606086477793238924600895891577825852685233718187020895135290175337235438841470519159522230398381186288090465543215740866111652768855917160663820194947467066673166859061596207105884880232123846237052723096345710526877115100645893128083222443607842075933768454951997083868430102989656257206714785928717138274017741468037641770435889664288159892950958880575643719679528392388084375104139970628179794186583230090706384634648600378067411251470855652039970212248504619545183574182755205763389205303924253974012814084090458168444135265603333166407169045379108421181276527447917470944865074566428881170216758001883132631256788575011733109226759648227847221456942030946421213793996557049084683668531479765163434609871524720060385173389396262772016672918785611208573403011718624283568813819596380288527718544193779976744028043494404698235238234072447092395540276324816722870911544229791632824209395991820888798450436347572063889641589164998956087714404313333156643223362287283067582229244250070572519604750228876684155587518814894403692789419965345231428400246478383713384068740243769200950379633604049648927017486161698482848632382645865867336288896605027814057557306830504644760869851319195314652511743183636873549963386661802123546485550372620281490098609359233488373520745126337835279223631341398463742232535072669426366316618930981259790402702058878867974729516086913464684862374617336026385713847588618397164492383287620970630021803961914060646065583250791754957778035552881379609071013019579650854652083447199580665841480858079180551589604207862819724792715953796013148385025029473072804009996320484864679857381416991891560363846517064964571361929826576568274775516119994236549241490985477278000980469093590300506813909458393096275256900678247527237334802645369936947312645502097682981485039182492620830676697688314887498373980290868367720696786194734850521306577563737537036343100173875233830995794493145254027941281908747496022563690013049145291317597173305736885748686974856081242773639852392901303234829671583219481632111826242796536723945911534559709021487304398314910060952029397417800829199723515245644980861417085582384350318741720668221203966285686167802888379331945955651652174557095040438770589831655264665669923882823704683628784819680748302741719988012912978949584794859541438624508956986788472816202173478494850070474430585482010469756464825884644150210019014967396950801250427334969371676178342035704865422103782074487655704210823185510958949355426548829518148841658269724972228151848995682977468383043038540865618430078307024521688426470158738425984757049554658670938706951268776653810428401211624539381596502446439703944098162562210948906282881614325711486471585612361593223368207950151693500031329846465466563059856043646313554274931919537584419597643696853052774970399093650865046501721114625660493639160449701964505773064522214665617366461777899494518108537876787101858767648669424635120221784302295594867107797791622993496267843149704380395912927664181642826365926079551181452592490059462171303653428941773259570386113610743103397507984548118269693698613304207673782145099379916283994709323357829932765325159060497196767062405620899604760765805656417101762853267966326803743598231729932958816207323291028890506747011050699058574059811464699166743229072789397013478005448789059625663466858318081904464877022575980801533462746632977948166807058687110924698247488643117078335007824165325421308260103245665068067887655356262635856716091856662961032215870649333583016429623679649454834088248400063022686852255961969928326467865804130082769560527071296113553674043856587028446674504383715900900769037493919597682758754298553303305715745074620920529175256690410300532710521505402430728405081396259348965208569936548192154570680450372205039860195997005012551481182159939271273412119583659024468845240834038623796797847979958207361679682402464570372072672331749809012488181306157885560603162367466231101919938017599054854005318595938299458233996442473824781391838272245918420439165672178510593146663263588230890180315836822967453430975055545407510053727495390583818894418201925505672203773328076796572579988878464916745416694128555334341122326709470216105779698893345613334876372193372935644900140803350295885108742144530626195567569102726836674783771582126973615506073843785384471896022633388279214144880816140650621570554436995163171944726283978579317384849328296174898893069681440987799327261967780897405974573670735750772468112385878842165523022763300447637850718755984639698454525435454017255520087118456338482331630458645305059975792669396558653071669815853173295052532256148257587190947946222158088178741757134249041550069470182394553669697480383683328768217615366673253276951304924312310819378436756710972461747548460781039741113594062360587973653903353068783271039339851181732065092277814615653064878851533736914186268680037023111589061326587316215555730270829833821148023696359187395992311239418748148320175101451975127316301032072385658861812013394090656706310136102244847883854662321329167524764430655020320467254920261278436666277349258713184795567469531227142613541001703319430606336866975523950152126002565056864369222995485702721869347460076049362998886582158217008755807331508257310370933921656406341700572810321458429182798354299803299841682802846866555663045978707511418688996654981050779282304515746062095001382520659294651884112306421545763516392785348303731610135725088279561619343337374519409693154221771641667503021535652567171257763941871087211453749124035447251897356924223602492527130907543960653163809346988810702405283158744274954752794088217591677357269303993475481758172518382622742194749782881124954114332881701059453523098605735112124757240959537855501874378529575684306956098076494982357095445214469462803789129275906836370355377204499741148384853754324398787977586316224376371953810769015121358631182069223214896645691584116295621441403072915963402240218600614310309763307359596085232657900926934473516342001339366117825013760598238202670790938059781355519291927717090046569951637965292519124514199036312249016910501989479854347555475720016331722245950206931211185961839948813083973169254527836396136409254416747960058111994526385762242547938917498118538981697053387266444376081090447868957517833882207562167043437256972716156932606433493150369369048732771465173154493228160548821280595797231819804776783354531468909652556004289363186456193725030791917404881017017728261515982842236428606626989322261856830231213514957944563697646332134519376637438224519285291724530955873891857176442298338832728223929490213894521788774713610170418794635346671869901137183577608370849572298902929779166629809639555145431844711347723897681677396610080395479104032566883184944760518672925914555785935905289690659618608218311600241764006569034655412654073053679708195772453401687086264835869347526079450900136807329426271293270646030578704895255337057862709993041857212394437342018261301486118970098739459015814994699629034966105951523415210903772017264142713423337098545605244274884995160238962957025226181095716548837054693896234699314366296473888880253637261801336479112521718377805872598124312599035991573177169127606194428541392376707363783802613851177626212164937087472549679756383056460921067680935341635460322371378849381937768332385693919511439923833800752755017161226370604849837749822658777742586453395432470632551228132772757917470485854695911154976000657239808473031057667843926080431864456495475400097563090167393631391326822965034180367360196482743670797188248704333601362775136091805647272791002216087107760628584354699134799694799984041163629700577556105782007910607919032051009490284012324082363374123400251346914132036602242523829010187152420995241565063427981545262208114674494199619755366255873402900815797289155349530917023757418519924331511704058883955503951195826148292757694620413358345535803129989962832737983626846342402943413079391022968267656504053481227769613301524926734717254555121820386491171804093096424811447451872741768779740398581799866491255629141723328516809005055638209930513364641470251530467375674230548332707684551041730105852783812844254194521069526948119137513780734560173591642615954595668690469246846443691264556473813770659678682982268213993718994039367512832783529604365211836140202576819798257183041607051200467888803279071963736389040171529168863596937858799627343037461929554373948845618181422696297689408919881313913914204098911647602762865961469436432106704037749573989635795045243682518522363756937681327075254732236686384765582650988630567021667434143144568012225199493523508005132100978899331436960789386002946917813930838342050855317158241198032953217394879382652659918981411744407391008582550481330204391880916440658764399053306635104003539874566772697126517031927472090612883890389933482069377733639193056176701389303841668231687794938914415912347084485323034034938670851731348312727106047692053054005643340325439884533431148597491475179785551395986313905943360259512000388565489046421186697516196102628997201542366785056393116103283607371708277830064711922318314512423766118462321128781099787605214069407230634389361595762932040049904078044734817138335002829938216467469206378696616097021006589624280876410772983573566401699052179689845606702494103690857177501935475341259032653684350211125818615294883134687610099050024269569705274213552456237227605099942176534942738804641684134044245568017133746371362994560576073645892182739150735948691013405512590341256310207343461679419668351183337529589221502917445222355346029320696827445843222940879839340188529700384826291923827390994288071845174525403736423288712413500775211584571793712982721807521279878216311425373889030940262901816846521478279102016029583270404757380267293212301772600145800727525924868210761147476559885489777808817725513261240248667987689054523997558383411645364009854272465667937444710609828720394304757554305754486696617988374189902228801407838580758780935047044852224286691360967798518657877190773617158635461327777146971656002093496212762323632564521334701641100673436486997183966591958920375360440165359183490798179881964530221230486646389953314548942588216807814670842740270793795152994647458727072174522773127376993113739135379406642540356682096091496781631535379878846006435209445937978873466309359448228601272545324022502377348810572560627276201112590319799995745739362084355988865567608361043590643104275689340400556846695426352526453073682708824745085004151549554085894359569669523039026414413443030510358727872891648505203726572429460690461224186581379314536016090245160743981187062297570849711107587066661033619543373842305222184953609854787716657600856689683833711688096710928203693880172716546935387404520309356427553120660632814882939543182793766998567350954061097403063889800806076299870256673701994023638473253182722448134814419391892880918878098132505153541924097676455588173644926466485424096185374731714553565808073788780850989228727054373616903309852016397983764532133473888503029940839672359741129989359787430759860451075932307411727211521287634375495720710618765763699390687445456443708122963585536611180664813936035802076345222597224518862991981352317030544542216944548963128232730382910467046043842857828468735599666478745127374764496368604189449660249385845728299323667426780536486553131719510733206737344613141001145589265437950213374027509265847100212152429956060781479585621684484151120790432442985036115828652495893495922497853819071438019890574719577311242060670162532689237475084538865442918070302747814846926682842399134277041414265679376621529932481493514472794395666046809644213736032205726119203929495449812018386480816023319798558670708463371637854166275520024275798485468448651270534696063805007757378807901749609773222993472029008868527009510281463907082071765923685636380867120549758704862359470905245089977670576996745124270181474552564200519201546644608908159956897232606143841773211279548292896825538719725499667334756429364038034626681984944725012901111231564039595645414628705038595229454267857689821695955061663784775426737208905732982514275447029129394905692800230203810616830184433472303699030223876938938261687388454190133374272631679172325704733437397412335440574978415054625551842058311449628511049661457881932060532378931461355469028390420601687120185975937067656098456946573757365024178668618556505478850441882847127340621992757184060641013954590403710112222944995463977769817219648703222959529915761390391601979483493650829821195369786873061783085030221337985196510259337289788406557740626829054876356973290566568877050125184826826419688753029313184042878636204217820707443118209834632747124789126489624996206077332357941111997827024538438849714995883390258090717537880519886264490513822151332861317609565205644122316877442622830371479566093522912060529311613660395887349887753584146909111923468344130618405215399390211696591557628537948944405439312417982759802285770827274851868487130253291167945922368516477014438727011523610569799523114962999671222909622000752218645734111733024179059851286672090506172765723517563069729555196319688801710938358039014919716906898406194562237968685735359124634351917632999440149108836359433185384810073624947185454376601666845943547747062617387740765694291921691071346915824276828925831473367204344188033399431258662287589677121950329226832105980901801575644718081860782833201307084774265912772588957559024296216736906635656869408364586878676969818500575696438319071308346933377278861076561758962935546652059705856166860345533615686730286717261966293778230824523639366731789013710382899784871099885212539811154920901224264890093564248131243735953232452428635392679550554635296484795378892079537446557567735243210981214226987074167280822759723091837786655118692039875764015391089853230819149912197192022187139469772145340011442643868287024001291374410768491412816345282711320788411286270288845737530503724440710542875021648021060071245607271180415268625940852677236324376025365126292200662243293087034424854146145607362929985212700069192175942020503998392124825742484690921071870249851679606573699406737202152463200694046411791134809138901280750932092639548942042222532041142680410919554502232704723929418694439666780897227956958299400159553911718177868044378797408518795144791722085295847716515711050718897762290653448416697170274956501150825073265982664870464002048644801058215930087241836076878127584615246676931226391645431087455805239183875291848514695632366027596678067688950014161387464426167382418664366229340049206953389342837291308381261342002093032299522951010698416081795774254492497748137075343459140595706827548278961041566035175055893186822008516910323611925271770608503286211234556931620837518207111561484672370085566087718256245539205376183998102852731969429504681437427062647047011621739184225919383017020016548089026698063971046180716279371988333986617558188204174780838823750886415269472618995599623473610295887638120615662209385212424392110325928915928002450948895553161762203888876537043019614070639434563445478339471528020868503911333488106788629533347842816798666108753005955465865356319148945554983463314042096466922174890259486963342820423760930585821209661605511927361803072245158650900507272655249798396855007286314237579928450899761273486333113127444755464353274882283493784869476549931740611794795367550621131431670152782852727578808192372933618988945298195386131256263362466348264128283524511905402654792581843416689120866180635973337740048577481880572470224970842406235672472091554261526654914661300992740056231391182923281431813888318303005062704546612529903662885178697994316134206900422616875664936145888624987218387463584921097296650975623953627800190645111685346617361977406220512539582200475857456458813244310004680057490360202317241485160586263079984510624660043821508647850373848892220007175038539434382287584420626563122115343572819136871477353168079445025327207422519354348584402237519048293922005161632287834592728384838185835911462084316827120244197610327135452599264830301399428640969355758640769533487113354433698915026456434012280150879819987449773619121830994972928083719889935975646337974372696646972002980149419061724011674046590274277543782225221240025431089416127296304316501428994772115175326717906423209443058252563260208107079281874148738888124321135999399014182811029508905557981304962404883842641111514618693130304929015092193321550932489376110305882956976974711386454811510431575487572303795163468505862044869906592291426002999798314397524860889297895848965094433793905831552452714067543294338237029757916664612969652051966496717271040825581698605890729835193230259118001487890426471569829984804880620502790106197276658172848519673949654624969768406321576013301566148424709067838938364994562932662708884173964120111447025532300007569247268547129229987105982811343366776998990187777609687035328423042296118854487832472391315285412090875442286943706773828822968264340551616292194473135241203844376711228317112195690050127405273789370960535419058772898174538745580172412784120960666948069862794559268278230491273167223755112531903502120226545586833448368054242645579923759096896921634644530469310132049298847220624226672560439022019195149619998764402442989792401804620384539769634531355998148949579238518121330367937517977108106639949778529791556553253502096060005305329251498409778594682219730284141385839688218136277832152560043485892028622140859036416028947267382392807215064445871079980346944523461090824846353953330075697736261298104265119675235992636217504716708670960492310689503801196510824973280724163192757371509186949146598676581330622373414791620718306750406795512181102782006696505446847755430985839421189638360213961476312871087268245513127446634797200198848229654723745627694481192220448048221009440220954388136653222634091403055523128849894724995992914040114057848656550844900725467819143717709603724152086062652089384070307738800090784214392119942199582422006685826023472267216366479898214705280163769094138968791663286875956691362455936635599771325539784767130743851311107507958516094434966259820026803403566355940137288398403563308556043114230837073814652900063375554892512006476748011160626507636821502852091952226656297093890113499212345354524643179085925242908847236970012694357492792299618360920287433696779593666277158396781381347116421701488958865340916605201524567664901261941140806610813748298458325418745682314562351007568582763911900931212885124821356759311772870002026489837680002891564460921782872278490999273917952766189129943094880608437664907356922852192756878591452385125834883326954490605084632834812083146595548268147910723421794609046982068942580010910863848169830079910454055126333574788491662217835947345670372629563987898245489060315591408406899483312695959164096550804760991951460279497140789540563222027867232091769525464577157488393723514216689279340573392813326025091358847092002801099846019946065503463877984966075454564603029484729791081871917565965677849755969737932450787051236359669564395389919868407105841839006150721170756163581182605818871470741838800747679619791246518998948982001769268372312638925619142405941232736590229979842079392768277982966825576944361229579237114760589411612776875833320185391412618063703216393425316210371140337383273924361693767375267178071286610983756331422541267714021022468422526725586721568192715231633612585046751088699128443063137594657143799518480232160148520628451168136091719092878110195178193732488771516999628534051090833231473954883152132662865283320580315569759913447073182759050089487826131126887369423412799461374970036917314332815446158020564590611748831706141655779009380483473839396232373142377927296773312888976047930388387491117894836919627476740523186088079768198405558722617984028283676457683550152362068401013318798565229628606879640858278596475788860183851979044124748186478348717038381217346269702187993397704262709200040407177190405054942131168915933484775052814725610172657336770844535353711965681682323960446362739366564087338886083365860575101053043736869017240880118361399331600419555784532764406673842321152178332209511665657815385331444015300340716191248098754994490047665577997241644656044685426884665462676530901700516367528747538180526611174785903427123179381015121075473098556060436504740378919015790199845759425880076593841841953973299802330152530985307498709324638548741346296528970782495713665801059554674185278028035878034180569337719886127845160544068496430158628149208822538860208286323228956435575865769656783304448738681294116163094352584844199546342158694286472403207347997448261866400259319644488779690188417125335018691510338771141752686989654569005430450191346057128031136892555420907707837867095792557859165167075161432970754193890896158463119816914234467063687298654071460055363830482659694631853620601960128361200649350210617811399165228480042365673824730090229170570375376507577030968345404221576634156126860373156060086053513615736871738238198651362344364952816792593894823196527642199100225951433179960580223229043111529123057262569482021908956666598940116982234112492523069218243785577052088977520143688728913346227475959155747262924183872301462186436417995653162156252346230688581323548543967883833071313754120720052377316493272162830970825335542344714800746763371729206968807426591813508140870933729521684501689669458541181367823074571310214964867715736126820321789514625960712263648602929198531470027367922452231302112060024771327535036762901882250130905827474435634276217215635843976664591875263948250624266747999300348573842417762829065086065318393698212609626979663867515191520614722172067903305872208853110077097784533598626133801748791999445990473120581150649724103541979044722811626085128995859893128967093429828129930580860264974344846197063664365529661804396157355685769717775157427490249592872769497931857417109773142463017351859031802178460776045374283167893215010272500855614884242185330467480981407090674367399724837050512297263879442572029109011846814348452568117485001514338915552407622035251768499550129199905794991774856374661721831860739280969806343573461406873049521825017975362673787382898613417199025782145598326555694604001704547619433521990724722036368315932455007868199068063931192789476597710151824698300045909515610409330671827475540457314568292035034677779482692321181132572995005300848046517084847383243991366858471128631588619457817248673973845388741636953863529266035426933666811544684287920408560939110121131672049756671885714848296726579015996238502007616054748142702820690334746078095778356395369445522364432962166149728587596432460160337778789708385252756164976187534955520474526324163781787621427263143809317070974029529099824254986960526994069684706798165680224576758360453174835639519071796056836899817825578386219865327670627947377768651803958983542082887452159575860404532809524335882005489922278472605034982390148188167570755663434217787383177185804708439057420651661411690554913354039392282068795396352336231030428493582175872394335303059818738547118519156776146564190197646164058933457033084178004738387950218684358728753830498836078756165869277785723019007640354991397314526071663853755060881716645506252704090413388223281650428592597018436842552839722646896356828399575146371644413096712810648236437744398927257142639385599067902701460120011169092249585261895513894222421438099436953633384279162211749649903368617912895114364635328260919782665704771114154768990806848819238778225145573257709058118849639078667537009153673623267257941529083555504942062713396564554264493196476750821032595722505593051929038697356480039788417989127237244874723622477108091887332486214192845767069606775346554794606506534021167366663648330910203155562225442785757744504577377300844295807165206139182492818723032209483396981010748660467869715928404969395969841962064972851379445769381082815190995664649581351989341865067875577360629139939044545464263496861209955935505707330172489567817619508264200952092147164648755313057740594028961380463313590169788783050632631225157079298028557815660529534418461074496220755762858120773867323829076490682244033072643014611404038158572268217507711614526258424485242070571398604889306096562700886104184061344029780759425742695337638832217239069577757408241253828453073193722370672936443357368198609819995401512113213639103033632667490149834601212559802481192207641966937085068139283956101042163370010815017990310077614626740500172334078830745917001880166884383419092675039543859964409898891571678916250371492578112832225223819002107675993496302613477324671584116554336567002761417724561614352881360785136150230126909106837241236445534368847913263381270964643183746439842025485765895166958565574131246810671637500891576060516826288659136004621221037525783701424999769850340639027898866765901791043220818678251125541329203802799677590301559795012125699584128281900180147438698732813247883109112622170363678086817599131282444513546657363779445460495549479392090103394692267144924636484495357959126647186021791239775190758997080826626469271469597519499439061940216557792496300002589141930665327802456575508217984682977533387012376616971072292275611627552750597517398466132119564709945954796332724562679606840493450942114669454790523543196070407259685956770448476868212543559719763587921642078189193113901964150050162861086391095441567631287858773318994220967468935307676529227759754797827239922609049056227589660272922224741920693996639415875721987143246226183755983839810735677302447211255973346862143607357435614845382153502768663178633244414876597651168183453050561036391943239169611321002725957994206845487072725691858742067970666996629118917752932006571056572878956839481594692317058678328994788198170103899003280221159131573878457443331609511942886506217706526553064450338145484379456299033835381770297220935116645662412887168679119147831157055374077684164705598103310546491148952195274839841985852589645260093149126593745075225214936775533841941269853579228090359604482389123956224523027667294764953029292979917780621932305154663378232070839500070471055082874226677751763110836105495040103617476341089256185932693995145801877323234825771422185329594893319672086359157267280152935733076282499047337005676173459511742580204034908725354351717215646053642401436718821938269504930185896605713946426389067403507798880798859114981950959689056278802667482081690088808771494910988563998163315994075939511364287624181639909063575729286832609596441764457829430807382978690277593281354522358510841612800875022232290864105224589482965279210809294971890922822780740105446824000938875536681413111164009191844117189983075798930704098345857275326340304052110790087802047350149546852797221313756382540765937801355155969349450153662210400598721833442195773395047317136260682660167843085593019419210067180730456872339072276988308427421961401043785533110293732910379059708576087436209890186993396685679392735138278138388518013950845928152236943111877529251820302688009212456162262125596058843637681499336103705435673995858518074661953105494432528703533649063467860361409140276738858223367512172665244496738678425722100993905519961773517222052184905982295966651099127698080385935168963409602915973926587226018017589262515111206071822232570543581063005981444405712151218297605215277440073092244191712859128899098032593912040321734197920619999637118294320603275321085574621134306739199783938480241541663786007727556345993663188268560072277149362056142549281563143034523754964883669859042502729049177127199393443637489594086834334964207452687694938229519418585495400892951148594348536231508196812910069649431547254319688518183965140529059200218260751880989877002107043613979419635845169091149711844868138080857142138709000958117482143679199313995089037478350927185681568593021400027750577615860505182849929861952187409834133133236376272713938367739397036046948880272470241700451605569944825733699652872820537752496168411413115167617339951130466140047725833566284398794757734849006179322102106446734157726935087022629064830236506984028594596299657076288574747450532910989160789010456740508814869077613686044675787247199398772454054434075148830880755362695178698876887453098633305012074127175584600904552743064897415371260141519636821835797393401312598379538561817673841192355828610010359748518919380467118186402686495279206163071389989246504122137643032366590690400920125565049305677965490651025254643072797452602879633428962154563521538757791723383395307250874067367758402882517313497658478364448345922970164587478322839314199836841206264443034878228911170697239110632061589278562132331550506422599259107085178913336715339863004007206136649115591770275214765162461264015018298822624523131050347464760776454488834542671560259329470970982432821295294678513924048261004927222433502187616438685617743844973099084433718571273272777098894271376011940352234713051359880162419498779274477197423004803246247483741199152960515559461376346612423943646435773367111109212284931725801585744118818329838752294814492042121092617550659845938969783625754486517923370396173881438420505065979487999931870908405652013088986726724171274996079936039381138093418996233712586908965784677942876674469401777407836085542612988389760400143913951529266536696337589757458566264286759017298599929768970583005923636105791866755549009812981929523515140252853322729130803136187160701108566616407139082329474163244955580282917269567697324480748047853536537615489133655217531487909865232470108031088471063333695782074873465711594976393102773800213567348732417214525208874350236072842028921242267038131787663954674578654222834540662157207324287456590337261043124104047778498351135269191137346818331062593368531571416906932379896855135193780679374603257532806594750269198678352840926950401457905462784053657545293828197778657276740834305689494752282434377185880273153525972533605301430782772050778954273287066722523001132055352196426846546117517946509033395194464735789536926766933464076806279741265623114601594609405165198192651123434654349790641482922182627781920525352869777240821577419968314025796821702184394344453229382542385346366792693034270303979106095436299131509548428392884725253795521349988019128812857398746532764083568545966108900629217868589814958440721297938691355331359657801719562434385215807983637925366613436517153109830214057681320513278316938710614747558223870373497084613107469193628992657594637786535619444415926717745770153233058915647231871972597166109531005947230278642639530057548128751376130502732503335013113631556140277233559735593095868821567959176554725696965841569401422666815286183895260207703492306996494913977685674731188864957301521152503647854804104045742893535494573228442875548384971119958842663033519805547680236808950010862709724860346475361695190055026023602891827499469441984294049680611430209655627085084185939259649033465480318262685849878935700338730715359987512650607647053486094731777775303315154855990567941906949301809327988661439664245440340385404947146179983510085938341178230701135193079929753037612135685874972093594389637513127082838839576038658204522074918205178326192146555595399603970049701492866372222159989621386732847276664415418988536199419314392411533685443522479171942288501798052579511665812257043100897493791773714137915403276178281327319711846466657866021642161805954243188293023618347702560944601857195384846751196310328078496413150467911132810300910196982839300874291015670467968987790196144145212825564769324569650469172334316247603879003770620397948233183403129838931146983311535843351956782695684397792360296910011469098176115255275558127853859609771230476493454207263869815562210407621895415788478237551721669273240547211434972653714278307483585684578711299287247521093550522800885008461109514881588123885142958738886105046102641892811163897839173537530808549478787014134889732725809906519353805106909725652408769027270798007937126804605970299746751588031525447172640928968538615858035339071010373943374823215431021451754045784624471396040115043575801124094453964479550303282415003350947385586350409775201610906740917786368771815757555957801438837183018412723684246383725914769749485661809396962262226513893872823392131176749215112606880321990770689608971301193424375669342383597163139260200137724555854231482733972197311663032669045881914730760698793385240308416687923939592130072211407733654294740157194931443227532479313701856656041023777452405287771595372429922934891792585730050109153478971201782197595895989884538105366298080989914267433948254083223747935562436479735595985171370554289797777951772591637330171374779589270956174615517391499311642404994364318157382157135212985897097297653214622388518388659759807606319515454841934285286568389648973030759939535963656077736779066465402427083574234270372802592124843090654941391283059323851836335638479533053303121560291080684370101332812698111098045290754759720487629313932385780730087186042571625298388927654661664835914696879199345137348213099811811977267260214436320994370550531417868597026197703488653212662170990478915920662266314170422223953686596216720576552380168152156329740188028471558705453264880340303742236226499777595516765339012896996029968433802933086580609514058387891891989348806515886635748214032965029620148508206491915158536285713772082292456800085469953573123617875130721749144507917197367741520907116137220631315132516658216502675517459286929397350040942935831763421093795168128586817331672059592665864256229953639938093052056791600561717778074696695279327289148322465675765923541462270070777184729749400812403114104571711128838946784011644036277965378754832539213271560929629899911003026162040833227659853535586496197707351497729527575898581743121998784357213293103604312596466636262494024014602977905851682590169447078066956937400765024817648472603449528707204435837430028659133780008286524145436611406280779360446116985286511045809510579462756410068605687763054205526736297021688592779638872895064290031855796682403853601465951332283873779137960057950210780354836976658444958471238335242082134410639823212113681341316435939318356109915477074820368853912508661003916006307072253333141999444230890555813118358425807674243843427373054783498303599222398586247269162458224324425574326562277040611565082612785842941012518624636032110238944442658541234415936404220057519321646462152375397406190017818541003890453625769702116577773021358308812987447051234624113189636644302776686825769020408262111641805342577693130040867766083567160661106809541137669411471263939674364301506680147124899790785537968785448119887540632750589973324010993817313575294289121546022411116177114545489586921819336532622781349401023597515664402898454079297530997374352155144442377049170973914365145162456149807205854248965077930294758267273984173420514691460978633307626229304998756641133199192962423485931371780854781457333717281355356945220540229544365651508628788226140165552854511916500026301650215893452175069668339994254004903940547131611746957863017926521453727794728733609722070576230838028573267014447630467715379943893517261232240089127299140638496064441498594327962588102559335600563024480402217318042215145765456848231335967206882939734467138797314539440512928039727410648947024430239890245133327808909765570941525376033816397727095736086845162599068596221940710842103146301470975988616795028495246767136477345384875671527635765406032572229726950328052569148229518717619120476322022704320899624217859967647944612862541071540566792895010723995101873823469058209413318021907821071833907794080935064701756812137885167017687734600638576993026896685439160962716150340418929389064404497949787452686756895946246251405229715262652530772632718242562374633204471461777611522543601657712940333428532349585721951259505415562964675976959765631201123426441550090289147951301143707185460296142523836332071490018986345251797982877620293886084408350170226766650753231039218908543323862258679405400166610188602159500021004512284598695612297497273440589541037597250045977948737454694829738435508689650686054306965305934708164924351641875239099609959786948701829247720729012679770057477811920226116438865893439847912900254743205485466197068629061095729193693953774691346739294284987342897164893611096732845436107645471495185192470394223616754679898561928840836080468274406609451293602590347744832161832475351764480562154379178359600999640296892849058986920950214258745663182844261462940974441441969526153985461890862427294970372086457264092061506600548633059002814433024179509994264262008356625147688571512415272709819501270626762810975535396790258907125502386508570616582902202579427182491151660614836318130271076022219762177476602736255248224039956833675559297064596496462655510562387654956474888196979798479637082718394754712160418076157552727292297699916681834365132161909425272097575030716703718094694064763542652585067302524371465701374010505046471854841166600006613529003722792301048401608145182431111198035101905550387675353732109209621376777859222289190918718136416266613575434807832051124697277870366639676097102686469628537505242038536209936405680008046534850710972885817922496690226062103049194772822520837905527358261534876115551618111649136249826722554887288244699436676027526176503572112413412992322395177827353647940873997624758265977509008675249816939993961688271101785508612791564543742783865934561685163198453254117146237230311354180433845897201470708437326422537613413672829778290481300427578993760365628022939216230808188254687748096310528819450517471749398452360185056485850464862851893928482936668758246624150088311647295720032200401875910869152313446384630507321474256704782238856542479576480377962459310378005689990665475986492303615810150099147315537275787440470741287815991950821090001284967262127501990395264024652511082840239086638470798174220705679066101130047777401037133918447450339359057183174701006244656763102425101968845623421675451204313001398413986514416329406516970878839664287927613978363079978986428516720696339846061138489257194894654683937614263763864843812940838279709253176340569971059071315785266737336618989626720296794924448857622446754228270284410599776058597305219193541438853595235821794155198344072278287991068126786111093190849851289842444961379508830780144343932923501799185523306475740377486482597172396101156564410739794894137906191310244379856156538818376880825392815871247538427810155180180192169385954249984425081820474627792919691259198205204587175868724606951910247414096628689973294660910901838671210642193988062138225796213682591568543631511186458598083697499223704741007075327430434845526676156419815022592920877749324352487786805802436977979173949206416455747904150243552176905183833521401118778230814708837914202739086023101278268273745561948573404956091294038313035847121397890818207578840852550755828824722870717516574100457917206462970943071923961418850326368260275572785550946973659310901459206535922439906002738100749572863747866247682612388635959470404207480764020849973141202889561469815429779906516702042558253982024356279587248840678627469047382812070158895300840350655458042270214758514964625440358174183305651695946730200430207152319969090272558420412632296077645954058448299977489653746205787360429534371653063818297688582812910453960021151336369481844012955942811817864723191436519092559784421353342512326810618573880644684331803823996968898008978589894175632501825233482321888359660848073363975555776711758662505112018191887050806194225576672492973719317234498740321160750241527443859554972042791154705560636954831102162007690775516034697938586061671146697846001697063166059673362994917374745317497706119067946220564487141931915572816821790100775584634302056926045638512010704550232355680724797650789001142534191882084871417259154481527805185622940426328585027333096589297999973133972203559408943534517364224452585415441310274955095617854684373522580853872763132014532275871226118048248496822913479802307479685828773014437230712147642173716188489779443248101171012178327995587931331765610219493861313170270954586794545095541533154086451312689316078736409112510065425603851926124478944664780287942671890711462832285160373090636196506164446127795950366521614134669488582048343867805954566490697259137076514419866147456790272041542408821337368404806202326630243122060574775020064287991056510222662811333942443037060761039361920177437621927408565628758380360743725021238636489722233411910807350230847123793549163723888646457416683825287486719645853592186297865707966412581950487093097879577267473724637446877863633435614816430077631457909213446566894744730181761795530350330415183268152727920284396353955460997918729211639461659199175174791994714479917379222178687362124457458145672315650716204571348792466998099788775588331382924150126951925899412550508816913913056428338914677433042016780743965493729582184270589791459636017968948225573794223679923927845721924668543217437388572926197505672508149951405345572078847626883093201739810549653620076473083995967694468611825491454054615025557112907512969016899708145889543830067732072910652523171463431680266429663772923189884412690158810587940503574606306794855643702762424346160792857630692777292998934689433289034839772202665528402941024349714885131967321291887556413251348584354803932497262712175079810079510747239711957969245273523378610366628792501162475858672077277471398263100798293713834099070209791254317390696103945758842604869582638406895402990991774579306214286410256498842048193230082815922076860297590932155783232710664592370851555038376977229183843938391679328439154410951737426861422817189570513478183753808835490249690158572010129641054856213116414443947007334218545073711018233311256940446167221599611692850345773044601906205897408938083178348323884722004316626436002461730969370852951746750968386760624894751288063328869771258208148806146175453069777444367489564565918692005314921531470374311805413789747147972407612650505962921501080564570714431230839318879977875534322903199597352744124010158346900150945699237001256169055374360340566267006105998962276956133002091283658219401550789247051356101684625202334521656464400418870205361310971786783605479697696251007732490427491836762367549589071312563738314146424634447016180430329826204679527142436527322217426820095206918945753139147858618916959619756917502585952732951276240260826412889308727761453107962497667723076176460226800355061308510495890550229947800410330526327426633599394340324400968630416138702262525972826252384816161142079205896139618911353932950256241685439396237206094594830236698002061263018944577334143085395242031968837636248124504210519765815567509488401602126869973721127087678010329681093271137026957359706778750946673750835079793437069956716894369881777360889998344472946900509856405007906667758114751973754150777720736249279837287718988474817060634843130262737873754685008562236764483282479607414583035698224815872944551588426543653926005150509272995626705658034640223567037825838493776924883539555142229209878108180301054739311378315523154141560141017686576058924378587845380659145110696652784930020318255217071178938561564459262268746467237353159248048317117675671644616886069579703282809001113438521396268809370878820892959494597874278016236403254589848633772354001036569198113968722379520431354187594414150911386843361775043676192118151889686934880619208106799084821314062696288103220641998274076018449355002089887067375454577792731920284511553486408124400291721042427181581548245536069604728463409171421314544185487271373791937806763092039781510499419689200611265904401785481105731744890576635405947629850000155769402915601922476383057526168351732284889209782146629378466043717351216854028596179726180966513205327337068383099721111308290655661403826295736742065744026331542476658463638288482901181817327011086812177241676224418690113635758413549373846825363263971151267258758675842275593096425419970207674794798222391111898558372789514161761430975096002331814891776483251712196699582952172910952551569465728928981955358055715926284073310745577912040457925603219245067959419729517720009315370127901667740567060604433641283594399754735411044405472315466282442594959031568184450757863002963365515916889074377409453466692017196983453331273354835803638102112365139974681398681036813376626831313742152068009854366088043160464188042866028736679567593752753426300407797772654687138438115020045826076748875703522295672830135337571245160128723634636687896293149340466942122971954889672054293776964708782537015662454826852772985997801401698792998567521774413582226135431550000503910932811736829740778373588152784665200659836024027451248104659238160904737924112812505737425875335750506888836764642600612746477425333432491281676883545420523569748082407510341272751902667337498071193031645746444238610574256043253957387967193390810024872012924048521512005958870686979069502001093219921098570661412484622789239434342193840662908319142776347251088514948373423438740677231070450557368662029602780011406583067995616692217522206723438119476635282678689746483975958141083852167779137935907482563924155063149498890554945288873303221269804524899890194039623582278298213255810221939764119724727832368627023362408542724790054466030842844856344073604703346038261990760992760706208853003726812741676046583348892928375844285011696208542415523797980757761266465815461297536467174383708628093442990661899680609460548849066743341249083446078431349033080885128767101465075022820184893941855109148138963887052197188238413868823159496568634611802755817072962960160124581082160226452165754657829811909453337741032730386595139762710125774600368105506958350417430732403394593975888741188656190957696753177947053679380970585742704806171918974135956831886209822540920413446396612892485832886661386336652896145427261632202047395982158193741392659660673180194438687277538741540817789203435530485494145656373406014494594470920854394469784931678479829774843236337067003953337550415990375123761543524799605646214099537565490825266238715060661585159191894348573720746663963273486821530012403513297309093420757013418622230681302657725769838127359642181397939458934913819961860700807700633424445500507718666195088911759518322250517441494382534641658454783637319122678457816657064899930436983050919768464883621416078667126832601446546071859660071710958278847972330624779696115770333648016497589841962236535637910046589140883924344782690495645150234002849786622801059119742384182265494132790048696305170749839612550992700676307934039988034523689868589666806165898664618322856175578461924198394710813720700930709359613758869689707299177992108755354039725135468199612346876794447651154755999618009362652822288960294959398727268379134188357982688601590384846031605949690601460249597007307245753210717067854432739503491438890299838498391405258627121957617977804120308970329516763056663283351199170462063697107092556436693083690816297313051164121854945144647949635089849620688295085302777073073391003917003702297989979972581754252547134061366544143139162188042505285154539570134715769451380683494800405132803331305175051352779177868471331716121185909743946540552653870979711080886785347155862822837244594208597021725359087728591643243983351987061886418345351877698580034469629830054554456564584712502952440727888429539604905762094582559302286378734275969037779198020088898768539231312548963378477854797245395615075093975971221078069799646058021355593507966578892511695745797775941916680324548123754861208250396407693276577674900737046893616984366950537141361391358199269359558358392514736011292184969957367045239733208433803292939217490454203928673581328441001097669505836449061117502653763587973319505127777096413196720860018940181556974429107530699977835395948142425919003982849088946810545270991294159513199013125613105819520625841839732231384197966820620699441979069282263141515545914890657535108602778186536191764170834767122830977154765001901943302003751100581375828197590393559029785941671326582580000711673333785193095669359939773566176900498705874574462969720105072651626286538320010044761245741516733903591708107984109699812522697510144105276603606885648892342904374455685426059754410652066872603761322127843111422327249379197990193294888540116688926767064994147385246568932744825750347666431704834506187547602922223227591478555265120022047465409469287160990374236896513848615640713151738962756053203673812446973178602060055252785454931751654885826584013287968104027416348446195748859676831869401777240111090986455786890169538173734798147846121845365338832850226339588204412657096818563365998332633639896355789159694499686910579630231205812967708514616358449893884080942714184282832853374857237449504585077175798328050872472025200571504333575471981292591170130906108475853978503482519277922861813754189604312989712485000474307492221199034535929204421790263250141468309389515247258148377787897672737789041657182914689662630075563019981688396447792369977029468109476827692298837734792575958029057413222230591343862874031550224440702440480539930246540826680896560433617411345662429893959477554768233352436047263215557388369778660446187518466055879564196898650119772772380942129305624916315354138969179338147612400196266728224788764005792630289244274286468138101923181253932697805098809544692602848240270288583627206194990433775792008730102401340278887517057102236394783045462835804242099395512423178066020003393850882097982625533585662713484286086894463498395945092199809814041247908487146563175132281125766788816909898163481961935427947763467766929612648786453599817976543128012708083480804491869384065402190397782418955599470094041144113690464916770799236052638896179029412428505968453570609421793672138401280480397973179412176614096758748313735787156880966377968756852366948311032657054691798727530712421329679457531014668412120397661018843663808663324014882784797681519334248042807202007956138013462576698891384771033154428500194128433077384729547477032501930112359977861034012396733491260040937009914881320401633376655334692860812120460340990030274977666045704619809516652708619422126031322627296676613120973441956562348597566148718946991100871544247022203666310597354679042416291296732946466910718547005914295520133631340927270347094519145359760032067675562818426724326806238013562748432773884132961891896380566492741745061967620833341715361132221711750277406736303303177338324605523337444824978303287107973124637711055610153765278342334975561397336897954487349731391770582494841270282537886001372065370683053923187466331400780179922637016039696987469667391654770219099331955079281525963740725207203173848238132446175364885727834058332319241411238884835854295669054308899533980931207475579854414804753109816962911769428082046804869373939943603724141927082342171995982410990225257510804601680283548124167216900549627172054153234579622383851117843289994667776998029789189240097627467068659080016880486732600445770277568553183752545327183869221842574696058347837143589284928590089108463529768975797224694380273949504184088570384877896773989801961519910408790465348772405090016089942047408188800924526503214212576831714893536032759434523484862668553366967094044777669123400238389664957938809363769617023455014802833688855077191350695138082835301149054781819388266678189431727097440501914996702309385138807245371740111557479394052994816624987848560297185120146083259474176658059277873944090860131214161710643073423634329615978317343997786544296264422175953945482085493722150144196793545088632488295580451121639550012826331299691091217522655746029315474833690384298817646502962031002653903033098896739456187206195696182708215039324884930717552082562864761849867391697441640286685268951762690717234108589257350052592347006915047039114154154233511280586886466638432267733591172187867504263516135164771460010491387169453405773108570121395766113745459738680489245443297438367990666404465931481446270676707464431858568668686563027262711392575931348121705014238361207027499002299603117225860284393654854878412926022948176033951525750436755799310149370175926199572175502769318103441036610891171962281551080065004399625241338628646430303146856677305541486408258197032261298992171975615155995426733204982541522684018695068981533471121747226933226011483103209131720853127577036568634575624439427880760065712389825446279892829059723412257947430739694504037753475402502088588984866819597900542568273813973576140478770305280830223006456877000730794720138904668671185202493630431747531214624994163319496583792640537283752563927482865990439952964443943782667975760106569379417785411346661397712068250040463274842273994999303359474341920981101470975594046988016580576037267032193460708801111367055530017785497283551713233531770488101311853109925247437127316623162898151137050605486108603124902460400501928497106533835373846827346886067202923058374969702951372795732218683587576336362741873606304735367055584421821724678185741517183385351791092368488279135599335517295565292787046113705777172329395352527267280682144306207580259298889328869109319327788334117003910653079330092313753079366129009139304934943602912860580965306937723097253486723950807774277925875867848017755178848562528480349714264187066690259276440770398762985128957274592357410771854251977087890221907251177428918039286765154755196183489411911487001232060648058492686571821229574181920697466269998530079715783874695996866615628211901712246204519282007811268276347637976830864222625527134553367979550834375756942692020996301698294777295985985110648497457016622303298391740991469528812610536469723778382897934870657464267713796085629970793200955996975861449927095798166017104399455309469314163837023217358585221366974002564475080961387629515932980748350260752640377432875007066902368378818130447585660891327942455051762716362981779787638167173715159280417216582329330032811947275587662817403727728517495638926931138494393583883574747506800503795273737128354551934639196034991354274462129623794252578863826634002687337749350796283305165688189521636691481548307434485752298221893670317437479305414289786324789002151371567826462248395080850798780861325168224984057638054896993006507168600671183594342880555573582736340573958270590540337754131469361938864301734851263291400845712916235198342762942328899191092207217755283965021036426238357092112136879573226428644979514880918722491620165735225017538808053139640867133445464606178372676906988588278858825149416542590744000013737066012818271595755903459947757195355959044611565220093945721618098376568950392616216987042958741997197835600048242274044381208359276736826893537060629405172431900778987298724607138276375020994180879496979407156866187801767384306060515116529142424517422758387674546060309641225538151972577281355969155822156292348043401104231458291057108977576791383337394872330327541820638359167145859321477059280469592200051797705085595133398354048214743748696360352965974876517423785092953880290904935765449793605006656107096637343344703867085273774868598796520532481541627637950824786821319675293668321766641593647301516779354292321393722480136934747715917525136278370777066636367605768238749082411067128704822936711315936634407910457997935910219295189874961218895865248936944634482123489403909491140586756791365794356361583567293839334119250933488627744986319750360005004595299896422759571200139193725869568025127808140145282478661256274651769920380309269918139625340553265747789674438515358248519723908801439310829065392309669614834111323927697556765679808686097790243357143917544856828703099863528159472966133021363155180986218537834265244749551167913222353437153207068619626969635867166145674714978590690733172476141018289147003539875307413923834364060041754537198478059510923311162862998272716675678482402825716622001356758450102951962533405910634430526349306429733374762766599858110403385400095162114121161618525550344398405385227870009395701268277512859488303328621437770145637930375482440230040628181154034863018122145248716244497471086265578417070462775645108874657335113681201555158718732359549932133285637045703146517286588548831484029882110540982293441399412738084981399609152695174238817002397082448283202564674592730137744169235536134276675406561619059808345366328061676597018799351267680118988665824415052202566958852326776209670483295535546896320463120381242206132247482170721739561146408704833929326222797912809371833492132558979615006087213688859780649496123425706856200450876371962919575079736232327150280468502350013437201068848913303195266834239369760322794404693407131104588341311598526219251392236269399186984158935196675464955019496249954762169853301569114013467144456759001552265462887367161793664845101376388868083743339690543581518529758657294853369854346171121681835928398822160436734953329891483030181702613104206395643772415421197722100333142472572613144661604550896227504121969244927560766446668676756818459480107631053791069787095063846610201557949311370405053068941699578179546321376913009730188912186454152105914012399727835277755190603260533443093689945231420640891900737212486452068834397994658048540761391546164234479451285859282484531863157807216172812190923000589029280620756739359836942142926564971104469896114796347662958644820323244287867773873148949239876041531949445027182834748912800482531604637892796853034001522466757285639294600662425648214594793325282686240523296351516560822963936392680970927812638657802117258489977459030601720536136788495903319372078506743213787893264649706931836157278673383375145302057846895905721899737647527612881464298957800158203923017232222066582683437564371659517584290635487531380923098086319686390006707026661825965453579906348892872748865853680897256986827641059362770321595536880033141884087504639249580399320585493706867377175368300363459496102236294600061567191393049474187385298415844442841414677801788676093803615027481488399445215506477566434870421375298479513542602546270624300290607748073247919162965236735683973403921477217359407950608202357567277656019400128265465315903738691606496666554592564980343730487778478308195974673147170756578134893994420992823414366566420653790645826973909434926821532226393356429123307804549230942285232005425537660525415025792549625601936099594027617168537434417495517359768626898871614871660307800113706195127073864193874337593006480475525898284707593933705459927054190099730594480196702547905796405595320452614261097088158242673814718366190245784242059041344411197898951038644336840574354887175491198849891129066295277016167807071364365799884254856786875952775491315210119655125839283376026755245283709328549538945419127076796832432569183997101699743387845674110434604143948012629513369151777369235890644478729957287561051507426506418578210554948164443528105704828595254899721628881947758521140928424306389456539952716003152136725937994855030219670437142616623830594070054827811500612489679667943931512701287154469130563468450386766546578874051525576814957075752131682719125603806940403867536550862805452483549295131991465968600520682812017815687026422148257310414427648105158472378774720513169978652172014378891437763111536811706294980223108400905931636156983976449232777614477420880319320344632708942359961573754371444502998781559146409116321641617061699044218128677531528792721392828172059538229212051169226106817795732838508854931853742965182677197079459033117888546408754426166928707810972149148230510911205364328248319059344209190783546805985065283115689458032857682417045021751364770100073918337542904087355766540585081504146035837537653346703152098662651790585147736151121184661356742466520543906710433472117916322643889956671888582336917743533745899249031302171184187851727787036119809520881510994230595582917041167503099155021465537166754433566491545701855203848624452571761679484124924124591232919434419783226558887355205639998848192194269684753248386555437497156936475492807654132509080211069523727890861091756271011579100652457969079596445741641260931157973781276733633006723882588581391422898658627760384378296094798372601153895533459142276767962032132114875916591868247558459875841335076506863448280345846397424909640975825441166528310652375252064960696327628579139768307523325536852489372810276246218409987745288230941452836515640906598758652827096638095828109273576960372696580792318789106669982072333728451707279438252688550320304274970851548965587395560104817574214067453077623885565566258288519681765407668585509309372701890514926674139353522249272665140161358222713482944533159911456988248053314880143261082897304178713836448948218873101750071299428881516709959113606850286817712413471449049055759832430065299029308749552039412663077901492222756583584953322030157371583019735970616723971579669337689069565901610549867064121713648483581793130999258170138324473889839231365297884891712285655507632853618573310294142364523259145950656349248195943135233182225727043209454405857253867547396434750015233282485892953944714513492569760297757782084738143648758203669540496973128425636111273834525733218336767749065894370135394605322850364488982609495624069507894424092122493677444934548257859327224428887425605791005111341206329780904548841845092105804401102171904520101146939006772327131983146229442799108488737222882155272416345571989762086268295654174352029850253779370520020684540276974881623178779053423216347211707099017024217788953743801865826495404762000680168545875808391856720081463040011183393348286154236916536160824033364550400144070634250952618633701340180552127156526142553841630493031323069493655100639823748675816756995424461631574701338721979853283510604040927148961279047918483243798815001296962766490899022552785524291011148326836835581643998097234688208816499405578781630775022232814196675767905944796619951781532732561552952540910000136611825419552700780281584910928174504858031217449207678059072925316721617802829562091769640919656130372075854398410372508750107444334309393136310686613810949592569519863805555794224254804227518695079697462218358220020908268984473944190184075199609197561463384310244339147300944517973636838977745453905977450165557361770607646029435577057038499762712202040394850319769614137903613146333062219656790452973660111377846255436734212756592481213415818645836938637316584453069998190347492892896613227163099451260599142784833936107038555142209196310012544472573027320489050447722525698228278834966867682997175995543462017584462640307664806029248439339964124232287275811772748097973884117204001554184145886474100665449211379103002649455658538289619217535791277181566930176144853797846318025657185367932230480203137493533453760608061307088894245418576250224267632728440514332538941613776906011249661957693177307716402109484643396452087085507657930075980613361120520330066472741900863153141983685209418800509502993905009611037106851404687953563500958240297304206882392472748377269123091862430999039962306356428183627942946734030534192445376028344225377311076317508500703526983070307348717004331145904766437990032937096069734482918593484410343916430642305458939957361641570383591853885432466499398775528547691291107224716081476142741881905604508428187056297311513220829154945253020174083866811878599805060249293107271015699645281709013971939332362381659932612900897629180354922362418085596845703593289546960196061381978058109361951044216073049517891125824597513311134001419887413185296871762579573732130704312473099882374818031102326662789574871010981637459366953651957303561696289196046539891233262886608340022785379502190531984696505301508169602606625309347344667170345221165517279906788593611156822079318619561369233294967598488385640058677798080949547524937071775904074620641194522095588243853606540204126222321183023164452764795037646046569278446111490550890182203380594344702267246189127258480422164053100108311838217758687042351331667512149259311168528133162975678483180241381738702314261543931937858319421782187390169594870364730615150704903362299328754864339168519892476535585630054753846357301244122737226365893465311847004855646536105827088135656267655817023177991439263522704501017388901544643611328284378711612434934891155218148448128058737141850761792055705740540708983830440415610063124460483275591879427910737398547141735485191682255171765545386042734731944628392596413686435235217666816821851680455329506649426625107729493581409852470369732279430055511231362632231661424304422462798563927969813991635377969977499072622460846521084626807241778488169581085437148526924103357970497251744600026160539262019129031698524670885506308217718756098572372220524836223623723587854626224205332516253675416469816007897782388426949607119686019076629776080918901517715584171997747829542114246243733446285569404416664472100088310578448821050387397752176252541118818005763265461102292017645984463482644020642189267887459144490030232125326179918960631308247812498371796261240200645506323612753087666408842219071011743546083003154149800116931089429950373102795843036418687449435240215231619537708927752370608973840026245768447582597046955550628334353042122875953060235021215887465035070818294479988268293760644738808375995926751840221047075793815628994114736925892809969820399279268744530980441874493997968681043174426452187506061116749565931694660144024501561478590135771740195316438617704615136538766722317409539712174023707988733311042367289595786564641985111180820932950056008167949749451686959951204421989168845004784323691828959055846323882931197457845565053527379642020670800560081014750362082329486015003830630195147301420278237380160953421997345204262466778014411123108829783528801883115100921452189431575897481808084747685767776604723036459188061487266323935687692365301290946201408357538721922616452050679338175955064665305125043714032233886315680371101691537302347226697948394719151308449203952047161023896498846546555457682790077559536717142630853891689973873248986579538227224705005373376074324258762116090418796479260952414929345219146743745026234832793214080834773030803610885357462585755443763556239673046380267123666832627268762108790558363522323737144247165367197173820414833533065176279979636981291732132159479684689672501724154546958049642074811012973011344295000347944184502850918307734695570708905232497108747488746044439608510045624510172335297699519505916876152008463322280428031977350572733362268255050848706745491772855290971022278681572789607500213064142216913329186646072679591529724318429558198504787876838892138564753606560095067107970123178836052364152590482368585450880476966185965239871984639244806110111856574827956167250759685328389608093616000492854895580701824036349711449416134110353958262545847573057578507522813796570938011925938235529158017048781015572561846286089031199408211952428318613077315958736434760928903698342249123621429658508786983357129831879155164872745672541626817522413702812985601087955400062372448062762629123544234976785040105625266754732309708661273774084818553497908260586030343708143558545283719677256602160918382490337954936872144238435352798169356715812061121599953842256168480877454913004560480714747431644926563687353920846358042168945677324814895818393288953098579301044101267229530424766107100842409943760735906753333371667032279460478047587422825576652790781285917378290472058744663530470719714286673937915655988391746402057059552193638132155501822365634114308957670659812490194446711380788455802167787345923009294291411618319729765075001790522016155586019210212492561851719106656205015895367647156979297700646862242336936749807889341070208524167392152309828084628618575612510383203232912185025087247373544505393955136720511548403514988515153976490078904244077035127017368732970612659159796919719647603434573769118714278163491077717246577281686794087515397103520367279602389122968553988447821223731318671684265701149588329458202392064129844014417973552793549519793201299812509903148810306787977315593707912843501689567870684011254934000495227949791200132114510203612937835189826298039387852154440041315007248528175858363042478003662237427724674944067237575560848425489695407026766937453130803269630430229845944594152439731418408956621570901646289335326552961908926910100372503710309877946790031177861355912909119796497758418233655752815512405062282255046621199515043057937459467277930485849939323185622159340438844458400045358357163761740158072255956932420216902292062785345395495787531464643833138415950934265512706844608359550128890099965329802414762732900844761357996805842120208772211486323905292701832111404035527177152264708101433333126859736147775921336229074924406921573264425196900765216020091912899354697760671861787805750741991249924083966931538083594321361228710808469029155113671365743280876767054752285942370186454364950969542611831092147459995203613743433337398734359979244087946396741287470383299664477641787440783748438999121993459419092155026181396346363885495770704712111598120289343693452658127689942062498347067877789932070974812859684657359679238479690586850219846977172119824474034487310273183614400487654599401283185526480193755272626143694890076591647423208753577920896312784532234082220694188789574964288238682123498916675343885208154270102328219874350536230070360026338869902181290685182046458698280384925432049699259779582038731120554047561363930349001616472598363866029854753176119756292045995944858322958105186880100595155163851020270060986507916084372077615975231860856635845410377025500610729599114944022607356163197040652463831043381128109116937971168242801586505025567422899699999965499119803696440030146534729626440589769098912186341734147391849602109636468736392589648659078597406383875151137679838339805671593443223596438348543749153619644689057693926509667890548872362408775744763320019965631078014176729637333574176545449702378443129083936336870982127511806220903937638479298204494270629010993220875782990586763871994023724465080285092396759739021488647654759246166678885470157733843935098852890801709077936617487482478267443805897168079665541359621207967908054701761163508400062017042969089898708779646294782934444225976132414050343250540896370080711123652578140345737290602764176800511000105436917638633678363569490768360975706827864852081322411990022958261716106567097710941574608929642482754146433699258981612669479104015584424851451958807802561684868849102769714231438693726282416581254954885777240893166222503677211787607726278449135557740997194237908786628110359019401808039146792362440597276149028655446009346987897113115204920330720044296306787427171032648654305174149224515826325335753247421141494861760096151794749574821182787500156980652371254053331272311663414178000426230598984681882468883972209811044020897979577783271533254024100051604545579750115242476427379698736786487269517051693469725933875340798928456233780476971132944322676949252858351684371242584127238697167528085981938471697270640087979514052866577917916987676764442511421495387921922629314025646301438164146299830665906576997640869844345190277053888662533683011854023605675424778048206412578705043197716325188092649741968800772393076834331112573317158846075493236492032102347266177636580976238254270976515142885806952779586112985085123527901441742004355117680566939598348977166671495374454997448396303383042156737200546684099250256462916517959221354998065714358374477217256264855396355228522531727903121533030241356681951975505993770012951282842926536755402055175736446189401347731316662691624086660001099988358587871073656756357148498146945690757113193375917571915682256673139103066118678720667849084475869518455066887450662638454503839650694296275951910418331514723658298618005300163847524009157716808961723407291168575425224900591910472798790767132475103214104593382429846132878976400570386704117001122985224389933771375069325448460686446636347436751806429536320775290572094681158575385198586377827991761161271038512323650132604589202186787087107808170899189584787977933023778651168470388056325323383612908994565122217218684678928828856314563583402888203176771219953943062921184403890838575665986347315069441561142706011949488273519371104986623286234327623750475291042193421583873186674589586044446837602757006875431559341051571732771482419559330623062169982182289075913559056101007802254345915186034287595766322983404342222949460256029674733648568243515072807382864341528848578391536248433911729608134900337533441311717026560415006666007738501582345132997171620539431454709986802038127382459767668959467411862639034800676170961238545784032233210597511417410243614573003354862149844400538675021372874638720731298150421453829821864378131435419851094699329571527568804300698848843174137162309709302231883634925416951225754881899095198813820372811647476718016774766266373110148930602843682807935989306321483135720384649611439077348022596675284203056609007191499158816789402321617702176894729893866987875661077732550838630437529145396598504407199488143507440938974375947291788223244240407060564145883744444079939745117831328043827991975233319180586165471056256854394528300797251868150249446004689975183717350520609764136545297121176367728945136337855357517503825912850625020390761517869954856460700357423257552125067637206996349559974891552900720631966248402636043693943525730639514739963049781098028694653282701221737139594550029837364216769117103384542712689212762900479772824559082446423240612600004703004876025287549280123323902663205246278251588611742404507761052837549810925118011673262701538663336856497433077142340778129351655737852481269683709787378967539535915604752013125784476964069201099272647623847381815310384026106150199328814102326812373990786121727300009527685404321747848396547610526755480762960961311161939083009406140509949760831281369639474271762705467249327019607740375212199282463525366054998001795556975205105284939032225231772020216651653312896092603602329173821242628303984749391487943306808243602895013949740579277107433982507049712606648019067619354276507879529304061319753342716458198813161080587054942203758195662915606305188802493421135918640628455499939904660383509691504367067484265540773870870322338669570222426723268868936687557529362315076721568056121699357094986804042019274780694705901379911338582418908141864157045921414711722430588607697196864187456806216137283274091181990289379391578142496840410943039184107317305047238232814679734717582607322448586939450772182357659758501264297923124258537378030215522462056481719539394937504528258984552469122600298006713162255252523080716444551766677714399303479212969556719109228945269447566089559966960718997362247075799690363633583063524162715699503515209491598232386811459133109305535701568844104594853909161673517115266503665673024181931836170581082017892396110598285628735747621675141022708365295066564340457010073242913092200566541941520338186253348206124218392166595895549675923745741983087250678973716516068185096272889241946040656081161413017525892118531216738916413405469592009489284819268700616087586169935482296041883746191157342984671296914088077726457664934562010884053651824763601887768083609225386462548613868941559382006157198490817093596132119025087704204324060861209319014488004868206801899945352860654008095835698985373567218447402927491141731193825358510429647647818358492870346835323338337793105914448433380474646972399607536821972848052381001798118283986465008586372022135137449185087555494662359817764177345044371535606862523839899280982952534648006765571482546103558364949154509829936050163279149020941533006064427401168365622415588037046413176853734439569842906357036312058135385878437208378116118226421282163965043713204491677034062440735219799864785472863355341711583086332953972678651417298194208611875793119389805663303805542567962181775735019834052823540142714499116540167823343452612337480853499830532841421624394934030741869665743421596248498416719996979258403038275179743196498379096287972305181937957709054738189366371393994724596867736177536631424210836329814617949651256868611415534723696536509200686704232660630868861673055596070543559871749553928747673066527065320322918401017357221876927613386515086112227302065469674109517823767524490497448082692593285177111267558291872783051254665526441347777274482153024759521043628595172726843542951829181268387717802367977308201735856560151231465808751715935405119752745544715153743757279552515219711108240245824172189519909446956761957670285371313161409262072062463549566064573920636329762586009429726327510365640629199689881344125350975214974184490782726908582125994491736237997647119698975850476806494617484224781126134758340748831818742211279600885163690391696573534220363968477855390109114506215519329104284965132688691803167856278006607670203445713168829412906448891018698761424565714816255786193198985966870072664299746132114579126869541842253823565166554905761465584997771174158094127468566652702029253305676433234953142708335201483387945448645667620159554886288580635148362967477786333082048203050475235584205176798158318347379334158374246727518837433817912644733754425359557363918822383051950800650166048389262458622718169964613286605685784597114275903384284850938416982975282695376809543274368183699428216941044178428805396614213030388590754815941649812179915209143670973325890853319617205628708994462467831278144019501310231153590366505982091687967543742635552233586543825014110859677497347626445935783154616033206112939393995578326792974116556720495344474205033552714993964504589670185617860900021945400793262935637338231543990163882651479775473680882042765174340511427351870812530310278133181005898750572522864706437060597258779676806291572803193799358689153576506324329130240417549245938989672847203347912185377538395807376639772487122482244403408619846306100013417269557575833845026477427703129147778990646556961346265079078566623146942894752547609769961976550588429632415981524825413149067063319166654671330143272177978560841840530843465337589001487731036343468650450035796745054993912385877934961389430154290658048138941677432415474389799828259942847339728823678499291821076812133414784083779434867745281617747378351965670298864579478512316672668442333274320027892497017281182500419330253921405242882132886102711142659514608807938399046308388042404807957849767109625708943072946840176469520030196221830584163436859914661428530299494199865289597432864149310605303335162919142440288420957481042995644556947180249285401838722324493382907058724620171309643667958513008861279065309154661326426959672589568252122010044947023022554864458013772046335697276866065691343942482044448436464568011218254164482917653985321304907384066147296139451730611651033000508956126991032072530286890991275829349450326104752719672763162003295577710669546479189900057784470278362592505882536749764882544175974147049857210158119029933837573393139514110264424188283624058911842417158860265604622681978020076183196695042023468100913551047466345381121755097430804349306825460920396896484615763083081787564230507330495471418651593862353212668086780611328462913892940250984155043713213992804050031582423656200968030107869382151196703771604151891342121167108060541926536870439849368097554071742995019876574726384379061313568182921066564732720790210274877610476727894696287758858892726820706697684156374139449186413245696102057378023814661393331651763742407304648386218471010070569133502280945170815407824870621384122569222444207330760864214364876877145251133699775124170741367923394322301025540734765703898926416647774595666203782503607836963025145241562978032983241784741784450978024039249019449435030349450302143430624942249725090923449702148110826136994754572882322997444133696443134271074561425655698285465301204806704429286958182142408753241964384029477608361149971199375931257642055841795537980615005892811271692352663979842959182677488474712969561440952820696043870468436791112897829442432125690874873164484585833175840462199634306034643462860734242677756708295736802765090764256113340755766405886743358773557590071247507334634593871972895742494744250758501508931457432215334653331467428675251374496874020283837827988894233158561850655650833302871313385500272923706430894077359022248667408756267936102620045220893911227235230340641163593412651852078615424190675203510120615262335850659918336339425753260712751324543257552877253913071056032465986698213247086713195702858222944592183265001386444266119345613516431254646339522219414297706417642218218259130997149195055505915963757520049560929817093108854659715677280027167074546102564643204153076931339129370302303865910607580451709931975868632641079687328162520419659939336998350490247069235233184357026384177709686213126112205631415162287440630838066990584975900141442119534286975105254702778292217566853044170973038676668092391499419905948053710999240967553354953106754151409148851344861566656945700611964637012260588626670880868477907838886778384883488422744946156959037466027526162675166536732958122047526825683593152524066776178800717481278195617339710286043819817764737463440252233096233678536464287654336084957728029400519516039935921758295143460085115740889735237058650061891873778953638740218376640529355403532523541586726379977624176450550966439455465843045387875614689528496372301881265683641749005401356799426567521672016487349739965587114283643807701412217336536029524173407506044545418085893434023677924171423406183384371653392491201946429998938051732406889622539043832807010015952737476353842042792481644475828623420687955728731175229121208370961445943822482720986007183781535079850245118718078635204820771871724689809223783997186281496884092587718408370169872484323712872842173224414707548004006909738083013910214244820709614736501095475359668292764481801843665511018363139902056738930970404865535265223780111582963338777066410278671372061469164293496264639300952211376934540726667772176192016453573852064273024276033324034528343738507401238284049019564308467745951415340086725803711865985477259236556140425484161857270612698379780444164279661548856249266497285921680258558598480971014714323529056202483921098335060279048011634274998839111157837980720474592162888807456059746030795732897112411490868912572248120161259300954826916292848312555535085600895267940543237208837750605260919577761133343504454394012301975658478225873355096318554145614724692023620500192163601107687457027794533134937503238328214016207586479004177501412033365211804813080926185381993206627421642067351063018353240698828330779141283468399535896724052661336288510193811615537947471494821282595284024275089669360825198841665098600019447220908156872790300124942663937320708614692821073759680351606610388138994546692906153433099372774979857038116775107821762319220728040977736082418786112307786029562300319460452305487426090909803078191076514451278172108539282326185176651425875852659611779418572363345017395119128944013946165279897902790414054642488921216587462926302538478506908169813820995032891144764280434217683749034182060728542274306180835574095543432696259746631299262188338779328752430198881186474036945451286548520245787343723818833661020561592497264219716871966677321966907949107672561751328541591274193829570802774941242963159016406564003867129587597432270671043763268669693521130982904600798713856332679904090573695821817680441584250634036194107238280064409298547917291606120089179642184955456642538836993744556801788317883381304052919116860257096160116881471579027579769396217121046139753202771623983261116076947193005868833386246720506139411325902078312616073614847718678588413215538631814909584690266779563054559295050390073030276097386327038597518151239427075342455185311393875830974100067053129945913191616242378658472751969897548433122304512566104602101720134859304667340818119829217023421598384576572928378902007195745683844493098297095628507843633192252580540312955158407211589065554568912718333046492959346575783790467868271350372064461829468642724953764552808441468747775900980242298240452546109862200220339626409577046106948678167511337912204312052918611090104667583770701563411203317585311633901541418699505861479878260572918219220220193312866566279477282293638843393954102090739214087372187571932412721814996160091288920345884545441755505991395541297542647668545190782157872287264194105006526020533461598742159985317271332934719547320828630582721867818407207799390399574849704474532638851481690797749459188571252463274062039124927733566228375154403915423560431827669413665046593800624271013615313784826378985103615487215391886549531416934700358005471031272701919032678847058619462346286469434813608632692151597209081217973947738562184486734104413537516393580946380683579800334650166846497889769491885412363503973310088365096432675025014508163002686388126859836522992056150047547456856916679116923409478026820684293045431340470961616669119806512535980350813244970699806935219984404520960813464753506693599936294450765850918154199840227108725615377895626354492701453570454778093870415509083824540280972814367816303634182641403236554250882608167026021446088247507652521318661424264899177748061921504649237825867214706379845093321752811350239257189789983874885797466748606014065560599469956473194804021428491953865524626358906058281214506017297822765383769287928532671576470427304739259496622864311210528755458558325614052277619828488988389814184490091618203061678894537314635793917899246630404444602116917247188465992352843640391037536893211603637304267738546425166796377306112280467259215971498542542334534800803898345547587983944496133952658948496575344020640711389775729419834038386232769504795217336295720472115257124668300441857233382362048832121352418991629507131925859440805744819317475047286556958006410402975258649902836933937288565206910917705013014167053065113264206706138727689591640978546397185784269059214014519579799017332223115617707816547224429648707208300713846933853137620419152507435083089808289453519452476211641332503766796138288019692068470477927267785883457739645492768064076392094168741367033910520429505927299243078072629683801105042351465477681160536548452506306625626921152854810533617809963903179265005314999430194403087121250593759850873557005435849813467413355133763708842715004500790870549375012355308432778809144154032010614301843490135351820545504712632547424433800199656952752356540528781178307980108549832365187179692738773964060285623463637002240430904696454139091307508910264646925385154805510611048592952818205158195532871768404299055818447907761540622214257339484875343762095435655848227487745048824044247402949232954068565196076151863020652470936055511234333580653541027579199480705114643174646506477736713476274891047326461597380440750049149318389207182423173982528166611322542848243203806912341522457673191557481816327048259652654073137129390978608530958393198860551108055713574625288156980922169724471358824394178077456718858184527259165160477906320053363867103479071245027056694912941403898238025714908834361794914826091088709250614094008590100157179165151291692258069718288454195041609197126075386123869546892234495785105484856028753096926670176254706751213535868887986052482000643477273474197392951497746592984298225178795133965790761665336275312412425948621893819200429293822024454704261315643113111199071191713323271319303508177760201783967299659813543766880566507542616181017934204405311603038840094086378999299655432368627968519631054643697654943222586581349833595627808874856947958447788759713988101368763862903097221705070823216985598573156629331485415217653485914463775950463349269679100345860952337121510778498866288456612411626263332068311755348150088850168888919141188366981466031154331887551174282236967136748941698295815598281599497743891147678210595116557426986350481675581668846768581127536221207675691041084160005816643771348912443261695129863431869205881557695087607356322030523672895816188087671248757924629250235944172646515468092269638013657191259918813497593568635416128847021488607834712504664416425442818657910926321942223085833229979920505930105008467122526616813370902040812364300348721954583362064484743934806211738853785302347605967404984943062127339518949511189311750101412850881006825746484432127636219324544141284024338952810171429714742687128809102335649510616406241342770036368926057006855374472777032166392712093794999882864929823609060283893234048139507318451375906571387516607480568886270991780528223188567406851117738683665708996046763884449166520717007776324524481741554765717683136850548440676453332122226155228151996534254697065560445988854370885965844833169867472407739815303295869972286142212011108835274120446179405593347726185534590542084666168910156510335902031639072328481224472752307493414232930316822010477486098393089578030036179382431058217311783374156829860945496245489575642875277131181027835512844328707772913833209941806085348144915398344698196408009370693745984300328879699001938142203224212188319855447094179041616924670954013785909202507668051398282857390651104009679502600811418611877129405010008301165845298786683400780711428857600563050411651334360285877507211421159087831144379676635573711320127149413886619231716855512887682572996470669604347279446055208369891086383410832581508077605029378669656528355736720714464689514097193637460638202935222068686335715195468536494240258516078030584420483713611034350241479523875460061627312705374944328553462660245861371934291099454520142681627649078690484247155144954298379591769190073592282470720233284140180081106730362885284252871399167082451834622791416981192575347328952267451032397122458573410033444061696379898930588224597179620016676112288469759234156376918297563814336478495804640364457936628093040539697122599835531027524507003212588580864695295093270104501982115331362805170894956187737425403298510930332953487665421792897407924275510443504730074368649311899427851570888763760838641196266925667047956230345777959349352441107296838239720648510898627646987496435663797577483186063811036269177386724673472032016616932789407375338903535169748172168373207030862140448774673537402691189391009219850568285452549296699261530560505145260131846683098839274157282580324722493066232126496984616950612279985326488399275264807141145892741723837385823670114592388071718208077936959955866442097802391819944986666840749986527186922765887943856264802313302259275386717406331807795336366987550490613006329680744686224222686249984414513267866967995386462834739072943092022829934987092434963137588292505031218808738770289439101830118749117346148947018021785543891369112192465607644500306467743704490618116463635266887577036592938891540841343935361274935730833801078419791034573635212336218952540132216305720281945061239909834273856374744823478829820314127774136362350596543668465496545119514167911056886686605572188668814860827901178499478920769408616642357333838202456761225006700860218730313424422858321259782801902692796474221024727115337295913470463702319955404739741088607178582812574391844857817496276676651053432399058774622901396973758587586728992652890075171677065667402556524104343048900817535758585338679985171211358131093310038057936053888589059304442411852695245879602163775866517532186349054990615602543424421594468221239992812238242873804186336116837325867508169384420551779654748870892130959672486992102566377022064361159813405107861280463793885686598639256847481782735930230362532584761037819853607966731737558692581604487439767309991540136402432039123900043956471273806552045635601576053276872587565804926473707754639027557092041940110556044101762706699471410202229895567975140880765027895863423295993766450236229532745137961305929360677069031498889640345738878682354588228493489963416094780211558422497502081544781106979583988237107570083328918058781010777314133270271618518508654778304976178449624682496347845255171768030366604288706940082706897901839664163083626618558271431895390846255342359854302189348674783559799216664152882868157824979503625526841063760770870511864538368426909888693586338735110679684530299706599467846056276516326138244842493280861567111484042855371481489376230770022587277784944810165302862337092668310522887642396208197271884970678185197968487256719367474009728784712992620586798006453091779854112776262028852665721137009297829126626370959376487382805506967800234191375357020396622336031223180339964953983897854827544322908593427984085028786289179052332486345448284858221186686131833155032960703908282273598048313285286374913805245826917481765016465496386056156782320865044830882501363647150476426280994666555279647309183241876000807990447019920377636413092601125701011919472294585440086427009943063380341565831699350484298188142666137456263464214555370554817746688439697805373608956439303061331269829894504985900770598117151775437937600130988327083772978352480965845596380834079346782987394574001804048384679783529292314483779705176790113483134633871052780240133414020569824542604386032632189825840492050336447288654712615468684465095648437669293987222373308245069974177399097101778870513604745640220899066647353556895091458489064469934335167336234055143720128796523093250853717588511312558779952905993953098880090794140098614406980664291031819988938620766467322895041033585787662112850440557248603472147433222484788343033731198787324056578377279746425601892294190024079031081103666792056166037710305981421762001512399588771956378382482102257662600118974171013369217494063927848217259559817006602285998371246018838138556690210578399545395600631684724117606244650243306261400017323206509378705788689704044844005943711299933460363304004652244240503413960640359872797799027511254499585129177162943515885674332367299798405225596175679874986943062134015175578375424446648646524514415584454524406300752587031294722058891525885542075707478124719142422163133538181515173606628004221027678510480427601013193587110741094206378347644716785939042660318799693483047554878524955955499072027964305045985776727012133949053990138017454813738470441164788773806088802722828371783444925008296145783104371561954189632000115249058776134604775038562881484962534288953777651231355994012675726009670682957895773871330815233807411032819706823768912818448494181821565392006128703562348286292475728417271525315306332068231156996621761550482720703502534508180490341635008164432463354441020806740539123352972197179314918207736540656006335888891300795280153063274349500420341021390714110265152851242311079539584741235844855501324971737343508606652027299478123067831250285289719205264256698124511368759916864448576965406803240754272913415345114974427712558773708476650550811780104501491007358981539671131483203736642818156865749672976733431032673553502511925975824793962237529721415123953324501388286517980271631119329698455292916205695037041188921343275026086362293602121480696490192922073589880958436097523944607132043978892327959558489170739569247169890471742571847991713065075091031157649646382902234853793521521533092149425057539517718043281796761506077224766190533341337309824716953136343781359680010705944460971388030772795959448342187618479909121574954188657769801150324702111647798583014639395268443982238427855737884415595587783381870895301327593573068156753970096305126515863362569437318886318603864990348360256769345347181254053846966090989536406154774884289554700732239636137299709170143983405475680075299473585939932059766173122238007181766882730838776522866001771993332080303162635690756852260467390267683125740516423704588442151598213958340622317993055921035981831319761693567846496309919300357488842677086171670603778318826411608272973632771240697604192126196161185400888842012168086192526199341037444541677814868746143144471024888149037148643320181967515975981505731622928247785099290385785455230443747016261761223350247324254703265673620533869980002620999029576318344618458259812970663917817010474834024048179127229842601851320017000114136852978869127109166622298139016841149693740178167990334148394498783745511256040706534978629108565844966036799703240893873917107500652305676178622596376849747962433029372939128466262257292284334387308450803023615466893945473688771066788599815936787665750851537180254824904089831878783274352975269190079905008520343875635669044402234922898358681729122581996523287016193288681120505598940081780817491567885104478867171446750977384516745369253009425526323630635749258128924076412390984743830766340824521802278017918498331802719986436894142606989089757944657505272328541219028099249309638822141796975575895650263924983312790623157702159088197111960973866168311178746536527860617358984048352254091948244726584877121746735890676669292751383705851911411341340934371177815693657063325648905316295764957213311994686317840002590498048403374873500315505184743755833778350351729402386252069044876681824775266137434306176748846174433880656021134830790524384382127162554443063785914502607235783398418877127254092384713423929721086400002035920711500617921223538127684203131647832785315957034019724461200590242093036080232986674079569270028978283927063085728808742474766703832847017900061153556573900781565633356495992806498073153779151685214757005457407704207328025571597895170852850325644756102049626105430538715548880789051566797209448578717136314679092707633909563610664911827049778816372250111033762588970323836732199724126573378566193443205605146515542170761072901813078767489166453500724704669675216045132823875856936911110335958307494069864882205317844517879543927554857737450814111027789596849042662046103590041037251324281500273274425689494649266645204845697649277540425525640637234422805728071333472864025113233068468511362829238823884686218608248812375816157309939056955731392616438237033649726249737620983537704518673973772837060607150704393515440442402607920036270247027262695424330895304899659893968729814243101587839584454892344488472029840788108698056652416858487755981622449929789725013060350862859537178925943921150239361946579855645205276938285861837318919222727009686507934496598160478365671583802816048408073657858658923997279400114890274925029728139177942858519346503357890617791097901025206411401022610226510698985199818757265153789398759927247919541994708369833085415829237403655016484892047183076719183555228355734659620694018533056148613975170049254634450579972340670212892717501673592806783597191935736364570871706125554396892661160427985832919619179610288620245326696360269191340378560823700258921539014286162239885059822426375290212463495367932956089906001988660519606077825629115603294083252643769830911310882531303892941226275816202339076329881716746134254478531741827133851455205887270233624508131275418542183638068938138066009722566724174537540808535600080911643874480639595848669881922538970129161373029305362770068375081071083526353229241940199343151812424003413288596305987145249455258088851508348704843990755198668297251457390954432476598926550160739776712240764336910376682438383452710249568963576520582124986898953063238775905003262271579882285969138298027079681034749830468129009319836400043958773471533061337905405444756690385421069506377296916769123304475119975847909691445000228442797056743244722186544416745317086735088218047862815056108206097350706377470890999187447349725230155974503805904146912235671310206385735550538474427487170575695711000374408231807318992603157767004206592987204875398656530490393630553181738692130227695467394535405958104922924238394496784223794349108220794586765395305347164595686579732895794628647218946776975851434003071345129989184880509323631776982326769304706213168874242850667234597491834723496303367729349541634611984489434615726790768112745895618944964120735333674322663531732043449118009871474180479426539395315275658692216883583249500648806585169570541652134245844838525120780601822584279138580080396726903081140248684715767224241504075698100940866584140279883775148257677995276847236291003340947889000844872614813268580658050605522558772830242251063576287245203636072310564721174052680061535533606975864253232260835241746876268396145926333539688733690861745836075398190421653545846131472525274893784864835909941351047854047686099848141291361025825158790339750584431520266037377770142425803937472728432144555558749205136339951159700851634789337109046956942412243880027864263659350665101509572221372670782263086193182483663066497627986896582904427820939742325781653656065232454734116984667565578485728456455780819307782283432803233290317027470833602266351602171333843469384779536168610684332959646267869231248997966569767123979640735977245707187833198939608789315243468527740741011842127388255921356951162958071284754870833692140520929907996320053407475134093822481058046814713175324816136716327811968580355915862686798827975655720818580280005193722934647803368930689228149323860030025890017315337207142569106375655483302345643796973730462759204627933098400729891108460963494563164928252270706110014529366147801043164559152563301818475751000918045789896870339376553126730649576125258740662803236298758990426171146712520760517801905710592130123191263049950514134443440618229879732876243335957056243495074872055335984208526018983401819982832685302874639159650171689759905531410959747094393452954135149042707816960760051718105743373392022111447192658053680039620393059230145165253619903054275421531224050582326284879346424701609679572659897610584814158435101747057465840280713800883058354014371192854424618831732609896011557585974965255247712163936828535850380666267726773227421493412521373387574768207750750992912226890810448785102394581584726711465629051472364843331074707835642113635479231103290677740379462047169007346563136449011493384566523581272859383007158842764927844028474407733472536700991982529413194312198294001912715668223534111948886332343842325886299877487150243109799756188300191772886329181085939523547192908933974456901991521948927301960805793945697533266147145315869134368664069553831407914338461518336827263539954703789114957628376214643073957201487872143208635335119362557323651446470573001825830073049102780039953892381737102119836130878424198852728140837189290743460397044395358546433609517208379530389141395219645607771975613479195837287000088097283853050447097222668093758258887936600637568295141130035547910613628903704003155927864634446344307371492233274499034277120239128247713135193099534754130223679477971311893208668631504098530507088892201758228537909554339294626137375858558648623916827373586913034328798745077540164730340305766941835683910330681053034574737038856066608740167962810469659031376593135483124993695572968041152072126782702689284638744932927049936515876329947500816386462294644591071846810182672443331771688090965050020877289237169592776723541030671883885321790041580836896729707409176685416413405362004418877290912274342797985254266304936682311399433693547639765080810844249413970202020843721377853552289715104264604577037754115082176171156213455998377302472944084663223159563555765084373283377892330947662358936407324136345712995471166922994309914793931350078925224060638453182202874780976337374068825738437776018464812294980264532045320150019803496830998762443078368469509329167743416663008656368575900209145760742987301577781962433566486952469192634206871278971269341404560701827083267767290878647607012757612660831465982492027428975527139700430403553766326514746927675486235934664907011953198543244300507061121585313949442379012013946089674636687074382018012434576945087734222105393704431379942168611103769759193335848957777550577447644898498410313955902269383354144360596306813117987306366692057454354986014624981316645462497481010034045523634723029159829808938940642973412530649905143756785427525570951417491141674228465235317329883621299299382822677699574619042543259882621370981546048105664354822435881778867380896794619944429625294619064572019492346627647757570086189454093377092753358153441783872964617852391442594430678138176531460596713187733694494115728727478768983764581807307485259084250740394379844824783119835457022610090962891238873106658783871539270197285385171215159847204261866148580692020555830430770686338509456094331256701657532607468737378260096949644284887550869116813522519199991801763940274790744455918970303896937169048457841484915209358583006359297338995097822897605679355462172850723145711786011020655796691353787143283066041667570209966954508549111920793084346905709254039568738405708912646241347109834752592387019797315604007288508493099609670901306946566460636830008334548953040750418617657301927381798620032869816098899777399021967968444286789456545454025750288869563399478943207868920165601496558740786924001924769879872395797341679191133348929019684560366436903243799787710677269347964565483117021497784021510338868765338825596911674086390790940589606763491526697926757776795619120429592392214294779473072155397303337867297298389224304208746096196228437824659099819582164053583975527869697687991901369877647845435340614107681115880803395686682483804013065603257149014883429891780960740111781294565173805014981698820518850018508035550323735498867455839784243585726510311436960782451117924577401532244354120726369744593692939769408914657336899178309867654735479053565395761660315521117343828470435689627444842050802959653279898738227147664684456268173710723663861435502852792311639364712981369625573803449523064908111208873032248582558560383553274089186652322406902894582000014633076423575625441456873090223804684586951708687214773155381060178070541954863565471491097243188073097378439735103753590496487068677031664510517431373639187513463975235193189097573360504371273211363655359989163666738478733709095470962391857297673836768788391430376793311082563421747484965673704286769206909602650611380065605243161690902083912384741250336315147353733670114052708953461064373422959865937502614129111926674215713490465949102110754960786826546687357734727784542731488842174411529214536180776984714595229155801514933507188501824918488845691913246709133346118047832584449118904733064022247624671061177533961361177290462284205120900851366138809080556464360131209689324836554254739286135671102392946924467750415303594890489433012247305099028692141469724582728264965741307121636316063919513722963846610426905885020500640587122444803693691239667689971859557624654309290559182411834402447283317684396685466621226892819909135912498388199968331775508544237867719579627118719221906619638818022267410705873842882117469663559330303453950817448751676362574832912811269183654479388660582932194319260949210770610406999984064617886299083562054157498151426275728689262753206467447694512276498265936270163890928540082852803938867410833446178267332115056221911506008836230383478763348585692240413007583173837735376622761817753929890887192321107391263300164880869787368992973411541710498398078702804822664929128840109283223774634583971498156399649094053834673739266263050424373387184681786452327986914305192602023725571553223823412520883190212706052147286895239542041085694156931400045596317160792705427566171366748918707260980812902836024860190670935618285080050449715716199576421272085433253553100596539535180668331600503121223140659988871264348321427133421356397755832004600350986628748622638556897136699316768318191293720545133202414106484599984462912716822598582013389977124888610642240959026201110427254030221042188673481330141163508698762983713895600492795468136027851785041283926529711874785764771449747081941747401810455686891790271336389889201332389034150483325501994864657215405019068142884341911970831865551422906497817773523027905342144249957440793044097668459822018551689573378611126665996878584098489091809050350588364502665500155192123833528596391187781092408816028633610606989415682857051255737136188813701402809399856618647180451000335638747735458649926082393690496715896319742951238954548611112571745925517109842167673504973699709789052446847995425576229184187033636552481444953379491735474418332112559457830589886982363246712793748879491089357833050767906067086309809252076607022354323731991045532324636322557576615724131831006262100352446481396080089056630759792146921597151503396412633143297114654134239770007214894384150507713762860959633356111943546077424808111041185712764917981832077020632362896463788685234235075178185112985014809877511133540026729215511405753290963512011930963713019008081848050662497601854897461810348969192421988700270562673985940339621610482664097206010642491390207614546063271689429630236332421030139954422700689111659911717053416023480480997384146611713723233339768931429444947741545113451243218213940743665667589976093108842585626651033156541565342947471124787873315788045092729477373498716412819589351777000956313593942656119413896717806136003345131988786565824217835274176925023447431667623612358629117778762850641185935262343191166965117986319708697761670631328577140958184282885952024344143115747397935555019506550348334390773640518583543653477705078592808360021284533938510021136454620631984936722882314418023614130098322661796115551322948490801614625269275248402055656394169155095295625759588026061870260324985097496604018501885799668910052293510441853790991817364785481647304408610750158328366557233697116068906399544463130134240838094488347320816968447095691540976880228262129807565846786366794244765447957346343222102856477214604157441958584847331985690403085382987843908609800082245346950149863963913826427217047350533316039214548208838087227460532581451922512270495625468940716364103590410605466684820969352358762898563582777173896544030706093343850214138331502245023551340215395874617910607615343092675405698401885488018166299097002124810328629375672147589405823419061449924055103759140579797223660700025580722849971936923198509242067932017163368612391159759510891843206482445061837957622363269848906520825296109144011793964489322974009309588222110147704312720805061110893107159148489275922071434798277167078887741713216486475685187613468771109521868198750374628102283453631919425910976505152191174825877465545724993270410819796634857607292280675150801512867921878774416277305075991290496966505251440303490316639390680805474451793581941950301602617645486543587735083023951647244572859060628222907887647770460518934299731576654327792019553215608452531721784441950076812155235210882136731466654411188085008282846708953338680076974419490741062888182823229647696592331444360888063388369605320405271160306550593793036029203581790719812792816759506139896689514184239834231877162400977833182327954110502752570878331693111568264807272563726844162028726788170505831789832698461279005336185217861382790164931283999641395691474330745446478562545535231842901393027077971109927926396560876075899612772900260421300320001223553729314479002283697583859596768791618099582577343218116673960784622524504879832450182065208224599130310870024054484907343778835779916689643224636942134531560073437222632898004113395691001068610294506093396699731832811813256740610278991864519591110324472931058782320164937927542013332977971363348873955712313722283530642790221050084931581663171623177938096513725844669601567871083828119013752597578519285203127239071013896281772402134463936162995186963386297147673791253443061055186610678709447586361671182823852867825043907028105955350271685251979378837418764942978110077805469140038825667003544314636666086703558739741820830644807073076695037017693954343276942451241728245948876601150533539925959325885152247161155925284330798750920023667568179283826105580997198062253283189944873851520800668864897106268685024787440177509942171430669673574360488540551546554595075739436200460563637854985786729139841051564964905564229059859826743347677568760746327251560247680005262069010428482641829150414599287615252547891320669882189509011786478961820131640207431478878027569851218799690563087916313141299577364280591557800161294892539678861154487072623737404735996874630876951930843272584960516481938952416055156579235848466211205006188398811672322006836870892440859564868750180030011971891955019712603616067836107450662636469612513806068046964084905934557713393516288899287981003788303937007088090580455110174385134982211039942525939879566444670672676407379415962928355697128924913450489490374401657161463493237052446527612285702973799437948202253592410951782841064627747288051852324046546448987072959978110285617088541666959010263157677169556991161978313673934032753803831967220632999374393530973866773512695453885629805792670454486772859839236000827776537070636292467074205106194412128598902329929270053382082900586155310282460111484032811972684000735847857814129414943741584834940675604829326916927900145567707638232085590197246280013197834200755479484980758713751003936117908567864658358864244888154783598811147019777579672031794354367734703076835644879278069436887036256687825610470285718932116834906510484413331055310764744668360913633370561447413030874181439928916836071768443937929528271930804004677918253974768629127135504465699482236465674189223937685813321148331499391277156349087914946180254364861325822955426351545612330561739511007655485133148486887159472427187752423989328084096885007123478738489174517317576344354656682395767183459482492543752602535680813195964626963642333539618783389766739532894369798514084419518652101241588088529731255196469455995203973505443490049602405644452646819021465046340344222118871725033811228523355769568421665639189895761996467298240029295818845439124208306087586937507464548802838019967049970666183441809795062638129199889083418461229678313373738195264088325765851468336858425421144669151312358993831593997659870064935119060977931396060424219548457356525822901242278096147598973527868868128950759459883803911762385859454215018519915810183279869581768510379832999728775430161950655522467509412511479223740368207933976753715291157808556930705738686809010195297982108004766629453339298524377139847292654072503498732195647817615427777995403840216706612021155579858592480538312612277141094070111416342754763582035901454257106366776269262270282148674679501088794810971362013498220000908145211698918119489801251365761238042298873739430139779978977278202502598817302745678559990731556065822285550630071553691118035242315081956815542052486781697144824237557835511829592879466449510324731959164568810614964029522218212115301396700038831693747592101671266510117556444763745896519860030685481793765679899817434795832844488354903624433043594694145887323771383511904440294695990413649806553205591498606183790587116374673187106099460147366280397742189555058746603965605038224627089194453773993659158085761129167828347740648921292652567518709874570677171914298239896581384724263297808824978467567113607898316783259626876809525732171838002835935420954305073785215114338050105048395589511550591691155016776422512054515202615910532804836132225699784866607089779346128154765280174646540992177959727550769389951129523931727030108341387030577974885835269026131899290951769776809246383257152176789778521281240716293842255510720201362697666610211304165873793775513714634199687695156801418489006431600577218115799766148413047532066793745815768268663211573750493319849645787940740869654143214289618420258081025136113594721337191710375079600663507484695629940386698113199301082569979356558004567016439277441163772440055114548313832680213505028686738868532704019308294108455282715947752372141703747122355948020392513526382845892109818481989851398328452508374107564625987183327539723905054713461472047322977284636773419849788402491823502463787176357305812656698213902048248271460057395133052112955154287227189905943328112494564798767275234725958259906415461699952831127028233391032561381858824551136333091135705077553137853903307083921940950885486490050601485354191473967397987382193466105030213702719513601385837922101681481788516827728909356933535065592159240882346553645115557214766001214024265261576491974521748857766245570387316682091415015055093028883317470573713518859922195861059679880568896585181777516078395448523177738097254853715099208195287244260141863918323142705140554353647726319138096374288481752503506313696631955500208532906041920177106428808126343329191188032878370735163398425939741234677293690155352314057114729484357569298046895960411183299898556454392804377844146119189818282758235297894196151394749872581426172459362790633671620766505930981640401812396223410796668812049427322746340953358137848798549265402911512912797425733576359045794681909160393572909186261671758068194303807909880083771706115223610325201773429497566155859634889480955574126742849807538503563320836035732040821755321168435621612796735389171459400821461479632646608357985606768169027616453086062114774274827707957630561550420200300177016551314963509133769344618102764768495444894492744744186149071430960358293204259921575839000360433734400529427752151147725195758752400278474747607494083632412055133456662607944351142199018733482176080677766544680320626601378803856620761681995809953798352152253175967607786707649073091494253456097606297480428856533266488047036542700521568590123421171249286482666768799129209086999106555290590487218735870755297566053169420889699138045694345246200313473035265778077911005533548556521147918058953852960167924066464980084109077212292875236759736109851907329951298602401179230188660578941289601514728825799308837921529917965160268148386620757681460458787933275959623685266204722688204412359423068382239323662015344850760468506604640329368543675732672246599488740498731170955789960445398551280190864163102016143482793452727223052070820342281275893471558381855428660397322716230436963940321858102835580997281536635953531651491084904451966475450761670438265661358533285042482744900556691202183193792470566943415076791273697237689020582167478111594349420663110783832554698880874990896928706482673664376296637607018000625002602860174941478586597580958660981798003869096618205645636819957351901896469845685763092502337957960394267701557321205464836556893923831094338766801321963534455623607051631923597731804446939852094015026180370677478512771622539919309858513954492511128715769976139430665781400312423888632565422641867434879921977394688751650366144265104619785804882590648215184276988858567898707822673529247358669245346254640895632808200914658436497130297751176471652835248188835424389781184782566911175927625177935847630832253729697244396188996770794878222625938604834853881394138143670234092658122313977127306550763751239734907489477889808725842306531974591148340020029739001478268170260279468568362586906208244918187043045156315046521238551235932256651778286399819525833855207647741589070221586082776707338661357265713438648603035541369924596441392762680371368607440080668416733956802393971861206973493265190176015629330067316040542595729741861846148176059145718779774431906818688391033271584805513261930565589056384027039600648928614613088794126836013407022812821038920320158666364973449091007332295117022246282368843958289416919927808872844076876808026484566405387570201427892176493408974437961800137174996323095774415083171150042550811797530485543102279099924740302215238763396116295201440171017797392582503303138349300756958172546888967387261006609711809014345493686917972273332226144654945515648310533896063158824278979742416000902245756203560302043509041411750618388840195755365925788204174919118890966118448776558867770609813876195680510555096694468283442716817788669609523175599881140388213058548208897161017789028618978778671312394289923241101764430814547397552162030116485075763800545160492322059693738334963992182043202773546108467043962423207434301568358844813837134574020898510880341455017620171171186406416500990391728863913232081926571815393172483514374137967717098286752510078416995759684700773474759275349708689618774407535284568844051494958849198603484318305054734602139450590502309164932104680849568986092471286609741803621844926042392168902773953702815502293127980358796107149033473291282228469297548728455986875718154187157223664824634461754000889041940007750843085581935056650467084112066429214351318268345263830633423406697267176756486775382071602038380316295753443936509394067703217800655649223469233403988828964564784130633754441666858540781980577007903811194570913489967728296147797040115827918664681082325212462402590255718069091806007691178490417238082945607055841937153938551503593499906939113143381880823660256923867320634510438763820325024340235658009829924666163061718975130193341847491661592007047848263529225942840024535606537213123519631123377632470056575295040909437393962557006241879774934329538817370079525388897045303409921545595583054660863622455142474437572126303972304320259393390957587349704912858957679024564455840824203712097171776500765076650829906540579947132620673053730228471681480479419570587786866751698454795792465726348189099821795643619282007061551985865827987749039421230049354155392955608196814725054079437888261907235874633809044512114678708523879762006167502512173074103676145034366058953402471600142602682469437637440212074303891986414679383661112091890857821202332530057420608442553323650368809602042385231572885109322832306885657406866050077978686332038485132975428887520928883303992816047915596937275444533800884418661010672631973909711157570933493733657481737903317406354274836466439443189600091882976831132738413563267864865296631895949169583562286732768580996504732434837751209646503287428977329609164875783039838423048829835268335620938232784130273338837797116508945893236732121005156441424540856560269853759017168064904865357794818551945920825511678031033753979821451465409066002989568970118530596576019000177058338838946461797436677052565156479787459015846019076072530522911468751869321994172522985281610214845893187510624484340041961208643915451031222663289134788095593640048663972838019809143350936846427323180745271861751962291034024664370143175771782837881807371208115644264134942464753830390277219605576139769289068758676626426292998493269194530297026144841508712914971704196046229901047327532607347351027418031196098676264309193643868083569874782178273308177958602931950606516288868240192811805592916342786362100032948964162618602024308165122401015092254672212765567390124655136959425782532514925907980689538292822736251564822417449168586077928588662537964775129968578660676508232715973546890817779362832265604444501896032261140537920706352185179223339790407571127682720393037042916600677569145183326778795918748248275135830376667329617727102828335613933480704804524429353216870400973868354110287995714128930046312466432603488405394609240023280512381072861708665884779702121626928834171709731102300976795312073346420651831920996988552066162232446027729019700049049986354497568885095741773387744283723119625714933228464560543774899106305031516834244543217106159826833476890053891712399418330002139036329208631139288954997159195850602971976378627231292940954305757036830901954148976459919358693477533707014141596136211144368906874305397491332524481284820369610457540089613696106856983843699432437493774665300404527775827527526107486984207768637985495091136352200290959304527774891489857107615076842127518608885946980463834604026461688021951013787099993501658449082280664767478595302361592165404726872593645388977891993790142186447319765137823709681686176298234867204833357669386028579544214711634448719522132908948551128085287396059679331325204767548869640541055780661763854404463290639645918076234170279311632415036690835772878484778206240747538611662437896723634550590028533977101291640948305701217627829073833323798900652329910131980816207862362770338442041601623096594582663258130571462142894841924852361989806324248130647772957232703294766319486591495232157070848539419991463432321169822206283497200225919993998989536988137494819893587016211389293634665968458951817394177450360591797760211897473137923861827797349252895735843890636139668090102085234693173798698896759951280912108967387485276800757202365246601172664213477843958902302208020825441224266685676314114272135063819029354375146078571792239370913416956907447074605442950726582626146518706748161863564983746166990548762201768808908756101400480037737856356582785863763368252160410648601519631460916462043934253452361040262759548863025261242607654363363902336663319061353571887009716301516534584513069501366486885615854707341919694528860828301915818936741090059291221365645379931092240003774573945515323003311044094012313551316953530232046000597430326409598864493594191194661307590332207236577077420207634437469896308571731951486973673019573791165657214038665844298538542895603645510567692093672980336568067365778581247379451469390199784297336386778262903785694848691828349676706505516796604949121736622732584235835522849669783502432955837044921455093378951213337467168768200209416329708781863750326042559349714869144089894257575828438181056730564872576615982235080327849821836016137808562341108780360905971601450517221136173614542663251096029724288265257774686138646297145134797740159153845940931831793188151590966975011721324261245713812831976095864287570833085390301727541894338628804712329912812514006839024044320816967551285023222417642409679977526820867748345979170375031253177392757811554389528432045608716586185859421557078648406495391100248786386479011188063787925150954169155892404665688019761725486796232067538779488001546261360641350397974652958668482440006322583797805531848862154566313799872902719082202424264265175479474850593777033886320555889795487116633626893079586838257736234955197225581936618969811059133439107772877200678184567840661655575934042995497512848929554587837067883843036330298637644436991411955111986522479318492926273957662200214856698232221181570647325214043253238562183234105704983397812735000856849038115105391423864418522333401029853388219161715010767492505865869059878336977326168867365251117676017266017809452020250546009641978789289322771147960207927364433836287876280444341712128446677382031293560303494761806290636209697603989867439340281646248961405297829422586983014949910538694750398071790359440597549562212478472476040906021994590411743309755890874558440804226389929261820075310670026182329781391377891201136769575342812346260123633484053494295696237195869613845754723831540490614936283831691145994525792369877795589361808079259136952790099456332078893595727291437862900491377635379798876296771417933803211145121372659479693236550385467597623644823256103588196222921859573819426683621956509122965995166084501321014605536922362673171473575422929312233357366779576250140472594229416118548241289256900328493813614285361117011003106391897459020925749523987873098483246301712890053891668761570623938555388839138935793491905986595485262080149104242801775040727411670961020736445391917658356212805854556766997694501830754998229888996704108100972128477229636545861971415852908145213051816825348259636154484591194377078805677842279775816696796825486698003928619362801665561404586980583223757840858791103342702620153288333918816216904575320058356976224870248022088538890675462018374687018154975836840600054877169330914038328768902420893675935393881148728409320194221332631341526124124909213996773200710717931690960304893926623337795392142571590052444839035937287390058198846414102488996734727648875321229425209161507920681077081712268638526265030191927244908273293304114345258586033621497668435302218083789413954594891322006525577394457719858489257447363651556923569791999231190382999361249564867379231539542674270574718438558651455106790136470581175889233903227451518452278421180740504420835571734381113820248850097557528109381992867817817877634944125285782944178922600810862541150295732509969724916483243409325625197622541681623419603952021053374018139453115047509267552113470421972859725076081064962076599692007731843879651784739217552919162480436846133002387622987026028387604696075771954387325457407025247483385232328891987877547393207218022679386754555055375719155284063116665622886710853866772654422196485725744706846568125688941733699902206750812893744447744263496151646842809419421357288085972936399193844902851089081873849139704920485212546395734634442793412161116575389210751608602102961968639446129178749962928280252647607087697068626469651167223824350889913147393337677922018383253248041914257828820813098172706761228180291753844691836897867824400932692783433077722211183576850625558479673073915228390243069163498406509781259375182245879989326887463441283090299111289240507804991148049442853120207604857289624146835893026133329429048734019328892002762600272217333240044678354037749985321511032639009758579326836662484132216418728565766163069005288975372277605942676914832109613821020856539346913202476771210829692234289057188133471122803558449409991476455591603663377849141126604051899243235025184150559131114056431043378926040062307398162751133064087619613030361531859770919713800297146348006586231084766323016857934709184312634362419581376489664439076748776737973488771277581334835349558725002527648137046912216143894842191684294615166489797843666921545754463262933509893880935811413321603268527032658823853464809044883752651252386210025178614745365276943464030446174636427985216848605069497649197470635580061296668688238460394411927902690980932647170422107312826810838986303317030575055289220699490187243890840456005092183910498299375637014611221929658086795222144075525495152518547544560750978753896779371380978702987378214228966170076730930380323437321969779971560670173548646153303121313860337608871692786507213291404323530116426920116656898538443206765305349792103404416616263323672410430374322858449316790439100621626266779527382382633076348116296645757258479659058735109402382854275239929190732207347222132673610201896259011469203815005743800251068944381240508262548924266957790029202562703891140120269562695558416303375447857073890698561994028682302530602240303085758982714587331075730861017100563899986978256047342066399916992918147993439964622928175777199544761230693042758483705012311439174931701649020425358203334077712803089181318497888291202381563946960617806925981394488904992501423621891610866449020626826559797298037193266837347963483853766702729452192233183643143942659028740987839195378392684870292542046601982764265264620955234121414891728405414564318332627018162965020520146023098758804508085322687949352721072961226669439442882469410549431111468355188355360977823883363470738979894680559708675606089746046641832792031561368113175679630906429057147233698992346604717031136037618215309454404778943180378222660566927728822836831538855211713646218438195478931021606177083218715908225976341689943601493113764880529259013177417180053871832689382187128002346928718172453741508888910918635733288915594557510101338161404402869808201679025095887024280409157719615815828606240753428846897210079134099924255367351290897349579661825613594512742917606941975539693703797889997949648413251759947795655207079660736181211499279170802355331534469661745756217967675780006037156385592436046432264010701385675043006913364893757353413653305584874302692762509504972752548908105159567797389099744178011169827997928365713117407614997785366388364764039287762008614444713500782927804286684315865315950053396301189112943667060251942935295470583464036117092941009935559058993188974531939483387172248805711859845329786633389045355425052404880774779419517187701274201792092530807759677867365073085826857264494568833390034632745800335736109638664365218429218811923974247094290626907708599585473077957866448841489579431998178538777750217256126467348478263087702160318175437882504598847637261975022382342832937977738491172341390215838530531835959492240160055520802752036151717281060316269782990444348541567744629325310416144810096566756149214908989054708700184579774137509416869373505375181428647483243337521412273569889155810724145049233075943176194525629050065846061430445544874561050708988447475010892676435516587458703121794178883207261831314408280061227264110152038290566885487960205942447087844949807840633476093764983073373315981475001176473352274238863213176076150286328759683952835760309667761896233071663273516174186501559756840652600569090649622662369130738660382550576070803260364387572965414579912673393905377813610717903731034549354598413574010034991734040436667195224062644882000608406302344434360203865348765228661053404165799905761478631729817203694234098236282088403902966505631563666421571670042606988395391536803831918132466362144079650793799251392620617839838776851946460398948579810099730780155154742100947927407448400881083282898631866846067018706450476476944032106782209489077920821952014863693079738450468707189021892743763632808475724736906663847764901178143758590291104152538038322425676515569550873700798145791861119847017093446181821525862292607009328276016736713237434879046058786499953548680840941794843443384437473755979816417801763903796424534403609646571122371260193529442009830938447420459245736747829013992278217189704755788634391026623805508036852606026850652409513734085923885238765260942072705441547843529842127636698581070624607799308978470675448330123409534842253303632907025248891728612236013320613459008736778967399932296673878305293650090288118252991575307386644837578466959832174288947633244961608752367235244538311997124534312721608404758967649584278741495326559421231620834469701019558213480878482176517981852626800117303114358460683812781911672594710836748916332365479107960044495610672511494511636719648173721453777993480657157664397799739446274832605074082652763233774749322549492355255336243548905868377953579454789945217070801710879990693228098686979297174237909864053575447117417585404765891648412835022833585402213244863039494706885040079336069296452605528090268828918337796850826854207567985489706096616630775039054342403334820128512723129019577336228865657333061334159118178267046028707522044875955056842827842833427509467181583395502345611931398634739067651448808257035511341710498986995043753137955554014031879855487474945908482358707306995130968346013508910102232669870509050622914485414359224172859561467723170006479415643545489243335666752268001365451850453774060079976086415527420939967364236841579486475496711561829368495911293537182500308253468225454810230743672189898543702804462142778937208418778899469353865729101429457629625831466387923941724320069666597712795025465288543627234743188920323108778349755101868881740289246679863079864588419264349230271377149727840210810933715591263574264323508165363200060204487860049367410179753904544983876620184448274568722045134525372719309331957746862014673023575889842228319341464055100041963957188204778887247809390130884364063376951728114647219787367100327561131382036747819762439879326932556264202550157702680556553253871558041779201511886342018303376704238442503721240850454314116129105509562866149567613513616522931011995107085816454891448314704692861893914474400832679075287994091133481386062447423176232643866054780743296270293196998392573657976062948162973810899533637057884437116022715007889912618338784907036888265887151224106976848185285863410267996767965556437460061854656007260146343691858227912627933001975270113476184400756664223253663614157006066847061299097196084843184283465597117439685283801784614000753325660261835910514397801462557022219624632857982337859386323943614045071060649048970170968902437048583787715782474761677957627342791351765048599201927975380313915592765178759420031965568298460587780382502962081304339942576145675663043339516211522219392023192436238028001157333705331236910296202665539911483472307461890090268895703986083342305817532538675929732561169728829891516377376508019432176044665947157659328384420736108152475278416628706245007647961591652924182067772094627145706903295966899865642340118738645599264185894757179418325292614995924842400922069039275331875942838492965732242906029871719560347937791317048971826867024476830858285844870442885114166690347436823783015632094274608247998414980587607253226903313880883155166742018419414895534373699640742806089303911529583909977934799568739051317063967960267180918008295326389085654306594356557915451506619156844536208364078316512397833361746773767685588618534542857673029774524606838330179767398556350781663757577850616065144356291027615872399797966592293077634916387660492414465378802388026170787130565210454237978466308767728678673494345846528304109035441717007770915444388122116596178587682814484912095881213024574873301446428967387769335838941632300246020019512224198045961408410469774831198386993483798538447472269588196156499298330277878328741370150911161615627869090545111174172785823387427953944432494918545982147870384860174261405888440935972074128299958559449665237114983929860660057906568086681069838601887083463281598469224004718690065592535520028619771910794169521991567268659711638539253349138549787146200120945465678685617158041013226081850482899678046330190860670024515160092023639788772654234942086010606137135317634715135737747534768205208396457867000831393036508335655055166077781952041345373545461800237045002584991179613072105531173252303058716735089253607341650932123817462271928592181549081185585254149684068213278378978351255889594493048394694722499119930466495857136232847231657598242827511568929406178594649863193758183902320201681888383371566296928116225918115496537162018984576872577275619673121254831786823194264609607713310381843263560415290146677441077802356433687286161870410841970894260025123331358108124854485416684110050093548397618341232606759329072234234684256565416948415476960155676336770362472642231295461662465247828929170360985211875854934885851133398158656087220485128858274217766466898756829220819266786026328164568422468804574693453524668932600015777703116615195737640130860701007640693120947460901941981938925437789329568480834925379827279661313420115075447068594996137229758917314836133471046043743902090227442051081111599603824956574167986611536241032030231398812457714172403496788732759858587024187663389619749701616841014750683371725385450323391638663926977029008164774132836699478978627502687812063512532150756146586483045607250751522530864072442902459379125943289093288191527585902747365516437355735775536070224473298992980207394534248602529470984440846757444055562206395552795711974899323009761854692148461087631929992328320732414080516652804792804693745215273239852757893288130991375030444414940424253799748342406697080820306956650079256776668607716649702655325159253205568041104386385757811762275977275837120660983468107054339747582372860796841870946241187257986123327968446620407755961547217324411441991424808404368130325696856725483243754324522492085105001086881119449875306772898226835511200714200131536033273491728801703826054066102023662657778561785780063534473142491453859625378879672826323081631300437893362349276548777696449706759245745343822480655207777007904129203957128534269039569033278380411482927872798194993589449600791227899518135188862776735349332760041882900181618705179262461918225339571872070569200807486774296398436222560717717221770024872303422117507569440400774203675558843328408338561951474723581010188657027889910494905987320192693094271358357173131713860439394709193049784839858949865300669732515340772537463600392522095055226902566539461387775185144493338188278642092137278587355697045066947097044436209934175651581042666517121354166997187055291067008739088396005058930334510747963168350307453546236656163352858257497183215673307794375481049984028529832374009347422669818414901614776839826620180115534856669351619391693154055231839635180123580031808244298613089511310613397872600093892254963910660515201986589952138967819115949957320447184560625580570384739239164072626376817807422486969205934820176059985929585242786736724248943343965205531691063000025689592636644488813924405358256445588841757281786829642671622912236135381624877924512873238046506996239118067862520096249853119720393910878557919054349607202062892307935153817989520052087240608795621685102750845727914244308012563921828258880412736899076742510493575623054650114855598110131279555076126222188874961044845320566532755092291532128675205768896976126656455731370495175824211779412885530553284102754528019967586442310541672261272993374844586319792889196663281637753030143734981954791363834054126304791279536206662702272352299297303213599875379604535839985219461878556591297986257125720895735295534899735177942317678876596084893668324350415761593418510065912487918605762664164135837610092843497624383386982896022402686657203738794515547115988065851782232507439119745036145412023304873638802152563167169144417392001123407986537180881966018029915273227601474697155594193775037700076987129133772802240980738012756379547398165472599182561437664724764675524482191306220175956835389555156277262213823753033955296742028291041096457507773695898916945029809164518088084934215231909537498450907294650409695732849849367338479849658862811713115961093337028988109650782443455472302230337453418828927929945329258054668222111581328556411674846629858441409197348326207530931629837022154864540533894172474351290228797696796097308544624795150835280258505239800744169820043750032733691767725755958562551602243802750078027248261568089228775705516785470309358168759312209138541710456847369245118661147769643934953812719880915509629812536418651957442723793027980990003576463947099520778966800505017453475653815696519317221139551270113821057861122259890246121269134496461692074160010147680892944131601891783918773376507332064965137266481739335143459978814550508519148180900134198529094671754497733495860294414873448711679867623782235223455819802163961001821289121600050836874619136340383690167221872611993614302434020796919371923970608095560190630775595645293311003481033915769222330055911382431231615423157277884727657862211530345671740162320510917138004560093446493466225199801681267935145456456323478731690005518352249284227712566213931196765925591407851482684837877239812133927030185755496416237858294829101853938046508012269632668151956887778415070954121925767841229908278753129721262815789955791599332861967423582734849283561327001930411576487597308694973208619366492020344483380641005303948112378519211931663949515793658209592983170152972841377590861292686338021677297715069477308350101086736772592677399697720025139711072514466132897328353487321981716810451098994045728664254370335812856378048539480722669831794740925327160310136320100863208654188443005682591148032262824450995927524366717750055040665354201719386779318102254068253770475474646970463213106555773781018127819663985225700207663649837906443443140378309228761854723562584186270872184227659021951528069442827591352373062725973051359338838814001108499421276665854065104144334594427087428401643951752889323454072898520572448963344873017438171244198431368431780083333030072695519278778159202443586034243124473736093748674712891373378475829356503222521940616442136957795047097513289462527304830647540879487635694130025273396969123350683259830182310669984567520497478706621934747622008835164956803300887483138683312726796038323433419601130916136174228464807849141213742008884602019359973868166415805842968139266979101500373921591418439321049917791088211819192815816010525880253796669926675595418835526012972375443966983344807433535261282216848466899949301400394955340138908500478115675621230673167383516561367560679985248383978646202861109815367585101745641264069449246904585096396545221921971638852912392173085758379661254905120663581195443977711120011353844162286239490157855074709160758776480153683875334409363396627608331677413533435605335507662104491285328520855838592430986257102974178483081713800092624425941794195166847623525334190015774659787101415405666131861833035768000845772504485774238067306799858040455249143733182617869094895147534992125282138080959989903299483064981053283100478407891446702263937207263966102637433981289219328693029473894073117011601177165309388804378945756792234561964468371343357234244740496762443111478087240549379043256313705561639685092647736606659167860346954152974843805154535628352201622646237342457669696551449492825896163173778917393377279538105571693651595257583488550228846714138361726022185796100253220883021926635274012124037429769517415309203776015798219480606239997809632580654043809370410446021330566726259338185103631352939125408423354011078913766997429013510140803804031921152341167107560891993273315653404272978023678788306425288456529261297401566622610891590966148100186411197117084540008471547218986906643139925536845320941845998518195707590308196169188903879775280323796463185381657517221146070196926647104242809465328647999884430965713480513107561436115963013754420548631922190262697704385239625796189899568341940585511909542548696467159957709515285674730988937047864118603932435795718583596593446737723914924599685854437687793806428721395718456698203459220067478257127710478459457281792377576192368513040012627752142634145581883883713619069076135185505788682472903164315437282900989886817583955511942780966058924492408135922732972182644925207575398843393628432581642978798535234014833329175814049487431821480912545107179470689519264734781268462610148667878665184806477894335049950752495931477319281473730320297507656446034805264884728684999837376496181004430383955609521815497165109291080346271615449276916962552320416186677936937773406124193622952025936645158132404731586690464040926864681586880517335155246591918950881630125489352879201446182122575937870700279692427086407969075307799198536640874487850429122400090028671135397674360233132559812201756854198491958729462947557234419434254428532849665667804805963378232142221200548149812855741329772408523913637934151611883542836795077222075101825415695876319908427318152969173142759347755329660368065280549764185904730759001506528403393094343840599959172652462563117739783283366266579069047458303461525404363090358715985959834028732180856964727868230793473953461242687241673222747876000140980269847707527009264186532855423302444226535589202131406297247055805889389684092762086395676888647422133650428604138736883291880778486074769093550302426086064213034629737299955691650646882164462616241556582707685397164868354235812975300201552649132577690058687657178417690560330082312133907390774171672587491048610586654135766534238377970668694476130974515114848840916532940290448144944301127674141587092979549451313200712737621594078921667266768313475093616894349632042953868630667777076459407899128313818753151218525796789338943001520116968624857024696960630343865303359768422934427534027171340282768547388269359297084480716075534181868832259062019378870649103477976340228694769894595173927067811945535283127293315572627525272359771308867159825321035747645634733628896909658692928498934953929574335478432907033630334296496313191465733797235536524274487019387517380556489269617453270493542738770722798236461921130575978306301993645120286426595118118358201472857069100177454812721538345670562474967838366729207066849999595934506522751888217397774708453645997636675525331139334122585682411672566428267461161896368320594068934354324846035245456805407843358742730529109000679658859987562741573537153795873957619369712805503376596428982038295600264334431332860303599998189243644490379976064736402150968118439516502248346016307818824029649850419679320370517354613360449225904273584529971458441733922248131698276389348475231882409076878053955679932135631968573772200170893946807508940263472635547746520142097898414424945482891611542680580529121747134996727715141867938158712206221556050517121422923000226172701683585081333997555838826384474498486057798976369107700715596619607898798115675949299356650982750681647430305470276901342715364302077965281972251034135935831559754397214010008654831917434368083505606588033487125503486420068939680275959581397581960561803734620638979513668765260681833623613768383764421046364964333338504559495625639860250214864425381079386421687095343005544173478989782904529404975052803332684344755110056442981427773015965018195286205363432598795405246983848094718440132628675350898376353219852727790666226640974323886552121581735858115260412408818023032895085298330100524728942849185251763710082223802590334548967018100892565473879881070914952209285919213235649883385126172751507405818617549700550198732884901974846173313265909823103072470681920801361369922667030567640445699164798690995203523454673628352677369000990647663674517479759611960596554820290229324495249620674698965832641424585038496870983527353674451708083610058917463833246171466863494743078892980937983036310209615007522964214397734499634885659886440374050951386434073448771077739918706171032191415486233671428124796369877318715698448246381141278115724510049062365595264225443302272352926207153751683898865718486054525727276587752147457018301238764476622044871542005877512126259951145694605161348358167779487827196124224932695432819353561188456668882957323939129199561506214592972149259187976544132704998099813004318754198725128638482691354065605806713023171765623488192087184337692894467466747595531146393156162185511701461973474260206464081572796992449626469853053769032376286608123632746955011849331907858339838006505733750631603220213320319797009550962678421318957838781653868886843152942181016571579339865811038900457018339580688177442313497599822138253574810014305664296740574913461042526979038932522878572726740265636377797461185706224705355430833339117352712819246271507988166630648342485932205404062004188685176463457772658278680898464517665318396174880493838514155700157457792454071782972614698231034945350177439768381427746085718808057213805095690969671962455455873780584182969490205535188378395995472655757226135506591393943376279201907003198463563421016363513656456675966278118602789834905107050509126471345124619463084859472438482236566577540047194114463779461242475899625321513596684049801851620859945396303642064242733715301683098681826977477494191411518805181365343340937836735273881632282212026595082637097421505526010707693769032762005511389613613787854728368745464449735597071605377186451823053291314782620740507086632810281861428068484189981065221145497888125732116614610259092997685164801228632217529312513883900617587522410511269894247364085795616723864337449367685126022970718879831318523746570405399332092606422788928281392017697266875705643849323220059444203405235713216567174267680530406851509653800697308298970100022676659560852634733181567759565330820563835837134836671763785786429518833778887364248703724355979431217557317217272710253317015719122296124977855258374489819848809421530477605548357316987215191490109581002075057090497691827345354566182472059310937005767821469799330790734742376162811089624578358855717342460749883656808496737715363193157302991104505992251457590494820524387398438419000347655247281774378957849229670052719485823014085675720685976727075281491488318371870252003117028100881751395212864102428577986716623772147531670366557008541990273527051315559647073992137156079195979434730954014416458837886409355550559919496358145289851522016205666408302217679250024409909698469082005071345185757573656479920681264169364162147515756760987735008540722157976858860294668146201908711205167636193094204021574317635501315486660448697440592190242890556889223117819200353741128153674452605122059831879795052096622956121020963546278437323667636638068695767086915383161924707560453311236478539716820798534480798472084835787942138317910104720129670762974738653351243462080421781379034771764457465194048183649008224587091039955344014835419721918547386467302745166550875322097278798582600972086814870376907810530012410078073343515490838991546409876302815197886955530358367465532675775132460444620574316955563169572787628097768457338758567379058419920527401503135018964785411916710558376292826867986172082514142766727959919241844099171771739209492649182276669196729829272634266807029754209998901861355763440617751068531860419821860513689265549336919863861744946938861020474440310711706198839893651441145327086388688615452974702060738840082340090446260317025555754060989629980508560349285684899331995847878559948892599391490628680724870114912090811865651219293358288794286519373957056951284130634235707211470879890666755498860371703385451127217104476684114952442674932614629561212952902048422981030276105036741005306489871535875868857716265937883266777559881667932290847573434000570653666620252528534088234090285941436995282618980031401049037466158987588207486650725509364105355600716670267810122950239039235180323444369908454169481042115967571194360808051288956583907916757615409566147278258561163169075681425311278745466627485818622377708508106816080651456862226631201728762674359144734044556782247153993296738028582326909865228174829848312575694883358171892234815400747728962089244776009086104695700372474929533329668391425516807530110833191475336302585906319097520550175954180935484066949189974927183945581733879688639987803993338013694779205851409013380665967528509453964348806384590953944607003741097720262886282471909074388725267086361260470234195538757783333950316529115420057352967034397344458265817229797374856100910150322264491384424807108225370851127345637174880496009263341256784105649844912558048798306436941902055484392579885664660601159706832047703574088392805131102858375651258123293540378343579373977495498082120302921958381435343884231469697243455235021593864610059239581806269762250707629904812274622455905371597190627724660585307971464469769981462246198121723194352617400169802361747860990307077859298018291250986077509049387151246966795740838956345346512298720848092430241913830446122661291127147740070937238471670714122536432278499710298751089697222803242125341991753341860555853895380976350273103338451040241307325482440242640181220931611053870142788929463866529476247944285656495589610320804292302576038161089833217941242200180296180754108837912566986578601063918788769582822473967046084295890011529512320187381841410453180207661209372339225298599142752569821984331839188449828800000380370460038639431058084261208871170502483671857702521002234436545034247820711585419360348002957165314836844480502076188217816927616170592213766444818271099419917343053812785031269209789390218946874272016128073559015724892215625199438028323353208661170845812678233079996512769107836934316619610102932787557985109118220987549350222008788474657219402252382078497310648607053797508156059490677845932874192713181018798347690697798799374707653632512367124389117228969887267915271561868361065885485273666987720635897541568709289538551735674316899851122657547892360690094911293074374715147880547179680679724373104145809998162292756373791880803905556484032175926491418674645466675221056927578400219822831862920535416463790458041932232349636156195299282682680253848373890281971438145051672020052221487249675606725695820394001819563018316108708755246095158642098019625004619027050046686990506970013668524498898502079799700251228032706845237213873613834552085561856190899295713130750240472193307098067758491616887111567369250686034994898307250899891729114753316174962604821953642843392115529941491463112627849884229321182645662417988899252497745282059356391554935144201758706213287845723948509463643674377495265363210978455223103660308633881564377000109308118340735739497015700426241299122655126208735973777025709915569378817185010582419350296230172938711253710710460641193017271527978752184298408890785895193771733507552340752616403699901683364934762976715709354279897469677376510200914419656457057766519555150250494489051754765232527924610234287719279949587638181853615272590427056101721456231062624282201701877108873770481168412966878680284059840229994354430154730762212658801227541390304570509207399947153660031849553112676002673075948445365207706369878663642543417652786503597438364651384765289728860576319969741423524739290693645899567530899841571064098339187119618793527780129996870241685168566356165050901399097104855165054025518898463997588154189062521378968880851482844233521123720525710591806210297656502930469194456540831471839446821035507456223406229570169913340064546729302588744045006135940285620738746610457646476001506427165986586199169769618851651755994108277420686293303936420952803494105769097038997360917424819252571724919956311413833695379922246451543946757035719924788536589830122104936608526723078761918093365898785036341573209086901805351428602751060082059239495482370934785487289523145479737709009934287802040719682126940018698585111034133298264298527534330623117705950395174093347964696127653257253990302748318943337521243943850225926442374120161526019458975982214248626581928062860537404830687715547470772436458198068927579577295420312108965646372785340634612437116868451251533732412507026951949117629666382189725093903550883341681760329381822463904045981093873161881767034632647436023599838427314561125955323009629755302975585052637911253304896801090089607573063705697242247377080241838917875219184344533547879650323796079566963836659509853872152881715180191865663547301005490267939786585851691344731287873264038394125619231653373495551913497370293908270050068697702992852373490856876582535408907050491647761857028179409257847423918113488399665541030378317449718167706939239870220478504227090454172996673518645805640547676787138656933533142149379058106382263475108081073702722613212115869085843102092051822033566035167476122642271574012709382551405143746991245361363126342647778428024683877194075452509556532586284326892498869943137642585119847901698055330467185231522831223038374467553783978039738963534873536121138941678070980893866451233230472877107748459545872566426069834314088613657441339024558290518269997815984851962428205747091352855967345402198625216699636893390133911471548609398731592585063266566900584852582726240042168024641516776547519361230774911189303530335055872295286516590817927296908459477367588933102373382733543747305285289839090428864902627805443227870069699528731623486270442714640968611888357336757715442858934604654171418380287605244075976005774537306382150639974249273856702518862657928038122947260233827119966620026889233323089533380047742480701920774278632677277973589952309722062089651422901953384895861712577728716430414249236527267809186490905732796600558286487432678612096549290892816221372444271449272244587946720774912569199798977371506059345282718678549928613561429044893856195532033376713617955279259342179456750086201251815106059142918912612899945342628487527278585889238929101253698336817451359836346746587056430226977869228004577481932704035617247570743992727528292007146983406296097795496743827739510009800598301619938085373173102468243262405840444529581143546239306108056645376366242613155962598192787018426200808914383138218394747851586985693103899431878520089135644511483953486730459081603994427481806986229288843118925818885725706324201808900979835110482366116236833249829355044968972487785276177129509642872669528424238008635639852382019389237496261967405637737541939599744628387773557303468125021702333621973116641661276973200313343784215355233507957643135457942826006906775451558996775084682745431965877756215925364521302375839885207745296376007003131784663923107600321737324045282467188574633740160981833127440379984011782572717058250782100305968008058717135147160621783378940418532248561384875029255144147140897676596792575968609940463757977637098612215069013003390631371701124594673832338038515437667687267941219443890222940590542382098426636713511688481720767413215191867995671542918522001168065819575446233413927725772208279943547039257855249957266626154901441310808535339840110966569708244403674434551787997026422669703327414385038596568219602644674635386664068254481773195719931935314175893739401254871458792846999318235159424743238332644479603420434253836240888976721704273853431738378535698530004980356797628346052318307148611575349052422938967516662323052604178881328593831248050491176169339470000243696550587997155602606434398092879708080275398587203387968960454868518184339984180117048812828574402266639595615798817220130520574785978469602993645928492094892616583134133418560770580739553017611745123405357710079883615677206423505502491314172052430408761512680427182549229701370751372603408691160146261323608225817703349916711354585889440238198016713032413998433501966252862812880796837607192406236684154606890950787933670481503258062666578307432388983941298711141093893427781798598916842775894048578927212681029903591321436598257240671507840584898290739449412506234343568640634845266939470932970150517017394003148771828631436121045592530855143685283985169799881649376145801110749175766587872264836018797050921808565902680576909622260175288848283889755555522314794154660388137413401314319118130205207143784979291709681970088427023788904898525418289508154292296803227629451490074062559195699680942672292463886362498847887208343740618562769138127206971491886245103490577058448974395739725602510985040366249275225515238945522624095416140480596882315370337588973377880487052203753067473266691693120379287568830802278758959897441276213827391442549830136981808715810027524998498497285116279934764103359186644168205490044493056144020777463471049545608380236440778224819890782686160723720989711478999818680148133316677388800588691005575367033207851313716697249672794270928525060855607130058430341950972388854634936780980290561130584528554365767003948442584530617084515495443745828058548169693918702015281660616443339874775195090596916618005565506977656232995059765284805295572893222608295267068069246678969257536721769816954061359665572235021301208933323942060913780898555818962122077644381264512710480253466695795186567748276491908658402393249447834310348987277498370810533046654834616966425218811903854582436356148974344833268735277863233086457240936906461697222867770564724840861183733009636523983039665775432525088537122331082925008340540643695900393286077042715361172312046169961113571210634469960513086171877061900367370904821617479912541633534170246966236606274391364093449805565671579853153146013486417674189669479284192568061120822839974163063409962534326263583001738799646187806311210750635780603638415308659781013596935087284710432867925115993356009728562317152156781387985610398112962700202917332579591497128757620011765280999832303450692039118002847478345131574209985963195015750533104723844892805524740644420321921782258757460096052316659026890525233573154777982531663371122828657776236029462455023408662095728290225571715767012447966097604731964156896966768256507326010374149293278069111402830972921829009196048114736843493476394261552782113704140152056385777141620170037235584042568174699625556710607762852753883046292422711266867249113492659986077197626936321359043404304255856296287051733961542999658381010326916982270083239808747756636611310935561522922809295729364507939111966592095510558588154173165173641746489474008254401925494874499107208899269760132599558230134801823105412977238908132426420936650322067662070466278182659311253369034209045038555667823251357682609734769083044592537314630765972571103304684094263926512590402706190554551629500430305465109937324100445662722309694526131943483534503698645390297699065692162466803856728576178107546367534661212632806031712525934151205170043218723651779093275430351182460353822023507683861862403022545536590332106036371210103823328978995780875205534870098025376316512629571901110449749433706584276437228997508935145921285610227722389287035312241888321979707172453284536017355420176433645365996039358609998877014402742833072627270708830977777552625813561618471289440171904127915771594319382373397349272152220086095557477960029108253961977907923304153082276312452802945381380951664220428476522450188477465992133404240282998848665751864961849730447029550887164043078575789730040913164427891134054664203872686218107080869216086919731128744351327621302312647643931765589675728826064579247897441137443241130344794465065519813166821322866132325736609316984850243024801749309371094009322775088769442562591013298018320884073056828891942678447774078585584685361356078924671155675960287824238250458983836103858081981417022884080021176729659628828851902166595014732420443499274919290185025603278818720431951221031629138059109394504738909851643703406292123281194007763147932004727961762200641914626969577894231361190085050804410805236358564205140750011757264955149856692963986339525339677756243518070532684715261565949344190104053360676053134217062638817894442643433959057317374823900727065666726020903021797767478116043614080650450338068891739905099718414911650630243381246197175414826203550277330105540116502081956849326235887044646265930792132292132194592527813871375603019634490963904816670483724635389749094333359305752243137101980382648382960583229200982545616307599008603200776717820528952453985438226303678492968522122751136295034167242158060458728271988684460080320097847482116091186410647667317105288508554134931802106879748417187782565783727160488331984591664334290113346649922978545133828778453598513717519161085117549635098399078622280374832247049043553090404470078946341270811969880794082351495089320832687135407656152637610511519492316915002095244496520916569576366087753127376883458773662382612574808790173530907518538962403228385086169150430382010122213944812747823735309585310780849302856150076141785933899819544463736503749703478008128917556825872583979890446800651020886591502333939357104341115518984637629337283528125506354157203414881000384410665649792418498258150393478971539248130981546530465643082823912273020497363308965458898737102405164861858065378479179128647386181532750110768758296501535402717877221570400847396482630811841715708577137394644727429207417816967806396109705402968105779828783411812264982483423006136894575325567111732688376145495969833700978861785638292714363069332253060542657981434566767036701268527988847874370976324946005423127679815325518277365201501766304887214910741252112973867598193348353301419567055299071367892616175634722728322708584861785913601140998245763427568850197561172258251823629469787034634389375656923577063573116594275294914440913653342606023081302247160783848652570104626284525531641685993398291006686480865378594793233201490789022207693638417846682091404593096917777413796631190449626547341460196696969707199831079142766041210290095516205051161363597492729301177989725561190696071047145607417516219343812331546887498599279628809735484930443837459331521219910994645810885904775157942519190549818421158142737751337504211683492666882909421934413430444692843228041799174650087460602123586755230170725700533581333338405974378898232694350399786777020386916256233027891416384251202558702248317695063863960107589833211474940902028007427447296026694592258803638828935027301137300082923747860255307958848001740454473842813133534753666845053529130332810828257866373767977748427487102335094931630035142622697157910162705517682693313593285181278481606651472917530294744501717636793121474376370104151827460683138191305132520680391544920131919527889492319681359393141298967240272772397288529721144999203355126348665029439337682939621015435281442971168629393181940687742510257257308217383851867017144914244760060727588967902890010362632443003401535841981033857041385089347385977412065352984407975300944120870615968189433293030214686432771702446543691247243632740353853989781122385521407794969204120020090607124452246754116919905528124622312196872471087169114968357841186117817840363267326197856350859571236897928917274231812550631320512851724518176510842618565088902578222731439059764137428659600613485637262881453017187439033219419678725270725557891229316823509924913642530890815846564082587530510688274512332133210056560344381578314424481639815796184878087349408906958965761645331092796175752401605441635349150210251838454073799667786999615772581546795445479992368908486821850399125215353580830251687575468565694929516532539468853308716969481103918027881089873456100300860326920385262270068620189844473422811767964299314814730087187349879714068134528831337957204206301740121407967213469862307655061373364168186818301090220409427778076676734463849729569250563366871928382225177656427048886569366176986883286556894139123403356712154001178478707015564378972375904039046018082883031792840127810824795939005806351240344971438461035891007401556444318289366989032646324079402970762267813424171906356984394259171813884452325689842555926961928647852409506530439188806824067775238242556519927889822353940863153462352219142895941062100170660533250240103283139482009748377741105424052636686540485969164973406603547573315853038088701705979737505682083473367785490206460106968382295129604334639106067199982917851385707415989840444129223420887795669558771020531974892362506752963731834539987563014061884099250756678500144859003707585303511183978586188490508897212519176234329116415112950663331183127430164149271674671849602302282194495603275457544238868931465842401294429144266528384635763653460333294684318004496264077137134913595017986837499096201289939367035063088932423914134955558838007523483189012629614131847974674186384519578007575780779414760970414307663821840850114551765282935600418988894715758104412205338975685198122334220660648178494702641928463983676275516468214890801820999056121428748066387502550427198496674814124995081148613883131993525076196847371811868194156370521137199798381708417704318675550931160965915427039751521293699557577207794378108487516218155498745580336100187498217296228794990225096740175562681170207681495486093475439010466441781836102697354640423381043172401790342749461994355116709229590094653793552888497858941366896533154111499933180744088595800504898423636879434341558593004508583574249095374669965407255179864207237160518127182083359833610918771990312816383131431320120136139904023493522344665367154858825411699553634771952795086060618083603064691263455801051396385713672896619453320142797677478982788279695613980897147494430245599368709353276017845541175949778964031851036695835955303976891025612721273925518200303417859538192235660929913351095277722063507128262810090934499249205102137085259904262637949004006313425768407457830347787229176738359775662670491892144117762517533059473796742297786328843752107876175089992032411412064301301644336865709706438550487305282038936911452598752382586431110815965083067099312150591873735542507262903640462709216552507994733372909949341032178149758729561080133704304108159912635527927995236743238411916006148667191073706291213355242226062394528117825812076924148951594822808163396786108519443441882185871501646013297286306831601535147691927595366444015110255542252656958091671268902734291050133446869082979795955615183710682185002971541390454832269605674075141568132592629607739098359473347645821295412670770779306845166662786375257672669076257174562555407767390233151942081011756573252128738705509581871878928034272172822482261228336244621223427376460368345077453104920078420771347740389168756457612241853480029109084265832551783731556722229191877499309037554652468923868144065705927890157614657897671571281962186180161270908367660583254357150085345739081186012335789240814593381762345048949188753126087961251049919781280266722017716640858750752566303112275827864053400133287641031628672256332249558965553481918368978895803857842710955191649043634527656843683912294759506122478003251004859787866946223924992604707305393202234950929905048237572840335858929014132271623754542883420123083662918297612991211729250970590782988776941983651167394432018701132882954067734958442784507757522851652968526348746958810447222260683607614295431007940173981595834918182410809289775090775963162328043055893178009805169586101758204164398014866114419122249768649103891988364001399944025542342975091558579423242218250990296353133128823036701168256645059854173207433625711300821795221509602936157477340829127158602983275989765403214232855337807340681201661593098212832297807494499740115186439199662730882853232323326773929472066081073177018128804709512484886824609975308270419521749367577272763966027444756602676720966979815710385005424188241618893627017435338756187054893615989660473092028209498476008183738938857235507396754457408198202696215828665957909826616909927864437595366183599499533139907084373250179369685178704746934942539563403008979008806648970661473876040192182845520286920096839766704896059033898079205766735498546013441453366823363767224592285322931881882514511269046881092908603753361135796688186947017005415459341229098666079775616052708433654858326321899595306023874999045675126117646184802465522363236414053572849401896350599764237958776739769172383295081014164836665110799053033297236688137161366592228283480161657982298421588525858182091285099506970314057812789516646754021999485792196710585574320635577072134414896937687699552869392478466010983149894352813259251541988655068853326033802217056151784393414215281974826468460534604861767260172968926221966350663830911622115225982956307137672686978078744166727899445193092058317929783631613863213283345920624654990468036890765647047691662353697737780946411270698983160066249338006962614012023174168641290549441356628080833631722266718551077040903267380899490402484841088739379326093117093807805894957397093758573958182882629776848965138109595395313618767741980285935875022719453434406627749962643421318516172874216037878996680253427443093383423702017869580809797833886752576178332844523858800636979744353298626808161822762362066998220293070362597467387678097723689391878344940110438072984335467074702178180921205800536448770728733041894864874665671276461131625733179903041829544689371953199318204036206118974052608247044469474539883242667654159376628196127368513555750627781413398780590373843433992493139588732896823425725004867277407038156077174222203559042430673216466922776461187760602670263228936276467209377237435620513232046866195055345632227308808671027704975168181633738014906026454962314254658819181738144513380334260457063223704639308331478546341457361225585254953536930376638856186048953958155470976166361537295377652969629967807002975503758720850319850472481235876747933641867879259699591744898578275408132485317158022951219179108178054019359230706842772055418858336414333161466193830939728632445669445207631145596015359203631481682628159976858652527857688763638518912113685264811593541459111123884585587999445709178119564031134318597925062587431599945561563936126264524266397434327693446088884902946675798168876245382804012798308185311692727778642629686951046258350187475578762115000478745167195916464598084434443362352760868815169510511037971380565490436049084962381084121281436765012959239637221197255441779494577513073716542051788631026715403469406121301135808912174414217573545572060271252295157553640641452453009911860972407878422279420890787885023585423938183973235957012323152668151823406792683071958105367275676855936385411470150818811579429561230936092674489150613155821291427119038464521588872226672913344695016000531621792049562451030539605304660631905919562441054820919708736546384941319509167417085427728987820167766752671285176023329586122072573494772871921207503177383603364268758662803105775306900362871743518190251579270364697100180296872336848201478998301215137287687932362738343080522765785009576512683107892492351584198259477275153887591388985324942369067922967231781564958022354152170945965370794421346758900774380422923374450286859023459872154339706523529673768490793706876553191177932475034198840485377343148643400423569050795659905271101712077306116581686576839969260564494084265885877255392828679020498498042212025727486797274726968610422396817189678667009526148635822814184875143901382692831546011912390927316066232924448717103918067019227271837652948141796220777200987831212992720962021137374691377773892214233089175569141779030362628496956303580600565779943372229246567310842085372624746468186143274931051068441311017889403265821086593859064864247225437049370167363869196458426320103352516037162341440884756321711017501332410487819600878249327399267328867419959270083078394577688388100698299667380841041148178052353830813807711251839628122302058308387502269245184093153640782006891718028070961283865035773433767174856720448308515566431531518405285933646890771201463658285369451347694709782536595780179862987791276934652940048553375082905362713963516156249485561998207598566512805523758629895772857350874287165000692050356492609651692816220794967329638550581292988894214900772656236550180127164379239004274362689355416424771169411665435948170821278305891564732299943200727336654105590784825470560849047896664233203718816824175245685503576466280701423268192745169879068313081339075036997905688680773441468535109915532121959833456549755490874838672301537200252731006621508268052433554367922581342467253670613870458528449463893339866546598201558617379287884216630583371152989471923202711402285157572402253120288629683785039192728502778264702182018796106148877600051399865959191618084571976164871356643509168950049846715861895481369533597211576434839011752718950260233284981832248975439509067251263020877169116962757488786867178460754876172279861684888894801735394244040561244271166864687594572809201627364859283151504966233003766590136049511746848727693683952665451732774302731120114711991857601476603713780114899582957430559834527740230005438041573783594275533222050737759987212671140419414683689314007613039970530913941506639138096172187896182206031631469328174859287806714881370859771069911122121940081316286553797049761578534669215867431754170093152146224075572126924640998256003206177065540844923220875232402978378511353002019135162779801323087911778252437695679738117525052800148061444108357724957982486899525450426905346023432841828084485416025869734393413194759047623968642960678961777889060618890210459365172438306436454222956421423504251175670324268087578644231336289124209591779077088059813916562948942054634234118902267305791977362856964343618570932370690679793534833585126280474619534376493829709531007766071588765668518268421907294136099409480136386042231873905751544500121957771164559393688401829962365124041629136366277137389211335819592214248070319960736894199787577060219455649901483321976141497785179081558151374915307661836377301500016970730371694687307681481766156355474811886730350809671261097697386014701420406424910090430666758469427563425238995311389734207881495844381012669439451883553589537724691320740154899498414312010675160040994142724579768902568882190457974109121858204877741904754714311333830158235176718053464097880371878077204083256071503535796958242419175553427246600406348162439576505124691284283572210352690073965767294097676603094582960657949594186088066295376235183170772754690703266047929838804085050752588340210188492449827061323848656593353756948008284252389178338929028293668412345306162536155160767794618331261865940360602732541702669917925970348385422287019314608134165187252829226333909371541144932420833794342083890436741390845055070162249060117122128304836437845864189688841181665000750328470528725479426361274755530081637863508459690934396275977553685336669956593740717095045090748325065790724477555882899050835238556766375644912497354333991128428582175411100106726159790257451886940951439702182627887776006737547101096491122672755274323356732138933178008537164575016491046043088640389477819972159509439697164718518360015695271938653256450342035011068985837012680646061266242749657589873002785533649152787689224797406974722421642662316877923199446185601697976018676565459822481204720692466470015100800607245148525357550661010518247853127719883774336727649810268847904760808926382834725298201002418316346010649329782103993632185593181270878420426433207588412673315351595526094329625356617118918667294340607597351424358931935854850666646993257835313349661135346929620358929670252330430256486556785047199492529519594182524600749371342618388902806870393248371481415413310911001401463699268477104692902954924111534616267535031771536867034367621165365596237581102173672542513621313830641168313395551963959179031225622606277096379246372945998139622945641311490581056363843387894697457296266238011328339950974104656981754712265936661824175849329314628610350843509952184080312383462104544127682165571533583353304649099881866748028819361840214144016685935945837662889875946563242676204664692014647525662793110983501593996509418679777159827024252358517250387000817997791414989751409359378428290897252309695216470271948974757985369424927835851051236494449811493098835889891251573387765512175170301774044109284275126320383542176775552244699158742357835216657548728650146622008501866559631216238597777421397893516685699720244114242462074526331973449140162098811587923308077967986281566028409789057025785472260857562947535220165475622268756622855087372248538151051539987965802829007554186907849623807903684681396814243682425633652806732147144114047393129379342396279571429686136658134931376809556641562016366706209215948179627289014517461234699740255697882959265697780669483735745736891735146489353801891210452205421937115823416071366645583271351539679237289834847985251493377810057465734225668991857453031464425386584979508004036150600629527489528633261578862637862221007054683006905839668333504642476312944142597329608137304396618784093546554366019997978401972036527543666946568849724246195562114724477928656924838652383806452904379585890957674202158279882875078078565833099146577697896253996281288424031094507036982975095713589775496867273223131985745153573177881631657783668062161346764255947901442958882754726284040131330143699314485233496611586685045261176926269409050970357914647513316947860171828812236447211013783494748046056956766590773586697558419110426910704698517383127143024153555140331335335002664188131326292095063077641039290351488564642372123217501682863976324061196678147745607511842910557455955976102635137808086136658719144106670137527915412863510130490024515530911596187106375535035121477881223879354121920653202358750138175646177311814794980219068203202499748208341011050609628628998690547096177948371444424494853427439706488405885752097878407998774993468104168324312805932854349961412019822776101155280327341141046282583221783846274215115857795656648728499376908567281625217643405378130568350335153877123109040888846391560620652467364997817104931335505486471646880623246073774550093108549495875464478813958373938535298713550515293353736000953078035175353988025272489999032325805980000960500144607053298928578754910824230759805318342588680986062845581111743754418765314164466367448527901565742714559287122443048426812256942112915729371114178972455283545776060564902409919619862458448611321404024941610113716335558884442848221522934822930764466344751028463897943851884092786743787155820975349728832235971384410403649406097683974159783837702938517551533098565094027793681406873275279231150605212030948253803990477348743678923163088108215197731599122477296183811815549474500992954871321574910630328676690403693334184600868013228524465488920073623560329076091533127740498291338325021347870715944426646189104408284515780571907967898696088872002402423782687649819633225935866760833282025532058204135151480712522060530735101606836159068276697101888945798636881188660274502490228697753415694103786596031390672358621242903010204187957793275212655960438190379301016034800475665569084758676733316266640232260727501140643797479361191707861066058758907526200786389413398849639034612205797797407415865125760674949134117648576527851930621439320501607574890953579890345526136261662524607191078530937252745905568650757497442652477739123799639520280109650687740635712520531964353253249303892736283790109241098179646393888149149073157717062978686095346764753555606443353325494218528729080298793958785155649363457825803224922673582825931561473284053853945776885119234634631827161451935380667186078083515136769841217417532193101276643185785321014292430111353789714873566371243617155973973984062801182670426930827075039872562947287043732183258084492548441672390180591920515971362379960040157230383740817853503922017515696636806520831712652746964550810065324060606892452094958932323842187311985795338055345727327222635702805598438444989834178270935292199494348560475619057569828149157099831279430847286113474039154774554280320395156975475494669742229106657604880907844388365449366651937831685022593766092383534732364004791222134620935421523384213985489082037478757388993910058779361545473364430997287600081520080989864809676351773606551949941843118740012175947657256444539830363119041569059173767849127005561797180000708230389704772193881740426460605740029109509214656243626870842486897794343658400349786983425824997012090868782405805052520820222996890076392546387718787979205598273198771031433081648474578576635098113682707387012057194529108278356233772301158426034950976980333017470593679536192188676699313260665403215371317278656353766692405902236582252968289182697786570377535089576087965620921832757914112008978716514116809829177595006320365545720155346754809673896095228085553357661766781437152515757858474133127325902088738385268492853558035810706499220153508965588184511425465142224747262487337617141042801410858931580222606257722519255022001937038512964529326361185345369244537858887919170222394944784582525244047496856873853013095158966553689521333673439053633315670382716137023693692848143424226650136117051310801048561785649580582572113667392427813258825842412158385023778944546143002089132546580843249319044393037311572901865484043618657612770952886566934779445786799243803178188412923484015100525196449226227772076308756138177928678299698747745369935607005238264669941739445726475152522026474267550452172414674695123625554705647054704995508272392210463297956349790286874609259911234142576271001444443150042604390962403950630728553819056807147749684500316667869692354773537652167427829153671972188695274810868283850679952344220869820519846326169546486243559669661760757913796943069602874831556655189450459925759603758647650132446983723521182711918545256020273211061003867285227170846680100656898724505311192165766201423727059615357895524875143904176391494889575746503873077100124508807729417012761078181809315197237856362958810245230973935304353755633050432867129108284216799325564472336688324385634812933121923983637444681408773006338955232791189495705471940226822388223432259452895570544374199049684046150607476566962686427028027158119145249407670275985844720083066916533853897926344209606200933457605940261174080645568588162899653004354554309289355190893484811130227106767459484253326298653427270728671698173401696320586857139667378400737595351646970120491036704264232607928750944873638371754411357473818296641304882998240861402826110035857622461432362051643178932931778400826827343920040177943495168832125664299798342750186190024239709673523772509308230850544243140775852597738223201728199509202750906173725225441383192619440950107266349042679449861182595160826307284220467014842876893585366624141532744059846028760636073092094342805310653150436718988489134042845708486499724017543501235836589791771343086851677497769698924543897265331623481092646288551108256665502054465251598326757238116374705539536965834503888161105423862686210198448471923940637626006004532940697746262265012590996908991851006689077337578222817812267815044802363337649685310804810038302871246458448187675924138993317256733373960224071617304957859426619013687050389300121133557939100953176655580593670675240506623634709535030347176268202645971061902809018611168582398894045998983644617032279637707558494414128248273778202201826259629199647996252506823029258949214665872162022790431419109085748497193976905410547651396677466593149635067680901628608524771676171019739298347065167068353004731652685849172827646396584921200669640445594103674467211592506231664296191752634947068634681099940313934627677760333008216865001955684498879733034951735613462394959462435016043774157438036353776829842412157167576846184820291650112107888822766810080866620206031990341152129443030950512461192533332335225532699278387715441472554124813715554434429408985493825002280293243743980198557987778756492922781639335448665771180269636843170533259044622158700353912151771115740755110412579905056457166306166758535202234691064189419917807178078402400085672399693242353273247828010986460785051190689158985011967334569468880436988783162145884863869316236293172784570669288983909050882684687923063793148425823163673013739056855230240255218668713582417965628165346933458262270112935337507220357020436025588222447904431445092913996711823721869591189508826636487655915752545985250318823333429398181537580205224449255884838149604414171475847877437801440726885243328696216113759784345575361506048744632897134474840630960847012909052821960785018107416873123900632807028658408699786290062018407864565941464544391486810020748997608994799445112954924778271062516254168310222377415585601339557770000569124173643985757835658359324835122504607562587230836050159254592368161120210375792213798083821426135974537026769251174477758968538561364439878174720909015486061442448782222467068330616859076169376838290188448389675096967689277556056618913112339622930679566265972220786198463131149087706759677413233594810987650211643088732907765413876205724531127135404378792107288347013135666538241499191418541018816521499628754153421369826190035698147666069641175879550750931299832592535446200085747556768857813120137579678199488678539951533428173845225294590222435397789250365062089230828373816425009820697398792661852327210129770008546288773417145154908658274586944638868470511901182247395233794738881177827029477670012540251115336842348143744587674179702474369163062287420213788807690322550114277314769776470778961227975267339419324684281523218727191951846474056413096838592603812807529059000041683958561101883635292840370859214939426471084010690643934299374047110532970394385463814539923925385454243714335218166074202834616306643694413264174606262557890920873399783999713103085441425064406846578408509699960752914156693525730999342805987147992480518266055738472816512934594402603834391086825700334473863360863678492776173603444035456600261846810175786742087106167500389212836793207481703568357282247949867675376052881833903635847507329813560554950425043572974034279881438798398915371289023475237960215726572703003318471095958364018790694700389705495924112304358022107048832756438198066677621821954586771550886864862624002429074700773669092375525030444146828229781699905453725238203805546231625452034112991286797682904420743217842121888567122618228211909970935193221087204078825222629237184940579989343669432493665840109250568806124589775685265826726830624249367449389812796496724193094447981900073789121081897946176439982907958677360619892299062639104510853913655221154715924709232568772023281330246533799424003730765699597210878273025723911455181875526888494693303139967141909093551387003661172757638369531350639433166133496738040159493302610441287109506977522874621110657875367109249833749044207215392167849144001868065586238361306501577692996618247450655376095355418318076079893625939258434785958519512261244708835850485104593055325264183722730202280312956261173651500783272269818362165485209002853982119621952284932505671548337982517738100216411541051780186145945241468570104309300549488182792273576188941441192440111504069819528380378236207930723484412478500727937351610547880868094502387760269507186530058603344931996807989574894489738689589037275363479712047986966021749631585476541641785445328483736177002194870467852896835876068460748163635903852493531200480124056932795600880578498166939689789150489946855867921631886731230065115269316653590427931652859827167002881287117198939096552022946153723387710915090247745829863128618238391310179823119838565611561633826476274356984777756314565754608382084809543884741796465385872322816381686579052054640553482620886420095831072354169819540984434786349074484494563495616819528396014857972900516611840628301999527393014262137654609661473609611902901344579510256135644382701313852565012159674902284413148105553791269025207786171980942030173391560293636619937392729328306440727088902383601359743114870373328394010210758620979320267583968338961268878864047371122010243483768504360654335484811929042921824080566777342002286681870807312166329326898987825994349799634858020128923333364555029964164115187138845736430342268917351547069703630083573334835328551673113740558362714631309864284460472171765187775022624354628648999847194905257637649519087839269607270440437470614806716625012590896203501825863577463380888483729953707743902239484217002107300044823630442093597545131932185970554055206952373231910017226863063978304950046279092128232627698669703314317302146389401107173695262168484766539074376015326630006003908845734202959278683706121099293589643579010058759641759126844048651047027515611669474081488452884523298884875396821219109039069017971697176960586999339984926006451750221508802063627685184843422860340984768310369353458389801012544015734536633341782206160806576613037392135680305989674745122254851482184618963177098875327969191375741864151844582731223219274487121294185214969951898190429667452205795565002296075568867944604464528629422892301629953564059604297319061866598262590700956906133575733627426861302802393965730414023896874680285181346418233485075578945771390192046397974775252890361800931918733049973748819323692231125206159814847882792178705654740100284131938721374204965610727891315117532420707932338620805284275930439397150779086652067982074828208564211022012037287269759097606158417356745370207396123591179643124793563014925678520157589429883683153137970406324640092157530298729848677874178039980701856758739542440171480624707935563505901284826145879984918942579158510367310435217461260008226323989398029592056967919537971273641417863429794925350011358671866949617654212136260628689120416003772640803430927275161948333780433306925437240906597073284547996298303137406737704027811254751324707581554495459384744488519118166436071473755934779255166921749775693027848357336974010737539183211653910961043275796152751476430401952474501315739465033354815407675081297393438006848308521565898354837108088132684603463661782103695382956869021297790327061497926331643920238439522583088248247723941461365697185382626717245089370773811748537922332961745706119781714261452840040687480277084610051251051978627064876884153191818943414675368952806412551829850332625832970215706578213685757795583440053206268667588838692483224193297315518980076667316476066180024816054059725090477012171232980666853201024155492377998556795311630249178473903638519238143050114246428782851909643599900849738639424399469680623267784204918442550354550585433036591903091333482029118993272736051731841465720404043049363781475794542080292269595170598271155226030041799952249318796062414555847382863074042351043527355548733925363266019380312907106761009699743425840072018049400913411438477694461272914776448261384229796588074736260114592205444055277580466015253956815888602118403488675365621604672521298559199390631847078533354445408690049941754879644739946538044391358462179110745431103195302847436048945958107360092165970552088215548290569559178964229784142695783895116389395951374387504064647354636838105911183849764166414046986759965301416113377128608418180257926159597719760501384392824918235743468947030362132280262907708551054946141160608360024723261041023173612035613270386150326524330517552032902048013963330115535797430147484762459936670581311535418199278181703896215441174217493833128023657354632485141535224116172577019041738884215697152216007716822811850218169482061990168754508163196492150698513892336562797815202107096021809569412541751004428797121747163234583136575069526923884884353408470377521927017108612853538216064626358682012343950697823151615515727032829561146248667868279290557995451687639054340488912105120851848767285042902162963118539913254033095464334702137515925858090485490235881861281872177528552882543089246516339046518532712628289294514113303391087182969910911122229401435822833824449266147495880182786734643930171062279959223054996900655627316984972775758921989880401620112120596450917519590788397363827682960953298717938416350150639068482193161636113854003665333649629732766636065585326826489959832118147287375861960898217309940361923764802601880939800073448814863803472099002200352301576783780454492908432635703384735357321584150935893821209764461170367932410916615753609690447502867712651654049977793077015286404379901385135152106584121424464744872527568713036715204399220423897092010617687530423426577680325190915615968511399551435684255159890551385505102943039657150635327826384858224387187789234982956239763910603038235640160437845675259652223156868986518983019835109402050480323248971709181381461673225704515005988159888362308140675787842310938935472815306819981355051622434597104105473963738550682980178526776015368320025801920743755636485274149884950086870702463114754566504976609818360573770411135662974494688319390302331853178366201704852907992735675716423533886848009454415491480973468385683349308116347524045671188537321026254353286785662727883015359440255134695470873459416675385849116293308344245491680812060135016820802501566903634758409902619990326344525880143124422137690982336488180498048504685036035468580629604430447188876794255984334345303677658365495652819642799924445886679716994426032952847493142587687484966676339039747509047001488372112458890512812933410984657911972648797007675954408316616536455564596236291858936162566510849620143406998348763240277168356697353944849770783096748549127013575696072925557959216515499198145184315843807740214326471368204164779181318887190044237949939576895000199533762874740761252763179127731012774581204507976724044322117246053473714215521406633930261216675170546503099989365236520326266960422255231962443044354925211303936023282326935132612509403523116696735934064885077266768292007359289226881138820762787169435067544053705546794467966085692759161883344458962142969999872696494773407992854311313404629440948335784916125008098292808393344450512282223256197190848362211493286638283928865744477989363541486691905788878184873924753684910549639911301706147284069051936000489787637107927945986990281192313556644804682248095831146455861899781754041638069478611577599551472075833392969847528461055302883429726409625136231678818068102133820177544934930140068320486236457605298086070948281975360309621977837959662209041406426350519123458286548153656744558156591174337283496257268645890117721117673841558187794749746099014710267558801115941848467139382465877383664769927646287960296109138734901268443836099693209908576027757119906553231451493071364418034411878721847195810857998882657325509977445826823884707220632437364607684991673245635648445832923335763844092109550101240366542322318592433101390183461439234022617586439493056065735046964788254146439170935817032138510307235964958176136954746258405107502048619042281006797990083806951512461695854646262104316043066562285040742166798172655432536252487028855820421712743233413735342879746235795859817211516682811791818296764335863702326247904385390566650702968533618970391714424927815134790834134884486901573059615205120994205385190172197422047952141751623290610547345124464289674884031192339703123666420216984979473379601553333467072651292382994716261936713468506942712918251008880717517028820248762100100371164537231224686594541168827783968620707840490703246539371759986083419713832390682190576784561263977007935041814885639256154663589105472248795712144487312353874947693556265300938706135546880482671412155899074142519333381639547432187899796627709419520912013575426495751785605036243495870084075368588145796249672166496031163336854343901721237585372244403570406742001790512595019842387828923363276222003970930729790339319084314093838131484653086362861552891726100507873211071420174458063079178481665449345228481284626593579598861749567408463139703852748537582034953467057330298528420770135819514486347234101965932881823122865945378290061044125406316780568631277290191737132772229575075659575623474281611164805942744360560024444037294126954533884627823010899511405442471673881092164272620222362063899272899046540603067829188635190170661526261622603429782714846341758812462924761112522224172563941224328373565734576818479627286507588536854153082544495627036802576501616524791601647904688157685845578960254740123781564760762025466694686214500342274127619291182292219540164663794375828548735775817464288119189381787373698578305375117242657859544435531375028658128392869377728040083360041201354433093245925474591290206138664867625136476416304721517249945237162955909253951107889103843428369189845174505521136333897770870843415201254815737529358261996476070378567043898923149233962507265610471792205983653678830315218913799577270430452297751010663700907586248845025493340419619657838750543891504487773764597602497920122504269440934150776265036977931561256419365445025039361713588247777765873073077563158664966452115202645161031731912803522929342981970859287532207777531432727815974796488989037944852087225619128053904738893286580023120957605044676298038677599391896731030829575742094767548354963746055891498214393779217920703859875779374353420561601809441144828025682583074245232868238274158374621089599923572492802884268868696703551279753305358642623050753801169981536472977366703013447206965688488425546841573347564870348128445962796894357426496474041272653236887704154847539076815198538928277273105509244716192035214614987765119272008476958722507566635651009860716884643183862604678011086167540069115759927943117888196549257415758422433092156304741283709043247990865880533334816842275338177537109874839711509885932530968196597834415539955337632282949519939605918913736227370626720451773099974391828993954895502383281921764815693063464307318831097195960341923800348910036823324672472949891033371984077944351399370525305165754737108927748614934093369283077921869479094403970554514181821702467090855134146096886671153637769884584996897293193278536833772470248441548175690108044983240535071813185819899931818005408330927551717292014542166524280857034077263123228588330259649878875486071047178047252550314583453377721666925042182724668503549046369383919371641868567316757070953196055245130669824616227940222433888456930679647163223975269086381068717067341858219343654110877600100929711733119534535944103218627832381924236717008727583229908713182470467615699235785396401233639526748107229226452807929705475034398507438705497277640237057743422688882894303752092726082420105446963995641253786188111155349798633836450318886540524715869817947250613914244999903001144152459217432487337946293952403814442402800266416810317128033625540600607200667578553958592140160321883164490613397375486363056965033734695260186004905580533086985164159882870418888898784386651207783405579870625019052860273409702472132411689133930024368460239150403389830904528602518969115766330236611941897246993294957431701011539745260274665983616945245908415386205361904838060710759054018463224299446269776193081505086006668418127889768067428288164834617299572136683526233539592581094528075611772162251463845411481952238434021642788976907097193116618265315248509361682440831135361336192096482439655480429753679543125259552714777422832528666579108675081256340586826631703614648571659851289644664716924213953368260512734464217889910889579615095089554134314812987092535546081319263218019288538751385327395928277375815738691171517010866852327126465536826475414608224892184514240919055265201028011336685144637869348632877417664107562457400162597876887396646662517687236442361883403326305034830759938605391324741970014342587785726678394394910419276669831305912104279344324461569055706671840244496225754519057957876281853669852246086807639707229659272337066975568340497188370368538015573216195299414013064405801336986321808351326846526750373508868471960294951777447045952591700194043817210014146950633591304703292251973798659292757130853707848826090841398785778281832304134948687705864782199870057972787510705430952837685012092111960222116208603264250391218491648490872910849952160228258897504476013008137119956109089366748888476613160894896681285175025074471241961371672837012715953510394898416100197957970589203482267540325056091298017186651057228846641226437115381043221398418429668954007434131243608894467977461716928578686329687919903230638873711547667717107122082744814344618003658930135463626364107258309727318604572468417142677326878160968255503973510504748564420935826169197353827317582480419918925262374066180550851290083528716823908557158637376078558268263785089332505492421425810029079821518345567312226162627594143873961373442745313567319680748151937182920002732048428204113335830874824005141827168232886730465094892440063181810038804182648550781398100008076276911230676189401641544266411850876438899340041939078569965200212928212323053348425999730839249573745617468180400345021048659859857654724984689436074453643221596022115532075927448190093159978811650225611393066265630810122631023582624982351786913102230203897238555492725180304569974004888783927954671979242081495411822013046631101725246847689959772574346246083701708893851678195721386682261182501036496037323801480458346566618714648761811120473637725128553975233580857565024955457490900057193805163792414706705659071585153591705340192833160615063357813074429389238978415240052502970693497324945765751073609664963245595069115219324406828584852247980446390262132567484388610511215629223132609914424998522049974614622315128808420686322101943766189768794088256160156319401945435724973830508465017110954126311874496938214187508489688701074682752284640754085281599188511546652268824091077114897360788032935440679829049529468045088196265365960288420816910387160623202928598988741887710129784551059296485270861190726753368159860276829115175907477709839198125717778032431707395946781742865025862098475872807599061508228758881461492217396197651288834143588433854999942150919422643189211352204676942458979608716548957931851488044571115372209456849339076984703186023675174962634625940303536025966470740718593492811764099556003358964887404515283140460133448210066779932596150347271420926655690701975304418159163162733403495111753945645567424995244005235956285236696643602619967810706585290997120095681178343555423704686922765601480011197386437347467559191796664055286990781799309928317107464776451496090359262467899506531436435094641999818012684375247426691542546629963630594685855433785409890097810616716566493691393768611675201256319955056825435936138824844228567106149434262787909639426092473310385587066206800869738891821177994948993376030077704662267644354257401407633164181967786300476201078847550638289800619594540718157559322540268409920788660450420735283605627805964104543475483126038608953095388614146434266867508159796531796929466693019928249755231382762393363597922662516440794254298943790458775092074922559104124201070160134547969340825034330703238136601376286380162098419839663021873950538703999273201900640744414653788505369182220349782428749333655382580329519594180709630971139467595458473620628125669040558342850069251876218827364128148209080865369521797046776363632748932606207258941749240883434012740219209107656953616254599768395767469224294833343080499158590012598159746884481955484902528559826524481826989645238946822622139828002398287173190646807777186464717886137247610620062731560911585203639152562158396896506347401800775049374576173429167843720187965408381050304076059308050178457354484089736194945172651629551578166811655895321531217098760453134008733458876095429906406977637296005971858930107817311253850788582511846741777588974594892865433136852686016409771438264803352602402206169653259258848923071156573624032952790047263489419415674526565383602119889322427685188877072173862110287812650349561807881019327906540380615405376546526741941731592730340821811909766150809217929932462475496551811780379069739140025109326532013338414463375141928977593153425800206128428876703786845889323174886138394058325978491236417065305294525152238295628982327788965334275875843951573213441301665958437251611148268285934097773020059151299786525828991368161908422046020641631548452216285345223315971774877258113277973959766509837659123176241206459704038363781092857616306051807519920662157627811132554965931482546047353709187713519685330851787381857773736433840261054771315398451371029865618226985127937276279105583648391722283900591797666604891298113737192412389177890818903978121610545523666691539914066853580263455033583757196639927755275579137379803514553646671285911133765555136458175112734618481951898797139659226412487891931428450066880687225849963917532130563530443980447566976188420259556111203995638681873834639745837062085549995589927839969002851964044308770831884425278681108169553151972943531920422350373426889473852673297234557484827360769220447420592498220231228336276497250197098650696942702970470907661428182328384324397055264680724589355369904946885869066295655842645158520762470901108272932887611823645538942844624287440277742342800016373315066885186544706390523284103138601560628658471653344439656045392726569708770262822616986721384818007265445638346995286555612137815520666523995911787875879921880112912168615130436538888316532203416087166153191442821142247743558082105116626174401024137008975934653422215741756532471760003523079118394542143152347461436913550747130639422816297344412355271094103832827315727133479007756336634895676494314790458445400392695893840596891612829830561288083663626130066793822240303665470118352983505582290216051933465977291853331763943162583035353014377776702686507369926127818209073344816917028074314949197395781680888339105987899819857369814907038619206001186154979931968337605447742861630144221310440751384167895175202250748822285228324432090794259440611210735426822495496598187660652809073928964950757274767960711184495308247150602039331946009277476655328374931918379352286623645106662811163164496318198958486675664903551431828108927608813839109609876467473668092881611089876369736515759311530146984255097622948512116360449677167717552748971204867347559716221649459630791593938712740414811992593969683072005778068753537435735533823648062697235653748862328746305186097456080616078297084743164540556802132757477028382973401787703267822454332658295271012303798705581935588164683115986398340695094687904273723667591274550046057516972598428896367966370273532269717260208592290612276923890127053663093348158297412311238576716896913013519146377111293780742914327706410783807562932206578796307870077290037392274396487264240992806956126426137910159478647483238331911633642855258687228064714518359478260923275839237911955031381110961448128339956972413138895408496743374774571011886687691360432465631708354154058462652958297461220741056532834987524305483209363475492624416623060139410590895052561045903212296766354208562819102361233007333998580535751973710659608962934946173675056129231060619455305114263932125791830179234807347059326337332924572892236477980965582790386888598584892417492548183598315026510833443594130563621100893811220043473196240567482069748767253088347909432855460283443836594979681218414700326276136772269023778175600967211870168513230467825253705448912488559350089367444407303324045536992455508317325014643793985580399652393495498742388359116818612122359107564979168402640212139887723065163872362044180507600216068815874383155762220836238771961685680390493416079027448766640662905201570045087914850733526002340044424460320341613128143074044671464226605057711253648523366778419516424456731297464021344673792579619290116047459380236105885788480854194531204733222897833553856889492814760475698279165092065140727708329634274443234002373143502904774003019950536111082653278214068918567886915994138352531443918443024062256569542472772528912844363779140975844170378316165870184080765791554151943523121013666277671731720057936117769588104694151461981348867991926767763624384526570587667338191890598055682862899128506702755308475371815725432923769656271315742622769323769533958161882076069681708511924118976158638722542209587410192956648782054512307333509527305975716269789850526966348893192154710918572420994140379611666819802139069645690377543743868201425586983382125775918526628857152015846036957774104204282060977268484030378613179256116356157529377069069705047936078075033519741473194588711488414527556902608536647981761239674789553125351204717906859393128927942838892660372964266394943827275803098972166262803564595091816943275992733554467040087340156696382391819929273645705055152607454831839263164940958814356143703681799952494586486892391926820484106679801641423145297677071016779180176944185840424424627726175397442180904209159648033376649993022325534465088257395720300601928237352302536028728952791552563444105789587444574366180453549994946249797455503697751692661425737215629777265899002917635782630471766341262795972028801769826628107380581640495091408893294390640410744146864453081588297885367314884892488282489776236628464049533339047446594893108492676335937543905758347887959565989794923292057254349710137071835514277489396665001716093694952952409201011086813347660883834119783616970130070116486112041484412707684096505733236288980434421888460093362317545023463168782746863829678577012793309287598157469522748530545804174862907147464048185992801602377463586250338872755590924102910324801341950194845596179101035688669321495662669736953328353953232141383991873517571773420351299155213686604555058543246748987958697307511347083818269733354237508845027720203378693259638901776268248495687999396087690196611080471690197885727368807689885729747507909697688705684576794867656245911019581149814109803194384515002288295972205886581373127203688293716661091772761336067322587170202890316380772661612897994629724786473655400016330399329917785530189863592401279784337386406404727625285819222930288376947776524235394502438665669341073482808241937566289491223311469907991850655436089119602447798770766397149417002107830287845459234711699743850705636357817403055480663354308466422783215845748469783074536392710584451567812689595258176304998119238555267959901928948336558968593492379510517266872438727873669296571703784376170570921864407439179944813629204201371896381106680044598219238409430227327414365940349685515186794405638249918501987509949022269654631721089300362721616959029527154747458803217734817795400979206594074731240797569564598702847896963640891781778142854554729949233698571634970232338414632092353069432491575116686110398828526317749552903201617641420713167308747600661529699447269652211447190205086765960531809990042433418267206387163982046751752019730825746969823623429923391277354503952490870947991384003034916679670855361283203363284152619128313125453229846474996452543375460375240758059122111407534081667127954541399083342208208969878165631829188565664321649544102431973649248973279683546470823806405053176256828750274411998060814864391946981379544917777206022568505780863861728439811754096023474715192965795667134186590526684012770916229720052539757303380107609675557527518778559105813260343830403013586326930647087626345910955959473246998972608192851803710078906214917472230609148002473736054918598084403667804044113065284893943264557547263485921556045245311757245753448890828188913867042168241040625748238330203533904484626819724697310693518021555565770061130521308413809896594678741477938711672057197208863407622761501940387515643675838420408299686678034324315634296899614081389267211178966220468801844379311697891477216318575368639290802170820244854875401458608961622062883869520750996191844116984325751014795871163902482377984245127694821061554489484606674976434405609289040062079276037878100068976355459611838959097295185767472317000076273219708156996137065896139305674127104000931892121738017026367085660874862674332451064486140951893620501096540805062792881205332295718134226232518921399440692730511930878250961493602259612556474141465023725649235786075994620218563010012600890305026903771131146219619388427765905768169328816508224770839576448216046760561928699254197744070143070188617293531107724209616005932330046320425934888847009523749261932454059186471377830782373008867023140307298835138277556481283997681809497933751009225314734658605372565655977524591997958314330090487974670975941433904124160166916208791977775255777040770851227362786313750413957254190634560705244975079480165215765758055348432050058600347245658980903586991373736413432163953741403708104500618282368573892573023316795568948372909015980494748926869773879875470225114245873329477263421993882806693333054042788573511902395023733689675849356092408919538499728107544326571035706651565094868467934459548116974645391774591640754729918668581427761238428426271535777697161635497677739504090366281309669803556780862106363863690934159305711142331657594416288297258589564207908972160147692432381884955027615381323364463097443516035265366570156115982885747680827643823173199246191715655993406176649168684890516470075977965412762768265438127245193420662814703128064600829896402928318634592484480130493562618836345320766042508025566523774885947691031298170552367096216884326869378234935467309689560287287291180262510073260937011911273752972171345592752038211389721850626335553295212777752882639998234852274735443023147734978850216106556414371907119572333855162366789241705939183784536914883563280992663954155423895850275316457909445987277828269470693217837078789543296779486354151614001417901914088825210514592664546218483405634116076794123008507123589740243775737195228915089567152674730015660369096990492825110563006262957625945512455742783628343462107824865475542895670514468299687286284890299807707561671226709352803006239802151853550877434961856920730428786780341402510630227418453783435857015436407072774843048023116607030483018351485928599983382721247999070543916445614576870472940999905829552058057344016388102464543059763096577687838638949379161067656974512618540848684728867051869185317272321866375974556741375021872773486923712976868145153431746675949081258464328211833015352870716165452764604216696747303598045620486848538738640320679115158077975117306768206520320581704769441830824054674146588746766928523165043879958889363668794515798155033119945913228366805486785381875112919938506367648065560314626497894548129150618215628177558101467887576432904853682256040373600224752631307626258463020138053970030614800040441555097243309204817744347527962834848508985748434119393593315129374269866182899017525936241649680118749932007780366969575505878602830371165946244450517702340408497672080539604353074430026597216489026687825020997196875725718831659679602234286765769088153846206405542039355333852382700256981588892568274645690037168055494070418517339103664267741774938295199881573252860152046289229051348289035041992459974719643617732032227218763552140563679803632445053062797039053805848610779942177046557950936211077340562095803165162467068475926670113517573632673835889271659664309500417974833175154219860422470357351009941069421617811530900774862373181229569301761931158394867300653690541317283098276898388355289060890919977697038245410871945284085122475278126922234534278868103833315569503744127441887116100076851356289526049072786817439482220132769793955173369387594517512564245804933709068300774181169619035353994982055582313202820634008273948716054992082146897239879034653863113725677757716399438703278057713737861220993961059665036774071831222510922784779800043348912707000333547888938544194301667305387083372818198283323814969996478559005236736270836742350834797942794905008150994297350560263462280613169650542749764688920659764503450195815778001590906523705439482933151587668373362712181743872259700754791995106857524484251038951363144911090091945464489296848200550475002728265831824091246520503897015683393125136266697839246216518007281475375329685915067895832246055344618615980463004010747959303340195783144322158619920240046421664322312324343747612674036103823904328445282832328545647277956535054986124269587082911916459696344730561298398299846478491285279941005927541461874720929774177427656192973038759229347317633948963292740571195900619479745533384401217381448169708580355123197557192082139810056111582114112873850939886096637116787077057621031445703670292350289693475692302802303290312132030954642034256319542472847041916002798431117655850155269232508287604995078372735110849530531206850080973921402286739595110629642877524811765110065007615178679095042499699068056571603155180608263565693805444138620554826189425037529413136432269738078583251578193527897507031996339930034255512589700242324454168607938561434680739516629873547265322010706984050766524674343687996495895995420246870684431843819846604717787416889906928214922033525599004723740081279956339823258319527686951003032953154370076848912863215303966464852747836313961448141224306903126982614526453904878748201861295829659320224760633803923488157424062408157065064736883940196095091922576028446314620912035129139779872839303777642556983395113133365913639227769425850321050628902778388752740411248786747967764843305992252734130492774856308795591504571816528567290056970423413795240305966250441118790126163329139916009107556595054873219396284410777182073649455571921244092458150008661809313768654322203537201918143299988435039680338219747756049720001149412634729368093690330449899241837153976094537989568142650566149646634243465929835087188202309757965090891515782318204353942299530027219930216884458070044482934126041545342839254049823049294188961218632547540055711465509213555960072325550296940804940300470692859696957357571549733642813185555700914693448326093823956194961994446539192267169733570721212159536825872083623080140760960257283138101301265840449083014432424310052500200598528936065248000853706687771678639286835252259881770979335708593183195291005894865582054286605538209753773388377353091011009455549285589405579648195509715029648213567582321564185661439540904983666853811834935663667409706822774254252505921470045429270198266106062679843564914302919550663796857092115399914650707135908615197001150484256294781137180826781524765574554327310140412045265243669942993989991187604527975918681675947365524431724472641588788793320847415134930187136265581408402889116669519601323707664109426660875962881741427891125686799950843644423223172062895465738574347024449161787964576246084644587110849553514691359937881019642028526288464524082408411170847125768962681427496709556277955739510200152865376251202930044985892357539967528621820045436286811586235710812489175308042668319127513205025036450753623621749896766116156028148713877559521175116345108711824205057110179161829382225682001515452376003529542505764030882230942627124251176872469333102572484739194062189447157937850348956791041997646613135102774019361928861890493395571707965734487253401400744666168360833562546381464284131672062623350290657666391078035996980632883498101639990710257860042419961889853126900545910811053399082903702478045676383954429719022454304817652254973826176181418244234514848952291740587965031214623951189572253341470402701552285967763323204652367646989140145738428401760549925959455239950556112165263034037638000838198429825107513181017056397805180191024152237083224782091715867044750305371757697891245047346422490262926946043134417165267450717345985765013552815730244021082625054575811465337010631303932520392231203257722476623138514384408241439078470635619738018733466332285275690849267740898526235471375330336752808652937048928675093237769513144634116931393533003639807084354678011084336988985204301132105381282121017582107819982126929412450465644557383671752888213356019505122282407426788119642179372354488509824031925961697655974436777044901131883406036483419307870595762838980304748919941579695274925394833542913602549793891998861365062376454932858423477936140927985793939929132313186648871807868487196565224208192000507758325958783273084037882640108764598397357221488139795134138033868753227048295170037712640303778672425248389933236381099184064849320332397159886599612982386127962076445594372401977812989897142044539428417676033505708962249825606292698592562836551492182286428722392752402681270991444409124168577731657062431600711150416340524488350739775227410938964065569454275062174129870771149011315329530459668999359359347572266042469426621299375765831584409006976822065966251603709770336277776250875312222393928969750349122983991406449250007275051715216740109666669113477787517808340924804825448435017492941663576091031592779189370650538119878954593816661819883845457202798164160810341791598087712016035376553021932696374806480373952015536165275024741984075373681851598949912724808971919855058791237510021787395277025523861556383099650393361973769220825488118116703690039225655970243151420541401971098616229876903948147492159456107488336807702814837068711450986481158966356191106751991081078574457665565262059313682567160430792575071442539103899592166506320525784407842651160152162813496705530502686551110110795140146199668304580619175983419236677967749404801714721683414193217019762555468750269778014815024731010740754691633145446138472771098361160518058281233874770809634838201677408402717121850918783009006015853855280560784422089826323903980229484073713837481724115660196624686240842015248853753468005697808611253883994819126536784738247368626511219174088881907733280533915124571788918577329985320486637851016562158266899332848899924386923021574705200843236143543022707776835293392141589345313624464440795763332791055558836742836490617158929575982532941164243417297949362684639331495628845320976246391954947228178013010636761529327693784544542998429538447200103187732493701911825989701172029481470348541768011557741681119650719097045145192608023469740373605398809331335900403791089110587706936737616972377083812951179230341603900747550039511859745875717917792565678336983507249927299360807599238531117543828790360029702031960312421400129598759963529720876754911222101143302869471457584599082194333851328708847597605912455313981382309557988423971939650239924460550243709925361549351343569928666595359886763109014759122658022080883472773825569795739532987464077718254960584210319096996851995606931988260667990403512737219051289950009140385376134574575507244050344783407498272157814079500274559420831269350418793975553672939730906947910445494650465312276813592763127634495533523937862555690222632586230047950975355149522130990609718741092064846778672075356213433878858303784023855568357366548361574542520929517800042498967749655001496036914701436668722442089803032035488807211981567987607109566226290504387611485092392763096458874082265549793865925017777065695868039581058739060692160251400481025508741135525818508945442759682660078274756411054939474316624604583669014141043164434608949452919266781200499690132458313869097432009235499405834155906077855579883692695786086850479696041212348584245483632027330769826976731185839466700700960729969783675141241422663662454722997275548113653147636121653048070436834081178764590856380558594889486768566020333128332731028886704410715468620201383242919146149416286788664930649828871006798368405305611867427074874353397416250538320001102745870192789464650626489571350367925490670342479297667127527130526512890378391010611712419757764987525701677871728084701791070722758300627329710808885735366144593633093490863961451554523761791746618777903214528816178594323059538752335737876311999336429109260672747773438481715374445613433038531306656800583832982806148508393558525179952322933783925361136345418023549072319033991718163487973036571939411333472471020522058564250364797273587333947805705071222151843640229961848940763501079558015099981462885229691580214803050037783897638030319843778605561749553743462608294891255460628927510183586466274428957182782934566643639522507825816909216983472273248669585049173865335999981950697177678601687711567612471055856503256825941923059374886073699881559236873464112873390690517684934319244141274298358319566625420806893692541441404426834266205849032111371416720931487030477711830459427529729353738142891318194408023687893463377997288735320843056975271507795597909029933426078986681764462515741834550049137322193528022282901137008833343358897846384550084982422566014272407029001873135580520309566320797402948785384791390726586957728941021702105953933694346190918109146952257162151421646847046584081239221192106077656919283972526818445341697314423324374625254357988270505197156139771650753682123264803684784564639839134947463397960731194256690685009852090812017674754811799527106025528720238919267495328204738218487481259425796988962042505353013984639721917801509740959607211605872762213776487705760119611189270301978359585794167037712786633486754066493806010399976486442336999096273415290000659244745029670173571924820806228251870150484197075676060751463112357714654130520238471111909841892770224794952211835467840635116938187859872212347921685253159207119201377918182924478963079105381903963397335372471894671670079521779204921374277452487617765022122502987935363662576284816335817285016268038021192847124742184158951208899741409206846839360420856848967083129707824346395341021454049432460261952747847481486946933872840913381200654080198213291375867190771292261147886922583584607207586344961843139116891782351257068922348094533911602339778357997651163963694352018459777804661017940059392771302552497947658001449679012976802586304620167894381347999112590165144769249619849963103784283026895923521092233792542079490289075037693684258665314716326607986046141556056117261806127286404317568496822772138847250568661778467474525433779842668812051477489082060118938304073383435277157578125711998915031063457297205522582291816925792754568217863070943355851857502147986941929995557543868797710003006593628851689742975954013951859588780146435971790231006602253124698089904150840891512851810377584661114265036661274052564165814280876313851336302807378846768911139055612296736299441722838882129086047322651501310634561543090115789969544277975815046739134591998440278846911721681399258049307729722338780842549537844097575659055975484532362426170106945187465376217387671846182760660939750696717720978753602751042773131850778514538707320747202256560395279755945241330008890091557209060834093603704053750491733038560465680525704711000275049966401587176171589911227939202655964417048802351709755183544662799760547239193570364544936391115453250748528763178351343173045471227735691656412597267368238282142935177608939500542209255196126171867191998813628596103413325109224918932841236411582114086720688064820719436964762416659729510757978259135991877174266771786081564369856955570833506290255172085402317762060047412363258777226786400129166656633400906173845811801032753633968876185846918034062990495119896072603906785028050863428709294675669436850216698834535743393499491222366677665598235587815923515361455532533593445927976873785583368690027991197582844239368949107986402417551611149757184182712172724951110135052204026305998292367740028760396873162260355694087014042699569099397416590792239245360775589405187476383829851912261510456701911912050179802096619622477728834346840843601553554578310492112310807779957273935398792098143089594543872637663362431805138495507180513882824452584839118432612324955030048134690799667275793913126053489022304449637694327931202217361772880087962800418267637540245780918600903850870119816175639209295596142118330096700656211320948184353184316604415024208717500970385335336982035152984819070782813530246796731059933849443942903048559936549370724222004376515301523940905116123203891079259582956997071127066707143565918636172312093571252628632443602568908184343060515970906488841813090524965771585504710161397284004395470799103058838763090379921760556739261972681801131898022392496293365845024510444134425389247466486849955437191232125506772956295413383100040694857893439196597023707027708573940407522297479810496799587918624344345853400643433763478729298358143749783710856339322955602747969452651896372654137311589843437309492118985845250489470794366165154227895863530991991103719763949973053243246572990145992716915121132533279341541627974846918891976490177949795867926618616521298174359809967555895861632645877152606249683340705518792120018131633097622689316640459634916788845204776137460972081424303986351994453067461832352900431285409292397873100911988283928589260270997288494921849237722948254954639146179904330889410288033183967569397476586347240488637960784025587912210440149675459299024535127780796760741619630814595092110170136597411187857223649749986801264206119735856001966036560675725944190060512619537320296728562208870309459293850361101159949403840009487985770388204610044318274752056375967527895168792620446929019887752772808587864692459079283356464065880771851024712223107975997175972863870832195418192138697470933315114591856605438409240981334711144221382393877866393052274549283130168143318756453704893950804863919948830490174887368490432560993938632722206425465714328472607686349104140137335316279484194181790112402332912692942526005000867352469249149464315523971067444744380884945076650758585170844894532298942469134057761023301975941918647157712651839567648102184560532739198426801145628469033768435352319517550122704430664238215066609876354057669994701261889916655889070947152177548725137663733935943931765823601564742901765080013242711329177936309393872164760267093667059918797127881046314827736428086651626607858762690464328201666871235875534601572333974285801328970372987738170668782258938919082040462870296738170073911074148096785847337027670121684627214233961301968479125435615712226236339347790953539155318204496013434427790907043782933432130138318755652686173302097231851351738582610427765134223983492722682606806180444200424326394277691915173339279595185833931912206134752147994948863903555617948688852074234019700495096448198066476398654516773929000417787590892524353568513293892734889781242590126055005627215178338892526458470323405669869057544950492127274016046069495313860679844406711171241727762043516248342064858123109738434109489342328229151063074042426634252427624612783748823017373045934941998258662082601819686077296435053887413446570883597448592692334166408392495812291599920216377867179610308644203464144296024823889558798367059366826648770005979770422750212201393537230033668788127019335036764054147595908705317328367352559829944418600844224117166117572319016379143160542974278985335721419065355955621063645843934450258743285821927561824224005311462539504815273055283980096840038983323218174463791048273500749929093790046833718962536649439166029453252256413396598630898602570042297338183435075877025320796204438660859685615534298044370881043177441119433195612015658523100123260210924231510507134031552533758309887353751285092600826824847792572582496268788379039015806843101714547904349673527657003580599333274305490264439387433414971899266826474227611272605022444959131876897047267379425950240771236657008863641574147178969072181863098126063752938428619097547441335911487570778796213384858093135422656338760098974569703579790213157752114383957087833632573174044243957696178107786166552080203972852833674823987625544756160210839546714630654328292981470170302127077125662513999006365534137811622531067992766685569686129241901971446423237691420599934167941526996466357583397173718982102108316857367000045991205605372785546860653960294631069203780092832509876180716239630549098556860294837175747863002511724267875350319273902285461011709741467700210839324680030553569898879279104931226993685140209984169331241170875351157935671630151375723216051325063818156831614794776802737741476414387598527718453980141000309072762813348820914036980521762053257759587670405340147262066605302245622278155773300563898480246832938668828063653632189588170636666109643284774475586643967698406672300602714464203896000178275356567271198139627037046345328490737525016101798679145091003752437537958262139508518097639958316735523179589006441049688600014849769616263042485771264467807907218104368164223849122470314108406975095646930160685574442181180440973780418637426616864336573762055278030461465580667935786475782261006053269222144244925737418193915428190151848448606720604346033897051683369143803401408691576402982097755714634199272898204854130443439376684704652224678799022814398510912884500319723130237725014292968282087571702250969078953540557013044733930681681046726068762988788664979128223707445029184772908417411587082955177849764490860904865331448929737600494072830428683549154533953551287546863972226363599282355475674911018078515031631975615448293016499672307132797269793613773319841220556035559523783839372080295210948009123269126488964532692720204141239049701872359288810804109591299912962204347806199438707788417146183404916291133806680473699573120093312479513476694806543645046884964309870393259818152440110617609509054752374342593958158323542286835187141388071391676564840744874893475640711164958786685230859888516490191266963372285004064749106452333425569835368035630750299208049478846492773172046062324149229406384951394829979724549657097234570633273424863084236492678320220135740588209121636109689185883515521629765012829329158333766146398490943924902485282557050809653022346348470031872682513683751891501765611657949198840744759531684696954612454821726119688318418722733551159151198907778520898058700100433468242124094057596273116492116497135647005163427797102648259786966913443480187729426678298634169083644801801129318278977413876730111518397673178704725090048285791936554130794310085621704787605192949845278734777261724870550886610294461948172338869164282868837978743749994513225356382801084524579387432978689491279408117859075534890173247420829770002074458842875488715659657119845742379027302380152352231375390913974721766865109974678550502085706906671515725705958480371505152415272907730008791278415056808727561900878056603311447457408928857814670791633231304234375705737117481304079328599648026774321442369938378692689341069311206150853555823023531917035061293962437513655255803880509231574899091135730508650615650739008985972137271646984845744622464267583574936084591423067745506525640549555689060127103403237680180538255731167726097722224169318906092300308279108269981463966189445470527960020575917184633151396701454369462840773857544782106407256311761092754588820240164076219844872721555734025613310945522308782237007814736019806742536085560543199544358462514048845881905665748910567607445923642688377650897290452668027168966825936507728996816836652221202175556128682011492983422179363440778843250524772468808335698640912488704277578648003060970067279860417713464986183450538957933216228575102842248705982672824069480079656452962232828907411059242426365711381610038703328863104126768922238686715847678327348042414375817877270486160059740801213173123432443180777127010512885915926169342617544710985724242748822813455537312381986065272190037128524501015178228301555433616571191222159531014794776922736981629554891237937154008071162069372151204486391302088019440072961558190963132425228142647629859777556237614611434560996592263606071006695478797987967764984643351129468490659872632165724196714247013911904381472795312065783756164608937177527245577899635809346760956165381303346853805331981073459678374964418635531038554292120956344488271208926829154882076805059497409701277403398569001575805769985725478785319921990086520800025413438148509399220929828606234432845236528999842738908976552684438746004009797947533007446229199793260442695868911346905410271448521966466169000719079384347579208987888061854902212648576696442866399452195840572054216975327565103110638261072128277811422872874356181759721470904007464589993152901019146384495926871966672351364783105248744713944718526916268079037577358763882667832819518927121187061031781494923992112799714500097141943804584771906056742442654544763289925107840348368058555398743975526804671310300533605123561323320570809274063183477837646654507764884199223689982811428671003032162302782107436523121013653209333045796077115275234422704836151259199072120742602059662463043164607734112738927798521152839523998853906305425176209731692672687746796339728580654196710873261380432240771181778183168338286707997408129567269691423342210165659224747812273577555738407812333817179086142907225843463408564887351405596848005429164096726229154618946187764463434292432355692822500271658829684793505234017300089886563063731991147986246870521837223215509377168825697892994306213638743499810978469469917987897890776588987755493861753502096964761312537739471654694209769560666197715079169975413150119087726098512473940534965497444706332666070527615026385704414147753476587215441698696698429312669666226835918370314959010359124538404969943142908268904417141145950023234202768694770167976452678526025969003061121327525570665038153492215582767991669207322314675136688723321853987793756846953142727801845856642506946748138972565684003913167473691837096512975252827821755980401162588504237001169362534980743795409930668496939334639619142350663844935709857784523565815289556688416658901177262553458750348466767210007379247784552733014493973020193429847599531321348725664094930653889587407356068549832177634887688134727496031371403339019124346097673574700898903154567954942090821493071012734012412455085511625584944211562529301311220332854919157752546500807331894189620833250488159607198399542249641696062144645891599790505307985860441074423082049942801102120607974408807227988620360114431850917132495898677228079852562556417491369068685665681023344236833132286726368450404827128246385033078369554124748156215446649784972320466806590752862985946074778534005061485369681217857890621458089327988108906755500954270522124464261569891795615417668128089332954966493642001169059252872594692695088309186164817443510882507492610327774513983476962799434165021369755802177094264877049987955212188138415896951542213069954151193097083911387569947225623367474610162352504389439169359245734040343491268673419502758502758535627350545850561946041585804346393672987734251151983112705076712746024531988950121569818884242779965654214258115026546521837952865544465329325149629424681779649414860359564194164254743991289490138963381451059437177669220269692555912495390572713994456174471339646768421448530658875104693247606306356124476703982402947352861235876833574836418045941746501596604207808798557324100955473371926739340028516783048135779995164245203835753533319853875910707524643314816243572069584512167723721037243966656024420901345093494142094224748490417728962040830064528410973807290144458299995605647948086285973327803887683008144886105758773258074577692765729281967046876533387978384535484604283665048923267761926007723734001214062320538885880946162546379556366370287638495932126585333511411088320571991325665860366190045589196307381926139658086922042287092510264365280130104269261020848023325572343581477294124617037157715785552673618627756352155296704672138593734903767485528791659054104102813832686495002658743111058597489908871147032785941642501957098880995809714061471870542766895480294214324578211399148572641467943690951179679372462796155141796512115963902308834998875766780728953324423000416797491965183226645836734484064357359813820826015130807911445958814202772775274832061076700984812430512397819090189263930074373132509397619414610162878057183261556107992481875101194556864222498631101514708692814080533374560086156617414500384533307694273822514464387847797680935469931481134417441991082788882950695792967264204504357664244512289271863539997784609277734782652010036755027034210024753991290723195052308024830343482746442749193106061504272721712084699785085625326789049995300738476032369349436080769170010517050380109121743242221106908387078482023867296856225535618574758565561673625053640982824232439555671031796153328788712299353227572295858516323082862271287251770693497992379493529808301089536408474519001835633821807210048914461638538784781562584310765688605060678039905016561179817000651662565269058353448813524164818941234857132450009310489838303274797260600568767818365423485969192066913845294631498434418884958325119795260890088588906294429266186013515699990065768343267518466178341359328592622467907186417199015990046282716743401800975207478645383279427120524076085831230825176779924693814966918778926419523336369470033604350415467478124818973516375409905162413810744553812535129462210667112555879121277547458632012760075255757713401144458713521820313330255855004884460064603008727969256498104175386475982411339631519361149048372283560464201116216795650024884124437870941374534406971888014177869116968211189486946018112311712094593794533393337277741180192632339088710859787415186930837898541885365228306349102108652820230831869867891953885370574071005684555307409258294766452635059409543451740835434056807589931271093960787054803069349903849584786688373606579879534419309029225104992187330597265929210075504308974577714012244628330696021401702721330916584454213298011431118740707411081524740067697669517062731462003912290772195448226605813519133774854648807469782420949761857533230360127524854694128128928448666922379196797909251765814091978994211465705704589684520508084990098602624133035975944009434930345421851427966523526689216350557193597342660357760406476027338802475267767524695801370391824916977500376978932037124441207571909913386140387549605360919894682432110662888178406663595781242994726632241235091022462410665362834561742966123353433147174554711036712521812621868394394116215294819613047731666981717525829402735666161902285719766298111675401107547055754942413281973170743012919470893164899927503982409701822450297443290839464905298214488109865095984068821789430421189882977811727083966432524362236259324782907771249991807547099676013985899754591172115383069588211209461344546704070787604713740515673044756171517790579044567971661357134581438134571890692265303076573725481274603378054633160898507529832638561521701174270639064912026676762850482331268186962196366663707159250716461087879599331790992393078338531026108410460155543767345193446015013450269232547258111303542808904823764940431759363506671179584116858482944656338811801141774919198566723077583903142449157506589774760383746133175138802062270013808255677014427889371842685073890644386746403484929122941575134247958453208427072959583246717764106161379336221862249739646043649896983508309722273587045323592667861700961228929159527686232885764190021553261653718140179765721488426693278350884869492961464882556315109266427215565280221250177867616216585246498318731609330883148349346908696708287764722547536923385581301770558380537918353983765486003060177524540181557428460143973632661391171947125581897067809597628394947122788345591310282987384571639885460762269229794175054592713143330074765017764248261388166633676868257746588054188157757073590397151980305402279621969078130570221376676668671650983719188944176599789388731729977950140173672647450119051666993856420691663333675502126894593315410450675150295003231265799186057572944136309001276058940203910661496504415508525178442029927067380642913763221611745485939133363242728195876123648033491501385710376253605672725911463912315789225459196846635534731580624622112973802485034147320249346464856742114180246398198339254801998977788353901798228068779664877718987812519838743709834419934377428585650479875494366586934527848460516837142151791334540957467723034103977735730219377359627329279611517237301445797007924962625208995575846159011401028182014236126670079827331328355362667089969048029296376709834894424632401483727634563532344777782846853235031637852707850780307452893909141332158840760913342907392537750618617885771073121436391948524423329864690873943129220344859795284790512937653992212356071396509384361635341043468475287261175611605324043859654470135363011387755081463859754247102319424526299412684061238225003022600047636769715060525836391572920618877078959548870936785913029584560427239104644227164311343868669160584486415071183598718777244516012805463401542503735902740410916890134476231678949687094960485669359666755901386335041894809712267092376875300752503252824589887918661254337454797593008720486841268472407797017105702836874574609650404453471845249519619886116537478724133776454204823468705235822613594085978815612804108260382494769107520386568964578565583716504280318423881913699844395458193892276213599223277526999721874635283811006017465688439346074813069446233612207267257829260725081744480335034159631965667602370594790679680231935666434061454280049598852468852508033414961875600948378953982212869741212020322202621529270476354998284599675768213240659669816726471912709978788364478982255725829792700737599371446469484249599720791012220117824795608753812070260083484182198727844030220052353514846300364252130730286650391809467906361592964278455475645745804432679573988751750898338060807516231386121226298667486725577104433074578235163814846621516781748926475517792185620206158433101173626482369874154091069243289890616264198177949807754379693886504675062166998273187279588658744349011348853264847832076037618361304519936729070227942737287719805110941789544263136036713076403347195791134950280758757053211305834290366197929403722154948988420118170690957207523659636423428295649635988554273608487432678055302858828744481417826116883766304553577652348069918416457499625105746944232318072788395860828113189411841256182842842864053705061984155679680051188672320358822748337994725124858456648936515919987126534065830267873131069327116258316236383616713255872806261817010488699095280949074515436374903100726357715948132206006424444319078454116025336003557727572194550247920116764841454604231894269284579875549503452680817756376831969847109205989468763733802474863980137753412500956681756006236111157967169963360663471805371404259724640088737397625564380151954450134680876934243031659092880169319383107493631861069510119223594527128533217660897724030889824133612475296134501259011577625198688306048170625312921490168821241067020336911392014239641816389498036862563263384674872206664180419797776084026814699023338275965398252747369702826351789542472679803655311843291101724028697688111303884248169925862871886500638032880388509821967740944759629334900447410612738134076169329665301517910170557072822206082766597763202707594278268249888809963048072343381695422452260857709375077941873681368121013491692842566528975622950741706360528769981584395183450476314476741993409528015828810478992553493819732739493771409394850025822751439806131666058669370409703195839282164382484432359170075634322754087197460226197778538044605592990818102762939537460908753328193975119943876507201524466594290301747799037447383264872142448902137549619316823974929708672186230223427684353491369947393370038545474577491149553959415735376331775173505305199874778044457013715795041698752767830959959844904930239360440113532454600340709646190719575634546026321685347125654782256584395543205286345270823374171800607839417522831716936604715980861179882953866655726720787712318253201307072365725063944616616566686418633445506560592014533509339701642545378582270385616217595898576486820784084636807147866474477695788537035698212282850101443753570006797873819520013648524709284397999392690846153121921470926889201964519360751081998742218790108405763098065221288208324219930535403813726427344408315423981663445922334773008238507670213014175961068226593335742216497536280042193140757895780594832916338294708492575227876841115463050362508565446340781476807585299118197646536192058501343388266018556575887225827018313531200671924398068529550412365478209199287195980982205656042695145860830753507925024492897074206166920209357200843194839617391571474110725178629564555242326449988167600985190947119829054231596790160013841883672400874871754244305938697939543667958125165355616199427105878394894575878344418936733042783133242156839453285949638858674352350346811019323336785706785997059342571075205284640017543969922902242572096255307011795707925510244063268679890640163408735288930897441473354731455523480374712882496465040084545130930030505223593280573187775641999225636754979239032867052758555674308591172433651865668421411403318957633507415434060465615646081523389429307496608774155552850238581851910130649176530193111009356575422999222620814331616661595417589752322514131884419970031775885976264994817347381454023163737998699666449101256801202857894716829342586340915743553995024128860586977280882399681656215327858542495894353561029488754586664167777557987062089637002164600335005022552603567986036855450434918937605791466857317395566272865202556615381601985254923182489854091362879088663501668630400141613097355844719977530173181143914823115220543318314069425013531042203413887417627673926809945203958084286424055215244063827781893402222308733325193134802133492758891158418481819295893472753865908207614367015039096738191405402960536749366179537857497806137726922256647190454597798088586728157169456527973971033026678282061454161142609352957270961308313202639610357273683832984148868100091061869559509561740890157109179010924602037533463651890532457605219179871324466799314286826448856793289826204347050112467235286890283849385373196728929242420449952805902991421755098954650705564276180463708493280354641548341227581212300563051880769700584366358124835273722805100331565229726001587221803303520640831792433815164824020560114209473648088303997938876398007413240051104079080616988482962982038630362620528806736817589782984255729360815439519459716963835324920015168063741506984151291209035961955421013791961254612467534537741745553381809989132007598884271913451393215738250238933866687428114795586545584108075382969303203167216593939811154171679747158740488575636559078615583101360829867368580382563310394014723091928808581097792048903008450903839578817533730513419863496831446114579783724951733640964584737617629541423063854654677977469742995762992440592078245556463568425155324622984860240301629607581538634183859619449309619009550414788777539821451434716543933286381095964828425041912463908731592655456678694364686401050937139897624206796408220368860679915018652345381008364658632592945880790850479316753648969781629792202102542419736198858731500167158464500270942223273901371830159404504732113643440958032644262101776578550461704940461537825798494451334305845689500870566260575169376836608599239286322000948070846303288427435808329015436147032554688931159368254437709179892127128702079682912890580708002410941433330370234036561448182640998695394536201999007977389215865578484429612443348391666067292822148028556966645455155763194685882599492176423538369103164102081363829965972047229516183941579157224453450119285754189982690222551824990592815128075272054764914527954544201869550298063299078600922117935714022157732961377940296085890536217298340108099902498394417752483086197033124247133979103855321902836396487452694610470079581271144875793962052707027597211808059731771866283495615444368401625207053844573242059123743373536233858561581841998719435424283719818830941119554442506830167918594439856124549315602501824201621640893628536561104944946710251131236509865229603804781923445352169773449162104313767690428075779459989897363870635360276676335429739880696680104925236170473021688984383778860666022895162645587049159286067984422089438097357359481786094784506872334851504074223665791426369274488794429866153416883699612302816518706507532433129166753878837253275127990091308034148680558122930069046917060816483108687792311697488770474378889686398657449555509532843866002008664392373253110797235915798787692806785477515780221386125551163935203158985328623165593599101482418198119079185524253176807021734178537502606620884276635128229868293474655874637470450338382826310224904799348028669604897845869325787395544071629211071675506549125799596537857203332124878906975875965477887273634282231241087745313792005080121280510692471953858403962395894975399872091186111165220983919053865958101653127290265862097607312156967259769754379138709259489390171060862107055001280646076458275041821078415279528060953864838676457336792256010607725817502508678060545788474869062121599301533291026028310741810997652605850206490734150414555512838777530712890987552152729698728255364726406596768031230644091340239545555457825976811979784717146018278681358838883140723200920360951850420796468285249049916323650380297699615347507115574931156859692696931361421569149910397362887466736208487388871139392433991435415938674480505988003490853122873664808006530404363599305473397540936935675135365098409108204826070525882649792360253590210931714140781753720842466553514005714671057071855707001464433359250622368516617939797998464640890465666504706112649760093534626535915893636061275662688156634223152171773428094771147996433779226839546358367345303032719647877319017981734683907254878354535494838800053973228923252673431147388460210743347335781088535498035083348138988075390190848382503946793758155075773161972727140896435974497682941996072936520818653399740756358423368572068498885973803076607064908474121769216358263158415674197400508367326170914534884997054335698277224046948127884607223573522688953436190659132513397342775625436532729641148062639678820757869121524193013887216355475752757820644628001594183827577273680140824064478586387859775696462987770461664936755014275898527453741027179812281566445156965168920664110185102378217747127097823129207151056424085867311100252709728244858498348213709397572998644948931124131952193336974614845914321515035890453600262548703729846452186729393767926142036440090717670074779579136328934401270966283755320862552152943902501614571287346864831678942477665104016750426276312704502357451866182279537977205730484257158678512768487154179611713276119259493352667403400433315915768238007578570558663882592144317971969231442715375480322207203664320296565649294802799141199685599515395652008912982037176931477651415516553343159942166974569459973749882952182165966422825281551724951341598319853590339820061038896779647692049591903825791158807737929671674508758310838548587616042397066616177735650153494129159683845728164409076198328010866523970184236238578461682061035567388478255624707888379130830545115880973274225004027469608607948261173397125075627344613649381451640110664964616898250908162314274327918237055799998787118861644801718359561128253708095990461523846917738193381519510483325679654224061452748117298263559708310994579715509792256383173878667154476267819051641984505802371127631108130237304211250526355443440606219003890411419194371913060560802560282368862190948321830434923527367831101450206188040081727285940914151283526244299315819721691392853909184299719572832843846825926652864111567212475961732165400455072162354892257587506167817313976070847208786655183215375598529177911170075711443624946632352368319165098821112112263920824037446401318262069030984975457024192513253103454976086228567320717597988588974038678182867655040784562777592306866951693512452606320232024937487730621569472581495820105668325860729341298194009804573681101369403881303221599895644050331745864367394302430836287883222493510823603017921828872891253743790230497013933765901382383680257160149209646866868500040165587246541861072314942268018749404624154659617774745573473745705045034284597843766750639970267864046110694089672626955289634496113167330278232109446904939500978792643497585732680265622221206707074189592185135291239798492719277765965298205103807237744975892980627974961713834582368039989926835085885604985011412330272430219503166029237603165300059784431365392773952361909240584470989851991314511739482012735417628580719779089331519668701097902672981253524910405831782163355180382283872867201655260455986398839963463214243965447953261214488340757870985140431509074964573620739401816970162337581086309330586038690968232313740091479434514932535295269418164547823345362186720312159514604176430226386223350515653403638651751093996279142495173565550158427411009585339304147548299802062213648743659655862868547301852929484584740263651387330594522926503493807988971380083918115614976619850742444168493667172463457181669585508392696479490766136815707725936098759532643628674597314444820751035575196084833044685951171831793530724887831331274094312061799948236290569029266139664810706736392719987748782373350868452617288159638697267144070602654230472083718863036846416821763544886583301474508298313860428999668987560455072311734841556863422775485468984477995831957389422456055208688612826742311962398762900011100837396777320178092009378675152492466370049410468544344162882072722981938372774895725141198332652350130744230931958819135652383844597377696250556188271116143052697324197584444068697731420756021789961803226528874327343063658774160583830308260338229226432333091010575213454620173924132460562329734144967606175345190669494241955737856957312920399456494520571954560824078463675128241298966462127750736644285485830808384440695090074071871179978635343661307720367881941812998273413887958970514423721402711222192363759789097705477011015150388066512590111618191469437597879552592460668123798214446255887104140756846092574626463725211491137947332054414871830631523929429859268612380830562346747991067367717592586158751895017073815178451694552692733927434874897251764352269763276307038123808130220972572064221271729055736230263508467941315687515289283310304685544099961528767101312357982470361011835735188241939823003556009889404788533257623735184694402137923598872599117310069711238091021586817436541812053154078616078893547006723683772540363266793713835206529388995639492382542841561819684779158226282965282910129319945506840315410655342491139298425959591055133618579474092075817481774790839087820539175750099491037853458658455892000264615494505240921446788927920704214676746466823972715270947152020171048275777750005940063046971028159149159847027527125788615922001642295257349842493784408550885305953249172691429476404332972387146808311672958010182568618891482230275745421373701708430966931239255484587543800150527465499371448512265979181432923158028427994335581460407005536984492899061111174355559351534345320431543628302009123788393156601999211146773687971483539309719713731611016976081382139798091611597245547699802296815304488388837430168231794962913226540827982757746786796437503614741864361163689440205260983047397081140560180274383688104597914378545272241405972811703779603961735585757349031380752021321550081420645487558320829606343733056918612797443707364162225915705747244907882401759441432042611341633828761758249105081336196618439494348559484639327205273456230269087373720783989426167008189085158494443828400234215523813053293581410515377257763794207434150156228467240155820616367443543796936216065415790540019891174210168585027223175762381142519669157155509154426456924428258843413939130417328370858165428574229276872954770478847917031208766304144351223256520855318612605058861704609965287179346607588118596251565561611630126320813217007148555483251277473522453437942142699251930244348240024999853501491427124951129082774290076378719076386707427076400932856282504149261443211322658975384291370908986218826662673722312272959395281336181458192306619253630891424355281194837077046017405714861202434965160331831988666894404382659792499170494338851934106258422206246064352294203128492487392517842741828630160115716221661203192489335078764636476356963068396395651718431743644269653864852874854979398352397663843338321188271714252153925041230825019540498103354285825884784081490676569110422618465515218315180229089242227407451047614697086295305795135253446811907484700949537375804978834715598023632206364558297828142026901624026482326096321303497151935708029988835227162484531619906599549247958190911975083688646062485027744229518191871099458158913892102633876827439712831336792045092286606108828954072400019135623879896398887897297542991163754783723752542156864934176388927398863150424902763754003601947963667525274343782762090970637478385355521462209309184895726500315435572617488476778079282708063270525718442706256748193868580862937716730276669521336499995613320163248731283295613458920543776587974465288490327556319692674186553906011124039205000239092394397454575763220042634446831040603378477675678778733616539240231520979006941914226764272488584516955063056616794236037033044040748527033017507787532129009835973727925299030481427722958145349227759414277034857755915385424933843787590216135922997830417363925899594621005615104666072714201681598087442315295198841215516938612142707624784909841685989326835348788190778798528483389736220007789110066256290190370259652980675846538141612813128789673037926672971463420654487095554668474886259479573105487238713733297652139017096289476646780273405238507282483057776720004176664611406671294338469758681866222475936444615305488398011423387354060034573376878884975745123375950852962312328640051404251599253576695708388422743005097038410353646067516825188875929876522719422782055869645474184615522266806629927149856423715668786955910994625627579919381420935587601225772968326018121112364995683518868333744115962930744149535300870659602675784940373622906839680806473775578236011045274315676203645120020498118695081137451571260038202065165273231996514458545447076984073619851658574300150690848204248275653350267189637244750755609902170439242339052552625670463831675180384676137564255312055575219849175580905757251733661214272680606589498422189304225583654131258909074201859947692424570092033403697872521843396111605800558630017882105269328163736635293928668943777538867959402186141032851558852300134417343846140887619116187982534898557868518997444108423043562708007688834812804203649231877817358834485108021430778292156690371815398621616936589907475981139392368273252725606998566819631174689955465315732546290544648656321396033387185985394077879632874344843065381124693097637465794658620030028376337130515548349810585123844960210829171658843375145478706204498592815451660407100176182373186734246532223759451038654548683671015696295663762298973709725598565793391161103587268349050955634982186299502833796482673281252559040494746315016302959276033132644331981716892928008801589484160777956267743887318083855127010138770531804682122363459835908685729906386369067239227508768944413436118127484543218278448402827200077725019301613420982017116830700546160642262312668377260802672058203645406918302944601909082539272893862713402674384219832644730815997213757504767940745602270851500778205897282074610726629968608975203303378559864887080306048917629072227495117876413570533647464667409894313737217427765637290225074563367090101225223075860140070207882415050676218955500508984942074367960100769464169891477952849958964071826622635818095557289216188463907720759661332643237513663536919712575150297542268967592276047739227698865450407062349397327556350031494610253721261203761834770890373040059606274614327221530147674338815185292013778217671056743568531028818791332740677186365283780674192063136840342614773095987522392993782970464026007079842958007753041069239751780900191229329101069307690956853462529384004507354829593779884260329966088872434639921548545968825002151039634983943875803922346498828981368323532555894674003458201405427253187200935683425755564733396639308148432083725606133525369973933273656268745305120607460317013082316398588442226626125255521242316732527059110932634568410210589625567911452014020656118903248182002810054361163446333790088822614664410762444148183790061063744852961166369102715439984649734799660166399248216152238917708649756743319884020599498698222463526947370429837487934346063007839105874517743137032245630263919527627146026252555867741771124746122660236330880833124163337528265969388204501832723211213480511918030608485983220582123954029978996919949873071361597655559080594586429366802501667843663102980987053295747595830500662403844065647788968506214782897867955525737859041936483242690312379163335330455340816611328316204525216785442382342432753715816144696786594310952443413816511687980113345635766999599567509214971035205105240392885596400591999653371896851106928488615585654475561524479532550533070463714972436760782839642270828253921269885419562144386962162923350387365696643656673658745176884922831989917459438966780280999907793559695263577566518519565557793080723090215307951450824882022327171568631761335791889901651068288139164430326656402113466842107590713565286682156475026050911897222647384056340844282205137296963668399631667782124845812598296682814796360205752082855724935524757902837120433578978432823260511853292874298336999306035742938854461354164767297827081221379015556493866698460426252907113546647142109877977919262142546952624392475613941770842103602090221686154013263473747623500090143059466286802944909427897328882330130483928273862803309933301843775389785754722334614597615871985283548787169593745234127061226897960022403465241724520590503626538007585055561106338581623734068414599983162567669472972366674776234560213707843699818805832839645788598946678824603822606366571742854595098968456155657809404355644479745138813757575633174780817121288974234623140872595808013378192184051315365737547485845547171743334735661943946615540146819940541200036009471549330549419720093081647681441177218014614669847125091640754304983322400266821167651216749478804311803417548923700847394749474186694123551896137967832551142166931084392689975376707772802838102916964480293539337043018294267496234036975050223930615389973293433797241141117531095568977953156267861979005308123981521433083353897406019879588891434022164933247286890677800584112673857203269213364765732409077707314711578866327606866198063968790297986570123942355119694072362230148647199755642646856768007858438140548141473305923383298015339252254286044711683258418840393152305547527523889066532195801300980196917016678082862985221772496193831194279438029131747550516255190254097372515442034537160588775259353459122952205736675726371830519017449489533999057335383682688327052703140456477655280696315508076711775572476708667072171307157519310825991649909729668531767878714554798473823540210603071732208761173926887218323687066149131944116211829166248776801292817692150756449164091406898731607744188567138875164012035366789066741737455490356790617117865744162101660260395254310762409501929025538177625924374412662213639948994929484772077179174241354333013954635285901442288693962374940088633096076055373392797607268920817549866927896090721968384936964588093987442299724477588989577668789067324531695926066577551985344990542832061115194503491639161767090146199949116059170035148142354101434976237006142386561199470492704627193683516077859889718971948661366649334901381485867631775191651889316036071594160226417843749778847394541345387438150545019942887525287267656572681467517166055389954527780221377492160513641787261713797948582946622866317453686290353977267728724097166676681384177363662269561820496316002941375311936163662396629794374127030966340282429427477737523852169946323856763545035398636930814489794168182057740676191208593414823418504807385634622527115792369670217019272511256887864253211604751819415222110139367909708794509454200626585187487314131578684407614878081943603773872070110654880793419330769240350785968283993995866532502019259079459928130145958330367733191081487642076908623864271161229906772019211707240246533832979860038789510617237742159891082216707843027830902618065451868946722683935246282746208864451396710687676615101794773084797381191883912601937134510807180689019677531975346775767579309395370748814099004392791821817301363278631475071225542423174851362600841906449414366760464932962181216217099861753345286259472471950894413412632464149807308267500071664812305100939430757357156193269435418511458034858347544279399394939844109208932839019108741661531990627829191139549485735320750783680768235043626489411185981170169229373931106544903682620025404293545250892493335300985323805336946886640051920435224282598989017611851294138528332767830043605431514948875006330432682851684602096740618989064731324408829357399199719220796876313759830014999850537805728732734843685407911970571038589506977588654718838538303046551925698691730068244316602377772563407617692897705801449397065088414577436688736651420574583952126301633803029208840828508653215957248904354732864013733196596180890007592166697503397994898588284377900693179172619709111208771579499096168092464842481640985520116016252324562644822889023608289926441736991936933799176902515398959797776780356150111950141652394631731239742634999882327649676731048419362379717677139027712881820407593980562541226415445189405837500958499848815012810037257787203799383285836384060432445616614529521754791286244842049328699695319824725443600028628888455257067014842552200987102883976940134608690798532698975824152059442563588812883168258268012508253340985531675270098800687369396650597010013528057318450810800415097271564407481297849858567973863027660965316603304349775004852499879165831626090082139621593530660149465185822855763368485484526026565988316216029178564986286827611568483489697819332664898294707457431491667798578534713008110912005786283440221856019511269509478262873039884995343866934208294919680653702077334657710644783645756605899103924446328516182542463372251142533662153825070570738674901913646690680078224566231639131896327290059928971310286938547738775981552659531468413935750595276823422060312305574569677710413415260675665023575259124221846385430390426254244790341196838138351189619006518756844353264300664066263119316686799000310171535249286733352077497655624008026551343732394158418368187479356549627192582458013774563265626943067888267244711126165294971639349435290082913663106242329579957442700268150545317894400080201840626193336036647633919814738462763568808350855389357876425809888620600372518740977460477410084647701789374831890849047057768329113973067549904541582047221633287856788098328732581309700425349296889180029933290062021883066783350410892315285164317366051036898165903728917629447047733354717048968121840808328319475545372339859901756528440524821684724035399140842711456082085854728627056094799559747920763241425370935725405739185042037447878980006659228417116423932441248438688093480132040080881685124741243488134751446580119728810896625288582182412503687736953706329752470334889139080955161086087685644635551606475218805118216308846068220480929023434816023073012599500092108434371735943188744790137513454067437330586756632367908061383674347917848594933443825059661252262113619562870929554379404278882181909111616851975529561160899016728240447570575128959829388429029048916196420689776792469789316058031197465682262274832177960873750465772823031507537462138570510143801868752599371806593214216001678002799701227709459588478926502972986674761074920744176819490394676928489126269999848414062376622575763023378328516750296414952100034983353350686906810304325707338002693078997313730894339409895262151794157053586112466081863625172954044598536285946770154860187586222140607955779845842831081020680931760819264462377436141249718546568371967584042659711813677637102238326474103995269087592314884293167788175621933256208341351067028958969826575302384451576293331047230391593608309144284064367811665342616464740245097240005749756329548290749876416305749132954829937579460861221317127039889199634071433056513651388395479450207547833432765325394763198833047810586894484453643557849074738980740459571376330796342095114233011064407221693634403606089832342489504773123006042443830776605992566345566082812886755082832157801303540451824659075516791545354924993654130519200651093600124804824704504980581007413155027428634364052116218279764475892144129514805993042896237891982063818253015966846640045177990489659354195884548944716654318482938521393937173452579923308848597431528363497459957054772082492143628821076445023647973819165339128489888793060133332038481773793608960735350865309315368239402005115828132323326693798460514053015846474802089133855708683833319381016005509523772841588468890293388943395578008988698248514448285670121320444700082095804799587985176752948136986096547987796160862853881704807860127805784834088850786776834212171378719882865589469830717465252912989738194976342018361773841814496858142819989156386735301001302571484025447017583006868779639203884935014659513963415033939340626641217647236266824206528111835899040073890602535675815774405308930836146005991027973657017989476544716369103957379444480211235430863230577124543913684625300859166217022841394802426291682151301485974516201823955379703410071183558182896548865281383918855785690254363941077223433984347984604462550628785434884949600483989692629300760299242028533047233588570658648822705811762364388093700090743769550787402351506348099691756941773763329758080583594923620377957946016698686864544673863382339238934773797615081407511281096323850060341025701132679429063344166484962414802367200558108392193801829480954480484414030636854328580490753170542171305411179678319797170652572576704376277642859476999358837425021756477901009663816172085014214060017380678309475814189888546082320273003522894534432550904909839016803541553055506566463061060567029856173872840523784481565045342637755856876824747521578857363329139390092661252705144918954445528535118601345839200314578032697317479996374151633364544648468795063412284371228534853958803301967225380154083927810401349976018884645618604074308895797417622836802326215226010049516659639835419830562622391012500794570569385817994540263697881224206496057619071595459616207207731936994337119447791338510406954079934024226758895529294475522544856483178026670668984208238881902059323871018035820111194693562286475809236942502504325991905303162187007556893688664689611456229526457076205586818142373215948554453354305960390739375865067672373852476722671094071583154668021627736178669283815406904671725613945466242338222708574810233031083586678849176973110798094887386859232874775163938260970769575562604410052536028525334806127678233803721424562511282083587158870611674373343808509623408745901638583735209076700375360843174717598168509585566741005065326871097691315775346361190580778618899747193630984617190578615693301819648993699321306372073718822936016684991969127021776874665375343393349813313828910761655706388101379712879722338806917528139833530687981806858848162624547336882646045120970603732200058651269307343793651096427429901364093929967220687920984991142191457462486227876362606477147248163525130972100115156641009694043233789751071634592356503354150185655895870853406713112978752467868591006866884829642940655557085141762492421787473732547079798055838516234055266389500389451162800333203668604865479817844631088821290865570646454076472207059561685902752404642774485919834269875612010780297174363995168288224841101388219725087552227296046064652067657037272693634687555267980539742139135579610179824650377822680096457845011569203279521752622802758753884834810255015966869936987963076570603612617521147387232126598742675225256413920234410194211267415037880902195007498613383093595688685520852889713518119620226886317152052337923117180566010647201207222674222322732392844054688288017743784715483239875867142282169911402848153965592888403803726821787111300751863031407887399176240372628621261624482053625698201566205739322283887077147736149048021710791229630628550774995888249879345014626481318302186698260798039788471845278320551966614311164957194397314609230131931520566581118689787139282161669597342256258202672810437585490420223767696205774225976646413107035026574777987942389405627817837375063094323103651034336554125575484347568827468361060070693355056657802507039154620519438694167188529781288284003352545697324318300459738381334701448249911885277031880377762076701677519734685892375114399056520631082487341225815834352495410871377069341100856378897607227350176822466224734563136006866177351961349788152956600955050892757311352656917027771650427791843446218792398363364032062813216898470831803024329822772903669527518864277519618347419655278437260066018822892861914878032329025453148428472693156313075989056427172972808167250844670554466757273342847565905565505658159404254577505914431860244738058971484445525387942900178616797418650812861122844967008039316913669401964347061394096618804455418695106067351522731031739548911362074012921595233810818572439237749986822732935759929475895471352601247623641412865099674870512216704657589587603808839875214536408051045451462206797389650795851711299992628648685713186109644937376742078466002041176168633471255057570029759464847348863497821877799832223576218275363725428289266792206989055674018805448478375615902805987079866594808870088889807254946935063064256821171744308112249543219836526974888865718691654554350164116339888926703271000230900448374538416711048701591542331070628760910104650496655446574664144712114934157033097572230636823651207354373469675718324343075545353717241439199441908957116551333934282781258308024642352101104110303113063368490491239416546907142384523193005613207968677955654646622913696095287895039442888771393171268310013476933688986644566650313315775246571542417833163335662473049558773765312395682339776198661825163064614304198383021679083930150785403693894562463692801688573690493667280974441432841371243406256151926184579138751034887431205646594255634711423175074335094213598006951854219327879447355977473826661547688978874165808108817895210282670291052692324559233367322925856823840273980690902515493256268505840897625717985328320687059288678783200896794546892966889596310046159179241098875364282241460578843915913634207885915376968288984061768189480346207532206732189473021042880070790422118493475550310199565010350121324105167584780456068255765640649661911463131527424980063194942390898308897413384427729725704348485949715070775358761762729785395485257907041447253738562342080437996842489925668105585787467454484205096049072459280504984671583589475566760311606121877597165884846272937611545211276085028459710971162915964764754329455856945424690460392857335153538445478401286552385484310965031978348947487872246510807499703320808743650889131692751034365939424962255190113189630163023777375386200883810935936148765811125263301894299900549665738214104552558523763682009333500101782870808778563896205890668783298301320967755126355404016208458128341564923198233394138978317264113785410794027428094111743702327328814711634750492209345104813231754338324855542262352778004569388979209376795943102351203694728661848310549578236009447916279230664819951349022820837111079963775468385554906079597984601865878748063879463488422719450953822718189201623392183170380585578830310095076498036007018642581472877271790753154497673096039693254010301736055698587528357356720337006585786833030439476224091913572411054056420674974069326083301632299413758664962037133222038404341021910217773801432164749120054240957601396669304388900435247258781546641670086954030434624831719029677218371481333746366165579661374725110976871662086660908897918735878209215847858492042054953261314676171740850197289797461913568510094631226461636233192687800591467566375851250225981868435850961253156403616677265547316281435116516551989160056626118534086688159341865541580877471173394769237609024612297879656651735432183811203004695353458662089787060287187009759243529403169962052133281026683490643853473396045581116637472881395373758452746017894445020839619176082637165445218604476976479738079947178365818845954461104172884946470699272778069249055499054947264729984004625392641981792047023298371803447547348307678556255559279516032024911040063652991854861571125610692803737631774846822804046854811208362838117511506434933487101434213839540309623133943179592363536127404489584593952565463370128252467841841363856673957844316726947951552949250660453090279192175699946347335870943899230530551731341603449123740962371822871326905639407082234954471002350565160280893972654093533125483612298524821133043112290292967463334538925587482386552644705086114782805506028704512497626953457198470240356634436137762629078180087005329149871280712338826023533769964504833553326899822518694947844384578498487837129858048258975217941990044624031703276116556976972548163423009374923271988737941047871445624200783573032874227446603228125279145724727568992354568957903643748416805616975003027010983157187647881394021703552324531896059338286996005774339816418928264826463719326117827111397923531073860523920014386596374620709878377821961819500486357812316438132922283130012876571311507901098939390707000648831541740841794673398617899952368799782192485820978715110319442839417140940514378859780597755098899466447681347278496864697341880165895363875978513551355792562878609878419360880813940130250016215814014590384149887268013920117846088947512174856077331364708198041760786764162302252462964735326830742849387888643127213085385184865437466222402415301299086695236391097270817584088417931578565050582101363679941952450660547254181573094276116608224532486088804336369503322421514564869028711087810419761657076848232777631002591921073839706360836969372431853667201572083280714454549554659271906302518688427811954754719056711580770481496744840367969437103529495652768480620588890714535942395813582588830649140048958244751369867354868226037483053368895036039832068572974213614697111416510799256282341873770443335574863663632192405258762949712902513419358312817546291524669671363723812004036902797588185021646001450011075789683812280903171085067534542521011614206340945019152664513943118147038240162047763032086232941692633676369678435192226419180432748625429455817792018334044399451918616952936360231625324334886100761364204308896307913349533841985544903636014617824906814981371083534475621880393609683102255827091026689913909190935954944224054766491581916958239158433814645964841374286685273180161424519427052497567807516794520751471260192248848740132476923377811781576110375245173558383424582324528334275303509855913069461861224155369984750160338303144570230891344999443906291671454024261630524036350385215040729657078463337778555067286173951876052728497516830284126708459459424225683616575107730855609872677453136515210556040136975746022505292128330660982571159505640427718332167111321596667078760090823253308241057553729203798315148237894933978627211067563209780781163579299357357581263761851606076035261988118384737949815676886429630221463685156870853020366476303318222420101882473566234139733242470809293692913547800054162876306537780733788237769015882227633938034651678147649607209805109596848901155960974370683209358676002465596210310462781513780278056924235358651300258914770360928378116314363392253708290485215043070978576491537697697953674056960778466450474400277824218298616133479279905326468454529567013825391094697171003996466110889087891398557630871226769851454551619022389167476093838043308687679695239573619872354725010287075938320558401277947532770726283668799371459538115017799329050987445016095733875224202591606204227617281294713666818404274401801094059882565095465272154477522107144260822149727809186375260540270348463163662842353874490826938756178311616152092813983576137741563980687167232687626736064469638965492173588334267590548423136037509466687770322467547920390038049501926621975673797663245065814521012073153368643589133758455915750885950584723130114485071292860442884939844969545664479100424957132488367483398863287740823281208889472541071218485167052271052976243277174232159360723036236429929037180307283337180734290436926025858327888053198309888094877386804341559335437575903540682800540682254647999607715753123791438111219012002595781854816561172067013483081334972105863556929969425963627453130134447402491917174255949993676296732786967805032485329762922531525988783366824159025084518713154564024169182999143762877236295500278496369192043974481688538926465870676572440212915813700819165531894115049735267475793637087690668807926074237488132586939806742137627737577447768624827620528545834038541926867657841676577830482380749385392128488515415017917492127773825189175089497990887185573510924423926522933952115429564543510638316519709325320704697843973194514148955574948130199799754763511654103047601276848964479878106374653651066552761071924921155732991889634221666589600084377335625409586985265282912008825354599055645309708607815650606698475646249744023798903852832314002158269413445924462473483352540872060429163007824524917251178515290871614665499745708273340312193384876526842962663131780870146961445887820889429181355751495725150767315264837814127857994515125991961054629798658714375656513248697765967223544622011945485839809496856934906159732062185784080213169523550138862228469615374435278092839474938570178657785123552938346453741569595141103638810335200444897922177965688512005263901844374391874982796987800100874593871299350400240815401063096793946309644416156304357242669732998359325923384739861381962986155911746889709595472598454312838608399117559389737760741674382452628538870774436657997617506402749462442156928262382188937671725981723279754873205653375128135298826653987814870880904499347067829347948478247687932056404280376096966218799374770255918427181119760398757445648015741310964147169947634359644496531491991769981134897201021241431508713353562683276713828737152719254239490409100842212038209018488284076905183434419718208670008150526799169040871407900140540329653412949092083784503857437304855157211232114566988771937690205748870988831243092233510108443038056575967326977154131612041400016844121746974319776610873874557491065958400904087172699697971205740474762046958461436418562432032192118035212737195595209768466359883785065600498117943103509541636385023701765854272782212095231421748806178689275503523605869001931364643082021874812386104203440017629730446036170087160834476179413481573404861510662111378181745869488695232792207804981543681565721667683581536135058092174298230410769046386400524228617935034663009581794982626329742887478771061680439841721479875303086510220595722630095133455087742644060113135616666357827811080595179724430180353198176849826037246888789498399640867268173777116235971524378441738248011627516030398871895007279770835913131165300697636701006782247009284543914321527721796286927522236821496495949552698307687742837954292131017071485379914762931042247037312805465254171411914274322104959404485615133075501559468568565416320649752039438165946716070419460078924730108833143098167278841059190318443130338083569167102209552831795388837335549371605688908416840113796964846410885884410635739186540636846720302303520154675117699635632086825195499124230208709827359596943744700685181645103864130503273741071208584512793596843468124599041526046160655326743738138840711419078949935394799705648359286280817163968019544905391078744237518015875143156725758988446353091126139466812593289971579142476387492113152799376906041426557219400182635779841824935740288796170794445672762810478091740469377927624393771012884363503913195918312336826843679930734466284908475530703604659766011340313356111638757199170127326469824241510727534127968016118173660220859480540670208368722931736968164406638078260774297528987052327590284254688968821771930070637081502654944746521805229907711078937370185177686025641953491086750411938082667393083589624299909693466529591922472703993649581848656216989227693532623903926225678365599874250910516859828603423025673702325589217110030935654923490692648876708917718083879578846668983839241442797372427344695471574647384171965827719735496832586631094106082853169585144634524650372150736767647491357837443776835691525141339365417428624467546953440057886275345053373336454232136156845941799771895081292647969657886895595025559348681339905542970800142803016568727167024205002632825865552614311993432735355007396865340697580146582681002554128323148742849638795057444950477067009877774495808287495793059262604043889510622908864054206908323065026463411292793402702516725088187470114283021440563790876840483845802372595936314790318611727553411141940258514466327366199024948264549198120368419537616772213527240626209942315688595014313897373376366503088415409130588351093003311704113330370067203645365303534041944648761829115512458660885769806010143515545900859398142873293331679630983023556521468571140353973871147586476241552927441444729245873190279156072017670803669132865059485555423824439404230697413298414522363529474184398672314324338655588166447775313198592179011589382293076917197513086472017576309292145915428565353186465933847496643538618888556716378240609090659553805671765562365082098156885914531779731606347719356272774721716178491909377341750036852313502610285024889992590528568852416730307387942580142441769302933198438196024852100510149831243961653023765907094220918984420168551985640046749698645917414231735616394193436343878907699646235164568029116772173428015793501381920512608925636334492814522682598181490468433602791779867047339270436035780228142465319997190086931311472201221456194987844875056948645974824646360129515875951810845295896862915491090577380066081064178863196177893292792479305648713760167702484776974587047073786837095725224620527112138739750443869046488111879611282993550870236608521754202200519332884351175915407617666572154431737985735537383605888954943290181434431863627042178391783222027137739388785909973249872741080225828386563077293279907038749876355961783638644001096757806660949795180152366848590989815991345654760554381000106530714735500433506591755217225712439171178189411154408202829537675003876860511470779515658356176031617934052811728734416184428182476291920967951696133839076944186314476656237165378850408297225156096789652268879360765145422600220572908079242775792434040062649875473529323942130769814077344219211903237976412637856786888493110401527330074599192006767140386926149333006223864567221732512759846171338674104968665638097714272330654157795977326634530140905966175626536733130396133148442357847672260000967091623312041081540884208836321018121244718770924328467176479051590972218105118023035301561031667447474957639880533785438326735918499546683380293801411529583963999986745825126700876482062380810878391253903195648191982970408796154799575816471180054288786145487122468944717686739345996632356943613703518761962862585917817783083555295753238949172530415687762740658854085303998592105204587475752276402165976997518974943587470990468446755024897178238022761733687461247710655566343798281907676946558567745854214006802859623327638219410432900247429836213810739095952994978801083549418807842824495943941125977081840144857425736628452740927875215668837617001827693744364440834658654844705973056919315839598607033707817691745985497822014391464246426892715157605049511586749131014325836328304646430108052420331120265366402613316309778057474197417198852232227435502805028008997241554325717592558807504353210211864203978447035757837607721223544046478735978276895879183122681149106907087601579010722439273042718795816350493395758930272156674115911118187856761601610147718030517391982902300593140814300268821360902997275239376756562817036988592684916845905270837246324684994263809751954088236719413727325105311538510382211264375135980962887317861711327389197374492368257976458677397759356997583107713909310883147442984420620421213240752739550948245429390671817925339085193499294654512270123276854998292039970174634027523555150785726320472553959849122177702719984355703698647982924775640459961355184080420147690638048255177991333500182343669068512644388852283229867801771282506028506560580261869541393493986343458833241451889625187798154287349291832725680435209705973552371590151157614553844872308548917971399425882128514928654494716124274664949312084379994884579084028096257678034575995439657111807649766863528656078991253847378910761996540601228923586790068201305032265787864506753790271317909040248779443815753307553735738793602790678043572772597053268150652253487543892807073705140269523841600941709096815037970818607958972971787566882083433231297857391412383749109269264437791381171144824171716632340693650649665014229445299003986824210658802749696291987188097370966769590293259992297837969747807576410896909579141810595818709671712359767566534583475128059204068652688443904896033183041262816622268876658702189197199925299459467770298576528978913161385922256971764164614858024618315090856941565371473502986994947204587846416747949227133646155346236214781074325985067689035175675356602813339507925310705356111875967334825020319653448952394536498912364555784627161534142347664396164412687293162328838688122667513473029584132833000667435570651716236312877277801512367821906820178935107188324400212893985682643373347358241581177458674005427145454537779906863927394168792920711758915078763033440242497124080821834607035473702825414001598412023122285940207299300080079432407595354398555855139742114759238171235080602427004718004902798385990903568824980956229081749077839414568254472731454441287428047232985019425437289972217167383845660496873034113607982218904939167102037009080501111360495324720896145440453846584791588126130225952215325792304537584441251505266294063542786860708381608005674524325973844846456795172965383065258957073326315033258944684390587232036526221593218653249290491766467172789983621175492681157060017673318337251530322173043072594619304090458132975228629907614318016572534203549988041993366132532482151319950310320862558195915457748939016507598540996701560166160088654515160027182766900577323719012659951010562872889284650998616827361239517050169893009247220679378786139959966047606464195094172431561642570408553926330731625449194542209396799329400285871105071121847729362187249521044402097850247694197719794334510760743292521601890878043203476939407719930523652014839742326875815356834234484917647702233142523592780069161977541781650176113346668752243379167655533685017915574349992459982555853165696801568663382180848485753204482996756352579743159602220292530259794044944727030212615617084849812840735167126671348517323378806228158957538883625497289279522255411714066343465845511467478950838728293593589766221651406945403010806295037485029023044032298405408770684139448638544863041741257805645257469441742196808953988718474379153349736902895468837262920431804971994826541054951931432857499853857905860844288526533490268727232549857741351632566518471118106270325366042212887458431281434651673217311410846959474265635857459189489139662023598549155852949647400062069758374019357289862489892428299038788607278747355834338932736708997926857447241643232107138396925250058789154809135580019609580824853051147312805825049836617805209641201360133609577822294186679885958560731497281701327393087821065239561896620890910479862841723182631194868408473514236291218592633608674881905081098489932399301402854665392723409857962375289183144289826992901269307237370553594756692215865601370465307054626777521887996486564718845697577100857367030165981031015524926305288933513451066469770876092781654389664142880592998462406124747214932579630078625565220063590319572892497175613474280808772824702380380662557253445213549980590510325522268928353423875102613858072154908844891074599233962387852196970787474301156899126358362854330160601078178945562532916723147896925361105513638431381360480176314387592229906162735829770016839267887590327520628037377024830529951068531826924844913430157989784514673994646775117524145604603361125550491801286203195401726082420156565167173420962445717398343415148268750358265994574430572434780406289297605502523739829597196735126688203372927148208768690489659814324393418505730824469492199372975008325595184758127443362186093544851621574010044955603860253969310117082837039209340259107213141203120384139140573338500953139041553949412403524687693566519362500573294550059891293491262420003157442387069794971843209030862724548430019219137797550877803084127962123886463348957994351405169012455694119576562127140400429968830466427021454269958482665466821360058922008603911226866791954162701873451256844140935372607262905245158804880008001135121288660114039958593851293816020834731095476471547562251867554175905114866863126577208657791908395613151306742018625816563904981960801051611273417260892179714325087702331258973572813965026824251661562391083042644927573729268307885923428415165646181399140991678674720913484117423868024608387683036197910506541940947428291053553949191985347140114994544250003159694088481604721094439504964724900765720739186610114355181575494645400205825027494922543097594218533453875022029880805449502761974854340122660873726962820060604334494684486739261944480543872793290451254924523144357977239965651610076928992007486519754607544182030390456232161511920238227721789549995771339487616354172437880207105610826087845410913007645366729156875754313862544233653077831407654028626438679555856171981119355316706060802859757414802741495449713111372819782103130329383719797682868407000688897792302237821592608939620277286356851987100203184574911646899012647872747943816763280273513544185678840893833622227406262798922909374415270802783637335563956005244227682860519251526189556179688776515395076644301271578620411514241124209580087185435099816118757625070999116606106901594657937987617061515008276076739082847467318090058711198451940438719048901863003155502139605291804860624680111098200423721732439762887599054323024376660411433166207877420378108307567875489462745703574667599871309796902483965955235027700045385837281207458515014805894448771060468418061342999960262240527097500980467016243112166424726363371816971277806305886395535575500747992219969672722416654076697538403236317200746369887856277226930791175848094116193021506904167711383110080439061447952274458417726434589247766244707356157390388115692184975766703763257112951878683877177213470670071944813273593072646607964788366653951474809661596707827082576260001313011595619466522425735520768548469787017890368758161141320801351384259582967414134774658993897747767497975156645285426905027899797632434527730758585329998757673568651232955830692586511626027729320915153663289455746683325357974068199682944297915103666773375129578458684611638873528595584175228050044376421275291956453556342672256966094260454891564640121641485930403747925233544127144529244885335452957658951130046112819491412531994815123267094155491813092048626849428955816937405753878006681196972256967583436175675985181538327055274229817698809671892067845718648349503389157742638110721327150419651327666219174048037848052763749035805952957068842018809468547237436036754874495010803006727762019164192635428292120996844717293646513270821821277854195775248229390518383549770330392835631923096061608888557167495095292383567343010704450309679213950304708604902587159345846178359035535468994969591443455078711264682096986154375981445022405979858949710848463622640888578761036208986829149388166574278238931143035437792747013172020675053511851083486430577602988068475429222395617914934609001670284178899318002451238247484822789308376365374356947274216571330628631269799078833404002918595757055375275065755475752942992083092112601905726902603344930921496703118464934301351042157547454195003868023123236037491368511072930108149325581370606462246769787884811203943926767284839797325533185006609652690107899170998137469464130179108793677117968598183843149192050634725419647977413757081740338653633763284137889253087270053362587856212135212494378643589517781219293556753730373258384715985479813823346143229925730481289331421971055732105295014305245856719089714731731933934903916876271461584699208254713679868906438446696090869107810101130216363584236912924612118905482566145797637380016570309124524368673872947486849652999102240380355395418344544830816492499124872944672159828824649775679189847557448184163912176701887376259350035367256600688881737432317039021567091952299328974001216678237321067753374668806519519907088925369876420228834322250932128197537851028547951400961398890877021958222959169525388535597668497557626555295201726155522273727070183271742041414974837494145101567323279053904312983890941129364638539193843006364178865076049430979357664756718001334269415962603099501206380366465309232675909937727193358934498742165150050252092156181689025102678834610203939208688046891960722824700260732067827118280983224066439455981439913351339654496124580121235823366095828564978108995924825831382960218737424269629374570471272434181983442251496319987315315762828871321759660191984661815028859521386254946566627833134550682405193792184335174900394370843298189015716583705820281462087176440984525743694684856411799809110617619681561062181145172566618534497683837986130441981542864317273247759134187663258605112330321086247054312864093505880779172631448862381747643499822668510708909793486514711734481343319210210656231565007748501275930999523703295952003131320867539232458373113386856370745849849235093444527622606022562949145819062956787010199004301715673467469451196297835447487015478674632585745508130553102943851046833072271201885753740527040914671884789610314719584656103258434255094759778482833795098319754161791513485893003375550674714878951775458326240951497177300958469979723478566659035152834206703659893935253794663097455888448115268967561161513287704876198474645897725805014542717293275585968628725132724900194641966047842348182539704424086213808023671836201512058512800044264608899983330916915551202741110839170440412940774640374760982009498053522039536554576776924562742722081953218085409163382283287016035087852102720086934552193150746299030959020910845859497314991575306439892924625446067145021199986230290732474555576760424516448081897557488860447332279346531018207383084811654584964091983384468421105517905917740303218474479773519345299098500074736823137103077956868120113310179483179431202245750252340181219228884366887307569744131047927430234029736040205763364966454287351887799683724209665771073444263845281864216845126271502863762613489772423214975356013765844329043778206109230268498573112828408620432057165241974033215083349459706242050023173720194027129854096798364356476023922711625366626313557033256325389658263971815882912169186824977194688414884687914543511335825537736424299490048154375438859291321539442913684052669671986653013570276094987622437858108165077712999490956312105168905033796604879389598327241614251617731484363477896086695918593056816635059365535068803294862903042661482215821811490049990459512750714748782104130278678337229621788916411817660672328739444304510488952553721321987192956673976011730644694384223478884585762813730908774710241301887040310245213670857938372737431423811323104406319996774575387721555910654913697694995164299598536410187641045688066758079907367968536230460033942417855713351289235058073470633337845221792990622393849292136995881429491741944609198084513526902820470585028582138023426464089977612816500168135644031147081130309344898740535190666869620513617178553245874638796501260596230057153413680652958155617741792465738454036900183408905942720532566725138206786488081028606235107386259094427869024964376223902859766722725319275768462006828643857727870820924624523192875379227372380012311565746785771252613820733030732919318050115767653259132611183116817431127395875006394894322906239943979382341926560293560886269116016358060191790785527009944458975983759910629617584530999118489175503829712219919714395014532391034346937398970673602979012128544231798925099703824119860415260538323450236031777294343504444200164764513829248129643169870957987412001968078561418986745085621082293021485611422256639188947618656524710630456046963874071573257521895151286880665767674154699288485412952805032539387357921160749924850804422769208889107063203630657665841552475153339602326068387863593372271207398064687605450114178079405785297211401325901062389525238696245083905989030331933298862093155593293062373193353986091582366836169895186415096158471892265374912754595123042576513337877059148737572420028740704759268649745115088879007878565899638331559957463972564083094229106500741761397151561077811022233171013924412635006988079024745165539324701323816637654577173170397256608903366542022239156489986903710554498043540775083673831661752590108822041766011158746174533231583185679044043205807439939614716840402560439179929115263454365009184950638968660451457556571558002852340067549248335113885345356885889325390673958103928071435725171745944510268160519340841984755359247163144097483132305276706229370478219467936259744246435403471981537573846673658038305937238182211742269725499278684968460249553314649471446311564566492406601632460024263413289948317497855738355097560763105307280948401664137482931365374338471272662567244309414296202426984633764753265699740908210514919586321841475695401587752879671756117673644693528875380319484654424591450748438131349324340794435111665193496424700116158766056236637252035628759165044333460624667704527430276450348746455459377408455538274169303384683017339776288318747533717822669169322549728433953396259674443843327752977598967519029349749357719108427572586199602510711623199763047699178780213620466049340983768438673150581447844808779921711648908973367498407690900837203831418324725280348433779030167611250351483218533617098491034810487516168887944894498785344366426224122149730051954061450971787921578727569017687564976086458297954587447452079957495805908303334358552576697749475488623194393800870830740722338250647562638271942709313081870701243377270587473490739370576298158650288969354355145107802156595604271485833324117942504640884996704415465963679142239624490790863994981934087651989187330071114299365074166610205191467555189108024864704605460365738815132321701022837605655139774534885809326624219562686766779166418597368343820035063138114385477085430187137337585535086573639146998680156202325548612841195593325923577622137143343676799157631815764822396763822177176589549482661955452243520783041130530308774828560928550816089122995272782326570546861400503127613543395711903284681139130092779426100279847127222258778062352354762270060933210498186758897331050283103525500128657557564036452691014317898680086536281155269917467575669342776654651191072699100691100276645236084256487055824313738684509074687977412194987379766467654984120146806045233563193637179583203073147310518289556276590450024836964567704237559433514466257481045898299265156548127326977179964413070352397262103492856956078684142540382496001656664863280189080431419680378484459422996609438776345673219333534264466264148050945833002849544864473130508552433877676321565560424349399734728334530034283406209873949634177781098693902250727395236023913978769089139131798173560136967126831946674886132833421208155291370396526636267082177364830837018217489411911998726716968189793451546900894878063048919667774262216398019681880623287465121889745956323714468511513046618201003095684868859837037697748506191552436671013740583494539178976889030660488468113067007255709873621228685690395111539689018502810500649367273157161314193768672403347179707722222066515088421467552023556700018545177969854903361543159087449780202465245048322207616967381140134297635167010555815748548724968150937500037786251664567743524925237097393832963956557073295095715997920784796409071949292658014118056809507531706876447372870738404723991832145882360754527641743371727135015331325441757298238302669359238865963608084751822480185528882082956021884273912642322000146556775409975803815499629968409553443266078926050401724788686275299217012283925954792045446570568316301104460947485529179406283130821990342421468476046788957567618552249720495062639849680477101208267912223774451674476815098286097716035036927993130077294218716074538519528763958761033891681728356175300979604472381015022444061611178390483497100733182965443874227229307216824156993522675938692521536733569624112763347952827910857181503977659514195118121758622890394985494166017490301350073334169129816021631778831590410990623087369492581958025080132240329330992800387662144472091052176807336316807204089635495293681497410020424521317637391172309422173214691993451775754326719334518180492767116245175467960696042780067204669653451999871484904829570045785323867156633102434409363212076558051567472422729384594654576329265666647745736849919785199782702410250335008748972235880661638573941601043342603320676635921184557028899067948681346416596325195327138164922924562591382084685513755947982882660979444688031930985438693923096126886073070226933101272918558789166447423588492173616008382417371579658354920463667714293247575266372290852068985816432852253369364499746780069443304187088664964406027431407001936956133296233661079468062540021529747287327644229415427089646418432056867773790935452593351351961987021359255276050968948150609745996580549833744953645539064278857943505944985357125091600028106300447945319348017633968506318745007306114025173619334772795868537191400965961567782793696232519314472038978959296863517652879516628470153805090330497154599255985168265600841008258616122741255547482053007160572386634535070130333325671363651112336104344599383877665402358603849695895109035347906494078910532381756010253748565594311448398748666308282740344749198596737863492815798865091217746763803963125887468309254751154497267950100067437184755412786373709489541227503682317942219600230193883621008990325744040213850441567132072038014131444588596921404888362477296534259139374358016035530090817898182096578735775277571007248495818808027467419907972240148597398934290364929812777137557660837464230505165659073998776734334861920705968895609806447172363948892748237642327558182964263657255985202262396517919169945171995533758644991815141267892328612405211559917812821207971737746917618845765624720936041720191987706186309304313122301091069518778176236997537014414395001961357631431603677838714603721755638675416776948710015198230427779930050612215948003084430471275797932717124382173646366515869721632955561296322764867025889632305026382873087219524528034898415463090352790373791794359801772361503246653588850290357729962250868573003938733248512315661255827248959608032572031994377733654522572904150443063237470240427906711274951666796037397815212258992585573241017301567344250919172136911745804858117058829148123533867291152365388197427940288354102673800986075172071677109373696692400020653835429218588229625919241626173682530754349766592522708145861460416572716113006677006949255972949216517184892036821717553602799663779934225617618038337656929999632355581134865530654914892209697252188288163394322811704711779333360684817968814247139952590119330559674804749620683963177227998903720655355564894014145308648379373523874400878161226899340976134957206024526160051774788150365781301268932201992177163212075965992472174895788939455069026347942688800957624789330196617251769431222112452427816857882792688711743545941248453011025815191092010479032028523153095501995604876711787331986472196072526696661010908264738150288148362485392784379676771767576599837565470830008194688307218592134875287651064564097833210079500771960369406484785775853384145908509986932354237268357866998113268465703546290046781933222948105039416089349833176758403215494242856152067607140337117246966255118326179829771622328168685413933716102728757813079941467774383478152452786890758637508401575827382388895133494184618008808661368616133470488818776092843357543873980175968330064496894639193601653031079973093102157429830076773771449248113065091037162864582820285512317531855222023799678843482521860362106589774374864525498768094288237577985551448326563063504768633930717698223599200739916668377167103571301456131737735349493493484488757484350951843910845242949736612988032358380319342192540734255435802598539534005119701456263263925331574440775171425649905527362784867376969718741920608036827100155383725701786888533881491076366886825958994050697314966124383764460954847024534678165953385030109739540607311713672715214775403816744328909198167588903652234497572224281625809074665954634804996673907168954788294412876197623925912098962574716391069908431622600656427845813952788326477239732896586059554658426401108774865284426367980707478779650176915774515641967702898198583517338688412891937725154128818274159097148013094238486823490099415035260734016454643903468580520522090760010658310954889750841530106032363678812955160963420915718102791544300633431911406813034236826028111308873666810077689873011847953654910701139992735638848954827195852313468187162475452558771817359707017788042937148856124436610044277926813365147697322268440320683916641392768595976056869860392116319744757591419420067339839056582901633235749649529586764518372284702456111596652561154028734872255494498847975892689341059124308859566270698115754504302369138789129942681249664557739325535071752282809415978370880758756082162837217223482090466896056870739780912567526986918377797796182690793371220025443892843861816685013878318945884475017555702845703480544757097335704878858772021099616540989240932261337901734178279977473524314893058996073151329797516324981196588491015905052532940342280719090515533116700968844989312645447416138357237377708059416214678997953522100813901650137933281114509650410667068406534899417076648715720916885701344171225382715085098767344771155205008415479300535916772679723233451872391344383609026781148830927569497176773898603766151189542006368709983338835631788831836911571545504928069005910230904074980003903031817304998077658453103019589710091124767356843164373975663652803617009069220517138350438941074162995857892041043741955314372806145690231020963448131361776978745575669375057801836800097938239859455611871726127668546655323707460344126193943626427664976165915391375145851626334870862239480507365005434150304825270984165423990720390927914112906994151296294229356807360062045037037794815893120113496854913424088531919904508852045509350434796141459401601194565664186308105677094053351861446741132424838582631663971305280972877873382582426931608775276478615332035982143833767272460622765997468836175250800482138985597618257844971307534518810388404245557992281700674143602446896982029029183172251923600628728477673697000741525328804646697807324571694649561004632223727097504106999946582830886694512737505230568707328539652538679453198678463532884994315706717476824617445681984474234280823948191433663747364532481760847426964440720011378395370314146040893370848935739807173875750731866598202901020659151846610181339002053055036529951974210240634569296142882278945446768626413118154478452744204743902497042670429387794339887872905746000787674077506314470422575126506794108428034621199360529025044287166658103937613763792399918037294577081977917037153912210258970600775757745624011384512522682762312257942758697461882686021339298587260266796485552638533434925063082661401142728940297299955084452785345762718771135293525518139427598574003277054247916005071034471284251025614182795327902512028664772752066690035402083837770492546747581389431723464297342213009218007037694154302023883031572303354702720445105529336128274269972971795690046957369164502885264167516106444339430496594904435962100740787552814861145820208512978092555328442893062436270380866050978749335688212743735876187348357775532031498666483274918364487059510346138067112085662191545266508229685683013280449122466454636676025946565844053388806040926510881719444744319694649184924162677440338967824232205591434524377504005992806842522344837070003463039966756340101771811511144648410560101281754799001041936160741974633628130184371311741328074186594877288595449066022329879809057874172414472283395343818832986150177418935002429810242817470766622777589965988974691485007919583180607739341928314850577417437808828749794846611205416056520362378411830310014582397717373025553283941331681803697940542418078057059341987039607272057631111204626442482257865609408427594387994446817057292445955432575329286659400770584045628677499954161758785556304266386199140530856325864019822114746669305553904116594520606679190289654591438362093956555327712647368964842525151338044895274762562676764198487952721004338862419036759053582482298694239115184192816477546463414315331145827131016743786815912519146359028550600277242254910766437313858588776979070705504736527625022171340308010875519967726333209815470185601498128294233258442319967288561875200590415259760450651249496256261817225463923928442212657094135505513763519424069594285478952356672983240762722970556561359034448077484723971771690939311933730146583900665544004195616370169974464926074351685582184540464106055025974375575662108897764132854152164305963742286081597516271145170678776859471450135553803868585074535371038016956126441453005030101194020254608518054864121177950412003089265277767172205050827388040415829851244301798104223137159959759072414131103039080133319728492018244837259726828634618630657493805884160158160005475055548434024746072459885670401619925037042064330551997631763649810017325867119163236567720368493741215423535057446054107896343446540121640614311170449115650799005732187692338299077070743642138119995227876379506552194047456918629811840320680598783294358577321233453247881967263250684692687129248214513526969916336092608908216561283357583268326904916133033517216299922560463930763245960897717087885354755603211501773333750409672251530900032735165533565415595854385582532442291934279243957024128723569559580046160835236655983150418100180683413822027752615957538094011824539729015825254364075151615473630932220002342831184294886185172958398778473494506005027503086076971711369503110491283043484761346226184651712640518037509204023614298024341385437009061485549723644203242200061665970453084009802429818415595320598942295743494239528375214219589465584045615727637415191790237293716416937663376445824804063661930065630970379420426178099610453941822291539083643782960416324095118759561926572881306033193526095129972427017273193233531201097433264135057628014858713147381329440388561711413543567813706794607774035525988078556688376085462536246173411448431150370270344386794607248838922667522649543719795060172020982651360383050448385764471985037816699699922905824114509612947231960672290765488159472747970471228153075582479560260803051372945353784207984909672881791306888471784600658265432863169964742985494740875207250874362504225067342411296720284619184612793212979685099642053481885712688725846287448136002064500455722977515621015116439100862867143278359781416802996882205909998859965998420012994130967528776699711947580887672177028982396282576188704610211168827707588528779457698605518962654831777603659145124137717965837850679563949838303126783247763015948326530940234272999240039841373713238181882884786462443080193729830371285707071685587538613290126098158986644631565641992019550851637283872621187701213890795068035046879281815537903308688891495519952784382993435043023966979453271232643893235212993204888037413462094828043468641578777565095300514732554391955931396810225088243246343066087863592993811277693189367372193200954504674956588093525779677457834731440171282332299438080929135409533945638712645669593409276792576242483557114267101727205931351725669947209897546325870213405476675517873571000109653901612644687511148673410256773999312633039490028993415778977644283502453913254787024845158833321168480569691314672331650701942978996077469301553744857968957402546133875774604033343903788725322588262976797769369348352706039973912505242051266599870686473905033348193333400645270800953803017929571055075574727476834396220357659221836526327301801367521158882070208498487313098001536030631339427848105335641582314400636311520544006294090843126026729659991882890117750587794356649445356146980886885387315027245944436330734300701662769793119052669121314962003513841851214072648831900613575029407236925534257234386682324681232754627034386672437293810706814229402366964873942710066466768828677908025561458054731781216371455073298063399514277395479691393519917143444502479989284030061093136972634670747110082000574113876416498850398679965243332905260226592533948982016750237356697183804160902266500069520737956509644066444920342110137105896458058374439103070869076688978235211843962697157329261981359796206694333362946466161208386324635438652062529892182815834286379405389490519623076860916903888848201985011109313128849899033448773245835227156570160239380650961367500589688353042204840621757147097106846446694614265554537690774364318682919887123109764029114999160930575765904681155929915891652709068916310369192776747305496553587274528950550297563237276269502710225966756848735196276233774914711091931758343112771859402282210438571382511405513114108649001410507492480921613461050617475135242259054219367687695870717651977394142321621752816514015608304686091073457399888980468032708188409737837614795174609063967153926316989399636117840960470219017177839834831441952724517645179703391991603916842913425698183676524296103806655951702462823945037973869483262773693969178447173189034531185390262998739007294534102042338241586805721269225309989608421615404142490308482368233337588845315394145904929377588489323632817757186504417863616929809751059976256947981986244903279037529086877438573954089608492237278465901671376526978403765916882126103035754018010890368640980936533265883003698990961351975316448356618307762882739226704843603092623887148868661559416257786660772355344821283977890044630363489577800753557864140279415557681528089207270319616188954505908391575441842190861880176560518324936089393364961386365242538876117974674050097374936999556884202339339740489102712661776361709642340183259885366128773567474870064850209696056072612988085892872707105947124468728471276637959185407340155239044507175994668932185220066389332017554533267673344321483847499835254289065875016338470890331149441469964667371347224186567592302477389699038550823779628590794726126173391180592722955190824987476258209686004589774906884550950291362498093959830737545124893250744844372272436927372071096676657521795389058347865948985970893455671649328371549786117903346114305924286786363419351247610773973660536868719065057238036947353717123056008774821369361039567334439223499962369202990475975038749414920281858608653553403955555759856162149630866881716904552161697841502454867098141837682012187384139106593464512050500189485813964484856680081424228839982838152229679386932440178196250578095759862808746778178933562734378865439113387139912521053201565218937646732168628520553516217203405392706620354215030367170704657373426393919605669287191713291936516111550001487611606942133175570548946545033266498473073911263647704487628451599461791206203305617755545469972110148777761411218774712449337374561327867826044831949156834486853014791149107842168174220489720600897361970754484366224234949451062481058881810612725507803627996055213148531628297670247176512306137890945692294810932295785934472617405474749011645808828135094547221629644309374746378042059832475077895776293817829426487297729023738719243161600919082562056021521740155406021270557497872786305777048311695915352033351679032098652150808037338462353374062588446050798212090107599031445194898114577508229848465468893772102345691080487637129608581561255518548985172651240156132918274841893076751241291536740867887796761484372770243911156157552442776951213195997926200275792817480421128114380399344062823871675017338596396691876583228418894364508497992399196796236171849736568735610255703745683174002353318264768811636844278141466304156339841053234083232007009150558957510352059190715893160005055862830961846705290641107527968668262276780912750592475652184829920653002791626634504943804568996518853545950766270791733568673837310553083620441473919926570745996530963018382325887101111103101929543674006428614839510940430891476892343262001403950160038438793956573477659431167333831121659666978409707820847778291217627095474943323086289647773080572412461744923561858928922977539045119769880462845765532907199411788470210332964654985263636823184425068112600473584627938239013887836484770958164729772901171592893883254095745218180837546049330608957337352362770436950278042015681688466364903733265009786127737709855029794203867891372089786151361090862690933084027749528406607471703160261967417711005668488668613204723598691677445057890984670828380911696510870810094415761210272794594563903449458501146317883194110498469819952379711655114235600604072818152435833562331024951725202089105442243354892014678592699538484833621953604851302486129216567117095102974700441150749316523481118587601514745460344183417462183503537155333218436685201108357062981136908056131649685684539507351522636638394934979861989441284908326791787548658968338325663224035092920148295091265003545443789203339433355306454802327871794372232570014220489469099795261520017188982571892268547998771169851754608829468273156499841326597181357416575196355169426439624758260334571574422947378219518206474041643151839151410454969778366547676262193654980432069828125910724976312667904183679368756745334694835906702377653193582059686181506830313274836584580062239938715467215638499007581144305432668405568201187026988875027179500830997386596370169485369556577725802319378024609978334617610556066671928731017784924899300209524870152867131996021753314980750031036594067130516121598176873000251976786711178575431466132065575229540899702418355523858448042937887319508365204666822399355978039471406837413526520229237626155040112458741162229384993908684372107251476516875467573571313837899018192538670095535909477663887650655800124575873028541994554614814092899696364252810267645721963027838618673671001780368903919677200544857033560739554093680847272049431722010197863206599088820078744743951590141210385793888167577209991881768370352125457033380583907475578598574148590648769347731457217090781364791253138382204242701211377361967000145759795518850308107760190256679957319017670032153159920593327511775067481865439129955450187804807931089131375119820301921344063287219302551903582270297368560295881332886144371670760941305389524087786868709420048951428724611061473114699218569736800153195462411399417393218607615460511444285567278552201319777984224078550141287209313642160917187233277605935653963812921394790808593473771393202305441418442377313419220984935419634311941288724054426005323562706841854914512633421537290467421859230994386275057249621021309085054344349672549583164019028937561749270466337673041292920057911234322500839568104651453931137391245781713072722711925253360139954242650828479673582707646306716169527903244787371232832180649493851340730843885745297347512079551301758542250548587726383283106297845440435015405931631879072867677542816515594754560117610004049483179446875577675153405680713552527534378063321692929619707181928013797873551950841792270538322066491226857701663108340752184138239197480142160829790673190010401668695129580342093573699074126869140332517215781977278479099578880863853486563359970199211570191417323397203040447353478273259066995742233397967043336318045797074843678421954420634235672120258714889920607325845629960054964844475305094600733221621138114146005588591853324373324416512743102457738426929358528254168420062603515133132183591871605306262597222139434313245870744119628732800635342565543158016758991858501834921848812390794418303364385027331586187791704334118035987471374341135450820026151302484390533643269572167907084614285050694498667464741442001946419842245770388561297511119005027773560739353282254148849372121448459480177050085048749896451304745867427138250391798722604402269031259117134754616939725164361432033371456814030730989587254352649259368106767873917074090027633092521991864171921494553427335163838138123528939279478211661051859172190140103667009312643736121376395953567901305730556942655991197476544804690362724647540829911264457310655546418932989407887390463720976711805791822942341758757717104102427269843357732139981027310566762566763432923942491727825700146939047104738391392680910437392824486364968445673946460656781437649911321468571846268591501099607117240237395948353756228479333148579594390980071687620750027519431607717752990463592683217420733305784720244036000939679293300321464337768781589380678613426485369120392442007844843310947257535933950211571246044232797481623098365433935733741332013341610435180746217113589605233962007054728050930293447996287517403372654975540601649513605819034220014375220218024767840340076368143183995790235701695063215788409905272511655382177533723639761515719910038535866075774849644863577229607160943831497441850365553987969680111662657368656929668078370852498515388650659996716402605149614888193726999098710214960074941872369658013631206548948723544789846644840624091012013742021715361826841564111014358354231595732693012644365723083266491362727585210765620113761058429541769274798458531170052660176675209592816697168987318608031341044340759219499800231647362671092120662055413867416524242872418523819806340855432718743889126412872469395228274624488532408432163816008840490799252782032616824069459888353899417253377292869757936615134679036377866228911416644806128441206535502275763963904165007480137062343184074791204643656666631537247389618510023079381201523993234669667753714450460839962951870346785997134668593304953155412308971125101626847066234737043953922331628601276355014144465120972579485483449081565816066209591921474557872208958809329967177104161798212184985478965847141645035940608177090650565432187617985307842817409573274659224115395260646995126999399796867627878427567164706730203053841334495334445280076119275319518923393782479234625102240834982482753340563967870619014847364217870789090613262374036860936731576424554455872392202258999457333731527121108347521418650718202551101794106956790412232993000636244997463686970502815377859263462924195818144398520091932740298953505405660141823647074974036798163595069466701671093790642456496201466083453497152547044700355274855716422495645105866700069084404826300731020286613142481328883217683559964638260595839881408181400871485803439141239866301981931249835267130654099924105774402609403614844121203734227042016518995859631189743458263391228119125548071306071809188678361609641372404967881487811764754019641877993272728915551038770125579794832872637919340255122374446820798578270170764991555179646487354425824525680816700083506794331908469834528140386748165680568870432850916564926701480210033426709999252287310354154317418397799653612333154098681594894764330378016563164067638720643891045725350573897823139535317853063786070928195651548614919143344841685606645986150125290742184924483321266358774227814882519710640729882738137702935493415669596677168270852829182357965264797928420551818334986130750837643427211414385090803087404468569155426065930874254153148310124938491178630301472719667295402197991057725268682686156156847254300212960752554777513123451749278363101743014468237256608329628434345574386617525683849711476022040895571001301293893747969680042137341859981530985830313847746409121340773673548218261731643718247879382788692465320694448539359903687699640816388627990682376025173909709848609705534680026049691403284519810080142894882665586413582262896349997678758572995120798481831471984727152810083970579584226444201079618352029125331760218522192557497748730327350838042771539830950321253571109408682868238715827973495643374881077065167345952456268872183185926759440559163382390458908236187975534423642769403873833911782120681784797088071905998452965272275754720102986425178698416800387397969667848068230848204349494665764046443455753729573509235822648185482583139921977411351537470915393362942484448724827767658205922711204532518560454860040147123454903125808235335334150564066874883036374958318176682545744211535366560326901404588338325553496541516594468024339944885269421101804171478713839476523602827894763249485747727267483657230427802870009872817667291823230957460693389419267108795925826658938636173982122903066131913263409873919784319884512496984271099338201698910362857815615604631035238994646216733796453295176801980253638095181560365319242647241700114144103218714106482209629202352050283004223100188671971931717863953961465901973610189267137786664636150333047062674736303504198437017283758039132010711426387283865732094585459365836281155196220534120175698325805449153393869499806362081593660751361240894885411470557189199425520591492269936482700395197822759954341760037903465894029574438786369310331111255239519569051240180025330523246676227217434641506851586342892556993943962395057923886075732197298568566826042483602538780875488007707494823418101717548905334400611876189738298776585266420905965876046879584181817029743189772296312468901399885196279804437022883014219473036895142928072676106935084348506345483861235581022862349374187111415323422928451456895773129546679272497576669930971290528117938438722399020788911718919441824723483052478912475029021256783867371537214370095269468731070965959598098025940145628670805096572499681072350398204263026183291135436064089693897195594403617084656983429317758071039950062361159240524885030949555508947852649338431139695385696137520332671014183134358771551927811312088179083615726952394096505239651916528638642528775277173193177549300885222523351015080794170784030147167645668236422004601440865786827118940073284468014409107773063151898154655712202467822173914049448436625054366204326276170947252502865328791411681482910860661652521533207273530977200161215649302968292243383890153595526913645854468354764992702878022263661969984953172435613884197780783151010455361627360791967223187362129165010591645427715155005812000907656817784088635331482378844157886385698841586038700584802751453908931175346078204142516643295786706542762236021879615644215875967479292187295302636335513452694734249968339872405369931905423796845506479101806283714404556807548744451884318752319396251160973915924397858532846032434418945146112072836632166024181207248580043606699235251774674075720126877809872001449486159659930025586114583069769888663013643314859319768260332791573916300073985158659368870748802673879761039976935250487512956281462532163158577885119954273962220914766124941398568906474682389139911941611975973578169887189627176844306643376169418379664684068030022262159201478679419754639364174879578971613852678573487096952037063513599059621087386348426098452504841825933251132641555251385077145349128290583731425116452657913525734076823074933253860495024284416292465473078140634333776731637179914499750247257835894337864428999013754939801758309685153863641162677717109371283025250299486045482637310909356217674527401639941931438559920029064228033504407250217296995571997547810324983708638251879341709746608382051728534363815359674231985010210656490459398064699010128071783905108272611246065736398083344849352297962032184601253069129483467827147710606916439483480275780029811380287133210355346353053364525560108320877483350219096205276740669469110090871984201707619138906011961545382407982370867309461122888171703343323321781563022703123027310362232811282799509909508725287198216850041485461561251619202940017859942556754736289217667980685959405561211934947567535056117640853775634937043938124456192019301243818932588727062705292701643258808025608595768946253583895220071019994629588280027802291189621326473052156462433304031670599080864863239841063501988716339640323393318400024737415417661542558926664373440130369719401791392976649124752517080854221106502712565588283129251864300288222298245624351776842123668841495651960446279041346869803042382287779442059146285931834948865969099854759962435589766573212075173402267428577542752298013505527827942222364260284376881568960508493107352811576089838494303391283868703532435462737330879706463898814413092523594612630889544503414249963929052287297356023619663754640919453860606998478974581390990503108482918860514978253284765051168005255497027761982119582903062622149315135395707510220118529531837250872527643258913422767602669458341166333794363575321982148299611510006893873948638191989882220318310309618846570499244469226067372067625814730444584959605272520914487716047348553881321872124483718752294767798050819058703899305671220025688178879291118246933862738930221995570395948404837785294154065045157133438084005290083832679268329775619512474059357988163212739698248596650406364482756512695514453587570741021850290176185333162168000605081923419992700030528895550593816620343436999595874311622404630194016837756906391682774874879693115460980281641379092022479375174675130284602364218757618110314941184884649148449677913908746096499350696736976998750088228892711315639085346886491141630116576102264176499457933474072893259971484722196792258913650640263437802181287242909897234095429173610220671008362329599379476565998059951976633401618043080429889330599677738959854802154041688731035148947211548232850326468842387005617417840989034991621258415706466260340342232651469511021528022922191248211834474673217817867087407582802410096662047958023167536349273313750376617803642997466317063454274951540873214473072964222546968126630433034889783943063841322795056156947097977874560581143990448605983444056781839772962011345662563241020042107028436065344358417770261701952355322329918797151744953608532909340423382362882473867837267796993185902782766626887764956654877288587320631649813688551147396654957295813210311184982249844241944323232059863682477732690954766162230659346238070553996439452143533580748346140167988391280335316189236405848986187170806016576950546552836781431093135224595413439192839567666368543115732716233098696563284974808023530875185967499076825581214027128102299799904323885912210413357628566534859714080834400669177496427315302941775486473363550244515674989715304636217260572008529862695946379058329399324672768250481680660702067262093621379313161865877338704674181158300027135096420735622599395098013561937867574425561497894953792949405267577085985656164989596456115281777607975426604195564254500981264145908619599165283989793570017480965767021457789404168051993470045396680516478950332765424544575090788247527548806534521247101155109447714028577124482337772898060594327336055694597089364078955103044241899826382169956488843055839479201223331607606265464691610827040200782705776370013170996196956753335768013257738052236359714414730859457409063381312276530368523203461118171651726600737036695019261254494161341537945814233255624352207538321432703063864743312276284819166168982195126113645314306511354409210754558872631896337700601118266601305911235454381263808358233381471668557254355546892217140659070671441328892041179908560288988663598523533776997689442606229427082896429304564638877802018910204698698774927164403326908351942761983924622734453276734036430051619934200543048459257505633149332326560559450024733412842455298758389502536061379811765135715500931969661535975023669335026371484154529645347335237313116282194541312679986969494340712482521897353950255769900182026018318079682725674203238534848576788178395222358300268264755460551580328632873341388676282053360435736073814235077450859063830281291088220175179945015468914779835512109830211752775134717399667669989883535750460939735043385974589590551890577412729200290789991851930922969098299631362099248360174527850705493872064419707164034288285869427786138426519769247047083841501966480451632407883142833605161995402872805871677479843463520954995345233056505746271177116172699042526795333678565211577024974817485616806057913523133890044744149389874365336723001729563731133610286329913518251062636680793156310793999925192118045789524608821042883086751172893927734922072289019559185314466398618587124423352463599698213122587500454967790343404734323706110794170599819413223826858079655062440517137439613061942545640799503362344536336877996663873661382278865901025230885576364656058081837107548210390734543839668635300572049651919802243583350146111439765320551026605240553148852586937908460517109977227615460303823273933437706440975180193204237877632418335033423911140129125704330712089587483326634341461121330115461492164011346359929656728251704299164638369403589667125013552336633641694189705661526906465730041801226312671334042206715688309512232537945603102274073350483254369354141013514483362183489814871115877892684357076501208573723180576015737375310389064641941221915240733473986799757740448393678960837298272990956995340046365454941595911826791122043223917131126007022321552845858645492664208425159807674894242393713023757988609721418518682772718459254943061207224321144940926994624660774964210863503821771938499437347849731736503130182318939828954772099002508442600310292204846476355723583904208249061706398215660257760049726315473305562231508259988017624206378050806948936895511238002825554219153608956507538406365175065953627063310626248961581049760766121925613806338288371100888051825768401208510553341747734787852163328363388496007265575227953379132471342197042890548753966830057131226456358013500157263045118197784963527394097393451627442095457333410020670123538731500135475755094152145626226784564132158126855044278974402909519987136976313112385869497226289992316915515588779744405174337503976808973697228694693855198530904235877234246912003149992383849880964188460119506185186697202316746347081943071662987003912293870373902299070717260454679989312807824929386681581516546642369040815835928257600134109822333111651039087680317391737842919977839227924809198554592246736367896060771086439503452864321666673883805692506236638193709270441633232774937391233034765439904144436438511858227035808269233983411665530057288244548840765229231066153870447508190513543122255406385387613715723732831771053515310978029860960766800457991446315115948794202859094302273161674612095776979716334336832722430710991527125485113162558024580693016115720338810872966363106481315658885111286628972219985304361582618333642109165046147007461030436296709321382948381003838177088785308265453870585184374752122113301681388431275654959700978912697909667340470083913969500904973858859927187614745847056097620842939419587026321363053512304207648499789847556905321906282455365903692457606541157056689318019858274258536258352279527097381613449628616869031415665549997443621273929875258017650446307598625134725199836682322323515068623437830370051118268488354825485023844565729938375471722263156492926050957313286071849424108703366602281555563185366987748266503601658471154972060133800622733652349143109078998032614690729764027563438942253973898243057694579521104858022565810072624402064444412998035362888598242778465743689844157257404068588115520660354984110977887191568351919829702499119435643532984174760052497474616143099155759381880387959955418052466110477995956442285847622156535096603365260922783909383080221534968429075533537651491291101286170658950581429775398005237288678075965109170721771686964261922042500080887885904743857054247178030917449062164803985536391403042876076819992411119524222358332814119211128440468288409784111130659375559031607463049913050725075668220147269391261733695377959968719628973416380206604676839726039503501446553579930092794772414461642143648873416920555686995638043447016702088339599238421588154644695409884294712914289364984729148082683107358108218731015959439209683399843142355196656914481872392723352434089786772949634511292510156242565693678441825998718855937066649412182819856002532386237503363626422649108391417554305290569162652091099129668314698429268324876249465729420596322037873802451503545263094430760054553736748140114802881001897381943949232967526245428776667381751262943582693929860102190835030803645380712645218713250138004759419519412867661755514506163612358026747648131591183757442210505909977020910503392244610260197636773718631400406786111713942702831547596110589914117182942312416558383364016497004329195643449678412523885300334131309494526135748524936389104045877031592559315829082133836492520188039290900960440830473107420888539526348642147122390272738029563379010580562441824587987281440501735888694344124564957465249010494590098804823711235448412237554680369389868719636329010771327247220639235602765810231075013876333325433678120662525770993741148761292153762834891083121480383720551864966846189178463437663831137543354398030308116403158500213515465488372525964114192698446500108294172156375300649072522109812735908553861126480598664650301969022966733202033223512355194584600525385519758259955105992475443994655175433081731787393459847017238334683578524673529809506548756537496928622452953454237373745215076192145568231291147212153143185219904970747874974937457546564466552868212790606643795552306954044988288810499612838621054108253823369146802851748224014219900448622759797029326278172051112590501961986277486078537024868699396797642661377755803671706273238521109546026451797207296531441599078523803595039507197483336904909943804197629839544440141729359661556647081887264831350620633297947246020509340913168797078834338499966506708070753760761793645948290507229994368427845492689254185293284757844989106609145147624899964306284015990693865456161950097129385441509732734378051148827649540396288771416009296333308151492099638247863600006391170785499719444084691296954462351875460778498952110388393146903232548164778984928601493325086145897641168340560838517342304389355552453212372018268135453254713430047862562247710755112812247313439631596360612536214831048308578038210506364018128967480175677456959892355337328905933005809206401683539740099704038470929080771574829034438414243580732862799233697448777968424295474158045701804073177869533476990533851443256745086535364244487353047428144373034532999845532145729350289242189539117018079623105059912402418472551345276193709440888429716993527569526987843681139735858980007197422400500633604648792155887692529692861945155631595641296615297121239647416954604661497429916279616150821473272508424656877631128815509887683516404792220571114423534554675625939206892997875267507310715773245455866164844249916432693271545256611537291206920515057852608011511034348771849231065971224237129838200798166349654667884315468945846470778709747676953234835931686625682686217661138407424560953501146497132904224827492672935375135899861906378969824247751084211993659196727869960749418965866993334401644984775176164323313395664083513260917732894893293814380541011017360262799140394842772574982432464348106638515034825612811782772117511549276735149524800025228853823959551843637741757856479564438591734770792726692282718532070468587012918675347379558498276958149612873739001018875026122856558534892443270871733421579692909597925457925011551614134610677753695431404465520779832216898535182358995450468327671237078230422117554305647628954038958590376926620985780450340834383318938200396511190774850107112025905644010278098007082388045625350949176380526842725698806185324324064445567615396360049452362726866526567949990827091428135141157540895064570993836569107383987028858186256049407743598141427999945200822902724743106274765032613924446433824464854171361586317216067781965735460934764748397857020339401735604132923766597156527646132665915909987890728864500918356535671813014103985894950060728319095152657958613556321883338920567736274392788929505355429194945427094433243097470126000155092921276940322624682059352230045188512047761014863390267965976483942836484846595873849426865496930376806953686140542888388330665958259874169592391027727843374082793768905092162277928299249940138834674618721792627059142580424031797327530289160558322347190501432890980425204596724509108012050619622771535097109912091162706002291851683105516098457936278884800916443593421528594927565034705644397465336570432131248984239719842161523691587801911768897225293897022529573908009305886315878196354617840212834544586959038638336221174747172496207111528476628594154768320973236200348635676352309791859966401504287705346257415618832798878303149044477726783922341277939547741914589913077035875757497290812887944716778312618949033334861036116487588506705608896748830903454012868090775837171849243023921867441938662303447393597146150649523303761943028331661088351374404297738234077066364110043206831331876277585943292386341136734172865809371192432673314237096804529116019650200577772834008596425769082843969284860229674651166213460268723627548916141944738525113374933588086280261249685691878320234666895881257697196687511056315440207949154667054959515124178439504083412236304078693150277599265200111111204235140065769951654731175070530700030172931806692668216441126442914150126345155825666677774678112229915128313435446536370333377707698470539041436130988822513993035259272761178006147937677943597594926586557119192438053771355962390614967416644364363978400871104213820775591683406222927130031194376946996003094723057410243979676711526543356807288900946544946046347438862565369963591563785907936745143697708463365651522910348715950892689029317265801585233815707792406614496680572503355343705779263139513948035916281947562409174754889015393561745380299277565660886609086384768400628121740704255527362434135804286735677213299585644045806500198860484918436623360148471806130390559769951309502208142874069700778502101000087834972204683135692191284126587213000289311127388242645770325475810449633910452570474999442211946293519731900660349687628651333988706773654507838625539000785953775140147255985158025654505043396967917133253176772374858895539621990990849921658800159507471239162979501556779933509549019208304509042064056216536734566365108871121170616864274748442792270449316990996829845635569142520661142859735526851111583994596170661593414516269181920182743550001115594008835193745430729575404353611826082384604652655820490025873652538434870093596330492632134090802251395198912273358146057805012158576085236494797031884656809711078998170027653306945168082092681143846090826822156538848993291083035784801880496569938606103768999478628437917256292925119611134342521641246048435962069346680996335721781091158788046096895781836840254037101180699277663246681482846940285710760122296367963556753594179526990230556841630656912402616116502874257597343977681196932195431982154783715506617995651215716147240964038105044176610300188327324128735478022727676766185861302671802096585197359891853452061322956870016193529242906699449267712942161182086929408593553646500845558537147504385545744166817162397287093551110724385680341305302988467642704141390200825323190992218149075087825991003950509165931152576917840416409835417311564530015383220964265813951510332919678447457357049829623964869868982371919337235401698000005196903398517022311322925198268124123233759547574575104173662999493704081540845761159970395660564890203862846709625564750864754240760987392593583157588156333566790254407196762116894142968154505259179578638032396834272224822074762807578476985498305120454982361866554250206189555361947968639777123975152918416939173567939453650030772894134572489146602955232539806087569949078191982326183537709698242189836999725153515776270751950709913681733771386391423913863984971610405904895729772110520692684851751964049090747758955408220208516255955538103889849165848310841980217173597126253300496497047981608380204873332171636541085548375675976858511816060723577042218556969360131614793992613362596790960495672587597700101158299160347298567675334336375074357061900717148443904560825894019097552759566852583481195416013375200240188724062329886873470626914638531237566097355522745850250964581449555138113770599228019601787569619459603237122148287253848882261530856585219760181449193809815057511571830364425856817547954760490867817619348680076371655997062044359396811640367246162565377568057694019322950274658920497365038620967840245926998365625517838079034713905979592552102029063757391638974578920134803350868058287426817164168541747928435832184754625476018327093192908214231535118995478388471576716737568190515675451280873399061694127791951623685769008416206660137922595524685231898616620063518750685557265267731931291820025979237194446027582122306884770084754091204294556130620704347749814346564690235213378895087033256514015070105878482208862712952812490131654869896832915671164535806416454799649033664063750486875239367970944629848030210641927980768831782371683105475047245351510116301961533297711500359492813659591377016849648667282306920451260707612479472840202736837485193144425043503534925435441057266226561181412138300317599846321304506493238998851371326775513929959409511813118669498721271193571838205125859497352706107608220317151074752505281861435543222087612416340829362136712775031361505114974359983542275467700847956012973391507533135416312140414854320889072360320652128971079931974099387621103031510936868191744229507384122528303064847985124451789419508592460980331702797989488658406388960706674160165365638406258442377465899879184189084347282432338493183997113384194291583506213725180328405882142538617735806830214258433262881532405266865776272543907536605539075750266369016243200519031629970293210179527715693462477400542359782055019207221655382728291278609396516000281587784112382331472827545759240214385091751298651378732394960763332257851410532195919799733340237667558940963463170435565428880547675637696908245915675418573552996289728066437571096050474018604389409979328209671273542257904910203374956013177344340497809063472212948564186190743929601288250518893365737492681885792330973389670937065567904788406111369958096109070539204463433660892102201814798984755827102591076502103251089916158134219342984285028375564236476013826543421560808717656100598205304603296445465123870524710106850919146187471748842663724222114081780303571133966572494003575506468257202457882664481926140851213761012842765549787573338192552920500455194821167547281775058977263570099305580100597306797628812305029659961119449821885870876965250569067500472080476398725828840804068830913596204797396665077126412175906821654520593512395941258159938593975180562229229503794471766328089911123455876651410614959560672077343157862728115673029429128471813938970789136196344024996348204137167290865195892482649486281244986309156623571818424139788705562888876994847397080859075986081813348347852563823969780766291593913147845233109931015319541395987123757688802415789396384107895279105469794650744722744400528357971399939804830836343574243233421288964728959490497910065413159424742515516691968579731568465160286919567175137901857981275406034410493074467206089350179762565731091825037829342619538792081233860639873977431448747841166268442008360348257162551777534804375908923368204879016851314394745734687452466476350094717531414300363055416892897134986915403026462403935494827125003241826077364284166579236274295215203064563720907279797436186203872180029996198303718573384450662783221029990096664089318685067021054217100063724801647504123859247877680038997029831402297509308734441348586586715805579028290269983514013603553936340564761967348896854395714245727542273682710167959233715429684738080376899982710469984406432954444165689766589865964878465403552021048985210594518653025264559393916556574706733700050110643809796858033694353155732359567788505437762125236064563405912571132472438593125652846598596276724178087367657941926601913001581670260463001784653761114694136489004691023105778713057873103203532916713209689385315946059881125313719698876361280184811005379275147059032886010052588796211249794290001885996639092873389300039374085860354680833373889338358764144477908380271119579664253588840007122042859567241122253040416356996621182568644217591460454858684820671734220290730034519818726266340398329687180864395064902498779181239175938597190980203021329295583431801745443399276895816919025961664411854407576381294565593892895867532174335831520401130515168551193721230119542617375399373471310161564371265574360449946436331218408885808509896744994624482932736138697823814545611566244452874832430216354785463287902433118145546029036341204137746104394850723610530990228578689753271909568274969321736439384107447526288897723886717450740300801655683773541844620531966337530462283354540904134474943506287573572933522906102356996088185489184086580075377131223316020568828217755672170092555008004385367110290337917675147179073101841745471226002956973106829170469545585596298136574294900113715522319212543608828590467493726325699436672373860891361097824466058120907833052930968708299630314609127087754938099438333512145728762387979617243993552260139459765680985018161953902480076035984676787795511280993716528301490981770502338824389211497596088562649333064419660044675992318564559740261565422433155259461169741409352411744774482857676094343363899836155654483796243151564458730211166952125575555411389186226036246829027893771139242434061316563117342449197206114247103281504668137359831227245718864681366482984139390232064321196064022381593349829371887274720251643712101778850946702691306282720613434804070198662516060734876792985944032920515404570852439668171318651222612236653280551606239822270797314014773734288512369171252248201791967849007279894899108815268500227221373899968006068400084394304088702711996994798008647196903951508147672628538687457621574181758197582326276958197263616188203365923041172835785430967425607375520370703232597864682395097615486908616285434804010782141805414057277312536188287403854631128798768840014530061614165581901227023598728511717706885056689102748212566132035737113385025586736142994913927905758770577162084165695563243780437934047026100747655480636107337002305483997453768216193144621906403798487129868497497222826774889227117322432436807162727084695429129906030813160208544362413400451869441307337775822591065133071899602970471981079567517605443999712395535891630066418070991166005822657654709528905447323607735951587862054537990667163879573847858279920914802385004106342310989593484513278792247089569967934409279797082440579584522231027648362606795901431921708253938329530030989638983251724135248748899557492510946167552380348103557014860994052207217331587968891900250364376479514470579032180349511095775542794567752041620747739970428536751751430857288418724530181262498426091106130975541665906975732537198659775504042735640932409054655394407524430391218816821904179491204983271394065777612186908436250299838304104186836957312586026501680635431275307263533660749000182696031517732387028365965747091426701174080436113552218098597421623306422935393647441386489549391835109933983711444223606451790532444912964189786851205703891241302947854474547783793597464810189438400081979715106315804212052009851823010435868768380179614009725683375175230671325657464254673795530962467741596599864553073603405079348070238101342034819169601696801637967700255218341464785062937960794613505446686173850905415187149409609744988451749590985942728687789750046703207276902698369893661227680966525238822864083600813986349407071390017777404890986729547859203248251605946725078939913170018146840260373980816485277209763876959403051720134247730657706967573103906710333203766476328019462080276109439560922749313441602029611316883221340063767383292178260645031985294693544658220860229625346165354596856140018154106340166058693068579009430377879444819483345187643241189462402682092713835618145105023323801823580259173864563248726952251710144072439972036899771485993309945380839305929309989710804123283681985188118226095000580964137878358261159560072581499160862341098133193081419685845301250208482494177038202174386270578305705640646064067904643185463381875823545609771958938496484922977533531483430165622371182162604981187892685476500708371347301046395493915706854605462691043728549627290072291169825293945262816468354772386799864417455082714037304726355456114034489677018441076513987558841374698388291931670075786626292307671325225770378325291374236575957223410408549052773596833147095370333007662686142897156482071163353101417144565120727973567701289115029205978269142206204930787267300701923418024870914570218803557417563425309113625705395702104098422932595451785609680088969903097148905665194745931780970230514482998768565982518092540317916464939808488883939195039536339625757390512804928128770543057912394700736995071591447126454263616099170293443270185158022488675165355824454201739781990003201308530239735329042221428899510857530916880039916813875712545024080991427086481229896881074381746470837711498193360277853438713521695693815391250196882436019608977729446917224593738853706398465329885104353073125531743672669703817995167834254814602586866939428933238765680552874937768784248908913031207857589149150966188836877984951238805877670490703525809242326259692763846010971502802734634363229136699365513988117231242789173231019982509752645797136708462318210348793375667943074592067714624049192008751903491955131861984891293019200950411006853158364746173341926079855622493235250906151886838575788166260897651765984747691998631534592316676123254595006088840378091732445213751042147399942696817221638442966524980884014849910327039359252953218959612377174532741054690439989338113624796862505037937461184184459921362844820110103827743453218140908737889168356310560379854042241209103967187916258374927895968759376867183560703071316874111898672553560740021655335738225481193107794123560451992208730838434356242638503241963768672230964884633310508652326744806723686314273349832424143107895847848711920956993763248475329840532445123035290844543479627067033834091923133125108764625550931683042369073878229249624676175107359573167554139793928151051955260598794399666000894061895005751941925956582166845141865152918031478694413463011956216390411027367707802363149949924484758153333354332688488306154538303976674500136448717926161795945464501944221038376312315357652160356015269948386317534256562820077307472227561921840779968688599323331760546224129422702532778113884595307909694610963734280317016005736847569821823030731342402713911029795634609252179409914991595032643344744335700294848916266325623988289172709791777789451542286912005137042318115394721744688668900587708824496591464309126591706575967748437097874302715722225020840472353181373954156722715776238424848629773621718314597301143360101200573345348334559846895254589172830368977454226146633798428801385032922067231047394468717437309368728759248500840934348326135717757029870461590821557776959651264168338808994484195868986530635087388712228482588199126222808731352362112791028026620495206616465182149537583526317654684425846563452534821666497561413381843465301611351579871687678090966925668258945093567154210095044826971939182120020496891641806317857374986693236121738897662782191560772160866138451309300846176615884849048370412249363917170463203524240294088210920625185256059368487108958272573598317491700767130778802944127268963148221991559964107648257649038535111688381043193957689778446904196807527440793842312930096318639913933598969019264869119455965610308917926326217543242037475628221572617491748336937112629884062809653804263436344159786185013354723879862601446196674287963606023406822333053798855110597991224289756514517923569939165274377822279709030407872275781909707470897398518112814196807822217732081537499145350201951836615865815111654514889114366596246248147546325433625456540285758607848925628187960997235592406042959097864228625030662766699351036090517596015691162654526861581187228952764475081551026328522871389148275318136213270218050454806435322510912079097414025895212444855775158470071013462392368671817401822063949380421379657688810865510837221785610373633093208244007653940214626045821125717419158695755623453301193000906643516029106032931315777805433310486315037752328791816428166637003250013423370099582582526761217037006755704728382955513764007994488361328976331446099653656522775963310589889045307195211932489274928775561399415502671477849180947760913136135106139505327838188560370046411158769917449452987968625610333684335883215668811693178489891907404330924594505281428602260695762360451534381018116746453715984759573702045649760770322134336671740204055512616645006977728083527176850085742260868507487766519993630418979402244059868461310496177093442356152655920609500537748886305515962844798225663832254420747196892021956863116411452377592001733061177692847786940070624091354629305822845252345975962409105477277968343109154106466421061638851157407673994167851405690374026207790076922739730175711576096649831539633726862925443501702729665875592399786243030021052189831903120543632060720022398247530430475422269410463559460129799873834492056641316874303106670533349548673530244588558588957901966751426335374358382342548549095350589639847679814525023897439272202862333453586375731296579281357155286791080412344304757855807625312761751728723564556629880744837672856818180441664796370533540653969121561693416957673118454165324422848456424924933740139875036339762604474510822393356601443493117868805142051164174695513336346573471696803874976837613779734757038568042699649288642233415958022266390678547185858994693448280329327250283328309621563409708245726472203298936877303353724982175039089215241334238118036906357552704604349177817464006633982851127019589050145845343543272849552665572521659281609324756474675327169413689802454981288716887824301251450061302425338620751966387234061556620093065809609044444832435364114791314720591575469394767270994875550504586120446759551953325839717428316232347935642572454890229686376257162409805277610665975737246647242700343880500937985358874075748732441338365070719660706120196660953776926996967018731036189052805923226047370210656839105441560420024682505958163793511292171973698068515763298430396599304875049798451777488849375381187268281483307983142623232348853681830885993641016499288830872987178263575872630302909939432847782214994238429545444844585745146940320763061866678106731622811443639907217813229128252618565633394948831184005721559691706840436882600413345502127540563975827698360553526097134830642853959034104199821993088455056149197410768510897973585644721584397955770767388443566032208267600797894998712606930900500889602610096709366730498262393906895561591571366922012962853456895003408334618785733226292477499156515945446547936447158304642181942418006292123564660777396689674249252944677289691758330327391559441975999610932855870893656479243122644026329413436490734755673291998460058127700441620035303059063353831948451741229772536917298232309487295953333982006990173976003948247977007370707574781362617200307154564370703547980967439186184897584636521491711233777663091712525663459555497980281373435434675157424312754100550740951573640251038043655192992539994736233784550980252199635052195349063504010845631073869153366101739669478807501448553568031017828925663657649896683520564958150086796924727858045751289418850185691392246912692673416163523263991216445300852708980443045752424854424257151673444220500500441029084616168908023466813268765773758298345732286025667098352579342943317769509730617160601877903592879281834257569978917553524795576278110250659519361528550789072198220367688386391975667264535953922349281811540436005488468493867430672918373702594339536543793148664120294512588680395358609086687472165904412371347820440225074665734706051465640413454075318858916734012733578650377209621734552328363573033057176858887046619563748572242749688050951011940869194893438785858984148646987736195890557622743882781426148900349234946783458852325762263321797645695968012742881928720793220484693701273176320825859118527730008031706658005227869764066259504968303508342540646467084457783114618048043059679432656602627568277061271674386510616099922330647178692330983461695019455093375093632845826525622902168951282494448270579573351474465682983131976464666932852546192309823185378494208752409867409875276556760428244151412376606492675628363021390206914885111755695268526279758540579359188429639924889495071849511383223182507973368813485084376732747888744110677080621652400152511530524688824780862268312533507642519571087439891750146992280843625671720617569536059826837323930645234258207183714974016815064116929508286888311053571530354049029354204153225488097760203498340935015195535409731463509758657278577436737091458973121396749019813118314636694477310989722674093931154061581918171939622536184585808303780105497242969456626658672525756734568368291145529457497555327490332621605701278483760562087199044926577350355281864461556477179851375941439996357891056470106719065302883146995154364897932881619475540259379997955204372607582372929807667029259587200499461384058236014048861047479249364949551338331515980614978801225621601471030978072125331002612415326909148545328486137121362928827784098016783128991426761760875438749188292095965702528657068866671801148054054871477219535660912693739440647144603666178729712589540472856514307083364216594661026202629931607803382381116969552010015911204852570903183465429860924515086069784127186919044960536937453532513210984797286085583190395290402108170809810222713444550002282571018369354987414501750198094423394391987705314342725556204008194213098653617448688703235445810669703019123145270696614344701798642304622432053458372206091140363005017629464538659552831259228017332766123346262988381673544038653975593884992852199886872726457601503336523607308400623116810799568690257615731862021927480479143215238972165375237789520709615505982712733982964001873918685503280562214499997995132248918742060465667612357007190581802783228427218231745271339740679442417152164826312886591424047171032564825569148319734844134809442311019189837305276923386963734870040263297301391719121932391713374281280228516846196352362562372785885918984871646965993499152934553718098487708748818906132226013802793485354350527890976446216192264325716420664699494844696679253787836658883450383369690865389786126429130953442575562537767917274196206541990126325764477562696517100804110437224028443148579589539364380101756804807231112916703129414803307354132666120690788912973281495096609515386156285203463057612147384964514657272620274211794010484211110550923513098651461527296443285279635032263961231731794494139192343963287827812454691675560102072802623167503556606148580039170262915963088291968171186481871663149620731282361511126946324624677175185887007864464630670221795388941812721643334801597754016020066374255283729001758861204264242295665017892398190573356868973522238099099743430829903157252118783512624000420628524612106972797159375402526577936031491494681887593021244170356976730337327506534526668762751813313089992224289581221564375913238644712998005615061603507502395740484982138062006500804125260532899545346322899944572021009692387079357607263341191332084739534232054554382718680218728511416701670582603559939177521857992615600401923477646416758401623162033036919425218126852301646617329063325324737351021367393893880547877080007293122653260456303137825267075262552191086634597453087443429867122967654842506266926808382789646623567355147597568389425274044063628323949794347139402266194740435127141225025820270906758173695003186169549325128638205742658587637219509838354979017587211194928479857127321053275655478157138669197230184674755327642176554658452849559162042029165070785170614920991839977272297889871294809950173736446647258175429594258020432582351943240426633116202587949422674527506507668905841107975236583779738452422562578998354473613417298789651287480195847669978518193874126315816302466151927596208800738843027219498917085856018707738967725664200977118107734947811777945438520503037076930950983530022943667860450408310900865013280431338004465865850637544042047807528996286579094971931281399244535982190366978656187866824703609083642376598420702451232936635491233812877602964420482764047645745593335382129790281943819781934107319908928520908027726336919930506119794708995663355996920602119028842640315875003437829611338513232392021758187235257896834439595338064281683130471505215480166055200289862622518638533360552528144160145207194597164613084427245713500994098370077858743036319779506762894398171631660834410623683367203794135481129011134397867668399119057986742493146490129917788705172606561500873207705298229043818644514640390573068824635791390126883846294946811937435629856239015157119497373975028165963446505586847489589317929751826180748227780439658958489627812496756954133803813506816130308880504197760662190307862207412027943583510664530015903817949703226684332747820769901406562944053081619964187567342250418282625248575574003127961906211446515857872770917020847733546318027728751446181697637394027409560987334081272986012830321460833962548611743488955567169952835441606791509576537679815057722837805146172177689062508662424510144153046387609360365117049234215604663599932376242374276308899418449835913048395804126709122398639338233923971532074732970713563100693581370847092592596638590393432535990797076617993639931588729631943270560552519282581011487397145916767214361188410212265342403998326127215295298600002612742968623958647454799557713580262499588833084229883265350826206148805635702847284216054843080276100592877849389709831436312077024498141792157146999245814138896171434097162349435081694018743466750961199054482442068293195917671928231873491168386096177292533503904686905027620041908795169395717550158330435002502986067025177631552874241593285895456012226886958950073909284253165531146645113935643358975054289937330356288983314795312364705185896706090431996369956955128671320195294153733250014867530663176140947803825488060188332425295101685628195216258214340010006458135145826541299235752094110329993275937432606999788118382963620418983057495853596202714801986576644459316068768380623452334560320439546413494101523800411488860424586814483080710878160839515512243214361114054858655410532245768014785523129706271167570500750477362488477328494330185443931978108652958828076406887795132196589994450617582768852148681621523377949593796013196439108836441836363891644656250098877584704422418953232693112229887795198707476302069240950915182499974629818218076165576748467573121834681575086916043253303604575316491580341649383993468861200275054113491465493425395071481731925197948500437220698310064720906094769587227428892811551591601671292502372997663254080565316645732316384186518926821037819013573572502320465215920877972995419211491625513504048731684934264812114112818942878573448596098343124236604740114812342823112414873224878511772246611192564081564100503871383815089682243449563875312421861604623368591235025180485077277013231890979468455449170926951574420245752047461106919865359078968133943892448414530169615164277001621718594790435534095470418055564515956614890236466788229424393525207385312105688881613203090143856391717091621168990873046389754428510297168028616456880319756957113126613923090549982847703253332266539986040208516885875199969637854619996354001224729494693540886116925617275095421005896616221199957016290146501119275885620063997851094706759510537826794852096120206885233487352854991554344848414833254019282690662643298392992180699789047094704183852431101494153228741153186796456321276514605877622543221911209468925314774092253063454207145794877433191936696325424014794583083544161446762833181931823336379534254839067329229525627776420919176466064199584556208649217239403747138924702931218194086035855834732786255285267352907637055343251992987068941647266890613392098113148742574399574951557362838441945184558769858114179609981478493918931980664020760354206888779914572203098507036950153303879653738588696395302114602985302500139637023794808243455315655255621118594607670062756631383686346937610577622016355307084391034433613302906465088914613645499760886610073879314943280719084301084234299137692805048471643233212173479984543143629995270767232254587462610822498560924227476825985473252000067986643748783775567649155312348225971858820698458145612243443396741383520823233950785363608172153234504980155753335513954040825636677409191766488534136923399014812731792363911993696375774494568189871112834287249879294124543512885985976797023047964925272528583197555101396992562674824832542179939751804966277188371816632075923358941331895345252146584929462628317420121769874389323709333824237056210492497077202867081650105532536816456567030140432378999076857509604419624899728000962418225154399777722131488520437338805354877838956470085545663498348158241858030624659686560141880929438587840781170766485491541481570693049335786464142729351145743809031694891888743798414128048426990920188252300268800657437665335913338831823540401725824525394844544317953127651236417524618555517159986135268488419732629427073284437613859220793270578326759213255212875275979022175783230547198461135635588838617306248767031011383091808240621851811955773938210024426655068843010381646105022202172201831792297604135492022063902876081293804822220722444343830731455536343146748288741738420312045062265367193334592772121831506732695714340342050633332495486662407834892531567061708083779963304993281473374030611618576287184957666644598232725094995823038291903338456109516836097885444048478256372627791555021845249401324878167536314641954109713069796631053186096876014641615714976546546657091917506404097873564012186253961782944105426145739300423253866069282166564620309358879532590696238196191246149868917419805952387240031278696161260794598429795524780107885474051800718343204046479796742770510519368680003865644584520196565268487347385728147605366048588908962262314357320231636561559292896748379710689224467454672214029390458865263501558922723325483581801217311385315797776338501435540057661822705647527312244358557783209376480153020505712850509559775869896500610950688220778762606976899258830553184509790802652668316516747062048537858043063203159791608957634964982975452329446423734683109982426863581455637588056130028175815963443910184427428648458805654321096494658799963253100786867763075194473793520060076515612732231203246026795609225186538642709708373127690578104842105205428676401510104959447913803475425944746539528289010719500338876708916756461775404888500339065697385554702229217457438105955755097509613752703512235464885590988455649765858779510991086503947332582581761889391524820556683441875725056195574804498182902246747631828761492662766333050323196506220987156610485286365369951949308832210804164542666466019580983023112412824294018559653885473227245849165373310147721850498033188027774061649841785589815691867605743809746861917007442223254218497723256802855121117652356601776584997493764369966932147105266433789468600562010298060926216282063279935576239136705871891683443953885996813647607003849774524532238109226455493540886666420384909757991787897012364431692369580776625105551423472453780908756739038630635797152974621120487302140284460686857369625103520333864617941400378602201477659619473343700588680427735696627207083691657903597974183396373623374002294743662807875452349320788810354096565319535723809856001165588744956849927385922599928958064635461414785753922143664194927559154525813664098616205776447310237749851801878657613800718894143675359708650610518002741844160643205843068117633549307103917019384794336881956267938594205421745959639970561137003764044437691604672278156623932195587203998491835085414984130105696642086411511491462895218661404462929128904321719145011271152944542723636904699996330491277220537853570493767614356380636052750368062171496873168474813223462634462267021892181368952844685637904363133611735460028921641379913794938352814621455728820842976160067799908866616850375685169119413051495669982359799828309140963158944479467559615954361476130418583197380928478238885588856865995466163172751849727853089769264289654139570157456105928724634218134439837775534179992173668075754450677751023945674072417266591930452301719919142404802260405115015774554387382612983271725010653094426723733416317838105984762330574404455949167087257751484920929596352807441781136633929450259487974737662078185688959111320443042915012216707585135356633810975153502954673812423369784214293682119928175633759923645903071653992451419824632944465601475964936137206662197115267209006085716545813520652247172746961455227499768705519098932102202285674449191468168914824648064730702042910536537845690570678839032195495662769577287973418890693664683089240396688356836303655473796452243572287850561843529975213088763095185459585801447678140556946475849914680762690730397772642097791115685961895867052273089319723042795208478144723663583427515698225814752014027929014516809103618926801024086060029554129524529281682253272042450991052831911763686104730995204616027842497659655706659913405647520677939432287593528108741525074579500009044584139015838042917894775648255448683846049383306324383237167470202018852369704561202838165319822411050018389768598486590446324684803857757319741859061770402867310849827285937493746893878772100895111951885009759870813015452201021570959048475223539841495355646431729712005764438284846450183707138697786851970621950411825133283006154359661829185327880496586855332187954984269732840460958776791765566031599089972585411475507175511019330918729319414747159628333540438725574184543474324214975838606817977058831076231056494145530536723078712698118727203131733479654548074488695555495088084823945487140044599377773614113140196626583340660412492604454495683415692506526278113061991091855527491118228652622207787025645023280109759536508586624896878398538230288697037441641442245344003394173881908543587294136884741025511437062214805651569319365471473358402300775345314121441787324610777286895226833973847208192596423453782645148022521873871628543710573301554750483680544160545465143672677674224881850138959833884808672448735564626477208769290393445076353235575608245215449913480987324674241896518898979043644454028572688457437449369227343191576602030809802929079858085381105486724095331601509640691437066674202599737277316986397137717702951885546149547829213754890811973691049444715543561664525761571184468345938756993626666468022062639802231468207074813810834537411666888237762037846032491910204821404462899959108573911456650830028024295542814866794369492233942352228335698116755054698496158915815696801144489001784467137501861082990646026187942220753144479723272701619042096555862606823479034279848288984102229560349451704874968737900869623417940623196891304452218859544773652181081905786541061941572690261131492730852410185237160931637810578330534449547784303400305089610012622225736257328715670223070635346050252334243343712443581897486366510579150404021135329858817111807846872351949381898906056939086762795116992905847911737736322733778456452539201591834438812069368459463377421587157609825192821510388882615058860975636236542193993402061261967940276369089089227973342573760716275865577171649570535525471198169819442226365055392262104006503492300303630664127251807916737906066398214024344590021328926660415056861250305882138836450498052714211646671669368918061453960313166754717224718760975914936272038710574810987638203068685182625255816362771800612335805744342471270018868094466855578919988721558519325863053378618703319224905977241402781956377845438922675500087048819285622416137335931910422017538150561255631607474184549685442002950810860399487340956456087033469088022816241779647384898590353454350851082221376683439789389130180687325728226077863019706790123753528229101995649553359876216829407445358877313494174011284117136598349446638828695393303380120280424869847243295139912953282663841744635913397638416435288205764536128097200785860549843945367617072136416461521885182540766638630467054352966400366143125155456280068040419007828021128889769189771782429709909158264773882223247383183797627889125840623961684377266907859797595292980511853674903617875944033092825713362156048846852770715959534593543385117668342625943706979748865580623811746066183739225815922466915640205611569588379686360968953261827501815437594617354678046366887781560197025705105484730519138287833712364715664959337102108586139930194831620228387393538934263788524625941271169695672828319729404644336375637994611894614456049374112730323128936057776103010005349931577377139625419125427206707965865517358069554574113060921697491262622512830764117455677828507564800695789149735859273043683091710431267639320951408882408533505461000150622984830395847907583683701284534462275650707033200504406447855093330741080220939663340840480206619190138164066332449572811492048507874366822295412388736594151429851124313689255225653052180061595056202056360662482860137286738893728684380039508445489062048061132476786485720741453639565872844542446874084441805181763558865928813709153479248088947365682701563158181930183025236061618097504188574979827045275653818873446640748781976632812982741135409104394972086117736495944782882658828601972384166509235511857809140326371286726412633389248436787244006137796245719771485648175620011921998838224108438280580194175383732888068873562145180217411082357884673229128280654303874766597559381277805990834658223095843752003483937536146137283106781485494722053230122546261146498039054532100428734648058917106726387590525150591690645520413166975755900759759693016121473090509441647370489713034907883771298947881917637292951451470776941564646844120241500775372295194483614451173219825413716438827455772092821488451450255504973141152513819017395157824662795314289180669292144612023508444983775454461858982304474069137994104807628588401328912088953988623993730152391200430348585243035731810041545402367899215861755347948961529711133183053583544598881417479524430997704779618118832630299324303877744028402493057676841079079061687054960673878333434261065158460164252985793900815406663444204754498219663940562931066645611718300444811678344213685547803765901500664276576839466407432872364724174380338615753423648980804410787107316781289707318143133591587327537359520657650792424108604517486630030254458804191187717113339329515665422952045673975425244128329838648957080385274011784220923868031940900649328632830131100174885821979755708641160578685799868787249531676663567121598886912434723113117208658462521645869882660875653460957336746701044186153415044522289552671928074576227036386437086239535307267683860771177953008886899942274755915132319214202931692028205159277891409868555290748762158951279471446327170257841396547066347629711144077567316807453122977395435499944707114462817849934832348404542752330919158346414287260767421583313581053978961333896119895780439616422188221216575133010840638596438550297454951015358275770162261929834076390695290486215722856075443839541013020309375590611765376488264902099596487212469547299204410175999179234179343819613103962284416199120398612715802074607312603713500740081581776640658982094319909265370544878009986872133489936334797743334179984277980227100103489896907810289961725440442005987152123687268426877002657179202103603384683855580573624874993397673401694306215631178135248388719029475036848102167893018847994214192546064816832730318170706267186809283293363006825213560586865181219658500486257505295351225852037823515759812057630889039454633088914553970772446174602462366860144843189022376558784196473994850323097072858109624201156994138178875729072715915829998760415736029910734348794474722645297282837321311656769351868990339777770638679991236709579669540058122049958760947578975089154499395155509857916882352107012812895106484779711394790967203538156078605253759844500047649798868846640557530371307708700671875411474874655680138226730621180852682419647903167787613506833374780555050982616623513191263264632074099337303308425280400153171879166614101732354058606165646669652164715287982543742207466809659100501400543947747053137034752388259570153144126083165756256471049680598678595851482718404446005928528005615555508395609601466150280539420249872505805931454445236772453098930474358542603185237146110822793858040406167106182082569324248225094026484121932003374620271877587418735461856685165778204097329083976192030528932757681462208482332504064589048599375409160826439731780195978588338841104180598505769752213369431829207523422098258787062787432573499198536319709308947440674416937738382165173656637464766892716595041988624739027888553093325396860469513649417047700657091192054504479701313745810213516081471352185995438311632870775984484266993639565176142448867964981150217328698284158245621321963446985720737970047373351132812224346384080305952046184147806365803619809959259554902506981196211444893018593334599127583782238499394378124814993888643815441670115899640975607688965834279123579850718180709720459803219210073455449522574185077940183112092703650889560096521176672328363862581787764547859397168349576970801634898445288862132127610201047883137305478971520997571196834899526643915750909696206869130488724264654372305081534603981748104129029592291404050848003103058883601500540162073378203059829853328939581422355230089794824981032696859270859034251276734053304060606772527457904034371011815478268914489480784432015871751519211883192757722885114496932398691772869443765817239630892528495076132108987853660591464949854944327961871524971519308404915432886565389230041514298551099363027256801327606205994366068874693465508379188512600886902920404885128506519277070344270804536635673125813725263158231603248070095367251323198470406904203217577530206748369652521570511525885487541550575572522813009765375470841785359829033480852322779752861394078362241631175740987877222705749354720710026440769860382643965169944932678548510616721655324373651395279416653631015985684115562110199434912068387017318616198551614239325510167778353035624406628911550601270119864102510192532802386043219382264884296989693284282936418095919112761686241226153478781585167695127478152106451511549373591441441408743179246214438963556066997441267317991294496732817606500241424879994712541293956801310694776726158444592420848035678411769888433041579759023942467098756199636011172584135451452689766230648863937504058535514924574041079462981181218523713424183079683081092224866315842669854828313515140367057854526528335670627892504155377856169955531914017124757931660489517305891535364968260020223282809226341125334878318077297887469506341337763018976616175067180943486312532174739447803127872920350000231171104272949225638768827529695414924336495922064612295061550896965555462154250190370293448577378507560005216318964026440586327725237574752695319638548649661101719592885426236415746395960440631514146365337499163563976470866421516836410115946610812609438744913883269528420547521840402879212295927600594628844751327599237759004651124967865716799496528168370864826419212077685027799155983617948600859648401855590882863946413866838586455660052251058630296753499529107093047499180266021136512796733506779334649775232211175419546445650349436923455312030202163442771906667962783978076009189344345056754499336740932353382959238409202983050615799481734460703377815294765045662364209841209967396255697385490647410727574060814140073634984050570112997908019153298062338704993339498307538473097957989138404200510423012421047398585974405306026456709145776108565981953187341005171675103280226526797865829464257535867489087510942070431656726279917794564538457109179116311318945752024954452547489647325709757818525481846794012582965702383999738352057786639496195274852874640502019301898295251962929619769687963133268375804122965010960239297343422553332495779027514548578422258922995877487438776592871842109491335911809745954013066987007982140551592640334212007517087857298092001126264441500069550056343858930352322501443127917828674805522544810319825416588474322593779005723300162536975033758002582239532327230758595976709143542059670207759633879300134215390576789091052038136809142823927536546916990369233399632012608174911734759681648743113599417855917605206672106528735728079297946981113372186777272090139581453506372034650847688692274922030260490422908665211114489574939522693025098859499839731329231951795699332242925483531206908794156981300755698700420258851701089336394966668322430169202383894583400418383910786069237456662042673722795118064907846713456033067744649025215086192494241552810983660876491341400814100057431740323228538572625528293417088388596184534658493381078029680787673138130278129899373797612407208940168730324774534897184489332889614725235294859704399408416069927915791988349398058460467574001633184985367247080503067991409152429460349832390164494087073495864732758720357451449473504624167921706660576964731477348412542824851072220041201432190395861188828185037590414994892992257711667110584680276452185444920467297935197583139311052328065368155235359265140221742169075817823454331576894211117241290308045145194219882877158423349418421669827857314748203401700450432154098843970731635650304677682600608339789419138000889383638270180419828229047679710226953351756647653179138278347261135060146117269835572561985613196550117813283822296842365322055442644879843727033201926784781431099254067499172858173051390182657498973944140229466691797438410930651668007384491200884482153969658473990615029870744801089207481151983303003370486350937339369920576819958126951942447406106865527269924626017475896376168614874208249903601384127878449117434851200863703667586118165177300063072768641306746920361683733660627713194539570269374673182222031040891900721637140012633646023814395538556990140108149009673307891384157936131579988663297723593017964318969158922253244712567768387545378597786530802940739402974692250337743218556917950656944886270162527000272088118701385308365987937932900436259107451031619883921310100254988357463808476875062388846577242785000576530006280447356775842180382242583576905289141545922005771947215592447065881610675649492059933363050960267999735792996853385655735439722779659859074963070754202127455598537596365841240106736752623022895554202469031727422284034889456648744604016530757431007837045663587665167351105951647944856588004437662724088061759760512788930369254203782549008819803745072931419800877703334005350986308587827033854178979237175219154566708796275724461003523975205277000122206788177150229904946244356929861634520760116429348205079483728164750183689859932018341672067249297246411933400490566744279100107505488830118406852775211734679808063843523010944066513089479011699091358907535434494383242962607748776097316941839292417903392294509526127794891674266334839608940494649151067507766460876365291129010028209966317147518463655039056046188943867674745642404619465327523163666361944764860896104276619319401238601481950602790250332630788477845445108126268980200958136121887484440923003542173345259061730522806628557316491843835591134200276558804232556904498488523465864804440944250949873657057033377313543009742102146779954263083898538359188821535658145774029253354098247132675790341821145535400744330679979974586980376012820137706956806050932867392203107138023438149008715765261739236175624818493880932557496049816577071267320682114920423164150394209261854667211061709881568335825147957044424004006065298023882345890383108405827152480022354044625134215601112418650968527468963947973785033157691761854949238476825180800804478075183162985447705996271059590322985211809229506481050369133999292996825619302124875420861716669662293192487239336189794756339269278340762458258968035900019797025755073818547374397253306560759137964744142420437139002380853346336508049903080768647069654102693909413677982240542707631093182236071113959513723652096893558998871639799811778771598165532294765552365044095620276974371767056973593115454626350039227465668312210700717284307438814670465994641505835623035912195557203015249594405645551784749199581032593523807636849094230580262364862192890591426323912161774639390339808109193600405062688739371929684608124221574785779027534255880232812799693753340418199585566531859596814316774872030907773568048260267968965252114837613996505900065599926786987368874750320927688132770063263929214017736881632602489060885177580890509576189613804663745130099680967315579140938175821766013004302707205274094355542331393416030063321054134389242315135367663937676630621194283884815702182151059297320990164888315206793159995349054483913486175159024275989156550897920623651165004703859259443049505654162466136389131201702587251411694523322183329509957975507189337353562582695204159231207052801821334148056025867489877228794713122537352173105714134681676121947897941493482400266490987649364213868913567449150160361626537732367947438149371343399918292264436328750324921293846898368316574024791838106211598937889245619992356296673834280889538985959631813916253683356197322121833806070760803820317485219602877964169404478053632879476735491575888512748879503327823769766429522675590108243832306874835560870301187548497980454677914029629616432004080575548224922948648564086114697155941907089069073133405120435955775444033153596543272388441179312353387358375556233613199803943785383998725011367309245434253347765656606803191222354201286933606777985950753941422878701803087934684164085319226182096992794421472095252607962392316156293771856564855166869072032821856334651772835630845322057341700342249023006852895243984629082112760418889646584161420780583008808578705486681207274721750748837996797547532032126105553281208374163993923291736272447852790374272694567215269654966090787185845007141419979342456004193159017503093370557431874545366897032343833398354942392536304828952931953214300740212156988693805395064890574538466258262698775123883337438042489937680899488674896782746771047516902455549775157223173767500670945081779172668709960431299918016411199504194480556709232611668730822674379473636333132121945333484215089501133521176946564594712142308291005916317937815395881128994433788618544599652753480242052459354050017702558938675430464260756329112528490257075157439811516635850012176117070349444908079663974212948056479839956002178408746524387104500662792532742359329612025595140969700911297077460366416762794278727879718686069910899382227556332076921735164861804609963539084318258181498221414263084255709253460846807505152679520756081544231657793998152375230314237895487551997112515639406639287472559862932448469543034074630241037123520826725029070864457168822992838641797261427986571196164253876384052048842970310456193210627409828140068234886385701902643947576957869483938636029972369263962624215459845958424290956714601410879986453429486768794778461430338212170438281397991401829345172538195735552468383360689511157679557046283347394762549816613578874095071180138941688382295832528020128570053303413262771608035673326321582742207321806352268945193513377212181152302191781750436264621743758618372327200230186745431638636744926297545641906548476522658115099636994237641411335419517672771232734267340680561310841241507458462754362779788425451784637569134392324945353206536871024834735379329726275065711264680493297413076164785238762069396912861244559296823484746283716062612532969402370887940623193796916484742911582188794839099388969023571753569574931039445621041697332030493690768810007556801048745572781683863555348866860064089433625914281748226662935045074453875759766205834170825497613130619858291636196442737817461096472202057884406795790811173572177357270888363423965733729490471195493664987341307086236930598074882296342190800353274840936025594403306257412343289814409165536410764472962430145576513495765567337063617761867276524648182639224287889976117249667848949518782060076431396983109423969483359989904762790043683816031483571817819367916390531664436032896671786149856144259943091114344450349141937457060570082730901824261940691710429663905615224931756653666233692681584020925924935132177515885838850426395005585629896169639666683444696037153275163634684574633875932178995461975862518794564555325121229592037045391723587044098099427416536185937217072979567552621964856340929276804971654580952398187368073700403679280205225912110918781768156588008107059363840147081838993246634338279119047074663993330657179870667559902032155513217569260749403992211501813469573556724796066852544829349494908244924763376238836924435672664490414296235216129347864682874098612689638436778156470565756367337716375648906686667307091176718405176021257549695374569453978064239823153996416936433751746633586894154567518923325014840664745940995648764058201796042159762740685970480090200870719345974612393178612950787582211262491002706150530995808990153740192067040767977312038700301539536633974770357082948951169809012102274366185828115404003179964793312533922623434184210257413657293679645872267239849176059616034619475879727029794861762383597867234867628323636520636770623969452437644550270552395567746772714942013812264479411473882413979615966960008608234050893492636480591482944873939667192857801334917448906603800200490017051724021515694464634597953995572038015915987990073411483423083721722453236481673865506617945931477217425016366012293440006447369140662978368403553329234791671242617521177796156860983590523767014460848587415497108140643686972752691846990364920707414179253358691198577186141297739712842151181894071461996073431325617167483010478394763514440372087875764081112036854839612998871424288213616463892870388846066870724071573181100892632584094026673425621184744796215990231693335025985601004801401663771055103725407798218748987573732305949670681415985512389342424718822779642753196203323544825237355158807031318416192519274522697890327062610707307965555129665441753290293142352773694448881434691868553053630467240789345950592445900528000363914198576121768081308026643687310356888601393662414136249380238848271663324064907942179907123146160136650869253269130856638663848315103595362334496229492420879331590779238011683602091787788202338257806240192689041064069298711824940263015884677504679518005781755773313986797440905667874157114957195846372304097271689375890796029999870955017698432415158002845170547465642833721278882584260922322636849438609641934709886240753250329167693778696850046275954278476779112862829339938048026841865419678508293262595687160615427827630698854378037671397231898716764544302050872111935321817030309055900085138068899199732696966677863677764999718675284351446425953000192226930363450325653355960386090814720755812872497981074518567755414812089396292866047676631729523738486348377969222568663648765110216365958365739809843732516478945943226391079098337080666789414803925639313463703244708839225162918299203935261672344900808071377914219534878501927556278406582287743951538004391728064986273274444490371164375309315073564247069669097321334279728575425431754750743941819129237632226566398975817750459840661944750108704909250498160821366866397124557588233974010090348010617177847989528334070129487748094907075378619399059883349523165154091341952470356362975024373105051006863319102701229730528540968632040093206949771772304665669877999222471298251951181358222322105132627399273703059163166979807891729298494838507615379225581623793543427291989803179293063189297387716385244594398790868803027244048804234780407590510270480454662952903795526796592480630120457740703918628566117786162901199508419379738110502315621879837016990977851888140952147245978958558723525672311409594229165402437479107894982087405989845030166190431689019613923063375133062291183850237579859736836418377859198866659607786173786969742148811765682792458886485438705510670908699234000464876512268286330456692435246760936374824864085516349842539114575227286689076695612981703670951930359359507155612775153638168972977340328389655024707048381966776408439772143437820082637231294034957360589675931942532619621718466231840257649765513966045902886498863956557093294869503770537268173920119792610928419340511413480529533454509176838693411399135829442071209983238809720396213820109576322161546894724048638589474730272134986194615864938342968185261862363044028377796767006653378073003622722610956912712473027901343207599490932496471345534308166501819400054635510649541768193764787411598608091594040446955595096959484888435540524459247280669944834859216775062769933385805247320572771595741413990083417208127186395094410273411067514606255857670179576345762931939619892783846358701307410109049803776063849424354988595301780202651493380292329955755497945037616371503565824748494794561938518532964120811204679623343788018420457934547039141149353505733497120674758857889364174621997882377185798106407767521228495684854995651275249722382978736644724011412424529835338221313054249166985066388942944214479354270124315682929755673133236595903061642740387570636096191383723951932915904912435822841252333936971885904267299529902654614489860793128421901952998233868177142588219945193601351663738379668915988690755523099095085587256347569544789355827669741021180392841062751376866571953094722513569818905190542971040173086581143809192558713508861874879464267238382348006758289271057621896509516525901470116722863715168756850786428869282376833471424300458541372338350976143000711203655135528936161482015682961588576342295147216279054486288441072234250254238974266645102310286868446719331411676592383673307533411742404749426473635126654759477293285953189440308383078735985734861769176749531797547586316169555851175416896410502611042355820174552179757250919128097995729668607577460932793983078077409520454101028505406889096964992932934595312226765194018894379524120665600273317758933122426659371010809830831985943966561931355039637295739419753291359691294656274884167672748860438830272870654060414264701694898203648443117144438632853706286894540799844330411640575336653096195486105619372247473101067836069146656452080502993320805809783345034311790045715814708843578102903936181794719366458386142101873205743904916930841115683548574668565383190605266750836781710176973388531807846827091553179308185555748781038093750859986268914420461642161176902473679452998307417865107920970423226428684724906075154674014196038643703701101760241403731071305194228233072636715339933788019187474017949710645480631146606557556111173439113473247023332501423147966649938174816807379536810421916986625158508279487659711634073649135405704292130008550673205319801845180612565445232394410700203440654454528038207661018353493869347044177911362158875180188796469159191160690940886700413099585301315024202934211030023865940177832113774258627781831557657089182693866271755963471504842378831278537510783044461553632209021829176174441324569026756062720656377089276579192380083983202094801888201342143844102805021755576944904975416672348358978753114620189313181928510352633896955177236124103811662106470837398525622169483743937663609870689610983202893487374616658992755614752602071448728001940873398297214481722818268750837781166362837007673286000417277805522513081818442617237401697239323032029914314021620752822290662576522340279854557083113643127627834205585718429108834541469691058439878322606830983308484681510643936983020109287464712102743590468496965311861286718814894574866160022250046830380325386805250944125067351379883160041632506768720628068903512313293007787811914653902812177590629193349813862717462498765186879196212959752346934904751763048770064365495228719619506349984022901396182981072223285284358644865983107693572290917276654157208725233885539486308078786486716603149945560971790652528503368895021791477013139347509410204514854365576405295630451640364949324241120906576372014003809551441297720844701508686942754774407744514255780450164514347986523578179482545340111508485614845640094742300903766162170615682444976036193503568818675571704510492962401510959264526988575422707462325917168806605647106531091982666403461339854417824480352130659652724695176670843663568771002640931551860836817734327291816024513112148067050640315120575564461975903597890321884893305021500760368533772575737101728581862093384700020903602698471877030119544250447973094800166732675300123157445736086772953106682703401533343507834617066099157920417411165862708814039429641327166146616860793615463763569714174589679812081455943192485226483959560653175234345462761275110581877123343551278056794249390879280963746751958435057926372691194389051689859569746236514351310624482439316194775794478833669414775762890350181218404446434739686781933903123933506785365635867436222253779547153254160746951653908287930520836406967957872450638850568652082711733120538669512820483265191707132731216144457857410718685284076238951169491867062325021363678517983699463821385008476783963448194886136560323227816488255413089216754534238004140069503679142531726587057246823113320463901827076451007636510734795775554065916692859259270105148258653457366291224053445539403323294042465375581195237876582654085925906734569109121548860140554907676992482029361715931194934035836570996614658742171540755072951640679128183634504311638267075310135662021939446730520868890786202865873268254199469009754393310836343178117931148814741419571918938609437301864230578317527903991665091931379671806409757266610361370572871209769143790926167819243062761847969984187341033953533470668597681949506758479282912706160744041338376265981014267694607051470264960857618008207782745915236414637609324218728789150030228889471361132031578937273938456384257561383829253129991214050020573310646712134900564693811464909069352297101830551250858084451264670329980197611831796130188484001678595770422946656910010485316765785109004923541374431272131025978953272782501523666189521394823072706046045325884446230273110944552970036377814680566682717138866811678545936388959467051914030605569191245090331245544232720280113718651899283099767590245828812027544489493027391547056627858874063414179450289495247614501709389655998140299763083895096196896147097854670557888654512298396254806545409765613202159498028489675843344944661306854241812194928388818221828741931973631050677155915903965566204938773328602733047083445947780035023690005508630396525432610439992288293650081340756584231751069325852560395988354688671020427348002329851815304024064637149574685626184593058918693096698712352781423852540487832526441984099298322444572035476124383415875814158923705484494767533266692984511268391726071244136125235571407046809594986165658411574905405343333674427899553929183197770702618248860674459186937195626417947265296522460807637965604121056628431336615105350534821786828870503373881424736587250297307556070522684572617967440822410087645271971899207534610293438278958786897373544270557629314392344215271643613507192985964168564466534945086348007486164119784671919493620430793756580619430855176075844869770959853735719800201557854740755676326877663252384081631508000489985205203139847703342023178689643528760136037614187201305167975901230180565859724678696830899910854799877556422174329089586380194332623659653549379288330512808478630402128619690109104659308608708974909458603683285414864701353223015864707803682195579801605690601529304318381353426595608917443102415081702306339092766493988417997490667871247519273965023003568796413472660059356688834471936548330362218558500969182523766186366104469299655395032259106882250078470193973136460916531686668628136479905272573344381488981383386570351856014631989294842941388179737506331268500795159245988241448662439188484656116118098820175334222805954073123279162436579877497017873704595458099230074741140853296735810235395617258526939350236444317518610027675732796604931916132164692779968889415892867623870655035704762493421475509466040982021500871852663568278817682264936589107841302816061489569204164341196850346515266002990498421632163948606947635882918708511053739038139457164679467699421294262539545279566471773584219504657214622799494130381473718653583572669504761867447797115557182740877409282682039120197213448131367758748981843529403666556244634233919092751243625647016433662607488582302661680136486692043275753340982470456780924223426877180978361910168710781502621256046394922916481216608969415052225559421955516906730319566786356650383916359279855314946320939277002192293099354696682138634333307634476975544041329810486753455499855729451454328305321011507062443778101031630952893911619616945443689218361804349414705002135937488348712460212140242872578598242765984301194251841557479746291196479632200177793087529391858670267368093820671643237771146253626027456486166200875990823446476385511309817736841251420595764749661363788280099931176493703385603600599126082483147484282772246311278902796903931900655399815070420072895784865315589958760870922255962067480704901318497907618987979836507556494040178751841384333810439088485700154454682576514300795428010367668008076836436090174530141665040423206665657230193973240145270226559579339213122414234236192452715122715564169124328381286185172475274742460176496508511939848040118748535324419683881104341001715880534847323628533744085201195392490030571811935185801321170211822735406333847370499633135230112590409121013060248425595686186025704808769323957521419732601197017129037761726094759211356975162216794585424888617160300816134466612613021434415536031562936094756099269676182533350240250949204187475969234458516477628032165615693761164726062089300957561331944994100709241854217373911496131681536533675780326523486365789598960246983074225912863382673865399100787743057409638755638189257190879485334479264091315638072074189711866712301638045151519040855581681899589642104144193151050629254179350851161900552937005541085992440708917552637683198259340896848289752760583713292559991844579581865855341933962615431562282232854143089482338179369938958424527651124126142271936888111069249986430473787425343666026406480219920421744883280680419579130154899382415074866252880007091599290409340093567989497198503080328120300591093642872872028091368190162190556319389071195209570257897725057112085705936562532166941657178528258563989757466467392815593671137735737897992201731421681648562892472378492845570544362688363791470906961863438885624367067535211012740163920764198425080339719036596747968903011267137027014778964697224543669771706494676936583717377507734505144914499949861465513873795434501886742042552216524658644594731147308062357245740075163967886612205145330740745880161276601472104794474041744064562650105363029426034182627378429966526528930399263563538734037016489549348447568473900206494731540784516519677216341702532656408431200878605177327300407332325590872978503196902405913071470081108148773804187289883856303389957038197878721022436519277231087870122197837988226105825387987512186947133310149715601721966773923942301868546940761897746154279622671741693865961918476147603123173783908753305748408205956079527741714502582236405969842847069439291784925350550999323999341865405212169208944400783491355167045834740446796023303248221813648359256772519911600485563896858083549705604984225253348278370897068913044048016488200129138935221857491852196854771037649071860775696032892987728554283152181319798729698208983354438811351814452377109116207309510840902053784609133675047748837127833154615669982311774467957582580832853213359224529905746430095256020349440460038068269321710834476228054567664946067348101933635200603991192354769593393399554460353249876321009999345664284067146090510923758492938811891030102195921823429348571387082799583313725328580458696832937889029535140313585422953012516752360443189702176350691233005219122500058231415240366168977799586954619724286557531807465093973351852363372560533685135244627250505898924881005239790292522218809438021103843740743695778171158937024092842895797095450022123423383761583360951758471801646801748723237192675761574649374783814403705332255620633589118925530715066090750827081157281245295321911380848281823490865411523167375294799599879155812895144269890462896503643441044747026170420574203264982552023138109160978935352022554231245151232373571644686742325781594735249110558360135072548479596653573680752308885693948057076296859593146112713213128115500149119685758658968870520775393841902114319547656586484188783729239340159540353854042445060959419622329426920287963708909486137692455560258546886464341438765061948335320160811544882760780560424260530927000362482821635112124656297556979784026559037441054451144140175340445532794414736401119353290828984149812576796233007830896196690291127494850451616650854813828759408894950676176632524003097095811752871615139454488710957501153375805638039210294786053906174019757159589210998420692003898119222967263277993980139170620239047888994015321087772332573809792126374578249166424606082781673331398982705122920302661765456483442517471797430616027175358182886125582836876673398298136225302907912483953786360327092759209296099807665336118377221600130896683927050556283016378629689693850123557787760984961118025119534151608940328697036503142964293493253876798070391555701500080660584251216265173486891112965970651595706892362426822602108948872836276326965064137739241319113642682605345638369683698936752003124571493760523615882488410480486794707079563827710112285940667429441634328798216378402207387971094993578519974062769890592684410219622694109954397374690379491124354268339845654571122678221444452615096028031831965995733384166588066604973843090540599507927958188904122731082283481381834548328127738361943787244770411222839270482433341646374053297296283142292067065779643468086096000103118833390368439286443200801108288916322329144571302460074389186016564140733699020763005655802669438269660331165329681578269309065880615982934031552800979333505711314054076497950782625220346352940397833361900751738393036292505996416673614157595495207408414034981196151655528473403232204982254988837165011250502465431710516366572266465499404947331389191460965572366820185906652007964152737056670776730270827403117781277325274255494125616111145847906547052779042656087554660792013980851915887149500864653929867353115274900855459171360034920827823326184576160818648362951846053977512567423012531669094948091395033494069442233130717267020488831876614578822798410596958431363632836839057586219612327002429747195752020374854726811878962196363173322465403378647938240955519991073704634886213101235883775936502206560725670121416905681454217123581649945408973180594121491506340834647715643291458792424112504148750110557456918935995774711827239202677850817864098055954385945384142681822288256498448430734674162619384072672499858680577420575573598368770576691496746549848582451775013492718101604036005106869965381477232174806616611244090551710193451298269160356605000893118521158744495130845165691878704226256375243428869216696210934424935548836824141196501973087745935898001926869808421569526486917982615738040234922136997571939685368422371039180773514297326985024050532915324574765378051699630704027284927844082512028582103367763690268989457996271081936148714187382941331010068482510824646971243887364443244602545084204100780032350039833796503920297857480649075925755605288620764266838005615412220395623339745115699927313926306371147538434393902387312092078038551201942717340019869338672723945498826448069641712455864879423525297543700492816715767277565688411350246320849195102798099783317510486179289859139424102968884537720721435255698672664001416100578838562485937035367838005270235522757234237435570800132700700492574474164278717205373778253507726666258971233735085122142684907573323683820356068390957634622871802766969633368027275103911735797267519287115116431846046633276148321557380945239201454196074138107981104920877390450627927930350907555290989181278392216392859055460526717531728575238152103485917153878351043167337501402601848115736350551876864797959469861999910671387507105827888132445100793735223367691624009588889764723710556868602945749152863119286126581325067105306377464662040227292147651805850348683400564022816098989139542661688288451437302428437059819267206422381460117148815221406240540316764133471948783803096971085877237407468535887202508978569515658513279042038288405101642640631256533212788535986530123457874558349233269485624931679618617514708919915256262246751325042171496972803220112663206902826471501777624436714566878043366697628213331580705877998127908968470645004742667201667454813524660470156097247119078728866910920645957109019341544407530993993396665413944119926559175727611358571502294417759350824710189796140559796953138280241288452798999729610360025801192789236554379593211546908585725656813091662106625961272981071887104795487285145075332895656195608012939439670681149953317370916429869386069160305020236442825560220571738094458056906703601045325852320269677556383442302846558869522296486470140579511443879030289655451925774781810271461130431775739490432173835025891366560096601743585365512529263901658814810556902927060909001260138759209678312976952861024912590676406431661616807975141688657508829386342609822372318531748751204769299441021342061605473248558514611497472074293924549222012294751948338162217085953406153837598771237667605934847925713575415930824791316779325771256571895115885995602453138983491364043770031259872222933269415480734515796673003637013855141271075060270480996840596516887097789945405841297463234473433435296646964615039155977166059843417049173167217035173567200736712858725470485825497598580826847802205096804490888771313539451524599248718453797075376636451721011334338641618549775950174919957238453435959510626865038657967591010555262037632785211738302276432698169623994237080010023625693829589226224036832027395104691930660579166890053972699230565951377294062507758146678467977568029559135312336835581013580051098938802258390315995344891838176956557228411196654179046432855677165229840136820297224301465848517018155696550681823310922739543448255535007357259148761975650249508133818780507264218210607369130118206156030325822989013426003062558523652869725920607027750882471644706592842951520685609813340586772168390980001824876191562611537449108757780088136651976090455970646376288334370181957767987227842938807001042021579192548173167365135930602112722270521650373381670844557371964493473241015097744000657964002734667497139497070336846023756769241765278450140397827218570412498132671973486369180525650582187274888179206516225173232268545255117003743029209193180209422548840419108462056640078963142324594040917200977237119949736081581460959902918327584296457045204581765293955822195180673932606772078165822206227836170621900287295817193336233062719012695319850917065431298708685217399822541189856904804044921908728500613013866785940417358451318153813711999258603700406209668170465952145135924850922167840838107607854825527355570438311670168967622471906101262582085194096673560424987732315178744508256901531099007324817305841918999299226509601828494986166037237949283165702249778921479782933519391817192627098090915767023712689993199819256208881579791258361207761426164468850066496326017661719041720033328294155177481647487051979908706196964945761790297901255041421176266259435302550714250716723588466662332516558335098153845423551389351412099831048405405519965450034287285007266602217103996039061759767317370037565769886931721487755946605337263227101628870333531204678283023924443673733020504505840598392465746544240777196456567177212518992137738963659982872405086127988543359546950974008837275272994689948774618050274841953676482503617859081581812756829290385067463742465664663959267485344013477698476564238451063650615880353939230909195019828167118204983458912130822455504220756713280230029803555383246012050269776594723342168142767375482608761614973122966031815560045550787420801051956459438734355138190510822434507298297108170503291481269781758367837525902228122511451264683395697631048915691181891379958897546700646807163248673391515011536121147386304457832580209528258713394652677104048185303078887454416084007410618083471751460791744815287672327909597832565882271679112919936265368951495622761686192375095423906924233636049879601667259360369717973875855738069362929592767643434884320928142348268582315496290095770953126319152284633218870844430584754421898554826543260382690472588654277133846122940125367744238536301367520943788663184746026352177049810650812415514286615934784478256521805948567884228691723554720887159739431753912056897172788566078347855007203052800530070169490477041973860881563682672850392441038649301933013319072002785298874355989735526110269697814516772662851203562399253478163366631096505344025352144201149357098262055132690866441692690254936036526476330721820648635827640858891326249833165895346369558512646692678866173065290909526447966096222207413945373175097206621822791566741262972451894816840692002834271738634628894917809017345790767246430982339308348067733198399359952941140522463494891235720178090365547373049767295968838705346116040809511944754286141190757384130039700039562797619270646167800615373051070831688614923471613629079353374800109408995980875091048329330281500846325396793889377381967012225601850156405504638920931270638641436982037912046269221804675336419139739196877160134563613663405156945750537844292570062872118817959321941038292120598865695499916286144641856979767551786499058552612333293561648775015668922465705230057735552392167048281129953946642798028796570890593563477298527443054643677717731087572880797617673083808305756051828136638777446938464053170593007213443915991373375367076434858445347151732105011518417831081965850076602115357138527363954909625429884564915463234234061866552320701029235376536056956736795175957605089737548164849287236620535871506205862586246880684432484426702804804055172996372734483387647998536207222581699625512358104031914158626029944287739061467716615667544614559684990499361137271580794161602498678103536764806945086886123857118991209215065167512135801596647397138512177098793164953521144959455892861381421470625030953772533614055550342081130828313168276545803733745478881331992402950236782790143375182449254326327186618034748932359707740400542477828599042529916505918640652995078493054203905356535740462547434687191278937658079680480376659334348199603087205045220681855585948493185461037203387811722172166130163081559034235680533943684788128098804137460045360448363340902295714884998201357170111607889674486286840226739676848171016270766106283382989919828405442291902369868875146825801287977251630586467696947129271782396174630679847808380644789846913823692378227713370255742782774555627518724691789743433147282684341960508107072859000576188436267131263890940574648097865026568940885313101585375518059956690048260842569127798890574281232444603496676752648568669965229915335621509006836859639635867723940782391393538718851197416647203176524830847030555922563595725919994013749824398289394551097774749269135105903541753812743688987062676973381748141238302402885320641447219178501482131394160140831904388687992696218009840909083871977507837548142241082319935455115959966238389474580012352906633081094228225509603614757884311144666845610999160855775319674791247250364847844107860519685587242634171414067376526046917582869766828799093833909524522401260987413515482349873912765265545358598024194642001032595368439394517523151793605702752700666998867377458930375498877455800118962704201466187715000293991106758429334036555506246424986668505498717097341497444412753008275142660559551217172277077403472686782189344628361953645978849609988521068035018894086586895892603861622712127721967418957619936142627216847832310925759704115535303092234219992626825930385263032706226443052893666675799979109980650894744893393785589433092406756945472061509424811811973503477753144416320641731196813621141519918466957467227936055140224968364934142004159197620521351126307340568046072121681397333612173536783675973517955499147566301987530339974159134521298905446416854602776990142694852848104194022167729974627280903905558447266178223946050240754072246894948794627763090415859368378153444328419912061898756308300927355222529919521014222142614752285017927104493746642538499378937522270659532372740345522662166102284930973606213187624422869352550901644638456860249187025722080598351095928880517318650523704516799414966471709662583266453894840377156932465273470019333705059524142176576427009104519851093344425990253293745090528101764784705321688587771598002877629113519681218765574535953247596336667307829800815691699710388715237631802391205008582165931462860998886295779803397525493103254095575717495075417649633123707111966820029424062495583380331475955377259172270297521566375509866828212184795121190261387259018869249377864066247909198264813721769892208184510783467814846418185574347958617065850412107160009143919302233170499650687038037372988659348185387026750783383142935195428580571397670352597599835908390359943598720667461725511406800775560881076812272765281139595675332070899457475081523178669306935266296783812002862817047149444241469074910970397689152435514383866597643051582047121663661089633216853124475059072576553257330245033675055520430074652618542028085146310558713885675429766421625822587137781383605417070048412074534900552518554590997934317756343327779637213988039682922231639208299894102389783220242518748049712369437562024692757264374326740899343621893379840077381211726110863310309434239885404211603720110378478473965764400937648283728635893899514862390894961535104506335829520696379484949926834507019696301093171336981913204472351121744034433315319091937378072508684568290355530994107131641397271873333857971359272797275373232857701771756637962388544010622508148583067866969052666568697850474198249020521650788899718854859917945225481439200824078273590254230871837411047840966313397179234004592675730819899648588750131918967193951718834762733241684569327818559823937651233968560871560405779903603940035518714972535622429190716969206058644653404567406198780962799663781912075328966261286103228832359428850766665899647656808182439210115591210767294288864525470893572219602362200201347361816048089730272979871778615199584975591923032232556295783048887154548400869074130299826753243021345428218286912769575289607413700848588377395346117941018669625425045952508360742957501718263524173241595969636429455435951958330945542318057916176781072142990235807957237477305319110433548505670713506674744304933700068806937906712415372154999437388359281173131767754549028136998901243332316398306839805417975880426749556108569647262185361576506168286573323395445244334780556644170475805524135235743114798118822514225584066853381795565137773886703055128474182154170292276994553102593459525245722399428785644683892760926537377603561490816442799155117174818613205400669248884222675463454370441682909082177154405814296942981180545695785829689776281599663139955135269130529529705951748002810078098233442990093151493332926110165085624252154605218268633878180055337326145079564356253234147598838361211169380291645236838166986990151751358927241456273107512799957382539533144540924013899724104586563031101615949086164391772984886199237396491507168354735387015455850838826037724315186158054054845433840136240847210482709579654579298742777778978699765381652777837075016920679426577193444930969383578388372586416609009188301165967667107734062636422662849969786519177535247907826147278340516032891639257282077991242709082539373037405657088765847728159500559691480859787110761862151591671167008998117181207194838710932553424423103669646454489160195051788369158140354824603075110761846536291744437043732685441163947726305068157423896482101043629372758927486250616478542824155946057992447935770514036226612070245229449284601957927013387563275411717352855520289883977454636208166726227096637378492665383094342532819195378276770537157738894332824183349787985476207834020332202392959680755113670685843012659951651752680493210484911274723920403120686560933287512180188209182608028182306566287520749899562109993863471746548683672484041803545662747813489322587792575541592119296076321658404041077468569162245122664778820579022039103354790124838572403996268703731393747923358678326978300901506985172433435879172660901599772761386175379326268091984418406477266981609885526332003927491056811774294205833339296684596435327182802355448665204746994002602981731077468259081705816219590729968231244443300581613827445377752477678961242689021214379841221524714606357237118834005134461450152807175265521970145278081431188391554667538619285913465582164258949692811757328450593639881729843427765453844138146570469953767501372675289571759720253371050197389076114994126151292469103789096176300104550898963800395294836558021680253187385102389659447885304011325476073144170067175215157762663101549107455568905846694526796508570705157482711242449982001964553926575284337021630025152650497539247735293963486038494337148601292975793240772474527909403964805248683873394514530966494474858937355653081416127712718663715627567564635188374824925101368157454849449263657814613341215163756018124996946843069813843338898480125004842152291015007125913849588673079502116987986964629160468854453755205583041235392998665533676454882038697861040729743193900322800524041482591485631116855499415266331424076301747864244189383454812515962307701454387541380185420211987951229986674690599967458782826064065292515871204176667148588173482510501166496475860030426182573674861831415004356819587581326336637871725146197338031806514904655606770517791764707542867081335819770159453823175138881818390768027564277915436477061293569089129319703729598797916407890798675007456614453402004794354413855410420472568405158488706979860466512577054773607285596701700149349964703864039883290900047698436952824641291386773094021482960769266338906200496701408459164279588128120994194749632626358463766460150343081814581515442584458767555989103167114985726583546634610317758376902205839523552513734821093579179678342239676234873272064133425283703998843068174218628191658821611753881703248467547127113275854098181109605227220155697473829744943924381366624702843845392180276831307053552526067326464547631788778016194360992062972872856408891249871632568801113289598374250106043665619132752193657009065915018352565398270790343260091395885381830940923359217694859829503031172155011786908424391121671937947857502148601485007674189365677643664662060583594689844591118269270006169466632318577117270584857794197017344311946167410472561117529366556871181913491948275226250817344296662443354139521458478157542398755129092781957534097864548913534421501050663232958235472333768966060786897620871273665586877317572474406899856828370767541332283459603245233814492361092953642311726549822671018874621273567562093327391870139854243745259017534713903085808898719657707910815272791553889416508188721108997936958844018193103597993963786988139947634287146620350434192158138348201932599248216102318944649040377520412098325941695793631064613189391128258110727759146170166995924624738451369737873002809056119061084095155683200820535282987458739579238765653250255427428267027048043267077639139928909915464043458029203541090519258030330340906687547200424511948345127765526678920884972580651978353604631476458146641790499366597469849430059376165336265263513141351154955986756073153195305047481139657243972046508456372935150472187175828142772796202531552731732620935329663796316976609468243691537723796367950082268357524302877044966356251131574482063281104338273726160139937743809485386002579194968195473028032728700512241369219594096521271585968729701001601874470684600897251711597454631271897732237380420072498677493989662164358168471335992592107507973702440860059883527359653760845080453236588182022604968125760342087211661740278645486449772570005372529560721673097295198413767026951354880541560741424299425967567112514512735158647300608119868263436229503784640100445617383771694145335104530101569055934836588840196193046354374180822928574754360297617119882711495984425024164090234606027877484849616923246823815922338823679146363149184800815620326183001129333755678509583482187122841792651995656166607036419956348993232584502363823506398252025406299409044743505786492491759475456269836597183995887846920622305919528635685134709331163898181141557089068052920867787768180103861989732381528370047019797841130654717524725695648608108061285609593111082471852518753757645360955085367130265022942711797598424940419292270351631586960082957203248392175666184330556061787519105123967016146749532373218669504066294330951554066444871644889002640037241723796916192134013461234109276050159659811306075982329642562438522167142168101251602083670411923474252222295834156865488269692803741164450866310497052176188062931724306578132945730195657597111673497390877821889026269080409644700148195995412635343497411997790667569851325374647721782806417820284038705186799992107369489000648819866524792204821086393593182652112173553165803282196151836045471456472276600695677777194701803349941402136955823907837171476372397098913732411785216216359906297463277563207587327892291009976468577579517969961204198442717087436087037043418683563012324832910661866864730226202208679067799833787772683298500099942716697575732037932966545687621196741692132666518918303165263518787213634350097720034394782475995868682064478349981301011964959426363982513847973228116441183187350715918143699643113000751307088165215895192911395031347902382142094734254250088219427219324027860523584647762621590811942536444196439659168718275446958677141154559341461351490453941261835639583102509944428492134680625616528347001546760451312980881159651472960140809609257832265722516972920096236483383345867386424878411118569830544791567501274763504052743748925192057275523152923162567801242665481865178127431983962614762672017146507805945838111218349220849776678200339232800246147793856397298915325378050411741339680668375417208152129465301332115957876325399539033357533204357137895064029444026952638418363960066486912835144714216844751996466515391985351168086787529453681646952198308983146962950266730705000195648708955792234427520126608141191142474704652286859340142903145184982555288869064118977250150082059716985799396029179001782528553738275024550376538215896513514160753548690610936295342256237748353546652377856120568102162135226045304971621676816084728087222502410787512238509557569224995627216099639943848831148373124495852151573790313952628358933404409906573406334190433760069109519630343306435118961076131482625553224092010751648494493585892361881635060963320641252212267034903674572066363501109705360473813735261707254431217098293117308545274660799510882777642383418217530952774036375032649440486727508665368850459323703192942793588420290519636012846752818493928993052841296282060952334921456061938278214577947258898521342581209421089460112254418017467838872130732514050110364604253764150737192907786062278609165900280565815021342273898312799551109880956474049611475455065490163111552248626201695779903881478852556423938845399499951312651809218419250843761760038523587808615792034116918811001674415069509155868819605727239718073912336992399423558696516706131257063751841605334479620145775581319509596793013477617347152690455080248468959507905874423186451613437310783239994875256761858287618521169101185307221396571279409800420219829373047608594801740642168035615002951749617507872664445662435510491703630081843296588785879929270822514124680393821881669832220630909906416103110391974220264387355872143839786179462383826826574650114859626919308295930262795137790322852632251333220555016299672541684805560629089222964004757978293197705028356011746926208870302957997130655259062666709664085393577210350559763572562881567548922917414709052879644397376659615024577546036337208863121070688143926886298466738362671661484922769583278930288295683446860759191141553534177225740208639646627811197465097753469976697619278707168733058469038926478483203861345132429879682477089744471347629023573211752633792814259966517329946133558864152906238056753893658697255249924181317511889030143753538314624486082635054827575285609149880512156026265117309187655883711212595694009285553210432670976260518679215646923355794586233274090093754162541065197179933570577872555070227205592723539576593106530060586432160796576030267997721627409122207906320739724766843899944566826900754797401020427129591602685236506745787559995889730700535846302887129980643007055032178963772053105113255653939141078342462347546168602841747622662536388366686486979346139401643486966589249939857000858362610531835659973478192786162721719456317497080060814127691375372393899796510076162298813197194616645407497280829026765256177099466865688956595897408969313922816823127733517513765274938306034810177362297055256497614534068028434681608216363532316957406959917004029278878128000200505526070467095719649135074803776360599388593322063688053891008202360452831914554798787697541867439426678609003074367527678649213887410777911681155357322342140619742414847688190765506911640440886578423822470399348329815171473227299632091270789022671095996668603718231889096050249261090264454548776971254385051013687953344918342881043306580860910184927220558143537292231344877107950376715475702791137552805255939807466193728590892910026386914153998276569680298761271829042201855349529773024518965625724376211201351259244279081298587359076646807541317760242500455331546723154484576638257228751846172515904975810846342593082186285992125421600598696313733845783487618149512903821738521282664498535832813643514033421283683470632372783567020974374917903266531986700447817110140951482278533738433982609618940181789332275082312786207504927638081252784517187194430524167920881982867443633424681278534151299357553093633268558998568892850686829368139291238482228453958941539753196059270815485818001854359319503555175013961154908202775320158231002816429235377357077091230939703279123673299861020892221753122421394409958441828348643296283308043285319872933684033751076312244597197420775142607825520930415522435978753580018769506447027819986040745133152827030212535559565465264482484872131428560093690950832260741537902077467686059470014348991954287105000744859739588568053308679644395212263755539044068424965081729536694855572189583502041859257364198286384463749173187486692044101152974865545015938959430597448795764009724337518560716386112081944968797761943323203195308931208701227800016976309689049875925731329789005299839674640424410795394681870995690593203507179629170378353467066431441964465712517324624496953915639315129261110807289340707613125765327627231521493579415724845048635931610866785570994444118782527370557617550264433023186059116434704297250638743738573965736214840906928851074850825435869183592825623079383185575434122821097534869797247369406624576359493633783854486095743831209840414465132190470566068425960494465870328900341495086052170533015024165308809781258136445063487757020299096241930398162705578273289630186994989639846660527346954671077481974420587662112610066664358296990915264468576096954607860389563634834962142511203168468190622474105043331550632060883162184329645168294908074027752892223650126877705186685797512767968373400813162371367303298990973203514842754450937192068144224999828044585624226654049959748987404111146982308413499370161097798477754785025597425818689661070383168582021008310613084887951279676498814202238102235480619824126778900018983514729534784135442865309035934101005944816010336900754012827715074588460017506223301883894394505314745585468228673467929900309777273515698309286857465644446381952792829680109464510163310017429636349772442495655908149648896364268698033390316425381442999325750500267283478807320622769647940308384774659751028832379742173174092672841800239763278628289956148706498312864390053199446476780125673740431560494032304994035163603964188975748933731776666345770923206446843386399934113815542670204847274834544220043619278843072414794548969510875070311754260393097962915003302155767162473946595296593091975122576956468762172399734348399076238010064528518259178073197172165580699021314953441817473054416704611887149427583018654980587587552651216291943453358529958810599409388078090561244303512687965018911668507499840664357306039059975069814552226808113626027564306802087390631983923780974680832080557388901583917124053199190023086270977818020354025635476485317448045060857632724145152416992874343266542455989663920731201810093856078098310075913680834858855911176147139135311653319863004077577631512591547882363402738869637349854572019653715535548937266963635225036175849029845699979622374422821577449321889757154813554923624547419243858375321579452650748013364718430695846274493407100282396986194456501207176988134075603684850162294841269220632360044042598765694302411438357801222766239844425814754236840067184089263563230010974809412461106264001247513585271715323306160640763343530088352432406185161727161395097021258411282189401148313345491656029264722774987164435170287184165907740669002151381263026248047651060558241604854977030085872450963260834861488370499319241650898887527100693172547242957689371051593249970735074810239753677125829656069796850353448452786308608436687313515541620145218974411482059510358290555599927614875151387748164308134205987449506863123838077842490756646584552103601528735627815297267790506240564860895483284476471961184252815761559420095318494397628445743899471094342652612883625078370809378440840102786246604526398153212047748760745124385611336083451260199900018150316743937555499965604329104789996279930086940499303680190675907035871615599005661303437259364636006525609394957953763672959068343650831043250418423049693383623192181116359077710529472487615481478809312507604942020278166495830414137222197166597669345105796143351166297431506340730451261651147745485218329962965436138212608794009748410983804089065182926941619438060565358049424173555786293407071950665475540390489487630740874628055938433424247274735679070040154838725116394165982978883481981616308870046917336296955727076176475656934777541035680421422434784717529495315023784175314179964924457711734711432305007506952416317779313248539831647848397639247055389281879190719796481300505161138941788390270164965068423562308439200324064746595511626897419099634795815306094967704218107920348598377076393191502604409653677891108692408349427599569901361676497276502107307175684029581064730060923735664311966529208609258106776863439199760438966101531938922015238366350595266295708929082909747737696346021571825351106694917763905836608373920521299663348653025646561684813861997386946180284007283857647317322865895036170252771340351835875034394083011814957684692898233328504758471413375009919702829397023409122168135207432866865501572046247142114000969110137080018123739987184935615701712768930187242945177335577878386871472893521302618968167996078300807745806753253020853065272344049730767564683893828756629329132405522639605653074241313887974267090656985320014705884994489643838037107868839885870876186799620337551167956153798971535181718740875829142687666512242615407838984039594649517947897994176325368556918553527925412363309292426485145806794300855362082703977262408668230981228569059608379162555481347890332270757286027292168543060005155258296316315552538544494343074590624187172020394164966208767347022732346111826140929155626404653646419480625608694285462539694700816054465576677609016835060885747293354520517229954264783354866102682384332462775236714439963586809764593531236658471550426670621072485615987002767718184181575387529074122598116358354383784439061192576321296422493672639750589068180013644260152306925721553020828707976034685145248970661832584316894224232122462317779406597933955914350123514478081788346606426347578216420840770671506905123849748148087523388363488687738061821890961636380185806688727905010869860668004974431767383440912249909495271372642239163528402002610827582867499922747396132875978931569034211620490377927864299430664421474027932566778050587108641035302892963750098987546587561947205825203467347075002934887019665942045426794120535349836838830041792789930290635739395990210265776714332895501090336476401591783281822176359449685239263172788666938356080679771404642107536478409513809211713373832784582806948184421162125680859421800665280860144083453654315062769889849113400966070769127891933335340689532451524899240078502873691262931661018146694320167326344492363262398215820951022167307984037842107859642384622995091163401504536264307387823034894941026778028540897413845556627611827022620245771940910973792998545036606982849646418082090863709099402190493900372081019903135614250371769640877555570561574221598359534761932745696478613000713573328741686709094374006766529432613963153824371048191590948616346338053932775099261247478265175777211743711781821860781748259868060932624628826723489512224956718399165478627061458895611816919587321515573942315828470095900764071795393104802882507132524792693430731763739915400201005102442733332019490281798574739031958910988833921907223897673655367261078595965228831180286164077665087274491097055363856563252288020121952367439421635395997095314819998354755052112824807131263455152013081140317314143649846510183208664707896192215963323613975800974356809047751314205116270083848228647410378503234619187685696481973127861979282407534258459809483604684414883290181389885161489232042798485143683182040207588296212852352922606179896796913547779641906617061464804099692451129071262875542455204559611926546364891554636879552586913351508605253312488287845447282516881171559595023816951828449223506624977906548732828506195663997954013792853241136399945198908610036871869310769543288929085451202183810101286396407534097288972675775687466068571813490434409048234600389232047371048764510199374794700010977717489491045581715533871248956271650525125724369875237434780919595663684965347512550078666864758290329807250156914475543259945103957667828787312319982205892349688473683282683904993978011458028273254629545494671887112552790283634465033995565861814200980319252648781933979242194466113969207471652348834640438507529295814961681248417744812509483492002813320809888797361306071252754673496810375819256716369596657839437781014379256274771613843123702431940368972245781934949276608147624294068929734289661852594321296232894607513134583038871228086044598972248775920551710185978820479414235713463298430453273051585913266551323033280912392232517020006739607275673690097723998752896392130834609468816060218775775402055781683348297077556506969108512896445759225548640233723021822786900386430209053581765023654767256115087580767884262989101458854065915447849859789539706906013518583403292194029291602728750957107978418902872840379067038453202318930351823090190949902859594372565693460549232552697213052789003034073878325402656475564363185020567984326448547654161099984525090261710264503429725863828377615558131688622774225537508356856341603660938846411835271945763669232593269150603903790799554271223304805328353851004830905934080919595526679533888160524680818781147359118944980675165051044759706316349585374153734772167789118426814815556880836075473740128753785769851132409817819537883208171972258377560991641215035510062904698083629013039050961204303796871960992962682109986992499693913758039526533015877061829813311317623253431471675125444821630696855318168214419211108317127744396503402184509895345439214009957737727247271853107604328324416828290283119896396447905378549276947901369093140358011662534735948778182338832658273017087788961677297048830560394856932762672628685088849824045878881721250398187970014490777476840490033678745418961832037664197550225943263504821096873807232415861576036738020046080629449352287217587080481135207423928166694908138891490021531832585294993921230465882256447129050983986197853520611486089605796190949655711907942836262203165647933263448809808166265457614683723753207604212408477692334578428309955441643881192852970353017025553201830102102233378905405610986632818026308242796387879098774649620216176695311083039693234183293257890065322355925997088197086510755647454796632781896768064505257501339032176297515326857041378012741630834722769076444340480511886119041441433340442632642483652987058496198631029787345602204538423094350275119145199846187838711105225556233983595874752575888888014126723595972698588342088274216081297454172406540169025531109224995139967532952553061805319763820402412296688540851468472279900859996915777815615237008103692927254091453457584940954970894168261843283895727628013643923472006124353739310641825239529887100427087496084768519862997119254088569422230099437816201835981024921220357693914465649543386547688005526508264932074860547209085698550927139384897589863219367411840312388223698786015837563866233074778253925487324557153942563556649410213482873110867890459981921062058019018071198538383553385448069160541108079692710758854594800479978795839630261127748065171069697587373177213799192058014966977346159863870351775655570859396908594884371521681705939832913136690689493205512660575716178337455191109867516287473474596852627984125335076397349262134002114018529958284589607580312528167942405993640196114766944313116859998302736209361515451691394483712870573901912869484657568922759258979133180564790597643763558307604472988223837599829069213636070816662857535470909197992083531538221399357594702567345917881115129725131299638303283122782826497659505120667176759195599906274125811018831899829523267901554386712935441989904664083329663689125438636766371539368326080813299461019928327512455312111985634330530631955372770326060960941040459351335551779050096628791181882263301087283299066080869823158751148229401476025206751087009206857480755199099269272847896125644105488224508831996073874180180344933524976611271584232602371469844517918525356969071255937406773327836545720956753034036701111781068364303352293839583437322411855613799660924196203788424799480354171181005686915061960034316328359881867089318708939073528645273782100660423396658714955049859717184289611425292533593273982701537917717852950366860721927973718985273153293174424318412467231150079367967424072962738954003748055904743579504825706352402282599860547551383681221809024192815262489142185201243806771058175335500314088678599326064444516267101095987772035427015994117367338863386246423505096325374829890187316974122388005563312422845521915817009812132979169576723096303637771072097123143110101827437507849572013067708530224068721576664891319165604419222973989062796578463057385277435914664637386731473666016442389167498834950941946769868537156824912638444213432596685741474737643827330693071087089239063744759080485159440022393839295232378499476610309691700016072117503221170951997849986453174884568415480725808655557372203013321281821842211547552879520751268863042233104223150206391838116635155357177010280285002736274164356395387606405011789979973372141464516700522984601752775451631620784716281311834107641600194150717843430812875893937921314756517692035522031467482359202531243789141457142744028893846139351100707406531714416784287781453899826539217736062692100076746537056893041486125108492220524603903266614384544148757164727123033896680803682571849416654997222974214595348707071338485369285672260221394548751119482079372943801594609304927960395643467167190141877198878392912671528416397691039837766344850512117459558904301763445723885668212010051082761939882704704334772965019474768720738527707699115389802907594703396519560586226845991116743764600900245636145865655358817230705396259784934086548474598330755243120991492185387967134604030100702241214678387072116355796661114140603531589172481401010547716410519227071577482402626368383388676380710572280152624332186598766592968561762844274417177781171945248925999395785033958851643612017052922629925776387641289585394728433185855086487582188101485102561387323647185971020306719273721228281862947991993244877156506699644665253099083640464129953499490089316938912769421000659612908980167251447455770756658067467378283038902376819969305183990958794555255122039619338235635252105682381614854831635261057034461688735593225056761658926622659500156127219107868646537405335934090165414670075168857890409790578582986013315278740072654751137941701837384564453541501914909533721066601295722992923778617819903687138013549585532067731839657395978158594702520637342332814326213895353961866768380253455512081014913502004286741096592936337053399481085744355418247334584317080265085303172918017996717231025549880773369478387367441703500667953661738045456775508994738411565222279223949766035962349702083868960789944396657223908089063942232617698083330233267495251722786763982072272788468159761382999464495655442774995940948404342300343256839040783266134449722266162533709481823431857697619270278853891530527770023177758843376247077589337940533602204950053221664099219052116481724392011207347293187836751132983776519285701546277598998540513817469837374801095049194030489064437524396896717521581911925201792457325306614282300646030494781245696836823146160950431825026908818830028242212332189913950675291497446522436985542183865203743374582820674346446954905376177800567731709138620652073984506110949280034089860123651109258477490042251667863001160976138071203149650707542106300350888195575640580403940145625400939528810863188420702318656811821040407428078179039108998527547715779989412565443089917706052796446487295271266554097135595852507874798211845560958332965636979084334369057226123696133024999026056170278577955823959382659647431227308320049569338245521448062773128691176498560165500190779738648890488965532191856540517980555840922257167788215089564781763697232989840037002996730556960397608500636562301987849827352986533397537893519626866184625986963355046793526633966852817791052869014696048497070099764388744717430800573236326470654113070506867747809665495777399270255681979364100680779320957174943790221325769922005321525366509040690788160991613631320866159705644975713064789859810682976219552479522838073662094096662723942345084435524813989634912249701329713318468056568231860709177149628393815705543619363048111501127894494313490758452270529824600574049162038434562176020551940075499178109461104159136279405803968080594254499298130183342918276195749095988325080129213355308000794043094659934808828334732496855245824677742542358580640341846493070600480000265168798748091643039380733797326101474938417720832512721518922483636076520866585678150931442870656522258830502078143072138888823053464700708326179489473142775704237421374457243325980657139594405987934134710438909581012042008615924616394022612344306852793030385526853489239675902695827384141870215601068086074572028273730031944306063382902893624218837994823183131906075117984931164981566473943985494725795763241875530050634115928584865298795685878860018575858328095390640546681422075428279491842432887197735228091182915045992638053512851866603196822955622918651774140718062839067910912822695522950977951069901348440817707230790716979983140344892953390215536608944248642210524014707905241727654874057192343285921710863844213853900023347229115403541290404911625862247701393079998059371683595561335127502879251050452120105560739575357619750534146378074946793205303386757897861514883613923773304034064132483141956887342619997865397073768636294063185675497109531497275964466679490832324358029935908000856533347565649719151463289347530116932963379546721125293105707608087930160927531554507777943498138742461885474935548654871695217028443328102270432746961997153456205759802723276228799562943974318759728511444130840506351123363301547974636624730565230641025557677419184170691876906797929568622634141355653717896849922914477094843785841277978622148441628356563531411397230433936831678691710434124794648119785095600712156580044175085201105132255278269636935202603364015052386969382081949424249605138443383281876252292577274037028340688613697081895989369249162031206914023340635469781716162037956944166995611731533732536336926710121504129966009168292200187122185394784727350971584733052621149984322379789124122155623744562946840441099640888051292740091239327824816369167220946759233298900737253398628010726924757451715533469148032644886420103887525207676107011358089608759229364517438443211641369641247107194738870001471152860535195338456904791231565113794887379306658164545163184863256015762716969512166340172706160763204644711317015815802387932263010357370537088725522595004826911261387005326925420370475753126500750363514615443396537912789359302835272178768631713595398123605422560799734014939402019926892013198742585230045102830526692549818284293229691411949911956789215731664450745769485116203482651209108404735517112310736292315076374036626114232225394054442496248678836227526970744198032523874825430249670227195812992150859625084383875189993403095649110062139530319627537241923312123690764141573776704015628654729653862835751593843698252420275787162177091819636376805103347519280341283892733715598907017538375827202872508820052217167307534037546446941804607520370472336261561414251375600479508545989846524628732715007000291051104876415140152979271110739823771649051876118806821342896526364858392653764227954972246943849688181924322417732735117620368871138163066803237976030516451041036082900124098993699821209805947588558536535483155628046016615141460040588968690610619500126143530875920698492248865917920267424231867343954437958880267139213577953079180369267013349977953559310340490216328975638122011111023700073028186841308185245845372458194220999349705136239644831679209453001720561113179461574712066418335824601660727873493047726084259877199744722003157548097860257719425182212467504368543300875045255623034396045006114918555606498899371239323751464015557862364513974631636967222029341305252115878601843044533980874464571283881168044387044789609640773581418035142092771308978736152851106771070846158997805005909240587690884011646917472299872642238563288150640345153874311749103339907751005208996616143851873833572286525651143016149577882560726053263728094954681275015194951406897245114245003593375851586418089200805622658850875524263758668264231357911014300138658161470076456406178327186675522348375333447111862021549650548204631246526704354681062754493343681131871799292695896374318113668629834083655556545705796374406715788760296018118981369825892228735980588814186935052635556817478513936447374182880365233564651728770272687019407494052467159657602625964891382630080170820038557828903874324655731746099448752162122225542277414427454246813230142733345784807421986369918787284525701565727591461736633545743077911157316254930600364869780654121529016888355652700925555384098797561818177206720960526615971508590649421896880453303019035880108467840909916179514992429730191090862033948010830395010412795164565825525362197143655728096556977604613435306165927015684827233075502032822200314848773019237442424508328818910145523763089345965332367337568348014965587863253323522674791809713061193437128747430840385703711512492177293344922180235157638723325058474213316095483749387651588647401338003199949819601031174785773900819842826770003156911040163483616134090719807628773774669630990029258204407231634098421333161867988423801620704376316992856004173066694272727597813165150280441266794949033806511893157741187186162935536122799768134505697800192165921556801475179974899445305032154136262606439533405183258294226121506866451741687784257589924669653262269511858132892296325510083205663975376912972462262839220451641515364042549464012507933992288456270721200331185878867437077072535520997617174065348928926412728932976753350530614527212124683907725615814229866016667828538224810265052905549266198394753345075050896012259678294151107052176023303617943083392086736597062319403668771602378903502060706109237010141108243736360808205564923293805774542771353928328037594999714795058949630161259553032325662839142430137372098141776903107489237376853336503721707966487304068522152976630286461060694895897534704234802742064112245570159592850361182717073909853304004176378824686567388115673128080872134509360189213608072415898991551718306355689415589559879854383765514680798297975620095218478664311782608790689904307095400571051787483658406639679000454915247358060441353435060220511111151435193584484918731361372757995407283611438514851523759465294897182483288588953157928436727484799324602684584108894747875665799681653044597372264580973439299381167892388482163516556900195795128475479842916656287364396911845806446961995378074370440031439984030131293585472797076269732269972857671183998555605562055047307668878767193737804108522095020324187993638494554593221143675709278695343366283916664930775156953298200000156833561675394021140648163951385556858870628901984141497641793973651135283267189948693201475304120220596680237483008869186854940225937123179367055464686380111069058543297087664171315197514048798152490587293795269290764032601183685058165597209872393587090305320784316958931507308794988546111002711739337361627615266803034116328478793298703496470209829603664766915063294292339795246320302301654724744502469217965579966380150089797866624230194733395455275122851536867402200528673280085504767942491067411974166196247804429322825766618631232229090007361688879620983232495765455026463069730059377962569813071186892307895847750522154174164023052968904686456101900448835923031185418371580573596998867203176557893931699974136411585040488441784870104848925897616129489079115812924420977388486407861965929322981395122005092394066887049191389618556019479431031658144812233518442970713935986374517121989329369477499063300205433270613733057475114721360353194990412904862633773201858906215087876461571838805480710114543718133798580665966609143451974601669691019202729272091441395178547690654907438989465450578407713333487091291579436904767895009002699056942295861189037025493810222430410550150786755058434308898403582567329794188573617302071290353789437795291706933428501000088278529873318220444078511828194344129027343320966585066204706189368820713434833138167360685816052703406513161243134427863333909807832541021945576172174861447590159571525192569859605716932040394574273588411107658462971484296281622456374153578223779720463929355405904455020860133500836431708514912224766628693914617313719604334650069691001943210393561680130482857110417257202880192892505424332952362151234875271492834681762503772910644985724878311616321147394483413169701563329514355390991147908398562277316153843155082492691426716377789624315913566058663025396428621197365296557192837087549063143518130066502118259817485905874644339825831123089556866420094373641785640022015318539942906692057887284299943094604431302512859820064207943123638809144190345139586342454665196691090563502265760668905423713647768068634659573944231101125926710923887676380779171184081930320744343162745494272796465102586777148481678366277419613530839362640413473783678514414886493233024631922142502265640722804364057253142334997000069125053991211756299572805541415320766576132183866480696114832295451704954599707981220696149665879483956914904290374740706828720838165952998525295823208665480546015364331901278470611734588090449544544886839298215714919068166807692828577581092250952087814362500206647351934679273648042280097389253311006024498611799281593997596037122800005274967751995941603795171894931612038054962265841909724783750340227306658530852803483056421781283181282578878183411435540905567841962066525480106312928521164270237679835313646344081209186423482116317669639182353213330384853964146336677249909143158528271826840403759073490681086694358978148348103216800333521805179132419073223140617597856355072353047615602717066438424165994919367967193693237349051637484066145269973442478127429372726903139365076994065397551671662213451037099325671693843777046921578584012618178607556006561921953693216461037928030560683827610711525780086859409965185723886557185132617851329124479154103791587929983020799943616851341954381918167088702482874620189604246960606951979947703089313368881891333824268350550808049124815604572862367615368969407828877412158051027472434352263457607798957168444433012655164299174580384289842261438201420560009105159432710121223080273562871335501958741613614315032115263443715158725226759568019481163010794454226735827481790165433340900116260934289603591356973198114679688444742161699694448873563269769439184918468049019864432826737534429348769680530605535202523160618795136383196190392359623610473499699071443430331158690810860446079285678893517081338208843399960107751298541957369137881737269579755074712144875614124189885407722117299070168166582451417332926801413126788034837150459630716538141349610206378942565571936559782379560869423292015307059732098986020238763292589684424092235308936620683749280502415604683632351387598557879044959072563554971274263016451149574421409400379427360576032307897157487352079320498934258197827039387098872140481578018829017649507771574649075580551744426844962625302482090913590576961840912031362350941409218844485876747142287881369941136539802468811481128000444436007301750590715509960074781635163318517213810555747998218458261082774778352129548117750580116316945658917785868187658650662575758914635518968110714474683381817855220137573388061700006545786162935729233936358662362622959072890745739667473242495854506557285772667561871504672619845163649253106511809545432026884854246033013509660293804170080060055349574014663731049373360001078876327225173757843125086211672564789646673582460770028296278220254644687073373263294997172944378466639810744794616199822138202809631722739783941491035490428533681152071970904473581668731586586724845712343562599159800386434803458396123421189853133128238595293194492665187860098897046997879161136014948836985056800062304727342368064003583444353566092918009854184703105341953386325459713702123617091617702487748397208018752690757872188841916616001738223619848712143539762902755319654794082795261584328506867572230523222534085258510104808398586555665701812138684468465076769624684725129295779947072053009862001162805327467920827188776852342391872861600374793060911668777504760861650742882069969085750687343566023645083663903106449981376283058942284770252988923695248358552221264726110776093526308762954370167646999397367565621059629762226912577898172423854486436404915774520712031887843877424458663754187585171912842100527517754608175511916735151145165221104675185815369188639359865350580423193467833482329180761866171978941872244135529251237639818878562518477171541926365719046812312731584845114194042891593306965206411285271834567570910391450350587858617801052493920799015760161922568295928353227782641946494562694416119949547321464496631881028489399551227322374126874711530651883093738711036031340166393434477671611095076322575764959109747339223279398649845897869102132506955841513996338247567804598888972563213171065523259284085792759396703843603575722038944017944455713651940610076481724433639688511986525168413873073302259601645104736857868095912948464280498447989630856515340578718502475097720292214454930064843039512929144940156866783681596399644482369971595455836506913037452008784680259895469476143867023566353431236944225473835260633340234266333775153677896968758586466000306902556703421311080192478784996170493232907984449194549254253930197053751110333491064884930045348090153326542141168350117133217348350957683864867924498181978679646605279428320646759931379300139891422113965142499779277257333130650279946503938938636597694659956547775833874766282418815416706260383759599347725847600661154721295358450026656565463647322030127952057354654801038236183927715673957229217662189728282403710005657043807034960804125224280565949053324130670344892483297874463644961685454947113528434007785762761189620590623942506382697512411857688684603750337761778215481821518374470310805086540758922762436859983841181690490123253774865346268522082325867068875564249396840952009629059033067917936476328200297848821578058086936218015218341136305749342992435305343831898493107258281063423358141176046102301024107446283659114997696454699762817097672993997533550612100939834222059913860431809749754471336727223040776100084665168096992606456012482561891021565480432558655566631575650706348555014509094210680466328158043862893291544040211326855017572783795454615342250389124068808482902413125457280001887942166768939651264168887047629433296710755754071753995589989249992415331478126783996414743567462100807186996710441227803896935223224167111382740471063564765312847482387801844364251988523193345103496647760898161596188070653477754808864096724501861944276159615203297550033344225865273182205712511319581021158347064432695027812414604423787491054628714668423757618562678079179390792229842210481361669840696930882419209815616142744887752630474620708885786286897865778830768756582343456738881527058916871288419455709147345422039613299390833784905964015516732233269246122731136055739321811703046201577720124640031824797717876936182933755218851574812518837798374953077441073653615335591874626741160487522013396356894236365222981552570571214977412899407702234740444047668460411056369265083982233454969360583662142973617467052419480040938977947598994437396265911204837581639016583889956799464098286488079849989886585724598633439181513802705861025618378007704043700644304090368115149669674437475798932126723233067955911144736764120912269593654531616820202640878590115715442178899838640255591625835994398918480048055043259917714923045079464106009370342204299396844025078516544127963886879160115196152826620102339795890729221375346241429870034862249073810739409552420821587715687517890263139161800995428736317166827034972317713260551776815628976469156064809165501663309320008357560910509050769756922425541942425928725007394210307913695322567126723741245078430068518635716479737838958278044458818743732352334908918747397041373080959062321365678737758698043732744929188722563957319645251792316950174958445028750498679180448300239230014382635233941386779653436659378861649168133967734091718218747418013563690413664968508525783089700500405364701927397701200397140738222428681788872759527882804571974655022286585550948078016129700696591157324946654796548344945488174777515011504513631035483782806568109023411392254994816213333303235538091550588526122638877185759833017005423142109315014626798055975038460697833774073648301826812132875958700547786922472541822442288118667099334283352769966058870797589248461983881864730584817511242938455813507683910720423984278041984741035847613158571346363366419426891561987627204861784691373426694302356555895769167776529844788531611684922615345257760371145953658189810288084477692733045464733566531620143068130969395626584944499561571164074034296969483923375505880892232375187974275022999221084124172257885742085454333183475873679129403052717003998119008159430249114817519694455953335825997183163891746983093590568160361627443818926879242652832119650644273422642831950964471044599984306365598242053507487689874366716324669317054822991263606615342427655189303185097507293111452314823756187399498331708308574881704653565148783861444484967195695324756105720711256759921552513451360074385883812476321377339173967236364559554056403482697986927547010291937532459459844132746083495203246016775285153140686827141946214438042514391705480645952760072686736927060679061229810387894480212734973872386460691929821289651777557172009541258536862517634346150381202054088008424864620005780980233805819992730299606923088077432503130272732319892365316031002085216949723714721203676085268812850746549273937872824359835210519952555772941481676989579529296392846037993745214961360991728165168927365938380951946082217442815668062694760462110408031043349296193802538975115851486915078121254263311994573334675074803089593063584050368845334343512317925258045571391687234468117944741441268561988435681641882524105585658898839535921910403779633301416511465604963986304768313690075308005425633261360850033691372665221633972254674039193758536568902530442191769438087681671594220386316039152957258105058822495671755938684400679826450265326663331364695872762835598461943385374225362461454727072917507696516468186692853339130348459206377990200854231735269971119355819727150414622393309450635340739236232507296462358757351971915860211078106801064990438617806290993099782601679236280141029335370882865050105296963048592353313731657192172613732229791462218532911163908585346977449474746986149561844844585956944128351962196606055604515386772776202085146132841799023442582069753126735915169991904514540711505790777464784288274682041291579691311576826956729537771587123031996804315965967658569432941655350580125338192400630775853774019838869695460264517966111225047113566909528223106120777167103728906804283338809464339164522149875515229446003992738330973112259758819926336639868938563264359900739169586108110127186353228249543723090443574171674330800698631929436846552019768464007259242607621764039026488891958222033598459014190759359456830563374591251120450122107850478353500955106550225200454963712165579821838667170902439257910569521766565669071161807995158322795755047939770941185591212730925706693922705310629035375528843774183743919779251834987342301178152479409821129822184260421355114684350231390343589118433672032661705145154193684161406377372062127525102467564179212240351563319427839526067239052052577698320060614015455483989929814682013298685018826512012671176592024102425938766001024273242581096912149413962629587346205833286806134847475668716902770227933820008607648926651889151778323459054416765512257424146621239286537475848633543237629843985741377955221397862647798435931748587018871879235118952407696241356173823159656997905845070925136646377223161087941704375533169164526230408403044266185848066403427740096745406760559315713519864577461755651840470869981408889563633155323665194321513860830580489751434496635012207058420358025041481853249655728425952413427613737611093400800391478142519330722242514929052709165252135316426786555336989596160568834915609333339080558574161920563843769452468172140087827997567435862457273405404174084831849574599860873943125080442007584324853597923704138739386304680762985023680702419412563206248647118980505876753509544164237162103391086323093330600365125621477990261118326684191943715528178218381535645617621259350821612467665293400184946285069332817597997298531066907071548251737014638386964450210402433365626783446051137590326842513910278327827883155191536509377882638364672250503607658532091692294238882625677229448563597278446208232010107072924680431917397542973641875172590698393027487894410119120731533998445508262080183753880704227922057845395444672654585711051802449929200237306858753504684798523327540126401630982599898000407202893488729981440277721998672315253818256058716803735297367599893139443855533238431665375011069748099342714878316286232193745899867674727912781069637674919435073618674542376165761432655070090819347331581324656592050793166962435071879381257058365973437468314937272589553396929248937999505548506652516140475134815960914576431223398225998391316425575314478316650883502339504619572091300416758751769436399513197492885540211090637356553654803460112825354329725591207859037750175696580096256309463769110670707362805842810247348942535971388790999522830633730148173841404292146673130616783924745698648538859830156991158030414518459417668929603131849659775109850464422418660159685561607216761770154373036603325603015229846627689191408998441479626879189887132363873254411474261202624837555404524552025890054719535949134863866123479446976205228815449005160378273800456968739694739357915716398282211675680192003956744980912097740741521890419698777014275666977492581567544757852203917055936601585331731315770143939944084901685206157753050357346551637978323908141285727450779881468474897148713880551095725471800824130550396880138784568169398658427431297193019878819452952924995915222770317312446856252067429075518501764711687761329907009834033833192025993531101615577607423454426894129689910685996522456018894355039202631991721079785975951820593209529818496796929166971003594063481623148512176063311437113948865921421879105815331882784836564347913876042426177270827428568535532068211578440269215740519961896058810395320736710590778360554715780912518535833018389549315003275882003100803286963313704184580073428623952954690641027040824403679419509069889774051433998305260896743102629622686530378217450324926552246195688134429672320576963608928555372607719968488679275992324528373581540898033673785408299858333476941872672554825636259878781456825633024635879794148691497223779519696123258574512127313135407269109813741404361099660146314681123410823570028964282869973706359191855970115884448063194691964661159335452877273837994070340331257512838671200674886028241706366732322821511668360565165318342392420494375448568742687345292003392812472807455150588868928176670152728706693763554151079370551298419076113325729686176010122083243536728582331247552029186111741831792080037511449332064144030433163349539595060173830920479791044924525475639823936394167443252976143585394209967957230462069153207449868759133891133133119717199334489898288387931309666717666405596860343061275364288602418475487700586784989020965521657183551275880296132966596104247454919568420803141345745294648209284891681736405288218384045785400403381874989607042404066614278870153919347616542416049969337685913664916087924967659784571854609300609844706053018057011838903572362700174625984792145458663356896759864695497836590649373556812116334307641120119633853856544218774286944967703648247817171904158325935147647474447373314719012114130610911481920799515585674523718402500429916676328040764978853953566903590765084079242357502433743892996285461482828415077128121809090264189168973860577089422984487231719202533457505434800770449581103059441593682241842772897302340964326299382412665809903029861876135217195043109318444541539247179541041940863419640982355257895665481789233759616466492967945286902763382544049762015093728117816152997993113502482786819753274585410572708557281881315727505860839926233029809627523184813213154315677842037797110736165538875495820579609063968985924612475900501614677407421135041592659531578473656713693011386955795262390711858169708152082775914349114378951886216553191123081187715446786888295343562748589702320803226133240942944777457872078425479877796916958441767976636216766286850036861902210106814917325846253305675566469548733283607949728562370125891148743046732162813887244173196050335700898664268081328266465101225026847954141911912076394103927899433503467771311637626935626385515260967806264840793317856583063607976698106970118246085471675437475202955061364360564463684921286313918383007638067628777229605160152875735675716669037852049532340913144116753958057412242958967555275301465975686264787987512499320336819468158129462206542654310540402691285091068407436890967313721019726255391009388687977663173918418648453750112666781991680056282508058357387497982309149111201864157100685374874042769857524176007646772861987860804094279404150292975571894773056393862419504083403108473367940194219634690967565670279219301215603614476725557361586053098751554870643714694786097565983530159825144816147466375575726054856461060446740984038938769062779123038079338062388621117131892584535287180123249670745990102694807321385918703991135849244378367700464516664199061755117074716383806287616578705108322168955050107501600300137538042127443087156469032626814357046773705250688764989549524520685354601105292773530298752249299403265745866608792224096011876923375718921183255689142636231485716801526823881469503602616031971467528987642135230881332324462699704567140560617598577953419606931600439839831025979384857988246283226056696325348035960756192811862309414420164279502407484848841986282859332188611573145586304389638395754641075500720824585741575058611433986892244504549561797565715199434992513452415077874143734895540295195017669257248752466951067403585636382104420189256630880492552907775071051843963204061287386594107713643256926725853569458332413212641231593324865368067108511032995652309208014347679330154070681589416341777650342740805201544809613973917196664831796310035391834209851695123137607310751604206852400913684349230643000928489827103857881226580556194401285994316448512119305720231156578381049137988742205258264526285491557421184846507874395330013818654232617735342735051608044717638950655720848826229150608295279632688369247694072040253932303101665663346013160707173586286793613751520900406499214661909035038762200958682237022213197795763735715449202698021813799894871444004491691284058829599688633000701008750151288299834269747595985658525373248909543374532230113131712550617093759713135514148092117090886113875480806039002629476316697727983387047699109440528020674753130083544996660066649659595213577177782270024941203677795885272603519086254269070570500309112644891366733450747666130844376745115423850753607006590749345424424156035216561239561240581669463685013539027873915907011503067357227931852727757573793915691072004777642495695451235933985010141203862971350555222682408821403855991479071892425381390429625090173925210982683546662774765725929702043013383401709779448899280392368579498726900109594830277159502493297008178416275611272199267134329196665280077435240035318393756371421149348072627339654346679937782808683469770978896986871860583164037109076766019701119279961995085540905956097111939416330647574052613880253188269989979016219374066461931089401253454851863241828472776317598348944636998344935414429137531982211957740004517951554086763522171363548822776451749789545819463469834776691442484274756662999220960915921811410589040511336852278584129716848874016025120883384085740438111915507830241073028548020519382704605732237030698565347994568777341762208902758023337286261080385449875854923954667237602190388504068653356217217290382704289396150354087456470734708328624894223473608505656605903329680023549392763538171065587957500452922815783945760541411706286545265583007059501663352536105698576156296980792776266571157614693101349884421216587075624344286394595279819377271978938332423943143490165198570740409968272189295982487445585549837452443746695245195205701465422338520743230823086503595605667721660814264730643521486523610773702037696221442376841904556047989412549770401481814898618493890348127390773091362532487372164028767754669666438985727028729494472368342212461058538081863792272020400321228012946780210219067421157547539296579101143183304036217088405713691512841660608650975677730329929731000246934590530134216696790148254779923934125779814192941279073706025489156594614787005559095771578165342620489950074953359430855641540943615188661252635280959003624712968606466352492374282987004043934805484738800022363317188857032855622055150460177011500601733976807894941654013699119251673247708501816317534902475934758902222792715739637324401240753854699610456971320915818759689582838246052372434490996193412905925458258519690610754526927840948784551136288072370256312188878595213390654116992795873007959688837996317574926652248842164146174924071738549102829842342159398561340977558511805641830394189781357954924901521996420452959678407827797385719465947684509385879042329398845481471199524518691143068865371748450040835383287102273864596620599447010762927176857978412946039263842994811322234797963627987881175506307108274192603273611367086966406467192197520055246294321491418825588580164251027605338149838383496333491397497586272389378609132984099032355685571894741319471907105755697108661899667769454178437937939749719664548543704154053460786030225747812462505082534668507013850306508368569652616460267795687868304691700198183659851577180956448625811861209564842992970192890427334791093429931593363092089264911213666677620590084434401925615767663479744175977306025998165595805660280827813239844360186309071839308615929375552428819318406663832537964727421917986355282072844038459626275503489402282251409726007370062433462866377693185849238173036255875000167288527660461790150354960034009213257747839772622144738331453023124424020444832786942349832598975944711030034656843669230737945268237172639012411381020070129620996550871985818865945003135608769577635248362308663599937065891253458403488770789965197721532426289972757816294324662758837577158534028917869937684121755342707648431398858370983360451284990631955708500137684438136629759345341562732995988106680175138116001500219716118904313779594872738337521080248710085681114633798056559243670897857148002150493800739876550972507807472130703760294696531945871480385946106475747415298963482153824417829656359869058610464732578930574081560496641769105859198672850398884287247434407841175575801775421435008042050842158641980647648028742102862943431519349586883053378177646633511555704870708233897880167572781715851219106530931133471622838107367744297552690202498378860551040877880076084649085913826048347174334181645064964545702381508270857759793962000600309630148098085689359746364853052354113765636841432163890475521268845376063935471377813782668865619000522726098899866318544360814784045914723825391156841149232667538251709662788618126150258151640010882188940706423044759258798341090495615469102493499625950902901995511078837814263359007005300759257107901947006081100479348019686157737549752881902153480728065537361834939672999764984757852654998211439867398499409203311814297174726280977883249441832056491339548254580796033555076948008453236308174436211550018555317505226411375710636601548713798684890876629456685635556672960692274251045962221872726030340987669180739196198599899889671077637098581850059821088688625002107334301258349083917806467985528490447446702444590111858173643982133164698829338140800330593990252925986743688092262485727236075142533204438195980259523626685812567181019525771511987076193659425064615452226871105684230200360071313701397785293983821075443485914687777160561035161768101951933871443768924286259851322049131850115676830179305948793068977897712571181735343395312793089347680114476568468267260226940274609269319353694557099963859059256729573849110686405029188470012384126555246460923254961815715840849368612608280507083632292013596932445315608136685563712120414778076600203533213037567300094129416901868412960873725475626445896443574645688359277360970146728070291166481840576187574429627732962175758071945941650268479347149221584984506956749191475005928642888517240593849489901556380160969812224289292847082562883195781863758193400703824234120236032589723816087967144101873986526434912490255627477135748560574390100118882990055071235118943771291347655767790005357756829194673031300811625846173689393473585709270892210824530587322923560297921911653136879664638710741334192287693248481166484053485480290758070317558944936500821787365433755477268430949624611894384168812761857690105067235095846314844443328292496998787653759669946916047676832854284360788022871250289549968579228979829110795730264044725697158304457651954203751775893942795568023151899268273935037170560767800562643058201994337304228898871174507258186949072611176089433386090082103489608761653673712871901381171782879139677354065786139780785038427511795031794280613579276559731661963683281569782457963157817849024558615831269775315050618061635891967465101560880112275892803998031254200983781704410623253281081807134879361292166661063208923046450646077042242109661298074724513775026003814544445771496419876848904144947189023590711570644287340201183865540742912079801225017904989797876387017142669715327712565250879612051015367342595749451612775592769525656323987138321799487802187181318014279457970112269349441464575333036020425482331290151626756239206985464958653167694946245994434178463853758444464513981243831595600593435134201355109791467198505459832548923046309340700070774939038534374809456538148342248484655304854516908147711151412468899577003550747277038228360396080545480037714028190447617133420406167262059355673576475043994190729982860109337366905471944134394510021264324949962477258950191095231550761303844556455409625730803490534976360079387169544518155410965733561869739502381370620390964767482815338608918745240339275947271306891451650433140416304835296479384094432288881383586750808794354382846345700453879423885814820299820621268715440471432027637951718547189778356738840068914920821840059343411392919855998970148610746932682925539742156500235472597725668097153236685865700472931114704616085168871055861335451840575872305393159245694072736236362171972860013844035494298880525631839025859123547995983497175924730024411662194505071263981639926750737958384083475065034606595670036550487939106990559465091667394727798524170510357226680344914069542346659725107556904703942670346974020474470370796601737549269986623015247292232571515850005826600511803868122342911218735129469978268659884369989309617282765285326554236354775534735383946339502139833574209691754635310249887286185211502134572568930523007116946789388296862060308561746981451108210441923948062671207704171588712053511683677316499510405149738625887725317505882685459441173513004506153671492486287613159803685842447051722329952190713170976595453932518710305629266449557588168602877781968417149464954271931080649359044698832743748569554521642739030926907962487299004603238681468980356291377902333789263362320481005609983241464209221760607096953216743096354809368065477292471747354030184381656184030162781763988585299004963682404209527032035918500217855145572346492852778978342358069412594385083331185451650773133341343655424406729140833135418990625200276006024317548266626676372589857081185883866607163444018819623760509055803935810898737592287550735084662902490655532196335140363001234110212765882714427392819403814013733146471649328330431375705668279108716175986095385150977974609944231530268010086687002037208508442518759533764955605148568817746373435780097928818089953273746676590622271088114957305673862504449550950555219803394290176292277598606814140886292362756557261269283518586447574529624960859009352188675385640076983789023520348236217446989894209053057832401346795485700981029775326455251397238185913020844652664136604728344763335570330132243271209750781093406228184691393596503529255584175485473783094885870286434915878516389690341150054904601066675584881443891836731803685561847217021138514994834776573019999095976477027994724799869711152393868419550060603886825225247127230672242688614392190295371418800028408500070923227241662365879987958171349758150810672838448673403759973803726297258668803958160227015375198094761438885081797448439027903270322655685933312285505550777771473424774081345320096912823051731799189364821563918422414473713540525870699723139340869257136332337385741619688943977728934622883894149446214468749739207905651166843487836751071471142236351003358164307301136282691079209704653200030698141020056252557474723377155845712482010182318628775756318659938108003890968517025531599316941371712862792068653819897135480357799696847081858216138332276203413307978189126972812308806357112770850742593277704031384087118273107262142547052883458736719992045834863269110870887864276305190986894962776295838149941892553447015107570703632723735174212210489528298273933630334252860235821522397299741558368682909726071765706624191415840432313956562961848193318935896021243099089156673862765086007162069648498196576089169159130364298293045525937928053895372273528428755879364436313454109256378213633220969950070562627761276631679935624512174166893091213300002641977940798701925001674336545761587584901973203315283497032083801581911720048258770173477188709546716922003020483199832549049813485374191145419817009284216652666427699461074655180119878540641364670471853143897404883893000609539347517184712624918110225273865818020944131511422853456962465968893306333876680320150740051614081620743944282407082392056136906948899303212350267792187655593228487958531775835711893796810264602922387585624379259748493200819429886520361063277143186564585562310881571812664832822926130241418846626593962867991598693778521801443680805716997755926030029758971135485913549272247970934853494913362897982149988675028404113309093244734019999504852249608874960365583784414859327935507607817272035351988079996997679155996616245686541240805365994066828834347049287843704640809512837059690398593475500443907487421960446254969049036618861652722010208427968834074476745712457294778094261998099765166615977805067608585894178136252996759207138044988635189057502737774477417458399873639206653265237141452584265346857612178405634191913470347814188474539571770551450757676659880618824855449904104770218404906260409323567458452969708897446392723681345076293219953951159866661479158698024057056145249896351011462206501791314712232527062053263909247815273198856792288538389915950814905764865811559102661037949584368957400953246873220837231774855916474115704240134248265810965888917952948101543166091330271094382469739687555705594250287853728070430405509311719390217141688712838920407680724553104936147804494844683753222137039350934775819880476168169578185652832544559836485585589889150677212747148305412429404749903923145524966610953372837903520332998172790362793775050753391235257904269230208315561589177709535562405770193357138899337282167448502844216529802561037010790065420895396417979231195088687066567444156612849718599667006994696106138293985000925623855749928161353992437254820545512638156111066810419330907083778023945212044700371344610271151627285758469232341886549438939362540140219761902747342711483875401329093471549392357700205000028985613097472696190880521285714005928009920159340359088264888785319896606586744931652492672025575058095549626665955341773391498635434861028743227111793825065655637325237365118743337857416909333182331996778938410001610450231804171096410091842441069476686874876013523119191941202729876370075934805329243221493590841100926552549529593650206152443556230971860223437424065366444032256880658066413262038763382852790210259449782437381616826684866695779001330203227224764813051587210505640785580902849978194774413301385578814354358504072118375650279554047611084786970385443757630305553933696915264824134977504784820168650281834213649960472014329703897321908079008227501749751010946583874278955901952596515335653785670592030854752036720130735812951878987683665122983588157841825597266762580695176295748680436428146437366880100652709859466341761612940052499640253573322382346907711619616357463588561398883583524081354257895423166890015882904025610705850646994945920959126382644163988832412876732110477429281901890740159148853480454684237493873174999801601089820003376359291396933387703348954914261702812210058143242107967254847564757074765093130682418494265628774830476663522488846018843288637499230181281251966718426673205430388653856015110079540292045759053183601883326027184241244254018208655466625050580955393677216616738670395152468660205504283756393015704688993014010294527427980862189472263832425730558859567994624466309944862218859742576305908757702650063573461930891954648345045461950966640763096469432082252765543063217422180284692169134077188041329055569920797426750366353074807210710851552577082445029679264990472484814216132778052922278096204237423298417020409208067749389217749612531641437970046232003458936693787794380570933863994114979997193593033861302730369705791733223071835906783875063325411156604548417103374880983189604628806971456090102561498557304332331098870646403960936194064682870897610640530561602226154999090276461666267592817580806512602098499677022334275126669765597207310981517255973734608881050803344039163284127389973496186258845476272916320870162335986875434842506663872610227106496927630606428350050118563318814097468142547185473804702202972183707802373835812924449517960859388404974212363882456483294966764693601298933667109905419441074897215877837556669277198925073982307606152082979190684102584545337351121995664784608802127990571430408639454008206005193915094009034718839379947580098250632906072974066083129260267625486048013471334394299944299562590061815270348106195997572952056163741363242204034190980700197506202730492179642462028948637297089131919096881367849712840175278934712376161230421951974924061920808424510549862037444588278047129091133311305875772047276774090246002195750151276399157591667225602946211626617609958299799511262535960008979366923467543839810205058265603141244024425106879217692622371869090241627038723838911232828980433534714688709529681381632739235700337010564514171167495060593515365364016281481962213225110837274756757400020406610044777161487273780020215486900519243816228409827370720673130483307871949819495332821186368911054891459919499822414649227348692958445166913567972490433517609122137262031255563701313294964941271482239534444986242708237079627726537032373480006150501112927355637991292439052280306516459248961274466343167983943588525118759914084920629253348907963505397911347841477043054043726072412139631584213192356966320553492669535407675163268011144047567836568871298625133953790925016910087151360838263098741217336572556242706260665905114214254461429347213273868387400789878671786351000327597494023367515120344086051116923696354392348483434597337957611425022242968971375010257669212289371412728193474344735352610629052851356976806245297696098703417371476340141048468669894492769503830456386298113823082684383219435028444755109435569146713385854066261706926823779417261431005014998316857677649565014948922850341443895870528908846092041308825060365550297985386185301934943437069116577648056445061683950457623609992047383662780454986766624222664079442121945803856850593189263744495744082569503914718432918671723807265538943409983320111150156094858674642479941710129588464159162441448449477999258046848920248911413286771255232315364933996824780348097477300145498300754533062941756398191260343400884406813475517904354596966792466619260505081346526584919605468295888810301165871377771309377763054874509660670914151743958390800440032920568477294970660178476885208414609666298412812231807229309714609876846905158283416979984342278502681862305323337220745480714094575912677923095262797911894569436927750340286255090712014894583683417558190919068714834292113750667183467592138187204661517283561234913875022562699772246061704328411122168162263157417474855525904597310098569626815990375026070703878487680149850931958921983732624098795694915268053289697154238232849129968296467573809773811651310217584456250607587576275458463707513850740730606832832441323974027124411827254866145787988211717494513158680296370536444828937860958253099353064070921057282894985434798263528536394257309172246357162773354155928922958110282569369602826830818402064115226280521428406271110479751030734826351775890099638371475320831254560575645243863327898866202241533567176940185995035309057285548707160776735600365663165812438939302095195047179049513193341181255287617883262295988390046887127215835054182472468751531795218779940038745472002480458636617278517084008265259759511596214147952417572701771066546657768307560286390645279857291809465696358198501604916355429840312169535174235321395992145411381120653691199416048689166434127601986886443119153996255520579253163188080162470040393072841358702209321743880526987488796821502063203442988764952607511905476006326158859823772375987221495334525812983422057048601882022037549157900339014837044448017523455492965517153912023437719596156532575384749881521564078058928196614178334971566098842974734441717234188553345685342204232347811089001153440125667132435033366514631083703063438794365181393865333880303632295234236571063417294968351095353290795172333618112658638105640613483968806082171263183634295320814211494455806703080218552767959433362481320585527369775067020718607923074697944504371889040198124997402748035186076375610614076921603057711821052612472832469116745994021907109042137399052923830489299497116098770047515069572641679471825612929941542767018024265131517681114337664677023735171949552398458762724680953056682258347196636987416965641644896229135574678579719173754455816270754594794865202218467296519545994596982139550254887839843430428910482865601298447594562978511731857769705958197023346508191537175623855498161090166042870546609074388105363187835204576082066543033917875990949640922462786641569121497348319137757058922183482591562604585179405629777828483007116564276172996472815864319445520569979057287049127900790454796092821021983789164896261664431416415412013556054289635708458069121003690574792130424265242413234088935804040009670201317266979503654413908775338218610622628591448578226851931286941738670952595135415820998591545601125446845198492111986491973036860561725883629755161598742980765580996092630161525953648950205021601027233405709955833024857509808665595523157460425851061378481950782116371193660624870813589998396644214966140536341598750942713525613362077469714220887370572457169106240700972366105105726252840085713926918895675951868514228815973483604964509894381667112565686250135911139006962890200682657571712820059563198241029697513310588498538888575551487258141736056745928341119042042573212893269985123634515600595097206101089131420731355587648090458364767387052483221271145115984283668454182501217416784607887641088710277284193523534327074371505807132542062113517943367867232360843216754502877711178160188520340464632128300856869342260290823011625355607497041301113807128760803751707946107466059486513252659012314928736387319832365049633601049283250004568376386508928737348138127816301962476886809849891001479922689093617197277243519017199642118180901391405182747143284101831901220123587272616508868050155678414232412361514509898999618016903976198027942500931256979185626279338427090388716814379058551679612157635056026980335511512254328585459147431312150860868333994257472989653461943362369915018974489326140975525603111985316395297254117806057446549133758655530167021348929401512153445791881928639705038440110031912119394947334067959366623008984202582218539452030755617918315238251696604928825654351319645088227970843377658193954333778742033503446626730299474615927540440181677687546178628416537709872957286218747447138793882934516485713431099362845547491998180207802306587376174079732421269445711651390501365672208260646729866627865632413921710997722654778554727773696099727499668626012816053673616772656998626285065399356682173211076622139465622478185189863300724139804135256008152499908563374583835390613591514111349370662823073708632802319637839203713205172906625676415518329650179224118012896594378928900551504367118564159477471177701354907250819955013532220474887851298286556293470050781910011995342743645197829461259906202067050310297622736900852637386043843575686621155684650999621615022301037736678832426297684619361649487092688498748256859556914321059181802002580921569794731298060410897915337045815106541273977888183893049398665142219361888843715288371928340012109702707286833101324702096705203411343555082026892075732213753721297333498905600704536903172111114353940306648218088406340237675781573658891757095533244580719435012688045930733769792568491467020017546163953939181568811497650906372884549742331962265517642158736796342397848213024563368459546325863326415143826752542649929795667698422955717875133980844538504587757135687246421242958710170004066131609120107579614591217204106117925763951734850258846269276399549539751279593809734605094256891008606056614418429869515315896856357340741373992138108256575935591250804072202797374884032821280704844126811045647618967708326146990452925067684838583656544205890441992594975441320396995234117838094726506619573541903625955164346764202514945368308180952279191536439692092679519041514742404189421269975489294558261072585572473655807019690137320218267969433276844941621532713686436155386287405855828578176102371854953057413121951512765477635740241642172079866067030020655408382336367719931587486229347400182077080708219177841976825623916028176910752811329024563373213807524385570111430603491476311038980480269752582197366765863230804615976982460967865515545522072902330938905419408908298036157635087590047687290607402706913760555500718742626648116643247046909721834752249276831847272225935282018461610187350396632050553982112573802063028303075095302829825574311181641657281201490104804796365369969023128466761549407839270430105658296172674797188788957632739883894058742920637346145495211889558949683397457046750331652378757764091187566782389552823796606148441115874270752824715293284938607709203033203495395475724989150444479161101008520735160361161699131614625894701367463373744807052589064760335167023090314126628742162395954992013617165973716124091388127026602907120022947239442975049819464694324040493331158527393243546009533161507054469220736509093359202668118441753542884910430803185293457777752074142593356128863398713820138796134720013855393913003772724402233741913080840904899043054915864274605721447668665600416422252331175721280359860986858369213390138271732421707871707641633812825007634621854658366021429311056685366285803138864651304208269872958517404189246500003886241006444974953995820779588095145763085507805455299298962001953207085159666962241791435190541856148217946745872471639136818719789274198164668275875911048319754001383860074679448506960061895677138520888201328996458599726911899176325270144535607500764824925600169057560628033885994127599730902631731414833677522296112129669298744657152020205452712036591121505417892270038121699615559619327749170660165918889683239511934144486103325558215572608425890692468994595078626878681471923861302284981965739418415114754894785937917112573680157270625742601808656318193658615440940968509424477888361721304987971136229862290878727353815199563838017344301399221823830195476112413032190700057265974245603033486961141350751496940285279319898888758032159569957908894248500619691434667237353868368497239880803309226198505961367148899999369453463159672730200239307480327180330015010728044376129462694991897783411035789901230180386335133855440809895771196511326481205371368309676192706044203539755358732676258784020774690599703591531875817681194816415274570383261957373701689883170665026826467486135189560145471545180845736538733775392033224641069433251188587235999674169372409669514909636098794318531113392342314886343515387116144567011031557185177459060323893053615153057547275122313391917407909095418337363056614046166637485175059418020198335735244529639781547693752569035556481683194876964052896154176338486223582525688864032682583777613133379643381449590311795799907366133200369352475447782599102021626490684590306343569988894436913214955059950141905792269334891087063284861983308612915140456435948506647455570170394136072503012084982328215392852561700219032353184277628522163795632883972983146534950124476568319001037851268228569940546788464984836693765638474135509447253412426289597558435759780875535696765850770088995633240112071146465779073226580204412474724065809976739791482900087048263195920732868369660081414021268002493218941361091130381793480930524439680748591379965759155834216839156820467710159387777923450034547896958727802511530028764235757900914194872456527016889903834798868246555910033986154132439937904924697766910704258497048683806037099526700963314373309996061113361173034277827258935911990090365054553418419288734934962587421458820329103741687843115268903090832387662608399014144010423038015218257711448840487137740325154128161188200794599354325371959471813776655907020321719362654693813208840273070527631642881088591856349238825948871146335226259746878322338597346508655917906671395867561744037858318360146983835361279234203580133722964411068958422801799321307384551384545454956709027035083521970898412421709286038873437135782383584193821189640475651924381798933707179825133881681122959614145568590276080613088580810207274091370843174013624784795452496679034730647908759385005707108157026009423712898326767297019305913379956639279776179200870180551475775958067612093790730314040999401971120083168265254534453384051973604209285604571663927108393179762491849406424743439963978729410669145346587001260135099266122681734636266511961656534724878498585949968819375391947577843271989863681867292149707441664181964964460970666109713318735832274991360342148817768350524414159177547320391463204120526084654025123094309519955745703420157307507018448145016106199076243906711900751289277444459776199112582872518357328084982914000942175395851972316204581350566168700367213060108265344760512288103006896431631685940511165898527064755811360175838737082183335569137979590366714044451392981620259394769379486655449615589522502561448363195849684162560870428620922772615949223378133135781107455510893564755434357661842097759283670578278007070759717389322981772230676014990189787148929155312772086383458014532019610443762766741570824409854015507944127716586640680546115254071424006180870425621928723360534575422057515937997763106547040084767640683705587982155278259000680907102003781681110481148706641093461437011411962709652341846199223347531583418489526204249360856939623548178725630740738282914833541991434228175151511823435933476355374543386211066595211250885259236012412747124824027313232189851425000546304315349998066078024905232198441781652052628397524434101111176016787670704503303351059504726265468777557959774799042391643488349106630956538618379386869533482093618048681308057999334483205558761370383731422940298534338614176353720339165616290056626603547930376140894203590028290989412921968626908775239291267149670204679854004804939429355771697489058951365247274939602641618845015013131253148093257995593643167916422270415951421085964640834475902320541477100616226496686636212463851420390357189573936644185572853749944721496325233342977791291180386700302843686320618120000512981371020341216202036992312263700902057785932001705000571995591451419133189196336999020468855987135329947774255078103135986093214490488107342363496061379873453327975094953367729117541362646661672471352326325611138657821005348962595514213651348778854994953505228554912385307571273131403594129465116124028507124390089441471288455312148045209898665620502192716192888986532084669649108570712510897145700154024718934525578818047834877016060056196352136861154934913499581211084775722584699620784337175017729038263079863929670808078868438881418045897983254591585058877810341901697253334326328545165994702925945451676808190540171952238025168111696134819958623757551035136366012480486951189794752027871828168662064549445596406701445831106819656559959043787182851392853908297120109445313779175309073423420289358429910909963386640102401516129852381514343432692662808287479732857303483339459269373849762930782386962208813068553071037034829736792120778494448824015806262076559833560786152456718060662644478761862105914685753146337206958289743932169398769568183338723208253296998940975820903596561112326724393982825742514384067081403860476176512865926581326805099733645064690824710335458691642619432261051493722153518546214562348544551114399724420906297866359927719052500043454155334447686707811934247563667854627511638281102851645084106000019478934374243998763089915935853091224218405473859869913252174317519306248802692158565979186194094039519627042736459258208441970716994382309511945213447175606887646795457989212201802420462698090826352647037814762904221229687333475966308809181173524237502409687655984133608470172991383038569935189355102697141037847598670312469052216986527406677093488489199979744863213950875202532563240080009743841808433554775816832322694706689684433866631396658374534015968710104611742674152267180574227343099223720873924928537504684555802285415041207630228483931350221213905671930334674676147610234732871946442324673948663623821238031287624013441072734369758053096666323033451818871295404763545032064711052522279245888199915289615909768135992156957390133917143925706185681013831924358267624822625286672201676764503675696419387817736050491689274466603595579108428210032707235241252879384352978090714895792544642896671822437256429432759777563328531373782997172466869110140675495759376984952705591001793891284936654693598692103809451917636265597045620941606279222781639369831948146003662645878784406539119301822644275823875146971640090117437673205594847816795387745056369870261492026597205383651921203925181469444323557859671439493762338919204575056005781204882245438537102705243188378567864844188139450681247498060199050290254408207756296489569115200649854955012625660209934179274059825676381306599434443387239512504787101914949015361217274492554034288175440029354431092041321165144376425410588951438415921677844528074604109689386831150337074281168938582868523858951785325285408362024318271364100331376368670502622828230448014591180228164296760153380180486747958301268532078244838733140901207676816325266002100770127111763036025506610173536679058036953593152737361564953991944439213676351736400300853936253140759904639482369515285661653406920351156534497071489044007998683320253046433047279631031286407103367829948913936638673443833241962749711758298267880885305617556950925531257926243907331529804580764722383940633877350910198458365169727081810876367305960666620608617053117628981844074515416202082573439723273109349996871896360025433072549313379590730315724603670519049297860219056436179184778171169369139874376163726290334261334067597295728359263180290095520118076229098666784013122304658350717511147562509391500766952921933311445510699849282929756340203713683962023776409115970533314847848707722513078806370672274190396804496263271294324010355186969170093250036851781406213452149490226924986612450789928479427621972349512776749321841409428400187869529012118068152669473989377365581129171507593633533106694038365552535455493896823526042880879777028029317350022965937393624112346357402798094544638544206884369701780284116773462112608908684538260061109729312012129975917877883120878219318335088466021637962566247229012363898449090482625253497313836701132479360029138452551243269026286389519824607580748501858032651955694043817416491015577853715792905710234507968003970837384738954601250277705199573741820944870089100341119934764225310968202279970762787962629058812995805338746277290667707282696713709618915510357338348621237753627227159100409500440013379183366721822167777741668358790898135926900708567009661435557326997290579641128788893026809938538487213657088452514950281007212711861770552587228503880946450829962374024444665729141285538770730463132376895789851910594377193355281588475093056369095793159856080128722699434661197812267239832964804556772924024165101631885094813757513508294883088641007491586819259124503449423544840109721505885774685009518404807361799887458496174814487007935606858179714356660982838499929511826576382154028760882375812487780068125678840524572046558379457973006055791560280643280033782716013452116118638369542977924030837708029231108833873085159864877690219994351343834376464905411832425991884335650958631407668944680196853831790508945220271430061007649681158699672464430191021438541115084582727186096947547139460640250758814030375752504799494015852421599901039021198120184767976953626183191425949990647872823264637449452338233010088518491339489986803094312055967961962931169479991400147698178567107487154462253819608881778764273444168729730559743295420092698256072369763306550224387164686107776027620530188920634080327291856131692597183873068182375005792118805494132048103062729689359673580692775409551333097580908543039442302982812385850109417693348290052280232273662111388659167188873948595687475029384200168043722915231876980241542761045183241322743867124256642405805320306733934637236556024359674668077304331114102965879525903607553506543207639885018121948909430453539370775596137632948553100102084644702774195081068322250186537260281438913508657757946360746066508070057261655609051428121858250852601719703279958372463544315065929438972253241154161379087752771262379317381812703578460691274089033748070223224684377396570920117934112798026143462842733902888297186100581071465554368535876617695364638737668685478702160564740046743651925866435034753280067502256979831109265899872426764912517086433493321164948564605228931801870052746960382278422362843057974084844100633630452502036091311610497622819861635099732654543036278480118639835333700066206659240228929080493384743362856038625019545289119012921776831861972693794736071994793103430274088219915043115551851919417522052520322697527636429028304520423146357172391708868903320198142424108603733144167822454565000196173092554177460514609778507913835584833229603269292751498747331462469147614209326246682050762645511376164060172257922497257042961042071040506910006350086789270973106800850780123398495086283486567026732715641025819524233367020959899205889893087565182061009274797871075208961074268014370386963098802585054053390192417378093256514347031943579745650084911638033020437384346590683031370589309483967433106327891590350107551718701029445183941491062006289131981141252010339348123965009676665864838009023554533898310061604360882329641508009755100953671294353172248162587421207201958097220672763691132105767402631078617611856722735970123973481972292089295161392589126854646169414348121378911909618721786317560574224850981992625862570339628952172478689377558340533983934210458819095379836447064791292305385473627736035696972216461240596823296193603253496464412819078050599220738057182349144147931024997428464407082008674364383332452532519369511685052004241212546085183724917561892835413646914429541463648511500119910956112576793843029313371251855743969320876227586606070621953565300344438800725229983760562878723658195212866253131854893335158071697949173796128543060284158501739554673113046553755337418737540162622484568995820680709903903586293392314325318987325639215180641302120982765184567222589402522282874272154126992756967424595570692193982068468495979634637215075624624259151383300680605511665956700860199918281817869549662807871875398967439931944765839066165316492470286891619574304083661118650279481824612844225452341955747229187428512173585482702135224771519263136236151414782638517056353057164768290666397303208572318024739669976390707338621121715323276578382966410535951214528637394683787263600310324034566237483185017797234077376639724694485178170615030002972339638731928306515168339370957063820715322445203880039597903092436136614300923243352991551792378587183992946532903315043076963876115250925136044005559034137720965271968857046409700976643374586913801238569454900299277102924227142055719967851996616336746112639920257521085302892518635273617298206839680541312808191670484254756907738721392696881123346344555877628917585322696000814893495343007746676613928847416808254421528353951178475100242449866817855826788547070655204990335993998514800154957213344183234172089399492720768049963346164370465057888480315223259952512108797226249765295786858575505747878737204496855623074620562709827920626400048116763477703718119504701898195715436638771326900343607819277736205956691053723725397541920311828567825269259970426798927085987457975725376601176659578854594449525097353314755858768938895092380776093417994171238066155003868832502983899187669574319479599640027436777623084960685976388524550632254673257429487957990215515752077624633673374028295562743769881023130109826441107912211483089229878313386248897115714095713892749817393505401624542305851656504253336829406856541884323388538683486730990461775329068861829884645022115043408577507191199227455042365641789444776629280108555955322013161866601520892389729769960121642097233902627531126857397176476221824078739289001324341186478733501997688327401157994627770169988450471198729842608562862566695810830460421453553988218988951046111018352065821424159475794703600049359975567259570598176227634159742764080646705683352303938556419899470234476213466010634980414049628912653892107566183292510662872673222092492120494269913186661052674151747438298451290611511862136876284936370195475305919746607596313979880020906962215317045809047003653887479505372865910964584829420943938287873117187730134635800367675612791308865134674932053216881755935839334893523059790710284837878547178697618266949361019313944007595154992489976799112103426379977645818226231650370226604342192228642336985294969405022942184471225334481555374923116362130682164671531761870132896229353722306941647946754580749100404912422968668936896120133682460298147571881054669924750518049626439265426954866434130188357796115651391529336748166209014575696432643503028600829817868364429379893961142782154893321200552456002326931425235292571367909295089619665059608754078321556945206887561483883191983680331413053893450513931156307271282931157884315260096449236056704570260055356929442598015625617154155022116476252618892037734990762723724407422691602395594290462071117150576979658633525589696668186796353579903479443799827667714199702496219097684540186014614313139284873438607760606449424341845023885250893456563771638355282406143439464295673772264874689435750976944532876615301985698175061566353629861642127448215275810370446270168314591753516662928071509962464241806571800925693208828175897088693228220311898164952764590230688780565843706313886684214203070488601920984619638883219804032470657397407767317549781121949072793151553196845442625397086635417964224885989741063040337680368094126090308907908132236534482958866168500037305605095717271638030229866948977691840427941741216868586939822270974478401315180544663750833480537658638350664943113100359617043481796818311703148652284001220519832551415053654777300108606107842862590743341040012950217280485640022234801502777856916439392161364729434822523538736701314038554090972726686201038701783399739594860833543870729163278805075195938857955462978998981800435419719206810945008421573482458123438364302849909501008555096968131583453717055193370389865492301778464080785477382033664673699703711841619540589728949762881134991284018386283173115848056899749772571642053133423495718555653745568652282580706255799588626469739446585459476734144984520132220380390869991705531024263491592443035267595211575516934074227505772762708239565245241526797870800010596563241824571964969352608223795365355158951578376228622949866934682010289461939051828728477292566067887577122193942204317665843952606497895432338977768747397236071849543282538840718823800298866061765436174243638352246646836335196201019392339427230798215468306222007963431882017237312697877570401832906657368741500555356331109833275112470503897826019058249673240433598500348672910482605242289031258992382728014010278915270150696393384481763114662491134410078562537535049529896938973948382949800075060383693548306292356397274627233092879020552561720346923128992670145778398016244015123003429222648057149204067132748068151481020604132205819699634940498685416821298375491437397694792013547262276198133691920407316535992885345823346095694284460367895062670567105242593947226349913571641361845095472516923505084017718299076683975626404206531949786693880180545223226937066630746667749800820346872203797563001539518052728429941613224390206970701802298820193147759093501526845615947801997730734647144220228601653303801652146426544714688331037848425865881343893566435714473800245952998228912184355152972098538025059110835759988002788430801918662071369958458185099959939475222915634962499255439218379829248377057882562745847046348181886084554923671907508689991911479114680524895694741092861312111864409121267985627963469878900820297297164968834619776244643874030057555470289019183718899222270222379303521695032069361868111478948833385027318253636927174134067338458887320070763993147801431324100739093124217542832575312531886393141373749693419927420059609578198632324866611039602690755862219918560180475231536378332709653435057693240726372060218957582004450875912181826902424750359047467099923296925822569590954718007788193792243435266574780335241918421717890273367421229249679417297536225559017594126929189139150360328614818845349846331671111218529582373355247589328999027977007653257261587403451845731255391932967893970777806695593298064738349743207652247707046753476026052357459054259095833761997021701050343714903428435905110503597474801113189611891073368561494457661110244450051492025790481232674243304804439379646236416252333379432034025610296940849220127740708188986711515732226746977027401830597821608043999163149329170679764217505682223443284055700082742301755900799949606656234541542745240963999570514809024574309047046597661454274548965234009918110369408178858164853778475834581028970098516400665827839151612631183675706283523815300898385825952344273120075039078870094809081428654631226968678486162340103234902208591177645365171235754397403158707031566488379137369624234814386166969402923529723777439759930293748326285474797219700803790355463990218836987777394213793292348107732532854526812507835455500746439592985865570045595090156460161784074323939919123058143039679530717357592130783723169470002939565717733754018855594428686667080696649787013934140004967130652147194340095656690774368219214716980703600842231191379370737216900890409551594909459863180029503586220466953093319682660670256064436051080790067963144383007428652763199734308977135846539735660384910343795673760078707004159472778879370635253824519019978612992932297398759015216557921947960456805422149285539166237657782866115433727573340105957570550814611291298959955169215643966969221409654032817069874634837130289733867493657578443841297968432076583016034284533999114868356919198740076810560611608356534339374219679827253010119295382934799945335687595668044199020305718453996986386271229461876593213818201418163572236536533296027687154001586965640750357254084827413827265227506830204237388257967117242605929962953643680184789154657816879173988565809247163796512930343413598592779026471311970133310473765988211142837065213956564976808366085080256312223957770662735731188026176979739340151228163301355009656474250109997192989674682167171030476845520416112692597973344604366447802551034476766725303934565775095645741856783581416448828665483871123656584808294836105799263301351225930627800539971195307902668458323810908147523258460495475570030769827890700329552338050474114185187877209332805024540851179102635734782568941184684735867261244568649975179665181726438195106113755338733297682700456099069372574183074499659051193316824712971898758644106129042299545717829177739981906049404115991841992451017295131946530123332318829844601018285349646828120050868810038636290050397965506583650274757810055530988475787303220691097527308082159433837773161720187708047132704671645312336906414216832853324795347493376849717113435231006522176754703842255419719768276536262386607240913533933068432583902201965724182757780602634924471258335072140360202110783750492371675930096208806702296783289361035982544518134849165585844885213779474442523926429037341376637326122022746537999520783703045290525851270668281599403814472833962301331857034109195420860860571450558008658194687872534713968628956828778807509914105093915518417943178942475597408606875731579045352631719669326983483695843622529939726854468673141049936817224936528200827858002034712408208968620725833326355171161762958701458570607453980395586672198929609238573139807022858061289297257862013759484222440264089191867618837274024187965346117376309568443684063661367262226510312388386061091266887779521972458465851550475172070804764124261400049560063402690204356823975947164891709365161561638706696418368572374923370838660322627236849783018121461285681034806697128166706883493120882522564998329123207753366303051045597424971350413636851760157544953882150804868292770864642988333910842376019407377659891932377414452709149690627320046131036247238739228067399578347047811237182034872331543584904010111915114021850091806007483285558775192970993280490852679359505588459590823725644984018301128330490842244524499108125705586575902560298103178862163222776432308755395848589876367588984361108052210073546821996516846240983465531928095722677592041440379085300208910223214712771593056519776272459774853184829379272859378256403685557483484853239210335279468460975741211948898753784115554330751288281043955184366356695898572612539943948921241368831123868970828768384716012266633887198046997036955535593850748051504183021440129653844249634230753435462944169208286525150331550576681919645568303783787256353432410360546346486622770889759395726667027820938324039851555413219298593369792228013144646119166901060330439675549965504053891507749839241943511501047680733336214702245093805297088597984168179685227390718264467133877461335159479910458813340310842601055359146645656664903457568178515727143958634977119435823841040582279184483103673041097694668067191929286187466633603769112039552731555811210347560026041114460049792523295832295456767956192554308562012826789393746033567964639059063016276663941061261134152310385763156510545810528101007672422281872694158229202937413701867354417491482984410948748127196272909493056430469148123624623086601213587213189711589805525836676253597114010029074065261029211095781526258034672271594757544582497779388269930107015788166232645993267609298355415448781077148358072619713825457140745659207694630699218867788505697369415376107958831965078822996199366539132601743905775131162910054719210022123029096863689578826463329468972203964678507869708705537512235910010390407400771220857548627374947032573909096543832863352720432209607294084021461989387928491147702538222164449231950527378209172851400347434492401557739166875822239577931310880198695182899293647460333552905737529207032805269893857090702416977903839241348148610703984777407148313740498398767184449574622698528257262472431781871194096368218084331038028001400359239514504308804708455429537908636732599022716210053463761251193296740653518988813424559758400837545084386421349777457719216779388356347013384453577742347047446743546000955437065425340159228486885116940400079586278285661079028230459485620652588157149906140895900256440940869829377381627305608457695252967605405958169944855284542201140444177606432336588378998053989540197495123852133366593605780142748419002736362293581014192590883072833187868710448385152014446305637363258981742074680761596167574610745258438689392393620081445078059387217426992412841023807822209961155724642535483855323945369776600073589515738186562303432102024795930918009151760765327170486568235172526608161081366501539773110026736608394459094500860119263703370192440442693173326913420294899074363005352088554424926500434880501660755299736967063149750694952268265326554761040602877171035737755917284632165150668437460647255320403465458056389097253748518229062934156995502020935530303009244534125821918562644353239139593417447349206033883417961731927297941034678913677382447594540144970766992592505045827787955700288206597206670860944189287355513737068186295200351981359594484972661849414773746781791006720403527617499637621677026455135654425862514734665099945974693720424956223813261098985889800352756980835986429710583636459799666256643654927738292216248606756328714339217167559191754941613289993303133859022417066550360221529227379936634510287677600092236633090380083539428790355558894346754151576863521769636995962079826200511190261824304660116883858929539165541525478534647007951912940584421706314685382913000810152991770338970658376264152398588155905338012009310035168652895313568369709598373188937685912715705827409763508486066801358367833412252356083236030417065388247866268768505552079768289959602894103723117512776042839921652707539973559384566257167783700869199017641423835134675204443968963269186675000352904239534413499424639230884774439956192696392039133308430433652214037358753261019147912405714969343642928100569355623387969957817302226770239066592985953156138568153129013854363423419930160095639949628723933401049730761623319138745632911489212486077434621291744736195588465438217708467145054190066669213810315324690442343660425994463915654439440647405400361813718689064059393364170874042538728567652220780299441703411523074623895366842095760455754892716753446159933169989694933133062280895502616841111334475547270676973111145634336477132215621628860615644649023581268675757384643239030446461849920196942617695656781771490772777988516419450188731699323599601282201637476206223437381053297961247196968458576247523229818976823479930919242754398395684901311353040785748917939816874345376033783114289821555767032839957263158990469060722046656240603848080439709923534720800684873361926211042167812328478807066248817162420585145617311066611228530809430094138895164889907783836635701137816331298867379640553516752102248810676276004108853035337943446818073807265274465475551254365274455760064929490896536493391691993693098883598631840994158824044957035912995873118037478074323583862165657070570666497522264449673857143728242928470825150688757461236308345405082281972905051465724981485965417119740981595943725031116648167314253185892610716582496151191967768024286742312981866852559624079721795667977005657711957807234693552422869339150266997675988342082837600133199883354236631984759272160061628589098571147536943484593390619579955477532037843413763541861479548548383406751875383040082010318250625258313291504735839063966297868272860673862472440566099836600222282758085870231796178151304961638042752951261794541286219065809059943097948457984912799701393116804630249728898475443807940504631967392927167817815619277969109528361399826057612972733691077592048278096077190692374716749835801295987905117752817761570547004871065211018192084482804379870273592454073608847748233911674596808924150818758739240902852109875810522784960839864675583538838913834808785302924092164931057033911852104456983947592803863399897752249352716320467684683580444647561562400123169052352183915681293095438547518009452514534777445420198264055170448011570203243157087550105462665484887853155552768226674684600881459802790659467653020317739972004879980699500085088919422586267426326602365214657338222449667839740877243139894057550791937059619635218670352644660651738697899770951652253994125640891284273391152233353314521190960593548205769532964382686237255150566384072230145584793653967074131886111160651683476815296310367602683355101015533463157905423940133511164983795384818910149117166835750045559714004767214777630969231723320935365450131145208712084725451123045793005098225323679825602738082809653160874438120779971592634297615308487155728583684703646227953207912780139814564977904298558055084255144303909899247685599747855709525474202026531802844142328670534932532945367936931987920390912306110180240695698528462118221741862189660733838371878082948494039384448110310948333653147620561144135872790695157545962289570719967299177646883435893952438226491804327761706874359807370437874739947991586312090381543706424031846109522570943025102399673356501924319663588876683380941225139990645427387747422107558140827743027598628063157170463622992599467332724878254884501813715009722045805398496266853798983297051924260074439489429177745213005363966064862230596384571942384833897690878202294382160842499357566145972957256618329050952621844735131074814296673920040115116430803648213341982960577301842915425315628812784162353285031476779461078747294587148511164457058716841572822780107553369292125615150978033695970397287130954414687659918170890035106987820077517076763507513413755382868154330745920940823383362653251148052048439052445562480263198207869051963581795108581943757184650191999723269202159326389047308511391316257682772320059668952856338108237727105743641743149725104141280692442785502853652064093423187690087566968696176838626128326455020096851517822486131392329228181587826137356574678781651646613800370255846639803890690324502553316342836778954475279120727565738847397831077941407659383775701742605501812513565394632264285538943107544112715611892057177804482576039271222409110530335868138478163421170572098108409841929057427790277772588679010663653130226514092301304631170570456720041648062316957045640987752010080825980947686592492927028304223444509749065656527594276478192727176762793056754586211351866065609917160658412728753140783575906887769428084016111199867466044040985282608389384615987540645924086704348580339312664937348527864234143967976641773373905630859627740029314394039502790541930269279977837426888754436994222074310308702759692364811586830424410114726984584163917832708161386332639495018807763863803274326973098112186279934712019169711228073634283751458357151140293405692957323116035011665854612508444165841906721611504405006448929900214147121227990585938023428066539522048974920726790475349440285338915477310580729883860488390489569804710699742165993820782734325770153558375347012397489216647748629606325589009886847587129460177110910762922840112944904009546982522695942056354591896306435040675808277804460004123002016485651215766861507402220052908138623564570321461530806381342152812978081523846284974173693365265216768663080154111235140199992188761272062587670367541298806839299449756717970523840989229739381951815247783269906059394918246664572024465460286295365604067146566526295336170381100516837923227238995357441495950175291956168824608256132576262977894697193247511498574572430622247085913589416985970809825525514540447951417568395026034568666538127490198774802767653185170300270807832439424652308834086383511474284418427159233012672209859915863898065854573463215732206349295148905199537392343416004710165551387562342444576347177228947487660159179965675155656725028861781437179594621890410178982397214943786604854821271040927588221110669616257372901396065031436925145634291362766434907489554645379318380211123943193977299927518666106503458207335440165422449200178387214538085438452675855078416663177750350944567421190810143091706210115778864305182046757431311374751144412394036366138165284050351774728663036799188241463585392112971689779916215061292853893294984327301016892473985443364191626614449109328769076569156838269871802183444195325129485325201641209981467412282956750928571796620027894142345460716036068321680392771609736815482866468669119123389844021826930026305896998953163599365820812506699972373625709199087582224829122420204095888740547155922741987032393527581104354825312405001542957875133700763920280397103013767394176141815453884654842348847238521184313165913634687782615821352424778028804981910952192527509173748489780403928985157486033238689574669733617156557499745293792699249486812400315089482669174668428103608277614563493575838498441911569445065138114334822783049924646381243733345102184411477753329328619298349979891872301004674861212607838331812265350546120207530872630886809214088347878767108005440412466280675649908646104815612890554700046001287549991702409753086979190730570863909530584164684398506491459816037938353748268275055694531441106214602324454193803735847250473152693934243965364900599253863083749085061262575655526607057960187100836710495789349277524423471035121867805082685610540740237236303430600397415883883835191945379901122866374361277656730982452060639294710877834617773211415161350611839870318916012884304034809988837714371076364377748210650984591527836168202133695593408890282368217585691756003523504611470174116453243931739398724720102086296207643842477139913474113201648670802670473076912866397029172595467196384537550099898236002976012271190176576501027775891177522476921748524397249778984650456684648611246490746486064833642267034877001251298476887147619451306921313868659974093619891177924365415261229687892384932902970750887979731378177282123341561956083696310190246623668889314815785185473426606562639883568397638552261512252034214868135147840472544846850704994685819924214146494899940608977222216819100092347534783133751339927991210247131045756718771286979367352897001923277267584037248548673628223031826355121341192358735565774110381059627562855822829494337819569926972748071887575668461008366940468737317901233499986824777223985942417450734554012114535736666114736006691889416838612230879824909239190859230873070101803088854842932863587547603299288755126233679445619022210726324402271857333208968780413669296428566065099237378085577370021876698717970980874645302949701546231817815717294388496069411983073411964458631552940583162133174838746246281952143231052704079383849751602261518358383339282041807931896939676966723340377136774655255378916170262924589885735290595244099698220754174443727287208966883657723157613063832762239183741950960174194013602211000509343872912557429618024138631677560765653581303994200741947505328882447554709991502291891340138653904447156233120226240631016836209360910771571316850334327710974512494076058072225252163391305443921041371261033916843200801990734957335502470921438633980033326488491105727513741023998088671344994363451950587258059634654244306376809476691470538323369580359981193305145003436019352354810339597080881710822330954327860042753280307455756068397039873605224700028287705128948448006487605913747998074797408291959535482496532902620876590792795807057970433147634188490362336148074888787309141807632637140551956277506915958607352127256999801678827000618790908519435037768525891300933793428963520022308423441478178240483179733138357992259047405488605296817613977354796565839885204351571046690395065041037179207836488290706730551421537478809155882451082503371976439068847265181766753030609314375942746577378956604159023844023748382709762465519668065051719100226261070767252441496550390729285188961872125233155130405860329312794068375501012921265376694878817606918976466777686893208459141598049599126183946492946216807934382647364945930368287236579321819535702952447736992630658594537891302794077723509685265959955886500237416580934019688746062223131909194151646835183334559199057148220188460362075882495694979842684414050570074948503529950162301986988545363356320975830502645904353416610284439720341923411298784092407225434437921500230190513757393902564374506993244293663445764981645971524419317029977252652001159610725040754000320585390936790620613688179719397611763761178229874873195806472146956468259649054778017840940218557068566048505160998270735565119107805951064774972054875264065971254311876998340844915959373973248179468434516083411305914561942615723428445666991039809868711410122526094513686967039083310997463194179756988367895310217468613690827998892437705182321676897259332808239478727603824068370812091161160869374039005045737817238161388487531778283008826525517703921852629872759448648710033055054145419497255360491442303736571838625225056645730992197558245614575211060961734280419343173596246063572405392658354262522182829966263063126916656261135830494700465382395419077006967330918435651049524777802803525262650945242579803701152177506831878534462413298297134942647532473617626802097391248053052324104720055752457778021641742405632082103038743440939734214525442449946172671411213298146185902147197282255708686886674735826549384278467716820437034269096305157694418668029657809569129135013395452970375228934071301891608821934004148020181674261972315508784389513071665880070073429745405605984583509956197646877804411613911212015472674355285387330383129090987034825379663026332172138255298290899277034285152133876775627375399338733988698991345750573903548325964807433075250772325461647115516905064216934424546548557319096743082307736589764566430461790335888787895849917542044880778451609894378440592470651550799082284125948752576488108014064701690881300484257748537186327671892085066691638779091753955588380484902240804326986637647538811416251499950350356312151147174076048343644281735439922237815019693970042280187636259653489785857247024238668482569720384720931433982343424950795059683353205564766582877502058612244578677142615500808892722028240734248479920732235709473710448169677672352880755495762893976938285187461086770407784430893863651422410028187678748116229284991507020929301862992152058652208353632350103772917704905476729188990896853142809383593200101123957247376552944538243137301729311840802159859034426241927434156839357167141539271280192340153941833282450733259626113919307500529837492673556629146070403324218304295077719017101818603057353531648218252328673835666226144859079155401283452799685781208542030807084482734228113891181843379196625603073884241298698117691933220272290984556851993609460629747098286016553884043473064028209167479974446913351561606086271432025707290499526794101459146220191486517457919524366494095534557019946169713849787066154026358027426145332011256765049698531904913125470697114170642064640934518984390386571437750759907030027864608198391062586991175133248698691841105704123289742456764023619208546360032697030542031326618603998466231300277078161491994546387602657214844607872972365952464036562358212540910959906011037659430275439553207371224004418317052268185827216817991625338060315451180891263559942056732638373383951038613442733889770597496914410898527861303563714968806062365514892921067326096674414197271589782162960826937719011854708295017632217149969587985452463809694088838561557285211776036507337776947682763459972520075728264301630449936830695939710686745456977915650620285695408390922003286726742298971462439692870039055365988640064706612968306623120849022645567867621219417545453190915559259544193073813207227115644340694587731255724089777107065778339690881584541600465925122873763335942292743045067514305188185769484915621824358599373878721401080166276745481139598102988732154221557808697890418754567696678696500103616629545174971118702879817520177673121778424078702543841351286312693481419578621240053354188829736657250151806012775152760038301778243318086991466366860843154992178454351494526100270228548598628545502473455038121953177723773845269170011702518809560352440720515600916127983963517304452072422421951467388272127345383286722523609420383086942154259506358132557997230445659921632729955647234835568846893860901032188601484012792888281874173240289568963746225703310039469390277383020057351357602848093763915053869291001153786893466038842775522029138940098996632117769270697343177779497378715104264488876055674243074668579442257778719381323691904742782049972952316447582257322453190116194176551932771527052853217781653758574191384120629751325495166720145710831037432107976133567371842057432333177934803236997712399068861607226937985786904454779601549344221578733254492214322560874077463214314872099799174403657042072447827620271023766392667887456959759454876699674427428746063798702985974432138920251574218867426536122689831571298422291236569881897034637564666577481021487266970204155666416839946855525422745978360500198455599872270834365884111143824233323526096976426222236951637151327200737354111693579507640550244194235704803663984551838306077384379376888017142524725092808618989191063991733221839524245285192195478187896029964429646343782961191026785124433892698946352631002958085124835732605268643204528736021293977624959264878601532821086480990506982605753284698617838227068511386971127317244720728134157510681637494234953746544712275005262389808822794247381480308483124667816143785838072356812734915154667811445385906963986250470493122251613536114444925369056698352580894235630198885144104674157242112669508736963652951055097159283656487340816454009100503719927078164791921708986334564526629863362607841121566098352734354671878599417148586376309340953423736377973794228801523954492191314738729499655515063213872282331548146699322009867235697446045529160025440332313425977456329748156254775593258583130720267349889557300491922053801409740047227498102235218660161745981697839684228651491640479131834769748018306492587724808096360919200885456260535852724262137951752876111293979759739644713778221649136953215118735990477936081026691426382588266100940947948792594431076719735324537920688955238630003311106103035540755042981376872395460108552126148509817628018411920908047102367542166896798562676488635191345259902834753531843021402765307846800816367719039914561143760380154002706984503796584510988386735301466894251052164230459827751181461471858569166144952853788402795958090334694780660484176753269426285207635909339664763586239627378788904153163345172618667926411306450041681093730403455000723842157954141788329485753840886450701219445742909642556545458709708322016841753995721952556620856861838833298319211389654929243637895910300968883580949811305570192228258217356787496299268681126145439773629754777826698548977618082513544752624074444099057536230295055358098960185994824782964364163594012882699153662404761332525508834114603581770114822196524265117641929752469004760670055790765710644394284386192329764494110701281666503430685134031794502911546254354444560725960480312365453784864258610109199684634843865499982519105662479573665874355858199576521925504940320678942379770990408926160423720201597375206510606663114537612485039208144849629506713225235710881440323375301366575415120349911507566570709835840796768831019793199323035220725457508285605345004058656319788805842674527981859963342565364803947558270374884158225139952630459368125036830664325851545888878430239820603755652969025711225505993048430707851233896929217026431748301193351805424979070750404877135863102963403591733274883129447466197506256481938288371740638980542373522598938717914942515746552236481442960137971285261793573095791320003471155532706599393170905887903265035000647856106372832240418113613829885832818974643965560819220724863184859521367200470946418666678631311078406019093449038453474797851844226108843367506699241900090944959355850430429113134025978785588951113963952053392479713064882115083556681074707597058349911303210662040020481875911936836653139257446703599834088686616489857704640952569558871883826576276841997945639325949628684082265437659422123955348515198778531387611647689505970751893815500380014522339244677847695718741531464515491254754845243300363453797006578830484351620607396294814960168666991246416746868753435220020684465893047398334706833827185639051181426275926012592146448378636484144695180026353397837435370175735377494223057063879498504195656529589555313029148145335270219125546526968571922721751894251056079023667305838347758004503282389075809804865690834775549911331035622636674432893577177551369186845603994945209486335971704040926270727535809060167859753905327530115341453507772777575453912536264167902891161575920373139526764587175314210364584709178464403072826168766519527989552451664983210192111976861826943803718398616635198482459771186598819625140751109822931051271155182363268891025795104579347172737339108991501385408869093683153318870580279599127415522184022072698565114034173276478968691143327821263300702861667793647236696004076806784906877160780980362019281555941076911096740321188581261321895032852991484030624984466161585147973261588816155492636733317593671860572470910583467050377646951234652862791579536771147227497358513907051788102494913631682800412149978179390629003784330056384737539247194780582924162959606834024378713477043830143960931881143310631181093210150652445914128230229739979021886675109773766305095530385328355792812552499303156536935659201659550713753641948451319138288793068526817897391120580151635140777462236523635981277557367112781174249171980625345041207728387656433696865467774374418621170920741198158864328070968695638674883768118782674797515641977086105071304054382956216645547095843246969237570745593456825690283802053690333703118078161445957374020698452398810247075839748631379370621881619251379768044019302108685313851142563911006393237076676552922023210192216642199665752121787299280116625689575966180545986133557800449637380227695830500482245612167592138380974771930221976075373396195059927202499961811518720951065444916144498171407767844885102841865021545868329687448791600324809392832439085861957742574677119521732171742833020447664675196191430704141533279657596223238024953144318746298634634920902789268798425410947773363563929029562359436819602909088362469369474099768051789237176571891888757622260765529645005264646013055084471200207349621459112650449695174144764447392171756743230738831488772336277948305191252073844983211657778853743182029517141282955161005383742055720320782956088728929124347770779487696153243128778845206636157106270595665977702798796480338477566558790632687119183308461990888489043299214632972790604000229556261763186274907501944086969911643807589234466251529226883324477360783337447270740760187978515419501326301316391278356938612277257742504287130007518156456120035657905070579685400449378878950209299246713658647760849585153143526883945357753124837008828941498867023268879277448113536541268641288794710310419195734464422471305823159833867473901853426278021388081243776979562467017951134784108286632315639695314099581844793957526678702257597539542240634136240188598781798743973691294591215399737903749786894904772984097759498405618711255290357229953015024375037918859427367442848535161664134165032970353016053446543627392100699857924498044129945221554266956380342027674974834750016627221270610757739219104449937116859847983671188069082801259692940581423320616975094950535794533155327968378922951980476509472834929952489886688038964181343908841267518324097434396109843485672227160992913323837769424236837541548770270233430912402162367062590058237122094397621872333864785211210696779411560372796138736103782091543357633951962151752797762571140087132689033139172437673921080123249751036485993299442209746263685848564939510022146435671613584539041671841690332765474424596842751013108823092515914902203548013591012986353259508891390410025288876563170686128413418370458072930874178615251567327078565034180707111253908760076205197617144711605741272363171302220055434011143042396559719306671610128519629822902163640271117287552815039561618321218946323368836123906255683062310277005572343343671407170718958034080979989647041300449603127126611523883661764249357610600986552105299123820039832901171979209553950767715552993211382345324981803021381946996376613712988627868406166866378046642545184279249801254163895887832098903204812819219284418578955470488749128494727183096983290585136766926243816900635760238823374999983727966020459482607543053018498284431857108878811482534462827950008775690812249627412652802848360143252583647651338856641577314217367816548641458847150869047189544215151588328047992736524667294545262641351447267190240165137792334098861052135156989228301631143302581506575426354162619893587253906744205233519629407839001046237773626952045382972576412508829392002396254088242756714439437823616588949525345472351139638249032619412514331790059514933877262237993503538180950199557785377838473480448435181849368219346030256585651614128511528860513750688427532657001490630625255228271344063431310347926657996957945493964223842266104068135036000769093301564864214371466962157566367754835182752154548935878863776508988472204005162316988989409152719031639386375198722254816882192638997438456945318937162785602843556267824167329599294440664853902351596612913341384347970726301054755214472408789881655759492635096242735361633777691810074075577542975429572293689012893693903062479980468424559892610765253681204384215094645943101593759507600697068237368837082806393046133831185240574917666766349137746190489498615913313577184895779498096065663196513224819558292371287171800592110558725024414641023442645668295466846547767913952646242008863827544904776770611899492168612440869423033233053359419785443831265049142703367462123738708687900026639046180718636014568037093739739254102664050406100595950277512546025016667369755187728776014105933740467742247668114521832087350859835729484077220442465674779230085917106008492271446547500217121397291309353367872805454064143500764808757128266482613270440654189473297110193452990460868542801630692202644720114363184089037775511061649438814465646306717753658497108223400860751061283106821460364258202464139227101175769176898609243046085870304051429187985004668006983173250239059074150561303942819009409340920724589307635147804814928962864653333330545476038201588614929085352359708547600648636477992496398724818049003053901555859556745477334167093303881742412405774054859067918371396675636705993198064565003405615994818445382870854869244348122907885997660503939264909476599042183699622112148313463229036785702551267351375395571018448085488376589053581258026290081265809111604791475273422858563393152582530777407443485839826469206196731826493819094146959932175578087746335701047129249380508403200624520529660962096452473824721554535140941125040779397090329465140043547942953946744221179523320321616931662213688124367318753595726476888406160603852549440077582911005381346127460926089505390256627095022995284829147809072786022279081187669801367921915986669946388206444557691432435558027997870496907197943249294055087014497488263360836690107750949112403955883089436367713485732980791795140714267976868948159512056075488463604182954671530831731741996502292801604251746269523820209100127834442117003066515804341858813000785663801333489495729513585285151728918379569504953955607263072521256220352774272111707513533761580382882566421390169883114814117473499363645511321135693877614068256057885645385770925700524159806756747237610708833268354223073362968447210627751783499470141701018953456602150098026141911399020205798792428345125232133871993872080751118870207397574609434077642756209674013612741746183455879446139239776249088643342751692693114324915614844936814572271196620424047694064359016440551364366708837399827475777048409065052604912176046153152941482908917717896978000921251988004368939640767289023767849841377112391381940858890339543872628541047819955618957964043824272933960122551673617558262436556056675435442185923031098772407277249124507738434727926838874106992749825065064544301212981396830019829070152717459087380205589751741989625926915220084638223434174584350698081210119618406686267822291543320532960775596837818232252155302453323580899237767529318526918065645617966107222202324912187682314734752999412077317513423504616380038940900612161052964197691541730796582245582686942153131574819210609676899274538122824539589593767659027029160150562672251637108752029180825034902604179748993959444526704187160971201033733827535822416143623919485373868046183229465076756503304221424539887000257408897371412107876075703888063477992470955167770435426551359336434466261479016276064766978813015421514221735546306878892178271130024569771919993370243246165063626217753121133550714063943176844689299425862391974621591166981879781674081619489346215226237800585955599793949399789442851801999353834663472094994349729275537530320178499848961541094776222580730145975201253795410099181830823893600466039208444373243933618160089234847078981294518102924559372154889117743275272684837169241061509486674714794496653832173231743191092701928198293659754404527581360907816382887022473180536369243151893242432884597622264714618989392930287051325558875462140126368972299805743358194737093392636168695563599714249377264694259633480382485343700131917682989004115479502058300781903660227065787416855208496943868110851474135940940374989637431853522321519536630314835222428313630996184780722887958089828867167873993861661922305900609985459590444051933678391019943896560518596866068116689177064305398805695368871380993124703199500206170287085484730330086013341954983023358960203107282579525142553298778720712533151544521790426704107899675635437257213329332391278584385431255113024403103005321692035412432375855826456663199734268555947760486588555071715685047058060729612990040144703398634639788351503277851931638041057600888604037653800545377640776777920998696114816195838966558577658458295213655816812749618462019369987412646069652727609337016367866380151621756432878434284791238497797949092962631407879081570448168231281575149092029780037944777339252664314694723482490182118397024060272953553588807497333925532630251030341520114539628315333160948048649825154927718245688576546010496577802244292979481621601580678318897999976349320105992138802376157608814693623486007512550251667873552551751924338217720848766365468317598950163270596894349173706887496453359985749044528268698916012328418997007533434750123464839287512046736581502093284886510118161991965349390482674683823302845936966173499218958061701468132579276446995937771722821533918178371120990049387552368258450943469870739782978062316824744456057798063264801856513849959724078491368572724048615474395340469698399106184805375539265891171270109604893970374454700426837967004272255603310239526553653055960139651222149271129216475539017810728123848231920642765599858390467560805988096469854009842135876257902811753077437012317914728767839553239418071427755594907567662682231152819664494550667852604317195394122712321635257675285934958856033798702440133816085416534030051011493574896382485964112855317557004103911974765867259379135003452136282504671433268843205482199834969805370979721851452117911725008190283380436436412961612919209596435551611133918202597455720433178918055807192485804408201972027616958496793759774494076956082047364722157575940727228431903975717063326360459296803847759089543729044576724912946319448014224000377663843901586583493007486526699548562705557090984149429340865459708326650259442697385693791699048700560990440872519697917771493743613366205405558150698102114532848000554503626105319190812404473651927243156645350066829202029640690937462568513178295887280862009395551581907017849351372088548952098728438564789343099881301345341559844751182859075180149440097347985797288116407605163611042243469090252493237943019773737496020655960826514391715546156086868141120410443114453647840235728727682052986965161767891004752054125931788994015949293483552086829182876583592154314094173646941141277873323953486855327518810331767540045248594002270435833024394312753714149312645134427477589069465710020439267410882032449605362909783865605810913321686089789989061530866658391077992523059778443652019841388948870082428505325425743496891258522206590235264341525171314078183464323869411049347841888148803729778776398511884589334706500407979617917057720071621401004056147229455450857906036361926603667867479501162190409664083360451899869750952107818776324827233749758379891977660700824201060452498369298368937944639141110879670531214114660880106249882065440256564622201503600910606695125289836091416720720434777331997446023705518566133321159518026500421290424825930818873405744172577404707331559492432085197521352573514276876425720568389007487997522149891307603083119658924416409141012028951310939286388350205064659288223134849981807019012874235787160571139705337753673367815406683298229715771118048954437918016854722594539600237068033998935605035767930207014023760896381521873201341922111874537210724055960702208550801524490743151443258598583871767116417710333099333723385225938608481158641576959032559416692282381136493628879275944244934388593656350157307828071469224242147369149540773921273338394546487641707561473874379330972991575988620513736039189141440502688104965494805023915805125070131648363129286457267577655585305976404973481891013214864181233497094005247895705439577998714694797151951367403983686115497446192533816476547965749473663764409223762788563354031838305471437328692790039691453846132662339073841894284189313653120226819573553393274503770702303939340274395835105810418486087466331031571707751427788413684775318502896199724318294320912918238804013591328463116321181791392150791499546877428754421595661764705348601759969662968386332877379275473134763945582464659023344592905692542969594253866975499536182061306499882628630099865266777777190547115666674002392030535949263252147880443154144300036901854646949636585274654100204602935105584263593252103025757321078269748606975734075678622383450855031736426171898723670968663353672383944893240149177208607617904196440846360296311745860105498332476016666282080325117417537786424995771912802169330858029044878062393570238502239437490612612075893746112725436419810927138516295780104603524568232092863075688676240531581971830842278903548817345380258744857100792778314939119903120600686854779637310030614501696323798745696324416405262770307913630991379904097807527602972042043911722550502326415304080966186728606838047535828270555686639024204961414109651701468926422509526260200491463302423466279835186221146607567773693280627765660236053842230436039850958251559363777796388408189372499092681404126212993864394303565543786885808275669874034937838656245610124731014130446786962614486958832315854186479530978099270045077061900313129762206708935117381601177092849722831449131340831311872647728616542018480340869072546419114209133902796712028384989525414714379936400941575028648579076264207016053859818270888848640980384247788925286060904473666296058676726216162175946652933354130020165299338573850056602585234964367402995646635723545812425314790586563593546848962929371095096538107480755084112276349716680967841111676029892547427019155347602429033807331834601955601358621798280642313901896408281452186775309412745188508228400706177568758869153086471943784594921256466295674639126610239517790561245140659147811066277523888373745271657619834791095568026904244782403064129500245577119462204024323275574909186082819474772016724611142239326876500473824497430299109404227663173925632179299809343906648334625413184804359428616867320036455828491169551379230580996052684087439202004793567414974894289831955296856680391538843343817474621462913949834453605859953779828530901993125404792039307625343289059671592208200762916803875063617845090251450449266138198248979214508093018828368954899694394118693322126158584391096741663869258809687803815842111563132762258958957477279883965579637466857587934511917801632370137655494468732998148142169476545051761739284694427444836498997289220328426141500597554755628448391999703697920824992290333851566219349267941606026763722650860262167355841523040170417181921843363881779582573732699084418648228377777272704309207250935562248944416841358588564288851156886824855695801013850980369458455704869946222141091668868578276176602806338992308688480054126356604774835137429525304639469509523263307337024180361937907564195566502472430846056622895560578638423895522353057161841178068485880536425096118091015293886747887776843933409164888909851301614084500707431975534367710858502184049888995174050806970308649010049476761422947437901049392405207875106280419138904087801460009936767111213635623856506300777934658392921446394513006813413354779233591585839006743599012049222588856264947418145032575421433271068958381163318392374684275156061316117927274389554736353732727203971771968584065801260106376397060455880257124920253275479683265282827659514583972350951087371036110706401405441605901144737128750711418263381064902006046819675827667929670379555450579957392709204894346127652513583288740908141976166510217819771463797877806737527522729954580173876774137682790632542794371750586844487400718450180863195915532260518719337679189537706326588601903293050360741773316022508108826147558776958960579495453732041433972536200702473590390528441477280494340245631022645337142660100629479882436111787526581578250084544103784577481190521247287259197664249208688936016119491742236067421274160182917831478193685014326264046981803060239145316443899129322789159920203253567285769712857617606854893868141512973920183134677388738264428531636188227711748624512108311822517936268881129057540351458237557791631360511385317951212440643274827208631088106250283808161545487534285973250374476108178922447949548539692481848123992641569083127146403668306457656945207425053950507500821375841810189091183397485634788758848433327223344095462477123656346849593592094564997442000078623938434067085011653266171559677572022658571963468493666347497952156284245024544860571601380641155203353132620572095825814568201115474858744061362008441489818926790187891562329328435862248957103948638784974540236569127790640781530261506946958593329022817173980021223343592428265059352285588627026201722481702580014436975620048646941446912922328951462227015529311464975120584997598456325326573275907998699462302898957616943386644718066052637984355208184566936820690654559658557172387065475631197948581129889919918739585565077506970295747281166536651600277637268452348736876026921356634917369430243657655051407311948453043366037127543130447360608791092903297278338620781903767341529397245706888931117579121786304501146740029919026113304582655409010527171600021396447159636908507896839663535645692951822076371372612398863008588710086886411682526373259489168973008180263828110321612204824682526031134874558859951767925386335469533164254195098134916869969782774981327124885839374851698032739231217947028876777801591074324306646523432727606039391753313061684910088278768879554971411275479352491749691406759637978732559094185328075791728297502351648792260075032038088200905604778657417158260696318113140733520926259228730295292755115304189151983946378252817643713201515753328394974720844637470483602047298187347344831978266970291444325852337472591814547413813300417949410131369527279934534874288384168623786530777773598425450128601743955541777711962778899838407695623341579571709296102639879014002752363360648506609723256868120541097097147801912117622206337613111387384976927743384708770488005612306955534645964599083681108809502852003330725998745853002508607960772886194285189901515823646634780404579818408265246042875456349274235773034849083102912985837563337565577543438225474000115733418534488870690945157944529750661364171103250521659937941875357331214968973554903558322391526502338157981079930220313133899484458946018718798475001916577829900768731120355915956689471593158075114123198595148996662333537179544503271388966868874354734817996047685841568112220464066681612637458537368468912670310812076855430417363241050605822268120836974912591600586963083361586518255021119854053046407175225167588404048361578159358929978701810321741134651989295036752815615025955166809425734358943870642882369447242457319528472184256289431082294763508667712087027052983873047943560865031680072740270092467531769312850588570889144055582151063706490882469916000542706764744751867872375307515607187177609019942937487100960568320448373257575085557581995645235636383955167588025591069936395995316272072705018426359769388219130781865878938351259159768521428477843513215339779897571809656561787164252013132544280936831828850880939041762774576778687311569024750852034410548668941862950683169764831362998399776366358670940983453797731697027126191072023221251646276646970049480376278433604902539374857482419516606921179529259959010015452088145458600315786648455500538632842801058679894171769976089439197154996020116837357020542190412248024396791768382597614679469108977400027413422158057095642903909716521352691216034806930269411239876789492630116637118770502661876722765358879100829949333653831170776826430302018918473531232934364496088475364294939009778260874002445188982483971676085540712080524989022215341600756134061190670325246931060300251020563260043392000645156560732892524737460961943517260415972559488003396949705500298058310486326813442315348109758798543213412754356546438394995599675977569317690561881168955060415348102108072343989927117259445744893597939914665416704992201632486761186800015555110250753028785947810611698003952105667380754261037106094934574174520055813001338772310552316540137902164403283625491177924506792986476259406897342722646778466671507918266553436905934676280343056720086470617984124545535292723253804254363881922103104144816987201734426488810117035678934108281003325386645717834301102021076767348006466022945821808599232340603284234681705763943695936324233702219215878705393674146763699527789990750506083234105416575060992696848075808820148073137544456691787291304004618974504449651958651833541891155732772455228401974287922889519039157071600947892880138488676618268188972205803960069524112739253937348285077899805201995007410003975112938222983491177821673607072110854988845594256033341554614481395267595700436245577432522861484450304455105085816442321337805763495320286318383346058951009705687403401247117077452639150507237489329326043598735559600977438121337628295808345366222338754133903917659729896023350750518270447999716380604943072668236303124781353959011362194071176807046778779850500642269729483827459724966044561358831165602390471365258729555783898225315743659791782470947125073578007425613021916410979800085663349622167640939748012196046529662761106477275535356737994434637553306559311965583948495210949953216414012614209384356940128489778822413757107376469985364965151928644836688004970927321720446141023602831654551954013158949283407741258539555196791320858330533119203102198563655462155860385738247397601338945152925018910670036115722389520101674705353664785624551787944178401615401811863775198988766961575155488843720782094283799791701904196496244530598508849213663315048157527973349550613161794653446193266527517917270719507678189962806877507031891504620068534994087523888833694005025937736427937268670484855470354195598248339180526047672453827431561701719547119422729263524859689145715372939792319306230867191303144024012482929712638765112329854232881040874602544824294221904283788486061858344322752743133603430024122202759699176939854559549907787599757251757625773125474138018455284007277911349848580520084471994048684134999004799246131150586793612657000925534380505134770013595914084436062293840706963736348987588050336509484775027914678136937920349320545838771869605942536028733106049154312130682105389733796787486818113447696606364246316563739697602151385917737899193826766042777908335332338928278679473091040212200011434754027191601892795572051295539625068385733826538986575178420720784587751385390442820505087673469603733583676635538717396035763524249552777886721779390892056380495952394786052669027158014750623018895205859235374963139994713147145865166182656617614814393867375095963518984161476636749690119319732070872639200167950979415857564427446979158382704525782643239400363535872590895347628892244019209006739825222234605480518908809326210390558433526930131188872538781206111328141816363033441028298890086279183196240138180305569243559128373778692595309619129726529557687001284741272025822835244714292023980376722811606267154737744340038178190272046284934879689553785431747330030458633637408666377283736928198144983367514208230937935831775652387747185418927636201213489536349116848723523115057277144880569510729282272426916650163325784341561865859073269667863291621774507959346443723737131882016109136219266273326530185117202648090275260119340875533865730970763997632291001317701360471061270321848835342751309995938679588845868544881946672361049051847742779835759035713898539147388441543161013805016021010397803949919106352768243320835452453600786115512150742928669352212730025028930173193726032020036057787846883060032033093677496108901327446637240944491830488257166763883621616096041509951052845695526808737123030573818060109231414425834658516336300031479122372352912758596338668116000112035525194639395809870993128053169989563154216598580765989521858871060407493310237815140401493619900487253247140120763585281463296022883466266427082334565770212036475834218456901362052304670872430059121581046875908515112405439068069436552531831094170411801147156885382598851449198123414739371312599784252396630519045210390459687551347778591636752352988941946619735550968255567180355051734858069190230232104835829361448088185142924419332057156824445009086013506662070281818049779032814681678238931034740779437884040507099400632526895586245291661813926356864132875375824368387645694427451051993773759389192868029383093667052611104713516055996131965090116802895549337651499631556861894059584070909021297004567205275854053430564712287669832666125375367144524839893535463174833578146728405332533058192055943041687274769404796809060895596594814395281721656840533496739069751409799970924087344252813662437424138089031952885069371855333103275724082806975923247265850811798805643397170196504254258483414454710724074453992260405733705777494309063848285737501160383593493128858736438364549902780060740950033259096590109843553423919234824305125052815052738330670177914301853551329734859205742375937316912418584238638972515367004707206113218911621667417005231270756124474518564298717804030845241988697164968949424988998756216956515387243418288479206510728307261248453924069908501443310653502779660530420979038278537423970970131430531700491778057474327894627649489074513384795256153156986937111013423417042929992260069715677416190996416300538863476869088455913216256008897489609101669388776410968353935859375869024696585926234967623756293791606983800069007466171402618800184569659896234614298070050870511894102101561684417090667656948920297772759869465576188537918702395705340541129154976172885789974675811102026532491964134580468069975017718700016588833083684889003883101648492988054531302599209666484936450386064683320464519430172091653556774749348500187010475961507441074655400258871059389561467894140451681228286496044517756446688507746037883597718005804297596692564080754982048783905897144780178598065349100409952184048081373014101887278160551026219463892328974193195381169062523271919206000404278305526435025127063545284277173454021561572293634500909522297873701633270709874173033607651004803285805020759430376067436399674100919999722603377847299356560643794043452157135903734579528635137275725660430117633996209659940729247343902176201075898597585722003727547468576054200090828793424165640454625387243797273922697534295567799576540906100410924604385960899818210951152500023876604282539818330294772207244776526470335668238925804980033164748704485797623082825056728325174679597007725118504585732464862903742420798030089174656177782536085812442054997629362125705052644304462254078353016834888380413725644812909939947447406251132521484276127612474104874077107468640165045931240912963485483257431228810478828259539753793885733464879423718467327872009480228962885721132615130641794661828645118072616550586906540182411703240799278605674912168474505617126200494493546976642448046708446320310782507998287306903680951652412444960178845703924256550748942280070577421396570361287687307041352788031181783374608316505607589069929924362737985254275660092267641837412754372702437376381706977256665308096957510769224017127567458117407879623175608695879802046636686945301802834874429889183189373639730622862121183225862390162423745490141345757728304827515343247313287180650653612467499033146835617685160316300148844949181674588567233575047808181126831046389928208689218018261150839673606482061767685457456869258688234891852489449191112258430982447523788764628344100756836414194516595404415492190371343644679197258337760021487056662421366296068557358172625491131226519389962525475834536690744020218622367170504241773267423227931178783766253461028415645093352626343444749249152060629059792276982225916997615650429469952899697903363863683042956154120019669267861835430149499974419713814206584475579233481581590541407893651892407938582568709594336754677780126517360540294851604390479986392082859550749766418462763664534682133966786322748252239404328842965217821537012596908541580054896265801398083481502640235016593270535261159491321859138760662921095402083715953730055513086672351282069240112210886324902159037062500821134708376942024122743659342480235159306668063999231828195806314131416994330248363059977736308861959116138649656138351315017723161502096402567727575958337930709135602561464305025592395644114903773456119858370721708330463685493011415929760128845569907873099861166093775372330492469872288546210518237286738245118106271848317881147924798086043812377214187311464916438924165262808082340629924933521143380298876418714514665901330467431011326017756002487613977348639856647450031695008121157459487292917321816532194275437857575437847645232881359680946507104765888769030123626327411957266608293394150947220859852540350153289213915394779261819389377022846866528913754926740200562085972017751059377381280237387788281783107584796544748470399961177774472248710969293346661303890524760689693942430897522341639578470778273503852094953540241887388720698418552911611630805188095571249033456064517247796555327490952130029963353209287994963817473156345662119356845645148545436766911586974255463223657656254463151413278304169979562223704189269296541454316814324308253342111447302825747299037457795149333775018320110152646081277940239403143465552424270268957581830409464144810528791962458628587693197139895452959902884866998363099359107640582533387202445509184691830563553287660637474510257741690772185665204486244200849372404587768114798352155825321003262577924988518335071298026349796382822646550738796343269857492458878867743701961865120602358924077606056129492141610998993211866494693895096325341375751923854588773082823229722691889304684640081867673609579590040667685851081495035764360653810510731845579092728125032264165367010829863441336463566453349568147039928238658296426235209628897797351945945729452844332856769169985332434635053570338592328189316313884256901664090724382174917446193526728469521659764099168556509920970195545044648523987390573233320790593211022303825412072040937303639478937043415127141767169206794565247691742690484767808256046558629502991496970175156493673672761466665147277585551142876303979928709222311063534224600389508248810328590960469654710413232044300123363789393336048161972899949682811948861006780473919357999024720649071891612381282516270285135003236671213391807538058015690262113750746748110143793647388155510095923332594345683996708916043791355813594184457766980594169791027645845125385122351577822425989112608290814654180495148924943929781538758702792545624579561760491323169807975095396640710363338371008213840304557981376828473392850968097514007861167002238791717946647978498325410982999218732587895729437867176121366619432668148249529291616101662904633303660933267314178227279504291973954931709108288975051624962852244300197917280105710536047671903514069773620858026171204508463926938484111161856072091286800301597575055450789494498736323973406643353843410510303588883939596940312067013223287428169358424195282166603621543696723005492788276036753803291845097035776527466838157876339837899931420760246306063475563526163162728738369081049495908031851260313206857286159207965083427957326896173880989447721072289519615356279227597091820069496560880814470338434345291767753792102931141167594399583115664196665532605365848308212381201241389876287892442526196178085843445223580223187007101244121336508793142557071943060849537209078214538433279898764054954955175274427820914258803302487988880132565127646705069161640269652080060725095645434617049719203932566409065342588121019990686135087253736550928739979345472821699496609051137106039999556251407323093353405081681352900995886218620697197531328128779979196854498872809663290247363249006275213138703689450729805210386804568287136104936615634833311678054839024130825243018197068403282231908620922700251023493614785374385625946578402522765735427019264503700734177926692270926777860645560629656187060766879155518768812264619020061941117894555564185323031751334050829365190150869458279157602592524981235070069434106754869020582929640858851303704812540057029026913646696841621951257184966425171165360362207427942104678910660999100473692656079253496122237957939133589774351021747720260954619705380038555656486962996224103434963170510880294820607090703016702529573369860532043883601774022074968379178441815863114847751135755982624154523264868989780391423427210464847964328701840896947237242853345597024858890680229882194222040181792849425743647360785100181881415139482404385520974557213724988962711738796202555371617155905289240997947495397975782056487402552231781451920483048822789980484769597346695598957849216414227508790209619654769674375366875391266383650061659676129783704451976029612687894718768809456598723626111874099296386695578245586979761429276847239758100755028332672231841111286056115740261860267191139678473036427289843997395533996220265625416823605201354861699540187697497975430079122768979468236510620965280073134338936666322564710645234387658492697857586572805711086502657557526975586631586749430062103225507359693369962063504911364201030981021757590721442768252202912023336669795300497608296354918714029351475032792684597018412108999201979550542652197387154232110138589212952832071132357261118294062622760898029187928318480641766698364236060068925603587874674221067850754694825498954281421667890129586845175087848343926402633245926963446915706352935301027217412367295753656241184405296393450973298760941981034546298777963503531667845464159315865557582693600086786168210443853023867842493586345830965702308715165161459516275201457982285961137110812106388203978023451496251779726834754064872903849369458142528518122096285167365589760617489543634137715911894984455254496215761796344840970886726730486525636378642090687020070516313683170250433011036157448369910557728832820738697275922711670700951778535084034490800533804856082022119711813015618315794786476092746989338340363004977643416617186308281191047822834402301638318007886663247774673417424560686437335124456844130021908520399504634490095878404083413203368046362357162938795203746448294934266532923912903485698688546320676779996638323305308539335326528341686215620444142087213734933371890602813684962216928514920799669719052809287358212854264046936573972555496547334320614723671003707626719319624951998306765264903708819048779307889347426372038986454090910521195942262503875067476696900886411790164248380373578931835045215135866962216784761817962311303705149723602690292642921506096217449151208874664645020751918228302621721724440859259370016169620563467628469161227893336865544170523162011421700250805071117184322759254288809510014665109729413226694897861159831636524612369498719887116292266713997423606247564037603331838835728433287897392872239132936591672194659654762041055577596040281862694762569591646188227815343600964437658411441777528311169668599226212081118250180708848414087724461645872264927247970213414895516361942210325528388868824541956515921724671773561683443951923281325958640290140717591288339416505832945919623679458281363681893146475695198011446487776551082654837784527732469482329024720510048912197961212787388500802629758822525842204326154439788697611485126614246974256181028978093765528948892888389241237737791981625115525727010633676682387460754234291323588150156458569962731485492120929576470551716180937149162503121391426412899859373905579809438900922618957553811975320530957549902849641865800486218351594683038095334870930307370591910689522991092087738497905837312599785729590684177735058120475849284363255785338078159152151105166755412042140122033432324479010334118304577128103487359371896726585231006343906572610920216567906111058743251756477308270052850207341806979078129355494291697162155975406760228810622537148100417418378169346464311073520208075463969304675758867293630395641249297067430722505930958539062723930564550524059995291918622343076501825238316336287529243315468545826665222385012009502323142579871381529478957398205565098870227687512240033745471653432103221065473138249526215003227483527541633426983738868922750250720699232410981772614755872546527547706542733759375872419229035000303993678245640354396160945203244766972638921502369113266367908005999100933925668686449602392566671388885225761678118913617462267986454397953268019365386600257397047746787321675534541118264943256983057445820889938196328985949949882340931837182949613214379677759719731830090805866934971124840688588356822951875389589601316031852673881421370163133951291612515331205821852333272558760929049964122791674810909510516085253120300867615427899373403270717891799179789096649202681199812697741220736094847187535377304938254459553187136507171168205519093050378163134694618160234497256627245568687240133013158689948852285935099119370538277656221925639100252216469372363912151033370167940017009668145022463689542912089864121600895428615767222982989987482899611783274998513972171063557781982233913895589032648363342273424089793239186152229676585279977974479451490038171945381619851526553404654229446447482045273823159048721155553558780208088084794093495874362162034426639500856310235087588361543617703733162618354028775919275514380142720705897063171447067062230356145762916762961193481791194956046230924901949620129515070285817718326617902162695495673313753170301139272980649632133480413738019135275287184544382647844262272035129109776371848461798239387973214547761905674473259986892317100293253286347928841478982735516929517358858777002971295315290279172473032233080402428890047998336794765655077181619594362885902072149556425351638907375135558272617004304447379288789008691201214930600373177860202777127676072708288989755961836050329576034510150626294880571119487291583803773103029969843432187838417429501053832362202811044301379165743907543549589726849027264220413336800720752220471223579132336455179708414339095381564044354146750089869137009771738045368999086512247776944169795718683801904399894968272670890115369650129858723979029611960598099733471588034094979323685910729395380468421259254281705640630804631774885293046784562082641102581314947635016853581763464391830328960267304748918095260896456536068551372865978180189519484134251471902581742614636358120511791648155527321994307821142267919064991530028545478297841882663829196823114905314844812060715936607569402006636041570237351994861382406876717902863514681020039367767193020456580840745122760812664506337888608470939056080703518247198755452434143472071534975089373667319821787852670074882187815788473294604808388991153738513155676235120446002310706885714813195705502803527053810699986462877219530131900685229222296527846968273364300152756476205589168318152283590116573252850050347985510636946655001549515510681915157538219806720632509147994106780658680536807398443066728805155419460484864574978931610594029803141453158582644572313521903450109908882414515510508868432202398207134181314082758580636638497650675389329406409218019893151332195359831675199039687272157233150885199897233330443656903155184826784406345755312491353121176557583138882082421816257975764941809920933527528039759235275391398638231916575315934056683855301632468914712429048245385309728155497377742347618914694764253497284548630427059680729418565736445145473005264237278243646311980255270043880450748497432312662748013559906690486089635458552205458600461830817229583556258494915120080137761405117783314075921733332534232375038535802124065874146979277999131876107084637425462384814492176414028233845778837199224237256446570942493656566521588860387631851619540117498733059668972549320036081846398028023953551359971375031083264924857271395436175347591686790690049471538909083589476513943371713210933128828437706174693525045014410626848506695831646393560631728367787954052785762094406494269850028278935763527515264201813124482845359421802085468907404714035553163748055444181993287950988652365632608203828415790035563776473182813912590377444778601508908933485794349282910772259968367910190403752275930501918100622525516790053366799997279108731927250950688833167191835594948312331535503559388198747508068943172374131351291593060233176163717353254842051616480636191552086664734000800763074821014500753534831333720772902136025487272827775043850904166114211140604981696351178519146772371722081210747629728496621650653464967510449878197726697532851565098067596510280862496606398175503300053557810571919908109389125081152282511927057620337618648795535722416412419302803462871377657016406860999412277392363010172067856495989551475593595587961503842907599401037559197462904818268291664372475332179644745759108181359909756293540991856891383511086809980318779562959072649128477041010790510211127825539866435756567004583794114936306245359448488075117771866785375283108826648215974279654847396435593126785471511365684552469200970663612065780807845609555091051533860640655743701700035982752638815326616753688380048551443702914913243222591669528803730299410051426094671693857671058586889865756039514620340668634132093571891539327558924720549220125349247797240781717539613664100242375991731121543598725543305936573367797781718754686410948888751507590251083064793678690608784100964685275155329576957304133774252283561404127082090757744416901876009978642611092847143674993434636701756384678380992899030750591324564317968980531963488511186836503065772005335807138364878611918943898596406152490222145286617183468959690488092040709745974744165471659045022681191048761071237134370188658498447242148678384718492340366419555077632616274992743366509081653725760051599370919225986199899766623325140241475993260368814789576251394516882012010300292656464347209115811059850522019159296368370714654073802928652029096641308321428172737812909074038195499177515099198237577800148576277243460013357591699850195671207693299565468023197189290995940879654947766298361109125408917367319430001073514212619098623903301808395678159768702714179539841557966360771141687495455435565102550755348220501670104076098219612120019764665059796557980231630838388329438313719728804601438855181881877223219981324682182867903656511245521208600260299189120860782978020623403379345999386219539096869079517690306207957673146588508283535572242565039001652317010442218888284759281963166978694439189806204415655084995332811262881844141744606760896561373734548597355536044080144453538877174395980754894488939973675754672296743395611868670827303151001272544014047254703634798245486394666310692293823155677995351049266157981823026371751716054255877866254900104119016296792024763563427724026462304537249536850377696199726770637060353247870164640818830036130001466033834641692765394171837260239036246208618719368333227604361232389837353669991143386504298878810881629071449957232937104096279126625575340730661292027692385219953098846215645435515565096525299059912547407900455584029155526586132579980770662645662637379286539542677370961537401300499460252119544344556824171200029671922291230977500865710392761773670963563083213985420661446226395601751704763822244458216646630436091782114518947177458428937764961267601839542256471093441599422906321419377400017400462213102774254142950942523814753657447359120938488696815921466151792147874453139259275527264566916564609416645976231425008899383089711334911020754483498394366169611137205913050313584742036187475982432538710808182459476898997325229973060250942671462963251496406778030324339093202420952973187532257456870227610029477633631737971796018664412552709113125562312333862206165712589288403452595375219611051640342131385475014548699038273751766604796513390271714260798283463934382154735792412746795846193759949888614102952182041880003759812309884219995966933044506502773135784766535129584735938785724837430169162236445945805253130527234158944525965199516977916239884593892134060459840453644096046781158974006768518261560095488753104836111499492544939931616497208105355221212663557318887762541351356080919180768016226867954623348614116817133586424612555044863323341610620617993451670394650536397617176060486670193597140996825029730574147092320156180930746489493262290159891925833181746155523525054815368299370031208062403395496360712513140795495306363885882633471858232528563256186048918095634609326981773852990502585598892761133890056103365627519937525205182952861736508359399652107230719012808879649212476685560173816688083562918028495357929421932849611261334303416774192955089638835378718703578660077340648470420967806309870932950291320929230419663134102331545861450834414361426685700721660044768802834176445025677034285637315603428074996007652069334270172166181940747966736477034736020544070952383689348462710421719293520163108857605680485220289738851267918928211494065515069139574570017517357610060150693588011085845938049455029738799016641653185023812707963519832894041668296834584402014661439868517869459136234970572265838808109695912499188024800350757804796186356442344124580347536623313560389779188899926958361650876477268649156658004916105673733462136840158247755737492247417876259329983412229036032285288393890249175411562955318188890963662566674502147599555549267936880667890706404273874774203530999394316351708504493919351647766247942523985988717766742352312648990431654401615044950440126010643988037467952949761176462191803767669576780515125655494710127158553402597236820721015911537383310799309116632524732302661199241049641699443533079744073325883514549561775049382146821707666729777420355986881406135293123617695623145426510884587244846999116816761447581547519527734454977640857882887152975068777459672522303760926431951895694929379291101094695617539915475858156228149986709138494702836808143020764828099165816465175728176337740014055508680675575291778372698405741577694829021387817959798789538228311259203524236043592801869668213006934413379937243778713730667620910653896316548290415246477241342835962809160169011140158040109321416741196262213396334393772643276482811403101246204031587079872539327663459410716333920733258397925369930191735419278349646025320982418304866648549330412569920385717597976147974411586667006417119181050163749539351579933320219057305467850634328177674288751121307825536860829867769228983385724467480203325581864256501926484389374105667405118750741676044468679276356796914903497604953048273589131252296207011682154536600799610998083457770800461095628362464920556429663472733216350101179433753469085088652202855068834365001168613650673590564619088052183861649985276588645185913843494952173599204635631549405504058834341513609108266482399263400104780821415253928805427031989469327481323655685144682400146739206444540300281884917359911811694412461883346749629627705170009007277569223894864258574646958212964352412308927141684408292706649414178836722291282387090166270077166871371905287997693167869349206237026046124869065111557380644275367431759347387125993782712601068059467355197086141491384844527254778921880008900032292894471850768608955021913485754089222395701350374312017584196820949845456667190061814119603638873401288188225966767507462109438034339423699670708617932375642524401268755117798137519891408922254177961626168327526296904329106585306735158947392098122896869752435687186117830288158272277416356806626110189804229272174417778452442950131986515851836670251957736730980898866028373316932974163532198498091106369471869090548698627199270331962612431242028701411379273988387650498755178866386039757427530920939360250836589947500756510497319006814146293775626705109722422211381648004121636732497752404121113030544226671291346455163944677413731452482261648096283267723342623193249024837644888249142712046783679857685734595276222491264643882964419680194341127461088773670874960236931830016073141378162513869805968503116260039592315690944207588538691721839275395258337470456846139043258649780453842654173617361440845158771619618318512675123179429182433309924692860867811438590176041077830592036063436016619341002363356625033044309583631144330678452596524495684884504343844941240265890101023682861483597559396544937521153452673388309278373096538574954045184024867588353884627617946929169618616845132926067498102573496181132243065510654682086175309452449740200781682352895745335763678872185399834003405093794981553220211166739737075639415674016630218121564021624372178858071907968793960615492356069454147552470276876363329972200720271120485102158168302011072554668450649399825556979140832158675077933925784413876014054791120435955860503311629458771692570636092170277869200930391417347188982012538272375884297924122604737728190162617158023141248072495550484394697136708950062402296640495410706370174563463251982639552005868737687269748670538459788583834796081084800977749122558332966307768746419266214657400723425812746638543873456280821465338124797232258594655654381057145536319498955753808933744706217449307731664868387741412416684538838773909248603282297057463051467450597393533029519285405646683369419484464100544997191342079622029129193409718758595408129917509810029172342475167802099131874197043029532116251331806897239924428249140864448647183524892331004382931065669984267304723022612652058951058654850413488699676044961558440377542705343094462963003637669064452983993483144640031172644236188119128987129060689865535775264717354775060312632863121947068896479765210654987394158949363396916463748947159005070085055861210565415590560363265897337088342397272676955853197989295882599179204855628996905904505609238679286103128190428429007890533791964225471003672064943032924650019006182839409347876234436935776181438691796077526177418467525525483291586227146632830047395720671622977274631678142306531159778143587141027768462815546748251114372573411587216005475857227771465602874130036832695442169118804993012957400064653319861026670120569229776994204868230459956865785141448547675628318844157501123482365638374328990307749674034971481831151316911823901570582787244780920437428798390519636342165623529681384386678738280514608997371688375342207831233293161048746267665166406154496873083071753706725730954971106454486439613440937596288222126322142003983742229625161148889988573923324098895310608836996592965451767792736931863107949987663687988075343340477107995012433768106766867773820320887917293241471746451089075670066253839190194301728846663937097538416633909759684720015048529533361193296159343064133001729056453370843575117173252000608160982824029363127534668318251553875094540040060107292665828892660213698526947112377746913989309314202911605086886246606119617528983107691528320680005616175080527261669275605771437283216259267026383365948265403595635058037067983069105414920662398370392282907469011431358036602836737556848493097403747779533442245196354800401844097494933189313697366212498629118506701190882236771569594601414025514570522103908946679929736625176593071832478018598362585247061545517512162945901149694918153819943843188439937695805195876055379037685774641511779648991603151685165622645816449779266195050885843393323564314279515981955594581937370524693834950126686708943656569184136995991514202232899526622699569179241617851351785974082997584982052171349338442536480423618573285399762465699013327342972150573422565368379622431682997156005836645020766606578363452464966540185279844863042432077864717904028094339518954855615617627374086329796946819318367924537856815291852486646236928123278349329252196081770293126014773784378627428755867586984733249085712236445852193648276239094449379780524223109973035345542177223875687526816392464932393276856731800326754750202998515296399933766863349561923946539419970291060207112269748445859582961679294464186695692719617446700316929124048270724098137921836199796809008289192941633844341489391671796909746950373283828378053945816786775673794059830030864307365583011394620516798659354139989519202136289134566061406252397978287391338483325419678995528561872820571750717898785684353558067516849982497260606670050886629185945128548495400947747287066084820150521433296340838785815020355172652007431811495073639085580594074472754925597556615211912043350338127917998714682644122764544932051734554271442306599875126635092195047461212791520440989635223888533256540998365580461282004387540827791257973757496270680938479676964807564400769665483725438921282018515780338094246259776353338211952366607145546808192502731657520640822246182624220945380907935021527413361099115477884087551874737343775742647358859255881808207740833517444951542835161484271374541315314154342957655387008704656482616853701746520587883155080165929220426577318076145369418012651450604989117693524292637603986002099086260947607726116132666348220948673743785927062429747629013237169789011142507610451650575451575772877122043002445538946040009875335234497296045038988561024920795979141867031128302638112027795057511267456878339091737933170174372558659603466928552224751263406274083398626451847255209835102374307528154183694144056455796968577770113658303973526792591504125119909571540716061115748099499606892608066901974189906104378242952269249893085697444262664480964088082091499215993331132563290766222571062992798157304685891199854626294175803134441465783994728272741862365730262751039466893303978726291520637754955425042348386977763914780873294456725626588495958482350813609747846988592010777413719627839577330013351781271399398334550055047077151841189981171249079894963526116592456936648808183370447549448327069227023441838210612556218350560596148323098495168212300526132346281772431327698591657413548251135029152458545822091741869088327614929438872146322415370553569329359597935289741478660790092902921574327067050273070859399186456768876854907315105960093290362011076598787081710931802887612511663233832641980552119291597274056399003769256315719751966818525678715242655375899778498883954544495732039932491399981869932389504001318340457157055403497749000132262596050535377345850203334831518151655812673887838845259036306995891356740941470721021081113614892342076030573471882264870023032492804725721189186911078979392413084647943654997092776703451344429868555767878643460314814769342083899290077735413594814986766521807430967777391316311538419765872027241117444018071275454601530986040521551810313289281291263789675518444742363287677645834560908602148288953366711249234633780836489905941100060400964926776535301188121847574706973816071489151608161381783380988375691018953558007199675125453473026735766022526492030766682968491162019017261632790164160712361007603307939071993042011611255515876116986435485802059824166323990761926703589507214751950540758848248284579461287198702049930023566388034530447861131914105408008067846524442710510632274864514790101962140804187149107894905796064435129398376901121715022017161424076939177690531388067472786664170150122891948649997468475814368544833247039552655361334640703288959172876604290520483237625461524773787764632297592843435191999692743086476740197051100046599882516417174097161355487773773678363133937217951468623806833930633268716211483262489215225576340796568907527347443926299631584153790062435922010721342135665006105898460640482267948359820280991604938448181464754371976263181340134525824654672266555495748264416990923955465366540433219630955892571879286756492611424052831481662745605950644098248203946035643068698345641823478089080429778048106724143935511290469707990338243077128887670109778249714503959523122543643793607271539170631889563295077917562468363143593000512307076349457261074944149700637479842215086286362414390731221942578115497993888381061839768128102283524104441966460263209510449761041190075683622747305902079386923937139287127780110586256011699517525817059413953204554046700265753442217669363101642976949245529515489266654468701969214552178162692206458110076127700078810273250485121339618048265265270125297938455080442788825386120943742934144712256868337896519147429124212604036534728995917625044676449747888648734028001307830287677476660797955613974446579373631728432743110517483159154018613627816881125052541071861513839400193982728179494378940710830863415657650466311264517354502095156478631411355558787932883066357726980291398754577329952268154288328299356263379738046263085506604755763312933121432785444743388998891272612221378733600062781376725606206804516758600314997509996290865345950113425051903905609480933624043627340600751187014200530788843970220508140936911408984108584614220337521417755926899609434431393735146190775177365454776054174133540214355877816927264047681812030603083033483228337352074191365410790209567241091213755878766064865278528377906327654880154868153423589260362793749618314946918120577010805990697239882869300004720052347570952795416037132979883107779453605587571916370947335064530299509431193755075364457947714943219094154025237888444397031405803389481292004122093886543813937512605251812852776669631313356028441675435869537841031836758295157996044223036974281751938270992391375453351895525499063261177731654239005362595697906742694756470840596999788167965620387480660107710549441981137459970144470202292239192803218148582614912581165959106592768365812715283178014501820699646389245727721109367739020880425251928257155192316282474775964645615242728921290796939396112839473866156914725478509761234774629468513105325641691388714545815959118094118136370706522312306564732831088605284334132325014086259246257205538442175039462086111357404011659285216307392233285270051727800195048053999159911248852733551984777780779103682209033072130372998583372497880626617700131348764269386886376881128130172150923678910459974940183633932047555766157244577684186353249557259037749925420652741598802095929007287852679299840975461995168295964013008827501582897884817642190428209823413736532333331790015718288265337855551752975732306135249641806049653109278272700154192199801928904445537933320249901153365085283013936068023807286504630403164699135458980776670708826993052276971630534096413340739156597551511011193934169655711257122329002350995061503548692211132312374006819337119268293361809900024171929979000181249558558029079943687799567595390211118608397956272928956967234922891232044816476999171409921984084366184710563850290148042754489282177585350698125292833045260512473205402156635373940363156571077412307893727068381308185369362312665833060323980891602743587583940971543673172340681899124714202873520118485715722604430671422926262042868017421655453117754740271836441645055395446520649264086906452852054514724476883931930693364004085684992925965192761842588776505798464374099961696822278559306324798553267946516525043551553497664222980521849133923998014673625082277357800959481887076301789331341339486047892588081137934703339839486944254929241135175217510653038725862746575592667011064017456270808336586100781934897875403826179920495709498654962695911159675934341754989210913618699548373126309014798587089454752347354336820240398725292805630126023129127027890049299867294297973951525241717350650695872937524252225321504256152047295433678465207309031980222600320054846498852558660271597795747035149709898589180435791712224618425568815410796809394395360148821624918660173857507160420073353949800591056932467077086526504375914279560113101571920198381660669448160820602005014087171534633801135407439155753063474759192359304387755235707248004102075753184746917851675204094820678032975259728000009764528392641159538440064324193198172619508067004144889980329188340772925715855865179924362079353154791988148977417738321554311003176495549859513636724175819847032059667726870529507932125974757757260535607183206224494792733083658735538843562810786413886426761283967197885354211449719695991294796367076888196076940856946073524699729592696471295688290960300462572197943580400948630989554428170587269317447169772772756365056322015904507066316244498312923736533918933277592835356774572378941499530567371489415762138201161134594531095073186496256580939383863772782755149315085294349348735961304499918444133620509824717291099716962367903606289651860853935342897126898167764796122461832665854987005910930092294933660928945797132715983157817971757442016385850246241413103976574590583131210740992748105449102532020719929105778120110607262865355314958591905418013191210582598554611671641325406880213572962733157226530524432755684399203989632895789895440639431237847091626970253432791135959694564143481498260858477798391785121095376077998659113864574275983684579556513733712025315548316054109459306117521224461423112478975637907862577636648371526142891184224265914776545382171238330190171939256367911710651877086718677937143040983257464433878450800110655688561593769213453866894926717367893695551579329313207089145090200043623712886944275659347242260505703621595786483118245017469038786434256138685503407357096798475934736662104082229569438886540096665022827507538293761862545604063470718067765153275749361981250306348919317960545020018065721136436191757102429584490198416177380861567943848869727783398421112903774671145169035197125106614897699237987818298843294256406878060826034582006555354436060811774939664429269280311938522397412175075749070429565057433114324284838552626016872165653221699667584270067466727261237701854325087574059934412501292781198550175296285108994562438958676089484869558088892495362245759713321389145435933601023431226495042515632433765983719878743745719067328096570397772720104688049450165944182092497729354628953642915992287614436218585576965875777944934556988318470215881269190991697010532419659815399740072486729023580044730490792210896508346885153388038991019557144196581088368664760216781940688574977435015569132011532105827872287830913145468813862904739268802532387545742294661269043674743454689543822369257675546161474973368575167435764936362317393378854302588219571335265622883000759241337826256193915138330195036587862858541888775295167643294199687147941532901272672828726177420879522101660065894073710739781369137739350228540162603287828899897810300862695555498515457462229410408409424049985027610811390278434382269665230306677583374346453560682690232321604604086557096705440580567966669477076759678027264863096095463570504679553060815193719073206505663649908149807071719141018888637910171627915081865967012134795069041559144074049171086205224179701803225733597339774357946996438205329468981113588816732576679003545863844902379476052557479204761765464526141144999379683159607081306574051282277872954120097169174886787297725733691269827938016267850262514506957197133296490861265989227399545335952276241166585899360117600943129782253291745639821496496467422212332375840470747254223260882829653041706435951042649868548921028460252197570998792939118365092339322390843064155318777855499836051480302377875357035153561684063042341155411660592880042179175734509482155540284198281806242914289717712819505148186173842723649221589748157666330021714866292937532527350531499515920686694119610971410495861194193607547523749479146635148141649788283454828058255869641233811735906254846384878851043180430673856503988238117311665845750588107236708148532757496942927322842122624426150572044404756457810201252724820452613609182740642659274332080882485201278446644709368412494962066295907275565745491002980610807792406000102697797613227443218506627066771955649231968224228415388848514288085340106557930725610533254678117359073190260942605604801829938299460629213525012288224193602928919178483062874691835410415931823382420118366776864761163245129790651319341654861731152751273722551747038110859173751401443614228758153033744333552319615025605750614647372558240766780556289539400524866854243775306139121072024796785533954890536466922791713090593902890564242880415158054326153013699327651400607834450537824223187684730598365952033143308032196068277247928983332957765072950338900520288921324882423642355903049100154080292493929362666773495666876873831517813275308810778692405786261233376450033900382411585446965780983820153484688846288328740581013132466285762932013588446259942880631705662227929436561917931811255991590534433719928457717301408384008848578097329648317680886500874515311148471217950250980992563910513511127831050987354582832613639625653884456105287705797359010126142193945735224751010389906716152130668510158795578151353979014722987177228852404228830029604908486416810219786427203171145297409609583300934257271615797942377587086641989027230703885379945958047577506483449922278526640389198924410075697861073656995588416452717276836881145161049500784252536673214524672068976650759812669522237649744337243897926838833118375539585612534326417809942548250678039822110576851833523916587365775520290863450963383646882596103607963449983799899897430914684019668897302457961306462623926635656142643521528514503843107189861573868128224537430250704450897278475112930151630424849874825220152915501785180502199126162620283823667395085930632502392930746407949325645663127926633818100651050888365967594296530767822086395333874950030351190966986730836895012516321285587904045394050502147232411132214200704559356227135288843929586431827207247709843195091227829530681510864436374669709810634209337311022459977008747106474529188268653271832825449458752321866689234762792048985340503045761649795446030372641183020455069358822586326932172621226355901980852080408165510980824805063447081342293475323054923270718988498513702501357915827299807674230516961227398401884012512508585974274669059213443390935728751753514975085131965703596816685138152875221839243972533961422638026361524297420758939462063464049779533296226873805125574438657522886697393480619477649646709432285601888596566057110960761970523370482409029795326433919434728581545445441460576015404593900684077311933179625296464416502172388325383959393003191471935553886203680490022083232369079583712638833232372370315053101831899477066907358980288090156941225745638883591954590603351569485501302720636351997671223106330425261216665061728526979413161398470677216384092006508276008762892762344004513150321804850977903326836768216099165354088696530192275953872896115546890563535408118334706216383786022398371229788780508391737436370231875077143366085229038128871537695462509371067402434973270390343524111831272409242435478966165276338154394054538467273529959968611477640012915410939594892223801433578493981597674337987719560782850865343651723563620611520879394864651107233162600357729313817260758970588227214995865593140575645648324597000422100463643055163129367531135762038945117003902079543142707214447467284064006400582653249524786087549889772595512894994705310774509737630900940947193842303923119463131524875334702916823794089117704293533156227161156449554831927566435396406691309500622045345386212421479891168209974110703019277375885038975285469798030094625674471695249436715323664496909016002613260905024615108454466419765602136926310973651811498716745046230838450177628555703117324961949716775554534366438183502743371904649814001319574676245167847010001450229824952408138267243755904516409145993759359590764511602877460068314978968989115757120818291781588541241849809072544952822950005344689146114619765753653456099848471826471629552805473587875437977150160712981296800650603652894995560499709543347530161609622735105932062823670558243777870006866189891300907820081002709402515492462015496137782227554542802110321512309167928298259922249806724584867682594815566002968021502549073284959642669855478193906230356201163738143340785480395206120170768426599029313831878675663386553944061313692887930821433533050110427769187771699908688996452102908783936157093104294139744514817229831838876314888003281461518718634037770933731090456056472393748588269192190143890577881574846525759993674356287858838934664918266754355287994744890271806829085652817026876125813716083681679632902599837051272173578641716133919126888927954650477883452450770181457992211558852285053982679242202217189163166546106312691475019070409958522008655361586198536269361649985065604805984056924949524511537452121801773536095051796894216641764062021719487018766620620436193124654221636883361261626063605340769982470816988510261908055867102521570626050852471830102059095866042132212953763469315400437644026056729445929301886376708789508868797964681313521697997545394603779841247311169046096704965169179154874472817529726153524633370969424455330014525581290169049022393414623272668348856776508979008830552303739773672422402578489852129691010586751948207059731944999044943385706136960112488438323718214013452774617540094593423631710454533662031875603239071316745977594866384841134166464379519148988223571376632171544953884868007340604496293382538687931199654733852871161502718649980054795732013217089538071283434950062072962255128139628889305018177291976235460020651545395180946244874358376001842520207900379776647916960169024018390124482371493462241408909951758751318368647885121374670836101902566226083425974470498667673991308852489438622570794055450989010928320110244361503409671520193774044273904198755976598171477185437932314167587411251132716468521103937002612220241073734922638719187196821815616167864431684667252527753265560442126808924932803664317954070909051113440981643861213962359436328427575331454053846767561220427694772224455710754063584354029640036867329721140274733324368326365346301047644555431731584614784189584949657847873426055458379539132049463656909407321623736200016062849566474402327135266595343476259476059514924973200097345113437261465861322542720282182517046739668088817549787614003647099288485355470769294667736692777845503864361571397996251345513062638073784461577880895304663884410262302325965408943645175080156774662687720520538836169592893820877203119746769863290024579253471808644408287413746720147389580338717406725725678616587815949979368325839024563682057994791730000771685533103499607437448603612644750694865275950981168239479330724188536417035478009984764110727813896733851792235446558609298195276316012663307042068943564582374784669306289006414851548990031425875954571722177502677189765508091709115668291631370576282873612908989214125983069355588876153664022395550470854147628634975532663476952739332996925973782604792554575870907096646878271793554178648867908117800550324234967635157833757746558972302796001115965361678920356669377786062878301435772069531977425197555873397197580199871917835062438381282203919813606188581645442748516711054920943881181306606784942282004138797348379223367841005540991990623243262716215281507180507579946300052782840597283677454050889160424617910977149011546502415004006813957660365000864801365459084181529454348607224071198892081806383970349946444281813601743093270536547894915347729161701593925884001720397859214508825078917363205163409888313974204443887719599918166839905057994375116317641904684243495188566618002991549436824690102204249288795388918084838708804528363888566278204099361311947727229909986128047028485941022024958005512060929545269776351776824258674675033986814231511895883992920021902077939924067587247132167931658878669252297720214156351828364688264129919456503992940348982623893937375272013855679204779348610074547092048662849806173181693897357250422482161805999599992601267656530989188650149116439890507032943101480724423137895190315079537014023061985120054140180645522552337737607831624168151245017752704307279786825979800106841545738501700590946371292522548381885146007183552568710912703147426646477744571429219476884189645207854727384923502140622853620995375852678150845926739258121666270287137007146733376458117382718080484574027501570190398830261142655475141902041955040691537047674301438051173967549040272557563541207901405063276611879473667633407450069918007876264533910390853074538624108545752476858871934776132512282037352993207733085990578966332638421767857138769796079972866915623442825479064848053915487321627955686571421799309837470268362318653415076806092789009780844586078831011150080467161869026202806510828678702346618044491367672012371196562165167580403887356179919490026495096363691140491527191962960927243048995550369131039216658341603903157652178507913223474660354992538865486335228719025639251623930183101830318371612427575500484754238714768231223588710279207687984866045569678959054931134372739983975939122126786826212710663087606302403628789063854263930051710198385475658649220903111623241488199813831378284638706283993102279484349780000191466710863661308976302484522439155363017952337028024222167043659541295975754386095133568995961636059569462453319559726396353567595994735892427990852672692690371893723031736641419503034634869254875415767427220000721074735496576643406320902377101841224176775418982097321986497324808621787048415342328955419608005268919903903309705584814851764814320243878604423832809106071313919058766153002349520031764279099576408009426545123817960832465540357893396006005192447083950988410568115434723622841205561269288578333255974858867381486161925406664896945216464099851701429504906688088731393565808378828250317514115340707379832570041502358676897056907864631589484815247664591199372876887352774803175572263988358320218595345022031875085721562758941559744009241611481817352632484930962410839701574653717653047593556976316996447710618477622129860593617234395291762202401493214818272815647990084161991951825243351526448857850965507053616541699260796488204771881207165870478516558377353850176707166631994186967322231338251670148756540118777177843264845998686077687788232395025577040565148118103057043556702649812798373701655794791477761367394738386865521741232103108966657196033599493705842371941416208860601038584039289377376739175411930011441512068180456136470718732592819921139998428330284964477243939365669630090007587127049220381936667069513168460881774170267343082611004076047153342773967159039142804017279714428355731017123363642515526240232580695849962433034576568912785489276531885377154815789636906086469254829911336707424638324079058748446217332183151514861216793634319806602251956603664343628313705764801477088722115819868585518583651036318023459269726501328507703519101555459676136640760675796931431728609034128511066579376867887706062829558822468431164892645569589663225191670284320203449341948825594198079340707552951391830968429548864115124749215704300940494853623591448448133932356676840533446369878055588755565066354074578247753318475537155237996463529520374834396774072268143385949873869008379553750324742837347962002669981559250858925954509908462358936315311521966813273622367647816369376542155069220523312405634826454072598811342652122769891410530157207564710511412810537964541479513810948243641144213756041267282366804066125188755352705838521644286200802305471592787096999802614483069104774426718214964984505141772735131469271326231532000098546785317093720818045302004411147133941808355451554795797786836277214470467368917491101413097489109351645629195909362138438560733729202671814732770756402511687231653570143839659032354735660668374545057114691523547745214871986919182171946916719690921489748190363355865147432612351172365383074176501052827098833596929318092406032391008383019822936936015955428710771596575610172973649820269271628254346695965554276582163074780983587613936243743600271804238317954700441788326671912910861201146451313906107076495767772092065205382569568022903145438770160057684770748331306154455528499266750336444755212443803685527724557880576547692069320676460829782500834943743160839608579286731846812717231091913124150316401258832896450392279922083395332339740996712077772211308030821658977170792476687831673569341565346768183925021239881625104619452196144391036506133110057025483560221514857330085896658066662571406800724413257690143348465885990822752078557487951325969027058494985822545593813285153059160992198491480149476289569102637962259989355053490201845560848100930525497848689941165073096783084849401673944576345840887884153491859867226686650356308475727937168322201997711495230044977504639532321611676780004229704337630908656774731206333403074112564230724392538463165253878372433982665691560425942479301013979686574074148573794662430503057189518637453397911923640306593769168111419352439878464493147530046102611917666404472805867142671594564784818837410596611135814083325265820094863059507685163625381539433428098772605764327015786312275446067719141110228696450168492851433420448228226881487470353445408889787102791563265849276380738505165845427163252503496198012076560346157448030030207866650457929731085778132189071903333213504741129072381512359908933206465929835562786132442617659249283254721526819557042368380430612820295402952655534894907899089915648589084510158641953416520277078844971991371141831414703214368062009606397250323451556904478438191049083235395538156484860456146208402656511081584006563046031677360550498470309941552898286258334032877840319375451267975930244547526661085913643572428680327579573498371411334554583300062571970295129737864204544390350044015341350007298040930487188172583898319076802203935925484111043031450376691358890130212101720027494410364001352970881012164244178136779555096361102006587789631495922965887489706016845448061280604951168679504549188665937682543254463285774993437057621431580984265155567164672391741216208710998162063854691654626021000758695289916745511566314017064322350979061108301378535583837961841222989655624831175491734467698179568173216394898402624019866257791968630483321370846259296158841920022184612404420372959035867501661744298457036013330922131071077379760356315326181770933819738276155251239635236393733172436636268735235113531757258189392640597946837428394744194651573961904691530069654516040525418824441607093515898291267582196905324922952578105611125573003529266844784350360687220479555871830692680419268227547479990378707973691408941510737676283966377519517952697103617375164354090152250249451801749026600312264223404124854223835832352221926896237298632223283302570734861068152405615016177773052654733375552773206434258854047795451582703224646291425245213355076130770133156817163165928604526102245480051858549547301643408055949060455945459943594739095159979156299148678184770584510155763143744579188467691844355824705581536163442633109013033263851288577096604791017615918094796341061983671274768843746075767147977963029129547573645955309111729778967229892376757652734725480791317115405552281340320206467340239230131432733418807750447571887606950377771276969769692072259595915935980785474928049163494625015711898893560051137096303090972872012921711466918861293563687743976860005637669295610035759227647775070940550424871453574016807011691544650129001280725018776260630424632888482074647332162704001257596349930945331270536958689099123918767933316982558778495495369713543292262194075711932672956353641596150413773957458884592639293354033741356903141551102874459197087690148735886397931676434358047460117701713867112057323783218204538670909731924391919884427659621965186622870056793565804990374009696727120683754795768042725948078254483582262068274857296530770837365699060803551667240816161333469098216208534170163024357927058481400977886756398010991457958708593386137390647500118225865674780293595039145099686577687266204066283439300999441584484942297800902638476708202134209568952909742350936176425729336319259643439853295090494416235338812055089704356451215365796239684995485422435126911362014637324276922909573393905873541149744149846604728232995134880952177572438143671555483271959673548845992061348985752602384344655943208773832328137677064584826132437066256952899850015051113615300904679334073497119728218259044090825277625334414111185325296094499868528584417888059768443063918962967074579105246046095098977381933121931101914079508447575019309006897287587335218128766046989613877758286481053068880815800821729271728775444589650364622606293539967423893570907861687675136774218280503926826360947027431674890221558042278357983567321398749873135529633361161242440589470101124859770048924394760442766837127373212191907650617229638618332792552792937604062899809669990891306934176387844914387975836812821100444927231383401894062787854770267105553042585712023348358893336118538406586715778738279269772878737389126941397795357024767613737955269216089099604583022951194252517400039554422562976862282251393948035774273383534761631404328122457299764524019150546123336064227589388105900256558897805850687716210222208174036735902088421393611427778849377145355543135902220785146336748038997712620421993514827870054188429309821950641412032250762198130191973681869337950968124364248638621242183905087045152619610131409895275698853774172676374204293731867832185029487136519435957586956261959652174320011171170235655649185957825351490647770582473934352522659163016751729638948131735460613225139900875558290888701734672215190871813754047263235703582663358600717566371455720341021638337405832975174922193197376761426468904373419647482087131065473898702605180044189777074165343506488142092271772127325180159700340374731694900909759984742129176296809416741638651754217044487646815868848753348086804753542962645403497534925737349528379493288626823883594462169845909838492119185873373845451217948715949064203575439664247301688700882557131234445734979449540707593432631194111078486921267933623503069124239146441421570197709341123515722335181927115492925708635466824464736553955011746510888080021551592584571886223407783261439811720581183431938969162601683476178237008116791949952134567573109899888945034561847804852291769046517223858806169877927580235508646548761754758604676165613296245499831078886610007125118015721643117211367828133780539414140232350905244981514044995019382211649717380868350958252589040820855015523067351314392777629368937523796137104379538525320138263241514849926000404838652032803764850830276057747796195464341675946420770356870893841732893452612145950666423168456738442609772837526168138885787704984360072866778103657597010686168018521885548485992620800910968451571327523049656128352111878315871477282009776061441562076751516377990170887523773292625114948314520437575618392237135529215465551777829832856724465716686115847148866865825112672618196620025172409915586218469860893577636967340108188362203248900958993975236874893523478946847784733205279161061119190613671306322888629524960720446330225242996138410083993565504621604645592583490672125544425189554221307561625861749158678553167795198148792515736691366590617469324285851545517898894127231986751308807237213363274807356659811161458341532833430429108126315830019890997946353015965486416985239477516399687743615818553279297434820175109050017990427370692726256932043134648253287964134490037491544290189096109732283183217064847663807269027368778316288540790889145830203819994976213730397124368433357871882640396387829386766210736506584936855790169720045287461837199377584277298825077943279132335235163322892766704429236283288575977158275807060120539023219949714879337095504166247433633527716962235288134937492979700642508320334334873019927376461173175275700508151041916962289704078986342906271972821327499961269639698754091224150500369755765025508006801315557100852534955119334393408661041735121374162482237570177571566074747028832098092524479922976091690231889305169358130088977931251099227119039726443248381487024031470329968983014934068570991110816205674791593742758839293746603220324739440324382965492678714690259026957291580371339800328772884561682315301033644453218832889043950400032351125333353099529507057304757950503593461211819063499168896079133755300031591063898932735942094132569148549637610968430264907874739805892062570453582296123298049767066757944099222377365737624394483487044549048736717945484296055425211578439124733953912458879957026868869695789693258242025855233535037113389719300496297070238164101088098332144943862409271168774325496494968614765011442714053403381522120855604121153912907858452897518297904887567035554395713041865992964150371022135524323884248018868851408915651817627001683936225166121786221271901838479277941831991037421174261062818090355836726687946092576417298226353377929665247030474175873174561600266809208640399812907280222453281655448857437689078423262500298376761465234941561948292617105624839849800847218771753599146887975553903390826789757939206288817547052744024197797403282123044953562284826773687047064366129022446517071052297232613291615498312956467747971231659645016117701518650350476501184389340606357799287712597044381848491065766287200226045290589369188470744582673855523093326471030082755533637233750650962874594053861086999048996260020723770710486794653243668068628891965698726329646951642946573111909740212515386335408535176110865665724730266417753302203543020243152426031616888315706807247335678373958782758915710014298384905720807319376065808673258668638300727409436221319598665541867633870204795755053205734710378299391759417839692922196377155620160813646850417671609686556417766608600589922165581286076032846023846197962283136010264823402612767468650162894051891921262562303393073554620220525227980719568697166000061300906434760750178443861479749538966172927196843095161079736133618055389493295938714172720619498844285912182047032381145107305432704785859764413692305815527811114567527588869905684086554075272756913506310736204035491667440179269567022869057692936389310434671971892315507763667571300572784500032788053129318849064639775132420516394631862596185562067244237725812324128115279412732306699293742519452712346425834508615517583204388017431662648598670144028495747286746205794105180052912181055770951262378108870640789886062927658201972377313912443627243936608958994926387365684255833557828442765766480081483519631962216696634766738409654613824989494426652651573409683846003077316640929043509340336217124218051614581484070161723777818605925976065890052364358291171570873469804961747243465812977062044896411271751036409132621834747422077333090257823421079219528803263106817310075305915008988683745450206383208049260380478850194673382574534653264683038858302451828522973895680097585214102523349267732901628353536700339497938157514546624227543776971535239915536371782657276131508939028916997636622892307867265946955884815203319459781336947580304826832084529774196956042558963160036611463991703900897199744887752199799469115527989257796960708479978561753477671966001469086670089750965872524558577376633026225481220294295879325935020223481396394706349624014838453842324373529161799600035637585278895424118061024922157051033189308996582954436556913730650930417254970643702869411285716456362977401126889082833232730536347621724623520217736878607947146632474558770039288887782625739004164789792403145721116362993940230287683024642423294194074272018250458066084882552787048718931189529925985204666873013516305230822415085179916345989982519121742002147798506554891951715795902810069901100270396909414287995417915949108227825826220145500324207677112847725872546274715225536624348425411407681257753433056193953943707460793130938520852199423158487424654943503723578986109184632432064036629036048893594414976086525150310703894495691586575744943525295514139784869901199179643316954910125578997379110908966915694498587284727208797034386197738889362554136264712308909345282926633431432470089336660306104908101995379123336357121842058860319707325373994829757119884282886855925843143225938171640974253691282541653383432392810981721610826141641087854848446724093316266105661183904737162179998591717656567115943105438130181673210886919840529186126886194011604261254889171625304124480292833025876638817319337827622470609088597795834340981254592668154834105048715695340123877901977571217722137833103000440855708308993228380788611250719045333138613649982459622159913576093083914227078696875296321726898434052150341378899685710983489086697524322273436357997571536416565274367180006686705855716023701455562455357064858451568909133636478118403217596701152254839743193524427767981674760702868010794171650436538403170420418249515950510071409176886669673583996336388656320275308416969364791441703132581509993455956402064554305268527916904994911524899669176544415321182094543717841838080704873534606593339832823910586454171657937718036247462303893931266204458209553343637037483196303862239491707980832965507795268589733337871635273063363393079194155004035159248914047975879447664939750362492035581633253402023759855776265417161878859967175539278274876075672853560907957781090308634604930008703045328692719759945943865616310985510735253013714389354972148868944282025600989224496097221326576555461207532147681464700496486907770353905036759678501771399035276840766702166055662733978957391125036891959700554918505976913265504605818468065108858646822614130665489771275415699181024051057308659549082668322052818109221755179855818265489853980078912200737445731633874252408140434559857086328240034074115666630303731531194992610360527829160604870923935855628741355677732166105884247440744634284286516162692118656492236545866822000686831154795394488791109809481077667672981859307577089817755786607003122993855635945666100659927488754359728903138875167337702710422741583329160843853553034212164683616944835646048642875865889272212222512636223974610991646973836253196245790588259631738259836471923308812064467296708283202910126939176806582680989928910253330580581254946120169098826590470238079524915635248524824643806267146765887686438862612932501814972546897880534786189528363064890527360826723896867256807699572158996376415744698406430455847140432675624612793850204492540437959831032321537710283291719050215548023643582832953331081958970489074356806570865508058552992769946154051664944138229395589573967672129125113576458681274211077564866362669301045719519455797825530245948813518555214070879377372832723441705597021255169254987576850766145018869724466811865298788498221623947535755758732163848124387922761167976186360237404527763909102960459492682310759515270347397523762330446322033458159382683582975227557196573333442286002754519764024221830293264638839896412044292810551762983033820384756611529072360541070533826671731005005766995035899332284188156194675916832762722383020455352398428147148439983909330747982380958542669736060841628092466193947085823068516660401935787110406094048205210255261572859713150489563132692250165826935086461029124658309258661438144997281012496272178784608684161128816697420989723516312868349665620617415647407912862251758336945419817962030260480128815147596073236149950561092408909840817399322068085309323262291048513692036192565960774451800945801747869158412086653109756959370378596862217594123832161656258004211609167362153183097884017636532595430789329126661593221712672721987623802814042801735087252093729451390121376705703326856048468760284033299972876136476140849265799491404969145405264171385926670337085558277933351341438331325115170111173550311175339029065178603740807593019942727441007171583161675113201230948354979962798447014829525055908084190285152005042565728926984266813266433710974697689726402895281745307922271280017859370884586680070542748127159985178318240720078932008223712262225291101120474474377014840281240846918238285978509486856769955085043555433046188731148996916710677157860074550934391389087497042890603378188886982185042056029885106438928911285666471569878728790063197442854804828636503116343478618370922230445898046032625312927547030102137250398199653486792178136489072535401507008144284799074016241007057400137909951150011287953532768144495629018396587584541333156025827599702566604161896124340594912868801428866122246557384046299373293700394311537247234603306910451772824730869235484389959479071032966024310796371485492367151729743267036476013384618576813720785993166390051458024940681417298533629780778568278758859644039617943642675435360362517570180726043417074681049489779285605665074549955620222925385448657923011257782165108214522777959267193187069100209935220884717410851222238521695601904808773541308729207164453145709897913439597916106368504984854459812795837012555505315981454895322305664786839119675378916511216055632980040653207319494741746290591689933923089876717286552814607438042645004016009483556586373710863733656375508344472126582433952179703123356756989937725608195383685726662624293821011393745728593951649579675216415383087647146990387004529123959150424402778900752204787474556412518334462664988367794420769107553534983094958694664635865593838339164198506213825229994351312979767272699385726889005359981247793917049946787827187930756918073088626623733415130948986181121468391010908341611285602637750194845935086372841114850473838830496281149393538161226761571423079517294455096570306092579721031059923253344321083749874814341070815481031569723562843408844267674728003100775840276328851485226622079478564675743082695479413504208980433613034840252357815601358831918819967587089346465652122188937150455867351790619660975161846176997973584766498090726423515277209575135073409862991438129417685558981828137148073541811631220293519443416628868411135844751563123104782868384675475301674112941598304475642858582136127490329943342606435738406628736341955634351351491141826592451064900394875227726686423374783973481925931149838452445951991554168092135115990058951319814669453669961666932679988409689826705484706994891593095827571610069634029051098975610683310406294188737302691215810329695712908804998500701086451082798296727983831972277754084975072074464522112476204311495356036768876319119366145245883236180095549824414033272635504204931859521174519389263699750389204850885544744919293582647731091492118227996644526151246693344648193892355216102952652659659396151255472622085754398085822911579331151091507263369257997061079704113637968960090972602885029792242291744158512098246756866234212482160686780546204681469684356010811070983949827418853772811083886523089602268742925855209939913647485451745767554426596377976267244005796125315666567238463186888710492995701259217935911135601232829802961224646207567948585552993506160950277216707647614500066633546041584648779804260640417411712533956091107935646065971117324915856195508571776998236664888611299789708772292512124702831333012349671272481488149521287892908304146988171148230439771510261645704612053451126538832785169112411801140151876908101639977884298000485284747435949645228520263333897834790485834763513086322963866087544050353479193246234403242923123825455771877489134964275665411730239883586789216708203175499804842825795787053019146020915315085172194746146138318086534094414109590912667966907411726897666456618005314243002591741930518643379725268071833213969270326737718046376026499927963193315890163931335252919561619319130475539457612987310107991607582293963072875904496325742202336191163368652355067738017442621703094920260724454896391276294875342593902720297237357944365204928221968554304764007716236344279582212514706647103796278769427957335655774166026204674294636322536460031183368381314875834265302134960647396755035093437833828758626715642448383302495651994225524615559248890406821174996254288024663910836578229665381749607815708511496810557618896497017775573017642396962644630366173579906818203369324501571611534450113286706435106740113170971137958643437438248597413859008401217229458960463166893418794438064597146129745807644474299882693544353710629125550647063076230522320826246683686924480597895343692694293660484521842040675770572905751904214963034290623114842482405826926282741483353409964889689231245188564310846959890125356953769421258044141547512822350743422349223832441237899013452182276442558156356333669875533949547718410592381334630148830744563164365571430333409581043902873628570623429176713494716416537830908159823801777425759903405484874697133476051371920369839918722163696596055086424310866188779290625368552634552380461728461099931287496550920268348691566723493659432563993353734751238817795998847041677420070142564251863355041141917331552112583855817684001187474919375366458838465458407580188137096882517281553087022781207018308979879552859763007164245060764789301744559143514220807096150648704756718735407176521555795253190032562426640048191007077052928693483293695595208386687925894592777846390596670028534593124381662249389368726169641548131177189781430907140283725241238901349303375742930641779559894363691789947985002183205786920470732253986070075677620803129399320825839833002899486915980099359367627172238856125622084491030773090015936137727772956972917751340180543389184767915791307025421085725164031904030913749152592917180420748114737173671527102776401873049775203087488845923903422717391384729916992162499513227299611215744702117355463234368183925458090564222757359026465198991721521557340737338346586073324085605734735438240520481159326236325030195767345789949318357878767365724134574070483873615749378569117556925913745961116739848688264649651347621025474376618545420052292044733807762402198095215286390980769358239840415766754243670390121411853261488417712400513595880298840160365301317704962326448484605242239967008048477910245602249728689944015975290956762532306316158039797063357943158616854288893692943306399932727633503953012077176758041628063075746546111959113900616730744514856503349102552983826068224134567538446005681952438862398334187300880946147852728390910891694509782568736267722932053366853746464211556978854771149399857885867464109725961873047159298583361426569505290640087186304916670917280865216603922835242513278109788439742065120249339591874180590399788065247516722731548563481006577741328806213309726993829855142080145032700807093175885757684315829117286658936372146405709187939395846121092452472954181686727015967998057224772761754130987037618660879525039648973928592546983270460211489917350454324403392005866872107581385474915703090375171488769370713939074386009008785800419289463724721876637556987735464180157702471993022637441130796155462668502561711672498337918391387611065761500013515642176325024817224661848934760966966671708651276966547210273875805845235773565531274283804994025912417183435378955034981914773320523888964188419705556382345862530350266803979982695909582688510101257922713409316563307402722939909645004758648040482361092303379686983709083375310120437781292070856778971825510571906909930483640060871310625931616971046598633741007691535006908854750303631080253970317246169496652933659902939853187844570745231393236752075394718179962108536749478956259475934781757350714387721688899119440902730992169863216656448224369520925384492354255631830489596159764606095612011696783670738765186000935049908513980192258260911826389347070650816518555064957105708759026583787468468965108160593424446498842383775337125952518414889626199771363615894129305724189293392026476836672851630784521009254836354040240775638504704878950512233166138665260892960815590882505922075078672484040872587209647928080769872980763330603956252564226288546765506255641527499605534995927874509526038560932976690106316063039784029419357066169322041112092961970577571560258841542590628230317296739570846402309211518304540995311250016966778631009238760972721923838037789269801419126310754842491593129486920955041047438468947316725564906928317531420049136309088685149231822498752138415683116114149210915338449839530742413568251128694633823679245538673487485462854316117105871476313908734714683571057076210644534582763028664487938094415122929813969111246899205788743884311391557050432226604562741901372852517397233581615529613174879133206562409348507303941627512543699228974600020264983954497458021351518721361440756198257640247313705283151683454438591597373394780462690656018461091378107164797050102275333198267738872790725228020293910892939706019690637099169066662483425842719586211662976639136757867785468549520357065902206104028653820288484416732891682868691225126601926594861349516279696240041136082749000011957218952537731346997068553992157290163154985569367034404062574339880603395916425837002164493023314949760969379061288261773526173734872689580572485846465000729637594760582544917074379375480490073577859994960664750015874779615145329294711696556282685378978913353169880745481829614316260420595414469300058752260074445004522680643814628192965109356032938017122005834701780365409722493769998331892393341809705433394112131919162895008451943128453221494282939479326230366971210542260081729657863238575448121420786474232977026045578660008925704963075459039786723685360486774969347037048971842306793524387285490141156440300470704206025621479067605056163868698106271274771893199293592251648881452964914481852133928441211341441883345207689053468765357397415058882240894134625990104576773397138067069961162089385727263146834083027652073245306059549125297635791895966057998252633094454460778925148755754462951958603947400065371455424654003096871933831588388313863920866398702057288838698956872240099902792894533308588380495292431068276332406927779842446527918698414958437471907235125602744525040868949451782070724942269089684315331838533034295297474174628954708639747098989472354777119587758940885079434983184555968418724893162838623370159042616310610414392089718991112855251631631809446684792130892841349067169077150007264555356087539243921141503929398750973969707275589490283323329083067462941471993778929080521382066120974536765391627981406070185550333370148401880715237036007440551999236945904588816820095759795793278848987132418716790426176996368759684738025454459210796928120575692922524757437750662198613686312552056503306539823880755477334526646082096762254597405758273133735407810325041324600497880491236431389348231560753373932640129168381862883814190978051032388600728675336279298387763147519025820173821234190194604252945225648020543100398598688248591186922282647340138426565496297438211010299948950530846523658982128466245852299792204321708135515234198436530002762254003816806065659753736597875854516158936411698056654754666930531235397376718206838139351882829925433962062222593257594990753086145539607673148577847255756999868378801444366317720664827567353159375885534763824685772633846737304798373643461629074010873693204383524585348001181178412315914858683278020518835241683374662977926033088354805682554674150064401035904878982771286784692543283590413262944023924807784566851756999380668404861094830518492823495182829539549898426419770756336683017134508317088572223792842443054808777315593108132641920201990715010746729016949981148023114904052660343941432666500067183741356494484197279572193922631337084154580878955461910636676408767206702494619357331586823679877095379955793560388567344453418305261461277540397674115110372906919677408075345537488523076693457993545047398414281334701650443813397233765437541704212968567415719942640768742255739742749518821669968198508217319528771176041946252629793468185872298499804811702985889278034955434735512905506864257728608159333576759534146724729904512103503248271246900903547091772280534360532389601218041781855988012291185637296621595512680546159575608523334160024609301859954447880964480937889690853319640036457327408793330885495346084167537487137512375764697441741700598586076690902392554550506521767554868825951774266028345788198151662075470118850834773261314415844208175880787189967116475859740863470561364734283999000568653288922077584207104336634063320148212044740927015155411142042508780240261428831499044935159747153426700603748927261492818062669388093641261102568536087699336846475435232692343617470007263306343923053930116581039344286769492539042605879780160496935784448660010928955823959783640475885244822796031556926474885167433425745014292547702948379060243495582175212717160297637762276761037084127794129507242496436510996389858099684147264221972307413563041223838600875798997235933342543290982078319546515776469303153876998576926220193792140204785397294401681262690982314838585077085569631505597988241071269827684345617658707895672968407921412598472839757735570166337600382311602804491239901367938750552466608557210544424502386954938852916196881614574903076030592229513028579822846272835357615129833465579135843600675156420264550705657612292875693654062994074515717223688296868524345494402214797461065845073145607379903428990867326312216243424559753679991875352803892029884587561370486049189863495600397332305258740549533826842303995598773332363154115410558342982330598205779392094563859522960037940795927459141212473925411010054925161774650421674349428328164478930280080986092231829141935734592912933604595958970440425516518309227527215025465205563610530836922763135461395712079690900517705487206237108052670862081721397679200656060891776097108395283507330726548627225129317218008105800397177932084193817115398149613638445083241434567070566420216004612354122167910119787014038088410805948737961671396073295426842578909002283825144952072103223488232648625951627528575979699673355252194628596750680713357274506261390705028643602429468496074188314670382285138877436893103653137071559621006961994942679285123937253352984394606677230204663602893556524331453400766077240586908530080652553611430533683590462474121383306713763522467442035579239758059823975214087833711181864194188315137336372964572603299007679992307012434332779797460309896596310743710476901275013634667440773334446870349223096072712720196970725646917337449941369190335744298881536683907097838033342582507800072389411458770827801877248607298252238096646277025058147492171890300588234627964543541296143000410149075539978061664317849464892435720733688314898949891985134224754096699558488388954526246605282340061298499671476759891367690637268805911795188534274786898467584297036489143111241260296638099039459536443433024265059835490940024577975734583779456379824379603243013891393250422436436469660258703955932839067807038249071221636587703072783491651414863056239009353302198032910176390681337707923183728680294716534521686604152118650423796879970355482926125628095012072453988995573722972001569674417287374761193244456833913361371261401265317575444817599671992192276525732762801170689430551655195555147859904604781488439141330788670257644277972448868480820126089163429617864985084768585406081360208469062169210252134308223514973939208923784235740938745585665257501473654448729301913262193804810244124941495940630079601396464141936349711247823143767794792033038169075579909093565013542812470398534364224412046597939403078219413133146360299886270507708745008956474325075517791457269063614164281535609575368734577694907406014389031012106628021043968672299901567086520855905480712810366621513332961086502459935311699377166906271733538772599694516653547229872939299010017918161013756814267604834150968329166896247960256444014724112492555639801399537327519201111485897565173187493040593638906716221395744852701522224083201137253419747529480292349876921267587223264832562531819712799562791015267422353290774532548054173139254670008848352233825624911952350800148370168017387994428373321286022640415514363253534841718532605235084733255803285408873086903924049804447247518657751032610139726772735468937960586847489254246501246348581754188572635521515091802433625383409579465730466747054995935345653137731310727087174368218712750472224735238557858508492209556809153376385869515488727511984168532614773672929116995513122333452539754400403195847977492311866281794656049829343848282061483551952154287329089496237327099601102452044110613114782312156378336585034518075560178271411228117310393548041682261709266975450620393301888458783472912911798169234597169366600942082393802509177593832263776393098732941274652369231665667086719612011382290383608534948561711123709747701144230437557455130962662345093676078214556568265404759358593134197634295684334414576577875651969272810879823381803978301431868301269396582693329774029335217773927636956361105071713224432118518829516892132846988380704924708215532758542041908655314322265531703427365073111665185888360714596341411503257328203589331631027181739886349396268569134907110867375873585288866030031526997800590541054850251819306465704569948770293280328752057806978165639529644857420326730407237367907271339110944992696018811266296390387882773691471289817306835464911629376201159405309575447387802870750200077236178169507035981252132701026498663827506541757643221409783269002481746587531730743895899798597162504812953078676358881750569456614331717603650447905276414332477302999379642447452425189573843947516664815366866498797644779990753230368012186568706397258461593252898573366483119889771107504756115650552440449030080142757832512272230587210277312063344332263223698817195987256479394642090436385892031419312933324742352898961871534315444077642570007006660248550791817527835699699853155982836558109562042029789885047792715967926909278708610649302146342148719014237231585225304142920037697672703984805559261070247245633788259799554275850146973623281684367098128908289325202475942330657036391293420071649841496840734668701096860846839802045825097155717819071837922231922763183719917074117822633814819604855362572239411637633667349512296356153696731028235544086161593732242969255725977783179319006511701330615301624484739387842213589642329487629599187245715783906147268475772645582278782014965654674581017513374099313719415038335632880450957270165835563574178293102699632565558054228355044421921564119331867787652852762277014222146716923635409435039321720481836105058698204912545929467165750270486578423679544799084009301328970051607741341154196339804661470926179654942272496182311387251541942526396168040597494014166463950585307365614148471918923694216179592277135026745727045599408566435797184259555145176433371537689571342926078966782328241469002822433103273446367790660540249653697610564450605585235919521235261537475810756296446455810517713660891941518587369889385850935638141786892296975730336907015758752559621288729975124008470730972446410193854503075998654539227833778487798346016814599722728301298596651747580181440141784077990343991103924832682402973097367291603733312524804443060466605020421544387203257609301087019853760971618496024347568767277113426547156176445027486559991537043819375558124939510960327561161924559966062249324563126662053942012602328533343622952163446973815166453387205361060058006968764326752045519087450833508945902392450653374872627615459971598559003729342237853757343826588183064304814562278134607324065311324365312425046708766771399527214834323538712986106954868544870224121188291411561507724105901869811247054103251653747700504419128972034363118347225951670135053640118727338491641806654561515061110907546102389875280358846303492463115024229797110672507885402785142213452368957062458151005651082816293099488364125045873513867046955204441483300921789844081148852102047769563984112958490872681239821008051509654295344815737132137675577283435960159043508454532492797946015045032290971379683894154163907412596569878757314454310652919579991421226090605397818775563539490663169597930924170679580249560682813689731472795834445994343986359427986928196370416270342199417534878819310261409677619074253499923615385925289446030328789441419962245642111312494521067202563163287320393697715662919904339304900885202095659560556586485392997167425053412518628969067936673886317665104655287186063564923551947738121559333677243855250288603742376211281984559458643710247573592378949808712065822293612777401252289514982849066547881867153213704331560958867118759425577010996886279745011532827388646817973297320678664730850758771169033371797241886516863398637023873588174086218270030596443190644631374823850151055435982386186956223862570739589898550814579080614982186308232431852930119384811306479960595492269552026213971144077333174833205278360609079590504076107583069684229631720425088983364471477697124514877193062960592882566821194766507083795209058476199095702951395964538465102770677209218370030209375809189832740544113523975375620425816877494944112745338193386387845466371643190143819016012604303520618449676931611778316237014225916779718411053968228081045587950367716504604312651392888156690436406023805350881616009247108681133743614994184792012492792193918346286641497665479193707112391543822095968145008208099005011042837612411276180072512206199559396749556049986070369887368732549196737683027901006884140412202367333115649793884656195724320569525460610410302356012328159400175167988816205363522008225770113580255719672507583403665313856577989992915118796489781885640534621227060475728320190196388153875672333884163393200511609586394950549180649923289447222391568212269844774462317339746476166838886819985620716488350012997863245197435132291302410609600762041704925228984988287873685631072670596838723829100470585176937861254369549113965962738695966876142462818822674992767013291820378409714454751848349930150861013418981239050518597660875201023676815640417606887268116134150213454168351050713934965393830035513876635553808246865302775768927172447199027134253412200395073459131997520912703848895575410730427472356376039008260684099627209455620570849135391106172997919711959301934124492723701172539130683121185629568433780453409992582529288585035603191111829808035177287758899832462955857080130496424961434110277056888600464354490045478557500159903934646398133602765554439741650276774115688933736530702356536441587275037562993620451662425927229904741359222190363828269759290768519767156997673259002666985597246509247936680915822516680217916220750603337770351961322718529317351740945306269922340491446795285295277835567688080745428140129734006387652134356007282795836968970574496931763985718843754645717475271386864959050978379453045599264579880097717803112239780148405183391121125613621949829739192955406093383894190607582834959116803928191139339389159071867613212444018350333368344793905472465908856479580053919054878930931527420337501523285348903594244839824192382139654816570034275694145345670324281286335140142445855457576999979806732554008397459309080225516736160335474025691503109057305180426428824993138689293451247888667514220429908250539420945709674811043951743235222750381508658751474872002869413460676845559051625151426926868156240312782390531501351860854698693098993198012892071171972693646860681331703178257508897290726212551982567406157153177976954297581771641163820988499275728401414107570238908083030898445767424234161378418136630791173910558881094857998985451016146027360654496193780702146890230634125059942479198677364220099970669535818225803069455005007054871272632772869271436770882672713310652337503701741823541714175244700687511742881868620812480820323557805364047988193384309875784493873346039720324671224271416073842123212831976239399354773140391507986283939482100610419905050900923707316743205296578618713076457343416796486449460240730132405309741923958951993362211956765393389967593111084263345756151432460923055793778270093243895290807467064379977750466333390668901246967897546733735857166193622149233357951094334749004674598059330785284873379710709790655066956692731029092206426554098852043313357260005241212084608656201004655270610530619587500934279887432857437121208015936722183944823587434166678140419484293104331784689083981063192147374675735463123196859451034628557211001658463331064576245557803898934717981886451871773863541861920358614808389999179268762726007459583550503600629267765973957516951590773066234082788172247237651261726675001114579760306254954265229420957091073607060747756930413982054540314641289321834036663453734048193814028821777369440328463114233830361750974155069430890778060266548060404085361250915971386114761846298093725933002474314316426707909326914030183665610240458075043280976968462066516312344295590224359567250598533364422168238497047102795646795723738779438776583191899620831519477047383187126609170955372261052223424326949791838707384620655895460682137988478057754392749689902726973262806983494810600593828272634220286529614164034696479423483553850404074340310444349835083224634997804943224025502621639906004772178929949228878068405249697548233863287307699271228421015563885655278206887561398980531918479404049001729867307757729615221380098889809245927507822544433213041881528277792026030124605436254404390251390258820358167871981613642119998422490208166836254796792482453615185429408374006146568853157863296809852165332580772219935249081240686841746337949982505557916180468686176547124462530610050006671841968613686864007201709129228624079730061291614077756807214403957220126824948594789628223791602739032028804322578864815064152478860062969917559841628411738146369909017090435644880600823557478606308627599766209565973372847999710970776094685995340467798124024240448552726483806294927014898027406898425261636068518851519535502246290488767953961601077477728503938743686183618871968890179425443777514966490615762736899241132282707621351752726829134254276551338204718613049338271179584020388721487119102429324138381353053193041161560814988694908530709248078966077649287185326662515459751724989927995778221437927175828413116316477292652516991702285169436242818544884723573138414052158109691842229454611272404426038395374499454306353730366592331919363067977509102052228098593159180953366169791086891445629323888469888805510958152660767119756095865634798385225128224574165637575585895246059547852785111054039843610690883876840303962895142015549350727600949039745356512718618770958771777772980110287132263695712451097297628534264302904174614942383496898802138599267917466293729455338262965672928040066768218716030011459441054567825672939809471148030077220527518436338337851077906510677979127181804463826688734260703175171660925186471128443958977742619744473461879740050933774631915003406568135125004284232521281094006556042839334661757505901392258283886437438131705377349304214440315324662803782057142005721652344703968826396825895703871200080874315231684207107437587051736828706935743711520146742712009579806589712436077412885655373110090429265864052091431577961611211444869235576509315962187970296247047537241889264906593287697476886421247706761493240563177678859725044861475156222091894322304550257518516294983934876682419673690248267237101414937698138978779526359328015910923704333524063422080217870559270472530093364729924873728819912482469748606504409916435164303431516856803404204843847247181094678915372354396085028327315241387870700573665345482732135286176247843616273160685683466965070216845962891733512518256591621841415319558367336306200632284581795433473815516333418853913936922391646239418656527716681525576877682927225265691363756329800616605470288100258545398885545973639059337128645733462576847426510891632533990594200239767491875334710762116838042470262576819304873201382509289248520890888675957799206582987921715221589732455337473199596671940528808924166275692148802793688471984797245143654924463264837937130986053865945008949301584742792333878954904139478223604924698901054155721635534739093928472726382134478285033194853522383189014345270993232964509887607052402179921511402834027475859765282782390664474335589315174885318877938595273654174971757955016566133678461791066681172053416979727280803963396529280489330087835850754135163461421140776916704803500826015709589590263810960914970185614200307265522861383590225181718052641137737086452967366256442815754753968212085862886848328025470864212973581955173526052791672214098834733558251182489528240719067519498083352276821093043627810563574355954402149132393268470797910380928124943938307668485978211726962784636689370947451572314309040541024883769075715859154565270203058162091885771033455180913016750397749641416427108088940751648933282698604893572889704361261907470868636691998811408888903650901389203117908940669251877151380375357026608858704748438876780492096233493598046900753385691745519484528282170608849507206501419864110212566529296886177321019455518076174449698241870743602633122551421274403896329263926146551421429109754430072619250193196170156693991045940377143625166076415870490453254355270117333610097818672213844425994788250534650956433644768886097933136583843488654179388873100921893061120733875828289946358229203230645922908944797502402093129752931781830697707421651781751403635121238275489840546458315063697525860510992330321174079421914612188847411166208638181824867259187214201080819536903838831282291955304028458133302352778074298457172788794139534265348903122090138965444785020264832187991690166895974014728212627839053698219461875597337264275378640600533115901679741209828931306266647228280814685812661666292115186154485946129919690591905797768285229834545527809098933497305917580471898332769800964104989248777131902161505490642709776376418699595802409255745461198342855555947039985238880669066523050063742858555647331994272957187654855245589527572193787108147999716036703892166341565172583927231895461628693867537661069014582718830971946660755476540909313411119482844143909380644081172568780322520710305501973031810883686627341341408572972532101961113225639105255313569062172777220532099671714221244908621378575199462639966655400440842128841098045101751654136346130226678858247284224783028698706584694041901662837942351847868806416751708731890692165188840718884476359329862981546037204477466951779727939875566946648853189183766204965401025018629236274191983576217888037197894353929384665648969457637082002320818256756215599495555330180040091478885289015368486487145930193189880859335763914591639550137841034807227918633507895762736466437981734549567916681491576461152492532411343319318656024974203816077522919744527309970372046867470025507603838193191669748486612805319884636852716705382788065141252937270335756511975821352199661799469548146931874145196425319684387848952775045629621511708421434608973795881056774450292939237643328024144801819318862803497209392969502454678557949601873071351596492926036836514218150544927963631659509968531127358218562057755672225508740955777979617096273807427315541140912215355437472881765576992330880485880861573987246804360054741302317280273363240864465308953835440606032511736668368533698861159886674342382990635904264678952416164645650931808098130882130239933492737931098809120779119816988542934407975572281681762329207865951838746025481293191067577131731074874375612284133021684180597407601536144728418392535794142295364093025609479007851080563010263018742641094546499612267655580501809905617774024312796035779620412456681438084216143180178711084075570073821989620734330797038641531271879992284592408073978454161262056018647493156107937436135067768495751468463542584401016804304401002766814006690320412254544382719156687608717697503690013870626832450196577087570739551203001801739074003484809129850334004620877411507703241210714634533221813936168177092431138599345909701920933374084761648677867218421482263880611562202972587060730922196106952827275192669283412693269156229935366830061817302908644647083327531013157089081835739152190783768414654058403440441487386131770553194931826461267499828279035379235694879858974470901111989389516633922322115570774601647135102571803499216834581687351745946241487274025125717511223968451519063510534619942900523560537868606995768751963757147914134209996031872289877317823856011573279445498654772277278703236491693082663145791971395098477297606252547795983164012189345692884131907538563079048485805162282122265635635904878126137061510903700253761528315586847471105860756607034519381360420043269822549776470834162049109815413936774639678391358611194961714896962240121906987785494772511422377505526752754444231264995623136543610427354280863671878566243773625632878226410291556820161291235391934538637621827763332585676880775870951796776542855039036157700259428512046119110670270183599358602881217621965572074466157050132647720010466345261553218585432998975684752653339263079845627954740569005408731202845604647095243623691616676772547113140710506468009706767848992835273169934817144081253158482736578206267236006996315193540453463746188644714123723546062075583978326556086777787186918069968548142990633720572055075209234994297047264200528188564533309844663757452419103868187068243820751913534753954819854672966307429507599445676697088385946515752543413098287432648108205999681578331860536208986669728445160903721497657746015677281433645173648636654807092694869411348574635563092390965027515415021881859052994740657852758979668072349423051735441006081360433471819909052330449795031356691058972851854009464464343556177624140528588798951824311098425977810276717903470681814323237593536538617820311580882257262351027407201919348088650980766224186974705375152123908935931256883377203662268591271936222628545913549096460806574321512930636559579580748939244386661475467735271724001632955625267211028110190465488336852503707145651681039309079486186343209067147781974470578468167222257528368444217539222496025495714110690149754845102709735041661457926388717820163291143339985506832321545677065281504692344145173819346319086898566617979022966357889348667894716754244324340279405811311584929645193537007903140421062715976060511169063425965283560346993989479796438578163602465647771702609309543517667482048122724820859680590833625142469135974467330155619696904040334259634865189400751860906761482027582278824384253429118626499531136985155397255017071059083815916122054776767616585681426222284043767438136825943163162502536320307326885628229264454328850002932758784309653244075668795195928646768850799454247887318347944822000582535942348698371086173998262970772315238302675121664065217032307862193508578920414081073863438582299494787555913092870686349455629796147311861021846190404774814384987019364091344919545702937727468506725914702147410112666755396938446391210918635871264283415149829714232929788746555065485403952843996093233529988273351506925687469496699934301057674536184214239706100696560634237893339611162257878519306393244702792269042709169480612167970859053707993496188100863700844001046401329847537219441738427944397934931438875466645590478246846756284719597118185623077002710430031766334071516531730670237807644981411058745719407989602526664766082960585604320540602294765244414378150503817116461291418024372529000581747630700500229427483934206860720665620830354441404267718605052112260284532959942001350171886099727817322711051916038798395507093442704935700513934929370044599025326905290808274801402246625312799953248663834230984964774009763214107561978389051534553864500048576147234448460237821010949840376123454619471756761886827835431129196495721827056656409796749860616872123541383644747708154259578101971104427057013107317644773167618783221568493982675012442353216287887063448556764720663445705023278402321610136778667562331671431821478685755456752192067121378084604925734163177420378446261934263770160926706004823689568691133935389085506680068382211409532209955742436389666296658688098718361875240698041672298972688586164046218102238617749079579313360586819335930525476741732395286306857159754993954934459730436714135479123285905912384876048673496411994383736360872566524529129880990149337881642738581346626632824619654138698511164481538940693233282296853374981382829158787082904169487390804668186339164337340637019435460217154855154125068526874697769117709824543818541056970348355058751228799047700357416808291559438733489762433573237685655792985550969700231399825945989863442430197783479661652914993009735423825240973025293697794188622922350622741853785957770581714385240633870942302984470720898387407182211348656061728510858171169235386474773442775777657342757254165077903646052098777539516403911560173544457605718649841904727638625026119505470255112086367137389844976426092253684309736130313887096287666327557279536464845498962499800477002999646471014276496742665600187121079163406688165166800369628496544036611327990359234088939921485368930548129160759399936792441620205795370096622578325566795985783847112116191855990246900620725681260970499835157456542734139371283727185116506042018176183270164704988031139888383720394839009988530483313060512621373662262053606839608947028013645463909665225452094843678618549036189063176448319596813791285011440161415271674141764692222305157114500367084243801617166529603573805378580698035334813372632872330264439894355920653619971245935279471122257237443091865534501666449780287664112145453277279798944720372389227047412225882381880667430943161652527907966633364256619113194179662185367668956718210731012059869518770603798089303813189410355492300094567298889182055496873390126843959470613170080341104256060497606119267324006927528240498707925961127144154928058555479069379880297565268072036871098181412649341472040382810476299090127509526555021883593932185182906002286945607256748995826969203058405127620793318687537240394762497489128151289693125941527386144871692545416091468267573717988301458905982136229504966541673660190669828930266879132120792463095135363969138894976206020182864027119024931695793714288003129833582568969868534394059324077895815078996212113223546149212920227102555540136226832887909950656340288496010335572834945944174216071158343242110436826907837307498007869030285118909378636361243442136647747385930649752206280046408745605378153311273097265539647951615726011533813737895295991241044246864690368289082623680111264276197578020176129659683245981483148573600100548197299705166984866277257017558310269607032544332890534583755138223110060953365667969059365246937014070725332990719581127156133605082659859415147920347131612487890790735170006396549639249440256374893572957420075717937834094644826402151541215912784321416714448039226187264435389813874200243586729879119552921307346994033255190309159824323952675730155786647533278637654772203771454029264002593175772107089872200857114455166618333921144761611224378746035470201354352681965791266917548394472074648670575589018931861544605876345410203465831643020647097467500604622191174672462439192421459053934767051693412143646847224327965181751956222704856111579487142631124184709501146306592951576935031006312588513871541060106930234379487584716591706318402660990980526851682168555639668840546594877571068130369609184935532318694143673115040223427237703895268359948265325268348136312373494490592636253282598432452397706533116110236867902992853682369939097600628268481804413143276689283516621592326320491607730873092941043671314829728499267568379000668539190087153845550207451558468474813382981185223084141357416678025967418438209480996200787386045410582111451301383170736873144961745994044612805741452135473897831082688304316246538675571913995420443559219514613531275612639505439784501427043992423020105905872385536824431915456632939193991813587647951960946623103688423146989940138898664411567219540678247498724742769382639054557574227540086591923025439534350505573744351652658236698790866800317998662536885790796128753579003702003012553091778632751782694605555836764148905482273069551492080469413658230340898126469545976404743720374682229071238270179683814620265477830201434446825966374175730426731486265785897695305220153462752798305332768070293993883656117715458296747209014062142937430650735058979223038333666560268572863220334782372768266986888250745395746642250452447524426783698391943388719049953859170148817757393414561227945926531179909622324580135417019398890533506585744654007156319478648001065742960530744460674979318606386689471430048460559544734507637633931342733319629060538628722904972456332932414637677941601881197080987899501566183836350335208348120707826180217480249450388550574120647648368550591794849029036363453299030664181114501157076704764734608903397460820570400577934511355616910420483854149812464630088550680925104406856355286345173900606624812489319756394222338444926864283463940902653023629354917520494463620103164524041340582591817333640466949133682776542721831782493857315326206571253866061034167858976630020636337925696509750483708418816425261266101469681577547208124982968195871308212492082535725770626558394593015019619472478724139977535321449621902848163629677714402223584198513838972490651719207037127436300754077280548901392579750025743913837224566612265129571012110910619192839060886282166887832233599925772442262257004612408814499054791376690443482472189435508947956213776937416600103799965186893149415376123272560589280748402175907235121129155901345516994621305596004623708603223799934031192267943923962531359429871389068081624278214345408063401500605607380824410714832129081103906142220821383606255450603010511516304551536589484485664542855766825992371465026298472505951911808102267123405921026539124678642231955589142996746687901597707305593665976952502751384502321796082491996981017959877138839092630679148684684273096977516987265087670876731935441403563389102254222067333498550595595736513597147270205232549163853272238631030469848189683149922906393101915602108579381916560046893447037118758970267142606164124886827038590000936430707892072430337522032476981733547030377205551998390341399656800445473799962054765997935847573099825744386824954194286771138853121041657118625257548019320905601422093462858636573638833163251887006197231568894621703537402297251174445254989623209067157011190917962031548959919289951030200288909767866218406665214052301147375066586749618032842992475935360540152481050582413824429419817828737765797048245396482009499050007031227330852903184319527374153698357403790705921212995790827195078766924388519798691411770985571494050587124545331899281730845866209254498449393827479933128210753275765416935482106481943544220093788560673697612960494945441935433532431609499201811039472704401870589959604758067066556890731101717803821441196886536381382417448648926334986370519373548290137288270443069848166190520660009160097923411990651571906058581162520992137308523896499710847579619067095520124498506836671971096862051889580049771361806606510466720746471391557518701697769101089294870135446030243312289744681192804973541519520270332435276785560340245646544773399836161223021936995357623265625214663930693287216448385772365739152474041666602622085186916689562224871056829480956290677534057724473696741479954992130359911781112625374768007696846865184216223761203344459010463652342113825066493163504973788238695327123755963166390805492392924104535270585679280103059211634061420070080898736569540799771324862339866749350076693987177595662803651476548644892036203830298025392050339153532627029774264534172827533957319274192816280372393032594320296804313690653209538399569561901604899971886373640247023203823547290438838062215388050069321861609069766144701950345054803894068989664222018940937740722832290991375963283357756301448401151850357373496710148273750019048410074826429566838026954828984368456614859125426952872149886354004012331231267411637957011965699331085449459113761191520620492090569984182275798511939119859615258165432215008317918350711481525976073413102639667245267175160472323652080296740172705279125033708107964854761527816360569740688484668273908913653252443763555978493172805241371026966757650965231680457668941590811466392909536304447243768267931160961570924416468375085466517091017564077013549477263763553101261956082073945596128629532360872489379062063110739229913600737871396136438085947593572652624517258371446441931794963018154055212571319639576808264687519505027981552981994645263762571246153285439231708672512269314145302394528048119623152711888865536330089993702062019883880787243568453607536575851180567918985807585387875593116865530671655091059351511194290350729960584350979036266205776274894266645353024688583763596771906618351011824781119136946404949176893383071783777644558377312315103278299231991095374582469803271321351060749742442663674528522957966447035963276748119625792547973225498451505793737853974492397571791382122274799894657585948870780222062785802115357965217576805180373109368947359695313771702350476550632197615700998424548967927423511659222008281060048384602099407983497955551878392508288198795759766625751371992066990715587858662888907629480541548298910478296040780581961604078693689880043778325128297168527756202569655360981026244411000534613256277364522646003579919340061818929015625788384180670044489942817142262407333735269853872316671921599794073270336314911844542488971251959434391064068668661860133249563927402209821489981408166601373633685799259995712033723637965505628993227301710703583851157776490303032456026884117325188983117857749534795831382074914437544771841405642182944878672351613718111119654536694313173661338950424044988788114525256558767677187492843082999167107082268811362292046154340238474257881001898815544783646406314339046250672291783969885127627394366410794585878110670758895933548955312861831330515286635666358297794868164847209513418543135551653636082444479551039034191229037741552233864486135755824199392101863529264366854963188335531179832008930116832466876227889041313016076622699634651892907132531109231212216221901165799562429788870942394248461381409851481912410250909796474344813640263521653904098219255668039181131540102351676578733101911259696352640311371364524943883207771532461743580705117083599513291237535355653423520607399942573249382513731909323813826187960117007585078843572008788901438039710611492233059107118445730155203432509256234057368469118829005674220342707089935912000965597593985646339826264991682242600339965147922190512394830408419719817946456556300520936516065157557453932034964891798290524076261885328786900579645618130747534962468661836089984915206282218847619036915947400559660270781978609480778839302234695126925123586741051582937906792183249016017371454327348176599019163516508111084090152741459298764919216388806574258565445038690835671956700635906848924060220782243034335882821443768192028433348140124992835270608860803711266485287980585201922423666133322412655598862558250302933778691245878344798529754120076236185506507061252193011203568997161550223860285945356211498124891309865854404558172009577000389234637526610146448151793229690567080726283561454762195294496671694026151126344571968116499736770942330764669629350105571781186343217550317576416455552459202077711995014452508091328671009308125866550717414513039947755549868225051187314731203581789277534642262641066570442655803900358306209208266505189143883471020508632751988692435065569050423356867277644191057459806986501699175125837163231691320270716281352505055794772936700940057782014476004874323476257740611748845525927077988847151596211260631124835132807202027365037194252818048376541267664763854055376417069829309781327233734622580634690165338394867735137313388155580535300146924884438977357646505984635645642508030737784494913454478613281563939709014209121897318423367454916893631969177615960163118598476255885594232897737030337565303464447226772231678810887809744073091780803380927317014601437917570537630689530959394251541495919405041276448952879232979320771055368420739661404353619658283967200733611757892427350133815743154683445363544298980989775204924413687998771242739010761883812656257722100161721126154173672151749620971135253606594565945024233140364832018651668729347591432568778025305672910457547281370436476213976543275663378798676351385669491881674158737698058640205831589754807810527994343492158925617846259274779292376176606081959008662677071671432021684475838857135244737609503578833878873428477505352939773358308871893295692825074975039132758163994835364451702575992315119656796434444804669316287252405361239861253790744177312632333871400135467281328861906177971351595612040739552966120488541284290388952240309154337591478053455711593971728057088077168261618744650353377957074989200866475722999670837753215565038108460467348990194416685116984064219184485192821202322089268465108276221787444268233402502262940990263303183816412289679264600147978131585334176257062489535454952089652555035788556587967108671499619572245434508610531858753124919619182922391408151976872003426361743905243134513562208619507834977086698472420623476420018025266260755796596737309088962724528921480866740450775446396615213113403186494162626562681875254539134281275306901550107706860862413184350490326636452453230470180303923261741293228400195502195821673369108236149233604887355544105605476402631811225812242142841237445026524999863278975169974854291898784970831631736018233832830149360767771546604407183902303461543303924035872698614464452570863357429028946944905292792907060208013457524128665997138498731963280598934691564153018339398301305496793422727475952374540995262527934026232193158192195539226947647332799101950136863849380742229351503718985897322028980038840470122765812341711761470832773387407881538041541762455181175541280629235177837856843400293699833116392610330219990036487525870668882504950507073650805248265478111115730033000904593436066134481796820408090034414441944740475415145800076074426258020453601560802592437659012801104960538381345455305251205199815084751335327972327290025540005453922650999787175028529675975519693904772542121086710618792419376117408526421775069242470635763685465916680774556660036297101016852747710964914817171903036599331678590137682582695019583636748887701388932613554252040780892489374539315390980124537888330396115600366871304699507643999063252517469821351522779244263992926273306625010949055916717165131910209679877345620023685258055360728719799621310753807898699157411039773716623217763997353241155491783838353991234634214018380462843755074054834285738461574481381783967202023492850483555379473988215842681619889871720579487534987773550430814450363770489260214786427300549252000494738567536195065232203303057376004711505607873948256995917041128454143177897844354070308405446229073023333748720517082947370145050275323376059088990439852798149538216714837646452244714673471418365778292907276332978748281734289518478079703886937704545591543744260075859910624246754277515131321743734433980409522947873304859520033953723199819227354383955826125769107358743923044268530224741827790209300704976751854817498848072063714185617037142551866810891689663363949250224551095354671876601218112594182257621946444370849958132349152884430432866398468126154775313487176537591684389485999742416055393030667979788723022634423961646861808519217693693066536583295049667845595051678686390676920693316563056960631824663988429693879602747828892525310674683938388846912969284630283275980305045618016174976102629948695762313570793862948816816798969337901833330011925062856951485544492829296457446636201932906344324265741548889455810113430309052154323944048642437023867536956578738962327087183976889470047925173961335956992190719254953987421282901820616102241945514426327371112552671609201603130948395792578048719087128948795857658858541240592427101548376581046207568971179409347351622395092201559657306991089493427302906382465192723986974930393245040645568574911315159909915980465762503516764810359433957032606250337772315185915870435739422201387156317105270521993188563559579938952629448066770923394704390801649371196476819369492460224967560881585205334395470985229119740705756602417438935195623605499308343397671666657468363125846845743038938263881030480870444609703892293085123151800904459612500161472910391906988735290210075321833471667941017603516543609844434699684449826802103626124556465359361460675338404435115494032845603588065997027964622856937169463477537570874788689512485911917894634786793268119584045429960624617248623287417577943696303451044489883466271120782014870808691325995979705198348759736864789353498369532042994241769644039749902182188674871011907480487146027488520026708956957257208890139688678219876555322859023350842740692329221964645312823171196157063052529592281973770174135567699456483030814014149907195145694015238058803610222437987882427743406074556973348171503202306060925016697283281757256186521527417939014647248379550848529090100996121213710684685281897784858672577775382239310865322585318878032573152483107535479416321403767654048152170672062047133942303827936774965067566743292262350074692293131049128206977272969792072490971866901300988242780986597085463354635588849497032152920304965662988564889839514928901488483643572785898931319509161533308164401290328317696893382831014435072246869341048466316741597486949028274620827741029037495765506752200872236435810879826811567801080591498128129755368008902582763778468348801838404966981777713201485211359937444162046260917463791254600293702136617696532432424325357074845743055043342970856753969876314679571702011737677819335094653281469118944213328677901030213114605701093584076374016372169440595694215096099719420296565065632835131095977882705183824551377731108813631100609257491056596930948414623926731525026049840331608119192650510230956695871768067698593591005266417672225072908793670721747690956823947250783909815242068918746188145052006537321871647551266789390275043954221648540347429537687237146222308364418696604391639815078694611217356270857752639347631885307616288600973336442761501398517239172961586270409597118269471853859648079176731530634261941609081432940275796981592352954734913039991947243209172545527865310688038679721907381335172442845094610042846582497006406629056382732012030413350777137003555985969809847315651077980254892581547633328048429843105734534870297818543192603529074115697099739455830133597468352051679118170471695799769548070405572018542183373903137750788122772076211549210235920324081078734070778770847941838697312990563115857966655150708784894944163945428068396456822967713238126353101684425192699121358645367619882702959058591237247850100265643564205733875282531888938654878882648667439404271871418668408207500651826094178635617317517487273321145893984573927203982519927863996828163114019605045257269805071465108743967388068613107060130608475439162039257645639965984311645896850430013036065763785440740069148222970382586314524180493536404343397555387819501179361115780919406167860251641627447032205545111579497205893356576069750769059309419511478498844809993437228634092631960696023883400490129052026801508179413952457105789780151076348631592058064043229275142650251007093433620452422357430377239293460289633014485262914040512849245101101145977089992300446059499129730827782038533457579737668961472492539630552079927449544924750547334964797100187150288331453502240393302956649492761755902945455140046931607708290008899097394325534555419248536478961962935864792610773693228220322844281987754554096331735437871664234804423181766012907488731634939669930984864179357947284860947407497887158114238732413882690391716449215590134665277958286729066549636605402643977489053319210460137256426507516681833886746983813879242891669317752720429660160720774125185188070837705428448515704739403635300412460470804808008066179546457441381692470752034147478168957924113694791084915748179142480026483597227901645266032362051553739574989610401938126086267959282196184923237061815687332685731938052973566282043242631102510557103812540546413182761712068315511459396742375916006118413690687852678081695249825533298263208931004972941582331651530445270500696938054851597985270386477337951172634236319695658615340867917619125281162676326062232726261563552503738176801739037947007464659922991514064308049074410245965107476991819390009999164967639183128424636450621088498898922814529746915797574498691846703415736573413552666643456448126206622996272254975567450729195179735118215055636206983174239689881532842662913327949138488294167016681513668557813026680674705968178869997898418650096727201829403814577198370308722263680639561201395902201204630065491428318423825543089636055593893347978721098873852630583508368798767311571928918617237027869941271179930311662821253744353884783785627864129369221548434739199886324308082620645934041704954647390828228609311715366344738815016700311779738637530151534055419908733016166974445236059219639724685544594582416997957103094393852555399436472696838245388155718842961500753827936915560935262839404873096061004993075890248013314643104296022139057475598812224655573335037825189096922787889351289439439874399392986457566189328364202763527129323071125222887945418142390815871333350630822786713140857101122817400294601320078412184233322554164055646806843534772606624498499729493108203848565219368653329460981779264862579102937054357823505335763850900006630000857458007535273144623233655744032423726311843717605168530761569361518043120988821712387563576848883973199567885454529876390814511223104268643235381529391069050942663528944105774016517287349998183840013989387329514689353482157326252390218311477720791016309913939983969747880132149657213103857705108316912955448353569529402478424594846328366204162938771755436609127276991851123284278408833339708695046269018893984834590032573939279367373554660840519157859723225998451601706361401147486388517625472524930446466386072964590128785342841294673151350613781079769323771683173293591594226917228886727447714630026124968172456509018778574776332143890853018650601700717983523260583155454933073040136274808513955396127662003891207141649935401682539881914458451757398335667708959730824765437047017826418191295251725321123096969135838298040100774921635159713555855068512474932136642500861272490286041262005315697819226203227361594571929012158932731457556984242634617209653025088939112356219290103173467300079847735515447554179492122657311906405213029508217227684854421188066747850984877063397705482859011650337216633324486004751360056242537870228678172901724108136646593121025814348776745115169293266159702408163960026926362242964306160107682691224684068047455215677595702726874894540727476453160552486930910314267924927267098816973180962012418613791251358184255899088574657231553376526163490972627944964903519344480529714068313844960280857951872537790367070774641193816301754896740575236807687532138469981282257493606919505955995220955446349359787579611788477529658239598131818986935447594349409704175623963950518744490270986207210637599885258058082675787819397991522382984706310250857509276788143738513945562791560245541282361270118109852941564554649978765656294236983943587165921271745758323785763068163141701181958112314826665226132903483966141393998706430626011077959912673540211127970585561822851578151829245085904161222089205019320007603588007761686714923935514724773373805822984834894092964896599616712301748642913954532360769165012297528701573180998805501176108322721421245149993961541112651875012626788727755945042800075790247136086805398363191531322798813096144059628332159783375946727476952891437683686182969666908496568162913055132188906009709364926553538380844827731470863537729557939796061498588231003454915383087332907862659800132585473004548458672214794967480194006797833046062203428329263800383522983778934209117760224852207316506961871618844348902692655709300233782658087009989056320567304420992069783090772560257163570641184395307831468933062999351137847539628118827994075876140009869335977887472798293307358545514295817499495694417594997652996563139290960129460459028168583407014833091736818383467976333724831563519735170184087599514070051316007149948189414340286327791815946463795655245002964518469782243384010394046662334461703283779688960879528684460563422470817254392522492979112846350006685716774885298888803019639851129678205414009186164051290990659963065734656795999391100271210585947084406531181838309327843275966494352388122677257970797530211362211090517979178422624408545300248388076093359798650665126805977440634981126197413272521330139626875572889558126880607029850882748122279286400005479868879458782928185276007014322825289011489957226617022949138572509216964339588195981175357705957989312972427071717965239035744074411305251238886690609886421014775958051861712356393408689909985233609689694108255093040961249537364743205414059628403064775953792347065221737696122609738464178756479939335856326271239183224110547915911627423405269482568554904960900826276864792236730035666738881039549715540131746258244251030779731027020076062291143614569494243809911605899659173620165587251634510416936876516746811797030746333385237856359440883943040485427165566820388565258810714079055548112435886534196621542174601764875032288047903679864363192899578199109646196324268640536195668954871079796947033055119671256140469541651913714543921528416496154252449772832087910233588780732624783383131188155802379585213462594806332597728389819079897752862158603984484407935150067069543612591999638413672840907776528308869723092783037319210999298941924934217738069982640327672811442766169830198198543937338801320858995237302723210805570369265363207875662895005102743613157790254571601052250989436025716093504279894820743699356918993322469986558454928449430041091108559133376991450144921028804017473755224419011358554020969347065029629260068970713424959711630516793435387407072005790223018410033583553599323730367817648834360699248951709806235400292676099380890458759848124096390214373421508112277801669645234458887563366536534336333400649866077709904285787953796342652591412551269000969011294020559696677470605676130457829277258102496034447277185947716778036729619460493808958403006299090087689714867226325610629851475912997852242787632034427917952392296428860995630884176017809920754252437515796163491772099337500649187125989232025446773081280815996508054531996447544874017378535712553037362262281476798561522462768172999161790316833591337866355605963439038758472532404723138307934260547773618677109033425622499322501419912977184874294163151627431702112588816796758631529830427821109905224155672183637633041719570307654213522206692288666113027029731543043543873363720563706015974253496297144186582923753213394925157991748041482181308750367350666963294585820841735894309599899812384768995546942321772421368665872106832957305768871463614009066113627357641375527592847589833899150752741363561398214473857979533228011003628073569779467808422190612836382779231212946715037203693711285034406486766235402472806872951572052217942766675821067816365835730573507837027839262305893221979088749267204945983018844935227083317175619445906413802918307908244650448112497928067802410023276071079941859134423997191264066576411374574474201539366242870154841203367170541136821844670032879525666672918257506231311013574368636955958981279838318794816679064885988053808155256839368754178856165330334129829356326101633816261366249655907138173201435867752073746029909611606009485906561747135542690569879091097704399391473715503224842381770225293988438424884347235549197092368199687104383534721706490693699028787362598708615721459185306493982178275473492870099193963241366401631766275798334720529628705071921885838687179854485548933150488185003465022189248255247743063473493894810764778863060741837033943420576565960076966107088128033571934130829608601917464985104480540726786294298116600972626669658449895316713553467707075861469271300124287810230384040094110443817592948480639999544865247153360485686969620000187804947684633798583340165217762060977020096954567824178013202599934915045313198867865852017382611189674251278584776495622118738381146844080594282061337445364667585875357724242380662268499496817702826463399810433305875837209914463384351356211628730438940481493051948550979357814994299007078882321045819836613194109238741581603973371718920084754782139584977602895785327298853829210297837709554543577890747935322264014879936052248321881636917923460178020004908871865611694426566846584587047406979940133435601938864679949471695571785119290721596703457470698928545541378361468587093449900024831836525357190650795164953682878776685009275930758578665071629913482937666239866629388598289394130831858894945620147070009173984270799209081395738835167269646237501131381294651842143627977797196436577675645856483794889706014127335249399411050388776973174079316727282822286103988008868172054438278350047796333089851501521289164246604644886810053391283693807411598384079197473466015081280844003470764694000149150948850214760525440126502205061932860706396799402328550221685382612904339296699879059536707248647126177260221983894059206998544623620374484550673905075785741074645796214556107077768471911487809486480885639870587082199821119309704435315626821489765017325470783969603938322635193611808076376259250198750403220703983166653458851234498836480768365680495470319998167473385875384883461331840698007161477657272073651989231216143916115534313973439790635285812987582456071518507324695058227498730057129035924494832578383772596332081721346322621810771415240906677487156231372676127344601040119940558133808650108969343961508247251545589439794763967076246842267360491038696312516201762270892168896989368676119772419900231332455181481550461395240454455878278228556209562323722807827973562976809510223342387678730843325100395581124441806326974573973581595178392842684696044883894713213334730976521554248860644152896573396500093649734698626651995451323098066515588110833287359034683152655535758698714631486252703592949489959447656582731850702205585941336461620202979259130236314416119976138305073748632560067189188075699598318379983049517916018732108251453074696072192482436309415460418970215964765359693113293792570214820491541033287350427395135938685503153310424552863232572743187498093997655921191157346092198005057961181769284969149980770058154969446909030067258917298749654637789799490559815027071539780940572698759610078131328031147519415410249408670223034185525990455024722177195540440396988205898451827257209084467263776467982197098441183806028352733569792456913870842228362224323240785030642477578407278122407040259181988303301615284974237802136375577456084533680995613581254520303509018411632748682266473472338878225091809311543319436325921129728390583099685278973736205497925753394757488028020797401527177043509154231088427449560478952325874274755369123190733715298752498996419755494991418364594296116270817088823142229723902159928793069809780067854223224383245934546827351430567253600547900184850807537539796137344532306954114816267833687676780090690554487931145259815701364131234394409532274850472930690965976507242102608263953098362320479585056243441220431457865082415578082846837473066788222107875883209750940986322293050872171925303197137788577738137312351024841615318087148781493290045123386975665391286288782461407141874939481039288915912357066029969675115237999858932587100631152585696685801906507178078430596939534056514943499644103033620837236492488433523898336608198004057167262355489366615655853375705366822576971630976663669109245850384012232853997540753190954784273000845154970589651434044685577658159053855160707672231616286908495211141419763976949819994131559553583517266063324907876530282888374279404080725436212875575367739424327973901335057438067907446834434431051060955239500489657118271311405606644842736209875360790915448233979094427492189927878951044793186790264447268586768737165532770471498453721971127844704287110636818139342185268547554612255664203485249569525476907817754295168560854981029782111192350740375609565678913907927862985314073302486871952368634225167879508924303221404063246659406155508332337931333301950703260237090569299028055612192078684099976413761704570428534417527186216741040506018203818373776034656997984551862702839412170640729998603574307655366901444518359713610044322786462607090916081656940238734731809882124666682287709651027435656280075219201142064382201210588580476707820707629224570904380529626721174747203074520222323862256041843805180292500120441708959356017298939867992253960211172205735257043166002418415604219722070620910654799944281436041661344924410951264708640357781639531401931360519450196646539849445802250719623296755693606414624944519442245519691562003047749435973268970504939422811934660688237897043696810337992241504626817538162890430236438325523374311035670709209569626196799369063034826264839480557689046771132217129936229428317431939489789710782240894496567772733887610219584530366250896132795148347920127263520881295213637841228670134955033549743536743982584055273119521958808173782709124081108330206085357562099019377768877187621952352911102139901192863864512491345520606651476616367088187559790631650588077776015819340579523885144988415508471805180682623557528154020674234682052259339706022329366625280660056340790561807056316890441058365045881241697912873628665028978264228188855193478797193949377175452845510534629409696507051424391628352142898332248743283322989706334345629258641675200904524050378201727020149046276322745513286079973823200157511629257191836367699818312820002553676618391377315528400102730967242190224963993848627319184677442125760424011748635352978773220694102766397962824823606424661011869840435446558926808247541546799941855217385159934911385367111655933104868778066828641186693388932214979059770939602740870719948201837028562203541717060618397555239563934537605114131817367072464840462209610707374356442260623132507167857346988835270030626010602948660758294475475801634237780639902799601596091868444707669404954740102185348085095353737414592753495520134450102824300675668929651268265378135871469402117394001707894147769007658777699345348020726799724970956419591935836667288096534885294920294243051752098529792838968993443776752945443138361305130087636849770477080610570137394696748181584215121998929492706626117913974804293873276053491682651966524824127751497886922720910206181752548499265728842010630691606220666019564515196412826085343184625991024510271874479459281668863382409063063196928431065566532663476783328824073909630613650680891400324847480301257328014825084795287281548124278517279573018929586586000670742379425522923440085135009571686113648301196406753849751703505482243455259063753439642294341798802984136903566440766709127114711462464854279408898420472117696843924166765779887467778948736906915839544829048428655506035646076175128575867450060227807601560960812280096708209132806366732004204584169567079787050599238859874580385665822826196038642511947667041732247343575998926838900047642970488869858135579795781652144167681736844621647164920982638562196067628663611001683070786020687922007607649731614067652173349938353853154207095639601110444726957277581646852609680340439134319887970795987943826623650126798446251868357201460386301815202565295046054370998417448534159322561343931596036393777263157405791767767197863701939458119864897063554653815655776816104975919204184852137506925215498771955176593153690010734561802181972948575829619385422188582791898590568894604037958482023186829838577933253511187275950455851077230522147498973437725318456056943216797420721607563750850806987094231450370324196248232428768719888394791854828482588924806266054681053897716417139857760441563363544006118642603780255931729722247455356811496452764235666335183150903815227722127130846961425908699706554509612576135734038189893686014098013311472106946579633764087155349958441075733277761439785104209102043829949538064708550136089753581917061795170543295259002390913130307963692984663482589724837036141678929980422945673498494063377574121274000853157396387314153186281791812853577355899980981090070192360144643218254098819121807458921999973306104252050969701099228535210023781176333916818783312017459495360952746330187941547899226199759727704211521007676606208135701957268009438030554214408477312017598271614383437965813579849526604662170010208130657778586742034244982952980217508388302691602701948682340014697454957842647449024373828566137659387431688126998348497878195207271453201379696765818526144939061942604423458876554379086750929182550890699460915780937780514264741890078130502545913813361349571796601193450868801170233904947703635222442750467602080206365895452606681223514637474641652727431170335878641580168064632015185680121410442827212970204105879447017047000570390469751522601471311131360627376420048378572562322388093846528048770704501984230221373823087122096049396411460491974774527710317187361474953634808088854802980170693684824145598298700804462446538481735387948680771106842960018428154148226359476356732977498722531543970718862897344173873013285124422490204365974558783609920324010433251865904983938680462945843651612842697718329070594423444706113087075570461568206196060382855398201134363773836712630606702507646813548290286096511359719015732007138640471366414251423407686221073725629700755407455428218187250045934037225197722567513137621880079907550237351172212928948719901597566236936863289613755639165585815678529240461547261343692043657589820354367291830740698317868336774842216793727432334269275675322373130675284411204972174741187164609239592089705842422923748214881637003770303182142120817183430826602226081004830683508950040608903883166817570167643786463165401702699316639611752524367390792698475954128225443858161998650075708634298082799993258430582795276071351193705659770569714241455104827031115174912244808101556728927825232213924391220980475849292680749664820379211307268179293124977052342641560394066802908089171480812239152341945558662049641912633298331397509622350549950051382798038399924367026232053583846371453666644603269640251669559030096977931547375822659998677991116795187007128475402308245667083698142761321277499220062522913414276298913115939535928650351316084055088767935450462661322842898476924760749708838826272052431426428154293768717554881234041809576217217338380452486255912561579268156177726079099157629565031340175175870495007108188456202078768848753586794314236293297085086329133563374165990456324954564225294735674020363904434715203831825681249375524327467416098187800821194550134362183829970054237163837226431456153735200166009273793641328379384688696260135452579011900204803929443464819217768891899233806689521968289830711571297081895624054674602133385021493875945580411590445621250268922118562592898379596475085234968917681906077743054777148465314842691690163582250565757471347853335884350968990407547291162805289363836316536804171563777996755209122727978552690489913276129119453768165355225714998856081509407500250538331652317531635469480850216095822527151301760458489625751387032388768147308558600633079008107533065744978104477592872914451824081940322549575335641049936550712299295130890485280215921615920341031057392346756161116210501208511343752084085754592456546187551248051926632574013207561759607457158031587956853300569929373297938333702682610740092628390435162879069957603001123694960481208753528893947304783472236536522146511678051521231033809275799635353550167652723308681006291531291543724468105286712946358209910427287079040277613000663497742143598475603826733364974896683053834934406142602809447222133185009005848032736248600016314265999846197204972024588966471720015337419303939662327269506641127198247788814570910893200459636543199410115065555863320924973217364046005757254174130076807260478314801893964222615384141886176034943461047310321924407764873795764594083028475792038546299838684439581174875818593370039808558928238616207871149314115219517996199034457071203833984476889821076040775575314238256863368870425329257073303681418052579003493016202335232357626473107331706706206009645661823465958327627303156665808671354028245215707689744549211584134013037280381580721562853113816406872925081284216914511481222008573442545560480920201665658528030925721828787384127735230528378311386548773359743388270228318160353637334489541400565526434762656738520534470525624725665384317663344172369707522015258308213835994610362672757734297545385370654512694254085651437700897036305315705144215952437469502171092133295164610749778750853335989671044845662790570728759957948327962404787989863021408664077179152704746746140366807790968444429114961356846607329264408276123036733418728546438367731274781783335038408495785058434115568807235823119687347867873561335671104999567502281870782291098895749141626926637608310248975063386587879691564966117312767600644764499687453711700952035118136171304929113058655986384894153680786860833613270120095866247284471273035017371446888937218294468210702290590634393102881734631053052472948181314988697691356622195816526227650142162589162323572891666767943598715025719908986088816993514267151862003881802752520466219805762390642870458728891155649252022213320364273557554562579758488512397360773441787185127718967582690449844112664151235052583027486957244141668866036423132266059600076371241344633641251030813962496548000990125956133530001550596020516626532594361625897670921875270333228258621237386718703623085948357559479324675556599781676220722094040010769438887849944784151378363048119277839475903899081377250672138795570708329797341649363479798627144884820460651581768615494756396518440805006851161253506182786700896211587588787235799055707283812281018455404006079852632935690540472453881107865024572760543650390984029865868896965211772485259239012447648379077174203964610898235444815426140591234941211252538856500934292795644588574382475326762997395835015869397899112326389173514292492842511923840566911958940576924693990597905192565339298275354478816698322405954892879215804870442189885293168752947545959806317291704465267937205310454753407118900694250373949160996624671317438968097983028012604965667684307382569769654034797041558822689746526464666784419359878702409512331861742682445875517669013765177279454066901690536955187722549920926000450759641359499522115674880381536231879675642254029080777628111623698543184131164679957330470959669960541708683534285764156927416930881451527063311634743851710678378085971654127770792769438239457675331571167899958287622490021558594937189479332582498247301442621387212129424104422091313464931050076800954348743112006476221015444734147600064107815786205776774187037739387368858862626573926150940844071999577359492808220582312638432579956653987612810010516473771589278212709895022640667192979332666984175145146832605633817335837186847950525222301139223751350209608615550529258427362958381438421429890453047803634111587381393816443248937034546915916227061157268998929000828681715497422822695406218192812537639795281862958848487163051346508337113126049066463119468611162729596856183192784108507058750732092610406137312148073327828550357648099568019460507392144154831990251993418651081077350473230024629503394293895705104707764296943929495181069094093676244378875275718870754116273235472575436144054650546981269798916316743363131572942789360525902351534295622363641030279600673017823638824085196373815526038437145060382224485462235528959159207876430719409876272752472761831013643317243205014239338100676773666261470267647997012569248750407310903197247747747448092367320379049137742342550225013866405106012564767658917815866526555960232868432258444631488760497720646906119211793604744582364491199846199166138874867004071905634070441792853420128015230017352717538313261541102708631721258855301163568658175696658782216793596324943249687684973247685075978786704555277881775003559730921079605551878069739520017256012039373557849762382041272087708479879896497604075757254464768491074344323835966097654589471690464692171216798843855178988476784040791295879864702287968740619887896638462274990757271070881567445723656520555092199736956862251867386022161401390948405434993520145638433134388327376107451663833790939140620692920817961647549509238311134095255292437346409958487849857938881016791277762483735662126623395370593403511818799611825390759681709352841750840555325216673251972111648398104552237305862994330191831839351629338138151250441473015613056369039179332243415091825980996756911320983380367031416333014463833508728698577913678339150352082742256676987854464399399462177185988627202818581882610202640549463971214392785033365812009628446838824509351057823959535472360147536430268787358227368302846253956023400715370385130430804358344494566395125757930784891232407174876560445499237650260274977304205870501846657426523706462413680972314415047471833092130294272282514950174048351716575794601376634683285236139456548110998030929348970437772557331379890881344204699710605876779027473042645205690580684487399625237630947320118688390632995180421262228941793325667976203289603867724367299427634738434746512317996194163034052504483952562071095126565913193245932206746641413215507140755680041029165698786024868781422966349506953356502024630095039011152171041036265343406550430060420739506096933601017822467563864596358589694397050682277495457736302524649496681981166245447341643755462472626536741519116714861383108071958140029552987626531220960502245057006346328508451699841141352641949966905753826780624582403379536510508031454559194653507326922040353575547977790625967162159336766192432925747808580630511983296184657938974079396628415614229076426031481324709028464938329804270445908899118315615450913540151912480301700739092615109037118307035691544357246101599651996580150520377866904739504719919924499401955943279987136671981213154797334341843182084361599097846881123424099994123594324430741406770019795616896197226639677813955063260613196121364408111299721202299759919986077442437974404168821583048142992744008436051556640700790592165243041764083741952762289239745905660533391871675460576781772623445717068749368627231310379901815748070087896975343466179790067101074999892139416704500954242937789193461031135446862134623782551515942062710611718124251933560262885960500813720916805175470713564226005648047861525706636321898033997678876953928825590858375489232333590426182329952849245416486624050042327276637076461244588707500115552584560874370964850304925031587060504707685701381169549433420852723817209156869491539716181118331490751296566592440941848148897718759605058857800558375610540300575685213853275433384025288509976492875878382402552668880775310138826537906782947342100517660749432065159887744784919097891609678356682318784395496406783804569841444055466801636965898306737768838474257843860618339517329183830897462514452190885624333442250786850873373891837781059125394654513006613961367117287687013851366991550115607674148848641887065275521138623368965677849170831572047846488944007618866657001431712941878200990330321518999075585296426849308734994260240637902003856619400124306518061366919177286514272168581054627181334786870401518560402242736855753744684186096198629522160665677178843193559446606260422654541399976022012814123603941029365065420409478713106568358024667011158038518781497679467630250747188123084231270149530800633413760674164389863019261736982614009422502303436815927709551624562599016529786280617617473036879001398393311790698124824112808464904972017636886388620442825704138520370633161541588395266627414422140743514068410546809269856221556784326313209581438851477655519667725700473621122791817070037144520191135535547966659277150906842991186574192588708266081987519874310205358509838419974447526183478365318160632551839106827263560577779209595596783505563043673770001066217583225526779529049982272810744967619464628523449557900843372188569129319575954903018973298565102376069269805882224122175636130595200946749599443596952606048129302565576558013086075866590264173174590572750922955860253614733571075155725533640894913844399100949290988883972486925280130751195310434883587557697956580447451223333633254416974870571737776585995638141607274963118683131098082293051290343533409098987062258246568640506084420875869153210821995205169026442488616919261250090491525346690155471773683860257915074778837578474302739708363013936941553558103732124203873332771616670887676318980409183288344554409295910032602438202532566035469880787369863610965983173978307759293773150671372785252028835103485275540181514447706397420842614829938458189553927147001111069316816653636505407625551885990986859399329378924328717778048460605390670085353805332873757913608705712950134961123035194822922858815598019330483590297502319981126421330589809479248581673571019462085155315160129799179302219703496656829091855102705264980827371485418640475932373492255193476163806422429978071663940849407257524067367103544727270884489781694104338669167885869151640500994679816148435628268921486251620165525766782553791113519914217123499863510584928027928668084520547491555203182347859883725958803294728366776793677211646066436582511973190018325431113169360391128902162106895422543745347711420424458797602109391288226169222271892950171609542277548040012329978777275892186669931135758289105376741857313703744042818800928474979610786615034821940433332986976248586484325968757401994457976179627030660968455719744423997702020942680476099205758846711685832915199276104894216252190411540466370423161381191635146546255665813000004019235110713960748271706055519305241340825304638965110416797723467738341110159764369030293192019261989835490725141033084751925894119499643178516017076528713651339543460036880937733706642718834436216445367877733273568927651910081323366562468485922930419962448226391371385441223399510571311978088939275996053025842885838124408706751311867609012930501823614287511617097651976216127308351051219090377661551718954340132341939572706154721206533345746613441264444368517683365673471229891555567131010353538836938567930589673942913199831114632768302812432970519387929142920894957325503961559079099987998806289855588081666485410093880854144327776450230223216914464675792836283702290214146458468713911795804733062739687888301419545783058870960967292770337354760440039720916766283665753992227975031274827367701772771251505471073283780738671922178678268512121029619314495657017870711669298747873161093245875720271044125827723565232046549357498122740116932699776004421248791618033103129548339608262412955471122264714988626341791103538209229572596245497178085267646357837570388972963190915630719564034239314810887914959577380541234844212724564865255003871864083643086492287621698891590052585029847871484997319725330236980962649882220705879874404963850989059265526099145399537800878147769982209366688067624106361981010282473661875542156765575359291799215990833555277112057029852307929882151604920330264766504771560491021511664547672197750771062646020779714199723486441539215601851290889249390071109293441814841939279550006259573340375589319616475158733598260473414405519218988999614979556597848874800316719756032991999074571213752742510520149112890588343156166192893239183158432014846558711283873724698402832418228378002539224351117646486827386742896293199779252045597175629534315400609139580374197376419877001492527299210549830194020563005616415111275194475822335615101211705917936878077833688743644350792660413025677519470886438653158983918787132806509609157497377288906048367706149370381588000832556411322861461173587202903170266197507660076152006894533866978334461708695383697777672765697430748173983948749027661823448053167901743651023364128435760406754563531403929817793315648986297574889192016881212344440539836726137206040525832179158918322287527876041296714600441019145939310191773891792818317465388527377937700276208645029933825347680618744097942650502940201373218373285677556246226085318693656667974361534973392140735301786979848712332698110091068435545891764223558730447699245699235871028831028531538021449730579450799056644986223817639306314736459970568877803455642354556423577603935583246002477520102714523997781529624856660494204994410611750855731759128941176069375027058588519697938827047824355093629224654833270961075134276629387607203770083253537376081082633337862630535760652970346042694247138970632532278772985197495138336832928584712148149777911939713747812878234189583297374946596850514155426565339510973788906599443534821607323775722600124057177023750069658802792807529613047559423819984326489003687124781910128374289283031226044439496068382868473976152923370650288708549010929150374476504848266272173078154607793854568554492797654645508625245562783645166389462612499150746717814262479696124304031223162191331038570062946962730186741012931015567241929241054988392709724834328842678189425592080488588191660228595208729527711053117711205331477526993912217846265534132552715241616682044609762222347849508999597205474130776784332807131490777653162656382563716615031269286444825306230252508283360565332008345386756413372559673685910197841667457024726895773188649307849853437937157054009064010269372980724505881963371872150424959998137316946760697599440835293261253550698889185472039654066691521245997722206737628323372873954457980661025080862447458868486131407427489854692112220496878761362168062774053643138479604928329683859440622665772600749837802688698060801479835593459623933279721992096651506011058840558852644391863943765223278220038417814648254297811339689460555135246928989214153371834563496802906954981791525760890097111570263587477969906265443168492632473072228232302060099965203345910975653445726562990553197145886880267023565309676646404020814779281281114649635926292749397032783804744873488091224208120417042292831076767286792075890033899828889315523950109457228079104225742382403236915864245869454026903000720680889609095116646980717817312687222379195491637600854573468556667444445092498507697821046755034611756793884399666057458672931161280113245543080193791745304012480314006421300459611691977538733785017029185752361138839414289256977135946030468107212117933195425598674974897168904483321679091781728623673876783697336551627598318316657052342397699712510404799766405802353784795817716411670596699955143739314416290350839673059951917916664973252547071744264871795611504142590721231442052008170551081950080730688239080006790296246163883140352198092408402478490006521044941333390779430987566568161220785585696607202546652518962908977061048809554384116092307075796763678073188985216027706614103217598176216140314879284239749852543181199520368583836765905761210938062691848212283877420493567534669156327571516631724972268481593007902502169978230772488229262350321099959273280830174494629321760135139098230991670336002910516499511192431752595447368697804823084108412532943630520201047589320288378476002616603870485968421982385698502143912425541928803419882361124377753661481823565925357303143787430149023338381351096095107877831219757908687218976297367575407105220529099055938620425005135059978910705434806067411663653349902257864283171184176848248097438971586375261412524105597845711199348052889319274358297712735422998145896242246269879563124154001410429532816518747266041504744857998595264665832930872305133096629727488470089957208651160168725744334780650901615476887187506887025095128815467337878239777458855405033985331974820469518104233520924193311329338670841254435155208192813981380570276061485748205060467363041508585090987090020359792826718065239803794194749314560653462455398132375260048197994988720241173086860610301565481682396739332021018266270939843575522151581479630904359508585230315600011412099283926693835378035409452852542023806826049447805917992319128917974747181661493759263007123524886575663546999510290951861424959290089592144886713106404262602729138093475035279008854926930544599952160617127089289354182950046630862336653916508293761907595222362066203958090719684771379736991775623202576378630980680225335443183018732805712454258194986381489195120462316968126190866239816967363522809305307741241682685754553542607949816126130808905472687468317901661909917659121806145468079986323122066640093582946736242052364086400238896924651460337296180140264055275625540511417346642186075682036155022121606133351647846064492489422933648384149522253669091240217644897019636004855459322628091478795694494233715939043933277351211638078631006637581000739980330438947747094147860524171354933046890507048736207834890667826158639169197212470317927364553075826781204621831173617621858893170522869178811320458937167460649364987920417508277974081123402664656526231705084939008886344882131279890972800360675607465435560370414632642433239190678566055950639088626404784741153082680846343941628585873872473046359881518026135015697310390042619639450407427253687542797334354280042353116336090730474583704532967634859815774052094391193795247615015613088952524380153239474412319338007690585506996276292117065196295789762778579269788062854575568590592074746481480569590505729809197212068106434831594030996046654568457183332519589794948178672430456784021398348004419169191994950672378791643275359371151625363505670348293534539985625088051958082255905983754445354164447516172284966484937613313529532897368067910880314053047340757952239017285455455524594083713467690053241570805910554999118957864497546448289485998838264250905217007204064481887647841112849085058689890989096827493831837018860075671837628628834230720802975877854622851884987377205409037929729862722686344787187158114087805488408018297035755452993651001983276295600869344727148323370967783865182379044662285727736744592540209950014101111495799934960822048812177516511913419779479683188362031726041176605360396368041672937243925629921595565510024874649056670105751637842055249763211016992787631286851669118852126918644639095956028363931417332211440385967208726227986071158680622945904832260190580170969786457999112637949746417770779706417696370359060968215041368549361247288787336269052806987729142274901650142829480462050030292927527171812501934718455301772973326184046842070041087558537463784744901276088998501329921892957508098977151207033199105343836245003683251231066339587613827696305119342718798388779955275652995590179742278952303421070830996594900237055598433551009199735000973225418243258541991624491017844548277681786697039022037850220276676807331264341002881100666211328062777679514149839450969199707401627651706350222077977096436498196158853160803343050533484307835486819080051337085846258055546032152643149467261083629229987245000242606486556229441644797831706153317778399368136683201999864609404797181672161058557274420215810765667744399883300168590539589978435379559085337592979634534412899921340603810675133928385831961955600727033127317411639658756204158638460073776930890289089988031889091117642493306619189677351409380597780560301350146933641924236555292720511650114373209821307693374352239911261922070132483237285215571748664192359876151526572271734002847109888823640430370829848728460861990855158178433597766368771504621190208277763371365528754028412319941279165491885974023696012909091661360199230818283971920876846144196868297102926874631167317318458996792773863764024849833906443049173012027752201341371696303973807027053292253254543692845056324917533466232984011895038791767240399916377160675811563599075571361166334408029332476433137501338077515984945462584404097796867297201814811787597049230599550195009247236106644977036975126084799536425645859038683805460252115089933081307804729774228412898710374490762420107383176401000873653601096460949341676364144494514285325056384285736398296767770114611068217152295868767799675021999595599259383457061513359414285543435561723275949043086832615349146165780570224743019850003923373663552264574355019038106287131966175108227359577372198266610191167515337573078848856625049019262106120911517006032318383460866455081404723204437717615709879781052720477508181680284966221824874718401195297323610575276242579440459252873171424759338987479025019473555417284555186759836162468784729568238380756705233333479114933191173186786191544547040734319951261580556774724387524448037715287375765242763755519244803042075850448368472838701155587170651649263769753691922236363610759894739639010430727389936453839146264315069868115709727943958340241019677709455695449068330827550369524031296224831288088656255758187046789810083210751796126608631774111323515059926970682461445259138046273373485927928003349660156427358739969631777766212071219067168665602037739104078398102833646000081123426583759796495497904511489543105092664316568754973891717283976111901028829439343303751518196884826452804916037707119239920178816331488019023890759337057348368634939896293804596685845648281504685685254758331850056606393194939904920521829429058595834408574591444899232326299907215055716695946139704520464268290533518894230205736407005642944756913753372468873280480635139246086440397051661842136669317427987735536852490600435621852033487605446585657904378180461218598870777597376551233196749784170172652330969544388448850201403032017969675375109345103507709947039847867111884790648606620170605685523033041495573050658654441892905018806456214386894912123727950037721712938082847830891113533159057763332591001097505318396608184092353504070163598668103901097394497640074264695160834258271991422120882998963350300872284561170119948793451307157652623058080539881447288871224474685733777607549246403534172882583981507375252369940028357673883474002928061438157223708885887420275167954401272470812563836993657103251096994351542759104430901342570410913480236417595016685548044781834553357209376206869946960227940634108780281511890268958229491127903112044261233586835699264622062568387580496692721255259875433984565618733872129462313249144477657620059485570496999296704653421850095911924285357193761423549074734989490020839944663163972798524697721404349806237649592555275974748626070106653233614005553605395492042769079297281504342178336338776674371374992274005124451158922398419202494742943911800899524119343518694007727284002771177177880552288062238126354368586933020824361888566602236240367681976094883315480347297615310265483201061277731964256258966996649431007929138832276314237979278535416061331975998338058543464582748621749850078174109706093659486844879567835248919571653615010686317314856326189411909616312615727401615528281191214872248739331888087914236896172710329797609653425373230982872679494256329354818544002773337207470057260377046666015855102466488105541171038676131554756957779636056010036134602724713738624633251220167473984534100136942470894397819346982938685064637079302345911496972734635215853391726243732883275802078662976225378168575475566772985086592223398386752177959970437547737715451384370759964713223063375576298541607696368738405283674685061143233340843710400392344458639737288465818546664746173398429344037128697534743455222018550762412986778201610259039501312347033608878378652764227604963634466013559766704049184629988916952292260450940502557097293354056631139749380491976535888752913710773830103705897301706910172702406676185409528275994263780227796629788455598186897227262381932643092693349308687434335978356443846185987275211191161198561300992901377371323131455470127482748036381011390156569602890248768638246288818958265977040956281580936211431405693530351594013477864170248101843371780517073253353365293989988754546842148491204216775515794694969988524391497759863897480632784244882207513491449963275592339145443260870495589782130710969871577798751319163786794075082373400671472538100538931971578626026160962417314463425794108337643113895596195730234540160118093134664868305614784410155467288734326211456091861910526292395445239219315364947735667193849422861874859083019177973544725872741251938681189533798603003430374271960858537093631235120360320507316276778040522521581684716532101216848168931512508324649790770693430545865567097366655826812465522886832238695150726839041337832706897377076595000385847267946627061562223175530797647803206812029868600550902531312149673092452011057758592642537072710006180718381755014233887630318976614223677177607230780834017626088147269695315993475036641270345135342224026803933503150039790422813041682510799788159536762032661276125435672406165283982786350413290997457362497253797650794903195554022892006017026762859965503571367160365779510633606155116367982383158386476111569801566220281515727604478430526123240593351053144947168910976701172502939254308080237202931645811767880392345235740528176356525585191350177248381839771964196957271516895695742260851792103496689596268139864157034975870211710353856514062332573481305746223635594920913387317167683465940884056314013609686197202760573681583288279530855305813850103609465136020640161542416598540796163150339216613724449442753660579702427592352231209238132148561171983360717118616335611944242849562920257825753194392891363114247955649104843792298284275233953725234755924446332093303125489049206188397544007808264342648388746413842230592849579028684691304472005780267586898462591538571745985487225022172174491991139639931527214832475789023663232014861670855149353120573884585822492973206969481415783200989927182229358628395832220550472341423938544038928165427419015861944080529198746268145549682427199557731307159409075406458648048354796058495388263405130362779873210811949116703006658693699988141110273828384573439202138756379334496393040848760053600880648620293685609161476264228486327596754668744079950917852538132298010038310426749111398342677296012810051045608088647709113131565241038582600915011311869468888257409106845106432101820317462150809008740358627329575232633796861804474140945470837984470825776653539346633338332852578765265466413034374758920534823819386675553886145136662778187186011458105148727646296959722784886668560884535818087652261476155942434477412302573184944944890130438135851808134297326166738833544593545702767074922442090969654231191413420565642484931050066813237478514861135057974403597801601981788723645742883964445806171254336860403729690477149932982980022506669941013766360218942763474354571558161308924141276713276840043041760799352415552459967776124094839762751380677087902325528745754468803282308084365383209413990260943175407418858121247373192634565649547172496852704275073250394978897794508035358722386142953100181659538676896172595928733027955707708513087353381231923778976098387473837576497121354411739575097903155321883324149554486045007657104505628995903484768791525907175728136809224120017701850026585370681064741322142675409050812489992538395429331011857244664899794084501452562940287778911234262258335081918696758651613602596577425282520530386779961163481224166351805861027233670083863471616099340267387196938023425850849019204813157957433830520258008883336845955384905417053701173704269864694557109867748215808964795439017303646183546410325182074763307664842123572199473926673740004970123080737669374517967723362884304919490888674340150235938108510391918479381185522376068574184210378809634100837738151310280849960085907044712172520420091411305453608067154333611403760985207782502538281416564832135660741520580630493204431333421507961362807497729722693898825510852643290706996267254830271339960348789553067774190797714521142942283954670448578006544046223958581447167556355071756285743619471623240821045936941388431331359311386687408419309865679129284556513011306428641207019808908122697154336303870235898260434369804199074808949213254606336600472684308026227843516998259371109418222358818197594926314255830485750730435997542598673799427724854817170978373325012017564765069482604473236409026497360905058098725926809461278947963924495668750392779652530868209999468192951324500713934700478453191289123661364225015891664249117968327241972321206446673995167866866990922407258763328372694699444539040911594435142911053457052538439754702189417016158622988871699814580232709907513510138146995912343503050221062215795106898110915870879417146807719425844756429697565582337875676762344810895734974805568314969202676888021464763856313845730500255515201184158461957068444656039606526142063604905501031646442708530541127483796831035377999301167469413358882989797793667994671565847530675561149915494779619832364338736209230538401095167547426265045847826854804810940129057632400096192841257318266407038439107262157961056018949530889470228467648171434997446118018227114061275465276881302956869663309115563468487154522890998767996025266996122741738994483540276124361744872410042497442269668543894115961150558897000051327349693793405980398550968661528731024853154811596001773186759963900349203029951521461460560847170335690166615325593361070126676677600486812057950274270728019367310754883099454593660193382489159529445138922810019714889896832323469418374557353955008633374601463276176797925414965127412158861800079011275727714749241795719628093949518650072640998160304802591023747185779889043657389907021914392752872846638907569054015231313286565875934892021818569548785935723054379570104630669277663644338505917075056286049064540084187568786046122931184877176341570807014871498550518433805797291474891849533309253779608575710129766777953284466243889375847056933735582279999918519221673767872730862679348059224357022770712347543482975282245469433737848887694664171648450487135406941482821369612011344703437300794605660630302597592439000950714270164076064098767555302203935254955209524871834352143531900987748774429703623183602706195362418725847202046564335340348543754637081384746087506461742658603545406670865824471848744181310286764595692510792390529504348126178242201813814600891047018555904715476257792493475726883866623994049832421617727448737395135675002680241011380196461662561153553717041977826421348515685080802249643309540993011022118728538255176531099236410494216929480104678169843234757144807105286328618812068233177692757651958933825900652042706139683883418891199046156158785837429062162850206114153114718344396700285683741589588852441118610091911518250002498670184302091168507152013014664584713164623705627358888647069468579933340732122852718567819268625618246319548090058918049632760677506946197192462538952866624151511587053997918779439640213872723716022484543340529761460950745341067835561554373565992162597668165270965604295480588365968760452690811189567053815689689295927217394725487761992980905238357692308733980159939398043593076246151859933698912637198977595853130641313256770222264604770710862791809905057115889641045116943761333333469358397645032736608321340216746830361655009604462003843959735607017152853038804267811304854219683449680542419253065577506928616677835251735971389156321372187477920328866011460361287670576665357472610344375612154590880329904200834889276908448491710052175757968950317721265100404167750958315153430128476043998884728960917042407217900163909787318930617366057635760321584934432179574646322175139167921417307411579730943499010459120429629907153228078228635026911959618967280908002794450873803048468089891462082995504080725764104964510374321504656830710567352609959174295643730584003623977507391355001681712067248167944891301266481160378504333585140733877613984631572793401171259811641423307755899479878460153275966647326565642760658251485983026723206292953970533907742412762267302372452138957188013398284557094631167513620270542453277315773766597320520767564747283493170816479535398491266521699180844815410203099867859448268405622439468240102487706821847983570891561209083572135817429044485962352291940054088620697039478240167984092144375183905380537875617447475420060496971077275831686210138249320523610167137363812824605284991675013841074426256538908667986855245864371373161763191836880996481157936027087656545571687009675724044225509094369618919561150145131140850231481473542808159023962510472090452938405565506726009747950826441236496802725818976650033726797345406721566268765177911424624916558225960771084228240266632846862500200601020519528138982439873517934641253746044412020086461308716161813506019326100644046123898819609986753268640039164412111140952918075236668577175487687959456396592247025575849568355830334257634513960285971141297570743045874160681194775418952382254637678780130713741904655373152780694964518427619740765084302492653928878351558087362179884251138404657140702492783079900936087663475813864417635747017463205964339914575896095308521641222561617895282322492558041471966429116870838804353633855581298537165055027704609471884760587524132257684290260148940762387996380027803188739899591652336677051487878097948658292231260337411467472116567469026564695058848843179027089791321578172786485489617617162571350728765142315102605823561933899126616054811055026097983171044691525646468988447670717551196613289799238336694497336557723117693511776726446361804595355630488329284335712198297765307903343605067795666176063499565074626955976897299709217773991997420038807213837803340372828709223055704705734853323345887970081211945641960034530249800429885607595789350823238658606116017540689608466253592771324446212629617784524019830136429297434558519304432838722377948648582019313340571378220403465396856338757415451569293227629366034598112198008199268135144310145682803709764857814964697922169323516494964418533848498638335453282103402274215947421031416413441908962179657157403236575490235002570711628009055478013130246199726888965127600049998948389844029136224872514087300394252673565707161668013901074464572209578431777935452086835726773944038797694940524698113468036030977542346860641901171024630597478812085880650385225561178224869364747061190147054487230708303413026566855791715574640099147500147741197948111240956363678536348448014227645644294073233607064564903377514447653214200521079653201216061151313318575326227291063519765734865153759730788083841773511125941057262796207571596848861319200022538365728082229343242471920992614709634064665847967736143597355525724241067846997018664464632392746575653675982458622765307595922742003937461245474965725522206703657260136859322854643903236954388731836946006703014641499825060517986297837816981821233631201936034059512649171876122542113133896067990261328434066908857329296435321663074073956598178029083369250817302849683732588377183226647570143502772336988187008002289608355262703336962356563630359620255415247745951307001285265646236051853159801115174670423842178453049117665930089722475442085264183449229521993390462349299842433695733159871135152009873182897385782635075877895331693046579361425827534270495059432333379721407546475275694637588380883325932325637317446222992984260442119797629896470148682163533569719400399611757068868916757155784263779200357612457654780410578476841751267462058023972836398444468109830603218638928432844450415295510919930871790218623113518342751850876511954832008259837548373759289501608076437410960038009466141610381635617711616171330105606309179982039047868138765221423264713666574753144035992667868392916874341131533868273552888037645070660336241288307540863063989742138737664979763165376747560119067028676518369176370655693051567550874290435306966027182591760677213811859264683126756506311263029322460679017261125688739347545894357068987098199515478592279651795461014863028279985280778279345220292372698094660917840660473357203038688219023513292016387689741274466486344338787749287024585694853858675274345727220782651055018905278514430484219044120417588052218441733153445872145168219526442677030999541434051761366225323304803164076697359376701088597741764095150312473602065175254356551354867290924117985298830721601079597047229157453796546618734909773353233637518400802043692358410222036183700819770839676598591888058280503879483686073351882936725551325362427155819432549658918344398129769693260417396460003311146724430547461487875867123851423101002769652833985671019229066567818782479492327250088521730377722603785552765923041458136603519540698879548268323518986723624498275376799457504522375517617001975961916650602614372982359537450644010158009099237481063655425099232623291464401092871226354532199942180320714116920972022036020405692291001324388649224570703421186753950608466493935199486982223493491864905134858968891239133685923661968192051620244421679311053802648706899198606012294223536471508658637316632332612691938555556589475625743283216908488737462823138499120399356759178419433823647994581332144843128980795940616780303827764808256400658790357342116444173937554901875710143735356193192091551567761148297033144232560231544692150701768478357848636836079517552299068797828167425629352836024412266673206041915054681576014153775999350322029942632397765974026715669044348110253627153696597625054501421486547087945111297991759749313025144594664069405204834714018158715038285316197633736636747930486597598446016848160423000299237843130154648988802033489375508932619735475517256387343410284261971301894609451911583228695198781759451173377297704760469156293109711520399945675482228656373687609222052326804767759311203355478850018135555480916036607479614143063555677667950648588499587922072004725848340619697743310711673640204404708480062347926175480151343810048539976846185088995543599142087207535360932610693662721905042984944923743382069653048362166990869403086819101379478029931967448220584134417291795250375932897938966429905397378534781202538967210890446678965856458935038011652867590227942892261485020330057656323774901347865181727761081916639897181556719330763916213158689217480763249280801385199666908862474327280956889682283816823414773710842589751209497295731749584307162079291843454070161475713729386024921988519247912704496210242709672852710817547123391933559302988040012546112802690157390917709661935169170980495736726082373693824031766360269898671721442702507584541592738907997312159229440485181538267268960142582196910995433461483493886826398786836144167822944897932753208503717877593860228683578290108311524008023724617047807293069483987430194110445821194097287622947072108676578774246477185643052944936324421255591651519838790040070060736219627963832406224664566852397252985121589142164323280460873691137873649866774112250049621122021736406906200320398257034742922188796763914044806080419850956868907068669969167854142774560149009854114155671279332909268806071245877106010184205727580388735733803134811569825171865448723119140614884496145005663268978961136791896307652475515389381633337084698678941005457564014147742787834816602177733313528382627121527230418074363530993721739884236974589239878799159618027545425394149156769210764631787373709811172955718076051728160362348849599131277516923892574766477808472460660548910438718243463771355829003496482449730009454623315253053814951737780387764660724321193825568503203008684308069143929286656704893103777835167718867892146801001285086338782972541371346266122437744958790723854222145607391029170051746140869890710376735797823083961811839973010537928385808287308196780449394850762733445281931096567151697566546581319738419394767700597478087039727316448103436422687089763138730693838423657002507548661655645262261078336134148783085143954392442991833149825581011808935390159402481844477597617597841770194392381130506338396546064640299914597369829147892192072574046363486874936218820221135947088650541458252297615589462608868597025179960306193030557323397891203960111279228813048824334599951619580392066847698715162959399410953682434451365598812948026878391054000796192200378757410873290078151313677738698619698750023151847623546120145735670421275587396312709349212950602556732891174642299064662559145737657290891755100024539624267005854977751210092510005145013974008586082911116539652549110240693963660371196769713309028167671096035835061527078419970055409934779496872491778806825592230697890506862534495371005070569832029842390743675100088580572157336733048063541042975751361024638582027887300010710090739669516892193509721264994926406892078956962824949877614413858785350859380046388237226870120901644126756199286427989522102911876627328299965209955137619207673567653596664611842414498490780519795031203813196491103776146079165773002670901581897713927298424192924521748883674054919986831428981217975891928210059633843783981221436955743720158270468852670470948374789057670829572961218303267661562326967354018146118793566665468924321353129714894841243999330262562226012566785437202432454208235023035193812622578414067474823785083126082481776825045497802561845145908422276026064005810311140600654274699749641276870282030928343024075412441275030145488877612387372812915474472377154840846348167235467800911118375468667832705949996750741596169015061813959217518662983406257674805945538532172453029340960707892396179045236534470081525267584186901122311039736173182342469431843475120817973146204847328093163596267704025311954354497693174132488548045317081846868750091206984085513033039299658489034112128525204136946135012819662714890625436264478898772593074497934719399748136313548518462508840377632191559480051937938331836585038028320344840460914480115898848609841866465054601036273194703787883730018588295700156140376263865678760177724850322635116536636880098345884362742777318769722080123603056556595841214817613809531911212907288857169967589829564635291458444275317284208319320168219439386611136840825902788069131114156232982771944842038487317590816173754538838360342879357674884129314040123087665559736776325245986418884507771037304627229868642853204763483891247079528342299174248415311353118975540730102601552440483864531799049605659240166413384254470428426924440195160429089744420677949033762910234185973834317809340231157349398450983471969835569495897341415414884864204200325269300321429973072904444481841879228317533826740933622156552655830156286635379755878066430390743161584996107670591222545742648993466031271943136743232667060668712286876529019856027365964768544600814248296056578398683995816686438244055458753890967871568189391243018570820602462065105809813787616099998538770946229985437834406894090420066273101998254123930232876707084633340783167548674405066534790298596530388565708989896778588593396149114642617755284691364526059072069915428183603793586248339825029955277527514957756173167201739684850650948335279420066227622624696950579775064467115064965836810727801874253315454183375410588295037312103258266218425880430902720514619540055652740001001272110406983614912662780360679185760155922485667180668210786150656814987995737677681371965196383644689562103894314155591843436895343368370223848204280195692031816260127004549709959181888206137706435537657785602009368578822514207872822671340616953734606873970801812295731766986501402606771669342445190049366897907101839302097328779948698895855597094943781261370384241018492155540058443364717049501438183255362918455861075592634143612103329127873645158798114934207662592662438251990176532953109472415295073522347385556756206963531411109690280315240259268243991049807589464473245960898806879189763867614459839483274650079758009413781697612426906352267842231034130436925877515497695865155905606207794012752950887855742594685349210353464571724969961823764471344040614837491665782835950639714780917789445089323557208250225591762673392630329845487072662697474367005060212929318075682078247344641007025321147122237409008444187522210538304019254782869914724264223264377820554885376608529408053065191965553980077637275567217830099717906454048304415837741862014650817943679869015284488065610245783774765567753701681521184838493128363986567380012594329672467962584834470482040419568171992732422294727627418163785527346449123904826510012365011816782500730706732608953771845292194173036958334073458422294285947392031462300598308675391369179184411613628335109512569229783593996145662158970863862149034806667271829161597689386271399467104158791658972606197315538349075778266928155562860203118142351655375021639181745391128803536314928968338057475782468208771245974467385766919155299127064736057277993851640281255287314480048610408337095360841945452665667477408776985651080595205853577781851697102351112908749314407862528686736069516515755510501140230324280968480063778013249369377433047718152351553188940540800270084050645792613033677795263266553190693339876919202102324776581441038071151598365481108430333267716417471665495467481453666107184300128846340146970251750434778293270853595489709072010074075445926400731594802283234182668272160074197190801300432880570733164080652786465410539627884411911634736607056867388113411606160156360184928954238824476127341044069934500017891669260124206188254155061847782088940892783083648536629566974916010976491355773842499449713307208640197629658591597649088425629464721423860450152878685007236222037410052874992018277877202826204680226572089653184519970214328211770032518584630814920989975713892364502028078913793737895977817862328530045570509468824078913116483911011445326756054645343148900265670000786163103668130337689671594366706309635383257807256749320915622949693951224420680199239330283752701796407861289206385659147128703258400900571353429481384383991852886689673052123040339727116171695397155751053386326914907680384284533245432975574569374041971528573379802246085721809970580484597292150645137869538589704457597806866515863085319705925847451013386510256455515133218720137523312192149713782519115955056825850289968279189307733385171583640420408861327317814068423653294855036159556822893542986993081721985246854496714520027067570255099710922842204936774368844434104086202474213514911359758739386000476607789367294549006633288886161743965574013982233809187380967142249079081662673903066429151477710263650258444655124670206437846274433778055777757621107184000268589775786173892646161128588479655149808803622330800245912166915230007072664607652142850029154236268328366267002139883337556397679279641491126086727525709699442942168184535111418408080380342475555051626679116071770481069276557950923288378837491421915283568892999830716963017297768512772609355940172925701171496761373017599173276491508876827438244979366182544880313212702228854293387715716974090682921649064294809139325540991006436639623643543537303759110546353425928209366667081139073375541987334432700799273588866208679522139437600385219680019472049723944031905810602017635827494149936893070453727167152074938304546756528727472918177585361005166257012126173159019560376621852431190270235719676059664519455484719057488858656851687737496617637778356603198323463598981858202525110023195567311744734992824886668458347950815271701355106107176893053850044224684754747550679574015198673461345331513943562410933057166685596540638532072692559077598015524586264261546829116020702398791085577608492802482988633102491544875640603243009195675028390198808983988057600816945570018575755762494555353562969352158924769971338226019620080390728335453504539470433427952001395356649350687496308229494090872145764109723358484337617147270630348802923323064817779552445175465428989295364463211146736680901100136980464675436064748241459243518250119603135666245442452882673155573039062099569749003715736550540056302687370704810149387989878829381563224348124744236593159363290507340056216487553196179016778060472620794976960447392342657869093864513073572053841755077217964005046947975922281904311663693423811397051313706939506887165952922087132245924282717322453522978363911382964670796507723168525132384965597873862580220651498254837991048653838471051018242098384036084239258448296628711333090793703321899609670986654511753296491971303428540015808480033256542517468562208095381218479748812246434407940752781364059642931473190677070800425606967299431566703886081216892238460750759969976505628701455205151118461601127640211688957543846880143572029122538851246416196549746745494168942067325406652702960433938485461147178291103590080911594270196774680467742785892704085224584612912205659779245400540477115797584496014397464458711562818845511974886544747769043365523954434025599170863527038496851814042742516877035726623554242454594256900899356820154849501303206908121443793842978792139697894292903975790834088983526926864942466796680276419362961534418054868032090207596690408531234403848686592994545080789512652121273304757807737062250523479494942645298447798985568198843004609369092509588799518103642676184145142356495071694306321048196010092496659737197471771053032775784079492449153608154157057162561196318841256883924032039513852454716306691593032349524696979449622436377348951104979414586462201418215733028887657967599009745654513699519427123090288243142733095032704206890490907539932068086439758679210155411901930585661277373881968587859976711236981002829369483140231571244820482486653030924068541921094660547400901849948359731444705489239481955006767478100620460483776823528002766354449877336034101416591193511807490280972741359974717156949251801157052049929104813255247786812917366081745330051719710157986006453802189460132212521806159331703430176527362361193960909585719882330867623372444682984925857867736754967975979877293786127340694886356347675711010227405393933982062980141723653640104659345681408122251318234878044349106857255596610558482019574457174146617974770132924423816808027154098037923980804509717835492139605184479274023219442789600044100170368373964506161725735063032104152308317972848942594826237566544904375801210379476208873925793761321318713488192016646706363843134939659818166252399078728999994769143608987277170852623887704340431782499926714281181442650632981684547317192286680900421480984843002450483267408924667401412849316175984340890325976546031930669015233738303026521678992464289593946547140030803177501961566682852602641192221861076666883201237958529716505734738667935877806773106610552078995291835326401913393289873249133576538060637663842638504432581392062404025019993372867150829315753481729293873715028778376928420686460411800798703828036140444605195765946575297799776537815814671746920816113273666388393534735622728249031685985699686312789869806246149330764339468799624829482087083877584013162215136877040318382188361808173076253840893506095604358506526469971982012771959347425427444375881673884361689971715261357037808971749768158638498913969341214409860232219343584524625657513543322207486275481114427627580123929917659066904354438764299505856038773532215909851831837852670340337208163104311352996631374821670381780673096096363160510312319307442736982406357674899477595020519906105887857398388608805232196220982226235585913284632586821451139595244644747044209526401081836623333588079758500525217386700403818519727266242501253786203075092758082244239779751378994555312641109883261893719722335824415620163845585599562072284383861080585068674832899502430552465464165056778372702942404817782470382526950325765372224299412435270145033803329365894677424089064146361330483611379151681780610433341586945792927640950775512191553869777789672027980569890282746125831708599455003019770487703605920958998547398644518280545492857060498278055781183176432255750405693714864034360952229657531434956386008204520765717648802179845053147038332921977577865245984797520333985961312782637272248330818502367922488512468861245921893651461524625273721613397109856744586513849441822270298359425424157273872577837932081207096951936703634081968841466328880139517499026892420883764449828968998054392028683720630670067236428154934755619743848175775121544735597847440627887989194678325601192132335952578550791944016460951530597528756850243489819381036966066059603616470199447317139507494818352753325320644322888408233699191989758651636706353699759172661680651105992289212176568546737973103275820500925766944987027360621023790804848560907578444041411127858500200607938847088101240793928044112352823446143961253500582308521067338553383375070563654422178440392900729299422882552261939585104745197174451344327636828494903714950617750535619787496949901076240204084770497704434321398467070116790180407981399292954460211317786564271487353806458451918149316779887708554190301592655580836930322745149597044169588883843154344331648007055011361861619918242276206504798340062985640837341666201503472437338704117861844050309989456697834184541547289202977272933747802618668008009163328806004565073904517003317606331671815229261583330672655676195723760321033077719417810920760179636906863756568208033683516887182896045972951689557994592399276515719053875359304104049962210628365445654795516416265118808221190273278199833932995903292195808302999310675475575994414655128646812063423937509564086243451920561231391392982388403204423505204232885351891917210427085390393151000408872997013746005807572893627038806266963493297417901511007225928157967263911350599093455954186638633087678656295914333634733787156877493507160007604522083331029754827564038152322982729920830560607759290227844425934277833714072602093833671796920574525194963801336811886917348906934074153222370480657944104906173095654287889099721791603107441280576109343767050810722283234764945473866740994503753966035201846006141929669990651823121898465514265779790995301395903369091472279138457994801536999078976329053656695838012738967985618536493099135469635926780462040705279336420405663449075594970596832445084740746318323317284277914217903249756069700194760481021601488888342783807594129254197765598975245842515161029445920116544890358960785362377122006296709361992557029002306632757980412949369275561498039348517806913494850079735851264395279330129843006288835037176592082576929503263799635142516762255822705146656565292393304521523018428780620357827724919715385640797371593844859225338049205965698956621287484998377512511485416516381525389432849446424624081603210876603973863078417408598769641414902661740193791853652912365042388564806778859366726686613382097811475375113277370913924182314940507680718707064759222800617005418874912845961264311410549690833736483659791419694364416913241896909965175227985105510288447238090496066685183831514906384225618810126407037046227463623242733061495487016768287683934145397694469953350926948133481787031878718841347773228726746977653157286898339622559075943702948849362696486422339522671394128282697514041639053570811498659821451053017606591219736374813777335699997497711084708529557424851654626633657949699093421415309862540517574897401506816684650287525645666062327533832615914760746894329392532359254442465545214391116412135581662697624888796615781221777275109994044441661973026447770127518530265396485176898436584160019193561772184454822311074661945632447186220121206752657861381932453458898746602284834689492317244343780886296594239227043191618987087005040531043421835431270028871650819482486150682663300713591976541922443226332802767839492879666107475538402054217800013625569105340901212295755054284001219658999554840868199694995593783286043252827360221146233787253229541398702417153443076080123712962787912371179307696800276181178890871900319627930786910685858583848127809005182946898321010590018707523572887142098760406428738119608703514166470808723540132928028697912733625516091213933221187068467064293203673860667779775689210542343827948240997923831266919948059123872525152198965350944283685461891829981885329344428131969651402889045010120979183523950260205870069426549657001785649943327568853149511463298600118248526066609706114512977128350266755721753009734555619717642401868678606302712215971178677152685167015977571002566829644161890344819339857766170288044798704667737774731548118452840198824226133570393784189592560715005144023240564608880178878073731044899083671032913328316543653040481126565483481848140853716318355848774053205378901674184569367934451518602340829688165222389646272684818369403560675346546722877507545891435585670404091654087918113543317027361881870884764152502415881494564322570184294304680419659004723217345094653520068519978446927422826458717737822559474423273420870950420703538344868819118185917481080928662688955425786579095580421861197120887289581062588149244095593392264969753719174470241064511922435392411003794873529712226613465424504805928454791316946542749891921938152841764735806147864154316508404754488887614543714048749522671385442099591060110977443198716458705037394913880762201160061713545621537923217540732369325760689054437882371853662694719898599457311298942254707248894512683224161995180529402651551905233621953818019549034900676896306888126461547454257551686010015109755339406747031783011902537868533827647205130886242919021894164703775038814968510462883913013738524318736022439186366552664662930471966053905328435521819873527829874931049495403476720930593548515389473987948430226992973330518476353033236519979726501492710411873855969911952586520484299501934426424731361238828857911446880765798270168945587554525710287926636439369603033021756836148588267629426394445680564858897631174407388270102301974233768166092953776549029947396484433936536898121276139155148357669764628512346637649823859450850628624958586263383844724753052054553535198440455373696777739810751121639435780718932957926430133282692517090272205022335890019357477254206824089023019358301817452788961122196099594172923025634485792912730996619156870074019790272880042339934037046419409062271941606658808339094007252360650033757885656080005395463959511132430734904802020216808376066958824383358218868013042623149019551685146436762528088620188606185461235178750417154667114166933091355602957184844312026333679168414220489204331361423291069070051465503942398751188656961335752233886937762659717898171394543437702004078521971067017020558121575084596494238736036304627240090378257414313618614375912782059520432562353615493952987846527819859385560867648918284714861440471484401048724735859866196030337464823022533761129680297411418053639318021681744192202136608627268359400803397123534454643070441698527751834760495288736051594621381617412747612255789874772750883941916602846806883827935790818846250229839552799515113774240252477520839393336000064396292015520042539932672081998442569297334434896111928796125488763844189330843771816898583847873314973523851094124635693939604940831574762415662246013269048916943927993643154401120020635382622772448759372382473724928085819671447139572297296786211286194076446474811963985638757794188573939250239152927004352095642800391129623117677624259423150241197209461972560477606800252117790319668821376586164082462692046436510672323341955021869767692614230266262763523229905460492658529618230943878204624539973771184938626873162777336352949525400702527618123560311658567656416750686986502711797192835707749088156549009266992644746904743315428167989338260705283661611354341532581948159413521719098207428188266159348632583772135329871204739696605157360849699871396927552968217348411150959277334901904875490115352547923537540059287162609866671862293566558875737942630627844076433377634145079187157832912195083201177131905946865854557607317052325673433271954090995811944624926601317301177874294021626296719381726950126043272294105165956299964169323041890923840607272874920227438179378387587770060366490198028343030360054140347877999855025582636072720042262764918256233405054661566178329448965236369725431502979204619684228209596370403948172718686088323790337528038757943552178662150917874301402606625515096190092250741639931770799931660723652891896681057978569295215758720002753179718877067594732483851516557249816172379308180868105061851520416052341361338592668251287140551459110660751040972357453261718458581075084826619439568577395498845130501144107777882712891291372260724004881216451028196684641593112547085143594583784183949751586993078064751487192669618727225504228262997457545232166944872085058755692702345039512678530022887704669907379463011763940494083755728305498074080444713381229617705069643160449486319278816926453997736600830177690226617472406835234717122284013807327140401509400396666533471159868807048532565780430227775018587944070040976176365286722625626213814994580718953939363839777260397006184985612708191063588415720806824022067489309885579106794163442377369633674900998378632495120333664771759590731621514833631070917274538292938963646828030198838723573365784353338926033655261258695467646929929750779815145602412185668471447104037203713496630965829168659613415871601182279241688143268682537545021226328932975666960765954278685327661745756507550460860859784297630257064899110193921326280276150271832756229303963659394481809412441342200040182907454985508629885461181149305416047877545078375323691470698234502517141741739965603988056044411611707021672493627086447494387961162270013371316018805151189673819342990340064695422396218827111600279555238551740962536988289438870188107606374105795488938847847358800388275480046869196723993066578652278815882568181773766623202929329710093287123974282044847635742784656980422114023578059772438259635972299308917227384359720897489294727047072623439232961940550836981237024879961462394936705044830890644933071546453231382902148191284509826588752161902991806556058217410133174683760424547290256707221553303106272848773015404611291413440498027694491453231346842000812523902532028470191047277961124214681395742737081220698655254518196022094561504493727844983868480439429580618310069107482036341461757876743501007607619859417786827404590572499726966296268197005456488468639734617955435684646747052668341866416228716254261119422222628173246337248688610372926505299828621902581123595012936764644094815153360033225537704596746316127962679976134049026979131742491169253799574589517897595257627245059297441586074871581335333650397494474020814205017971362749763735456642361909462838683290426702161787111135232492077529917743598484859652369671107222211182636448897707860711007781219368213848931408627455307467393452490368784107437281805344625149254935976148527411184015463544068117568609212556810251497123603204194106716351975303442887305046007942719810108733282685615550692142787677722362626603628413864528518886923308437573011928181554205553085817930440047940813471585400285231848628353132504164874481900370250315654187445978597394595636422432148446379645304796356437530518049271110448781039659856997045075612245102839425135960400938997872209944196072256927788219981721154217215020453862581654983640185444395811794737262229933823962304474129004351504187494452403306290234653993694430170824477939414283734396192668944900331669412059762549625126750747791128060268861061801379166338723045056240869651473827307822688354002714888177337567413940946170714002558875300488382616145116169079023193575953139063013238688623995153049423598666917829660145567241735419063331975614974651537044838084731756810086115333058872269783543378024919820019204782377830513799533762670417861387592434765367275944360786172721635249909467975198921656614089931743598621885177196439122307521872753912309053558235667961735278190709432007900302744809043928615823826605563212604756980646290549220463563253308121421599811017216582950542011379077085540215657757756858704453892263333075691199182503989966979437152244175717942224495751790466093908996740137092611381006711237454459931624248735640382011470961200064776197096766977465936494560860769981342105975723659766897279297894437282139321221235489033469825781074115991809675586424158667322882508231140500759418697152998450115328388483093295104400675962285113242615320059120524391991926037904506086341672493598404920047443928697822829092137868137265658664578326808160012057512930903416267169676859317954114715556299569993005482827722007363792288669019140557727907804287075927974865888983980996149539705052896438980631822789678262475276042106083390549227876901198435201242600458304605252128587522317226782665810770914131450698603291563847395206764466934830436267073589059624491593878232237335792531190384313604996352506988950203268228789151694319768519343828923962475113736563444456596057313663403084944683282685533824804847779965567122668348440735386681961405981857282604992744139319707350292273230417849212712073297481278740961332268542608023026714583273306079962371447376975585882140128446311092392597270046306831732044449654997215010549288947337188716332988410275364161863388715939798059146757348485911380945945725305710589515120402228422215374752247195943957813715616126650307984919191038367596752200113450749477459827426498244771466363321994175271335442830193738403245928062030951211201516294686354918165328008757531860855736879727981804793511218748993805226171981399868520383652446732696299355772422504720409387911286327573406991192205296503726717226329848290997469122498432205885791142543209247122710986588298754374923598017772504513885273516573488726451515756748013082884706439412510751058697405225159575961117696561578017016076332770515981949865148725952822317102698938927887792213533812828465893404452043134967561025968648481596802682263018140601134335306593839293882648113573880975255456797455383315159855328719916602257425038840349339194677286070822595033528360973336865220651346019431679569933355979592424932809386718839013353115784153122007991664331918017118516295536099259767911001261529681938186941666428378626244903853571142754755115398396631939450943556295377677091970603509389079752740196968561528257751306768770389693279577330233771973659357033340200816199152828096706491918930580617185137438493591201742670273287902345823780222312098395400373159650868486648343603384192663383739095141130173879494901714875817055472865508573736194137243719984182581617598013919055557188929646322920776403319252463036916970351137620875946883379157858544777775264013760793367229573308393961656568621678793275353395980322767433285351257223757731325265619545276999534446490094898252655778399399584864165943181408316976966035416952221392744373898332932891884847307846115414362062803729565511272471123801217512531893531159018096998100687745614271499089266903405214713065407477515761372029729993576827454049246465464187821216739387233913950505377405575800266912866926264847182290928510803371500397079150751679570121838870971532173849328495194812824313281554674769064817108454355817496326002744872555745220289798603063021017880843466546963176228110945194241084642395235118233817773890637895433697207142304228543556546950314754229505167183174686190616572521240188317938415783457907197999194317049599559655955574005986353447118493498467267294493981448859333525678263731027561721796108498932226914893015622378736666325918347118151266136406209509969798014601440368673034970993659801537496119447203791868162826807292491394148763548542203573179937542563023639433347979894000967892376838690022796727509769273899566384332670479794225901054526276757522792239742716801558687877775288755842202269484047040007833141200722584646313240543152980716249846473559509620518273199602376802796615638003722690581660395589159906925904651428153172741414883830870086949279709065032850160103434384366064460699166285723229217689985305643848457469481757698125204515735205126364937511376072978685749928714522582308805207996933062930894902943870137856458124898749399731162456128803565213392387892661763101254881027492903906428012264594348213688027048758109896813338029141826999359460801140266259802547874092383328152617570401779397354336342464073765316476684201839745294807895686750080090360368507152173976170307148871338722218222579746806152915285272840093758303356476735951473706996389027475815716936933698896722204352872812902888039718846401563953208113449740876240930239280579997432006110303157005917889097000504351333807500681094901437710890345197884055546467959416702410337109475636664697405811285917910345583197168805740778579381885407054925243488643759916423971805200289532386280320433284348873604477740882863236130344413916654485773198800343789733712864756473553983701943259278183526790857355732363504820699588307282397868078966963934987033530107376454278118541273009289694707834521083574775716064716594718449482821218946473713303610604960453035000617003334907212899081833420502122755422080918575314402511538965320109921419540985593955642256743829748289983994883354049858040534317193849896001284090334576620241550185776859483890049187645602008227368214957159025851816002205439705358068191842377926610266973462699324499241021852786268564019214592182807182661724760653960900185272488353338954929936149150932638734888370788728888920810488520936399758605545942995331742688322276617091199161640151067257542815100056054222978937097360037733584877243993093054708571042884619321797988331507294138435873793806354644666085971230204864640449794141210878834311633439837825723552789766504086999084832435432177426936855860249604638340039931555027157511575978038657277229197887411606180058215767116120167436182624142775709991206569362366854312856008514357767973194216025346413668546725810864974421252315807816147809416327274499650729826103493866392744111134684760708081522740400055731455848576642026596319628973075953188738688788353778509126723536490219441644361157643441780499725521072610726973421839033961169341331384968510002830617784546841552642045182995761212393718452496441350727356614770539716362423804870390902842499017665051864591032386016024716898416471322481122607126527357724277267940300939998412832774321142526845341422258875620465294117556498207530268456851170854054086019563094675898949510654983006169402559610385365681733352813379679432301542549230218589513564414288089810759481739253933158257035431177792351365707965986161072433356864348464828827582688468542040035762494712735185679811709928862629216449433216721898563446057163595735242197636633188006866351849938701179913489960189950622175427377487389918691674332784938099818514147730532619007569179394514251581015055257736568218370078030124182968586215369113421203040475023186809822852381607306291617739058375225623262790536601756204756925629241450592862796788701630258535165645807463918492751360182224534469731582583476521758542089316462683596181595233459221204252296867856894207887678948266798246693066532533168375997308478547345467149384946242621734306173054601042763736190024139799613425311684932560572889964840284779407004646051935718183022675859749101036396270435462567448458627341546017271578514648925624012402337590586780570302439692796931035282293892080221513629594446329655736308848029302720376382736143668393021392418901109004107294573852238616039088136940270328485703027110732966266284866473685543150984847059348858429003939962878186354675119944207493025408409254660821726437386485634538739593821365517629527073973241769188162856206454118124528046615411435051788493238423643359820229972807759018096769213491475244960983042361378611182990795983228223514448797569043641568936246014300566505181093533220836392499268168892587565399803909163001178160059627346090840318718030264138036189507153360156844150307417705425908540258876062229535558533192197194180470862807913237267004667862230926419503321780494492401082065479534314096046149846942375766332396413584002091174385376700731300653129673811456308917857487402367885244973747455009737907312114373619535664506181776599714191570491116730496754745924220919083085124870555675361365751847549706319616706511599174365372746964565313920006847942336880463803226419128727171428449311241972627657254345440022677506562856871716761058012394761636875470677597545241650441326555255241056949675389912577657202875573295081895495052640178749897780482116014100468074333852912889087932180092856606533089138788521756549150051548705542413605704490514360740561026873707495914940654344329391965202103187463879920579703158485767310443427305254676659243665340727033064347610459193672367866473572179647817105514614878440426174662071545177344619601138473423898503783872214418043801141186851910523578875646499045528238422877706261943513328110157130736861818831578521319764749603870625782028884659923284693760110635185509570057777158908847181713407155731768492960484992708427868379681707630058649349480442896438168131519067728755205579421130519204511551312055724027447309147554893611664116671794777505486990698300692269076483426423295230683869221827686625755893291696102436840665720141632591520370558058756106829405545208938748705867609585972196113062675842438552104180890508090038586237058920294900287765515693815154114446290409258321360746452151165713711778743634043903808720168432136968184698496107083514138941529238600214250436102038168848594950480319678383080609991473007975328105660494306883803305791273105222256401905545596288139982165266467798680949839854517158079149592670211035644323894880109548060278423533513534467030462124106750398383429706602075915480441942250811546065851016676448346099981585532794945687000342309247761367448976941349568815914889866714821206531003006887946624421766530917244662805429806436735389129492212288583109305341874626721228400578400162259780581428203601432567570002495930251895658764759185695768743874099018681884187965680359053965203524030889498132171317919705753772239728137819368071908502877602564214364642428563178796686124890908043927983601286010106590011692115526385085707335678779631024179231054448372174316788519449484922721682768786460809504925170624381484479518482268672996183374523692009301615743529287679830482075365853984991120243116064975467743091306870683586920917016316472683020290419151426490275421789815649789648405383701692943595740686528766371540480233066723195851665360534656128127803055743687695102792931442475508399768570679008718284661533012731612942843519697816489412065123221529491190577785467357364468322866855747378559923261907582738857525370777985375855614909031209795329761648327316773043993023650510509235319498909072668186054163964039238381950272396347905052548356477076435213539894072776159328286280548534592372269302635118239997035497248968565948158958079734566272998667720475872918906009584452894293335903880256579246781426016326025046154632014075965313610101401221264895107821843764290484751357611327695937739956904058469283864411480305197140497449116248459097039032969449317476345306987335443778211882025622647600845901494815352408726334761688263291068080190882700792587956797725846737096102046577780407919166130971492245230465262696713349999417552948729371909546200731622489584053862777661407618788307512685299024951274831297757661624633507900827787611094435190095480892748189569653854960470000749434066740191667182466978168589773893757633367855146376454747032602778594468372112451189033211324358075352205815211773802281913429407918012308799609558106293155042226218156973516771591448634828004026911433288437529452050347540143902682552620952790562813472194653071120868408622794364758396566308321591508142187670985080736930517912350002312855663077409734575412488045801536298747915040162936645375772570289941263415907533950105793482873546860508231105168262484691529435864488223707012103160634339988687452187239729604340353554621419037659876842191141690803288253418209154307587788594010756084362034555162530760752126420906900947038225623049648806149354238654206572103319260933597062918798589877953604916753498067250262280531472911979750579392449778572661047894283731107962334434408762381756073359632454453037821763573587724117081775237098815303905215415057662255663485192902819743473146629615202836656986769008027988904831643697409625716162692919110027672928165707526688496101339644910452903753836313294126244427363002743844475278883402781826073035035046560062457430442618678226824557806039862473382153140344234204127953644888817498236023906964945176778816146067649842484728078435606390290633134388367698050912176513790019243882480310727389334284216826424758656775211894429935124831152806322547378509646755394427375836663472390421415427024120186948769230296806666164030252089619259903680631991319893750072117051956558244746782409286438197303158591238378385770383424945011587826694514534034417736544303822660109057031836114849125133961890549102548105538646727556918268110271339369149407844690415275061353157949496441260257532603400642951360175012971598343931391760118318847510096311520477995760485468016543668579843711016293557995472174293491248261624764892791870111757972779527567456684836916905418502879159135544844982034689707247145812706518368303431044220955404047366035229723479215844518828783677768209330152316308714770154802322764481924982885094528100741308384683390847147123260212608190820650131729625414537562974325651533800242559852866745420509302028802198164903532925991708351409112505555653654109013715739018093168097435342458646663072828755031545744592409563519260461330844780884222609166591883066421548708767079860997430940390249815041298268017467443775817208163564529286365465360506609167850244744752831134827490784547135502869678925900656957977548004249989278316522552134067417086395072205343880748706245246994742825095637661750272327147428242377061473099125466603670863963720581718692739915980791209887406329337752048694708473283419190521390236027884825170843969322768345909278211061249530457217926359629822376243707945240985028146793091298396474559391869952894881517935566862299085640914623461114553163425362457911169017320193803740034624030400039062685186388125398389888455729859278512182558641383571252224716999935473119664640745984768151578055370919583816856316103495443190476705654322956801293936858537098822320306223847919754333427407158505529750530727164872558727327770860283316270221233562302773263931043175903918708514158775496186874984006193610459546800567984581607550340411545714975734606137938829843121789155903107899307652011338349246701147362527742668120578426747752091201847431434265293852399495331422602496846793323932883725453048196802034704078366888953617473405518418347073127412168896428283948381915708109301294491108612259089297675481360408040311040433868327555313687475626931362473912929498073802702961598856627835806923117779880129547255815705251932685444993801036207430487905660905921889615388869066091257018200957333242329746140874652306414148788702797518745545950071079372000789298073141303179584873607186698742006082473063494410242694475500247795711205432690568837441856676536703038140860007382507169576647296353798452265928340239510026872583058436131262611160899607945859018803699669128012206514836525476411350892031000817397057261151561692716672993461329927505238494265581782910860476355692985646663674655484867925192070949676450487874152900413996923874705448739542994887324706821824095050897656689080442324322275898376115916381906990685099821491698755156781251431390433300351290755544265267039104025666959366856892722345082395476465213324192791206597297741320904018943382216796472577304431958991061751994659208728922496254373430211089741393840075593080595244251008523864095793179383718152852804106112744645874052109669409931066500006941611283051731886360919116720868518962168463331849329606942458503943909659231573670084395616693300177217797647343889628634419143196377353683359049174402065254721184011996314962176627139677260801727648756766552363483129809235238801022976017832029260653949734070292252324345921790935116581161951885931155851752834086780942145492070680647801118240392333969774353209412939404998902836738110480964721276213788906004914850653843793783926117453946791900275087163678302811291523845312894346236648633766998489012268760992414733056845526078359885268945559247824851871888115640801494801328056087466105272548226098652087188291425592465027497230888869163324618476145230623524836506765733331759133851538107519498612433896212267065253716385717877344541211641855959101118237829480564486482207478594948478488082541513853958762877477443853542514696159156998796240114711433844868681581491215983109272441126632396008273285413957252432427873101710877137609889832218582654685586192144618527280306862546478037497198004561237347288081579221711285452465504144745860610774674516602858415482582630163864912858976813251300524509694306719231487775607671934428977484083522769481842641173120249965454121475209924281764269643745426897374668057611745714522922756324774501536081842287300140241286993736336562714732239847047561385857607314655371299822189762061011173031780286471243649540526893616163355080884710614290293095044453888777129464336473412852322167363051568998002318233615995097258402163384122037950196314319037040406163089442736747933745311892911353800641305627368545457056267789846768214757679649519283830892000964261568389186565358878216570300037318094024743194012669908953246982449514875314310540004618818182838443387661320732509675750439188561619197633855720302290883326638308830661024665702059192879627160597455452334889767698100027217592801836591787279719314661786163909008339647923915114777614841770124667820636278427016919521164288354488004188909924108453458665939605155515596638058271952003797709819597824282636569946211108958343506601711326602097623121441893712441385233381581029882492800591749840835850000744097742850082439056573199103682373803147890691666104298196903798667722489859978750340007255071074706636650932516828112640239507320903280738015258118319081793023276227866867343877593257538480155054137721611997808208886117891441096920104332429653075028184767376361166716668509675599133286052396344276509406883146002572221974454701731672227501352593507242892829512644511889629699692282296579986919022885944834856807828852791303223716662326313616123250666768569520743629267161803537480094786742029645326873773015306702558008326421850648870841129166996918469611388643638065650139539903943386247484225956517030367746219226714221725200143591003321102798456632724345482095925551475913654895694287004242876233895704918117621358396382136480713278740789763704050226660801620739728015248694998311502915511095508081655779094836958392221488880975789684759435360776207692167534931671578243084063250193486783029390152622368220799971572403384331986635804353790524995505839294666706245040436246653859143119824559830973232015791286106018736868205840415303744003753787881982820183736905349081633862486104634672715260616911800855355442143227430147007498982254589236840685986457786271055286296150867194328289560694080064824780062593848733463997790244730632318683419497272491532260412149808323552082054894018534993406984871912166235186228013227445458163306514974272782311877923867222025045155263948681655635373945414604204944522045657110285408858568924648326739594743970891517183561037981389741626354108036560697955814366439367275156350371974883176924235537759043301061869026956290718667288217614934474811114525628579030198384120016317713320101521551666284707723466485249958406873505538781208429901772276265249106071187677076108000274512342923932760285174941122263580740120884704337028654433885110015267937408941826157135061023660479258142845155745074098598662307126646200747709118731184905785563421824513549458984179581163320193850167403234514494695079361117794778919160911352661221691989951966032961639500964407240258146417683039763353521054622927724086549224070261737613960365369209130668829669309703620213353849897656494865444178723880252525594278922306885151471942113041368650386857579262082609144904687774427968020522792058518984046961672752608387192612720292627898157342349327402538531965543636449191367244580292043025333104384778182516988208492518212431359956124922686678634200084290219807768141571129630502718053366216934283193973189676640796822468302215981876211735393072201012339102953480883047103931358844900517560039679223764400537027976358253765893654748049381615837719986049850332465792027514209711623575684983323805152825316047532486110195910441105668568580034944299119691162098327942485030859671302022042380989677940795914713364019332934435230522286976703243505723340521216792174235462396366382279507005273411725117291096147097658430819365251692184843467088270128385775358631231471556544108021605478841532722802609991508028969718192855913834371319820765419668978856022909639614795758985855339708551373284232141583194964497864829005796158642399031437341386706002861875786024401157877403248564889774312631248135754837207914276087413618277642361645439723804210193951080924901173753752276698591106641066233913095398713763562648783421640457867415119594650061749135983887734008201654667582309691530431417636342119930012060049768135263480128147165068149736398631199055265539506720342663120370906612101956232666910743837982315469878936469785213014313604168781566932815734181270059001506817423500959131869251523996588134072313291939943984234874241722720813611259629398669222319768464314715219837974435662336083872556064902827406031125911238065680816159068045112467982979337295029465877642773059770774617375182084742635438796305978252111603208583827346803465346903009530071044525167744295383038914662967538920309732644599667571398565294745019423565786557490085218247297469247040338007419276928846982405460356573335126060110047142585729862332715898334344660164626782178652582673530216021988132742331818495616542543885548289512708602855291899236132909612105407396011508606481919456699116364718020714284018369585295990690046153531854690316969109717755767986881018819361892277371893869398449904875300315783696069283185977293543227333523431498915250729601035186874010259306666213505485200777897395115993585421678553501484671864025221566742211768748417651505682459216183631018919152421761908305071540368380039314659902475392825770036395761895733171647791274434428326066638329109570229580352363726352419478096119958160994893452908268352797584911630139773087898537541282409395673573657560122401751366946297081447366991780257224931609132782250254368694003837120982483805458151621879269675242319659247017905573657526968428315792401528785418819073589371041817022298982794197652468227724024561720652776023975976719649858546415951446787598843342037449197296436343376624879492370197528590561331156807284386132285374079665375827481653964721219754937999089962466080338872932923850248478552982091020831095171916274224407135101046429538591091377385253258916702445440383402665999107826100966399063708104225925443864239883407377261593933642868461922676116581146226512183294546163550821564043012647753450140871567374270179748820668838360682589449467893786172394479742152694865405352394298110015025228299308851936973567355172217945103953612897309277026839510465907417171142627866152070396941299671615463932190047885713467968707506159031145019861822585144661172693430891119072683738111743316566786716827920364756618951061458257548718806561072857617817439394596521725013566116674248637420758876168029055976921431164639023818749087821949786500984193935557200464587124429541559880517258994208622248194015849979878362406999576690047451851468159490745869557108733092702695671165377532126621893235939595466454981721237938457819910738054125000177177136856867674498753861906423281637276948858333214699264696392374741197494293852050614191554011455434784442489588599771073653323004620074638066494113549479612122634461791702244552023855766485899534822117479444812273112695418661617926737098074742595458166114428091838100070068115900404478843658673765358337066018021076422104456149844580742712691713638851402466151582944365792588347388794725142306164383214433817959393060353260611490126164902565805798235048458149618174801623751891926145012890711050876907584647140587163858690993241058957868484308490598540433518118880417019078596005863579043508904374690308332707184091194369055198244264213115784542148784151879295034512334108400165726556894291947662152626651239980636916648556903034108909984749416984757241333539512605685165380030695082943009015244477422376780002851261273319362977232973752898512749013040557830305020992034102407977532471962055619168282902844964550126129317504324070751432125639555519284730220475720192297801903925748097506177031036544150765500771882898069312936243067205574726942854435474817712389509625426346525155445830154202935680275372842177222727157555014903061763329628767375107069086558387769277395147163274592029928813906329978698452281102469419307600889137352209437166303116580015615261044954732563995795031848215179857057016153427300470808278046977313250070562398726322933720244949566874619383109465139754611977041793648778223646307023174603243379603411600870335978544655629847206888646851352900507817437285731709626347708926685817847296029142887680402723667326127447800933869368824051130398659058285894292795799242884214330013612430345075200448469479223980426240210199030657460562828302186318551971439004715847771416855733347583750206026327018746819227165865101734875647631693350628429306827220380847539328249605147725413678650366943720936738223447710471556281341899036059480132757502520525636431203010688429237018049716434420660472893399814530922821973204909895010433559481243587160463289352090055488370264305888580756817545762053043435333604002283812844408002755488158003432869383655922274002325085826199846160966927391826156684595975787767166619987335930010960579837272379675863526067332148069562420320404291293639384067837034088594318142286920788102851053790753274550205751052332957576728949101876701003130865399978959947160116788454763935734655844515558840444372618733740491996034876514697615434259939727860262099311782060005495108051903536608547231916110735232817471048407991907086562381881965143083547834421230578441125190968003633238621258139214337277512639350226060509928575430977351915474013756952470081904604565147347221259044987050413353652784310804139566488799470783969755169173809468392128920010808536784905076284829440192189091406383863388471161761874619691773046396643862606588822280841388076407157562018858545879268485131767650982068156103819454437318726114084204033453901942788594384512712396207373432947033051150560410792651797071110454987913286472383647077857296789653047079572479816949829645805044429882852681416808137425887592213569184710452417467835744532663618621272545804350138557471192865000589309652228760998881934147818430817468648097838342595995385202167061061980699392069760387665432657338585330857807216426399530256180148932897282144601847467444848214226279993138884937406368564539319218718485933755665346098677608964298687901235655687091407161690814022721374884259960859485307875988381606584343004963509716461159932470026738091787467454133915238119734263777017425946467066194213356234488474600423916557191569762133810955108513448762145646311466221602634029152432390183202528195843075175300724363973572706722164060142496329811902287882246390721843041118143064035148941322834764628052622502484410731353884257522382539072776811644964992482547212808773122019758966495569030608888007526131486865944534088433164992065664531874372583338019942867920577176269957709441350079812014375190267850154496128792919478164673941829379832989007564353915917550467512964333326960011077404269384584050910295924627717433306851129494229743720478733681626908827409506342565892698765888601172703730066350756377228483245416129760191203817098085408076746519013035667077807921665972629010783772387494561195581662178083076955897482575204866577735264287177137555813154703679216395075870477287087022696602325799248396283172467552105078533242674708099939363580761616451003064538990341957499499348263626003978361223258190221000706479065485727747183270015060457921943070452167505653466916758714776529740159512564440128250851533532093233138458717977539295732782913825974935959048917219732273398966391532066149152643439028732226769246417154963276864206362708620491939140984223632317722604556402987993870869185996755352234876228997931238171795919005710321852376529446881435842925583023934738606838126512067409517806272253462097198100651944534075307233255093711456557521585740062055948089850093198387598079088275604659743640028992958021143899822052315969718422448048482082045789537165347143935449343976116152215566308408026347345050032826817585848870713667774843596680119196281039621951591115153590965951753259311056207869225973281024583405518088729140634358659189262068509363035532751134329343506306801742547176480368895781945029980134915710181290408056666964204563204466032094373747609280281979595537649644944084854713356365989341336462649771094860563427434435291118816210295652773661917472914850068411314809927147234901048681813588621537126361654665268540263445903810483150893865166897815243117034808842797314848851931224255265619182165734105239922760586095274450130776043315805892059941067509462665524128178109337351437331651618792995690098681832727836987304912404674148942545960609655727005714533755982944342663644070430164528045762233100341364115429628459143229335070044490212105186095127013205320802842059058503892718861370797985711366370757962062894852757818426396419945475358236951675727319443171689415023892955257966568152417047713590305541180548338913992735290798483447107668064517946371480072934457682339041091295488959130143258637106027303563107491051801560440114266260700656425611739407819189032924797332847314433091363044332221970545849235870068163154963356983350001527344771456824191959955485398345701027851237957422848203843512064147422027663050166808956481820840884303303350739651313998017699017145988856383683437120102880365863822784799096640074180483341391429109141469173584306542748832261666000350010568749601714908965870109273407947191189913366390819166630090860931999940111742043653264044759767991712814378945425915577094139761250557023973678853901953586127229499134616844504634415482783206953029461227664113620404055962877624200490850899922860397412593443170388775643197295936407289709455964907677018179584409096251215732820203888435904515123257555853080722294829754859602506685505121927801288002290881452843779796418380642000495713267817997785760213298337766032183312071587265779618589561503140518881889436078541459072936524025247368265312010990455119776987630606249274876684784448835813676897003429935834379408157487464810402694185720165254290323797384770060215002613918309095787019276609619840994336958719568894750284606982039560771137705099148026814547171887889481582517761900235049232713124707992201299567531655691080354764224868610806518238198234652746883903181745192057097383597870475417562000949961726302665183511299957669820012386563696107134557994870518185438435172948582252625106064265285936656082225896478329278389436789176116040032131500751399460857565236419347966574057580388376380684855227067727506794491563784738904234670558433124705063153224664423283392309059707953462717163258579498282970162627865906432157039560523841729953917262070716657448974533885698170937893866251236300768861575443640319679774375550526023744320223204470641727551687964043081511168277778599838734994661107492682556872498535431084604989139176133385898269609753664906551128756541967422967432264806315447664335029434130511784335734828756157002682131851897204094722846225279213340751291825619197176797892782790591941875300485944475239264089011108306449865385323368258160059449136613396018310588433656234997697735931170817775804330730032039559753061611589846391418806450674414334486666340577347586260554299082631337152658271947722531463945286717466863371819812492939250948495448478797947543040651885024101297079831493060503693716030018248093599235072707444477636361950437538761991488060136014948252647435394362051305369800500874293264926120702193113799520022383568596063152789637548697357573276608586723960164536528667441886197952288284151524583634415244557504439720571518810300697771079537034633634371471927784450545627113460621408475107961143328177783396500357375281973323367515017139390870224713372871599423739903455450199136020174182677729181242813680234500777573172934394744339508729355882890291194972790534351829788227520932211148639429458911342363685946298058191175307478051984135776006394092810276189951851602756676612854240155183435606438552292823922350228984447826377748876809116138199123580229487607571047159355074694730108069243358811195457255884062518216477111470807732957549832601127062497678345157597117809712128899910825188157386244974363426687851975750618128769756906975280962812446597626250821688240418990566454429625167977452532601268481747514376639779806993631454346243067587190930951403397393281991514962002654636033719861317431060337253261304943120753167411134467398261760459804865317552316927744356457130794817496253763556364994268477007128777327496852892873967799270385136993387152691951224370562731360642051933509983524566935512264889512779835873205852028360500289928773087233802644771205998820127777699319190763708708753501727426835013728100596145200884148857760077930746479285730454132297986260879170268347270875190426415795478865870887781302579692779693287107402210536788879125599465754844528806184550148419793554027582380834617607941247075529203967640553585036992052995473077810409470708564263286082386456779437952679898815765800400972233518400222071110602864521014553858748395464720017814143446525985094201932758291599324392063142776697510139030351613451586720050084550064344937717506038802162361818038296982924481192948448632156897035003322860179214275125321710971922476424214264682273794944588368828121881794014659372576312383914067910997649792837007968065033427085069148253900182679409302633978089142050893313014384800035602377815978401260134940134143325236620894194166708885377538506234177101707546281715256205637886269591254067390681843791067749143670475111154184952094373879928312857753711757044284333713610436228315034400171890151591684148094834706791103007253335659973959222493031018925286536691962933429292499582182873378833529186027877193598213212056874712208928140892409172515775527379163592838463544371040532116787710060550182908954369752592951055733027928597098129705252781925881744724780145918700290837040610040897563395615201878122822173377289945752395032299871538997693616230030565418592985923571089558556646017964617187190693132367797685785806177332236132451702193516917732306012779773226285122235651275721251860563474487416374642818247500096911996503428058517043355970011408905428316279945749026238037261387082409513466803261603810605660728108462811925560682022732962268552807708517409846625836831038108462946567004586840892384275756927713301274467578463331543662218925825634747602913680851665610690879640358015079866324124523673138562959992214894914912443095537296580647037755530070392865060798074256234659254611483458387771659830764292471298924533081393393014646767809724255296387808014725123575742984558791791494754758096917482028307284339340905031150231390452362338949931547339423604009497370110995943359700633565584373231982044959898487662629129344538271235273132123461841486200205262747114277607673181980103416652947677802223750398694229305032781427781091152864753267036595899874550911817617756497946884405060615372882833342218785319729217490341662774572157930686927700999702284293184009492828544284365252164413101192442291413407660361247387124093557479191899262409218725308534676954108175479356089352232346312125587421829820118012040159319405343206335943328778668379822023406173141865292633035121035983271508139703925685506459854859747366558545846566825945348577622511021224832391626832647302141575849863992040613030599016166212067620953806320283320581388635637587380981163149801655527528743777362121553375638251546990184803136658298702183116940297200928115985166285646449584034765000445217283955825597692110413519669367520979040410640244035527553337762746021402080074178914583413954621922743802959162701591268963458875872556727128554962143014060490032779605360470576805725917340340130523359368465407110614036972527225334344466969612330796600477971328590160911438809794480130310408916906206364875828891199017314732255604778793198455724320802662856429903566051348703035970663244683219435112228572587229521953688101280082001293311445165057232870917957332007915656976210177720932587409456286346907887723706918203676297499599659852303494355747521845653902996619192423614239652944303916438110401134222895787284680928210057706893242692174813215899958075796265533720411274521853480963804318134859172331132023620231739913221836811159759195046965859953561227204648356960098292533145456375509750390899303563726713279014336299241256499302646299876956510124318777362098757012110511106278526821632469035673773433467672577379378464615730960535109463999195591686772529727987632920383080895110993008597665328296058257481668951184559397737368895832566708832429851394584622575490984726071045549370756776502381548821579712124751549664256502407235069964980077970317283090031409653644201603871575848578312362615792928847307730684996240509888420819729043630543690815912032077504513954937704455493006724540010974356920687295529268972853459211236773164099370203947427226300124105048761185134708582753284975448013334290514529357550768179298182050800493549427857701620188615010095039427349241917025197092829894479869637095554750480341988668454614099379288333995027177022601434749169073684126552411171939500275140120510109015361653833514355658233794822687552560347712633395942991317470305197160244561093477457643011519220177175137148485642819411095134648082155551473402949597812691049067444933826093907436832041214519508877617866651189012889683258298420177577885224974664791353536430580106860061258356815176353627003490787701592620903113956672285447720215639738203843385145600731350083800190606569993636371575367805617771883447193122770039904934660608146552546360950355586716034805370034210437882888914142299070051763623258917099767950124008604321242263228603822259724600707866414662560820457297547445430504217724540673356090477461031748558577782412321931010461208581195654513078556225617249316037496670587969403607906938522096676076404313969881130626522849794802690616922753764193470872142642653861926444337634322029622669439265145304125900977893520148270884162883267915329272968573442102184154700261237433135127729346521033397861707906614038031165647857868575592074546016139788569945588795352531983553246763399497875056035592800386087576623804480243081200967761888638304956716587508657768526414266148852439049768001604912624201531122695383410983580249327004061069097202659654992533841775116809272872094834008897775981784131952140311857764022457047781699860117135206988243718585824157277291888316224415325704238027550856273764138720808231179006661204084559081481893842266691327041745645396467015677901471859502487041829065892459269336208396345925945179791857234804646823839865197516436937130792371735314485037585837697301146733472152095399625253746979888591927941962258527239739781203641657868675013493133010973101217977365762920283916344609068382212590661664942346165789851301624062810819077879003083841630114811319825515470116921254615767309868325771335955924872069751919972333106000913601437612512348715830408057902377161417136797560292833077587049509359684981269681897900946664071805795077380655435058492903895703849838135932962902845077708653359843645096289778437585829041803352493260392397388606297203283693556959977428917648013961063189173822302018562842782877194705678368270375733743266892752182048069733941521272637219099251368167715722633677795147176568772627730964357301732146939234596103611593843220014062407985938780178176557867173029330388621178480375343023658495066686421837202910739370994065605801682022480468077385495044384736533502033597201943753846749356399400631829709513205120690076904321793572388928853146592945976234199852440384419264327841636803737305026856744326215686879713645192373573534553946343781186200872616953499929406067671195144242204856543259073057877743071636130735883375437578239627695880939745841074572485985389049252121367405304552337856651926788707633595280878027703864854595797299330141920651757415466630214845692074242643887712534172298765554101516100843562394588028802980279859331084678572336661828976608467411727369720723010809447611093036693701021940814116647832159968058508831268373507498242080268319105323142690312555386863836162023863263878087598933736519885513905645308549633750729877769981356187893867863448564311882947168984699063574442145360136389205383687710326863523655827153197119851394203454038607709790956784475880707033552671930128995456924778271073488191819466571081193467585949011958962748858076011309792984028079941754916102960657796230150344693409871282210423385445277117593484679230549704083887467723035517220600926987659758572440676527591868845816828028240334654182243754954025265447465473918768601769208163870726814704526122353982206518664276592440749054286893706174600121132654466819751439642138465729799419174391439335444357206917299061784917728828576377303996774217879511821288640455223994394495432591664351276521970733830213224833656735011836416939375167735216922128375972920427538091385433309445017776242425341120906980231527881911701057155580758270765182055225971971005065624041972239226408355818620653845985499429708652830263869770725842008724228111466081433827385126039861314785258115063413662093903529205752298895146335986384586368304636666643644536881020338382096610501426074327448343969476984962615736577390590828125985856078012573030327137720089034331171230726839350082369735713531185109742121946065430840085777379972474518878959142955978199720292010957058724144940305464826204232450726709308973300864177338773833272431598601904521359581640953914846752887675550072478056860622687851353261393812962777279540616185165190871390126065776175874275479388262362042247039626055825765397116670327861789997148970416131257707345407114160004358465567864106664806382881202846435050463669346350671820836755593288264695967231798660817518692624905768712361722731576573330322154391015478635751084050824974157637750765286227149625949452257173843934886826919776493013199037347292779526748728759090679333194132670207138826705341534697931142456963945763640433219892815541015941363578743330060199441704540979121820755274517194789928787317866799606859862721685434884103894954774242653122377631830913082210846285555610194632318042429782092768064220036959410635315567978745950461878747256682474149655903610227791200501738797682765996860963652785770102279229734862861353018682465169578569329818033368110962959463561039540407947887197832243411473834542872712334946562086316810424315506307985231927968789222980555392563187200673411954717426610368500904634803986412027077286570825755662131521355841137644210858119355927628682723614971480777016589731015945172919629913163831636166011905325735680894259807625893236066194824381780330483725337150867924186151832705841056341005258037180560088687383444049030659963464472408818455478603600522105999308047873538823668601210705937434950158567250922021635237150539464568381761265595741989557029447233654813354686567243837720750036365341850920907901137900925233769537588050726023817485787301721983409239345741164576968164499149582361110015818159735189037728925400663284340130854876648506647891098982668716891384501287491155350629510499649225283341516362787743515887816976110085865079122729782580369623414748770683750229581743451605776003190755098184085398499116171167963453805726978463379767006396253316242757438159428608065983983899707572347450285319951501033770893469318356004874876757276758238941951208143870709884359430580945725685009315873695441682869226879559697480235892238967115942046702232801775045224946649061058443205760185452314286940689489178820644671023480567654139057773556974478957861448346243110334395284260706036421303734919566172180095812622862141152776287786167926585146960888419163259997532569449191310991205172740117401338039722416175141093600881047236193000853865380514821856420918440730130689134919654840585123702063667753285408911702876077202608284026525003151657097077537690706213745034349433001483251831320643161727384675490337597501506948886769874311223394337714173576983594594410001207876933253760272758827094497714809522487137527291497705580255198556461142888320911076449140212720310483376702041662675273640607218808246891357597307847832787285951854757938632811531437746499946573472479143758689606357464022902105226313845203795977749696197977885399936171753225258083054556771619205583938962112134710652033758520806701280145679376517720724208832977888099701793774021162535206089280128883105171795554061315853270044633976829912722573447208617046789621682013198294388087695996634183574980647025949344917323065833936353033684064510743355088925476666107686408632977840775413330703106108291463000669300012521666755343782455179592252854953894521490259254484672229045928438611414383916088070981272692077362050028279162204364051679247868043950420356228596524460568818084524718949181823945375547396216161466117801682460520707752365582835168084268020190771302967773410767169538790370059371582863463479893345412077530789592036277157171678772567718549527414942121808355445212470524383856185693194062611676648700507707879060163910980682554506574791273310400083637900565473181394520593667035130867289170642900650619651157203976236422508156055867024264536020555248823455183481263265066032837392925912434883480498543528807593014915525036658897887322905052216894650395893564686153148486479956405019813821316266937625821868677278181315455307526734199834883525249367746486536230158695083389556562181662628823362219428084239755953908144856898545300960698438451996428382350164647710346235581802432003586752732210139614775596431758680661770089477334924742911264256064084709787489034310500074372291075951182208728766460002065800206718812569455874089883771121628441633874270677009651184686062798800163980867612682603264200143972337607731096272262951519693181413761829001985931010117024861689008878773953885090647862533220401819749095976451317273666976080464096551409087274002010676296874766114491622066095274046361037969031604020098550315821272743869596443110345761609016192123240306539935187287314771548849469590717234610305727998906007392114339006829994250012436806487632265955616088023314393570045189870671353383955659358924913375392417988657783063464100724911637572519454822774729439855550851525541727146801096115182107498144532806246826381297843969544270541966442346502756372362365839537011665169091081950818646351365092201191103180495315884128144056676217111361528775818280053458543059927879487211501298362282611891706010519809213402938106838130069079061400624205826827603725923624611488954804568745398690782381239813859220591380464193074164423640827372595554325716754603693862370270023980620229339761763472970134350818014512980215059881172537161249677687734421034574568431220977047449454100741530435005451204416642381984159032033985258839434764383691257638398621168794142403574802350476809741231223894782002223104400430168637474875171654907647930011622712798652594742515711540517025443353745836705346574596156220831801121324434251845449524739452712264299852443256252388150554172751126936837515916817929597864642296312295087298765934822490714019997876237534921285341755645455970495397293259168317236264575473771020015073175946224782002543741756320862893388140044884475258102480629892165067062450321698753514968868519815456803718052577919921588457531088263658842599005654935911685224012139340674087974076291649889125825480510296017174398383859129317406492796649251374309390593537551458746690753747116550892813031827660353371557563141659360492549894118050265706538750529781449845642085611244546962840611999887759643153629995973401072022560562053858859557976961659240777580126609640197174069535087229697708846490224114225924874527148456538151132842519347454677278546955626409748311738409126561884433704157954723549528612547185372142126298808468627479480358722546617611169537812831614631810401581444373952770972004037870106649453251849430732502269574243004312626735142622305331391823189590640507441013964074332139318431472228584307685792214222085159570239017058416347402665700782964817194121588611909694602047516711364892346789410511796389267143554462966007662143936445032358800520094328136338236141381967044804080302295999513161114457222545276747129967455874076472879199698078343040257519808153279347805884384252838208273866585217646649527489088507019175957286972610665391265360696797084847080946951540602015079420739920848549690453864339701826358560902749165893881627231507739358923264260532592621630959019073603775522323009415566067658234236684276299080634436886146752786658729496112022162791011464223658303361106420562739405538692944397527631419232425903287671071602555558657489610566907116999391075907784807610272694773288889704924301146630534462750636187212736502208146530749129069202867288697897583092454029956323114659069832312156890645399068097729456698981910582054419250060896661656422475400913172546791940461213232781202637728492740949103357636258248933513032910010527923535350185018642457229408559139215108177384890918237689694829133221414112377383282395877886370623343959164020636585757157251387616329334713888649992763365535041337874749591477661756717980631465078650494391847836676304475192302754412961831447347692670649262047801269668957720202828712121673980919642751029855984469820818721718238825619013320172584925814228967031875285967199383378786477275966573889607856837670396811086626888877262913164032630784293354194908344436603769015492710031484937669696185322025079157728222723409169744537845537758891781921423892496064540510309132711689192590508825036157116465827041903324069824960203720636158164855578311176788982670634647317856527494135455791865735078827981983606178430375329300678059678026441094960468898943127659225887864039612545171858280783073481636774636658065481788804304294430358159319489034161521786850137728720925738526875145839265859660041642928999573368754993791723485700020338323941460600039759160383423426219226374524832872043107797872916106346983499980506126227644592784686079768452822414326629589186853751706918846570795316303559381651545014930981202032267710582433896394096036151930199074436058267953518336724384841000283013049836235120006204165877646381881703582580475417914241565821573985172547100983438511283741497763838108399402636979251454546883549803406046002747437959926060518633859857869328445504400728766345774792996346066150547183935546559410072678328225316984275538011096451467460219612093091004406408556292125472142903886847852908199714808924947706099390360727444612335576895374531152022012343082460216392221001938293535414313606228664188041715377852787614966230670887504710963956875801537227097550753785019506263111464844091262927240707709609023848179182246156914139468976509144163555389249380522035461904889530266750879520837462741014010139862493388502594552955615303610600760090796767083728462063767095414169437783558183576694915219350381674236316950644574367445956754887746790286494522391475981608562119471937674927183866118787368359593175874916986223514543709309004069085642659045361538862586692110187957304736433926325265221248308961938282545818195561530716124005953832667050603356491628527797463610159019465706249526320666869400413878958690980147989256242664356616719571384656534584892860610104282710681866754547019571550829812681343564824977074741543369565931279592049444898657775576941479252133129703511869098757296626776587123759105176354156103273421342784532840213867625694403853142776422415288877644432613925655204707355120636528068179198763445598792564010614828919094523308818359114930727515497841844192263852303135171765577646211147961071629286751645799940600282281405289873348965894875316911918778081397756837751205929507803070408500962310873589545140652647641122850367001844514343113198746756056850095729936053117162338255478788709625952898731919548581988682779266707433922562045715418943672732543392136265354601425961814354727614216851119014244649743469928198274595484343291793990151290035778671545525246173076707541289905500038350678047483887082145189441483163722591784275537494861684928197969214649556033349544898227448280010364794187265985552001974962674818791911346627708767236225166368936844069155358788259995159204294283431865681214656501775362622094193374925152405522704484752199273351204800186992968088330737695860063008294523405144550778200137336916632096753053126578335488609529537498214288496087807827277303157858032870249642403113932673447140352834885365121663912547371448275466387607394997007029344981178501076957482955759127624447070041130421675919490999053697087116255733215206278165184223803389217573744457023473573410045796974131650940348490902684657476701884977336556626439826316123991800022643989925245033370483634694674385340483362464119401589493357593230721836600828610371037073255426018816815047029320095846958048363158669857210365384463920590937600213296672574204930506742763620302554075339011538056594060033921104275073851504157285170564537986656601878713918678822097644000723883311440204344830534183404350998934473840423819961549024417437093175159656013153782262466738401554806709956429042483087872079177774499579132265476168563214780127884269742838703832949885143408839112564466171270598991656940257311458663456768896403836601252627213841174771954540478845550116755644382973177939329939613341529390789569211910311501729400226563874534156400184504943845056513971740390978090040699893715445685334141607512398278217371137272100323880040832155277066425637507507759227746288002492498553059342722100017848970481034596315437652018345280028492789418426350296076043637092637958030037469225030338668132772678259811223947500709203990102567907548239282005216187582848119540311202943775074880614647529116442899507484486923860302229702474602154292577841572399030807267170630127893810663161621891391386116661408191038417283659071799380074311383374901974672667782457274415689175655819732946347623967800136642864258516106225001764990150742830174935754258841348038077521982248556353703197515994231531098321448076969840427305001172805884047087574400171822267407915072284091198909650903977541465372697152853786080284560420983750202038139396135521623901399443209361918706355452739549074891082217004740334738086015665112877871467339556629224457530626608618445168972630304775287149399623683353141861399999404494963949059098655918303999982670054057022092164717622444812433645895124154432244616860547975974287901638817323437134172944162368611883898972065184231030691491830277012067159510245898097337330587228058014139578651192894524669934107546925254200488069846841096639698133614122783520249947460355412708504196320784306375204902121883414049044730106073744200304070772819483634268510049583433763855327077540575143400296535724363422765329116673669215820461287139245686264976494796218150390973383613206192758001802332954162165382338032420277212635021717131309340483573325191337308128342848473351150705842883516874232174355812152305608765484053900954421954958759623114565456580341408886624356528233524802707422344507308621279477712770886256136226150110347022795165993683686026770131092931397992416510989590462632973464827834563689775854854672179156561630895266367316686688465765310862801385406062319136823759142111553661616657716835019635076187967582701949795306895269761490839264663809018060699985579933533128602695680251255403502803628232139370121750018252515877784092957385889305261311081542519642040267075976342751896069083247615634022186926182812243153852549272261626238876472008644414628548590874862060822035917452056399230187260977020647935011002726003077841245040197283826040527650715155193200797734234154276955181707652632330292497342049707961109249290931839237634088673150749027570769243387371589645585315543127161758528308457339761195746315920309692341988066410826121271219625979890561485925575093211752913158273302578641994894411013599148162662983017003089551379548599849167649687543572786136175782367393337599536116021149261788720461051002276573989633450404433236452770340384086377883247527419217002288801240458395329057166162016485023389713516209964858060982517009569273792475506340323209925236891244018236092836341579526547692117869123992925385926087382706297527265843682100094273465797115684111102424342496642916192718904360323422058146388316560299900429952966643368918222278149061947270253729799130428728294311053585319610091979969252813637607003187968980599976275766919867378587889620364951656481335089093125920373581608190125561045071045084952251752714745471159061616729200159895620993862518905439195454965373401666683145073036094035952905019336040220596502689503196249525785162312795381724410837900509854104751652366586286174111724548290087869441099058371014543876791109452059247111654854489919944022438882130045290240674310611361279916914298936536480454160668270628179970375287004435093362234730249143142577095086668338298394236896197557623170318745681840875927093212140560650887858209007158288049990844993147981064437957286220143095007351093155970474620613036296468627226113193776306811552699925428379654930830588913094267246524712316565650532673142861261485419424055657174900853341690146897035448867972252197051168494022920061549926164973044312803757150216832961704341810990308952838537627302705377287956257013904479357918552830595129822129853209228841593004958981060929752558209004687003893359533194683049143668840650328793935932009660810368720165587704217300281666958735447595101857994628939431847146698433581816319742009250558494176327097161627795676163962171237144477482083928114250827999946513225359541295232188828629303824413770671986667347978870989651155473910458732039430404955876976552023656424102530248768328588313688076708690493334865829068403936699838394978516700062339071645192911036388961256845988295179938198383930121552906282966307197231028784643056513811709261131121638548441315088053427177845692507996246709076796122070271429191770227442924564203597230968475911507352883163343016577579889462866378146564097917730883049079679946448217298339486028138530864133857071219965804986510658208075869081005724480059454321869575102352843615503459280985610518357900384802093229447218197957135027139150983770061604146368286971108967850893707075982921882491307705272481638380810280404378176409796566633364667418875270536472295103206437026491400713403043975742543943858067273031436884929607373109929145914998804653556887692381125678192889561063620852192550171182834596563584869229990181611093967589055174347999283493154447618006102454682011838194367446582139516070720827395779287942939037424321430622801737008572063507208139863237462093953771312452938463721583757295549110592867065890952631260358775009696187380716040984115135714631041455757927337499923951213274159974151554837077130868253155691917570188984995952305933253328639168125074397720087870164743355100728827803364124921225572688927872505860523486652447938615215509883471536054675700987899098929858348748010243138167939585152655159444653540092444880749151807820771655348651182645903801968551546291310457396733038904303821422974299176841199907931077642487154203440362544681109528393711452776453921064727536795560655091311358973933320364611430656797214865601355152358025601157106818664704522298671734319634258597447464019997716077696155867815388948966421188153174200515270656275927596378365874813002104607117388018077969409461351016154972499314896380287587413656351774964704510896426746660289794187930128081273989787829092354801442505972052217906368632329573263189714794682821224464081610340116558028943219773452353511932151240755610780646899010877892824600961789169617646164728340004328382157827059226202707629814847234006322454439514891617054384989002740365014606536147777805416890174946313661107535357878138987786821001000189290685706483979463644980538394617971791868708189663309284211493837490091433155393119709510079976021612950081078448065263838433039535226401840862657419556392156348619090447830544076443569107748040494241456257215836610421557280144033140849922959558561273440418872922301990717865981404450452877327158030696459105058839757385965025351531869477262481950022651022556443461482600989610637969915844037981789106407331908605776587217220517107502264251666358362411944024402895555521017115956100838369283271861764516158913384874024535426442291472868516423751232145928058329212795806387343663517253710237205737157009222436307801336872005095027139310405597939625537637141922841327089629512272204545746094041947112899124281305203602703620044224032392707157531689471427314820823117335743637506527660140944153267029718855323087675326064893075332537869927221138882733425113334373590289085446388676253982726605744737722568491869370381617185444028967978047178220399744371358549626925457488701168504674561468204253833352095310937059949946828209008399037700114040480016553707678260609814511144420735373035118919621482658542952635141743699531635015651462649398672000142418748747398399730015277403877088377403409064394748124445596014644344902625351974313569712327918668111582405257543602003589754849299104516226185166722719100851009856522875066444114513063844717034943418085162138665421574779597425803451949873516743396726029259858287531929048939102639364269742515189312651976670962288640914941162473302653268098284381722207186213352473804123120352320918998573053624031049078004441303261564582235096753065692279964211370224072255374935688975068756151275647110253662718161050576604667386266010798986923948807728840561979256929564323815195799345573298985547002342363209241379978312912125406095648496783327033285544152529856686129604034034067111528580542239186732597590271239199955537699766400652108470858934445167637088962677527381046736227104684814958495928625862070416923519470090641090935146566766089293372235950643768468129914577109930223602165448280734626538225009861180074992161909138463695662276565000331981346601297631851446617636987400667174532605389459122974381763959976497735169185915834761637831520679862633243996566798018811142592990583605035707109985182158166356951423459595876873988967592717104905746216163440928468993256263247299223473319125868867809646299183609172039283435731562164277883857537176365862700166826094964344523941677369440123757644169581154901065202255270069809872964061966590719717354930282056051034501927624826721203627134040841717625269344524857426525542062638241641375314850294982204162867186252060939677772107373542457901508719451748997880143798991014409199218534750799619661275014460178384366448654253372840427887654965486581513354549607216091764881173040808348981356884373939112169162659301862683406181064675249103234420303321188195494905040197038129397771532411337897994238208303648868604238474789027204935354263371130353488265520182685992767551467225592156293030529415974965950898877013554500253410036435376271609963357180673049007608827420653087783154378521560149250438491241824671232613316427022041785214158440894780627088216744121282752640561277693161818988340290655801879879428575501300212227770739168846383244931361301380487527704227220092491323636879552680168014900368102215580280792223794364752575481997002817530100880569632370971498785084608069179767376454970628261560417727113183775021148994999683389188075261824603595801021605649352537121133906872386741870958958018467536012964195118574074515503289854926288633907241304364870573769353490826474316114022518980686743347435677767459626258044518031723039430480274230951517513149418041871207964528894960015327976437386981398117381643454391882656349713952302071486857874655175233246975564151157907101113358219825900722176491658339687278882022965239306985813292877926482866913782862957565986950935889988144185978168901009914152677418967120391428666994827086133462582897757973130616510145453336299907586831706475064898481413376153380417257961733790406006780655212185404300146029289693561667355228327767541787107378277661273252790248499576605237528667797001904168621868032043380323522725335562055159174185081132705420804813798769126942770741898648887429050189275842747136878715241235174327187029155888847319436389310017389728242926238563848997356598362725532556656553991963212760574446206121230527002185355208845882086204175412642346191607413517302941826872208271727601273613684200706098783118306583397036548717818864393182807766364886876186970951046592516620262495818169802922567433496749879762013627179080498220332595987791184929217971552772234059006361232376435966627722082746716415931777466189299984694560195451448955173700696017662337368536063553482292162320082456756553313560406454375728838845589190509803028426984100501862846616548926207218702175910891088557200533468008959764387102430934760033931851657686964654007016389354431388940268194205760854712106892137679360776758535003084081519874495971299554805913976367297261539019813111467768067148843996059086346669069602667103677218936861018364858400236400809867773145165973546116529330792388528744300494292407005410432371735918619169442709586254832011873371114967405199411498770205969371382629879622695698134302825617124472862404066860453746627188360315479155480294122866877250364844475515330119259953564504815603139127829365883667969174732142957811148195151287366237525825242581838020826284246206014747077930156891701321659854448862060070564324589531556591092849130205983292474645367655722720111063638294621351867812855302914911383988365466418728612153175629946159058684901473338665111980518900567818606721228523275359302036734849584711215391237928847108622348621310779202333832069043044869195756396388182772630903222040786253945876451537409874243392603381764174477067591182656289831589380527529536516317938736995500669363440973063740562750174431784390467917475054358536485367207885521224294604202371382322539617127632801387245554433681119059112749842312500942741604051294189051155996434684459813438599182516337419216397238152864288724471728207482715041065884359051972561061667750543332874734643014181082820007959041749161497084490017734219272053593671983114623439732836832903832559855014366355521834930537486340084069310527801000727376270727894426400531880123226794681425261467208324188797152468617393686429364568753826885940733985598384623400486639040724468106044070224664034773867322050387527829623654667243888859160567043313954844430774485506667174381952908997581175901539679540942641013268330097633831302632902827911853293912416896312698854777435797003848322154330353698777330466847566738583855954331454554410792550000523259637057075796812134599161186862515916165197288604447015991307677367917398106699609933823933134545106855390137166894342049988334289502894285556197154469674357650133199477169493152907338591483570354038610931561714199316341438287236925495703654219717944740819241214688509888098999037783190997279758027084145114186301315636673186405451176248388625211124215109309809129757605080971965693130960393911033214212356709994845853493988590691696260922588915878548779256992548266562138730149969024290579356049368487604443031184841391068143893598367359659429607055219838474751456236974553446259739377944057668866636166010375107051514571878093770172713499890183273923179539162531523994981443914822774433796247108550289396676634077899935464900405504266728305268961315599434566444153203805218941912403690557692253115722183171120781076283223059208811237253088976727031936533174141049619797391447000389142139357299219667817908780990967499253740259098208719697674992760347449684818818519788159509404336017195554607328366415571246607847276175399581082458567594926228099509513178689973469789680252434956856858140636696408042930930759091003843678885716144569561288345835179398563299097281867500256540468997907559019215403251251670829159134387791517726418093416170872444173684547714729574447540742073762269609493022331623712976661166548402494620582833323288563882245346464391324295881218240337392936868358137345619659468849225939195239816074146935858674107616560791276711578427904514401287332228679506115243655342214866955290632709559496407456451034339879820620493308202369195209015637228957618457288942999492534967119279344383236629371510907975046963949887150591358653778805848945820846879509710585966223893266407304517222135058440955711040109620674325566548126435307540729661180650630579922808175866494117245906278152182612907601660931999205047627093587781687267002950618281111017702376953886947576260329182395488688040310697466504577969530777505965920112568481403411334338264560856767340970747334463488509483606887378111353654960473859277056678878505792066063551489600360087326580406506970918429563848577348915185850505438080330972603570383550959402120332167349475211733075814395721068562955588499874583169330063203512124390766633240403062044853408174351768952898357370747875268240841499322666169420517659778788332751555120821114518658853907519174669019959479114223761800542813816086838457130647140534272229075492210222826250100508745730976433389639366762987819840078368807607805315236529116087923138971637747324179293845207232476889564675991636967629040559472215859787103457030159121059059722837137717020016263637300555822343388747999435704170150219474177178938919300742343267904621847221385644659119798431856358021620509268514393465400835531451021826431723707609744956061436015703674261922003070409658996004092155620646446171761645286924098797245778097204801488023265435052879562910390697662189415205713083160711118238224434765495333490717303381226404123408023900839181613328383623970953969757549459335091600804793043271273131129331420494514983796348031393221236521306974544734260021892554754597308501337776702548883304659494340384771269835124310319746720321299068811414396178173226629821727461093172594896725474269174632715696453225214317613358687885661240697520510502869692358097042015916005800830891681390617921611777453939772768119115036264658664398772175036040954986096286802561511944234314479051256511025606855794832632196126201511987748909620934964242103350023513031043790918936232503298531330425171931691577145169516451814175697484031981020385301416362073098673031855419082482071673343363598757072059292720419978878341969925038790449919440829680401433544746189984737844574706605243536715184888652110369770158621698064324586795566864106126735314575649668044953528641686843771945976141377693648669144321025094961505585690643608331788872791653048085349963274018027471385595139660559153421080315370609446576730966370827241801159130906446504598400937767588923895152172090872931261244753162886095754155170627752710613310862373236899192011770217156826680429736015808259294716427105747227638363095461543435532626623580863427989680930538800898676461422076066519935086448824315419896169294748916503480686733614616868078181187106252372337621993425146958766724494049089262941397650747484531201785941753134092849175576936450357653863688602088052853451065721590551927689110528207657981627132840773103461277832754732386384711702866471083873263046672381360227107999624496776816115231607030512577888782213941072770839655139421161728339244295329813926888761864667203296481149157137448335078284468564302384050375147098789901867412961014152492381097000936670577979368238794808231781270647782480582445355399888509047184701128632102996595119973483918929555015583342877368905913637880570726504276976140301778473446515288381638840047262550193027410522124413738741962375942551369321190708885152428968195406508194573252170630429971773319505398084764151415556019861383958991267118014814366748512588021629329587769170464545533688194523221935411886840644867421125990126767987803675727790328270877487414605015660803262307085800687695353873957420179714566969215234310631741766101569654859848307700311052246404137938013693589234200343626867897207759066588861014272445777826789552042734280771053860227136768100525665492459791220971206560592584648278172881362459774373505189460738049927949032703912550653453362689813137018393886706055773915522846210415326023579571654518947618008782719498674316493249239176259385456890280202302105484855002981021261596630277935714685285110984994652697924078430837303435754947183357147011090540756306223492147401780315660097631549467520816257193453927800112479698122697269896135274972690790336418562373175520886128223657857566931844265405384340110427231128823951969095162497975834727079542337603101161850124199094705933899325268971001937032707793490285516166147043998318253288298878502915415886277329260835289276708665235236939706277521490935030268339538338600567391298868061983475068500666881213379020432185645971159578036048148371179690544613012175717271252059973199650187988086336675451911127490437065587534104342818419863784932437485298942925013075502137184616755933854606896026698142602497887078918343013992704359164448853772390009540401723659229849722269769216579025676138897831375529245297881926715889852232371265211368119788778120645462720077237450304194933840640169623070716491431335326463437032092286278484065933038961625690696143714247003931590196217017592939582425442486336949135987422752887226577242331832825112801322039482668786083428251848634229747242376213098038378907199028884874123670044876233304807935591387647268093679132598059994462817917092886407659158174317115881878971328873562382945184249915332635196450992935619054818493601134493020532260437376646848127106760354337056674303035348943907180143920518786850912730173010965972546366459118341262241759881239033638500416091293241382970028920659777715899603233018541377883489182136331426290327493304398213013095529312973968266906289227854710781712136114164690611156161377661358542694061192702606378539942146079169439359245682630037488427858817310217203412813998225330600053735408629885016640905318122000626444308580091708430123644814538791554159284369795007014411153034453623069149396173583115918534718284727943652235329263594240444775148972192574460409114147969185452686175645550922329958579808695350446237523109018242796808557106491620715953438954644878711014059548064623692318486560204204932863192036686531110094852995711282670498369487301107816845302768503410633160215489863714597300054959849088622295614938489297383745046198713370078371352347288682760615956987748813352014122086438063259226838882517782295291778125503729236044409097330460676082876972921070306183219693454346349647277655156324626568279941319745836860728286014018000744971381674344046655777905824573333827310068447838364580258478003068401562366652819785302029203265274055029087226333849491242332985908085231253451610288633288245882563841500050846006463908007073430706199953201601566091875048227436480209322726690894485816647501310117605468293987884164535368885157549358363761297771880487314015088675576210632946162558033916518819439010515393692607164490556611341406065236959474566144562880050957583196710684989987603959060770818328717112503346130541674440613705372477202471635079844329188535551915489663239869182274393976233813770098642667916961147975656775243082328265148340285191298008567878611400147199378214860818871959225797715643568319132377443765644003024620090238125987929226176928048220264350070438984785755411885145079348738458742543971151797363804998557643173380323005748932281829438593357083184921054109692144926438213080173558696293480123339428543151933688105119403689410054885864201778014925289519464071893741250798121749639599514738044908234957637390050108574228333808994662004004449050507298336806760592613721238993431755642612522698512267806476771892541220212060942017322450240528545919471251573839476623630749925440309379982708633986804325058345270208505289719513983735388649867585691401030684678774325481774881592022386019913944774330909231135449511104168998593033620635946633008941569185613283507795285057872367889133781207678690532867463881217852329087018662380994026529132183433635150637786593848059115598400860344973451255299214713458565478858494029307624115692391893435829976114764953077626105607623550503630502298534791353542532461810555981743014708573697539683437804194854106417229532721389515292471812300958138258426211266525106215699217467977536653810579443281868041428550981788459312822424559347113045583991596138262749979797152481474468039086942814896610252546180748954437181670335103602545527492618402306030414520255953199505777761360766600169424988022696562528253513130297700638699343277747917930731328580327158960480863973305589000995086794688058857253270580958490081965081598020164016231112796571407344300027980963334951231261138147471797672475781552976113116609112441158373318670954485749609113454117910023875202588548548510682934572438918434924062489711249847010960044191702160598886970600191730794427397986000203265859659461528353263823967419022995267122926514936620062223902011505566810585409627552459377270169882234405778425518088389484242502459482854552813964873576922564610397352106349548141904008731699878067125466962812505452670272623912815844342329984063914325686961619242780508463223894784729876325193814042923717199752419128371601788044151423975128142928764266818064074625022151132529036215861633679652376250748362320031372832938791680987748462868675273213421807928635062225902849879932102887870912754447666414495753667409223073500011516637156352957559619643021665531085706548621580993556682285487315363413328358309847652353062167126076037815678920657775421063395335953748449283189344796132922058665176270432893354828618686686660040528885471987976198391246228605067210564631774029994976655725592098547190504984544866902413317587368690550090741909253379264928224703789656530076504009551078606444024107115169998611741809637904936901540343280795944041491756135593866246377803883848921728255633674577597167350540081204277068067943402724286647368201570121742953039127876110644323596516771594122221590165581302500430791291650935519398382926636395417668189926024897168865566083552081747075917608098753535428027449598098164099354538271499727436688206252113436160664146818430108272720290001450211571941909334296696185304345584151758599110750780072624178345757902726629053190890423465427069350141087461688214794345545362469612316314401880338529971163020702589177744839586945991206567185392710725815205478779638633416211009617959772513403384396701495547223974537325383030714688165212896422205108755635918016773848350758348755362362564321264752659084860127006290405481050653930532626116992770175537554403364458391339877713875988992625380523122786986824868534040306832527250898551556793096584185859314142900785161505710514737730965279593613022380793088340940592583211282053623701597763450323921886641163010749097564876905756709212997962780010653754705554164809724873410884281536204363714099910795530747775010143355451798429630746072823936429869649386651524342716539768019964446084205594089148042263880741179160186487297995346247681387644417097423127052498811878264956075028847830975510833752497158094499573486549616990603963948812562837029830590932908881929213586112088500951917342371943294254177918611050823596794227317169936681247878501547823136086002717457624344649150913580976100557927414709245834804403260285821883535068634071204126995851224068475398606982701200575068097099912664196707951045101328013679700804303859593055286479261538812303686901350657496061859547267915122609960792779018555624794839259874888942341313949949744477082812265170949452043889764937773434009568043678963158987960532496113313397681796657706234944318159203703517961114885386090301870937220343738823451884956315462745613932766238469276126928962197133945486123101053173707056816942160186356460412745459141735914876314363355041977867669062476025601849938993367001365698307899993918756582726361757350176893656365457670979919332458549475882799043137893660886028116573911945235249995937697098168770912515496537561760973096454423980568614569671821981970634157730660120774837145611947190610529086806437801744292187370723201019661936002794246795885149031732498625716112389111954874039343380258870296379619475660005558758611043685449368963377444162537893361156102484310738135570944145687118080308896927026284113388029734346057112446239894273611097127586646764221419185953720184992532315983049596579371855731366091880453914817675819099289099605449862076883306322517088312458940849685338662164931462537312838153917298159793817838202466800530113105786576516296812969274567142024520089413947955806913421412836612916191734688934599965380063569341226871672089319852440627734476726991021054936340171290679131632026892485694041598240036564593876213674018448324073321187765782074278814582216195600140821700715450287331918694962472328847431162511078059690864036762398990661895889923098593185141193142906915878073663595823559285775115333857877275190429373945313460651207225988267244074094031207441472796003473648911888153009220972287098559143091443187016426526886014564361685428332983088466977302576710128505883142884257423915584957075288882905862282013597489537347568650455960967747656404293371073313154324744385099722651801541750541046459477683559835569577924046424955996601627178475497565059960044578027443678069780930440781800108598226471057191238680542690056871110489956125581023885197712404433711797882587181892011145586722319183163855532164569163002755529349206052123581587972937610081556458059127707227382393992359990530860971689338787879275430979305583380938617424704498516942736534418396076729620578273580098813508117950382698717959625160385033353424781559904309004056469938666847409277241506163729380446460540544330459131259515736713800045564717204268575896093826794178415399372246862493983137306932537635890914777337392638969602718444688609162179916389059261586250957709223093415945355935314104065503479640674703835764372845057340826043034711289205102425385193485449133965259474834630978683245520491426332853895611864812527073519389803622270237584342682740430963912560214435814260659713140641398687529740573364554960797163469854340321690740149796768914491806474567233730219391002275507686431157501341882876843105976606707958954374283400200512257222042175055446653899401585623398353595589619673893950804880083722025671918110162932920150933450816832464556837124408743021069254908961587616693464394145620166115943909213769139621431589703500603601778952793083237191986740249767169378781773496135028373054099446061769830095108207932861241400824264506190437102330746533972913693498013350843398720789421304914402649773411234939994647929855978533913462439897964981980827980541205305784228143339278481428525583766203241505188158292512021319210249905239525913152246220657598835146196521630428331326793018572818802241641548427735682462524566076599150140407954037843803748686106161248701929940060555573868860826953366577590366526690708872063280729461194874075394912879423072409105923190404598885650728209907702097365070622085929659871719749334753016272130630839992405928086244944090196706652313493184929883579749661255668790895512567574018353245046359385206558553530664659382401105579196275760961547485068039311779816886850834005035190511475183322582829299615514606911513326933842718902220741242229252960407697223513830636560495223892116375443704848339010558083073802105469580462236141438713368501793988636903453150072542527366632784318144426016104753050642903585296814836125187535244029865655513748004015290055906751673904192436069380561674049989782769135190894273062619859013806456912685285064502581966656165564265891876268251574168245777870552863814474307784946391958927983594553619490836717145662683455601905445963742102376637617835790158992645216831537987937183637488376322943151398181513822417152918495113583925922101635799200603224159170376801433276288028327950158759255029615864443675121215509884009673337522282350477128970187079916184031562108871288184113568496847361435042303952561243606136837065781789568019011693073794588416781615110726334966339613399592187217810689853174029324740190071279258109894233977936636847643458641423643962799906099801010962019058599545334077432050570849831611115552092679855176221982196626715807042458784294623627532678676229216232700106468640267105129836048754504451453246374538937158307305625731790996087780328314148306084915365801498119298441056800616789188180990535198018090478228910376732415782883149040349883210379689141653466575776224859728420704541819228776870435116273990878413405013703852846679083900702717321713486847600992125354261995024907581873082926079516562331946162653557351372578729102926466774902896165305519501726351795869353105645642292425960559472384715332783781461109245097505417382810573166645070911953212025961616793098846065971339561475654193223865593026788141061348635754245524782046083262373428935381583083415845501879736771776642218590287670285475580156372086467692999799409126022298670240588215126874948412490648737734390758832872351784933699238071279049540230134168410874408639140391622057105284834264245189574393734191277147945876398644949093861261016055612075239777599514270297012542352823600330820875064175381434391663523130277619372538218507811640555105582433193647366624393024962512675093351568337114574384793530579358621945970378551557173400572276231452428580428211450849549592492775669197687167016514010808527435859278997706986748584972123282819230948154239885441417178577883525167907433077606056069079311414438153142201537181492212593874808689247042706731766248242646466424854310145284838098513987022458113475176083262282542709868641511234121543723507174595679607687993628424434138498011795720233161016686985579654775814908625565960875126303039300041533598067293556557576358889207175339573438592578445087763285844693424407387967678046978536974544784679862550190283514506989580049620604823880517497918801908009798219593227736822104511908267030368614409243173202958961255225054672354401556802027505733790506409079705962660275481166093489938141349483872482623268909155602059384455133222051714034396814791481700352191039999215003996434579088167017463052746706873976999419922713711214118890854417648715508531811568156202315284275231496111708148552317099422462709384920452497564418006468471404690251690140021952491284969399769502170454038496150614961012048134497397567837424799066199323966073013704836723350262128416388367683997152379519086676723781096300052895675469217571013250056803014400766808657998993576381908776174196580220131255251051895671579895873003220264597759582046884603289718496734487655315721163356464187155983004923510193509220738752935128749448321837734563496857921832378253245464102344784597579166000863526989219746097613558206891048118372417855216470709038065328097441838580199683973435227255600712927218893604976954288701212747768613361865069405108353829929577233992319931846563481868305477455928534945233420409955122927506476208214543137696697773776628418686242555788524100499864864588137371171201499125816220402797521214345926506897691576974491816060684070612832552110705405919892857422043975737004571490241693991222513115204095818425388666133014371476837881318240801759131810199560009062801614639964143596323982343184614414327902330445445427937435116160049615071435807825312628998459078637313589454975497721343715837252987796414904287895849852917459691487592477978186632356537292002111132231102623527401956123749936043838792036261590184664231638158689006290533443735571144821347810579944736485054111227337227835584369499259358537184521765297029832646524656802124341565774117329266933120739850440953604415514988502103856841401672522548527445997173022579210709275995615496495162960564271855266512315539137299142212095814808669011279056906160301510811180410329929698075918322899454786201441802418274913031283440501473733644072011537963995105795354073221095901185723021605229635646140123196282760923394173634549383897623450801191428212324361732872723889763415124065212091414397768274611758174984646859430139344493426923537496565389770664884607889461172868729701309415337641668310691224887623437908531307309323424810041711068697396473828114548199688020902759813994858490531148266419513361132618254066410864623303140581194174652488451040025494968841838736075776622713187742175557534187481465415185659125787614983088924994915683158147150727389973236774796531790198322375565584459353479927661689968216834891854663686646567110114647869856261163364646430663398695269866091150021023872838279821188736028783978488481955458985751227272280439710259387541205560782597798962412560374567360294950568463325879379711636998602425221533924776253168650125331478697570924976858972942645704429868905583994563879850293101485097646358348804640828043878484269925425720361908164210238105864334685567442055213537455743965703102325123314972181280430407510171244345588166664790670020376059334659960147813979559316234725493103168049939659617084377968346646863655473191711390471491754942109531053696703725864882201524539251694847854846982743605672319551277288171525017456416022519563754815996811264233368527741089314926168242751934725585140726540446136133567685441167085740253266277652313820269146622781409133275206860673802119453652078785918565182417057505041327503334490476541509583100537473229732324106341113729576642165628840396531949075211424957749258878957882731271740754599392118873780113104726448258034181847076010169692210496439492933374929426211719255416029142716919825347518729920312101416132694997828040120344719774477428480870559732354060900184817686231826329613317088653908364699020577267082432403583964827676357298118118336793161942845427392085838473088874586813399437828823023082126924900361617487045853407873742032821697563490022846568089416445372771858633740693288832570410981201595961348756432207086977944267674532315934515956248939428567793681600940617225729072378539564163123378374322187251436758648655416097904541766254837493871499681091035063815345692321711842827668067851681187741703086310488576269320221590533578336238094822824889887606669993782822942176477939438929238369964173017465690226994544935378454668897553697257441826795555110345868536132534705242034347724474224326357883920873619663194445831482772615002614905428251418778230290829888698701038177901501454633105105140673486574366765772882170745866116532758493023122741226213678436537086135597767900180461663367214644018303710533643537805345222091969155077964308651448832947933169700170535939190147631028860502270239693364080717240587457236027387892443172976724903266183738349486418835479985831044556383667973739310606433503745402936044019067129202247984654492264660563705415195070658769722537054235899406271662241180386314891550656468412074420706465435789104932119892795418328714139150439887460196584120190497618180298309682227492390994119131512665907316186396474878820058672928694787887028322070925781807370868844585163320189973646938453698312506120797361506180889320741014499871158562916919114979592201891493414480216374539123064743419709684705054662897732700731070409293811773079577682860494541663215222576558994247510899931742907599303277647749463684141223565116173079616590552742586379985152736346553025104363160442362812433906789582316265558379212300847827309345554264724921296275381900804557100388534959442625521488325256449232692856629504834827227494449027477115356506358032869706222584915022671911653613169514269887445315818472002368199033852087655789119124671589428266334935755949597696174599011516413704992232689761652688257544175605148183726660969199188560340690364194515132595109396129940028515287714980137735082468745121384392690324234925057435864332821554873633989359589333656264015287137276332116765851680004378433976617226930577073517344678872481810257568567028396284517678724064105784837889083399726172894818940201754671395561337159539496799960135986593879684733154287944994632436295065993845952482085329120554431446541687646087242747070371639397425902273155404759438717072459333485343203176877920742979567374805022392245927191467265841593924010063713164067622226114723942935040059385039414786202724263828629632467167525774387598419831817542375112771536115688827758394895375118651857290659006557378649359286568424238152935065879836226021947655919341251094989428119789824464477237779226992616068776894827415111918813370270377317013847249300229605613089045793158090479610773029426542331163507491293964699708564967345334253295632600339946882625110468390605570508844403928689864753316218819387982744394603360533969774938044381049917140786686121506626996342700386436869264151858030543058919494438785055903359941732809103110241950025983863282189142157468367206772101717586474517830364766537188700320833931774595803818987805663758174034096079955919905744422430273893872124265117895038257104946957120829668070654012992120121288120191298573694802202770090267295120827105362772236699998936589610707182165693358412362722534009521389195344409526924280158845403849373895808245473588208172803468252345711414003370591965752081973589746853965471671796827055130397629589542832954507475840874074259406834735504752414197224416706816198515134572024689936419651397812601192952755100229435995600898720311901208751300546560096501271203661997391865061225469770198190725101537748557890842966951302706984660150300321161417497645430454060789885102461093912953414466262686578882000391479782615565922995435241793333832133251252524226666061865487351353438259000287408536809172657173880180328206470165722563023426869635535684904375847434441745912572793711383872694120483970515077778486304473143260191471601540619382648287559165518009592254541739243393094896146995244814529909386548435447487572945382084728407887005537668804977265322120729993955631448324316610842321791084912237907603516620919804802367182208493930218120495511780279846338141414116591269265887438750658917151091305188565777233914266209592374311425519022326155846901343944545005006540523307620199682365076331146132924401420726260511321115373008031336218200746764088997231024607353723453940953784444870767374439442060996500015844404290257718915884289839900383890265134946969968887819227256077485251929111717198241625179197284232247595635394169378181003044151414593560350687402510354527220096323690120107026188389500824345610983692531207077637550432251682057143455653878222977050803376921447488560721718751789593152357014576647102105385004440836680944527271539411507664212607827310418027333433962494636290391062180078794438214633658282265348987617357829509626273442356618182913786325073667833875971463710317581823295991014782365360431832665914817099355466592939301805323920765770391714442825081578106629730378298629945415974099489295497753958379899019609523450159012560229426957442256559575041807100797238114048278503206434937425055066451779864744421448103381385790813120878240342938337287323708950278617750836693605217519436617873594635508232595520972724397990935216632989991042517966694181356754081492170209378361365972503981293893512516164368389669973425427247113934724192374366619184449722795325469038178627806861110909400911261448422942343870179799872733648827456785401737812003717339295908095713808712561128210926401193031251201023104573597751252518965017949180364130810322068254723480742294962119004334930475498436444411024724719337423134384106095301858568289193670964166058477323870784596826925097914301435239919941705732987481470405594225878693635297010808399473003430987723952445755856320767948125193068245465089642677104778111066402793589151597938559955025842550193085043125314050441434784879226752740551739491506584632066240451547253443047064098352786388691016023375072218821781755573745061161420291205063073877545104321259813560072145107765643710364084666863738821441737359505754313653317145414209503147032231837572721612892089286631686209560993494367131308173018311475136775843627502442921919569155103293356469849476160306508388696781656845461936879568101423907575858871536760863685965728975632939954078804441583369593766862182822558473212997130251121769125047778733678162344649656108648485584728437171429951781594814794657670568974226639729913389955162307968315023785011459957512090000331938644300178417348355011572277598588830634978406630678896361217016795032742161941160936896049091492774147394038049748296366411167894336239515584918865554612626965859515241536284909999087905246538503407308729034596978634385934394844914262895551327563468824733444531020734137303266927020593222775623428996125694649326016398927262457519034787996291957164773323453028661096998243561038164236314791161949667876956020671525466458728582095940269449623579329115448194184151857043303619834277205801087364025593160600379319096887428981919305072171111229024852603425058522731904216576034433777302223675980333888112155873845548631846627044882785657419020447727647536873855615771482991833644604803838926300315784230181480899628381686709706358494918233171016808096167633192718626897812521592418372538117410467547797695403813797085247485754302155940522079047918969359144238638041730139372709945527574616993281187862780617810769530095976974411729980581900324439908242231434766543454225226924713998322420741238299351441524605009373108910008714327890382128971617779614444550435757043300524886226165667513380786354038727373317272549057039852768087222942048069116503185266961532626448409150355021001738778705673346424310297076997216457745158025085595035956848119836457323697226901975906682802798307859054764318103768118671740854183759236432105155072142290619753330619701842957419337719243833815385776675103021183920628810422504882969120303048779502194889174203245484652729996876592969342213943137008206856047550276395306502625743806744151030985617753042649374863421885950237306465466793183489968591692532671510689876301751262083983426662100378855747095422024635144329510704148201283072225212613518501124902463318792327797890607129593457950747975256613977641244089039871872639921583671815866342335378118225349203018322765850209597326850802706701709652891911420286831900014204562678474735689614119316644422379326370550176706219310703630453331643648887030623300643198594860832399460071766175655397670661704911768888838899300311973793637577866556078397969442267801912310384377975572091124997926140294242900946075498417220281559128833089406126524716541258481445976725817887759876294304628695498806322423001057156885866965540432309147963843100135621990248911221082095288245780629559021872886061795653185627069544811028688170094843480532719196975249089747616568497294581643547016672420732489966350063512733106858139398041214683545697265058350641496374229560639938538261613104070546631270436956972542136852654440350968250023136051326126013057834127964869955979718911202291055725690006967449942335081892172151432818944961026160037235880713952167574058220993751105482492459456640405167480842646451004538359036561590705744556618135192037343656458974651528146409582641915508660891645423604791433619926762539957380081922810502870826968556794797760169919125895403071862704753058983265327822586965800246939178145879967170719140084374118402374232970385217057486893111140819699372812332705968824780201762573120462694796946682754245971198286420806590767820277015168791221176550132259951256927430969944816837306054525176574547100089521322131351023766511115285444904266502138585200341021082660651997555550898790887234070315579260256812104938542240763728755283314079702019649245078307489052018877885376381659600603120638106883474277701128627540555665632832911241483942739751231950282589116252842904163259109679333119998207301351051282231455921448639510554705181939208481427729381022632032173547127231401191277465880141312611405537265296030688301617233749003471383194338912244719407762287096986825961247615328386994412461700868665076973055140677353514259816091756799896612046159030222285559288375991537174538473560673855366108948367467478896991004472345489154872019789912951996480023166552692728860668633054115032825098907771484276715069118828892827817827375441626903742240200206096520208218237342413399557079737131948033455551213900212210288174409938482329065801254388137351518920153545944913586378516320126296918476380454107056991925691974574259509600777867495910183947223736591310688621743062445597534182921416143955703746558645228662304692350488145520448652851056904665792919249314199546694175215312901368018310152577981648302702833102038907472176243278295664992353698247033079761681034133978959713638599509167183519646306972635094454928256328617573705103390292613764331331251528995605156343788528434164317771997202062771000545141061623396904972025507839143075858200105116951168238033793885325054641641160276998471399378979131414770373461722557537227872691533057830434125237637659829835420591141822659587107763905315244155758791556019085254185727757608525681927127037115489051468548928088938944641903120172361438793220782100438284849356804387399754529908281209235509606162843981310457586726602673550797789462315174178123859821188768252115924217793105012161134536853128851960096625158606370664292994626795857952898579751952221231779075401394692661631329391280340772207709659796722997157531286856267502871331198183130846717186366589644966029154466532635392641235624751777937227542671650601693991230547281946843610912469734481051768641065631949714531923601420395265904336729381603958735364881168095329900388713531107810727918741924089690046036210378022987694658115159678602543493976049423677322755962219379905867887196058503590705036305598248631200787999723620943274136327337174376799217418550000724863086210091214970318467664568624298274585102819593659332242887422960709584587914642281806024337316728739431623996685016165989913859979041574663557788552980993466980805744631076563304592426338489578145394465526214437287070359472273925154360497496959225978975185541988422653828802330061513627412561297381210473162580946783870033431039770371479302986910705170235101393186959517809723796412497963507054227784971695971577438964544813275455922828341167986037788148630690236583082282181914516437554705392377894772503806097046271206644545457732270544118047731017182859754555799682512119326000560342172253601255681645135928967394321075409612524932905976828366080026767416071106161707104563506548185809067784955240151649378773320030309184002006325484483626676463996199992429179500727686439550142863773540632353856093958239747014903049053153511061730616639205405935148809169425368574531946410298137866232360407279301790153406072406396451533560198651215521793051380437522293967506622905650844210020213074927134262180290344588910840661910011956694981105941182477209479022079065547235404520480104451520237679881952164961784740179188835651950094424282824905071062067390161057289117321479072342382399789339095770193563839309555097293306150554936645601994277795699403214624122618893903800461006368192266677064167308733059158440763496983220014651493722095792080810695754063019824214340718747342007427846416745451021739877268037400659239909353122629552142117552132637991560104254352769682906149105778962845423177537671221974486806379277049724496132932470694029957383868864885587324230768672933346521435799873670082601615308771079134325127538098243676063071884264095113701066611458080185107455706761751818301684555798439273612284204679219946389078692898365825947669897194565300387508343479704004499958699164363439582841142919320763809394879065432084420237092413382187784536113695266488523004950090310993010835292080747783520708297986895734158356498890747020718104216973210502995757471114502166296367532442242090547708063873043765236742563149120774355131656959159864528005922164931659104811718206107711697825126386154452522347779058233642579640682148301499978840920978216082343876140732490377218281975679232755878211036929040293266694250145169438169968210133500204718682173400633110457119867766074730363773447131150648544150836245797584973312911450080301356719512851363371384404049348583577889695983641603944386622208413044869451292325583522197718147926329388720866636729648856967570497494146602281160810440314665762605181147828881221414118085150289124364399832929262925404570883641512402481826515304223482026349124793796611836721144102436648412298943854691526188426636844103903740884451301037292139175776312099725871195046550730973238244011532687585387489740917899758581466604786272930557335214122730603147481010482557456956823132011185464136281593427448667707433816814652577906888451685033483706665091251606705765158483981500335845212234899730709129294267945336120004019974248314864471756674892423250156400416284324938158769428813850607665335982676671788986947282875183598472498165348994697879099109337677359797304137664702974033527482141440456751471770909715585000426398514569424219855860744989257565923519299384795855830563468554751786441921329258032570491600760413733350481464162516643841293642515654100516152362632896099388711812762956376454270885875650033627296711571956160636759690276995005241146723509345184131466380370850132635499122812506628279712067332149899439731995727006968484057201972560143999146429129692406026352282940361605523435700083219497001299733720669961178902319705540345041921691703996211523353303087984268384306148824497596936062332910118035340701212605700599850856017615370459793973855573238170861675584283955454953033552728967464910583765947345338435152907668254933046308150370355035669767708246079915929606249933437485622481649354804238869589760179504424513395340389541772876199155663181230876512717387928782899820136570040715653137698122531213890745819741658058248454459780437278311564452829673594517294866737230218986098455326275784361915335964117140838151651539709619183308687833167929411022621602485935927067924759676794341958408875371978661832402853631874674470889853042346247973194504841278308925716159578136556090697222646480249070849280501889160264613000645330013012525736283345543630808520570374247109878665492147168829216229956703815524351769311195943924708908527360006658932412164473953516722977804259726790332255360488305638942051678664436466641656273042354135555393869901039571943905862690866233514454368724954368061151891613560858638340904634587194803558960996721635311961422288412240374222536290605063859798685236506466256673209952926982524663929188064787091833642871448950295208807382442855780836068912299709103933035581166082854121890070936617263832214398858769727489624884465080471015256094319124277779403310734065331355014864926873989733090371607865909319235537718752211792996914546291637958574617406981465103036746246086012434128260543330264646200756406496914244054329426096476304997600326403122129633414795093291477409054724416006469624827460377110649017362116594502805952926942885262241292424764561714005243770056303994466117020527114193755126636524100296802472504745341033056626479968451606698085466186627975052237594113035901377973521263536072420097950818377174906194435261378834847328752479837605727336539475224528474265522875543520413648393306305524899720126820704397152562264336737117876083672070951498486025210829511705602641920568441762900318774445568961844719231792106534288865884282829658425452257122204233132957573962035592462505283105314779925941394411747601086394466401034214755021944523409480434941658132843124713083647429087038657181492296805696731055541974570203975056587443472863607363173917931955798807830813458346821017945462324010309723672971917580222703710573729423394712671638411136715571019148105814207753692773653772204121579820978111919878114055016369606551459613717737531196721160471402623923066692167375340122841969224711211936838307240538069802816877712327421559260523976917371891963317852622999328393468654970131166739493049607173295412356682345764183963019175579387463723165359578937457472561578959712392608067664084306974946027209756569645169372136045807932427545790330324646719424078053143912940368710660331477585276808519379153413123434458602306662661191086987554869936333890929706776233989123816520212091918329716590120101787527171209437841590713830637156208547335998893936636446802917601380767717807902242837406397340833169415509516547579877283465421169048700264243072403275114698471660247600477431498450987334576616011747220976871281724847808794835737735451056272354467605793874681858043631787136530084421268747305513979290165731554226928589666687833737745793410181392382315666216538706199019757414809820723801312845187383582754351915929679997329089209697474865631844523224505265604608701949183953865368598408530220270468160705010460030220765411744285034019763636318373951957855539782769280491261291900027844080414390206536541428557565934827448985204209470848787480412324682030664372140370593453509419152181990841701449093588253886525615632000367066895276396622437857377580783902202413195066011357060034043341020251322039436854882535991202537268635630300065954962614740191554057777118303164823279682655227465047219280578547753779420337191270045316978215869574361793194984847261587602075209596449252146417757735572486582762123428643227131478603666490048971528906271768364879775167542196260441311428137747885175126602457937476468450523911839240532083786940645167223051512654413514792898531254787538141183118887043881394005585413235645357084078134274841260691723506531767758417675839934030368024921276767272760262998626487187717399062723664675316544891227603478565748635670818673018132926093704445591651383036743208590811974960726686437177640467986741694922158994495700341741947737703261760438074008872872909656129662021425776205558705216187049117021901738039345172242845533944223375964909636174501271231736780406897211781208931682695674555675834679631991537753507190252430248695896579452668897587185414827101313280299111986787013555886762348091805096650630226242700734913274076921136618996365431642663078247251976681249033381500300349565163326244922566712264954741895928735228442886672655744385450066746264037179401579655128117707170182707901439429925545333918540539185725803672091178539264444810153592336576673645789832751534598560330006605721680241951004430550493916882527162450220882445981744210520011263586294343059237598558832815156615837367752074193099136570690891023037513752075851277898731950649543428206856403878121345709282251694083813229518374266122812274976850863624748537255337313920038833950833173118416090432187227291612734327708093995161556587900983287416868510022890843226199756671567457958494174763737945284702683899937177569855015843068117693839194451584148386138679041422611875236349342455418698127913640152654533056513445463773796522989068368566758784990630425796270720553638950188814097748776989752236739598193488885353639355110682516461973085760999334016187765865655646227245709720336194888078784551340648918684239620896086870618760983638661672957989391035535348839432522386557589264262827127321664575073769839922931483387884172230724791015649347386468954274014191338008719738434299351700171608372266392458513430772906449404264163367418597041029947342698251811494326249856207997555939370171009006558486675566386790426671419891324637238500480992456821918821503629404425190043721771677129392547832062494656416667769253682449544115874010769672351580643022510926862311818687962165094637833556382368777204262316183993237085271977110600644056577964222423388779398246963367735631761084557769113010347111194132618627817599798854704956312956170575088533951283059045625947686913147387268197782688306969147704726072222622631317295539000041530720678188463511827733090990442780300901868093403581934040449316794745428727912940033112064262095510148580798187766468951952230483681792779160368444934802538739947437389481191198851004369347980078244191272280562927548956979048909207174188918761909301324098430052855950841323333556499306227972120199390522797558241465665742623467820783393229561540860951614104597632695233831689554784593495003636502922550526657223845621006818043868568267444733584208744343495860062874172395608792712020620936517197122899175739495682847325685604698928761959332547833161744052727241260683510205684679375097475398463360461670029855032730978558027941377907593025725578235772107372898337332584462698612276490450666421755684497780203544569348711457617283488151218986117590788798516223134102749686514970196278857050107975853062629437836313295321717632173077616997448630944948265123695266166844028033932821630311862219037079511573095048452489372478469109957331928415641283201863705562163702785924458357363871500115353911239544500384099201925712804657484067050103873995040303152903181288078464092508628391371202953876397231347780309768382517636290284747707163979022963028842861768516742542549600869269351333234028136263978720054102770860108234933405489282464590582321776791321853331262175381069367124364915828728635032917662121501924089494691601130453714070671136201301178180870249961616609978143269359205411706262605747242544323992049347735997499438977386636181334429099201926668455838464353084331208249830114699696943154988851615095244945074704087659961583794980407436530348123597560766345026666052759898562496021370972586906159625486619870534465923967438184483659583463281266767190578520809688726012450455063027142334510503899815564096764968835528771880033048787593769827641982866475377529736808911188616894049162801061651158499812418499574091981695606063855489267748078035007309350927298722923457529087436034124205478439677194702670012654034476944034528494738147765459255587776789368045520530037458617879725905482608427538852868669842135484009201151565789610925753369717228517148350058035400639642366751126993650803143930115499627706512267885619945329658238327888684946750294980100479266739981035395703673038046953609218146054488297932516865736594409917472832048799384108120481788916503564909950398384183369020900113787024903683445311999021675235803478254384427040904294244312458673310641400982860062927624244992963217308892214678932404568894917719679404114484561883869466721984261574234581262408543750383991170249068649319402451857683724527772024087417001659296023169411203548068446844764278058635616836639638782570920256263097129894025595055374842693837212799749432211629423372031389775873828014701559565369716226300479171436283441180429762159680180614643204209537254873156114098945404039874413603724649279905686421906884866242973114477669803536846879670946211506258434965866522607294493754118988250357794523184778044267432950304332834929709919852351708253597433229853620208528468343159240080608584927814591130897405429124112486652247951717771014910474716967727298896909124944269002906359632927903325802032045570144429631478726967552240182860776991039113744800901530105087837618142881418067116862736869770366389291589835804288114264664327753188068184724188401743502323195367212239268714334013681024779028667886702533579116090285578362560913164182083205369047617315816860125585608043455847759193671851307988513210177680029739733396321745892526389978947584351933555706532540355003489570170983632782288952547968167350200965414831681061026268529570817529392527500737153178668348994237628158568030124431717284640741300899277755576312228966479890679810762000380165296741067263015178125174471265345494622303190745309991472672651105071695942905248295989442174391830065762232091129493172909310784792950569475604101271613806933936409610239131357004122283131052347627796084010334496103453551655566498243253901529608567602909144649144891806144183014192216950555282197452968780394621624123911768891770971709607834144880380124712033051682495657941584947633229877745041228456046543081567158772888159907719534812535861998846297094540704491747402762705324499112573913655296765738482329546314862836769128509866975247922907853522328862377923007209164791827411031391915635662877259792146270623857658783188398972060174301711254373163020998486517824342769984550512485197444171409832357739294994915653414420558450533069008756478239391448780739922231660389225556107278181256700767800168562563457987777020977283382782708923052546596726838744714795847086513757346838252405727600987207549255668029144198696444196912556265181870763378405859324572466435090984229742695648735495978169021458917273715863918378991180491805366526079199567930758575813694632373306563937314229531451463582934702868915788204483897085859847969497167102209568369774156613556956687451730511187594746854406286548149638193425430944962521920505119695848017038312482376765362917643878003455639628429884505010673551946748484254713366177724449628878020266877994026509439144941299516004346610587082334680860465880404100528041297070741128380806193385866550218383353383103430876005352628234971313223536854786724556725791529268937865203707354281151825420187572619978478418420473887513914192605669921768900317792636509065048686726858979043702610476790441624792070518849416255129994257350813515852261377870562153083677863406638910960928994318416110026884244573906615205792003897465608620201084373422564692950833425225378461846970937244256919791567723132123022603864202826170994154820573323425257514523008067718311824818337202707193697262496294223789368434942624476010108804850997952998512207127630422364583269851792245501391862316225706576439557776551458191854461586299192919440429536235671181918397464750141453501255065995717508042003223738715202781047829210079100815450994426523790768877592174849814145783031016883041977732920666930100689644654564609440782443918255014314150105175217078312326238710815197104781265851120815492601796453741659043533351497785096450974823373704455605883752004954282047034936812524785577322920617996775446293244277910776879897821588427203966165413862375134191394576444183449505349098908064180924154530072817364302329569146599317007947856052607863664731139052391928111721804242479195151502964001649788874206416715363440961203385760377225583086227984113973109637443074858906762346857900341105707849595058086430601460837446713952569082186437742826183549599007618472231528267740048002110499972101536192664556749554132908318004580122446415730833598349997467739281338286218275534439640592429424986209419757360322602465172604058633818050870236055999522437837566485798669711665008271779052688352281381884725812991296981096460380563960905148861170945520909906994542353289138177412636839663281801294651945042029603711803043808148361754306541993597346884285798414792915632834544814202321923004572752626569606109729107171059915393385260599512079689655253276948121271319658587610576212399830206123149834859426590142786500643758414938124283334971034735328521455032315993981339181724300967656889542696823413819631457713072581718839318603695592805781446107870879127381928738398895562212940178419761790263057949396068696814358844238082548470421496869291328724636081570138091362208304991968237525463787601164336187032689851667680833749736125102626609537709336261985123047830822244550041561354809911878856304773252037619674375834224036144481478833929514401499225919625565270786687468751109030720464456887709918873783893114303874643797910142246135126430500175693429693355351860039648781078549530416362274891095264940079614293649599714855066435214463117383695765314990759163635470252706737581546385635762239660365122711701759699927828096323863277716892239297484563905027067786139738339940849731271306928247378408869830967327082127164859419321094079880534788587718799247210790179564333591790560952803281053416057135743342224714564867922556758796236332531745873057734843228980068066953061187989677634687834295731569345354148516129504256690460242435450870700907697000815817661599906097198855470865809590934634567703129000212794248054365464801291764210827335605268607747305018377467049368606657805726460174923344913367209213531938115232314840760205404173802580380109795548363533219520167628616577616761421055173586700712656901337846425276674117088142841678511333462242525255313969804510776887627995773319561600948152485424778195388562368141004046548544637314290787498140321677469380875514092977146117800395085965205125542171047303141207747288139104232140210283554572133777586555431897238312229891608910592760302866040026033389283526489516363277983697419720505733393480134127238755313393202372318781165854621623793952176466112200401569398603981474306597138911217794681784126156275907849556739498827766066253929006499678565546951222413303742007472034486396885864842334051194962386710317795913127937570214338809330921640209081889585770260277954358108332464263721694605084395432613424971160665510560411550478215971855518272273754317494781191046145723009766556194665785096242684209145310655991615395952132692986081452027048003734559733779787153345282449337383618064768338049093971138677355622648001158173388927424042200422869702761324936365475352295523151136913471915621435276255937193461973221316025661509973751297988834985045794970346403642774239921935660052402212718994600968865161262589367141607703457988568761983419540600422994668861111898481212407426114453526695093039072347330213607551431399345073411968692494001550228873237028783138860997120621400765503955437037013252399210485067698061755996263967006678332501152526100493552556581722091385974902713818700430848287566809021379301420960281940979179777990856113785719049381427947244214276687269359144044407764840456352002518878858627760327665181800525533661537532415381488946666377170326152087653550044531804496121850595871816967230308365774116045838945500391536571201452608017503075759927765659261484419951722313792044708821824961934173564278073411368306038827905139814897856483343686301846056366201599154933949438800820469447472368041547044324710873891489065926002659002664145149577510714663607891390378915135907077263713529684958153740807423971415306255153004031036947944458172559959715295831865594367789886203773359728855262405077024119402279043019847516534930074619268846211618834026970197312024063058143430719582745267901664105727542766095017445952744476012581619324826019362495160175812131190600911250646680497721832624546880197853027119405318535370977782614477740151023155024357047700974392543880962974348205436200669951937115952274644023015366086755786485159038832599290264483190877532341868810098293004698009727500315035295863530670871702466793897351993371693448757849018168761669874877477370228793834707979107586746259727767498639311562394381474702561271623286461142179857103620133405987903349087366346595838421992454078857115428380712025591305463750782698071538124763281472478290807638470362040117308804754774829926737371152036595611772657097017535522278400722768808629218801009045965009130936176435496840649633507412851937050945216607432567560774399340306809356612200861362506677494146301161678644454628506374037731238221080066688264504823122660285663794770686610699582001321862586071871010429118018298637656872451199723388701514962122128591420455872692848756029698848957652120957841915631633863695771327875385298238207278701666633776266512519373503066452449791267983795148885689853395700657023230811738017925449789984244004198083639896768155651983037743571204408234319792963307778714081468525758544963215742701391650025735972104776470105368055487853208653446094242560449586196187102448398405682539383638478668756073334980805487383262403252259196449240017855917191415664936620378961040481136410084913023588021746532023875237106868659947335920311925852179799752661113542082661107831250009241179282715459089681287683410962727503748598536705539021604430167835608546260785890256990434738748071846137944210460535818403123614060602911602204072381141198842400593349218830357057835447841950877437329971128607251027650434017484773239804899182875293188737188962260410734599991896296891208121495442339159922269844224451997389667888061333459807342539594540836244819263409563847031232116645353763513623825351466536997186092705639424774405969351207502402532026760704489609081540569231609472899464412676663980418118281041105079843470067086748149804489714502058631209651245322989486719118734723203484735199607716423222940425806004358864485151189428725537441049544314827506439255799059144367275220932514594931321860228845163537158195150582501417731828970135403495950964223920222826956601598910345026529640735003452080317325608369530700295113724050575262401876636692550013965043539377598173328901482146534279360276512761806416495924070514766916430481680189424270822673954636661433795636756453567735670466339480595613125105414102432752226265194480994806174474339722787752724080052301005574373698846996048645430801272163719931639828705526668565241819834970107941407449471048717138874155393189085121466249468688172809498867309611660569759330242239735055401197697204613491872835146096825416220567127080524922798865755431158968926861404907729725993574327860525393077639013090155338901695813168140862443040934051571384262047072628367686525868709222080251591334177877710469633097077127176801133126927738608970075436260471996562333123393771243580733042355922337771475801059476739146070430403051205542861529101851454236597622713191429463331741583664071402712708083335596554112820169608976215153280422701408474907080035256968881111950206196723758419022527128097857781880057812607732117047096111638281963803490808099251435876180748497242645383512747081834669284027099040937833014693729026802755203219954662937105150103720885683176529043098946380419871219457904830777748045155301656955933922028302603299118438756950595077934635964345747281430247120394808869611825184464446878831347652924383270673034232522732210492384462773029609983371212417569270365886193493160477581632413630299037339150709281991396447425969137964062801132221729857049452886122208359427304812687616484097268531743024176803318563430500258770783487345643260459598395819955384110943023793984725045056527224626114970428693202290211855857786325573702872525572661294881246286408993900851954833741435703719959156305548015652001927496364111634291743888587414163537615533391318489106767195448293441061969646390559913665354342263796395571804584599615394918883762659674480569175391669312281063886675587489846638061290798243497576044897800712626316250025715658783871415392803164577184758471973473049453408540910276207859752282711604862310366380788112504058903091184559562015366395232444309298250915370762367507996138286351102447507740919843738146924690062146441129858803084832448380281672197615684680523402096103594432398086651751522199721692528739521671340111850570301997076582301646693023655656525543460338950663752232038482197473192813195772905176439812222186942636401777277196511433049902457612188340112008077644531873386515387340292806740403994332790211632287568723264388786289875936615790303131102772426381282177269593134234964331146293367139929761364343447302795367369318905668180693550973165236041227461418592422184317310689828743936431649315085530153171122957357489729294410962392207422216171396843853266646273895988074131817848516919740470375585383047628340738805568388521102142142945184353021863418081854856614105381676687217516652390590941239461892960459848421145390291281423668890652418063212253102900822480219416308331627909639332702908055478936677762812315312836709844078758383435125362242285918851175496335178172781402859841228955988882143655064170483370977571637120806672978216838989765693692824412253478694371410586304614016048200733716459559901772318884335911504884827002185760466032185685561436943286747321249126020964284671617238654572632823763271558374992414309897692840690272481146395021828568044223529176108701488549600825704250660514319424827099738277028070542119678934477966237953326747898620620340408946920140720875778433942341140873968926379240005261203278671520982452882648961250963697709998688508439890678023708269636204336151325081414347463355099126678925959491622218166165920769377172813399795821346700763917856494197647848932231270210336813565020037755855008378293962633437720289197485453623258927756892286921101650195000938269591626334521764094511906727709436323848850993173502200982081027534214578044083855093975595762152122830332076691425669382847770818683057499114249437669071121430578539786148247763567862130199918752113306287719240254130399776180983833963852552678836201077853474769736021583726645765244730363296905033083947372248053502193827785975177710429925665336288204416891910025041693520545426838316996417714620095794005030721708589173922894692627711603748678932899385656864213021711489255451882433706392927557276972841647555780289717728485392809619363765657298675929559977857371309041098717812071289658320248491690370820547626526855192994950008140321034850701791676929975682047386614800251361344278599702666893456071939690432254144651385049983844713699567348029460666474578550636882790256409422997194155563390430143725493176006936825887984765470565130301875904112302334721516270196757300279475640771865310478202974289734411418849687987344743370326110732962864635519893514368668939693946739736478482746956478819641000175168539907825828853784882864465859334854990415923533992101969515051066006316224026355132448238175459548552152909813371904588355697781924752966563892112275301585571522310026622441784030349769602664761335588392153726970464439591342521318156824930521595088934676993651519844477576233573553283591251144047275492410431899724025313024225300977566849287586185926534441634496324368117827790546627414135106283269514613527264710089653642910549545853817043754748734489182663782518267488003339928662680808025794745850681329355458791510171595569689040659335415188804219303667807641964921803012187346710255188466021282444380350438675207897791314703230434945783783470653407032199314134324636386269922482448679213053932791960896151109150273502126027685196035890434821894439618041229102689571016190272266080107580665629905028346929663193211092660305697971364842634499566785633585952689064586299815237929355752981608758765407811380576770565738997618057671157744654544567313778390881920037471323606153369824441693187192650490804191726173249773669974899692499785713932821799839543401707386499974979303211231112535330203457794254890087347430532266661414039991077889069214370944759172861704212744836567684113003680217724877788138445503415225775759163873260203836016808575896895665706080549363355406353403862490691776808094485841144328031945432231683651153781400847559956747577557360433253857244151917734732364254906787016549464275058895765838654966088465096305008978477780708057171316821299311202948960414704278376002343828844552971254712853788329649791207860860454132413973871131231716373340783607437493909989553303740234774907390763169060800640667959777526790600834895198980053944493965444805452896788211044234752046105716421702062875996305033059361842270374568837292106793195171220892661804961999286016759820803002675589064710733059381064222307688327193162367300695145023933667011247872984928441693666706797788739122391929282833809965233691096080573384059322242632332940615343443018724942392928343622810932048109242145656604121935447651495799794277915277764740595648470685518584213383044409942402904978836322957131113822655429789616791212328704352468492077548587992885133204895094516963703037284635863973495482308330290456154197363614113104547257680785593339815013481771934196385759969799616135685518235879270748695287815657248886203555931410085356043414962595902301478748026719152183949399923370029077868164326216346463700857792595513229375881121414973556044052082399405043505362599272645517135370374138638784210038187061977124004039678540770080630843794979654052254477896289611960765599937136001329736224994979405086826692936009880743523138839312779212276134510167812616975151260683328371557056092369675571121832763513966315420061461371478688735139274457213981393772843659085864128291313990474602380124731455364284445876560185466943238160845413198743576874135174406175234793510132071394594052120415793724155942626306831488664647779647573466733275741161046654693257125906470890828227691192499983528266508799392494176309406093286508373201152600758253654267024512489877418540988290335847028795559673384185347703426187483755770345971471095962854302366730994685049701951508960500349177529133807005704225575324297260096100911385587108903072519265964606900450732932162637791724553159346543144241193865014230069588438844810793257658573677963919835872590205900659724465147199919823145473103371666204620955310808047306180848050245451467288832855113848246326446793259517338265528693370244103610965402350549703307008230753946408495019091383599346818078478753408126959850244444595686279722739574387739771424108868563877454666038453615017662942101093609665854089856603433597813158287980465220210673569897602304979616473464012907088829790956942599028688915943040606798765519658236049371049595175352797903475235615452380761642852451785532358333876115565747764823731174482536970549376355198552104246899937686925396666605419967855175427087323480853436848862910442293093853749507656770491341144479552035917933915939822528447932985648478532897960575437399965398969096720042712027167494717061350315172062714432838349588450965093922953018823081161738599883539340099545238522552918209084362794903813613126344894624461067793772031581382837947659281080161463542747675270097253840733784388459885668525448243229545169029315275171836920673524282166045805456361901120791332188058816812406349500969053845065510619209807091968467443922482555388690176791097133598294054263272972836507553784889816377252923968432428444778740727916584582939185458004960808522600377198917162156267202390529124264518295250529467957310112908591310677030622349668626385524612945515446375472912715035910027019642200239788579880673672165294107704932715129756198431653860126882906307674813461266383330969043623262395308738539448588190756413118592882780982836996268268307280107428194343884154361818939210017924578148040352131927226987238190766688174049839071768289478028578221152730319579436248997559260465241112672702911989922904389121825370968084628068343273199546604115627327212871244562767270529082302811859899633897974603458292273352598876846138973549558238920147300658032695498869004698614951474999287797123001132752997274919158438947854859170201775015589724050109203812093373496310228140376495540575723408556854177736896384275094853973594314789098690721526188458421906579900365869944897606151896267461937750659618894792992400082733804220900253991650143763232522862368737358607635988635155732792311803466229258279080288545173765169610055087490819040476815266557761715318454179899241592431677177024311366570942312394121907437428141798591022524550539504291918213893516480269141182032724822753002919373200051224202311705203161904181343997086815998530114506301236211876258707499492973835335632752955908647875155498117749532248919364844451989531156662235868937135017706285485636293407410992733035435547618968551669602710986395738601802346468568137194592508977900216518088767720765122096456407310776413502254052204298628743749092149335338124689457351148721221832124835859289785127215478662628719881089423910895592646339204937479727893116393520117160361258843567254026320278921889891938306988091410934265594642360424802730465110935460439374337325604042098967110654568463352537556141619536163842687068294648683979622136576619241776442439905369222971887708725620423839452299390388912444231108838453417635437415501715949217685906125581034186136457546080152655113712608594312683088216931868648061779838118023430791617258935684685011422591910316664697964088761345974254827942702110882932971131720511099083685661028423702224485614090734374335150714672327103089568980239344213426289642638195339472551289529748602251090332839469806507808652529694160935968444898120436288564013165891835982243530991447354064572712261972030344455439728361382114106562893423603943955433673650741701821518605512983976830626403928028917300695673052703047402592625812381890392951814155320617020401295456794829627439620338238972423342043597856748973222234394719711445306339001494545354155881671876844095220055960291550928175873501851874693184452688168169489314033109873111545788255370713793921145567169592075315589088864040567554580356973930330663249813640905448371404276847482865190089817126356273779724284403964785642974038564627203284965309287117949201090915770191373859085619434656231786325336366169268526584159201525793081079381822422669229575768696631155251363409863747721606769351633296741738075133997916186158254583783862805947094223669815216818569577948714460990753308519562336253076207662305606940422360727415801443328696755035611150155471565009706762737266807752482736371958045378132775916664432694764865019987713913913045010434156395838067230449711851553838313328162283301929878956627276616465201134873247841485272094578651960318561514677565218472408550509049397692119073644329365510525807258415687403284670094508130968700285191592913646264184346518436941175134966974576776629004353210994747993656377347693437557481716069261498294162031599871586731279403271840569894479710056061303658340351429609805383676222981997146987425184487852972886060632203665712682018463918987849700629898592903521577213525115032956012148983838018285384424964344953431338770923160226629329693286841816612039542678186611863538732150956601083845833916708686840702912385792671017933969526351399340873314009064517016804169393069610449584793355936517991252002483100900948869416694481991777386653668258058279672337368517914498788467925353145940527433507860877939691417539012288095182240312993006859530368462793945306882909054285858159871877945399170096750978437276999231968961513854544799165620913497476432986228088851410471562393042885642062851765681145347567571926588825642750987598868334175461408668269701070655981876976000938020307353362726344053725151077728698559285631894772991100230344652501566132783326540825297074781137852094499435196548811561290821731248603121841153676669260345738282319639149422673615180369260378342302093410250669252926087623046321363001498351197291330069139924050179587148691915915661747285737474976314892500245120345055185713103713862727646069116912062024902414347480936114314186318902828340871681809993440339520893611720489764235769756141533224469590134741811268920875674733142916345412117434095527434824041231731876505403868324131352987543414844988299815551357707295921416645803218200868469734679935247343270205250991249404120007957594425200035466622757190675035819666772451051693475064617636067995076620306173026912659448900767735465940674620046087204121886833132307626783183583934230046732558211139787692366242667769359141228563454878047517150704219782397393226211618467933260334687571386529012107778282773471207986639348556511514779709242697570680788990320128213165436266278015193182391199121483430801299927745388436857560712691756828632236937980611495486702743518168732043196690806479905406539336608515187314919196199275420325146017606065573225098448351871037552767744393656083852055685161546220156817715197916531256941627383124212516485975012922093268453845623026861738562828554829978521790843615474639042453631860525483552174048957748681400574465028230488878236381120123491055712119425373592211707950677725798218943828995463626413740687123356301404339689022306078973978807385942892713555635739189313149282597052332852938297685286984756759169672074655939630147691203333018979832594218516607789551022987403974262352534956254608687057760711512888743318456413029315256298786875861906113256058988748562559998212377167630936239527685736717392532596740137232934644873259207302272066385392025131776473255171805922950246988196245332793450754498934456528261451563028200164994488568744096074112406127198900996539949182467829423267141260383571654107343429525017784217744338735769324276428440860291909787094565980564475263397894291602481649533701846946034071256945727156309990828100944352181141326799200296264027573409229187147747507970100692842807115305149456563179302307907726736454745041485685612684667737029361276198870060002392337402558351942230232519405490900428789084546199556444165152850394473246512985509078134751667283794975562558519724264409655280891431006467360777884501361072848336281451935653003819275659407372267477609044216168058900354656870948025305421590054364792063609892614371026960698213007833888605605544625244779662831683061698780037972568551076888682266258258157792111061973926542846617424408886182710410182606522307962095906285209440311509334748045723515262156698812958324782669389478253486236945079641104875240093590076537509416318815440233832832108508124897169344160197678707157285703713804083129705860171650547143174686201092300050900280761157481813262268924206885786578971598198538371875483102517772232360894262336088332667058008526451893730191229996400990491699709663762687522637509953973482153338372151352810353547429150139304599180081836263687393774838031744042576958576704189734398297105847450447140228536743874619764501879920590923749119261172867185830447191231289215494808164302360267360441670278751889338650343599974853117865799109315595225360247297245799934466311538635899309276830085505008483001268874294481198497431250076342368766062101708739241802645339383620986195198769288990212334496478399515960806431880639997633274824267489105374820526820068081653276639188014035309720737244453010884730756743332042503387297852730556431855155860443769342364278648579743197054210017323938715052088690562041120875644141862144379951851703110411152930493587002010106833791537932595539176457401078095921542562390340168494698993697265765805716833769473312381601250412289789671563695358542868550468070150356679124095568950114935724878895112932569246003391251706893888425123186819048491210423977259150813688504949247722708377686994813254998158525002213127544679154496264013407560811029507171639275587982040195140956804296886293672298142505677536852844807657838214173115806245755431890131328712789584543429434403860602734370953525626247812339355273097217121145476559902079136381891549602026523796736617768459595613595075972181452144809406728398260946358518772535536310499411918131235585887160072473486790225285712749893430869505317118335966022496250171534438481005558091055338519597512649263221453209413434654537217163718105546673597553613962203064513483150800764891249305399325504418861162993794110854048952848553294059324324357760711530667256717911181368943487884489009028673923405875500113881765518296948390973587754358418192387380504052450709692458157482404719398445963536064236492264738226193404502287289048917090873814775647289473539932520495348481430006261464246907530053704180128026299103837616922495675147776095905936720080523495675463349042996483059031592258869940394507717898395698246253657618621797794727705730072940917107167939199866511516056977825327340655993298601964088779019767159547287474919520488607198508083118088782220624727582488911482920271322840536157217263342140999996194790605708171560115293475505049300727685794625917850716804975308116319423736455316349153090338655429754602469791235835600017689621206268722782909597151020359596490062935065849280365833401989620894748492841286798403555633384052710139069795137952542113248183941668567047130667379827166538989396557196573707239818489826739930385373706375970363412461934185225219497178859839987190057387117467181985236828117875017613814668465233756757874501957831396492293198804741391750339194564442780688436783867764951758666813644086491367361388445431337349323531585072929795217024800076261182381082643900478002449099081246767827806655494446632373217889738721244966514727874237295246403164120832733839751695205697411890591550906587686104617238033802451528002953545056939447116374654440816203777830572817307993686192875315510151960067978339666191736472190319320468084507112146888131903934302429953911570805926723891898928404527923904526388657935465424470594103909352958008812338936824437401409472782824240034990710210815340714727572167949210585229051977827848680715438164658606378273941068672729998281137317409074838922179246275975239936868091999508930976746421038852597625325538759656600705918732541596556262274865900987162607670246188520055855085304008455347647720922061963918721029754284851367514150129319146215484148475025719565288897535548601985233052208349795205629306133663468839684520841430261357204057306716344209524313737179682438902057706670454075249834939089516971322540793492664105868553300921227427474059620208402718944339763252350460584545050606371438438099462842002458697929759867275140629256573703001780760744307296195389228715407433155803549309111356981067579654492786075974678112888700209578569310171556549621492740615921040632019795272609489868490748328208123591480684409720234483774826135790403087461957635578855133190770635552241777424964746740954883340088134399335983323461875887406543477125823949971393014225675658460196360312316552978717402212539848132025576556976647229254721262657266130417305469180341445087084753846708632836795831350511869767991581478399916359863670005151798163383811373539896041364682642927111139461351445963471896093095529191966915534150328411948234073884986132656543738922661969697795962379376002277318613312339740288122545405075094715646084868072893616812222089486999565932730009607268059970805186269229593842439992890027796563278508352734844604890053208917029878403048699856483796548256540217133812073966814619356484692017439078151766707567716688907052879995471434973453327929038803510441091311369981852288149693204858242329705734042068320187015161730613654373160741444596767891457093342816877840132421125607729237141918288686684905403963113646918333116779649898268709386246605693612051773024295707638502205928355653660926942115064111434827714844690269699429673971206077426566542957710171748815783269562260276009830334458239448667640184726050514726040859254675217447329831902163544617999715027177493945946221962369971619573232794954889829207883827670436932057442412272849065460449874992004433255038730515605262348391842644965181819628666600697895540178290812864681899586839047458053360994196103825389283863542304021718725053908771607816925178877915632733099975279953431280408735783660099111050538641827285436413239601689137262982407008009258855270186755847811651580184789959120486494445068377752144279631875253104865044936362238892049160356087642567433038666931047800952709243473305692867060018311449261252081021623394918337613578196593173614161041848356778978203955978732097874764485004912499005627038683493849344796294721739223361582727699847727606357221692021543898551522755581293848458218669817456600446912015088499467111643399275963585857107957596143763879006706064427956070104869951679371506178643478533035330674855236846734925136513338299074237072360545095061249051980811955819208133029421785922865523135870059756711542445092596284672177549331156157858769587597119690998425067432551109759491521292173704403037172721405325125970446132213965679198986212018654302470646955918237684430970646344521244861433896158161113897688990057465459147083514810622224241261792492351137272840035464046152149693131711369834439575419253972187963133431891010671271204159192917367985876548882536500364947927077662617184775935028698623483998256327435086840810801132526592459444698429350940872651927534365266349765865109225737782757696915629526662059402177559094586595595862653793336224960519902094636592279249932125632281505367770888487906802983501113026510163593561745973993436387519862932832536200784904040302245600221341444601641377035634789710136749525497742033010273957754721955642606631143919685665301266426665699817481516703709966219148166596068081661549234062972283622165076050639200077370917609549207287909620873535596572634572750031172134434354113665492147946748876041163992931409429956468220260364355709208368943670802384156205458704804237495513837593993376664680998337373763219338277616930607502159299075230852056818181718159222840228793025978339325071045907088134458607754552621519496520160381668281796962783265777840337055243036736674494569513012821107807400919962077808659994683548658004728943978664095740969165673684211937329024922911744811847530951439866881579986156137942919356846330331241695869419088012156258354467642517666625565060526791919599491597424847026378327295624828075515231797559353042916798375702455661333546740015791306999665058620549774653203445524166194658810403770312456247237229135007221547347162400363645195247613245260168510390190469210824786735866316559589627140827780256126734960871666509555354674258131746694002510816601559979246421688403748055054075035301120828461762588594900951574506094041757433654761229627956159270106620932302931882878212580728128908978201462026568359052655172784799270227175683082163717400814266872945181112780057376558182555675798596037342791181770144534754135569838578795499256645081918743464346211130925385901701255703587167364928967520953549776876823961317436638312015275813623836569716116164814534780661910622147656808981771987034253787604692626402317222652963773756279908073402731819446804561120685313730373813594462096403058439420130604990754096229769126686795956511487346076485646385048209664413208127578217194715136132111791605655848997482649330716012629260639403674213120468760752382818999411960387944543479872790491362916256238982997337974899379829189856643008490995618641176376750791862744341149741811421758174370030829761696305122648308510377396502769184396464995903340797119876262431965519253912383141483761308460363506914099891774003339694115279861508722965992914981481586132398743784842662455084737293398785905755912914104759122206609338958789100579469442150591875511835871060505098733940790521811680673349303421423771756812179150547595412899960640070215593750288112711536048689106221243430831738600793606125773092812880787854343529934465112757489041792274038673871880501344541232597665277018084436301435886545292425826057718465427089438923478696135687075312895038161800414310912615515258142719499742668945777273274321849014705892304284652141675261094032300507152124797831388340332951607811867072973848603789040982605727248866645267468475739968790966448371645789356202917083225102443754315025061763104374117789625667889663475266343997213506385601874681304078715705395815229334611598230502248833150916488861781164806071111364002428109365098849045129398737334979582974450879269317410245335128488175408757989257603022482393221929446173843985026107038415505835194543490183148712540730902979685327569027348275022676927601863605771254288760776032716593384009365561806018400132543917187395338917104272670269773431353412592634714510010291138014124395804270034054836928970939149223091378520598874380180675295720895211743273100101358249293761424623685116662798737908713223244806950676215981588246722365200284220374488900836600960954658251520699762862798009435449686667782730546165503987137166406607395002030297067316823121317214145548320500213094765520584154417569914711923758988697138536222396255638829699275967811055136960540011029682256765939870110785564852040845099142823651463488479263237757984958624837235301641214249073534979624253181734894261330933068610589868388185729722276290319839023391726250344095236868089678069003730238654114546519849188371322447140337891687211000469379200164394539134676396306287369742130410940241756656756797554565197782974308996736762085703939149993548774872626655134346097888019906102346217841457383916023430984198931262388382135140273094228035540308342514644946507723017552323450356004627545382237441207022885827408008501142830335739609016248606255654589565402604049354640217368626482087176533622153651409474251940171057591366811651926080592125085141835668159836785794864141462473806400279796283977039074542843508946914180930990316166335841495493593954247191327488518076686035238811647239549977705712966113107161824931944059295739351634512501184353631798587030402723015862437697336234155635572269639719589569139467062408539982653225883937780341144360147986994236590860278055003025033915264687624404455956486032824870309087425223045579349986569019819734723474118406291962186856515988115719549169659622632660380656569499755164353236173482695667510698048928176731262664182676927544517244305708166671336064154725723866730960967611563163720434034529180008995628972311300902310009374106813432854027514058239923101735202365286630948872983668238186858274831264742084640458307202775529281214404062275158118967668703648453550336171718856586133407078410123895611678996280425626197301207189507778222706755820626334332407394503814486710071350837827113207851771047653421396779923655236335974847327777283422041325131994223527785968305569729113572733395254065509655720343133008395568529973983223330956252232647392728005179103481500177014943384951323854617496146318103661538633249130693653149434163003630966089135890641472357154538181445192239779749498043900081318623750027156264670771598789436844502231366358654952717145608100327252042635606976419899954037717216050483928444776544277729020327980105354785401026960472289589727679332332325947719735097158753764809205909208955134143571661044929629506273449071840794009132219480099796123396258203500549085863947210313002251874276918966606121886081893432421095406043882657337098055797914864445013697247972864033266342661967394541180524955313124448813236390558679883213552538878969277352374725983838119979670671589196627762933694475544650874775039295296145019925573451019598964702494651660121620827306902375516920051393543625597704488447601121844764913673052776353980334939778838132951294931775989575948957330959557287235175525548649602179493757849328044771738878694940739164390493595662268363623377790148823543227894063409912042165305745202115853605554811710964394997879159874648207315336171505499262177791561160908620185632310884529743917834629275119605121934599305311537982703581045734137775723081968199928581736833086506249992323824473548848841595370361448533943495923947881508237343665963108318224781372664378040585800230608068858868329168602128206753995819469109837423646163051500074708099720340574425830643380042020478259389970541209656595149047157490858733603805684806810952801712972265463018580194977256400184457220534064275837712871700611747860724298152425947344954159223060382492692286376249763685971636180804009625619694830013283103351322281203006772354476121376299296330357714025572921128243376125233131209799168376250308947958169616263071608338990916706045806368376528394089735751187960055804709595950049621527096787946695231419115643720903735850179267448733372523709975228299139027558914305372879363044872353280926107955390094658699320965643542110837580272579654910649623043275020895978607651554360617194282492858800118337039108882524217018387573116265792465420515680655049860146986328472696806966829902799874561210991538685667003599211505370190513899033709407158761987134904416148022748605227841420870969030009755228349540407468540701842237774665175205828844595519730672818184594461060294505975742984607359394971511911247129700966648534581815116520589188850534993803020898437088256420098906038832733812830709710197349546932185284897618807082678114312031237426246928302420163736003275343925655266989352875801780039617426373034775978812359333087796279892946173553417843328159732972355653635936240209746758635555417777112111132589088403551192182584005773843967992725623003344475915277891304526254674844113700231269737017631669413629176022347675693486660140543071152727998645331612154497326076721697217471860077534935446555002104472330881135634386309695439539092055387490205188783251819692292683037901163255768185731174849277871203919398599455626570797768309745776896983247216302195254369922897026407857988511928790922804786833602831802521678075013534516386745350974736401287126312618870738795985356024553974889812797767158591725323746881118348829604609458366319959585501570301880940022479924643703957992206307119332823912113643907527987377318850549197316536770070998108853641425304073239615737696373045222229873923954040936279396087782292034136512186097713563900834123260772342931412340110197060862008532299205862368568860058443373509345928556009471677773862820646748349464660094243895318870194736692678971869445662897160436549305535444625067620952244678564253380066621106907536556370831640510267641357931468737116496049024104491491372770724404254616881809285981133159366979481661438641338121421728700164704203696906359896002975710070630446353323120398490283672273856398795418009157705206587492758278106568712950230790336669619250991096946159856884065398216907836444747901729790620838087859021447960022374934723556115195229703023753451502006479432388593117289699147181150374973189350321813148878658744361841744635136654872384431464199604006056894678482745678009698394386504199069769765379827624501956029698372650566559170258166804684613168431885527619756911181366370604177320442724375640193985157245742398456359413164209819800895942197129973424278859260341122095214601699417472012596724520335950549863151468524740173951234054307607771732964689296711873852570950403733213940266623433690387114865762096820080168380697956617643434931383357338951553720895314425600529771904849946693276822950324336554265683368337956960917929247037969430933441792544940129754200995551412258804568119889308688014432634467779453801799346220102162018656767062583159718486770014583508617286496575617971609709849846235887470926395053366534049099900649316628283564039880800304190321121168336931860063805382157329904241901507638570820413466838858942885956207186930404941933554511072337188246835385767703305254961588328214191887768646632743952877232781603033982193737875855554446008943339628472717580184641764427617041598112446057842191221356131803567897144061622634917264490369391470645533274296046783768826934503928786128252646227393659223327727470545734325177843672351133793592285956511835074332278864415940867235123772489814140573809726759809352365304190218799187253445178350192999597506687136890082794179358542830477776517924088416337624550268238349568981058228334402597584292124993328935193211695326398108631995343037341307573950684359111660800892973951198829798733480757846056408831617888550341217845165063225585410958260514583970881102194668712479396588158555065432727407227026319961649251699007624819759739061931727314902051508604808789191319763413340407803411256237582403805799261420852297960128616184967480371949123632311776000588073665509429436033609506283290124300408357193076400446020759431078219802621006817365485458374655168289967522314771943427576409913299584004293741515228158321379171385495362772247345036169201743100205645183646989574165944422036804038171250673663355336845493579859534451117274399775296442785592261518557001198783464772626328086348888553358248256404573696377799978016882288908153361040309907619242985231520879573853478536331975016422983141323748288041410662216956095509194357216206899949711269003525240640856295569556232230137414076786573539412116624085350209193456537928426052191770714172037075318067377378366396840640996512861591894435827314965110259931964353033753118975864868343153378340235203003463456704621278822644896578001015398910317931465528882340987336117809166979184442655787227384639876199914661352729339407006846262294680251422858710285158478787376008610222830965537897611566651263342533252144343686937882807755496376540663013583795290941851878091975002964515919854044584812774292665459689415253505959146091238717535818621354264934080821266066379591132892431650538240554350993487995399832238666908642465010837819495052261793867463732189097445248518566898633456260429426829612862900664130701400411648301425093832926413808730451826056201774797362873077070172065097943734054780158923316141577181060892363042811542100111502608035177352076787674654007666630397651812427557339634227075270331876930922273310941760628410569210716628724461063124148308902751751400047592282760540025188681353351309400908504561120572320475883333709070489276455172043374078745975413143047254424079819396522050578920786723184350543777584823524739695942610944984158257533142859077621543084449530293244585476450493879024419650521897887521592590599979824988669592008964933625246216510050516804859537705038431406849344753966212560436340630195521046650431977163176162448124137574150796918992909886677539802516708523770104432230121281603093662112027200193244110822920298020564471644631568051253530495453840306684291926094676409114093663366690388086729364417779967960063590455032836334173388292770027876964188965464714818268788885004766793160109200087387804826436757885579005568409764981086849275105266049302661954723784426407649213999288622313988838668317641958624609023731604186507685771406125128044777513880056566341239817419262105696538601594895105044569379401857495895977053106893192333029362976009649194852792626759776066316339899666974862984906856335675613953589123903670088738733905308234153179194295491979294089764038928406072184956110827032400041595810859432379367400758428703795238497729788539976561594265287337158533896799253726527109288304689148906258208615613919570668803938548199481158513347086015976095917352538195250906861182388991839715704482609688137082834403444156327260262241134184001026453131826596717140463056940848229991263941559357747285577520254692073489184184092300053552945434145737931924296831074293305521860253252588653986390823701277594664704360886075941544965963528488232349374218285661043075121397540838022224338802314062684091402678098823357763927247983642853806100345644704679431785642271651656346034982422071006030118979575320527368263453074395594309877374736653627870089541266683994382267467445723602061896570016988443496613619758997594990177925033011830009948535689480192443350436241274285992620022190991908508019810156282713537548359471695728978734604422288894217013428931316358599005344835802150404473379002208610403352961240255635975490696879499521490417630162025239322582101162290042265052644986753306587483290874941275995227768301387919844581559930080484000548833553939769996109417915299706526978712745002442300851263524549793912670434533071707999523811552586870380622091872780958084630096188717363479639783979162362428851517428969054252470636617792588708586117483389099145573128681170268319877706469463125666378369554878827131497559196686779365164621535906855099049119859354481696463890578196484767005498820843846615738061290460326618511647971745004538240857028493473229417169845028987230488385887244702532436770988212321939478592976584911244917723324019683696727206269745772374496429258385308691648582110994845018698754543950820350670351462646941476714595058050663257025946683453224668401202728387706318577047895129152517334394617602419527473790301444879201476297504840472014202338882812243805490422571671297797476193406584835244745153280611290914423451391715189076518928000809928633161493807326528377689216230891102322188462838880194951443496149664437886170515152905222413062481955937531898210301983758342159528210634035954149723472572538988871979369020770064948216086361994928564701142314793227355366899311585312019626312929243322819629707355121313216791186323544172583557085780564447750718885760322440542018759409236651487257725374899470910840832213379136377273897583578569042354721212523028005310632137456740333662333658325361195507179731859227914719666345306788760701843545984704717145079085287743881969160437273511919201518938057612218599950220336698903295633964137575323917729684666111535675403295970642247068847316390009450767877503966824490412657581934033727508623749101128725579880619510508820602640893247940183359348832899742992754154033038432890132893861133747877917497249730325602312985735292479971889130651601834715977113168624015712188362853013792977561822256120968804422922313706244366155634595984414959398511433295929554026626506635056959215427888458557193787719042242976781594129445745093318088748284597834505829266533283781650703421034327445492733387695855325053173538392461390556725646614191357415338286237538146133931500374140278707973155756947944343010076918583311215987534385048536093749512183774227597180745595243189410655355300995971605947845402007173626452086890188459428789627300846653608763103513287892171702310843295552261644341494071573131875686961453917088714341228784641955380250663382788524364807547070442977822347702283768263401663618878054507981216135382389695887099683613522427001578647570155357349443816106901773193613018690186524386563828729706676938935311801839330689995041792879995052061915218864938777100145367769292407167582908149416510196659186713282192337063172481123028099437774776771038486635048182863196318782522470427017616332592946730961995516730296945460884665810866826072948188957857485717920939801658224598826799958377814093703884016139785703895496249503848064631691392511139456699767761685642036931684312651631974070313360422852460248703712565709960701274312799142260398821213238023888190005105047087931864726572345474241985859151845885922980697256705874095050106729903074800759983923094112319621991906083102904543725369893735711489418148477899591085016436289953967902605472143609800503349951285921595606662020938704646485023661915042230050420635162474753074579378760859175892000309587434491401223965147780681784675514499170575865075530246528443181892473369512704753115375702269279909246731759763799533556887931524530258747036124032880926456984456009642221670968682021567208845299963875875008213477957741881603254427037184146050607040922835883466492546011471457293970235833682712331281387054887298253489085069321462080938273250718517111233020380342376874525327411931141969727962414782082686438844263828177710549579666752762506342834605026690523997886196430447017088677593971282261712690362247684398718735968285740471442331147674807348709431989976795396296222927822876955373060140395090036972933627781783025686949168111415916845210950371517736887411275750723537369247765426718069288740196605436521532359325144334728398317405503925558510340604496453008832338718153522018713041249513881757427242390409583363943634180435024109649066427000387284742742788002046646433261445868945691591902021820702692642350772672708911142653149348686823959791560126896591732658496863518376487679365981422020662929939516140438578319205440673931285978891892332033260423257821125022199677616222217220173472695472596577656861617652325348297401255233244240295847562607762734287661858347733044432260668491267430331547993703979656162205288361285302455743149717741335713193538986636803596989365444768609902325067547470349071860707814795182022645068117160348844165228642695871823954356186240524830409056788741213532456139328092633825534468618288938879739036389595315189547935758057883117122493744277604440545247496436620057317044439979819608542904834244076826745974853288300236154002535374232586376362633823188488138548369697123764339959405016629513378679635247790118011487132960002216785412129114278134940740301257051566564369071721230731909921448213258854998800059548871092944613258075454200305083358029214982591222484047232009271240485868841007332089488891185535228591068629742047488079401259099415590513047083024040336467436165129733478354540113196975398014059403897695549003383745405896327298883955406518176228273366741876127654298025919519747500001033964876761981887208297049495691338066489076223127891988044488794101417622982343965421479589745252923916589248424944003640277940265240968991470432444940452931116049284923365389320909964080170803009645162108454609330983139115813597230308313230708165374331249824720744220687481333307437780425283343694665627703358973537683039719068927555997430576146308209534999189883671082703940241162294948357958867793785201259042492300821045782403970493037741249665012554905268732553898716215017962535175504606629639909223004674436557770238642368388485928083202224192290420648169886750453503315397278549616146062429077357857928618524043563113136849666550082026860794255078239570871163624131085539329061232529405647189288094797740100771933162650392395775031641600858965819079520913631978632145485111146889015197914018808821847212272048945165595474750299964362184809006870127357604970929304315912131119706593009885572510333336309613958948772889942561787941057313015328857535406882608093945363628041037208159259702633639112431108555477779035390907789899098380592538959877774552690353484892947009046844113873932857232232767394524630766560777058521724699485692718347546835734379150306416394218602895592757360999194045773162474690749012629377025560862861594494044152137910835517583212446635820697302719460395349996092437676261073622012069354297331703955832543571291890465688047997403589903597468933991123087978146652638546763169598724695987711057387218575171831587863571545636660673715168148031693552236427450642724234349058543731789694469242987906085769178865816142135396682386656436105519373727640497743717311507233887531895327127450925932823370170096282470858715626954660171877595722400309268703742242479344401399230202588072458384759542404564267523364088143125886229893718675396551787181444817614843714062639802182934152842438205809039912170825281003494166822591417774603598577040993106226755594914060508324801715369220841567678183915489483414354403765927527476016337600149097070502574256856068507739089510169601600793714974314885358905408737854551320582585440336003195315573336001399914325725886078103449683066131768957077177123139283387828078060712920360959238101794555927893612474453606410423702585153415156785150362765283831416805838690863737644699469458223114959304725231746692863902421314765578006611207770467215133210542326200350930435851583553350607163288707800172691325259069967472823799175899174491150330600389501224277115220958814935321922598338834327397937164208974857456536643492335207103838933850556247417790733965675596495806108268588954608356364346289742685423498916114296717510728131408701146564146854123419429483307635266608892048440370990032891389879884417766111998360114709847776984720265048175179521615457799837417396861289745099448042329241215181077143675853336269767294343540741997404924675780110324434161452638095695632012612158329355851974828913857195881495457210021101362379805895864351318665037825639732746535536463039823854677536533109027696051881136974892723212206074185467722854736636843794809365667576829468166053807557041004253242587565600879987304064713472656117723450582422439610868284782379424795232441654331916898566240404308548883863677217891197697342780372170717085343345499323762996113836368168837125518336134048402716998772412197713774059005538209396381826595242978397756801673819116476947929898436187843314511976355114864291346530325411639979539589704935600907319847165496572632038051264107869061008615631374825662448718714121746939839577250700705112845668654042288184490412263246381918534615669500130091166051122518851663267191765630523151648314136013110153776979191397984714395657250494786976457612369334874641529434748225976363838804957938833436638060828034488742290216199885323433983653641415699887291359210322636427256843625759874605403885020537126850590389498639331842787715380936403864440192553006779275354501111313919371651707814885659666795601078541614271254962335916760335871383498140670152635771653545707644349794103259582121375812945746850310532686174140023883832968788007318677457633102060475293590060279910581083541631243580292913464565701115230163774168558706359334250608814974941214037345950647426296859475639467481860258162968814037204002118286777386003016212370660328205945685461732131602946140698439832540267122187446111968446506835703213782324925040455699883263045100785663633284602264917932181145275243584007208486897501654364690838933343793040494636993246452915122134191535978150799039799239266655513668586624471118557536384046833108096434142261399835923094214148353667608736202615940306163979164782667700886224237814269843874913248598035165509682710888937863709873061642886067133001365149671699964318260107502213736869342830922247902331752274561956535190963671746834160163067259508948356138076754900208226453775011310128856439299190197805396474466870249696194861741259217507971828417062967047958048148246666282240061947915597115310608336292901311931950097707481794107192435749427584369121017333081925313717307822078260783106059540777691856541554438768576628905942507653893962209888131907706236070037889452118551678100497187225311627266986912433674619075271580571719899797989268740989170606044172401689557220946784729734460423279115375602945120268968244974274300041141743688060648133081236219960673128689945950466410068078702124848555737039051500822085842730856762899589750039812217814352578249712712298872781874271198540071413332927999985375096381825977090296565430206506296666223526799338177012617777016671080527418789726428700456445821736984353458516876744652458445593250467392810307674159519604814476818528427318297666241988152616205986043701840206889192934644752518210992278522655680503250640994254619016052715656123315911791166533939208890704775169895245051751690788519462904794456256202645844459523232514530351242383284546920977229010608878132422453672794883762801914370877860897248916471698418929856591211160053479709879616108262739466729558771350048972797314026308878896761627285974227183293459575008415260685232610210364980441639145471341010286626466616649503196595230143761369100298103021800384168105354464587475730760925827851455832794984806770627572330187232878049577959214947482831504279395399539936446673648682902569722930327586175971247520728959050307264418217267960280754888636956175541067461465783598876240998281460962565549872775523879477983485516330732667522995246647476089845158024114992128013612155173323197635964801111496563763233101964446634116326425827728730729776752593311458802777735613228031779347468695923649581469936510729878939826218907066060174719714947017771509441973180132440654165714989693885831305539193406868132619070640936738076009062653491902304683236293571798407927568002504453265727901302404460182078788338204630698817862674828614530621122120929192355088006888288972691938703026740563160387464393828994888363700174987209920963043046008405971794381120321474129628352289967197184351699965140604227612800257630771759119723310060812807211176927516202631064237628423240832534223781590401678378296961418073038700261721714200983383978818396005493247345397357780403775942209756278253777451278920453740945400927977388665076691807777119693091562831569716670874668362238417234610896840683483516860820707822149042293596400701721823781978787175596834781582035785592741528289728798197326115628553794533506239768587315248358360179235222593963813684449914871818050088914188925360276112597577425559664947729681244750435701594590946030195519006349867623217419719281527940786059349447555252557809236713950303529847465664945127532585971018411002713924085573323954924462859358154921673733929615707111962198975587345263045520015382111769234661792751848846764462868141399904593817990121946917161804974168893188510225880471363824167471852943471771825247517299799670143277484779443353879214445292347275119822719300736111166662622722909482141372278688291064721229830595278664520831916959914915316632809748371021214187928910481735136943895562581206837357673827625674118681232435751601783905210028036398762940554614169259108304352102215862620915080284594223383659128185757382730934584619558912257618736313946448216015046964210626519181133659354518127180390410663936635073358737857462552268727202269347538418309214766919955770065799301417962765606173125932582582349775998774128451749928595097461632788052243949459402928653952903215747600790664893623090708305257072933409624016401584721660488462324498086609281592743799443386543552661331296841346109032763529952758001284837630341244150790692390599069802746589276194090838385118391866830654728822937433363621655787206069135511461934674281449330611913553666132517692734643926676028207561963364440391619763230097319396229447900030868638057514390350655947350227612494055473591756726986848495235938015382801651246141366270213147585736964433268056438416954257797407381948322987404806586681375791162915110816836735882440102649899946755062297309457973559978535584259011902446144315894493372456573724576480378890242434955093053748794412138431191790034550255294525175729915107994880862005610474587898530520869595971795099572213527116416285473050022562101500462289136451549418262676216443746736118629543841879863233300239041397912335641317606819490841751469072604880569126601798892821491288370457894583102770255734668462701388190695204728192820650257939723794284509797778694771255681288959657083744278098288002511800417004724468461887934532876122071932198852695976912368954209151071650907116953896016770197904830518692141358965065811677689810386464189157752943098405820894832896289928849323098813289999120990065083025784180742374754988065714893521454377600047730669395071935529069904546651840790308710393041945562560566191395998539437575362938186023167531770228477933607786995117429184034072206057070667793011118208479616825663272867313798299438656113085980269425039958461273581151167755014025242262297478646303487140035520781281728842655585849334456759346073584221504921829089239900194220793169467822186419080193391293487192144206019516207057873397738086498603694078724440984377527028572666440346460099286154735771301728834011055484105271269831116711347491732598067021920418258657786519166919614242832928949458874951100197417831784541001699742199156640185078721107426789914901724241148772585310060454639995697039101070069071650496367679259824531339334075674497590269898399604358391302743645968646809365560482866861053198074663916028412751072337093436344915537298537565543881526559709674009104267722441579602453345226992999652785939759773924806499811202399578793769639005604025260537507667339123126953040042061939093723492360349614524338616569325229806313631959080907205694694191341255886821373044818385452274892041553775290587881244592620159606956891740073245600668400222970200967190664067608161793648072946436581038671080206494329259265073334658922144181001247866598143537548145008349290118934379443880311043498821556053486044501337170483478973808607451853398570469356308597027577287789687884534998386439365264627390727513994709054357541874420990878964030570843158825717061861975283008229501126303611897896788222773612508662783015353090166341624032207888626975082994197839189492207308912761247831876012937153677156009542764050221220682164041797539263857285470055174549341480870404967751361600391116952754614909872660042543304662735813048888542956957817819925047881711341923145671304876911926258674998005403065858087180678116625676325824134631398435723335123065214644610137933422490023114558645130724105904078586303345717164437060697181156176470742948793573987960577711594002330744258648436893282589828795555124468510784710414278352033020092393057877344968849214127350911768708573473671754808046259265679665851963417110785706342463545000523815939073653955561770929663927058586101772190729811431864525447272558569957951376930530611694795102508498826792321929394932907741373592489341368768121846785475951184347725821220572821879518296344137944700556952183721292826919289864145831008916592301601067053261913906550908197589503682599381467183709313739393826990639842937493576557745475861003930091377582542840148156230898379477197268902267075012488129129676280306484766901853724131666151669764280197598426826216693922374495682146883156889069262479830242401055879790770184963342824739803159039863052838162818965462617923046929712567856639582887159510298636155934960463923716968896287119849421415752671528713680170457309263447718708051594423199396211732315116661019699324706812152723715794168237176043326016149987931456346704188068480673424681970993128886266967827338458968975781720459254806967159903779919936625894609622969711162811368371655363917947019811358901831164406157852689984944338251457487907121679638142190271092110340541207313208475471519024087066165162406601122647228915164402064177857648181885294542924709080820410633939536556499261419099533683174241694896511209980483695603344043562969062582238299455804985190311149366773376435026219786262508668333268749742433036702292126040540504589387757312089822880025956394708675528907037708007173619500082348377802172550036894145964729881704722257265220948042181820612532354014214935422825712716454342852829780923161944094768748264085940060755310934768210219439733484200701994508019714594058689660058964282522291064169184706075523195977157067108305057223974847254940411840452303974455367319588574346672902150541411345103995229319663432127643286020672530573971495496823079854436989369920660853818230445557505181522127400748770083873904529460242757494908895780016171577057761970052887670070689520000595700719546675339476846777049413322382221679864124898042685782030285043810533629729408162497380901109088642758679674930937656632175543473628782878704016241653142827207981912057170627199006905290082302365610560504419188032850212363489105996700471400418490365378565992322855489193068660538256696965633807656941861207879126669633365933091312694513761941408442057719320929481661264355075588950339987734234985976492243854072013415046628417983346156088609573906020831370779583748299589192373639701484729093218519705391560947735238841679152514131959497266278969447973014671879669045553216983765435284015495608516704118490915861066366063209314935583457111158031621097347672245551869734171310880184440595316896093769882480489861302902406275675348087325370000815356053896104693496454337124757632950122722258036183884493409694882390537729910041139981595056212585103998239011824056377631137414965198246179026797576390398158770823854010883083605013820411976108678126688904427880972812151702289951275481954687323947896349279198011664756292181168781452010761661643978579507451242617969200032070827541842725322113474927796956792492232798048267565061113711900511351864082309976491545666774203001625397031266740208218687393288783802098629407545007546790944071628862929086825714544127478285168991334763365640772334934577654465643593152445734112435969602660947803160058813533795651248905607040790160473251874994576288606676261665915981317869825721730110373974851536969876177937076771375523860490456616366850648781279311105485846222521794527069580804951270552228924296378524147313232581492238070010084751898177733746556729011727524139709339974886902818030589075275597589923335621496268437516093099722253371111428057387869025327165818506162781508039472053535690264472777627988062568281303736741345215763938021095889915760306499127617467978399940624335730977587075524953345104582185821603745935538836049760403926914385478547090039358516021132254454043931877670658569315865562373031316720197358100072201477096349186827356800243122723542684981696058808567217725762049509167746130429126303655885124983796168618460982339320007046010305693716927751617106923059722749012973891588469247408503178315937671063955267072531168805564445072801658220683573899756025210062152819232081283540384518613909002114142340277122320815213745702175699525247699727213809507310538850935825518181025484382264065211086891616067009323964165264551973910097486453515523530316487610428883897283031673048101479318685082228083819270570215887638700972226873033726380115291179386831747104989049413112198262051497314788428787261551741742631377309374349403623042049982830390723806148709329726029120521587526880928077182435930814198887598077900875794645939530885267771264526207518517943226274434095006408671601086581723858030867904328193982327579866470103761065901000347941235154106314035600370631479871485987533681874754042942662904374713792355473646420435556881993206609359778271222944547629111120916754525131792569461940604374104754960538627261591350533113529221618565307242537703195343879952699710931869867721708720358151215553814687841880395154227000582631267702334569786119361233067644050106148811373125626120197513438922993768902154801831348618056362172403137196875002682294075723002744069321875852457746981613002429952669839855038357370956650919097712047296741417136080344652937382908389686828557492118146489881144676962606934009691264548422555911047577408787649683328295888442565547881018870271881770316395600383218048769233830634305219247849619551990920978232784327023550302212489028799585713543995393108025581328618857210298347425955207049168705712856227934714530915968443243723622084042329815837423539478580077071774079819259490760672657581339297050419626290322563413977097362599427382493555867430587091177773003892723550122047160508332372478986336597904915908983056126419021911139396987695068165716637948593389303025317487640725201490620080475728711110463586477710897054651083642589115872080879377554233225890653073542265441639671451961397830653790357332032614605432005914458364760725205266852379988164954155981556010620224418657810804097838184287660067889219647665277113092261172766090610740222989699712758076954759078983526328630612601577957668610731712220845051513929438198913401955297130216349995051116811405630017564263866316902666793460360782855412761342323181234945124397834186840879563923117519913039774021296334896303398885496300153332134844452716431776647079889414838626796215377119797129630205998909684455210329480345049339171484020960445924514816934489318852642422575156159153603978166597602955615352588687650465175113446858154412208905723489513591688705217549907275924724191040499246100838479816219992596743373656381839846508994852340613446249417231690428424170241128215245075033452387114355351420760499290497121275735491672250859380123180977972064415627031045096266818972368311483655479710506767258780777887712126668053320065038495536965066085177826287521706259065854231855716691029274994133076535280818760286581997296362910503574852055497188447033439671808609825111491044003226633128817687577711484112823211240607624167037730496412308964623225845640411453402782719558726875005816123523309149837193038711071936117705407870012830486187765172408494742116279380989107405353422858536852101645564170683375187197190398333748837707585121142630951443060077208164137127363063492943284086404023677554758983781438701423529100704220298377713392956081676734385092199570616864886651936071137010914294939812432398532309726451561177241581495462867049274207537092895261099940935303354793540213596790636270405935073306836068295537379137789626897661069244612856370294708337935550992908696602717910916744749079672233752586700711057115429999715746791048843410431794989615810113533259801682275918450780903156272876499583032925013399174487350125762026555998533144743884312913164881671827592621616642940124933709323868878246188502418166426869492713179277821543758171881365737371174554895014051595856434169803392914840375619331995960118428594816247047573320409268357707559475571035474797588883929635020336402869412493504240449207279675966763130813450570922503876849638436150576237185881985885004020388512588055374740243187047034711471546772630624926961440914605945460554778769048629827849633997817512428472118986453040877416494445597674616546438322895421944746072934487729500986987161399912712955472135625507285799635273700316859524145336093708062790323763015686997932337292336198778980068462818129247555975435688148747240912564306585471006533881707998617442936449754179787336228423678049362377848295140731436498268227852806615529251321577024033605787629505486665787946798729929854598269994631139607788468694359198098386088771610743194265736253759203855105030525243785068322162465595196271357032811888083429138295830253724387783989995342090840021004286602127138634337329545760877724591310099687633585841093501905543042841021493207501030108920946971586220645717966064863028185977139796089271871488843476747980365108652175922199267113000411762736757022638063419341344282306233434957744304940377637505290025361554827288882995633131496357737878909046352311545032964938599993253459173260926889251785813040668120198801854400484472282023467458708050577640665327194585459992803190839959395836765332414179023418242601514410670814231142073913672975887230287016724320752913574586550329114383913077782339199971031455747584819432451476061431400448451139161054704753345544572932961215637387113882763293724167995543094372147828233213224895740276962087477363356417592237132898874457020274356213888159381101084095166011449976527733366705886785546087756499189303360905256160632807552282813147885009842630621639002401496204178394847232675171550704378964468927833429349620067558206771924637515637571951355356479621838587957832621213890953596100717214143794647782397616425210692248253906488476736539842680734534540671324374084064935296223939596503452058893027697831455836530336286536636529843182637537682057807667635130291678854130407204008010850233379475931525501082695175011139187226667313187719386291764619450105912717458798638769873658474277335154818631387242786432163048144365434460491608100784573117063087744077001580608061738846300888424841257447045368220724346786323870681769839933025856957732460737288753801938947729688220448866383658173566235289145790263227013636836860760347068263499096315025095819099750219662500871807713147484772674703249545785519485874732777640771423186791864556792462337475048882776127933412693803511334276146877063172153141418823696638434801373033577689819415420659307478394336302906298192070768806972355991452060118187727498002358277553515816224163487924765398409900776304551469550583565228807178911542984496176332970935925081385863564885564659618437656906599656207937724326736090401579619880820047518796134043528033103945865414602124462700539270118042271447966535632598749742551328782838735772460560294025336526968207528831455969682626488849186107041326164689214750433757362064776171061615205873574784970244463464402124267047444365546565756579471301067414528970293143726007393192048003069589346045429877681391183158850911766194526382550660970922094497892585171154152114895882213747278144825496037356079583581648174779336705961243896607640580326300815256961333991044646152179938689288862018784306592631355908334362473925947665771815237726599538472607410358257317755132054343446888850189086630167263438034065759526535782549807403817904096005055571600102913359325023462317294933557649649911123358246605839096941286279009833990938929168387904635419511538118117676108158277857110990809690600642447891977642645519467170613899313433177198745210675311880812010764836602739271842631302960417445652090662195422262481310336326258655583239761013190764453697013676880796073111987752680096017253866003285051569589045118080938774771867135298523628508827588835401462971889118934761582411755102165003541120328794462926428646549656088477483138584406903383844621894101505466952366571274997325069538920418863877313085928550592345962155201568612430712913608187276229937439051284781138251343534316344595222985408723184857624459881494593665714765912883237660788740852255780422997103075885311525401231914198821578978544986792172752771361870099091184987644369439299523649007157929219162338661343121754752420909185899960597630309519681982253807137155153325402773330270146166301829718136492768465163629371987120158246299149892944515625222718675421940207295682702967180930290131191212870491979782540984966886335080733907580478705092074596181280439103540556652834239266379257890631928146688445457274920455659326770568982635413235213934535363132335350275168423619463610171378746160531865848956579262716595648583182448345939570971401347916595034751116901275907038292873124797176422035753023398644183417887678774884783913013310198973095177323191458152307832432204654700389905851850451109755574990622017037269330741147405261466619622706721267804202980393202707848082866002461186774207720287824672181015075935007348142696942760999814911425292151244735610020430750814510088385587276064719256208252737922814057514607063929673882955674125012682870392303926007399043542550437666704353876266981504389306390104170491719422664994939027181967847874478740390560393066627305753641987885763618532588693094766986483483918427162222122886416979624928455422101769895974268259088517986102227684681201424141446036325801519994187325183531779831245765846650271969247503428213349004478061382605886922922001128862386974747311350487778702569529412527593638689791258211374201263441253833266422958706095143054372307463530423053979154793764450553503598760706772783664477156770426903746158618496408014585876985789497671560127935104207750574814090855430237464582673559911211510419786764486366004031256013557657009512371439667879873999296283034469913799854914530766534962996397117605351673742610129202588712139605084050351707956316000495269725701118446013496902913785472074856692278319066010725113163119605761330914164689672967033765716156969671539899829332756010332242010414071011381393458509790038136054714054900873342760713024807522285905353917879182533624397720190072589724417794558518481529046856811099537881206640225079984097490043191563137100365628507871871969176040590315289250518578321141110086881340084105569526818996897374716259592668509980932897942722176920176246164809638205172532671524206299238280004433156017451682634618552240253985815013279827743036911812831734110323046138063880300444561644160329070766372364763852767891398450643008834306770571173118700874454471971506357865827678022183286686158308834930512871706624863516644883158526711040997399406968433770372895487778050840741838040395592528203693347599106813035358205944273214988703930891149481215989096127690184730579441407145038398146262596104148325696581033024832591079807021572216188853412449341966663860741624416325069818632206723089858534046447452926444282135420601168836647473687441445797328428700405553046534283849515997859965008701543530527521688027417088814460854527360927407743402024084536268892423744107488541660416112146197328463393518356525110303881608220927392361487954202267461192728692908304785136402809031118145877551298993500945618904388496700386326502375347104744869561795856026669933005622543636111483347605464384803134365851016080384966929683130992656449291625686421953368406025731026899687242241210410887771345826034271774423707171990654173032263066678247823313582573724587781359471512914747080301141644167656068848072397010632985840410896079914531176754187643366967200972228251497653813216769792535521615680442169259353007574389633616140661010668468318920731748863189597433268183885323190527500116373485487605076722753367919063724943123183808538914391479061520901842601254117688187923943691095118427520742094993327400464422325715998069883860198160277050729740306932872301626373648729777666494129874483321960774715517380655796503941788904524733233782319694636587592908769161302845064888166951832120558334709732210027308743944322052994654297148991938356249511362226496956025235672176399592864361636761860455570320360456267012791989659235277203782015688628377249014758269943652773131994649270740919564959898273345702900302139289148917451694060130348389093254935539646891403735847331716397084722773324998654975437911449457802059175056358044788043517273771743156720335745102413034799843228870390133721707883700124651693043729330610528791333927380936320990495704606732425444259251856279477275293417592183136023445212668702437352901201755020940527801472992608180829875988237048450033115201808651294013988572546204522169679964460166665049174790226321671603602745058928625573219281995676851970155314146101161341510772328424009981247230830959201549874364275072199794379897991195313945499150801032745590147592700918372121010823900320508034764234870791516572009155618514420982821661847787920013146722893573273392250692109258421223589879853472034492710053973098539619266500918061942387106921130067080890815240102257195662906427487673915181965566521741874586496110854233994658894049614709585422891303048253487102739924375703347604222099581596253089935390023751144116049727872917763516817325402765674060191070605070478039894894958236164011341756340327772783753720234573202732136942351830973538733527754323098067761661112882187251288656817691319837348845828478046025473008619579480315726890982084409147561634042565749801343373912599341414577335080404373310362477689435296456236849662069513020212791923783037671204795858867501526912735209195491654131423383170406980561490103888187455645321713926181615694606667887398654492392741724556701971704050102686250899103789141791759519513055137066295233872072909279385844190189602529912542671798793363198468345972584058331160109656655204568402527885065833829495021853015618693937077401008488159058777505298329958624192693805433631644586094146864110282201615824957180007021907607513720808921565212630755109551667985238691344785145084168341448881076275395659418379067239720988097918358548259262930211706615780111915389666790626283330690366290774486101872239353476619750955740590644100327147739367962165818399143340867068599826522712349367474342181576934585280931872421897935806882734549984411544152637442799755043756083154616731220185038529570529169946473704318686538830948210057747509621893422749111715742536573651673854169447082100787318573782761674696281088793316228815395264053074266813665172172721754848653149232617936078046578335575530447171866029436806848574013405474515427245994574526902771064492812492152175634391128933578390281293570333216771314393954214707768835214108918176093375613449761586513979958107159205269133623762273010524057518702871343545484971666805785409229043340487937094670706768647519698211287281175477604517909199905051620466027862401512413502860388694753003841847468154643630066750163054738944475275362385477167658604316015678848738999916939069725596966016627577436750150070462227485089693700565951218140768119552540745320225544470934210794256642581408727875596844987457420003321306197600192576686152337125349361055122806304430157291452799710281012670236702747035272334866534235750590043406277158898198930318114570039473286588081106365720324084835554904041886658176566552632483621806667546059001907734108247372664509570284199650320671596911725085369574693463402734058830059941800984951256714823904010716810712854305154343875930595493665952873314385298617410886047715091930227160340270088937785078127871181726349209803032843540044066493886213665713895045856529207026997836802119418217736061667191810621472738796270402362213994219597733650783696145629126754891937572135643007491142859573634937640281116835518109911823438106777733975493056340022895937728082187960727376366360200178804019424787540159147520660901558731295859004630463117158445489739989204021065360553000541375460950467135764473804666410787170617623609816058180968193229238450818941855745964050741772521589201401398543890300166557954947239381942846665087659193477880346487565267439579255324051748798680562720981954732081535522581573297778525130473561735596077519519029996817589182844205591963027081687635263678898713184744889734002646398647498892539298105690979473684871441910963228667837206163176752433996351363778180261374430169537647636837374479996364955552205102799730835730745603458134418297101722651491723762463255419599324460305470527425114763549195693336860595617377412738591413828394124027912726724885882567221775724819368566896418097355264259374220028604056729858270877905794484036881084808877097055381358452194577812394434616649366983691693687653107456147061204581061439629946709076082785913102643705498264678247204923101012001636338213306009242601781135763657960833198592416584580992113839678446936041536865831671542565575030881495586401591304451848201195340072889820394245869015971815022533939378368331239212482929759536747305046366730723195531481895060393056215320315763974533481334311702450826334728790817870799123883075397298663676812897897835497777218385647213007107407066786629219116798626121149903755749115501424969206847402287790595240623194915323427664325340476734958104054552870454678521870244936738876123288642616113700649964767501746456286530428153554956200003443544647736447418479709317528515859312056582910139064116417628226960284541623080176221495182628518370732264641293054778105649567412243597126044766974823497842071459150264641396462536493315447840070962604404490933384885573964003413805285226166480658708203302288024304244980180840183147332089722595822350639524836598240512327642131835186289760819071201697014145247010687218020797190608857524421846248299051219402398449882117673009798284304876046675708109772509472338152507060822177373698427151623974129760197266226441067663741479306125271233144402514805252504903639833540858735044427337460934757237339938346298934293608922678032158597280686486178252200922862199340973917686035294338989263395244918103864028384672162557059722254842688027146316005493780785354476591180279281610811850089265240377727427780929023836637416535051021124237943447001483730165350341740925164781714599741258479727481136011904302898254391330517147467228888954886215091025665189937806504997134507972301755987945988686713847051862299934927176391826711524554018141418405373177463931085454638968799258145655964464741521857798655077071785126185645483402386356329355220285356074316494386393824336695620747601335199411729544486816733387767237972634766385190750560956178559789245721065637317951630981662807290721665753719422943829518461618476444068827746346946487201552651286467503540504426845919460109804909083652485251362274397921305989240165934060865999447439390215118067895271517032788218767318486390485710305075550585612461484018784634035776948316295963321377417492167737689234017277635134584022463048930584118832204354654071614032658401305531429403062330612242254507848600455671751656916611127231745711299567205321643761743608954256478522011028885163274839785530277714655408581020496895278961641946421689485190483766701234113768485442780501650942288337456688000436020194967752224561157414784472842737366607930959964460844207251872482994319678778089267654799368452541490308880040970038771630317630783445574445530362933561454189573114141955706124236663261167360406856264249155874457235170838656104932307830400598201127124740729416881794328207105722562734351329619298493827175188105321355224006881634724871501773094239446236580720332793765266370053133461443440674708617444684266809446218565226029272252598353324074943920467006819489136046165392564323052925074357592227004566658249903596298669703268415293448327417887658442578778005745908116553757777629342656544270731890063556376720958542328802698608234518677278775963109181365987706745758015298877934085591245963367624508653563161835787852211083509813528011317269997760982354157975977254580564649691940609123415031205915011133516452852744060089687288631199394997948957140907061686906324278248497479538827168671928327632120184794846267085442513008026382894497175752928774274313453001556461492812355624916363456427347788620414629025707014423924378307756500983366064613763178413152494978177338977366434891901723878548490060411589717760468187033306357339733896130664888359026412796699327384551895111128844876066985305229662297557041334888500151570563199952127903304576962649604203932017054363202503064650229353040603057975333929696868154738163347153091765402206201437676928747693737482836511346656758508988056347463420736018658781712991931209389971492594533057112030559952326445684009621030661955679597306608698780335229384835089596054188246079122647210376691953905187536865263249793158920473280379545882777050694343850159849568598226959682622444100907090108112769354418996472591214063988920307398412800078930550444902508928177981518748975403726274288874343159886424504969444008753481727707312324116099813960237898047184837356046524651328887635285664660374394540841761576177223571827437696005099070538510110191047282947969179802622866572027654350319718019689446978208462810800310772026010798780133131566614745156525639405346383413484820597033381441788065666316211281647553506675469364541863472200095681635794996812629700106033321010346357762897300749015801406962795307459666044331282059552326023066688026321271245092573845864219082077210386178532524892013364535656406703616528952708132262792117191504329253883883331802844941800407618942273576469987756324667869793846124259630731863342813634406105246383932850276265762940605919842223364842023524701127300845274911966701119500596802661672110874967042466811640406597657022179792043874812557258380512553410097770574655456597718346719599231820368577042443180648723306906471183303798113664720396510859087628268035504305504605343223272401785381465949986698158469329657807617496364109173917635184083954764772563514026847336408137684191054388158857583381697417859029740235057843371594690730929366505627055551585127705533230377370167281739600744659398115499287646446344110500529644588705171368968272475680127683661362581364997494676198628614205646985176396778807579604684222047515546664736958475497168529703931457335375270752416741745428197641022147298676426903624474245372591920555512429052555701361516234350259582703869931179473549394719087137241294304808577069182248501578819579148113321411901070679662025935882093293629203863633552604485055106211671202951264691451881185782513099248372718312022976208727243435583206108533979161341415870770556495211882980787456439845050598167928986813013966220901237586008917173631196847483377140820402508344299832211515090746088373957864140229907464058418716905451890029764192542210013603147961026981019198010400196092191536823794953773674930752361974464782795516994869421341260944523404468589245136091330033251021397643406701006819492419763892811851842833077082958411259862756845991723219558699606149822605013772662797774648742584041851961398071770239166847745805140460352365490285942785167016960347619995823489566145622104819480996547109489314767044654870785268031714002275266176309393999745384541553495142026769062443529650259064746230376127360556230764121402847459423823914119987305538799423457526082474511326818614751966888955018701357762819809019417592422714587528029070668173764108136306517736093732741637676010290792858533148905273013187946175255818956212319861767005370425467340295804524909415808553269092290300863709164171492676250984299954685844485077685376818614928748879212231987878781780270659055779248775490545489722628723095378745552660559978626524532485653984257368025386594534297390353658910516106176149288799817202053531058464897800027036421492721691856742341218453152489918215156124152654788666683392582471526478311086078131301713050638720359524802546241775909132667840385530441211801516995579562510124609646759955435017968319780570755137025530828487979307706266974206106251995802434308744207749734107373195733564369796908373990946892511647073761616163325150248124495710565150482520702731697354859577279698418296553719344355315209003022159576206895435598337068128096766138866695336421741477546118434153359422259889797961212126087369413640097777093765172929975486339631998601889340840216264463181148791916227277342918487990781632806622112095741606522920052735528064497942851192660622056059653908880445027646540290416994501786588922033683096414433690432721990906773751226663071984070070461018311905496346827823997633655098834722208019750045687853668290356434456460696770990767087072579850448275766638576542796339299044828152294911969415657116969504124970340008688598295783494346690388209092538058922350909358158885228043406303161033551991690372233215054274796242137208420247680075187739859206901756185066383923899045445486390017122458331082009934391765008264618462493047278179216496803441312238473186446108471618937183418751651255336165342360677621058912118776311346388072367465645904809161965995307300410188185189704829617900316275390912320989733613110095955779593216817864476361369115066639703674713940427075550986598403529074159447295972774696593213391858229487933402380974637919504113303887541551383082479674334160137045655996317120021337476090012375767502818111052580672694815248499053840056329500018878304172670696176195220849791245951258485850520542842087843500645801547614512478264093652087568452889717932652024133525954453229099495989063241209081242815861384375729470603486109054047174605195867015517771044338255527655908999369296916541437747569641808746065110623922095410469225562781678836374520571126616691299132041321579669852127150231065745855963092118686988442451927005754909640544362265075729296927834368997936800392202911857615871461470210889802223719807081419303411995666993088100319446792875179558532524248522713905564002517121168742886534021722143157338378937480871074299624641834217329168132621886867693219171502865774021092225054135690693390678989091716275611080400026908608012966411663343696750428493357924965270328161336848566587997697455391164615468053632932941214110603253147502569018014266039288625656364616514521909227462058226209875248734594340000838244337338404986078016471032208722522056266151650005549101268480626802657211802972934251431665215029128914969107694513805328134925614969291921636290049300445346350230934218503920277279386513635224207504490353438784955392951129079014720117573575295706669105887246299182604092653541726243155675482631434385972739329967432517994969258031433842349406206972944139255143513582219279578180823486758727042506896705997088643602294129516179495581475137225819280223000331250641251994787176210314871158155685099330554847972261663078627140428004463492711042887976792226941587329996630075906865483686624974634827049638359050239455053614670905674572751537727598197644371005670624830672659373349470166183120996653956892402766572872797228791759031961989510516802288470354679338109352151865462854615226813206574926081452419117769134811285565676813362935125463101946707686033108152966792006018333521558498195015695865210322340771266238384895640530336414207036058782279644159707414176187050027235539472377067332420342956415929789067932336107947267823916822661252108917736340347337583091066645588276975407500854432941019122576354727765289707071538777683681581712293831934953370040954487940250545307336035933678532823418874183270849748576962953821845602082234894583937021701383021981656689604277614133818349464929714472676446851884704884281363537500302848138498872187005886901260324623172177840261303383195390079910604826734302229579511881768537344987478676732094696759584549670896145656775185126992591367413245143434780701973594239298972081148434299378115076612704376600621707781175749665800452326749340794438200659923603098607579292502015049610995649091823583273837850806496627092247743109011247832192141187414647171486624003280689561631199495311179819051072082283146818193991842640319788511414673204558021226202399773976901036875615405027647014937852878832044010150724535401143040831713828798288607394284813203179046012680777147062350582697046167154675891534337897177926574648169524470750147090823702523426018959796254425650069828759389217344612728825634041211214792806126790903677482030617320609676455200909561496683666829999879483873963236241237328205261832403667384911356247112530393828715995289396618900669085067906947991853779533315435608573035359315126606579236575429875949450280546995187000585311867187195816466808350282491428189227785311921194021175854921214010673236056500837313773330728710737118692349879091023414448872073336582258557453622120051104491401122512550566662316932094299992328093217714045758779378478381041137203272968602046719912081605006084097411771355416284273731847488956277876235555966408459887724768745143343058688487764150803930092660932349705230862949424246374458458678296100310282712615480154615128853924078605908892511467361737053335064295919787462561243653037706744783845623110597702052558691565728913551257970498596964299801471592667746159090999911203005024781379238642045517779002012549275411112390184168907478501165671348495885931355980089724520498893143745191904418088291389271823950373053141709787421649102061462505336193395917775351939010219200354024394834532623170029304165321413534077257239039093108503521410781866805355356412604526868956642297294214593600419486982273465645909744304193867441562293433710006318201090361926768883568263344370034454544311349576860647089676711228170927937031531890125917777149411694416619730857929354822267085696193658507886022344463650833529099350080726964674792629822646519202090595438655842277241839060942024107458454866776020865100948825042432467052006692204454498979946544671918981917866862456558080829876839264739061114835545513539471755766061622379346656506696478883044996160481280181691155317853354742503538941434240089842714113847181897481908389396536168432239418752659515431607589815127135136884071319838237263285691346953908586468704968584270875382877401078884758657554962677203635857425468430071431492707325049771677782109367932925997533295067207530682390987424821184044690326042319268357520075932692250023713512486996657105780926772841159533754375074201042354500208716899753325315893440914719229161998392212774866720334297531442786342934494561946737114716758170753904781969615682338555831545259397464276641714884221491995734164644173742068178118484516562983304523944166579194150082938979414047151164765183637126454441730309428705314407432944367633154035536076726104699590154268566761480393585864346320144551917486578054623510577893272378382980793621768016701988933074134003127213062773708994522043712813120945068261596406943424365105906467992297522950539994212653255975566829923663585208566976449360730051232117833334380380418140183479192275057152218011919902588044011290152616112966294663279367231607466559729657712841898042807248116708713648294487125624338864832562958563571645704476314589445840638581796807052168441906712877462216269832106150897697128364627985584524789129978017029007691610937036511250755619942172316406850357358735392975312768781667529707523810376414862099225483593013622196706539109422325022162400637745233455193486047661781236366672881716025387019389964067672371071225266580035710166421666278060960719622339393951256208762916670521623133098429293609556269090977988431387751955832519985031910957731780090862770204647716253542618772717866583487476038085879339188228508634989149822938742951606325364767377866225436683980390789497269933819512584864150284282736047763166846148629290018566786559642579824587900054514644815790839140815125282868216775964317021445556168055492978986605504039227328672411916333933486044404518756165646694708186043809761166618378199383362308154889998564371262153504865136040040897428164599432017476343943890882188299054617397611045732734865266025213310586798478516804628624332907830363828522073651774486359275010024508958692462974842205784364882061322086230426444572201039325209099531030270698033598886460942052407753386877342777672593102982547393858004391778128005106153558047758652395460965016891059966282490494960195803854157376466586891443458448745946389500243443089866539332869505048069713858123549885107409892279158366421435348265062672686698913337790015781176234270040175993392208251925536354813279104273798107060608026976558385318575527822132760935799815542628290397786135572584067094967570148086464893803421620936912561263301349729769289620267731101176393313371116028304327103026403049962344250031163303171073636854427328374533898794235565257166129595277528639068224760313953813169001717084749604713159580699846771584529089625625833265726891004711312113174117608282126098744937190503492097390087230432935515163011655705102535039090092685272661164917140593595185943101657586681300784604861959830530120930904931327926152053938050311610738499557093988387113917977369895456896361204108594105505616602926658432590230165482505067421483138996983705501171997367484635130625668338147874522270764154291682550741843308212092421333971251120005792785178860978920255922561314658982589378380552722949253087063850420261618000822872235064694452828197392005951757651253995994884849204806549595952488227994281770190078676620974073235134064363530729993585560020121596350811432312689480679818430697321561996520653467293855903677382865641051049767410419452771049843083191251056540495682184609087812069680976146612221932166672892654323850140316122090462264027319640679696650109699914846811310174127849279490904288299497384092039412848381668109418588268341548301509973477930657982789701654512626749838340433498045009908974183005696344131493173484622750923457149359121545683847678744530195447990292864468882087401140710358940502732213635104765007118264009451495233709835184305393798931518806858890925863462158072767400936317595061183478075599730633354635130855681842968795171593677729815149165899789350264071980220325140761697048645662668944102550057030617516168361573891766305890966980671062864786122317944634497513653096266370403506219106448740437013132243575320937348915048614776267844083580714791387415261773832775946945452044219448524242135782695071219680885131607825265398430044250820672175394090631926200755720743580332166111143593974198690105315736504803806676657722458006461985296268673051777040932164918609305253514878929383638487172989217713036575744061026599684959931170652763332531760846158924412948564841605915808168155658767704482370446418417070658389348027921902186919258279892815586694920491890270933682908189897149075520217863847579219934320317282567380622295101479161650886854163510658780318919331761662249412022709700189501597920724321977092576454276959145267448709901983801219278866946386333402973058997231763415372039415374431385098622194939886123007058980485356096179510392224538990197777185816555169375410000679234291683242551997221664262859478454362590090104261188104439486050222020928589903126569189134602196018126802254088795997800124193914786975229615452560493421695266801223146119355509084543957886051649562361541142545915512926454005124005021863927949541541492208246912020159574741518361570484501186249009244030466066944140636673810750223692937190325777426136117586169971314293286164598520486150222666492215761564467678415882148769430364270328184317602657082427573102297410714540060628355488307319887610802929910596093524470625217727829757784742443212841370602898398085989850973474831695851719746934057646760784030804458440640444621074892991751145140912687907814618224923754323692760766975068968286172818550886600573459548090132781271217368336917204309743328172388322499674002073531058233526240140021317910549836199732278244320120083868510929487471430617454324056891144765956320746998619139838613257340915375918541440657254060888886218915885247935057183765008478017262606630143087876556164384264373346517749922276013787425021880228667317162668939606770377255145788293317313635360438583861489367455953073398123889661965837311167810472232157794401597049012742903553271386546482887028100476336363929579774514868407235313212005562318200160489483747866459637392760473327324438730726966975193911393170079121101856617726382963971867518301194559230542410991400734245829576275903528526761107444736640214531867895201045217844243256516490376320471404708404798943715704343964717476559328758067028994467192080886691570472066174965880931757929584098467165418708032306963929087955397304986547339317403586209815439147462115621805179685192905511047498411679385870692591872687687580773157815709026404192715977023946857602952978212143141046913567148763176505610728613799148286207465911310648483109989555097319700987988481501387730436445294589975936084506631291304294038889501057471506152241970411850847312085069495118790167740037753124116922209054450699013606633606055330762653814893047726195495417332023738478154130800992101218652167698128089120806659355419454853030512062186045316068302708443703483851112761418628413638362175304726547446349875201598060049829563447879687959189798794881093640720134382098765027168183728483031003431204179053326678405766239611475226817613724018564087296725913248767973650480089187250849064488357742292739767120489317757028709883907715924437368178743717937615456862170127843389973207727538180493186481819552627313341932795011562811405676121557977868096506022796764197148389017075385543797281202139134729732952062971559801662467763448510277553805604880220159789412066840653614291039789542302219051527364335155088770680006743720611293779499243607606666548229486814416518579196296575074621287350377773998734844945012528872575955080224169410977848928304551753780596114258145005899021604726638441453091944720458130122638030829954419146380094350781769164848155043472680278431878514408117705439769621226130307502792126185313813624199051929731536387554615221836033462620148288343818451685517006431506127450451382590104055322654580355818372507946101025924305393286105808838175967997523348996921327935849702853937013084726717844513420619265864112061159734431121593831638981836518059260909549403235242063041878230499833522143769563796097936101887850206195253434827071729865224566271237816569038480645883558634039234333902871368216768950167065616784939412108764902859697796657055325589306239099408296002096195420023760397842762844957367834028236109887475976190340544767146098114344507280124645055836497652721032964163095283152592232171557981951324969269415526402378900512729697074987358492772307733448986287453372486483416691344793598606772490508936680551908378527262408727811639354656314156654751627934554981799588660375062880099885158806075383931716022581272341426859702167832888074264946012263021743362112156041285360698750208169200215674410306119935015407355665043518018687865053492581112538031377381246352999945103742089326410514000419759102286544631602965488727756903052344988315083021716354601284736840901393275020563972397853094652181327333780868922980212376627743189013852949969886953661186426788063365321144688085892051855063438137014647584106877650113171753857543885957871667487395987405569134630767018261533359628186825685453407334830124862877963618922996976929773942241054339120187170839304268527607792029540834333089791364397480064666941755679977248403173357554205827507015187075929609649796107712821231406779673699151161395974943234919483334393495736616536893220940478699566741717968592825102817984578617033412209055650889195602759245423925193091743390598775428371101374781812736701440524823658391917423516584206086053189982829366963333348882842169781954522565566187900258929275822734721234559291259274505154346518294931300819397598147800369700198572022841948989229505537369056226062513332302266986310501082030613733526925788829429911202347479578973408073763472022931908722316085383492647019210815784272575701656878799455772715279080126651805719887704296472544045708829309870576569646505986501591837585943695882511630464665359231876212903260390807256881214347735589089754488879432169727319446623179457125525318026921983055955153322775168253584803626936533276055807102246356836350889260338064868985247061955415630497062251402642862864574159503842859805559143521680299899133740127714814032478531769689495813178129613771484437654342537413588556552838288545085588604130722599485467623486238463741184972261267615502100716004086801955122291686547104451149425850504644681420383814288114005224989561033985388499521268675025941800345136187477481248392274125363619814434608463679987544889599057822937781936510909674137779586130887205929439455261183798231182212672584286180594531233269258540621688396424192520373924404258630418790327822898814718784619060265716042465740545581699837905799702361929879176211275728005010238238100256289196349771970647577676231909241798335833260102941326493410680035666894783042850374173932708928125748145092585950986852297239335768874822417948142885047892036906208302617638001962404346341193937259520902656449922897433326706109810916797874205817485931515290501318573616895329599014867607728793824217268993996138603942113964541968655210120046186010684312708554693124395692691407901245655411868335510711216587077866165452284336555803166189812758215839633830873377603174880422149106546576099816505884585433608982710785476077848222739273792716540769061099326313724000238352075526675896693473857727120228442078732541998618137852351881942614685303869364286535938841874309884633649023151869214797641128997451968083614755549193853130390243732898841469624331527736451304543846538241734945250523103900404076019324091782004263951944145082148743364038432848873887303213058373572593163041089932229775808913337073758648715855344808002319428503950533176454522489215594618450696065468470353654281766133244114985621630692073050672066686506938162264345013984005614899889427387382114588351470069613914008401281264464384219930055793028910071925245182739926548621879266311943635339484171839078160358754181919457767897890990071560262565485696857608839316184584072246825279170770909005895062994006916219758776283810858893806752113362763616758107708478975023038307500081463389323369627236111918517595966872727660964309390730671483403090500081073410504712824841067704579588899141759248185777088455102803486425637169281718615597279503969107653128839736482560261596213555395801689036656828397538245712781882268980796522398820542909024861038921553472482857388439771700295085572098949751009021702178536046225358102968553105340623126331082808343285831068846707740887245909452783096671190068549797809969160740861247505142918559403874159005349597903150533666096388336021425498370891550526331617500988612013595686623940852015156539642070625186442764297216832171039650598655339568802210670272742037933813164362452735108515762790203791096114325333401569622689352418501766428845718043537582524055353105635773867852456502202333041174439475593400108284923349816682955845353772226006825661406196758673754789058262326574566873710360308732616319358951080478270587812162750441335240657731138961758958647372948279505870952871193443819551573093139805021342586591328659619553914409539693374476575503412317657355505993234247455362656229489959257225312302733451302222982277074116503950229549690809814476176155844341696727419193770973595103853175861090975262385305400593468004132293130429200977310783587736569561267793432511832514572389421041427272359814710327984888677935535806380099533641185274618846596931797583043621568762736988599762277881537656864376833780199135373342844291947319303241524707186858612764666404961254270123592022144419842018721613820726672098354231736247555914028626056822717968428795142446187530741114064079543360530484596224467355873743751888820908683428735605822528547474709295171318850378575588633109629327711072999064623545192399792225008523346892907571423185050141503823334762142828132322781557628655344030249911360068028738563075096076898403543963209876969466720726783013243922278093104255845950035470649785785706018402732120132532554603213933503384378507957766379630740904489057597462181205461146815540805377807131212153477596608779166961998163180798593263276556068842756188384637362151259478223136210767521938305985691462943538405794500234419814003801421385381588617859811212692118344298472163993625860487331473493227944310333713105225214201165822988579249637561134836529896930264536178484551182748204213856988113807407507528473221016922667564955213711462018628226259644248184461625909725746348664327514515531672387660451725144907451827510460562377711664439968475607635576239352304627373639736492675132604509083375150693668967029527781600830080724674027569557307244460466022871007740718156555587685034825170163458398355259634617920094270441846757373831633850896936518502579699013160588330258586599919450337987121416284033799472280298099240254006913790379071297833010157849197217874030810191596707195697148784741268905370314861341971045823346222179671771977834772999215275231348456164529483332716794629042032361685391996571246177824176340586681280039405095634778085189029148794033548432717575287315415867373632386519685639119784151220356006263198198537010859633663262065155047046298915511198522060172056180120693574551595385080993504386383072871019695701388765423852534047514750461804592893476267272413238160667437331860092788113856782064180754193616574823961549845836756257362508189646935554547535617914248363130501655971235139946743584011923960557837417635577594207861690714206819518073965919679070998208468202622857334744151342754666460253538487313119445119375452177866624699630992548460499818505429709690162262807901934341366597195788786705279391463347042000552637183018949597091886871591486108711004220666980873579133875224724228891518829550904433334853299720474450730297842205818044197700662964002331927096480417483232185616900547020715879671918906012430423110761059685883918195703796930071992403421714544656387117082712697801443627948528544044015903852836173972009747611333300220853371015665009118420121688154014277688292336808404593472407761522329649492563694574782391003820370260730024486169653808752608011022694474163384011000462732470039344933817858175691030507525034835765281706384055819681080524092401232597700753011553221313138729005871569065793853243848648331726451329793047139713633991536041217297185039725516990310895149375268065678757720850654300636617545766706833554062639203428617101011424511781203771477128341264865809557482691941113222794668322649024566199532196825403632541108828224973853937709972513352754944070324412380285314731183602349436903010171063370466938838072191042850468850563184421460066998503989220779840096908546557511799789316386955332412108131303508389768443194390287443019048702257244855603029622679407133728918897262961555303228484854321672527735103135514210924578706586017619953049128832444549900446682205641137752537066892383131020309068017245967993680003019093214172633914737669412715443913140530551032544253252525603645897598746728970066428563885986526100167841912315414915062158441231365883499990878974080064176745985883679980558156092848039015498411183466565706855099809691724191610529913259680636120260693383468279074248710290392081493956647729445244423034121538150669225884992951055871712405953978523010083955935822635732845402959964372492690525501807977477133956767326522627599885308882287365989619978204422647351645214627562401769561124205553357223988793587912381276071462790282170380524064518572948416621441685042977052952530560740395866220768508753809815006205650463842711687049581966628655431934297933306745288464679515423486373392580330429658475775750825609029891661769654624749597289168704858177736204704218333302795307664572240755937432824161703027753492209128286328889834447429398357150283539278929143547928011435055490094658398542961026044267894942402405842779009813701489726019041405844497252666623993106953763046936732914108612465772982355927967644985072463148060967610160238895947583560012793647697325270353753635146088699439189412935786120654457337595066430325338024609871749295553723003441439308773289773498046206170744887379837449285973717728952518488759355089451213103767905138357039321130544786089493112758374443704421132278722719369798782746114951882979044389528191818317197360165746368436738043926119973021078928700842928775957382392543189142688132239773317220216476966608571569621828066704910893815744626934788455329824703930630077630532869474141836964055442638813276096491549459397983155035964529498457385413724371970227398876259671345960730921461539906206104291743282445824241126484337283831629292031432148651092727593998196722688211116582408897344452016139803513298676022875942193595241208647315963659627098517186263405976772063715100350316396338959542265830399843214354924169321963554357175396399010352295472945049006813648826800884740182760628237915536078371032087892144498337000450496718106333273914661899908898408713376770277834863144761970459552983254631931377370141664238590733708066167623152549459403990914226578899080508601752845252394824344816114761033671112808836571623366637917009949877794259751784101365513815207929561133315936033459257833181752351367435723042682486127281236736906014688530462747661996017313850535730803145698857749587312270696127296364532839454021791964792729188908002484501002621949023643886510662801385243557532148598503278672281490218142867273327822633510201577964694189906660603162431368397088835221896966320507608763354265894025064706675704208778741250558387043978472917787811996208778275755407139213773933916464336287071286888342971028615211256768949722204623775317194135934354422764671178436942901235334128871900924553989189007309071978512027942579326846699676486164153452201630980092538618055781309228144605640080357754103707256487998381914484726780769559779165514840149363379506554831146837739438812203605683744169177565752291322983163359778068931935831515064089014452161675420496195334599946221699858253269745836741110232355545938242991710481230434867768748575723809388279831296500187627404723760187963236595847840172152078980796472297752687444990310573036503908072300465514153107662633584717987693308277519391612010929240496756944848469726170839636662212831687666296693290900880649304137383557630969750957951699117503516245455851135772269420072891211082175479502230120975167162387751674977254323982031489516384037499613225236485956214367800030688083054599002292681766957785938517142039950175445877657198869337745852142320009757540114471970483098980778088156672065167816509768305104271248721400735835562629362484088155720850186408358453042532857644872097340982864951516118965932868200354126593885346544029461690011019341812687797722023707163532406337774470668189810612365905114747487672775992835138533113366463064036203625243931244692236159796208985183969326364936810885932867962423040881808864719928919933888484993927517655463465697896131918472464787607882132558501238229476781175905616932474573072249094194542807841377330860440169041328315503352448481153110749545134460222892720071692568519646802283948278927446850388076239261016932675459649278752772806270321027726347262718883235639134015592372499511304805213842610496189101136597748583887787178424936214252687001092973099802201097912943966836713138339079084183657667403986904577313831013042146908258549284897655468965066275435308335781213699028377518077731482524953733288268057299239002084987334027775694342710140885503798376434046316756504730867167658826202418383978019412487806329132656860570589782931156959802921717420759641808454843101627218101081840368995132509680146354166877617623201084761915765663805674271337736010624414330149523639183180055491194204486145910910969874504894648449503532145404261343214653355939251841534791933965340722643247783394333680298070199620106847007924710120155619961571061403036296558016973941998277559690547842766846619818352825308464232176686846242744733629097650171422871660389245741001923193522415072739485886152542649501728134679871721848722590220108714849078228562299472732814574502116188831924204118797498349197309606091081702296029281806063784394466799785473039702616114613337724277798169047971256495981105896173638610060841773571903037483141432089544643866788747774390515765141119006506253157599250322927817453567230419519763746057643361182558506335611978490399346149990187474856083517363445755588189713168656999959690452843086729325799260542036048156272938861803738615822649556268878252563334377096539656798335865395161363634024827276386931809005390840648418947539630668684428527816911783320767468407891200737226873136231361929434306611302910881118803364456498761358769919009588317847579613074538064454281625535289977701427812440066189430618383806779275171747274667929496095507600314561696048548200412278194844182260714885507199578679335355851525596033903018822136084206976055745141930612207625885374177932569260339343955571029610723014951130267618704183464470827961139767081857960733880692117810091332798847406535774826481392740523605238058385096085735423792243497948808735071975831620578218057317956366733107333293506965477952936555394875782946538643009471925226039477275904797152956775998303686357984287869287332212032665683375534960378690083244559332248374802643139401427729521167781285609153150949693381416806619780802235424199011364917176809093640285609150583722068724698670116219167813857039760718431592675763503973521584031107277023715635698817820102155960398981260706808595669928884663064941041499053333156803131860427817239461093423331087175770099261738307862931888389106663754621597897504895222741375418608717074710865987037306171978322352142344314961144576307915358604913901824969972155533469132461716685358658093719834576278117844850804736711049528570193359883808090913452499977133039528938041364636650477785377320022916080948366198664734636658834631531920074623377689455384389917340322269629286635944302356098170475179667490061880286551135970500126496143342998937759885959418162409454987795503198033550296715848253915880746437838398525242679672728473769177581556588721055476848278606505238365481918879874838674493407004867408425344062880304774400726902018448295603704074992709095132697161458890317929388628033872626384641399228894109547613099295329373540283177203814719506425883847801992880329577557297853500159670762864814830690999234784818666605259481770292700136534961568954919063795552994895630136202622545316475821522833853761015319739980121478457141417398456225271933018119512603016279505776273159443255995198990744354943310045646335677465513197283591244325986947330741126278926066346499083143553120780523718637030158211500604984833629221254098482425021467147067175982966093705019048992869323107137668746760264495227044678463086523818499788077289734214605731601412283312871148371912323876056431371378622906692586804378113483327635750785016780220811235498385435448227027749607372127922523074643872223490574426156346984436341865270086328901283926780663209021850006301927803409820191242681767319274272154129347326454908925358825696381471458511458431219702609557711473648658001435748365312039668111354186627845179909082785016229928147072013403280787763723787451993085818802317810789803839751010689498777545028420379441884738926595287916919367782253142770853171274421925525553347896280311369054133376927464304827425971135053373737970313254237249137733868896147784973993513145765480968832153384319275029849519269066291979793011540993844982826332177732542293409893676459920290617357058191766887117024920890773769294172599402737842244208615023286053113773177498833761365565270743098582188743685619465311196605259814656713317156858186096462398022095729642492538062868915182172460336678200186928491742969852289514199830478762853015745472221498965045420601648432562936216957838819991053696182420464681937085576223182371394017999717946658305900655772596428519449624885387831414743730188926165622696767026334840060045378881955721859576806358796085822512538098625655061989453154853052693462586001338348453565949330882560295841914318374983776588999075598055576700422690729504179903304169890254989907904999593965097409462153513177476460045228277552768597114723764170270364618872989171907116645505533174606949669173853737235550398526742742903784632315175598412530595430387557522074105196511908105130563137297817739085618171061451978490228209207801666817764639653320847467702474924271099742921810679604564621863417287328915890080330323372138961486170664983762104010599556481525551584058524217862395381502526862855155250006402341224014665747035259621603666641369635581308780032184618117732287842685891679360400131541556958877604914712788964874655790336758155108051762238977505602210355390651264397039735594327027717754970462983348999929282688455642645375016143519812727787831941760373854442449069417134360614691278753220715107303423659128740055293220730261997816052481032891158781404924315556742658375513925831355013299773653389128645229400076404770843176154738223100662853624851423024277617058379378661792155301187561172767090164672683357413233689855131615158457547178793200240091247052744436755320735618949851224561141101801495321913690314391246951578715771311507561325962760410536141101950887145180763195835785334474727131388077532411283352939381093871163124501383244210315185442125070908578812629417744941363830874084598800322191421170007259960975021201086595152708334679021434621708351026027814828707090454553970765274467513022463332716747928208911209508157721620321016691044847580324864330881460787863073043039511890610465361880211472436920571767639561643762135083420026147788204356727809638979020770096644063035843994422727601441557505703710021383329124768006530275469279096416304835190806577067507835504411668299901161353897326570681816310225298729057005881569161128420797714752918918359867951977660800820624706186609503419844404937094599999587383664667205433514653047663684249904022213196384114903713123838312990792484912992230578404391523807858177697420948713828183091877364450647072210096528000947094035762923751810801352969628182286897831362490711257823570519810888939476704084913942434048719101523082223209154169706899391030501832327569989819391686693089684287168111537971434829387036492983469096291695721132291879694939292882673043182281642873631572431219136019355337673783199086806322221032634721834521186596897665528586418442332662151264539828620114480487303487482816344995337468328729112249087933666930712596869734373122767602061912088391149983704113960796044662487712610398514571850066951304673088428618678983555588136613475119354276454000562769861756906026966378806872436401957520634991762150637528990200937803178125098856060601288756449372363163729286156859706896111892519533040964473498049093283971380040364945247688591850451352547041470594159732402315850860692116322514983770916006379582183257121934215435086541278527346555906899930968730265673138791375822123271015209239579677565119614381819205008562079237544516349207294872209581676300661782882990552758361735568402101144081005143251609012562957999175178161918445190982101196645803917560967877909139738953441945342694858695801765870224000965157945081278445259059669502346078859242782381735744329583503763555174490322828588979330623113592548718034773712987170559564910790184538802504633022982964288066601896026048190711549955243721949169846857980924634548366671188408287563797909153896322589036424947027893606038934400692182149620939901886264112284855707935144832123533000655968359670935312126185629586689782607702016685261119097605294682605775772521324294513048316645589408563243895003294875246473824029271299557839381221219025752776098346914002215150123711306368027757484310680174552357572085620044196135489084312997591288724854773965149763443565614740336242966845230857621934061255185238821730793959186385765948657608420031677702729431349507416575393722006236349713688014087136411204191412566174383973564426598614599416850037618116118785148934729784080464308638833391114606522853218022841461513568201140292833284477975466910221011567236226488749593166691887478308395166651153619601086445730617526517673230903204314969358521229771580748660471064261886902893380025310671064429080097669247928075913879023885615257257199363350527282918831597461447130530382789514163126756148434959525253211516642992445260054610563908903434726484963889513961437272239555967947182217162210120698777541711172359940271712903314492338863395156289395365460189188430118199252708703276931675930925856801311683069749955863700504810573088500256081505277022171775764539966634973524673401380887524607120273846888377749609815839600607319451926693425730025145915897116673554911854264119543951703267078177727354615238817697883037686862444748072305521940576158805026759397478599644688645549153908128904017538470756488910833380881883894498999511616455905334525877892862171410418296533581401814831214415830286356787587656592388858908664375332277769675522204194866353941476985885571057521300142985402133808911781288315654166089753816139541366781228731197355786357273402119567558139892844361056345093558568609376137036857870399757868237852543082549550076738450756763508718808010287662825400502873152219519551591951750555299627647404868767129318573855760887634849390399801741512682961632951321975767909391090952495097417608382605809392599120614336269314439178533138454795235398402309973718074512809962029417322486897489880705042349585611419117287658722832671576908031071606677603342195112562775361472249809019571520690882845690546363812597045382337851452311466990778421363130503838946451288610581159003885344564255621849432064374808565321996579551440974729451241400785280432225621206701025466432717556516067890452287416609130077950897091025917423158808704516241129436309479028640856150642209618323245479248038654516541334631150494458850576518144023234830949971260806558544113035429346860718534317583140431319017169062262194970468072144619947373207091609075044665528000932242492414691323666600207018684610084292633989295726902796297976282703156346475809052988314447448098766974790034776880721050613347381781860953544420276212646194860181006001485966429772989994917377666710567871764364302601128817249009783680316994608068235925268085009369030949909593000025547666865887004134793637679499857823660875894136240597721140164203194446308367128531577584347659233904893517620327271075497955176245734591641770809354651381355660845201511786809406259030677647440581239861850170844809439683212795186433667655717483473447969746047343896973780283890157640349127828483138449401230971287879874613524774981923238427401375950936287690425577274081128764728707100311724396384895054207306697594200550469293877643120123678316671271434237394059305868119681940203918881169092333876575890988854076195179901893581104129210330517022670044712626940954308040560452550258603751352440818006989604556288126736557895361560905513864410995531272680578178079942262731506178103479712248391318178635538616623879279056739264064952052988539260465500611257919371727451073124349410321325654192874470280481858110636494595081226482691149040335861488835435116961159750805243442743304669421332795322600934274449915409378504123480146169289901740187725493266956467037890063143778909058153894924684535321652668009806507339599801531257319586407527347491472874528803179405730416450581961762351122708214620705135798438019978110766969937045616795029420914389789543431308718188804553539988751588277407456099874602454724133930997157505504943584765078897470320060942647800323315755797590552605163510152672288961435073168347900362687917024419510636086491632592451617511473226505406254038606787757888975294949485848961700515680344576973268653672656716494820376267657059088164318201718130585851127868913816280262729622151512322397069725995147836083364794742435666549627349917317065536009367955293037363867163458948749626030341973374793704719387323915590678590761909540198312573056652161896698608867191268600526892442293204285300613955917974242892405486379923424190528520187934483618118230076980788009211648461879768115203891678853263007324877656546878162092546027017639629233107247371758091115383623817325596178169773334871715048447216886562238977191920756404313746082447579423113193923242612128924962106139133798498352659762095213294607873026142615662936236395139341515831353299845819120554386333437355143897280742553600009007395735239621804714293721659365169898479005091904003755130678833548248812260351642974961556827020866492355252028196435161465527751387591494658164138343394489637363503506347169869553424252014412657486885693703844336142630457916685704589527982596391346422873143650841742002722440146543894568104615528246127533059142428510940152091411292879825015109082117836013665109148516976846935593640494655168213865271486159968113438268038898711642979175074019515774218312501729997383977409345292615453824656884322665922512286369782587245236149911310562282568502865647766839423472562976117006251308098087044165161481297745563872608229378777968017786308064415054702369840868697705265406387325492431485642586550869846053952342135691031511316077868503823905591523192499178032618760803933190021914951939676187868380060420016654783755943661005302226647725809336188674215973432906429305329564336812510028676350782309325229324310581534015135950392963065380984931224014574597612093921756298227947910701995537383108824237946797465641882976112388572805565059597391307903338350689752341259520032791700078751214579839034058150214149286821243982665683440556590617250008787291224058081488991403448601610704958676536089599227521312528611883870835481264969858958757628263132490214260858557887311222984354783057332412819722265627286812713215051252272368518756839837951193759333114397214106304390171127962192630584123051439364066361970706248812719136864883457291913224386811747890005501453053516838119737979422298106068256989038854710817352111946736269888675768511516955431306488709942857316170486368741378389268891334993054975193197507985463976958339044170063630884871585561340951665290734962030580928314036373897366679468025621930901744972351809091226964755393749618154467405325514475616040578613145005076362461657613019112405892889394958405977034570430206609643996498883077665331585723655639082736477238812036371788249442842404564464898677683865950601832837312847675159428641632031605972607650710919406323648005360746509143709591087571935245161194504244063140394748166250616806166267870363152258098649116982662581614381259762305025708052300328819862331259045635931422215059181213717638114617336707371416863408050680504785081613600531366548239973351709827267655103054791735101876622258202743384468849775140717560184136607678715059795113084624859984969840556665742254626776654134911710188239323849968066305497081478170527288117879024409593588438574366230326253063647668929225974000545203066235383449591333938233039492631437908944698205699944652890063569354779092209748821406213548229182187239880130998197784377594933210110884630853867085879463554112429132181920856795319502678635203669997295552899271363770982461054794213395567616674575199667844715595330387333442580186890536982103557280731983221026858146365616878913277517361677363275202200364655370633157001782368429397706016471623522527069985290180963758030397502457357507663578736393667976437387189409025717767499331177884879841837031122805295582575537689135834576620179439406410368814422030470735053213693867106348130673695618195129383748996913933147752126542640006348192995287499588787367326028153565488450146320372311422679767460597853372302234564288181397770672014234131165528915553764495876202846484843703679098397860900618984733659713413877743337560517977718105629080225003559435015310041878611437444399066573181513794173240108220754061614606484970977128928006446083727039891370126863217436729006081739621050803747256348099462622185712407024136512738811703833322353418858374692018934458889443951485650327154559546585899094792798811229474456896388449212735059631170227897858170443446510098530655878772002670323781336070742988548887093446946082269872573547404503961351128443152029453111217540302964475695714632004749855443842790604103049653058369411440277707614043034053314218782913299087990199458142385084594449919203483704678884928937014111027947565151193207182162999456532516725854618719162538883919448720003759519189866716930968059337609284316032533536821364966881661785024446700533255923935450338882888538223313481453699346591257642748423494188808187540521032891186386704482724622103396490567342929670019554511840420757907751883693383517646471188451925521758511963833055738490705032955438261945594772983537047995125483478734774141808203353138676025004039200808525127105981568111264482042561292681873972044653223992150781380299199316291845338151830213342635385942210634563807151845059195919372074069413286799108165938427214277232087937080066359814104619524800311078673491625677847806497431851647507858283845409015304910656563720276800467164165683834644903683533271688425897638846803757958194453500561790973163192094316924598261035693099337651689566755144393836079972065185889963788641254308127093497142609821467873355897954707897293354042894840816375592162123076572164941399445946783601485746163862176204357050149625335328628349090267451348673312832056272171072566517008895713173104271081448315393295353946224967996204173569134257890313550881730202856789056758735192334980513623672825291548785190660210916459053696712806078119958952585828082629845993235777907867968632505195608224866539150539135976936046484654975374668326221309412854460312698512617687636861191083129086216179357913959148014295240300520528825419467776026069101365423762326804377469850517781173548143482033711646491284147559461559666402062622247053425214896753129198507681176883232413472525313366272547067085418120712946489897776146275290656216655483080669970923218164863568196124539182493962965479497301404049978921362864523841393571924760562265180084400467447757156107737853557633435391524062080829296099173914700101851537261616853944316899355078185918033329088660194812482484846427740887999546056238039189789485095470306432883152988864652716265084542269610992896982593500906470377187238269216313355799246103630495068571724128280023514249214717751518007556463206543660817712644616473101922394546416959707083590180344244126918000898526460728094736616123603738984394479303396215244511622607091957112399571570689646246316277860182846558949055094342296371149932085253496147345660275836785772362726363028081687877147294281684880198886232164848393482467652651449311831994995831467913516413553612772514817371746626963871535885486766752856434084573191908821306248295561217309806527965666366805418400213256572529395577341844554926406781039932464487778894325310361656516183018361692910541848259257502098602284246833402928521223525259881809476941439845336129570607367581687030327841256675151703549742809653503805578931870924796126654150112621899617741765575293502361106795236251396543317902624743641651424088877390669885586895852804474121866891187112760413930088847252276066821450528636793464850556309046013847648318015955658943993016695296753428322063991810817357077348427442182987047199351995945160014229459404811574910955243567132042257109969755252077969767114469044905259388030004567841692286747563722006485373538624027840301102034234223648497411529489385902327753147434905581583628389942688232610501175666850094063017938560468990987298064501549998132244435469644048286436225750073656587661671778289938349504865228496112808938512915515000080220170182699440361167018556908280473927668924167847339999477477109443441860788172361746501813167290326822904787443368629594722066443448948822907222299100270996956898254078849436918048627991440924222062722861417328859939955191653795507898384900732251365918842686239963492197248394279414882143568874864363464103539260139042551820517065394561991598587843671330886022422413657196155842337383569943571270257279648441784961976205739610691471863442874854649513851984492798812453948627722799701436250928550538462857386283237602269595733978326830987739831799270313099225204255038823073876236979207404503258388805314521448413410464442259027430808473781720586747304776245705577733795603288136678673067255033801093741968150654562372947629035044127807045637076597045302181961617683968244667423277195301909264872130136941121786052326544994291405183385025905862443269526559435900692478389258960781385939623420196768161706679366484556339445985933509196664585071589292236542997561408486068512619576189915905485635089589333063482476089753086127833045629933475878117911463995761806353562468271062426412367562020944717743318916382758138900998672804104274503650918192019179686735129476876701152566934047871857797256504042655300333499583820362282001424077123096390624022440885778316735647266222414702296063230830034089046810864101944943984252937003948848546365445801900841858422631539060968128704745687915498322205899635864033011301351933966347921525045656638253170018205576349687332331672028807409023139029414291904060352474709509174152557770015837929221727768843141058234464172708677828834378848797498372584918503310243350113343086282744286273054634270226916818979224242195847365574151898519465759079308377128636318680089408415114422198300013364246507448588414203976876371185879293514696247502426115575295533955032286356694296667904456038620363302516708328060821591276457751898782123241203794493998744341595028233886718106180015633072783706244061788502936721884666004879760379601042221026069349711950467022566883972639751512244925321293053314580788071421479781437689679431191744463309751914653920230523997139619677728178352857909823118771029441545655521718383359956834037435237090301612165700407223552075008953074937735592806440151020362088469282561421410330939832569550484389733747156692455149150640748835548094106575925302513224541720174496208179373539024245930785260888131916960889617113088002378601684900168527822228238076233460216037173994336270676175488775239680306954418853341647008941812767912107212309772722577718674455397415532185461201462399828028164061525571415840070675254664428535467444496653517518811613660206898424590617956582258624075725653768138101137182857591658730295404219165055669180828035230941931607715214222372740178957035256154966854627849605748014884134519546481090837071598841210128304343199034204598090993772223554971744354744973843195518498970994302072243603418475849407705530778064812549134013862766425042054059969661138888168051842144185339969064425362438930080436044167720608140890482715720444967087441348885477295062543741675412599891859204658792117029141015821241551906989422393270927767798231107658408788168676875674146572763823275979738528881140587722564349345773273903618697210954176335561745195323048585794503692168196174376513426013551014743401378017273113850599691006056814811613671565345979647163213017820312199715289606220514244260050622147324103311464667378982651033536595985889755892185866893464664372857421489952116758402276887771665348693385260880735099467991042088386368244224373612392536898569203639987723754291306958895413229499258136855274503657334406654619866528555634629231430399471232511028046022021790539621599958412951575149107687870840818596114825099079954420019985663413357738049131699529610670109241482444772127308416911912615652800139466942202074316368756288652885338118595851761221264773700004139878648330801430688978294294051658952760666897005627233197252743547752547350605688525474181239142228176778398969912589228216865554081729104010913612671289326659347786389045626704412535625490065768574306640938395150639101893091009603586226923307419786511077305999049966790478652354313605951057129267020070239720888584891415507864387494457603366619708287372934666373741648290092370076566731511974619566404598418686715446602033348321791356902683025438312100825097922703770176981552817202763710546808352238272571981405164675082175938228080604670241453667166361533397514071650843868420281281557264200787784396177468061994946709465596635064330961331637338063421935755086208381002450642231659735333342641355640244932391269757902502106735874343936019062966677997736290984342317400182521611985959010780962997579208090589647656367613086155549263409837360436287350040169602247165710482122354398645383598537545440236739154288269634832842590655151495484298369458049682602440572826929323321394054234395392681870974156542434208891720817251174999480441057903195988923565393775749727470751328832459258137393791643074777968603952150020187151879892382581089057004915773913483962651785227409525780445098967476281665806970570213510075878878706256263792126379768216614007453116693646184058051513243775596491233609636111924352289624102865436165561941245472503546347500288087185209326966178834180479839015495426662420201755031596384078415910043639974407676405171403993805681912522327494632477268188854492491013024151964108723602520031639948556927722298213907694417701838473218529019461810811310988197797942941874667624954081254771034846974289086217965565791013307396448596898358397231536077488932561133841843770287624084178754266759408774447841568349920554917924970201106701405802219524445816767522965032813141189599075414783636524578351094620340321455117881514068283837251420003824019834904879482960525113978078833719600975553740916093067160725745095856829491100595254326066015701790793573275848341972953509827490327748318210520090644778962596382932770766432684944218860178544460066485327331874993662046591794170952014165349417333805980669900340109478794980867097552872326592632942774988191227557139981050081484142591311372141785408391525755907879257389376081304548738502379524654372810817720605799736196475131243595413157936653442135402187816920116438971867044322926005698469631104791868964931796971207295871865550233664310181839612165769133432422671285844815660916474521968233813794204634462772195222151647142434061116305624850688025350952042543438288754652559406119861249426975589156376783155642362995438721289935318467847357813428023599551345318863596929481800706387488623239334288030169972689056079209540956136720297785520981598161640431590077986082906639589547037347646151700250408464834987915896871910381205693996454824171484053477351355065466504600664439231315813478470760380275887831147323703734878492264878509852033308670647083919331865102356598200120603133341212485980668210152070039501871416747557393695162269408724124034445295937281069952141871332318446525024210204854146069558591749848532720560506109102666620607973893113407793569220885194245853273957100331025071232523846289452838501590892437691988624082024453019519244541609345841995417586605392813376633068708568366020708682674229722065529531020601935083860950333553995322440284071625628241590710395849260945474035713468969780515317275678599282712566513415028567806408952610084083134403085824019539446627753094946790043520275067082442211981998558895336697942722251158061451112050669408097887063051778039973860571929075226797259966771573887745545435561135863325114687677346267666398410390616515070237743423064208416489554424431739110755378108031948508146633107478076951873326936258257074233035624347926820103401113395337093893478253107561879733847594060833090011716894504405836023798497213357861492494609688396000166349658565366037780532023235178526688732769987685971299807452221652534605678802764766022684158517974771826414455468220373614681489421861398818628253514264735222198209118538262325536879987615501518482393414900651128611248959727634190604372428341340815074901362574850780547633389894275759573387924570555101804610862221937244904698009184024303055393006632605520251030174596880266816828119619706005449641310406208179132648024959354256630113528359996374032654957804228926756923472312232387117913609958632510888265178662574780803279876288863441863637603393072749539722813351152523756592937991426073585246135210617645360297358199530566877768277192553309197089157012935705851820485818310598925337537731601156593539635196797739527543678745067167406257912270949305035539336833670883617717524479248701745591064182090853647557647759722374994577747558831392358948917087120494179722521657832815968227406419344267828365989035991638694947888976271975834655243486512519085782749955404620382727620909675090597185850686994877696330766100109775945687823210847643442081513468531936554701199787257455226699795734662601226242769982831288089773149717314988480565654490681709488698203721121280612430012185240110746540314160006747676755558460194761559741568667680604722842173897665256810433005071767351500570996057846240412769261214656401394674522319566231697399619375743320251832052213409797363095668900873100998499594047402119705857579352913792023185495572638873355770338496525334111295305201682701105653450265245182523409518684632759940428390562423571504883425241024089216008770418928608049875236969955119212117218251093681369959049386905969863647155246197389969750348068140589385382852629100687769596354112342531802629305726534980480605243721941088417524519542001514069163493833344227867495099239709307772568962868254687719813222023492085213192623318365402513442999017825778638756452920220035179497737497377410577021810251295367646777780777519949432370066988571155159465693528654805848036779658614125083780227248963909971633349307006607856907851728493931367043422554724927443350200055595893099484068128978587838661045176906570222501772633921798159378561139893753978757157186772701941938902618007688058525969800694423121478314462640436276392860658693240376768281005816483781120552011652909532528899493738200487489576991540055963540319234375186131202552811199475556054057743894735626681747418515397743678090646412271413169829274338730514718041732639852496315104023883193638542876656550753214295529045737860051329304371494017661206994916983334723570195334494704732464169420499514525065666353368804309764482010563287391498681245260030125544706820078708100177302061767243040899391585303821670768493829215184239591517620515184831518363584323578486265208126630008992153764730621384835515601192319065591688438454845452155625118892973448212158228533649238488283855377351280178046219257511460346261378419736666045919083844308601016563876027215689194925907326800870545089560859447225527856417406200030758979073687474219503709930010058559776249415929933045591362051688377616545991983249890693567751267973248710392440767058133615090984593546697046736117487330552133461686044001892616472775022664037145287763925805019770558368928342150893066544156426813842935093753432218686945627293066028032705491659301985980254417249961439941954902758435017608724692314927188702338297819826445168068876860789180708346064633821402341514371175252114114405809440111732655428499622347772347802953557844543810074644866220016994792597621267634226536356323847964550920827896848645832148938853740720499580597709785130376708627450387672252011644111212103610961351119657164567229367959395489116294439687045957201261517959841763256121401000001374268012047964245334672365111018661473734261533239691131374756952581049925748165236585178581777937205159379621498199961564564578875775859277996722062145868024954840142533403692354118803773717818544265184546169990182293197061038966329840055565681562098511815618597942489586624533943257531172596804041125211600789745019518510351961411019592769545192583688800371560123524535653637210581910728048351288872914365038334727701753025735157819289301618510921431683907658367596992206251085739938861248403086937668722790480782392546814153668693005351956073918790407739171452492285181127813094105224655855238188485896754426124145753863860553442663126975313095675679844746723318201601471643761151041355321307324775865190463202360240650360712058957325517988298115045815936028546925868915211882541516658254303287285396701519098126036910105713505523162529559682791004601926821179145669351185534887477104383476270482481706685855577571081032776702711273637645282184687659589084619923872699919622597013155471092610755670674924400945733092652294243682060479127502053306072793499436442852752846866500843753068757971947390846444332366399204651309664594023740649625847446607881233500728866132083391866329781479876663693299502415407069442412157935304854203477302938219131148995731101222357339542997480805377970640065210811307287444366217162591543106844633608773726876003079280812511359672752925467287844172942135623028132863347176669385095742108059653301956858413225551714901877608294387500715808377150235799905522773985302762209710027461196705641038277576647462036793450802752672524850845568004212333041564952655752803270358340263389128578624026112934436214668087257868395677120584212103450941630159383045748209180765279059160894248753513070881290333783840673955540414243588600887649368682794981804098140377173256683095340239506706992087240631275737484453454292941410952111918302413418064262650748632389642306284793654930444609705762253052081977669484336253150972645729425903310748125184357305295445038910651217608278581865859299570575789563580663490814014946947050455682816866630425769380041321562340107606998733491408474385808168472463124169586694573642651799747601164727677668196688987363020244069705023796685473474980178527088024829557673041639515107979833601119105143763793860126172676802227735010280428725597176595622414898360946606399810085806131355977703842361254803471262599024700796448601220045916007226458306190419072323603951913347423068066840958953257482614455447379949736183266497997818651277781509922430774833315788384226226348378549783685487739814976812462285834350445684418567105847426569394044194555371620171617042819637435724211172377150499629169067798510915076454435583073148430644048385121652206349537101096190615131280708422650808397790888962658689502373555582852206888268960420917370503521610144948691281772740245561069809045438854026996169900572704498593118576228479550843069631350458519414608554497576241485481463054964023998143359366677652482952556439604315661017268354065726529751648563483108648041669168913989244907090512335140682181923432321493524177031036631968675922174112025663864594982469038929854426044197389888312403694260505122713379715527812430728085908942141345322909681049867824722930214129232766619925598135809554376965391730847126807668347515897384123846297578998802520398601100438903858291941054994404239104894013289933053381467760146890779837328824796090635006639179189897963651880645209784313886900135292044796799660473406750933769742785317447631570988420517756238033496688704191949257077965351554616518995046985088986224966995268230399016115413745071907240485728852933640223821876246375357828070271137532013025463813345288509089075106375809531724059992912431674085332171498345751759955374621967558762453102879790617426280831197852669508060721587134052809560554327600409350662556636768759810753759434773677745297984613124904971611180871944753518330797056885701904883628438938222706241499556878732845787053263777217101345981233383277593900724999376200171652426112311999075681338208445933290213953071646805245269295903521801080433768648452531491394386754825074087082879157822383801403729236628349850967919596529131019965394856566155225192031857436114496248218378235589114460026785477321385801438078592619465081711457111147225295543908580204427731849429030498168257953414375285428972450134401714439771106331027032486239015399388167956039158724369706963455143399873088395641365713244786550168927758288790666495285727060505415926291896074583276077860891248216302591492619690790413670201487091661463554484935362305823398095418937772131348525115984229869023989845000780118968395287059570281885870292748880486303827498637533738804693965218380537486132394897477479224773789927724519554333135811516082474738389360298000313461784724073930439278592563597736583030194840694794692419795035901788875679821956803998493119338299691140725840019158056884726909136337335987336487583218641461546660154572914510936726362917717733667727427876033986684843428685547726172477932800492346820592616264963197440414824118329043722593816486705247422196226757257011471319298594668819202509168521499945683512072153156577716609127123437906200882420458558241601374204956598803255629667975853213496932625950694281376114680023758973063239972492539470460877861805471416376255601296771571123844520361173822575610325364874805837045341179211113369192117722120328736748210250527830369447319715953291328527326003144315965467664188252211889113949660742547077644367855492417652536211763067667568498420730137186374395038727496578377093012059199489274473856048259082913787626240632231824978866901572486167084289097041386068540281776532856416823306120756859341252909418183000862666856130589514645393730875550793523033045094125251418323446807327171028440511869202443148008056381175700224139994183706502158689802918167607064095759599155452090534102756873554695855459970834588417708471553552752272783002765235621877212253484159072597427850871218235681712394684740839265975928876871691703639951419053741058866954214324247740533347025584574351640808554852197435372336828064648840481863783501336916153806398615210484921072604200920244686995230040969087923612036404276018579914229493364883003293845894548978608433667628513781942806672265258883577650592366433938369833710152436254939900915794843945379819614042804825325946299469489283004559483202013056435458831273516151137192631445635489316492070207492546519197962510189046495138701665557541428259118428880473553498720758692497020141105334219321328356441393062496222722751560434801869341382272968651397067291887956099980080458811270789251106353198063460142799753839543851366858264164316061384482375544502524903893575852761543595654965300688153825009564932995511366951878800114461441683834118858251615385250547858063828360899689465103646774330542027185480905290596527042839732253398306034678154435039889679391494019423934514398040189116830091520308049084204465923593709046816582606541826523274095268797398730972009635232901255247613518621512557836372852535262425699274125165141157878548441433925175128399274755956191570462120158725511777938354416545735528868300495417253465111915083163053859512351400740411032661414634835777073417672182676113426845221471740417524106458818562101852210818478116214634587752974122059683876534759183396665590835123599752620825994795357526236519146584923519647193105255578051615344440430905669697139312499331835105067495226515310674700904748964146743669769874699286632776039846325071327900399072939911202925389806764576298830697008259139499623170256806605835650910293048409940759230591274656108756807720521559177846715649788495415073603028370393152092548596612158626126505910502288136350062626929430474575643517384416503645694603097431275701632475278650041961271854005845399984455927673467043821957008058936643517040839382676990141885304796675672197006976664522349188610660841083577054242728700268894350418670357489434944889306862353924675304171216057304531499698726508995274164145343579487742407105439408812630304125195735480770725002710895520909629412017477913575338446691929404282162909362069904913497385362619317768862067342647633615747058119639880819728716573194702208725596414874224639536204931963960998439264923821587609992660972813270451581380067415259343105996338508425088181676756019515819149433238210416086832197439549632353011025912757401080039115699264667045909767523906107441801692161415252080990990569739434103049219991193534657067331606247340822968433801960530666949510125013373117058865955050369876131842295543445959163405412383170598237641777805968835525630885810065509964932421112414419388355223326438664824606121283463380928671452251901688259562626393908953682016789402554670062636184248602162290207430413272376863932191163925464245828517616200220193113174994852044479702171586147107084709701787042908886936335312843684787152509241168239791706645853775759472838506558801588810182431584626860650933636902583515223095804219491527610674807156124110216641274773134485778288026686525530177053085376164645138396271307307846786522502672191211205999647107571648396112797368219731353590589680483396225804555115664720418809290082128406833915310135887061406765179006254806269605717641722839568317067128769838843709355538388600471541339001284678307790651460447117768205271653949758621062629366882861683408179667592677206239561742674476199536797278916200092407090867277437507269164310364034121211898358273031708471309143366687881827085065156733388916713967963825141772031610563971297097090228155925548660956625437371499534909271519847624633724118906507672615438770172587881773357052175094895791714808713551802693623829356737151845148883442754322667662063766459731954973829359746879024406624809912851957516140385471252408677017685556745122518794710882771645901880848083950543499735329049179158447509698975037230547944805570299025136254999516387440524477207193644853702959550294853366193280789659637790211675074730981321928629324169499078827406774910225226151276690810374732094080289183282037614284940770212019924341598745410265201845295877310928202251639245296973998785676484155960203496670787671636563617324611033892507775639267765786033528098579965115909618366883402174418188265747939398953155322542533068190951710902717813697970996852459785278180414495104987486181201790168485662632923529434543826661051691074287062936278466795753906085460516687405489741145587739226520375511536044852426514052134300042888996234592027302431799710447748063116507938668310381747044744482783332651478172839850914746777479525558115569010062098261880550488581209471180836462599063147273779181315291394793339058223580923767748284872842898082745058760753344313873824493508017518264685913120202005013166884257098824514729330680381488714131991151808250395298810445021007343188980320282221697705371444298597219329898685886755955735472450240759051221528705460905316210622028831947697082619212150727039361936828495271987914279355937241995387652437582900026413653012887645478683786702755917487673149590687615873932921298321492745574537361144148550804809836325636260012740632485472775129688604533381420535718671830635213551898200960533734284890952327166435070479685760056973382408569507529238572863241264350364414218269934750958804840262514249859463710547708022530686653737382596527015142521654599370863141620320890689284697219055147461401905568471600424659575467895326205115048922463942356204333220220267912053442838734047183786336456174013402057653858267682965331314189600429283942797925946339966813939255072566263096607086144121898080540385000602116265818299947306763749423574061719445527958618023433473935991211143279808164407242783034402749913904095699468984101762660421505667554673746549646657261843564549063430876587458343678245797950815007877089926766376865312467809640608987469554746078963428222348948556409864297867105967986185369167440980728260768223669564466367280079169088078171046458875230704730072594019816032994925618318692554444874770126611714910810190047246296427681964034266973540419630147300950236181620036910527175032636022247326201576806189044384664399946028582179211283022313183388808462733754877193289486516507374022064187270208038038563103730129221440886498763699356707048012164833989582541031453751904542378864376085899648668149226434394967648673953435012100745068037890452675734872658845920520555605711218866492279313301529867053968376137658726971541981827710254722607572344116614773823320140445278049343033558146981986579795303595706751051020087182293277116393880913834045365680023828354689728146905509255602616182599592631636028627176346507111642260006997497827415632273462143914903278164374821361995024945902244108839537676664706684906953234848488720089768614261655980481926675453154127373946694646998244177779640622191058606373107174951739778272590780769266160487348726685762951309396042985841153970668446515345345751771337048535227748997164440920854445944725093635180985316126609394515919984924758426746582797442573087974657631684706456338116729323773270456874640373686988714259817249363439507473445177720195277487714850146199054137485598571499846782364011915432864119355151618955456257642511662585573288861198027340690726676185654720744208019645992594689582222462565931987095383388521434170244577507240745000623596473460471716340975196909165040006665488254492737294901003442346285045129400605806240419050995198722235472643087975001249902512499888064996393486576223602795821451966257468874391718181128581017230179905205937423633480639221186549919884169609165011975166794769636946517114475032350939845419816347457685313505282551864330248639223341178225707751355587295661940124800435600635188954958123183427636007205920293471927588912018227449902961205037185774369451863282569708279796136388148689323235146473186390093431098245741815735038240431341582871461082088946660505006407053013772752052914971315843635532938973289825765715636516097228757343828366143737708010947036671053298671532497014346778560041747284484133455722231420842017043187392745678833606988937137378104756963397219704651190633190486860040969530410474374863041849963459776923020868669244955844341720569931617005387648824196986465072368103226841437995979676793266369110549650597755236637976907010304529023283132327030983827704266871120090303468554478399575643188218073402816765557670494257924791689844371871565159417149223615024762957516454803623655552950588334192170921152037215863654152661810215550181938774107121200982088523144303916041722894653903662638842604949993315819658003449402053005365791354198645158193604555611454087609754758265717626869749757709817349869253274667016811866916621068334760890875716364077560116799491719795811031985821246650765232335186741468537865618000764115023330968852356478896127074681345698918029334407195033958460241441574845196988050961587742513266855282926736934906687663419863807763716704227536689600423646554431065350812749303988325601262146042231863633704515716170164482954386138404894283531716622461716952871916444632669985070403779475054505501264688936057024660829506810976254404292320655453966638212443171236066458517058369678494624124086890704772922173585891672010156880617786548785128874434431352764736026112611889617885808285893958460168957701316660651339275469075097684962218300733332267828362691412521682189034606052872557796582110016158375359368897513944252692677268335068360912827214061395281010386034484498005094273517354492659829081296997232994002903231051541490750952982170564183313926478202560074481944206652383560111573348229806686380149151145761581651060615566715402790379076304658413646733555779089391798044539762344238788232374286605639110171290441382858163373558547629429270845590335283144550272668224543252351252861588021755264728827011603634027545125369443633929496777197243542461195180195357940062835777820117983647259995655907188057592755967622513880525262160489836739548268744341364729945348808358071310010557314017698418268000787072167203072392633022641432176980647807516650583254578305601523289677150097262387625198856955978415475089977269255740928012773997967349133077863490226691634533802145827286987902473755631834570703198952960209063073269280963427390194924925986743727047894163737370950499066440682024500781804109312152646318192332127478963417583203971957507555884446079535216022328662573571100222677919057461913946357125142481788195843608192544205984702290677390016630588027457835786226335792321099077051389871076178069938942127805782101622851442946343603157276626139340638796066967026824504624266492883590047351606546168846493939727369299906469533580587557010779918572972722817735263705946977590925790389928047674657193883762359897823076137863369779348245383261760725078111419015425456304927443629677675318761277315452500593394683568464582257203112095654708091855417747664521107554942944157956067602456157892343744576371718734497162652150499240908349787512455622485570070958452565386376102272646794824439412832360088665768305126611877008639222357208525622593956927100828769150501558135551511691185115804900964567390424497409445996936075658054386352027254366457228335775581611087970979065865605571613890259675566538514745243346245515002669375541102759641692050953018758665892450413918010551227572717193484121710482991839999457552269529430705482732586013997023242256770915886970840004548723201871497341665690073414485265325155852183075895412363058764222144533985893557411239742479263070311523003648532152100435688804736874438763232231933391782261020845407464669665933463086209168594772643785482972177893394366448131900259208769510215888861867966508591228953957644004432715919007210022797385951629543034996243348645430822887644327338317504362074340650291986491845505612657728860609157579306859343268482948554419571846578521464187319543284578167691841177866305144542890304136012700988030652485622486459380022950369254648847024224761157085994894257451686988654752125627690948842167263427937698680411957190836132440996655334821258197879804948659039585124917254354256358238556804181670480931087957377537071607082102909436358975311140669701442594497438726531305777566469483320826228830996068264969030447571521887931806279823868667951904067807178621562653824522932538951402106384377362225360358240314045156604836681105195349537138607990872193819470085834572912167690343248946994584309693343252038455925133972887663580349620505617882363950509909666156449332230090300467561785203648476984129980953232698070908933317269514126994785540698986272584164779640415777158582912034367427926681241178947313738433124924293090034275777752413143314418390345487356970821111353493440716340743446148324403501350260785434852555678281507677692880761791208529357972293044473058915942736366505191455878324151517631452703260362077504998662087871838264193438555044387398422802219392377014219446537547897402594139217476589669161463164159337439556979085327785619785020188096186788478218351515250511568534755474811294499044078100418165545815881635605259965190548642250110903216431633663035502979065342208899088632408616659141780786065380340194002992398489830098574240292855535542594677284480581949222546792218094283999470823469758402496043213816361842193175633914727528167453404242950596159444931765496792148039103355969468600045888991003975604304519614841899269594172263415086930432288159745226646503923303112626761586939942582518081373030919469704019224494188691461554662492405997800575258874757084063296688070365028068450658054086121314257206446679849376856220585396896246472851638552656332829654261944960500050835328415575646652719781963811852179895795023590285909652711339628985205407914699177186027426287104684240266040715609521261859445768713506550509335959378520238048136198178622516269849474594829490605004961179437434052522930120753382573803272476007496184203301611613591408272480293301455955620577896956245830248690535053759040447815608427917348434877076939215207869917888540511515057888029756393098552472239914021754173378011002793332526183320680694149623713377784476718386954079654305704442175499240636894361255058401111428292485265367597907855297579264755630014578437984507601624793919651978228477950658244640294989298493967756059177968648742652709478726807967634242516544252749279524980337519312110921491959416690184422870547417476494443357285527361219943040671978834733664852621495673999677906804601119136056810357318202683343883138822971134902623622492567015594528837154461476949942495569402832238332746205881879605096363171860314632079904236271818258073275864037419611615220479726402123485969179826840234500336770967159346782046675925365745946501919722289592485057763773223055288827158059023765597275299524975136035614968654895143883301390708981285836940851310758028119027580110072573634065088745797697078667051890962933091205511294928796450772618319136678298720297845359910295415189874236656172584207736320990679917287360689259508345312682620816124463131483585005374333858553376846456590125447803176945035504812479933812851349008689400695264756386790076842665740768843532486142055977654457852262715539188942788269895378219200849754444645938802876367527150593681501546091895630913508522270962474329100425341842913714592656553181730225566416973891750101569911424583130654885114489420189953696324858734956341483686096230234313205167882217670022256194754158555054624673584466651418344549627381990613182884782096412764813221420798341008113490103238677562700220235895203257232129553289483659230271503565441379309211540943951276228141872473184080139098347547933932666274252960213641703465122440129201833970313917828564646757285836571020334603002991453159199722065816027061583746351914524082483090813211597131124654884653265291532013255046043352983203083213164761705433254380101709145623438612009470753622994863965010108969316178832806635303292880384326498685498116434365579933676987400932300243122917723122835734874026116439059608834630627468123780158934531990613929878987129839684128422260436979367669193336183637375705496045332133323867181103149156652373574662361409678259885699469957253168144944899355886758783163316882810350999708659320341011640175247127978347809829529027593756773381475178203592904418049361724745594247002758452763869388757558902546436389637439843247042607818079321331446552890488192595551994436648307198186725515164840278341624752083546444726700375690785693979585664086704408899823866759403137891213335050165825399047105612917176234447228226043700748341586878030865888428232557291867382318982597806164389977131966476299148924689537402652131512194065662816537743386583695942761776723723549209780617010795632214373131810212772181047083294869041920477516893832680305422196146031773737305266627939489495103807138209241638982501307377162113583698301497884786242429396614400628662977059242746184663699348552999715352131667679381627483389290278161117470556654235071248928516289619018873852527144250726654592305474616061070780718954255503886844402974506202506605507765200575455770049793710075036917177214369430252419319227477176015126985721755157205004555808015353872273419714232599878585023758311615421087251802886838338967672049672828016866362560755367869379179599917848564807836022638053152146853261529975937985626204465509673657156891299979466987483760911095350680143865602765900522961982380720088294283786936977377614173364851029431322910980991201803416033214699842199033044778020822008102741192411100562965418323762813790813762873058471313705373121127872267338738658759053510523715723890119548683538531089574393658860009042804232636588921892893243060114065979309373204337052970475939862595828015960947560492897820116475859879338271741805750864101122107305835004434681514592848432889305354370450111611102651267524660845861876460055213853456278290540670398115337973100291042617820229341110410631711229755565902281691564454787193994550365050121649934996161898626759436281408217925458169663770813843533311867436619080943012414239718270603416383178278203611792894813248691664710909972206632508223713508776638524493663517015844915347681006293487134174708501019304514437836921138163115927602629283277404710088211585783473502772449399260610647680181908739906270240946674666552507486714759175241672393616220224649607208689609013177540794989834752244319473424798110972815206428601761241883516066524787476550329703942509413019661245978956481820167578902367130457481801963684459414843740398877042397393260721624226670549754124941969423323990601577175298935206156047756923685150683091665037376482482895641366941870240720749314675909413625338433792987380730265159091092094088779686401393586489505226733802898132482059712231659429946987053444085560349599711420566675320376452456416337528440683751123851691654422542229627593447671962324886097332889471812901810714498297888388454422492724106033287861882381255609132643984633818976933095439146401347226691888843100175126343933006871150756439082350391119535888029468727070983585519721221331259691732799746747884776004102128243348123415472887450085766081129067054845332996652654527566651514956045097021569571099732570310236727156354718553000680891451118844227728675519182772858805831585862547210352155215054126940197121388108958847835572949946915279947990429086406152280581772090516480516083478108937524223507202597504473142443613785402329158628256849554437708624411835909787287219713211467154599993338630398041092670494828822495757611903458094034667573593659217680968060104818733501432047300925785675306129291237515944780761016819899894539598652597521890448899274529561755340586868711174724765477657086767369225205991221421526631255729749219089707244273711979817897651020472753318762716374867391267967115366823348647443877433226457301965016749244302739872921413361720348518167820256211218764162369982874200924850711019843896141044751146091903536811539767584961686902883047411797127595946116623304811738422022749276261966946953770068589664452662992858286390220619279057298584104531263640773110089731923606723312292586738191108899753538864502615253621774337663840034091259791987233007022109757474115591609291181164365499671957977004951332675140440523598473676208446531834673521383608223347151012584576868679077066543927598627159124165547818926002704935120570004977753457796648179603313863726068695935681545148325612417390542117423988434292605712603436265909998378770601807535733778409876473349183322528941224596478876253255261876695262227343104705003442360473872394999287333633532663712766146779875435117887551438340570022532480651900306949281423775347528895846238542466784525428633129693162414562828715699907059364042237205476818765014171919745620076043169799921459179536159514716032862286400826792429398661087487791694469739195240331532393933937761064230677994716872033219190339346551498577313947398726345608854480465674175069874334959698208221949009691692835354433712176206808914324355910676147865685708585097806205829222713650411661063468620726940746720342508419437027871250756912031123580780624522145988256911138400415143679681891239860395721235021018035045538775840161362041682194744378189808886863753875878525817711733331970604688760718640696597276127417025453879108277802900372949313561782603795066925797525056988715597603021832075589708599382661574556522083707121793921878880643614085525953060554561590287899689753103212323025637703874894173815833808634952008822433397491437245801090665813803527220979018069752826253901980506377548769673458096034135891111942353565775285236064300627480457206536663192185603582124783623526967553516266878102498693883812803208669110000195439695479984797684693120912737652696312588246976938003559539519578246443734709778552406088297742654071282313078615763509529447001520607188139834819560611702741183865773357585843511858814923641321824803688003119001609594798891419413279419472117239256605494785335402933603396269072280584504470391364852759527775636514508796312821633200339144759674862343231971814264829835016471275664930356761434683481992707927488955071075475336808599920235998937359066490713314159364252112698866039253094586403000476685073512882998694608333538058297466911824355913799033821859485430641338153681845747845134736453235151610355420097656243048671325783113648109742959009115364326589789934001373411823792837351877943604911412937622104504016590026564533292958880647230818422333977400364140245779345113087321665827441482013617930267066531131703779832520744880809091658898393330402444905358695527162589347062807824364990077407894565800546912391469779396303034545014704777225842745468412341696651370912755064309064315140748258949417386322749599211473799059962261780469560450036620157077884251345383053492100266495602060652494432573594816686898087092326879439199927632080841512159377792267408692020046075844524896463518804885187287930092800174079290425434579471411984073663886618599115694747632802177018673114285465361519923762302697267604714258667847208004904754207408730564258021416381149432559109407435079821460630872501399896960351882931865117851805689328584702754032815386703348137792969766797457198087569638468802242120511708528381891000070273346512056020699293797648702372550507395016978705217368609623794332224536716164963350117265510066333052437950528381603358883681014230738926110773331266859531978438559218723070246022982881846944969866726110643923522396047181946257962717405871177171388123887586841682450426737495973204062891505276687260249591672896995387487660845624557680857321014983274689784099955071291906192657668669876608865108830480273644010405660730146809660815719855931992488229676415218323295123812757138311521358298266190483993571663923046203089248480132925376919283756940938607980750955262447388445415480789552896077429774696991331042974271634867999255426158054781879660115980708251697971991231229088816941904896992933973373594402738761969422401744473202844467294177295148583028793741822341360771082364929743815681847700281213827385262352267839390531287732910162278747558439056467910801495523217587868833817385402506117095526703363503197745894736692993013154929381063530863661564593667445975500249830142305853485518975789279804764540772772840501792412356773886281650365636341125319572992800773701608309892701726305122570365379830068929819192782558344955873740372280245342062806434655241397161792125825395595888746903964270762393700128061466796297603290192473070550286488696272503244006761636503036482698976767370519987474597107153291031537710118481712965205390195687894601621347210464052491590152375177951404727010226988700518109285580878814954174063348920812189172086790874906036822778837211791245851268038789654487511566427120859023673610876716404430289444514366925210186073339150450493499116263598552180985155560022195655133171557827712759559586573334627131452814110618148200200597037175944338421898546043191924686915992989878156673924687829595137196067243196061060161404172166463738378004504960430577895741679464696448546509205872213716961081759984104383138688723373120736494836275793991113438407751818558404639714744482696295101149842056141369372996806074814802816508053218239258910081621104782272892328042519753826490252145063372386746711162302950390010895943629337154492334379879889073829721318869295031735633397206289353891895136482110926434692940667942422101854591069198394764910277297910495539118858373483663423769018410943616821093194374471900493737412860233339388692557713203398283313655615227012522655680438585658539002046014894116900379291483709489359632794711626114678293009704966608712074639664877333539533111935351560383701246993448762111716984057702603296446978662513227155585219120021431202919772841703288202276567310563873078664220421070755638522146108854103711681347456644397042658362107319597602694614073442788158993369817196225546123295221343067430642243083587452975701729457432203274336136867415701705164877401389448789768621209633744644811506016044855261797097891360068832597900638154615565727170861570319907451833310206810733559254004854130026576107899109596725434552799893816336538907823597025337933263537133634687298982764285792136618259446311405496588276766163074444083115537033139104779140972142452258842831156362702103996842636268362337537042831476676573301919425138176788101065663233599749110713728148267289652905523008682703424806233871343617746761852800901941732103594928338179139658985685387610601446351959840302088300204248364203583580327233695598521942811872359549691389845105336245155846710416451957660106459331426668513385238021262841860777488214328442433435645876888280372865254471300137476096647472018769596943889084751144045802227901807383721496933299390031951398405941444606086519135904120463511021153513115097982850183518486063380032753450229143653900582124656449796715670728553435529717931726278361856824912814470455247171210865608452000878880995869929472311758202359315359400167668205073868181162923871987153269409275113968884830641983179306991416301098868647876151515268447631663540493977495902583523710892703593718836782597823897689584223581499994336663110336208356888412077184723328495279949158923695305922952085578565721469851875332852573045312265739259660633838427522923548724934769724424699568818339138954167580994180234408765786165689178739846061565238015473739356786233217818552372812166271459557607379992556404731300531514798787855013730335352689682084663221074857348282850960391289762172897162867302350387421755731466629638684276341934666312407488390021154469795267720642624394485255779261557548048740666428751249793988645130695505850019300817561555502957485219535610252069971814690755889889418756688776859627192845468878933399337381950972583032072185928748253529618950292909120525588757608119504337999695628253294669840489816010594843285342761180361550279157729742067012060119118001774774738308957658450044353991957479689400294249341842459557785022692351503699591711137374051902279096499744416919824171347915094256954624971473312780097517929505307124393920440776691265452240860782412611066358281534992893875674554102345814455432720626249467574303062333434120621032878015445802823538565436890076812964438208710497259032308882426691271837447138620198161987599854491661591399601948283611757209734829304668077483273216355076240125309129277275852208505637057745661911226495674420151118854811698571216146737997731515741955969367059250248760114736695196013211291929826903632336864526382444663880417556086016575469028641808713055879828297276736921470309160628967609005143894838992172882362155173935160209265584640015944089084245655023026561718000861273476339828754019673909920829669850010172299398946253015084246997622244785647823435837162689503270586128604767390040637365254650353862697650173938436924077582259350711324529259439543693170514169304080430119781846973602547005522480839569728717705978316605157050147496171232469133891043164433960809944651186112188649366329252077713876208572778231045426919223593803614326974720656240367003790775272461215139627171671803877418911466373156998199191132926762882506146616078823467011921180786757535948990652499847017764779124874405359400004700488884387464101915870501316808931268824944918189738047550120625519031508122941275804305596140253982347095393884863584786494118129505777079934810411930644299348978652587893578161156384364416744234070019159069311594219025712422660038993634316364629232397237375259350945840207230935702795735285404393310648540379316317232356927380176090009231385173798191519550407972292578755652150002842660659489192094250217075146700798658061894137925982623535307585929872021385831143106650384783068609153443432726813297673239948907499679780735789510671166892822100928276558695687338135389495862295337978629390868425629146498878854492278229328191067913013145039594368460368399125401513664339389916363244289338376185640393628188476170271025918358036087392009727924758796730727488783532152386017362621281918344686012297643059608006503452405257330020490298906881445069110862131301463298961901431794970874960795412112602087260128936032308940105597224634668916609966322124502930851435198148304094550848190545733492250698703462083868597259113872613304046868256582901815386332642367549260634371541998128816372941461547499647616132434466471339497829358779496318501340091551558167395861286193874772063477435198422200789872247285397738689779243659350926183387146276729877856440354870963845001331336207263571610032122481024594009261089302868547059725323206666423342533838098868005204875885909279390563825404310274062620711634961346061689107007020971890705831990041958379666393326614200948095537451410160660067234330615788836556232317344570685045860722981631154325526754665479054783016329772283444797881063821235676255988937212423632490104821422286027126074107092147907881670075956543583423572977881712900617823825647417566735253583443781033932054158508043928638433993084632402535722818451568481676218380368549485699443459724458580971802919552290975870031635472288365840363400579746647145350652747884170725201153008991546980991373508465619962908488708165575123546658639126465369506320408027014668926819782871039538396538135020482395155378521839459818662119953905653598076153816025378403548005210097090793979264973537399873438729973161858985102964083386169090863435560154721495921670930915776145628858367427479221478457564632878010537185166454707444090697998421059409173087573260620243214044174601844609375748378025687929442810577439907762552789255169355975437449455412997398999783786303893809986099705193622787778554875754179044364575110226263648943826112461359450052519254255230452949338187267908675093350655699407264103392274602686637496091181173146769384732893883022210654717616589051500876497498963857779491731698469303358680672018177425500586911755799325376904536247766121243289010135506475178040911109475547964658139056166768938604609174424354176426111400675813881210282779292453612448430540341029300738036881174952599212730402039781481070114886972169690174177932188038231838050767086879179836266728159379164656567616849525269828806403081046647017760509240495975585060047584163376400617151954148242808559019911373460260684851994327468770993922964154148750039919383771816518558606935821186624048616898636770045731953258571432131293888989077549919297833577504397474827860372603345593953753267259145878914971108538808370615706734489664415233903661230223951128007425806118374623626851687228552178995589781816092979409377614084141028461356204112386519819681428889869216189992719270704949664136219554376895408934576630100175860546551176870399433416377697361587646859007464358438979553384442080383822988920395385918001193140575104726439920534084288413422214207230693322398620450401410872783149010505896655683934170425583947050159354621864160448568442354960374741333629897116470300299828739236310027422915317183304910252898469319310454807916948141606232130783496383922418545712819612003898849922774843543404243284350180193372864023302283987392069169100092578880118460497863184129439406855482777712657933865286037539824233915401776004171715037174319478602752212385951078324738606331886598542067058029569429133703004693585256021516158309811112696356148547610729095929436626564621096313290737229373666556667250328242690596777699178250049171839370695316126204276370959620600585993077079483299104575915407417571948431847632826011588169129146506934677683554486924526103468761519266793830068431448040683683657416038494410939270324732240836957912401489414876207405529934447446976953987152925124428762365808578489206474115036725391043620334286998671961058204620273651416328473490739448045147548800248259436147171182733040239780379711905767720577873703112571346425170086308785375387424881687790809331211321249852410115120983414490932242289653957225751461751685385429376551386280010243892420781431699987504245349958678334982196428838155221466178533317935743511801989255203186881540511096101022916519499732344289500129701698508318431773641391237395173018320913054700231541740378171007146649085374469880148390232204339674663693954938059098489834571433304614569664952290382731996692261927952770231579635079854307275395625166358557723644216047273509165538515601475690586310843234207439588631407459559090179356463644736541696364388207982432207501314533026924066774280847415033344426413632766096521218629546503682141597589679860863726293261004945008889425014732387236224326874144880053365724489150787399168100441303369018387407582131618518938922920290983456583985909545879972021221383641731053484609789060117194186886096753909714516668276161720597813372956941751124315342583295295705527550100652848958573360423134288918549550525519566255714471064704798286863543146720274368767686023661679843283884231349002161289600799793503761046601884870754347968291056994243170042172507823215900787891249819976200379506142656630455118191447289165212920542105432138831314831670891149003707328127495369094851542011761615071957957895429317198441820033646263712557010797694706445961891724046959593068343028777973728408386051866017601657496700315858543373339754734770213687083968161577803513877150581933732948755252418484804121689137909805340848287421171131235496600574722127138162231119690547405560559209906364921449462009957236402304765815595757700787098086472771578317128923714430494873020407828054692384724995445295288905485831133968419301641422854243098516622435590593028482621094358351821334034493867308783182606609808361000008709928216665643097215540513654197545499718871111676997064080357876462212905925642813880450215586666401684926773634170291361673719771673299194293824438219100856016888815535516142789343026694846413740556324999774195842815104281296248578750827407972498835790919957326487860715049121940725934883620116151011832217061261712623976458505892943498662250492762952324194185748972687978589276465657961327933925864332419337896085963327756702509107296996129896167426133745564004480360694136693494015896542862809368934602579267088969679180421274425529083383248887332542130158041080155100578440925412598744925289663733670666816533001770217537088394820294621281099164454984731108694986826397559611444136748202810015298813609890489509366904531184673803598330076052581891754211158515408511481245591363457568357455549998686342829558388482286849450384297236991043391577979710724884762729379708022664749074258118962697605161323743655521215775425084420403367121221879628795253242785010389834496969786762587064414548296623003308891024663985027716388640979302525194255530401323919680491830901574171622336913528623830136755277594053589343844025421674864044150953462938337229312260285679174753843223073731140057796509546875424867620072652710431513591129983624222697536978056333897187250664365391315121227534318791074751942092972718777125003778222392305402743956230300243751195570087829234161863102261242439286733575540682478336473228120926070711815420439218798172243655913539879490207351141283321216175963816674438026231852694211360250971621392697769549809918685694112543449170813519349719860723079322092851570346607642020896978775209589660430075056544185102739145960713312224553409019496913919421718060043008260670564301299577301538821815758286359558499695802675707554631675660483552811918857867024833218802288885099074286803745633305084771873922063056659875746445373869805027457208389733491140520855764510906109054653580637712279149157395203522831893628372197876825859184842028881963954482343375139441948447551223306200289408762190640398023952539471336155003006531745743706873444989152162636727129181898093861870843336938116558985008338592858473051121271867305499968611475972134376174707507198342145677169795584136386301638885515991752575234265391203819882859744355002880691356605032464851055564422494539988236221809528393844761526332252354459780096039844293695443367536729351369630774118931635414672280837355692114988064053315222671701263814688421737118753392628464568351844174553446331476054657604326909106981813955333038292073383197498882585892202771791459547162110225305028181974961408470326767372333199227992599262790840924437729696532256662827822559801426656227848976975992590731187716266408709869713235958710382165611085697452602845793088997467062149146891598498204915396808936445745151933329619535468645528062285384788863104258020700709309151255574339750121120767311475762623426156546341771642861858306594119448370428231226069349931735143076507627505458897924480939338640031747280994519627431840689942323802406787616361496044435415235890476720836078199857112981840754849540519987933533738951933268087056007057406276799416691342098808863088911768458205455085931241219584373199495845833090845901294583387399607898187758376782532383121632065909953424557991731337103377760752268369764962728776630659594831329419999120735863959036187868345528090155028380578028959701885297189586942003876333405181124946564389898138326568855792483263060533353959640644544484105284394275471167356909236948914562652736213653767211968806969060652098925021453644543300132691763223408850028813810495490443061788019065462563210143542164870357947252148164626496533987924270463849669744428300141262093664691767432800383998620227891096203460832533439608951945429967196305769780183084942902691877978990263918434310467724481450031543044706942090791191842807377208453991053856984637916701898254124729497033906893744245765405324046388096899220364618147739859618311408313153763951760389585371224918597161712450607039799738975265243069969238715638960454927003891004849420546966889604079310477196405354751948180555347325768634383520264172370703177711231875436031275178123112690717191490269731886058123666207396999086248897875332017770557987294161829202123223146171567187578270899220188677053832672071784797645939929273752063938543180374328633530803498500201360416580800937050148850097907345836685030453176818082146739059693959644037666385867705809157396403884450378327106725287472434513170255994803200938676409900731134375133756358722733882823376625063401061289133584675791102614240579066897436654471312482463214857276068101085555569781303978992785561101329063955376522371107866230640628477280590464991395797039314692410532327759474155599995919120755854543425664637400956926254636731730612756669172140963391278350276367621137758497594193665389526016059509671472661438511763522033745525749554574176419501036800450111720354890524487684645119731216512108253191815573384477470450744557661051524943602914880779210872982419560264001540926921012429967819848892361106423364050411618986191219866997795184751447633404346195573828299134644448604312963596042668095705322059884103758071067599906434065062634903679477369058503752819104662829393086929975180061958354979281030669136423084586566627152878082403187053603350673824508082763832809978633454318147479603127980595780575020878236482091654000393371727175989741120909525036424884977683945590713521828636506564709954774528755342913368932273289402769734661772043310751002847312876426406699319264972337651500706376788597546215633353569274458406403845909853137745490684627925084332701164862181880902372630520939564180855615921740069704525154137167294655581438193676187066321758146077797656675485335649783826988885086335284307101951016935511398995549411422815935960763357372446564114399978510339702227001511501169129445744872161087346729675259104676651654380380986795618474282775682168805386563261348540937629197570973436566879470523113375453873266035505600682752817198729477737463354767095803636907958917846751777351076342340465178676134410311653900458421587818876503221386531544290570411494282939203390736414256098197661651152395605976176178437307692655445880774149374877632061076454099441805978511919698954877054424029302904041945493785469386655713682391735412272053514803774679866585103376702758934765827571295229970730662406411749752091915732240835581457969129794321622139359146845855478465361057158958360702996464209529164035488710081946324155754989384577042321497577160397031817266306325892243825562115532196889698877589728754157254388182199826174763082353754303074885174295956561286755513513259303870137732601308306903016988572140575249976892995071750764959006201248634984461104838758820547211581093956463341978639648532098374210884360068811459140353747917899281237612762915426799513698374884957622096161837299744707823463759319990827459881608943099931445950829138320913450687586118169682019091377831173862622680851014127913802727749044180554390232060040801904544668578350775594494487334542257181061378618732741690852764481489802048862392866427813113199956802150334870119253121417265722344323732678260571600796593401447243083894414726602606850239825343188608075332506003964987972758726347706973844226112327240844791455008687311678484059129623664771184770483340729420096590231884736065848636289639343090460248132153111636050975539601813863130878793714787196309548611058480960185670157186370557117576994318251929970914077468885273603332061784186124930917439106250288545926694937759889603537874271201167797786580785783594110729257392137369876471220848988483270955443994883441647343834057830088712603680801815645412592949031177403058074054049233408826664156585396337116257110546579895339492221477926436645913385478899284443886139744310818546136057410535483251632242644087998836975354169232135375662202874348136715198014940319683909513135907004945703144095582750657614344455414660042143987548976913080131474064403104823001171964073766494344439733533729433087414716355310848124596733244485915216413250161078944826432222886516768203652210233110335895435548021391615069670279384894808424928497771914403807976192540562531777838738192171600607416821099367248003239756303942660050579804335803540560667362022819869210070833260845432526165625460767998449960937799615952579765322184324020021938468999153320149706406715953185509109604286280247142875010183770525343656349168229245461376261009481080903143920353867925261457320202910480882521215654505316590184771943448577625926247553407410612220044955814532148920247580109029130027906562003104082868481023806691847253071652446158496080956987886334032639145722911265540581922365690062247452135172755218705474624383534166296923138725502749247798002327672723401348391243503358477333195482850419399056699845814882332430834438986827376883743259908502770863461620473500782981720248233449201066295879717142591181917008815887713919610984170119960616878084852116690410268196575361311470196291386472728238886412897892457663151313842112913722528495293306447271143408426388686886772919171868815712638498406247705735494525953021621779298711906808758335773356926866064735093463193916274648852253775915452085099564195072081499398685485652539894697564006568501281669218193405637477326624862027855000921926965499253518650471250503580020790643467026942173519375474804361329497278135128541746333875729873818169740923933568048019671923833634058532102731840621440113299377496001310888555374631404632531528787001033154823671940592291303896400607121172812107822622527275973151093437730688881159485929158752731317493191476786810080784433512498368456910154389733984716741251310469305703686025051688571784468356858988891920315737700969528947521947700154491067539440074720181438434510180882527746398909724793323829571447915918532559365080842595636574917111445391528168280821837709865572207402969593497659845065486392150839882352564937809385161945442111788413324837990643786707904500310292105489715544211114871534709158301171573004409348662668663902778492167795147697565088841168296698492823928564010565304263259574654388805932359870847369796604754207653129124639623622812356565550915224909107862946836264158809497507678165626807774967021718665230478420807741387864594210862535754372509226648472696282746403684719127691154020320006160364910576661548561528871422561226402871241861958591617187797902978961433570608727149893122831773076713334253998857771603844259344755658456908715481827184418252641521531822870925293249715137621960859091354536643012382847845335133904450515972401278965573544892717639321524257340823092281690794420501415316859289034413746047294160865288368951073875891812322426181911769633369034482982491400781650904597956204045394070937952034933029270834143004510647296237925681983580035592260925066608939273603773864062317502477668152432429330101025550621150296698634742629528709502235450524886854989408165715305228464742087904942800684203307012187494287472436540624856699265745937103727830062845516771435987445107292683219165053461116695552323064534602448130502554384845104994082205970346173433413178208407281646738562989907967853919273242645764693075543611187820627407822617281322624492503281966638034659093986179759947367479890888619814498917856996387196254970852959777858731720154510312653290769221753447372787949815230937946360359020789111803751508682193749819038914329043483109753472019386471734522228111364811280375490793247842395839846377237998840511308187608895074087519119344247922917589035391718908364265849783393185370072907565183692427899160216476236702695719037640414950433099053926129743158684510821030335498182347323789611681125354121758597151032154680384920700838258042047927141903180073451243331871011722256049245221481264462856681680514870714087305841178070513275893260845124928486416311850898403967486134172306807551630942736296585791177546493379799501983528188195071113129095990106655645900066627851298874381514017784689820483964561209640481150217522355236608483802274859553748232971336946569912958128977378219281623157945979926500919232943570289378927372689139646676359193558583046069913609190931508123408941657161383524173561835111749781564989752481056361909523081331904260915828272252818248641516874777177846105340647623485368427255851481305850976109544804539596808205166764726047686227843735232117818774781289546183519678739718359220231273604631840905444404714994866190100259771249804148023151610013666071386194676419392858224349444841898118091865976317989035439117434115746776093237996051634748869524163226012469653419632293681883758638186505253003654072665593244290587779307972612722819674788346523201378286452835013852312184927510012360931402925375406350280940378250849699556448421091461269156408810764450554978449105364651797041822153123621515738699938366020905233263966297338655066874552490108353295106668571229691873101070851711859239159797618745394584561184166648690951623693972089830898648275549994663249301328130034731606541280513186655440860377175226272918098630783864039966825005487473251310757919941227277194698194412887462707294768607353008407814638934101841198776297384170890773516230833452518761155900418250191160797218654161547529166436181577208067078872052721803092086164474898698527716155756431360015843252526613614598245791422974731996897413714501062186202420226994581978916532345586654415181536998174991403743853509234826101147656238129506521842903327620040473815787363242294109636776998887497525425661806585521494040667516371496142071592787120881585856377177632936442378634833236215060501407869141228915914710280073327528874282962221019018969765008572483467761095097570904142991239063772751243895654282499375752939446345347937512797534319766168366374104081445063940810731037965036882158982863660796432557221096512754981471808583331044535272980441838937104707494427360561130548279313697823438187044198456035081660540272255719639274871523120769787737103714348587754929851771634358944383854799132305931555141072949906817998202786902408817017715736288147201224669497869089780063611175896009971319389605571316550571945395431705750202392080488879991746651388437054710795310465483145396684662947650296150765486145536532724290857746406366279111579895728220274426258074547414246778927091786876871690491869386422059370612099108073327436951036012734225959407748101271951612823477927175588598806730576339193783043329987321907131555411663578002612366127618446197406482062318028873307203455459283096422918190606366837532290760175233835151799452526012714635775955906948052600733725679271275610091647148078067897453189139211968943694682538275602660623492435872343845837602936852596490756753675694840989495017869749969796525505102734555331734731278014679160028236100029809384802163550100940382009714560078370569701768393334743442175712927556653531250807950934954872830331626652655616030305536766772697987753821711772247659556053656636097604495430415433839733424314343882740764408560431292000724105121215291963282277003781183183807722742068755477071046044902619655624867090568752192576217650064172193185280014828038160530294876290103597119630799552356831918540080949296776868997980959791411100457364405765051320690095284904256369813780204818330819417063802049084901293147230289912547318569068219297425634474354033980836000699103819779615511050571624832584268734574845821986163883207346015273816881560187849406428202492569679275420864290080697020060401176136086368011546961308776838412333985055858639049058633022534420201342354536140577842204848723526495632966803433984835716496127583418537004227048470015238629099554480264083720597236480136800792934189284291542027308532364382662475183685081049329215052503403923709021785847796349039248914280388095962722712056216080298512628778535016898936348154585374675422980152215363493316684126456960816162897423770922672824303977377708333027763228204164372531431620465262135705696372935974902317117026341034861391941174534449099335198040063363838179470515901135175297184087658110464422404590793644252963349665110544422579045127272607036947374611324821658639818223586144296094441893119316193037166638658425315064241989005724058511852230320543899674526372726995800265105614566408802978603798977053243563526604575161252285265579264296944493382031040858593032693785759236831290836649212350307182267625226668962308560378184872626177026166564838265549085237038671720444511752365160858152165777993917544917259930991692816104959057989876639109220565302143021347067692359427720181862176362874933802338132319363656331775367838882465923261313113258821294311227368814725148934250013934269150970756372051658589006435998504950004619567458739527670169542288823075377564098496431529639477275873712080425384557042340271542969653276936185159700371450742271206467908969510983972396013295499448000684450625809261472464477230004281861960498649149130383848535912077392351663656376947984742042787603596102606542495702341378126982120960618842354190371173996817904083445984968973389699379100562578359332033981803997562482558171997931385782511755201029019659842755801454964296428451625770148657257498977646271727524691841485439849949571266001135879441990890803710100187442788096841829814550647103119985058921981425024031995068357960848638649465652868589809618134709145090991843997707683171178642477737777176508315919871171042777925449494027539044955803216260912073157114337869775777350406204033763415899695047746159820154069005711101761647886286224324518700746367450666091526307198865244038548742449349575052858202537615493979944671121108899720073024182549823102413506976172923076633075483540855722850271209808936906184123657371493727531051348009985677935738020915274472476952941832907785429261135057042504716993418406715778824886556589423650890138860740228675076738105538469048719567827731567372604920699760856291208687738432364274789065552443748445608443732366581866987341806904327515862946190572042295993551202184800789447492941975457663716915638929298306601948090039937857174856376191148294259181266662649432889598385380405712555011134644955185373498396783069372368632356425661706287071310449081928692687366888737950884150881925217772388658875290965661470637662195975161662839533541584350307257772276855044044612664397547051853460880380024457977446379130888664733885269855313131647409666034296864840704454833884315432654832239419612445803558581191922209079893340319525132259332913319977653041794255054591253979532894080356200373881637982366128331147151743722643898881401846859756487649776340687083899588349697732643301390960495607100783378637941768130515844932942815299066325390396444826671767903227634768043646258052025326503135424196331410537889200976399343562848443108750647583952153242826985965001680342300336228486512445335172464918349377348854004461638882265621682159602669203908622768675722955930885771898015204962061962375707272406919151753789576233719947437474978448311137183323953922425013057252619025194915538111919421369698817043825011687634990269176499702798645681328965371972982840322476807638605597345124303149074951091333524105789442054926018270171168157493932473546465794262282568796710899312274713228197895236492277406442040827767509819016339596541527650279979343713151845536371734031304239783617943381954976428202299478132777558863827541106309168630871960731694690215180757470574718624359783786144114548628658134726942534263250684476488317913971322473864456275314754582572439500232476058430346103245762545397007987011095113068938115487066276296216498906057751938828548698457938601229590990603147490424783577110611454571938026195459071199580305559176838820138978847446526610258006299306962649138795909855223726355951390156053893373336794100590412500515541829971937115473541457761230787459082188422079724340130341440699061090307573393378265736399757909237757711534575681845126186099352333183095628568884841296701592403020778800355884523032505465981832648431414356553635654338302091770098337785746824755917168444922303806164990284692766327929238569046261592523468898171260632914090556830029241607725257855304413641389415062442286933869767177604456537459504872227589927026486006445155178659644127755071202695113050584895956401711002598024121046712726075063081346072376718883010375603731724988278234510726302100938325269913451617616154930287999422175793382292683257609329910393381702741003593353210324813086031264342302308089695274962572420750716487116157432082548201772851156225094763981063095295239519940766704901008389476563386704809177302295836473686314138150865156567693930902241280795181916578444093960309989998815671598773256249752175593797135346393185967624069584667429722401390040752071732260352491175029889787965160253492466488416473651900657532330347514093373684287781015356284619702121867929357664081652604498164010948246185019447180208636854525380634672127999633896098153116055828835747078030735440067574217652387715105247741559411251284635045930211027627487606524811425392311955597958500524554744884958250730561070414261834198131489228641280976512968243769835300821461572189022436342075252970671384154160681150198425183730184094497947276303095084885477608404306646971940638982882543678854651539052113457920243456398261174178409917307116233447181926926540166805852396021547098099697557160015171725357224277805545840167255713559741445290539207496656409883508440925430432001880695023290367805621744902688733746984594817543000899924573642755948535193139369651909677999444162897538338425185666973715721121578269078327069267130511330391337886828395277548089836686268082928384655949824960668125494504187419293155796945582103504150096106463900843717336833084545085317142770630832875784813751368387807890186715357721341418245759388629703260729128037835543273789777478447596085598761166383663114224593907734441237779860683562740148815502287530144359016306728690763385084157747932021246467065428631706030248592147325560928074489381211040717315930242219396200390804221378347539623888781500562736205997626995210829739015581434083462830777881823576082053066363928535585463169755381516965996733031379024119932051998631481182166052396377876181335590307570261330005902795314808734300080757852804275298496466533056052211298104070617067865517664337398117416461699920423883381847097020695364830161192681270042957670492432188463180880830956445715928098359200597556919795500854723724244918380725082339873389583489126037937646487040690880339882959968919831477692707368462116197832458830649531004989648567786845054165085588479369404215678893049250425577283753013798881564128119608011937536325925540791558063715517989640974802585922223630003720318064295271427588227048858570380639526966544479760363345642145349828747712966834684608078204290747603903343137669725689443716947292252113651172482921638967239448607893432577347117027470416820918807796609710776336273162771143838614037373410243393899946598866098880763704122101492575179855762633492837282593560364311012228765627193147274746574030997602332551599330947880148919211846447880348538382449770440110571982270742449913519405928280284766874386235698389689582316343183432353571454967761436491938675551738087203929058042681408693014108882486927509497870724628645226122089196162631515588492612541434623404940928843006969924977969742587350941851423600197868462564050170551772821899290447811756982092706042585558074915278106143123641721757996966310183412489015899238932543189209514328422738008745654093433637853821167814798811428292792648667610159033741168260261868867954817165902386495796969648717543657419530339155828742286478172592885442521920232155856352681362392271310861437126219383982249419637645818943243256666407064747382890856395355795128116790569162624667389533035402579949211977685625806315571225986593648221749543915153883231815916915586035459461121979779137085754277732648992555932752915652716133905955824856959590071649684458638069108918422662860536693959225259168632321607865378960608247441032444144264138780549927414834623859919995823981153384754596101830592034101832172325633201089132042087603305258971287666507316323903252026952560755487199771301281390252276036975001878097714083573906812609110130967166175480483106957076035985743126087492373646784703788504599059458599176214569301776235079969153373386546169523471537270010057925478334052190723635245890381365941795484050476916730285786928534423043984194769061376357758070786961228784407810056896927840144963167866808026242318847455752958049839214736359995275442654946093596794963962853206411328577798838746410632476595540741022897407928107951289194789549014070376669142156658891405210162209750690397908010081931028153099614886209449349124686465083315971606759252619845244392640884616598396607148631061851413576490953405942597922224365212908142136985682018530305969538391010671035846099669022513804442046857814775358773487716902691347814120617036597639115932800456239971845550448960068702082370436483188851167200618725340962055711597311333703523809860772590427435801942477345314058610806147694054441397534751582446992208004194468373934730353605115738392773351024725054172149139914245136400266844884104464881787882469397814357479768322735685265486549337714932096209528635811552315252735942308974074889463072376880213070529831408587046664886346397873228252293460436133835718143234906987705049299132406331546824549592860014624992397529640603677874072245519136281181091308091347834115264472628959189331991889037103502921780634136236760459365628293051035016498140340656059321740785046866000983361411438958210913654372376641616232924342410600857170164812817361870221154117218536782810390576553558010685664333318068280156616567395675364792888673695152040484020552715354082603256310174954104115249188788613340822374059888791660733266365358466541932440006154143133280449207650767641316689174850266536641461715214144808173114591536743469618487154988910933966590238729471377069060658547712952458893858948715459945612608483172741011974054396506180943695524811130451507747084884326229488865476049573866578478844700797282597538271770822677103193053644676992563136892782350842741205907821161191625322968223392492543168174897640608458099635918057642032705785279510224279931071748305532532218744205398798664206180531271228601420138040459225968951373847146079036292085270484624117721688174093500782188806636075624504638676135918496921756456759945409990556366378473666921355676638593848725996893594886560720713321511091324206120440314086727156869805474534240592075120757273920962542666520058331717404470599846131289271185998592341710181484450707545097098532591589229265080221309458074551698786653179929362988875714771252343621971238044255824652966353409552666940952207247500530697672561232132181222549051783876371971428821119032990525229894837825084518694582112945622021333247935282299545599431675062945706977296355897793370189844394589149578345656211836797158157441673288108082929694745987051563825217115091978471866355776498981525935231872285775790947206620968531084289059641830951101306397419062107019470814685596034070785972595207318414978071567847120878991131123059085743454770401123569017699554099496151274411561705363478850590797628124267272200490272549258819215637862346805829810351192234245314431039280183857304707964338255719837850591643846540707251179821223223540378730373790297782387060791854033169711037735617818741217148202792546098808007846888346960087689728475885113897178109240359576926801625262187428554916301556831736773810371632475254671218068005570232444208697111092687862488419882445460931162478607082166659375272011597846858763268815835214970283587987371079499656887749890369645881739437379122447557187942864530706579715206471764057352517451993932262014342761570204727287277838921472443779717908701818299254019210970867948844723783497167102248074390749915811889252874033717466973846212564477611022076006749393882753298621114709209190053521385070855367203979394657366925744232014574894185108013031499606565203471729859205546290763141324451195392794444920070514793818563975814051388555118487442711722834123166739134539400029544565367956263586453675283026421160562281563045542782727676980929885684058452193394210892858097449015549519746227109637066084339585005331879464523500080169234921763737223789060093295851833237161035831035274083232584379663156544319214542285670714782760859565267288943093288221121976479203995787760646962603554335308681342812585226728221879395430350739570682698809622697547364814824039306873185202417023989381733588779091672334798766477220042230241591124008859967395156469678699405646949276409746073429787663211281461982172694692250887860452208255241464089165946660567387861058768533678261292968067762414402311169058764838310492257298484198546766520116171866572559409921992981806406171956078117372787183229141709159170396108874308105098457681574332206627048675374232125963791192923936889423421624082263729712842950068994780608028579581388475554799553733582898903999915463568648844990349499753130487186682269723762405891130993073648052878191794717162203796708467931404997376795514600959587596103833747427323728119425227105863054369759808600972137582851618275634559739564635115458857111742886771843564346306610310009123622683866678491549381713507979246974472778510122079836604658676745110270750011248351120934233683945603727576106061589738179290174993475647111487130603886013590291599328651564292122478638705945687523695316369787178302800523392857934892302946099528877434255010546529008181605965599111196426113620782737055262884838874618774280438121767185845109214738422066243847915663097296266729248756428455465357842258856298335082617641794822398082248431012126682384146307621490216108197434894840535612007667703453239704806375377326679417350666751042035262950369002425525273061640027139037553805678349560120521235492111147068663956762435160348126314654958701850276296142501966182716545715474629531933942527344671818421672540801633271917190807225476896656208944097787394736333056930913782616865156974139537556399167307193589875603672742797830337724480492689633921692196465635223824517592422407489189447542052173504916149624248857925384532704790188441182841213906502368703117116111312874691738725055700267788452841609283985660960337074341559453159890821183968672279888005473931857395741371081042011957689686347377978009120930188876414540878364175468851352418798253567242321395403069859440352489034794117856292803896381911378010133891229638563687043550266881736715980992975885751923418014106770666656283711208159307694185552970768116119222483160473522915431011387540454510920448177366105076408746179359068608817443562789795992461791171751502072665748253972208381639167187392650050219585590531129964814932820107783052690053361694066510277654484844584663860318984485830349677628758076133286049780151447367667525708888827459562780528937484247999363627127828169882670381937304100475172757189854339014908361227746288630221637048213533001522112219158354678189605465328310797524867539464055810845021614762961214685845346310683737879714669943725257096954993135456373581222698842516456428031229138323437775865069412340538810722265864241185403283103512098419263060187287007671148981175967328302720484176506345378838755093920542030276187013980737030031338885214809377868578147389530805473866176897869163945957044950991567953050892404822344265159127532582031601052694862382561844667195404705926106486405990649354098010302034766334711504506770586879640805756329969123159771406594718208879188940534568619547047904850041768775437249797660430130570502881197191193831808714328542765799820345808779277410281340606205319146263727980194641431255705986379129029336184533644752777777577447540817183866890719097562265478015537152709988143845735300804360454077784246113622714986360512933583061692701338396761256035804439977414442321368167961401364371681787946194067810902983529475923005020891815959891962930987002374039420071884822882443962827855231510877134873341794490828137955645973387246175638538703505368100351923747286206428126779680433067966449115807565020437618915830867753099565994796742712427601576356943617628935480443028919336645481403777108391360660424561643222549188786116424890369444321575449074142511067746870251631524237159827331570804247718721634212153094166187749873033661212797593628944445719824168802705891993896707552111096803478835776548375571767924799411672020483661505728605809453613965553910143492124792282532373915403695401183520826829555551949281802109052046550619545661122815397513922919480930629155407971167541412459009175793251528358668619877370633097831870701877420745442207449217609907222058344194060890247207728282305688842364133617380046931017887414689672549420252638154964295988463435089095851100054294756284420472997445652614014504540502846584296190930559376335412214620440918907974717572632792331273451658218528033171952295719715338570766738016040073116880735707551094891198675063517626476542196766362018843638336459721110195521871402298309543718427852912207571148453252344842924503979297502070694437602217231107365822833604397729562422835885568286189200902581657288987591961051924263277615618348920737570551821415093948735299591102889922118264304202576932201151756854000152434676597437787235713348149836346831986515200065027483595563110840869964974678933043296543530274921946665369123309034644473627358731968512206630602046634453938502179972214350032424097631899524163540921987428186860323621855067257540300663527657601380011913557630605090894561978076962978775215917539590316512043361795665368680109194053679168991373904282079989239908285461506792102026484802305675865109971406072078100363526346934050207062740470295338045536369518155135868282350829209963173632919255169047891201331076413559022130670945957738071944133726992591721995930934472203593920216110392045909942129854036401877460892284258408536871293461295074602452397335159500577179220689469488156435385381881499724824752628081638501847044016212566209361381347992084423827319724322869878509699436555558845019471206152953750785696435035444653630963463679227292933759127969822520521560500467073827740856607887464555883058726644126860184826859674057836352558434830998714531847964980374244653487900724346172166808246347629590731230558555422380264781939229150422579157606120233130164812926521747733621669719008508886296626704644273168790566273240455282720245563053520101617729337301652845192331166995517596562968786036542266650998306305391675006325491060669128211785615036781500177031577625310418414023846580073727281875741258289037651206647324386987513305553688749198171407580741798887174019983675963689827211955829477054265794180528323185877157106113551189615982646454811651209698880023206598887823470441070192419052735475811689643258772673886411620855432193195828922841719865162060059851376842892074873432988792284768892901389233102210756262749443816307889383983598000455713216857728599868093103522702235354452004320182237638826097345103033211423780252451912431406176016716248474579279927224651836506768917026278385721477278389873606661107103829759872080636771449458350113198158486932125458710095168866379796234028288447874345583935299035001261701148175737387580917097431702365503198699894038559727007234336497614596259518823630447159921723036501070297505829022442371169639482450946027979599732318413019195228129000548214672031255773039025171695853909714193984701234540443176325778803398181007728965137146402819190368646554597325181682830240400768384085195003271671000540032274631516363599650727036381295591918118163537055414144950030631187418982548645726726167050386632869990564021141033124708597309978080225160140494902972695787902770734968423211350199372071462841819456652822530703845599593025671695945041741136079880235777894683991114797036299621237959534340606557769176446073676992261081177372301601579604015202600551223063058681462168147478862948706827461226824420784646204169579426606623895354265918497500603000912148159641078572655151760788737956744165538566803201618577399470336512935401365618501139450138158066397754348501675532345796146371417601620461981977846021910757053527505387171794443050425646157781984932394208666206109000929189756642601055342007272961376058569865564631521846297150884525193912687961997210274234790719785996033168874903385508461746528556233984333792898397796354169447166096389892569554663770954166230085809819860960914815622779394258729537959754310110670271427519506053791373685076394709490791145084202888164020739200431859225800673332741154278475228471478300002072579924988034517397870113681796296467946640684281095108691921215756101784124530301796226369435977811744869825073529169749049369003789173205043252681357179885262662770302238595654317324241855373741892106153850736180367233931976531673810379180225382939730537843974063679587031634529569304837411319325823598630007238421272136873748268591925559302858863038128378557806292125311729775030029065475445692390672868696013236297743812127744301769885465469763465726361372611956830798614393747203092600296716629178103784857179447185101349970894865855257608306410164046380021266202856353542422996239358114935732055241052095334002343506770874381748560872218932726645692483474518889510541440582801592642356040357280474971365916125225918358928536684802659546641900549686869319746131166246793827227602135969781610091186309842303071482787623059365407381319791481408234016306770542806391737165183568825532308268128725344269114864343891670652034497298894115549285539153906221199487233992780024919552076942665895564964315308653318065945721674530300115023359293495803794298939917387271803926741898325568106046792574368413911735569649716169273421067703850645768591237089651356752378771312450326037418267307851252613106196166470841142298381128959492669980779074346508791801419812041527185490644974728989725080096470586828496232624051240049167115157247365932571481915598386508161202665652791530930259690689045854217993696469063715260477578165146705687412991683360818591667698780334610675513541673119660402245026137213688106954297827277260613576529941288443013546551334856964056159387765223504122426539127750571852312453320141006034983860839028701529394422502806292726994994381784128750344269710878012134200184135149072526824903357440109652109391444491645098018729677728378901415113262254029679952371518730772652964783105122791364196477278812200384721869706081900188571252502474141506765599384189418994340410409983523012372128672325884054441541317701202270708969458795444637990281978812748347767966906929419511078991965192557451870638855343062436201373921985428421099855270096742343184512597194198588941509036824830398919435023904837369712586364801148226439402541216018218916123667528629071172399280523873923271814441883840124310462742003073155278936410037042461329398506338488070906187932293492612466387423992028684111105573095988876682847523784076569362829752311036437145309961860156405457329580564996072760443097400086093434612166298206127452991092271960984922669958966690919380523416618352124626995987603242663981445660685369434848633256708092505312683473978783947385059006617732300005564772177285914333499761114966887664520178987731141002501079532831119081799069949989870848633163460153121326049083110839510078166351664829594049224784501654620831647765749733233641625695882874040353856034345094042141895520596256321316185033014205329909792121231345346574070133665413935526104013686273753636525537397186086923591107056558817322535688914281176031734865814045423550731306243138327506390194759441122844664084705900396480900654836841570362812541686883839251244119634156608719996889866679455128438094903359522253126483457142855000576693869060464080336999585328086495247864630713958455360457002420121928776321445532819019847521952057721429694904479249292162936139020386595095634387707004684192889843075688998025722519910351050038580102009738291912286968347549240658707397976739416936204139608855848021706424151418064312512700215920219312407617735707893516665538581116766131155950032489826398599284681111620034646033658360364237227394025770651430474046789581436666687603782801314423624057633093798776161704286280165049797533608340819171271427513204350579579048099090060142200857231254239080494707518762518038354914633443379263245229020048573590057630234746222347491049561638890134388478856981297165932093243044505782986046570554701017122472473559382056836677555768685681870257917368387453935222805663903996069232829701749627244292017222513756542305049970659704406408504746752794230846982701286902671043456282985012463338022068539046026706426301077756855939179179532210105576193065815902593540668037391450709575869689741897550035650969230713026252606567201246318395514077907732881588671419483954620605424198112902948766182835969156945474518215314929575082970339461887944448822342649483532236540499824224048392769853449867165245403224875711580923084229158451060444699493624001837574902084616651579561880049074363458772194569972771815315352191081606806591722090688199035880570396430504164852976782919600008312512046789058138680012702248296009540674875106259147490098775076990443310853110497226092970819170121804886843143060619568541030102738556970792956846290150618953497479493617464590583631886469149188250675595495037414389061792466982910372318926768367280992572801661060649730239213725687217041209147209918896787638695927461758109132504746919777154390565450276834263989035917153529625907333394799879040198498828450964893226464625318187064093519246205778214848887716443796365983508281482226328798965150363065463084671623791026844566321523134763573782884457497344798349830029522346550362714345475517379055196803538922613439703341204055418311882416517430418797979600470714222879210087142874007610709207049616666326978888677556440537147272955423987230919037258350726890589594899491328885931510934677895103404505726246721822645096951683720676044760773843139321388653999079966252799100903916543931986483238871697757960027814429208641813867588878076872590808896112704382948006949546719518435957936601460435919333863233973952917652344226836628742110991510197682785826429087334747437096786289470545328710280485750786291812306800863745567243746141601455839648049088215059010237223325102940562220077357136292328451065159216727495823365071652108501027737120012116136684105245421387997500725581867867123628227629576516574234445017775502417481491757448882676663934874173666320813220338008501593461119066263401959186790450955299227735846550135705424830972314103337836414894876253295806368684019169330204944444366695708829860737871383068645576939641854791449181144720993866805188591843247006268520328934536804078818718140516836442042940270518160356825210592932699448975206595877395759298793334515931841356093473257852890473551660197994244667942209336137622322181568521272735788956509527049107174776216293978055197964270240744264473868231718543824416903456482505659510044027620583889345462198760898802338898491292480115419498494170731824500683162693743536218933744364830073333847128981464764259172111345627993704105799015364913961616909462459223630459321019545956272588467452772164498214542810315152138491022472202838713908224759625604643961644355968595259762847600254542487435365144090959914772448875633595861712562319681232702673156519721061454088760827443065478560849407650391078258800613066500774180398161794238646073069214173660681791862692269182176180386488041966378175057741257987223391637002265803360522047623066429162216736686419072164704190451721416492036798620476841199619465927918567940772611764207384093177346588365994197724831545365219381530811669624914368596612039687610954282552030360120812136537349254922280045217194332080839793371756451639709056111333275808218510629452295345930257443450671636226903584641228437830211097505767388345487639693701265135532337937414279840174046436147964292400555437827084080531521643205427856193057673754484703313142847029089942334234999210516663106276567743710479422881632627137459463108878771168372556443484533938378195486910688952733146380233838231855889513861441997173608124835710741519581156342408335628592368672300858625309013821533041034126894399061131088269828958173985388422505264692828341805175442615883616578102604924729203107004057791434954359785102360357033953568497609899206853756001447842899303395065231909708721918958829685429960816762768197983381688950067159513085641532381004587549118788418032168135106011357968241161146825882579019430504478142596052538330368140014808841388738031470345905986337122764922555855266056012743019534794034512941524771942206001851586176060075530335028735327236846983673259546965768043952201138550082912031629773273171791763582016459940449865564185572271679497310535190938257940308543211933210629815816339858588297180440845652934730100827924885108017220075324522378416584751350339833109748275083878070016123881304704002302727681515611475045500415411767292778719166514353525313767750444075451074936314019833535506488829829180449011167811960191617768737408186327598601249761131635009451896246264092111451876502854028050986353755365799240751770062396127351056338665454652074009712831344866073095855744793121276734996127866017273921726545993453938235988064366775336422025978687923984307968097822552892882748208578923607224675959173170935474409532849973383190366458872270400573884723879164872577672305279981380288032885512223744727028221823603880968492192475947681565000275699323201721317546758863759813319284153701435542173027628155474037133862117125580978977302667044403871902483417824501190462417971294968361396147939361950495035781356672381549592794713285546445043931703483488667549334614295138429153422702814371184746416136599665461105987132543576072539740968734821436267866295424941709685786486980533247469317008541933029308323090471848361696969419032995553984240388924701580321343512829002321276429435127124100774674318753291204230502620612752639996817007246690782322337628498575501948816449557636415732571635776174398301761248849297047269816793048811118687829105604482997366263802771425302836986019190796084452405540414714631632153342060510062289137422006146084809908890380935865016421906536250051725404823144440425620364352957528202720391214803861749542036781753601815794124880344521661430900832206658899547870273339651275789763069915459123357934254818033037531089505030593547010902287688550287497863929051848873830481877974380635944148572198665139306889711330430742212367802637759135023369296261487447014084503914099834242192497045547288938825305403460414662423723357279648654903289618795324836671764857204832219186662440088219530823534007638910321382352313474487614827390687360840173480482726586276149798318103130743333120187722351299492921505499025691203382338972715049481497971241496674684737325547129907340761853237981599409004697098290221795899292363777804985898113463883479945357924039132471733069472074681424424598773566217367838624808124303961424420720311127761622453199908612925608855498394551189941506528444041927958533046935746779882270676422938450650444533420245028506892710706523371347631412126182283368634801595147557043065276376983843255369296805135764771208724176370879114789624947295290387699796338587273277720324498742634694496540777575401503074493688349802541918439413412249299376419073726882382959784671077664189789660753408799714047261874110342299712545127214577576438838999537502305313703805602020509824663414754242308527125666632670365971047980055944658669677528318380805485796760572120773028187844812314673442255570102158921330847451603379810230091281620435444016601791940104053419876073769690898289386704063001808791091009010310416384403970051939137250575801427815201727425875404654919710779704418973717860056325046154287086755909852167544404628544279547280948678328901822221072227527098412756418451112524166658487798680574653179673753402465988889420097807601108959971219061752894120150323499735743692505195526247207797879597921872058150120796005450956167866106769479975463891630363626264976781210941865336813393141773616764136095102020365908597966060847703304183341834943086852864967003528826841267553839791761866226907546698815262170906193673362189528693122269669907144397527211078320052313732995981333622348883039614811677026932205787363367351954479312671567137764424935241346849126061886309759368607722146415831048087382932750816212024286116076921227698957473588782826070048842749312951461518917743215018880751200304133506904575130333963661244732422797752131701433168071713448081099079400442627595933385186573903557112292753307643792324040117470003616176913094822723681793078694212054893528732830569164579119076181743823174320053771015026959359710835379298863233379424952182912657511605040894422223227870930321957912604160851142520679436922260455287687298070857540287887130132002849782184281430135969582943413781216787930543935844622951722662114967280499078933511104115617972498704327549032754722587324021252110946064817246945629198855852619093485332834129702104661665188996809071502245725016260767830972010516141595447349992028399473264118773936724153760107123387857987803963984923667883344921768608115290704313872403802451497001708946455827250588291644165593371242356655865134624231467095884178209834002602571898552270454355067992083244020681317046882100605261781718780102039642078690378155887269684947117365673865382912181739579499649648044371169773615734279318679128838325084781555409750987793664877378686984874219364797986470666773914660297307116685696596129027790583647725415773673784197872604878479781160140783723860257005377196645727542102379811988229400015408002021959568550446265817129164298524636932953206161529059624810926691385287308190071915977241664560305442149974838698235527794374464617182308919370023179267614784966007952166219545859574778470071234057137156794811393429006630736193112867464581125268809995252638267723871086017868213867628862040108119711569585701091895842296659548382073174291230545853532469840231135532738352795561690147325441607925116260288887928528345753383634034834487386678500316918961435202269223707394821820913110173581919218944949422154784488856505561326767554581642390260677957032061847036377132181825687173457581381553420461503568866465127925779252563849577491426228671813986491503609948952696569216943269563800568060327556241104272382282710654995941669365227864511939208070163144287919953460924293899023829627705320096466753258628541365273931420963474999196093345040646238322311322990680866450339626809341706940412501844646587703820150173925925425219702021163916526007014999576017681479712086261954889223147570844489207165464562027582213098379484147657136824319678137372771504562616779234620357494068834734358691663736895546923838058703206901175477591253486092657128224120558409506537047442345801887949374700135185012351007595243921490701166702917366766450340135013873578853904480743759805065287593619939437793504706170932450876430139335422913262839897010384914256546187714814411182391890386482837867567847747272812322879414513732229532513346027639014373764164422922468522032771605581783050576918095696079940012333912567772557553219764183147382818589065116382315577582738674266305593200577257907117565984812187053703068263091383515209378044013591698964732398796999120523613033970606856847316908125251475512006953967197145169658026559322144535627890061552646332962766666084413549284651284658119981319094012049641993282643934776301122713215870911901296062306141176021941658486222478810771089086165958895638323519620698410251149378713225635289863855985071804073144417658614346611465737679811967904101273459357723400623739814274930267881248436439682570666896303617159264872662276320934244340814334152930925793380277055418549172857564028861258040211845281011677228716613555889137223534969319327369986645844647707694724290026653222194146965199457880292454028655788795709670840369182693828117959272392578822576869676213450017166192373525564434604787793505651572134497545772044633803793840104886272213883910089425915981741948268911696820221145949121889029661344594048308805919510232455791408994129748222566444051377414223730311020979247748962319991518945846729379787360098828027307355091459528202057836585817159157181763101378310872872723582969220250823057659633655664884513837735788906485525916575665384488407223881466105996426531564163176936885405495282482664374977138923709859460160573929972295074977351312393579324737653070964148679496782811866878377552698040627427237969272355768760907416851259003564417083400910307553260362172227013831943332319073522358163546665440680226046478376919117777106420408428518012859661821597998879333948173362016957492114870629020831668154819138191747764843443966684335715044400719881826821695686549001434612694020722488434401506805060373035368295935381410881293269701385989021026722849605446728990745775189754631897313714695125003603144323417527244172466035589804038099585232712480254556463073266904248883855940959142707305096871982844135451547792718722928725918335353068396580173613638683402709451338842504958611472804501330196988495664667443869000955917713706303432098406313824653751358552631119160482866859222921486420266598750290201042684394575617123202993975355955665846738568120743683329006199347150464616902887679234465258006965419121069668906698375319942354554837177916739379011987105284611057651224919173172144169533747994202360978933150122144723981688418746570211416999006178937546578360312281383495695006102583009241951241856309218406334944407554014465607820119696801012035011015420860313173577433926552418736484916375078508432109646308429372655344130956835940765222862907053117325467797474033544945021487568714892247113710714876971961670556906859866946851137062247300880133609393758008914334373120205131810179900474782177376859083244208362320593849681288995744004019488168203768021768945648534831328913829610367561522604252814608932579293370540132113071091627344276678191878467459128126541455446292557035600328268621720548914444361557736765488202832381338901496529130211088806199298290469714965943712694078497665309381310819604010984762629762557518384960916813801302005746491868090151043784554849356709324878144183332513118991818205286342649527482734086156104333595872991437325745356160921909622100929825813620495307024302571176081765041206081063276264700287000518976783479440601786399749880897390967621499373151814134558561193702531057126127589119764584882582028151444171228860246192158005164998752623070818182384684299305016940924617128193674820704109141530357797847264674832788354412672163972588370351551571157255885427988198076629695071857519401981587936258626324117856189894824840647779809204869621044973768421461908228790159868013784321096304150111089232961630593213233504163271413841127850863135386735479391041361299337830085275577304736061969504506845808261726564659730404362593261709802293269216761586535856339868314266260846911923055936335099411738361634980115307274890219958806615257812947435750887525920620500147936687866425403003069850782462487553702586647129483899430617016787802389486903248795594985337981971795080374455490377081537305968457012592651755280724350913118307796374556508510848570866636433265610532543595062561264386840466806666294864592813437544441942560486265340244644291723294340504277131601164980262137961035105927238043623553396621402001662621093835548249746467860649479971801599293577246202849352983579664466411283267820159922267581409063544807048643836678094924782246411776669261652456045553634959366981964933435401923535393745150518157912721026663235596104084138748661829114889887815825380466580772749908567826442211816836904876582912685751106697630066151425411217005014647924810042372421096936211762725285541015979580240690473483427478589723354917647953581049365981882512304160219595162178776513283569660060839362751198879382933335530312619752401846645758583789041591829688229776971200230687248939392868450442501524664464919467003680686341958525922077058171986345001861114206314393034063272494744472762763803094271956305251712931553054591971119849534066803753885338059235338955520749284660160653496011936567380606492825794584114314126507671329292914513520949609253638227115855374892638402393738073248935936763777802726144855161807359702249486351363384419811306722310953732063084598059404661649494881215903275591535732585681965953988490043384250448313199808733182738763572014926907385294763622705822737027619633890715636710735425395910003382689657193141400933473038953062249030786151259411519325125556941271648178385806688618345323296564091857395656313410440528568271543404399041969794627345610447483124087803868901641364622589762717637181692269712739277857496033590767707229402095317780720655864960157045741384536747872605132383478811369409714009699011200352323282019441738044585632042864032012693572812070875731854183113157442444867504252706780665603866731869218205678129251993374078227649435112312019489834675931881496970943024005074765041233561398849954875546636429904594300585438345338244980913437606477668259730547404283718533904814228365606963194325251195936250776889104255224881213134876957802921384444348865712888763670596604551611068613971282191051615285769034938884335425950610362706448777830045368841715576083042155300083293837147923359630416440951593588652383327166629551673401851703658401603586721095790075571612050196552089812378721688652855044192872761420498241194551973493275654593628680582091132548117723555823440230960016903962963200491143010967321746144458663485831995971962650031726228289306825067777930424864270016561614751898749557712878255399518963336214246046046580517014086094664713369716134172698974528751002130465249876034784156776869341427831937419806100700359147935540762771267072780107477024794868052996768028675868516436538130538137212841983847127975245096625001395963739677375016343160371967002425456470669776592717394032904746175110240037720003881153078444085039401280088589175062092869216957789397986389125969012678823329515702625693051387883976108003670572992459564148552280963870300168148887967751234561751299281609512420671444992561697556254022881462843860632788541558267817840878256302772184174291198255554570184708223344008677335822550941430727526366918134510634549323198229506725260688721392452430452106226585690120762886764654798747276569835191552429500793746710663343587797912587556437321347021222802073043508501412677924478710360975312178611378978373999391992455984112261714713900098331949558252308708241405312960297472151156274309552459719047527562897221812394165987613358716605214161253005368472031056918172562264514027222544348355613245112406843442711633938897168855965925189073306555513332973572879476194418915764463450776766704563721006269838464602585790176954280379422822134308538921988437169935468101912612098632896657653438022216230901671157456471475937587033090473358735891596299102258354662696828491893570709133216947778805684951010325524853855475259505096335328583445947355459640101898608719668599440824348868177165171193641658919880665638555336161653626055545966435684189269741082927131859798282593742626394147417763693914006581977506559971510582520280030869765322869515617202980785599411670490210006008957570569330328247714070387248710750736170219111557557845311357177470068866329759624246045812959213479363067434474305834648399548114613251401143598162656413982737019386102540811681489930085265449306005892177966826630705751230048836331565467770772454184310887033804368717561503990695021554517418218611556940234465600024051241234840245586920041745960734000836525358770526373011623119171929027565928636874143249508712853728775804760938373955319859500942016421004359105142853478370066034518101838239980547861788081490276725302822076408970265348091560764960237422755990123569168889897066580585767800045498457698770873424133544455097216698551104143216826315886646199358644487545133424362588521674367291222650860530221751572220709934734157088007054295749281979668369540429976814138824470292111225825673743585413050814129378310847809132388820653298062601180552499007058091907184771298776007086006354429646512998690185309508646864084997776654897797666696963567397706019613081356547559108859601612441863874008513404637577450958625578376433385419643344245876337758037765122499803215057196862578438436215691935315130117249686924080749489687147188740493221875451763518903564531484390276420376362286927289822695685242805531929590197010557088149066698393749070896884831830180342281544828096112391777003326438913652320644272907919773735042676977458900678979263837709491024850527358030745204767482688232654982398430965017632941492321962791203323213157193488761906360458443229398292299625976646978720202555581274354150985000926269567355831129473326403142238440092545702795023255447336074983804438736014464253659647103134078657584506275121424630115148601182340349566543421317850178106980504381819035091669158749147144112411811330757424956419775091312262768504396818602303215305990558472714522361631431353780752112947548015370923761155536415079995147916357923250200420185341381544922899919673299384086649513012157060943307716413173209927704223634813101821542235526941550301658627608642029270711455837741884062327652069040309583856609041670182654692116591015971500615299558767347326460494086588512943645824299577129885970914724450930840055923973650088846374523996383696564693950578877612373066696739293208779377231454121966630732898788698185296114512851235588503310587797348607669748189347318944009369100534317443811148948972942669858875164284773864486207248025876684866335440511404195630129214006669406575612903395573253300256571892117229229801422036049483464272037821897326669306320551559686151480786064357958772934683566208827855175785389122162032723371642542676641552088545166151444615695208289972927707888555913929004950625029991130245576264053868053832191059271996283759619863606058177201276549201514902636119467323487361627366573019996515739754810722553676045733244435265923635605257557462856779810838988937026505045232593671703962652588948560635224629639290468562936253209433875443115858177290885742816188228646642600919514435955220758966038059116888609080279945869685618816685282621895188840260996840778582859465437081179625952321815955712884060352441602558723700681949543366855912117054147199796489230130821038897972782550038848977582026310629044795007221276940359490850404671168594615146402407523120814933891663609482930938702063464252252361199781626476683185218013860673415668059565945188833741624971008698837199813187644885052244397172046525997025211605578044905627442198509244101809586939815720827081613685532808012725572355993805840519968277898015439764138283731682190795203243450131073559806790005050385247331540635812277856274730877540118729775708690609496923592904937208479474582690428320560894332110589737611728639279349479835239334236966013552075632156360697079659835393262128472671222438763003786549787189538041765084425142673230567585885168524960155353224201466871627585007701852369278406452333853409000752041312645195820115273572872390510185256529279785298859316715398907305741448179044383487236632052998269176037000150825938203132312875622088546556181810495979866328061718662449611018001318131866363087468440127965955408186829983574294984129524761555147613392200920994550327028912091765152095953778142528874542383437512016208044426979762388412176069647401264904348005888667133285750252922893837508479873074159919552342827989421409067035744364628662809071803689102613504389624974406534543540929677204375842211558088029783262387482681233050175402573661200679064376021742452214278362134125519237190347291240600123737907215080403506010647660930198457384085965623637527121558947234272678195818723781964980947895598290914206569322934603770933007691073459100835651674840029936205963685517203065079015843177877220381851776605292656258589264303911412615685643827102764231526757527730081914032857046015412174439315798873203423315539441489355616386427266390843590424886392585025842737305209724627819105658757120592301755541525800428546312989052130301870559859475813570959823727620200762031266089363343330677062919421571172895799030994205681544241982726490177380158996443969538652195499513380761530615373631213978418725856694471215425081622867547613322033648088119560981294099071975895761070744713581906509319874956985478537962661215867676618315429354542492187261009862613472567536354510608974118033424220752850182688060235702623628257940634716762406358249225723091735365968179665770606817260522360889709903404250003505994498328856498155723914174465732752855788307829462093787959152974949323286198572870297375640148055612257282245137502634731759091735878145711368804833887126630923269928224636522310899462361301215972598099760053972038959067076454003833339936874961229875087536115048694935690717219494482365602790921218275452369596013892077357059896105360800177722584604911384714558677998909128233927419283660565923425117328267828171784120459655803788760449009691346907292562635451561741124347684237037193344147693248660140929621208781452167251922229818048497783359944560066327625118473006653378921943941000795993801778388005451677454827643046931530338610087166252981331403179319770616632940218400537267153147451763664227078563485981137090603269899392841346092523036098383701388749807803505844079435556833588812594129526992431302682021389495421009604744577321861504750654710757479783839974066664190712083227091716302455035798225767886711626487016907512182423115402131369380018151608040744800618136412244484150977525922015548968243424771439519674713752933051639173484613868947792401650023810248730370606728992014493250961250550231462990538013072650359109671941979818021215445343985359455510471453640063836157117471750664727980105288240299703190790607936901454527045506529750895260402750430209608765175011863292032762804628729913712265077323201425731345804330441131362348453751351585257779607080178604969923114609715030226648913484379433334126648083859414267158764549830839765892468203377738023863304489557824959061094106594667204337901234754673522283870852527551345565596847451024266792954500690847299046486690040759527152142255971221128168253885171369074371799179607408363504672439742462147956428925365616955602259004626113265188207283717669770925344609453535767885029665722682132108223367554367877238805255112453247468575862161024252033596763100574655220330291024422996151502476771556341429966568687717119033411584906635386752488129510669584412834372643375634373310506308515388487295791076422236369386961394299236009345546101342955397569091072892045175051422470895669810102996024531483477409531078347365342516897323954161927828036573611284625021701589259813829357868593972795202920566251924299269605345196845486840950124750045241028790115931879037057899249349843051722242882062706103854462407266797999803351989172720107811767930043481260801338916587903944240929044505767761310680313809858279701995989528876803287635861572412169058063271489319469450741425766152033657567710309315260663775346614029997880192142228690319308181652103500785680753175737021609290062208107166449824594753686469724598387301214073550354991092426934364000553600494795000479332910192228636462522015576422240209415631803570711199820614353995431803032122122679215691475640942301006964977117625166506331166823376179169610670899459411714018534733114080807771023621707615201865709092958595517834162768222052135213224764743982003798516176023000414467934286946324455967577915089133726084112816056399309523180792552490440035974703330067477882814404152609923997296077248424927372782310634861157672898493422934419018002480312081880087854522083520443232421802514400878620200501675922674188192791452348843882049566512953786710065344932896805439476087331746999177035057260093254811647151336229782538757178673140810218691425716719728501196288396096001941653708450049762492462187190819537447191365603439213239199002972863541291233333004005852712754611664255193175608728249760412999330935473853912670540637491962981271969997255465440752498445253006349065594195998002181398210727493335602258045158878257993758533075756711334296405028874284242727501523766704504653058916563627731194685566416112877100237343910122233510956871440660728251314775204027144252604483538045637103362079091823728143779088305159735904456981387404948879578910334344430450070167557295713336985403084757040980038567540584219729396043678054535803486768701130815555243874261946605822738479955180506741984038882160956633136798975341633135969903971047321057932424436737174322800658379835473277298295524956949367626375153385592240251246201266862147486676651126353379808216262809187258811942594289492524198938176124269900516215734643273027256380722077246920779645246575466914755005548462798713080715634360282794399998093894204455580792578637530922077570972086679805963930368927101842171344661974608668460029407285527064229887344054244941591733596450170544816188585022853037387389110169989385963351159306590469713511566791357459596316747361557279296247850913518765156684768162542897158909291373906868559443436091334961190515162695925575976784272622210226739215697670408501624587370809107367409006199099645324875999807921105775844741316623384153398642519470092668900299760145981350580033576634059435848400749565301343935193871549811590889280022572270507398496213348676182397441721952984350287348276856238286515954131286086489187378826257588116319357600483682604702172741014227182213535706731586980979198394091618629927865876069531226083079129194648955829255052398383392797109821689011044191088675778773292155651881698673743296132674669441860968772016235639157511833957099194033872087561805364757375125098204624409712912864306354773736371298932764784740546335276646184419403543838677492123116118319384237912123334672164065482274055903557008598662919626832088285687088391837227003074226848410792282537754804732606113674058298426679667471589499807776181669285279276624598608224255818580978069686827666679548170194975739743427650617574747422324960152713671212050701744229370340819834597305996242874699541945095108144713283639518320071856076177555642446529080698728370066024054449081574338524112079109394314248177025088090074255807808698292151869829385949324092029035088096536099213738121994642858976102575536151986131641400095983028993387731369364327773201386664051041567038152158751231108626576621755465726843648266169783967216144544700962158011436664378674916646830822846156174972477949859152317198070972364893025357752498318193583876627245260028807573172886886121332872511688836268358024931595260210052073805051033895093205527089810464867213149453901339535282187148299230146057255415983988153202038986156272340433682087756967843925752103898418441811949295959312035193869069984395838688840434657823407855214532200985261050180699025783967408153346954547149654090614495400516808126035091869423118775753844478018002293717463502980675934023840630078846364809960888803088966668572112154231088661683314152025546226268660238034046822443944004649592019089258865624358965690357472096280770038500112176238370015241362711270002487205665629009200869841942905423909548629394554078267496757493746129152060919408061886978170817166361758380705697954895451724461781252442548150098540349719059581127178267165317162196737290325388885656580116601393794709493070551374583185087463985177155026355863382332064256938823903750380645482658025327016449447164937378566768896233862310994669069825979346485436046104332551570234206551124520367651458235437013757568590949956691487074603745820836396736509009606604766608736753349315714900261157728240312824704935497696587234962608581290773969810068293606050886218029569830272936791323313195228163393635795231133517455538496486895682799905755489840917153585219240940534034927085494240696948865900126600014886151178507651598619501423548747813006341880821248220903667417273861778430434881880081319453532149346972917644993395693265680202511114161112628394871730062985031057649572937741125864898121929218505305818652805050926122372943845936219261936830229567186307128864690640804173858541779011477380676091178495480196885266861827669435686464192907208495254992690051466670255079942626047807905176396060993548303450696062754874013123149659206796165586672952788381770043809497644578348603030548212261467107152031295766671678282452768837558478686867882391431815403198324555724077410559371313634212521314558867087598794964391607846021409138729616634528861234252480943106932863958757067363895453847365167310896603677058900723177226212055605307026806560962721226574244215159281910445462218057091149532019155258910509308477312028808606721240775235073112654812022121279884903659416797532323196944196849206202324402407796078810185193023985393636188597972579272907898312687084640305375798964806211634059585372469686849483500179862805498757809896104254660167645461714789366530904242022013295390416206197771797104833210486012006588507528815610453757995512450707905915986903670363310846983131215863863324238569123555672702634590161055709228134138134850932514708312332831565676187153662526768081763109601697944923690315994411530784089756049199584316796118598228164765316291923992394789720733212787047713877426698863762571395456511452522505710892743369732945089844018043496837536754890818600446760490120402646594840603103902338859083478087252891287139705860022031140418851816516258379769687216251663797580991608230567480109104741490599814235665269076538226827383490910064474670838606830583103707296471553037659070955100448378149941671305702940529204329840135750805751340491094998053069049487234567966467556189036428644038112086176119873039323916608922121377692007870893062992106681710876962582624644509149185466941967079403647728099365380133728702040355722666980726772079794806017181618412713082866617182761526662001590769234611949011681572998099997051630951584338361371386109734294013692855015504462410479109020273756332124507927454227222514212817850154410677348499747794863046720282334154173423507698549958601278435254870376003747816652968128872867094052957875123321842280960387154149350887517596437838664612108303570212214225149141422500043747069760695210048842825070636261455370717787002370736926337756573746602009278689950337166790870095771406657978656113832405225921094213170754293428411549738071574326749350926090852434309243321591383351422760227261283878056916959078588500953378185865469031048737692024362355876928241474735993024804770601641061724246185943217248157710630780602764022251102975616029382792058262452123435505320167760745431627968875279891912260113215982476199811648572917489879234257327166024661998508230769171552614440997253652786372013681529650072026970450830819825601962311440682632115608383855208749208143264398892955979941507497534776693766831909499155297282103123215213427661123080219426885900225585131947855799583255365701349252364556890234391991204792200659655423575566122696751549663426166730284443806909046179648262286317367987077244992707879617474285690723346655507768133673187572891282698482336508331281258555289641909431527264146567565200571157459915338677148664843826255496302834569319595695417514892134784082499139296444014638185992641541766035184885450716525817373633930437359727452192697402865286049962887770773128416653231680781559698220157083392493109483898880443446643106210678739352739004053294631181379819050137447134655702510555026072888472509224181637273117823862368946728579801224761131124441094314152468066931756033431483767931565796558433936135848500789152408978056205190933784297546494951391917371268334159956862349617158399171284935217676706238539287358184629424100357572756723495651884318968911912176240437912720967162977451818817666614310859092953636331759583443827057552402719290010892175739677020440593020559205485354313698732613283126049138822680945048604093475638769101606238349369666930641141298564375354381432068875770964077828625758890568725065048031238355537729468231465500722342453442346982788999524899832199638379217664899305781526707723144813799686676110708866044288661926697344819942792713358422891963996950384060962328675183129309694660138976893591777019055541615593148063090757401782738112189635554235379216467273322236529033772463867379509472835606898963683729901540308318829357741847388514083153663513506975870299578906083826067227455068600156236443536944172167558012521501134310522313295831037819701885566385089961787016485330396420012432040398576625411960903235055027445564833918994997113479644238197055632390418123970395231320705505025737882967633820371387260659575021442737749789531953512618168314743537998198040324445286969492536308265750301673765174063901628259129602442362600780815233422048132615305964109215797554999496090691574593786317714153054056797785022385251352236219407252495974780158363008254224341423257749165015998796624067149043774946165819700643946082089899156554354397856812857016756620099117691828763292590443283799142289719724733938045008638966709051738356042943300294130377867988516751219499375894442342572566214287787701812298034127208358461736424958410336716424471394966835807786320546333970703555365638104028109122571422131738864647505626005182013249430814834995843272533688266351744363703489228690436389789398267294341301365049619090008245489314916906937371210112915615149317887666874833901498018960773945480299789076996311656900101670949259048911859388481677310952564543059916996932522145837238886033496418138765197367529011756539036467830946598110245094804165253924320025057452837024540597832914779504585162817180183464516100297890800362424566088389600314982205227310551322485091474838628612106605532698143253713429864838218672072702742107690172194168040650085193715677842287372169769030900982047986006033835907535643215270176996801502624639134725601939811768844434137858373357893164528907342535079527598351297460289235083044341935143281545992690953686707211465572627140069569833307529385531244419872604358961217961735483616744829001052299438822654416336121394448951541737320966932154517017910966322798782940239797868129515089156952307505439310077200677655341954767133196048043259900466542587007825950898537747853228777915133012790743767374209570486876322628445470777061838640985276610173955052713741233655289069392334198154723243616334874132798179537534936796796729438470409491303367960047074215538270418653259117725595853163919410279168886597625802128091633697332952814009167644752162955800312661811613798226787994242249092170567653383469595687441634597699787109907807918388025341206409956970344233004765729318464871229193786809560518349430309199511866428694927923165664563175507566624381029691953422316868680974244114071233487674042391107455711694304732415966087617944817661080945820602709417229579527786354731647615067762931113578960662177952640300375985422200590792386118681059605680291357469817931614244089500678603188093386078565050569493448050043531282621535023948094739788686403968628420161431413438128154378463445405753118154330213755339496439421364434176474723693040394698682372709319205911195981700567194367632612590155425093017621442427126063676438599212968655053991445534710340859389393039474303524825847211051716027437091573329679644220752999356640100678853435999826022083121084345643550321643253541087881441331613599576817508613384377478877580432166093280752377186722674869339518774426525628418651272112769390388549423913318341903924878887259464896417266341343356998287464310928726924794538487680005624308816103278498958454870774520618450537788228386436484066910597903636375139877266489204675896401533056992744043199347150285606345269317266706347405250655601358226108151047221679584327942391027402036327218678304202514076941419264715392034026349444098606136171275642067318796569870273429688901148871242371956539554847110678814110858700782092704581820149988732726099829022652068005264450160283954859271735817965443453060490254701650076926050562318685343228226802999610610517948290554612652642208206940680336794104530410852565663111898558504205094126055439925670760030989522252308424663671920190404572693540770414281855520307516097796811308800882422490334834168033070792737210179453006119861648660383787720489613202333190325597872225341159483757960532697842384450705957352642450132962507176613116595489055555284382664930808864892629299794147657700689128898958386390906942509821461339130710952281117838282262115445488633355324477913762493005666427619168745230934038875382431902291304875448610867506457266374111164639868786814880946594902076882474642861997346076137413610528839400065745576347133994914348542845554264570063433220498149183998601879927129178318924458748050985572834786683051960392331947630310519973035043814020196901750317392400523238806806938660583483465661265556647900008242266072611462405869188853284760893605085373068272941417108311738606400393792252094239543949499170846217106706076044025970858400998628263903527825829126363463144950317917449165025633416911794975356457223446923902367367352727057885752480753443562805243247974195446139245711392833274671968462285902930613135599938541411114175251638008375190618825621500422804929271951653415686192722295431681965767077372429460012535438212158543028675035281787533182886180148014189561639835032110424142845568467311469347261022027124026602588739053110835722437033376777053219722720076881269707484377225827379589982970198399425414859727452630651796123300518135079525216454011222264377042105180307466267867407219116737201850255349638943684609403956646275556274681809213133289792525815993482225924138118729963270418566792093551683019526068800215205560050252847748199919179077038929155845022840052654041313229618038595751632966246457089099166265337634571087442776553287157839814693258245845767341321425243837870145830358312931185500945843791928575791865944517568152781334691648683300235783622417317473278756921314266903139229993665131661649878986951871487548941659166543068302422988670115874740538174996831707465527447884084286321678436924683787897252159802188389800552661050566605999354409717446789294928712870960379277460290705893444617053251061522478516595560972511264510406562991748090024855885653540442406462653250410411479585430785437744622079674062370705331508507966736675964525960761523401575980245015974569045414924585135448834618121517672303634027159870087584727239647501658428792158568233046639058373175138674374943731178230110430216795085915172498438626535742932124097528345712418324143541712415442768746673521725322465271100012718584557357493904502408923737780420021773138241190667708914380165897916377149280617213515975572675297925548866364998187965003547305398878619251802181156681178660505172787555636744815805603373136967821168920732215836697966872372506746320316404530333905624052104456503733495391350618312161480806682661821438549481499877210940795972847772257621507636417110400441784501841260478471441427904959873692110931592700970238889448689389352534844597892924456930431864699590127207319818509510150192818518142149275968264269753294513902005584629011467891213692260815812954199335164836199241216225516139818113384026340449885455659012687119003682910116787662033065083498150335735521745653362927619538382935422371442240180747326678643939664820963163808474762543401903234540944998251825220970520839390536354393713979983525114805863032361033618252636194270903591305993092431975840537985529987205025220271700480234729862474610462156157979153272545498968072362752325771922188341640058326078170574022893662968214521712803038907575897859565504712881242747358062684813239176532225533741936834422291798947033334623755394381687275829093796804194523506681144273834730081056994837737836669219363521495318351989576291550574126244284237983107526611204117110848674533889255178476019354566873422278407671243505898249187787557812318936490506617348457140813075566729571144384798932425314971152016788443224139631370124761016572757149956679751535406089898509860039398166588076816354775826124762707568066112157874701320913715808577787071692099004071745561663788107256118666827281712482985343759155983031901561782466655758834227344593788340718231359891172493763816048769435770318721829640259241167100122134567795340666426174665377332064978106729266170113335436230502920000730513208116092176805621205196194513605061279497652156519188916999585905622114794009151060150445631850099334273315088194418545814576755802461671287620726677619258762192670112443266351102865973699680955216638613084777283646881982645771668042788463243082028673299990850313343518112714424623132099063315367155539035374967133615324224707313343637111245049698634596666712397533421200788299779611895621352903131825295221456497249399712284507157637417828784088861893610600113640257169408572867533864115067520371520465983298210168141080976584618456757982963690090494904346192437044007850831880336362514677512722198850642388967553276325813095609243067590223056222520194276928301445832244181150411062887820002014937786418848356424059294103992599760933610597462287094440961869305960543424028876597191310827570115695522157005386448705720670425048334224118065595852272507429036567639963524549813053823938739352757404929355653180282441643512729383479358971955428511403303152342480700983805436121303604685362227616595803597202181965913924744731632337697696664499976711955522879649790243379880876612174821756957761362264996631291602474444921640260582223123605112481796325157576463947431149950801903173496735098142464027752816416358492798183842462672439634464083431424426446513015278769163922628535514249567851037631447697484589641708466091415554689025035503728346061516638752580531898308456238530005670016717771872431372606030248106647758665596535615212922669252196557367227510058908789174002201308091746812807144862915070421755784018879403868092805998327997762591991627130845076424158218892108662978820951729320956176754724952880710186625292396269931156967699730315950655335604374084048305443429792358409935200023534793203210477723630453870176173209317721425928428913580028953358075559932513753084713938266159280589375421372135445418013648567104579253061566810447795559497561568971382094933036431448076555605341177495836658500877402442031464863447570406848947615483736570754650676339668757198467191853992230981102180644601701166840499293654558152506071617985149112584489802885331058778902165648451740008386228107681621785464374643638536730870534404369955518412724160772682460404877623417631271908570506776239060801127665364387398123868348478934180969780034157791114397007730961127101572234435777991114973025084086086904953260953234059426868405492616137622134771387891899583981937741198954351771090482946626526813600353218668345656286863350004909362683140127489187049419206834305090765921876232751818443916677793271796402954903492388699158046019058638687775669040455968485351870349159268541843396418784395242499960828308285406837179816580084523413283839883439631211607141694415725543110871773895296194009114927698608199019497000462920036742677263127916735252259213413442038138149881991444976430450571652431749701830205091535121811963589859088141461112501578276089972374763947896125843080390576509280443030658088275430248205909200035007839019105740652899011042682723740490912669364449888323868748882189812554191047120685857376538029190097982358220508471348785815897070172690114402999260237418474273642199043660409296307969773686395728305126443538949005969824597521550619924041236188148103493280555323861851063926988405941950604348054336438115736515391644202402909687467063726230926710079987715817927783582656049469250171110296704363977466350779958490444256221753357489348591233278346542062644551870253293964035368350294572556576630327004769711482810838142123891327068141572961126943014714772336139100114712549814325241198312508590442697857673714999670086602704044689388401687357981365492276517094112251793936893316655605017388180457008819162001989938886829261128968889622046936648781934161617929846942915490062657457573563434363628677721707917347696447662578459933278303267276439894406948222484692055884551601440300138127272732953910372848512209135997114142178294414044116462069147740878560290692753269267625648204754076553786610862318114300029353603624420566704220081516583862221773033646177841728537618399460566497634592522912320271751934472039846399658683677614019161159856372036351755563122452103163035942541229947109191828428426159216398353026616705137258709832888926542289417058265490329764035678712097847615712344488312578870670752947192369435508305622914208748194286080034249175905076364314897204598456413045251030038142931057807330396608380137522517492846982447081990879817910587109396035665417045151817746981174407257221169369380621547671622952766284737912336826944451926080268111741475825810156767573465494950382140569605972461415447621214124658761167853939195439255680877544471553917642854849958239816798329290912334155397614522884269248148839345349950771884791974488921092082595793639419037721348766348297074592657081528391842619204228484303626398071365077733157232784778625894412186174177588637910391889263046184587871899816298523543798970456047342596588908732060834850473385195602857477134482505981536517876315996661120566445449397637916849683219695187276794099983799910462416780125517716862845259520287548345415814316946288069351822957777748745938680387171337427471887684275560137981972476616520465332383891414118514990403307242441544448225908785755765789035450942809461552334383468801478712745421943750861168877893905186635450624892830898832367194498803601007050952260180648451444040062055621139642023204422287126291430604687951941687680379844805526337395717134923309002332229482275577620591664395583786954941827777786299672387298886835002445330666979391673677103319283194494069457239027806342864481903415560853697319027554374350089939749740073276478314790362150864737524390488888195920123897458161639016939857243854211478113121011116754703577804403557603247952572902232107781459016770201224275031268661934601450471180167263516893187458841719052278351602760619399390474338022986507311733701586428705046704911123389242071771882189431403671747322142885825031385425840390159313441031677556306003181200042373382651202062898402413204818425546827028808676845047288120669119111794485150001884659696501108211768870177540174235233786414397487534921804741531255517635658225646528138689264890294148244470624782313256782353698468521485373992868798006579487137425730741843803893830510088246859733084417858354637351518842597514909725859021727087390420111677668429709984416399921400507885377211274789735522247286698487767206880526728208643347502974846123314299228797136911843865012221533366593984905884472198095491256524377892083176490918822570695841554809771358734537888726915635408223721290303247196853841267140314744093889133043707075452517737790726523461621860067585452856731779139127478906501411155414331177986739116999485614806900546079623389703370639498882114230503887356192100377110395190925050565692604191952672980139310230396816397084613680966967525677506932131201217750383466416869999462547625877082678841631398808331609335090698647499949516626189639704273908574596319068826295336098781587037842130957484014127395755923410682078378006217460469266731535037753665751334238355588699351955652653666386091128397181490781352315024841816596176546997336569417503689872384697630160093977990569306965215808063340082159137252159155989624111035171666981177998610160429563285943108406585758208574964217818390732003251761776216726542399305854565217377641021923095667216024156109591856757474762442511343309473362116640067996018676251698732391645045110328471719224369777837215363577199585017885512132035911046923893236216942623794112827163309754545703959060607469055805787519797802170670560384134033718395481414916180806622769214265613193276579449658363468084562799574464180911684497066979246910585317110829312863963431595974861580951787900796361484765337936879231878545656059241718449411209875008874201430976748103458930209903723361810332537506142108122214187863719800831237811354729872626220560604037510993750584322095076673736510565049841835210179192397933602027239091219970864199554204743685492798778289355513358069009021297820699188357097805779673107683058330670209635849052459320689672889998078122174022791942685678864285813491227075827288288333847994860617294044499271398048301964556832955751227296806909034232722885563102696046251732215234430149780659296287862798759154181136784301643853505890150406688826772280837413247213975884171457315653050169962907950925437742475642251130778454718718928458918388424562303184340554414479497513113714266641642612536955134376647384052148773221833771836469974092438221195206974207526170415686175236086154244482242023544534218015547854524594528641388943650431903611815281263852766325503848507974431239933126977596377250973297739885928349667272094017361020559827207616313284134768254272055891905069729948287074251909606143593072150680565362605527316221228368142479416337793194802983247702452143500675552980187246485234122708987868679355747503269356121072626852199040711750053425555719825106184019845361673573147295682364572396211097837448988408680903453402510583415045810709075503687542208125779738945999106074547562729498111597670208946652295594119808717222175010334033640974693407688536984596756649442228466882448222150425356403976037878531645297683194317037667636653848819920325184616307226254280907638526882586093750984803195524754137639375767079174992394892435775798637447481765350652433889672114479856391801387673210430136798295421879293645001231578139808437946355373755550061263193780298896816721518694527832582013361553065959676778889968762027882010648901667414688200261423893231721692454300702631974891150645903889499005389274412827834463236165111940921940708352600126498738066821463801218831434970196733894224806737514418898615040968371451017236428980620535278277354184637832352727189384933261819153965673235537437518065957066792850537170602690790544772603411258996776481200520020840394162282520999147381673654459831344233627719745180311685639753897749940195969434107516295842033409666947730301067560085962234186848486546209492847246530232717178897220742127109810720060185722325398517504778170522076028191955931882167754713018138006283586075676800976855291932253644972221430125778812024510632350519461297443110557092498609906585564257897460926482404456789337725974327308412060523977157593650682272271115470684188557471789080507085832943674153860314797186452492815969905630370237038256279045686416775486382284311903699997417331336075724772793597254567711656708292937952584295677897206597150032517948034273176099084290912317495798708716340114297852169342035991761438975549843520436978060801235068264816407141682591207506826749353488702697402050679349127409314593874101668253975006370296394802594904730429076303584466100947555950334273837384711341514445893898657371336588609214240073127495978758494637430241298042133725270755029311008438264199413159127582271044940955785583413572117840679710021967201040312499043068780686528446980569676259811323479166107765396250411020474051912469804397456083405096307898769162977916070508483252497191650384202569240331932654212411626292763125331241244348848346919788920728118381251151033945661690164207486403127704150139199668602693859977455883926731143975670809064259039085653858059816352991919756755955128823195043870961347882582549716691511021266108129293931084632547332488292113825131129926094103586669960956130386470475729410041391635804363400470999233851032473038529156256138828737173209124604750184018326196174916098398497917338965505245325061219333704117858523191100184052989966018861966710971250610398043805467685572926785683575619743894620241663191391708369432544191588011976495676910750772455658075031096882763154109085343155710321397051056583058388326017190124987504611612984633863159346328611036039607379317369485499982783996104445060755763206229788981778777790348490049708798792551835689176061796966800608235485502014193295827188012487865509434014007689116690802263826242262782018792417586469291443481423497635187055016548184092531192367516371803788191362291494883282740587414806023006826993963561424458698168110065778238258411413414426396669004636043199713565696331210503035487129721202369525985972226177351836459693041334025260673363970385036658333372070908275885818827454007348374607569579853026293167886489905541838367286769568654898081478141308964208607426963212640036387051752611784192385674090021245608731861813018906702313021590505895271330531108851703665813235223156255481493489309982144387861250867017737140116941136705632043862363624272066506543355596853844056744563525015527895782972509544923364939741824178364546668530948963855881543329755572268270003704164277566443489463733008320223963893723783182056601044231550599698033466046751593916246255025141961718878599729023945211402300599751647213766845179094137992558263604675698796825525866742636424750590961908599545642437635743572514972234440273822604966884274214170837851149332827988046495407689692284364654642406965372799000253366795641672582406636102547314036237625646991821071586069179979118761501186297753630333886739462183810304390726469660536501529219481233760717728810152054943378809122243415533755647923792473293765989913728778279408397920981527659457002646271636148544351207339319780605087374502098679221402670930107807392022979553975036136828649536118410696703611819223135459970068154652076955589164828067584504850972336932914344485697686795923139767732823755419741395669441699044937710055024661484907163941893011037454233971861772177931289444098272329292359558727656699082106774251848927540702189431859260229796553058612273337728239644944585572492746691188752629104164345783773822106468037443708048030414770078428828895390476534555360273066462555439200332009096150485788354118889345195155984791028379991320273133726526912712530552991366629322150662869074812054535986536737944707934889911994698606097575952561323416302021809001601943121205082860739545062477560358185959154576624837698129598117444300558168625659776192075007403061409720668263632417412394509264468985332698073615060406910513704160757159835947632856299117967701354764257023169741351617077026164047660896746654018891266872889765091795301925249601847932206776586728459358827064423548234395034073643813351642304396629486140591314692089030639192012860345124104863182615007820690357656710534617125978169606511516454770711028240670393768569599862887338345711498686049595844317835470233591113420150665651124150030672771455746983099059415118441357391310165113278599220664068201270363065661334261654018508588625142618148787396558276519696942684277144123735007799341530434340791923814837529814115375740430301780103953142034146188060273263559785965265917186911497822915858325081552797662660237220815805391862874766954758337200586759273253905047430104725631294446786280711800759720179511971217249948090267395490772301338352651777097614572121228570025996075596280694069681828869402179074725009959490764174531771398142325108900276331753675523630099281833341523257962318701046012283793352145929707422423508100781943367333610256750200032114914604397506728748955035134387377333629613135385474764241344190318928101121284822969289680744779650299020360164856092504065973836013740410271997811809714447333445513113432595390879573242352966243963652500343092303243780233344511396743001657987744832632583501607920064277619831318721517322510269541069540772436774440820095679231815527300831588454807638777495361066277386208401715263782211413357274557503731633152172246314354371317276115768485756321695619123256501819426551343357346646797641576490794648125850754596028946639254576415426889026495763286778501671992181625604986136143713808970524900968125231006297613898287598648485412442093052011376333808208231152056578662456404516590250729720228347838647709107400198191325164408179211822346565991548231728818066473834284257206673241970059053327575455583370188638900289408839852474506857914675816145495585620534731194413906808693390269242406415437374912336253527069512795518503719038293357609218671060549087057132495053656547263664252506925582297170777985057836633168347812546551503938879653780410562948529573400684364429819229313137419407660179155048663760558517300712098500660878368249454678402369323153907087209579928980205166292057744417780074895101954811697507216406021511946155513666755456578927111822816397870042601459153028003789477908076212240340330348304355438133730276348980686043781180968683442476500162883171009797833609598526200147061181444352994713008581132927848221862513191542260051788599991444587809472115535451118676906965758501889839337487993944948743826704293499664848579588926776238601529453573882273085008601399775610390230741305450113197202734355734736795131881068441131317555434869339142114561553637754136077515374349669266372317430239951566469346591894437351508399515502035206663608346399510102783975537616389607140309966808403346326754457814772253176097437733713350636105287221026498221195494188127475515393120996814618545296278343405421246658917090311167766997885641737675996518829842575728175425196865237294291538015145348504856211011090402141647327573764282964012513821731406033135754138078219264400115590741370976430294082384440018140595952458868244979624081289443528396361370539688354707137326446668212513916202790152742635791231786455409494981598291758209904960047001034700392372212826300910183324368066755216152133325458573152243712926174193270786847252631016414962876207290179342290876651120570935126693495078395520370512470058096962754892144415042686080235309424654717367065013172067428554050497022373008878011775275413531569843877244961006321463751791714097601201003606596641054304005513396820682755864355735096478425259912332650893823362311554420072196490990714044658852546465515591945254295038776832780275884297598907293047466570214409635151062579092192584731728970269589454456893307979285593445819519275108779911736626196050982865406383121508344337416558262817306502104770538145412521612828824645843988433582703371266764784706636122228765600876394472703017308968522236211974239851989612828475246631124562885716720732788157657504425039056964246626905057293571352267586170317619435181058365389606243927033085302851317770677794907823051674735258628467021019875103099460215863673888184845002838738918309758811233174677434701774207936801575620990170781955635464186122229167501958497699983617823575415296273480768353005050156707887843435500412921152845137772931308676371071568185572376985556128489850967024255084370284498227385790379337780165846260730203774283614648899061449156500458951252354274607583933451947773505345266591606549001726369015468283771720078496354041853971850378120382251843377084815591105355065683183289695290032503902473193576690706701655453967713441196243995284579028611923925510543815472338884084029762830520481978400105479101729879172848915943279283744991091157160773985007356517235323368563132592056681712086324579366133939436384543301606009284394790378168533083469926470219405851674368522657015813051841394213277264164981239007158323947172322941605189822546830226650376055065064999012853405962685576932569506951143813304594131739097478133846527284232292773909845752602152444378885143386978553470099748737798268727878110059999817154260121914137955787062940859877609474256079839272398175932883238374659545716736277397238941061261573123850486631931667719596558116933651083729068145241695496248789985656286822590052774186563998305477111248356943834388639055275931142115426560257844196764950302016581533238088691356544199464840089204011513849413403468025577800605374596388317852768599031358720910920340154844729961547956562839163438049886742184043845969887244686342601311214302801646265597367152512453105097833235695421615324183921785093388321900776203360899042032812732297038407589129087033312239726475328247012520807844453458549457480447231413317981754570727101922190033854681678527455684297617852657930847581508739460179935177994637640166749910295811786792366930085760789338750439947558547990825265915371440776995333993144635366176524517600027157600597283136953143612925808218945880808261367108455103474500384326733237129236543476514829233824541301756455412258366157185821662149895323118911800055785297926856693321131110697500663415064944202561099254988760861335320164203446037332409547990868507922338776790886426276684945499114805093736365293794786633653822075619951066315246598564763529528175848657170012413403852932850714128283894454974024626509276823463408824422605602056009287814954517154369694267760268005670575537447378366534292719399412366053403499240226272416926838553019305956391085799118709007951587739802355331831303471264332012356946811670823760783708670533629977403256416949435574171949942960255915931886965553501878949685114289727082978581651644653627867352115720069752031886627277967737592294583702867660949041202472606491837861386349161288281014090264282167543164253825501997916772067328378062089863722615653589605316503378421376296392777601055651217173506163783851141252377745613847105998861083120417326640751809560660016711438568298592091319209726034198193510147568182966416310998408374489219303278113372577459507263537870628531652142971739301195285623633555617277819686671475271439478756952978361061607808324189419911769511969274811909658545121561175192556800607442853082001072957437380917033031291883569521398369807077501299233792885022652819974550676408745491962581471051386140883023271076430724226702113370022375317592572312445851007221341379679879954542194343189099255022759799157740421860066967534156232574481312532472137278333754585406993182612343809714941929269733387127669987478511720384613546093050579796362930080933701643590978793921290581316528243492477467010150698252992252825385580543533708166710810145430550341163197736043662765999755351540143467731023112867982609639162425435645896431716182202393544292775842536837362601552471283731702046895141858830397257171212435396125174748146505183500324556387893711337176041162706618798577426521013413715407002495214733860381035279505310293667572078333375396007076445555949826256280631936053928891394748529683618639482331845172594909076305358851812260948692600503128438480333718385530289628628360423087485091117172675568121648640465522835918959341927556557485704360475188092173519837607945778070422503226936965162445272903819396795745656043821146849902169266780954526174270117177139404458799648478183232838741832491870658181558820676613251380810658889686554156942476015757644362593430600249803627508948415589892408967361912513165025257067860130698325132080371331780506377792523955122822014249107793947834912806682979173365468137095989131480281911717763984066685712794134509585888732844259195168795350047794243120246699749880465850763047438220915534264304346375808012777705461878909798372100194467984117794266998346782752816692913073970445969026761160515286315034541794729613147714423211770578347859770000804690979460846603979201307372132970970534012589022472731876159954352922762272424861581516864810939991287054428570947538377930161041879019521408052106860034586340081522870884403054513400730500744730301316566846451030826010133412063626071897033957604603992952144117755438892891981152010499442743560994183194670143405327542644058233848155806915534501725293529064699277005752062271152824651168231051768427524643884919886521144830760985361602997469301644951217027834421470092339748384497508770071342763319686624622900779988291306651145746967478761374014965641127973802762248595987405782950017436642906900584919313869543632145206928605682935709745097051463966487182242975326065084767961800051550538726281720451934445508620202879093989142203560715681622838425032061795055157474675333701992331451936594516028179916896074072669195828438696824773874979138539249341330868052697512219138991402930542297945253838470134494089576382140197697137146254171263498135826797402045562221958950310309166247010205909069398479593075002323224253156009417079682222569211634960505350904760485816596691177708203555525543139972283150228584562558415846895351673039146278823368868210219246056394129999658176900563121966811875583429575800035541142889590791980759546443101083925707190173578771982254556327632384906605563492218167722644470249826698541684086788397431445465089461162157099198844603841185525747866401762826893824792484215900278318232145708951864806877403569879140742260482524351815056031994195650332121591965571103762523957902712679460452084789960432269371986041841933370227401851237703440959395040572944377876537554180801842551263435758790817008493205538574589761716379239383560080929906602430294518802154658463746219030209335151227655826080815969826052545198550082101507090905208614183815053880249977187462257394197680985723658435790741293174184364521162098984546342355830131422140785298695715598724774861022530977661476569858816964477026213540985893425322510041129698837422856838178438096705804941625004774691467050393995633006383236791619413928859778945374984179557530930079022397037392013521634470889940746827799876966955814871774224584069315013061158571827098378344434873317079733434442481811056636255397867278623722051981790524664084159605661242463668271033032587973625309077975975850030352623062993772984349850682169660201862394668788181409985594381302485117203371715329597229868977269235439419629388629176683034613527172812758480542558716849952562073188577158567700104956252113075018401255148986570272496756878129315704559007227854479175056720935689274198411706037591322480570232322271874620174727897069409159691256651428520205980802381906374862160258551277248706759981496216464930764972660742833208868643148817541648251066769648931493295854154626432625830651570736373774701442139390685408002098718599874344885857554353412039737531625984542161764534146404895394046487418505615602690292269502086017513062231652188276516315603778921756101727290494975371523438763544000585562339064285532696937533530729398802984758837508621147015971145815785448522787692005974811247887563911957060439839522968802178783524044400232894328631091770473234985698405149404726013325527165031582611623792861090813278853638539009355748877251015014689094388346181227558976006179897527197459471539681470839903786491460104530418056872616770289986731525166634795600516785355572214147652881531842820621294914427355583063092975446342471056400498467566692078155380839528829996186129784629166452484209141197889228283585598401098336598815957135045277376912538418797793005453108878557880098038381745928353998722930635660077089063047927288713099714580993315903802908935603882192039951143831206642962403497639543499433525291147767124152099365259880551638955972063950488216070538554901236575503879058513586656267907669666122237511085981075738329561252576772475212948971164337158594821879819751980040401649563471202236016752279967526165704435983823440043022329052915544261945043812614037528369765229648245319120930250494944456918992566125107247018955089235584777500447224510216034050969471390343932314152953128587862162001494804314025464527435014511051210289066210429863550583546781489380742145282360732500289725366224728743364819747138969501502916757212404041796207010397270316890574702420277646795081278239537763841759542853995138796716262485804008087512329920867119637440160815975975034349028516756422177065960538740290385934615689770330821972240415386671226965871060953929261179692234534879224844033472911396924677497522068303682212154934542989982235980484641572617322607558605426636325120719489135890152411520764947523435225330739124928291883535493383495756189982722239369666875012698912512437671795606719313490941607163350504709903772079285588954587077618421053870298351385367940319950285552536388695640557025213768011643832957499835441060265898038015378291541708736520171924675352456097949037604268557053692359932797112970246070245937721334869307991668571217988734950234859408860220124186937596087874517743851043846255081115802350827163604953583750334914719009595481898280610657295861348990566599068307931306905037296240151980430279983297135673181278247844394827434853804661559931904869787349113416018828520926990727135046858191676702955816134041735535402685130847596814975768177284327066717452328714947378305264812593798002421816762239933215869491173338947333560043907004944304392272539970380040265918841529103163117077994634740625804287095650083752579539392198943429819041302253434093707435541892089183591772856115056156341784149970422903604465934356812329668158218916735263556935986061879350533414946425108009819848623308833645462600552185217616930743229338194770021551414124298616412222444041886159279684208803146171046246714928192540900355288443004715676873485980123013036833395125520329106250974240597984350421551667627920598481954885598162110915344337035614176956136679105955174187824073956829053955782155521577132430443304984226008263771719762478856556369454621371796498678038604575237414446830052940314013142226502465417484702882773297702883508063288159823063734888360882613083844373467412334754811670641835845958909883838273727558404877203500770592103074933608658168952797773595692981364510530862159814164825923875720478261725951359740999746640674057703186084653213473896063153271634646319460232031266635289399401116473831988496524370804234213722329077096717290777760518980233275894386244486993964624623196701487643446776818810445285760012609105105709976726993380304091219299574639984714843038425292265442907471183394860842688846343606429186126596756783071877565966293205003386291332971065589095586007904359131795877765043019899607710098211081742787912105788424452637847657000620564125555782188289485067533615782277154212157468848454092774958545318343868307559049669157412247361725097152726064968210125755155553399223974631583690189475828182064757846284609852141081077136536738990920635153126119853448788567603754225212599719241820814668783274682520523954632147612274799808930676202256475181942689264012399482414837440009122128758887390401367882315802203256488167672776734726390592667427017608857029969349287879713582138749137904935173533209178968500027987790813022943566322467773169560665219543053305402788620989737056973064864138193597990052534993278941099421250088797946810695792996913610130972454596262705305783313933840829654566154548219746051908800069942155754987022745508621696137209971124227787413188857279743671315712822769731992219511730039313401872154676799594388477133395001467119531779234443657857868750502302059165442256643808100124595404503106721803986368297929994207563146079378659845739278050385713055175119176703252120679188067834144977580532928357741931205175843510248322749604366742069641289943942334944200777521872120272273388191132134563655506054020456163517064408183392622155284676719180747952713714097193826830062456693665540640528711541639072735140923402956185482633207887650241829292205015123184734008387214967080825162934237477105415588811555310039553924998983882727320676465474978963555934520190652988038773410577289237737896598076736744640471915849213736244695836460461304179301325745768956783441883384217454678720366841671920516849114191539778526166334681323906968438985788969265128247074913253557887606917078561734093333575726288879111784080959360372151635856371317271702590309845851501565297810474883833824603674184988657852890066902344695785061732622147118726492865990571077120302703437578721599560812742802990510158510290133690625883252052054872227721170255400232688076448926094470145792063116249534777918256291164933212840379376117457770059546032875778136787011013557773541998317382628964922379230224004764661390715880594847530739574418705692296075811059679255070961096160831828246917977124568507364998541213532273944284767376305476453399053834298500744420482393131894590267854326991855611505424330272869015444636543341298304138390231697885415060145126477041998132046530418467474090929095714478167512639285029022573841941100875877197580240009950564140367594135590762683687987031452814860193540638821933955174556610235412772551784323613377538269475577946610664627655672762543756634283002219690306939669942289624195217671585883731157464311334941889603380762200513950674988244186540719622734571299525593731102874998778798942741264231398173788022000882414545702353041732906490509001000130883209484331104262840743742558241498445298015811720720572388561520334815813575982965756718691870966689027544633492027196131203506825441275021867780920022193866251048913706447831557967359778336954014797899227901070987917224564427895462389733624043735863523892110941948742643890945252249020176858170277278032249189755717727817650130802128737862132509126767643487966178994203514451062080808004508222948028799691921435412282715295959050579248033184558944983386325531185801131352787867775065049405839185240058859884121139344074989428792545865371665767668318593679855044028512305760117023833860929382168736503259693049734029825798670046278504452325954890572645804023944736767025736023201529107568244207260081436023948787502077971237872353232644438641409777421363140188826550553240221029554686372166785423181626374707121731052480863826498351013461143754911663708641435214847101458807882261021897445538385629304241683160265890275882682276804649250025405550946705248220227855631016057710206936370615764093588132890558748005687004776206262990637433745549801290436677350407422875266998329831172296214912064386731239400598044245717329587804788785678458012171834171143829030130264636488148141943473006605227169716613307443483166657201382253481723066918825781836384547762077355640076586302670234024487134850266628335357279956545993925756426658833780110340900826007729999455288214066999925048787023747690249873735676913953191198301288746134762749969063928532377096331197031388025546242311313321020079647715389728483033876611461041979029392584473314062310492923780892870121218608361470376980021819666466494949438331320185225817915643276123532441465383832313671570172835433368508948366963135596698820570876639259570285899165011644628392766031528607842911918744039253782003065328845448248824050066763549341104940105531831185538765454943969691673226325719144034545892620157662708623718022125618114429613513463685998041208581469161609731939557062171229955961837634224435143879260108546468963466400023673814483993831974410610162450963506242502879880793067733796664069812337352949118457718545798608479297125467514544986031875758182811880635476001898207014787104177637177943664876501130742262222085968084073712447464733864383489745983757454967675831908218729759704795487889375270417074323414003818934297354408324259061778897092399439223890849016389673124964382410378976520693637847787138178717280512118005954952730395372411903114960670079851403347809490421391819355931215711549307968828226271000737261976816775665839159303504735560972288682905806817034055234660698549932578044766107010700789072070804751555964507220919289877437803231265468128406486896880261626366028689561516255042858542011710026890032284307538927687789556735126369486857864600077212229996630561359793783247241534708817499281628193404627712856637478449715898559143582688292147924668416787793346146804447530131003182214366522626599792727314197198639053496292327390673320075638020624294623306493953700350670439696290266800433077083904931022285905199866813180957232467328181725954468589094281774205424718453885074641234816965022951209806426410115008900853134802870818188836950586179399408225177515899324946813005374851255886259761181269091487748934164082386328503940084422995532976677975646650281051870954949944646706337233870153465661878621424333030915798191112833828640937009092880631470505223638527782226110238740498253893151441694137069516356565631011609771067996784881542612806067878540686372823769260454525157707798330543470927079884456379177290301688996845839905896447448301211629168552832684530808165977892061491945148188527043426060295421608671861202677864358772550830912073723324568842291698376188085662801713965083226597197211296349812520425163962191221166015844528133372679382249268211875767123025741893479777364098180966498606079422955190565103213460651484610632881222227296466483128181475908038780800597682706928770889517319394380838217192410877754883983620131105228475156385445609255761277086910104833277269296123242511925374416559704719479916948093317232102807954727782785490605659786637805622651114422083323339500947045194445744947322157812604660022126557591556467021997500577765265144562824005619112742650868300533004031866921668542947860288336374116984006283884387492852938587243847582584252521271784481417185344540585284068412607358505224246786004536105409902283927946044764241006867934986600289623394467057821914840993627902001544481379152102475872471245899983691349026611313421792952127089032990885873059344006444695489239923716285568818691962335794885130621060317783118800666743121297673694495999263282607155028690397392243502446248930415344899969016413817835472089592485580805107525238714606080892388750188543808555915275414257782989489297642088690401147928883780679977277649138652463199579163205910546142561018109458162742747789740891702850001648850373803991316900864681329379630262826239446928273758644481987499371941796832208991121024878592001954449324436026492355755722373978190297685287929194550420623264159091786150516473304838041727137865338433523150671668080243538102609582392403337355130068880155941232743040239751881225291906117239589719072713887760065900577658857197382897424790565357904437319220801953308246440785159946246597092106187429983284071411664869357905271043909107338167726348741529362597972041239278287249003678193412221340016285913891128398468583111096346360193428116400992623034028907696875743566636905539621205497549931304027176557146487194674101291854297528163575586769221106213602341098576385545480374994460531011695850757266405237932717788064120140740618530660846483629433831367306819526177431776056015788331014883134387299579652664335769068176403645246552807188338166273983213658790800506102335109118565015418266052593327020304406409804256754672245303588179316395705554138615044029787960662022337583131801767736986092045961335082551340065250727056303083854782778564048712475849603349847615478387099588476785308123070031377025032181548271758455282246736697867430131761320605412394878090406040178715515204967947877107795140383103191492491465993860819551173283015376849960274452497139823892008120229632707846995320818280596958948459561839551397482703983476821433080062093544630908237915501557324687221028307802642971023222810047167455096964888936395341242562054506998636354282590884173899590188050707213580553756212394299103010118715410962510451119609959598479323342223633179098292447804950639350452053528818054560571840997627928858826984596904858492574824278437742653379041954465142144634099162513895873411961744380440612703299905221364664511151044052101675710004003544855969753219396238749280561969624644224632436245861721625190701788278653860774560755865389794443798256439043183758579300052027099100070435551133791691087818066145728811358052133491689006957615572092455665979087668846419646646948976613987134083443982761231632587946301076836052129669628203150928053769168687097149891028459281362793798642305458371179719830194359055286874615803900068609045963960661710434959356622826489518142947705846177481417376912385460895774759839949411391746205603079855944032866885638586038875603264586983026636959526221436342566567303132578193200733110239848154450547939539444127950526961445776996734009266350798918887595375313326393011179364136180951686925412193009345594429079408514866423758211454703284406979047330077957441120873364063992732675842486107639763478832599848534075494293693196016198460919871628919656334784822833420114716241747035271148660036647589787768046171821371321192923737753666216032856039795892197474177486529100471488795682583312418005646143072294262064608401787767735572382004321551744974294628532938055619204617208708084205716586317801878191739947266652467774298528186490132800025014585849099324995036134589901653505559327253272487418083755681455873093510567573055549821264497930013141041493478039548878675610072293543569348897486628958507919422374941563479548851162253823807062252709123146006161418120042059180393296706159232298062369612338172044308029104711644328546022394562555605606423841334591548842961534165908710287035914070606945777350158790183796128624405075821119533594721796434011187298993647058063625040622734281521940092056988325813404531442660299217152733907769496942737121141365191133630183009478449402245294747876162479643310606450535868809459208422158545693048173770370064687032988641425307615383111333817048203164586575490682440351468372221643765573165912683016786466308550202915138250590276164425044975247819076146952813983651076748003293038654736615844698938347577977394078365451033660607363822406444339317190509346641034154012091550755285831256629217544516059707293891171367709743013181637138828249687719667034685216314896708122271439548501279454580056639527012426318645957636363986855933128413338843377056545539591261153177420554769179844919703682137873305300014865149270454353840918510020272628061164946284964473676031980332811691716603946242701591216420938002811810284118184312076589476253445960449218030695239471002243785817436111528777064001412626107147279754123862892819330444647110430765396503546686708956650626123848066523408179112047429776968136784873393191286354711992158525787320033103943501691269333382089345331542208693342212364124535521957979890499269561816568159835140251476640992698221178696432805326992172452163990001556739160079272965433764826170542629857007684130323599449926825938592542990842718919940985432511823080125458632735489214021261521990527951199983370048056178926668803414562597946718665465662278437031395899003087559469549872057916310386817144168907224683532714547441636571126273820416526781680021022923284662414873069480291308013870726012867141150469075989642171021058411645364615732303907363469446867878899928499364657719462718998526989131109555484005494570581683644844133910497865830856884257596903936559961847039449961139901119128360704674528223775505420830094137805790409937402600043749267866091546691418495148511746086410454014821699689219801777373541294968072140982468734451920926644445619763048724403857609854204446936202666839748921132091542520932789623867775327639124262415600537237422286367554660036519653839753070214877798023835638126855444667588416509326423414174753641815977865033845171490589949214066238240254206814476254882424690384543920565587636181164805329101353108950128521452849125815408765401457566139705428275769604946547779799032050579366928359482215741231617430301220847249850800401360807050667567697694291239396455112989741586354182073298853336052951829937580188928445902059149683458767193635997198417966783928741787769875072878623138850394211291778856510293321510920907086663189682706876129972277521054260279032708387649539850169374782927292660412030760935169399886328365544359794468950136104324850619618321736883908360471101927637698926550511637427897547573396708922739467832530296908374826157577795429022644049373399920069758388715904969212955822373046993508617252339212154378646748981373708512545948676005650541443092657415237461820948155298870307054035099123730622421001955664050957870359916422205472793278714900707799742602693370108635247500477839140464765839492697051351437039796915560847413249338797496360171638857243511265427395303285773356926291003460410261428192055100472401079129493747877572907858637336704149839024803978297049127572742806157561319919461758109396182025821562054723092023168265186717019488587186160251832301118041207065804318643353887194802888234196788135408274470045867104869098772233561019700542311082468090253909401785616821783678520426662489631073429070087749675221686690370087223223207137299401288728380044813463148387879195475446310330040207809257282724956348463748425722330320560057319476101794252043027409628785280792689073324925051935464697180792761212506608296913021174117531193032821056048709290029812609781307308212165522710103093463115130259243596951849679108737764790534894935567570170139567153623738221544673070501517081390168518308603468513613483987633156714572360735342655714335662026751164788671544146444171065903613060307707380517561010972261251199064465006164156715208663318000803671182231563181682132671951502809421262872877835389530859294763446966218684949769759416122825034665457545074721235478802164517074842129493335998522003857847618246726746650914200743834276286764754905613085314843578962445419559832062361156756529365606940856874971029468855539422191983402868533197885939450121691338745453929402055250269738634840404381088925048471350732326972570393607631066675616807750056072438432185153706935596353123568122621808301304095942008324998274168568091657803979048320541287216225921335049490319118338871824185556776754503767397791437609070713488210205116477025104619508957328586242564749789742288329217155464763277145304703418941227359163091243209674459264148667154598208820551305880964984247243917386469672799977783830199894032754933080932359612388750893722922083005240157991750804382453306120951400890982080242080439350913858169862464449696433883974106331627253915253672404904896152777450989529358231074757326469418300436828996388590948046862909260173091222523580769961915482321583441941900956359602436599361830538316668039148079245084021785714097795745980200714031725650952429082115069960437818380226616290976167064755511380356512076761257831146136941474205283837093767428360280244561451957982907983232413266379616024970793270627667956156084764106941931436522650411417066821603316890200567219127663873733968592265703109384988291403250478071269842905990559195286392099403157377008949219277369326324732466772289854791496733399195545366345371604835557892874504257423547806788232308545154259616260395358273265787886824415215060152482368286380704393951157553113906013380635291541584193453090949466078879551707038964206052909027871374181061281796041015824500349227518108501616085866119243933977018677757545800015790054646303768283451546158774728766308919291357369211751388438175137034608380991274212862666460823722867505618651614372888410301801849139334620556505363133203832765831631173854310107043691189665731461844439255592302848328990562565561015531246922403648267405597798002020762836518424346117544698862358002063044501019207504831889791619349951342480803409190621863562597182871147316018583824385625200863927235808744051119568288677483498482190641627747498496410762795556161476454997757306374351448681250279962346913222140382720578125937242266731705747157788353785163665461364186511630217295751490159568712036671112929353799031023907540920673370580472783769506511143237612325491871904596945330987715622940992762508508133455727911364285148431290932325283945070292892320740287722930448392608259655433162786323265780945596607873407419218609182795059017182969797816965886480504770344152501494564053375253049380274425034953102074521743197247754466199322296296390031626875496002061431814471370548829645885932754329234277775172796827752271505427724203883568875003430390847389563904420916040668792596664857440855741538080326484519246030201677609459291762213481716651961948215600423611088394955144746063720890473217360197369667830559244671190701115392372635107766453022968662873012034120631620638092514427294301181404213221532838983713859380242593196079135968270431711283839351615165917833153840643422422157915828876345318718396070680535878216746011188964866833069058349130575323203165578809553492696112503744688620997737312479261211656509790655562809950089279661007813241464396612526793480700656278412891456483007725668223515625535819139919809762045580171639052496533735946941987467278420201328624220240019678115571457948981645288288536938986046444680555960476506655320863543957574779894905000032534174224107447715395916623603556169979379085855575656634907048759958542104376019690136458035644246601910073501959898163099039058616632827244453709449375568801025791676544467779493269235004508042882327673438359479459819396223598245512723189158981531931032213790493474470881512814893350860582566159658892065363572031444651789173441550324854530485181756454121501808171647907008450237678207702059937835243456637288791331602398799742594956321472308046467970007179084974322735988911219209446858021529490713070524316024923352757556398130605109230347077459485425639547182618016914236781901685754447420145531812042458059095015252945545971797677760754293637717833789830274073494459758256843589294082352329335471447635758386419338511691099467962852652626788804904504278652931200501036859092556238391575709972269165735016693962513560473859879883660067783038266027523342896234346314961765860394046154435214774899733483922344443454233088470204899530739556653918295992945350701060463371470279001226825285111493621288942660021657601720300331125217607685405092931177539053169163370211777002167915061799359931887508262077097676575170272447956296528048876519777662436948042465186879717144233872227098894984595494295657748050659601697779260658686701411604422883468090328146180587144265379751122155998212089291486644915342117807776041424672018019752046145973313850878931456398721017888512320937078804275759101366136294996777208067574212136048672211341878341316645650974102883894521287463153386759458035812701567478124323420743816717304400574369771515853897062151485372802232242414209151981444802968316283724597439347153889610471709260715282504613589163524641615665343931307805822535600017280976396516657194151886111661183907111070985434746421184576331056844533108234088439235536478594970150566621519443337309255840801165461299837047367490023664212035209313385318894481311688295510810134168590124745497718380881796894243857641955936993858094656330770592744590821930181898286094651722819101942529617889219353277627919644977887041008341474186256914084678515703949250116486176920279626713816321381333947521719839371123204099940669568503146033843622108007561301516337828751581140530521006183783858317638282229022769569069891201486925870561474915446604384093984238116234759588945550073546453657737879573129932433736218729762518507697842809083377925233556604280360895083077397324465233481643464627742089697369234919755297924036127898664340169276718398875097879087029108245184591362658547515923038789399732415908696906987165186492333824371175402334622768563969910028655261719645911723890080428728458804152012421347755085847308989460958479969719650633188675137532194490153503184640442898454448802253755526149417756794658558183269672435022123928621237233409945248166362460609683552037675504504074854010723805740239115185130784948196699502414644780755655395212425657741466091212849824820609364143209301505062364541881284017359468860796368025688171552755206126531639457377919410421448181058601302495486538726737336878344368146049531662734137933887466320111758921994323190852921598960974289921927704444296485845019998230260574942335563624266697153299283121418833934328299639762707398992649676989708640163240869780439382867161775624579986350865930308354452263923222982087802368536085933152962660069286860530587659688797557711955128644005733331824008691253307029689108061228348183019316367242484188894667368058003026498008358493464730482736566911945012639171639112591709527061602843131889611848004682572389154260825388565343261248934746057751280677988141802776273325234922806311393039541136741602370701020172166246983934564237746227834977786917905683150747116396041427078947308408540470197777240933602533068026239385898131462540069947937300199713112664097063087085722051811647948442760637138748494845678029911393225426902058706650597233146627508852722002952454114100039954390138389020085833795184624465179859935885989611984070638152656605018241820421302954299690304104617719870803523940230000867394740205654314456764368341240314549118888313892577585211850309807448730210427900611469459495782174911574868661461258864679638650313056764380311457784364257437631218001699551476056168094205583035875401887919171871167300359289200544356034655418817921048148682807739323233169760266567660695826002862402040179033516356130937727369152270750947846239027237162102072833782499135518113371353307167983517070000741009980998130206579007433542774356021834920780151658773531065223556277285103911857840846721205778228674519799338296174460880346400189814534238101395836150314833280105255914495412801045856325757706833730727134145315640850958438404782511244979668996781843365561121421272520173543132815794297876233426453213100988298775009179534014399131360857784991661040401690166078570502969753171376789135312334061127581140254098049523318736112614023720636845940339261193988819778614900784886813917776967376778742476091608858850499389390227043274769239378250343381259185164490741407450884198726323141907368957849333075174063418734477365580914911745892821724083153995797465076926044336060491633007992194379248498648601590057056849025890674686148093309509030703166639437276040749084476608989459322924042760329629253609230859475388443365557635195304542950102840688627004306603426857255285402882848629080253652626166204858768166637943852301011399494626187465760237322606925719863371131677189883390306907390366400854589242394563764862853577447450375564634925015322428162037072546193588416592261954643182047016632920624442732345437298152006697877330364717021165119049479234893274951140046629410296258375409742020370905995782237429008570487128605424278289343063372324611462811741972203396700191595867564067628455392539605138829537667806014428652275729211540577438077245593527043967883871369014488193517133053474083153019906756076554746646749547626922555480645562152273287102832710601922981769786818828225076465472859652519456600151942686458870401605336517153608644427275181338207954434447022401407808605304779148924079505806462038793280446686517930945149574590800682484169039223518782154558118186377864499713065759960311816497964610714833726654514057896860665939479835543026939962787336768908092336441113022400713514000687710031977212112958161756085545884228398456423710406596269787954581738325197358198790846403070946738154103382982396113630726355881285935278140740016534888040048015940554960448422885956569522413255248368486710785193915816003997823475060853217112136780460566631094363618131269869442556329330135918518653807094057403377404741253160897714811284877575985635906323116905133737259851242837655858157137716745065081908083627852744947518990137831369644327151043500725964056263356702067140814211795656722364686407762684953814871663721727297384889464936465492883613757380983709337346444109828919011574508937754117527546327214815858025912576236377176768144229850920781875310097087027081832966015268434771510900884238509717603637767171553141712918832981688895135061043067168051678039704179919208741864719149880701687362214959831171466202193545212521811283526995376165271526542598435603026059693413526106896805012414993589031592714182466699944225744259835666626599955077609099293599214622287535008019811601656099608696514409798891137917644008519071809861054087331434473595153336827761639408049573415184898802332227828972768986033489016359625508697050351245346724309552853001954957745174073136030644268127354115343128435427047871812828888352170934213138315276566434524758089112794940425120575504419759617943389547793298878233093809430650189406894710312481265099548589412928229681760239034891243852542667863114947942750816206187796047867172053067821249505552565832708388124171910977310183842698367402359412158987022050713537598566857702331744580800327866389024845181850327339284275655200837713441801795140167568667404805067686363680981554696016998784502638577563450977359088253058962364710249796991505251237156662516002211430068233237494885670680326126202088633115866735810120888499001241967963337010337500013333143498295789570891404222026361805802503888677239343369887322540862741073788089647668945337781864055448143803793281589846512689078363902744925143385027481176521220475776999463046289009994656198131576149232978172526162192710621594382383975615502444651693571042595832738845675233734888041643852521208343243549929459816755834660387781167792300843857452692300517190775738685020931779823211172242692640477479176449959162417950640412362281963365691958530036353895963458402536288032286065114500363955723227946480397523297812995970822339641023183055595372373955049832035713265750845952947906104147939625526705211896563433331422363388440861462639133672939260965373452046545117393276485531980804161380639494000564999819709776993684225936345615279603559992588282131218963216444466369389910009218045315046871162168450671293657207499372692850308653600745187742867292501403096182037435364782294930975297009972465618362570030494346628610070644450345853047166932786868437117520439949090265931110106144782169718521030446350739118199079713744505187501567629514832772149445348917381117098078036755588458196401648083547742139215721444524040441450532263902323153463427454293090085262802399559460568447509787624292503211304241962221138028600943949103479311688587324083278176191362530365275932959393916128753160915737837655483319622516672668657545597456641650201619590052947231952491656417419807494858521189382060096127613650901648117901696770408214309419879845062675903822148542127988491145426524913919943796356225123247310648529990980323476550389077354720424062676173557783124925070717780502808437536711605165630742136118955585957776966025938899566754650733147259505163416864684810539725167690215648139985245257922100276238949054904285336430383180774797368833064189517737357762581581398193187875242709846998501208923678604674716171339067597536129727252042946565783226260110682696798266277939507060826010612916490899073338323853672749662740295483605647784699930234282765009157103867972654781995660050160806440881559132644465465069034509484687663867923039379354313967297498368453890619797865803332694781555263395034393631327077470980894838359750244695473740638212374940636359617440945637249517228824152187078299834393458446169036263306052053782358186350486247105122978743966694838168908897301942236439753032495285498459423165075829358529525339177479534238836596150970919325709845826286505910940744790690547496484603148348527311245142526830031674580231928863431517652123592132775498194615058086886670063636859916751380586118143980146389195224475033701272222683012070829370704437470153597784828773434968078748722839286893412020169997857143493776563015910961969503452910771709651044719805315847795016295188010214973771208197209947125095252937468211906672748379307322681724974080057786815465667783988650510757667960781608634253004723793530159705305680091660035350082133589168092482158240321238114189699079308766450198415198497884903817111456317859170439446067903682941396897859151673542493815565361501605346165182533084564578937742839214224801967618349356447264284010185292271150646527791810427987178975038743934758256309531400143977976814194528847725581642104661611659046372896122581925478974093626043744836915726552068873991876503153488179696299852078729766386159694185847744910758283840826038703703369726909795607595599503038485736103226501063623840420427189707933718471852234692658574806920799084376902610230764651777080341565363178775697158370603962351405284079783000287764809973673932746781493623789915975173149908150826673041456294743092833934472616346911006921744861632034942280022862609599140986852821423955330721868679595429636397640468607743913758782368248827404644650052356164563677016545418838097212749858290939860841205668841480116366372701683003757221495234952970573060716057006297270640851842601959997660080540197619402351019027905055978130707375992037227857596371630077238006491191710099784697181908932379981365411432566052728554018622184752041296404229986255339673714495226231945924082227211081530729277765269087725222460691646030594248143723923564466307079666610970159193186691306407827590199661750190089376480552280530199751308770152821108302894729348664398345010875115580580425941279977260602105191507167239297834359785347478004095388891776648461359102059835080718986658755828104413081833816417215260333625709572833328374794859733276265300601092811673478120552075393362834054536133167837725362315972439039456486604319851706579524138392059167911601803237656138748670724782022862981683206606916950839840472733005785475608077419405382148483652330218309656466565028523942278679984389966284011354883418256201742769168558427309085058298298681034450762609565341708598206072101814968475456737605342345979805167722178051709667008852166667865138539302702078558494687368682044111207752728130275238217379354967234939032692386904679381595184986002899027615075859445123723035682370368379707855204723476861678427516748505633887765198349009619063711171392464661485647525498979155178664587384576824237791096930180768440665542248567688562052003749247932315850477172037056755425114224093670478829868426413443129798254644501523659140622520810216592839055876891366841816575256594732951798558324150477420181252083815247209610690543581280500437480972464007262510386671265184999712422300402318799785902686632091281395976870213968231625249840393632266832654986611549033955982345652413019688419635494033262925028079700051737168079348007956332652424986878959517583053107974961918587999492041334639390999296576048785092836686582590484763681043123784320046817525454612930001234716089177542895655779689214417873136093141727922868325697038590218685324754123300037372391538119574690431299251133330748617600005929075950763151740352594144639907006509628693360909605427373670784311403437309947663906772016844396575587660355339059573317688640337716056642183714771863495494091868487996784699290786894135681329470434331980047240676771686136642146244662668228317247871591855253877606746914075137609168311827376336641663104637930349094176299395744928214232100823850774031356600105202620305191488122317071293494923423149711028807073995120356357654343604438425018845000744321227552748760936782745428854406020698439877932018319970522412269687581566391209156989969732038546255903771343627564918600294000924983365076498546013932584130039257828263338502402805628216336008006893845265612475842394589574683074183895850569187681993570052968094359720699164801565756387031098306803127162450349738446421382203106953469355785784203480673389724988676183518439495137481718588477671477522070367297155218380104558171748821570512501997299598665519234930932972184033140737062476959836314434973880432913946718823657957518567487318011836847826514600853272197706269711011771287642250775628309421846266202348593561417249406785336603939818376540582371038010416142556872089297780676026614641056111500541380450202752618958166793101404344928292009949284809625108788078002563253202092568369715597800535570158079032426375159275762136452854097539678772568074648452834292176990573356538828119386720512871438159148532023528137442195504040044703514096843703486746030346837087000195179554535456245525540316065472075769386123632804588115727447730406448967412581053453739557168597362092658241868916717725673575369509835935163572442223140437341963107388893696029510020295159788616488469044547777743126322857310853240418163061611006717056323032983339596995995243632877679737592129912605630671739879135896646626270722217283100939446323014798184509101473685254991685224826151649605826932356385249760615470373280751697081040139147378208754820062623119145101813555702289214199906007397989151558677353521166128669794432396441909958967474096902156310556038910419918065638114298867538095894441533924828897322309100892158325360970592508937948882631478396351227134222242194471621781784498506858932942599212960701967188939558493971719720757122937057943817084261861024550844539216093772064920120545473218237410374088512466505096302045349861556674389789633229867493272737988629855051108096865845628053435204768481114279734538037733682160403744525110997304704308159267556187101478307169616465823367513060467021005415885001557998671539957861966716111145142777685463132872975231786566823306301107168847987601320296123859720882873985589106860200316542550304079792040241414934183281179585256928429966042054389166936436939527006158306495059722448151515066468569339486547826356477491388523371759796464349894864446793033062071184117324627246734079294062966783904311392089466316485028829068182554702351037611941467014331646670588099900808365143319609858558944979374377495586194488349372771922906977254384019358311482620878332348157430480870515178390781432581224153870260517579107449352007289337659115110773141833659913255639286086481856407049106903375466363607687809747714006221544173298896284428093587671906946753249987457559867739914051752927516246988874671952883751733365822080486496380384099663403655680439410490793558554624716163713013499527445478850002613216671524075143312419183938595321847425456981947271376889285726892716178154213249358737473519280184032154488973128100153324292100787937425063244615050616969014354226796281427355413735452342690207434923606583535394857123611552867401832813096117671393067938586385193106552339255214762176003570200075504578551615156562158447577861241258756337733210412469988618107841740265501407950740309200554840787919682293381095333391383093510825479804657962706491751459375732126223468583800823035657525837553157438202246825487493054947297474265548530793569263399499567083312669344639730195202217406199124031291373854300068962646422152080235887734306646188453334336533887410296189305092069109329098610791742313446461292765907305150252175935594719920472372877651968107890833151317920926820799765900831989186189078275958049937007496076369100378909966174745142450447141046958019095167281440098457726297077792925906166338463224068432424235052331501272017434872575413107006034159580136329765429972425276762799133951996715667479283717553855014747042507004386700111149865594604304147764154937516599235163511376754538921314553837168796251393378010089951862540802173859991249488675556128638142454153704852165525002144102818896398866642733470724187838344839649864836382044989042700195320581203949904044310559283983828662394735361951490772077682239553658106199688526808822139718442687252773797714597087689736514453101286842266702756965643778993411768937989717965105768139383061149665665494839523784550102516328295520446662470829391591373371865085730235972932769714739841258406731124445171623740468902303193650846437010837269067549816818292828571785380384364427533135907648285451666864366061951143688481049448709317949539704378678910840158887795868065386460863494047002957606194448042902829403410383872318498268787760597493380190159199751889203859730382025247193896967807251811814216863843780725086016331488059975283477896030705048938449904561098823187901919486319168911784737295475006429623047441645267459137764814919208978783469558581552161311260543108305581600393460968333174356870967121946879079744779742526166478736216717987758058246730263922595679308198908475884587992561884777982253655760199193595376710470328365383153975110672937109870695808629104601857822082184857242208107104517225993136563574428851487906893111717157877015804661268891858070000070122051507850804599574469785467940698771807878998561120853231930804226943852377248075554536163296426758866076046690083524190098177606618149687497392872768650273567249984398189325002356542854413977020851145502142692330465414138685963108977332228293831155102347770413195878455743238411433373818758893453845928594591605886379369721717425166030350507980494936558137542919084774938141001594390486450376546395437372397828091468258153316563830921857034194379564314772406513581854349489379452823184640606600919295423580863319549013208362913456961524634234328754618823783645133363679895867675447765656194489140291582212255204306214900970603706570170356012472319033849234965071136921841418864435581651414745284578614503206372374096384637671771886718215145134612495257647973334990914468330067426045302294464479249589218791172529539257091320005415445619296732361472000214637044314018977461620553549065780973677823312144528466026298924357699930433937332364942711557233034256113163839875309135298912250117093433168498223436125688599810349785427035007845955026251568172057223683391400575116584114568946803916283246050468729065717204572829366354858058653089374912874662431924059949214760337164743775143295657729629834323091307162005519761150760516484204233528564941338070046311376483639185516901392655023388386066581558905835027679837682466697949773250829771938152422850252101669527935379215549700781901736931609988268176530607521776550446200279208271401964174907721674420288049243406189802011211561146800837755080756126632198775269820756119896729190565192417960767540612129017197044904287877918594219616673971957733763557863554366189434742991591939526162875574152327196372169678737039703373697498223642466448532729192686392605883449120379882186996998156471702133130971098726799729198949380704251960343079232743697956442259291069804853211256062772134875219817542074470444170370060187102510235883488466996664435390461886636375014798778891992758894128067729392609869895931714816381840787361916255795524198163721073453355297168430127061098406926578864677620788618392233529172499261083430843877682328869824474272762665186208542213534082532009057923944973937202937759320164792929311954683868759745748126011252632532105064344946800993522354492579717197410139689266205644935599737492533312938410788190925367128735162263761089210768955111125674491859231895631002769158869657034059598980836713152227446416200192793814188879056753711180546656630741292225330902301403541835816616233536237370915611438311230606297565739150603310760243581617693966882675804407946545073580449938612535410917788782681771254706626010778310812991536465158647448067588464543845625161482017332950664336067946105664381117273731048157913932806795337245550808545852188902358257275429364043633232057677969993279489103511695183896032551419548195124535669234598555144605834246450102548044072860475903813142203293503055310316851139221840375030687336189117207298840753410918905137913564139942682244208107576488901056923769994454603367525948367652864519710397164895558215589450555938646902267392586135872780669229710611183069834745869509596817246852987135805249685073727086474502231353031288599493523575270318833029531213712645800747125172029646994366853802087505482573345745031885113803139512074997344977948343448724001034225581236049221553623987609176653008459690395877917309474645082047033546906916921718915223196293461892636400429706636447752403676657037443227967882927317992616776874659033065254208080698667194567450218208316724716186079792606977109421077128717823621517694492740180400824181453867976710029106332651597274569453478612964684392353990057588121634210319080638416186018835740921405851722609314878892582077472165835048040293611528612423213618121577514767119282628887288130226952477817229881715974742580639740185841519045020548570220170375854342332983268650003799506165871471182686407162227044542204447876982715380197842628169000875256053415973627478783666147401833936628120497623427127479492621744036744597256869153824708273832487807444678976883057542161263305334446312959995417713979114950214000070790982287251766235187129311337633386797976495162572996338033740039455244704354154420400082079294158173544866780394635672395104151666732771669188824106280489270036022355729067511425472005016755261920942632906027140919162459485540737544315856062654697851748510967628619178895871147030369999104586451991109669903388281907317642074599937329271045008183312914780924277930147711431303648475426160006171058701500804465033395553383581496979928260594541694242330187442631009058764153169933250296084024010653815550155442246230370000254057839528044204362685589975757942926548738770904187017135839108750385004011544804741677346543888262243546830923277793469636031884369009281602170047579845210799625458763156519027309361915807479266196626864537710340546347302943388112521553081054209584748964792311197109987173653110936130752733565039046873321503684634542649023775644525143440135274739692248082465788057984097335836153310031032715180531292550270941012372638331766140103179428497648495395450455427928965115183328424940972512144647748784642697507163643166023967387627723737769455255618188973369781989400181333132457027860937549091920461576349384684957699128977724136665081961878269026520750657220049789311983681794526903135209143543269342412661015599404428506973580287208620143778783374459198256557615698292631401263722340944642709319129313749175471523298448843492341589064653462658868737853330974005534795938076859245948432027603841013639300936795614118479800973766661534277620839113706065673339863294848169748443037752931734406648087120215216329862015424423057131101765174690179934105714909298295824117700850199484218559219000004179467351066541236809555006721295282364319332698194390903585982579677702667488594027086700821004353732468431766156012721267929837010520225013807702420096374497748651359230983622841225888771785925525969956367828883085017910583635100574815144797340146512889935050941561381355595130043507155608590851832616180999049963934838457312696525905877600303580984134327201827894924988201518367079012494535627614525627884614706593639672731039592162384348846941999043994602516431655251856851275613212382390094837949151821126600193471403838366868777993864003728658236118391974965887624837266622254329234986818337414907494084936337875709303254440872527641275933586450138721226656406753510441107650543421501967974959129041634330521801201280774682397588511548385235751042518075067662188755224663362285175028064176987363610820168460790547411970533836058008398425620660163179983090434016894003468207666212923413908061752603302575401823191124208810925184305096409325429079615121752371940521404658914800182676598215198658143382099109485357558751841083820539971266362140564739121164265285304698493787207589339097133861527870590066365375798206012390813693641568520652051052229895471879601649734898388083688873441685671377585162766510902085454188591200131523390161141277643520024073894967939246877342024347666197948183912862977283844995826478759066499831724689736635888372845182217768228224534306520199947404578483395936202591075796004785941524466515082988101991772968628187808740617445237326360995863659487542830041419569450280704237276516223294732665638020810372655801419141688370756420893327085855586293065961374544507336933080276067032637204989195379695851499107082434749724593283811046067944512331208954014495073702787117714904750111064795791241390497724430609315675630347366244168664753093022888900502736118507831170354834254389161679547692825822551395610238347604341994045011599580587937957323098769403984519565717633579047016608460434279564695393957121246254140336900006988861300870724252857684460590819254557979405545234891595046596313773782618881340917965102766969780065999125421632470569325299128506350841111459677085434994176660916417912241614080313449833279544865621811806594510727230117299830323900626414489264167969624577222266064447654720790444085834179390697274981852038407975228577147765840499150214539686835931312452832411432957470613192381576075627404026889064968716785597948783548329732603716115060667456950884465528049211054864984220106793033625818975211891625670434743276641055088804478723914597185753007040718399355619474981627267788232780978060658237232588610037389255125048108214697270559974665797643580432544038108145875212066334854645015749185260560309295981180192196484559301989953119544306903869646779122313724760264770512728491440746261709141301989642854984055232261850697736616261433278591181520390845408880891762319079917350112021983275140846349913157402858696430494251575810722517327506803176294162884247947440022296554648033032495895461763337685761780899659261654827620650002073458106134816631816107095482511532526336037821469613124636742783120238224660405739214858591269175625893021951229655709295540661904231745464485325640319823047300515576390733491448354284282259601643770727686307544680701125899921820350347918348714016747409477828725442001519691581917801732200950010392114983600949874414597055289544092441120922758946757991510931286366938806801195730555713384972405772149863712686554439877878536014419212733610806953576928265088165146398781497692557811122775099098035161063356769572430496902526537895379054449780055994953892302997372315508828840617753750167649567892589577903331008985033561472929532136421728482631453787361805403440977940303222661869121633724376331397164836349003272478221606023221228142418262466929710932244416490864353291581976482657878243068462007851543155859375256128027235481088392404368023146692991856802508817907742257824490162834546299244274191899921831982374926074999339492828933865842001314694088098098539191175872773496311206503091822701606963259137464906112398762215119723654859254476203995972372267943304113554893715031283100418136764771355805903776009738868988905707496684383591422147128675652139120404321622333513543254968763443559799865023743058734362112874122636765702232237530706427300403014950986118784632255863597209022717431937188037771190461990673561384379929558836643212412169818332428615698726669942786305292866705358633722650655788587267497911703802638613618958591866899747750088376935913976712074004007413510862951811791052899130492642964240550471964811783007528180704661723053082791946191732257702343420671902389985213948087290433053478708086071151507585929152958810312454619972910200239901848658657436690455848276827490516876351243238463339789895456913146909759735107270792715310227565315352088907303764030427881545614693479434516070237584361143648171770987497343368948777976025616949861611569636593116649519422719547650597530263724648532721177525377620473967620759683089818493087181944039271436804582410596086168976659192671372333225824408634753388388306446582490917487526877201387061643381730441138477669566899650850730437111670197161095043856488243856041949337274672951720878088509915144519135055313390585026095850983081507831460355439702479847283692322198904707045548625169823722817427776638679350963257501005765063380527687202751285116742578208785536477840296850292143876841625700914584896341664407544427157352959678126690891702363950341557788628350024145052949046816594035895979922933723044806541842614877840151539051694314070346109471987337571591154370982573438006521159960585221167022510573665738603164283761687338582478601907915330184037309398539461986876369989215890128324253972898110352279886471950523215337821344294130276362163006711838107059464505389303598838737787104388267595355820959067674571533559735996806655270002274061655175925286965035000031494492957577935296034687461179964891080726340909005454726178340373403420495176833537197233314664826244813785252672909434725327789654663074603329584426297661529806124169682429104827933260812511024188545062241082977194336095103190365532404917328003729054846244447561346136291477184141804968940004903600168666758017063560848575406484176896977162924929558711798042437156796176049041812728164515708633720017614749505104746647281032294177143309319805562734438293930914267305072448331179857768379665853440342759342874152774152496455689623152286140933051047647447496492765853383662216452921063767673485248185935072382354266347767954083014371104208073654745923891110856958349782309066978484455254751709523648018597158967509551811720015214788876132174856320728014260434551131207194325601216011768702976851618936536583766848569645071247765077594592290684500177256769078412342278118735022634198221310367659587486038169611763882526659298677226280271857545553785407292332942537374116014158323177025830089422951754317077254116399388562675682958645113148898403641718165568815177883687991722217927683309447713105032769789024475889411975617831904378247869920657832179390995685161914670456753816451335873300170070998196666240004263982259627595678687563807681702537512326451822443139059709324405728688963379612427833901234260277530307646014665476309909187934922432866876116824443959920482439173759173728613687862821351248881776915338967226384122646280982572170402757343665654671445529122479545811014836373420017057454491167730275670140926554277986286068311565629589850632393778319553549654643304169253102075442008651884607992045382439213502220586729771284250009585553737024456358097396967343297807707839022008697559378005609576646663948582848459550853048841291095453952160585562299621467332705102527007482647636374659035378240541428119327085748323869974624154377801135638639214044315586351700524016213922134661543490269813087123067372026677568109803691414915853298744359792547696139511812089144789546972468591258860466600105546166080175823965074230374783979646080268319482921508444232483510061013232074153137959997766115189280720650570227088760494029053888895484195985573524998877878966559349456221390385472276815337284359044089132707676156636733411171272469492676786912339454095400839361839345647571226450797530804694880891120973155408163564631641705875375909743417598012476320896875633781616708090329492628798364631126148527475682847261006126643643806215522968171092048894204672101287263076704727117901956625783606703619807349413503715012701718805542818675279958958778458804940894507856507185882700982303165607362078506769814301448210979799111176142210428277723933376327475406696844225011369415528396356551959982559308969651930697731637333070935866491625351421868538714958508195973274597508206862613773598580856197885021568426995838077753500452360249535292393030001794666918158980554831439414311304088307915928398199601545137356265523763057193262876710270848164261348556708990700110902094998527356871850345582610883123003390917572327031976923804664007841912045153076819334969195510496159287137272725809323306387226515349604699588089502346521510543688044756554003959038282198410993105221761266013069860562051490078665328230211477482958986510715414663679609222529529394205608082106059126392473632236257435831351391641604082315734482932839605021928747768451639375463604862710600722739196631122526522966879756287459500716904396886096091267389184017905301203403731224983067869686715856383886505979069631736379168245852307460582785848654198258803508385328560296444833394004344393488099089758638894689923902372850458651506235489799035135990133759333255441012711506629900985831680393813566657183183365628234074727814909822113611149121800567645902995049253923039221566928245631116255597279271092869868692551966773102474621048476335904559224928768487163807749469183652536428899363832861618607696039477114444983857768714903473312437876739066337863436105654096879123535899530023099612855074413547328818018427888835429615409999068559352167183971188264238402966981253919111096228917687246701444010081654629931364270156773349370778815179128367955611754698524648935207717320703523594413393584540861680135378148606928985503418412529977897057835669740275640561376674685716543741722433284113768622042055316174535222412101385344424255685469014908101947679267937977116792730875985181784853592645313160599893189473263140695456725443333394638435086796467607162049520711199257034861998554314121787374106631636175958152225230385367419230137881209420821578300047045794154176170870347669202237486838389372876009428024709395772202387354029001730057206835068221687151737372732425109401942026256494251400876000228981204634636321743179604264006612942037091442275399469282591489152886387548770792757722074263709393145607701449647651605082734693347543755419052181062208076065510050636808459158463764993386285847990583869701313031219203187246221838077897614072729002124389021395560780644953244370718435913951743408150118143810927107468971421772956238078888529582315415891627478389733350426649651894894468241062899178593532596269521490618990968479301943541592966411471026961735376051744290912443923058760203389525919639565737080390339030797023900596182793451427781844326552482727355734852049073652351756564499532701611325047303910073661876088439245727474973146650652661315228556240125215036799807708747420301960184785161904850787815311129260843207717573938617571477858849060344795922749576393207995027368068469154209244405533448031364625209041515920243105462216139088729940904742639131654118383956397004538873426296908441551949016441660484383574400100887453062645035418184742648875984492910336921903786189131309821840918658060866557113966068922097166709309185298142449737694900265323419731858884666941086901212651929154252214768645642123868073840970441128002496740689648896685729637459742027941814712113773073804087941700308774082114350708017274522233635570928526590659268134389066081817783449781956852521413937590403088603030296439414693805210498941657123324701751605164311247444849784093549629802681492584117651594064983910539390228471744841392828711235281259557231444509394068832166005413217176221943038512499345034288697617241168474794113431066674714502927348540467850459000365068372231016282163577648505043239775111624154530066332176946251480952243991999889686761217210072151142641074927656613985537508831460698841420159328121508246740990665577245533899517029579114602299320605697213785380003195458258991870206626117608843596308032210985373441124705159842775902605148625413869598668642142814444986793819422054759174214460565866810347154160666753872487980928537726883445403076032720787677705797899483724447735427681652857366136243310321652778774419562356160273327999538879291665996271462775852739957239660660420728602412642378716902868030118216947443747219396621943629747051758337033610402550891178789619272715648797161177885321611791743496896447445946577156804367420467267261810462160658843028884666859479334892645684729116790496568791825682165854804075294811387801936791945109576944519851384914008677402093193632605943754368852742605100713047749942967331782067863659875633875052587237653426927939036840785353954486642819478802123515066405607730705013157387471926612056624543453654700361928824308995141563780270248572285924620067316611414727881331233686574209526985776681491376895074590542305563440303591399473199826173263395987118748956971745105862576527591779124390644560736105666938893836031705916354241600337979154235175941224992460035517560537087876263490348564773206048429623029722539805661553751233031782995163173990469421988350902102685077476941301225153567861843953095216504093777447223285877634742808045196637999881193149812812868292232521695159289516142709901542932878848205656174485481637609224811492984322368523471201126909831462639839903440161196844459349132225715870343683657125386392744607536414027035040735437497508158623765544550821148525657606453628452564344353217631754498556315705448759258565739933423520969781616729809111656165579225882450992089097472166258869967720184029443315614751571020463741213399468640982681268382302119643460917192401797102044972734440097020239605479139986776393050158142122281017503425752924002457650093283227981177694256363634941429239931106022439864112934369809521901628826976060372113665056584775929116440559265509147289379966362140144448041997779146430438933002800013389037908689732516945753823844249680758115314350816645152544166216266406660167703381715465321139142580729243655850047868148892399733213622555390231191687593211751940367921659640178419041811906199558007636908052302222210433296855184815007647458663364061960711221596981634111842363117713869323860185425818597294489918523166851659345453386141787800461972706974076027359626970692456807801236787369517608256427075949525376615381273315148651454351765239462824788795900446605688818912858910394527732693221339314874619150865717853495737657150613022480118763883781257643415026807971263827138012726046699867140259786616455020179439613812876930199001021048483240475634382040291709399279658621307469386066913447794075293996452375267629067554206090437251646653426705605563294951233357727490776853496827405112959826949945979499147520449279312845914146488506770580962268394015984204284498032532556581921766759107056760303789520772949809974083821990758482298042968382418109967117789336339021844256572267643460297963471019885055387250600074037969330747225347121097418442343576055779219512621655291390370836374091597841848131367650240974535782566099292615195713234798019174223744305328823183295479024477653883747262198208892316059325217369722596537137014982698065171649045628861241672886063743106456761735577359057005937097502569268625920606097096575788557609163412040798088114899140285662374994878682276005219818359407379198701177638892261864998957266588726879751606776630203008872109872650320696837813999198922807857073088786367618418643403583347351270551262213571339690950384676841834456881772307568053505850014495739280069691674374450805995956028464012660661176984807619130735486689994905177932960911602144701321735187902376946585535725661219894424341463060448099595846410783460979785580009734542673593224425281440687848465606451229864553285226214494790519341399786684546727708314846090320411331605365659385228125680864689838473418270192943529314613626681870964138546352701041316653213930228872564317089941622554193047296634507029964278219414168922252394236478247989490411856286379042980379532669294434554544679924268089562996252935488652307551896660781288310914048168236684585354958298542339931003791194851750344054959806937935011963108882507222667861645557607264489154718289625226704526483950856802588709768979519472952177653928620069437332817516009579064860004136243233079823179532292095186229195205482290752318888641735206153859177340476650292684471153511588350750053451524725983207216873155678419907402285730857895485255813117272732758949467819609500069008689942350439772166781691733942002865334410313796838422631135981346514901216872570087925575672293382336011754014336141957507008971996863699856257163557196003642900691217443649309368164983704710160391943743770011968149847937368308411606442276426440210471899344781662008335226305396850065796762879290275063607013782790136902914758098811024429273214125747012275500689157088252287096245749199101736378879764866273194806285194080014509148977642938953601935217821054400011005579390706299284069357744756745224790717707132103065186087634567169379749605180311883955468707577024108119519363461688618885484196374668994571870440648069173377845942338373887922206865488737309231742820708303241683004383590412529103393587284253202266699596667172442662963052172337139573667594290437276507039108683177779236378195925704772906571659526635208640070383349634241258755726196544835990185362329833056622455112222074354794361087796000435152822134648315425114902506987211724375991623084365503809178914593352016220567509363315606937259743377045897940802380254586571735346789411756070605246214298522821347499947867179696174502614337155581033513576963640418766541768268191685460686227249980150972860104313061003461887697015111103583485081728961497684773771779394879497506829118707848072486977510390500255079200482337445995168094547202751321330139282234058599641489780607118853289940627300262586743640013010064921235463406358379914583772905323636620893979399806025778590749248902780848278457311332382104598179579867135056439263569050814580378567661550113189072219282061055070450637482234698698191576277340497390997327444130486050284184063705942791428361554251582894490853054598439943029449501573364794841987232111564126923294511202767663023636954473977187047662803151021663010859065938439123283091315916092291626140840119229745759952262459587733291672191552927591806488393820455348294954955307522198872954561624216117905960715195892568317072854481224827108116602948969909485496131054878769106505720688039228568007097090888603593606803285792302514909509656518379743897397765153579029086328148216722579840927821239014001241212849576553564242732848893908786422251374678974045297505121944217206279783262793749272334866916237286263466826061268317455026980769866911242437832461817410156202768487106926371845176658192794655645865554279082025670929117476519716577379597390566254776725882238411858623780130580311715413926923615826207416332696952800540451537189194446646806295862877346350029680515575507885568419039523228582686545783906818737728045825422919824442682293549168252761624496341881783678980433321441642855280067264947000561481472927828292846117426492982933567978727636754597098285483643550465519714246770921447203660802399466828891210171211883208769274760088897116500412645654577260226147377883764878808041981904138466541881465298153311848823549371280195677553704971599380315716098350721470471274613595422840672858674961170609890566451604280129252296091047676732140715624281750040771552336987718942760286128049517837619089432097252251915188808089849568762652460917362004505513649226798732801452786039254402180839733350154139203492559638340171884086500422631420852295545632897585321419429163131673823803440972491321409418890827809338313462559822248690168379985003719597139916379932381288992911231306510909792172304962392324293346314703973085930564031901431242345334158560244392008423526982046481810312471273515265598580722578563639892744599170577471765978319039578703736784604808568678304270101646555926095401892086255755870338071951119668385312298767952427767405044206760197665509121697970215099149853138054346698430154842072725497419761492166273291060850778534878871927070448124509028369827337117680814982497209670244210158998250065700040373689706993229925172843039510514938586610704370425837832556009096238354004330233928625233211021621776162532663116069168365570537975244128123590716797405137453308824832984923372909727099548487616798799646488427063777677182475542849744515526184794136935083262255874327734098551020668740381562684392043724748407492250527118834151639980034896286313880402787652105985186568273378697472438275577804205526650321398993445716885974623722294295723720640756136438368844887581072118044196782486806173895507407467019277839966946217133218034815192686129746315910295532174955197189344338199200837788053219619399609093344724173308143538026567807900010486848787935307170152530288822149423488624972101868248302628702272985417782360415910213541392775391373955805246023219163527424866365766640211549275209376046509056517385989880431303870249044362542929058945997784875431114128163478251978137373539032792852821174310131025307822890364067468767680143754338886369342919610094509708628585983533713943322196121280905973128129890746934821468728276139282404860862441477200201657558410499210924088227051428959090295570832423881636175391008093449337189021072421016929699874852378240149133348442660729089333655147587885831570810940100365485732646230395806467003834143587003674352637377064176965217833632426529709244581746077952009139995599280670796706329506938955400082671709565463188968868039070755299357516184701970117070119333133564944867692816375740660134212454177266601443314784046995992986003069695414742241530400061556581847607682455816941867973331795797715477182945916029614521629424865449917018756612341274098407891365889912496431494403799839409056757244192473825664686942489942618681542047936954861574178130779904762830870240213142708831268762417667638514218846237376445489668160884850674365992028536808729876878456220971733421684177846872446478592305152168845214040890394682499093339313814001335071705712868528341707541262927242994841865880601107894147270327390064678205631247777097188776723234356722166262222322514279623120173881790336680723281119396876230350650266051959972114286847443620632453974664188795231005832573459475775917046995548343594395421069611248862795211149959580815331637148555730279948280407708126124459965066404319704851705129187893503947193692301493791741220893669935656157028387172059184657479237394812747687345087773226364382662973232973019892452289200280783765180298411029129925890416494301762594762633212784631803037333778200309314888555854815512063202698399993453181105042585349280384849152422364120149584525738234280770123559482946697955450438513093711981241324797320356646632710016283058765942750356207549499740814703526116537872647869739618508754442869992790271319538394314349791282744946164100254617591868571542919389784885101984123775694885459180001471921168388493801235889116396400596433840349468459784594705252921010560699104467450565212338779469375962113018896532464890194575365723298101017374164516100935367946408821477830773840319565144413672555986843216616583635836280033830883479679093471935265329823559844954478199449912460244018105241810411305989309250236145238828113845270781695251907414520614539762509519511108314216724940073408815734426078599766737148187392752453872008301116166339072469708393923626663909937955928883685583137901677955433832398370260908961377715822859449216290239192654805371690232195262107176827825366479863425710413770302686248594430609094614482341948390976315601011544984616169415121565771878798104464291999031761411080093406915958242388395702972987362355760051597115043383713596988159437636634286217150939126722210569965320555741267518763714954359594650951520155560485299069577159463856488046331496456862014751654996876652102925081730020530162721933007139176267014506794757074713992933399454633222142320686410269386696520611726271570264322385992580275731692614511617747962656091659270164509089161990581868355654393579274888107573916495624658323396021424580387997964913094387575580199543423766484851379404541362870952230013362975343767691542642924623131131631862415520671488766582431586437047779055394060609715151751450365667002442069405985126206730406262927658168051628071170162675532330293967070711754215497025181126072651270092845841374866686858395345347504181598431180414481332134318314058278454627305296467509461182521385236141720069701683219483824196552455505161339646942844766444366670904737479227653712489419310741139520953818246081314381152097524669082116054440502515439793385522626607287358142753453995246114372011344748184208999441509166181586560890310835216027509503624737567950405938308267545575384091014018553150154978622604157162033052249423935525704923321106835837570912482828585340207607042153200499981201870870888950043923318139182282285005719989093767643020711640423067787401078375774403010036227534109542292213477465185847183307182068778518766164556304713387708263052763834023596043991113737445784573909328475846334120423253598685145392911870574357112144938451016091924565127728373411749980879428496059439181039703944881080457163566406908624384880186933374152292141515836056379197328377221338547722871528406430125925447501648883375464617030606714136474904318723972385042336735990029591011177153134438812586396380081728475868809735837510571831551596928266352274540399330027977331346879589330821928861923401112645918398509376353576347324259781399685180586005547845495705442597052681261906668747738462789916228926945665321423679887115682777889282835553249231014838289680454823119603535330221866926296014709071769777381357365975787586552877338086887492849935938110230442905264329705646486471070188225762838153960041114189865803339781767415498158077209597384741837032788440428216431773827155231326619241645840505420581410693040098110776860242391352874461239575080275743085719375963721051011942172428718383419756278971713945969508520106287126841644817570550957737298648538540071456210731022277950956984793852360722634405457901299995695603140794212836895322604356783056826071883261581154034059207707560825496835495211621436530383176054478892687158096454748200065430834654708930277784946994539878007784185829015107468316616235765314653628897614961839604337903413100276383509333647126648886044646064663174590800724566295670327036040341410081154704572962943038321472296582658658626351132344079845377488184620809619848685253179936257062563425810762457499553794617402466976015062438962312665615785650520994161294687824256358525144579211680104482763165905824123359562669501155557110098094683616289564455316628513304063379034082069494905339635075977048945707669652437591326457358336824705042858598611159050462749701705496061684809852853883134703444361967537349018003228757875974284093688504479637780704071145629685188892046076541673538078068024758673656435702590873242371158319983185249928140622997838348498985913477756950815254464332794958958017009074528201808683561584114044812643816427119856233904434688580407283840350388602971779805277034385299783475940595280546586507602204448088993805345261946913697597391987610000085190177564269224239388850030578909601614203820460034984953506867365702712556694819288232923893145777378667296857571354999252188103384542091155015793564975363238339297186378746257866834394623744820776813011229529206976117594952055725699428580138094599984250459286661836664554394516598892229526991972583432908980965459082477650544862184677222399549066714384516646150372558055147921844827688088068625565216909258140568488766816586597352488926073197378028609757531732042033626969581221010757403021834106259882632453026412236734933697162965641235944573473198698135613696271774553864054043073987878622597226325452702061521165414730105852272391316760636652200166869552929443139513183784092430531379137319429680702804859445610882766394075031800830725949832783470747272492302179478125838579052233920816734184818118654134609865752283195649161898415575488857549727521216587481862677596237383515752966995721340795777152253191752581546874285712094803306187548469220810984182068879116412863335604341739214355447062938338607079910605804962557756438913599112301855892267553004662719821545049431231035640684399507737224093481754893185189103585092142426999048672803087742609030331611177139672484036976114445084578338043979112040055692061217722027253904261856260813389363644860846256092129797618893020359293610083493446984001724924742587922430214280740330605733640374449584953952386093941564361089647525804391678486545339994987854672344889640558557752705169483774808947384618340561466693287289876526011386464810710327667724271087260390004676719222438625881981663935923091123340352870001173384041109881592333810760504922522525008845389194785771732076492557381371600661326326568944137895606797868212007558660454521825147724484642836835427185124853243608981344427781702548348723144187427059934477942822386435826741408363948864326127507445955685556836862317674895646551063038324840234252716617033856119207808216377147656695769797953666547489345234305150518191521785238431616296741829211318031419252179274314372279083233727517568142358862915276906922932177411917746348045851007891282623419888859254974926624547356015407972160322543918448374500886486653208068491860627496581998032869041733401287372769677359339140952706135540369636088239554202014067775263183259131852970402402237187187963527746837924921857344394337017571413436346688205639543559566421395841733011380598534428557256745081008379522344281892329330458073563379562170118768316413536807277928014523346359020421309277537218148570660101430688335509060748384050093482377759838371824227053998907505630612114894688276368166171187745362728479488927975702273946273301323376523788797300548037186278803896923529976526947023008020067712227830659176399273790132026008604073259651956992797861817169263769337999783913903597521271656984068831992445090105952481631012151111871810592148599772120053570928277165396636302685358603968320750486378796044392436609782625180461531916839863952743288144765393399368031996363826129038755493005948902753809367048851790648335062455786124465487701724543979485684709398145990852955895220073135642940306595936239618512374572875227334455415896744434395628396457052292478087942870645517028761433664172437555934015451853226561437596852724719603207724243799335626016324796595523336428291913208923948545203893778825148448682799362139999597870149179515851144957267870948320596344677544948869222550138416984536009103110230431246785208998192551939214096147488339104284777590543514968517340015920458409836951156356829535095113647352066486655625361690252974613874179040342826921685184299446952175901648611010165631472119667701088251681688210341556868302569912465045136205541563970307169418340271263230567036031985717145787390023000854615321698489613521258365261800659444633132045958659831460596601497827857054284544706919706940313854873476700068903619643411036220241854957082959835493622308081412971336915292615010090156091569984708996515035088595193646020668381794497548662389602818550324778366260329891074405510573579515819327798721508493641420285355835746096004933441543564804230539637302792717111699228065606839717969016912831061711059010047600317076552047115317020100842864409308750828210870564164485099945445785646826525454599580133401679925360388276260541091606002549561419846074483531551665614679231809443432345716407591058290409101018471386246743551423127491483330980913055956513476576924131620461874706240124971596103113222042143176919759027574624498228611186488660516975884761903676525749247192564020296427862632193760038241993582447006885395838776426719541163125755462932899565445631322262280221065486178652352806131963588854850537934905407501505707030538336790912904357716702180830270006993099724230593060387180876523767130175568673633723596865646009384193708020195272501450696725604501025705076699414905299890107196627933400295552966478948326818432834546841978621492753990856604710228764166967194509934749218051808626938113353898851884430216148210299885238203496660930632461262570459862515245408186906879069377253586791738113639742206431194237393347223063565334880776329739838071387287261159217108260401787195396916904620699292762154192860244865774767341331737155622381782368012675374614455094672849230470660145640733839022962723601485554838033565224953047735355555410978128393744907634982245877783976425061728299863834487107927540271215996501476534974822373773200835994531461167550488352602151779064355833364601788176851211199196401827355873804985921056770982364186968293006550926696495133150533552601674016905592898464092857123918402183984790009714471762522353552156385777520354353985497896088485466520440503995317800339355512239420312583199671180575859854939916851437947212962492493090821589653242148614290378020573198512179073017323509435582258220926696017794017964568665176016047445180659448943639884219668616890888154761188304419827625992314004451117916190768022798806880891674038110351823965844106222179567079537306979052516555652167794476041922087946289879977997786178693647314387550458687239420675065877689967927732784737898989969915764918293716116039132899156268913662202799376146380098800580394424225319136466035438214538861967245190710833234847300581119121439624068644439481258490462779082006292724322284925035949615977000572314101222543528054021336553872058644755014609548325837815665639616081265703996868835661151896195071924387261406366241088200862957336218943890151650821551657306780462555491151423313907574689070773135009670490982791465145966475800430101994853029867104891549872854844130962910325509060531853803157327859631266591086463236498632714964508709203680357459228475116944819469428084407742688515115000528871987865111132887533870546361134867955059193896703009939916411287788741244904862877616513272052213437967310881158175336739806178910155302033161328540481551541220910558922919090268211217642705330763285472501854477935439792237415364124915854967187843315550587884018994949917161121644607042360964673834406534462415566183510708312433606477270972266619851499029166436376514375038763746336104513986159484203638549844158772186890569332848754564313213345267606748285232114292363669684993265979369116109316890709573928546743566976178386730944517961613637743453536061789200939442254969607341749926129404922578210665725028434815889677137271471010058782790193529180407759208685763339348706439297407837956947535058577686799017874299529884620984201996189094935883693062783113567715583282883002720729922277453990986883105810498481163771966931313277407208713594069535624351846434393624496619282453307850256956993470879648579121349371522930951221004733313685561484890442629585909131248905141460891053237506536288686033195642021691528487265787216627005941101774595985348202519472370139687620472874058654769520405461337521190601026657529907151961646513420125535799323877209898383395743573648523625606705893190868266027443227653384509297840649376750918937474350667968140112411518589316006130094186118503734887452156480457219641860039641525078660083677345420695374608630290123507718558766606839596847061619441763883260209903076229842391597258363398146415697472692962989210754631440903433517524860699130516489155997959859494874894857390644991667414710512809392849277295241835092418079860255096333361844237620095734235186266859162152320627577846784634540850578410378196799757252736111260095264633297872393132193003920308586912882439081782664299759070398232118529247061561306220310608149069850090062934807408466206359553715702431976888815891769922476929765583640874923642484676666176047438558242844196493733474410505173151023171216078445346588254906158879823728271153870549174183747658062567476569699706957465926080951846624100385910150943381640573650757331417470165780812458369927411878439433834321778613313752827904782731769818193668702595048608163013551806754748589625822316349082937756026905492231324558466070208150942571741863353898396421618695786995122114298713944913703027871576116240776744017915121872013596164610400322334551627913688052422790307938900349783444767518793268937586983900530987524143515012268936532400514762443544233216535387434613405561768464765331725089037795038863772982320962992971507346733183915213690664861064119353315229049729241346169747082299114256499511579394589591373682274637750024774649734828851554000353301922456477303482317428219730544914849067370087738987563167311674678302897245422496437334062537394295167317512472963690908038627508502420589305766988875466371957133459154305742869792331466065199858145645525569899750782669429036265191910540046225357064325312032974938907902523348399018411174180751243332782067978119926407290995967206439033879602595066370980684755687351214028975430897972009832977353308056449613368286041998872659010033049656522272978711135519689970441597543764431979388848585205880288983701888971455009505650420954423996610691278017960520590851226283930237671216186865125993950501098314419086823027603689003737983463258947310260317333669705588462685275623567171727601283868561731755260867647889572806615322660810054998778953149315468904393588454176764333013176467651315166446478862389408757866515257434672986313281337260090512518099592413951485697635572068928416058843145715976213590731116541586999001877587348080618263548185509394080579433699748172115845673384242453742512747204069447572933857329114003410126441126307781576734075406034180838614914662886222576552663511960855291401569773682013117166746326091377622870198923166879750883076237884341417778972369514861987364236504930988916339126773895450084408247645417921334025788703372267159330125896710350647200873647596856756227599858678130851599756816197104541851819948793379874372407755384677617142999686292019825968202759427974317626311268549547151901589526822648203356994423275103240819614549796452775480908548500621466412363082250497801249620302113964846999374556600751779535729141314710566298827235918954574992929880455577625274963428344199236559808207604861131438349039633878193363902424599459115240708149869201137877205180199446613659080931383357685213717358102599470394538661804633297586166081785719401034682964594851364260624301000408393918986519396379719059381990257367286969416582482737022659199932041049974162650887918836570614349139429411937259351578346452341959246591494624514994272456956042621167111887095921632852625990027802349991686213247211574524858297011933332043779410510455339482288738931320885822436727303565332566008138241461266310057434049890966224878727378951004175339191842604507773239207780695156214038771808663798161466787942322430585136360733643665400816401609071592220289274057818306542785197175471855344728496464575172186076017603751604567265579432560469767072763898180127449616966948026630924023406581539932432790260202222066631585957321608491633300774773250903305737866749238899439966084335673889081669500163953757161699848386849414066534610350190828726429877354324279908111857888565369724411424451403136177155440098078311502414080645574980474649538293496118319244816285374153359537847433178297440944550793470131618381355238956000976177371677195545775193680289720861434882954816620559980884394755591763416428124271070410917654376868255188238558518494601917058766203317624288504211878847250172779531260753620125969729095181415007838039181452691854056942519382035624727982764940685876761394601143526826873958736628268345201101437155190910214519529174662193907817873379519459140070832546711631341668493289011605269697604220961768251898227305271180829001936711709540801778741237338874148604774213318827984159787981898056195599769468262062950769613205302238139923346223743996859399767320107122670786295123397285153588181213457247360429418178576159091787112244660334848906793649087853940645622888379258381017501459183388401372756550888022667503745539691176673369547120321551979522028542485553616869590435508663812784003482223403027484215877712901191770622014210116730917586603970809167207172618690258775337761133582556365005564730206454061635339788948604576487091000503893026758002099406210334377928938571293896539170365736536551642768247833168916340574588113403498477846950873784296866011161873320160491454029695273879608049319992013295558209658110798807009623182125014568150547540623013347002236596759005189833113967810370313692778861061366801367477990967496171893871995519864305410528050122897782170335232298534755939377028455149686438500163539420326274659698499230625094775129520246922692254096304969175365208217593199339401508547102915573142678037642339778187054825474315784091544408894106096489219495410993668273600211361988109072743671598490606220592878364210369147495386694056103749236330238928593668829986222149282193448874499090953466735234927930166162407696470075284592320023334876057552405863933105224994123090314750526601672046880816758994247713280298177915385751460565274263526273961621387012424211846582918704061516879010768102594595650168037222201943012758338834610867639165817101083222175134505223777452191062412364400751654828628335933840718302520244217641289723028799210230551440032789862142397864929847412003483771059581336116586722846985921599226192687236356596590717236588275763311290465483614287563526099420117613761479052272432751721268577315290701898741115445092421932526062332995713187987026315448830650779575800924310484160029898761749098434465353369442116482330122286461629110973009823096129387393703175306931075019939548622664494709639877714392497764545190805654740896733603603614378897155318935938895502508373218801136541690051325507644174605257022977329453446026241902280906063286622443102191929227038375352860188884461386924236468967714697695720543867746513452398040949347140368103641284963383012492646079923558023042025649020396425385048238534691283608243122838630622731998524672622887888505885516901399527153391429837782905202218006203460277927095820191029559022328829260711830782853144855434841900628652011126322819447120306742250345226047120296191135968488952053813459415674137679245293755176078961170928036100419808920671304332025357746711226486308133845516926821403027346912222494057812144252676527861747087820696587833656026802609522532198623360322786637260918396610560944097048336318554015078143309536224759376052460946712104862000174088717097923995138531984442846986566736315068404570177138480445949360792662911370226832706549286970415415334006612889297681908054606465533815918891288588577997645733410022883688077762955241678019029117853268237867287506554825974071699276694010618543733234358255082665379550887911304121253883211976570352584305167288347028299452658644849330804424139138745587721008099720628847053927818776416845535669091131052835207475324165055080657664034695662727332528411860984734022013120589186854266399101945638917932664032992893485335515660824789995653581738650254332500514907525450545527724643193436161682540354794254800220859241796658619146306358306340540103003530712791869381355640488390832898773764942700103101419957756535485240987087214196645455514607495804393746317011382307552118798076218839811111487156944417351738050462321653784193656661924878126985919422551662091714980821662183409111642810006760119057302197358745780234686084010561459197958254784066812826558296705340948715151594440514765004270808848330345666614160339131621599199541956606196954823256761754765842283261315811777168254014369989215635207787043098068534587346333199328057939760310208630626607587175778193840827115939684369484722536120335845177980315566695204549622075296561795480400895687623290952714595211872164220995882845903294550412368981190477421294506755630897618517942262279748011046158544604890538937327238114241440497249259137451365620509671324730783391485597563748420710209702063342378629049286279933509978007948915209591966646624892338740057366556291368905334019002440772785240923805584906265654277764561722640755331732222954131012827481032333155780154910286074692161153300487599125243890440867572785434443546084303990371186875002911964939636522756611231866759943492374670870611835907122444599852521737637712090030413137573366395732894761646249172780268097907149672468002977155435841368801480424476237066969223624510439310369159756460829700388341152312482687331691720818513446736926317047917908274511967083199739173772878553609409809707310751731821467925172093271967129345620511940007394734157474252956812083670556239384698958970910452471506333945787569689234659940717974096533199461305728430356588256590640100435625596792083377480039643325466969364597277422818735904390543181650816684784210008021923178125287881065199983031735786267798279505590903397649283431147668147716654765511171343256719019981275909599314970361732087878200590785596040627660740775681478596319395676569665541595325114420562990047634573844127095186452807032798058335446441074529279818051306264185008953357385324846223677094777237083238654716217190503790615190754041059609567780301756120743901134613709937881959400765810772127886293947462953052065743666208433628524152317938245563892046735477378698724778582351698037515097213817395868561250163417858765910968920077007252085741188055783688089176984200966560951808727168910507311356523877130911094139706980078372374888362660821154799264502835593006415823749596384268225504622433261726354318134395918727662797336913484078730738485416344108941582860370650205577260786536839861963829768420850507183043228947322748840183668411776723452619112618198691969336803869902102606658832970487889807318328551315565461716622424685396418181144463712408198587370832868380042339961076160657009103969322487129468605288104172903682913018716462837292604682212631661442144286542160993662077798206521627942616916430702278824872359925394827410345255296288667537370032976675047761646911516828532603728283278094084351718294811196295131864794752814899037195308766486638676091376983825281454607744080426366487350345020458483804993964221139311793056098074660070766558287053394191904392849734093178353166880876913383636336780181939388134267833306139743254994168818552612256712794673094511701852772905017887635023850246773197621526482460519736786766691567976914007220236277853782901669976989317926788113489960637572504897599399928161908128555183793884556345567937369393530017179827496726887331596984221980020851323615214318904798248185551429088214833386066410200061559512625152888501273110354081654348342918693411305666966600876133668497860854039412164681813572240951506727581229094921884013077294217818883239369296738642623412049583332994396516264840924609049116160680905055076172830178045647563783537038921799673659786938596332736187464533869925153784428427426391294344298968220611256327440123157851658607883361461177400891130611726154667670803584224780252376132058860968576163775906482810355811454693231734635755535220125990111304834848614311332365258707751674732346199212650048014299830882031984343444935753502795510997139956000981537994532575563136128246089702585133509456931804885686149622734359896269106465729081291715754624064567441376354528437031945588940212617852955773113704553217364251823926494713880738908977442845045070889834019585448170144521779008505629171465151185973242745396122370166717972941105834665308363150146034413380742708792870553251379608944294648078848473002563035742362564708717985730483921364028893163400741531113807184404589371386795513632651462869841930049918037789950747260661986958568739585933386658560818373424187896844299099417338845912417921627547783216907787575100825513925093889425494966826327111059070662878926051024959733907549474600219630587196001571349019045643013049104906007251089656494280465384473885117979435156236532733225179636044118248838074423611102356263592588815885296093628041077645339975138305584459680012127237104298456404766214571440786386509438308938810540966082897141384509126927636634004034351793805207392491889731233029583604957832246058620819801496817548743297102555447859789975269114829284419695405247706769936630208424298115828439575119803812074304645758085591464263116456885703834199082870259606502559853270251371360024238591646605376621161005228182351291383742587849731839573049925664892536699115123653801256128357357791881785731662048692940034377529563299242702794737771098156446660288963248244723024839513681958061683936265060789247415975234280931173718781966044223977098223482605522565243253448105699266038424904321132008082423453196233971458481357573347339245562088588715497847531439282015587193237626162401639113755859652560813727096442045327841989786896523376032410848719846970218246771863202801397693617972429698219378110386955775792615429023977625369719401586942083497203019757999963393506467492868222489385146086504599781379501328929115122571699143521142407311413098111314245066221994254395278498460234325257086036962195528057784931788154014048214012952489653333742520876850453856818696358113629835851093055668255971296486249268889354502840297161190057063187231169933315056021860440787516703937429915260655853255472133625818066515588462412982181180237779167448899873167148295882670099519643848759667892082455718104178315918656716007495076096090272094533453020554166443655392889855502556959671732826150997614701342726525057920766969818235526424010793844655300332025532182106913292516406774686809704877437794754249814163891791254848298649567925346876612087966057872060571010576556489251466269488350846697697548956280175027682179268591261779838438958705024073519095984020197857147578361674768042274965568692417313787962964487820474795317282143819937044174445792935264484271790107548299111260817736350463962676714223769554110724795139822087143852509242556383134894664635508603795888394576020372868397256365715667381058063655282055801690436943684781140017533672655083312874006626640056250996545885821833968118609178818129027860227101574610945600888175702709461704376564709772206682278964574987031105667777081083777294013323645594946401108592900900391775059230743490832395869351643797499142172619138141375343795479949342349552390424570261612109300327838125993428842883917807141191321554494824947057735879718340461222422513019146125128354615644205398901880142494924561852723504839252048254794027519674493058758539298467675986690645817981549476682713213165838497005069946208419720883545766975780917151851191255757135744851331387866500508423816661234055275287224775475611527294403879326701597747914752849601692327316601215202496427407187766714427355171031563074274354610745256980384043397237137421085654217850888323307075684427693676267435797353217340014000823535250615551345239322208068282740883148682372213777901844006495968286975806738360812941812355898159850554297696437875385783660624152223695265017697953529499963030819058812009773094621080979224830879439736110538186375434706725492641290178507732070093128369132639748855661148363349618260397317568718395028007183571423067517953731621538604435354911059767608273558488476948601120885383936315979516521081670431367946297737353906892568269207230434387721753121315325576988682174761856520898515175307574966040414674133914242283070264394305051014396015546762212765901871977799843248601328385103974595221005887807222432751776728706818899888655860688378965536856121420630039308008983459404345022205688501837540755758537214232593726444219344364722132351112247931656844013773700821709805561747663913843351558306501232327622710377145956075039939426088588842586190273225410791906762331756295394901888541058793335615812406023666662257813205623434287447867991041796686672112369981055056031126513251423306685528866826214209432578698915384366494459457269814565516386900530852970916423956868701080910623575935505073909877626142920017384197281811941912607333184775530694199707221562563277884810452545162660343705694800857696721393132550526335241002857304708813883031111067636716768783323312551830940688580866315960689609263103870706588655227929485017294588659856300172377816162039385824957250227804686444657306122427144522094198151111650828168816081229442083414022452879282689613961092743781846784478763709924153062198132664291189425611706906493853775587027361513764389727355367369210031670184606832585249975260839715869438246088751875601045308286610730128311930852128362015652213578328553524899240156196061468924943466915663175236256869229126044283115486312598470611132357219358445099875555927083011549588649437384376568107707850934261590756425662126636451427076167884013126686216017311517949634126751073408336170514973663061616328494249234802851650412669905562500680773474493054471953877756467671621345481780129117101324521273792521552966096607705231807744597655751042602515767884895873960545334334164418661552383607921028415452563790449558744217399271785401185516955176431847262878537501793021435509527995518289068891083822609061886624442498759379160473101113625987285180816095499880654219732315585894141116177835578116261320336569324659349122712668343163411815557796917194188744916362351488046502233713263848038056560573040491758651018942721003907335071998561617330171444107287298266896355475541502365927147839373741837788974407429936619815909497640570463416950488494402408799198916478291485525430520173238781644724560812096250482994906766413870596154193996869942354743620204175227155691549642665726116924774924953719702628699321035026042398793856171654414551803060639778876010803766435038627748735599080794285277540227988398976437969316329594117093130288825964877418966775993520263515026673510957295169465500625596480346612827169905745860516769416330545952441343806019065356195287171198329579207327450685413043690360752970784715772138066881042631468534085294720476956350577487582961774202078692001087549608220135667278818013128646102897203143287752557807145639514143601886625346608896471298637454012013656799828830090851457325823728637133650319416986544325423639925772638749290846152976042585046952205309656617769370863370126587592317362809105263953021594119396006847857212036095742984608036020303074988421925472685021687885821851883175016371169989897064908293184676330192419091928777535796909886311184123187681133851466902313571500875861883309748994978738297800162362226274773300398337775500831276555388426243775616828508202476876051517049642108964556155883646761156090446178730835175088435754472335171252011356834705868217123971693784686647163664328489245586709369440015080507302088698498781420157589264498048259234811360328307108612848693158925223293186809400906032430242951176381922106135081970168665311740127647939227124701083452521832241848878864071800221447695314672987963511664566195490950772829501971946863138730591826653794652979659687405021287220686912899504391593828625493367596986598375438129204615144294030236725344317267262137209146754038462236293041973257301226741895360369454312686375766837818481294344200531791876234596601521506121641344038308350685585889312566323540505732132599008960147183496370756567689122327994169936321477361842679734215799967489370682405916296598927094005536374966674482870172352611040806617657144381063909935898491029645927782549823438688368093013267051961721249236076775123938073108228469089170906903651505175088923967814459129505160752574013758254832792569877981905736724177481882945919399385255568023190938567981132281246379262465111371809974475425646489231317309866762889890057875272625424838868573581775269406194785501006858394490531438942129133556578598655305950238258422808800610706855599408197042785437743039642082396889392635638107932845327984023093463874006012203705826049380149867286480824521370627137764884222637818809038752036589348097471593352437269668759903486761631236626452647315324078710821632688048892485282240835473987249261103755712637137551469981105475538715430846962424332980613238472509583972486064695741361436628617079319838529491549598580799042820827147721561594983813322951259323700442294341334937101581976036415355441347862563535192500702349215345382262187753914100855980714881953525638073789640236665187068207483078113650041073185660241450904082996042049903976717688701217367992209723404861509594505440145642186194300668252278118664531086892840349697030623093687507829743887948765688343078398616147556646664258425903703571328181376435246394867389207411950358405743000179843287235627779122280873132769147978431037926463559857655048423603196149432573414078881078277452665405451887232299285409703770075447942412375658664449293812536386448196570317838714170568639064410980288038856087856957666668437230399038244137428368022647053605247543282694968082489552036956924737222015396939897664735315091792721479767669549941674484764667523206348707452615049180111627847768169536180162840795547057956717108159225711136760718865876659658163994060304828041283513596695855482445749036373180040661989402688101945593947661787944050575257134629279291835476239221153314995287819178373987248931790709718125506905594193253499693572299579684687002023176555199866036940798371100783815422917121870335936176214240211521331349152950231090362311067743418407554593935751260037805781870231182638610285265754108201197556077236118734177672338572336010718573930518365070115628321625377154431820964324892981178564650003990657099434920655335741578531043348255628540127319644563665317138818415642968624574044865224656893499179680952562148990892079685897392461378753425109877520263634274928132819869941999936835885876421141889411373891935465860142765238541688158134693982582467498076176241350690363541289286255246126858493523649396964402850943878133965966322129257151649861644471878706406602770659776489355965238326583921170142240595311773518520652347722346020005828761171831359049524275931848776972690471617490217990321747149530948488998425253300598369609520299800295214230988571510197208267964186796558258263285608045175060981162622480741098516007567805551260355122787067953857054268880034312337778842569672699865791596276318206179547687401237347106115104201296483233439949999710809464599619938945151151373002817223082924517203386723178598958612044759773133037720031691357220490643525657160413206253019305541403734211975056458681488155316632338418779082805063074363137185808981428295118455370797791946688900621745361749631967749417820570251325082437271067340936694622730108696119411567866661248464888656921391568154023800688008520449020208838673904910974808518034725561681478550915285539808284561205750381248007649674012638111400551569884150511603565817092997216603847940368876620813358741087829714104491311959795863102524744390758679373749142589828388755462820416280595685549813914914969669340940275709287781486741098100721876871820886135585031254599590581005617922546925160887873729787723346891505154785950193735698140679234900606941590638787166702669850427970693347674872707280425968517318513203826092010645826507574690173913646735862033277927820449795211797986189789149771739161901667824533335469062861207006700410333139095809794827090320919790902389559153407819065651460166887481300488104561774140925501564572494170079780599403384338204460503600156265311041271387707933898845996357885325534223905536355893252785914116480468617989338816839847469933993591754989425167951205321422254964075532165667862736046373661684131438171745504023335313779118578456751288367512259360286657144558437186927190738227720742343894965721349666200854186502703922868986500916509311816707644128572762393712892840070968106767781438095082253479817351405309218393473260511797853411061278717959994336941340897705740443368963463150607597759027740187460308737038813133134338934286041288468395470510588294764536953934450722817391869261171487187415937413355226965387207085727332001819430403718406048399128613211408065768377761300443618113378537507138039149958887423734359936314155586693400451857501128044300914822871243006643623753890751744779647774175828048867596515084514899611503031858632659490656371195098172807595791026558288537771028986133455587789958717852987395967626416198427053984374503670042154784588056864193549058228892374944591552472539881617036945129427842142168978502922680943444690234481520804373425255280289727561966526668904312377829419498515841814957964699085208818722400668364045214124019544002074658498125107070710625305624857791856660322911496050219216682189608746716739931381599751204260040053972439183318317136741870334034810827927271542561211162475946835459117699647470637381163199884453102266559577318836911292476907452019611085877673632583910931725241650653774066007470568429605296236239619435598891861094451885599794417306776351439218957862911051994236298308472564708339578365506934486831337256315647108942648131887820012191643244642577986445974074075134188118763750985009655232590585939059204577105312115196929379965899243652080273572567675950362565677526518058985500832842797674167487343892303614994350966188605037037113302870698353449566884264075639146373004055151031669121654437167204489295998816346566212883217535452050649163898292343914210054119185942587130199072288335033292282943682107310739819948298421049609150656792394181630807113013064060852400626211681287251922189613528293330656262440904672816991583881384183977283409365679609012681476643126133752452421670290253359559521021078687568619025276458342057598275998039481505011789803750009054104466337956976269828451760150238312765891993384590082234483514510102046890635408217609789047727783730769350621920500305328571348037623726055449922437633042215609922820700938509507491992339316859347594329631835797727311404336643724454005070629970867714253501812219110447863089246020218559965721038267851915380989513590382436048237334636077189883095119492194215268916322568109303985254493133496831219923507630469195819985473049182186409931292417602562973363046503385586570729782794582540121051483835679846598471237159318565771446600521339868975635499560354231134943216230394617265818032728410265951803894142222487988294053599126202838609502982753329525481806808700618157896669567343285353635414904722580074665473490027801863476484153858761708931960736814579301528783656485445826467619865996375708890304772370766058952302714261194281363519075125864826432633478910232958385343172708713061627365077752793199031551840640595448657272421204674709788877194290705033360611120849941837487219051198659628342583689981375489540480256617314237155442552977480022903019791408994785798407775884287173297970569023323789730806656407319267693312701571138834199753772481445137346809125811415387083261637956039959858793014343297630461809032094153734567040203195687417075392927764640886055215667223677955435458520373849912329947374586517430283414625640619739571593006746130904734393814293455475460443262465027052078002384909454567366766954654325187512380708185574621017236220971967612842184449901836092984986482312317041779790409376876192275869725064133828299124732450556828232864220547485188980247488090205162376230395733947877189865506575166586639597520873401819698835679429641679729302467052462073071061622849588813128002579023540841865367538673002066686359699392028168515966475810051739342610516807396556010424255018740812298674271902083336174563652283334314222462531665360394437719718143884180910531853385246718549484762009866519638688601085978428614719466604029176761668941222932400442330893449462223447403848226992029470288232757589840905455099745783318855871310685898849342004682382062673153724582453981581708897953245631568363831576596131034726479010785061986956151314485222068764893014914522200322758450782296205707758297371361469978923896310841689967183203298680297796900541951580309873596434271770879888363547437356091096340850731027324493477589475936025996671323273778769301804171511679942034004036868643527112665307859577319230802225299723080368960768665324950280542603450067159038673506089753837452680006994145479991279701215743606998675134019522553044819601718704887198963728988635685715167994839703891112451329567201366005367117823797911046487015404644108213947986170144218453525733083613056154251768097342469712027819124836696065284645503825913765413769649644132326918553357805398755455248538422392892368482272689117385706458361344213173707894901571423587493482882210951278983139200719253675380756937980297964231076251717840722004566417502458282432331061588656044588238415381550450373210239763188146047384035072811594953599796363395064998899477108866819042802185749666562394388643531026538386588229601567120863065066767991287239041839071176217459230109410040779452121509583961894106939415599217005587090392172577273817672075854439501952420825666744358511535692052716780310890323112025326355803936423818000096711729762262817521841759490514037530557592152398464004406670096406049982184811587540233927113180882651167236947328570657293437875158697087690607198381133437291224199999418281365839970142047166695561101971608002506534744221420035461583654612856094070518830274498523119271090686713708630110166963702355067719832719226261484452046732449978372428257022732865058783373523590579839699589367725141817017671277441794167788748433224663523309666867156102049369402607585609979958760514899756362237200471697529812514046821709155944414496027291561263624836123596736355968988325203199785975154189584366187787097752343538807421612393225764734773655145388220416090827938273146050659235908671093816767136610273731503814566614911277030915228695511011042783034896761467632415964884113645644719872612949725687642848569030542687734570859581391495217451801069336430550136607782330677049645437827814375218818686860923164171006247039797448438449070644671309109841086186776213249864374982074753030989249296960753038847193814328832080916912267510861736755908446522797569905465260779227298716276665135034734206416886629308187423434355675329922856302044412088084376864182178821097717590273448695181106784204366818304474949881493762145362344249149660598052619856161000934252522323882176219352642970276478094893884403367849399236614021634554019178303521248255253841948435003449777417203254324473825662864634353911566548051022461376611097891280733502616465610172726159149722167545111559932110691168545639065662191379985520306672536017080638151920366850993893229647898261238756888988400370318588719096423923946077964997607973818269076948197207989294271186271455125295049018495361646971053656526945537669249806208810377557689276925034248163728616904925250445070948667144464379730689972396458024318193697037888633844899781651382605253531595787705565630007853355689361692796206282054608040611597009901009880240329722968579186630839816503345468617591470791248580206881940880604601953599184754447319999824494908258763569713680775693914225052888501786424885100456395312855126757702219783626208401860686601071000005184783829791025822659123964678613144679558748879537156836611173850209080069542913237001567614702635468794177197806544815609048331907514879443818363289454379761289661114459520082137602075828062377581455630833992978529864653699922865046882141195097455298471281698908099114477961128230522056584159770598868675145823928615558564494179891890820716444807591883907369640406802122906398375868695504337545427027175585311603304728978267186263415966178641211021696669339392439571622390288728487238831376006084032692616037066844260860567079242580919458112594692852721582838977205106250191662488665965290877535193395415687705976156926548996437693537752864908682070382087877703659391147790416903379164849176823906038997947647939075272417391421253860981224909090640012676119570173359571792305498193391826000219162339650244298114168863714882684685203179448151905105609206113781575496208366791103603007626738203238731439800364321151862248393158903739493106714309942648039223663085967529337897589212836563930704415337892365004736762985945216363633024992438800248983204995244420772328130674080741774213727461016262695021697471336930884158881172236331042354211289747933066784196985093538637543384480497338944535721848607830977954593679565765472570800562703543278977746162857751889811341262003519239497873026500186366407687090036701928287955285816626667104178395478004005121166326803645203071294212238448777875057331640863379974921196064429998196327330024056511232726848303497646802237083405044653803622286704473599466218753506122691045960722838871563297594011498077981412610571134698820222444375385687312971549636244937707428735135129927239302600613057864277137963787114007266118024659707318470217038904735511826472332479776222999956653174836632667029979793462884365704125595585698236143724588080805748391191289377310593982655924161512520747972963646973540288435389083010535870916135362471444827232173888426140248978998936471026927620085184326061607887340353211406300080465159407356457608022105800931726205489809536041651899660709511391323720039280638687581645589818098018062755238245496648200674114409893365573207180731909148691345705280262037769201422955040567139183333139615207333294104897532414665667481272727233349831588838650143433780542351558059581389694459853982999961520055297481631399969594651689470836928935092636664243692644170595007638494200144680486871624322013793425879787698993304668846097173336931072562074111374170961323333876461835304290654010408297095677723525115666024165920258392193032820223536665461006789591164265318892346083286272059743156356064489500351592435449999976525881452973999670924191900750563443509090196308943182035355648223965791352477120441699336727176177954022982867530705978645620313543952740895541127137862678290381218787835438497136475460529338331393162556103561125332314456270685226889795257363805490607204317245520980935459866205678892001840299203960223821652826529450536081549529252199573520350568418309376818945014486931544001307668193411217780828146086992694210137319949335693780358357928634018754928229575203724584457697828108394438021933951044285415268903012924572484830815238497944720431624880628726673052250418464775309165305346456268680331704581901484797153382705548405361990905719975687270238153132033303520988106054220586452603016362629800663821140365098455669779888718475402713754118515045544725171215285370272367328648395288233493321658979735536745681626200030356969183593209753533423998538659359015246044876853313211513681451925923057415910060552016464596169071295267913317615423757097590373990889119743222694613603247555648262402013147001507062555009374421507772505130036759985788455474581987425832507226523827664818938961076328198735039926872760231201854843263117440302606664597574513420257998808031894985430954323287334587828308240280151305019853702834031130559773970738153726770692064025780216722789598414166063073195606922914252546893310282931373440533698455118287545136154431624598293883853071350117079819751969640570366890153260410538967057289927929180962686086172067176980086070332753603895500463906253366836877776730291333928268631985957721728643049948610161599420932166376163416154895085729816496198681509185541778040242142938567975078455174801724214127933723741373954276354282563572791167710384726396872286290974531291990129462195275421788803977094609486604444268796047191140717788656404176658836493990411196354288072615164486597758127210584797457148016204657400497753868051876794242818018988939417573165834596894930425981076620213501287590804652946128683500001050870071248932311730072041503738232552442245183140141586280557818804134393884333280692117005160065882247389346146196924589026564444927469558148769791167217715104168701675226203405184399298744869065398132720309386301512386618991695049462492344212144633380834064995736991155880069741377356943268637332446764994891373059977915545979481922360977928693633255573637178283459805203031023551904987542867216487044908379043059660857667284236286518983085248023318954392214996170259983885892684767535879937322614053601022363139014060116782775239318114920752458260421707843039549294400684620645420056575061456673151389449046453569345001359322130663712918654587677815961648126976902758428662343605981124366719630387541150356126575701493282493343875353881584288534801764177630579980136449885148069811361472182385994002445360146110916733142282919511346302176211925535118099761860490262617158837586237721941180718380815478362400149935904994988627200100392919061007275206123425459974948567226845943981456523556891410995960642482948653852923712038001859178128876304251429961378462474424808086705599746793739686377592521868619131966258086393799886169185474578017662948717845327941311624844565485191419159019584295352479363785649552839832212839045974662446492312919456734371671919933554474008876695472079374743035731578431833403459796438060176681495275568747981898596433725464519860487467935478719175514716744465021295894457293746584806694352760171655115641369026564725098479703005929063290187664290754505451850016820346633740933376740494869647945951283668255413575643161920425075712710267646267190860888263281582125561744753693193236188421204850808671329026234681112402845234181320961531372650176585364302387221816990351410609158133945706607745241132758722428200296571970575443929247640340032486322195375986874132243155143823905754547102537156091432023660626836039051260543282653041992435862065904241507217986756853508176901572498806646816713428394059562746146418774101493818245383616753990555959159813224733112076913330260661836249163684732027759723791298752842294298512763089190842971977735775601591568318321682887740423977035103506782458051903320315716934105326311470501318441886075551302371205346745355777394582322807070015078517980385569711004127798707753329336477958179387415352823534777006612663903570102151258676306481154622135946228192746314274193488455683283603063438367813242256802626667912132703791246898032513299245486749602411211256349463899513146738103150312396300487370044945627594772813782195883668697064321509952067233975756217712480261410918929883890334881840182956544414100451943229642006620982723846328471817386905910329168524551510615992396850492634800868915096638104984781342256365437532285911923971688959445485381878640176075681406294279668961233139756431523164268673179874306763642594615578234813352489747932064814497049058921147047956401091132452317341393961624929553242193051216866713035634149948236000938138833941512751617101842193175735131958734689295133881232736531400176315638487382095513337306526268280896381621204173995320206917289852504349764561700528533051239946582677550144048219476349528588076606628302301012627604833722202757623580078309218444119748436679425731953694785897685573607480008339548808378078427873578746339155084655701515425935213774748590758205917958245448445851284655491402127520506079012217064700127227291315130162094678420600432721128609825970651893043248428234530928503162998464662324737067681853923946733168798206934741198952320307837802516074431557507862587481740757667956732564346743835486974749414632787716552193873059132601687670691377417400118619014910026782597908719745540270265662323615452456419227757155255130314615898099381291615790295292637999342353944656669270948284465024111828565941843143008877652049139247945270906508286715273299592314463717906766918067945257489003300794955057093263397784551289717439052369029718858715900953173749800280263101930373419683031757352936969137012215960821765412797252341819450951357730493865685799407940943201800185808690647540711442179501583050447493788632662408803603323809462099832364879943312095092241282800171715332006775473875372222824046379307523855238676560025014419201379859899968980683279681393570838764073301649824154748598661955422952160857712887734758485301600694058901554333582636057463439707464893630268072625528258436746961831578381283107672542349880167857196202571664693157401566730997409671830933477880675002857392565959115487051568723009760017699875698686830515629633532076154632504466615701878091161808640328017044494896003858600152157492022006485993610015867088057369231807416104965522861934853286483173327977914639549923799751581953072786749164620311554992648808159699435882283241391990413014540108107843767978386947159733715840920417023878192481294482858651708569169242569655533886812068900918904788899741277190148442476420236683223069400848920310722417141837947121741704594418839320515906537820789298220447377689506228282170307248670513256950441826502787339091486664841219017489873209824274916901432415760583696808347899614125789522701419680392284383009229870946598221084726113358393734616845235536320465607089856952874738763940330990179823004496119675157616412213673888788790135895355842787782620827690968829545441431409035567009201495089103267358590000833419227847658822986215807862775502657231414674938918848446357471138457368607253422535224778559860182284230748502059024413684770488035728130393837290208659331770974426232595653611720870742792582608567106692372998287935918446750236399793175340915159800718698558983650799530831004023236486884628221381787862569965433507352048897717818328392995408874307531550213434302993792884217577851881419063985742660293896238240491510670655627517899544929774120537023741614352361610170831924849683015133760392203173545018165034733269949563158562358995961549276129936078416044125524039068331992366989991777926988399580847182163215103639556793332014157047929857637794614736190620916607227731077204417430160576415914678910198079105817103752979203444097200348104802356847803014409890706085439527611573743652900784370936174243449251227937513836573172857702017448003109131731108806189304056277688537750600212184026563295749244925608472549639063354763594362011359381410340913587184825108433707179703214931906928066015762934840210661662922809403904021314026278242463267421874379604945672402527981077448327874047124913282347361442515410323496180738916973726250488552615024100354132315712715336327766984383219116545473499491493298828817157283820738763713822186737357601148645157962519133918563456234041303913084590214587987884663219515147681005786046184609722061220315818809122242642839325883102301928083171670277266577920762127118323437300593351832697062023757229500851252231447116747273009469061085655993855876110480086914014308287433957960058091466709509956723562522296514905769802499141706457271813462931052997448715613526801609835569621802953369620127061098143100846083598796509201770797794391923123990543626337414469564790766980352709300508915507726456943350121086022205988637522523395277841657878529391902328066632169752766507925720364402664045029101387363789711522520456199805914883938880331447167968327881393279162800378977111546205650852346287948991176679303371287351948727618036076595592114836319506085633685127569624676679400848682445740212527587988635016953122290425055238619188235549357071750258252076477003095727690977011745191611289057266757999363681579158373472525125685920526648049967095687508272322673962670410806076005186177501155049373407727971581387777029453437779012526047467696322518154774672892546778804629176232425272453875738731071400412904221658226035938311514670914529052257162405369322310979916327405125377549311802305590158168561688585987651874447966361118549587338545954517378316393730018067648487080751482201054808423032792453878374333407807584753549110344639449608052013455773594726054520570483221220187934514248823858651558295727597052696347140836190248288119550770308279480837728819739839655228722661522814958602169341067184134981694906580172438860556064905242423837308643583870954885471818728409933805530665197878038152382730314572268839496981520976929893520224985685169974257425586220062766211885715368626916008545789062265703306184287719476198764333557711699381545948037278370269970655259779553338742105226805278472035793875073913369883344493906030560244945822155045443936731340375033775604267260385936565860370786287797221171891633012822481355299087149008380732155904728211108379541082630882923049905294568134767860500718276297436735790945913087769098160909103858582689283632744131891490390927422144921057826489640461575583087332841192262759997780655198396275184606866009411847785832665543027206752747000136621265352158359777570291459284121787884996720499276356009841328873531126117764970028466899957612167005223831200326363918417139022818893939883592617015893776495882305893524613094770781780016578058984049246225820482440483107494750648336863029388306895870237732531742508957768571824905420318642654111326308726146696516565000416913002129142620676564878083537181385808103015575326624462007848696905105828606329027057985788706057325013927030856472862121354183014819558940134090658489169889680164173374858588634239845634747188439573865191112969207053036229310006646190930975271625777016798486521844977679570266278613708821884580268719555977016325887156831349360922276289748131534439769848691950499094142747815940866168474191857142162013540002198303031100653685323174052434514701393607644563951120930038701771889649079704245250890729587858086806468623039433207099978052073710689225188832801508693178141006283309558974313344739494459981070526051243837123653697370556425697804399593063495992506535943643611996310059075978953396294852195102225539296949297999484891741087776340566153286078483704950525126353983045548673345930075950370452091334400840535138974028983779438194426442645192128758623641649072872656484242148994498111958967303289371529177405019308670456006236425068072796392482501776188861427127222820762600144176898479659703943526848955915381984175527958187362651255159551056907411636108344543976279052138646007916253188615871771900352428262757530068899170951636933966651065553425208087427334633916589892481278725912288563866278467600500115398342493042494092611481742747460643402989874974023073055613681618976216901140535315948935120017679055371211761614511473538811785462144584621382295057239905136087769597977837963940122172310797950132519612774191369579247794742862781530718113557689046022850115128646410901777874521566221948615926754732278053190107425190911240275215544542042334257227026482373393741413398700410272896578258227290027200976808356105727549400166677291242496908674878602223948572842031455947675430868599093016840185076189426945508997823741563132447094174387359157841681225724951089352311509416193999234902027288266631638493432874904350764158599218556557496568540464364642386385680148329333459877344487571750784658646874061609633477366950223793591136367303731797424028031086642629457826031181465286617924231606461679558785892449459436967953959245861060331168272085744839749860042677593892784698877790681088543287762290825123184270793469412782754536939414973854214477615769292405870343655971564049974373153818627802412490871419531953863725333427137082715377993695920772070609331571024657837957413423100625598571038230076816102209957492007683174623628279353306735038455769403817855330979262219778340296498565352834342478375693055808302227121966192871354526922768974215805848894599088809999768397028754867114386512081362726774257732419372043221722292207775811920264891006646835735952959790807973584976420264901750778210519030146385378919610819786902729321533069917204980172853899965405549677054014034105825521946832167853548728699069285855637592908301959400590271851813210802236321270874104109530272314292936734896647652991993270412955123786967710952044234458833834381606751077950709156792267711823397519340978328045636403338536948055162019628530921579223504602587898977461166861530401249782383729451239153512147431052110769166139877147774327474360891582639550060195252402016638166831600666144751339879963041595219801895204114310316391292928757209187991049901362043687146636597015990217547833269874953058138843136818648308757230217139475648188824305769308869767811183312857123935767791596285959991861071417083727394916971109629462638834912886233488797400041201733165565352333256074668955835527862823004863846459194637472485861292284765858232700887713989776367021054845889844402237636305411118747266333943963986870178419080190478851277651034491263135048465569459689742701579326033002570429357605488522023643148478816271519823672092152958089615104239302657773977220057090553632135063427117962542470916564591143770689370727197763148646407558807406912823859345048603878764577731731910246228106379022295242252318570384693261607080215285827688181345957550303392613280493461165043652122338418294965787114818177007124135743873186728728827965607441809374706935621680579937393381276548819365896680401839939012590605410809176186215902291777162721732487740846238263158656834822399057177536804000321851307018292360587832420238188154141449187157164754787575683608958167730841519219458972429263959073722743523474115532791979272300304980721689349344424459355355535272726382923425519370533572342328427323677235629185186051154259975553577140407618424777982018021844506977585494556003272703501115532826458897403865040280721612813950937788424960457713019404371037584692221640105796776512544053957795831164205873894532019399520919377804983644373150395844583428037156700137762640820858714536982828044767055741694122035852611670190208599903281143656584903636080330824664322854729793832095137554321398783247936189137569576713969644649376051186439936386475016706444103093886913437578699632954938107918751401824869970610394056183302624364999004060510589355080262019594768286110009944775501018963715508768929427537319240481461400906454118523250268353143349448037031905686690599410014713027585670565363047812855930957874696921887684407452078009129627170508952062102841587590164706661239973054236117232079361785890876774335292418402110212273665805031605903695293777215442025772537047622407837753134327158527027942304203413707944352004283902768277892940957764176684897246632737066596669313656269751303709297074786194564123189866477719721492379933811493032086664586943775304574740922318204083521214922661656539013426104761182842941417884889609181692538752282517590659531311379622269067933265260557062345358776061138062549688452597201368454280781876819280702092754418497702418296515212927576114953854699376762741941340585982264673124025872040023567817736396440575132165780695692232008772764608009744013969989424137607662551102328750087051267347859358808175339204394755325925302824616484373701637082981723335967664938386664437453876146707077618128985241294813443131122928715500173934155456238485023235301875016452263109307032541391017681052466555284190848904767974395882491537525898775551161575458144460458989648832983097501874382852778933324032456791422934960779690211278372981948497010712568537471252310843586270667564067733243887376208201771497507226152872361269543979365592309885076921699432707847843098137541786841796334554031157684655125445372040869804277018142111251863051685731639374048109155539166962511009294638736832023699935362419040627502282763259421792951061205980213058030619236889957935598476940958948814399158876877784510577494294974634281047861362657623933113023329981986248229594658413356068163079111389894894545960442838341414222977054507783642477528280237921393790470321403292924089768642487733241814886286992815451937880441083139910096883278148162996637235912494194480945691167022837797583144675125534937228922539876515877966959451004811088082269599743377266321167322141339608577717507871778889732385745669748835619208240996880075988638122413033120768091174586149156209863456405491098689791910357356728601210093369008566685567323247322263123254378285542774732717407133882726366631506571716661604800240893489619677042720709256569741265905389704200451243574398152090223128087425332984173129164084237485920770988905063311624891198095988882325563334656039133298656731982798751140752650901548956157592392934676280300744143359182439231532474024823758991443819422631889851709353520663724660798841564775894983363012233255644911655476174125181459384205113138325614091176498041726492539122575727680845605994715972495497771106578904522097185874860247735824579008943068851614801225139141409959788291314520230377417410249820147760278156129785203066777170320349390674866843177966747834499923086044084941999294691547862647106079838565126144595378834798648802784963374737900150790127636305066940673718062333382039285311869906292077426418909207360021983676040867011236514939663965910339264639928556381530146759304273987420989613089183013693821493172776006777617548216629104319559425683918464741126191554019239708105432853447045716101131642462781534601377224435822334472110209829724372612393477616672139806195326634151072116201917952137243626985852236922740734441025369461423118445156022944922039659148354174838384926315554721079752284477742607765090535378506117135291694396730443239624950690670301499155012294001378204480072658872870799314951832496936872705881573980455730657945882657679434595417882453206378926465269446639502579560930070296845685208993932500853120552308502887783047286882691239906473163514080334181047376671907135214166421907361703513408060081569816684684329378520232021876535140988605154737556646419309780110052495835130114751872334098741891993867092137257323186675190282345681305298567356217328401399705805682633501890933937635021691916779389466478423445067338906439089176647971046075664293696150245155117799989697712403202778264150410448111536241509437051674188672937092860991132076542345723180574911580795747559745463457836056226689340120432261112033678596303699486825877849310527924234370536630018788421675348401674779302794495754615333461734485990975132314264529633890753436101106693602556330350604738331677002921309849163622204259228907371265388886873884218739949922077418261190684753409173195362175631469893906240633248262427069724797725131665822780521412290335099735177217754166016583727596406891001846739013442665853193863500958531303242878710713658978223095962905645882067578551780160809751915476639646361298838017128021106783991439123268018635723640373429937016745683318834489066457159892613885953965629988757092942110853740500419555502055048487277194335911506904073087141363125334028735693191911666147977220476467609584703855491905686112380627551041228827238085473259919930836248815200759326237056640612532163897260524826467316450106611976948680031275207121009894938463141348894061882129765675823525191821799590164055120874799976569715991751640316676536232604549689668694584975126701586889751120645876118852337835557813008149795232206656285485075837635311628639760263899215541685291347695159101992733333307604490055239300367822153109732809997085176817129679823141691035816571820316983451401684608633018674090737390931848096329886605551852139176300004189955902930568629154259763379167309656232717814276440591525900369513996303113066632931803997407983633444478373328047799005211379099470871935806351257672650878469612144539809939023389241845137522843522563220530097898744321400343766056273136281906538959950671670849127374160331893253885385636730271966005321842729015281421735919261639563437306912547271340186127261651820682460325748675084572987295461171756525648574997217419756272926933633480595488304864000220636040173321904176285662260520889351969485000015524920106761555011723133538042382197844343434155433547221637399824427288363408939460842176631802591053766394862640605358163889168054998826549321101549519389249880674380195516513453334638480836244801708199039873447339581891861395750401333257414106393677334156529912024707512322442357914805742379018225056510991688834891728980459853952159781486940282850079220548759471629762631553451805864752787633267111661947516703741981023647181453684157705782137801178020619154898271038177437887798023687463229389469133113489487163613259485733953815733936978402138229300639270011419894310795321293180400339465950878152736244504823858761166886278827310349400274182287417273782450206613561327372746083293017664148814301836652236144375317973005516244322866413647361358303732652837962665084735529702756547283278824713813348729753509583484566632887615259191035124329002663691456394074727558180136226464170270897712152239977381108351021491383538846317982823332417083183253328986101176904511171637939523527016303107163704351647623542705878738144238520500303986032893910413677271636536011152237385344288837048513745249355742289807506064607019906726674315634366955628534565265639034601158772159303118903676219879179575459223088260284791210929694150042993127257288392795056278492316520616850727213161725486465193466836581831906257442572213879192390612783466919770302273659355857834505383561117261565995744791092237884486607599284061898437225681216614802876421943230684444752483722156786102305952623432055225961518191768675935113144028103913190400153666426838525610699628670697575295247677505446116696164542629176516168943246093861642970668694916226340679911004176559584548161881154428890875746797670616178439533186621167563110841230673055456735951605928776863436868806292401595341917621036668151270252281832188482727700139645677854964830826961974000856404748723537802853410681585159592698144442855006417319353943690012493517903350227839780293704722593571253351443136027206141628390328405829769242714323529766783024973008461914988662722370702989518145719560026254916569178623834546657693551121599354894350782329495091194559094515569177275234648040855236969349967247114217443396527810714306079003536343010985326434946490758052939968886979596619499580034115146190826334750318913759106583684964116582914503055486138865055448119661967399147767442437337749521107148736574975786222760684429682223471572140639942362642974112614200154041170751518517034772746388982652203838677535276652298946428694916433724193368816126507192620645176276613570792042605346270328617590583755604002382390217709984969139442355011102331105670322579212857442170628735063061905232584145475416083105060535369369669210411138869841486969516314896042658461098135323287186574344704206120916527899091447326338497628550865772120008029952315183236867654257735827608672122752632220891587290769865616009786723409005806819412868245507083978370919972655715873970279807182325014679317231951265085378330135032233897725253327404247856489499427199609624211709448117223411958171337400730828301059649366864990755715296541077703292776295967954742358846836676614896066996205992574066021762881135431447316844893573063193170052375447777289467404626291421079711296738537544770231503345173147697024023247720317598607628030716740650114334111939632005115821272268338360594771975874271007849309453085080623752763637958174572772008277582131167292538557177946632386202962043731338669623654253213637561166967560235015391292307761160248633833076444929342813258959694038703866333762392449793536269104110187849991941690340233412521995220327029336523985143425433241902405738115588938021110003944143414493597123871625062311339563521032505261210349445253358659158669786345587630547227168288648984474829633077546338722786212310745504176963646389599325105781353494744698239767809484941042364980359743799066317595670423924070041727865056611332358500128512837306292138521512664651124320677574414648905012783294423958430248216077030178761987614065569842060189175845523293736851621478655105588613612142266718185881679387279056796489020255795494128502306207497944105738975099535759687161965918055390732260047133720181037935255946173614233786734007990631558695154077249585380655280701675572492143106324255397042304062147245335229729633579045855946158014118008999713457854079638121021494678582174612666254512793646169254091942213097439738074082052785663732502235967856762983730598728572448422149927924123811208109422447448892326819437730030154703689272288422991181276242069109021201760576281130067922368118323978444184363185611133145374012627146628303129529787331912802006206490689136496109408223655752480668770867413149821196607778630035432791086180541907530237479680872429499087911046910264286521995945685242777866026676334246871879650368565640845184530108971906909426668043025001389182404254404866991890569520709719918304507124106980914445250591135277559775575453155930912200188682462498680395292690917789047231638269112573051651783678097517612832744395447401322513784029245974602554332374305679285068292287247860058934906059794911881477889090727242625172990402642655531389215046747211727264130776973098327192378021417263194995441989113981010747755581502949975569788162251849177966431568439060384968107824472459678642924812742275366124350597932725749167093640241750449473873004479266549058627012251643538598114463856473986191667689808552862459689585193619690194871831995006144959775985222181683782044383029851415209627260957696431796647675015220772198645675900796962746265741126892124084916601516166018928048192747567568874287439987623141704605770578685810807676474253503737526777001538910875601124449908717450941293935251652075571345286542879094926132508730548450825742634966163543279092408689618665644720398864794984063096403439161859093339041044585634418113856803577583777190520013245549763929271299925593498070047882373887117948481486399875063431268142549025570056622719759066281083600418060842251045825862937675743188373764190353466652348430214314543737346281737248830392580495240671077076903508492715901407567375293105568638053424515153473857842246194333265947031682065070840859441576603622839227604288338131491310965617691816662065400492865419410992701350942053599622383252317097146373165255209992896348405332495658100034756566542848587266556330735134583870291232483148336190358027650221211901722343168454273964930214225212417998064379925727728666185304196533151321890075500164543897065279336301956020276044190783353540767081245183390422171701895017306966995628954567397933732636876394303063330855664021190127739028828377772912577736260334877468868361076217168440157194227582178075166356818871126981392629972143131580730373976684228692846970859855282909273332810538531864041714294358104685371267011473538388352177226215505735296915374103960913253325623694830191065999132918135772922577710343535220926991608689618604862769524158587870390305710983310261251329388239585594015077991794446504308242399743364414891298724920316808293536346668096173647301467208121486669272669026013852149221844367991471592965241250370315606130400525528962429364133998432297149218191968624917183781119586071034250613148903427042096880864267616223479775838470663260067749642909719055551778307443471367069992930296503811064485885931918183524408234539699503483252441205808712498926460286814297186630675880925154130284969498626840423502562242120674129357285742320517491200961359662772780998386263319564181930497011090429420784332896091360213557572064372998481360191177047714672680454729879154959011692332398033452980229167622486868336150915541017538679961126035730929815108972590736150652782829035636730582757495959537092694513046541392052244333852466731388137985609012827460334257567496242166686144041667460228395996514852481150943582557593397181552750212773869947520476840439334786904662126229366912544094295667532934490643909783034080866137199141469081666389772127179162446133337425507991683452956242782853998024435711980537679102446346755117574658634207480129161051076120393867017181822969840299769075852399723692485307500886496186385312759547965154245225586871717241209669045222065508129719696792544621435501065041129975628662759290086280297713971362611329997223942467062529386082432127595469690440643362392491247883311804332837737761696404635800667471121274814667843606200656246087821102789210422222718226345244020001461183018669781501770063693322908876442689723794740360871686836871819443896028053863745349568018611833164509772276559511147631353490642277791788236925933965379902413812858909695270316939554749720594079265278997000688324829165004319109024050829434463135770505785686975502778990511628180825639547638394044115477764354417590812217068452270466231467865733189386135330187806230701841715291103492913337444041676763913277449118626355844669483499780865861422571745942524590262704621383827641099878306713795102303680011034586840161195068926747233212687879834003749887023988145089740978676857990806653422854823401621601021160194532712567432538550684262775768248397330357153853258463728696191794411704058644957643488858455853765393499106741332208588092790234613241254682382268810166193769867949511324608518026015735392124800092545060207730622560556925704904499541956016008702618551528080526743770339273116519485610654776170596905149772488994374810064296708155020089107297050694714716816249251614678676479774995916378393589489419251741811963587550805256906254904192797423192103897641491492715424879264666730843664099123485743753194653214569101604242275610548120362423581431222099495860719939272246166058761586769596444135349482987891728604456376971948839986799218067374016821396933060777382698085187300456705795032631460977015173893796210288353163229668177050301811542676104654725257161096287380904107879646872540663996403249086530662888637311451245996949964732687301456830987396886050664985396140544216080964792483457036207742378081727522432763317188489419366914272766921831957911992257083846800924420195012539732374896625684368186371814234218654747581672250462656287064486206394759311385061870932479805575889756104952264730267597618619813672269466874149110970462365911787568112206802945501331605212000300896600005968404070584417614617696567024012610217579444430357565412911783008375321542633903635159715343036721695166243924615974521486742303047355062797770286794171875476403971174159182178327529148033260570063144690051907282257414291764003415602055604352225512910052936766052978336080678885584597511081250756996210532169309801524934204859220073361118616005595888104450565473905781534703122239489685283061482457270038986854669425307774154679834371944996020607376584543916870486413420346587583864181474080961253169614577202602120170470424666636546525406466647372747185716703246242107719748161129339561519324734868509432685711996540365338823200965943385355881632275503839396211247824566755613235850412296300381180363636532323731747828090407988908282814409996183072161051013704845806664831217579740830868947058336712675187926036623152244175989862619724127894872605919840369176472784798363031757086516447303413127670502316492059843267523797689961391766205356669382995654042065020806625998592971242331795477569103721692040048249354806361181588533425737548477637986713296915534917924078826387646556721465526626835546729680141281860130672313263200949901039189843599268104425761869516310201640918622403039880528312105821596021960641558384184664306934886041316900725531971697787107229054491694295684034231823067049300177080277148316811400148822120848990986884995618939565451186466291364340672098426936581760036588302360676971001076666887207820124864716681244702818907653534216758299869081938437098860583619036348266408659901661270272692970984312170115509505749703896267679698567092405301401448996917624054770175910668351199473181400853698389047870414401394374825571263481763621091995249967588454694862349513877390930105713312189780525244771428855348861775610258890892039085002084045124051381466763615673226371484526667275380596603685451002763686011862411191702305026589732172453620801766282429150382656516533813943505136746826920562364830662670345213674592895570927336924671977167928568844805158895124231175706106173286343332962558194599611240453934191717734191900363276551409761405936727616988435474833786639245234239306441548043214935175020806517325909449320830501325531405757142116067049986073323052030314487790863815920926171201108269566611370284000690264041009785481406433008074586681102195915435733478072918643515940465434679067046124197101828813862817729041888251414569500988214748993347933553253486686783456571395805393500420576741787270662126045044075086099476055799831954759464577801384256050659819312346393877188399236550585589504368398902549744786029483632076253053277372958277172762302506587593996054845729754126712216428327055836800587921403744487361599239862182920741908309122382900280010434336654885851160125020945242303681186230866204763042944479098152342162701826495988748233555308402410823828933044182199821962402030208720773639930037522729456943488538414428801203241514562279657674920569111178309200775691247123924816982168532668702284983121769147596008720887756672553086961379390040016135334756151584118023484583779894398793217639803911528929465806050071223136924644804863722210346529684365525527520640596783747360221840978267564376196670149848519132044927521123793707520458846363205512964232647818627525146295498523769833325973306358093112111626680906412597255841784669550910122977695169399279690937501609344879619575098789179364724250862761885050638419755761507355661647120227890021040887508452532423625935859470221999218350609941027042193463462836970312357785868096460856368034749749360968557522258860760437142428800189766183121919080485099666926659164993257895725859126704873539572668196319041694531856003435974200428308790813033737686841208023926904477072999002076727653824094298549893664941188563395535452729991113666130506255175294514709627078715272526628184435391785561430955338065827697799509739443684831340964304581490833613228903809940523331095021410453931941630201365454679630732491978247208125751234011014310055480416383770106074237222707629254323965433689259732510919188525041111045576695160515761411219048462369504208041675320877171776032704937859337500540930815417123930809734358024160315892102914111207480550068887882171715289860003289626768850135142947123661020401048542424892151179391165238290357987643667387980051204275764833198242155707788321275136742455494023416219100632512300771826440900843268257384922310930017936297882491993166833945295664201691048611780019929307083017489409736418865315557805727631758022774465220676122568440565414310619722492971065910312617662184807057298393246652484952492120009894085044644946076520711444803996934542539684394529074067377094416043412759408789239819429400528605396357764849213958548995065071491215473818898752012507107513085337606770481785487929917921057938847121843584133398535540505547045459264417048241593363937251991160135302791003470306992371813643913805088704616092751011593404011164857699800183426047200573350029383323827556169965164035658733119568504285509731309236782131782739617626624643929498615189081206812374100656513584062961258725286855505108074565689123214084661207549905526091485950344674560659607162326268110890963628560780237923120333299156644045039317912583237192568850996503450903636422473575333018270461724928757642773959323900840698664300248016525340797821755579529070663470271033290457620212944127757704290102990970566714489166666251601825593871886630629472556950299118994738103196874973563088362870543493684843970021940208966998042729799197238122309295212355317160892717037885946547289382528811988375722607414379884547428155619544908915425871311096671254259536389615935393302713777393030631925533870679916465247185778846692673371641467292238472768487352942621562419711813009849192654052791436045840801851717644228949299757741707633151463861127715536616070983085749347538376751672292870886920869863598371880892203466339395391980355219437316300621325567091231888380724098615108619652527616834711286116405748808826271775506081915345415152373597757860501115363027848933416613077021593599064963337886943688770569990828618422564355160889349787020409374194428614968506278530005099506144277214011683323456572229687391568936348529866834616798839374843026100633761883371768823626286369698476669482066407037375220520230607327438685491547536353143654497213803583923005326651703819731293425156902116857803550686180999443904617443324337863830600251110853249111971693712083945796154492571908915069718860490761771633707188958225658241397824926007112030655595410233961489698355515348648199133134266845207043184979907238007729308285648423334581369910139391057004711209230106165299461419607763091128359359216028126074435760973395796188362559550990278347553047002757775559286917137793233173243276741890423265437766940097352457443598417335506666058277788171176783327062136999793660545728603794188926312692673868074149022161544414868459925138764769659616537320225590808545331774427633425117187601521857314559500450058732611121607001398715200817846308954676212227724956984463390712939012917706268784456330686290368280993987772317420697196716197286845318498895873101321939456557639602849354733659942112837411369761709424770856540161196183410401143420120543783656462601783340869658529640193498517456995520975943814207887769153457331288409037483448588110653902812767235896611360480751100776918624564521920286627371217134095114980459740452978664834348837361384965989794394131378161465664584015027972015994078167354636691491535869607974565895380610405567768024898225167607443657629717900128554557420066522021775887543330557887526335329914695968556919850946023151361300496501999953542375947006486622948002270488963005133818593102175271496192313007115039679905104438631246105424131087614042240406624219432090107127831094592598618218413363559222467569375722892968129746270862066351948075978782529001180615281405101943566489441353606135730540042459955526682403646546353557716056465223815601215447378175186663644527135887587657547209361637196852249519029176465073595550473418741540056539102153740426941200202693079287207635519305125587353769000785987049944718079475488269326949883418812500904775489263696365612953932987169152644889670694027933318087689019999682336752625193370580864254628797492526163241180927684582300772396133079954227391775749670271284301798478894580069077473952846992078189864144444043706389736667927487563965150335261375656625988422550283686958227603556076905364116083463187061295950268295029786071757922719529614482796001091956695459443434415392977374959647674879099252376275440727976179804423309786479488577098444334348014904399141446877313707002822968940891757562664546032753403471811192036364080649386673239129421709041072500921327493053597570473892721595583808603657130979223331302459270980947677919088253169739336740985410121570991099086181892884815524829372570212289516537570064362541384848840621535556792042287105605845803558702619627959231294260187635274297360548157345640899782269359241188799307865225953411593156266536732534262391250654346366166700105491283099683636637705051736419441012227241774102940786849944737866478723672487489365642772261477199868422920026079185936960626161709065793868861964265458083680072895616705865798922644806027687135366406331897864914409443034531515527801720193342187974973173475546098590804464374560426902342811660434311305139935121696321980934203101186056742276178717529184364260485912434312224188026366100467809750670738401965521860756867390376897457094749636088780935966030316953703360621397848441707910189452897852331340166834315513163616082646211125054835069663931857981665436552557132031075166756501834767434447582495415992300766773682387268170094573855596678117993317847473841358138755681145097447504008145071376768584337217974931317353022060950232082745346010188002447526303805705270404953522234676109219001763397486971645934351059956173913992471518684165329344895306835032953958013201987401038663975018200479039121138155646735174633787955549599140787022519188403515551421732575351798226119351465080589738899469093236884645042123408568407148298038845564555839900206700449985226379953209532280691947766799142379444780595450666175774746426986259906059498168330488990894537656330055263888156001493347342328626374455466784527181562738266613539680390512254093118306110025522031969579318926890674734542001197466344352640445974318530428137794285291449300224909572638531564933829851044966942519298310288880019289157355012953362566138539321694053164774496570363950275889612552924894279320884103237116125302207137316445476605951769329040025156662931316883700372242039772318441902078339861566732084832725142528801191179276115922814264327766594972089265937479184517755666032410260534389134372703970243113889544777684420276790925426739926229290944009422181896341816271121958080713312906366964077007091754976871228831975532927943968143000290026113772392023276117489755236117814473651298987540805088975235845243721527194804762591169318485419139820943139669013146554355154225705559299712731821932464955239743823372260969103214935741227530370829952083615799293476016431116613598332381189484074479387227894789432167233810992861395054882331471334323142491167191825408328623260255489490843565750178119076936944037368842705491234049143807349231546750428113889889340758650168947790578894783651647351827318911302768425182424581854636445058807796462518102501770677834904662717802720606878779348636156704615941556771142258068786155737350532961073309058845473831977037193185083221551038309606062799102845947907567262318728041894127268300829635579859193709093580551329155084183067395377396466267271666379311300375512564886535317783505047467178339263409911702132140445679325977470179347699632209137216064583161183474168462958095534496046942631838161660774571813633307212435326375224525549048942171871691859668489971293253893236213428310293841767571535207875836624090287401067233990875581957265387382467525697371953069576252787093738564789485233274325042907842824479870542486249591870785032935326073183448472843948925995479346919938258325267729458779350003356970006242172664034477008485973033734575819641017930917985064648577538109495512375204333083684708396749326524116299186953593397951359704761749671066565968374628425759193132331170434744448076872253804520665607093775801505005239982756888287450711566319666065905698363437900297852924907708320264603677257601935253755692376476892724367336521362935437554064313894326847558228015900709807019987291779117943069066565768699933719928670983168594135093748151074847595941776461815220212366894735219015982762615131458584502011184848649566117130762751357009215094025909801413762906151919159934641706346989081242740102292383623154651853497428198744933692540005525047170036005754466704181386012644221247866260699181346785669320324195260738843806832774901213240597078343940935339805636894417895528367015008334042116144912243473908929175602623234123271364039827572865714514500027794145354924949450274711671595162916039128717565777359080028116994483356539590786225922191902575329454842623417524923191110444681404325548144284256047354822140844230425446726820688394274543542712925511116757464782289582830898435907251591883473429949578305383817937269751447265715967601276091983574448252024347477856071619557334971601797393364671540756240854056279851618894246633304862649342808951025209244864467150604668532560628324041133287015846413362427478524268658903599004290444560415372935300426100057294045413488671994002400205922097221277018513237259500419869393545460238923810309456247860488426900261330141443545443889418063152624533620247089569750446237519530348262981872847745083534868033909848616510116644248637162056083745725263095520863702295312480974289326571932526231962677851640611801794536003343625318637327434481554627288431127050236788343634813824197048505568771701366538961701156818239977868997602311079063797673494606582197668791778041426679871901836669669504474047141848546620599056925768022931420778686508967261368953523766612549541680048292526418525000744161088766565993092447705872899950207006573118590682796385379109449713135072312041710243011481529205044238948208734170570575511009063294600101975058078248879382289018218758276809790972122998379421657864491994714378561347539709996160376502657992163094875075142964145126903620271038897434793369147387164353999610010366801241709739585258523322482538979764722847360718539033735611638971120533438367135023030397673339402543409270208595659957606695562929904347092706499805062736167148458375537624657008475798869307456840454202504274592661629707784122233197622201093041796384258606368868142720535818295369554848281405928146521076376238197722900117524449701600327688169667201207595719878916166273829084321832759192241706842240608028701591876390300563859733987345925222342768410328672707498635261106438807974095355671716928560255400638779251642578994438180245519581849858270721799119566445523844763342919980650543752533774398101931021738471380764601339310351259835955711528360212974753639029371830006419880463790921159169561003157877266777930805424250320941939677856719098879610807475069510951521105410431118991926456343511700754783158207718007266832389054386352068657523099358159098848775160112730407492215598619885838138325792566640941805281420575980485133710058784013612260360803758441141801866261521548629817966407504915261728684980453509984995565838639319778411000433595803096370730741361004653905868109431792024204254898740363183047920925427424105181001892277665281586944151230475765072982117383415316451116561970650776164054939100828421528395518208625274348116949768131286511781086086282948109192899269138001608616473038937427313627554935269715363723251609953198670359149907568950691902987728005289555987255018498717171063429794416000805294820839481962509969472587659668952514928498023115234978009332188244634178886112360871042504260308206410977499059869934525534381350286822248964397691645176772995322142801620888572806755192246396646109181105223061743360039807861099838551837710081666136236050775246648407152934164954476066299647595252126322026695473343750332844468023824520535689389928661507950393964632767573646242813641214519161506818732185089883421876891581565113141445592408100151961777437266025397387885054219148008651314455748255996345023241731987558614206563720016745521682800033075998746542171554732877148921213870437381058780680918570799575292682564461493432593719515138686918546918743280441544763131625688151486080832345133629507499891318114513482320404413533643367027151251531666955732399167315235731409984685402686063391176015887830840047245903843493573125001391312733863591968162762406467793974944930163860818259996959817998527896403327090729809966920971218968053217055363567247755063216291117042582183895584314665100524295841766972184098440875132022326001847584127266955779587476456843402184550562779512568581601017868906447336995300900929029603664354223360919682453998876991425309331440676979070788334064726995923172071155621655646658601696713802246964410726551469716818757057224572747734090284555587641560841784412093295115123100190142351418890544055881528183142945155484778569592973928776610402594133427094476813743032017199485659134880159228427599681607467624394526728449815647878404116734573686366132518356610473729865845500444442124298562122641061380276689122102176097473955909069755517830021983173018629053407199861052506343602603893348472072493805093175336052489087098189514238024953260982871276038473285113887629158013607310256078542232150256183582425025599197486489486085866213398323240379429601138637806732742444422130056744388353234819881965065721805407555781026442962197456727732483277077046687871817087980408597756693105505030740324418490131340999075150991793966331266057281735950622615586234759499693681349152508942617859473262018444978994065522335800114611510741266673174458844327145795118211033945107637413704476736298162116475712963804147899081307278709440637802342570357649852690956393483492688159917096859071753827535503033856233185564256880888425857237043845832427692880884352838332691416896418092295999854107926490936818137930877418554202599726399016963729418328647759550200602732850205858100361056901313446278458891411175262888691012815090129197437725195391540345141399571360440241142974888616100299373614722269012858590943081687942648497289304632914751918621957978099285124103095669247279741858354910785263436638406884253177410652940620612118769221783927195941108115358670648334127969871986230937521047886065486274041476661812540473119407866596972745154427934802523247225561224780800865190721947732627097226878165179306307660334006068200358653546067025580107259886709530762666726416288828471745937639922456127407364916206209844506739409730580800782913396064251805223229589470752605610897742077782961427540830472236581194894481417561105790411297823387679931068412506415616387074970921867550856799686612874864339120097027979470441109780679294021248133971358857009782104427351228955791227039113358556188360078172692159286885421309492218881579606494415256618504976409345272986095331950203695484006025491739587390316996403555174449030175561839553696270327965598209887154870030321265648405727193781588540454423261202310992585690366034007483732848988599721137886184915168081298072524987779447296291164131168968501476297205995422125406108946685919842963362365239861200110371207542207769522034404585378724849709664621845289120307717036294122850475640000632320095414498413252294811883780774155064071272514458029614066539302053105302771416361778968376632169560803146006931859453321039541275566700323023524608393539442993112698758403631926812671793366143983295268229908746708696588476196755773796666111863174442112095088658990865830326907895427143762888782840648014725987749822323304045024539312631154634560965617282981083696041012523904246005910731619302642863227618443568456165273772004257999347659172905456566273622322594121818011476944736533100445096040192666450891529770573665823995968194517233273892799309636462155712113613468708950574155464609836402245811487113722833112726846478413713017858718319101857075320362636721337070842053633066978924666545056447844173811817367231696863360517280983868365938012196220130606893026880612150156680059844192045467358330434878098348312976475483022701214439077618473895652398632473627583135661132474877955829231030199780055568705718944308922678355126729739484606602187810045571291147147315095432344778571998103134159706116035028084292215642193670516047690414851704105484750065463595992675217445398219443790242267400251711017187551122504041447412848415732017115423282179990830389082240307225546928719537408335061725327363120155321662578292483692222506231242936663549979084707272608135596352477508860243951685212996151347050670168138751371818056549684015356023809482809789762916009382534077979770934073645267333127050635578782564245309038748762749942069558601383176833287645671919069483966379197262629756767219196003409701118521269543998394053221960557078995866455821313014775281167999052287836776195376845176929307038467033456712672918954992698691227943339478191470565126175091022014173910803434381794494096265711103442368040383556430802209864096902897339137288891177012032408913558343569276130016436590620242635424591724583050490193888028884759121072574601773597657255413232252293023368215509796940877745862909348724055668297201356055173271377912553271673001603691705850116693621336596733737160271996384833980608863921414089951715924185246949017121756779750926852715806952247859927242772842440710389560030637769621834720473542022227409231977974775945168375039567584281544471880509758311045788465312960191078736998097668730260678313571855139926023069293829110152533933117533624476981612578837185014297197635894257964691416105992136642641670445320761761979891796395388524868106030368445911687694466549116567892441270192914901148840121161516476152630128006916255557512880624022291503467730098211515514415094019494345631189928974912814982704651550932638536009536969733375080413500956569414296396192956071259085817242202975180039416269848588912354076464246480531973794573693252795865127669068828516345466719459591597616833475755650529540242807921596178333396682394415026665974993553732876152948330299994760438493966253777415280942024163004598461115192016171320159694761172889930436636686520281424737614605294923742451851200772038578515742761625231097155993910944712771172557304446048742997048737692851052290168986597692892222752039754681816545065037407884608113057436031331270361405524193949879183575241325374811674458610221077910448043092213330866307486333323819213864088849694523639846516248539985936021334738815981215252118240485627001161968633870288611195186737475711829501332336822295641740201769230085418227269720005326433233975739842835271819642906339193487384972286596473362728635343618734991506092203436966589841726004622781549335039562014125697144166877023983025346706017858376181048692135177571804193588436063367967374229337551647388580956731565967146036256536534169124567215623506920461934745932590566828327990741496167643659020305883465016950846700943510046317153973992447531304225580154447184078375921196609532630446486323186685512726398788209817009531974548364181230700653669477726753450349119655408109327912789130112286763527158866393365732957053651956050083189994453889131239416391358420828655585146982858605654001611342873951466186719405417765965451301169384176845109479222915857208423292277412871931078575080226305850134277649349534579133563959603494337756795978889500275999945755353193307878578333582960780420953350274575394685115444806279603754166791691386617534472577868532751950015670301660974631330012690898072896844144350863089020800350832199781895293899469450037469744158062514858749913900877863784260548499604896991338728368660621648407403228418422197914192097185954309398011171915007037738200122808902258351665951727181896695229485021933956280140088236606677277089838803348951931689571417898429150793671771768656833369140011669553921202848769183756844623043189738951199270545491801975434852155970188638517235214448200843359873200037603685484869457505388477532222155220277908587566706899687566566523853481749391473373791710069349409256048521722828269121855152118883887969527880007066981530902019711577109879191683039258067258593125513079196277647507184283034643759346699153336199364217391670281996673188533872888979271057647102398738853873029123953440840570632721425052743111949023729995547385085642901000710878479468858020452151929254075935379487848692533782580750867870023952782259281216290006650838588068483174379839371225048226000620352734179461934790713410184376072209477672928715671139791172569971002020956098516718277892849238188450349350610122747525527253220171290658569006376302874122562201918223179357038210070669411417274704763697374820979778970218676121156846596243426115179904748820192796291741972734249297186487832302049690498734932192707869906230475638734901110503937406245858948550745291840799242169735022394788049466959662236835124623531200735412753030920289432237282866185342746632242821045289016214354332061582085054195546348077161832047169929317237317464937706207977439612938250783415738184529980855882675333538360280665765167454666202246714614451028691900246771167464852384559167766568471742961428569086368785382196331683564456080370728179070261773042490683577012521361991100903017136030987649724317024731473218056538185648559937753109020293336336227178232922302700565371915104226411848225724310124226458118377387637006118368163197908630785916590425769938702312833573027215438424788842272497404874990601344752044077178211232794110652435670289346584617761619641226340490722919505241019707055399342556899253465237687922970073707794620330732903526720315288553581838654118541326730992964450635328497888996108491215112616683771409453418856039128805864333423912698520505790173344174877857993066908879873163817148480502170542852448887408221104759884882635283952905719461825873289580850723818606986516730930928139374475669942025625390915956639608333487556561597339313767038002970602483549012341878607316484379056026573314341971381785479337942873266903910583435820140813145272210154958192398728174420462359249721281092018722909985408273822152693695007913763970343304376542227806861748419228526061095591994727360912357101782936071581313895959009033432676330894954085868997345770292921520821454716574774370361959460469754158863632743151484167358010711688250402031779444795675812575705295859876766611767969766719799881029795594083198743853385778575762098422874286933689742170048951602249255904359946001923225349386254606246182197575116833603685798954475570749773614214132761086947068764463568252556899665331279221694075456853556117648796917904071979061661706874424999542399499457847239873687941476153801670759633220941282860360734769448684969815472434414949129312964274987038335759929804796232896431257994772511024715617680525150450369074513377301876633910735238244662000298282704423013690844158784307465695212668690220745944695554223231895066685835016965150236925324318475542937241114878166563727998538390697322078994683692550275940477448460039075419425195546299741553388574445522466261762123880921945283707630521452147507846223387925979492635024785808203355535653757776534250894065821447447442325364014361715890911579544083191119324780768462113324865226981377781881772111178419866119616233450950436537938897320846057325734385184704250960016238739407994948221057119415174103324256282630411543592218888720861191945992783667649575219630128029032774463508449018618781466691116210970520434842098240789092508787245375899181324986110808992066506536552786647102808067848096154419735475351499614918299386585891027358184576342493836630488850908135989570531095755751598613278017013856654469905565704567901664193604899971064563309241218812031647622444946903655131701550656574306360869051411786527686094170800080288995634400226499426284217560197893152106128596893927323868755906746201747432291422214634926104985656227567615714613054904017374394248984841204936763418179341118127529471251748366312823906052917560971608601463643983282102674621137142944580811157513060073939882689624803784280964625336661311126143411099542991787940884837099271733875812902115194815905016105794982170035073585800999418791724315997200462486359747114025506869043584714571448852192900853944374159912361938717271951734079805796081715031672623203855338088247485000444525184025207475907381498550358646180007356969878446029367557568468192011056571573703558609365888162666414975493328250027747585106367074707705104195867784640178466511127146319153801314093895413184653159894701963017707088559784479682216239557334320695672113812693478648584618313373552322231127942173220504752652232398929828686661863683860095790561362888866251978370423865696846527841735217497704993373887310004251770570838695427455329415648526691982477890282547335008814225966791249607677096113261161556034701731683255461094774056236423251683741106351190829776786697757677314643050581118532199476014371372398505656344676461462949338281533111067997832586955487114423193657102606501867956370352866867977715350278983224113767590376036707970986545828077927700472217993246710550183263286815129252661120967012222366615191960670431555513554790146093948796729941484730744618978031455382499634691278417570569352063752688207101209164260568207152869471815847218914723922830138355902299125507137719887311696152880292499481303292468259552540875775385086851479189893089731252411057000032937049461180015786224504542476299343885889117387633705593793138120395829997951594210994722807965241111524400080415922097965290642832313853197835801353202803051798451355556215666757844679712785637706280342407532189095066706518354048882806270385802591452956108630165664560131783586690963575760290684274602564678908136880207151663967859369008283544518328275776854014668776973612503481434642882588874000820103956938473975320469887470787245544580996555622351828122147469917103295921453011516031324998258433684813918419262074674063807931698106372491462163096849452414317426703740045963556924640873489317497073749265594367458993374155259878394037208164682725932178613736811744873693294238677754626919096421598949429918901220751578228159072956987577275499431637004284585286173741249409967823988165725570182056655357132234558589535863127486150299250282261993002830673668571239224276458163239239384010651638475578785997784021586604941593271292160914794490838619985542763586714486171424819252910970352194063290679594993917829849020502330072180739504037969629036756676599948067242253208920498338035203224605317609617481416263023006711584344739909661260960027143642466280521040699762214919000597774671299673774360149673643182498542332701054717310578775398352588204953661000756948285417218437817637979409679948774993743832863577711178566534027084508328585780153005720378247955025544830085803733301490493486500522108104395576227358562953374676326485533661666362064520570538915134704698257846883150521054248959849727303894604384701418510386865198906963458498266583990637684987138695761138871591212564314736486125560238995956733463727911620538436165863206070442207289588805001590574309997278301278851410724618131757308883251977061045142124428865386663658248622074604354644364726833706386194880679908179787504704603816717091996532756713722448050000347637862756034494610510148076549376633228188179006361254105154925439732443190632143606749862330291869496598687979635452293549132930573457112139657117773424074566064759502643354002878676243555636916551421125843916629839827441736336048010731286492553717182421172089401939556979275525164343013729830985579260046087126668981021528918303360019060566933335621196855810974349679654301724981811983105203703901705219850075476421020063383336478876923265990605516002551556242810381624880510485645942343026401665700679863485628738344144419776328410047310037373355332727509543249277587205088975965137631780710229116747755427350491481202711652047930205651869876525029303865067753644726668504501843373152763737994972317617420288975084169346843053686175424274537727980449087398496628615881208810581404182946534787489777637646027128634731377092194873349906159226233223950073664959660743190886003203080193238173259184475895948961713774523623215780750808989763176205476383625106430032661397194313079601406875914327893256225082630748087259076618220241943762884253952345498718541586899667533572257506806735093641729854887633038100033456493622218287634271042541829073748555970505490958240808187336178792135482589258589501447595794524962601624951075413778239592302807127025241012552055873598356964752787016666094452853077796261075514348048605030996714454178423031420186785379985931645898055600139617994915444026296830597268727037160441189017553192670509671479926775369843999044524659030463090739803022689162669429393715990279739151751670639095791287199883327647265844041630804962563453319240759255741672098862148961997349116012950327570441930365751255890297017704517576564320066160420525025173892386226255089320702212338385861230880382052361549781188598879840025384521748917650213664994503866772988820904638160317415956507632727080680834120801566492844202820909326974960345727142865441539065321550534481243234981320946513781128181798346818740688126247264730409819463289544914404868573136059608133698267406654002100686058556152959592119483291134304618274169148288705850399216738495024379895767550212442979251720335037205981304656607254912188004758464823927845263591964700229838568585820501142270180983373846047988343547375108237762499369325013910804232593930996381898241638777412907733507427981386800111839246533627524861330059733841901472494899671612614971696342743704973818095030740306837405346750795084503458211760661257512343813229864130480083706610179713010834625470066022488427784229822889037857337187572770380949734378065917913134191539240843860469194796506141303045438641406797687363649451956634146149640356768277827834032527790178978668334751324734466806984984247494504956038696589850383500866058617139290274618515469738307704059941765472163917076722413755284912746086841913687975132766734065863783244885968166407950985311629206472873869739120932849130393046280253790539323541594726589720114280766138612891372728954946920426802212501011851574165812777430136776361039512301814268069915865799826644920480383620826814557182814465891427017345274662780276840807969599002748217821539811540353913872939367873609429346717096793129261039002821956878468006668634231430707617199107926048140867697398592051964619214970467277303630911831343697230210914462276374802052605503535877815592339671923077670052218706828588099406322476840767692103903074214789499876690733740469941520847085561794186980994929698256199529045549536571835342948911286341703500087173324071194207535292237745685149992941006533043029346337569046061862985900047920299622409149696158195748124703167044905611600234550540228744841348230064858569747574192234792532270061710497062739061385962175364248292794836109636743764621142430295408298867717890303582279177350003561391462650385193175897686164481410545404852614214939873409464032237633312230489102121860911688993385481652637221559707660040630662668441723377586520385770453330269533038874828334151947255549580994082217855979278333536249884489940550715644396426424326566760747442352377670775947008858387900265900182151182085493325235774937197396456333412720405756563928636662303734341951944688649012361565299552438416808654891061910493132912517621456261981437764485051241635352116507246613562881300022026230895934192925776016299493720650832455635941491981657873566040912517912015147724309626982506828241336254945739450232406862684985257561208831174759959178961598764262462692959603670159390894209775170976011411515298642534898655815592690385246353430823942371925460831288698507578335292396202142224785967676880642456017024377298134165908771874340648576742759928842597975006209137670378921825176160636177635919225491338457055777274206555644965316368699795174276422765214001088830084325765623447259910856076608528545432922998855888498748181488475664159039550312073497637248879840709464525289664208016925725475062817599351419258897070666645673071043553773915703876278597434418937461107667414223969096552486235391833855306051089965022368591196686865033741833474441792809670550008939578741657432877036459007732762152030057391075479433463679584831022963309167505533652355335183843618721783329475089287816447406945557595435852621706825701642393424682641164617228852509087697510224656700048205845412159069861663648140257524671928519569883927890024271801844487593230982227098950525643821739750319985827341268957441855804800248821131693734445929473948982829897945751133492222008000442793636171431603710170425172214170731208540654010066566841686793818976530818348274148387620975442491725168936902094201994437437801346706172716887734913240893508624738337470178458170077249132488982750763275991145393852242348889995651382711177000335836570741786695095224336490198886926541709880588053126787407867917821591000378334088425239187947089541103180983163771282172718869693359870741702526284315316236701711214607158860005660553067093572818536941030836313465887091499825450052640699801772254740158635561652399552302402821970870897486223046084583268478219183909959431014705726472944643686023066201479386338854104784103100565366065278860601998993781454062371471127279414423852406455254661549885391496257608729503208518328440694322748238193378582352597273751482353648865487966325351366982674665604198198171562090923252733389325004729838750198987581690858230874241891507742085319193269723082459629435460113334558839816591277248325045257278465994869141413231776271054076250829087403948692105198958249843853708688188897415371576306056549862289044935818834083410795773528546520473879233124601888604847532235397575328527081823258328456283798105696002760896759985991171924542343330904651059293130471065689363780971025879196716631256633696678524995205952930608514885394892973102434397443676169724660209772326528561730147434221655750572967214350755930484877128957021245295455889874703910106204569344636637014023757125594389986525788561376131087697582615064785247715884010268964069376327202369683745730688802171700264107534846555334255255697248379108316264087097859846963903168624097584977933758312540199746288692758961117065167082430670633474994350430516394178660282618320971691020562074053829774613140616495663379112560505819599227487173220226487634586501338765758464518425133583448504441587463540931034133088881644500683270452855743741311036137244107478249540669487690357061137139047902811572138976097718869001283318267086065686897486839166902062797622864297281748182898876604759020532478862097126508672921694247507448052957005268230778411949482636357613973981587120352796174412961370878251789324443301195340173317462530234677533438787243668385665782537914370918428858917173016826893228675003927108221701088897901170308866326039375359112115536785021763106337096269453995334597002501936454952901222631678197171202110708828192682853794905013136155488958213187223132359432208845033613164465638210572723299039317299303684025300776035390911056604039752412038234572398772013878664006214823810889138184514139203282519292837947735087014329341571426984515634225057780824050173033550629323010901467609123571422755928081731099831702868435601746798586045006149476495205189219642748048001005866690962569466749020307025441199787436997912616884511158102819962478421266036628381163517226630255481709422751206210632317469081012719557939512057731155556866959282340571104109974973576090686164070771188538229142614301997598492729566820617390131811534211067749768856412336758739726221601999338667224333138220480326526638530008133534067195225786856641854647181614804690026845078308882387781510650491786310107952481465498049569881834513420310327230596372902806516357477817804151171447546362930124251655907239935031941070473791689631876037514966032755550189735899372148164142909346087336499451188996781488737123224527517741759380843221446793047645248504304685861382627019113535360799650128226518878045665375305944884972480609143332990925132036033090876408687208532594692482242603386513614434791844822190367814790912933648466547287323282167928081639200520585340211167929695489760809574741149849687310556240696115001353951877784872888443753986790295374246059419138004582337802458521850566151315952358225058372497851902937429724305096124838060939543548763837985235744763698982250384981669630270409695563074235900830141378708661690040924725417031887418576292485594878009115859361478796258368840155238310053522600808878456340389070012591757257970004969903095950476708764354990175426885277628784786120985612797059547692997879188831999784915043864160006728059692337656056635951718920589130344697120887913975317621258196912674888929653549054495903655228476162548935094819461769561385540527615066311258056453457163432968631730387544237475819610403148885140714020830704971324914095809512367280840780133847241834802823415019073936487210636928065780011448802631340452966419681506752027848295534156224712607680193682906675794126599767463392518320919365471692625793492101084086197337994274648251358228378027761766164961608866029223692075950289972406579776932785725390252708531497733953778016089962444321463853679856773827712271294849870472098326242173834023932058563378130117815528331032869465959453343941516933577388234077331665866307236377962032571943006825603905870890328849918937970520076480000633380202258585359388338469585427374541887802487898631274609759810094747993203558154035326782085152033370016833053653489397275134633630392831257422910256303277084685266633099473465693381359332124004679555123323745280269078437793293568803323575472320984623385097414058888543915322333196129960623092656842806976436605708698844742395344956401454524813046770808784896268529726922552036553241421186057123361791858560182878507115394041114408897763287793991182451612553987360583068216052836833553838579520350665580000061749356838846036692825125616081789741061105415192932299863315749264083184761078369119657128992349125855452598895729901460640842532218408794587368927201933018324532494106249054733740268926535101017441094750585634292027058153470551680765251530080837689071619518558196325665120218390562977336739872465585436055463870952006308787143205387580063426027450934560975704943181416183288270931251872394970205181760668819536290074652297090095246339430986807416831584893635702617482937889213147123653983448975555921697803556345995449847536294525442046484080627692662873351314815934786689358550387709994814333478395509047166701782113571092055114220590200045348143953252758622613904979655552539508726641849264277655596267870830451582461431259520430795202699329175993857476757682673871095424880631437133882888220321219525651842331432482017077192431645524206873251953284487873867608843336106845670667940618507168333600144235933396901741871694313514811677790357523078181377514056401905203515375371241262816713824337888599657297101380454538124795693863391883560792754881792989978737446027956260606879856208457443465355522423999642148338923436400567938242780959348007402376862433873170771493817932481122320291080425687334838494349833342679736948379652950037552809608493300346601481753156335502698113704364674492344270179596939135079308534900877660764023719240465051307496063567670085337433668945955162061251426406336530069545284004193776633043062374231017527287255218280778220180922695071298852991683964813617373771569411985545063712412714799335146242774921599906721651479002394857006088219574067686924879444938182701075001013089005387072951313054206689195569334264422669315217142800851015384980090595092389334859705058873595444413104326463955603884221320212732719790790344587931230362226598422678567172506010696656552259161837147325797406695504076834196798142472172994542552470219492397035141989330504204387615372049835246722119937298148438106867354881085101181609645944356878834876809488345851149415771648361960946075564246211504383037054811346518004017791592439228662045861445972726085597608376191683672034732562131060435924754239314795091687446563542232987193373988654842363453562689334055592538053535703263102482978536870763644790612324802699765458745731406816835432878779174630131698539433091483805925986690415897529106812504990587812438919607007983877784353408166988127311678201850929224129367503671886635200907978399106921567782899861131828326387501833672025244665648694221596557828984804303500283244490387905980590337445540416772851314565100800010317088225185771941981242657968361221631112421368406067629077532846317544613607470830424159045257544314765555187869442380976618903930989207251758822687974316562294499544447753718165012275818675419337449000544764168922717768569488035119905244070296436576837778482925157505952695439239378566974872472031867185247817058353932468010804004605913214674808282992852286793938296333051871552261691493976997549635684601576062713476541109418455982804718428306189545988290623697644522045100778253943517443673420497569416468124927157979037103274756022036961169988949873474999741735974861725951561386403445562788194773060233694211917029847538850222125333040857877988786785289250136638276073872579807085896600633424848161636343034548872626453918446999652587790474375980078973924314429180936022852538071221538228026426892944539113940838141183598099195234085236764592667974350330631740293721464064928652713172401012994414681309708764635678715479937830577249471196981516596262917149984077182510488406349357719814493737993750104318995533230596863883431136289013085210728894902663633211064455397079533470968054054111930861488890985513359527412175090109247140049065051039067741013409395698799425461864974337119424469811968722825798608696672900707971450332738317498630294142250805410281929786684589793693553185824105697132937124301628846669578362126805554802452161834263672405278496026931711899883484048875313342793841062891719526543693318137741773458008376467633007895040502288960521332164462127311846812172960174487440254023792995465163302095008819614817148039457613598516896138945700448400804199734679855593324001969518498701395162324006673080207760044483506980324624470677099568134504604830945864567693268038885708737827119885646781671756449384854949083916136731047650541216480189928414976098955590430511849275557553151187906610452865287162379626239103691144752987418506372365010106662494436518177795360326565527200474712782177210948468905128113565683155997469390409794382661411694320211648850727829129198999603391315618827069731608211046375698875426472205573191102827213630449191946987732034810413517403151430179374109165133424193846163939383927765172988633932496042863572497372080507630216155076911220497495782652108212493444086289296365969556132555856127790049879198007473970745763856370027668216593364348540601957935168117183180207864856665759020097227430136326440741848319954755212961375297548712785980107657842542872398715379690994081161826097342436514556973601949924102493778031526204382819866533116466785151788618983370693578627609715180976003800533588193876224671462238332452731058105128277643062516984662941027382375143128714478467432473485439071205910362142110219655917664367834782275399723138882469265746741116248794382762114609156314993438486661600624995826063289110939811077690067402171676898840699663973493809275492402324619003728371160475754525591398287186255604984125231303477458271506934303286023287855281895527600717198278431464051114270699994114285087808061892129088625367282909935541270069990890745652779233907472105136866302387040747920697321492339069757314345657051118188406127076557108022830096079144341312645875324544707098129028363103232722529478558146253758589346123098003608524943765709478883006502230957703913425596347507162384811796621214350829682176408935044017845741691126785336284971126603322103393720386337532235800782464266996372405589337805670856109631733079742372290355952683214098623552036368734150840396101005865704594470837184571212240167301597842790882679950554199709039166815689320862361900283983690005592200593764993663514904001541594227891035358666913679292239840892291401898712895426674254052828048457820804486332205420463228600990825646650536113554064769710152346161489061297856691672926017200552061472459533788462021638771892668487775343297743565246801672771775419049574668572464037916735004208125031122447404858304017391593084982833658359652969227264312988316194360116426505476424598582047407090853451127086437597973019154018687374699752471223958562184252460801775176199215267549684715701424065271553155456444926085010886402221477263610742222588190703641767476962125202449600431108628052906507498467456380435139902441286071030188053207268942036882792656740225028842696078160081128911185908174052779156274455347361924538654828495899775985528543482411383392854394755154168317674736601253597343415805753840219109587848193850327457335770329021193552254816556704425655781795752616123154478645641553944270111213415877541210760242714205081881944370930273123785824331126617726881410862815746415028395826060988984094219350366529716222152618036777941080584536623359559613666570367037478332088956416383809008305650741414175228699770401589131538480252793113696778595723832987425425518530895824406484186286554418105735939689033554996081976676694758430199890709630724797775821733856836605858840606546277953583870093515875522302758941186543021495975488368818108587957036162310089785105490410161301983868270728047539869067027136214098549565457024298882974046180456942347394988983773142114881164730271497262904595406328058270817317219676261975914649313688937712453094500490910299199385522473347713480731960298751010742408022434793636370693548431323502885772627397398433848730122158301220356006950708801615838624076427566995988928343709387063201137155161925819401983452496480271917772470739084659184336798348991751980856958969997233335207776156279984619814520429981453412948111646075166184356119119052511493986761522406572557247308375723086825591249659470434474267881260259568057338134980560538534443790766082235215099879302381250873682899770839401335561469741774988170523559800323852947693194839326797244558988758427588240756452954205539549947391333075341681227487248538377514530925235197571184062189010965714062757011199327072491144240510898907773605212563333304941553074176303010467333979579494901991559769998126526152277217231221990658738618145328295534392476504581220723950050080341660348894407844236154527596963803324187192306842319985644067270905553844696296112106938030782679834531497473221411667657423455147010387597442331724433084562055523288438073561606588827032243883412157442154676355398189917534499622203070942341536795333578848915546792793039271326764960938964690364668740360854894412058734259042974311938234044065517319917947923798003479004323089303721282192133320408021756126928183774026702014241816368951328070100563231655263202071232347439539986853343726451848713157482499474594837354344015699831162847537997800655618159306847647932203332232091032989785572400784778519400302139422765510397400616665911669934539521821459843018034254690156051262364221846077691278925944786332209683901538189015030792440411754992827312293367485114507644362159375904283003359220189591060408316260393688717947500743092184307645903488418267389825374525489515367625763505669550944129466856962321301962354705927640884999870037947425259797334175013168064776726286423210651566065006547449069406987766642205066609145853772416718504255019696929616118834293547556713917431763196358430956103504164159650904689127396041293783610450288168345070641630034349907190592927711748222911526273842998606922076996287871866401230084843638847286282484410651135743161049361743102082824979125245179156097289197842546414994245028084353626786323216072886003768684592343632038888413963467939449873192764260341412501061825537228870215542835441027183166805866168820377813451776906815573217329256686779179425281350861420847541536264027674624457736956317910329833098070981793337975363297794242712571527657617313471756084134023273825987830133882604448325558131225252225636487549207745411364704832039648567370460818010811281376240976007882186125981776893066496289330012450441119573026352296223487859329240750102235817431685645311622941431131731758274785761652495732466805788613098342062331190583030865841566196896562044074865095783508734306775860193185374014000912000000570881339965641379775280617259721205702325816318449107882808832221856312336052133233287946904714469917088181463214866691661601762326325747423083687106164421101841201788704335693138023993620998589624272498513031678080031278953699331463595155228044410672177859355756889199489894355157021943479862008508047713403416711983742945195601296860404821855922666441947745220157197581049575166871772320882364362901701385850809762661124209141142386806710150654776091328600419334086455575386867875214527821645351484260286070858181595231693603323768866917213620633494276068669353422233749820443435562877597816883508398864905396328431075235223217464331561926745481629678774345825076073582360323452675586484983676199422327392258565616333281293622227805462024586735783868655705257445811951393349810666724308760006480156240901090220408911589203084523314566007970319969841934710692874415405919124364971277955737882178606654719779711730485498197760995523748638185691173013393845830098820845328245004168000406216005584230312108424433574487649784127534193708243287750425983680580349609709231121060833891017061159480911158995504576394733478106842752844740058996047672824268380114316111322070547924600252634835615849439407962487705461479098896844934339301045789574308134426819424107517932895877991207943935847025636335979906680552581578787550611784998636034885303547433962070794956316213315380297907435278819446406024684857058040047505804460335156086738426648578157829722079970519253148063105866111238103536092266340189278867544359728986046555323291545516319124576721676816444371019376828240779284941086306150892533733159035881043504419526741820593420368889493970954978297344542226659641273597230390144692291175044426808703008969892417972241299859759720119162627240739560359148792317580444993228225723870415293391376514801997397212851521415559427918711407255889531287861769308601055756551810436945443422623297420698251237363556422480179829961927028013491322930526935276493112056734761936996523588088503641392229097255539281721681208609935351713097184132690461990448370949376038957175455062388781624684465161863078821110619316194318963083497777039358189349580457665713209501603225993109129550152590188386222472491199965129096170499875220307741280788200088006348455402554818282095393658430499454673542334522978632444762560026069033127175390080690503581050341279851492466075235366595104898314627165244819233589917984546429436000714038259821864880620904054853228644747993216222416064118515656508676769505205811230917502319647361931672297834686700778671228136890423331461335086115197368237017708499325178773656618598945412645420852031642922789845979340026284241755193716452342492041110766890504112717773418688968266783250969233613314930628478673440797419650429940192894591608281676764462751573501278564500348577180290106377886564395620761494794505234938522411258409807750631606952265771209339857316471982937250520578571050478002668236549392071962187631655108035975759169199575343640767416812098588494745318528141460453846563564559907253395516092752686225449040906877753435349990657099776766586230479609997898779648578873922575767135187193084806442742333255061703883540083620418484651661328585698347387527652893337400951728969172673291800471530019534037143765666882607118349959583776034054483532523694697651116062661334976304003798521324737864077439004578724667771650813918986995770754916759043199813753041820475911475111680500292483652102247934811506583893718954184356506271428898384282597509266135636796800332841704775237044912682883577222919379773205296419612749942203778200909043734141172730466829675784730121322034164706614357214778611741713163454588579874930763392861001661694792268865730884548440623297502865323334166897543627276958571529299632228640479009313558052980861611681310362942817649382864143427336442321858763159660583727036209685910294683966388386618880902133209380814611295327728495513704215473132088992037069864749327365664944921827427601301004652903355773398979353933518496645640342444766462145425019249744713731003776151850284586583621254870704570718885723141085138164840153365604247580070969254500435387495095477191452025207251783987039068747788470106949840798945370410938602241047437039514541266533949320685585868733349181396941006691994318530349505993927011729115801365988428439999999407461381650372204505515802188620644233408343858283944747926758084125611123766141294545884884609149392068314285444180450200807448194093829148617461778090544252984737811890715128311888060414675404810098723789601413566139401044009831252917440939835629851398980466160307874641331801232844460428406649113325430978975491079824258105554972977403615755983272275552483986481175848707857028772320280161073286743481790478691126579059508601447529710175715190353892694314132493985985584516809190676353288348309881098526741851671888098837760133878408315757669657065168770426025892188481857766975146317523048424770771837144746190172904758388839029384468876010656537964555974838030849559162092608711874110051966009846058679725373804843325796184122810646372420065202975804537351759420908730964238689070988127835459470844035229620597147834619874660188637963647484143861459411549994021068500890176699200269416821635788223921482609800936854744711172798327354787939361295959047752070110239187059708081315552260358926305472652186789282902784810077557693688363918365482867605006782185108869890890417245079938581716240582285069182178077920102572316492182568227312303696164930244935723864839969340091219147032556343812133755384698070883353723035652513226778801155936249197674569487938474799593165231801737947588960204167962251266163952663728629551198233010401145972035655707722217851827761864470983352282719189182449365739385959557765527127148137537295156637112762587967876280098077541482303697465862162475371003942977443912112086284241098499041742927097018477885318156940180778638784018416957761203174192274808637345428164036260543884174389085090905871246356352901581069999868005719315698804732068822811439441297657040765165432032242039105858117475261472019427739188237243637927899960204967592884236515954715116737907555865137873274486093527134832299120916748806838098156345003240140470047066200826541388771345621093627189721628390030424071339547968334908776368701777197602848871774814845750610289087875468887583936387149548008274243386970978630076222450488349584703818405052700595488347397887176378147709090003645134402652021256738543341323239673215855874152511477950132844359667222104431644954998294667190843266628639813063257635597949785702065475035831366026962015164428772584434527235858692024108218575101865490194984735824391075613139520136147153243962491326769822901864749999148755599855692313433512589224126540780946081973976676448411524331368178898260845468104196982308058613831769379062164832843181845863251538161297065515322174623927433716461995794610587235488396055493825737970591480997481095388550714056679940465408970820242198128409323993789802593412650261818644113661830699970155254352109382514391636429538793657003360611731834834916569514217290169858097753628810506514624595084143309164869997830788132307472144041077357157561801786349915513287684023705603418560564966055390716216156376088817232775157097027362289695608415929431833690037433153328013551625724202556264539142370444923199201410916736972683280066258647663112186641744581596829292765272677995761268199438903428367510741406777638128686669110655535004390582771601866667023055682048437989172649032151296478488773204558884717825206705332396725865423005901013748340476597755144962479243202341070885281374156990898313849683129206634725399361776367346475606251835104156894289498389164989691615601102476964360980049026965177862999455516063475070439980021633739403240178469647372767957994413260990699002018452626108161642115997520819249982524533101250580349477701125669211767009777519381903499880578412841073845832471767351655695917940024540271180583214772259160723647758360754969294034324963537066242144015859112200165729725020295025008600183929233759408097520709256013694774460273776939990671105657335553230053327536508441269476440658388901849909565843562774058928959260564162578049140931260052647210877615367342853719647066694586636933721035722366574338948074272814367160652608124587381306166263863502191412753791873550541835453275885230768054906640232204331092559494485837781834389282437886732682992656778084085986304124605236087205607190034462124385756616777068983294218805742872519213189592591917629427617010957389466880278066986483311839767915535992086808420666012862078145996680307728880285124039042272036496837587988024778653444425140967555811570055256535043395957500396141128737842534452600555798724634477298142715834486827845626177027642223978145075393367962424742434341781923595188953708529050933419609126488428127358923602970292818664418628594533544808404856551209986385618836826122575050655748803995083225118654314518396888196226393519473413820258037502399569827119442070590592624925116208739723668945901849206665294148975690379623662683996066030508663366113465879925161225263482780637093172730503039381157926455517194811917349571150563675321033442298294494711600516349793036113040312560374773647966647586818988369496085180024039996202465685395654366913264155647856706804212656785780322832732356139937794809901312696153602639666531110948206841081683529864069110872519456648387362680561918203967602956682425132067429848476475396092813840874411107546975075909826747163103653654409196135057176850404091744846529558202292250373784152527059856652020095853125673855800524342640460593859415780155039601280688308065410633993986416335013196634784740405671275005960831069753958353749497780052285211627356905250694815311878792716262292071733024488501041564881278312241640414848220427118803410186894982589594356703699718312725682062251566413849514641488392728106262736237271689885354547688578307116574859827912828125667020474575380319147595819298130107910994138218912748863884372936083178213600499550230036252712405632605407452467927801156691620911761217908112028653596411191456248562048968732745424851840168382640312964640118595513801058603694094459579150328866667800291849212615010700916657548544150729293001787266376062020007077463886164926403771091291129345810662434714135904044672878996250436407121160660538291128803454451080488458321837755244081536937252940594007917897289126435648305082264869616491981598951858714530333258797663953634263156317164026809891889024147816821041246706106234353429129015489594893208847674184862613890746809016587387475265896426706520236850022677671165968440253503019321867544456437663616730482345779998915241020148833948812174885693197815989427413712833272410556544938141102714087825390215958617732647545725082481839385744989602253638644938446635288644249069455531180824068120051952464445771739375873685631481553015409694673013444258496332872007834959261079598538281419501127538932329064234593017988353868381663349387629894806934446873892763387299199828058825382173637006614208130207787541112151866148737800765171539999627018969031985356711300506030383390051995784028725618486479117772288578089942581437809377800742848915312490950633731255991816910462816595868271106353262598818961135303874590667539001092772698537644994825630367589364666923230579790525602208427057084920799250439528373868700366745677466232920450096301873233859598555589410851428794732017995013842736896734404138786277770568750350383809289399501465433760885984921781085027100968701300292606534926811964976956559229856695035321000823404901958984781858301042202438902610962183898890431965731230594540041130627980406968732060686839187371050974396249644591309731806356898196143801762556659184429307093775913216354160935991424521429819857925883150358528774567021659127575961651119122828572077101481369232636762604862527760277041847562858203804259966083642969623819098157552804465533012383372489863776201386537868772377434429701354586151416527403142379643991104998236451813014481438354448032032956172493779613459363496452146384827506670339959782079943189418827151144293893519670810746650004314743440009563319738835792532386723364657241814717621138301457650842201089517637017409343827441261491569852673006026123270755245705435884541556753738833719391193616726066220425502591015971349125863212067924998605828083904844511130861516971142922345412798327663115574272836106034818479036823087781775080892970436185228445360249749911585881450362525551147890207679063259799138827852889253794694286932124510266332553838497543376917688226346596024288460442860503220131943912964869690153142578164527427910418595795520041738561368033425364719306958245840150807652523408995026400859258795758479670498495380132657313608102349032920546080603702785025385657269286519115049516486953078580402466707007748180328690779384890032764987589583164883553536418986201115073779147381539345436080231891206245080748353707940194556167583799996667599860515754624451275249323784463733016717184229848688139910700808016259273131258922912962018518275876326845942254592336999222425241304961614920984937077111395744415822868921137618917210636334814607425242825008511838986827817227105510477453779695872561458622006788567562888466176430973356925179296803021041895136424188087801751731444469929184080269521239220372104461460952437700472928924870818991684910270680017026122907033781992557476913963924217302565016098135088268867281946403045935371817524898808725036772715429156620869363981448512651984203984084304740681033009239635491025454039907044866747053249467018533276801553429808884279155149282676213858243411382415829267201555566382936730245348516536883565179498800900563579484841800677798122772446204464148657045145508827600476274124648484340386145498214928808730767629507818688873639407645602246295831912476627758700559886135012866826126028690886387720740498686939677375876506804015440096118102827825741019729526334662425562443387774504340555195397819626095684161825899536621841286533594300058793693695795438136219851820134705382068662253627634888831501314984499970523029421786489501568278076845368552893213600445149735954222670018665112689394883688026156870619706791807888397955632275707169253664013399090032226209797783244413605043518594142261955189645279720072673019244005136044296256672241886969098203381855527162392957286950578626068095775588933997936003736951289416137104071698265241729403208085372302453213459664009866768266009278323743966977810800651856583108192958915351722508796678135945748826243850959256580897729358915902305855103799276539423490240231513075735277793899498601609057290956396101296328235180695841447104674366074393151960921888502388366948678132338908811762272048818304323559901011361642020825012043817506204241119925620801966775613702581486586144980365572397026954889633440341006745231034872424363879375944498888482555342206191087082529075354616273037334636438884686408701155676710428110322038347919819521344770608009878337357559229086421733794417628233729331657769323822400022067477672165073783877449895778474139027545829904689312559016024422702626473718808037787654265863333224900013590600850105423613377609218753727811657253917266431806257911927871281852975459199151210066541558205528903600658947946724120659899795688142078157080163563037902503219481750645303048636444408257266272522402848997659702569884015166737777171606353755596420692342047145768567329582984816499623404414118677343553454463184589727290299725645896057464559809960325846748589528017624083757159953746567831347578181945727859400311245709857883535529311480620893571895006069875890756843506415193382571915434354062876984227626450715416615240733004697625809518096108570021619495344502839000535781969967737315815176138562197315061711002797158145799022362110217302048680280768829065664416914911897357439648318657493491152920578180014324122493927227072165761505767674059090658585223012223145094074065129069979639581787616146910925760060776087165192221844217937326304264097268176471178373085445168390063137725302738227279830467337353586649652320693520817804676037772419488760400127723852398521677329115170843036925669953757671939415256155934373775695558392595680078070621578003495815039875363823191146507454195923581306782673481242607979489087133513395057117726679508887072963433923963335976481605369394968827672722136516097810409788192887983444196536456474388586939605279158050834758868358629395830625832478109114413283637361316544731013410922863089755148301028867583122373346101570344285059721229795605792065693983628072071737068705258110291432700844999154978249049307168446025839054416396333820341939405605286434488529007137849099615608291059209413852799376070034166295687851537189879961185686578577071829926644871790765176947892861249260345491444985909928707141832971571370406635897022956251505036117352545379986507061799456841028097704492541096088195377195524926852348943924261352486133716893192604342957377450430331215892536586005165862594779121684283610236915000703893621262910999372738660531688277886586362829398032109612486923332694990492713184818957972602384697890570981730396774001765155050671528283275683762705411221689206352195307334509385523594264330968049648798501399678331759635758654055783699768314905606384463173253904601078118721251118601119511400908590827252953418588279852865796410417747352753302932993175492050328020853243492040779872708606302401201649563653245394230358070903045763505846673383783292199072834855337604913360097611419735045403043761698538834950214326591968666934928473746905291137900073273141302628702762638418430124777380840298758290557417157164058791822293839055656999434931937025840320722433171547511722353185209474222288706109447554161670047020646426632549729237459155399355806441281366446096909234910113677524435407530953582594136131556606557150084581711914959641133196883007922345272197318985556462693853095541335595832563847995259216590645041107204311979355302908571658292719072594258056678680268663120130925421079241881456094915259617274524306060775371912907871353448116504879648736618931970746958152668166751761352546062437319400626673549862475035255759492062151827509258335771803873987713751809192219355350797401535216328506069453055368173594885442364706051546109509943535616510739314562649798573541910424554658680614372291371118322798182045659996180205207517639498879367563589412316882052424359065043673946303285025260674810902933083418073471582938765948484815630838083684746652740136256453378678915782469861712752495198279068808453220812336603745573413877217946962989036279042485089530062079223084295471583088284103915382375542773035513290126707565091685103909796425042899458690230132938956791407185324202419378503549875031202089378882961390506745352318057543307707553629841567058577643273301780800694405877152596315071354000685111240346625254026161297769401602557731697765874397730173644745593412668886140363001749673552600406927931709473341210474895289014038386220163701067866409803012267231904746033740474676263900978102735723441922142066174401041935258287926012730579912154313294899012716027359681276817477987410345506873901203494730869913289992894010471834023740465710517422826524567454931362783456450837877778494471128760708013572196366801743451649402008064878526637698155147445212075873438896958543695037110211737560543814771190514396408765384352866265646805986929361603703089331425512679403327608142124604684530930626523337016957998024319644422789942086426576820595053879059915600974530663139333398667577275303216609175873036821470486553206908639926798565526670536567963159063506351880369930238423683271315271720012634792841530129289794021004033814030353010063585092626999420344948656001722008631796269489128279075350823400330737877807089049584007254781686454427255507320513976554969545344589785555331018888960941782384305743575380731757061913865165118571305665879434763164148523837860100072640687157232047250333719307075878038376285113874656223434141782026302751872261353545570127080731991224912135107533335213376348772601264414990377914656036644927272500345377808150914582735671212614525499410644173223166292031596348218413366084711290148355649404644368055465457107497358728175219971515296518388322980303355507329733997731098445580171712908682339157921535033383182554027102223853345557041680476827753480165730778826993667633945110944444755541877401565472211529523627892742472491740816885192783654131982651478243638631210729433866062949817772526843357189804601794116428156095386408347163807855218112283745139042219458097844341663218071566985304382463390737515974010072852276223487535571990532092325058177558556157867229330450777951265291269993322153237697737514959073375386268179480302888473753575692890390174070348571365431746741083110634676684361833123565972346336868018673342671481067367322515474899878950671974815728762024744699931030813599692058562177261254948949447333597741365348741413876340911294591300398155739512051591247085481881920565737875290899638234717191054253386979274550003543186773758974574106456325360616401376763508155317369774682238071876776609650225049100425174058544798100479027527485041037799613238735105394581756040411266662912144771452893833916088336749435024845434262374851100234640291889304574498263332889970431841321278853423044625892556587561221256915913830199965506295573338140515730214854981599733294830863179378590170921755690880911185299032217837308851062278075957098037581420946439145573085839067054670032104759700259590132901504232851820199907814650329943985565555683611597182917540491680722207548616992147221765568818515162382097321933251612872162825193913883261269586478252649609860449876821454207969292025479445944530454532394347939053129605773220932762128282619224752366736430184195606049245524321794923183576576510162021522768778377058203923492471477800187080266852452293029758170894940149360086312774449774356416856946159409410044631844552984389184751479823604732026136774263462360256488456814782885113430940496651014671821256580906535917411754006602743147713288389503321910817187781748854391322046024699727707779683622013620278713747125810502419372838908346540952537793809540039768937574194817952826125992327156521925813345477020997001678526714055213450372973532599085907103991700787262450894033151519582539079806342241577250431159074329204515885256097703852662378215214077687255775457586126387548354729476889989709952256914112850755914594386876512817019895736163794242487425341023081965131145357858886140023287352837168165903305381285235591363994852395514568437271524124856595668440843740875842280165363523996401073839243039552189334144558674004729940944969482400411677738557954677105427157250579719392506285272518303475772098264835957512563500132384641880194102957598789349985241088138993304454868067227777332517283647094037514617593632365415683543694106237721830165260220663064727273601176434655962168948882966237222582182032773102627123531689305514204302079824615009702719864344286798063122023736596796798154386951338364348073281983453031225513564549072754880362865932757074432964622304848344579879054747661721330793765776902553201744424269770880557420934006363932075898990069133882413122909547862009616078470640055948168725683014940449329283182562818496821241998112459754305668803212911175400230058919155733352968488345988429367297739099853612607141488255175135936119657236871867747209730815722165633264542027831650504907093392920045600196285263458980715010904269592375984021063228899154198044386429125853063271446562196563186572730989309697071677455539406212558339740784457163308462517931886858314822527728873849168929978289172915030932092674110166377365385940498488944400817398335300049642479947010643568714495888971289790211947017685305044824220473679526228681988776114999959952629012050882826781640049522302809241745122378804897212164076093569976728975652489482091125015203430147107077814588052245751921246824207685700835298259901277780848716937346371354499891956214576040682260124528949395795824355562283565265826299301690672925605905463110436038512819921493620993712516560463267257603565265027747096274098984793289323983538814912672431241921839609083652301210510584034418787405684990228737389748679610869565132331886507976773758043470848490801212066044165080414392472993802176873810228745715289248329828307661612861076852424887794532359471748892017244230639786237842102574300378864078399852293796860961313400250183800313142740456391526169650614376208694406257664784430852451568296041090844458851310423848062208088481612152977228304593025268503145298498975862037420295282361450553313404711342964982562501692903942351079955996502643846678296643540707359071438828441370470129605426413491839041529363517280360846950763580009192540386942013340018933771189335191301595273512480866269716047143957983708936945066631293175695150632083348701368937160026952060362274243563528269942386672644605671338675424979506144677304948318277517720714335049200428869576988729956165273918995846585929716004613781000539940452963290762861294987387483670231756023475004275012661380507806667845590624373557191509364625472803552669523217932011614407796398545951561494053953939760130104579764834091671152608885382584718383058413562656412431462776302849566126412628552713589348474002432835570303851397496093874804262069510143484382586514757877091624715868606436811871804162830507838960618970337282329131419566872683491221951045062962850295618490187399203347197870176766743552793950512405320100165070891104612626565514904829693252486683406446981505262416744403386756440252082344748113987346402914704941246657925431176167641703162407944177416126415955697271493101659620354489835811582076745503254903019973913790371439912923493024616479453422290121520389328391808004430520836884363793579938169383923752803936378871677021811802807923601053162154718457207850300424965589373644513392563767005051315258743203288750111806749741133205259481575843677243064750520781382919844786985484489414480762696120199766949768238540790523414858264376214480855490192689911403841459071630467847085178981748739463450539844801631579734794743723554944037166303829150831973892652427796608343727443029756351547696551799807690286353439678537441653401461393687041108051580863246258198684344481801277491198466078606180773981278475545357574915819123067230655641831437942250116005885156366688002228749296232326337745327058183712944905644170525166593716683662752581752354468563724659931062570965270408762636154590688912472142825105917741997082844805342299427674825815170839524630324938328444423382086141838853414737570393194971411508525787654735072887493672998722752552510883494415181402282460415291551609295974345020387023404722220880828574484415466690608551461334499229561941104508536644332612620509038853155772451463730509343882555065266434686554487016975020336705408532508587524032710136250563766121349182724297353498471245338865428705914890219790317634782524577272888083549868543747430099445852510986512741895854087097972910099669553712539797778628399631887523734936718368999325948419832938307101032899899354227099763632091793848039143679791297513957606896867251219345189070745981016035665347879246406424847780150989691574753426067052369369011076317170691756907875989628421228463331035461721121563317747631409487124720991753754461861142219057015548339593017150420255652102103191598150795311020540236537644362444653059163998436469609587716869204551566616163873019411011917799897300980017798195063885935401354541282180738119220471582836037890412202806897529840191937018312566104781906252085260887308733341684642892359241425807828964027862777549654836494569838555853860669675781657631438382571848331990182730245529352058612566118117086359903537594650174185656737474350997754478838982566556535576694259544563333727671820114405907308017806805759087893600628924428039378328550028323105245233929058251536820326664733923810386992330679843089952818087062691832958192018020172064013902230349254743611487580125540009677638906702107439035319956478424162044119305809979875195868007291982374475719927093532754707853621290940057542100722804815559457638026083639736128351186397093012331882740850316925416152250894853150869744235377679277059660588109637784160580237219691878772971109343070876125859831789919769033028207640947822693527876888640714287297896433220922597926452833149382685888661164629355605395390464539988893121207111038017114087693212594878609667430344478410745892239029016096689393069803874343839011607885632923981818513588530255146892015435612154585589614841442545696542520520883035301592664715628889884494051035243206863857582717924645638952200965882425312050617650435049773998233411343688692411264508394158130369337502787236962695431231559167336128728284854764793918689295178900077647505853616492199703170210980109569308508465640061858414724319343677304625423028312197779454678109816298586874674628453465938612467033430714266367430566719847391937133574478137923476435888920286864542748620019379687093497554239398925878328666359543870715689701588009458758738720682156226139855470952895271652006286978341783910956139980001810401277541697676645136459000557833691423553734839770354084012067242691572975318254708161250776274907327239679799393204335954078079273967305834653941459882552897426071032542443322518734500774871347369310510529772046137267325132894688431758821165797286622583086966824435492278230072910325827597521190843637551561575028013468264701749389253427881926096986823531681491737869083169538795720469717771011147820127922983159041964678407760984718251109872789610856741863632422239577870919050502096896037752564939869602307540040932722465667846194108325840577681903434359843469368960483251503769899915613380058570342200363678491819500983822924032899982757045460922505701481937334286804116982847114392330174612706969702026830174648587997757624999736022739694925521242057279945191407198025971915030716956371934617187265585406389212699502860875938756770990982346631485576554210549028145492300291230255583290427753824854179496796595151286468505033082072709076872555533894070056342610609573247779769801632030336703963430864414761768886694398393596668643800130644651467193645248690994086401270928418114704990738228479234545393355998695740467143301195666913132828214462682541836297844950275568340439208980183698591337005005479457174744341551566696380989050043940195806142326783430077638008987301926369609677342911081315387101532635875899908031202344099671461848887755294077740542575070964253465466667142427312748247302807115541188258215048554147470431211223175410075200406867601200306634622521605262807656873171643936007814229969731241736130513450429114339326006937656371097221556328943980360002166307081284039483221208155885053642085916118938457582537818390610448017578953294534946039762777317716776369244465640455163516786365887233188053525121298139420777919690615592870517225982705829078203492211340958417922682333859502926273323217171369571187533403911606336504010421839148181147507179235977406908175384323630419573545275061338570289898560606112116819974284092041168028981340294786636071472757894963510556987239508347636417586312797289948822088862938430471492626786697962754178714752008642669337503864765347475072646522249308873609365555973286590802829200255764426300934519248744494851794133440513375288031941407044858140888544702713804182699281187325633694687234890007240532189652576885582983548841242690148298672956168088963826687776225568466604776519029405316330592032823927994015020005033144286316198807894017827179486437277754024879764137048159201078488027812970460369141379497892976149995734283247958599636851074236766415895325315748150967552490974628573660453858782792963576946690196482470777664290316247517353787443582369204522224056560314061887333092569856532899714387734498110175125959009386739953244159624131942071906762625972577603605973901662504802870261396277469470047504492594917287545645416392072565134791274582228833415696052881334633027029442575800557491843719774618132464919360983505261272171112688515413586655387063443983907254964021218081463257092334741378126140495284749321263141600048807646481803781149768809963274314892109999626489084496972446706224228482750573222161679649224761245523240637671850605285615167899849550718100187679789770159539089018405515257045015731107756538238014058797033154632946621815257152350576787007940964097892715943198081906342063701159515451816955119113160818342436967242822247263430645609475110574981539501587568023862480563591229640325344977646224486259911194020591781459069222867188641601581432510791766797640832884249692515625062701569296543631209056991466254875516407033296778045327198274670437826777368346159463677662586126982498048512531140921096165237668511467150776471808979253558489351927052169867613588495046954674184913952193926643476548571437300927910137708226878898980629553815496833364618431465922317390202393690370553227385117386714944938433533435855944425854024604418196141018285311286341270883386517615311435083771145351390662737592233206910771021380339145489982167992728253076123903766045250321466380260205136715716754104580905211752848449834812835996161079515027505866450681024271978708854109099869678892879164792814313463005891169119132817852346018201534798840788086245737283963771103645144174215570575666069744139418749958044232403281801279062703143543320158607235441896607735960078555808298542393878444078518046089499056422348169771334355602395300950460767013972773780116808129622562954786380794585067130940353222117590256469258059243134255583834462764526584518786576296670088225979382324731846491458287040207635555484433083931685732730115347844170991416431773240986549903069594376964845329203952588118047659343898329487339511508375109324237101721067625867617450190526709580931484711201972403145722675673948322197800673526183099604782170233088702023548287564455052622750773728210928352356545497763969485844902843571710788675874346601040784010518417045665534522353125120710380946107723223890570037758169730243105907240362763897238721158621573836790418317282028109914780686175830299343776962577589722805986821335883997932584445697770043511347618432392287479808119346775951445947586221533273125915821234075486258395205813027552455786650780070342241513938910657989101256731268870450399197189538686540402641031052895566363401217188211027616382619473349482346772218272868094496024953476873165446408439732586605742255517899490175623740963570601775848778825437980026252537709242795481984501814890495963192115724672353592242778090913289869846074466091065417662954927982090913496995598195400428381077994607464833054543695984317710428602105560338281373823285568537750712227012445915228904868863411399117065522206744844160435638068695949233629645554281794692330755572668760182074833136683988090055269380656264259261200844256878381570167483103044804855304845774393867252537021029248258612785446044521644542659517523587206522002218575881903489113082071506275920792156362275637773105197099358110459647472177467596091135910768468903367513424245269616360148001465382737041802218523871445615915034640852954766207128388240234787532698350154111673601955445955970508864106855461100607835733566327776992579947451252968954520316570517768470385626791903883273214715991827407556177224262039410963980793956223641136207108909731808110855359430691947961714333256723807706067623037033406939519849173442472831702747607090025210683375911202434143620537494677975351201449328361948080717455216392219963056227109502817172945067437836338139246822045755010633167496531760725497220563432185847527301401927485828009048862201823880275309373167049161634705049704530279295292599308496346520548397910028359872684833453851461882109071661810388287742754167541876994259645800413892626710271087413965888792892955454703936522919106769307685884641598064815797580156115601756977745043779705244778772416862953461237446864322889605326608994265616706978571280594347497527481656115290619988875964884558798598846774780960462218639297413693621827842789624291523505478646041758320930882610801328555867335728584818337991236900280815543204433475984791317731180969052158821280615625398310040590876871431209385303092522996217498600954320375811078763515174058605575199319952995763842072180806373046465967171759798930200507674379957173952923501131578568295988278272846190199992993117440684256827018792013823359214076665599692798111778090708221883651149820456209511683299884836643590174416844581334173576287454409923514887750621321400512472934980562274743686073020742321223391622834759221551224883432258612150119369615784220488853959159721522877967366233582963791905176554213022102468720509588601601843249614085523531806576388589088653301266338727711734143391820726735700252696108051657032771678194204466798745533787060620123128391238738992739997078595222366276513834598700161139569576586874141607356627286730209777257875112580026233969690358119774364425670672830686591052002293003904237521487444816725108709920718414792975277081218404149501677770572039782540961437965067727153917676362905525088260398291215291504100577991985361110413860852012953527790217368880213449147021780871514113067619887866722227000372349783157348868617736284193017049422300514031610446475481471150747882202379046105669296364087415557426342182976375189768651931820200252809975195138448693740251711052362538988192644107856736099108569322518558044134346484157605152387965319547457571190243314409882947210532239693738768882680403147276334201073448144375445213072570003433264115540469569381099168402641032219925567988599751457497833775476126593005801664071725250491500633629749967331510838702077854191247492975300160149295934236437304355223349961564235921854369186052511037974975229487043382634816533080453184486818141056277446196522966401132298554775767987101666963357674687573433345795368050055927413023094004642335644961220418420927406818516598711658457467600209798953585686026398847704387438612902738529972721148100637918043186697437638575295141811477436693939697670873026123978732690664562128596452488634308362512732177742294535776015619321926407202973686781944237976986325636200564798415268595549218624086875494954052766559663563987683979511468832296491110155647730029091538131433344434841313986411762261621581978316466849844349127204187678344060408755577295710289619848190268439673122405475529149459806870376930039466422759097137313652670791039579309913607620420701076757527589320643985694742320390893440775043312443612503972764183659026577342010382443324036392523092284428010296896193154322335641260887389825670352582041637029155117824509367140275665447394456507887845332775673316507938317818471811350212798243900980459459817188076532784548934096674519077795257406957410353371743685553716233142836118160565469404996414530796694854876339469509267888011529934843537970172751490486384655802700636464730295616447771625058238541246569728466437640091968212546534124503331461975520664847219663996953048798699485981487469118820830588541520702066897014761424982694607542807143025879127095543555724048069211278189674115118129531993842372971156342450649340396103642730245297821424308176413067110619594819288755215945628201205084778991893839600293650496608663628431714127701929826195292461196866967836674046925892055292042962395299641147863747859775920874755608003429046331044852592106909830753206957462976080845214660499740026831384370375808620645702969017327757114348411976239956176470777100016191244010134733908728120660860467873823282115321896207336447953119828338288075176939216592791451231733540353754164896950972140321583486697466540362215491075164640997205596259081876244419829991209222505668120556666418446150920410126606738510359028919682155690014083817882917300118526758128860129399201221781547249979844863977768694542869780795286363638883603832175228497145068660349880250674111424274442065443478154050886284092471928017192700480862900032094639798156837366313918834946649811321791492052955445436518234317815842218819175837997959335775340135690517292371676792939856771177459666700885804451378551324555793338289755258312186925715295645597002670462910002834124115643952978403229333661414924734519325479630103670948907225319531627245117473570189033176963337434648566747285364019072384050923197720485860414954500130087336384265323240450370595759944004540434721449559495825021362427533865306106356340235629295019618970845780614184351777041330321514157094487730735249870516194255494305629177990751806424038178077233900332061044408842290525286902436503743067789763248889231847189303486666612662744437543784210906345049465141269864815739899763329378426477679554575147947106643368568309441584620051032058055899302487187095190486115866840769249975182659542836964684096427642246475901161086487373252879678299939968762985696426962397028292172465825793349923806000089511551073980771619955043535510787618426488570804118875392770275192142519093835333380247427741183249387048156122509903467212895976556670347968034326064901461245886356379006416951359388168054929312230120440489512682838348022852333772641394648399035667849160598064587205902982232761763049222371942729289135710060641692202330483351418041815849697692916577163992483908506184847787515837686213540491985036913688843243634750998327815033391456526571845907044373530268364783713883428352246235590636958446629857699287747312204484502094071026600576416159986834796033976384970393267317484540613585986233498061414732909023690456490493718626334725910871476280033713075190648380577410794082381123987995773892660022555677504072632913951993225167778755896750029124568574293325167340264085594358774111820269844603182460823681683649874686654314227464040058972644461136220440537205764924581562691270853381423615540859777691386477399829264667650260687933433275495453509471770056688881742254197832005884555490078612400784519450464754586379701515783122149560986741304225516721379261676150431207026694854316716268154681060030927465386624269536324419991430840439364410375340612435917911894008342000738113253544506024657952400416078696228884176000611968168325140788452771370668093727135852689074893600426097274369061297221983083228787411996470600753065011867225509648267916698420210860277222617811872570030394113120714427547710722221933064728949851960601521226339178604167268671586142555608104454247601782981611849942889868287854042418546666368841776600383521114991948368380437870909220120180597872931057052449556460022084562444019402994238317650982699761455518399676909683106970145487291959904496798763547675672994179624034821576482579858351639869711589689059009582610247093100025881440528060175754983531180080779390790640915588367924854826909594256019062355127774091966169627632622452919090875689005859408559795752511638760641040435468263318757155271263546739378264261292866510600199288492358987924692049864325507267454585998299135807106708414631745388902722109826505516566035505290419977277640120979795726923589494277097107833675619481046122846563774266061185840889573249643577082421962042223629777716996656690866574905516714831594059830503251239596265382351720014942288439958198972865876070310495170508933483739993146331388122999292027164564501274334037178983062110001112095452339437296229780968401782312222753751486815101718443967573555030377197933252327184238794191202869745918354435767439364375553880973058887626568980907719104806617065604700214556023772617919989472980602785955125471092692542783610418873284556516005758985690250304537683372203386446010606781827476598387365833077148973924076278489759187757980316089236864697966184343157062784855597768213777451506118126185858687319255703811513946735607752285481350225259269421816217464270419150652551128024394023352534762143737551035606570538348117025883109132851104758575104601197206308016050762226794491815124009838621668553047029172581045418127052548066823907210933893274498757672633565369102981582336666954343419184818397057315527166461294273272632718892884039989478930906852729035328252067827595413049954513606320923753682022552008415135705416583153770047416236113198865581538975438732682452051922013446986587034353072118118262650242811156299724419396927295564128861656225326538203619709335877941345486462201731252870621619878944526036533146166576576626365938465471123827942757749668336769487247112782338814515310033832289777918425642378689840290935367579458162715819492239732971680719131628291565993726367812714847251081437047368931985802555598281292781969602449020657663822057168669510449496690022675156015757815285660923808987707495155218972534001082778057354012800640239765208850644485111286604698492215128786350853354875351381589043745859130237149584942346653140235691246096138939159562170493455640143304753825165637719623871450050297760130965228749910620018660115078212687159699102041481186734844203503231512829916349128915417880319541171648906429091464307542665377428104883748010724816848022727489514445842310811605347772129835799954482277665740435090665095824770708516252735957631785455626245870633445384481957833108190032876474338074644379747056426702015702432807259276852024342965195251026671785002602679379356914963601441206212142178323665094045702236848319330158314101074934791425107443279719941358840590914382421246431703572185006909079235352455169467064253535101822829119433735200875048217562795414600357027555742013254764856627831224070161641591351568183660827242649284233013595583449214213867650797712512334802553022238739208932936057924939020402587809078205424114514025708151822611603951841094164834447637261458497703554920362778484766978278059027711249706620823963762745425240148499985262323469183800493101653415804940087064371094146861538390527041336116042657278939169677522418213069208391603421115081019614825184037949464597739819449505088562955279594820232673875973171751862599916315667142823095796821168258918312294581294285563411919072891501710109491044577246343004200965451918160648638461602127422426144602367315812166145298816413851083322354160849593570738627103968517739867892999268664856685271817538204199162812204805283979116268228208293548761611501178269006584924364745599977889233055591353989992800040037206941546894750368377468403207964221817691527411219646321853843903287763966121547049388096585638437597075922064661642025386566210201029210712149691389932087548112741686729809695418139361197721671283796242161135086250008730499155594759526498524671055346593073627828184957951224008391133883409696913434751558430180389220493940184251876545910680604957602810050615305879808298527331387806383799728116850206760404028958910870045884554290208015736653322664709839746265952695023948342390692567940754895062977406130160009265764274609851582344431865333002297512008805140877703477055851088127372951294497596188313846747159343478271626451140584846248133358842444890412963442515729302545396469457527206737649957162168981337565927417494945752610637595760368719005807398671172759008956213143577183476450441819977061845096919890982369976408319099207528836221448090410592946221227396195181719882774079021573391592291370657663839823662232111323605426076433810810885364094099084373341398967346611199399168846909195768751232933304606557359052411219261774566476421531452892021239809597490171067138673005808306453541997752002096197153165019935436091351571092781318757761652030991432867548830939080942183985304445462217505051021034783850075107756972427300448969395497266716733625295784200190419161215150555697131417574607882317977683062495628713399782051489014453770413958712352826748309222122717266764009179674048737558952947745829788171550742666647972026852248227221905267987575954233362847527398931411358927336478875364382877764072494366458326678659919543500277652553781832797955487836947708244706699225432311077690934396707061503538083318258604802796333280160857851427956857469182215599199431761020750390488473519345970633449433185119333135787748793415925041836807996111447180476938716450817843015080742357549452280924216698762774473044605477402444466045924726567193176133240415935347956907908929147152015295906874544808710741195075699139899404114941735136983327877656519524795788104320578521856158182964254036649391231747022207362817424956969166026387346507525921438288521941128382646059324595385694036835290160346989774773219275989759329065170676988803811684123131973119864781371896527152270303288657491859027268544362968312866406098339989098866217113430364814010858475109974349977809648119379650720514427890623150745059684753704540519988038879980151184553092709217928007939479662102578508917297466378344871727955872122807884883538229757801083246496712259595555282441077089035251938085957398316880590183626489643012242131748954987355944926399575995446935645738032516258857416322120332027689992677992860506663191742850440538540888137163053913568534551181470135119100297491309116276715034957194135256136535402743626226140813733421721961264502207956569487917876173302940735103168547935603982993095431230036810694972938228850735383031373092794988500305248201159976003803792301013610936756791251532538662670866166007918214004528442201391273736329920107248568300908470422094061683650917498057130671900146521224414629462572019215107434124893276537471703820997216603875463928079183338644789925033066130462203131711625797876768332446786179926753417529826022550096726259829350771159136465210452596439494918273785376881456544975989687561270702009809879241280808645773815435575521540602774170721164901795085486948173489838261348419071995176387799399804672417537078247616207580776749719614981254392274013254751227641064091005487283458613627657147229561543148845038249705561814538689058771240832088141064205261531425807851848353519896751506803047864319429670071457647364721391603937438489217930059801647503252795823232911821514031761553113634868935469894866932781932041684186647390743185287044902194012667210195234309587087161916057200034593122811542845694793436604614402978819618889800178521894325948323120062212061444511314063688235831428060572631017568006696330865041375829629076424330237430017631752775846245376885301419099201851961858045861043607813825405235751594817461403185201449869311360307790200867527594347295761578615263466620066202947705256466176603010039745864199676137420504450058229082890765273996410166897131846078330357284243732916547829830541368260953680930838189748912690012295292949781520995102668769229323736423629623269736579401548332499875038740542612809769271215342478542178437439900710036184823677208516401093139377590107222770727991078132577800972753631883613414036382687445065103331451976115410084178002586033503845338308647275152936938385023908696108644653518515343028097774489820330167171682911048070843271400431556179039640581653255912106008709249638565313028656091408579358671869220205021001791620142028226029014967878745956795678720896238258883499825753413435704524739178226384850328905850987394407912608729372062954016197007954561937595822100353454440145059807986836538525113756199072039604567665711519568471550566588075212404532072573516602300917553912736380326645212767394003739159660749222662455063482331736827182024970124940479254603816497169490804999881601712867996389384906222901396439566038372615632282152694310741858354157464791926368936118880278206308855288997776479860528708604188647175843362006417903749816647226713927441868448052462024167691867849399070973571850925396866325199927329664790342940874502322779859049162572081331730825449764970568828201212458245081468712282483754995665562101383403025184163966260117094037424480944157984045146876734790006171346120237819809968151893660943925852728923847219280940570450303350668703863256007096298175926710457931250883838766949351904219839438093482976503751564538811337361422911489136905112854618375627037612586832737000500902506665550263828695610923024376300592394726127279627688497927330252717204195349710539259297030824667331205366756072719457042293123634610826650606750976503607009316279868924019359228766714089485336120661737324258712299594591191794173322962278752375857009105513991567929578359421577909699705495656667310565980630467450443118510981179803135207436177394957045507404828304253220383426154456285521041189410687968503279778366917641524675319531130808679433802901319860056167285143508874322368219875215346982081729234641964271826772051573491170496698556877006240942652704417208219290772303483407153879563260167911509324327250937111336161684958604400912716707695734770174407077113815080604952091221523208304012611522059858037128158515854826319126111310140165500120664900282138788036587551206724067421104226503602473256704758041493106205939451366341923242803209927173349787917169382154709330697325358246353683061348560842766982261132202840689888671939021963509415541450853620250961117324522057596778065314271466331912545100133973113054523914307009950320256390735662854602709379452276257420902783143754865828563434036502987743187505806393953084972876563817286735820738073568521316496723583410822350884931949356046022231905739774422480247835046876600258374607587217338141703986930635147589914160961586657808666591237154148212079746550984893929692197448283005248513236654131632768042387268037240311995248100795974347025263377927717220901331399329153872858228444631384427051557137824012448053965835453137624040841785201136141871439452495831789470219003730046516415439754019923978267608590337778403765020340502356021321899468657831203012579387615627005304490808313846327196834547359984441757414037235869337160474601126668507246435589220992850550138760841163385948186227662264149984954199130681372859470258452286052172647232690737455566058500277390035983896146187318429346358912828540162535256646094202407748305025335022174709839168385507433553290365768177196871007627135345510577733071215304190402879458155389237634940754133336051409190341193834478231631890135472641092126758379219356334240305804511549175841310152594801535460499865954121677377205477110999373561459600876574341968987355617947855229984462554715689192788889264032054528411566191228172662255587428584590030481547936969692031185724259526479396444290777365049800872165960450332440280275227640408506055880241089702325362935564086294463781364073924841282820173249296356248779293064163383067312056669167323117074632283192230270146578044731594186207442163581811976711181060741694137938198671580459788292760474280565517122804645455078537070681708163160641817681323364026221462896280635009457090986283887925855215538048471275819434160347447943875064700758432990709562206624583066245917487321006673496515434437424327276290144475803236235775183647732880064083107779929023117167208642184457816478427747565900687750780141759569897757551857077550475153178829373997021482751368832654468819400852325097625052470717985806033535759850509568644913123643671750316922931838543499986368900144063951182179844049091598846473238685970553760896114109422954654994966468942670145896358234920083788670106067735967316134387459394428433599894115665750632532336751354942370149336828613192474917542348333048199688426426865596060380473296159546045660390902434979003343071013322094084227197698980521244253767508248241875566296760375525284623633508674321672560387544270358990980965837742766710000285821983710718884032490340940128141634486799637619702675779620213742766867785681308379574018756525942337753052024777908886196461870719611554690692259981680504821764455888548431930564909943025216699176909617322276184217472309386759849300951774073142347267685625863033120017140791931262097494555502668057525529127434472491831716693446203905369617180829210733652045452082139921544581544900578400340602870289602623090724492242581236933087425640862419979331829097015240938623060228904283519474927374189260128302795507339219331520886066202934684536078902345099165479175996453103949405045776551853134462708815145148589706025449869165741552577441793750444977477740399486030986824617808372579891039787307653471748119500442845457475248501493696785659735303091089485464304871734287465158764952632467373250835863399542605048765012436438481240937485041992533160658170075891977186105909380640630833159165822073408341228800241313546243119829677205179028582633589902447236948830967206640891059977521011268563752664788100607553030021517561638319915461371473777779111025442614453004524299227196012396991905855969419939213820962541443405156772951381710314953716979415839055453238299258274069349914696837566067233727571299614864360405287925176310999997922845989889752731872917860231914886499823988129911567956431937756693572529704951414637475102039202814924434969946235411894206974594674047794046465753874576050314028070216212037808539911383074804821205384489889621699767503878790918787253384515358752991159236484252641456560354507527966090974508171135225210895993300231216982036033732589333305655931989124465385847465660748812324453497259782726235819270966856581688240352577828105790170204998988205654358107665414695500553391160381314775399645936625590026247929597211341467239523467494646285262159971491642170534839838006205502985681344622124695371744718968078058713371071208249921743214593231255655716914194812147670633146964426900112102047341386455121465421743877241106463396351530422014608444759626222688118199849786016890677214079289894761776251704603048602425122185667072455831318384921887984421185257479296336195216524295539500983068909674177058922812719414573095144124209614313738356514285360681793380537632054400771966074969176729915012191379424268528093482742762927075944895639497220900704736697554345802367690058011769876275494830534953899487650683559718548900451773846892679144861256550267791502541472558129110725205141026384205821896528255319039323507689414655798180474892180745103462642116820717097248015769586323616490135018621949571131332200026972301750146945091806761264267872876056025696644420720947738254643252947865392915298668390965224402825999109822421992081221655052216549300673328753762964401481778224999667989051862014849259262441376582293112591216117178420406999244365899063032526876534845193646044847079482951772644988362951693549345631891825771868584508992863644399758498925730638226182963336811816596813306445761936303592481660873604550357314143158137640248156846572646903830156678790667157774239832341304907718278353181137370101746046931331889260618592382215678635325590320529674781205578536540801401785908090408258089645973271763743838939403670465440239186974539757075726161235333244364380280112528832886724371507098118130642283835850919964052440966487906034796892179572533250510083491223666416509593084305052928201336797398480750692074938596027761692390007206223159838688512634315138837098600894551596516238341572310063738096974480270314041836391384321113961266621810742121515397317168814380626315349947392202799819259884638647323047090702375339495848643206153518718612052989082902148531464690876006670100861600474107469999664379891035537537393261628897121311972365577236430268794844070001961544409936067478505161667259027189668081558300651601600380105513838546262418528036075176181537781205960595293089049791858137649791552166349933580006024340940886861541772436639946154303999458359051501452768922073317104078249098789912663588765572585677525964308852084224642269241820642520936766628811952111460011481061177017699408072482678340251290990059030752225507790882475543866078902296990174551815752447877675552937942805171651468230008876909847826798580195985884767494636828639543335569120742543297732108378302521670740392243828580553371397059511195812722353506492590050000555237098304318202182415306011847959159532642446314422556200514973368162647084476905930420956324952645700950691636882279830192020597133017255057832339998964621346836350322527490932411568777824166355490459082074406964696408142636392228512764519396386293113626260999270427072553093631116781221945309943363263924839798863100819923259599047106174905531574104696674950549462051428411354342691931884317137454763733204642861228658142866972026973313045030115323346993838225985734727695228478770226644038437734886001913194160962890709841487610909142369216417296591833852524837767494538600960309390729914227213372561837334165098625428440734829658322065783412762185898862661577629701179510933156849839257128455180501920492630204457396589852601181099183787459797426369078860785722764069460968157363118831054964434124943478334206609820135447314337403552757716133296900450823015623178078442376437013971072588772530702286447791835949228414054709152698987440759123033013844021298681519329798367109563783666440938513111671446350169459811821632319207905918765900078685676812299500424338364927246422817449726541762097911978534406120511199596322027953035337069453782123077426464322975790595043777394571250762087924314990109122771520565839510459115103155504819311000018764101137731958126415912416336188936834105754624872516260620489049484212830793964208848153618644223333091324689588213675754373134143072063459521757587967108275761446803619952395463707457658222211582024300578480223032039215499790012374347501215055579078586278993126271159592361958915364641650838562769434702789450666914331448836255181524229310470660038257895332697765272776252002573467521165916790972967663029230559916084847034963158968570688437592764544183965581284969179620992344025991200946984647160911861775455682638837963216882289829330687576907983909729145805919991435152172519401969175950379205649069924752339830296902763333019263546239609195878612949847267460205924623502075302444672565262715693666082129458904733243522482537133123797246169029577565214502563641085232687351363072763590691239973215717333958622242678714743920186237328178447733341333116523599522874232445721930593763421472905045164113790234767867649869980657919187115478466315975187989117285668142241929727510215044918770958713593750840838978912789878911853484132679519660862305656787040189755765739857015419917110715524918905608998644737640284079414247802440653580288210060279526040687505942581720373521023300484542350285615405797464950895012642742616483641200365256846121602940233978115905991754626268701554178471358830054852458620109980276801518052915626969943961654545842318524531988994052098930597054699072944060931327924404587256359370398218932674332913523303399551349760171454921518997349607461372538388306803736316010683973152250921446655943425270419890413005240685362210439957608245819539714077101135140891756045318959703921178466978188865549045124438914889265086599183417312774767166368867246609299422544670511540868337599111843823574445691887147470147840075845415288105141861737127050967456579396306658010865747657414491159053392491004837042788338114362156992162047496069010876467738809481532300808731173631764583611116910990017272596611933289436489620584636719630002325581037729319964363457430381774692359589851121345725336160361211461611134725870466914397915861228252565535183733348786786460438375384955717929093676681165523078309461393179568210165148413893028007064946988392548266290205847126993537784786516794075947018224904092273172187878509800129722082289379296590323674372813906453075933721067862841316135157722354195223614950493959448668576334693452764742345803099081573627070644481169004924826114452191810475758906363473433166394894037021787395000444201157698369803570647851425818505926390713482824299309801029324629531922414121133922073726383614813708686710495361991160499381425803960731979206815358149971667756787310609565871866397282887916645559772823354717814869783705660915454786279817350610675975980073623223807791352034679991657344191281142012909014589199798739650324448025658052778341148970496732800127151596835715289701974173620885733133280045690967534229431063628547496913832924527806803570990042922351030180349443637232114069989664320257084807558029714684862989506001629450545135073235930344050834024709445511703726117896156913096294689569503370069355111945052983730934879197036676501377071751455940351041788158048209761177750287922249804023946189434689126240098692452274639828813275877953796760343915733364806853611985737850331182994126446032437997833243578039772765680161424622816810681741474388105636180644033580153365583527770217934595331572188999453039169598953693177346534921602441561283793736592430398081475663589298060876848376398259010629329545429196620251824992797238990411997441332002579902128346373330573926623047456633245387532942368945545941598687587121976152829592718833509454519965796796554129426706131565046826210986520086943477613592554138846162799783460572228508553599302289309882539932132777706509072965446833621818987850211123137050403825805716147079771709610774755257285197648472547409796569275978218756273395690344131853673237027183615009499762760070411022190966054852654480027821055360711709792663726528954268743186690031359039629205242223265612609773835404399182555106842014213015186362453617940701986654954346792909990430932547126504165036112743680451455211601299383143940144793392339865285303054765993936950247061297074901518074184730170107766104583674736651539845674943185921299921047845050814186104253956450338590330722178948388163842538171324504683339091175433753231533221328050155720686604775008130131183612573329906781786942162465607629981700777916874048061398866841559321408010492330734244993664631625580922797405374115946376258790603918722403383744305542224085967257385266037543581946448347577097488015534027338304735365618859483927097545492211149406837039228852255862347088046186382200414189784582985030177708181588512564189104978068531128908298706694651501169401627204710566456669958655686971186679021342699394454475858327430445936449543727869638717556035302897567884288548982958347705515455233543474302934235847427681785408586316645888712190023875708059317834126681231910329191240378553380242353831983815021936267674650192682118376661894494712821698044420374658497948796867621167881124742341382765504821999986053146078779771910789341407873004473970626076760924177537387372130090644730833084179445560283003582413779090177881908906866325285864240975991103302943634846216490499218286975006649927112544443799197648527609960137276697809802260727297283638401087399795838176094782246556594185263518809045978970745975906387593092825880894874441905652194089569043175762143612382798654461525308464927596469008016865580072675584255245381647437733677918892925962765120967001117361593303321367995983850101513113811904777876305382027724211246737097187307328981739004124230334504658592505805057505912459822713834192208875685779800740148697174265262212955142605047155837741563509820685094744804009748168503859053696082048919503103619918020824672904989847724440229822132744966287167933864959226251051085585555198974825290812129665019914905998268594087191166618012811374584195958713239892096282755404236576038395162661468288463331417808928802643152367765676106180910305989900142042262148699592504208998226701616746231540163510770779687243202028605585477356901377760680159973606385965323306205809196157148534390656154541642266821992838234015442361020543456510737943924317632744582434326404803746864798160697204134599146707028459873571405664478233704534708177011601611476748788466344014486999160369328292943404725869555526504193807956498682249696218818725711564454983212078801005078485519399372967332489085233842465232068887618637367846390197162571128203913124349352339559195073200434067183966465086712163648981583888454119962029548273147568309345739532103451962021209483469834635379634175329536150451634850159245165101545120108029632005512009346699647400800254791273607284783474723651933508735615006752767863557661371798001819564747844064759690031540908948528754773702920061840904901871371583327519191429001932092825908404265499773382877973898834343375208968161732409149010663319932627163993726451544338329154149707406075966095728449688743985611190792049234549279929101633973519991220136774071400968295830961046064608715037350535913414948302643205133591494530125839649655051225789425649980383683407872815868112864124902432333741772990473075365735463204834931164102659872249066875962890649797563108542126142699377310450088508549316607115062371879605064986909988138834473090782282897317076863288801769504380435043971654122381050179110481624211175569555579724227339041614796408551501767262714775033420978309714238398284749682466046277589958933496555865754292215761246080368689740813962517273697700194959508664100189773734544700637438270970986549726519438364127863216219742340259878328327836201518853051683315284199702975962039174874650403483384769318525951651389778233304093058548759027060949492409703532186783651619061747841146335207507345963350519462056096737630915465492061449713303131683180194969221553704673154577356316066373256078443309877994678832244593135779847269807801076863260997544660749404211326287535804523897783632463358802905190321670067156146019708632239234154310796467610151714461430174201318478534442241930418185793561257618667441592570230949128156062211117734402149753851110151555643272838654175567243601411821383123266415231451587947462628779708240415519270433663748085810883974353814426458975950038597972289359115568163761096309159933915889150312151448845470782573155280764139141598842410337456153892384937787993693536326929635947298769203375327110121171322710960314485263245637985811313017616904003861817658387965211662626979730557221855133036391871148175314932400572033174318303668400699850648870199902404071873937602420324849535486913998669930262316581054876651333697441501288139299868175740618934499001112245114646826958965994489089566192269223880720322334099722860415608012824694481993687307866104384249117833197260174983376751932834471769730916031088193844225831685794478349882933444001975666754091468648725245696958859038138699423096284289982041801550761236995158541903005131258536544965387007172945742663736462783295767125959960125230105301066589867151058546004219103702410217404290767721389234981309012716809443528000931392172958434991373253079184181317285270907929606512290905427184272521810863884250162740621462227245379947715507777603686137575705769984067416305909548580400138799245460464750678483972435065630313699743976382155384895294185299214514489905575186462138373225676582985423961972814939198237227722690984681962472106069905143329018028403237557159513432474607589434876455853897517192891704811946664637823870301307671829441623212152361450147170973392455653914999656520426696596505808037728000707450449614196789282416756261216100191544421513502949350878241677757473233090846579887505667213565707016972247776520813705089792814307815770881499838532648036820352399117202552204550676596241271608476990980322838758666977735280074363209862062753083365502857496491053847828379706626606996090555511686365617510066377024965007891881501996108173289187620578043294503656518883474820824840170022661026966791682443216737496079010391241089687537693584808418057010355776299706825060280361619809523552707979930164309311527513584403785643140543098407267490588312322794505406422386069152454022033876757171619341901498428920282651200433203322502334707807007023782898527732146492484489605002895968959451602239603284782317304336791498968227963684068144704769483164946182315818585239361481316692151173915541679369793718538636169414915805277324112922972150236879387620038623457355933936052816723379795343116111220217979876232337849382924931591470946506881162427234277969587464236621749335302782016319737119370027267936401725038449576334096695903665839798001512293643654996921303055587513834295202789110060931652476000979322575705487080908017878446679307775357477905111709015359824475151267523564969282586192754622559590478846686749821913512964409733322395119060348312391606815255763039536723174816188103762314378831060872705820254298103969658137696380991814825187611181266869421839325234976411013515363090005690703381394239788033815752423440793798603214181892592282428560628167386470151794230891703752938507826153992705462266827370586189679042189963707187959965603653175056659454498396273629500238475780877818054071575013024356264928608673258633242669812944204672493441153190771997258093222214235903686293714228244647124217695307768921107274287248785007165688384017945264084871291245974398403772757494399900138822539739392972082676947516558918503875048490333592246754530277019694986569175876656068400503887064597750662641388084362858533111351868745170035632194808135240303028352196186007674424196022697024664817687326981019909051219687066961761173070405635030312721835680366961035104714909779890003291594571584960385473886827800463463035882341974383569673972719287109585477872039505789305155246864306557880817668766876973654821365321833678492167223885911005760151331105562391435241945172920495136029716915815068077250975937439533601696829797681840920377307077944904582283956318481728385134494280378736568069176542205284861556037687902394744076375001275843969816319509745841335011386969882942736179031541998808917232099501259569773082478268495606756611370585630610694846234551650386403658656963698297888357267621711192823165936131861299625248061937266341291728832281094884301839348175828279999919478954145165090384555414684031797166705786943123219898008067343061520266650015732105256281565028516895606649171819186041692293594170564213255580722048537786313522762611283039228644574431507269539764067412252209273436660762699021759646607686559265041681667056508008454314402085651684785907555366479386912685537986255455447839329615107841478537174510536975108545983323486235743021264929767067054107105890163253086126628594010733457362012224576636597725267739797321895400714076013497072642820197335986308168963860206321993716056920142085131877090097628904935852272957890683311490029944452076640192555729036317487551189160214560898088919060385371757355396150993283293072464164046354697800344309874847671220169736220787677448631302023923918885042053221524085145476112620091189473029085826361234876059951002851509671752260622389738594709463597351918812624680238904690494387568201231232116715269427111956109330896539365933504257251611646295228229997567542459638785630242328554540216721036321536526622013223891452582233278262871818361447297244952643161399553905119686980256217868110442002764999618161600851389906359364187451971792556131567122328937123755045266413708457310485007335669687930931974046738487393801689856084799649859512298220899999475250866263033089599318132479699939503664255992246157256869710349541748192755483834135974236389877243066432345533243868647164964844833457352734486343989525850077577548621089500573700420076530034772626991672195555759716412291799560987533571336156499512088228943775094917638714602842960746639126379204816105406415968364980293756854057145351073567601167056530886706115999948253030266593294888171669608033644648947125789386716314273671181151341278788028596182771187271086784993794854925456998982166836315612967430271681657339659124457830812321125002609660147675088296987213301367579388565474213989937427283196093203310970019100659170695719966557542566100898410198732210465285840881607361985452651917304592273059653274415865850248568911855461252597420364850816900811905865669201989264702657319853491278728834729708796679721473498741207104675717743796218344269056100528207081031133414515729886766528072264926007488551156830773748920725762629536576543952311125545449207878895593744968123531968454007026663806098320273053047876115755658279317766747808196932477221720297295028209031768094382701964242606689806141176174258258031503941151013693843134179862537570997812094828845044599697068241492504300804625794553360254234870864232372015412847773128872964389640435434595000361344010873850041565127939841226137252029414483481316396409498206574514158884786243685458702595141227961935137821782667724528715848674592897281884346636198077282765206654203272215010295992089056703661661525756838795414193906802418866049453186419399740600994585472035698966630509546374758854786978605212183886818086614964989965534289060995041967643047758839127775472004763500124087738901196322273983301997209362353459948187214345753599935535353698196528491172929993142791578762373935305928715506997316911420528681690436472355961981255511520787365073935272158749197127799861490512658455816733571921437844772424706379430541405469344006876508002465031117211951636614785742225167380539694055037068326393234574602563772771898264345199211710728042536743766657422944182890868765850731736079647974329113327067678645555052945914636880101092698130948276279610822952352346517491758749614923519803906353374558980567976969499522687921024325343232601003263774368971031036294041272012351361300892463299128568891564305690475904933687087454541058866988943373418149830497898618012701889550388025502330338291049306123881719574100461076407104277851236797956528248784481525710197429261003338046485820626099239648292613746094864166066861362875101271250720055090536007378335199641511893938816381512415304328918428373664847624349101299379982191268106035350522087914631401217789666885113069031757227172563233698042736950990959349700509590230473033511037083071891901588703952649386548282354732550601550502183367514206312238728566699164578557740554615497818018465543655027085308586679581041319276145356429454976425582301755355508365173840023916584945021477993587373210770048550868182665671788569334133328887212061760164660920428995989328726527791456239877251353121841417308396719904363478734525835337349367826441722012947834199906781738252029035971978182093668364921211121536827418576797424728126113248375047165965378739277553860798010246096913850051593524933457737626329324899998694450860918682395285885946743314652010391875493435262128142194173686259863241829344996710466220129822247709064840849056997229408379181802884168817364814449279753918403903859350890543660505160060165096980963024254650317740985382641432867978343371386608478029257751716677270281464014148002994809702705384718681500526834070959873151812267168716542749784192167741182663160511778610142003419602883057702654733730950437855123160296215393455697570128917200845209469140382232006011303850392402654447481586679355087610755444560004025824459767094056320840182033182325990782123522079164764723956759366012867360567656338441472681565834419848617373600872910677972977472962143206482227180663383389027722185975555883351634728876699931634435713473116147048251720465262001281036537842474163744054915732315418201631399513978826487555717211984635986304999797784451340637574388375975983882366274824768114927890556969579203059891936277663397764005334762638590250722167682587559592796922655412489587814943533591260500880812558980798739230908263501271738126500250716960426557031449065100564575838997984428969123137758833746097345068480478276764225666672080210143011798188530623151688043152083525468018851271808725447289203505302271920553543807249432671886501912549974744344850362990924143047587595484264621276503742451769111457916813974580230885490231591234133946700635239058266031950497105817534452715691524898133761083676554206017551978111653326835837874156313898532764574395914227772744487391631983925478730537744111356152365871791463633882811522247621797078123404463125633889375238060697368270295186951914110272921919313712189511296603351558387826198361090534628647070934412388082975872731998409216865194660304911468887542719846253078479163243810944555565570335531638151796027684721540116744522001129944715035962646753877481066392856799842284698761994247281343727189687571844722548861807228082845606288488474970814875271937870737528899879371932343665971900441242871909919429203550214748782679934682449198414049431060995612479518442813570926592583466614517273647260513861291157519868343155549947128661965162268606419474732776166963805421018209169971999483447544412784360440761766971152976183271606501951584956006281374720712266897697741575808185876746946341696633517884484631568298172936459374868711546562072840436879447991441621327417031229084248496586231877024960166342289274620458611756218393826137830112729362242234740841453962348190781810678259411736979348771036835136506184313730735690796065352728996152331141275166563457118086085971925071932928335319404797110322336733121295425014618561070752009738357586118366530425095552714343833989317819003462286459844834400687310786255922781765749498901840558141384373432324441778434324870745289583222378022581445346070109827975203221671039904628978883619585411343945786729165981767571925152600043958686063561944284293763552969609624273273514111315769881561173512994146029035753171527584266146475023407654578675650679379172746256641502134186303445481215250133036394233226017807492236927029576069720274071912257996833804081548261784054852581868914712624762179137249444780664092732329892313013467940496991206622553538069373402420452907080354244189000161182211576198419623057959986258111360319860770237113626239973900430858247162465271395078710169500303397447247024904656547620331161580226195946629356784088608099096345989244197112507134843818082896442945579910402532369997669990108563613663714228154232214535655132626202466658825129180085721445763109751149661935939698779790989957241555890227328714485016057385132158703493554786054268098712983068186286286420562250446954395967266306290016821040838602654216411170384795344290187265726704543216792089052891510435510971679368705300628613886870864782249501518236310083916878806614924163130712056504989913794198891755299107025264729715987513235831310819159995539505084869220588602104728903276652745161952065710103607508086523518670261580078419615846199671343045650139484607358798305534370055185939784439171717050792832238029450319668715093233513431111457756245776561125324369111099735158287862239787087541495502997436377302674498943844781522707854838346396087032418091387894690881256546384214319643885695119953724913011745150389537349086332953072296552578479868230295364490964533949230611152086062705928148367098797049899492528546014039221286836118718440151922499181828737503724443008164243332327225775063120708170183214738650623646794480247239007110277976505120971928939806695453119470316981424145187323996768093562079464420602893721969408995189517215492218619585006682170134427674127307685383242002692363163776142895190524511020571786859425690435337917885666747443034003179482423053754207939245818256089669461823683877402206516235767694627306046730039942946410637459916325858947176740228617449800620562662084519595687394697808451963635807591430401718730643134921744038206692227861980718831807806390457428762864799078568938340531215932894063850065298167829160887756416243232799640532961357357431983910461241512043087403124937382666557942982027768798757099713949536354855883340434192333721276115477062513207640817179428204168925830109639463138328044634906063844214696023705426273545805409731756908477121016936485129292155134140318493688506128891357401318889574742282189860390097397804093709979941044473343402957587274546105879857008820099996639059358131717832211049125787271590295330456287120128185050374909120667132241155352287157197975068001068340034557536244447336011124958444660918339099788490656076365580956877330371741856186338079338360122887104733692665674122271220885512439324766592737629395251732211717828824427683182268555145663426373340686272791146472484142978420653321042653670771207935610302083760907288941756591812975938524145361182135340866299826940271665219917514714714252729103679027654934126092863780373598919878594503635612480372385252824997584609015746270218578905364321133046606494106331570911464089400831160665324816438476987507442197695504658322661751823690350903467795706262095365358113218465157851594817081596187253871824336401090638293969290899037490645345914591214763580258752419681309975555748857628942427479682383349684670052202234065928232785326192808244487546612767228232890952703725667635360957981665863186878583623023363052892104300385536392341673164542415625805924948856594976587437571611071265867850070351174425641711195169877283311535308783578683099681496742171970508702356160631901762790838647234777460753936941264299480407275499983790654929859738403724505752154406972055013229472427396967337213526062100130233803039269123318996824824745644105694497455644354626847105986601232611145798826939310210361895983297163190098274086665073653131441003670027351991154044195506221311820952409870875616663658037483069544353883205712560871364858974194468790795542410167208326207017647822725992240063179755239092965054038039895085207711299742450423049934857749016730687072745063168860706615576344482940021815001714109829190570317362171070001672997218476079940455155493965241499336283629700795224030910527695870622917076824953237650918959170351746406847921825116553796575252956030179087764222582898326920454341817556334921943761717072710004966640012356613278238693190305780174406049036939604376786548904232573678494896323007776193877923386453081551248309017016399556799184337397776658332698976559181004269315943505541667085020645394994333359707480240690252397162371365016618686123200889925351064498393261704741023497780065435612998145721348644956348898983648658895386150804284718331885290793249010707630486318055317301909302991382407432871336323294699001892588748115577957441305686934915511300416440229492434616226099259901840568801548528357083448099343943005830496894434234532810215056078519464274883383312820002471950758222936116202748184612331933083196627001671543456724194426382669468682382793968711685168360934492992367923134363251933086626102257132431052585840912482851816049348885842547173136585856678445587797074540005143514921125074506161552054896504897017955311065749542630557122090223470246046052572710436320344638166719894965221656560333906359519058488268943794640004057327843808723468340033554392798393980209157856302494470545221667575114500367004188355235072992691546645992451716025250171879261296611773338999645330786414404115741498323845252425615610312073376991383656511864705459432589873859673591177829274854807035444972269251114912301453333601606914897868539486512793580237821945459242264222203119661735706346930866031440235317912104909645346123707503001699924090974268137501106146329000442838875167693007529647107951961259391364734935881684755948180945116446608654958767698639547019222237096121885910295156720808493290744287114863635397662364714138767694809905260403551811723778144669192512398775252577259251582412089325645509334856484503491407830165104609807153236885876862682058991730886361712418693412963438916691594874600423934046859376588997522029313721708803357092668439895799321014335425369635562059924171759357979036444306605587541749365725871309324695300141788652487591462806186214103692476562729944330647337665880469740654433276710314855969719365442388460514966211006737144380755242712212703245222282646544440342166359092319042458011808130116077267771361468030020945292827931808055132882480923480089101134323520087588074201540358730999038830686497194417056650167485396579389268119769442919270460505616919752666548715900912316772415593417953060597761049673500797505103557838231360190216991774279234126435910265975100547854454576814385255512509482949344444749985457899305146585621875389068038822027827279861654687872238759847864832920787016131541796272168205269642125841389450916089330692950271405075637151830170776303106591288531429730204560624641180047158621119040174402031516710197096366443924978504454290620206471940108977678924089145209577749229832083586368719981685436579209975715957572587608956089550196070593705231018519465307734272433498313316638832365172317243403157213060360385628636647070501451480426743330655458425982463756438850862884903170551045287993573074003035059926823257945226522813707837998802159698286115834877141084044799226362782023242779732095618406664228446839566563341374959561911778658803268081526116254321194713234054880333416044374713594298324200431761246968856294814395635206267230023378518696862982456353666529091805656794129626580131950377843288839539709062578956697657978100869462144548729324382716581743455116399131124626364834912719211832243669318204427312772995223163229848597372737515076569003178044170226481789138430980611828762585671753661136429558185857189051555667318884066972359950722886145400785003216351271436958598026402794459184932748370942878758429020302551694978223202333066152714442105207376331430057400611186189086207393662953138002046605335098073248591535621871211827728981634280855336123203684115507219729512223797752091103251734377194038511835632045273444772528428619414977748652672538374626422749015042609754753807173427018481218131718370681858221411626308235124055698687566193920376851967510783067948580229403243041653072797735726290478934720575087019606138442269948463494675057596797668829891229881618130019689212925548182173710085795625634554520692181647452965316499334371699487009830150557849210077768821741214648457317694979690641515294918041617819390586596656683805655946499307560403401933081661985801579084478751927645420224396141313109738869303177859176208143038009759407218565725998653300477074499831923734494640116937984690668230271974160244320583333090854335933156689548188088934695178607552076345785446092581385782429836317598959702728375132172886318555565335867375710535453941889686396374187829162102991410113331213371265699385386050902817886672462808721250311620360365997674594758676845081251760775377210351201167827903898900354400973742620176267277443310123567756527926268058243436279778690221176415877355816494217399776797682077779164078169730324511146440681572629202016381605642020154783375546851531178176371469272378649419629098853665314770757797462484937606972251378719286326921509642171461799275975934884296864675498916094044622161553174089024953278416928005651161945056911804327782125560531152835487833837787092741103551231918527112402951610433493033384626875511097308702921949615286124153653760890124174285957273163201699776712490537697168234101815492588241601512366538300533730127644390710901840098632733285804769502888381945800726430433576534068886124923762070058135729605764693606759132654247771189237359717506058205398860837517207969441650541806691547614072280255832982258796525067253770895977951634077011585894539823147792617596978120862319030070672360158197966780989268350398963444500470474845467801908629131751770656355198141595805590548642373434174066392412284556831139417146105652651681914765421258422381434661810017546535015995346105877377524543149198600219536882537316511758275371019425130623447231681833581433587634656730526454313436089963313938950551807412345797560027693597607291844252360080943922293248538673671630425190196396182675494967208066380079000105691877621570351570142881069601783440271819394125340850959608335038284185529645976215737783908430146837892560323584054262815670670753256773436583543048948392588363799880157610603203223566978080859701367254291335333933492959625767407978558636924701980765417382583667974896726699890154117118623788206856909220979086718756781967398076520271007450685340341443575992401176060235749438098444040810928474726612807842976867371614390979342975559491304387524191930584193822935236565057249753587579193258515793373575658442151381576979702693819471447272856947807863618844843047826758926421031549688349110346974142661086697408400278205173606331092452578339307247155951587221684062128880027982463360014656552562811989718438251536379941500890469120091184547229536917003022153942945845126640114707792899006646149775157764135086644930648989339104204737150211178255883590124237471405584719030051876358469799949758146684536085556277772948691352556192846443935128573804443692970756353385878095901893850052623112179454623585225747023566834894573752265019045041023510569348053081346139294006118097766646540888560933549518538438935117343833568544910051962747195772252977075427409914158793400717076897055418404100646235870216746855721491778944956604911102246397689459292507507870192300341154780137037734576501298613912916686832306942549829813117661128778859415612468348080149842473450118180125118828871078630350861298291440406422888303649878237666590214245528699912080535686669579800963074389757841902836319713297845452963575199371672630574556634525950671749166892472519755663233655770131316243382181002934362716677074343272805095373597001153250904993132058032281584658075915842557689933929532722380877068794230012545519084386173310768143541204496938855859068555968811442091470768703683025771663022882999107378829374509832599682553072493273103672960003180343962392511117449360943337315319552570987584095500809172651340948514002827597192520805783145772400902904340315244954718069147291824924491198485525288706672113316884608038809139366885110565860889580798713354556378507590140429697221511774048767192429079422872869794723413221704128935767946210555444901494459666985913745426372297173930985994178432185172781356904275041861259374153637658782097037521708527726271615628384819365317611341639805584996620928992972180219524810799873670098603209833134908068480477290617506653049409191977815142826338681809829062309548716002429544072348313859459905887709110822109037880061598321882128551831197209252467391247283536256889229134077282830897115811331251944285018078601600721262545959074454056064262440721674181752590707061018720521977190560317459036583240494885047062681205850515113022013899141296437011300877024318541832131232107138994644015937614775861720289776048637521257591985728424719898823072795646449736427595646098883512810868774871082742612701040129831361999723311455437655408985327631281481856229761884650712693873154235969551325005574045216107545083277439930593360072684295099425319651295485056636738398372468157487560053882141999916163114673368247510703083965370589116338991648524321086667923573965977367292529126988162917688747494127451819576707273921000748895859659498491729010157909078087952349552924196399035116930667277722156494554879863937087069113848518994639059713206727944465633643196999589402621563865919848652074123716725613038611179714314713867798658522108176122455323238880345773469141615829877822215809543166280800728450534497170376534849760783657264642513547321261950604653894533503182815387179371121400968324875489209381124800026699113993183874026152247742181048278701505254833948445944714041775420999277140830519890444924105467786459196792218276213408699526223280095078335828331658119603944710519805148778182183809473541355499516569702582351313890819774544669863702256056118764545512095975079161857621583989403637863787855673532175401711865184144188895260532526903993374651027947615102850472038613096474115758516347639831139355811946776942740044938573897246812249657941292639966036237581232231684927014415742713868587419382295830808980637192525847694190656163067365049140569809555656672387063965013989405749250869438123567701195583953561856301132838247933842931701395498091357346351827829074398069914486911825751704711947944240492849133479574765707974352747983481305059512616259348678666811410302545430636188763326995519095227763420167402455604136535628763910315378835856450836841532134191500730261267486367430939819422563888775810231312419284303639997400188160871982322682732859781077199050515835742021768980773361150080910517409774873600961756130254425028941648345680222982410452217973915715384746670149872647949754492376008701750901394620461865150056904303687914476323793616757872573344555661787696511910563261060577211834444836739619135423165341791475857984869761985142594680840582245648627798941319310707737325503843795252246515859568897951591971883647642352987600312855789011050407043971629388711952379040813875995613045001268156376360592613571330798743155485266788940690629814146983785775905464253502449979370068585647435885455571163393252236791219189327955727094488055942556813824370898936822528208080150035043412119301043393405278373768387351614911071818039699959107409685934771368153027332739722482590019231271708350720647993762188661469383421820138491076527722347052194473625121329895856732402007263864438064581707913390322178301311928732860875795074531339810265401622731354743159682655024419854986720663924529165043878321405540575600948038671963723279942446613772690727396900359312991092718742818675402616539123302938203321371857709747352916981724875704336768684603715104098405031308894017831014817300091027632466198051177295517047392468722988538162013053639602220583205246467335043882291613505673626715808267534143246657771564085679349221921915714401843092074415889535601782529159211995924870401052313527553039914382890466493113792445396003527962974766355203904526890494767116149583795967909134960160903847052552547477983691462760205789442923535172228128685894590376299588886446479175342425237401108317864006740702067069676587063399311466156582055915829113282494434215319082426926971561986630144323848602111076578207226371874482164326664314301735633597734008325799818924516133857635286138124010153759729384080266670830607040727325403891632360701492747248390173944423766603120205178816943137939264385186513373625867561501524408585392233691965970490515398213082000564773470960963847138315822954613938940583441134736618060759283532467135572851757620385153103279909308572066073879412132078862792917263707276355991340282939351886890813855863729745724828601727610000412208015551343003392309746959017264747897419793682651649535019555946146855843484187214988878827284332884426565227072700100269615665470318886023641206943480188011938956728839628501277601335078654570548662426082828141364246756102712470695108193981451478767545093805826580072325175974108406121801025952166558664283484401926806600663017302512537840957614596118804383322024772769164648363197004617203311011671660141500586972499545543147085816523192423857296272222239055050498372185063644824500972754576519212705542345123491834572844050656360269445136659159201990974337415277425545097736474442098569757544401047634665290102307192723545391985872904884651569127390423735140521574197812066291279646099147977765036810778484628409617642256371050834182519046180469131667096131507161712232681667478183957914253740893874088744906697403516418554326774402232568864405403782060369473058685911251568427210514336362150843018192491276296834985720311199416764212936082928612841417840937477539373179972743601816077574436201679128604128268453644174003687521185894854042194686152589891295898952108545702661026693945376753757282830563296427850716242153065996647358950479147982528548401614655870887424789883298684403147715455321242594616298913275060913300027685791649545024086453879065964984855699682894055780229816141183042496476508408498958771816806316409526976102314991467884935972989772925590362271341314045652979913735245485769120612972309682164584245660994989435506927175363033648752347943752247750254145652045855219369668415437920094791284963886443544963791054675353589175993227217951475015490530186349593244712667860039601251119088705988261863435065696023349440389650466295486551741340319417309385462303483674863721182011935709074968760558891249970987767405449688832668538362063080076594780079679050247007027980528927067346159687846101790496763056727316320278914414101097072184077337548672462515166496364483266281877365683918518584461194041421799556946308924803383757488620011478804717709488939716929313419857262289838601412553280159144688242132824416571344724035878075113431814063305776500250006256071207031831641567532899837721782457351851969686050257876344816547788153301697487788532233833407442667214234930221492766567205931670154112623499290802360058834500665761313412450218608403493189883617889913329879640324917838431258170302310726605407767518778040576374154774207931872048917780585057130110771598879515944877257687371435979190899797500096108591921066689191132923326380034936071652300620804610346522946411797546953595508458899920346394934791915894790542263826618286347907824946538265859526182756474469540901736338496400950280893530910858749810457914726802077745914482296181064449877714819400679804657733859758266625324629259296065426823546018901728663144430402809389774333037122013781519317200869620641368536271887075851718871737271641369578487427708020884285634700353665931716003184035813942374055487070832900272447659324731893232256860843818704422656812788705969361539952683776823530882689954681339444259088382119985860846699947960626846342865324534272918772485407448949913631537221479998305899169607746967969716975573150970940813440326247730946989308570165346124726721067998306537712403585798004495695671180885254459886879634607794687324090722273568892697788831906670766901898138204167474313626966531856969705852140170860422916581045172881060843792179034506685853875956457552260599568903176899539696132598174073154102157333657127081669079544105828605842617927731463143709665423681942598780459532401411283931460534229063392073911157066322075215085600179189973759489715901277556062887048715489836510423677842516272784088901687890744354488523084314262604283295229666411215086057348169968504494368892857257767715965204171352908489031090888673382460132816435222103259174075737602209384658276829924956402143514246604203026829910321035401540093206299627790072047280391698956174345232070802007371626750909405257212238748765651491811089398962799911247018460765515064586846834443556157752525805379376666324864043529747610200447378046088177458189003829209115157151349223450469948020910104459194259923241490003228574387855933083700673184118286617414994222851188040637510281248079385297513074449575187384961845016514460907259267639249933935344188949523816047047738000660412145037445187025814175950979464951833616030729324862801672646093520947838429407369281165899390472044339310176669735472886225648086481701011450781555723843299456198160014256090061314155833830433089108013347893847473048171555657148046098848170221234782019713610441406852372063754666100986827501797606127442283087131673401259871428091885674519732475503265876713884075520046406635946907800835582397583375757905983197667633102033080688711696441627340967258422867927078600846490881897393194642010559470495510750506192255543899723497492538071027590956226088716638729085258317243558596483679427483870554668869366022328723474521325519246742272840904340590160657262174256302771919010330096201660802708805572503337799762581972607974608844756969379168316113937484704625442658068273997224970916746564644492023955665108138936295569064741375524434902657452360563584437306653890720866217617399702785595339294371910227760372730624458081754100709946875422391909340586609277954927688994557927436141582326660974905511103835905649756777827853398739159623735767582146369138977295041528318408582116811039238455804459503727444844169884525615458367819997257909449618891662408880270439474074550391562163414551391754631658592276965566639341172248401105874244946908498080744054692341381946541584298249714139173148479653114347364611055389081996220331924121051946791000792252874359332088432940169088069534485758003953747280223765204165915606223409349438978493165958204257495827053289692045310041724827560200134860118996133673901759861459844715331159610987892731181474038486328892195877606072891373842074968578776972247162434617525038911624444551873643046750726233248252872616985440690940512047623009581878565318167899663421785027574600444011935540868477000986910692198817408797644163700374007252785150536973219019952416287758151009142240688627028809292175255789642186030963586319291774149581280507438170008764377470484659913505334879520974583978949774579386523703908153069812879365039001915136143320419448450205223051012274702174697282678630672334679098779862503484733738107295732215877024828327110480874826609016360058455865620262707186831428576289531067303225564558715388050990449580435222435761747168628083087664394495967099284269535449904016284058294316679682282700827988253184462914926748290290758647620324370578509892084538361966318028819761878020283923918220350806789212135242638478762746161606959999624759570412159945356701805676763299216909273818950127896433917768295969886542325039623936958102801709528190109211012651119914660182863768393715238810553656816711828019887772519409755542246325565824186546585358904671373963857443407334624982475590317251648693676724095855087272728291842326417653199867384464856391674141660110216010941021491143636635452307602791764391048043868234237508549991947325423848663170240828869620986102122322044391928442693430085261232546549705276413879527852413562170856988621713717990021122631616019794963128137505188082619785288363632136674970746571465089472486270418274483513131603326496965373601159972761108079126937089814060986564086179904143050511912962905152315065883831848898257718836174394148323579567152837246019447944384741952721729028863798143022894422423357700671205886917704713024743823655612210092490203768666185075360347368775181867554914618529126656392213191929171610029949061662464637201681608635040820891761506843139048195856017609776442392483070804158030110935460267367001725251180241078571237077285869004187682387045477879495362324238484796585767276769972315930891684903924810488933097502945807327914574110664231475722151407487637262383732008838126463479777237507245657035271491634176215916996667750216218099305677628041035170789784788190910260056256070046862403978468962554721552129766051828772430672156954391766355485274430751076108546670749378016295063510009949934206415193982121848349027664219367210900158076502188191922131172677957933478036986282922626752160827509788123841545936725810651624434262835971526581113703806559944747757613301936916607609335186853940932054416162543450362364383660530808186868180494759694790184959538842251359995836893524106962528032354841901375089994543593281613135401349870207249862981640926524254549053121182137292884780115020633126935295532255701404547244978415527576729057959042138389786256305865006725169974179546244909593608427317415018011217521796042814110655455457082596929875140714158089299857408945766161675089519369852741545690945740276381049270981348918107310576684671494812615988539183094240391973000657547976822146663056793236324940567416121561526055550484230924583442989927101261151379337176221445234235774151649438265220693917302280980023915842095054903811334206468898488354991379479829832404011857106171580999295964114498532233607899151590553289527119345116764326781895172213591987330919484053495917981893072219722121699764457234217730935954993786572641229503953689747615704329036890192757215788914317091781378832331171274918653075832184895763267840871891163524144650832927057145661011514379102561779890102427169111907142077584276348154931968250889220587729902805538832949065447555350344038415860548662973887474669147349477466169243337612838784891902957104615443238161608286937703241918148134518774083202491659521938598547611356625471887451997378265227277017566440304315741357622388365917770706196412161448820715554985643740353396292695411927681425855346292582660423107759124319202995663069707468211213416313131253544732860924387085683539727594087714484337334540279628753695051544033853283457676956971634100035930661994292554557444276157263879988065934207698560655935478685539198928917795450841332159879698354922175773247528660725591072448916030704247451194715720108420851554137954628847760602866716128436200398950297250493670039558486281727517780971682349758676671535145849656290752362783724923315193629778588069387465491297888409635897388432545910285431175620933958878480583746557249656252219392943182560646033363171741873335733093850854333867357751128848439383441711818556063375268520053771940002696927265886969582715885000104432750585097969714256362671714264885484069820208063267909643693772233682216119543179971855064115733950004672071156891718157956885470496789593638613964357055065172044487447385976858075198676423454669482135228956863843480226619398428296855966494306348161784270319202085138671678883352522992914378355633278076141506141162906292949406194483960771519550244309807036939046979579647143861346935316945309115714871080149774516151449787183888826413422595411747692776316986039399954456720170849430666882756517359071645203979561565972614792177832739077822736106658564304347820150555544680412146026682160857768648284514613527656394957481925540267748783814686005160096222566271995868553281665368534298366214166672055002816426524727473806232284669899141493988115464089741970115008403732843737718700332341662192354405223571747560133030713494160586327113589385510405015928030668169197771200356200919009163513599162665127741937852190731992523867429526014267686371787151221819546546583417965786503039804119408790467601835462156959258144380947776100850702880344182705805380417124735345029735438261330577336894176977649405247508306719429983711685118346146799984565145127706196939704434419736727776329640408175347925754747848930689918923637480263186886721207485955958211967131188194692434001432869995439035590861460500733632271711404370607481754462444287786996993506814108669059172505683288283738704228568939130569607124762929241136342165461667471423308044253024909134295920669511844923359914069899693977229299527150935532039490210743599242139461527672785033544495602565097994003474266417774787278795801831225643480657493021298979424827979850600688214254053565774524107686362566549509067340658253785995986457713620419019270751881436770806283248747731317375525809617277342582746831234775575820914488384261315532613198256134747399651604264265229466181248123609538495171752950330211858939115149322132876728122331353540851939222699446550560964721226878072572272041606377185784543839736143949417810934716887899993226552804888625702059992458632572357095791152694868910200270995092103582434638873041658640013204967225879906771853919060027450683308467372633486319714985891547407506140111180521648005700600940637731169039411940465153047030035806622552855671620050924201042314191821078687035770509109424320554797161603198643393535992970618563948135665644185736448661599692621116693220705422567956226755136002889686405863156340061908696878234844495205954819182316767902909213475042137718409494981359708307335874615839798943527101879074776289117405089834138504247800782449556284673641873843177788513244996529639235417459315457783623307682191244777052046178274481298659899494170662456126185614352427106228611246112581412019389786917802519884789141953659032583821581078634030819685075800396906702333787975118028073083783542154626528369435046414459637922183604365608566881099824582632443733529696928624989851224811387132261862595509318421420361858070717133193893051125371970450366488863535219195288202692726191388698933299433744349838250503286322115110780188595248670837327454067365767678002492986140923955998255643276493817321353228984434899952443402630035605168303687023322849959229040741531078226080281276850618750874742221274932032027947099006131031708337554494673553502250284731227006824788256393871393029592652553900461058132596597301086349061608708610239994614340011197470965452335587080613579883381951667701487415903659792162776575072176524363508914243450095636157552107375072358491570067276285771991332929303496644143870419114108830671296218818316226569464804874680005421170323756166387236541111704164496107986858264728656338363428077524510870882254158816301456574944498941393182203058304973079385530598098978463966234000656968657556673938077245849888035316424319956365388553448836524001034552166931033740259615717630464231213492955815594835040726054275333721624900810237590329263481256676523107699790822383258276190517506441658163058439957460032622740697648194097682827493157269776857508993562964471978205005571487136936687793526034187486845133605664083735195537278665986715493826119280998310287324665121175848505241404687177582371856926097449265880929461310503505038684121394150058791067324281684821500092806091781860952911837550721132055053771413843986941448273112815526913249710989891051695407004492150067553220035163732692638272800621058937789495224171308124367687647989199367716056374193393672359610296677861798026373483064584592630719025131224985868125607264782716994150382040488008484212208266033121565305469089864583187393036832138865117036279993269034479867232212227756386968463395543812229082100438120463708125945538281752685268343045151238007430620590483441404089398736486650524080177660162896459646803788055794515306761283523853772336994911040489757203700278026925417508286922237877533025445752778617731078668805711556520378011475385646938613295163255015386807889364875878269720097549211273442956885197982349671108972208471621090868917208803188454187432081552843592365800449763858544080992449721906389038492415749048143915545083993089775049749579877437189920391910749908210991225328162769270693951909660998471433545646443402625170266118022685873564230601349441060451505888125521243705180708890395589682737636606760380662110119394256084099028278482753779356262467654708721375947808340276906952175221744974399591898355648848812819076463712746583334106969854478455123290408469530295160427313880291491872617121988389218735682120846457209211351551856272674781890284514826983202135587379917121264655598247278241377112231476818061941171810572362646156641497012734049408659306224603300920833674963566405743989921851356627450501217277798034484863847438893700573279450433537391752665017527318048430257964626789210686369080718437656792775762862966157698997987079771511606354187165588388813711034523703185481957283079376666620945336484878818626544635097981532469407222808908659008864254989678638439878797556609160647297838620165144503381959314308114357694224532372823944848572674838313671945669922803562198982333442415513156620600609102759254139403153241826087197271021767308175082544828008112162522110870574028718065033087990046728074188656224136924392198278002976852677479472890131165853789973377994965913768726240774289046071498621196355602509712560424989685606179381819556715203180192014725812486060292011664952727520548878378610363341487970131131663514474953589322059815913050787484432895141107700773356712765485839730421401013156706056148662287699443328685710141681784397756653824803765307713094148431573284864566828063278784716443922598571728039640984469819908157071542538688450093264545293551119594327077863863239760492721257502956121348752450652131518196716694099660804022473209219431880962393264122130763989655831479086278867502899602910491812384382841769284166481878424828985223739673115082819376033278183579073430473380364512099659954725480345903604584168053925631955049827545143721116390696272392852255305709046846267065819885472166773450119242332147794089965527683052751018280181212898939062620885896494004667808968112299925141461867625548753633430190946956602068767958903084353111993129606756402296465806116408624370134505954144348108921667634833785616080689248666181441624203680398155666823919327371675418236650486313571684839374709702448859106761606430568231917729346411034679858979579450421158305570474950495593083075092839107434598409380267313650029643821976203374005673454323289517158469419069280967061075534586034162082608084091516105116765113242503588293538578232964871513049606715609042357504425032784679368205935394974283956718865565781368737302690092579568289612243727214306867304318021599817110190512222854687097613794671986773603031880210216946845738568005995006608984610369923686934498558817520027588242526748787076542044701321843347863313369959749346814041610038685684051746658867868383944335995531356527355816788160294360513948573410684931834079384554157481815141167291864910524699231421319529630005316514501185917309655776562109274370864472653811951482169207907301328208771549615066834146448210327704302849866619935940729682013619713392308039538501458522121173746776584113611519387158318557281551152215614351086634879065687657553998405918655968621431679648165299690955862450709797420399684615478045038448310940672954847558431325904141849230823394612258429307443784665234166875972621563016999284206281184030366992898794183328611676459815546801902446172574634654366053848674702506671590422268297379790875773652262345014093506357154489282824573420226253518209760236518016998968698288692977724804465255461182201250315507715532420068970363237752216523949428619332791348560340430159126042168376884494947559747736961597042727670687314707856371268210398682865955733082153807800693217063318945328925552552988402239080096604734462200523337680521996090761415908311352372794669748326164347241586996399191512215271786669495425887402887767633953984570732909489055445926749192871642406872880857365286414079132807547903019238986249273790514361444280653733266196901239315208883205596631425070445774874148334983367616679953724910510598755755007500518005435004097646828786660516760079458533374550799902337455600084903309677334179020046354123488954617599035951015220442336135853474334369745207771774611713495466220993325472823970804560384831096814849564703454448778654678067328054296088538565389531829478767093981333757455924833313357801053722755250458413152727087033578717949979682086970163356214281708610434039536719138089928589610989169751237921235421051359133504292528965864910293055042382806792829778619243281986033410741704500250092151012811714612862481080724133399656390060990481935353891878023654023677151392444276477855386722580868610508229561969792786437097472021773526123258497459860079352150759848189561825781355577704477396369753957294639477082932411566989874422385885639157842862070128271558207563052228375804412502709294043201243500488084569523924838485060359840664615816327647081642798566855012644530501360100613773887419137191593375685876341387806242043583690999855091868128112087499398626037470081750493841752318749036342275946049591778083419033928067628542540532754072520961580408686871151599201645156700819830807381859973740726865847878885192769278239156832925216940567098044723198054095602076163956436227176382308841949707716068981280201703540234246718036150585467219157944019203599700781851640144749075923388196296835082811597334116114198856786227358283286037797931917466862719195109719422814782376853071377652065457861898338484470473313488483348575154614127702635490643078518509212089819662900367219736335498020052230290660650238360977711577137182410126247475548351154792904821422178873371525651315388801765580243504769639686595294421903577347275937590437664281866446247051403466357536009291441438074033386771224781908895631294851872567318947143073477017891890176238865460705293980303227669583303453885920075327892213863732369552521577232636673834371602942290259153322350025710678963042371941287444577995088396264909450877795709278889032609699076372731715951852753852176943281601874398224563035751756800484159531528466625943188924812724244352084254910302462309188050209407397841753219318513913541152461885645060018918870969222097397688813812939318712166532212693049577369820743904878443253943257423104057066323418484034814056981306481009428019633310167559550646137561541976661293536379606391511548964322895849937783423857705526736987807837801228953514730644957626400698952631554818458998642987928302385124311194927970010926606875127916631041804739891145189813807027696163862044359533258377977159712654096887725031285851990999940663050907435670272449267292149764619925722039745734184160311023833939010435535810909725658286046945870918769144441504481827814766998886795883692272083500009105745539168466715661179833641898535395383799310915315445358824510726652951202185965417181246974486448313455717477561230404997702735719436870348992018966649925020396686838992284309769714158630679423313923659394870094726336061780915846059905945158630195518781477339240179252582946093467548217224347007248686908432313498853633301820566912642968221634139350657244291828095383943443176412931771865751166922403295833632947231735668351860344824982453976642458190048245647311700810916040586455868146542466688266216024676419613336037649091112629714050711828867845643921614493384815263624971749881007817847726874025643988432435221711472410634743863099730348955389394256943517416206305074502297063427769556730965048291243627357322544113117404029958094241873931511385396596967162019456703374257203228701338996716084503578189365420411220283148428738430790557348119997424423873238929314939629151218361218866287353736149533667641271169949028558998094563047837301657752521819561021994197397380196200762124140121784399522227901337393324339305010054157940776231189097606310846796397124740333684781220583127014792608950951193192554517854638524234911890249900056965480560003850615255120600924889091522211978348242924818243365838212635176833771418910802674641012778402242279080255903245643670473358097997739061562007706755322737756272626652519279623043600148251615227181953167481396997353810791604123394583990951171431784661063117048962206224479952020787021093099831936434346766630899230144983146543352768085572257306622633660587755828839955312002872011414493989250035294654824032614523196529941536624012812938125263664083556310937078029066134224077680411813933254445533119335145147920721979340642631178316481021117449497959731718672109522370250661222378083663589806894400694634710327237280572194923637806242959311607127894042430721703726519776817640537922501590139265754143424129436062780582929029197052797194515173360296982236007795872283180477313145705429403986459342159995500740875049830137097724163806293135527580316520596038141849970663984275092638612856552944124156474869959282126485973119657357215764120872864195764370945675697939223800411847961960028794347384992887175887698091088233727905820037585504216805453501589823774477077603572805885342426369889755594291782857797835509284764525177914209736102106448530923750253583641496486003417113805161970452815106653435815507130582023763241923254867822429449494645750767307449974561442232958159417181491039153315878497888494161391481360115403037873648180241745225780089932603356657352920352710960724868940715353091797992661316064669285086598420645590324268218123036465098504126490192985371352642297479756156503184029531278907042094685615120016819833500025974583611011333739642184795158949796058986432803846926460347507686721306036481569841658052166798976648961713504788442434921360358534616366983120510327061357315909282378627640320809445779035475006161686746158433627805111808111828046906090884631741698835677646449284236391086930461581930907381658865940624312847122289512502251606715268459555456240628862022178271508008793356340516510690300485705420014347444062273068490112723138875107361641905202525349228694101788405969084649491975318370578069144241802165355214362684844803346954028880365626455694810150403798870217393239666554520616259109854840840919905009286746418812735174955661475740574102102267310959473192608324364256805461459384812740147374369102185953237495756792796149659597416761421233816908164376052296295992788415618909556491011067762774482474790024270976090972200916557636923491253848461086074596550833878246469514694627341062742529854200934628739980529373887589389706719175131095551804556767499594392149575914309177449652751186365124698769297128944359636698300464344400222020601876741619513552751066246170661966311555481498694203730093725997334426921852023538292203406680373459974917319774334446321835985144157935982348593388828001969581572206319658998059123281723361504450906063503552876769366919179691115716100049005447303217291258197078445434290687367358624704045316388913869585643140669902644104080983517184060315770764904612279886548595622639557960637702624915244507246948236474025288473964821733703646155017506345733550381873325566076618438639333170486003383664633488703059585631455685801924637851015774955813251484475334438206182817937863833311431876821342083226407941919979341679846429252812444599787867149623176231263788010523677893187730127828346671624643250772266632455041706677812243256387789486604420750003232729927142706990217368377461439269426313858362731889915667419179230812953520202661116789179021521321120793321793642704312705080480954624863526429142126522373928421740606738599273087264469814939718843601879858297722298628367590276010177272925893458532078877268401787732887401907842501060000332569183833133451094547127695918979495834268310068538409794693967001858159136532905874619415012896909332757624546674192328191990177209438124014595639620966127058657727465882449777154020042955420595745356022683431086663955024260082945383656409016133239486892866078777591860912942258100642363319007763161867015924977836525322248581452324519029362376958784945090401676490651194306020509559129939006470982963836939620379047076215594658213464085003788384943600780690492271045371926004398566139387399374144616306513241369219278824921156008093512261478763321876604448428283270819710592841589226082433026431303018907704699415216305115810849136237744903316602398179145252426467186969785572186735317492129756447290338235348323043186905570126889740204473344569306064624673031774684406598005941810605059642010226844503577083927419722592469253810943384546668511507831352123866081451135573019207551337486679379421017372305247913890632036578739512161891142051734329071197821728572328258632564985065156174113493739771498222281894976484064184591418145966036616355766645695251051136371507048036540007581813908254820161460409409619294187985879302611447751618324000598616726534986891552088728274351237571372730377221085706413427097897705864162516929921193017913664253686584465964642652501558708425829727654145217349729312709274835262108030060906370149853605452625261619561011801005177527032775726739353064769630147934056326437359393887051782041335872612990863903129141816975461963653245694100384485043285947824714352780578027871707800492892898764087003910647300723548703006938332952578419734980754574603691095340907537310837291211897804021807085767857532022544722859443595031902484145851614305823973313274528033225238547155775454892224306988543280540609680923238626647179736565152597971711356114100626081388609212845004167321944909677986347014713294127430149221790139066204061082862186468101627723580947289674023451975976426919718246285450719733933948966493430345591315207737245975151811618413695671022390390666997217885123861740066780088683323929899099666868552561186083101760722445179119550480326219740477834330088651924528907363868044505437668924304082918314648227731790470490638958497807987069209894079115333899425738751902351309825191553653525710650445794675550722257860333622774102543829639683538215665006276481569285143446278995052277602500443227693226491866910204608326147638609111138575476402330498201820503692909518093087587798843461013575011452698909568767012493037900938797589382624673065857809344663063668334486038475309747916554689118911332774504424633633285790083246575893993437941879161822738278777472628323974079611250562730967627042381062912257162929482179623863445633850591731136645908631392032574007587002809055576202558260210669891715489374519381856678837386949267773259299273833635335087173034840452325809334708579854195815275699241935259057131505758481048806445785840622988671661920486052654032978289252363304993430624908937954263541753825387150484157851806001261624140626825774701731327178295834803694233258051799646637691138682095268893725866209115183270137130043373494395063398560868862133719259294848391233021757176038386874360636061853329865134294755220807664462703201216839559616256244386773369447582920542029351003139531921656436708273188031266702609371052912407519705337446925125895067723259155380683215156528733820311967417572788084604136031451005088078953419252387573009584040987791125518629630408538097360446366661634559618523275035552593116528196214490851165091748251304953004873127289326963556052386389939269506707533227290252842518083281679133770149123540412641969021610177320790315471748168245835332516270335742789646681880615851033572184840289950167956582840088106883518907855932279228489066002590150364100492321598146706824263567767396850620826889877420971133655205139026216869589769437509019691711673671242493165190150211610124841779022587348129541774998577697598971624693450554584161337723705260414432363196859376219923404172520684311137724556363288018884709306238391459374016344767633194039535136331792751779059286914907808122282978516428390965320727230539938365720940119225675937911396733124614711343381930491979060870729029900458841134630198069727913222337596400670368758511386395174664767276240873983069855251618943277543027747595250814036497397421752262069935330065563902034334556213570018805689293332429362056604776440568462175379405172858454665409229971079524943649801022808362975447784032777052412608548930136395903290023517826534236680924572776986598519306238893021644165385064642069870409124888869720640576416452311626975570982376214471146769048143618181620607776459074569138760709761015562679382427552945088729416331100918651598038375535341967434324355626426053666357113407610456984873274859093003490837707287488652250426467372788622125806998639118199453749780533299205538255766673159594770065611797331567708193986211280398454819075490557929166372038753277450911497859239816025490479625065026918590048841688789928721063603031068936471524810297588429857253015789859589563125135526113135188966652983109090020272281029799229530366715774256656160133842256020986541276339652319970812597108527462320685313776196871441965381739489338108431556664555664005399620959563944104789201753362589268811500685650796780538002911117488310993294454220708745986222544183620083900382446722037758029817502110591811702820175231443660847925573427362532091326974306655264865952583905410719354916808551903548039015977895711978968930957607364617533627696505241934892916657395104060609180639561298265243351193518348942227154475838194496398896257423746754587781858912030140426108839477125146661876949744779290342547426201216995817116495664616444208354944614297143836860473513685625258012712979159450178008652360521946308582780341708627765206245524312087396928728283460506735038648856143176249493807571307611977459150011689730619009955346708483229091558505331506955505922436497055746981948267390562206483307123697508664267887628137127491954829821061711385085174990833588321873274769764767610114135141525727597097423533892805160127714463049767367347227537908146911127620307556931510370600049891721466389252297864136982690948528974090495846844211680249913404222734601876374064774405459682671852234032578881786400271080309745034851753221810091408388976752395216023799787650382399573826845958460634171567083634365725792808519016601588608104113904199862846667312809992415944944908190147478522918994401210793813159059082866381051699868226585073875715517770907710762385567380118526674131963956715337987753523459839450925877884791294144233184697498930784228106607539777336246659368924726895048406472335591112651699009708549743760968181796826609762701674894760367537101010067133191934758159789530410262372942160570162157777226056125932430846478673178612036516674822128011236432494716063395410902613317004300578246226293496926495395831312772523217302275185198844662791372915027902094598595979812672324212244882629038086276701534339507756515609320283483738956778998785959279614207977037548780706311514158291368249462696380955733534837475773068661646621280251255737851513340880123954043110836697233586975774279237840638737958791048620298756922832372513083776392915445742587146293211495568381233602365378003592350017072118265494363236999960474011794530579780959639481275700667534152407184023946830220528348792295500791426794470282670092431313125604202255472648991688286079413541198550624011866343921000626394390176371620081955859458569885560267074313015542472392510515781108298123204842908910402517179870178513839517577143303653257021156747066378956153674709374065852511858549314015580974211195612448449408532394969350253528560410142322059394227826162147230751796796617547250501993340420597444865497910264514092913734946772286888482834986329033588780460824644695261541766414126452875223413755746218538737074436653602638186656883567880216181882682091963072843477300518370881296842571077481238764068374647013875487475034439380957532856219574792899179689839763564918007569147690931570991665728185720076347811793344902728440754204114179827122185123953077634210627246098897069782834367375877290293347017441191819453216298056135993875470684140167617881406847080085877523702373940658046032418262510111806307971397076641741452465873154063584377933888262416168212268013824171392927345399942674979039645439097673815958151955405613001471502167608305983482133600548107425265927062942444828906401552747560381516612223144465913498584616903985321879691089057448161871320390976926926541218116289431504902862830625058537730908282625284977610023461950440566732569750073508216860819141966414405949986527602605060953441533384937989575084517115889270314651452873885843664143767967879814712364529554303152368819979509219452563366220386821186028384321631877694844188333964663212717683103065343885919265257183518151931464711743158765778358777993990382995451227024859509398761048713776718257250883751630142163966237267058695871279774149490872766649784060204932660403152051601262818314865727420042069285909818207549977651836281022359569636777978857082361925250277075986513899005674818478292086348934374287828392138187917118422294744730748084049978724865837665576092770952343473854406664719129895852585813710481768923198162699277199838027469164153772224730135871106594670108863398268472889827746693388124692104986779444538987342515925862906647620988543028021665847679151021637644230514833075393992697260299304514766535505850923416603050983513495646444786479454108092592504844528723803449264358668905575356410606657878118538316964719737434634324777825185162756978845229209208102180233478403300032334184194403518802321487623064114547882925704419007969552600158897655608459426748328081840777432706015172531623541092808451038478992811509763109207973252607596321978936178044053167747881815874940213140913688966757301076978640041305081862578952965116171092776808464237118274579028074598677898247297283927944212035789833701604355433024917954942146982337301969084519451715351750199079041677941350223227833456325510594754001265936809263017346892159875289004166183309858189689071318067171023555061567684266370937404158563539079274719963995470706497533472283737752228451962612983211365612825613508486853424673064399724050610617055847723678523436916708574217325974043453047627195229765267401052790820595749661503641596910841864446129655309704346252274550979287454063404555687318942734269145494051797116047222756668521141094467405058780777704228881709927471681816763461259801446321185961104638469392920352567901124462710458983112404467635363131767547618438825630582434337539261517918902651272419158879382697622299883939353079803616467299400372103385099394616112251016474913830205479375224388068900289276407296381165502476068580365690885873573117395618677507431459593218107708965958964927194216853737974882342119937211496772898716776157414044732580594904772045114657916587080339869275381782788432666417449805096014240164258891126052905838573439378396692642810763858367623422976711008913299118750029674226410414317255440270191131861941333047983522113826559070522188986179393659568673464797267483037728974779039507020115407221975054527677964879267619667368198405377660595602331258229339483300579654035068447606280287277917400157414122157506775072652924003831728410033791318075164961197117016552424394819135254854306359360885789830668629753498536411922322030738683633461673473804762343271260863674899094837136674552498368036328003689455655784322082128469385683241236219506741672905762392291017782738098663791102154890998808504318306266774745182577454291627511223845153938568671663860783840568805789771279884039642511861563611930981915809163180428617226712677629609259613069083505643975941459716435735428424294597859210321918732041911228755342538633868281905883689371046381361208512295576863905560047985221631744925922166876863234487117620984900601315744264483047593868997932824858792486673384582999959422874407381985832476796807899248952076217932200932588228989032455635083424362049019123855998415529207589073726925525588757953082837281786403001021719165542414353560184593612156619996256003652635576006611619440308086282077618404821549281616657817233595123880445146308501673602818697635808084058491920147837639811293291468229523483886970346530435887145778911863039252604214867659357056016769112666960452022661964665635814525129209812487581907119616200981947503813189802881461178029624461334183435359819214446715889913295294547211454200044899075487671301558341204657052189378814280989972331376779297610909191108572591785554589111448171453405160947800885114225878008915551051689662509462596887770205411092839650053823062552082372332956866986228640247290442137723022475478214128312884516130372529306632371989244535395616191645390695375841450374134709502076585256946230295257067352272317760665355098968595915986691655542071030950632988573392548906397145592768251413719291618452213790149330175654974306565437970910808612792743781400760503470257049841605233588977670068332379974827281140171556299380396238962572726084990147776421512985406494095972877522536036385987514358489546144558208982682262396330422091709220209102794958686255128217480758680517474394545393035040886156858740270778938549304955281141991561698016983226031582013314150337984436761248375411640374604266281891803496901304312804941675190809474906634314660553899950750631058016841250588110909455976435746519615269633953344005793737033949948092029939931433461982754058755947486457549080748732586769741753222107840567512266534411935457210104813161626753597916289827391705403598232124522892415748914877236093613288919934056182825148761707688968604158100047490888978226824488044910816722840665603073030590199983420855656991058414323340447182705089796241550553659228524262058663035311290805541839128324716488979532591643666968572745003864008315169091674407979850269151053094113942673981264608854372620643832430739354362175781118426070426350915278163385721570060499669064591371411178587509122090702970674504911850517504731353098425776408628905307208834307452261412029759749763473609328481100887316587029208917543685896332385375493122512833337534571591559455663875524408524907112020168724289680223601472301840448968164969212149907413363777009716745167361096468759527004487519681237491297188045093212967671193435070674308645367374303659344869101652029251589286475321588197000799906774594021485178260375901291153194038000456785945533353972092004613237990988770797201183861180393655348148393794061280266595214173560921701700981383423865442723149953641316301827642904392888767370989176555938216424568599549874901322700852973320869931390791867578023394841660729725089008522406470936382856674659535347604302688452767390347099629945282072676203402961964958724228327402826864396332388610433001363708225388210464609086005272369004582714541096421292899583843111846327458585495727079112798978533259364862870142436846296955014743963927642843058342601682356283585307555407790393814028635900362673985087577959534531080035099899840208670647110478233656831147016585291074976007449744604152906533923681603055992912567066892391362373742173773594076206642520089430228486812695744656429357858051270125926963544771592515775746102743892884253860346198569343344539567362319580172090009580854800144713873771436458763919271937306330001661307435491631758648115419277707190960619830962573175943819046061262273765332693302484172106086243836172706303295784754166200520456601913081026308531783894157453610721519812617098896129567845331391023194441696199894154157836528698824101353117386151414649663347612631421629178367905967893793250888914103471532789701922137030320307962069122364434369673223287597538355414897946057457956728151266532543024927060606738626512201577271265942100933662037191652085641899519740756100943600600576816325192417698167875249469269843505071382022255132485388929124433880564726942392156582185232198194064573311172766552496613344535460175272227450315827511883050204921788002921764498982807476269529652568506587464329680495184183749171295841068648382258788330049897990097318176018539398282794950064671105917031650584590367131594452589342806326091526519653921095898556694485381655575195786002814480231526555980323566757499707022147429013701796860736863674866026641724197959983702594855143833918353855455224511326622614824016181457715051762103339287704227737401664204638330113492799111727242491014275196223070034858078963526900330453977682748746784502403697525462256058012195273427830032624156696315176489931770247868667753677517054680351615688392128883989003295632999139897641657571553145687630031422514241090373347068924380969960868230174212241419184568960073937691184285207051162131744066738007116170641969322848947592557055533764843196325785859908109113387451269725843731697699279969285754460011774250995783435457964221890092049029394429910616461735228376762276688734790325866184259952643247001401813049903895072482996157345849244331020333220751291724346949188690384695437389367614139268981899958399841917701949905688926864133329084590330220878324075263814386240349058294767629971147371797412056423598436547020109573528544159933963578198048079438825339215770704614837855673978507205775726254111828100695508257453015733289378824447539960412061023304173053548827760164158901124640567886062321386700438916476330977038060896418261865552411787435829347104281687383333579687171240130215765276405351306820342602084961106202654710061545712440221959508507105103897828387274690687269829691704853472418194377863918789007429018391995129332280124726315218411729871347272983456416868436569543193109152481995856789435813751868481435261942280446530728423611048492724167917961729598227060582055356057579315021892258920128933163915382095563221009811133556822529753088047079887113543695310629937626638875578777010581377609543773365853341226476074919302921969644463019743603215369655050595648818476063532373286546885194614958254013147260713569609587152984938080494027630824282571990937709180713596297782790386839441036307365599504947750571118085915272800031134679526471613455636119615617127188019132892242086923514946779027008722645878027497143978096938851390371941919702498391639423414731020416825483478566804287617460283043455189251810334287629282734897026974093265327864372035852665254859330928085797509699109559622823215669333645325998484573362610338874157698156373064266814332892038532008871848407757781903425967816732010513579799623187169489868608345021341196855979885793082976717208625993459001872441376151411837692941923152007592351920134231119806650885487984510379586616459197633565784921906796673653249571694547411837938319321143790676625432776251517599958925393550823351116586681341344167133857413576588191516795502828438820277105105726767440246028817565255489990397278325530188965973263133623020367305999039526006927318007478782161154241814260611596102773516826674288219094746663845457719374094207461641053694641553296147462253518430350776545313593201749010193403078590131769258353445340367923303611498693963300658681502387152671763269098723539785419908107931511975737548958474085765080643932468426261672465738651194649659717221061148456555395961169671575688869553916753979492873585755480905774655757085036563960108505608215992087151677085286044005762257586025321988511113145931333854484629339702621623947719700972659714280844140569711834972334446312308841844585930287484844372405177271668845655154513357562452097147451769518639397812378731899276423899649013237444941281267058469076404782211761848292564451067928443151078157944966873460084655594537122553819836321054273010605512283053192464258900765155271722161304545188959446354927573456536165250818660228504724132809480735036756662723218338360142603058921770081409549745482112228598233712890701155560921488577755914077773786513169720358193432718526997479076543188498459317693804813193171740939490863405937082544240366358766584787714838046409210820327762265897856345936355756112353437992401555226482223817431181739803041978212945984272568054642756300427064140995784453717291102590445508657879488740522289748529699837192181356695867483596336590896915988045688348106809168555871857896528825468415572660308915854293797066210853691815717967073897031883481752549947350654706822498112077177290145835428128609791131152731144310967549097784730490346386646914614338006638979618493544221184406170037066126916503150172232167108701766638696395568768698707072375466908372934476763599352575513537139695635259306509537356307700706993916881559461359597663662287334018483946825150169284605921553159987682446771016205852545276927287628375159059929200879586735220405717693914982143912135699287791838305753795123288543120267333432578110557439703255345392575110304926882157793817270307244124343437187430202734330489822811094288884876529476498931416451395798790383461782567843185408673724134129156362988599093746009924128907354759460510784379906757461873321119757853304427544768277019540658710954079086993330611736115252655384698672325117609333445798224502185212994383409238199324873272705568875454918274656341515482018870046149525548798384947146634315733654224987723182198346221761587076334174435250184813848579283712689033238812488242562559434896501158688950587163396835454651104566411588390160926587912272081567369557604772626669750237472545313074574940721914645378904560325126161487835111848051501926100957572115633506563641330428252036612346334279679562554674543549568624388506388795633364528212044776195141175793792469000895914224138536501901659856398872250209578161275500919989867256118860194488250041310544973983284970552366947674696351124470754639444491056707473611810104201495987168081346732024447005695187555499059021495779792759548141815388009301579920230432191332953691149759730092754100612522271684764042732898461080272367750683307068807906327863491047254068922353784163125594902744243694026155770957673983370570930569239737391378424038728097575460041402536124821560185158925372690163351476821357310825847733701191282277875385393873007261213631278208270799188075024939754325570351985164735935656679207698488123824704895050958205015553927255215091651952430020433435801665598829957881400243270815336534468517474638440780297610449837128623394157285490466326429264008627635610998538522055116161992234767801215549989834876303226786189428748660899924775387776687878116349266399299194910249149358957893376848290537094023423793609388233099845372519908200310360319733234632028940419725190928775482587906523418072594557412391937830686270164708931675144602829677189080342558216034734312595025937196785321825561277883943288061391164556603994629597822463788810411096534314413089883023735625699213807648756532338083957111581121373208191042794456530238339006621275938283501452655169390785925431310343489657342590392596964415057806431542202092017970202065481005248548215779106099070799306715257200502948186667480718897815685894473300760342543031030322656689723671458170754297733967516886434255939562532456751907427554082689952818074465544831747390665908562429608055875757822419560481867352562550670059446728383629013964828095726858937971671411306430125452432739841642480866540671427065398268468364311144196136850121716055019221798668065356756057431184060530911737332595811890425146699041734167635213924065061864705278391398307732020853361496000108626178001151204092350139261509825642455160568388731453544955330969600837776142186220873771336836131507405397144182351187325868506865463655600554278420191054470243054392682418819082303379236975753080151917248228157686286779952105391905803188808845921592194993292326434659668564440793593177504345247132315563490464167611812143737069344259368763153155881689271823042321656944338183082851099042752610631071159279662133974608828780967883892732422583102618563018479949763119189168794058593782218277487066793637804595199827422389371636589367057044136583888099437515034349845893928731920075633447734146963786681598047429525947298212175024907045571063058476892636057181303797502673314364646769515526546489185893855819086261640739957552015359373014073715543851446487297120739684018860842670710859031831043520294402480237308458464218168178549382621377260026200029430543979084324238838047415581827752248817879729862375086909971005416897875796129440725155537641953732641124836294664944921684180400859493087714488950324655360261068183650608289583192289200370191718734163173435292594789294800273936010915843495048788473009430397224364704524211597629005680857932837364070911132124088451731363416939828831579615554037730436030131711459842937647919517016265538115088670537555177250647478890100531595586664084807851574825323010332904532642944550118226696433162192079180173015571273276128187850266981837570927467484508906024337442765917597370102366181927913771291072797270055985082925996379866757882613993376691145685506252978267664211932453158258045361276264012679555649030818578260317122909841670948883012844898343191292376789810828571591104354013024453570659188104784306767651562910880142707780056199723301425799393825003674533731932004017684203473865555096220451061168410763229373477408084432127594837640064335101385961932173210617021279370601310069129426605898140753934012553621038145616410559163015639206606980039770322623806425079635970846131677249423975902434617535598804308386880708227112819851395363907276671657322916344241200961032639429741918509668391309554160051238288344134107685110942247167932217062650564202031140284206116925234734527199973575219369081979421876812407053106353143294434055665578553256704595907947779620552459338639754290276484942901931462767270651046396815102426888460717449092339729368257515526903104435062475499422829670200946260169883129569163011830716248596739849295442470564248848667351855312602068887560419510420391839604198319383378855047582268866419675094814319274235291695806223978089175324673099567862550821121750410740560985865100738617388587224861303687812034974233799246567954283871633224605545968331518936301774390687688502540904019693760223742676062930735825144538742929774611636459138444261990914022710587661878160614960877817832999722692797337733308381958278985199570061422864854042142328336419686386020675252207185081560369923097772019810351053502478260007903004274275855454696347945006441849807699477646072624523879585243462065151542839072672379166735886685223446496912971838613839913319611170543806432926092468640540671294341236196794233618912028864796677067681931718577788144177622730355334531818937542917449109844296667203606211418037718597396892362775330382155224897193584390238880464140609512059557473149995379807832662877609312610521706144297943759519388887699294243614459502985532518484557265076661447350267134490824568206337202689250864568921872162670333332200000372473771487379362063389315810603461290968283049214759086869259899887057207420749260929264023256371367279649259362163700551675369786335890993645839672384059379244972849580157390144868785738991236660547121811665476310848937084115780588354427962915472436341319326549239844724612057892535063405469967707337689487815473786848926393486273292506658372125786291131564878081720789987485214313258578730427891853355730000489009758686747954177642734739899043071579033757686852196011765216030722766141309468707399199488344079801906767909019881699102990319345035198520881129804791570496549012495035007902698934043051741717962980852361584026906951517161339216001215749567077101315306995289041834430689207342611486733554145207113436803027282926818324956356561834959946650632355026174256820711752037476498345260397594761922717577706873807622094603091445766033777233234304328231031852775552790146657427706368994027207079386060837972284284030596533136068039879904178643314542724854340626328417166817497796542266972790781606964330435845354416890786615795503432992419773457665097586825201332642269021272950300356704848939670597981411764296509393492895591042271417546116622652846126980970873925906231738195424911094560263459511713859796804821118519113354050378804254258736069004620249731100364085820646445273363673253124975660472819759485254502302624842123531283812520601925348126361012205593658552915693624597481389019436800100623056961655510601653579380962565659941634557027267873475191510474862758555780606585323809363413571488573606538785798365162092996370859017175285561418490712871959149145405781566024040928221106417016116556088196694382704948204767582411939543299860355416145333739756376241620670586563541701527849041747641507753753318228428570921329594103973290772004854719846009434751104291053433300488803448772438741712525979265846182669888679187835824456529107692633032137405489436357985797525963789832257366012022845380576340557185684442992939026029823198020599657982408966943038187166212085134972452540203043691411621025027492837851123566646417208233453218010275111343851156224272875757643084053848095462228895410663449048398993045778930981105358069730312104615673092468557928514670381387811113739479414014328411518103974495118673420150209837904249562407436987890410656520581123543720240051287135626547037160986588849877814758311148516535661110920789627165910792080655461560477370265288357637294962562645850141398742170249255537733954166085477606834787350573991601909384821829087830832481132322276111785576719577844530778824167870083888560226255059540842256402660753149436496775602687770443683648625289330234187563849358778265629641012010764136374342269225980245391962290345566323491183485038574002611403030808406523974528675252753087577842354565225561443406184170260755088789781302421687184186284823279779892068157457357764064703500104020394758697102742491373575421258983919030684939236490702425335507516440625077639101968466810548270234129794125361757068270237639315852614416194699480775867210491058893052065807705107961232608414393255564961060265593993028367142453679616412510594423685596652755141010675042638378652791491822877420018479237016006047219237773803191371450233737048177834321749855504159640763673832958655318663136786675364450975137713190485808822432421593134168413505311382884438170017255779244382473666753090968230137482772100088279076842427971058583558273931181678181751373857364638929284134806503308495560177559465508236152307857133154840713573402940557935307148233204006430004993469685763202428963161337341056117609915025378478553214851782440686753903078017504399877734557173776142350196057033140015180324953972034338215094143842108255143549819682278978971219079648998311369645284632562002091451071550971678299324994397381267018388729577633634938122707624186505708878146217593230618869428076250934891997795505094733657798887920075794386533252977802831955636762962866682161358344053419451492699004080844020524777408109924017963091178737162934451799184909560250066172105240594606773290528351017582105867798699160768310797653076196988985708161428585383194305557406623574793949929352609100028843544089615314016951462233484461019637477300200943554733756158835007545148270340631681108752208899011483347380626086128333719682348717013467540997826336261261382939811699990189383750854137471975339149577855155933787366998370012403031370649661246352966408775226813620605530320015446815592331882483242493451556538400774102583410360175562121748228444401931136114774722745505255960428823260126279472359931043322664135562212092432037661163873264001925025580272850845125706392458402374165458444628916908103237197137364406517212342380194562785750231134030723978817706368909184030420215827792556438657024363038140345942210870188185710185968213238364943651128135592488952437027534916712270356989343964204389213399885596744170263668254721822881256044212527783127559418930859036631149035951994172516150685094960556585696678793135295319158246250443861322732384957552669265680679115221697460844373918845332830179467911031597228348984441411264333436463421390627130045775753699553588281060469798653105395946745190639812798790299459279406050344218277345083902025241423971661475624061513539246788731938473841098742791044255332602679503034170542329723101588679214381570529278783196782580899536302173951722944357777225305497097458282282055817049184690428099695377497876801228467371815575637167356340319364426056031585175527235948173347954499728420852287189182751244025804358942910804925756492297721747345037010281251675661147945067888513746187793970649545603012206497631312095907999662180374520508505372145512761577747001056312872302213971462671633668218325932386794818071977122382662520347686843068716081979118796001315517725810193056602086517488741463565027042020457354769043321504568886136837209844379497114729463873222638869646713911585689761552405642266843864702563526336421448492046375172972504540174684788405368278723727668232248949578348186673557051946080562643480476735924704425763746319508851839737286692545778684641932966668572444248530277815576968309112435530326082904252466166326268627576010780638937421030106508618995133054721979855147471827149627586341117743966419377166436231289485719483609859568765366289652513839747005935593488328008752155220924657681324458143533295561933064252611698218998864396755711981334088059747880874165986987277285513310856225727443801121514062926886683064918663181733388566143736941559721162487866620918066009715899244649333841349721131153376237866746834545824072893500299729986888548043191897773449526464656556606162513874773865401996007852845764647061820744171832476184557613779675392515925257513978630150774179310613638159788194685211505667925754363461379064664131684300938034981005601652430923271576661128011057146844709930208364477495670176526006392322243426794038500347105913990343863532066647560450752733589358150864858540423001621267154964356790751374146998965951598068980306373882487659814762441930279711724809439647634276475240517736437336065225153727010108797576482225061065156369775094132589871322360163810729959745081035369634973206569073723241706171519325011219272380669642295280217475925032374510698336360787282241256984219312405460592293386224676999887921964706929231606962764288599141233803974901341780524592922888724582029998066055540881649434394904204555141497277403417019543355348400503621509689936379200996628495713952331389781021582831715455535377652292693861359174439229453371131990408863616747221499438063996061609961896718118273307528319064395561128890698896559296318779016402284362286125451166733815241845871668680473153581957365142097408543788626661108297532936188301036017544238325184652990858355115075657402393583732391309179410593007394467825225852800290716412737823482998559006054678419772448736085510550885948774734337459620515681151866272035241526563904019544667506340111283230416920551406557126873795556743614352890055385302373015705800831279679178236345289488322484830877553403545421267359083815369569435961046525663385725458361131118231726987691654575233835281139663494202383989851499223144909685837653636900834800908711721758040050604877593862216695933130758884673566777187340535512187515469038216758648692496682738509069559126345345759257114809911569574962094842074628045307853588780068606742971328629778086265981270363322004496345340701053743005515702256409820512219957235011638868648896830205833142861809185616495860708376563928386899311015236061184529624649573736981673523055483867245203693208662541646539108971257392947223773232591063287700112764773138682296948897869521673364089812486807237145150256794842066618056484140655318780402550791923659149194080371950979573594411029571446276845708224020435394980409192745576975176597465388658242608667663784359477328143308165411262008359301055864044967903301582918788607177981952716340937341515056611950633337886686799294173266050549506220956796647382441770157187323972065149300950886754461870394463773606532018950987502579418971165259134120676924731349504445409922603520150044058645657989410483338505559405336140473590235701521164648457112032798214631367466413338786365857715901711384234133317446690243839501676704085616004471414919264584232005130878061052324779449100707871150876639596366030507093434487354507194356459377036855104026781455734311260873078603096552512478228040344029285984088088652646897181071991994106524688165276718982782940584439765215876455933548116965243856715298000221023323890609882376399662534318706968998498370260861992059180641714420396619332311198552635989336188216506211408987585750172086181085859972979461440910707870904833936905044525990095264871514161848779214003358805026274676355164096090338497580606099354912342753956848806539930836429772087319035238044145382914620371521905089773277435541589056901945342527296267075681506262277778053042292194444709060463383903975329134601828465766885426354558048792732833321752148004350699974824741313415971133350574339729120407263117136677843987253684041300745300001430805716462864483970026356338300856599780946995147439384836929905209957619725619239945033981735293373764966733186220283026471901096512424688542864114686947551478341833249845777261082019992685143853263084256041945861195950621976895617511775259872790729846707391907932208871006930131450248205807750536726589723759184472023112133969547113394379612826609779046843313196457822506045625798392072481839466128360288288046958572364829805861837318668235182851170979922714807532416425731046039296681592294703184739887895548872511646330068702531795046421525421922179695569879677699649825961416706383995271337630528862664908547180440063138480638025862131791902020594995439771212935585663043934017498480661815172759323647014568879287790291986520650437470690002601051412103313319770204515844473386005344899221861886392537019190560433564729274656268713601119784085043289802311166777979240976123763130023754684444109167850671017233275198960607255132410577192146110903356109718418362001117511410164669865082506266127948789915457584656457108526463333741974515647387361967595556435629458951476572604748965783865790000188010903747934021848370712369648417126884993065942213980274320777274200974671597477385243347794423420003640823781667734245795979511019847490200670349418341944460014343826831388999406868686862877775142261833777671149435548187663710526435155128609436280780522775671995270427051443559241505467727287039982234236969427045698741291500232001378483090068499618575882160708621450935708531011879055232821371969303732469928654633898934993562305041727090811256868506499586060812831711724359151117634687460686739251842794423136289806322204860439345387828459146266154297260279330257363384094094013018549287896219264153343883119101177089113668951801894260379307968901936335124801466528261960958628767337264040398789572665932116651535489929718750715288889578233198898015603254487266771659211295538516416487115506089774790534819124565690669446695212821884875448759142716484176480316409727663461442607506257151288896453470034417204348308872029559928941994976886301693895310853263597466997918835649474867670294893694242229645085895996276565234496564440947224386582182491180533292697911632452945938339947014337072370914334668336931280716877794148655685516173778083623646960481546611471098603148672090162509850015612627639647034368249445717319603037115808320503329925223703391533049145195285678418380770973017548947135442687515722040075356134559874612062843577211621764860979574413379968825115756340630318652196744285548704403833252704682039991064506564440792230885029593660998410822753890162777192306724485623786692697613480143117395479104151052716413832532606094660049847694435406307547471977730759995795332208382424150013607464195059045720760828889400391635945754512770119291364537994187636663748879127700323633568366617042895112907486709383069905366667494504344995613006094894175860501850668100818328175273477869319426930809357021895723360023581956153446536806407856789295142668474413925804958686984424997226671782723590856596183449845468622809371895149534097531751624955663489625261941943210575285345870814947413006628365889312318969583153534889322991537995624541348300288703853098511185628023414818546647269383947780056721007513619103813213911901213311742099678548942245429587536185820276027514049854176299962755212486230628485894508471802042509965861034851626333173504202573290713344758875854147890930762275651593795951213055429859034787368671874774594778769043286951970422803249000507858013133793778483358384633676762436113702282564499640581401032774932838500971420564779379959619552398037220528626969688002405160897756889929537094071935665968321941724552789551285328437462098316976287952128168105864761910212805125913521798343595788657415343477478373405535458187270985833077954339056939999895375117927280051303738540859926713362955806191130942739698468944881677277972614160013479078477663007018767469130356888545528985920829528334822556964751574247325276663065441877353339041497178450703061456352083026825942197967122677180792206625459637814993666013880416800159480917655993508869860894722723567234921100659079280907900944464165915127320720058487997433622484324250170027728526731790276426868761995423077014428872462249065448273811113541795920473709476381300522157757728965657570457062888311289551452580656171842925193729613454547325476255968379776903280313102430130880464498695868816431154995375350215490250009723371545424335250556043740631977952823247101919284121173366168733451826660965492463547723992351612704474974251968150259096816330883977583250001799534166583677527124152778676677256688964219585661546712777028301386951042301186173680807636772120644646572207942065695269235810442215709477359612993909483631029341787915853001609650259879105376244504419115937044368421757092359587317384395147944306638723111532734710913078314116046614960771258633477217774660971949664120232451902298120436656493222459010061612172425126534495446786172334417108846916761802483556209875504162239681407857648074407083735276086815602549999404397948639292695484860463308491918080507033276842916386777729386973850537629321136321213551323364550685661853631236709918752794346640748069609381512049684272727867203623340360085663263203772673039642527751487924195992927284615215983057224304395853404953115825161716516218808835883927529492966016645514583999160498736694808269762241942101662371574520420880922282377981868588926733470508786025041245516997042913074190734524651854098506327754313476975974436179674738998875457220866964845650182405289862204005376553231555677726926173891183469550571354585217964973150025525285443764119443651328322585819348425202950587574679503242073411275446601954244122449586445047976708241437939529797237475732316877539817619618886512005893776131351716993630376174072701787620535950465412651395332572998216272136945984723884019416949101437798536828218942939132440462779545128735144619589270332372711877727759489206510348188343844459305657647313732844533640750714145864867214217909385490137064005867013266461178469997204193789994348491053782135187535021618843735750566651116333766444166724027829237215136733672908177649376117916483330879652413164559092650719179113830543995861960074112911133069794914174862160792725710244812101521755902240781526250022402050946178471423313762642644099396365311663472652372813159434875762651136518423096687763988354906086453643395843691117610530977520083578546109797320921879762231980857495740702675457056171164794306939920352974626562484909006040967420685422952942240479900811051261112420615336450079694446713153853118185886718387670004642586688304397878082700141993017290538319297179577529964148791344998083790772432500350502007794241382364448623961608980582878549338189983957762650543489657600827977811924723261549372290780517641303062130149291049359690299523768597927500805323362493871764899531600338143975798525592921474883789703329565050758776960715802691503616903336586580038059279609742160791766975833886713949210601952794780790823133435287546542072815042106110263186059223216543969832262272377089936127911064322442921844693505222773900393258381425903396500598984015556842237860766442741823340434428345760632821479697070160961712431370294674360745992120112482742079757699689131397253949347770975513329263265898916950854508896440041184038003118618790433405948192407505984981358693505713305537590613173388155143348732785118228012403084396484115449821477748580720258020721627916562670766289018985738581930676545292239694194972565676733742543206968813118595412054748514673935224315064367433751856631554515952777406288931692416149009126635746900225303424976473403820521481065664899249429314321768860485209777895667491662406437840912713795587759574924585206206837723460939558071843416414591965041209587606187728289422323493642422469595408810091841145553132890305509223240757321896127258760317013094723000151101938943915475955164471781270103887575575122180588521754906687117238146379773332016542954697837958240090876566562236749697549559760128150930752721241081984870696059484941492044046776542100354074182071156136818484052280874507397177829021359254841423337088876327514292980986808702269106123093968617217613116306977075002281909942596680397936214627164801132355623190512377379557672718890172972653672073031412186548126235236505989497270258610550042937460989679713667980515740543980968098478569637580133074237570683597042454451678362120298292863704806468384274962804893191745641108861360491838415585976271610397964148165782095972524178944555623632442160571041356873172013212180090835586065156775933539952966868671754371825270235808064170795374704028504349457213580741946811108541083378833891396096825139893895600011262489008543380796825048844961575593616976775021574363072392343566310961823994335430511408378089322135888622125757445640168539082537305330094929206231079549385966421973651818270095428662500585573763385888215138264625455303093044467264281388924525337580595626689267368176443465739857753838268985927517487367306007035133743367943779407154740194174933292572069011246706530067439586257032164086563929363020633544791333572978677155286908840548980362445311564249427285114975972536179223673581643813343260321393620847286765022926990727114682721325482199301580994468618018858197719137134499347364046936948108088129957912765394605112365639559458837825792813732135901221911608808923738518507468507461952136057124152154317903018509090001590519331007039179413483458670466497840288299645020687381486721068583777801729852076553888838539316020578303734667825924233850488728779267348650159849925097609794753524795590296311879092734186967630405307707209516512348430289246948898242713145814321381133612625002045016840454066274915328766417634462998230092369515320888944232719160652949022704012865820290790774154511753170613185371761828709720426549819431378978261610277121784007016575411988033526632734613004082827773527362653274719567951458823329479308377247791674636749486379868418753048922200340298267196266651963625486009154652562462435632538276851524350511931823539325450025265950541370018205496126133265313290129847984984508468643029457820910835631462750724842690611112081951281588515381756658069393206474718068662647419908541347027309194886305205707218284826687052756848763419098615487476162843113366976481951271498765170903282296213853588101568226659687617436582477450695571167693949464262065376278231278690569760079562490762403712135056260500646114002444460625176406495998223057070577988413405632423670661047274350591861798411124295520241844198720550162369936770167050462569279046125068105767346359685309652014965616580610863740571293561131476501673499342230539359096907656674527003757599411694494570334378934315482407111767291075633578102710877519521267112327493750419837891879584977868215015863633984492437095774550737380123097712227692598627668467407669196787302792454338589611882829604835011470915755559949487139492578793657351145717566275188772746018712303378825840485006846025535960359068030769020921265955033331570816567658318715438282357363713860346404841202724811200244589703294823097782733957720862345697537597943228301568348773842292179167060316654230045701657127373515549584249531673675756819415185388583713775091627816883009569116866600460632845669486176077388318092260127543909066777497357492594293996499259894894043375985120004022899768480397109014944125850117255912455659182758215154235589047650416437443511695317983166516905828318950419990325205677655197225391867572730960198335439645882626867956867293225056078743457404293751119008437744087905585399270536884028463621081741129915382511547621158268326190305695770985830606385265857320433380483238936945192686421260814056217256867812624811018898392300306268964472046855828668216745486804246880134676640442560041580890306731789744692521529528087975210625416626996837958529012290077884340578925790784059838815587530469991917839345900186867978134872210876603671043953581267970961716483814828532639303850505902966904630227143909228602606305532681716764288356256683130202370551709427539992797222379863278593148235172983468282618303535035539389359747219102692065060034003295039410879181930310377933443591203487349551080355974393401144981414691274187503679065131647802748299511596221562009447836853501127158645981996131229081063579178724718588207481587678693791564468288867677253657302320544727593413072623436402030807117395337155414943618346253127685925260889981534102969017889352921866095203076340894246334729245562851246223024287649708102201749113170066443007839106750400752438645270921306926904663039964380344156512417071421355741603071775865243117401650606133888004009789782786695216997080459092239720460672340997196019681552351155286819337976276375000436662264532662502131817004601141261329657860960295826781649687250357667940582799884603220964303526107741491051242908558042690205199507915202213432636383110427955834665283689587074676683243382118074913567495907884628507259358193427378687895062736194789927214827834459270061737586274730011699509218965765963240107190365102154298720110825063898867348390833373151911434693558193656222730068540314377333218841843837672061382652462678147681421178093042900878691128640931772194167290978719936961031752137180757044119842268956162379312139601778210161430320058597500609533082842379570051521578368893720720754460664174746444133346988814287780355286560455989911203682270209520561457952678285874820284274826625593802819344144352369723283599659718303050766511390602315798317767940606415350307008458133953825578751801928507578356550260163064866969654027043939797417859397583191174801496692957122273927293773426320614211399009742467970116293236205045822562600089702494028516311892619089581330780079765064084432417243467635844693883202589852777461852132756239025169912790319183922283376697422951885437857359966477018822648737241354078584290645262851779660117239036862343399897959084857265142701740021778298157624869080470192907260722546069157419928741411990319934833088924391343924427731191906512625334552567589412790521233649595894939741941105648963172676960305811568343654707605618175685774661005932472536462717825838243229447338737865756443535422547819734602838737024013544886686828346704414843666717628533083100624709048398162054208921718150435689985010710493031687555252670267452750676081490938413899287263548967813168055949652754192367082767025445390216239915784528102159709029044656907481739301979265449371792186053139137490136122174252145586531328435674404234624828217816091243377517902807377331920805754715895371229571219654724466385901853978124404106031591515945276830895797770338336457898873274561721034133258423026428141692598893737858021514165332790416122792286794051204748258172647697742160713784939873517199642982367365336851863353551852685320774468376459768809054343134569222515137676178351319986841777730041110801014246218538747300795453967488064738372386615114856731108919524899691128970015724417252849386579722540046977214315347768992493913685850817234120337014581332075427591165051228315952672712046830044165460291175829660095926956694128112389944345296111984580879634863649052926426609555854774925692027958085386637733368048167311350066802098374554235855952027496468242407220530436531521100969515722738885305407412352764976341238443405807233522336419792700251577608344684669929733960722891721204671554218354563171473433392218373994732631574620994930487497783926348692138031992006342088432384408729631033301205971741464184162141975285758364290781820361576357152845486013321691014313912766076255119033194912297251623798176733653347445680293623952720141938407833922239927242842199968883279189127320774691969550871888112606792324401468781551144797730738344416412158674127308954679580651933939017401086284885123081462879937416215757275053676276004706578939912328858182264162655548923503831488595404375235105200233509805999549634116453985246433434683425886430094463667094665277387352249352755553898354643714993657878606314291007253428077889837680734945048433771188599912041743760856113584212985084121744706306783993481578399127298245461672277404981780651944779953672222430322163004709687350593118184510012725638134776709261020137958707493536479102139264018759330680967141194531745544307007239706280807592546579054785240569711965029846570067422716169169792578350049969760884589889893050485343558212497009183719351288070244062026094606094403996856043678294779289094148325999964067073566441664534385749777368635123552130988190491710577037541988291576474948427729915501724998870024252064937680001191091443131102601158838879397081050157467629466597455170072541152769221742726378600167612578606120686431722807898452484241006853820141995074922509921377909773390784612903873805556575171156612980882752450509663118910778151409096231484645783741548460286500709694481641844855771153373611502608829855973152915436670088034645242417810899365408512129433836561417923536453669390546417964502955748244648638170373680064154294420268185873847495496640554300516404005388588927865861596885813153899600608586849228313114587459350647932790377214933445904645331893458004274946603418519928590939409352659099849030970729584942844632517529786101428626177693165723890927263454823424487518467781003404453004094128486729159734587154607316654572556659377394923406231509200136679443681291247894185180317722290940395044925152580284590443525012812835352263962274685897715506260851232133531206345798887669519670675247418007141275763453764250107427051951891768972769257344549946452319409262424784382748509549462285887035243824966994815547047683714273500835344774407800375054833496899078002657382562537347579340967603232512847917160056577822237574618270465175487272482677166321861568880061149595310644126005628375367764223030667512046348649246108760106579009109661188968564359080039124566169385464604446652293505104404399561224014973848171913850213825773768377698518232194963926173030487935722186839982928583615237941552474315061096440095341399142473114774705861230902990903592293330963838903690584585239501731648087636705007334018711842599166764322700107621064018302215012286576566078621944317522911860511735420592104205192122191214700218229095911277591236577723292690132470418809470927819448279639609656448412183331055242715163055681384471013900247085471854872678600514893920950599015500149970694155030768712570792824634497420629754968407794588468145524420791538707191324691521877916974640158394268056949955768670559396791691363216927885402953781845046901936143997232480926068197612170139482432377927243457280043254414403772921421095915541929237786083894626175041708529857076316600741758355262470628571525051624258912234542493408861219155255252037454074221123833529750702581376708207218615725169640914704387172923833004581553458478272492602055310367539461171108385243993723288642621313600057107349393662040036043271739852461817666685301908696438152624360855017563638474686582361529677989272428349278125196904568870019864994280514597925346432392687698569562973640626787387490988186542335399027806902815604851017387797780877309231811189461412494245184709514303256429490901590697069130981500429922210309057857266936096688222959734321759135797496595939723485774784318564113610421517834257694814920545696261567730458269361541059053642656317864789468534622815371749637404136259286980771702157938382962473927374765151406700682888888668415946576551452619949617824133173920029408307209225268795446535480557864908958595536248371836138662240506620235515042618288822332150601366372061231663456255170658961643624477383930671572317048945710264803485255671750224488115528306626667291452169214556570792321098069003443805187355400092975194871700611123406202717300426089708478841188468059330073422238106646739645932678974504015773828457856898262989718287697711404293287766110948551046735742821637303716586050333252721849144689672045693357287154943615692554183448182323783991321554575352390627990922836755169847773561433049458077558421286931759731482028495163221139878176446057453457543780095036149099887370978192084377884844758648833685539812074077088354540101588408808783338331891751686889008088336389630845882434733317343523138378565902789841265799923932415539077426278691028115193656876409986206177257909088148705842723491592329787719546466980829895365235345311709842370274473491618644402497181362417820197885152619916127759600868615145258305476924549650801946755326461181503631548824400602144697281286970685488913085874090553186985190903530388143276411547594595373720658734061879149275685940774598108046076248136541104241092185155904563716562397343908515794859590901723250048155857607221562641965595063687265126326133751196629817405591500171083952248073269024301284758644090383153470875284398932296446569125891076062580126654305469534656970192597211101456822710841260771226577344273780388794716404397476860955958531068561036318214270330896133036492867104121315850361213982364275698945195890222211714267982441661686877608757965774709157182614719506616036025454405965051890918367472838484189192594222830487209198049459368876824553874237598119932224170374319130194573830441495355883415863474966512605885148808040298216232799117450400802920277217371677705196572896210854394063610568253452619830825270238097402559269353213248126299436674090347135074858873121798289088031799572557767345439917702564359658486153883420252794510299841189743596901582959974952330264359901865590996973294514960371925400015063164118716045877286098081119550606258162127438155576967406037357429707282222905171122152137572388262828221781309163408792460761133539696915272764992063400977388033671252042518663875903582024109972638743612294100501207642849161054128579426271964655353061089537503513322651671273421952448429551918613477880254098207761418866087161686607406256303141963830226992113159698672030830878677155858085083538746863895900566684341382158279229004281755662783606428365932198737948495603866785210024076972634931223235685315217005955691441806609247740798575966608607343223626643892254779810911128663021899259633216743309202003218026331457671036649319848715707921332050228850929134161101748179173664202683236825882141637204418254438243011001355812375008276452903817363575009296215953377167021466130192613285375080544668444701302267883412179856628819546511236315414564012704551813203892907621373934566441735961646345229044271831701446400356094353568373692128530574689164166105518408385664961271538455535420994068623789122384614771990285665549243443111969939892176810956785841273794579821679054292133759131532433574408899296930209599657610850543520433237958349931860318917813798348119756608443994218682076038117274638912322390765566224637702667863774368481614264758181472351353159426359168475570908370386338937244906376354657345176345766875429325843523546885561744599366906069496403446259627363243326665433788522505199727572361424887387125611836176004780589141114308574974219570629670400092033121231495564107494907879689841667450918282693777704953328464900775335392110190365888402026957884456863362225470828168491709009769466509846521097402904796449553904884865216605234207804100462279757425271998301035135327244812605254416565235742947123522847436074409745640860970688097850408093856362445294484901301125454608418630884570950947036735416986400991570417717352635974017761208906345648947866463565154005900759265827384028744650317394850658856634269542357752140378812032509710718223849883876855056766259217848569334457037283346790992407285212819022739844971688127912992312291839797414546025686971955736735265711891858018721345887365195317130932642197890090277650089146809363699741716170285859752749795215325627601396373953995671060289844100782652769691524134721678983852203140792213879146589001794717799876198344617441901227523009163778379063019581179476207986545699049019384593795616741329374184835574569347672907415405278064903577704439798994639553654375250016356734036046872267079086675842279897013308202838067052862705224223568726098617567732175758872549021086160782134470716099661048883230300488884421629617434916989672239318131513912574281660500358502431605666708961402498998394005191450169150884498480489783692270916243795625155256167894632684702010157931110776129645668207129158756983461605091528863419551873029004824834615724756586818848360899277561965624054830909053019875301443954813652551363771655084925451470947699135800067580285424862664000038346823921301008041119228458213099685117128089688459260943556554623686784510027106294200177144817190356731571121849534147967672676236234715662395084736237951561392625063292435104234263695308323938169569299732663899847545131644724329283964146072241730018947464978217237701464300703306429912096229385211785388672634436546034974177807516920981985433675011942081858058862065656092120275069224904137922890317515268232189714964716840600017971083591104799150777320863319216919607714739911287743940173820720822030483483601393065847137175956726962091890075164334745643610103608790025574069644942597826922861841589851625433265009407015536008845411790104600287497998574325017154382991231477222486144008149430805394727227641406038227378887333339407877967420896919986843919273595951624630977853623039812883092280991361499634263647963717317414290269092816349993542007898098842695632048838502267405713501246796811608693120460552133084564166114919838470741627232876074415700454431183245123978027924253424643576416898887057916384008660500114738204212948203560360204361212085041933737107753238520137285912600976615718943251921782596173998864631931844813469202031253160583307816697985425814600391499420662536141523453073977999567557845144409773350232234773680885705598600945864446844074562305079277647182151398710475307049880385162366312349582054582761441028709227646164949140422561093272195229239275957836533481935895062955730920175607891606923010193664456034977863404415952160597708526217368985212519887962895298664369369492845300404601418505204347870092112148190607977515346621160469631280800814985366508244657026740681592941913067188933904763835177039139164725908763525232933106261230891156837913107071974053962942763132921106070099889523287537612237624478315930236838517559528522900228796584191044910043998838636474084186317554201254796568814564616717367062410296579978450067375407482671691590645849732127400143433537972676851752256705580255087909338223663764632628830314248671218906188959832626457296459991246926243232103264686622914082420694068516605443546226642249166183364754560147837898018223567264293179734409001965992308018285106456622922754496326253694869220436984470164203534732812615575908425769750285877866440032959244966424916758034264170004575501226112372477835646041480118978837750332115427410242317163492601111685059298903018009767368126994216644681074996528606384914890155401780583394160521910367160079316763122230129227153678727440884819015973536663879574226505741586097161060003797626930217638113255937333150044923467823800457241081106952290088325826369473245787604205988180666974893619486121168559257021318648272896134263236430110296290365021088861990018450139949358007564460077289853321915405363291098404509501812729357513126492138949828813541943018505743139501589266880505828350848065893336163358593831651084211129962337567792791103042583696000961144297752280282342008543402601107569572367147335572327977331581266007017980439212250503265485268904091397192331852395855487573877110399703783625551113134225398677913278804217858514480680222529137570069180933615031077289419321288657802596287637181481489477257860985346169118643820410051957131108840339045663675026212913087516129278315826211788544340456056370830321022598393878002900556868816149388900399115967124486992553730226791982435755733950970878812794270709331295834140384526005365883193960152664007821924736264477702629976515265891586635112685736068777535738961720137810037108556728850752478978530562564302638239611344306613725076414656278763761279056625818144983413908168595159399725294060251356426500748525517375953266903357994513822757649263174073723421141687254671190783533752175104526679661679882499666706516208825534138644851264395429476056749277182284133301747586063603320107762080548902555890122963592721166731790967993671442915788457740893276765919892536959487495491577570138842383568642670587314891312454191801270621456917921033029214289121806753861388977844547014721985835267329647402127906737873161267336198726325522025000578894275734917089827006300170155067255722282900015824461639404873319545165465215490667829567616577285628383231183118585144826033334095771428456148938074180545831627146910670236445919076742146485612594857737559970011879837228319969586456128918129471329992332671435464406189801545905698860116365867198285294978316721082925089571597723218414313164768834674230783840402883221209793603686831402587228153141845145324590449673298525389007169347787332053093161727670079845358162774569014384125259170533028354725108494559098345850498220202165289140026239190380553634745458858796732266116314748721101950699319762210901375415107129526271566942478433929548429599358797580926540206771733704454325993676793350226744452108717948974557417977270099094422687993982226557675110362645348022905587360377031579401560733505811810798080155092251124176264078670208484827050538513738039362124975039893153605964069540622786815059683126985277396058053266062872630575461442248515326388238813171472948262416617390906033835941004214221322037603804648435059790884673834369785982233394156947733323445036626196249435504351218284607314932452264426528505353911188051628027762807788428768832889706285841912566796913942273483681282825567435122729285355740130232884256672996827761480046798230191315477981507752772476933654770186285195127263318655391076523277062292354991546109262333555659503438591965271120978215302448604066203793178790939965594304593157970267590800484900449483914938938380017238699812680942184044195453487748584392930481040027657311962256749610123771192965977605971772690122623034347600537918499711755829724541922817938104366862904634509948769410941916371968105967333476092463778673628128684374869235055653235994543344023126320023579808355103829998054708980547016810233701138832687513326455610391128119098194747936205033543683636248413628487767543863224183093400543178291624328256753591047150417608967924234406623523495357029693550188655086533258666741854567682720464583692185560237788745258440248211595928686744484684306807907898093799840473610408978063158009703206715135774049131970280750112876256333714438798018293361808268794353886268301399840278550339407989214578129321435470199394768486373799074063381074783290271318598302435175534065880385193216040660458378938796284546473786058478555556344176166899339311125989550236412251331422104874967511735089502751361243411973323692561778912030809226950795030777378660218524363332501095856392995049835354479858469395884662640359354009421537273989270043837933625990359832906979294737635154083896355770831679760248337911816862189562494791718522822540739605140974265753195719107318169664988471411658685342992186185271113120555259045929151202013292899933085515455722100170256028593150187199203713440428987334178069098240508047993616957681255160653817578299051117588456643841922032821612294159216513201887592779758937980092771834196349408191220468949020263117820162594901703944550163141716322054318175895378389239390036408880238257232030595889291974841240511241095289264465060570019032724189908973349917009293066349338618117126838904448802725590098421668105378156426098652096601772189974592340567479152125766850907494130738248034525850138919391602188564576350058001035689466644755233863643040680904726602322036677312813475051024783183179363932880007093727934992899641764192672119433194798142876943889068651944846511698003495467522915427032878786293933284043081364591075133202977485629146494591341711482136027258876512857192550788873936270080252465399150253476648302345759633121337564554956451709325947751798299405814184213938694104719070219881670455885530307293987853951862006865819755469736630121870695592127859342487110109846542726722282396406495009456167708371049197586605799549378850979015269698654183563527306300393323172485349750411210293183891324706826635791155360136897695718013371288424728383152449844214756761193327770391823506116919964250987924863365212000284197749332844270624213851307616329403410654869192026218435440283428185132724789875661155468562652491058078752519105976701740307597394985867990095148311220621562716082611853939074967299650453746487276853908125632585265356347292737497006938211684585227027397883695451854953791046624683219542263911111286201958336923916658580090669207721930897468845662623009697998963639089922792491013202685371886233469317616115836276470243644363170725625600444091295876591318544907515049522654938055964832175667018002857722498784050342217907304605617223961313080384412765573428816411524733433373260990330422019103741068675809118190603790428235540419824383971127923193711193658143334497640986969207749587310678651563878328343266892901022087757849397934000266795801580904885958522432346721807374265371189215505479586820510385695076626547705017436266457505244915848700449841735558394306776467283865674910713429582012046673759663338074373346783674198313311162400915780566883561342099737285733257779214608581544826981419808667001570754507659825959167657986716486545122207374631218076674482336958146712383656598169709495281336498241992637775995271446378766285260919615265570659038761015825689485804417418500598108313493757705882179776090449730834830605861135114870307196957473431755460203197757521973606427919720686374106866520203562870451919326176193485771699447049123533512483836178490248949132833220905592113580380730252759584823203493401749722783595085517900309366247671971746810063910874221990124089588971568619984042138151745773074761616006346419609665028300889249720267525277131438869529978488954169710546894157674541102396993329434862134000776681641775933962949835201425423740834381007076082372317451029958388845058126282792951686350568672846749695922932472516484988611691279673540995899214636561576677078665440345016015767157097744279462071608750613443949590194777086737575804311064267761714644279007480340964872117220516792443424724984517291678506508775450395660936377711079679138570206602637058253684234607959626490014011435185227814725170266142540713398378976555932303100772319646856760316634432194367422595030087597346512102300393236780457175900487186845448621588478251922661224098772786164376091559718214352235965743791334671502285401508387344482910343567431151862264316667714929664571968139231730333641550379245805924360626035493422419588634520544209675555005701860905643028616826429263116247851534317762518590941695389891832367135740137243028612049668356005414907137515983191604191417719310390859499192187967207061114524450241847849702803632759859217817845983404276318275812076571964974049875745168765153284232896113305126149638366788106674027728019300530580152469114040190741409543175861402860679362978712555039305477376453962214269809261195701838231629332776418095731119661283152135399699801722811817682808349105777129335695885784314919897543165240216135950823963179059220478678913548779136137599333215029566218139624248323266901232548762361848542938716790098741938622372072095101814217615061620924423271633306102138749774912787780648586303621835899449850346643345621764966418872308221804523701054537629851147478225212360982019907132658279015402055382974423445510328960559269907108271341281572002278483194310706708097818064885826000403994560721301201501454133980752207241389121216317123268888999357856288127039304163431947606746196510116422970405131606177548179457029460235691586309492554401200725651791468916674312413163117060407574606191161120928409074548184847584047087555001636994756549241092961773509333441243159786763039015044217828126943151558731994583415067914154593752728201447813977844793319335964662597274729951881123705511078877334952845918203768527539191357349406395886488757439723697876576442333717747094508130272391688044310482973065823598059089826898503845631005931526104536783446097963270570598654798988803434824274401921348302971711834468388952407106222310749548818559201362231441972794886851821657022907362358784125934273144253100927775434747206974154274032900928625061824590091919540721654686103611788549125276215996289018776966417525816312356873453792171225559355308995935106052431088081179831654124186025269421255260333768841972271919272620284648690330892030690619651657514487558147742556743000369717899775640222867020280893187967451007659222374308928929165403586895869083507415295383253904634125101602215739610923931165798686292949050599877622239294200710808096146941244021562150840077974511242912517835254861152018153123514395899471146636432349246865561261622526079700952989099868380411567770180255619171563601311700680639819458473827287895714908194559085085327981168958251158176159391357214822307700319764370306377238329779666068725011569670580021773075135126598549066294906123209395942197602892083088077776288600784510206447531490185978040380952793002784021787500023737356429397335237784414306360193173641351991245232028501605445078681480672595034214620494614627674746238781791728808229439352109161771252853689710411128570789569080958738865364158613683452754350011336218193917554980146260477538075060330612753727380390308026259494281528843492899848423987254821161104552837081529357475007189958796227325079197217550002562726156878501517381563235810414906000894109518562268926297333695277163019218188665626337828537637267894025006424390579293709071157966662352762731966884713041558743452502199445582765597571893984038999534022472417523974304079504650751397175144060208500835664717270985038659411046147754110486899961383650493154691025741572896645875651513223083415608360758418912222062340193445348683310778790128159271273170300519172214308697766912443631773755781907418734950637260551441799613151317789219886394048852643932411892060796246401075283407138169269010660826265529948521320004106397876179784971210058852814384575857502881143321381635021110777033237204335800769097207219679633266498133473865072849323157793411271259009633618006047082799726276883560286685644869135881885372816597565177961829450970007310321870981716698787184464198774684905304141358440906043098739580751036520514594340285048120200088924080721030830848172190589172836436572546900556603883986971745629038220300029948818952467908141557995227874072877600746386559770545409369242980012593943921127491874130762369946845018342493607748815617943250423415963136370186816937702389986139697018658567712242690742368181711933752349011558887982382716754392890245550652728433980426824461600942800875791289598831008661012984504649504929920261651230699289835373290493902840550131076912708228308449735821592825908039055148350863162514254905129233171800798094430444789053579176333584990431214029792909425993850035669274236448559067691547758399932340718572527326304653563260653180655342080485352506206861342092290259863682392949730889048018616190800343983698850233201242055316839066174784566878535039257919018105089068475843531481360290339649827345708662167378073759881424374252984382296132764583908041723609828563291121667221121739867067815204308209657412642243630076657924749266383599461302288550448093394263728277494365372118346108046625492568910568036076263576855046106877773645906406381715988019837671044842103314282824059876357293751094308405049173804709158182069734772511104623218270300947595448250089062800813837175711583859640460461416470720015496012073632574325569922953519031266782120757064464657544451719906048638457143090379008246365383924472961260689934392740549983889638235077376377191992456344980812778723164841904172777298971930545605856328038516206827324294766879834823206350808239317566328429863529127107351559907417541131158119344958091471287930727092783419089964581796254716991549015467960743275565684467469976832069445464047016820753197922803546039120112315200969862953917307337946767590349377298280328432788352925311937113546835406460456013741001273888932400403702484921488707993579342636348106653862297909676495364356655796199328714824840588707706938873232416076104320688805072884653082510432656738315794088149979125336652737426175697256501469780857572928313435471362945398120713805537816537068287973966665161500197651648310021228119458306812169657626883688772540065490484750388622429102550466602154989543015351874256995260432098087130110430514761983023454450314806428545473159248193579228686493873942304193506104430933685476294846319113210504124808334864640332445488019764372566334298736543793102335969907063766349791858689738753716388662506987860381281410691187213021303995290097256909968489829888056627512412365738202969079419346121546130444358839505808774521802968419224759679488286542339265180662269702357154102821075788859605911275924180898724968592653294179454128569079220503088174071142836425240027188518557574682155725510727313070482245629677331992939994316239141017553762374518135987134593833531240477012436086964445029417466583983550328112506232800935407927693923276369703995052691228376927983746379419338674174013075860792044928226535478683898498457978331852300545772545761068600350265025540778968465534273794625600023791010240016489705490149898157683873050579394434807096570176837712879919735221174109048811400675924453017230807170682809602723395393561718648425548923009370777513833508902178926798382420143728422601707089494094752270303243416016222287125699800077949812862187584311070042333338930631230135396604578684983929303113309191521466466468349605602740913764697373036108977314328840898594961533103251728176169585571033219647327810408083238398022303848791037938033869730708574645455474746545542308760077217748969838949371050751610086541959503687688003838787671486913830276854221881932329964863109397764984285611524757937438071535128597696234439500246203700640747343302449846704465793136137444817232322368152346213815339926988779479518905603252669214486771962942449549513913575177022104750686501568473336978906888524006249187591968687920225044869087950505133957688722862220724914248320232938639889081228229753749824652292510297951727769333851793586242768925905375492604864520603872718988006619216595367168391751077914067780623303599130913100804251736314336026057798779126228938871294429780469234782250826680180647898857415282327314556493849516701298984552269587605097033991271703711377118566294275981345985474265405995235846854700637489336360040183327472825097779387412430552690469842018005504707109599329802332574116228653203934706591837424662467035021663034391828768653524542337237183490058114728882371414258121648453169049752152728164760314366442716752228230000289378582323177491437568248693120578916612399641439960529009495900128286952363473722429868011903799084926632102352388572098030673866835112257493509768200406734309988533720045910777620358586211554893710984314185002330283633769647774670700435441460153413882067420074190361551920514262575921822551304251228929135301794806680585014625246109795273784106418765888647196753799092887924914706053003954027547665248569207754586458787643467960588182556151540182442395313191237191037148243795873296326293093563727542394833752939081257021839059544669546236471573019133087128552628044521006753819204386221607889998194669177003630987377817039932415217677679893977565694578481957807890944587480595815206585151341264066362295961869446827803689440317766198169715843590456801988187635702252155050357647807698984660535243611751022952932456676977451845401939704479552532694157115863491830728664640683675249178776705154311422768792614336349876011062412875483909281595190713579097482866968798746446962366510239310608808399074370820316368834679168481789366370458026563754766803646760142121074839507856005433478186574568721194568310352765041395318182707530492695457921366191628631793036636762816222069280396293490939574578833888863268630278221305082710161511185578311391042076477121035276359540009394293602507620557367210853361865034042596596958125094896532167338185783222600305938494025225479015219160226181816667722493474365544993844034848898745379037869624375311586500883678257453633928395608141847912879627297549227193123930839568261819858802397809538679428925601445200393576215243414731400542892987621949578916172094173812096885617241112347231018216938734696935163055027602635137185529107956957615760020648072777916844716627649852686695202741878170004438144659834739202123760918243357972780254505579144538059890310939863308262876001377194913546559947666642248214675491663390882739893953454607901694863384025694750977289245474946290713541477230395769487297893719521967579861477615824261892239727590646024968793541331448161141616345620082048119161833458103523642808691992857639626655810794088492367808999175932791846682091159734823475254207651159247558513609077934772795323783641859661733656754361687093540767283562246395643612120942625287268523356789046938600052435404517181338967502471205072980296301060498715365697539176433966925285922905192808923051526786049489960192911451690262060063771969846055992877334658638514878451255004976879887537251090999499163080144262458151095825404323196853237183830008937277070487080926525539175485673742634594412633875264475769148838749539078734473815788308178355215180769863114744700687075997425666545216164052307460746393077162306212408020822363725596475307419196010793867686885008809322805015626811806534700216330748500846176144571789780773636359983179535363705623691866259817380215182305622082647355815645138291738005370515867258059074351532700424113511336738833363966686828578365942518621695636188371988297541614492514361409185077929915221514025421184056717459240891228752386549057308849017794620014515304663983012148803730771303044599137858812200996203245501677037482204915640279188691574908672097805710051428573754865604596945522542439027662389118192335801016139116360448860958167869322102221596553237067617936356147456079224643938684819120370507766024771442572325946759128051926792638969791418111553081801546621494915566027605315751288759408311168798606376979926802179257981485921811268581732741834474770104055824393360408834937641690207208617245749395983448349888416370745033292280769299954997040827941151373048897498385212888317585159439332763173468509238340073122258360896867679464400774210548600419005504535976171144902795422469783228778942132247820537383223109032557229931459778261944296838415152006543002657784609271600928125566103095716387655079473410339142506222017202519621601826437653187095343834475727150325017773782403997955315244057551846757995624676393064173204974120961071878833196767222416139530324892322229411313758371482631303473706506598323664842750515743689971522403063301735547294147276217275664205541767594882499935836403735416282863332777245461636400043451618618017293643191360372820596445431057893748870581771702570438850701942808322047832223614168583229517589750491928398187743164590553691947119319689808300138106661502519425815104785458875333367785333540515251927743957495016360613274105169617545714874461611244087303916862720880635416165485226119627675683163526065631698979024537034122155275720920070418068279449532511516111508231607251969625715680085123245026581520007643876663834042210756710911560915778742397677086109872367409857244466714536844115355143413044352446107114573227337226632861090116236405943004034187374002386240638963883231126023281766436826183722661958312326218145205999627044304334712133990524538988127024198404892056577478551029877879450092456222487147054777254852224173327950700873974251226619663866555212813630920405571672431042950912875475051329986401863675106915975415144732505172550681524026941036212741230057009002536439803631705738633880859194635111634666913101206496105698247238931037243702816093695804631079624760301337351566879730895677422630317832826168003602534930387450238437646565818770131946434000900894786164856521505872946874184424660691661445523272783361335089038290218595490224129340599474629558545690266973600679649081498468507959435072254837883955140279695161421721268924540606737428278918081325290550138026862852193889636179435748814449626364331696936954946055028238470498944150867979863191250968313976902417643123390106380622306427454344428528899040646169379672470902623439352895820899617534810389892948666359829810170915769403794134827974995193070991321758792863103131451621416459371762554730020107342126142280052989442814570294546229670443494360856759001281558600198645601210233857118860948777672115555117845814596493462753162364209169643633490878759260744255339624047099533828559659233194314775522827033279863795329013043060790328813613982243475774506292649881376307342315249231376714694493085563830799138958584198509373849491709270289304379790137377447071696217160133909641927994440401664062294852525646350253378431526339712963512239182709159728625473020397477439604181236476924910072274228773079266369088206622747938850255960469811204631823488690570518008313191196230828231760795813860633234086825006678308456131935625166399316277907250539665558961198466138593078436592537373648009457998722757954589691429535948111987776163298152924675080747248933902989172131821052321511840506143009715889327291239623205253200725428424118600244461430638684067916306054425884240171213642561276911251261253459266455018677031220588308926429299414006459502845513934767218845869517903544974829142780479438619143500368569395422576432283329987852826368929095493228110090654889354352007585493362100584893665630598176215858719006861803436835487287821492652198989059907593706739365264055037913985149661826290705581884166088890491983487790249314930264051659342002610536542474749882623623636759938671909497783506615635064037447826970130850520679422345351553197576880771683588962645798054284524810564067174065072921905938250451990485163374225803248774893883672371347853005324907592236439807864114817432616056828022044104353190404028329305545065335108745801556474289273095131669796682924417369369961148409694552787489568548950281856598419789764977901415498557495403271679612239074905147710098969230825823839464956455401214389827227338268870431797325468231041930984983808330291339969053852894992296328744814642633662609862759292486742261042410821179463268768743392293159052948779150326569446005401881728978602551906946392841111951593236015718167752557606746179218677458112587196240835288791666040382897724002062893807852331779213998829462643991482371456540072800665918075228092493086477336300504646571243173302006955890142780760397597022539778281377396598721253469317464496518142634700288186372767609298152078087524304600434619606766755718464087022202223607916471405131144758337313803920159635937493842707844617322542157342592658269830975030994332493701036219634672483417682813477782666511727352451674135592977119708582204195911112365577926502282886399379078993328480251534238546479588614306446934364376572419386661051769322121558857128179378193158550977959556201572638872596683312480656863836579806584360534917210591418179931922895163781935802235156878543267001570789871058088586744932388823332893902169072307643575313860918935152083574537254380001528687104959982841183214987267604088626177238211384931217282871075835145214591300682490576031428578272523025788500421146558974367189700235736233023862708059689905874829561934514658356735273316776037649483385356063908344584645721917342019179600333556589941836009192356966203227679885052585114963985703410159370128096831750603152706909941980356943874000311646938410602868964145675973296594802590992016377906506150994607015432730822629228607599358353570915833477036793740655090721563352744211467452309819688758687401663551185934291613645905727768069587184899623462082557445138545597854446536248108413573283250379637988285900027532054084462009617172073305276121769993497851901018025442628765047792800000733823479764892514233745733729992112517931067602281115332470817395843471119868881233723981113397017813610775787733786146138832602655073493362942546262798274482908382558312578558991990776205512699206160148533896964264437254341338794141465718734116156750719213625288658270168969892682792097697029187680439218655131918186660185487307365835901416085673279815808540160201549889772744987664938681756676445163072680933558596196380123367263398511290218467398960370238853806407286300467659207051930330705755114598766691885490453564479155176368471530082595950138728516476270992442976960981241161995473213552014662126732564778358018019562116338810627347600696327924511154828922253193242427920787817306230435769363987360444423016440016140240836589164068047698757909064738549995034597725671009650008037551140877058625411357316268782870479817644157575379576526383566788355874364115407532054647753822760475024757687971300835880281936420999933164187733052883348819259204610369212665707715643207265444541042782611961905265179362854694124566552213867634319241566102235354364177882843725583256322380523772699423973807241493837168883632551121247969340145203869731709289586344219035190040798992186486272965919476910786644772221342293623789476904030895162126182743308531062693115608629391999588498105067677033093220185257596824605201014351519284150850995499160035496920553085498340232044462674789380347270638262249118881963470512179126992828180220689290200275023925708763564270708621562886636898319517903242396725427310326626888579220234073464639978574101915930760259336608096762762812908222629822244207612064632458001913036364388844788987231237919950793908845556530589459545171432640788752635106478911520282002069770805535502691306518312755195812746938543261783925629833361555715811338848935999970463798720572771453929339247483018951317081401451568266200931677077031452267989016190171997349991253999774117454391812457544106734998584721469571940334885533223349866733784973796199678057979970944618458165843243173387094996699764157662082131982865327958220376162963573529626244802607721723564385761995503842315715330576088187691560397070414176153440551221905572841553425865652731130681071467794665364250838788497129186103818245534204070813266196398816367077434822519859119658620955015616287668328406315765502723205657607835470224411180491942862922798366848816042309219891793520055423578546855662605667767018361528433265185913985471819484982590840790948730749770202366960289240905901677296697311833499216460410015732709006339564888673988851805381884055705700626365678312921943035813567123442380700398013359840765860253540230438856030888119188818424235611920508928845130024000297940278550536678500214231191657851992996814300720038976393256447458212987969284631149676375060704224018452596396865118541788346666264457718384874285574305745788858194094385680447275343913606781737184962482350480411145918074551379889308494549267662793348517841244979888358658924189238556230101654822149385497892817602920142975455874940187830086072649741290689178026965302626368026015349836123606637465803632752802500236601146237052198343978245452787221420746532611173876001312766569804048729816686295822331940947024171908259344245688310741998152130330839476432083728438348968493938619037556952842447333908009198140215421318069430422326393451046335540813293066948900144395646756691093722807854933106887937595382192793469348164037482602265760175891170315492225761740831060648306286982533072356198743690362453740482747864883400089964974316113592021989424305378960503022950172666739104865677490512686606363783000774799321137433734569973181651901520251182774347202874513695964478796737480531085024442534511351469487809297548652569712762216132193201026551075513587539164860294913841533343519471712006362980976243261328655878790516857555100194238556901298859758860903687130406968488874264639820986454819663835027061418673232634690138841951147376263950815562523322099589551893647969743722157528224682870726671365116336966235216269206581640023497106500749344643130905947541199424465826990723224846956262972280597440013993745550152607147896645139292115459065293096057151873705246253988613780022598832758656245156523227236422895646437421024947358155154376595797555645635666928497376671062068467069150115802243310119830992399165871517758464178175632939601549814516289590355800348568183413290481870362713501193847655138633277332646688275093330831377461946120486904162962414144152601325495106969139868027444255873070391053809456924869343450049813267436745279532729002535477366058883061175174896434956217100147792502347919396779497357497981215130426690150040425459059483853676437089513758766495579432512875262849128494671076950062335337764805223666477947342722313085385180737459050561717150707954272895292858838401120415141176622790585954953562558809914105202517741420892515157300853555347712143448264838281313692379685992659586232629966443676924915949420115770798417697683598336751539807920396095270302562339005991702352430837326486460831096796534311354948446004907824943344144099361500731262250345264864982173212555208130517744983729010272220116365657039333424098111326949339698672498693691437503997191542973984727714557778231915718482231007459082036171195039701476635889608675854561495850068450968178451876418552444409331704405063073744671564739938955271590851595936129681139083956663141463551289451722480882808157495720389149801296347230429907085583435275400375681039404996941950710825973133711837328487759027197553115846455693383160551839918081275408033005696321569686693757056957197108582516587645423883029071700480560083429441798170467618340831687885109907194266245311295324349571203023281576158262418891096739593244440834177743683524919958462976320286822320596772163136682330924638428409386577886944032016017380650282199537558521791763614720624539261131592243847859005352267343438519051926178451947389872749890283498589352118190553816610478147800518739588178226546430736746011156387639979381274961379172853518107731597184126880662526858102278038587108302524875956621774301897913681067142639552066300229952828221225173427161828042769423457946221675614588503087615517654468698714429106321347163796530201535775324605547840244856415905510043088082062675533776489848735149997287257720470191472199793486378638432773864739404764004621993888687625234013534065889712618606167185570619627942796836960776738373399925379639371384514550795176259915839844358616461853592763430609444064020103660910975902436815723440764588567675746715653852827966166017647157845302082201247858551757425019719384344273540884181236578078721700830770394465666777844583911538069956031950409315042178453106186637692463462163926168099028886048216411492841800450219919473246569989958892550147206604793299806962022935501883034909765225079986856518259739522767655452100696108610896561280537983804369757038121709149303874679678824436113811204270813508363546885928164471572325337127471038078329468505453942523961298219158376406076958605697005015260663023355788436165042963957950838442357602854592131939860145194137468360422016736859767026363729071844726166454171642730436188721861823799671225970304766429612894838437626492658022123387774175813093032527321593549084791654386334515311340051520260787538123024792125639031147303268788886861698285775426042160397023111334927895223565764199209827757932950019952416718920287915681252522130302106233272735909687827626832311938754170978161701427776158840024740150655669105744420139460354533734770982775279351002846356293623082710164590793064977352316521481870413082170344061809523658108840251072079455289384543790717384664793029212799950442627292122009486242325039890800097151982116751835445145334425308242333796995676623854582779867459179864780429406303919100117426272524268087739175459375663410242509440113763532520375997276730235427318684759421603101528626653719783246368958810064047594035490672337037780385173620603324117681343633525756329167375284273660603064890620405648820396493931222125724605402822081867498604882944425750297965735431947013806045454105385136417940763684594892692140524247635924757308955409119792322798634980946853285941806754839509461651556652641655380850452989523355656070701215113936718930286131328671352113712052157092059850210177122581427923166565328527038961769838782363475883239723724145652096506727715636996149580143321155205076581270086541929806993101073527618083980199958485980592149699794372985187853489187070894060396321982286343191443679695028228603283532164705526501249874755164348593724972107672281149039759978922814038091553541532230397254867645397518373121457134243326027954544362682267448319650602178181593486426714081592477607182877534282220527397301913531911711910181376659878091818053747402380717710973535891523208191367375901630398111248218836318555715918078174312713465242730316891966997987529094725508216398182865182605538049340534195879687523444002806991628795264566535771724137597419493796162797802165689850886528982584540122807473642550333612984534886802047342920781389476491989865033130572059356212011864733149176067273613137682530546925009265631161992008928106587401495977480785640733696374840631814835761082251145236145830512460466500289088975234710461473629745589111593713558631561787827977347346503288008581668648015488770099111750906036813862300114321075758254305337431186433244429725748637438960771704998680963234033534642865144846845117543640859884555111638726686702913838176859321872530086910143529657858019219717960658484946918704274000318229322424703875714860562217797242270352494881476729076966079913666590858705520501219966163578530782655471523718041015381603373201416741906470242836745816500374748317418784976168870833886750952395466889475836706328301137219540266401206453188049261131693215558970143010720407177263812734109309902117380604257415879751047664500772679709036531895867889650915934043891923578925860382185139668312622202047513335473868760343729653803826491650783718810414541601869119526845433594162897224342944171072458753074787782602805368501840537664656160162441512833521852045074267032778775209213605065921315468105940467398356169938534730170683308020759719047395271234202061876962938935289119880249172387436518238987520393203782725542590282287448323841609882754988845198961343251172221271520469833530904925425484029061309659773368549459218009828634216039875033753941963484438811957258120004825291435140010171721419899261459462005537026679009097263114245129934671551127744607390562016432612112920258004936175721903582060079219499892340884486247729934503719778488990606815792782662945725689661999315137984911088741868093134099663723838358425570213892364116671761391163660620165695212701424013559399114512453405161490871561765258227829087692910093846613819900538664163120224200426692680046145144724528653296408956568874110637440988161619262961951220022197227300958507058563892409778534640640089557135401187382015860686872591977532920969267193948976232006458269203770066913418287846530502885723074451229338770747063230481205843218706119161955505020428351172189198684089218093809058699104866777450756653805761177653676483303808865426237130528535754821993451216592582250415240067930245248748664425081462459968545352137775000749208837932838771570131959172403070936480476357878189208851175856641862789915897747440440705321141376643979682844662289698737944118383778761228296657663865643598924765823140772097206332975133254322510443719092522333443840643319731770188563325870874396495590876889743289353739452326320844580496967820275613133767521628672245641852337967021690527835050357676866153770918358797948660453231610156209911672802597359694277735656608448945394914374249308673879600713515708752052063165597271425732745326656846430237333422353164582047533004180420350497422260393925747264837851899451526891060161025478130501855227555565917524669701899044138249295798426881867082915447532584477040383875781721434064323050433074034379488706723269338708514187433375553904974655074050420175012026101012290658187708082311404451798187519448766710554193159218774042395641035912581748598361313334303806984231653866680742087283313351454912308746527815829481628099780996458016597468293317666312112432374091603558948853840617497820352638115380860865456227080199281192988619064824757570121358673279600057010473089957710633824613773844466670897798394636958578103415229595759449686454835217690157583290857152055320428457231260764674186292312144839374582774303709077988317284899690967165363091551084738048270272322020558478317852727501312579124678706756008240156211541483476415028509882284170433177352712712627657339806028408025932537534713532138460803662848175938537759371542391503218342769012885384280533507063081758868946811289305968761296851276042587141358510108621040009576960374756565203136492642740490425108134882810953692614920764907343309232123006652279579615568015972364674773512792639958859649914466253698766266750293135063713994691845643637697709435069581019879480552061725495114282993553488814870843151662583726315895985316740974976125699585971739131533646082160152107723783319044242898625405889504611171714549510864473143455763631446160049784821630929257131348150078017709273646356267246637848573457251336682972873686628176942467819341230890240720941436209915626787398693384676921953744106585516727364334823178974727170871435133467074516291738064633328985484351589665559005441723805993769447404539400418052623566026334084740955531699446014038751575493736418593239437246235582278795354544181236806598915640712802787076731717531676907107524860477647456109467597059202315689423530409674916433533437879407089086600007988206859588664004543823022915391954341809426644715972747267441508786939404831542059765140721844090523139905067166573334782090502845820946121679530718026935124498545807630887700269016671744186209883467122030454013362502913244189183689399295093082600718392610346780347501639931669427023679877709296738462986956237736787306475125880146895898941204053309809481602078806248791649262008974456737876217473768262703092180083568768125077419178031244685885529202150221956288334892974737354837241853904050763236041288356045218041065686774330790521323425427912906816155381937571608733698249807507221360825132020173741963750107732434256091088887059421431312313196067664523627722391586621124879655509491548230859411452160063750641574944069973899706099754193431568524239806376038799879687236659660605574771809007354945720897823792825167479315040710680229229018853868665924072952912647894098915308190664077049778843369958479088710876947562864878537529323016468427266693826730109412508534580563447669779237139727053355250436982899663721789517958212180956081348913945008019384375786109120261102205753841072280870832910147509578265420867515973890953736882369238377047375642062440592307165768233075127342656367801360500040373958637937776223357717982769128857140173093728055645032403910005718911802606100413495763704828595896735619806187533213611055912101057241911938167411482482605286805625467410221587089507139013524688400431093651427747764379839568672302891091710453335242208253367941099270467402090709504896097874095385553035484947558766028317501519402181473213041113715930153378635381647172241326892185172174498598030019910043116705905655232323483657074028211296837165878501864085697613545809669188565338254175576920729406349957292696298433336232078586710945369199986804092516391887584938033667160446380760622984259342008049273082032438849413968722777828254412132050047760277820836859728837869884474643877104329710778419729145076284645723135846915369371206334343736823375286599987040676907276085362080281405083592185160064662554202815917043410515040987662542713479422387514882694994919771779433747214154686649549404566848521699133094285733313782178918356960398545015658203767547966979310679124675775560321275132939657449402923524524581223346603227152618557293034522701831292532920287792829088980367048711467895089852997292927496455508736420712562555773419872966463183820944873296248665579924105986062108756167907246253119931458105588864255173669052079524198845906331724649827225658090824640328684365594679217885549251251536080942669445728801080303242204268405407660001120995515805630459866465472632547564759178574224892153607167065126396277641670170217441452288933370663775406839295465477853400486073399598584818292638560568458073033368683935896770396228990824974531674516977825225374256674930555799127131545807906747668551785777758670419712734194633083095282488136443437333857029222374870438435830118732769750148663234346083516596564530763346328201700563487974949239883500856210283943888417527573572053668589268899447779527630192787548422018691700207457102247241578600271023571695457359098203848173208413727158998812245760396645457977435074669464387893006213806849263920331987241549872007728084947329194714777303879313329786114035586880758615403331077191681594824552225500053927045996565405685307281101664653459345025756717949648661646530393824824100045476850217565533815843156489164527333389255970877772997110782372524486087402417181852428161397500779897831979572966918915619931481019532588566755744717493326793966878754040999375730453364979429592225657856072822944383685181372827627847492565590734177471213602490543032188797508434634689931268848929700399950908165767084340432788581495718672027222421219352582932835265444246757255492957294671059830264016692336272075166998599777694280594804651834975543996874705071189431310811811307174680303085715480180088337867658551466488688872301542966801168321609983535324692350241554635455230674634193511821523537591687517237615308377678720109155128521342906525804489490552334670311077897295055339593166711291353510493938384628874874834864385454115538663656730598967116790038521415819072202790288411944505421775849817176205510710758542355764007992166451470913841883895304037481215243461237533967768029691885028725335574221204017721229603685672477163810910976128138480730441340608713533750475167810267217047855224487810131858358454060468234498204927213598217146346324258817904826853273899047866573243670148096388608013499683898798351650684057377002205226789346019335803491398978104742949798515236591087401192198708690209704289086201910425131539447609624498290975933526672161827962166897159868730066450689577087407371258419552213690222052989707044674219572351731318013326967383059831572760176028431873869115769761998097395508304982329264231122198848690892559284989722116569142387270183474212164221503454950419330316065441829738028083060007118346862334598565296647946695576416758273674639326845318034054370649740178280210195533304433877524327567587095775906996564798441697123291997098958842906890458923071018723762999730739357913986088539353535039040925298075325185459097924963016253886719782074764454369440853864681067132379199626423295895909825813540164706442294528265202742635638888780499267330826826017288078146947114660151515653804487392836584727115480956201602877644096064798708308583808169048882191423021162978738457038963677672736486995929900278913689861153789415233992957296108633309388872049251719039076465815001222001960183387371335541996993556519983594375279046668729927210180006717731165443435697091044439008313106449570655601182136998220338483396991024863343608737931266004144929478302106111942190018065545893437971686743957158248613798175496378072979084866958241377901801514060520644188427294053836796846790461467410706325809574580958722262985000715329701581997186005181982795065107164235993995908504421775961049653335364144059192915010249960066150992212252004515272320782456854433715427228456812515742302882841992637577812607549206150772835589066875622166594807870807720632989862433166423378821719940387911874624982859052571847860679394771867794144620922357840569048462326391677493600382813668595577000882179233099238991026833626374278374575198437501081524216623499847936644870550570405062643280745211937631876536915346615181031209242360778963136188278810351813614527195592101192957940596892545929444076596770592233787745167216372803998509082218573293089767997566300824556361674187388327924787216569084843807658930280897742710343474071316674520281029457897965504176359930686751738865288554695951577378949722175610105327455031373154091471069677300380614977047722169970262604740195838071597131593581497337528480043946807115544252257841309209146277159030069823701922604662371147210365651097186592089627921766154911396428318696472023771282400570287794159810347906424341302754857261900245752025333328623702829363500789761210647721372579600313181228772516309353383144260580726228404947019045196858702549132641351490677173555205545277625481195062228047651074415028844311202601511251210523981671382527253626681365087638890288389179388443957100341208494250851121653224430142470695013994434064278180028050354689643682408052942862573883024317664867776745443730715612217552968698806656918483576738691011813586560177922913238387662856124943842664662180225384546820195700341085113243706950179971163947788148556261671314675772899307470310216242303476811139315555422154496474599567246229761474473248424322999772893419352124041160278442512190455631241031109066602350935295567401274864831902888879208833224522194542850035817320022198185068916591521071569176796900959629557888868267808219811367198056831791462825910649471389129901724476061141567407516845583158242479986795786410702171595344762553614487132101083827023831071487802446864803774475103871436829254850752322563511477433407124993004184836465311063983897033382245346293894916899930075756331764598853877286677209213490750154715350959551672221892879765147997913757592253677026028581771187685628090512639815656236934898829276397585937543629470925634948070108898694394352382595387191860708894269341959290217168236092587447604982496876133088819839284475344431232160162786688097617279341841141548102981834312935715325270462154442419443239629675723720279527713509214991105267468239423558471614479425097983905203482302851056998784671221619506564971492799571781495407714013992640391420045601535264076703161511473096809571826781007625322944962278194759308547136911198845706686929720243429839343276127787362909892399809756570902536228586248313493306064301867116734660830429597048742953542436178040089092804245919237024715970518248351279686327663883556786351797038010032513967623156791126508793944585718008776756157493844696416167541717479820498745767576682014010479457837055038673382980439478199331807106206758999922762317131300741886431924816842880552610847377177459641653826639688709894033424471320845066487410407831242220562927808439771829687656664041045321411691097027282198272250219819353839057595268171927688136610105400325524358914890523770342194340554397140887060977708842960755479010197729090210785784259011945467990097705098804068772755223396093200046147927964990721418505244766181254147018278600418190985415751856119943830313705721903296266898254713269458146269341246825158645300982376647862432322916582327344006907985774377733382774045104975510264848338580368278472072606324695790903126582377938580235610595419849524336007122621365024017933926231580009545085540253937372686278212097642979147279104775281805965233646012550026747417503788813261152722809639487733038966595419942181746725218838511608563399390666933313826876454550903663755885029284253531223185041334707079019718682281094317647515695043475904239494637157670608183300723118956921048511399263010638305573138747767649517413051838077258559444973846431492970141419996379321262314262082130098031905378972374071010824007906865728724240457680092133494346805965255606496048155218958055113110609863817568573214290241745676871578544734238989519694673270232853691216959083058181544460632916363658557502301305900574270385940845524576280037426249588557310450220404670909758858435613542272216935026299690868791361346147744917178575244264948702427441626456040221754327149602632184790397162508053207520642225165424697501297262900757367295349787923611702904286104137204895820082344793052415037350348663545190257936549049493601810939619158102079989870014301204685101470608130758384039934511893872054681357977506941568400714917598216085757749319493493297989636240715658332161177536526826313208593792486916237551885666625365744423206855415720820969233806994194360566934031445749661624389974550148747136340005288614789031939253710970875875535277607387112380143938987364654950516650322192999657351868174949188153435272829027415865168112729993329141565290969758078116928321325429312719059967232553965394308443790471331417422349914678540858548968965311524483438048832707614807831717470267435360481770156541203067430809068635603155147191842929106283848433669071839396100539214345733192585184106105663017382532400360422566308512373026857652232893881425292865551710116353747233256130009858503693277481758908631629044513839435686582596854805549608847644015786610439511064348607112742550112110647226354599976309507782443244522377224184703857338340346533463154146383730423616271709748765961024256972427691287934389436319477268359011051071252267556153766642468382941302168832817066532032043366359605548618007974569870586843394340744891903967681666963958860125075212355094048718805221570632053010568409861538965124864043456571515943159249670260830972462533743611506199747397446619201629394227887347461409693387967510793757020168900381970004115923930649599190475035543191347473554733936517300158536583003613496759524476287099333815539272451930764971566013537564933842621233904527780120589463253310893673144409694046554022922038489663255606921529469544440362412729079633497812621920238335725412418737573243497007691351828756914547792034930291111229773317368603893256313891452405128464079226267928677885627900456666744665009061165917004295857463347746837887914131586659616938013558654275300830843924483767878803284885235843765420810797526273067503146254452818748909803581746261587160958766443372430961283213916331175649619959713826412703690194674702469856215762005261530751784476833789804756137786785028839869705407384643381912223050001850391626587281574222290550092899530972785319187005183600150257563387874142522639147789665167681155926956043935836869487740944430867470501726146016025026411944119208014503838282044223830427296398689944859623625861218590849914139013485400549808642646853949941345293012845112181881123213162324826806884570936327018365961087432637293561183867526457945362125831540685829777750982736696451164192739710794108225792118651375942731502595644621619534342070668555441150449715646210094472543263954239357676439788231237298853768745184676808540738600308659333803710238174534781510963642473703440126084140653331725497945627807070238441128395758115031379172198256375119935343321246978945790812598748922987485742338264385068883318375164889216071666596117880243121500658954534108682196204936435384804999214636221368460720467635323749119194362825532584084431220144487552293466981155267577026059610028065085821463575818239792122110297783214095730145101088468675994278572585305940158044550439868159485780344027332700403736858660519959039850922405080311388549353864779382262539915667793547689184496129981645245761942319393155002805140532641618943918663086562572602159011545841902556010535119622477378747480103136719802632598151003509835546212975072886075745806174057489991156468543562588017561743580551279943648371957880995030884761928509893560546681682694643107604842622617517184810858955586186200123298702666155256159447720994084728355154737104107727913950167150972455839088219523517205214352155287963875046319719734486628251019187181699645253305628897301311222916818895288094718915115664049164284264198811141868650149511314666334293512591295499907788059936739269512365163331060231460420682620144835163825797659971870336376928758891870472278628744377012566429305201650388440152162605233561397780690411628864840882441947178873719058945891458742522984755945383705369812572243759960802539674977110528992976327472401040830271340874183458277651228716615123565333258730290699692004082916585380552961815168377797417273225744337514805530166158941198966712632682395710021326414793017127455155022500473583592227172166463070606296542661662904747079768067058631525579512845992757275893999005255446725345803870741221200130776060837105619419041012256210478933263265286261293899670934893456519911288402820590795294710599631012286251392026612133097215973002613058639507649962960160211662396081840028513716586500425469294245441989396450322262594785558344597823820804368417631327053711690612175018248385582975611524511462526772334668473891091227418719475586754078254226175117125081568148951287301855311631470007111821738099926656030803932159339727833409442775114862557085361980283621568629193333900143747462232505511910395520039348771807734449952999244441799336723635348386715094247282790330072974971781503961600617826973130582577537787326188856095343461198244079941848707390975084313833766544864163522635210783695730313869768528263587764447171372151828283302208704024758763132807267561697890359410430847661539354088973838030839421950079708601747613584026135283664836056414161317553008029671834378746335913907207651897490219110572884703650337256466037993506124067589094200107673065930694238317663523753679828129463534706649384118192673671688054955515904125317535665313472354955891714183561869041132355305912878474754111316079920195240790283063045725444131791001422005957310039777056981209278128733797269057278696851315196363136841925718233081744693899764243765393929807637962465901750745234488581254703668875482219078353949411387294460975250705991457549059260772943985731138015682308872095562568114845687132097158988490512778052901128502953847503266024862566411475186896218056470846936965765810060035260276549865269518989454246329006087306007733094011682964131305813307736370584687242074340067061099972103808508693021192271597404115076974995101511200400409418771621621762001273026030540035058619941737736892499863081656927440617511399413766438720756034920135257054179466452154390936592785029074420278275143620690475546046721931048142440300595505688268851176875982606977005405139233075484298190017942292122373519767568816130769478682437760037794017892231671701398008891417069502512233388342778470627446396642864863530150112706364814724362049050119533666206439613094504010303952124048397122571661890785127546814471544318992757231366218321175427754072664315049505851698509320067883452795536478435352596752797934390432609895544618832321782197478413590151109103100186984172066738448835067126141392912609495875160941330773049809319518482740316640384638273950380387041484532869949164085881371569864054653125629224557273685829026493059452577497058034982052204634527487377167295223865137264339782097384224841021142239936778229260848877589379703466835568114330447219412546312456305933688294617761143297279240223262103464356326617591686924275302809894719112463546020722289411581790504107850336008788538001173681379202667854781041588616829282083171972699915887083560721595864677273448175104571749330402113864221978419001253209113706197816869736684426066941237170099153470030046686708521338862679185010288293265840858390676762723594277019869255235866347963792343123972802701385282138375530697095924368010974742230474875482729437671875640254039230651515912485546239714404528348203291165538507931581641007871473039958808183987007178110799398750810599649018606245968631322524070885014154064451446808779541160910382663609623580296404247341923593032070240770440498854437360049682786910790086527746168922076002488256115960763340213415089808424331992092934989747026266673975996867083590774607847550122563099720005816759819057310767136972064751337788419796568183381361880690451711681142645877663615650623173830862629653184163122125755375378886991080891546454915014942095532699393115004373277840540994216598771396827879075099555300203048762230326854395113750197328291917118414614506561396205827665190299297577013011306329658460153300687151471271584740905143592299124415908191179863803133792323089782453399718600914573934266417580402634637171385641119944907013362918068588981450947792696842001933330537645799471925779637856706255387783286108673233455069938380118660562792103645907323865422151075083949425238715275643108156577283957054123604207768527362329025557538954443776156489082717086251471318343211157888085598820720812205273266114018921545844113556130805292299151936117953497213301184388971979026029105608253333376701944512565640712525647432564402266918670583848879342615875141782344293106311537274873463233582814720557462021732212177224478719591738736814151927884861544346689182863586129568651898106499124833124844972425104149986944687655964257601705639161069636982037670257787239380718259226251010648973322104084546500197031711557029898986861347427476544169426895768621294141829545885041493509893150496056420055937236877498938365358993684185778919502439240858116544206976424467284307896447901959493273511872451643591191731904831806843737226076763922941479184380224668616906887554971457490404822124159425325262733955567176907655155813587392729179581902864978064296162366171784088467846975474636931333048596900647484926080950753878700736655659263737899907990618795200480343766312799893573790300708747699246386768107640335899281306048994710256346302797018868611507208013879878135775150310451668066523149372245869900759942635890589297986035238580274148602082268909237990449131826586905629987449167963184545906165731481261089825150492911197797381598186286018706965227689337204650568104297507496444456118343866578748468456647851379942522396904021912390222236339690631494841433706539476165498338968382673913964294144169199507603884811842134684022650015717025378609311588146972029645421137220209752739071532621962380670439002311564034452153232898767522912026736707828346442779084152578262009258142081036556173546787211246467608424440369057122977025169259430832566239541786451493512564007484594412317264611681456221313581646197952164349708098924155503571561193438425323659134771809894579120232959985660408318891473990048870611806137087793900266954632801630860013245961091700690262151153970520763225592920691993967517500918983135600500504769492871250746651798328975769976365081035370041112053678776259031261983830750896584764165990815458256295053569379335578698982650842207457272337977211451907796104896778818739016913744964155280597165257056417916544274429534135201282118606045191844181588709774537120701929779027202288799803632445483826005331798628795112793052697745304680440742599444394758382833863909844794932105476815648855816525294366711819842053931525395467620155670285218032365912253509111504401334133735420749767623569490211168835949753776535631757371709698511108176683200241056359899168266485330879750152456614458226159579303767693160705088520684057510294720880719027758591010444716879258343234403790707104337507364753653524493751966856353443921566302287175282197593189649765733209003711726503272300360859329440471224817229392173575363118328956817090707121163183370564953267745459836591102751968741327177310304238518720540912400414150117933097519045342085134339354667621638953314954049700685060790698165428214950099995544490906509054370914998765257453878059150156526904849005348502376156447307237213219748602487108600139646895472391617313479692012977663568202771277339729146845314022130878811151785574830846865126446632172268398691708556747312783774692068608133449403214902824959731238067228272519083229130683576008474350536249569954034977027124978117548951207773517923140541374353169279770494224118153792003605479941004873140988279738676019253471176458685847597101843472962099860395934990078330799081997684527702358407222947196235558759415526876488508642237712536181870668985114417213337664932596968370834140950409034410780693165645876461313530253843330162808929786612155207101627295378222132250342975179195027658265727664737438678057651341607057960485096017802375254315604657577586600457976252241668296303842261438883223246812854083384119528740634058718096682913127034880859498857791712472204527915577707861726275614859080321623219114549369815108750261436046649909584355082997019266780920349479404818583114345410032485765757659355472949003653941017624759133035571067555424652326503995618345139197587798270550739949911253023268859086322563241245330242430010253451865941863140974037342465389493132518495082432634119643138599474956496357754122035989756714596802250416775401720243484746181048265538816011186620241682837177994080393698302183429475393331414124612791828037794213156630914491598165448530484886121536168041662255894127506293427091244676321709709407715982374153073468270565349968669694613775824252423888370775972570456690516282399800300122191088883615378783460198979118049840628573588563006873817867280780084916818211490359316346341089800516725219491347394308420796134750740720339439413033332675067690276323633829413805210699541202137035079519473876992677056319769039557546850649484561673990871744782909494444906583644593180709663705237195001213207634660868128900441959360764132696922823846332178388448014774297761052402305069583160781426308773177359361408093237451563361519478366288590253119048880620196298710758498540002818584784930173388415572764651601592505990460406238109081841004692548233834545634620012753889813584040842123505534884575258226622562761348436026819872640304787100440987874717556622417165230395051272785878805947590055165908649069824711546168816136813314379427095188983912253285987708854247250201611048721222672951276831646593502517846563699054116053961970367749474060201040133086008309798899790785702689450956599699115824690339016052027855777024203746387484172959879792630218226466420470549267651050846777647076001758639802072450433928537626645708252240114200026532345256568048394354535889084406682770754067662743386524573807369652859028561209025160575482490968213081760546279783945326537341005149167575816623305110119369346377152812608997684334971221949297406945137986752808188830789032749643703218926716870235254142029350453687709050968374727047279794467478820211844137861233056763177584610519522050981957310076649214943791838664970475008068096930607952179039944340462175285163876448140241069884836713068789859762394142913052333809813903270715505457521100132354076360155931691089323493532813377132475051841172968960018554065439714170690073264781742105080731279768429328645389087716021209711441120103912721844638896360642372120905024950034622615555813174533773233173683935471225279409063076665491159523027532290522579463177993863432871316427797634188153843695821389903166582905238489165583721462801208937006731096526557181065748628128806193673119304667583909361834557711185326281652656809132805125126059693181222599746275395731293668129503344567344649995463253874955746154164831846390324506719271984795999240466565893145495036880664766227062375240974084831175296994056588535961715062718947458558113198419872637683393191745618744279419304470625769218536168231413428109428123388114603231389502860219373040585244376696162511687864864612449340010963467511500526518718626132941957655156116796061225748512382019084835256605751704274201797881545388532285323046591875368581029272465301663100550988732149593012415447325526433883675731650207513865817519081763984400622077030855421849791516916899763637783425888237913140097883352400038671566351134683612320092804980921598416832532413675761450103233031170205790227341712996109200553391462596226808563715504942913778946368702572546849868176037408240785526910179564188976154434400170030507166062484687739309306897981889849015701269252552891389053855947347116977341596241023305760787590273776318764080752101497121318790096195042703425986233701633084804247326249511832689243703236818607679641211530364091802544886522460342556222553829215997044128131267163709185636742772995506853480041457960307817621800135551090919955032867647953001574049482110287726200952260033098835938547650784958253849403797031455549524828407613849894595629374437419562770706439424500226193495822712203024082315781436378345975949469703319576884739589460483166235582264177211829132290777565609651349553164670409332298235808443491869998483772271914564800191696862742998417482649721876494945368728128615200365061399734975594227073123036934747130598884852466500596709618795165810865768052788221309503075348301443507077290617737413424209090530980914191742163299787994132047099405367235643574946144285483034875274332185059031180461780018318381515810769916010237182690558421910164303254670764521329697498027114860475535957823702499193306004535917447537802057122304079661811006648041583815575988665308346702029410939340393028447344357119655347230464915005507111790262792327430822234566005137050673007081024237050931797246314423108750499382848810578319708652489835268667185618161058654838237370495313477112278336373322621462151218953731768813654521091467358619235702218830959107323452981940544175932189123394848314336427159783618130609862336220281914742319634950420276388547695095480807688052580604285865411200200710798957457838441121045288402959468321304275453028505953384136145715052264640890605338160072760924704011187256092317252092964124058891119329031699613416199579923253750916099534625139466123878508539385606033406361254270116733243923428723129653326559849755532793063037612111520860501629731734320309633673366135471008882326885366083629803912823341195578853153062817441503341922026452342963189571838631508311162359922757546484198854135064778603630362938867060492969819294537709561556892400985668040287246774939915858064472044800065710668282030351937619857257604630386636067978243842212393590664549077702348594252959295468631287009925265511139469658518073065486274748398566827456681040755744199324582239455888271175957209839862216466097361364294409277244893595734619991291925976101755939240636985111144810990652022526305160678634940576337191450760373524702259435797248337459228965097023732359546211134785765537931058570662367922886548311184406023040954000870273077096075019368619289569952307715421622414010668901236544009203879637166049006427278628356046023763168014639066649255268177284464016177504413266768768050281362570354235100470301302786394251569469814435849588058608850036206458612808317216379322976948000598828010830635435807090079593340382699249458587964601131741099466615335527526479252024413881588661949113086050797401802045808192935682977597297440637815194108858089505037265186444613594526625745739667557239604260921749211490583653473705541729944508424979165251775077484081643994433581266356426476539755123970315469665976100041922007980435040641358965891400163379515067019277394726130555506351118758787872095779849986169604979304827093326008350942746017107255471402884911984681095152939060800699816685726525227716537237445239089028556577643765265284065166533095756719976902269730941876186672492586579179861357612987159073813878907331211687468566552275696286068023973086244723028711896462457093109203401536682704006194869014036003143129020537267231620399072273154873051825285756639830677366795242669708857230011388341765717587267898589997471140788304387714593377896661682080701934913060363968673903433112878710013839879214606744024657255102199642120292696868480147716430142327460354690225128975137148908891670073425384673278477748666356646598895441129378928069086779417565312929180969443934854632607538479803212856319893200228924166922507809559162114493179953189161404708246402840875042262294795405172741117077859252968616731186078916689147387453184181921334950941770051798270922599463324020093588924420597462610856413793390629602802210832738729070649045289601104161214856710762377933648226362418664493856483495969387735549477332246440274461335919227533946135726502350556235475171122303261837578627783318725644803861790522037809271395219949641823498020520324228085440343270794428077669217859914959583811748242956794152617509275760706956643885533998453929034094931339979412375916612105068980818126979959995227237701969737295369210807442732687900360235084449594457769573984853031110727311075667286810039743207027035390485934836534221100997022005582309241334099648622893556093067008263660861779932392367487535851209598172175224814991226996567880315230948275716176083989868660953492422292696810761727358067973837038123835104553616142006751151582174874498287052509654866402472649321711310628842636507918687375526349200836098136725613476801808912076033393418464852622425650465590334692926665437158424148777183163710159649351620122878402588371590688772301234799022575554146354026511560147881848625665764815098314172762321784025209018268044517115765567953700626801613513421817753146392891973294081817276480492103616456302217590065275942470754167485790970613651022994655824421956779970638173693531258261449370303233268296081002938276937892950320923179553934202171144862848072396890709517981278614581246587027200445286769552056871528265721053628306828326899258423948582974354819656829565458000357154358592213871873510075546655366023048711725192083533636173223200864584655579705846638308786023451296890325580010407111884431684629983913758777035036808994881604086960219605595113349255709329590551641750210903499282779496776988360383012384998222129923300623062542658852186211759990000670098919594208714152055644588675000063513599935655698302034516708497022705267488935120683618370694883372086713481062589876895392160139623969047612546989008737256216244609689000200280240928476364530169170972870485593891254312006983630388898342330401611060418525528882093944086596657650127260803170760860593120582838787351831060832749548013127502046092559055752664610778753774469598224265132366200792523194376493438227209270247842643104557725725159033218004781669719228281338338295287686033589504944695432325004954516254260663323026332387617108495450392858107735922408037808083994881900315715915596115127913479249193394730280232921438025589453191706573898970624469544400586332746666210991252580027070883751272870013731394766187579094122836947550846016687950553976973724837874132936524092039615524847601422713252810588403977714669755639137357789687098484350911879638919731727138459032472608614462789722463887305482538265455513657713881376715111312387510741898248588272214455555422926462003964011862627390113980521966283382459921268994558965336641736503471651401636463441320510421362775559674102306594451960404071328289745676677331861127827880447073501590789918041284606286507292462473741504750523103531676371985112409782481767852981601555685573148389450807972147391380494730131170280509315300043173445098139587415920173331217167276175640309878434476870826170019883807562660635287014431558932604759875440546919606808656224474940679972312673708303572845354611186094210703471720022732716054304972110474308724144881837027268402360951030178560502716199074544533035037365026324315777979338515716930030336226115219547611144680577109220410009574371951631667953144068003164454431081849221185567085881136034657193430459471567513607328283453397491226554859838670120192965081249178950879552514791905829155874959458269143752552961016521454120472814202971680582937694583309306917328073437929401115730562921507256289679819620272763780793220360710200885097988541917280003678660048667474394933188186035334459899778429716455351491644111967959852839321906453541998158375083479943857196301222380053539057026667456662607294113596912114953337149012668915139830315067255437584395985638053422056670787300075747191527636005622675055476096733953950983093606292084508997633887603353004819266123301337114875080576232417657470163843564257959775871680459211752546282592088845908636564650984622420011683007394996186965306289384220484902805917178230725486159363828753780723680694477721715997284436201360257228817174642864951670187872503307183940114812095198852265621412534001496483133765655554654013696222139981305469581702447379333786969859375299189103690091469796718471647318264174083761723090596654115245318176534294506940580074948019218400806326280244668847048921915802465970284001182042621182123673541252459898290258860355114366840749407497150891416956400630594854324795370457249457730022567417269790018882449999734298959363570044942900064228833276152123623123982553576117059641186053175174913243859821961852944984001327274379506764833211040270844160127981538095728019947140627439478943198115926678671461485282147961679045713961249824092077402133010736838323027716867882289588711500502227814042682170336657890455677780273556308916230506953653921109308655226045048557530933323096764399596777784629693370537135732778995994365826813492183351901770736560261441637844440611738186377082703873282348590781852497236627716654271883292654893876059514868429306913936299059859630791513174503748770522645409993816366634706264416488485717012144727946264303142658701626794681232333591901894946114540934516128025759188358574703122417534619135764084347452155425128740626238841882290469339388351172393935015568739478439029989137381530714442245187003868980111219577812212688122330000214837261922673564790401112737246861753158162161859733150025693129866484291588500273495397413086036492985297904687450367442289802982607683520370838896679075105461554684810663258719849268348513668985928752225906566614759221653212491319222273515242126277200055384054592027080758177348899275807930603946501003936610714949749859270800530223539505108725395456892230050822336039592146227133836172444902054818419104401523053064021157289184838601655559700931663918768811634124326980169702643493807727590327255810308885941814893346348080018872735836151318393121210705769553815541184943680417144298144423330094257983222833185775164759168570752225865749757870830098769210603687061600111275354692051330060346838831342409204558932548145023889272939490431804223145902421868291155415720250722766808040579989977831946805912363557109128931476487143232974282209791944703770634517757687357410989156333824036400211489853130076733769267970513676994162627404265714969461434079526402253839841391336302043834685826892406356102022240755046090190646883999390163057230085947917802873581191849529939841339860804955306842517412134659993129531244074622630995896332415166617537106219567533800288044782187919341914561505103580315064423661263851616434362231961552978930954907411599308201226585972539239928818794358674526272821338768469093087497568380434609990660049699444303293270843845661197349784419323244462917358495579503246763009500111053231206188771865312683742506373995993382374589527697109574140514279254524463792665479287612041230892851993431305461694818671384184463177033249479720481367210759048740156762081263331245667849879814340090174151778546921552959182335294438419146704917132875173635743701579108030267210559550643130059330470465901345400772318588808858641649439184230451581790433952253461939701398733080202972244627715271514971761202027175118501243416727818775125915339321266884918515906094943631035072381195159285224363028303263875330216881539863402873308434432839934344481072008874999564641096048180144154370825888598304142876684441207437549032257536032835246681180731964230784896879857584345257935887835583555242148371023678649295547148405945319592245367926323830134297432597512378019624780193669426523737749114047951540361900536502391343924737296342536286499058358171221419096830253908669676964829001826074915732795283596711204866085013709508641452790234268698508090990625825803677882163327973391082694059836870068001471317878199627727402026228440458081184237366517296202668786257023235033293489209112851568322534704563949098798206129755596826088021405807737552277260520026032304283247682262127678386419700656184819341783261487564589853846038261575555109330597305729188435069582227471297319063867932141654920526757704295603833400201991747275635833714492788026500601150547188385359672492105291560769357688139035865239008787345992906941526232649582311770043303808180838271132325734305269327788629762123437720542429823271777605028832473268240968601895792425964465272792684463748817574887027001115431710872740095267521428274575516103255529922703130226662746424587137760386096090301466778879675913536532368840584002914605618745513908894778496131402183442272732475269911229327086446351724709355252924404950136407210447531279230834273509710574956883655264869083792900102030421151223289423306646586399090151387826425585039213266453294782398613010550907481834887571710655628530130665012671535050620576887812553743603107764328371885381440726583913970967821693938997720908981033705069656849248712900064143053761429023694816341010899690992307010660798959102612002343972026218991569916077128070395863025507800241217157261776290246932874577667370967339643509551810692507997470635807463292223847161309181471127105273746376378138077462194081049269496086384218708700725587360448774221031242528331642622227055993207807021334978778644563154517934367126804694204890383587028154059219796925288297002686631827024822382763415467308947184985830829445879280487170433715728004641244299726881593547263769506895294886790643106713003390042156163831397523698797316290633022384477822979002305510555899822745646781862710815431045490807300363519850560979318386248391684725300627980120560853503428621266149454097211871669769147764322713969429293429117780724138689473184823836519148942354539576586093488531494843844821610609426469416726780732660326492687787974776472670117137229312528506356768624724838456536703290671752622915439113065391595831506505964596339535247804469312672537063737816458786004052787333792869210197542876311950184028559072998449905742878473845255408994508982592379307566205330018811099449382979175148138176997204756123042026724273942941480807189324619972702079865057319388740070584988622455156640005359440015411642549036376226098168924710017531217431653716718273375517463101164119574475132714570902812641160204398162216470883332942467340434047044200613364323599364818154913494207561844332422743224664283034546705421867352739660553829871405396642309843825461947361242962066189080483077666671058527553325671236857554959113711847381961468797287639554090154472275921427300842921500819218387417730594195187165436793674954179913499239208877238729281369078478846457046106579689834770942021345046162739711202305152680579262042794900155244354315774511640307955684587899728182818264059187932945918772627548379891421181273619143365681293355537374504880995142983365046673764179628322128978357075568132939663082326422505240508301211330709928566750829236781305793860800176391157871942375149515148059626907301906391060521267658906322277034236471860254192616761114272942872568895210641160063290095126206596035945949591010214802207173382786056428415437848548835571157839324935631627663658879213819048779817172452102667731449989612662339011119211651009221128869219589874556230176915563788942379808449922346164469968930111014715624190672925479928909734698255070095418384876151508886359927271041335383917430532245707542197935932532843594241875516512175662410632750575741519273265556766946112504982169427076560717670307036905078229826530619164440301975332617125921812493875337608206038167527215417866869684240231530787331027456644253635627614424693497778555770194691464228346899747981279136194146565913460718116739594767102740078995393375038794766569442397086199261066798818113805830935374714468962707729365019652497839339859685076134288583309748918968070817357425658613479251339320203029842550687439715965743262622133779025352464576760382884917441255232896198708104757566909893926462368772234182772095843446129311008066768107954090356670978394930042895926451875297289636717566217180243599853945161364254881264110936121781495546495362184100825463466441017886443769448116293240023069241270088439959956339564183098987331041122801225176396109231962260035965010040607249922259375760793089673977031888909206477924470726109708053046921686817319028054485621536540604388945329507904221205083522239885887161172338158177792697690024738283009744544929479822545654766101370196284424389188573349572472432727517065069710719073359027117144784445320551729799040834462591050747273208635348015831555612067825710541338955164316867170141272065905855946602638389536212565236531354475624125039972409418819103552753702158779357741360357746205238032316836031209680584568180498933956039266898374287579947659421556660184753605627520236155818175764238885748795948095739636902567162592007735693210503781821011846449257819133518522772664519023464334915698388781269072232774569215262009141776247754905216160246348495263271418149434116818619420556415001631218166379037130178446119572591704742084935118873553573649619223558460720221436555062219066804862966014359356754010259876517956278504361313250592559378403770500998306928705154363909849792381957105345245422947153260969570901964713465086612154077549041182654603004454808962367515206566241329500331501629983778745417153127137656587661244627784405552258068777200842371502385559608793701795886537277588490212392194200444686015040226339736964859852177141848027361326025420487039235840096494411392177161230643773557458916003280201161459795838716731553924979110605945250658719976626397973032035991471363631038190029315922404174363300838692123518399078472192957187363924016439776240434100033861497313269720790686069248589740557275657481455054164255464978160364426183778138535407963778834098382547375511959031549305873552214577766674243060303685497207557016291185674148042490655877853166031139832550128935997438269625377599322232842289643636297968830668177356132710134545105243531097331579526959196130818310924912985201125444177242476252717154422581800042896339045475716451501135422814687080743631044859471697341618702920945544836203040885221729660996273646298571776300262891291534860540393487463143899025235572150019229100732943288939216887212859010988564901180711622475529972569854381481574251418711371661253537116534635483539318482315804402321723518971770633033633296500108072858302614776348873374126147483158890988716667413440108216543485039029375713725129014261136935159738907130160696860882955853306475832025760696009006042980043661818520841106344930691185592851680540207809974920610870745070532909541616953298344487295207175326283415098055328393217802994594843919951011797708765002324813898395944043655896700026032133935176269908404080943024238949440906356295661149543499088434209193460283551629968044132538715464612680333326516976496963625437365513319231787797147651792096178483900330242248040599307640126172151889913025449153768523790965585885557302580043829538430845337506733894870947831979052279575261346711078350888706271485717376309470406746467543869844794651017513206634768098712687145576667911118625345622640893910197788179651993964021598717031752381379203602443507675753729726301275858535885250811232572633312566840249815634485264911719732816488868737010037228480151299357757847174103024495335984929320226970292063857744352447865302027197181382534585105985636600489862656078685445867655923522907442310470387511142005244506095712969626132055880858118227601896862252037858199193723566838229581060651686251303807138240360710636170997492439276978173975465258555865236164445640132195856782079822592530529361655140817384181348843454769851512006739960617109966273593812336226338306352542136103758005700127544628226302280471092030761580198481267193398825441513127184683425554428349438378930457576402992475937213159715566641952457556905205571485599515393903862300648540641918548387452533713896462479413729455468139234230538491409446857075220473062399070638522966631927921712700567009142428036355394942237409389120973255539049943424461753413138121876825499275851933715985177956252411994361654480618020998415530749411909314960380194165868073007509933047488198587997197823243436431799145174884018144059270089381744853591748544658948763446990083545124705262128911250168519878327346364538846457122010840322231906895515314932404753938591799792718342255180045097386577722467778984588813682927300013834041466371922977736923203669823698745265727752301036917812353427909181539886001457955472405334969953580553410945421883505780196140188455534214976831360645262216937626321972349262414190350443635329406696592667637657180248452287531434481430391934901083127972276203042331545718615341448713692146573362175335871703381093956216234367857699890856310192364012869554801598964621812957510472678974379687213645933451661410442144008749050004786225085907656209874605503767178658601127479099119052593466327295663671009287541506204291914741303883501305671913659569756066162299673219686727634476654141799405633734903113233985887000310235811081106336308650021762556540334054779435531016916955031791988189151746278814366702431590580084403230245291401451884089955378418842434193764677638053490392904247177086679045456090617498272975676312998674893790955690937307581492189269448073670150974538829203456273351062666168395620402839065302929534351820247523599748585663257116781567971933127958023100801955341065009962738504218130074619415526357575987615894547005642877198822797352656391736886039422643899751288675353486749679211435220903390635794461192875787776920418346636404231762378662501509021389240455602121557680829824366044918899134244626068382809517114993374170687192089245484065948271375559466046854632450277738671699518556772199382415968505400267952215036857545273462106019747462585203764763828976364515175710377089715648465940343152224156420739988111155498155265265916838904303535139807448819295338694744711224672845064509388747760292428364778035139716642658938485333192792077383941345772696137309907250900696858800469687095315715396912393980299881547578303909055028972155437214736197119221985543477609352035575437253062939626644043841460699122096657043138803603251406033872924411946001598478968472837195282727535740801929372170216352099319322674546504987507572259106376185393472245166142169222829304549015712767109955645994176455616582338949412673920874901393551971867199173785134067057592532785039657110820958792566058481904812385255058214461225299676806469477290078314320766042041522961468994431549076448191099626170947570630244248854121677908160392726683566765310934955063136588710034221853261677841027786519027853426153624570407729526593915996358535311162683604272325732128823287402969739010865201862878001363414726318809495147689814080015061109099862441778127506976391092281297233644253365821234179328933270085234010910178947476458198733469701641124970943960911972926261670342632410654651953840399584887501450446124606631533711525609428467325698063012513273947004399728008389447278116677494394332479366459967934254105873766064752707483197076778832165975223964682431069388242534029767003687646067466157055444518764896632281730798343450796584624849194188037265021644954936161238553066035646026354519235912096141312987693073064417981193950387590752466304406821623352283486367182767764873406034033660111824704433934937364376812900956170249993960576466707395083087338513497938486692855188191388490123697718589884096789035883815316725922532173726875745039723986696799154535029901577228181849240155791039176047133149338520101479171062538263098312162258914391683824779205257770934041339194915182107550953454401034386286046608007993347823883324869740727133045778055585358944857070979441173092192829664509751424536644307694896400162462274568768542031870370930971479522772366681676634716241933125690664940430695462570687772949605965063273261831168358971800952600028961031916147758435910874901310869266461839170574118461413488589086733312425113699986862481726503987945726911372542995059422876527335591766043182090756202172492898387640490702146406808453137066441132866520683839216338014428968457061509845421068366471574313788500762773267347804068178100160855598984617557762896368201672273833983092579232253304739076727328733282326885731167982542667071157137766020842692478905808181497158667797471666898531347962400723385061508828065303507952865612143547217061689769666474940984469815663512664989314806639783873941176446073518097958940240920725699951493787465532660300600541226612023040345599410892998536747193257012188192708872979574935026356945320114890588580609335545374204855977844386829549105945860420183476372513896764909185881324327218159306557942103015460237305727861203419512781727528051649548162755930243334648083389443196893754599459018805057664006507149133307310101487519813490912668967684343538532036486213890032888334784290716124896596722151171594076644228666994273097262004920428450549712773929933210696453346951045691530267624833066776324662267049958493673710451666788403023147802576898199373550199846647104525770397677650384521135953591973463641400946360123557127799179514017364330514945536856712983519959082512026322413946830650656352604995667026835379599295710767825444900393348878425787947976663592155393016194332711598438205904052300550445826799902187200970353959338406750947051513581878693776178706469237722134958690295204279241254133520261911385972537267877328504532585762571069857844130469452736783283310467342421171653393673556169418934062005779760212380259235534688334689357409305426093589751904333121401492302158553069398180792744467333365847883410827996487994575713747151684514298396979665021224504223667486349290937162010380179652399400154473613290603945994800065454844649257622856974156075393239400442431216097519408477376923321236427876501594853389669741672736163634696162613478618940775788250040175261832474044429258705689103368453586607704349524703852520270136957415143032479743595018278724520841684112832916665215951173466255355709409493470554177089189799203817955710956631207026248225314486645400651095487964316942315490807706882104026610668621647835220985350380461020155768397844981036320998339144434741879114119915944918930992782007359559737727747930864539080962556601334734360710808595124188073021383743034340596933952524063202896762035363505264638523603682300249990376893572276817665029626843716600981579649186135043652927576317452580685847581144389061609716529048972032317831373114052600728532696434022127491837310857052189476650599526292766745516365496109456183656215570390344449410507494606556999492918439297294263839998876891290237099460597530810582867068885383845161306933041122450483613062621451458531405756405868941908629029180740931813435085968786048898228986615273381893067490480744447664258380746168858428217870744143683094894470790214035887169199571849270378280928207096258470334885600289695993683534609548658596447869545027337745619618260574442490467323224112432074989487233340383180635029840537396590754567762413107168804930216931540095769381579017495105241328719974083411245772890710966563298233705893162968686648734517464974273543078741806055334233808224904701979758602548197605787502775986109387333662346354300775091033924973637572184006930959156600365459757461714691487551408123678245831380646769746796031314660711706584801223382398792128362603403875047995759805034691337040350607298555749077830000931268385455744757706676102492675286942259381716724054330238620313260901234496488262123203391571402492397745630844083044309124508560109757545609535293749229037126910566270883651346437172157392589261491766732201289774919754866975373248756844715129841416465060840863163714621445240353513977209597931970686834880566310919585875606333660481366327352901994527558452271824246212031973574290767321673461477589964725683291686567946724395652891174125108630137834352970539506095917493885971315032437705064680263365784782784177431676734887784511169568222985452676231264369556364755516501188661016977065353323919722642961621247906734359932163780083299913987268709148239928197212735481204621987863129019444241582004437515602282151305858721814967123116348490751063143096226276125730422350501843993078203091607347634928040191707550116876670232961714802069758598829219788054551336632716303139973799530959969986309707770841016885329686230851030411909448227078084949181252190416061420832673313026089312544898235038690401417353338704653206226621625907519877366376790153585257617058536299817625405230149560020658231926998455137657257617435028129107324911366140808074383350432625374195641433946546095321448661802235356006027593662920530428664328444272451290804579092316294199632774370966169187540502598137475050559630485340454236780681228392241995406190549917076278434619356234204551419240849003895158404920740708644837069917120414939772841014460827239399590992536431330941043723873459047847285378139716262098447426949224480320574732304602334640348304508279499760686627592643791180637628324180420374178053539706837012158472318401737837458514677934281433099698687172377285197441627073831262208447539046760553311192756546175690702429254897348911506454923008370377506000705253614085620979799005640319230241794017196234927087511800565392537203418488622862941959131715704740945589840425365481668800630552515318882402157131387257124711840786107418923003892993177660999926904785760843087641299054801244529853477731967260813850711060634697369715809697235602479697045928278752421858863491425469311200786715026969540693014855557346671925256062667956834992429272867304492105406115757744717734406731559725949683008670065133415457094551146453920274934339337301563914545565578935411457825286432028094038656265450808697023727402493264924777201782480123172293933581138643101915905392928629467465192509201150411869588410314694775300131476650820364316967759991297496511645588823858371268781740267943580365279452952950575901625489867767742749764914857701810125037686685033620171121767929224844123118712720911705499863587750972500712352285638607080856271832924943339240254977861603814949478592218253848597714884325371847381754019734252203352449814342369013220380683390346502349831691837886554000755052681546830661994492663035218680075588010947048303540789156527276979149976920740989203153505323612921376123615089152681417271717968111095566373487668101484982735682362366621400856818337840646021432810370765697990424728663328221093037008299820947259147348776791336569366145425372925785911813140094114567872352018728105572609720735128918951554084382722923355866839531244275114460663481151969909062835379857342047781269363454429480794908201111962806248770571367903828931408763320059089972251637572886313292676559024475627797688074687563733253594689156978249028122181775064314073933509643374388452543234998079058740165752983829882624207146124576624111197559499344510273423895671093599166584393565838405705853791367943119653754462547263605696541459942145725039670135276510703385240548355470048742864544200619378264862187790431349249117795815828437072847032758411594844262552772778660254399841104345785943912830082561921897769798076695959983453344722628714628760928279326804535713754707689509655581815482108145753877757987151149483095041258687930413814270234514109297281581665130663494519345766511667701194500916514793418308242830994039775754039937440293592643193209813684497451806601406406458665299237765673992404787613578874823140115077935836461157275694881747630623014684239041401864576854190819237253871978174243631359387371463540625524109948716353923875057184213119203113066794763846176384525811543572226432842281428384479199068284149365262624926032639945214123316603224459876533165901437330676826324224441342063767716792999876854493385755371026347403131847336560528365623657301340806204773704673156005064617990089766616446375782129790444839846890817520799124505902962555791987587932482198792465825726434026351495030832128671789996024787121643534431355909654435930183891372273439728887725439224894436311439445652979617978971990929025275980752904790644408707147140018532787809315202621254545803565235213831930931362173943312336615514495995603498083129216623214845046369451044062071655263300000256069884758917653047246114218629678382101326912869761928141280574641877830584056962842373843617447586043561940998252213408403869008560997797548441052420694232150023625108257023180254250922743923362776899604528179599850566759956761709348871792947719453855633750573874640595240147789592421347762785372511488540347459978061439256579148263747137898383196070490098471574499871179464147639559639796594276284647725227753102673052617337894797867998452687157324390869773822400794321559055371038732796395172672479327829951944155830988369205083218183228384791053105322948937094685208457705118262353177775088742262849586167770175313547096281279885445396161356339339320485723139984825370638717061953281360061549458864903563012312338146674374653899706202720517140442678668651224463707014331255098668905412701908642812477568739572469510367299051932356329037919287252108764999425639585862035324114667101264044502713517033267439364268955166964107555843441647142325873676581689928826766796126382056333562145288181923700421736104914022400464553939665493428965936910329189835294519790674326742048532961431794293854753564781998396039382832003299853553204846981444756143386904517115906463944196404311797457276199644502045405431818973279804361661528042666373000502081466821251746490537790695280820655659645006729198507682487296426779773623327869745979068336762892705776634546339642139870743695756710927373297201620153717022871437221065557441794676537461661033042246276323981508729192380620536496161261380819459212147384907301940932309865752614573724465405890237537131652251151250809717346005440272769576255192285592626664251261754050914802272743679521232970940385432910522430008369037250173445150964893200603687008724018216511385472472898138467869380783055885985472528953136378863493833066333745601209701756351903553007541230921283594954290972102626978058124210335102435321487562780954831956923276067953384580322054974872194771926214474592582812654624130779440322453186996043102330180817837310382088144685946531676537692437884655264883286326401291582544829789493687693817212747229003618352508124796746817048619650176510418016830453007881392316146851807147679511226366621520177199980275416569035014705335816254685023560363656955926516136950134316105724906519596616751025753556181943380711519473725977035010916694944867579992782727626800630573699639337913102526999735282757534748949280636239644101620230884088403004016843450813140413949657022238248257073927561498004676743415244114407373715862298555137465463966115681221121520948236220432662111563609778594972461424180996259358899000753784587529745427561130496021211042029919487933532888593259874346745809375340816955432788099299457322313326694488451469763163120283763749132109681579932181481373495250556237765375975459127197500757411601065934336632353782656007000752739954993790022912362378618946987639118710556151186977457401601021715786094010898534109482109058872843897109847278031383982361956024658904887438254867772729730588027723092403237985171163821993242515815785523467818819331459430570209511538450871853419340619229918089728925809384180315769383473909002574699500867555970615515975529040644450438151493141816349029862263787654830241266430734758147167702071974016153968828217785482004106969606510350743311845259042287022621806907541638330766768033761444686294970992338653934419357561257411187871753855039017621717378822853395257443698158181353358840011457260579975800837877194818957760949272171792495555003811887358936766647335681033021705122311764540970554834864685272069078657107247419506932559857630967732295217572214859392183355414950004003128610002321932284942618609201078628490170475283353189542792206006413003184811120475272898839604435388755434336146594356348033492348061257675235410121477208623106426847652745297769078233433549765462801895376704102052583428572315373320629676396474114557904263032494505609408775669892612480601358407956894511860291373540507731646235223342874306689301228954506446547757963448652695225379181994633215341186161392367267630209062095008599048295170103358409379564810556501940412462301639151727757282095285412290336363283956703272433353993158054127258597297300175691284593142188654190715190575283873555170581189012427287226542964832606821092421815343872835512412152567006313242551274559126148524143076814489546185484870778592415613492190115949724863275246631126531881599994181828569731421130682279284872050410336940389691624420227534412111404758864961481690989020615467636200399641334207510856729005815301966472209457660577501103049561947479177992809908397139311776039493068453278225600363778168533224702634203340585288950748838839667211986805591074714209389799715416101267605632626410542243245589674364122764602086878696973776411777510358267215495951837261728130129069201995017498821867627333926023950364091534415457557359995215730085728422882996440357309305791778149748084567617851281250967668091175483042230741553839796039168307473137523166824812349823887719558133307958617741284997242660973969502578848484629863605497747069195562396224390216977302086680327095517599249968048734724039772324366617954782522797690421224539351683893203875397309229942785988165517008194184810590907709220990080817015684570136641091469986043333612087064179974592085104561843746834729909389370844656639920165311234583749049268325682686797941514011218558146158210136778054968981776242685206090444659055089152317374694107786541568168857635046681592904851993469685243344145802715386499010190170405321927063169730151178303298209060487534873814898639527834202175661774700539653783562523649777837603401363932969603240547367991698525947512657819491411132719689178958722898456433346933071346505375654842921512408765022381374660712849072955539098963073196969783405295575184379206570057586779353699760152461035286580643109566922992069502540321854905525580807218849887894401653460153326921407619487103779288502079653128486816496380322447223207460167108996676285436456925377998989518686506094524388226673883007437583268068593234808582483599829885077705273672793347621428825905418758028255584924765107993377707403768742538625884489411881064096725444060029272446232610059187596312054138554690633381676462988523008104648863256777405294956483733357637728860137030648634696393637584782058953130111963228323527203433523791503796057757188589265811632360971420868896403530279826582186434618369623968005425683685009674033163876930229280306030281790117248703536542201213739349789960519858428126807810014778023441450025430490955393059875039583930459653375840996146873163107674292982600416141334389495384444402671428787497551217026153682800620466412731977411194811434156240618690743540786419968021286171117293402445803996244488554570300412860080333448489849585754846332698173625879859614353186900406956312804575802309110235993997266070891405901715726241140470683695571859136225433723741745968469699312746235126418437055107408295125851806055946886152032775848047351934998022786936705948787430301119231812123818200244251100465785283202288448837286182399381860022251482594483855447522142837621005665028961315340205649288484785936579797560826432902772516867905758788547059020419105752770256411236474201645845876074880311130606936065722877004548697198039655480187205556154919492108181788220972265627343646105847965584052786411899346064965553435786267486763212864947179343023082613191554304340645324007539429555539397684427316314295828682714639130991766434062551685686477662392164840931032396295516919819342212060359797878342168663425738738878662148579967202818079947467969589782801504813732670700575717558997982257440336639570209664424362339215050949900892418753434737278659133620080268162578668717716020006375552115044419678870508706269654607561361381741904822357013105111789947229470555556499957246745298154276530614802263884062618713978367762655783836733752193982968282430457115724138210944684628580918535664263835198661232274283466070672251052208460219391215985899898084633585142658668512290093447386887488695365888009064013190404970455987669860467402851725292539719249306368428806231985160633695735843607120345077868401761168390027453645466691542595645946110508037145585153660536121023081401098113821748575784250618833092441423547408933358169774722848229855926095874361735919113855689375960546133919767041153839642217379420875598030223417636316240944358785871197561575656500451886027945432841949349992246699009575212420044975738355526181217682231318789174241002283859685919213839873343885526992152458572453402076564624682802760518165905115128961054434377265197400539194333763369051334675997315249350886222297899834079995424096361294248499917260539539900692488053008715497022961160426903307220826494675243187873417754980762058902414450658550158925372361187782334518215287958860407734705353587749958524915158986959179032529670858494022608357457105887657417288519861025679840257546260947971336572720352796784816661395625007118689473106351723526782677267440512915520070409181742128156934953022299777700081546516073582781178031543923042799882619444105966488570940003652151510885719609852822540720773033239407471712804765428704282949823238550051482322018774876221810426855864864863529290476077133457726732938245038037045752622530733267625032148219078218823690538655255299991195790426082418104089305384037586125799605811242559098150300215004879591855179616322663822607900680106729440878184256900816241681695334985511792921195607906015082318118093550572885828257607844871000311465691570951459737411596290150875870526431808796253965471361908622496548350340673413245817874554079711674523320318081755234937323810480460716026009823052887748170667371421494864264573550700302884211959719211735389135320329047345155294086017771280198322541491078103327411028846995084227762167431905606629288875501822555577662864429637248102082747546718696777869985776430199982868847591319639363006467356271301658657089120255715053409774024360736407854831054281430201481799188717665433408062260697027781942157400794089814118434644397827617416804977747713341721290598558981033336643818925279964368631937752026333454182413863232737826070110026892207848839007079591150975632241788622153872779633463855338409704179243242389129458664863442570974287176282222970077147890460126411443047173882137780161861801273675792720815552889256560885515143497808819042953763446368725982390441529060546061043703228293965110008356323025007109273313360963626689098672866607963335629171781654142364591336412086203595511048606623825707877597810706735878412155847730165761552282499319766501856893478601669938906757082490866975730587770504081293908332818503605849436372700995648454667186099150842986937783550273578647697916631867665456832320620328940079374892210763009725515716744338060641058551595336914109004916509874247631844830206904687149709700559014486431122316148799459253830937881871032130785911246979775923458983611019623423602442362293155518413962960927358340212766982672559749600925050964128155674901799299476251324923134202619140870288054200656133808896590918642560026112905736148509966042168902317203014507934004811827081733840705527997034319855555514019346425659164764161121226690020596444136910718287572519235837030634545777907788115425097850301353156093914133287542721517392393249998874368258126344657020907817208042707967488321886267773175718536639724231781956958872021480147913438218307635019470126956654379323120277018038251959272091315965797748674324313848152088569810661523730213576904491473592215435713750624853657801542716496483481232934936744060024979682248526402379021980176093043888184242780383779176731516503638618439088331659874160241363534808023646336354250286363596506627871258817901872319584029302591533152514388226539733848115646917711187569677026659882044303167853290906145446424718423139106886433258215677060181879364251553099628913884909953233718655628246316126016724816569242972146772624489499887272690197104121153972204467209599450084413650434298235724376564131924011105241624659029795750251550889977306563901386969163663494153970851019798758837307534118368140386334780849400852172570383207204759080358553561254921896958093751051029303396568895162327114452440600122189810899227900535763612789912339312175778910030729094193574696279582995235305671330564484265887761033529343389359969931238691141681423723434215567240491582789444720425030002777111356238404343237719645317362239215732734872205560679258234753069277153530857953788204320573951383146281207613865107814963890661477222377021833193900979120198532024597887916317279697288268681268344087676602548836898983568635276526129121351910385655455350899703520487908831344946629890494516913724654155500872156177928310841829957083516498366935329292659834657781600892163528360840953298143710831172341128578238150505576394511021238193591828406274342484003644319858173036640797570090149279786865924839590158511438704972037716739810239047792512452022087296957388218116974939329148136441256638561924935039487973909291028622908566701284230924546048358283885973571633801736476217093225583555343353283145020097353203522850266939787394878422192220364851368111191179412451205209483415703570475034557575467749134521797811063831453059258877552425839875312878097454118138506936323942982001156431221387034533441756042580018134043998382084534886094653192766090505183483024029416048801274060598274178411450803435665583009688861763340017002193283340133320257889486388077249054994976777357292604729157997820625819017924381881123005564280537912482943046477771248415974367316917268504567548474337527085640195054810582345882745952798444096136274937906612622412606318255608703134898316601315002930609673350779928654901125758539044653705176412993222125068812606734871795638858547911012423417565107272952147162050501629043308588014106175487607538651301631524062445105043716834931031185845104045411222614217027135883774615267211501921271089455510692885025801851802175362459538922344140947405138326668102899998597789783738556461978530163881903398869252264466608768159771690698881166144514345315969387178645743971868711015912085077264367372147588072366774128638096763209920645707343113079589249386777566426762474992503979048866173268572107838411188387963490239289548635486060327219110606721206913971549898343081345901078013677552891782200604104418651522977742858443107052148605084255870258973593958173220302553835654869500804780270487151848160970781221910608915945587398053057621701815900748994305141627940500335731524659082342674995172237254969907831084687700224601027606735017811162558553732423128034450154326686159080603729906384829289066833580655321436629377004658458353131518087948366455470075464600188018834203634750602891543479262772415596385649891772215003306554765216060268888573912120089500451400997461538605953642407160297252934224418213356302526061255048796574547981641611616672981410844953611899344198835309703404192111778538572982206045399917184832661191997678143742984551049810530602847907385815415296770291516907848247642462721808266052880193241229911119821995050462598966023398600618973753931340564919045431711131029727470538918149785100593175514733994124012672386137400573073172320120908395989121122014951130691550642985585938231626345481562162417185882549801112223344726875197852450459095318421054446912608436318627676168569472507793171393591489076987021795261419490094685671159313610061287844739899635827058502524771207403468069938853923702179486956393235020903301659603456589279506377008057717757269625735375238658452561651493205475374950554673947400557184799398103938393366294388439717302738956125011967774614322216640298901334335356166926278549906772096865419980334179845418290861776317425966031146799684315288434714146437390735293443541511985232672527484148340255060914094773949245535165215481440669234531485287541372510019548163548830199885489206338604976710536668010026558373124325338843762484688985711718682402325066609277633965746198540171688021070716967425506083521561936998068337036276543268966160830139715169756109710175670294098138648522713723487445606920888756807905862781031862723647084538999544810993437896359549952840073706596301658611885291971754971079674567533117805099196565766489115621352985409786224657910571357721453904246668719789876748903508189491782366750451388506785309518436771589475656699751218344361062468015678039236343840019133330993681705970847664650877909469612499399418775249300124685123182280931507658464383179370030930843233192300633217470708695819900447360744640845720151712038734349251036171268379915320608103168621114039776928303448400855595965280162959522384923550338646049556693869397807617458492220939605328279847275628279737733098712894478391980405271129672807435877320734853794799244226081391294379590887052566890398658589101092387774810638788116129974092478097710842510652416578714879773991928126519142450660683684338609237811962969423320636443039852684455246665863059214481835848877537218098893278591094876133647408818639476356797207915753502262862800976937926547774133430923300922637392657418064401949499185948845557004385804495471609809617315493942331230066446834856720166747567221699519092475061934692768683324184610820832062146851150435413762652655746274262359393707156491736839982943159133251734065817843803172537408017842847729569719768969485919451900354450026091033605041719136223819701330349426545554750862215973978718486745750603487052689484772318963378117704759360969705854142804272893247178720382045681815147030061994335167653891151651263821650828722618643855215610325852719180361496938729530006720812803236703180467611441596446439104006481634416483748225173896798830812326317526324036356686562437380597265328748816835029248630593322449288286836559375019613090853593209194391605465196164730100619043735420024305621158448939180132162589567966198315229955389142140181360224471643732462095764378470069108524241492537796651110678247813135369378935069524502327534492062736886447210322067361850168008942129321413657131066157193280420831725580917583025971853938913879383827163382820031926394296415337102874260537716606921681330956062509239943292675836357790471786264473469275878957079563444354180534978687744125253752328478886777535612229009572177636055534819821751882546855968198168899578261839281600812283477300243124403485682512800838398555722058383484983084195343749564525603428174443200375627797342071163848885926113672336977534764596765339060538889425369729752765447781273218332195615012894971701015701357827978518874379250823277526369355904104677110584093450929023697702293224367344584636393921333091155819685691746873449553295705031216618896926840905823842528093280338578265877707308599749437658342834113451605278533309327133860436171570983035562149069987356686914367480117516305163106042111110470427113131249067873189640185184316226349784198009393300953660695658769121755854265736586703942930475842892195473209591810896341317227761035929704374361004606691398238532665141296746646041658053607389745326438394425644841970010179501463851558021124215183520825950426038928264316699440093047372001589341324183226535585316708961475905575198839375193925143931833435839827267833489277161299110668905767541825813835565704784832632254319072377112492680221646820972040531367059078891402124031260247096152547844905446060217420893047461322286621513892593528235444427603192875094616497551475615143451996276335397156866339788233247781976918456320007423512285526175463813802424143312726524280817767455503024890776351375446939628664158829681078588394450604869767068006709290129688796499205174043193605359850448492584824994683696771676320080225808907486851081671651725359219137042725248331152899324614982636803826488564948253705110467639596115015580108820508191732477627672967912473298947667960102581560395958796908107312793900640382551980572611492342518442831856990947010511721602369869434855795580188675992436408722616137382278050814319857961814635649751122629400044390819169843834677063783298638549519916328203367062368251134801739390083730548212700055419191237968672661489366978551324086616065391336231507854254024510036815001785765615561850321972691877172810129791520287246747911966331854271189601890220683822198604610360898936981432796910334282000749234546784625035333502283460633377773511916897684928349701791671567493604764234906319223731849367270436475496158698951631816071212881213599237684707880207462861741107321903308280687386007286791915805366811281764456443955613355314015923667618031549750758128045892535947207412198487625484036310613095045140576875481848091059494600672262171568605072860107017358010483614706979037076841965413023619326144834855323668903465534759026035428606105947148838031626333156911485994803307278484671892906121052737825957704113225150223500356851404557604658276511293326347684208949548218935939552929292605067378989587953340346823907529195610560761441906621002355911704361637225136178766836215755196120296365120191316543301651767834011790242696046175913124975786773602011677472651110735051205663595108359269023068097694151465228960313656457481355475962684295062766260421333105026859465938643131073648623178200357814783225459459925526791154020386662010576104280611012276396599576573960431485226534427383308410627484438980201601710140478791346580327624139432451115808077881729099298734795883654490448119173997074331283991405031607408647275926672443342660371052152160000889902265263900392615813523455730006827351243468871266578733799269736485367064670093398363127658258855950519599811856675855427374359007851361153356082143993576963069370464946705689152326305850159385502959034001727194976468367196924584011239880130493998544332099005595296983077312150099743536973336408611811058645229341998696347129984678732493359587502232345307061064392623225748165987692978803678879677856878843098920003464118188905989078996591888937772626804517206733523736294561699727241992367161000150832109935065581139608963217682909852714251921671236768556824050067001350891063434469489300926703142923878070890464102123145638081608257732955976885563711007442629991681956015864665384721345392743426472198110092510464220110488204818636234426576225306253606842488887654356996445883318383521490005127977487453019527276189489924778440716745585236511584083746138775301834895171055691693375748563543710857713660349112281062719110119658917348682394961976338118723447844985080865072371907234697129625107998532853785420595175116689523781114974836469249085544224006546361787088066991112947004179031912056607033238527984838205849081047317953034140906644311725251291784106988688627032706492437890763683144765912297084883094149170244817870388379552680778054344854881703084382629036070253778381551976784736121695215756664943050119365900881052183346672174887286257150032017642094594521533407555225930729554927622785115824579040501074058118133162422719665141938233253276141960586519110057617012560231712049822959561058561609835554727001507652490887390747042354423872927764962005188998471935354351579702909614690405314776313298888071482502096832100233369509053062487575122646324781909284185455227952752261523204228211062596355578179192585226956300105657491701383346158291830615960550407613018034543686059856109942811658552863761150536279017609009237459616811369314247979953465367097683057019129445098335681316728459911073699422357439250504493221146811055170002788365766194672115873688703651583590089146136015257304089894786821189338414241276945237839942990400880163017520222794365000064443799053554011490567529997857982890813347126088225188923096416251345847206421097686099727497767686723295104959552804457056313212263882485412605798589148932208004754727616292056805962447364106619901850967424261016919350771685403243087561463938206518569180858815678374772205977272747552204890972021383300085562602012747741488883245206756760590986796912802056372773208101124153678637328720399059201222121099613689111805432250669200885296679027339862386800438588471292391083585687312259116159102892710488691284396127663415809894550792684688448195967379615027234017471752395586920512142906227102998076481470193387191501223904095973879499039872512094361523348813005200867843972468788933731652353713242606087347962430586697632191367684218763323011184427147564206151597805855536571551073036937547521545421714606256964332616070059352005639377266523345617590067739696819455466284004380406583437271549562401077510994179460706975851363698573617738759601264213757356526659329988185209885480218732406026520975248616997126940305761179815719914911659959622916012010015589866164424474719118549582274956945087292137725152468732736545465885687528206505880083004431753850076283604854701149586483958655792637860107047474502425302421504582556388623362643978698578370080916372524223042378928309713333413059295620114519087798794492296086888205326285389922083208095526846872630833126798389833698481879000646960117793850791236905647867024711770390964006958318049539058263231919289054965412292560578095254140073008994912587755129070460232038909830046298733724848920065857975758289936876160127084149887819117322179304871754546937954360539185411621812100585495132712593766308971577824746800516460842479207619673600669641420570589200791013879043294238968256606643526629542812379024909896257922695887282791319663709011714501775300662914744203301681561737783259907910672232117918930416595310366523843804602302371059630367474241829664893810807380879366838058309003495828658296181073312363891286904260829342676341924276198676882544860197483263515558869084500946017169174305961451298235056343641173100166935218261122527669137768313511160678218425836915449345208847241104274942235466728436335751123614555505063605328381180410671244106922237325869594601867088442905586532679990195641020691731659238504850312375725382326314101334604989045671481808934688637702233373579504466686523795683598998365969437248490571809184609726662247500111726239114700196119091378167566426488368460214958508212262027789198315833212690999578484243681367324065837678768602082810394570761843435998991842410153726962819186112334709787849129352196396404588136980146076709713722992702482010034032351037860302525471542472435402748148358873972532124926515222759129934398439854790467124163868135139393745657276164339670573172106809291181474905582813290546458731377481277606650641756297066790208088924143450579423758433041430762761939708587720980217574787733304303640295034773706088844584033066775704522430420980754087980478008964704591031310239193215344892837844083436415748375307153084779051693737171035204498149438313561509761778958761170629903002399111439709498369280281513793316186243253575712042089050125671986503569245022597882991251219303416727343310071629001605963900968594216425786780006534204898091655609757244531002229046992619719145067538614478468533115957683325729847816820683872553310846365984818960383183089351265894113337214442391219164081036581555347708132284689386309116139015301447401891991828595738164802325041549826207395506605128541050658907726730932601123843887746371324129265038530730288131266155019178484725755988040180374621673401522033855548964995089532070234443254592607076279924816197509492910578510463215966824300383737582825690551300969990818520526951180947425088452252679937162271555212021076194075380102079744528510998019977066808111733109155680140457964635247976317026923556319415531494930292033817676725130248673610919555876028425641115524426743494019193240766068752882035948155837578750582588199476601830554573847005380166373283075512967650851382932655835774254169699766307957814199421868823865340897112181115760550445554694655891142193682024946202857069822035202053874986547331762234597853787841544816601178072021464216710693251266423684363314355509968011541530267424363109502486457897168427739188653142844849456759471211381459646762644813329499325325695075790347389556422848260121655456965311697132106977072170627194970758196413908747352132759686385873893056293521532948923590163049481880410071735789479254432890738424656444395815810970172803542291098062297710972681798690753162749038187489233231016357152550032336152426293785053946952441278350891935019727059729339437492774464876222267434159644847236423026138150081061479655766589588644363927343976221616554141685080217893650228004434807240654886977587035364240088349240871669034291666648502875047512783243193505306012171885268930239691980863551387053287033393385134407909878933338998862130913061625389477378128956806662268199646966593686052742715902078045048968272380960503410741885011879091904766741862052335938854667683347810871935526203654678968915797350100774216009437183100830824409211717835064456834273204558695528786918844086373211704810201415878342197035702348074296465512850381711388230764726111356576730650787216103022346012683682903309634103133186159858902518186098384086838986681614128416461707709202277907642937791302062937206157618121241731880421284513324902516778361253395148958587433985051482684477323718022757377161810597934258852504863398043526389039864549731752535580387094376871753592968287582986909919922185850195323955476945203246545796241407662150525260603093696918396410812619912227005830657696213842928861446703675277403044843070215403801388728425236802921517860411506170555091022195431939472577614800671912210237268672580243039642038799031229343049766981080426284812247169852996339686829260757488697150323860269446804380358357731384933722637577457460756701786407009089617813302973749117497231124242384081979717886814019295744107838159932836996250555746513441740852670724408246290514363407881182324235986392121058294135861193306875152679839334593189704343637894858005952612131464719984754702879724390034084781855849296661460421691069342117383313589279465567141158175174002878204470242332765557343724385072814760390724523573951028663900213830006660458919269725106440321456123192756551585771863986354838950781770421569815208040102691135032502543674253605506061286588991589508472126890436382261666684724410025145277752410192294764404225165243642765325476955857032203920631935272851536825036792501349595465068198180786459895452194713217519083538410230629013314058171164596884346977670129035689686764243770202246809977458041291985160444028987575225992124943635475006353968043038865933601887567304181404600194994720269237696996318206927745739498683275045665744241731442121309131131723221252843305477908666101987765126717216287613898671686494957814951384336718378968045439801280115631078487861157401243994815055180484883237571523891254190726775939826372663657675722738666104358576316705688985582947042635973457363274965299681823006998845299310181621697519860944886725485456151778745404976926968225455759638548103970730886105225621697493304816254049466570971359314899484395163711782870369874951135705439267109736478928623070997953371612215062815069620676675907146926027210992098419593744527018930952125103516662532884631595709465371627898834453934865727071813949151440683470623777358683434643843759523189985735213988630003414363691164624508496820922219633761371302098526799261455308387179555892002644846397184668282541222252530136440324314794991592122020951481098054121716718806211205272545641937993562952477019368225666395984287065754734839090523070929761415957123913187415990577082543604929903875526736717179155007129425924443837937600339326721982733906657135797659617573038652265923531342503949800821986543262438510490125569172579554087836781578734979638078027273367230103833511801374891407916247433711952991451547452591539268695691057033166869209690000923980089874531036606186276797781778397298055018969694270183243866724000916619158678905095306850142654502886316064505130385492873911125283209971723324542187700707227835089286907944490075406278750742551764044659022079651402960455971487066712752834438252197522160297336456943988927382206375216295951735500524773874645935825899846756826898782275699256374388004932155909770843662938668100494844699918888138645353442941842821074095960342164320441496114866812857820220465625343302060354831546314714403067758353464852189667676426171626342307280783115175204805947080914435292458357292982805985875591117780689080829544553332510561830773584951524926303780075304448477249740671633394489101566508917434812967032730117080736277385698725224938377536793805244528414523066477046849424583888850302370946804620180805592894040078495349480714312840389855711536150716241774412990999549495854959822732758551488987013608675046937714363952575018159556384826091247599246218267748544943390886858641526597418187056897031955653143731689234378167300913110779156373103486130332371714098472849599269417346685942230404650866215600914685214157806948808011496944458277810495750136770301666968184019843096536414173258531490723738300295908285483442861084814065429478315551070743496157154482993167048035113741541281187040660381566985467340342795755100318590687137165113056967194372390866844854740586897182260577798599779950455298886730824132352161368893595660883576900605755548632463661524008367009092330837509931772963184220775045773608401939866199718717979865373007724922670357141379911549036615277691828196753775609724090802952162338137257572500549198573644435758689662521059611685608849298880095478588043084896190567367166219539487957067422613771677525358114977874436607134798963444223199192931866905952395120310162946642242722784507495098379196152663712592395079008884352246057206585035164076436558420551334548326151143088535966666483813369812208568975939447475438471623050406108065939437772991423179966824597546805029579682017381646937163694288971430494601544582219657282691395633378332000038973388539455222710861984744596674917217819562348228353428292710620428048498746578735449130656846379173397399980141742559307460201749216429736282554431651566861750292891601396971554624541105293393141331495428237547344283543111759283535506434770734871759190984982168030408371635011823155607770792941574304720996686267995871662782724289495653264846383779809678749758084610485237323065393866896442897885502378129358053931463281885736338661847642999103483331147656458802219010079396485919587944179074219086229602598863618975435970588958241859367173665370182999403052390293350126078827210672395372606886875786045318793906919126052567192554321756260000361030604610032522958837128362237171842249746960629806327183163915762461478578229603890021406731317750539866228740909712734299252134249027544650515848007636521567379332190747023837581185346701132137713845446951829682006947593293207971644588253464624445811733650451483251974323222226352706832233951818568237755613945833069556548163648332012585512600025167968588424552749470800486365555578641484717761710805691422527441606172805378636734893303755253765786736144427241612626098864182622519383372618701276289519454044646883586784837160095991592318357820733924015963224945397860425536448944351271224190906013727942886665393872778761680587745748845242671109803366123671109804871673738320694075759635592847614940898487633342727085749992425301760094102621322977140517804669577709687319830650900375430810913938197491004445168505756841989558589956510569091880602095492531080749379470362003931866612945680315269396271578080693272783631159166050424698251568031008123100870518418099831109478383557790542693315429243460591644730347033828485534551684077957505340184250259713799904826266415473288580681392647005819957243847562238457076066702157496275578930406764943965899489700182619176607581435531585497709030952735676428283769397509833653876209983898896744421033864488019523756767836318181877288958909302292497755405526545331787581212971460363648922856467983893133449433472591998387754767812846959338920802872749169787159272555104153651505199051408917336380662282101009094029105439497944888932920607525004551762379549198714047636722380905115873135380360920964569753928873580269251221014918633902281441154747726136290305412123027498153241637349653939489316670490363210659534820632753718798670973775970759871819951494697830113811051238291944537763458164208863440369390514662503531540333322085144828930102461135832629101037365491412983664090028730544746965733455586408125764705588905843842126092081494017536967547225296693586326091694506611076513728735425059531492249978608433140769941015637729592896355953528306083513921822364843228635538508704729033908357169177433720613953467584295872008043325193531833874270945887232835213924495535301358501261507349777449481337511783768499295929119962550904174032826948467419054504327403157161706460035234105967302802375187762350563255126747607807400109720336406222357537164077046461019688757713825425729633586747585585692321672335082588273302915877341615912593224509440484465663378344841112510389874702908990424578911114379412200110040540353260216452637984135659071015650732919353562871897455856009268464698992725541904176767068702632165379261020876162819046654138131333854753262198178349311790886227603483330211417647757818471584980349813143185076440565270727280930801580891173679726413546888209535798869302035215370765951318880922751747946228111284946487944835648407692959781170931093320447084407147510800389504743630232695836634450759104188975841082077402792566637855570881906482445771623043654032611694030044799453472833382039127437665703062074485888925639653138913222317912178342867810698905423203879586519833113544608123831148454094182807158975016250047007198878121686134336756807736282632737539719466874593038669557823964192516961939790806103142765743354380789962977407080973274162503852074272414856764753265054868534495853121515078533342465381451094194567026271419612827635416409988424999611187792798448562484093616076057002991119742514233630287911220955160904647946161433272498026574747234689419223604295490762134656322787351862526811883313767346627784849332021250638203311693976480694016325784062361162532822168182122831044718291996178861267519280672492708918838026135865559924633236007445995130919573367432810857213839132379664619010471867982336887793779182264636890866226088370889939975726239853857572440452515513411096037165841950816463813168778796365879894785862739918646833655496429534816628034299925005656657948400797647369284271689732779489458630339715298518959425473778618955114976452761808812360780511726398592019582688394970431301649775693848429911873593005729074587319413461816572112031830283486567690160503122434035998089786001120993426222261817405201148642671080132372826048800516916390120447956122987970749351853290150504936474363107005480105063121533858803211220932938921567858064469745202763357889961360484545346086405386964073243251914209612598093307951823703138803919040228157669161810363164764278263640604515807511466916247673765924621763668316881786492420558200896143057275121438641933851185683918872935051179026999783246679366993694037572617205486378870438342167312924579281764588780323879499200542274045862803996992596391859911615463606701951273653933645642225262868955669220291719985465052910316467509934444358335066533306016432881569160794431886170401443556138791165146125092144669529689664210964562761269767964025095042363674662510699337204458443657503188875962197907275744606999539785039473467922544876116948651493122117955505154008162080377093294949168372179958867719253734426500394163944943847382371750033178303351602047051471257367179349597428431206727062189168705832203033812910119976737537645579486964933164146449433673606181352802371480186080792262765445266534397588709389613057060806088425398862173467632783689112845390907383421492159207243692680789924483193264972389802711778200078612746997200386704992332463629842669590973050386820961372087058931007637513563246066224287154762711303593869043739116081565574461049070666670367484618884688426373071675255316766461297410479101464489590482576085607215422624508969308293174395670723873553243425282777995782647061675049523321736017094383870480525570062145344551380772950769697090613913843259137650589537893289496223231452037545364211092007937950249802340506355229131693547005548388716648923249429012474593751489913458910469600595225879491883959154903818760289055854887515627604518369078315742397835105119408271354035107561782589765511985975136854384600444903088861487449339737563380266888234618993240155827115242617011528556736768298979741422555596041651769140757490963773755965519649122430758285388168267481710284607806835521330846189394920151043654879074223563776413417367972008650197557534195435565565683293237774615598416962721448491610482947689126476310816439238138609670137490415881029399267130039700418612567330241096227772817555130072804314108406590750314663454896345833031556737751468609313039734758534499810618604061357580215209841607938864840261065720603133127467293827591965740385261222189681440778557873383800307394117838879904150664757605542593799901648408660677567322028193165959169444899534171789753912241827558496470273598344680977331653918040212582401615616797491451015124431947549616218246583244498193051790990453884792482768809530081291586957462532324772996933972960764155978715706691179226041916977521961112046026110906986269594859442974978298306362715655697273619180337120399017691843174118563827742798905992070021346643195407532822227547966445851172939039552841714958327608626907175999333127376180346242821270563897014809573865932344083542662496137355679132919913214587445385924753015938675534835332178519091814732256451885050950266211891887016466284863974581863326223387693134119774099778447326165784851664786639854278762222353942404049678939731953695333392551863151268711639266493355353406359268242956441820968202426896647853621597567320391179611937195051287384485453896320472574788934046400671812622912171005753090922745274867028768697686465978214057790085493341644027016497861247907125961978761702710751868615430633790397058080653215478529579031164147187990982109967703769011184443640625447281073119941386706951134776590789770916106538998787093787031322979227839504759342198524273279290700499523017578760634439794795991707911235215962692032965154221766082490440912464882103066064632159415541272179461169795918842434595916487288869860765523512943685715983959467619772545026249385366647019824649725171918147473556104903920109963475738431029315957101469639031398031372035147503055337129353861852187592980346141798645361888696885776463675899974675068774850479442341188616088239249847132109136223934160829065835383848044871411393669171395729980226351696541928503656579781999954654833079435109950232437167445029891876356735751261056706268289437103049252062125547523053089354299788996197510507689710606588976157486142525187983689017213335119693510159086447900390072549686276288880074297799726559294426990695596764853307729347901803573561444509825662019311081284226060417383715900508394176610481889150187588762923088813002009156413856177072151144131663438579033324952457254362680853208964604134755912825995140527176562221854468003307760272897121659727242776103597601299727005966267151615628507670800462604080547889391631297691667827176045145729107163799385826976695393768729333342568691516527661070407778047596881545976974344734401348101282367291352006164024737403671358339224246377074963291374896640504973683109585464971062004227872127031064873011823494113333724899256906291070278851545287446328192416198638508671032392046367527032535923625646536602115272508537775418081778490386912436437185804612627976206298450568697196108525798918760406567220681710926756969343156939803274727137944582103110095255281663318145479232385065776280974667835523054221044147274537360886128691712439359541945125499224160093961968709922880525346730041826203031717846757194068973262402104735574587255157389883615752567256459133394790228309887108401442843376332757305887687824399326490448401927727235326046022709744318480961242815174387933447607960071028816874244689925212352025633287251512159635242160115702783485495242919599054907015086319453436394774657624618381308030898983495954092228147556249728866724327698639606523767866728459498851163249614597560108936276219557402090917557854399987538116785303401111242016271154046214764534395408952560381560113057327040741407488470521053740075920993788661623531315150070042818886379809940034352554857458599909225747162335337174193929444007527510126589185969068731960959940461077743136013475939724469168015824981092020719897218286131874882838689689021627889099065143743138368843960910532057224059947924123585863868266287091956330830562778266266485696370219663034699380373179133781665926456843153867493936554969006198302482307106478552001859482491162827759243309296460214175217382309204229425784885074467092705330176078118117721157261870455147076956870063938478772857186293809413204804491625560721388881027408531051317796307084904905361962681961383374238636062141636363377199483683074543912876825341685827424262564649478100185291216311043836541487587329870457814309446843602332284261548211265286360722503698211951586611316727592506095204322932466953600455327666034514635824476917371802276133758660924591636381450564632149404059488939121646830187499367106852027803099473891812244759267280694809812057906443931349538312075946437585907536177194215332961216295053355919142999979613486522016506059253507880229673695462481168425101185773291414326171797173529636623432273767073883153587696847593624621936237834331647769530185711222939536931067728298595588953759154516249364422513342322628479112044599604563011188252432448994284507393778340623051134045373872550948586708033497832669462745358423192768122093271635722248649573317873270880401737961062287451713892214119959423593012704508512990105186012601971398019510387630780916746996511944110284947450236361710863766200422142382365311256356730481902303737589633482417584131536394888945518212423465960018112186894413987275707784099758271342170675351371415059401429879503927742318710349037114759662216486568164005179448560383462257477203187166420287374130583790064153596195104096541939666022302761484633963286657879197666661755467447338775415406249430631880777625349714988641618829194196083344895332370100237608489825648740568955285071802038520521447281534836185211586633593619074730204178840085243962796876474332619159693464495796434263762292020935729014911669731938992330459484947734223686972408019593935450273591047768598775422710196697145518863182732511035815234034360041155230407258798412642417995879983061434554381308301138233980997134961705911280175358540430596158908784895491920110405882089650897292148570822237372916463537006065120803370693747911399803019367992852103025681914887340447121184648436686615447094249570939356798094409957433364057820271046638437988799489818239964904084602629453937819828385482702790703144077459307471211507469185101613507683085658392317563104802180021896049669707591012384383535356912669956467740017386148000892049436823355222624097858563389049122525094081751691263500528215833988043472169309766461518646010009787103706731382236535783596372160285416850864837595466684717244338253244687198055385667411357557964154219805907749213761717920235120772786351928359582955577491483711236124347835022159174413905474317582302686718849968094975024186801285192491031395843404726539379342365761008383676698235224713628138112280175466489386709431063192974107889415497983801659484100625203087062128466574788616656629776489883544143763433563264319841454170505345498922693843011004478285895593976139702258008658616654645096782941416717065158736328308395955126883184395849565145883398561820630803885967575403312790676328012268521698212978153171216659237378307518807114793555667033509977117678011604771121987868199995443029605918453555793694472523963350503255270270768414415089779046004218782680549343979362465849348516747025447844588779946215322082663515387157100345399634831284645231679218320168193362004993357408983270373474498837318969590446215207626650740780923683552410172902096186611360859881550542212309595616513729801806621758171096208245374667553383745626408728892832272185716066925010623511119506838674430669464268864672940863821653677417298722423159837054048021413471330534710424956077347559920430934824272915677917131403049256911563613261487773699143742475180748171689890126771078566218148286118140949387034932800290317717796637336302396783999525035526989632082389051846207327094696517086778920909695072132601235593880161222823213680801175278735979146732807836934150806566736964092777313892961620609646608153581550163722399443607525836586240903298329265666514724823522087328342478905589147667523322581570465601108913783573224075778325052897486033074202308645615689044511940970520576936520633915369248303747511817891994585903972991734531484152679262832469950643238810708064035059916303864618278657240997047519204589490042850676839991616417589586306723246152523991085594815593502852324991965894085871668634800709702196644432707901707083319527321028897875279177705081381152625346942911844351284513878743834347199929894840434486710705660248145291797184180697193059158115979797703006584513079261749743279326733449885271355102656498216940022941730185100978607814334610357898731906342068109011097880745258673113005241077275962769191922429912804387744046857897035249254105302277160814354260263493120092417996927746245085702794210237863668177395737565989151436651394100813442054297865721128409593211614866313611444376015070268593315009847490509960832838040194342135372556175449851488541690537255202949528821480191539264985090283146960769102512682796534321137798148591789345834508007016027915567257240141105891544272994008892796525093906491549981569646065404714557256589933089279174792829411301499500686022113389503901931346391269776216720488032723033109134181476466250197749078482324771366442838632552265194843158600263231435263768788039313328711871633698731215756209418862054192835728719478930859114459592393159430774638058276617404861854056911162399124638279694072819456785383930022442613226922281689121768109749100123699329568543613678411649319105409761045288075278281230705762137683916615087747428053966802597043097778739094140727427701753983042410307765702869606486552333224159673985876218981890420928808096755797545237133002222601801703964463620426042698970840030644945948398998789402787008241116261661094194596572477274638938874230398424455021167454597361639074639294320325542954451300207080816563302160903211341225741086933355970889342980629691016225005531130191777859962433454291140993358012070920728005620027451584420499647548927061526990428458780256976168255478010431323893523070727285373386323763146088081921598855357558549879185042583496454714450420384752065700934204978309355100390239281493406147750610117684365413571778945406722243903563651264401896792409102910230879568618136592277238590800911223175715211258942253075134029699852294117868240824798082031013322167865443314430139237282703679260448431943727479296187684914132864503671071015037955681497113967208469256892201239406821144125761624957612748274206013697214526626737485709662965600451324934822236618928828171325226368538352232853116029569649090886123895545640354702562057815935741196939605633829951555626208807667638579233691741179534999096317138757917821960796705664839110341340922043599666658731605324320381198286365812262562203957914495506875544029097335580411767011994573585470862073463925873761986578581108793415166656849763355312875126903175256213473050402725181380119271629327430377221562472513867757973657696262697906904599727663544080023193143829246036290336764000953048652582032777197483922189241254987912143399349336815721776154948731677403215141673755645072569647435214376445204912791414838516473678514430798119314285468253874201837553380223255153645508671479396463392243668697991454463053096121434441035177312056518940472038046411862104341440785798849915353301168598546112382897011422301119344658814760830336141311115064030049830451791408968166301489067205767665869777969285181728011837660706497234076927376887963194118045190900163956674018976415194169415484312384493891690559440536518881736761513002350851150061989517664194912742924229835361362901639609848184441597582722926172412704526238154008051736825118689181740056309817636873963060191351522454091634819601938592872273043589065839145693075698707117566715248917805692512657165534680288816580797854930424155678145715346722564271269307038137968606074259389508103805990299630238190061549587327180544560122892662905566775712219424019560094024004649384178793462015847880937783908051262540467126001709468536526204331039177917711884977977197779273898718367627416503160091302579693281843895879052235551532320218767908047535736806862733860367983189288903302975697441191649533620299347116260700073359706058273067143957222290409215210013414116609118810922749298770754601522007344979255176072211152367029184555624639053869021252124149771970660174300411418127158168022525734795366892972383395925205688043859202733828977715165167328752069327654899091926589938620800742266393279179585178930484543985105196700108200663262937100848029262040723354735154199793996521085674239329763073435385643676753589310317064643936676358920724951069434138549490395990076776409913609049748515974088031759022062573220701233533924278536965360699154078067392538710224528702371306229785693608121179444307673550286863805751364351777494665897386119747446738243700195904590371360490847866692785259175167030490285644038298482993638089390214124803160057327987564056919771357734686551318683146891178210305388998821493897135054976869343525566289598932220694920286119321839555939056513605577496023025960465946817721407073757305467758098815924871525107171849183575990950687137407275954167626082770149959596223406110838454392609994340085201970987431897454218888475700135939117391968905656603191532225449333520220721838525706692574175334978537242993113979273577484610542820308130328152984210643033565227799107225491451117951025732319019179619924918103220955832221058883727848952967759118578114985736462925126741906629523981528592068043387538751375703136919234420230697113279689385763566344210230215724471109793639510737892438506115979935960189015397293801628972279064557654421672263184510557831002161091580757267065215662416890272464580540060284858523491527924443680565713946052857256219950715366169860564534927540635411911906504417101818890515257557316867049208667293937734507268749461919516753506720676217356293858992538847554928246007261833835379849844713700537056106790794152100504372355155944213654378416274143686860214955879809791540054223832368996200858408737898862211049147675805783000691791737777146258348826943102242441740059467672705450706960440672317152880889345118655634675436462618444031792873533974938736770252940818135363367636204960800012527427378903482018170478140673133403057324327549755238315113284714186607228757776815222807939437653112624937337215921869538953789639917097288027525090549574589387812530992441363111548213241577769917743226225906088610432293757282780848421136929393729974939847133156126184323537966257449190067586553304813460138673439954901060375579586673069853111504919046887693030734532881163974586009944542825118421093287148943756054007516759951570989584726379760917595316952812487342504810898173638006171462844772063680733790686893400458852016342802742431963195604673230828766716053142412160228006949836268689290026668238458480561527249117128427370751865187195090018597008599476429954538656916608429725718932926250262404204918081449245020201479137785710952906319039187312234961565341561690067744577886534185183879495131002822827708514833948512658922601368608108625459066060642205692863897191395689317712882816677311307819367363041950270370356655714372839123265944900617449708534683450107537233821707594899239353398897791162998837488923768322336831352082715126787541136985500913930182034752610343020547502986299290607615799784207196056688355323579824520778915160935060272113677066733462958029763016959448626531093788427373718651557414674678821643247313181021168708238484100474133522289259253853920330496574618082730283101110718457812228747875814181546397274057536096148960051304364836622266506221499673475635739953825625362654908565648772527056928855765790752659995960682636312819884150934726102951519163016892666899346911914828730870133081963472539806504510355215011299946788299686217405467087391941785566093160391725745370917368840172442899648870618794147102366020654216209558212293380338780262833096062146334001526187607634280187706161415425129753957527301565279315979722732721873398804279906172555146388623117413087237467490897270762223441940556577002517050684499356787458616605764713964723528016587791543307246940825094029251134494236879819312352777487659082483605129918411449508504624019090747281155265129621622542790528911875194463904945410165824190435382825298292607059782045309973670061322774666422599783040460238438543597885095732907796963301110762027814941603573092127047135765640883321133830919024184109668257389213797138318131748171593563129428921228565004303628828747019113803162948080667797984558319233146010980787008512561055386504828091195450169519185840210671496159452098905225973027963233279131690534164264992390833427246084847653528552831648066004684965237244326121379993952233990998671050929652024877673419243255587545419402625160789946572379877337956732457794467015776829481712737271066308548986066760605041519724774604642387694767512354446655745152635936936457785136888744471260947876299308479400247595938912819299284104238712414503291153166102226132674201757104972044753561331816254411144439377702989419622525696026590149589468047221322018277180310477520901509277408942119226504791896555606134469331799128994014759845904075346220030066614278047237230766675012766745414625703057337854656152105700853564007010080554096856462871074990224141104676268579423714395699827731765313971493826807515071575681011152036770811383861515887676758393897582706331288743298490150273225925391557228060184301225790695256076701855498463114335164753080554921147706908293388818768682498883387060639369886826643386987800391632612369901622930832835147822902320085791162918114413724274065045879062294225574225854442877273945820074685999239836209467731637299481214941112106597644896538442159437633313952549240983732048743172237692279761310910195197318953790363865770768183085635939285638791607175301497613423617975082121956691006166329573769410905963209462136062178609748916663604917369950304416531181268321086427686897507243248265743828579292854936666770521649036335715953647342286623460413071050913037186447995944970907002647679583588547420917091861224525520758224644521357493614689049470613374082469874241716884512055574780407270328109586312500147159478364030243844323031768161766976297815697776792519490362035988904430144301710155533529146851758447032045411448362512434676652175987528536224429846641211232918913055403679766707853911407709714983421457772534281566664909215640345429948993751077501559289799779913630668720007077550040951004523332911839792149599665253585520306382036218139915534309353617134679975212585523255982700453228562848309613900727986718644240670520749181332907986055752863390124895550030985276024558751208219217960890290120040502207476657831627890449134927651995351853290557706781990211138355418040164648149281511919428374830182204829317165005821797622320277118667890820627944585543434572117788144990448572677506969253468709896549064855857709863392703525206285501658895252669288489157451360496548911445974916597913031411242037990180927309301198952565622028630049331428001231868174689754491661431999620568104045842181891573854850206787257962043530418057030283756439990190271286381218861748763129206191750564316715870655809304496428593770842818113505375475737915061199517318073859863973288018876207422441179477586534365551819572894733103875844860910976168770061083379942917704879499594474714566360441453679071915834181544655540977494690745469734244268966049689459959795808402495667426933481827362965287275661420796000936357915131182732005098324199541589078379993931269483665812211873875307686278148734091109369578095498502088609898280566126307210406934711307713596290267443670861988160365680488926439965187186474143249887575988695398929088159290289904033320174362473478161545043248896042826876789214587707644553005641007768846412708247676572333740198730462964072365522873226945890460651804567828693064381728527383281668395325841087627826395531576621893604537916982306104377359671458254508528555455298696714585672532665270595179067032368790179046932656748349039510916654096358814114268904274254278350107163009219636541748877410347008065495648090481715647648211428093539130734936973547747765502550611154752261121502150960115398466729368652666284311653028070168956083565679985481139009540017615990096021152558654798913965305679563761395725444484574320508729418179839648112301998539160126876511823315390664668323868468026990331481105944129006727558817095427715986110141719952806407165740589954225687109864728179509324412974682780053280391257665863844400337325131551837531989327005778811215207725988489859586361593687901125493026538136143011105780948083440247633151551128954144121589561607647351083803191077734936176631248725341237165262101513361613951265240687005981048030434640740693868920766810982173224009146046375429426169674992276403309113108886971352243935149115047152597125654154581114962736072890991187280730514244438924200921304519093821441814440921784239772742776068264499577373825783164887199027631757471887977287027605764313712551812542017128832940321977702374221928168574436744743591449645691680111648997371035868745819679732089372406049670771390516156621989642860180455985004966219650678120043413404614588113004448577367748056339406037001961160178484246990465971332323597335116435265670007641666590478238707406816801919584045776600930082548974461991543547564027113881617652610106676542418006414241616760443337757905200442277801864151403029878806298921149077670585707070427183568336528387216687270479706011238143563803391896062996567977735395477076134180598001754377406014948435818485260635775150250454382319160707347344219483831742382124378338875294289273810001245982183369762036808982234920128814904309105864491245672915365407034445093435930713593408904399360612722894640217378168226804263029026965604085249770963770909301714950774561267885782337130222374984849737499622920333375245095200966914997750360879326322195595138652882379260646944522073585870287080408112755283343422685488299479004533305998648881429181847875856407561246263365374538757398633564781936849578015021688347814645595870431107469794772899492897979580298662940424515911266043624197107374228692011518126272667160041022897374295957632737793623168866876147433348695811815772459870965731396782871385458799778960780366612189993956393325439986612547215215977774693314717085899798041368160067843004618748716574717879010405458650829467071759233586190445527724577918387929479771658133211008719393571969466015120833820906741367083366398540419112225256766154755861527122144834021694004498072921792525444747222187716431143239154662443616830659603447129653077282878899615589724251145981946569161113667753410939116649159869198205771105895245733935367893988838417549169804176969619456153779415727482545441475575210292808264898596751363816288422788678505379531507549545346982261587979837085915804524204357904443561023685442934508459432611946580300687359267891142357070343073804352344322220828546725851228874337455571306209529628856553386967127739511383663708720015527180184253964003001121620098797088145444753496394028250183340620829717566280535465023976776573180597945455829482213896446031490170943713331781868979392887115100411036174621574111215524244080864371633415124917696186683697896811835572216018311795091968896835998663094178388850474718387744348851851875060880464963362302149036703602405613626554457519185471880320501889014919969051324429688914275151400717203275500012071921814948461705243731208785131597283128244444480365921856638155305507381302056182052439851659330040970946064551456663559793780167418356622799741904579142033272515384764176832776517097242677754791559437363277079859418086557109072786942453273034687939354373556512407512386256801188025315071406056776295362908034720319237548943157064718128112459715403151000668589454669216369084196048384526560814856320740174778612384449279581261211832372733298116538527384703011045284177356560315240533169749818674088096004295326195024230128049773421258329975731103557748326148489918666007634933306724540425945435629719674907661882272489224246718613837030073488843372802436083701407327961907700444795242227382563155085849977528772029899706830676474969210612044525616596389870396273880252606731247482200889165058609331394844700760726338997232578267063565537026354614414634429904857508265622968140282287040585203314313084223471724549255360219429736618097203923829787752989343593434801165627387476132095293283013960214172709907671586689978400725104237067610581129728539517849812500550564118687782649217673385983474703436008052930092428897653156496976799723348888010448042526856822050566054506517894879345566548016481147350864951281392873505199031139576272823616801773362368283121115485276136129945257381255359911889726010448450517628586811526513447378074512024439062312688663971434504428893497757109768122748224701430418156924598807997681608195596121474602472482527022600001021471974338710396577879615115687806198755944326787455728537415040662951893426621443580555960932814801772910042285490037309629333004586522391339527072109385146908445451972990540757091583750502585437809124709562986967728016111177255351260009726068535617439389267995789192110716580106342979866196509774684993136615000925959953632627767840937987986573146725114511833606789471554369468829427122548045107075326901098562050735410217447489101850184581626176578633533069916107778117285741542037364102709742703464103907894863348229975570883792207113236609869671203100390472298368527622886482291494748603009399341317782392602067654508656206563420205866361326303925412555518168779583600959603811023207721771403898160665691584908338386118573768585627408169673263505524612386580694459064714280886263399711320790011467959518336520384178208507500189302311520662211295275771030374082072014821306255008303182923803784246968976277912924861456176926575397215548783782254245535657903045276571369501953689535306930669889567589592237505151304419646063276585533166585980383409017599206157834853184886846712893762168377084050374348315918744461585778970250390228398102230376783452927257250722386329781087276101316601362994736617615230464034734777149573720609433676370010794564787130233619719945476705559434333627067311492721413575184169928050523055473145782781578902998408459720737520329699556521300609449078111448204079060276513042891609343955907445653291006591614854886349316356639908636280756804379065206983976272278599183337103740901127178928432307537006254479744523835966668607081644895028254161598042465327092393092499058937891473543350632159464340722051151751172994172018488224026145598148874292076439938070178566697086559165135546911618100105799257142185717435715983803641159627019333204228397265874762128339737664930795002087189288892344358969194487871404817805397235901898560578072932178461075198733072708652123939197332002806953800858613891068491338805591755887764321003456422056713006712930834717535996198844348250611537656491206660194026552377136459131654490349406200990708049359649495966343899042709646531404943280975390140597959842011462248340483758079459729074877162513695175107782712793624118620475657179261414221089288659363551897635419900480708255488005337598595884406620273331323462481590051607304918944157740097305491119577721194738884596494230359444858792750027814327953999654239522697873154314945441045232662935939105850916421385410796584999409547537472328890069994759240793400328523054655211296449779076312242468987399788790495691896901852577836514334253294221419386499965673743795987937572258824942431396620481565637389384186161478379933536811427917344232215271598093912808431286002761191922299751662681096516865548146310026456774405370858708935783895363960485292333138010891233577323430131463865301533056633872174470025296001145517956278158600037390038123866530677496888384245274877981207262368376773259995387709137640363949060933639712710348812577695670342999215812367585205127264414516606728097388113717305235952521503753552215106404177899539491071936066424446105800690311681805126767890710106570706652350470372497609102068679284173408747526004044858873084796473430855671641143495286785501556567617410574476693555438138198867402163617997557160040832983948127246253790386444035708118874872171833741345752828588863737894466113382332820042804151159021020605533616628570637363484093412905239505587190191650007268440482825384801397577687954867002858280117123753472604920509788485077235901514890141036348943263386540255581333467491863267508797691726486145133429602266798535408008885018022952960069440324052545141120136893611194212293536370677930249749761513434063643092453365116531602534493189799474334842811731930708151181472106658168443771328043611808839540125227931269195529752160222375453071759218744418099245761322300652081665776028910035033125940212823957115505771538282019171061753670869983146191262873357212518221495600285043090378516559125206315519002839916575397834369887318391619473469170376437793809318220261783107605017924941667770978773844313671158832812723428266100365354084415127262530723925695184104068650744170849554645463204208485741248636230731774233021051990909364433585247316311113893852755006642857142862422903697776671797751995552390053206768272209195492487832688735944699910343276852286702068267644460450262500077291195507743868446630332007782829732648201456695975659422607673791421544783085473170406657069466709696190820245251777421527351592560515687006795761584385324780686480691520524784352499807826338666318544912784176836949821796861771197875566017361143122346261387469623009195496562455448759032587366794724696075656192491863630249443360275612396468591194360356835310115408710848936261975017456916271512750005944936073064817955831398917223691115843867360220329745456364867968324499835177486741140372048121086132864870433833063789532355899351519901764685845847493074911351915261970006988307493483879578316194400089106895516884170420469474694531908915354633684580607952610810159512470475864120600499897523213057319637073606641510947540471847133645790296734564486642726913190609131445111560629944956095143577330079734778648680083998394752275337162722321235004202500586085551867771871913614731001040495228090726889914058640839389356385955304987498719366584211975745442109772240134184986947815968930111187341935166513897766278438199825955431145209657523985643582021383384315320635514524785898271583128293626894549659122267409252033336705101454555647002115760232186377477847620393292771119030191049105826621910005966518193714395314073943193264964524599153211303766547807239826889170281425142543860613284520458212702755554650623253061352134966062091742108618478922603093261184790609340234623235880601927085872462946870961054832505675832438313619983371249128478458548764647858819955545255974235533986062388724314540536879742512644745807421656037039849819216042578089496874275574849485134402645630049265325688609795766760777732896928089031803054331120850940579693374862744460716147802167986838799395110161127712644951575355634070948866639499329975120621780729378872966778098660092486287099454964905174885849081677296254709986963324161610274184784620953039628712656254856043110666192256824991871235850283654915628485924205801094306715748340547033229324385105108549555001034480654263424509504687486125392677882778592308902082421799535891491582266830072005127720344858108934065893887358771525678097902476906283988759415347587140683379384671546352972634380818694898725105989343859201378395140345794189829419674889462872054626514320264660425192046234568297400853280598737480510712401571167427677668092548276126953779574917029937120103004300030189648236456476639771636919761597708362079756522980110825530385871546031663922046272837136591551448092056403143111252731327397876141676810520994754180613689049304608416154141018953763217408625949359437572404322242998451554648133187475074517530540141132162251600759128675044747884357968430894097599187207591622437606394917545951879859250040951163201628168119278625958135555455256886822750387002975241158052451738904381442614594334889493343976886677295219765666096581867558788712287456134997634155047769646016795315875032407060411362145451517846280398780313852421696457999871364436087306751300718052841092453692698737120424000618507320631799785739425582427841414478516814590945255129490971580604068011315543090789554417289421394358490799113993088065086084891496675995888801904616554780567991444675155709385667380742787013935633368945229965523043391360032296915416348424257282311756833517279988556293501354207903472673500378843662175873189680990508077277752390069612477908710838764232055088958525245947029708761765314013502620549867593119181173511310836321300022808614374356551776373420868503644938052945701836486457395529269824928867923002334460793835825671883384239195370705452402438967142826114939525503489233814162809814248453238290143582502850885740681759837389617196063031645355120639782430271994530099770456318812257613907030611430946623358960398994348402718026549660173227759550683809661343957770535238714223788244810542265067720033475049193064351089950514678543460105429249082992654452176155787289921740078217628850891088928832640730567378391689193377903489484901630308253262917977577103492683715112499390066223688975470375711670285081894851194837511187904733754699922117548999203385585026945034143549504716031158304282453291557461590970438934452995046370939731313056637634433956978405391236182133775442790809332355940568111494704112770099413607289030756825824468638473647651271987247922078767693163355052908496760846923113394154469169125332049167845292836164226057002170990173773207951449589669763360237924293610130401494244343161464770975569630626346971753163942737940251458923362960021516963354904375192706472447628049363219206749467981425420313023762457397800782591452528212499294712519171746465471574651275557896939143512471544307085474284166040904778413375128729215420656474227344513136255586176901166260050125406031688202994820995217997579503519176775132200978721905373288081969080595062802307722444547196041065370651538578746019071007594927814956294536352523511252900417783796899061671464648002436420580889080129169577062970414298362748253069783863667999444871758228243339768940286620932023250779778537333895024201267577690166296002446561804817280162208253963378715793686006122844926872431462451079213108931224416788151788166199505918617973088229934580616172147984169481136795603769930806320974229006657743985906851197546018143009670479995289692944059576473881505905599054084877828048981517696143866906477752821547862258335177224218663032796656856994477965833452952122911766783475558162384147079175583123493345836469477387998956607825831564198255335176248102569255767457440154475163594148542542096781663864948825928335786599232380396258693849013060787084927740701751673037903303378660360256062291323709216737078499695330115247061307111434883740552345238896698453147896659047335277874140608793009117854893524259375658445661572831876026478608021513388000195220612760083032636457094094903064994577250928614201799527579148574621691026458332849606475608658371872640801551732263074907817550848309624295066585599227158461791026531791384933849833705799421756318064914095912881968059388565601916624902492494256490506978208792122445794029465663099781752885288286473397419358747867026759960883606865726002306336292865659476097224408747092477611665105804001574371712262034998937525183487428128294222280475004119725852210456060454390293462179350615560322735954263272153792959728375325491602600358006465821583537812002878404182333656014334437173119564377394557112074317110125232936149863896903611482621400160053646010661091754390314783678493342682030929902167650074845248761286259661289438476912559234920805678138529308880003436872936579001744398142468368899348762194775878128752823917594471988712456956153087531980203791486566198009912949541806271019005923137449202812187037686714600746126088180261087311717310509110955510575439487038010832469879794589833159501855641207492183411615571582140116511219348278966853735625260126400908635018583592737950542971278288681895126387726538907704751520311675997067161850302397008970156673951744778130478823162993614058171824059178885738032209928113455737513221046303088217008731448494722044993240436686530402057996572422729196865144646315892940632104442900053836723568033391381110471375248839250100284782461035571492160457031121030764534284551188630842928901087273520722158782647092390089643440619515260462941051387206823330935788001057950835877397222473919809122293242461824171900094821216645266693839771717185380703061798605148874376632625154983131584456848797301585645427148340992503235528132916687988726273797277044501369539648458355422158842931263105063422414165174689489016133435708726395211184598725028398332694094764400776823328078174204082134783805581965714745465303365818025231726417577753839800719716096695181384473375529363575049322139605534995844075904281940461712288873123794583947425795281367249554584182682140666487067442943953475328980369182587544214040646640949995641901764320020598582977837506404576229686880397309801126031011479661625829793185826096375760581248609037852758496358027325857627158818196385451361776854256250631549246789221676767356454292309750711075654609703816350175998518855218053534857734396622938930288621139391430076042771973896461019623455661060346975857292970368691881405085392383737606115854696928100177854969749012588947656029047106167252437096995425947398825305778161849674366258188465835136152143504643101537154970244208687184943424214433333044154283357582985362788193578012931985965855170757277978621613364389491475613842198194099935380194616757198100643077444766660257279129678016375577700135162062646038000265596737971584529034748372944049802166850950359519590179278202284716449911656466708900118493398508079855268247257341725599993449983258536479130683709232526326963608022846011522306606881872446882816252422460826166175555572445841845516940383240777045588418254264795032847629421269353217646731822849537285363188540479334856027644528754906985063269487037871333318244226596546623283541831228631170659092890986870169448171080839666416141210514551709771821308921049642295502502672730831522405562820162457886546395439477415003932486115233712599051949949853071308278934022705431966668420950834937442945901617226790181620946481907359635747053335902124491611716139021991954917077697233501155269287830568414476259419229552423920189523833949712840061694512197966104555862707970320758520727208456117047696674802992919138711997769673095230772914501032441541211326017360266680714757836744003913650839256903741819931326604293184788768841167479234875696641897887762837925615201661612696658538307328205294704734378024782255700430750901316164748090132541151862820149341259059289181677023971942264131708861949864328291043550324287331762264233805152512336168049217663292664354054618093585505005796950421223861981269979407763257668481489822765084837237866994468187073825812488383694958457003198353855491560570976925389828950094644933563458227218742203535279545829597541228148022633130238375489018108808685392347506867964473788906240318401924271899444322326583761300360234226074820172513046818220355957850253803066032395165171634770841363508180222841511417420169758998998091310222021631375445395521735838555839330398343087107233091448563176595902024121980032638012810874495081927513180630626452031525832095291709015643492441195039933320717787977633954134413565678668362116630441634523834909805875513328639778309500347351537092949158546865685149357038472921119356747255848723595644152571181851324563353105758805363376696473693362279240339295229304808567061316904928804228046967374205409492645882508036439107565922523687228852956533802147191980154081390782869554858958929396067698625082499879362261504694728185630617066792507633098957434274589324917075952833590015360811785075826941277203643266735854092629974734957433846349190237419771882469040251564109705215112850003336793025905964694072172791391953691272861149323279136572758869559162178270073009767374503379065243716893828688040908589657436229626722176832177799336390282383551327424936729515115868850448238569159996547518959902269938374723233805352728996324969311999661630928208229745660446630170755563626672955032103387684088561563444554041891056167459236854965516695293542647724858643608390795353933062709289249027951817106874933871663750734822495617790194201993961580560617026378969669059693124423225500486114409331370369664444590468746857387788412239590840460638893862017512959997918126318773418788623470005334141659521127075880782085444803391806016715167747191006981625694539021638061246559396849185686430655579386977340255284821728288955885142388100871403310623212339735274551533255132513972807652061182699183201166650370509734863783280773359962384653748322450379914043777191236090447011065087343776242092647355849980588639045234275093202321129324064627047363554255685790626066547321098327345480944009445576974551521730842860155507550291908191502160486487563652389978597442948052498992458528278608693312231115784999576389766102806007359393264834122592425326711951939239290316933554258281041234325595371866548651057314481109900835250914117504168486855880460156379218938429897003410197441713031424821723555996373663155713935492305339063180070834842285340760155014316517883205375555043048270209711004335143387715412053603292118395445554552360802202197843366812512340784920975346691551385898853248735475959998594600793738048387645405055864035258315802487684350423878664257460043772908996228421342662941303454869526221585968793842608070526514914032996445481967037536182091033376753052247464364395127544390213164515888420246315517649246440069246945280239535298835985227991410433930924030182657558205317796542938910927515678836508352093918931661418339783264910544679682146241725834425003895298543452282039656484871204744201213627260019045341668006558604518415211821939515594049992950072498412803752616295204635375676049578275916889825991444876402635703117374629690628678213964862306301691746943483953735748498489570836170058079389301841671245809481403940387260864324923590735913567787759410210494677283222181726249647810067268614213013874893577463744851524366887959624599399401964007161333449790734459417467810998017934120210493579176807300280251432484490002541101022865537233696951785246369421740536170188490897737791042040518818630999928547867859329394245023442912144173381433576861643834949105996245301758110264557343433107409349026583576964902662395933130345740731516734026028771114021027826736840995223158499134916139261276798654799391254085048308966743069218607744238965913907751663209448486471587187900778736145415035398795226462224393746911287987953272347914122075317772584899588563089176505785321535670821249858148386447601328011927469350871675388554438803285741490305427212827362787684797073953386598732793545880251601575460051135674810344197541335534054125961239041213806820614053045413579780450992886693369515554257609134925843037537004691725745115995774801547923462138264890673199357479771037330890865711568265502916584804709988801434442607590558138463764940794339226597361855182868897367325854278097582637180755169151444783230674907211890768557357440790946522626947236568322671962884539317655095142527924182175391344156864976570139591125034127466002006041448827179427911431567918809538328867530291193453346223258641883512438308577234414481854627400462501261673746732754028872301839268806588758019026241769936192154163799879131600828728228854810425042370524094993401034559551330765822506396345994620110629777968804096066576155203454534334501080225351613702492338615262530777443895836187639583338329819038618270673946337892929944750357684691510893398239551219158170791192895837454758261823059988118901828257373322095458662678550207816101052452780880769322127892012930034081832263023308339152343820040721695528433334334229802379103770962728995750319215245137881588839668742601157338458092131281394509414089012348336148029379082122156256904547792539809787097927239897712669551484140462711643344382875640310756358602664509306938618378177793486354292964359418355637528647119904095859669664442285548123639992760495423697653324680365729632828969901636732005144686525592899649728472923250993082096076868841052210906893970439408226736447435570873378729644218409725406158664731561403258414004960288491145302353091338522030750369099749174193111981855245494698640779537068421989093388954199053195304050786186055087528748232728446874605543290946477091179115386694986934618743235513755879672111482380984034247258028214490615922818669731469971917274531910637290475053433952681261987097545395933937787577108837219432951185346883938686835500770247982397575557534158508425842290866489897797565438429636002675943419788588269128237747522360645361415906851493256845063691722475402938085687428250564643834459288781834081684439095454398291433813191228448639189122603292696273335598222119553824744803934998474347425796085247965219234680362160881063318053927733694777389497703611747051429663395507992216185682640031382982032708436233912340218299114035737262833513217353998990392104779947615753917735106867893874914133984136255484175181510575528112712011883163469353767278623673992311661299600208396831562198183503433218796713845220247227535761052431715656252344898696749573289141217088739896028667761135175053693564795639791825063726196870596365852680428885906977845553058981277137020119684699650687524595700334216530398410184487799969680225331689005343385503872566733840780804169613956111120055810826688689547345473574382174682473574817287949014412542368320806082950460659858727447267665148118504187551653080291852014849446636255373378822736654697287818266058422821504769235230319134454442685391891418280766187127266814149863487614250882248269522647493568435915235020589031912215924811747736400834287618168254055457299624696324068035300349358635599287758502976477380009985779068957442599018913533881150241183463983403021344219184912887982595330933251945795960969500673032005838479748578565260059764312443452112227336476362534132427092198753178831202679203551776883210941918650897073398899173544970906262890587087642047770825757754126172066168248655401293331372838493514822574042960334948453196022283777958842134503537566683839947191738927632665120270034139192851537007947489051786957507349050262562052614683673579962527349329396194902717242317943790363021588622898054529955439725053905807743934936456080002852910304756961404912287411811035486249754651359458329244809437777707536043136805092659525758781668860650876454073893341418601649829286478240196206038332664786920188686163112671907059140646492076214997809604393639493729844470727284438175703826060565877847079015132504319126787865200809663830417405467516709045110454590847550795551861697111851130204534371530448572681641564997635468804486966160727949302873821758671723910014270685188585231562630935004118824407688594201641638912900925408592218445164711833350296252344348115185673977048759823294153651632426427775970750592218900144916099844916756332541288486941643766297607396147282868755252068784753096475617931213655482221072555853266464241328646243459684549243688373842724056194623530433729698600363673379970438544100127207566063871478553221557628057198824957119903762154410314765284484505506702650521496923108029275572679922735380435797536571064476680096680804229502629958985960322506161660633508786550713700900216452110258061090731310433857817302318814807280228375428291322528733672432901702837809581760010864670917118130866058315073129845519028105012089599946038913179139185635634388129777367239067679318495892737134091465815442675855469861605174770312386151230465142076349805600022741233951422244352156134134050161243261556075492480797579599278653110312433632595428809588809090097641682756345226567665901780961544051624066987693080646643028839677661693988984317292521494033109867103610507847265880536561717767546768693382264464568436963492984299248885084651424623605322979567960016375723357464635144600412564709916181507464757992693624092088877866813183200720643933234334531286453109200213519048656619858949945471871626011340403725451472659419620287074312432871959856560995538168744733565277026722832210207097213173903872157946568063427282791386343433258595253420198747261897697899335329744193265791873138865472651381813108905157375665700882931542831726262591565486286964496297244355048619252378631200775196565774923031035251097983394158000930077536112878260226192254275656366374472176480098483613574582008872456826194764995632804297610516344385350896007790092471378492395803767694115685225331323921834238962127895101017261933805342608808529148952941650133873311466659327463097520187449964664206647197647049307543138677605692612777362771862919285222157860241158714353204992795674500372332384579184547960294789147098569245239283704895124928143659571119029334426581501397317793741916693160716270550612919567007034592058857971693048363150986180740871177790520045048136593729078713817417747198469031284587174254082041882505658508155817019002889926959762265488272852497552488262017899834238283049982394093346998251125095613231227005351747923251026627167687925861538107491929597776538845973480055161923315048955766829121087264275815091053068887820462481047941861184293228139234119025956589471186927463415967228857310976600523133122237115248641476039716283714704747114876314361048867933578647612139849351060323475289715193801345813160126965892474991352123884856331496396668353327335087410595818948352644625235738544462993577507217991989787640682676966744829879919218135185073277757193788796567504925892188891613157044065725726821592317299336308581441438075551352901304024634753096753425545809959890983376144451328356774243146711076172093551697963292460884968724217476266176887412584817587793280185236331892326947690422952919421149052614466257131283733998843992911106126661135401519025390592597715330494449149227848851001165406908087637796983722293987153922478909494727808181587597236030208852349850848615324094350348561199566708271837820195778731890992029469185806744471076047331942166137620350101328651846552882684613616335185501919654902940753580445598970726360967652002144739887788709032767814101706254457899019874259074691296826626227288169640220564127765894432301650308254129798138574630604041629675724543122350048544913861409641633993228178044397177708915993069123415840506755487135376335162227929716532333487844111034586336242132130282866220927077487405727386197949810984643486728610732345541511931823581955873518206734002215523801092973255143147420502917342008136532242842980973373493938293019649727576773235973023862266572474482836860309543137087445749830658039720001208001474935062875976225280619083909556496292000853786949072950957076789525605045634944848953770070690953734701235936289302428165588887841764045895835535290248674455913649486864953233629455164853921898084517023169285852270495202975663187257126712372676046325636338784231172039292005740312686301842356580518335478363016730423794759236512752399612963168186359379094585012320268263554525499141910336553700285241282077275886444971572195468308459753668195951411900542297260151486162649175055137723222618364677435574301446374464221417052350576200263243364796619454785178253419133060453303121927207013829723338493826757452726775640204095530222709152738714265563223178731330169066300837791149991308940278788122383373673769068412816905573341930825131558338098765724073522086359141844527540715937379334143723856872331540914925295188970508398920840090834508040008683973658430964399208887668886844891849529598600960947453392830294594480978905169647391186198980811868911584805217948264134283734501733174818448163963196886358039927467194938903574929014505310103284936348996585265191492861597848839615909818713667194932910262952317955040107771258552336297832967554244733040661893913813198350008085284904622192717977613301662413008853351318482391869243959227798131613899927344797357998670246160977208648530727779556611430205054417945232060113297377959083661535269123134838840308984769066382555673574093985205495247546227476286165823419476334055538510390265226994449594772751974691995929980988241780089483984563554265101715587657089121270649599625860183671191622428748338089324354953085869583932681064333888329523404361049251008598954272349684463438446514425603590478984031533697966068385324629783503272156150727478374914671401749299747241444337694313532203878757245488573578616679850718512470265785124601002506955509454940685415919310079408231225450617510765551000906200504659491466942518532763863467305507484990675436677732054632392842703601491987330292494981889508595645905200054332022144788471901557966120893583675757553816432061867907950427810610428507249098533243521492370282607394812565558135519886506538649440413693105794549776448910358395288495304448457683790990394895771719156021883858681762988073564357837165834217392233855439548940884251701339679582066133443297573334999382671195856030384404550541740858953649856080116602984994424740667734015660452775587621121222526666201486104924162834989997096324047194120246246035704494078332718318167598700395035986731096307314000612279869109600192614636138041198344967911500448567417990922685627807406025634430359779100954832593294531925252659606654739823833683624739977415177185498873695835403716381329976224702422575134994064827688582906843424674758512714518611458351444624857698561864589420053271763098594307604071621352436588386650255634890035822198507265397822758617282569712850263422287816696799202334028494343895108092239720123733650861863076548717785378321102080814153082714327110166120872672154960892811673870836508995416248047285869382508731942789182985038742242418916805466281911531136428753964396940159887379423866415279089357393516615106116470772922714254990673935942616135318937469107656191254609034024627086047719873886362845134714329425262190686889987195980510995641701279770401497114307152492185280133909493537871092059374050432263414212722339811232038137762160344682991966761928328852520970965350026454037387323297097710496237564963829234743509541937295228894804445242028075980790861981808365862621638716203862607036154953670781496595146210535564332703189341943715514884903379053717548636770524702191778365808748981923872192935879875291255029794387272350869748128084247988761139186842792235044462769517670018076975677998007255725898817541746200491596380363661761186933601908389452205328658519019866375450998940962623395455325604259989303187712527780030334985666116555241843783920336041540519383427239406810106096092247483579895653572301325090578140400045276866993526334462302494406220563347712296932732790287481372387452004273304205148839063335391571220791026077626289275509897311752042312490044111160552568649310983010054740029851364165209115342710909922499606704813847283734652252414648777698039813892602810699365177358023539004591348718099671579890676962983934371714299072152386381395782219321812459197672088047023023954584960860208065586043455828149622576128690760820551229323491258193415655615727856254523044239793550295864090417060875571670867181398303018082602046168567843020323945259861559328792777882309659367054435212399155996072796392856688953763775570726957989059491288362848392927290225021831420418568023025929886411605492168198711658915632309149046764315334360013762973053615036978906836459560344922534170893544998410941897964366475102772203285811460171403232535952632329027664861814174771280900614304757797294715108502072176501910629633466952644416459243011876435022858072790079146103002644921490713008612712927007685993914512818372694951972509419608521979046871306254048023426037994819079744186150115784750730325562974862881373740993999995883017638789253967810694165773811458948542679873389229992859656147521814614318199772154143362407144314200009959157830034213432848274743822943829919278542304366325502408815678764528947890865122358620669450895955593115679829159010548923855323205672456878505172733428972390413121381694151376089654287798190836214341602565365196671056676307034789107450232735667292405654067785947689837158492759646967625590257158129656109119615096459955487416934664373272973381655310209312544503751211683540110804664250168344515591962150977639344770144775119258878140775130298798564041389427563565378882864976491135516762561788650208097127037197285554999446519852050076874113487756535871097815830349591443561895307985584271641473143599776156992730797146695538067706055262992879380847927380538336033330624549262871111253866341714489243722177688597872795391670053150486201431985211240393198752665346999829359452948304404458760567753263426415489877350653438022822798966556199349539392943356668054122939172944398003103372804311063948731878484148505000537538642151277914014444243231020610084875069300109295493942500038280195641269875127389841667025588847678492351907685413702856646553955425038424417238445601225642873203983539959821437433739976758698931874979076478735577714225373552687374886936073110365284190370151027278908703127285133766757097326676829992402465090969373441652401866986090757798777500181192435672627600044398748239470891821425852190946094569818880603095032981314150821701152617971131421006208068062403117512819386566127973937969482138874495021507085910943592609812941934022649953738675113444058074366619755515698313050509265241045666335534813064777512619578395055464633230234477420052982411579820507896509674714631523873878507585886612501903446168417910211188053443493761636271967997183049924429890997116737457578950315328509201617560252713125997755392102451910021240310523539743311759759266018670807572813071944331966183390879921037889116180837890483495921397602654950758870245152024553719724135560237516082677388339206086652910962520524147870371065090556305407035990423247923076123687052704750268213444514682091745818858136741600423931515070188314600429519290727672263888121826230355224090193240485371144238409302656380603007518319834396459500048674933972648935584696151095427552577386040668895939050738892954778133505348212308815915796844376500317618132718764794493928275574733694932009625118060126662078498778456284080144845230395406686891987765392698927321142724528015976971490254979039539524445506682567710273661865995167637386956741458557868369915811324775758000981927048878194848911939095310535892883984783939887087219720555415107263239281765114526579897612347852723682073906739768800231067013464579362196674661420906386529598216500386354658821740995040973145753750829258625541751057245170601375826610531575610760058043651462129971725724662017441974213751143574107351965675319767622091327726831171910406380397311228417347525320831710490633695151558086120941877606479754543838318648399955899505606091822240563430690589509003773381040662743935388690686755975903169790310289513586610022610408187690412682339565259883518364601214083690312675509445437420278444651246273023876497471603472688700091628053438991076984331242001060538830335014869075503252734749569860672559405737367514938189995110972369901804165839999792793986958613776881473665130536997175209514715281580189092969723278671814674978143327503890485688571537133661490019453029871218924313372621277276319819084795551072508035898391105717245067117205896870893551709665207325794903486780414823265789001006570889173220274453286000392420580554123951910555027235475163734969976689717023924814550960953351150382998434903710740351780217852554871601121219557577317683815926966845415911134267957878336175380941644311518487425307459207903389150142334479829216327074390783710891384206633639690689075995525161713392539609287142359934346380131494322896246329337577250832579039336416706198241358596168940337736165734957381733918012055996665264929359527006447557536032946801419936664246121075666431163897089477318525318520681922611545597822498246941104196453895046730889967426001747465811511467167187989073773110889064365463767907986832927022935019526105618553271683202310159760948345569323581750554491853196642294394163644221224848213482001171376136432710578672780192398312775295399083154843501937797047091044446009446024329063673849554765142834258467466323252079220945335805873081031957723443981793851625418021777178533979544488310780461779455642226089528458407126969033179700709629289079043567539039182028026892801786922030124675891159148665442039288165413973649714581065433612923742560688308804811941072738412043461761898475207242141022964301496476975730892225719438296500127183369704076938000487539517481463151201262041322793450534516734918837829346125052885925077694257528213297582349252022625513213419363405308536270949294074890121859686583531081022114461566513867335508539276097112546116064246181918889202743183231982712792798537482017529024514547843890508487033399901584535192595820765413737832337793515994529393715417787767585173098585358672509661964154210868122409644114979129276729890874065507548195364104054987875276497651994386411441240720772173939183862688887128185828400275347269316736141159825098409178882803582981069824533123813458707709803481957081946705171785943306342544406376862131154287316471592998250065742736696986609956945070489270065912795216534866414247495497276847623282295456585220131981875033670980803182680926096137072197181597494340958422700486925973715046498180614531590676999203299185067475835161584870591206578760710743174912020803147224904022855828873477839423541262792573927765013746846610288020580115562183772367662796347057691418432513421906335961169383931434030271405258271882980796057294642467182356069446677437851532352994709132233979732668431624819757466357241186568648867139883009769398824180578712863100881010159874778424957423180889392322973516392543759304965192509856585006345208858161269309698859477720798676309675854119393143959073923551652858084858315571030710080318602215240928811002633908800119280380196546879907056498247482836679763919453991037045906124929308282200826394876125479701285958435810092480440659355766352264736468967822935686877087315849158602040968698843627161074097281402356561524406978295559781022371096397646374190314509427644682243476966082655496954475812553541525644346678070363682404598215239537040795892355573275044600155140439636146207961816750232289607071686545577738025151820971643798115618703775649411718921578274553948292597500291648488555097492359397977611532848856080933345698445353109455014659825464163568894044613108761826479852954691566403963844577290074142939800231333757082114987231268868918788473134979656298113838303903508729456237040120611236960826970904383102357988237696617349459385509779692581785903497273579028783529800669149622802768305921604604077713779702662305237393414340607750010361706383408003907061312797186517370131604030187111503139226337149480527853537388552343644390809737030762901651839047497267979607666776752315777032622350785585388686412627043411487399244713052749016336043025157541141025054652343011492917911168166493432677063461778770658863780398397772653712503043951289027344046681333113253137106889168477059046234877173914499008231019512547266395070766520444289260919553913285740381593351128433806374565442107286953012219094620016828190534749740167066506796892965002666249419296557492274454594632850345230010652553420798091718128330953163771498528245421468990821149929468673133317163169594547416115428777723800071838506657825292709113661051278140871633888445957435302536948746606581557136756335085930426905530778251513809381064487748718345277447528672722208971042185610583906995343054318172738704465516252351386414179030367806349973928225347008009782264143655701109438970955920900526082160290552434469232263754407633317692707714019507437631824585608603287886766323721040581133943785003268173884505741344095795729337376150924529592433353206502266804012832126782156405070543450044558984896220199905012594999619397846234033502177442073715723307942016321779882862740748298684028924042364999049564570321233323999468446130345018601637974431572559810983607306702512465886838389769598596477790726167800491498909589742886230323898693498228221174907334586023545784550892972611163648281616417332320228660685842561342404166805245619793632603916590662189856740133975831888901935608722407209110530475403312941356990556997021095766077344179105230056796286816321500859850594814090406639388774041884896439916651700642593586306977466125899364141217747152338854427494268228283257424415188958163381959697761299865980700358270676745815394726892746517950443233794187065945551290864037003177497801449225657322099794806650194365094904323828846127074247676234711964929405305310118241235444443228155730225063839548912501238946484362684942267540142224699563803779709506183137576501820552177371214025721624177679797318188520859620279204412149297920906671032144238410005323937628992700302101034795719155069299771590846021842042916004736764557358635196663164271864649444665149133230494193415201750772567245569806626252558949997175419476086869011016466584647733258610514710721925892221017009368351615943745484452845897201338178460118801072550156173444423609560569217583997096609325521296315941029107298018687307310527846429127940336081506732624354026876687329922054055950556912875260772606789087799888751513889407174464676895216839631477708048800996344461282031983223571482498763107483493014737768204612691447164189555717271778941162459473931152560941706845514385987326931102100560436763324077950049914729068127457360723861679505808878987675087181625111387169709564081514442322562239640819184375473453226627239133386484962558585011981996818693992687775075504242162192058724742781273712711682321772424194518869120704188320315255653922883275940790888167792965212865134633590774491793062581493894081163916084780234661289905718533010826001311569788662759635748615644211516190523973122336849397490268738163139273191745502575458388745789475450226313096727676462061315784386298904170955387891477641902267860197839919976316652895730244018525117867293564304524147188390877377338267952348176661524650386001943642376575429243364156708367092137894495977907572804210043327124571857472342194813427385616868862745433492014109464468203939309517631186248644106280919993721065410706027419160750529897179181900937865778976114926129713637336412933785410798399520810385107039534933378064302265758750258153391905598647466207608980242744979194709843813942269747891010729770830297466924464970810169425586773865307602981714284891486825373295771938261098634907667588800276989169103906806617427610737334478196001037980772379798023998107795086222959193391325061354195524148766728829920854906771433878441645998349853871404731726298265915422583843866433702812146521179034016373192307735852540199250078843795116149010690617789903758665428534807002685701170137355598645636181378490023918180996472480627486572613404898469543136697247845883927552807442860604827294546094313170498094627105269215295705248902208647541830830750234178588345592528480078223918937720479958549736907985390233852054205786370409847250816508165755622922559761190038982521908753042523075373375668913983353923519172489759617539886969294425925951105043324525094035129731179585343282685366416000382312572638700243983773052571904897032902455007314995486175041538760090698172135830367610420057888973465552170791620148524063933235345295402603068136567622497956324795063820978705914016835080206968018037621798224053062398985486349490888133801409562568185486000185134779605635204306121412934552310193500100556110684834596148003171158829203918697758446668190724860727983999483014387322796893443501026690499216450355509628630129410102247233965596923675535672229359375261606498649627723993853109709250284783393233607472096077103356822211143753606896692213947785266653030878474660436583440748812934737375924293448989284085607510215302397744483415809640563143415504190799118280071996424527840698068645466951964400590430269076510070926707426515890166069811198273661458634878887888813079749797359423709907360661528358299607803981754133488225810660554133120454211713281099635731316542070061447147279820416063184384384386422051487139359028458997804566987408599226198539238422896380808125242253540519200457613823365811115728732064756636154789554603276539543208516572890502974855980800320984666678715647811867371196202174688091066966039974167270210019913040730532266290129279722233287813286730646305195089229526303230537482714058922278775313078446377450208359613615048974669511785826884259291888568990924543914999315783841409754764608974336516013987720924742987010377314819969195692587011792363152664609395572952118297467648331877471378606297764069674847197098228598831729235466393750303941513536107443892676027213819674089660738341817075153260878298498170353370351415789034047958912889997615547690631019376950157775078982960970111949702270510026293880361434694901200349668321766514707974878938424771815387864745528931643911878396927802519448265038172835211158851107755626847634724254178979171282456996466716274521068461734237649445473350585897333893818473380404875313464971480039537286071541833028618151051977677688241072781767225089673870524929184861994017616531896667609718175131946191578859067806309951515868903670629666682741315386991548875155083344204213389095541021209798908900718098992619002700181855549388193194020274147369663985943569311017366307298031301922308168781568638986355035216215123618727073381419521957885040436352269810534564798861054476636838819870232013168904939849508678023717472637892944775524625859752588593647062648482938042082038071174016675809028674072810583253071904324314519579308268390185965730024115740448847533190919410946017204022002696523521277796775368086522417753827873050211100072548073902023306614930083007232908989663105174077597879231863880953201597385618362006777600260912440070187287097298309554390157822338477477526282154303778759412502578193434236829910648694278404707864890935886254343652172707524357605412984940690285328470822369358535644116584620063304637218583172420997095156929824505239161849923588046088961508935473689196386315282679862968753390345471323757036019600988957623464603498666274966186363748779988572626501690295041293102445707664049516358872901710934802672963487411460093473348041785017573857703361110805940997748423563968250723717446786856706780993874847984804547492650711217974251410998269988427892610434141333091986839815219981482585591555445238458581026845532507852837367374290635137674347842268197056020116749167593469322693797453334918562096552041936622891103977078682228300256751531196243862265609735569948755624607684992111890009190301613149536533307156173125247509585239803994203197605966928865616691061425501245656408673170461815940009693306260035617991944381739867597574013804583753387544919567413715174634494509704908742490197417441415704154596793806329876408290333646317100613234863849162321292437734345121637914528937224096553859725399344736840485292608796608303869260007138564976801500679496957773258672515467686887337563474081266055407447346894159032611367511436044969229565834337776141195817948501703656449556546062944545280821964717620451129654967873289054936579098287443941854139991600952536609127750991583912764939301557599801793872912262535491680283457146982365650780929887222746832096481535787361766695099042278550413355338226238937734157231393570635764555277089056145502963563786867777648350373287114788117366300705582132770315531463827875455362051830684753614510662101393757386617017097037036768968360454477591595163475587206960655821310006545358629583037397615775417584435991075140223672598836559509870400806030609012578943091610247071742429490451390541493530484961494641339639938925171919704298179661178211091344305039169326420740453724979665596309766752091294608915724441209725225191916940161886233974791171688523508264232766902197703810146221655391406529145837840621843167212598429780219191387395676003809187309126486734529129566754519353616734330575139767683035161884294676627102484631437356172524322479320844014515533783278970259721527825307685833475359893248812164530369704771452043659161259783798937525224890517018787622459429325154912980325270608581564678708218181069344427747010177801309191764426981441950349911386939952420410231907861960318252305087104606941770361243698769715668207759708509969316650508085746456175090524399173247225050640415118262352622988231489905170613823303344046674987270695882152908656129971846649866765352328182573154576385310860442335606826095891913668108288679845777134014774049282024018043134212616704849047181486382587264392356549439508892979058691551658624643550980767658135254112246390370125963934064392012253800035101743587806116610748523836213749676768847717538856155065318843502925392009036959103778310420812836779722536200448615066206331687214537927502119903748791071153219496491524073761441764698494045568394260329803457776826200594173041873606002780173015495353263665392891723098634471347775656820928508920608360439439940225045454555456455699677012437764589159394133377065691185116572283744188208073575105755946385613948387827369958573108265164584420467905329492259144863754884932998932296839224067426839286757073275594283337021403085279268403829198010234945190619568283828751801661951513707158609256428587446661303902749375083922489863429738519095875684606954683792235034114758863716338215219342888677437630514103246195164647462625832095019001573320670132398430415831999197757627634142181229199199470414564808101325458112350361669870403072312330421550980333694464910864330639678393216414907590669220938495643981774685069370660294937513328110602828062055219660496672529021048362098876641830539187233279464849145311566661170698327010044122474699573799975011975861881295499908036202331071520376647444254734400323065172900277596949151259148231342756885371689580571772460885641460252872445413965265748311021009832918702438734347060010365035329288077253895016375672381489020522597508539867272350589853893565064385163523477535400119558738334817218974556799281329076511305390773036804487715555991110560808985292807420995421201555945097928636164003657487185657521956053179466927859031818310719407918616183745354620863540411229611688203634491854333551017623286107658561546766066562974567149689209936742845995971620816774232762896553764131045955611307520801716861802771838616324064773536143908271212692144131461369416988869896004272413495397505501167509815158812388019888628904206185281615725522330520532544345005584128228858824643255435647301548811900104886814021581825149389254029428306338213685980275375489974017024154650815119906891973636634151257478587935418276360321094518062086935641810323252179637244246108971077477500950063646646323129044571360980174091911722490107888536633599201815752735006345396658912885931098212305621449517400047102515880586449186448334080388929420356108022554739979280693845842307687294335805183603949094667563031608896420102825276745488501723354223713942435835127861972675554348435043580492549988170005647408546245345518549217057190453391369501675653190283449912644051834052505225879774076550996663132538183781102230525845929293029386040149463766703655533176013451529972667765383688460437868063821451477819619876221861279324547575051584106744746116376334669599586267409291864632036716463561139638487039550423748359007139086045417576701216162855111503317625974159275270219565663671239650125159661906225849167131965359841097832559804396225624025626791956500853644573455874280341671437811958284964601583677497843748353364735163053353136035225707999659224654678031254138343939950640589970225095572730334135132271900518883652008933473406988290660529638623609951094839935072819115208473879365295896448267852738552641467479654254107675665838572914976479417147987806079231538093397922118988578692779051083300681555351977107915875314543850383203872863633068854355057740482651480396807514012270976855903853776989553838631731864627715167779082845166292130656162375756009111369031346006111913059242730494259069021501000243849593246950438481823156080544621898953029291880543731684425981500385923187309928359091389952076414802546768162044791402060025423658245094867209150497162812507388920591670430690197877047495792626552963967248611730982660028452366916931840528355269623007962598421060376466794688361421677297044158676356400508419980776258827046300485163415708817741422755126012994027248280900256634731501623453089830363804018027965859695534056442805184076007235169676809803267262545549745731645922370781458594805754418820688807857556045428901729886551949931367550396658762410269365958989737189223615571547554777487428246882792158399391372847304754943657294581363117300063053095719917837721200795877875455263867432294068114850784905396930931438002616107983423913737032954348733447912663609268996793784405126319043836381942730397391094433711444863806610586966606975387100482591704869481458362473122539892222889544598793980389752969108037439942439211328287060723104098941041349046651693259170802103066656947258348204296069138864796519982094630984057850904173497584762523339553493955496482926159395085979994614526833032388889127807599804111131642024866322656084096387793016080512177243215271752532423554010293982055312138339124734252400208670468902770569923196432358215405507630784044078673885466899645046974937915283697896793760370806281331441093244452042161710039021780986394195318590110137034080758460702098069126809780666992685135876838708514031686974274813880477141095665639195400773957992442259923622174039214937058807231637046235868558580839863623652106822313612729099849393828993510772819784999624210792327065840475144181414006668272640010563620916199548394272736157223005534978673488485279137696152975973864841449406689831190868719240485739821996753537813218491331996007192622806694978746832837679584669663236437213511042775371868761536571332117984010875290847761422752324062185562131285774417561325424093432762881534372267195287699401157767087731617476605175250208735222399999053764007404054205122817771229436399660641224973229684175996931411053557347253227548083157573072998685209110587164532431247742994329442022006821341324817389102332868952526335420234255287013061478485826981792194094815440503292407789416628772328647681265025698517927817690470818368147527549308563519834197112239266651394073651048847836151925461088729029961949144460031574719641122994614044285700288016982377410167689571047951146696144711685790845990118218746140412433271261179291311503532307585340853122611294578547369638934940224917991659433915819780547309520477362933461551718470759262672864001860273334866911575786853221363617165316598634120915861882083421505930925508089131187390353919722049050509603255210336154138598624978527916332333227477293981190193393857668732140840872540303125987646620434506080037065926593691042313845104674113147857699754431419195666004218246310010069006398127618699737141030549138730480603811630154253543168967568584326740695311330471007139817064749721953927548980355134607850359455031483226650699213921257345433856256686747650991423122638267480326337872888815860182070332857617162823550895200238153424920475332567665632884005618476267402791236128601362046920756289498853299115324232955227760275602385011803350842561833724659802599767336024831830279544330182127093214007809845741700918094733874348842088734882900196251257946179227589221320318822678525939684741425541091795546045837586424595983820778001035098230856895183588202743398212521944533286863823118042102017523323729882168260700081465498784399158487654933090768687381340513496524258930244204405740238268238309131433898588769693357704178364433915466139120369467490009241831004633905262477218384630708804180618093118387547687042737951952884452387321912326641231200417367287305003112584821588770811418073394630120371177382748587843022097918410177346016500172342691287250225774899115706945274958958568161137196991600554590355016387456061625099919484547415092216864064204917641467616398933284707537542429352045401606927551465656123775355915840792477789688638379870097820630773999062357703563634557498869731922955130583490719034635908874958681437050286003482263835764375108574635526835076529057810944808311149947075504396942687292759345038587828696683751901421948703581717999822030607447320290963339519447837574074945944490546325285313482282751397827888352735819700798150541487747183036152060342972954476925989507024630082266870873058019311792610910157064691494847029358049392537358514480889928580306839256183132371697417944348365966976673458260950950709063225737105810481173334583691290013967825133127164491488415696484392781517640885897012504585187507405860533158986838142214727744789988647119602869508428549098982822921163803791607887894906216653367917355025546071858392600226593759518811517685027841158401578021413463819079819934159974272445537113537850624649809589595934917980056077993640687510846046182177031656617288806480734748029147127535089785525949934198024202465596113663587931526643532959808479105715828703383563847413661933253958674940398937051822966263599176274990782965275477764071122462537391956110436193976780776006362011001380492292319660739549391004852841418224325944711152002969543292139274554715371292419341956281327851986579557413086247911582415259738102024969986534452106474961559474247446579396541656962343230166632818661492464677537234801194786631952303092701650696166728169108029723444182738610108443505384870762759299029537027813979334392080541400446452828153950876876644443108196075297048070181182528086518062190806572558570400569768969173482337410822670544981417263188756235925238324295369301091408556928915240913872786001565701515634290821048103507748748217731715903132828450883298284325563530685254181303236345765864493021508540060004602159098463368313789835470400191012984255745463633205622549345657230133716308244144553294410971413299808890551757721374169537211581849872702311373782609228782292510957230681135676382434800037711480283766017945634192934856741515303812737634483263458827931798482240547109533092002230501001990932725529667920477073516963773255833712920897020679867803708943933798522620209620412189140976027025178696203194039558353475182883738316423529317757948968322004541144647784019241121021175834443296660521958094131915333236988439147151762732741067886120552588138937018535654712988872329239016773910414847787279585491358082974180013347222234478938977519588261107212661608816969724910874136920706317293818188756817575554915732219302909166889169465092141838427996566620146574263531140784928469100708392849531853028460699964041891373779824099272226177596812142909497011597493881121530907395536948424723336372487381149602730344488529721903973344030022201020948170305842221081723109451235832929900284727661006051356237534810650113268431396299671351162912182857631646449205139579894497225052732921285543466723429737838224345207023407299262468786005589766786557908707259003641742304451454366542522975287295310460995298135786392518486960930378849731557789295084348289458597054147655576454570577388280513736787470479527925693899631928018296306169823938309808218434525405696668245994937678664506817764674016946189046346629262242193243400765884371662379690024740357237277639398642604796050986589466022895087795780867386296748064298429769279778877428172228929861902447609794585271926714043478697216521046125064464676490649607597643206628274506627717395343800061827131178828287370936381113653633647659859420304911396608083778210221970270681798068306102173145122694290665320289764261810760379230837489813733269375702957218911732187478742595640993826989576902037117897612443005423546629774961161452071056702657415109709869077636230117186651899169786593943766949624535689088846542208682724996962924881032921076968325195175219652166863108208835586865507615231937165595867073061536077151763047575897446128296100173379357744037294791746496810358658814993439831485388878119855558891011614728547547597074105536784940985359665788749470994530513968641246491520283565323849207543180809968058121836227148846675186476113668675744743637325560034584877375347311802512268262175811401741826984691776589231600162519749570538718322448129384323259799470290955602500914840191377602162003546143368251070873429743393041625738117855790464536867834052155304628537275919991491696090781289855708880514097184139772568986186464960738459333713624154463688592379355702789041074081970610084773418820376124890728662492816629644766571366141566007835604182199943560783662345530422922146211341116179126800394839955328266315756010077382558568290352308435159672464322370739670461166257707398611165826206946783686046913774520093469850806043937098209889670033042136021322815121304530932590489110861765930396001773783759893873365463080835330454336563971896845675415278183997453831127961105679342585411784942131586079484666445513759105555748522618741605283951276468466858675948745887575401219192294308329726241202146859112030160051585768430513005033269400210894342900935849359370767982118997301891094936213812759525514780905690058225435887499590970529210743983156873247439620168321043255719507765349429216272418510720714156874065362925203592028781831138547097408807516243817489776678282405534743065944679880330035288004996152690296593843055521926198008880059212402589926660875126580991587436588582939756023570894834023817211533047197806682542799155629146350614990233994834518631932712120362271738690344318749702216435256319587152202534408529306119168015515969105655759238420669173563265250356882290707604587593746855034755601216562755203341320531547236079299104277202633925844646074436809684380629745993851487253084183746594703767830084244465838734167104546936134349986564008472636730718615542701966826906616048928605580256676769082196347932961141568764377334910476915862563220644544306491269889263798508941838039930063160462880716134063143256308541520427114964977974559893570594420174170046242117045513092623305681044432049158843411255198895289724948350915048120844335816482698063551132284043001189089597997189051483277126181722922564726118544037564612020786345195401968965684063463742731202434740416343733905879771190910994694580830532481343557277919070624548291981106528482772648959330665107823077384742705038742828288754526310978982832900134426198097156409716688623155629968733733533313701170767830492561679067805806670164872022567867230020181917405525015473662442488753634554532306970061917201564302140419849808705410241960471409942379419225270987007262691072250896800232973222630253904197526047215845842684758175965487110611056954545261214903869583473696490564054936575247228493180886189854521727380795616938774493257975210115723427008919614286070400767608239136220674636660229463969643436641518282799453563219161675995552088742468266317400962857062320668737584689098470997436644243339516646060954452469478948543687162380689142923787785751944964740370023842039137240527804992371080363194057000133632442561804361039459663271129940624226158551639258959736607536461365764642338905922044212942236987693705741265761800648849404639441256423259147780964694664931564445348006800822302539592525071029856511889282928417078505882908740388253067945228474949411907500511536944471913743975843465167693823331111049814054617702145038813519528285665173722492243103753009771682947727767389907098916971724548725073206586444210525258998961726458867037936169971429153325736706867896349312237555345997854790613634853549149621333765707249818403478763263324765111632583148028219262792504678295569537123077422186878979753432565610634064154089512775472517111595850811146428188859652673384198197201411824882692351239246153367802439505618590429083777250286594508881330874248169639518056609507453270328323394436993138181822123544737728613013418385225932951969811209645129526805209528909230734180151506881662866613279265978571816166500566078536609567273296141170902084399592429920955792655083623697162670672435168393870206140197830170472662180004963758181185025477041654288638889250401877657227963941811695095516521844528700521422185070775638256654650945293958189125553689481521065604331547216514178006880151250481262697441204220835868442051432727141455378489153090857486711226076680021285687109321024122025293619365534131719265386332190273915728129990930669364784353254959221524563905628000340341897537675805633126588364938033471170312682178777435146790892116595270271054938097814853554801963157492735180708151406958394454358415637314775195695515780955461295064277408689013675571146087944507835056493836646727195101415008271233337615323729540877870532835714578058320900720017547990474643387442183472261015220463846453742553763718417708040060284986633134772594988817568368560262076476272908595696466904509624195996890014419063027539652678788580742656736510234506089515529669856675174897033215706710037815046388223875111675142208993419570252228663302030391344712798347472547684451726242746852258813686224964880222125781654681745937948871764317896271847191396546708756664167567457479585714550521857538685421791024556055777938604172441381164322366500328520535052781816099239984382576944585523397440526598132709904713149558436415031811541558448468659766191620511881201684630277026353812853080975924345115436144109502435027015882501306234696012340989071204766377752567997458658957688992584873926419100032601437232384376013893183922129436311656903881065368197783640165323971270266425083895586137511158063421008712790961484184740626106205652963202880537618517373096598325911170601254934848719021901861984093910051635653827359316658738061997973206185061823996513907515204365344285170049064862325300961737802471116951526549461007881763717096325705119277004057520086070742221699704672666086456108467359418487367985589850212225393773595939464340538035625351476476000621099929664695490578618535108638658989744504485046462090452488245523258402262682327666386436183664534821677730262602419149904760286300234444508845548292023787255764191178492517721102274028717783381636203160556083286456038304290013423767426343534520913395688662561018924297872526387915489557744887222385854783062784285808857027705735867491611892728071030882068277261012515258562239036810739539532117183163899262545941060458759599395364977280813499758080856625217043942530141129428827356259044108064333394306109758778547011585473284494767207282760032747224274761417246900992528995567766525481314210681273725849973037221019494503971031105426563857606642289544487362117540481402107654017981060075161967677372524595171632379517808420868490629699733698006582275184687867833614177661411427935802215745578212923318264975553563218337422732910862286776587195073834620020613081706833960366278742000652067743640415407602700886619212339008161497197305402825744262035920940859832925674804695279855622070723755071301367908812922595209202845437790393603778252707070230053987129252227411620024070228793638520643219440106836595221668988203448528954470777946155630394707452602549677044743110343580456538286828137347863275752368018079088005508011632882589196565866877556453489969976592539069319918277992939180957610621209158044839947494515975596084184791377415319434880708115632748683127084243320772161266376835489590977724266665598792714103031613891800852767191908278729382371224728300642769464553136009435435602428484221333853438121297587276052722714363815693091187584655246274254712252773397754230740882296140986279471287771614811788070832326565874938899382134193397405926042235642565021721132348637451156597790663461107683214255017138151217734833539309472340251170138237618260829687366739496279015018024072173311263361679802296593547109556560082327110957778041279590064549291827504009047210893739914916293173179876837998693827482043204992722186393211265514275436366158449717597432359760894132417635893877705907890767043448709907809852504939016059622078750327258494317076326550056162329114242937331013466341610088279974603602828024424970221235412405121875571935756844996071965814956289067031312090539322533316899821736350430363929987070093272587248524660548602384990590741872811988971144761204441459756232485672826850569665169994583455778813338373642654550965438297826869367542538955477599260948531521603160511860992769442546802916263000289963545869744129900493880873697219163527168966110924701822151020959791663939399411803363744075026920891993141304793481289842044359235480775209476830561999392161656715480495058772162824745936670794497603240938853211731063788976319488560064214014559520061959109982896710346745011494295991688888437848220763764662071009538525879290576785139694789787638277811324381128270676245587782104853571507018382269701196111198957038821263968645497794334415664026544464072710632521540866916618705900589798823342125002507637563948758529812188389894875471554262741706385555026901309346236975157649274163465017566534323892026751783356924236154209367878357659260221040220368299554138026023788419042864571242246752622800433175354364499343896408658919718467165628359291337816853965636510560390567654775675845482515150352866264137314362096716240821668350780014955677953805418419492751544967034232063275663361007028171419058601405250706967606931209301026614370965285736973526762337417010220256865529984421600017523941860741257001485970689488895530170785534713737537249808960730531164688454910661217918237846398077199966256807111344767478377938478503864075725258904665826132304012353712546229553075434265113210331854586888050312577583119219073621437787815106177707883813337116999440500765412680509447140054756934486803078162888492324172719122527578707602740626031824290775744250335805423934703983945912368427476325378038121077668589315800964437787765992778975828119771483528267046223694994545157399651782572978471045669440111278037203951897975576598325475523437892544943207568854510949528729686375818580285314345889465402937913861054415651580977127901561111373599626081393179865471170485167255462782447476575550814833140713908135778022577353277299101179339869047617136226534159468038824401049892447498833451047400303080451125899882916834798260629166448117797729180189620148717191818857256660600965040558255514797947316419857601067443149144616453771306747458803997625595306835044655605700905103421747263464885518810768870144143886281301064881837016203886450236805089927089322537902940268706665059648980132627605185532073806771540744104668122561580881865345958166244399175965692901897642188613012805366098753600166092965538094155881358282163250766620873136461549573465566598639107562413838614887338612128683217889173982640603092796859946219197582089828693748163263991135069518218803230665908347434605331630677520755191173411018320097008448920632995503033480927972958955433467950495847790767177510641553277427456837266344407650019320647473201765049554805943203869900205044345291349878788234572328132448372202183149439720690771404687980174027973402066476803480463224991280292537327118443572518451256214437841527931969255645063114398293989532551874909190286538109969076229492348107724511286324050600006422421688057877403836541377036681134805023379801728294745451685800106392328879361065879308860444237937111477466689627078175521026487395604868775553149353194193028462398536125832446510965862695403723796417124465563729785322957235759186755150614868716926058908731984897933822171136283817851084662036191784538412666300570207432429866697820291725455004238369292495143543350423238486898584285878373953310687092311137456401814906476025500235372969437382225650264628386267451467121349072006799278530891626954195027935506045973965399683370783050751717030042928095092004013858548122177883787205581589967894548273034877465619328716735733371749299200655996529640466233136193318010215652364898428765397371806717391198058921777133345708801966973375856762176544827154281044648081818424076379571014927047049669989868677589255710171670499259738642230061812357636674835238481750819798436934372882360804909312555266008193626782777352259619691712142927986796173147983827375592140371830901317988298254391005334009901713783176918357409651136494727612255700602260578248613191458724551698279660114120077515304221930732837235552091118550997159104071380484081616263494844682466776619643610439574570836747056535018770364735373901159561006202356420572418313038848978702815102410966667954890577703935988419899108389827060159469066649399933742608595759607024654072297444305856901150280287201193915873398168918466267277306377664820308845713161458303703458895199388728624205106902101990985203952027295987522098212895271809660898480275165279494453989187484940973764253489952628011315901559657384573329174765129218177033044276417782158535592150640319720562402331729317527461502710620600212152613401615833507917943735293918387676083020970441359330404721318673512369248952026643434831117421051605544497795252824584859809264180783278216851471143787659717423018115387509334384286251438193264394480481130266565556318252326907929844519739633652017478075876965566158533992502050819352881144538867994295386813416323280136338933330020712933635531932552571819768783196847302241187963695635461848576057934349645318192649459893869116312845700153429945521203016368170552245772510519547388150630538661613702521347062921759769607883166818774308817992015102373288871867388508481886530754489226830217399449925522938983431486507895507487972528883741845860677692404411227339214696893080822131092680644866864077031350299376074614108247935554302049291735974620494654210716670211087228516226896739020225282510322500641774747708554894865135286200622496363854048150167941936931540155940911198382924240464937468649561179153751817910619886603224637439669745519811293043259645124287843608541144239525953547040057551063620828469920650232256338770974024045669628278334138145711697359923719210582873027130269386479909536047825698967300968916063679962599246070954385501659274678620571652414419167255317875709828593630424141032163905815412664138504999525113941997221226178770317415372183523604659263211294112297867608992057723971722609991486086127256845472841272510146934775355117382700376556527292005659337547683906741396102034789089626660061810659061239720538800620754669548200963039182271666424499833487654220070343270719276543650127722221989267931752531881695278005802329432987771939880568834505902512228897586050637014016776111904634842762748198192608630490222011886074800555007570420417326580251376937029568207723766418329408482376139591683818626132006813839173042395251958599942286430457459381908046126167686569949903290125832914781295119362122381059799758704696888580545184268814325321914811457964539934644273837801710678777968040582937995195253188589539104197673891711820858636052658797302376284926788972225208209798996473720414506048066556644957058784366565265831081358369035202793334091261947095897012587437044743166224074006599986726046538063377571270895010337386275824032230384111907608509245018860355246563978239016472997635353070127953162378301767024693884497495146124644521464410165573971628280364203153523718377878446565159566737952557299225148218275518451506081380514405184049433590741768444310389921102619326316650597439181534412313662884676831095425308546764536374348208352971749237193718831905295967780018985626131202462912188932387013981818873636257287751916478661810176270983845886329468224340472805775938181788271920803688669420596290203893470672807795470023365718063052991227187181198357601335143778575915604763987904634722072295090915642462237738280870307216446742843823706187896796138082627089712823391448855326436812175949202497864135583171984081201504347011359762104694306696732500737037907922927032817220381750726508933104268250563510655806086447721389816722213346696544201886433978135287914783532394861972847783259942551188359736465860811306980551422944355125781594561905840516254935060445790177757381463468891484943491970697464744342555720316945387282958311444451922293411938794231960269046275352678631781560736420655191967928909021249864392835747812419637648563414248336812589678290825331626020389237838578093911592776969844737958164640493895256089907432880778170562569354599779097188593237363335715742860215998119444656778453525562395259941396649415528018419672289732491353505932276318890410944494879568002116188100541805045523242231142037672319092783400581808713231927306721586887520897126912966246215533168068998718449085288452200267041129149354320995868971007215911934199983043021919512892528314100445107216459021464717100608001327144802260627690599758649373303983603680282881187227756892012999743731906901584003275878471310988605207657215052493267038870775093357854851810669662257631194205801143413670567711538335448162105911145940885291468934498600832145991209342831020699082201380675686830922990068368281222328276070879487814355839454206071711617221446403672606889160128207230755376515092852294272018197744256773219000303182498946041234238833147001645894706259640198602321653362504114335714286949545578481660293047689157295754985051608493964567131196007504001072550016285380290582297653829294702589447207285532012727506029027684585003803840587320176510727885594390625661422785711228970008232531364645653777208324989512831915280738384555003168727617374153160711967008309402438642610278731092025254660097640757801255527925272239621814959972626798163792922046146816390752779561035872738250226360926579746342436912666261850637344107383518488232434425657874924822828017469270558587581640871118467314805686365790759887020572489312428667504776446311983658981607927934431746080478754663692173444938139105005321579089321021913347965287723902223290181137127858868449410062439732584762699424099674034924923011862878788859909709011370578343996160747565281138194469354422243141539231798530514596615815680880294547428319755529290501780916158515181569612953556398468835322110333602167692988591974737686826321810577161269551869175526713533126392963533635382583918975536324343779752356712422424679555227941349652383054462805946674455934343333460916273485400259795069016826549292563264646433599276700022514678607613251133639924934105511598129316071238495082713099907018392494730693144399192563941069072023128944732138686427687539340838901183227458012823394825258106099660468052486634918769723185471933891460861964100431309161838362939063424938815627447990256221653746587326169780220289375176993470949583903644823549530274717744051099635289141353207025693006806433630917994070795767529706426017513114618429452763071011716034994904057418237077668923167691234267486354519112731844601379170935293946268698619151351676135564909492270885774070190259554782785053107382118459619248094565227543219044231302918665850405557392145190450612081107468841125786937066852251783784529009915500876302194723363053258576290176644667306990199190055644412546104887986384496567807060860142201129715573186557297082661462551395254587551947553907251849864013963870553834414909518078652327488686508351435487500756911450876066956444613599632254118302767090473913271346919360996222530859637648291198801856394878768034193809277993311249214125859728415413617123900661795289678245598633876790389511354682898304104563400752380142997468406858235133728808983589368734093010559970514524585136646822147117392607497228600959323867393776711571888093876673439014777553980878995302516598030151294042734048563470694550911839729039631352137930589708992195384913258788233018238391849840915037415836868327880480828375724234200074758748986725747964190507705649767997223027423289306429751880926432488174415541902933865546226104649956928360810094133828115800509600735154055694805660443109254082425509005418099420281522098075281091535632192921938589954063958914714839745993545695751173832891307927709791540482464480729182789934570906154698885197833235877889758617679006101558763681708827669936904071713689577192651542606879798142429074878611564619085121550484018374665319971728721469135235867817836106604538863438398586646247442890302385446309426097382208615104404996798149749134023558067696099411943096992800740302139434714139459723022878459415234492190259474482718472160274205450509891178842766845466627338869008613871186267466754081940542787253185326288031385093072344448781352294382778829830242878956152181457322774615340313947277547518298264251763358169678175181496998336814447329021913543343610835023001052619307524438827590161774976028702580408230420478273236860388498626248415347272020997523618305124859606370266835204721078975309500304790380091474452660465793101840703922370939370558530792774191208381582237671448930641368164115041484117659794586881991593246020781329718643410487546112942428167479027344585639938341030149486770785297532997806663651683994026973096538051045600662265460034954622193764152689425631078743797491748367934219928742395962989369170665843401855341847788727416726095591938804263257899733543296552438865325903419091905878832863586556550402334250417764273799823381212425329522471633246936384944350219785357200890348851141910842227853260082372868438755844153396854430616259173278490914118339209923737551239863852612945624448853740217446619579284912737492671137049789013861594497120975496083040536770365704328286164990743511371925160373301662327471492748042727844931878224103143902854168498441333138955236316634763292917252551395414622831865641367923816281490589487248725575947842826903458824346971218102005505820301427403507751886219914569311991968997599206442471607902969616117101711223990796978847531573295969856089488071305543340876346432755153685146954868617809265121457596079305702348626145376593714102459078027075251963771552251750081622576506255374887587252124736509869740138879662170451825719387344636646275052922836847868943527706542242233729135095161777321994642113360853681635961290916745560300652919937330220196176252514335815404135223659397057212447369372527992124975416802872525716832248160361051291157175055849453835414310356332221689944637211092236037198345222899059552471304683983663882180208117890314070652599742105030491205285243426465997214324449086257061998062126036690549424204296245215054411304047989342486887591066506701220686422672493911131289789660554617418426358214868243254877977600383193245090278062677298774245732225965699303699875613548525017565654394373567034899871455498256249391274287123855766544791631727783667737564615692990895733015844461508297997914788346446513590494947687075707589714676013893081696147410556125264879502879065512603992931667943220463409615673081298100902015259054598022501733841618913778465714083325975192934494080572939086213608343098796938025276255018371249014492945570466074225124232035128436871473816146580772687223115606032429415930676183851664813498643763812367294089796133880276790228226566846755331369834962508621240000143681975023176027840270992825658135154267578095837796608652900800363380931471201128638191106554080940799175211611802978540089927961287188840732249932511686943836203411220207921201274273982646862529642722129423226287578280558923654073083022829148119811958126594862652348211362364767333272035677905622717053175263972720850154377867412980018832564724173992889768577223520508221164657243318026063575373717816172879249925499715656315772526303825639839134097869684416037837878394922229415156723761889966871270807995202106200481656178786168455367816272877193374799178382235650612405897132198482060816977267379980620655650258412624893064662023023413580131058746863132683131291241346330852071268211598260431485711116234013302023894715503331419059968531507225646271402870122424412216358719189092849937492161244656752633304171251720345157779589428650055269962308322920185240096037690754043449729845410595629801953163341013565247913418608961547802752185192583040312861162589899934937476128272844333520558547024396792203286885394935642538657081170706709522654708862237564348888671887795152027238334108001282169928840917797225928311724518903411699040583305105641904198069841254202286801242143501112034188405339257295157906018480585977726292834875108118602689633136861648698949865804759236657888581338800614346502142577966663854606129844595250184295907957426814557256611751748663190073090539290983283009272587028253331152333024509520662627153887192840343710592041293792429328560179309204889616514705228754773889128932614215102834070088662608409302484104677634329788312112262410176839308213731213603739899359746713360287890599452374501258418471344145066169804849569085439378756259383119132559307093879953269880485860849172612094388168416772259245860399580368302782080754426362456409308347323083799141729432299050907204969915726090177720118553516865836443026844981262145756623887172480065477411214994056415728037524309704417168896762652053082989379342578064055537259791289246413990767933756474441292159162260534047341124357643592656520376205256852290324610858593687215483258229135698894686770797126415268322212220089993239838840593998869531365771214286749101742328836717659018379371675396500217136337280688110061522051390107174831836259013575900228837773801027880876528589162944933456545104224478450109738911060554219177926997609006704433348971474350687218922664179125715036284044529962663512301797967438178364960224970835906571707651713074819425845150331562643797281019810610537741060580534876148127825188691637093073041708315527855035457681312125313777074244197895397003631884521113453321212012183997334369876022638263847100485413039503289142816650731169779366106665747330469368933283656931245553547658887225896526683364129358631067607454843061478596987740642252634040683594017299830039478496048270342033308172222448207428493622084642077427020651535405440075990901377620888188130438814822908553507592377151000413127550805302223965303307425651725127155508828913158050763088673635821527958155646205094681074851334669688823495591752545911135479397357802712600451452681111500697663344419375003327788247248183536683832282692582723641065348121854303770443643963962936285396033674013045500915267389741675546360645795400057433247542671060998293867953665862039791687657747510272547200283948476025419209402733066583903192318454253902604309814450283083997437392331443824212997471499705722317203385026697350936026000074859240653428544927625905442705695020137441702746089568407613804488009984716116382396844090505688474800712747663122236070459488002402731910676648413859652711531187178979235686349777190746096556073423602462667355336375932351825046293403900368812504343053310644717647082283083414855816504156535146634171811125738466990024127131348141864172315191557366183759426750150821941136937496932852389712952408061078599666846918987839133204317426098277525396515700030610399254829630805152142990272890527989610762003561986809768126980931530363798790864026655469156403710273396240202626320309262579871912564526568874711044593430668612254127966380099930550620974563503256661776421573110329680996399997463368795086425755684732221760398081819997182984090626396861807774484064289615261843498054923915761747225128307866459645760294260584645233616177279204920503549560910506909840400516974925823429954013037743076529843514419373314337358945974310780481612867587063828420894344232753292854237191109275645603094992009201802357624359145559797092042599121222566069026788174789617845983641551379902959330117056835594092430924069793588374620096367100541802605104294422386510440588852509816573553492337294877336472717799733925740733585532980068465272961320900485104301944003312627466215464100278195537493469181271086983460419309266205456073291252839703818924902491034610098020944494076223004720010031234307110364902983344482828449484270088850231426337587750754657634201485557327223889731950378084269261370098093829501397252690342968303798758932121814612924072691980644983698785811479935869727398420312895095831087300538784508680958919977890371220989623517406642597843081778951122848086470697098445338339821203820830660632176020233241253012870572046930804292778552940379151464998232234348438183563859156904784825252533836053520507715721907917065599665890384285422038215039145939314169969549273422772760845575387672809579041292419416474993517327390650401045128075717421273629174703137195201345568014965915348348710465896539812626094129011240157454863104415773831529610322894878825698905243940355331301439562366912580801477224154217325176565851622597263458005355786625163448755895776957753680001465394736119509064104799803523830676002186964275679535052889193289904641095946608744554311322040922401647639154646310575672262972292186815561684610674947496780080349478667267373674526632584149321768091414083800068214409223496242310545374655989118642467692547733848534260507362798424010086668167707027110430033075872166724648574616567974876025876580579608912717743706553828671067272283098450612694191700118950199969839267409455862894378363176579687500924024860819764993600816883278065730866378644355083314058594823050742908152728020944346050078408827909047532357588041927414648925306794003592296363898504983568726104502276734204657910691004922894978216278676017156395045905481255468368831157613652636634244471402120696933083589057154241560325287306135418764431888371146580567002663661945417471920188634876537493793115637108761761177208296235026330724737653627053389227174365056741055575803690861849040174383035407561640431175774135628139026642423925185048878336387730863197302056454899940950511946967314468240337528853600492625030845527279701769851174806699269169050587000411012874159399225992959371053038781772705766525503319360178751815583496172626229043128661602309053535077571911416188472908084522243210210802406425580731241958187363208581207173033098276687387025951149117932209520417425498167050962533226914918552334597676732360807999496075089219824986646075609179552228583523248325316899766674439202646890817424332991262238443782284433701802995648836759708433650788539970214703049900969687617793642498059648384329185092612135511325643214911156466135777391252652270361666754585252297466992428671127862905810169933950730378057271198344942120549993694111187569610498997507784197539597197030104561686241616424539976450065617868022147895478097422174244646264642597507544633813545904610069827276473169175026098090494239333670045037546290363420133043308437780494141250947129163188745879052426362652748615560892666381037663141964075317800359108592993360643153724991738352436318471551889197727443056675989310744859111712018678474210231625059467281145725592904817711549315698435079929636558568943325174314708033628707470219865989095986766996989038729033769013185095528190874937999208399257893514203723087143603573127074104959530166694474973979019748101240819649734672322364767007908206451297904478666291550074788138576417364250171154631385095863020816528700366920159094980944799437144644624835106699470132637045528482615034488148786350310010042707469262878724769890285817705540985626360587412239375087536748014418062297916443386705507056776772416444152470707655048589640119819760458787207546113382118940351404011589921323278211572931979211435837454008497659411329477083090257268077153864701918833990753853364578104425780592642375803424663978501636902426167410424270793511937119877507066116175147753129728211449371531310633617137093479040283515463099744247798116699306087100788092484406129794832562103911725175835408821152680777847913478009063817057828058408590082799511261140540483296042831415276063944714059259414457806838340940943729815878793178918852748727120664869716129522428217823734218181566037365947305786954932342984991461263953594260185596963106098210600423199927188169038098939726409420695430673770364025182084478988928085316691041127176831218720939950061154611631220292106823773064036159877128780022184975059590827042782239966937933988657066873356546990854087553782574668910948557475494974750947659883714116681626781183174991048444566191848549888360907256357721784199852094404440245070173848964727133767418955436728867706196117641100675564971142707502489384901907570946909953177587503712387803149496535807866128733264846865764938908722264014870157548947988970787998089135584158662706809731773255404555134229500720048401772564487602527137104153335454116421555306584203999606877064605667458975376825325385283413986770229398407899415427861589215598343407170532264651521244623157479413920948145653399821531157655202911166298315818416534932776810572357647712874222029613591047375478981407573293144946263916697171427395817418321635640557698289725007939019332284541871060060334165137772669494993935977430620875580712826853350089485228902808929763162960256777758837475618380686923067479127302437103392560354121010494727027696319485286608170183448760144600778739290793275511607207592682569168949800332856201943402159134867358792320737995406524729660278843028087557919463269299845167469224971916894577959088001570624886355319788770842899116875881090589554010228809368811873507584699487315902454412803490959709979241984610652083625433706093247760618659185496590752162969239463822464756066306824651592557066921907991697087132954762848998210394226900826118131277641571622229538537095236246108983647207609296975663932885759092800039395233681069599441930547987962149064545465569778768651575781701783455486502257288369140571202583609732090287855693443705530947094881780671567280062407753792443896449795088505049302503399144378974256097811262010673298050505505800147537325626665169301944897531893431251638744775739618749742453114834240202906999923810595106809876583020632410015622918723566487416229581340229767254999635319052173513613028459342379081008349251147498750886224676225169052508095947096782705545505511634631699484176143218671418819530186687115478771032486809428366040304154088499387270507319770258951222591743572731762154394273555557770778286789418692590048995228858954337687762720032868964185911592227865250107979488348983425364309384403500350475451374829589691415112937839668807538612401509261117733752727087452859777942110100143792390100913529683766091041139644950548954593067094646819533887574313506437917476287944527788880029138303166979135927031365130639826153006757228670801829340714901944022087619606847264246300592845039648181026255077097183528941755823638228007581700645993485160114491071113217754458095449405270210290133614850844678070868548590998831566695240154736442894781109671270417784759430131590374709223713629334348440849095011819717422603044403875531381156171196381294917970029500101368991966451899442692207779860890806588796116358893677571807641340007349820876441887316363917709153087900975952490461221373423407959570708673532497843804188896581730726628940637678170106895197305773171576025880196886583977962380901123777808563142123698630021837657240690628063756903046107399273627861803880820901644683371274340968057647030491516081401570713932654693354522426018128736655344290260815082628774370901519341423613934317188957297267842409466498371250292447254622184688765793485634775646041908468250330295695381855513773355445870104887988316020267964315066617189610038610060820020172825957669104757818797770734257188714756779730035097633308843753962428810969244475643607249940162228931075226911547602033961721929541068216135746572059388259734299167766749859559670555335590712851191263075539263442237746267607874781659302989006996680528276036788636581055980051361657822757303124108915495344614385386380996586762415073310686101007833463812576472366864783067423228013941268458585090281664258632693486995497797898742759001406189411865335035127992972133781277093351449877341570990689362361020823723700799313003157016166094430943642679489898573797520500162541206166598160153232680346515643049908673702370225968004872853221834931799941114034073805845442739889195602275759292311258336322318046498432618863106555929083573724464525456208844181802747631918486889476423236111588744602234716536662520986974502849886887798709560616278819758245107588141328890615760461934769513698885082735811289041640152920902450749997221944871200703319071234912085207480314251941109503897373133007391578772742520726403414268156530643551168886406292089215721095993517159398521440269220030226731785908834492503083255155100524710092523082948274647508806853286565248412451896035443999522295217929948961742338563848655593339335128228322879885969513716224466729623258127946832695398020577045670469994423645198577543201517953940795342894282953193651156079429793789700818010591215376378141572108859538107715749624540566850055750307027804474342070881877239515562534874470421077249362091258215767396432873008168323216309099442065131013903622283237349370908011547818788107154915172860482813840133010419575905694959913660710348664285531641513913847258539166877370297084552143086776495094361078625843002448835788631020200519842254003246333176357688846848882795699587787784777798464562474679482129342718398802083484856124454216617919378285331708222156962339077936024593480436927250811912163406686615052782260851477439262738210475110538206939423865110415734807293776327222600410322449190228336650059907742353034539053482272045292873106601119166631158184702256035291050127744576314449535154860015890527488927804651652859024439364489894402433374143428138848789348929411152741829135115573915577088806427567075407500780591674073102447788481538775382396087097579006197900498496927561697916680507154493019531778590101261351975623877098455429808070292611253290144026905180316661642536970834396904324615828326438510175074215825348062219323939378727636666535001425906376575584804282285363570628039072436961585677534361377531260072010918518727081384855877319627601083978237065854049495067986087332100952330809224932464985303187597062919198114266247472985111184854580502188277858216549018905916200241824822995457210877940137284572106966233289742154159153721348910980936126076246688690244608086338665654523902954191005867017168464838135701144604093939005855634887339986455059118497854140684002112376544943763093943730893006203397482509208994256444149573720328936119331372497717424820196246643638800772687200476193493020816511540559449806513201820097171628865915426238027038306816541201027601727480347415207764223786936351794701998775001614994241486429284036826246700048556859994198341040166100669076104579033819069199438031841863871120892764999539483327024641080501251296679805514839454887667420406142974964035226920494756887928442734161088875956608802714206445938220812395844786511459844380825936735199297889957827495298151493077236519907023156364335412069220137702843451101828607363713675657932600587886045798936081993773302415750938813199470919361165844838244104768816573910377070043037531138374295910812285400850647567617490847537777106583165078207858944853003246632258352516178815293532964079156822543482797149472839616923876607084383933661579160208548805346146506787260414074894943940792728623148127197540964994768279321992802652094774519202920100287565531525512073477987530438168077246477106319875975052949957266773395653604265332218183546432018864164224269659574111163851965240187633687244148425499518878158567801407104799223003997174437887822583112899610988895789930423559463012085481193207919405794974975653074754453501724658554461121492747594456909059562823088151288560912153916620731448544313526734924784394617161895303650013621658519582341535990485965463710211464480450144235116564223707835386110389039629963598849752376239920077612495442998988097432776903238544170977789433402004146787013659543339499793544994694372332381853968224866302147043537381993330455905006718686146440970597154428727614182196669876652813021160790333053568981658637736289070464192157914315635485569376483477452580385758381030394883119455023458656152776540086187821312041891548262545111254170562792834689710319581798937580925545690577038465429317394315546504046893097428744710598208945169875725366942005855674283629882882553542434478449516787329819470396002511869977989622151557199250917743495860644743983029064088731329063317097366797881464072397294838961898268699400616624190051253918270324143628237721276341386594463179638917080844429424014778696534720755272186567535215094254459361611805175861809783798784305555769293687469775680551247181970185803903734491737550501254389815849998194750418731765538722575128676004370495834549234891534241198000256894564124996761813611670033087715751729978254640014006804926659648638944593067639790597286420113327671470946116952228910981183699200300239698554996473582984177859459188682674047805637831596388849813806519619345159934241935457918122598156089090684756053555055583160775265698079645056312965566370562506747270674854851254742769338280677585154590093408595298181830585160800705511281226232363906873078184858526332485930278294995859642057042511371472788694095161230575225168685129175568198489475486950550136920056114033143574258770409084500277071421322688755607645401573582804022452867419431667075141070463275252296087955118437989894723258481285517054637226048038437071021512229809083314540773542446024566820925898526920980271003093560322875616768526184989824544241346213408486863978298781163107115227365151349869682399195805369270876327493826676932482890040229848423056025126615119597026847699457194270985135496035550334225036986074110621141053049945376433418442435156419434282335048856536716010930843308484086011815479087261020213345934841833908300230381607943983182684447364535119835424825628906721760659561076683665865215565919321260046645519898230417653422610192002271070221260206595502867365128413948553991715980670089236878471180229285517125264284165416337823011912629225677133023208205668146806403286632784344503380797394710349731743081111979464736405038968245001505034843295086269695385718580098166655812192658381164231791691894481069901410991994892646779964501250032416194453865957286035591593073804872452523565009606696754551024904238079245348818803205200207017584531825071466629214655080370419798299003327396203620464040958660004733669839919521024950200496536880327713741388055197645158392654376909561464997812295237199984328075207378948875243764736208802965507985306684057174951121626886968472065619066127189921928984421883618141437000952102877886784024897583517483469745550843567292329425530894728028246917407685714889502442525664032201943489845331755201809418091590371978665704947488742285044263518663245522527399731449142373088979057484673486387818845071472805420236408465355621899029809263516288638665691056771705862732550369128954298664654060786904259943854314766036293480763629990298368258188403569727559198656432341900761225573638281086340272664389961601208185127092547925629909200496708452704725651064391534657471218325494621852143872369745238950632835364492626029064478450842499487954258261189702080605691922127391277571272911893484087286533741232147043664737895506598960317427076347371080938302020435075791302566806805969536050542909072381956930254248596617247852315055231948504876831743209633990075901156312205602218583642043175618722176463361664672934150906311322800001940727483539275296922156941851859171294980503496475780962115417955053402399598293971408446790013849308608818837274769852082678353850592430272398898149032952653273717906572930921717193499892202581599109360177330231802400056495547552438102220413468648586817702039761422726806517860348660983463823493253795036898038342939995145295272464535133762580387265536733645557933464929081964572279484662416623680717754040350869322544178461400208789013932339622743693680600104452904010989617108626487185479227056375765702086943495476736565717345708083420520188313727748695226609419524698973199997928350937509066025808017635247823742131450578425618606071825052828570120829625490423280613771556936103049817393722344392006127270745426804472615494118427378591833332180239891125770569857964520885209337432671798754704657154168354318654532015442464933988903617673597530452596317405734960066492963708165358627012699915734415811255169968469937849766673367889646688165747163924753544918505725957060382980839769233358608890828499808878429389240811246414556643797046140030719101905493609916855058419511437387444655069862851324705412500471354199690600298483831846456687317496129945112762264056505409718337494595242347620050249184266103361572367082647119626336894986100875742467275754872831218242596493661402747105495770082398372362123337744424278778569878383819813062629159204187166690111927423644191088098255537449344303895002923364472426057947355564371265074122669150897074025967524644137846363802037755505540201333611813814987140348509921517878502436425358712260880427760802604866908731862199781060099928671337061797073741954559632195288418492347581297605907295695911758000221367745444228600489809960982357681558683820246322219799127489622970687186582102823395787410360355153362216693131054603241523549484731677706544200732559052869243162937505897751956963394883005862827254798392631629250091218616621024241205141682848375604528529783143974490554899611646911869831887990873937705163412331286984576433371213950598519250572709630369073652922879947519541863578042874230815314209561222406388730593964855559831981159056629424772210465720956567416686713103763794485033576554183954225556547991965267344062649688397067346615752841400547786040531787503143897917337513127193727250915749269349894085854648397410683610028767699007441462932181182761439235364373388536063013340339331024584005265918774760728041306017410265015802488299558095041800413041406472211478909760441839971960824467445432517802079110656648377558952136804414719684625624505132932842465323705176281378895602467953774261946776681763903696310303416421647498740449703917426121912164248546982385759345801392810659869750048664950993960158837404626221143891762793716351832690435631394536176928397432161391037790747073781073471945149290451184320040394483277425798439506087272536104642318285009232456251920232875099050335667906882967972964288478098499998219976676419148925590902023098143718202954543193698221281251825793316920372311111750223804137918001645936877644150774577638337911190324830269034433989351749538256385195035600043740089057562956025962822683756655739923034711728984438964314450756114716199371192236536788636917134295272919457096954828067571342617999132035317921351060026869567350123092829186073606293032704525558723675393452468330027265855688100931741850809850457547291493495649536062651276482095832135609837136495099026601455874246581126615072603423751885900015718521831119596973253462112711493297694330935109942185859467490459332002213801876678921936536931838827881664708184160961713737591056198556482367812902091114982571747913466920559731777278185486440020940032876615289133117307858613661454941537605210666993249871368511230682225373014001525470529399763805279337243119738363116480364267589187906566886331810471242877511364035171607077933281343322295103576283826292014803779495696609668477769503770824858665058910190066010059004966946866031764552572935743079660815738521387052372100789164332474272029921850502525474910752741833071886994602151284357586149646561985755442760304358204315445113582961076876225326104041828073804964065344162282355523616816937253017355397423862046869825361138310032754412899099362745892091602768778270110250260182224506939371008200381143981391447751453779103433976360175963753148972508757839358867323048344620519053676909281579733014466725654686565970905860933508686289637176407494056033977077997074416206275695744501166844656396043688000509505881781059507135229196780048600405236948914986921062643373011633024379819204289374048552974061026568968541135547241446759811664771048130440945092202651269159993929198807161264365602861040556116166284579975847533129767878403604010506081218961738861809103267648365973255037286023744587564364168006945457125722143967974270134883878505591587878888944977131747386596322719519749561442838056323044812021144973645428017889507778489858863748542753070871809900042939365137568986218280537255138289223315066978407928871966711989856050134610477879671805375530240210422695699918386203628469510510980213785606974350863689892895650730356089567626849158581131071149751203841405092914407251403881253616090223577978835107521998884990910134058225218351196146822778056177463664393327177373692371783912761571585975190583647627781409895294813363223813235104440286195852916449613796499432856165983759823857461870609744953478211130622884159497569668971460117454170338453365476092954403157481037438924601888539454878617809944581619142350534921095924366082681957170941208424707799533696652775164471740617999821884480194988710406045928347470047815414285725135991651846676907425214482731669372961122399804160304923624034194359886853843515073341477713209837297667596338605173682032431950737339725543028476401426496588520907820997874769278557055258769410366390841305812679004106405386915927154572466031386428608886067931269256204813659677148172798824027159772803612527934208660567262711179097200158614683906117568540159349265580368379071043945721635406852248942100531726904777157310668975256754875351391341536468910788465238465034187657284377842041865921197580984508701251596365454964892853607129533068697037068651089975744365805288765086592939550758133670770839526706476051139832669626172335330931973666118921652121958897074067083953356181359264480699997557014586489814964143678446375236754951695727754181985643815376789372228907047033478744022853849433565032963825324945445397473915107379822283892413821854926150185652638127751797128965724337878096780406781527401509932576130486661767439938191317432291628015918461784224665743400233523487381356670564803906322767885483327073731600568920263139403116398901949347537150668902042015954227009663690736462052832874722206434675578476672913580457014670175438330844334677355667798934047288744436082722358839225509025032079151095582787129932265922794362904287913114001830524467490676592848959050449066596298569673474843073469106107753222104794839338544541969530697124531507818280561123623180308526985596724153554485600352695583868856588421337945876000714812908432711498908959389307755276430816881179510323513862666753050932562094065734648533517589237452663493133195670431254081455893025647774126049346052284763188367043325075215361394262974758246194123356758577949821543134598894617647490253164643552278323464062146753032903056272552531000889012726809292844689197082339754937196259110029450442704115928608942642465527358488862528919340176829016357706534954696079673523217420600341303620639758658328727131813061595387058841325664587038630056173623501702286813140855099472140990809600095670773200890741503405228986443929677208971927678520476468081889204426829976554429796042354191923348211620293263042496636548902154451787748623941587838036579685132312762506030157489846569703471240381787927399499910116071462174274911740184438144633655963323236556156153842238991075429190626103576461980642015346398746906142433079144320467214438932302019499753406357161857956514893433715796799486638617594206451691422945848263152591216310949442470801284886588258702495016722345339589390758547766389695183871373805435527053464317923263734292762018718336982545856219686307505880447478753617359317158310693065149419900755423438184611567910631994475185032311922641380119462476726787923711099949740121805591184940937399570801393930220295005102681725522017647204056272094827906308769887562442011308505862047913737322313586350117289932377399270781120217332190673080674983684118970571219788508708925328475298353218635257501534243594516453431496755619995477760762362485365531358896292790929759095044173792127488408958019176287136656283132589918340653804000025456452806313444078534551290310451379873174041922001944988238133495312240424793532912054578668628424293590841025506314357659676339712845275378338684588661796773585682497459279512973877788593385115659319492932508188712007114309151990883821284108190055952533451807738919748557647365211788046433137731450233109250184017118301377236638556865127190726270607210667623887680387110510062817714761190464472207477165767740961844492262299456168626437164273583322128191867361397953398010094986881957234123525326478709049509955828528245878669299078512349478465091495925584490764537735443944590101618051289995294149568730002434592390298480576651241240883102176612310409494265798743975919342573284052348985235389773558457450066758201677055352146820314365857592613448372580507840427860308756158822090484388650054734697702518432533436851141388937841972564459786982766334713684661517135318108329911160189049753945952088790678369158930156496249618880765719037630669758769157123381287958520188360699107286619353749734665892504863826703469147358239387811775109432827080547183933202451442214140398966710387013820284558941800661519357518232265786253386168239120329619945766328750836428122495105575705605761437625852875876608657063640634947449601764701161639738767429578821403206124675734671717910777098885706644382374346349588445872266885987040159792252406131543231484434551080099800478640990768344004952580288749525036655961274528778810493354010222770312880900439793152145779114204219340450643518491474615795899777076235262243522805218205455632575022841568365737429180804325199849413054855260445448469967731420714056935960154884026611802707110113570039049580520100773852744860181746385029803170346766895604233371541711969083585825334042432842896615983392501227943244534051600991449770489703258138889710820507404200534207853539086881333897287029683687221645535692846878842808722299687245681948502696488076782373610878739388291475046965722163066418632095503672253592501314188693214896282686024535897525009716692843929951442573453465764923579390759070124529924271757789227249777190501833201686787907484503927334822990533121622005379095035643558636730204293862181333240681328621358081740538074037078704107869329749141927614049554519163244854158159449123233070740657446861218148860287618208133945553842045356972515530507852624886885300499977486033988012298717732290304386761940808038040964085631218674942714412631608976306910778550513060912901222573019860113498113534720240258604275984992836303418067147796485041708297954809132478612149101074849147913610323043064306893323820098696394202408024245715791766080177573298290692053621209007051226813862996243562843443023133729869042193272919980905288166054269262206045080612093145170708441939861958015737493747534379898824374841398197773004585483907159810814029570017613353219612579510202881764222447899959041115208010355286181349419927876120065874176021748767481289199457222657460319426263900207302178243885431074421055687798227623762098591438917506444221363207281945427580190552949288936824979268604455688286252232811938936502212459095851063714484448738519762142357014697550890103243680976469865492051782431825520397946154759447951087422993235139053614039166927804742702201193555310435095935638909066634196736654574363125909824391434536471281394214319209292625468118660841292502287359801994110502133369827465813265255611738846233555365855764010084946685607902249342919105933119197107794515118702588389779864725222066716854558547935379526596769146303855036967121926119551069314715557881927770313739326289258517381590320741216702925843258529072614402418299767282098825415394854511551712630086066464103119549725322722308134936736242956926815143021876777401860583417887098970302731785950586722402303370356416732637764787825782942124585005446178131948332026006429426480723402268894946936068545048797498001083790291937887962035909696932785246719453504356809924521765931993795060236284864899448051821297839649343088188216052355126297467672201822363609926695566923119556387596589215209310739864763086116527280413181358929246732613774074195007468552163033333990075631174457445669014305228470431002280950970530079654440032462100977042734988317518922384536018186304843215555019559060722127897019725255059808112721647666660785009367012760680295810077498622409383334400972439400336643078273170485378981416041117114721050406278066268572242980363651949598515642781238762695479884855204477869985668425911097819148946585367707915380691501653800035711771264652691160777558249569090174428058706497808380540744308683213000727709637435496434445137301759177839533603291681553624085680708893953139257124102623249014813941253176004745756481786359276401838107032383362036340677539485368760135623125673616923149807642748856350437335351795420532924370853295700695347887221110626426313572772488901289176579770032173267409666638964377918023415713360332402395250641028450106024775276662032956305394677870498404580331119516524869392485028913828030557804882493259351973121082178937426037710976924388315847486253344413662270668766975176168881031501904469823492332114832543422166014692013492016363310090828425444043328993540474945937585118428205928393382391275757294472347180515482753261179198026475234646142060898754506869039311836475858465163994039947030786262901778916639164248519144823729962081047550395031544598746804033595624265416171276708271863124843158668912588400645694480538676770834702336532242787076079878625626117973919919557367604573240343667658638433109943279473299415197426350579514164098191045495063579077046992447927698200229734163585931695255426169475414107951701163705270004441527761064038107374370177816556939441594542432086588813931657766026870437627078026178010814078522202794449052871461917170720037399592501138773222318120460857487117766377135648084586186640408553986426318169327317230045969883614919447584565391719900113057668066146635724915274707900443311119892835865328176557373887686717658722362452346723161608252896552095104180550214784705052876299273665065775964366837828782291278420197854915564769843593524458400048107585116757614060281244446451921662114260763241706023732125620249078630830410765199236108523423203885881428731148545059399603461984937641334386930297158452690992951387502678895984397232737206877862338689169072888717044806398751580025454672156876591199802172363791679706736101108926713210072945844274182337661972061644279428238313586881662790864018173038465340819333935998291187248803773513483666900770280267872479959269663674707170650674081099451950440504156194130546136538566662994261409250606850944176134706904273237419113559029321509875893369508969396802846176617153894467392186102655072399744368962641289253926736212832341453837444742155231925442714951110644103789317292197319573764105679548486119685402582978269970162038505251304843570083624468806804871300871181588890203104661649918684233902569725107271630828034471803709746236106652731943304407915686208085036055839923874067194597726748674428131419606573501149800895161666095254544445396323550312322939248620734340388711419640579964103972325160569733920207699548801062193899159135720327247160492934705799879785832782920735752583221573322174110608797243621647825700335326820392316562167595975579235841368077873899718681398054774000046089596899475405555733617958561091832768336856415918077966468274107514943305088907054204275828698698060276280391885408949998592898830711874816747113168327921422315976627249606385247928921130951589451617051673424006495814759644631112269882453462225554118676137689703087796786320449882557704782021230459786925207738476309898183858426370264983628311417089465712571973290965046602580808664714662914165830578813804254652853659752793406919646604356384952141652829049881823312690388864072599523439462979961145564540975577649799856586288425262701269523772806191190237126038292288604995802328080648171633971921597130601379458754286430096581170215930407084670820608317768164789570205937204823907374254485450281805477378172828772103665139909585498138247073000615041299194634937022022571365204700694687654944251918245565456183098781131383109697939953517227962278610139379715975548485839489902435182053382462302486467115384070828825605084557144134733338447701466869581696214122412889890704163143170604120417523585696124585834940025968913687386713723446704101755342204278615368021971730324918132513449977636472917428089532222217436426698358881722028752170528994196428710309740951650070581074652559886755768187207965824086502722822433959249763112989689356026904865677769360290683456902414883387742477100331156791854842367158430282372150788124403158429662642969602654260612765010986038726715319196000592944172321649847669818864260904725703662899422054801933547587673073762808247000994722543790284579063642077693191135969539649428138441933437438791655727041724437695861114232291709912996709866407196612816430362801295423394805695026450719667596711799892950419891051088043203589151705061626687001618017129663979495004900940027421547879475573172525563664345467722919159284792380807992181321502537141189015328651639107378435456357095318493243973110133574488036728854711786222660116513195276337808511467361368730864159144025195863214088229966352440381135020197066151462880655174781998034975494199140300302476973401409884972024666110805937247197730982673831236619231794268073295980949480690083361782526765514834320925936821525352496846921100050170518272811484683199445233913077104082015897462527085917277755337845809618225018104743916430116738239293022226362835972789488632003536167721655704062243621089682913408333217831900572328340689516915887996493310827773027990208212345728728447727541185810121227384596152345523931826135779408924822369278188118163611078067574230730665940193036509406130738912569888777840435797965141807116946506906150331127059051337257636342237179674569268430790614693169927577440767331085608818596955589103986609499798087249359126947513701720592738820556106153293204825277473146936315503895324507511652255416422994240087695678445095324734530702037414879722699680381053625067469113568144281130802867081846522607635730165999942713005443111162757659210486602933019276223330654109128860810750032544646257114727876640631888849378346561811801812791994224404150308985236904950979307010361038138700700300018066379535004175024620282841081657913195852729251556528626801775188631560433685963157127868096930507425907171625378230451119956479170899434665521250410319708489902364730973151187781302076815838332921358634539637268248539771194758804389291725764849038585469940603468599505274302655082281000158353482072304978066329247983786949017151623861755253171114674989748664752164843379119259340877172356842632401299920142065424176676808851934226659405084323743388980228458638641357985893842654832561820761418714371788051340420179714939251281844722998518294775357113736874310339013324402210120108706972838114373498530967964759020454824439948967050359909299415033314266553153967313853662582487518386050657410316151055003165864582154506264803679203510922274026789801444810994728761110931451137940109378227810996321106727045590147953034513931836947500948487974129535053430692499212246621403262274373521845093578732881122077453552718288015224090986692968133358509302045505116752788850072958834150823104508562737547588702866164892958417311085665817198968942694502821159660368535116348782491115885640759060800267771684345130181924717885026226421099709824739553743462836836007694809744381698618417595259397390645095809880464809632032072745328605514397886098836909430029868755991606728534822858092385698237692018795189503960618152445044921795504690541390477553757616028230615466641078280919890107321841632816455342410891850513246697961397114866233188519655583221793625972065227004179100338126490040166525984701088157639368787505401409679913807087799528933939387535329498513602002687020870420703265695601154977910944939703110420428236444960999653345090104806845160188458212516827143553859280669884880562261513395675395536008060011780321066194779596633388973914244617010282988760255995588226238976428429905037719331830999375995436039500441730114056393680245268442114203140984780933972846005770188983638458341142104719113188616733467873602826456189027225993670795650168377544944142640627382847231844646941033793702639927873486803508206235014434195191205729034360797212612311893636539690064935664295674001157240867925863888184055747457874689039453747202822269644977900604199536402126786309107435587080342275210221917970735543509675113089439954112469417737816348721923322975651989240283805514375794374343134735380119503659862555719995793414649441707051518821098297275104619275022184052273655686647270881094302878068256567968594273134480106728381120679786141573801234503967875389622011655933397575759502601643690435281749533280331329560005560254494262804760362289734331670396199940778154346926237413834346015871097314100582833618779091663795250323982840977611220571309191795476637242877574054432469032322828064641451353862779459991072856146390835831151838570660935574430727669433350336766731368238519170408284191138752783989632767612901323096696290952314818509745432137554861406559245112900990969953376955315700802010326727877427946783519785062110954267728345444161368485755834888812594251447550881652155778473002986747533933539091558377501636531216753032248389004959641675804123210303393869665753553781841922296047093807992537418185913350625561852730157232242210715248285645353329228445212138098287606239846584253232642324021259781586920424261288643327904259488965348595207003863143505198106262978561328117286039495054877881895690598668771460119411386846230959802609785719289999535877714618354076134046404471734178002066122283255475535003946543204881141622010656278597224379448958543024778073675090564143798119311568669961327711195628890113933743234197798791417876566231218827941706553148050079726011397672679293129378897055599887368844581420379067554448665262547648665973701293040992751351048983085217599392822136120913761127999367567475341112070275831565299417650949910289268755186240959051782569931113009358261803259619501714883179052737121082982685195294278757489374896937445166535227928037933130581035343194549873548143673902058769328700547847055433867402865676950603143542462805485228886186266225184741534002494816691983236904260806123948153813205092844197420650005153128936528026355180958928318918917598729383341884528938812664655321822925841697618596777739409777010354002593944208319675518118937031047223925426636309970741655525037186851238154625589908861426681551792474420772444183236720478240756592499580739392688057480522195041020275179575299732782498576825070633206581186737054924868040607554943758504149712918110413734093248967978160344217319644022209497605428333414844479161116866254482038844444322177144313900870282778609621585931480545578060270916998512077264502541073653986200831184382696797212580909411317868731816910219899359559270813267723444679535817418706922383749143959182967850062337612607463284675288269829693142945180475068116031147375071249131062619907603242532053715410237468549234854103184752482567317138127764237024257341476884789368809651632256395644805894876448694061355411730757966503416596103426482729140285769301845285218332703525058191093654019953930348354417131859667325968628234408976484316863302876445904480884458451460486252603933128204823588623827990966944078160733839327825618327482759738751473107560224470661436892348642346610124542526446948243590709178388454728159087686859435889293465592380532234450077015370946607304348809664742338196544566485572904301699986013750650965913141160873978509347217058659292757525396024213016990734042450029611595536416639365939728701967266498030691696716304470421613651899794802195979936386836915247483389014218955200912723062172129864856984274004377567217373283947832325218167561202069277346214416514868008910417420878799428678816413268340018521622756430830486503889645259854870368676305373213296480833847977532139513350564461405201128832243262486900707810834713295518940853316218126873237397691357226534176085897095198199278364208793981043157095267591291920452150416986831758049918910696315923708766883183650225119191956524210469539852121416359217702500959923883605956936709369948739181143843315046856881713381576048894276926217582392769073414535846569188355715652765803460217920779069771221219804622252166319184507174762760800455410020411879301260643832602479297956035596941169697258021905238719822683594246698435161130404287888367289548890681397308998018591982308835894140580211137146502209946777473452691690274497067396893986328834614437652429527368716642797544776844551887351719741327460230602309701728188361269729208501789398860914478277243137074528627732407321733740845145584870189939691777466700840241602794520802407451101013947694570287243956305085412273442091361342465656975363916923633871886029347510804873433336079076492158702490810625247279512782647747883974361547455423884306616067428200195556902022098762151896173527469344959005698715462162953873699723028210059671201388274117213647848038311557782539115563188537912033738851493999596338291389443181449537695910214130505904902375139878560105252609651162515002495505146648645759566690818443683514744753564903581126382640333317408884287771422344693252088570394596577027955440483645045618006798495275396847198975812369854826848409779324195526939243401793060973240913445832663260535976019816365031666956726998045954292056369098875054270051516163588666403172466984177889312877231309706714661076979832612030756241146224913706620832175218623110615430591721252736534539282323549629493644367981966240144954566005106096596308954751717461324086806337774402602122434132374305313279343884926469529910393456321857468920870295091854595189178876586657178892040083709787819821563121326319925324320105792906552854669754097023438424188959633093910248156673224411882085934800671131526247380439048281301461409726508850351908970047603133979315923093109177347719040725950153226784544695748796262922650625963286477841586986340705874549726742640838740205805383209924345061975060629430191544552322126715237726609271700994911224387000116057584740870443291241225695418532742855077487822241632467675198974987199634396962198211404878565663765358709921307690688413705772716496500520032240049630705038480096807888146001554385122983670608046990493695282942116268842503644407973315197323561139323514369832642250364628164054530391995326159989979335574632369366718026275683159771340607490142863228425517630559140162547078356532524723489047963448897648755034090056650955688777998406280084648433023956848688798953807173526670543480398246405217509686011854752683665632630967373597767995945866262935140900689923308966624545776279709047311656056532140553090295908388367126447053801444196551786161301484031785498131897100884296648700050426247588769535024682877918921118985612063296934432053281982307249759490863599254190315989565673657057836227557588987715692141126832805573472233963790371006947253420354532746008064063589584977786528425785290136461062490394150633486619074056905652515624525271415054105698434955172400268197052029363680943024755286624865680529982031231039776965299114243778282009653213627976893819870790437552914549021170500994326775161161859066637152488207676981919726237231475813835865985030988678527244484612206123856736012959725587728265787743619277165240587447015418209652141271094315866645792637647207119412386079979898673947981714095501314532210891572203939612706451791510150380313888435995870832219206600527329236205222805649508710031248678712386337870111096888289519100012365082151780052189381698911057882239460638293959279659662965709060510438772819513790650413063042762473431830798375609735595461999304293768785132964337174866682798056602712090138488603587137924397030645716832162656490818441966163942813569976222851494369317381376146272839949576070497986023925312902290140810763282927675396900802932574323384274482529839867516439590107310717613275527945091570694197971666030224820058516096701555513851303274171003721113297581385701457954526618931941033580945661224156780160255808698592336235544795710031900982751314743962925342389373541817907937163945010851387259911592502855028284021618434325150195887690664599328237799400097965753843174436581992655735519957651102866727826704417188652887343499249702863174299112002993503507984986063034464520953672580895446512304273566779994599788979812916186373786470726027589171166512185449695060352597224005133007962382059525030536001185545433243821001410248929489882254334527318976670231455318907774703538620345259012708781983074304853055123807747867225542094959373273090993033020042011262566469837487764987747426031079860405384601315089598482723996954234987606155678721746185858383938400680394027598609363137096652719897140745081817413883836811808823759614985672493069812954991114261372563839452582415821120203083544632391036387082247393992571473153133437406981604062506275951659259793862236329328229333680009439623751968922988491911772848399515742329427631558915729728019954994221654665913888614342512497829020455764710311896250535834713482736005811961091696581535813627244134953463579551702535334710385135594869122919370995576191367279593410214680042877505554911699656813256146623274492165893639740955684316696933362038264158235670790927142342107055125238621808206792784230295667583963601419141473134857743739800628599375903860763563273762091018792108334922042914243643807209796907315093262929193456563789360107322847388789228439875206129818816519622778014761548458720385704347830603670103114351091160908523727430159857520772090549632512444944772763712047428495062890685087339261172154672207273483087829909166556478373034311897642263491760451094393474274500668020620948935838199716229091408986114830209425291211431661085003764274778128916925931791477744106138797434813051900992261329817643812386970543279308058430990028194775164383797965710235034173063014411501924227657623562135296718991441087702355270479875511235665556780393861023435867935379931582836772124131350669675099584436175829986269031662141517690926730569483439242472972275661890664117107707762592555820918524626439778892133931325018384652017970440692314418169524059455343195161471990669383304151617162738160161273388134132605604024745959344579104761982969772876992373021522547903455239850584949456830118884823075495224698094710579641294754634521236202209839504598542299589378192481349880419303513611010884994277212425218890944650058835685826719657285982422829874058233672767268615940312829442809064531939319972411186729696616888873069879332430623082740968284107715027281503630767857777228487249583922770850036800430909404382420525086757767594440813310874302974339435239727427102010134900797866566552939160290769514315523680373901734325635324843888887833352557469231260559232824870341326278325547007111525558505777848493939455624457140866551544641583471918097976602232992579333104890961761691880807184019448172754040522434008337962702859313771447706824046893163431694826167622328693415520948949729955831164334771472597802276440475482446586242138681815514253278054362045619407537711740029502423804491603779820836558684625301517266794626835880392180665618521870719522230581307375620927681410169233881601346055884825021467986512138382281955366477911511966753424290378437947416772491604757949091379494668269626728801232078510123092159742633223224103623286615645826226895154107572087127927648372222730028117741217540679063974468473591771724976800277739102818262479880374537271596839335406209114430715229378445809690888655618524716875882462118630910555666532299827488810463917470460582367029152091341668566900708310668269996532730965438485014957511309254050062165712200023785611051076361822082754559350376660214219753843023623393382090154190808415090585057575029107975821573428802899727690009844526000224247308345789253181161597328665265366752746145078094688571857196713267415186482638578416858588383808663875982531016496125578531947997932900029070300116010053704014671450055310016423602548008266506831294134204604239252201907256548086187423203390656591237509427487468492542307200829875202708892480121752048254779679102435648404561478592221224648279452866594111179328939866365009345658601956417898345546470752708668557329033649647295061924613861852315221651343245773159065037244946421215180714820642356685858894272594437625021985418382168425371126701997700596051855915423117806456774629988800977837414004270051939243503891604209413652879369757764815348184478522571802616408187041413654176137425837335228726729822234451122265840706389735451373725470200095385126648922439759954478213559264507478379615131598223192497948331447539433452985009486542781730508199245541658764527163340023801151871215797825067015134528566668581732196898962922813500421158033357835468302319242314931549439217320775423723929592881684782878324195469900629361500884396613464993417029979855606044454150184205136462731757578718619849917569884912407707952781120272944830637880676169767250401940506676052832646270441724541648362595961304866469388512671880302661550958503255535286865494841826935178676124105418095334304657593040207173427305793529761913551202499653248947914605638171857463417464842780390235651443614218966312949453642881350185176732520940959265363231799033184502154174435617707254072592146621354755491874814374875113869443634176873776114575347613691975105924759907555681138544074649154727749487791557192282546430024927881495056859815864355108235082406964753042753310671149615352190294334096500681949966480890758524791586177377470776506796626904891506306126237120749451979987102799299274693286423295339176919720593277053139924629563448494970473117625779104589860888867052003910381315878783827775915254944980473288436667163750453872717993796064586867217434590501834288870327373413517970851684048569665008885013040270799381405265547051670537128118155370735496543542515857815385516418376243777982984796553245332880571062480949702711565145899445933694792470330003884415236426740500217476962515678672931410755024882447856611515464918992786974247649799481371425613752359242670533711305656651052729467174323210992417692608868775803045166729897862243256427374799544145998949537444802653342970310776898087843687062918449319796271363494233595581360763739033774306065459371372878499344732416692989637507616856431976641204730808490626326507474526762167177115922425066398367476057981817506715631628137919966784084355576469964689293589989862140053029095848499619680424070354312508615840487277329914129545957019471695805606254261213392575858813786998582844506064512400700462453256480057585787905986792993953432324286477057730847429855481917646358142395240516097072868128843259051397970641420143716706205154084424645944370120760292427992604099339306844889546902937292334452356667405014072270082275084805951526447414998273404309275513237076861327190706845077151163987691072916781121065495797797061847688902876475491541442114304031122498491271014879249018648563900114449888988932261622714239627829237430343528973552991375714086117700206061558954773357073007503406546969108291898116079242049837820003333015386966422768494459940541025146319755048204415035109460859660872879729004263707551364666042289767156206990949323497518028882058265037665826500177961620317421806916559485652721698081362911939040168304369587578375716726188511859146165152419983135588490608807880019487781999482646977516593837563365109092108777487721137133574570633424710831180070756346062133424853866837166283264693620808205167313146713493129482201833442786632603733998677240815827228408639236114290125166505737512051012816098053377971106096604574044562238524835077108265162037117915086151046344990096749728034009454415808060205100168012820336981432852341486565815666499907943164511516479487121167112411182733447889529031030117278641304182335014388202740686362734627225060406959372643727533513512068297579413048832414745553258643185467149003066541689442753390835953590171609565863740319264836487324261561812902464163695616175701834904074151127734279748331157578581630158241539164829526807821927902334091190551734132938926379473566719035154427652944908465219013035240207607921201868745623705281861021253227847930131821852709182521438627647958739630086033401310841171146507104665034240181848975876523518650218350177208895641842648600344360134416608013346755702933115371468944928220058602676159196917096578705395167616722331313543106890343018683642338181845298407073072371279446797169656615913927911891273490794600442159838309688275634277338655088330754063420452206397856705590774403205339695388273255046296141117550121493990078498940180722897280952388453240913296828485303631790733219046601782968967805534713013808235173358583627412828017231785355991675080769171539498845751021865831944614383698838756388894887651055776485476313044364327343349884937842373698701180287972675082203203025973925765876596860838588838498400620496928412872409330048705629023064570814633456650152108185782229115826021840082699840570571329456835552205808384717324786458074800078488544987455270840018286169032067220504095625708278392458154612423933318023062821979574426997863562400926522794162655608580128666048513127318618262435121963960817720062652410453357114829820832627361540376663396742086259865285158490106396483775217059169077778268035791988669510487512914330761782183065156394476193551110065319122179758697684670539703100251678344602354551433713320307309419743348098453405297759774409837168871902605415449151683809033971577953999247194545963481893204699811465079117804756258172448922791083739677631353578951657666890192681294133327705500048329892688700684364686168070462589764141811122681182064334980858618507197620028074963500746020592078892869514796363282715216696619047968155659173053767506835893984370291572246644758427235443711634249842547870535012275779841127021973039643815355733746606177682743442317465124573109384226582224766849683871654055565657917760846163799018476480507235103188446973837909698339535621790859915036050087649848679201877269444185978583207027406779469739332177970195739237764259598367020633873875574365763978449245359733937124388023511093060824698358133993948114728126128691104149095829377218263212664675287983330252655936185051674431052897450346897601551355307426245723920167038851687327885691603300668258554309691794298749388274817189554087305480812456216686973977937235504546613386835494444658538233757057851792296407393093759327473938102543112535948238714928368626191616824303030982060139209585802437649393807437522702053959920424293032764045080575360502609015863947779123388740281053696504362050886270779707906908124466726136783452800410184572664996608999997189178745264452971701135500778560149521281520253306441244702300315266726358028226753454337007384833369898212693226887392333818586817830543358276339354293210153532299919527090791245421810729483899376214914700395653589478239740040457432791166829225679121425099775246724092657925080002938097150122086658161177988676822491552116258792661189330794196984343692994666059017756407657290509435580956266031857612283992304965537400945839642040302796200783642564988471580543076837021911004502810304589857569315704374679911089812177229143974625744173583970614335741929772308776295315625810788743839621717473368959127879090105874062720113648755312960724740098348659532086640641021486928296728778215550875536451764619589820414981309327703847702127503787332131715902171810839410719172469804995072100369547007786065329410761505291203080437228733750408847247570763376313793173289582391841385099691484266678372440206301505941264650337840734474783504756335769871805686766353770959265675786875116484802783190678579302413880547877046378206610244908045413689972401427384113775699465437248378971329899321163884058116632810865917809549869018253020143792869373544989201145532255444521175200521416607850056240014008553937254742108773252262842044417725791860181997505548246792419277084216295232150756539399990832393766726417328447209992483216302225065269318970183762091719989785160387259306829841003661070999118280671721982910093396017967164320059202788089132978692665587499934897067407288017569054583073524961502943761745014692471164712896626249989836693644384448320179665033647392584521829727214959145496469117480320607288527710296718393342700042369850328534734518286796209467141149946935108425781639661617316997069665375353445602482910664984578304348774459117272872512020036707306200475147592875534367781449421225474829940339255388543599099000720363560410789474416061482585114182395947147531019605602022635004346420819562313463883636754043265218463297161013956683395480184845852979173521646601793676738054134042969344702189702112952075613822641682182840524249904415328186555443897794550156070240260714906245323688743531242726553306048345984388666317321188345633922578993620002032015469605369420730603576373989559472142920338015328369069756377881950036147157754195719463093702914001264627923459637680937768697324337842726191733443639308067015420628098641036781204934145470376156116053329772993573466360588816363794886972629837657917107255815490273159384040365204372960326833568117460419476956557156650794916303471698141025945143606417742161243880134994917465834549769081292341919207934570729759114446599629810848123284614332011488375276589106959493354092630453774747382015243715947239203418449322810317391543893460974899319656846204203515100442782243313973161480029574728964155940355090221763253304711908604078828579891221497644009894563682001513291943255405452546418540064575290166733817898009034654347306640100312939024541071816556840592466087424989972310114831534102449270451206770903240837673638003711130511615499779133582759711461593960905168125583111291848698764248975259485675234033065248973138660237359971449296598385104867050474597806047015839534734021165313568738464682925815434653294894277967750494599589999547688213230140465250738134022092133026442106427434934740347899589756286058674882520054843738252550294809368958769835199358620977359132991796000716465160182511014986451900455152497542038637394028602248268421035618432961027764070406336503719355247486895393623293350512429809083477213012139332235805165768723075540392572948252605721619069411957701099257926607903804630972473162193506112231554768752460461983147622287185554182109304148103508209821817304695058528616927126402606663210193747777951926948228317685113125870936431923510789425189703327658739600398372598138502237790139516562561719895634411322485156944592375366678073902553676459774100864217940098785884929094814698199804673725878400205911619695371932406047812165962446485696851938698454515289589021821467315870688055956419516220137511744779343106720947662163657172974867429858759093747406140292257234455089565108500939791182375601377119790960196831467832318453394860346596614450346268391603762271628270390435447623114008828523714805561637654134491180394098718510941206435234701664767552633888631892388756545120408942745553031893396605154993875097932189001354336795515229850856482885208970636207139220146827913322648514453640645717183857872338136251001286415736132520832001501721411003209060634410337547215612352464889743397725483988903674803419913366698797606132627809078240444461081500962889196689289740326978273916364148174641908632268218291330712236120232228663966032725396236381712533282761453368093328329051820134765445370311905516631543428773308835003322201588873543685540140913724569362411429761362551026609777264682395769234518602266236063895515049357668923167083540949003936266557807848686177631730665743219280430333359849614701222640515708997669275114062698125901294456178023519803480130613757504618046419813057514139441171033156006929166094596710757489336948185196829436647597484229524700314377757722706900448396750138939563873630914885898485167214017350583605760740961722143770162662311362270234950176866676489973779140614387249897516515050915939747041851518808299283899472397788706198907324249449489782190982971256184368095410195614428601264093179839527375449463111145850303062795373989142624561313613269020544323802003898417559643913715714198714760321066428937768070248083318177953366625825962097011439409625489904953464105557299940192823281611695016388360750485699552872156009055052871986627982891684365993471990483903749250695666760678297211267270071607935884717981143332199905352194585463768737106754607866684313320406127834568580203116680209879394656547615013263938289480726049568424351347700040889236912436463744753124839031532407607611943226016869695944124115641043390436634410118944610225572030519341517213452923228529275469614364970854092676271293764171892282832679853120742552898608887837394666755494541686577474237054582708986918481656798990802881284895947494984034922500378570273885547882495984487624786201490094145664837613789197520204101077241771691110303887076356898319210068062788586817430281400317567631773742295005295769360326293330922770856649346766566613993876586400275055834613484481871151693564083699637407070663101709890839735112866595232384827875399046795948084222920073096093688553328601257994623354250406229671233546520751885652825557119581964287204879749822261435111801271843265699222886406208519781483560280552999067167950215977622358923692866100244792120738060507246963136267493331778851563186552412413626946922890096337873281788523537698475815277517559081702485540635830710326105518022030257081255385107211688147741232553108796764758810984372315413606227171015401398301628214151313801636382077425019067361212780481673256710717240391280015592779548488334697381153002580632478286415210048479221044027945163636845916541189777025805780244877239769328766836799843625528423088241018518515995612506457254393925673742487729112775067176726998464949542564284363406130623364053956842913479829929781061761471354130028734515989560143192783902951437903415284223947435878017667297520284369964299302918017089783052360690993820642451053696543749781355899049764867002223044635666303551308372319853993917004624948194845877199739077461395142515822576392915926761411678105587837357464924865539145625534717622372098411491330973181345112274586759162650006317891208995141794506548023983388052407560462599969724121476696847415645847936684940039237075803588821175788577508257189836803524827824815946141261204132929960669647322786681622640822963373419685341844644198591521986598753745452882300724339508494111356708197627224731025795109452961744885813408420723210500754343011565180487772228335014915242561706698217561504506669455312478989034332636376547259010285188402467793236250974039466701301644126437409180903101529792300117122009400861283534249101012595293508575697341006029241096126802015365203507746650414280227034839632241162406327603443832827421642831977701769655289431387680203485630090434783494968237098678636837761378358905188186011396421325426775241592922724708444200416208217198148634811523997367487223441214288944750379664048771118793911664913189053328806727576345382996235088201406961514183047353705226912013655030873778195534686661154634639794724324723897337862961960880954847378146894358523392104007641123407989436080450607449930419822333663507435159021382951566852078294576370620883657025147468114280158607337999001207293676962341560151080009386633283028220608379892097350316876511712296740888098433022553355607165175600931719878175519729241572663360656966139304845206087951910161916115748331941143381654157164822903108460796540273032232145845446548169954043603264754118729153357827142561326219945039626100592041811342019233744992675510530176276581475143693163920017962156169250192186127186219057947915858401915199014501992634330050337881041842935000839610904739205907160414763315220012383147696038325737987314545869639545283979740576974534668639275814384650108888596450008596150108887312006941426184276692741015198666115311253735596830854842465621263778911505133217445427354861877064431832821926759220663601259217262992079856690239768799345941589534892304659777829036434041149175928888123684310701746977577419031934101637752277566552981242410855257210849303653818345325820032084644554081669940752367383517262461561287885218861832864435554712357212045408433063148337442724225438121123582177771466766973425712721200592595461277147753092545025337530283919957798792266105227602387429041640834949271055334628768344648739507777603479087521858757150560383542126209401395988603464481385768345218448428028551584043708805818989775670493817659252941146253190605657668891761990365515488882156648481524017528288623655582284458955530635232814862902172241502198321176769505705872488123907573503943361210645110644462865997874641197043762068367483523728481858549301927052990917031719566263961283807263055158163156758527013957960764833546016511159792304767645858448821918900740668210367317735738435479986169775825104801693129325609397518163394627858094769280186274204735881361344181260898702156997975967967461878324094426523543019257513329185927583584639981156399306619751292586736437959767833633130593256620843521934909627954106394467998527000288926743962941988884727551916616081435606114795115604220678698370253104986454121777899759035641266522853232402040738183233064790755433962780123822731369806162943074789772717403975898137999381783014471504294518636875364816759043892501256237593101445107869440864054929835342367395598420719105492343230827986436222921511537295674371301295549774293060585518189065314046256987595363441559138962494980842952103523157913015879359725534628636494038222369687053778675476924052291603554152967433878063226519587464319750553767529635944235533473631707908958810323961823665842084831133914094431800182886623088901028923625217989563534373968118479669516095145423794651954754978635328122127131707199640039647519189940427265919495959757243509684437336842141280798539646947759422362876386562573297630573860969401124437717766771880069068023019714093550149042705921695364554104256102133961522555040725465068153958047905920361760076582860896304329235027183567296993770011279299720051371885998329780319819517930837584639002746789501174068193872698085785055535953940644014560398666320375307402039331317280672852571405044463085306524326409559395978955128997036409137810265752435798512517063839144598867272370722417951731845232526679743055569023370857222508408773710357938214137741817575564891825123075716521435962157319876696968564641444607624070337591164744111484208386720452977077549306521566897778140899644394888602867620028469237704537737418175053880177017925123264542018850784805786154668520538456983712876561147932032610178909664319115542762519048917554603801961266650440030974615454899285776884771966754800106892520235264893415143475920114283605359148748073495343048128832472867109249854432075472299392556527280928703575599772718584627026135217662419148158739754307051138591563870063594015614677080297962525022704223774467906913313205391148228862696751211010376261639931759106816943323785992326764897801009021563752457324311797331571060905171890581186538136788857710167655988281968700902754799354221615468111521809977189676070229113604050044246974277279873283865250500833879562301920476047158661965035584070566306642247508052660211801765473888484090109355523041908143625924854563311309456617984802604049042621579369208429484250625854207213351044120168504259669188130103954341823283577445644285605558798671758713117540286295939235743669794845587786664057384647846378560001232895864009126860384533440346571972572417310191528369089341028566179743414766679751014759155811862174078741685171297203001368618659745199369494049649810212663309839540639527382337599020233252049737659752341815644841004712179690300924052628324117249832349946350935788681380512736717022375063526193344282767435458624041023958566129344730782716205817484896807941324827691584242207169206332741168802394891485575860982721311695887836999992711632361209783773357460254457535459524719749365905270383362403319266406675370489057389183833442004777615568516619756470039138792949696107936292710542860600823059573483833524259112987089933002202898394055700342360493602664627393500768308117431871518393994386352731981683639284663068448051967045749329341631192859522144030706034369356484196637067862958766835548505136412590755544522902604219025167664497870660746012283230132621749805604185684125220514760009667171271896248552658564100644825498405012780380062206660849111222269465707437023333797429555935234731288593131590772538343942778139308323782604105985837564751853544184922482595131173237721706324016503161469881421968636454929312094801836141150835133790238238791175036732158649465914878559893276918789243903529251064148813902899604304109752932951852166247963725379167411497263296819483178634341901786179578443856814351480022535606306077984966996138775775752752305407226884714083011051371288825294369711721366248172552297908704836983368783247784520931302967335232699513422804514792416343186054234491357295506627124977732706441950580803473687077226602861481374450692701600273932285563236309990836066203440082151877268170457707731105099677262683153333365726797094792355658472339302482069768468588560889650060314796718475148798657512979539463025566552870939616138312429310324751086579016709324970655639207664315528582613831073901335288526657430888668859813131096883632616662326247233532863144026058420566790434142679849789307984147361033575668940191294968850547124745398009298750983719012359769675209966709386065818812357863153919792696213435382805461915337516473816514897456127220152358435541598751602801774119423447996638664252229778442152357517339522548711963565295499589515282219511174781234745462412821890543174509914015034620841852868520626555981299347056939071920990132331055740861758179505474815373141095938295829986365519952177810532177125464047829004761987391034092471232075253993837970652772812506129509866996553532070224491269228102281307671959249061698748753060615148618122084923320172249933496388778872725684807986641102512419294071550405851427953657598106077390104449401182003708395442122906576868630504914331199558309758806027297542047106096151269031621148576819250629608723916872424694677281817493276512320035322979736688223477197597869834879494391055986142725392794197993162437451721011739351497515455112048023717986832658850482558782692485268998989057964521702093978645775700407006465940722806785044305765443663115599605533190702055264006538854110865992609665265764721006751786455556673666409331113026401009352303195460508064824427198911331671721843028415858496053895511724112504096575604570924342329219593069287717255293454822016983906463084630753389455121328749427245531784910048704537844961131997690329756558617637280995067342553833897778638476123389871649514566944773108550264010377797474606684615514641052373810885919758262871705210925317782033284425785660649056313318318475551367506607896788836575650051493899846214407029494058904290448947514469023482514894265274292067436449528893489416211133829650746132869295787338461730299831835357920129314116348154899818053035747703729700676188977372246198663706761881625914439375746704914581753232690913959765043384826501048103062355030900582077680871953093684174808926489594709053879202757511081139019034801109396607101722585572132120391677007305227398150978695411043456574413705155280860258325403675394691831077518292884096062858317161544472488450663497073227238120407369350602760804931040555920305526720151026476096709998816837303993003831210689205485032097793067720530448576220793833548067410579914140523837699429811551309260653661333237791695912912958343481456229086949104664972304356778094095060109176717581342635951436774192600549269946080514791033988502265158022141811837249344838328306978825929851516887375292989127211287388208747194358216976226116094521105150747843004866997028798031206764495470529207741938648203532537627564448557313810123836666803179278881577222725188567163060143010552678256956929411963274865477715474369954977314799871418474932590578552473696588670679357557892699959080095256036911924948699807115732037610112888418414462173327894208255127911147289023964528462695081743632816294104295459520997807158550036981354430639032900451450445345971223222094545566918841189206449027531730997385050933233743843109921619881160859974917020069487469666423270150161537084483629564764995905655502334913062593922868158682257710542994311688498460242694491872443120189488352618973462107084594063007566156455821123695310548168636183513496416140328623655382143302410615032272086698381258273586619674102940279564858165831773977123571238484306878860086465563786700190148421963980727113137297320640120872379594897912552901086755105808904435113573398572432702500834827629697931876817382000460427719160388729081318694406463668491245844580993750985872848332273570460884298334498782327952186950941290586665317247558113999369282437828937371183312570879554236964772668065565893586746494260814676569344510251496831494159803382281621328927323577720211623004077762700396251836032326623444848615540295400706166760414675353218360099296100082845110518229634428550269723188220311967269347464556638261737550386945447436160659211969238123677218833064146364970329662416470957723537314912905579352497443074576681656444105471495382549122623187997140423671655471433305013992858449047319489318053692861499956853133656575039476455627440846811880659401129816355418528856860052153692364471424338074690812587295447909131894532049600564615683357407079764697624594250532076932494269309193494357263042054097410861209147273743204277429835547734638145589397546126485723324969611237409119229747650470712797926281641414182056333281988375737154987470042403296543438125116927722974969861205542553674127898396481472642876733409421204673063480606865696536991304017674342383743230325364758947477125501032563840182811948273297609006853368426744503942646028868227217732748761670831499775503446584736013933539803552937625130920491279913344735813764780035854520841148600829026464479586266340067895635366309558620739061539355042932046879575003930562867014089249935300962554771304894451448002142306601663078897168021649372648424184549970655549304381794929053782659893379613554261043771819770751824111366800660412715730655654378443162175318861489910459538228714284182990713206516920535645182825386848624210571298992488610769830404748748753827908443047798465192677631335437156944968619841597443442971330717849258644210334258382396430467775339156877189853606695367247315013074333530284167528815491511230739510442735159108367530277070656580755793475761495309586186635316618383034515849973138148952756678262759622401366464923992775778000145411078867220125658557647952814811484673999827139748263675901097825335729482129496309405578138304647324642695913857640282800436822242173128394854411946448088118087804383414871675118513841249111929097435404416637786006376065721711912384084500988218384423528440549428023658575238081108545835083262175565085817478885367215858473770203857564786095953243888437559747284815513776596434101555097234200692720051088675660209686012978297158185001225958843911294584926417048206192509336845730878898011866279135899408602674486735104193088079856363339852835312058614079702709520131653668386729601654970397917395809912588329494612754616462417029538389970719232388200048760168263220259728657005739687711884446020619303765218765653289609886525957761208596343489909356171903912189445546653029293077518436268512890998251808592959611853057771384551798992820613111049795966089413402800426435891182004910886796454441967672910064816815957467873949753807841522045702877060869759015095573331093674609393068244867516132005438345520680672354355116728926991734511581080658061691267515856521238475721500043572689428881541565979934844243450310383829281303437447403520724538277098818303013124405608512045798786894932747719192755846519076109982373863849155048356769620225712616331791086126854494247249687402879227931642703466656854417807636842617234559692464869771954613487605273688821949966408720711026710597390674370850486442099959463617288237497465862634798004511718530999540359065945784943413869744810995432387879075179189865911976715277149683832405020788164291006901413334873980262581045158381525451197151740695769544471844352437664534598001319532200986001347223564195564610200123054725487384994052822781343193888970855556165625081013080603450534673126382390274475747329821062652357892514692430347243382042712123922187556988102838588542786327724229674452707917614156921748830756890542855675150201114120789907820902364384156919008447544779417216970604252247117460070495873773954492893695420479137292079143655180323954730732868316746162690742778671596131383699170624518024304131398457348432820396462393592579988759870408482993004102052812680583312761637334448644709996401862194826096722343761863466164592455443669845922593805959257133071316212720518250346938493460805842737754502876786091625578860971290832510995381420820902721831099873934024937645536664685978480186066977350517172694413541674294776321270502132894833904759527689131548222855224772787896634691495690845347749357250652871703421637216662353960856112723748880812042216345717361482028602019269118823091477060840190178370057927761246413596855235859162112700563155850453317577572033261800722037615838039128527258613917099489906083120738056034719998421139738789367886253750049675861489980738215220723954302481470313590775581393433929454602155920186988960295625322522862282740509694419877870410473853260965041375176335033937076151375082148596134592134680531075466204308137379178003797639784871887109016746103205041306446719317381651080008580901317225145671804568322118675660769005280150062221623590323967554955969213399304195032593581040213855834964760775949571113369929075646991010189230209846593415443549885553251675829480270769317242445699460059409981909993967560958978539068812761203200703406586623397460669336973766551903297840828162727172810751725150731853013932944908104715561861057122643673895608818723581415309296443453196224107296690440146249661418515038053725668398771993195177418100597805615145866606456882981887279795304957379465080547658973600288510649111628601407106329542809572750726262592830607347072514965942768898406625075925918122628195712584004934791531808097737539166336968836242664382871627321289539541327081726950705040803334136143984315567234298274387129166733650546665660944753242478073433857957472765730930652922093851727834500908942862900494416796387631121636184858453122105976971213070414878775123736906674409262389124483955504583880926853937491623083944470974305752348078078347915002592157886540551767847135131232605921324099264165718908742117630724528416226358652865405440807281006668197808813963231384051537442561758229348453576714412805273330859371742410094009166614011233095308335412275647023551407596164767929515743551446704881171208611021474996220124087596859688936377086517490349638186768797868028366446645193291878097389605422635984931771688729805486809664537354531877832910519186664528344544606952847687641293971226908786245773096676251015349919717768042069278968476776440932460131579612865134960293720762675387739074860251658752629005936168679155880575043732350533287621154058125993072646173541793295893225802686227827794449367135413746382488560102592539644073032700184311590437163032112894146821016414545960613843594027608249621028379761228930402314765074939084698747370981242782266018645458152907904515212739621963478424143086201257694301076533058944271795889578000367249060607583002961118292112858091611596798205780755211453844722091556321100356255746985916725885116591838449871503429322625645905872732995941084634674203758091262355653675697689770859440492334109441906259597420460372489664006303941793929548615028583845371056470827491942303895536792072208946266555452376385473112522840024954767392751743400237160877138406763226524706579146975305506114125770516581002001777991940261682661379116315846269008309415906929515987653836626524976034472499232848870212267852019073638306150867401473349469341258346015300472980689803745374755432848806151998007549535250630870831599386370049069876437837697155701696368588549037945502639297416139699358281009485552295123949378659794981269013377946511720493056176286209002855909193694042059321635242141573599536882277187338394685109828880829597583801264651667215441737981165163463425456272501341172128796386624843818596964877609327805867125223898033910437475686473413818486322954981765127960002002011126057571512109799464952796524392053084634825251327931559625817649526368631985791636634606931464102453175536192862856823041884293411242893405970296082038721459553300762808482708153903246116778502264534299255544887776190476156994504394247695994546922585571580070412205665353185197641794272096057342263612306286579517680530746068090316817786803272325385188672450945880121442625910956818240734373360284916768395084971824465767792256894159375825552875240079961605589991976750489205810742096424674671695609010200992688710373190926529645107180016104481089999669733996345373408817429019022261679832049719164755911540488207573991739215114639328180842715014379369453554603619886662651790194911459494246523119451964181603841601189593451890668611508143492569725001308463271929335344182192324886532438894073574350984120485057597617297207325533994290271190432801459908028595706070851915771931974154147599058152748781351738614604881111491619997044910161668138814750672581060795123691571663050563192314267380808535079545167872731891050337496972548638867681131426210395235734531253423793487461617136719297396064190842232537404756781770267393517235812118506658614901199850997474833246843614689948310899143529321174486999398203153844770804598893103222631010334036900739403399781969850644357170181139084791470266713081245262328823188834272044566370877413112393263361300374775338475776810055866343783317184236800148293583118184447759035211909468417171737716444794862230961343555646877708012096654972889305623598685110431853589426665083107787748480797534732349248216136699884431060141371494120539023034430797256759833191937982249360653934146989550055031784799974803872843861564974827045736648960088369276391192401851656298816614776890816605732433681430877917652930394933800988536992947486427047852959445782915268248706768782503997229869232942093689185727170007202286229188258059820112863308531389322534924071654445965601496131277890343623365219254007776779286897506887902560388588962429675632306896526652193372258620373795202225662186165010725738662473869748244270755509068475203907086570086898245994617134867899852100701889775451996145556841110193618799288389843204206683632084634351704496816781603382125188457022576853543417740229711944941087000984528339347952959717994129437369255785999787909083213925418948039687477437416835220307433531197814598348412251937199390416515629834386762450122621667930417815511325017310261589657269486067168784706441035724732673591285177060814451009345717965704039588793651550845435256466861750241539261575947001241515840688955415281864836449631215554465504171738587431149053385442848712808789571840479989053320895088817796387670257662503814469815368654010323394563476693274195745750351659991900404884982775638577228713104961489030416233153726148084930847364440199345119594512559575660682708045205455182711290492982979453731301873714087028125647872896699383145311615415748009360302314805957043760604865219615691539872018310381040325313051215042672555813260843083601693988850417112937737500870233086926205672497158706271392624987193007268877646310945617146104318835218309123787203958436516549047222352990529655956504160380280416795030117113896360924050859326722192681166584479619331409079587636250616328751360396403154620534295817524858228868149731110019241485519616643460223973944311294705923250666850874806927574879171293085066713630190282089077206383241412264590482874325666028845978491987343392830067763897034312599600956251163921451415239776999978744639268936063866972185037566373986619942230439693865367209804844627868586341786972256110547152194488325822391992189738491142022633130200856329146161693317567640566406342630951690927945432831679929214898687986014214112792357766846790464586329974671280668482708965670649267654482680964224386208953229063194228578363620853258573495158946466345893661164868710545321096282446037471997441006087039170513823454911234024536835150079765290442270948931331702101004839172747109864281450951491255169412632655192643628940141792205596127804397258452222286440058948001272941304096369555748387248295562122575491734183759775122839476959066916930224089358811253999955182007097042471873090895612575613105120182786444440040686984303005467312508433896941479885725215853057134817846332144996224326257164761383938800819862933974043941734927824951588859779040417242519071567522683048330070601259531023764676183035658047181186132948689964114111160233448957975742856121029821787245746624799744974078166500655864962566302642592202870695823471615483921614118059538000340117736792079677010337628058179287916250425195086352496785985084905899524882029302526105980213725186089068899103018832504448504644600088092360645078887248794843734366498996743135334159078957935438569824832602853657600132506671713380945519982649622131198838159341322537523593198513386129094158007942092702566721441049450617344961304997215441259125749690446496052101651311113297802347185917896921119711421711993880928070862626293408127970998736945293187775558306834700694750814056126958522949246903615890052218016857188881978820023469769188873157754208957211938955596848188578380871276191593849346471699537404997764680086931681168520156229839632293817563469101520259350226389695641484429882934611529537440876536829324430818223647702888294139432410692554366444444399541556912870835273390275149083092040899336649103185404467143453731950748003606286123829392259467546622984609132752474464827991669886132544531714864941650630768942131150272240484858300840268783958501385896273047955824364002804790053140771931788366647222417919609020087410088903097585201949768372073807158022182862478060052613143335016828730891461869528201096759007409077349579352140683995379970187334622993339027911663876112107661954072769564287207532464596623924505157585179285382945796823744612483555655842874999722921122623318404516846870271632339933872242122835718932735472410205632653705417707132994495425137886881115221135577335167997200198425103717558943659188923711384041704002470994422556304645236383490163157466294562887918745156838245485308764024750052737538760705622035735333463317394295892389217294007576016356498507330540866833782477563790252500569458735203244436912683954124774929476327872875671333872242844034713769334698920535962982081844895515882579463306560454501660852097412581763630994001568051439546138923643278986513448319430186295369547254831716943711025971796090789824794640266522359923280733847615431336377488514804822092595053508793431950119529834322141108538770652549535658470820546246902927152767370953378059944911117092737054581423267796806461811695921843581516366952612469506118502669848871310020172357293593732972665319813462348669265854817371306548820222358705214982055730184908947770354473998974001429852486200944384206857723543926617174191374437216392062435214661069110991981142162605483976348162539698826056707711285098517011212910728083279878614189904755261034958030849843356133660826647987767068324035952412129270983665800115158502456305111292469577114267516936425962541319778426120817325834930304083416803400451832752757598099335935855683536775206411470533447753151415934022752278554947330240344902333857706469684779027472290467767453050794210018767618736682188218429598994586308520978843450572134325020948349175286409054473075351558777414351075465064346378321759311281429473033690386353484492215125960355091406370060818178330405240059270701594054293248153861947127017993679524818228731732723065105470098768932758815277275565190317950248429866524459292804236961079593668719655489320563635610744043835224125942722546938695596486237349693516491645421355410988683279166957730010302434916256138756732175475010681492494011153167707425963599859025599795053624686272461699302385270537702938988902006114402097095417962273515995352931102861869986503922973396312304079180054739215699359402764063823301759519720057812796897672173858155467194146932231974377208208808505004709858450440177823957348375034543713354330310346925794093213348329016536495040654262004363108091619316808980904876290398037693873478119892790573137622994139361108018901909999605972259687438497261493415292995178372427360466168483306623239332880896617017542023326792922424960631623212115751808136960384195590087165118166790753205022999964095336905788827930046777110454669346634086241607116614203542960662806290472997657516319108300943570290880698885983148479876410007219910598976401369722052142777809459272474479305503130738698944963068193663533092686021160174576039952253818797763584151947849965358185156759848126121025456541894843826395404398235886013019678792745485140620862451634046613258739493555559905555274983998212505017401900368773747930691125781195360334079745863868553174507709652326104169179942363296294864057024724712352964569433912434039354317843201935090594482787535057830023672539886978024413911546226382303404737723574122292395183572365825289345779276162702400063157250886465729307437114459260116829654234076401369964648160558756940397181337892172520761111376460814098133062841258104459005190956740244836291308657698432308192003867632433304130410511036798707411475727343109016091300090042059562589329313195672874617188743089343815397506926789355911312461483122195357756904453553662948573424541740592648412135194734724406458772395502673367221116242909552855359069974530947346225264178555316512843869485255769577373162568323610377817210922317827713042638518940774532069991758586412003831642977844182484249045775957660635401424932952387487220850936584160905867827947133687957472314769840351834604220474354378955998066069890373025384848765100518158811136621074370122236846792388623131562670153385586394323976909808978961309973668853867964956592810398566035876335497775857626615448320008458292537275768085298254964571641325618623712146926091125433375854230412108994777426718942927765884015104127374067096955401022595303290334222370024661867200301671802381217097707487012154064821378128541238617206126163217258690869366371872051857085919780249563789795564638306443625143566599314286777865820041099855659677447156218747628342678189304736477290472560961756877979939893484982748392914177035986972039908117884126544222497888365516646716199788837252071711772041025686621091707526710512607100220898108717892464939693804384650712954722681253067438870134769242905478289657626493031861954537859831507604584164969831495417652218890060906417252038382390676242280890369683427186575782355160305814411117109334270385990974543216576409060336757736313826641892465713129444819637545007153410103946319361863945550526693500440424388064863099757092514599131293450500542551032944596218401230138364078099613890506681258999558788830807296118404958095034388761907984183099039852204747056446139214581128021550680947365611785249836584934109223301873227350293272378087437868614439687787624016459853741332769353838211658394656503701556770930569106607147422234358172976240074681166814447126868336840885888473467848775918297556008670695426533261268101090531274270604370616286127654041530740066459066098745111255157278697945421738196295473414708088468487054998839632074032535207883308547180465073179163591038872442379025812449932881264410449451466221673585652297568630154750842400789218152365532204165827069596428882565485155251125488620854842748337309750933067906127076860175698268339171840812991668061887350460431379491458543259643951771548876501993411022700540506448585204617906440392454735507842392528496970995526065977534121307712116299988960633397203826867601902289988673277749120305799703036203997411410390315031375494167826566186118719800745802236792836121278635397483311813555056150467321483832547464294001236896394477908060793795294072584903179172912873723490875241327445045586076596631061476678609052545356666446635507287726282730620242185726934163598283729055064825883495140718345211231768427279192147619079294170506389600478405593294089401115324379348928999854331427235930302436015037574494216364551361905267090775779723990358417850048224029578335402083712386808777005797064870754324384276443882033041120394678726799865420709622668041714778715950417976681960153485960276998802573633276564026038938134495246427400525662582210287966905297074172756660062837277802941459900273874622790577607024875879766076599760522761195310234783950791455516761964590144298428913355696554495775727558741399075007279050683706208161656558364022576027522050896668151553829925251043872294927065966859907669238258701741426974612838775894325697395356595999549575388799781670074939630818651177184855554588697742822251257498517515848603925525099375618208272317701491700839785845733706649536033796104661067974542845785829997996017695940051656586943688479339751226863046570707114269974014638528932768748811633225309070354982408925421700149327109514101746427999004020865746827925754339850613547140009178231006212535065854959623171028861568183706027432089592314185682164396937992673798443410891700967924660995534631738239701111777053197708886587698692222043851351241543743297907439273729102613037072087137487709312721090275323109664246475660412894176255651175372020549324057812302909482059462892046074412292000518334185152858109112686135841120508310782931903907503612168838721159882636641957923535862773093002158786032909660662236309866312803143684151621290159861970432251115120154296546970986776695854489752384021315647727747178437456290667906076898075244751256031202872442470683864445692017741189187067576078160272601319172513456507884191370895197285765476040713826940731069362196160459849209456592460755761424869013655695937455607998792114452630761204289689619700944567929973375929822595558177698385116745711749892005061705103884762733597764706068209176026787927736615909056630955467554059728536801471274738166364205437134726589763627071944163425039967948445157688392867879268436897699577840745801195659514748833200086931966893879402215007642452023710990655776945114673636599744788251530602424564089919689314587952577050650511387512037707340716105654853562539109425819516984756321943390691544824656608374644528702837458258497901928159302270121569157829213933988235739783239577842563105987104676675146501406887516891080081764958000298359370578755085737172479085923660049156574483263012124590172508092599893961111034182018793630653652508965835449186674831206621837862980834298156279161031447813926205215308990505426682290091240661624680800041346148739096424748119749610743153517511502003723339146916971615751727128162796640011842283977661867163583290136669886556499345487960702577369111854436244136542114327813862130036593577285621429843527373600103351934063156107785429648129153729848177003825400870567626037239944063811988822336988013379479119385064718898764825096773872006128474588279661349540234196159718021291275314181411517471238507839897814940093191419142326027164080771437760187819655206251726931431647846791436540463155504046564637402366854797519639723147369942667710658114305355541480594226357170891823905206472786185454019154091635461508420966338949827986579843500710228354813462905930364888067521533771830569818093527433493510603341778750630741416476074183933647717196249275873278023620030341065360729675759106996346432713017479778946956449562947571124230853310668367473738880480187923030184738592560999553044931726860352331947807356185548295954944096836142578733618026302925010759363701710202322708259196475310628123752119463960552948851458997851377182714669428142437483083826916819206875168268690463489399609121576793368422974571459256752566400894112031423312778705754362812988491381088148228045573571727249487635284045954140888520900289004795161858200365671049924076455831173517751761617534187510905122899642413465689651493136582689450125429865492830109396586944179248296118022477985996687716420604720427809278568708690375075775417009057966296744665806332188558138823629015194575224765175157192444328121859158441460089813906333766429723290448901585974986214648413963901721082159503792308535304406745711648589739908351323435977180263150354308618873643601908107214013279028035961805080764104445375755666986227185068998621598588176896224043603613117425462158005739070980825985909240039183199882852632115083483947842326899566480290408194813044906119153352775267734373721596495805275724089605357288788358879869728712940253397919328168778995150234012322028152202274468551711619794490288103680414541875178709509363702810170905699983984482309885936175181134973414875133029667368678914353898691027894689374509533855881401810891375270829914754232803444367827426241990278032105953339513175840389767985056058091620427869332457427259969872277151063433995170137690879674824463095364363171252377245323598104723357569996037322687101756949256390566517883441988215270608059295811788148503185419482925904400448346642270366280109634118998112807758363606894641497678814233049347161373717370787621448019220485550675661307260959158721526892723980938969469516322699203688025668275154473561665984090780477852545230111030525517097740283342306017633942409088164138229191002763549351588931224177892220796484144365405449486312868470185484228449120327391162539072199739331304772804544452550626626549541416124244031745563252698408813914905175714448089046264600731769807647155825683997241678483749297592759116004067942162427645678136303154302317568432764812396465744629536935330874904805824983455282126401171492986933518749173788478200021646536312422912032104534646826590818182068928481941532724761452868941453905225915119830149253432737416219903747031684110336029182706886402126094059257857890032247502747639787645479077984912018115869590373673092052828631413751874289874230472982752882619258617588624993382309903133808905021257170689100488424712086892300718654516210408607337200228680609676357835366489042787448292103926073478151644882639675720639487193705110377657554768463303742683134035265563871278165311707052530313342774794476391665661684115035774765979177065869835714472920601689852403534215002236357318846551670652971121933663861961721884025721250049744428092196960688992197209059159744344237148310272212588680917093515351251906271382551337827377933570653447743640409041600469519211289003554521148728971332600708824766843432459877077141628540841917245746751677683138277221046597421649423631798659352492815196152666644925744655368789818534815737137010865452931054515732633952512553209184347864104609651850532325202145488365534258416293412144338890388471927056710562313232543422773462907383298642561079125173560092449411102415155803501168098579939607385032564475966874573300609038175530024565067054423979882739931779908402239345432704480902027655879450361604149708989865687240406096906963145207210276404794490639610653272031209477660864002575424845474598457843527523446042457109564179868190133589570294668893702423146581188802921291055563850771018065021003428985782342047372318780872922555169612673447344747191134156585470932518853901474932405578019184454885707447230244259749363820299974856514721419415246441393398998701578067439736432422892816469875891725539054726943312122973649815480809746532172742104006435435276043393769280278254185473855898318918576763036341917238361356587583997166567503187640568561563470281892228217843844370601457841237943555018425664286214591395965338954872209810113047663074495823907999437760772271460477926734157746797187332075286724082447652579256514915195081983628705720178504238540727958664247442288545380609100483631624413968930666681700612757061190551703715167792351993917320381288749395799366756313983593360070731738023636351763710091730563471256393783254185910836709638884823512936411815953382867791152005924705834735162476455512384090747588294870900336710556381296190120078027068437610273592463997669923736606905234071998225571368608484946330881305728022200422790272153364051261821085287061792410075423264882087127711927873238381550184287911783687873026815618332514334860262244430728152713353597097734299445758093005105097873907717433759264860567464030386560008967646632153786158604091413567738537602036661092979980541332969626913238186816202520789064152404324410431656848757863633149685577199000810624028174522058396751877904521167968028432224110151392440774797812879494207647899046158102019903814269404781290136062190634038746085614963990418463491509446097054605105431561046731843267753468508856067174823099916135799206616703574479868835860246806152888234381006122803985510333416488867277163963764838143092190290126793903210141268900632876546289871879618406962933286038175929971651554326039915259080246126128461121410199598732088065536902694247025654735820095618540368097553901071429478260638818724845167053557417246388841705101664025787192924827066990401314999635457231430857925218163408122807751777205825753968733652262571265093500109518200056615267320908610993206455750807703573780207284102369807810630618848127651686233420354578411091248327562700309962721188891098804231380186856144439666548537662848352106992564088959929610898081892664276221929657043181599393553934664205181807646514224542422057599579612053755416055209983912745007993703939826424298635442239150488056150804896805200128614749502336592343646592606489684359984570949794720461987927547567100305124269844591930498174137889861838942739008978610273817485031798733278391602788553364023255721241414973580223902569886889535265000496494631235166206432678812352495954311391149712023445928249603353501912600221377210495788438492797261028609885357112702658132583433142293994906683029114287467251081745630245039556732607579322497383450928517558513192470258613278839731412640404942959710342757861666200158584529825729704431377096834409173838783023599042412157320889294126125762552676263925319666453232477356188353636239774424528227897249242328648342745769521781636685871595518355631302470243498958578636736267703107018598616379165732634014538215008017329956542107407721981082279392808134773736235106899049556298038938341858186154797875671420388858110888471116614151680539631738698168460044790760618302683179415340564678812913457295113222782150903911372980423375370912021538326248512724384329510102799880869493730009449915690366709138679890100850697357895893172198370033005225823541020251263094535708826215692740380675367405521760468070402327505403101494697300303127919970125679354267163622509073148662557602898836513141538063638149575350302961039322769004385779189459106662901801244269241093774588166853697792869994038986038787602073005960043478629389861831059729202330836323614843389974454208217243815714905910614790622644819149224488838071980700683334062689997263643091861630526535704663731809621373568423565923336437696122574803894201635303507728229467785198281644420130158341420897884674987612552150004543816848189865995478421878907320322689758165161921999093468405067951506973368400127545390045563328375375688705229759607716786682608900036688030944701387039286786928037526027647623221566417877144331363943946065157923330854651800998315369628710814878320555090329834962568296940609471800230550297388503066454945759941656106083372597314609429851090229040193195177313332401367739080593094272925694218373940948514613358395355557658947313846008311471988439306504056264005316202225882230946432029466941032857047700928824623916439436161967706354223070739883561092006987821432123310447764976572511942879174307436092049670047789844176435737918268850537066106137886664206029517971054802627923539143228609032827200142788092944447657983504215906416097513243264240355407355648070880090719844907738195613782167151099032430471355784666399951125981740596773470607865179958128574332392024886534829710564399761403298840498493406541453521147846025198105333833656299894370453312848597952892076441344788459146572544783826004072230704063612382642757067059441646921541306527648716484292240626063196121422210189907432813054259690856089341175341399429502954590227347072052025195088353617797728395939265529938410101934859122214921014748136042831857957628995497069606757405203694402205242674192780052779796876860887915604256020765439600960841696868300745270837408539908723805849731810669768491623225212284858575448560373228491922947867446107591988293813229734375736094429307589008836633137990911607416879393366485078439056353170102252158008948255984665425769617934290741393284553354282110907516479021257168376460783799020730613108959844023654931075438409847347159781963380461279553134209680890048685321915207867786720552690356089670471170700547345690018647505348313407537497499781197927919461318699354577348116436090724938095370525106464859179985819187594910139418374661838379736853521538537591998080365011141600880856559016316232485807513949897309437678724712530969125879858093138236881903351733852667533020168724917754736466408071055415586100268541970433259643373268544301709388120776528504257928539687444465466532001490925377527807180019503772334256800457318494761003142996932507946714685216666400512068049144702335657922889549634926829953296282073688181999097502457999996529965380671292492610397610274577429055699584869027488209884789745312348592130903751716235536034662656838281300869624025527406352874357006137586832328968115139351362691888998432424805397891531213204002991713703770964269829525535051955547766085813744059007307853974863909222489045420093744620247735607211025886180125420821173002377722337977133962640757623186470713792858266966866814826762868922930606152489409354274251849445548993935513216779242185909096017474512524729235822369698607111202179781042519415585611615463576229978654815039120974247434790156131538326443188047565699728751611119311715349257558029996392143904874685595905029363463726891563453314758456521571287710846488576066145032443448860066830116327730795305829682250694418118107046259866481411895257379202269629413241178523939497663377767494531200753411046045767958285937486415477112482455236102620462336979330936686789955933787979070589672840171795541955477195966217738080749235205623092554577642631339270946473897030825230494577685816811580713075657852483607570064866130086533353878852768902110521335489621411416958792255252619251964876005407006043426494345822470234125988380798038770396993369157776327548745576904788102108950786892578688892509729593063390953364864831395257095223067335265640087791286093103651849254179825331817598103221154480837950827407046605159801902562077862033267439908049616791361491308420987989237381947311350838767609458176032940062368020521296564530631760125709685757447596105818634655648422745317250019014031074863591228747992219861506943886808424127306735457011575912147942338270274427314889601367082113761115818712989518692218873192793089907882774457599963502395306221346123165116342479758138121194458582122516417493978915489777234876640079411189194757696587075363808945906838288481805159536317635605059305791259375614222197166811604818099815936641443360400207970548058668134458068866611626207331833015432661168040540773164767690358972005561732964582311355054096330380493917631421682136595305086176538594204610925051437165861239378240746369886693447890771904145945593657539915779546173835930448024672103751220652262875657412754954110115118529088397236364196859271307040073643379207047135110025266559422063037332644289053304175247740068824393670366892125313657756415853125706673160859603328868968363894439845366088680499285728758489098003112653465211866694898186469458336925296412122596670235974704200849235432889197580584403569613907774840287135872120246322350768448306575190408096278707407397023153465902411193455273545443195770995947624429552183303683033881609349725621775633052122318698302585724864304651723171896570140967740030112686725631242193834350330573832750167267820141722079622720011526368095691598682921556296804153384565190876882586340679490956996899452726933555880001625976860571491014548429011463993377781137702466801884724666440487620913208747808168530872360913739801569642960963607471140949199116988735431909720126454104120512665289413135155431131779285178528237916116064476264282011298875549241194325593867243143669035179507862031591580282396988685288216612760887356182377737518234639564305481851742341720942689365456646733606354329898644454245571790812185634223292339873163522658376638446663429373135005675844076767399087578559945378396008529211837116138373225668645713359022314735619074148824983010605131898710930825359468922298900434916584472329720127743027925433153770006721862121315149006253570668082836753832338089453517842036236999721890232312621086252937327653160086477678598276836977675254167166282696822217211993191915197955041822168853606512351402032670867580091963219692399210823266196923159477013787437573011664750629253331377756823547919223076925132484965815465550155973278915229014830480859502522144062444163577609684347419767817209864905470489285948833493740435530801974073936855094603660574186407576500383658156360762831947361912043974132015126376280035571347761092982295135787584492876903424856388847265995688732149174853596849682121016045215709451045389456488482206750700293445816752035390254671507543328591845603232636444311382730612305169361801119807744249624123053978120747634346390247214451514645015478284440215343386515454153357243837180173211001041241051460211838040665855144038019946903160580191042414291926738411664681694211846984764160346563371993166997905249943961088868380352717864201481614842050175784766292750846962688799526033101009850575016732828875727031435127278242263387686536802880160195362072215070502529041384917938737591927376123064578542551279795859602738078126792526624200280890821825989140701785466922909152431911091064558350522758086758202128660906008948432741062278034779425999402521439573298631992305025413232735397734997343513045048977488346838284077222207350648683200288557705346602433536876125534086897903948774675480636402592128016472412869903103310366426527801898897326850907640178831903202418017818976172727879747835746530617870197975171067280341122476537650436389748251678174544230095266381911352326904452122911236281261691844320654409579885583503055717799574378538055178681862844323972893196850684917338884405540540567468261928891957540565369765638196897305259618851421903847333432235347211006079258584962320865759330992378293363380588077158599453172594118180446765703175733531513324893606431117838727180127349731981179200783093410577803166093609680471451726388591790924459996503780958433434226078545061651556752994522218551808886829456139302860387428812732716246056550643510610510941052486961934555247460740426885782262373202695884924345301510297333472758922355620420973079965635646254390868954949199930350409598907917463527880736909789961455282542638829249493636717829673881062943060753709999743041122783347632194903911204852331482321019677155098393430290455614423820083325118866891908373808061208777134820849824801153962992269227957477750689341551188083995315355834408062646609305839223323843709659305511790229474365959909022097898068275191708444718713757676715223576212476397691041433339529940188600673590257977024042462911757912339464881046071502578346910172008940204623584445980571020075508358117918419993944909899280334931100253380997898009251732097001447949723664777512595923523458402887687925849812142493682931562744576836982052706701630870509304787028986437033641042829537346075816991586004903358562400627900115953118944455838725071424909346250378276407767476210768666306661934893354318281529059174303706733540613937426790252232648771574762693126760063920540040904841028078059111181099207625092021088034881321201618261755771926121964972319239910949230394230086656730705585125289030160344388165610240939941341508508459706912687937758911282461391423369901322774325606585419480588176211359847613143861112927180088240807959050085032203640562352143469730178128399562104182978653631589239292644705230444283047768738409745124306423158191959763957777500954305925576879135620000924676677273780028231665141666837946057812172095039734731594525310119033571735536131020195560517495813736115763878760214058378755296300841464779162402381950831410652939998685481635586286725826674227046014524227365731104860812471669901191912877459320755974736103962473705331580278476869765385024662464281107516060706451664515002678007090237233003699652142298252769349199364272151798086700606187114462519661394401076518778106501773068779123539542872733007126926068786261898090216233720346970976498406846347326656977885144519508849147979210969269951793127100246169116186836645298666472280996312561999184228450713966688426131800154626305094243849819130702010624330751210102653703615119927981785392401439268249310406141907057399156751721545892136265680404841870638570682343657488438339760018071635651825143498816968156970673693776252886137716304212556789536731795553788591638802049654471423513734633484988006205621954758424493375063586223053562156222905054722706344259572839242624502855345037455143952278955576985177368017510844707356749590168587861680103471923683099561228475409228476692795868380515196759782565125273273763126433291076625644222894293708364792224598818296878876263273392845688352672689133139334913443961493281677661579337723801870455777450910164205643703395560878014499082500942832305954675561839466143311780542243791862486667372730216198749962869223382551529045589907485981358150026013170296292102289666276910163109149519312273863421375885958118493174625770322402886375001487189456137772118498705761502022761816908955431130397702046438280011586122767168910982867841948103875778109214644969388538510918888752572462151217142920998138430488919328544676407429206621811707405344874918513286872811964330075333830324962827432588729229533482858748637007696132188899104611644661990258633097200660392618775989391632906519185552517606135397112748090846522760648131568951029507391952797332409920918811093734126074337843393982858912825880045344211375438652242511005879026913418925748613647465108686475329774248750241200304839367534125245033682834770376350352352616283594852544058474112744786655284873417047850279487044136497271433143036075196450454152898053050968631779108361155598621574777323385370399119373287107452917026171006715574386460647163610112054162584450997014408459577204114686364228584848800118892531028849747568487622192028296168643691413740841358588510835362130709508325528450057356754918758960261940380864602501868206790505958044789825342198475234046334087875116018886725397404879497265115859454873698047386342309160741715499541830817757762269536992265162490993126641515449951986133240995175426880722368065531570240093618079036545649392669044905891964645301299212369403762814906991384098083598443585022337308194772949435673085879184509176560716720518393699924117231659338935389106663749305564843948736361874696695593136478486477580682091919071084282544967554823546078882651627209033543863588877203891606281885353801986844606803870633187453543822852944399955950044002898800667467362233246438931702952911362975275858270125207476540467495017077047825150296120863399903838351732375791730487161103571431456404883684285525916949484990871440148016148357130410675949656391013530415196967189104180306645541816003185433453921406373280802160752863240867306080750283399827527580970897194175276759289588841518128791164547067573427269781126695160420049788875610582431522083679571678414137257680315870281612977205781055041654285538603128580937489463224455270837395267688262034631148751329478096774005034828811460745435455396751569909051888159897070928303815450293161344785722591861710727354038984366392854195564631849210461390262124338662113776630166296035341378180595816179663393077076236426543006546147514418527174541499999416546527951810560655958408753196082331635557846623202078634076070679042084811930503758275076750204191728246264221434093612613593427204229548739782977756786726285669344403274679513580098336594900522807425985781456905493003394379359603570675679328258101028250085173052915801757711284929997445139343386020819887009986616253124708063050686590051835120282851622898750910551126257910019665139490066482358716586226910855994419467708989284837607829436425973062439449216400751553465453726052333011267937211583128250838497958877258483873685513750114334065871965312099448095365419459925125471031633787639232517592770692739498936325924906286004373637544499369430972105320602988053873572570994338782392788148285304445896650871565434390710168861677652676093594263366307771711443771422662398457924581935187310328311201415707626736132255161076049851794485889542943642641871584254299042941009159032166500675225685662895135584420531148676172083797705067517336225511600580955148960333785145862668650143467928627287748085659886791025574515228362434551367208473612314948332042835814802281008022553285626954494865655137251211014162417323459713873114879208439757786841775777203942195495880971971411787847320474561077200452145455824747493966011661364699062476281292132854120531151843197508137690786953694028989012487881220734949705570775508040478968875193119839397986870532033686552271466906619978330630864433621272798888883277417046105823763653001155075715067931080161929061575099651466229299488732892580423596344754794242981362478474802267365305588461508137483421951546324136799790940713790131556532229995420416320228836297579191270385654736205189531521613577803613520793844679943526242820617556254603495441134097827599254798843816612076587920515911842534192188037303367095878631051409422409442914744424840399756466557424304518503465298101273277222436649028209116493831429936928361127210239182194298967476782166831495735554729147212401176483641971944233373709911883905170824112963633625877087208192443985432305653805329395422806113523614352935427984002368750561544317716479087286564518555067665932566588817156651277336923414925469805584794738124912791100803255526531528006060527893677170780020834027216082023588703467038776341382348150857574697032285042144497288056882930833479241652626341361998615746395420873938166929152715004017129150353099383890427836596401965058153776651993518146695017204156331184784525589402047171036910275092389125116523948513828830153989920872220114713054093394109915310565608020433847623285532516260096566529737663198052462589088194501195941346672614033108000378236496920057723440979724813223392702934331085092518898424679214256871125776559559734543149359158819380702091088612325961084042903737581649870528785441378689647181264697403607500607409388477203933727419463303465610355360633109271900628076982519427445170251820391031374163976945052367996887156440694459780950687975786468891573315867237124492554246276391559135217067257851437802759927881130034398247876981839666161905087148148445386670697720775862850603535543907001483224747024933888122264710075588490226219608311876783016270631928258576712389753082831229748701498929573826721240798824283882247142152939226899464837129829556400412743064222825650932534000728871389737732290546135967173482140195997830461762229998170617670305390927998812928671888490120593714370357951180942862158532180390840669647145990889734162722821074927775531116498995371600892841606677507453747956793582378822934223439447596231575913376449979143048036339066582346021637044798840455726695232315097118454101272105343816295329549553520106474530985863958642688512978231881666283333526776575058465865132604519047230231548085903760629921490370766434662935907382614686521581512861197878945187638678879770413598504511318582719634536329854636970798020139095913311084111692102695672454410316961337294033637140236880475243412829226602638738045621627465412124663991781099599032487749443296237153970741101910109544858323467843090047126139852183617679628501300908237171788770074774139674688762395557853275354430778541526338285825429912090664123498096231236502273494702768967714713000710877807557047305944753034839560316109873046354344580835112934317551554488249223143815032000245085861571386947553221011418273160051064036868580883503587670589381623661437152647883746421157438980319005617896047638127186332446337786228470322895757744907194466893583794325816005031890256616719562398545512467661763388038091884307035870632280065355441185635115429344181142623317042184817443359487165032566494802295611610741737317565294383961674846384808238119403896309599213461014455792654396005756074980211528814374125970467066351448647136177690687209977379990425103790156348911100403957237293566297966568948221626407230433300398256703875864120259278322775632217881075591636444035286855599991412731718480378120736398176922835114825438160071416369365317401454744642685678239067836719986803892204973512058010934415079627317670088064344709253443339368571673058436244589240299061528457423409039103663662308957127099424284885137121882870440600554594149716757933567428147295939344786443377321382501051402861495545475375114335196233067667721888741674759167532200215924589735473539472235123925869222085481579126193902039545017465950831530033323071998812298779093476944482268342655542840429849008202518788261122385798677414093835079937558197939924651050060113986629105140990893114869589421022745848279915676794241887056755976488333843201442156019181292979789392773285668562413533448294161566489287225398698151005183539140985272815626089853437012002739817586366777662088136274139278950924830489209942818379918463672544247800678523565003825824181307732653568484782688852103609250419274803835501320457610678400612396543636042282973164814383832097858672417806271008930571325062588638765969516148294158334052910770017170504235883703496035841779512520596563518855469767278937183455740354598483722415814906235192751056359588715191514666637965062731029396834501207238735258718500163668990739079741098579030484256064688312400393906250694370911607194997254092138193676268567356382297999481649763254736914056200517112325895520392417095248900452682137512974326722550171189030436794341937927749316383895956201509521723468886284607319783332424477376057746738158646189022688049932298839476661856887069573916669041038735443907079505262397777629869466463882908237897297463398737594328338884152536894211443058588135865238631524639928491313348766369625492460003086822760022392577427213514217153223951596306822371068483538288823894286226349718979919893615685061510110689452579085152313859512199367594380715069330746500919202466043183665650366034558952173784796097979228772448760240393227240919251526300196793402206078882333670612294948314167500600217282853170823462962483322143084850452001922036894048029634998893353866992993159410039757020273238890980731001457360329759293886397788187986493009806764536761137665387527646782494024839302076558057812332110165428418734078205998303283843309286967059526058539602745356094826027193547796928907646608586220752930878340203267936611858279782169770095316723397550965557818953656925393821173271051558830072412409191863849485094157927562430483309745586279399915444166178437463364858181894737897277350346709389384467533361723123457899638581906035275722780699441831024303049011716676079010297283598824669454586498526115651015825562875346264893478384768503260744357324745911365632669324266189907292261927451931745204873812759105072012361491110107586830047308860494810119079613264844162447506180032949341073034108832085446272165445274010998226827503024559975240539144011267272698063741730423165712139505858945554576066753855634845876840488584238490665572724623775020357479161456117694512980223198291885087754024236936266148085773896914921276881180239397260664105692959353971974861843545775295707573091225311321914506955146661295382997981313587628224357534629364060990739299353360190754088819197819352239242323344447612555556742339354134647449250636865208178810152021578600804113258414897144497920329435804747081096552647091831770647945274846756631901265966556225083915703181138730730224784238226298178776237423921873681198352191564566657553303717891831448263759655042419042222639602663502120081699371567394368318853772195273223467939041795418457342188851278971050781811380915671351428803135945394766377627693443481871819110541760717527531774857444686246736294537492804380321116418842584749510746806798968416195712021940844377028806718464111367803686523520593088175139950078449703410688333921902881852753645553656741536223344086650652427680783632847053821663505184451577651274005430862707314355680726257007640633168279373778868306069025672253450126125633403360451853613125135190882957208225465668695624345704803662967242992443713487389359022157556287309883811255803820969761074189558896927187353778219978081408167615693026352226002915811009478453769709700928137282533616412133284839349276551231509119192366991082930183720412135469290244165078126541049723228286156373042930659621070149600804172556692603163063256371409207254624506862785254920140276599955834546711147458109156790517431905397860310942002502267975990898685572256864645398945112579883761371117187740696230278220266842680573388244074077867932159119849080888248545462430297795512208803587302956535391673533903486757489975922567358499858590727954932302506692416879607473595745278892523171348571586437526097344642591743560903207323623164859187001597139916413728627637350926458014908240904803234757384546498256641630017152002299546831577295738132073173062088896588784122688351408747498295501073205403115016772664714772103117963133483650963087953763206624702659644894534197488906652678482660236490564205786727149428400881983543830729166066466058433117672297444872353793847773517160866437552805331344891019208814358835492545232910298886748322270831621806837255300756664844086708505833546322746557921161318439826599859318276886241908657603119848764632525945911439503557437391334510196567622103316527576208305211115677019477776892838571963887134480553550977388946791544955719368827686752092764116965545735630798520543647471931213909684181615609915200639188519023153822319393340411014389907718089008659021870418836118385364538202183294534314649979390163440068391351726473201104168520184030766296820219231842149623659287719478439437595759421962636935831623186752937710294306599175569403990858061911751673863311042028809412388103615205279342560702628426822787340512678186541988887956134422982890057810689626954550162823534230644939632222741004053768106488930236534396683947356758664581016291422764806268111836669380003570405318733925196983862448164000057099740151673574142682443684114184297694916799326529130093901228345252428292133360387443706084267398080414365533359299468187912589887767011060205485353745716773186922929646328551280280647135865802895792748623780679177987842716136375977981859899209046012957880578263777728349754876382985937147273177528823826335178580619610902870692312389564212876036160062362431651682273387687441029813372898853674990312369264341477630770485006711352710400930989659652177934347159883202893535494130250670599720914191838941381618495972983670878630787475010122440072807722534803343529396329431128088212748810979200531003512571483609009342088691696392090386827934741805827789980858356141274619445020380763046282180011953175993734411313697567551116770685457349127299032077458049818184433155460422768442334344008206446773842891512156773039070431540592114847887665160237047338876533952658565400908328521990306478476824989795847665627621413436210961916823582532459886471872104369995177123534556782438258753280538515201343158423531463876260922484709842284594434375996076801500949654301334928277964411671334928380727116473163270129903219691767819011802939414122230987701515217426533632885625860270956946134735350906696599197074674346580857073532269096977514829050037152566801859930480737567375061345971602994307919656275590042463818545281193615202178797573893991330278168381423896686387314564202550484561626122323369272223254158541021643867948000565756160114752666159082295763529081544317130458438767251897713160938804944765173960798406325661557607370584925485299393030877925104590899320627466937431637423099019067653583919881427117771983928191592326456087337806558242396416470572227958258928064053581555458675467849367784411325367801076481865764791068394305407521019983856754920377563207829208165464641033881838550158211711830139505918094881486743683055616822316525491735300798183936919669669717180629522267817516903548999769506023529414029266392458556319325931064922914193962261351443718018180454759045063678376199178569717415115633820212127736004740574518839821358304657551917405797959334996366535692898120474970182623196260283791625770883484397927502599504837458780440907920976456840092130208924359654228456246642573528661692548127722974485088244711599748912262731307389226309453075673567882839720730300846722700017663514268178217984735429765926518386416998024594847279770580948096397360963964087181902930617556448283643371570375845708327308038112431462821461128808450346915692049371353723459314762152798907474822985243968728083749806431971462669188436804131850335238503158119273513863329819677473787010693647517695478096518076172124693165735218261275129081510210343148543363401331982338877907541622671010958765780614338933243192359405206147260469116586504628038002837438772429880072808158826455813632872431275697662087827980519581648143785276586002337699288505336902364151546020411211651562745927811991255757848605772374574038301438815503959247470937799328078135445877938632852635538645749747806192950568681647271354025468597522118743415302784157495533977527513676259337937090480360515727832244652525376608708283567578312579049761399713919700207759149006021897806552366340476556606685066990049485525054693726861693164659684072909855971712161284148763361564207818022132731783451939493790865891623418798059053411209266458341215294726718639443755825324411128729531251582134509760482546892095454839188758250618933646131105436748245952187488912947770197617643423365081882351243868953108012835029755650334930163513929664715846017443948573129863025894776984948564288316380454356235164991687276218149407778135623776072596124093378041925228452526378248304273809950279890616116428614679246966376815204616388654286139008109640187771418328082332875342136866957511159087103676347981682003777356775036897472037189714748683296449018229582951005994322603517899460371408062011284984463595056226725781215253620452375842919848823867777463864362566490469283106842990004708422927503480956954571516670990979858207523751725298185466835017964497188328484974269168052373279502782520523478694382748185985422667330316100648448916370069972119266998643043721529985932770676720574775236106546772226192350068241060258265101246462656094836070800825696413008022628696750719073324885866385161595693642900109760353533520473461567733409091199581149732652758816249419874155092309353977489959142685143763197907670249822546283095166646958181714694712958061913724760438960212134653267720910860594665975414876635953467692407524264359405425232300522278886676470697432207706428519984316204152038766522265904658445917428229548542290807560504760465900277221672626346260907193326674444375611554485901791543907794327910861088478280527989951672403058432192165580079410012381314398455075749412321536318503391708202902615019774236677552629402192601856534478858076151820747469673328184565485480786501121272670825215709645438504006968281784657674006159609209306509626583242571152844033251845570409291605692427950452824944412232707345195543782046175151956542630712828450954855703567019848226011109464893286292785413438409533315367182018189255446168905388555758941275831745415429442287693290589942330601751058698844467632100741639344760428744939734593216144572874780509805060329343154817906344562835283574240278551438814384812072363595355328773390131083680832872341846826839814882509276440474663239502814075763516186843514160015081255345699217824502666170979115801356559767797750148641538391576193904179050560304175831535729639132706111174507350944118386593898252145362031761344839893698893738641109381896928386084885392024430730342594712195689394848694988924375707919587125408539138801086468981523400065784839582918729193162231875946012586483040817629619549185411798280947893113463329835479063128521819828039925825028759535048113847168348911001676320114194956298670377543459350041524474389189147213055282141658604290184203645749782586525119806841590018855778803241479135803866602064845092998985249804076450367779445954401963895194681048608364768746935170003192885428612456959449806070153313986463883037641523549832290681745484640983936501676094097284923757281206024774505400448112094893163943484090842544082719964005886137121607083551376331962289909238249031367217347464112132792086547962354845046628711733731083698225527395846013143939000565438086061723298033817548006611449390254161035131955820447582034611954074910909725835979170893420546601542127386640259278620112405008015219483990570826741022255502750003479790411461610761380053563641348816020359523255483448166456687546863886944599008213653586658596412803557892609901350699669951829159734117911573073062901394912986934583097513595631544232522546116523792402139046474231389036693941961586384173661362949980029762240242106785273328377524328248619398051293908727646708739080617018693808189650937395853117558480397227319434742136483142142910457067390759032353522269735690588005744141096371705657771508362491550372896093528682898950368056465485836803643338612140737660311491004497237472564354019228932474872986850428327351876812528242660821993201430160544040470425327995256024142927711930035638605866466232866795653279461863877521940118331919934181156794307347407129519075337271562305414409485299016968135592875135171729532393288923284772069219137332495252694134323650493333555628089045638857141253785994693061609145242968808542814713991506556035115390009195023757865450248144181186991082722135108653789278500290613216191134285977501340540958235303877067031759283940564034769564365660252597732495598804102583536347220098187465352463505095463095334437751670474506175536296447051553296991281456171331318345612922494601754810791860844136958985541442163623846756352774359919009746994871078620793670633183732630295992171069980294965214782218792300197592093551913078339020906006164432574671884578946116520838829760899098462592080471231146059308058619307005371903575954400223295886073677099635477526585491087161608249559459267428911884334463901089855161026996267157676532470333933393542633742059266173678237058468973074637802060908538486129212227860472178780838464256904516184567516434061365120748409760910088716915568437359613854233068521280580151161148059843087937732725221657499343554909806877480168725125647595315793031537068831649393136762161659209143771170456054701852078071404382218528320692223771975076610306425392746824528149132155368809157826896890492327134429509672892969957164862592226276745670569217731410411845077521738590631339271897515688474265073140950818164228526133606896185429637907489023494342574244674826138368023469644872295971717006967684433442784685777035861184682153850006673585924118304397030861174413746205619538005522321418814443790658458349660285007791196856590841378421658960804052134294576701719796991708212191100597965219888050546679225190200346297258687867507483470640747893574866961505549728748576903073637093689858259054964376541379268146523949784595853473071491432314955434066702627614924229829308071551958045531790357989790484669862904200194178529810987833607772189139129575937533897810719671693163730419676561987385204047385265681000426794858916375493484824218823476374687627902986121400637481915988010743673848963221049592534523170133211242665539246710392792861975297474323740568138478738119030212159573699392920082793972261260823567039574587361863236144654168001203518695861155679680219705045673120878989589762177589810949540321102421634972947091874995046773538959400599147862493278087839978391630956648164032384160377256582904791651341554966408089372046307361787610771101300101487169170147352346555137328583056826460946040135377219239213842484473905502919812236862285145088638843076938006158252067823072052997585668262562950009726531083917286726918521881480296471722231503749671317312986016629621509945177201116753907338385270531587985809914059887851631330417795933748637547732160665055853601850109287905623912093883792804544974191161750465178993549231947738146285515709955714931054945178993649132078328764159705215652745634401987717634813401970212551581227909901868146981506086007753253906641104064047741653554457896697664992955584197963970011608685613331459582549133967152123586565642389961355253262488637451283610788566021351219345076792509989770572286068529715515894771640622375652739360371772791694192430092801699230404168311121027149735426168273336228523963768715774027083613108832052116202284951766751334462284913122189343458309565665792911203439374924576130473399258798709899955582335817397170894105879654879872043723610317818603534170975698228268019883149480856021607053550119306784676498627366666068698229497178977924107618993790939375568945201710330689770365784153582604863325417876485015515267778240113669765842484093753622801535495970535770593171312255516212776067613406422139813254263035168469978838786313201580773631628965557544226480477479319095267900212779229457598353119505747997039183345872113849290990813788491710890040969184933581196206143618765319789066251204705138272276258941896603071965309903385448454294717524098450948173840073724121609723623953867707049054851988909835327508378256200724198153630153126767774937668963879277842401010233204827919901429326258334898390924933479993400211309956992485259792904145816240986664270832124474954928765176208329710862809916062029241427281676879168988517147583919154810686126696216386053818322047131588649992648235271576512182385955914309441732578028125737096256437044137645683560321236928192595714262811194958618245794852807389848598537884666471495755962038019326465059432934554711892224855317202488115066646784395929911270975733557232632401168241591846462689648612048225900752520414716020018913214549081237088875277744763515602386088326401773584530057268483440071909878618168519455574401788724967800790094117083312533753341419576744064555994028233058133202833325754753892885590203812205774406990852853141625538716049526327850672868826008817905554681585867696375691290142161899476425335665047774245975672355112895718093166757508271904828652372771856101427596378948775531753083847863580613630583632507051097793791072222731761056959258808126726571079456014807153422875712067421740683650521089801735868370558344870159236560902774456091165939018953926759740285463167209078796779857711412525537849243347573303628497221180315854284344032563797819446229784733250546443813600407208525565112313508173801268784546718719632444244806457547591499783184327527532458540524214185164215835813235441105937460904321265998135709644143889134357548971159119674993228172756781717228035656152533789126396455309247167209310030910359350102564789158663072702501755104468984974077562313211691156103276209136374776169577294227920511459227260222426696614253714968614078365429896503968497695110025001830479109645752334009863368902023106424496720460177488860485654836247232777441200635121449349822078351283606413958875452198639158296668091436978687099113203724334895553337388974553327095318650445945369146354884974478838213648738778097686298684867139390136577985421905415785987670474120125341678705459554194058535308244631178831426324830848722152834604387684446994605011161214434975851174197085012280493488549474289148188216864396790503305633843470163592846758507412182440710636569256883013597169661739628211886949548868736886804110515629343967384790535210238473558462348977596329894395910362881206513307089672957025014884856854383545850823605784491736120114488455363602935847874026060998660319341508871054098810345713460581160963348220292239505596190322168858710124414655140161653493091633118042469563881531409449111027782796832962665304046479145616125174167931545091773836554627835656367495666289125438492401198097624777732811224794889920933919458094304152975525505017009153825238592337143618420367362719677975020329287777233415125291007967020760849713931757121609991496038669763258922614380876167507885277604906861850659349811744904408223469202587938232423283859163313579748163270698275838630903699594557428845334957570695454668891912522339463935348830145475719605544707473741727672250464482547649939272634816287080001781081705635239202386134815243709024910045959433798960103549674635001355210173988480090153382598393792698350351347950487715152150771328191751857504191278982909878099644241221557198001591452809297691182477625675817458169219054702489911478922737429098780788445746000913695628109728173821776156508559007924404300625568262792927964464447359962952936808849184924864120036385313655730909542638678575080149051867573855973229780131506710577251521498459782695320556455026095953838059023165766293064247678279309751808916709843987686043418711999147698425402188778351807546804502369632998585461966029486066207817120589415456101216098581878962433907158152752869532928063607555994998502693881581771550068796728191642051235253505012143618967955322184605603308226472255690608835452459421230613366296844098444383292474021552787992668298026423765301424902259984075807427499741495892269379734927153288471723140975875669412495852224373003603315609824868118929491446948930724231650302015758733184488566354796154571101147790700008191354649411583226581595206129035792302634703007017260460304642343281958491499011046509523533160712954612070964067830353207052932294751404750129705642508802823559486048417400004208498396979493986594609742170735685905031298157316244595638684583481328940148258036195986883081878232435530178310072370353272226071473599466154249581632833323186006138879411510684482466813345281543815234423536340935764077564304463807238365281780164298428133765063295041351104228738795584055889323548966530139818025756313239045464314668085772526765175916048139587392374356045661770073296616749030129887520464075967110769218461180735826159910461963590644004474441994586165552294727342780670685665995714355359071091135847406694939552938231182811313861685750800656108230781735869952930009319864890802340362299139520783415111587886495913489081286028859402115464133056309734065685527651390258028861372917153927398946590238912268819128622561317623019105569645181154848666664436346645432380493665944426125578637959797030661054928761693816842549482659781955280898106697629690212366917697589785475143841180755789472057457270822125391958896107706160093414638345619636619253273822060975725656617060395212723927361622194194389908893459566183092326299162464539775235355294237745756776402431685547274577943456421731775522216025328978223073229799725607621117536281390425009315551368310066437227402457534355775745095743893650581593127339107057364722598869432612632133547736007851542885860185747606060925418099179373998862475578549620461930539351699100224169643499733496395129417861447983741352933352658343965874054768736634129238843695053491292160606543794211026586936010761739304980639402974084763158400190300823915813220470882577420140598840013459127302128895220243912391365893259964139117024813872615455576188665978403260966149726023386563956842858020989512464391284801455039606173858510023583641808247641612233645109024207682087190684215415847393771364690774390018098339015187843643609699810537721106372733798732191608390875886050584813603787990725344478396137275475669582792415134987936449385708214313977682583421745150754683320546753038268726844762133904927447673889280507363486317228299188591868932358607624443512289120494955897955688002863905339805499328987165243499554113873110379224016327979329103253838988491428599546287164574637028676267752502167714864345878162695763505161157310771855504932692751017394845258088422265927997266799740778612181381487982697259725243575220664756595266777953382672105278107860851907154720819904041798115847109876405740108462909153857115652581308340471462250221421218018373027105607008581691595869875684179500047166139233615134194589636998368197010877023014111916516567087781894010309075279951299598285406925992338644141351382747512533237890749910136779629316839915156966482056120703980328559707486677410070735368838393577937407033274387187126031167892790404120811922794590827952124317130239904878305312401774601066362281002367558436488693111601370008959937989303837992777805400871063424120567253968120703399725937017733382006789679046082509946215816066833372369888499218889271035331273143069546724450171440722618990673477762579137140419543910890244383303146198506375462923279204969026977788721705793572638077291522571517995924527894368338363132253396098585818237734517066189974816979367446371917264442905908134675726411457447626053688825592681599740769417831546990335736584908975371748212232045300902194052225246065244632345062121994143755023570959329023927423125921633437983367150744289752503478638313509180097133757306717896317259094161921374550081370429360718426873256344473082732484570947174930800264519080432915899358663024267940453728376189133683581984291366585650367631634366468972463611722632320703856059275440766461967478450955625093152165328087056358496543886472079752483314646254362517380542543467502893458103491079376474087962069781316857245715312426363947011087533313998889162071574699362130069553446202246749958189727292702222289274865901803124214171816979092749805126558159553159187883665051882384499084899945233270141208433744610363541348365014104614483077349634784263349269315408946055528510211629794911260432233538961007468833928334800741865163462774381899398175832459787593949648052794370768010869320015430990038571695574849606531216752508900166274001291254375614386739391403919069555178883241868449790187608755184862254201628456648638712810186388738404035225298174289512002381270240691837493011692563996377222294666995080494608056163708174377634300617405867641194443419729288046016456534625136581048385621869052467376117836568518023621535048944691704383406362928503998515926602528788710734282349523206372906163652258780518317569441376840451578632874762926546983000682164344642726210790886355632380376433898606347802332325675732824647748617973931552450030452079586108773963448123819203499456645065840464675879884853821867128886285716431256765119397103032170152237978643603497795322482649671440385395398040769882403134467168970875161129732191556056151447365826127746057469288459354254358031013444786701447052038075589597086136557409591680612303264727734414205586171400323133264487471299144101211894784019221213339956276749754054371404471455257062499507861489029057237878729734031899681720880810357322270200390735719423665403993988055077427406695521163232300803370631469457570679332341934514257038551819198452373497950920856553938638558542191554406571546073454571402578861667142451939707422456105000858013343526823935477689081548096499640885104882453247370014789930117320072296478381571304376695054174903688991914439315904158128713083221798940952175528354488794928411275449501754651335635967957749147709961319310684554087437460483332044698843252002037877211568985840872506380386393683315329659646396130807713963419665762768465509617082908969668658571191950613783664415481117296078758578024934168389414337062354255013979935216490900142587608471830877325643775931623707852544643445872736137045122071640518405099575236696760597595815179258754666760340541772512531026033430631628093453112396367509767103521810997017211547352603586700394992398552626885699082863042686413171528069323370592062017809284516359820004492305046019713601617302201388610334060335932459810383670743974597161429982673300676304316035746893938226473916042450425977271962682034269226654817961271980854905186985877750691649841047002955329947322442057835156612609367851867027254276226858631013547341592979618753331477977313916344323265617995086622716346907151896153383030454639693123872397213580468295805003004994388160232279131634906678620708496066314450088945261094841326406792599495878029645880427525470860700202569432996394820735217152720157436650239837754750477186701628967903219350412985620421363067709435705118536000099517651752901515854206125020915719757681146242376344451731349759572250015065539437261145353632546879396740406124905562604944318753257684069997142174300483883126774872232020074768520177167372637622613388434387658877269159387088712929613530506165346417408946467418647036410797059865752798738293835888525822137001432025255565138608918566863696986313844446866715898638521278400849287660687145407707535836665150773559521896295823546743567926925152360981395118491502342900149934395786673472362439966335768901305020158331384975238762208988659504862771612722121402656018073707303535642053154659095170611511248996407135403839117036795559588566487656572428080046782905162562088913120708388111654043287733547187601411436387747311139483981758515429652263208302100823277596313661614807394472610094009843256878915232736387044273437956412645569175418282397909725320198947154360645190624925092593854810027657180017634608134239802764774509510416700146507049773959089273783457368290369013247019900269506370380864120661655747569685469038024756158327277436605858210701159237540705302807549570042263267868392172699209433727809829314532832152689875400086504858746752054236892205376439690023391804821451360260771732533664081981592097388740256595114559545146478751660789421391590025565324832246993707994523083419559850775746522229947315877168402016997125605227629400763258688122037303140347658288821315651353626798299486161797343909444530994780363635094429292246003592980355553200588272524196513767979252691076893145248031865094603706229008351566615882291324122303062229702810538497273659299918220954390847045944775101597686690556549573847700299129342330083477850652504682450805671097152146361964271639540371544598029838922323269290710772119570605288880357636376178224632096827162221699960331609975491871057442203374527455600076023423090292566698278445912482778477645574433155518758175777998871707832894098335316340634362135728724402659316727696401395639404509654743576207583383326771015535498342813729994715473488168322620077283688127823615958874840507879416365727172692658011865943493384326176588808893476691397565394172149590615694677757562450577331185770585596863473329258899866953388018871814891125339118930989996208959061373462426252513612398970565705348422369992974402010056572544928602615293922487252187315879299273954670115008628430599817668689714818467961674701581653825110054728755125335430551702140273643951274904864171926485887217208787055346506602071266221879458261709847271017074657454375823087104451326470417650266863311042519415168210839909066989276111289723007999002982519870218561943871917399751139883424959520892450033716670920834327463810971767090985401208213098081051527681292754536653779044735900195414112028778506044674631332734534734351648926591010873802964929676646701126305749726387664243650676623552027945198302893818406556810343771088476582894891047063010535101215259806956260396487292494424682450497667295780431111451085470846004633849895859138379126657833854940482404853536803767640414092837997911546606772560656264717055058094731676264287019251066399135390868453577827514486101927686763368096949697782260720761745976926433196225719634672877060118279967219228728952813966103781727040542134367124570822605826752579890843137233317829495172672166060134931379590800370701166216122982132501414574745772352350353750561673087659499705912968689412460661769355185851873731343695903779629887168701221493768307213242674234759388908540511833365605035818363176112780665833021641546194759714398945663319548664777637924355955887909498369815700076030918251098763704013106471920661468661185387886257389094150986921480469066890466340672782096750341323175042150732467390554506447883109324695396378566513198571592218670613969610908996253006177469976696542361655454902655888916651234276383187973673784464836563338185480093697587920371446301568137245141976617183499708735876559766986931540700728258622145195214598066478365195512548383066429803969804666017228784515636849529041558986570513981450976369354539912738352783691917077784941766649482846766881096367099213093525055569278761956611961172797869024552091457085297470855196642335893700711004897826321232023425846033412123450291829501672412557121927648593064771542803549698929448008582637409933424940253392272357563087280813208578140096346265335839688102635147672727639956007549412621948135977244467279018106463236322649406633313994989867049008841386901938543699948149867155073676723180379764125388463212836743861083102187190302939886157241597816684858366343078350454764900825080103595979934621505395262594649913384738800829229477957606127487600917206756997821727143297208776623443710166586748475947868211803567605848015637776767225269421072865258038958046532274069005201367082743935825069787505355322682547568705318004450242325335955669621175502670574402761147583577945931819063015116920360911439690824303303666863968838747940374053060049887933279027159082690194215062176554554672598143746729136825503153213472811577417126901451969587039118198394419839740547136411485894684597200979271151970366816071522745090617915997466523852568808653671725968385084713270747735049894293845229831610214469363178609659648214553282735843184885332897066543344980383392159399870620241906009499709093004591761646414550032214865595842082837142188334367425879578154949654832210051074265802565987740445470710674643316163400914190244057029426445550086231212445209464250776893410077908718297023682154096119956927957029710692026997119666074523211153078573327940941741840543685029366856498909132196171205995601944273039203064874557627982923820974086253768239117615502568398087017829685906449230037041268643196370039764519455397792542688611258062811047754562783177342848035764943117230246025809717902729538060823525151230875142982113249357665946894758562851414320266137034463135663137299101295087859538560732536362358511968447401273958925512531729388452179449705284027185321271561252735016213856257440921813462207797598089334048278220026530233572589532214204652466799945263703744747394139073521682716095697511578443490283305338063757910807993832007667064803628952283589883780402812419146816710770666978876095833989712616533073816795141933415174825744339330976639737845064014195291781877721647828483335291477406985455579266336755681780014642591098431984268971838927854813809628734429927154660696245228894979462119886237196522142871372139239800690001248926077767508935772051518060998136638081015271967569332885199849040837936624517638480807452541326527731383890118212211777663026260418756217432788422878792774061531574023251549616303935168152268171686100030084521006086321560361620471507853164320592475246486050208413594592437161358309030049857001455836239662938234430259937057930061044192118794609473995412598973866109112533924405812607343832199626214403660279634497335838300962658606364327372224706875883840926493078360782224485202841842996113714090763560013455343445936917585459032354603990995518556911435106569788420330340986714092041120888445168451918479379847692653410120707984141292169466090681997267440395208856965648790275942346854055329532369327512466689506581770341635502895620796069075190950190865092207192505579640212773478571531683706766923134187652536396264518981892076576396985081459173869122138582998977319786244410884690383859716081243942601308743318370766212030857010265944601490893040954966101475584968787839307712158038631010516359956641170959739198763749335779258019606427817533167353413221341620610599636422308768460383227768548434127220314738034378590234890285589998055414594945387977739156983806227036400448260758660091519426215718432027003674183493067253709284717733418630203463789881189109325148974007669418448289549746483384650018133841234786290372050099260456865836689354352907288312460400506464885704884080605912718628716860592069527532356610440268538419332178183127277813378067716661148922740012994880930022057047996813684978226396258420671761902089338055089187853497745382889604866320318469560738338837400121457370216959357161205429797644492752940809699273317793304513887534635897875202944467652318274396177983288124920647301072756482647115271851152168562536848969810588795115904435656440686798910074974861277432826227779714617939133673066597056674539725307368044724138285047937688045514543033140321945347557004474277426310230645774147992469911009227987645885775656489239547759960829035505483319347728805792512762020441084378761265080354235751567633980055737963077277529716948932103275530418811302571131128242511286330546920151634995351820730509376825104054456029924991957955082595530745791234579359798792158074594016998854746228973913754785769390197102551788832976069242945069188244567307200774497209593429647980813744232294967767419231339573417428098595324582612924193927408319596107866745279847282161528555651670973527476334614483298103952811154640119773593810143221038029364323953739099960171570323468110067949031658688237210614111125051804798854257096728630189913987456373237937813218853907909746705802648910579947115207114800828453766295229481998595822998008346979757494145843168112807668463085374874509917329427708066321066441111281841361511936544666903185987503322090321976492121898030784755441238462561925853393187354392367533024081016574322362642784511191661407453075026737438989439056722283745620996253262750227343826217518813521781439928867366398126299970022309188206810905039794669967968039615928546736616455799447315376794124801502411777199945537148972462124161608109353682131272129256769419184261165590153573090448823065445281231005120493167688682912496560611636917240554452016183777748233202668523086435788540182591206949827456868599334479296471709371534452225773676721086702737390017034563540457096292877926874119097081611579716729910782505069212112378712484075853559209768913530963063089158572150659929201614084823263720402064735331116618916628841425493533317778488000225058382880967414595872287795152347209194033198873292542059927683603482160449225477503401384852362415813283360935280978168593382057801505308960045978970045706216961184789600543081760188404911322282060058740084713410211505881536497099009612921780650776404795661647027305437042077882785486833359884784855838284051105650666595927057835640305481103557901228129537740895244601021577761156580928736681362078510663892409291710029551061708047991818225859904192967080903317262834902419930817287245410684940673256040608053442901522070286015407126643862682779465584396434533212730977211346888244747976274705063459848986487649455226770112880931610211915007912771606838715551852577265783301647874255964710666069707075397534739069870209254724915050800314428378440430619100083714129044519429940337546369026883178053099259675280195521564384872927200451490107059117485909462459430299133282995138380491687478949809878834177225872583503544528663213504328245407127114945956128721090378870736350615832774089004517857043956247377907060496758334795814218287438191102743231272582725010950851905902416922928618360115868738996207627074288330441080482104945869984882841544469450081736535410855571215788229110944117898706683965248051426014909872282516687011126301573030044354128608377611238973153001156790881585860139511998264531295505732363301326755194152996784284101601458283475364574064438473064910280830852832243386421414036407726753313193408811662074012220510157823434746491691078026240604132244147832506373437557215617570824749240175767214360364907685308810709355709523056603934863315115273890071872958742897016694995495131204619063292588423274757954061917459802125234927767423193839393888302534852414409419021262845207475271224802195466530072961670634331255711231012711775206109943574238682078307639833529068126694118188634064884122204723217959615883291840680701130847944766052362120662134877813723364795200490725471346756602669645312509344771764137999814155826139143460374417015534138693951276729710828122153520827884208747493168885314394717202720299393814349696559911013893663838800744980566710912181102745718975893199298082799362083330899015974767796397458585736670288544517673516760546326906685664670268010971847375196764194602260678932371688910804173725303760766004848977256397763426250690454005627247771859030549013763104652198029159880848694818176963017496789821135705117844542451902442739570576705652054755763827191980784021421479018194110157811230297161565377769379408488018070322051447331342629703778072313937522364803559147418672840552402906933523559162676308093184205490374272889896215094690200991420107486691435148759166163755724865588571735144163780755252476173247884777816350921860936055239850424798126467570132034313500937664758703280877556969066853484615302125476114253202833840057941592436158025800719673923079884331179656761345362906422791440142544691417568955954941972402753198546522669084649517216001112706774963610512843985174326505098491771022957148830038287583938521697989501031245021776335797185776459398953754909203266510336646545541581055991103479418802734968099687586670692968559712515636090607237023902795135777754695670737395635167385034382200595680178234106615672707831012019367247638652471680562369034393436947862892415370398768678153090086554927507702660139150397884036523794600290619781206405801318910639535982810656870284051617092556828066093205728868526976397222781833791867140610120451170168455028531061326868040302888412864885631048229384437999097167283785687649921911960627994249394119214722512769599937613006934501855174987072032148633427852362505874015257108551709893387521458439928664200954026600851124557209137549654020312199585577409384729468146193087666235760434632209751379439754046373339008215509695909959358107676641324896861453101178845875327680843340357393001542794514293519375733712518884091686507139413141479704102272442492630849955058060530737894308386798460060101617199932640779742145503754456005849757640163357270127366792733636460226579982762176119450312928884479345164369389946456526942453924893017703904096497916403995494800401870610456901160160263170540230031839240838681065240029122102292838958362436658325711505350839621176321687491985419473962695223149214233009197810913461429803806944742252054779005341560993520164196993266529739425562887190896713832078995413162628982719793290798349014618167435830576798591924676742158613816969493544812669593291920103271324599730241518309589001128535076460360638436165971730051041090422385451381276099646916852572241440664918156024365498505263686784643556187737739074876011225004843270246133676345599357150757028259346718648205111751654768402690258382171964892939978221381430275042141540921891289474704148862611900048380647262777534729416771946149549191516765443614127723511558530305651126942216697813498001534267162083076218960346831775060927959829578399034051028248579189896376082612921812260163451601909495404461907872881540642440072783637509649143923691388286211175101905783456895308012834423515888138062183837731715311698380412646433407835323305072589522488895395814564328464803445315930227173290467660991893493077982747441467322253796705893785203258087027353800078285478968140263463759116346950470697268712246561992461013264783846158501755149200610832527074559480004541155675472077546185677171388259517829742621789207453420518263537606232500543721169844286576645642490962312010561138325840788902639723225576115493507486759830793362115667589802404567414018515869488384833172401175212161428341404415205699228092472207731976759726013326051433621390843990736570095644688355959860034057575205006896982227777280258243554983277512128228539405625332252194074182632765136063854521342422750108593368063829162354689267104222773025460234316439242218112298393791414226162820549454485026172639621067349297735824022737235687877761877127908644563766353295848068614733003877024734614333462972208553868331505853479167789981217590573196088498926004760620673371880798728780242771392754739124385374719290574077414046490868708827481237102542937792635183384068085777382612237751630543555857915089554332047198434901166332936449302148086028782832847512688036799393619958252878950342033320747073766449783924704498201667742295912760678570733847823865096056106897440598540907280220364542351467771592875697655974660360887191613469451731964405207862988820023251387536334542703917999788732703295295804734645283094900012337905425129258471094852421096712914276321880535397293463340177506202006799107070189542326736273037571229990141955262809822159239923910868453601231223081157253849377260108713194179016890434347605043080784848648946372533637299268361770327366203597160582074515748801297546391001288756570741214560354054956087897303292317100094565415480581409576348208022496195448386358210529279357747635398747205907078017686308159135823885143949587329635725864745308657966205659735250668977415194330166713806373522148489388516482940558615274234381392734967813942219154181155887891411446844400631010439981790581230379692816346277161875130663527859803709347176739733381830104228110928470744948362121277743470330337394097046426490211797599981619076404466951400958227952638707012660680161936069271035327685690000850347231303287363422107029672434710479346578635568531190240493058882015935422752806479953026498050468453908478711415137515873431346131608211290809641175206281721999370379354467265306787602445260794667861348194571696170979096602521653956424307417488784523400523067370521968937020226110774487936212435771923840067429796751290678960661484257130237305808815574124661342999736621162632759463420288200905526976393189270355416325556439922249491576999959914729966844567810108060127343577378117957966917532736725093846283000027944948014405199778427663948497663771805812695625759631224723926695348442571301034255374115685867888850367749185921416376020380784459079590028590918420223691548037968123766579389971806319527053905021268108867704865706789279437182242849061669782643153674577987609106379696983493900187035583271445421347009987891797819863926886328521432169000870088280449837654591643056733736781102265916890497546854757249589017718978207304839669354536559544112507572907935123367323151582711326151880210291597857250718897311477259583680355482424226443208324602534921252707462084433397083169056987928811068531374053669413918561116190681024745248102855525982153228708183478432990960871190318821852903439678089425516958084133831920776581758664465101279185425675602347884817457778669044401458383892493885753345899541741619126190947295689477206973051826309498945854581366841779704179286669889383923670451378934321578936840585832020227614945179742211776044867903387302162320645154481076991882713604509342243223404068527664792112633656337737697904812313019511042490541800957342126821601684682242619692466712395705759902814922254189854423340559801498273440646183355272898688510447913408322353402526619950195806851140530074525189877001646639553765608064671032772121620766006262326027464039446184541181419828373461866240874224729925202384290856745157233121975126699711668124138756812097575797246936826731769872879862587814324245371168463094304808743793704716492374357149765548122828011319428304775265413930538992437310536915442827552934268129250051287716809542875925468053961226495572317511245105155225919438308670147612203551401436093291152987381083115643513151958974308245207537572872287601022617866750081571179274334282356507898926060818860581998786372713585432995658033460439417465506430791363164012293018907086396551049598805789360890392210053590831713445396559734805878021417303161240061987923742839457940963114227492578224184024425812386806409148355678542487802826598355782878442401250301691763395717761700507681313090843357038260023211548102965112380901922793289710245710214967449936668628642211158187548332498204401639179593470732137928508002263443953438488125898889928514438093427521555000832226898298571687526831428647763739048274696452400242284218015679204236977477481347838842236705667461405374338024943756993155961277658041725108728791136520461531148498244289240175852198809288115040334993402534175121749970768818757196664826036792958798941410524605162602161672376630066677381782006063874345975279566438602860000226374174327506710022350991386504404886770104199504518292701303098525496881096178115859266825059420747318207315430518616295374726622564008598503768080170415824567703102006349157273499231596043964175102993831567823132823908283616580687389733870291612407295967736339349601707851813237258789824501657360239942975648126337522376952256987897913070098646341385539909788123146427110299295859818576843669095683734893683542820428715496231961370992580162170078300170014442456832245220883403407285066528366825780753978977773966294378774549982238638592166321428551191407704131203944103647211706136087613308474616832644781608632127119481427969241472187488636347607535342274956064452598332805059117190268298294821047878682078823554238334377070167243956034999209276796627608708498702590350029158120400562826800484073429663457414678897267448284488498961477478736924231765878353784244515648195757769681408644751596912490467296861902897869945365291886386780113021805640144947622755078432307218033173783028046383066159300498248632758939922209244208706349101551992227391348604241388952666105398274984423120007939211691502160032224501780095637610357221713929401915891964343254938527922243209624389563091329770484775326724895040180450858121552627168358818275204190548782733298024982770593695087775358153518868395684101934193668601127345954507634790776525493246027098027972668335282468018641144585920542290487487975588414731646211278384230342470644995888365283780946289412722092311416445452589972001962932964958363179323755352648308542604645008070472030086228984644669524222037517688707286541779509209810056609292599494010079016928375080826923206693114213729014761886668538698079804388158224249448151661839718984151569230962452022444883697416823211008015460445508611549765122608241150329056603690100973131633951478965288578836906187591194563322266323799474111139301074788829727163236449804422930975259995790498335019041194163759567624350689678400303895111244775479462474553155040457332726838292715727841519825162042922872942798624022504138672499390278267203489433518736974982017150254296881523370468457497165106615917663527244055697307670572795880809864671031552782327643365093581090859581993067655777068217369469288109320081457524169324710434772083573691833290009206873921183137582039088929115325199548232029037382885537482499407029656267332895372785134732023922912773893147537861291690238585247852515994957253673819638911332515338637994623502015388293098981653492064974427988611909899795405166914053405372171936364947977134778350071093161994254832633000789206457394360018579803166621119751591551937811351376953908758994899932683605961204818846053884276536518350792564007927918422568307776505661594658997173124193088005081745002735102109351542072429855851285625390970221318592783329755224572250063873507024037130352175506332845041416072820880305566952337065388739370384278042454224933453112672861098971112181874284591836786500939717734147650624894215002457239981263684545151973233780103137764392964409896830135576738924128368286492726566407257373423799141646717615409195361507427408803874108788458270945867047748698393169954171230014576211053053509955014889656146078976448681169557871255810982403559717374371074712126964941075628711451730972044646159721409041789123779408327808260440165759220732277678264215866688295617768738406427809663559131465375526966832659804636657841672460371831199147614099560482798130831024288114029962120026159199763295468553717860054710988423211931132761932576361707689370785936227596474594084987365096283093330676223065969577654496025622831347253150573218536993354364572718048758130592135110666256908886578273961943619203097711609498506583849765020294235610021740519325270482524229338321445372415668840798764979316424024037977234265912824701117040535003838529203911997023958311150177927180932497897031214383818607511179064419146879244482978244559101874058544506947940155575071244748532040882680939869135483744820375315531843098562935440626901750895661184361968387403216629510004258408091778982999621387158009257361250803377130068036440902112000127031781367772021992548079482326443172779302529304340972560973480110169304708588639426611006494045645654295733285029511801941957478622894852408511570419528247694483551813147088808223965619842302054752935000721379542282322310975258018815407885205240094295192043348129841248263272741844360354837292792052697107049532626564304129997770869668390092932980414956594619837766862460177915553161828060321487434340079650912068545801851279068692180542686763285279935191576021551349994982926027740056132435897556791898599850566271498155845235834099848008620372377085724597234644059502105017993415057467944263565327460454512550926215082654084870007986424334786719541959176466774849643619214429342236875110603637325136899695012569487101216703136051939567181626340799394258542103274004041958441523218785026296722517481172791314814268114090568930403825474074738228733580014719898562696291261632348590456156602926156742806157346952569941807807977410525956527124876664972153673442918056457945509490337990725648844305691793665192902489275877990655087469864307275757872709550914976089974288037643553136702202541788083173895392999969054780894458355954063969584191574857298918116681941233679041304984479602333256166662456027686496051101129176275515484408967576665294472801283231917881817469986812923000522245618836371941947951525698980064044662929148712036848072213164259776198288477229906242351635897970468490254402486058083447859613906026972602281320696873246387617683997237027289607754649425077841836508710314391272708889227369388103379362668425919079210624799890684571326204567357212803576293504216027616029379487566375593344334076730022133478484255908845576831215928557292867042275827773100059802938603959431117167592558132517535406104479422180167457057136329901674979103510739558388804882209865176726964364405510596577344238266250272159623514658266151947982249462173104887561227676073763671918033376126422396732821728759236301439627495939400040854047717362199351515695299688525267526525934121886896760479566057994634498947766830937934029354305569868188018550971447419877197803224926206421273676097776878930321262444991685501405627560671161139933244013190278788800335427371890977947501257994012757492297388108890770191193235812359580781724043948731900207154534772696313599030339636679150964462811801964045210486885223307774596930816252692802403723184399190100512967011672499321157177100419680720541164998121091781017940797897849611473725479679350048298032462279677188715718718789919343586821915440627004761216597570427621730405529064729296998413274057574252144181075895326082741991403578724830799331237416738449084179707732610774456403293409946583592785101332738749111979349547605386616146751158062076239111667105116137743970257313390628333685507974362631420829398287433416135390622699499394042243972016689605260547140019744433152166341670763219957326612756017170931987749688256453420256997871377541094313952628700737388485614724086300281257004722526544137602595284103418678718962780908332083322492976904163322954421897519074748847900342100168454480719881280420714968448015211360784555968887331945903744294792099662656066665651021124001399166392467978199947673939678404461525900851115557917438007610130121224951761920788220073007214953165908842699584502374665262256508125390806856259953493072841669658648772214489241840425798632753616336956363328389182204934293783349661226831640032790821648980849201804245028230819866562614736700110282466903348806399030806746211941428015179758172193608099612936775835302525319771291575817425133043140946912845129124762703549649146876463581079839044254091769073591038351642861917118923625016027409384313708646390809648582881575604066875171032966458828098684531486196594853334296595576871799318961182899846725752600799710481694681682279541357475166163542738871843983576921845774353860676695152189215731444018004026842943181438297710523339457319184674608983867400858453363335680422791755418852867016258971706034713317862593408527687186685599675424895702099530307297978370645056131612886371195343113464007868250512900820100231471290823909775242569171827634306806366014358681554032798206828972731700820855277627107759026546803261065827549846717017858011833866784171630153889387772577234911048382963033856603823711493376711839280643463835539418186440639483812301515273230931942770733400961482839538656125624028514114991333483570711040170065069870937229316544504133980641117502255754306779634231041675525743192086648389278758281934956551697912557075802835323548568269226327997480803718229453154239850129450926054981087360360587267045226176184257867503823154985400922476039344289761683414464398020744727611448985711387720810593356315513312841323749640276688356115019500352321322086032428438141032849723853641313912008281405498848833169525247270292511046950837798036269598656521732555537880053024172757673119150258416641402043425674378506568365051731920110977698560252395408241187486133718121298327187737542670297278886711667059635192354132871768581389582585381986296802064201682701848608960026001699552297442807728379219770265186432324607134667368989949991002027858711969601006438071734371617386862152883690390108824218700263787198620135855634730261271897735666410715117343956613252334230944498841159465465171058416380987031510844590521344305012942435876029015352509166715318965580390247777106361268243328562747174839106673311312816104226211537051325407829239490177849644844478941285372664154920552224615454823907514016451987051212373793021829862542937419274523509633300038393513997950113687899245493092449438167409440848635278001587956441193030686854980500604715815602167261931538880546806136528710136620787051042586041235620434711437921242516008634761288728537057972878286191446566933930309015368833903359764282892566170895269611399162498126356954842567122372389475047777926113133409238047539292267397044916659928903354338199495875286927860308861264896122026332257743767914779068463856758010746562929439446003344100638172590912179709337462636643783663061717660997629701167690656674622192696800921705746494550266271728916399958194351172225188514155368645396965463450333415532137144019788094727900513025277024560469582759325481364630129974610085496697844068406970546211526269613824826114293273524304768380584370031986304807912139068982211121689630158921821206748886914612518761045810385145660335449197231653339160866822726125309351977858267727201079933051341021957335393155603219730013027962227191219554344388853645762987615864380617043163539094668070666222790554583635667252450814641695733592632330535029380409016449866226223704013052432280005946175264954940707308468647818944880098525505356365332160198726280302426417831057156801977579412682226011781269883628837956166922018875031499596403346372075225732052713385748848497075820321071455630780750286009296238555029231882388773201461171957611726745219290137660856494510000732239920849018087158894271806507936325977904156719284221540741350713673642027315517591888400651610520851990893153856481581281949192055684653065886029699586199925349781211889182309178996698277821383525426499885740842606815738160190213576053975697910810923524700100834654651401473171675297166005034380563155705483358714674393186057422090490972949623570132761762011530178803820566916661413317936376471580095401110297428429500309893420325524144779449944629813741612625195629987630325768911128993068047058610430179310719462862442942536363231384745440904037797955326130109395966423151679105452256621741104408329097286410941100057723596028833761974300784787101598824171572351439632851394311421032761306925645740681609218906115363333671871511407993647007043460076342753108514685251231905015043631722372012283357699571925759067743403224402996262073858854962690813374851312081084004162609686763655472638014680772549829215864604012325401385698913962569317728895741309857545506434269240617678958541779212949775407832593994764993702718579082365980986922674107453312100926582277643442926090234147657759471056092924434171258984471668589498604884620945287492353494545038955132986204690146748617385501909703017961768564860487601675494360850472835162966005083185195734251377940110243492485254913933738064056888337562761286526321544365798011564580770661552216173276306164605595993533773904490708872542599770032545049655458176768115848810470421404168163227014654254545727234567225675380037114713195550857721012922932266204009668894277692185976604553717231559201885557937082635196810159712663917207074690466782797944798230569861790194642979650556302238746110186988853444479286636084356797511413539264674928540616278479076695963553944518321422200495498775582492029706181267833417937808571804748071726080015501071385378833962062961497961832600934518329241217780395203521170499793073119427980951486186191770467515206436373432911993065333964343122535536375697579544482368624577163943052374471078754150855689909681561541477437600462171164254961434826593208267245228819350730993678845773436342486710367646818230343385439331668648920778796114360593495920967747618161379307484533587224590429550539249724285232209567048989826673998513249694376813758042962923769305748223771262487202284939872921253723160176429985017139610915727540573854384378951570228523549373598168405832232891045042891799577078865166336472225241526627031955617259178817694109233434838338882112474674130750909078784673659552543027851577725507550112694865897765790236645588436019492024649992272516436059983576661529003336275733443432091286178794806814186889134866625424240444174390847781146868043354279068005908641732210793463590302361684794794248388527495655668395676282364572956050918252221145772441204298342006710196370108105526422971585441373988465795493595754803096216995229350027869744265027324824659944894719957626893639007381010848558154308144645489434022325008378378250460526968044242132454886456581661256989366848590737602949946550276881186007827680040276934752234074704029668321778693102431466517003217356070154837293387272156534339511492063698718562837993594007168870725649077138517199715461851957281841295698629877658883067469932038301998559720952746268564461531248516999396007636027896037917196777885132835300981003884993233329323363496770641758438605357250707512283490700087391532763790766043990585630814972959712653319601975427786660358072271415431832087690047624911713500860931213125465795535467296173782589231449305182641582489831641507080356349016956671705353900422465898930438362825839320002336178366118005488060210635846683890453359725634935332920377708461992509585775537577754515436338118753041888549386552292816499576281926095929655022003993145006254975905581819446858244687307531374695169415668144788630802937542018495952128428406405091075256071000819722401744208491204941069939159375139525961212737311228418831654083447791865056611341426041653155279066328566881369391411207006246297346197917388120983738467129728283918713801969912364532459523022015022686400184085661481573099470101316802846407946638694973594959953962365263469237246210882729154817534954178003443834208818748806764171507416790554842779495691539956505591902903573619355833023833963424119809753909234635125844225969475657890608917335496030116799688876371493264516078460087826667717126153418901211322988084423855943935889469842610550226109524441597475559995748995919352856137803944157027993896235347963945776197071737547845969940128350020255196591568854849793125908755184719971303135612566493362912401481040375380279797768821785861267961264271452780356999953441662261922472271293006699396932016664699984631112415265889764411945655343901424136856169658796699780309481056952778137182763064075437259944167546783487757470549381944306440737244058872218698818196456894639230974810681050115547987435837816721867151829844205466238756016375105146835185748774024118968285094736719949679994785699202349211650996504273906124534342471389190846281832540396593747913561025671659823239813919919169316743791137544348056486304237626443141550390005843997325116915323416386654355468966960469415595574025508197841871154696065175689910301708090529591648132750638653809650325645886810799158410704769597307573765094258387308645154650082685829899245615762402638796723677716367255190473420229662403434619542581074047724755947929253783925239455897620751350281613124429813433197125414933232033782050851828505681494349018004948791952243530097182451142036404345165538301960538939263671252490260378085111286731386722283130577798773313922062236215054117297809744742654791446222474737208043262769103993199789635569526382518306995647719008393476596301809516776938241626543353330080870341169090905964951805710115929293499053152487100337658061351231974637824992352646407372807310569278988578278848004098774895653182000312391845257595334781917553487642791861076600276447112904693484414872016250109204192779130936470593279989577918169110806577973065322262636899599656970843494628561338707337353455037215170432982084004307535872291237475117479120524242868334770411317636355243211162187682405990754765126206301332299413841644128659826742369710994602596465027086284480219759900938812772487738113773448178383100416377030399048137913040054635037791518210933008006031151574747719134941939293123680875808485460294736465646305862334331145119755008216662161810213275381290792839411110623688453971526294539995582156674678112159914077567959755517773239784715761816363504417005899168441772715917671504926422066362299408568551481662748785849364826347164837062188290636381041221019344999499386035216787566607765242533140146256339744744125685746513564512937941762682993569165252833824876300613938831995905588240603348712587807413826569476724529020273908327998504607052987345988163418752638178100588764769005098141653366149134410704668769479141913231012912185052958011735915021293803701706982958913715193001336867393122308003044585847140395152047939705800015796588515468577081179841598837604510623139496963117735980319405219202966091722861536779314769139798508239543439111043310481811672718964511503631028888129483833787986700644470099555411461821167182836621026924210868226542102734633392785407268458550588007804917464077955168424430675525240390925402973282619482783202276514856299785326621931153954681069412998961423294918214363507900866332791865109360328163688899078600551371771113812154743313107082901201689582268292171452181198795421353353799178693579474193582776253245291225712264445609378949115159670776038658462346390033598367426988681852024354337251723442800769811323436863330436054691937367245006125923086259734258908117873210271618752177845155403699237491935588975114033514565744699087458311598832606064674215370909717604945631250095665443856617948947685228478759948033976086003906956832609642283509122662303105767569388308478123946115827904025861635082309133048769283950344588614479135370318484632154132149428149065045289630257066338489464153200049263603968592806597518302795655516322235566710386290291985287629309161246662656412651531881665557935688396182070543549037877068756703869671573222214689117821103118111238633779412968532308191491804837808140442300687279226002644412184442954450176253003512496287131970979406573414519116432671667368664334590149780557768308455931800953604475790734500408857683069344602864930816495351935155122070864964261634436600667049483652951156199729005111471805671952844589447081448264839050635761174735413565362625915274277553907398588818544832436616416215577956517203781570698785718766076491158154259656744391488002036603975281371918285143941048525255069664108519430743881117643003883018941592659586891434711305376317733731252603985518577150775333829956936476933735761958841176992357787132935667250198882979433047480663154514811415480556059235385024977373900504261593254654750335930857192793970189527643196981331277178980175740031129815438934339265043904718528649113944852376361254352241845253035719728214779944712982469638087728260146260454625208150135455730688449730178235381820852410841310127981707682367173960239347333438700224503045923461246682020784967380907432989782401438934774083103707385287644946622595391268347522200696539433121745705829787320599677841332854822302086547314774894268949997250580247324713595092992473379824173698177642847867353543678516281002181045291634111713623841287093261388635472286062747678196080143471996924351269242884587692869545751392301743190366214458097397613894306556729939875965116030510218897353696002282816279479989339332095424184438811728366380979073595008610650146591274578586236272461271632139914923073911943974416882085535376745305590963217185348585180664477973738439657764496814390262376868098535952087645634130543641440463251743910040368804948110889276044527470016255061103903834387605761839267652513638085602823654133453040832929388633942028573180513617145542242848906998678675971140978166922600267020611544924115676647509413740269502816619632751903499145849931097284401472357644799750481841675620712258638203181029216955290267149911388761905764385553838168609587729174040182684863804921884115765773035459459767913564643173212170700454011916303570567989400112502457431625550243391614541308274505177160781618304196116815063909518377103829463464619020507782510235677505131867626273191674306820732059592726282628173709631704798542978880229690202766515378223583699286011643131365823000590414621294929668069594208265932758454044169523824408730590124169409858355764338509743986805772922228105635089747095068763181064254683513824325827197329510194896929311064465286493686790492099845900728733014940297740857685286247633297059504438367626927663244691175332269099696145780455160714372358745551082431946024377472236937959625352250839904921575640391182023387853796921586848265277072041376484326025495755418389564909914655563809432205849211461772426556661755236381858113941228960842621066400866580020517298287869547129479337375302508482052166337476360515038293829174248954770188515553542630886956287725747794435871104177331367943040054161120959731968006383152637098964474609717743491893473511986524407630026277752409834952607270869009340495394369745170953942301071997226315999355625798560329265459768060276465175785603460699184613622108723192884170780917346375851386376760192049601762003737953932616808693287272246882618544170760969276156277968189756860599238591553082542680871768528314073556516489842149315130601428278605787858036409019194507872620445486868773344544524965671505296141161538376668743490335233025246395335026168422153705083232020303385033045954610769912096994272327671302574427207361660043241045375513861969867213959570836505485426150522697328180660202609008256901436833703688238884439162805675400590918475487368097894869240078588379297683979449131791876184593930295699424098536687577416177187670997199551376327971881332223867832881517163872190645270920892293862608454805249737797506767795527195292181757053629689474788944650643772273981321551317707166150865726279726170135848858260741611199791974933700342194760440511039303458007639051797634807257414267795089226785129724802459129980099117323184262480494348701086142635413256184306352811519599281367101399000656148987345989261047567729808501483411981049275417575676191393904243695898348023145165916145974558889540946217490987711069250547114290557647709616901121831227318610837973346527702226628730218785512504138271194227652698243965015813548252134220847480978645454597894434592933468346928841818406752155525255047281457310221873994523312741709652372152130624299032590539485259082067190707184414457121785991516158356515963688790222287835965823423436112221797106567123461289494535915896878487560130607618329185576264084368291725445707561757904422410614714014474897396899899108148062243576900868062637011125223991864201745581114081974815404334042142840110036068833399038379260127360154468457512585866838131094439303778274981133569265205057767997036274813321674806123106827233012734511231569110634579373259549469410598520890885050632879079806011015870876667911433007708644407581936048952599589386696293425431629595470306522395875721763641417120322614042660478973322120283256133173048671651197366916247652073336838279885712729053759441066324158841152266519216208294221088064288661513769971239096169266754044705681998365036480604784784595042986992542566641963874518783711467484203038806929220716748201692044800882842339872574894176971171188660582115588983672034039605261363941959129091049356691425183773306945766401400194341628089228180534011648702378019286195881063290563405225034180693598248585729935961661764699469843790059732485266543630867462853155839956266959662096611336435367313513318739204632008863562251085695269561853890334458234201347234708537253542635631918707567266745229258213251334016010699220071542521302905942961702540087924678922452087898699789866274161491182849870042397065323438771477994938407331361188667573495619294396795158621094171142792473104141696095858374418653300317172026956016239591423738238691570405742627192241601079066280213600302109768599027704066267190910643846076355180424285515025184618629531917158822001232331343384972255748590932789432746759401467299921717038615233689139472161289290980403985893474867254102669007588329830921302482669984953127713348085454837768768227617940467449073252473917947041608656536580289151477992323811015829920315951370204813389149039817578141442414002125502631329020022437213792393529676495120694623997799335886939898428579916302614146777603046019916069138953199961279543845976275637301595390427412544901471988609744062148443801192763792478141159404139942634346717467676827126359678110337278664327642575332092263272255216077943585329101350744849603072985927294143249701178508474184261294844315748298672670251167265580884328690521983092521105697252461989953785575064821982950991376759497760836357489087889914076895547414281090183498606551692785928354037302256881000542745413374274297750150277178313072915655200376904409936281368804807967834687077727314585435637208169954501157070521378933714708068321512942924678764681101941201007316798511497190601919014159497160915828607321450471741765796266952943006093522661980794878047332196419296819895710895385546402672537713576318398489923849609541572128302428572890652768046857773622274135438988396407071470398643854114451040930803005630958423374572024917855189324124359730871831619043114819185569062088044631601508700839282183504470748043842370208359387103905002614149249198496697404961061066153548854242072228553051512748252812446351051133282989839733455493474937738509962155881360882997425967440815666852916826267163364463287748016486920664795731462953057114138769116880369188660065144517627801886374346505812816732647876902424981375163759932166895013502755816502659693119901393109997634304447586032155940562253102284938846880706287278382746029167494015059311883802232787486812541807615729282556549760790291329478227197286312196211501411949013653712373674543742473620846008093363434761981458871796317696721824655163844216547897512803943481534181466732395627443132627724585670500769139684014498974405007683067385468531276205987499749259567367492996851190392417152344429065693964259572977998211150936113475063466150446114474793341377626402041991880035428582742251773670871966029550817909421785126938447076324869252438991949688992378275190957647532957387521989249727174480828912905628494965610463752707305175672194210910403517691751507361915136457927393876296248721369199829358569362649971954633511993989360550648899157924748878210221275827293192666505234703174389538681053446705669457112548392722851328447499447174401214328099640707848151628393598199569200083340167619733084787104808178619697422284520296314815456364011412432470886521005676571403578217023797194963731910132132985466324964931013595448312150261430223528201690465919099989065770582778660605832007456820723409551833956360029935898429916522154696444774270443222225346001454351131109066804985049214175249585918120566557204573981985717081147525727830428109303295522025454141634893568580799839187421774838287549576283604040831915516329414051815273930844368549222680569701713035249828204404738757429791326529116486938334680652823027167272785222746738592259402319471044890029537773033016974520607505879859569403320105769801304951653179705526204275694646288506193556755390942327499507881921167479549268142612505438097481799118173625972468012360627941632128885846853974452152404501733670747921612117904715871073713189678464610650144737555765353544246120266704945096563959463895355308781060063795212200196094147294014389544896237324208402489048182544324154848791602486683451348334050681784514858368757589930900346635803208104137859831760509368086102783448542038210141247341765969140962789176112239835269905487707044113998342672558412103469618684714862791912856391337235425684546204373313928165118509256561252212744409440165041742106184401814116832116214196731598020257307381263096632876213570773304669687009683944056990367876073796021211287578380109687254675240388234838621260644584659294058198567992192720354773089188947527678369473086038454376800964815386128981392192066213188761579844764815902981096384683839864765762487284811952132626186561932143723500792250051093105246660337615711634722246492925201737004826357764093908636359013917632010855107936612265100540356008456483884285047605612304813510001942975280154007144809317230539852268882484488042245409631834320697878969537975918004613978914334104594172695697041562385056390986516918908072453614857938354157820833157788954110506854032399233849358656277357952561841615257616215354130168139549310570082545833662938500758798359561822083850202969541404678333581869927581242503028914464547924849472510525616633425241395989427599882740331365996467764700357316051854137110208246711446710408999296500934355936852288794478780931048273251232881083338673966669302192619039130523038484724963204232342010881468817366043603526490042525765719437732339327547673599764802242721970979693038364679018022287140545783860336302975801132228209754092790684619549244553489807440744319838370364556797023502756496479069111381898121321739862267801262708210407882311926750608260854153280669547530643464258982736722777024620213884672706396649066680696898817079851176517193400976395047977346241221119827291674726929811691627678715560294945866100668858888452254418568930374405895021301781189918305550443458222052713196668324342410992979430090889046983703018615364600447994814685865717006917612073494090674736924166628925216417015587236673631440819539833341721247282619737180141792527089169328480233362257797645887791915489279137883395473186219682632236700334198420934907036056507808736257083373208436003525518831295423373347548030949702533201021211195694821979396725977438718744003018400947072500226362791997002637261783492124313816752389413811367085551029290914349539671359687101707794017285749522104882394894585282085987326526375960779425196991214694259158190598154975688255614807992344746670087551303717203642015994094844703930134649420084014886676356452163203846305213424948612583849250664868180358523044705291695025766400956770732322926198649657519521104715011356121501542700054922104029503689586003566367071141576868924490146463496300548291634371004474012711398838544781915686997881287497718130208925809538032392231393964912300141260054423226153912714646879333039082194709658086359684483040576863567099537870039570764475405788422996158890188200088247887308349878013828486410996355063897516835567239095852640927376820086288229420071322261142431828067865511535288809576665864591421492392999858378282585612753625424256335380207988785123486178894849078478265975000345334337184055614920195625349091020335028839166496338552571587471383647714492049779011224723374143774437048044982759261994795004702963288047088784973973430383528252105036392012739549111929373749463769795363190285389477404443248001208823290820632596683256165910115309658842967584190979345243702766501355410656627724703246942288968058667922917440818639377150430630470745124856229614477186060320628538326333600841736135645206148895271931816581359040956272552071352512006215942196380910363586122806832063965193749589051132228996748843090026621169335931347072240969420840953639874757448256092825426881383612276808432779345771109228523419353962667171744053057895282843465643148405563181163598346139941200595019949323409062939438451266645582567809710729521996365930993274044874922184686217669320440248902977314594424524250846771607715753850501330374245960445492260286531641422699703414373819257269154722053765586827036856931727842260358267420520138232552507390651891906466879955599217099712072014222942462740727027587564586793571413136303979747167890171697167417005898755816651544693907442883181513253818713206054655852516042354012181946488734920825378020800509747911918416777494523980509305614312828705636054343967688731585695633484185296461356743593843328271469725292990247747093112038025779489721389423865938868656653882455195650654606172241420493999669219227214166098050511732432500933371729895335866241775457608117448707674790063684656320962082597646461260741394093809718999171071952960080107863998073268425447542819405020591360800147714972645194612302476703017447897177890476979144860438069857230088932318988398291032549463735079438334788138714718048173825428325110250531739322288689191198681822006495583088964874907291436599468120558718808612552238018527742498954601495065711780398189304182746989428041643782169251092863099666616210388962352667751898069553519088988830202974183749078350095585628286949060287890388388647835401587675483818515285312435961842371698883619917054091223191177093728559702517771016982065639883071009534452985363185831523053533406830813339346440794589453576685986697258540052460161353177273824831840152984551650758553218864281882206314928114399718377631108563661011633425752262107093693160595202015891902154472329086562051192141297272216734331914719776326538736563959975800125137939316401111016611815930377269854932092595815056099164009054752771191753923124117180268424083857418250824756455885337592405794523074874379866862801301809295334770666997385315243067553904861636820815166847624650864785653786888972770046570790052487080111382342490265648041272674537350647774253271854656583657578896610870250413342996435707400673541219180753281856983831765374046470794885145990361583299849961905863942654700872467608831177895365355926204512860364721030771476330227239620878876600852991883165915875657731379909591325944075016813595940664304451178381356535706052870791594441283839732142572857778355957577363008761805783252330748092363827065574308561422959886257752025145647744713252866582635176129022617367811151415737428587063353246868882984349360832288760645732824232980648983178828886516163565131633430591754322648721314741143986593168314550033793636489546524634337484724490257317567419505872219898119353702055131802109189711456687128404502759469340194028988331061944629306517222206922179027458033958882272507700587430960679405563329535674925257984468982630805622049569506276970753035954075439655755662682219883166995762211174892514817239166365240665535058525553417246748776394321365448178379996916245355040796866401261030160829422331114170179636721180320656457782322662650384591600042198744702522700813232113421376378626414372547228150764457563870449408458547952740544827391284472832613003316702632810843713204535322255507471500790219239268943600997487598043306017008900829528660503710466922701129389977489663120649252998392493352399443323573548993415388518712801168942099605272004774081334521251566862407181533946578610040406998466846711639296311257975930014645745511516997465416784632103026461450636681901125281709765806801150567829404323151109108438016933510751585860080519447863555031389176838926327778753897535576263684417217912488799000892158092972040169069736592593470368575929619600988237196316606046021331466497960860000400678196239325610858608214042373409067289658420755703142662408626038041878031128086512209388260934468075669480990877755599021929687425198686674383959670238436361443785533571198503432716121072031739878708934416185676356002236597046384234995667047743623714679340280832840066949199941546218190538943941905292751911770534042447616123818585134646703059638846612120769199638214340972704598942151069280056443119510744327103086203739889777539350852993996786935426797556426083981690009012748839886236777705125666001799720889316863280488540306630120799146637965392237594502689003807197762195060444402152721017598213248097940747310247210214964014440256922075391920863916155173176424688009862176139861752495652369825698648376714173491933160960543867084280832376017668589297686575297560112314177259970906391038235705303678218681204252138347339040067521654823788760859963155224343692938521299029987632925296980158420130210218921490759938087653194247765804897630439697506933647565702190715672890065224420036739067111384549115498197548711297513411208648144123849593724871509626607867023006697054049468867465193397823750722463997175855752053233166599659675523723683696514004530558698218722040771379956915673153830086269257937428457828016465988794671662945721798214846067155787923591383598435789411591868105039047135246688317973582384965920853508681973609704726045919888433347504740491116573151492117442051870620046601706447116758325652023457294994258962770873549868173073670121320259763366410232515067144579082711348837579532294090657617638504062683127201014115814165458923712738699948232236575406891634867235929688126466530016181437532117382583820832750896984900939864721103715417119710518203795821634140713982303689911428462660315819436046990410586850149750972127614077013512131718255683783971474792550715759055224870663112201866159322264849989638633784008356304250706278356178446372979810852385105252020225139147408269581035799513845137875322666689351829052947333901058322887838101036581063352622106266798683106387284231596986579885418195939187332003557155106276230179430510351662048045995638121570581474317539781794463461853225753163462489299267851829749405062781790541679524014597794200335110632796644529117586549882556801136355215841567216195216630232531601822447422686360188680612419632246460218453763887840723315857011542050373356666909001659986965789776584461752448639440379123850876817409912745148275605774434586498661188208448613399890874794363243899340266689434417568069176220555465157578691050157869933533422731783420826829095958042142092613279377139548329581665348940300033915414248955628571968701451904675685911758944082522811044700201442619632573869039894788835351685623739254951601499844916626988502707607952179097716365152698726089802281498391785007236787706987057179242088006088178110028301593490176227052414092315675041680919749500597560697470991987591621340057708825503193277923302830373879957152654514001155468862500105161688547010738683605574128927999324565075047938660739929621109135170695209806911089490475549957698402258627765230155717899226650052846230161656368452280736894558984545601513104870418468533578021888507716037351402480268091607785771231728576053969989925881205608069839346876636218342332067414308942917447758955607340025916524751567634748277251278356290427024468601185552455869358173282672308304259906609774362344798114784756274592554619084391522585645274943659261193814345423718851067024141543199134272728920162789662899672430371043285525077756491089020439061117611069368565235319744762632931996404445016785252933973759305838400711243536370028940442085705414429280121488176280359841771041842152449287447350232996937192403812588544239305277972181801747600695978688272415442864001222213190855489225295495412707410212308148371003565674559652533001988740836772866646821175576029077463025120737870869999698017992987760194147770429774352622741966888080738712259486375587690918105088238630813715771225066243389933266896330198920505508238106252206241498849893180298546991463961347250407428607218923503912991054959267792670535965304138180261172684770222018757118118538214797295618492122693611287959091955859759833082294732764045195462053496016456265240361405783264257713413204255058371321420147321204307364064492616695966374869105477476270291180660064361622426835445320786450783084341465793532863942099630965486022024640857866710220913002176943609492898317870189494032609911999533932615583051648274293851185280135501613708497383381212143312853970868476627862339098567778764011529629775777186147846263543130092264791711965215981379641759727261048214186239018995731022353910332035600406951512069382301626999336776671475083721470264590359683816743727718596878133723438006386800735167653334762709405621130831729027108557855215015679939445512574678190242074061981027022596218864089816795424479099612066290317377339811578797404962411631791799028112768857706272400755704526891503850432676290225959941983497397441969329323100307712041427672716244549077232396823350049387520896830208912887192292631967159881467292338031864500312175059596354540569700489093835255580600781106966458831777917002827019970942764938531106417390597695939130691830916289268600984577561852002040287673423359423002167842031294806017727248421396881980006033980056137031684509174649351185554815283280595119926658310011609607017369058434176562805836233026355014308004329281699353594337375406681359465120898636308169577789029938880980726533363372757198530140272963546493627813044850937198231031300913735658253523937962169472545024419491450931005030230477391267591505417194760479395864533884340768593430466599324513178445033822345733891397755840381196623501185963153103580338657721344978357332376582923227382415687737703826856403122086567182988761520047705818770385728400392247825565614790578910560135121912037842773784698279805319665246386036243753363351232049286121967278664528409897559610568524514669174483791410690380448253048446382203295520211548571985785033567931947384697496784169135762620270094226580056613980659685483490447072158306575688908296747446187946349746967007783670368116371692294623356990986641396110362701714834189354037907955566956456744255364094371911159907203521037374711274055921966146901385278867454080950360365845550712834033444341955668187553710052596490213541683278410732018769485565964729501306365186209171116374813851922555045122725679204246373486928626963251502746115189942315408094840111588352370943956815929459618188420565963008350251888327234396603237130790677180961138128692108904780304381195204695046910728477049571678242231208094113040315652183735340093862352543001690629981509496815415869736978247702174635635148025935675161834136389827839716256768023509641944966203657509103774571731281647600488128824343130678163741905923378532726223803038793710853797477799193538558358790417525930697088591531534389643609703562307933394866280710331302977910181815477015790274077837229070300421357727426383148628652402900120797385793703776268249384564246289322241501714504607478553446079306231193179711736716474112564926494681114092151765178673009908223274456538805347911878980045833858015434450315431066617125000995230511113160070586417196822741553690702757423288418760368095971134135948284498091768558797657816228240288515092358670508924425347944245198990055135763205364313013406615606564688086296302075774227840861607708285981366496453158096753543630892656807744334369769088345930455474239053020365510644756816785626220245139761103196561017215741602156593368611752184750863261500870360843290589052381334171887467524035691447382967056077044712237284650862067127070018007762134349027045261936907679508595744866059361941304225334423854123112789394699699626348817147739666769751668299402817298275875286212501561355340849475162187539606768275401048451099913521039689960663230955982937818851306278488256295017923069557430370634171569820213788149076022675655301368844820766385084073109059642169633016328143755551819498443889259478975597079491895537308027058737775703059972177367375743890285560037276839276892926921099255271828901121133929939884226039152592839724990974344462673535758326938611066931723554914064545626791463973549033576753749164974127981507207547280819720438556719768586662086025576656248655430353920181247950443615281522075453232071048353371223283542843360028232959970195596071956775129712528462230427408756529984542835521568970365980690568856710627994167853539336843556362823273370991246379577180529294213839283757322890467443231509762856944420395558686218802843153920262070887916911101421855643120378312180716029991568693861561364980113549004636365844946503181960324036034419951332603617672711172930532333479591000465762050270103086302676952243906805434499399032748187781604426131817179447693282848735008473981104558740371860652912690777453533741479998280054845251886212071470232157825979565215579819597869583929709726579315991441810697217679166584518414083419483149018902111663934601234675243965938891138325989444365253951238017155805208431918335024692935495678877953046367301893266146469392672204928146833036125576329936646346801265043386787592800658452375322921904938063141964007085840554829539683690175743622816113782640091962296402323889743029209301345494716503452231206326347520853999125402861931406553560071471328821624985732338981696586114238817158839158378338690085101932260966579128103488571558044912177728694608070248710092639446106573026146912008551191912213997745233537286685921215354634337518418936401688166179837137253007410161564536418940785645921147275248235909537894571700893380665735618758020191802118208530733857301808549884491977904866845928045799203248110400522150696879407538475763432913010793734289695727724002988902940010868418733400320411335939110812477889941925919413829877119242186365751753208238802508045249731634627535245759014446493701225543882642690844471173623043849959040566194517158021177561769595046664723203760302982491968425546269573627450181688207553277834654270253108477383409589194000976140568414980000838877192943765965282678197101832469888158732831401466324292445209185822352653132728213887371377442373931134891417791413961839361587793076633362169854883349535052264000510004497851039068959459217038887824108938033066600181732394591780509296003299025499432422332514278767158124405093000672530050099872139191414889061249715967040169362959850868864533959594914946179412618166912252972401061597575873172684805293375191628174073274305004629203347707468639288244250649415621706187185950793597886350774709291544952632224846461855039585848177846862164619613443130150042696865485628301440599661660296557493663645584822157757081796302359073149636984000343646620093617377997196164985735886803354207881801191402067006939365268802562876870970369393849436564141520196797280221670121667120622067825966271921843702812719890410549291333741258374041118473296079042828165689652686598668435338710217113983921523598265371207137993138272574968108776717584096582593749700295024513091457561570762479018485209569457181861912996427235310641153551143542513877734584763758355367164877125797687079014155756635421472139757951910151870830449194515232279576876154415282877870376030739024738850389848453331315498329701709037392222341011994122189703822051568205258678263982543521660449346341793561590040492152063584927509348049103903084863026663885495813466222543386093088447584551435308173459311570923154944956265204353622200827981084354670555099307367721849858463317268684161292185209396916890972893228789241090860584695411981424342738532633145015282960394170070782064270340978239428043843070694332616790686503663208920103871752188163376675654980204394525203604412569744988701518948191438165649146911469428168320845416801144107866109456542140505921722910689167260722192918679331921914509842931027702839352208289884850618082005542107720587469568864584645832723527318067787869943972203861724124804095253839190699701905703213892287047264078608065335919555920869223003164646942924194593894419480245783048926842783407552572830626232149119854577221285057910329445430978679147298842072350206637179735877589566492371901380493187242021780244031953793318603557680440974030010010331946434130733416737612025583095759384069081105232799465619533666552915702435796708539546576400046807529871742900650971432189714214899596513312479272259511635002183749199491927315918325838183965144397659412561002639910595542520608742975764514044767376510671905108197668145004049158084844647692598534418500435545216392412639925338546088688858012237605996654874839770458389535391068665665304188324735702450845956191535336649417977757916945969030449278761746885237532987625526747285610195552613951032024000798219245384594550538671616733233612881337229511806658737722581555070108499080486842133212586647684427913345919539878267146435000554718906348990220471073541735500152034036457689520951449900222797249872580632601303197391800881043027707221300486795147309319634863305603459344858766626223479134274651395105917144377542218439834052148241642938932382303458984400331576463049968494683459761430859566805828779585291036088943943790988190023024336967825050291832781893461607746291226224977694823041302743166155510777355053927502540057323735319882888355835643502529101979538699387916051440101861622570923386392438459623424117680102192374818700668341748036657718458671768803244530755310277697903699932948398806056220661081349731525218914037104051109731076160161424492703964036956472758383113465475325036228912286200035694553999661927699886622906362182877778961478692612666592006173097563280400919881238499138643448099161533366610545426100649862826517572902312412788933062467011167562532437377391495949556307746607797629095590948716905326198187087217388916681677019268505148954694209471994296752212780191854018571075114841928514060296196695453684507797597675196618686667934962472003460866093655456937601866410572810494045684958647273334949467511870063727030345238525613426683888665174056203670741595799257084571401312746180567989688348282112005257706367614712333728397310554708063669104341895466164326364090336745342156190853560303134030619162904615738256207294049742711130078827637508315364583887851746112641164136546844771713811093057493243902605756929679811361087104416578130809391371098337608375769335386908602567195220741100539933438595803111953291903748914452992203048691997790107501565550955585035561769516920973504907773962754000407633430481956225152323508391048779331614782321621591815374074980722091314067477663596599508027008357953859546937987912352932600806082885794620380921700350671393735705521790493670380601385032216058823764611952844642519387130524338083624951960205776711531440515369540481446518565335354133598901350829817007244607389493852253346660791902040445177331563832673257629297610171518694975956847295443342399544340475138426913802444763018156818049023187600070576545646095126863369997284897122038554578991304675261785468685585830276933720369044652615694555409774157613153011890398817829268106334408460176970515661278598919953458918133283133709581589883333488114581974220130407111153832080675167300202346661205947179373837075854329430471536957237249430703737634118067882539522822910091117735995724201136273068280778857034364021086290686521089144288516578979897551904530184997755710943490572194814926332488426155054338994249008048676057094355571922641233450168757763116785223674451069108442857767158802438834046344518810585002364866862070135640773197061744321239438951866170986908472571454150078010917624359518177481102043305684178456722610082535292147910552262140802463350027074795600542300672121244636945309668192597351355883995556918408349622567941323236171636359394743244806493024408573453195867393817278448418660313850984702336009882272018363999404699378970922499572372953170042532702074227604993473489069205528317902538847488651538757000950053244402469644592976794290919645510796586897445435583989977406952911012842915779961505639549111923126386919040153372619426172972883728518496369895104979039914164180345018642356701879775508077862110386837315938737737727716358079330813691460256137195490712975885546142938418968667333640142240663137125070542608631808260405388751538327703147652246469424249836166144200390085588818511492108908712769279068966484293090791295130474959950976424477030853625285375617313076121643933244666497201736783106004895109945370534683943394769209542288501296961182226758677615425114258370216201889370701906972230379011539662594435550096877661555077813915545338698991118042061509333966610361733489771038486350047048142541329083688221101325342383603189498132996458245143081114411924079759789994181047939017232963461502281120363050719571740905290263406068004086273922519406227664804398208183477782725884503886078608538875165330321986169335044164120910395207478092125263445140307705766711618158175636082300536347531052564226159883887325314719732079753566336416911495281706582432957914628076257851199739831208665933000170199947275215451435745098806220177708494715741371976018239206804994957644819440903599561143377683144162204036181561836306096273253306902623589175063844140422575056205787984397389893849651520269314573077031633340462955085034653522956062293394379715138164053393390924761021991133422327858878829903208851805464191794038986219510442347538673418997357492206219178376381021139805341296009514644976673385126344081029967351221809983744629428026192703599333047693518618757171551776461659450518418643404336610708036128740362371755627536652583974670327247049650995348774983375940305040094952839458358304386046943249659720654466835829951789133370451520064975506022117401567874919470615500756877270597905015266510314782713435724174372396361671071424696120968652207377966186833469690558155911869199687147826758224424326269833533094439652236134184057301305066933077028793553795387863295080229662392902445866773611976380447791785599422990820850193857191992954197980607899781506780331507468135813988322214541319004658517956344145119930911044660781610810299901598544496332358022082179645174259590926737212687881422787024965841940216025310755895355045329004335328462091416041400858260160024057755459633909563965894747091426117006325783988376889518470894923953562641579746573210004118804066231069587447716016425427994193172381809138321665387243035177235198420261328284126346889671894433169123395893403497859916847100526407013059812839154038772128067714978933620778706733429308701663415293768780799040302850612559626678722646638619675448223511230013204369152813311960193287354093885784970196445961513648545642625608046410288543123532363849856407766909762146255375183330166729881080516116051451923096144911476407497891907814971267045119794648949326306786136489208869662033899022579937063260000252587280519955152799850394986843236295864117636697290339599737224861058140536951346793468233997549868113616922257475872095975054607992804031209244448414296188054179939585447936236350112359967906901877325657861212123468784209384776329893693896783447938840917557692365799974409871074727374760626874799664118301956467630610232824893631347899131514932189113218507384631790675337507876278341268901991873015025342242156920980779797587882353331129962563235407534836579883581059771047410042702037683347027974581816728533514975476946320115235458831654633036573271399180081366271385443214270100347661458192239662007859388372608813039045467678392313908494067189093345555324601336545648594851375414016735770310274397742833530947618014956563344583208243574181391550594185147777228815736951953561999766359200535388794149521544147917001633272250859808939411187863205434659324763603743298191335210900712077570392830584914181465799594475139485078938861512181988019856965748441649187704424043208934361370590632940500670066171522690148652449804017534741553159202070303298039551582275453016077849448532071786323657927398519341176526369213425185900978797874281773732374812356175056651904953387424554481166374420030349440008876772687491385696771906277655441122786061117169993850895970219443730769953082809952649329889518430314557765952709505176520090759230596362710858725324636651013324013973668543517319260390875406428049655846792100813804331609623262392689764504933796219009375194907626751582892041302085151433281997144148759080245538065160172305966571718586901934768065821663650709085616042903649547110744894825198417113076055195856790929642392170543408845420599341832613600298499543518121183003307308698038173686689164837644286471519936789863447345211947528990113778579442312249013475807666791521994605631015741841059695730548277507042833456695682253923616073604344365188919324258885505660328132837959660453121401921309554331543721335109772994215268154104577122751566102540585605749101623291569469546112268459364492076412966818252171484549849075633383508837788616354167708840795666094573168182791315657401747693668320118748422436865333143631958874729041226717972179039170755094629359814839261609991313459545626785985640751544516918991977761701719579296788661650296733542068392003658501047875185826695433083151221820090978478861137594023684216442232849833454048721151026386872974135079206866869292292775547459096650597903548997056202316103987821358374368124233215357686497429962253806394463162945719675851858315597816427939434359831675596200416967030083443044530278956422773635872090549189075830258519436981209210767461535516458294608122649251060260787769871467471482180646936175916805207249089728113996747450594849513182722278904595824743070192642845373119784487151605879167979259903917998453968937572628661376055669010353933807542904606742064552941936723440771672623954380457877775135922743150345840524303694151837624297896395175856532874252536300022143563671966190994336296654030197725052509920903083008183574815596631676114539750893779251244505473040067371018101276662094653672461508132627305542049688782268342242014250561185010761728402237661406847859795761571007257263872639667135354808053304217129169571499557408287568484670244409627618852918221706286706024655109578974541837753971039726285841777828757417755322986291888911622715570168591715614579464209868972833863910901146490666400362544062271969040271564665282268146351017905433972088392805917269415296514353175806158839817344388620877633697554784040013193168320572980210429901311721439057575002687385597481571952126090680561238166137735211923716349932803883803154170087599779338112330270613471405142649419532335376519177552391050046607978249312357759955611542037848949207385973674497243144242304798983366363397716399851149774302727084225230053076281260602497888463922482766104458096232111797716437788352287306282938592101690165233042399431034108839672668714629069257439744313206355098723806612065139436766498396667935142005200894304289909259314659592112931828080556213397301328595542698165573597564783109502155354432310343949776434448841682488060446494478909430530921482639564431693491908743092647258954095855738837900131276750632600257262188997134836804545518353997240061914100498549358246567277756023336359786761866689211951317431908630681268935981991810453483510023480096800155967688296148396927602945987667007472717670591933518611376635610281624404914707151411051006752149333708207979307203003088734427656463977417002910089922971120377075852909262294381671029768750911481359047405924079177353945405340268127947548293383382465936043488427069149043886466462511804694913577896535400132650881300186664225393640677335261562613681689742441279963128364958949078464683185014128666041321565352278253526741408077411913053433884084946425256096940718679993195444881901066887167203302177534727900001427107286985886041012639463395548467209323829326726453788022170826741452080392424728363029270067503225990593714862642560907869740145314144061250542551061241064818409424506150884431705382708566727188586433615287706837509763384643611699016857475702149432473120271280461636611877184932605582157515738962212356016112016142951178168815663651881250858627768905257452118187736692671869265148774887092053486209881037659717395624461063576418869251192420470462597330115172119617254957071961467199153510001668777844633929589743363473776306334935222161900204258078022803782842445245508330501056124043144065719725849060399802047902454482469636661113838149440637410095815893883432869744001436583012803525932376499251683657837410032755134816961909821090700501137852260907768275590010849267813783504107291289112919434973474707240648721837675172757213599114315755959367263484324798699170871927925797731917231217824628530076140762624515744465255226682191682215368789536298818579317231545236402110642521641253119084805391667409443090229872093739048058083908129193390523987090975285958343922310576215884644975231398832884319148061826615841311788337622302420964883443585312746746531702298462592722590924657490581406102480060051347823779573057667401128149738249483137195314708634569033862454616208501899269272609079839400921511397116467245968246319914467845532020749571598679129293187392613055064178068858326014923267434530634263109217606172872493703016257740470555030969135865815347890162390465509011389804131387980684145958510249821588397773377029192703746464318042535398376417965967219128223479070515041907043077075906472075572055301858296067561641486249403345027636280937379555910590774253058182822233094032218814954290391482874709020310896983136627269809707478544948855671039924488729879300619066667141530109946845694398341190225397039108999525796624804966594232304605811624344191364942984119880428565601096147866211850324443688348418629011467555580320755473297449840868373245215413128472602848845432758418184244241830508008502420867005101250462138516948231972296999844355284839170012751843846510887912702197645450277234684769037231703003795204512373478365383880960127759429446405301557243223351591891040152617348681941044866747938691666802606315431972406281282559576192621200755676940238898329574207527742934223109183965853852527036023197866879561180148329203378425542046518252402826175429599638636341449815769638840681656270538450209377887318010100053997578960281092060237133831579334650460439794155471478508385822887912665134466682211752007772993574081596489080206670591750287190101253303194151708570760296113007723316610022416061662505811021729302749782174180872743259848259832701497397333057678321908845142552633767723683388784945399502599447893436831556733850086519714488738513033048500683905659038094861991746952072427870855975352124352823145791233918670265865487295521759863577780218971864071362038030087585155958902912700088856035111438479475345097334276172970645797434866904338508426648533397944148189122543834202095820683861807256221656378535135801298236337516267920468452171373927012789448718094836991397156701224769890905456532150395144780844739666100699066375867420017919015445409392770886359584214399354639118275710900624675052098393298933017079672213311424353436341985116960405570278006702311275862047925546331431909351126250699862577548194013988279038707022088168273829857476620938810985253763597200158910393795382778696607740339526411402398666929552427877011688485353372362813756941217605275154233275923901931503688593146487586650747059216840192244415864435030848844685084999662849387553871777510811559079067093886333888539615756863145726315766366556105660342752305507652902981795645291208120006481095280685314833056414284161691930444029230096172817621713859107422218871867998183772691527913450238652410492243958103067479547042569805216578206047664283911151914447439671631032703177977878942435733906722669661158678846945229771827773131152220690772372605341227301489322423331451107667216970842630802761814171838676546962651048273957860259142184015610734699204107549079332179670833556841880580072520803266678193749823751065563874377364366244195080725601580583897172596415306992714213833142123766963276901833006216110509067823339705031912478893406300400403819496403532935123964456893830010890764918670368732503039394712559709273526572567725795222691301204961521528491038668970841504222924637025405517144488023080585243899013388403364186562277079734589028826773023637397083343464722829630073999256476043600620480231547323247221932583977380618089520922205134038339606716146790540975699952551046982337393627188053904707405411722822660458603374807069315475308031897047489975201869757502551188803801274975789503658496590449971459466928472702917717519710178365970409666211421593625844531516136600325603509151155575294734800570643299988291928286048099120625339585519576405846460559598774222021800900416784875834137930702164380200367870262207082144985934141353796136418417203574180158919945992893149603106984233506358838697647611238406250090270735315908724827390940690545182206714536222745416768662741968284320250090250511476437054045079459616091802077791599338027602141782016808179098451087518445733966768940293849324907193988709995188517862029922286585573744141546973087700082958668939489689406768237003370607972371077186258534374273202083213628897525861229295853282443031886762843279499887129705210526719880979980404546068731699093657103961949015431186969688660456685147439931075947130648723508020442375435149626780302520549372315548518918388166109348851618514584046094396203266370684877469510618790291430119289121125971371611929781253919878834247321235741939906012208235373999899151503835543327668352520528269406798539417660554355441478284971033764572030160585279108559996350062684555491739020998051104361194172470249669444048151834769045968071507088082292174638199744265525799804952656405795079402885949964047181359671913958441658666471196834857190342406916645991390491263386114332795007195687707543577480145181924248542429048023788717186385184136547963981627832094108070825253449560899311826851359036345339240222729378242990721069422947475599153062887832728582479299622151164322421466375562033453864210093508374060408390021499200029656464370297859706047811355846174495529878620135755764841494463236219549925003900629109975825106400215099220722054810989575458217240549866408100325233262188612175108158476567951163702694737215294048666217828732336971913644405710679757779145388476549424567874648767921442141197459594957103452481337529390724054875275364274842561665886541715668411001524223003547981476727455064553540566631790947503862325849326645452114369594790766479095321339281937888478635047999621341449018798836293961601688843344701135794161323836948400781268877650629388070304593167106312333877736653684766033951158954351728861919834060991741808417042346921757418844675141787023336430517872695925078548453365024626858878479411015644110572918373639134370454105303546944627736804724187532146546860181332536024392747240632333952033567131211774270692135439464125227963382083328232883798117720280912081954697074089414721051565269462048015887539109432765568624650760755914510341058534251741851935453577914526334877984552976258960058892728866467673582686729968594726023820414658760841624628803499524398287024357831590445524926876209829380372458847791528163440878691522434090230418042801276249168672002853116166769034629174868807197570836847300437406301351494009049955804340130349962933771967286727069317608804935630047356568592157714760408996781405267015298128383533521043191322388743210841582318918371996119105827416402770424580713162523882108289028679391860204592321513351238278392835927354149414142478072217790946560503197516481884477812403188408910167305928216980203313141088912640324003430250070199020847149729200637381911661740783031395725971170511097481190786611403314084702711766236437931802398653324199073433695466606960787216536563100639549026646724345642131157130104007269352978162860566985385605561402972788163216398368244005866760120870610978132281174392628309008579225830088166844439168370969958907899547721868051366440632168066524918597323293455074227388380784947228935744180667283240187962898062552549426633435825003250358219555873997146166015843925104158459795030703508723532842726108129837901593334735322744861849704679552259230341704640739222196745926129049597428333869211935241418477609401550253229375013757824892653238955362239073507492533263118956611982740364860547818644503215296780295099191059269709337352513155596955879629474853156540072772258265638111948774174991098620226295619786291031526969941986502450665711039550181548546679764867828498073010803859133478916099550274630776112481113366155455072679351088342043915555946839749216275044618318730196408219359198763780424528945028275619492470116830475854589391452677407582425842209220849453912103571532163246036508606342552603142634747425297029444776545271047152501090454945995904254322332695524236831972395948730097670994178559646240229612609519206784473916374614649200567398571907348128697401077187934705371416800069620160455699221024977557275757242526051926221334565014296395943659075235737572937084099300637832620766515271691141852714767790636637412923078258469972099390955468996664161431565997781603088774370655629391893794613337428142672878013565655679132027911578060381017482812359800935815658851088283154462535150384954129105633002726948342220820193604817620886401304791990426817569416304742392883805801891514319857286252977138794377404113817969573170971409810520811980621558497200145001284501591975395357650730982544022601050282717404452309582732168501635223363647348787746885918259922398777802114290502191336753516290664744180520866397407932018755098179345791874179985277470629570188875243567130519761136542097847798939364406375255793455052442028828594766395715707102426926252076418839002562788571532205285705410474125812773526609840507284441198709476352847908664562803583349774867595492133564785800373067965456143518729699701776372687345276394638753834360700608224538333280488930706832455973405098444522256966042700242777325437225186050159237754718487107354982047223319637923992254533977586599835990638398565548430176885811925075007120223388269088465775228774076518762100339451985607226173033488060616969757251678856419375577014150549744176396960963699575216031868736273641532953743476949729356629303004766591802699723280864457276134101355161583682339590546187960779334584860590129317210058813667887480107236042429312384611807381585345337377817838489883758239481156130803518501745032371084677328181928517722494732624505481620391228442098853342028695049731796156133122399597997643640251028312601863829432879462937690998904400398171329929752446411227076694755185943977296585995149138292201935951719404251093936321362257875955987918458381427310469518844602781529451804727778661775971020836527075733899879297849272384861190859909033872484294114931144982594818023436697059032777609131670773224664289018375125155288245643652055890656648784601859455027824136531365061576846433656577299643934616257446589436509647728235456420809711549852719290343820212203339867362152042158384594943986510029896558750189222730360969692811334857830929191362175370715746630745959100324749288499527638000924159329406219051677874894136474904485851764067944535820464390756295111284399785793735831311416169132917087186040264099857377514548558875156619401501826902167393733061279613313354637355600599527114237697924913819736892128428730694906066027197227214299089870314087872371801095444055596491535744566387646657599603004244309712419286510019896464964451482959207134951484980489555498704259590618126580930795303156037122973784196516248464092900631382985706382684989189643692353464555761093297595679250919870989502198208300481212530781700977224517707343085552298368238476577092124512316330566473311254451732320296389295174927947942202329657157604365546953912864516873485153307758452605196835408824855765825587263935497503818586084418495449693804489698889268232261091301765798862560277094560334222192040982033013533083193659168628743428774939046755626615462375333682913200850379243687775767397476502538600117623832596553601830012576523504873319054836549218972748579866318615044786888554581138261110845105540152605680017502128603196349966999942805258596613019619872718036011870567490738771966558111667777777362942912389609879673049001833348401757466646622499070877833824990413259138938929730299348659305757728359686276731227787820364491464444133562922442396815185334593641545320441905864345533660000935895543566388434269433043281781840105992102986257148654556410845119355161891966412192641018354570494779030193944427700296012601175340652769591680779320423996490071114862444248758859938695746959320882913150974569770234307448361977006775525676018328721918625524558076184435872775812145259689603998568389914362007172318538390975286190365653848940998246485062278674295546062468440661487764938795357650370562828479783278581263466127421697489906661130752206912107378137163617735497385795093353436465270120423717315703900998594188197733385059213479360072989260024089104769466612670809758478390640269034490619135086005790761379089385207469302423991439895698299738541574630867123582260598588528387104077285649051836376018215285479337209960982030087637775541103580875024504419940820611275961866525242736573689109885785613080441063328669219381562031919256531958526223952766079738362105635194388822396399254741276514180656346372572348150454071653468883680892193226164033108002198090029747118333057597332635516481581802524186948289051721907427154277154411670030938478244596992776352970464194312002435181241404452730562536155701339285015243957823017882346099822223331369312180579479611439545326891772986978170895813753834360503963318352292219553356690332982709624132348855985873436871575589568493462637104436855347959265115127496607015906866712337735653079283788167891898162641501710684321873089801812511742534110889151860247271910574981479162352326244929640758563521731122876079278523632250517587423493154653475775392913496172448815899286690022178072672669338067852570081782312609493381002364708324573322293159187916099047884967099013452231241638376406866984832582886611075217004740074819662020044288946318396806091053849240395981679999393789961457727892841091000775428740626948999044554167180582307546469271289099242061331435641923289705621920647756444114230370703366905903296480062814635900599268136769138711105890215345360726372293328512069569891111264903447347308047577484784918723265848514870892464440140841829626147420959447526859901739666913611853556175850706185324752719972685013951559096169014416009755826947745869925271058366111333799965741904170595995816066222088984728243524271383341515650325030167230430596355044372985420160704977561494778480772665128097333667848535180439620759291958517892190689953456861697847625031116878121064088352152652424525154574363769703193188032491401089014382840889263708585903254806373779477879703889081856028928104909460000576511558776917300919857262870303975916337814433488936562088849109568713960496991388625511823167356213456691099531299439498950959032598917844319667342163577740331534459081226020660902500149721758187582509491835964398389861538661971574557938170023874025456797920854138065191998898572151817527945160905829445058431786560234006730021511677062199454383075838903790462792461965517547955052620854823488464557785600212524437523924316312930588854078343823145239570583471517810090178772198020684338746881769857500794332465973996438424145818277698089117817827343291352033053858986130013504167693082187761342644887926643050550919402917322083298354211188783382624780815814104097929273923107806729414346994775132407677777446998720239672188304608572255469905138212488168828822389938969660213751569101182390540981112958218971005301913680786803335796806509074224808267897906142231890713734194523983978576483802306120055829273343672502442788452797789130575151733820227153224753682205948753355183806659430017569738368465407986709519902790766413243823235819788831457191308486135915383937635354077039296470751776410641634883405607928679744668851903420631250616376692453313929056709662995613228375376604088800177467994406346337265191772013198667146776678447741129996539408036211062356043225838253424245761297730615971194000661506084742660740499467765424937603208022949512818635980405156469053710077803903923034478266463837358950255599567244558419708203435624639612850723057322435383412461969313020457492954311216354360597377351806336065453363843085181101626124357216250788114924852103610011028266446156824294307617501315065726533428879458248413497305021857790123475019141647011516396669022517098232483680621303212553353447973648717554453484021915530036571932230411504958229780538984792236480775141951072519029372868372912539919953475737501130417404682169226526894033281331140031682891751406810732828656911460983986236998342716072566938549252454259528170797411380021855846259539620828041566510281252701756876343288420571856651084919298847742036196152787014994117036863588665856753546277394439058127251245535744487656160463632749831713748527552257227124308160682901909479335806958431734406599383839235957566611956901685976160312140138815027486023857506737474470461135574244991419968518740740260160301977428948333046105730935209361484570959310957624083445690627190067394114513719493685030380759508005759784072160988867731970687456818970759643469423099216003274549201958063618858399599409766913415889212449193636370306956860955183852823205229179846145142111639127972800764908609197061901966802559817437651683732594191724855888361163775323933526725416320828327647866765946219781639389042734235223216046564141945025115503755985837908822494868482467878269378911301445881443903917688483507573533575320468803926388384436175055455023100708900810580344101883822894583523317828650618811309333913837788101577137210672395925423713761839595929057887911858335197182648524553349922108966019072633116784880282472661821108410086975958503802775138533582757934734994473920942228314190589623166496432485467258802329048631929237606886297750673927184628580602546713951746737499933613381657668581885754599350609302092373568649812362145312941910925143839619294468303088146276567927847070901766921303625484126154685087213933348823421030524653885031752274682354220145703875312379213885940740276274157832416129628401884566091692618828608326517590568636919358564664877086507816911099494061184522492295294021979505516741203746207378269281101337610821313131355752438943372472010853138943379487306686616031539992582191779308665705545580045592966122032643597306692572478400805694179963838741398819666643319938193708812375766048680431193879464060783505253494771047943060476609012497379669987848411498830342277912679828574443704180792232621455564001559093490688464139089575318578811521074096212115733982079617285790496736887552424498342848544393017421505605868210546966131637378310056194610744245977217729017667200973583861609607210115017025982007339126970057020882537308198769058815811991641688050375919183007302438251333860392222302365098890806157169532500688948548335524277497126650950314402959914413015224186349106511437468510963259279335220887762659925277639244422854323963558880040598150138408911757179106324045139677070838779796167137164313443616212949578817013745509126449821928034601584520502806522541690640230816395350343137126028939566193092601900684392101924371536424498937971453145721019917472874896368290010652961125258629042179883186468251754782063429713160622363171627040336878999707070131318374013191697523236587095552195607490026833067140478775246660346556270397754279107793817521470906295128276039524999028275041456955126872987059688711941900384853558059440403805854657840989172958619266954728710957132676809537752013211616218054817184613901571011461885061901868014781556038694384357393021281135906758539531193681406735973920886055808853052576394078787141180134074600288188809038962323788245572142632220021416964938817809260168192206592858875637220613146894600271086821987711244537884422082904827210799318158067172780194715758692833401272741981281386044747637211475803166987238040653581078923114095048685994054788219312004932599446984457168944646627219552400431285625757853999716799091659300654034569892425712006784599728230493793564444379745530653946509382128205928457206731970073744970018359312194399124425791861546132262311384537204016383493432845628773394980884994767410464758278964326946958327652605858091117464972199368180182467284076472443769211645934689198060353006936232984283904754483894200604982575524408442959600798277037411231770914126984926383070285655504953504941583534690878691759375237614550774834155073050754657424315579890484992361461729181682347768055464513852254916189722801807761935232285052075730576863903142242987043384393726480450639970336050203698654858911761366486522614681357477012070876649333965602003469107846950798183860766375157681609227197733530088008459343320764038040237692724273332463925771752749462945610962493187329453857327671175108298311356237808909677841014930203458956225423856409867515101504645398515209810707997611948156669582115060284237548155761416216595087906212940648905588726796944958901671508729299687229879099458897636354569957042988599744960883720531684661108902648396878811415237786113053071554881393996993720424577506166042204547356256409708841870280137876163332866344263078050095128608698137266145994492912295967283274137247951840830493381029464945084387793245910180152224700019430170832795195627822650515210918082050269454090086879280687564357723755323004046043536818863919760663486953871512552181468181973520982020984726542713407133427060842510148099267088440370243791755411818011880177001786797842912151123207238025095505693619622232787775251556926294876531736777969912647368626606526100641983968110699011261196506843970160984734522926280961216396598621384094250013631436398376276470241117796689585552003483940774719803697803408753053332454435446294086671892153601367005242827034133419985409980797939596621170627685371474252272871850143723203130315350208275369503328652054925559964765162593571991521896780037219974427519154830103501989532410466074217368586418633110705594552493339529726792092948076316258318292608173947419687370093214373650786122228827949445923849281315995880225130663129038355034436261054416019646875662134593260419491465366643529097636419217340961259702973695377880330243370606808195045022840167580184714945986823287928529601596889696305617062434497681645854260045538209672095025111181190709881829155272413094348015905807195159462484215945618514962780667100850912052554908947236793777004018200162476461551764257022975948786368834611858021976147325954259395853447181932777239768279729754157041320971986674006037138213152360906104698500553660537062881167408551552905273628064373982023270365116773885212892281386694438474454364100012732252674151277051648388642452136190287159034961860240774255609751354880631330670850947069021018117501125975706508292330333973713529989291197848947168444106553042819985682042350408066733481657725421908241026159776675728757440227354793159654667375382137128054782467402617817607705979957879046321663297435595048177553334111584492257529637525802533311384919157903464676641906568511912639133600775078709182448366479804673121316025922807723779155944584757346190857189077374859201819640875635134648275933130048554460952840535311631412201081912357291442978115602178539721201506521252053139274327332665905942936849258436053893731149302464299742214028307842365434924146718247446071890953587197464463314621297870099688458675244203905760371445586579687913058660533698842204044792287265326484994564449600781159035808751243363190197730627856898516844689195622245462451257600635070475481877283251197059347491962466951816762488922327856648884705702991192938919068190751928502365613091795239592189330506596593208296036320667221687090980762568011557102639670206566579280103172481419955997307989693843330539340487157251060524748012886832289199955689562054076904963405794131706694872377474601901728678900953180165367608081981389523516755071061886113460280609352604654194154738355101490528465171965381204746392582658384418503452110522555581776565632898427036157638026704490970574502033094478972597388715285049416664647220374312542030778784362171330286315532901710509097446577519382249897500540987622061508813836383716956357265010285728779290996673293747997590166583945278093708934008467736941161661990808248305384851444658284866966105042595351929670781896074072849308400387763145554401859427035965495003180414844640647180427535967308219944464771710528304669185579127849125596589262762846317959197881089484556484742022538753949579045852038434189559026738196766995648693041296515802800982015143308588529282253860349084215344584325649203953080040224534982429247041855633336933415106531207081839911718142434305217684342206918352936469034665784695610860534737642753873059873811718999468729368361498572419635980186456019308942763553187549708745025046866667641555486500140376320696631547831307951273999965062437497567792800564771027850939008039485989592138926340252102014248514291705226187174785529995314855500967156795840820960689825756032742722214631188231905099007562397325804519065522051026647647210095858996521109025984463715903831894215005960814882364574232457131051551485205212437753515987034239306539105513763258040435441452367993399872250373273869297032343721824508011252123609155030525579751533922558764774491038536692140929996866813056081459248231826850959650699931766486825539430938789586143682902115650078514288263054312413370428872482977516689778253433874649054382341510731323361080084724778669535394781960812893524067344578799724741860445304078722735583628939249459306858322662199991945441028299706538849278477908188916109958180465551002608404038638594658837727142452323497614283131435111776867080666588736533065875599318887266113611271940197306651929080169159580677277455970487999698604989809330484227048190949172643924379643669353488904045628353416702584707715484944412076737439866596494774503035715163231745531176864897615131526953520315965511820377804646932707677114046848885081647710583759104111987442407851731038343255481336484815172258136638567751084974680180179448106546177356436100165935328873890227825197896004894121575052031469274258089347348823007070240430474952941905692109708600486277244645657431777537693885230869946195240153342006973901612779167322608256030403007877292976791364676010839188251959458606004775310330911210666250130299849974902624566072923345089365518173419958866205727932922525207215088907175657960748296928833905104429345078765655756825647438849034527829761172613741247658031576300001602977864422815800094316098375204500005913618860474224244386471858319815912621686005938714190035729465769441218379864412858261476903368404228698881303159767714258752638809601093398615620299667815769477773435840988849843039443007794237943335569996456674034924717917439514947748202038420854180812892013817952883926060015382533221512644108387852913492752872971354375003034627418313603507177884001156811456279711172634549062780465854002187833855306290216896089988966628595195324443216500907151306490311541517701700114611950414868572732540888278244563518035091309271481328582208957740378335729826852284156433518186840127941421148600807849410674011187642213066333330568983936136791632728933414638509286737360925994287900398521826189933025926013793921538223172358943554671253297340433345957437122753659416170205851212227942706236187267592188408105290842392908168276692004444319682164613356656272158528496591572980636762425527404345404757527233425222421044995856833710377265249012193141908441601478153601030882963416618801388674287563523693269588671922283519949786125329174797200515273791902197806980250953680655348454065472260322137883542994549330466316240314260292920288422790581097469386049244149643481599845590937151441035475412141838232754626003513651861704822702436145515580447789982521881010644875813675548183766629221100319349124643441433817051306636208243076098295114694132159613057580273736628412143855394078938902547478963096238840559333196175834933776835086926208031125110600692041488508421451006171857734127705537924817426749264115545080000536973118525964152451843427935296533377241186088882315135259707315137476464944638931390199776266007904174877026234400916547963468784974800053428872886391858638363893554936091569730321565593011059527775779917017277537704986935721285995893624061052324815814914084507931757577550607333347491765787759738722564355101412077168921376247695851469349171146338755142287718851643220965984377693825678238247775739923380902581140087891353883576449061350435867598578534406120047943632580782662523087957311564162324938981256523015629320494134137835579639920828724472490016747807532914050014884654808984195759625342191560465678823977075361492619506468181781260077770531398124050501013617008241272168150212671084362898080475369358884579263036746333579895294452529683599257960055120327741725445340228783466881710431740698021391678906740871475200862303238899224975064001685835542090216243883813053836451531913749060593181360867837107406179711521171011786151240864276179161529260066447362228567557588844790537920983818602677820703825237732227709281265903498951739026884695809068627773795140473837538617831450852688472594244870414243302336792753715914092714769664202609527035945334782327018412517721498301981102489063584014230370012488735254911039198506051023369987329173259685692817670156229873918817152283556881340775635522208600581368070175866045040829923684222799034512796256777425974695455997147034709333603750397665211246466532461048767488598689431938920881803664692508892402891998439666331945015709545662379204956048025038906077323714222647216708430225092442527209955939711440556989497936846920198927859290826602889592815955274369174370378091269185314035866087257928839872389969062071805711537725483981376105624169529494309660308657904175227114010789422381426823622374094192067889352456557547140261810289817552898033260521987303792395852439476676191678116881299697371751231698313907795062103903646345859425794668200526061465315902364720134934522065875891524368269922571783058904748193216049536859277897298557425967597978008040637811823335004266874714677588914167512930340499086851207073747184806192459159099307476168415296561736044958194108399062322602226484206254716853727366673172743947165569930229297538715795597696892592126995333343659860284369173378367695160134374344534483217835005724643478780288848541662709293274383778681919653586292310689056657527061282654646796007514355031626459110442259165480233129526868316736182991470902785099096905652142148923472027845975363391576097745405517344564802643241389947555808341005438822785994584724493766154395655927878239231521536059244927875654613248242755275371421808686227399070204956051192036526092194039571437031096344106210685134923717894077241801736365952079338517139138119385992037401641812775590626354305195049538562247788691629030941252652595780274594090743593007288048147922120194843566703646216966950961937442603810949787771476163375442064822747731481203533509061558785245333038314866148919346656123442722254348046675810240186085380940332902377859413638521761493136379073727693542812465607502976928323931537390634375710806566000310150159235025441160425587920249267642911003958479360106248136392733899559212892548535417188036833570294812918888795094581628071938379618684609796266712552275303117817528244183797991924834291231949717659641478426443407699536257260508922795373409993576534506199626025688529005038978238678394388543119373545197175736474221039525278961004124715502442069591464002850285126600339180148142313457480951693201531102271965445849455782173850019314137041073092439586641426662415779744320610025415093074830126717853155411101508946025202118480349655329891968652748320311170710621354920156026756002742655340353514828105883848164893852884513223877101855479343953696668908353141006238127734832844553831982128320662841851446247570694960446114365988513218756029270681589817543841356330872191203870506120160583053245801861733636691606418339909875103780924305474529377755270173920224331154339842523147729546121154370593538244995845401682178779696370908043803793805831403137516145640782996328553605469767436752141581666935169840054557116761320791837921944922280018429752096688723153012053766087224946723427646746665169740598656837434908239306489488855563589031881272640195405377644504267027676474597122644936322243841634209184627303198340366113058223074229808027281535173569500419783099497248635626982741663725524531493202455312111964661781905532533879945474128020586387901023303736785535953009662982114620812564399702742684420206486620932112428217613635574088360970137014539544793702977369901904759812748583298198726877484790875403598183109956585495086304922772165071278375997103247140972704765479956773496578157327442504168816718265274822992100477749885152412584640085748405337011339273355024240838543551628076514316461351701777514999226661101837514847267821994261232842819499409738344332108629883010030090212474416999317984602103146891323426898797902481403793260741306409390154184027706975814743369900248993491822823607817167421797329509566911713195586135027755097635430327647657382081794671414820781562058461803678078580313060496999812523715890904278874543815307149920126054172735409525769625135289481487211959959776292928913900958444226566235733589554179786888521328426652913618330337680347167403222922196731602180203287978156505449196445825137372261031258027665216345133985024003933987932038791433779382127764630577890950803698569640347595826896983313444852088014293881997645992699860587481805743493897969832586559373328849480792918421156249596747602623560903409494005964139312093490156409546278992258153354066649728267018044015274629871801845119250896755103482101541370736192862664204704696688298731837566137518110459029796948789565238283200495077356551502308564022063133053628624196767294746809982862224857705794456851915765514666613829892461400347199085229206078619219115064108388244676898054227958010384621977119166204499138745924221428772380674694503687072744001782089709189627451159071579894333420138506742936160324661030644923937729508017470310710363991275228449741381535564334607127955341502283582717217255171191434372620440362804892267650671276920105929524965784749299385229246364763971855293039194333414144949663380004596579710253696055997589897567597512821462882076214449845101774947189572462719336766662052371580139481321827396814266218460189974478752632953534130840840206155535975262933312107933866892390825897706196990594546236464875233043711256538473300018761252534371650913878916834262278385182269633092525193503523924671360527840247946260575935248181669471773780123285630424586086603329127162287822577939293373045265541602153820784218688990627485157289286932498775889705124514623532201225081163404846564362397215393205987307158449344815701451338959365529755020695251370711293932719845920576970722427589431060237457541582305962899715057320133475630475744688892078468919126814719273734044693700173146833768260782720801155589487586881963557081150827964369113469434391834361278901607495874285390687401283836752793968396141481244955697247012300358923875769520594670334921868044065692633854547168796448298736019323723769865365635636702980094427732202772351144488640170517149492738991033305947301161335395078465247466918318402067518793916988104385553761763759249884113497246602296337838121377280436952587576571563863468479248060794308063503391216886269617786688656276144048900238775967444458124865182529553883271007652319202307569257029872244380952330178397206852187577715902452445556069214159162048640049626505679519662174240505149286647958927734259647893692747838150019968795805352964780331793278154223002654593321253547190337900138195803654217119896774261405834196180949064998566317670393634615413630355738107559418644337872525226937737832173821158668694245724368380978007669751621490951222746485196094802462158355640788060999138661431780298174514519077336166572781010183714425393300469970970826638224677990471808267319098728884974772616356806030639814494021344884300015128747229234455454267004720090225467160187799644006016196121799664081612718467193218863314616439346767143121100527829283508712722590169088215574951987915747908390909311364792115668271849676162419978230371898445825020748632417848160797774109896681241354696813242125152706008783564364502416611557165706082970150403784102885546998301001157219632055241086183438168978355454898096522289873894555399484258923963154638002843122701583775948632062633470939642888278983890512395161489835610096999815345533322571402175860424299242607962773554840786894251069149745571342914661251534502257440913779255438526104527043554155212766649385966607399788383229396337301209496806969467883696546440194526388769475802044190039481974909770028973022310100143274514422044158718576453130229791486565515962148360663898349558241826852355055862184830539328029336588714657808809299908133924896917919330298994624837459182214860504035943081562496810752990159210011531003736543858454889864111704380053487484091464737177876339104239691114639477855093055914367682528091784465557825723474533608243333091706557708153735736219395462577908154552327611843130458977563599098488997006406656457506001237661700150815794072210421315900983595204321748225958982245003965920968792993081819560158543265805252837010353359337365277870671022077639799541037555500465949108223054237442814565217286528661631328314090054293265327661714146292302733018564355066990153569914802951709907492850815559158670353417932633165915787782175498631129762599360886685086151508852416996840963188009818982563232509868794347581509741306545948713812836977266845878348465293946110445551161420806892380132500303700295437216136048853414870959802641990710456269187489591566989537546199935459352085539632483901923193428976440856622675459494829840622528175523348067824764686370733152333364713722917229858985478968603952704144526199356783995750794187182731549355053883247416539960714922121998038582775433927973258379895392789582861368243867850046519704956559170025180106334754429474705451456077895287498568348853644303422960672480499576709320603464982002374900215232664419545940822687925610387068678724480148552089603799562198288759859289445878144007347834269713273472308251794117770656754288100939590934383629902922166145152302650181204238643541598841787889453538753313194672174489606149634616213533910571653880485202885654427579370140795345479719430248146749966418464824085306388039921680841830075040953169473548404925328578142238075723089127155884984518852724442383693700791047193815590658833913098358239454733233291381255453458852937466389215224320052857932558316166782603855046639068504464543039194656179007733355712207553810845062811466987401643752020997183570909226067951766188093265503537849106632880315167942920537296917338880077063638675902047176644532073229078582097243904380270937371441003833026957318131690124309466022078144280096672575911079792334578162463810076940519298100836467438583441828572896012677590265205458656341679787960450534146317781166735749784026139067198588074397588665445600404817168637794676999841709860356456674445437538344476242025921081284161690884218437776877455005926399124864141100420306166936477248074310597184826899104738162871348797782360297326154242154137067792868893005422614955740377993799879679786567040067483098135473864092317895684083155093442757422495471965230328288611237741289513793876099035511883373944300684986566122102064756096699865178385188613918191663225289084273290515065142355030327069214651719984725209640181765977615969264640203996022025614280941209414845737410565260251637776159194214882921569744344097147324242116876088438383761603589407134407182038064117727972743268168374567657827606373216906538362371455171259284241501653797524333524404685799657993738269268219830074445824614556128845020853815105766730697793969214625208888232880161057588050092226314522197499312697110422002827868080213822749581523200636589856782364430456683229763059311180908371500830504762519709656130977712735435529200585580341367072093539321976699607770002630178558666718933064364402615276910969497659197299714716059460341399273267349893965399857020173591705325204063501648243305365548594164122356404226896724968009565867359675822315979293525912180015831372142747564729392324738132671917302891007760037623726711123970901343197198913259395192543674070708243398099596453769228168673699853296714202833935852597961027285581114504166522000434511992235156431706745922605637412552186501576347979312246167639419423609467587651676032666988412760388649769079994816776507972807583707052562591392197151155183642261311166973895186732046505131281686381375207143863180336907096864996849323887327119838427222902321073678736313722070937220049251444839777980090690758534699182836721393344278174299734013845667258900803238631243426091801329672552336395984093967182803823511596799395544571791778373047686761931289590727134825694764933000666899719091586079619009809370674191021196058325386852951440122688592075753794382877178741441508242484862997089773768978619914910744102681495817963453511040731815373111772840729733209581568622870962917859313546307656164254769218673527340912856491414345514991047485724629853365527851733493548529538033525529879064773555465826116623593422592952244566940888702613325598829538647813009173287899221696417198691733914719991120515824823991837627767753195762951078003439253925274790738157626721669080219608407911886149322052056622856346405346776833997891853591877710313008411808829979089597785734770862357711190838541337464162518147167951423077699628960017521041618550207384623804150035835895662393488932721841282043019882297700729481211194003896693341217444184617409868923232383459912882144999503796782951962059500706150195357893496223793075842161677899512313535841510140859034691414934663347547002720139714246717854877270246745056080405085179739129595369881976014956768091851830312771216212995070286419433768990786833975387190992966212456696227517533848022604082329860405146390722812765990974190586463027543797589136522433438857577374236656242995795810067987996544068374559933648599832111459797749401435630476460492049113307716514519039285037183925054191865913984157636449236413381766194492870196104810408374077063654783257194673461758625319893157097072391119071635832592930050007796834207721624727068669399534890295776039441349903532597190586751217048425734400569256442863960339325891429321088188055715608764589948850587042343277577902921552757066926365571974274875356769421545804819554607605091901016663074571438417470486600300023044780183743116648998067471388977600549875565953700760848869285287601584904849890997827096593227294654195088009248312246768706643387521074329739079752678653224330625970569129177439962641288994946298522772763886977938438168946564234314959932317437250894457216470217183679766321339180046989026025469584761257998688298022264230072506603950233696731513196592012990817979452374131330464664769830935857687606625387612349819120397848741041885944990533505210389913823588099411200229868956629874426481560432247710270087836478181227408133971479297554866847331065473477307725134770426395751738139468986081880958614421361675977585068365467718502028390686668578976862089776687687276427642343088708819113759165273578534578963882220484647563008838468773140900542541093260284867850836572003237047789838393585863450313465022693388922680047658546158330438716824151408588376359235110822216521231340638403724689015264176166433936827475254362486938520142102782921404425105729777383557745997699278099685192623290333705388879749635092720840997918363803161782311292298385169241923025743198638609942387200440016233746057910322833554592972581712785698790818575617874810590881037157475239275843419136318988516309842936998491340651586479916331340603745845975547347039656638789280242634865505215530991996010899195051459746543692385839347605918291880304095361884151208072661208443252413850190854194279813448134889938837282835179867830928195406461288809176141631315576377257786257660285427120497242511539153398582448481895078433846623206981673152356313612399805169740021772268145687161598505667157039414028173546582682029862389276804960219845052475520398885159311117686818733264507042555339320488135286190903630626770672185295921686567647885701373561663864651268000296478171367309699327307923627164570871131242917691537368291007446902880991959464800182616182836640016250565412764626933409621960408446330452665246017264222459039463447347709194580478250770622392580912284295318884897503167648941432561656831845688673865234284497282003536130686174084227434546670852229310105246135493127209399435733439605224508761004672879549458971711045786466531511353095273002807382032429039949381927794072324733121382683928971042862136676763655540791385896590422025891259208338521114045032363087044789494798003721247932327286490236841939454755258743428414199527221284515167109718426727036133800721832683514276144574752748379485497505393047482600925726091892822481016563579210830757693268193031137644331509882872918290030077018461616728655381052687886001055128879894998008225728834247221992799829999974695354653420238702737135624828990521263784671682715406359068931992748241418737478960192806159142941407796041428551984756244686232521306329405769344338623376911857058569178400432713080259638613777831775532089493052258035683734256173277796950474291121526903875003295704407145262861810120365356390880482443057466069746666066732243281648331042193030516031270144606914681384942378393151859972262825125798045118461636307209493656045545212380089857295258229431224163524120417341413603797897887934469530310963297426418082698683740912592755026261825370425258360390779585819512330698417897438917321807625643279914082534245777398726937054420491155508324500604806015670055488502974159100527705957966837513985376299289242258494433234722679757043630980135399492463159094419997837856544080607059605072528851944146417956956123539895969612791333259731797357189134225857395652390479994838072795984168296462504558452092249807637046065384156760216250429963661278117933176515268043126682268678551463416123259159548223639733915503232500075586356071312013870482812882150866266863748643416001573883508555278848160779516811943787104316273131298007306045608598146948822242319991289403344479018689430977424346218518560847365748085099361911177621142470278975051929314442261727416181761526376918623384900273681908337091885399649002097787805114898320987989069542801057267607301396523370210507822844516074971714461230998611489194767951438484130493037370107576209673356147949115141282413215186477751665544419426596467580184942719262738107277438876731138604371564231099685634782809378289206880254324083441058196958220055080128613663310391717337317464907079613317958424386249057828917359225967347050302461568599798594488350894331071049249104733084228683257475066769090379589383853572010685724069026262826263021040576465133545961585728511620648480285570613550891120903358483939976355794668959223710408268383872515479621912088170593303171439296143794069268116639789955014409245348507659266370430822268960409255926462398246603086109057615807426722736830955593709338530631195398826633453446510260246158406531335865302938851850359722272171903956760495927083898659397625177135356576351155123162874816727727127784808703245433184796024926647674284390897351147278100265930145750154405849690671360820563864876867436649958508162316077765867314723743460812946629193981138652621740367295396521179488220951454024661940441712260879041663308853969180588616575764153209279552847914018362237250164300616894292567526688502077950624340506748428327756630744164590565256374690383075642865161505456753602213261225407046810392742457442213062573555451917516736143781752963608926037775076880660474325463144648029949408443806726599393698564481598989260440485532356883508325059870086453545885499235848280395626151035928851448563616527240790891888823398549965421108366009295934501303570319183078837276240807916900762039240936515175881513068357842952077024086076775965709649516949197171575023706104810466059841936745604449545839173505078912781486635945929029373118397113534646795975496049892712989174832647844683648151554443361667640895753592282584389712540179917635517818008243556008125006260999610341953017198593482875521345862020637025353377213635875309156222571747675881138819940442070909541596953006120410831341480452484257599886935245169313498082014470159145398656741345439994189473307142691697052384851243742605289435973512203656545723549876291487793850607512167995663913905073603404723854712514801372062320146635161813126427228055319355008151651243803357461918492518435068541186684081663673867370605026619056945298546169760588280370530385427906694893420614524848208224896273328560586212511301457884919965317166373046119260438901473582293949182384108264510253888712983652292821159556340486815117084599204639517209129654052674202695487851696936548569250546487832184600296961880458073839762333796936274017581584487624518236668982822650708905941405621352656890345640483847488407058689933316284875251433598002285762215301912533586752619578484156082692408017603868569896861880372937222819109640956771805657833530898110442768746589493916718515618128214822112278962483181508323940019809533911940735420721725627601772247261566033533006985755262589984220471104263809946240426443372293377441244356928202374457913644422611498274181809468662134597295340716921200728286410488875860190094769447788640202395285212365411205519050794587494961838920591490738919128294430429185267651809441325389229446282932746475971221304005244023748377609796982837834907082390064671351005123523113794864133787218123295710979212899281795924945948111622960648358569115826497508354334338324341425174931745073216280641986188831152075292976452313589222898431673532163457011864516203328976286199239867434449390303110303726304918999968944743679012448233074403376355049278078296711526589607315747511627127735696065312132510683195035504725129385492109890270058390453434306349461425850655024499387454262621143712918142675556004994418874849201089314456311984563732928457571467686960532103651874288335613839995950256250665283163770492788605561492919868634854335755781839334264022792332565474669788099645097631329218728354263465832156890960064613146229075644902067729879738104378957410295047495866773217063538137360120606925132138289616640816372592549272971810800340133788750902864557725381941361513229735828492828973036268304570779296502228340865018912462088604294219047693544290090857909868640524046631827162718867348169845066609884761278120452928233116274583162159016982198756092205203504684144742259553955256577857007404520910314993061959656684273015473475000129959085135224020958827145903823019223665968321699877170627506727155376252143576286470475006356357194605059055447333662971744257353781477949690270412425566506848607869886639470579129703379244975121543091846136709463490015341574355517059494211583557072550104022368732790242367118789480667059065306004825090665138513153466533146324908396469599550278090972479963970696172193854960172440130232724465549835821437369717201494909331603938538113302414854750947841544177587046246731866835197686086010672488477085125043921318888043121902954176849580504765556600537274070731973351200153058416185816067291052532159570394680046714163990226919408623543633587257984827430893847261597560130838724293791885951086689546258345297680935685468225319325927663187927387029390061179938802426938394283610983378179531783953266048170472201115787935183878774050245657645218767114010381462943877396903709666307575615082366922271004502226900083726464790724267911079832626392348388221902868581144103265632368123382990057378661709676172843808580374135105884304355492891102181813217977859637211081752697367639540500201839805140814984433674535095919698708460564643489318119612488585818750911217293562271022248576893575036773923768539985571813461382083767168297267114665442064300713533131196920348383124742294403390023276433754411687680773848349792375631238462553104127575523817031263993181289550225717083397177828985927919515647309958765126556065918341069073112657420504694228586757881989913216032912794809064130733991367111097835075909520372839777274602501341942606847120871474139719803948377484251159237771001328480284798754524290615256298663397133028943742309348397764545875543088026856721924895604408911770612514393931573352683719559449812224344474510739918965790475325839591584549221346777202072613300011671718607021998765211592697398484691390812354835370213731672524463536919223817813280353306939561808187573978284583782920441950827605768730919243300249990767724801647102702749604933124338760124069952465090098643260374371321448783162720064312876087774641447279271442961867359750242262925712078338828004459582239780015615404586578400116348383566701375429419083491353694662893241105112875889337042996573962638092366770284497392593712959417661144559600065306089363770488150136318770069804893030267445003728882883583125450189351138943683411567901241315881095240244715531879182574624107237332405185225887258897908882649209563611588228304400392307129759294308035320788864491872387538444103028567562644766654617686149787080774503068327985537028148877521262587702242731904112628980428408767419364875194043532223515776517621167910483466481982589689238918090665740791648432774416288250158532370666243338327149404162359347540721502795648830765531462309924647581877057148311476871396534015879472489609241504901249995990074953912881148836875593366846516295802442970078898650190895825516609993415045774299992047429914046482267221977178824527150305564847916942012907067584551789586895196933147601462650349422127395822693595874893580817512988125393212417601739599520932935066021233353589384924864791126427981060906544949869701600701311735527181010283180974108980733813088968126522978948501681548488396601860868923964074588277610165705196163107362357382539049026108668880641836000781023833780442964683525704940376779961120652273188868794103834496600816093340003884537211736104624370324267770336093596486359465216920966623021577833148439248114112265647659545242705774189322303869942229869267194940504883542620610044153588396102372904037708162667268489474618125162535775657586233354950763792139455284455377902723228320644862484978069825179428122076925005651277256132890335059312433706436381226655524587182753146639669115015913547049854641625911267621650072775823815729852705763592563558044302410340094988733619128172956373717792266747672376671985969548869201790267388945811177996318976799143412407623110676959011660107608067002715598540384444869137608206652608100479038530592909898330033652251597147513930847541263421428012270215459186242616053574609934613780179547971326205727979757492476265216043456247522859739254756290247085453528450531274397182010316617873482880141381028659737493674324805825312680523907603470010045778506196675873136124943523093804156578992365942974262985486316887032003499140510028575826512864354468418184364912374886499347793745328748460070233078540387830267297076689204199091985067502567982876821857367345618150391010881112189969087098365374457567886204125667805135172213959235087822423977638853214973411998502833699921704932122450885286458663187942907632543856379959269041408095768798302354144321709466058008528777020061905282437085864532027739854947676926151733322317397710192537210368989443449396590708788919188358480622920805393794838211301238339445352891017118090335684521662487296366289432911651370496745491440854160834511162513811193271931685341901196941232516399177370690763027180843308997886300549729829358208898642473444869060334919720520368477498627312201142993891491375667145326235205999691270340058529523391492474238200142756080509728790561693648799480136913817577533110886893524157091576293277266859516381123752649360439379249991636755578138722523580677564175629932025513879456627785118866849603702336227234157990377596030087657258695751459297420960629335074055781809798502333871358828274406890072270595267686765898615640668718261100631053075673431182132258731638406866681122009676989583515848866403739773641864937727042120575217585792381705796778338131092918485655911845257549701417475976417770003470485855848043407332264000735177281059934501217016006612104697811116952239028810803719757876410606036474409349007663114048086986992099695424153465920122673490768021851010719478171552315723670961074608379740705901981872987552817401740416515034181155180985683857911363229472878345390180639873411994863979751980007223996357663537199892484470125800254696349564415875473892499248858133349554440464495402448920511625689728974673534014854941855353082567715657744140982314147879772471323360447805696598520802567857871361292097632872688347247861593131939655652278333148921275547615836960415593298652516642498725725559458509602772826770746292485155259277629772336712419372949287228315544081436213768874552585579298021214510729025454343313135511527766108999917733375634245606110558185636402508131412515618626935692926804893632825753101007630187272571724918860678034033943899897983773844799889169226129320827661874063366969234954247592187447155081926063789707411618660283502413531298216163754580991420688941500417444706600426009794000983067250107436608758638620801018233149261872936865798525688175437524807818636176683304230475404732883427991680759029721613450949769929757050688829416393071659076911275584169913495180166573016568490804373384803018444755564836326142125129003876048627190560431193770450840758361183845781415689918293051355093079234175944717170088922195764411565414441398356041520495411981933282981529824566997065541163165143168470326455907773948847711259645098668104597536139035166855088596825538982189772435555757110385683264356619646426045781934313777695333030321243863231899987962819010241267663610977806172932082624115951364682647014209027110324928710013948186746979046154158871874113943976369648058591285305405468317496897892944173319181578659445528578417374469076147349876150297276162861072011823606192967133751405147394614498283615238289967793260516366705119180569894546635669479011575408604058894647610782156876091998396113807169527870206572718189483111582359703933300908340645033431118436169075375929298954702380848690465947131901571701927622510481071084834060456531332535574124416023239048700208159695352694210872574511246839452497483282015308723480582212822217443442316099128482162355638111108361255830483999412230769161868549379942726098150928889702422436144282356341113207074891051764585784687000633546612046363322819732016458294683865025057116357835071092051938672014654915554097741925045951267456875754786192703107333550347625630772068807264189872580798083749273971337575774969620062899818760522726869005883169007401970801386251425216304247828756019389134277913489683897470705734299094877159973518068931987712832289757004397633051181762911809861622273402874147359913580049447271336794107335134670594105329447116348905563090566431597144726494946520008968070554060357034372370123251053869463408171809542138422769969555206543796126833235527449977276470398280136210269350025555183704836712117591200417122583059399591531327781685712946821033787534194601475079392189413035018093428298875278714235626771337251632926692171734600594048434340088988625701506193143828952506166406190280521840136453923347562406817439704340128111822458918285039581249389842029285863792781106423282952421145134560104090366521174857429282515960669130347435385924491689637561470950346025576130842071795443956035931321350855458668008148557820055403066742686045654967931842092342706192093983604948242724625939802004626983001352190815273333932732846185384791253903199537910530168363576461948986376337102941253234436752791640482769588040298560331149310002654306063433535001267428821562667544425477416459944968773787211764691525897132885803998681464149948683391398367241760675661270197660690702420166660946899051537540667110361453280250721192412836335082479515037555433799787065536321775115096279230262958920468874690444546842492426122423028510864823032260525816402513102512507369067589013555996258840672557987466346303576477172589261203321103391454923201085691054833046407549144220843765462612179294386446254424473162507919187432646419274045895293827265654841705729189082064535254294113854117705948396690510103527464198226346075404780436305178701777527189812309033385960847846093572791858079652331986058460649659734171451180048928333463244275858431350326300209964441275467172273871791279901339130915371893161125773525135301101106070061120352779792985542852035471096357120001961602530542174979680654546360116370795343586428647384871119142522679431457265818960255136036576119197965870199005078181634431266632409783887641608246899568014404946428522915102752177849791556838188015267317519158502955100620551698080018459508657515217786541023657822166031311716975421399112333446664078092755166261802726985101877561345726239176603713387697717657002752718477002850930974185266450933229999363053884822108642891571834678482779422317051311394106372479824349220365604060534403992989508589759429811550072419918411621791115280664627051843151393165896689433355349679211080934710156243724613289126208415120164549953837796749826798993262811572740623835712072938949702458514670029857423239098658372001714337630785197554831839258823687005453144607884545437483943332959702285611068283854803238499190916533773022126923788379506490905504186470090599015996419593743917977175462691381237313880742777802608933959346374543114258568245583162643527697105978392542216491338786016023386244177262511994804366738096940526594527626893590778371848758566072674441602878856582157378880015876706214827028280454724848268792411498176505579974245261652962184431857122974929827549510110659530224960118409351889561161224235299496718668125690403499539150854603946287786795394246960392762160083750684158170238025058664017101217574018398123607154926984624358065690681506618345764570260475035640037713168875591420437802027713860989390189496624768835347600714201388905245055437191280205478270493943736003962762373496927338276317965116687026962834050422734728204733032656593149729049710849836779959041431577638905622588980904133718424968276188192792807764075077838275940132280191419800840219291525227200975938255748272203807565024304743130075860647328084163119337373579760900975856117351603889567600409779470979826561350173929176823236627799088348758463109477869036118101617359381193974865507709490246891954891668221833459414126209127067966300120929583124458078351558948243567519820211070674189964762967805587217683276056653963007550005657107732516515592561843361861393075691017363413592892780452487913315687452020627859283434469154727113941917298037797334434092984522021802016241229374320384306773355724019343328840386307375626583386650806063099291143102128229620219728031750494821146940075885415161894886230703886564675548706711554815093100407479725491177517432732772649703354944434315311894915062155217342011282345168621529578263646791716257015293398451736297901123585940004766589936351444416129821249910242201001744710107841134252830578434365232791579663048156298893933950949278859208991243270701317655144364827765923191470033359371381757221609961992979122048439278993558754503273246213050193507449022057512798690270463256115629313226018152924603672653100722580700425397065630102625954909141243552140451775841893021025779637128377187285840506395617796505378872789320288012395672296292879226086937876539886657326975382604340723796078437349291146200419727341880071235878553097269304066547067299535311811235314918901554529542109202760827366485754411003734262803240021451670071086469734878739410540001923997141965076746234104452337388296377059334738343800770243846179136460100904031933240703933517132431010733726057882194277540429158175152077895225172754287583827013749910466914671969551068863002179467675352016878888047967871318112605522843654775019286646765681821111991642192346389412377515143414325191563048840695521888983147052307857933561447331303431734369784519830245868269569757784054254706386189814113843856103215575173830334187686503801262105489743421824746197613509411658174406258008799320065875371804468073449099581923124952592697341672762899806754847558709843595163108716197752379219615448724874574684130326266475650041002365100464618780492152173603293421403244680804436314861369480051933370292674111329614479487020181664419864787327705290609283733354883629202517303073695659266044127221872614969511208229365059741181487275806402058168739615496277152992743203647952980002124179560213639391638827831761447011420824150627853238256891997142866058644481155624322345925216710108713408041639528172038112383093228524236315112666672397178154182043921895802291981375100547077926884407528032079444896298812725078064157197486507369994782877466020946552704910718152823553412765789090355405158207901352635195817814562978689243965712323301304600904378671237633349588952457148344770705794409073703763994635666563147067628513706661723881407752731992765887410677802756102597554980743033026862240821180986159575115011696026259185867410910377969045971980186760651178983678975922934591959961159320200008478034039152666917480444392160647049753956445252235774886106650000518741288950181345518019446734936931454914303847317640167618682457732954215950188637955396635855568945167656843154009759940291624368687615832468622091695480297740185368452673701030321909378227608531963567467888478419037219096489918068277655821230809556578027484530262503311893908688542552636412599659320098997440692754054993942101579920292891859835959116010885766984711872104870119080158458746867350156518128203323632405459675218691980905794520812024688240878647849288017831359660740877577368766328220682381252708765906890131382507200589773764094495364885982572323439816986244108292081037790291226889085555395095825664030243124253531720383454618137829740774979962536898354771797894262969393045846874096814465823485998737920748788413007008789313137656435548020924194653560334656579079567538136094591053389858418969366204213113795517991204461345904126832215246241783539600008763715311839640552161835400081362899240164639777164286881715944441020341547465530699059279997824946186677177274497548115835134287454020035726812762231473077277199346708805012810493257649616501536560419174359131125981575278612865921111339206584620409183478516212099439400710096130682612715164412890073287031298605198236674944759308124264397448667105054486855512710050186034339264274766647339941941385720960259686097850551866570778949963657965257635980143136950330746025386691508596885253219760286584769289695172199491731864749733825989451523591643415304943027683799605007090986859980158518868139565865831823200522598704280021827544498305035243757132010637105153619968725134718267369617333179369101405197184158509352559190671725831221366195094133320784160520525406680601883960673800879696194696219896382695631198581609960898646941042761246193290188584672347270424769472422181901243253737594754661517704266358565704874958729411985434933040244849333890519984976173346603477738452013072787118435446463500979977654266800302257615801663433063935141833245356332152695133328125818549560152755867737185258002409156861592910199098470370541594479510343246903860397998486307173153072669710354442117573695039651856111643184789001607875774348467150314326785300684877966784864216893279563637323026257111368338871867246097475484005801855314166181337005958056462215289361833771993855055053510399563462111490342785991209903987823260546929194513310963082860127044027744608182382823098784176537746736524966471785589120767702335474243888336217534550920139824787046237362952023899224119064765765022198605006126547715689948245850715589639453259005171766372441624702214518512274549079893404589282032325894484044683911170419204256383682623062430348228902061253074689168837273814899769195055642752649292493814042666974795158025307501496663377398369862915298249588176314020664489273556710839310247023818546556718197736450623541107551967107591736660401485684284624641288799317121729817487787694322384921747289726014794491008452684626724576384889783673849313257327693108189741678995873084990623944261944034211232780766022265446111211233250966493341036722225454873448848979612474347188372061441417367257664732660863994005544364162444388974182137876737458699381052024831444108775607913412995311857050229666145444167824657118172023658106097397752088754992768721233181613999457405838308215946249732475775870635531423594623413417109201812617521968465209310271879268162950132739451708347798630409706968069225801332692094019307555020825375025836475536631071594064204511435122288816925548752085035756153640513139038283096289556332246578065179930435721936414770127484627755124737546717511373772803364241310898745770029366346122240092995828710671661925286457958325659634842151740968302886529021625601920600100373952215722312135687572100335297519399877912824629604114449667263449370897812268773200965661471999724107100556581460890492485921917611867803460783181385906365880515306302744869357177905405289074782806907448686779324687879546423536414326904291193212864538849236434182594630330187789988877377990579128696702790640664485311989604148384893790606418217324651137405976520925610621478712715109779045676388982336542591668044901310003558461001559981394202715310383390519192762762135414416069834759303103500531294454706107794920015982937065351230318095285381271715001405254145958859792638160585624777969046266910564925225947279205047865851956705198195059377276396759451178061810029322170746632978775479657812096474882821459549351042039612913941125381407756496978610825084164992035688794888210853602776273848835772326967561277367053139480625751796881769434286322184902131298394932503435728133532742454614203182653218797896906338923957296787121479162836752149726930266803758743574135088723166144872126845369405421461424148309117572160046154214129561590125050969364175982230838253354171348613534522928250567978665713593764562051264687427710666638277935562721647343594718722130613424572552731863085561553792717907852694397972520342940372565573424529420496205166092935235601094060294818382858836641969251036446860796283019268916229391550819372766980369681157164667825469648997255863516015115104286509175423313912504526830070566734805388325647651585648856421092703684900960589865136243119838375143016786108566336828531606945157211118519685021882266405346068127024340490128022359342752526199064912144959578554643586932367432428662246765349631722124844906144582647305330324077854557547736889185608643960541907840012183094874906925063636125120908605748732012551971931538233285441703165546010688834083090022520583599619582925342988974813863888230004067606404636950999730999757890910989106368813349232507981489915877656748861390507399849553556993768473519435322734792106014120944963170321479680869375963625922419145165807203178434881861342058574096053952545094440606339539266567618992722458073664450575997792167325532422583261081871929656091018753307677363201232198416647609346925481518446004776320908060591656472181362569021097761082423806141250814201297456723280069876951558381106651936071211702433665321174360993163356452899583862483291641702082035972115785501350600274606969828972643420463402548024231527011389451799893771533410077604597317927879029248276437820279378578477522989114512586526012785387921058815898946337166377419720685578781405077798251405800079175482157020309586326971116421297504134932420369493813354536586061143307387395341852886991668939351573500217864066130413583451989155431919567927603044418254013069873252716745236992787545145951377764008445381978344513577515491387309754781806764522649803585994353144676667657248570756605271352063865839962581097784694941922264031379292524304361584258378489471267371075103432965511748422307458699115231515084797643263527693620788146810245449185839039499517604561321848074941931341198548887500189226981112302877387435135456084216710936765163290735717573743462347951675657667478504817725713051921735526166302591286457509791019374358048289632775478230578354875381929767295184446531766723520200714396859503378185273095390420469031824496367356694590216251907210316820754393331595849134325449746700072750572500615769798647912196489028112377970205425429849115266930030392177700957560856516332899874957972088831824651758736734849083773397013262043442352606679920879160011488005796912908462211930636704708121106153168043486947720769286267585364735506159976847429368490853225560961010074865913576734288925221062249127742597175778855461176395363699145637352956660437037370223277961311350467092140740910962427217566046326116395679912846764542873623887431107805169521975027999228512943118027859528185581019210591903719780259898912484459093764191446564061707590085034894858963303799855041410244804849421829136469721654597757222845612116701181763692422874216503820501008158354231936570513677385067834503114383661911139850628082739922972984981609483763737112746598107699424159630290591611634284851874732115453704234746833702082847531219851976630457245499583609837818133059359882397561382414921366586787339891206475459941438919788232006563268869364900297396932376416328287020020278429937315344114524864039384554688027867150571822093769299526646171022975148173882271679200816873146372716188318866464000847918913821209655257639960137431021205581320577543151221549378253735797720342227868247279218339560746923664735986357813543047968524026355141514407177702100210639655098793991727522330899964853332964541604404942175508471983287691947190267777305395999224662845199182593752267409404165460351240483217691940344009742042044976381477151017233224654499259236937146402137048375299661262593374263865411765175628734106343813954537108742006488573358233507594417877860354801919665352405450782525288607211831979985206734190657486317110341334260694399074623923913922840575816532268135654834238156078283175464584842382662469108282756170858230840900706528651761431822862699797252688460614354408749417633374443773707921496407245962882896512387842274112597386177363844256294954078997707147685450938274560050714937941550915290840858589215389696194892920796425523573407986521735115198397801218094367117536595348467674374156900206487217929733636435224401493907897116608068892747069525737008957396710969124278413026185113012078987010242045864708435338208282603892429642875582607590642802868972815605040729658414253709906318516694347146168954575647330180757114927061146311834825341940934537176259256299469243763229101390013486754188107952503624728458913000326861268966399783937226453348664595370810351185845455432603383318360245370288085788712875379212613335886755243859936905817688348889250516337035127642486125462215205069076879870815307495243586342828889962039771532114085027680300030591928254487304661211063667603193304409661257745506407189670039957782015366995389452065083658397095966272702362074569990737688012427392986925714614931046318743697772750087763092730879596174844440433757251408574079108823044981435763247716855198945531689260359196418082391026809924634644732146640728546827574748147691943947770989503562430070390622259838850358506454299550339969728263840252761240985311634286159972144422370751456371258224716809564658989914360688163083320076124658448797138329694587875094574010627762714067346998920468756074332151835180204057349140549172729511155604368409138067087454875355263284716897589338345629282109936917954236098294333159315461406244562286699402997276970108378733460379191840696154251988517412458060155146889311391016031859238137919835649614001849396690725159998260107270672639133223230668079703735913078934266706232295933121169183343997700063213714548398507060423325563011424786467343840482563247334125790790617904720738523479704955556341233960183362202403927547556598116523215204550001351862504449663740113211964214244742893828863977878437482986538744181985709733637744195776404342938543612353072326319541143224052436061651439767391860087564721804862092872877523250420942441583771566353663493949736439255705691398093804599056268211709437280134472008116614071602601063337047902950282977950438848718326343089705659305388739045155959067448543996383238805247818697184971096520605054349061265208450469873404424828790455956581838250671894328217769175710621255729792553197904155905038870338313258332382151006309960768004511852760900664547963383676533007119995473671702754200877750760935314711924705996589987052228141676869668380627952182119911630523532220737448320367080582747557309995947230341309457679528273028338602789366549390572858062620339068645256197688932454478749204335290272709322570201507513950943640736607013911998222940884659028545911612388861465458123585681653371684036908543366472979212924382646347828299352935514461284714855498295203026995257409644146154304970336354674357451800058439253068749436905491609683686476407006277068116234137537291099647678992540124247714187665234633714006274299396126108621802450214130066486526507143725880953111569068689361223176652691429929687038473885484699858772248347614831554621266161869086512655690679648456375879382031144814867524098545025813907220472610287175135367990146717824315438714323774132385685815467141856362082501227395931364447622026048399847371834947287133564133355987784534940891886708417015189132879480449190748477826394647781040652311295609909492492812286872681123988267017638381714364654617025758983335970843870767761112344974749961806006583076644732219948752468303759434019630227144728279214493966992380655977201940859563630970520801282314916871220462685123183995894597098855254205317898083984755790187546735909450814382783827898114858111603967724960458134638805708411555164520547893734769726406158725449842221922860698100381088506289554694232756308038077882410351601686947792400473400313049501001995447415997378784747641263719311575403495039744320370489724619477396346575015050456588566602500653348408645606714376959131051126608655133285250741804145596989808082598638307797351136093059402727290083001594780572570452096105504299723221243413070927502876374392165964782471643256286716873593798915043045965596149340133733647600767842205352058240644641518918589110585294755764145435891214882220132476465722425768276934129250599945379067228017673781531487432856549064754609758884558669141375261074298338023656327958511819782482399219776610919118495069203095594122333101556166823073677485391113582940628332897899935273884130973740154301962788441478926431614794862603669864728035730297968223484585441285783252802103113896750770095896102775750731937863075784547859510300679072929625838302614149014791757044645839771995564796176299105526487049070452066251079943743730189607379542190304340372109776106713820452357070177994021765029695098355913853892295237396923378195382600015985735465820681122546878922358114121936188001126566228986350805406182380768045488941663496860917007092669354281596063748474093069432561158489684262828659428834333068302104164343214840170997360397222521378590137537510685231984681354538516921988038723167758737456698808461575713741426773110042169109558133325122296490423092418692572773215958469452294348825173380909585671167915223455583104635724081470840941171548425211371563404744722999256276892170364007088437968705460398640907269725527182374344477096396795616733465301910006743629610966655515849892995394500773837703923901481709811095260475516028935250213024494660015522657715420197655815461612985675123082765598049415673612139679531792532743413290432867272444665439154668477012148683996917369514964817155734122864734677344553056191087478083564595087105935113513928481250754441479958530725746150432670505038623112247021375585164093316643153672095895164212479034077126931579308810719354872767837234288073356709009417206283423039943105554337646895927208023070477428336475427373438991827953041745049667434016731287217354658167922969742999906059082224975338751141595777977960090764277212537293805072904572338995950799845931009271720318113934176815976842712836182069780306215030904529405655966460854987549911647894335489128644927064381963508639781774459254012970486660870802775508594918512697484685530867193567584610555375387880344356815521501369084748785559074866645566388002805391006558874095981061952215512010150041099663243684869930250553007785518740018361664779399775324585223920660754556068445214586453414825944226865160847032255381721177009299999357815188284780426811425744024412988218345649623120021352950534461796047690030796946231896677598033983628315132513169097298601384415067728067640320110212080019256605616708432190969414695987621800428674053674297611041366966686580083016009253653960772453755229411843762506023807835494469626348915666263398998023316544385341860198493802693719666376277647554712015591880288068418502601182114932669792381047550977904874786236606919581479270601651563583354886573063120164583423281699407927177746722184991711496586048595119671376117595411204602918659529402177934089716714021864616196958385242256965990927927437800735398143975909489156745457615839861446559588464159562884205133578750019840653263816587798933836991263141983491203257535506018077735005828194085974760642559525147342322997342819884789244318713923057402890714106440014561964490163372851573798732982042329062685303740294593591244902678963860102762202114075432780161379589080521936832635163200392254352850044576493830462094342718885098158501553640798886161631067683699632938836183088651708051679487466701249716098730351385476568819119413768668272476727905490798300372240456518326749138756264415699488317860704910323418696465285540211377888312810762130173177606335771562366729662056981867686050456932577182272884351375109538924077237678546827000917902256869056960979495903770799051910663684339380693836441678012651288323536202126688971418303841671870632027745198951104935254971305703446554540704411223460185593056228923199966982854736749524614731981195145849154477686508892846140111106955311322722469648135493062496078100972342295325900214376534831935931305248457180061213409850281568167546370799602948232704378214905752843878411798333439130401533718897445046942236443197561057268181734459165041609903284044205378040913328311442645099119572422286385688898736089032375498901536114455402295109371642504285702641807241516001340865365726018200711650144134487921678759194069886099728823697339309534717934356509921440242519820399076763295390273604120454095337466028283280886724742032444924825429117296284100035161550072528674755665471990966149531773375193198074055312738107874588473297733238260059882007801435598484118767700441408762752454788611055519447745256997576245911037243431352594664460509517864715321574412436635506039866020030296973894011561667224301449203710034390007686962734381016379772689777778476129999924639257798247670088843609995586675552109974415880602645637661006432436849649983733848831586307868018157101148037258473974317700454114367746428650613380701701429834912096216740421780312311911912133023431234190322066614347153256075085272994404347127788400232810100614211479056839207983080420200824946032654376045602734501817520314863691919283516159994938659291367066355459947605069318185775596754326116064552041695624523639355809514592198237708684715801072834931348185445897850532482187041071570949991534497139314033475872021288382028614029481816782725507524021348474080305761009183632657910607145711411168390007547553654693355260018184477410080726525853444631124961891468027920693578206915946748907868049637798475500211324256943591931771482190834401177765618537453360141751266556412345786483570830428147128034157191692460089105424742258227210813535145418230818946257994726078521287111672759728014296016259257868651217060801343634805100549302884460125750681451970120251299821271031466240897751852011556009396681615218970313594688380406177202490724742073093588177630178969893023103886143211745761748269980154954949626209451335816828205610913797954857255580859073596476169587013707275320821849075206082085491867657886735709912407125480875355756666744677860514993951419591188503760010623527057243169608997469439469587002353142043332423487546962915541720776387760705299313795961951243769546265255971256826699777195668820171593764347661495971834034478281462673801731551527725334400487377552595971332345233342943430136645666839020349958220158361613248425343567567851515662484253949752320519065010205637175712559475291433693344526074810175892938078868173067896664658480647247292471555785017217745782453675695066554927849508317699137158750936944735434174667294440031409830798850273956095174998630697766074185007919601430008549939507194051001074612957528536218877755698753291066299878267305217040278892680804541856920670267462365815293251844639169194108969964001125974052930645465056194050273132877022272463168868268312882555249001327344013080990351755951279914087746161855801664041766680144218314403666298434128709763468421769444994978779848037604430716702283739082926836754510082243124254793976658218853197999085423103227826844579614690626152429277650690795377197781603187934601916955817533623385488452377670482527816908521611383144140688478651115067728539180550490450819119380400857966069365580186800129346166145285678856753800663638178978053537519138630514231471603869358533918184480148145409176923462726344243335941324364492001464080752812788566474994904849528535916005078470642049984500353381151400414536241480654453941228444780868737791713039875689940713308989094255759733172494573890681128459103377245906889296067080063543101623069825834164722741870317906016009925512032407106431738083519018929539630499278421259812575980193370427818557063718518873963009005260592311213221393595055309786154638298657900404066671737465186989579766134060846728200017655065457389722346744458408630342723211720196206263262248694773422738523350768426179774093967969320372935498099264740002989659396882195424160486274364989868099789418664303987754184591019591229631888188824256705790135902450473478830219998412748731189298351750937714066945213818883113500823541708033682310525623332282212112730312429520946227323524470232626672262342339262334601891873319410449526354917076304891136127728432080719024210776983212871210470616997720989108351841319812087251596216027425855565990684139399848803708974792868873038898393649281915833774593476247210224861835532701077186503215173923479316175858912704100737293077858463569345801549760000151247777287069154461867094754238774787023981359177981672731514427718010398115265231738116287045924330165740927561399561942934330128083037694821370433950726477855317578412663084603560974214573495776324379764803615904514675185667538632230999999091949343722102737753594085688421631969035711581137394615525056112165471077849402712924203869376259434034425626980265178743185325756565201036064873731667621550775930362907719439564878544267598475515516566079326090146037614433260847808102991758025113279280505496345594394578370880614455930617502039457866659052537702229831821028459656461970638216462130523162007804330917833182882326624436295966446949565267806439699165351090014135654832355373488367211655443403289060260270347133832502670312262069400291716725352396311567807523438061424664535540836919126741215752307376355478981998824322393891372265125190566925055306049164458103013020023838356027566199342406441423996784102471551954470241627278321259992690338404627757679263629899847619731169808787567070455282735977348972052971026865898738737437124387820972890279760919150146956702600888696223772960569423824902301981733105699820637563065568564758097951474726843104385248356771273808472848430729167990309128733239991222633432189713003960790115474477731032272833821631251950036744533919622283027604700126533362808010349491772309567951712309209988435369255836253432469989831123847553327700133867640740719329834304642727906608668984272882990026737234249300627261626154018022286478876655273525967481644959246241509550834045483179977733125754171274451586910632154146437167722784089779579961077673323540095273091405616941705832170580124932651677854060147817473741943554162218064945278599345693988432474042436080263370580905849336470326038636169376657137343168265927801808733828085382065479879313801546889441119302089683018536205132283599441859207821098445640793350274987918795805636118693460192169599852320870902117495376698030379031932139078716228135012658654327935692383979104302890671583902539331532449540885564525225667385538023608891082775229924266637256849956792562815530400798345327630744763051222904505207958631393331797259811355684522347206418483118502942254372119006319132655096862636205585576417997591172533442251580539797953977510256355605171992249448453053748998685592268396696759565276376779420610887486959249832071147339468665713662034489545918480302896869322668774767652566973882744333653728148438081447307783985550908547710612753870571137997866672447668215885393113444569378207009554205097735104155709330283888005274418554308937620914445632396459913181241649198110537354938897762663946933587403133856306035575960930175086134642789722968951979674861086193369002536589214333140371212202825989854470929239405486233760684844791480815014325477131866012068324605067699067717961193058237087115952401347614182003280509254407273986824530896603259873255640485905973331398883261255005743760619497890146697232947350922924632695034927313153975492898879980762797108345508869264711283881881274940183059488928800358417824156152310666769984929460760192384438551781200895936035980160816058549366386072391316523718243211652139109392885385744377737223379348145168734826032075578735717740191229428266302085063682603852415287916165224224723257374719976848273530748643887468258713121764592078254586954740113543112074987586411702596888522031973884510628560638436129187727527319503020315599555709291866434059969704516285338291351129290295850941616748727884575907048999544940410430980498741991765774379713833303635087084299383812157579846378740380890987311894685004365354289874262325070748297197115228196872000814461160459248787375920924119204413622162160012895101487933832421588968694544515724160867506692513221514257117495319067001186525387560437173262938268812215319305793300234873492678142137030256934511121593587461450969060287863985704750902000295171232945283331054576396024607865788887745589837179315026885651705655567869291549070679437221785519359002882740468756287538978874429298506147333452588260986521348152759247641527909624815105281763757126109165097019123381509498712880767498514530174901081871103753824742042898831509222216288862242270730322766628594745444119132520717155875616840240443072646571132011090163836898765630001491958101496837724125141017609469869057853125449379240741373419814524878928710048184666326537561892727505131934383990292536225668512934413948357706103821548435875336150196680867070881882018642754818849191306080338551613375984107247699892902886931752426599589892229861298614164487434248779669819409571647052257324439930971223274553311408458598849107265040600952262858077871253596973540683058246475820568912371951295364557638013675007459734770408110667676270842744906138648167154124727466598138238965688559241853917566666339166694632154044680672104152552559656044089990322326460067767160798004416098135724044810211830999907443255631387342874585928582285013362143384438765099342204959102115582453362441443321719828500301455717780064313858040440252807529034759446778869969839561440088214820382574805052580890994196348311822173790878637730967794334647278301452015864192590902676620462817957691491272499617692353015530313872273674394909149699910858180463340353575806328217222618815338405065825403185116417770240253398865097578324231906012676245050812119200896331817158209943206404448601227169188299675120140090957690300257419783915271114662326976588429322166622765845921526795672231642104478293646040415388569025537666508775133001511805695672160654624697161215842491328206475955184060883004136049233371853680820783105510817280317236060387871160895948497199145510023431919125125493875215982483969604923825802839788086150266152063289984982863675049577473477074909996535883171100743370833977546271215620268592345168400313886306961901521138582580773065710074318543997499698459901551606870736405571328485773900645425627836577900633629246185458676872720128664617250042173440243792837092397406031597040948128136654806551805422469023666546920361799310606910466458683207081502115894576727081198074582590117230155331486034836966415332022195358262540970653273688971246266514859838601044161358486916725983083800245926940104886909138500856271564301790981460093090789495439977884513729572948341903071522275757412245650669864624015172223430474678376805463255854600941581785372070536715098773457269832357689581929863859241921908829698135500909062585820221172494542723088688850368905300824669373066380205433630204233576495089011305315724221314464700405790703161593655044274054266798443467319113133583947758531630812445308150702011874173027890795979410959350192601439917064857287126785189510029313587322820950204255446664727362803788054024749330238652161055411165436422360175308996315734529749994774739184924341547465666355465611288142356320730426461315876030268712631844105763998596348303902731860814640390357548178375257267866021604574193210717698743607624710252738005538240024215640439029329277369333854586667870898705927760032459019236038823013893539530380184083909865104617175075804158284862210352894757417302825118331284103227665222382664617841700851105244695103921503356256728893773761657669343415796958362073053267424220556794157345111796646376190522135593121707002614791746818177636076574064958380693952053879297605230246660742021252601511615239018314904942810736855462869391865789932696447626966811462471270413701280562789100165425233212341326857382314688128148124449668374932881159053394109551074518355764340432809838312000960363436733200278916823460320650089818035809897668384147145500083847737278803269937266960448527571372225999417602137159765031350085913429808628835309744500162524826680178364888913875136667986168898297335995996733678615927418788910672360450542039544444935782753889846937195969611423231894729705106049169951686616854302419506717064617425328951945268210244998160897910834041813404044598370136664912631322050396436654908415891654174946611903459471637699644964088512324803454943052893047215293548908949868822346057981238443608220543663160482186653974392958485832705292000664306445771530839272825490546338297788316290601685961099070718228706636528215315594867199850668092011335721634108406923398987850441646926451625490575404018447288196411660881125521177167134255566988317942417121537815962460560731105867209991898621535814224559012060717438876001174190420929036293530648241602015204649203928882667895919994000187673835031140247239068686650011931271970097240605681460129404259201381598280806718153998953966956244995215554462098393150116540963140716887903726955035385486281854482267146405663219991019430366976356501321077769809281712507833165094041174099989843853516927629400396746005116555656300241019659956463693465127705710312761557726678937230075241396361787516410991194380956358516777932298653803365085756141498349440134866624586478262643834272813537758582556872800152919566321709812375550964558267676616986491653286170497472476664297116967232633618743911589043859563128084935432938433442386894737855787586565063573779051674434979975384729251614562394847291116625024174489127608127150014811915188880366531674138402719621392542241284061534816781696377808313362156448614723037827137811411916207994204184968088454477268774338539458420508946149643005674343777641454180570790372716397170893725042286491333317482034744423913449494210898953830709127093591569255958077649375306196126700420448468327813918222473072876206808938879690524272602720116919530271116313019777523660618581171969955761589584809767745008484303019651636206485861549956577810459253601091593617653412188545711605290743165964207100279959905701189316789190728108405754226323178110354419483532243662245668482363562752750260732927346703866810575333217447742025051594237051002274510365981130168444935841872344062019601096173839316480285097151710633786621162256096326638578566714748807087237694798250111484340828201313142567338606019666626875674637553729929393995584219464729072123876814637676996169509191509550190708665033724881592698180971497031842121356560903167930499426998136319523759863135650468716623885412281087287014048481441533692017772311989043256537859052814321160248939331475110651435047177585610716251825910760165443903643388759944184149763396099361707956724032494512215822325588816091914726522818748092647911556718421739991971342678553661968299915670089719250407253068069113832410920232843082923522550880560968111979534674725750424098590662083823634502934068182047166496216536163697157779113822435825553903567113157954453210133047435184768177139278349133108182571286495309348769839212773603862881259736502357825868489840849845851569861033556770731384177679451928764396009169638881996771653648487973557276274039890835679641179804928004988511862142710591902175341223228787295282580413116907620125329018324525324978603189608333285437385155117007661731686961245967166587317524713019623306706500380955592442141758522309312514715314374307054640676618425726457841536940168870864365449719447135719491112147004066916118883176697869541281566226828476874649656021127451514511793896110504896068183389507412772441433863617278437910489447867326353887406038768052942840460182523917373321814987003421028892262199305672450562957589265220418623691209317240739338314825641482339686138923782653739371491037245653765655644759142282394202879917335937894555857450146682185761521657382613489345566122372467794612021523120906144174358041137180537651297488379467068374111125232846814330530310259780132729269046932931889665367400074809219197347837744993774935423815288096418130876995078823931934671988734615512021262158578800123504581623958554801390126173959492481072732638852258432559088724351752795399710492135593629762404681146983218367486459759036100391011396751251474318612452573381479915399861171593612886630599224469128213856435703527001702617398119911914570709717141032969483867656780209744311850899085623674300754778639038019893531826459992948206025151414398377663478546218065268138906284296894511013646210179125057399534539302792729867681717895264373894951034432410404771093623439077819560398801585784352075954092825053805546275555481980401518575616782029470450467235852222460970807569531522213702381090147296636413892358277063767957945015466934456156740930833054630617366123981014443376742663588775354426058952676449931531460691307896725251056756181809409329688664052464749807830024089268794148961798591351946897131573255766345757496635164112073586868857380573484826952503399394330654450847212121952596263269247774065968761288563550584184670176152432974672888686205257822479862631683530983288388035950729430607861473355526430340671212219685190852164646149293006433884263158782154695384963437759765323567962323934781633652033294294250674979475818733181841582377525618851611334180898649193674178965455165896600043861372814233387952067235992314442905409268169357622066722843664472811111614988166137309092018444289459116463492886582820528012661132650488237421292140505341537420460875380575364575157198980719341085348184687395016898194933166040834322529633602475047833777111660746778723564971536044397321658567502776921794653076942539101235006378523536198555213188819588285026336712408184442114469082863588763843246274222592998828728269351330551675850788322498057355968912211004941091541569191797602573569806402126123773940687500168199434449471908050830946021462739726472825358734593777841219666735112939622217592409879542440251025382399137485458949666889888846894054743212583103112796859743990317052085594570163690847354227126868214406324175389197896186943037378091080402546010856513904003378915388826361004626703120706076295669610637354999714751697175083413443345914991611417135628720111884891198146536850197127847381497986418441895014394949507184569867790005912136448096709546293930330035208709600940638524962530798282521983799520292847310244821709023503584056308176605588990385089041143327376539125172546717116930262057682468893108990536056027364779358593049244469698633428793919951536467557023522598197505867111234864250695649110393177173571214897611220080866996864642073779094748165838789158896235734447612202334091290259325714039623365899509963263125264439419165592953085116865878648855755234801208892953937135654782389644778421902426703597082937507768864192999928315681434375697704770263743732950972847347950773648604663721224175767452646712728861062379313172609127405393814851166629129105779592193893517073470378608971619518404841888718478297680860947376427442216065940540938079091174318656194280153519302150302408652415498183227664303073841260811047383521712947781095706815818662303120574390613152971793740626559070528148986436054855494168877746028018076397159731810348745354657649575470346868127205285537490675504573980775949427149496176149965141947746213131646059742975732754119573137963272926089138838642514094726471335329550410182521863909323671664193593432799626497843745121451135621694160221949544242314123148834094177989690262004116879799689409532577927316675456312706158840695648358698633058353375797040395224998483707433331586398408091816895131930551945889655644878996614494683222238532057001339169838927044054191007348502364548707826281022781317747153439390391874019906150664471738920972330806956286478431875864842087825731992895083733636725513207409353320087406379461509560426508009511091807644808206489435038232332065308334031030119529884555212041861591750147250819481732404495544819254363383723967283821734964997901779222167207470837656053326837289924693219364204398787898480292489192755049377562930309612343617978492266507412115995602278268971925498208648502307318289341072499585330184321104652194563415923845796113557366111797758280622106268485962298521682429208615719215031990356516157056702852393928579728471028222779965868845425151262977352767736773763539363401144602197537767686917179365363035976659190320394800796167803182602443725919231189709662725791157126541358468842063247164522216756658793373068619620627506236607063702277489158763367375825281669223087234478618965001507143543901015682148063297496289371457934514835076769152645042454571078968688810339145079064379499720774816228796957823902391392231542434331276034830311756210054650276555195934971792419891362674871206069257259989168518062559745922404209518478138772275042674994477752752584031123117706130546410540588748147901704074206259006261020382113843315635120533593841900849653836668115733020594196563942973364074622605454672828537779289071261479780246517885910754268483409287743140139467570575233266969432303785591348091897340935265686101018296834804432782359302251025412847800066748680894282757710386033414183604036989533837424997472251466798060748392919967261460836776468673145942251262516143865942310638504843961782073796433819910045412784938079994600492694800422449674038980953517479822236570869689670526196937510693226515718488317509461828771975806870563576173313034778745450018728605395575417964706565542877503659330474277165109267028060100596848724960871370246188719678354110171583256298495063226258462137475208387934995018505653859365920899833665829809828434027338927843398795856783396101796442512171517400669576104912477974591225959643663850747249422326317501838071497036896318735570766983361710194000005301409166170893827550692330666159039964978418289476209585748526880488974253278480929349409581425075266447599869605236970191997884670076377304267127479769054292015459950496249987359040507863166885375695004178196566442621874804528404946689549983324501850566916433682758788019357251060754946878716087775776782840752243457533719880164570763318949690542825098857004667318762249068308465720228787754385363462255836617202126117032713783772160333909965030909606901547542968741755341411977399815922902933871730410276887080944187112561477758965957603323271185681180517625388239567084067133544522709942745145979229606595770874046017961844146978092085984968290091373200879185139582398590245834493331515385388861473557708735834714081588368928617065219337076446760815217625029629636311583290675356761340992303814719855251914373918594681929204404939229214942736732014446832426045800552237509605363128550263966037860030882393091239176143609565920980102612001321683184335303309637903231291754233668914686513382670327477459948647473150504254501799682589438266433456238394027355835568045701853867821529348475646215891431480737658770719436373910717042598727292520027065741631470200861455509324531456253342459186371988597292278004572568140209062108219836281059807817897269489029432054293645957737785297966979516800040083181921863506031230820983577796746806501289251274920678677896214497598823277550638904043866084809509561476974106541281056484455386584403744425721655813570750321310999413773499037842148528941247933191925634491158951600479260379182126985830715795265784466818931188344355567005996021011244721129620800926334561473119491536453771587585291939316195654576420335839345603148877840102279256228777595217465090172187842493097231805255992572987912664783995348470322583314529487911473405572215868259400062279861667558538121876040297089388677069783550231142871670745418272900896862751957784690178490004652899297304496187994446604558510074803530465697966773805220562001158616347944676608444059066525808936992268615011146601430916823514846322793830388286539248143674848148232301936427766842751281048256133517492787829477771405410970489745200362693032756256344622046602773280480648831229919438264873302073945985169148162135340556032340647993925288631939280923027181167665646276160852315035665345528515539271943339505490390787022617236463298530021056210179436613157110172101964499337677654385341248350598129558931519189682534138212781921242110828609447629927058572833688334405391989996554872194003455650057919594179922516633866047717935411891673702523848905659627605111476600447977510780495938172417772439617078739086003099788699691080882091005484427212792339122798929737657571310959634112909305969589615770498017184041681608300513386650858751703260895350996880941178702857902288799231941912199510444184660442332624689229326204977201994927840158223530456224535502955385927576803532032451228218938505042512304522214477059721027419312682552205600724355733145506056526128364493862609874066343771643390725154617741641416175183728885479130234740679462395564883801800702270845977065073441413014285203418419767124270929168815170828379846981527336004360501680749567116085155393726957268049856400600763163836007931024930332505317412240207632745253328062110859956168325003754028307086747731307035681005593732709673009682635244488059780275635090116589620884345207808854843910530615630475187214126645149554216645319778094721839425884166878106638970344521861519622315662938550362071385075685476539601480104206936177467500747370963542755532438834857103163667710953167050724650402525154410402314115779587418383333572494315001124002063460074756323004343428028397785849699678927475840185157292383017935656954498067004872513484801539628226896085439829760710819788299353065129279595004427384868237504452672677543642278941569207590815593245936071854277950159352206843907703345486614241347520305524422156251325541436273165764799835204807828463327533050302583982004753778086817712660920319814304238973028465571263814269332604590075336002480861119170957971795908716516302729812604710645690308607922783692456044991669931933771772150784841816889254684521944251009912172544458532032496855859620297221580385574989350471833230541340760003716928095168803313940814483291051420755761233435786132625337485777882455856812324464494276848179292483020942098651735361315955173055097438291225301696422394064486472944604919237181447406744286471060456786141008577606653566962864041797468350896546963954266495351369239767197764420051778356510652615433638671546555782480142356750863514077091677329519740213304639791492138502875921053584263060722098611150110209089987753167937735347844792881823824666505932184955930803774000937292010007865707228471103158311027967924143520180383203004172901070829862399463193133170040911619509293507780824839497115155313753557116959914188804429206111185971449722141067067643206797269850981684165620763403502452725089649896828935759993841338409482407344815553951803988099741374426744481184566966612893311772987452614826254872520176636642069087357664683757281171108645374360644576255052908125456378380122893519651487834224715448942173103440957966448039341710343781726234514561431746025898506180216919230223139480198837498069643741975310500706155911795949872569775710514621185174693627371706499351689587724079080956111305776297113892385286048803883837633825694779316219901638895699612861877205737452396900330482534294029176336721653155222691756244656584319520107425712826108361160720882713806012328058328692743886909692943998261635066530238861264775640411494587952251751987113215150624020481684616934784264394987704030400433607199072994655201278069307940407489104161133782532565551191290330687136782580459089185833016959289792959048460290192623716249165106366967769743861011547463718995208463474835907090167657961348087243282086159963729258944831103428332150924176485403666330792682998518608093031997911528990240154235108255797423724659871055693678886807881882915029298252220477865057240233526573221261995973882841560007991207854337456910374806968601297252954273126590848400063247264186543991561769537924356448532532211102320141915964947853525930233667323482148519256889645138164960569330793167532660958222920497614572860698060398258512727263175064748214010950733221636430880508153298521475391186388704782092328260862100620774818192065153137040119596741615854546958975655849098603540129002765033339300293125435559756024247041827866189126337480152800621527334058241936512274767341439902461796969019715856205164034089077427514106330889537275598329330445116813647815928107614486132408498089262707132085325842701004407666203579339201683932375416279092671565962114774707717132265723033588678677040568955250099129869513784886529194008441428362044607741652239598944459946696908571448837158471690561030692446240904061083251537261599835789917628484149505661260721751874619196477119749261278404740682138469527347484218191599713218981496031544844350292039321222461917214779835393377909626839801339766172178700588909721830344543094752663196688959170757711952705707839275630903361185447294936753283405763653200191285996591147414157187829171765570898896454183201392253339335345020915590852536894213764402567828322086644290643234891312923666272785022346063463509165051797347553455534861592218427032650110963423544837728066201246013574832639902172558374430364963562076066254118651956567943969051325689737919729745335041157423608817297517223352117292589746619939437520742906043587371901689510864401349960014225863747692100849163682847860119907798532167456126735252400080090438312006038476547867266268972869563179578241631351396578643571661308177312875200688014799391405875944929241363488571940140017626516914104657419704574649670774690324852368262806334995615175591964758691247431808262958469066450178758713466236170292999652631515439263774545791985281297347809055476143851503054711678705623556233286145010974822851483832968807908693304662174600973378766803162648567308394982985261403582269574850833271015823477464622695710444062233445938021435709849440346657370185526171919312468294971452489367959700109543891267106478503690806608728130170720829953709294852363014286023211745228879560364053189054126205700777538215268289444636266084613851405636829968963002379961732185065633606082071253258900675285058533901458332439575363971206286104623858896003834773397727985445749587220693801543895986254736992143309039095892053025501439264288892112925877901042835538758922594898485649543088515603105780093220081775047331122171917316445140094157370703219582785315455072192699462567848971791913164148147924171499197949789238804654484447863389472358997968482553256867584953307296765250588724109919864319489079857176501310288304553715301674252305902365852654344018846223979517601019136586196391327322583553103819792109451044905620616236569330261645638656246389184338783623363511293203534719203619913055382386753206797402307728002780232856128252976664429726271805287860444496193659710888129362398582795566258507370135948160460609302857077121906512993513228137534659426304344265323327553271597393994134808147728332684220048908228638312150700600387960460468169718621933578093618270567391720855750495370547449406163300595081190443767898253737920359005798542435955363619169083827988532498833954133760007286104591816114106798378286671577721118182525560002476774677638778799642745663682105385288929476329462723331435711073615072303640239099557181441802196328477066016306806607087460661307788400673682077364301768878037565674598363824723554869653206352595563506953708044965962288472350111713220874711891754318738030255311578940592239317456468593474096882332211678868033454125941686278976535594843051962573718467767359080045696247998589832124190687668567182410732664228195469589551435985943119860349267211053135413735510553503863709425624190545628846369319102807028369672301906199215244850612400801139670999752122847718090291237563691495675433400824155091191988410544466524897467909966521966412369050979448759903918004507265708535556839199526697113557236965254273092167705069057669826797723756510038478135181897016109611432522079990388267070224504314049784693831762436143230885162620137291286446146084496440610542116439623645388334911874335524644851869572234462840881775669425936421807104251493397896847124461264481455519050044208631553921818757973558822750421132833319549849083847391060440507687180332243076798212574768927888320363916023527326047125714817443555170937383130537621412759385496417906154449566174339903758297664412663821860427585760427659036115265463327349723462542116144860102471111206195466880035476079085661916230898588241524929985272552763607418160721904639597049200627726342925433013391040209418806216228582718876421343374630349364674517271432251928931931555216355924640446704757369193000628225619157665021177155073345836748563366018346307700825566891952790575652462761139749175741510896719603967885192443280353417954748801794396873917967939439280420358537945975133439016239687469418897051756724917047682173226329137844158558383925700197692465631994449846612539832235905310444576284203787149280261786306409400384182872357099854546195015396496907486530248849077194564993674080430589614238944830660062520965618690453755505971784729038619447344557043013462879187771241498776285033854051579443895990215816507193881319293365731045283782297569358860477645522906773509054257996040509271210834165947942985626428239572562502247482484038462822649008011090099965643165998110430491940718635501190015485177993034674594460263460608855960519264588567593925351141807399765990485253780411977743763197075248217818168833693570302086013866923573922445339915757223913502153737925009465111768690733799068699876984453376419531285376897424097324770427764456790888232139358731593145530673946747867440756705146074100455350707630375818206598468094562919619779347971465490481557146961045506556307519834991749242665690936602885880826980599783115368759091402640387160736531010795994279975802480693352270392460478643310671604510026195341397709695988932444795769503572461593026477117339811359172806725516565881584612850159239994673065445743127149996365448871685820169161039187220552134727213373434352372042033822672240722752489685330236010027247888984588444166462219588924185814644548250359224824460637596042518056906848180702824044838909566009074789606360505124481077054398577810425208792432156796350650710608380181595009727492842917899305054044066728417448715105091871515054978600225316071265207389133374347567423256303256891714072955290853967607706701168081164895497125655412120796298679350559407409208978075304330620920711798101573192845555916504415025729249407510970573674580392810931117896591713675255628274341815883844344657622577741389033011008839875001644063913359765894351741928079393184235765029643458669686599639952127070840464921935738780312867659630902753715445907568332251385882729168100045424987520804165519390279465459966010176137913666870371331614147759782749433743945415214606273625286512568565164437731911944348524273210558932866941745722252961446258043062291766609922096312187448741463040509611992083649698914584758036265271139389345386021390718204524732578812088147296552682363378348684897330050330542417728361749398328417295236135372255627830403599716737594678222903967177634509465828018545874318394447460152175069268148444185992824092101634969549584551317359319660463283182217613320145000632671513991422425462276509050943182506727911359746461691655436505782827808838981808724588754000837145861026493601304638587504153984698619696980409700539138529822533512901460039321014950251867966967746040581006632353912562518860568015223081837790299240948335608551380583819876785571051959900451041446909965129170001602438896375498219155434175147555356554811777586082118822776283469552046707048963014565004746175990587433364117420061968694916312878205051640978280088529176853025783028838548935767981841857781286767983898766371511741438861737766280006245771471016884148046529577620147329362997913807429036478591978314583626670633826286304873163056591964400661245834687495646740021320980677991768199904178268985365828153308277026177207775613876246704344268300609067945963259227826002738056191642435414004487512091433566217929466054432509032064976086579264842506923238460625704518162406813198949337827468194064073937419343794676927441351358868815971408948268157614637199551630896119729489126545070212948325215141417723001362100484271168298828605471555441806521714677964744973419992125851404595995091697045993526974533661556943438227275351266096735950920433587291502492593946686378196887364556152789411672777366803769179040470767758581823230316061682113041428677912089508870274230911692234862215766295727531694590558716162732623278105725720072234449382258735765501439634712167329496778514819609741990441797738131574997643163693658664539428590917020979910932434859805625781742277790702800111423443862201196826963122996871083542728271330716020062316771562524188060621295403610847206688725941929725091657291042496132497831719740026914316800278896866636491686490236832186722967106061544838762779253296605131852487373403554620902228443041439729465983171281101677749258189759009154050467950747366034235559707250413413486115651398933181744097275053398615372244803242137384763239454670826060228137518695579414726441550620062089359528832179089707336574596260331191514281644481289942515033042809285939186220958387607296203287429770201445048571666118012658031012907833890532293813295189458915510069183636725167896042091475516008097702102249609490123384988604366258241114205037530100632612751186283403993504722013045683948610342451081066202728634634313194129729486746027988723602160466841207154121573961098891100284812065000884719669027636810694560137631735255911039524044199329533771590026395967788540680097547971297799688157723584115588915195362599939695746371762610053977646479924061790771780262348637302164674632567586404084246307626377648943385257509797522331266832195356315916438396960528510714363752456074110757222529069673164506362606530046469323233458634652733578557276088773717983182511939276392163583267272968539698019644468912228956168520641987998543633692208626254684783048738274924074977803852230552592338375953480650033659688296816245195558725099088220709397052937907228460324390284923095125924475710224464566238455439847240898134165354529603377081301662742030782246499203354521212134800968694300111869873921139115383251492346346159949221939492108927558990221486738194135236516035576214537363070553266210235630086347372101865971606598581470758347828597969403882922111178337947614724206935661589664454202964567100844641964523555931365162231400611919842554709952691244256937339707322238320775831665459442350613547892022134734304427504230854979307424640409284395454396225490938968812821020999443983791536483920251331311711156542268363542829342328537568260506470929068825374558803508427987754105836882173669486574449463654314920746674817911992516309872799108935798389026075472013385662784553010955914009357787052860159275422525963415592057199518782681839203878329310354833953794582199319250546973817568482890012565619095458097341717681941877439103690075975922750189414068235842939610647787524182686844804265499124473566465762832439513015786018385614418467170925157842406762229278976121315246080949150278202405355857452946413031082258612903983413719009327297018833419226723272950520928068148963525720317006938042245723853816959412468711369297246182544843524758358033868082839097596521567342576028732977647594239559867155438920671279635443768263827092941566329624704280992424112437469723208978319584544953875473261497142469756079504735798288050578709110565794024961554328589951924863195492965614027202796937975408152261016536920163897879349687868924587226716390695955529820264279390051972295502627675812553038389662387430690534034381197653561353912877681132928013992339913574786396838395108594656717308950117706703668992279946974816410755502995780986956506816628502232429811758122263526696797799743650940310974179267497339890382383987495360896181661211260280554708175901751445761652371425027357725210679268058814825297387957638049774179676827549718820014961709195391964962534905321232175572027530495190468086165799638171869254768310534293556561598796496066108686486510555181567558897958449643842705913087241168860627527836878562414008954270750866289064781002579715394455166917163617406376595963625788756118856037347008911958227686328293628217348621952370031206396787043767841215850235657812811221843101801718913155933158336747101814518946486833872178947555116953604478003719992556090999917462296726387311058942426266658889671792917968118591979341290683433844162834356222062090869237543967758683022379453015617344568604677701603364556946413424922340611544313818278525011608913654146830268997922015624755659654127258600211336823553302260028287786036308979360633689518033997739049291923763083246865145600575724139046400619946271359292030007084692575647021520835748069391479350671989788014331245439460279736512390234227447633082365082891522209662910805459874511607013819069252859562917847130571727204243621834606174086109928387606481003922455137846916418332733993460882268941599323477007993059836065932216298344364749672894403472515801929184118060485527286921181702653148888153137325915736106293976895638180499547450198893350203704758740346426285417866850966488378008442222892667961154254635370003593781349681332225207990217394821731652913009374536796209129597253405099173667873405380422250593026641698802847250410313847568821053308191992148813246988009160627434012610553160057237960930713762813258658684930368359150437502344254166609133579359594084955099116863157739304716186103205483251327398917301832060012301479734644244435447356548126705092839950351504654135007877700322420357897627503567424024076955832720778075265389147989101715964385560554774251984511415078716752836497614804017002065012664320630369985830054405838725911114717205675085255826545342688154900112738785412794005270251118399849974151246009320053682629619790107000957478514974559437532475323831232888981993110630105825198709003623786156458768760653551384065537944442915559073816730101113207113628716804885862472535766321901813711294336412358248575056037625773347669245530352080132691988428484694491976996321702063751010502516622868770927554998258390508276490982237840777323154166240262389655491276988170921460910915962476069272452216485115891257583381804296638986279072948733702401630106482838085962205074702621304933989077455309881061276857366246726786210447131563297693939545568689028052239875921964098943397790654708091456189785436104168138418918853381120848457139959204860044146965396159275273602084138618545534141791368181206449709553431502294951520792344729472590889812565351875664661123293792345393084976836437349965461767816727524343997126105258483764585676084981907849668875072257916609426007796223660774732077683172656661026137942411668739693195021845634570654468980967233989797550669624081254260824476452947614691359554027685296205112911872122636587126893012124454637169989062349245115903967648793249580166706478409856202325771545539190430095064048549805310011229557476546173268859879992870342311047333173360912405433650507993171341428450418565884594700212283926972092229032278800618407540378141205885379337497728974550825955915004094273451128929544598594247705240437798249494205547429659609157237338074109839395257102179204600789487229807313489534361448746605040076836219853760492221374570026642155813383552510786800583042633816267343722117114038980738113830644594350415879864645373363619460878341140797686489455713110882426527144893413714709432753810529734337697346873791572993803926937014086563457953973072130200525879884226664615106483933024679229607985780551858948208578823574997731980052929043053585831017557423759563616143194122518664229264743883320563590151583913569465886288780428232188620655213495547725200886900399654800498265957608343631526425430947580304098835750240322012458154123152026034661361198763423702589927822610475236197620052862185509498246205851426824946012938926737071164126069569874770069820559765018601694647735861782527473425083488294856056270571604608854160916703520217614171964915028979287093626329949847411544026566027703353451849366187612033636760627375309226283087544819832664684985436834077745440537169094461263542567962215607280258972530447854752549044584382694477128225584322658757426153387550056289981062529329488132449238171183391759823234182542943678158591140852699994163826373933413045037648807731016545811667267918175389505344721773483208246020573355348508649075119964005704835138532673442979042730680758984718595860385600768229515454137785191693590144903465315409147733292812497420455358683533336627447939894844235525411829742127830172754164326985987982354872912402308593540680328069413194524934769415790286925953605525420182067702911352661844574112315476905525251644400114303552061142114008036505506264144453390311536845588744451617927929528396755866151289205132157343127926238586282638801275814265403515010914457074463465993163245367516914082582057182138017003640721366412076266890616832832244407536272120302009981114810319046674678164370152729015595992577797398645058886344719341615461098051971648579536344747564909838268357560989551966689918051869268222996933504647891451197706022212952288556101457667192155432005871100711511114038268709363806714483249363408487979434589420142171405248638896371751778686239158882654488155119810711698032692530204046438902615145341820028247149532792508547686781934406396566597600576477788764279458816455038291694546053258345879953092120580890165140401756978447357266052873342248896960536945899432086812307451819317098360636264410260581773167869866560665056196901110367133154818799053532159109455216397599645815731460957823895439351208698738996332946773711794508479570036070439090896181076154934032492816221156512306673059612555865925136014875580521423317835935454282002620231313947557909372920692951477229402812330062250264150671770896723213271201918179737464928045035238493676030402989128695465052729712059419229642712035612050957131356344680029170848481039481083677771800855251645808609751674256412287243354728661706464297769375272674047934197209953201278653593476488695414778054716356348171655392663393318940791090592921549550339439931995248758795022884241774534666571050875612464313531137029530815062846982774504220164518973096013230151790066328582098547614346119009032513636597572750841173125930935683752968075457074529320446388522719984525852532911716015428745254782400807526187248951190318746457125562218978480535956675455242751421120330665522916824224177110709630662634604403367172964397155139736846190599069869809081437120630328367198431426902349894215643092946448580934283581657473716578953466066944872930882707263841898858211347022339639014317754157457970303588534433563398971221528653331233701413643813298607022296798433047444405521484410388907639424079972819606016101148350742824884287697499262512886227658158143842824234859526491636188114833210853292061738158703661693861789220160137674537293965307309805917099219553635348509031461279487300687080115075490641140342793337449027765211974611591663331609141380081056934171828081542424228664255164148273911726264730934055999679080101027609107703230204806805714832572481003442778944738585967319017675537185537744783667737730229394605190990217491501975725570694124146736208235032174902867992721154282161338093794294391015368747261441476146037266124163846731131496838179895480547911636209694311051527101398742699750460662714236563879082688547862257795958403002341003987765949292215260590373206793461318539655611564846865022898115486494814225301439169946261129570167373272189467641004156097920549057847241435790482113552974485022951301956704775468641882102846222071409864610575369549924845147785308117606063446827179216878836692587442724033127386313861050247612972032226037123251227729327280720265660071112286641701456800884116860693287789612009205428483856268893528118434165677004094560862126032139037598392787832452044603255614786539297635719293860056135611329503769626508718189380446740947578221564184516259578904921874953970158993547563759367031225056616031971929376484609902767656415143769679839153296490894218249793631980218071506400999562450092417111427222709976707020189384176846853249582037064976097903544207305816105423480989742583685351022396988745711255791984267726824975955891000514664484647888296923640059449075150088177551222473011332664680983441945863610909565505717338780101491300287724024814973726118119695010812228200805514309383991370787985089530635895934715763924560836810397638259341749849571195644812226306356626165712398242818068368324073678025787041149120468249229017526204870027942996693854198251968073204700336180518806906296065994818206087886318270869496543186635658810337860606085714743804685574099365267971046470343798988382636219852363960264344676901928427428288640700084842369441770862371795597355068548723065488443426594755999035347680464289296419592298164559835702282723965811440766012380026708237753941199954234916765740054634308226662776910002474202852441999991519967329979219733588959758254902631104896545321454079904899598874832796886802259372629863112884797140052442738375281970317173150762548204285793888653547358939637219059073749782247269023859240052748029213041346353995362823765644746805773810380221166029324016504409209731761332251305846685226627821796039313722713352701826410021170246770502439102833938970107195929151766185881885061874137279266372020272197102609667415877891865279309653075099260911065489998040125642416495189928600553892136270700823496204764802080679219474559876176435793687993594681719343935903591995550427130821128519745419788760844308335806955783789823019375670827426926718689142863792313278795629412882721012384002951645402789018536771420620268266040869591701800083069989113112016379927447575637073144876783696549112240118667922378098272531506506963516422626134910830990436617795713700452824754412843005606724167245688403221620278269005373689629165020024397919174082764356428103821881361941042303913612336847555892455605641450724702432251922972370382587569440416742674787134745954344947396595616016161905847279905936465737921850834630911643140199592754382658203490088500859373030547136169392202800919546940068051457734443760478084893686117096306596184382757323502854798146140225387610341952081669879099765697644544200548121060508982957836556190665723786106886058258058002503808600075212333050268442515120039566590110091331551237378366895109906726714754164743938228479475140785966544674145672806549462354996468445852595126096550542486031524364375557400063762937752170458099314313154837316978800322503020685828809573520453898847491192025140578889083000771619287988549902484487587625006947467617820483854962658924228877390028685650109651051140726386117534456875559169280504702077969767240215906162011177938211450769655393152773480180760901145162182455479971922004576794899333682721051832621019905887199543482862646373544035651518641528233871918603087915843774485567846456557214669488951176996384529293727675690030059281753907383834713117132512422922915012239983840296477581648862510419496850394270681268441388185885088354948249237089471811395093438337706630609880070811834061979025965594460593275606426414261540167193831988199928600217567213627090972972436094149087618361315165914161917042210887629003973790595005583448130575806045468790322305793048879265811578851344593849225173616984443055625704849438458503129235803591837335023185179558524652005034031549719125291069953883890484814323719018635400021431184023439775892642045227102704579211249699616683039289344405146004764082692176774265492583792614845958656834934047942418436378193694329821261213320766977153794046679547884938042740904413495922621436356763208041462665356832198478973246917198677614017498601790799388929631831868710708345055148330319595697993638691447371573678248219660348488433687016893484517681509210839417804194442845456775640638018459539734033102983757747984194625627932422220849861111491500193020925733372005531023343175913738429604560549998855844521655603043000869775201803467562487885863748982992037711096833747924860096562117698736045448934733706528514561360152422299575347571947447437421347364513675362362028759760328868139380694752779797098728350199665498815950369992914160755602121224993232125885363119845794216015440732827421939447531858768776440947890278151717174475873081652284452624230442537043739293050182290495519547602648983685356249476028855690493681830767102979767776680292739039995715714952361514025303135696376333632164545380617984281854525670707117710119078756621949676881830429712903015358442393298265911848369167426956721570179808545777717849953635514993842678183217486834676966370021907684060243016594457352545821622184867718479096187403784443470817411295153291326636519329181518678978892146558064154824962266201898503144847043535929001501831911483232546447842134985184328126300117489140286275027554587252626770223318374778892707693551473167166514611072830541693170493809672264506749483838837528193837995348155416816808891973234978335512546148890664866349023701856509869800107299950338816740260754098739441060972506637990767407272782423858768926072939805815869056274138528709819569071905504824370785152874301110037933305819503779056428729410213410682074674083507154731895711424005586557708714740320184663494730712868118472392000057581749319267229525211945923343546695333293870099919387857193768485362708474571554674418317400849119823797506809904383240813739959715397794983878960625750934814131093257222405673352908884542148987113296172302710488888567219669234669111769768302644186015289593124736591771611475268007166802201023124084225009528747254138064429046369675984793588682143273885340461164721050765297465508775954097238741462791046515337440642081760280778160481827547787456137312747440209214192510765620741893393448076460694727795969139641402978730414232474448196342208731995611792074136637491550281245994130074734822194814064305972295454982975689360758367609879938987094422307812249830880284606439684454092536236886576549465727467293804242938609232511838685834191688205453358315877893106497961136098681088361773854485358094945969644091933880497822619077045215977606422591440348234168779258444522471909457205629919019525486865633922303382271878559949893248697801128777263774809905834578081780252401577035731179490896443956971997398209583732812204461554429211466686773550115807177787209916420769607442884164470371291858455433687678422073245296513306755191476836877364234521668803594289144979013867532383922158848756097595576492624141146404749891130182699282398722650753226672497632383302785961312158965552764469367984522897531395651853853806003880504860543766198295974023825460684694847503628976140986107655703821327413484181984774426398284543237330461756194081104163372897806435529248434830411608388055242027223058897536676837846332798248788921396648734451086132986588105190991449225178830928815644744490061257959800862329769276759432142201951690089268130999653845789775672766761287436209187629740331618272510288534450070722612746141390565321435149233135289860388934068337635096423433559675560824066464037132190963584281275937433169424357398785523448217907867406123546442239788253733802725527480415356591411593848893638456973871193045920826686661460405394834642779496388552094826952306319278012869094518751119522697193358246160304767738399402514636879944905861739708741737915921094461302846982839678462927511839739205125312547728277290641439145412807439843796747082726948084433430294502930710351391349998003314488106414871838543056227738857613331066329073633134558236488010484290128858602998857867179890017076883082059672909635034724332648061616934734177951519652380358266373551944615419618142948853064906480465382562758482665989670260343675841008863884854151618405567443628905608571126822157363369212307329771848791060255021381436474518054456273116236665427460836114808172658800593107333867836533805955094870236053185130694976333278503010149413796416602266764435481832597836399408428997771019149672652937795683947675564136475102919017187727306302830801164891135982114953110142904021790887248503455692926107805727480692112972556649035019977379853668728372700744081892013666978081337899909101995940650589652387882172395018973182453141187060888606880432233278751931485375201593723000509080875763867969217624558009137609824382683446777690387797740334404657529196110840726425505350913340249256827035734508957031631296463006301410411183170742831839821599344592342121562346882899143045732680425292116505261804186553384398255068311324526401761983021310683995407446289249718141576878381920767427859602478672040299441222907826553022179775419610367950188522962685963358086162668092044946595099468802405197614686403943406313693128275707535060474702485640369073716218633551042789340361505955068384711792280588926566170478306545747300095809128069587492726505084973650826819321269517456498183874168211395641403496434877118936866302478947833156120623897831701798461304096276477004336160479856362500161374542241943069397919881568774569366370447290923919572214269918902733074526850419966380487889671781160251615517651323800001573694366807626995475514918057592020482940622612720173984456992830542610260144222722604134828517748110730847346975526134215166845900459767427680724158498318430334570308745671362866975593271990206227191115103134742632937934580379308439787009221436556051854622184655768982239367610668584083566666828513554649943546145105799580831506596043736684519017365403776687401719132617506837881328308476110865005264510515839338187960096688287128385688945372788924979548004691302663037143853955429472444432297722065776283766674554971206451889573366026807347752045072381219183172002514765288454680210851447605518576170878847622465423070640674684021919405212724911232141498472541900149493710382308137635618491346673408576522869664733949302434707546752015306361503413194291792517345808151157028189029617255495647666031187581883913619088621895235663466955853376279465165942607903655256430525177988723693934406320195580822000133498043423046259374046702568710479613767978187787596274270826570603645339766175975573663602883469242893600935627362423446263070217921965181684773815131383285999658052274787231143127271387424455015725877849729472793042106846260959364633169810493530458767877856902301358574885884390046686676538413795165538785076971052707910985234848608783708484871027775315984372950897872565040196618210151528997026204016745050482366215693232434070359409100429159577544786151426357797178738528518851017148394545934268638843143936891146183669962152967534308147534345711042758098291731274736918181361221701492113550694226234909506200274112238046042943268124474231968387979768438608416151133308567696530451381357969407678801431864671663247061398816763248251823118155405033744286694021693956710328775854527403549285623066872249378353517627469176542031423921301136326392090781991762700982596068539060251181782046465633844923690843402072988762262103588217751507533630574110556282692645449223475193065713512023792275757347873353949267656568792979154062850312058697575346703980501121622801987965412988016512093973957937251694712931472030298425704654882961926813264704173251021811278029877087054066545051695352668647638216331653786889294975474830822188508664119244698327789880625060735640399681594027792365375385104037709594766047014575449400896079488118992874814720741446165057332121709651102028232801240930874584629988617605536444493742366853127577355318819491839407698764354595272324725433772131560141872077147183900941403282820076073589876085498547614845766314322070277421748132712992453468236330075521645322931653095381470232328763762169543907398361362847833687189330731292001125549818694021884868076188773926225950391288021583775759679782734317381351898997454732518484273162611024814805296364690720922616034519433450322584277778906074435721414618797546894181409407905867357656338783523014776504127956605669927444838899583463337009639109960631550486390345166113420393013559827361980791945497530181986729239016039621098428990058245702049734689922810356835072908968318813497725925794567083597828044466807217559294156598681863550943486883730597139088357325159562018161819116420080495705473717899203568947110739085716024584009582944084286268956671489206977925594771940913888961476933184411069697945796302742352146796691121374395418798702921219453927845756053256211897853441330433112893290224651886108894537496805470514527059584863734531664996213670572020610362841891860012535184345987538805136735204402885124048036299275929045191646495796969518630939591166026181751098962615885442955289995238731643525627793662810488951324113811593615884136253341968273421666218835523423220849082606772762795616662279441739847086764873709556620244530477939385080703612248713881831152834249299617394817046819013857243711343590593651821853089668624013463926270315652234279575419178220228702678558123270934920761451486515073491805358822853347671995045984934942222158538720591033031546239149131621105591934024638612067145527416976988091079306040381927530975278546529197006083261119366746552428569433089638074594142565473661195870121089315408627832419335585188901178211472630866769059605282080581854295442906358905703564420025415186292744766452924110739326961584710863543113680397174765086638217079629771180486975167434085192308002234451703700469082863072112697180101833772328606497247379331528780445391046560345466445018967487699027008849079126759252101772310049937315024204781248458244746613702507274963496589346712033125141493103227826205967079819170881412120097488506601532379991398034716311695515807580796355346491135731268220845546603466793216864188494040833810100912836391793644887259864547712202205869958489604568985707855596164518136660260008950525906031762657080004229676081756195949953924079075998050767841418241886406586362679756894420020738138580122044437856856281834028467709555978086949085779817991974064417749255321311320281961562456272532311996372879623347784335862212849630828917092596393391689788491321882009149847705608253982737374415511332438604768092065243027830781595880584353801618148385437200353267008990248083145680117454789251789633327763653733818526617138669217015259845388328998994376839545039423165886216669217328313560470916735020069670818022710050050484784551297052796066134984634000934571914136677549287858453166545897478692364054145357470478646955688727766870150112904144299771122522066238573202951788220862823358519116452271806187766326633338810769087410272443214610661237289331921137802120147691012148722041961351413891115167749608963679197622980136789449525774078712354023073525079878914802337481186822144974137536793973144074341283679090717267030304963364342872528355141783589644075829790221980049158525572543098028129292876034080973216831329588620342511843155629916129520817871746532581647707045051452412385927627797088984892132524636261865827765455868401242329721078676378880822173128537810607858596517539025488061647612904058138654602148285909593630986212487103350010400653655427838402459591590964706353865799437752594938866870950983922315013348184384573488334031886682929178448957819883216982434527383289625068746793144618349639896629540253523966354825371347432151769454752362960962775519115717505840894519477035429110904650974955001545426921640104167115418957305252166713504588831567293969575153143784826557704875053610154763893119783419879278645168281259772784739077906601377042000018924220140412028364488178408977350834368265755987062924205313655292184003421814318095485238022670255820894887930286262134059816078008880595486386989317039412443480882655616829990343070681715746137551857693824183259165092134774200189816059254500991137258462367864300871344743462874708117263847528903094861449692792059714062424786408444228183510464965343920127564795491455854864997088618825889918562639068867566760542483540643557117011748345223209696348386493156095621218333217360543503438334881471024560431486461346933723218843232655287699635537450403192330312224737764916826367911663542192122163312606278329496165602309266108683312695134979342876523618406977551864313080364206843154876824233137731701984165855967696617211352160778617328195617574298888315958499794428404888785003570924722324982542939061132789184305567450607821053486115831785422398129749595152227115057001403264591903375819392094612607352733570355934038195630402198547813628357243247746210403580803538411168611324447234376392557669986718216857686046832243389912049846950424040615598065880876123747952941705704594638748257491823144193149081472551464931371750164087742339483773809805308680260068194368432036790334654132538665870641681292169259563394238010697009880077146575543986478134808391007707548861392092719996732180455955179800249089418647899323929759282250474615241774443653223209073704759699462714018704637594206198368512272404914680634225821515690191323987263851065925740013121719259822279503031609611042167228619547253515048071369266042458999126959901695789184444379609976412581544348564445045199189241260810684447907049763750400845522187018638821139454534059648454055773011594448728632358522218141793237984442761775164246244424906456072256464078323095816466971861049455573127110890622527207548931850129753677670307386128345007883214366179751964815356976525066776914226298488324026177973906194619994667468138959270737588903165996251120594634123627907428797581387280613597591435476726936631003279641102199179039376475474853052050419173684275766295896655360115755501596497046176790636353492947060507076450846219330237448328658686507895952422569740790889693957440632344834986445402285391828000239836781713338336707549871997648264048098220419239088947805230458232598683391498056636730117728870198545272383458343585965020228993045115045167925863219873350529462518238713001720321961296987175099103334494153516055575208355269256750261248294992116028671937392747086326414389898014034039056345935068994256480313003709919683972602760869355645548595274125333110457651450574035264552068645597302264730316613093856434473798397589993502213553364025442631580817592285691051901520189292646437373246508756622467919165334250100283733581215535328662082122830990841461497075570284746175821324315410050360687115601494893251061702208263701231587066479562796731530613585549927117392938253902153557316758727414721388216508510538882005896423511063994499237007328167164296626696079995424863719601586704861689021280619436541992244147345261839323616789435850967872694069850260643901026738408654245441079577622083839683462647238641237809420970444781565289693884980982456672386049440476503617209235393862402205179479206622192775058038707607732565616772659871729800953621832719749556166498110278876987776964846972399381418060732748118708686773992002089899072283364612808865438975701458891235745238350676268388807871454859876892761024490748403726427809659297915284828304387199290135376378265286338188394484332237484336293791384802695450820218954511728769376390546538882892606367291190993858434815293843931533125148436992121162594883005668288959315741017440927610901646222967258664842645339810203862652039770821170949792429221518227594802232771202773448126966074577991078304041445786398975353620223150440676131908548935255346560334593518306116105813888924156918452811196922171171783924575592596563154149887074091150194967710579539277813691494377695884983725227713636124239115589777305596341020142373334023333085328108582392592286831037407888846779919539322588960702316788472728747530942788994280370321713477803486220854385363595722889523870582539862510962459371483652288969273574465109980716248044615958548409307940718960493815378524605872911541485780166367488054357500429224220040310029537181156442003152172388412947320283415188461069688036062371414763323739340289065767222260364136069861040324164748313793117283373551440401028735165853668186056509419132934388473724756996533586537734455849370007767762377127223364895456851155116783407713742002860241328636474791780121663723723290252851125068537102198793484085065540022449910643122044889484435896161333305573565440969098620487160895858566508947217522713585194025002137886319781154754783110384409893574494287541908916750202782125761146366796635020424059888509761206517724427735400480063263678406517249245264744566179640611899730386867916919422620103335411949989548481170732976930607458818451901726940000323341074313618387246684187948967839847258726321257445328480005799931432113764818707084512421080477399914175286894474865527897763466357800882312291255605186229175440404548200385846158760392035838817055406076385432077576967910160240840538463329271039400170371422512147163946583626089511944134717157114306807698796213506308732244235358732624138125624781128402394654865936629492901460873392021715715646682908900054225449287840552241290499203254932564517810471592470255189094892053321043037948744890846587087418266947146543699565519765609439584488695632478139242847273353302850566094528971935337505710377812589879481568509542757371612600704958274503454511207464475072069603440878837396105565102857093457630526513163014731597977657090643278755384265030326756441628899232114566490536859954772981904040249418477971832224882723590380929660434968850899912603736718715360738910561310834105637152130031112263648351491055892868732598901041531117365882466430866039962905487576336877971910909123758988048856904077968401951925954509628164259196680965488604582672592645631519772473248918485439023685276842761230014797706560761290818232231677218052290022086636944834028027073010261736102861983841150108397902452817207198951091501003508075379047418616860353994777109142296782214847903106637591908990720501198892951369923163224729347677459977800885426762244060613928075512682438754431775316455763952435020928283325560509060623993815107718047001215551003205819629736179450093220472210972594274774392914064139631830898154593243726814198712364093904015223710950935956817603428484085272995086423035445888221035231376477560312161840394827908966597170125418968854544207865698798329124978835294687207339244900980863605373395806064768200043292132541179165206639958766634677880511803038589343635708572454167198804824549974263994082748556218980050945367835125665531339674123077598464988810433275186784726481321618902071042212982468822160294977608294803684213238091066880071607915898377280098041522575765252864705236620638540483562354293021026491500387456733298749568872114020456173768010338724726983673984927174193331882671762171566269545793071459595293775813760206791145689583998506532797876019580763290884543496275629010902190947478497348610390782888573318728755037363840565961395495687182094932107596072190881601910431678370805943317449597646363704206276085448360765062178158209388599650495966584505563900007788560608108173858656869930704800047724958702505072243268305809814951394223888326265770487456511936664560012461318236704343501430115293522125870235965684763215505780690498018865661890281643648388389437082130081141816611391291272483138762717202818919913169872546534429260545835778332067722160883092554268237469872676598794635637336292258863040289422579794964393724293739931020478133055641027753705530547880684389919414840827218334009742607563742830268151173193963264739336776251941052697756636170277392488822641931738762732273406750579822161435489508413411593380730614701312916716188819513288117428127386733738454407904775122126438179659756981542897054555051725761909116107139302132401382667113906020961278727391464063733413287902326012427068716068896154257743558145733315829298885550221043536549921268757700442634268421595857192032349574494060249612400325440770897322758182052620790081251267595717862861772026849822087598980170273940526387809835577255723970953344534867336587242878428220464498475314816475942498105902873019267206514782690815932926541700432664673621477435537216084506262820153216598656464599144430575004875017762792808664245238908298322256758735659015848778541734895781901724765834138825725344501850581032484833385531351538884802200633722621400096171785862329744270824995513532773799970919939037042981234700747698857189974587665103485081012492804772796189903484455749091260969507513335045239226374027755853111148195669880587137674457569117510175793246914141436412171430420395040045500472143797317501445485937039636536468719616866845466191505805467537203286449199487810167306655847309831446667445936864682624176152352306672154174514073597167627497486569100154844263108864329603894680845810588623964703387707891287712635789398175580393654044946484566603336242830359072750208677544427064687954285598619065351501017166765900593592462238310549805905282115596548373504169645327585757044063569909908773488105577753616477214102892313864679502384723601868041514371686709873603381508110072527996706240980208479891033621381576940395780000619481195461591682090198990253057306898085241770708388701968788185432708783404745460230261183463688603932434788022173249444589398948876685779099137469996066589258229528778280929405927070468963073747018269974251905880773208142031693292633132850787246879714212750275296144474406768151633371763804057836433190522604220666984477767271345655358960040441971801700012172520375297754873319462930213977528015488498846167376865491306036485756778131111328873714154170476030560950854735314583744072864487461016018718200707583959794050427016734456319144028336870031536728708924823622133717422798073112953947078193856105919641245456452012050616918691542813955184333949648176991187618776863335196070054481621539557592901569279929622324927728928074381505545093926603329521712215535861313784808340108540874566257363438689787903031951337392430379423130382844551295705313679946751627676572287066768087173612439162423473806903104035826775069774994433435735695547936097463440386326826258896649433515822879542014240499057832831893324156318639356562998690890765031883329003364614588615611422659310782982138920724912436854883123043478071835906206256622653038747531749814082061065144245481784077367626790386822972799460409152738549863131258655809091306960252157206922289180745433925283596371847997529435246166404907341460256481116722606460705806085694095804310342423064269186686981818981045708661141746390830513932970300541825952974184569547573774530964716205840181141565630512633268414232593785349360332708061550632901697403731133659638533749835422428084980156206092059517127431299919944278167336204772061240036736252782862986167878932152870708826084834080061399012917000733490218503818316993354881314231675116906262039303374150274289585451918785438346985138727675006473663744972950685458482738611680910301951964776212691016139377967488768157294817744370862656581591166863815038997569682223825494427779515167959184111947875686760711959790329118223370464079151502426059066261733250184857097966855303849926722544801804365991206577149496598472143520263459385591909137773729565979549268220743239042816115081481870756390117788243993137774082237088167880725184260978206244522465279659104970211420727866951331139985258406472583256691973942048072988894312792208183049621351377646970194302880340691571511912324089608604137764659082059105438433619104259267982152246470161512493757796032288108801708289870197072176945227952228113568201730117783005538391317616567896118385300428385417817050113602619563494161119842852076883841174984701401623527776109273956534998288146784204797022896105286242228153190628557811871754187309335026550479244902959472202097400778791498075052173378956460989022170820295204196765638199720327291203308050371167363311119502821425451657595253118930427586813282464140878798955220782721198741631026704170770127148300259652281692304832124637171369437721752010212618837681915132285948632996209109894722213569020560119035473561203719183771378537542344341099163173744058119257679017814904675926367520208054656954650536070975792536768708869865455770948115572185351865771142340447404960274594871880803835781072710334516458192803037661294731830495925761237856819055395858178190078456997169955960780605496282509111369442795625284968675615417243453900162052899194578422523480521203301541853321758560213435689111069980106880274689535826195093368805315812020024924233001890558903602430889636458015453013685375277985303764149415562669274490409723770549932038426996345807710947405259582271742150208693691132890443547257820793270084908070752210866809941632079043924789659487149842996617685546725453879427149586223808737409168847079315860653791978409908269285944713099130101800445916798216878529537349937361732737238409057166030138550864483290430447273792687392653725793840906818988661134092243833756563287713855598283086790977294230245403548752150980592185121800123770908124973885989771177806771002214510320781415997769464727661334045340553227804910603755099845924822980223332521377564612051614239044295238964254704639215630761810374589664909979377918014081264550798746555202516832553954642120735071700487974027869157241425932012816347191506734900250105483473556627189120795118851235758056004956074983692609933622782137101798634807140942226309789846972730470709828339915619861156787709557654693110153591638804388079760620057178082728040490928397004922598707234607180846444091339912024926362436655288732223335082775146596169726915067798852041419661507734141033210351055705584165099200530567451500271993570073702889850118744820635478797672879841739303606990222809062650648594343360419675501205525302464888763637924953786595549730408723319848972425529145650182208503059591676361343094527958838389533777263385314564547427435472848764248310553419552539496547322479222888506497591458120525143014219654813119843682996602780695827712434551313781519550476193037667219305834863295227255704294068128722783313169736832937371461402034026704596943423485369276430426679942866258644150248686794658011968180625886475105128326205225060006351424262928313200016557262738570513018761354545930200745630661309027030068848668655421369220633031163382843682426426260084682620749845750035055913318156666086729083695772391962300459315133753240218063609441600920827062177598068532422284531516428678640906049958209735812865886154137331516565587067594645187345268239621307587382609265771583713418699000270109366764062692804917620634397411727257920611156314357369522266623179858666932951457955130954954891078343095258072108330131740238591924064923246348221365363820111951553700932427039897220925075027748426110918357577086484990678632526569984196579910746638188508647007622190929315757301301559374736310268339752030819258786433860892174136509664074166841102200180397878362732159633248141203701012613974486336045135022268831653910852441718966181203223826066287305074247400190319163398983367766424001407511342040678957189967300310360722424268941622495946517673006083497936160987056119652914847361171816725112417674095910080235171708974231099090516193635693419774336441874492339721053224014664817570679271081533186128981994837999787932244630216343251373717123157917461539356917085062293868009445439201895053459728124124459059372805349014177490246186952274964892110469009014123988552988095648520074252163861677497369902486215889257685846273173220064909580376976710315396118526342608170019414047776012668612208128174181120348063665051446922974498183052476218976474181510611643132038882033803290635636736422906998383354247924495170466012565583668360831175625894170342793498183053500579432164502180252652994829226052534998093689441487079255327898809253747620909950336248818502970938786159150237224972089463919486587507901316681248938010137002504328794034556668646341449144948035169653447083262499228493305128152288226726500135607788938496657070759574122705750464342271402316362715587409607886523277725500134944408374586915723018510591006732729043197221048547662568030376327003705235201416697130306325691766842288067658477870515526222756455079746864383411200181637563361240933347935209562542325228885210341192715913583272987976101598929933517556576024149929823149824196059803499824652506580472787569709368568215868733265911068247172823440395715955140536898792686291520603008259983573060530746858228924513091009997273853826206271001061127226213275486610549984376700559759919017371285586732192339869001299958218368598585592438363444520079771274929117655681448312393820748576546006293884014868229418660400639730800239885398500569832692800210426061086588189989123251399718902701625677315609763945302550568928463149936757750657896428332157770565740161277284642907035409688559488815643732060202636361141185151031722749997671228343641510534984754636390092456820777320448872181497933900418639953625616774335195160024015327851693573868225457734048247602759358416757639883277302823018358612100368804921124966048126698977653428223685719877171305767119157348832059507961721128483338064234466931497370007462058601622788413768038724702001209285673826764285785582334461890523186968338890004956050409888956305114091786801080909255434634008248917894607206788639794750922258928532085119890052467683314523205884506938440439202822985425092793482599657017235579009736876982571306752325213028294427204655833128285476166966706892287307170285119223607350635696572609318302606758989988809048354405108160305131501999396439072359752223047497148950683559776078354342026609855653548474907154878783397007086943196329119505527316964348734999335460921084610512152570542933153647869703961422902911554487888619760202755916891698885400434700968740357689642112268459307845436538657159016247132551590186647991085037056460139986686376121182844161576587607195112269111683543359221606360973185025433802221709054376935598466903278677023032850226408918615767646361611251551951759452430610992650707678856660543508608717379196624319378624585119995297566427867240384150956442558641865089564922003920386133284461802077615716527903972108491552164097912786902203597051188357851612025562273199686728048064792583800980293603073870868931234663519371536341174267054518009450290947010786915106721428196895274871061809046465735021416790674476360824887855487842941407652605564355974235183035628154202511562595574122597684106548357348406888304027646410172076581144377867767952178944595580631752099490636759044430609421492203137261578941897165468731967602982541849134859461335313102528471160572860525273078063073764202783715858779475606529817506709962296805174195230402715788225036264830149219018124219199485080567406775107449342810164787866270417970512636707504340406533736465004722305158070408263272336789481783187538736147777867813628040740687314247703223784671909099569422050018724972154843546186117428706834700515907496790309838822717469776138435030907855913267884221203533417680423767301150614941358680233605342917005425916684545685794134836776073832386302831229181571194810335323815846116956593375795527106957912008132557075667446335705213844471140970313038255600810805153112403672763717841564388308639704319843024936735712801310119156704499315963535012749460473854633428986382537246756017805640035206082859398417573709703233244345935678672947634157680786698238404599561985178267166216908309186286896560761414299718403933168395576200376503037311137202709356670269093035668467559386807197318866626518857868585757925100333796061031956072396591590498419701912370177566520305037728301215705749141854185156751153562730561909691570849016807458069620331349249031412127287405752582799483671871485284124696166541896478808336882712444052669085276616517959777622211132694521440445764164391266744791815614413280684163036816316449273666790770218231830365249367196731123849488819755790154655478381840516587424384408682677425731549552890035833205285982816810136339235430927209940502234211606072234443640385035398953241689474354558708060830672407525967254678598659223237040481416488173511203694457494695848082648275115063921628634990946588291789790489255645754308142116142990333518234704182826654469459825864209773881221749454771072235426987045603229347749889043589309191831325046922819334372791772023209328301620613458693687629688921738051912706418025793587288847344919157663545988644203914682720552838234008942842226436289788753608392587400852326358573161306891638128577469041433477365401389622641690246474385155335801117995751035765273315530533424486016585109555366303311148430490823720048307663803545766564525338931370579543953188459147565019635209553052434620914592166264402640987407750808616426787201598430118058626756218967519001537483900988465594608398418864444255835513062349114064378638380323133858809118859095867756419905723679557109054460591416908650898236764468094477021533100419267885348236883394493081084538148959558915395462020643641233098030123627735873536785968972485450846176293891463079081596434358680612524024091467370263886686425282084265459392149076617454307243468337228233970865075031539404829076285151200876541940368531177073363185145844036382388624557475922023005810234182517233159400039107418552907311630564597122752539021150196364104438589723364979477159423199827585767163995654329748522593718435217304058824668672292471644826971936557706369269559342232393876326149344116171053177873636332442673423574371429900252153669030260909243890972205833453708583847184883228057950460761794499835483752314604849347952146676902529273545648614716174374999170896502066464642635775362082633588187246706115441622952260699631952592179772612645847691974510936176685244885898138117749240768392277750975198447144084383524774806136263597959647734823442327394728606709230359746938436659003471855607798144351390820113163892340781847540314456827788141167424599856288642665473423198337202128130585058259314155284374221111847350758975109351376234307390808131919017155445151178292468400437228958968344911033687661780760185447287703868368457693359241219964843292559121574453516190107223932503199444778267430620887087419857213856755077092525063711972930613178443962467300181403784852801270153210416933680966307823627256301886690696270711331698678376485940982121235700843360477998190023776523272796592713960005477711817526274947393173403321613823736873375505658356809135380957031875228141042668659573515515130232752149490058474481468413698218229468768931592203014468855344033343619135615173030533310199637669883021745068589896757054234531889883746336345712632730874082076440462302328854829457524521658066924357893135851058860415306857613051970820246454128754718695743541937128660215698495436166748142248323073503355252021509104069798094493377134438443118268508535803780229189970211570192010958504292680649894711625147675924995585630342110224730711938758888051422106958104582235191063583405115634609873301328394672320423251247307486082922519898596528330813990648202847880186490367364087012562955039591369612405933363195678908055939951745651033708263788026332871122421505560116699563229730077652984019244885069612340790807175503924243692864696991466646278061461887020653356216111870284231694219711213999393082636828767763294905304754862316841733412285219281702380186364652575616466390728966654688888872358672937212610756162258190474080326412050541477746038248964875427919989068497253916958849371263215134310802755420766010676467254881190912561677869618487899167752242629467253281354368709819549926736519178016779501735682929714351147517544638244929843710315127511823648308015242175464593878619673624363695930227442734009020254591143885105359810381878952464150063867617426883941716080535102632712082709855237431770648383973173272153587650625746646029275695920084244532916595236319545566561734961678276008416527481690203701306765095620202796397058667668422551353308460268083783536144979107945394712739508161169830223219438549121388387002153421097879894637901344181273232578592160534604130258813427727367860249600256260390681831192491890479710071472738206047611658432001413477594744718819432716075555716440134977635685705981469947468712514990203504950403384692328842569036687607579343857706092577933049174537135467993775314216959590172533511915156127984874750662701199454627958146750319413813646823524881822299752073948792219548237752365008341309608246542081148648184768083363695279462943716631786699468195584638354454161415272569441122120926688306954817205969157681256897664041337117126295282695998733132413977467723216320866115364695406221017977513761829327670990910777474475850760239968168396799777998336052049767596367051689338222191759690291504515201958024992965741531795596421732783624331472565172057948182805619451619414273449079045396565027565056441753875575643911610859920717182137455660716212041350061463271643357574309128119031357344105815708308938090287829839102013845952439089881699728039374087315616647836230609724736740375923026176507658373627721598827669827559476347502740053682218500388114988183720042298149258986211658582117451846256029907804551988274796613065745069655304181560069684515145668911741948734403060613925832069258527417516086226455721616128258877348813576653854905013734985001152297879399901936119951130073102885653662710794854778164457201193843132427483947475620873469770663341491195674163488294984895783558965591481866522797340656778085310465470468283415517508187192062738678729604016342636402633805140280089811853582700585669875962161989600589242733973953392139126465449093570484544679619453798679777829227061069724790198434130374571799870665914112123605873187646359539209996092379980026095842009693654247163357912076712652444274378690429638802612699102338463910651019000893986541529969163076461620185548361495197305092932159706337333000360474619297584094643227653479582995898474571794766766046135379308478375653546011180902939424161964399706611184073531682445593566081540015499278750664317371293879721818920883605791575206240816599378295261880385676648249207284540513767770412010560484800828452217647070351138364888914971998290945475589079978520282235781118874245015375322585387681253470526637447483870097848126328620788744520003183028619251973642902406736842169766731887162769693130855359097729445094443984948346956924787263357816562963504798977874976393656717329598120460051202484611731993843215586240522957460059685940446522932134945008079097221013291705488661239825548720117931447789331124918289462364701571861471504315947134766213239934433813484579368480078414288179596446110863681695350501528115630291319252085581747930595922505543381578061880311102204506188893676971118753945906730160111925671494462683563013387257308955734547666364600977016744838770717130066228814191739307339971998656938039716964219059221024138742119274094830904908577929506075715322205314049690852359456934989859380366988022799238881038728140938096893842223066549781008979032023685279310572130493220962163227848238900655909885661133056729499844180962214811476068048463695439323444839983110330546534515995927529608779397424993129604587969880242323272916542968014836387414793571683435660806589255745167299275080476703012693741762450597103758585681756389918070445236189217863745648717097761321278007271219851566950525102512774049830270514733242796594960072794835276890905252006651565037245660204986471930022857181760911316898033701506011415299000175019329635723164226196405851236462116905849550484107053381907903055337011950727089369915983870600866324584429466116716152535266167039180617566090251631225168397255139714805025513059892098261484226046782460593163318107870964497819861578376572546512243427951096511223159544060316139551988891853909056364328835165220499958768127403631718205354893489794905308931350405691098541330419748055196094810487341006058098739542956290514995821925493874376286240108544068187198757270594240499259320894199222034592724590794065790606948752647338047194203098931887273673660545359115731058144448179484652519355577377677165495541306011060748622684102547242659773356888525002302767888659902025881484242011816755506059446285574271758482581072798092639660757050969105369162760450510704489259287574237257301453376087138641087601677014682016566400980344363586512548793637214610639056817400302975584818371033170699053222717479505749390061998572195333770279144209574036835534998512493229639238787981010461352961471777858340078257728398429473008510744093629519883658152468003945007925106297680143220237048242992994257758393025905852832086907702308510046789344278409964372159529665157602728675701205986250236221831614497912723861031982119482662611349096673588895879171151098272564972265783311597098676383824825236657593633459218480714082094176917954709552885530035691093685317785740323403014497074303316241713559954258842725170535512640308914435633947399813776945251875996889517597763020705447358230041191523731707418864236031549509339435226456358767886890665219562400904176684238822115078404066896393405421270186692396857890457487595521203100776641985256123910356115366902872625540874468968445181442389736191208105936350294829310131665115497803479130863811398359527621827323197965374782722496476727683593329645027769225483077323818101905957714894100321827627221960836277914062861933818416862376658165231119064859164720691087561346312139605324316695618564982777998785262052844097652642565383645853136624877190128999494301594838972728834340733494084976443307192014756480561290499020195941203954106690725765899723009420981105567228319790417552226026426083046996861482941828025432679871551436042521351366712339538835480396757421627173520552804276536213994501628573432254412477295794039048260289220041804809516541275156710777261048973799941170648788665949666353772421920012025785532685276891439363851522062776494822808358296472954209284267427282642144561863805112005675869897904503799735331079246207101166370038313594210296829110975188084452054125691642475447391537432118922635338393120862777252290411660741939936334755213593823628618249752751516062711404597684778255130326121422673089965593232007205468448749687798680105472962224180695882951044671783734710133647431868305438727553705969186967469775285090826714290084815311640610091233882706044339502882523094172564741967008828010491658968348193240473640883158002406504315616715581249479084962531575387191936507387827544070185463245925405747230410753201490122818017552947485962758522476789349709037102582104893190783740661810710173145778341594207646597935485097797673417045422214692206950479211961940471258191673731023274191094717757939915651109045946697667610407116987071641491990734408428436877828835448219253108173035058896078846321430327382187964367468150212289788839418228082511607759472757762852921742170565823115198923101125365765456523660064972281986618305049917867749939693365954412947467653197033940532893760543594727145099352358146093451274425468549802598253000252234749098442144087178494388582421291381604566380346266576689826790164606106499132069635785471174395339963184163955102255887718451386320509554575804977894633478059567261310791297542671931109522303604996843885227869904214352191743257841431945706729028216174061629223835790062313297360033511224109061401044367389973976961555690070776403410832427079714150853116648420487109380873890107764066943156909779737267355107847192443487341857356975592829708102482786077962724281955160957797661812832704476072114077026953025022367823548403333233664003194375020963845038307857918065692699997631605160545886377693184295719737002891035070933810589443984640556154596081574158840477440439372476274974523582475977266931656451589325615300945142956141748913090151344929587782914594420713557893126685000242818997466538339295810190577532744645180047360808775332338748811924559147543965296630703795894106337958374276193308058348026098511204742059477020562975568538412187881597999120089729461649272543355028683344220281292293044096849843540599818336355207428745420780448428663482219168163764785684568412158093634028918853961523832910834313340041562939469578587130544391155144968091805153549770466326058761674182082547017089404861256587804984655261771460610743653807366435545254689641422680897449908491743957471340911298082080753599858242095462285800917430674706411080295449268359379769774220990620655022654872427688834784547814533290057596417382137086368994366267542975695002272595503031706263589168570303575759874707617825856046947618683575107260152759511929823453480199467184383109083887231546473407844804324434849464620726024886885415820087613059813133916638205566698278856415842419905111590224408000151904310842504323192453749188988267611306896788866594435430488302910709940282240636040633470778069843050510943067850656612835710412444629553082144221272733371830685410929507618063859415766210282145822815613489424977800997659166097392852471276314224133948671012183627011233850986280536532972143894118995543047458420842703156395529845643494074161986652648399667427538853748051422464124363231436427904027032236315149304069964217333372995895431413870777800787704272962468511179243892663301658681863717661671760254384700696486904931183853391213984647950633941911717072972605092285187121542778224492862836272747786127343463401330119848779196443058422381007565374525188469284236741833552198708472163481287208470466483128251530746364702540325965628857078879896619682243406907509688645384578823433939816779009287693683609744905855241301500496590992448646136431739612575608425589166131843162302692437485452318031531237094177745804641615902371623351767741624647369730683992259099388229950034037181508284135506287829239616253190907542978810948727108861241055639739425067090184310202648405908250327966920954622151806840005102311673206383580812402807648015384911868688416150987689551289262797579422192402748529027660144802903591748273995080709135694097364262804438808218556606613301506070558635746389517324327359733031035846195377820213313073518027677799567303705616391122168802780043636743320720959183551171719622371342742955390315976405984191566996376480175425182219330609592653964199544873311712522001300099327567679393162078134682488692789417548523941488752725105718811921782608157443647046380571232093690951562232986140871803098022819834367765846918409233980790437157295018368457953895298979891113064936331796527943710151144289348714818317781098189781304964118524537496942299768915334386683676625448449003903732579442250593416251630650171211533580091816416030205560978507081867611284799781255282309083727936261532975758635682951204144465009707313744925724709227880442289278336413152938193810938036740528016146584966417867796289837643419585634698200620718585792842883573447335600559069440341778353413753227194882088746068438899683211018136936921740264028609431000006810160077504713434632141178287436454679258649492322203434552927346533754472476251542101499322832126817155208124503703963821953198915773414722533674580828407463479889783284639014189257356120540611832201279359690927629830426282789898814558396574584486631023607063637745936817963282545638434292263336376095146879952631446247507474388693949942414446826771132715567086359420475160400560189438168848243303105069967818472456096860251611903865194487163423035082842337603279659253784206942390396171158085738358231771438104113460541491625398351218002112364759848977972660393383463363871970334078311666835343243230232220437359243645798719925816386406145219387779347889664152018015291713460089434597373234165748577477586538673449765904627712635272477981642294210038758951375368221607786119952424160948925569465531810069140752017823952727124619010992915631126262623616930873257873886528317725799720315755535215227626308347604042715286031658922269971798641368570898661581706917611432541897545019459440607914502574105598674076882156359930164734752806386543813373618477553700612988937296382437711896818180463980752883882522364803308616322551630022499600547069018010145452698246239237793689280604129586782504520782989479508120477498223403648386388392339330855532228051270986865217835132877072803370775404599818889643690415346196765384969857501488932916820702530609893608112664595137642197132931327258977010356719353561675142045709907689262517918564313641454917768070934980678828823803418204795268659209977646347620148810558712305177587912946710536638694790707192866530348567789904457801469903735405650269387656428736170110166863196288797959819188416775849031429267292935996915687198545869342116301830373961508286977916712075993801392459897662142607065541776821547815222193297568645438185353146644365568603971373990789070821552532637445726217900011495593183749119472152828042537678247399193011575556133165059140263229491984982857033196926093382333858843715019228440026745805515691578520053968836238962659311838894012445328880329080167313234977104318131763900215439437151047357487402471468588749691206341628099098842857754884769621391359589398726315125307987068418035501000195305173558113389196865373724342388042561075286177051850154776726603089214784074097087926743439157900595175668273216740459584246126158324876813205446351654931433086537822123141885163113177151305055512600089579558085630367503671641312679598707762900731324626090219531093828393070303758823723308769821822502908671986034152039833070879976876610145153312323393469471404112921273027402190206116614914179819406237157616561849382355467440325322856364259059110733972052686161942634597883259172430786403515412445185968629068936430546733196698814890066257154527615741827679491306503520333992681579688065047791872900515340732486796296973368255164296460698083114089150494845124134509467564627598857510540872135366058133048007892731530938682355297431323204010907294334726133067609531427982912125545716244290546827753414603619802073337833584756027643149203811583052875795401132792451213254335167136873552048324816880171288964608533489303811401828588924924483596674403058071042833896506063116655069407821751245409422850052551498477348473214890860253830602612158945748968132751109207958232850951463071640151907091357746015909294281767698632271366151615583161631219201979411198946130704868263064775197153547962457399339263422979908119270977160786219104620918946403645211990126507664761485730117187376046900462888763954907175953758401663715684292045515627185637323527020475902258452073149541986586993943617545627888220149884896143162940026966292313537903930438396318501518357771676933011628523413434342266369567986292687587398593780078833629872211658315408255355537007197365735422498657366654445267236089070738727828245695092935214205247449870808286543241799937743867625603899277070325237166290640494869021024936350017207984121522901889996640249659497444385670237996098117656449706892598227328180932946548868345155546354965841720168484133901039013413420073651379630068564096185573955215559414305559432497919421361496688120924446362451163792040882069207619616585222570611930685700447206886813929237204781871063927936842114235692190390331800637942755104019019055657273485182753952135183503952360037111863151539563549082107567190171933062933281370108923829102866649679481184683701390349351499019846563504839735918056219890291702224198172968523445903575929937545365557823240578710616225366361973027362200157610933112154372781513351109308987098448372183536565068358055304468475044045090861001837762215662666327340150823706051834730755553555520426360813363793392745540321181352622398286948027837013729071808415091676211315854952836218675410583322009545305477288529692424998490187180352160558318034949143975638093583684568188240148708121944107773569386409816259497987745273917252196720569960047269471794213268787928546886988450323838799443915775485571137876525469771422290852336965444466285466771816360850038380995074811060185258961972886107825928861635058735816624748410107725145992567950072122549498791991517869722336956421011492946673222670816114807789556498882449897578475917156983344352570075301863764583505917563168438887145149536407347101419829401737603887613700434134806449214253201350966254740674981781361932211816178500239007711363055268065001402272218525713025014411220179211106751758958405257325395307751267175320817681060888912350101071850481043538873404634856502563219717794713838484545765485146326830834987727875979653296122503760710004121191495838133542700148300614619335582698051231647884631261134295410500891734829261000263904432815832849294646452822143909290784256297978558128271677705199988302060021676986073109510216506677865717983981323183570318483366178522760810143839404231098746382992914270241761865751384746050701796185827088658375606695320940798107290433099036484171111372252341817289806150799450394526397444195212919218225144800967837134606018649733949709546351555823547442178584780163315049522337830823151906953816545898233517177482125698385542759284750635389192928531340583495982304042693245179523711060528496663856512439421858037058561676112618589553446768876920465469927745162574677100752410705155199404905944957946497066163936285647211361723748814000768414391838104206042458919920246770502708878117598701149894471691015188228802686039772360512218359375065547611508870460429904050605814130479804080293004450516202098123964319419426367626687437477233312065489771903714440179019407903644860592086294253547058803819589486311357587501864867524585083801005392201238755974376078109627624824167888456649951928433189564886813030444405042958508129977548543066684110028339840234633052389589387924822977227118930452964861645489691106797540014599639820888006481067241819266155104428502429087217218894390115352561484846282313727988571566935475592833279443237239116098109564856954669814749892229263123305530187080960799121324285703561706166341631099500920450288830615697331185345964975917394494474535454911183145998617605806688918791804880728839185268357564150936701652595286025494505473574407225308657382704468023869141668016748370654657146170450891496397882280403086333704728154573386191309596363156468640009030409169460629688573920117120716280042631169404965261842518655978497701455534690758793227956643967827973382876788019510221728286690495183801484264160325406979379173057378788466787898078770376453425000970951867778486150750074992598034980507577506513344790490159689530006935200732973202791654730753814920675485252890921725049371060291655229844639957134496611819666780754694647766464991202746099921967954299043915555932086708191530660788540265509394695006156555681652227378451582286013744298793219065688013905879884214423898095652303043791458327452435869302179197786588941011007587107910676315692961246337149118575632167317228060113813435435416624861976520243865270662577739100387631879751852577350378980448698991742834011979825288160260834006831102995986139323266705012010633924401696801968329765143127001835784276037438592359380073174670677117684968729125100988528579820278982445858455252975914055976243877067928702055924173929166041170087270360415777341192867802603385145909187792066359805251378654471720180727919686776937186999738260852901932621473984470860580961488977448448299923687243837930682634445037329726538433096750624860975602536386741530078061544153699203165546688883935035217382660146231760990691719784293457525101584144953132789161309196174995114546080509860687614340158769259774364103221249871843062645702837104974439299123138334163483558542193847165918531566563363341812903381897907607807964773963445695581891270409885449084844861805548095097462688854100913616513523056886594007616421131585254759645705894685160740252942574635541163319220897924981286838937961559995961992086059320492085114711556819103747818597290082414279459506598100964644707537505763052843369608751496130693009484783837883430899018564640115137860413102379615618709265140718033846497354960149271473688191912663563558575124907922792398165717109176964320502273801652759478268199692899510896766551703103180786157655204881240353600925521302621527343163500427029071338717462229090851648531119050921145207850559617953519414054699400747249427625461433779712152054336411099228327073913840567637587560602627823893841156031955309360836822678369760906122587804477511169991219609027444133765514302345667843984431311515397130704023195245408004054279805398925305111112761335615785678389425816987424275820002707892569979955189533437267899975379689324628599418834016511287700078833591507417865524376586890108906409635602601364225537741527097807988516782529988267447975216488277389563833116895685145559153006675600418067405373026545319985935923183670009059334277991026267039353522450707500019812686811593184152618457986255794613204159601606138264153668838095364270982326509573569406656962842230807742609886733589959465330214346281128853744381224965758446704260177386020020212749737268102936453085423316002641768589453970135410634609238633101700816160619152346236409246013275701690359729091482845310190748829584030897284827437835085633365244981373140457939770356560429416790578844082812746442736324878125308757039644877532662189777473832393872625455837671413618402042693802929003751352416813175290554947395468759045138955642281951217381813500168572237236753248613685341604449430882565705599477206992666953140811309282731567002631317072589519099412329986531165687638799795494820570144131935257231928748911392760341896290246372007582100776066962673159160688384363334482006605806115987700673373074861176564762963902453408879350144666364521693875257351034740819968217360138406746124800583124734782330199686419515472601511631064443932180107662796753174299478779973020183533295451033023686296095301854809915742029950856058277768325531028700359087113586155230587303175729176492290488838935312803610739311628997158275057475639600693432451822363799849958072183242029790666347379207969072718745445860887183787918056844780859963683383196930858852744703330481377947767593827953028329245952651855559859856249385348362437164212981285244820688130416495936925377890542020958542706826502756977061879914664355892786401639621395036140122825553522206165873609389970829984835445144542742086119912915224922578247063035600315040907434031457116937576666091937329084401264551238441580161913662661894291541935945396359097518643240744309661194488114536572017548571635980416282337594886402092285288921462033843979955624036699291317129585117905476156484489745209577170582342626725991808267305238012179165969248744592121852276433672449418227169545723768159941794471042943393295229528256028758735244092520184574365321897556515844608554857249279864111661751472894094791298825385303600938012964538733914919391478717983937753798487566940322515845335756031894906133225000278026644342620153586363669350907466646107857683178957001250656117490615090164964087252483398876064992772874531368076844672035794204276369460930994332369836392819651072847197659594299670676136821214922577263099732036669554417979129655353094413135876062418929773641425611154579602077262233227334828033353777056631088050164670870568417222891868532518866271339827087661564529441795928154129020927103064918169577718182710432492116741960711162961489461233143772413619430785147075110156871647226598855822767508837410545525187122887583624714169497864513352374900042523157653450731871083689372899466664179921402538383394074487865620725240761138880369478873761720417571979625689311859978598299314392823639669334759477537313608138883425580600869199015511684729730540332482653976266513102545911661091119524167817119742000457403233274223780017142310694211689287848004488940211659694953424871589489751397893147267672756666935437670358960808843133415480421393276273145871356234614549564122755317444020828469185324417363318248125003285183588803679864032729106900689205993976777504177492134613255262077447383133553140357532979557371033282379745274594332488341149154380699311616573518272061996804689265445228054824986618908303184695142319759372588468605631818350651173313868468193883285345282136780548794015058205960187836493312238159272482730180250378978911484995240621563273656356988622613331190522228393153201157834781824121149812319402419945566147755218415968937030374523605391534433957005096342297496342757425949756671651554364484379289188283126271564173400998202930109635955674334284937983280790317625839166205709589096375653009779343494445219555554004194560251420416489007603949067006696507265547797417622862091039905774676887887557797865876916147006296827172188909638920396263776884985555756183715954472324639771157244685840230952956765529620761753350912856745611268398109812924250930702968517942400573786332973570328008401224742693701939374549430930011520333961533893104898812272638858665220223048405709931877526269723034421288225205911709955475558035087850457105943709164321157532548012729009058766807806900964895234517384343682757340475790314744842160417661695344645146833611786627326159303569688330989028865881854088196978240871759283656583949306833916364328582277134227170671933065349646455117914226790886168694987738903191659169192349198157944597132379932482097633998292920577002689330111785175393702921135531943057532555208265143207145724926597166476628242290992374847713493819398651544036119704226971903632150765726885490292153460353742335821435908241295437175513951078886631728781925660441804751200476172454048363210161854803561966769109602726009300324518985556147177881265517153112882049404159961074722336482881279355733944718634348844725339141262768567579158720453952818045494899498083306732407909980806349137260608783542535163638442388370346230202099317712227539897296445021035611765837066178496583553385888634627924550514118609748409105400855403636381317495477378367651142375364361877603017142643918964848576681273882793685010038837726550240956713106243214612322201681221932696123883795394340804732453451747831103411842928885680013555432550351136714699558972288991537906456232379725814294805360147367517524784381461248429230248806481744000588144332756844668568726961051147137562877469894303613693848620679544120869652258797213396942129464438756821301450551912425545294044486290887275790844512828521476160826019302860459999163310614941541591535062664499198792967520928800799678082452434627773618434927097166472368707556133504720589429598552489070259128296959626883709506630785455166048639629804519571731222142571123613323032133060515269643263034040967492498865736868822904276788341950812389550899078739501097263419223033893875512855038628507867959038553160358803830915644380415106645428779267311842042620211276383346455609512915287484985348711856264275445552073953454517508949692259884926230593455932035721093355675106521090753926561836547117885607815577559712288972787513886702035654908091345788951727480406173201413784739743388044257954737526739245493164363596253811540815235797324829622931364956946846657572649518198082571801598958749587581062681171007455069019419047929404620665644965130596291870437767865260731934737817904568765060221015624623396178585736780254915937216820654791174632518466795932501067942901588961890002969666054952233054871812492842222120160355795065114243449217199293252662643598497881832130288765238333734629958214870934288541367243672999417620609935285088651483893416020401749441614176513755515817439147996476518157141986590706082317007319024077765556420754649218727346985760686995934827747058648979431158987011967460278127163276791676860176132983578279257337800000497727320516750093453755608545893792268489377109789046211865928364123908503230850312493716024934269308074176298515698162525561277789070641480456425210945594391159897099086977639514974630217419177286169750695450975101282648928846469558590065041541190688221487192298327088780077154273170464192853583255403546024140819415169598306633090081055814222645984393049474521634977984372859116234051426855811348738427802601182929817833377778795889757246133429413115541791159310547165953959633369294916192043975348650024961633323827430661558343599756892631964640978688145708266022283105363543234329773879613630032492185440542289859415500202275671167335425360233747335564301194449255793420456789077500727435269065507627817783090755817570743501847898924905350775991506007181476050385616415708949082811029688144766655369794322573073964756299226214233046564996705845629773295056842366200707530899416638442834877071242527509213809862793640280606161196070032724816607857206803481092230471039847980479636932596144435815476822147354939029922113929384125378434015904635119481253858352617296634097341477102336183170682713679852771317805961070233925950242262252558080366475517344186429195012259378654414573562300403131514625543350708183673822362009461203385681451043330097572202050405694679635137056167118968356586724481905307587566684848368285758118587425967006029979129779406171054194550504561271232047339284073788080965964423441905829359824508779972576330722507716107576867382949568562784776484297056941592502317722489330880117767498079464495517999635466511619978426494611896373602937385472062721221458708997651759662112600907472217881537386823744348297244911843333708420543243279424318702266989168495275636095569556628044704929129972323380710244911861093219458456985460961399171178322508612030809665014204366576331336748134125265593118348626039635732834143228268706751759437972468017322283819519853933668015771794055491275212390029814934948498083912431899988519937098370114561898726937649905604069576750061254560395895406271577046337977928677198195277353560564628103402126177016721386712912279825961120624197356432022076385025134861359297196307900952000134158544671223969471849161031800348140019106329284419011919729042917912608262096791457513631535816655610256963373417052490177039295087487095142078139275909395684422748526311068632003164605930646328092415578485566846100844795697013812797485690921308627629707517919701364827274871788771787878797442458095970792992675742874710232738741218514679091064708251122070296450708466386434556185083591991244785647760386022844764990085124074915861149316857468753067834519574754350989683977341905369382788620921054521155964758519321163341233219387375844721796427113416229814317811048708991175599474877877270193553566818415587621118169373971640759464812828219320731732195136914618208353968715600757415754432710671228170684937776245120539212887286219892819830301121412467760837155997876566498776743463627198531094565437853850103179276699116530540136504061357257861835781755930689786739108085608182153483058147717775970792093636031723467077753808686104345733246819350312384845543958176933712200195503878046072449710059331243262947300914717317517179998854970793410405967789201369250770697220298049267555976183646446640044790912323774247669902073234705902523141175269362137574305035598485231457634102028923262741803213022835658066394777225001064602673525942592146808990259852703213583156286744483241203755073631800348183533534452390741811504018826345680093680946251122238183251489866906567777838464999967160434775175556950221989522142973528105435292127586382137879812713778869408795200136472882862439302373885128222524095343207229627507863887619527575397186084058590459261891283462534798377302930912978773429995868545901579567773320946297681433992008824455832395999672480234928692702746231846127984345020387172748016064374355693605817553035572542546729012226289452077016587824282070637963828698576492393226263207772442166624939242675552703234498508558148527402957860514309737369745803348106886546895166505245106814613100644790536444333839977424431784978756912162968021480512095029437360507659260499664994932822310162835128741335142155386207176113269419835810843591345618608948500901038657344389324520904905615970376785248534046793226136393727991505555572280157745107708186109373977507819470731163740306033726710171124149329462750319829733328498917480507987411148214254383992913490578692561682865543126538196464302680935770150779935648049072532677979519746634996151711448344688725182640748269940788278476145250197374476051812023805053877671695055319369794508924093960560867315091829532290814675216174505387490984051614902503355934380465237234147323625203535624693205108895802663906616775705034202881430044067246158832642895893224274737895510181029532074179497104536153228512561506655950707884027763103099669174397561085174864947317971494119956334695635831588098275885922516790655991565109833246291999870800235161113174765688063193246484669437542560551851831179113951651695805902377079250632584378737993047991056478227183718552391753413519489736451572356555536363131863757372217162506563670939069230331947858625683040676381906439570115441666127399870905031128058063759342670115765993218829191254002170635843859375751697582738480123414970272955584353764542204327198677808038841432711663090047599809185582500467014593514231189417592804385456937565388345019848283082294997856139302266595167598066575312870000759565886809615053394479811713279073621340104969723620759193620809929058554838722703883261045641918671903119302779182560935619212899188051377283257671792643689665848019136656145084778382364595511892432198963756621257474315395828793730317258597696163946605601270238914291604527507164167870897728678623810299552995187041696844235181072510091309693654574002934942347415296232164066037108769687831772983516715688790015230960196671837177131078821022639394669824352565381413620538794516654415623115985179666469041614205539073914894080453908280035094314971833837780115651998604678276895592131140840871671632959632387115775235312178619438317046092369672067998575306656603316813954146452423219100669095756579645154457886105021996241687400375994720623498319736713055533777158543577043512753572921142826831158456428609915916189567245964943375241929488575544911228337519493264106300254888780285720829027583835216231703171888279787470090734263075428398268414514049910448742474014520827632826001607983156459791426473766387748767069550201681357287754059895003414244634134922634541449502843796166633800215946013959859126316655822464564590766427578959599352072187272747106126997888737174651756347186225563780764407004219265301234285607997064361933942244212203443500688483829240816169361836345145855903635698866365959154650723002992118710783635610872968003378618323029554108797962634057353762684540404649072545263084820336438068255457257081507430381542881061648914563300782803754965675979698164350698509749602899744789829707570681996190872042670399999947071658081191056134638818442135096533161777681117205333370894028457881828671271997385973457405001356188101338341562770764866943901773951111891410747626541109168980586206838319056611846188306570145925669488904828301395990919113851476462647331831823590613372506603110454843010289741337638462294161961404791169438146563029963986726901595281202397063131492420238034878355824654890948080667862629795091349808177057489553500733878532074290671690621938492133062814576733765818912824171373849994451592882878129234957264123573311850533455939312273128271705019629420438756164837434856127494494220805454361889200274585448181020991024667599446399691503982082878791226910037195623974342283597918120751566681176693545634074256093073187406976402587764298226640932031258690829335849286081309284053960672262976053207143303730049710306040983311447730895792097914376108251391068411430868634200133153117350492694491908588768434134617053252816279406935038963159973289529152713299773160945651322986125513605229023074523796407368294308176324565783677624992242921737954505028765220022530607100072464024189513046337630243219701841826761502233234921383719299689030394975906376643207297690846233112273649619958315225495708767165576509720665345834799790172372305376393022961249878128001053019472347918910855123767100752624213632787835203426682085718842671628258712004874543021532648535132545961924112076110900084094024128401515548110537640884985621117669486113866131471059432581097637234252062558851184955922718226690859902349147185020063778831526081307201106431639765844795269637212118432152590610382237431764890586060948710411973973146161364226208302242470498499129268517251344284366730418083808603120685687201510306739825190520653178395623191886622253220663771239802288301981806430362877766827367167468182530968723409298611636537440493587054682908341907885729834983470923443546075639250138634329088464930738830256164050789743638306419160503647145981135519433625198162594636258258819471354852311829573448069549701478520554512518593437805939041437057247803624030389546537441419859019647847061719663489314658711131833951693702562987346425588188043272765038297186384549972246846643504059455119157341611773534658808426096498988726392258447826189813424208797502650612425225609048130204187572246124503645651524609283690580252380156924229107391001237628709169289490274530359683766015726468308925323732103140467720990794387699971397429325695263792661301286182008017899599288098047294951072144861020492135160189626739057515427179762764136330555336101492630138968266425024808982274958047404377280937952183413404706104921231653512512806712658524151870800665859925385213273152401936114816005237187128042268766499516319295985487023286591893266536850352361301274123394352437189885703535246290703175089254631995911938188133756775878542426801980381093146672240469610588953663773169648198754913532983798990698568525227854740474370764753010022051497480397050747676991642310797248547373126047782882398707127032606213268100821178755525655601484097402424981785019455299749009780317225916829561987488798168542821031706703839245398948201095245702230854001506577254214214060527285602318437466730700379427600126163607746877479244974102792881895356687001662271159514378321413720469380710520332011983690249092862665900367522900855617289659389795965992130933834013463975621489245077379209004833787202301172649324711184046115718428324115599538373940042115685813969661470059979070899982093768957788256524138301874564370047464345708796380870796134615156253039437763491600106836589949959830681005821760544981599456321671274278713101412041192506527002198449238185612408711863838888653488434208066457744508795661337968079333770156002369395553910878592910868442012892124316079115428293486701070698021027845354167267542873005690275651065117763067919729044476660383740572316077301999345802839109155972689334222940686115138512391808388776781588969439583295831757593628569536547495592329005453195313983330409886769659179344113198692243110731911074026949366284805487505434956524223728609523720205877176356739172267991253494271448359905517275257515517698716526748240217912004294828393882996686193892516792243845328090533556366407512112856769435487076314648642838595314084838882543645181080397464526618511752492354089885975707252595101569614362710625113342331581966161817986683667539065889935766146183194242745087165441633880445972281442806261157781125109190595963986036317082838803134807319713354231436431710614477087111673213748920018297424061168417954384488005292287101079719296016445312225255490904761155244499455516907345655423203306826613914751190472328610478375398644152887937323373938345118771720515095374844248998284771166826887570337298792754671533958445942719510535973839746257596593974143623100173848872827316249281045576735889835491358602721592895202686219014064740687208853803750400326719266155775797830269701754491633074859312329796365830900186550282559749395664506100415147952049285533907551984091999202362710772777210535655067637055526492508184409493213764064832292876127974141661577119810378417778390233065158893300064663296068455320811650593838875588339660949945535960605576324622724152463019118639483400621743549981607760765939418104539445927519593867481733723394151550514323738684652379157628928860719948372390026236130251799922621817146915990124367615942333973573590662744251395405145168651022554077999008400920042636687507891566169353602652373514015433728145835715760836625611581518917696920977276656479208580103801745022321930678718124676262829226552859262884856624880888114333531107167218646702894681146431869336315547425278039950055975661489936128414807011228682426036920836267582870308524254830950177331706933089879808093576249746970258379936985332886971569161155407778925019764892769891401202178944559784945564288348212562934305989760299895471013876633132467257341231587442978809806445190601401891800010494999454208699851933812174743986568900989019533836897376167983846984620498206553554893623075962810306238075595748588877141043640527833705587646172050180036865122395738330953071669478893119258160506492646993981209028612925772715477518883641005512213974475097806148257494741908085842387208178205189296185364753058844253663489046377270950633916351667676777724618939033899531840270595639096779799212508530919885159305256894626280511135417064952965740732537630249660735003646111704073069660358784361179392364455301586977154662468650021257510953938249445245732865665479630748057344787440231997010128429371238840502163484862373409419009541349020936495092475281861877346195784527382113667733916511544643047825893629717103187259112975076473096224678395710242339044869638185878576244738677331655258217792735288718226661432462368587357141990098658693697457103731405810469966768771102045081150307573026380012097870464724679075087206120074012343106753797346217091200589062327758440278827234095451607352255265841212086007632215152025588470768008759023518960553623269467936005984287505019897861369533888608604017053837834944592432135750716219384304331284527718177362601291713933377407096211028791518768576752738612511762088818405829120784753418095920011828326144099561484812666771392381002846819804167106818838433894186505155931313562277395462467713190411697245829928119061649802550827401234479854863223835162889087027939343531221340820621589423698367075090217187259474381577863874109756332571174774383098479468864109149578638443190012604933351910789583939394347158470532632036992174502867409526392614189012663098214310970943468117703196129390580666203086789043279178542259542266401690792656083938425635024824509678988433829139854355033864041669160975031344010334795617955438441234020433781321105504389896967509435653396230216160188334713546991171637874819364980193605053127810046915003042455508690553703891062113162837156157468042047959054291506272578315412821400426392389672388667767876050522002656043022585353904192709325336749082957853199028779001574287379498738265016742983137358947591152256993892539833237847091394756012704030555346889596185263727569496047949365903563367315114287475927680621440570466049015055667948035471753538656653172149721865930716791804963503740260858182543728755318779735207896852420409241588721751957170454067580358900160872471720749550889630608591509458437626980459651064007915442030672490555955904723235968112337021475750785879788701508454387190408619507102397961581504962253582015544326918756411730045545818953285908234446645103570316629759856311960375801619743759485894846006492021069187530335688291661845801983616873040421480277230804481043670795608165923874213148028962123597787403512771106057502467614943664957034861637527396233666417951445357351077134028676455909094362332467907124081860814331722793821090987688700559803873873755802604801380974253221630567724153495867134818413065792018424571518468204695505895211537751428554978174822738572778340492968255691141018981432013320684476305135015814192206089049457118330197914282732793734671788866924328690770567715550894903670621295604229729433101375059422562875932444442173044146092772727040580773860222673332068863948401167856482539096769754084886600156854131880984436252647442740255135547297983565676066944860038621743271117890853343660143225584642955848529442804852410124981693752846656860775585139426832078154039566915171326461391819532591678694004335623018226200251458942857007451503918220989332288798671548240026566526356934580045617504620219644627145426218619042303923954747065003706447481520353635231648199311864285315975776680772688023962114626259060003310295542969116303239855366106861579601338609515985028979092359386989989855171526824642518945321107867928097165514343396884619085712849103978812039992553300350984540270140527732079436009913761447070219295739390840855937640626526606044318765137084464818898170065917214651723900656296882594662200916058511488016249247714623856646346639693803023187011530105985723204651492189101854734481987244968093261836106212688113450253476840537313118080139708657348299517594151164871670372033719222439677939373082138620327103003643162644220816191191319315362366064316304803319773114443012105122968596931100052897016135263742016788978573130800324350637051306018629509235587254916576588380398103665736483148343270445713609991257037436727919213420246195888183155148025385278815093570960065568031206035832638078689350132805195071587007582925116230646157753078951158512843202074874411944575480280958259739696213139170783789502500200980217132182062404257863003178432683284751517032547161109055226612119199854071907250092473510911335826953477980136922685941617836334659431714556053037104166123444382894367564863500203256511026763647071573786470853519225670368686103887316349737646972963768407690420028166207863543859844148441237176313300922622435673214536507323340574063146185396524374654405508038113788051949548341478581999262377616103043465278317049246667725733747906680658160087539377523676243839939297864073571772855841335436261845150509482337714725526591898542290928798575419539796599142885436329706639209459166478304614474707498967887143092870834800344247094415214235977713391967305121599569264171717378204445831583133065538689036902731208192736930820020823978551560417296690441486773235938464818630898025420289302458383859789895467809036224675292962576484233689302460515885756986630082849925861292916456112195753868988356415478451505102137798918531981978977078191391181980209498896188358378622374189800666362688929974829833412606665006229681488259529013797392646380440805420245898191672797897952335982948768292566759356156095897683497297776382554308818140231773822414724295685118087113404194112822004429356366675243018069579430388998868802777792839954066371537229659385810173189148363461285365663923827507210584620290875440115699386396170702475880606109527147732187299930449580234647838228549081648199692141440368861596567496776655900106457941685315821726350226529311941462242733982628690451174940056948277254668978966258032988605934907115163080769131108401439360921465271038819118544485779357099872868090716550158314378228686221003352256041801993859544108844266830373490732618850263932444654761914058408383960556390856369657963096229694422521927419376546154901957095901584225107535895379541771984687191907452711199021996528951930312471332911134719237987443296194932738130982017459221029981579315317349426553184467078724758204751563716948490006918223171199224263489907332815111737921944191910540609961673815040767461158327947446961391592492181710132728995861564732734654011442064244512754812866219493714383839757484549695542561405331786251012592474687269021466579902504873489938671808692152283426474730300133540908266482979419412909241973032873142139939019698505086664034746531852061675287956971228024805281951611256352501829017933706268829206946672657112444405884723168611922971586231419887910999362511412413546870047854681494259179208339687608900435418333189354461193077365704438868351594924473442633026445939381575245457439110503133281193161260454606509664800014000283315955857381097901218556567990432976520654436849523519239474484025355707940825439964515873128992621100652075051541178883714435563865674408071501833143719856399101394746663247624148664357056395602833454711542952811812067589930875829548345607578951372626694364420139867598476705879158469296395140668638789456937549519952151495787012019374012645453882715271622312796769939875389604853560312476810888782630163923723533716129078872207022916615916930835226173605731955775746102034973372833283785897172664817638417792720990163844942463300491551990451246221694361592378544091330455146445086721846241441790870721667104235550348603685014201404681983894149250422507064129457903496313479348073602544700333354771335700684507842678571822689214717344632104352595551490369349554208513880344804429419312516859175531320850467544936919574626901708655187668724800402789235114824306983218339687311799274578792274211098516905405921844866732233697008265201884042363348835108353785610369966885440545034407685586321878914110011894214775228909164383989718145754975852890422094514851751909022786718755497891017582225330156962850238314976295442653608260317182241535552128446375284367026373010237324884692855590708075270525182089483872918654659554826489965744254051135524510777703630419114545961761569497814959443706517884339832432030555601011750744337562791401342327873639557730333053831328389208989215901730518192636456620797500520916381813519252175329956178273695948500895083649772848645401065430324160149523821655937561960142277370566707992628901949070664295002801267737342673417715204357332060319861465675967412508354525948442173487801767181944711282815105276151269152160460654440851483417701142656301402485597417926249400359904563360861166649223364846753595913012199954590782111264315290047313288036097337267053940603100438479537944597683680056855902235769865580878008235392407082529739491140714643052975778467171984920639646167452511253140359285156092008710768103435523464399423153776459133783443861549497963646111572291522724127023986479635077859947829944522040420705202974743025985351692694003122613638138352585468389446414264074938787337785620123163451134451443227368132668305833606335752504765421509698513543777867470121270452345904158286335358407841898948910246687187347648054564041932472069591289045591394123227728379067055295428899005287306191370257550473687970543884665453437352360406508802887171570979833285896882595622093093674803759271357913184852032716095794775763395558570804086797312427790565771215579342058029398476718654582988079113889663892742845814575136140520408882999940044557759383590954274027094561550152709368188387729779037841868247083500921984455301964037583716074895922811623745597984942752518298614716897665894200568123935630143889488952073084599833522774578677561364520735032213334138497743716992291867208853523177941349241982982494996565244205512361286799349821584225507101887230056144911505477965156114154709656279699971876020704458624574142394249893929793774934761128738060286615106248663329752611795101331638054525580229462460911629411971098424791447847210989474551259825917610488330457315834766315178013101978986949283394117768385982092444883783006824901025765527348315099733571200953494379847003250346946469828352420090614323898027111040721346759162841093160419022697004802601902342220138463752932255275223107478382148379776116963952757385068238980507293808694544107238627298065593317990467155510875916439842362646941253419877209652606861685705006326934483790999444339439411398551689202885881508912524324369849514424895291248385299653471191203662669204007034551572882071810360857761591013130850905335297140377119469200984086123287427497887363485514068100987439762594109982125921537281944506470114288944532691752884597031872587323168484236294183619561140196145777595551676930221347774125363883356067141294923097729128232627467149431367869686219636773777892228819201417538205683781435046878226089598065149233545942486924891046654266480447947741128459425141834786659661384150484182974298004244304635701443044599607587791616841983591149776812729034656745466495152199618862217756082774625558286452326992413744775275257254352305033527175621607963148706136235850803746220342667405561251078963535527007140669550580928317689832603322358823831348641317456913767910091611881554705493143619696185015123336432141348108934645548159856752270685542170570214390182841776381249493418226491778632082652401347514583521064563266317065797463535061512253419299192770683047122813765612988129789083265779853582203830125929304331271158460324380114768199305835932065515573107264876373633154139798461761223059649766928112118370421048438436613891713712865288477130229117334960219161531366439183567654275270171506227612313811888462260126765571708610879763332943200824406548294152733306035665389536857230209094283241714242018198744367346442576323109785007493576935449786599902642517017491781179087842404938360254480752493041929848473223239803625192355028276513470089871852354973838601035549890861701558809593957412600529793765145820358672206220036672688377880333900066741257633012862427158205172256558850324540517649077111138653692378821491267674744461199446548964369864296862705987865033978375340308452677282833094191459815289042580420522771435297027129505366944411873062762855930029396775984135548813452359497677069378932512243857075038647595005053585474203462265031297357067209190766489860169817580756862375255609952612862754005354043164745461571725891300122627481910836672488780927847917427781087641718483338294674451865936670459523188076794839116376446292564158387049257488522230903225900297906554224108172491577753341058641540482766411190743066494743560682860004355096500114350429846740515259524721532451777437812187507725758689858926643848468060825561576927898867246876372805541095750730726322415480250994415257755344239577823235617797543451679282278817208825658265636604459521977649012116187850166740125584912671966977092057585060440046445384602609450281592102998046633498642798939591624702157278367790908245016155226358189475164752085362892719674609373641456362157361009612226049281073822993057433683686297585234171010397871490393498300709042363601711711032957042510542136263079938013665952675376154136665405678367602730322236682655945720987292515090290897248391340694745357375194814793145469126221007931596311139464059076897330440389163893987550764823997588362895597753827563100626942512459776446863374834937775242458125121487232248665507982650842344195503631861952171175926898877039470135831042144293860283023062535832414303133987721755389800495427455969589806090901733951163390448851732057800615984484136006849127924572853378377743695467243914488122399550426545200383907547271248662574679284430065296572516943487167129923530804960673751414328828318143113597295001858818351807091176074999052407608345008961736313601711087222164374996777134518620662724795906557522348660238474667609392784789763666726894500514217836488656980592401622282643053328937252606974040227142697289578664145600895689060069136524360719444283627119739646748948577095804082832660354305101378276983419656690093168103458052471937837566862832139918747085375163671599894458153802415920760640103750513111754359779412156123380735018473903750965936202080553856362032792583789308537223150531256096305670058937568143721825439878204944920795377188277065905784287475554757334991276830557530753222556889662210847296343040358506918868202402025283384919095430681173629751558668423920338318886620715831659518429074583402645147290659155462551908174707563082596907157966448503103198827465926871138380725165080722062120910136157551129234074910871884477016785416508910540110133283607105203260616080244476519732929645782810865249798359458468110713652181029487393467533044198732966314951588418079085615182597720403517081972986666754725218458876262052574986260412041698879811730644450867440847078876642404279775972866582751070250927554907770371433189495345655353043957697791690139380515153621539663785866805078593637110572437651739737656941986871129535711632957090591829351825532173559607996481482503196168957292388650391368529358823205573391553243693710354876669928974854380523850288797688705924931343961625502406407710564614977895355501362854893601999026768412255184968821784905265712444742818879625554936418249518625875303439867914580909365172443571421623875819055631005958109257748682769236355868648864499439679484471292039363599279083121347132859895704201987664673791490153503511213601501774025553917333896056620602907195416084373943162984758780705441256134133815379212342301612812855368373886612673118772810128996983419162232264788661110737488228569563644118129373785083603363144924619886088624677342378899386666598277800743978281663177234845396870970169274375179320628694596014466000984488825575323711158864537892728185566365209670452643127808016046905455826218685904038641124425708912217527740032425260835939857867344929453958861120216366985798161983203931494091587393566945121795954933654900253650988098535357896984800760524461030296508360093861390649288731125156988077549606627675670185778040618705733070650233470028167337761654829434562023410030609625258122495554711659277285267491014093591587211524600777345764277943501006942373278694136189296588381928749569623043396765342337355060240498488897357256479930075832053871496217452778006743053616271068724877895714281262724853484676199260284808443234697048649981982787074360304863342435913858660938958844138472532088992513953564764215757950172626848867827481552932984395073534972352532247307612560162435395010722197372510016122696975489739755454527008902416256909831679141358563238101756576349485641581026110264171884535641648806794467537483726124068239647665096334767589593020507478284699655834925530866448166594053938959369856054221652605236915002547093321048970014666158135483344304173318659326093552069233025969593217486540845229823146583191040900542601096309004645316228280660975551470875371494093806347531586231118662578110640022423228130834542782211805268511263923631656926622474330799530993399791479374679033961400587115312903271308221820138005506189790896234065315834788493408491143247429586899614661439584156534982373242062729671841760867239542882982660637516958798136421563396665033703485825442146513908154374154484717004383758781562732581645135687201034678287901570220029005246299925486142971966501877457203333060391073370711841136435895212449555967205060378285324998492667535860315870505808340646061357805360703668936080625968343063920993549428033980809741209545757944552984314986849671738980280392269329965978540337223753539663609414583933406049326755195720560562835732784612333536776039802105669222860639772311138723918289326170984676573343550713422967479959795298384290146446102383606918581888266012399608842528374029387505441133325375567563252030303855705417469674097676583722659273259581671769738607278898549301809149120173931107072712231354102152163731972834246473192308350165434757231716350266847630620349988774371611275898913893561280199095922557834353193832519052877474030969102512469127065763288508805339173331603644857449209987725894537689050657258761498776277665902783383801475778692794520240222607768570537002132782269070299705262037879988523741795235572660127840049125657095687528665045543206044452320117006630131473882497798375214092954507985857501024950473883463718241331572817147754116267512214391370575935111249128868940950600114449696566272174845417025520207895816308706370199980519970267946469484865904909557088053808589626683427793158990686103758341469999095612434454420993269259205551627356789846361892268674298509102343025305260627438552793655555422225478593767554946575566339949641954787051838515447218138125369441664829442058391173514688489990600229820343499866758636624309469860689283259377794013146342655548158553624752834886118287501791548165347903585193268678649221433962938071581851045240851736223400236276727318559266748176904016043380124176799594212179241134919708212909214259900121494988523804627440941185480716535237142504635427015515863148086390638191145306421961423525802010148428532697816094343993662144581483095462870036782488173840509030402626602849445930648331097938813918867288561155632238262999389347347975632475057728380687681544519543852894735360940609106115117894178840884777076087100262138290254427318791285344446107021623016139450060390819654172712535498618209472241330949941339358057482554043272523061151320821910549148025097162038055150902395169451977413372124113255584199435296898305526819084994091902281517431816953095738731469142974202481488297276681947694781333578896716717373231942559028528070008865257208068457371607948371290190106481137235640400572555492411951554938062247293177552153701120354115831988511956469761917876664550597152493313507107576907316233201014786403888679348969192395126029505894206184214564419298641446573756380104828904233286123551297134998344297938084892526267888734718463893115572181356310715438305412425622721711115426430881404837780452001275198608616625017570572724991164702780571383413574586036550411620128727142600960907344544146896264111779099539390762307479862683167182601192194193322742217395237600419785678308309067156558914739133557858195253681516638618262412711833132071977215558758462517841832909285519161263627388699239362101964382904165240670841000408730436706811825724041551513867421178190488299531875750277110672154959970398418247686203995464975416840173828850896682766105955426015607978226772575020003431083394521258044507549226899640006753075684453916568833836505862316594739336091314592082538251194826339885521941236149223379148482478173034609689885220250720834914830474198901746584886471990398593723307768721238840834992759127123279050978306131936214410198270480923780247963309534243942288342576223419349461414384680116667532027368613324529111996905485621120205707065879378362887419492777590590508628916564514560906772118387613001360122564710241217452976186124628255976617421482662114842468005534823694190773958072012009641152795340477544111707227923990048532308888764980358070872056871587993717077062052208410414509520121666443173193195836534061015487724921621498473921995862275333092775561433275886305256549769047202115766069094793992581526911749004656543156680406905930950116269971651990570757481829586619652887983315045411453775757047606012351553829600082032337260381361744649069517232391195229221282720056635857185174743593295807866674765866848006875144920124727040372076123930135145418253155691539659171971325589927173462870167828498623090835487529459738258737525560236162667888853557979521859191913571850143357144246836884803527025143293011205991618582130356896458928060617793151663139812091655265738841908079251138889124433569412236774581328060514455265015310599023881753385930271092705964666283983750179250519709102973934350309539066823254704666916534648344240971535586006253523365652430006603530133673188993488162957018349449417565762727034332424837661280826996215625253458673216740419144912154465740855849005668967150244638766872348065165437787238629308435067549322673927558630446802259292145006185190542927455245570706188886645590830177497390463355972991652289565406127320558975413521980732094922283236580488603882567994409098663212224029444961178615424692902983683363126256900794903055364648479833046994426094663623546637288416718251535152055949447525071881209379613587217992672933186859270972938800230837191208687305885291201672113863017320991467155770836937394718636761416040566869492033221910121883709897650253350598479643324848990434184353570706959466106005618161175156902130902615031324893299399570566042608823922795434382093671488583854409492037841906587956125628114924097413123098294887027990101977261008084803628700120142688189782933946937715313857555025281440694102368022159595047011433996079193956933362591482032071459316690343875691140426629627717404815948909284013865134418318352336241760423413397200513452478283851210676596704209015372103628714586265439073193670103095578360559538809540775490570390034465073775950578957999532676405793106957859561494912702699507306535357913511443395074284814213882669814004944458310909599307796256509062791664781207515800853104594874452038795228351964315526162169562426255443013024992088209482757243868680432078731797841033699609057698308104510450950635720872742231228401118945457762911335048412996423095875229839179567992445733471762414959380539313895471806826364576725462345129368633146157922927740191510512569973880355534351219874427421671078932230569653105039163786753927081900042714122218046213278812795486772224189064999673005657116347627104490667785229461986267438296262971157494485987504643799969324075067471161066327462323807529193011807318517950111661542871273829426447333889229037589104512811925939758478005831806066150151071486913150561256021047458741781363829669223952843988506964280449049239792410032332358770300929581418286692761159427802803719613583924910130228785173456624005837786611185306871266527090480622100308231284677041892149272080569611588081606429362572133865650285418481426475030767645198736733554853943807739370095344492365396222975424084999846846353134318086153119347293276122017554164388651051631526942171905364192890737428692800658718312513792942092975504475608837904471915038124848840920954582882763490863914638927785349055351429823653882182040017646771101302899254093277162767138216946244639484265649472307430596403636043479907070665376424651278185622099172945730660968784702499901757216554745569548170800722670627057498268079020997227092586424179307637124347564720586915574784140140214738556702148151709103845317155560478817688592228564394167579704711620158130544083441463297026595570740301465860197194404713030173018696294404106825606864602148475788642350218634187926542148395756752329855175071534936996403647557701168509999267338122448347991482793671320064706512990463376082298235469700947963237378737994962569115463620637228322591462282790629743084538404102145992538652915199921908359520293379544798488474470771476092549733131254068553554143947861911599476596471462746844221322824900215589388193068187362903638358610135251702204898246250591432416672238141041591027621379983411242710100007715547386022591203000366013231227615404834466323616670941654664631287440251389973742471730913563060355381948036282584136060334629825905325116126563034303155849200366383996746397103514435539988789100653688824552320904065589143689508086523164936409329527034543463151613858423656439342428432437032576956593693458492532786924811920039916958278882960413915695353028907034337536910796016852899625475402863446398167096310019860580833489947689944700612204438913669258579497831493423224333452552502145046052515357268890973480806579495938928252722250926527242279954616050343003501510019546067545970973117240501189863500321132552068250191094684544768297131567713910914937922212847024789297231962473023683525814871749278136944798613646538964000677681760103744855647369925705317927303549205966858925311328095057768317646557193729265221555373416113584960747103554943287902742240176294850478273285391254730796791964835846005518581561240973944904651891070075512747472603955413404388204367532728168021514362972099287284477001675583057225664644476376469593606359871438917657897709539481286632671974068565345946874873636016581948395201236732998748001405422800345658057889272481170883096554379858756422611366794927168403607829915633439541793621752417062468745444937940858347751738542501176920393941052241693364825931783009889500710791332043079369917533110224106277546029585785734568206058403212175927031763950777281208433648219345410277316484489977411571559425783727668557072694241452200338930136185264040689921325005143860002688687716269481214174584844908717305668667644271019562971623509175742480692014540338682147907157231149076794514465295522882791305364088403076178926584897141820962980288920768134109339290121534532366968306989002723171520838816247043382122250217558704038484152959605507560593152051820149476116870802482385098523871413132119355325892128238311465811611378790818371542859676977776764991073770639932431070437467035655495262407688958333079868759811327211382583699521298654019913541115064746133605227745882400505467114004547109898907876703876866614507221494549570395216965503742491152479001447817186046010066202792480460739334473691439963380890463144147865466860824097512465173987411546407435847160715033873096900590685874681680566135399673948351193989087172116818648601226952480875079448116476702670991761355978792104576411570388825086108040850702442370003707951087602287569407839861700454749344282008050070580793925625709698734291471944822095831452744025590669659642940172546206078465123188514375377562912251431449331720361059360528209571463833004662388119375822349473998760976799827651986976408924072107900585690499992252439984263579398651413742889075251804559442849230820762491309626515134458749133786584056455031088168045640412998040890767127887235598896857755109191056136842975970173510186451622962016405373044918595535590384934544572712042321511407433174091982260870878580396431484492798969887692267831154307378777136235625327857411076714734540541527369348978469752901906899943187646917769086921611770284606332010347391650761441885106773452672352841163169074983029269862139346655176422648292508352900867817330630065054418652838730919728310139314264390003439134455465835311266645120834991500651173159673895212123542304354272400792531199425570033449345941714185732536784783656591038091526946039384388954877996290659829808409489297831952980537788287148041622525551414083612584052644994522287179584546436483199019424609265807777663105216653849050610452282313572580250847786210672351009006744292048263441331621802953682164577353136950227773605331383627310957300124700499139871093473714443467791746298219643391618897719054243345161931883232358086135715818815930004779384891873981385305774682148817441234124678805661221296840198422563802267028800424144059159080403783999482083367484144669848126863948562546109524566571257424905220823845048407334229317960526233531950854065759343595240510454839098017151017333648912830804186249974431397902558713235123508249727423617533865895156465360498453166401807829301956357944926443887557171424099114409345001790815609819112668239547239997866520531593985892784666135734773415643891769360753113019886623310381158851553120371997194685360061795843546321484810842687091762574085792356221853965094887267110759348940569976400340681857679075409942438662256751492697225323759733839585135141420005097186132172170732260997795986311828913870421818494180540118044619247922582613685977434728667831875513290420100722316583712815499565488839192768852560190276420231404683801240626169099139732786980754173269500612871947981259253786064345827874142056670043850726861407930410763283097919082259563908490163366455357750492079805769817330075108357758596596843469798054153149605983276297746083423038631564132851289545373557847496969455787517309156172793346439903811517198428932924233630885037856561746319491783624412960689359538730467625874469555190733073718689181511519401832603073155325654489662139492311801821226959089336530684576716499999536277624603807192909060142421370437407960493938360895860871974172496283610794533155021863186416997077607416703090206133937188203744673456013353156885008886877510799440288541262626046238304152672010863306940121430551766729101330375999001766685321979850256323130384583928050213552483323227257550730098340315622098314404688131454856237501463927583639089613158898609487992105267389539739983947561752836687008406666555726168595375868546535457830327632400293519011089685538676043025759675408573340099618434965416341592348856955543157681363257569827759318190565716267388382388015823901943005290203536545603070709473587587832676683923594157562006317069192224076694251735384261393408065974703949045991557947835937644461908135806600535520248987270089610187668490172970386109343982615661123329056554755585262315258816594678893474682746324726925442068133469563805883264343098789239039431590485279064087250674111956088434410091245306551911140911668084725464345909566378666857947323643965457195558039789949469004244158807834269034882068795294232381514737047488431175261006594109971089425418738650783838957788575881006830200048153635164082959109358814413101546579835287682893974426518169313440508716056403990199706963575896749554625990513524520227935857566390474829846035346106510330041269465934174261250148337310071757557329928116473014080043593340991052981160435387760786987057250254333203714549776768555072251986749523514818924418960843083358871028964929265194747861766153819641081848060119322340093431940215307416588950870600306661320706667808414337649752106633423311247404417320681095740183092367849690086131341638870722129715847926164537963174182410224129028348431091693191536535135769245133750076037307394748574870564587104235803369583695287490973810598676097020308133069654833816653785839027492327433394946114798727475183938982069350277795649854748351424089768607959741351972650868784030654346227251630313752665964193962207877944421950696750577697015559216376901624398072666793018650520227837823772991341216736909449211385478190718712834440653632470683711224929718215384345975514644797204182799873677353931433050084034613682736613722969678083710728103602469756365545841731560560347144855632031927482821997145961379654726938554951751790423076428025008379649268357319579616699981990470363812646814589310181067045885563371855437832391483312241697943436646587002951094234492930344172036237838299870313364168999648022580073845723792304411883084761924211525324764802164075643145072971714198078746887907488854989301312561346865781918979047948011645896724658673469852873181075004302568330171018709166576520545101075067661260467228847638837614302796642346640498442720551364111559746102941308961945442170971528335453373259346531275765896082865623643135312280903472933023777616145746354435219343512915819585246069856840494472432524606478206759950680249145947256907279342463817092008564326084637774770534582870553896114384665722556217913119277178132772436827999077580631293672292902930208454478574886828231957268512971032337678882338600705486454413414502922806717098370529459691505469959688539039345531194815044711881363827937510268356850625620525555744911773726939354885247074239281869993868982917325025387198831789993114327542283477438035671117851914379966594193404677650222259797881435666719841079848750375167773003986311399560753164854169038312111606942619856939368935343842033176356939245110293087164418653381671829745466507298521020888528001878404638463707435453036820414368877565086689794944307922126495855045339023446672286600203168428344719339656736451819717394371343928272529246826062010319127381573634375270159265130304504061792427326426223613990957126359087672918952784469786078827853294811997576194174286682098365004967415764672524746551896624773331270705168942705500149475922721161492303663503203384599328222015596979620712000059144226023566513046940076115659426075765674575350666089760779768817839209032766494658474818770854624682921816898999935841038822164075707938081152871041772358787045062128374622394526903594396859895519788751114067790619848625118029943381303143050998650114846157614630514396199872468505204047574589817651504473054782087587704723684477252161693734801732036307556757217529498065067535890772262943799955475111120194735230555621456626693656605021795198603705029466378687279691213417067867032180550879458321648046525532949314990353586502504086661814651692848652517641777601081074830315367498840066045153498227457277085377731683441290526218331035940361328096553720464483953645534696114898286278708248148049552971236622833888108015808667103671600707991100055090836211406736210339612963211425240406594947182012562566087907810877191256557552201098375680723403457886031606570556360681682775734537372378048952465614320854210578641849555065721563122867621396803914668099201259034257089215528208032568616674152394860405532027186639632796147790663123947856718053638873538570387990705207525764934983950903305370352335544997762103309490379025146240860469399234971675677426215126592798703306069508892405022292342964323363205477876161525855448571261359190301975699777217293134922333963872470961318135154238966187219656451116631712823873510877279479182136953254332665937009961610042824909285620251951905421585003155707018987828870896857185660575078899671560101975279158519929451688049938937409932889870280572319405914230395322371985005097594117320935176299112291250501930678866799418411800053709011957112246666730675005470281848204098882490028921404108910065947342693003041551241795719933836328241109750167834259977949073986800036281864810593137983874778369692553068830496171177292409906141025512754534388088321317745031853754238359396842172458703281378031559352702749497919112942455063186252789018228191541414286219402269260404737389693858911531046535263241996806657949079087024025780727263906614578524743104008036792582687388851282705953725684574410955476754848090711453590040367027517116953284629279088859601680598383853836528981832999210626034472045961518868332728904044115210685023914974801088188444904310844472690558437631999487315704486924084933940872788472003299449891579878342699690732436449057636247290568163850592655844533934639734014391537923357657326072787363260895530830818857318975333886020862324932171572289712050824003813081397595054894848333839702524003699286830791690811266267143983830595853804401174438742235189070126608216160106412133990000007651311086906920233126387081417818749781076257983611837265212210503216042898351629735749592107668836904980594195369079181278013772590740097781630757153173059506431442668333743173085036491493809474358874165906177438446335670408515075216066863925548635615855930529621938763501141535165501695453004206044935239315288569194291853312963847249347254482327666148152113073541325190019135840558359005948405792549652279248154508405411684616353649667952826641849764315181106515121186246397499464417338074373211026257590978264090630798076207771200533511211591966014328438267091371417636489485256062161298981471635456845083893434037598668863811821078444972103910223384318312207132035106867812936737542330216213801604441560172002990627529234382283419865364996841052302209793285687965514840452740678427728392488264206488292244103373923319303856402838704350304966073896390067568233506278294538216922681413362404129100407742481563191224434428393843684327106517180607833409341601926734884468648072779950576423105475301778189441743017977310886179833775447547056284294555645406843822244388566351829802959161113312013650552561854589486993482689336992144406979453092149294853180447319500043928235604194854310514754924418874968803507586279591556541862973286537391428348399922499022033635034889471264631322496226871363305639173328359188659541246193170731606794368350988068064507000566086812616883301691316469796890311894287759870231870744100625510102444735437758569123322443354266816583460601034013179389434778362227110547979978893266101901965704259244240270565952832703726296795110172328824655406989042634890777775795831081311014049487187650603431485314636832265448721730248354047287707655914702813102929676777807527510988338803659092962039720093127772499339079062207080122482256214013136506204644297838802209880419683292170760558595550749815913179124933627582388660150431713163199295489538085570280917825065639527561794542284776256607477851117447537700550744141492329599646825847514738169598604641835213846266322413880919239381720686699205548501310814998192749234600993406506665637167544816501067693351676544977522800674874799135723915244188200535518384393604509882857155706135222727088951414641873393839167367725719429094006552005812333087454352941197065452170275874112351201054319989193583460311705914823048636618294479579403809423806271977533954731554514522831199097934226744319118969874089294052389886686418800756189865546907027892114451087270025858994024342691649367899406728062581170627639120935661265794225601057037792833474245294871063063224983914721615891788662796177862621521724183343411946709100915028312599717006402239627741232009584433622197005041339104785204924304423997309983685738349962104005683840984226713382976085862949252306098763192186327490587046921620551689514919054573314720062592073999390739643261796386955495261216149259197948575887622068483238323031792879068435429352561478427008479946130620241064566799133761235026937284788753675746500329338582612532476112102590511063293415962678427714138787806051314913626664122226358000114718096645000078561584748286884038429591919424707320902702914853840721055910588906313634702568967908064670416111223338619390306957471769749705440797531292515032445687123572717279785514885891986779853443280092565559988639728860753160829749234361886210062461349361613709822065475693271991019215311433804078751757734043908356968111453746943845718390499240956764662050803422594026046653194111609482414982153281242258564600354317522980103098714389994258395677893660024417345565273363517574720526679321507967687697797040192925351271439805653790905458367420842892971915582167146473306198708403325341669547328450271492108542633411566902193791696039708143876634900744730678678325513008004486244586792698940636838339891438607177036024883384909662562644572247679976917541104790093647540856176311209461732138509231925264684547520331480769886166347942948679508966592234902105524635939820644594656353539836094407365998322319473718334730978528484449154508560821752912100217722345323009842655515118826696263157807078319000654485542599434927036768910119770464163000144311577478080437964181504593988481868769641687924472400656032548632953886229467100754624844481474021446490753506169496033373993296693360028438800277943983981318708398059580448865435123028498155313912727387423375012622632818559688738166226040076159225089330019788228614340647341827384789398265188020850856074796397473495202545245342141948490219853606149282127519952287464215256758307860762959343780291361536222777536952885674202067792896842581632106589265551586807694753896998041457068515457812048249162066073161516886599318456843548180563296608608156595940880382167790370313837543838911408262723048934306940999479406627237830621277507795044525578505681693385534133504348483425649556719345368147527316687905070893339491425907177605484617654367380082244592792524275658477998655897355859377502870170654776122406734585436570436631808560523678600069328950106523792952117810004906465856617266196980232680489834661876958810641975917575987630274908362773298566810035984384972839229516006314370416018915939112184075858291733134031283412957603545845351100465369465170807982994248533984576574881527152910435562086879801919378844871228557229529413658223503116653643153262528151690185120436532336649835806739000850313005698572931332025982265791537198726756002836933536258197061169236055662318146549760350204640438298795893546627338861485503754295116941925100389202588336889685406107560007957916746659154244186016532717722515853429196618089836516449352343959256209455636771600911427573527253074838604811724975063489613572080167704903204295639166263981581062974907436813867064476808358704357681869258660157415555507904810302011947459239011047653050921932096522857050424064326190961430043283927812263913407937923922959443351773859249163736739313007392475810046921120900512644165968949045255435636279767111465213411665760427465445150909571318413582029459204110952438359869089236327536137300715495950271370088154277696391524366496350955544376583040847206394822189847123963937969653943384457321771469307241257478045946863937435968423593566232773220637922443839761594968850839234248740382229447976268706883409763449450911519760440075149945502563309144602306402258541254687684954194364621775427543256927357830759236077135741012489527262469798460647645812239605953261767081997674324077179827810209831599943035591171110966077208212394154939912889198638069090756185557879328191001288076891529723659107071546919593571561698156481926931600969454709534908266599253208731982036417537817957999399372737029196177961270253730454150117994996617498500699442462364369470038293428808952599822778164673321382192537755651843588352294865722983514029943077134543962199526157857723318813162078365324421343890677689875356122698396234751894101988089425184830246841871989996800749773679237068678247587112644722064360132973138727847254902716920167664539690228820073507311837353689917434159006305229105323773918113620156100811756100841856311260566782765373512317480861423396965370688743958529339968847470248792836259295968402707539233792075781177754919297365144950907559083034050529372316314477898770958173348320792694258149233928302745837561031126107808282867669745634505410819625675354111541543133507151210640451979907773841782643098853326412836562491606513233657441446508411561167974972769631192176043184350775080900778141849835241235460267362409946429654556658261817887657988045805422910982923084412904707739556631648554506740418287155083164932450176454469810010936838094189208245150187373842456966882776233252377797103365768054968781136625466253383522299824114044273576171937839583105275882463927065238118818627506171080321229247221440621133067840627664941715551150219904455811751665880823555133061798813818264337896134147084616805949589300562742410574773337413831862162589378527489094215905062949213735759733784856883055820261111904133373293471344047041701811245114165100659049970031206690576120360305334254074995140231381754729952624681460209127766266011479816931887786956702185918642301234088372764577546369236676326630472812088658562639167043135086433753659518800398821292231567757633246142718082480613375158816602672594166783575474380483709993477680112568213001896321690551563614258447602623990433330974483968680955093475492232903223414807277861856931042750696881233566098608485404753249881138425837849678720304326502207497600857719530848099332615150600654494115023857295671831822980607042785771586389686265647659371830338907304013049370324586902571226281526625601457755231653566530131053883809023841359475712115706038975097068156953395917745757834997350459630538056144594361915905784014205093189495335313692047695353196160892013920369149236964313892646145466670117979749084633437093660595941945925301587834593033257574079279152122865739225040520561351661907838257081274155798470996425291167883941847843928614002839312779254705502224575340325230925332420381087642355452816250147193365960824169131765804167683458053386800137906343808868528636000742996062573164891676043662872060113818593602434602904788031941981742929321703554056463370486791681407646772728591273039820041707223666659778974384801141406037546647751289704274833319052091441550342258152378449024325012598899980996304224294319560154025678183422399092626667125070115245343068821583655898103779315364554765192282370954522758184403124973928492552766093290455758315443253616309329432195536000442612829298433869635806605301153158075808129785573341291364179001891369556606101465362305173409342635973330474428620888534090054320889495798264477836608056624240650967936910069331238536838435875353290704105495178656278115835139843592846821037265028097055501652740556087327440266610580663095030683503432627990476995688841628003592861261384431578224555361172797207970303940331843498265605103634086314021252061254445148007790263172757865243014550925193458251272817157277163841436866317780388938245293645791218769906939320281806687356235835537043342419267499919105285272710000880857015797874256416417535386524212937875957867762743184367611371713684514604213035111992135788598412325003515889406627754055534867696767419683987991124684283944822421736123623485464409459112660195361870783057663207141407603495833233192956913520290044137489855562265259604317060322259933116577212950925838552695877709290700653205341127803868418142670103944098817596218826135791577827260254202393920600543481404237884099547433985265553908807139306664795588052144663238456233226477813857626563421011054249550771371071725250725633669182601300083259029892676944316290118706632963176120729819971939571211074061540847019999915029310812233076001168567408019072019137879482906907196835369246676958558108581958343138830892926077797866285988705963101222647260572366998741631936326225401421241196344693607070826577033294322360112410571642195570115416932789618600154074675900003881641478564348241419694028567247493076161442155722981622673653649090192252916765334730689358656368360968433583320168851767406075627800308485801001979351943545186303358024866432542632687792854056708171163892056866565183496755831127577830850657963701759230028343352749592807255660134672299428710000590920109550331806929056013009805198688548692104151879793873912352625229322728462548175513533600611180784749262333952897997743422683150433996288916731693168834342057395861284372294795459085515546940629758434857909630180698488888559286104561958973492797625015476106489056275699849003801860919700969198762727952170159621982520026326901285229105096202545276396137512435370666994054873839615819348772425220711967910736960833009362152771820347173403547813295813586075360911630644499058782083104418330551646512141153756269062464366504944037216349549531114081814004078304968421941612566296188301850493494504353737403353948722050645977794056485717965422857658666970946223560422196137105968332329674069553946425239289702443224121477453607545857581574716376701156955508801763832732995056242719910985125096377978114995283922087028978090076366250073718097807914034031569702157059081604089299686150642302050769422764534545092378266510402003780522383308071031433852868944103801614120780245132723739753282749529883278508148408284676729086252955061362351625015338772065952424548076524086966180490123273549177722936818661308665866708400139788308779510019122770946683871821691697935539981888552998689639178992361590000735364027682242818165371414830637694135534173093965703346932825134877366805075390836765685177523038782032030007234681808223053007154008599760714981830038966764693980871143117279168384876216137860023015292898433825462843384480026117226701960808355356394984692828358461176413719425286163684395898466937630053440509221780565072560633914308049491947662700698838158300593077623962119234729865050427491702154030642862881036020709721263381321459464227017422031689536324474143480205222341677012367781725909747287265821477492984096284138783992182117972872443969799435924101246146493355642594169673052273792401653739110163525891239575679881511780598594453426116103748498530932447168657369187021612340260925292010848971856647025680566930597807242027529748992456627436376623755659692225022011718838622759189230797812916792268574184373165615934544405685788285638455794544123669192360201461727280962497779964481163791424746473167719196373048566085680812134012780913944149694352556039771942713057195771242059687415209152028830082116243488282310732116483321054821710406307622921840516187412984095049539490162836548521682174794909010175446420797831288604834804913384014589256750556610363464624372994617404475383399778713457408204688043052300139801709079981857857316962045352494677302665293225008024535619562774348681919627203952521544538169602797359621881913529093836224315231117940850109490532454764184310226904730819458530854160638464329400438729135601746727856701133495152651807343589872091848200050581252585531333557202269393725356370916922158772455468265283481929229580868195954273213649585501010469761387502777029478132618845950297325286406142264696440687263628909274091015103004972669223603373737587811303023936472123477305110031582675969580928669156493373108041135113916139581115347741736570381213516055393940224658230756983629040090013097423197205622631120190918288058715751360564286601344576269580802262846741050872918441873276565501905738733799165726521727206281980847903659732477020933106480623103642989715673252784554943950132170772053390704537114588120350482028976816427112978779291343951627267570095461977232631431207170591456692261789050399701593460908831701439643703969304833947432791385731626802037014906875322014350129051404409225934658948866096779499499890714390153349491435653625294971390760366374685681875375297213900213384751439514179934511566717719891455237059216519519068569378365027355324032906440624206038097746136410768510870853286531154126926399003004089499817295969886126305140717792275657104499401866731563595303574585509696709407896942331314835565499825624525075265254206747284649115251076886856630338868278954283348579166796686100540046042222886547366537131889519234139666137661692871203859663284851040980044581214961497718336301564655814821603770653774601694575622522403850686454538979830364745569839437475471164346150864791825939700326727170431851636593380472341111170858120717970919133552884088671339717606337707790685881939239261699470245739775463872782938337978128587512929009811918360168781937212417711776309252456618142144511072782080091606548451436441351849000703146402218072444671392525605520610328251571223801378482194502228606023226248330487928275892952643539949762212681074685120847996877106532050464498143069976011024188320042767991157909564569649466146755568684214201498728288521529042689430253650963225564334628926103248849597701035991907846883966655095012538667044499147788678352793186247415998161696703080946989914629052469856228934572147684853460330890515988093355998927191124836995706548633341444255520420964343259307073694362029039334292994022921012065525702973417411224536371025371224709129782213436717378612252803187411909127537785162597544712350862998135494195136367811023816133550042320115061553179056753802209910869122769743127266858577839524621915904464777477554024845270801945959252437373294947702386664958789766297417088900414811165417267449463815859409002908036845989385233455107752263396006599387654270202095536147709323525258343094126092543259755418230222462329380179550291675007469000059888255537387037788727646991047583079583593812530396221141329171937965486378325335666607414349256528700699835523716202284306269750671384787604102292843754503515608783588216761656959150851080698550915679194975774455305067353638289436898831876250226327535996227965960296182045356558150657738908099020504004101093469180103246074035936031525658719209062206284219308854906217754145577632283633944580850021987573401855405732707973643867958937575358411214475966652549647290788217064006776821761905538379854725574017473402694702765951087133097576157471504157454132812793159502235823646177410332527545551689086444841159510902109114116676272589739012017292072135862210063184111119205401443770570389596251083860988267147765464409512400096634714393001142875256736725996798629539984803879871659244494316087676289789621433390207136625084425271431647265049900776468564703301692208523279046522307546356944547913832615384058477820030894103599878532987325704500137009574463415799111221627322014913288814851366315081008958310349011935494612862561103825405725250096210891736664036106336064371067931157947134520842580083778991970850131149203710595933231120488010205601652274312367528957239725104731847921824722857928788779363711509371586371005762482057091659211009015076209648872755424335480645435138106581252492433616517055030263209180695895721632761784373296945618461907267115990917265972398166446508507491320136029544550451243399101613337418498496639078233426298921797531472327840852360020997528703714641841167997002039070716933943043009077486833685920073239083794897784678438570127603528635906284477757816868620420153719876205355091250214991060430125706742685507735921010761757424776331007554922616847227086829201379113158546024698941451349191196127739190207365313620109833864642432539013377876543850719931164284515459299103853598659249140829263505691255129094262184875698539494333280473469321700409176344334713811029369141152387203633676250244370257883296548187984837054736221100726868983646572054754380755882243562213645269132632474996905507204953452620903225320625605077080048645069433806382385902901498964500649905592531881245808895627487550111535180172156192399610319853341123936233843556917394278364095070647532178196460537330673147735823589039397538410060052126496951886530497760741921892343946060878884993180261787694423274903659428728291633539335028998937349895895316394297475667999902655207399553361241791672480683840013139964377772187817879470771025816032650035971179040897694197748422562201840641541890353742138491604315930644674351192457236161728667668823105004683194181348326676784569471015768113704581237140159381064891967262734547231297517548625335332416024027743476837554442773360116656485759919924789299150835963398471200336705792350817158781662207160647425433878014346062470499278860140084941143800283808706678650509007817173909848465215292206830259255040460163953746536848488743122219145714352248522642257548039447454495924628898430075913104677255303696559810230755237473254430849044822463351210564490960191925977244626371231703944818418381388955119202174118311781686923410795038908723729332095585575277412993429574985888909493095130810717509308367090379551752818158476995321506367530609758497643899694184547921637876875403518467713820205306014064254750522353871930746939109177664892821078837566662848137821821523089280252202604063831762013479313025933924443190256722544126515474267992732246069708255346840587753355313406737565470785042433330510008455425098298280808668406290267614829224867682172535047225597892838402794545710272835157526246321766540632680685494838670792800455028467081582326335817174902529567759939481475997873997634754234180066680079624048312070409828203089212451341846901313602634704987277615496085199295916413197247515370470256682260336279429937312198250450470700467583744642853883401048179486088684989529872081506671368701270807957868604695622552491167468765688225083851762119834828947960677900435677018642583632049750805130018911318584629167379134950457506321563116909849054410124897551984730028124904478225656463145971163788130974178462889051328011138200914321337840931252009089381429713984630907201828188029406231619005575413824577922252243829236192817688315762013577075409948815067743263150131036669010548151221427039209897672496149334526062642838462819348915992163525296474037478832753574833503432401079542116653151368042333959050561457379971878232689663025374653578813626235077093538802786742735150495430160441545038198820139923178446299429666564328831264103840035071484448313117303309601484989856487255789968550209134573838682142729066533803127285915081488663320860915875555937240062815466896607656271329530184584806509982531932594768998735140613297672018123168415756352525395964907709681991739954433850222014149950616416831165083855103962802554452061055336273284783168200103657847165670703884296222093161836917359917366650146259406693300666148946460558763207535327611079066442417334255914859977264008993928848361486253599955863940408758527322777966061923235767815403816944354027154459322086621795343074085541154495825152499343751667587363438267829241482832717897603955491635742981269018868867138935610462184059255300194128157573222313373170458937139794723746741072230000580474618192391522645193822822811415513606183341029168873090436213892043505953221359041033711805832683522511618843621214418442539636155342729136741155472728756548431585403304519653620462322858444016663864594985844285780076473265088117677021257556820948491231486385001603499231064594360089784957183318477674602558646413967483507392237911504592142486367450628098937408912367494403818058294628172648291610869621460838388648105427040360596031060881821268513825388218820819583941816715399941478056915718835176038950881876212861698513916092014575034574372239745648986585453398125923270537548321131996269466211389077438558463827493501136038814809948484664815960294358033838156563532917034128378096168962954631955359661948023523468079284648079581686028163562671625635743225972078712112064937850101488658853940192221654125033530941271775677194799908322925639983441407094011667652269897164629709219082641140891135372064714172546739297059911239322697929677549855182674924509398007655696931600418843820600274309353152794855687376271800944903661590155468406493393995901042922435104914540679404864574998467677298278767111484002898937545404367674190243737334863646607132629681471194594321486999652645747541985522159645126243867824732796280721931481921293692368811141650143496277136669374308725178070558631299825144380108054336134254103764340606565785079593255280974465302850720802620601456357502724593785416186092107230655851842821607599126479110281410663714149506205466179194043440063162029090356088204450057400528598637161330785156489665442750357090708032300901117016317480931185001736338957613346118750566723642439207951118208140736632540499895421282992037495336588037392110993975229754460800624539102440248710225511184083439323668382835375893644122504874818848356135020689648006563069088999537164866437745748184146299670840472313508423685852084608160747059782678531983499515771296584538076060529816643552135489836252347286575895356431143230786506505953550854221344173890383774225440069089293100576250955037304991638728684183172764781091162600483375521360565991183520752709193607961867288304901285246476862851215237625603843315010609165574449711634888128495384264797650231351092687610464535776141305011388897307508532883082284344678752482075496221654501050290678182299321941948763750147997535480648457401219074184506230197469369921295609340321021606432480756308288600809727576431006148614522867916131681666390411637089582518539194812174463114055333050255971869624625458332153614459635640588452351983066864824088918496265666252253753052816465381194963779570119787344193536745043920919099465106699595554772311392624878318693146016293101995598867453108806547198637719821317735797107234788585143547887584461547201323372043303584366138934074842778544737602412784562568311792354570894066199302420841498379135350342713914275792102534692488921264634347365771631732145611080393132668867976101291198899821393029664246533919875128906312823924312911921993355561146059834407014285862201800189962404625754614411966853258617200632172217814704061326779760410778827766190183211136518377818883368137148850965262971739039607837954723704426004645160685727053470538237260782872017314950623677684355637765404965742329356437752924059964022492991989560690545969128339370845278109306155759278080527200323522127369500152640908292156271343581685311446855115758045459632779026321133711263048640587047353154859634926832509200054180194602266253562325587071199530982063356999081661666515342426962944295538422442415411603330927204307636587340100411041614043174245887517646363627528145642162531070324749399647303215733670257544645048887897312518533118788440148478761550962785187066808906262946635024428560633802055400885147134763593708837962248519669041120277643509359527942464340068303320870138532994501591342971850461771512713894486870445661715763466788633861004653633798410334679129263546108411271577678351722662944589422779129028727326985549908792017820353781721409823265376450497777991515223801120461946582101541186181618354755997526805124624187558650241074676677001607191124129279775808980631162640622742476278765283760737665856017229438144352627186649905300338255981731195487375276635316349795381352874469771744637878371383834869940503113521335781757239449879599739369533329168116262393299561119272502696735976922623069851294615692982083260230400934571615386179847223749195831903480102430332609424045344841097298078073681571058177226602104674252024113911471562940378401942021628920980898137898596815423933606270079644657199556656585321009305806049600867591531166263369733489306047977317445686706791554338151409895726138732064017387747425310462788150583669256125272473182720914666145886525112014654539247220501294504921862275283931565881289778313252855535344659625985767810353609200024138853414957079728677188009895018828689366739737613911389133702055960936444746340783497196574741180963642550782181139932444009325142746460458981326754175761869086081397265183629989134184864759262681199107920598617517635052112945427594087340645729890363732783259257904751543138246324648107728569833275616881895993171079500688096648463022064714213188961848015609663247365351171957459787009841473651508468904091605176203880565922954707292582686438969951995544298571246205109691961313705483794657767647544663044001353898700662609399584129647778222276696378782373955882078234969306943165999035295805201305215647882117250877995388023966243090713631628436340491769205045360514430102114643233980568974513680058145678816368292741409459716783244175811921195574539204281704113050796321701491704979376737724117305179348340616769756127423649923913386673645603137553384097537303690854759840476343523205949765446428721551240431830949095841229634743795515277329726347739686896911120585517060619344903378058364314494736322778388176970110647225534070369989393563020096038292866424378389182516332052874982019123952267550308616002501363231527104180596781050799678833691110149210103284512258847279812709587585445585048982933556032972234064652221665756336136975043090942243128944125859225368143043945457411890059889164367620168459162522459495496287837308440543904494505052343005880192535174837065421950890577821964736699934860778704784091609913395489246467113705987759497226412617666090988034088954054303122636843975064879256036347832393375959961196365866607650898094093897977610494624819547348002621295497715479999649605407245655913356136393675629117113322703514295278617338329184681173806828769685217374206706183138917595557473790856274238609712679587069294472013429002830743135178514116523276363744322010042344680349393994645084771818331603639376472002366250545458780279303081278904467644459209885365532752700871855848812420257375447547029008705085175344998494342219430636535746996726442641142469296408900976671382874589500552219542442096604227898128668168462181220770253839534852099950749666544178598420570252596036036671704832293133629808237286405330747408085315951912562305208077238001435928891186228147068856703687606764000956392690511714786538809984994779691000915220795112870874884393243120709895154925447792217347772972934109602583624072101651335956310854227630415238780927959711067013511487593882415621844897932945440523303055449991171896260027825059364168782771970015321874360582108413815492260238354417128362890305458306828894255398997039768587323065267839420135714554692649127889692648212546966031541819214820255962132759489517935892281725399232337281812960242372208678796781877256686537719034322836204845581367065389483368639460310085345908185168146422263142090594722132475571295832031751184088887430929026738077275794682939584749125071241144733564464326240289340297196196059274820531199158366711483407746636772630558751660767437148388368210021084358225738762686050340661433279036231579236672826448592572024144590297293270388738522484405842744914048264145364582063749417031142703896364920831810408602804276474799298829713975676790353237311362669106694809617793952263678264122347320428159048723529357040095459389340316261587798859834118743389622911115583719891530819099257874520456243212673731521536307169384035563418188629393752566487577980717677477163388371749995158863182780101726763187471904671899761012534871014744267552902876251297162041456159047216634884664041351575992260991624598890373811395870002687116063526581170925152993759308742376081745031889771969450940551890652125895542205427401054606854103515811089793941178686424684791559719324543582811124511934325050827712069020439481435414481024682837893310294976305134451534364187394124567614522071416268346015472082933814684468664953364211827652003048698526515879106595369844275490212542217648939543446750705046045967688142001604981753685999715539321633516817997075051431358015096836872837554762092662334909626123817680150172878138339373404640006612506487281814264118298634560271730153430707024774379560313607405948550676044460934110654379249374879265006343065869479189459894688699724096511557844874784965978325013539416127434196138720281563329244667569082006505737702033477009501910703737160894724009239892748808100141000929959076308767600607465084735171533563349677215492611118576980468758510420522596560355484680783359902025933823863402020976876132895598736854741023418130477788418693901355001192583803594097829807339440485658947052175361718937220295777735287982528438693688698671215511347823226522853674377928207385495052996100883499389912249705703787446367699886751412201224186224382952330598991945601291509709985896385410175985491342847956655804965163145157672823054118460067780828713145950466692366052373374697008629385239433951413579737408813208603607428488836571575297782447685215017479711545466512310054255474373848218292524633784883819974588279561934735617477118106787166295263055321847501488451132471393956539280492124649939378986613302619896590046219493248473743672288905990209993893528592816481505708289181605391648293825224037558629208911849395843118854465025943579700633379900390193624464421778916501992336038241126845318175456442277438279113562706203439448277872326704054696107370689506488859163614675644276293006509283488276727509354583252460399570482891659858944136882687131227726411179269685981271987268634793271761437001719609393405405765825187352019014490673885729389246242415249266204715588995217577696440329720856689075752829462453492766440991602531197699306418533863347817875833279612611872026918061998911420709500260576487168923662116263484879561436793073611453347695154371080451518493814184767962456454593635188648109419947817965149691899087897204947264707212530951227316581795319628924057854009148168939714670886111720210767211402040411585273504702605688941595140072952974147539623234940375408480288624233057143605025322894677093584539726683863799457210560104838201565372728084556787127437702030558584728254423513530375844565137833100174379354077835745114484803329749211221356064156499913396825488689709426224786728841598388772790507186954799735611213386750799722978877877011825257669658561103217526834165429579645256019307631367628566063787658850020010117134909850907135420869198114901457110460145441213796096046503675950382286657089282067815047473357326417050513529618116489045697801793324849854408653530017342579540961170008450615601732453131570788887075166827109696757800617219669353141640248393673072593115021796736872679807187040955258874904220763602753749621706158626486596577894410750909550187862592636413598895634399980723561948063407078393217476394395313990719986655963706231277835446175807354219095419914845754324492934212967818146913591889184540631262328336237151122343668642118099329492345089854184368908236208017896305793707969533717220115476186820750548054700395521668994314927895264112025150396171371953203703599118930391533190644980263439269981445110762396606564875672138158804859515498420469842504000914128246443349634247057809229717978272521121502392183642598947497854088799855316784230637108846024762222823311401501588106787284721634595019893878497617088908765563072977526759662812669158357690693049521450054285658635751033679770694697372450484392533242913824886607767273456043522344010887542983171674539893653091469293672967878681708603515642205125199963115580274861395272833409307102634698461308521910235973660173722729108974807215417605860259039846951859800658593684804671781976988457353154324369069670783398984986396468045509104946337501267677242601225128863006840309910958415737783043837304089929880969628843355926065089105074706663819031197305362877769880494854168940761484722353066866275420086864451910740093802731857008156459722986794816962500213926257837164625329412627398538591232263969593580472620871938176220228698009625911289932628547415718177819036534784971948380618084591547343784261092989437261884634120693383189852941464912456793703207738330218762921757695298783449317854470504633911657259514134266686787533353543136727386545428133935597595302721752445180954685735843335440703078408735911652582251938896135496153281866038089615252671097490147778224359327970771428928682724344964876344073433159511125924954842936281661981850608065574915027456976775279212125994930779777798719966417319963018657965742329653864484876400115691527543323716385287618581706716765331391470002492004924263544120852930437472885228009205363440610295859849304581159403998605460525650030056534921557009052958543091352274345002073922348752438691057838241302773803271146810937803474808353611231836715109058447510448755989646919097144248254010446956349041898901934431420667229479723648573009850623157952115108103926140390237918918016472960529281165269186474343450660154958504511547843165662270076949686306732781023667341089505899451537382424539747000389669967432604392704660175465051212950114807533817706935293111303955498130702159352149774548101347019860267822782715904853011759727765380416737376620286339782148582092141391081384890293772872064623856366316813363001220175470432710422719035100774586639836646761297427447498259929232454021910556538037518467794867436072403374244175124784203958915382461567616889124188743720937549999806315579200314186522942152312762970610690780570434992379470112671961421261462655737871583980237403592345798006638504231657750369218747826905408162811854631726827346920424519979045708179704005026306685219669006549570479031270878888949947905875778101715372950080296376309839765987617883444264245219742468920686610067425131572546240972597666493229020319195405724811264428117198065862357318396135310463039554807932514074823951165276994721185723630277665764222146937769628223437706773280164415702465837892245044852393513670526459968656698455400939085633086878572276192460641518713001402472253928454490851689654714593868394462396347359602892047389068998710727290994574941002072270339797265602739901908752532900933405988256359986411902378774449819201090116584380773917369785444830685167184084992876549701925978502288916461519237500719860291601718138518505587489968640223150361861794988771451777912545892427653418247002871293676139517581360184409438819387908380672412440640914064133780240532365558022917555219650323101334184019468318100590763306574991079887096345516489423601527456419905550215738708088198514129479049410621411955227542659111627343908043578863401249931010576037014950704360770232748134457953788011676849384629399011387632952699148000661528200917901897406261334242115879070235452898303116807295717523915321766348288443812847567915716568518735957140192432584888417875275545636896240643506878091060331586849353483769147482075911673406217844786543555155775031167948263389304032657232282483408159862721121738461837484839179390515264719782244928436117208398658484817680198695917616285981712150696039508432045187306560212175272961385809170901203545716384230434050272651230708527035720843986265468036409006887705323034600767325834163871825546707730655050342806894948000698500344718990336754250535519182565611929795434109705274739287785899372777018770737806798976030992961921627798343805926703645120775598174789742507808630863690258529544618879401538585218506527724188929638104047398100502854352309202301928489105346597572061585721040690110553218213958997966482230240052876802651878471554204197320235914728149710621575954993280381568707991731719116478811788293049590039852274787921813333047890404493835701192856423465817428278749383457751199187580080156783072903637870966889413848702751246204741827061185650566187034027785684676512672362708220571304039882101568954278822210278763846948541512353765148436557562422815630392223395033989260791857211142811391078500601499323804535145913321087699209288474147245258535729335801450181273371363159513172244242373032789212520136385642827727921221759735803879904801762240912531032132802493893535461129280547112121176780691047780655775316043414028725031839716842514508691608553701778800788439884946223496526921241881757489579851477259885754185612930056832403423669624651408459816966712056820888362484043401749536351575858567229539707799859355249515953421404133261551267014604417413103102517527143992266008504713896447246559264376821161242394496628141561233414351072572238478003450615134184711232077539383111721171380910704628698254430154684031203978343164404448765403971405775746115960206689137813664192833198137855046398437312239153776709093023226928026667164710346590147442481886266299089796912356386993396108645052588501492886844167636766044645556881615823832140606299633892812188583796227915699947764694969646142581495019930692860191680701453056156621791278859094565078951592103172000898863597828885687518302241643560987191337463437789377875833768720793864386914805024037801472180127593809371440676538524792565852406797975392794676296802390161576466058750753444901084457277470685953696521864203102942959403350124774028022765534708497623721080288572289351327283074807088814666835506997326384823837945333940902508955404263704983336012250454541190719449711062914040990468600902607392419291784219185741227921479318056211379029088695726446370080052500452737416454295782118356569955626994547847136086711048971217215380132895821887699098980313557256953635110497261087526884622114843119938706010764852608278357047713112162036176737857704391200953077897353497858158346650080073005936164098239399207715286636807657504986132976344255123900650845149431282679520780331272212017543560433285687389501236024026513574998671736372663555358610699021144947265545738810993946599165775374599356384833950416569032492767786502937299576314802872696126310522539695147414127562859356340780550867795294250108941572072917802346110706158568304735917711563736901255335132443618440782973765499590802662274119269252183224311441388985635868700943477299270660984896648454180817237285840625618131842177218515688676501192242589635583494142533889858158884161449009229036192080907739389382629777547680238984958524848657234801280078525953430112452160467672759099487520468223323227727441815795565820681358556121111215372358366740304670250646058020516935501949621149630211505401869534620877957152899819053948796209605384604263224324581253694667945992189813203689310187283862399327961617931565737909027725547943082452105547005475846605729701103643583380719809420941070075109998055222616308753322516000735915870378579664572546431301563467645150601284882706869828262154685048809058459486593193534890555396931635936429651905788715473710810240259833641109709559317117991009744733456225882192889705297229115202836222299319616460267522559633170730258032884309869327782101264647362573116973283598577723665692337223493203362841821538211379554085355556951717036864461913322837518263164937437566086959016861183119245327036225429719727798465380632739158171861276078397235012096642563613044490977457025786292637281986926033283741005658716885335411416208893037196725448300651921188596947306186295754363349207104472738320800906598526019328171620263207496326858466356721449516163263643705964172076290010289514022418765880630914079050820960541253593963833427658436921863306998561308926179865464494618166115668799035397297898937177417202712898247420753488655201383067817958161947045067226002645759714816863464362566511936980306813491669502929868275665710100142069540854119566443926617561113190513319008469405556428622856129199040727801649515478910923843822331028323592264608280259112192001251269332334758013122663179708657457726473544711538836877190047865558086376566579205031735096515328556978801611746831233568476944294911935568768367935274445488426689433656403818388160901664785166697041687677138724415755766251830080524850451559869337489470226811011368430551478024478723972813663309885572739515052391672435581162753883954926607345178093292890799453652252316623159872633099326616789344057195509258442829921591697673603675692449949067643084529413250731968753928257823106249530183836563597487621000781433051307960631355147013032828411444312257917138380217134867593890275587453591386942099015190736817937158920227602650247232834324923367986872080552211618161056895904373299830214470171793367248711376590742047613900978349981971066587627836114075689661743471528083514884571429655046724024371461972644551824608820568562265608603465550049548887956258877946469860618461980440523765059971585345026626098538135550286422732101466038172213552671945133706476203876059418597744522144731223773315396564044095880883909984738434176490149931842866742406877946167895540888763245840243410380883348995118920984629525330704384949161206204758059520297185060162873359468567365902268474424302651725102614339360022923017412946195983226507583212527517873545103975649774046545096153501531001773213046132317484602359463069123217543233669549899420785121486862389204560239269847115687224847659450582744536905178616783184935864873548238982573107290133832051693422968731856464190151414637565936289194344609948558922649950485873937415083064291446775563404554827399754613600905646901425776596704569575266598379559307418964863010726573919239625243837429289627475882165324170718566637784207433805684512711418431645849611226388886935302960224983006616816243998468036215369927580627246888539826053916399811254889588329805023756929742633908113647682188654831559161732155635929434826814961939193356834799217153611000012033855628896516992489869207684410478213760361991218883447352705409943049478063333103990720171661951238636606372401536824309952810526130707552038681544700321445486526758360322158044988274261491154415097027668555998096006460545923412912945453743144188450421832630106988924412188888221573576490237768614423159444454654395100399826997609945464928930230039721313248350571553689733806836835926472624931942982168240520437276621106571137198846915401312978529847019257649547416532835279312291460710832278899516060824227827501500439265546862624371586962456171424957095018842489034182154692388129865466771003575770210860139542617001177714485569726022994824650592020034472448889016291229779128713097615025399790482896206435079629937381438554477205172517811527562207871508790503169959322907196344928562454399762335596371005592589203804018550508704830869062716113429968168741494269252931869238796577096501983041556290627688355537253541617369807120450733440308965577712294178325740572961975816423716171057896127260049106046203211028829734778878978842360421846894435737658175561615300213961334324003556202577031934490423190724125661011196509444003785848825147075455522418530936927078332274105469494575128795654366215888171424589031157827297407155448646851147837965239186105753211707143063447900353247158023325272688425408211496123407372616989169408761728625361257275844061880658839185020266252929385863975042492653460566449083045600677861254433262570894120659022487455797157061975711159520993651593649908276324165748527078730954137732892070622732723377257053880541100007150527072525570407861158696131234939301167268692666217209069416151346236255998273741865860537189056724179818504409492768272226126260208949418686270953778282463383409565106778726237085696887245175888531824296622168441500345397736544225996208634696490566396108343682277521503667988219354644544991734425580630753791937476010783318286616490980937105205843812474770338925956288011218155293718765402039572816393655884472718509363457019949484264203256289933566344151987851775790009541336172426159889624429296892266239118464899863735743024621741358797996756595942269127594022640114577707580845116363170955472154828122894386083580288367719572488978603959545636828361012940121998094113320815976090890629925959668877136640803088656107491567157840795299687711636747378018747843409079656313397125237115048937925575501670790193512796410071461944063587437461067746200090293142064506541313686509925543852137329137428906241577582699958841230091740849260315131751773230857693334771242526205461190125043454259647658227464430533260353604604037096553086739425850931256165363899700816126958720248594538511786677922423847749455455968343820239141412831514068882771952740932672711232449026116124623738367805985350286575954377080827832206307368928594702157651419949216965052448288228004471841517993450210781375205490826855123847087887551220698630479023793927744836984618406399540865317695104193632687042987646315603720194207748625556561068641916221051470966923516042104032739560052892707984767647781458434546868612619095409342120308074630331808134821715613138723411417381449213564181873658754218326280086148489156427615014745420231267727432142187933295431963086921450789959470509529036090317424445758362920238580777016036283564832320628140914222386441932895645660444429057643939996784247066548313509612156088311957843560379718831148774309049955321480926191107239596098409227165262743910041707418798908198397687487669789980962368115625300766576379332825905937742765933146794027863122719242376147378880618527445411012267127841771554490022962509282490220684567648159531889962693808872115624419571603188463245146304949505349011139020897356475902601899802253217913331211672709793461887373476587028207083011585597825250954569121591462790061170753438905126822835281727692651241761029180962283506514222469209203807060992274626633789246248262560787181510305931166988634872211281203925845562274260834432518983515758958068502280912733263886987342200705833584288758472042006468859537209144584646548802844299853093305665814535243014143516668806378236722276685551019173686699600989561323636920123162154502861720217661886839914135329683996587714927983228568905665257471039075110573264864863058198655637782891162404223379720557653179621308252970264448975005880105589939505063040817239697736945433864479155819364924875281377639184885482387929859067297259590299175264420852062645002229692666828670926071845285390845856976052778067062582499192010304208221483650344440234090138567180374381199430121656720629303412848320135306921204613224278379922106870818184768747686625672937427931081671033032477083836956295880385951051674845404882269505695597301886015379700892674155907871311000061629233572530478449694047031224605957404178832726008838341056556468927291996071767323838743571958139198905682962588407376608232298555177199834546787602711157284353116661060057483846376345364246310137530148113251072748173434994482085479043261569481922130844047629673087661822785852868620936745129996359920363067674913207846215634591295033431686272941771046557713294912536586994897150927138486488035692895887366173743487688022247042883322723561608027364103710652059578813382675714921428979007627903485525465271126760965448861124736299942003986001314112720177848809611584261913181144119328608613579366159622796760833359625872865024273273598077924860651367706169435683252369823556764744021921661440994266874850242357959620420210453468193855991054016661398469860312295769731430750266187260705072154208029402699718482133396626340738420671295186540089189921358351375441559835667359475403454954878979147246460361826968034578974478724169816514965142069991750354400449260773264215644785818571555584349741237901878609781303791838362319648844141195848666656851534058970781763738382775053062596878456797517986880535041301129397673149081587579514382736904314211287637305328132570074483746352581377698576969805760991527798231671581492231027144031580634252754440543294496342213694424257128311823992713600915452641604113754062171699073717231294926943882400650408149047126466512139666130235243761339473749214266175889105533840270397642260689204372226180125853948594559370588825308815482788991380829475961582618005621149870604652413061642056090284278947054805807652894853977348222709758071303184907341560614445144917126813614830672036350213670120421697114550024102837983395145395203998716061823432796794764056218677921363408733386853634147518036775134026728352576996822784601196362147844725526271661854759763420779949541575155093565820932808045393723529194611325069153020333897792403893477169640530091724680649080526011814342361839416976311007454585920950558715127333257546113601618407246273404694610198506643716508207372120568825641660433185066550797027270840180532014716918945523809858638332618940486789065187356674090933210136302717855191702668556523017803353356655211542183915722871808954062296768610583381950082110900731919108760447951584513042918726585998257313388636384586579553237329786999360203587784844511951497523632488849812975614680177736857451476979444486503230498591300380206879076384091251219576867511532014953260240348096248884574776260188667002412205718057329021110232806389920510399839161865330141599303733591122628106801399430640517221729814691165184720298108400354674127269115125127463177598386707264289432879627905128570571813488041463194336162845464012544058853918063344323786465406777798461079734813370456090312939493727976324151268926959290736705468448503171887011392443779446495615051175617054657692278869485515058758611710790593095388257241082346674433897962037537644780478085828636808926370484930478438870990170721303757508321837359779124796121950173524779297874397470200247708786748475085019324907514594817578014723873475798071526861372050217354886500234573343394347782808616100849418149757541514583813365856367678826631298493390812244105804656206769137298162423998018125798921611334556861214525928449668395453968370752518776713558304996722962687734928639016722905765214807250435140484244016763159545799422103370639824554221620060354128778633143633629259172503469945711250263486832174227106694512580772068016107011987877026565025391467333191828482043657371709124232675607120419124920092198218892822392107503977629723591291730703071120690561433542366937956211591157383182914668648891698099820894088647577651484757073690549947806136319958819439960516829727081267508235088299836396155814436304020999057153514492412423300011007374049576527681137828912292993545207139198733424171964862891225890428889394974170867220340439124204402495310874973255804617666954265154082520611774846269356724169584418035743901149681626491510396286522438706978676461076737951915544219896107422203547178940201026603362617697031348215066122634159108079023203750963147678172942066221804565983072258463720785526341419171143285677945782092292919173645201509767251078281434858550749254155812814770723207597935601742631249212457100557968921607353693192272379837424361488684505752093339929406544968260911595393611610751314591966324075097484133250786121288016465567817429078727881707255583832072186587387090028863917506505040735329817169719336854130913364693371674549561196608778084097532596694490409541440037263861342134810818387362474750403168893178893416288680701632377806229041870260785553765063283793197435458361985970019601649135045308534180311062474822229145928735817839465344559326446061052075686342813960891217328978546246499591337922738180978787899703533954306682842459217304344206007778185416297644061530424684497044913007622827448818061496679907434738278419374319330827588168767185154975242382152720898874047384093691377704572178193565316845574645417829854886444533047226820648465794820272919252278393483035142193193396060523136539983500861532652147652833181440699266032408679762030144971710793072042586943137421659421959803401924918770673288648897231019263859540972219316418791065003493926235012932222638505787780075401065057974255727072095653069675460838704914112355243649694301264090934821068495000805167165654119289242717357046225724709550732139042334919788250239031776414614357606944074647549065936978490354982207064646617298640722818388193625079026282078400004540134980996499239748332827507675423024085253784623188380882215191606028231470889140002353375643794373306086289006090789274346341319894906009169531525082678787972575627431793263949282284600778037811027864802809506711214109237331214588331525599632273780586423534464578148073276788444796064686736389896029873014167860759201946551771813352472043630222350005520434458417500539479945317911384104147768825281652412703141182955088690135860262048309034849395282629292281683074602125645709641865062188080170857524278299014981450459149168936046541143304388728668287602245524298068286554927714900982623073499025112618663476273647377472746415163828744552377937146180313103786752217016679471854378442553648049974079415880198435694744147651036949732021922952227264736196812424298920995126481770237813695842506599668446959053233725528663814265322358956496901955172058227151249240963370780067669924499905019259100432431213686651177288651739439035956473712075779781206628118543886620279267165539005951658712656599288235844962326228813190771345730543468422728692434496327861996122710601686559877247060115495825764391562384231549237777083419382915347392491913392627082776822638463093555473679173004815291987375617717572955813622540494886460630297365852985492460451015021901119335253275789846437347763462073815822200936260245845404685781740294452043554609136986786956118271109872102476164943788321835525587227154243323845520938025137186974376740767313303589776431185696931697829586906852498286560096393722517056942628590439975087938642781034535554065871148036596142634705839749574861615296083969612788357435260608294191703725243329356246651612349729088671347869024123966852893029700119565935800280875945855440811403422934019835884773554166807186996805492381410169012868908796889212013406936197948958756931458547441238936952571624089098409302572910103823180113148365818351642717186653445955918474394386238167702857262567829150119702226046309094183322055532978958810250311477948893332466041296913200712850009558939262804886102816395369126664987951803847211812564957274397091773867540775733808620472017340610094757747247590977467564746271676928241989923892699271355678882512489102482311648679111821118694484422209944182948104406883532570984625525484793981909897309361303923392364240051190397804307030341387912326327891834550293455378162228151448063342388723123733259900784953929448714840555721359983013656381757518094339532861679356630008536021169740189902485253402512452287878483962847473816676801953204307003804879394876890185010505232597134461837092320473649597000092014273728014648175451927927138955377364047225906339901605667201595342972232382121411513485191664704406655298786541261784240295546909775590846842153766367364015872890542592765055887163447809545546385050203453231946718529629227714978495625940937252809817506088042069261417493424615451279112843780776066708981040413192347990438192549625519244342358049437169462204692524310920621220761172947929430463021772638256652527432345072567209443205719459985783855373438958366677261160762315128726631892356811797952136349863959561905740175246841692284131074726960468585163243258444732710607619271983714356111796363059853801260291148678174631361859555091430394630988593040944202413942207233088459348256614961742014578544751496764129355651149547618230988106177132137907052533319311013799347134078826288318603135812768322289468950003212293082893649557616015604758508763001866154170051141122776656505166633739180798133284501083225732387837073107820024635201670261664953271234324972974445500245278212214027451611762798987018324019621385370375802129823701936195747064236106282069901558020278847671413288509217911000862879224285233337725961998106041391454955236048169661970544697966652299045084700225806953522737869840253446320425365250348131922090198109502798904221210800312552751030394074772678274621898389619327472087421441506654473131082483619753795390101870697997133971330548250955626654133031913252861066695440741613100817792623122584534383919142700851100453014160765932703024637831058464594393642567562710480771838485809110612544227843501487336939360882630607212912098487626810965885107879304341501560630947470348126438934061168732604703877355991503495693895575681940314332707490720064298388005545522568767291313687185131337677944053141558615361311450747735687202793425951215799749228676700999512894437857433633126053393418612471432982363333737553926644165251539357638750819855904547713372115029900344448412107750633485684160929629242099962635507752342068857845496924790389723461719130243871541374396680339358490487416913304881733710672339194637551562552300583037766837201693099532819041404573521587336018675887768293236288029127343459723164350871004029883351353412224595474505959436260528162353260838657524414136971697533496014425087013328613970668501355065832743485967559479920270136403244597511981317621877287936831568354859543936567495997927165353965926371002174295815275956024218872796745162459131064626603165464043160897507898555465560253471818075862644659664919981770509353318921005485143266615366083472425996842910101794625502252391805366376006032370495980957607942604971764995118850993938151818818830073064502070847968112198286166115514523610753872678199010018462981875233766480037581454486901425025153647728701564256210048771585092143790087198058350937929884073701945662307315789896467305708167869923017120828016054600956973210686535273751572532169542797460760710023875202508237144209482331106145945693414821809957590059496652205605984876719049787998709769977943429585819527425226417518700570094136873370412248690807884844247091446657375395031421299919771656568891332641776758896127572283413797472767400770716824206102347269613161924242731248054081728215840895780434193595372170059478329270796375821671697815880236345969585547771196625721575338236959644066948791313670349575341434548045327303018374843077021324637046932567349843002306427214415467849593760155956690615572822443553168289952529339411427842140027916406817686735596704637900148291585407040529741435580770996199407812827357258363740587046748720667612432011484847387451674733917279543311965036628413758156386459356123522535003109774133381695619598890776876242574415939179083167430352688729777868824531121919916059878030267678490443560394445075802261967667317136583405443237693918356260341003058216885462761725907227678331523023913782731171361037378679083406607958911414356379666576190828521886788399036218399929394277542737458272408763926898556848493556018159314225832375987190400252694572871915260393649919315666551226507500122650632506981004090930608347166711289866977467230668723637456897864225435021412549515040864569502792253948127709715951829364075163997786827151320469856468142271043130681730423285699987757593874770410209563592121687548490127131439400840386978601911309690384714298089621422857604155170893291742386592835613126233986737890543514724550098660688652207541100040544479826936880159958698385232466689885364180644060010038577825387435321989473835763314156720036114089442801433747617620381674363340809474119221374019685616009003097195884426589115611939443619757981883493729174629331856458491745658448014008299958162288965989511350310291299250203785725053173407045764006935036528164912708923409369111980740298105108435111228242947992325511217345586495004223347655728257548716723574938295853947942938591563142638071467775123587159062991817987296775349821485594533924655102960797153254705341976743319336880673804681490129409647390218613360858015483126646249393201267114217735236814605769768449121806484880876503069301048444649926771949525886774646152211010137901584261263169797602365187386970106942638778370283780534114674186427965972706114005707180816466597580665218201797034551151808096559361712529918449377737867824540572478479978338129520995233839095737820599443463656662738094341100549589829840736719116332351342032020137686969477262237391223494119007474327350515253783029434516491576813960006718471723948730493206641207632213429426198143287248849714885884148839454437278769826837489981430178524343777892716948443368840169924211624411715788791466437890104266277073706260956195848529691343311140592190594113700218464242659486801932066091206481806105458030191430510225334988361792852697338639185872987543718950116164139450808524025630109184105217172992857891939002727665178019873968945971146570436673447297451433891150068818068238183713337356799848016486087760512978755340862299539240762574494807621339383078782397844602243521389170842208840415865246590275590625536928443294181681217715026325609106482956280257488892489551740636394362358419586046509786045875885956022474104794309741949875828052908368663883742401251801398908813162375601599931016583030091780806729957407624782139235046588468800184592719535119816075331907094302815326900187846090494830808655286889554696142617777310523541318139259444504750888787752563335610089457794908435030939248273679651786474627509445359829948897583589745137301684059798017815485054170775561239134513361336998413131502452343285623885271741047367351057185896740783655282883629695922608951741698859419236240967229205361572708426289827517017054757634511421533077362654482712751634538167462031047604759863587805763403059401755048358254050482579192338520545477612753359730891734185779410762868057503669245357752213330919747315061777168202035103127731569385228980849495623280681054135960566115087890645851846826419181078006141532019279103686514080067055442090933280849374515394205652363051724552087828290618474133618876776691327125121272164185328343117968725752498024070663212661275425679445397509748799361461326700184049095346324193499313405141049947282162243028932050734629253662602589016939649473337123271015739963629256659896569317853136600167703293822586720434358005524920186324205669414795385379150341945529360987361428130929135661851072671922879890228704294575689429611430421011975637202181719658032859830703154886847524018171348348655166441495789299229281331068365280739406628437760913532135130454721751493287481437432126852236956584686858762665093769231052869097697090841503152435437264090293855076728252078057458774264920396222531240065773975241267538900785759757785313759834145008534621090081034434832113422928228892286386537901980545407999612095576257699727513158576393333007350104302209758984226859782442472436700875918267799610983649392455780723889472342491601703487805481950623238525296232525238502592063188701861770197378316499765942253956736563065280362322573550987106211039692310117024293254135641987104377985258579467318789405353123357930402379917922593769281903895358745604152108668354044247705141564381647758112213743273111087322927914246345237375324320489388494605516563505373517849941110520221453976018366178914336786263483234584735203680876800850544271534824677895725808738440622919589987963202835468497732230411083837617130346390895298509800621966162202483615859538218953555297714407104903205852660599684176529543313145955311869475415722667331101083183615592678310732798483171454891520259599448193764859807772590886706502342180028919800349315931832730271484450001764102541786825474910756999939009357066408818922765031821304647553868634622742596231347895330059315208214928450951456195851808818115672038525958293885071520837227164225582315242734535419033924748299455691191549023938875670912794932037303044669287519999126713711741238861889757872859742665541476869313763597990462500176416333364314831367654607354481125370466686278470765001760579788919717656418806096980748897984605023046537717127549439270375136522763295938102224806254120291177006603126635625361381509822589004435105709856408464212839843066473693983917997025671869995036678202270296388298678624309604676899444824737186747320590044278401450145824723272300510790421074832597656393358618707672433292573878057169361388596712063532720165088397060662751365901129491615330603696868212560385068208438520210907665815308103539776732030951255321019679094038510418822527158244629365047854302756521888331481995293997420958785128806486476899605704557544398343215702358293982162859247844315504031770869284923599450246046103203277261133922321334625974154045033382505417052884965180503390559830443260779997741228961344460509855925071731056635253474242065490227344388177861092146425717404558321324807201997377638611892027938216686684673292699774400852254413474129655337012029044408429722876703924054072456736801790734998150288119236616132987067565791197584660228060564599573929184218088870538260606127222927858946081940063426179422174699283948475363897360233612630514582918809236282422757736868902721377630004299004673940193211792146117393778325478612220204370112206568228224525213802619158260495237300020033083069561624397201307859833817263523899829445893747870572859403975820699985889536006478930309435021211516719606911690988489583563944062773121980506784467136831113799759887401187572809505887048681185569277718616091813370700398614321262104232712965318130506360508428080737015579729717852821622530446796443136212719644236787034964360356481431695633992011524765756786663667491741890725285080788636472863538114379876482088620478946637227069579325140828314171796550101719379363192446026642202742735215419205412577812201284570789790024727362993932570256402244226164007290185890258175958260382853857381397824813700901840872160303813085507731742229433972568063588743518032643598748879313270367391006684058015363374343627088056119350027077065023156813588566069463844627659848577598401596035746125239332473369324558742660007916814554440465902324095625027848414464122435012386961198236408670714755683635490048705615398957915968774310943220825357372040020239356662556958736384023476037642584517163131726313516282393709208472452917118735342827023184766053084938816875432106836763978307753341237256752302952570261336115375452757384683098443100191646281585951765461688296004454780974734206226697847725644971522308129652503073820115466089837231943693043568838174587512109081172007105892768091689364780646909172103119690032468623987817063598867730531251660601331972914512326339461436843911371433050314774184867876209753310965385573749924998243201852261504888004067894913291055081984601725335784768349695772205540434813215827881910977118232892560576578304849527462060225973229196699352230527825667348983509393848010331044273836359054314401492361000534757187865413238194553653883849025542960373351523484137266095615656378871710787258533341999109864770787752276356544955228393276169046438474889278181501544093346190240535760187443164345358945614610968353006765830711741877492243671021926159998842849055401560566382536393929623813874323773788037316192603541285150597845364721067709354417535625440087831290069370439856766565980569966025571025428492240138942190942617411482754304238024023409299945426511918872235726202843347478312706205046999247362960097036089552034848422286816699940101455337451809899201613678272398023440766937729117569229792642771410002923894002770284353619971437473826018654730343217245595593800300166205824549617374507873732567163523931587472071366388077901783510843565775112528866572954247078415823851811559009214264630334501146068061963468662163044246582689463677844912159975118686016053645860400528109187914625025542523137864630687706227554584705464455201706264194497595457956285878004859556729299072018831778327649373243099662989611032713445274879271504495393030848806036523849298573640371164367461017162274837518095051331025410547728082132762213059462454541518345507012492414945194778817104893047168186881031681729848223917347271069948044098793160958595487965795770775618458058830339834263525954242125234228373621640368923683538709084000189612981746900891858722109411620516883419854512219915587388113784785375585396822639566329999930635379288441765725786834754339060734539719418538678247899466082590088284502792701183820078219973099320713373633933736791084738060890708823013571617250137134077442183839397926255617670801059338029067339882142578444802200856846485414585100780029098203869958776803727423381343050462884258267295029579476860371692103335229909508817665375162427397108622539385235919133246860464124945449168674092916668307640595219548006014772108771128081812244885997003499811606811786135033237296006045020261227151267287367130335407799359374283195943074285442139138301634439121597759372098485271387694575606448434604705148388917779078766450887258985461087382410536189946413322778070042068370223103776724941318611861753078503124974588315214108422744071062447317409490998731637708402374406224455459938693422482688420303202435707649999503666676588135298918544262384045634595335929879310047900719868645876782270955798778750174549862504733877519738069178874509279703904164120286136192043074150284314728296482377998351743215487829475250291230287133103144273520761015949698275893978164574278369675069975525588710138624152368609908324658322412060617868904520616160063021704480848379661275509501782325466118733714697549174783257037531278917685209273238544453901198153899328703431576473326250691919398761498040553321329241537405552237825860986435008741885876307213555335800854112608848960386004299260690935386596261278668531036193801471950058185107811642345906214613548481743245704119937391621316234583175571948243343441420201254835514917172535104071529161705769391656707631075197534805388985513232500508250796716101106105057239371145470277459658044138906552457661112372388131348619545664619312931782686609290796617415786441533172282547823291296803316220656911424102633935651863273378495401746415306146064775660779002844252164904513856874900820409492400049409102646338118061737919687903859657955593927619408104135729017419626004814453923866639789188317866094457309234467590951114453814976995157698027357787519010370283414270187876263783614937616257664776813608709006448417604843872940054577305167103692709639031285066401168314025047698921661746998689186242641802687003594031855360767740475771475999930607974108541394945173980805061773446534307247831375332659883632077937437710801486664617543952093207094753112775882247153423938435811313296174699434374203101018065219695610312411127581000172060655003868516379786821161756458195789749770795325774833168558347104331697475550608537637688395450394924859941537447100215376609772503736173783477252173652943830450742586079727253616212200920545952607272035547726085060307206090548973303691981340395816172704506307240987781334011132383730181359820003650803422655871517417583106085124221794451546714544930101016226998685149518449478136064053343637836230415101226044881781651185132863989932189199881367009245471317474829844394668674346003086647788528338349705171146976699750073289158290298063355393132186058747301844082584737789582995342360762618580288361832043159233911968524443449924224036311147477290913784204967001987781547343020240151562469819090036865912332080690952205083574217471543591747606642050321300016847413410043141602871215482727660321473895280643881354120730772823830134434883167325650965011261205003138052507380649746658890835897185020001664846571698512125437135985252213219549798189216242681925790844315426900712230264838800397655504923338922737818331847509727566626177771154070256921436851789495091491303954546495125873052533701947775354137898189343461973054543921870127252644856036558176943678510195962355517103903607882532019745897063292918110500912271696766425709231398267478381609087855032063810160591086501615213546271617686126510760650979493104818823133437049268667280702928617846053908850720142428605427063219975022487698891172005327759327755632295278252843700818688694395904362806622475452728353591854227029545886522284398634443491540670060972978337971185417696106915663332371535110897054535832450636483915613019313207638774994198324614873554021968035886393960008911970329809916075241645965987279418889004224692374201464201778427845854674582821587788869658648441219374431254352421788564372976303400862832240482515775280107712016932668939275305722558884520468510406572893625064031106697455087911230663549109174584725566178250185322447034215942130630573324128134879366585812656389148892575110142837141137675862815458184403393838429945669463927951938462210774376866055218041632324681228194445847076762766577013677881064208943317333090445779414199906455869423261520691110671674111544859094607865461836764918130953032117391747204040932021115818645508754684684543473872629726927195264022153203930239665541599654099870917025486788906577507704719992179336640491238743365266476284421557548105758013648053992970281510685880413482699010636628230135132732132189716239591957492277401751552405388824304188341539188811696206994936642768587111417269841184023189534515271818432127410450766529278875214373497695141344300788209605932169865251039826697323263201473334498892450059974427726473298262459850692822103623407468627159260030956855056138901282289180517373453946133688981602778605727161123624486389637882113067075067215123377759892488028084716972098971819023321967226418849492882927222038929500077776969829155968854451800623970790959179148703627503840525125175254986625084843878546825898318853514351077346892713558512076837873151042447047518535562459154261681840991718844233390774575886931738414705075061327546864402228722981545151301858376451270971309898502909481069605720090534244754990247520862736790453771112200091251476893240791856563314726620048880588521204751529772539361839927888987094382938862528525987630944031384813313876756125943722539893029851875168337975638247929463532286044169171069014605320604908399322843467827102049577662718888239578339106465534138751308084907130012855321312792174173683543286372159917659310305894456040774955195093364001490474098378073082376003654145448856298969274412183176732322451113084189980564817906213125697550710493334385253928669018713315532761830248679155389597844159119485983304853059005328191997638619819533746672290906528546904094243409892677810030217140383466976191813327816338316513481874824417154291674784063063641262595421068835806814483086041658820320101691930111764964776945448132327690866520535407250210258311644355071934928502323219719112577754990551382977413497045038243270540946598600421056129640307575201231962203715907155465566557767814143882686319124053985080121033092285408737431865590917909482696480857942542440943929930888307484386959559421807902472267490446218848664017343693237376549445707451851980435536061253736058174025454093393316341250391243904482405767783692213727569415548455245866438997308194153774532948196155577180222296381123611995552721815593976006231613604524502977782795577824849906777678759279734240142608563279854405840285357741026986772585181838003816675796199726060560289663327022632207666585871715882491786519548032411913550196055899070350707744332502053601743473556026670552995407997730415328368817228191486316059191399406603772049718480229607501680410941953032416380434739854229319700581045054518969725885525347363239442453233787947871977119680021179630402556423802546778164075007822990694050373090204114320375978924813150678058490648551852845092745982643864465265689555110962881579400351635156075239180862578414437286253260293932198318785175917795967623130492041567745679542810628386155654899007068137516540421317229595512082759433585458964571422808704070798184862294212889297205659330262066760793102938907560068366799747401193688982375907974262632626021490784057453497838436140291512227985959438249896755643219198781315915508957998684446002633841717975937794592298209422579736344727782017024387680627805354900896657663752811300206250700306393591502199235572360847940959132667112705333226676106269674591918549653786776136599110385269230833545087214387633606707720920627685151295103126766247026216672349056211087805285050752998075510666682315400818127987162414101602150100325331839062199265063176935862211051062467207308935963898243280334167507159449147460655117144648750691539030628110082618427129835409857759273765266459562541493165250436032468691631941942530840382043676442060809541564999942678099170090695324204880067250961170863319838713899051978500314313654425511240959955463681569248607766371604730813669140852463121127073214531679422750640972802256261589707391056398616361623244676238869018638619476912295397418876493002586302003171456963584942497296473166011244021106479652168700905693276378857567693896130933621487564710078619260613952376625174266383785453313316714261677870085229600265786901796580099886390284467854311966600650738892662947597831409069316723410318448404962270262962207246696236257788790209457583616340348840450893921660679009366170701471725895939865308111813692137883003152351005089720186339754567103142077712104757598048165544937284808817521507524228707459791233942761296630908238325966925428180913564641083038914088434525366830945075085614247692213025159492380181808154027507563201968352415318779478262756864547326431233822269160378071156372026319415543386053183548842982200265976624975320923758725900347591900662817667634644752249135141777921755799394881718694779350593330275842264028505321652301396879539718768913946522821523336440128641970585540412064988869727524759317476568826654459939625368109742942265073186707480035816732527291696533901288732936697335299285620992916696085107514779776851744204754434319463390172319521329620434665823435301559530747981994216058437125952255643645753009450415860704820735103798313837163529804381432616490074839338520446719651186746262632125283571272446057817485748981887954904397629712646099103031240864590459601509377526434144986372166357841996297102547269225543918230396396533792783725168367918958135286019490341820201644587395494635635544809202135775181551113806914661267835371944467488553721648853895784132362410526976116558843647859852426710848151921792993649014009599287861939190004959315148558286781716587825315997061710894416612782377951764747625180544031726959624332568649495542696335196429337671628048041768187197202242746646692675496473598203366356168483775036778207172602301656432202116964430262148709476970438096294726593995476021964669448681849126662365345152097204044333377592288644110654553876949183191562692749620062721119549261510101806474841139147880234198076944600873446195466747432692050049081745846199669819420860495381504989537538277012293827995675012458797848285899013940398255566161535667698187430611687175281709046752474167315694778880095453149277508493121993580193859631070420473600968620587568038984467279533601614338918295526784013233153030243983918719266559114301198887886599977978973325610933875162526706402351906923837730659179288506111456063229881393299458963064803264003820540757165811742104491280884961337046738903439210316905435464818553305374389201545263776267218827415545363323855809071529558229920109109114420060779830574726895304007849730696545380561421042014481447644438923839802118457785399104520097785978246642496237688706438122512542956044412676123818740108560366446750571105570037027350653500338363309521418056677596347646717745085794714861006396336482674620314914804306591263468313253935355017462897580503757931873067377847816168300408154581318828719627426904738285600639682719589594795241335056492467383798612460815309153255183413418895801802131650076994410518683597458378997539956008645571871431329173704043677281024081931976259806320341449405820436694254211115185964749843207294890637656988439729933211465174024026216373375808192148056614043669369542025047474216669043772608310255521993818824445162588189522672603357456479350237208439975767786379833997077620103640270948359079215345363279719090999168241370999650425151691133577352942644727280728757506229643879965394983280247717958513435727718600343997576917351844737492788396276572000722594827751226856525043372717847822003011185092626397442914042837587108883979477380505752751160313119506173537459048231026940889912196501052079940187350937072419727218577824288946982619917641187078670996591506405158682393421848925989803276819580778799197857102908312216549768867054615129493214405957518898237566281297183280471840781802136327626402987519985510826320077920544583885589440719045593511111735021387025654355758664564567377529808784449854589269566395527535062956545348823181633676458381074800732606523201595214297741900327885469172994474301627974923368670938958274791464006205039553332063225090740573774960285672596239526789302049928458725058599212891939544936389904326945508995855837586258388657358861139259571332889696894681453259109545949097207892592989692316145126705918125210456711578664335856901600434349101212445341324868259568397955876644767595342974968259766328097346743774912133709529211235831885831711348285613019273077671842263883979624987890948998554557083469172161511330562085332480732704364524033887846266297360582827715584476701845514719761271521033855222296014055971724794209719129588684413614461363205806300241745818443806929007374706532133136223000234736376928905352990739610748728893139496609828968804418156123847989779131698730903966630666067103755579091447368926296776317698832993033612820449196744827385106132720496149893427116499808490026635162495676836578544996137606854765735162535944515876294334617294062295917022400815369150624123846763582037883540251348389310171717129210074934420795271969080657826326732933910165462993522756949932568370032897130499463399479368593238456930187438892457016746195189450837388227719406167752932269883198405793695938628829714350435129741226887415914399495958833633781629653855059006363791911045333349230698217194784831469681269572523471514113445288901025300623085674509927267439794908880007560193903360303461899151441381215549931829771160490819710082773611162149698562721668317102461295904390634280543917584518219727717593847948069233217446993037852495223859433485846831885801655026316769160909868917446469641292683084445009638330447821287232197440483301501802106085989926393781657826623033844634463462838168021347989404230962936234096517262574672600709370156493444039865389994210582141302851089847894011595101334559121928746074346926261689694453809694477965103435537363472175509621434400519442631234252457988250868261378252022930148532135377798867466330622740385031310211269270940410328593697347621493400345753106587914767815255580843363230275756945345714319219346011684009836527389810482792547309043051697605511887664057831423081079292565919512624232150778905561447288944908692819637870893963873006408389782136602706764290741140641347865331479124172192497764846030214169269084001131158559111330676748641629979485121429396488061776976038306255297070139297952510976885252330421874650035902573391968234484992982537063083254114597439833939490840380471222790228494335852084162115553638232989215133494323532101487223087615545614390920151654781898786904657748742728638918911842701087324079244304518991285775138919117258055323592518767449145773413743239739119017605638968838108912846653654590251800270622944689186363956499413569606576236150113024055572673458314021579298882643656059017315809944161723753098305477721176032901812701304818025486433867151355636589096039892361482377024913421888800633125080020000129054015602862715845890150041448352349369499751242752196107019211595053543160213566202371881171867906119563241006334908735236325532996494039743820613125587036919063802839232444164259239517566931131313637179809732173202911046052610449190744797953987417724071841156906824684013853143477653383767593658455833762838753568248569797704115406783841841485656144722254411108380586347161276597382744032384701835518678969571587294428449983530435041060023697061402187812261462231534559887003260933620088395513445610750968031196294431878686822521024151117857108553451599854068550789881963097407089316164665084049099675496692713474858158960290589930312765205558695960466707335735883120316475357928948275980652658389295665925848618838632606954205012378622967285997496364256627315054076627289295623210520538813711041145862648927351742846622817275094763828298582596696984265740356184153706310751919526516065397794142488625758454138010156902866273650360026808627392454087150093910442503367132540371102409383157338230460452160728946155947348136911031908114606106892541914594911468917131668230115629782895419295859473676976811263661604428917076834066859301380122249001127517312913240330708208161848024027935486140324021717610309805184975222101548867959849919605268766263542737965167690966459505475340773639838809921838741516428430362968174079848852319078686425621974273096226799794333609390659745782348421974630482066249363589112831691676047108862555537637017124259560609024569133810413830631263246524522143009271923784957712673341174639929704859563123946258454827037826342655189659012435390726543930145142634160219217960148698325165111965561528531763439784078113642849823648424138037035956680427875740978769041755918810637862196560698343948288226586753581122163730330185030071900973911632278568744448852755232718696847115506092321486463343450880691445239317290233785506171567844156856284617357603940960631076118083270592977552108684240862586829605577224093235044164537745639338723850814864010399712550451375242930584149524841420943842015601657471925687208333339014857613331827873715948844828469654317051563128114382829103424278240153051299614932164153550905324366522907495760541921581135097445887247610656143411344535502804718243389499477836033272132325464395377756532652444114507657603310822959221734502534287206908366055387029233307446089073774978497736559529254341646539554077482671375905406785069571237279269875018712557259688397155744829928320938758171131022143113207536441674578047175380997664637098496222351224284912198606875579924224670432866202269200589709795136181070530257033312729553302031284018765617590478563501499549594937951501376971668467244505352691663222789001304621554574035571531720940469587839980130018859932271077666676538730819116110798088862668976691166139003776133563616415365659936265005100084469575351296264425005844990500328995686540513924787009904081463842104386615140710970469572398170865006495294673546700255242984452430891362373762327445490277720508587723458558335987312506652845547469438239783484311325114941262316832290290314390842165999620930997933737777552977435817565675723131226007846316553323302860016542400883759480185178861597256691399592091055832207462447847529604511495453800918624797426998986333941679425566899819277827394372315122335262876001058504697708538259889926904683523272078385238348144953601271408183509194813416465394851017548612989670640812574410559148177287022165915891885043725546176411446973362759626509669950801800661978104114309259953049894891229905132993277793117541283439053528080105872568437490837882403135550609760382907140851719368743662990064705215459960011086642908409422174907038614903783101671293153800285735655334929527884264052634741849515707315448184086585778972779122696690737727496259725644473336365028900123005009389528295686336146855841335036862686222730735862062766960288623919016867121455528033080806463669059907021612213843141627239163382279745579752294449556766376882812691811921721236406538536953112365798036538822850445584382308608993321185120775523730303678272806284227834104862619853037871602625013229461556439051540424639386019468630291185629171000750534302619398197627470093751232763595064384427651552344015785220313346673745824009151444694148599745545064047409916168137854800293169982470261242539655548026686638214916109568550076940543753920864275729368374645346711502822403707338520211871387904612028244239736695913267492550601385513812196010138516978743136002038336484752217759047161115222384724064336422595054032187353042400533394858419205979751137003050275061074208916243395486762895761758395727178918260940691653515596762740615067097128761014621299074103069668098154815547016675716069614820216240460583049921641989206170543091863344339924619085971786545486373662631048809627665835969893499172356092849714434934040226526036083315728071649537182235036142872339377163907345325188935877577591920618084341403982070710926536216849600060947564380189973712413467933895274833709232881065981966452056545034109254335170868464512712949554890543353674671087160267801377079354063610330447778502603412437496821867690037854607118974243905700553563178301616882498497541205498585423629285136465913249084968794798319813727360979089016476655736790167667410243161816464887638252870235429470944936628454975240572548871183128044106695655575070168607561164705717765868210678177281089623348932963005628706912620763429408803516532413827538656746911406531932025128412173509982772131750681972449801761583216480774842967607979718124643110096992036934246309102290333278225045635945273972874006798576849467874591523208215613179888983614480200166802856089989992134007026476302484809610794683976103932825363339287029214441473979817145150801456386570412853571288921950714769430419343481798181241617842862362120452889915659538767306615974033803775503774530039756941309739473929558743895723495666604478922947764376395015751381322828647854923193712367701954552163023278671618649916921418398289954813271206695282816745222740045953994929690952376226733135153930269627182523856840196862247430045082549000228431386892950437281052851370585701762691610699379890891248220642170188967980599352468063846087440324167369981484624359548826610829463274085955543807251353839854839474830735911586853749734322369492036063732727635202895707775103702315644902242695881749372206001444658729013764672806195981143796454974371472943098836108289133128294553386458720522384694476303835952577311185852757512093402225947624773184322744650389298976761700169457932798422394476650468787147548038915978459587751738185001202073338356448098382611636411876687818142392507209347181349987949584124920975733201499685532021453218370601738837659028105745628906883256586676940106807085116212069666794846052169615746776151489889058662309116657029595662890937056398480188003471233929837639291019707837502806983226371779369970257298631559501538917869915665253202352470520315659108686632689409557969343707283517275318769183478277814988300306070526959238307793577956130389206454851795882815750829717539996577185683779761630081044289710043904010936924523083545855753806812638038227157315121374230273359221119687853861242173100042878779756108989379145366824973268066521872022680204754703967769085799776163694038812881342902993553069960527932607979880154209480752124722492827602159197084432644464720652428119216979685353420412356678340906930788814505452437183967607957372750980201741686799897819682473642205518174977080194461208398576896210361394612080880764753787242317279988842988837922331765305496554481339666892542146333658788170413646309794573562814272297227525993972614727016018036468183139297952728358954778591347084762581441057996710851178662952578267547173029432111807673209469804280143214281331306004116063484639022630755038841335211069427681582750185726701305484553827162541524175108925145500442893317695427642921112675054524347009547354640757800292662475281453990406513593448768336308309373232971090942045165828771771203374867968413895802575872784719319472150696324073475273951636778684005436698839762194676354339682637823686814443661646193366211790825304796142620036415661119181116124028319894904768653629161967624850462389781573711690239110030163380788176815177016350268569390555410505172720437879384014490765910459123833210624115071055208068564943950752434817340318700463542493953012089494887526784342572653819911542137822039085113905912895428073804354256313589156154233530988919052536711801051612245851995229466687087897796041742217412954114848376873877369544647809077643917175394878879924264860799671619638587119850200892039522156610100331070760788340615068028449509590851115970425218979758016822471968285909812655290986770001873035708189531117853609861384738134999995490803464550381183114947914934147838870472325479833855377414722370313809967011266329023495819139520580760698902380423977583950319524980976718903130570981475782742349923682055526089946349583518098446263003619525340159021260931878965016009042942338531377875058628016557223445146765399912463053841064783067545127175401435837385243042592689339623135107768226056321591387532619068758436416428088367124899240979817671622498855295809353400066575010058011809272324266163154577213354501057690701046353137891804799660650733868151755042447220467183109468523199394473915697979529064114707286337013084632418833998056406894397131679177796388758299169959598018672032909596188614494883529095826235188079624311087506192757549818645955932246887745647641722207753829654585353544995904866817026826448270879655912412369744970459063999713209397396373807375521820890288105081025987800774837880102021821215179220249429242624887758350371413271963156000257834275236661127523724947610819132594699315122568803165443247665352142288457389964661253294663181738050226160755472245350067698458113194099278880016365218668321579195610835076326694448399908310054786938322727557597747785456382737601072228980476012613405976692239650804580788360112961565435971083879443021513724849080390074488607614341438102381240597352118021135521151819493593903348591695307799863126447986565795582438282623682016614956842766203608105337976075026308954038585183013567706988471736815337711796274522947593170565568381361843048243275599266513573222094828031309864534721995094587178741191766409975587799075918325819508805318361544331045765937112665528505104597385449359349461397506929310744786360338229584025823259454128203983343871476389346340739722501715640704570309042110413491818342986838367408637128439377630250510842112738209643843630399850245860971924813420569675807020829244352222918830734711887237915950247007224761513049453604745857281643647558786528259189691542411071344250546187132200209016801548704059791186416820346282096875850288510350952835088794468821308047175083657892265170646639945448412983444796134143625145858423112088587700578487361395460414736047996981231491402226670465289507899630542779628703698507457929518182254615175357868723576428755821323048611299560322134362725359542052997228803055651681029161154572204336683548037004242006088716891649559670809511913817727966114408871987806772758821775152312094810243974515784750720244766637433105171394628770510244023906504226409644529755745418070076757022820376763766203798643047255373941199892034811376777128751307368926683372022341796538913370811686366838263802485464717881800848991001418560868967510684509629950432725475648228821358673982121542543722837102902789633464108275310545769133273526409920624346466780936327283918252581280655171553238945491907153456688234143484367086509694189729817531726322306618427385059364284272464303873850750016116922154698499989547765041411622552858945976147750290997168662669298696887696841790181977742726646622287387900856819341416754581159371804847714182611324854014810006179997774420411421683748278112197241017635800379559022073965769278041597602288212960328716135952036766723087946726422547706381984319961803204583018686465895150844124455440688960042820920740168744314624844162533246294496251197394103992666448621149467453181982042077787658092973138413809482380024137010575547215783891369256258394841713189219064915374172408587813107659898949520383852215504296027521135432176841463383410949628278242173890038041755146886860409831337621771279824063901262175744194783207257442146676430698348619660774701020675692454860565226807343030896084082530983711968175640961443981767299711953031907396553361868735267798584043221021435629202127320191517887917015072635143889234068582599066735998832621901353340513493843873495294338231529103628100565486133532261074926014173054457588621626677321802055775188903394744116581657196702053520978632870663123671944353199380866484035529197145720250668476413783935049676708007125840562563553374667458543775192805292839121904756198337637636663914079509947681357531459676105959807675132032955295889570262445462015565373352084072644808184698979097717831239702146323236259022249019566548922804733862491482708013829806604550985886020315171323581938390321685346095731055873066914332272141683277483649101040561307886666296481542764227230621544719963748674104751937974552174283987113260875946217878678729311339087752019014485930978656423646002304202900287706348062822261682395186675666560979857473684214646930097620030269024672150474505826073195335593407065430134721689157867425276230259158615931943176251138460681203369922405796593326912886955214657993062636370289131452025465998068378730109486076680845870618700121803968325455773718416167435606629629040377247549360952430263073473029219949275360533012680053939557984848965630023061912375728131874098991871820907028444096052768716689839680251362463622449170116948432719337488013536902244096397024061630483956569958725562311357449203722731671941420712021894667112142023049805173715613151615279459598223650245054475013689275609555605107714300927920122011980923519122826109593473643092285377928477576866852462154705964061865986403178180487791038616641779859654270070375503346110821139254069947009614108426466408688855081825271853249771975894171133890981774063609474600490423056751310307748436248074307274100742452214166946130730119444532655065511507934127723270276640045234534544176577329102785829604828394779891259371011858400198038764226659397222774623324604493702394084808532139737136776942014635541342391350207668856379395645043303612559467854357462170929697369495329731188434818798525557209000113609666134867649280356351257156299961904440414547853689538440152914753552761840934110376688898650579601824104248740259612848318306222785080000428579185978798342547345395480149699868094132490212110340897562011247727302065895415088105625568205272790783376425922079416869538940902107993446937577029953189927859112604051374596911462062912116047377366688336632356810573089600404735436288956054927028715266651612883313160512865252585089093745376926492249642399012473932456684700477336651787500676672639332222436774555290170432844831421201941979492769340271338922093705146881560532879934710109567400551270332612167756272249241644625143121468217203882017879362513347044035601684536208279946349183877463298872726662082824889823828470071350342145341601114165912079785249283454443348281559855122583829556640986866796231915355877275631926641467685074956804092939081913196454823065971168234779239288279080246979005953462146875457259108425620065597326683692323392207969051516496779653098633683669130840493453720624991223133092676209652442917870494466643503901569954736040474091456269658717612720152809885334863077476874247522356070872306051840239555698116859600932129110059520463822101279766256654138276819626042710195294734669785069298393002441453106751559354948037226019900184199465806371713099548811960098637884900770449462445544117798689288747892506018663864440738806465248510425271618122473338479251859468665967045593531368959713134858442549158301131347007762637865212380938971212159423624719006333740435023993351506051805579006426184354602980677938456321765751409293990500598889517619507809273653866973473928372819365003635137688814008164350004102022843629471152795452882073616587746929356444302995870415264720404201162125375641045085493341103446713842216143726302240162870841809698961179969227256321221962810919872499952821903924715420947706321661113775692730792101564916655922357092987264892813608295946517468980659309674276856783036214114468099441785565638584502503203140674626586743700571485101257174137052017581205055965283051112650472750033937735637455817148523550117192728821568858393504149192646353400061319585202251819301521329197394236634388759331360862253380675433698699948678491608354150046171832399308277960592514882011412512693985921305264045824720928961129981018377475153812588506009387584368389362877860957616181225661449164824666288466535487407420044396719387273829391882952886717051672132515094686575923150607430882759101296100493711289173644396383904442436532738959400957783612652166835209210608595978124279951629989427117756385695003681530467020568042376680397086752554189420481553977843167222958428008874695260910835658460750599850259358018728657614664142585685115194487673652191530690401151453261082930262875644564246333468971382041906626865938491018520160455323380119726178402518901357297664937444906023571409998428958962634517055377865541545158342298353116118899151139229138729700674109261438212446094090894614506154557709717957386119179562058990406557408891267013470244901454070158445161795668649853622988182259710994043776306369124534618118410257478517013440293654324705010516321094680587224288474327958194433447956872824295477418900163190008153582595183324652209027968562784650640126226770373907781376232293837773225574072366939173676675830754050904603223374748142632664207713275870046521610954094707761261381258995879341189804991765208159462218720123486422277295366992427763944360547684098476604554504180327215900481827844723729976087720297035401681603119309337292899016172973941188216147895546564819935063161887889871297883580669843422071414584306033689249171766727997520283228414910435913564004310623687902799916870947257902959035284719940591099108220509809870144455249091699300085388247700810953008263253487179407187919181009543416620291454744258207833380798893536687290806816189193877547401939735762989557999356001579054976046024381794681877245391732570731636786923694977218422386767803563926317458924285131830578997509174394054334220362605471332587876461082498622076309176463601163662946367280838869194773084198336112983093926605903849869490271038703146688106377725563244927045712919370901828244501396234903289025597724677041190564714689886555928117843694477020601819217640754361788416405841827216594251593874300909845885382579840456662511052543939412455023077498083641948705742949066129707442723536704482916160029521850299890619235084734688253166479580596735638319017685175672397595687893277758271939222206758881253042560486971806558742010826505693174399708445119428210249678673075035588923304757332399627389834215447099545937318003007274551303436626791081940726421540072464008792803333309455971303483916454273655305894674239276102362482266078435340246659757928583917799251014513770892115593185604552499784232990026435290851067313756070894781395331819274775240765668208187259135204464006242366049918238066871689466874281401125522944802939331629579393621214088708988620867144282388074515370534018883517141276216596239259170775208164129661557219338191745773608313964791953884143266159061925725093187670026202832478496145396179766960006561061016886705587969984954492490218944629429938659070794413284220757823039544231382260933091217467027101424499737725642167046536121325561085910277296663901848258756093832799956196106430178267843263089213670129293596775619546230108518707764234938295175751618065415069173200175388059979531618987744816604268647184857510322690843812988575991588027723367580916512668676942415828498778406520520839495309965407467587570106240118040301062096985553971023634315174157464637820402698851597933315917667478116323897471702631452733964883295158400040243520585290506232599046092997487574053821889426183060697464976400791231894288013579526495822432417653486890769859113523988542160241160823950444567247941316607364618956580932416499347783912447592086512656922744989758043761507080073262963796156221416913755728957440909237135987189433926488372661044507759345164185144928177633648231181119734135000287258336009162736314161321159697730781207030184611503266418079756500431953853077703302277112942234951891891129403002352893427298516882257147227658498853791885435172500181346240128487961540050226408355500852540801839446570873168912908780665321706721722433752756293060816156257585822584050245600143899027719694558203947290740649263104699637281559736994751429577842195182553840962689289597865466551302427015707299905966432441509358766338408763660868166046613523560770944812353452879322611645269134213138680936973859607066131177221550252092691620066342043343251316662617942699960511466277874400977968370160560096537569806527051927769377482081145736082625744627442599724853114528192836761800477104035390104707491673884278651155327707870472608984353709515606715653866779173925231868010456454530386990880500689610218661786719198438740823173835732004624714804529430826341095655007828267474209799793375660423010693925138604664404638280567019277226068748666237020846747637306214439514696995373440302480235939019767414795298509651265708180786626757555214879468213132253321573541551200314163909766147149693307548470978246623457230901719111731039773248980336599306226967509644778723688789598904922465163281832153393633658868948426432509847296802481445508037793044174761253245319683100191575200281222194305328211237847655658754152930702426149471373108107988336403715409609091874213287335817241475354733325943640904670022143149525145764412503477285095909801137718847304861238289224586108559873009618525143213890482379054812268314212937634141375029170503516126505214648038975886696130940674110204201295340468335115389298318860744702045316908070930294317566357146984998511911086871524713109175422190582236177657042025270479759768901906530376092351173817582421938860786894496853243565317549416843514439608670299381636863908005949766433948747762477882390152576210922775664886703710347064793569295214163382204293532981954728801169889975038646807113220626506394450855313398026304414117413638274410939589584536462922225712014835650403425762340093485962023843966183025424085050724380563965393734948372232479463737621391240236316413327127252678257777428625827297284152105341837901615191387228136248813337063586560149468665494293852651230491559997923803512019847115684243658063121621262098011246205159910072067649547434235316779040999190030173177820882597361171488370319922579465301656195155812720932051859551242965730676664592708829306237567146497470845593679536788061745246237313439364730609573928007789211862321468467133499773077124940399273843515926780996965554472235730184845458417573335129602525913073172422381019667326931861904965750001519397712804887919502934277098274281916104597746486780341213113650547168833354476587751774187334053643433668891798521329496600977714490442180079334588803234358044275027790113432279874383426170626763315416093954420220116927642938490350293012767242928067287658857288021425783261666112602164628268733289863049854638649445685225081140585107512661933133057003151235838211112888736303977355631334659263999009140991970380692483260087106154780655759883173154012162244263774612112500556847730530519244001199363870416973676939090509158991047787359844587754790767801126610363074819227065378947439327037814230119926592861339828660698568120510908862146163020347364637089509826972610768409249318119780772353349710083422726286459758928187553168009753619839188651351347600515498101488057810879738930267564937659159850758485852604926328783581619391606454694617388901560974998123236372153786355454840227288746127916926393247840105837283270143469668373104693835419352851924709289529604885398069278051252960425867969270414252659513288800924137906047061643998705916673845375619861996323825863269037735079831233420730211599221194491557715945427433812605297704495710689610319579329958532524570691035280262016293339423923725649941166774942011006784553691307190235552404521339912272926979508599657893190088981763114270950965028833506396318997835631825917703331571188332650749474924286541596866728050792389837434625025570236426871189134988138238644268955719861435790015222616992987418655676131154321983328448909240180308654476145685264592922581409669864889176643990757102318744238796966972764168183544734778640242321792104208417757305553632966072721921290370311465830772381416768046158192883760347200324095238575632992728806440938560850797345255408931050969976066473294244641412337044533790031258113305549936079945814002668930187882927396690090897950439180016484133212247773484921032055558872376392728807005661627573033467528580554415914297578528229144764459833879144088383115101350941798311501062901696857656413524033395933629710033138826698787426646952961145248959114173138552486592102702945206056858911761377100444594321787353196198475228522736217108977151477535039252528662998037388693202523579965158681735549527438894502352773301942983388958397878784634034127893463060980866600417431164119117703541952725072430387251597720723741985860865764336297865133403535792919851251056524742790890875469942878868207907302652900991881632592752106768885903068263308203936426829098497676051435491432640843288881525240333708856132379924378798680955700673781566734305345949217319590119448556020609244578307653101746651163852672041248388543826910144466695437329603470416051759273022759975663021513892376884793039798710585848990685272067686412191597543092956188452169161986808454554150116154920795353379873737915325917174680364408234665996821491799771866811767525659336265248166833838526411487423525551284629665284730850065389420164022982129687443828210216166880910343291302088634729807788186157361635601863031818722655403336088970969250188931003279803176536785800616398028123856017221744270408993254228470962777231031377763445613992432631110259590643320967265908698814153978628837083054217070321627676917001487721467677009493419137176415694811936748296878153616901523258689834515900442425820234072321335512929247156421356462463130658522413225954973501700267648389718440850250618626082347452505636998908747755922406910897007271347330001063873082114185039391283535638189819865843028874408565167762642433398444021471369055244121399792996843840554101354507125238233771278500316029109856217144711433695064302781406840342071365182568085646427931321549754855544397243799779419918715118270715371462714257165174301204391801261100824026632859955686107115314913784399186666256258997503101538157239234787719402021577438080436445003574258070712949967739312187002659962914801558164577378843697408631711184433366983382288539418331048648273434725728697153709388519353923563945814023844871096092612218777232075517913947856503062811506328882527008464054845116462079022734677144844982009742148510619274698757923861541171277686065133572414220335377533370972053749768717491708802815848291019544470007387823143621744759349188718619132089915562768915465715372869526186184742455783637284376296098396243063162359934456563666078816178074552328786021284908745041395247734793019463954425529277923399441312870556485232860980081370471164097211383970011866512149795714487844724490562641388427871981143332904596927845540311379883184993987295039294950757508300026975920906349278205104242110253055421826656228826074247534675715516755202310724454798446964758692145669711565487338427007817834903996990816344220426885373900034070209193630568480448531626625873363038779998080192165641472986736602402920858279813477711067601088142425793892861499068884694278896776660518611017108754149589476240495897062023787152945639038310421952340427732517552649720443555932426460104430932590406958076998225789757626962317619587167329193685699608924072702134578919172949332828081375612479567775283021522882461520317949427569147945542165645028428297093769455218739115815144041450380998875762070747223745277617170173135158416897485360509432661069734149251030990971940874335659837116569091733219258813590544395637469369250739406588107200421181381899377904151367935130305532243823624448424300494651983182738341041936935716935124828457675465348577447977071419974922817148561009003185430747481808137516797809476443050761577839621289387786083624310623072318202734971532512626799155038268008395428947791558934052754048315376529359755054594755610492598053718885535754137082282373139058116883544469494408895914784337236379232215269971567680072235959544490718945312214148807714887616250277187203974063543116908233789532425067922276771963315146490896667143670068429837182574420620401201614666305954726738900580304643640987426714549726331772849335949289261149240123304700603204708108672520582932602842343729331944173698081364305080313492405384829294136614035503992529713920446938503183603790325027967888880787733996523596645217539598459296445850537707017473474653581558646635606911638797194128857206961925693822911239369872553670132105821544188443333622901864062707382346253080865481083806143305049293000268825997114293986494252917038134060602580039839024399140320033011687460799927482382418686450908212853979545790650660253561273942445520010628209291285405116015863543411190763101050787665742750164155374683350887227559666592577362123246497449885950462868903207806707606372913430496683462604448239475120431591260595281463497968061837916432821935783650341386369971608990954356785189339417418337206417580179214855546856177926841927085572905750639429440795890322625859280312776111520523352668999605275208486982296973333490009740713335972794821901516284458545367075856476287322466579599229257985473145103245492279263396647432030627341292088041020902435226816377087387370269184249770007459337092252620105856535859858550121069080606510532873655577457731465619662212488724271293997679751638867264769026269840639243891086844182673421587131886162902286634090778735601363882361098656885653248994875343234801297946614297161546768998154403882256242952118996560527199286401717001825037930612079614342208567255043710180967079642912465344582728202385235810667271626110920137781640647375755488405752021752849767172835849731693325213233511314173057725221165768387103462350970170970863878821129587343084141596727763356913050546492016606609928413718267775603118969994850107262090582435714828535561808649197359226406465073880341013273694642620717467095307077494713218706536462134582794891265869217479555980265397746573501028540525312042930139044424432592359872099629826356633129016961228388895873743984613880736848301831686939667732607333785564536506931427460087810755616996112536974667944820222293216454276532456586856063874821098264693813011084177308543991419401421885207549970011483655577299371268276947153917149112723903644617230363173984281183103799734367604567586898977149551857191475720932366744200657531512060366348483559615231426544982911271072324186704811241256150439953119266428578305882413192666165356540642616336934307310950635393101016117116279437941648645123989358387197754590785582912115550702930392912359219139104382927740898649767127127811878479100410757537068803771446639657671777914352724454960245584023677580689859226799006091888598164611373350276062847163768566038220036357961283294874350871624566603521409777795337184587329956547478063922873851634320080772735770719942268311289188157389424185076920408762767348620918999953751684335208079619388229818841574363524071337179472465695025241754292677953741555770136013792615422774923248994796321638422022273721241108923435449292780473320861806952454615814562359309870024324669902810152447877207251776073945892492121516235743320085566808746885018665247179745109077722139693741203356191970664640185290988847822832287377782623720809888259228325771229544479558661170420584948020477754213146356134822403064475266129697997938907805549508370485117459356971292100643473597297169351306223533891742102161268724755338030360572441715347881640177465515111494811097286955814240884007419413023927876180515619384481082888628022462801479877758822659032759744806699860537953029938431635723067101571107493413046124312409247429584340588753686308283378014127486834127728495387049293322102337948389860228735623118850412534306270763623446743551790326401245956482158540028082525122602900100147479485616260448649268488365176764526126096810286154111451773661821325300247001020376561714611037326627596725960937549231883823683933116713098018158819169054202495260139848331574986921467991635410614673347865600147514023862430089428843875977541592961280116176833697192903491527753517282717128655353109415988526891363201699783129264387679185001146743190398891830136390834164952445447891422964229628416338331605251647805529888584105161911926166260030977145745022492922964236324188439961240407804103680605121283968605223423503730504547527138014282841071581473975647162576263027783407478380012823678937237318195691160230130553842657381725106269185494716838697407071610359300743504332618639608332301340990738044834123571333551091907900862055411331527518115906210235787648895193320653293172263519447452895106630999324260708049766583661780884921682349364940186332154023134302361084791675745700109860424691396912082470114010157578744491822816918419468434509733983534244580956259430135161362448973055382408535582066065419380865691072044808001057652948353574340287165814750461341534477073844485735932554685916829500463452118588461167006873030043566254781599371133651710556290709980773014728652925516280881915579255289716477515815965309192699967497985957820532161600736421833152203441658248428761657153613498827935418483776435889302895584431841523098184878459297523454134156815120017591699549566237748366830912324020287887535699237250234152791992453873535990276953551767887277702347671177068229657466560277718096292330152070589589690500659949427385630475987966217270614667958952034919842638224270442185088728499560844445765690611995526775899120209248965634004598395905676543586881496188337955804505721856163674703968310935111946096785680553266424451120351612934639245014975722391339874144732876222606236469038894443291273802330405345703896897967686232348863366134944544583243585325191140697651839757085172650685056459074821397175406892304305711031183330803675865825355312396656049987760995282696684720656389784045916478968798206896240942897498124908126352319653513569985009829418447806149877848139716088711974302588123127125513475086549698639622909227783855401779503113123254083451815840257512181152072009882840873512894835159373110168715266997649176302499277682991801715999085776882018841782344152239143855380891544386985591153040369385909441191054562185345716425059873174281148283045487783485942770191836033602781206100349414892337428470151213163133570514236050487936187651140033815982281050348709411199821118908245310581328457830058545963947137603749138682657485574188582979037953801269073781870250920358426907977618254935515929951936448264569138015811437304324955863107286709899902381073844423550183307382432592115240717531329157097066174491195437352789620966928189244348717778744308463331193798768680344134519269990741967465872219470757310920873434006209875226634914498330800011372162092957491078463053134014434652682685115139472522947192174647807897541570696029093469213509290151516976137648511412064669697645793734662761138344577027213440447989380664310516806562187960183217952678806444963895424446457161900366017980293418906813529215726320938694825548423971538257925429933840504607931835835397578529313057331203010764599725503687869974226157151937952262195917493265548079642516991596458221824829509119535948648346726370054427052315460026624731174771740376061813762663790163055593711839828688453855671622941979400469637254727054779637150840579201440243272561341724539353080549784959542351298827337965880577108246976452620564737902831048175435530231986758979561178933844447604309195786832252454618554663100615005508015039936873120860537677755553094539386696993552845023273826241959975644279416372610853005829802257713236575086560665381725201669888335555215686812062539623498706450561337190583891660668250192194840449910564380178305130940678057572250998592500236382129992426327610386460256745859549737436908221947472821275109427744189925935604561335209318838900590009576665075702246305730465280968274822675811651336637278191599394715950815718870519224326994391292321935535405217272737366807390403755024438689340190453434689098550343675158965040489610105021239992676106468327067493323095985061300647176174304550938903201046622813442454737861517497664888071651762641854705767707547517378036596510533465430393349316151676326159511532480772200314616645632538593711355268253224020114023504437114960214598607450229811514750632435566649749504018896308312952001403021473330740952462503397230754366508137149685149753982486560699733730943832802208529314480254907470741338890449145154246734691316902762310622423325583272693971334231889918645778243019106781534527798073260993468552469597843275721231137069043598213676346349375815824784677938583081326841400767261849562160029156377324238030900083072227783360013517342595485754149569335936857021046166337191907853491223458875124594833852250341685983371959247491979698028213378466202732456650349791799333189554779903652398391980859109783674278699667766303318869204628049652593532973350651312569465321078900856817853675178426338545468508493018860644474891832780496179325079794425601798575013948571889131347020346036393401437769994453625876727146709703370459449369872131659833922301663458915857741467473162329796037318928643744408251524494524730323520724331922741069205193253791425968645296206203074928578950291567183528256019670656078003561013368155046929712100356088065353762411312995852948186286883729776901253247668658489940284504151461955017921911076491803568207242094068456859464820007838328288121247929392496846507404516082223932346156921968229401255024550512108039062123550250129729861709433766187613721740701599961783945150355611049279180744795740721771910000165984202235186741329083417047877703992549236582962183436694893772812386681492085196684788564778617190321924515932607947073757691919827013384013071846203018912839569787088973498683536457988118047457138295482892753207638650277924101772511265161254736887429741051739152592233846019466882433410130895903059384415459394934596489393361419996114516255336863363966077001900122173541316327900068801599406902252571759715992951413303376704796482851833188197489054890216407826697009130468228692429685215687544511786257571363844256502553580765919221301058013807042349800977823798695944313757166715820587761171465178849245760254172521628496770404744130261854092707915110314379967697883853131513834655870080501867283369640303019336451366448896134816631668669650439827693163145610853358641731219898839292032863264926212483186721225875824920300976444067208401970118402112060305702628559997653354137645761110505126193275201899589319329359231829641133706691418064099234704488692611183222257838877149446709847255243094828097680245812588280723305680857689292595383469322033993450683713935264506496466816355374932376620184827007149182229023195446534231174611900563994409714736492751249511379571787877792334545117787804950546521526888798320614063628012661755389756540882113518127801953722771497173120279192888666877747200293052805756020279856961750554031092481780781526813645113289245031916000363412324197055730688066620694261388362882239848044142257555543094924744792941209513371625380484098196780283799688685496975094438346503139593486633283915784008509843243806901214057148797910414255122086036721992233632078049873829517713461216710864718699876104330240421651566217963204680124446034574171896495580946957321432499792092339846986628731605935526644068170405532845399228144155702152407328650934717847927488501320180556899052578891624207113782698377804196965956313226126947646216887340127480732788728728600425747608829670540423433279384033210449696350132835478183018134945604301490918199338930868379275282165447551582295315802536992235518957769901546995110788165957510468830007997316168948812739168147344914500095571030451614858290905022247913144524303335912105350183235796193887037107699013568701247146870004708156923585187881588912353238723164557682134984836965934635868991153894885307352565975173601044381262913234914422281162150004729021320709080961996553064385857439852666542617365418471668295641266924419984972414741313586472341879214849240190307315083265076635741052298092505531486069765014974985865794570749229799496112589439987502048276852502602075923990885766796211630011727106607676397803351346537112106087083157677159199487334961096863531460129859554297494175355215963276945511756080149947356944161254606781128875013053508350688891087955703159037891397467599496544870074097346555364004180191700729615559184558484206278393257812110740442071256041847339165863448411315323590202119893408032048696453259461318718168017701504020477796071799625350334607238895945792975694113581984479672249050404563427184347045277173924203306161407056049567970704573942546032889594973424947867366316016247491431560570305061092489583211569338833533428497275873213598132385148477980913591558388824048953537988848907053439426076027813147585897606552386121038236250548668856794917337601453146963129679850337951601798323466698359291156482328974187805967603974340309164408534292243618813601941298224438812506252992718704309668802376687499283157716900417156929856946467354058027554746712722228561083118754588715372973558925680548118476476359258384399840462453306369935810914310951612634963485493559697515846514827904506543278322403530395423443929794004985639736774549118803697324201876049571976060669706796094139522607502038597655994183983325519808529483941302107712303162767087478147113716244973347471741901107208739236647520583491095016046518787547369334163770825465039391212708632744545918471725090685705444213307461822256998748358670697182468329797628493419754922686434576704202570677918160798429061476680793185046939678061857597965798106379642483215585182246660769250959548620113021625091881099132323245968050528764396672942572436919295707875804663842223453187247958558174402012591937978371813091148243185869756036207848193034275332617886035847566827118062224298190170817356184553844530899888218696295312233736144038864513808665068866138638276516766678234046404415591238424884887482134277208006625934322300071868349674359918928948611170351820803850079915395583989288598704827238195961479927355106291033684088810928316235294858801400816706612092529784954024779749456935094559576554396800166395536048684386196025512765382320448457933110503327561043341048644715877731719780802598659391140459976940813862407137283269692006094111128373119850593683698851722989412292302306980593900059913864738728496026735037205827220248547052965272854630743332680757770718160027256738875083312099106262158804364350145284927719357839517709240212585486553753124342620730612999258772884698675701120812490103524908169517123953061525261160878024486784207553927985618079255075688862368515021071429138476499619573151045597472755710959283681524781578632666524349019476636045106811837577102669183538963310058471595174721266998995404236957217798628400540051328414195266982527971543086835796412728346263693339298720510918835845320368292441824447589228459864419080756888043500617378559258526275410166609712708478221459372874788440550240221644467820866467082104411684993519620076425637623221387654785192588321375804741457059316444140270831710285355745522637341968485139925161147477612041791563858476123982710445967440075874581070626768272728435266388695108670149243075157734943144254957324990227891736748461433126282729965566523339119260981874339557668355056197286730270518873305710572606153792157266019402570977286945539270280653725584992155648950641710615067484803897207761984252891630990924967607071118069800934288058775858842927840409272287298326184214648485889755353607403664598767471689516518750956301812339406697099962003782986726458250785628302958491138930270072287933662983317236712564542478023224311674686823891396114249464087351882641344334561206628878118509296041470386314800549050343379769683413367707740575735370079025672311407680755506358229493943745149150677814099086310127500507347722562747517396493927036556329548162709579190043931737038746706600829504026515252863660293239222824301384197516947243726799606705372586805778062634535963287524304502625703581030062038525756146651757807201932221888022222100452625342868957785230692639197737938002502615699421901798678483487316205951772348542664344350280711220384402686984667141884895594656906037542560094523143431683583743192288149460871982956449220622411431666276827514776178896304490386970001931055102807524325218000909077382047238228141375580845572527610982225549432039623323596298888659712856668645316932761164652689075855934346169361840245678653412254396758919808343192572693735461310221191475936908168977007086882462226957133038652746511611460812427268183497148701805158357593239186226654612180424608000814108599192756497502336515347092558117876929149813918609637439524488130311779999163394293531895394692754759371188162063363289330123874614572098907171575175029667701686249640774140531807059977079888129364855161681500783071206610548929544219276994542505650683577191247168421952229966914516877430233541867008902894000453303906037307174315768595927427767426657114961198796563912672779566569204108624952616631593779980499921749392288675433408013515288151009965061949183714826756665705914815848144706194536802201382419348246552645974344906785938064180839550982337457546406432301547081564892555711883989098116267888373431560943460270496489860881686457850386222459478811882571671151851969328689137583880141430326153171068566635611248833290934735375047758160441511986650105772409374883607089191908193333852111745902701754518277367124304947817426617433056950974485468294597731200693586232331024915200358619837791785196376094695901497995864254399664736419162256894037110148201264864200893467100145293751988298972984545762133317434726289261744795897785059617507612402639646368845776844604351473661649591073495644745441574293934433076300624445864789865979557489020391842317987771960377547827415009679883846076478490201545880892313130776018199205326575395733657949542953943176024299989806628380254287352757457304192135473955495934585119997393119515743745825570099149790528986224398050615364138242925170095402903338355776075908743137364632277796842262033261458116349977476183934935347064113682189913583938113386219703688830381755120853369091993760863073292717454382031946828807676220380188394837879091006358852973715068180480739563784050278728845481874341794779516521867882239008437273650789850507649160421979240036479157519428724267314701712981667828674338024577457086278270381834650847522488484314416410619702097973801795037853866411564404600026593389693162900517887271499458841400972970240895439396255565052198210225560874068147277189712331643507363603045385166901757676409197906707859678798343762480584357328027790404839181946835203120680091254643658478719489869229120170732674017741448397573715508842588495896437829234900281170984564873251532389971640803315574389089546456878027442175893538674326474688908359992254812085642200740990009292983857390476129216405087947401140833572188637294101788776954512496762550037556354382322065197188114140831768869355423377471877858254340986667571392385330953562489560159154377208427748811014937181856506783078597512981710843845244124244378855276240208756702221303153725987681671069707064225584200968564071276433858247830467734264549049260512941291794264321287546552176975979143314890012640401783022316216907507995411807335261069552721529802206540004887101727248635836898005375132917619423178092926193263628921600074136729758229558938924240476179405228086821273826472702207722764148301386975506771754767194760742766840833978162504550332209270708389515784723590611925619301901635746151186218440982699842959269140818751076298638934154546466023261773750347420760491186363242311849363027400277831701343024592933033935659132194840633421307648347020733251520078689082966301555020869800875571789035047875982174572304842105969105273436949009925618384667526761810040242408740895794805560534371380755187721835454089352039681264758897278322815096214289232011039981693668948828637238342494123294343948248786830046915393315533431146176546529392526500663867041985845765066445183514958712564868752475731641233105066795224708843327642001402383162769521792179643508509618364228114985664416454173973136747799160712012973074902037829701216787422894549080940419547679537892221967733639811220784620136849984832967468682823340595933365227579704365112267572860143184805527442660867962592759663542890860740971538343542701936647889781050539848879910130905550010221330914334248667011571206528706172707473461389958565119813826184067349448050730513185343969217600106670890754194991612617513282656599757777037782790131020207110570000190714801830684717211197910314530442533994735298884202250011174245485881199655581189592236089419714377095643434362930926937569186142654601860199084804930816597976771299545994320148826643966306987138184225432069328614886827803286716113808234264795402228511673856260348170087489361556534790150228633152597782207686687377727721329407363187013255442358644201291777890471320590099270122910655257211529344689639810401474380417963813843277426678625274847119862399614618761840178588575466605699562082860284938078225968906679275017267720437401446534756105633635135446399411187604251465018385222757981353081927130778093980883153213277196375945688714852185043968596230110812041491770312443761691987747994406860246114711015490837670904189287895663452989542056503726026442305272355645707096814394208786549265411874811568174628924720702051652931182683843181042557147663620894199591384790491208351302589986247977343455943630641035100814712633422867282527198726022903932826296071313354020611084116031452408133837792167273917955000481334543295082993673227658386214877245568385274385970797457687672039886285946991934807766998652948471475085781496363034300242341247010092729610305539619455683083641159413878655828919777791461137061510216178565694674745793067146805156465054064569046036701403433161882335746607413608005217454500178364599656993586282284990877765669852559072300808502262226918255266678830241611973961080689371624179284338637512893297559247201896848586990605437041725661908704963872908945886562009268684027621452837316820147202981175771309098181107769910292625749002282686795699904633266375524278107953339394614725074893336226196485348207078347217368727552600173982001429656278665813539263294746686050366566150289697548059453987989926962216191585663230685481533661467055688344485443254932938012112111365101837904103923167341937916977917169470670688714927333237722769231994315645803704940884218246451569845207139371875857573683662964955598092746547942336760864320152136996559926844696470390207700524649177252066861542006248430686756106899921242722881304077068655907851534076651524900888073442987913624830114960900557527832950720565890022403222875754941125571973705806056867570285218584157255862310126002482993532498606695719234127996425415190195031940874343059859742740691950306469600397194608926777373061623485739627638114271164537653771670884566186856109536900701006571593216706586504147619223563767037671995446303879669167747212250053859682267516016906201033804061355875623328099818876080299348250632601561022445881778862077909505830730250582085938211061148643981815110673728654316134355760175797415224229251329948574286818811083823430526511122575592463241569177889735728041557897502478357959680034602393460419103953804560550478405375421679252232349243093051475356684421344151943687150195647337938582033327094977420411404188054335771804019902252015848817042562990425569079973195476330739980209993932733938646608600791946819752264853373129251061856606061112646832488035309465975778676873518136128988319996908081549507147288817992691639510600958656134397938020074839696108834621629097251045894650362787189524841229409669061018634952849507930045823766222397217732600421766367943648213953635551007648075792625184939842747132364344879273448808200469714150171583409674700518966168404546094073671151422203218697993930057249970355013794820521696603282361511919736478704007058852412872350320338556308347729374713649364963099516263933305803811559022382439891133567666090219441697467735161712562275915602230188852750843183440413282427182389510759469915078311561015481691324349181817278098159303904787818374842617961658305101333163716480580892590383976978327676843950236255083260728819555324696995543423399732270412149640970356613828752205751779578529049898822396615642109563831920559200145055200366265466977177615470677513824167940652918426987781326955009172680475477830409394441696594038063185694147893123611548472420419975778056161499936899440921039964296379967445148471015886367262268568480213929817034675882927608987956991440146779259461468125280560092466038814236106261388957428025665171818475792949711762145437561292259536491804930758292989075728665672004367281093318713660432663774475187232999298692361440815359146448725667601445497493505775088651431393034402105591074565378492781838024480983804051879662599248290415793656892866978164609332696249006931539017681226450835126038102301155464938092881610584474099762152269673813945604152528713341479450835180032231603875925410095717893545892941670159809396380629014661127584895135863387412754483875009054510234218484130929788246828374246877498818275994496602192033910533398714583163190464931473961455569775617828448404592932223703274103721220541676934038412541852280878377361188787117581690385757091476182950601220080196333445489356785606502027832525951322626408345619631839300812609751240754774662098909186659605478499730197174355509494825167729250306284970471262288342783773634338464486027742114748232864786014601256946974668114497488525504074938779508958831946518523479491049549750909903109612218491444168537559596096663967673096972744762031940149623955871850820512884165974133143868505151071643231431743665047425106500864097366748451114904271406070574304055854803672298221420391441178364668783280364219077340141479351464663291429172212871576796057234411566774515207095574589692219996503856852751646971996844882815076230787491178582559650137014690538342637291804002995917337431593065036537140814032337327916630834543175434537689297843347177803101438979511984492890550197290314813444253806099698593351810622840397890173264854581270712181828500914347404932671695072238235939484183892403772895638166049689297330736700810858287969226285480045098356935372351603173041996095777046583778853949564517735864184270162806028307837321736972030487629075872341363458960618446621581600501552141538274119864716690680046938092333675733045598657821239774363728729560389434519165454865439193025224697238457011721195054074211445750534549948631963905874729725989841604452584679419857482825417759447623680864169327004930386093760513111001420855644819546740716709655252052939270671469635559265877666385219376232837553198406455060657170150211607362545980689273261912037549533745517530579460532872766920536214184631494346276926992604206725601110020663327930243546021678411400237315289245837993981891442758720960906854119600538373130237893570669778396269833179151923486978577942943622104272914805246809093848725408014436752493353186921294996130482409449196572184189191685739014955767995959955109126950135988596404602756755057131417055674298256307753141919691717559444557711270321786243630480676232626601360075769211211505932854815733995148630806797336458815648051208514046112567071930386201887286478751387496077354198345603998223763441336088108375073899915496536043820985546887774986631056594768311602917100469072417376313728064521732930399282517903636691519931578508941645824750599438120216345009059029462086009386592334466554099100128142477035534705613030105733122756411344515420856310380309486170469346965873436185548339073281687083868942210759471497629312842046008598537898696243187125215476190816188435649300229747358096478158444514144167649165364391073726215303268294027718247218464493710619079270897387540343431213376130094857033604236885398364412365650867538616585045292069079556977392704446215216107814570889176641130097555654395894960891833233450426124711861452145973006878919308151231434945403079296840915143068819469534402751220850225368384245586587664274252511197540806933856383946561526392675031495413964780899972092441032498796369272833942356685544030013752068810113467915292754623166559086016633134805570233598960405441719719153604058492842299758746602873691156064528775647857803639957481353972011555375201959056420989526686913977156550270351733269006364624974074532238657823540344883401384557552399445001093224619133516945154203524990314073960691917942674620686407246059229115349571691381854973570403050768682662208743826083102717830912613089968936166626367311017492764038140845587723816447954372068696257637600038454663025858465791234565283962719492633848816935251925903622276261907976478107755803854372775017931980432601052134674652400678869397824455549172110775430739352705798035189900052673249819972762946685070643680116072806337403499151897523760891131302113698315227350538897498279898172426249500703401654005215531629651574796423783024874502476183004999257852532604644322130751341201555480845617488993500612676248939511089223564256360017922238535935798802584208673543040841759729858603515332956800396423681755972167572701012227838754908340437252018270628188348989085878353820387473293203286681045180709579416079256900298777099481219231632078902749194583586698619397098087465551669873462395562282561269967255352260548873320119591900976410246068757276890388997266483542662141842613156077509228904076952002667925220316335864423355344653881203893337357860910170432037141010747036305134197199793388683894184304239988207933593962934400363002024348512268371599682762167691216000577254662560658687419389092703390556206459907948092524941916287144370270894047697513720242197080206564211218960143452633590317046888649100016289468601465296892277754242771322809124083651077205945320252412649852946238734680003189551724466539266996594910306636419684005099519350772713486396061152639637390992988718817034512112533546456424050339663444125821128750643984379072132804398427043388129206276342243320994086037390745581433832430182579706270235927359616277900105621590739888672066985524115239837338176949165621021608552634626833476443263209929906099952655023830133642693150700612050136737127128798101860122815762058658051731561103149825229810642189239166114682403667472854254881508745739528067125866040542194994705286207458849181207259012870006390866280831870999707872792883249636969130072878405781644501718915421141455833786318682450801375174600518263814580647827546352172754942880734442892111416601271886342390540910603811082419787895837247755511222948574134692430704680280388781390045116331504839307378472408107166867010419804321018261488727456285640286002000349226256165153038963563865782808826935114785392568374748266740696963652724743059784296734880639648274893875967690957873271093715402739154613910818646612947723758637435743971887049074195772648328067220559851324396257880964385986556676467895979986031441851537043535155245963724455322113328914828890970118737772959348494597590758242880671853185219240470607661312524252164567053106424828196421034935562053912491872015485483405157823899328532527650815944269430425764011936446663762997822554876953579472397934234269280156556057844408097150237070122134578896371887463576772316059631129483330887297531927157386710900586935784677950726973815376674922054182191350862209510457417520507761037760615521803907249700835952096259820285862782443630386368755512936379402629620522007805167123710272061731252398328192937091524416853143404618409402067325046335427031577017008680523579926733616579079458275892988107832264520340634490315598906791177848538243666528967358773429967068020857622839222820570888546542807205860696332777660025137576578234361096179121175221188962821991230739850367097575882581490779236711408378621008888973807920645055195837700329350963226289159803377105165382243706899646726751359174128292806028581778237256234252152207557595795587143157843213648245476426839231186395649410224568817745068192442954016933861412948702176902117602017511091774151506950170242010456715823811267221175777657119297275204851862301081137816143255071034540826802021820759805477960045723264582922070656934609572150979130635098909471248027101592510892025537158216262658723089295875275308644292099430101878352625398267916453579592781126790664965498520629582280682430365016688015420348149250211227407650988943290543750183682048347376227483999863652280359367506921297678801483321499850336974762265521507473205875982946741609562171389822491759851854422410039226656819066094443371011561229573270732484103988213403607837829990469909355842346679887086950332379905300200652862632557432714321375137241484737366109555188810200001029957132552058707677598927178268800765916568901255137336242117606630261608190163962977132344479724655871628033696976489171344166875530836700332299579347312300186224912981563107705583111773629604083659865216334139175426430887572563867150754093107981148767971458594101618732987272185576263998388485482832449848482312249772935248441430007968615265622443123455887158367296558871885686834003475739697146342268603790260451128218798882972535689476176613334958833765418904032898965695174477781968587278017267670773578335237970106199684194850260504465412371814093927522627942229027051076138008564289770466379241554559543655205077937850542364142146511207738607627105285943984135167722671992600703737155252104721087028918923613837627658761962375009534212985843125502817031669892540613551006056985187274683284651749015536675812636241602258115452128451097345411667803562067618728957692997085467291132176842173172492858406141358045141854486099252084992315160928081405826090573175256169446132383036625010261812363341971082847972805967238804576266880117058108462129761488101836639980482303590775472573054453213398075341699352574769954578942679496356010513122331889965190686220249212524750353031934194290032404248509755379542440434699089378209838990270510326953464014205271388184264226756691750691264111876822057809363216003145447099924600354793301655135826275149609653558522323083040898340110437686844993691645263875260961919700145339739120206815633019988579872746580526652768995300998449192390163555287041666133807958979208389985509353103693495944530978014343282020872375299518198623306057830525820673300290319485663888110653123363938917461330807390399885940955564389988170838829741291424530290952783553472011810879565502730761524575890660752598711479060970303734966836347306940554665181519396277288240728606519424851666461214382494931252124080149230559484577258493209294940577870847390640018310298461661668442017264623676462164077924077726713239140739860921646201109086072934285691691334762057051055559487384211640314190769151179573418010901014039090487513375389531801581237965202701283314283527607276875834705105037223661908688019522697780414414183171457415024710000131124895683844385313204349339673167378339037379044093151345710314474058853483835651051718059865931395554689031489074867335068191617937082618638779847273885144630990405161852755145640642993934300626687561853635509475473500502623238084202281786784608334601635259519070486922898923440584291576221608589248473594314628681816929972181560724296562446929200392098773689389108324411054232181873497760008494011507154508372682739741803351058047084910406755435117608438888868176357298878529305389623128346388844644847299606893074158008933850275988409856058800552040415291028941634209569333727701194248736347538104872932253055968397574739916602784164121383716371493413394767059119746172218706612140304664527067962258845449004597644498827242919200385197034032277172739784972919026907927154656403700895591546237768238466454991324126349113211158495721814379570651841703702683043912792975999020148178424608334365592430929138117281584196387384052994106169588083322133690514961288250577063681908927323145371991061149261865259596991348944478031770240724493481476002362822403434730934612437588825990983350128571832375049426895997382857614790557874129234628208684585383748420383299874028963205899407655604416824113442212197425717939100800246280074473359920575692979026900170224213361116020080640483925319686847217036205344455657552270101076642478950905458851721479252950238200444194249284737668883082734846986612796495224309880163174400884806852282204912456479835793552588463979183200354092365237433469116282038913843343032668964032138533097698917296021364620199181956225077364710676573906871833394426551271302063695877337541180364992518878079854162654176525007036038646967505972345947685151643675591160035512433668947594081956136036321755480697773131534033937708982185062400050294755440589124243450402979976867543528896042937643374171521744146913149394193868124697577717402538022308276045386006967867124188209597705670889315584914561260228658781848056435967936416952781267222507353774210557286253713640581392207671586946328119789637150764344277676287056527668486062018430957831964626380981090232171230991104626172163860967679279449648023044518142716307326357465401235675657224149471303566005929204391506514936217829173051618074473264375597653255656191601693253908806825124045469359004339495625447805246176446361904734301942146390359362277171768146609673619006309249776278876680118726309482488074591044636364874773295648765579866141375966610553354309176434940653311560876185069816296297597509525472216271905402650739602239098888179126145991319793072790123174705047649251250132227371289708167469741180904738964006794587293461852999236690974855568429138112986490817686997300259057054306761874344647443370766121998978382256097673249511297746199639595469943756127868732170089082553251342433027458741269289758853076314149122361545903727714779523029539604368555719375407100869882592015941509984751502871588530620544785770448037486534352323665155792099387272479716921102642432330420775554030555216033301592909660836329891560840797756626334012449166420672254055901472955096683861913273469009576059947188248171535856932850522812614634325788376254007115592462160292017299970049049977887199866882099125502583220962727201931132957513867718122996572883660363134363853815480838061509148584947720131684687535600999836179035802752230149912150780220419383719877348442593730337034983036522630598840350611075246787952697162862035360657570958897057751608979831831647491583542858709774932147367740545552611811919161971986486509001046726492621734827367611496027625565638419452709610444109250292975207442496094019559333489215770967723151748535203025441564850370431645461776662396769786019611640334056555139727067855157209385102352393506717744026416782568107307904812681572865325287930559634951871768559931589823739691736497048987007883946778765400750236679124469180680040673990401438236985037538900507486394236282182901708965230586208517255731802633722781174061122273622371061630134699162751669797977735246379001133563978754215692744317450730670621659929669715413253011387704112938186819741755797869675237574684235060994011716624457224550459812096520595327216364121880980870829009747554625431456831614973483356793980552198423344263570759473090508739696909936918970944246470429643319646288344780072531027839959536314791319010410349706663550611914547801896610507902537559359624318167548852836175192339372959776834814042882246199391019171181786750270593617057204521101750247745742043674756204604270471536137964372379308578469978288785375688752882728052355616888435084416566550822171461092272072488682111152393260113941676485531415846587209537238836181845061366598119829758954159287461655994956263798530369712714704601175110162567815681369511389762847162182011539249903671119443749967637943837096031620592620046514217510109091853160377975853800995339897867532716530808913726451289863007018294719447971156256355097183832949077769404309093929914247208424165351165098284414744604002501721575542746678321128913501630077536313679829385539093201505917733244883027402416326373306250941063066104354835655404241881016722982314425292433476522035432891422166559450335070633572348761269307743408974498759328007700164436862044125705545557796928598938993476058795568145202348801773354083372956117307227254585459283752832542480416165552781261925499778926325199765281308941938480028532048963238438726093933774804339942359581567554844772888845912465591850497068940039041100556113871968348862767703990094832848932957622403234653550903815706427775980829181421452157477611018238444528695387229312926217287864991407744701024767819848454468760763862188958976164569738841106910283449504307231001869322454365632595293211171299289388081370330000665361646003285176428337508938279120102475696729364709163603821404652217385516452254788216279233084390684772371139262380942957707395045158199852496715561367686874716964563857974497557349747838752598241722573175083978833436150435460636334091533606235382420425623670825739374607957804054621547543652887729978613688644991227467182551038287470463160121943183757438951187169778969304831788513857675246933833189437553447359953881104090851010376693702154853412978995977395412636633512207869667844332139148023893410094436620212455565785868941762381610546873285043738574817161400936172601905495871119256773892906103229020482370153693311930468145378703965950081634230856347009402018263966744493669261261848003386285864177137366075242332567086564382622605170659114399689556126384612026193835556886842768929496069186110192086444380493312414468342095127560156274966538725873357084614048620696032005289725385651678061146948489434478539391161785045470114464609646326486323875600726244126838686088652452474819588105317023568723327805077361840055597268942616226691365668488207970868170445107365372353761018225129577803784882885227688540768174222456366031262470076629753723172812068339373867811713474570319976110835527610364369221142412010884684224938473381372381483724576687295758634266388456653186714317473544389837656226263163024295285925567066197100050032028707058858509268876505716940944425490666114292378138119835441925579063272260048612474076545630518451747059317503168776908075680293503842614966065399440417733709629598714031960732921997481804082612491026608072235147801801472044551965937564134320535068008352652807421342657696298398586985444205895142732697332116293763120330163735368515632517048899896222666909436084662847882529359599838269948165234370012255494939748931676173134177948591690528355447263383354027139852526799695419090726309434024754127455466433199002593110333145845908470147437574233495055937787109463971506038947833441673627421359318037550730780586020286627835064731273265172019841328574873328074854693830144184038730570716646027805578370573208396851777224111542011706214004207158243959812270450992578581313741306008888212152505536220128678986873264403717669863743173335118084159228967079321065618243224608736470646629984598607648689217011946541200720248543773322050661750670697199870909399862818996979187286197453505829223362614425322009866142073822340381549029966664202073464226525056426068225806677123850211714130063239917655449552239238030890921951528405635223641319709206197442294343584111589314927528425036881364393049150703105716247314455389378625572420739157949775969466322795766199709483802544508082639797547092350214964861196561774803147934224554511644644226570311286040405555084848914828553602091793239092296873993840203405070428769627456106766297942493844265824433904761735534675087540333133534523999377390650433616066747712117943927819908129406001670370249863091675768593564866763592981795595413485622180572316949100496879572857296861736359500272461647144511748885128081755127559927178824616962715681318389963117983638833510463019327514047860181035883786741140573323285234037952313020866747237647829414929205489973545699433187699101989962843517094939789317251188999319230016352450547280216549600049782022193729374626126790343435873882415189945371129524810068642889963429709668178711234753682275730507440217878265431886325390183754102986369413279807801887341597392921683307850398815885321167587793272275733325827395527021770936887425692400359085360897082547287365870129666935800552557361795890471359030737242190654194187273582616692973856442434601334956205271694579440744892359301222248389430574249230477546976089807948006609332685227566673647061733708847237086558676401515779422145833411104681807746678417246248773300432542577465708307501455755122606711791021284901841920671975639552112111083978154736143902839236576292525843880828047201379640766599320989938269807964725134172838218470021954995268406374221600452613774669473414388399497618027619358278797542783605157473544954372377160946997160535246878061600387993470010351435178495628374794438270034549359321844150090967850334157470601625354585648085910681008934567618997026005113973903465630059660200396832432310226743821156111579857165383726735810072637525586871197388966431672318389575712081072399382369925095883907733678844105711610574565922144519704268426684198342567483008456706165753162635656394191460228967871667047958314822871065470191424505836840556872045279581685877777933426909632185014714566586566938207636003688335643156315077733029479463190798233950893040456743432159138302380090318865483336176316191462294930315985829606557276714890964022299302921965928026132937141698123110999266472693713246963566506539871385158389282988518865599795945471138709829434754522832161505332287462514687269277726365188850581967249241924915701931684792132015888735342634988844057092472019299063198002629886454951956400499494536543921307327588054525837434405333038291277304146370698834440058353449382747360517808136742792815570281769937157441634557395753951197252591091449042167857712931425797253290026651165635176249967782448108245138844479734122733274741924989906570006348502968178892076117024313272994558142779588905856561859984648111528522603750167197018819907016467614038741132467525330238063167773372735167711932942020687828638630177726245418514965123145297513336299510890034084212436081870028080575332752891306241600329383826757994832322310183760936659301367416222378316704014829802678010478000477804208729405138953968123799990830960730642328752977017648403528961888756973467836724237600311418809381750117058856944055953698606140478385882598675201837644078977371399158356581944602952340479134967933239017555186182773572712857246166627859761481802917362961232813765103550528157678322132029133463536781627067891783156534592426608411576925697123130596614690970585839572287138330717659530440630365022713546357843907977749139659114010183638767773685110764648212177666598189352229156935106578396659224292781866320294997324346623957826714251770365854680105966818455186771829396832459590352729969450295708323493671371427838420449968876617819364864897374566189834748474417145197023461868336354019136670694904666690615074499272288281424262132096491199730633869932854328610070492343253109163916025798045296117370155702332921785494022164925512888553939184351258997021065331029485768939568405681543805317911391463035128727810110274096464538608530312196491396259091398402055366430218365406485328160757128090886785539483534053644298905102075003878868487838657722049104258477441688859519361755861164466439919110809494934168712882800634521250248206996160899006915357662842955526277376035053428843563927672399004434224300182732994794509074617119017733694661736223192780053596902556449366842947970871018373254934154770015947264372872297597379149007131961766301592000201635216542241309950772999217014074906171616369819709749939289385654596192379078161949513126300330350164758042635396732506639379085663317731285479155962008806619149562946898875426504203495503086107337044736471552044953578395171387752373586960016321394730268869497373493498890298387888479010355052065480299281132572518995300303996944388464876026055559770791463192036687951610614742726583178007358699788333735806676587635991830585154646225181092093292543342954039031900412470978026038671078509222186468703195149517221544057078375787821951948566690222720788888995779120603211325974974210743907530493386564136783711929151896879085020438696873436659334968856396505248664522448682447708765380895577830429476529114707910191097336209514382530084448892869489478032828390612619533402191534701024472522627412887901530894867505293502049847864756268699539606096266998007018163729483890530137110109940196813240817266028687273634033310739078225556962857787663079843479432162625164956211268370684589494665463575392741681689693747466788057010178638599893598805487037322627099166115669823209389075704206058823842525656237487328265125959068667595686879034088267032858196432251360861728606073723562331820795682927087543286691804579122933838416319306140312208960522689173070449499495821174704243362396695341519021960212381194703636181792861642446150632055881374266445348315161988151598985262338313630692550703767738898102789572169577983670884528143952253414255826521868761989415832697892238893175450780407846303482994551677662341846332739629432553253427661059708492377756688446038754309287556879044809377738344771380282145800192676795797261915704902197205311593793730846866749923242745613835894201773016795593492040112643430268302895571565282127880494029018612945152437593725836876847792965380469906499859524825563029427237335407014523821145869887204237385418779971357102799195948598459102851058032314371637389922546681270188696182584843208187247252015711056387576598281615451892988982215930908159352185914023967221551527189753716502245587041649327719838153599912268839631290456006902578061663893158181941534168128060824860755573074238331113545099849010889707823554972943668062114909068231478557351706785765379552278238080167544763943933469036257806646390298085213907472562311075662858248140382694817233369218440687419991532893319480536134077981695209394495916024123087947493532108062036474881340062130890339838563248280543413983157171353381733406684924978795833557465163304520836116496984051181574004071747392880760887019859134930398657887576323867872109571201056631655190949015180639510893237884230940983763380250806018163817195250692515269402505518216307574296716350399639131954448902349061002559038763594281188478632439748026236003412350356820071593936100113530164711576182873789137703239555087928775980903604717841497223420656028017113684778279324322493292632068870535930568533471735506901250258880304017825187330108504839170224142187802041453563252058240742857743117625878496033987251440619355562338523485514853720056133053123280474775449147114405621631533589874536261220777199105684622879235098256885055743228360299514036986278607200800305586699471604549038651739479545347906880016814588675267444418832212632761661305318674376071089837720579056678824986223251033607993042390986935716245877028887211460191885890161139902771546272910372048162472826037758146158047960025040787777833138636653309551480446963148978165677983286421615399565882802161480631144911138588291893455068850136284430611287647339217767500729202651471307472617831370538497665385298614615121234485886328653284485354934856137100959275725596797119471365301273560535309559401212541963779460106985868279354952716417236485923246951744479437338884021376820613137430725181910873301691430650445728914055963656714797788398048041103372166700636649650639818396409986061328029109041581137322245992365106324159872928928090473556344291178395559339612848346776672560487640911246092927957206187019203495598147477397558775590490284529260866319245932073001656803432340220019405993753102038205633198721336323945804358933469736833853168679364444147123219685646706097372239367832117075954497921261321920043367595853721807666357067429504262765748980607262686527177786634300501460901586029110245522082928071396580571806655595883564526623775883745618177787472681858704520489770915693364657616201082088224975564532165950297939857499718206730670748852638556120754970668103482654129598132915820130907490252166964307331284961385942286321869407220157789174810920657699538674107007494577393334995982279629935602996485708055470586172885024510004883288090737251089603327232971562870301643477756436339140708457400865846933612690808078315096010810888602097348532745191891180894481278348983099464291431099108623056435719332037246104927948886076087765504351217520448657734180461763433371514035597380506425006310655184853315278572820679296701084386766811747112824975912223047438271351101502298787131813621643215826118363812257480028664313350887043646798260007399399251708870411755397039167199404613344422516099870991673732011233897305967047357799246492712497270200341498556916419126936233107145840789611393702930677838947461470936271436601605631569179579906566249492264655121460292942958132566350352309073410791959543421256164909798408923549797978000076984786400126470015025885948297089800591758284152373260640980185810192820314292801233243005683330345794436652710140523909994013319296655321079387305559050600028210550675109016692183763749053051370297679037041239099037529380141200469714639286756375196463517481256637961759534584098701154834659713673188585139483375740149202612540154203537023185998010895076707415050719191480776415923044807552101336534406413899423943159420032545168241590369122123598943923375899737812245001488529095068868632664735408648692259148075809903644574972341677328197258340498832299031326703522823444125376460214789253136239475674899497021932179767277196251748255189318815783151926197606671420331174006716881706351815762856984554594292050227130596240573843718054758907709886173081399123406914327974208066286610252184798775539230349529643318086590538056883810978632142679930360396994207677325024425728193458181644005324578723217755610878980342797233054132744196738572133707472763118040403025486931603572273032978895811098082165060136018359590603674584806439865381533427645001669191222375923726546728575384897793549124968278047840217068726053432267978861996716187319840984131673028233600982392508677814110458635243629255180068737840954550315514115126876026768162295169183696345425532837848925160936262408958710970097827771944943560727102480744831734279565080174096582795696542648777561174253286070652364405898167419973524787350279686286313349302250925143198543010430280322664283788940287442807946425164747250935232279523635042484540436000837968718867903743198195026194784888371020009697334164052152437859938869484056740041232479549306054853739206956180259686812047442691542300335714597829708760311861182395101877387839696840678329088469584414609327578112594831097671386254596866567329406731544932195751740422475794403158271256600005412839208585622688453864686482838428847876969418221355126231216102694880044313855879475364672825842364544283531755998919310125926855838123735970633587877433803701715236402435336147295970110106567802679707582066524562323000832141891982770843649778278084677931538831157256407932009433484629783994043666995664123571702551066559504331566286149256468298943255296973208149324800512178011166089466864505363804028138402104500757153630200418617189387564555700759486227618714631062369160109528962528405952686498340452608385525746915090822985679209447024753463383443765309950742354342458478424028004058445311196023993718052267835333743422946187558088613142881675810372045263941387736052643478731140804092275740030612899314448400100493518592929368314761987033965476668279099751690311403031300598718874533537374939324851314957547788189341730299661532048402753019197908713261899500940547291211380006307529151098936195360716736917021166299940499937640164710087213683763779170467455785159601556397971769076906588390368502715368051008729376645862653776619136285649273364609971570319216224492220909802524553279097795600413343083645980086929981425322193033235121667856309041865102389630186408373162915704973201796219278392311323084840163248622395760563255697729689963726948142103875532293908541912307910208381389068092762279617425175543795752244490147999595721714795379355581412941109843175320880166525739335399823235847103063401999314965717770104732856995300096587793294944907327229977507919119717339879227777605134080569144593330161317756155407177627453846977480195253394547559960466155078185258387413050682861158082233479529933693757411035516693052716924267965004868240269185167699602794707136235282907943340145144899473476424365013612624810232317060528240791963441078240563131483454264188923229550832166622127553801451307156063021480186249021908318195194252877922563472923528037294519297877440966685572105495136173848396575515256721702442630213797126702885860389318580170854364338405933308414829640949800261638863666704031389755024196548380019246004168221023004646510110093408828990054446325651135814882345286732883696994653044585063961819131833394824175641265399114622699408433964494156328663609121705810509747776524013537848347715675139523463496413212062014360120359184508430027007935573516774464500555743375794109513126478434355800369775360374727415082190244035642470098975504560512103607355544873499637847706093147593997929362005656358437233850754963900673786395355749713849756614705215983727044874205884617342026972477460989780109038845048905263624449679973251557108350812385773821436585326788127846300216785492549688010741103164062316337148042103634877809081051127566707669284835525211725113727116397987508365194333928538671017045017627644795893376495881190794288983803396395669812961602322394706744427999793884782969556969827850080392676665206423294648834777235507020865770123128469891122327124463949382926320640813411537313396407173116489807819825546766722206627865985459374924238304058737427960526308108904644309384364817589867792167877636439481161370448874212004077580400476308246923193813531148287102712409753825453272814914458132890861117468026154571994033599177262249439019707417123148450724156888576883707675617302942564162096130324679885377266584815896155692472208795517648855652484870547806721256400117573470885903964653352246638040683744183425248409789198052528161091738490365838315636368504600863423469741008634065966267868317230291303563498552724468479497610235011849728804764646970345737999904187675538391106132069301311045057596249328764073592018985264935004081691039486944639793412466563455714160605695192070996852261445297118431597356176951582483804384538451156129116385243394403160916028477266620405048139690620750998650134382514319824441694656234089912702978937893891503970097785154883453374071918348637710927526351429251934288613576268409695133457028857208797257844486899360061697131217689771023497184330986372437562494524467051471473101610594007256585014225714342262678282588014441346965207712231256701392573864741535932195699911494329566995799081095414959271422535808713813045601969487579240414274806552577585071205949962971832229969063230470482593725047889381316807629198947395384943858809315987475843048567485903782343527004552075722932746650005754509949282443106525780424787323558120751574929525665326346322458230609793583149987138227130827361052931944528446400997169214789350660916854306587339005060376969521387627457121048025313972459675841790036850653005658835490798222529999526926729512461288280776462995360707591385473955128205539467672886625393040091507107691945458894403164735157935733003951139595382259413517553885011258436541379752211069353450369698003514201186624805574474893647968285109437862743523520555704657576228709842075081887579624511822807299656376421322562669241143915148135951542794663235391783034406247240653380592436832722498252981575055804617914180018409463466514309856489693370670756951168220657166315688687036656710265756569191835284976904370367898977965942697242656835562950699194351300488032018217813369950492470497627045484011390005935912044511770938248093000455954512784051409352071357337732390288737034232267920771845464208768691119039199032540251754040733952568618235349458736427507443402507283279615456552722325792132947911452037115185222961345852730660589572084150025054007246330331779324839600763255062350167698526343170340705359655191011251903248050498874149676761927595910434673488098109024504978607185618011690959109992712489335209084260739212018721853789902119168107786516067204977675960977548454398957333202422873311913624924432530469385142652056724406950653795999935834737610948814663774428046505453755836386596427662073547826767927432161516861885413371797727059635573019026486217460195118323892097519747236765196645253090246381871302172211797371183045433529244022940536186899943816120973879753558645016023486112388209287938193217629098072812144712194748547201792018139428693017597946233110858951698728790882391969543769951526374172195535306236363247726867405766278470169750159295218027549436328502026168713057133413833398042869578508384970978114288164138833063573672948816415525228384419779328988949802305653059216348524703562414298053348132701778972549716491858988877352135351279110122299040208227103904116572958838762284230394208087750423172442447168693946049932163145479032443395649480769968797637261775836725376977603007680190489919587827019545768383850517731679339400443284407092202835319014998597975273782221922141377659090286386280583225950380189178941962629325391166887679651272664105258990020751352641500787483489241748406481853762316818931719836340127874424114388120107988147835954032018927518089067882130771108832027010243089748554705512573508337922677413004799990974750864473519910196318140935075966677241591237365234572322555527857137134292322818651610522121689917498331916303939018877779799685965999557499059335699067303374172330921922983175370388767129463408759596192568449265177189063320520250060961015003772651360747946275206877019558449001058708127364422687839151156446167226065261131464689500017948411114768681326501892484004549017232796974493988207846272095231732519944884013474087989706178319493103958716522306200350865523466920375293871242751416451017295348779012910287226048383002350615485279217974763264609580543919558363284178796700346641642727791157996281047745198391471629617782110504933914626707854249054163359179682278074065606439663360661175014720840993980644248379197236328372156643404804281659274170016311261169153901467626591177621676531750206049240858399462361772857737093122265730392693714332067419329362274909752923906940515737824340361210371229007481683135619811374027776320761277648011530782089811136526730517852239204938032070986048223487069345435386650046760727066417649323974557107486227725382206308549012044135059519030042876326260780017191131803159009857239931168459944395056402090009165243527076935439013875205518516795443408283488747984944307887650273019322205958009337637371353634166962765899339296873853057908824124043254682548147827213786547193688741206731068402971493345955303432124872804412144825066770554321460202351735053422811825171260356830106839625585313967638638830631555803740210585128200426095415978375933258380722799215715312652749668906128521445921538825067320402040455844485026360754719749315033299098211712658541374589526405211854400083379646855105750769911337129996261353732451183036825011309829472191361293001394473503156005857418350369549939814015155692953658540171643797489004971132670907668571674342229616203210055861655742296096965072691710995485186483570342094393854841305854979253121962358200596847281149917883226328756348083194539839298000496677190817248001791038460056760115357452972019188246017472427413704082704216435226944206911004823309347151022695104276986573659734714073253069670469742193926944572948113279710001226132185626447941855422876616654599955202667557505576047730674762538054490796023755106698877231369112425610085654680923604058634631937224264750319996410783025485873815599681043379509062881352320078449734679704601262713983860513212071090126237455863203280003430832236701075841017823857697361531994111654323559076816874498211428999888660649685608950510840110189544573506647788084663767163135734954727629203317397496801360919339526826989874515989021090372759440309093412731144447604638521348917121735352543172781504770359385673418732662467127458843456327106014333507283233034914799121585286554167516734194506697554168877172084812655014725079514320267232623241191400343219732650851129620932762418071284904159173817756219209705853199614752020470862034460270355998090899536240876169487587558779128576942355325481624445906505763883726743132366675153382610148671770179567703379945213717985722062547679382446083726844962198104284889106045884950522201553621487420263766546264817978548066963625210244790803426367011741418715452546244245340531893813071697311191919857068666937766506172961816959774175107847291077314510809047786664919104439492358644832917583322049048273312439418789252788331273165462869131626381177599668360954607548013745307286994952387281607311112879094673619206840538505217287707827163044076417236519874880245373186266307635078042702236746053545325867886193265285527113922425033461200259636661625545359527697944210462662641484036506170811181029161277386453736674825643938968521365812397691606418581938787676651983081486825134305952685114647720976763958040909387020469552642088851523065855933218244307808009321852134208563304765029876550760288721335814699444509722206594824087693332588940468284483508467423770196619504904437988416315288851967992457586459610329055190069561331924243218003299360877713178700192157417235368596733889545002002937475315168602623757960195281908788124570213257819449920438509536977950680237258312343522467648266563259278079448838587744089068037067924113724488102068976300009534866910687657531340616765276228260368165479661629045815318362736594259323000165977543830600327114557802715943794048077007503515237241057539825937176807968772440121743309649582291272048792687312176929525913052813333052272423706235376473419854413055673537095475132669000610618641240857067602416499622874635410052498678559193665561928568796719085064289252816325060885926316806428451803966781117236138510604463435992257555183929368496654456109566857862199189389146973421702976949069650218989527908487783531067082251320725416479041606543096283983508306146356594643675815242481179007354930647355994876606263150661656149790890513304006066395609914993274807747199618396974925537202206063462645685254674032068418143600724171455899497075249086155947038947937138025904276363556886055896571661327679847499265971659408884117579378667984365621466154350913090205275910149772842637465166810342472572217706882132146559610638695854347207804669686664308589345180047542660941250792760699105475297884216755643543736252774465127388626896825909551625362894489441759174503887018643946129593677543702602454676858055259805307118643808756143925345656901941485383266927642742013156928224022261833680975047386218520317685287412726848543772259538163007640294462674100497174926100081462253470053350695878622339903136728464717814513623128590384357905938790075056853101568412590621949308220078474228740192159944820432523925523306425159544932110408680598221143974957233576955064102998171946079686114732603840645415821796744608586387018801389353186740413946246966825982150939386003782557537706062246726576501635935394539752162946264005947875788884386484939946841971773410510348434586121326411351001817546481757622898932716583497165968714787306672105398912886276160326229568101611294768144215616037527967065318047380506590982322588259550228347468057173846651579070787595893849329507573635103862797674636012205571730285043477838306245288585783784936386518472414758072922006998451703210931634539667222817982467035760017138672582485981725404675530061734194300199883947123755565927992783085183811728528045613279831915956369892533327220354973961408563361859771132332476212806326933748736721306220060119763814048093767921282387267517643044013736385559210481693234939927038515376720302230503337854809783609720829758331978484505568060286683815785889323965705688938184477901952161729451072872721921591751957140004914222387410273529056845250223602206630441557854493449686637941139777831124769850394278009223995138859326658657535939707151410117459291239089572965818597984635965147847670716187105173890566480309147273569633928891493486720825361544326211407041418622525389794502369150659288389250745986474521593755351379535174263051058638577529050495484367285779394051204627256366709055231073304720405665753066756728603595933972265821959427004388855325437705181896998483729567190867464988839870217849070108144593486213287260585761093521983094390666635538855288170250666926052239107436572012056195587755125123810883945393998106705153482547082487603896155906185224540549884069173805146474012437660516578590946898038320012381921593625241125577244244034670911546836855654342411317492303268233681178436984551458152403919128741015655332487296366348234387246253984400502175135842012926617912202344701116098491434479635538475279544973563798995069442875512735699828711277192331481538350254008995926655932479212916580701697287967858119737942331670921574067980178426678968139777507981524808719413774828058614960328492285982047317405997574771536603156489091848819733528820900671266545465429659489508674294952612067235808514346731211446420024686421313147464492285618700021512575606070032587780970176417179976871290288403931981094355195582286946556371494057995802536812000708242611293128505440223687540563266878843460648633508586119662201484359890073597041930089475043632550890364948184191755363477521210218001522888327094995277205213374893302074451766546131684993687172134204100685453188517339641845075263645118992260263019151369531868900743947042552820356617419455649912604028667101578987822073882433396332994530350862366977625557172645690602340927100364933783084638812945521970727300971685080422793767406030986402614440755618741406290306896085640319959520132953098044513764674568625127864699623292170536430921655974091273719371144360082030768823772125033340488019071740572587432530249701977860378510632771268686899674241560631336181419335770840875625182882189448086068548249836813091237377373574942905572764633656020549746020823042668205743952488842091011974398090907845968896901141849663045699972592505705889475424165163256742044639223349495626224584483351887025313540278416170876270768587619440341829883242667725973234443696653868597404716362532204732351106489864775806377805405781486372590089919236000542262121835633491673807486136281813662204291335905672021830551059228534938228847378403470609034939261707831564972025841525871518555863056499214740868535576803633318699364186281034347783027736778711279204756059633593578265614944269584050123232193226235980874198609589461024483788603783065193917643172408031980507610328824592447237485356543609285989010161340228224870541745991741821406609273049610019995783819859228604458653940423184116908845821207282767088614515810234150495888964535670459412467880542078204385758968286124233505546013007711816421972988467901064494254385404218531540497428492026366324671957645754340929190264277709855510262959291068796295754628474860352475605153590475942143463969135953823069812173131998933615825875507393302689876035830476102611738252387790647119000107569555955281731294604720990571795826918576797930848545845672479722543956534516047378704620634881749969263962138936644616108733683369167310591315295683344568486359434979331349886592504547805670814861947237986720097965756121604659492885935134610255798806723812992812030968217835680422223760132947158638525743511477135130182510626404419466002314344256861612741332160590516481815332457278697669716354159294093092153492654123873969150960058890458897659926177334697690119061059093665847221931543109516161116748691275193704051606715273661294858027421861527476216260938971720381020086737944660633358187662501524634718190170320349048228232621671730519578658767556838882077327870740185431086555498042608203424580917849076748212036411506740817380893359323223099570519747313192058153702837063886499970766204640184079879653060291616925633361199843976845801378821376758765807259961334927781607814335553559272447751112229591688495177056507772242506772283158165999597893022799549060938233539690952254268891716452252125313119229126270973462466675107879180182555493363482170207053595467448987548993524184616331955552122403730296814888423152504005139597423085712444652606962950038005514217740185659713544590786795955989580251932591227066398840026105647583431640420310063306231924210528205531305856475892706800407346089070586724700375582307422956805209343262879122082082078445818006552569789702988589904755292936235575841508272704776411435526436949161472268831049405739211304007747080682635007385665827589820875938265557861941682407315885939007129562638338496994488915006277098386591019486613197684512865755152019866458565452741650401517175150762833551228770270751399553318921603552428716801662466340777514854371756176010351725041616802541945035108899035771387846492988062573461415401803414414448872148175594557982981520249720592518311593666298074663549621167321076662037518070175405905966841042147090744931601799825278114087160384187259252741832744290339375890054137304009572756206487098702139865405978218466627306474298627077041287374651834633757133280341861539956000778041485272455966798752854156228960494719318599758950387344654796259055650933126978671198252964616510978057024646647040662672679046860833400308699934813517222997138493365051924500602183772428359498102825675412781009039786279308549721593178096377580515006515063484319820091208557654829023014732754516163335662119839286931239791862128926076450234529459048023256628262140089226503582087180035563794780783945437313746100512345897376979297814767160059466217017615263838332615142091755097914303620410997246598740800971831318828230135230753723944513874425970427406063941833591142465333477251193739162616732016984134089747454538232122093069869237785357131408835331302760920966402418829401268003502397395965383967098560027960504614061308647281249296345148184612470493786127651287779768474059533738473622342545361486154080802274685773807860173825440534565043470775564714307743855474619513754317520105369047008957789884078112778069614632577142372181191773165194504489089032392098262717081209573261840556389716389852141823661514255749806927596493632238336703558745755514296339943347714436228119160829329164158353495980105801520088925899495909590610087701652111885401796859799542945128100541215517005141861193127450027807860038089638945480687150180521155060633814129194786924274797548788029853803251540643868185447511136302152512523909161814220280271693345604886514832258416386148754436091534812295469523803117088364406768385127072292002073316889586636764927486884467531835349406383492576238589333008074507889523378409940253725681194699532247778415189808882070098064595585012455352031712462585775163474532038894460270444806125852918134832622877584602813400159681851618697872048055045367702251841412212257720434882361696177273140415723129158439158960345582889636422468646420267498590654142020610450552235754184282125315370625439495672590545758244084114705181682268230062059283295083726385807856728141936127996142759589716991351527996234714081014127336584593307210180776306582508089127187452346681248197154540956280614464122594678946624576451152910095936384134512520972387815180026213650831808785399035954400924961435677641369792490613640829559173742621418827539704352670355661325128048426152460759338014493206312843884434393021628052409616446050689135997728504028415916929860191698411975928346124487085578891049595716535068456162432592461184945976387558500313221070921523041438473965385030946190017641988609797566027633935958007718752694591154912344108835634147225766735926310218506137251583343766794808245957267521022834409614177010018640185490989850396964635474506088282157186965310554921315305489785597974302478715558792413374472293267468232664045214709666236741450511129467056490430946569193494148147668904143743992321967121535684877005920249454575778440217845477658019245152018748163037668535917719344169527440611936917202169862843955871602335464904345262008478948868113840303608322648722271694726817173505160355599708934692532913945575778603554182899207725417259782751933489156023073566659966870213275329756797727437836788476300114053150047945538995925791926634353433911985776482059028454772208606234882161571985641840132143287664965975502214283517988686837662869482492337762335697165667956648538121400570638688662472424079376595569574029926136451813912429887378937035795346853450224502721439598233427322693528478617987701054051581760484328757677345108774767442662863674551237900912794307683157665651017804411232718712443926814263019931735031282190546108719835965701429779510134677600528024892717886115972253372498381559707968916925575488465985731851181606867110927016069691862932337043303811069185725782826150956795713224571512478531384409991079371203229780599995044050297349486073597540849085535506820646581443447541054581652700731780144968346578469169465471585593481233020474244948795103556818955422211343539853152677853246012134795514822447837485678578259117819126997334633743844319936387889514046928040195618912012443391293331934310162816461390263997151995353789570876639492469221534456646467288032661725969317408239088595883378076353796084056886475300254052490514040066378745944131189976862157125727913324255043470482316839099728904848643755468826706544512622789906023841823544526536311084544367903656327704663040271166562770145405421260772534472137840486993128436907732203429961943176474867813592716522802885528857754416967340687226644399609994617152513063383426215297650502941842855768507177053839163583923980692334651338394090823095834754769627350828577330181840098719292125333718997732488441713358748116508265356876476683560689962054082419605073993056412101137995835057461542589960524593489351888316524079556221168430078899873661212714580179946891536507869550387936372061336879609666481390589362631827451006963227379143477746172488103600859347024686115147102523021645668957935282317508980050743984875124495305437829084170452845677641804139794221530512123936457326537541101181810802964222086309241891329715446635975053046450081379085373167751311946032176690008965194060028308728235251830107181272698031928446495448205192447902682303934547364302680094861180747372533317185961285710124798294656365741918741110229327001098170583220741079198861922030659316983400176139155090781836021673111911708655674590818721879583233853538660742914744506212479811679908341666443128847136513653756209101686766821573142217593078273345269751055523658797130744955839069064706903863021801305918600069548596349734815412064472772709550996203803650343527369439059906390436085104695267592271176879152641706266398046216893863918419689080567241813636676063858497543723049064066058608459987300244111558909428678764259311747534844442483919280387152883805760030132374560357774170078845559677272327341936810333166207429501159213593382883386467496257797498428362627161080360393905190931671851075500072420255584941332077198806599086563983600373774621467006393374993604915272027809565647271853864273896953788380811173976299693355474525728619582058786713419885821890275703060886792345753931914728914895866165875756916450336927617819021244755119502082511487612627889645686754495952606879003143714173632369726487524355207418636177766495777200716498735057456102596604566140226495156548378101478342623590848685466666540653289361064727671828151899860279547031396745931923621716841789094860632138553312938993543087069334843768252670300661890745942585148393410818878544123030393260970786964960831078413149936782623742866644991040570356734625167164373495595117774869032541013362599609532150387311699398694793236932995182068351147242274331999645556203711245993311870205047763997047951486966871677271043627475432795562059312533769150455264366774900599954657667916694355747110369566741254189854073979974625260090900850873358764439676480482395678137102990431243862062576017054759840818784595687838419096122967372024763495791947912773373606470159249165936815027061635436511393358055310296111877401108767614209179132143207280779969477923655306376257365907490399564497850259367755674010636052768628662205826591501665037382575833797781599156169265603964065630563870718153299563821002065568441384487164124309507725658545963111990553823192292465475403349014688446552026295973139901942374904349904165137209982353952295590987164417867490184065897439303955518212639651991682521441979252868786702708251959196942130838614622617932174051451536315471168670832526264423142952572646083017227706818954885119875326754321876486401337456425780193628451395496181122678865938343210348554836879964858042425676236170896612917037619446275454248293499123147209976361121533989631295963361383982136859285441231717135029856189467777591301041520880992961775009505298581798086446675073195900279219236823728954002298219551926622193155042720775568674966597381595485703001214130942007787105097165548085704046774244372092353986802824499130865096121812391079222813925071816508874414673723520913574996994646352927523217679916382934649529647531515294244058793681294568812750729244963960456025696260092875751197675136443640325846738906771207752416820497361493918671752901181195045647659753097179086521849335316354170437854681987611525307697161020955344341349208627484067285255217490622952303110068103834893110365582670987698920607346472505017249585218336924962372307187730986842654851818244114487179542785099192992511055528463709337098885406434905202247926918580191887382748117739668261016227630480332508433458195349321759694439091756780371522675598833704964140327203645262815826330742786600866390011649326563380603687449313647706725168286705087751474089329033418169846572922435027087739707204017784469352631593808680717919125242686425349924258326126656959994225682626907488345493423484085139747266221477612644959158949273232155389464133828035797315194887500548618580551449239075775797844745391540947177541430036932780966796768904421363733682755914386628636381075795758159202723855002377999639418221314469105615665923462866610589770773164743524753208903898590191651745352543825911649848921791529526954359364499960343104194075838297613752889730595634115352181317863513944662820581413576550239429245704480859423390901149010198449700017993831730609414122305033885587009606374764946058172709199011510891876205675414677105600873140467656615950489612019697956553876245496545939632296706775302494170959099443949871462692667123039079703907229237175964851492952298217310180805433047329270096148349383540948037758783173064510601358554688293300007608804452000218716431220323480244558799391827691490394579153686509531731811218403927826634915640129982329643406710044315633397464957783959933388436791475399227881245641788185439146252790986626119936378417019866668268344650571421134701206681923864561945477423516195750318145619220964793708511023690373339417689976334730757332494435768616398360846534047468759674420780850165435578971857282612221858383492479429820806304313293187818180077753902973121290766197725324560229188837784388497279594846233006217507726294948944250874905775598939825393166511455597546823726182234771134045641367224761217346650420025478463653531291246073087878869455276323589271117201204491715027592587661595408351049265360167464178365232683235958910033519876153251616239531293298930344496672541607476970031444316028288983198737730919243719218462967161936360771481008672218835967612140831909541542444222450914205825416242612119871297259473347079780610730577576246858879716706227362755846481920868092992736375311391401730514683664340823173206854194308457830888957787526156489117670897877703312745118870732209619002981718859025419740840813298473074685552912898553320686929079389085371406098638953179433728066441737247662358551018207578436354221170176283527494177439057311368642804682403491174026723581541344328987616181513940126686624320126789379275829531319081308481870429934001642739735481890111334255745810964559903181339941444402318563597183127625298613119427867892012349330345832245456352571223839153215745969470721323124296897082292773851501250610510805189278708554289212488161554055465076188124824387559659876009475609466916527717382690279910282531630258898859057326958688418390924954440559739279400156491764797158586648132167531986046523776838751053555862121512691264867788239196198771886250672505511675766716994863464656821833614714879194834537669287368775844237175743031956260975101400164354528345697352880767768792333303149602537029872508264268464010138227212275644778187233988580585510213834672693392492755876759118449594503155245289729639857149285531012809927835198126541024613303939870273373469169296162898488636937524290409610393858484925566280013717877750053104050519072249707046547476669048022553142713523023559557310793835770667735865692160058635784642709733999090027440896980921963078269246764463290900097784534243367005603083665810118309630773860855987107866380364763121367867011670926526640243214125109458863123061943200923120582814275669039173347624514503660647099365830819896035863431265447179160227377517780024176192112763815089670273925195933782405591897092643375971497471897341169344692432383627447529979062828824994338036563291033954392411273906252044660614869179726915515182883667057429044236838541189470607033480980868509667922848538669302702111129403197537605136185980114037623157976609793027279998014832401352642783687226299411505106358918891219431978254989888043411749997431686717602075538267283234451075032626896307360132230023542532130024612145603290866852921670988004778271844250981468497632321677831787042538191728778984364435774398135489060232815810862349607715854484189598370242977832939943310720329144718735092787716124729404191871838622872171120896701536439036264234210741762583040158766980900800363441679659691466951307983587953492817713982500797920334560953704806589934047659751217951084807202111107233200806960922487454268815289300469296392252462305784143360342975832055703841595997944257562513448365765496686402287343827044616844946131986469089744553012999275458531794460045041884778971365330100492383789543113899646883465285235603162030341826162584957960303738013578543212150199966009629263617541040942960294948924412543439359297676812599104489624122581962021475806101211488185944869591104765247817971760216492858033942484618264709359431970008855612784507366582142771494034426650273062304195204960072274385477261052408551389607984526150981243484577475492779107495601762958421089815881640985088094068544029320697196759687006637730306023844181429308934088011244597134877900290536684440613259289451849500146512739302737289351268689744088050122438429100541860508344634634993724791487596030946647892804097157151256413486435846896503803595662655734559475470598460477003533125078324454298852814547850607896440256575599775706301292024644129701003905159517658819684972194207416368209241044612445564681355763197930941698296070834090987599120504695425487600315177009375409675153217111924403153803853189301489906000188462389687762962385381942847198786178293446572198610128426489439392536633513950453486304652087324450069909059328369420964157957491727622858973876392727308967224333494829811290757531273086131173955421929682646485325479715922576024489111884490031084670055350579130552529150032276154001518126600171219952959167282364303784001464849432332596284146500548657295697087811414550436475968034740123928712774895228348042594039572316269478051731507993494092921294327288822573205583978571076677199410264849705038019259823855468739578365868585870937438248413464076291606942756997820601508203930941203044202647856544761660796525912210571959998608997528289073640620679374456615900148713998259016561179077560534935981228851269789187936547552996675604964189599638018961785777075962579208314693646428184168335415226123044415490580444138937870163717406821985937686838491744569097003432629640090787936832636109807276793906945495932885608976833193270379426107847387554842545933070915222561726060751789100632103357605724881159759047244108608125888175609818928606513358538304913547317911996200621691113303806474721846335583582512813038780010308233851485940249672365996698630073090328887787055035910697980765070907499841678033625178621676658833860730197860260998151284641357098184263147044877614462705181397835162473445865586977005139246443749262148678040742438578925698411412534637698093970447661884715404127366358443739608856172786718043441444963750139688919801286934795885174545856964770642668634716602450029136092656665188247163149802801722849216997942170211207221939705272539128892388042380363531322201257528582531769446565462430865128888265725646307696006966837678934798788170834997692293953882431551775172429843789085589966631801166887215136759436104987398846405850253118581434977148703297322984852218436723890583983052447241385012979532669852478243833351420039800808878781618174919811395140793964972483453750641246127072364158827541008191795890072786425668981776593991358829624164832782243003586846332150217252579933344781845130552978501790795255041513940074101681039445704575286545057982920272114025492414506538165353891958295230683117263311387648362412201804587386096766045976437662766229601883359648996438636002357995894718859053206454825581549061210431084654564969727947720917208218082035732999042484940869103735525495773373636269389448983239042681017026880885794169584656897981024282783062144685128798526697000498914153294340617309096863529005344274178026906745705749181876127628702980671956297439463463657408215175904919360192796904495784057189190000224031874188129027230386073324540468191691028567341072839366368872744051531568818876795367439696381676174547860290217802816071577113267166987257840906518763447314618972403272644490756708286218869262720565620537546613396524437070370327894840689960936189822002319363856676633485041580130972131514597663035530050927962769041076610956284242410258513764857163957377003610241515348476178706964351317887620009299781078758735902704820274598653990745841608144542257213495959278934244553539841198985756647497222446146757358919852713642990838813424272723678033482539773445576196790010178945743279745281743301729088869588916851234611379677144911041692938072228874265994983247465097048685725415354750102788676302097193623705882596971828833487743720333095687534393639671763630519517098685052172743590836999059730330409440788254819395945212944090250369022969205267466688615031663118943111338403419638944733994592044343197275244569068629353211448460633346228616936531765395721410071821601302784767544245534507269249600288283181849329712503684356481216012329491281991056192327165125559772256242613989631507022980739762119126036742716180909766509044999529001121878438140791335996440021243934712525477545197702961357073072248430365872419843253310263738392489580039532689418997785266297970061171200543827754232787236189917822156502630463959655796052531730932872144034866652950394469202945602293511878460255373998464207124357741593459827213104697779565292410856368493408254696920807210248382578144214694333913554530169449417514200945649672859295432087523843120072979500408586355080277636127244214337178478595940029344706887315192475526683975663166588495138142987325741875009705390683836898268656500009121874612461338878291661227143632093019716038993028817270596495306966564366076950997130519363798539711313947079896523661265449007683014215220695858973015102284700661208582235052890037394577773685789337817454098766596994741847409249287781003262409287722210684580626387232563233489913716254354469178913022973397014928030067164109205619128325972315924919254798062332029808797808798405413664545728519420699901782079784863082694782141145480103615458697273245330630650629902394322132146260847679572539711974124682728877173334816288225979970709477963773302491364807954777117892613745822988184927840064442745128675317012584455960345894643759940406673933949023264788713121288870011646769614626032938276575500774126668193299404177932569847529457889910852731555189669841903027189518713846989563453822776872710327391894681410673204378085706360688081312169840493783265271631083097546757316086166274998333313064871219486648549590149802797264379572583037451642056778815543750028172573502928496294439881693670331700096449937331553525239033974156944895828734222853056539369559707997508906829469118657979615576062599934295265480878909291287626137009212475587412588341445386279922469517250261512868269132738876397055284161223156304488030148827646557648028493890199289536967883728469698243933440021445139528422752709255890579029227166193071541855201871770147164856970556259290636767523745821385091168636091136035157445148251138436683569056233671220827354594679818021829712142687890213478219093262251057182500203282147974597664880907420804027963736081789078792336698940834678319836634096409738069200119297633736333797175773613822939151651510416543380304174264198418375951346488438243809314374477503414568695197619789005806395066241135229532070521134802875202823887353393021944165760523499290612757908290424064487091446318775335386669875248460001965264168822343070881147279271210582465913923404209323986275961343530840253562067770742339522516806313106344065255838039703029848101015905582424562148036584625518412193058783614460762313473152149419821709055145732769293904070102693377294076171581915136058583224427756144893097113436708917958742369540523769113036313122720170641719588804655133633747683469033508439975562568057997500077640818221678164571012870726917673221359148435787894860120957116054039031836308939411112833034706175876539803284873751240387807905214127352820167924469664147048887049651638835110464930446172812014747641989572384662832165182949725876825905982857107911571259619782170024533630187884275017780684117811848482521310965945489718272239555022484731017245518758026961907193989409812344756655373392159186018141841208534619914208094912186746818206287734376483390820370778285973801172300605174839446303417522728429975692481857077628792391313333669477690500153051536542641372649763304334369145317299769286422817502782568371173677341728650306771217601010615747419890760764250448534842330318853253206302376238660204000848379361001563020194120130674618334206583349275031362212619741924246464385511420734186992085809661990220053276745097777659308460298935746264515550139726063701315236662839958194837315357266637295209148242827273458751281523546232479493754751704895188968571726767092220187008465564900750679240515468352351181982263127555095848057641784201897855783634307841328732968073966307551613180500723601780632583824869923800076132002685343772136164856731408974018448561235085548397538258811696343242015109997125827886173871019528954787162802277860907658875449197085007675607082872774697866860337682070566869815710271732577008135419938708444995031317421431811178487709898407364187467204824536543213630914640168351458093916868932818618909959329494980441083247412627251629954359699554788468074533244867635262415200006171937615677350441913397543441349625677946371992822390000030706243528543034641120663224499824780106616124287328774597849119116332407806710892578086180248733278881361079832263893751355950878148391204258953364341500374212393139514773809327602442017214291564827879864818195268120057220282556647159407576915011532465865621367611643718270433369945152055776543255176479734400842991144001540838269929968885038360866360042322913592061483688364057827405220862278716484058171453353449420879714128422639195391136722673841152624838635959879000290638388213563757153471717344422463482633701055450348551800420635777722134005580489819103659208150976420831028375612293208976044040266705427113193845753005485331593734814007328174981400656983874412866802156109165260231765020827193083264042852478471233317372011790654600165054358861470732323906644149213176597389253179253127598483846148088952811825981167769925307640480780135862232109251083100327620099923646568925135416746010631245846147113476615380439166605401928840611933990293379530465306630948326061708324255331980249508029886958968227882295174959899267383215219355235743364262280738793783863623658402997265571184333848305315626563431356096488861252841045191139334291737468904140945138198034227066759506572055087616297814232458592264635557596288260382007703206798007388400143060548821722730528822327195927835966191984943443054971336951936921735285077564483226198309900779683529628577853360703287542411551536596612571980118653504128244659225270608551967160428756438039032487791417846718864954949099762699468239425709006439324310666137318550009581894378122490471063723081737361800307727253099776611641277621562111440923193181246106858090243918901914327463612406029706230790306627354470675731677532853766153500151728524440814857036384923169546610421452829070646392275140655382101302970871787116039444492434008897371018416614284913860442299474924416533904259149275881482435301413676712802644318231155419622505028988546075921262732378142022034975311992160357353168470750729597701643463469836812725832554929795766901393521027361193144239175538858146962636362508429142736492342672926831148536665317125509028731946016033380530492078667010909958457146507900669942847010075160556699461885295364614637209720629427124673386722085401155387262244903533075018591796894480145051259648054394311024496072439716503681044765372829704093118799228898063574925413345320283395872726684753959633420677184862274552696201367765653715044170025569665199322922226194839458021727316370987138696686651769050907323703630975989363631036521211252388814220322381289896854545294008356149601388290753974603449303643890048921742707777862319900411707261724695930131106951153379444465425497226689189786241926079329413116693315582611725692162591461604539748436284004847410192151430767510182360917625352164190567995177711424440829682735657435059394201182108092010828761943547801843700770733228493115791305037601758667198779061169712639523349539449887282861555400318617876762435956287369291509575588853367500006978519137921102903544101914446304986519272102591227875272032995579280188018534676254271247168156489301170125924215147069862386426096412856357329634429551574600048102759938627970856550763096296131163510244260038950204610899610321675986379531539255857921977242326698500317388295984194410898418599412307890761581999230504853759825596229196203596585046032092310363969460326532892073251402481041334162855553376245585699848142550468785160573065491733840755434373907669682338687536630279657344484911143678728332856634060859642171616365350941733997755079834492234487617251225023313211328799134984301073826448890810020012496717919406827304370986471198857737013836348250478087409409681662077663719865994645361634556379834546782819367147765414078513575004773602268190597047649927879106068239576777083941115643662925249294949784404261693541041947615210870564819478395077927714859205906426124057619443225401254047632366756817433044339358261729722753478786136746418016771672566634805737050945724441850216566124439178489490140917642679371464311679402111056450987150266341764320652977617608702500641201379400803650681618913431040090237884960877445142773403452300235702408055823096795975911120646552972645352382408200071078395687678605169549700282831459967636799712072678689728074815872373164750892993021805873966283377879308854409461293243082620670588598033605436792452154345680282934356222482426197018711693656522262211609600675806486026278400525784187717135917097051056688717140289245752105170610915606736489908676657423258197320547723127162003078451120064661330041629050264600093534636247473414912003307968302353338650549976011395537282460412600106982504724729754466223085447202489085604947577123981009134145684219149768357926952780358968645346754708341408296550039944418401373783677618946066881356850080076069666521518181667741215019070219871073730228136297181729947722763084615116197068937106734957571362686318977882269193085018737510618587304521429226699803792215832069654485172675086429485294718644616614323919009085908498048211116966934959496696246048832991891350697376130918081009131047658621805042184865949529643596996163850355456479332833909927333546633202588669199040964570925977413436832157553196992954486246888245067392097613751005836389928576390873437664789584986142499543239371534819205766622964100140606906737878765481437346267392387057007658710347790939524792974650955193296710991904192357137394908416506009067517037094842650242278708938987441878368772087542900495411063870833100424046714363385490233735521894686767120520367082338384360129628942078367986731381586118979804153533691251318240663128632238680566611766038266320466747332758218499026450641977841355754489938146687796741582331971586792789560578904648538841247813875620022657925768519969771101396300254445983985446509844508824020065382252625823466635874057820793519934290867028986288814388103585697049816810975330194449698074714052073252843051850805130154490790711930521848622624301398164489136730896745601252474193711424364980688552118656228810923236198259123849960132737770035421165962878687252888019172347993269721952173025292593294448371031002883493434877005353669526674931867633117622037538665010275327052291592617866429125683961690511100324689510491791013951855560496970728831304102377322158074980221051411763039920331104476871814130350086575865236057209273701041947666363828060141716413280582492291235121219291140407437309795034819218831180273969749950967898648811737200169653701084758159874739716092968412326705207739844679492908594728153696697168543034572826525296174942568591849933708239370519831093723094647540999529986457208152829030090780050916989113798681905955667528947692199351175021528771808732226834474048700026608874980606906860148201356789857339906970284361393392352357212147292910014038681454432524227570342884752814837376736777878426934104481497705297029768033992152690344700692228971574440697750471446552598323815960774768338941908947697173356251437317339267109925449739888231829061909025840835286853392050251048004114173320085883863882681948400644188370624860218343618193872632942228998898342647045863044439869739675282793185854544142940345818139590282474927720580252842303845898872601805633375528907621460205657460864364552645539923825359726800021398282586239416779842016404004453906852144117964513558233531042568580217038873423845584766003799175861766804262566713166326190272930101260967904857330665701202159324327627718189176271851568503881452971474908768554925210588732064272747364035776874755837393281214897220919778548899717976103495395281367660622910700471714913275183921685602084664012447155468950002006721497916857985755546537828995432276799172105858824413766217841553259250632647967375756773462995373652326546718706459058126992312153882459848479052457156066575728401946686787336520967185187990514272143812073814137462743683504392409894424582719686871337294257773074138087182340563343545242481761296395618080950175047641609296483508394979508969279960755320778232581822490749585534298253815934033469040243634887204296155256613768991146425032319347864960467664983387307143910828336837608432733677038472549578819066200579597749245685378945050524675930964150364298352384385362395063471454821058139979974543909454197388035310656469669057975307599743321454967767576168980449049928928574238167004131160972099065292749039801709339387744842898849264923554338969979022963391363654904737609350024200742500715615931565776449632738843346788399378931381158678531766509827999069386383824683700251621947461836656077544274559069818770386547440333275271009018396610366484808494624844670302177301849091920843267004993049851942116494793349725122494085679651301113400318708773101393806864841652422185066268825118652362198319641386582803119914093458653317086925944602093822673960441216525727245853067711865605087909230402370080059192997907914129096480748604425789227929739814297140020768769477334768268678887567706198869726022819055986516196354890547154571281988147810185664366251040316109000975015941737111532605555633307310118892387659098470751199408931509044336869379243779942732290412037042879199977307569403468231795489737303951921518905545368210287720531427934034631225184297557840968102394595869327362332148992470514121939574079252243862560596691595873360464309097447521491138330760845650886344994913556826045242301621670334521032556484995512740262377484896359587266661249558857566890760731202381045206554782287863246514885665209439021041946273299418633896565118754088441932679172724365555686649510016674084376827635514591309630347724340178464227699189566111360631550269444546258983320993858102667920264908062628101755118441730231841772453441300090737724080684466949261946827373014587123574682283650217278487889393809661334005399806782954742311397499850303148176601023213390685097908957748215472282285943152969329111795996038575595414442294794011077480481641918742640184550838956427324715806945695257001427316985848935370534848597623461467600373153660332682640640537203311797027158510891921525651021365385204789081592755540955584666592737868817841487231663140158608255752651817229968483897187293330107484151597126749931690244592670682699320560538172664482930957944383240526054306403790749894760614625133189594173970777655478202223721593882216185141593388999654552122303984951900125578723782620448086653825215632438518558235278629431264963118245058936655944791412419584808052312854136906865735421520688482356591803461561976435966856491339369410974568224265076735149476252367931028810429223704063250686537899619950066296540178894777546200292534539773701749210672600185693884749836364662835616456132795667274954878876012824968125562251300883750718507068126599339838212645593184599061877573438197719499759696144093039980855293667129323457056745878221419553513301678186649687004999726783325988454637612592779808065901454552213571405084093322870953603411823820297008490619052550396317811129248774762887551425732343178148536621098135828924587431210447535407426873225638823878224926620712167024829083721120444843471038180616633012415231741332696287265239424081608768696666883588154017641308714382738140790080597660934502723969764571793461388597717878696916837932187446758931101578518798923472201455675393610149695011422181366126908833703928466517052302585565384444879251362524516739252328559689295599183047349029339159858207943143541497072011488990282794609903924462270493568852084704922229450631025788491942859979139482992401865632610917156611073423273132936762051927872374990831225614342344116223271253229256155092332304072715247037233119597853039118116625228113790557111837660296231398029458691152195359115604939439933243865612755422470350958587728914225464010598453453458424124788203303680945787089252008328630466079831638047980687688078175621034321326372999580403257349921543727331689275109836699079823180728281131134802039552600973726591542636276531332610003647089212909711366268208545468332096204814250169482495743243060191967808001224614013807458338729686049608376831882403096812771634469539588154688769942838730530063924465239521612430668495442318700327982654382768796168528720159187171356229325682720929206783067692448653779013210851548184179709293494214534739864618987129912816125017105519220005813308194014278031223487535582156693055660344409806976318255467754171956585835273197040554009444048320281298956827096732600224564587007291395353310393092709860367144050675190946953231151897702367669699842273802343934321791399415031117102925893099026591068995849001301441470051168265567138915422052776833376040508280774142026105038793435936394865392401210091132818077397315716121047979208082115689526606783691490447356932302847372104794267392690196827841368156847260054891630696940655199028317646170110519199006070597255727359621872230705402756187090158527564016300774961474144960162749725517512301449602486538498660418454706258789294797079194914902791694292833726167640830077268953749978869139919110571148939131855006311135395676038522434365023713266336740327531037406577256462784070946293007663331503360811516237656640032521568724403640529325230915453237610253617616252319187351108414151619190194653175368159253600120347796830177266662851275825167603567732373765777736943283090858551175534228280444636109208744021018330316785231704540403348224499808958855434318496510662915176674164109879126247218791761674792073137312056832791349762904835070110233605085285424931148039791999807731154056064643399162467937834422931416133007919340004804673922493382375248884717823396675504701202705980635376760016180338217105013039612453428027130520715980241875056504058043986023353853091910480179392467374172896287855127373426192171920174214738170019953376639234722708622420456208685723002069578428822445347863814240482942564863793122262662168112725206961071458582571518140399805455804843883295154906631641967281196532794446259609976257176341190099282178316404981067238988477663028590451486972641729498738361408077782755845901045901905381103781517706904583619990603460902743306418065015330599184962032070625631237368299050571404829105494485336375836842520916713916930207182786575359438151842256324475909860002240464435119054786619541555293634128400170549007377105398156796045933612619178199623945475370797933838407889555039217613053703612957139719604906207022357692822127779465800186256855846174115352124638106747370722319091207807518331613205206588440367046740663746993652170450218564925766102239361620962232783652630816457032735271552390949867298928088466606683247569469762102221503211976286925030270940283988114106794393455016528726232188738570845596693123769198189506759137147681530030093660018123132835132271394856745698517304449345163883304250634683033034156014650744229867175684258919803611766808610406130193843074025399892633937824524435654693370011344795767983831420615716861595883387345595513354142027359078907749174321949662433266077187673753141379903594825108831775774945646443257921246694477523706253893325889772205223853976783739692597049946449921773103893191458345058820736276579321756386282800241294132225408084678555688138416239867905975810771156742468847350247744802780427688575010003593743893500879099240642876236283823520712758872521854964835848382797498902757900580163603031210831517643283003678833903003577812818544426524965868058048554331900467373590344999816055630039260989270482930992507319170989127145061691926730673554463834875166473019549155861181188121250723845476908872998319236305924402490940594578014035680738918289261504986351099501298252994306838680778384697840659967523279656935800791448457804789627128452523571700076050316025045434003409433881718322766730916563824922199180428688684576559500547551544603619230603517511145995705377778147856277681086650977427616151464039919114062844163694519460087164066616976828197164766661332301410296686590777321835608718696820931470066756315719120666994624253476327289659104976089233562753502218336326983923408441219970038035371350752594440555043129367927130867527504128465299935946457385043356249162609789174856388241087524588592937098161525832701526264214033820463480854035982397203918573377707431912912067241733075764679445352468644858370058361288716774943125961912397378912956255761669160273304587596382248851333088767084007128142886730327721272029969718176814847166473711424591164620883075653096426917013548339120562604210658103120080954624291183334178339243144939109674682355742996115404483320779954366174350322208558634631707691352741523722193537922454468869519123181511940015337923747566881443791454402727933429027428412824014654574827321972136648928440466614740161976104592349906545724186019157631667743858570266399210695807591530124529751186676467854591691040324385564126368417274037511245647787459629730957177353356046721459066535563275566629464380990053350086330848110511170801186600874673342095516142574566499984480138774924051494582056943842767043632142920833950347331842810713679739615238035070000772584965261775572668271473301145663441488403964014837071868067835779761984445412307878253188498917356406585298344474004721991252571697443198530171072630480106952842429740495555148802117872820763520764165496602716304696160776751864495169876919798997822525013793033130376704836004984079231663110979529461652864516674148903934357068659558186761040912738007143083389529389626772349189216559593874907225763811079315757275550607193567350132572957887188311347360716475248522785668199484946795655572836605401366538655105839665202430235275486442780593331162624546900546688351256497129835459651906180673833294026390472519131182461011404919008695186326593202695605420942403787490232571689095866725640410695865658947049922710287838779443940163642026168611334361339933116608647500439803884905471012684285802794899815225142046756055446469135205887768575102046539059308106608305658594545928160682626255926239045465038428646233898824923244699539185352631521955861980435549243316792401330860947872969851122526078624462461983852371637397276090635858371277862497471430266299196723875654852926573402984419209740115972639999813666352756597277739351074812694474014318516190832150240619196573285351005883602060860227501575744518838107124918836588735726911034247645252333847840027406679970338749241808195446993230348252846978285079664091085057895978792404449522525742334938945914497682083663739189974753593185313534933290785928458849001764909143366551231666345004096783222970010127653278415667321867058377558534383609124911464896270974890787480584630079702040980143012346415202609851394232947689835175718375064249106283319958602592912023507266240857049944876134525830481557799540518469197519329082122023876761393482611229660919086301958233036230974820859585280134612168078828676126744488839478955021298450323588201129010695936486240052602731427065926274115837632154019893887036974122064345029179735276092375125160273552130781258160267214094241418223012025109650021933585566070904883770538589778387071390467017507887484405638962022157763647462731735418499726218232609049283258763065432359528109727175335125176754075262395165181815049176861254402236849801819496628011369685360949659367421344912613377691043253875658380712248522087434061563721466776663007217207400296652262728070538483581822152083847991080778327811636765342751211754255003895817072551745481408657585153389893980158104561267543571344078716609549664125030392136653512490301961581577287368413722590257516392701682138957622564486954608192966400178007576881011508115160596132606264272036781116793949751106046006398721323392216097261916425612524560958314814757003525175953375414013573992301307666145371441349810846729615442019305483449528442801290309689352040837995081516015487217240700207410564031428482874205512771776057285258603069632435732020038229067655033642299121956204850895454538724053163823510088018434558770192639511691904227802141563455750481975879348677123463362245640942186302488261272482004744783484373561985639460682864988319133917708104581394092389586463524512685567571319696593918576303104524425093944746171668540056897525003455324556008510048791245982479528354502848510772425418202956256114662849613609873149252882561427211644518554490245272892468924458360176938498203427053609858712446585954321382547745563694245313150885353646019741717241170773288291997922647692147609547130217187744695211102073938570898238865459253684919830963250217688660893929873028705507781390111799778690587355908567638987581040515272744854491845962056761685232501731741696728265170474775188512483383001858017218852887612997545563226022814889154820987319724117880444177819655230267010080726100404558714934760402443937375272135230308323226714855942483952679316817993972884888903398921382391596654276293075851512147151846808403656859958076281323033671320792367610015017110770261786992254211982659537945060925787905850160744750308440809569609098375132775887042076312978918197047698176751818979545401079024852228090307804315004384795648300971285062778773609988830698276185299402241795136707219333450566705024301129309612018990870867043365686124554129605705874137477746999544216497666424037042440963005686671466183640910595001731524560917784628907619156504938889203612577400267618705951874161476247899577859127592054256923695862566029190093075805161869510657772184185856163797080332241757292985105188986622786843337992264065938351707726937678066968174887464806881318637290813097396760948351387138562306111707695165556356123146150503975574764969378683055316147700977257590760284488158556952651127248496589725619419665412799790997131958214095510817251256808518660837553994963739529674432723701876876703420459224983859077932150137298595039387094589448632675487509034635430258605689286078731651333574325645777950350358858179620356794743600486939390891707923597130896042031230264823465439844207249692105920606102825344990730913064712162900953683650247505518846133224248364749705778877436188158722537965719510912419614517853328255608967391713160648694516621906405706267027668309324446683732617281399417481452687921434642019912724291810463470760946584109938289038812612585386219991201374226758848150593440912964707411331283694123532564057221921113865062797347231368541374937257923384917028828678153984526402456542197342708109933346787367709726084988947978603121000699756717156464595485009128376863981512519851561999815359835534166549785712498469335610169099277275119301046950366236158231803011419044156994623768754866479830757566087579683240579584119708813764908846235017691186719130957680940966345064564339513065864437666127659594253846816557604131665072685307349961858611405403144317316274388900240282262131441458161363197977857055684182363036657793150637947357555236598880260441005470691467276974992862072084441237754829198354126931369919878563277894718526875908979216500518304952813646179151342557057578930073064018299404793478532069565623731134671803110791160599736985952272986874327115801541242003357886111266347348726449679972619873788288272176252319334204997311950103360269312916119689543303176563305053599063926685116212308157697145888575621224578702424015605798263979867507327114513949695366812767678664107216079656939370392958065433388335371989474484233410853499602523366683343073398080664968350466495988060656676189525590426814537262563044563340963622433724277679636501656057940614610354913342972739725372989624080946664275518826369833387990253298651096271641425251196434299518491722359990959010826765926434628288044184447174682033945356891795360640722368859526864035443933195926025878805908629657573038032993815393651468457650241741089736077884086245558789528926712181477009504968181146429600781570922418607071706812183446341375434756027566834039380020852223107783195710937529087766519399215665128626341289200772852367090403174543544232791921469307603054875010645486293757363296515481344879134401294549150947468634757095377059390275691231365770777764405278971307398590215521165018810772869597957700642609645630268565270599507271889457789154065961819232445840355586155101600002316425473027711014908883514616217973144839374585350382418251258488644855442527513329018911279340200311260497745467258517819783724632871878686030178199602470657176966005675310177369211972180006255520925761401386416649963963435599510410771155539255007414515527396840921605849779032872492211087085297832685205495045505773094087188098699097179829467540413846323035376329724642126463306473462805862892233954362361341815885575803153271425992328233010757055656101946133970008244550373531985776842695432026820103920859226945786506378864372823147573692364110856904682214620457514438686381490645217653927857144563455435731190305267338521704893228005061464319211654440911079921696746148110716285532453318059666506477433520611789739495746743066296847408950643725887981377966049431066794787600161360304766641395560629829426830127618248974139335122467742715851439728019744780215250749973455056303094605758327908972515959789320780017644228567399133496100305822391234984928061091377702027583886381524794115692949165931739206630743540496704112120980252491712617530490525686166079210299150586841212646618839795908508933428923324771416420065919392490104709277319547992483456231578441604203437972688234312191053540633722171449455165160342262458413319622600458579714357747092646710011475014845243001611956769765297030569430099921081290099257498242836795347715464078685532382705374729709293358786299990615982666073450152473744857893715587776808692854200183833103206849024717011573318413593458083126632086383356953711933074682789335384684115443291072624600549957658059203339035101172413838143452923332157101088317592737708930906488104708807136363064146003548894042516872191869313320373483036043344927143374437203387927050446676761357012859790588797788576079543812759930605223496642257928938521619302183542047619610909405829459414272041265586200647561633868613924144416315180875737638478072349063966199962353521226259007041341741011693124824168853983554223262953834866583419514195927791062054729681161961355029967324748564870412839575669670585235009222094910832483513670867458154522734452218336812751632609800789826758997819288368906952058702882842422192273884724165755628934218668721382056335283009650517470149268306306865467842071163112531571026550584991985231881885408340004418150258184263184532368723892572072125815129394507908978019449999900452535905812305914261855025601029791473171985401938298096507045521767375363719341985498537657444401926389806223611446828396582573470995272398161635307375638846506635269213053418535878366591182280656244014616451523860000683780501157289901009467294204011038058836917320678880312191601694865436371255674069469968563631852456321308240201318583433251115561542792086507462502271518696703564050480414227929488164240118908767424940268096036400383251582165635769907644140132363932926462133588276909142025251531740411959150755932664639875841019113807815304689112453911656906595398743760945371589378831889939911747371774126729221096256562547649454131379384158946280542988712278479293641015203397188676139544130223686570541373117320809324608955784791011791052795334195669469100642902116377412173238247590069110372708959338466706343105902934480611563084294196582753467611206161376618758722767508014224483667529699313137639015865398246828571480610476536841562147100903525033434127528136319453932387115167399297360360729460313186488755829720343744771195482107678108995614489585862690228150000421015040254344104125604493176800176611422966066173043854399568297945340345698243069484665132148096156410793152004302714721721840669760113952057564045258528711450785982976401510203256352086637268179078533433394183582283403219030793014637917376094388552629955397422382269523565806708276575398500661594421343851574914244259683468402843579680628903006667775910693286128341585142786372659304196984600210988700075577776347169439171933527783188728890301097917994957093831617344556013119876612148139235706091587794756682316023161349097632574853837100755284213985696696106907753981450600479071012222646326931231702676386721009637415279977889188098584809440834919961692420159767909058535403450844679258692483000843941130222210208836958877155211555048385897154270983263000190511644952856190359493167083393643697032724286683336125943555366669326877462715250482706027336693016640888778494630540971166574038977462491878852355676266246999973718966495467302485257618584105591899038761991323960196079017079843254312868820294970862941063577892770184736957792693313012421130093938908423420237098437237948737134762956343100506814191592203948686491655801332583610540394290419720695600619058670056709810060409658009572619743128697102207611260930723349281319599558054864348134753566675923226064918229803779341773874682057192683562641928710096637279672592236804316522633879437037659431448645358415233674430599992737247050469071917204324036024208826056447209165942773606454083917199352364098437626322666415784168593783613520414209786025743323981764368549445575519788759998402933789409321577488050212000113704525624643676654743823979948868225995990870330234598301868185274245598449316550133349145782435025145888390223661623427529198017941653983456512587926258045305809211992168710414401374459987931131114728702552482021679643741078334691753867996448701443828867042817087846656489430926419368300361732949750206085714593005549174580815938582192728531963192363128360568226681304864500550301141386194604271559688487548741073417473412573430347213323985749326059638893904761826015519804195007551154593815920495055330047238972861230804125445845949150701103065248115815882248971172462869364640854676613624829570747448678051292820874149559736625189519571135877523531073974500327360632456553284909622287408635610495288683369658326411336863428095932456639186560044203597260731369508804938028329280319668972000935233483532618589874063554760036045970779172955134446885335647141312062177392914015739235051372870416863819830815538161781854182560626015051335348928549312553002232726438293819019975038766910992489512520929957908989935677681559483127506767706531362465986322328625773579283088447476627870560745116327973121654337337004794269228384489059339417827325391508946328300972083739577610479733249803420948340648604127879585284377868398027811258886073637083240555215054959792296395395091986215167956975458194933583855324578333317046676582867882941251615478713402159396701486425181075009993772254360800621936489871650360973977024449062765468813957444092190801499188737567693513961678521312656801423281195101504127321013136053828023261620782184889743004000788162757967475371070703900492768035227775293183886543770843563933709501121922732229952383929005003979079271148976133068921725442536355686499947655120718419071869086398849613753757252526114776459537395750797212181350789141982937895129395611780505241097221474036168343994852699541014444219649750448108458674461779404527254131970683575291373727687259826448884452608377412869587511708767998816487908913490322047311378704956912212212879702860903346613543747882086551700388154588196270847387355100270419630931638978324953566262511054893130452997462320802764991593688953776406875729209180960121948683285077384462276431484552781826701995926929621206971300258135155408756489468416717387679969247456149425301081129828203051638268960398281754506608614122745091606808513864995023572886000522518197612365659803113867215169574211921582857459780746820434839159281213894052557235895793276777558724125056369273804907730614026255044198830350755557941852973655064079867295255494848735273903254630017174750347050736436551394064468027407157190004169994607666403252239027505160427022775826428252543558006754226931211734287081138910036452227028781264661880960117962452411489986369020737082975590202938279828328400396907913053339202654786853361364300588435317165673918471909919282849325671260943961368911085264139624728317408775006186256438546366523720836065346389021508102630428116075795075457363574273793121773250868823783404557692502076219066897018828591780152665024070711471217048389474869435651830002268401061550815192499872228856420575720335017449137355842776979545616541929255119502114190997542777203384885107808618743787639204773914970129996658215076244712220444784947489748685799149079970962741470970892385629474864620259306431670654852210054101562767794959416400223706427281864813871041968052201398903382070009855385779414333923066050147439005944164394741582786964750510892840783742280700929580717089283478926025011719914797551403032068060171104834240507046150656758594396020423992284599156637685557858591603248757842538815219763851727941832663052137977410996520735089183442939087974737802109174880072461617269190116251865715781982075581395900889232167051640343598740851438440886104977810500328389481195869481400763624322672969363642686851206744787013111184864778552511801297349020881992279860309783414776318992743699212260071145953747949641063303548847530950926308719100363489338467550330301949922404784407735523745892297658746015986953204162497491364233818725925296153058423140032786294057739567313041892697097671698958157072255136828592852751814548956887834027626760058439537895039126725160353424512249274785310873488900792954875732588062951084030430810952084943586023347729542667408718040987660105540478289922072667172023107683085832491592095909116932159354988309335173322280609362828506388019917016308153293138171300457714444888143314183570478313356337567013665076622969626197940326168412625492986681190259783281606249150009694359957647712712783819899210224923928550375526327303401061661754963390544291735418675889872992307420304652627209474961435297784406861137408592993169190312676849838020964199734213110239661132320323702996195288875077602936223882765058754017348012766999385288153405719596902588361677088714868960298398037774459484687461382928959268919591207345299555900341778180306077681824136395280401682462597902548470292904458379194599107799860485681338845922874092099515361025142991124734816876801427398095565881651108287789815038970409840822964744797907931951100962708918567136496057834664943880227747374752040571998309266761721306997856563156485465463579847193627551900083752273290135482080588415002454912892675931255717412876914262037483407784329145705564345377457919825563255547646294700163489949946207992891001936681790733360965047574888962517966019043077538466002055359534917579248645992018250214737104265695729002110173175543047261620900074404371118441594887867731454842570257594876146827026797128053621536615148853028073305278197027770652119393464021489342038239056803630550395354490318525914969005512114348439796602672703662253758845594122253933715852296392545271409451699863588518760762127120199725133071484115112868492689631713811870616052568850224496922256000129079835855642266923310744738760439662205043055587644418548287068077697987763726373354014036523696501396719987028502310611462678996804705141436225951344242809424052171732894556965782432284910291022277140437310564074222252676693352766417717271244187615008947513133286060482477244085138274402478095214515222440336222508786584944165646380043392844776122370678590797117837891393807155027362491179552020879776921662536171451629694498090238475904728948579201708978028941960294724923108462936408606564557050585861578234937546161654314137286799991899236275485520980271336518573050619296849676589842621446935971461389762767728582972433474594976814838775748701343028761602833618307559473329174271155565088971041542490640498862189973569866460054227827240205136704674971822377290696690585113523862811879278636122620265436192410731335153923835817942278982014639952103295573519608670245911364202482845900787627458693115918523489713834168333077426655862181016201098066891105766335867726149945663846980602322297815153883163326261893704419103949804605917915132566154332968552130421361112301080447493469354469675207019291660809969673640695829595827453955291986960824103204213198841481453454664294712307701734007461221127108291122941841704583866192764543459845745397855964581414451764387452826098196612478840580104823595923790045144895870692525416884916376365042390178954894860819878289126198187575510744426906037997106451590884751982972337366179210601261902352151444000917352038151405986347791480149621877286894270683964785025929659553199337509448432615620399200522880562636887117947619517242237512801273511854787462271642898189270786943458435771567436785965210853386106252980548818517911658149581592985748762267105494943546444530134471145921971721138628117575578093315360979391289866330279916355169929030561337876885992700245193451306466951131059797621888967907318844098310109098595413087447904966684719748392099715093614237710218469119782251376689325896574445703148085329728428954678047737930318174477421039735275248614492750379282062402023913182352939858499106395218743442253468085044387071203683803349640997094600349830921431133701665984798692572377893878233152781146166908980739309097389339246348403562289963384078295894511155827171465065791909563061247973207236282010467637106451711949125204054023502716398607022957684619330569113873944300063553885572680840005328560960754120549241021837953037037228693421452747489745877633036838042707963069801738165411014976734237984651256542346604223885176029595770999840548608768078882249311163018999567862295622331167401724148851731715251732187747038161146678888276310222166564377039017121914442835775524625002880047241506786833993222382497545398231258836050701146724882956120752290545032835945589888801635070029093810198913271624552267359597745705068461066718445312466742432106325262619255613206445561950300980720092683822296362355121803444684479483192735403220939076320009026988135821310337389046943314358162821625493554164480809321121021157189595106642575014835111877380152579355243319936684355052171054361358799717588264224845959184701045649775474739331417519931503988436556248775023076489388792782692381846594640033998013609588513271279988739976961051076716156074650264688563145350139031102673003053010735906598170753735093651488264407120143226972834328675726480842997096585262384024358616612267863082448613142040902792977655437561370707664132885129549882656281416259447432346731676648561120679384811879421409797521589038247971102796437151787168821443672421586089850032840839380311728967494484152833272873322642258479289553614433631521855971574015523529292712466774849084978954741938681152478420167191513621588397759336142628179854522188104973450907166020648888681832750878384805276509533315967235066371485664120991551253302172749977191912786788420974109973266794662849886573000393413889200440815654501848614236168719191170350047246112579360319394970878693102765241587428757998620232945076288449266951724610409808964822960823518387458389248990270594850346796251399546373991473206740932591190009507690698426577375261754736171263983955936513695846755835264822449134505121505702352624730464416844178150975738295977687449770831475790138597607543180634412747580641409292577225966432527116332091403535947309967310412242611281573846516657030838237428611102293294058345696533138182732046199079080570390330006516753609175325780577957704386880015490099123086426245036410898438057531930430407234432364950361308352193240203052631022036510744410255200970785469157115110531627123812507352099702729151897398573067621278458187968062692570140248417846301200322489766232648257584651843928020195563840394130036651646080204394738634355563212232751384018739210780859949863435105047584580133081460290092480562834658834391721398981254860153480184507154754160013059386655840786823436678718821300201076085329555627330852042572939385442121575245937192269328384777600415334965229009899302924847560663840099311585883686619110900768430842936758772495690504509049631719666310656358496373442111202871956812955761171340855167854591263817012732941976327329373884927806632222538801237418304343499565786899155487587722850501302451186570856739329656922105072740611864584688619790780203576904752019650093270289989034575166110364304532337792511924765402119537871266500881829628959664195957318765044147017519463048820492378184589210850533639774691868357672558883299179008122910401754851319215732176963112954053352752595361140712380885116808626906603633607950025388993687144735398050949859052031933330629530294970935685005873670235692289552149002843913922482133697238179019682035704743541753761540611901305078029134322730633999505906310347148988338317518189918321712943621432844353962713511576355165473853071644595451842454551764624157979306305263180834506396247905316810145783825022038382358309751644116444987860027127702690500312713454885315758830925874469310512293578898169664775708326106370343861624966448369479451372445972290458848818403242714273391256508584913031578663290461953274014685725026572696980603823232559699037686202861025017925126065247797649880282438731376988536913956696089338054633385962716410641639385092365887903248270472257716889206550511107916217731692191674659575862704239360911102151085281409489901637174011542885772115151571068441581378565186785263171434911481617553557458619379156238962193886548126080486610517784000947509622342004967444213383409137462343793567144567771412350459102431275250734717340551026077696947151280992790796992198613312710771962768058925351381418975438355727315935319587583949152133199000123263950486007265205714197608178861676205466897371042770752977125293915831354969208468064896891961428151332703887077532390522757128560024665202210752681920223292844696498047049610165764132180940850915754603749012113907933713926312260909617765486601913439329072920101537291419824264811710426768440026007277722356152327972212029406754187566244473174320939253734716436445378844473130533788648171097445063287751857437724380239958679715340560034894546109753937317456664483315326389969299918974543975271072883208962877821755630904317442738325837142337216962087171141142639664106678668159194155798191768544501094290423878347980455707595160185523203216390584871714652390326965502037877907027027373178320109401942426572410886523519473336450100468683305872962015400438141829389212207323327286835546004372527894192850128110513482575919092514552812466599960492916088131508121291828458411884801572786104754783957834702574934514017888560595946667572015634922950151943960684907453046554159049386680685527383246309942454411277110432749441291465042671800117943227721872704097740036744680164488012816102879150041741086627357951061954707081589021023583525028118581507059142911891413469644467952976055401207278204900912826006075755053764263927810668909815226312123690321070367504441827027682532766950244729734894533023648897519467991394524932754318601080726299094860104789927277741765688621632595036601451586702826657889673139304544761212639691549519056712762389439827360997606464558419172939555138038316000481549126457689333277414617857636821860873920948411995559966156934517129109553954145965972610095883966426638244339342432457580805520207515926368042824853565828288932141883864939218017376666719234420065545858495646463665398903981281978105387149985320935088941082130665763380318592562372960384576110777405432148591164146319424735912096148756952792360056288700012997254098418897849208785053831428868364480812506840384214230770779727853832834901420273191288874298469376164126409416275788472932962525330605888804548172368064945129725535422753083737983189351819754840618277551974781082451427394740795517979885967317643721502055089631442997479587366887230099315180157898999856339986933729069409095526370516434506446450644314187492682241898926569290008936240427803721214311618504856386458141025717899703401387331263468482773003367252093321317959115710696413838620194607082192613033880795790925559723894310795939960714963157701191237115083897739838532650667033598462280737703731619659434980931975595766320479529716445600981615390771357142858268154690642458186659311460571315059288275147567603704217734254281482719710618893051158639229146320178303745931958825416750653618269473061038077527963681099428700199820989169939164671139780604574731089442067005830675065214889689780919549066275082028688827443035342882132665027629303372051966280044383602376011899935695094021520117675749604542215110738219026125442352262395213613064776816387491910378327441994944867886048353561339612884924330103090474431444771100801617348828601226900445180138079066239747066247861266775185374648839762332208422448582680606994424839345946466187601489964108134776029458582481508867495913262290680477179241684877346485776677499824341767516542503776344828076230306581071215532903268183755730919405230235823774288493294353029243830079557580802563580056781079841548995014785472559081474852090891374468496059454091328154342959196769016079956844445014909147927079714727591061674494797169281717512107170769742110705855980359976885106280927555726924546570533187940879500612755836131440541034300029212239280731212437927837472726498622224908700032674635921401221865328890107880760754692328575505917763964698840072786211634376974739038820328856384603104862014321938911360525657638164583041618420991682089915011277072870471619294694157006304752364504677634913142083534991230502970204239200381943637618844367306081000573600804883057738881954314411440044016002288633511223174969262925146888050117673437065673164869796741124607561605239891624391762174679649565396514039005452669114736527698406860861759807440615827743165964413387403574985925968912469729602885190819152555327178803442050435429157505151547905494004107019600177895683376155604773896705692272774350457679214451538719279466096873386407861561624041922851552861248224145356463134363510212594323762100725574875901857894791755984529845506308413135779349466115897797518548774311698563652387338579664251749960319292749177368333378126255064050734821688179698013381704884453278331451814669294311124124915525547673996046340871130256365804710165530551022188111413709078987083337811477737206309100000557140776814230263227088337970832234924116645194530193204683430824467752311359811405990367168566654467671937227448413943628984230981902887483689419701084165427493258803158476114191447711930593321708819182850348799928467903637863060647018460439296394917093529505263457475074327303582552021242172758155205440961812517435140744906594906546318512840588558508682401100282967072908451749576794409439075041575875285849873058547164052220645305529251035425674441604971000523962891884365742145626961943865116649465379713573406661300312473611466504437312073601458928578324987632039481266284532157260789664188261653962023434097582883866642485356308235189795682166651763669304021792261185195021799638183202313958760562784033764398920636660037756089119906759595437551509089079055410307985534719609279185345924654942727033282653610632154247934842227250937721119005113030110050098197397944316815172596275747677370155566816432472736118354156398153478772840150990232878007642046954571712053517929684053012143729129435260201912942539910856840764050671231190451327064959159339698344109056480160039754915136430404918171246936230844956001497187753874423794578139283876668334511014211469341996196063299945485247224403597060932669298416431593112296250664426612393087981108814057760976073062038064859055637438663549098329934706526895607083907698471897656238470449647046473652745313746821658622108129856511900267459576497703381598132990210508499160262328798819260360816103711034881741382235958863472918088008116029160287636551301313821144669085536949311622848976990160491183351796219039985678289339147822815285826386981169404208651847650204128723730116270673285012043599267222204960296880475701387887078474531734175786189618975289586259099440335044505597127690584924939303794989502604246147162030476604301348178217201217904350193904265611090330578341066607646591144304832820926648023751036288867981379700103247267068574244895453295251018954567404638313864500761241330762664845753591250989015356472805647243652439461293178257241273733428262997753920552366623997166320255400467067929861728847445696149590253954540611515047214456824696044030997471987626034682224824071026187036292716167914377371148455534552823936009079626567240232856811123748044322697330146769267800119900385053530211644777555560560077752482574708081680063550508899570935469377115529325581495370994321910775163156012825511827248124764736342745751608690011396419855649277775085438282633847852762744756690067106122002344947703798799697003585787320330219764660766082432948143624308563393298330607418052597450372330354331761669098388851223410377125738195988784969367385352415629442280301300284034547090453845515961178818921322617653883942902966268309715206501726034359966054657460372752522142456348694339919167549716550863086088120886262115429718362380796123335403433570535751580872836911550841882212103743812871477196563485132128050713642351500005330776033233695942757363654921548089262162931018626671555016077336621519405081913896253838632172981969290184185455334098478583284174687198353331226826155821172864617707107763050979473199652340313841142022194447240380554976748338127674151474489360624442576785866728925387092741002209384032534485145147006917834234172748855852873409385441587551165554984341826611499690012253175275303816527782776022227005752237620484619124802211243994780851784701909581525255670862872551441498926282278014724600877811212232602998414723872607980796728117478338661808570382297017253784620304334495184235702582052274594823780423389798777835583201806373928808190039130211250914643606328906391150404891960622115604889130265972761998587844385968163665940942191900612280236412747421241332696632844433021616448256794778759367080134123497400459110638286812499442104354911215848152277828464895254957599847240701533714304499501424245272749013752131395556060697289749050545488855434830637026584993850874858888106852830173612402992525697726509612637923693463725747412312566734233822717103362292412311387171636529505439680090497351200627935203248530401355676426647879414904795519398516791946233105150603737793493962828129378015047765753392961789427606095142795174497929303483401444786681837240079224624034691188034747247751094402800284207111050122392658511802215802383662224354611772512912018888942705066662369550276195740539328684945432665469429874302663172924599409711862374762844891982455103512171449657321756155657751697315145901480334376564082022293405548295189345294878862951141099128325548273693096062199119186845363870595659306974725894508960130392473830920184861582446236955119898555358397207094443630833272771728989899273229209323183445436941508465633978558775650733330571221808786442939216298633709486639181995103453995387376992233822115778960402665760525956534488137730930714347572387594135006857223828039924404840615345861026747374650037892676428347946180785315493008639453931361555783959184552807123409120508194541131106795243902871142059602171819462206171204377721635665907021973539096704524011346472902591610639809162139338481113796063665394305146997724505706652969377022898559813624084818862841149843289731564145634306344841392318694186091932789664649401514518911420609309116993862730359303667967849584360131790736105641953415605227277966374767410764896194710887725772420395644308237964633068374751494214629606630847269461319504797117077187094296521963191447172351915760380774823797673100529469236889846290239333792248211443585300329706105556217097230221630148983288169088577148899662107708524531826007590248931499052503009153853569743262477909964915854391950375570670219832615645935285201303777347379755426257761553151788501406049366099521671954193646780493467000832484402372593217708414376558846634573635871315127475075097656421261547328054920147495550897760855061222542257944575105925467458385096541526653234744128441318452881975512628467732645295625708696291693288008665967113743421939230117457434506455284895560973426488346810963941614480708625429027737538839701863597662500160770936722708760937451156895864161683899916256555160291883427540700160238881682787458187959382720188007548471631375259048215378744482135416653444464007624768832331400678861430341591402305945349968038525231299712089114455948333063371680018538595838043810113721370880544171661392874180841817588889255760740095817208687596500710933047811752400527225627061012327378663969573194955196224927024438486530590691645974568494531480256535029097480384323751338529240396377886081894950255922373556326020193008459901064727653604223920793927194179716436801708789747716665732920552696403273659441085973087043298132382557834922894637636060536009512712653839997513338370588798281230398138546456694331850073134017717082060791680342592596900107995505697542339637835543847039731971784313466469568258398283049485747200813889545711576760858505051726060967140454031463105469439511537214452891645355030312813293055287663463157466001980359421055343089665393280671230319504282904776854957440770102700464087935218585904984392774386189667288565317373096741688626653465911023150713111794210182396133646383961641615319309943232839994099409389831866553524890289594499113284460634869084618790859712104880818452299521319430105092549734953898112436422317218269733207577203526199836054074303887198439975038933164192299895879203786553618877314437311798550946416039530785345730354595777682302945970262492574573636090203512544241031670629613230767233452872946498177060810153207725452506291705455196202926323331120431261331989538129045509288227964047802537429511411247255638473069141892428191130691824917445311311837982619610717451098063485126888402450610880911539518002268287942479306330068546145888983787979918375893723512488462266176490211054479865468562081609112653644677700054083698123701596169916334700931644819163309710270178344635855866861215089094484034890893615719933989979242694977281720338332062399123343622287933197773643700241488273715241166834940963692803760229907369919115310350623660041572542014899295598225708310389673841474502346325827813923671135671437874086727196332823425127158983727095127226910325564112188584957542849270122074640439771809941025965999089795925154876926287688018678905935520155951775363152864957955649832659743834282909905592168607364868311368063989158799784302620191278269708037188561317946424393553853716804464222475883292286689445769838881910153376543268913426609920592854269490530959387178777870498036751660540333516554827056664351747342588460108375204967192290543680328219357096001521162344421173171102755417333897931371648210509057811650754912674436439015195257271055624232101681281979502641402961155776898706468305262517814327128389519195074920333202413559657573152731263563633312103932688951748579388302540562145106819546969559519371062985249154386921471497816363425820569597529548434937480693422592027634486981668730568172610680605551351165420245186189220254691751421300666582247696051574907627701734057282693021301042313518165286256385639889634648354628515129745286714894508203683568163439606186667626005970341559943367472398656879957778150896066057783895637722606024820881547249987986015624450894197430513423186899529395723096791043294866290757358843908327231635112130705723036877027291357349175506630079845754892756997593230764238679470273042551758971962057001417386389526899985650001803945727824326267984946764828566928378655771280765232984897459018643370504903219377842015992012949515491988969209560571192282542102239284548948772176251931616376998916086644494848445620411218851005516589220492766039804010522739417450556511162666247909647226266792498216237270085855255746005289464118514641604838910645673427572933200250407860959374128596546756463140891510662549680599418268151608774645330204122869646115723362131867025658564023743672416995039592935620169788583798849765082081339026821795073118416224984751749987963567286596821186765874169786956716088469729078591821352657381023693904434195830515282039417510928579453523168015622599600938368515246743481040718533126595528988715437922591756718101246174534178513088948509276600528887001691511537334075866083037551983818250727908282026563512430396282621857471845208083820356781996189358242204840804897486217626071187688441238699039413763243040552844284601709854171088361456832839926037972536488423294951441254533976367869570936593308713799381251531240731733898660756259889165327112437410889860776053119882253590944315405094752939702889134939805422661524325097477772207037678389974249731439243471446605324712878155443533632714987800626462405100616000931394234784991883584342206305691206798539527426572928662664274596896567795827722928016894281931269020069272506736871989222212093208870660948965511548028071996123329132354087340704510039571844864488130019620695861507523037320207262356546570396371432961685088717667131741157493656679508202303776708470601820356984165501622264055735955472913363271487152242865782534101239414052759586197628624338178376519979115797999123567267520023018814091755216075665313357818168475619839171493883126822842864032438874574986843348508079095420033709572965091719485989743319573766161734740173816944317323911363060334804324364741727491401701728400491971019037842109089328464771383462348573689888600854815319694850962795707458605350716473556247861611720807180243085180530257586759670434549246071252905357797298600684548818510439116087738089958575180844832469901876557884808816452042155301315736629404972492745323091389669746994428116373255543008630892844853755304260244622306463353452727022214373229323660948814322154912118902186488879011708210271691358768788589796969444976364884013325632080780831230662626331342403533882107685898161838889661219805764263815408736889366682080716310069707797857993972342534923686557607617889040673648285697153114595515115531569376463579541376204956783532741982311801697401319873905709404054317243526440990529930005371671920942427485865090132692288261371843911345062049865753421130562040440666322733180965470205639538735810880375932924737822410437400711599172702004137836809392238601350399252484689867361195892211809946637754956336710345431497365511694656929594156827917935884119233770462300113745865162423133513574587009020836492281216943361553442254927361484119317694065348648097277474483715160536240171120684234432011130624447574046132322257185908680920524208868737825700679254650866358452238209301958821310807914268578842902373328102863829234419468363840765655286628952761912012326527622204003968106537687826700180536657803770446212435212033135938043731590048503035876796479688498176109676941410853367967876985469800407205415512681768384109934986500077816007575937049279006373551241633822948815380887403084797924511530776185578430288082812421634507623827318745533147338721235234084213678841070982976741223047222475496074583695224928698759432405858793248825622836561243716893039336123028180774636355849074945515795487911083627366205156356531108643713351350739508627661157336762701341895066528026950807311859807185166233682714818150635637032114059997070961594227993276301173477972359803290656979048723464225424663099881331943130548520305573268222045855173281071315333011430692216115776818114335249029718867079774823282509762008319092648731036679604849781794725940741688168501822662594655015703949694433732641939772639457731710677507529560472221455741687289999129816788259301915919372661485189403883349901796852457983240310172175808272351873537326274436491954607358102407621868382566547122863471166737401217549388788735656647760321293932206199205738573837876499847340865367860996795707007288250143046714562814621369840681887478347149497023967449185862823413073720982330918819697653786543563089536586131057454265220899944439404340697984820494360065285188228133315363910518797792141904429384970581650116079604030048569391125021521225422729505197616793940384049677141093593984056235265407711542897769285727631174348933875571877579296092121636126163678693980729605764829191809905445260603369679378635583489784477653018072521835410993641697634692065597592072402443257969654497729817414175266693367411430868415513795961335950798750340844101795418432228148744023550589725619338449867109789388218528857955976492793470780053342048806509731304160638579763050692869438017062326693848543932895873920996892541708133767405266650549189750398545014414513824897599597644456390697726675783649528664215979907757889512443752982568856819538463140845336724916307047781356832048885664442685345722651730071438031471076114363945151198518569416603023145818851496895485052865860037231925569140939069891922152001761205196912155419857339160727918083728304103469460067172256328434777315147654266350691274227671656847538057662036920426992284417459415558940277258998647069725289592497510170994475248951210245648802197584945494400047852283690571899045536821638362593403866973006257291079958232690774361923019377411502805091851619359178732367813191702961392214653493553693731092635158718408164396364525554053249457345419266731472836492805145502172174038318759937675093256151932077998842946521549834593944935851680562700146126913903679088549460495545929119404720094039414189769726062709851745036454232333003168200809929902177073842567209805927925075213751199585981213575165982328585118491949616850889573607100124148382562655973702869658635023344178023782036837734533552171261303032334846118890483862145918800973584020738287791356635225590974424443460746539310903201823337946569263906156407187097864022413083408527933628354584544157012676138472109401332984991687957585373794423496213544942798386836082005896013390651064470249502984288461514780330875577736890228995645968713623798584082763259598605482618509054974594462853763946837422498042701916972580705407496521333571942376274800883150173920288288286888985694573377748332766792885337326667692318539221924537599995831756132276872220427683714700655340006029227724528710521392116924166000990702529485936902240594188206011585947093622438597407294470113266328139366076872338559791417119930732378791815668872082853245548662524894036142153576873248467768780021712075007245827188951515734460107282787471841823253380660637139000164556225555092338086476058279990667245915787771813316343574797435296210116038952248109491817845517708574928081633906229031504174801233411231028763520243787501950606683565419764786480553250816884964715388006704103865728294662100287220375481316509256428940180834203605616345189270748819666950987783520299998163734341852134340116722205798048188229415606751852265247224733241885473161712440882955990233061947068577293213981296734136827736734865353738766445977493221847239999885576879822224352282517460975166218712699078129163714852405762755095093329546438043290537536615073247729523433648180345296579667678204238239395015145383305454674242967101938586758216140740469553927603029704546748289119024646051323051473730490310152234981229195892200916230697661146753862743959719140356883660555982838108543275246233765175845244748609616000967251174810951692800613806417481644659780828122336993261157418424491511957291516576553690402510757556152299114420917104902196443846657484359304477678958851372605382343925677725219215371226663334446683751747317431843039237368479408788451482895405700586620486061998510983755522129471845565485533716884695097672973267416342860866519937759926796172308158511108845364270474491455486609763075121566109225530882913762898302126181605831649091814421469035991541987106949029859783591125775018662191556513801068477141540543414488726958530759731997870631316551843913793584681883497553050781817644085748787936539954171795778696052235295831139393365301831940501447778215967668421757622010175195930206731016032955852954104184994436844900732362750048485495168032598593916953049068940309838193949694240940332526184774434747937734191947370559672748148230542698099515530559290275934770670224473281159577559857509189974114811104653000525851818731154361821947609452377391580237629997900880485369895197359751533950267176538506161233827653533996805998296933549212324645795374030722606572957151869841182126563732316938937859732649961321158771541853630208806412390411162570945342921519677713322708974014096928792290627012288255570506601496917399647649127233614693339010031176235097425486714860800556836661810839166866947555937842250167167884049468119429372759664053789936298307196001487096658282584444924744427671466583586533410735714253306259165692094581102417053774082468760408674920399800926584094442194811651822146096000349846474694391332149499072898735604430590858768811608185424231666396535788324522643037460595059828428481426591934206687277338169396842864745079404925076901498256502890640403151757426390711476556884883578898095651363876290705310568611167342351716102103705682013342746243925939612078907268440330809468876823584154045556035343336919249322891385569238526558740523874686250280771697568168017495818071596549943220562322955259965623171148012762722319458619373465650532017076293006495737251464199707373474589571900478081823980559307641457386360639659987566648923845895152225666250285330980521393787996852403437538248390209943538072295443601642243244992758071804116197490820969710461008750850218369096945452708791300219530104961583159571326676147512837884240660685564127754176848319954336903012822895189525058482898151096501898134240157984248589751192232519135108629592699917144717209676091948428820127445175324359979364179351125861384146017553677636721957234785094068476036856130024863127185494075077678134216594320014648539337587455278851268773341303639347922366691805768905605028464169629030656097524584086067170339866512956238965550539637586273791408900704764628315184622191662772615767743165645185953594405336049378896830634359208999084295476845452693997737185904760939230238051683085591269387668451550993899544782202199189748700453266791578219216751392336592505550037337651099313027257572105457760636471809040724621892007820142828477427863269221076827312032151990944793425026965540014320684300000577518654103041716135411912432860978400082104125994749310312667699894383475508249236225771505930613483422537170271691621794249052560972505374208497462191675232828995131194686343644437591056048000165363867239781872670489381522200282732189062545061965085689529152593638554228343045470039414235790846867029193993159545144507324922588382033569760737546229690507706647106189647909742796017101566078484238668909370222771027056022917925677189002857773906510836501374607474107508884601949606254204588753789406561389036187418110583198594536482206294874698325494372238695659612476479796524062659442911635921136180327636743304862401422783303358235183134883508526490262593872525221450992082054027394721646273761557748101672590120493955665844142327770974245303867425159997083791390494142582523666820002962744539965149975945551152374265986322300141285745027924009383263087650322289185413345627082826918718582636120015289496124970543337985187171382303459776038819555859561470595947574473163358506656403404191940888409971804893845777096778585666990418745637852526373635117106650309655918238043170205721665544236090549725093042437290395147613653781066197114339698080367388249208660508711555658227123261851387464836411267889862769963917515249953833617676845358841100389803171711959607214819217271902770134904244112529824483556678669530758644136591578199669710024250717679373193539149975257558758765475538492924812929163232565743299032791342673505638089794885190854318527590816322178176383194316215452506253642965453402168350721265799503756462058241266581504103231663457710016116956958285113823710383149351172474479614683869841232599765295626719917855987516393746154943246378252232921741946849184539668333526359928920389580604950625609479985117513890258096200490106041299309475518358033960995382466392140033191820570633113618155565109936405289684169964852701961938052701895566280841141217581251437638608844954473667498965697876723569488367200814296025771973372310939095210981576420305493064803703688297670768395211922589550783739831491637858530270315604309892858253521906118940647409285274051799428510796676314279571294251483353290863511859354510914191965182589802970097889076120959205706270200102789820906049307092072241898704164529837565849127408483149671541100553381040277606617025089097903259396149487663349782943335044787676395524632633631898530545231526263504375070946200424024743311326394678700081729105263056159679627143593851106402913844864000690041948215130117535631224905036094097305772465730309353817524746711841109076280141612128179711634346669944324347616781297364338703769847144431640218753499438616036581444991386629997597067828940232605520931058943363556600122029755187963238843459547488770427741463210102942239468959318016523513304641889639957011403142180144240994111272700670678208011317532417132732252238328593884644037897923816693565954620080211177366660024699665827062803993787514517792151006694955060157566467107510021691211702711909424728541075544620140029453970981811587098709150166376476656845124301345742538845826573337129923152919293678661195209351735174427999368425460931457116799953548398676788924320705853356001674817273600347128225507991314877937329689636242961946423702502160938727136476199392771000806823178001260522635695329342500418053133895797476681251782871487957160021241186241576585599161557250778716665459047845321066524522082731043456969517274794053005783013728310192432875338896011340897358186490933000516683224902722822381993412110386385895157222970685944329623669526227356515051907861987211507880044396985515388767322528041619239126728741233857125281477439542316892689215096213741455494319394825465843058883772886602296566610776426869541264535592026142215175729599527025007113105383325594211296682946363737534253821895368207401814911078560398175408324066427923579047246105322362552298097683883250782093132511299392759080073297367168030690663509905834749198607075206357533198950043349581010923934286711696863736662222158241802906181269219989339657401876943264713376264853843675721347859546480668126947792888760992407698500182047464401841257066206195506985954001845935318042987704477335028798642310490699865953997483818762368371336725429273703529861239604104815082841775796330533554351066460157686008036691861627695851312078250287622134416764296091138539274359417340503673986153215921536325339206303480810847604005799699336704054761199380849842027655778221679113453455026482794544864425831356425965449232977589051224581673124923657534802121121347980616321665851633706073950257302579478895019211998120689438064978357418618832141732139295872637293715464959508038677400142171382913686166063357699898096133243229913939590834525066953316132867034162902530503919610372063294646883583277094947539305178379325118376602620038198859092678995339384137488483656106592973645511286610872962172752501566763569453103591037596565408369744540938707094746164202041106205155003292424251955949152790984187173719355483271049611792895930428236708914681181356461324533268172386745010349917822846952597892158938259432409956242222242912135019978798309743276146467193860074201529054639593501703216231248385570512759456774840824214711013219556154720060761695945141845907003014903096808620610765149444989721778514704544862465478190662148662907470343140450760890100812665681712628251879031438657540241410176731342246832408218284633647133793709132426174367720414758019227183020209872065948386350640882189043002510904064781475033650294248267748932031653226125501590088053231244459435241375683209450390213354026480470076506794122971124945743643009334780578032287492860572169153431447439530463428586105073487266939083239801966274462610867900444883269883333447308870443193219338267923505580555022766128869123001229401568681271900951646255371090195600717388705457416023332411755000339927743782080662708428918781277016271176272374114655039346806417832571231753843693085539480945034260340831820367178027787754675199520231433724713521946244955170144966713184854482742870837733144757616611340359406422181042822099599415255534470948370565644111330662181332202542849138444939787126890243687559032979336055352958780170577925156167337748191177830990155005229050334976311244074453624041090300737391895529836500497358127945890984541149659969431521631123693499866449339027259968257258469774429653503689543689451694185812159710963011898728079516570049776530588047175021724813798023581035636414216492845267887298646582570586289449686474602063202015193690336963067293532927912315114521379219053164311820881251198262489126718312708638197506535296260873960826866854010337792920361672279578481486629481334527146012342809156580880629366084832959134829404511567773759928771253131287214131010317330678389893003113979988907386685607316055077701357535181087981002880801312853783625646045819577257551434359578105384349230405993820093318458003769904685567179751829234515874934921845721132244563386162463869224042726778061298675962272602454293370153761824132389937492075005802480617461840672402839319086550314393438592032225319841727506008345954104369391847144955647744779817709971790242623973498840012986982535651833242143035246849653264332515332404571631006647132048318056421389535905370986801442435887576819450388000936236281553026089857712947776936923765873486953971452902727979739666856949011571286185804329245691811104736549425291587376932276838162312521543619578512569982786932055666010629779815290389001804807566579771066876596929524549425006492037813515259006493179511193642274729795126487478886138746952120445011527155996215702941981687637423094829627274051757577974382942777398575296735376647324884528252543323034942970678197000009440374787660656938937632915694696515498349679295367676425695138352419995386809133605890950755092635790516273476642182920242192861468855694037114766434834625811101883071699046360837232227413392013183999232061807283493891103504935677814028547791501674756377704108193271419032677942329063540825184822913125716318239708261361193352843154514359242711848962326269023727334265525264913216368810171269429227155319496109563334591756582777998908110260019160973079888804878271747736194982821186727942851456572471331909034231678208847011477541775411666787783716043851678389601747857272604859990207608530800384502550159509117025302843878639405498867842627262850853281140603337646544845621310875221757492113304652288978491769471604376690954329134926608586262741169088194659081085142681576787085124690109914833741906604894280485263951643052753160199466735221332118230800735503790379467180326710576521867137032608111958247238578650410279988532570338034989369556748349800488025263996139943608985929672919648075643278389599011457298188644199017744415520972839255874221062615589259414984599291226287686075448234226418897008641890009701025957855956195563052854513275976967860102456709174990571308684415055676657704835823844260995672492760273522570397550435914004306922797537838635191580865588246747994495579275326036707956632223777264257771897550068447901184565977005961177926057050633291287389480923462685021523851362683699024781071433083145317408154134852760009907422350969068557306048532753123471519568941772313197967172361607829579246155650181183013158573564497300862567321915815530090584632715220226757621020800178217862485492846687018650047276634143313317642316071268868771903081604953167950807857891769676499551426610732808259169236859271615428074860193914514899477979990549078235918460986450762336368260197486709015222333765951655795732235996680883432297387209540016630658402643042374920472416345619931288211539413307647409295657420482704477260491758679041364603644132055610432617336917311911116657850725553534142630054265261022894252482275267779606944037776850555003734305938399585743110559791649705776109878990379737519758325855629554972027893802446786864325210888543173273249859273601316362508564725351696071426303849624033258221208897709700639236166217323012679275868941487968797480758016703249592238981318974548033052646648405010471822306663722891804679999622397107596932899539785578815420384850753457100055767342755574860105785199697657690862471680821191161082272902420388132792611002473762656412382301428783993040402125290991894965857588196144185383140574792198703491079453219283988361750427942950952100788469450229115057459035560539882620409819843810648676873709494299623627631892001397616850930025296616154292382431865338892732887519918356541952974532776701664921535864105160865789823629353100247695762104702451268717362649091474723543417350123196048165052422667197788550699063549155257308091727092452429494084353796943425708834341156685696160267220151674778626901346113849100041374065835706872096833672612440728989965823431511126534265686888475809858920486094392173859826854730960855871684710147848211289831826003939451293329852465942283369430187630088111248229326015024360299301006545607379175228983993866566396410754947968377886922201649927216703687146418144968848710260931817216288203470309000096291361220355995394232988097337908134002470808154232084156119612333528443878677854058523180016369799662980446791673104745710811225372343908828449329670813052091088488559334334834652350510105941623528789427255736137847732543432145549433555811091812160508096969779212633781437246087289275756457697079496241195241035614593129444007297386596564189018158011921062992401009651368391848055219320947240380326383087581581841722953062562653874438909743409148674175348235668894156408227676334789538107335205249544237338611055426718337465339902603937437341759078476326284543050740013643992899165472743727123756912696404553378384587059612373845592042807135416729929938566422733400565410051542392136682538577758297966286320419472628749050382487312178310229852170052235291055508210435526672782346182814668945843763518731734756607409890251984682813697251248171479348361769724321499599355079067566198591249484089838022186006198345178276446595709057946248677980641663478991028910843283043020605275707162002365998087287121153321062733444922225342708366282557372426061833387053747365631207988783591643716320081534451644204390701389295850755588257572726592384750281954230270336097286201125496689471881830387685031910861104869760647951929410911264359845715894509002722669883436563209076318152314312389055300369824355581675469529184967400197807969181605770487834245124175390914037019829925113700550163168672401134539096106487027378012095298942949784449564815457067292119022718636898083050089665783021864986758490644563550361773109278119570270423065807340650218864580107578276005230613290044249563164562216571430022424486934032560323153009901961670777469209566014875603239634623166143321263249070512598678047789031776735623497964889379254591654252340165067941589511557294431399614858101858976459818733119126679951282504615991587718617063414448253709918169659201301477304560908253407532270266654619859626189346167954276680837996349353960247377855664514537760169668066317829541203669722834242430292984257617116007584898762803149420972600863293565772050622770067035391756061478197880765896743250903327717587150280978714657892873195626496938579621488642782514259376262572178440000050247329464227993358821134017475760960844504947967505023613975921940941940361816422123968691274770968911991503603854706128217369465805654756109250292195429492656064305746106109555885580818870367296823224068143021629570782338086964411158388239672811156518834847457359294114872754650018478786248897363588974966741009663638700710372070336310472919821378126366134593538140878879166207885426208190444233952405241129226005222770951603040007725084467200246191787384190375210130104489559072342511921274394046833369606989001928944878285018101719781570248453826847462721044430124101199091254563261383523576204604344015130955966830090957176516866399488045342871338748918424580914864874814219537876247072477020602896825979685228580265000692728717318136185506319242825355210408573785244452373188306351383946767491026302494645114848825959337878755585072633085281823732685002546089577816259149687096155042220495466290385093404180613580392127236467715914555216376220692914915246198681919265885096229870221449449124253831694828178758698642982041300242352847876828713920679614095897720324386115695993190314859018228238020656473321176162349420741365521561665579440140065876523406834925636702115521898537320065040080374829103400101107284145960888490051072571545350641880151773720700421773275945018076192629983028289654201019538678491851866021027048989757623169021090189452785869254065268192164700405489262160446701839251499786717762273563068983555263279434437170207191917458592444264198101629719496049819134231285241691036231603786151565379326821416769887173959019116456526166378902114645619124096039731396786542031137391164836148045558408014287004083123524031137311035472544682547314995569793749303600584530562252425465075883221645061628486609106816404674818230026877489003984051241451504174829513379748464592564629708361821937475612960041088130963120108986072302005620164506761959227285137385255340961530451690242507111136791363005959291333048780871360925720726433004285598002410433591179069116643696950191666645810863082410521141792219525176371778811987099650228106851671772746882741169742731150764277081668926725688710935673035369339067009794698590437721801327219385555457329338456483776517692140504280791933696364290505429436462135685442240706828785419467150698674286431289310262238146030053829851050957669912413591005034977708014845188068113270853650281007388822980340102084438445418187192764831169797602017828496910143795629646547210678035267097712775362304331121056095227796560847809672289687468751661590455583823473729903130906774372215763296000227167301001753764442133600126997216685910424327862393053239815298191260911892686175208256672277781342471825512661919090965839854712584124728390778683885860285174121417332533457586199715248799588532628848932360985470921992184037546833071324903405666589304172110287482432320135893444642162008059126607433414485646419354686200747191918890071179600186251217177508415020918883249261952479136181366179445121590115706161592581690392419288856395755294858383745108517216558590869893272477737687964534969660748161858949485503026069444021438530097836672556045086723154395628510920516828651614267425687646502282362542722852081174920059618197493294218924422617887436273825425252678176444364815444479920054662650186583763838308174511805334747208315634441278199383120691184386837659395611759102541169589831343352034999179060048446236938173856674941341191524048977569851190033965285022909370206997982239702179276008463918589634196272446608168148404617031522118305590117334559815398147316504524562749267343437142615342475523908390171377953264240737117679505761705373747505219309156428696822478863600263416514370222275180189040810233699507930264202561595249731982648999365090863319470948913199433396324043513767162641026852320065964201231775112916710064388789276112145064652656846334788592768806884807793549337354592701129658876600722844052715893760231172623708290982431107982055585446581058251184683831836727223251784550003940672841286259123364027595971597646822852292402630960500720157985644985388362434108263078286963041137312242160099379023742156854515883096211258373185893398450900900428097967963220593324533901513461887594423435949982010419413725450791647522468246402957250109805449500671673731198740678796796223591632766994506256675430493286453561636324358467797891525289577875159646566501993686646544542010007849096744836093984561816076903718144340803403137545420002662670041838380981720561337675960755074581522826756885181429529436283901884590742987839688564375106314642704029748900172661043321596993732905642433831356246838721422606821144260941862693015929561619083115601828398129746521982944120344169239480919257505035614942093517779691865939681044365424716291186705916332049722210741507143725782335602271966206119129778587301465394033092062484763902459283492404183661041700020899447262893001365272681403567072737132634331351164116969397012446978356882936802746869358909506998074293743698457348292261397930658553977152718402836733685846981835065264177698212415651787672638990710584690578905043963890289094311637636754870767980089793431289725824840255760301121474956099521664351424070668259371963890948299613064434027028297883534118091738908653753886578918645070028862355878056246956022355067464598716479567991543090676433956252964767471735580391576785849677294732238539937050944593371639355613521043563511897698588814421946001676259043177612983957427003166150594980948635862507171219859847252052678560977969185678177206000699987345036342510513460176219825524559055279930686125453026275601898660115124135846240684250294272785688265465709583980182958711723670845353943496188397595968644896781197225927337680982970477699658719467547199351553998033954780821800660725124317293529209111439215908458457026870364541944131082296193284331860556544411900374293527638731478684951513552377874165781637001043665389527143072184608823486100727407174238348616848039619926532701555801405200398745127466728405102546201339664831108243235818324948693839502388520744891719830104627184224342041521313391604302225838329301742696745371427860584436717834268556703814547850555078733042162073517754444108124883776044917350508716511024925048444056763509464038708861563113601553615097805217520879388480707022947011750237173119904116459928975236752225234302958452465663570205669560392669683040643548240742958480592382812573992472194673898462104217406446094700383116055330366087170379116792747400772272278252962769213630006381875399040595487978887564338276552671874706187668942575414237961149305691609128065819164070544656385767145631597712727217634963941063809517700683096629369307562989443485542998527603407631928134816164674742432660495960611087335624140417509303782667838187541478571864875655504924252771080472196907441679084953536375036681963328729853960080120529353432336440682902928015542231610018052017725872860290184451925768798839234869647721621281089217011750628706938897791186197404786027822392425155999027122117941210538080912465998845789043872128950067283019207211592430226680458848317550824547045439926732606634152120198608020846786591883525042497512076652839529250466027467902621443141284765300886113415592938564902354486292559703602859671752642521588890792083828834400470374506282568389765727671270714550049559944264038729116153757051725995236482173641061968546574524712434697444745660330383270606952430611924726155390334943589225492087048520589660519279488888745091503326559248326605322630572518987975213778778078284780267056488633583914481531109618694342061760011379120377309695017833950123423056844655105264048091195300102807348006184621663391928522622016268666881865699922725427597543073402144645436625594980387355584175047651436719935228589524437032997479550711824460161142990724685954354037538512117637190346482564921312589464141717529398497885528416765038533556498764138484097570301627101551538673692943555404240062511283805977709122114750138568897663042292428982381677163660541487412310842497562257181518113934436366653554605239395070325181536505121231679665495920287341923660160540807296804724494753231464641589636637445735762196945956786262053116591072506830362906132333841993434490660861930354920826623254496812218813467692066203621567158683524258627542740033279905578433110587632611677152507487692304637449792635078243504138415677662180313466161652932547391083948383697390688984006402706607453982060523509169321861870213825658391582820061032871208824201418579764439026603914800582646895330694533013757237189669277500236415764535721196089628273423055341679780667897413025887447356021946710959978382143447243781350956276075823805035762505198024607639315249076671229230842355031819503765738935742758102205084380728617450224770051794634448270919866401484275715390608578865085338149633042600151921364640974138684045320110589744749042378654136851714718523282592650762196964571970431590907302263687738697895412107744865570754695798951088669332244718426998610781148726012833959111921203515210004395872163238580569335720243119098419686797035518533181693579275526228227323152545568417053271701322664138543628380639748349299596632023767265582184507075878901807766309597836489006425136590784140452769273051406181385487650626691024236677877720058306704231816905904896139588813229017786155451004355346274141758150117976717939992577833884008883890148326621000086758980892263344263628873813197685362283018063510125123957211220326382162310165363315152805747001603711091448951796416787222720879354394039535961359145585543198653444691984006956180836322932646027492915183827718813720980202052454830145333512788925782524266736503757257901147086415767453347868224772576153844597224037005238307361121199687618248256445324368205298650318532933996943694555659043309946437203294474792185131910479229619352653532852342454699405980687709795932069173084605882055091914059531446965988117918019247871250689653340167371352148758917009305518702108596129513425246949686391399317230746787329336754157964331971033451077916834774835168427974151978038076033757215340058882946950529999394342442662460516887693152646858778457518788546785603653549801226022727993036192890433112547937160322849860088886409076341671661961256652183987792740877288499459639807883136137895535176426836996066614479909191560850875519717813794113518393649230538881177924039617584778734789180812078193546133053743583948834871948461957134993678795571474738734923875231397466978019377079294428698766624532023328755997787475875814377055912323506771087301034704934239963440452935818287837487491846527263560247917435832035974077529629892959607346221539007315895816018378094078833225478987490620543955180766642188808708367289315660866362603360080073522499200481590948895629706654913784367848487929305778552639551092028892757615755559141455382550160692541012521987663561407208319342527760672660296430308371843940752577069362181431096510573748912921420687056441181856775527725917258816953102950197902375948853520692067847049936764576122196011215955307799522756765809558778412484018739454453783840486715228951475716299743960705907259709125297748999205525159792938625979555460714815115305367269742472706125418423092795765642912263283236317592613479579954702162143017826815417299755354172582089027354635643900379694217255331271515395412531618412154448562879553929411903402106007753943157719867279658924740300323015594938203917498378944051463306018055318474447580753586226262104669260560264446273198495416498710719875905811896256082571814135587359976619183858545447572914072148942501656253547991770117537484708571109269026260371124296724749384083436499513610805130245037835849766730481118378891219321564755808276868719824449297045127205975470062879895370154042961283171643735664118720586437780886551208751241383294145033770460751354901013926354369245839221420192764442183269903474188682963573717519063667630144771163540655729056819440185061686112444885082350213625873783458596927088880685430561290546039800954905692644598873633748859749742617801490092953004577054043792972867849326130246740325292699931462028794868692253023677339367656181337292647677140512002667126183000455855872369298310679542515916725639552141286921340644816677501302400138526462816109319872121868897999941577481066099087679233164715608618559815578681079186143671919642767362785920559043678687434909715746523210973726407584404608527640127228551709443279516041197309229571831511386533106508170704382017139967194720884945912324709286372288452916055959564136167045009394305049531691588351220057034814615650624952388006862123877613568348351426737306144433517053318803883910743409602891423508627135543701498447695611593305296511168260956022906054387654621050098987315476666108752271649664022216169357861226282223159849122826634217966673678903009617324704799130279968717936700959772207361702058425256115646642402713732190188395818988014339712259254634228217106383335924244692455812108754847143985229346213047066386862383035709213216831261051392836643602757766643749315111108057156160766387995174456625808796591296551289941179868061224218562767679809340059936594659659765291330008538577884489858965682829752600993004695547453108870216274529463441654227127328926756914491744720843718853751284209267162484984702729803453404256894430466850932691770630974636058490562484711056446831589666315237818683235662401878427741733609998703649209778027658455361433765273731330635236391828930163218568401116972465682226677381697303937178174552675159105482807341019124078731917998139857695810827443991917255656885815482879708497402739963506194388227538243676993531512388357878395878478404522803759763718066664936282520733958139324891413815000913068903402227484060383401580722718042908803327121564516916226890914596862078026852439197683581914978595576073635653157338566932544346115231914892563895386347496410819563456544050250720909815226128633134734979901057136354248830699386329622716436448901839763050771347075149521017644824940115513191088336338977151022457034387465786292740188914566845770225353378937202960782390192083289724495258602326751088238241814672571500570224558589833192150148237597963197309640335346343430531102155250019620076847393906087082228804675028620205000492237168302316083376147335777478803597785774802338889650916457333221652926149745148062292266601123918911772489697801205027884772064241672872003293401259793766253206001804374999994127993663204335674501513996502123709898104444973770941548820824525864291738782455183164754399778864706495670345121781365060211966818990509785004826311482667651001712385925707982650926052433977717186247542442384561971719474923101178119931973486579903064794112172796681530290789740461012669712533311546959074332835067019016738166956760615075830660425093210226522923619917981484122003264131674766339404260217885337074387673417466495958147209608192977004160634580070259286225993939460483532988393388890951150441875247697755149018732336725142053280919008517412758837850817955730292190476396484244912800591771297881353227391587563355097800619890294481446038530622160802969903803671879965256373226678682892884485874472735139576146954556374197649965271498712497096717788277790416258395817034037160157893139417476685952813693055777313765646477485384418914423372933769721839579745434735529468659644336718991628301899448449828391952084141645263548872626983395634366613857657715976639769701493584849256809751838394865855598040014052989617494419335191309272637360855814132954124216260662604641770678442387451004258813818006751422593361454483570400776941109996424365649890751564700422965083557067147886918194491739196059360922388194131766304265286763335037659058714489310764511351497675641348370209347754698189638824152509031268060718251048232084639300687390862388859200737171217123084220125267896145611207112232082268604863991979245713250602524535562678146623471777694207391678118600114291542424641738906884515584491568296521061948353110959235318675567265236252887953945521497349708740342837328090061494853075747520259709145879312601584234804705016861948179472923267254179674037195102812947389767530275620472791803436960248349035640174994903331367702284057754048972162318070487626602482949089508598134543969706798525920761384424261616356211897585033198391406027903377344225413357267221339959193486717990778085707860229498315494884536490955614530860913916530084240313416802141673951595323542206244055161005735004825679716665850261312993871237069241484897247355474334437453705602692057293506577115557237667824479302582513727335758120561382010384496893982597578443216094972357319253810888621929963727791115380294386668598303791872978399348959961929483758694848557061906199529384603936745786121021235616699934083543619081620756384231527791805038577799413802355442421108014637307048259765890974954131749587551698298036280618369883986308936662225150765722075851706931263076782579111379329124173661552982529735560915949186564419774499821487254924460864833627500535187351736525825285635486890297864338031983151947400013478653302562250237182813153133177391351022646919423090540270626751219880779220897529023955103939369959248160695431930649454488359171506523355546206354175291432855500763412858559769267811058860104902536647458351452617914817661957337133506821364360312460146670099792731979028148341394220728273011649074453842855902089509730819085701106967004229040892701992118954125893427423612854940343604360472405121974537910510839416175838630035209512666727244007016415168804805933767710690615889489475699759483164849398421456007022497322271967707365580149199104596555913216538358210905604670330054958741367981788502124664132061386249013555356860438437085242365747077756053013926328071817106384395438027389421706606609722333377045988512194592105912571117936613899045758021016148932177549837574090455849296118131382844866425703310311960539897741474908989328517463835559790866211036885222475341554049043539701220870953932522441657606326631382775348553298828848260175624553282264695266316836105453167338409919245383688023574550323041081632922772530291579185899217114666149111410278418356645934383159495475792409173823807285030547026510355081127608739372882995910527851201930331527289975891943441159961798466847980494158810265987600141611853352784654216483882728844618891703093799437472640636707936162427050827318686522525339815388277498625751705043549000233920337154364081151362608489054697663026522284574546342458597853564193716144684903257462623113293719096805285714833690435847854870798063843522818182747631089804330674126919308734375816029487139471293557884235286800917125527848889347109413240518065829311033851801729895865353349108455437666609886118957658290515980350165897946123988754311486739446614746437096438162142333113110832469071623185209914900560759577744094706902680086079641174967944352786207714779907314839518392791041177076237731885997116931735186352145664764930491231241093721151922703294877411481318831230334145406497781921253526822095684961067041404378480002747361451413113796840627739153299559051544109878842625390973281237007414332214118057624321196341958240552335478175137204712559097192286016614016045931786055295963438893839656682351318006448641835265819686244510915264335551370946783970218557564788874421162946156713991283377677624849088394764051233934537261321873786176345051305914937229779862593914739631453772621559047938490306171174030785498825509036825829808697579691149874347289259031597381871339144946694017403834354335024982418024164020788067192405327901412964493086413906450669414954222049197264209832241433070439185934716319758852261686673866549677769279698277388942483057332770019353822240671185537384009603319249846130215717784013807162395872148517851216239955309508756038280567822862833862601971699960721830443051675426272607584735481495325960853348291825554350403658383251583503740697441003853876435635236345583820181216891695340297225173753976639482736870298521496171433774848309564058915566171337991943754452706166665282885900047522463728192426949078892527311561266132208440816299349267327736623855503956691272634119308329191562725952068453451827832512167536295801960045467040455626749000917290868013606171603877190756093955100360500281808007306844098970913692641362827301224668076690777155325754027480154521073771758826158151012407466715817970865636249208348248623789670608047779773785288835631511155359716502146483852884881731910160845203473357398927569357837134284007140912941412932455768345478273759775814782829153335388215239498089615324216345799356246069318157285663248837405950066077567066049729959577680003150952086446493641936870078034186159920881719441642249679246498764811900377909122327104335003941223696958834639704462956346067852545476943608749962127645881056999967335133023130296754416105165707265374548525833157979860356502209472304397374126665790119008071328356662851066170568824277682269374118037151760301658005046897978269435031124533567679744135918223732362338024857803490324456683914348075705729612510689839106553920971716683899938760478047110755235627724658644529097802034804637998129979655594841977406339463265004757883803993942405540198649784061313045260614808872074521951351391510964939115818965082703226556998292473985051647483801030962973138260233767164719953008065375299289936402766639423690954936597682805755417834348148617331207045953597601979731138212212438832823596212281581835377906743571535054520308761495947283414646471798395878661477283839335486635534858938137124056973544899381877428084741249519053705637522917120701691774003275779891939822287764338264747784233663634137623163011135056766728468322537089182333225050555488705508380547300660139683218572462366055242383934494782158180467198457171518215675403776261995165810998184234688888711786103206936879784700687316513789691574715574001290547000780755820284031775990206973752405827485224123133537813668130091460700966051605606759861817044532883830169774080640084129962281777632701728573254814549096473867920699656138887633867909835723454933878073758658484741689029138697378143044562830899201397861974765545321167365771964562531065531067361256438000895005585498288153328968955862689023191587367057414397969853800342733075849768928259897060968105764355803466273256220351539979237287804598674225673903198028579569428786737341957495555420887123730216517548235607081219848507470717251549986628674471688169961293292017371304128830168743532849082423632928816523840410032903232965596514214168676575649637193639349703548373283338930211294707431393576080633649833568405116696126769992055114566163878587841139236205556693192353409928306127562321863474085313634845234686723915746046568419116455746700085286466087430490359667107661031141156256053460796841246381787063237805548673907638814953415207560416850529958295805011368291933904981646584575024396390503928034679068621512263790284402860574311213194666372958725942478233423282963983417920082038177084769170306291340753869692574823950948518657967745403001588597198821928329090266093253906557162880247444244701674731276068062564051249417533139045304186088917848177092721545474330110794274171202344588537063825693751372425452669580270885760188700021414478654024539996497272072211620093213683342583833468338273766928786987754421306822743025868161172212583970573303302136564920344484958458078776302145948671827909248089313466674010574404835121715114922337279078599592975800506548615187579377881409530171077553047912212213874688276313461677839354730312276228507126748270712920242330612087958120690621861086747500753476413319813025382761035726105088049662580428876591251190594432690619815685068111160598669701764735469313089237162170028269197865533085223066205342309861946133489780410977204904577666734699050831125974597680377770941251601079854157132590472655105425041546007688269455096944350882745930200299874329359930315121689358225871315043481599769358991756659172994580195757909880611505692293605580807206826795788259148144717640270264129113482275761009584604290567686928872309315916413624682610018429058504151881866479422489656621578020508161168537957057966643767750680883616107298203553471398732232646388451188913876286128069699413938642513275080275146820366927296793893150242749262442982190899807751415618161115131260346024729631320450935503094412840292237765344168483243748336045992078315095228803048246617902589858383985165778797205925086697121449058765936041016852531762584919856961843526388761655359443150356269297438049432239561966088412644834456907685236239058855488553101841068092566507400422094057160140158944868466965516410385748920856797349594332838631494021520569485381845892058936826237543719449814058453725014009498252718707079521390211497244602386895662035384606326705113779305338412028216627999824490068090208158553912302434579211746098299789636985194770773368128380078035760767587685931881514523971938934541609336947504973127523913437404053820824317348214346757571340857247164269811807881137584203465726448316140546679753061963682706166286389943984120056581839530816870427483199887092835574456419272230453301749023621061030094081933328831739424629593033770159691384972703820776883823663720389423992259815275697853917276925170109065876574930724643112468529806081611101615724082472823340746201912044845142955592377025100761066240476796583498015111393476680662055798488382164052022474381013682873848373033157708898124700412720640204196272608586960697454453202861626161674627600626797827925737086617261254808571098411586610800153663335281030497982830988521380098767123884202218295101154301816499672236215352233476805321423954650971430243026964864281075378605191587564731395544897766804760994093667331599501223284017632152078431999544619193845888835189576299273839663354398494674547195897894779945483031852060523989525672946587177161200576873872720891242437859576515985100266105286304796718498487655293861221520470103647006774048494184178341200931770687744467959484604631370379642020738385997434116813908971492869858560458548387019087293137737707026454181175774083581675520260726169261708739036633787798959792168210892598299470742700967590149234774311206811523980239322093674993353456251871262810621029221943353695422956976547684622146461063833188063097112609601879494080029339837217252706442083775906984839253890928578849634293821287396461442656635577606403176633872172937454112389180485727881311081942525359618890929948699657491822848713772282032740195594035389838521420322763767485151603176811638569221803148821226319694900772092846643960766890191461603031848212628089570752919135660818095329729941496470898707535764312609870439516513104846054022083634023797373110828874456746856116219341743884907493585682193954640164681795631069333093409414766162422926001946916718025535822490684271981716928463264235448223244742376835386220089819964190173313230275617221405053726675305591663227122828376659617857572823583634303937137827894242011653983344040496254665833837568273867460227300742189018881704254054535801388879113773480249108430303278691628794170064904009820840763157247415227264611920743414808976995692644490217413813128671688614927191158169221750016651983004420425855049942884400700197787066769394019476481695788803409485940972565754817682566402016231868888802070962298741927359517206505745386510969947683758828435188771742473135604551117699445233649788423776574446293359757693702820239726224490018331180567548921691655071349734599993689946784102908801377354088118747089700748199856048779729104866336263354526017086287188054629880906984345386405617704216636716593293142335406836019776027800468097316795729013227861377532320205274726053122855606527406670496481612290635947665173095347355150558694242944196244533529400059148733646546498866908815987471036733467618905096869422428499886995595740717544064077414300672434050519736992641799873763108791128932649336805970271526278246028662812060079599471200817732999623067581193642689259639910768575900226957436962317898532174442806457141596638236350786616154480934508690220346973966555365259921550043766181234677484719042974166846322515429863773448713014724902686936282101709203908165864842686399816692919214758076681106078943750597992120482190946862807062496883068039586216656674477556026360366183335405445572304282855239681409166082722424307481739606484020622195323323279496341716293418956605645864350593645822318229539965995581376077644570669102392235596915825619840196551291749584152691728547401730045664659755715639560642202953539231359776861120260473278718113824075855555457966415813829131710857281888783776615456368840234134582936488020209555970281741242265178657568175772643243291801597435605487088739574854030889144284447931962218900408422927907971950698737953177617928726051723059822712956383234164806820745349662159047299013260584367201771355104403440795906265771870842920516015780676420345280030002875910981235966222593623964641624902067249592981812025167573177459730595632387959975746468524584653792626907104344059463096270187570376237237889931110644675493502899464322394205158643114048180678233005016145172552468542221088636092574525402364747643543300939666220727951353182664602932272494465912873687299981853479677880737429223521428759541328109599618297265735905953584462660364733710939709547232542712790577247391438507087625555725726824020890763115310256570741420333830797625530329935440725439076861910567761345735639110413528997456794748600690526309235851836339626692898980628435754261620290135541809650651546413203579297902677834991712275862829073144373343231369215851480092996056339868084411168890264258544281910222490732764486205119170929176810221914923233555278326401117086996104852644975936863522271503287100049367109422456299973214830445507387306771546731588253331240921948899603740029134454359100438325067676358352355670917656622115319315719128397361828382501540274458850130447821516561740405194272674145174082366773049093240917165569931131982220125203022761582888490328921432030945661594033048336086935582662667120094943872211179573014320901737336781708807198369470006212093752390374193000097132933204559588635951242513187697225195469968047637839252068919626561831223946570830010315515942148990547002235925384274779476053414845306983134460609043786276073613423258999158030570696179673847790617407847604395851434635472862325055271087847846086518921987995092512668112167063923013086745858116158668003508678472890447766848841237522650036361023107385396237881106857196436617970172474649939528704825600725337184716799452098543188203405684421766003502987181850442428634321187669986735612059883090424807609041321930365099138159297400178124652461633380272106166680011631095089557744144062518666677005231230429843667572125310896717558851833929007325158948645382692692200041692077116360972061357421709527122540326464658913515519483557473113051502165743702750881271692398398536545185725776207582042523359354592050411016580350123644367860667074847242283585909664719072227864010065370623054735189180021033023717889862177284930638936705411264970831715505437167371410214758978970758364914413523644191349153868845229772101828484998403699083764506081989267919748554896387428263782966792673864263204784033693755904365395720180782580687645081661477150660112500703645879675040295350530780021478601664764056921263264692046940883277351678345839427672355565339938677181673757037781834580377444486695105611338341285435095214890402322999822411031893285568090510262570643474548687115094786029565280971618695812999445375385862519570844970406809641719758113422166899565990178476177636129023105160185050216018689064933722818656811337359564491699444258117062868359414127945840614112443871850941179696971071762090870320868525987604079931244064899630234979167397824917042373815332328175773580996862856268441269717962840592656586631163256211663896319806903894973453035080599956414292031066223705497494613254875849630431382518497186892484573820153669552192701764201638971185043417689899748939333536373129442450099557876986177087004532370457873527681691560708316995913583792692622118149874682478046751329754762051833907082670902497698778232632684116847696556549492712584378172053709838562823484425326207898121788606218708535347887352731210998907739241756404975747149148920733886533131049436193101277119733705856033867579141762692011531809098762777714828899117430656216794451796793535254187071460436840746071541268792369799425108362662449216301276190366776003750032145849654897085964153270915695022325501219087835156391066742478049842003561787491352291290426817266212560688710067565341269297456693819604284810843426390033363974045118645171345154958499046627951067189956622163026175269142228185272087609789939847787889321360523796715522779726291252046998089801925088012032498420904847676718835165023919676032662105124270636232513738680081540962657810731336395607090438237031324873887745298970635662398297385163393307650399765686945235731722623994942926519623358059614730135209469085557736087923537958923633814395960421024167997344877236056201708205688165356833650843237374450714284635415870405043903336611690967968615875510651358622992568218003024224715575226202134544570331667241248904537748475920777256069198406347547133274510953731676449893157238323220716713706535779909653700325664384209619185115757659152040308239693401942562715722658890298389757181991760349585629707018275690684964959672102410044801798419172511979166722311086478206293325429768042514459162814827765007796671348506267519554692874770496997524319678360578741976050080444794426737875809343617191571060338212618802674795506679960559598131133854125691410532516642030530681333316510460889340821585823772438047056310150300702708838238965829235710708397942761945892586322921756726975681686930722069435909504221106508703082949631836380151816301852387841050393259969410720585974709013940217113416018448039372542806712462155422415459599273885743471782790824242311137596652277815776465189575505463666034999352604903388490411095516101821031872334508899331788244957661834631458000824233998488071386234329992210964765711438393186113855851210061542036445449378503675689098157603558003800155657594670459815842760367333459314056706633875741250896199887140940567275110373830407517292673294357710930872213438426350758043419321872892284583189229367042385631068662995393844114664690416739680280561861976816627870899918229673829998179767727415791759698351826223781714121715710621230821657763879270236564110492204379300049754741335232816625148972169369683908848502762579461321826927832563119809419349820764278566061931899732584368110492039574179789461880642688007270284181676086364633821420411349952165119878321141538301887617009683276543343557810315712909951935589026604836656869051523006047311829844431716982853749945121805245990868558679378702050760093756564987714927676016300867532151851364292013643701838308441299337774942169697905794086644198213253534079450692439651829431928531159396508455842747961587088500059428056061149161481023561902513609586683588612553790219083131660713728438164043699186080626364090265752199299785840110884468244406816668135493857941335913814465498654803702776606877903074219462239259556332604983210475682741444620541519892380752935879070848247405257100074595138846427687082654468687139460532220219998843178797591460100370230520786411022706290563092226432791881717675960726437091751248686579846257602754909489913068302284995297611233671224770536212747986105776706937719023582250975875132999741102782836442432495847062825900706672948991244901246054102279404173671736833190774543533043573303016813989186853132679725473353243510688402956571167628366819936289737632328974552869469233253626577964078020623572130376466413996669791393010125785920154120680085726490877197500069521916975837179907446368539429383577693782374523465395983079902603099015306339291400357791315076332325141716113159004567068412592082028567027620133539641634242165995070193100211012386600487744042247858686830297528572923651615974967949316251259492032688442817408319992246831805188366113347171664706928279265390387316673131338808055804115957991803476561154678994757384586017690476161033440042942505313424709065131242012974012979204124705841353417018616426100919172567821898763441745490606759961468108079957410923272953025664662120712790352613720393662182874009918829853327696985906631119416069318088089812790144722061936371576821074225412460304013510066247247572091875850967229337873533284903957205140803955690101761073700541499815021830549652329235864287559399486284247398883298584481334033062782859474442344840591130946226183134042476256803335986741067693078890735784430479865120046092903632248262338743073858971605467270865882690648532890522357199672787364075922193440640782653756063777714689609893859903713145432943000650299647074571271739404075588061648569001340535115057982644792858097107522111786058537541162089433070230743704648732836608127285876041185368962093291901588647369082651309009946720740908360759827474235246760512781512191995274336527609348233199841783899953572744695706561510619207559507394582729363452002807520241219578328448014902443940615323555082543833956822819150986580445340783296835533019823463899621751646347823003734285222517324537399790181736398532224661346006100322428082723950315846999344181421498933100521537727665457560484132744697019582730421059902093184111767244486505585059834988957152267387671223079480900389475343396581528916150459132386384218346316966462367038844871995092578693122313545864359682289951347936932412011914750369739251498808246061113161504441510858651324806896543896512353689483586270551084253497314400155885056527524210212622531884468971220428188607192778819683493470906981793503165593703231093215905055644689441354062645713617694444459516409838746491692778455392420813978609009427664978342150045067236314079207698049277552100149165636996964699288406769283338237788828297098511611392892247258182517415640100282962671445718593014788244852053274818273220117326366374352708978020356622648570479574400658334804647124960840502888644372702917183104554929707303919330029506070915206322979143135560845371141846379218872309811189079081630244249718252999842192873073058838776285494501831092799802424083462665792753878944958252379802033430985501090919092272512670129833116634158845001656290246360189518643938984078995514806993729964154451136535667896823530328724322948829696470981821065351641227683827505221331295350036825964649199433462718072480385841107656952677038571118515618051469327804385896104073355391686415951262895123149188541455168352055572309068283342880600720141230900958351023025515815166082033183015948249424690729904309468039689465245358122572791494664230083517808861612511234517997117818765824475768883013955696256335734525446548162915073402075419971763068299375933901402582882284683021775472837309167495942616278360858502475987286169222971591691382365167149469742961967213269004586093032860444835740280724892903982981357196644300911174506877229136276295526291408083269656099766059154987559687128004400684598118543031927288129407282192419353759999463831747402038596179686349944433492482387921142401372545050951635722478079688266958541127282350657375654318532046286529526581390781631636185359400290848866648829323773070447054629310931036779304966200655308328221875314225303443927323100938740842718382033579868487929208189847929506955993501385623394388995534803197413131429404558090875991600917839084225993652520798169352984158051614656578729268510244233431609013735604902020931377606544333339143358239403456480691101884977917070788086107406969419417485377089149161581298906830610839822591124155599812271798876969684509501971343646403977031814348119339248930649490253532094253206818194479940363426890903505116429360635051483404722652428854564983428314481492988700108150078885828632635649227592773811493997558896301904644621653029344790842214116384044353230820394581608320974594330007951229431290633419844169853523121369962363172695462498413570736411590945184227472452809397020053545431531223395745141970646585822547815447981738684110329536566238222239128050051952612894809233875996780114020612128429868728405583853049758059167594637177826692081384459777433393403375473370447356386091173464452768566455936876882971771842773932394905867924510356361821292416347261877636280067924555072393945639887633084057965039493377109989420546049111311283465594667754621965960975919348727666423176964969758020166719504703004188501699376287400922159995959974995805997984906607347903173317042684302279823420421594472557013370767870359552917803334290330189006410883427050115283231320099967041218947810110861431120182377551816691908938728653825856231445822529861737301376813622688764517267126250778890900996631840464540900595056139951983629929999433016658607339065212539413562941235437381095010332563392247539727174210702338491397631338369457557862871563106651560069250126505960252826416734724474350882890589910292570066779082826656796242034915383998861615035477120617131858229148834384333610936053094857166355532424861297142975410010273760677594365165926637107862731311907349943751541133869281778884476626866522291571259323389694285420055680795557657139689135743092818875613071954477689126115482955177409028530729139665671537193512576765711059847158762985793701174384089393215751197675843576091192315017600497864958727223509578739849421785396815094768285246097972609333932927417340515046061854985984968950328156022691687993039403934573296384927113160920754286393555343439466975340859263325696340805633380202442328075572017744007558974179516433383677771871563238317189617215471524385196842722179642977134965044443039846610802930621030444156985475703673809466653442160090400737999991357067769460367781298360005682020501810616413326061721565090187188601423656219166797120066576248575057553849768617581599960912913208886181422327544046461385140826255818806197176188916590930835340506512762544761625426899167865311338143998139400635186513140146846120090705728157806476788451369172244922050070289260567135504751926681442179494772728748580327232586830762577943763270949341206363077279894765664373665587508450583935630726105389659977748602857661493441201695873462677210738497021706986871644795205676138954587230707651018574994021276069206453038977843433549888042052403615723382317002662256604188028151406471965453744417281165112873298144441517545914910662346910779941449197485057219461655585566762766481873370657030665053038707286342691589317484231722167521671961687594041393279717176911998945652939725654942690637137699222934534325597438440453445394547163081479404256909883356129243622701763692455489205917738782377146128507777475333031031495996132664882318683055746292718117342763356677589830273263998800044641072312112266861840482437172808484761392914500831223360173103828944651602626072264034515539830089039831941284433900751277687001499261261995077562006890537321848335926477904859532682916139007478168826734495877400382531449087907037110989351058872942910317118618365131330853548649906299959617658298605743534440399062923573264451432767342052191761123285693447261736769094748139384421046265701267912385225280393305669892942586714309098949004698958026791797089860804153033699381259555054747346261388344750661197316539984271334831114947636438691367799830682650981400756497338398210130536633573791259373571046787168531272612549551188378778588347073570211665295703806782985960300494442344267802958753389946323985029981542782237234036013966175378291242531486179135884328355608385221201219001291870927208295663335132801381738016366342389815144079780711300465236910606265560905293676349586569511903427514533736202029667208769478666315225189489459654579020640045346445315799026943761147131567726831032276668014339035506642691239174683174980337136565467824438563056150040175885399064535482099607823333522105326188957550805485857882643861677280273941907069518714092405765153875015671595051711900387904582789221572400286260478249592018537344538093241298985842847505555944318691579605477562096336258313551785044832786243023229164560615738707599832205156588558719723631849400296591512311044358190403308335718421977071442559665158083028170382015246258054894517654952833784771273452139073842839686752773350413410787731733788397013206277393403019277440581256394689057627919111861933504585808605945669152440809560327116653214051306594417984462879101020470843464553337549873685005863194335472353413211880758027528358431517879368489302885243513371637707606634801357043358183667336853967977880432276179543704251082962935647170818806386385632701426716821626801938683544390836679943382127567825144803565867558417439395937687202515993120814509037243344798265977159197718467388544689599216919055309544271785498418428361883714779537604859307260071546125683233707955496659383275876038695175021007171087384601688590124485758580723229728603043825443597168649126993062701199563657236260010513437432967230813025169892245796871819696187556370590057106847380205781840469847299141701292812405288209191335917126144567510741592313263161521155295626582528509144067357652171275594975437139963767823455967771658412688208578734774636697165989333237241464552367973283331920739162394072611311882737719535565219686555744416371551346568480034139554411710202330003298172602474146919623256334125717924273781673237223908444096308074849118153220015525386814586173735256478385840189458124641524850093058610468148688185011155664087998193917067716192654098279147914062198491740375358700878082955584201707840512443188757338282116455625501928595003516384598204914998925926381572133529036121416771467424631757603751201191934751809183204330180502557898298323285747478226057172127775696238387969002660872594993344094395639289621262131254687739817686648761065238002793689461690452377224741485599565526793437756718497038830848136011460062867485361868624008717293552603855387319809351828776293830225006056525780688133972797875020476028922254422635561753797573706591909998481747333949678870437049298208772134778541896377788294426885003316079031347022149451925481342686963598843289730067471354943710422106285042475482951346205082127497528070450839042902253191343837687836494554979227487539218541997870853246382416693618843721156952563261097378229442316604655858292198501228664458148825533420061711646162646739049258791437456966536619288453561187736637713664759370906833617321870507630517295259802807481954656090294361676157727202999299924388776806327486552319013386261474360568791962782794260074257401101193873927246758029462887738948989286490969140951999670554646118244939951754122449020381001307452355339141898480401546515385900926201543537611634338144245020572226679795181746793983257121307890394931740445171607210208318141708957407337518693717990103654871417438461709116154396967766080971055018625385590667550664132048571696311197073422843622363884875879166642404184662495978561402267159937715584504924772413212798422079672829957871827512368387236716229435619383724431587407920908174762445394964696277292833038750317614981979500891348621643032619469660534846707070740765910526926416141855095709690060810022801295373183037958201721333242988989126380284288846068889025856973805833479744407182314115104530908120757701977829887752864145833730251314322631414056995031559581278549739470751247784758293000741845653479178730945601957975973099841467128727420348053097948338517464330913502964788335103718467093355082958857250951791519879430899799007366993111688285471533843896467828279548433419175181423228748344037812728212009257246114752318961839836710551104515503026383114569432993292772224183742353702894537686253891567966364379863609057094101556501113691694949857288508233487915750242115144487925341712804879046676892955613465579795555605144315509460943915921031546537585237035220189709151949503944466399494891878610216099828892818869080031058228812673029063377521569588892037292006922900295023491030572822404443826296249402539045445041386915578260370296955153461340414000039307686557019371872316143079248200633149275317390818555142228107362278000457110397199249965605811479712687933394890738668537124986760108869811066288383263531185530552498197019075541047219118259224636677044781728999395159030603080019197508488424065013021210252408745240724694693729256506333639491292411658584090658060587717720997701608326756404669020606710758252902571652691786007675448719300695393526319453914113089466764955291968730888180231661306465726011944632352891896773343207772117233211969864348461384198139700531704642464403426000006171468986438508988133068484290772534428073360343859514206897453568043731763372374823021636194911551861629694304846062514434920893503855254454932542241991247635129778618156217808057429632878056804828804899288689283922235961025603227001904882066478518538931009697742344367083514700270485405608324146769893346658522283167116220213236972668530428565429779019667523153259301483914808124977798346021181690252239247836863578970936760059146591532632615693623451385732988953485477455740582807828892871754894308373826896721537465061930302969190492325687125996105433072115027032504201115474930972654361562505914741081842416241317342552020628638287598601605337744488520888851640562749089054565413950146956796411235571734861331870352140392347196491790453228323544005089670813875050229737775911071576694835508395365664194764869495271463490208441335329957307543150968807870289445573444698178247061257797985274477442612074827790804404663208574329039785640697546752396689194168872887615308063754365446479232341510407750527812739082758101539659747542969560560641995983009398843804496663268720022275632680729844242345573999105128588857096187057496629587830193410849404096855653205854472788703631575332635261216568426698187339208102311364355281883995454180987595013362899543260883152835965307250172247322454736798864665085994580174389272468141818759530220424367661540775346344401406615953578954899061595582295166010067451841083315458785219664142975246960077968632596894497130735830039498711692127468644768409684741185670160040239116160292326096820003877142867492009677916883269594032562072232318450499527086044938226936499790838096678037437807065137774241728074010251999994648236048418597398211162538924346529156200084729844906458153608924293123925293162785427623507816664533280033801819790392589452314567336445939400843783421430883372399851864145723035632673505159967077117624066479148116040755499783815527987692092851627186271962022941717500444433501833431815799986011279387600114234992272418720668459024903534571506852888218235163078941872926780704385768481530728143362877072685174425673271573368412366352910842869455611003853166252465070771732760960473203894489445262283457173430418274584464332793329249364376476640292767788825001393359535014539024270748031091690857622595670781698329199095649647116922067527133333128063015586550207140179653739682655287042063250321793295767161557582196603643982913487563811416780871732922078556270814561160517310901755429448623639506042438668913732198916548885120261696768746102574931958617884402460001926469516162010189154024267752625672330885235971440739744762406033656307357488536076670429176755172108502869610727009978155742491681986941089708962543971853641529513947823708511225545000670738729719368452649733844675056079558990941088322243538642280760761391054730225155736711188707768717622237044802868511231221380270701371936006097171926588096451655669156787295870238332511395552857321160505003923701643368451751994011700125833251167453135557822200475943791574231262948046969600210802004954285996170048715235267651656798558016380152048266447497718672122949910746184377097490048981602486741797112467873405748635513153419314663497134382450128203841365107958120511917660874571592832708221483632033620493655718219585364465913800493455876786610637558276193697812799731839130729811446783359237683151072507562060587022943754874163550563437358956444048925222894617955477345970933904823955162456633405318234210174779876466997348622135078092600439775771832763610186547054137186207675680301046933380328091171543377299671948641365726596165805169290255373404279114138134957582876243778596578418401321602168533023468671828650000827177783990731901798895178577662923175419418687673685640693850908695592252904098517232553536973628524854450141237891350147176807837184662567693918256824478619624231274402270426625881057844730072600420647025164819161248367554521301803545386272566776940606551708983274449225612645518863724358403790076066494155769035874974901131524392222703100165167450372446574704105196881958554414010794096061930183305583075844502674509175310058954573111764080792675939790043838246175018693837380080816474294400489163542693411772504947571436767564650914149615927202813547696716191448776390048134264031894850197198984014163610825002831417834861819385366265317221135029055820162157907354930683831196446967083279994030125525415405057731207141678894726004307722935327428142775594561929154706548368876625067944718002661523480112477593096776440668975554585946481928562754021366109897799182062884762073013590150718085933226065263862248980201433220897030060387185332729847905644006535411650032013758443160894360905944652041504152956851707911262875490355787054851912867256824664473249492603212616362896223482902950027559057054165131751232652919184523684801630891999919017623026188584883815647512083452334743335163185613419306196534546129370603511279211784915788991866416622159122777539078164734859237147653061853897549656799132840767683026433223971535069873618506639678596628854899276944172610020437232858570680865022595602469132451532457098839772034497015932558060412286499257046155880082205776128501518920465744835941428486367558920425458983183951462343763540091902691860124870552417832814526227435554315680359793671370806957870173554077028088294763612912520365585981991806131276298261995731083834529652168367919007146416560514744414346023726542059398130853048646384937285742763092292323494926331888028661186323618076455065254472855076233348594470339129973926946712398099472261780504166061553022098371292130972953771453482373355877015443745972975954201897523482815470679976211806945200933095140460783310818945070188428318710306094012899043299062642242275126186836774440786604289411313439460272002550415928332281161037234628743633779096134848532021153162348996104480687697675299209804585683595109802074047981700166669216256313223808039762427512994561045479066752591409329926068556631306307548898488355280344347682691560619313917882459325775340677572593786895232940531473880107640934550964839041630419830423965794562736296901845411178155915409951956720962349649449116563593980031618390040223764673597790613212249116654215254452733166097630604879434353009436763766517437416170591151724865000287014665721484226169365578483425728695898715675931837488037443794522830628570622943898242172587817738661925831708191955635620242740436871616254590731366264467077990191683886388137808637475517504519190835374979035891352677662361252014497385863192490788967048379637501122864926641106453683220862313116478832189626117158672173719866723523460642308174864204632734645444903170310775709348653876511750129815550443601795710274237151849588624658982495567892771293385036245099986570506219209086671875118664189728628883898981788880242692306345340027945816257049655065573196781607260251225259581163652847436935640698412143913199492911062113096475874481323607885268229616664117982446094967982911320030086054036207176803790675318163186335883309940293544385723659981549336373634214779639977815195698750068236593809760773369692235725358075954741405809530447733744808524192389044784722927215167239058937152387685719611144686636324257667545745835028296099246721837286495106829338783490458043795457915517839146097934830436883275659495133313159719415466962416139419860878758412494422909000000298449709409911307993334442189093113340575538673300203577162027171100522547926043967780897440148480454141255054323304688793226263053789885522979456619496824635513984260125919297845368129156196184981644681380053319040940800742072044580278344128172731068792474768614563558308820415622629291462436713281895992017966981124535617460812984077077962342113383200301475526748918451407587318596005839201255346859254248868716263067391261793727529703850928369679510735758097256346856628239934042162015510318940901902968730367588110143514162114655830968805330699783685723601290600482827767775687202723009654768802344567994080881621207782197298971642275312254875515218278002251387805670231127877534293235305915174272399076408917073455732189676805567680701899179359926119948448800657774762050927643032304039487029211520317708272951596079609590946896463691407410872163653680159979001663463645496609868164733840131815196356470402774168906712634956649757690795429144899965746596842590161748755280085130635398966548814877987299676958985178911096218089000758045708646430492339511354352395492147591254488383209974077343099134849746236770762646094080529648204007905242023501668621083108830238215267027633130948461691154286115138323872706144302876718204275986823599924164490212923006887895891813157851104996126276593715669083151509896967584282026840258806404232395738393198416866290469023219378296781062313448504330763438956909198535482556845562063274591791328581842671412754839404897166213122366507470715147200335106385724890525202653668011742063932651998849184463790369541274204276203657541239728979475476611639546969325163238630451434595180559078894710659777035030730713591451837367083206343352088053585967458035559440392068289345895098191246382472794383677019354266806821526904535708157048049381409854169276653920725694971094664539656566655872916766051897327963997500114106716668618488625713229350813115165075749859959050563284361834918061230638013055566171299482188457930507626368297375377755721536794947696888403782516772750427749523269582979272103829981864657927529451072664427699822763589083286896883888969185216777145151869533195895908259913989939830242915274197435581419929473540571902338731131415570855755174109427945634387745530455553634749415056744942868370760312973938968697138370616513482307394852427573721777388615716821498775442153459767604993399800809636308204528951050263322823711205231201970529694518948121869191890210596409656236509425696782848726196735447546708041223640238521887980639735573366430541534296320686166940508852873825832938994629366319018473011374043055430100078812819232333250390535485702801685750098481631754666768146787614040019068484135968758470016752840368665656879603538652387334579003184243922803932663221576339432262545798139200076282161301518208640926889206365794459233993288715816487962076696390639858286193594902823590833027168927468791909974616821991713431177464468728514540809447964033519690349057724729081642490917915296893881036036519979661384565394974427140337327621315239742386942016716798021881496474542775688029478806332665248580587922406918939207958757692940154211306605165743404465181704408585747507403799249132485417523576030457253099503113535203363529077688212050334129602477706019236767723147470579918983525617317331764796371893353509853927926428116233968866077267146646514159693781264999773984475540415553095569786692746659781868872786287572687100198021727756445935829895028267907346118984887430932136865698198821129218862932068308169337342739130514298435442191395655966868273519260005237832692937924072048454883286744702964193019804505108386358588607439445587797073473564125740367434840391691012010580026230488014145804535971028795038409469218269162227483340251683736737544073702895940460282213062067669800817963082009147612846938877160777048373838115748027299089467629436097523271919584625314281307925218555372080595911218708297222543185838605815852958066048173389665159619697002025055015859312031501436180480157201422205863872032066650352002391004245069012795075321375906665994020067258048157954251995855164147667857397598809518495242294303307487390571469880235751503335069595908485221732012237291977459211690862341059570627116174310104082258200683597802711392402459488692334851824773978154900303498486938122357475976994646431041183555110576649655736127352313542280878583429231115261331913344946860515807781064323766656164851975187412435651029411008108146263403151546298237417030322173606812022295303336715779310028813035103676935102952897050659929026782943611765059345564032711655137310586730161128082637299879063016131705638383034131876429870865471444353725256820448229230842066345604978060501933105954344457687021361477273642564706987200910843918758618305107102874503956706012882864717283512593903935455061104898537922903193091663615117298876199196800783955596920956235919388957057159488346725190731487982526605314207822760379211366084028418185598839204183987324087839184245124838079103770423533141825171863058290644615351911419348832994684534863028929452465057228442486914327857724033175727488133106955398034578177701155704262448113091360928990710689508617570877454376102664596866731263482443596015802051707854018660452299866044290397358769040540543437259487310438644196978208538270311071073943786686235251650785716937112025276249557489516479582836788442845002002999319542244043584966199478748044733785544107505938941568264822199823234802243259221671308730310881380518580724808559360723955188970442966600204081935454283443993001245986144910656142538752587178114301559284472038454839860426964024742214494473140303595534617653948590440077560494178851090813445570847445940097950779549316307230143626142282833569090408803795900774636854948764017412486499195476787759022830894874906054718322855112578252351531973171927994747224345447453029475003844016104831658794488361543429283768825069755859922612032033917077815326759987317497963680447818759703975595805356085784959328245683922088818950862160763498316586000804981458679671141015066454265884189529722183961304508169019128419991393214737438059885175721717914126289690553298332094180028197262535995034851186295498658275514484933824240832892994550394290330034427048376930186240554825177209736308752397987258603085111709981662829720806685293320489895367397544397450168146736622608417318720211353621257506949973048464944210530066859355846315951392777937610423010467642512218140273254862581490409774380131395655113010035770743127630568222818213110991528214303005980225381575385534844431332651502415365248089910751131115004736880440365592426402067011858751398920154057616271820181760439751019216232451178979612055710650205572392424034169875565452592935494690125766831354486434110502246579675576958353076081818413994728618068055769799832142123891557061491433311412912910445692901490289616725785073496820539604693196553278523155255252355949961255184898574846073333880875809597507551347923403052622258378949721921880386853149039399242105731972204512389105639557167120459940211714235540501167035490362322901466061599097012799858385655438839762753710179798840806848803769700985624348673516212526883391410417719103693769134673823237214555271734690501935341737217693213565022405766461590548487764263392016008973651725460959427065926138679388898891599104526756939266542698150391936862047293222824716600538839789422078710829809770955295569029129424980717297225546497492079670890505909440075218816273689614063722543616679622215951347993190669953169211765553995832419663468164649119916958991038194967213171364499115519012881042248341690083699273818419733462850290142560447822733134986958285016137736457362898736551908627709454026628688683953985046760534372546653009154114759522222506283408774157295376255262326627716360955551587793445063815027826212756694110535508315493659400992179236571378164645859654911694088262060846994989844293117059325566699917923171316738113021157593198375487542054133132222884819742472847776318547849524498351918284424140486692816915319541791654391649089003077287970147111883614542973249610639657178056485722118148110682557930204543142805136878644808821828724254831552612147743176225484889477206858116232459714576405213488511936714009076755950837896930059543434221667757536875270668183999921899681309340250782185334437016782117268669500488475672330164587478834752582041361411353728247398365904916148373333321116543314346876495501056868522197534936422719841198391467529571639010107122873953605908921111732588029064221016736334582812372043073093290153699842308857460616102591071755065493847779510244001147679706281754803569251578423123018532912161355448872092862330615542771674805844088310207048091356927074728581080188987599394870102723761916101038783989630348973233195181895910646915703382772144144786038027811880077658460662422392363677929496828627293099953809542658974246206941330784023550724223535685624056330059508806660645329201365873375077670889330197789093353128900905966632316462343087534046896493968101190102088924576870133205720477498220810621121649457172476244950841022316942925728055510414580777648409791196208437854476949253607183241699633559262925894781094394874052836302777616220610639958156890218146450391714280456910165120185019420977252686351201189072551775367990238929410393530842856424710342626224996298755638297496506105041173825485107275382189506303355039750564631345416512372715227460609520557137149761616826232406603224106273632781298158562311579606818173286411639051475576312528881706381949621797993755024667985024208470891871984326059405411441958057483584821254377297331649059205797461445443790975449595446831316214833884213064366749798997286596687779475913332471235505481605463075541706993581996252433765733870693611549571213251970661205527031868271705176178746368564965629872382814817491499958473540778530090490128496037057103404720779216068159878752266779673031671222490510275879403541384647498237453637153623402304120316142329544081890287509958457313017791503239531429755564340222600901218674144362537066734637418629054126286767370717016438443701245370689785709417432088539855904846761065716519765287623552657972557029099738700695431124311401413221759082425320258938381337427891109006275193017255247356186446991145922971889087767137574530877891779010132173699942101914873943125763042438693676094643331196187385772230730554757275703223020154274356134693703915374217775053929347638985418600080090232056473194883743996740048885744485367921048033238635655339219890545708212209917023423776387002265333946754729424898951978861718835379768925461364855510266378530661861307027372174528277166501421439420935801132165804527329468470020137605556568676479615142632054423087508808726438168633310023207408810769368129337795436447402626532660672317570202786521129381664468978177867015592640419159183159184322768246313818663522351626790345476577898846024818632898605112247610566805529354777104576459643937679628064920116900209905648338810510957473974728441980765010985381258132143469778581801460404073004797457601725914277853772260558058952837502544483424869588242634488632317695392682554153999196015245929761482261884926808280873864979054412394605550459880060610210517988479466917705755653140418661395123449635984228651671098257274941652585841869927156419800544126974386643223814995360717228698070382505797352223014303356654449298314286393738413021993802954976330212905646561189457002955920920928010747124520947611616686774272711814506943952191055940102374842070208627076041983513065351866102908051425942629971076309574604534188494300775176355878352599331557970899952895528663864520185789779922826880337801811201719922651259379942368342687070731455746779834364956351989780546169470692509258518114935930378073276891132242157363196052435450792573516061459979283092478346420043058582656044045906682663383841978147929772921672596265313991450863539740230378047345559847901481204361625290158983664895456841244510786416241178956656182694339503547179311882535425665955559678252379632595831457940242047579457782544135504256730998692275249248017190463934887333992583877726019941685867236308378840764793140278553394700565546432639841223302371758375502639855785315351867521554823270107638497242174291781752550938140812347528808687206382874242566672896591038080797021249556041516157160351004450987272347989669351990142799440597218364531151820550082761334288009158523035356109434889911846347264551077055379581793151086762391608363320415152297744521109729877725191540560895295883417171969363733686582961987471231243834346754249388994735226813042607156084874496718041500905440188142016885940042086388790492974804497402322857639191071172622602552297848329284751487219633980914728624828033615496160808715858085270964396340469782933920246993874242570344367909415657013513427191853390642182042937363014062753836983213884828884719190796696312289843475593947290360114114274059316389125064981294389240897553498376156454399610804085145939093234206940796033698864565473396554643877199225498662133462526613144011516533634771116904425936795740122996919426008670708447948887779340198240674066707073599298220904220405248324013785639972115989993206796317421158624184832004372439956551809849267980628795071129745990950954191761358178563387049546495717602213838548951561546158684293688171887471315967608047486295568026009552406500602816885270994654843427854184690113319523097496355184373757631855196759773964944373366863040010130462228302023221269360403523403813959323614125430706765520130334202597106057788604343443717669640789836246006316621443687781791327808571360275675990317077243468246965368205567131986532226528517185009583074807328245850624017380296744498868758039298485113415640163558694371586775065132944159505082407646842508988659043634210117875534163684800062685812761780279314734900059770967592626564419527109500010538088038218927589950586878190638127913336941814720137066558525505165672104330154141941335444571832672436828529605619908543024325081432183917297693640981104776558432251910502341915131025423199068233658206566022688851104445130620008691115797404610535657920247713661094904757148650201333735777776952047523261425574872270802118623438857107400068342909907416441389966228089369401442286675538059774991123078127073836064287822789268199591119980859600434247819210426786480896322425843758883867183015564671913287391578398227969990201167481363303558002562143508355413426971515203228870207806996553020984888861933366974023323816554398834928111214454599647803648080577571140090644440505840581024763895971140878061754684551884456230168501564003623254380896119477367857403322791856482369381773260391505540124691365761550983830222359766306685444690009435330484550390794356863877382290952115231571541477208495213454597893964395495899538555280860927180453570163299364365128784721998239338439149626337506157612462209009163607672666613761335610949977179723859567178884115322668097268802409405056533942199393057810017308826631167899836888598872483722549915888226556593889455747342034349997235037051475003823886480362946671265121240162671861018983161851617847064038452580481492674105132536111290235559032730292121265894447049091983958764755310669027136021159142354596891276655445776369094908001410804275930018554432044796086345862337788868563620375636053819725839255890257530935439957946719763757200431039279236157161336301480733497569056741256158383273752143240909634321338465602662207453479820112794679047437783035280052591092061558079142221384729844444408460327483730416447743484229904580431240319401871447625676342709685298433233540771767858605996107541885785479245845680130071831354287790726202647559151726146808059778656337609348863589545725236372210675930632501671676844318205330352068641437096673519748812024981561458390712677089701174355976972897037763956262973923792690757402132239301326247139267045852877347490638976350669592434310409624099470092932342841627738354018521068306654041404810157872338968391324755976922412396409737473190997508929261658068557560972758464569407469827361340567212217741303523691177694229707913566417683033031691456521123437388240431966443642695251490290729127516704775927930010479012689780905457776105088484175128659465442859733358620667480391531498543108463685635652418520100032814119602951256043747072901452054361518136570713199842250153970334330686402569128673308561700724181500978211483785462854902369324400013738264894963782968132419403108838618418312319207554098643924278775715316374063251111130288579197147522182758578239885745931018020217946251466587433979687970107040835853455682065374263562322739827903110941989754247984037879448647771217075609044058228165118241088124027374687113446864699185138192892917923233287730993350079768114785379800496376876018613553855289469588747545374802363456096614452168830016664867667733417999101897315999278298579133810647192331255814137362005411396208035719343322671758333562962428459488675766806612642986103239907617850692383841772652893188231014599460171364023975218390053419286615041685329767400781671239079697530285902051464587219874374192278768663116565398474011540173623679086746927655812542690604177470372720411721750989790152307173238017346144641305115404183240735203394645882742578407160467047064358916259413393447391227987984012895432957121577631461451518075924800172795275624955082654094765903383340493824571726217051015116897523887955222556602869132371609400283258422558209587891846658907952705150578855099031286060410091812716089908494879107424749753271703068928492319327799102079103145759937466144083577399003974446900394638397320301634929097992706636024895396265898839253033817185688131123738312167847056417087342052070676018310154299909043204227305859536859792544708496205343249003028490402320165383923407692059765154274578658448424696170313564744532849912455327740630580513469229785806212998586651528783966844747194837734373871486867961843311084952639528568434780240162907592669086536232127679034548729878076224863809137925987156418048322107005354487248496568700066158490482500250337331965783797307722346440617148491584069760869570511799200294712092573445948357729384843437651335815968064483584489092811650172897891469128971011136386172125178823278539610360090255541307584350264799285828225629477741161543669309588447430786655305881170795292055667423941057804496909971649522763674045234917175303832629980849890064407743187459047825454474879565320529354871125922761436702836442625157154068074714027039050804079463237770194935011991566141558225266434597166876308980408948428346851289054875417520876158430108106160552986855667246641949902290217594601696761585646629073608673007412926340815978774123012049168561801540427664684682239693362171596009457137838999138314979791053001689824995537938675919281326312973519786272667226203635710459132466546746095985404387371259734711999871903925276514248091951588313295525486086658524368950372394370177939388985918011328084683160046499787775299035100296361934731937557025681631662891594753143912222936016836889563335448400723248659867541885981319495986259939068561460968642761336179507744967755066585350689829541842214277635436302271782998969582935412788794072121325356555734766688466831053075252013929877204608431470284156284336249939906893075522362698734792929416748825113644128417750158505556941537089877125185976852870205556310434426757256583996936227680308851975312068799510209588338771806290019017083380768257734250803317184152869053747715146001333433147893010611354112394310729902408114706499372901230778892669020598158614259334859791748405461267218601025950854569680886836558696917250369671899109176233965526988754772580079787315960600389661333209679430723220103381125221085163607176012308637613351020796639295747307602398846652481336600019275736594785528940554539094983965169630169194339615254066622850889975143835746378889130312570260245986758449382420447908300711624093971998269096005636517706168614567422905206554584397578271885989335893700411396576143245081957474170083522373128297668355879991843234347476232523183086611963188145927489291111627042104899824330698328052554202414116900641068485489153175591195335343823221800077423912778314284952752158307496950973629056551021579872654816750194405091286233413638082750914787942732134621194689675373763332719131107574226090081382357487466756702254697074074103171650269489801320175854741041271383530501828228650025679366407060958564067196429947685446259407306311748521211056313420169880584946414307659254530158946410599615367012808448292190246856229597895705933440207243339195090221352165580104247398726705924726977478555332803948496940398538327749162611154396914131638246195973116731842858535474716719462472158961549614643150337199880041200531699482557958971582939930865963914892516431541378242195642983331710159343181059501991103783092236770597970582392478663476680166057103756944242108468158765610889416210309758279507248276460040544888478511216554387567590781028306856177655512190871758376591596296761926239942728005269649699840396827687890442631486359070599664276465575269418871325219021828802317474566496201398755658086415127359231990037640380860894489980945476783547549993569445999257912179062048640015392382790994465847859912624268489956428248652580469700563627319841005149136338385093296102905232045865567924601966210316549939215687037718428628710734486899181439793196756575695155244811780479081891226874540410742693278796583990590250326025101429175800175579092194547439267536676828832144384528161165733420267651533193971883790879167833194894830334822115062691153027323786422787311096826015650819774209303735700240658097668812486760180269677163253513300194224426403501323570243881037992720899627313528085529586486868995917948846909772786718347444619382917532451462511148537393320433021728482597692031178419834594349233011240398051802019562819319032993991696073596239816803258508722401929334810740641379794072691870973515365007330643900480126900739117256260598154708259976941835912288229738665991556581574497427430255894519463287916077331056010909939218797926829353227800963646191233459659439658991537446872197502977872519760218337526699082363555634468812472049420257386744984688401324172214377762514393981703863771049294783382366706703721167754745406059401071580784103459530491968379527259429308259709542975287861445237559705793646358169856129163422961240383989870483431049144949237230331067849212721687233008514411894364136961405337533587076897519202977040174683571468114158334344291353368609318596479654294144828480282325013775687508851993558697118096645282156766054050138906035763397738388939556461750414402873651289216620269003362802044654933185250919447830999734082711493190950604497925360346488028011285912385695592172527560919888823191793305094505754450002504537333091808545389090473169776142710160616166986838293611132169951914468329158179449590981738028467330865382482047248957723486771411552282657255556763636547930624088792756069522877556545114468358212791713545476605906728962542372108802243293622566307395436463046458628225055929646498541573666715527160604766990696874400649962418760636408598479238451960022373882795873263592031101867927422611876583530476198765849839290952816275847126871320086241791551046578842923226195651402076733339312685050418990461542239934783897248090182759054056696569751569835677447578454456913329230634635660700027489659940766699106186755341389999222074219629909801147928169989664417912102097740540530573950601131395645524734655942884678407231308054769329425999393944259582094955678950125428666354816686137339905296114425932767989531371997594002742041761558097891311102359839659044521705564299548053460084996083804572970749496907750385215846890383340923393977465666578345934560060323826443071304584864950688332122939610832113990605383675258204447054013200015636709417139326272573198370281666927374306092912212967804103952476379288421833452178380821303912574354125153316046351036904366087830532168444281547277705163723806773587183071847728773632524149075134769975430565769340314299626504942950994104481502511531068084483151960130658049274370948524613198574103997548836281999747813590870992964993504777549232174778658539649419815941600648921141400166026061870333751046880871684635422588023148216749899708813388486114404307387281854741563129230647810948788756034789766523582619669463946282564114765311461593228961563692719543973522103330461342770083726286761390584260006681259986112630272589029027125916930437537479675244713393674736832479224706811953687443065631724255296861510422032158812345666456041054345768008218687431319091239822981498714865492035442228416574050995787259054036401377822226397896846078631367492368517678816260452995303264068688420418364561805887498290902165787574266674044778087875198246529956467574183066360748720617849774290958997308745246446438141081368286710995381762865465760398360925169439734512192889302373384634932685375480544126039803707887889780225935659372831361187621863587501717227241562992134084856080686292285889616534068803186407206397437452923746731905479255905726061866017361936104944726193576387705756215036395590200191723235060667899390949697799260255598625279138367138642855647804459593781797739003919240830042702883239759907146952522926580665781043090258331747781595013263256245780444924026909355734880029532769716530620096001501586420954296336495654166502364499615199554896340717100561408208502329062275516722536089550171813445073606182526258617902484410639042337855423680645560132662281972666902237252823747436597128742421153934678822688466648539657408500362790272497828303908876724733463675349025047731726208613279824301107609910447871007564680469635279976105618986411590022977783752535974549537318069332039457777527005707215237760118198807275252171262846835875700561705591395627612880163820549398222177255820670314586327025595009174127424423142825020184535826247486615184204560487964720698132183625084453259486297389092930818495274160939518032723970301636748818101266567960934110370391713736038462713754882523225451186590581155855326410580254270189950829170023406225857340133250717863270939985338567273820757447547868534514470030104929881558549890607352786119960824222557035337477406306278680341755060819799212462256754715810910267307473876151544765514986764482571491600918538636322861074679671610735462488906870677454910018533012152098934110509558298184954673288207952522493962867034444884954092789931892497536415952364015545575891986389905042664338241918390024903388581612688625457281446859261810609859901863766133452413862731176708011894339730365837209689428366144183523576098117345938000860760188966968766347911306008008076798456821147549390693483008373283284834394813711327338783907845809304248803452181805090408004560370856409148248398966608438255512557028392915090283616298655682366047531424292563944705980786063082996573277860483869393846128799317371782237829957257031863544698110157900387897200650517452868394063426370197506121467115912702761779410915707486854111255078025712812734368942203898765208470232043322329378062953595664309346200701579581041837536043914059082402973373082852154006624877296220979851617274407236707680843879182002967535649325532032507806763318401828144572393868172314342959080052402213250758087694219161645299533042097918307297377972303823500774573947260782787024610731452765604349432011339079701562442017758691515927276289518900967673359844072938042551711847717667198268051836053012735853281250641630525532879162657028713229427228360052797173724897772680666517702174340828438294870260473210502484579483798008986044342825393695913299140543515240808082027993542843911520094642547167305789155023883263751697675590225964998545184106698897291294231708528612490494755601371414828396323142264471073534081146536305009140785058241418709336378974962221329455617189171835155004478090494353407713554292348655765947441436165656866398328987584310688110700198990099572653010727705073592595219996742975331363911912118729329845650620687726739308113501089760702209539994505242102689750886588727852139609678631805864625656994035804701836001545485831122467892542474992721049523037048828597215767170109485218592575561455355960203566911056070959645440537632069004685207320329768102960818701434607503817907273790069541902084839944890597566355111473296034383747875412503051225741035019006270978243878099827652482851804238655911233007126289821778778808646468692607606948722332205047301367077999413868671384787453479968983376433922646029471836467913163772606522246961185431146183619497419185089597854738157800791911160897529075549057941952530444467672295051780145875893628245167103196720124795494854370552995113657390328255815650493581976701829479096720178769365085152461016945399413623122042357849914196384140056938293119103713783391583412727213023904134108586643981260723103357573045756420915565696605758253660789961627169756372919962397600472788803011164067219324662816421729956712079772848695246693759029418304579644397136834257666761085277262736194589437253251717923904952041617908051516873824057945903588699581356387941040685885978166978223384093185412306602288920788039697762283975244085403475215051754502553993998543054095425299755168971525194627032902347811005873410379947757144835628547872047844053698051403062043626430355652043576254698343371576135811609317701882393003547090493176505259564364429966433374073449243871829369999996762801607071182746486891832027845246524992103776931792126916859298621060457530073971292610769644387133593211078688609587541074979378465579465117526053886600863129099209819424447065638880791801696908416545745954195021980487037903031590349798934535730395913875373218183524784904163801943468795706816433988750600054927593673043753763254004203969064799414675766852746810280421434378484460788296680690048920267086554698538726330419841079958663391229036732763409208479462045939511521915773044642512632494024626483195860823877143332455770979918956966706828683671097852377329367346220402052799166232670420231416756430659552128775088035082677100483113944151947276198179233650228124559165165366746810614154622724079249705294777666382050260709458969318024660552845667812757280453440581901067212377398761543860027478443266630000527326243146040128888530384766721467831450381086458703597941209666872592905112760673314091411732206899092782499494432229305790388997243763584748588875380604363323380892357432793508440874115264603950616314446252222089082444919588747902871306406657701429475807186829091251549639039718213821953416101400084263897177987030063829521031960426485716144132855967716622302367568561104859011493916903819760169423028085442182853352443398785759689160129903508776204076537404081679835006119537740625218679982500464733756817216760892509472556035522843383602318654076097425851025824303675978015323009087921188587512858410238019897676007134239159563140742519516321598444826919245672581552113374521519355210084583038641568262474135588439219358104935639914652173222505909906474838930386499157736390010045533794630885346697493878880444457958573547507276982862771374826752802144789132283449424482022972296715578899525545098929923106396533977339825151376279824494749202682630217208761466480578060945621065998129437687326311141658984245666481467450215343513251718912289916333197785402914690559834494656700280551011205078275921191666837360972485037394485599171677043476671320492301528713857601465424045427077086098538948201191798275198508515379602986115793023993168125823371322689263795848294258359956355609735490143003294120262431088230359888443670087111101563573752649403187028480423896827983319149881112188310733913106399047878928397037609551021713456089382505216186498943565254833499401954585085675035607585475541916147317753638094413145619859978447986060674429228089904157985519045642073020848897671423311048553648569577354307879759650575831176965438636922210712002733415959235157255713384760168366013132184848727392099842242763411432380735524713661587254841295069206225211187346670456785536859362120446313966083942689718021865146012438725523984066114651648328320894134454543238034922915800071881684147185091653303190353290204686047350924094123319960517478696670060791253146395885359936647416760298076722317998249688290621112966431451425320102714117569832600015246291878009282862182221787420960490370930629721393339609882275017671620514728976232093156933338336816895376728316949846421084535226549364323834222771656784645958812284575783514505749359305594633764002167447221694130470332501223594197892168883190671929762866835094346500433198395372115602108840293335234078335612722579029682273506616887364482725829201379376166682506822507612938253831458532383584199962305689324836967571093258418078924457776417851889272979554260433223899479229658838332773521273194454383725999011503317203842193063745255965167587786385322454978586383181725937788108330057493616470396489666669407151259355165525296391956082108593984669861080908718635928601906208005657620398091081497286988481094417452124157208543854792724406832543249457278006718195532398644461103115442959450578568947046901137660774038333837944386300581100266481050245560870263818245719675217164193952349042229046389194982369665757692150557293329632099952181665509345975789108755057915134362159150109172456244763370989645960851056847303100324754307608490607329671278450689874776327402648768658306483712510909747507802723067935516906044689861467738431978928045028294716969951984143487477150586025956000428917544465401563510487181919247926523043344722759644086343596844996067859775799239722667487158928698629881625523931225486211487700343599932780409971590658850656872381481631633848621903297396504551182314086923375244157773473556321776587945532326107681495154745821693465315053642920082699587620005566532300023321470740860899766700306301241127085165812992656974867161518507161534822227721859083969904487786268088816448552725248363971410006925867770942976451832262093141389664957598541113811212951012198538121413703005878393581319690961450371344711081450219417460910189895742033353873374031613012938343420677052440414326627747395673194099329492644771812509185830219964398184185306863121123703572339406178628316168013939198110014069464292023431935840667971225536515496053076130462740859060842028490089810389498306749040031224554442919024979996253648819219435280532412269101606037257337201566715488619661652590059162750343020325844646310078765706926251307069683303593873739355246034378815767750417079563602218189587097975044562703761550045065165330598598647070357232153202457590780994962897227154897484034439673442835210825704889871774676889617945499481651197830232659542566133720788980741070179699413115904147084371145238984384421104375438140437466211998682063258061745760671920104862492427029709479396843253582463437301573622083557118707872872585096372961369807753321215811240367253393873672763178093539273968859927737354850114717949420877772793195726804538508152950924033342070740059294863380795807435787671672194069483403758399364319764227842470367676230932878204468493030712260761777555551010286794607182890375645517490956416822666451408850702868900395437193117807980085167602720013020070835787880121161882036179639891310825739783982776196979982863047098990382182689108723462474279811410909347515688693053846500047100729588404087227333859449224461248529308483359966261118990680167502330596448350404137134837256605974986009714775789908125906603565180661222719493785139149805475333458412152698584455958710644775169913142735375701786937123055318147923669989459626282910264994986625797936838203184330971079522071129556842710248165017156428219033292799939671403028122858708122671437253496760625078674907708809741145680966448731993397330749683158316254237927458127664457722092211454959040200672353366255273791646061543109967761129924323150606306568267509926918094453038785332452430543653981680529260112018046676092921534509855485888193150120970345064963344213404894034374465634970156393344626703240900759114662778687428265233210173131205400829571572267571950133065841256675663387478817042690445664581884593835095210817864960306047223088915216941477279163839754454996504062853365222290006536927767188602200095392838934460478984587610024531853505880873017036569644316118499494455884524966311550746071492620916132214406412824407444294719787060123875433279087112559881932749869529304588178538046336994621134389261673798917114712877100509883047568754905340376625755436669531142422798806843755268475174241054589277171269717066755770355256079387725277647072453098833143528115025344264558596263430898740520369841148300653974945245093962533652057187906557873733644097241579242588523772312197149103694420293220527081699479476052447162611110547954634676503274751831099083689880407208705955615905107680406581876818161931697291578698686222844164561797470565781760985907343199911212175480760729563611060922772699580237682958965125735154630695442240724259275714341223410666013631663325936533750848728656854721306573374560135871778744617061013726915070831400463487499963945110271500425977114703610520288379496363502059987673840643557757043106101507184162325794992404148431052530524033588253388401887156721039479245650597024523410896402140588941687751598008072154030858352215756404624763193416129300982510672132538296236927118417137806658080268629743116454467245788987066558392547866190303154299858170365241989681702002597273491826041915168665874851406361147618142305163161284033378718587336740792860354345782203905843726599460971344583935949423807652656190241832580963263688958089088160678784362146641660393261461710409333064634030064010113169805858137986219377872500462367801883130656196544459457371945111066612545593846888905845046196528574966937680615950476379618833068090400503526996491721748922776112952125248026849143873826762241725113784017463369364993978167265334225574977620718867578111868030906216687547917240954670548948301211926177307465686846915259894188660518257982730614964779118723685935763747487395552025473571779642613948177179541193145766623001090126449220174789007236343580379878917099821832480088529018489146289018150187330329893799876243965886387647060945940311596147292618157329435000769161665510574482881805949612093803883784099962469761742587947115526844341455349360753292508456933259546307242433818256082554726298375288789199549834066745003803406065244927687931550678896310252497465108342528096209631668526274791577225406990955052435827581590103401304476493248598172060114723078453204114670200728929813807997316119268598776768037392349826843015268401897952211115112138742973094430808436415011120531387415057358936451096819383190299289940302325084989577110113179159638812469629909816486098323232534022216845241964563206628203514278083648587266659550199176468878664180989609081469460324934204273115905283092979539932157277016055616184892560697078601919700961972379452182802136651456451923675250213620954976606369124759459602146723005150628449640082198528001396823941395539884352980330196459296554398752891501019193430707504022431456482917797323703890389794690289512529108412947147253241371647461420768983226322808802617287751541906271240552850275482553771071007450391190463246085797994394512058099700044811767358658531889862061879596201427653120388790234611016291849819271175473693281254598044909008643871914626712640862937984372712283893993586296005556612310048446443434373404455388447883566407656332932706717972203305464993864705123699520421353875105336439408509703386142322821652472875924738128286383043248783016960090080712607017691554657796540372622569777986331328949206141074581640449708484157167112041257558323479617414932021589607664081108405557820149339426533402327124824913314327710384159547726901504169453487895552181196037945597724993948316219149958473480028465743866675513494754183134974419845112151578322520099748648966508042491777368411729316415893531744002251683452892376746659373572639148071050982129093581363492450789411045531725578942813574521342102917040662168430789573065123915242011032563004265602298133323944996430341194184308852396431409744386987544764900685377239465066732678512958223650232611550150185640616770850168384157604974779532354925474318676955129475797918102631718145145039304145719626468091263398373767102074336253348223773154186959404685561421781174708015936539377543490588068263087650154856532131154154956827426124005818693485320666675713458785990989810320996808717774029133066717143038342927817268219384356350693458994539956550272700490952986169830247384294740516937887085491764141673919637197193716961157344778534384995396466808992176591633993572444756470677978818426441642968868361342155186467014337227744485905804956351840402473128369373101993826139362457155142698570320798901932695553342833595961448662147297696064364751149455211042845103560953918145691671682354510577418162198713182383113312328859110322385303963070306448040238396150803253704015218600389775226712101873528615586539199212990107804341794198931722631757682519772245844514482089241469253633928375263822350163985442037200375701951986009186522307900389198922678707487621306202121192285424618820336302401527763387480496775912837450047722032013367970340071292467301649188733503969506168289783148791240713104930512296506488030204920224933083708748465820323143785134299887347737659054425876471806299447752325745518634250446591277396488133876364997810741514459463836952620822638324189666964874831610504771691269381268688307509521503932618861328879242918583032515177623377864625895757425128117722355211627868981818115614483070047842637664739221793890316146753271163367399567916833439498271013890397792880296071855585126504991864567366037184406281570374490676130293449615556025805080276847669579267210749562450588262646757791993512340892161279342593458102307898407136866296221289243384467696808715243943882231490155300528056082699861515721893662552273756047829530243512865630697907958071230004019991148208665337751880110431287982746684683274772574263324235278182137284491479889327398032967565459799090369602684914891090044882402040861153161108504374910446238324161367856160540756893837246983565884313980206457497631463172556015869723487347938499587859636461517032901120858582210072095022661551089862551083445002475479858829546815464357949104811179432748834274876405779378613649849176651461890284218452935245552155051945511301466205554960094842356742036533589066119452139759314176241193453757802121948596623609919974873848970570045831522545031516380647786128154357125149638402802156980829651848685846836575304193431406052428706025026786826297234022907658612336504431371633721919278754546116366356505297147678581898448984412394097098487032094337440300716994851694392957879129869995541891448096983421993359102029108541345266359080438300448661609811381990839564379647168187672184097648898965217696816357626622539686512019114879814666993935602027155116843615456721805389751611896533203579007920271974656180325252557001661556057574729850104385751886702155534216022889949207986415270324416564571903278594188771509058717035110434393167249556924052685075043702725844574941118259380780339746937546739300494398095053750586414961824381992191882421924582828055066122469842865761032879259706320759448633269847808872617280880146710975766321450653287154333777782352528635566559338213947514705792190082123026867258091812536859275806571869443577493427697841687886025020347414863512359003337679757428140209530132565276197970349713876784001233341312880600475232145121533526310112130787768861507643283191484722335631506063875255911738225962233026769465432923481575976905075581702199812367316613215361247064470249795829808935870509549506456383225625351011396874171525757613642886275869742258839812509705983229889358872619878471781175101527494101612204269798056358011500814435955698566582231109811987230776148311286012461752142772888074012886669019070762472324270521841392196042893933507444504390919727423528271791807952098679631683541409823162257675241889157072350367305159592920739626398219727605710742109669735340114576253013091603489435064604413794601438235291973869380406343225901199236364425601325466958380722519269154227989996935579329498136111689425981601359979109655656382712527480292780449926269685510195302978942508282615835988482627581240904132614107276342242706940589073821677684885189432689037394993682055798109205605723779241559608234011228058259975416123782910503880214995766481140947345043519508368835166791704990136105740597409663922376569895420421228812035387567706458001958872107396916633324456252233331569711280607007842376791452924677280174940737139830679609386417623166288277504747265224785469388265089461368959700866957786312649150085052840803441601199358392062172885359599747420192474912629759570448559773419270749516673895744653353939569922829820100610212895680679111277615632952925875187667260827924205884823351970911291159308670547983387793548938423460695916848295701009804828300108919424803626918669568369317674817915193737090408786068655705890171595862549058683318289863490131143404935487128012262924329031768960382078906749768412530509214250986031371866370954760949870731503648566341942264028240099776369384613711590477059672954907006957308888532657773224944389595569296112085811285587913222663872018148294584716973917307268090334920777382636674009080983499059359440402333014342351941933271913060741609606874102104584633640465971192634133899436573782258795253947828412222167746474270521902883209675150840157540086380425267330983539084893790870857529860684482599289689220065155205360052140613653924180926201249965796191013999894498234989996511277590731027383863012680523741626240297073005608845864554829051251329291488307691750759999431894250589853543437944802761819156138802278866617382193939379696059357965846756451196052754287445278757398367037273070886635884200831843340613570661511746093565625773925007700662761245127561096798640721119193681482093449302186076364731790005512140747918147131485935326730328535256810054657186248126762871043918843749313560270268496284831063775187836061882208730899501068579067773210613915641768026495569210886392967560521293979036611350628746520723248274735044742861808871533420619091796821481022612770899272923243434995029281776209104826267802748156643366475523505667122462175832935449307854990854657320185814559091936027295039052615104564572489615084831914680735544918254757857727328994892668803258610054517070069432419271293129321383587120179785509424802599903080604768017971436744798362783118052678408967380671319040570354084826498411674135322527062763264342812756771525546991929707748712316973266241764091204724564982244634511712026483251891606101501333482887512297149693957439724691391068616779024682349983634934037808488559435555885780968899517357528071099523423699991465219282405922462795631959855210409846170427804401867415773989119729594820138560145830604290305619687138301520897187019059108282716325644660129482071838822509090923096543947651087854736075213290553327211297384995201496021563472712856383595169441237438255433935793880973297517179357997627536392136208985376766320133217334077116644608862231583032725207444706534623677863300566801775216556782084891663317887068232760087474719441186814189349006325651328590293822182209400539166845319359915954928552296350635966590736286196765863452230134995153075549137410897421882630962666812824665317638064850438406497646097341352127121238044108466752410425845616363292270686743112718524607680344388524516582318194054798037058757409664650168946156105830539762927309084542144451372772029901154764227330781168530810883497503607953370314148270903314756834934341457531091646503033699123114095129028700189325502811704833138326196705359880043276814978833546060164619749682564541486688926712955045251884654130152161264130504885541578376808481820263670703206256586859171218684829758591150102347866263129600215181835990985399772604175794880243477855224980444166743373583783626905821282848971037896460876423870651485902393499869573343122848799823594914546123113101223595266054878204262593787936212729949398193513951814922606302654080214195668271153913050866288105182270534023879901061957206972825397901297668058151553376362651974290090248582154138638414398695694489194810708936087150100741089186858078358382048264731540938142384443682924681233721300189139309254455389096292276843806421213561181762809894797734177907558962137883942087763339980916005237420489445343400956943181818478476246009692747223348437836505926852874691649207425271973750859271147141236082175596716006551121986501969245806470011859736742619712393893457719051832919772476254075453865530428376564226329887756190170045934091520835727083810342510917830824011664038409641064881621549561476236881798881932442768067641203160415972987950477085377689918156639402137276745821708395126002977707783038245117007643335630684298478515715337335867177657101711201347923194156259047556484748059486441840203931259268262480609528973904549480745131798717727357614126160051925344619650065227452295399351982656587104945438614706615819338809795299397124365212030236743696594641895318189768396160714883047803887816948245948182203211633704206084198543482430728296614867005822473786020371646734537916893592811812848576505915967791947541620736959271480153694421944914738829420965534502178521461186457955637931719381831638958258669246676488843054432131293810160951867817262062830481906694544296333907919099554589172267162658733643901314374400142514372888858987779139539770301963949909156409270118990054583553348549393871978570200436717473893622106413260722341632058988241121479751996756109535481068578499377164944306309535681919038506490483543321969991594579622206825569239991300751548156845568850543694054854827201080350936101362973940637432096840760858769863605276631745491627681341087319689192997523748719722008606563565481186065630542028651418876751219905334521706258659342689424338440716319241715717262883633828983723302166108580262972384090142117885456302542271893502646857477353603380111766247201225242298722239656368724227126980234629450596367767154223979308522994887274244864479850292441004984737728203100969199904451261661234426630527208095000117769892295425063368888326727984817634085752076079316244392788127620001714352801849698411066798225702756541862934138878478393940441744015947487329981334224028216078728395932443434993309155703938095396930948209449001935037640005112336891802860786801283580129788577263218184410779050179539485486497928546607360756971164402238774365731311131523086286741017110801879147167446174470041912968510183594811709282256087254612199512667938918584796019299309378573845616921192328017445601524772056434053749571807815357484491835676187393042905931405132726065941056427591346808349697112156138330815322867976920326193908540533707104627176345824755320945696255910519829677119208650067403554197101754054401205636689516293876809808234792219477084951698414995482592113766495522516216870065159830800112341938056452012316535751689213204100775096294774870816239555671950107415557894729973641608040469973809720863249053610633486414788697515041248219293767850843787746316171582413164426238739525326699722120342273145603220406559017284249264427974760623016679689264783119606875354836986344753326674931591917030515905374567699142747361593653630788399810107894582834005377690789976812285710991516219685044975961119652448916421492393868832735270422430284149280649685100282001641728956624517748878660290746878693603271069618184074104428789386405750114764737364026773825619943447526424169674202936694125477984443383772044680664961039198401428464403615133269843764942423579888626459219005213282818562035087865782158602452919703840286096849016730368819973375392635080993255006213506672559767562262509629243269993774148083004820449230213968954941647627215579980183582526326158804043288788065729444742364145228272710362073246646971476467857340551991661250523349026399869275493076427550055582508180461898787922254597331991984305049638703062415019186651989363201952060837451976520763391447133056366109221660623346535122308117055943898528539237135262005720687337477902364746308944559219822306773751357432138019108870098788379474128213124866845357492992920876393334493931770162324578378593887821960666415975554327972839564965043412209218632061875802612753101638043713331383968105968551619559340899459886735013398343771832160872109132908376952943342811855259405812927231951480993348566620411048680917292420610405864317310362730476358585735593295333914458946225713495161327052233158949612369768326584625723702660359394451151074274545246683699686356170452855547906089314360056743455189827610043270579722569203850096978160841463703704506388432416898241171082512301211967020092953216813150007348916481102682640068595892931472171045520820393685582489779826509491109244824821220080569222422167389881122585162340738313906752133462060136862287207402672079643804995458509729944255491484457459373938953592781279228626082697748799441794254189125883154636286978548457436590217641155795417286376232989417515152682650398127927637437570123650483217532527162555620314793212325624474005950501046230627223040797572837042008669652521755082064468342704945151897922525874649798528955197950047507883948355949003446256791142717144964429394007297013657911883943520360997677546328063908788350796732088828329144595585455340269724616427630723006931736776313668015799688194161633372011704574151217223887531055279349677440632302738656082626879662155436131937904440878937828872247650567528934629579601021815844905438943687499429666716602383203742506501755919006073798389706486645988465283837924993411828696965968446054571077608393479719171111564909466044059620169624770278826635358579361077761077355995229394239629374048888778934273763270818428218783046173900928318394946565056398578344496791281199564205321467590751712981948710098656132589036126484690015583429497843193359800468787967075479655300618465898525082777742012897414126692887326059782775041999294196029169816532314072866751136701817955560282282141878025656646881683970498206595648270244709365946303839743175279098945738807119477517402757955743260177862573809360100727580012449721403908679491026942134122490560675268451424204572160165816357633052853433362596733935793802550462739359567254570206954598315920358087330130498550165851483758658645369043197584441791458310769118177555322436601413928225426682017420131103144174896519963640412872266387173678510919545128163534763466450296613432250486422452468026862413344938157765537742186513767623312707531412319984061666511588571396761457722050236038669877244756152504112854630037239728981416030119887802042521130374138673441410013016559910528187316346618847408117168728180371923768634788105432841782094114914715939354366737893569637419280229684948809332974199307535953799988530408127668852257049015354802904748162430664484759749722481639117047054257277077272229314960374268639043500272913556312371063472289018762760388937121993601070896066536610615750951195356716743997632885904853364626258626491341219122026662439818655580786644902178860503231018127242280420681974239842489411058775166708027819232630862608169416636783527499312797219991264724552965740142631911532421869317249407973743017054546702711696820690840646609568170945790508683675305707451848232702562530640769464487763616024816167327536780461065290015507391110205804956730393225747052013118182140668632145608234113477856724276168498859528010183892506845795162205724657933162095255090668465999524693327886735684185019692824616983700311723610355127246996779185452521988647408507337695366646314986574250537754066851305794357226373612813593859682481891166514237735112284022890201003405045317679844538417452333922417602605214923434202068862543395272262895646580773721337509186962559685664270034464368017350540676484560970120618795148557374719175849605818818842029613869567528932968644005740473810664012342184574866097269843957055637225302424926665292664896473545190432314433506238876794453135805410004397221727790327180543923494065607415326289486538753626983456005250816893611449371316884744455483859135505764524020584657644688861160212330057830479057486963118480574235402140852274572374621392185465421682835119864222879316522700485928501226673627736571371584087858174140291849558445103161166003897348682395185506826318912376733518818058004579496420741484007943082969519959222473438659530193303439358653168960084104606287966501938549254928096502482760561506462155474020343461723717156377590391408363118250223198732620476812943235395927790074457792241280153538774569884098731968856224666848500061351962600249272977421992973499655253964549878928528654660796966200557267073082680489489255900728461750336696501141299750744764654082335956782804154539343529852173742876990186471954465670695193873449888775269841459923871345406171392789805925379808210987070670078297422776479297215932794293568009814401054251189273101126867909923137635489552009501981998619392996248507071250419485429770894181969151790855461145734596104254216377161353231810737432254002296696997588140564621655574196940230979229621869375759133748282482745653096588784511452176081764604363097112180656600335168321496096600450312988496240546791405869847567797548772954517563812237923466694650448784906564677097556501248300932072347442253076278603009090216313673531164181166364658062518721423314190811776767986423829329906205545986776088317993782858617575895085841046322611078316381450562249691649547098575089682546867827733836659614510671176579906952705941163240250201507781581449861724841925333174290071718266161505704712623919329702411350503382244582749101084125796915026059963652019056547642864845064811925201388918251161825266870211072743315072392368129783632531606609838856327614957375287931754320561642913532147875362509224038768326347958642345865197262847524904890224297254225333540011867405457428804885822940260174521531352796283396928054719657961914868623687797418034354190406033975446710809346634015326569640476587553466874556018015929541482440118167192980429551596918651720458004254605195311799517318411994227243145242919941861802612487255313545014779876169441986695814607996407839343359418425309974268849800076430121041333322849533577870445061134790078458581514020513654332440859307989955129834979941584470080992240972216769663527435042388631450907013936259771172636097063416270871311306061791674523130222499812280996632111321028056838880569788483197238799401269229446752632327355769088208083753256260423252967471447749010502987868050537606794453717600400941017590069684325808750645619278861621535835447458329689868326813717418962339479920095558634690189600566721130820625904495977935874468375282276629365042910086230404466871911096171546502855711949788310588867909614718784306775477625783127779700878409051031068210654227237940268512006959066984475336559907760573370976829210837396196757184472857788034298257513750737687241147940654316377515128208924704364911144372202585848970570504360738354050637028837391474528472485697733572616581550546306702970005082709476496794627380799349070332230990447407524024116635024382575909117966539221712120494778418667786862233909161835484132882850134367066821693440429831477138039607790476849638664370207647464575017231106494082998916418098428109052008876067052108396756131095942120594747921271970597473207102621970557973801492302042526902785409767485834670083878451087593814837304259377456646744522583410200189227345026519926159379201405086694046216180950216105804221763965885555541962320679905134876405510826260474901335882928937208685720253016312951971190375375827013660088619924937574321599560524638633281710187170220827187985268399338584335579389080798473171831857129751367623292606419010468708417332566398152795184406429187164372349519354940281657084561358865267118329311642435953393208267793055961998331644386483903747757155131576504455485385775941728794718645922187043154766460786339653127992206510692705718636191144021599406729278238650670766077791541829312846674603506445205835333750484588063924767902047051041014440135726659097233134604519599959262376492195439417744499131176759518513226856904907969930793222102392181549254352515083668027611989271714330713579689545817688577954792030008112827688765023213513864567003930236804452278126257886311308665016564241998421899188931163486855344578861999536918208749180340365565964684393282978592830133837882206131225774266383506112909662723273364566680730546297122156650184283755223185945614233337749731649267634133851547535643983055601025273577336594000535890664750406954071731216941001526542913760376832322235969102153545697447251689335622100325249670113398548250585479895550883602807767499490368607791515737770159547051164454021386078546070708370197647802649766907620745337014632947631779266294677701017963062478228788781340728684550659417787044414992155834230866590894431214691331522641671490319382650069134634025460855783191815413399940712334687754522155092443621748482447207604591712732700036230346190477905833609754209179228732951592955363672391569251695090439806533148322290928199995082251545611519668667033106099438491520087008192592807272918761418624121679492706149502152284514553014553804539276282565219111962643634520414677038308032930442394506619059177454617646438043780864385160885610650408618024061243173480146934295315384317613411642000466673219606448336270072342840202861508614401058250051778671525361986724934250487033647463492121385774138161654693699511170392417633771905194866667149960096744619111610802805466995353143570137736996589843478059895708170214644578080967349281798811016943076537456394320677321036980977787472413443229362398099581487527880953929909298348604986858232928133323700257150045071658691978849087128013176102096674363422094131694411797269756122259897030411712429996130414497918843938120845027854435250678986880184472044385726786824420718260973139809625549054631404673769542046570008312305270082226100983685944708574505838355633137092945317916366049925737970594986392016735643313438753635396594846440854731485585150529428255657850793286178346083143283110388113112804219219537195713029910346742146100100292643468784894358860483552756773547197810101509350386472454165983379176038295449516345925300972134368844518560787981475935022288116671548183537555124841685937410945504523596347589309889604024599215119901064448179284961639219425406943028539658454177818128828021119731628207270693516208928813232763179813771969057724211306363514467226137153500183620779273171636689569446635256910801842252677991528235089769868588890786414930701884370037334809378687792395540570060932267014082377525159432205760861159003761757733556164948403458184711135822658195168317516436391561792968618358655434764185374845844236234298497321895298063259742043906454299776719601025553722552068923063707997435929054373175652378354487625815034916553685759478285255369047683230357608078378930194969731920605359844242627550887550581851177190416533628083143416415931345898347285276235376243427995243672688732401404383094926878731833617188927199896205362812633976296928527838467250321172866656917341315680274074283946161931715492622816799975315751361263537695296438237180928244043342029418640735699288178024975790675220413604540719945469892848338807490746685863952411908018932393744148868781322247979701280179740551488637775386701341103922221353730401827809359661411424695004499161727096530697678105524031149244290721838584446606646347214062044318245978177795687620314007978872992300897580319044500857035552802709068050340870682217469423182049860237182273264605390348018042940163721181002225842194208729614009021343961939905525500517709188034163156480186202071710428359364862781745285396717611797472667003212573189110047735527326188170712631026242199684304943424864514204556872785535728798078142463208142226498872801196386837930163037356036149683839302229032905935290556084082627749270451171806994672943619802223158217768893742642291998653991744312117601142185892109356353736309042869246988558902612126003986306809173432861900393020923449731742824305909598367515737022685401419382923016369947394845317804981034779819646574745568313740732171879459227413650709080535563544807385098170146078277302307004227161502918851422011376159755202450112194710443105159773639453190840728994520766635652198103047632935683745925044174791848516229831896519549661250371031425077913427869267357365760185364763395668537783829265839076409444930553076755016157436719189664495342778109274273247191013430618168686942534106926093300364094901728338150735707316516856838069206058772139313578514027975707278143786252304117741848585286967251562244572888076828080537285541927660282902596075493307443018199950453893489933092915174672065997692559466223008945576367471476341009360169327435071747738935600531889187927694346190311532919615391521419422231182915086970950311835175592798301336552489817738936057235425408823237659529529811613084468574094124044046585489855277974157296166768415600036142109086895606852380590466295617442607374897778643672876021623857869442916141617998558269914752255494206511177505371927252851178588966478947641931176428599134814944389591221665404695755793809594452018886440657886997154002899095247175067581592711576315053591130315253874126671346677023477718103726502347214127278201235700367349720416398499748156334886599664785761477834816098493396170518305731730429068261041900374872818789672687521794325326961368889401755137923801987534467838109319560676996481612407033859962310319521065238895257576765188246809484761963657830327784572553514606840147175218914555661438697042754191644287869205793617083618280931463903644657580260226013013930574008800985481572599338486527279140852991026263436118182247144667840696657331492039021639564245051096118439690268675642655632950792023867188479069680393172325884001085692012331474285541948032011120000949441954678554884787698552336953452646196912970054626208108363735105587261949818859779207207821542049061249896309627258574800865656284896460368995055042159299183481531266857542224645906178653014724713127316293026307258028915812787634479336673842466577771369713821454979676213134155159289363923768051198422848077544238630881193608130666469192612008842043440843804390558335872440239547467228548345585424786826997838861710297488575721376759692629169163565444637014597036106939495709909332581543564780084345311738213923283438304697954268171626456969018238539032659948077565003866641000118317008460299858593624115030109129555698333504374570836969333209302819813818271681813560413297676385931502387360218806286500802220953701089275837151872446175574209034819664916670925508981833789847401433256026468435107571476255108130883326635874627343883970267564122376062024740113439495704611266373594588438595384674308790925424711753269372303324948079317485719427413977379692579795737762740551643147415734404512083532585521247000990277181366514394995010342827348012589217566940001008444196552055702872411760879109331351461963026869763852090137030174103448802365765019523836078040601381888347832611048091546007924454217857722014000147178658242226152348254291586626950510688745946946835614735731022827348498416489486501484246749251050796729074695409938083146099032664438470448860011231298980424205268050183587684583479224073218637845611048964148556216301475273552483166191045769982374378273640338517614796771269720122130359341831810958816974411422189929201337990607047293881952128762060522027468567275891738090976560795862264573020075709969696568665824632708126892532142613835103550826237423274073129401247113049404954299917413872057723472492355062909014824730035602109470304704715289090339782338253741192788581990327857982759769266132954695179219723549512545498934848447710223896055443175530048295112269124907232696441692993004867588023145181869805669323285799191133743297162923640270432937606789078636508518917258278423127133353685037649551898064330420621824374164046009968997851709936809874102555302743388591861482997063984867158607852797072834767598744646740303688523366748568830478794583629956461201425760914271513006465458214743610371160835605946599563731819107824710553682533912542875239023244097610378056631657189827704166447949999630965332334442240194869678137071262738440167310527723044133522167253852454218875175840976907152867493032954026752695944723933458687866466240989949179559261410991264176000588221655711855430769258797384336480279700573227142931838057704880067212267192254543217830939088514664114503294303091959350436456160007184636350821494921431607661073392007466016066544930717876729628287300105662427197011266619709549351758302244688099281774323335159344410422973009418374783370310293212578440463758497524361873078585551676355388013439311224143409095735183256741947377339876170730624944354062669134637243586834489056914444205290236955803012295519702911962292450548956224466126097155397258190004692096054323890690536622538852844725686398943096034815724122919721951032212397733053909192060101625290059296566099477119907852605704456051039843078451260571550144639039409140606990725850707142224385285045741539243222866886397033739749508401003747174702456778779785836879225101176508694661917372727279989976089766130423720007248157737116316358771268051180525398922982605564006905652588124980654073331209608090169326292833723608019561211715588884257691273175471057976087910647056391955872857789083508535313503434683301809611307319662723735927368702349966087443877039109315868219967110932234400266273234800574688413052093253753852183773153668471491901048746754642392212617728070561040943338812839629712376532774134059947940774958709374069379389542679001300132294341006148770402398154484758900075239818965460990355278879855238288123915668555939309858917715447525552431800612529103841908216071442964117397383191048120557920341325547884584284153147180149798181564643880516062633429340264652210643508317711050627943770509242306756031964518749898290772115853197541383364754809912833306895510682808662721492909081815377440287061281272529197762277489943636488059901809400587849268547730931145786103263294362752178934874663897998794764331979185765670450083358525727541823137677063861878866979997973105041207055300205229132744521887703833420863544031903614965537763696305385213165362926781033497874911772773035443922182675554243218105992321976450215306550748487041831997336737526306113036746491386286034171394630186498867120451985097183525979487692927121614333581764070561978396993535887043620866861041391325508075513778455973703137371367133095241827115472224808903012750947085402007742670107720234279683744024058556724388371893274775766724882743749100819585560537297388563631907960854242532853223089781823684696355993727843889002797892413286782498101110188244058782961478275052842613797864956235700097545349716537144161645388515167375482404042993320804642654583258618719967615745097807782986490176785882964730269765817567984573489541351764538473160390449211151471395837032254865681831418511125581032969444447278740804226904432835840850897113089571768444665380892265817011225429885299792637915029430738460750014377868312767959719583500215962072056189790629312488638563739381277418301043308262920543284314345281311983124059087917631642610088504275938282888082438890093589444054776967670475142677847834853103727715755152473729427482396235417972633388402631169964627186220492871139272909327003228104935596052670367253628535021873422563071220207607998128196816384772029264679521158946228817944776916956247237093969096675709276245461071171527442429195019829751385772982226855755194161715433527524101456001700603822061956369614359674063936349282008151174501687138544189762771934674715517886718309580873277244345220588997695344718326467552353927397602206018133645832662270271072499891761332042978149694844880697272577478447441871626613263799495564576630050582523773767838963635448748135272236156442101633107374094986295442012170249457338945020899210780999078054899342106502686251055152164732016143985211441595090744414932832435988784240669459794355042016932277292272624884264185431113863982364563720298861536541494748232615151948953423285111764667128910866181122616153809936551575753017279553736102332008734110217548056047039006805523027216675017437487896846596630889850667880568341167264911931779062003708417755059876570985914888388189833509945675313414234692305413062660891874291169068168079514080429199173214246216823052770786496261114916247830680054487095109232046850988436172475560443873416686089500998587723923684184031698420152961918339736416100380943011743169175020452238319291163636854664431236061658709043909796124280863013226814106182023634849983052187842602072710365533368875049724433442295235591754445052821680180335619760025706714823739597795455031189322591972838803447794534067133400418192293074039528211784495023947404132775636686576163343586732731654641590328365966760105105449380969061555463983035013574984545750580903476210194110739460266954955229184281170213590009112168465102478821629410785628479143322232548446408783082638248256158624058177963171046709432388817531150172533188619451205518297425436780262803831510854711172269399222353859587090487761417505218527581106978881746884720561934997861340316978697235113613196958389966088523592565911250603555045258959233223720768584833134464317332141798574353799280769551250836972420596486561710438598249870105895413507561438277767676814428687240316594040901383642698548782435002669469523776460852360021452709827932397966306073950028060954860739518786527598984862868062528416501686637549282192050156961853037491462768393587912037903240673685024628180675740448034122322653642245013604565213429186726478972457112222670446347190493942319980120853981694324054159116182922681105617490961166243960892109303508128762476020999808235389670222061381189953323386675606994080646348516212083373674897380562865290538765893304290216905520880002771557028770859158182693398365930123620842993698296774104933642955708724693460371551050522823553184149849001655520223437399077542599396257918048108501468496108949259753723766343816040984664374368236863700580124580659482274776711881436331640269914654790783447827644333136751390440611077366825392992841228523056269490697680726525779938743302774776482591751981783145456855762446250835584541249760521127705236593564858443747185426225342869457645013595455399953101476135094218460795852769495325028423146797835809210488848907082446016427669142624167511939551255434003882665188614542281401739386608241897570870844430259277685499164550346209720969068130300440825036237372064844824392982950646144807562169287787346619650318538772557503127982451038640555142401804208538406716278052667012073818990016842852263818627542624072061159098900295946789199994330587216969744334719836955823170086145034016146844953725682413640569187147889186389793066748077047170613159553584281353076497691018448028144310066775599522602302610912679033726590106235358746193106739501200539576994145122735896161844010202634529174421831880085060855763483987394181639775680586155115173436755810442611683052751782206749342033139186148555881011882276446711368699145411950624756321453945134113612922213161566131354640762226414132360859696948103168779820380289199257915198574952958662006241813686797856860252041269859041939603120869279181231398364004299372787754019723038341044030763065324772764201941908602992990010244657610766601729913581794433683826069549234898999120702279893883837182247377822976722359639755492390890751819019617063979773710350770255364080728953473605846587817177198565037835462168486214143514277602568440592965529560778326336632544044417416864008147447593139236809123133037403345853433947574585103792344265179814044503109962044251061604839603276382173638633238165957841675587249162877203112674938007242708153140275089112778279966154435093805748280445619695601837116960246345200185711599981228936265388937406293738723447327218692226607430827091801004776623910604073032522943819478018122790481445348716431991269577429854190311765994484794208394797118945225809793852329020262237198185195266591085562780927592465378491669740381986426884984717831533039370602940757629243545362709535409261937430566285308924491514826783706721391298912128706070205313386123433784851630116122578206401538340585319700085742527738683216375100415075931783843606546591873530594314298762638131120169345966900288812016389943495342268214876119970269349071248055434998529742313760429462388513795834826735803954900633494614632901976830128966707759997779409207108392551762665993467839605702178471296534541644167589019232281508298837586351331957495144007232038536516776197561073426499422060613746163185622867255764360704505529933563272593693494905236860300362343906107362157905144426385319991002851163616362243987817353541421233199743119618977966736310814187493298615652026261968834849016038884844344561782119290497083375435501585306550995798761364309039279239406433567949532841763002926682315418289868010810746847877430883400462345067885859693966463922434080077090335760600266266060745369320048655208058162138109291858112653059326932692213544729871092583077722727015535385081086304241987996464188423037662183313292117920914479751772281736863625103897333778251792537424173469691858478778555400400081781964822210743829639778419592430897106008580119280222963205680936262858256013789010773589547670149292116553374281424608785829824430612517818985835005593934287830718252838944174537173468943666101111565007107480200127494330517513889717664377004950783257819500285740010557781035000965763842610420002917962248362376327969477339540208975258596499845634181445853183144067243443506499956960174980833774528923530743618067355591645201879813027122461632374563359494350603742003121601632054820738568229656040325728040535135233614057966000834080490792203431494891407653032034133567901649558443199317139607868348947178501842114708832072222648858284994910293089033893952144971301712017371773031938440134868936779548001526373644656700631384119955641388274844480583089212460595671761964876831313039573567351429588070327028501704639150003811940499838756670455174893205142918947345883641170895799319045213847757379193255913941267072286332499765810033863084820896286069985240115868095466486106832958468675924781277260732215990339662536793530152095361838583687392558048489808074255647515157492974547525458009727663780744566450649232099392460701493189546084218332779385997734026027579377343264920551150927490804054343080292942383717749366831924941043212806788504224107256986873211589531893058258665170850283188346542782522825869649999239636696675191515132796801364398836770640894663086297775355327240317344424360741673090995090860833045462187803768156359153851760264176689596351278240359549468185052604219177514360591584477785564343167790809005216884403427537777532343806205058172139217968499379927518185445556049250462101806472823608108941633808922638880570977774815943115863108207082632051714935142895021213950678180680855910729974842660296766431380703799012114433994538872204776962006806194969742155112033950198499024647832687253993326881300645588320784417392769348589448639668637955630713458067904132239413979432252948042515836857176723876740758244913881474600640204268836606673182499990498396015496167967008421333864706863669546952077624304129968529948985240685130899905905889686958267526571569335411702576381683187957781819816874214364702299266974208688517533949842358075085359928888192545457228993337826983993787095202946588644234061202762857039592290833165637320774648671022071277129621460800073885333836576864213715372409605934148750779669054390763056341258632733699864951666214043542077161763072965910754228794567644691073803842486800613340452720106451244809872027164537083207254801309031492597646354818504627066722493327675222246041930753878531017817274477862850147739338909873526226692531376424078596347724098416255304823994336920787970506414002588182840799241862237451477259730837071483185726758419373540971367533787004948439730940169512977154043192084322748591163135191933122523421216298201837261709757390385542258498303755192473452296093285285067701396522247767822974708328810100332442665653435542787388837489105309543638573437438876935649405305809475535931509579769622314222343240963338858957271364582805324704928572278120896970116031196732492528470708051964683079767489016479759157707472387046387989014681128754892279243420489031454636541505179006418291032234576198375752132197048369924704310733468900742162022184167776268735158049766416192213806774120397038411813806999782785337493337768705954167308421329378383812605797463441942835020478409144781026536458573507634603796568616198562126604376231838837233270631847482078567902450230236859042814162396930473249440654261542641201076258153140347982010650310946510178197250256202225708858056848741212646458688111937437091115896124432485776633980860216663470282108549260448744686963684352544740545391073816697475580849838988628564037795470002211011370060507527229847978843333736777760727068615058117709363273164489864093817957535451215537827569244814040578596491201348858391761598683185168288588290470708101117481498326228622974211932530387278456575368614777301785783038006732591314702221142654130325540388019769209775998879125271958817545871303668210759068847794335305353449738126493810214697203777401810393385887064551353940126039342229216891527915186279926745038036492050757229315543356248806164663233555646138917087049353030603934656549343961127035534496929884239321587092734034083273212214190172012054496999026316570211200379699564238459170636812638657624747701502913565772261202515394370881157730979019824423577832318975578908176187634256849329087646050885337068362961869564598961303824921016274991896234568225513837778365193070367962591078265235535162703640920620858792475031157442309303625645188120567431425275511177056684891445064496797300573822606470496945419672624146007714756834499443219537219875870708757863334157577625977806310740910096807746034307019627262005167383293021686444523749877908201909597984276486519985848443990909204382569640062589072989229390676509125229805461249840153947229960926399877967576785394847339936224221783363693409797833936132946403279269467492072937048155767068303606068096104983310966852327153590603645228278638397302747235019767776326085161572605376667434086885371618642594189968408852142754933574325217883565011127626065084144403992929407329444767721037544695061277545785503655079550932109241425271430480896704783355625001725861242583946931087864390720428666706005177415817359449415620669658397391314858949860781287965841553327464169343341966320825552405953529843191804231696755650084505518500238854338422209237026454692652263004664010412402186625142811583291029376852437882377313125111563599370117698159066412704694695361670898555835069944613613162890579295910909394993992614135500461536903443154880123806495445480819617038215617380474900754425873400936643449567459670767123991198102039817305569419480885736261051646477627924092052038008982968795334093064691331106629906449074286755049239891108154398394482360427229090311900084876704186416923807996013528169619090577304460026771517974548275396464317443165355594239567963477990806988777692624239406101038093652989840996308970578295038271760045889685530139314322455478407244953809288836939011332355635170745625828734872363052145843235584034056310953293294579411433972479342951986951508983742827408072932520697294072051922964082167589238479290846314677126247593392299394724779357413499517447103556242310610067414571471652124192464388639727244774599979562496584998457531036863205157396308992639898088133626145284978029286169038334578012558356269975670553257714736984904140162384372822920826660954831735204406437946699690557058156219032562718782024029703112293583663993920188054870594906187307239387798568822027725391006732306623226570431521964276965434192711779960856250997577898626235721676448249647267881605168872703011309670915473064710275143830777963065031488999086893824943920549739973760093235918262890736902148065282963719683232040047411878161351556932184689348035403063736541274405114287274810216968587176177132442745031471167393532890571736976866680177517231784449203160951786539221502713300613854494439166005076678377952344558824793857994525892609651590067537124670240638352419069636268198080129029976897330217192508470388282241844243609137918403877840377722646508124371512474206179156960146274703202801362364377206988772869911194908580782756408422761856572859550456062944815919724742853339162407138242420677800383691210224670029663402697454037916195574620797452926767896760935038980243013317859239439583242333158904789211199355369292244457115609810430814677230744888146868936777839570452590008239455711204558343549858103743602585404318042284151498627587379962941182161577187414994105293107540250927101565778002133060338446986191249373199377911426522630617790175158081620311477184872215360817622865663822554679521112921195589116168485581955318363317081471892558851719135534716723449746611908412076810292382819884248130661381584786624571659965801032037544583901537272123935510709421434974536480411000857607657427976486593087237915173555651924707630807791125991802094046957881826031246004208117887978504328632744302180031368611941113402665271097444356114816572128002198415608585476768633015583961777170622569281895269779618597444963937708540985856158507167095020404195738903932260177316270288224600708171535070270971666123751322219229649629027412252550038037339431609802346853234349191832350213629273253707781741662672792422158506712256192865048939999946666508083826406633177801829694327848616637769548685075965729645494082485933893904864498108667212262754487179343773799355215414945359645555713738895947845043994840196167230646849646995797638608526746815598091555061203405481652339478252347900351147503182132168559444499166036263744901782163496580956529741988037566200473942560285716006998230197400945969797480134861762108475472667022195843917767020596440360852106234832217704537583988236355423721509338163231734099162515256215251379917818866814766767135646326720558956940753926802229850018888530180673136016663034915964399400864800517955698395762717516422850980048595672396225313083881758221441889478607379604478106495711729699192051651638642991572245820231636452311894978333114354193723709185354173001168408159013835957947088014357608911543234637493281777278972690246369650315319731714023752089527890510759923621334453299957263365087786346550386536312654866976596514848145315718471470066839169781461663628267872618994336786364277050124718593016915092019292023607885479007258664325562228141076024147388162737021136725322199600243629267436433162708212057633504044750855853178200993570963217359380016309271772962169466517314591681950955035578224848014794034966008470831606164185308816516021734400429314316657125405275657072177215753518670473812662127689842658611567249202425575875783725965866136803276791488900733012351055840102676508677485261644817037436912253661209813259670558163920549048498784227689575916986875686372177841611045360107253799172526858358895660294227787989364925578253679680433742058676420968421111736227391639679854223043760256415728926697302235227499673912420077774343851577467170801829693786710401009009264544210386190763804792853567465890354509120197662706760073698268487142308098612222696475617477168937927535252381738881508060538263637438055522359675166703999127296959088381806281407602221457814669600340201890539839770315505351322149567756716976052023185852550241861775028171851770806333903292013222944600660887590520093421620005427237684716344696254781165566974577802218109437106851336556893746645091530453935448194843358537185581629135165048313483767846233521672071528609517312025284613526480574649101035475952774776640595400283305050443284460043451197315436600181936738039144051378131420403058285086112780645611987244532817907604080666316527487622402710158591818934944408537310234359172909936762484355407670617080082847326457435602348295546156106483561222299503247753132543425538604063628583651281327619795929321625091243560116042770045885778123705360862465338334867345903662113314731315384785896759278382640084049790867995283611975095183060157307103522114967655696155982989657894842711262887437958043261113486851557149017811049489807857319840297887078811183796384928548152389023651232857875378379117220319562961211229463382650058235159692011114876655040512045181783465287698400124664959851901727947397213798352716992932040336284087854310705177900551627697958320454281063325046889346628198627304479979634307644155669018925160233604361534183947671681013370069167928477662412176618514184122092058386125638867182446624041114292040972079913335312625539818430886569541459700118965363407278723347197333671645440650899018276051678963410162609890890253276673218813088260070155846234218463904083396900657247410119419831547450325445734747239399441975705180223068646009564597455289403372642607611568541108643523405705312018988751856428585042943363051481664617899994301511091534798275359928196698081674825037813191784374046057130691259056187592793460466318424167965751362045416294819553489594865035871393918423312574293588402301808022106877318419250900758167898317793301542719292814114509820476944819801322306034460223143184623300965395664010353015762999988951237974177023524862064629712075857622478742755718334220129142503770210720230173542929609404651562646996883239090723059564185682135353457190319081446805055101667209236915649832432630787924492522132418132238025284544627516414011159037457155671177911641249743676042958967851849269355623936319263722899579007204066913881948093270194276339493030884418630647797869088507114474042939960548724630346149332646806380598264399457172695593293543902140035451296914478368186721864944574492933120341291331471884229866496463852649110241784258145101304772545710720617724945035695305134094370732063123553806540616410557140781098032231379031805300259307349252694931358436806064349752234467762140597408059139029528034662246186604085727344092613075880926092808334279552592609637210006534660003040837410906392629455737385610703018795934719985479828706962292975609404349175157147152107967206690202592955582013611021069133961480501383056728397991191646634420695070926437956957663919335190885174978982900746905933184545916216356027501480302030065675160849824488781062794031733366402624216896712048646284010971721010502526063138194195422740791541397564136984480129675677335784566557512482182296445940114045770769872876437958975078632264904312973111846484403047479688347854264696679181392930370230475666974786031250768471330063532621033695924160441935347529321737753925668115032541465654787108609712861201000812756471497670243925972582033581701804853801512503363716772117771936895544926347632068958008770720465261419218094310604543940253848896835590393152910874398315551552443852265470592670011012150830139804067994107355734303736685654181525924748661438111867236261679678731026295102283726667727065677392089915205554569930811090999917172891158546029216932921453012078684089744531861989686744974491144348803866459781009603068841672900924270655124165662650104288507454382377189860172128165878127512322066046884763806468009638035197517865508457072495359446559441147239108014241802974125181180732000522836269890860843369438358649031870309227963192898403364711511111084261106738211727371581036627759616562144769085085526557355877546139972745910633569898844248198996620316798525147774138113942832845534635986002873209320727848529360644022662274490508514838808644209140815471978589297144845263724133669622313347190309175502896935630887726790945843730307120012787458451581295526153358944547011775002326218242030405275735576563956950960985284641722398584029585128835563434262981742656513650936205358331366910199424930653976493570850831932632976729725530742717698173981055786468142874171530054939961544598465496463623519484067185623922810450199786420820447299018926007930867576788649283038456825420770643927595484945993548638365778642951828645184882447234739356415456266789763143165377998190623133354620961026510535709864642320756462553715113667564253858567991238466794961488727840940192104313260162215188096631837635996844899053357778333709283359403667542440076878970686224654474115748504315894531907563713808468587161536969349424120941565918507850522528071829123176016328793520274301280945599934173188208711715086603960431137168294250856004706011762548006161478751622004279205402588762794805451671827127740288570620669890157987089800571188956357828121380058955273146672159574673714397918362937235454339915623703365167376338445959838576818636018849380976184208807759243674051913768157459063071052146252069013207891300307658852428540455901912297617536658441775893587476532705306191905041105771310400399249174322125530845105420020724898085950089076973523466457514068226131744228290097436270184266374368553653122528120638818677370149599522672202606281264218153958830138364216850975493892127594742369836979985436409584097824468555830025543829544681254048789247886924121853408461424996483322645940883632434872531676009633050838997035148846422770811149887405614292294682400203983516277368546967998671471495449349100173564484007833065895239354889305290657939244839067580524240733722888355107513430473766762239664747510709993035715009827554402682223603472761088030901230544304175582695127670237153934765246041265483631056330689314753781072965229418325548223579246668857478572832285767096973180598215539576873390552882125152850730740943596192494435641925650583899121444710272530727855365744224551427749279371741109914024591983668450179297269645307705020417828726901782422373195368552828981295607297973139749784771777983426684527612499694096280212721353372988572140840844887492377698010596366264723789367740302893319445611006618367774057345396091828576461903791564581030857986785048916015703571074142492000335156658182973773649279992131474360509024012426188844165960536443282935957228541975186905075407768258119431307280093572883288859008377632626036488229364063545401632021628324905014745456427784137444407249365582551664908538794117660602747418294016765419845185418047542739150576640698747793395777391213257756164589688950171545212007277223312598047593892901022544048988054916363016164499751345040357802866738231679731753842750429176727016942853895718071012519712456162879201834929648712093063503508218108837563994525068740315907838381642640092176383389353944190687996881099105176337354443417342168174312597852953556810089539942641987245007141409112620133432232835509304530086348442820967779452212432077567197296416564422471334328784320067793864190200486674739334714529524473170094246485179804566622261412738086746584976236727247019140814972394532160013284635439603438155056660471703089445735336771515122865733590602532002568958912379826401052357698357969208849908655452368416509965864177782883999432251784773588473467247757460926434307411213965902800643818805717659773674539971754201328426643713211732619267847556966236177875867280451146004935659237114881813406832139915516515003792044872870877061458007624031538432640010939710746920485476680018623610786582886958881432614578620410722565914379527847094589417209811631773018217752000444231997950984902662942578760103626362883746809846287087570358976134088363959401816726984001465988186764270239050346381748689320669240986782823784395884752448585947881969631720270840368223406302863531195108865210153073340722040943921736421596833662187822783757967784973088951244271908151136809032865041732026110290358001193083685011687507425418463270716559930338550847713952162813854379725029373234146075318995642950923654439208195663937729220337017288404814325961940101443472322685343526094122851627791383537285826476492889246566762320019152453999876872364417032555741529543672953197694939811796863306009418065264165891195095557637054208152120308007165153519305118696362474880068817101896855219803835720944872538954023184889617691642540013194003872082096779613599000658830857104493691531506531022807329324737794894225771274442429953225641563558285678637914423838324712818340498634420358019014598020576170981810690378356666849734770796473582326209580221195902697543429345006394304826962370792534874262045845882806861001138937252362900872859241148983143496471248065455873335375289933644242386035628437412121181588239946105126856166146943325934125044441443744326580427376865036678881069627585677998641866120303478588828404353622308532743072986680450787362439395207046024040548774948243915092101176994212650155032344894104603889871154739095960735985173750370198006457617471287105606586738540950747840917468924461497769174994483128826543545090797178144185150949941102023652714927750141949142929684186709010228259495264901352131082178545162733588563216228398212406325442090704893196384104751630631316411966599484235533006493742964649479077860649192695830705203574632581050157659734228706559219187964647852905680485114380597124479294381930808124272372795899007077219030195450384852882370247616438070507659837441421008346739412800284530310177938936077331013260858303287961199087085787545500231362873179350795936055810704219762461445611891728505296450129690369476995265248591260004702939785274361694862584423959893225290376413137073827222358282161871966702975473667342940338303314366082526511281137822832945004055730610447694882902651770824731271654400503075106148675206995123068526258304219691375829865790536057997862215005507735618349035027559403270777775598581056849662833366588825078122243697206174450076631879585312170959378633003742299376329665806289298236618128459478033217444479843449353278082315774987878844088548904046065024225506765620689689214964236522112364097638367554417611426322335327401483391952115355898601716339958213923203017176224858023907964851357368713634296001251505117178105971347485279569565886530903355618157233894375859751917857109667975004185180395643207645226719647099475710449766068443545464401637022096381584972939073174630342097049058625881575048111461193668279767722869427660631462341462937430266891546977688165079371568132112134298337288858562998316278361806948246031253136160299488263536114940215587302925165381223144155253384212782171758593409347326683642494905937197021339988312819217962529749550030730965560572760434490706013071085361913165034697885140266893041980441693197772748404778591761452695327767667478073741992994226333176471332978239028598888451096422071800666869495386803649175876349930253470556314106701587101605312399911303856528561181050165793918750444930187657913012391004006605969361004663406434950833484748800174327201585762193546455660017099053086805876074582092965101567921356371383780444111993630822212763986112713981088390359783941508660686461386644958378844562097593856277198583157287615889794307555930837304654334463435076409231669613223176455236566331009082645143728597946015133992555944243822567069141688711540048371155553847879285851450816484900153395754394919445862093368744390513778685045106889332859147669133940758646822008496609048160105126079640293002602677590066330564005761426206707931987049273172328895967601293770482032571177951072222541716168802029218744231554099173563607452081712590034223644848777186663236684864431984548153292949059597428769168397887795349787712535470362024348977414012089759746600300679068222418899813371015436146914578008670958157075784960690579869870837310830983922463890240054446841408012649036871785719361463874788030448596953645177106600114418554175643744487524940973571935332955994331620810186464517298681783395940887282172559899854227423996906106291980345631941107705318109835411700333099441654696385690379313093898104633160615479193097068774885336503455355802252217501329855122935070767376752117971791117759758991546821120605935909561760132544994825401832091369490534655908061053476665159604156761129658570083206893828361182819833780211377381715033530024001005976684624327997971132012665430777876648999737535710619451830884768581718150848699308835123743883003171425700839816753022117972693910091245937463568155204796645418545391671440836662724166534130750659292990013110797941585430955621522158555440912812387165964503669641029723416994594201743145419421402128396409635774863063888172528190937000342612329157542537519709037935612733929474490194640811700660171781764451122345559184072995102713732600250240138819618215699057122476386852443246191657188436543308591107660599207731246343114323361736897589772975467129618058524999834855384579614409562364176078605567761686092115108829443114812446878274897557054660568828564957686807304485906907200058176201627375947453022261415680530375047614751502434890033608827681722124591445319493495928847854489203168968807471523470225973805475509517933039665492236397954451844566300030918405652351765665189084156462796047122816812901786756209863973136958648620486639146151054413076398024389995070833960134712884745091020045453763390702090082050734079414074606886091652543653274260593679817544422815417525514386874993695394940399156707264543725094435689770458343957736937011722170666044763726755338813673333469508287880308152251483860118458827162386665115206785544684969024640755896207410408754900929889925039028100445278641149826684724774569103366473106673346032783665474125166113804392443561764742973522227777251691753052237215537757731194815073519117575166324082052830739614371188231256038945218451426771351630570373384436014461620553694958066642543335560897294673529181387646190804160567973395447894767695129972851945024076896633456932111194643300294462424923156348559562714071239237309257003633202942744461809427872299431268961784048871664224045462715150424828594202389954383204346832331943156286506481186020996339071497818525047828614564107755210465056773225467159949699030216675378591185487733988084950947862004414582273788810449664382192563661852845284078691918714840073325729854062893478914657169287133690361026288168423278433471781483604534600917656620696171305157640591770067094156459241099831721889410439470035352890772379688217180972707429643245136125760013082101667985619062176448524182874208344102570721634985900773789707853464550066286853125007203374244976494295031756202506761984576835904322450668099834599710107039615465039107484074372860280875195003729814825046481482331568761555833281600145083128951312134274148016881007500282296650809997091163596759760712800655951474092459762118011491483057928972295897471095363723841376317971637122432134340817111318605124568149378799066444214672073031115477950744733088503661857186181386765234186894716066029125292310346609234197299837540468003673289641226146237895164618494857476307200389214552287895040921048424098897880037872636729839063436236142530181091659388407371911987608583414454238481243024069182469124999552629186731497143660655959446987720181664665870852538740770320019984797523659448719865655254050879248984096159904727190874084144218559669929828624405504123512374606525756736003328766126282000114336754374834505749105269135046578376073518916488933763799679303725384216675390582399550095759152169702985205956900598017245283551528037714180361689092394900128430135609917294443772922377132182929425150222101294252054283117589701352293816853567075233046667140222173324324051687076692321674637149042620731694848677060410022817131518039963476225768633769003989425780616168210232678719849724747305653457805447907636150901974600671480107562427634690754144192606586119913836548026736459263577097465762738006308550433692687335601345433599125406525984768245564766599928366408093811857199565364831024858532998478112082213379984377484633011204311266426740597593785414200547921979464653274794210504125150132963211248876493625848513702765190768390557699098991468912418589671705634302772867501571022419606812381036914868376989891575065035395857610010070258182426323971762317350496947889020660309814634886269541968789322490520828946290050027202221622043130548056581419813806705324755809221040697944310466994496278321071375120949900396093614496000716972624760599509992576256588562596263911094301905429635845610255524787656499009873548703639789599080137987389140362097015221791151474576709029885757037115219618704201224633308406309981595624668374365066441883283082474848558344769429873754955642958028550301278705568653860954581363996124142588329338786285447259147558489636359944110237481382876668237511164943473045765440479748805060047602954849598363433866578077061044666987999742325088499466814041564292812447283786512780732269230723100313703545126151472868368564572765156981973199007955716188964899416844493475567651795883225832488451496696710427951781012166965391528545573771395186590798149440607623984676452531137068086173679083101123314248145252687005103261407483480207742401220748667114156411985685287194374222050785070076291294332366207882481094123670111998113026686936479899101531039613748146636450727843088856666507102821165166125165841037981713749933940552540933150034988879179851685794744137838565088638299255060680276569285966698357028042951814224374614410859399751168115466623711844246204100663794329566434394488153269857659219250086644046325181558959060857759272887086294456763250701538318333392297003259812465393653167700043580801942393879275845144732618072922553617935601429396921302385833045444399753865027711379516378623676361138747215953085606836995953689625939065924115049924817336089208745082401421209977242425139575816667469068670740829477094004555425483644047416773195630521856074947940211658639367115545653097574988362854581644873487284565098422495322976027269278593436522506858838187278488819592954617438796622372748379653062263586441979117111966473883086654797091451402652061742505584768871735617596963745276184646174948041657015595852490439579436717864664275842114362829750609001482166480962928081610329988079108972394115155485409015628322467009382343617882900858744972932222512791653202208651604504801558579691065355621629611217757049662766021076874462447427775186322670076199473759819278453463791575100429279068523785640143148628347744088609621386555679360209936788044938065205915846662507196823631489852213196220202398167255655358161493650034766062035808620925379186050840078840766408147281161776398833145768201483467665529535626970904504212572864498690316550502713036259847365164742535095701234184843790470111475764688209134591172092720657968075588785334921769351155117914669945109281851361372258630847377165440823964544828391410537102631485370337990689175872584891445022873274625223842539306084760619354261713673687658685476584253755479859389862728944176535069890411469707175315206897165186526650838098853650069942489710895411320666212617311381612660882026406626158225281542197972112343158656159303887720600013864916298215299241612182868738103244115445326851677744170666717506196819816993166243747131249898281831483746316978617161138714478491566399823545176317173600630500624267362642947730692389506066501079855361085628994693652096474337099584556591941577695326331999055710007295971760956481148292158808125179656989576975476798366929262043746694970656424999470174553820675882746532198127773891186663638042576015954013157855338904083854065196053965623443093763978879440966029693955840100938701264733963579620493471196888643109993824770135276250397528469419497858141933328002958416291621159124443098223113191258335158039731696307791288607761857707980765982416306230064951516352349501499507475880404598441149114590807188431816503429219187916811405085780964413007427915201679524346969965468670677174177602268049241640789493048421932444015395258809078577163183315286518578185543267409684676085086868723648802864394359932886345754030873681307780008957639961358617748771697194986136525993628427150074220364979017677644617434974398130296748298523522756652613800411038786532952087237186741231996265968488448913941005721099321778038337942122437635865363248060196562969310417367252955316753937931510578888611099049866850101992773338797935739538582032082566599523913259850612988441512527789734760547690122477026726717979365046396533090302027769631709404583714406639197892412283370574320447765155265800375119340475928643622202204660194933857694337965968365765825924557505560565737673123779862234537296146457661315507722922839093386823355766280833249270947232880365706105001021460842272088585903052388147021025697480190108822026734101088095710753153627117124416754935706120339946159426790949393630846651312232306302791709422410458604680381225302635999658258552086538042074996174256463653122396923811997481286671043466300022392771364348789293744767500039900629051278916645858800021141342775541384472647944408514205134952401402867297679714952903298644151087786597097759191265034465639050936979377680101615571506633901162940336858012058512245241587371762329798497578026658246382950165971513966900313082414517791998053951742147461754173736179538174021251265815178253171224697036193297294646139707377630215389021414176290085750320426108702387634838053817269384938684634167371563086734368017654453893453693728140680321509681376713358560288906354430342054149952611414984099176792513136291590555670947797218527142311539136720226926269428659889787029031136282849428317158365233684947613587536042010121710776345033441779065862968057536475879064298927587156148644816995787031149940409838452521169033550799766571809682086149902086590594630266498786776303843888458426163992189259296660152338391650180676876565330436130992262690270948435535873472475675233765274515303543879700164893776799496491570311347130431042959145966800383708434809305629477561352869482354821437219686196781371125381653805858714982749878678467716419224573101763962443799390964395227887824078500726658999843468892391920107015502840638860376133061996385164845795326441119274198850380495159886883188462118826562868917713373124381233862199230948733847045504935115562990051172013905467189372976355307941478154532214674269469653858279631189204973231740955126508560476810367606588069964642307967073458021881363152266150511488566068378068050099684948613303872749800114187175292298552845583891400116643800470260365234262144353965073054687908675541261494011502153194820582831029800796586055367719977340500505865412772196129915020809918432077455285324937837113310179067265233869628916824100739966465278174283819844615059969797366583932345956446102041034605396129137592823564847674153013044808932566099358357587490853825864367734856739021857326554661347155649992602921052385108493928742700292695633582427459204228308735672895232552628663039524668737481554284264513989729171538389747774639280337005414940228033365729996456781862779700750525466986223401352550488205451280208546541949444972390341057943882366012237033191531972849029502850181222730984245536504972512003713989632276681169683830598217743886261716362105889594589931418892971632684790157615446791459285915539456344840503111833070291633087242571946963459610839143510068347828545577180501322623561691204930952571926039944284556236368889791811290779634132399631755921953239789857707467355615523083424962183387043729227985826171498808051797169965646787328153607716953924906843461259228064060005989060881269688312795815487115785334406502323782422633396215339624677604706019370527620636370158888959523560851694554877939970620031935622501242853573109974691653054448655612969002208393246389654904374150137992403491920035853954758639209133382819427950506619649891506659167287037867758336360279531518580905605543919298149288899587017011445343657813711995184117952104972533464533443270653563611500747844970561229074033277096775398764839938986274375012220656071847186256649463387764168701839758431691455110687317865939174096606105894963054275903087022262853384269451645688258547949617844839260938797254942342870952446924369846528621153207760837650794525844826757978453424824640685723049608743631488402916703553653930056995910304827068903362077280133768989550573126104341899452959649098106077457564335154738842995683858538632803758115655784156998495423539580500286411912775926389546727924655639477307200264048105095056163954862243353756989118286884935549946236908822591263672066470479589059987695972940791253050730027435174550713556807827662294885941754786699927779485464818042881520242475976576866424145297807585345773039400373307043717253796027903210395182461646524500648220688600800774664398782496268493690043902957157830696729730268188471298247914025682127267963368351127669715645507471789739530371562581777969180978015680162702173208227006730881259856529689729311638320453474236388809799062979926894532251982044573501084720977687896496584848292069674252211239886453152424146932792925098944149188027088371759341053644102440293813539021392681540624413983161089643230923493292252711331062207829397031012464532555990278992428936770466691479343648785267087769397823792638238348281883630977086470119796211052726282819838511083562973096031215530894797545744672297253496635604003288666059556836459729646854558698090024487172913538212317317377775715637629622796931216568410317797027222632803618209565688752183644917878762224083560434029477607145437772149298990026361429222422419540514658054856462728465647583980787543534920891266843207660882235448919058983764478977632730881794834892344559331398968967503752397886132451049128568192414512721861880924549196350041820496473790701595859604309229158461618069134805146666423686623705251740031261637305475022511926338022435089258529913731049481621165920079488278941270011758267120788673588476110153910157440451603251632092063324842691973763263527919306867503100170161797304083915574242520111954805337363988667826800627789819879164285326154179112308224294143328082695536126539152883394964106053843113834539511490125098931973553690576958779996964906647504658967247978934293985542310570451725753854427070974790887166818809043245561644173974142154960204500215284643052562340382777275675625399777742189196501118909046328454860243756524968054866329735318575328920890072184264717742616895732311931213835540580927321126076650603902218361788300348176911449943805419075571109448000268941297313017975270413869333885193712328489087163149213692418991997259806841538859657058380254812438174832615488284772012677127495889292413596951865608192636395247215974316431149288189785888565809799116654075088911339735988136221441565623857324973606788225597089645752403796868934941884531118043524957614144958562003879696277589984444158534372964773168668335778075542723325930508039920269423869155023260153717156663146129121915847314580686522372603902804211477817694217602266464661927950119422212685234066591642346995854252053706474595063515432317630620813558353335523692736959333221091398783656267243657873012847813113759904234015653545314303800403206380530925337954683550258607559465378723970251608194928237939650605119479306955168553687462332067943462578428243474927158082150084483635318421513301069522752059268931235607243051608898408540487323061445769762791760617734720578608979604139456473944182981868249999723056525913987068268440377999416595626571909917660492480896595402417482660062147979319776313684259039705878113077530389045380400973034209926341648534009879928450350167569150945469401803702714461275405984623690535624579630417437486519756347466531297913450356365934280444926501826330053937772193207904098333603442653037950943410389043246850639180814045014108183134797243784623358904363804588432095895347876919127802246097116537111635003557985068524466819599893604956262825383427640509873752454648450201210075262784163162443900575703756916684820071704791816276315998476604706597218553195074979933268612703232980643307094228077367448620116213022009082994398652657384424502687038759130161973212576985297584628303520833728414241390522955327136872648857816558656706305480055866989976910455008276365681630983351254570544241700933734467062002291974317840711153659334881009147151230602766801851050196913724314454189087842027692558619164453810476606838591288073519646335452906344577121375679142640639852958710254918201135421193225146125586812745866682776310216704606880668644679593426694117113022187843912658326091104374472151974263869515358150108448892626113872515262160881316205789911869408199846651153033381565056557571460943349909604179288091002142580727090204195132632872215004951760387948890779257155508300959650075416921473945697353903579716014829229878695710044932096678443271702598411164583914923465652872154242243596546334964004928972377608508037886356908838537959153653377142216743121044400203813490534431819594212921824669200851202407823500379149054440576271722040784576930378213846471100513142727884906697787572619540745796699384222149477233744305272575632111647910639485936743045441424898358048461728547258788124996889430453929507801641903487529693146713492375145983323830172674284776079008958873906053323916524960121143289398392609540955965939760670437932386659854380119513386091896162931677933390334772727684082639105617037277759193362137396345690245245148228351095578046570993339225037899882198388836307683246551080257566755503108255296900759581387503569762081125598087962602506670987152635449513393109805579252415404553751763084806110754623519345161774357472210921630872486455232095193257750838619741895961473734024834268198601172828093901210231436064465966400081972966033738391603737749924724103325583691570076226514103218107790693565909013811357576021582666562605562486382037092005340683388297365653404879119950277907427846043529031631426855906749836100266114630353632442869918177159277017485006483917421204062465345861089964635202963803696120302006240565620889741649543567848965748188667326364909380222954050530349674660381431934895669936393415639098603827263772375997425874374961905419426182218414222974864057580872254907966638467386128556558771267200198927541729989013862354453787080534206269906251849187147716856912232953226281416267907031942636284241825082199867277763653127583045517740750326348139633928055848315226087575558802474672103492604251519049680960717971707141909874800918850942230468931411022835029203836486298399543377322716002007780482397002551201334475158921686043527567865360191791785384636397441702546153016072450024870057520744028787521798176903631507754136603326217031897262082060141600741159493435485669096692761421078653007396285774895819360064604789731329292110906782988414190947302341959278847213192298516337343515997722935696806079549254683510158588920010619969834583178244035080300391687046442332528736337553639200452319965811215213884582701056024067103022691628107640148520118627100976420002928974637313595748604121686886487275930857402933989757664710504491128667031845041372395045999301566336227959495087162115657999483619269931981193094108218806501240216248272993083673307632723513837356878856312233254552517051619497951421907176813569374050483898195632161546410030309224523775882864330206714601260416012987971541612171215354286838396780961714182565105084025055377310862302106898136010630697237841186232280838340556668557354621892305885837471074469788263002090450422176467012240938425944563845768056523987532804240262328681243819535640854196848530024657341422234543479033764781773852373907421903390617747363637706737913381036406478119451948051899615253147672051651137623008962188869024098678788520968698747509755622745151838733001713512270100729255270205658143492319879208652690897315151282875472500587749927687182668851849962936251812995110181689860807326473690560891790387737913382978469140409294926150074731347160867165496757406651256691118465129784934947216111516349947998146985748365919005749245225992708640269904687400947610840964044911883649732662423316980850803289918403226371053526915067585017880654498326997721392413638960171893899618487146104998496845779141010237919384988165107663462131438300939391354730229909952435818558326868031160162482115693803603993486254446917839498001844392145755132385084870822872073714262654071441463127247552359137781632947989970795182181915286221583123473350095020275434751837829911543850900787952132774674334446476332477346993941953003472587332099006150843515917701962609368380139106000403509032301274794564136752298557462063954483845305410484725555381039762085797314303943474708964798252261007503710228032759020081550567590793548287317006074000659922654625415848385555918240536940265151266776879948733868516257027380575263037598723670942461556125493866422114051577419349074886770393551529519393256295470298548664442289859554139867995735470836404475148924606257346691464865005280289818766444753294855601450394316188245070110454989483900975769011301374795617734369973191009420232701980908052747539200817094867534971697833126346008573896277210464590911029275313468208373650582960259045350285893945348714830719698677134162040075856129723705041632955644565006627350334735584331555701406542477867225332199679108057498475384824167370911411332884755713184372817731572771545509130694984195170238096647548309654063156006861190929419944022807506876087625932185453028906254498837088173215184457925056096509691872056440343058741401210294857443745945385142212886765098657701039917812867517503594481719512498046676072129220932448491901260878062469787598573075981179773877384238764408600752050428545075816589018520917512311444761069315862344374779836936707911647850768898087622157436587019799270267217031621988165968526338417686125673959554442955880815351713985096553177344889449704077559561738394565150269060581069338656127063494475532344578027726180109430760869311701710966812076472599372957513781850269940446129781311993585567745649428358588818663287672668631795262895358885840959084537755132978067931742519318333292018674079037201746052278954394797766278073890312725003340710588531239888292664043885259645319237314342528685523834722137188295751782615455470793977433970643510196774927270001564916021248821391889935794684598823588935891289943483343116105583545773610898513616481990652554496393769648848872170968021824681261656238553061850844150310046377199410463266324618287266064231032186248750241162984527602461315902016957160101810463613775751160161479764094318566712744321037226693622378428406490777742319944568863224370034889371749227381995941280914336303700606399770770083544412689556986025600313749706128089307829882532877626639960417170286122262374343137773919619721803305452729086566819998227912882076230541035306910413845190293549078958428398072610726952632655248349261700113117828366346449438699498476820362268925216728027784760938115537480482846052221766012143647679922309362893364774217850018371177706706971879167098397657010100590693745949166487868796535442634353183381565894730199917555340925802063993993935659764207546042558880167956969330419231613389959386871299755044512678937529340213201046082076800321055087317015968322785268304721803877183518943868731724669073867205544311226719250560918475235574904725924783799404589311637807697398291325904612344374371943275956786411536533654223565700304086630601078719654841493644633176527971319170079779593556016201358399049160420102544540249872793846175746023626850328098264656843098873330655711107738475049412576287053067288608515287795865028121922654749702441568958993194880545041100614385102479933118333980623695950877979945965844133896408842378443081648669466954840688224039423307756911042622092835056726363816152886453995433647811022035607142372056726920690023084697831291043956751144947957482445575264964882753633528825451330903839645767879333847521240022244516410376516361046956409673851834901933279558331191920895951092879630741563178656338279497097769849359770474245418400412702033996567854260200301807407111407581867521548955966126308334701729753298112358125554804065294749029137803453600271309015358996064071115208285854704291702811109879393165806151046117521082440050718436769053982034982510714978019557296978370817074709694150114715734832530006760751487731898166060933427914796724450658125429775327159505685223118113087495404958304028599223414952038016252529258746363495269972097800904779987524390693723835121103879602883903744246657846496226543495100793491691890735020496319501959143980339675021577290512543116379701238637635127247278232034631210577555650093869580737559447267260158234719644495753466750752852785176193250032289167204451224498344168567319137371199897906207298482165394206410051810881659917083904428686438635653615840354456960128804082870246885259030923568916184487577488244529198055854094826543754925790240503105106982286463690428385063794646981377830306077938704407851420714048876306873983327959084649340065484297725706077616021113142731357038421873638833059469170757998973673451734641978952270756883854848855710151453978674333183820791392615344224747622241521143871161478217058207336789719478607068138345780665711693947811980404102811859832817405843214587411671044393594119252206926254558040634528198254067957937113164162647667013405442741548750815167502575847724647847150903743141306141234362513071374218603574903700794974523925649036358031707056577264092333302617984953392831661766725360322461707943934004688737688908865795029361339936310053958182103040756792648471254207156237075084276338594762912483450468896042224549494412263044902407982284370114782417891789650230371518017878008737531395446054533723553147082416354832909493936625329554018684137616527023167287109329241466675244715611836170401280758522282067301495683310128468666195027406274520368257032648874952815727843823991877742893397438121688411402465460486544448000677010644649451117055159982932058598827177120677037564758235060171518253386333464246214479428495831873178948050312882663673781920785179470571775393087749657658672230223424864747448451293547565920748783443175999962958190362035986906464896940016995689224634915041510531168951749779025930865692919577521978241941060824612494937348049148116769467909030340247734820108292213370900407537173141891711365193532247861764650653535660013781342659951212931463161847320665447546909355415182073422809357515592851648709651793187899610840786474217956862735562873252248494603300586731721079758612051664981800595637915659990639573006699548304810025091600698673277964431238839101860580197572965545819734221209278110449952015786755029744712061263680337459900140735517228021790166107107400840456156266754237329915004786343779541328397236934886395318625019447500628751164260059064926931993240251155050476538817889373562845993082112603680345988719098741174385250107150728272095446854744387376810792233898278954249978658104405516994796259935564321120804140064836758178457572511354047551030158113447834342629123910881809906120448044468343877987686402607551729201461223839860807503767737158974028137133674268859744909375951421477234482340578195755644928364176624351148150806324488968350951422708530988582428395503383152822532604451200560804151594989244182026348263358561689604742963731502450147690748484342269064907070227406159183595594886571163906221475197068011170140613774009539004936341780207725492154250088892707479009679553277297816412817898582820888901639506851965609737707823878911944733154121260599480058965032540940307143812656362968628298515688845040528144772731153573507268175873886880328906061860181198848150806380348087521782723680120374836360999558098863480883980531580030591075849982270945579987801466688049761743122091130807741816706344294037531638475929719814725777492748728802210957408244840558969678251449474114175008918282132848204759064461480152400964451758214525148720734444094754159078839306866694416263529944915077420279089162611401577565286879153674321842617170393826165996443416958911608533816305170379028814670989672673687310041430137076368625797630953043461087797922601723864629489595434318832542705589287734478838647747894695584442584218832800878993939966567269165836357631775789499300232873923626700984530205809969893222856391314429256983703579376406383072820700926840750404019206554151208464327977534794797654694146262964038995057489292114365156929018987410739364260424602521262023954746703350332432653859075095363552863183999590660618798141796288401394751233236531940211788958029601924009344949706863413570566426994265719345283457938077333864250098764432245391759148130838353524731411922557277624994404420583229349326045180478786093046088510076470140709358697159898857013549196061632134684769903428248406374454943013072528749565303197506907059666517701993601695372322783014950069436231143361678602054918450562659729142314560382814804869680234517258550771745954335387625953241386644236958873466205653237711903896924732212676590188829027472400130177044259499009872384774040836080100258416427151897291585900909316381250768748415015722236495797410001078037771372929663636066419404692445831801725552623698444524024495878628329667978292136755269544592268505392707849351276689252666333134233881327616879531344185039520143720629605912742254591695108020337383560287244429779468898372945945478981407768701725668618164071871511646768435444323129611586839758293846428419798143951551031027835288633232756505839439327341819602936070010776544251554650412080414290727104109938449578750940631301548743647819971922348885043151449070600278691070784365314488912939146771306014752997462619405605478346859005819962653991808006004187810964166941461852208660293878704881226135445968830598851783923461826181703473996291723853417585662400682346250671143113353241193364987410345241702862260658737924730392558637722519472048748298403156350135470019840839985295955134625853107307456494515384520127261026074558329487134536088140824222220802429796842285507363905293430374581840099688792100015066982981731117082095217005704272177119846893767859907087896748502423864689810793163248535437615461796363195657294975949039828945517072967937267098996383468503558478751817868947976289343043754004249269246358908669889830041565861951948893687280995161436215537854696292320623609288948993338574671082100915700005833753749361228075215228346666682261594250898165619384778752341737941361947636419458527596738364580630376829570122022104286382274980886060131781933254541889986865799521449392501581722686222919841377634739723098109672667664504053180006901165601060400624051700086525122787664087165454097361092118661114616603734401035752746478640932917477746068446834855512029664953072662011109925850064317503151174721016062261412725975806227139608355452445361564445854457116781544754307007652556091686802116205093028938118591227784006092462277110406709819516925912598298732451277838891799935404583105368155335943447786201389128349102298071904902427747523807450727653964569938953230471370171907112881951357816792682395221114262934225596931568707003876126705089846065863847376180031087442882493671559797853652216452885322495857236825694150158646046776704929355785747811285230020607428511179429159037282512277170819215504088558413586262368459609205108363234643969727623619625366481583145808256493416902785947309229046101636359988668595441917261251698892138999584343369181462207320445842238168510987116412978210975667045372690608118554133742771024884822365018970656391848609319387983213386402092563744068758657975070400184065261340972344578378227177687651312772874841656799349989889410505654211008750947349580260799082260131972244891640486740270455217297044475159488321322821217078090504549367925930772183474937833378295899514676475594394329966824067938551626522820267878458613544116277649361675164441162009761602798505492073740468621179277451949410886258115440997775150570988230989426720780345241633426369578019245582284031955619228344818642435735077673380515821515408517589814559934730501358749328634685402790072161142196322575846102769474920913139155548302889678292778857912149418805965534469651694225156660581304589664930160573225338323926222879786249442575869584067975949627434440089960245489155699529167829728526869388919429963418463750277647020912905273779870926774974103923672938494805005980954677065676432614265026739012854914975786302843415799720151136208108345268518055276952832686057284970051217173738791554069876931834100628776400699260894075024124514172793488297959266492278302236547804782380540093351291844848280580771367788423679224441744533959007806588889070374004391456072206088691955001255724334604915051135988762623523648496342895432438015506029809252344534147868820321490411454698326628395723752082176699734212119901257294501383968484810897730143956819103856946151147222864684563688159164991844902259868582014511684497546614298784358680187752760930540654171690181195026100089683542926841084944961188925932250980414813688890259300212133126114295403220280184185300745328119101946316589890222365246947641232100456390535512072294613076029646622480669866856207967921531151584959623525149712245814895229913214615575091845574686885036122855872088315244358236278112558820374415570329411070821483914326021130464335017166571045267003866162929834886873499741492565488413993916795878018213878008596233183850576528057150026865003831583292805610914264707773095315896330665152293984116383194228576649080028730309712044418947797647742275022086523619522406887457900151150562584870655093667939901841493642667231387721680239523127400044925255022696144749819151485350683292733026899957399685476038267583701957284460110448437133501745491281246626554450710308040595758339570869963729777749933170737326334209297847529935142604995128374112289321188243375728448155354083070661320763772212119189688185556899734697889220099396024344395026685828450059955703724207435255601262460989474203557057305750833936336707585886514398461634445803410726807650495514268796905963314556477046284111907377013538284299986378236275909391245123325552918193444816628712811825988830114181200865332287594733105247291857076767334252275429890280790414977642293378942590965610447293984055246638381233325795209186872904286004012941209161783033738965111624098476868577977435735008993884652456080202525140060760958088398767588713127862134470372393634068919652342866770244448414295089294200591319358947875769075422846393137130795780512903837186213920201889491055788704043184632917892653411733588954095423924503567316243718748389466256990945592156310025072099279020362874189322651413094219076661947123972555296823515264862661083535244094041869638271688404038178820612701729686316213824728677984999885305990890282475078230686065650416821397918614286392812852457524799586606474382901429722434718007244284593164267227404281637443280421919352865473525180538005631839482368455575510988672964167664766016876270073183810777916121909645769010986873234151104406663169960178545942784669139818747921294172063067037664752775918402122998371133591701526396460883836374057495625263392001173906399319409516030427562888333240771466362699588315913584916581039671377035667696097682733374658252205422034458002696929013521593837454182716056778080293113789154284779821943843017630982032259243565500496357249159608368676672541551000441227787385792770972377829348034114800992259579066550426524639710772071899113857614685444897208336413668667003297906480388258478213515172732139269576628038366991062757228005076596793809927861969254590885370641661246227240403543657738621684647573784137946781784112268915149400356273024861440375055604607859028921526750240438735847054131916668047531234980007599548837323413015172424345532459658714443472719265319224857238121989702726269403344376393880812974619768277328160472604969067735180180740100175063491366946740057311514270225769664531936446072104588626235050222954341406079852881760815042756835735846283552591165038052293043113437117080065144852924409542611804786394518067619790572602128607756923233180716994775320066547227591293092609625468361477651953319951357812137262037583137307925621654947423566056990432925002165625171037242518154262598886136446294792265820922638367953799283061961195801769645881857092299164378957364497537002270085883236426580704113784316375927867795136027502147263538875344733759215744907708438000872389386956238818370605215551592556850480894848754028217902352442342093437281791598939658376712742965880251699271565510996595468193044150983079957519124936946663479834269136931856429176076322383646233248126248687111464597763353242862893067411795416272686553525127637977530716492804638154339623152224658397966479447251393187318592834502963069451493248262333564985154786011153787930564144829982722624322558712099414628261235531183646159864541390605671845724183891392878104419739585464908865580163327938278001620264517308636766005681142295895523007969893329399739223073413443499574465221635946105507332352922013252518971691647281679327733715905777650379834660188160950174541415993107768238303233048074291370019864076453888955768692358950888104118957640258991892589124318544618920942280074020202746190898395719759905727575611228769723062253592545729192398766341134274499670616727522144513922079847929357137924629293045098105117003593959277201835903829215800080244248322215462058059708417165050891317948733765344824939480215675088085322821195553954330763663736585290377361906514780279097284404850145393188774568396884303084773253861208413999207595989479448171765546922666496620965707876619876796172974979047859169760111735787284839771067556650027110903757275999858144891230053848983627742750320012974678972000865924788688028063549993162963621564349900036652858278042932099281887527796005852860223535810469193356974046103847195255404342829212043851471935697334204924623514067172150504036543107650550712610980450350888194191401617082905928337220063124426676282833027370388967010008083160883710819821019609565804409461633092017548684057764968435576967269083479078503293042983318027070928773750697131764411086100018653041921414468794306693906741369562543562205297015158986641242561299320915497560209419836721128414260427450809727635845223954549333062916501389626405672817172845729764597752230802958252722450820803279956219279402243286948800387345034044460658904882621513051725266144300723892524333928704289545874086189688822986767630602004796659986771755244361110198269148133281951524536768978236641873908862216050479668346288768600081014015436830611481903289928162029437592553807849722593577009619322902829902419177355489727077376393402936746330802690831958134091573672231366501859225374804190861263369638005916466919406449173975447009947859331777213531532415879976639323390459183466425940150816838158906337095037813659209157293824955950697528181651033554886160920161423102265564885072735612751611911042680217473429533224127649031639427067248769538441068041377131716404656877484156575338370825250197218673015654143370450706159364188573157526256544256394024160451129145074528284873401165244785285255248524874027765983463809757946214519380959508934782002267876028702460943510595834923490231482466081724689232400834748913388606257355718700734185166554604698566724788658934932122413247210148589371769087302826809693038118431516569276219110630103363571569578444873716352666941251104575671741932974451430371129421470396710937824734583057759559391306548241349127187075965145408755379998145168112256470433537716824895537654263440236682890391390930450223578900646929627855710489194250213681616142154245326127211573593416837381189159112218715512273671462092734006313310910726442140929918630834654880735946588026815794112084737493380826140059342600586598532629432817021622063221961175455843473550507516000180070522856753576911331379703841403447062045775751704511408981231531932970608774237247690911698016287745380306863374865685933297810153170917065516783854863647962577563669554784642442688871357362158220733325647395896890426860519631673989333701650151670701607060246411845207202883186593536639293356520311265512776687427370732125376798976792140420467818650178799566630486611086211063204732759696729261723872633295550492594678696433316211208961053353933002673128009159737649437931001983815378575111044552436518084684393485986344438553665973478279172087370195132167651324632724510289408288759458240520630921829461896020577787988141155608996745518598142090546421765953153282207492660377891373079340378881571559581313448384038859866892847408582738111021097180737911964395158117614202405032531460174358472749650030042055128572232691338022230486125892255476199996298527752632452968919543090832166751947495808706590500290551090082954689064631260941789322824722769412629951836002594999677014538384085056463811190422577373798653807758867200959490514218779997283531986155985306227176480143049437582106256703181630617990891838267601740164736313974153380523619059943358276840536198450718840203163442586338807368080647894448167568402926271586876266182148259004209485922998726822030852983417236115436486308565700054022387928846339387088739450787858309471394224035978683640698359756257234747144948699979875277057575163601103683428272919227375054087611651340622230980338928740640191766144670439437410936046815667266793837163035186876139039994184029180429152671147616366216758543701349465416053428566164320833267450176366601457841316142131866551343598079169203959257842281478023661102237738120914288272960484911433145484925393801623893600211206160621311388804788303581810051252479672506675751846257976220774861371177217446690894840137780984791416433208081940098395895835583490930469123991546729731520339977032527390260448887993766892281329919765331702608532341634403630163745767353692209337858216935541551607405890789872697171597089081053142577187011072235436391422632677497692864789365073292425429396977850356242655296178680527766790827014309957254716878294208889660537338079977740006061961499012785182666633672640583413531229658225321777774871901360240799474994025331837297168631529530788309818514873843477615312722184644411723330300460161207109118841780787081112982488526818334622044055030120333233707295768060146017850509984567366782609829965220889197927422028444752708415308931534090762893158208834802321991173514971011242611375112985139432410617511234411617081244679049658579240551577488316300434973405387472771786258705956774136974735991475947225918751009602747150446669500171696590628721989426247811301043621472665521440772424825555657925293909825706484788589759568571968038662195958899444530272233138326485834274422392857248202294965648393247072554200785631110998154464703297002090700384848556782907504929682402275703211162415064774156864878691457811636867509781612224003003894565796548821389799427128275268221062601652422709761456279156443451100180678089514373443762459618329777778985084370061416659112084754236701586002998737723641013059708884819841096005801274624109423565244046452195605129869381240145742532635381880412952603241072378468044143224815374165591426265915525272776410939220083327818771712544016079673444251386465843154049922348169989579880611906121175556359000744309859646548986172705451005148606200400004100884513161846297012769906880927240524852613307575668635871055250220792113395784233352416969455137087804173316708516495163100490613879431567065162525521578427637103977146893629429892697045880363921057035391405581080585233190188453678085847043002396335907306497144697365262021522081913790172250803474656907333507962899433285397161157308998521879453087404290865646494997743614322001777813707257748338549337612746370975701170588588240688190193894997836894485196839957434171061610782325976402520929607469423529440802517423063025355640512684470297161741161293554374965519912787986895891573296696731892713353941242829796945785302951021161862676010922308751308782352405969333857884409645074798658720351674315173799865428547494112599862906980597890816359574150197992159024745286865341109102187586206787434857995112958206745188111221475625468557522025230581978972007468570940254829004443843623692159590233546169616446412177565696416365279184424288855680692076017503198567421670306787336843741707750146374476205843160750285191038475503996901666129543318977055782776789638197512296650290372328333033474649423791221385008901933689304007485708858373307760015557998411534007879356177614676375587810417555507478027325391487098318577615807921560814675457869382640444946282766340028306697228024477366490837495627612691263725165340821884755739862108573386015425612350865157623940490963098043900322659769943074462220386197815284892163350347605279964120603285820876880155314965083819761293251782358127131308666998789477381474827917034228573232062870104446353062259941703095618414048496264750836974193763190060997308441105472705635022265405372300525923032472062891461479134671640855793234119213265545217629533838541729231724559065909178307133794752822965826623332516617512946255635478757604694319800665562615125439801701716335824855686661234913937599042069743801392256268975238251017003930818004637758049399896626462392491702698563763385698259021146420465956604283023210455612287525199220700479532785687364767972595048292672888503379080752957249252208186696281543308671225872959214208606651211073628052192175451668846702480930591547896913518932293800916001274885791401118594759204837057368090087896166461454027626588094558627888260928413632407909691194588270292693673908812161833369076579612277266427860883198662906809697046346730706795527415588015394167462519133683715880203746596119797566798069178400609219135962655054678154137833395836216262234823590725202376078238794767066103218150552776850427767673171780133478210911988289111175458263282017622841988873305197402420088638783358892765503347535733743100949805730352508016620918298716441705447275728410281910642017537386083443872085034262615910883458459558696974392537822530270117551740792270837994118404332770145869544851849301313320464570836489399576262254968919708979407781683574631088075740563128696079364214734191539466102351912393315554555721238327438237506086765847490677272500013699805038175123449876694098706266463302941939556468122425221759264284861133444916672068761377089494044000281142301293491778121145874881264038612171465797902658239110393531694406072471111855026168883227347685176633618397824475924526204245383648426353935762331133083089304572888448084410586432431837374627060597514442279806455890059311731245991959410866995497063836558764882779763036252340424272247489976077668243045203450539060015730935999792819149314791020655743493705465762778668594114255905314962075577412236398478985077671471462475194356084592287878901105736521457935999812345234524378987426534214913497529180989498807315203701052379872308230063736236373950030330801339900077036039094669339855714276189534192369156975480740931261210516893012289975606501776588296154905308343636400178038093017638897839466676356619623400600105919860730197908098017468968511292397346127689407240956952498659131548850905841712215027077937658306122361806841460727214606192383870529163240132944056183340739255628167721041869842970028963010146281733851230730007692824954365919115191215947842726821045141451738722865546656912497648354976597015013054863895064317602839028712775241474381002749658565245189538527848706817918933020115184716922465430606423306941107208590780399175974032078972513961671902752012952020448946820582413205884543461834868046670674567639601091605759346573047891161647404674353532546104976959602515541311290568560932348762936922404337347232417378225308452870453356793819874798449344430755400227377372089263491272699904285752133153817318656802722976436863679435636336219100863086416679790611083604185203809092847863799706222852696256443220959134042286078792465970349993679942277850114857234254442525831883502730530254046488536332051762314577233972354691556378840315868475701052735606101237661426309409881218423091074357889847313689416271387596618751881185650820638576777123926978171250497089933231599597955022524701070311663920113015870229521919750334969668903140386025039644113893818985604643559484271935615001085373393991768370002001527195736086231591143169746266844982958746192783628626996297395673678323253052937810929679912665285205338958481686950591137212910165738114727628567766920967914480426263040224911795772900305014117705012070122746584924274948167524876335778328644568708885050753292143051573127336450377979301684595158296656760529529803856993254823538879467663213308977840299255389168248974572282310474966082679210821290397457975788908345824230222854075989285475803633522536083569921803688270080262481164963300112123914100562015689998244298765023662882936695673003816589980952997760903913149097318187546289295226591197391922081661039701479777921605569157027301933826207029847263772689682763259843077831399888038474096667146715008982252544798703482279997014746820562527368412966186313668959607828355410047399002906545913504212931026800210055672570259135343893169171697686777292312901766664925058607599770469798351840471127265079624658258560674290048361028356452403750977308668290050173861013587105962924946709520223605914244984152267769820892228596630768149141941542699976047180921399095434425856596082610304998665246511313673937793170899664517000111308078307963732565848232234463937051780820593841532402375103254751684656285933975700986005363248797471404468235706281655412083083207727345148072923323223277908314617732307384369938537985250689369614688419908543122678778304220227317151239134607013185263942221514126428049346277887557416927240529230548668050468222453835672311370693387901112775878100559456913267795896594914650265208047361920904265686362871138902837208327132569351374661165692943481738137190209889595329331991370142560714162360544199287351904755592135386525964470810168099842468969976198656757065400966315046314128433292275427823520533043241243402534700652863529010205129648122972562783791299687599065670809885535209057757480343157103462687785646024788264745078376042833510688135325885356818926821657226464350994012997545827954033388705278966316431449064602019728905634878342028071488009374099157402916942203324379923431700866108156790920995213244003486983219596313742692283773659579788048244639161047818061800270743379346050930301708929553156263597543407333704480868264325571600835859102392452266785237324011568837445862462175069563543996916944229937885463382998067309223903516563962640102070108196958601580747557769630896014609050593923291669944996215100930204055075195089676497560208924438031004025627331032662982816668383155054145383601404657209919232549941925963909063913872828730848987574197123809953948843696223975156892839355156822333629837982914446986401205382114475888597677570975227090467318698786076140810504030042542869360757161740085862293923468683171079905297813825668640312524072729279805191494086278990664357349470954867156166771927382697837276112642826101286008188640058122789993266420691902317659020156005089478924139073554216401256631575880320827642583607914722628303844870918434002784189459547314969999169197640049767393159239029010697154338274054572446400124362608060885170850077289012218613642654129642307577148561133370357205104180621764327590087455598188907153244715134698602032255571271665228554467227366167948514704022689754283353705860362881470543544928145420403944619071039322890487335899547849558259787676222840408543785512090226333166713561854061044971030680049463875719627951795530368031576675939183898535085393157843393155727333623796748881113393305761506931125198316092852251240983164658307817062178962973314492156345771237970058439710457713074665112030322315359157592936920045721071834901838664468833305002136450302891580481061370371630531569842423339667195384127634957415862239207827710703029013537018644947728030796556922968092933430645062721013403271416944011173036977566622142121199074119042831181198423605482608708660902090416389482493077975161617238120137064322219088482189177138383184341028232899501178179989284717103284230113694717611675242955084095392383335388863797289473348411019563464971604628299953799827200363252482250849736670109519926768459298763837092365129714447027159331031843626925633093570983404558861300895319031312264127523610659450261794063553864881525092092071202066476707174255785347882950253633212673816218887971803515100752571680295619548401696121188708859869032419551223925358436108237093723209022329435569156397495360968870136756520040879643276032307467161836924750257546730255351873969614092971149993093254958210622206812492180231216057680156628467664576228299080908348260252606922086594613406012407156317218945826045358593045041233902649058413918205536506000414193061610804680994872400297302223268921138345554643745015261366071119924492148503604251543010897270695227160150049887378940842558203288220986693989808433459959333106192939312814121746225352193485962284360618310605238981070490811078846042448413185007801338540447562127914579279226310171856866226163449445679795322323790036753587845044443556590204209196961741874194989452492675692870119998075297401771490468556038645475120331456912101558942675864159605928910300107258502171064954813188222452881229810949152619008197217846000465958269475617989821620077461998226956052365759252635522499761598713736102640493148034177292324093427728073062403577632191340643571725723827775468658961495379380663439951791055018110396669844366891325936232859233859454292776990152906100681599022655853142655798388974635933695220401813601636788203609161024679874374693896420868734672492845652897623478929342801616646807005248163660092735063604292789717271509963960503880576175205220811540523048108049024435982546348870648121876604474777427941251864974928281249523784973130357229557217252282058854821736368440472792714981984140354971737096127379370477004942315200537608517636285489455534574313966798189375196706916746151757981363071319777003167529758851142752737566444626500074255606878452320825898364176022238505012439758554174895636094362414578173302657157197731975172259365250881498826499113819041906371809829962067303970623358054310513579129092540897201171946131322467685871821759939851443391072961485214165709150299778926845940867215796496408807435859130807474382056316411807643954038466925380838464678398632112870776334064500269192878160422643288655963240700574985437343107798064156884052564069701668137391875379169185786240598291887039220571646262130069953699432348406930050783816293016308687218430141857219503228557344532397181327424275079253456076868434590598141794364845920434236881598348915777000790626475643710272992517691944798529480248885568137792386817040346137837792130418681405392638838057763139505702086144347024535328377720080183345959217522590458227155997229014338765191448662787238157196806652655460390625855826341567721122140151419998853952266724008744694091566051590323092867096320519283023234234821776074098136007012421969497846525722724927751255895712935347091145758666047058748196628855700794871436172600651475609634175822553333755422701056848850766264786041746284020122203725744502616870044384782376613877830318503144697177692859026300342464830068866814706259195700453464206911726632220445012494947558073930188830541715942212009092975316974360976878927802763849835240038073768245691632710792262519453763991411765602465283514921650999082610901061262504661051431168722326869791520732052064588102020648984126123944233822170684108319414536479390303529281709807596150899161560642827278076972311445535135893266075877885626116214400411058317240557969707542737959377777332951563532390389993753894051742438440023993816931790275439583833098974512980375991252800703573500523440059810562391557791139019027553372276692893108012620293187919738881437728646051176798158393672760787894829702985749619234239608196624232218737189906168555784833859883959805101126701223826867213043893637419267306699512366135202106878862328433518242315638944799332718193850944589866302455467371196512890425324851869236361305023626409792275701034183044860195314805506559442493646804251342784972786581137645653110826086546915941095418100367059679498473896721117032203270900003669367938965037315043655202623894623202675946123752597810566598004339632105180734972424970438791247257148319782094473870158111275049867693093909460422475457882872657270522190354225753530910857464053416064501114860947290903073888967665139942001821315503727465875130659274078047613687694156160397898170122733649800409415252080183676579171096269449380055586112797664426422782999253406621469602755428347673856566707914147243179226683741147529030871489220502723927704720725767156172429389546892351877937838173161587923997045714723732590199533942042787905420782404646082654407904435412352496425636117537862334098930608315296447025376145694371573805777060570986522749098339418591866931838776709146530433237487331446102105583571848555467074378491192174331430573913036352492166460487174356221798665849391163636698425444209666169957819159294566143650019141344307650273305516006734867161967357115161245473141638325768172792922948760412530702030851456093431953832561822922009460054542769710938714904492492219821241881364856205395009996600568052452883600355478889233217204793258878748624630536063303736861992949938108562297392054127096422555036573969503301905819267683209201823600473894279148896815174904489603781864866772243296770709952937749493375034069315335815455375972724257753708005839438994597714990906001247024944096394110442303738977916776371993864489453530547497529262808299851217186453459134175711745801744131283336529794081018698291026005993362989136762460945969628309456415448055088839175089646682853070908692021769833816453057800820991880465432419166048106014506469659172853628043631353773735638362206116800617253208928880257161418997862801695096743370266781674170629475244635867211304170269552497102897031554116033858611500036243293031725390561241089518989944389056801550384615549063733585202790499675651254267806888099998108967259172875727832596983008521892803454392025078604404632804945598949035329346397192842266180794766328611575521120794783170198727599457597671512935405813083171403642948709036859522373650313350098213949246735406060686776955822955525665093508836349134132839204038111605774299627486486116814626163058178244846743195733668440985651014741350033431933998500518374046579906138192319274915121028266757033227564434619071761882635369412658034564075970245405222486233998896807972189295421526701473537244852511239794215053909866224555432090739888313258259265971459857602808892140222221091239694013105808336592334442330753999320582937287606905023160235212475357686431904668816951625952453432949766360708150271397796731470977088434466856778782293534591247385209186793832369096712605413610296395080497179735643483288906209401814153854601786216789690997812008312956756242096153733861077517151858392925343106271160756082893472829091105617862645331635573766002709542128920191762367111748403343928083644223344616851793463477064929205097643388335647209818009631460830456502573324757356394746520338472530091926496742612184143169500301155958707941053779945819356447833501747040549171866157542481440768414228476789155144820743409704457030546761657575520914405526622235036946667966464111861392675147980258841863520027745244386580907396335355472782113650523048106332097818109119646699143298590313725169289074439381478637686752472203854669677435023788045620531631566847016643464162209385218474394591844103544153254153553736352482783572987686733543932159834939732056365901616209351999866792188176915735383659541799427386884672733075807458573948496741267409689879314564457081220108483294275217578307107916050312136760112034523943838882693384376693406393378773841647949883847611400289518412361773870599447508370578795806207503907099288063714721574832926117935967228404640456880221356380214127309115143147787198636526288882361209809803578104766868014877030482365903659237050537156285504287611426441791597290392900411076222180402637944963469993906724711938185784578206318968656582647646547477120183231927587476949433339392915196814007992584900563506506935213424201729190736765896268663608857833618753597347210114215582803505234470093265057748769521295556652156170241740526694668508831285083018132589791889842702073582463585111299830238240948532031889021632100008566208299171570622016896439713073176132897352864182307059207558230394264114731007868950129474636525594220272834800878299785347041583970725398017933841788984034186449719991999037216738559675310295930213066696615782961006573951503770020394809174500485688169971748580560393683207884521468824284910301586670925970765319754965908610004518688206822729083527384237774067238636477925270954489435746319756702426256294461197386635743235200599533152089719812198538462094361070289576232673252643206183454290524076174142345417481592225213108517091939259855366875431543631358438199233350977105244823165472934756977016960118774813214815629659923268644640647638431131709271211764446618200372229653362200964554739869978896601820943094631834644550211516672889036908532312716482609268817189819418146916076783289148569827519688444979322950709768859737589658681464211683714837645444904419482534677803747869869325681584041824758136226610001919815001441267931681606241626413017068091320625055763994422267155866676915462637097874052854269379203150913782266689376102396961614326205247821584208689634134455662510001476754238909047022754522664063017222912839450473350224973201104974367689068420377312660544317000435155031307953623267895544686771243944327634066741883309453041727532396861284636206915715370825473089704825859512959437586152262790072765817693342327702946771367063932242715521825325847267302804728070685959159026572679702728426547833959568672150184490207853016548038334520698018863673457437124321047916593291780489204357347699847536673783052601473587293953022873047621615883728327547430686024301586992998390408473447537813545788718026135308911001551935166395909428592873149898415796384759552468773591370910526508879748628504814567133064138107056886576754857993942853032809280478636240791796604693804066145139326660094569953341421772787639980678826512056668251531059395486418022816779357963114389574781762137271943380196629236584182822368796502490488329443052335208295747255517036162815836476782963484733410030483744697331828669756710813045217555796651214099147262397472528532945481512513246444434727299965016900126458523091446438171549199505030551018880977574267746576055383500149138743462581503120186857308898924034119361732150229368160282814355556404945366609971505252860948669821679889447624836370614710674901775516712488065770290683082514395736746314306237104900909349990840032436715009202158382885416681835817617113763942737973401490886781821688769460089709058849357499801739462732723848786191377785773782918530475531828200009527766079735338210665745497709023523991215706447258509566007568861603237260967117997968662781900147749197605721983688164429974438130710368765468067052455352251772552405148492596459057222043192060373899912657790256858623733080807563951813158079530133439091465265635008687781536176113098666305741259012697430444964679880694766922025066956953520643463336197491778859935371357988240681580842092415548891546522099634887282528774981423026494407852211823555865319005433379660466337849624090094676203220368599980486260560896154840843979562591382829871746891682603550539880750328222845800348641917777394966429216678196446815457042468585506748139440180131245678710187908360378929569326737061994115006905198476355807429308930855790000447716862460332329912981872803199752706546534729829874542357444175712285229079942737877338085175248548912102224546465340631480756176276316319501244781447996210338391270085443921936695181960684954588167980816407139525759824966792614843868525931188125039482394326819577789380551793602196665856398717724734191723029240453101606768494235902867469861277415142434297535573202457635939282808108873062054832572567993317769725920164620279069482062293085413089214831900893615526656773254876598617895297133343557191745494680324654514398142670970453595290259569468376410267618863354185154256757809355364045276695603968033582580516506234571714752370902093588610749312016184530753933500891157103995222268207312868831355332812002152900811195325132320392999578265111625126368615006249936363493955037041104804805735200717740765439812017061210275390382360966530431684781927568745960658446114615649785083986015906919497655353977052598673983430021309335161622846896318383846955009586258199333711018292632947928468793990216929276197244794602676664941081063210086359545685914197820088046294409403404429388074069254380820475415352911827406827964373651078347906453106639997012135391077239625552839961880520770535110593416854473034721449704490567833623972933549530580383391509198142792779807864509646111200633202690192990423024072205783028636166459192429981148812585849471324783670347520978727635040655342809402481069366297239343089652728390448675143845044802969227678157438516174985086041372466709315846756054160972804678670750852566585002573985514508870410299242627623836439592610068530840620460879908880956370518236198837573636792462956987932726146287626966155529621582849890944167748362712722192843529260877099653870177984166102104845477947108760777414625992229321247165069580266802065767784005874099541592963342196324926388155491031218189661490481581419630420061776236042661337078216379406136322227019773346510759948605572853076651443341243034017862363817712607925552640799333416144903878048341795177825532870723231063791492805615970670216376769583726082508623893742870448299387283753864596404931378222045192506900752248838730986975099075419511742272160709014260553429323814519075510086119925446684170273536972219285271413581872246602869461918140115605102330272045269903299253082699407083897837690945145595872816178305957730230177385864363044512539948814520927018171184062285577103583792003805315597433459352172687528837516647701364184008691468095946486111877746490827703122718598074588362333595560795615695054582261342768794312903138762066163711258368786370794497469755805262741449501001290904106229139849803086497831695625290059533189041100689024423030807115047131266742897678957955303458288656075433194092451182168605536440196288899221550172066576291218592981631475616188901092574041909129939810220400242723805436266600277247689672467021884787434552633293431960233703570995956833159052738802765900921547839370997689158417588779061729970240013075124920804235184906429656531412064920340121031111041603729997174506801991497537935076718770173698565409623998795231220099323537342504883840198668919977994542549320511752833759649274319733959062204790437998246494166545863825732500350454339163341056913891091748307064908284926117008137559607039766563261838319853485550332473304632897455139587549336442969703813039725309073726719290105448729188338768975196388899873948593074185226371817340452265142913631273881449905022932506063626167592375137723065062095492741069611843437994839330182082113528274514062420735535343852168543667030126051474355732072058132596987298151884040373746327195932516172426951557481483077686990516299901118951203141263892872790368763224695787507696116990370566634275775494309286661536686621152723871303604471107094500127372400565588654484616965487607603832585561648307359668287374710654010928758472390593575936106770970760240555500182339275616120332459681250609435914307680879065893236385989023620586142319889043517781384353641107844411022591238965551081278769986818114553611375005151739145019841834355951809350815110321790492137144699541677198634188790126177921441111039155643183941422905904823245941722780146350073649082209571022619097582924999425747169164972089065725579482295954995604452666143708425733102746889531808816949016006575492447834622517275000964861925963779797730771339639082694981365572854702888089165173739814276423466164155117831155186963101275140732286842083062937587270698693242611096113872238964901329312208803239486035407341955636533078015089771169855159220261027433606955260394630882797887765318736153617250074030460803248298713697908017227436920151060444506959909054974683355555143485134324539974753991894301284245437936895151517129809981179056113114684197292445459568799835679631379953112645792092280803817322505352878367777704997823625573129916363818409232632059767773237389579447063842894261429205513012721232538750706639228426855209780625551693272683614891178921079567340369472472277623459702815627750399398119189895009240717488455088369933715590251222626527507742378264133885073537236692151348915693575597011796461438772567174124313508314377723147184570856996767156310411589544469032212351760956874351819829008026061180763409688776867371820674565936229020735826345835546560001256170311075570319230848756127983364992828242884444094950156580456074995200763051379242405163504490534699822109944324799466932791196336843840521574148543758361063625120528503854480177180781121971421806054727544117981032293068128934107620161921081190802554994457629227939437601206298883108133077573221994729848439763499288888949620294936140785750968369152607658570005754576919074505192231305884319876055107052558829592291940864781855766430821659167501177713360028900306261346431111367244924758845494565198922920323685788269394090725506912182810059301302108409135249265430073836934986548795128953575005056227387239152083136774564392500742972979798119627874802999216065210341505822964999568335475605050795207007534901787076039186104500152020487141371525791133684604871036809265380452882605737650051049638410209575991722934483462492037411328034177057185734533103793454291697436567450109058281057530915745706568431342181915455234003858046183762243815609014978959375123091758420808043458331012068830956442423109876841009555146524922036131471636092014192387727385474993775009376346476888335617328852560269886100928107606185707382327240307701195444510500573960067903536146320988386788264827927885463059667900395058736694013130944329980597821194510377930145359806539704146446518177668084224787740976731765768372887229811081354844972058534280063795726903753532781224592070816951428629043456628208536972507762576379558237937125176264482177381867384436491934961730399218988605151816419971005644487051739262999195408117529729531757335094585381631262499107874045542097178618298045462262028954879247677304709595350080862758795138581984544787561859207651894489843400585979304017853847154173573974020720506870528680248576441734049039016958467238188352369656568966852069688921664999088717224698024759194898302351110867753954390928282855785141118371204467685760827979190426071649638070342766892514593833028261546440622980071922663590830296103009080298601139802711540897776092403926629875795544767568246219407621823325021052108073207556772165778604873928456608198117885010178715426506716774540529459694902384787351306271378246861241258401154622695853680809114862940495700225973323169853443832551673571528645815389585046512253952188592869139938920884352580637334812290670176738191061058965258273855319971199915789958358571432001981245851807955008831593074051107256200209642084648730703826563388817672735366957847085825962112293976407349435016595684160688128522788150476680339745385520279404976981523574954304950520001059297108434645972166894454488914473727809241520848693410150783227054432870235249177982760330538254046903310988906804264972688631484817162617253064299190684682600247112870988214895108842638811766557674569031150451661387863588457835173139523797176534465708095565167772422269291822597541208534034317680408882215404000526829370252853187859148172693447294118070928066036834749071309169589700680263911315606271072799624583701665747191650332455633991705443716405838030985820507125497182345208525940093805033428491546326694051976129372811870569355542055685596126343141325015760408731300842979668344552005655913409147612500611379390755656821938306042863265251871219959143462912047808413993910165523541927895355870766972340236996786225510784790676410685690582836244393472961996037710041157525476628312721960849639290930661152540596087339534030336732325058929101036075834276405316638876614280754256857387774760989271470787979477808665353239367079394906447083287862346450507014360273560784044802309187860334828698608357763375722085088471505730687156131337218741535217511902657923979998663864782665344175063235846107004950308047608547632533328858842655869568005296432776488249449094135910600483230627546459433133494024337388189527522889362524053753594479487339581061847941529819324661447663018627546111201022092709765275463750118651703207427701928947520263883423693287786657289304229205235555884774361388972589271603350975221793991524614318756202317507415058655098141107779062783716758578653515974479774219175736180684721974916735171622321378948257799885522969625448428860840025209965072263970409182356426469485296505657103959493088554189764530834011143597146895840904228899733756788947464823677116893191671686557851959595004448533736771641456106498213498629504678989503867001178445264536655021189387125807639539587722824056823276515056410885641363291100515303653943886647261953898138296121767775876687878208003891973446222110966264295247371708246707773757475450009149464393237700464221277868551677241546686370557122295452259248837424304430068255145920962440951303653271876220377744688283903697140762737169915441614608513134247920999372610604543502746390965553898238534315722872763789167184862138186963062695714887004825887076523714340398488328759105912770287022223588239810891984162506552951450184183132806802479081404454613683515859312736465612185248329303846935233685809631687623472228608609375120377760918314768134262544118534635822082435555857025292674192732611415411381928612981210418293135717306990559320699104774606377065028705040121582401691806252816684866320233119340688188199179759246048683514410120889242616787390952153041561750525820299961204711220729699906432746082592445469793112810555134258523277596099149969678521234456627805873773746388519941875158778770184209294227247336641524474700134864759720076144859084348828945949733388887731603732767243665350080212162968585851322729613911904298087504391606174710235281732791113887623029594386289769629050273171671053806294471414071988133227203604515865149466026253705732985387873532740538165635763161179642488957338721019912412157842835470181874637678204201770655417017634664185434178072934037458267949722895851922142165901512174952339239661711166089584801582761112309104438118856795526050828541633670974717910228454552292978501995896246628999621871278351051504035133497617604421990874597929383381742228504881550348933736645732036420498571010953023643986640308222803923960398109866393116771734642518289935388135688892477301478304352376191681949298223341953854974717660249126941330033924210909498677352568656105336501579577676256845661001541694351326225014641072713825823055220531293961032717341248206803824360471526103870991328236325826265184367205480194102892493485275429368762704826197511190392878049340272702379376037662707460724214440224517253580707397658313245091321790037263355067430838065091179460856649463369889349579711840820294263534180764605276558213318638301881731272686972720335570772007759182865397207833258358195232079766983452492396264269262169682978086749571484114126828678251835468189681156152876820566755438239150654349867667466216397355778694900307710451087279440744811755542288349164671312136519388634838253492303207152653315949338597260234591912563081380367845330221786778242994152136452413473025934182471270836283043735751272921074045574579948731580127577199793866000631642391657745783468205790165016054343674316195960843750902047110453503721720538082586875455710319419503034564332531051460134706750754226159071684926255303169438540457176049636859545711284169072731259920987661240654066297940203302803823633983553952162260502777679744424454641191805712120631157930792369528199382915476866652558669196661049727389479228329224699893271501685677998792980830012638567642983982297920750215606405129649179580393794211002570764545675663390928115342653412357792534985341440202104468098362774903943256441352021499629013299111690618605983444255934615430440686558909774920055398656030349435090374909060670045743580004012721560995522397203982600573000298547261219795213859742276507282995777502711442423660854888335158204056222160052113860843664712323945767387655251716931763357572652746582602286166087062172163096301667214587766012913543556763079993837431475381567080445497943942677536593191696917769534900714212327054990725754876505785111478182665196495612116282168404754740568639193346777836054034034318939266722068724116663093420053220858443307243295887460576934245198267945750450168596415039305119775423773459507562957821516515119175174343290402181099144374196729130265156871302900313643430794425356432937960952928607493885288966124289738153744648814856044325255765288458517958083727713630745952747964520243751475044552168726089848206410203822721261118049103453241948750435610119817576619924666138347117976408520761452358136601017663020558288144431849477389103137020331225055170703673047310716571954954329804405449384301946212235657470560087409367176982047219847130948549885405853152131028084920863428819648693540200035528098396172575684402087102204000152683010914144836569288379124837854781541527785535626703879308422305262599654329234452977648919636624902297402969526384679276746981465216307038509788842280789987114147915598356900919904911568152549065652821577788569970435693560719574786391205079233923692459327538209461811430898986778496315660135362377075230458128363969718069351392708211779259482390806504704308920210633729004299073736194361865945232915972057908056246072420016780575772526158621974090727058354915330907810362480687244297092506660672473187304740964219775361391310900210350631225829713446148675002220394906149611608158692475044146389124317438351228819118876448163765885528019924654492078052930947391420199339086570293425462315640269117423803141807573254197870380711861337640197894207821590143028966408640724436870244797203244849158957104319601154556194392778461695109312693509708566484046047208916274955597573097566199056383948941961721570209840412003616130006848525104407172877316068596361192824982722561967324503935957919960057028351051326231986780298817330537311755845617340434041164682583840731533210874671451237931492073898695292668566750888980538900809949128463168538295018610752180424642843782155971043476494596017375790735178849683048811491959866487427018120870278067627563965021515107761085948973345406566424059885514425155697225812591926841355860034119757186242434965192368904456328505028552015386596392111840214586641382536494884215540320762470964500057903771246173793747965588845552183737595084062391837689430324375695404910574468027385499751072087910396567788265975119966632533546867176059205230895717813517309708869934069370225176602657612900270548689999142762856434405818847431123467816371284693082415682555126109666269690112583279228397688137846849384962002815738114911172299476745725390781836188726596111801566156590309842500721652209999653260262643803748754588597851568102604968253836814193010303598318998683718280266583777672870873081129804272484062889132772654432765953278609292518544446116298619749093961547093192788262328666416118413044045726795087794626422546589265624891409983349648713832448966150941194349166443222754906570432466058948254340236603048632446674985466372854613138475669672084535883969812352748770030128056492600064036159421850698304689555139761323023501773456197058290262434568973654177994776283290197212259712012130870041203974144157303862285302853585069262460350005716267854204239747333305749607397487425613839613661156398242498242092042991975756489098537924545935527979922266743278310696386499484907811206333462355647321618740130828998726460346327437282704045013672076097869133138567008016852936729644437903809722133300472771594630455320465395504480712976220597237576900453206516151240615727761818445720630476617406204587858011741624526776375348972282436282773232580917340994010729373964514588453708201883399349949565270026662581696431197088650543326820380357699960554927205712558344387934263644581926728402998144102514491539408064650928274814593273384268911221177543500038539278320581375700576137631444926283162097798077429123172759350102139001865740220301429067350713852516734264623264342443697726884484529376374999919477601168033736171180707719955415630035309198411378406925779361372783633961221743802588880092003153741177785066814951498432656214698480594313612489646338121386516586348715835823543328834885872525773190064784657394710174256375493199175077231887799519163272933807490698103811359260577544750100635404130638821808138211334248369324451548167783297825149715740191200132704295495020214352868824216921614464372115190237888909332070671995551378038032835548236782511160995604837412924580116092306958480975490210358957702665672783645949631702586474460759837860979548569068438107211682346832606863975625111177262683879969663506827341415081051074135125032035956924857123679785512221767574527322621592094523739300150256628750665532311525096056433542547267037116761505930869419956172459838218588019815100646940999701003906954603455785594823595703265771786716905398804227554172965638585831320181392777501672925866686997964290486072506353949268863530296043860087738840467096877123745338913180229432130711497089906219932369314284165450401695643081807980860495058395114958798795437785259704475605599767956508289558027367038058908986291932749594841382452476181824157571936468814081868809235092202017679009659262062637090697606195805882833673957946782920815269389886701817357057840266283530181735392014891011782334877249472050319785576850942025373742307324869714798662133564540330787646266731875423592709749162985565858569018025515900010912313913182593558663580325665339639390055614539724721684918650825825152791207489756619523452134729155671105032880107974301787102143494879913825491548940033254675938068654976474553296212032481256953541794685698093800939927717198244702453356685080133868309164547262640117423718136742105594358299546333307316424131945704346509242335919084762471605535761690496244306427585467933478405515526117226733709561021318535704498718511195046586271428318249752036096048680059268369490069947148083685412501894155389375629163638421626688765578599902648859639207235493737673380841147528056642048634442012716605022784280459133869695758774805542873616524470945437836679686565586383354531684021382861861377295340567351174516006102367487865437385724923156454279048185555062679204115515433953390849552950663548552621945818589162641468645098874475813878184182847623750220205524918405675770190512262040848760897306968721155435405019229856038425214807759060401279362655066692225980804799461937540224496382648227977710406622259427325082394278611677022509112342047556989811077988985513369389113026480500322629219717617876255225207084327975950900671019437199122906755713998697234499993537285094024238742540863499961747235321568534596068619443086188614059195474037949019333283735620307166277287671702273594615169813185152501613034669197119542331042898477988802733211275283794709130135355901924559670515227800335709396971053392234668086231175477870263219919839045038816037595797870611621546505131729127595916246118509972583585911374149615407358358568627479524860312538275318235090490819618562625553306973769259413548486526016555558699848606781717254240453499590757069840136975771395249091736698581410691970606158275224999393643677731007532288043612970027832415002973795582347348273662184188035888113157506893440858287864838334923309124086427520495589666420343197887707776162972120426085071683123501987522494609774043740526250705363055504275674476291476553469437765319983069295555787978660396437983184149033071221900112752418997366931345276734114960919960129315044560882149922239563768755163070785962438172053921154509576792455893140743024402393016555435369861416640094873340890879908977055675535882050141430349379015963234856907371508661914571812372689289941720730741294442917343835799977519020470855280385887486665589215567191242751812611417050757310520046002363146646347041734345015051694961511576577464259167020305875088262996689335044057420077889147178743140614066439316812816945780921431717196679402093432602910849531139088067984709844223616471747425784283062338926988732720064918215868904464384012034991830838342773139634556329756088991693713236355820770805317991645603203485817045950890213483074492966018001147807327835276968712369596602003102831016802840337562385174513321031751462114270804081793307894115990211016669030710253235877513177593755211937288128722718538591014210016839816813963358700755309072770294396147282760114488876310512357476915003123367973578617586493791250725315897844800125800734228426179358481282257864150656237239387067153808662913078036620421223707042562286111335382676131990475633321912290332393170165217520115442251467834926961343990316370876304487991851188837072086553034328286645873932440942711459816538664245040164430240723215989575926516819687842414795586600241358472362287367219482741556062261124759300733555092903526805417603504115034861908475748499289675243459927139364283578551438978315860022327706357527502496114530621115456525519272017514645613176647321157002815209241932397679780242821583947574604573520393302344574796877696328830535721759017113513088174246985921159535351201921279221632289556450417307891253450447963357745966620813961242430456023618714971824444911694007704494267782007572764708038133249838112927818980509851432129374771175974811857153498763136069757495724486402202074088821524011000289896266548164855885781070319220304682485685619788542335509771928953525759863227788647751722997426598689013932797833285765515312712847536836134965777349549947676530843209103041921274023853813127321056651132228446723389891123817991615609124245290332220852207163323403344723747982188400562779163474724618752530479848888423778325162339017028976918876954042095104053865923997941536304326562214524350382943913859812254853296648468235432935299800697285312685430802079584733289252902154761402396050630898482748876103020547913458968582781173049389001131973767290823163018545512798688253440139482449611816195060585806733993132609878701581023158796088116778770552292387680347034873844392684807503575386536577296863991548973172016109921427816535566729030815168298220577946077156888624026251234679975506223304211159030417777378274163288803497080487128791063316316296134292370869388715192631776128215956685133515893916619036167110015676419790196879861566299581466068482913671040233416849615095864317679347842528914063340276463656139504465198931650534938365593416956772733355033260748303874360285564374732555925646181165908334894317911595588055791106296969134161933637799689153166904745280818681926224248333005404005804277770392076274340189842543196161204667734095189980488528766618242141357436647454712710141755115960622561252758003240802731680451713120634412488445538913708432411604064813938591241939101076215584880667574866703975794166009405739395333936645906952189862118296649769617756982101824534928035580999540556815614431951945341197546345198415187306066347307021675859321460084102866240581102254733861996396286433428856173153586827012753803438667677135172043935985500908047966017266130969654746339817607414175888609858676160227790059233641019358910475452973578486611557020518571655921736613808524463176969119666258066040466756871296376350424330789923149830235077044127022555559254136450132817452509405557123234900783029453286199730216244117898174445198129819818691330723272077255784226740789971567681668949607370172907889256104072528234946396021305405269365198639585774602600490693501440734670167342851576568813895184162521746375514633055407286891645042140280747463038601750253306577733587103681105770247427332435337248245053886886895328621958001749289523774369707289934840989414165639864795127887048122371832542195337814343949443386463058324501874213236048324776626087151759183041988769642846401880865248352577154115081006522086855526408166704413218944510522995154019260053142597353906881070837473790828079796603096556465143430764324833516778820423832674493286933823781137139362923662869284369433912199601684812755968793687683850533710583280275566616994239474880431046604259963394139896721493711537997278867910245587928770437105809969306244599395730335228740808148161421152678158608321398794739854212196574919279140380461410364027215268824305707321050696891031946041438773108658436612503115151665260525591465162889534435919986644606186651010524486814954392239198208124060081797218465168451994225461137128221227831337737309622318084801376021252098459689782649323489559372713490361249890093592797611491402535304687538078273476710277825463986639954707975517057686849044187748764836613938878798204721696185242920477812990592012767955244555391458396840474523833417400842919973595853900402346209822414836479579456019874651176253300754772587009502828431266652493041008246359622091861141800887555687621132264747869338793494295498801106982470795458535844582244155901527830563185927366849055620872725181132160289116998260843683330189881057822155340791242053296085156212024183272322689508952429787622355711777402777785605749462227176155014354760235861414342250327463295807455292047484868842133691716928893517050760245241185873072594879540129184236489402980693011229087967919191938637310601790369456019466471869839020700092221749203529498371094397832137751995880090147405714206108734609900565837012314978771596495869293460918889236814168928746776464590076819681816746383976330898218718227700291185448093605147783691155775055990285231599232724778252317532027274159150837793698089589332192718051373721428944783388219619858724559756917253261073094529665581616655046902600252337940393856520440243544143196456569792498610933581421269456371509291267826711889075423586427326960336653611382339738412563258283487077757373772488796358268699054658416719686232163225777923431658157664341337773537342135992046529140021065225419600272631640518357497979032394624551540885084645923828774752646459731853476759365799699042775496645902650744962760768248168642497498725126379853084392444120319824349551440447815811780401267145215634599097768885379047800561634552249687254572781825567486989179908014728972303645751909958236925604795530898827527649828195477769376545193215271600514714970977124204810303529774255399440998124940868867818973173267377899440686827221517693942400697093987577094560327149080856457033309447307062856353523683358606759847795621549959088935590512026205664948333491088416972219647802058066494422626255203452352847389057860748376173359364948175463197804983354889896203486847826150265911615380318239806717003404919235439887345780719230623253554158299824088652052752059382736624309829536449345646363609306058515288532824944976958885728016901486855112268851834422241974534330108978695711585719934839552482016028878056490203390429918067279245975202891009027596792383048555624907085730684246441864351322052765312511676306489563254579880660395252032558876955591846928005690326788738395070022146982572441908358317292547978437286382257245328665667899742297059341386292252522857886741744807196320997991937155493495557446234540530774612190935769678035945054487122789084333936084928733151574958814021906148132855732057046485201495180996424175584089025457989889674091933056859998669615674732457034805474363618838529050518607895872422303337954829726446853702809708904472070699458960801053653845054762481020146139159454064974907147786653493862734398901637395050209963363253030941346464286597804054598823965386327446939022191907638102277698140059797234552289596191704261767848529795031265123621935036255922033098662714037309966804180906776465360290156000524809895848919050871053242887163969181598896133527089872479807289677955334939423531822084416194447229787507381726457489544176969747616486574509657741203168511061642024843481605827913930827915001927683122659407952777351847628288923857395924409205162987272876656213624216968159876293418735743331421555570219222874782452097195354568028229043030457868897613244879727940833441872649151278327657335615572122838404382642661774189843994858021757748491113543889792110372576594197072981109366540136818231901157815231957419549193619989188271214383564033912969438007101834466846424068123466506498510946259419804505429044669785176269093161903685552238789075796851426813276398878774824679759372640409355174515982504305867376950787573141879040044239042295462732336551706946137540253407687025752173909047925039246962465467016360831698688107878236368352583076664234646779353131888718036452789523373661683224924415131304586026704316949905123039846039806281757885269978510408485714237812393008432312454281269851713215103039001255858924968930952623714980428488346481629489539665369075611834716099930625247560004356333661393165284193665148671735443285008318614990865195255735171468200766948353749653709722144945225315766733605294264222754563333674851796445601776141412692020817889295488667005142963890141559394589018063703577172916292447153228895592362617739805128243178272884436266160962783870038484317673707921683786191126734291642629827142276098563593062190937798424636649039056292987726700977887424134612076142749971805753498724540202670696791985554322812977248759230195401425704979963250851035700218724998690985296749142893405745941081612086507952388461090499397550766613811223297368892337195480331272463493888021837398531770687911191770259807892352679785261984798920255728883386015418212856965895933905691954832245141947983906784834225199011694222667824966843268344609847952676658404926648713647371369619863045384193980717168188670665333470357871571897618355774941049778355992665566672842325345448926433955649735367937004208542709337190025652855726940821559309446617366492883328841348950781564471169228138358594067257104324383509830318428010288956716256780540101207203455563513082278945338794711794658469472216430822461828266767227862468784395340414795986661916713077268428713875413890622050438720359163096206222574615253382904841441231530982270938778102360236704538028865582979268190147281424678830778885622290644869771643627231264994918325646328699016328927673820346089258336685596522478196386563539551220513916856600044289363878509004958469498107540295968485366503372435987268801310909427676277993938320306108522117540265087607734768805332690831671106717791974773991214548901271535989063352167273448893831743347609806845579902007628623796254629106132004212385601261631419667755027724774511155063224481578394782495321916498614533007399215308660002655240274238856238006734669799299013627295480341945138825362629519848276587146870911364220278239317086054063878010701219674714156234231535131179155263907515220003844866351151000916517906282727737121265323532500222183002490846482470245801670941561410461432236319605157347952162712838230830513537868975635825172957438245537906399567911088296676829212834563933368595417693659201454320240718004846492573479805531586346239986707650950343058603226711949769346178364560044650703883734856739625635096580795181791455029311657231274516478312647037499389990666554098631597249038904114263570664088570144034118908529980342867083482120176003326569808234449796355874501564512478475598153950107572014042201138574235060362635131638294662161361829119526457911613334374648470246015616667226751403062475761176093339460691599067199838913257013358051773770246302107406101772091893152964259065322876051647035279969664332676179398256511815054278601860519486634685712659897462350094945304279242302164582068556113289427683906144544847254587574223710303089569898441111405783932749167597434820464644070457524515261950936132402157152892693855219048102735968169129601316965484322961103728095232768452578408097985275469112085670479544090051112327076532183416540071123155711791397072036807015955320702467899470872197628103138637017909096892747813597418027894607265237879804539887682192117894578526287008818970568239120873589396424659664584245702360214279281711065422056079623969024885941827873417871330322432463190740039794865428514893839329278729905884988990165210042117230717070024652962474665338688825638912391232481038043099913517953109524313843804315651953492590052932615705345382291417695063330265757989430233674993193302019854598351122920428960264542390051844299102922487785913827900954499977443203645458947969486911234156179136329344476459657983823255509573440274052717392291296890234059888336933884662003282474927059447205760827559379295214534036927949688691467469636916935655456471694971699875537640907102658405213312249955325435677823628442577679420025838699681568291939488792307498126245604336950625923907072126554697377660479421419334066353668866977001754997279526919831421372054337398272278861308452165895754173404135577822971208012032269327175663591715295364742626129266214570450422410536774947430075125893575188711421070791326459727009612695354030972262941481308776869874043546192309200753716540921318579112549383340816481419439424754245125492922967983634334035375471650474234021254534900420063170326770998458787835153346500047403244134485133948231437432949641596319042800740613441669134503021138843006546875157505011917077651625056091562176555507608288481965536608037930557144696460184837304950001932375913673241604228747028226018178718526975147306714251971928416325344409354526386684734642254255884536145721435896999997673417211842778717340444757541109086937537634017153398969962392712194973608862581746224607050112795879845903943733038717157542884087636485199918150243561488131749779698114204298537308702531592100112637308104013896513589094722285718202092162536093249145096488594666860119322950584036778378023037279479260989426616717566588616792201197344123137779393501600242204461427233045967937726705761058227947099079003403524153268692357917483438423403674212743769141017585081863878551484297522861585453760465094916414156813261958683292680822192758360472661548169413318086210892403169980236382489355127996315395968922909077597811375243238012695784468725165345423699940454657603241704365814095873351673948216459732145004458336907828217027104083604283045837808455494156511409578575590305939735892454677873350922890473673342253077475586773373559254062010951393653523353013951922195527110037035578621590190355991998985937671011372659778755816658449185769018338657087179971234222075299062752995098439616491728233674068554810358735685854442233589093092950188875054744561330507474054841373068535654901367474769986859080033503590679823184228998942693397441200405573192117295628903866984823834381292116516686082999210099193842180039034607992208161303107055768541069313442583767818407008357856483092328398448915982976865766576139168033689551748359947866973136940957909854415153177575615461295174650759883389317426014309810439536788800900540103611438705473263135934834069635095628820380545402409662302003471621731710682427806001704100488966248574789404014175048264872105420502974627736550951294171721563189715832285562788248896428488078747981154253891043780948734878609293885454032168543419179882554753224276884858863571202161358174274948032752121253233705417477549048171907398178157234076512371654478876777816380341852128081043425686571520739636864269885692616984700680274187836187085972456967244519456851285296506033759704320064414307174300676471310203907182704954894594346983787966213139495072039758633811042361855446719734279960712827736751535816265282096414346154562909895528115610601437772140817239769663335385350008026228084970599519366024385356955421102971182326151326295152093146751046733743741367253962782339583367107907144545939573314374822675061649521553779569755451842174714970669990613776924694614713695538082398965618049930826950033554558676541160725884812363203069943874568303457636150135671437168280587085360540097606411428501342008951650364991488461637655575167613994401520031731220802068123775405129992531033286832866672377964617412086372987175043999396093756638292480264604425314069425053559050261692675054989484246172139534877841500805236877169229998900912993537053306631378396541946774104004300416288412576074990312162776235112799864801368785485473311193627671626744795673187532030895594977702569151051672924292036249409855822100666556859906836826327703924950012491526139605842771549081679804710100691885433423439573139615913943870659768660923377790817580708261046870729630078220143148671740659500561923404754984143496019971536174012098132991099571082466034714130363041432415638320495821184391579383620345659225234946248852978161762219270700516831764745634612080773950854813150352367823392606681069402361248012541209311484961630954784588956705323797984613398527634760964062353170598827982902141203936645486006077748648756205681821246792796503865916407446080009063369303262707535432889201953643966125359577410173431392216991399946198061702091371025880052243331641987552388921997802622907713781908028279431858953978932982427203841413033741626658913462216269635181683627488402598730859991815141580046128322171039824912807371133443437708853949897670547515062018675837681674364272732564416374071860903600956992421966529893377667889243591682445686559612734858983781361375117988405721951544190584430408725265458000963958634751250694098742910243038087327555942855724514982073008607653949802828810792746755634236956756717645906839425729109200308003548774095714275972396861074449738158298054783716254272908805459057836193997585875480997587873816761900989265391236262454023680968534527234350930594042096719955311873031912757932051164116005486800837060505683574677945416653491908789439805418308797780035391528276371296255007701752398456652862323991190235210733273126089256996624874369946223002028681412963722575669808262045127364053517126599263158488537883703866533405902469350214060533937687325605137815192407161713033139188346981241191633682238313337859592286587646919166613174298712680139768753735053176868253499226585974857162019770372852085582207486825679214254464984712156844167722365002037334228171229924606323114830701165307080304278695716385744224027934969213769836038875370564960766322927707088999331499110827891327815987621440279233816683802822115220424000639863105284988822760534645593015255895290125376931800614928002575147088090391835035802820887626933091720473300770304892253608270541862502443239181595973741992486662853506374343195973897427811322356677757976116933783802113869646642133940958977347731395528420971687843396842883683111028345872405432704293017350975363140412178636689355100112067263513442850670531941842959138107864428412712720166095819828331403578492532024725454541889485556476943073713896199515188228422295610624133054560262181840917182151086189656377963138534840152317019994338047336558463050532951674895105208230909366012151465639940139588682754017906553735726985172762476181226344626155204833544515536199233412303858293153891147855451750494489753725452339926636535328349459921069253789013002035774205860361578839617683624857294461204411264589651763097752017538271491102562588782581173766652455351968193959729029173693681786597365681486661065252769800548531011122905336342223984215754948666522478734569680237217046105227577904293416227296733238869278724431350764531362263000540113741363986978990669116545559144601276735870311039659559153429394976008859055468822892707232878957131269522646048776225357671698374188851343144454285656056239021305951365732460411813780406408301535205665351850278650291950744255666969326160927317792421745175007052761099321076373264488129117672282277535597993811407420910429979984033634543293366343129088753467451635552535036394017322292003513162070498658670430904873547255155714945455287323748493539679307531760026385153915458421274969247084602796715381312168619631300104836529090574320913542065861836981104968983291160016545844113942432916009889890860403793809902026040902683289529864400144854851703993031488931981347233000210549885828835771394885436437678391603134139551358029122599156909916066915348677916087753310326835314032012365596858624579804612518680779798750218682327417647995998775850377826402557361608735846640578710667528564773632428272967557578391967005827533925369266810906647332878058648348145456869274495197102445850066256290311153491209976615340521195592938441822856661842951737350294630249432396312352035622978005008201516448208130992499073577958982980759349219053270131386768848091912548368544196336522258639120638393167592710040474165704978831948798921120170500512559916562138489410204315225761161471571323489930045738271925992671095723731601568272955455369536320190359085832897543121540543283444735392557635963235009737094018926654413881416905541045746040107229748199597454207677953212748193534893782453679097339417893444952125836437920498012668259517379752932555458216249338848284674484750822138738866578068116860562268030824448543484844181448042921915295395064843204749069783550343554376188828080745274435237498837842704979867450313756751658418652297474480575830845085360916447713005433893457437613856207219875345909012386675992256944350078141483729128757971016901888672329189864801153804123055763504622163438849985468643442409909139069107183421813498508174289027362566779101384513278294439801171625287005727130852122404913985808163131427641947240005318422606231994908602901544953942149538394786127315810314809728351748105448356117723737262492036768696381461528897294546731854793378022183808246429119145532372491531826756369155519785360468787736379485006642140944835812088000547705560853668087129379164293285796810888522289563651273118677834931077828928355152778901931068968629173375585023590783381757072203328399303287945813171491598233224086943335466572998326637434253269383824163671583704609076112586453257815301475635863711186649196815153737190921823011327182465274817762189091892293711578436509764640323461744648858715323952915784616778884370252982694258251346139508423010877038654961515680780385924962757615925262017185103778657968878310873292794188124350198963741709273382093035892286074262560188618881941285897791527024978161844239832181245710776796794277904664135886294234057034356229660877052042583152787057638163385619491350799260185902618311939112163746038896662659039053604361423591203802093335283471825563093984960898150447982144160709317351235999377962318470923977865187694726497066034052770952799718075453560475541818009299008717816404282044043297327950641434175481111262969845084808003403077035293755567621900766618524671974625753933869959166592751913612022635444045778913307403019308994492899666856691532049429588377517812500113104668935757107350684183159294169474048102095518670109102684077779344815968977276694673492261586752549279376580053974947522806703037760311413353555141710370196821111891276466297132022470999318748743672158772693583832943767063629112919638736464058355276971013562033598816939354748603842704806071258631782704527559453753784192858297269065269048664937140530143971531227337840351372974642524169024123426248939116563797462346512134657989230732126413752626753821724397347957349116040126663766281680812176957664635285833535088897600037437787281221591904572614907849511342975670977960761872584803154079670616268800526507838021048478739192579970286081941307773178435472051530235775388081275929834628571205840110460722841468522553077696525221030397180751742186157294495455918048023578852275351793629341781719935953637411365992396922254847121882079347515245751974956601088788018742068145159925105093142098370491230400486772653247071991935163333248861039761259684986976023318189031174068114931429004615369389201159365835709010638372621664392603434200576629814017113714985185430551784431045211607831977504426752908014491415178425322782772514939346492232335752278545955772911172238547205955507852934371626256700062553737353785341598479692675204801988119154156266576199467875787211830807968547164508778250617958781745829705600265806705172667337300902724575211431897573722569932104427367928685779955202043295375690756922293463195416941578276817439805169213907442623588797393013874454442547812549408932068408636471760008906450397316687139346734564255492417212242651233429872244103857484587085703605197656248452240018605171116038123406495638325458152550091543933316679199628345617071800640139402397494269766865174948245671527957068032562869068460950462408294325529755156360687530939910859222526661953500060010792795078386801789677988878212297032132143747201383914269309951053950559670087153811968897022868426551371979146915158452415387134590444445813172878628328330533790254301313849374520675667556388611101891029812263938670279242723104475111161082695859960718332443357272732030129036362576046006530751675926347296334527000154362757769526477993556985675888193183178338538642630504264345841399250242283705411862496297169760731226704329694558309846597832957174151328661647751499389200915187276002806601495426937525963574915589356089762859808057876280684311036026597569800728521916156423709328316421994770612053991194513275250770378291618278825784259111506601113751176349257373221222327247701569448485624246504758217576229888200855066424571094504765370284005706686705381351129129271621776741579282123704024285324563818342339787748870005918598750702118215368962048254156042624534499384736340950485481378115592949290520845441640393274034679675686046404883473460586268547917047147081408197748218481867562080008762687169023986236741784066278407998415534355221451368073966561069992187230380491683753557528717363773391280125750720809357649210600974231737234206957063420786180921643952616817874494080087395068879067172304153390728271906100778469832173179949435909805203657467539094981704002443995756974664125258720784961431699235381082602301548738020550728648875732645813892851291392994671553933069362036741427085578336070079103617493688962239421956945506258303112295785632908728972698572612178665041734371002074169871412184759686519365268664603523114585818358564988547786943280591628021803705706099565484499052575338892157165966762152660327188594050875569965931910467380020802369943471633935699247563419020449415295766752407742737849912658676712491709909698458610200348870824529090417555423238975296285786948514603133549411874363317031277103541534955889490842841072198902108471068533526045619796589824067947016865584775655674661710318667055642205382847528917292641498963848714426884614161188617018405964712087945587511536261483027405401730377541592029609991489720826834944699108865735747626275757122263433224573050339344726368829567539727541559588544521826078363173144633756193245878619637469986255252179237106978994531632003801783407620859008719039404631922726200156194436305777619323170683937851010594960694747202290211499536623433543976828607158647014197433035037104058056281257919082017733719038081159323774444741552284273961720743678733394620023537949890251688311309205166177501363285260954087913777739279882839137124006580980228759171731353955276628513769583062950117286425320278682049752653135671184918184626764801233489097055881844755374538431307176925855700706956340380007427736659057216642212391700165986772236654713429099950075357182940722397080001377272180607662835234616316044321862066446757839756279395341485007912647142871364343083243391268883268907617095908128168293902763873285797444753281299870004097121211044550283218262353545027422345333183657159815408860425923207285883387880521014978538859882919370962894710654251356671862864764255898299014645979327569571685080561419690859352125118467215514211875925209109485753498027578008477620306270540243159094509973574980237433295227467389298384447744514674777350662054355678628895128131890015730651582699006618229531474191567837373193873073862259400422219976963843008253302000946281089904856642947333548280987153092596925037145999529032773448137943137022298493616875756834401296516143583437156663838388626971330259986852667442229368560265159785714194882935620254969604509055511628137136723614787900900153406804298633425958224154021531169793601129635340858509277953955429331607345669365045162103892223022289639069917314014605012155693310651211746265480527634649510208017593634710598795538051773487024668623789641267655042661640035114680397993945214650634254652438930584184010223758037195374451353365035829130040930222038503635560882773416405354430818817421119186801314762798041317675311132564629668969591741834543727811205994156417086704775951600852845735191389750062102846602353325152156505356815098647816906975319514589006953728992872607831633612296492603295081746419846513022550273380742401918651906696897497220294929419431258906226403060778407873951783316322954809635832383973841106342829524016419295891584442147739692045106714120888197276016301525978744526076962210864955503129407307968063951786363808988308934020454896637657350807263367066353646301767308702628930460604930669984089873836860972550387793140065568226755995633815425318078340441476297167006972698441869042353968599783276100849847645306866091383065895439497742533043321315763912813629953074404268003757867760199439066768302673229471035062144384860123777433874586768036321621100819876233502189049723832696778804710649240328040726451817757711093106195525094444871906265037648288526455765596776390901303072417060832029355548701486644507680523812149541606288235378540490661760408974434953467998114205281881409397768649107672518713982287612343502771684479007818733356692871551013605911931680107046259791432286829259697607579600255347111417790824897764075932550305481658686062009198862105574466660014782439696621908431200250577199971351476379012274693895948052731547143895244023844319679743697288938003168368837840813675276136263610069825260088133640370115883217383951936321323414183806362539524117900540020892240932206434820768211121203934110168468880925924026277611309454271913116619979378813531613731011794873935730184548445275780793904084377570456944289538339803331025585988205671195532066360763237168724845664842254046819784748552288618899459836622264703719848402534078571989317103243822779793480619641219219320584405132219742766777467036957136421234026789900345107127116516169274500811824416429004373759623166670703720156965248694342513825789618223768798315341813550527989552102152135312307183530340955361948523659897333293681839301433908173237053925277886884250239208591403342965722687033766836268918675719124346623679188287916636027207272724540773029168900176523336340572810288548596963006555614996624272596251261079371440993931003786242480234383073378792558517236979937823221091528380671411625262605444809863565418878269101824643033470737652273196809589084970956289922349377226495805846325275309298414513165201490244579032353335544152227204460810741436078213712435912780485275387719844763421298927995382692491624014686730173471235098358353987993296179365593046750959110643342075028811541578689259478735832927470834874208699555869870529791232858894906650026138100667294024172293502333295727196167245071884827044656921704848057886629083573497596474329906414400024592983319199295105438348327304842747930771069575792318910836124686990417278055268261770636500024354049323284052927309726357658932360340263028091883484461498967418422631966454913183558456561045389510609862851129135624502428658607698756550124117811454005390867084994330889037698684656341775190302582116999588129353258289306364789474431743976473533193187886443237077115520875957873729332381872189270472699618467960128046294369511069923748418047131123138505256434035511691332325194457295268924754257447359712021638577961073765256834033827088013503228423323364102637182777080008275831198313215459597424421979229152052227880719352466558171244973506487326772940375487314872624347446063404856869205346209573180444252705253837339055472161391608298590683345339466629217034075311619732640953103453875921361625358335494468395358471519941562813747531996824867074799035863966236953377021933198587480669014261988739046027067424558856624662944257726100053044108194070055478223544732137275430901986935189541478627167615960031041997066064147349792614387603640327188290072022462346922902485352448245701457799165785120557904995140150438369103463743295726119329117488661005353272365967076883132336671981381645043902366526539804701899538484151021998839141747943905274228756669286667371552547879569639855281717950693814975090422119968708443749865694479220008386934069493754620380006943903745857684563231491341721342472856567907997825576298644292052178619043333967613656817828373823359726445118367942355809872143581072746380435833244100100873859034141789996932921747869601904708098063073763382984165119130444460406605667428963201550270876839605628684666985766683455482024994685096822214247859373262474381934885001252891121508432453081327733915213961287800133384581781200085775092773508546295280709250728648451940013336509070946564365576855974557262235666589686719843239800024716090172980621036357034697835569682764654618202649570661581492045655863226028404711557198227503264578839225360508626764672419420557862612757694209281150179705208773395753630779009786693971142557379868296083282815998117381582939497640809352836825960436902783913802667708872906095149338224200585029544855684628495593852541272068191580419571254612940273722302162069853495045230423332241930900645959998788187778709680962556066419357720400565134358511189498413216104380646009103927176934192172877679165141202690467748677188272140105622822441505278390388083649496129094578243134386467708419895328833781804144775724617368399556592190218751819371800794100653855949670130504093252739977674773796555535718517662484404224190034818203807608761346470632245157945669510467679241974922661665918721023414782704712037573270428933468605007724261106900074971145619346633732807195072138532862593154044855455437345969364313345989525088576178727712070830420554572213530920797644968096216413898125778115109206931220757889167044595504831025939902710685121670488911241319242057006472158625707387996193914988365660807390969183383618039501725233691943574732826873329087925533739268883495030957872314016030823717456026591270499942145379082582178314279944820866909140519061381145442776880083428825631383102713499805708843314781454662247006622305893927047448159354822063616298844378758459884977754894674858157630702598851936289963448487873615253228557147985601037828903784013828188813161453615380807111162396940255024272093999772702875510607845725819475501677033543293385004539264860051542771074152248548933931391426238846934477918977269946344891693777211993343205926472776622395839672953551933863784595729281669328146297090210545761803905172423703346461281845192849704911329802416215477075409392874574361658892845610376260376182779951245518101015445569715860865430250787507265240173238001047501233151030644894400272417176795771997788888331489414297949064799829981832727326565823473443542098681390057534829020965629299501872554886532223875233227682107214219695360007828787067694243920995514697244062583608669899109816521743619066502332908635162033516130489635177846709563464337640823972728393207538028325316638589691094535775018229399647336015316966994113283657507814066485868897427377361643883570101190721312978411636992997308814616702477591588440359277290312290921033950891335697212972514192624868910139178477092163572981177458492652283526179886560109112578625168801746299755963727038952944572902632908929744153450846263126151710537085346676573022633424251475023674502605160790952907232170858129122213957656594049564329279953088597349968062328262637361773365794973010328103082339976920087559562336993322813784593682997264806976716912677156488719941073187725577287653082207965041007851476236004436227801096332687427870784135624022881328143707033787881183376992374418535128263273279798959733455857159715756885407982045356405483877054222788138573622299573828473902591113301245225234873684296261004015273831242373434004892925577482636788806335870030392443399889316300305444064133067797829171215123158420321573813778755459093773947035875256121010980877161921813349732364175318164753256884440309685592355998113851921848391400255566084016707988918182564637086372376571339140234024614511947407586275027445076319754571860645486389055032015914906796831002016105677209095763911998514322468271847998688688320711791504963143384070772796585658650200171258712487599420953327396591756488654906345677261011144733374645346825410826898442695462208108638712512559191833536399941724928542191487511978340013258314676079750644201911420196694096377227060830285520826805378148614957297551793049374709738968294956074989110478401863547770837424476547454401164223909849763246481608685898460920866557086313994855788901965737660610851469187630100014673447578548807639357097451374063434983362204447933094190580687720354525327789476321813548844653684279924641703149422743143486131269418175992546126012999958916717860940121444552857190949625233702675633029165761261038705549263396219151229204799667785788584147086959470370412779824324731895094502366569307826712348464514589852555269446614862615008995063279002437092910539132321248146547823772624360642915071745119834354747663452387801881618296659010466074329841589226707047076256164151321106663507070537687324471990389058883267495759232594236087890231537786633071123391085915741008179964677928613472173291680099933980094924410026707247773345190293230219763664934744818736626459895662373202019136283559360493823009988438302633566332975671442755503289579701636019695965018687838366221856964717034085902957624461236021667345648948719912431011887478640962500020945961613032508776439573842372149132936918274483694170945258878617991399043541143272775360608357856381615656075524455192112153120874765754393382782919558734165180462296341593470632223385197727237574954673704137246587913520339670969847629820101321285050634386094825249610481121009380685096219390397804513590928760840434287214994804830203746258883044267364236245845717911915990408339593197935078923943207534173132459091329024970852735962026975159068941326977671766194927096264582130656317596278936362767117034750428285800461601754633515179109135221548810326393782476552541337025876351644736124814315613583629443281814189422437159547858688406495828111324711549319064249630291161999355670768620347931882951398623203985387706597196158490722412028381770430857951652573196722168684912586991641506736985390401261816594820346648582785731270013368118293496565053141480289343204360570167376419715867790828713087095525701040758838085859154448890427863339957583038951821703599701618687603980279572428702318045538344086812214349554976972786425271281296024670152935116188077372166473118595040890850081010164338720224225000845208754518163386939934756331599543943441966557242348490984178758130161987342114685622436706452257704660548731304964088755931617116746073644528430150535691964775808788273600226966919666621582566538176078123541475929129406393668835507869168944613298960377104633445275745473258010796511301461707281119909061959511013714107292379106542950072241142701494183547949956789520541102209566790782584849849298826690646428716740833445508680608665799154623825018462357293495469525775371113171528550753128103931682147651037788160751504860952874389607155782873156190261757325021531624602900546924942862561198932088098524475021616142752409397961630168631951477019131024289628020771986811327307098195589142743929351184462123198752152822751787643375565796907809235875462732257953153938512369709547560957901645596217303412941070082454449679401500464484112602250988399140881094312476546241585626516838872119643390012411615083413604922739940010085970365540436102544243686713232500635628585181841496090457896750021899295984900428821777051789137888607943604426177443783664618876733316139413629105373556635383743138658541303140180804535057831632796187583049583834224271410856317797779358600337779332846540153770776416395911780850861082894042927595711400027219119713614303087688744912443887744893481588664232363530404112542895990774070217155531663118112189073220947562691306826963538462199178189288859187794169961894248325744093974234266765313959541219916913999384109027823149716555600502932821078562240969465766821111124589736966348907720876860980271927863261267232280825518012106525140183932352255071347055542214182763129623440352508246479309732456468803530573904397636488203182385339154596237800223436969913769490699929702145891343749078052701978241882554699546134523573232922517702869269488066310594410574802284549270989290028387502050292287106003157378858193872612734607081643701577239620408964094813030225425176414822473165600408347055340858146027117165435476684868264970572272734868303505729758700603244129113330439796955657407513814487073138408693698651254700920775596621306156280559093987121776406620616438218694175453152390546750567991709994903300013956694473524094598108048973117639037523795669154968542961901587751088063517033765930205760029770966360418591166151954042684621237341037113003120447441507260647166719156076915726310492232192897987091289178221641622426632156996699156410335431620628807318588380817603847821527416683758400996754957343854336066230207124279224380203013654302973191643798697922588209412868576871392148306920712042814771843779892388019776688478024597900372304245358197263554419143543671973175787291383866866575527879898492350723909377610523377533874149164905340484818394494141063324704313749156282141321685986746158199966272214541159686907189201602657585315078970944419303803607289124142792959846425631893369523534209895883289388423813363729459840094055790944873398564866082850372305515191915451367565716552215925698423790069995850256953692019841417577590845977759512555321099773227336431936681597008727814119947762647219407722396135194806761169968874873393376206033336408440579380543491697301321882205701698241252206055482616388572307767625675266322094072328541473814199517618293173398140360859572058110167533371999345145269231072305936597196357857187153718752561196217288186147576865085085177520260599689752468239867001478215840338556031836905390426651912561829409938928078926906090052668780931196721699873647722757985257733889783333728914636091914535415318839130006536880088377210824237222770773919794081302937463263866307996122643525310503925391343415310221821602523134086974246003056739982219065901530469468909044052933540629536497827767106215584256887564392901404277185013423927829707623859223544607772394520837602471804568731389993619859725508422014936311403140718272358164819965571371386488463302981450055429516715020328007000046258122004149314860365645800857917488169446759156888321939692222977955396911541352765096799382187915089411680392105370924437557690072211527065212905547289644947122148913626451750436119069905117055477600438088771705196466443432430506392262854047595714077524724649786180474063995421237830423944022496831514660943908198721301130637756124305528871373886262446719587454587909598559247428471328093374911688398883951193402014184944207068707103073617379086730089938450454300929773834392467305342743563163500498551033555600308275250515040745493274739355785113593920716992725813202393291835198368683904374232993783516280726078415297947104451046639084942900658062651066167889099053471282385979172372239874182466716828676827502855524537529408350938082920304755829307000322834002323862444505896290723965734802199799215686289314954264497576253275242321218790764602762593280886636602726846982435128416310833771302476174747108305661488648920673185747029479371576571412216963915111609372947028802404243361653952139416187863037648158349051308598562942118950260939428827427538638894223692693989680450072285095758691842943877846063326834243678306604392170339466653711339578511150880082766546815562387615527748654374725098905709587249369555149076632986335941653849470366120408419512912421263689700299938467546545821055665426594976319176076429948681376104246812045835510033825312201111706988534245663920856879202600525247712556527860091942185440111457450152996463771411317903856777765009597806289898963604194649687778594558533054391226059918545366302851229088847237541408038127013293559829095119759914412282493343171191756561661486399260789443533904511150216100608292492345287845452619227953306118042551358383621280878426046738288660774177008263805604716185567532052072618564816323374887584969778389265605694612579185410357048346435982766512777891469922672475315780537405633687983204141901932428868509137402633594296750261819720008523039228413159302137824842007039158646502447252431668043126623883779580180538887114730492481198991995154065371473520158008588216161899446744792155533487068139788558895949745749475933951112750681234647646355825175692770053366071861903196937419086126174428774762596211324340823040670424448450989358393785839441752155606621299503050469355990378413389956795314373518717162782710589861590796277018184595162673698919396334327591301152578889612376397797487374354835860729367160081043482567068727689007491123346672400383975600916466504370896406864155914971279744212259474804596924625840534834664705701737698785169391030620512374927188190298505614695239328494003009008933478346039556044123641865053746954289241887567734475929391237391894520185333412814520420101320116644917223095093569832004814327642669121868862108520540055577896237105376606438163951796316797637303093316039628615529241944011415696133679666261746385799480724895888179333853951499373847783908556709807898696722997592101679421145057158977382089727746854867813599474638259933113513306014959003873253853058304773956556533964329820968275883830396394695276961582145052492253695798929693066808103396745161718056534184759865502599857691826390440821571410972896032655534316045184698012739631263560466696793879542501924438950503285031019199312361735183966743182591993263048802451062249031642602342808196595219413210038897925174232874686197986058679985991065014011379233015628651606689966236734372152468505827110655688213864477421578781104818744187373845788788034377623532229725171557753033466915316918907267174778911490500361590862279037083378125847818422425029929560081683659391157767257518886132371481230110113799746521780295017916024857239819828851179178960964789738837490239703755701644028179994940211251354673679960543983833413417424767610508253771924548298914247786528471561194942010146528722667579907542464030823810091964553269536767707538332363781483745038289805791542773990761371629690393147229268627104788665910198748460319266260533633873484205914492182651944121983774886635278077417630811561259542513948087176834086568266081644973979559934825744169452800993096263442911460578064513472696333291929319266713916438161359658548843434967813860579331032250838493790904958851071468585244061386158801693288478938274004884822307447785828716289996861593595298166748951005761903245029361424975841282442024534197618714109285660040114994451959794795544299519450224425835750633949721211131083371249553779780923515003215689110412942627717599137922289272075138668049117457562187515939313596244837356522385404799692239363223518960054259599500335565945128501540143928703337532053127244568920614462045820971039190064142295330656992058874602493474107771893497951178723197382584544205875602121961678153460955501352873400106883672966124059593498098691344138409736583403644463636242532036151834797989102115819093181329306501852678075023051697973355572821619597272038691184857801133909611768878256440494047502475581044268550438577613499324362723507099419248449123258057053975559194751518696408505962807931784611961283771046160610913304967120974078036975121199764196900359874127888963991081819507547219620714714977397133528481611896627403267571016853923778551015082402400286700052699911770773645575242075238344826993724479653007794885696681390053783629292506348351921521570474307058873939051948945130244378652554259083753494812795145870673897013604582847712604571239240153922779851005959056859620705557389009596359536423228348290306415118729169672775646704372145615371982291429704402689213208514058829225179669206978367342439328974337355313460625800865369215724842521153043742413857930327019759797455352701087609302445219861380792343941251618297493421807920934342741601168540498998469472844744307721389320356345551099273665658179486462926477908374253539714842284627027761335572225569387376527510790942835757360989925617719510301154146507612504439151339684950885185922957210762971525677160196421013751674800578208545622035005224209225925756685371500408031653790545988165351666798366641913434803591156761192137064871307253492672281023785617822718971911129958510619962044249870310628826489732033133290640093077067287698175712075305144738596871293112079611015833489548786786655514552290923898213131222337631365477216649731307988405152926681204653997230294619326938769272168908995568298982399848896157538306544860241689163786895067861117649519311855728108558578541456888219754276149852592225689055041564133706430307657423195492282840204895176501562760673922432784316894778541852639455822274665035031654609449544517869301798506653963230195172244659068691974709357549450422337568494358637818323772968461769679225766104162391604914943499712324934079595102092152432190690511585186540263104621189453018519535971379406823923050668055676100215832302185656418596240569158533388618406804153427312703925357479468701231734486399343625650572018192885923588929019303970792333248991186922158460053662664088005901184422200322540609275478112312869877005916466046545153180811545227228608504018557938803222333384172592854823603805378013470152995805421768051923433024264232886244012634809304217997945856285326549035503809435719583760469921446408144250022376826965546706271763293985932178611026492055063374972856754588861917125104860800173047720402689176378024150410707562683737729036588158207742845044283758972824472978574264713213844044040933753165695893879602736269228512066072721143088715658021637417725579494591801028827833427682111309889587625388241219250525868081083621760115149620729801617432554837002090012000344473981465159275300275436437200746816854372210598726751624987082504265332851372344506425274757672432620413861518847385102554967153521810120213354264171833504278449421089803131942122326204888149234309937428528655776056526283630788927716058076685319360891213537295033775115119353616292785141946471088097566202445487862634711276539836379028267636315986804665463385497666611608263660891432901126981385574663337023040117509872457571535476059416401872307512117551941026378251042355518400689617056336391931070508740682049647483510366985650154714350785041047381782908522267519160190723036131473733110379494564232325817987012066309395721981174320265263717153265824365263085182257760402682102405740992904272106650249747294595527556433286648778986301610423584054022771088907328772539834421361597600996634017854318989071919029306179054177386943284311028011598465639008417522720102828102044504766705931786113927506155242183688708355510536290522482231292196371154532343606791666008063001568474465569442834098298681463639431443044602700119452156771513056701817839568705695748027693564326107378432842484872479660583695421508379227001568881427311936092581728569080404326567887156314028149801091031712620210251810024389058241423342984200617167374197903480960496310393484438594461965751959672198770784600847183805566015752279670418299233063864930414450008232141915396154738884476954982533289898218892444752442957226554180179635220990327420703883417259077097756242150295020117534238660723275728115933499263683174959868364767269694773395083647343510623730574929488502918580305009327546292949593474267531618895613862459229433766520718766077489154106263747005943514160672575475912144672767058681248976110435639116496494665820242449774206821878593886223462552806879712150338444812094274597774647997702459335314653496313613035663357918059872614988329962597235273711172752534448305566950516177573557102629528574860529148422549068862101496444935901757983866463415319936203820120760787933273832537950580339248299644483740055381964183709344146101867710612472042540528526996841489744430802174962408360000078737859943798882571476319531384986678502610639881531728321258798561556070440009776697009494306150618993735759844291821227092581115598991979403999455037619349068181798516709345838298258038337830454660849129945135984472229264356044070166899740932873553201461740423090900724245222090880210738093650342206858391757674466619178170740033643592928059989638440499494035190248568563045881556517936195932673335841118488731694362778404086040670737673398263487185554581768199291940334957527735218424063977828522678030933339645964735467213924029803664299884855569840838971780491916271131713572073069559145283334684989297426726523942760407643928299979602336575128865620245952024270463242043785986140347512637887974035224117606301843779419221096171620418052088082256506660423119153286739305760776457063886117727961407009160299735105816792073045579161245723865328088319607849021624894061246851284732130566058233660968471515402802501794017445466919044387242121099200869513484794311857648857076128446438838406568955202642307376296873824950598162066680804778754002255685473810912598665650500689556369593350592608557681791353621143170200219676440868588979624904578151873039473848136488146007833176251387060758628755658065323254608656917560806542524679704494216935677491612726368987399057161779955509660137440340425420691415933317061594336957047459332957124254091979986025180729789026484667274051413770054175998373692877334090251997672126759597056777388127654435284039647341539930853660400344237132776945628518266873408015182831918686551600724039915070315801423729151716426558385636260178056087307583480625747074590627264614553395503723286652897061985575620032362170187547037434470588896461097505576615775928137789585976161338234539795301636571767307390423591111570361534792397074756231975983895730208734606803558356974506165872226425593407133355283543142901805992256946181021481719330584598926764496035995280874158767140543257386149457956728425124521352717647872797837528711174169838095790568934327971511533855911005240123725203019029562169997694536479215709328853553696116076389082720508231940628330079501523996201844629061054292853186834980305183466810497324616390512187168279344801789467428956262357333907271055780575412837835861048672504418045859539196007526827545085520339313817695529764936657844601471304206540685275040524032121394678746300478885010046966809106431458094793410116787332637057048732922420200817111711600210232056483692691128107775109994371463615200818878743015342256000731858763047243779109005321331120027439775478553808694178879682984622917152537649895296465752438051829617649778045818364247764898932558708291257721027144685380713699406228410193600899490785357746166651925534775796859051522023929479428534186287451770449416535328335477172303511348852942991686121434588982849130633335434493719069921887863377570801676539736483220154977802610616526767955065437606631977482908113434771181449632536035806440918413529925750424117245214578765790113238413375072509781032050462577630734809478435098764626666095443133757300894020755461487140288934772023867304796788114800055117076269815038867902746218590586830769073981534084453352921414792583904606561266965487877372565173021729147411197817565969572203358466370840872334904812532336576815954794091970440828327191867741119442672598432191730009673481977437598346484645435459928334311335591972352240462694292400544746906533989760973093964400634320333878808238362457346159317901417822097119251517987206638545985598653301774175980153344585754194447316346785534008133789600760466369154435002868607360253210903520311720071430360830000828618605794793228007116915062852692815698515304046139282990649944818686992026757058006873093280014461178170796242260877928437094628764903344098774841412371472159825480043966217590515362017691679448942989985349534884333861547807964659574823808044085847508945853761911623624226301645630629821336414254883503478173912905438356693170098237679825328457610828394238317386474971850339846148714557773188461810872069596676810877851010507357698314907715571856419549528975722287907360802933712042130445038780668860765988965604784664843974461834722289792214145655779401967896434030150718287994331966762136679834776123859656154556920405641820210625187116114262879586978216856525740039413542151290149408977919350435726612186285909417900389740978725351461787185457148942172576014200673745600485824461084584779662001369371525400001172929708722515262390493961847256577042043257162012254284164105151420176322753401245107174559981574844504688201581064980687011353407934248290038641510303568142415172476209115374413934741142657737737199275933092406006436756745396433074963191228539463494324386209859810714340945885096644116335145781293240786229701794380905423439548254262351577447941270280737760333586303996638330261188685340302165266210888140616641399567256086620532088318133999454516117121101238944590478973031702247630063338656747436784068233592374597410276505954852175332453927753202065197427786086434389066257555164607947656105225013148255592069430343898215874375431004848096220246331805143501781253686141231492221478848455836129335286410519259960957917915312744835306178297994517941337088125715980355232595468986514996533289866129667684483909303790516878262142692561404651591843047309819064796931894829871549721971305432120279089715607189990366899678569812571646495775506102597914115304857981402414017246483327469089664129713405968043251651145161202524370803327126884828410726828601633827918621804714829372248065989602523072554575596933784641239182014345533696529622798444537141312747791652126849683839911403257190437767607698733775889353652684754033544608789540048803253458946934673046734884160632590772958882110112748077146269134113134024106509863800553589393156948667060173609568957157106743457334821403450851636427415608676762073344292784613483361082733050547059138898107981937416790711127855283363241715601186215789405285674279388326731805877838233145460594792856341069792183763856914028385133858123082969862172884861652993523839986406314061270013916786256526836714201923683492627120524236366409256669825294610473029477637363516995910487447388656177985458095789804462046495778174129387746590235050961163384503002143846509991328128890127226563457707558239302815209618661036069342325833200173870143532144042490930793389191774636168412446892506279124306464609941134338271157770921441829766950977655460699851372049492156608843464944851224871749830260887661191858489242856632480547772957086429529167924333253527727316928548570989270922129322443551977108070925654705118389446992401627725663726669699696576930068906322577386781008464397030375331578386654493179102212654168018162113546195798653502683915994905815727305028358178180654665271436082198641935451477283548804755061150427485603802136616811579900016550034257951954068793364090563270022481193241145952313786386583932420491696325459659028676653893769585704084316300471621654434892784387030218444185102190027466754510786279862820121575128155023936017889217332369262419690877270162282774870180206713446617444424330477322304287321459446743563111300235046388393916934074390301456495856182276254197274720475377745076667773819972110113219568219667724824620819917503253723030561438463635899109404367223262109441833440944012633777591706301199994716542137897119369421701378308864837939297144015887031039980508954307059672326404154822598657898601191716311901712602602292578266455063327251148331947957643305388637942786871676538592724839028828133040526246544334515638180478745659035787487933438359052732636211532289904544889562987072029684036505039839262576200585556529572026601914578592483453726307854384489375244032940140944815278011742031209277095017037944849757922747577743155106103608900186913732020374106701985156903752658390061509463030774536724907469950878168460903659407460769982628618643687879576081220439267237349670938728667277705548135873177589401578264806345956056653070101268155062255308529791992848171493833327259001701489312696460909671737412572506422937982399961129500022389235701802224631051519401677478636815326039959073357253590799414180247002000099783286614517969401421569841021745495520474872811505957376367252194085808123767096472973072734153213013709049141688724989920744161992411219149229279941623557270518555409473967567638350289665843535742540619906795799614014396222221067607295281267788974593209431916816578341361668059788812106992372571796916884793734541761420119551630278924727040681890557194724174283374844765705237212599589719105036085055972284689194233793334758037862127582634923691385205418158376174803304398965845114637791563952035081678149005076832691487748136522982590472187450714261261861191324539087679168810572936596416993308147993576026383297318494904924953200009013038626927957958520578710299598492072062454109024680843324796797823502001546375903118041377617173948335662709168768699388472451997121857164262620385204385184277839288512534541187974561208078317440436446855706736178270677469729456370274175690738520360272965115994086072099658806675195627563100115065668215259968190818719074189041567098069588324882780860298028742182104335873907721385682562491315338284294960387651264530385348451157153680079419479453177095520896611038773092214698192692164079998797408751323878278950279843501452674539068741910608729905852700209611776649994341374423392623859925018246770011715184682428274458357442741737611294227895397873697350357890951343874145440451766300685611613508237741573780547485746682737200465085693826791182130307209940141037836669831925238967323634013857498768634417431993800188289065288731056057991870608841281747953980747226259480297877227502932309150583743957780966826947428603520528108422203156169773493532399260055886506367589522080739471542912718791310409654888768572221798605483244231601467774391217041883485029163244420817234343868939639672544521719669280737689594313303195592776313704504802470185699262882519651088088858643530682559867288078841049346168548423423084575782791232696679527246016759775852585558296885551392313966260665110555180546710682967280229113614576405983439571520459265894388571225955718540756416319670811435231603953635850119912644707050339361827510064177885373546568664379390827828552391972723241524855659901449521635379853835849114181459692102964658184076203832646511266516021124914540540692014775404265647756198763144277208591810491596733370045574239573158411761778965467112193724975381361750321259849396258797642682392349541277107467158537656953867623922846370613015207439395114881170672262621508105371233143195032154371105603704835962353269922272428965572371091051508352873611617989352203037976089271292896156620968016409611315627925641589945541402275971488271400064995236334993103909678790781788863966624369704516615136990214156426917935437196506143036273328318405763403849072074689680396007676787188919068575444548872850324152537242134616976137456771718806743091261225029651256331682391736333496766044341370549020402185696588694656083292602111686524041758191651689049992845453776196687270481605836964299862240148146472047604736175621861633851522633882828558819347870043222795766371426398325471275694295316765942771791232053729645697943292299825446531369613545928769834047113811568466881541153022297608913135716758523472301435535947281362175551088817241530521148941081443426691070442015715008880203301213891403855470922521673356577692016610075219501383016104619562796278117988709852775036158002929496857648654926309428990392169994824546390960730958745097023907365964959990809836738944678562681955035134157583089192005682871551365145961008134900872835012572658703840887144168259235926801279256317090211046937329719784103413640585528828148660630165589691740093813298589164429748851504641052866912247845603746005494597083899973586024535027932723540241970092030863954343554533081111050560439784006079949862293739816552620806622380206522899186878015331625776901874180037489464740430516123134938335884985574681146204115084116967614579571553998567102640437866460016725102470605184322966046539205947502150795379734934370529841380977815548018319839047872774010238968526138241100191145944336299456858421687849853968339377583251394833772228514379323187263960337669831438438613698865496874950662139365345617695705044801449462933032287141996214128536815549519708031798144636610152100071887533286026567928289630991160699622776016136535132297227366554392764995754291391896276476349848818686859154544764338946669068741664210497025548861018784240557118789368082908237952286224062093910837109676613269226544099497246999145163451842171074544168298416196189632409137025240733781054798613547424347742470880082299203810926425150012352960540034688664168009522612730049314256031478432157395108694295600735979748265271511297982189468472470010561161633557893362635127909267227709423453151296070516062952069940915867414282241391416956922646305032040113798443466390213311835058934260262916917961374255659792155636808042208248711987014577885955416175889604724836516403080896683202247996745629284089585899132874418384593063538615371679880896440736768582577895255833337609465601217406723912474140368706230734173865068718142703782365923349304613517529427803393081320385046659890401080764856999838674663369783590033954473053726968762128676354610782629665655248899693239621238504756499203785779845589039356052739798214061740940097638985025790503259690951290149725483198745640094174229102839362473447976986495209525924122511913431145363580001986002618605155819864310914666978682049348855152690700278714410520812253763967982364569154302498581519063040663358010553894857315038891235059096245869338559630420364504345981187263761016520758534733128632054218704816362104842267181406167389953500138316400125178428056417496493386245648300385948279106343114472129711531037035450946918285740320380674201008356228186526019123111804387712968406907046359866978069301168773155156850926597773209823355661882026714938287821184534341601582886296264858403218537438555325799370950000317887550082101271725387914293687160617256911938840616535840944310425521054733321116874929310629824567400146240397914765441315315791617285818153833582356467553373547452465611126783226054053689339506726201355363795396488762811484338126799272220748057224811177491046143661906428855205378375307344982853720996844067964363277459636794422732283013252652358799704667261654672926136375022834020865514373620685920569382851556882626019254279035199192151630588692893698928717150460803915439665835821443252873522381120144796227235831999882900297099427434536322206044944014656975197706735084248814384539625335670515809760909124900667334291630460077596889412344067805227187369129569523427030060331495450828526300191537305742016669085600381412248011360576625627859673278804841538362267971279816506350263439648903615072600886339425248857340178190990837797198069729923116102304696678478342787895848494842194589987972890549341797736141238151274817913214731291119127503264541614659100554886701522155310728530550419818568021509417271115603961587610025666202673255503618308594370934064184711408362490591384237604940394462210371174906456667511493115340127336501306313724287621610833837379736875210121568124488681034028815525412954692496030738481122944980651163945621817025614777785959323896323991218877124261875182850500109048397328964043942810788120697984653769888001293969280996391320363416730887846055223997356925836953225737055702410277850759614149607061963323234707676675487478455034355718329942913642591780615567603939927829369534670324505804452446481151152431028356825681530872467282178385022170072049468589499728558680097047531025742062915540569084832735443953979824042206701050445371712247234549667185657365717462254341995648939176695878117601322712728095198629547751342509032100765070582014339899831583274380887759944294599438677530663549900436158530588833940704552061717732738055464114126766349041397463965592725114820768648239995032035714006572376886533279762889663411586414266039800467474879211546687885269482849124938721797345810981280924006547532777468753477275714585591228682729355548106198520819685639598032151917882612997436634404317531255162062444102134647945445276103932639797148690366250227907286645782881591812984246288704788200363879185734990322292622501150731044909027575223943759578132716810335975802486753413027892912089807736192262169744779761124310712031909433165620673215276031810450294080038683568713444007012040706845809726464341572909642730167844109187255452037302901132531985219993128202317754848106513414036486955817714654366954194438035116383342949038877328626306761585185484759438467212059277513248050671974473913631934927159364147544509056711346890603182352350098943219164740242730733767270677862893437942141262257514270095802685776740877934784844590580475469824017858474430633835019879077767677716964350936210502936927182409834499944503411291993066264850935394487716170598850582096550770299188890882941152543579670543845627308036039869363589737170597454312094920280363636548632250428749983378807532135042385819329092534882704224045445926648218277868450224906214732867537282658572034158870420081668069303504369942758725683989571868693230827942654262416036655058138499597876338814144105839639012392928686181825487762750612589728911989617013340260399097636937041646212347676740212040066334418918973250149431207429726384164240541441600184448501984185641118974046022912828907301801998077542684806938829779657481949163773085051157046394308074204956388259610359486148218146174322489980216874447714728528776495191897313197217738361095179864484663327041723432284483758280818148550306911420355534446745671848004753813972420702834598019985352761625980828869362163496785155953778401078699419196192985112988344755608046842385676730604693460171527583139078788802624741197412114142372243792853285664811237767444047507440298761983198954870608916922665468346986012651839562908131641417510756656748105454755979762726541505296585695840669688602203174493585894553261227295796297715207826717089438453952505311979193576160391062464098210266970049022232418189549922338228094597351684941826848438693803032923094602189014122100205534981524329813814275135066652092345212917946465416204490889931127272228353733861288109013173857764441612462605002517399647039334073877547600778755474736817789903767738316958678780427082315393694572269111747125794963601289741554377991224044505143182620677408465254227025989699261479636487203112913142179404810190880665877880451588940596651729784609796230862293109204607521670557844538226349689641961775724573137432999816914398798204627618299385910674986453761391813014299995038042869464301053210264780804613130177878021253391128598615637256052698268782037398528260779242514380764768004244321567095915657054921224150183619855484277932272661835270010105015657479568134685186807637068173835589088869099359506331177178755622335147857687273953906239922736302516216114074417431213072905445339808786343294490872474521938534592012552308548371948913366424147353376214046060736155174737370347836428535686794090234423505703385092652269407609023325198445427137124827235632935072872040863778662572163946761288643096319357633980574480717067235404227041377788468126784434757553481970099249170351798719570274846872672563955573045849775705480466011006763430658258623302335871905969847250607444182438985667022189897976317937497807849630643984657463336170222966940010130007142472177807305202901709106704217972547605392117897850327822449052639071425038609604753186550182504429928117357145470593940701835545941003039884538924112104410632771885048468352774076882810507459562746160848937525003134895623360344040480797187332352663045278059781329432453376037097045028596813336147925098644842217943312553637566486630780394489808480311015601270305756252520149745587593364907805181723066408177805549208786325179087645113865047572056443020727214056893692495802593201936451976472586101503867386993614638675434478127415916095942491249668628842046881399405691893571621852083557498668797685375876246982576782233081038075314941822747653988037608581054123047845801195441352033937871383138949591271526910374970056862042247704814340131531800306604401186290649255858672351437882013255877664672116761722221500260158838950644622336284871921420934013911881685471617473112155988287792296520004253338484471610344347390592045267242604538309951074659885590119015517519889655524693716738044624949694861518088857130319720122185397097005518187335913140857892060953525047682880072911721112414985218742872569179434285971445142782084643216658704034406274581043962829595762623060301445691854537512024239366408411219486527138072686430501105242556093643030008837758893686702329319401161214287183754661347264564087976953999158632364947779844553695402553279188342840845036843351856490299580874525895836033967759098935716242299907526071348504203359250439223111624022664622341739042475380680165852330274274361608146737384415753701129190964090515873059335494212144786293220866491711578147863412011604803977428641399770531906465823217452271542799901609769821419680922335030512162497622035402207802357836314835630507299192764225578764354779276498192091039872791714542333599674769561431825457826538515510038570184995246102944183684732540831675444847998628543332931876009507822489078385541082994884825567761727960497533145733390973929743725899080020081955956629631992963079460116782178640159169133187525118716078609892891980483194861795603458760707011696976321833584961498987518841593506575295821699496773428017408580136235825606788611202880226851516929244766074732810212067224208753663682314270459674322866751158895027831137536657040136343303621103306962553168927500934019312172768652777831400637968733208745677826632027683542419001894088213175098808319515780657114151745184257419527816856825320319439554174598878966517847299760743963617679022119991644268910533845387426792062367117858043336365515111110690320980418278402181865005726377386573912739793860673816181487896002997589290836329016175206067717618500700946783233322498603526357367464415530870142063435757004470066368597577939444945890040886553338016268832291869067074509362019993279187435848977415994642285417186357833332423697014715036872726266164089584462674949985059595837741029545127078036275758817356450408701979927133451754422732491763153376622775210956511904436005805373700952548182453760971320516745080948539717361919163019731357396339957993188030201104018490211784569455971982007240482045678869421094228883594613775490514348030342744770447509967116142443773756894270419051256967198993928545487570661234374800039928829772349827561723905676486568255767965390455370924439438315097375553815764465637906984581944773322827693873167509331619859235567731439505673641502119721681395486465035538865228306780364384683251742481840979160191583706614103077972680037302852812165438245064471397782261504791456866954354063050234252913574840431707073625600868110239734622783371463895578400154606145192496789942769689689604671255964750829106152234208259502624133824823801153318654343625227788433739557091159938262652839125235090697691495786142225301709884671741972371302268912215509016241710689331235089594163571442879682876603129052352612057826559382795177462131638783542396812469763097830054576733018695132153125046539592062394511437127842432847644016571054167799295827859952554511434568406291411246364586517405829140130916757002086267655477384066896868855016524291929997757776478838082471571167055082690040342841521907835105273767041925739246735884938011825353264778487810743380726995301782828711198158828344387417285125592678567754107959995089716645047527674364124882749580172342856077004674740398004656305928346303707867712010686177393231900012004976348828104851642218791443969704313718791332327553976173374939101427598570812248458859058717252575740251362742887320612825512257528914374723451115271014064190541583101887891500429106623902301741931973123929274440706485772350046786398272665763166445069895423368665031925293602612925400441877371050464806743956523461490427834103932186112112116028655021850801082585785078377028209670705033589950306641515046192471301987114832004666058973002807884089730454416022527797658004423616794630628148312778443339795203955739849012576966623675367449701678552114888974794981901963907627781882642324285559654971832946792717667676117118919935015570525238660331405800356351580135238419707718737685188832254976329929806625898301691598986438090192808601832966635297708301235016919753125307304636922246910926664162239654483627787179359931517929707185889103238998973579048755849949503655024196214855260402805441677869181897245752383108805381837705783364152370990097408614570174275335812718980647937908717240298484899300427827642388606070417989312967950185443770495931414549884618357418600461748286038045447203081904094846712157509517627924211015516149836159108752141449082093987436173910734096915256128769544561913532131411754744995908498468638775911307948300446855537263652638152801572065805788905780005046833331907243346833931101983354664774997790677662044762209365814454658408507000310248668381741943338498505163254154031504140455727072941892334699475679974402629502656076160625357501289571239349277658128121627623100539954569678683583512657030207656654092907361257327767785973507888085449663911781987627636957886073361454969251848112166469570749668028790055252132602046333338294958465830041854012111194222453569441103775799573129956520422050550576868309636706489063836036552050183719029661667907828045934676813380978596312142788186093256386528056937925824761808166739263901934558367351410853636870271092658213653620143887232037911575535470210942454790558190334983073624535291202875883942939599454513385942131037524086393008014341781368733453086869721025429816764720958437954432377278175445019235324242653875972353600521883249022703073241579199399154350218787700713702594284301305673931489489490073443085867868931793057251214282420102805513971251520512917526046236929169490196150337736535079376855531454434922417204121927003682726776161651596441398674437489052007786579901061993105219713641477797332467741764805907308145875156475061944096067048938782495814000434173479311987230928602506223953444924824332066244765309118011577539953995760882892738626153323693100441349287876216223637882386438265825098659132753037737180312346091651632408104524448587488068942709470224499168366190981915206734073615376162965515047041532864978186656236076522164950363675643985046035066871919930955321159109220442188176066229409723676360040003157313981046751899174060494820092040046787441940422389253665223968147656621551218973518674371835984957958035039816139244239264953192008838242703009059572136677771645240424024469863556235803026036482573208993091982752237083023013706718976981592723911685360437180778911985519029117821661133683621150631426423067623922153601460386438198029975367777113354111950611864588840435558469854751240776069703591451864923274823117096172696712853965864177741731661778994610274524203584991198557617270304009793824057206971133788383701613746145167078269379771044375654560261404988225001382755836990257041848589287970111220584006974157222080604701641723385658258722089848086801809997837887685239076074500363579578331273403866627920463265843197482073692510686996947131537304467770880252339029460317982444964741966868773115484485736443017312311832684613078798911242838979696759260854863464319146842056516073874951574034141182331116374140707917723669092258063410526764138813692343731395435578660108960449228526013259539561403474468844322955497762911577837183579082123320960880961685262348550834549350189499800991406438035740769226613882210304798557672696328052777000246090983767616894508195257841842241184369757577105987867458062862330554660879074993787975870643086856929513486636701003418601684391377523517690665574745750299075816297692307596568492242719474394472332559375440880523164873647515195931235680812265809557473928332620806047234420992323480222529433168402252359488159232251161046737957233610599084614189310035679967118195467557291980406499756964217438447494815033740887065223814638012299890196723392397839895829044927830971074513252208738758697195168026626917327263833493108124122824922144336149112043319632213105858717719857018978879783114601296491067687121532185064147055956690068473310488319931243101110778845103939974703806774270155321344602089710785109574516668905268205747403827720846583660387141839448044470832952243839157786918543491732775234398911966148442283113788796154262373092716710211340874843405637540464757564200542912340646072324183098619485377864904601075606248878704972299590390703408375947978885770221414684756311603420713798473524070405999365411320936460511268233402745670000514606430526154292087490170532149613080328283587744095544668270495967247910548031497934510173361850836313167526202368813352501972954088249743301857554057930585040336603546393731420212061894295936233407091072732581331366219876177980599619232359006366418934185392367571061637000821405751844338686790205238531056774416879823898199172395831813161648924822298802463088067068184045446861822596167473414343448123042863982385867938161619470817268622387658693846803444433777445076741002063191919919714241151252317104459083218853516180304690713004448354556521450573680968965735425244105118842065144725471129189145105661801591714400511124843968811083225955356026503016792144463806409662378911425851045708807288827562493526712478825616846182663520107716381264089582347059892321889452105445597003269689202293241194363848188299791026423687265755164833759505889030077774646542316511668841072990638987770121736229624102730506706513166041851482386581911222942576451737054072207731964580593595747861779165577812875057021448711520287677350182080538109536469437606539730824079825816672435977181638843982831467603969778779189072129187297828013120976689941663021047922489534833192252703533625380929039440652558011739921041603500021709836447942779182515984659344106031277318819584617916891076903647690673803149300844599553688584014261244091245422522937364900494450250787325102697037770947248953914638773168753990422563605881282040040399014281215045607757252030419148415392800943451965576638460007166389728078364863166175731982910634286861689051332805475037736880126140393707499722765765857070194440711927040970936682927403003947476915984702367129422524504543219724422230433252586245442455174372136703247310627585566203600192009448268321126916611439041038485441897770525442748549189959184367141489850576881575578878531854077794416232843945095321876703318531529617993539054735167145582749555934403981164384969321338091277746816319069678759498228060947066685601047465898397045312281918142323371583317041868233737466292678191220842596390523817392579181379884294597372847786555488198666708334051584221093878313328167189408741485356087972599908536509931545311517716601823399954819064212694338420855947405266457633519085610462698722810853150775322000653339680265475309766561775010239289421240456147770455755820759787517979136125538955737178616373574198390368801850870903795647480715069852800857285151648753294052507657167101028959109321625879416092364315949727105630968875558591505882601093851485497384099574058536328572294963118478580184771431067246745629529796344937635119668032132135202161048521054297081332250987009086773420997574068308360992712946842942788779142925143399975791147888143587843357444397637600451650358152464969983073666524661096762423776164588407887832737462435008952573505617624130916542002285706788354806376366449660438553117330837759331011547511661373049305036341561506792524737034853353693392273244533320746025932284942984016963475306824479229213099251188833257316066906660417935485220067078217745266105213133876403666123259085360719619453956798191905440067983463265352201705794935636841438823033677094419603208023037531877407043306524065025880460223801406139658336172087227699677214955503882985329443258208636611673791404331226977640501620590259143319292760438455692020316621104140446476147494530640412712941320368188171204809057385686281122540778240206304989291163449423910700295236938357074863267493786332814927233083054359496300125881977038227403693161157563217683158599034876467410375043257679530839275455411456129410053376671830776689014179020420466790230583488499595439396840422805630428424330075657236205656150112198773413534303443080905579266591965863399392742673173230981687234902563151449905353298459687856490766937708238973233212963015612246052467426213422617366256964274530624288761930153268637975524433294889107564042299547182768692578162221999041534773394617241034560147963258833197230653763634440537918236051487570621775625307230006750703143142440567835766702170180894929416158566165572045742545653097326522919004120705802423095193676800354960157059930324345322296118255367879657723391046003763763760885238060808082612716292055397468466522984059198431621890917759004807059113658807125570498827681023409325552582993543486241473020297775726927011835759184699542618330039582101585407661516603153752056284755886398668728793259618013123317119697070924983626315641021878023605693338428246221972119190699113361610910784392934780866798913985251359047735338475508174853824841220809568096919065980862952229532460124431146980393629765569811597003108258688426647424345943006404112495700714085706164747030548138437462413270699268027194952836783381626183638670803110873736429232477874624007596972020735159980076021803252602926338964637131248399295050491494203759332571219995694258251115757503543973400554489366676460632655050412301914661172912538181686608842532493554579171364941432035333391224049206426823178393339761956757746491061593461251363859407472360867029012248849011562271807297474825328523411532325374630335965928342319543095220518988706432308790471848292337094912847568456411163608187363832712217740967930709746113849605466543420902586786897985843817687138158074917972832834332713089991695559151873089713904002398710051913425947452709184459803055097121393835819816166972770587762349364410861265158225490908365918398774940525424144916952083354363314690942280012120506921732857412135115219640921594548422793050539401514187298602128997104473129618833918838998709390648311418689064138980435778865156236680997558550218906319052482400388671778295750484045552063420391408481452241730179502434914067900226704184183896956297675859893154083413364654190883242350100096591983528417823652704970216762619823242780215830393614162554301719889192478277582152308289166750705178889284473779568111697560089389445181284629604147150227958705513370462989196155776325133012374042944406998881995245385390032720030011935957081504232370551013079502952876726832868341706280210042151318182506962678899157950910378942212545077899450831192150155836145779514846314660096760503682746961344852411781169090053349127449432213465521709303785779369835680762148413617402881295839613210701162156418870548073440140351104664820690501391246185549109170433286382234965484030201408943666986722986308820537606151464893281903912476704502763342048242040504489117600686743016142677437705832389350856755306008299881464898069509894423041321465417171531383515157776512548008555498230780074820450961218740491354475702982850379348861259341745824802556779826422495757156991452619523206933294489102201558595681329355710494733232014665482263544501965047243772761082602575918581381589424045259541029630152145300700829783480705886412030205478219259654415053229681358547466117913602931400904458412214119109106197848500114327466787987403597305115901760633292509492920395274538829238777191219109402592942378887501711076757829718551796940333911218178989966975128065293496053561717218942566967005512828139040312013844843375189422751391965977135244958762188881227524596708267104924394121038291609124723031302673473087135773886702317961078823521056312870070280327020241256648402413887569498783700986544575409766724032193324045553295926230818504794771437633106045634386439556761266105981530120598521070884286968667645110622544892074719855485306127332229717069957958613183885433587269272112155780639578060702242615801219531159515756761275880245731509047753264717710001302781459198458609388674677169963790126611033592365470724566357764792754077950372027507615418549319690142750680056449394591831389991971385110077453325333241834553433510377850535006424626477261224171022661704812525918720918471673980152064702443159975494995498437168147160728840723025182425769546283711129603772276734935320475267150750088395809674799230676094881284299440454496440185182610093814413645552006711042565977212479467305460185550110358088425188740606505842802010623957865532885696927288776461348214612252979459424427433493143760336884984683211201000257674223838656200206507186949341334773504726860282784177692214131553767901690331429839720724155677139522296242246568634752996014952378492156909668630802840418057407553365748897829973122190919378098223215712643002305050017392291242224326095443294324267843869619246513626854726630634297526144567709893019051318884419619266297905366854837340193851067104219499837108358750910663519590812909740646571740781233491980113599376494804966432134327293151700838635917445553259299733083043240636441330934586392753011323674236538092154927286800555706368083935779479179608988384772668940533868469351784819010233111176912223301944221113847882635558700697196896056246758372431527912435649047468498650399496318851449092819580914103066088707409936324414917186168655066155705570789313205867034389797847356860058870207908393441522415925315206248385414999013280306893444830516764970032987683397909504853647606388632562711609919291602562351115163464071537003696228447463616637104393158647079455686431594803167607911876420617926727149056549986411913784843049557593456493019284728788848025403911422390737690022234533658908314626117691386421092266572976771263527346116012740092518497525643437867873213487106602669635989296042577716925949082602307353806747707796958097995265819889726131288446830191047986007034182300091804820111476723436948693465612500892892143745385077094035461822549682062463189609528894191354047968267117745502208509305116410082781337616137621591900951338883293242423873236611319195440609613949885436828229263079551096508291435302808613148848672806463033239820588011658230456324347723913131787852241011267809545270639637250791967298579554224289011945775460243327960462601529415076823598361784587142267521639592278848633443680792672616509718209352778517778666722334501391039810320700969796362076839684125580421702105751377498190309801649069304394113167529966319650395503201388345998419125147566840698963800412631418684734644111484647621303302333907828696236174994088933207020463549100072118423092644266858352827886605471320600034665409570263588183618231327044109298020094108764242606025402804422201649756303475862302944807421826655814576305929837858467833799325752790621669011525205346972882928802846313907605314912569839242527437996149728703041581818790905563463446620084892292400101085895442639062996155643911240077245638517437104984404455134975845227727095603196882759464449952409772758114408962367707198066921361436713502083789478373154232649491194196725569961735100121128927843029902284121806163091521120856590098181659086741456778586445865301345773854937264098775491500410383463786943238031592224970792856996954852038785503263027879807040032328737080342759928740246106687410026525092910786860006150364358654417511113063166503289467118248230641645127471151141920092510466218073116876993234375117761452084753293780469301873398376988412862600641537660512250201217546743575946896712925876895590746779974294866075870082958189619065841397236876723827896677890231148302216835089650616281099266139347234670679497956394899100128749421017885820575951235675002920523634610217829734257641491000614126884321930313028258943629147124052393099830534888737893259901526330788622124398623304386710085910580141107171944210878131298693405642047726449828659769083694462597433014514228920323893012024974120815310844807616981593057080119213351725078433567880829124724325777826115324195521492294702594021934823676091886282924354067235570798544001616451264072276190587385552110158810190236390936540110881895023299338703656757268741267558960583159032591752277063519619875620481515770062898872957592914377228376902606560452036728262654027301656594774457120746485426846328404565411736304612413709355659169678110379668898418813216211156727767930632779465928618526179861516084396526910239348273778686864063385688727777874995807454135052135024844911640462912976364752479927752691345374181709634789186972499122435437640644723492459667972686671938269562954582882349085370909615740878245984510048539867531088807312829324173671441566601728647519236421402615117476651079149653993775488722154600005811681218869556828624780086447969111423518920746985097974815838473430055274899663183434772977217404744857203553152485470446103671122808848935583341899833741666915497591130901727758336090823520316246768616960473306793057649046459032100148286644918569670912615259617201676667959043130586219588581578699869835938489207988149898828390547976155861780360330585784013839926025468680497619118989127590171488878811997120643588738281534760205480889144960472760380298628635486269172000023839434461727410909196560036953035048757050705994369686754823300654988075253472867590950349010771965136575555933063776491663182831819296815427797810829204600836682784779000802195828694029423623185648176259061870818235685212291524848923363919726496491921106064195519408107330279991501623921717021856305959807301977116148752108304322470478556888900927390278324457479938639739945877794244647324991873664384997865847085578460030464712890282211289973097946870097781125415746464887692094806760882957073060313925054264731132299704051515833248834951996113690567607736251714812121249991050797902895235581852874850295755259157185594300131730314544069351077590716029818976404880964316867091573921020601384994656084224036662786786736412284184263086041730568807688022158337111384090321423908044600112395225014306128063369955689772395558638875571552371256244259560049930674114733016831896494355545822329904203785617672215612519981104280972525019767889813144257719032824422169736762698911394347935799483368175488845577833114567488454723656023782355704439195833483549356817951892621787978197107056148458583291679680198492792817986390646395688199294765172745219850035485685557872279827764848069698588860989274262136840977238989317146295258484202661280333678813575504548127775699965458752699721627034333663224868930782822794971345109050557502033468106201548298534683149654427899263123635983488764640111600471049643010203743472291150082366311203216050429659255865785320763935449734979175856240169156031072006321821760726765558564735716111140576665762210948524032387788478364974215238945905640590879940403734620738533756544050193956399277537230628648460533273984981251091434604831012360637773321278950370487904353837501327020823923193199515697759014605879099250634231017357380572081566265874263845390299246540772473495512530065999645309998188157377152814432062191304916161708216903167617351662119394518264476721807353249121159966821555795739231812059302867311791959608821130473361157520213982368554504654732525051158353234719516284237030481339311747038380087000508652423780191483216878781299825299157355840888961099718932140695696636621851680843415233523361417332933510427254948378192940362064596757932496660839896112884447246535754385967485380326706768987904772800997095277903086874408886538884179070189853929336139617437810907988015443999538323086520011958593421750364499474900804404327265804090087871858005200704490997408588781493367151017100985030844183517249214928772668660528829331228148368442652339086600517407957762917966260453048663043584528007421156416371723148720807317431030916632891706257746647943134619444224222535623678437686910398890677148387360259346174788045884866628676083629760156508741551517048645003513599669591708838304572164909934828878569886826003796422985157671913288031569227286111599446099051473139041498605633879466596917463751445479163744632144249124926030624204392818622791350685044515711962236264755106444625421166528972134972160234424913456956402419928945112306753668292243907250173490309645699781659070299647986854345708007693687394677562576319060487868418489168035365970785418389976756865706601979982785763799088166712833346562490347179356279278067022990205483471539116510912771071987606853911885388984106065958189601182625237716456960709390098405238370620938712148783362448357102959249345240376492255595334030025147029225374061870839026045584407446237859300164430769498549258811333522287444225050288100211106009387722046282462152840525369285341332638629518457844965296403151412623419360405017875589829199053199693123101818233693591736189201926636536627657537345361424147510197641777385749271675981319261961018403076731154618361179292905636577817534616203025541619684462059498378644129666443150572063707005232871154223239500433284166627155363824854367163963546746935480207828130044291394436473360348381675377550981113795463402418656643681657299989531268597452539210075732531402166925368378559092185898717587263880729373670350222831337941398058591742805426162271603426449670094622764102399860035767347562631542360263924927919561263862628545027779723258706920461476835771551474630348886900394321434911370631867080220324603170600264203802501426636396390263928796510729931029924026327845573327489648037338950738090265628255029183060228107177911959423854158232421858552799516118373508906644800116817502055394089561925469038188497013718307907450793850905701894190038024868177517799101072097513121238830322964018619128557292483368314193267938929958860331216629842596603441828563647490162866046012385550936105332368872708692993480237503515424484857979814083441833997041414075503093059808581594296127550318601715058447174464712147607461347111568607031406152898574003122735874019638948595141547819788612904639587886546722790306415176653408720239173568553070666879282205856345835423548725826977552403880234527197300906426072214707516697136790046081930231874554391181711977921030616228935060535776290730968223945672976675446397701660980040928899080009815234208085915044841880309879638435065641252099552945386178164551070171118304262458144894345724010052486939534455982366978549203832522559490251784577784345877839179870995527193438695794864040544797721491041292573578931479946986812516403741087699261435552508022336969253393400222617958628174779279093926492640382837113262878915772428380826513252868398326664393600111049133294237047073498352217083085202582357211891086466403356316803512827035336470514163102197533131802182579782176921858862020765205791891214052140015440329015882600670319639020968566709286059770637471458490040332876725130840594055979579751079662368445141752511187531881283874621285702008421583617584127448334020673835025249579164022487553939065406504942109827086727991714946879506754742589226727170232696101533590962454933714119975426942052399288353997464764053944191681318368527237155826638438904682483306545241549830423916802041366057884609750489391977737777733418039483071031269076082859120020623577985958312338947065731069410882879484181790096063886670340570433565985870239511815477505933554106881841113577448756441566198806683707638938598698238785708416536276008173737612522486595885794855745401564821708957149276105922729884705387293959426566982078702442816649700816676972261189813046584979787952164622492286864499186466284404051405556461008051563378113437082476767527706273738123529318181178247514183952881219428147756306378448989069519761810692394576920430496759777400896819101788165782426016567576666236236130986945350870872757653562401161027524545717622679409023628842170712308920748669742923337802058170727219368341481576401051338725260702728855937226197178955607224704138752857054700394654740307243532565470560489365294827433374964765807580622129926694554079686110364448259663534891095968714349333528141930247827478029417493652895487617151996049822419666299155262200805432514952232693940722082073674432628209295723056752473781967559973999882982639704632396383510562379204241880951262862452549933041333515139244624641864974746900262101629852809129016483375342725678479201991556939135932630766597579036971732731651957778146691469159421165920185309107197712456875966388556060397544816515641820720562834813355884903239793496950039502901084910038980696123237386414183975958449385027492866529067299873205027332991838146661292465499715690836483907805166523193687967447145298280595889722184906720760183071962941725675189821104641823376924641432173157806376081223992213834265256877607080283194788395892185777729390303709365137499267571591284370354633404304334981103246031992495357327547451906988132791540289519394219344783768867413204718246991356753394476991676045535159931225328588774359131647866745283871576541584111730620799839350292252656159565220566046220306440214014662630032015049273390762288332327677518018843520902419067700890358086923484821845886399127482429810733589007369925796915572932480081798852076945458397710356646395295794794392911307895532170516837847805518033494718662644911347750032293739311100694858269238184728331692415180946782092754440709901766875704202433954267118590732487531280746280213538079471214865142105087934672278754127690525367422046940614761085524542316009710819388333230918002482631245121872296470367785569772686683637683922347204910316713974346754707720647755104856539959688096037358604222840123004415537281903040231414332483207089989072222431915622320582720445012914982768208733943139402699881787441178557587304325351555288400805114993135860512676049893418488633399633026533298452649333587907530475373793273614312609968389752047028912710254565236221507873221933113855210938617291951566793843620014049977317566586921567795893269069144270463115748369345652399337958780752454164389785826603868729442372626605486701730982385940141714710451872796943384607884223837356923884261795064811567222636656925231896869108074334933026071307909723499071430821624435203070779859447827308542149998092985530222562248426381137279282422016302967745477408762690480756919603706730771326347652472022150963112960659186415748601828233044382648973567691883583924445963413672456359596344785408551036649558099017677580958362946242457636266530688410657425141178761428751693019536323251790620418014369677551171411622340932716588665857919971368201914991091477811950648240694122637641138977858978975054228635709848076084388245004109181683948862082566431107837445553618146411125488950646769031976241678210139498267320985667353541481716842443688469730883229069981489587397698639236141643311881675734305468771862409596402322900336395989168447618954314355747293332862452280152402307418364946532083741878165992302798582477198668439517882537818747953471701952093609700488297269786808182134784308852458103573627371115716980740290723421011450196740708359038912024694284850287310017491370427473673251729775310078867778548878442291685586065902510805530311189165022065466503290914238665090949686380648299379942885886466573233988795441779003574418444286438498268666110514878900394260925698671583164203684030940148241824654501071440313828015591919765424198043715556817909014276114027548395331706926714447245148228213279288509598948502654090412532658151117791102378749312472654252468007262302440037324264486294732221792351351665977284447708423732354434434703391890493259057945292584178517527227752668894288489191165879460839545538147981626831350864624147178805623641144775500431209414827321576069651745936468758435388194397724293399356962385483642022532154843209781535423763886583153701421169429179525233447335906058731344013533930391517166568667327906149543410522727655678117665240404157568665893435210596581623785228631550345357267187928668683152738234699853614317384636776126967964401539785612772891048682592037582622958330702479515552624928225906043429692359228830844865626407446194533072815589859861360390522437785501026851282279138568232811023386206822450613771617008390302753980383924490154157968754569518629888016220718207135572905949437847047658824303316766064667227533704948786046610515770461026578269337279991777808581589134113182461266655979665710730515545170771853261695324261668754368376563759281742694281359859730072702170206138842235921721295734945566655755148421824511896868425128676181562039989961564841965181709988524936991966337994258956588889770845735804351590701027609445808763744237633310483781806416487734740655008418878032970784623071943938989360057633820849718536781857536637395853418947970131682558737807133577967830980327668950182410830940462792243381880571569745935750096321640660936732106581031810400304476735951645188376506423966020421820065656464931522393964194556736022764425860915503728235491455381291474713786104098219953576113017135434796802774586971304349695084434765265854376130865826382803427970363385038925276497333816084262611173805598219266711549507943507820240060804053559020794985626164759123293409056838429982597946420369589878909862174118246099403567614969646552991628476856206245382481206512934493327618924652202189515676028330458990950683065353355403787565345089163640942890621327303670827431968995097628854369342630777543093971276951135318421687649175131867117433205023965393334879372866049267797654452326341388699839098957577378852324004458144583761991039763644807943445063910426319039407702989245504674212826103149840828323194647963625298803333180457768757525856670161696755287969582467400044823303688319615923078173536961936514740507722555450970519054128101094767914630117651297227331057310501020092322611754141066981915132729608585089044855532275972481242606453642661547332102158032098311507786090393881233222108800404293615531778974823671602474178997501713680249177640223738872509608328291955573530775326233469804492881062419390048913882991859987768748403210759280684244319875665387944532247475673579086614466082924311446397528789921967655169118430367741255618080068854898978975185133785129479104277506619849750341560759450128270418632302944565944411278647300883038969427638538561843798207165654145689719935310598032259677323148283109034072831890507965534851174548092903543376051034551894054479351468457500092852918492097123017273404285203111937978198104144855437430441056852854208757225053346227339693862490671190159945241401953857909233430112514967616720243930333495428562079692061970146642569875043690281856471733617564729372669286731864372344628210096992778112218209758576259898505206851983512148727712224595252672933096977837084167629833279267178107127674168706270570533738742082391329671033726658800235838943186266192971370049957099292094177976240281835177409075962115281600990236385812064509443811235084167939021285772228325238958482434244022069232840610445686308546712908733922247774231078596219539893216008652576260218815347893774056648840410174854840319766441530356561017899020055883075933289869023712464387571522152912731349204048090848266838936665048203506609284710419984578072860425386895370940665631098714262333656531143974749886613913162516565069611540752943401334321152064248760706947527926773645957185227781348856248346393013334769911539323859107148346777547852241300176732330037985517462411237888846818228103428791180673544664931432306544249998177932021222158179370881179016819134890296944441319578856592601834521613215895935810648044194092532737687998884641006915071270453900793855224893036495497885937106952094774973525012216889058832386655953196358857276089921642865643485680897086599598659423034522246996899551087906623252673522197748040386371942600542412475921238290588777140609327557524108280729786389861653318721487531445341216243151352752162903119277364741811963218549124147286002738663596468135716191159744212073139985531670933476464855791120184842809177597272080683305725670891484401898371476570523604922552557776056000762499209647506244178992578289674863707418592403551998754950130167676565705990305649773592964735228356066978889017955645129947870853526394649154180319821888815022057169573160516133599301062137515225202913549624258613775487354743387055485056186445975568039456292961781590224443664637963834163537627055036814733889486402329970374341122039416630424161840270639129773681191378398861232967829541107708574556123434130811363240230700252836161965186287474560118625130732979853201794194258939535508989524401749307083641721476667631796083835304321959851832582416357214347146366819295322281875570391866233982253149020455606721932088147399075570278765401614589452819421948227371443760778313762924333590170989434336313746365266860021206067605998895955265690864544289834139252752889164044238934202521552279948233047439455484878846315813582792641649968697888826177093121714604257525094951451475058652083067031294612655867240705000260520572154882988844804461631180955758816508306992705824828020206419614090470846167378991110553980330245802163205852857813868674248133271403585713805234055454462011501826754304102950305778111914902422664761725008245675455552210750310121834951348006183005498305713285837283687648184722991135017790658229903483724417557863242682315162079975502781541922361183239394534658186403175020883649061113510933495853894112722647659291019547364100795662278034864871610828488089612375686330226375756803055945673166227733187338802414486228127488116175282563735847732024630158272646153869157973318916082239270148709230344391944485345631730946891340201527298741326651936741413543134551736247625404526017615570381075673427693078697800711699620444052642796299786928560599702232738047603638696020483120279135663416012265130362239651104469990801574705815785249635223878129608667147284509178759017134951170493662015176494994131590365424154073314051001268848154870732544833038736356103543347155263721535120086397914409691717933586612807728117178858197353240453584782258773972364095408016067189420903162441479298697399910625019240832695784284916430314181493698229375021655720904189000517571936628916203318425321157580998204846471808190565190100357498249714899255085365848502411966844444304866867952430445050010883688216145437587369198655736253776347156333598276603928380957946793790069783149515069118255095087123263559320766710207831767228926562685798605125469899844722825577090825936053197046525603586640852719509998268110403256087370673099995304661167347410672832113880018938785195850501180011188822547279449670834215408610743532914635532583571559407990757467861061860379956435452237335959153733511764018865340341237352877591536799512970670990600858099109070854524114577071512733416305425962722918190157854876699264852949779929593583015911624844720302211762690790694834226943564662505410847722958595017791643683275122991468398113629143171490811436283987845263701839702826122963662586153745442007827353511291538919872486289548243180690615608949180174170928247080354278720099958325382489824977649496633639209870870389254636249195545569514696233945784089454327112784133732492978561840887323420371903939656898174172126510475823097668739938859112309739956431822285773139108720866353006994754632620485277252108985391965324901247223037378757036556329010706289694842278861238580453635024895290651503644465344599782097498442751853238056318389021597682561125451587725887721704737909337162462091311572873822583091285776080826823133157053017122673679801586633306527748860585457675749159570497464987538075575530010948422360377779536984654413557749472121073859442143871118245392716457721368603404403150253865464562188257793298362975667331956991936828060334819587170854508171505267796273376255782477454184379123861025884957038509759162200012318034352255089607605075019213438957196406806521243007976135424993618351531033266043149180599675420920668725894747472023257398722603681667786253007333532754741885690536486302039366512166007466353037522753938974351560467584226218308270031725658571162097107665351408878508106187261169597871139012790409600812096494874726638936684237308776670586392574703492975001496603472827635120152139770947898902462988728424705609173870446335891528167564812720842523215397217904583867454371741777201621723585709083640795567944183985730525692943006072409145429931398977925331077891545686617285612813318870092234661021773732633576401291300076066613110378229225914154166702122903424786498583843165817153595465825945656744100669240013482033019501096842600885983493855924316390148563100265920873108399308531344970171179286095887822604943764515010055376834306700819148634776572424649708762164922688122470096252622625661186881858827963149179945050771409365170025118256242958099420884435457376577410832376507849859039985942478455592282907727244994005573431906120558032330233558309178770939001621439511642343866370433463504977707025155177482098977517626542208060464986612843965379426708629383866957944549186759357200155063401431117506251709255117081616024189589107617980405351460441410951182752298793706160614502802070618791591741231306843120616478935735896968112888826822523049662538117468068731140432547565352628174866856412567368987014927666090264613460978262162203751277748587509712442248039667772737176052326979663159950750713293530411624921646742213192838280738141432289042104283473986639156262520124420305623109842192923195032071609359501086555415206465467798340684105610737189746407526490799167721310959937654203101008118218565744799119144302573662374932809896604290354685017531936327884947216405345922305995792379302833061947960524279261457279223716067309334712900335813991369266727855666590034509833373841982914378743662549678187839955442795508152687493447488700743502883888394281980874106257539391954310807809071691418147072213275013313515051404486974032879186879694489725421208866041811454583938149519094096389645759248567693973255440151272757748228214966038064062156534923679033659282990741256271904537558466385286884306617210861814166579632760024306123192812984219927396947233769368691256953909110330046462458815620811490951463489759144742105934043460271916372240153920354659238579387028492012562271465711726911630619850859794033086398799964251681630778502121348831888275559091975962996197858583265150558920547791317475238597892348286640480176375350847864422979765128771887477207378299556514326623212515730532559238020251999649776210963328941932445520042017780626017042135695366028867560068030117717772453720090064161290601003954222223200797576334796091520106808733087713099615333144356075997694723997374909808107501448939753319999609424717612098046152225910184353908679796883051436923468770600183483586011025860527131449271492778774627550328989579856100404754358709773871594535817241508993592965126642804169670028153204789914796424992024551905829258246382825053082413562253875847334098800351596195550575251148161113441119669222086203763856961559022832077737932666937485394126810064125493684312785456375224487653860397269456500775036271800592369275650747150945154164998151687280082726950791952674597000354365147093270072606435006436197288332964890384612877902535310135470732641915444589940328780782925037835543886627203287738517363763631613263513387031305077109951692719435543911278078978365408608944839072511688907999798343340682707645515754360157031120182802680014164867340496191912238792353576299125688843251170662818307880511955324543936609456449036293386524589845053145657407191915938147774701353669409492250492391596058083804353849439493118444727252796921366580040485945850687559823965103579580012334747101308948480851721802204047576115264549998139050759456022944101634858343416770177754784532231983313525079110079764579857329307627308383246477398673364364176489710252035762501154213197901591404064572979198443928413709573394296909572372404380637192682651168689653829329677384642531809499890073782497312409567287348985042523451319190636202346018468380454544352015817349787298086691005317761587016243231811907179174962807585085167756264987112317134883203673707560451252158782454891096221480036330766221758467519178269954700952434588853200755052019808929492214144698917032758367686800648564389935728566492702159058093127273152106826552378402813434401426374494744203791995348493072458359471256485487977470753578790456869766282603093944231115611555578453171694266647646626880013504207688558416646546646398344942267871836576362402980114634135780642406451888354503703612219491949020739186955374519535091082005387438771027067134129606572380402536574796968659047277386158058989671682808903818475586459985216021855122065197901805116508360646838815109821390602715786710897210454839781233353692911120909078709793576522989652754375718339213612380183954741092652545779274746904971617806553913125128332024357350973945388942893538575838392757073033770089933154468163773301658662578579949045482222134802219741174658081175741295209609589064716421826705345815206140307822434859560633866670972025379488033102925855229614001240978801424306199198910662021040529598292760265549440484426912223989969248485434286236061725535394541333790856707584919398050188035998386241387083202683846408168051225283111029212211250652319751587016172549651276984539093953425026067412275979063914864489472634667965568629432030147518972585075324595231639003074035093433508885902601041719620376408682950721117109586813240692353814653390815706488088975086779170744345678344340196344708322150236758824058872382607714408062401745757557103652082612876800885687605531795901775965696986631989080817458522396874739521180206468173050475123769694822560379293745163693637088898906985269882913495532682137113032747487849806374386990585585567036635389764995987033467797095262827204757710495801166895123659898638232755171580937218900602202606524458268050570425722222615790393354874812838139299899579663368930392174970966317165695761889398009293781979657319994046709352365677652470347092666104275603330000828761229568886130035565023614032670516666002635824167832616071562477525227733689840211855354679900252466848357805791560704232060673479961217529582970458525480461321119908170180944862921147832082196678224887286514387732656600243744896204679864120294291823402322136835793229881302761124176506643869529826011894197078142932594433365172125657706717495527580442692308174330482760518268725499045157667621485062773190818417248648616319534086686801349592864477192729629800370090477322036672910973706622954642084982494455629398820105499778573015740977755071735950291961285521230244833385859313031316848425281425099904824969740021744713402724052730634023067630300231791453551022728967298819931241871940819863847638830754593174151366665882837643277958256918207813497951106884742106335889148875983255664904178831349992843772386673460764072208646083644754049941555595563229195647690960583631020823646940595636733399224593332550478036752214107173428210444265394993581681965195859731318348796099566640358445088902995092705230829209659451100130428212578910014087433614803214744951586051062296890383485613262902481074761151928049365903954859761031217951997415701826493858637543764519065128131115614448600458075758471934276686220979977231541701411510969622747396408011030441371862036696993873763783012934492477168791116053342928723185776628950158254048057723181054323356166370621089608672471708238738536212218980504240326244255186518483192485894646683193894628971231624528505824223091366491030404083869632655255030742370040558457228422651054160922893826660735508564369439447801016964522340958564831540900290340120770881447555805040178228504812190061393006508535275191984335899616588234033921399457082715465470919396352636285566113113556288502899649019064521944348708453322758433970138458840747503142408921349189435921861679448945821498593248889760958414351737246575998844677402839824326639519107096819736682175666377055369515257199061346981612785864582552349065056724507754389794285070338846159037707020192295669018810495718326373419615294199809519720217408211718633779576380620348742932962025942774447119945368296380825155697443115047544058155666691093725025908528203895490934007145500920390239571660643517997130077463130470980126410706558038717125922208609934119790330265999698520936076837808363766869158513652868022186856057586129297319709386551100947211697544975243943407773360639288543614097707705884232250601956241615629850202832864782956773794415392280444054897662778205632331962592902166083991873767834673414103836296494175718543082467115040833107382947122018262659627619033388933007501227493832378372334718589239122390204933071303227673534643138470957155822130935408104282562754354902602048674602169665151620713494894521077095653090491751212409432963608007439171382653389315625669832926586145697953122687329872646178622972286109890299146719525380646814783438178971774267363087766717732454171260315353647615514756511540564085255196287701887442906875657274676994085434368309202830256744998286596468858107964662342941893380605340788752639384942920967500672311520829610689093684109478456099862599349781617659759686109388162453885325313342232363148052154676269227765338299535942052121509799988400306243744325458545308362911153626246528709799779427184399213606154560967778828266391516365947841414998946617538925717391195696411720302190133889888683698132837818785734851564416777485562908889671065405582619341461849232700162655557412048970958764854730159972659866544836012659185550805989593797723313766135345616100741377155839726161230003440015957444602921707567560795761179396483879002979865462047879877914255618809644164387115488277591534110834825861616956268544485571383124133635327348329208368007731691156654855607262928690797991050020277157966735900602954292944004109872102081025043501934809120649476437611681047007372692041178121356816117945223635167472716323325301251587650897602040964228351702327082187976741745311286220527951327757121251490297843634238903543583445536528689343252165098838132492966711807417576315162219441377933984950796391174074856324901033613527830728166871178575168301401940652392581581676387514110548482022937875699962042923821942596520590290686347145913305023355369826810827320505157671876353636603352971967954018757103792474304774954865627344085931120559285152442232463230822134821409828329415051222677537554371185022621001682065398370111659457649692784768082895250068107402083863706204683327373207389916657985652431897153178099065126064791690996155925349298313313940062566245462157911050598237994569025067543293410702207315777718961296116375037757638668808553190886243951439385884239464731991173834874478093535068475615684302447427366707467607546415641508333375039282756257723922829853599388947774316871715498567633376656843144043050972702455807210841490068536040355946580762879862213145593990483901161678132165241639783142849262579027252197155805083398254582858861787845902548389156840816193251380169211728465330752713384937795694022936726269579734339981932610614152651002787081407522138464674070995206796949644754210679104323204175575127668761884007140068361631786333429755918120005746451771968707913828698666310910136602189517271270162619003904523854288810416976002650193420192420039030861556731785505420773145749617176146127703434252581236321903105172784469227777244265958499952086239400353801722104530663896519468819700243474165015617930066079698139675122180595006935782169757972562159522275114117209204758333606448356660289735711332456184821659209800233784352135769542245578070539139421654756648413707513605523862875826326731928898907413576682602931631356213431684558007821641947778881120640206067258231435048177767936552859766957155398218310628360937320486776411716201911486985254996701100591585544477651194105522466046695759123502581951158950994610092407747376825115206433224686697183506615125934287325605080321958716233642767047717321670864256135485214505201567337411626557433846216590774493160831111880758402886074656033128324277884938668332815400229155440113285148168097496123727493861350880941009239798645489311130268643387020511484212731331791846022732772034990569507257605416986519596345104584719775574518120466429779064827035607144184172533688114137033042719057883537235944889742543792803200090324058232122160945218815891787438492377182882151136197484719336210639853924608663323363167790620266909141469406569573358713735854790295444711184470016550059922031589860484135715082437061407629869336355012997627392997117580555632344675346738414756012810337191565112012126158276349890384414181257424969437174644175366044828719005708613960663166724274639115760011842526616058145343554623227867659333420345470264554075112564625344477604577479289357402722924749898793611035731146976716600859162937913044176567115145171677429750190439968614946239514178572445891345837626731680298154057398432392320298229233343855746702484399382261888996935236369412971034175995833959918362893154782825153017345689336636345274411978146798528123380644765358805311349341286067499460753189125952504394077651730938239696305475041386758766880463935555281416000288177791722598661228778389614665087598307603877488303956174966454027602254564245699425450142331546679874379519019649641879280957463926865409372516351212784699086098449091395758747627248027396217584010062159672915808883146727708153758179065762035298168617553269603077659324633967789663870315236984542778917165434655285816397244159133415162753153831758558615148227732031710009656301932895674232231018602347494895587254168652185974916316870620817123363794609681812194187287674997802811526962626000232204396084201979845236812609330194009824205164593092030499666610884834470823152389588574549632908604843289404539283978660879592341220711127022365000979288779418524441112471138238767646286320854930212382698479737259598083395253109667930302144049774410003313297441309608032957619352994568283801938345117884723248233859377275346198298630853474181894893474547742818235005470762275722839376974660495630829468804235395751549317998769280686582971670705179104164024622022717997137443336065334473952071932349720680527027797314978947220930631363700105800623598144471376239039505671093778934466991757857980568262009650273229872898861157706850314580471501473049533070918851449071779541779520917885648178891833152494045613922765738522035812004148807270033215586985759818583181988310383308902928630172764772190396369504123549077002187199723097250999946531954071702914553523221170051807087179489822099062438720254325035221173237960825145919351759504366189233005073322117527927376416598487146766341180318862277601202642055409090180990878743162108990373721393759065858339870176797194586289437685919749830039002035920119533595913750848718325289305907415274351690648254120771283185420779761910281292806581687578145466117654434224488563086875156941347602196320985870774373825006712274840281132922857417981185810100035198055722433185008497107062313707753885417620940075168504849154403616137282986247463645029246900961238345865226918033607775695361538099286684350195045900536907875938765401188476784075859471758491249806649684681015862620016804069043299655997717382253505566682874529074804591529092829775588421259221799827313155983055154813937696662323791642017145743083689245405853027047309078408816473339214704436957921884413777098304991601635806824061821582809474382572552662252115249806144604580627338937940324204773010015744114947547597688603348270520227700666038803744314066781083315170737490013338334436256260523963064443735723035917004125638739650615033121609575934927412027791275314766837271921324718619204889712508245424459558829679685083695159036109293341692569458772208303770758201879691902711067629639414006571927245090195948267173072237633124865623071028763417224961372595241117642228980068086552078696441025720556236950552566333853349223175976653061058895482257200097119887853966451908664693694072526136439491412769867010106662374899182786752743439407966241089756689276338641600814307156133536228194937091864325658306605400743703541866370957389644911096275958603600866561343671053159425760327488228636973619978458158694578680615189473164597571887982238036987873881542360501708218086562542969845364209550037078302357747163508149396290663800861127543216363880784461261062791355578920183202163499740094415878734255788973763292082405907868248353131425754239686287327816239749067111431985655261396454665720077251967387749812490394125660982289597815643834177892892248740825814351438897144416731333860204898464993944076342998992497399063051645342674171758188156808018254378264986456873450158667729895749277780047440747965949956310183942031650082866200949435443686743522590953023667876627274036922105574425425973591320729664066090422293032835519977510832811724404934318765886358124870882806571166706813500342948952299513458980431451906606703766443792074063522883777231329822809671435722195620953774207560877153829641041074827024556614824789391166137770920837570081536408290082822327973536992236480803876642159457879567396866782738838258254104060432561848461141915695915871070575948864480715277434435692679631289424244591256715863654963848594739648711050678296685788194620210177623835153360724718284857786949615483780648358683850357627593285160170399123399724118873475519805353789409562798655660384168823729804850390747247425095324927304824807478954964993953952263810049988124877130963392910259284953789559038657964080409858047365445181082667249085029797660472687157474303336217527407294481675812886274003964787636756262088266551467336934362517859925815577579843763661781290374723405506034627086134872544486379254596165419669941716993783740408342152822132006882736766877714729316618098257190874816559083126542703538555092426580094138040335446113392764931818285506127161237274376197327082382156709854620364280641647158220180969887022966517860249824201806326781284709649631695828334904168477691349135013594721661683510260607336860391874033354561240006816173616827358937851559064258426279214982923746258738875191143884388998518818795996507929599527506703437551951757910730344595600357171127596438447840060824517680505019843143034127840385808798543153931311315883692873410023069330251184520185745090486937847820101110415763768672311875817779918650996756272256395906535873422164955733322789565135878762416372201424956484914904385098327046639017700638082208029654756528265268325574528042593451804765270247845169821014475119289099699963771536975490290865809670483123104316561100275762860265929754190925987601249791549818769820616641601121050107576417294622537609466713637256902985536345927823517424245433516665096453578833432735992235981149710348507604461467877915951121235469799685154040759915068748908999688387613299294637966451371397200084188669696599197544483663645577611957262891968880235841672427352486750272476265288441303066182087682395967329820170401411572945038110489289265618507138456816127995338016478681943339151168494028948442292688034726646345397219907501391573528309545817701114463377543463764824121218482141256087484157806577948743299166304145258406219664105579736136326752861177917269448160509723432692106697031927579046139885989542105730981071804780274128497553302590350752071457054265302840075582370970724058667551378660792328095814755962983919269591907885463535741848383081533719676840438855269325843330365343805609453869243798103503433253849434106656980157268619282549881031063772268747669944828561393159550101616801385201648460311088188950718911382579395980880616597956370385739530896050156955659003481739127357359800384366628583520230607285354246691518565910250511043288453968961626218270502077674296575788451097803773830083748136078154073566131611165534049660425629019905225959226731358645133819740125915688873514541177281957743431159423491341203312103723091715392685539853698342915712669055512979025151114954791819092439326591886696005868831517404783222063259627421401004737588547164883188820422945459707744098788521436358624551068677649158215737377497900503316063388156512898687473084116706050484346346674066956878518299972224907082186997679711861933617162194535857096871850237349445121970707193770734496041176214671120741992686574279820363535665460440204511272484906479064281582254553788600733133610914215031234676266045112523861374316420970154739056781173194246649606623547397778727367453794476698634468651773359736253295265851514351221825327519416414376242902224452190140881556032730165634833782838035273878931058701802667467263449105396434199923416769781096140935562368187826828361752832136264210422025329632451365098352007957638318588237027153102549365363125337432719014061936270408102142183298667307612931633400445356106939972850003587933325367825146116301915268073695213898385923693644393897936784170450406066699911049702913524448259070154048452455120616220186960999025495150771436578284363676187697915057181285178596547309713327751960388343750351782222880797898720545995595552991040402213203024837433866914645975183964827079644537139136447972080537384181277473675332633634830413142974301170572287234500271411978251047310824137485563489605195011474563113561409173670628337975502450528720353470609616313776281923790600843609137424780054563295468296560105030376048685399261927087979308476917973317274275375447553307772786382411165006143794908782685148531745250643622672951332914192573846618938700029572747038986134623940991687252047074762403932341993677634938672199786480118776700891570038891886789188600841096190958322487251895003682466667155965617616920692549768462440693673964902203930000574435527442156065374838407590543588448519704254894042829281677249577789010396752569670778812250052922462841371653584452028178727075962532065380615454340767260263992591165358873009416089262569439113187412307063689343966420836123117449238362347751016940968027398709577998064867314521047872199276611566303658900140247000796981561972255775694842673157029454095021637667811508965163099806615083761020192823852330610659173309526096595906777272672278524818949405203972497969552640639165464369386866620915696257639029251726123440276900555598603119349322376194759050074292180618831289889100577311035124071409790200359174024446891469031994963481870012570915129916681293307183718200941824360402672926797431801853734524108309750130816898664276235975606785041206748402404052261870007978758437155830677521454550443413686459628272149072797809913360009270150984941825505377309696149781890806122235692889097694360700033467763874304272849558475837031704000983059425926919572742587690710698545806867964377991740148044598634145509122705596388733721275912914484617684615533433593755388070576624503162468496615230227402890722102622274539901652656646804333613158756836615217286064991938673453829797726035081971934540907165396780927559546502563465134481964049425730447325217181458345380197898139083316584869399730829882631204952815832178288902703813081733650032189758619361250028004849332980689226898866067150931466483370429974173937209625936887544404909973055382830419327995004704841792390378409274394883388648510606450105546415050694099979680084416158695318042133535310392633422683439741562873325515531552628071208251054497757182875988958429012258618474267284534307700141764316742599943120853882897642646319220245224219745817568159983164759895732974737230427496941112621175147041916564100451911471745095283411337927134367716449739750590602784210916283051069802369311911641227779544675412800660056578980991328780693891085624722987759851547757188956436687521928186433245081995553743623968180001150811286745193712032983688398246358421629407432306831828596874335695739649265070778132309044548167624198386255544486606456383613178454477006699498347374378770697483873814272879105716345794525157980912451871341977658558360247243129938842958077752562142590210993012054363112408796814468501968657210961395058516020106203917871433283021802479678433445259821888587627134750201987929975480328258563910026445065287260379430537976088172765940290103163010223675837662058951489257223453709473700915342978300588876966068392258736999888650513324362382312438281039548609083285663026783076023472946013935795579435169062979375126297723412513739846677663075620822063124659704806490288614798370090590049631110302271098480132241696373447389926987887817907539264067423378321783216472082331786992102070340284800020310315832262006734648866167076277479658470499368698692754630967063741820046569308011511447719744123493388102565345011713158110369693566314828817065008031848212493464360538537096905067502316827811337765671159989876212845277400818503070823463439674663474111898915862862757129810407845469677047049970042742060857104810125568111570521291718097913058775942876732388007218495725196956347274771913560119938534583636194620290716476399941127218009060213342479167785231896122174758071866352992624697691237913238039402164336856684422174669711214542437895548338104424565504590356309722082557758838476934620084758219419991186379272444174295002133310374391941618333967028932735664884872822529326706382979072111638022580374921731942694267708786011011407795705787627662362813745304132397626725894634204108650755184157988445964176114035090757926422748689682596819126803028478793091773339121417363392001825105107264978211500457736815808566211174801733075013854110148582540069252400564889574114482506728587327630954472833789572462077895062377878384885147679008853351945298800980551626818367134423608348816560728968950343962144119543047721188199654380406798916055917702221352157788812067241885318852523875093985759835811085618526558424747804176886192593987052250737763054727358015785002973290565342410654147052724152782672911781548921395660869065038056139919606528764526947814534053151443400036168936401379117973298477742768656225999801165110824556120047244555994411342833105462499707216375639958765856742411124772528264373198774675737995469813497616234460579522991518311899535818570969116163129910572323086757728319598149785481078551951622805805204833136208058749903232258930154016560812033345260561364668780496540292268280278495802428547466420727056437475336057413708126578054341823891353618444076483668007902952965782380422420898043573658069373537347007541307806608083570990438716946046097076516790068818809196883543859810557244566713279373881481043481034585118867805271910945718141882072958100171899521195519086704977583386466401826866708757534689798980006047252753260084871234766136694905358488462203718801802211550196069295141088939358561269528109313280903183469269622293380429327960236587576507937443945145284295320229497048050246633981603909112180916926761778410914997742790172007247264006422717224479652817770049890541415821037424131115097719944595207183178584090163567895021959961610664116348230927118808292398084177974607461398026072903683826956433235390841348453226917493311637984547478615589956564878636160800540227394005636456098369246915445561050418456342344375559318703682198944239715640206103368766434249172973133167315616134827180478632741317784057663783353224687626956674213158474165733363366904244616908093381536285157996513316549646104538782679959488780525839551469199558667606252156014430046767231691972480086312113575823814886889708657616010371734279084495689310333670099900874659852208886025134889371853212513058471906306599789566389160744906741211264172054110874262211837506001968778588008461463863474929564532343974041377978322315522030847731992070921064426870107252273102755254843654308373634952891985625272314030997079170644304489420041154532898678308649992914693182278733491566171203080388084043919705148804081367215429106687124720071258192178580608395668747373298724341345073239436644346407288733204022733554019030687048778709903944704339730012271166765213419297282879123437884978770069162076594235475344149498032660489750978107336091892127840011324211202933086434601673362567042437279358336997898493371635286313437167035174835389078576797557043994616312154950377441456187066208616574305185476998013459778544619496091375508753482792658436853303035859165449583045394713720267839176132725384989463646910058659723707936100229947761442843440839556727347341606354867599373732421376780406700815468096066589602062879013392387645828828292063921506557977802917854480166107294759748701610794187240280738826268385191412745607986924390224239238332987560201429497215404771554777761992339311065619250013017161994547452959087821871171984578590362017210596713037471615580888878322759433940836559998725781744600440139920720442342945563898378190541593199225790731953905203651950308153570489489383735748892448421727373113158260709298862029427008513750704000953010458905212288710765228420409048991153322695161576249757416949879832677293046299474452893674838322306540563868778554817939152206551860699545212028254126824145122387132837686920273875263415651655872142622198465627349535272128890447781955568609149904221769347087346247729112203648400751757303070705151187575662426531969951422085248199760084397859458229026438281266641627960136561533815266870800365294618314950195648941616705471329132787562279744183603394145930495836081385950462900893832226011836655476131201510027777229549397050315220206807257780428661313515398200848117159165050207149847014375155364447021427008079514354073053704201382541398023217092129652147343387943034753963652254733672675386666308865271685558526348877954338257461524392732518725529049659199885181309774559203334377522995510330150108229640726081505398762966957600597908962900319197257359372499557212300755024466388746039250187732092670529903476005911164478927888609129172117291411169755136666989951043745729262828318030040342085536876541976100844206844572094631993780238179803528814818520774148535101088744405197533663830635302102029356677744416407155571923562165643601556354629904338405404702466073823648303632571658531136273950329996155485088340520477835014049541312365683022561348271311885372052141576849892609441873051737772832673001307812506838830007399298681881952306914301752620313996961540525874789471062800065640368902689037035761413851321591032687659337320285124131379738866109584257022342425641050031419903126840422136068079708120838836507974252045007618139340448627892186974609857573372823021531288227835992821311896430054792722854181077124427033661904229544049712910324132735185869707899695016961857192484009824310175997415993518734663745034600137401254528035180703967993939071139015018676883437999644409426280278046560594532639680236150811512126310159330701988672359480499641156630483678388604046076365482696575388781278006085053526104078488514245644690345440216390469228514739118467826914653120408835528565329585866416291472812947034568977489934370244985172846551050919111972939323228096767584232236029531473861533067398606672548462112957957136878225864878960861922857822175332455600664126462213079792138512121744649497188442928136908351969975106984128792901611498410281041734272713834642952759996413003268280468101109414742750651999982303055907245318718440745105972937346084827696951315272570863897915887185188339400110062755543103197255687090435306199137048592927001494939974472805832484498989221047519708067296794870784967297401250009827894092636603584290873444744987982053158909864180082257877825435895802009371188430844685541170034378011755320994629540810602439156595865626221124192385030988543657551269181690872478620564016734054623091249183605822020947844446106898836101845547568229773042892989400958532388696547302393941381931940329154157611144660121493951486010747418177004949302102494436889928337226727883605005270515836069639480017170511717527918084526185904072942104854118725851516037580798616852595657990313561505598704858561105630895392101277283375903258542996870424711282259038892533957128707756796345144358784215932987355167639498387862172250832896817439609150129415685227247268111012471069769062130849888170493313723321925079393141509022520949305683479044214712012907891203435731608024992760319652882573165876158266579082309762708545010153794723494060470268293554737791013943027703765942806818627592614318376989161394827158164333232453362519748991210554290072051418578835860043034618088919829438920062581402201813356578488774375098631072614376421804360511903327637183189736310321464626697482125835308250683391820083855632809198984178605937974711135436431986552261111339607862112468634578041579089819927853822031686782485091642960978894811888681578326925922019584122574069818504123492136208127627305808737594950515868282420332654022269329113514039314959733633711331311130838275182510407791886445246953784669448629472589068540424709227468262519918112470425693780373222291100656338083576535191244041308563934941660608165702929881842728103612627554732971045680436676546508951661326409412303426695070291971182509581057037379860517606269149703671286682490660723500591699660676224750462209746587598767869216091431902416556486154935047505561339925364240118751185821213424495138028289887006905960345437849334206229992081374947779030339734817849890150068824162541971927154041993051311041639380549268373396716853757317639321788308947832221326534271926908709567122995677172864867050112260494981678194224876954749045213193992967022405148103998769049025395818795897461180601892683629986153271198982462564889152882971297012870135677781554245366297894479475375428676414894080342180976151072730915287016459306023873824654634153584104013870199816128318847984515087888245792628539149531877574423687492995546171715641976114562404508884991754220332845532496346444959817758174814907854257505418290455024671624859295489502691279012139766326199972052406489532679339887180340566082819968967608538937795979961340064690152892926053731053426534860897794462550784529406037672292464337978504142371762615643754765360547400821864786921873111798335013863100829345442268601244134497003803857268752300466233347964111546949050387186471093348707171242462111158840569234063480425026811076949302005934438254084615468540102457986660809772162129878068497156109806602603049531935919761980387581667042091206171880889301414306654347168351396892450561917820801437054974342330777724563483136337190737470351530661071758514609056582500501874615265853649985211811977931228489366695593404061410664383521645322288024679113383901206929685165584603589466610077389909477290497883567973292102225054209440486587502708606559228437640555601629178502086593525747585235494609665764338227103334883359959951599661195002776837151667035687374957541407082541760792329269790720050991517820212722772712175848815648556026500999426847703868129091342782952278662210333968474488751662849300091408949636589207847855318366589299613901709063398896689539836246306783324807120652162518655748806925575393863154073567563103115160826470752794721079393073341350583908175149647606159228058423227631741964830735120765346774432094477193950429320950720848032881789655949169347091653439740194930042725267795577311069330238979877991207792636504953805272566490838103791142500862424280671655478530132955134580920485659869073865232927092889721623500899762539746028793961861210185563254293219340557313561921339952948316803728224881181794470605016401453141655052524123164233278323797912883753045934097999082084526045939366338708697165282773009710179442665877835061523352428180388577461750975359208940740639547924878897004819093573936769027125669518201933287057543413172397153325364632671321716500432725170396995680482862032226635595469600313619503541089937444118489506342523707641867556666878599921490992506292903158147104172579334032802442753975518450068899761409127350641383496136432518385429310549729326363803680654176597535672710823960390413533852447152599142903883134525288845444585028826899071350582559380146627407588003545017986698720713141585165900400019005634314838991954347719664195112697611671054468994041861653429609436076981484921912931243420434258257168014753255158860558304003531762136987099975337405010069386585319830552953623713117182085438615716975304273287685067566401582268450331484937518851445284996092513665274489595117195105597211143445216550959171383893949916912048592651883527722826437093170635301918551127711154466514533906039925907078676539162700998936674770530085709050385034834503402746648065553097957785989956871443009668305601365260213941192556018507118472503585128152999434909651478989026713996063692310242215591822160585631398607751363479083341513867200343343028375725514855718229478919208146874935222443649117749691086666918058200964903612461284643302476405203789493406130444539085363772036207547802400959712163208625054576944476237556496519771007290166727827187198535919537722409515851526743610896720048175003582328983812446049043744582938646831442076818982968262455599993287463569651990000236072340791965902232968400066734100419458991065584192139659607887000001435429373234889726984478062813285834260101560946684707605500746805466407206567252167113198607997539221701089079534606334506891101737676756253973192301843647667967287611598971234899521455557617985003383690231751984023938031132509936277533969794594877254013362467697212319937640115478730181816259359867418486061681011481060451721167667289960815336922627472956538321519682780319355511062968468562245365778779898009624459733902934920727277266919683141527444846895340865493112418366224115968163722178117809875186054729095744506860840008545828868212625196907580831712592187154855789001286081056219858431113399723458999117216452950481403141192207565284337073722226999787122943424597201286836165253656891613682111036946073753774163619728058674820681368324146742948326951157940009830457415445732541894400561305605947687985429130205466985080861940887238854675675216137767650498639627254897028160992909463499519229824545272801344345280045817322064188829810054689808117884415966123832927058913904657587038207610435467998587153132447707075270299248725741056563306325945796635608319917697581857702097001036176992494292127149190110170183223203825251685317646942495872384050997747328043553074894564306384984348665348490827578036843989356934754702296060791693603811879004868420973309534058840321005943350994064852901695499306490450750015419739341803847438236667057747068484910509456972252171076996341050522594748217208436966419393861800753174053467068528802501793902578633052258194777711042123259146007550669778251784747346255943962258768140552501673343714496257584721434226233732422519315562676605742500807782937714609174171246958843584730174261798502487999006387071698697821278652719957397112133702820623378093220294192957411529669831589759500041301891713241152301017410370934892197722316975472628079704923937762437048737318012940796611131022844529611627804333697400028409418410338720605092590598186378070032779280163080905248284874794644391116740843237958975267224874816963956138493355305666156946704197784309335306412172317561108750007342077753933826754824012366269560115798628295356260744542498432692233208250862290375295681684659068832925668179244938534338027254174431390171989357923452840232293380320769116621700919050204241533613826585096559551305475923587084542793150366060418551874089026116192415970720834491231831037277888302118588304515396250028415911234147430181355917390384886806390674441275863259403138010923572470313946458230129325049862094659739929757450841734667931737592427463037033502848909139471262773523545195942537626030005125204531523771668385965521642570821449486432565346394580195958895519214515818961555767920567549214458163078270819508870115664592282851671184175087568558691153045790221442350736345026818913398234226850066398389547841719916470524169394461504821801642650159434714481403346646870875709519941378226852102934223314642638643866989140590741139764757250868166556045484654157322431633510172816492175709924920399579870465942958719724983210316568566081751687009726101194755145724949877813516541045454557038994529660835909105463092271902588506283689862874281034463972677173875594946592571907937153210194518009871378135497129910428036758063578185784924230223756972057362514559499484055739887961252068615673535877100430770978877095479948508781238023007191682937427303522051993398779835067121741076223338435575742211781432517863893985893559902540736995256292079809707483292008821220311439951841391830101221649934789651770507638903745983691064749820038471602308128429782669313648564759594687311191314441058028329434762373808881023639082979626378490042368737327011471007125996874778358541507562630420570497209235640134641871792036015014991224876909156166111961919148386532716188710374356229838543171804336914063316362248702117747655984184990732126907213719824885971918959488712143962186095685292626921760093856215521437090725795315789464294882551473220143823883053844950908223912285101395430808059743074221596211996008621476894163625785868567472961429286746270848849899620545941236686424651189286618352309393095111548295946568842986647663833768572235046240729077740495946055294007701150858379693020920844598132069125016688160454488387366098866759938021673338862981509765837485119091871004435030860752303535055343287757038025751965062295122086679276767401073326969427872383639322938558248930226318961347126725776773155313042877902015299272945270046250957053371987626694873490118082667085017208949914694737162509862793606425422932650199871194254597621536279592060405094713393287341371572350780647135969749881237094045612619225568663973319427634822098279654648814227338587733800917049415547254969565908397420086482462697221316830616037493888563604776447813810308359937768265781890970319654314650892833983439865036854054158380545653597783484890238133730042151609334873820241711071441367405821173587330631103012510610249712561733849143266539895327232480079750735165484341310736719615954738627672997766158107443800098514522633658849394911052381187867565305706680091805668220864975385736962095188185985602250856000733599355726775562738418934625282480849869735769295196847642994228595040298219387332772789927274542380552749669035994075295212945715920403560277749159340244198760975987242503873860123673852475753948689450337155544269661526536287188397938948756896823192494913958495280516616561938711074754837944376980856858188640146242013019842295920075910547572758493034419593303121957919775619924415670517908611957799756723428796171771559780167654964471051268934576450138999476028765442671166496994161819782739914548165041249588155203192008931292547350650543772637530445301503492475824132042766345678700944555969458134321003678141272340460844947026932757351462212464766620731899845323611843686131700620573610203155884632787555820249360235684846442514174672281320550256435915813231242167868620306614537310234031420213564540748864078643174659886741779967810574289065624453630743505391278180090400501171719698056568886796414904611969323101008536788366900909484438043063510259983198113917295413064017633991808087071913378428098751863128376082718955938743269003612270754675262083161038652210571210822738174668675451883716237429169395226906062810554650147158134707979010544853617095397313508485056264181676635991612669577483473688181452693198260203191776948741590550961137591456629528107028463109063865622947395828115261499391364196815166828679318914644210856767281386269074781682741919844072488700141067268044582901215952510747813851912399571253455870889937164816970666789219735471637691583914726139917371082526671053181489987072977433096901985238035005362967827702682282524667264160943707839842984717049224902568022345983665097986996316570312001711496448787921220255640066333400410044967008747824345775806401183912039492208172720534877097587419020561923951731998438923454269755592170672193225311083046459906870168163341521079206222645041768208096132566528358561759131082833104595304792388442185196871072654112017860401397465586327191704601406064969983079430707911508792175898989864672949104445191479191137208179298018868836708862710632945566659124326087524658713167581912480624974994615965320095726944582183729008542530481561833778517407105139237468679170050009998512982105193146350318760638892664875910452837796854959653783162080463907469723952246183651226468176798830950108399687251968971682533492561278362433181591823237543311123715147796527141698733290869256301887252801082485198512883333983267088036636180956731381298629018843975901156223995069003785150857385970467728888232813757280615468741474862626255981287748444515062248950666414254337259609474363434354478053734821772365627809418539539838969915827509851798723277295310999270478648383484787600378487358259883237985167591302724125718205715262315613108144784867493399980585323003176249778666369574046958135030588911839953933004543410163593336079849756241774611993281844709409144457520415955575679562654020740901040102212829675413473292511161833681161078645783049841317997606557926929563892525795085956195913650833812780502904204070783292389876923525966916475820530986973302803076757837806059207797417729675745385320378210674504497684017922104144003143353342776587878535137320077037739492663932184135026916352856491198370085436019386410419320048611708379257645299921338127271815801535154927548304496611350317164160264001150372538475469005003856178896990999223596616263236323040859957949173883027211012910847697114433291292389945835336192523737988809444087532305918309404122662560956846190523985769018564414582609915030638840474252842764357463374290955086032092981786073499445960086225353148941732731585265499037625418714170388500103038048729153790832844131861355037232966497213061765141986948421854132134535408158011696705007735257058436463198732971220862384609635813124796962798000255649349582356330522998602394532430929302415377418742978564479001482926028265373573836395381304188092199281236708021761479532618223249171222349106917270079858506142324852885243931999527173086719259125849210502085014025596037237847126553502531537297225050565953716092667623975975015608197416717535732688983291940734441966651070946157100905752642356585501077043890653302859998087098342582415637502410295460181870882367605275269884095726158374075351859059729537681629066773024958114527720174549138262335370763907126402249243282339726216129148313208164506796050989961629971270670707154610361895079233732750026915801465046129178822957041745441556090731692035640352717295877982623799007195393917623568776659652336145820805863538375477188608116230187142837750702148946075021102994611018505543779903911707979253650841417324100619139377975506836784961203085802642288998840118681131577607327021703030785756295311168997455779594791822810384166343655527395523234060037286453058236244780318273387633509861254604357985375929554937333052297667879208569689207455836787921394104938100397500988972973988667038057051644163599106313519019510438514840539280791111525567102254324495567656635107050375447054576319241740751709407406709204694745972345445006642035296594156169655526188111410067275893618942134729210850502617658927460126411909354974926198996707925000220252199719347481104174925539017072856926413855881535551480731374967843475734463133714570690005377573078199314725048506317300024841443590685129862282862519109444447270189287988599252009149009355124345850051869253277696052677950927395128791435520172460309765457063738463758532757442131240690120529415452300940080431612164764987430467682416259638568543125593195017442708342893301716175095367592033997015367360757683346611978060907111563210284823810987029018404129202352610180314746874682779259607139458913590853202893253389226387865868678807599222013914295515863979995186478939664021280323470301660193636111558170192516973894916004843452830383046268433759911839213307840880322844197378039521408446081763844254331348882858656783919159675550889001246531129885244951354941352236736074772400336587970286000915767047461831275428185104322687940196442896007059937299373673169277330337425163106364486164183599823305084363999522368100737906807258235448289819366965587250320838485322477558665259586507634269391446446464669845810118645998214156623270046427897278923872926406517449578292637971420164475814472450155678167078421056093752465421793773886717454404321015659652103509378117298952676391073937631082112321228554150593658381076992158750720683572663809443316937001795375318473357938787569766389328985084883031470276419275296902491598753251266303379229027051176423146548618368812870510251821525837387628724269727931269348692063770510253594951331499062545448220983097108657895102237380906979986323788370380201390592322777398827313463342939404294911698640112966907617409600503165570406846580358181094800422697145378974006139526765353835945393502192572954341183778969662848337859943200599846475621127352204427508292469718776408560431228143763192394886287673750814399941345896219359924702225782832788513159118443914489044304344970359166139799898260410501085794202630806011908765759940648957040768210656024947624019025915249361264303154802742692756824648909854323516643959853116456671089478930086143021089164977588366908993110867833339538105299626168144431278192230037728671058567686789441838524415921074588035203082448510259397321478234145140360280390621836004188683839906208568626742290740966461021869245172018324350232684771657572883270597906003030833390476561762061313114663292912478116199726335210012416212806828711140255503174560847403249253204354536191601260585686150380723888596623828376063643713209663710156796827767655497315101038700837070808188091404478387743373640577980018899913024995719370385381155200336029822479910099648087959229296573408728387491060634487240478533247394856219915258912605070229167984580344849030195114991839229831315853452383627541106538464241976658882409522893620214612505511154260777291277017625474739017467096835279353072303716331820574718090173705488128759457328413239750423022592168250909395019721827144914797246425291442444472851906334946404908629662870804621633483150428635469144508420098257912511183047746871527791490800560733276109799512165652008965299894824294931392788535992366548211237206066705817557094128638006237894133658937828943366386577612706895637902546122852855065175949416786865689958562619877676366815826032841938334151459643964451427288451869751800429859545449155420552535708229052791508986889188901114216336375709925271231014554062397763955696938688389078259631030431675629705584907279871082866548771098532770805773106411957667072889032964194974722706905971719080462014148468782083584753071763255721704814129942719495987232704977372405483221275284777747925791742532502927808580107397961196660221639059044545004592314456661218353815221655681827003548214313879126319480892578460930591193012452645643399395232391934651132997950785621548566396003859754737703534902574317529140854709629496399898151873573911247935703002659985857303720445483533865796521039048044339279444701477608487044285780169523246839781478551002475296463891966833834971758262888013193760931711066513512724001122892253207734407298642386160104127417294813402297551791874621715704153902161634432630695598718182301956960206076115332163428109046327944140419299645527626448648898935487807812017165454390098322322397618201017084227157656009457128618211064831588334157983284539556677030980057255095884614999474214961707147599719974387416196962332128307179597535695774079600170106792825026909550993521262478790110082009215194920114779345856442713345034949218329857867993785316882576339082410535217862565362843779293809718090732011860281365055160950664860203069875689668659854520517048937344776826802085879466174194693631884925727839775598700126505597000894000533031756535760311690421377414855564241653292540303197797721867861597597567828350110909379944186374214351598413603525014228848229583004392215374148772462192394044428425956204260426102878706119416868117310949863920793760489294713965899097126976893018389774130710071010829047943576003394609895574435574914192185857513887788644753543037528348937926520128773463246789017239330708388672006664186770832358779963595627584271031376370756725262145534752639741945563933111182857094982919604493284776410506160414430050429836660664454647190652043636249561931226281024281091518907851577119125829583300744248812020957117589999440028436894956097706164818675476828972055437518946696997402185870971330794010894468513414313814119236416649247946890092801078770945861030307091606606694381154492546628081713220231101344200637268829050436182429052826125469207787662294880375995721555322017803346547792898800765367329441975112688966024764302035861245604321860416991000375903517468415212182583850629173102004013659296552516367034504438985354011149704804973630471160296416615768152620791962965182936253458634525237329453464896402133838223287911652532311807776304983780086293392416753115258932496794773904493828811401781395994815562812440235881117580800724730554125038531487007400780484302248709199058833646757905513318083083920567939897833093177839338302781036554204009414447459496687872661767717739487787751421638537064976013765582534676315554587690678039505564275076267872985252642876951996886359133632633542745466860220479302423640296310003265341742007795699378521787096076518309267805019281142412686324978422598445158304821031234681144293338126801296280242687989060045084212286713706750305953932040463833079150524716808117766888872510850681173960860557167476780247354154636008897729652513046477201522747694998542310234233066952593854809343302255618031596061762318562059051042473206141878392387143277964939969806359347678476891032991702141587416230645348317368775846891242432143120059057016227824541615760448121085195932536262036243506576291924049871798706940859142934455059354723866209746345289114084012299118843002732021803417004498474004331889494946053151873704601166423505952408866206037800801558317949768406080977864847734980284433040093799825949197083060519526875842847167059028675100276841328562615612933944132215159280628452775104508158581460912475143313057336525072968735714135987233283126854547994951520041086554807002413611342926824235409361223583872597131136559383271775323182008556976584992814421635711520871590042523720733392266391668362346871225038443083423372750723309319718824706233522272378866537258557006608388151168452287125171830780801486934732555235518528683872284617001223720049729832290289044067949350617947189770203255778952526097934184931905852460220144698760812809969827608108645575675974793123148657972739110163531961045244381260110983268314861732921373623232846553126434343674920463955865764529644848196501193905975628824233927025325598828018948248472150703687254037048741148168005763371978437788399345744378298898289300098817953621920255810065239294489520584135299351227203058320056130071393363855931876618531951280453890965505072462035977639694963078032279361767961968977429050122177812773167543336370292745164329329139357103089186249829930649563923404859919025998716373400786384151359761146193178018466116174271650018385197765581062158820300311935436900503345398161406437725062092350655489045190776976086948627619962091264355538818389652213333934188561474600873313701537965969687824114264585524355922649535121943301413028945666074367503599069962155035495195205424319989335799798351276477249814957262853153123233981799019703053251878597774545922934776496906502245136343379879196908253655908603148644358737061862986149023815488913120072565564056062410069412931451385266202574544670408872304083456342025644663103337830712292830726988521625332823197481978445013848219672028288804985322421548633735895751357184785184562227056759259141835466851193995329117091744229793867845507841652884446335291447307667004921573797142398568099264081389889818962909414384295145950262695749077964768012795099748635910247331333841432989716302840054229622927952775057922026485497649080669026380015716002303072119157163274134144461246221462585626497230278567543571396126243535320529556433163081840648825890362685703441470701891952233485121782642906557775057022820136061564585443991042726893701394059279924788285100807577337514913075424168346895590932129294257263906667036551136885946050215733968895055011757704220080304346917449149414506268118496105096713713420770191119206067649328750597354154053526143436077800014517315744731895074485929247963173484391152844006483022456275321284483752080936425840755831188739573186742034064751563208966388573638826793414952826278713670174634935001086451692450983988234134562826961987476599651326451524731879793334126680170621838641714692869648786364811258305939174392874562636800432485155413837715530401430244911047748037847197229111138137604865087304327575191632742551984062642338981748389441240204571123054885882316185153170577887288154012935183692201244456360220993671054139823081659843378198720717103169860886091677709753535327528095521404754468747814639859519090443260811739253798221453756706413779718812146584055565231199681171077201970644540858668691234685667103949084742086566333087844338309278561125853572270650295724966037240151964597133413791543094787120167823651641595373837718415212327667524400328176582650261299011178208904485524184326428198853623650546355627584564015563094642116167928443323366796613459260666414459332111832569117963055059730751708793957588102235126813555202271173560941894627876951382939191021460566724628553997592366157964944386724439686254853751627422643057946776291911710430130172583530578460817143108910160424208804757013452887780719656342107220700727229006661843691647796360089013046836017970400665316169367860524135971320313628819766252256340321473196495390723085326563683435703762511881181157919481269176356496971511771622986460022139558024143076650805869339617264801840691260961931917069239806353054061499462124559358369528562554065298947026109943651769606939093587518483272269657066511636407059455882511113256568586026932699428245204902355046606730318502733314439770468382669172821731042380422739994568325012247814359290191810950858299795964606804595480226623445778075615840824600230798821482385537676617731600875415309452584029273900635061808655896081972968905549591592116272494378546966443191154344969467275634217801889076186729777534235553829634293426961511331052029533321727081491329316035708478987011908814225815928768042113696727428157392596831328245197529970705853121421009404857669802334202582827903659744514407073521030847796809766332906665977471497337299773378611426211597238849853960594362162883746636078614569845413920511319436231318150595352181826133347428407227067986499913914696356013955690269947927375059503960735925741964468674171926774434903795953537911462976072645097673844675792474514163510064120502279073729787330051444115675330401459732305098122361655043107097698903818483945310901730923564799521240131536711343174034604671344321085828133872300037242052191771294076391719744465258159746808064937966880550601256204475735002320116040638270428548789945474132749726356990517654305265663990974352956360777336685584567884047529558474255115405188893362562501805040361614648184783850848222396155596320322702735881332749464924274396039482065666047660545230081328365084530695698994128023711203367424077427426982710767849031545022610038466966063062453178649872984526522821298564786961171358495664682176476920934158933076488175644730607621518126066345785792616087248427742608396222781704566522307748340293990561392629323159667724501001803187496441254740155355863581886062053747201614040306268224102314307927048351781177166162963860746831584295407795628485891858001803239628199623027598296427957624967566043226840734360384063602579756552917961564158100887956413309348182188375072159507087699052852187642862634103391384656835186375707765705384508190203852310592607514369248330284264549339049345449258977546176123782571013275934775273741570039014538249295312438754265901441809930247844198274292099114981234064858621049360283786181151132939713630966921025458327191200829724366319350296356437355303177124310531595648202814509020102714578148517251509071690367945366937422215991097742107170884581047518369745375043905813262082993975943775684437867530802476997496744726961224998963006661445895170145133989810154748865790590221252303705530123918912046407184472043819105659042550703238079634979031822476005550405492413968623342321008662006153453047100719771258379946214698644381729303995067988622534748552392696036354838255478530773872651125577294301975119446826837941608520166532229020994813062319345079816812743631467662911218338248020446748783041497529213958172583305769471907941396422219980959120448559708267817571006693255381745632660747461483591471243924891757306343297288732689828830606639523312538627496146295230387235721727688445497591073799928234266034319113060700055583235297791746886649260217850833249706425408542901989915652313309365360697229824744201295876534000207242073775887340366842304729800327631849324537551559132630788776919228954520196018438869335494609507270822233542447404284919595113932358696835444832050087794703880939848787454574112659825250958967782182518601081221565876650170731132635130976861549911114677365193940534204398105121409773219173320089658398119580885084978961905817832466982654173919636984253500066547175008524468361726622713373618991420480246946877993985658956770404505527928301582520976748289891352670809828024239968693834158596459090417813496024993012358532646953237384857123521246101843077375257838084320455787071183935304002857225857132765670196272931686415049041471865560031906769658383304603723770357710686760413855984795942587113644809310087072081383047576964590732367879719221059459759525117977621572647013331572434875626095880263841446826768809103888234135513164407058223750894291611799693700856690365892222096017362682702115469937341237585049035927904667232593014330948834191166412664586895487698058393990245988258832191612782233455146460786580350832533785087515344481910786579945498128655012758829873054663951175452143765207195061937197318078061931843519097231845786834772558101365224022843341765681551197433685574559103972770037631817328891364563046123036942517611217118639436871076674886918701027155281894896237562185301240542658666448188559844356226231578092674082933384309751394061786391449099400055180012551542947246330425661098856006134994886660221486233795968568646224170689800933683999268973625185464446226294919613874192994396678792246329563363733685511724879258837313274589684850658353652955027884010428273731931031736569876364622660256009253676259160192459754517142633229221849814882363734909468253981886222081788421556344774978039437553261289553395829303845845392316566496030611026601323236047582182088911818985628474757439569436947650081113112044341760288881627507395801528920612881652785998807513462515313717765859607360361401765681768973270608120671270507736432252877542010854497601495533667908447277999358407103251262706520110723384150698840441039905150513162203525160355467583909801246211935103879932015892989960737014689108665247984370764686622248084252231739240037246060948388594263135540838977378610423054735414965164005295533453469482324954328635762269539461824697372145735772552798981943593808535879117412765281340449115080929808914718805859463806215591044222314011200238528828272131274507167200020071298117379492978875816713101965589821790389715522945259975202646940082678646521158541830144884587968095009638252431639931115643399272342308322222537946121568798915658427179069553707493887127101171319162302096966855625314026823436479032301268280811810612758976672633950727091710159739365680298806068780868927655552076918597367034923887621526249874704208291625111340843691600160196272105735911636069691836642189041631520149521907165957303382185702626504242069166688811187885486035557657513076128358938439990271602249995029645334784723549708721337681489284946477311067214055611411059518272602936300891992110700298027674760528484335226529356201353855259757525962433215185131467561972245540227073202811806919616200801749249896193236629419298865755180255295272163761224396750446479940762592671280525704750439950237012659570889376475668937489907834147445484772765931448532254325377562941135141349055534945123858109063825849255235485181963541174562871458648235477341188715049124977285801108959613638645171387850324282333444251370559311592388936810887487981061699054417888572989222214536603767285091484668951166481696519447137652968314137231664768485734713614280025579464440845097906867776815363396943502328828481765485735790713516610534300867263602206640460584401932441224788675476584753203454789784679822882579137752850475042933290847228831668152249472381683872441625464056036604182370639202163851339818373822981271725758354643445578723881794973460221403524838969212622521613391316414634021903871818681978738232617667802578847508352522035633318238407213784129302713293337607436286939915333735444634092227764304515008378037582897670360081234791822532804960153025194598950788055118001403998644165899777771502865649903472023978848547287932628369450522288829034487491795410626679061413623197841991415919038659371323189888309199757720434567667307308071392540933711642522553286653072554167493045184921100618992156705866962411422116782100255510717153544970846062716708177441512870708772319084095507696489984097926576918464836858588245030343503738420674768753899467801836344417360435030058720534349642621588810030240456669594935531128954185903108415048040210867065195117158239438805632851771858991463483176797417280750448299549185344658412528823236813128492663748100703751277591117351173675846224539507023029164725219623697727527657580107297354577372874211038087824793179695334013142616090159413556730857279728492275375583663380219896026552413939257021561398719305765482940970006248789867819654032407878373646760094445013030680275515644460544333286731042880944239379175690794529730373280540311266069755504380538689711422933433904438030529428384876682137230808493211716779488331911665790841528806446422184557287591986091329075829732776666730063860328631785750292476410783742409173481603721580356983246475691296970501244193916838031044829922002411605351760449155048555657742168069125191098065303527439112771625529398704799872589072920664702088502090196577396930530210144327196148926484424976563397488447637116695141908577333890551685846178571907859596606750198805052078269607228992413158669304975601773281613980077395882637734546545170557880809878874356830783665030430284869670155090889351675861240492018029164885079476149482364251846105057121398027079455966100091727179261772445180814271206937180123192461026075040380523565965508624979129475030996169332745719967343804296449584329048949702946242958961070071767356137270244641930661806007783945958724462561302610459392488273494121140125278451742627511713405105785807344902253188108588626977170544843210698155621152736859416602662424484485880406026705185560316762665955403814055492772371077130978880585514622292970357884041783493453353516445963833336787473636485247074235481151140190280489888140713689759446111352145486419936388615245875879205685357594703814427125217284621630689971914240859109015994607678894357453964928921123804797784489367835395186568745268277377177017175205590159292721877615559836809281516787033440447225226020247233711015197928625724906891023235393343426075148350084013767191844525427683149156700648915992906232212848303501089029000692470212322207788990570089811543800760810224605744247458350438710134703320884811173763974879765525496378476939265580358976849638673688500828108931849020292922585793519793868250924264986545917412011819869096804942256647417935181070694069790112248221230768136690634432306677789099575103190134819575115870182171749428020364485760978244700912114584704402345320474193029551458729787300975787950702485833143198848875857609679419323794960421852155077317722000785575305649754075982374132939960309982449709849072584273022130839510092124289273238292674532782426168347679590887276212825526127534543874534938156753483999547483816773931697469916841092496561244167410397400086828117201045005631889140259696161999304183393688781183534934126852676790292477103050086484111276977622117292313008395297211708276533894765635257208439301634401985150427670071004024289202732183108437502131016427731558570439777497459937821526899645828430902958427765450698611523471538492867056475158974133660781777668637944498265236285664119861455069126812099689008133711167030315899364745082914099422142720680950234132668645385645166550326325219106464494136142750928623114241625889280422477299249902113950096238985211327606044732312685365444350675303006118029043791221436791224736110830984115666304611454676134126330107566893253568803929245746336829647397063015345032983435509813362937586251996877923932410289927075765675167841982521874384386077169119911067128791828982783128878530735848311537213414159860667744354158935547741528233015924727186548005843873500291077278247052699498198787468300573448772196765241361881891914382566227516557463459050848354284598931995976720363665502856516028918620169368119783473116892499790359563872693852689113927510792157337087522303690788208274277509973035408829366129353221665171651904536954840975034818362466140941181103208503986432363678800640477811166948416821954894958939997120760491593054725206166067634781311536439241480707118587598107869515199170541235469870715661912951611843685707706955940980121781063990312001028494356444533667249911984467692097156110996628077134036164838577522873802936489232402605214335827695614511428859333968837446881988188050840077562966422165623098997768369390775762007263704582458843071445057558012025111888495166485298557800922430393267315698633393194899310673842090163142207784662479613951608033377086221900389816801795165395377304300700944257850894547617245206391620097169575363852629722470904372214412422071767442167035105788368433895035963756623669337412146828645435231910423893853606960555153204128840202166616042795121293906152581825693467452843950608640451116657273055542227827988947797430514031940974015228698185291980071185274060436648181190109852771887489832744304912333015355363119988416860970704257418895427051531206625721077290296410208556218119310670627132505726321623314825580382065245404022488751776132010081520079079181333412031070288473260917013861056719620497442364309422967590279074938359833228756659687864540513098153637162497507825837919885519121247724245261778592963749177914170907378424042026956119042512678509098710394243920118260737155734935228737954991757889292558121106241589200085241165746440375523815941668869802704783823988443065008129965952344547167105440493535677526356427581713126674572077647414591849628108203457914681095462602435138400106159867484335343357511584492312758798835673501427185344089251177433881306185774359135492514993338733148638424096071417090459206150642124359182148768133214771490688383223606224248156530123722510877625927199599992919450811247437898790866569888086596083228342768893808319770895562755754626144071037602596335058029793521670883971348242797468235617083981442451862920345366634798048479283105217124080003774393977653875389271700921806879713714845780777820936679171203858567804946322211907973950998463381166341114210415726774175974910025831236067678578754736360713046961275454288307437933334845116168261445774766366372432315166092907093684690639611518993669801830240615027762798949398335449289117413567931336576456089702964270064391010913006805882562807731457146023418067423720727900600032141213836310550741774450358023968753536873382545233144681495022336390954579370891476005205396614349672478125093931431865406279263039810958641007030699104935497415391842551788686967403238818674574103420403952703722680423206284647350893928862582907051338010608875066653903669050362129370451361454190162288694251197452172041721944037938580089074626099576345721451440536969429643388478859597753398538463723626417713708053729706295089582214766895513829822262722401981259827783080186949395223048873910928088589379838232642954140764241931601958897433562655581030167877375777672353175687467151935579242224714402418184039749227794422682168248377022798267991788082325663541690164669164116041539385966044601400221232844432989195130316162220639018362844555155978347652738507084736278009309523814732058815104445859449481518850852902626694397647921865051618947795784122176211148616440711180913932683427802444103897604058471051100063484865206090791660220487651889381548433203505802591497505619870953001768747456266950881518199205380858449510362492275845313588817929331254219559561515320540593208733728906032102722422987384859948470076156239169226489399813884507559786119985486716071261357130010651690255499045719530494690947413804763254785600131390972571799450372116046714988954555611887517982761835918985914728733338468749383308281543022045783130622533014869816377118288129215034254261427180354910511462968965969703508681869458093328161064918662760572376910431319642340851521382895358926481861646192772942169092332547231373883412122328342485444218265363276140117556289272186547073192745085966415477205512756696577022524094383572825589691068155035666191604363712866723753608535990152957095909924319055237413182312839166303536805800620863718064180279221950554807956089419205210763119679255117233219737297213352816354893581585612603677334996682064763291070120634938562908685841957998701762981775401323919781737371447346026976651365890450483700387263020311254382614120925172037684703827333089105833811887085432533779217297400317763457903290585127328437237289450454969960945838720126962280905514787284748114593204501791598891472801861872107940163710199705683916523617461388505926852905132871313431211216892056140659133637873327742356074978515131097266432743262040430779311082747975430860791683584516585217416953539277022488851141805940613120615683513721323948014056311992572884443319406679217439774713724488914165787713753410807459130808733667303202706339011948874802982575523105516226188388429376866621838257319985713998850754850099445271122568547857193998990587155710810748466590405773159251778872288171662919314921428952949723192819369586324188715060319995625230937982851329204645244890880567011309895690818005407490254773384927845708754356825175561178382714285922010643755695708666855280392993193011310429235252756804541784049100429320787778120689897923925134903452212142305526796813081082257285587649239100068451390600160430316367205144440732791882706931214281653939721817988856512308011324701110543059149526285615192655698425826250210278555207762741249642113073223076557557563166594698130603055868369173662139096636143056653778808995030770038723971865191631266236245831494237245848494011531230913356429021962428932638844205683689716457674746549015008756535330180672870204136779747287818769313615664838727775058858113963751913508744006450603789098276469827386260321274649117247212899999571617119479337150099877499183005157865333063291881382705938198330982546784641181699186891723514722790362579000273391318391038253766052672452878756906499245581637947143542066183072206046394221679357654914716860448879448965738483455828944110525052033347610919248730564762040170443076103691310543739775374446096923895234373628316000434738584494330429895333583194285728285632515984970607999587898775601662618398305361328727999933728405743724261682015802285366525966036160835729803314481299972951051990490203728027671255718152779810272495973717530843648942319155713951363461137559982902050030608123781834378992203170565353566705706522638735399642376848602306717032097195372282908005938630761992340296647428966310440767231434199205456178760087677733452825625029802343565381855625822636859943832910597563266921945675954182803311011776965678283049981193989119501291499493121965370699287463729869757117575028314162791281910002561220379638992495854562960999003280375424660695959477682100330005170589120299868647209541211383497003128378253668622263193091214102552198550814797762996935827416860504426503806737324722225050299146970203233082029394028169830549142147384364091868567441831783351973415491389371306966792355645687109095030758223956976736065941118275327935316419007243917460037826888382558229326021007372950607698989315260485307733122077671755883795402259986443454290015433020785088256167760579897861463095780521229726053854183899352905476433228367119922845938395860923245775322759374686126243976490129481326631756562067789602212715939320531345950191159356245346020076072332263733177270394561262253987411181106336401797990494674834654396239863232403131828974670952997886837686332436630173059846334977965117293966555398021722864010431717757580083376939151985484193678517055721275626944646585107639330819151088733712751168979125080949757091711824032872560143946651281414743910353794718279876842469587740139084661863702859015538728268095958419146953410990134765633127224238617066896744112643924012116145337571319074893060234276847577095433890965813248678071839319349898244440597124366516901996647146849516595048822883095058267133831772258846030662807856621029125012089025048924823337279598593336472061329543137908513677729233724986335952796947991465856470356190780780157451247960880983566883710729826733088140152713957039703150505724149015096163689982635207164738837419588016487087013381410180607533969904095702794633133741772917990615611240054834858891788795800748151007693196600251064576292138056594325422745829794739359656755740648350266442003387621188434292642267277456693190473034621287924539740174783347346895577836965657772489417266661047257580448689345813050308952338388175392473624793015068180897492425375663279760536837022604986107973642747677678692507279174693238724499515999085942447866587092681205957783081918617737529251324437237482266900738089722404146045830559041692647590891129098460157649418149900213293042707434103246902298463059055749401485667564764616292814869423964491361005516020112550952741643399080392770221182960764946699343961811075561124002703698120457305398648636771187979548493637254725616290840871523895433318060458126571859889533059821494998367966180387019717701991271817556967021519424032051971169948695404711232442486034697942227036574840562982549731409315036089117784626397758917776333599590622433462136599797897034250298632743400578588235904535500503555103103398926505045301435244978107910150832621092644369240864794520843938378252801666094516133485651837244302077811203792667094684713214872171736464238638441339226650533165130050138293678108317536424241883251144774511278864328601417898135240102140147882899781235624248812014269798126834992719250325426938562590307154493724717198944530530985089014633881806132557408605883865522889616816082003635959595111176241783117332619512523814831929111030326744450971502882353806277881717976980478902510090139087225227278840828339555638391022697257457351850079484470926618850481125612807569155058499337577700575788251692345859924835331415051754209030136326552391647325839143031957270816957867746055028167043897760913889767308180049836523685423186604610834524129013652151498997076047222225179988399422613177786082819315887340759717594352081325750092316675731240528668918498649125653579235575860748043991867831006674794439578574050302924861399460307793804596379760985213940388608584215998933143793333061432250831300190868977360651440465793520814221956766496975973977705773586345292141353083642412364594341125850074183256110089623279430717533222604348677624404020358002608698161523400632465381592041010455823914191563228191719565106069634980594027043469064498224681221555374573102503984023577272817445756165503894686413822567529981804494978442556013449109024158645171294213572727316842816666675624719376810235860091059815123222043218564716194618732850829489529009806120091329246937361040134216505884763616689802467596568470182967918679478111330876964832773095127599633353829131024965534451105652051496209452484435596237848592246949475314089584337292134935470996404627814987205528035655496638738428545699631621763746091361679176607923500316638943473789723218645600509524981074731633820809046616174251647153958580788419738955763883275400005064721548105371198999430338293117892303594468395434367778517747586916292413133122801837153006213234267169545889345829834096949401712792735675489338711618895752998228707359003494617348791508085019766513210206342067978474334266134725004028714661430551117406614618866197822080298686349186025338245506020251734817162244447319125908675393408693280948204953743324471367096577320766225678274636805874145806868264393989873603773248532850827840408915208750590850424250898926309128412009126600174699327993714738607347056102403710472911265240134331665560766579775667800349349084986693816041495638993157913940095258562530301888812428189705239111087485122381163846363240593292798056467250199066127102349017519817771726522051024891933102693179916826079154088915445649610787581641585366758816448445390756344092447336806986567027976995526341088471510126751503361054146812352171360546339728023708163427563586847100725733717294955935401351463479087884562564220665344403554120605352717660171007771267497406772678178769792824275706981985635129085607211826567597600726329095685121810332290464978983564029831726383935094027067412734207934143859756816124074994150418498539736649823530381590959548722158322704576649786829219334852898958944821904268948412918440040942843462147199975617642684083867608725336700155067272762231688408487076398010397913917672669243731090499083638893628202513131732420183863817380377822999342630890765285448953235026156915986318239996016008963349967576019245984606800398442745223015832503812397761007267482671546458846213558989200986761468437524749472233872663239353741352585108582675487809745739721721357192843238425431940906135618508566018145133170048063778326117109496356033092852124956314480877588188466113994406939583466521066444833977789787396427230798445555477910074863471211004730649932123454195152695658105784879101623069236356054611187265351001196003055563874893964821654895424348333226709620500186960193155599910778877075582058312853729810703669679812828899160614475195842636637433350112237439319775259057862102828500738779664971298387318974146104244787947867467722979352737557822241990115883445575150915233967408245823652051487202236656561097510225994265770547028926433407839154598970868564049700357855182370438288363372930726964381076547574948006450354545741142351933390410587776481742037791085529701547493797149233610897285880557978083600084711843545027751619595943629209495312452824191244081643904186254453514440817819013441789821016519764728279294155736207745008781589623959867754458338687147034864076336674938316020860944870570915633225230806265220740494833881605955126110928247990709445847878453157948804814563507651208097820521033760298983426904004027985737259761117439595983452620879760098367949260218387824764044393826252451964012687234774181021151642461896805608511147378610122289530666706852596784051306192787126829228481735213810508913277934880618091416348393527168229364292898500311952135365953512144180151295878499259402098049602139942318297184619655359910838924278979103576056260882721611114554306442544169206078269096781860730574188256402063223231110638233687374410630239641371786936397385842893458876224832281785533645438898568149318368985697410700919688773869823142100684274456868854831845814170838819845667587260702701923926162311100129816482257610205456845193895881551633061089651897346767117239368768266010622659409343880025955749595979255335885642107936782931587932468914210273298581767936443343255046222131641102581273957875096100651256530951255564674933599870267187995232707327949210247363718933230863380022839606653113160286949296908245511223298892712768206917390424757659966080250745939016115901319896577454035223698083490640501699451549767984755280788601174332543207104028141961219185167781560030430405349543317795711365261046951508026349426836922963585991383716944265669667470852483291361554804192908277968236699363267110420682443563483312529541004128292788014112660549212003823372345433480776133145657627228936162145695780611157046467453388814168718984808070969655725854756312201843325192946440953767527318916756291853485665691720360588145028061097116608012002125035911641402645936101751270134239006454603078024826267366243773749709699820798835923725515681931451112618419014270571747055995428793531430706556016223245555762159700770534312630798644978527389794086490955578472146066014412832286551329182427162888676757584898449305551928186879748590732880767555120093792836052955571473859495134327891274883668462242965715844937687098614457417423971792063656280044028149423613127898480823904193057886792470643765850119295846755572779557739535784444756015503964572587123498383439597311744610273366288458139382500206685807254856950751024372071313326392822552718056937251432871822920192848444289337815153759728122002640282002259596348453435503630887930918526772047335250789076927211254122906054266179633928947474036412036466350187233854097976085842973234697771522531236389339776488389410052689028230053917232234939066306879323385824539069262783036269580373163942318878516293351481432564463920802899871233147788742274369043674404020575873328503130837190081883194905657804395747640091903823771032625955382412094582386303700278591743084011903859579726989156885851750367021237555692396668779678548403037798505637152364141368194414926983856668717387433313404375592796339437638892294346337351931503426762579848270870762736312494399339868992542900129412806385568043448244224401553846899342108514724126883339751238963205068403793814540183568291964988111754211569720187425071848604221716621243717197883355602284935902295917595201070637702719425003946386459655276556459861150546373790205080734304669029328186222903769617423000497836465908008133336523960187864733562140026068996531648838290002445714548801421077986400764300589220191829999268974088023625983864905354931536927739316724945695583171135939307753570243271996064597833460297272884290086102936391539584997520304574456862322770212395408587436284886264461264984233952206721330207039126072607773425553037359474674223553088991098606660844509251856305528884978691933213339217647427799478540578282205039755446203154116614715227701194256786993808099618268011934043196192440082996471206438134591896597123456252670929285178727280181163001096654922825965950447222163377573970989814147249113040912419694460557180548681360985142697630630319439132093509044975724718490637596409079339895129097654735732935047853327597363057157297815804415434180166010584366826399671650639456889004830357720432397841764097438367241127866074970242650113962248788767846655409598359172491160390755290479277771126611458050454860728420209305409465919077584314770428907176766219532365889437040764497890363175920502101917385322202558635591842520810673849838617276233484836860603003877822795110590915609594711322049675926450170128473199249373439059629557565509507295598907522052293971247027726029465276258234471163585274009400661411346277292934209073473382080404762689362414230191863262686470720461523318138008216506292664144316215723935445516692480651842868293614085529320519155957420479309134804532690816791658350833115677141652358342036744345218167631452800806892405075666854667758365331215415203727680892192710139688287814506280342548732956799488054950085024940577178325210203626792095414919051525214289399712626192317568198160094848462685422646008168721809212636186049362858130174556635000415464355979728238214052901194701933479016578349923662526806397609293696617122346506152117340146609268133403783272787939330250882439524030835228532330372164717247573150823521220171336564184617843034270649454430931589360775522464436137268400251468005724853399401011613047969937133297183881678452091568010082916053547668034156008324896426174067265025562696538027088667666154584698915894567970320763239626292421116608251333759451211285469098699742032667455071564030340377945518779343075918289681954214239885946916260607277043065303925744176904966154882994420403238703806377011187755202972857594421588227198119389933823251929010675074796418196799343907595952135542644102721929416938601657011826126528631902628479195004600890002423743797694817792687232013411705302343174613806990569412786671701681162957506679023373852993658725195353144341884693728169780000471964152240638444489471508439070423710553609204188982251306099720687801863307901958548054334330065455353382721284266642106300609212730600553179256813679167210850929263736654442027431525974521318077493940283863932482827523720521474445965241524939647969261725474873296823451200932950031261327679620577469248126924333002400692777225049669586496951612363912685610536525064174935292321482702440793350952860187150548979321354446100169702014990572681005667695158700692779833510361800024312217552661468997601082144283455079709704041323959651271122953343829805466712099854229981468556138326947642666937730241970535491390887767733005185039434975097715807508135314856402857918201672884596309952019509199850625938075972366345141047938713850067962826079430294390670619232522427950140178307675774104057709641703002151544801137021080666740875652778412708266721447127388982355947540570077643014303407119487889318954181751351353338030906077078622986874426524333636605250311605056514433556365665462569843426773963893224910756810782805222703990571475095869191915454924707059489336521123358586605695628049855464535773280953065014591095677533744053886725764347215922164705784371938039137316163251401265186384902601811060054868235506036544565878109725403773001857680986710218318197457011508783338300378449325730988041327844295522627458105625618591306210869470692989327331736479403915013031363829142564640510114636141438515873146877102987886127029434411399437955591622107421830204543623054047086309470757607841024246372792385742781740452248504449082814625249845152548042839152983823773786424663208124973210970595248983508006715517294890342627535706333072122573897993240184247356368357167772503159763766675531270482469540462048853382695757884405647965582958874837580007506801242639732114115202209288229413747332818854676343846521433776456795295122665535089973757791005499843617879058866219143360858320769478802538432770702148158588610990392756477975109803816319260414706471036678687343952033914982216971826694422140947053041140427021178544947112512337945780973580504181602562831206203808731421463398421715216963105116589366906492282741871204248101737661604910766199920672833053344464926290573331035670288332210179181440244948230049395492349240046425679025426200525259360404120888880495786976011134774719054789302520588365101022018063698782293050281849429424397010442859301879464400101192356262846412536491397457303761509944328778843519442897402428673624264043968323201717427778707760720128221272919808623378239535245926098093984781637839263952385805974242126997722421919890314322285989636069882095131594482901424578601394338062250854206092171651040730823965555662473076436879142153047270386708336676478529044034459228067148710494017874885338067761138684231286022264060182075921407074600180294417920070184074968942428924520995421240872726723104084647579462403929240723403727118702594136640341154922431960666869851739489980517775715513951201991716350121889995881944156923912140293929116086118329460899163126875118650914859113405255707086434740488363056384951326416073229157867089039731162487350477967804679315006420768104495185566843492981711056971804218622107667318221850889266786227936738170002261190316722960337737870358440647676691309093224049086614315444361828706497667777829412578082325756424851447587337740007992654400667615909314836629006170255753262256481333060411010602086736171261909756458284053649858145432173861320568085895617564803081465580439219764180002646626218340122139367872715384593384159117513508115813618596599792103643274076350874563267657694380905143088532346605855972926338477683084787407686027714672830622783274413186446915165730932559661233427224283561194918887277898737830215734765008190458660388959505620296438826284349814005155906234575423480099787058742174418598212414565872800255267996055598346353298961667600401254281319218836070574676810169894968334528215662350305146217600898766267295125705767996143095238487160984450145086707572218439175267105439260936610160384685492315833950025011023993152839866927855433475963327281742623018134331332466945482778604850455969329669571132371960627753414660779810006109961441115926561536881815444260993638443202236098312239922076268463277213862067011903129952463450069048169189505781814586054714664561999578822295938607223927906436338525672427956337057204526912108135529631944717891648293361807907662443185859538110225218907902933816125597681199391716171122650500257438838100530684515578889266846463422964800479022836256766021611184546577119210438873907709529330518290165461775585391720955425049584230955581063714013257817770045605178564166726104114784000889572165050572040865947330978894345977623143897193017664635021637205549812782943030678457310394300307536186736134713708753368071009848922085915070793745586485729914051707641659154362338173596682239914476010044283514063498362281313043446712777957092712633548102874201362211195535914154561650725873628815575274237090935254962721482897613706414471714349385718623792222402231010276973089865619152413357911158567931974129032393947446365311590930232087948808510931341512048477075719569374738168822099198511592294095406414708899941353392296110427823725417699714777182881172591134737865829868751459793051777630403247826669833522879998617843387580785077219629106824106392587057799705308071161947215821234473580342366730363974990640346505288154942933851846931300077948565975635839946149460331710623240872012631982670760518740612641862442566699792315227079179642694843074414580572878495404749585073717047325344150635078321827438087500896066471510528236804748860983340237178029261621742869322396270890300583326456702300333863772741335500734502328918354100820256388089212136506617561753933468053797286599119914113163568522921223762394742575149388168687668328572469919896701550714930374121186684267961716790268857135650299618246093292539804612683650770180181628557719643264795201527823173368659663338759678900788037638296529945198603722252062310345568355451272720330946982549145429052473351978016368827953253661131974981301001090765604459128591480575747709354662647830568009479698753678033772008145335755768591553675635869329169865949255998097560846578799638343664037182322488042109846885662742562564305754607096447995911759190346804524296272761449428188951113632043634695680631759691330816088499064139769203290929691012902513423369181454929580953658171522733834393328550726333263832477593771841517452036339828110582980456264629682214889671179208870466510857449986323273429319002176155170029097774651133903652723870775622374761109103415093202904808221872729660180647115156635624091773822209344570283736348068429162906502562574391894339496721428415423753642002290593926780229577953861604856135053989781264936573504068484537676274093705797492329135074283534181943805450301437900397331793156269378423139805994647366234926950912815294268582900088603367923288510561088482381924181259063523188570358740167399009410743300325557673230105545050163746182732370347606996665329919309112629002807532581086225503071773968466460229340893496114722511250511746555122599820939006787319275902400352668555432353444002315836877709642897477369723439358088613831862391350290169111649610117248442619187668876571047139613394726892289932443698375740813759619743523735083550380399425263673442865535561115210186543853680424574363265654675365481984264312833145293251259593363539813021068474633935890572260777737814451754823447161271620281385635165818693646322297705816515669803793806329534046200478640382876168044541699190593074951568613187171323316493379538141874829386303126417675531775253754291558193657287014683378678912972686740100607684836319633210339769338505378010939765337292366012200928928776541952685057576163057188238212765454173906956062898186917789102856039329060879137522774310265185246652749889790173143863857628475980865145726469996951533150492091868229686127628732328044598959248251237493343893723340506903439495578322955105012225851049804334050809795519672701180138595638508988381615181149173697707327636981534750369182253029302778931850863505254298700546878816507945755615479588351323520997309717441714363604832370222707641683843472944932692515111172478413476393243100831940827818741219498610417533911624309242255005182099207231774459252345764511493981892161729878918147219060999791212984587163155361493812151553624149685779741371944671741679142763198226439300572065436855927839568623373330650515698343268864342863092036761883776915483737703908100960971004658818086395535417264544541074749887186848704844944812323189993455811678541560441968581994209970217464915040754458169820363532569965958028347619666713533270052648428742683814545861849552472222363910627830472214440351985607145429496979002590012047826881955136327630207166495086707211015719271412826944113608689284239599433507660769791945128402830462072297822641336730536104151188629210039217373154218233556689210575526343258122250936189173641501093667866081640444758825950439335839836711351967154972460260011628700668402466194178406948925871955981978673990971058871491863294802437366995505151987835455709253234258965214833824426594923423015342755588870188506934664552028923644583746170760559169401761406183012699162419230073931698124284747896712266386550544693075038405928815723682925162738858547980036356563865464431711259849495782356346203298022267347974553512856398011677886380192305177723246251573532374563704694036022757333275139558474243100217320543674397999583552274837453329599763323690348231262867273547758409911983173785825159475373560541301461674387943898261173088102672479373720207860998955009685888086316171907093378748386194015519037674094146601084770286384421830359565856069893486427612972038342919108804809197488561197156448730301682649666690076387252015064437095710737269316114742864446473697543765326014953662466629646930186297301263697246503340057942448808793967645611479880766058919938398854225787935848735639028917567815607551310228508484748638400191117621815117024695205804818264962096072112691292741291188968922689860534981528090590137242202308497285027416606784796081574958670761162255919681531012750449780394952069452927710677721400351564597914835287363497049065939980294630563770852754181399406907742179911736349787067681830778693685940784750939436054794873017679229627098982030529789663428600144100513519287368359653608646129944303641851141086011803719956687185934871804068364407387863129579708279689291775859992499011324006029937714975491449274403173578759162049442896961742713320042323454337961340754803759200892398550938325242173446798379320274701591398086076203991651405189648003571674750440048062422368811756062458503021736843949737699376206133127730735596416235961847268441283801236004058870691984344353936955461439268433201415420946279130170233246927388032933287920989595905125473498257429159783803050108348717439453031446257723383945224857349039596272810919279807975422753010600391307222173441362092383955029457336381471393118066797579902246540096585667444644084970543454914829165321320681516542917720264108810411630982764644324600153080095829443164704947160881832966255299793721090789372641042484339724669028930393711716073179451117550079132788246618755224242399803457735749786979034265515157184434669143400479918733421126030714028587372790238531408255947740314722311173177675930222241600679165394332316947910233008417025272659609316877334934049785861348878812945508110165731908369834969853169703848349762256680270606665599617124322481218124636576948223063546569602876116870450436265888658168711082361467904882349488423440485414152672847696842051597790332305862006837650387415053281589413323109299988050290268367914241629416554723766072561535953838619929948526662545840014944668539565000097060248805745704561878540669308341915459133720135734693841123481891809895562256469152699531845091171394024391342844259974324119126526176186639142008350124216239794040853318086891476689485025987489482902914912900398862046768061852061085899378271386424914223491845615372276991996239127927810974726139491193368126596246901176516668872663614755291485739401991809391437101474812684454990435998762408068907790754656164846211860035307199570307405552365823515934288313802774893442276308169122615983980399226316470121835195853707851234320006382673848188084915644007717732720571033905161055195917890580437437829095051153038057214181814140649247372970476710649862878871620956040999319442681144606201634998367304356049967832476414529432516808716815905101456489657954404021110077459506832478575900210685648242410837361558890684096654664129844215870973936567594022078744389407677457390169259921622954917875824835760669162146298720634001288823057042188629428226164504768923498726585857818309804830892154527212024540296952056817042206256922564810075247231322256769827086519261570802708958522165117620770523489972065943480891024333210561718541328018140263917430594578394799266368855718370566345886190280965221576006164036640159323428202160646737184585649802389046273536414206375388624962593119289910172674648894623085111487420264525084143101503883246371412146340037948963564731792250902849980469406502412762403706603769805482974449212728426073735417700212046398771283041592203144389496613755170012376571502351319825647783099413495381892614495869586289652233727302536920349400049156610828238258180201247001421408564931996267295503908532183192708779949897569703822289421497521937306869154847112086909670534726597766849178669037003158293152671792520875645836001776909084098744276886789814725338709198871433282842714440514898505131039879823382400011722177838003623772914997197739351925983656092498612208151226794177924433507680050032977292765643011550496056821958152486143458422707762936492291464473362806727299709801188687254923860825334712719626629756016573749900985892111926013858332109087845210572853171217775679365967766213761381049498314083739880489712600244076984426508124573030877791000199319061408798577816013061930685537848887635779695774397244607248382943364394292622503224022973301417720691392171516395125188454233295329584347550390311027487602865825042292366308532571103590212053217989226329812324025505644996041915612650321560137854761877325020931966916980523753235980667449917994365134918792128055939023167500391322210541791119097986046860183596990053545621194303182700188941061930333978079870561946163227912991476934710506266919714070106320914544127183682116627955929562879852365207107597159809263459237312109233785082230287903306328668892390505157721832496754017491001164282577972145486081429837077812091834892413478847127833517408385890632343584995873651811506052917664263356276257247160635394007094712472498920981544056836506052949857052494428806062205522475926152208071521072354014435289465897743590354290656029796577691321673485144687578928519093027832140548893827449980558202316147184333483054348507738177254001600862738629147358485069723759350594873206230211745427564689564406009410265722310604281849996113646205570530380966665077578880805531293544652563873210485304382835686430499149157584706678367201150342211032177848929389587482177759055086659692103918361938606203024997108454225306022042138038793703611624243398495915271055889202494004748536755435008384982406191341082957121168315193919127680612374138772111843032975111630409090985269845107032436274125269114535189293308804809674693301458629071299983850511818602580118889943476756197965446728493469205763186089036087851726471706481360584779192895534270997150702581335253429679039571876123818318503392392568372774497324852048864307056309149248376225353624827994134211997924574725404813967989685317751889948782688494586116909500223117797801467681674438882220952373524682941085297669418792220608196226619179131140392362856170932592370199319091267977143409108530531845978942742922810652697787054538786481962814355873157968808431569845955324502329780881059736403567578034133301288494433230073169584226901387959745572229595542598698568786985358876339446178546302742232932037381144415280243723805307250187798756020541823131534816318006690228952237818012743952722362916623886111148469323117421393010142992004240369004017687253482246688534971059333152130590650966393132016697872047754713952377171336492116773931752882291196030045395361725631023410302745775657861045180347339981789703068332191011884163177017110620837092487956837087570526147428911024368046921178367527670004748718190627502664899476041024497503125010608984628403671764737637248734322095475663665296432684363556620035092741886245912737300529666971464485774204699700872385177400045935221618376130167838953486782327609882090769889128030170596305894984651319745282536997400441304762268684530890492959904785269270696695926679219889451258661549954673968771638108809829130308400297494770458293512080998920232533916917950827116091293836053830113509628315479178449249176939531296510265161230080708167298807930303083031004331965547866147666839434441890739981784161903741575738102398922715703699543136782938064568855657907438631662925402268412683563372294147905509021290453095925533469174605034580554889617773752684154787948615024124040752214117561700109258265491695724591411506888344194195076988501725851223767401589476237572333083329217961396094804803650786223390465242014418545973483032188143827995240158585706355495657224894806207984437580742387468378430315370623592119143707801458549922196814397331558654493038631108649648183572814280367897972114221800034713907746800964468792098539771927461237048459349577128600143844200929830791055450821899122834870538809497915194445930641142597933474511026106872034914182115994841901500384410806983317113885765772131950450163878160906440752014633281730122356244308414586254066457339252612237478045357140008474237018987853322118471782303092594675853178683557996841569998384094514872626939961251561753736836275021076621337991662584915895557914752412202281976292032726709608986748407046319748109822216002090812773160609842048269533174809587602405236317076230984484029079108078849373232537731583626716153034799902100490143358548234429913117833881880250385091381481201810813053384065543167777842264612219651411802216995180034618141262247335833063300466214699871370690787830997924440308534571885519153182885023038498009137468147514757626169295957437023685070050422698942619881266796623049233390265677649723190627746057656038196969876983921877670816997247017875784110798111701768989325003521703190137844704115456655151665972931962946452214745593638368252104398153664734464218806113657413926823777121367807079344058149696563815380993622033386371147891881776220743411209474351031604599226676360487260654048601568247874836488888418700031540383238537309402349370306830464131833249050044700738122316661150016531010666169620344451382834320354686803295986270234177738598969468716730649409690987903076129576919448038900380654315619131944338512159584256009972914556409827097442998991723764735346668378031162829711908122670582383488339798920857665834561557994039174310015814034100471632337289787914913340360089705542226976552804571711237004521391889053755196738333996886739677872948340172408148150320091223200887892133695905681359574288911145331523542168610329431373669484804792485025600048271955711571167496165922521332132213181085270868963410728758084320050868609733401641632580585998387256825587774330556664396553422289886823715960827792035153133787200248749982012581211789604812192539588185601107263818082033796801998461587993939948791029092000575304958385438723372618371867284701888991338841110127115887816177589960228897313418188818690049703616585054722500263342194611923340228299691979493103648437711089828400856384578005502122450416456759065398976891568831869776650536220171141789436666986773492777988964229533070747287112111696358434306818556811420843562423352379296598115375842676361057562909858615904004317834690177857829001022112124989298306085094316424626557883823658089823589485551088578149144040815864513620970115150135624455490648947190353738294626811755134561490988803860261428077308247611940054262952048477223502433083270425891639874595263571605431090830174029198464100901143270260668607591376794564018485813159625927149833181078695058424083865392905547730081530404840463119441309629938360546336006254658532646824698078070003479078776377577547054636007153376762014449433866698664608739432275843128145418216307439775586314833268857743466230367391036759856907063929178680175592244034208826071963769225599563609902082462870260443449692358476270578290846147507490260202280851207607844012671965938005016984349134349635191794616539423005290274029701846004284096984273811024627623186513217236470771528430314284089077577839946582107025852327378021266649538432536027985509592502254604530768918673065362292617624925294594440576637796209046229734796307300604856196412075521403690794596244577886810547528277349582004080547176337932587373472274628741617976967479856215045764234577056831076023654584676396528211403948395777859023624420874474691785541699641722822814520497862269750212023231196771128727005522212656258496651549241358946574070692293795990825564705261977054923278703122830745780452869212477550457046452540555597701435143791574218028492300705415101065017059954198881022879623343805974280483058014587183208182638864085858887927852500513223393261843676536543258575930184200787888795881291768767176428933765065010762278677042089482691609280267354517670620500384834665575007122766745818825596577124425160269370913571362127666453017289239336056173740504825834336914824075143255486060958222926115674688983342503720953356748640261804441215960005199062309448197972001890961296941447483211829979105694115529720936523039867149568882886086158768270915341860079630113166197630869900123563650850956673143500184244993049395302791429137171854554073135987219009966476355903380366867453983554116188747864651753570296895169584404074947442340169115512701495165120228488708482133001350883011772518461074029691840182746720277007563473718684111635017606834609003622630905119006373430098916630116997613191845720709599053878283437690307459767146904990305892838820682550319817864825955889699767901414685608810286199896414350175568339117728733996804126702630715186717898283412551379802773389783934144556744520513745805449201647973315880311142760553445713322518580570264419662695976395699751675391363166344657841524018942818002780308555698667182918481122592126098835020472053800079088138568692549500746658859522462328477683243254662250656899165902065113080862083516019716069153582187698093056106740154382456988891503013009814987210082817427663433851193971876949052627045114387890687754974986783588175001275345172160928567112045097077028464240255126976624874728699325639339575609128166239108544594813936465649941255600085102720743206461335382433701857011157843317817378298017654918357888861565068597949085146168111689999402875546040486969918302329057424211471771289434880937420597742422737442892494529489285455379931511028553797624141135039083157965644082117830952160227515651386939378449058066964662969056721874921769396590115055217373975393875858385802498644846364163727013787667445307537376121972324292942487866882169508136896725350271258750262515588804781073943687350682746884742609787764647369499621590296050369498805840422577333862718100148361518632623710126715744999093977310633885026961169211672117988515562394699748057873575785427732174671929015061457711268218984322300814450834509887573612077657326173931170865691004232318050519912314143963599730623152686152895292136507265037928036785160789356988076239627859161749606411492107380928080152886284541755359867552908753302797543060179276491676322101322299797675497914157689306015427968971524130050000783093759281320246800156727418581309664778150759976919420050521736729510972756382075737859506581780532179991456773418665478230988407073544374060962741199739269427648500907617116563527479019979487943314134997248055482877745603634453388077187861338477861234208504651837520878739235555251516848400119344087815305886692479094864020434570032252253082437360641361656672376769439247543209744381117400472553663506738438288729518807779484552516359589203571812162179337832004901313009675350088183469648605381412287611726762699996856956462846181498890072842857823299525940863269818788435095012685997311182619431704930007898075260971758416542552585303657154489040746384683045937475563027247510112946470121360006863578900300945881049826378260945581258268064046925175897051343952068010598463895659826723349144450497022998602390986242577758095093232855314200985887127477484479053612294244840175225579086106603742815467619710696222254575891143057832635537435278230884458969666721015681046144965504270800368891116928209736697157530941178041147101522136562981072618075784426261525305172997698115245879158686168641356157696274307871591743194922694363025158938635643926099748846733835481686167732392265794778408087635281154316132924131791777633146233887110610678385361856346421804333856542787516525890044387710581290352196657664213841807223745845132848062176495072419490801141580798096331319042848741132283284318097542204993516657126911302442534285323670789990583049697751574084440735316254092427943153515320024302639780130145607449458214370409301628369998928168761874959817294848307880168801801417879441402564787012032122735874521695451556858222712238316752636804998382905816934468396074649755347573081963314112113187407947879499340801660224054207660870813246272755686188283384433173910805775566058070487369243304416848767569493715235720434316884516204338047413661928072936898911684272732809935586823721254863585890966505046263410986024177929011900671545315931812738054136276222619270322780794181248458385169574504801027634912396880416054797418029254818000448729390859934869436927682789931954214068559050183877604801908436555753510822825485017941169222933380954657900491268432085692715127870593361912506760632821612777539924182993905154664081580738296999585867522436435819252882360947782661649239060679313253023182330035804722836831357743533096658150036398594966301730807940963090159363311944654348423557325985205747673263575761282745706123185190621300172487676660674871713618079327771994782814478219746868424280869678397272621826987359819536894224896402755122343616433138172127853594935986688951932300620904611491690465352739884599990622832263038011304310017233853285779830778567191903904163048363821180921203603898376596144440102380708292538673045033345204840108837347230271367240351079789592470027886697521840917667513538630600760156597535133348767467015787658713396251205594101642151985553497728882230998148816755316100823162438214487514777790408730175517240794702258574137209869900252104634972226979549350583645753315904103615802231564297060863954710571474010744270310974505173824715550313723459929078815108971177065569963558833379054735697362693236751578351272344502097764785948656572893311794468781448252364094249165675089505155884328772843927957703783856007764503596522580500307444351285638349209635638987459660854004197692016653661647358702218477785798318497176872931109623160721018464800166135012032880559587729757356392730773106781353857975637046294412420516111962235289437543074123128080165138445864827095751117054576260327461292415345785792808221112157419983450986146906114330375301184193193957020742509474910104944799413091330231604350876817621495410487462589118029601204928561424986105505349729344659333241268108599414958020572958398117931233213306418005152974799758612555522799298578655353570755910675398901273141790415903964726977636190738359171327198412017898238467664219470102730449887982408667440299630196363688298604351527737112526902052954083935797803795440280357791680374900508228750214416390652079001538106102377778725054511265629452793686716465701378497776519757196590723456847219551442882957878463985166296575801380428792331251317540773687890165783992483619608872840404596053542588572554008809839038543910290550936984372561867250353080245978681891437478711614463287045024089884960833065393133024777144533361679089031691237649616960902589327915046818526797504464093538934881269062184714804633629019862543064973302565270465312099269146116175295760112041597900506388411669053612092092274082504429527816963762563685917515790855479247979711112117104287698666868146963782055032480513817287097562654427552552924837040122593623032608307163962342370363215662208774429347488601196046481909424626890528294236899911683058334190132182817482283477369235359425256461842820684778728758992955480313494623351044991743800163931739704051640353290831940890664040342279518573016647157691933401436802251740060047352799549065589884052666135626298550059132505947929411403994844650874999858875109492952335968265484849942138235157606510737349925559102853187009233418321021354015303778160490601879018116969483957546553793345340838475017625326051092492997555971479043714198626219450421955129188390858653635583960687306111853167446924690250859515960638998217266999307246163682920669598695558151266056073478439306371321185458538539494661816481276014008530811675102023815490375855452591965610203142519513189588368367533558077364043430788936787856211707372740740541161751870910139569051006868996491384415739986083045486076150025790413682713386717054307893693052753483040514353912338151968312026262363614720627221264723909250686071486129623170324661973377881757799668028666999007581939665531246981164088607486728746198248396500766218391068814999414684315737956560870190922836931612447047444267921221822728646183102923249635923240939857845389395163636833246096308184950755671632096781705402214254971375556621034015017900441499702948852667009294792956790193016059578817749201611021447045580432253233394202760351099689410940422410209009351689391002983990863663367146386798962526139180729746986193504663446949905283456347368903110834638336261112962394870742335196732170739164307468175416793919919810306139640621959328438611269865402911381487130989470605154315354080997735271772482882499804819281162974167624600984286132545739618705628256106007822135984362183112267767697297077432065909632788096489604439243832593618039103655448280646952113068872725133652893108702678940527705747149295455674078884959344277285082242748773073619586088365680132901901904830223406984645280384175584672130159097877198317340791984798644754794741803294056783478236941820340538531326462062365015345162937925671585731965478166123489570385240732089867885469735162752039616874954313632269545494137806078348421233496683669069672630346047305803011134883578312314681104380504256364579038013708069717179848546799860457889498655469353577366400326179327064032911925103961230692264914248331904701683984585124182172824811728656093762323730743938665439076915841634899935598351821081204780557358579686592288951480136732618316798898793475373613561920479607771519162439186970587145424672152202419199222813194263852764050052153610181802931081486424110943257510400488972079881347311483309545379570430223457984812869203023360104960881082365474001728633208259607388475928257659637227115661169889291806529502368365097204759181879408782616567205776759259619716367731085622822489408716917844209116457493488847237451872547036972291527941018519056134785111437192647661097665345935390873247116684593740424790504323665315978509822214430576055610926562667225354558679601997133476523329325234984243244349924955805896012348320038708825609839408224869626526354029856768420841930702644238516021244450042453158061835914881092268098460214209461917812627502125966678507867451405492674589263904993616425447650549233017092078032949531754144604888680278956424008742555967978256223856144285480910653437093465989420413178147900514229390542010311370401188857369433970822570041980048936444036019191897566918045160660494306386865700487760950206954196996544066008708981521929045199211112919284944842316297923991568963461149766906719164624949808086698442662636211120714735577063073961732520222266177229026710511240874288434533791863687130908167821103467077676042634538737241477321992433894056980080438134059253423112762025950091090157434486277974081603791597739366978581707586470209823320224198359900405069215905271005952549883399332342699078474372477808041845746540076390938724574648961676246121953156904813707600846190266080774185106836008755004553066953148323709636639276714037458813569830294696393389044423100751588063674858837556899186414842426794106656028965071338101951726974724415463369866848470674974655792544245382076425131738806363779636219904967296841836808253078040779583275538544730557691531099453974259037531200358214952021869231271298941002196378497609886414707249383146544611511298789214581023921952542122204635312846340447166656736485449980901524446916717200333735206135788604964395725873006729315628933347355223644123230629133614460499182859868338126848081260107029091421372243258640789298680354261765791071427309213821700945916866720955694213951179248119767563870502307766166464375545826893444232509083628388306989808231685571193341135547303765730987263514520599659583570820310273211003058649019981861125122140512185278616892028780143242495973615009645898698626647971540978724036803448796160122733698114238572589357985341684236961752526745938184933077242978720303585841899995714467990895191982909367000004757590417302755711947622580563976527861526682268127832646947730425458320445674545988083720317169478987105821363001494170179737352994645350747254331908484362217455705145219836598099127807626826388714053226026139303178995898312379334693206786869755183203880224249356186560563606149740548531033718952394613083260483255465692243469286958945164552387158944303578898220221220027139553175726769151400956214786619870847400044273849382262779511637536792375154624670486988293717730422820031586625492087020367042943127759238697279019844720143861839930579877114691532432011372570858081738876798496012478947182014454444036533590462038527596897063953523280232537338847275583361512275782882598100613757408825814167146364325820319638775356386286821345413966656099484138352789877406682767599239696520787688607441999987522981269585779500420035390180572054962195611877480781129521044774546294773601232479625739096131966404954323490796164473280099847416086038138730496141337396773959666956755266639648668739558952399822015801342156430362741387697667170454859403721052207849151441461433523505971242972695100360481853108494962528554128668785295355439569353667001766061568168646530401389637159916130890110946984198757877304861479240357364847515938359892158657149628010379576964528258020202602216609304730155802585868001791099108245138385086368638577028733186601044811484068440293468707178052285408076653007802109106521594207174209371437231250579693118862475573281071161494718327383238214206202839792814393183735289925756483098382724222570242845435203584934477481885230358485493901166867371963116680610157811509333949514057821037704196444147011233564558126619397979262635608956591084102231768679158060908396253778223213845645901486866621769743759522880371252410911453494163715401819520186088152040570447102036862901859384742023992634457679298127570239605063475332209162143227053551691623694344663575830606486393529526974599097496449398240004481676670155753983964012244879731711063293056195762456375552155343165712847458230083003367516551146216075313557567573989731813352506058938765082177511799505157547644857157500560886180321557570872428455751691583905661809856171727253587484322186822588258223355125416767805528300317768785126834608182494818300622212287636609882881595070621669960732557280946173976652661842860500697255638309004926581674146329804592882145009517504417401447275456081805908987761917834522344291881566900169511030803821774022772314295160954216499008021321336402530900925214112273561981242629348411437648613228244268064640501557232553728161317318032865179374890843554703822016619216527425506969953552888424079599194629321075716347232340495987693133478304674873890944826471550530029000420586858909715872815363886481037359062860497648171199622337022905673073732122098483968018645095258086931096667408232234984735295721445285976737809275921337834279523927255447850687320690430499116160672747360198612071545846236810274706823512569052367769402290434251433575394827306054691283879656726299436082091639663403321395324486514772032325772057057850821701784192503125428434637313959353467179151651964846314175648508007839438322080094734211350585217039853751010308357197957422984665293544395063707161497082480873883180918833264819861983845471411324257884027127709970653964469525645379787863573906983031710803205588237859124170599484941664270571274925314063405267599299905435241211431028213504595613848344262186393511316427529903268636275087121042513972431654983539133723937651803818187566127519444677250596941381275528526496695465897929744662253249253883768711097935880593683320601111868861584207389906060094909285246232815320771664772917327321211772059851669944633651812518985140571767581133245513409349163796694007510748679658547859876121117442621278760009410544907049084053087102757341196610346424243747716523463018122487603120902068655884053477297916442925515291690534140588333901386012705525893984423997008969183202824864542347090369187171388038091097851655245703457622523815781401980637498926989109751226704563106994444506010282987956989848592387364524979171403867306687771581635213289536253495669494134407896210934560045199165059902765138427788036402170385483171268339620398031419686087083374661639783848991391868433854979314025497642797846375883940615668532494522452967238841133265378804301224525173246460163250167065470903414538030440285607406297236495378952269031529115541000634307695522726574899588482660951099850298362111826340177163477599520384683976337233298622961228512106341234505031879253699135866690871822213513228148834950226000259413529587103183802434677590478656973422968828643354589105336042064621613400768169726122325063268169687417434368369432632928233353832993139998431510214624784971732972767071273608384855092590247898004796683304448731704355783528271829846032771146584247917730171866271906949497284707495790982914950735580062283787495450545821928775113901819353697582129368231950984022774173141822277007582475768322287615707337595213248279715759157545783631640097779463094460544619944163761893287466557755241977812817784079328974620924299079104975027567469790837709912227695318389874434098802978810951231751675454285853407854456702762142537641444222427310567555021153956275565089478928130315463744708904660952710566480425819180667722223789109976549049523931311639501234994494321717613506640008590963975176443742034256946514564763189168024821156962521271037684578024175049070260194497173002682845032236243372397653793850322461367541107876871087023122922202650481726487465502453101498530493141563104752821544068289186518123270185125110108194897806900440293520932639438094384605819568034539967554374431613551825256676979872851900348364844145163382181633150923438142850690414156333061835250121464607151782805914792613089958087805892084517064435923306535090546412782111335187009287449670322131639982344751586133577421367857641216358454752158921207202422824662242251153680449450555431914479733441719050901976494468502013908740524681812582237511355947795129480366852937777886533402073825872078472375997194660627513908510811041159463719040868630660552317664538106650675032439459466519279703886645023549076063168154540244958788117402601306213661530744493084754206636504069816091699464761174485298388284127473590946897684474909245720666121159681277993421848139562052253212458961730532085074708262189877517526065412427263494289544337177643917273723778701601690030917520349839773560589130996792769466027821232152858070138239410671963619181812109056018205898665084159879984531979314890000114444483807071663842181784660437477298793571314017852226547413595222399695240285421401759333642329363673754597288419806263261384263824724540291973902077529845227242929387391515585183638721849754969686461770696595501403483779407553735279402809379131592212104116968039639521924625565970633010516730054147535412491626156478673103569246492330663221247738913187062173189343116939348769518813847045572067451031040539186411063654325750658054075595120192365255473537697317642904743251401119244686722844793746571621625980718910032146562578075881876584548131242739776950043746932892500646143512232328811539406830221917551438366926999982448162603071793627631872841089158464741798626423998744028103801556202207586303074412424301707433726265241546240023270349184095147090572729007811773296872321384751765356559745906682414141276779215254135089735631610465381036168011728346146369793903964437736346695140958882288803083769775349260223483681830543467610759686962876314878724398028907314360793847354349284654794352957360791335346631980655011795642204591843506378706065065622302156845603093195269909035749191566183871464686616760971574013136304526160128235608021358028025525283530001557172248252489566243780346135256577822912657754760959343196564784700829202037393506224740988152906999868806969392234341616957831479369995800460023063116337120248149111358968061409947460638917176129858554628207756071261741706063403942528348673067738470969736222451084874290556796384857776023354262956208052475885924856127034218289524757957041943236867699709718451209791222530240487108013893546709548654651480812311480595121768572650434162395482716553718719402784014261065144321044616351679444040075978440012275595074613051604587380063859182853496055453386829921749250879782771252565922610179203748168658797675886546360765494448144451184400262858393585886594636544161192226839126930339997791886877815212745113030574007678164113839996189151094199957588732381799461673166884808501975358195476461322436219883850078631307402326199867234661823754735494384081203519814331869620218570174948459265807320631150710395172449380931778588982738877824655752594491486486192782288073890959846068157012039126503018314127307831325108246530733942831309411584560380264420247864956997342277775511843718999636915434912313581805177858522266180261081253848009707895360574969313971773674557031056116765620198776600208786535869172946040147468892674940186293602367221005676958300634293006049482440445242900963038630868071263239053226567225337340128077552443016135420855775083450302411464149136051697289135279792255157581714617415510872856061206425496119289273796437433377903276130938605862361811063255061587983134428209753619719222710764788032966084582686063289701000913981623148821388858643629626066693450606441270707612085878018823726416946653246194760073668627247435328429836626535466923898216419923884767648110735629121987907707853849397861318746825147512730779308563469567153745945707985856960989008827851567988530499443568922956797128288888070207272665637713967630514381304413157034194895684679797838950032228764901480611196162537940735830399528007813285836285847618746780965940302007197271008850957201579846262695871569288310670114227905150572855278752348912961007305414820852062659071780992608608169034900274301912974492821028357163147039320523187661983958213842581718168982488501600042322633561491808247837033736535278679353324952406268404978501995754586554346454725829206190704695096524257536654790434065418578016239494161106019092338356348615579488765234811560654633252791059781439908237283407020502241936178036415573023169068503474790228671391461430908758366710469192128074055849846039183641822476740938262524680356298305005370926505415982852521490198958991329278618059639286070386179300061364273317461942772344536235423395883388253342353900688865887849177785253950448910410594614595484353633179300871673042129440006717855073033421803414357082135809117483524975448193118696549161601154641583677496159325926844210308100457932609959385791619556206976411523566980491958497291075879132075261955705774520889553340141250095636156213465014400756172861220162913100663742494466592792263051377061496808222115431573758738370736477170718965214150749874418282163533785242334932217352599803626787382142644184960924075147004744910081094608164628437055014208462268714453545869717210543803810485628068996154912210236226084081038966524069285819362127985198870929440135309102764962505418810505985521818708797523123312892249467357234172682291986857600792270982031657235988704839050409353170546137075171573100705428125281772913896197820433285836661642256354182381315963676449835415696728872848645414162485369842579146909508974714133795430014084663846796403285767468751573545815034376530814232850653966836826021771744972874895405766785674533378475839488300351013859522770140242597146737149957004788016797530807498444240523594707762146399650006710702815396310912772442374525602306222119333890499210997489414455240131631372883184811817662477200080264339065202741843020677205445348839050419012340259119297280751857981501780402983918157320408032263907831551989675431823951330039102514890628216907450209765546911938209622127066782504091766118034519449340960119718208123875742407050902991224641838403615844891744572297966191898616128529522214981886695981094883999133818206512956541250927207145504137602172569813595454824974926960741943508653400927821082167405671113699946578954134763675067718495597179216023738793903049897927583930472388945696297978159988308604729069013944721835474002189713613123489413281143476391993078277639668632214394699426687041228927295237262580248968923196035889829123221223348146189380956412917473636539888826016361542724461802713473282357694235090253685594174235385119406339436251879825722658979538786836713557567627452988840127614208070098683171890090698674636416622655518775834318934371676592414643335985224883422069369784591716918924272556700695582984646029735419314144668562330156904181362977787713012179219722590048763641195138640979931839042574557947227676539997999860793511584179099957078130562060242830711440322252616906034948038914329712932514303478043705547578492192185568171640604573241276529186102530106071822175213665552734861489104090540319265897909306176741133144194649589355367777371293628432040393604106025397880257724597015430812717959768388366169208689930551818349577856665194834185211010104641905122612034431876907869587537404408678339212161572598620612552772636094382655341616317763328999503536319270036768740124414489963911375264322941910921151765516363959541208400685656447657230713670865917392265807312408880751630967773790094769394810738540668493739211761915800554007109805110049099380584738743675390045759518280642790181970809881423338659349059670589674824873642641116740435378335962816897710601587757460493539978505787624348528275969350162729480746083681799909573069645480009595786339136144709955753846710593599018321604419831739709637628289223693644590326647700380173867498441095032454256347503069166329162390076989355782648366182018015507040585805520734286391764199443599061085509744173576966701028608613222393780700086390034046837381278658803154633107164604506359454350093299358130107244557674885149109198452113078871958863541321152459723579302011895787695034461546342576408913443606167751734175830173127916784070658874076063543176481685950883107154313759215507809117734979404915075923668342744173069470802880042353671313292465476727157936137785694798552007516484790519180764893095844868194977368648313152753448901241913455780766203191292076397470487237371778435076853094736288606878099292876181315943847896532091088650269003963790544465789248949372767650216114077412777426443737285498575902115554244756826750493934397251283476624651975322036769777025710449037546652078483849343704647036888866214042757282855227108644334735288279072129652155685491598353529219769621947846040804312643351079556800222339805299742758312483546513656979283807733940407151545696209932521223131473295749974431910477228966313428774825318609552897445063992230614263096607478743461180206768734443003475574060802073472206501984849990955371472763783861846249315788051358698340726426315726957431105379043289553002378389210689310978028890956588156911360019324801283981776998813887807028526006017923907085156232199426204068886674619251302905906077663233620484479178221726530644834486805722051410735900980688320382337444783499785871048520819683035749291220521832173807234535045487701182119325907291873134806454063492316790738439361373333401038318327387601949705674497561134798217013577499793332313999670862031296944068731405134947212467678113547312331402774778525263523035606251340093858076962480196042327795957329369864590878900512178513861485115698479867477174753159612692177562593094501189184345747658784234102762483235968494060293517329127384587796046274143961691736725030655169994483942734037506895102048114218417976109824183449402464188955345865089348216056795409824007267147708667164647974609304767987220101556959427796269382549810262946867816563498097107344922534676709550727031272765929057529690585302740944454550065025034503981940523001756806648953975485758777045386624626872574353322078407419684934464575108231771304256062503279385263013771321553790659588961400639338550537659718133409001440688794946558126774695022554639018823148146703022453386754928384625840352518432562595757259730130379328053968189775463457648738483236081819172918617115260382095536331999305811712859288541211090941386864071571256564110887707359174596213067007007522983894628385098143797741706899922760540555910029578226331369244302538957204651703167034071072665461559258349639037159582903822027532591296690635670412795634443343712704799418238244207927572069469878951796555737545554009118281206718506298916345082661211476373583538494756260871975285835133173474497347662963231695354817836141270958574694617018024303342480550501305063590689515153698636004470176976029004433674019476289141747502225908867829152304555628240589701638915752171396489654235354832528742556410036224473691926689530316225677719429884889308450066411894890336997536681631749920217362129803047188719952377030983570754116134904992654770584306747827980052150220910468659257476438386491812457497747438427511777707400700442555660616950474925134258374781830824027882517311312425527934907370143415425293596300265851934384931954752065628122655271859161438695307503839336917400800843203914507467573228128777405643332734183834870536409286163697823536437839438943258735673834154740497344073659617118893642759704084441274510773770954091152678236314286472425408419682771992257362287348396334463498750937942917401295351776042228251872633666237196136253943991446165121344030160616600605696824486269606920863299526285197716086838412259716421523736678097033670145089365813854710393771675430173794754266528675052524044659962633498173175098995635741214421730206897087737689811425117975463317872778439019170087962593819724780256516131444104431142740092313622306632292978290215111319718114821924745960471814770799249125458415193121618831419858608778786102500121096143330149113498578886330679195665170208128103746561332293927097741447959493343575873568636186619546998883341014666095642749858822773926352581113205770201007009496489883116229736544228545344742825942514513611259856352276686020953471407581580399699627149615077951011999084688022185842723751508561227095641020110672383815116039830095647792672255609357040875129905994119551789887108005437463233839762270997753510767685919769747212962435599675648635238017842550242251214745490455799914917924120145980629332512715270689664837419208084008918764641715777578227271988657140385859610272339340997833751207435878150026944126500539837724020824697022601661457247347239556688767019926597424305400349220632110666591111610311593905129889890321939017270349110807628665093068054736954815138631739015113201854853170308694291668217781924320594904962788302451353522706290791003676492665803363591539300736510385830885817879207540981269513157799002389818610859432254518085657352113776350450056500823175286980641351830558348351058161499693875849221346179920500509045116655714072028407069472254049810428202250835319063491275356380758692956546453878970256310251905916701735955120234998019377414423508092741909038869985343765473856966657605329279884023683008020661143853120214554941709238339511602233473457182203627081846634191252527511348864062796382898929468405792196774584835676917141719592700581200570287795059369296098025848788130172371619995225253603291293146009970904874810508228594546128747818790076945364720768551519473785815945125282989062347478919992662924260254550727717108736250705801626719624322177241202564106870575105765668128394024202935962108341879945985670724159891957458193978582088262517126513026479773512638378259906970306858268085466298910695190827574864450158118214847211223923131762913863462409428753718801469853821728176145413247273070370485871250034780098221825196310140584137096339624256644396803346720651287848833422233296119223929958657561197104995244013446463387555825831847100147908032993297488716070185825226217170093034159075334810097095972257096235453077161589354787504568219046293660376196009406039612356190256454265530262812071521615530180289170348818175422084364547459601254037309046953043062537668088638092363503367492553536373764737041643491298808771291687354312887580022765231577000608056407869801657934280800772044137881942123391548251125516280070420493663801112168340673423144489037796882419136444214967955591391264210986000314108931435238459676896768390787443611817214283980487707625354547550542801800950798598148217117016918516407121197799520676544086367366339724881375856297024236135111333358293948362545776525622831126335945753383209980419553900083642190919438276501140292293183572411788306429136201286798957807061452723637529263474373848247358930930558856965891432840186012995942980284770601537309163393325213597971682113463400288387235881024886508119954970402540615272616302481587295505473169853877254987618327137208266270255295880229218172976417500748643814026009996523780647464240688017988662038199139856935591568874532031120873433286422692506496549280048527712045297995812833086004240796980692720671835475126039356759027899734775052945691525257401930462933106449062920271298200720133212851487452798629203564868217496084683358890159894510463467877844609826758977984912283046032075843102657566361947250789636644749481871904330990177800511780975729445787960540653772244096707861067979660196689556081012919571820677286744703179683450057942477504163516218370013381772127056432354586758653953464786515062404685786007812158234546613266731445698142637621145948681199778836677146091149588636551468073886796542309720990048326757121839117604001865504081655115037688620153675791816925597946074640339355595957700249058243930033893673757206314871173696260977349693507700355838096810351112286456234691721911178974566326421391296369635396605611054189251000640256986251516134631732262941211800941955915052736866452023466048725065706636388301253085569353737592095209710795150115816715401678620701647316031730003417824489212205332024408291222430120416097942498478990776244097056293860083874216434447350587198204711240025957528896390113904708826522939070012409510723750037203472394390344799437463787710568454144512882397016506591666624026724058303196433911398559119040348300630181476430607828194010346023426852994674963149481638084154893641798805020906480144418192228213998362578881321489884750027579880334338284485803881458561326642334430275927363131709463929021501449823383990478138325636228885775540720070033418242343403462502113536106517639957862714083009650235064334631102881165992803364469551783926027771850488827444791219917964419031975870565019385486710239517539914492551248909394612736707833927887985948766080991926120837326201060439571618555457945086159845754294420299069885205504328705757111017441575029135580898256660036409117021140240486172623439117444747603614390709525372325043186457370142997750694716737796740023005009998647593583418711226446570791830869144123291130006528010248633634495567929118830358274263240982854230106494013910720146725372370591541261197982747172917894187731732531043628845441501907828771603607010175851400524462602792054469251859216641607557892475382870218600435438265466586756434903225503366178575438492547734773059311633873821504085989953626666737094790270954729987232840154686496064552505079936936356078018785748356146881856001919922452658017569172221868950653049847915564752795931877670676850644219291150416659122836919319218630839163775669204524000494499415650671955939127337622647476433654240373556014093380563360910570263825242798065445532153916981559695970453130096858803508343406832226412265037680997910524056897339815791778615369588246844678444306896935464003091594803480196605745931169095555837788357013400944299329963415056578995339089521623223245712402738260618862614009296189903922378656605571913982561677730795642215492900705746006135950167272616309865923361785481204056391005787445643298573298879671305334561365553957909014463650737183597619738137279006157954611653957842458424103590804287021326245895009499939245393688136267027595838105303088203723153526241694151167353902609837663965340293433006524162344902705630773914508849547551186360900282108965720751407706325233656645005948383471262860387918434931795773389114591916251089439645235179812081238585018360712600502370756227666926219492153164956281320620421906263812613811470729612681410697065760509124283778005700001443535636383264273159091833795511067414676965174420599614879910306967464192096760425992994229716671136444605764083269202925343017596946074570839596039789285956981819171570190257000025656710432641700244404603653950162686289849391059394101794377146213755457551933102352962434456780755872809504733094068524461125966063361232897547953726326241517999637455198340700772989581442606000086390466272961412048128235179507273356669819686494694821887482088913670935615333729178412404707391021514584907146943130255247478891157587100877479997263793568577775110131011354815541150845883719259032206659265213319913097183784390288658571661144961964431121736238447659470939114615146608819844392995753183076285352737405284622063442687747663093279021338106404411258775773081060899819158207978670714528501711106396055879824521647340636929102271359029706346645767041120941900664439041161137170085487647019477805664705812131948946657199174506217220505933222267360471216274592538395201034460192563774615965941652508354228440593763209780125094677057614161616507609659602126858601294425821475240804471172907304218929522287458701929922036705185535451573955649699867436983863901448794447183582830854261829711589458442779397219856750694438530578915988385184537972462632879414266178202729202655196737002587234126528564287052931079888444597839311514248126938208167000552009898706716820542021570610312474221255071842748889967915615068791881062313048534095915687300740141275268875996443010983512909635516797740126656504299011815883878595003509737978376677114106227233328720577737408904100349616605098341217147246460882525138998019980150120343679561812655201836504827872929690841062122884421679953682663592063884097265259629922896045788493551901167784633531851034002917894863067984780312783784012038086086716965008717494707835663435553360437316918555217295126618293177355176353804393810376331315406266873416649077130023086507501512403805890631922057699565080167166688240732018704213609534592167865101975119915373714663841906269128706595983118406101776847280202025411897247555359707693513914995157186338906550697497772615549133945214886425797136542014410173210062267827687478787903131442196995253288803791340466124864975639405431139524090545114009100869536355940665165012968581727452748426636605760998575297861510079011661441125906104195088344838979535769688119862856783518060207396795739691062112291219299755848054634795116602661582623014421453327309650495627826027799341683330683167759964476643949578863848577004131852879101239084745105998251418039117935280942594142250931203460592923253198719886834203938810104383297661118398812416085974156626328607394999230502582442743850824853214174563207401622784313598831882682560551388301620296657424111631618925377903220522385903282037285173425170457405083867346752548083310592910552680764393834675254256662108487539300625720613068539918872106361459257441159448323982029490041882418798782618457616215936260293128893301552357006166724368457181870781126166088708785201972923055328578389472436737908693505994043631712581495937729783664083877350649831826100377527352484125372162347332482903126221621930501612746348860545314192877963931327044431538898169946284519677486197879376980358631289049922791972596602994004136075325400695912608784658053951398921000198125278210924227732641641747146321413809550627165567280601850907831406921257312577528345262501513169268992971433676198284157153231712776808165237879104644753608331135994484148601794821921984288837053885346073515734912131234066099356645511431124964367225233266325964025293904547178541493041484898444896538813333038561353945669445131697440424589327188665313403143933624760445897421773286646558362440804257125674193471063181992079218274083148633587421891597786967345103962567608529710825169520114064604098812964355468309917265219679252713668451815668409269611742348090849872399948705039573560083977447112012501224307339444738505271522809158986717278271738122606575353901432449171998125871950830539190845124017738079169912729419432319887696922588747515749727469790457542264227247498916864946403537163106168728102787287270329162400734989807055880109874035073092397516046143773570413898564867993552785016112261346888591902930445321431134973687661234559604064187188003972825240622081705795323066737889900214131342062191904451618710975733077623577616564292692245451022807650548547448915684215599099576570239142006562097003191138223860218630648307519189947686065765994643144218084323482121485030404459483238602197883544835487030527641889364756197391827020741378868184415932913024800161860849392884780587505446330843056678731937367619448346629936418789637570733682093564045286818095033644224467146792248012015556378892254669083435487017748631471577216623346805077917972690419485040990331503645970622509080388221955414774899161029656460210220504565403737295862901220224683510821028186628530853190378423314144776581393863240368780202254896800677097301352381456917556589552854933583656736295663784185468539101712404116885066448378203290415871530620172938016120030059058334938593812631415014174148055827636618757438492129090385040757706131367003596045034070417384751396918701472215687270819258502236618258039063426346319859556462885853720204659615289385253884521858306203103121616847478380786333736633845600930790520583956854871470556055278689792750751777398130524322158783391100412099322907507242166876298807616140875854241707478230154585756463948899785690444042464970199599600269569989997776892406214669946996439265780746320757787443365817514901397431314670366960286153716900409561296784858876800644693397061320616240748390418036174477139100088087156857144471130840173855238464700277398047390519201894139372491909302485007604731874824366866146352888624873550955490824905189887066652926314367768019284669032654130598227772189143465790413868955695143428115505688558869434920709978011202168527288563060208838812246123655567359977341419475632965761938467733169622876529215100361623737920900031947083333447913789147840178004937185747477403604276442709073546139438285644357578145760848258352346111989909079127092419295545703207820334827797954253870827986239742523473289399020279122613889727246505736424104236344541411250942860114578151910118922101972553483177883723306209799218276313457104322678738871378627328704292142412450881948283745950358189034302820614681417328024053134432746096412247261782211827222529698825429447387747809234267282934199219436323206491045453409678861267938612853995325393715257106463849569838007215468964905156628656955425226589060798067003025543754136148541721750968327496269216893027385066984988766990460570572645792191094102383149472057304328729603510822398173150190224715392928314624085297527890271828942787401849080078014873159342558376372486538339873735781228086983508174798530339757681532792731600620478500701430594317363271529943662468265768426994880174602814518483963958713108882560904774589636439006934013922105509397706431984073346549121613151465196277075121720287501445945562270371946637077618178738422214434281912361166755338358600958954871318941790792769265488830730200940273367688662991314083896121298485497510837811275087366036337289378715844105038262604427012187572535696861601458948975166591153822426790621890564324316175242504619482243021476517505579406387386065466570674800085969843604101519998549034741004940136904928367961172054153862647808097836220022574263166356170156324683939917655544250915726340345597273699980087863477274638223755036316635585587040535619906903429408998700569814063024856715910356966181178060992536123306990963263713551827583787571842728171968252830956422363049717283810864536119767348419553215383409637359338410164971241737386475704472833894197467806933942939259547467096436222011800997493334602620238185415073806801714860846513519111329947967666592611509081530458659726404994044705718489663153224685820658227738049466512475491866908275727905955464516429766462364116775978220175479384755183773401996994933421081723558516409609374725902877172470640195421934302338163266708351387800230225243455636676459592793462720995892310982412556209009025484354834842860579792333604533851208480530106817329494264216438947264867085397871577812503919074095440583822574868276172000914330516986143625775937453516254345288503779828501423775919766344108299477931615645854510973015191295932319439844827666032781947888824264069261924496207927531929853244697386290742991494223193635913745395904103147055726302157594567316459461720915046935029343691948406886044267288281530758589508966032553192273639157114695774897064547401168091307877085212128337202449192755099801664075089330518477566830916667255738982815070373840977528112163968264212676118939307295211884964471485019902972428764545677360105233601200858994110924827507416527437906654233532732729483241108852373304361538976849627786800262722606630278857970995141472535513219281461833967353431314817935602911231693450779110527044951399282427258919352658631901856018862984706722767321347360836918041553159541060025252518720161121223598452589279399491214815889187026143876031784635715677052863468687860986291460457907753175533325819817702302081116953411144089581368239262940827680789660581562535270199844779280825364587054412728362814117115575547888892701369866753106442567337649641148885755998414055061515625727389917879015109904048999486598051468852692193416500800417701740079792901731473315096498071242434790215064224074942193503473474140992477348370471012624696175626729515499094090669282475417256161045636099185681736943294680362081386056363408848380242270281238053684873416878777227440467234805734827752440196550563408200623341856365829690496118727573015489848759171709162575837048243894330425579768342197022985613554946476338357368612058030763532832522322089783417837286762415172395165249406298653513941369914633704185501884650233909290612061973664612660481208908184079501162632470956489990031203835415812657700926599794555347915014186598504083918079278733992512140014343351926974218834289289648435860725224920994682243671473691815161466776887444248098681579046239623679498312251672926967323018911051253923340724673495956688172248380287195607951373251227762932424876375966677690949206991373490231664273169917285385528192142428967641939870771006791954835405132827377364150141411717103998563204313036397077383220754113140430570553776718518665453053013546773245653245993861125409912173959995148575677758374118967445504673167274011691522383071575186305653528032737167911374252133113591217304022911278444286846078579476911627440077718682556458608893089117779733823974102516354934383342579448336674644198393146401141613361068764129993581002237865828241074035244789212627059421556815728745571734547865856571150979064837744961081527967986713574402974340387028632111342140752853840331406469514227500047135126107046987148093168058075798472714208988052043059530685666897554113215261747361993875784036951647841255415004494384394543307002892709317516163493294099615488199545397696485981722716437266947741915544295296483147400579560443693418186552786955315390006214380284710835188617381404337036867798110996213110439541411024162445763960812734325983549485312134448697633053460252065717996476807502205858283206053931719443434570367550777955729008476208691555775903686549185429989198033771906744863854603859874092425475197636083852700209200333068917684385421522006483631858082093788080696594551231876477585326954612899433556021578029260301003358363064591976528223213964768821132983349685338196085052051102285869560153403443239263711838966034644287676535490166654634049048555042993514992401422550880287552642900864036264948818274895395497269824565685197183692689964977263686312575820528090769726287951929267053464483486563574386473072397411028740506671985817267360434956145072168929143228286513774385027571351031349574731825763689840446774452936381305882131605083430378877103840575493657527713717415442814721021855891158146477180827885830973936688382942270578196093625315533297693095941550779392029643787806596564959554008571563644105638066594503108994611218315135907105121695748369809301164441509983560229564059530758865059369622913453817003922554583477607700865917268286615166496089174695825009410422284037860736585257532829351025066437946202849165886267917409727731647243971651129138612453623713318596997986673102510449849163458816438127789538281400012353154431393952662903700381039386674452428577229812800123595709581085180935376917924851978885360953342794367555037332933077255461203000934635792611416669312181385869149666597398734861051679163734928991300882532517322721895503608768167077583157054095966024086851996209381417435218064345700797006334233415834308917040640115021393117898166059044745374730751639175732964121080090129179401907064601949852810555955014013893115003649368505647546135557270976831817497265914743166856869227277744872897607844394690407637603044008102210610091791634345119050698945176130856236729452451170325283439692113241426206427734632468917359696533352712707288402819484996236625810549917523820603513909548411746209047266809635225148669522939555382050265482515977527287358621943493272973164368331819127556466480167322032708360353252168827971626431320343399788667524123480079723387818316669767972218015753774894675967733336470176668870567179882006016571186309018187466722835197859583294160905165288730081409171785147737072397201304003111823339174659422549609921361652232868423992907826287196521672985072973044463766263299034462131149381461741402486264207050084296083003224513613665175148847016572663817161887465347340711160773678153094499937576681424888566714570758389177230554251974215588446925846921812796821285716502120874184209150799969455288237181652118884469256605883771224236647242971175095957322651890211942489788479544008133038123511950173991656760518301107244800971305572024817251433920974500874333823112172679268606179265370787225155127219960904094015098653764540318798130564384351503013794935226092135846593474514441953703405032638561334919612223945972010669098060409170935934315339372258823798239524248837053212225782474939019545438583989698087966934728385259721383591555973588803715198607772333857557404330985558502046707008270110970150172751029949207736246933517353244746584975270141747276649726605752711014109082146546885630221958490923709548746965464200662385278360259119817457361817384527611247548145449739042668616121064390683697295832357119664305627311353612941178573397581632299198961181620275118619066459673755353945172798050352369279306754717020752789564540553206393569058297681350503013389983497423139923560782122639726894223586797277852918947170668702820714526707702726966053212547390787947515561509930453481561545623589497777639979101827888277036947865014750998814910668397378745217513359350277617181039598374048854575049084230036204295608896248902093321822936306260189079550136280155374029312587033827224694767397119150454337025988522283493542127308752874199702291252705270282150999743785359777917620489638628991167971972403806945452333514378496965268665103859891274067886503283556529284488070300078145626852528739078918527124154597540967623331391227444097334696759620692240312315496971676582665577085117044939834929390699573705042124967925833290124302491443306236573126701585303137842322811405590053304596630124217352933421233936860527270006530920413827057194744837317459341085953276447569394439959242163226539638577095725166689972442607823459447214965994122234600830044572619912115069494343064590472354284213306221192205920534896881232070070863050775095517021568566096035206419141957044144425631693902596999760556738398716483286134720575259958165598254873527812460333781512256747673112983855357376234240112439112445287734117469723843652423187726069963139972104912886641614612807583280190287699037564998159774222172188956835492801552813513080997089657265664627585281725141514296947163064949211524954732730777954920862591649670833877398366369423018994237909629517823883747259347230746618979518964600106943377835537705455523861397730611980062569522979963874332504911792715653830138810639178631954733263377757619144724466531770319854835416381083087267810347206517639837530172509794291402577429009377116667363381626344666808320373616250620503806031864532483150751286971730642727500944407085481744234222532372528221545389830651867659939377271532965030645340136901209442704626069564116622174398026571661802331966958267292916964803721647847367826310842863293919038654839615132017098094513201888247482459467778876942025992191721024453106475619184471522860102623073655150190991822913924153599066346321694205926798716501983618807460922762321815387774580320853393241567491801159980334130531265313994882938228174339824441703133328217582361889065888557637673830924167299098451475965540389530443643308608991439466906513420805556062928658526552753321344055043049188165138309231597206637511244444153951464289234928684943774921359377585259442367889063157664752110913233954785413543745963321295887141833698069344251665687502088415698808308530474322817233072271402266285446774820548633438205315754453838269679383667223910332341002933471910795744463724144019768590611274972413809443001808621152058218984251259523736304032341595734309543934598879296841446298883754544949280114495953357526548296202723325564475601646884254094885611411300647152522051978225298987326191843889158636954355062219544178828814478971121532879689623215961222063468759473738778117506955235324442356798679381288557926232541395463416199288534629117468618737333830034902315642993618758945404152569117592518153681803916799277086935269353263379824081556418812190780677262747899017424783381080433050454859469978121579512929244568762084686167604563566525305071667058768157719931292538239811109327250975194609629337609536352843192502217802846922920460021171303040878240748841221020164498520170683452979792355060211726458185774209919454094917236603712289041697487886477311586465337089335048777062475501573222642585393209483916003040565973251901752634034208363636765280870274047852857218758247802493424923552657293646615974951076666424304115740617520094172216089641579833313375957177470483932850813128234743899227907167176503959409719085536089199302825562012017457153074262180848288838420104790811396983058092415379385877751934453659895437240290669030717363882735653872837999969882524358662956032389709834833565468188682785744461978698460778057406543906481501113307641634601064047635929402285778835215512740846036748453387841218444071328785419283829454410423264194043527057720594561085747327037046278232497641315334142169217753917202933042400156227514163512389795663802595959737324542125617879645194689236944531913569233575688481457786412809411220394213020135384034125019528491765450007699916043801452973865881992629247065076124711837833041703279560275472655577441915132696748777698730392789007747062276238927933195171174812382329106131709183579197507665108105516633687728000168063023291016695349400598383693524055035266005193801805368287988665211899812796432354226599003519888158207087572122938229632476244061470614780714729237734633404371356270082294376061147111272545516430838678728990882084514978987290422247514619510841386231900729967184238849104252956262965639898408833888025662712463134190081682775171434213230407119551163013086286890170391502445837949889815479826206367353890293997398276580567444728292789065850032637779183212224272045250585836655370300832198396171506252711984248983261476866599680575016504919774186876889935482911142386648287879906846582403441812080159276183114280619699327034187761046379492754568455118686375414487365643233776158127360143242067844945420185177346183803540691801579544729126122512436872208553372864689727986846559453499140855748339053621908359790414931359171294181300566581651845415386999245802662479231336134036996437106153626468606506174951708376466817732687746711200396313106423791603496413130359536062797329602295496254717383322577798986660378893881129249794452787460703095424819378761336972938490419671343065039196835417034521561140765409295973305802946323998374932217090392665193298709448078936417877311729890412764997389243004663869804707018081493585881262105440433816809251797055889599899702099572655592319213207191504128654716158360778604447573436849852733841953424508776207601168617646520301324899851399179354085971951212508015592085964257452004129492834972379802538658831047106575873544514805249016452940640513988169511691841522139671015079323126364687225722989788772331035877697330334452242391347618516505214037096134625106256354259149514678018013943495750829902689012817152400901579252870690948694029130163603378109288164978825525876582788747046566354673670632770648013971183204322271817780662761371662800386489120819694897352607641887186343111052106723300025107922091652721338642506246154773582220436887999898428297470154649796265323888346237478576174436295732021028476470221047835379901178404584303052217559028830106731727596135971129888914056974862042873623951326328409501145755227143117784043663137512353443153232207488569310464429975058815588442264908111670266577010537964564240767169559128781843430333620878021143588073358669554670206320480914981070643312000548041690552740269543483198363165441559285922524340954870742876172159484125412801389004230409903213571239387425042368146005518226871644103753303214598175444621858362182231890773805161232076800896186508786275628571828849357977362964318957741164096558933090391080812212781364948181742348247804597766242779364535546519397667436022494959967996521084339696147175692256841752247726430522717621074240274862344920391682665150231637921681417564025880282366839563086946849062741968370143392295674827381875214034707636630159249418521327516228028535901092603645702625799657823424275564412759207321661919937609722994958410635162661167147638811698599915662168928063489411482334416585458427769847214371179346617065458755238507756764771749641160090694149884227562819715962787059881926858831353454836347553219996399675529497087198650469952183052333862880947679916961934633711360527490971756720521238755821513071238458256795600536451416416666401432840334295671358887618455450355442616177823818523549761762706444751453944102182758743938314738163476932736306965813487720222826954067087874796403756343842936888872642390214636510622696615534861455308906499880994466846198885002271187667557448892833333579462180753624764176482715815557153861177617270196559047039995307794488294294650598176338593987317177198558037379261863385565703532677948593226377609113919655142387440304040178443977488981167956650478323887944679136722724818148304985760489464894271541813507694025618117577268562928062644262661685462239708923311390132789130804538671004917014153567904807205603431005757439328137874591132274400467176742633262778624281721428488766303319033644460598146243013846690647919861302909941064496473216846124361937044665669167222287890451190485342359809860368421831346585569499896561355051675812624400629806048457549727818092675881091405087610804225469472296224897520019829410362359950666289937744832042727464350745880092058417649887763554210240359381898371903238318195269820789543520842038194507344185263064456087853054644235954360595000577402244190188153006459796727382584239998738802718933301206910010313078462855581582571262753107878910853251037305866017572495196231949707398920750389589157108393915352683141825574444010069268318330365411311225734223145695614185633772581386230229956003646133962737071842610504019636962535080981955764919939393425409044693280799298275983098176450978085284067895468710549790288948524288818891409653338582030177710198847258052071974259027018017883300331717936162552122591155114265704850387368600621571243549128979308096182610075373289336523335238067351299601759325778491438627718168112945089761850046401356040689439916138564029277423610195625226242931331931552224635924415509305027505143299662636707833735385372750192029362375985442091817355820777745538369753588338137119002322612580733288899155268140042933971754602192501782575440063006205368230228934622531609863816011108481951636978015889839151312530695624252444807439269778040762036582935252320003987475135988475858644329410786451417445204734293457937581712224521667609226484638326800238513319215389845467578768206648738108644193229059265788001311446119130308245760486920992013961548071550912232672607347312408617676165518112567847678080277432059357415398431125191872028661946676235307146538374841573003452169945334689144745403618005724444240004528152273272119404581236642420044709718446529741731513090157763280697637903521573491844141356563826301904139154205726713991207464570683950821944923048942342484998708923078957404017782448592878822625482814386407081654134637346989412865233364998549458750978207518064722880124352783609892894339463184365273174904988323032027643874052298079053383905726367200837279884826735429142272455343573476238836973621951564056355126889531041125249420842697508948595457047926762491551988476447918150867584888927632220352628200269453146790777063191844197776741828391961441832575419604755749895139179510243892289851985078797673581546558668335648491593213376615541665046650212706063466251343260144309403044552256751019661628005298777886732096907204524217341838508455529769398879459058102253293472378095762111182818480731545651409499762739032790443250217558019853461955171112742253037755590958210846832338908261280831425656169307044097325816023899288601349857926894318237652779009535386743205717661664545690602232863201717078174760917186044029492537758203312688493854974254386012786321767231120936749931914528529726135016812119497028791805693051733018149757873450087364095890052623988825946302905960312897781712076582824223826711401182324198914275724146262259928764050964770285131125766179888499578615031197080203431166775675040413912040560190751958088939773995978230520585267515101978292487667129849860970676392078143572572114272583825925504347664298754772666510159979043088979366316720347980897823904824891924683193430874451676607367039404396356950149632836494873975768324282042012300104170748200975562915507541281326597813378214957244460139310823557318869551860320708006073977713214302548976452610897829517825156543796426337724592516392609112387146153987276189205152086779889605357852489999644387434552684577743599838397582438976269591828455556484919198133787578321921201079728674287529841644196649340809462228889474643022426301724197427420880048952076351681862367083184568477062863622125105445904625456556227686419769777754494408721509637360567075515628188229446527461207642810986989080413514929817335484603203956580986158098200926396272026419132277172572444627055567943412867586481136914963479446948781527847017395203290932153755061564962147311380067317086594545566771363435189090134989808100287972342436326662098061671229783457254357409798180736035880812396207088671335357789161804354282533294116880670989875243321413042023078009789196077471438816763985378282500681805254856477218750720039469295929200905064228381205145085341172357547035909094057136293260923461171557640429771240100749432163486161737759573855694322416630632511180550494513340918965935419971791077427235251182667509163610858862697410908109165753361215965971456110478309472603942437984295190817558626559184284448576247546399041790760109143248861795160473396129771602260906053843082921416313650795804283080129369203685546187359671870866876549812971810106998964543101798213766793506030836951141634906704196875439751921573152385037414065185273705571298598180677093978599699031632187729375482882980630832732875263736246425629857839855207974716438465795905110151784906320160994187149580805771706312302894073443774602647364750179276849945842649919757321171798684534031801350919682955420969186223529976503120659807938751379174761668722763462008787136400268003256718662809335228236580919890341576115093287765417557565893495436467099325863837529123787420683736204575441224262793095566551068802393953574790378942237114137541632974061452984646342761104108658376892856769361589228658148076879303915462026574639552789873248900420282501796268556573235542908880858138954726480539395252855012238508150272997338074612172246914462329462364423807431470374893394106122860572663683127526594565635005175968447763676817913819804045092700184775980897602475919270977540912551709645990802663849831460937980461901456214699770303545106085597887099407774635234684722866593442521183029399498569946766924525891592615604998896834700563664300048605151793864839134765502545688305291138368740040881523035711909791318561821124554584506066045797219494700147967364242937275486069243487498645542541104966263851117611680914752059693684913202723590924528969250589058778486715643397708555832338411912097545657461211291128460000249614642774474069483015256188947135612372320275337366453583593131862253759206653629224698308565661765309398137529775120874772780457167062375664298060413490094761782913396408547769241100223427834067430099262128524984431798772418894006698057870850141749597957163629173302508843510042387097018698274565382088570783068791779004499191951095218990322501903050645847292960940535366782990872181748090973535058718212673628866157669955424126350403829528649645046964246172703208127423664335337516850515239896685972041923917741414026740137184757089395261110364955546230407480024087932785663562727065209417061388427019612797618394775128480686482352301048857590247292028192553300158496375775855673349324719038566198373603150315006442856354999598451754008847955578911692977628150082750349151459092681828265039197138860334161667605666735775115442829698559663380985913160751874660910432166426834829412405889309387502425742215037050925378123653192251781654000562096154503658631802538883021230659352715826579117238489357855046145170408838556571869739267064227837394600890792287127894773590914187762983966066399798702827083722485122767124520476426520952327346785666370569942135612586205628114520776587890204365788779553595306494607329412944971731567269092909039771420782378448853245458769646564832482303541661681011542269952249944558818822364506796251180628964873810014826265329938334620149238069585621647493534064163569259272836079014607231948147025299742989399039148714184188684407886050619329438924097930739534192020023844184571960246785713516335240649687120804071624082914564997914838795534297055865036406484823401814343310977645772841923455131383161519107682186281611729280093867764307239977192806415739943973356438531403034203502057026327455821246655266876000308248045319312639018701775235616404560293801995980032366572562686818885375309971193244056123558843490226743234440995369719182623399773745410689132530293733075124587204789867717713391719505236155980155648780480930871596071773851286433389620661924638317666266841673370967992826785915298422669536875649935720632239468551078768597567386959120253140707616491845192272841444550004789591331849653643492150527324372317631328152241771890158579758761670846062922397254786466138579816647291025402420327359012501669427727597989625395247457623419979544208422261121993888722823902629593724733435752563992121702938068033791970506192250890962306895215106601600641374927485360969925669745691367962694620832294739477299509878143673702332162641930589418673380280533036240201374159199766676482060828346422594624099309631295961139990545401010631206732790042510512328181775256597742479988544759611874118826790555864791732469753933510599989982914386687036062203873601823609090424311614713706975700356887228791721578251988761580010293252684095709050852755426191175518432677047243760430342883088982745772961494643208074461852956699743812958014500667552776923325495425542543469024020254425527204065194812699812231672287028191045038339162625547618954840250722021722905986078620931119078029820872819285719016756126031725961790341091569597454630790928033210626657028487367356173365508409208110190323593917700897799991362018552871007611020658551380677527064925114336665254352524354307407590216865186090468598847501929970625782788555598680344227819872403686843102576456023056871387236983599407191829745013738902260838874722920759069063499759966531751270907672634410178375400154589995179370774161095110687544056829321659249017263182118325981134976953770719840156619563079432473552418258690299984132235039746195759125444973772564320389419544586967653790730132695975747215189869215424478305091374484028712722858205631775705096780663095905268463587706903985528739301188553100360780399961760883797100087006057638141003269139205165286189937333626808076239457757061499088403205748933954026915066196780310115958393296398960042291549471226655956849254627884612808172042043304802237972928308544760615359749563463404621060249382992548295989715928330621778169749582202483732989946614506490151967603443065220781365166315929893029625660431522478561891944841318477604198422094446237384780860539577551821719342638862823328048101716336668774702308586285461494485708951463716708223264719019128501027632570445719101619973903716599682358237245555099249849499423296075997486806161073841776910506680225178685929891178735173490401719940220328005232508810017517131350169337418473880839469574180619262785784118200049560508346055036064866336735493698258675701585344370116090166147578068196945345983181457845086761835715467244902499599918783133260342886551366743505175688885959269864812570469964745843900259978127982876558199212128422463574422696164389101456008890706325400175236260543088929393426068151933296393302299952409562762262820423602565678861149698789742303922386886024230897552565669538036757394420398710169568708547878662248362904004704542998686067257494246487187292101295637585293645728123018120291546155387955611139711646927771715044216793968939493137886367645671790136781314070997077849350275821617084010159137197019895860068985319358471591661434143833117316849165563115108484929686290479310065339475811055004643801568356928686633801393320319768878418272734865051346470180270926347530456360913157356831569963200571694904647804562747547909199759485165422976864580962984102819700822630791334463357139754262996032989858116391473557311791086283227624960401838746594174037856671466649259591488644034278661462052328844501717122227419323739433899462031103697107510364889906023344659475346088908135460682428125512674502225337250958296410353976306051060950387456528971071418204933180615935423071192016420638825436865411840660237747078944412352486411918221567191718909722326901706044461350898313621421527908451774587009095255861399945721045598702317307169877859072583976507956258746717991068598995959944346230621770294961265337755012169325715258930612422356529880675737347155260937090832961085252353002079602592252613637728814285776453376893122737056060476852116100663304130502291038579840856030241988970354655092979772949451146407481276613229981583680286451673829256870679952020743878639713484002892020438080794148130003435109420005042407489573301241155256917490481073827960013899035706602472127199793170957833372430899095663569879277697246257884664655870614225170721973910132637645559606071067808347568022935117775962339636301794099828399168601437628745822947891385285998209378878539809369749176676223023434457219425863095485279733096851720565272003211355362053566893849937546179067130564911780797333683212092627507421774993623843070714051864812458014003694983089223099397002959294132214088488577709228111876691483978170181300723601912061261868004456683708791170329179571425178852200415073820794011083049362083580237118820940040573231118055857381075986636757054772430941208712252185550296520346475744762371193896842212113150721138082484875227701533741121206499168471252784542471416733849208015643237023325081256035135126879240495554217396353584274135333884257260349742373572825733629652458417523908193448013732161161793111214945314547252816096918351720625245415486187882026014043319463708578068395379201879685059513400797770037476177580430906266787704602413878948567390121205425818319230636655147454951844684325081797765516695139257648914525186819055944471810742635947897331459618010262495397258924990678512160194821321686233053387903733053040235186281891571362227915950791849571289501827897991585788578284099717746305060820580086052408371853086300564171171606968330909598406273034005898129505210176170486107355844043664978789727497832862619206537751781767817035960277357138216354100560567304961368857720455171501519052677907467013122307058160218875548148122156706736962617032280812379727223825715314686753669926994099960922115207966207206627326978845987277419046006037375352305400050975924758878592156721433702059493761173011088008454452087683761179716442161864133133926143270025817858638006128072668902580841591058868992294912901864362431427783461584101905245409779066235168423232732922440557292222788717382778352033120618308928710318540532949924244628353694103415140930125656277560115041938602161973481693659382779282674490730490325308902170352712364354444157300561543398726726491317766096676703057195167734203809297350607765331327851386837138340679369718527573016914475483342018985466141563072292113175658003943913558911404032766134364959405361901103545790905297800036878967437912428467729563165211302540286801803988234510823933731537142253432159186028558408573485129888923050047662588108818930308067516131820540740566947253564270384957286029254537328466539361440391816291108166855494334946066582340643759320835518137181857436626083592880247619650194009834019129104068852180149922371454776270927788684449136291486742005744792384410465541276300723426082035954179781493340716125864785516551214535284093267915473002590113609535721462760506135180973858272878403967141595344766863296334184369624219970308060828809692602628469519844084242794833619481991052948150549141078177045762521769026005809883129682535069065205953156510030113718963635178523033422278963209127901321417414744147923529921628981421468994401905266870130720331029681905717966478706614008982928729501246168817843211277646962062870321240134655734819106831007560661562574892193686810367088746787915703426762801445949540592439697165022041018281085084670943243174660003997805260494624324533679426110680021195674050349058663889108092730312792183438172630193375173517346855267796288298696310694311503543783849287324370832710294872518563119431495748782362310638591796094400141551735363674274470236910922769768043919627340671716834894932713432105753817715160797209269759865668427546747354507882295355951676638188118654431478606514902447380593926217150372765372716007651152293108528011288761890556352860719835484514975656968368868374819871650040221103070374341025239194323035019452866200740752126453729920960160417988253242495196088056033997554098429244113489858831051318952089632344139985659403397831732792021952626396303466115614141034759757911860653659084961551876021798531968621993556707805893649623864844638000977047740318521091579299452034549205865057900730061338632292918645940513454370700576366825415541553058569657293852446039090460016326890632580137201643438364214142882751767749782977933792473332299176383061394394426300042917786667084243094783636039132628637690433736731885151878924872176801285841152615788266968081534489066114155406732446321690373492701779183875785755491007009937993847215559247772451024808921469725230958292619438647518068695052147036588225750761483334025587787583566002318135240879122694750853955979691036342502214789286035443445231089226009522931526537635601293043214735424040651299489608830592470238868001277105030797158339898449268568025955542181862459266065903375209268839619839240273500775746772080285779959178818823388335055757988987798942444856494659220647224909072085768858173071694312073332933799059197363897290007706009293074294411049717029144926750597849345915804621706417415976917202012579656091410637660950476652965269662058908779510423273213075218102485860140621333800932699810461159373251933355042128879722198608915051500674922517363303437295593800244966764512718298851926682416087939681414285900796847260737930496329819216702855478751695471572626003807567666967771002744716645302079879134827216109869484945592449858280575814233081510161318188750468535565985794443181741071083266564751563941752579564330660908331439386925612067500935075375818342087065695437339981904426224391343248346503084731654086599686933595046049715835388450170452743180391502136849850616258021924798913667997278158373505973923169425581713699983391472436486338748366301970688815402961212607417973459821736541755109690570363416605558760912269666227235481417311862368294317091232149102159843132169680751706758429696742987958537381159089334528495574802258149545397573284316120825929741119804130240767482891702047530035126962818129874853706952083188280116294492681150226834116791635533032199980158469562235748020342618818859679021055828543733474580426971317867080362049549574737936402613629322550417340674043514855980678127561602329897745798109231780438287971574785438692411440023172404272081265226038117740485430982052370564115229498100070257651835039657147038012563216042762183780980729787514034725136429188141039561622157925748890466085434993700425575034462820677069773736657654224491249039035204935887395183497645945361663400772996906037855582046432190638918777476379197516651392206087884099046999525705983452100074831305397204440393572781085032740478813318440826037535819370195023986236471118633571167254291993105614525649904454112217625513390448191986915530627916909308329122225420928375576860413641342230963988311966818355087594860091958382143113233780054280560339669155619591762701195415163320773776943848841302474895170244095701679687086783023852124534372646485926214132500223420971372283637238341427442065036556528464112035641770303938292579391121009552249874443706875777775047754839870340752889402820110754359474417965180718046944987427752850954065475630230601876371751153816516234918212719327338618326010738688775270392987513132283798390639044201530959469003473144388595956565539672401088239339058129291363208347475454468744267983490471211337770820097408391031262884206671322981149892347007935443118062951075871084560922194338523580109096759462167376995517824021755418497380048132800631926683578841688130905028749404491901905516947328140845884611053295184167037072095713463906161207641051997736440521563360248846958451966718871287846911158126278877092423793883823032977365821332840515028663641487561867901384321924911316428207450252074100252028788261820902828333907957982917665661207015849558069000703735118284894362264867503528181732259328967072303661666177943082936900427296625016495236857806050993093978393595871916662068392451392097468466550094286849231524698239715742107121840624847713572828245812971442424106593759976482087760280744673392247706870632050613570917034353684183600809078523066011743663004166471667665186904093021802834155631193568131802410965663354002695641034990794240826801581370622432117214777028532332141736348167248416831966075708243641769652215705270744543335825790205782353559657478943409216873519482244131458009748452776009502036727188940834314339400463497219195742743790479801312548893996879711200011130151484632364914078791749666026356575548536139942184461123882397192070489379705906537967167887785885417095239617216895308775293681479838085590355590205945911105404289585756378783656986429490958546249618429365337360813467955381069509318642409711726923688015752762831496932639134801759247222971372572283873607086351490800640598641558102629151335510231193654089557699829926655810955884882724709184410490496340284933264289221125766521485975133902869787569529319309876321294225148820412478019706495381267283202712545390395045503213359196080161747435153418582428530392618786927940030110911824565048723905210730862407904957641513040237284265152182150950014025482126453843977582103116950699716668049775280835472014003266287289161353166093077613498162259460510982699781792808468787893491215600178777427354070616734853563049584499561273479526077682285317312624250067197297552295828881302151133247598828515832096828064808977501739296336836320429237630340404791931687464746639630759062457875123456130087583663446131614549731032027576966867010778846303703865607591153779295337546894471301938549640816681581211972932475434621910629659567278266202781432802271420260980876512674470561072763317286465257262096122723344125023103465906162283460794254859103382312667130307387079544582655520662043869366021102354242089899603279215939229506380849944367140342966654648576189816287435547836119644829331345631188948347166239945573171172373632104407179566680727421830394371845710263552623387614411998974498029333721310407099038974674821610719508196754399848841190168522516060060370088856385339484520408681681541352883173528478862186756080469995126556874242585661373179383354988076462616002207173839637191674842463365124320033978434602449498741298672769853875832647313466560854918750943712011800589448161603524762222803181955701063918515743235128225373709485244774325196170756175051509238343074630830914450959864134903086612497747429880284560299574219825296842193619691547073736462695942398992259639050540148411555789549766047410436270440312846358835603523821550552713838403264566258754784942929387401481323443100817226805274389951966464628628274916667842003479704755055773509350376554541453094306225074988809566951978533534765649811763221935005981575368431645593591685369846071526985639521214746583704581578676512032425139923781623391227977066523501403218582548825770994141595137116238908310282484509630440646039993432399998995175896018124758297000303996433895106234973109853500160342265827504461578186159626270116801734967464341035061841702578697419412599523868962001201873094279906206515635474526111471964492294169624762162942803994591115368800273634183547644957957907899924400115907253990659272349529806689841568512497442350013015886369441876407354973614220621260914523250722666283272367054040829665417865938058771503320253840020111339549448053878737631795505703170049484416493218122874754422560413948231246747705715083538428909989257926854024362939298790753459866241206708185174298813819653106323655726112058563293206755151312140920712064659665422255837235763465745717949207723989141814238219014880664414272934032328370468171164569038119937811250952777915228165674317166699665580355729137047981517878565484432232958860863207743569403295928861009609520375203844086437703677389552881086611732082647977619594833146078770069147870854982134214274851472237427600543609350329287683440385608058323562728976803808771633799002022474109118375883627241171322015645411423669862687771470409201303627082234607910956864045832495876446948768791951878472783340503840958603446130429199388546844391110652381142125317628716178849328639112389128943360339593358849707814579726388529666740479177292393541959905927556251468334598059793667857474700056924462441720413317649430849280270774157983685491120985881941716364679122276371216949409322901810458085787246958312108924039713387418476004039059189514592351768035056927287721501681593822526344419506299437821111390531204159057307306642711736801913124848032309260315627389111009834109180244441959243902266758469670862769495933292378618406350653497160109306021760002682921014267643324814946217503833821486881087742194033065202783065753933991147889748520023008756264384356891154350407718203680749589815930495999093318820145242176061127965097351677273905578726909498249885928992115586032454206291466763406540524294028025387458852170826866301090588611036290476676590112747447319757192987404312528716697693471901139516776419751824306830534959987936795285653539630864616013552789098259965449751211683432328604007738939112855437132301275606029495572098833766743366785708119464381052252619883666895425862338356725793161080222268281143333840087527120058447645965124601146730753491960475974356858666173962762775052733327921456508097341831359458620321863981566019556402346196083582941933703852583681506384587925149380773449936235229384848861011291881626472083506858064335152756819243700961086493177407251303071150780658802193607237011530706303332136700116187141742691124553356362076422561134143255351657383250853209014854171726128282712163437302844868502069540661782598110909600537045349521207972027156280674651905140337575554071848444084875878045857093509254232398988494447177606107802656773426022672254514142215763995074377245312214796696003024017999785346682922155634814192464216793350866841041930216502043843462199991563993997366467206821414791434664620867394590545662911957768547743323697245732950035773804096780232383889419421464366216322830351163595788169519847674654621476911343044742013178815762034808464121897865973115799056167630466639048975909359401775006606426687180476612579562960189453750654939719410136473943987713432061658686178845590420561662715760601501455387593390958427845192900131891250868635192929693611587635173079745755592160456860965985455586572829373057100557414226275831847095859141635257017688727595096218178027772158926538629450166741465592944797767240320141709621241304490293527520195450589113847749620712181544722696768502626080015849150523985534396868797977358242629477511545285029209881502515326414535447386075732942662892008996747612332697270587871198716724987983322602475498292890159339157867873542718238042011134694049902786676130875997049628333099262657611495421369390205895517714342574291950775663948646284586971078399262429758875381013185181683008202964041031371950545494849123639312912289030729428092182576826125519741927663097644412376510055746234875097537314598930010527299815596649949139099837868819061575161086505841599263619404451204735682392717122177436423961526968559161239424665956988315843884133731671542751686317085018207243842444211091888067182983813009109618098170418787081872411540315250012921295735506672007212902600823016961648307629145122063243320241230114524707470504400098743067557637960628820411357916626765910252874023095885728877434196044187825179810369583736182961066779121495045366258577038395276436534950444166145275801098827133519753707893815711731388960975854066306503300835186393523757005479868258234721554922355531636675316370413977577230003027707460821430479793607349810038573240176762769793250989601754905504743533005540465875578678289094517996320423366489530342973629936504426394649354243296544982887601992398553363270352460813195525079208338716947203915952576323019308693344506920461330232425124287552967685061991132470663329141646467803275280902458944508893911990814386093182767824186361397659233801867961993342328965401607245683103712233463335450120562363447473825613903631226753422879574822972117385553655509712470458516433706581279064441764573963288771575962110991454319240728700328531831986736757999448413001036794612777830493790821741858808625578554660545186353277803497641074390600160370722201821514316141462478737678831245795967836389656926420459201037899083876593467666489278327356780458386229753370186310726555015155414772011262050410297729902943547562631053306691149100616642694620642416827292372781312086588116015788040909189210637684351277672846962651470585578397205579993011415450558531293348571515753238556563136610486801897033384687204777354337167883550503448335346831005624914867250483119341903786322812315267845817736215973902256547957286123448276788274967247137414102358922941182369695724091914533913854227050030825042322587679532785758096252313581597443019974621425889559486425268034648083101912106791948534602008030441530346227391830361695756131683013131589224470672153631327209949436687540165277157129620375464381906090482248334881342935319773593205809249325818562406394226892403087590627322718746270619806692422143768238521390135836393646891258616620721241241313536631728400935745826584031974206874091563396118909465366890192158474876156610734456399038290703846337502269528897846523044539029158606712281252986784703900911415830270214390914138193501856873705510417520755320318341352926370807453743543613433407665289710572113985159884884885911250370300126904483698760564024255629386326323628545231358567599667302698828312759242832238208151365911715429194944103260683963510501915012936265945117105284673567042721802103610826850764335138881219752465529498313268455431259481892982693077661435936165178810192143162203199784745436474849951648313997616123612213220189382607269002917972339383715046992732174209337417974981141505914372952016027204659620158970071329664118853282741380016211276382148752137612142460277452966583973171824291462369135049677819040907502513191032078025654027991761879992367338206671516424928865481725942946564415260252594763094548670340737817971308042894392430288464648433103429769085538334356363323960975251110215628043888779838366822721544779425092136001878663038357584144120673838155851920424137167669843143162070396940068878638471847061382781409746683443626243038749243721328356133599343606998851569095164231559397710648381750308604414165247926982113867404426633068581402470099060232009851105671906264173849902771419911693737105447877123558378697402071999284927430958046981926109759924786538551727147628707445654859867597899667781685441072862520786307845660468429726142899856037459335024271294833019605345574654892974606336660282963344655577905618243745681214705114386888774453078955126879123621330952666571947742624873482446004204109797266660846179491390116922000313705469916615033529929228702848704259221592306523706777181773056496128811274207127190588195764593160498592275176957452422426269919148587815965543489550385424475201107287475351523548317788742169851336477479327309213861368323197192750746287865901999842072667193668027829244543974995516035328449953717935834140932103688204484031658303883130779221571591888281452135680244477900146855499410874241526361750404226701427814106988823220188712774228785494227633174382464206945846690849758915616786277264859412022398141676844636052700079364231895726639855187926737336680760839366491019964365865221688119263091148467523248521190018057193413984798035180025799671735654311421389046752196497651808683990047593281064228820335489014513769151676554365384011292630433536240143878469030871955586382435323495846904959359503179260634109603971345817515257373869635725250422825381630563119932525996076247965978616478134425680485976661390604485361771839506665048317871070397506778917615692497587760024207634570125848851651051550073242403712619385565316882746191576760836547382606246489175775612762496596235763638461732300698585740115446585918343514538762299171026985138899998300232594431841455267718124230279295479941687279851115268374549658516547488622353712725504031870324406912318652687939257843034386331301472727406428461815792664105213362146508880898721183675050774667190278229767146299399257307576658017613017951064603802163376038864702556879952639324463045409623557150106882309730409526608189488560790278376921876485275561851828625814985909077053778030803971690947594570211695001988079218818185036733539331052741888913942034674972240328450495456923893082358209267702194938467452978390790894509168389696674944905635101159529906042604901844638329486321239049778020433780633847459007515038389899829154292609955908312389563907945962759508116519966735950648522282390426668983682391601765887321205076554107469032694880087159567800238777201701436873233769491026816196532739660180686214838499365937310984185471745895186920480824875066354040248603743927731920497190592045562570278407973399273975445204887384192754919304836052713801782181556097556635376358630185165938402511493333124956978477268954349048207849534612536512789893710501571173823830751383605126707725034676151561448082579309128769031588885947266468821122008540563498744844729016899736674378902751686496143794698176778435833034031596361057918431587250529603333472163136672846333168231431843424711408476438849706532256929835459567027753623821301516296136394436062949819529515776237436140655977490241663989812381336603160642253544753661720266127201442153561109250656069178778706332949440289194226374083135903479759173253274916238183272177838844836063900261648844606894601570042212661166710821740507090404357686113120816475419352821333862045010728177493097917571673835283711082175532673608152948828562213940036658891697809255513103544473744887187403481497509752826060145111881262002000937206559355112727099992473547712548623690438882668023740203323441639136565879113646232642939258617327013681884804066101492488956411950679444356581492880299378612619486646255691595016148867549313103260134391412594470108427896562535074916742819369356781765078458155076448525269820177020475795004775193799558405527343772752266436786369117746220997230420500979050740869882411405888144557268748300012463856393728855900615726693290447868610694746763078574695371892395075251748251951719007103255867097289672004016588387684925647817246240002834491380632127855801056869509997674138819612650232596488401491736606725258701573376342064022429005388860519223395769512268033789807320112299122314672593514405942636511850815584092380451340665457955625594091925346224068284614034950997278416107026689578990029867859892930059137360651589689786489446684017844095730427107341041569635557677393565274777003063073646966918899233999922343524695489735949813240865570513530283252123268467303479038267644673748273730056891041991116792648412803804858060724295661640836268527435207200588740746202310025527804468803397654288097781218166524791588172736424838057774113174415729042691479388888176955676832769237037352299738905746651402049455178887721646472532267836149248416788327418317249637939947242904687183420761041934990137246017076502381096772054439652954333930947160836123953456095834378458808613443591932120621584269696930369179760990495017677198538552752757063780659925817416748065229510673127223963573279460228639662049153889577982776872375839017853626799005435414198451029613331873097358298966440794290115865667779205210233688569590519426396029026838402502162019034940927065295879700003249422072948105318676657042405007033871255260631176540712507212224945873338103967248802256672487070687718520527246254387498613086708165835904715948745387081900100364014844488916628506112597092092719808421417561331749238089010371892773664917506538840972761687839601746413430395624319553979472573348929328668599426788300141434426275654256369701498358391024829562790935714352713335960224129820919007801185895895553107593885466950454204091133225951420705138161754077403231073797296084692347033232151376425811508303819326761480098288021842976595439511996927900519121590897283018803968897135205420955139860171040103856988190565065833066925200610068956838317010113371540470652231479780682544736028674792294004798190640527894779172595895088876218061783789266721059961987733699645175810114648046559544734071305133473258525987970555074152677836102625274121139276854631788766014840451907466797395794124821620581074785981370949394793376798254280324243105928071961555873583527683093165992489060475739356501112038735660422941816546003381455562149711218292470972509078574498527593934501892162053643449038501978674762057085049228756220262339734987388919253750928236939668014881501400645589883380270916592931439474922411879111222873532483554731589273697594641431408648000271308615029151159301495838880920391906914509280349082599763810783263103359386956029785332387416823773954083296854816068222175716668649170616108636340488707331361423768144056858262600768347538298528664772553298929869650553768780280265952694314801898225399787000131082973637271228751310738222040130501273940567769664391435311766288372464924548198143090540024311046510203548669130627736873446910049254448163604369834093721402631340403995174821092697413398120962999480675633727555850442949770966180795075778688539862510176321295327415963273695946741111004329990567187133115181819828561169362536250228539939665671406220074340268775849319808601426884364195539263434618649581410068702335988703016251223550510770426970944089624539255821125254676075530857084839207701867242717323466789202932775316135613707185743917308778541624843790369404408023480554584195478074356792074501629775300592936083237600073192396589493817327047320454195824070398162200803718256674667988685973522538980975390940069404976855602468384630162250919808440087929826597236226438769471168565384718368046215121112355947562555215961360120305478821683178106872807522136615025433507684755598001483581543443629208649798571623843179440096563580321195375229149973552992584934215655529898870742233947184477735712079019466882827998959507720928620970896021884832531143636715775047117938676444264766235088820939502055389432350763238568655670985606434229332237763158104292593239814150011324570200418498057224017516991073496158577796715356045902993126245766094126741545391684915911910467067754593514762130057131001086979840547370637706986720190948847028068383691332413525537674285005635355573070865747135585325706156170762350392514155260823705884209205734306013241883480527537057444811735315828882849603269149700341507546061725794304691512314860982829406745375894915675701641321045009575034676373488951551214004609316669232073029404032348790699730504407516097415266188932023377033347682761762532952152451142681267343896017033727109515434162160194057269227056716527929095879307117140274847774649409658624641355904437746900552121750423294068880391381111736579170012363884162342459150257495566086294469010170031144607434645590905395517043775364443382738356871251181573752500947859859395850827633576226259831058649000183522010171794254468567122843058542931035599389812687747734765619682630424409992239209506203994536202893210606184857689408850770962396788178594040533638300586316986231286433480726029380438867720699307628495304775721623526440200847592721796951942146453067241082100897033106410364590945162517920329305175743353198118408250918972441267853286952687776988312526798743163124684442915546000006862672419792682396936752568021262080741213261696324400458024006682244913269492127722460832061136552920356171685068026924677202933099363229626752244529528867088445120016104125420389257528001258497091560515858497265513152066272698009871643499998144768784628409519227779735862948011941096633851660704693486341250698748260829966916423261903906739305239780043276336316674078100444524243300562290563500096223300652142798785797352150870005724620987707935704701781360826170749543185526449625637345003585731204804455343820940751063808220941298408239951758067911414530662119748403647038447352191363643080648092340445561104927990652929287741569692895667425745566248027275375847136180901533470534360183479183284089412070070627299803614443209344817185604459492906204404869030797282299707120351112494248584209332869295087051771509007397740227477483139475205971241240431699088382563378283670497176324418886563209354166167140006241102551359543778401909599442013634177215859448369624208228158930550677183151568910146806404237246413680948228473174446710808160829127506894907787659349191573741296740525487057685432770397231141923020389325471048790202296473744857566324487584114895384378648066097350091886209311307628323807681839436438109106902909447506711594637698694809903997729775019524201292214369461265550483590513240785822161765525225518956546646493870807165622026889296725363530591903656425643678068311501785878604746702607883781011643480448243886777450554002856049059948453968100157497658644021606081058122229227395013087594509739195126148286826846805142946341880420433708823625426464965111028619195746477239281128085659532301125828789163986600317212811041204951381558349944193486758614377045160295981985381335233426021674779140575071032928392717881974945551759398393840243117857868715668008482181402044339564255466581401464867185796937076932986352604864454826951047363630460759687017508573925319637771465246284586653376031361944236134746806526676315066581482705741297565821762214501701865434248644279289338262967502773235516202552344978146521284254451943871234684060702280377115005000766993947922898724795015646378254585966909695605985202823241506925661319394783153889073682098518899403312121031462488500042916139389945157785073697691067509273604887880656777391332081877358453234439756671609615941216140611148256596145847706544532295856489089545852400312453159864240020970116668333679786914464236867856481838584080356719972349482070402719037680871781688796660356935811173822771768520222308017733907672367046873362003323083174017320393494325949777075558176157299016507351763502086299645747768161644724015496134133496005912924995800734395231672260457184010647880508590720243364493594144673717860086515375095359365955423625404344739666255227458039660047665636031458499329547768024622373310953384836153252640095995878424630201136902202590550430247613381113215462174684886670831036393046801135108212390953547370304626815436468032091362962222905094725438185620355917768872630303928243087140761838822605512517411608392684496250835815512724396656618518051607579778370553997324388864171947533189909867653537383803620535666684483099536990200527522388161112487628821956401453988682370479827613445277874691655198811193152425878062033040708426738226296464179610388047959610691911724955603892886058133428617570407038043358468014314826879530103123132283900700176621085289016325390672556832942036428084647782233790713454297406900233979112310274323211573168457170839789109312324571327717158052210229149414166767635756105521114105875112048565615120196444836340832775012183731647739577619257888794403184547417051723929149465676973552511368673937393925955828808229565036731040951263505702368417458856891645511392830145261512179645982367205546785261045376167811152218547734312840755897545764960322838026573071035216361786996899612191961288375037710410918868049851207426596010280379049173201586869010841795959356646279181014007345634815224623610175643569699460953174306224625488203507627414263837697774811218978782118550716260421722545466611352065226831292701108615075448585320096980150335098894397085422847318906915698127360182453211075905240870628403661658415039480878522211530752614254829533837608664154040651427918885553096379655044728445175254401878820687411905013485521367721941548736530269008991005348991587589171331047490638504543611589257063700039101354174231010994078922893548158874094596118877885337860351635906519672228393352011479359998534544519654968529690420628625251305485086053005324001609073824050115867877395766904670152106092247700099710615435407837495682874918237891958460298192474293231318632594765351976171812757306734813180561697669762777084546614701552068026883707748952373788839958730799477244923288076815939887839704967678887284806397478969316024334390961424356393935245011594960054215885212548267572181274306911060974430285992361237289320448222811215823731593229043166647873901213463923746007970988574275790160236464865991286810808574726893920734162459233031191813861594131843408526792860681027778670942639922572956247463355065647817760116168636734809435792425527377836902990444189806968458812322288259650745668577838363931858352026186677711747891998520455224753148449448792991268366933338895255222773609763717396871277855056715811160430445052623512071997437299002341366870076140626097906562767020702487672701057084822216629623107170565157765599089291798611714775507790117456098843493025065575102368274049285507340930663973405709266745504189008292584364489765673941665611180882634905672930457408731642972657023803315296722768938912948029308434072319894466388094626087035542554110895883345198018518678544309087078767112119110888437417605648368263680923757405709751160857641686306009265490265172866096537439223513329502181751545270142426866415070410785407274032358371569531015149549669001496541721806627365723999188379138149000780745597944531441884979449275072069516873601886026094688285711803657422468832920702989445335052653537274024362128449469187595551775227078493395214480971563955374230968096553836810262598426715941724624203274607526201817791771462401184997598019050268847981827747816214916379219004389038154632112064437433488155836446666326504522305293858514504362659632677156909804087498032924682411420315985814937719181644129759295981343467843822149752254031587328627709923764148646262061552597726213002454946019139649561957973662646417658017798742886178989009452362721994297495199766714171260069819900807122647165077435591148263117508354079523115421268359072037626349658456774285169606773091665073806583986075040407788852710738007811614788369754538561714045723339921578755924209929612210935190353855274521384820463285500948826724996703407379905896116233345844272852847520574794290957027255070172226359229784189317156639958403662385114021110799118444055080786000503396119457763121151231050701906603205670614339231277991030212837413561865584544815713453850685346245237129972230342850429044922752461461816369378175358615070466404919119894406191889852662821477632488774373027832031711610164112441255925001978998974451227458664121251819096245418097342122664754292693826196881085018332614846041097386945789303542661443918920921443975293671744224330006168261520959638374257040637938347752213927373846852361418561107878093838069389781677518664434038638489000724035529002500556199141937696051228338283170268634270078342744600053148769846821764698490814144088426629215156582270070457651489003972324288623049892550525187866902976139501765004751699857070897540093414259004570585383766318413198003724897243276262396914034266694276412296207941947751157973969955330535680311398527890633275761348024637359100722737721780986654460718804381107685989256356665259512784941055467887273073322470753812142136372521901584371783671022300777707746676377174425739592729392252064550089453278485121844441835700367745253912236919524257052570986060238426998799097441477625451880475867467026429631736245003658759435381316536326231099180750891503391291624981273623105356670541712091778616787042596392697203699147874378861335627038363586482895261658587901582152222836367674894415770399534487518240666470037802596728910006646068366478448711569340096122392067633810569235704045673322346321685840073624653711096955415377598022242544477356529363932284582095469024330720478419501447836912575522992642850627912065168976341683637305588544061201662938923352959099255241915694169772966132795736065570112942059488823711395562233930409020461028241067886311358943724556791013407397499424057160758710157403168889587682379062096439251870992260057416083622422785326060760037614727600829491920426901950203786360077276107611829001379915619499999972721644135017184810047391839358277900346880767604837599171517468561502549377204223866925881935062494244749579029056922431915848257546891046525276233475125498145666131946705530482312926981262778883553185434199739842027120514284758821222459963912393158640490323026149935086999091129581257527577380726994588845703457757963726222248677997895160255116663448916526909350090077166809314277016944456619715476780901215148534324463590583093855530147380799903408455812413749117087711511612207229762364317279764911049608850803581153635830862234537002737418502611766501583673127013560158430032178122131475839762269498937011705235321242613937194605699130800801078962303161730151173505961627188509026284237883012480501277076645073961483501147144920670101500153670117129149243954961765724247927922958289371750117261845197541311844685783469496611081620235808576701988523406364781461373732104948301698402324385282963031792501284209614698124318706169331194614279929666349900418713876115559251978164575341110144177707586951988009060938199923703716160074604839104536262632359966475182338873539175460818264168761000618158431781508903456745478885959763674662144154034678234669034609478323160218929039459781087377806711861453310934301205661985568689777710534628594945549506160822739734728711072424041572039768265196646949969662574355076738869750763590637514732351099783495054951267441915447822724619643345463984051325381715134522571098925525805789004131117552569433126815078970183358335972444226410193927464662822615623230921248262889765150763564136631210093011189636985569030568571634337565930415509815436576244396975485328637578244847911205295719551460400923784216821103555928774578104413540681125629111049017331329341432019344105017936088472488372766872066837813924549796632874314395919839180259558816897074046592392943971440722805245400980027514716872669994326405763231413454779226377878166196383563224456490745256425529116745993369652539135670314227148957483211464926327237715455926482890614903481540380060868912328294664914054446549765127463351526125222527028201057089879206156955869358692496938631117781542851733424664705717948005550044769792111579723016651684103015406522701938084457783569065876501711375675320821111411630726878710468635848620829588843521017268304799632861070832314950246363615858954959133250410532182545873671609857516111012244406405361159818313815461973759644451953293799953914146118661574735466342942419373975348506963098040496418840537333873324561729557767026974084154607775088706235028352697324803567943000936520953151054068757031267129634336155117740413278611132028534653112359332967207464798057793656948568957047704888934989804355730135106095858059727227274101830874863402225610741021743594491818306366520335064702974253417728725496074129294713540602726360091448142856631577433758566327091750407735785154932723903712694654855307157702162779053562520411570738619991931563215348854713476968418807355260274035224066505441511771954374814593613121975189280062838408129355424087321715819682885363127263993680612534979566619835905260597436829052118278544507337504546739880441517517644850596735841711956022648081686322850847150292360213396989613223162289808324848777896088585660278362675846252395727163685645120431865070271960118105141910515520920326814684910394665157340348548222890245424345554098501430820740689739023269890708219272334231342943445562543720541927049666858745564052994136076238726320017804444418616425418903224776252275436139637829272746044555247588486356302468286010167581103623177177173881019829315193447913472677904667989445182111304785038694052162412230916296892681370123032407998573932858726302906814613421311848598894485580468533965799803959511809182861678716347657770826037670613869613315461751027938276902982806545107556910959830831284154561748016102561514708985870036537021188461054061233522059843518434824670948698691799443858073678508106057553233433324591331772514280812181543469080513187451142054743466634132030373801455647790606909636973537966488260984919886569334705750715632204533370015184129938452493437778315295406885126538476962239113134427879495494702392916991164754377460804901888184560132223508922150013918349275511713345384856485964374616158833665437733405901292576114070810915485694707394706638056274101917594641535809622491035914192548566621113456225039508878967089973864244850122664430977794337892262091646373070791141424881787900158464475907634197979414538144918173520140268075845962633928580490566804604198727632849466495959644534997279971701400201260918146959431204235463998436876802225102882615244394577705193759679913275780181818941114425927664412841582750546933191911572126509494555989929449516088696173948334568278980238813973949542929801460297018282131468291491353081859604066767996492937279728684881551659677427513682479913865494621574436110081039341735676798989566738026183246274214108971461408664981801431561591351008246952061185662472542594030513920894375631479656672816459693736574987953798729342687439851706065852636071730795679836706762237938742568719845529639218452388066294641061413851702440206759261141108134961413129874195105205410517610475423685698509399716131772202233692171340960575875128386253733813122837212479328658399755529232208959871278797973836543380477881420952100053071294221590112194872896255889546617711830677134049874870190937247141719737001728761154020212681650455131738537462963808857076857317802450927350043103396984320076578827704881724288414131812610090860128874262956778049883245284468405376803484481316498806564014652709678226358342138412993022702620206749985538000370024226720982001325249659246800548165856271678522041462695897778675071747818889649259674923333516039817574449763510789259458315216559182003923145371488586176799599841945801940601875082643204049161730836205501972753834603880654532081747148430035999538744021647705292895989453124523218070332116297322006952213517208241592346501814759078659951922000588731634182418543457003966247794329841390543969238623746889523375191709194098923583636141615957519373691419529011141215831478477284168786595145461983455270172063532336627568476995713457888263608429854904826381922262257879891515166334962302981943416739631134108370259703046352424391494434794661136461839858221333710950441474758058273012553665597305335609070913803535787065782386576530012022923251572182211179786837299659943171225752383447422776094838728239644901169304907573257996708275289249587802327954330701316760390176125542826451942290363249994964068959404427383473474228699464549773545353369309166480015068439378967491468298891862731729402907281806669955704142357945717836268871252768334332982505722552681170639956819197795649813049838663512977478589052739024858709019562708803720807208660749991153132834990182826182823824155293301567886366205776906329802530435485508783110593704424510024325100093931160119253756039269290362925515210980644786982226559428292455520195296991686597058700186476849845292027259765511572015453096210693738931642789268134484632918217959356943338312062495058414528719759913369456594075762882431285238266278005192247325459303420071897804762320875570295786387332336874650138657805493265675109154768744590137671754934428709765044749698994104322971309571915531414602367027445572707291219897806445523892329491497369997952286436439143601401308747541003033666436840747242748054561030308014296204685382282309703522716475949096089837663514725009850086273404241238129891520930413342955769400808826646075534653581808388138788023356904540307740981088527123547903200176210975874842177161827631864353814157930133131214522515448184380539843535212679555602724078036796332498148646108215953240953458176326951974865953309714919518788801734440222769935176436248504073323303644163101003441265302497837019967245545346365930436136321934857727924284444476343526806283075743419951377623538155621305817733468721350827868517948289872836610700286491443411709254144375635471976496853770698607337947759216511033393618634033848096316563038684468253987530916888945556472959794024834100939715976464831748181676124392845043655250179592294058166961451842272851840633003689254239231693410307667366460315704898271977300545492230456323900395087519086394185714120785661581694228227743954519998294049699876153098581433611473741416771635576478774737582519877764725928060188439397800605328922799278368114788556586305685704281282101416262636309362749922725998753551898428821100186355904649995136616959799058853724401207111854910497647568581005738188201778527508759209414149919328867300971093178557243158536508961712729984014184799494754044516330929366074588963825803528982366515861640910091571491525925910021248635534320365266981283527861404140290507563527119409998780688351261386455377982400285029493760040688589913033952866528178496934253807186388872114132887748120733270838498964461200889256476826424619252863140805514938523053879278259122048910682963468077063227459862613710093569358079480198468903275944017934086780367407657251205562506555115330025701354863639944351447423501303198556744843193722339152543342223056988172985505598550845668630868547669232446262397893780742639487902243098426388725796386342117868874783262434556225059160917751382768064566407632676660391480444982744110492400363744315934763205768209780514428124356717149951931734240596930937037211141391562971582256653405010849194305084198634283196400264059824867858219313238874903435274083154815006142871583725324722969278874928570139890526075761645924366772169054884660471456213259859784274647305701592041604185601687374778199090723431722263954964674012496377075499854478450972706914920290592033399838988733873781457554017345545334706092297560127389677936485308381402016965772128889446884552356383867750515488030402257310547178045017731663122493672779997384310856732864798410513112191684461727848535782548195969684835475844263509034660630737296978606141980246266461142218918156936891846823166586347250089565209908668470023569512053296677972877550719696442606856128429273270174257700824433945581421623866429086079069901248316108992494003471499000114931176587793349397408125673234442643224801109921727232416354114998234602656749523198114915699389765435241689712712406012132255296144791443561358964732064352586824769254620202644215054781721926358354210937974067945446201839402834422601478992778352873917892644936085018068609959870254099226769988344969488771129944027184578675689549087350469383967327699834316141101081656911790871307250769230534337862238984919862575587088230220069190667996555767149259849377926416473827774709511700493024957315939774850220048088671679646887234834211814994840458399930003592600467034055177582977285345620079009454980270801863668630371140146876017027521504566326497166056127687577117582101492120298141923560705879733101001153933234032883889022736882777760961935009744758207969276733474578243410758644232765120494120682006027390592490377907645122530355806307227472395586444962801882565625856250377936210378806285685618882451687412771052444871430043397389622114105878632439507242451012983967689724183363969257632862080728836131196879432991709235160946362857958458095227097341555694515983806563492443479252375448652545961887384270516625136786057572655823697654830935359809229683989267359126327035527752398750165330211661875932591388630914049865559890272679058383409591334775510202985661604581445610780027977178457752505384884786412757771943519663268884860554474770600540813631665506156144937566424946161576951314762033880441605651395339227814937954348123557414809107472710709946080218000094993451721448217320492502721417386467662958285172123698772420863477119206345730073758032161763596858408890353546781542556014866398369940097963989859961776563248253699911008177151194098399402074833986228365987920567903616961326680124466600266889927371483764376414336251317143796119715268631635841530037836264465754179879659740659522996692408872890935953923460771198089594373250901804150238084038935119025421058182973993314604905861659673900761648885302279990972498307534586512965773661274464960480329904020458130875679924270572080448367376530272664282399662318381699266717842029776242512837279651905838698058537435998371773584098140902913798278494349578596138806839770866508223920581665821301092890089468169858127223367984197086199956146778380912052578059465419195102003699750995394976216982311875405030063500418415682584940208146197750852280516903964713976784322614002093168603057771832994347091140068261313368844185392061390604690790091586009772738269209005239520604851779039862248654296048635157549325124211926666904690415780984443358965984684267696754273979772143841881285921564721180009519744222994403985686238342824891801324188758983296538716332538345339759140950380923709978830961274712960300632367848708435020527614628631795300403577701417854155602335922960698282772042300115282115412088015160719582708606277172210718620891992619981663783066527971219008163066769089220836686332070847839469577780103697589453444333818691292949797981894128649926187251050307130446412517461723826733655844255910479416412484109368270618113701881180030743294525485315296383048101012221823044579946096205756582737563970559779541405137798212098114511120077831579891028411066069957003049160359784298878066003287204350696649858488294500203390903750521874352180145883808151479240413896122190940732507198064838290197358886448172541142654265887432732705094755568068541741094476968207892680312501053221700104279727885827170935077526384064367806325767308975744720179939346783746617477059662319269097638424894162305895752959876415166187989849680529687858030385112550129406644324127756960821337720566785372192118156439677905338801105302265715837070487766264788395542424764040313904737598907261259878096125457431508890872092750477282639554606402489991300835416928446071306800922949410549543299690779899950659357506059132101870256167106439195458788648506256610407685838927734027605692351672450812056181638157045175554777336745616137259153892154828554203528023547916670571917821313067363779025785406993310438612828154133140567343882310996954034107402540602956437515634234548082517031495525594871719066427321635567647865972616000370277657621803752544983971757680214857774399550416325343425210833964148535885784400745331873319854907335030860503739492643465241388034799240958729704969293338838900571256430458493984613560086835493832251022453207164226568425584599103694386121269759623854911611011124069451503376101923908901041309807124563256832512345728322406784904848734614685495243746283463513924445001578299594610704680508273475591162749344516183699592966183585463817369195672383682183452828763296613852546491278993544350704744794631614933523025902081421316796620535872928964432389857348131728936021381913094100417268642819080610675691506376500166255023943878245655702624201932848901045629906921161949667964555527760661648093306241605847555576524117979638234980577680953008917195871727345890286567309004515494770587649940848169019783672206837169427357695044817019488730785997578882742963424442009896219383725465618266698805085202221353624154647631814754486128886016607483864763931213257880942884709976620503109487373646127225821114221479195104158996450828912771644291446130522335705434420190855686695436087389712740488377968556165203063022270410509028058138102543730750176354819629949488779260237365098544208123923376290042361821442688016359752840112713307112294694640839485821132596668164976243058607998453128516862455684551102265140309514143017974226705038458501164469794345236015498735655841013416910292452787263318429495518366875954516194504139194489950908041847675216885105792643819060239582298718639414326899256974072600383311607805394978687572061409104432535536003769454415163277825741596631151081842284108319043767572508447040540910741607931111321213336920776440463141492089161379998021207138181557055930290053604011746104060753974713906159416649324789845256059271249731966030589990586928160775178871010259268464713075531011417414462751315691612125845052128859908989847976078001734829832391587553500376230011129468995528860682608862391947141910740629044590057057176421002208294288347555506984400023424469987007198834019858015602589580133085849227535468667906668319175741321792177311176318407663129874058381891079831932290409854165878197752994032150126256277783219327757788212320817731669451919921881269547128898033279309669069579252141792544633342681229084108834194426387154903024809533997445338784172568812576026916922975428288121289153519807423266736236559513096332421337966669170174209400606000593518654180646291417494968025625808887203832521560655280278535855883426805859727303838429194225860221594396415896588671866232696084923343890226702335516675827938507679093758243123061332353256177286993585284612058224352136914783316093987639615018520044233366159735613493959387249620192560706896387289335707895476733907099724726426751210522529824819102928257444406991113787676720619355827476868185390757186925165449711010046810441207683127419981268505160800701254620738376745906446585540350639388134523142671970184296287452813520452330219012856321978984042056827054840259201630361383707411472313984820392312320533058606331175728785530525372911516908671744208375076692275473288009382392596142633829382150940933537881055926546178593436939461767303253915312852128278811151040527857108603904319430893377334694726702126349367224026935538534811225004552415943052108004875340140576997369614887641109332639441296248075719789395311413009033841200511872307392723315474843980482226839142979585269343964976489557978162109026808677507742059038401488183217019209666590735856794370802745727982633433306867372516390387815942398603469153251270146083076063856495780258276144974563412959266950896324244432787247728060103458999206285892437867951240964223400780593915689667918392923510034476903350638776815079846129952014052373752521075671238278336589626199285650191819297729036886845305451776473990610991085966557127832874369829603817964658797053951680166544338435187832419484515728031927667423350609814918045406279546942130958291233862093690841345743703400306852957583504785208981721980165644778105850561621852672035956527442922870399518383897303142310812125326564085798291239922942027717857964580444303756979638354765159468097776527090315505047713820903781981061784346603097422215729941728069449674921719335234725080865819899089259990574774988434183085154068638626724328474787421976542128565443545617232746940172863943469983482147741217013008441733707548878255821811836914510549108175233714593158677310703731414470962624201963198056003760271106254292440447985516539126479134387742657707821377378381443282365939446356395993647182575519393270260553293520759102319861300762312604869487033270867855752975122479690055959540612124924294561834541168908197684774863900578976801646201971859598570312015118261350925424937279913981982990185087388207050081965054083784841749191426844970018704815270064331876864928019380078111714641800693097914637207120329791198912894118119597974661925398065536590171654590063231818026554164974061591572995342529391855274834677728712468639527096084412579620249687132346723192416350459509542834500372415194254988728796169274770762578536234101712785269930639278277117833593591408095787498395556072940658440551777283963212351652133779522672994279352955781483294459030670907280231771479227191508180356931524538938294228705763631840985994293275748775112262584346536996385348964076462930009195250017292831532124875259340744095858648766534367086359316889900594457413782196894971285072940716492505408883667543823337249225391485421826014116158027478954185090792962324980462876381882361475686412697909943950957565017693786786721726404576853189076996694626763217741911514525077358344988371879043017453904199575630187688349803619928675274172101111671281413666637025361467372313501353295713329887824815884344293492713973157945500952080737249772783306074683381226567315858440482108540889450908827648340503713981534023944555398232710686528697689792932634710761734221920200607507047940422846103178529422558246707841060792709272468119973719621772146524376395917377290794153264119121311807998281775207467713950924465366954013760061389317550182950598990835028731904820903891766758891495790311638913869865690220683162190614251326880734144524829982514272472300241844115077427534078829568857932982484392110176448862479738291213627865552668052011278167537816953803209464255030949618071462560939870467712897304262027138263288945797570772279895628192360884281699956392998057602656338332624223612314946285948589157095821921157929905739100393070502286029320241124256723750176836869713729334145097248328474455062857288718804456180119947758482984905803829807493304832188665820856614324431673595381529481189069016822711151390632617475296760460569943962119832761901572652850097580890310012192262250693798986236848000233901185395072556725936654323445604657029148032650298999127740096030576030611571100032408190925046739472503353699575987153331997556928298850335792612703195760138356076808126460874051293529081927950779200531604244026340298779048479328385639549653515075751685738153214798195079049812698977367988556287425250118832142549334587596708822098475831507434675696929449026580085078971924248451607920593568083011876967710848610374204088955777314408352149984194838581033943392255789648909895561051468201461025308222166549494569303224019806155113217183836801793878998049906283722371164534151816416531421639645202152050866585666253172604971321833991428933548898593392660373443104304370590632850473854127182676877442854677435619219710535798646111249397883186918016579326535969038856720007149407925102961271840253382563103805995023105194726507971569383004585240174682071867806184661898257675509138106630679161742476082624001801242751984595318666215232014254627958782065879169871469351199144381643952481705747774712510676187584187240916814517966341925889024477738405445887903304237706417422156544984576304123255824354580968207829592298906706297605784239600713061339381026281214112632040718155060323934497174830126330625466081128707625827525871614083439357441791868248911363855873238948339724335419046914814341600121983852001380737584361538288346669039991754391200515618784415976700086757664430495281598172434572692163733236056452649954604074397160083120420310468384933364399117781819773846344504750167960888107530839222137375370860221822079721602408297937005180922667129068625389286950881276543253897165527200400074083965996264203383324544473525381610471731687122178184061807644945393430178537573749951947660175772204979005662480317355470164064280562285285358649109591256953721002231147798769626898838577099965677260056089249116588953089315306609525570630714762970537274754384280906931663709798753091857850050963543218966610513662249903124384397613927846989378362582172914375058287810109380335054538601953959299913030752913985910396690326105296512887671559298057525347084464442731376107510798458790229061023050253306961831022310133471478893974908828083828272103391928236874756996938066645923750531633589484842022222920423599882312431105498025936819235430028589910485162037320936810222691403369255164929317770599269930972912151917064731972225568845942619574104048701484726353518457924725563782547895401451889205244711915753829327648328925174303219563308057333422270439437048722967725630488211920107185122167267518254676467149516368727823777005271981705456084436546564591567176417211358315651632376062627788165643168135892473495690112486586572917888971708558779546469413667015300311620790890248722004944731382219976401441145924604289957034209678593456694122708791963763801716539148574858635783449740971327301478620140875136486548328265770254100677380068486070403339001359923041163201631740523239195572214051415038886770881678965054429427632977089562422166713871630618816317995728729353009691265562885541333228479487694198665167301592542373096510177714324089079230468354487724913479151159382000066699118360304684453896216974633800490967648457409647335488411712955196656412038832432759101540478722053269930230518141445131594097788561788872133739195023858202731006731715438881040775394287261953909039229215547700761159958391626285024448752771663752003381280012394966112773369986780567584484373458354913286822752021511459342479101206351119342365762298679729976192023521260710240444450437861330436033760044203732860357009652439029928991495458326211461626633977941056785373561346917480452883172171051084890450595838923956349367789918185827182653672053308707983353418667859331723864332378889644448919583693771620979654980762625752070477417590518594368926091763996178015571210307117998576215913027467133393928918029401634542279774989601885045604471337641740673559705175748983736653099241627633070241445607948729722406710468856284682096601030329471672008989659051609408563203291773145721390234636946215224527033914329050814781899937209276122622921131138577522918961027867090240947593846149220530796775782266633068120367901212643683080771277944808539577071765739364977641002153992902634139854538403397705733669227397553148537801307875207218079297444544747135072358306021597523057119374745631093659891015620238569931186263896398064936137838805858468796313035633739437426566386561420791245011916528579839490051311210823970900285843199762457653526526455538169508663722676887008485653111152617582631030856932996978202095589857807349153478933282104153483162386973789023133579751223300707199225695664493112230190060327172351590268157514161083034478843147645239470712280016865238869989934334592343026777877712347255014960337239540460993432896324262166966180094986475331278421821332257112720660932913568779165163976577004996920345390739883307652948711442015704378098290530120070178871280581262664339675250360267147827929536824628469900561706957738229061833201066967401741478909522862311484101581340162745435937558324817209210575815028996425794199731880635628046551052071722813259170716938941926202744845664834764218235034511651909442883737575295433211116007969112248120372382148229791615876218842092705139355618729966495646123510395521865275225716217772956246408799210538759652357723332388278822215448565078993820323321253139012494667519365516261901863445874817995059031137364456210908637843730398321690132463278197331349397057322777127335918891991713796272467703712342943224766211763065220833139420433105649388274310583134277193219650699032518636337053053667170173137849548201991256898938267670209727379359861222402534925056913322810312797212725549858215935812589053124545624382991873582278432049039492912292566837876975472166054873432231766711348275451782257119599109821829450697994478139908895963820342817377544439935067161370717070821575479472316927660181396605571140936844211928958445848195392048563674464944487237428899759021717723814436134682769212063136297978991860542515102161009622831545814935505893988724455995401594282150170504530073980254354275187191595340560891050167579487388472312431112542379342441680531466996890843094248354662521080199089073347042102282146312542937602490552824331412709448349240555091510651392582949177685341612286265005710782989623922826711007317881777290658436076184000536082150941127725354748475988635570664301100029444496880516324986141648874555941599035348416706932693925692246345900984027436196516049148587787184049061397214683454572749496140893852995083350945021461127418144046596816748095607606540873252136591678528578942855562279809220965835175931945917791662100451198139725131530748262470675726994795805075732609803688727735210611367116288110313723945962961382078352611719327199672397714590006690744167352403743226529645239934188746470750770584335630955464675266098593135495908330339061686479555534858269770013290756361340884796504923148962947970970987089358384238592718542083827182801660824070676191281332862977682944351954568378297469486497574437243745503244696712027768962822706930264292997732451832319335403400763098989805688456025512567736953714304098250534591634307609438549263503593444506737115064265227392533125532412076556420647221819409526514941360241253533634607585801381453416034063448933903665904684538049707535548416473889291041693330886463510334714675114883567102646691489843740767532151183339312887351587979388915700383114888823508324839114616547408617339849837321424687295947207143556118072798683266126907408751737158598565827445342204679534993490023458848636359710713330076028488698151313418759303795719213427061146856987791899937426063576494576979014992547378784188751531765159629288273553830508245025928079641077547351741160967591596474771051466394050773758823006955130124541844707569833015888924296812475261850067833301842441287870414939678709285261236869299587052911799367462871622267630347003907453462955591521350445161978610168746649475335071208147506077179322111205635897231367297113232250789710005434465598809641578055132763147511365402362217954707751414242666285255170500540668935248925574643647044705811256619058002877387154082709637017620256385928754647262688217711316442014770957915453350669105051006293168360938888074464239607085367752811697025885988364389868069265655508658001985309230110299102670470965025068116085594987228349395161548431513670214292843066625508215631681742452927542724802651359512352252191913982670592538597531228300450396616893645899172935017292614392717698662330556811028888384783555316168423462092804818738302198571557690342614037973068437123272476021625918521379971174974806875453289933097841344995860097014068619782100299764705190200146399108175822595690039550008058173345970025128110164390535015180580773605273615956756651129227567482398339827837183328783294547561233702765893841265599931669431969779912957478612618793476532645843989385683822258436176999205996662155565015096545742823532506733873604572019608382635271676798504553974615135445296886349744408928810827420033422470044134018574964616464320052125720202595487393137862046996501201345734358236141792483926004591079372322244468559267345685639761265403347664983744129671552766229459458237429074469792647223687231302386525523069758988827603204970092274438968305447296859909640254054129143636060381296017076683671991921419460519176027268609393417572423273052274407634432126322672484991353691043442502275860004186456597205274222680740796275323281358311959337905706456455567006567782104847957459711691471424054133612021672521852461157227071930648863580212115810797539936500758001676224291647581674931599085485591130836946795018011168899269434015983101035024703660701566802762335921373938720255605766307253413671493407990042054535702948106246334880100265550591531660563391127802168457936891135172634211160990497306900275911165337536676247138224340365579663289668269279160011299440688716790205443275368740586256006025641786996058719955549719873699534581065929645645095349782731495793214754988788112074611423879931999922906287301526696697138277670605932788814541549678340132857841655675881245424095328550791070890938013453532033268414190660757975267997568922027147480691377120792065874423883130817531598756969473846279455022933755857581031944457630157912657994991647774134929326303021362991176473432727367206343675300892398067979766883798337193173767779339273040272788353955870905419223552952723430473301645278218666100923545262434542998851370177086893190155378431471701427522583286960275312156772452349107698108712975002869021412695813020613482322997995788648349814876173746424617370169247969122524640651674708269748174046590580388943929595643667019882957161923894740061338426968072327815491779553039338203804710309399848799324394111399025909340733611032645665843310366041638012280699864364309739274101194060895490251103615777196875064021525084885132918369479105966692813840872834124068687843994342022447299559448036609010152328621550643503797588957736090798005020620118824326073277233339907523374523616069608137253199143789593944292099901025495740464595431315576735008449394698478636818346734891937135734079242835069657862541972446029071142916150607901720191441106654877595401044492295337004234593418892893132526576820627152076712243562646854360018355238290789248586614271179188629955676320340882595695019668223187432748019148745180472980725406659642240351233384720703370008592143789368156282387232254266695126251555683972607434513772499452193269066052217234229533642317697721124872185675188080090580210367248788295534571276811273393290453892091715930429740548778446803021942063665094215250171619495700330636807760280743765830369059158437399237462385295865232212156593589697099356544729525610004738000869839615796064979195312918092193041919324419331334510988300193549124362815474128137364483475663344738290095183252630984011314186576730795851693044965306553407234848001432450294560482068025782064482068233037974047750746626311820172203893648009468580347391763549916376198288192874681966378612731524753729760091400097387169399658886430115930851445741551301206524828979138631468766796097803330969002172411542149645872126009594805272677862823745481371959838259090762230175566658225473655487566660029564748848464020783875866083076636610657141976313073331358746965296434879985197999320016791175032971117579802021024981543413763231179564949146508412993075763286750448452292584443481463423537960372491004417935037559521852778986979956189085319815251952241036333659142819835793905086846393186010976024173830623533215097166947555202097911281851383736585898939613359304401945487216255601267338430403040703312886952261148530695348471500683115506158607693679082684633215202957535712297731985316799180636351546509934784277310820193556807721463304396521280432343399581576204789657899914985462458762036526266747052733379319447518399265124141438939778187662747418255437614431627145579841724699460534367493749653122996555518432577171456871309063156823268646738085087562402778678179435864844539344397593165676249399815402572712589335021950700668983586396400280228025411124020035716142906092331439472072141852948867260013098196604103349954885953497606874951761348387172773131900155924863415367824464461296693135427759805086988442956205078995419801818977630538746118250493288038240912872591113485132408811092876809527135927424307693520730150310955581410263862697226401780771158581073229561706552593034412631131231542492253721856067876379232666262424676776303220316501263216760900986529303416784960504786002438640370581541551517676436455174420179886563773558226166214677849397504381745225804576089971789612524212169028048995071232808199100900426118284788691960602564573474240012381176984073934313595319990332687975981619292286517900444934949971995407938722606533610921845097526601389859572963078788221874447583137386435889773172596940136466209642118269118560324365837436892644904763622953113966157018816092236420736517199350630400998920794789120745066062562110088267077602708606211885814199566401764789531332912525387944921927840634773590513725480405683535533660331692405422760082237079234963535569247754027379665058179513862310918281852481627140678435562588577778688209953209015889367192329172733710774242423316278070980492519565093050578675305072720592932628793350144601875725408963473449978778045908036893407136690634350646415613336695468970196851470245701925702450100481687121406675747956586645942600892188932797995141002902369786652376368923592623449836877951048228574594048317298143645920957276928828862455464044649792358650102223184440051124035887583237112079014843452685699843990849926554075564992126751547617724584645245583770138625653700925605349516962702230655803009908563064647589795714394681900955576558133141975790447908167540879475474375880577763242579777452378089702432187439392096770967112638501545999887230308977379062319472086595307715563793335047205402698860456485181163896277087953946338136560161418742485285965698494829414331929542294911647933228987482480510083202261164817542786269961885739497438401187695149551226912203865598482861744009882861365193968645989663624886828595503404385608644268344375724774003285993063082955617140492401593032987239036111371020102037704616088999743491814266661439691341266931772778279066911755699693017429092341330585109466018471408201106233959495991781848203355676631967824120989799768794164359286650816016179705769835136420229596881752715136266639212629428901727239570629642787999399487134346214384405730217835806565055175610372960439915163752768256358455750327642767117810611907830130575898579061791155581638433825003359956244271010584565451689634002392153938257022835265317238915960308462150007938713640528502910837151248985133894488215878615511753358553134750111550660458349673652786991532266021547316742380809270159940760505786730755239546746445532546170273409134074056528624592738156116460628052743830569886315962863877574513696453219153014097907482747554149831951184243229664513648005391543805194902847772934107657719722462768051918633795092122783231778738191546239010721106002284094017070843639620171302287869952960239207158882185873143234826890549062778756877263783635805436426322570276842300691186911603951780159694235487202888964750446307205309228200144348015701692366072500043027263204601644099601659381426547263660560084175526724020272471526355739526152361663927725824814788060242358678229850684199969549705435590153494200699031372991765922370667800275872434503181457934954877626219856303983805275968208041770561085871561703910413932144861115352182287654637999873781422670671235824701952262405056602839518478615410782693612307192753094024283113425550748351972414393414297166466510960511157854719802309472305589423890878617150666914415595471881248183057332693719785175779945460890786810775227334340884795794506362710527774126585389794263547336158348937693745237060872736522701847612475080546813581058280975966452565885682926172510907001481850250472606311314363990109530440015745355716110238654860154185011025042588312730610584121478350017045882879464442506188170751711907780523454731687092936829431198799586082781309920465567556766277924868522052567647335670400717395811643063041151178428929120026021837700424638066179252689057107616624207154926835724805197893472243598065022048840183656535107477772649015087264525185966484918953894485667962052026991124649085091225198180271220342005662693473874763015920818451250446040074857522689863519269402715311324269144089085187574166811774131559895663058901842061693872842493130179825989975305457628625695200251887357306381660150557742957931957315084429999209039964837921482667826258052146676224248082459047614839564393785817525945516260760810467108788114706551356336440980890964511110921541199785029221245591422686144723070910232738075897703828808180984963354491810472846431544347281093620928342086171202473906721004841537674551814768752353963833655275271176406298865332734354362518573278323193455775761470275662319214858818706882675646368360615259209089426019919859431691959765138659163431020147187820082132457023140002262941028367320703364773844409628929583224862676757804077948176847593811484230990841747897831997355475855445059530479022651914287288487231462480398677291941330488606047838662371172141825463756603047272848799727565589064221782529042806459428361427503629950231607896813333541680295039218430151478516457197019392000024108169600891855489718452865795642590177768102688091085750029565631934624007011439130635627501880668855171880073748850402137528823604053883383718205467329350865958667990434760373389395277356041142422873472031845067926106621607422573248383572107777702590233483997456854933996393850891486060661162148474009861570060209283884488575228265750563063709720211948358342705654667811956680235245285837297932587653050845000678214291478881541932576071854590278189274362797687231479713456561746902578762145451989659328190393314323621331125419159469573542318699507024256162089144573518495719393835502367843754664144818141457254134233017006631423430399485456251205194538249395087902790926551203028341502359257847732133490928245851765312167636293661671854745497955667301447813929858559134780471318412876193561184743170161226842487102757963069525805825641494966494609084549534088952466722152698716633873341439994845855186306110120851328259828528080129924383851498732440226171338609683462628722298118254243746240205741565948597448844419219210426421370349525757303358042154895647995913853307317019153341711010944446330351899677151249767080322452075649936074567827952264406014899603174692756372183664203663504401796479746514856071936401030336354162131778929141043285815993849978849522121862795115442765458241280070223857670855850915687520245127176434182655014552300421176466327542111286706532385846685611960062598367789840188391941358352514836334290469925616155734853890604695581804083657513826303911438316506018414392238720877122037937272168162061236266428330716447374539722873520012616166174138115181219498861834618902000528912545822676466876660280316695653994014711118131864775328500803072127993349854027736566066264691529845992218924076794431613814928550370969732345137228430632031696875174677400201433680592868446106910331087744997459616420847014732916536038074127075579323572456781422657007617728771719879215640338269041309040178992292393337895004585747937921359573568024498172040679502858768421285372479522940586581004161150684619097448015344662134760961209819095038130306628112135080521711621539511643975444926929181134658784624822080312728596752698341853423383535824660321503564711442411096735519234650837770430805576781638422928937071234999713280510219200773133395828589552399280273284876310306121069487030739368631951127699347280795534120285036490605267691271187175368051037048658896252831707708831053902189161876483433397117433231084356514335092443579562647425058474342209341588544840073820651298795405113666597568138296115992422156564014603232398982106588817302145760503900509467043137455613952426583904370707435917581726471368237445774286595928592720289461767013653081121429792460060124533425493191557180626567217196526932507239558114995592252137523887836434736851111508074637430234613716105932439959763393013779555181816220499010836391430188349330599775231888982236132622559346405003105234814198091173517998653982501293610438209130099859716796152510438200026644130627178114911877052299674599702878699234636394743664027971055928740369923637689045461575773072990686490894919939752659788326263340086886093884947834517984430748279827455434684150354472458709258446788809696844812888224450761414600812165014931650885755903752381807216344390584501138364791495743788357413531543032196383661725653361830992721694386585330992116056884762562628834371382155469977677797264853100257072424361474565766597359207068974288350221643805411945284610561999129572653315899081345508520131057332182401743095726413154856204930714632471787386448073903884092957773113404951652110207910130349026319658162367306719163028310323417768547218074058571554242138217146892959485794175370855378218328777222462284251215490138131595102954574600614632589169979715428486902833695342476238039643944259788199312567147568631744239184503901479845812573880019069171768669999630634981833722285177860332006427479682701872918914423788094407384085309830383040610200288429877155643384076539684798881132414221731038150771997906289298535792495558829755996347075830406137123525515503795073041920091146491304257832075951580793832675063352684294338542145252760614088868043216557772219791256821346247095742959648384449679462376684358662636374418241242444307253916045315315245024978588082754163045973045981272254096653552927978500552711654524037966193724485117086340638079535125228444388028144015487581735976113603225293877510676394219195762434776262964949868900785454081004725686091261564997150660344221591931377196487666598100739390019879099097402302207999899513551539573896616719259998198360693372209087882204658443166217462050726302907530524954702182827356020056774264482957688957937381998010059231978781183722982368887133712074356593666279340092685403696215337435870067443511546374971702092702839808534318690328362002094063565496239260654065776115558029206563424730803596916727351398887112499670483681033001822313142935041058909192050674188140482794024802898059594194817506953553641004620771159736555571372553115484119500320506405329407542488799836889487791245585513129644041162038058239182089027484661994085530033093503223288531059224579259324771967878464432512081531882255455383003615132354900554016345574368294070203476423045722676126472412519581238118724673427563036527497690559359158233565024439582394120713138815516795689312343448330780452416962747756262678754224417692608370827924163446752975965621805651932983902191642779231650590643796706003553285847510305919729165395094012574427073524841181505374726252773730617050195657074951541125633100390170152052112185123243369184220942528122254365615324159735567837376720326196073225033747732233005809063892125868527584073550695613978680770039641059249584768264125380426096544963722874092355986436451898285035204179130520643477633205037592354892817216592952910854503078797141819658146224475434570787110876848079658232552541880270406926338286906801458679429800977379099084994355196870711469800661634347482911597028509572115206373889508841083833485994676091928345304542782896220228836297214690956655718026385345108608641506587439919925530384800020933823220295144044893046803863273198503077220403503743483474625089512705332553543175749217088930338191217276778814286436256627408569914437225825142227883862293295132761597642087781251621893531613412954818564219275640395818137350469638992311991920863212260735372653559110432732723855394725254932761454705332220857820348584593514770110566546686559898278913353935157568108474966065439795430228546718012432827658104015789989955003924433439824626651770572912684805579173310627799444066086136743242817540245536545274253307995183568360371921497447154167531297053813077188912150456977671490110387653513168160456333855792358192078867898677305333418958023076465483879668551837064808297256091863095607748606357730839144373613381132759183443829714880869752513316228580287221358793975015381681655514202222358311171260468111385515670611927120359267079543557364794573895689813186870123833796710259254306656543535673948204354685704159968170031961021297756169823969185747520677965111944449945263122043096069275845971948147365653202461217317925834563471853434281523423357253691390724078470388226654865254435731987234986594279094979017529628544456356135490439161518032759323322106638437955928980232185085304475647087884564044544431314836321132337806645248644936036893345828576799412157187290384355513082613203691550550085575687382881102228738708069651005573344804478784524437673297113632071947087425988319882300782459584483933151825243104759878006044289242893694536686134574014659777743313330314553346322981990656716380196670245338052287566189810694010666666479320510969557927544455972825683423992448070150133071868208065918238375498617168961800742687295025045208211140637928948144143073963195284968539211078252436194068688557473693972296108504294996412494300251736233805458622475759958719575123194952080159060069430391358073880825312262168796783419150959558241824161656428197893209644557620662777487500812833530567233509772237515143929417871924724985602309580750932319357775449979703010580617283003428042385460685089782889626225567542822859345029874585990266651910711053663457460784577134398650420352205160281875139660476262940357262875350582292616190818631292777997603282789264344882445585475132230098003126751705713206724995670415872260354916349528713923658889322471825601477536798000720841992219772587023321580395493098215795371132587665237180200081414596605702968091677904288193359352896288590149636079364767490141634429896090798998711107214963137327171793309947147302307672633401968247425951794444532004486283937772384133141924616481539623707732145403167963356842387426718625440918822585960481603058204536195174375724462662240128606736128728621604853664335205145641088664588730688491710396167614867888006787343815977694307819679778704763615088932634052708033358400005931115647926623921086188139515851073930935389708174454919846462177583011311719410517969283961586550703638699543094096932270145529919130311376011300473545701919912566180210866652958701894459689322052025991088427224394453149203334985087835460954528650106490744209953994191633948972240619565657423292940816200895049413985882349453500745756998213046657411352715437700396120454230108383357889838843290362537315737062078004786927936534909569837463481736952467576350097853063196695807662971151858807079409918939451142432050435385929590777759594631140025917460235153143215462306164828587787060553129558000894291875094392170414360870052280824281796006893470564918953988735582583776915409278466076277887272694454723976215885302557888035100288296020198847069296843665144856768825233666837225389044277166687463043494364314856621184843808418377163214094727746866445114949681331708038731135034356153874777319407703073818773885925362810403383095474355200094497016064424409773229004599574238148529898460964493742402358943013781778711834738880675796147807173373962907979415311105858703942892476151903036290201910143928661522233125162225700563679319283262763569750124957284118087190951062571445593240546973713058985336432687003958599423891324183221166882572211494742170396498815727382620843595362693955257945408199021883836340491398634079122668345513804380796818650059308266432087390907154320196423563129355962982835628607549881940167924135042799100831192270559814780408334655824762520312973710525195543509228046559015110239681478151792257637629071217918966425779534263240926540143468541249905362711621676378430010789187023329742995759815386911140135156822119102844999493814254603625138360113644943542290581667653930861757081441806954370889563970084843708131050359012735964925927477830186749573111459809873509785132703969766625639549372815297201510397826456854510499206886131750014878929253723523012100436997292652950756053170546869522096216348725478269946009030539879682975275706449672698263177502900686209738318053014038794142888901336426315203875896359042320131917680552268172659676869172816049254760237932937544387761191041348920612182481367649951583145262998642677161066470662884935983885973197017176137572509252452839152686684807081925710332244794414024272328145888539273365509092372891354844864627334418527429316300877310076904036931784820553391781624639971163822291059678128750247649523068888562183508947683077630295960318675997732283656168583234261344083122732831148619288943094990988586695212241308122061936951017155962228402724829719522828242822378030973361021619767610454280364900420618839804980813726990041733092423763697647981983754502637223722562973366792182842547222965843781501868314680589672137963821290415070514260549165732950025155558616394732866875646481042221843740938558338819066148265003743484714807744021903972690935044225346045271266795213429538811835745091507093966451809793033879878292778609060278154041003173408560887372286561550129023587454737847343208526525275208581085178773238825566900894515702598551257088036121258131460999998602124752450258220841783964478338678238971189872917009355602552758976913126676586463900029899298690952776957467148639788056671261094897663139067224232376851763058254016280950205455225164212089889895954306613882493169070647609849400035052828603573379643178537257052957087313074765819507117972944184018265419603685307267808928654682944028368590869917379646003510809852497492233096565149887212283124438551752653821804805519231312062516109776829124778379080493766700748689494887250516265430062792840930715221360992117846449602642428032094454957177728955791752865849938223126091177497617925273100980073250495394680687333516605075368965030483086459514332085629380482888846831102341655629425722691284698933560489244570541978576632512754890391697758600389736302551083098844048197751628144372335207694855438890733411288894147848594204405986006786247387493769102634810306459562628051621641621938478567797372684913666402585512180564968086638301504210023908318791553768617297055403543350984176175751738239197208207907126694236400849565997808231799265634685644491684772382871287621040710626963112747283137925979581038125926078278042596592569417338786328912635998132415103937018302794203441871350858666478171097990232685701720155417003881766292666364078543677623192450162349528007986183168620508386704634375092879812158508052177525109579015976593801691948449483218490211618824774221180536091342759478950182690782142568551182329580937278697268664572810353651727236612764468768616497842696896091264342604378154379402593316399953121127599454715288868964765136761859482693905355326429402892657327225935153541927241598179420859106983396205984550574055342356248354672418731319546158424360057457759052342760233738843896029661254876948303170948708046019705168966895534340605545845819239303043908814577469787170210429472529098223317342441686852703837892604885975119084783104760122568387964031235738615798868789920780793579596774231555637908227285979495413252043791775287842122882530917746158770826676383334981039223621942562177737768354680400904727662105094642149598235985134094931834359730616632392742161199047470319484245410946304456575159765517414335293863451541115025448983586338365530572707351640985947111706879502643247662150509532287875120949077306153449473080644064927615402072131445568008760371892913912353471135929334766863778318124353216387408399231943285145295549419878768560201085451116519716206746351232945990930428984014495733467357725615655267233436149790740641714884683656440818382601970358032597565983080720791523880633691020760578719091829280218877966145642201860489704483337190608411610883070269893667445719506722487443823937027474942578533760074213321824570073690927299548818862480470552750111298357539020128070243030260729319069932979744135107648502149419641199783539951608813363477585997519794060498482916626726779402573796364521250259964497410473335642047026547667249665340643713674701110082772344276850428363808457979591099206792440940323271182431955920512136530340252189616582525929156051928794116927636805768192684522470363958566909696672661607483079286250906861814205776549817844054696635961398517328636290770676158426945781308976009563362032753625602423604458492179477861249243139823564129376096388962458246178204078084685775644284854218912628192590489879978728257773723892194768871889038883643627085467672389877511979424440447989658750895668004953218261891359766700803532967055321963152318163596692116660201304992338169835404913889834075800750540741927359389536068420364922098092690055413674835316356903051190877061989666540583530636371229751413967271015326738569521401239826596923092255020520682538954411289703950414885483770080595335254734048898544144744120865083296874626808240236900216145516245155290285917756640292412063217591448218127596994617885186540094294967169772531568917912255835080898438424393879147197893842144483887268391913352977674118057192491870550263427471367826199514216444777993657572899200346291242450264806344778328603586909522114363486164984667870675567753199098471974517746586329054509632318561499849154330107708154117777786540293459364250563866077684079784591329229199447288030623908796822116644993289690831086801113693982005503708474117192415591021601535964533312676202399693894001741633087452124971160755240267159183796043736013250493286633825192166625913700186894037761611098445654939167404197068497023001616855053098145360416452499235237854383201168045720213032059861611404635360056516469687916003162138414284916359213179039380311592384080466060960865923136595463571528360565292433047541107520801021240723639106884250435127164952004227587425337400821764807939860821732934259080084101644294682996456627253037074086617999438576924424754162690074996838658304088407815390671118495108927106942455383246251052973752133188502306284599819200980916292750192391302078502418410670089432451687393062895933888304369176807918608123745399788275514574580732672551767792236502207529377383582210906965174752841621477498429323528037183984617539315304503021125684891030059737061839265092346430992890305921923153876231790122921999464044997261954774113214252176882650239805279822942579705335819098300852952609261821799552988363715077457356627425672637707629733597232484481649428727945682957668289659595012637119448345632590971775435399618171258609888997436614803945849921655656626495413876382964731757586472606359253172504940484826002006995925993289834993684726850459268368233927035865569027669502013194208537304902099087858556740512339608017205130909068184610089274719410913303680714821875495730551622580501076501274009489932299842408818272847622992782800495293789118897590494483752321528693239892400183385795829165564510817215299578132090358396490351500256207430495456836709705719422371374197634214901552205183032225951296927552500926792156504247112907547051483552105923773006607739585321502940356452691473095791949235796508804587123172202432099577839412746887370221546635378950305127120110823167681067027379069104107571617745303201332773021377310776215826706004464300095358289633840825786714160717292290657838833907653027872530293094872380752794560487252113786790108408518369398076789950176679864077023736412955774412543803328078960851342682608127926081057584188003724276983911397309745894482823305193380818412256913608610354585103895320671629532098321000401791445757189082825766805929919820434924176634173550731753572643176409810124996638225768647317978675857958110586227258269189795016190866439491161396304529572023248560758794426516526877494937746822815345386050259758885264696479324362963156814970729031686060984557100084708558439593316920341550040915170011823302779065508865341600575074163911282213412092837116737325137127443923452849810137474625540197797338381975101302808670385970630616142865447157093788693328367036999757684992959564908472069609306324317540294870314614509649121009505589036536805904285483380178508518217740938927502708377341754687248549298227819529672770963753640477105590258813956118060575026161197835685624359628111714920830271054142839759827544979303242747803739506820006038120490274094461348453123326620653501087103887392342667122070808467816097896545835257966592187026999121222980859241231671634598561957320969853609454887626195708762402252294625607785129415882904707123884769138583748302833896663877262344520650793723543479501743350562382862023191216185197142821504465210834908227872684246162730850232018083732348533583053270093472016225700945505177926934914831368422432823020176236287958235790541946098842104341053708937622710576983536782194196208417276955674085302812098890642017723392321754063852681119692013157675849110110917407891152834038742968214824716994793969366682285087036424287869059586292678448138657952772444344169695794910714117727391410220895996878167942110080036689670073011971800739829829112619578635315515777940024645912857093972635065612033820356118919197085526074491518213783652073629055615975938175136340903092392379994646598120563216897658209073222461316336326987993910596773234642768041034487692693823985938182430279664663072043444557419264235952176129658759223320062903161868001119820191840144903063066007875822045317593702421586142777290921180969207470231157729057411258034061749867903314992931952717821597000197318049671917631294279377835022603567631299256306744099741596027549239334635873166641417455791544287618316716386556307204071090528387261065233471840176117619863544990641926846231707253382354752472509046505462258088684186566101312806127500387032983788427639779161625430392391397411619041277134108318497412473585620915271002270675734854690260014373069533744164450966332479751382912856529721406868109992349326593835111545772003189384919275717881764922636882872804644775425737373830106509031360423223724811465785330741743661095990338144796671052168637277715993856875018123346557194968052392693558066749986454865741259965421898467376618907975435572067804093721169960822640833073700495635802452966658332674085887711627053178418096735241058561208887946344523706904846500556215474763496024716796961517593046445746871807302211324981510938983366863142550478098558965357879306648791840329002715929718355475997417048361363063197863504264127664546558112686276990064884815450818525866457702138950669325542882032015023705456574703313048210957423873778925229439184642657210435805566810697236521865860514625797900719437287095696759648134110920960807771504565230305625246125327831035237774065500706470408342442810861241961956839852876160613716785754042751739049588054400665129958809633043653736630603177559626190385468380075041680092379837008577076324872635480538123119985640508164003157527684084780065981818519878771211737540215456763943473857674202828089126001947978510736247097928602196486806527295408401256654046136980496987788141238607792793858623091565484565651409802917196765027022747066436670234812089886490074230058395505516866725182075625108580033414517288019814423403473749546519541623335833586990601773987397200126916081048853080679749643126149901142820897663006395626022146087636201543263624960870295517615316113327425293857047183313493826454841684918230402932014308757080978634098844617216959514991683340605498849008277330476410530917113601098759995405831787699647597495407671889924430468130112913570871641638413978529303627727574824444374663707827466220608909288133432123990152973172826923625768447076632433159089772283178513556398942867105168459826862972115798730998830146112342651516693313152207647687822736628050893137588636337172304386711986073412104930528238212013716590296690298438415750558503858248959241639429837616282991332437555186330050695176372692952601666685949894109923317232357867277044108334039299540536770853736249524471464304581765050118938617667775268439564361773510352430741193077119841794875948093117648879691706735932039440276482266250934376251926014551365621778660556196610723496070022185537241340367182122601278736035403603291899457001001667360336983091327588501704426032753953778827271166665383817408851563107329364791754271965140789760616227312276013865931183810817107553694462836942068055751146337372018336169309560138742304208548562958306487662518795900177685189050994532402526765313927566471507557895872040951382790899328676444941269112678333820583425252456635646609884410503649279161615534920713269181142991280920752849717882667528179295909743485152214807308257601611079318306978307553496934270100235289319342856288231953801832579077026490512327762657298445407804422939493978890977935440149683254060731709161454740879172182988623334747078747577993608807110868632305987053563283577940869799660163916240633058817167358816736455374934164168005145838450635233675442028728326969262904566192240934838154538352004568716068854692099557136855123863492300741748728383567139657082920100497619304664321832139198863060261075445547450376708974699813805628982804257402250449143156182048995889093255126707150280292420010525617259671377076837722916497678841491412872626878603318008346645649280950220190519693377449483395147962836047674456310898018190717330949619193506450044097632876075251125321411158477227414663727188113574718005379910735553517369985317188467063404610748873610595910484158356517544472425483605743744069982023891959575293057293643638478112896091591567654672774614371126452381166463524259665436247986775272707592461242506878441477964468116603631641163836509923960935321906053201387625560839603130829824248946002488382495037368640142189917459104399794208992840645141811018266012095734534008112343487711741505770907642882814375675985342440690886299649531014496500491330874430350711341847609745292367113203553980698747533985495184944020652453695750282599048193836680984516903562356640593436531916415900640488028311121041583116935813568554953714040467377183787460654477173820112652441032957481727797192861763373538661373011636810238635626838619060196777636045463257523567450739670719290698606297049583940123054962054657924739209264139703872651363326138432295232080495096818838228746669911769503566198658391480516216509025565318458769045669801361715319917626832237630366358028003383752585497053469876294452870519791691674744309504428866437701775028644939201261789392251952094730323791606796497559965756797476744236848128119789283175649517230916032334241426846604377076670470648617338062913377182940045435438214642137673879791491603028062893753021959332745045170810356830974748382063742476886924372653032356101098770564284757272865701568893161187070814449541012717263603098277148723851472292866450862754564934673789605311699692542679055562681070357274932731163864816102901610737825784298658283746542187999472984146314011971027217633538259170051285522513815847085129271315673550645979832719480835517871151339738535461093302202924704907816126320535093485604309275737628969821783770790099960370428943050405514612370938349221212462017250959870582583419188006386792821450998979449567912869645476170561560274005839755402224686119425361449425552361101571621464130783411122526884601074949940339000310705677314859317915360946460557376410656695528223508229459389288312776571091674904899538450725579057996545386923153407677898355216283710864830402560911638943314706063591148435089349006882459686871065963626002871390812849084161728802205271342856856121423933015850322290499742508479044341262327253069045259501329605871103502903977014791480657788433777671394221934104497452398935811869080510958493254923459583508714163801071831582081195655812895058997095255621840587582591931505455331812993029869812123489984902199466964698118180046120552359100533914085685926770288148799342755988668741601315154595002812086602109327132317185468344205507249732808788936294383391845831547132616264456381510251911177287715232039190068812606653195603148596724480516144632818930436486172628276868684075052601594667387965547265496011075059696629464917932156357298100485826823445400441687656093310798188097862600185009092646181753766361230505354820044219422953917560659170765037543477338755656891530594428820303913603653064936317380617021948806177819631685580244434495396552831511538885781863893196951467368964911405153769744639103250703753807990167979474856451838006336185501859273326005282373079962869461033142819894967085866456630006064583625209740472654884061031712912201774787743976317959369689247234151200057839602167887433644489572978914653845303734004156517209804869059341030808938159053633306363350282014212310733399567674809389750912670962189679134839991140403228890840235873296326157197491600856608288146321027131475588028380742000701943176798471839723473709878552651361844537057472263268896281630652181290208373218932111981260503228966517633769595855459526138908713631560481497247483667919381663031299854924225682253769109715845421804755057748826633463371296300019680907540510380787456522348233004604413114613124673082666510179853071322480750384600530829201505745459843985997469581233600332995838752597771214461278204516297316625942203138293783385366931632915039857467424113685886238252364367009587571642553035121271313111804337295716212118444345204959892676470050425724002313451549678195676351553568634536136624600338082898658078585588596079997444374590626474207970106863814160733265793739387420987281365698773654787704211334963782705396290801440058641211927754855479042411561775840929794039342487273002692820529938979691056679424162707622790416950189637833328691042698695892920669106290522943593426657110119346678841869393340786479930861269320637332861641206969532211596572491809965152108861268715814456727497450078398795253869251254385289727440331760611324604353269758016090260894343481320431109990834635908637742490399650094408119818495889035822550618502157801259159991245450222053872983092289310316202948492031974864505570743836155101034444299109016795359247320399351579167699174259517728862506094465564866593860788587721642931984359745688690639664797392742151738444794711007039317822638056092511116743787730796344086236528931943530278614322810525827937571625788217659027814070589078569580879565542657683849504030962789775403215178876199763673643034866474545740982547694299775590232644471033597282465995713618753295675390216518863992346485015856073758967422758475983067348745666743945366252807313319817089840212169432309036123469723140875091600160568569003727664743162799258719753974903957767938166386357175059984878854506777186568593875241281045462052560886256329518783621799300303764291854647909539527489904534053263640754327462128877904481809173696434232711517722988019667274846750292400071725388149851689185820003396048462700952147745236478317538937728729493873285007861771766621841204850403095007776153670410364528219068713430263849550235055341825931053394634806847348132652211841627137106037708732773608798910675487001883787962653381611365298601383832038902599080002142975702910074424862083695027415728948321198736784888226858333531536327432745811466375499463868028948724448262194760569219377980088630480288461913512808382626690849072356830877802424092980644202745410909219452685560025164385666469097833506642043758128049105702751530223831327554601550199764859942716024959569645992532584265679909663355227205675776973086335854205351207425771561690691951021332700492900563010816601021310707029599467768090012251001051896459098500346925847065624714220582831872932111266111128330392955977322912180648958167357968969943725168648700208592407004686337924640152641756639776719161897843471205256771701977887086023511963026256608210372388240917159602472055372284420889232298668271796051306382623648501057991608605464184142306584800004693565639095678663533832114411421609603888492992534957991509183316447847133154064322898163539904025901612640980039020106349000352969043260412503077283275730916548952551688329509923034369762534342162420938939278517137336690309222427495502387729810626682554783595035657941282549944057259630196289874338079857247845138891189244405033384360952311843152639996419943257188267342668147922032114588877292486232962157540031276619282475170317798982488691563367346328081192527024290916397538121446817758653205515190307280065580398247216140332852468079561890111714033269892113390234125572125489805180314208592156227183581809135550733532554810884718639183127014454779943101555843412418303536365148480523479926884068891982036320594712487610006374435583689446219022618817496485245662642878213355546256416179054011228458661430804524346414407469129827864111096402892107270686858406429313985138449837598803238225083173692442920667157860265042090181906610964525712999342782480725001253544750577561762613711832692532895851720021369039666918933738627895083772845374315223893981979102925514015761398128337504688532999633127870669711617718500778666524183146920677979752262946041315374096184945763714087614660703249360601810936980333764065875687066370761882969422819972485385048414691537230434560342215381871967098994531479016658877327346817466615848105409642962999222851750542123816543343095675892977191988982525066085878174276416166457779119675901701832551349450727943583732026442292415614136619530653421424579719168422576173016099867968379571424440929026733065383523587582245385710454498882330350313237926199232155602517681822792680269562521112702665594915979234288170982064589200185574943210122200089661810145509901243058189897289597899976076849535139930850026449781094381459164502354465319548371727377148875425027973202114692452017583388173489799055381024925754439163635856009651214440797035255199502422809278822848389837200670506468218788712986075718739258764447965124223659171211286534550526387821482466964690273425906918371077700543970558335143136662249160705244877337483518188603546032039564533575565998740206108767042824151308116722194681298574995550746277038419911174959499789558856916499988030284926467440763643450928096638849608427136756242880554671817888123693622588494619992263148705718620367941951608794030671849202295334917055296939056652124041211353341322218079391550476763234083523814922897839903366088606313989921245515168782896351371434330186891010634923753237861203001616421383627019785846432110046384488758787161566962993901220335897179669343932323230814934152458425004053298587624508072417585419127511236701513228497421315926620461195357532670106605760045985543034005274808478855582961051061164735850229615254101943813901539807366804534998629942970143721191769034656921643076286353294011107057076365857890999653848891771324087291132349254869082849955979841600557460946743372003633134406405933396544066049382482682555599440238824502363419436683875610315604357034717485567219001981323596025331964679972502941277377727565373130874749294107670097612963833736630602148484025309908340269080691510605519299418291789612915177544948017700909155148495501518690684130025500123018638027321627536531754213067612564915602887468370617105409586367088786580170233580880163455304148049162019649502125510226001798967418704085626714594352930406036196945732650836280657089047715811797996149948221358572092007520999393939272957903376739816098309732635164597336793008554709393375415712493585524226069607909724923638715040899512338302756840858546960656504002191967194324595544593210016434251114737698695622059869756800285053853796960935736120074545827485613153917644185349409092349694788643007294547144007249559958201864400239252747310172890589568685819601316749221302516121483934994592843227541844301743549131742328281613068352677722638206705194664758492270087312295584144742051154821298206924332584742287313912596560204061550626585798711976760100909328143745417982772733430735560583846063511641689978322037794787313606082733753210625431483896173828233866509678242909028395371803419887442648806722863206349062139907624430612924170805174983027536420522163591752235744949635697429471933567730284531938113979996326856419541781573355707751738384661929453690407144895879157119965465007463473947152573340543626604691960460559982128695147157150843112757309231516435916662965737380746039226308138048726006646984037489770617876090672560441195777234461865379465563301931696346568383573106333420248524357322989299994219413639922312483767964692499457683771411205583601013537939720447510493522780648750299143907753892283684804639627623538914323628691597869744620273410033002650407384329675837167899150812576129285454215146691509299824057136509315141218742901909996308596963677919164680323450497555026475844480783742785833522502311837429589979547803866191086033906164234793013402711845336109512189291541389148871099769420365725240069896234722088653728498054705669548608781662152724898665990490812986642636017108532389423147362160063864332837226550942615425004987800658358071146199481341039949080958845758225920875475928241555568202833752444722065476579718157913129292288817003085516223666017580708338066389422869063780996807889273805667896976048446514308646895443376377367332592194778331064990302703492034067226032734944709279570047217405787604485131438009683739468140259492666312396407078146389160833057260329429131154176706072354124918411509733882821112942334151710558761920929794804671404793822671096245023008879022052250985333364285197543494706608577368618808322040412645643333276079446064518882197433875794242639550221881758131215468078413699199781614375243496675650316977273891244457850152350657315975412753090299703294379357556135382395337226497631123894205897916183834316748065742573032397213963029900521473598203725891099549503838591201496834099849748112100806011688233754283123179701067650957814454627218123106918946154382577843147402915542679623499986482670557542101639036386906843588788687478610475314752628236650040763409841729267312215793525923611197275292026127052239936049929223626674169441930957541033735400672902790505082733308111615018029926214801802067418094621181671022270281568114373043925366801636904853514185404035795118539950092970352711957831929600404271034547787821045268253751659334042430115146940128899118480988463804046649616052026229635784456049958337079425636022281575766637626201465474880219635372971345953832686611666249668086047677455308107964019958406535200723812431108602940817146682433469355367185400624914684171583231970041935304086188920412018896221835569396583622060125090151920015323749740613153158413668832215874490472478612270166515198042387197619752227592467008718551562452326197684961516107691756529082859426182967654805724511073990260792432598363892786851266194974929971284541868000811743199987850321638156244131101310234466201060183494530323320162953206065463403968299163834087375709404074145165210955055065061554330790440415557763321843032757873492912424625339238705482149267014321422488781942590793541380926336604178695605894119875667096947296051580754792318674127931548602389323162153365237905504805747704511863122257451540342293254534417795214051478984993842033593155458944658444947465943309690918582708656945146609041690536063299178199834489821095607383927032734983939396272860099293395082593091333133616347335521345048949076431133882023900978100437018346836696578109252845870578059708946626080821058100900988434731615797494706692808290188313796112708978988293332538804377820265029698443609903870257001785896376870367372226545858172729596861909498252223005223239709551896178532194741688831429579666071867181864517973641447589288668165833223518250015734902207773205525754998177498194786606564416874594480550305813831567724945847577210809185329027837497732515549407567803963590546071735589098957045745531127284362883759767871497070466578955615332474895653532467665278189039751264937766350471783545534322287384799650911567034559764513403129200512889842570812759644818028041425625412388031976116745057898775905808804000176652533109122547855885824341365800146729605264586687019287003153823838988672617692518246272977034586707465974209150553199373002698425437121668051060794070978766894895056743708499875194449003975174480451374479451630768375773121944990982660863074576867482800878767897683858903027642221125529095905361130692357479561006531547313012814110837032852243636891203936429134235969840759706434766342740744860907917323239100003718236224807763927344318137686459147721091560413529883438317130264164794029952123099667826934643158292566195943792050007681560661370431669912296145006587287485245130885940506878222899945235367560685901953143755653155697102309488301722876683392301535384728846376714172105012136819204543739986449363892343668979580394071926216302051788759205437517824650164594400678240084386345569012423218771942014494283354325825501938644935906308336400293689515682512945665717646814232123272662666213248217620299133367617849828451480671609295434895784834041168221021669624844350668971826163949333207067717042102137620336100248008816612732660062440343065056675696363268668679612792938586312130063277499298807077834170865210412319088419095089473590667478020026491250736174869132924233766309000064526403657350588618903249884808176564124384266642247942249174492372319221500044406197065550288163539017371192139554704633105283501235431972698033997611858984034533032105826461090273150188820907484754641628996091819248526240212298597874228461315502642903912327765756485129194843074117025187687014789772766865762056818058612285359578078458102527544774110793123727983452850208347234115588320018922257061136650704215046773139357845432588660773629943120455159490831217617466328554795278387604728886754132208351781101699937039562813279355101093809511511378511971122512547118112622121231501036032241781921954620877311582912501976265425438368954117295117749687729544951174305934902476186586010782698092309461407933584359109111930490034620026570910268301642885308763209099696728143008831789229260001256331478234576073865853727851005557680468505293982933146085499923612520217641679929012092693629120457399566219943465238959142362224380766527904186375467494080196403113752153540050804121338712581857077116467960922342357066067385015649848800005651290712643270410719214262747372787282589457491238240066869471584004436438185463389726808262824038784385121923895701859268377670043161005978207204928870324930047957081378756761760729790513425390678756948625092681483860488394645920034608834632764098581654973842073284653421020762863347736322873200794142307649872396774336241421699025969337121868195514603369352009194413123959872546996904887764962918040441205081369833879229744740339040387787670365148570095416410572865988761791766472549679160658984530591038492604685346799342696704695991316140091294690224206150915481906054729677609785492062002087997796603978132349749820276475699969869104434939101913005469337072263496922036228841835435209761875085954733694227810340358690759098132154962716806871944886949936893638510689897531451220415691881330258991428643484569093893759591743137075396550237770142366241263718877387455733983823375005268774483267875589441964060642890482663696341388625110252417713276508701017802940748620195608448852408580897340321839584854097633981174629588639825334064305326459473892557101636720089649785464373280788989488381012267725541286728214711334402331531900100186341827151155541470087913402386005800947832909483610989153413961331948044174156352729365105752840421367948297511058234459925921070502084349212652855148569372869031836376025264933915994649531018073826134948425699857976952343023686707439807016654209664036090889924667158452246396074956358339988758032618159101581980570209186941635068704055798952642505304440390833107021390765945448211024508742349739489946337551450359774563418040359887434934588207124393947898978382955312466842092037646808925668058770703472745053951002603771838623921879370181265843759930094379244119328764372497179256315874212454188364379399424789768325671706245988998854912340373835347253671647274118192034247206918185747283036317937215803244988217855029100607448918499729561209441709337793322595606916392098439990774265426790686702309994179846524462877173938789166502625258197372174843887044922459012282820633358996930017725072368757639423194957891648708845208717552141630096870584416777075816097548896788090886857226167065101469173713985400941721959607781791720231025637895065312484774142511155319891335540477555873778227459109080372376211692733694784969419526071290713753204143498588741684171129476315807850255846859564228873690655872160977298093239086259562265944377094389149591764908091025914889243911635512703285594963292381918987131918655624863762563666694475308860870944643379584164318276000921746874694469510642089775887645079876126438217925054262157611278834052985632575102273102610768344636711405068770245601727511427928195927524449591680722317024434836971799199392134547755863852935773212338742434847951020989142526557165237839910775184951057953768715967192910874028487994374853241452063383906686731771281812390820534054309087822630574001248337033405599506179146220848162685990785840019516362585560379040466015544947270762225840783949285857411380140987090756539125527095849031064886023431113307296657894344677527784775650488745701704374059282064902062128667626887780591686185572697885992263875954096946306689217199666480294722608102896149309781274613776441887225661646706459218829683262916096878850253837052740592895148691975983734743000868831370913376449638195773342097695530982246771657656731752752909316973975395350128345656675427654306965517601206639044364507022903022109350941307701093130992520090795447336828354525768843687860185881095808597068250299167843256127310267904729503072510084223412836548958656749506092280724986009531812565429944601506541734431620507881525473094096969586628572445060315882166864008212540784314783086481548809360082650756855157690993457046044420908633413947840713050022204345068910317153204366973091394836417837316258378575958821307786750137848960628727195383001132466464030424265534341265556405649252121215295930548106088495826269161004139483899902847878703339956544683707236688097865201781745675948534082779692346537262770293473433773176517438497369842499109422144706830636341985823273569132238708496899107087042756040074807471686681538931216683399609059396967945502098589587500735391291347794555135131559727970422382069391567853219357381346272387584719313066635361861488026493126091039639792014081719607574927421973272740814824417027157037718808036715124521853420387937962163810433704045235374832516654369688357087659575314569306189775935257376295593528671558733596787016179269799156614938815038194928832295907455528348114216035312163866971201442155531287505285205717859157834812227493928808567191561040594976388170830835698434850193764473596008607302933533633090341351308947378190010085387211899321320236578269520408243367377290310447744957967012633911823806355610449215341897478411791094051348095354384134991101072246799472439346641353123277990926802777526109168482249382860558471791976020214830704141037166590797342465390611038414017668167688218493512861793003782529943147585605100333825396324582614477512155874329497831269241781262989899383544237105714819714318047520506645416947298771978256412053317474040067760789989674424780549577854229038781446642569810406075958895278070498486693102443718220928432220537450901052808610282703892485376781859469058634859643545266728451053743911894130738557193816826355952285132260748740532737189982480838429638902983055787391658764046774211365928509181503543052601562803936555647866071766312160868459718552665176032213393004698527196618366062109931953423265422842091319304813595271394242775439492169700371328178357051868384152092853227202016077090367856210917318952992668436224485730216716462679803179315531138843831063156112343501400279435778278085384429087653331287961411669973778641051195084502958752241930136656239574645032927301252191318966826633115827563584196481086744563194887318296212224930909604450828472921898135444170072017705380655694755360749294925286292751853345007034849517244847098697778536695428891040099486046977356124886975327645543761662094641839475108407681792505427628184413402004976509630759433254580086121330335866465282665413692790297614777379656053901072958402854686630372236389066425234686540037410784312199676113711125115697967620341432119668210229754041204564142113781117992753130327156715814891479433947823664392961741644673870062267249103191085286368383686984729876703086090973692959449288493581397337832557310235014840789419638733768964590967152106154936037364722939664360724607394021432058986742372015786214420859207144509664394869956229434850648842936044558358799349493902995079711436413047512248611079150232821080787581787066499345756214093051251228115453019529424220196919852323018109482018170638100795042151473530079074053918297940862653553924991422195026732637553139532552827282152493581080676236337108546830884708660502956084123859099758106105761331152387068946407245319643256881932790595016899140140834949222935968595750815037364360678018987680745903533148774902174499742884236931383960198811989300849849607204626890585576929536135278791610708630376439843102902297741859202760900881256028663351794731142869186966770851004691100270469661660082650461751638629088819928559940166517048152229555670156549336503650704679644103283788695887244438232519978617408579505709834064683315935835150701822810023640150199001823448072451391792798402649843789788198641335617966027290870060052568435485238499885998481030501384516331956064854957545317420980780968957342445031272324113917117133938570508925490322604111772628775393662947891325980145823693280722557808136531773004208931974105680122776912064244894618950202086838436700412610096660743867195914877574545716866745604960725995028118827757730687837879688740822729883289219614340706849793685662684372682251044162158774797111197540481833699030862484247459103559400259191112440369419282607543609139559540666837369112976412002229872569452876842467660122128955438032734363309455792294924256051231818819839327678470825909784243943302260817743496688670918940408668774359873711137350534786643459822012353169005705474504294102522540160183658315027827300097366540458092133224171137994014459831640441695332967829136424577272015143547767447550293800870418782987674154164921233061209617240081158997933652161684093449264818093903177888992094281275745963847325964841277368692705982326137380469896489706128812948065207114409437244648026195022900606186675277907682749907858208445626694176631308709827187349232377192773514639083070815055264902476343629873139805098512139417463575524732386150116020001795029155442822474307339681952940651222918585828246036472696549742479489913928149523325145491579540027701526931252909622584381297667499362104297619846524372497406609674730928890212329608742125296846413058777172735834742775193638751708780115592265356663710892060742757572119277494796174446502567065348872937139830658163792748559588650433874783300008584479293818117327392849863209596937954758362294045173518927598103153978178679664801889917090646684693462225425276939014251552214373326886050651324867838060380480130720612982286924859483319228354739310158885281036141168115745664588737378358320119221044180749020524968287720471411261748674624260812135216122764068362182533162971153692617543820394874300371394794606863538701434778640179904524426839444396486938379266868724828882286998236812493577942571091502106482216795563185790166204184683963378949191519220905698078612549226794906017976801472100642530696524657458512294381203916096540868563366266170198397512385368804475159509956788212814104326135197332738370070029384386458483122352837783155976073964753652336783720291572168091491092279625443705223994697839010228217468979315692075937336239954967609358957570592583043683690941410171045566380716008326543109918122327540684983421401090923867803066110721397700505431103243517679890029678210408743134040271101117995794183491170549290693767586937377032174425713028580776038227932996615942881684407224923345962262306382576755212774765617710792340784820972860424787075375502017487897312841567603627131293618641210532547747211310575275036027427478163618176897889914893981595424999031315557670011040862499738673433451450609082155933137047234565791289805678420198657668540084860775175927168353425059087067857762422117613697626787768440833965908123225341266705897741958318378349214911227522991436746984859182338911250108433371000918707035190562271438314738887560049751041607947719394064053095606307796167285162938494432146429976114391880127502967886536708337144174837897866730411157378135658640013423809490182190292777522716774857188726237024960043241484073282994247586376763834510011541726607572209002145591326844538666424940766528749320773230992215903968099703175193905645163539537785754320364565661608016566610519359926347813631642614190624829831532271573877471417194650974074671546297742892699102918169099525002938835111055064805487413843113703011619696235172367007176812664502240827039864621589817409008637346075036124851622205600774502697985751156467885235841491402909420694158850473173760813975727753755783402636878533891658867523341527756709577365281501049435656099266227998768101710366309802949136572576112226136480063345979418097992481763627740313274386587980330104236898386287773411948831949695475607115920328512743284359558968046047312407546493589293332140981451767595266893433794100551639225748858235352075900308255977594748395393540684848633337497942788011026107969921268158176884576650696351219771983661927728086797502172529562510858544782815047145528814802459609564507235953689983787166962519072864438833785372594628162035768158292923449363078054059233041245763206811565498325394343708640549914086201510398011222193582161769940315210273165710641605299780480131898141281076136482860878549896756072193528034615728021113139070024868142345579258536742645923657310428280026764760172752388874744368854549409511361902777807392557654188445202052830815443824039615524849047349588628653486931050424287202607811139852727947527637811888634652655653010881789327051530445894442990425959593818603504509800950705608208123893984224067478453817222757167260414558465446019204678546206907041982248284123346360625349236770656447422785691746240716555390599668308130162369657089405823694051443325665768116293471017314432615341541351400128430854436854223319366378152658759461981931750121219624805683191684095947548650001913990142778941187400015609420760567829795442417856400254632541992014369035873141443656792608322786401252507060508554328511758869195873958824912144060362624768899053588715205197814019468938728109427332602244419156436338699385771497094902762868693505534268298885159220085292974933329484046301353683954764059658339661278970415647394557768895106042655947455406758387111038184758547653354772564090527564174328340491361881037574797243319753816591748117762653868655784339607515590257010025527056119645339081433495898127639600562660968440172034554555553876448718567992840744257985825452062761316092022077137135729446514463617480910032818818866426905935746458706375742557205349775754002789100883044065042874373483931923136906897921300375233885911196647933054247499090378760220147462571810041284996824411113552576659554198301009722457319685724282548357471042990263864922442029218604913641443302961798666978971130157736685072911991027581159649757404146882249608637227331024677311025435032289346348834408951734994240961504655968201185728067082805746955325426532116479489302706614939768682064962910141682623939234480885709299640746834317374341132736346103229172193507925241787964222452915853547577050413313043503656812138351652648533404242041166164720267139223889598810892868404341880838933641846418302564298600143411850850240962013934864667582679036025188298123142731817678824979304825009871984834263902225419278658462185812586765549760029002921311667692047075049573890728316946818876503626689604328641151664598140931313928999209910217699236700457912228064172121115711987862723593324203092659898158976076294564762046894853761974886217607509573411382627573502232028284971244265828685518905447015221431558463429540846211137494587446720955890071546405155061091447401744592192507622333449602007205500287650062781895604303587438427416070600119885924086077778152860734548494015426013844433072097741441963015564446420066070285941495096904376270383388800814806803502052712486577971228297186952200617459441209259761781061932559937428108948567907312276142513414320523024610622016746871572808812702266341609369085098646065486053911673585781818016751092261571908099792096138859285111320135931906067612201826523100983855565969889697770209997444194355148072949796249862263541455596608625416784217492366490614559880936973679650486625279132990472777294090211309859178231634524603913838131003980911806242056580677000754646159709559355387139369507105349630051974118711659128737558246601296982041392347701365957701485482847745120848580959740801909025658642522674433593059660039804917612887369165315950037198024719859254607498353985090947889890680287897092493691589299150216911967168666618532964072315813642916519188201536440549551683786341807865387140919770115377790931542677859100154270346708697037287326181534737587524577662309765170843223293462101139075197569511904836690399733555044729111393533484564618642623855266459805130652285419633646826077845140792954934518048859061901904724817097834849060722985814577950237844076434606288063888167130763305642597384326294840767932893538770745858950490523148048980133028468506410069485676391093513953343656587239659462871972086693817114361039428348550714277945061809762985437974494993165881804542238541778636774862477453584929128484022507675948852724427243054627398126452352308117337534036293486736646941517241164188485078189584298833916389330754791779018662636554340179287786674339873648785762150392600294078503210549219161536669812372553675483005419280372381207202751000132789133417222063278725646943698464114863723346151375027806696738632408225185217815421224692574904717995460159867316073699857260147660791523116401091912086532095325725939398093676940824335726091996037537981049578495472894561504070335090511366291656987215239949425223263947457286417155064222380881615376390386540603015875663496016543237000758048256807571076033889367033147434556984422507299878550058036794495703022988264037621229449089072790561513904884722217413185252780829314771200314517787675868554227172728427266913753112511596003168787695792659717071565993791723039698125879812445002227782691507162582996981515953750364934279239016630786925313239308080898722304758556210505788790987788538529403112285405994167163382153210445285486291320347423764670784900353979907297157957581187519513564515978864439785037914642077067893184520415130048515490323484201167407629728736752421398475273783461116294104389875656420470201143494740678408304650958896961187149277558655796645271286024625165541871899437496424760403496286582694517531779425424307391198826146251296882935703503708018871989205772339391723809156142345550059184114331986910044404531059725702310922804660695900770387301913148882616033882457908065494089197245147835441530087118103130831183768156358409373221861990951888974745054379731952539828068135269201354185438822824360606919133801118427890858953395973960098127597156102440715223609693881261014279621903548707301754128648171050059776300499684926914909816225223720059217232618030115735280834635429054242037492381008378021657099529342323434650581639036552930659569882136698055562735922641309847062244699143889687504842060141115283482779544385669769756709114247949559952726690814694239384153080359790223424351091566413521853684554050086668987125156568813874994872589947994259782102476983618856768062754082732219265218027155032932187968749457402444610478892124364376636365076775454795068704613239168013699836378188077217042334328343449412344713588139149196929152464212963001592435281246421940072552924173010778168895158198116679168807935658415138390984791692269174279742436186698329364969216974070364999969795621106030536573385571625908971892025079463251014597786092212064880243050227759392405997469113719288096940764288235378805097565424911778630398478073313292564636794264605862151273064654380451782280865263568913523562495252268939964313763402127603916334857165605285087673550264975278036764763118881674916995786785826929575280408831231863094128432607061573864710762582581503156584958493408732721709548341092307646525070029844896066267944271194308808395205837606523111119431726512824349727932598379325666150124123625788198975630016702158182059660917577845915979691427914059729728858876911796034136524447311529946889934196244311674621456337289788997059458317197757922180554377321916270499922233166191411335310231247755394937351051839109808804593350583891222711436262119226073296700031471410149955553025567682944289742913413701567540332122910219679335156966954433982142741195694140300084838496171066833201294256427205314334188185610962831363601649556711590546931680794827042979304088019101706542721979993023628023771841731381983547331124216195358428794226577642242022593180894248003314544820200202884455724479140428200656394826034043456654430853879552550628250425670695375409427819080038707863111738650470535560307410796660236327576904490324499771329809267322231165219986759922659271045218323952376651651280728839518305618199055333552264348359069443355329352209913597011229366241090437781519296340044358795843133176598319933860016642226672473159382355441058077491030125692396185402131328704159792440160521809075461108807797826709915989067411184106041977591726537148575798954833857404177876315793243860621142117633312543749782582283609180995716255369164863256662307276044164451271545949253568806692898221946621440740079875935606518598081068564222187913749630394057825243907895729583494065848776547644119185085060727112247856378290449983670585458381676737536815148677217872509007820582992593950582387547840646518055510581523928617296219520646764339299587182748527775123232034202896347577401078455817245503121464304427554546905591096860952052618832548160525845438372201837990256087265992531014839925172281738226947421331849959400943163137033309440141408617638939239636596126098341798157484746017790126541880507288949999334373056691884949632084515548342589807619379429674440259783186043829958456465521618887576979995086329492073670961672336415563187552335579852521227654909454178999518830581421363553141899922621246300344752077613137773599328129669335388989311564447842162805217842752662637242085479460006844048177986192336472768244497416105524378680195722461457119997602130589019549705031677800186692385869863883900310838595818719643570186386236619078007935277295052438582657796621610077974559011900541209310340182570345437887277371637457512493969074109324339328661487933241438187086331252986504196612464874350838435408819436384258038875874450595947496800261344807410934701326560025247911365175098369688161129325696421715659042910331610238490788130048851514963965022415935171465695171733690472465567692420797340098749521562481501127652219826035255317199963908357672996248381220518279441591068271180479614737207923752364854756888203993757015651284747220752970105685179757769408712474794284489926394280668570586088597927268247203698664031259701953515274991905792811860745356273679026440302315133553420382955302168036376504675560715609056698825771969010445295631542309613768751022470148447120125203044722373182472835729481660619115586032753963640690606455751945309675652170512620979823045680747974868604402791872632411355106549591713386179923390923829922844187319885568655245076658484679973582071983072406273066882307134701832204565302431519378400266874295843860249413375001491329786037671186568279847573446699769241013191320254340124790569820424767553439697463628754500627908580771510040652785626000361942987701255283514252412738695148093005154094498701976258880634116816918343625299666122797867695421842583122813144379228910238250770665210784042889238182047744229205471617957756760782048164900038880523979587061831173660944828582618198338709948504567835110257049383602082540367343757953880552659884791920755633964384458780062889704922006408260600769511651415155553423365156506786225700055765971585277645669448661330829231102701347294456405966757144372567171916166202760257216524803490906716949163732468430504903051284992935189704555396232993280998298025659947093733953818455403667231007143283108474115888364234954004297739663024065918743752672551301972348716747016724213384120523903462459263370610740130300108548177520613335276020834311709334272846445904770238150629978014299673129403893882855391547778428468282189706995315969970879861861349160716257596979561891151801284373036740502474822619260299617252725883923424416063315540011415870430213304490467459910701591285723501379741227741909956212732786047332056274622831406936718415485692938261407135050138734756155800055693930352986091957967704422599513637261618866882895903439472126895292172596178622162426749414284723782881644566836611096952460015093007669946046042482988459923218231282469651648957411352806423629719955000431401541925506758317717738727031094757065200801524935778881376500479843111973113187047017046933398536092894362392077026749819823180830818380016658989359660348154344574656635494544076362247027991095045342042682262179534230268854779164075201717501871657183570747230851613160182963434471088831301374928285566766859134516585098808512807984139699325338244920259091047517601991167577679267191686941990051650582340097066312769300208611372157229686783327404714421378167183888648576814285152873983116088921854634453758977652866016100559873834466238141270168293242565694216626759478651015180442857599780338516363028911362818494125564543207640803965667094235930150964293571792257724674920333171838847054360895640039332801316634334634306317023457826652696703038651820487769458992457947777331459053626895813020979945988433807320717485953397498945006680013108532140444261151957300916399216569328028840065448476241097362291926230000467892453782240452632542521265966250862801723172835163548457674086877173064875626401625238358186560901046720170025222706071378967375697776907593990172712617914165564872866265808758267564787493322372333129076534306158400783505303278479249415438928416788121324861634088164827094896174539535694705797635803952369390768663078715929374328505032125018211246814293162657532522440765665394922295870974873340372458855632578225958918610679076855283348721082148232858281987157288046232153107390499502674288605157155641458046317762663582734376958184290662791252791298875160110399615238778901009863196185484909898590118450016863542505824674278306474909661347389037852445499822235871508918277655470104652938986257370668382538532671885079333703002406160243675982089026953236500316697405136361531315872280399582340421394570682947078532372121349448391711026436047338460077347941414857344342320997968255146254770294599924208227083413623573966861739348974772839773000559899066471536397040060456492193982956985747243534538436765512958386112953164500122760243006706009369222407662436588255363331003012376023711394957277951201274926407836415986762816615132714815920865094509911320586922914943027581760758638462827086249805881396616995512577966044795073665619544158439927363735801493293707939222887612371855413037476017557618712251100091931509332316761821705063580705950471857059033515884452764078119401109072598144595976121209393206261123627107855161252922714600330192636786797857159391507699365051621638242367414706802328451578800517617235455221946259866045183548571760526618215788594180085624001840376539456760030965856932849644008403156593938589604172891829696838214635242023839880309751713128194875872340045059209918566466813665874549810982913049801383074847326967920479178893591534839027507326130572994560333427219000925521755809421532633268757299799879914255983311988737701424025562488541514696008138509586849852942102548474480769198929961699522235111729093659009431862949932003470253956419674607455333032297458379473211484777281155136149985773553249334426177947885541775899605216411293482533692491790214338514256786484034137686303550989618302668737209092761078651519851897103106500890860198701778070928423848194142752899160806866824566813518495748509313714822920082881744636756143339069464742002495855466293480646684745758349098909163918019120017864703389611029503236910391653076293072879887127144763183087928207735759739056617479461619028427322100325478783852216454396097726169725513150608014350048892297499683940681733646966753219337922140430443139366983497335133050470118799087335918445571177970906543227609675092972011497490082496915313369417429938554197363289053449481331745601525537896840202053607005830788972905222395015628271753212743741757233510564393886151259486629618534557447054636047240625858783353962208149750005236407391645576010674831263708798336661747253380041452537465807895572404846827212674287574764478757123552002882416387161197689754147906606329137031818152725028947601548588824590346031328490035492384088473878941543573070936191859814494663548324423462400020520357268389908409675461970187273337128540504006134465064926272816112332817383874904514371220200818690724681892348144170065755316095966962297199126768771111524598972214133088028128393045363815331703485239810324465535232887988348964186178425609964483018935645527598801108776331905862149162016292366693302885633361481466610333801616591923510480326316113959776956318487616963726157456378558204621004886370485464485155141836900226860894779823957519914091821423123131862446237512270449990103606016573416095752867181168689149580245031307996477535377916300719518526506066403684792117713809133675199227464508572922277999629246984383861734512373327650093041790592128410926327487905841431231751585994307546654749587640919024298633158577325413201396372822324219625540327243812818976289419863230183427284772903882208057988316138817891549223219852983663948437019114677356095916672553153082685323061373944860874499247571241158436420589263105755995153117001770410788541581967119127459426310436300210416790606757622785689365230417301598770061181580390352228710792534988907761884282379400946417459583822643816940152397490019138139359814995462882531694164247488062307493040084064926196660892810346833819352520018502071811709678367370152569474490783277857300576740990310525372323939446331082716560931946830878245146305884792047105034017652565143619599335015127735811100730827276277739294429883836620585108136574124436224327943754413157960027751927672588877534946723082151249323900346940137194584349609460468390122926951352624802396217392371990134998353112038744982935711911097671521415185631385548619617933681216155608416457841834230019073512727116329555058186457167622207405849604217521677885676654141887779046209959868210671226021552456862304621789102310337224844188071494447112925253357225393837917388047030917779858185712841816534914612870979636141907191759372887748382591494276090505223074873803035944947448590760185590630912758502816166009931566389322101865003193686599755919329683693408639294740951987609064704676325793084871494819009687717644621320178538975314704701368540420270833863593664289738846217524153005570776876612122679637433872415405926047696178536314305645533011427890094557512403382100071533160747968856526993176202932013410766635984959888632942403615103022464713631789119753146873220697226952012827410552288635488790649277475821792651562977870827982180538948459377262630672564418493143572622216851936102664186456844168567615535532061070412718126919141814025416484636861899896256366473459679701954130498112706008387690311371126619627835453008660035151583289530856799633958194416595666324984050091967990785489688017542042627465596240292419226912698629308381857055205337891161993253238493811434693832787794005864681956876754124029590236565184613437585061501835567587514734801491111678968809081080769932206996712137432080816863283399495873420718691678239676914040480858531223851773860470004819251891808828801108910214130086283603771129265684790229788354293750892112888827633645424563428327234148072169754234998013860020798293067846172107111140613831781877178488541524242257173071813496659620701030791736368415006687246908576031929090746879914637469901355466006313581131027545708801180129152263640589608092375836601574430632151266078351853592855717824054850990713287822012682550084894280808492353217013876200283921613645995766091937069196674363974744446848705137801870494046493620587589307982729996507672221530596888672986275757778189996780862190357044829602273763989125883325248331150566718505692766586878219763701542776326470584069612326021090588956754582270215594865716620702495085309925986686231035608706589113320394949320026645889133794481560428363273590224053751331557804014796862306286966947735119170063028822538365840999520711281227078434339757586367617967290585237976408556255599719148185847052577379049387946628771748319303140475017456355278200180588037669772424867160399275537648303584895620512891717993291186239659397391404306762952382312902423978858698029368182883801447700806245688703420761260385862379996030079852886783710313203476831094394775367308299533295412452313277644462610910933758167469537240627379254763663201917835789996933104294035047765749534205788809868263832524305233089898858390318818479538278733145393513367692987266591502644967597805127853610661712285574960765851515170152953255058033038370928565896711393641372399149436201006430882844395084667089029469897020458319464148863336131426781162785995908392742602887997578764083413281118842820927407839775067035300788155398529790709817723548120806227652287400147457728725382375826760105485231740321575919347688921212892639216513812522507512216859758916822925155282749203278091957379297016772806842587895446425595034717632762641284623947476635418728609735910609091569293625887476800819666370824539065354914245514376121518396216713054181020392835851330116685648513480183734049776760302024227638639515230610528225124081779002635350266312560920945419831181762110785970764064090399593415604246712423640890861843246964959786074493024563848019910537018797851510770455798059801080279457272230316393266706462050605825024079300155922224314656324118293807055602884706063750080761933481856466119084684052346038131447975819674173928986593957937736489790230230259650265315696424016035501415153502716656079936242415466289770215829660725952867304266226808890147308428565701044117486840024161299414021512836929928390624290449797725019929371287320542730763488739518383686880836732057174928756062933306013304463091894237691002046267004401635329571635987554966345144815161432885983600229739423670131252985313934337877969724462949927210479419393290519683121046314287052676206014630058154999215553937727102362733182836854295950301464252393630345467146571693559142563432839712972338078050873042135529987641793032537887730319540372963972210679951406704462994417301640926469662131656931941166586335512618207280543779101625716079063925262425446514229393577480870888154758531814746040299552906703047982428949562973396109039899998154410874187471404912971101933559332905012384024712132770047284648147652994716157548034139702403384123016970993158780532032549930720076411751820876164925612763913072452486827248602117055869207257443083098090182711983262019546060515357230307862221776995651127566289077386346030411857515709270760100035701477458518048632377690063833511519623624662114026734318227983809290888195615775875537798367377344593248070214998721072776008386470765906892122073697557374534623971033911436458253640742385745926034147970975756888320424350757541504339693074775552384523644752874095399050784581153057090091899654643574027069778060316053534958544454897441149501206478228920420877266506962555037075920428660444735469921366381786602860344798327153461833174233557014608125598394034717638023847208644706936702126469762639138849659501903196401597212407523090169909937020476203990252486260050424304330516545058047471662103000077395573276410884214879855756418201651000902448102769313225379281935536547611787823518843128659560792228059345647927357275580553437520507285464610786885860516399163552215880523825654194686822100391494463470574489366766835437685380079915152394184345869201448019594148964771217708325407427213893055528476795349354525068603951643976063787641967460035113089665663185576324289621192750891979587365041389521738367664026505834845599511986721689744455770571763756632192018738640075149929819760989900584490525518437875270277991196245189585344305990088016486446641529018586437673189847482084954160087452609842947554657171693803237562443751184172096672208085755955169212452006079573114981498272252007057425692500844191200217524376935071313341502798017655793351876723228554348704326641897331910157118583371339062760136998767146864513861922877694484997418961094946409755213989670605989910789815949029819947878505907077256683658050432761568248849015257395492179837816893125880323879313089848808290040046311100296776172856920826269591267919041961364562287100777124766149000617277364557057251545161563070037444484320788658834974144685621415084450673365151374034648683410017783064821323963812292561742365372600896496564767278699877715382942707357610594744330927498528294705933801993666263547042015157117128587264276847348566231143305642772398196874896791834192934439559239935956902918458938552483826472202197059009401476861005410121586921617428679798693350960638405905065767832354026878979877233147481085080878528897981119558229136828170515652538409114369623389317105098068489553600458856650876687544353172843497796015746263568593210184368000162767093225559501166014554483456804755309631805413759999150462594959919624922054433101419884745163110038138967241022451460910571756538346308837712599162246727343974190220369886322472939873601225752041668196394059247077001069276878105832192245877870613208316641282741613976854631510532836511444265831092689088421626268211327322021961880624651254956745418991596745708930946478835229945726465211019034170308720196884396262855145253811068286526007968331191380891106149106820430983388533579496624882364716693178610253669372746633620857453087763716276072350546550926877140342465214832121070883249088073941406342176214905912233943762462520982956560933256696445568236024750736762958704794309614857825398677093241627758335020059377161127453008945534372561261943638211922908445970222216135450958200359725315106680900745856226515482735938064170453472347544328431870489916184184723720093265284404661648768181090849323891832485615863464182937977572154094909644653402494804386971011811130242808250689961456840985641387304967142619467544182555659778222489127966002613428188222497489943573677272324708640578337689069958991410446029659527228968654121752625165025370812579881723151731024310537859315136568977967629792062710371171218026520919462400546208352102291080372667100572308042548939884204308808086977886490754392368735237068965118610337785904309967563874497799074226945644311690771289257241538263162588542687174031216719565525899981840093005419713959752133089568792821695395409989642513655575332675434356671282724751268860300568141959270962047403055963677448581432075308208424966736598312180174292079003675656064835746067399942986479116536451255842918005543580199824049529921423017496237489739638989365152111596623124711031397734356575110954424182487288283436825944521920584153016469319344901459739540586783508856787234997757188407993453150915625947312175665582794155323716135363812250762381294520957402240002749796649341638307428814303870826231743263843995685247208289481496802693952933645371672813221084205416416368107572595202068349063149644286651774624791522395083568102321200391154290957238370624672594631462343656505787791320579204549865691719510750926490277799495497529321596170283516174852459528018191594448025382884931353645538440996484006640676636142548311641497930959520718235332333416254550496316162135818174104606595006020242539711917697302547746573576911103940898081781236776531887768336566722508135049734974585548822192656604896574093082227893635332173008415814786852496460041549239197528116200360945478560891923905529033965113217639332002907247618032836676003952315498676006581601892554095559181547829096931476875609518022649303894583549566447611957527539022157604696160481486333069938354236427345801846011527098579612527104946716822889209032903338101783488767927286409556855710231339902670491891004047813812937299295312548137891812242239181466792332366757999352712782251379092577310732828844210423419341684091707700289468858967676669931134364545961113228334894195275066454079805927588995452692516936164762326516170113160053954409432082359620082754471976638128030603432838916557371100408537203511164495138936698427226500451514458261331392313946559557141232335206965557033949179754695663980500906132437828684381897111675558398221527752057422882933570794614396062103116829167032153258274513774432615083149062017182161863682314782240596804591220239358312765195678491118702724782140624675195139050842753007248742803715398767870485062289750597994704145554203984345260605324265218675175592895765171642583181302038719580879397184848601894096707032775097857936784799209724655772134104658335151586532705503185509504245145061220574587501550480207410227325749342330276521149595486718535727621721264188390453968434442158907955745358906144616704242894696125227089809989584102707428249695852680074573738667493743788156165149237933106443612972284623890054298317968063535604322856751160350895178611124191361307623595030921824515196792284962482900268224663576304268774648238634338256369826448558167373863950093068064168464101471155148103763634323749820587757291475048461639396725272132478017329343845270941235341839769266517835919527537079150984657937519675151445618100832114504414189644255916665513756386467595696343551435924348057466959372107986345185169185351053213675499348421113605072041593770991360227429680925710877113511747643984202695166832363706546730320641871113051854443407500056465069109818706154193741738828382563857271148621083962814177168396261830729664400241244166908642314258828446260678278452516644801489272859506923940372382286213283583070767943503203286957131511780418281327644656823499236543214810395038233036820398176761010902473047305405853642296543894056431708033803802152365858588020285126404138884057671701880421104258260239606476889643616792381494867435496640259305469056106968910491889969662000884752807641662133599447650335873106895340656339211154133128108928833581820793423161730746457619034430732591113756575614125167631753584030792046768365257931102447223441431380872009283465571090464120745768934342240559442514128807818478016501640165541535689659287941998534346179460364893422379434695675736946341517822387572389937506545984391276441208385528783980851181448731769902028481597337173785369554625350082317863710665335475628519326273906386791631834676493351141704403259359999992868769855127628185436853237530710093847812257257662485878762640603242213852048454933563096862419273054541324223362522392290940339254172875335528097038724191818261190341833517674048911612450075245124543110796342116267667471609211149478573855174611348701744713817588005482876545938628989168664313350926488133104208930383341960729651216568100989595560155618228398864944963711788457279644717229655177917784899304858760278123755569870917129563218475953239762033220439538122650138584177582706982369399545006411272779315064432599557538183708840345803064001062599453790130111903468466792130651718616298515486578741112129242687587317455654960859390305769768203308103091330164652986993592565585084578481901060967676661896853079838085406017156040338803600018731189099538526001021447763101701621213044882100243203642676203535000509030053788908408026342878597353420123976473626639840554417745174392592008248494413739156951971952552509565807731202046578741868744336197523773436342663792695515765344134133169332884933852337683201281043790893042418794177721353847127831716807462820433796244874116060444559315320580455206060107514754629193260571373846564188059275563046943535309173414960623517168187256995901635716536219812930879274898596335299596826127871666256195338730423326361903891907370761718542626687328305887747856618976008542499103107117214598173186965976408430474682302125075499207320669995464727573841494840153437192606179745725460524236522501797584403891542467200349814988368787123487138422689709515349265524618884551050607257779433000971072072924333100160542071091048757582736297900549318454957565361142061776249378210462306191653389111076627165652155767299629436298588077348968201528505856005145735146316680002776694132132952691519980423154256877675472171037140756775704220503230326205877458216129283518357197607149987087010729348592273555228824317570222354931479008762327982431404365897734483136187839521223212835014568655348053710717736142723768279365515065562452096258681850297998177646368769105944403959090157600561844998780227435444027828054561848330256426081989650652690521122222417371920320380145479883306015403420780217557487474263882722644045922698836403497900272328732990098444967088779649165621302516133769186363092125280445243246886164634387298468074626000875243463107101913354699312018118908685141111565727003064111874701563920563157855399608871690213880639304484736364442921623773699365811014791907185974350103845900645386713577381294485784675241412668731897620419005766027789094673400808490649389753040694018412350208485057445814602607527601161502823542828456045858020229071916198233482137829380422180704964937765647071264663547359898769329677850965960397915523831836405315323882175333987460873453280689958868849732922997564806271601562222323273056527919403778743897872760407655879584772881346227754855107251189756446016230026443429704906828312363474376143957614365665594963596108352854971391018206389643582465132148776028795554119891429049951100756958993790519482680135402216810383935864474816141066825796933060419075026130391012890436421514991952271709585782601527550364686348696450087256351065632025581902497226591000478275323201425758699166680414913989566182642853840782021379119749207546327070115313490611221955155231218854020024672496048259246171444356764037629974595859685143221653485488160615756058579557674526855841591382952165268001166027827165925853180710181147801953066893686708077648944288386785555309982700971022814161652493818241019372676863281390706675670701032854329630313075159171258719459328532570115839865999856055504014139684373193275255021718592276957848225139641070100519048946114220591822260756504368835141515525693123050979489725431216061768807516808957352240425474035300510265904996381697323019777910426418808544339526215915359124995720498529987190561950577028828306589890503857983820502647097667921287467251022716180847952221580060317183623708113288099184115496744364050305170024242882556866832127285443365484302063018893556930293874124704044107478368642555006447288334510268286305204882835072493777852507019265060118272855110164735300757652723139570319650472658531803422059775337329747263962498808179385182988888899966578821518600321477340576725223759997416614520774384095304935536946448077984921764726816363032956843804938818834772038450905292524286524982055675228003363504571671688200315537799636485540088037165902511659368617288891250770052985280492276459926511933699956570261432917942124165619304461830615163646529724431449692555688799131968908606955124439836672118643369631179273142426997771787891513975870980690890017539073261518253733337133814001966328463582194965644156098298606322595030503857591564059118811308523519669117107356119600395297812009561733936539242617800618996567699243547045543071529181205623421826303039845175266722639058698845513529572232663450958751715647170016328753414709231725233496449712277876011145957456464678938741737104195489780410563655404690837122403860044135904888920548296369807318850524344734176468942309188870301103444065848565039544003717318598747369919007013408808670582460692342869600094895214734845108100180741172086761004988355408159178019174977033997372791757807349890737271877068599547132783015169681127296465621863896579162186115721803602942109434173367551892575887251729297809877995276880990191235362485021755463799432252883948526436081942564022847248994192556384738385461283230663115218320165305998792647114746527486373265114131120807942796272028310261197437961080136974070096777220987672055405453624575912403964488641071211811449712659970966366154938046707899370077965579467215389291244054631887194203937723803322230949949321649013072221704780741416824517839684631901892297178988307885042612921594688387073573516854003217930465506617572864942708330524154030421453931038375615758995035973420323636025827743765112696870587108692284194812767637755907163611999998760638284852792449018508703567663772503695460386786113393055240180154924545256425157692830336829141571533439948232094077850361501301947538523096287063753330732392911065257298820685760943223466412132752637284168618758911531615473727412182962117659692950195447070092788878545865206823309378263516434801321931163214275781023760898079659295494690198921380967674193603638419309549484662855392932373481298951319619712066022508470128739525667186513584641465409859049348962939234248578439656566373619694795538051437950548575719923292137184831506536018357668023367894726136639850330620450039837560543899492006457602405535240986841941831347792247171037279390486324875683099114005148977356305928613975748713667482448951801084424773018993955282610717354007643202108701202760349748992626541853089881194485456250838428510269560356053388859151704983373774202931380043580986330086339180526875179292345817970942123624949893146487525377668908897705613490952259559151564540715351302286988015521135120176832157022052565571268151312628849281634562700810440460912215768950658247269124762547817307618354386851487723600494257857128273272280955210745045619473171782425393535671897625791273578781545841713830745252142442818358605198486584109665018116063863763520147350470472139339226794668683914820575284982311665720786453923108724277445916263242195476777879563559212849147603351043990013630443454421501771984906569920812431146713860711570211277009701547260434388520721001846664611013220931421898337041158551309505708417039996785135107538957274262935536158365564142602332001899052349841443132659779707430618723344771002879326474506388538671198426689372127593270483489516912262554543564237797893707414336616605929769198933300943478811633870702403848340179423884009214507933007696456112087701266063827785199864718253897434078178227930844758248642234146844690538442711571952510089950771931364614489816143290652959004403242055943650469617855248600420450836256058066615572670320982480285739503874810366025560734986695233901162324038730250508727123800723291684492307586821302999102725109527565301060841116112010640444894799697789472020424791123994436266171273764324224483582118784355999892715479215870926044578357672831669302483597686189356718926134285500795012224180210613858961826804447527132934411797525187788295817399494952095377883131400848282653895598806416254915254192925452184291467665031617414990749015126442029483385617549855823382679705900102137397850037845803650169017571453611119535433021658909481794760459972067304401777092337433044858175984223228714710929581450369551918363911347658606653018394915398273679178221971822726436589770226573694371061273422520324478882157829797297309426171000743629879608073459569379220854516402941886838883787702217447220747626228620569298299109571949119737016047933531596083336368828821363373701283622225340141884302219028925556052527741390229784918090661804699835168012530831297835021305071998149156788708487678892249380721504917408885078448153473245559119968430146039251684263520203040065254096771746596209969195065050115429946817441087587080348428548505867967009624066999205528301923290242638690371793584384573248498961093815814248555201790970649403366735296595834049237061042630687928781500048078217119761752830032090439852481935110706048667295339142447488652358507933686568184173611163218643150868250955933362463760823311723573013532122295639343533425789961310741361273873862393797978661618140915618884944633380954359798278145162299011313085780743518445971100692692823671150091521305441327829077173930397418998883641335934753176281487401337313143048441573692424620818160783181974909187109400584393252241356702786855310118409841166871771380074267068347651661045052675450988821279309598402523228200775369942941289097079465689563710075917598073014929524432626512017536099694895672796382760996218943111202009482885920034045935793991003915671177604382431056769861666541046975918643406773715271805116600201213640498105632207857309554287587557461437194670390395856757716210918778742154280901500478185322794785746697805733908035906634241495968034797300606866757957107605540178103726617970768729158159089951047461353099233695128954358431264558354216440972836958829021900563202831069807025052283453993396597574249579897944170132026577558006179359266997435169550170102556368252210423993851457060040821371410967468245225829619926737957493914582355329433876852324526903660515851983593122488931849056227618156103070024164027235768126423094577561648815736247637540616599636130401442814198910436429773282905466198483320732090142520914623447453774347529193431644801046774223892920296836714646479267268747255793475196840767185329435604197136910034997459813461581763198670264277073927350762968237479184029573528950318216917823161042433510216059741799875733414359436803105707333226683474456336525629468214298679057583434655112340683960768039611588286867493429477390741162676430170884812511698574830799483226354527647364725974989431281059601446273432911928228945452238426342860968141785159814897316843511575601214787822977052550344316718850278891240242240815620366158558259731360841838799355010500242115226892997663252153539064231581298335836842840930396472389592560513234313133042514334214341465767401249018536624516079171770907073981948928180046894622579423314621256595844548054698559253906430457034483736520033544184754585770581504351835212291418878666742100304683758147349806969561104238722997545189997397138851948775658959214856615088077943532872920242997673421112054017292203922315079116793542805359060651637656244924393433570389921455797055378830046345465982247204574454340251927875115881635924315198669941707308760716438573956426472601980009339776762179475156254048280277733618636436959361066000834554541640077930816033668819058965462360948706078054340294989889609534381889942457635712811350027943080863341318176594533666413473096813070969746074291198925680578147304205627757342260508172501347596166854762757868139214912855169123540087889862043448616138424526123849328413125523479848013883334347801444910592339710676722736992363821446232508358009142077296608446034665895289059538239154783847468361725086593663528215102887848252804582880278345024967942913343704970874637300858248750332669285312803720484999635757630127175167849717954967091614390064932926714086126502873845947178724011190234242556923343181121887192284921898152718874545435945991116956679826331916829582425842007798581437313232160831572187407688704229343592227561058945798625425743643467083875912334263875030244710787136964558045031572286551518405605735957908223143761317215758516854299811183064271072880833841112555028433159860672585633217066013080534766059734581737179771000459681544417673057688021876670104030904781970861089637763163050229399301508971251216273445039918503413997525815706225790823222040191150984824119821658723033238865904384370044118871178405386279481795125593999496347507436769515193439058139712235341359140798975099091582636816059990336471868161798614937885470883404696422039676155004637596663419109704560735214249547038940719755116007276115234953762117957198819002530506037854061764442790845204540958248540857248739838813129079429772684702730327772340865779064684755864382476953684766577362638630619179861887095005157676700116619492710607179436170798071576847006629379653095202067710741320299358855306630971752862410328675419151851515231000999107954524361828187818325424750598706393196946818746573721421113425357075028149214422843193703030848292452191528975088087084051595042999456781026319047524161890845390257185726574263288410471208586736472763561590993577043394043217226689077372494235224602560004834362602898711726132747180605504189456993954274621788589400390232949648680984916925203490266061955255065289357095900832123811175800605459458049658085539388809299794720282295074317744261391378840461641186451278559105116362620003766275996237674300266648028995510668697063735153238389582158838022459274876474571073836072701733982370932458127700965982212497038255886078935011463736106561204052863222374989729025344738549237309444151934305758032232371274541288296683627036780023778886389145636654809805879813078693140151241316845208933417978782575473893915183556201503645706169079439985581521491895792254543690962224787252943722265967016312919207172918492248856347179640398558033389127476466849527036150168485611122499069776982326913056218391600681921777958087644399164420308193278772630215030520395463119552771506084134790272214200919463886150066214716903545172235741063132128703726059464648298204157125866944940284704234778551756379631246921392857028312592529810810920330899978231032165913902463029438377580853586124644235310446789720357227575176364560946545231154289558018769740675796931028440413035731494735993631212251953068486389006610478534182189344456748056578624846135646355830112291531912086360291199565938557659275490518850349386460893427466335636156591426011938837994034088829707420310676535244272169446413138514617637986669735098357470842380470943149983721652012785633783667325389601945243996078841170035533112926380016206923535580422142502429773261971780464496802020023466892467335933192910763697866438862890132990120069832623899607215301294408046801883006162368641810536254047297093919666254679590670611394682617966482522851000276143627423019505710421010645367276228706808904233465892179524686706201748170046616176807633890465233694472224438351005030654380044976955559568081526352231756933277894063342757312215328836003752833887308452977988876829452642634757994288404076075604654440112894391503164995801773888765117293267848603331442408394170585184796657066345082612453547154083316802261393898940764082176743751562600495112811429080437964337905633067085505681517812317285847991330659453333632343823075006809275349245753743648491180348466222555269883150831394886812665462578450245021704433267964608064304428110254073153033065603261567195492274416910846153873402233119444917341302901541641733178621152805964736389361197451991530882658156279136059167847201857223504794517201962693627228355289270292241860042426861135904985695011428323275057059030495729732555957479846134145387727435316487657848017606954764009272689372386799080870248443687744289097333452788575348945118641988700843455726088236013942291095375622477885315522480748562582226414421383281523706458097316295510354060222988554792746316956106967089962074005189655764969517393072207490836731291912818822201016809701070000433104652749790827600301725007299455973996011566657803875200379228353521499542860488548913899169116461202115428991366028777267046365155253422769707507495598751397467655032790245575673875900006877067768550160624638626306007058985382791677044912284311698240195187896631936369937365990091357040421536524945334843840002491629240779080245384791833246939734081291667539765472342784040329754973986775569645186743000949419733225824964884174747220807047619854706860989799777261715521151489468218987534729906543477327085836575879711534578739219348022830357139562217292124460838015618025461665277244645123445004506873728709801185907919387398790840839471279518498085505293760521524594451091995911612992212673560272068445833373046119823180935181931663438551615098506520365173581300480711830762979343493451330917633964081365252652377645562804270784211695293110445288124077901901836364142559905012418736470662994489713280303091920926021776983348439412397483449571420254054281407564165534545769953645872183309943236223271209865971332216833892019632668321944998582716123771033273093861340213163418912016753366375263275879626583234493954058304391906408901703676813135798608945977818994322545728973994162624001030622189048396584402116743183899322823879419194211213419135749667518939589464570854231488156077272497299838118423881134836613621244881754202963544453816344510487264250318830834196726594963114450905806130930563894921162589862847505408612051714952696679834166907353767755367998998212468059358026462034718133948502267986759966550149747787881531267683757769992723166580641559280512765304587451953706924752869811820405040639619255536636091755801092123614165852411623820310074686380748643094381402055259332647993248425463209200121189009699878484891078533512659974741812561525973835856772712997240178956066649501552439215514064341410450716299779889842964530341343486977315859216076871372555900757801623099606155291790186075413953243901116585942229491895245346139463107642727180581975970471424682846101491407696852904952599181297233631156084025658539324082524974814948076047089800270145141941275833458309740287696465097825352254631994708788718667936408699147215360672041447927612892556857934708855814610960322964759105349142490381732084568913545802388629384319591494180899302954503303886586094693979370564726118563912781728444793104780500462658065185616595347989845911985344351274155259936054143387163220940987885966295257573354619745317179329889220312228226760215071988877390296134084561529170841800986042678393737527551143086420922130942700187278647617249304731332750405091600795331979922140227681475421272982945301112177328042238067353930578989614757546987271627073446362405768378426024811161265290659663639237441943644556858556882027519393420255820172367278536691901303956334542865487930287249545503069207319905816072102854955309163116395171714333462666840381028899093853520486538218112407987694016144106505459806704263322464352114286568631676230326887991944340417834139784681626308414489500208571359719601891877882012498305407969424963539612642770540408576506251347428672325868047475282535010448506665520133363120184342042438533890156271388351976945685844336548181811496173269933718346875633896274095799203053113839546245263773881990191444162456160191925810545942093499860721665164129880734693410363733955844242681126601910350750070067605912323691592678042303048898061226467019967934089665585075615240949976754826438355089554524196896070693112118724955728998599179809099690705979556254104691940241918845405496406763339924634767909261613940465490364911832027855923960192807509389144106516519305083936794059577220243405726934251460176623921033265896679210170922548620818663365270133950141353715877226689248942776106788399731817265759412091301153823665978545113285769715036472325786977173864031920178181748002394287276675115126214272038018492096256657657540552791829011148668016366356898964281182857734790809143831752514217783651430219756788500644024951844921926800345302031801927492714152055266794940268523239386874109839001785227258956762769057720794744042492768426376965671114576251305745048321288590767085329924806263516357022610917865101107743584559564498552692693841733121426487779899163336754377210400784788217220731031520715865155860605818105063978418858374624175632833927364456046814663780562006349442443684488681064348710797287103825298091291789976604234118376510773945150204538513379267738171658516280152976580568222712158115799922582244406448067497969351162631980940967020523124512939237652862649260729460479689570967271832399979522293975894070395606856174092002638300667490598130915688617082940164338459100483022539074234552612127182373316090495683894696468539607761021836899779078190235133081692590012658971091059877319215072124504656097302573526146003699770802988986852415131184820546540933498236168658930264932233951837444662068244248429562313503802300020192697685432764033216917387228741500315271834534830702905185709831050332900415923850495941842294305725128020863910319501819927604379698819654161265246756710016062820745327975299230551051965984837926617415411705537089126093658008383084565596660998422594654407778183536076902076997078013600296417419602641753344894220154938473470898872685909239757478878712998736671405510791497786484595850612221995789392297514043651386163104815104010854405020635434314352233739690974172424309314452983176635580361244281184228128176429033219939158830656234632515468740301370139962508968366268340761590717806118360699525836464231452988110056513531626685773789200270809715769283078156385693863936272600918040536209378216407954201189161171560226970150526674051858096809134356967526464506779203850899481971978313941938977143533281062347031223526155313565617628120509821005466116161233135062605293155919752252631607219419920284662361155848363823761752469672102303811754044071091156796756522954329802278964967185485924748215811545581347890634989938596061793065962775145782572649750435875806990769803298593354279690940022721725456855518188494699257355750779034977396545469955442351925312935624272519311765855275023879926392036778792891527505755561916919009146600574881112190812730165711650509026658115270270759304410683774939525274000489402491516288323086167338690262575936499820944072807554076611013020504062933606580204336972568859403270148639833447498331957116335788433405791228175649805314545732085789945594087949380430910630662111598592671218855500476564400983672214815643833719094773307608884027776477768550206523731560569858531865909276535012784102664853789262264576809019531517085197476930619894092419914828020016123460806897927825537749591878320202726608159063523770358361370022614693816186634868272117623420961088933657090988668759600404569759892965736348326130829476625007706102620095708513031066438743558008355750965207942253348072631056239773897203728146755674689947942230768939788033483018155478016222987006870467797010477286779188253929293108504437983440150428104394106222511811252352445481342426492163330147986919089435298799713598481200283807670528545052100749230802118544845066540892610121666908268466074142662896975984333429583168886734678656545029362616114538607388718632494451672066006644551094145415940751476836187913232464335867805945716943111671360980351583008458048910885727738804350859035266713523825320741381239314261912708234033802449453838234189878490011331139069495841274781716759819214931118161339106364667425722063959848753053817459017726428596313272887340046154142119615333648755435867390506777903609996249194694604573336316678808820251010910824300083380219841919854122008716359721555835848015274217042323348329661458376864810161569004107191672728900632040629849648714011494591978235879773381872361012558116698988444698221989769406075408542989009091415027710839730146679792730400915280568380323089022746901331245311932739111978146028138874324551029352275144765985797035342719149193084116909553856088358033144772248799531764076710536299015113456775794379354770016964903058740560467058899316702922992729925178428207206188474963632147425202113528839127603829588820497969260150297365123225907359387076582656061886687607471730986405895803132369721792522169898044060914774766705298919915834883020587189342743944013728414610209973226579099627952152692632016639685208911181825714967555522746689574806299946332074879183836240307771835551650137400266106586081533004624524698751687333086720521183356345977121002372705580048061003927874663781766294969333809875100231517090696959568238064135050359654240304597916291171074018781854539141106059007568242882381135332392392947248213659024707181570089400457878095988042435088927719086934818962606178317926651625974870136485262678748332400357810305562468556484071316450165870732596461543742536039040661795629044308778333420911445883870040455407204524725470975253345472010813980136207572035673649155455877358384287693732682701777970684228500957226853411122564540832566085755690118594604648323995242931486858258379201140025449941179865094304800480168876334917342992831251275259993554763733068284867135234638431775543942861105090332958445178735732531425111362845648488256893445292678858123520347586536268957507431871585977615599451535656075125996830729870408270948807605743524041199757512856359502311031977462885563798351513138237654681148152154041037263431566492348914190904844620634633120629422625600433014548125933384184282677285033200467195080465741981223763395483061375548094102935320249772657929114292973108926568118491400783427921722502587732936043292856306071370369373710642430026523849205669472835679310142528121993578183223261502870278860311769786791607661895495314135322656343848937799068984524467032333695696928215413622537915316000064951116284308349701886189485189801226224914756129872358217044241325455081262008273520022003783130410151572254121120523412380499863055210804938800689169629111495490922614133911675287891914097581810719796696766048662128827161929061386807983009226373863790469923285424960889884874313064516955093701270784853712961596838651533599987203792206433409269867498092035132007926569871052575372366769285742496401393699553654366804853087704066893383425216434083611259373105779835512562366182204994248912952656149501156592623905087523719358505412423482490795743734427877616391568079690968137194252524537508565737823610584791836185236793237683594647653621402954185539077280452693110216503420607160789007600985611945602396772187578038234888348064324406229129173401254859994457616248850302251637100321339547017578510107286421911470372621873015282595334934757786259539794652015563866194935969975514771567524031987012128300179154200383342850638515844162407330549157321700333345588463077892426590277603858750010706986433113216797655320283052063897920286468378305558423329038703297352716416882124089043398948062805070594137147794807162358831099613019720701992077983710706397013927329370572590049059644546521428229973818914010965821277926937766289997780101869609005267352741916610297904012478051667842097513648590512013340073949227506569676979726100000114867361435141801078362857897103896932127616812933022078825178415104552657658431216129416822551506634417910010615064793123078445518456313953106559331541463954357515780257588984190867922628966693460397189569957346840871325161463873668826587176966242235460497172239929385313405856438492471538932980684536998618457479244390206381501088487061958140427928841119822522808721037949529020886835792851912451023767611417751675575013574418140472865615827846664125267302065227997008601035708648046978833190011864146249856747084979782129725415906176261769712498578491214090281817643810920072957919551452301554731804776694941417181142934663386195150443585437068851037774743920619476003136952299523621093928119689607130181629051953678632888199401824342946431828673937897600325689589232811254239068542524849613742781183041642555818433745704552822943140452637255707561756487312908873516872001934080174837079546205614535414246102532435119374346376446463618882675068167878952757280534909545827297062880536434937942688291849477850670743256031535279082512892513880276132181267214640542009550647431629098335621728299621347252820253982032836948501811083893586286920852780160354700765311950207204672162398311540325482001408365324600812161017411934948371574761150603707391614482517123732959347738492293407900548794921451674433378003565413468848401154962668299235515142559091829894081506415097882433702510727737945896291506483539968241306185898863352625743855023313765507194593304713700329549964987046258072192302606565159376362914862186379691109224754642647757990618727784624060516934702224395707138514608364478185110837963915362191346853372385767654264079022704102665749692886931336935065708344108064903034767847738472925779098710286519736702912041916061354832052208077067351260892540723008895179774675842562045533743587091832978583728460652987078145756765358834233171531219825676951964855347502406143933580587797882962088539635516052213975085806934393769814770791050365036651921827574120606367506795655065373086377350437686027030254444668896003325285620969279728174593274901935048358109516924481809227325320035670103187067016287477924971575514884727839885937155372965981715719009687657565732102298959665201273876305161790499000885757588000180266457423842414803249829276793929232526216236263593692586761189472076505428584394918525560159632938202825805421334178105274430305306642128267762900782058823788258022013759220674376873099184920731375727723357595606848847266402843204351165745108164298304421975789148994144011673621572565040334008484956411167854547224732292393579935882153605324143776914946327924003765398363103020174398946629682823706698985151898834754267509805564724362120117835145517933392964397732341157338643300520425706944821090268857688434755180933942596175969847026334732894746440689304990998467803169230345666563094986952037969252010217540829183119642147473093043311421436961998960056426342079002738454103089154925144604558376912910695695297663278345116179352766754961582407775996409050752375479172192604619078583893039145752634876893879294297605504429404418335945718597929976457300083947069870100685991578191198125707364104459533009840449294135821113443664309178684002485097850521137169349066411388764781592649924372505202957328868875055160968662873216727212461838515645155040712955205092853035538343225787006481585825332023397873931127080825982616392351151043463823323914464014419453344016327102712230092222315478116652163633464714312899364637035236069926086396046396681627506285172761687759501081635954061477548281166852772984539762272028633266829785926291940457770511970360910255798362663331572329865889337201086532500595689121115465073332914101397181027182276824968471732828561358948547988282423034904514331981828944374152047131655526865017379153417831740598967602608084394454305426700323820767134751457553794071188664150858196544363354880997653778609625409212343238765232061450467649324212199357850431724281654682803011945283798752346416578941541663852187797781644616371788839480729327678554545981123820423058203939890872834127823139149952908601551117321660436251007844415084549028922042550327201816084791075209753393463806755443134338848677371253911838270985469154868928110717004731618773636532986725619636037894784782823904976843808379178960693203084498879103434130895951392221545389855252543389995491777742745374093505022035067212482424409854889890731632478124557222024826572324277943558954509667253336181543557315383716911515276470017316389507312204680190570787888270486963137223746858705394432145797600041563243068173854193547430055141694730849119384758655919181187409749158095380236606659873766188974223802489399905302294801898337656985901522778998249142624044898262851129883215442705475974416550634205196415494316914204951886318115386487378912234112780864227806158820733326766974680841796008975323086351268357880233410183035011327269613056251642192987390212813889217005322276852113928870624512998769922159845578507896304607977345681646253773644931496203680495885333147696755953250886891749522246449443523907464978529189363964505380531574303764754450956168589775831414728651166548653882124766467804997983564819385980139135944913322074740630412970972275158149039486740418404958240875881089847809249834264030615667515015953638565088769285575172792108428938840288065798130980692525822091333343858690613148325672601344632201639182250672984385663522669515785185301388912421868824858963930215425448156039326175303252991258534562351891698297612825024267017532725954586048390276751283391660568956325596698215942584696886701907224689291313650843427038699715656477530642968431083446738719958104832092191846556585950690635582933091176275042363040571544320591863988520151734094843337623227507063188958303617077045856955740107948694755627931975530100303172522962868476199128900955618129220660024604632009355323445333703353827836082850680229308958943753021268411322460134146236468066439967440043700846322807136260459798137354758307021833544516937567203398581037500205569440906113480739078340369518449990756291131996196881269629502511480863399051739345192538800235171759642223827964967251086380303448918001524331462760464741175040006007339305848262728335208453258954394130428210963886589843492387994428000861489398235490029030325196880502052726397778315335250224846155711138575676414680555684550126881798044032192304469612489757197663406680719410403020724174777381178974867355935347431686990944435618426869653593863628201857873262023770936649508684946622366230393069781074600111749194419848037319181497113292136266346397717950873612754544342087155253246448197284541306931631259737099152126011449439848793343749228443469483191770465730017877179041486291006721567543019870511052901440584132404751702787117866251970530032536755830137623648315215755689376535557719566144586993986706199580883608398417279438397541087583716020047806263958734562241877177143160887648419873628611136099033930521063537346357293529014030790941670029488580391304650298922608980106318629500496372510309777714245105716216978385709290409795169929112655999098943978172546202456181921586981521094529472970617103904513199957752272337046050980810152458693638569870786461223153630457703898133294644049182337463523445798531467949528979498747082696594530824091231006455027126155565703895763279691322116457769536686808532483209381596301165168388283126280752998104432680525617053666159635659303346414607852297076153230328672640595530093675037887595246110083520346678968036682506626931376568272049685746817803557567927056562771449249540049471840780817064706175225819260147094646196395528184939104330728337137600729877800028118242725352078765448328262908241083046488919004619299221287030436436184550930045197949883467465785136974232675550633649473948203282377908215788044722095027312790671062376913585282970682582516043191439704876777743723877878212256381287648719121162969965458665830025605261019089801309002380432303316886611014925571246817898617551201485402327802275495241918491877986135167577062581582403006973302194210493474417919790112383431638165123950691549326649758864732801014937539798663457346045138757102813804155942683834967211585679032532601865250534876798516687338457692675177420329283400207062730921930877807500582188717338387802499152073342070786556191851616328491046787015119204760649586147449859102988063530051030315858185052849670131920466238214637532675548961409770790590289357594179930714385974344909326738908180577019907612889137381815824267122025610858926691760505725476946938582099011070915781947553170154815945517050351937974185781663877270613941863493762800069496825219686729861587413451544019541604247752938602684985974961623589519197530932198446356750577065341446882226801247389898498256463271381012285835102592917314615002416245681041541163645598056044955175813068141583249941329901286286284295469530085942109657966272521925697951375997806734639482638832468161257966982453120894303311252087496873021718082541952411514887854303855548051482681303800737600637707788794317533371396385242457485680940662444583053250082219816456425556262833460067978918364786348928523707163638586654060285676773093483228244024046111451119890818700651325612172159053090948262510457131785908008264937933925685623320247577605063976219323955889920223359136860969773530515589589991818402729311425284539936516938518700012145722300619264565365184798595962875594473077215566557695760380663953860095966989456530636212532867113395714128027241429664157971950420253287921458181352258694767628552003716163043597041973107725512301853675807022672713061483351772280588951554916894470231317809606490182050890555862218195849905056333612346631049374836269026328000602056194019753327159634374238707524573094284042124220398469099463777981112239755186805420031500735107885483443370013038825131425174937261526366677037796610061695612885249225741108815417986366448253153058710561050871896300795412995016258371086604444909229133249606747639373178546366162922776072912412770845561731502788015956000576361398012251475323188248916840177746585755456430404669254053426148084149838803457349181135591837453664207903517281766577230124055103922000168920022942788548066732850425645158781815766957355593267980621242679830040820669282319793858165998299137189498943695147452115151069671701331218687245954691266723922551282077378600358818684598241390383833436461697701731585447981180259555234435155023507733526890943260433035241233429792824970468743244480055925428593175799656437425966019745793904099417624231397435231635235047656918877729498727618638313600075418263836269323069053712671819491873835066898174899549648412246158030923312133097682440371695966338610664499444254401287946642214732583844089586893704595807324518846899620505738877858710996968384643086931127214961646575431107749108373664161751025003793769289405872832875656713321018617274809052191619193712439706072501557017184223592844552479690122836060426899048766424533903339042918013735812127670526835127384842137517110373535486657122318734890116058235159946467340189247566380284116565687539469140031072751236308717289172465851418353012915478907537976869907159368262925903687007372840144802649579721439680920405881482080238713519938501198706242589742324811647661044715435684111193235186614110265085149262980945538245053975107519582746102907023113015970586537180300311257313679169572333259621101985040049736113082880361562204467681251894483046566300247326880153122672046016631769408454147646609276398242485629850819246821791236047463082527138175564132410369041954749031752059004670970736729380699186681539565864921895780224641841788208016099580273831701234950476847116665606221001997981027725312446296040385721081378000837212384060851394807936192687529631313713632980737306125123135408619196480496346791706671675414197175871776157215534989394712243019128554735781059189332804471292977841037242961189978580589974787716488223728064096917947263169017399034536086432142225644355030155593757755355629437478579309304839024475747153737198920042213239486098515062222630135480403348833307665946003514301414819412454076432376961099236927205108824078089933054231736752312605193264446271329593595692137457983064634529810332943145338232072998922081654473442550829473294852851298566571471446208270625639612958980864874030055880881617882786983032024101512087127421065956701153691436493755913675297065069429705761881232780529621176569909259342064130288087498330882332196799496900010976489444660877265717400558875680639554663822093475853554611016258538792699595562639344527814819616348494274053702925488256245987258920258235790265523202902104563988407310193546337534504876258451129595729059471144077330913654513496658866627886089689778758135314690616064563012642098396759389402074512844889658597028277893078771844011834808482959749358918571927651487731356558997939664149689840774273130797171680725314516771220233745770423940616896670935457864643235767885594320807286195778418162552315940844051276838277927361029503127025260213125518482921714832881427596197693300160426747254872920650881382461030763737615821754441067518433902244408723407809544245256461512565347679785431763677335734935716494360242259992422026971033974100702184664713736685165067655782658322674820204006129817731257799091219863068484566205860259297786034660167089676497434102139006575556129290380191607901815279313104435498131593812193065608260766522741258821170382782520486328812965016976953191199542205543548566010301357063046061284038249451766343856733185522732901791869550799392625144771272653461637927658032928823008331219642604714538777467821205998711110181892334152115140434602294072818641755014739729292542093800577740899224767940135813321284333615364727976979645641312172496611233761120121667180319393206120436241425866087943693042183586475137419999027799823920599958596497815579115837152373392949222441051230666332631278602049642157098024270729103755575115025818601771319148624164982679270328286066363691709941660405186271136356225382541561808737836275331935204840417521143868552608436587537732819760672655041382595555625196028793605079519561409523497687249358571574826609640544189900632285164513555286845468535164087917672960307648501368801447689135817589622420462932512023189233200498260477735640940747247508009075697722062109403686000154061882187369762454297500938275752981884435755624579845498763517450741247711258691369008331269592885809777310162453062850109266847835371386813685581116702297503023124277332313400682641427365727248020416428883425422499581830844113303792867000409302775677520817516926552024171170728659806636509660218428616033104816803355629247370659265238182539584828200650247111937650024906020495707089831274879257622346551519252853722268602559115620232791712022387350870074712335478458772459757984425679235965722653238844250533371828047851697103337952523575380291593170791858200500719469650500522460495639554005973240825942708437063056474802886788209477098554609203457278305780945898422517975485189365463141750081294170587507298241318039073613687810618858471526528629620391547053462315125665438442196157895390268991126419352819414524525919949664515670157819681884971592551500911485178538362609667913482974514548108969340762974195870366387133139110667718159993724898436263293568316157388917681945676561258272436461453925305691677501357241141451534634590596773554307493664858867062986703028748017089180231666883099038185057087273100926966042864737418714782881133947824396094715952227939384980188375380638725844979449253577591855350976212786533705526877382997402275593129738915248197740826654527733020060674809082693318736477137967915039997306451596560264337740459844290580506948735284380560292258208356046508431747008884986217179163480936384640206998090201402944280335230055023359315324187555424821849463611393602248743504387846004978263847730999594150193893753722233971221091599625979179179419947250996378801015621173901406258785481363848394743036768528272346342254525658620072982260896366977560807483108747553530396625609695714483798656646268143988463867480203900914636794329045700059149006389725249421299255918233645294709499968257605320960275377017630513630366834708649802121455635129807882272005504916915139747865384334270580639488227628728504241468071329242346361602354776649242112676487076655157510970846770782439305216761915972242582749434181542580152363477279372055746065794080400046844759024928191831837062538760345987730535083301027070648732639623165142936965178208738242395680255760058695592191428708829453868485979687641597499992202358837076514507352605484088638615845398799708264134371916577299385765045265895966256538319500184298035409322217025978730261672555277079662563804906393181538340342102538453310718212607709604395396011136860304479961201214102051149007294660019778021216181582667791852899966377807010250494270975342070970934679108148290358642342867993973094815861861009311622403136294517630883236895101279693238826018170514757245954476100237290819175352984454082915498057032352120499609935230863469981033057309602869992122372712825085842803418392443828488263037294553976754351693760260346601809246810702070277685609529177119688600379993753670115557007959208439215006935516400252900981575739443985649717885802559344788787072172351379720330024100064066928653562298217029774833696677095340593967394631900549481354503996961938794231755942859194299561858483618919342461452610143793133800071995395671534438189914098167263568193799918598011005211833125474332422561401047416694764278967795891681699606904169185496870750314060405091810753516217922142342004379124023948254753412235428147101571790716247056561432801278617642433984336323366225276028598707114496556081816177621704653521385604521057500245252020447645994039590143420658160330130754685769735023384557467869970584761600547239319221681494993797366326980454453683552952350620877055782024380639542111288589542299878629237270566696410649908363351173084279846915929634873591927649324067607856206674897700041013363244308243234690281346460669529744638316194728515910466533916958702692580267156829654941460994302362877308652013270488987959824114385076284941171025011475280821902034392867041536039573421847644810475512593695973653309295275954693466815702102134682989178593637475195098297094567055743155925673895081547129304184763980067815377996746060711031219164876774236477456215535620277733109189735232072123167036691774417093305183147680429446768788933324881406059628792411646791501868631475446032601093667606380726828466769641002943120907013010167435739288311607977154591858939286870820433120069013508598495259775996955927931964439481690148301567069833413330234922341010228330126862497742123125183291386316245673637098109374139586085185480236051881302552288002185343753886918605762429418554719012508862777265756448998473276747068241618277451278629004815963864198360552632300437299614200153415144288864265338625790242796366011600549816793948816972641842248250659859469154894961937085727521275373408580595701445459765889670585434783662116049954176287273406162599330783239152199278696465108546498092069771296693352751943082103819942333560121150948659189587182106773506869075482655235971205296492988213421385822241904273614492367534994850649671026086996710313912950324428742267037828502162225351414346136561360614510706066581554432667352664656588002004534145942723470361936380353828227514338408193983606057176125172296643038285309045928169906247221503258341994262331910949622590689624563244149006932675603874157564711409871510211996434167081124856781794450924841649085829860306507897613985350886133482198496115738554671748392711524747772915825196818667651335938738488962460093456594682086435720796796595280383100253308901874316020794680315461680318262931428208505860662680830071137762740566610636556505440294534740820731427415724399554629294451465176382996106038031314121053495971642879731102882065011375616795280733401844837166679602408325132738379287482503692934986683613977002646104526666874791127634226883931819649547734420368594779056460220064637397016880567980731822133841382937904157528174592799071206297376563946497807580434099797590393485734649323463982318990765146658004064155745540492113719889069173161222196673370727331793002722441849973426517764983981570768367759304321396471410256663626750947869761783606705674009900472925692505114361114381098077006805501487401331470184120006571036371386402169203811340550317086950621057408023538878384575519434448586644143735769809630573839971142433545657467225552007433160574649947226515440100205972699559394588715947711802837815726616749802881741806333050833306479441759060735624002920103941216319687083823243212927664766745426007474839790273670850174415475773501448585071060814251830555295016561479603692333969344194791465372338130181021341589627466373186069974583361157983754800580366973593232889275981653099934772440956421117351385613016838033181231752475915727098717900226456948501827661901134969555005822822378209726502760726321025622183120413805721164112184857190843209278329250354655111139306418108065617872262527203619628358044037632252391561453616548657626407993612795830428948454110909430588751346831699350619895515193439903403780465721709375181904978645867274382102533244098337470847177208812566044493333195395302553025376256830921666935968156172220210773830364712918510438500746198581597238937019878136584349457367198172100803389938975747705672725247569781232716637393951890529913269302236276857362238431178877386960612816088336677844351082763462854360850806994261594355309698427405711906265021806824361475455133183937811269118919685317626706708334777922019951530523851256123419869424490473395597313538162890972308832541486004626314877496752258793480543823318361692594147933513011493829413428791644148959188242318185985497233634296691848408277283819736935411881265940087563318304485104718117732214960405029030097104308586100742465860350076156166657797803318461052251559202233448617038590775773891147967351621501286769959664894917611656183202802437266604337460948191987295288581893144479017001845238472119221972408128127726963348315744950154842615773512331156992603448529581653384124267462201851002823495651359749130717944381144332185363202817799081156392581912498672190577002319759098845795160252186147750750295170212630449527304267489904614373308167581620287652928916986982863441282903267584136994293547925416199298999034373312707979707394871453589896827420794434235997872682470938110570684661103564297559495789424711626624382334359905705624099959386829090076106170597391065347400008608600949439074412346734180966433653613137725533250424487496442260931843946767766107281817645452376564171132656035516786101776047431495668875724279694229064125185225270684957646387198277836514208219218224867477637720345158304902217756286908071426898277385423079863118786048695835597827628228012198148239085337017390680125003939108177621146142909462458231874064481357972797370217188213056829294183052916649900213452097788377501306579723938963196343120462659963007363949175656501734801624977050292701106680544038314785438256182190666796778231268562544791631591349465041275815209773684963936761714118553861943712103758437192213961191491810104189991018699806102840938450473566181552676855975864919248042377068350830701870358364159144179516212590712542571456956384632027368507494808883153021912210502629793360637566221589803876970170370453883621694606648545473565228137055928350844929448966111825210637561542230418152564403764163923992662550423946557331800388182729366996250856452631418359439222535935125419902467769188439320799723175749717341058295858823461212611134094756568579022741614852352030170583817930282632080489660634387908739963358915561508818810510851473441893612340436239000049018685622055151248492845931776093164427904992244901166949617853250779210767086618309377721878087482265769386440723784231380695541271597571127493076812515146271103587097772371671696086631811128287232835387826713525773497835004224709788176418263767978245033020005290320354859344798400116378857936480043455477281637998371182514151957408111569254585118176365548825885408273274969975731462030527002583860751595663295545204171710245649745197791734812068875926278683345091855400033675606033485481230668522279817822474443874962462204231777341562448306064166837131698841432842624041966014887117702383449257172980263534686140513244062596408890261891707377673375630289279191458831839152295427625002637832372789980179538747379534595502765859735549225042983063237771888182072715648279327263304671651718894800403301898165155310477746743226857815523926721131495988849504153541678756051069451983947101690399091736412743558109276166137932058380903010091283662539408805685741683592387297203407470903719569576229025426657005629860739483748014977929310343102014351517313013778250620137732334596369255324640612844536726337287198951462086022895879738508029820073446154674616406454686527197361746574498000343845620938901324100821310295362049345687318656812156593773620639312496394909660767347169629201783783226421497017484013486190437302593787820492511769522048526527056846081031899590409808060071960769781109080632552121635353878292623488674578773624662537717335281541255241231157872656641448891039952502998296590236962770877750295632537288217014730794257067938542420885745933699712427828763586460039009001192765858294287603223398186314594573476479087863481860191176352135785190578674429897828595738835219405412482621826874276934259087348256233340853701383217978499901080180682071924800239772154674661047563736960645186894295573596297653033361567582471067145982267007893969088637182644839731323334687312299910520196494207901288429725287790060634984790209604020107917645403447565599314399757840512702122040288512845509823530250032976254857112811578951265525550929519093676735548095885458978114718318092203824452122601767530998846091373230828366881201941856871696247849109452094801343292885310010031768897461706454325664257066457944673289683685158148978469328634429189940405596268027685070031258169487078995710318409729432975831345134378782378258091461632234893864929312031707280122965566465672982324452005000769123627988790862487166469740641933423295169652501143501836897158979329355965639497834347893715347092262024689875951483088136071829647797096546255986556866611913538890073980522791146914852140843585054210257634094379530434548464619794259416648347460872702718719375090989774772213455259358592689787834819034623578900463681661361389491980908155064593010309056539884304033965236075643830883014504040220351180242206933641430170347194244836558897703220560855474239931269057235703516304272599838332825465964496428501524114893021037130929364980023739007885768413599760521777674246483271429586831516591360552244047429966127275029602084485440158766857754102604796851278989486878318668159535104033546917546940038113260858307554691122016791679373066034801416315203170741820641919208294774627043573845318008571347281558159893641049567732035385707973138164536858501352234023546104948522736904951830242563346369390888728468941177756607814160584236062466716149212328930558926808611552176726038302465384717495940556360647313808798632598025889976655266272459018786528560807171466206183643798727696842621987304658203668823849381117422659536474146647442459411754182386476478161366529841086634072690825392605181312262028835081780558547637786555819119204452223805653478015895570248450113407657298304828542162315919700467961735225387111604305647838063184547060169199384510345206857665657803144255188738099713997758988417148170428929339455638064425022623270484265059646614398060950951934221192719099629790217738865324098130627475547859364086215820159936752981982366744005656016305743507600460722408573260945027973571554991919232767658714990279125889269099007836859205658323829771941447561078290383919438548498454731959096376428873866567798467065543282357102183783434618846907269762416777958572349373867139577864497220214610764883131317408060656706595505962048382831234609167820853339710346416093243829595939246236492933281524005084571927392966803839246662670819895716030681708678053011590526170975200921694534326243222208265770705377134734496434085552193532802183235215167890215538192604238223991960001081114594650327038528758510852709278161633996336683429728789933957641826813727741832856876511591852000410928880112599357478390338320361280226120887375697184942576632915951736833362825609182603582612191325422891025837166783931025434287160954930800847537736108030948172622715129989564723838034436888865267864077250507690650371559593411528424706610124150946079584882360759379463404131510286300024651960090755500876722511543584966863470528120681014231054683199757782475991747352585004339131122763059343409135231229578824710246651162393525193942617318620700763854007963993804563245884574679497658715441801212082900626227640103549146819896422080189296602330395417878088403926783859990975142274607383415575488071005731232077726194386348419444394414999138133822265648378565677536475330065146361259234801137049214591470984275479679214056299079669107358173769090875007307305327442068371243617135739525548642302316313895707873404875350758911798730447751337109728435506280014641442237013045166275683492338884504529482067454136263588535039482517463637720490094086192596916781899958699364745975885252748116649589231515537604971881642759286073793034767245471596963109954561456889900667738183064798530618665851601985209151741929370886033228090394679998569455969808161510096021587480404471838322252455069616929321029956558519282493771116027114717101797876788121798256994392377428881230818003825265552258792798722715915068310072080782499079489192320041817927511633436732137229310135309865230137431331168460466099541896043082490432041862134674227483974151255793246341840252786259246239677611455328671345940987344204681305704937126384713470002543627242792512398132288332995011471959528746212297450360408477983082329478679569938990195420429568305446919944845311924201147602178075318551069310096992060223742644792015382234061397444941702485085036754348181774552001951717176829861241855124365011991977405227125215323094806601281370220626825392326257958622830217039150592061132576514321891174951036918838660394299624393759480297499449314248029407584172332628116533342749202854167332082909832007998899314593610077461025214933264478630466889507960140972858153420086388404405035168837095352495464279712011432091904393586656379865250537090653722614533975577807980547620110134264065522710209599628681102957315935476863759349602946109166111414307426826883434687399394293855497213796433573244048468314086756296898155720859648989073632191316291016059386856484260648979480636869701212547304868203219612514051521924027647647706413958629086797895924640265936313335532465550996009806820439634189695352535531274355104240213667041022397937150544343672166132722566486457879151022052003418842805593007148135058558759988512955523855032492710989867374228466231754403796078419310404026571065609586728915576779384562036676110649462862000864663985478424673455404922697122952767628367165704630745063293079351879303837009032868567540657445898672814350135905801193376838347942925381581190221495154877444203935335373828175984953806839044494126666268502796260442065509999933853480934180939769670776158468398228805708666865700798597892501003165688371023654079590876885262909946012687533272569257690510004573192174064009117745508370922869066693820216254220147681125061861297765795491748082007987155841809146557197146823265981389502413025820167852094848864693055807712856335541007507429609836535238567425679865975753972274827907421447044773383117632637440540797407019103673667526988808362571444933449784308607484473766870711549063337846455729030602732821469043922943345830065534228426615957712248019090939030903064124670259417158431789954811195910303592601961727815739296873646516429778710342724236071359825664296744213459104875737594940204563388496510331071436765991457900610882871049751879538282426275846492081016283243894289212090219438516776959572598187355981084817053729473912687221471109331319621537891076575324330889826597678132822879008326366281058643011016705424284089582496089483012205624747866680861427833972271073994983511941752518083630077916100738694525926713298727788385130079314450676308320369921492316268087872393940388067957190178562447656121443434967882101326973175847818329625445569765318837370002102485979286203572736700481951484331180337584084231392842275809421672086286581679318385274666971567280242166901308327940179530861172677550758396746949358147349849726534840105233868510651439567647725366403653333347008900548986890521111784605848597479545869410002419601722504756433599179840207524858721038552477491879305469755256646400153331244477266571287973359279843926554775738157827394310616745806920935584796714646755395225290192347387727501742412169709009692180857458458985271045160182441460128986912899524951655021242691255537735731334466816329958559384381163425980647506438631094328936106347771551339960148839526506503720012251352630538925671793267385610096322334704153991270780328142639063189753146137263157171504473143434884203667020334174662441235734410078159571636565725829416198446169996981856022104664376963487374683170762916110493279766931448376739424720150435830470979296991825920207207357254327820744953920165041127205014444776702680019948479541859865954743951767838558593747482409869010721301257911526809834065936996724575894518500606786958040150223005350571664007642385619030163831721388985780835182692426707116105998515175939955333560524722737670640036318279574834632993599677943510089093486051119112681822316224222088503752331620320016407199586981930819343175058010980242603077089427067080495601822160023580692553159903535207457150633026023446390145063313417716303948432978303265894196518859201325515493811374850235442652152885396081027454755132769846055933317826567103266823372235748253574155662664276169445825193328514121381513694726867725029626253266852465351971420917176057061146052034014608703263115595417906096942297152987464805123449670255406384334741724337342843369539227885132960316232500663387754526808769410971464946629753883954624799273501856704098366916928331143781284120501753875150259762171296476622066909791384149992127126382289376859309543790181034775623894265868846108928986543097069927340992888664459489717347717714676666517387040391093163347131549116329187700274311281151205330609987405940735903671910927857220879914622670920813009817984516770396668341666483459194148694838044218346586303296368641552021254728176098079161564064237898101626902558993575762035305600265028961387480791700138383028844385456063347078197069204755502132853730170348937083445729004400126939070147474516297739435912920631535094040199704631192437396081128912877611431527051521991552374881358651172644265190598350438677653062249501822934520954988490045795603100716704655785380935049265112986210894011460042135482944099098277993140824811768847149567621804803254913854540423041244058584453482678752674385819028594358619073213709301331954426663842690636855891779528859061000408573988152957626803604838382135176436404466518562105359525083478520781469687248479449431957647147579407080479615822155586990385006039457993597340790630704498845754803720523037795610745619894606029777943964009049104454778253669270222632328100000793850545759830884698063643215369388099334091374314712804628515154342625468495176376069540426038751486642265656907093172397651901099081315192281840587913063122733327537521027649991665246412554467200509952449701243648544501669236500512753102344887651907488830250089506893853821427932199455031179992299564891653911264002546544581252442471192917609901189841046059067420042282239809880842462580268397134227203154310604539908606960032298756494561227241072830419152803811376568167280369542745362158244486415599431995506095498093646318624036568334474382524225008901948124960111789337716973350372666816318560569233785237429633427288145313647753376547119193408845822152670716103087442545405852945422111152850998036696894490945990391501314242968591382939535091169551409603019937933413273996086937577922832825575045211983382655118302749590417272950766363682012969613398479319061779835773159066552917873437017843914316798713247484504054764618730607860993528457312960461768984186280810519555143938613194058458111962366626047545910642994965369964578577783600176426493468072752442840183440842086987462938586109854142441427976145969177128094922748304028403268643903834180501205870547222550974006011477238685543528704722169164260297377556750743819676559782225490077950122861669865126655108366209477535052861057473497426738691886759101280680691298292813720305412960564043715915789237514053916087963994079370351640390276283728255659362225626035804622553157085076643007176365669197940189392696472015553410663276446606761088515291250499884114828434980239914870211160975177973868038440698560740916459328308198238202171245495378115005853918155015467457634932993540049426509548019818041956789792739205990178819980665309071790368177653786144699986302892955523193449856671375739237678426471205361559656724127964413717861466013511828570885273361898304564214642150497037774313466747093705800840817127421238450896642964363374126115456228325326839687957960999197905075545820728500956682004903100782058590817683206990221027299013669436521960501516498174246532680203807709970053587291722129024319212083948645767725430032185465400403766869935813369326981614769841104655857724969236883304957862344574517254337323426113282651694357663819542461709408903952427436022530233700211046951664657890920526666196967006634894321349605269717307698839248397685058969833989816927648935564728642523296690158107254951275631817423632255123983384560605352180287187657565202916329304005940327646376140422865589713505706513145226294608077540790725348352732685147877988668390593091026326133596353028831104130106170842597085313501944635801150158337366699527760267105867063859064930628576798118156961621042768813439139591018206168386632308139149831956417189730631061235445045788460038701699992842562317539906181629524663297720130345042532604069480063014132143973677021099090700940269484965530688761916702874001710345873785497555924751008209394887897361027339958086796804241218004230109512619419140193704360891247878021211992720253495196894178239257299805263876084024872682963561361485937958123716170836918700845026954926875780107504654885672124135201668387829573324001658800059321170204002365747573115696948014163729908911393500814341098845899258106418137251790253072479799247582616197531867252245734972613994134649887562494155439562941259397668747265081828705539729263709746128151182453392170960224939052043665249013748985874669035036225623248033348487007647232753007429091929087391888017557165422821501734127075405418817679194655039925346504779980345221197631165323662253560361908114227214799799995536040999389626733103096081139536569730589176146993318719004071662949426076569225592128349568175861208288545738863067293684520139434630795022457052490311492559959941127879384504946837007593780009834153752082933633824953930299686952649905962367513899811191205623075234156167019522680104826696467148773146349739980064883040921774788674517042081535094647132139548147676941972029987433440774933087324447779355965117185708023486659404873938447263778370424145491157465564046789011853726942224791145266303563429990257930739336415010466110439488533305751345572307585366246300401396626182672529709659754319362709358115825880221764501904416079688384201138787769495806092066143909155234269196732973763647759499811326851342758318967897427969745933333135361611943812511744766529946581237015583952202889273396430132279478127704691613031807924728422799175830794404832657447670249056856881907163463711876676480058065361292030553941200596302789229034382746457810856991826123434108869633663628062394806785948098843502006626567710446032703826813266881246664110077424894846142348716804026297718452706965135364611919018913250338880897691994348109568655764564010806013557040437144509932982177848944401026657008785316693819440244442185068055266013932731971497367253303083330222040748458067412072277155996470272542073527140955519075463544545436795762176429054138637542576745331297280376518634164901706052697361126253999595724984615727597584100801678671760398911545520034120145532762313341293279957316385025626709175077772241623106675863554340659873390697631104463945362852044743707811442308868325066295654912057073839024992480968205430204918086690590635772918931290819317318495518785528099306857955178004467085846558694779298088038290748896439748011309805543311253504607056362628073114434861871554188334068328274604941504658188458604328331851242083364388011426064848963450759168697729350512637765545427349401138206707976224476260519392801501151097828245607595143058963806239983929345304595133516077057427580345055571389735433870610882586070020984971820359358167048855734821460519564696740561818720915831784186229069719230773817341280340962061347544835474715523869611649865936888507124925487221517713513217298913977498685622622710219938372952271736486576928047163374083149284597881258068589086460774622219610180491790284283733066672820460749441115323110386089986690720106823990607359899430490265667514106224365236293255067559534577081661916085979101356527778947103125429083633155747086001582956014337013693289243270985225185423653003838945216872080344267334485325999626576932377836749302242053041460418192510397118122001999879761518858253950195251674564231212453522480470766400335932201083076725089977918414630789305018530872831678211613608773284378455844667835636690200045681010026929255330419490649546998513804172566804061300211243500995317772307306060882226585340786642767979988677596616904529829020272523014392609698132334128999326254272395851663165776176026385901772272193656133799650740012685843101906851518937693855910087285390985136453740575304512603726448027710685207365871324207101754113412801336784867963996765744078853443982662328224885740548737207509734847269744717785066090124251425082077464177790222403112092606887412720948039055545240289149634873671998407306113099520829514125011150286575718205386130991273373030264066538895371364956597500339461306636249269039827765435306435864320070681025317094558306256539044805854002617975580239730074015259761142953542571146466594793681858225123083545011311792550498616776685498329846033882452520038282662141709643052360923757642214715724285263193449201326202340190530364137992575755884960858304544709500763170092929813676338736974005746297201288272258340652603467325656489121429229221873641811983541844905652168212648208865741883268271014551782681729308525487621176762292769018938246394298767098892073675006658418551295372429013285891346185345437350335431924010936779968148332726388021694005493960160301447556712848046153985795895936312392027753136834576052849829436756372127325165439553859759471814908047598048988345787803212612240628087182590268953060258585883268479660214174469245198686639761939730995883052789152422083528732067146416121921503491509854562378389945471148863195190457331918652784273002877563299342531842441574084237787708527789442372143746052488961339358684249810922957906419935008269533807483624066911696766281379077547321707801086483436996626575074770040326042723536226457220370273389111933504447490185513848538872708659972912929517773311294119613505315602092418274763128594047435552071500752761249889397603354028096239223526573426740645190671133026411754100136158463592667155718353629711852928081091189918742562873606675642822721932730770520804964053870573406082548594382410340144590120753677114358691821894288774088251424291875946352847992390321817434820825575785118884566070617492438344590988223560564324523946856283462395222834258995991102762172716223532055473208626470545460424885064285238211782193195849549147125776110900289056795147768923816044486075421230178146053342904404413247885229403550388564785545396934437051715614144053576035732533614956930362034365321044077190125574549339846366660104702550089825493258458559830136198464198159742293431190495823030884770626187858334222207480127416879970988002707307220074765825096567448931565538594659089821210463129292800470720221428037647681272062463649765405706451350074067101842208392421967755335501331151387119590163554218761107652024845503498213265270989025137702055049046130251245378118906856437270574692455037152616859024708311020451237431254538465606380454921668277794304978699808099753025036003507234709471223905425858782571055434070726231792808638540336919486584207851889812440266793735577305744554440466344373494304671709428071358716362483448411250818562218844435784793202103531018723901327797467542054790244713168151120964650469258669793749989001223025371033494381236924866224981368027531061647307283261994701074892172739370312515865476101931726093878321044969003713512183329891144096110343118475107100006922512011927651741639382121964880777314827303139840682702327754885038901712435044538080892706533528295529197796460198407574656851543930003064827283129102649893210972054109371648752500622860737940485028418942480309974562771084325164734790709454699432644997782886995984448433775443251170918020103668249454207848448825721647684220299375080488418396622778615308916186581322141645478131886026310254173804918811635421864244560396954225479693583943396787128391413294344257322962762786354187721319895375738873070879696500459518529489414876964915816112841610600715159187686942047972426103988946464118175278190783786675968329496352745853151312264835188570505931102205045624845804859316482383711045150298596873580815725526368340248439219134743271652635750782982462762510441322478445781551088035968188168216293326834692853325758889639036645850689304169450966972366739991171075009200721941837497075984700203297948833507941072620237684046214901330110596966105385686245558850020406765353667631208417633709097315428085965304875922018391789186123571419433401178375788953081187720061799978210364749023099731385669919599451953381330089246497326144844685954088639699386917870029400568520149957713331992245847865236406141254543347705624782500746058490098916156560483834983171110524020948450213008630796373531025463874669012766878130696271382122652688559259236166849479975466309883012422242239620369191547575779487340778565853210306564555538447849024183536932059360716903767187158564554052918106798128796103998709494391393532712167087096669619312266413945683030120578443407627995178706283446535698572044507507343798301636689021261252028156325661457267784190174411893847025301166278141399246857245742384626443462662103292802153894040226960162437811898603701892421078738509690355424468102465892866119919757707641338143611486315580244606534054587375250385772786397224100193669063935265540792607646424101900714775563389561492679324332216641596199093480207791935326514230697389377386648517767638449742174482449556651814353335065424235161162841816216535954161066849890489901108035690651093400559683906016472624969682854864774343424474407602783415699972824909211727075576518381617475539129308521188041789910461869735465700092468122147607516387244223633000247533791144403200376028320935336310451481294658068497389419630509125144211747692983925326682322100669617819764761286730251358096424789362476606298875434174034369353208908795299834850642817327534343552667619551414361490619817223655970519971668202317945448160158713263265600895119236169495208768733154841925373835863714530023519168045330214167420895275224127064760346966218766980854518389084673257847618237004160781194375286128132510701669601570448532064161984342297891721711571151057971848875517937251962242267128133959395259901257863858118637537642148594669727884016447156775075461243481296855555611978307710988007187535853137726336752015870774416371221044162002753845046898616461017104227414212579698504586918870312722947265365531662139036477941170686181733157950130479715072498666752105094369589745379246322963895788908550136979567569508232218226933480770997394452233353494212696801437122138550208654275454647858312236917414464316169585753555470574365010489109038388803907471674982249645807190393324204247000079620562886774641158059257237936480880263063099065294580937971251959074408498082798891929960906763941437159295762100416528329149120319584147462436181740631848515877076365283122240989255393307506475706559147143989511441617741208618179932800113501364707410549579539972519890431276937981033848738537144596351832583262281310974680864514993466242270095289834199980234451061938429758299948789410640934218749507218361937470542072241793860875725531145245596657619792111112431006553874596643125222971229379756489887271348502595096849955556541225937181752153885967102066340119117934741829255143622834330474143068555261019682473094199832272889275164181299410910416963398562914246099877562709024756942754836431174797734272256746201365215025830988039588004208640502390308644351064434174732515555856929087597870426714118678203948922806824263074802091335718792003481817507918394154726456791121510892162128129075715903107579573533129714715594386471311144071984231469988674078965961480040217279062700077494245169103713787304280306855257438475311987308295133510269590670170802732508582108906916443463100149242505038249245542996534732019615531280671588341764101209339828914429484819418232147258658438421608115660371647717347093266732267752267008360754574431372887023592082255705424965569266124190762784323782292457478868501397510497589616805861839701769216165944517415667529066358363085696411099819705374069384499346159080203313792844954150203170986053118730337967764977311190149568413768848535737791806706220949484973252991201712764128301295454416931429262401244680373953784368291240493263187186119639495014137980353366122572944799315470707843253542339654439603260772950079060683161003291500983204022244298093320360632717519919150158040000193440830764002060468238253190424823259104403937162239794505190446471222624892235198682091636923156347964803712563087159387199418032324801662132753977204260790779416100303762602587287508138907459752046002566400234817459598821853136028269313511417879764491591459852901455962589615861224091493874026761216389601117952836552890402133485018078956518692512299776366797737214528729131689393734346948093717075591634938941561344348915809477064988857402204044175130028331004990919690786991682389989233408385534519874168960586398601379462763704256197979625592174307210099910033483983024529349168057352653139528538613545070538631283516882332639647680990144756964194325598584152105509337543867046889649411550259432981941823724213468220638394152906356842882721246068294236264207181326131058331005221408504974300510295504846903902864402206913135729262937455292296859797408975628955925303623337468155899064765053012427309394723180412225915792104267833281818278220382315530111283776626124586645853412959448540028843103807487529013790750730831077404670160561886636460548242546499117836243855746918274340847886353125272657978869649226976577958378894506393803035276395388333698637922819342275846040316981254320348950479990652832467236035042661619413327684505631936456549166582892923022834018698594939992459603766394110407669894191901089305585408319940030923746540576948181054129799148647983969709324239781097247130354338867258140088754195175282667278598476376442429487015365767403827073147032460666629565772781074434084494886346485968306308870729800184809898656896843486483774956454765375721256181736804048629656590578607156015471798533445227621115089276449739712530364584042293088677705355252641789364027851238088054232078669367230703693769495554478472984788538054589755587404105627961174602362831856128312618696074679019820605046248864936991362474371530404775350297434043106816804077868071689075583526513678974532085733262369879273007510669004338826649432059660281774202737706089820943389191698112478209080024057395110317965181431984563329881532734140485299539364098249107942026528476454952302265857720622206686745744762653441858504019141125703946355606832375408795128621947589796887257291056716822403592118843391547697439094833297654524477543027791952050853675088054098653053968265177485927219534547536600559445398491121497505506078067588546645654018449318095539663227449781498251966895602598781943789094531359631117500222346705328037251046965345792333646832814953174046790466781516371320150083024084762360869678656224467534894520958182546134869234975349380385027042879005421746299372153219255666400125914310892679191433454435663643388932610168900447657742883521473085873062323402099272255704270528615572596037986174007523069898343960991962723548857683966087805786327704810628189839615540675443315691199161527252902609924795151345519280917098394503488908622802635091894599988373211405866300013988657521261511378948480868681590745116587494238071655454938280222962684008542058807393990734932812455503293613423084994511103641684863659478583465168225963169743129948145749073565506305399380527488935583118644195231922277021439858276815085121622493040991666236336633633212351820283872672369360354389798126498488477408347748761727986020542195563252672645655862185447915122530379888595721199793223369007081615350859693982465649500599666258423405083761169777837462762296339665283474227429782292672011035313768711571976717733347788379976301191772155049314285264200723770439807480188433255490363146302863764295745372109894198688302086834539225060705977528962434313816951694264969949646368649294074619774274388578163400593994456764478640649053050181901047025572839763248387356784211568567861775537270267115028236024481693365259894784377196400154906564773399593408889448360105561391860253548124785500227519373934430725682732725226122935070792747745848697595506873569229875424987478595793925643814032388945974070840622718350644049774537965045587133357542875287976424306089784235270224678635539756213074980575612845461188461838999009738970268194329295380782492343250200894641138114414411953841184516272708808871463741491938435200355570230243880061072261203300090007695269283574879690233015117438232823204579345878936359042309086094307876521208071827748427416639698613556785378490097708389595658513710557092208705229017191034133114419376431339628815457144610864258313649162039053983934476299383542245833167528435643035711418473520272326603159853377482076582404084353313726904560082775652345875394658966544476225005892004197250494295348628079067250256035318418499882439283418778585652568196596760440447951593243438897762614035175667979217149441980357202966866949328290875128678914985596268720352795030497669432055704467420047861936500618482051771360474150320874456712092427418037040543352352109671202165917022769154493095651814650378096811662788949666695798860992334872803084139955733664620000837188078866659742936816568514546528545079546632757810312265286444544542468567462706552066345048000747696342601055219433506035746747339307895605182195169492941184906587616400352395643044637616432098373829648805708211303929788802972213444289823563978090342083136630676843727465476763586425839550281390383652718033189475630652385319201915976243986911862446787798667144444985538523699611968402147150957143898176852245639107011036870778929319175159470212716565039308743975382517854038189224773770014858865666807435473166938620186986716389697139983108207740615931027168460017344863719568727616115318412544918899848817061444063919360672942712450517902527458281062311962999922461945126101895726556643358973766284052859725805552238410110808980482292868737326112348003361236218574027087000785968330250777997972942645120321982579361501793521630963592904527455923734501494088016790874158948525223830709324411034347750063254893291766017314389252011810349725652268657386875616445795868773726375039851074406542026529131421134680866575469112056216813827608015033131789871008855723710190022387514941111507892532768262804802582903047255126448220140371483972289998588669409385308655308540594519934032567681479038597604848603842962961690122176543873772350654616529437077818946478004525106417470084458452590233265736917128205795571544277544175828453262516213337945170101724806084549228967763537352907733443920390999128402317858976151669034310115402813780241936236136596874042970723653408950065088009870840908437691920342998265299104474210373966230442726594568916306562890870539061324569090502643825162649512871562639872658118727769002670716327411003884371065520370850539517584278557710902869247954894175202680399331558825915032764209478282062421499254208080537634395490151290835066001974461016319814113100935892983381404581568454757056708042904762126037343711083762862465882868898209253858589483103985432477087083721227287126544695800037444948962079278657036171961654324373618597132173878434059494258404727982843941916672626292483992888970000966530942091404328786741497356500890564225514242020072467010100665590157970821173244745002506606887391705405902474178863169388631592060515841960813535678710141313114993266159794319820377347562070167009184585606292138102772921394952811806658437723712878616940454604610994173787831535764535980887278107732279343527102485006054307942428158032105451071830303908630330770070263364929874648886450030456501546952988285756668413742586284004068035478613988470707922204227803741859444755966277921793939179473897932091485251325649888363397706756415417845753127514418302559477861100523788642204876145049227769939638801598197326650283726901747136619567330828079054530016198253548088212389568259603907504686220762774250726491280041736578541836752703405239288313519542473238848701894787777148558818214041212101747411076651391231070577490402118387736309784196790923185523381197568495503170175750338538613223638254146311257888675516721382667452077707361767555944958819480950111755940143040863031982246499848859838034471973091827148776634337193772195381139590754165540971014338468960841832902243210943103745979313822932359019148192591276813235640582232593797439531054355615461939198611506334738770500520135970140938519960689260387148484276387705731210598839657244590171464873596557300244370338619550400967550800459954697101906661824455427138098667134049892894167089565079941752209317775127956056821583225268401612262478308973357181988550229033618545109060985173122574527228753764736625775203943851710961676399566280459693800382357284010935596350542287796667139618983692946303128516658503646502873420746003055653544424873906244758059680537772653492730405537829686781694792347545679887207497650273630687915237041851884956531066405009485300006060222882127237214147274546851911865196380511641475839510647488317456522542730036916396407260645175453806906182249821117309559346593470069650774814141042159408665674444986956599546919955110525488693761769603465788235432233397015497725900812942903824298849922760732061139774728552900063382579253257475414420294803289015014714671467868574177117287258161122321293344604091055994132638899610854774839921208951660382588968583469366190138364029308656238046136211773280938940894320792694411496260009378756968874296120728069210368779476993634157653504124108230289879949619016643066926382556031304849808744251007876098168790338506712065506088102546442262594828894444952553818921833351849253643227060733961369090421695662598340995055495638586539755049016927997894601929613053716044226900796781538546973447343358383656049393034279192108605464326915179314311741431266875889660150302139786072939290086417268820626255454882831589747376145797620595008277626829966126219553083826177501401607578478536524904840748814703697725509474621440631921607409173019071996237954892015953802523992608961821497916789272587827856394386993151202559232696847393933729277902866590443934100013949194891359939605910214928002056097539175869245522296011308505303790349708669238634126998730304382582519977735788896790898173743622335843957065201226653826600329117307001481108860658882495407742262233847064066225220399501164263860054155909220800142964979888931938042712388763448861229391079796066919739518023522420617117276740275856908915616810295559007123904348294893541678852313338998573235938883761838808636943972511250209521705949686567622976939411628687884903683432525015141037653116296541970032640351093306392585832028053734077487595750204152022590677662163659297281980964853303573446626934088842922157803070872488475939243544963944002756034659396370738762847737778977637267664199348755080825467144159084147347081377412242991272121141882747538050063958747532645852862423040661834235989196406521729231791559224641577007493444658932708704211287277113484537869814259318000154653759329026683138225881455465494530908085921237468677630870236097320410732781865120871532925320536427600204067655008811273072653699447670392858805971151618350076122490754636461416841512409042846160703215833657859075315789941192718279727444210059421994653377051259143140191529735635809175670326668955615616728206994800446183952356962383330375468490537720697842291359010931234181583729398748760605339928955971948051870102080478282321626244201122549915801127902963767698977006340677777071813052205423947922962782470695248894122503219952148468746528654088395585734727810264817360484663209737154010643174784958615599919899114329592164780065511307565694249005959766350706878003955452018490569385718261754401753058339778953023734249449244489053818056091202776516897246967452430593004965360236145644264252718840880500788902139638404584503710881489060617728512704356510399514707538083906836832291054579331339038346515284304392943560996222676381354543555738177809672036315273917701877228516272131903194989618935348389820587577838875267832219274843937666822044852492173421909037985377519496157143007838957731921969641981467005777713103987863964963299379684403710818415707231266096607685197288226224234459093910422844447344445167238519003208597083233262290417013416889325893150661582494463208853859193372563034850345926889807891330235627360922454453381092413504655024998272638288357210436894938752758737241256825579100382721641898421441993372414397140248835477627713341424883266826174839905007160521461902987513152871914781517096950520946964665664226069310264569611449426454563050335509828117793301155164169630536356946067717241364726590298312363310678822637996453125981924385389585318339833744877359344901598114936294697000431315673018761189255167546231888221022460748567090670533609299170283615065908319928730213831681932477631969537621769043962953721503653844102770147845334701948141088097484184935421377538108728817623586825422636624345446844059350253741872788412896133953087189013687094327345705728201968789672312275162381225700021207162500383637462992360138724444777338807009851360477910497098028914739148995627112747388985999938576102323109842095355633168666653752993027284618444433275580172885882932228125984189346666011653545670585879195419127016466461351921135136101121255375148993943307900904607907376766307563903754177182231931664403743540123252113625887085296553965778670138908698260279189540797496451302448117232220385354413895658612422173557748114877768454403443503902216140013456850214413586554258205347640058482808548368403615795913786711795544338396634198790665750118710387210096469797395201800528248851645332968673458615843296638112523395098097875574602051092961063397243503633176431192732073556612906665072913275089205461186580561961664781387039762695922188458491720007954748692253503187320842315853585377801790662244186067211306856223183729338284523203397181325819417690074484078842655142708094484324936790131336000465351061988921886809366431943461857658309654415452012714226888979248837193419338516120461167933802014351560914806346584954287058264649155222664781294951931285016917885239437024770005233728654830347713734024875802517444564797292969127039486715609601632734443729044630487726789479890112873201284344580717739361081123379863553565966605563773038759146802180001083006717941537434893905769683799905155186012641511739401296250033134471372882120912411115130964749729836721976182360449649716497973459528080838851925964960934524137420550521010961130707364675940034482258445966486191909067547638237923626465319931879052379285140284610685574001590490770938906545998111805432571705898226066823058354896011079951953044290766816214413407623981469556384013885245112003863597301521450080592520610549656917334293841112102522640139937869498583020562554502857420304346664763722684274212208324702805796602309137420405935920294068544324002186077759841323222982538741886203880851738451961133630794686933345009766829566549036829724437101743238548346852699576092298864059817871285591685064230162540629442935086640385439520355859527911518143609756775283860717294117932084533513862663344198378046444749201193494897403593471505736229692820063297290378767857697309936626508450710865916079325058838057191202621415004637150630341853616530664029597104985753004716727948411278791482150397048738674077896516544879751177264087658127899302184493620962311293032634834059807678669622582380805533337457606043387288216117168473504555626259956809343009781077688577946044237239413409090682260630905421463481424212081248200832033995093109234536632504064455258125926985448099345421284739363384382003815162592904451919366811110460258082734164933476353810514485698673909499324119173814160245006488035656591705756138349014516108663168317624931193322055525530068948926997833948906083116093201297593896820006255241367124403965688890819856476158183699738165213890175636717355192851817038344189123263803948079239596416245130896688887235262369959680334639233000190815173295937059677493317482368256267342790315330336806037142417681877276013736370215293207868257989847447716117954410784904025677072217693377931214374183336662921408999088972229091256689666338840408894479311128550851937862349101823199109078631736648717900656428063298385243657008510611176638795663516393177758916066624210666812372932280585515694239511841720765205185122237183290897187568972625957838453386792692036960037498665088500382179796990007057184744987991826533076694796558048554933730768659711862542484386472546077933251656609510765415754026024135517189650530650706809680931341181699121025462131852960428793817474267974943083036859390882007831742260867757244609472646643340837053518505833560032646877536730338103844169021535793676737183954162622647502847565167014222466568068162204279746090206313193344237796862780749845860809096828361299686044440773079943356243273357381025952182936719507195112153124069628148746281291155370322970241668735509011769109701403470573915613302740443838365804385368579549536180514107766410024241842679445052212788303923687076789623019778543426074746878980194523682036059017347752622035813510546770893613278621763127515000233394600257748805215740279978180363002977188250724351805927638685983329822946267958989334844146854255345238839266992300103112188203858075295184903422617849778233662590230056953964494961989618949008220141844739000684090960669027646214787508799196905502892433821157904889843348927076584165578605465471191146294881780200731024129050170221250090049897886587738599012529538441506573923531510784428638476861316113763850998182231271661152380173698101154569478527357578187128024801027286073018754114196121261916016841757361504852895156660115720812318391994857963727935777822887189037496292312894039354464357083321743655642398266873853162562259631765448441078737293662125847578926570763768946177183777997905316984305672312133508796127171777078422892711096623202071082053073844464408114477971999732887805007775409640925460280064997912636799264902046657873595902231942905814299022614169486004351687605479139223052729697805995519154800348134787711888231862151015118869508898400554095770249507279842712005224305426660524510839020458689646323850587546744060981780715984255415339295827219319615899225327421215670420516443780280120631923174758416720016002944873056323201048811510310166087526018792001463895175269187911291909910308054260533938067933858068449358133201148158841544964330579144437077895966810193246986751353953595013918725274028057931823912465181362094507840629370529174772177447458327375946569384458520267649277842187391676311503197321034024754336816486617833982866223202347330352989634474713062211064277676993381135184899322443463080114251540730077749955053599231553831285122037031345308197231356605853583004415041162723286749044414708475692742874694133017138828017680289403446535522732990864347855616783584043767682135007070069410650648115869108705429579983263879400717833991508376353590467568364089986239000405338971123744522155170136690381809262787949763156265476853768850981344270067292330027422932325627567478043365996426928598975081895142193758164973651194792293954979040431995270505709737394533354585947769281407676564661528780956957654514172999151766649358627360954635560826300523254458854363286867434636644420574485620876316208461530782522565598427398123686056796373099667487757394686535127066628884755086890990630485975146716063285054895954401732834513573603656431483284502281881013271943003972476294550911501046422363514384153871088827334252528575330981651285451799677688689121212732125146901412100690836727034337387168573229843505057926795259943946072774148052295372921594150166278276317132166154002788520720923333593267843056162131499479092681777373227616175978987995064927762753371278737637313828652725608044781866795543279782709957925915893507657924490227187323821492348251810179668861576092797310782793432139870746881881871861104888934950562986462086762449193692257348973692844277887722097723996671716764278893211849441876651867357584923531357014932171898483007128266778174832437178889489501227347831132917506287217817297417864454316585114365625979090905092206794787278244959495145858314363136519549422700806663987470043093941363789231861118725735357426349453235443870104923579101358755940036064289088858564032536039281924753296856287285267665487134432602681286229396685920574673129109073405595539652978563201524459696876064293124995527460785584639444400982448133217985587832591588619716277141536803649878791020871599428299261200581751407681543446865989808368902223663694356010616801453246386871662731473804398323849908763969869707758554664356299121246720000611369766048576656177770018573059155207321968403134749571628378154495486372665198631514448580582046342955357233675491778998001920017449828052809693164422247323110075785593940493811449700727339069726926255000526596963652864327221212278971306648057191825930714023713920945279330520531182045470209666336085864406187021967602651048213248133771716651577639887535154172988180419255553466296539830966286969935196649975952487026151984670991144984856986048839271989486718419228735040660110709093910362965360258734840823965887227254006894130757187715187319688555306075549295887039891666483495135948290935288433773685703717616287913907788841439912193980986985069893403609328033902142152308567240144169674667947709369599041338294210378087410676205179807418613238374454537075395767970901626184389830939126676144964344205817316458081379457137343626269749827709217116377316408073639059938891404794140426559366280060360418438565491394388682707575248978994640841479274266285249856388805160022828345895213090264749924845201697054074064613168656857406099059677522335506721253327347041795785631980736404872295032262292115421007633677780001229443121861406464309955968995714177338400894817355839892346986874695014588245155624730182639175591325114654847253744407981290053493880401748397017657318826011260216447394762995109991854771670211993038720645200541423790962389971033249714044990582369070342132258085206277281103498196161480294621552701407264366359431298080555214479501253582339617648001774876678403914279608631682843516131173511566253435460454978680155507666870031787027591937822094132677528751592431106423582922164222534661286779620701769173091292435986109106420238818932245012076698716570807567741175902496707535704053229815861656731177633224785963362090510307253550431398151113562950488301997491189260451159318708072331261014669203544314580319049568047535669731975215367298743296751848748969100522601810832165608002497377187895421083627885209063497853434335316895263498191847079650326330218539003961899185773678601516020324759350602552827274756007361931614222090741704603962684451777836943058695486961955547930253203124497666839251180638306042670234244250316382285470403840367298246506093683215768063780921111038827139409691563509630439778610652601472029752476574151941884607651109074704231074387289790517027619538466145149581081663549615840794562082053027164992410527505684937287095733441201437993674220044262530210098394482308237053894367959492345587916425368847940430703020049135334018042411341435227065436525139019103932388340439838866834738794940568675575972925432504784160382020047751879930099001294957712902178663259981122373597273780399626066567788142057389735799996308064992804903085620146506060274332827141133892605868549046662700602272263478435333221177099353424161931366136441551742513168369454176441304309626003667921268964432688600813605859791193244053125992666707072430042315818309736980103200454770581040270267201815855816327741484107442506473889042158280164790437719400570306164638954916143321155762382441214400246892990825392584609359493032667751543845143810383210543019930545357284737262893340132149960502035751583631335014416935239500633834128856131487773058280349963004208955492215865271739585811255127131228059042672688972355170166345085554657481559208263928929196997737231300285169017513487059471464993150753914581921451654125123338829623705363792470948703572483532957715541240778107029478476407223770948802458277030726601280563105467882247712731807790515467995547620786256434741609145315489829073464446183313775172691016563491573487796838843911804965904818910577010650274556360302185429183406410034353983101978930373118671535336920070108197768073816154716726170236230414221558808376465596320317636307101998378308764831041146756009764524028794122792290939866009262637062215937642965826206713231360931810133881605452706484631090485091116025903781412877015448638926072104688555115714860933918321967866747066760187525319093689429443446488516536946510440489845146103931853917331348376357603785201453701593485348442588509246785638094188844159091062579531056377645442154352371300097716533584218631241681734179474845786694405983776826187788892466373826620159514454127213161973847686809428516828564826078788414736047732827281237974866353192227700265474423926746192060035032833014274337819298574286985105702896376887685779016380896397623684508242802651903691283433827479038647805943736335604970647575455127302708661602846303532038645685010512566541519330538517807467976601806932445922378586313580445182800353694440692573160971193213472675442280080907052113736806017862542630053271741371405695060127461591582286693006399107758262676288967778108923111534426645254134889169839211761424396556528500779380490071780058161739590386396169642375431234297082734338219708407750558735635099042406162325445448754930041148687849981432724350259825328797720200534653817423212885355263000448821452654336425927100836895769366528067347394544263369485422761509101480892054640154553530274181177586011786711728426594046827246992327467422087861812196378434882824310129140164761664187981931924667504900135255702738817165473242542022879170814084897616667068704417388354053800179430892379620601713052235651341842241985654532988015003560047650977732747240752701208276133958423037285381352354142842675394651729542104283884696326041026509651614357262206803955966672294335859090417480199171441546009565678207659850403640332876781050428794543060695689076075071908242408447930967795363270652267106609119727163963535453320762542979162180656535172999914264249226692862885744385681679090166601582968316433560212520996325906881049534459458631933913472272251019817907377243285906397622968272963255998155447529864560985888315973039123144831452671728970365089594796095057550467708565601400951528770647716840670651622492727749734808918010700046349876905314215769854463294115291107945906924761859850375048534899662173051673595718256661627300669377241298031641675983250387196808546801464881261669220320587559827264825565655370378375752664211729639816229724112308222878648917695403370993980365081649238163419476843039586694164975742860666081416811683064565190173411429630342232643662830661139868343084896576534687318382286127512582169504260209348736740437408900833855301080295758946194726109483823927811699152634603610191074810152376755652688330046453784602646149874857090406003503451701522816145820250814627579534831421114723857920668892857198662285249450379057776184907704117738075254388514666367352251379710975680547694155803773288725261443680982245418288772963081403076295314406128089208082693895596032898645662686553479398791462683963426538182495306552043354686868718179359474183439382149374647985673837094549546891061722508946413273158018093106830075748475554069073010761068699099411449599461860212477448712909483412127285593532103933127885728053524248036266484259884755482102652264148445339137702560127433820372330891237729505594860414068875787245098366499472338840731471431650578729093786749538980585306983422863282564817683109128398553672072321440688288145539840974457118878388682977496188172955758518536844341699727699860086653926940313878558698185913844204849643926779236669439552733395539586494477814384914245322247790503641005484826965176096354205310152840243076846309678161915446747743700353205179357808766011496086414678164114807621621163856689123058174587112969271090515020386806337800887915313985717597049649357093612102441050037027470497017778390032281649374059546381870658381688723461068396943576469528243374295900027386879453045680128078644564963889520462222724900373190833206532763080128349558677999105529361461897460973963294862217389828704170193199486785441235242545516744864476111846107763178346666181562014157585859833648764328314440974165480947719686751145254110854475104687184044068068117508908575912898996796210392412587028457977499495212551502451852608693398425141820663064799089018503710338990250570038455594716941415003921233978933053159349728257326916848354789362079683998217587256602513460209412213202019219283303606150332333328957845345634922797775388893334933386543714158662144199818688196172231369700333138396384192857066131760890653319988390441982269153020691040230615689654166413074912865184957931891364576350142699883949521037986380049812127453652875924967825680731587873327736471810354062350562643080563670345024420514200177719588934544166597724560346696692072046768354041308181910119695761329335590769584634183581929671673111423134544298761656589826632224118137535293633845671687217597820981177086419000063456552307578941626311807317859234380358465251254400839405120565496527105142716044530937891898571272962470726431368658839341469887404814601680039543559721304206738355369333140109321754315538320085426038639091716593423355807423634973239941670978049344896508089405693814048144178475376163491426646499892011967226694161833103658614409922056584845588948258077484949604484039062175868943938409487024018792926435349753726845894506837242552189191608881020863345127480333108421164534909354099719087337196964353531132905222532014747778912149456372553652483985997836477714240579114032976430239548434854955198554193669252683643999040082695004915182251131266599890392996661512311239479852294930609923733277037935890993359652127102724034472486894150649676401809075786243948493976766830801603455360836686255279835060679754124812659274142999668471805523183408339744056019377800711380581388230556472787978789516884921595377089703120627181115890771472811765736439755065243247836938657407676316094605352483137967548965474304834058848663149059213034009617861005549237973395287505928518045537972203378635380034724227501015266711358388213553954781418419120660532045551268160910410363521185769301678963760332491389903142035475899870955174777058049156296075449262024327329546975539499735049153058715168309080762326854029540565459641450771514952011289228250941288337651551732212289290261568880381400211103790228240162030104116131250575314013156426263291441003355842003404485162770267381578549147562021799818087308046369720268763243938151188037468411108431065684779797279545257920850722428654297613796013838486657283294565083521686984660932946720814559300889888352039767259134696383157285247194916841397828244809119806561518825186628548473716194320906598909554023911274621125545860890465017521349787201904589048216893095849006656761021866235876884728704133134347434951123010804418316969883132803441630984860592405062127711977833309627137187912604628196205142726653927210915758860065196483244034892871600572779740273596299874906930170221721287761344994431663115804323170210686644195074800311662007787796159084524490519112449681969176148230674303063805431217968976459542208262795948061118455681155086462598203657815467135395784276420966998564338099798355178676686345896418319002167282405679356574923073365882687883200680421143109177589701523140973312583132954864049905928076807306372655279048823466427449335663123328876321088848864271437257556701705281104290117939469423092012044445017582364889825461788133617390422783482010212086788385085994383784149914452293286289471561926015892137263204722448256246168032503293590256493635743825276396028969936172718626153862864975613385735657548235646323193227501555834992413201437445499885895439535946248313189873947619981221678268634453306280911444806176874196657768870391209916937705511983681118837898202652551519536237205247345207934479016880947063079622886144838367696733767870822227420017614294988091793093274075579018520907202047506142681281201032941921680258773705426953693201330560697925439165184711768541203560687627579388218968984010856424257796819707373592990741584781149801152671251086724228671905352342933790719115536792029317745943778612606942823972078588430515317933385875984948730755901426167343998693524138233413230968089031024052697251162157074146607995236733426517237670508242695211708357118042556294447724058239232193388693462065904905647682541888691048753196547330752186089151072621428447012288317952102496825049885644811870502456580267986238137237293518146515920588211654580701473619358264082624859695183448886894253363796740587736205790453248202848055078115096602997872852922945663507241826958668357323601237060005326875044798626911092773376379793499004748252878547012444058414673530553796523320696130708555376389613013682159322031828561741457027124792030280667483905383354180740010548332805540398947081599352888870406495889514701057779300251287837351139457877669977797474417336737853768141697881010261388812955326049628847456147454198109807660020735427577818955900735478385300030584099976425402699616411795682425449703260948120270631748219032490026935935624542390115057146307094311887135204274834760735630731591606262228053096359822475251058627150482461781278887054345260525315151656964311979478655977260836107491886256840125705340233958631827569670852482388118758990100961285127738511168611514686367163014278474148382964897385150865817454647888788003746177309345546822052366992703408355603760626491470780647681015719687296820066756409391565443064063742905815842920471514943345731193203728647678814843091659273711037780528942297046894125015283189974507137688334137735889186462253144152801981863864271474873743159244065870340610514414009232793844842367507857867402259493775353551550647263114352047723427632009022099325929623994686065517816750737246282354779450881533358806549101348978936483445873007350701311805561649816560203045700442253563676465420273817760729816193587405522658816364651402090521814656937082257288517968595722345968689221204210605214921488241997129576257907919569966842796239278928653428384827126077867076926267138461697416120963432413743391973825515243517010967737370633285101798329636742724315661358071047342049194619836800356305937142678250936002688247503534838274899991589501666692611050982798172505298048415650365889466847023038599461850756313268180890702284854852557512759092139531968832163788081168959183004124050124439009878294008587111481221673837421929491398490369272037025762473796453210123824058563431676557389052335999707328952769745362002148720148388227820687248361130265193635901090168777441788222070820400045905553939986559355186753438874655494900034549319607775275965731664410905010902219798207579416697388892330652450578112671129765237330623619458894762902759352234581383234719274317822943526980011529045145659249209509609105613273556083259793904630791858208440821725674693352463717279882888348740125502169614484971607853002253528661890099901542935931191615549510302570942606834828334054870893555283944307414309550329269429761907038030563639093089189714769014475304433782578770406536540358439641352090803153465009838777967006574712225913650455047793407594252184612341746820909406066079604819700528761953957673680592406348216625987160406349186640019645115437492124935731099296249591996404722021816797464816406224641522479465166224937073683032592189805592445067577069512221988705225801106745055106345332657031173160166164439701143656508005985341846985696585551003391511218591248976929316902366070078579965183956080093103080019402227260146673891730122245631175389267913648131942049873651526688762362596880814555035828263164964184506109981932866085559220318167387944582420300578265388281757039887051366967401485725167191846908399864168386920146022402048919119445046132883566950653511517316340788976055549077143431185657429488454155511532908026428751687046952748617863746187695150817507074927366713078837553570981535380205422078724442454173726279454745254831663044713242936916340369750215897184943959901508471813810156254846326009432269664565842312437602218363729818840675315597528018419758486394642146691604267497113104571560007426176328364012895413527286078424719485600372406112576418671528985159350741901521270676525160623721757439687764631693086373886463690991233918903718993201270923750529211379168251209217785511781417315391393789101107545815414697711694947483340862127114709197291822976340862565424684743977491397083242200929404968233794699586174343347710435183663979523560426389970261062583110712608865071009043337079802209937951230157732640095289566433975337311654259578682316122322727727550515307413046593973901884197276228881810024083043448914277629524503949783336471571486255159503736769948925027211686104132796204775891448812100925499448016154827373469079346188853687747126436558199944293318230498140017101536960993142337928010299145607419920298464316290029534551185971105827468054630615215647587839600390897958903419140148284587993864287058971298259639813556921688772076512223903808576004089624326129323509539921244409183230989173835889786338614530974054116577567844274674201566174682075379092651381756285861910450249594348072756210461813104305419267674144250344614753084624983197018961624201795890157343909568166128126549256177018144007618084434036912551646007905383248378451867267144490016200046466677289018611100452005301389870767854813967784524438114785314660908014875067803038377145865596284643810420075389526750424935489209539310193060581576385357091811753132046490068111852682419591025820820428901382672659629029394409449250044300857417201975054506513540476537991832583128182132595495300158590943472754672316529888482047944370407122229674292100311614138653182152810102661433222270945430991404583473089348861297470210104971051881978138547184394122320494516226360235932559970272770498587390613329806174220610737027398917532510478599636100202171666676039258980138419240601930509622688670693254402586481330533297970786905592547453501226118636697239083969553601936607548124874771060404420269363497283287913608687356495349495325033591225009815485497291654942745112328980286164510506538594061436425300607619096983108344190537043937215307593009097625018958309959189658329102284742741912238894210843129299256020673237202270676608755175926908914432629261567970069965294018592017980151103673591780566796533754772059254033708949344619488940050798456126406935724087288336117551993536817068310823376974663994902773738358054155081976403544194291843050319527649876541802761684711737470027127644666956235356754908723461286586731096500970437074244143970518740725216136187997222155267705580148039412943334903992741799985369538210183108654439146758491310353509339040094622249113759951156637513772646367310064359312048446788013854914647800224717365707139625775707418560363487373429845009746036235456495360201183423715908049010030934978429959231648117957060284152825910356989737587616423817325690312545378311121842032108259250790835269481688956384418589507775796834380404912981230895260833139241794394544880736663793366307895848816518086697729087704095774128132414790121101926813316542357730063506315582718981789261367529568333620906344562260814973926847645033486922416515818373289690842636458416045073163574005164884196292492123607624375263206943404408919506999854254484512330266377285301848084165615408840431521625770650158893456397896191107796105013534298608026182078620615674393927014627981448613343333312244929700481953907094022685291879600352413393877589717586524773674916884370578483321347927871756357332408746695641522171666207248583547357324920122313195715612662750645464506158132730557594363105891477193813745170071171858395722797146359712933887538076460087482126227541889322447361114219822828874079324573990934974229518064691554956586029378922342546245283994776044781250802948786531860119026495948793474729609030962728156182854988642669350594647119690593255105436350988992541525125576135224015282291946849355402815370483568972640449681958175867507681504207221651839472773560460265882479198056745523512876022168715252047856171299055775910637613946833114068338960420408429373450286062527484366059292507623640266898682485992427700596098988825450324086715027204104627046517400211186590903665259278559607319647850029402905974464429026814961744413194710062884648098280678800945955254074230071057609739229301255336039894093074014085481384854449295230497570918642283717990478824790830824609180216759917713245540454163012846017848836274129607736015553494955282513401451785843592349397684939354317770733758525709650596293451990806876149150427813064958852328223029068971069082410284859594572900617429604364675861425312859539331365381936590169152295663762112788266357504257911981581575281825361915602467905317438250979542902352921719076879225283544749776666471999352244572512982317852668432400201271112047508724653032600270362491294681087085516891124416365000422950203953952408663418250687592971927020474026433556021702911510403380214972854725428864233027763451429640753160686850017183542503531474995380041077085393544275410273846285212975065191732850979656087657023714052327886767634313235901921544084791399580624918173457739530060331129583405488128457105814355803754617701731681964369998663578116552163141384569257514511750415672154826961886469461266638755727008510391453663330665818241893117819499114339001297111554490956700743238487137944141110404164136533221151502643400084278340437588073963512010490824216179231052954930804598199504989713459678582453846346404993033405635065015251982361019144758293263959962538903116657870095274998843368974372720293835664475163900542133620299645180775464411575521738848021858421006330578374592242877504261444769431975165259667111305585260599029363197831452171151435136755561631762400362526581215475758682843630252097632911928026299489952943625265546687078205921080821649686063493419847640825053292430968281195766636085364378340788113359765944956466114008775134712894937262634993783606169875368675680067249417618537242086855573690814036634230904481394056255294758009292511472254634634564780324460222898382924099729538939192449351389874990969558228408612282135259089104909508297933469446060193836995773233198885325339129208343188561488038528013557973307055259731650675461496426346197815048869260856251804329393850922449074484321929411924133973153544279466120459020258460535369634142506870853846072093383070425911333799543829047880865901174136849943875757663985506485360794504082436897869230940894967337480248944030141838896978621937315581187410269809069738501483288959762963305883368677283514909784100421493977812362858965214523365135504429402040090537145530446400045637428640219998426984032048111679665296892365508438058820430048140386562090928327157200276749512239812163812389785060847651003349176434415837703556693003985547303173528434118668683171728945672178566700429622423917982153522309474128590276336547040376965828820205750366116583283137899436817116635429070415236014516025079892636061828193376574538942198003091213805589708452437187965454866375873055631671704854829136843112582718418280415211437860566527538492574773458031337441354903074316983465108845176653137239614865090208169514656173358937520750673754472072536502160027178015193305973493337453028154834206143669459182362922311146888935819010980666016656368877274534257464219003850375760302426338752805425620889495191089100994373251965635698042404746244803818550919536992587613844935263474981562578163809015240903298736481326825460751111655243132938143767774040656314331102735160340564978804282420327772657960910599825415442062617085313273117152225564879926648379201561786866248451981746718480691891704265360399995050230683591753139712748400455612980458702975344592378970172893976865329501320436184275358904900762335648012809314561690483094509612392533610828705940006423965007200600360224913013585719702012416438582449991196171623965671343395291802181405462968203215381221866385115564712080826892559683909962844755673737981006451195618780670827225022480887224275323615192236271511298777701214380405573292499659301163211685462033122190329558947928776372951094788138917066845012138504092357529680633002385044136887628849278969471829260178418219765495815298448618607686557328346729159217545894290741795973163929887701570010645359818228366837088562082145155190134826817014220644065944359552556574384827107053861564780195697423891549770022979669566270843950801199356392911841673086161900750398538713249863248688204372187938477803792258285152371472224394896008204031073577735495942479604771649300246007583065923019052371593156548075626289085301346230979672146881266736112970372780448331611342504524782930793863866678440743961790934653183956399303731284789806836099847151589698713565945170274120834858821814747438531008504551939153224124339349105175800457442387710242117599774748162169938432179606725543254791326539206411571316526984991558563689227385981367015535841963961942085277225217649608395712473516875718744724429265232838617681265756989583214385795341006599789420546083707925758082607098237452060472266366121191935634370317404014643732763164446910797105356599208375247709126822576821627450303082273401261504344286047409455862544767266929204525243446685831543428905261215521177498123980617496635703164220775847224710024301667403012077570338044955484034137984152613344786373530740978567662381475613887836218708253372516885420622047209552122395935793075875546194382394337499411076232865471241201348172094283144145165449334987714606851359139386198570566973149606310155071650341099035135984908794028316517761860298528092363224715770314052682724024682880429218218505963882681245864757505099031001851897974406827124485859817723736839093350543244463406863868168414934252196435636938612066718339138137170054614625200923262999337058276333022133371353161394767748159209239619000848535590913099263894396712813971113005138333237690638187739914662034128653022598116639098405273069854579853449955466315260761698398220210324118736921625758509662683152700923368384201706861676998852008942371112320958100213091000568347772035121129566296997468954315798688354772414301774258203063062612235414907528329772731805156198006823445485060653341002086791341504071597885726384272345979587390630436595702510483109849476063423651361150933999072311854551831958004028152053344031317298519204695146146208880383274900700073773244456167457473085187332919753704157899054780950965812081868171747578752640253845740384274710571158582130038336515694553670639841420731715065991503208878035527805662856187691831471279691342061978716537994279065525961921532136560624193485735955564635746779769597088754619632381342705293394019239114744711837231185371578326979130094806373503761783124948424655358076777792356191839002681144496638693866622967068957770954313527358697726651533401365253079801870848912902328808705474440646837262146754891381923942772457772088467803750458064800912905096794095572312822543054696234278402859021105671442787296697436035713656369261835529963796816792187909054272762376744631136098729262488543398000850817924470428826552908096470308269700925093380663714036819824362390648940286025324495555833594499383076304476775672057989231742987082475889934461796289251989665623387383206132952920160000719392377603402901758349361318645892798279411273651265107266953839134789511977756717917581584902228197299707335279439265907724423590055050410999552401245840299684142909747047305028893849304832729906611558683843471062522215607327128717580175607346339918992577497297221211693436207169627101531321031412346374739790415724617398268634192456282930190180349839649231852413745443638455307923292856819617256513631665875016112254303927313810693188179024100801792561959761520896066908932144290559991859969767286138004441773017429443987799524584016946985536750548239480880120348531976042995556278966388832791414807315345903612942351171274838894997352625492261622789165903837875722277902987658272697959173458262159160621049195706992559922912063455733905534340918685635571944483689439887798974434484531461936328308133563781092904830492303582256798703808223634732551600408177562587337638024126733381280926404012087622068655604577991939586447405958979702457316132422008030874012619061761356850256818080977750972689697664542717826200938512879825706931805305438011571024513063046664307074996350396124627030204411600950196050105751558300429914981405812601993120468174638627099583158398696956076673131557722822165520000375476293698032141774388519632221231239965034802886464671586120904357506564105878299171890237701877341985089149118519332807900876267494379475328803099891595125850995117212895582333570005515038827811349521503911758061754978393300699127722079790557252482788140935592932051090208348273198439559285082052359722199079830344783227624432821822101381372886465749479561549475946197022573583101902863804805529905542285017177431777136275390628533173347276867596069359477114103571112087770722876443367983629452607018233699851307710630687374482451026429004725496889548300217078283397501915607095721523845271155081055894710382272453381739540723413331517750530554336164280327302453127487421483428173894187995617080668770769562450406604137229285649648924211314945276956219567410431661496383984199084486320703269045781971008758143636072742291581343079283348008976438890900387366302399876081668026732787163263681678249762585107708415422282223730546586740022604043722161434043481943787286116035940440318223085949227293295008470108188867445319537813413108893687248407892027192917108987466097024583422024141541727611980888486991091591630559770207408221614468643082366544734629577421423997602629668109790845442006636519375301042141994160258933981418780049445927352955650597747936753934593849270105894720520378646951901662707378057776613382348511724559726156007905072214482171925170823667812359807589800559293645649517267204726948734444672726872237220101700494767325833375715507247413606284354462975058977379484570548304519776173093704967494011704644262870000988913725580211475990050160370419020691717433390958039941270565991858767097506282936413777029187686217471625983432992570498807628893872436945621047726200500053417092916256292640005330050318846602044384506288772954310391532486260552624301984610132355074231981295996551096916473743199293955125434411317434946132300365752743062142217981222991187122727151279018207334370235414267307807460374147090427207731945642076318284545003518412963710214712083004173908623782943191332043321667144424328330349843930149028586458076820220418537009792509189438105096049949532561029387769015356789559052970326684885020640892251742776925521140701030700481718255702654572798610723741907577198281632464516778380976130857283889086747216912934058476440338564992166743925483396474498040585675757998349977951805028676156055211542881136480836202908641601831435556793916883797994934144560952337978320878349999867102348356651926415452514165745945871647332167229210740942451538240315446856964412047769199590336271130027685319048551238952110259270252525116047523901212172956935504313451311759962955057486118960252301750958570024132284402542252076660349080278079136275150385497850005532222725690352658608514418688488501557349396076696403251781090872579496522052151754230839615912977119129795484202410834902761954870295263423117220648311958066895357009386473796109630324156070386171307006488775945249458407804142764783798647393957314124908517919095419103759034729586911780508941562309599469848209028962267219542474264277544285152438401418205921740394252654605256124478526839755037114740467895598416338984454693133689051373188102948171652969005673705863829585532981705740643968136696328387920908966510876592339683460562692300011945458746816703516724268506502805116918967861899722750833050017052325947787600158351231629501067688157313395037046862696529354471679021214269231384789440939315538084976801153492872371268086615709338340110173588764329611534868221833582882075877095550808328381888574594998563311856183450140768328596105034207791792327824990411710697994938877599200322382025108311410272485910930556617301153760997047766785353182894964760049369443326955394110867331644042514672979606617203135706609298777345994328017937987325434675488728684394003531279230586735454669320576630780838572080931561918518119677101586228885890707941330212669798626279974442725370199964865567733053776306194647550976962904190321734634155606556909080479926095967803578190397480813546828625173108954360298303827886474557023970675642054598767470034148128652693290615572129506276620364921370102499735618481045917719754801849006380461701511442327381287726688724882428277424733318678280063518087256831826574969313923274937325790422260233653411946901582640922510635903351269250594315757209581951131959521698438512612043228863713236554824299332213590901264248426078522566303495493969900852224453618187371060198729213773020209440559747139919119388286753393451491395517071515707744300877352279332619881132582612921425122078717651306442888079287939676939073627971659159379208401842672408558338210960815140034590933800690532485541301160615359608072901778387805179787725264628151632580672489101282896913955102053129419348337769140999519272317221371452020782848997757688160736068280431446701882792579412182706656892865257301050672982983930092492156400237570447579843587881432082167591789176683345492324753817649483744346392229528546736911708699677459810306356417731876642921407082351404562960306610226458327621412216612576718623758572189045024670388599489391722489193871627324835711482595729129390630024591602001908641425132142880592240505006345175148183921529965056569631708460316943279775950837085406636346177025649451873897748363893451819381912075902259822365652859266356087981887039151447632847694676289960318754547105092871185965645686259785024013132523469375345753862264497253063235530992719665725161614499720423718065641050449395535837631196756923129067043081128111202006632372291115160384114102440516669660711384452949248927765098450689533469881658505133155617614360756731744340654160350178762507165950101726144653444383351321610246773031475293060537830619408485432081273608882993137405606417124947584598701108292099801764294511360710583345316340002026701304351228618819444218584405739287272905447299256543128784147488380250471075238003781362754279663946644634789814066597853974491205354243798105609017258618925460636081541263644830962227650070765955874474795742549019764801267114314550464861223558391541414531952301188468012999469177053303948521888444596347867737241079075447867603144286031579952457794727370828678880889511443811482824896320965170983679869911564902183919272169062194834239769595186888129607988148097577572265052138371846010588884477698629790768413176135220556158144787710760775247920749973682312480695000015558458381762709025381599478952755958475535302785309481906000240306108543804344334967584938777925755213821206081082435974284803955777835084393147602602312667294541024687592666092970585573610535941396602209770297716011010715159095548439408125878735323215512353561310173515413045819053395906896887720150103921398249293997100335983609941794060368700979030825206089855403422905503356589309899772687850646568077113172312301565960447881144446418056711549611471279275843807013252182265236860526372426518643233169156890345954635882946990465804859542767056196213978375839038898043022327228090572407557783119397910711526053182371164537848856020834740290515118550311745841995867323309183121657773923535391077823501498817675933113430903299003769299141221961104362932699680708979276596018337107604617430562216121909221500651842796158689535853237602228056673852361481024596535946717135189286252928671896668374433604426252888064230903713347904689234612398511443128227665231501240898389285404864140107366325003628403964924700993910970034002377568594599451527991316369890589510293333050477763803281134461891830138403046594082511757958909626497699315879691081701534029364625150805327238592032224936409147517670541626329757023402651417152927293371312104454618278006410549365441262563893056754466830331070311139158627235572066136599972961179396736698781786502142531629789457123370126154204741322486872643895161835274760546845358995055504444498696254554960426518646195398920823053190007403365546240415665300043458083224788153514549991844086858533785952145863535275819169822725204391254687582445797752018128690013512405503147858297933182707856595414887970809781400849398670295919303610856056268053061414886707388669143421831303012074968322290167699527848501567699398504563598574270499331893523173866687693563475395503767516787300619542216390470120548492303794540150176173104708142937581163256691111067332056163318841213649034594241887628654436892472071748916562456980842639148555357430224197001945297238532236323973677291969773829256367860381426394030375898406570484697223606632035982897779566071370560982300715542626897360505519627736409839840203373854919483024710809700688742384113143031231493055596997110128348663614518307215905482170426248254903900440970007532351233398364007927224815292230732961396766376676797841859697627903418007753474557124208576143938297933374008864007953098890698880686206281621475275948249915542495690135439435920849538010039335972539786581195137462337480810159435543491098395671689027911115049313864438282097228808285956770377412206941964512351402264671259350339205959863378944989054738163182127084800126392670254375001577463249932145995735260890034094618998292256255708067925273520004959053907607493965130753806005399523523845865117402139705121503507934767432522793667308279564068115845506745916265902295500180619833473817543025117351438800993277299319692164799469283008824834141815279294965860906281614149734248256063454675014831704124243405805912278580499660789099891782894883882402669951384702265791141195524208528089094571435923947960903647898454365373152288196547616069610814709339187032015606848711565169844856874587268124215708414752140679183707833353631051451278565353037349870815383550037066489739989136201293291555903319326432225882869431706275457523783913007133366961293005607818810645877481265390025157989455923599685440758163223141183436844821124996138729551507687214347763186764741254192593216043938841722658339550824666244280818971272493430508119053838910014364884227481333142429998948460151968443235329789516614304949688013013923556276771811616983942258260284209932067420400221208984799857397812227646815477749069483222937290063718502131487635757825309138380494370417435710255425419653085085069995956221654776994393420514885159196952861861750228719103299663076847297562708823375097601957734386688103841524176555753069850451273126808220665140639674048265827568890236335639741088949688106589071399118578164613221772154539530544642808823340738897438409686885513059354745985288316229799120589506013610163156387045156395669601100820714944830046255307014541303007840952191472373633810351928493886441804263545158107830639392818090750525343537776819230078653614371817359456362404848244466284162842293673777947747123939366212696367586989950570679611947547593839496303541739923893894354806488331071028727921471613263584748044585939692299085535009695849494622655446283496443081765944238254890123323709613476393496073116978090311110025365174815007463849772823420569224891703567917616189646533447173610532031380344497133430026927737693753922978400123904527527960528354221036418029337099864359944565176006846110014275058407861520323745602890171013610771810189815553707136696893002779596107695173225247183120218739971888699346998384779636561345146553272028958343694963377840784849901296051870647462496198614202500370807695187491463801405073769740637990032512763585209370126764677749001059899877718409425856053464596793361646653273897183447089108414991569408959254829440315355398055029254384405617622943252648830808195715106961273478141992669826341545529826769486905723259462425512546200944404286240141854943745157330017433510656656245269643001842274441704486913099942333304140208591168609491588726062474899815986934073223350574775074892953750822888611126290656799677867971914306518275836857943533027488058237849432177154561160513317109469560014175025591622737645002375291212106205601630195551948170421088397246351223390829535975650762752160555078676214692397164547453128017900224430746395309124201370465553759215814667742156432623338223696741548308161405562087000752385642830482593355712824402503781286735353962980880272790170396242260923884357306500961660828322786881011024244350061664082285644338371795264241370944940073404974701714922821616761839226058818640668234137369130527469715608369083077511412427254450724439994290074824835091861535329901186545428709824294195055419882223764989115886374103022935925421062632450722540010911495042981624167206312575682138399091872142042521368526312212301199661178290935467235198533441314006168797738833021590865567025235321612968492667905291549826071597052145151604342737135630403104966435837378366650569135545218266634262704668706801930270774201481411927069638909639284008935843916744639478734534967634520321987785691983681572640329780813372127351182990549687624013118858940999556010610185152041066745037471052238692951067598712539959928635983285856368728468228838073508313030240215335564145629602412898425283851516264148926815572492810037314320747372796652971218915352427072113324583320932778055509289616569508712827768561222744608900847114176821013363717726077463491267955326222754686739220045667390117753889819652874970684978302526178880313909633835874441946547698140271211700472318493915156031397731398985197291561268338852626991040680510413009989334380633107753323350174069880417627448851979257649312852597150378295617640960120299233603217183333991916522549797725470619686706770099814644754927261163270073240524149753514810205493940870945061653437347802018100114063950502907417218135980859420425149546980203473595437505984205462152083839084221892494361189714630488770312490849611968140952111031381862594641632460724938146483406542847568304103544527725434592436180448255465151416753296357930194160666905759613124484877307416037002497037436302850129597835769085539258603778161015752186959911579972021446997059746341642038352510638903325772507186683076923137801441984457117554965469453549057713116389915963978064865059667966571311533294251007349087216274413476103803352115435466466557172003217712030026933766247467080394321012634897136356354942950741746692075873453669052313200255569144581883413405899373165906851874879046040621321257528925500033909993002424894873458223515326663914010011721138032176575049910598857479203532824148344275971518929642749000635641478388649652171956946572043691359223214487941348248189907550197503069044586513883543462195271522070036597223751696061671544545550176832307499409470653668829968278774144043755921427714521126643341805004168196668578297861602694161297603766310345117054480512541658389458903552567097101640532370468645662190338094788329854842729732684278743077032242224704146294914737196881226868725035368343907660996602579624783526381064180196001955872448796731524485517431455724509363157869623229215566852298173044252148301580646640193756130384041785609361226852830587838488256166468056459579589754771557667915415610801955590234669105458012305034116173696691502317677790383470077616650790110253379186630662359712241864863340575088336637114955585451694864633055591959645607701464210109698078492601610990267111217412659820450237666040296399316116915593648200196458328454516499153923821882682142374712686788588777455088931126871485076302111157671129425359061881416749183207569854091219725103844012347410055174760139920963925181610652927386593704419535254637173033292011584760759715780380341433155995905672589410103342091916755607293968875750004646948250428033057082170555222571748647271561332517237973506295070699126082955959291398703386982748250992372318421194002149095314112735374639440638638831742667521936736613053969960443368989808214909614071791625307953693853254612408966062080258508980149437278337985429889205878606549603971409376946596723479379756019362798531123487085375798114180643154042564030844142662277469257762915747634160312140899928396180396091594221521960390553905734508697266800963324863272521874604444781802644619636392888425812010622201418657841713797443277581192161026451806950473808498198219306525061318953210783760161108688604432691470613615341083508387114465382409403797284369425227172038144440804255571876543277222204953883108122528706703697488472665922770293874361183596327053494475449596821771665461126584938628125599236669588266549433693975413306870361785434692284168754222164238722443318520953334871556234849833892815579236587113018912689364299570784038967365040258931558391774209234180018927305759441310610255998546668431304832917563357038275364978058302990133230117468271070026576179913090179488974635649007588244309899687978961852678448640631903686553779326440816316365577546999172304156579784480462539767242072827650664086289941720158812901494460088176562790505663137507097230272417665651489032540554234220481315669556906780056432028092339355161430803960937620494576176337736674753773445141574895892246122124639091453709419947134122609098878934878518883336635560806332716798638108061423654971818491280870271676764791231460460614228655620178772025328816622596575940282338906355823469504684737351355769110451157488818947231654106655569900209534579465854241171819586458432616108244662120979379794358397448285729059745513244648868768170516903397998204827996382179438776708024357603427816052327255051410213500866624211707951209754771660698194321658471175954647833941339109534542385621992334301919465769218367901824594149638599792192208171820852661818113067367272590911288629462073993529322405132228905852770647955917656496908884096448162356810836864533676202083434150804641101106872610577720220018174538606775576603368587192226485555301266185246914776705079211346053698401302756678839833342011026026344116664859067652031918662631327405171568902942596039596994977575986830364491979482296545617715929274533189022405055936769585071986550391270606476449385622730334431536500697272878915077919025259512289676499759916360341691852160724560939505175676979547022301117073378900745849876307355941059111624734760239661365638676712414716776826200208947806351679981478061822806607958199656172673008318797719424165899949978720068315010760676438466108669037784534301302868227170203519436785955840276970120118488489585160261597768908330484507176522614532193562902525884301265721287734646133109660986691013376170010841128640834072131929623029123470463129652680746405802825217794785606708823688513787281372954336401167712152256270929952094648892666674961536542141153577791030817964606727003979889484340499539200602130862850020053386886450335499595462163923847593071828602697219181728543314006392878736165906613387581150353787990120891637127991087704250783429369466766523215086883918193408464135020036722093422016306643825406013462364915734251113309296550412491833378371614875697530912576825588762800554695910734377265289699405931809250299828453434103795320495519100709058740887515790298013739142853769874657687695859462616506384939704106226490673961743420970385654733163439521178194201676286378191454002792592812164136977472520679361080586178365737049284937350884015171087890012400937028087491646226742273652031587364584778251763901264996348527188179127496193781303556884609488295420103207553167558924919766847587028859873814322061278415012022596531365711026486514072493291480589623715965731587480959980595917622565008939281634071406612769709038471345921403217209567509244742640843587003448476202696931285229935681873972614090863175236774457546812088632442490082336427240486576080011515845304077219302921663134817735246460903523242005761620911403565268939826591936000102954239762006848592746550894516773158271306628635782791531246302654709642731259904781523531169197326012376272152776501236429167251366605372135792393129366367606298729809997618235257502195530882356713018699099207650614125051883540769634871758068771340230388056387237861496184586690745392574429421563667137210292271526591987677863622444550710775339538330250508050182723721274078043926971972094893508345999070485396120628917823946572341991418025920548784030444151880754608472696343251596022636748905997265456708166916572144434908348458393654368076437834552074265255607092882917060112294583503636486264513340519669303938862899836227441941858667448497605649118002055821469125229524664184743690188650343068779232350676730674995258762026564191270929197341141375714744446463581650252699561130706149028541264273242610213575362548879153742525843170610614192486264563536339428871136720080631597371241112039915006820114863039031458427189957520197580499197706835603111668269929920033630224618424915277261534939443744255005839654008557135075190779194306820858386759228231439326895731050608516800052002378215912920884528831187315964459682850793136668846153115381103029359059465488366777022410279757331645783112328723545236605428662850278656866139544796114698705806241020858662780250684833179020899213846154652899117655495024562781155319855186576878432226131590737852756375648435893884031686849375324422787338219299350362897834082366351704703272724642952910142948986213231177373071059646401257150379369367908686491296324148824644377265871834511678972553788579759751685922150115820131655916576466684778778672139324514133387617559838841400504662097854457600479872967109183252469841336156680740049489301958175712818799276767221599643579900657051667445319522317118448311852940763068975010589828677739672896173895967858964100851961887136770095596511869955269691945376256323019742417928275340623185354831468931567055202705454053444359095718666734229473478311374738819835790407088061293260297065171391119083796336331927754884051428673032831116048125845895808665907284597572717416408862459906121744697348723598044750338141094392029717273811142234955845040814280780032046319807861014205968002850114450403396090801267406319039902579156400899828021024203040335764063479943557806912573697030804992093589823122295657151188494432916132259004319398952451179660017747431166709889766675547074360416735449054975625023315337133489958415649390542958477683186474676973684197265251040854851179249574134181239020852415418859969674256911479886100673844029036890904233695971146248973630523309994132919164532893196686293729102943804722260979451633220865840517738397880321342075067845631491407911386603417736687566722410339458054299242698570474075381728867195219989848572340439592277387674934806006199661913696621063930459320530800555035957374684202148302204979234861814146911399341153323175955929622242906810506906431562168038393283017858038464760545651871834315749059519916726062783910242972387427510364839749454206712990916848004538407872990190575882134217916515832055525899824286221163634561116194908015740704114628672622817403935593841216995772024225334640622005024248238309681381037285693317016452424352687906815819336375738141484552632800086624643484162685067097012076451826900042104640374400185707813983889937132040425203672629491186693092044239998584246543870991817968804800112044855188540266642186318695881124110767541723744415074542841764292455229191795330993768337390475094658855377026446588037689351580708006050051766000797380706536203354732435053840359870043492953388725376133824271006114755525996863198454805373856856852915373778916137630571139248539928481035129055797353433264076480251111685698909504373132273180124873351218655156652858140475037842453884759320336394693294021753479829777458245691641114534286236039583916995743457688870827966722900237039364361367463795335227153927901312453267370259251950676653558926316272421612471411175108656867642516036981714439129049447275573909715985057828815343902496427586125444861947842425929724974750876717318518381166323190600526082928923876732195175862170915508008091397749790175038350135241027839596156598203828537443921056986490172766493072314832068527544407636216223786302488335423363484662591763477211045120679184181046925638877873821920177827717552224035449302060580664685785225150960233129698829637115678628431182831787531337666411632676516434282463673474189007465104244244206075524005000980940982780140156333882320079923637367153779197197374451563381581216824666227222363660140710505579840327137780447080814532440926027698657255743048817649589852250744235165650919068949356012150523341812861524715446729856317001121468181095248734072999745039575037849316271508019116367830322817309989312734854537472401602489520064492946199858597044056127293289047869607037685500539294949693231869434109824115269962892522841621348640130379281857216221750762548623571077865565335006895197865243856812548353838332846786861870522948527626197674175673432944786879518733748337825136071702173017242789809624756142727174297395474178028758294604875989354606927386071363688586455820307472441626155926950193785635714382450701487904574370870834226761308885118179402453424585037991904926737059400358559299495139818122059224367615521756855371786531953499958590295618966435515139261908964425359134828880431149072408555059374323826203005121177435351450810207015600887900260403607433312640079757773316472247337107935754371840247575155651706356707635002346638380577286959341032775174199593479372654866349350734594356813944574740423056945886168027689562807202073861257942942178016053532585202047262424165289823929143237310247433636556839130742893836683640859176047869740957417406251587694646255327410429707114032957371474561584531832338332033545476539243652417264105280814520318733107500531779129838205060943433623075898282565415972174374994646048011026831227331529135450890435842753483478264501361124292730300199076819365215825588312803016553541564389470494148577098777733758233327898826890957318029246524146714609551001751269541047032327042443016802998010624275468195135600484246139715829776919036366337409452322401241954366594317180589853380562545583271392010872084260268277622603877888495867582282783077343928961622319411527072129378389741615626157744718423894333721437762673197913060443016859191994379738921581046923042116623607831678682939956285526737258588667262246634302595108122576823080427355717369156759368799257125513102501720491056935809439879637721724623647684372926289994178355213893123328215085107352501514541173626226260191591349879607845176441929692563767341310165380647241071715434659296465013951617962381580784020146099840177238114620434962698246122076463379017396868890685383782281792599252996311550805601317332415224236461695896737050283418516641092065908535404203017065348131794373995213781795211762114343097489824954696544750014787692501354345121138152717634249840516129672691167562953905981213991597541195266367641768055922696993286531213244581933984439003109564401808557839818154243707440924838662452357892026259311546151825757795988646197216666742422918294943504572977505949228815673056225028220043950496943644697478084398564013162275792852981066188717774797315263271215595505090715863137696080993598755586542406665140613988019972207787344511678236594721385816073394210086689511809457098083979739668680220243597645642060708473070345803198031159107256143050819356798048937850482740620289777532581221580880018198785603399901514610861740140897499544453566639418659707874016647893779471735307461623043842769829175766178342378470765836564149488997257515156582417622042148017049459469214930033984948249618561300129573231713319462211255273031158895185039372091399087054544748966043635364388945895036854898113398816081333219540680297880731408061915061017061300880821199013168294045070109084386125414954507283982614874469752402176041056221840423784935472803513178318579824388291771266042396611741669660490812215636651682656726578324835748143172722788639819907296635899404394055841199677182203895059969399838050307542196550461079248841056112832830328179974413500139828068532339787345537652072909122578976674571326441236342472916912143104108766404054615066762186378885170909631670346690461264354043882402209922271440532568608224302736778962200954863839314199298641404881357763118561029781911168293868329791024237105009124551252692540162237437074037891122769447811741900133065508107457416098476281498654375940182570177178440134102368881470395694745767972336123512916489254533966523958295900435060942950197128834953309391816446517333058423397056868645593808266516756403174853999676113256950454767572556737288358772622936275887021485430647461437486120815110951105753429525449025722900263820486120309969646824387162105705643043995705156735453936167619297387154464289361821937438299745158507081312391694916425255339353372545177954765155486875099014422144298126851863633526666388578514932727754682853298538742972632726331809302515260365635234340318519641678303641666628112017569524782299207764431542198286646668443522806769648662642933709887359854981092220704490225701435773184202346384010055029091545730884542181851853483399952973854641612793598058928267182617974932316960595306432603273780740716837841633127633591013954318764143887032441337529618479669920734476581163397766074540739701279184333881425477748000259555769905770341548398598989687077884658935641789373585916629761412371902921019522064338109136553816921632780045711446274577547458568782251748090766924111301983796895038696274884702257166484860843081986486187986341044999722194150709523391852642589798467776585901721555959797462353381004660170504816950235092594156427979115965594885017659955301691094246120815470450095393123690739527621310637249003435192903456123735582944676059573240956310271648723943070849146954303776917434255135114701922215166878967679508711396209639582615054404830467096636310325587372262754452027222062342286812227784282602459704859442705027373059005197088635845520057710771939277544203200024521240098139645796051063706872231276567829915416031777482410092600600343460334049588344321647244872409212438567343478557004042615060890794657621194105778193086002292451117169890719580244327890613237788911052235787439165006419537008366036415490581171538613972196357956903319924232177911088698439224003524929817247971868911926134483679589864920560500443952937093628499653851064566727518529120222440325354969013656939424268037591681172443760341250793369114563514581150449966297632276194607276595801764152315913877776460800540115071749832697419210799879038753074078389693860786394965741918284764287963111463373728578785990738104768734862522779093796616460353712722649435266762371091183039645347564371150819990162941380069167041995390869825784421426991977566320457473824788408549627024889194486200863751201842551525637625724258917124306186325909730233017695933887811780199571200049611149001366161207949960482220658576285732982007680947698958772898907276270023292007516439056198000999120727865796313628533594818843931632321337614512673580583133848821647706971361882840884674273072028831910763644093404997973883818308251957084354106696379096188476362285596874322317129677217524475762037806345989155962264061822135815950266231563058464426240929034993942633497187255184126103422699465900301082936798057249280908216831956832914899522641872308950107607811354943359413863283402506715003300923310983604263818205334506948621038462831257517323242138592584325427903116390906134352665692112902628994366172994595961172556363563166516407375871629001840504490612525287580740538901624167390527064928314360909196024489890365112445168424685419963578051310448888030967390398460802299574276150971453935942486113426245023304017834587929692602079254913501982069560007570855223115531521097845174187673992736734509540702856107787245134762587018934351400114055367935951746667404160893075601109165018283455888905415422616927743783429186085914083710481652698053930324166006112781583454887448728631382374268392261662870973430447936905290856145032013805712215597944443274292536663742752791197482936824169084604255899311222628548226200431568196843932311525480292061204498657987259831958698814811194250136067670066834198012111322446894752808167195752442788839578215006935584380662890180875859549513731668748189962534989944836803597750264384457373030336983444835477461007086711960468407722689192456632470009618305845840172511908268996433212935543684952499806768894853433524735683507291416226901743118891395218462139525293636157312795174586392226550365290599652933716952790543882311026437749089194548770466475184242668290186554254268405626259765443597559002722906413589213960741943867967252438690104073047703195500619025993759985124184710766275551901772302284563624602586411088401331554348447933612003266956801701970392746417471622503510234272182203877524922530382158970439304735953006237205148767561602303718898774959837688650430960345200382345258508530693493750377520196591389590942783821042214057814073635186019389303259399469633372756962597119754701936954917195767655390741279418312113470629123996011287735718163490608935071531279425047770099438880941297980078049055117309749047095332899434518371298797897877158377337459156286663858840292220579349630175531232467208871106121864696716962533040405247106626329998481524539487251362508039025797143321801874780959843512163966742980211307673649297317642062647715315112209938133419375989601913805287361019359540958721476829685258600563178343699878594992986690142912011181414968658437056652779588252472215027418586018646258510322772222430637394647194610441571402291951474895228708783340281037392608140657876628492426397443875142124017695318118402224124971005983858152516297839277734743722075803716197351401555151034294386851052465030618037401091324781762892595605325289193766609560263177050964389470013844084205296087611561478707190097833858538727570495728505371625092692183624176348261963072220453241228021049608255257094785084024590671463889106345966943805553675764867219514356800604222773832505964727322234204746199190224607084120043677786905949164831660002750681247122542789969630577024829994909018258094894852173350339402668014680225989870978306826653473303189991931319302501047930967690984184098950309294318390526994248007412474033031426543152854648397646285621035480864279917916290330886302495602412801393818254323908023959120799956549638872732524985226176358612539054162119915425976450689061960843720315289692594159513437900810569578738951752251812698479361949847095153105598128319295152281606503350139327020874231485554574314703432593122821798973404360507051230424961261524175012610856684640708704346353611021237200636499770896368717410465759978338475149503946944000349901250994192697748387751269859085064841591700845208331515680304405998146334277909802962347722163805317956709668540799934310055878052268757342944069268446674964460227489095190078095667545634540839529191964093420696633817916481278677553453553042657381819213390049981111499601854987802889467271859531572221231324915246134453814896286275231074112577844661901344326669780409561801351494407107910391484605224111998432125848737189875607481400189520069694905558953087240752385249455485618473943588419366965052347284820803594084266407622843165136523030529977651437948080212861230123659595517777498632745759878255300811873827813105773530676028215885934812354484299230592471078324029040904789745988661203968416924905201330339950775868537869354566331121607480755068051851564418838250568393263888825693710668049487265450055428516294386037845446334861199464681248434618288310408703702180415065071120411252911845450683355697758869179003936492492645387505105003088667725950580540137756238515751724767787355546984778633406383430756919989943340098113879814022888851854873244903316392027214526363419134274329207992139347761728576829007443982125221841607545632965887511212821163675890292153812543156036921587502729627158681169112340192114288969900194528608201018732114393080622783028767010870797429213269157392748327972145451884938932966332132385923160367587696553906705874182684163313584619312064203028402344192389429082921880058853903474849253201325032691097799859056629624321527324725045714257384923585571935219462823153423605784457078045982434666492662213839685631504730216010050579250291563877699385277320717845186374230777897939794363249962664657926151475437928551216129896801670361638178482237967613134716771851064545416392731304118732209347845804108640124416097063012394832114034473059359664433103274796301977588234266307180331708919124001960536213127553635158342366859456209465416438869878251274188115036101238855739013481633393337665657623156135213097377164408344399094712876141620106944009247243226383436017608895734223049791186578569789383534087247346976857240173057751530223358432736220005775281380945152395583406626594412698641497589811821436343062465179912945888337446936808841181796565262903525434722555643732140825078360719104435783724921892781461902636825086332799109195901749470437658043250799656385094728663679289355453253245312526549154348484149295507609315358259527334052901083991383409159226785480941155118614630618432810309020193662216982197433443114950205001725500077767164401635969282296734969544593181376075356933752518049992845027526070023000330965144362007310037109441882822249371503469040918566821601509464728367997310347071665439702785735649839059066429868968693208225699484071526128833250275597621844542203965173874329983760263686999539150283004386707855153794899327256721891084596593052838107558232941013584304349519470269199113615927957761395490227416186496086380451126128416071543707207666607576808618977592417500445341723583293775116512106381183953130505815298520829104498715917513180799678336740276984194242094536398064897412008203304076020276063399106033370022141629657344011436614434611238932322803978607917091398687232605871418899633795365234785915435425438345758598038378559432546745742027425116870723329294430113278249842594456779599690322684719511341060307044346330399956729318973197077413434790055710572966820506869344365104055504357653179465819299870673163219444449182715809700583431475949282080709906620113162862497921311690127585304910938056489757558814208261009555759716529275268392934558650288777271117359875023089239686787376914869515852030362000074756556908837302855956202730626360874741490026478879646615577357278383271974409926080533480051036242302298105066595315641430467931082385570614565411691048803006050921772362039783770258727379659040369468499569149611849835358750918647411654691355719900917272942422309781495813920446497409383856629947167259320536675517572972233954553289376469507288456178695059196589913215516192533379457882554473119633710734733929423352830424999612122527744682170643581889074422677584793331032133748910229318330791646279267388418879118402607115543809681083656251632601608021174466031175540068799966984017657877132024133353770455942042064449809601962990849613549231693760576802263956101185839335579671120535546469596365263459095044828682876869763270678497032091480715556403686938576177116227183028702889327144243870084216484657898080377643342382015013761068469214390593334880954661541920889594238867398964727879598375732694737364230163839530968092014078369495765386307434944080256381418360579772736553541944415716139422457289143117284296587395367109725459581037067447876122345850453308435916060371616557650389599504768927456867201621817940180963049574497190553093580632441034814236337409713565126815474983102531284332333202923716037056925028230943336442910935950631511989995316926247608010372161135929468181958785956118645446968499913533776209489483752889592884220354774530236245946407831148519665062771782828891233269980578667711211562570214314509096912348265329884420955582009061527680316219131016569908726356166886743619566012626348073872601831737641782279712431666469666338928623469082354129249631248516210324169793632357183891552004108885250766276928017092659920952007800255357626939640801546250576912753458461832448170468892148491464338233487785769026540410259626327331334260346288056004415106344654345459651747649299919389511908563303462244806232128152743439966582835875026991405060767583034657235993669633584030629870274903170742920570155767302416529308318084538095294733321687386944455761216259593540836082358090002097446461416466459348858311366782997498287401501696140515270944420953514240840522111105299714914728309121924532476234045267034467170698220265980717377496143176327121826464786577216911052945179409252362339012151687133698927962166714362772541152616352677789626537474694040219513246779112479306759605435768874832979994220680892189800890281403070175622775865675599531221631710666733998045588111253334366393290963065114839725995703854705057164763527840514197519412106776359688855446581034463772747183296228308476512065289618536757560019430427291021838020857923121857402103543706077765980770170516183903433278159918923240168504971953262691640288361591266422307582542043989327872714111913871479935236860163981426394587063669655880173284255632605353111012864066609288516739083554682589344585951432662163868913152183674315159889486176910998468258332243472474134710635460317175473469600989860989470172579911695530415469097392639336289841240702477938520465121178992115011781933154936945428696056067076693584271171327968488230135468204949297035958118416541830883369149247299473444125202487182163964572089985142261329997425922618447985065314811856528876053619620604185983538724021968138525286698120230085301377985099850061040953228365955499520241817278223645006999784148123261796523465388398073101854729119923089261924784877485551578198866030955545902658745800016581475459698345684298645432495667502063940883710297585405181840113210534383947965965522045457732266828960926832535767712659703711536604936639815326225941592913309103953835683661349041979121306810658638346429796646767382612845138656480183074864152096299863559124504141949423473038480839904320184041685467049376517707488720106060182500511478172700383559990496308155608434529540779756343251280368382450475503336734200551911805912094640343812058322947502085410067138790155611982641423426390085886579833301271555146065586219646385239409364027004613355971900010229983601939688070534094962294973857554778037121053633550152627467969270797611185876217901123062740623824130360328981732809131588297924510563528318658871819885481582956278044570433256320173938636321744760417593333394457848507192347780254580134585870238112136173801727813544578250189226100003900361159998774463481771231573883589144016344885774890630042025457785229944783940553789319415941924487817189297564263469897478447353390247267606497703412743035817766363591548668479369778154937413304317610078983937212200960967715936346040107015213766208221185893539359849612508881466638857434592206322010759675475348602187156613321161529820032508769416749856443709848369938414897804772057099378539209779239444618591193356569382749930255398047227551181315609153345935427461512563292931124132177199442135591660441460480162869014914533441587087693186398973019104525623644566584394505462162379398642467599410663925751962384919564708601875841249122884136583361333906384697236994664050965964399600602524393462467368540911250823350176383250342919464715349254570894079617163272638951289953715330912335611972524998725923183995370256858292771412161663171309297304210525712546378184779289638716331844699711031401853366163211201109242757628314578642079270317502692150034252522357696020224360337351352935499218999074789900722808539743218141836073982176690615216305078455159736223595966085439930473053220445285171589594080386661988787340678409515025870278324188996133610577146586488051234659536393650446611711509031182366470411207740308803602354984237927899416211859835222977371925782592170232672285409667776752358585633205822817307497625812939393748774288643118748140048997768915746464797936980407930428394959749104944168166162031131138226265391991179318322768507754398744199634556217447300420043256386977547688172273537206659958183594197287437332554877943782268739372900472284813173091784100664434428296710825336884269000885753014324017138591285842880088100092616958442791248247243259563768781156049279167816789927810147870428646014907875291041080747114089837042848735334638859413368595086172932341076284245867789680288424206281956869684207944666732941875218975903058035510793944881079868475506321926987357409628324708804463290358871154420585995699390818928999808763156015836920954117180938092237320655946964240978087539742173996593949114815142284199380507894520560823902409228756593337182825984494343038790544287409934630751887359310753998863526318806921454867007276240961418080619755916335959660757804435526014750629995648084367297314794926772630394931640989796398143150686402624468653306872735744385910986333246413170980247938326482238923329426407941467381860111923783087798400811472073710928730711791116601368288681308371407331788359875048874166342420142730409349016110974221911936559234923960673355454881756877129329422572646216120294808035945440237543745974257577283662836861031906582388630316292833007962391821027996968044863985346804493346448846685198401407693636250730636035270416991302889663091377021490843712048156294130066160637083770776718691744789059109440485057367848426500322451606594132562666536347088422158541634221684366246700177623113253532202230303695811081033995582863527291342723002207596617108520710357990460996863387016117681817489589551842307098068262484648325759070244669656349088601115647253746842555199050553511989316376397432218415263110615305525592360368901875604960195661386248273932865504847189850506696527448368910311478957879377598092026986977374867399149648970818607679450690105407169844176567750282085714485267191199073848053277331170728297101136767117127447667571862950942376006325707036184503336023277446315021599169988991939071828548687691562657890297661714146264538249152383868817987841998966667237752896245011071066912134593363977423644403661679387853246305230448402828782858922959425206976102265981144005212031574290987827339979884770203948202265404535121608281441767565916799037764426692292639680615688111886854988245426082096529400235881057984829617207037912196619365071631049740136405375572940748421709083979969117138058109134361085864373316380536776040950181763244449725531630432578083127458125494165078550120596407128241439586050812004073767257105800488802963027820195425822141627656265847981052045031523733876953098561902001934834225069750703639598180412211853398195119016412286223400445199988765456392110258875811531803821347372190185979558954389548854060207119836843818266648966175745346693882685026389968754313568347507732038851497687712417965110768463510309222183994053209246748379372832907920915175247991545057013925920379852811225028399672553701158172093802361616004026418650860326019162929512984822738251300197362309035707610514863538549194706156034295096805120206951407654616341704214113407266222575677768427775894803285672853342935749107345677377134058561840495417011559996109503464804384722546365345037830308247517354096157608976255782556849749896958512970792371427432343778020118661751362415680429347689993516496067614555030511548780463277668043726020450836801151364660269525302269160898927544169869525707953621255137863144032024069683157969484249026449525498241690474684790299177936651345809606843812658273693531388375751781494857477249871053928021704089163038704364570147042773333597601352214903138604883398488698735970558598938907633890300740935186330334475629242708364308484146597952419016774913225713841946550570388188399354726411186934657526810351345305630318888044264985333706984670102858986238162669275076774220743326937874649247374684208322107676995356764439272149959026494179971087673863457378984661388676227466433695705934370589717983523592742843392768606334006930327177120089095166052214476609724580291640025729578377982793360489753879198469180223043718241840301335189814331851867398255405422521179957054119600888104172104283716302074118219821548686711672379858244985955796347838840535704935333695498488804422851261290087110904493867676029170306526804501028368454957831566506365202965480850122292255801882399187382823723652046107170174155850795770124017631156728439010244690876255201739974112578073359292135177722376836394677238667024151145919818996605667145072745848790110745326103382148474112198700203089502787464961000726485974336561581234995090954584559705484058793796066156273741009594196923894371418821885059887042825111822933800947011620761385448717174200657840243698817757178163740314409701121759002488456104922583811297414403800557783173660759000087944348124289744524161018853807443982094820794706940124076227980578015774052715664596490358519082224458530106485464521901553331591185961992338116051203464326074548533796570896836209081853037297338855746745135865994787543933562705983055217041065410962022655373401980138793356812950315045326709504867640469687328600038933865890629405144609790021222075089289698673854140419165782192164497604587079614546253658673139693953815916453793340185146696110989287232154918802217451309710121799875030832194693909467221503596209586345019832438786305299155447927440787295023167557771983008386048131796780379407622093164402854842775252803336701965269034592261410800319870272719447780584842479558516418520921059086830888248687822117563751617350011664146351472093037693702945108123824816913889917850547644682133098868108578542579923106057484210424892672776124895834927075415249291437172968181410872751103921551179166157162382167155852959519494801119529483297701535820254114691915209572662104244147592557279503047858551366107779931801969252970861991410423411919493619381995099816542920906887028082664834971135366925608540414198854769863314842379007086639846704065708338030364415153103235004437204509067732014359074394554388182849797821768962699091547542990227676551088559440129229638094622831405578154013904194640833153095289556915377711325433791757097954753812716718569742689417907979411731213785902808166158511849353441766468584978656265098010113758139873804610540403037931697285597943146933861985459914505025243863868992353320161837536407371750458043189710229892169936417259504933151505480303553554188779621116273613337426557763045981920599746955847793538918045946900887246967661830757241898035098112357917871859100073890856954527638763369908594496589437897498565853168394911307942915617774833609548642859875892788073707592970199768606098728901547445656908092378500513724057422867736661485143422243112801198163073118146043618966870270421436018400334341879375065168410917684509752146625349709622440263091236361221228530327030730973629974359846445908073465978190651219559676794567566949954253982575000380336947339180047261576423133798556145705657839957541783370555724410322373419822454069952507338626991637240944748433305313284165607556695875570407623947531695684484347335464312305491724969434099171767957940314006130785177270850419468289686469591172584834815203493169196227200070744868195908058549241682868426802261122081938549167910167786442896792689491706131950831287305148942114170519008007121643423420369655791249780269325933731323917889077906497364620704047754121520216427440444748630543299047138164889297235426169000654398228481853354416978429144856517015161254280486059680251725128162959164447750605442567746010109499868080068490532238772411260960110643779264033218990960331556011755978813484317199494614391627414295111401613173897322014273344578747119030122221808678423607475839380019117732830944075698125709597015786011987124902622308402741976785217882894626601878298284879335140743139139411221519742296406292095987813804601105742539421064584774005711531593373561862742406631766047433971739825879655854134447616464183865818151055981419412042728231921697779972721869348104226281135775014709850355341810162630009184213255824402402479475043585522219508898148161551291950302546923816554841295331743812468883881396048616666521459251948159280434834729167614343788771976687006253609224378739647964716330534856583540204467128207181436683745325617585719260764578695358573077179341896220973586863294251414117431088452353876311670471715169771789250413800024198219313307973173964132852527893039950422048469945088806519244675535940615497930356745222340098224718684477778330471879298551140005801018365448764135997365500451925133053057829900799606237599607148703805703664391657392551848967281349452485078016769336195986575349137570621982709556072456455598719319204583072491941804215993642318266684309576899514781577126013021872465761645717987844711125006783547925212153725967196917633310803337776889634590213773299647492796354302020484562235494748882444180971703092979798320585996594525543842659580151715234373644310770689606241298870655780892038039936508397287969153248094497033735203828135645064819700234720134027548104600753809733583948583998850122661039164762679424228488757010309439141254771404516644335399235574537141288360562866208454673126899773152662533811238081342249983551890267826563390840817111047468251558032296531541852828444116585861460684704384263077630261375864897727733268952568276860591754731132986825883542958400570848620246330692799091752031144918266855333921258012863100603502719544007212616992325578710919969533880396702970634808581308987066178651781131678880984151536410554001039733906027807041026282581720150847961323197492886037691796218064798390869912457094959699902770329357056879096748860530731430920845898079112049380937169667253709359163982894913556805483434074392093913488168929341435358501625036666636902714393454246264106159743581694084232322749341882269701178554471445479450819346513084558381647715286115599097244240641028549312266173892536809144016849648209644081829755156120508432878582170191489389504298615432504591492777180885410407603242955086164874133652967362278600404450027849267146379531272016611628643211354494316557300038272083598546818966402512870035081382766678773114361947449855607070181496396232573478215291525555440247717954350399238235796734312504205636353179415304169530990627105920028462154678365923109538432050902312044592792800208876177733419651379557909318357550754181847804608166420130088488576526658655840409414210346960925280756990686872820752520492969332832958446916185165210892211745204417521784188777997120658255268142535391846771966973424195335653356735271470023301381432429212764941062605693220896557328149565705555339300906778594082919104801466640339783945819037029047001255623055339329360822306496530734885580003790872299293299778229748743775154864471286867971727924530107366731175441667372200721139665930484565426369005103159284995585297545918535732895211655666782579273066068211166658811329318783789774480603561068359400827955869195757066896311415167465115410406560591186977788345763094798454467275969870738531469477037253409823610735273062438716275667860314740626628390350802881532927250217668733648381242991708239515899905399173391085492346326374958974124284631043512748379987641251200621875090757606757942798798906515195397971595700365652552629323995230653970292152872885302695704623987459700109703670832995946976870293528481338915036334120215607519741210298722848145276051910783392494853651961052565052132103777190268594615537758640110609033024280079734515561468553834685716243481148179575497387833224581060331990799940207181687686230495146678725247658405998337330522270401780046153242620948634778030623649219452747128936014924530778940245864173396644603613701956079538417147743909331878086761492171663813108754621760066323205135662324178168007679675818773194765945606020393738342310405281192657040537819420482343451597858893209416187094773792474429162845343885176758043996521288132159971342814349263881581766678079571507254296932249393879029041239054924459390314021413768476039493981063608350132019224153740720734111018714155019988539486459252996777965501938655223427191443382224849847582003104622893132073346472312848038963523394918084130412468654111724710446948607813618874409976226209967768810488813691266424281004430281304077582411367423187020352758491314896883659242738745737395168538384079735349595649376819070350419453246024053574973182347865545994861750682727454146427271721933116235005798362835867469166244298430273391049467307835085739564543212169543339697465755822658832407803697528288497867048669174454795960849957227460498935564305237971102388662483279824188534455693109530728914621246895646757674466025849202568645559015192111335704372442636623958750986098128390584664095684192665653029934330785511292261544946700449969720774878927519370757309274027716398002847103001877054436185972979351356315055975093728874084249162114039048695083970367235188231673995631834079080432037697307885247189621763196900184160549532996409363993557310718573328454962485329667941772997426430711654179116217380792858580646940348710022648492339764268593109825419989698938591846449303916307077744707038638313815747815567210302204707057148019579457665632619797596607955284274528408546219803323103968510541705701940443836151058653489678859704805119841240750951851702844837447135552535297278660868829721700259086192207255021852345897343518471466578912388588081090740256934472551832285167055600983853343893265653250361536776673244404093276899105293533392058323313677445550291387505912875632543003911745591498768301333298200442122255835922503296556318002102612361209989865834001707038023004026012644637492428346636264412781824818816152127483998665147131244198803693544136904170474030297874570727233714037262600545525034591343171907108686165303501145269555477193377240827351407633048768288243176145534419977022003399607818254509732318697052835088133041381984400773891600165544722990528259605197355447004343065917273131401226184879167430472973281486952488607300010440493421880542298992957103642969429147885092977826290525231214473139361178371083543856378267181585751430794114338110799645547127707724790015473594926423825974788743390158177406282800748246677575081186543599934283239092643202211638000787886811439871956613327782649102856712330584670663686648849999543121749620986517780750782565755554801954510010188959976258556043504458922836006208748342302390555586602237982088828439878082935636290875595782411492550675811336192714579192449137155148416590375999655067728822717151697222833752263782065298591667548412279409503313072236970475659926663934787875311016918975158589726471993259904859414444263927604867412634627819846396490167472748816865673710766946610769884775307264287117726360148384573006323939057275464858180760730531093698518457443473440662935246706088380811389255668055312920022746147869820040109398033569675558027250580415675547248663985974093748135401196212869400538340934988618922611975537970300328377800849986447765057467260747050410167431014023399203112791775967562774473584462676953007290770596733380564603980488311656066013462501238016357799910866155326458742494908134268354526789852870262790473198533262400763146201718294749038371181092819367159518948635112005035441258172509860203920879858429218038439177736693309290366809257505712939165076122897182163479926445216732475431290373930616777139319867205631215154218575792686493217640857283402341400077243526224488044267112129843357594273205765202303674424851944392935152049566611022596896263809082735686028462862285156154536175384358375939075215596557290466052305253697391654486041209794455340218577917017541588364004413369534654566739300070778949654316490668168214230430662853637439253094961443795622929856200039993845287920788612293644736760481117248637697688764094988372642120493160562610514305448690040394110984480211323583168540698740198425475327058467251680641571898534731897762666129209120472016061669415490743765079105015486678072200560073661281202660234490496700999151367669535130358814778268363950548957186926546477661610923596104724831927726520053823737921531464219711523125877049907274412533165461257687699557935047747932622134485286771866779611519857077059891799057677510856242426143992239589021484330416958708498116287250654460398823990892304347747550546675710915106458133139755055002857642835072329387675242234055145588190528479441291464317382072501117932861974207241552361058731009347165307302924554887569618755847702673878108580451280262613507237950140170156388272866857612661753067550820569140991366383156809140388351093124048807434837372232635859956189104393889798793666567568639436953415834155037053281223143740442853864703970943683926203428891159432323339980887001115138153342275119531399559885077616376225456889981991475201695878778815311072413461126766356373924502035882851003550962985889800762357699137924245483026833078884820215146914535027400475754935468030293819043915585292710583171011682329905256437656870491912935779484180563815648442471355868693994654151114887831660678738291532829040122120601987465400912315767898102664256409998983182340982663173800230339814631788274635722398841468778585141813254361309597157817884956501519495597616911733860189818688769163628336243402363327803894567969047325944517805891317587081222389507722505032369715073400110798051184611362397966951898249586387436120609649199462112433111610149827149021879065891999808064436331665570758506333460057480443206462343454083618207951339589098599131178253326029996454354484105961136116364145512808356206170039808664858497382012461898653170081308211740392384371333000546493688837582459864554130707348954844076065861663876811005530943448011072502194298132776874478996644178341409224711774627931386590899248308933423001500165045288575418052937998658564930256861262229421033318253811088936242409652989156632380113124340148566938046405181574597822172938400673493823490270770543563223181028906124139726562671120367781970609435903133865188625401646742075145817561045598223605260396807245188737802485044117381910383260800666709063021397487754507013518970633260979971863388384869174194193699972663012533026652105241314096142787187900462571591299882272116380070809455513747481815295232131486532146025238077525544847545192035059059070632094899113077436878625616816046939299135566123739231878172659723650973264346736222163444466423976637941192506834720197092486175427581839195197659603670633866928884742592948762162061759839814497365795540352564847341998568004256327046046659365947616697057232883489069419237797166947763059671819003656615960042934137533248752149334279137677497730886254868308733634555277550144050080642353037494781090042513688120681107326489051121861523865282630938673663748292044300601638484702604152784012996361801421618146654751266814889733369193452858757235787005360286327503230808397984529821005845388352662156251031579885675327036394185801004559718198478951900398841753565169954382460679904420724280560883008080392377072047971717846319811866963161322421557252686062884798904952402587775120523056093765191612832045393421668251203208528933359651214829159291047068821024112050175304700726387994004615701274362601597631629651759720447608627242731405962304726638426107138025955162464128594501014876129032901394258590481656008466488419272812687138506768780455172156841354835798888120947659753630781806519863139433058677211225538213440075001820097702222746168839696134105323468697804965826044340589035559164060733713638262761432339116882564148523600892250823731834603621996407352046143665256220160023511651035803000273498316411153002881079089951637036218730481348197177899088886675993344706441708599690947897256408499633280071530055925962638243571685915399283133524922340659967606062829783334390493750707064815212318354708585671661751365460750567262016357561305121669382974039997863463502746898907364410730296518153485584343927943093706952154665301512314178987478681774317526000030722607059762853060709904101318794184349381970225322389147929605708607982695215666787054705551204162337269312827469083624171306704883396550122490167539122775523059068679462767328575352687308474538540463188381285798659787651639708399270953218122249742997566054173723139832339112507733675400747278539303891503442514862304900475320615678858345398712338561986591208613470552716885532415364323327632155637396877260082424871199047536441257964525707150198146935793254478275535155244585612134394433832407047814169461057609893637970431088783641886138049282952344517308677170601568601219616559623151395668718886633703302707446226598535923274402011054523882502298571747544564581830877175879296201471179453423659983000659256239317192464431199665571686695236218934234869860650929193766857700207193045616184110192312755662134458284131929363613620411618630381679165251330299429380784494799942227549169557614889146032800437351677911026603664587656821556409576138843782927731730386169312433249245599768150996280123794747573360314051896784924378935412372846067405548776237475105672321392677748489613566208832654838819511201301242881370054293765786904849915998564800779545462628198266126418396342622260520144236693411190343554516373168332994643358906114681043354739518137716560517596620297404830221901234744090271930546797758612110972438601300860206541429423085645192469849769617829828540793521283630061325320029446080680942571129870361846874555334902939087734217355162168299401372958219223632373625585575478462639736826300871532145924887600443826519722341459719085591713856631681036553436275125235692956199192331084582809210127915210123409231591524723361053351680159077387935279465256772825288436952995743713835732980318134926041431640183380737710044027930638051554667625198557718262761926012362785242265441427874273116515860476505098023062559572611194631798072751938699420481459930201162333397066295848059174085606858267066802014790450715813245484013667365100805157057363727715557588364711008871324322366254008674643354099769935436974219137308074458161768183045291597976854357694979510740676831596760069400664365488068427862620900571992507720575127150583684474856508880000368497779393568385362994295478870138855250996458366065064292918782180351589237302371394588166811537847624631077462791074667301148116447867612317839440224483759497760397025007814882012842219992462242307946372514922827796367699111063520899915263599367512760680580088102796455715401482181006143151698825855040979558514714020282983189849752616640211504641924498638693344964357841088151537808983257329375444355229227768320614866149371498226973433870387671595652900117021975274798497574031746008288638494239807943767384476195300032594143675426359421786846825582458676998694984907931492131589239817854274948083492134505495595948076144802936639039765874526755143206115942767938875011134684560006769281085529895484976334704636515856281682878957324137034014640491096865558955400705081862699611755651505103027877467599302061457126194116460139275271582982838333215095483371718570016330046270108805149084161511347171202419623258705353692423893309828108900706186734659868930531318964939544437794944024968556378747387301001012230945602867534025620592746022249353591378778901208945040765498325126389836118809684650151699477522354200760211241707616830461811291013753301627680664955248341936533729846891571609153280695737628264098347562299464947488977407050481666513958165099019568115347323905202494210588089917652810919086061202918285488316514714853606446610181105020820917953978197843804702731431917472793376818409885337060685486843471234555226882986187970505685155104554644211922926560675969664834409681083881495899753090833210775924870431089465177219758652993908162672055004176505132606713523813723490356124924300703739717631376993641010940108014108311655059067952184138257648893558809853506095378433291736682961279993024567839676841806184789811658372170344490816747569353962817574673490910514894156205610609288335033426191386895925644662480231883160329463917245804954181532677026577749835965769000587726772587508042222865496837363688048374895025194231876993861258955263263596307000616330428792503371098626198274073208662282466813020158705789359715754528754010562996215609132488889673668879348098930469184342814458296639654312246618575955643661339570991030720045457088091104771812113392380602436324357269772095563148021331514745500716154962878504792979700207172216850013795235230633575063105306580874203762500761158854930887044494365386860654196310927882614230603224506023248807676855988034538852672614128143759618396957775010034159399761318516998320829129729751879715707033807602725751684089171001956419536193979062792675192428327392998693347671415806439424185035959480864408920038303856578476111064313801028955246541535232282371693634612269909417379120523758235420377867722726443691634360987849393813349107995191921198967914276153967899355034599970803147766573322023117930770765597473576837804835921083796818290844808041583926538006051687566124990325596782149849626708075608389676595562881393237981448700932572210790675611699653706739016893716384498070471169721759500731624272373362008108135984397146579070788771159839251845808623611021142156576389686995651861632193244407496332908705851179452179801556224178650208919825022267885274133544600226046734941494352350553945100585725759742855896849816467346446108707694026708463145988309686257549275937410186846030315324533825579380377126347280821762303554421857948536652399796014214371572136788536212879196860060258662282592028067405781032216849703248401015499004544744959680454553161113054914435064166341222433981005296560816578813199427868825783327172445113299847625107647415891242350724661821126354527573960878055651826615656083487842492618772892176507351837126643625940005065039045151077057350831625120860712652243695277095074209301284265374769807131779418926986469868056037790251361508001710572160782928859997953255365406135244140373444508767473156175779710186024810838901151909431047943215044542553944930770981709878637987107725086840735801604755383279783978428583214834613420666969142552538506708966925381147292368753578607135036691611385221272837520844535472302636874771630119477838093366783016240981429407432904958035866410074857870423492418416181531160466396467110317690624934407980037706903476282952976172604096404204316575435371587630474966155709084947483756181478263523372911595972018078669642347223867269665443209727143618579969780305078115082083895194392091537432492511200551930638600317701960572904680495853884260949585311288293832914578573998764618140114497990289751317095806101716174866473870038119691106990338052397986318463499708473708298631749086814517591405904404935838582625439581183567596652494722265704561437942083172314653795370884798018934005900882530414530250367482232085212246026903488191761080088585342545779796651890279305776098177686593765823952272607721006055989802750859576045304117845227132119106090663406391338823573315079255634515910085520102194543850454102017490458282103192429814683590018081498176550499191442541663879034081300554420237953192714898436384224897526295976949327577267523347645267054618255046141745546903486288560788966642210713841884819700700369206473539070495218229950056300906441110411651716606485784641525539807625125564477699640302557339156767202909301230384346839309811881163990724386516679583578535270912599598061378023283686233725794519419494916233904334219907220364159173933626234884546262583090690882102726155418579061209907225008993790530236733715519053342091249520709649125792955496557360265963272574992741584449065437564660597556784005040531192413968670875048092885921318351015677803279014296242366271032521695406846607155679705343647904370659671137067506595095745667798965613281357340985647213570966749560556938372121654455755718368924639053255168543292046856115664923885075421923444019919762175338258527676106401895173101733519684312324595152821269997062416322274362901341413975427769081177919200692128594128670107393363939993417408059554719535990308198110651986028290171921789359708782929099347205662872689446746247819016457166078959624621979337074504570412470158568236206386564753960778219544497472995115655140067071117455115042492412147864454448630733129316638021988309960984688803798975657921135933185886191788589460767768680490016254691253533222339608954738771469492745224410394008517100003873507747970330110466327422597021962448062594957504467169426411250409386008112737464148781778109225422676715381183380844039971823839297391077153271590384578432596496036513296247765650731100078996264288601997955162794215111567488939067754295468034357640906691900608767716573760831151014886573938071943275359830962083995919237859126414703004580645434685756833318965196193685350953611598648187761571659984006982729808643827786056479038510653451217303357300800230659031943102506351303230019465757761477468816156954409347941199488432519408032113925880791374806386860095365133601035787658745372795284014514558615500225997728430950463323796016506854799964294644221128334076540743230565217861616529106809206443288234378860944838542012075180222673259694689963327351139005302488111022575293710462224249811237947150618907344546455022003742320962755844242722166293130733074309410893823426746114630998053204769647026448674409187318911437222054204784277400117199709442979903180480912014470011037890969550076274081025021846413254442308968568356193302023009918804494835016976329519909172565282321862696926752202636795089823062744672954902225864240254098409734079078696109487416525676796476058435960365372038323869005821473546928763852827402206244049005290673587796591056259978604570926278594946176352914975245518971577283210571502838065788869797648614839623561814398359967879746518263152872401152909359759004978055992169893882359822577800800057367603858480739494900805394695738123828468651185420768633651844988910568048815761444712172844265621542190595765140679589891311794100946342505349538242610775848570072999782415138102552346960641600095259902012619394726560554566375608856802846112396456971861196072957811500662321761387893715075685987417884070610000830324326836203742549693970558994859229941438454084246624229037926483787467298774938600979822341416248598812743021783068894567958331096426475936523140626836452269734296996132447508427048038137478262376738767760953808334012035881995889656321613046349096938438088217684909650272383559045364716226834880421924245588275850202201583513610795364254822873088350852558708375233610419357183856367222992108815793113497030698366770540859682921692638668296373390620382606622138964002590645693675135665718136717254343446350674584902709216467338507312075228142610934933788410332012512663663202175200512880024061719792472299048993099856074419303805092432380936103588027171185672935761618618072876609676030676872339114173322549369026597625338740409759824902483550860320824644632250176939098115397999234105980396719993578666919554510493519895251019196811733602022313855212064487909202386349100978198872113220171479038858804081101219937465790257154651660080984817174400609863048033297783510522084498806761605088133572491787338971978623798321745143459414898843671953246630645441630108053227854976306951178772732248175418628637373598449718905599580407945423076424328149096484387721135726274959868938547080786632896039223285814570062467266228181437134644375414367654246545035193774191272461971990651569654844609543196373351772236257288202309956443597345955926803931103449233468165983169185061260964706156121093703057336058036303463368781167128937816577547579936706459900861799976593497930280692516665869773431891159846935603979171770914943294896185019589986684632743469121875253320882563185875946328571920792894564154215614326329014387938589117241685629743442480721982168565117372379988158479955528611636037094512538389075546005075113123808177885934178264322265274165883233480608958389944891047192915577761597718885459835469736982525905999069797020552749028945702483398071131370044188472904064675906515815249057704316161085937759146735825876388016997892468896203674773257467852563876179841555299895231368523378749746922873710755568000601875981749833737917714435278046389997901501760586856365365806801445724363843163770607199269541579494587541295352398373511467021670701472198772820187860484190044321404471912833573040126603473640363035937240520261884331902360573670636865850820483696967425344393099626962234112253141806110997792004946998532107129438140909817343186728401962593128124144477490569381341875338639207730770510925778921881087836390529201738318211758148608730184636876528478704839123102120980241845056847884208007363425611990710730215874736305299289763784577449224333760363593592999906851461691394362698300723948797643845433881631424987837436908602323747349565464038502058482840338033705957475599355164980662250614679000778366442171054464645713565617958542690114544778965784299119598027867847274574590679079630302415300548039384857675103902993749294320103846896705008221544030009535997952302541711627104659075769697779173810796659030107627406580408229243050907247467450012482440360805747021453821501963832867337084695176018474159688935778572784160542275462693845498832258635665935390918369393805129788667092447405299108231341585250712968753273775727388345706266019195378715407996155333703825868963525683006138396614750756010443375548588012509498495197438813619414675396678167700649347423160226333777242446503092963183899799011072856729940109130072984991496210326693332716330505149667653093566621286755366843847660399495161161348611437506132606841584040324509607745239098668808377757032839656251390931004734181500425433247032315582835240841852684213771199269679408604225162885822377795461295391134933390221280093009139675525811349652830598375051644897116889056469284896028709101837892786334879452699901292084086260621420610774629229597872742428876925207304301349284239134450819718804928861474181840111242995272980877226781614857320445989506028141893971253537218524530482216723795729175912924873645680282415540832598257392853051262724234856608530902628639763280783602170469947277636661890331088738805813580554757259049621785248672910076630217754538981707355260734016548697238672193882707402072462151056283046834687790165975841047839851310510393369758579614626960899770827691919718731682756563696669939170152835535311233158262450273952041910699320040728938931980141211795243375921659160211164992079002927769490461244578649294934709252520708774729518154364537663197345174991359075286871787570999096934189399049976335768676131016507150792890459884569501101333709127486627335529226619090562961007785043352564046032874977214145254869014524580383796109913803726609965633938718783664350588602434494421502440993091938708182350605945438089483915961988473060972876070321604362681811986797525073249618894795115222581691149417863386347892269341345837010601027453480383949884382564039820381726682485325234799170013330038404472590589131136335393466432468793226946641115139662529768514535420447740811866700022806208811390619204353592492301273506659219747553427181064278572172067248904772935461180144852074644602373823513361485920749820234973213341400197632715432222766762558016879822830804485630866083826014286952027480868807682025049647248221576437812280531417030728886675314655527927837917952415374875792557800996153995326723235063505258332545511236418772784206831637969817198614009424543965886504893450977798177977393442231309224459570704910210393406952897008958436532867589828365893537338313530396552279118839788099976556766404455236412257435520439876295523228671785364206332745030256645889931656185763452408563811391463501237271655557225689086268139100619163876163057733987244085345676179472069129061049180195535017097025407811535194043738751655823818322134414112711089790176367863577241224929167943011754909096552396452062641540318179592955457258064503297292357042325896250204971221313982473407170384511539686469544682958561010856542076600151596421815873366934949019331069933734095079143292264878966586996135137879624693223680535497127658855489545717884496358577300636289575868581221874831572496618539711215813150302097773439355205641336675502243488260190001887604025120719374465522693291486313338301626955236435882042092500428019739700503388988044870455444870658136362619485531907322788198809756728089807864368028553865540480119622633882154529607816989099791637058245508900512171835117521945209916137922171507836804195129403177329925015636669922243574639840256889072713588647653866537953507075857409058939606627534282031362434441917971367256278086582653261003767901286066301809819659263383721755240789429170890632642909539734399445110016091622202713577626102722635854583751748866275249265837673049724801247050376741983015046082661224066932471816899047131385483356438373451627705954778059182275145174044378847174480425679848487333476988570930680590015916520171142342136326833964379699634156959013926328822174612684935689846402192451868541281062185566340652014772406569308697962416248001460168364654300571479569160173255820677557104842890314944975354182902833107512302880109699330444811484739678758311419791375032849672814601590568664934646907789603419398164633376621732210790243261816186076903979672043298307968803643279721025365706100657500858898418579255515935234577445523957634454899241008655070057257719825769710267348936332989254541229620841150951569148997963156272946115679027575462176029065658246769513203608030790477412153458968330748579947016272492139739086069782295598072902726688205859273177146726636910382106273574305543161142800429587268876534002541827097728231179013286927346658809136288773016305317653323816281122520929994546216627392195623290820676284353325457024294748229045485253222494457902709065044544335315561622178396610977594798754650939796614554867924801839341068107626781195422242320292301196785119451405945060059924749214304270956744084742934908227882080002125453605363233148112888977070665132489968564154118340103050573411597674944073084394458375997692989819268730766903597729406773009045756202493301879859900479443399873167759833837279064271005610295513584837275128316498309504919749057555926418577909120845309094695793235006778801802282025068282971614270911949691782982548801849195410430170963170031052072057801854492177535163501106965828318765970396833194399136438520016355920774036461469947136304044536690370430458484485118868602991416282216841038892021459844926801979287176298464011721931378308154284739806280907636134849507714533492933235783118421514836666999052565103190469488643665790624584329038940175302975692651491473331685628671112913441953175193705445438634959074436207188121383239228706855184587558107095345437959379160516678113015421646411415177476877916311580551175013055986487891678502860326446250034054333460167581198799641347665148877839104683895953538732260015735854626399665514049600297721104436420280562058937102200761875504470276047485359985769810511420175270981327663903962867653963848669090336831702137028942441394366811155618287298718011383383244734249381016391866540982477917893735881512253093638451948530966614340473064856740398565006926808953079111073576027900196835748511878883815208047272881553117522752215766438006633281137388742694725573565496396127574658250549288033323966675667371780212261728191098622573506812122794040924577387975545635107413698955304358938982481317629891445048408762220923717144448864453732352061405946270178057635653516343859630823978472247073861353388203366510205466058891512088315710633759201785167874349481661646429659668020416415521970873431675752061978004529404039484417020981698771383886532886372981436055540172652769658417272683283951271401857174561304359243091677929435475661579713986971808378635397772221115956019070810089593558314549905445390895424293794384006720559559170389556662983168788282909491380646989880664616254593866821727554513042802078832125011932777059611556136481324128864710002420023948861695774101614067951650895223925353291578268847418831899506700568531454771033374399434425185511039453971600100124275722932232487431111195493666696858004857666520982027919881915462269750962249037891207753227283911174880410403699230385639755993638303082064897800066040555585766381524377990797154446607919080495568998020200988089569377504769130443959513239952448381438586782814060501158941686899616852127675272191437452495610782315254555273977587838591222979293098590392382002426821536324749310094503767054296122273835343555155127634534217940550753867493823922745113003302223976347439428833235702593461345699908471352975035968218585001957114291285244572152571789919522477542485955802765254740714868450203205727749199825693886938270421547161146719710134151736995505196286341147744309541714304361922487900900825794375354559869506152551008570960160224970777309919288464728348996853599910458840985653525108259631098107720796082056678973420449592011375680471212886776210064592433959961009298156896135361650367840339438141775430497008739335260262876992572493465048130350972005106020438161467151094362488539483231958593205927304399467412096238173102137474476333102687368745631124740523491544079359930108005214863769682699265475718274592519949319761631327426684110528039103874727196527019497980806747742771848750721462178142356505915822035487218511996142172685048638376783843889545499994935191634022438839232636187558406693988185613337291486410511160176990552598805743674946998775586549073829909894607661219362524025275041054293205850173080084094754708672862554843024517403474915841848715669688019611866118844369108171816620036379921846272787917304664189434909903382770312402462234548505966385477011894191590394866591697533859923675468676853935798408557515038867917833755047242361191918969709241662617990426144747584287116844592887995338782934054484306620228542672397636531111152762248811101832383215131901736352726157205955923689353558079057434599150070592672833990622197277325869046962340902929815224380121870421009657975911359965560694565202808282395079688074030147456085028292221644964283679012036157969836867925504461122497343586343143230455519667520646389213508005882813176266123155924699621187088451531794155324933345011112774217903298583199864912422137590692572550853938116607229955965447395702697208223136718561579172477915695617907328263485410083391481742279020118588500052356632386243611495064536486583891081193424794948656175890036723083995148214240206621503893979120477870693231443020092077101497077927775072204160601594364240888342904762693339754993168521233366702102690031983769858613629393363610179195699387794919761653796399986982177878612022945959464972721043953050033816509381982322640104421890769430887223189523860966979954686975580631960726794796563159082373041642857508388443390498158963450352489676093338482749217749729572075970446172731611791741073573121739770920714365373389809208308332496214990185449332911113047660559063871813070872030383854230171006980545081185009056049014164296934921373718084942250597879469953184828445974449867938877895569655954684144794175699361764566262692187855248261122925888855720105437737051135120841402114690715749413393145763159874648312106533786309791934445100966654412670535490296816606403506767672306274056026056352127487442096177889109023852490955587697551116276140357230110208472277301820218853989078103185814110090323267030204735750626796172445858148003116961442328135358132788779633074380803832693235896647578374154166978413914775323514504878287067770354700873350751250420718375067071682172803080277109220943841867311347049020323534436057895152217578035796749271877440232414010595910590878477718692429945353920528223834021718611969694238332526940269628402453709139800172688351207574059658600291694463441652563151246751741563698791151328683127510164826985681580768833865724793603849794116578024273191505692146359204908391965433854016438285477245425305456324795476802735196005893572273016492356886630942255694053902262746166829207125343494565188977361261020817417541012183003053523142035430098336324003994914796836785835946317028198803907568168551626080585557160868492722020709763261222755206049259597045482572698242068125206695843507741779590542035831930425542220892465308700337199278574277327486684652465467156746802229997636481964663720144845995420044885832788015052945224909220329427172774636544837559134999688410667216986042769426495032233260686667873334782060304579910187141142830549552276076901234421088588675971150487973167612928993620633860244052825223862166940969020497847768095086945725063080132725616860627334825947966495903042730472659652059009321269374544251739624359067750252917553045540875370891452432019165863043033338307562625090176768846493351851264584728867299348536313842858785327526405593283815157979529599869297115022042321801905801893450716699808138444406938150365250585962661874076320977131082588343263368317209772436558127459274284326164837314170925476988305374949690328444276839133631070571004453195177297551886031549133918136674450659691647689669068097304507888357333320491511728715497114299010685762328456405664745770640202602708522073969484313400049884801406880106047946121424436432532752701550703318704204063071964794606138339050697841622368076205753183114889798036265595593157225963095196659410391509246058190108294243073655504723445955821575476719012171882317804584139397712411563469592806677736053960044935959352254028146297126652223017871586256183257839331305900972530919439992183281599890388168496560517378792861368560691027655520454873674973837898237184479480973496537119773803843949052874948871514302305985476184237759250214149775217260661250752378225376227992322745891318981894581816071129161696149601154343860527974429587211389863114091481676981017750527409413272161466107006774611150708069572788426805232679082795080418132369366256422880497931377983367979354348714558470562228740587381241086714599242923549053761270405617372439840134891331337799118901572525165082768872470617465951484011045719854386945925753783431955529182293820150310325298406019790297948709195816450730565261741361856433426584629364322908993932331050617366866870302280125488069626494607752864052234941514657021051107329253445286919299036059541767044426161319276932398070204247099791464193679325811703608373085786905276721825417115094209929955037935504132409498140645088771265009444787219894576535126354711366996761597844300852236210677483088712063655456585795975915421664800708662207184662106492248465012219221464765412393684297536587587587486460642734471616850084270664221954941829538890850050702868230920550094684404664855793659118731944997622296862888505339251367808064839841775878131032713110264851089397172971414871553782190146447927435244810041739661969587614848532251246703839425954883598320402591520385149979869229474392515515037765136609992117306263009293212742982076392750527990295220953815789207766275056739578938599171820723404096132683023632320362621986872191816475153213524302591170104501912864281507168126849754793794615628685429230587079193553729708769308968377282061884485888688098562000732983772375522470756902399079609598832210912378981716090837226834607389423786678544468179756123425955871914913030705146274811827645596047204649362854141911548322645667974864290035771190966344537726852054021959272349772501631177906673551713012009238342412274391380499119820609461109546130689784458036299254591330650257757008518242817775061104128495153336721453608172350946985385998024762948858741749195154684325028818258701240370737892265919305457333237429828367069157395600738537514445198511839769473846667002873499684585286970713792509867404187717120021673434541999650507234002075020717143256640522211731173687977886199734557222530569205397716041569479878141815848445019014166774882370823207976407425548838548745467036337644600779112780931228301664227166506423494423884448932962012122263467252127602421212328126118530421542988404639897971874621951695503448171833031273486558957378023979027329580067259794381625561141819886866432888386166335863104050109779052215013586857177329742611729362656503855084809457162527514008291295611142522056479115192797258472380140809015548234500185730241335967035725870547574601877122228018059795632295560537831439556468830026531524042294652746697876855113360510657531764578310274555625187802846037878473073990063655063478663227287637046110724830964776974386834927869229571126868559149631724196592495673499951667662872298439495556343181722870087506011567714347277717897701872168472407667627375849662836677070585934696965515497398940664867982812029846979174391026568087080345009101100905545160686441107047961233327367630003358646486950381548733340340860284504115264161084376619813529213292862571753415502319540698845154990360389578148888083986822814644485794020987158403326882486620773996389784728275687552588732028181272942172403890072652705917897778041208972241770456657932650350644106336183331613597676921911150908734238297150123584864559322736267131693729475282454861909921347616877141027891932367233459143234734053716372537128340455729822330810853929120504469147195218029730863858407303801624689900683516631284016811522952295862880193859792402027805054516730491606896818138421278854172059307494636928137335152365631607360376612065073024077944064322326062666523632980138706505446152765600961651578232358268530645296354369511489619299697526998562084677720139724089898976309822065852109817628073654903540911799524378905059910554678892136321313687724794136761095508013438000804594886024999570329323637636823558038804843597119758670691243948783971300096618944390964211178855654526266955695997325120166559931963382355532106115549658517162500728343931751193075115224782738755674981265630333493463623063524412118134828733043606974545028952696429446615366385974687640948388018173246569711192821571644878964057555224655315532502201039873809575999379710501015881133557079206030472592233327217580376804260724029755453633287204856262676676409577788846718619905573047099716612140556145777407000475355578656621020846782359702557203130201135481253567577561040286621957208520562266309678004446147407051911953137647438442384513764597646497938932927229394051024602789762645484328392942618208587857352757093044628995376025071344782483269622516655775470610961561257473901570955375077153521317658643969751361723079911187351258076665118146987812169614284089720632564535296498184123312552570647192554690948731793783874749147239960207913254140206127044451639612109821931811431000468927288028566389950903616434012157129124042436827269004291105255350086258774393374508256697624782344548566176952184820838174605215211301469490468371933351335176630406566627446651179463585840318165711404252911999201722400005427321993624931862574921137812590283028572948870504528709197706783364232822198434463982332931419344124291803875424825457214709643108017610723614296320826916164015044904793241110098744756729507568529166603264031782664348086166870779327832564804888948850045397102338809003137315817261643204400733262002913747031207709856619798438766907425958155487168356101416270559632403811116100037847307416608683288270377782196292341237165720330148409694311131144792477712850894233562951245254580588284003189366320730765304289707388975771392787510674760687428270457458738603775942584130330879811774858620448009101872162762119615890159471937641355033787453110634233221491143394000904886730626335631119462784439243921447839752532738838690079948109430158983428342020837059900035614173211297654110787614378015192960217583807765489353265119906594193782069374352980401620247402665762299302846878908429238715874277220180513062653672699005595343530320820831966975057410891205125534254409517730016921011843914440249575608649066434283606616785052199116212856475138177531632205697823393918482992685148209741691484056639487502157272401284375278321109517805096637360459943417563790614965783060932066062586793158439129167810559974180410220662758702439359429589448793970276872812680919780960302236644117195549631066421647859179431546804847834237376758184917949140634329821056022403649506424607285747117488463375287877534129691215624236253813769689832603947404667208398517235992082890727710639745717296401016980044253477346680926916001036989733219898058536043943542906295861938480245937333248637122011271635648622134309084684212074299080220450324525279269754819124219814392641726863579835006592752307653613071617745730814733737496628687262859679372181296559924035597544753827263576780492087801378271259179375539468500855753382048211479651456224229204374747005111929416691443716893678348420656336242414561292851041812434378091966585528708070794779449314688687839608931123169062474207162667132587497192160570237288722386112470384076543264539937188989354735579273811875226285190489263596915425667360560523761721201954446362367175665729056664515455740070938138153011404750212924106142506172059408514964268079005966001214585294986040969312994480749351113258929972076446036056891123261549683701916889156420052612850049644286688631477701947228892998067575255274864783650066586501886751420551621572616737469984335664644652097362631792526179297707202082236846530461340660737315315724144230568433508733302670277036314455663130524328048386314297942979625975438444213098933037220251865226954764292798158833597438468731040574525383401208333844288091009129560985410841752736743383989949032673462463469399952043398861413127197217444323001834887281086299054991551150729420785103177063319492038314555483925849754388361766553864831363742059440638126657486538873717739330489701747633264175833371863753110900030305758919117927986453079489357313199721225057363885879679640534683174714334829875704815673229924565812678775656784799422208492631616526402195649933586871806058584238052961863033744582481892002126863319015865537315501794284986296675533566221196529268595949357723999394785345119679906096872681353486525692713967753019683665274351313835141244676802543301255379197991669450542277984269088579096339229688884541480016584831299626917685484200891193718172296694809957178933191760810441807339091494581491559001085175679218032070996818092328278424433008341084278749501033075563130233479595054955237322084169735630740699145874950079212527020099736564325224567920103097950695534199852904699041379098926725504109913425166499773758039464735874970818323699075372230908108666717612745869524016876494353289835733791381341145096006694767295498166509702822407202429397270830937925813340369700141029484853670632363824216070554477161474473007829794025172658044630322014414387396040618650724135593334070756178256784113158907007096179152780160611970233997256357548566669277273764328941872376073423159241553259761098868861098493521643050271350377602716306772302630931778167127182229483364507065211286972025874850694045853590889990244992589707049562161484615171108967475686202738357244288063916396818091118712508998831147017730219632226531942116167919643228971418226234746738631982525607933050866623329797881891460676127494623946409872418392581476449630151419543189869561075146081019910299530820260543424399880596334223939190497254898996338634482594695608767127166808280969493345200860129547417166262875610886284581695775992255697976936425585867815926094075974030697831992595763898355099554646032394965460442834090938763484652732265482399465339931152085412168217678000727718237868558380888513692401105979714811502739913679792012594433454527716372944372035223226367252356288806584083054119017315162677316759344650675400792166662925429248727614662720648950432651132709236588649615683523122531138766285042288105391412329699117655956310115024559799908259768127309414625656793718421246053273016044822012848091469268700872745437003180365111577046157577899059995908727027443579087553319529170330668352980264629481712870363989808736301267269520283810958577862809708595443566515444715252079244354893047275020788703080939980112262973619070769034757302458649244560754615778006561025051621097623646673256643305581020612023098689692233037150513655502460379203352468284303723026826505399639892653324074907872920793589074347282389178763956950535943884784048578282802723463599403076642470227477954018934385355837127646350598193247077890579658407680759672688463095836292260820269517163539550125155211688868184460807093676284717061912554849468785293064403271588250932204389487958680614364568712864945665165465860847571203470220210231313137275881225112785042136443389772244334808400341413995234696392223232468981879764193716915545974531382383749837877707405416419481773004336672926463817464575921045940005956824592143293316553869869509932517932530445857366483118895766529455575673653519504182972658123608114309476219169334259622715632181336623522222518615752806035044116175212429239284964408619134404345817822703229920041532968289500550407834253164231969124300786447430956606637724401785734333214256190794481155718828159766281722297145157035238014412997424573029145544203893960123257990176443676705941209075858864526562663275537123614510567963009572770464482630263755267286168385888415339302691747570910927698025262264005842656816742727587136423775289648383930617612834044746312616072053762500880447154583194275633680649325817538167863645318405540930073000469605666924490424507619058860284567646235402726937412694530205618662759413762123778245046711539861990345162403714597374080203383086862325156330266518089733115062081456448771646673262133166697341056137819156023321208395636052064033578240885146752616443019329346085305651570371493410703486768118857975135053344483761743439366815806817219185100464498721752191208906950521373617509825926617720839765922857990378051629211606814790826749863930526207423865080260230304910172636309355093324654187690525361846025481921194276055430783276449643771580260094863181444153379761675671277234149486852671647228050897249649169426650080526550606000123450940882016131803317262071519425320684784810801726091233865557132516209150131687815062968886261088888570031789441106542122680713484558086049695844977845514670905064907648961066506804612443574599662266174103715753461422729208629868119249560358265886798642714263685574390220173351520696342010077581643397228101342139427096917113506911970923817028039771289159585058667479326398996068051475213393215582113053931695186675469857348973919765067434016957990036203545097444876032357856505616614904708748949170655030668701657635118811593483789035987042457691442595900752752090154952182134069433750052984696915571660689803121965513141075605263663006203366611817281720183294018873291302447930195146497471226197322765398260278473017747738430430711773636545604846765292811752488435213599166621941583079169733196439470843536090854590362975944962720340323559075221712520601201350052062084629143893275641523283087845067070510651410733876295400771675199139853491823681902153555667538294043875511055540500206017213219402470591402098138174409558864559739104906552528461129409347538131044118375177522027621356676412175361876297081338377916713442558983326893038736339961732093935004445362964529975328310859960358616661395046480358243603813774317635753034107711003964739960826904162418184359757905475109969733804283181618118433958883419334610058971229404226361967169282407332902784513051439872623224509121095819311525606486129721218872084159113764505773817082540091722437784146473725764354134212896062461745098496635585630317316928334952625126468549638343052059039098568706301198074299469307726027541850446258722993446111055730237334669515193612717849379036734825367600013916504317344557275813867505903805126936582174517309729772678632766009403360804935794580756215525858235277352014026772618997463266976743161446940472859747631859552943287376138153035680726500131946089555498041840931470437872614961753929772474258462420910916991470874217878284624096221917023638187643007372992906117427166687414105662179847005216990088156632504834967247711751016146358427524454284204224490000480770863013996334918686030032828266294041096212810909939309025063514396340638646578705560182578802862262743450182069168579541836129799915561072359142286436369423961165367734619581442851288297420018913863984134522570875194684795780620040570996319561931020391358615587625913233189056759242631490387735538479149829850341901310290887723227896812435593166911660794666376382536653133029978836588206785909790356515010566937280515460635669004777239002954377120168674972945037945054975244216681347970751678987381423246742708470971843373454978074943170236068478395610180991873655493536790442607750907961292040617336630527213595670426193577264120426993528164440292973438254352690513461347371910654501939457283180719719954992871271654214686826254704465934231831336755011855723370803006198146013562937927162521514949098278405892244753518700555415335645561515715442435106422338733892095203224182677504436363120125726746816073110944924862993842077615962594816095921981107733240792191028695183927974015639341966381153953542042754257095705812561662129593577970374172649474614055701059569863554073294817307167042629118100208637435336666796867324994806758879592050615468168153139731152761156368623633122538976107690408630784457671549360263645750065997405023225202122140476997272417941282368539392144714984901478182364780329320949036595358544465860864616271719202670372988366870827687406329625492711073109472057748167106837343491000601228100317564353889693252823739690914071831326703095231186687200655547798043867898736104550768093805397847172728207026766156926663087320066900431878395619702104926611042934999949927203984676974687866442562168923519770659497940725848591269826643764335608515509049765167010743412788203841360148601689055245006077615851593314562193466407563115807327921694048648918187805834223305016056153717570025899238570574494358964448815039845874204268023985373209399128351908820457728981841306770752666999484197703563086221097245506222989417980492473480214285935181988197812122315266970108584803989127796999465283529944511709755134533843611454178433313266816054607569276622866659383660098803276652484628691006210474938385103840436310140748010724324708579048227095749744558427958635439117311977074249286614953383679594448434530110267539932100736337702233807734321963074497474841690708550282001062854837503042119584766542395786617132800235298235700879100309106255718343451959836274703270419961824535186907102891162088603104565093009852930957050463903321795959044972986604726409574998302525769272896160629464881752004001436971325237338967048636960272133154287678114475490421729531960913629517567364633616366306049782764088143389417432700085985625108908586740057041835819654518008361455347991839935244967060870613884486590859844293452279728670982124762771144565339775595648544223366310348365981249052516013850174270879742016379239612352764150639177992621654751383983348224382792450668474021248219707006984289531454932923775864819168494231524242892814137933657113292546161941659829988577968258448863971416177266481261525612548260172015843729686870580576337138771084960897666644906437009591562686663138420465597236702995472950925595380545144948808891847099963562187647275621912756444498398899412696483255528565825958184328005795001288789092340997136427815585777883971470711944186110204787428990343816836829731100282131121931364553920656148053035019313821207925249440054466889949486932675325916182086376232839028950362649725439780098889342986815782719646181704627661771255210932398327991433876203605994498603147263413220593887931904396453682178146213173617219512718351444258061165455832873837765065042148370068500588106193822514606145472676077912121555635758669267182981805080501679335679309990522067965802206109453268704475714783690216804557409203330898073859841945163202003520546173861983412163228277834913526911453450659722856095037935761194552646370192438175040336119087720966490022398672144289236176754114200877928687256771002535154345753620693690042874094125936696973486442448409678348218933761953525935282351445232873229221323048994790696200154917498599377772498252506021152143211071085630492039905709228360454736164197530492471586662784183758670490490594606897490179182823736377228234533024004842408212356134475661226864687659799186156324733464162964122353770113713632596111873533246387584111637542601988200236500763442848944341404676271019283692946987331823684375376580350082516815488320111037602834068066411619499653730234286545125835430939686313686103738932836562815890557418878655213293004428238731144148764970027854198183681793323363554228221778592393190884146310330739693619616379675568034874891355096119774387350226210298167859037502317079402721051976868278245909258368241535972674234495039210389946537980449548854088735768438896810996520018350589194765301133897890706347797626828871383347008407316721977060973988246368273734579518855715182109360478615846500215290490448022409207703456259557933116808220122185738698168333773453686822686290613685137075924305496348273694737030491737921462593584923071975548788271872562477669228711316658248902048293761414226722151549762673418018071253970374616787208210040413740602637766019520078542678230235673306785625215869188901416484030340493091869207138918930182727329367091584362162044111724665537008184088872742947968053248842698216994738711557255962731955602948786599784209271212105771004080164376890827853287633468119366005072246982686484963151328710422866793385651480008668890171915965612068838538065391716699162536517470547709585802243438386835593667810181169927160392672377216216919841879404346049006554043253484289733127878964181984244997943459984732060381308901096892289992736166551562271156372459205612337072592944059111807379209602813598613408756481528564203764001873456502666254475917770693521565579215897524099092750757776545848656940336587284089614729759010859244068910515225711974910940944161059496364921077184197500761724156194613248638303947832383821181620290610314847194166342061080237604674682879761182693225497638338728833595946210994359361997496019951992418605741052446380894215493351598678667678534548791117973256195419447320418315932273442902378104393548063827822960555943368860432473897090051853573318390606200633187581986770219573471165762024451166442739933769061596104238364815636350410779909385577351759108686578317334468475347848472016088031323943900465610133169391369313851707682323205422123157096032370452079412252205540164718512842306717285574488197471690371873549426644201044721102829480102246299455174724662527726515962226171717197633426874012078847425826851958593635667321894628186104380203934991073953615394700250358392276374402423522975833297681653160524704972422497400410339625255651548041898074072593341316721805593123364584898735414750656151508885125477503342360503858162749839005322550688236094763110467862645739419676779458589465945711835344926802523652571001883282724446835058781170543814144879183364160350267457539274968996012527893708921623316398369729274410185777794178837748462450003820583998442351032893354879039165845906496946302413258269886548173473957607886327901887331025210597773361476268468021220640899255937374105643249179770869184609071040271852207070287734379150690188904618465922836250990214205589777725512577827460323093930574667057252808784155409848328415887131225477213088674594718263047950435039427879954812651455472372874893060276070379735717465674726799081313790303932028399117106273928639027803383023044131867320286117551813830351346925068679963329018829937450658952679552038319645147745032957994276933419102738897183309323211653638706387745715653366231993711195115478282941688775808378609218835699027894808753330886402903331749886816893781437013337582666049063870346483500319794809711258619088513781296165062054413657282810598585285201691054327452996470761898452797118086247123482760606116546414174228975128054166736838719052127971480472430641139462469873599850945357680497824014985707736668949830182318320109333940138064649805243996748735827118916694028074469068422261157831835474093500311516707905302969400471715097160458188573093525277430640798794851888626814009120114026409794605608807105945069526792145001518915382511574167776901023497972459110558690093232565055113566417365376364473353692957000621577170257318802123980611660713456815017401530950904473193860974092686940621846386942281973666378872232034685226595717058621038170140482142756862744637039479088291643544310076187443292062956480387897709251537912500643889644686543673048524624265665828614308258090526791074698362535351249303461113839227365241532922944579570966974421724050095788025377040451378643538072397289694265017792511566852927492438695863722812220987845838620043801751241679945945594050148178828777038972986081937129624203405595634347432605461277573383634517369795227067205473634396312895266222630388332810055653785765912274367025487170850480753709558036782641471290859987755070405208780728484412590819849847708556532661573952794345380837127845204533743079182566194864081247131296146624427950299594795148255050398823964743198418923466339579093972962086586623351411521064700861319392829059131412614615815615617863708367044403455303765265435063846524274484940620942239696759973142960260620274558440209626229834639964639447679811919712206026714014901011103347150643893058615540596304455726623837444325697481139061979140335021044074292136349609961551642035475861873506775867574628041419225158431735494887500607852088535176627522643466841368999050382031497893191820630929104280464264057806919709808600484344467217120220020871306453787555105145519558012094617936019051500911038157314301891111392075541065589509071592237088460389417096714014978806535314663975045102078952947573956056899450560545323839262439870588187839208260538710097050929873374465024237672561714893748169972683558497742932037285493456741712419421269273049257551508630918906716072702520557263883676695829719530979084769659574986003899626465867546321402997683926301432368866505211921789910099415335403639256559491534938661932542922174673647985345247443163689394197210451748750495574137313912191304454265191314312899525419843986449372383093104193110414264914044810363105998124802910522367123124839766352393958015302300966368893867919577968420872917201086149305609970310920994073878837969907336901898608711459687245190635267636888303462824760059117950922789928513281698010881302492382580812616735504164979847489762523995305277070120285905468485302216117818543706511972290462568661902196272768571152688401187604552149156026663018474508095394033521037941487488705914163538223331786088751783495452301372307047730849622805018683143875709010565888757528355941943201069153630347221361225585061452229870891548830239618084025170149549382155082348912860577379172296784113968255658032079541650002547142341246960888770870469749933701846974132345870555799767019377932888325935956393342382824039381815022172644773853018722344581869362043344747842398601478902043078473772393289843732975176798404281011684121538368434593628514660595215528897448185717685508023382679397877578642071407734105310623355000065362897391086619047603335486593418721762423112157411044470168801177470574379434350627724558083750181691197492739779678602032281196768231665965805358115094586877121691809302051022520546037015029822579112670193034956636993744060497804411043667301941205152006690443674228538195849615554582654412364723545945238003277669125218314390726818044550088403264757760595078514462050502854927509842395474140656270328277651008876636701048186574584541398189631945183083911490966505132902656431631316885142320316549920089258573595824689906256395904077029507892779435916013125923610363144038579888015400598335418674614887226761247334360858359572384912703901447453007784388093089581440959849481903180881404926697705602650032690445907981638942505144866996773785436637963465408775799098622267944872253204148838329348235886592924415080300735144214187830235551628137746411963034124700279663379034529005023277240708110702875956996558332248444511581747486071206649548822170742892620652109521440224557379835069608028886409923383159736322672279861604437694741081794663257373606632019501462913789350658011652072449448113018511915697115621354109193033247248108940468542230143574402355119580617840663654264802654126682353644542127613749976031431504561977521805140645471814869292435355500440917593742501867740797087116100481534746648390949033591037789852919844336214877119752666798804206129172169036150836617828815195511665378454773924009850368443835886962142197626203168050761747083172556153839287220431564917579938229892682208264427349105416498948179304179968012983553940419375498697861677684519765979666275326966610432825294793456312142906895349362344096086873987628762890046589537809366392417458440835114272405054416837500601139212358339437798935266742783235115255893247027067128739162225227607143423590758070799822376148690124697032261046456387911956867887182155626372356065334111151064219093419729178536631035926372716180266765941387539309180175974696569606760078089095744443218890056375038693808429567326219274256230604129933093004848495375987942152114736797339950614682429159363515086746981291955033158510687468681692744456419160640003455175386377330889654137464757473291066996024050170004556280034198854148684638304980344069506196986736605994891459525633343162738691243597734906206351471254653905976589237580477039643278907867037770985271129969864224546378160675711554697823890436443720324934452387828543710485231924869708902083249513750693951500806604611350619709365167960500000964857627332218529631321848330686523531500772602423419253271045865867359846900178191273415642120306161537220467861512536508495049423079660783355540046496280721575640416902414280826342433156256091305772468208743992140309590738583008970697960620062409227915257032280696814407816036538235115061020447133069819367750037115453651292663869301779117750948830248518433060398716209224929220190806901877832499439767803718111797728783197838828638314748051874963067897314047787561308151497657985060307410932396697313534465786911998368904479342708931426135349048573512329806085552634445466127462992033758491700804811953360594683172737816065245557818842944593884237690990067426496092541231837391084794886795165046586935415218383573692679585385599346610917854254813788977596042783329278251207133119494698676539472218245483034300683739230316232262578937036066636554294800879251207093805325222025927863555056930400579959716323681304541996121254770615664712016150050789667592769240979051845041586792408544923849298061523570184563027440760640983790817292425647778536015643490065872379820461276728966233448248881588214058740696259070490850333720911058201294360306352835113734761501956632429829197162935714536907803364471272745082439663153802017666489085378587164608721435952827833995505727722811618214937619414521999046298265044851434891778842465787554552406725791792965851585778911441794026441420575469957169991121056151459956940151153580553899774145362766870064873534145091745191839485726801419886393842884500187271347412381758953220532293943478973800161687024186712198589472678438066711440295738140802440248971463038653713882840260149953738088970876232750696980891166206414359579913080922873128257227016038322673816909994661188812802876502211616573949899912466451199378981824705423761274398976499990382422101537820212825749593776105532874767120646101510441125241005415141060971260120028313241771267329789062407687979002421811549690178711005014461444879429533606722006507111461728436110117102933240804318323040049659820125631031007677635423726943834175878526837386259245443137231313162124250067072191706631912481599539021630932150450482715181121926969756993711192335532155073507323897127512041221022982591856642636746582243201834820405805354910071243593132691580204524734073746082219430382712392828857941852289459975317683473366747592316643012480896372642852418336434467925386464052537857689282934989889630532814622555702344155618736672850941605044307960304316483601313610836717393962196446894759910377813727098237192396670052337589522229117023588043679195166445729526760352874372961622023453499449991557612887820183985754260801067569725330347243869347789015581661011250154519191932943709725764165695272107406455642824315432053796161130529024491575168471054951555615977289691113065164075838977894056945213946348222649730730977900030684592600926532344587021164542209316234590413173934868172846866731078285689317195368641100234865843134158537471694457852257182016797814289301686172181258015053006303791027236904362449519094933751671607626241662811875974342796349596638246770164413567488249319051687363296415874756392854893915038621481576101105535264613789907298763500196686501985794753123245542539484503191147602575368832957333371505333362944706448442043254536482866972580063375559536194502482618144346698930265814923709587097454941580089014841978731363726280495954269751004267798937011704786837710844398761445016318748861880285040244933716832570333664115262915147717860775683937742024646922550956903545880310914701499515824245576866175444398905417811663479428098319403396145303720862365407267236259783278009201599035715653720428873123377144066093159648868157733691107713904776889199110374636880098157264055121325988913049638026131264308575845530566501516189259374412982791716835022265317346768296088921803811253133125487619341927984786026585767143090526428028969411057260181367467715065376244909965820334413002962635494482116921744286558830457349112129957499687661576607510145376971476655303639800260042290189358441626471691281813937674354354474667197679129023266444199522188270317728026463430998585228524246520498021084608689869942107971989379521588446671923016819616659540482043192942208809686476444461882443220008017401635017872141202798237351356131649753977977657014115801930891009857103717232005359305937389195806809825335059064203036133786437996603691482544731015398073015589327175872637847244748205915692544150751627552231214371192575809174812797181961477132426576632148049417394968781408487144810105122903412700560194552663385587631661273531453638075704096278282184162344340274969568130046184402436408833253963070881290270308271606607455185689810206796855261554799455092513198916481258302978328167032963715087664392976112532267922517091345329164055768471715405469847211948133900553621847875922967535013874925681011798460773449422812384531641993150742908652512915205262043262574896320786303915325372946489865120099304133266829073486561524433411373514336729029989913158813783436902738862002096547432697994869764884454774818620180664629966524261585323594649855368568011422718475105101114039386336447508042866799442179529074633694678435980963832573429915257828097534913670946379839745550901862908784301283308288175724065857114592116456089790343657075875455291414189927913299066411162587225024807765284930273271781987388872692743116101385629325710829852232876459858554778289154308188068440507146377586433911686407329851669263820812175184718022180096195547697686554065189395961378294746113135782559277055663844771348686226631540630689392456600541693347572239965669786823214600679637314740903600109210197039019311774439318327145786678376896243121516108943138838590878834298359672414824592901741195695950114193906300272476620730896260241864462991798192772565088442347032987233588059620328110360337270607882803386599910286718504039435473475793355535249659496408228880242817028695428981256498038436661900466412169004204751192889386438069088413872686274235764111738643064746132733983992535597543647968999900346705888801513358665623624796438809791120098203584233728873481756005052006662622696159614942510645743981068666810395421828770727199464254533051296145206488943842704807182404505466439924707604607134311871033606454948659946858248800888454461057632760328725745583830506493459819189768316586597277770921366942693572562151626513223967660794809332127803717785611766114879544119949952393173354869518634401513205971783623561460410969930680404385413401405979645015121363579693205194532468696536557034778768352533308967449431290330969322418562805039319779038487946265509049870138121668764349368105131383365689630158203589482348420896435853866265662005762689761062055390938564519618897937658901908690580548377309089112379126198525015270684024530558156548767643867564251640626875164021716259664666004169652708666538066663721251599829256578665098796426243436839967238629267672911944105749557421710858963821218456177402448650341447663118728108442494590808638239766670119052815003036017846050651697263330022604175200261282075230055921835807238392718662273993172258391054390369912622781215350649521637063726833865332173809534681649768822032065412038098242087605336357870582028522220765257224254531828954548744593507148559252667216753411790045368931988969185933006288462610481591063374686879015599572861130827991516130209346657575481575194372540996016845183343332267104414518053988667277324168915957847026397106400918856436714490390372597077452475777621741193786301000459910774967128530322567576337364341643822124988902719994395923597232252381088082579394099032623783730486194515906572033527447330860407287363342032831319106959390487709295852781110143932498712981682932920931716091414656489265710939630548138423668358990381583968460356607705512375728395077492144107648796844092965503804678396290521091790129982971761820374764920700824364788774762442442799715477750124522976369674069567992387832513916594561837235343547570691641389918138314106080608446840495015917649660540124423053583224358315182735383991433611826775809263837968090327642434838401858417227378465697981577604757184081989845691234981684797676487144388768539568971244380604228347468395354535316733401968462910932341544708025611587902162466492809107260921354668222561296798166743348548849533239199846455873495807969403615528597173749661569217654087835845873717790447881534771853893463840351877393990526526057269696175983373766519756831458009004114788115759642887933532486528402697833452158734929827279200831928872959411611610056610972769633844814559225481783555891247394498499852753848438747293607977771134529245346360910552513358957692640012648272642851187093243895963489263892899751887319648786258559452507597273136910683444029517762169576966469241047112038595088909906755796720944091976620666909395319483832797036120675702834049630561671650728817068757285079390834554848682080455586762437751010585294164132635978418873471802703635792762542708837500037516582803901157970620854532954463754154177726215948526614981984647817338281260344598816572067771359522635862577847912430001049740931812210587095659929040138207785850256842280125548038918913741098762725179989754402246507072961917716194606381353259588527990655114454846181005243311969980506928601864149131502656600283888087610776747629333997878697240973235715029684635894853720309641084865054490302083334178366931716852058385537137960301871852154398878846790702095214331097019528787305977004103917903273487488678997354238807705361770582704242447170743392466335084783995464195593646277264014932905446666072323368545916466155281853193487909441458923057638740647569160760163557517674793240234128879575861381274134465883993978393667140117514399112455987027212266297471054972829739445066326988910786176371175589209835288457270067063749264285815939564343686170566913457728806410846404958343947278147626064070722189598608565576032307141188757132641031147652015274215046749685285464147095259500637873138319580052104665216602159656896082600536829987048530022425531988747507212331429237022785417845230319346044672941188802909146280936169337364946850124797512061133167991076606359902075954110437873373066374517070341296932175691315369307473175863642058820228016086447644171987896696726385677725115427755044926144099850127971075473231076003446207166248859601830466201255706659423927051175937422286709290824515183890497206275704435238501451474316095202588926507930542901712982381737912666677471709639063229740192013661230175236521992159696887483327801912418930577900025994177809311713519747937487788371012577618894864083775969816348316495054021656190236562896798650667133959566862363359930090922098782458293219312837747327179797640922218243141177559078207408399523750186022500474755095910530173395832025483115815169239326289959625092963486666951447684673414530859729597860803029489792462676570231123084283226954828645291942524751420473679903396463406734872807985693340968311948114353211046456449781974667619993755091311068445577179881964461572812591142340301019331841618290182829019068111309764060424514348303234040742917185067769442928205059063537448176080641897548173371872621785467568575949925669783620809981256833597258204936154927974874731396843003893123439543489865792460138247239446831649289477738760454812517986319727358843131135665444552013873225063078765490165942790879972356864856359151564428874199174694132429722900204683231075493517884068339549276033702333921900761047324198429862876594486326839608227358757769057174544027244502325203531276177231765562533770635968240490218021621454517955593935634315974595204925874465026433528091948374035038904468323736406025023323018118058055907446941360384790063337654952129212002592118097789171674844435813604875310277515077648936005819059434320329231482375596128621178681155733124719068981646495110475832716265785410258983121880594706461936726164189379262446048579373382036977217202411139116238669479182185813327803424150928134028042548608008890337979266130921447074396604591864522412809388761837575897264191627846889090905857862342770898864106822682030789952255169550263386936311408455869404862279412813035279222383089219844119310686759435127167716565558239544471560872730756318226853696477407674002721133470250588639825934794335407531351194365270303266697325306600322942694213597487837497145936818940474683594605709915810656094946895711582990808796520952307129578257050702406259941577425695558164476262619925434984340814278885693603994343103989220531405912834683737241910909388831981316672807422998002911896925330978810373411255686725923466915427875291100531613472258369369776036678430489209966620876838362904537518546838461380403407160170590298997968166491945709783794946458632611819166899513589416298227968790325228203202324453852625846622882359370600709349788259936935934759551662408190333601625889286921370676828735439902411789207754082454048393473889401614244844330297642287412584233497215879609684645234434332060270456243495083552683498083483483330908174241573865653816465660170722547747434993036285245295482798039032288343373151359905584017500636033197531584169368550864617618067355827748601087902219706480616341879149726947663711479464439077812735852355780687768814148659787486783967747898374324764179821757711146136398613479043140769520103885181338763730498039609649224582420601780480999671472745001383403792852930123588030168261410742167667979407157776475430878287765562633070556444705124450369223529510351134994987669213676007417083961383583701064646768997389290899495363364439305686972714812155337468668483753458510728122150849247724365765908986388215515673064256876509644839800534639013070616272164354276550023732128546205175999617581383000805122189106462726467319277710359026256982975578587687778417626350475901162495353183054514802769638434826449379553326840272255872687596113523989745491009757980290357449371618407130590070964001470993910207805213127178794990468588378174515256938750017266272068858873906318156801750758778507646394207229201460588752151886722999877190996892010978046582104240679789853691068919242294279714075142478242259209705612550104844715942250312304939492145526902169752212465283439140404251622466724504644042510815565780890637712851541102969040472878171354424872877437267700344143360353810998264957442079446503780422232181289887897626258749338520658904408955638328601339570023292044555588767923487178888591593473734170986506089026981453064352271425829442830155932118913332813255587940535113228946041992851295168434906628358567972627244641604950297364814859693652704843744224276185449602896260693806873861102203420236890898774280366232931061583549308504544625531542597191414186762379495142029860312443935537329603761426409718921789283881010006709430485581359494433058617948726058212018710774218408107401191259096041466504777280374221666890498673261945414342473476675160063543353916532248747378042671243586584400217857596287048638303817082339082525647379208483790569481480581891345047746371245607175772800537982663909335547628830953261596711181567514599321383156151978349099535800331164341219810961933109550756249203545171282788674431225075413667262071292911069701188301893575054747474917419519996060065832939280312665626500796368156048091327150704575285827887641576314579530554182110333990148397033715390025669212393401038135659591491471526897027814885443504208626574068113170300880747802423373222730778455899391068253045540811166718681079641696620356166977546680082542967822391968315854622901404187690033374724274052238084670736390528119871096164647731734063841634941482114795942976226411371829748397861389776918080324676832831806512253662442552750699563706736221641808509008408119410236604688937409732535421453708401352360677473271022692698525939360792271962575445297932110836974687066515932775753013253241487207790069153372395422016922213321768421790506776683041438849628779147839410454577029294473857775853802312281219787730512903776908118527594072812049284077445920120268970915886149917651766146397127905781241295112935522090166943159233325804127944614584410465323150387393444481544878669522574923544146613649707236809737785174743449586369715450077333100982978110757927929934129563933164300222738519952365000454744147782630915885992123776636331588850619375799888255924454220258464140887990807364131672782664867187169649666656186603854482124274888152936767335024228739169195396683573110312684367223393315901814517151542855562830917262528836401707126582347023516796569610067447221122343029861959755572141012806989372525506800033988401269854966868194406456076139266185788481639269016257269960641372660932019914678441322610320540157033592274662667770322984916969014072085257469384487426682855548087773161435529554046629310460098984290009179386202565235281142009969478142419122957677782659585153543688554868633182208071310679199001721379739209142604289772651699014401287002073636001294588445651456637760543632194888193614053858013120054469563382876713833615347027226042053954761040312154411642438251274446297597336714028130290280983018766289183180578047201020944637735357410303698215881301356664872225530802698668708151814832106505498803171667141588309493825446168792553188639867993205417794966271840433374867267047124670436744054222346815022265752893146898641583624411267463835555216534216439082197946995087137175718579608058751260012920805909734000493279535972516662598740107919314989658938987967399604032116166015381218084411338137537257348394086856654795585645591562797651128096951161240105176301454972558705344047377206664649724440719500494905948787988851125631290116295297269929877870907757488183992620792267561737731005542546611719263469374895175246511940846517898166062558180879806737130529378453855240936759168986149250217130416360923260371086878926743694722517678069258951616574109705455800059996378139224635779918628591675486780150385011134325995333310970439244565498455428254267002656351217815005322681660697199586999243983745141821018261660151843187811663368884056202294399224114348368084122638325946034149513090309465797926754580907748612342040944414605935334148755514317504449352415262422145054932588019143814531063474737664192212628545505133849504814169881891101639941907113085603108911037433225457239531488777820479070259992534110684349315911379476030155233638111099531164105179276764156497582159440747387894509792583107573662403063906047560558036179177065371488908570150787277361527026718975342159612296004524377436138462727769990934711719919110927679817947482260762026218951511006023717339052959739242955054178868551043414623893451866619997333862502218152295448172944822780231434771510220921220635594747179033000860806148377773580165373044158382241927939103358606418099815955430512969419600116377394231716816244422120125401754027703833780874081038611768725073710137272379423615252060736434568302221286234749399281564095265120861956527234873907951456131726616434516696605565983559746520499142730500583074322237830267213324705766050050001598190933175777121685514851122530081432314897401483790100331329583112624444422933521660228539273538045971445611364392894550175998814376244969471013008224131511831048768856134631827450402344682967906295471468931892240698653149678798187361095381275800743047842045452668410354715374032262239635280767796622690024992912860864323207132799587286578051719983703449119665093192048523796761449073171336699307714284681253167816400219494659313390297760650931446654526258327846481460705286295909360934882308571318622890760020021690058774729902958329323052451163553928683710072263639516135192273416204256696464259193778802876728343095348467781183127486217407521311201076146286745215564046638726922205686664655784300566366280870159495458601252940670818443670742058614221398176646845055406540376003063623660224382734005049571674021930082916869347219581621061777324583807596474800672547557918491899801198881387841497802790963103862885946462599602139034211100130177562549345910601131468302396323179380088494364469081968334857883210215984639965635175961866848617457009557703495879660994176469767376563156544123601318229198389821683845519184445538851262821397879670089824331823802935538043099912452668307273070753081658582263206501551757111340151626185167280287668033277505693171521888696100494476035329137617891719990200247589587394197142052098410362976591940184223571256337090025699292968470592846935580263040905169052609904106532232739465914243397931986064894835403789890631863437893997149279111974242160349462975861115923393296871893754633332124565164440367984472445810510552357563316167571105068932782036854308680915054920643953200531685977251170189735173644397114795299830190207365683457545697372543766461346532661560221239465064804698600654231690870512975677583680922018867686188197169412557983510933963921488263953945817874514649947039758910212266190927718912224755066774567490903793688181805950792002038842953180349399110910815761238416786215425769335753036988053665098659089882359104316901564313133259392021921682344227796899293143014432469615971281246682394926796663422597442797515715212289904794348407014103552870948750297928951052847101096722798620662943203734510750899939386508459475728626887719101668225040987750802673087451436533731981208988979764383233068990929087820207824175390060613950961718985674637408182336653723404987991529091471159675414295429405070509346847489840483988762574728431939258387516368366865518498534096254663467331071735885426141990739604061080029261125725381830101753275168503638822798940751389090942745421738034197590598549463327290991834846346301828365452707338945366726549623406878621430266251107737019845388274367808633523960521496015951130001229760916259395811101378514011108231191733219063269634830959062478239638917761560031541927153527088585630775210890875824248525929763831808113441484607740261858595902973715199014963482309881070750930466797412572666514763286052225482141972963134401270674414921854463842434743369547956370411437555666716423929097452096137229068193515525052994160265667065327886332730759734640067981321331706994026541913227668014029617371260991206327901272904597292015818619665757486069569629530597368407916678373122330228924073878349877265256193864463899940112536950415538523397052292323543779259653894455240248682622350609157509537903250755417266277864424045530519497546151756117972385674023913915980023151265915236539862263569942558687926037510169862977948571331441964637800695973720511454099493074474954145313215258422236644173449291511560434451664468220988627015124877477158776630909277596765140662133443785140088891972419317892337354552417160031145334758130553170783607046914959119147597012926933457553704481401743321564035145715331929181611626403801915731095492297464927204600138954701929921301811884698636030170390242572147230637071730754885225767325917557256331124500695005945142936708152643118450730197202310079817344196413477317250948623297745265966384142915081782002847112816956899354989259489171415589890462612613396033021466834140802629882536947165213778740451088815315123659211970213751680702471216404052335452527814867013702574664058734870879135114726549885204140753505748876307743325174107671159803583567244253747150864854766092604426911148490748116192186038321510239811942382590912633471771508832477090045754082938634245891565558358999053497019467590361600719154693945516039439474415713725370837719323776566080393873955006711282326541763494627536242492727503801565645951725828169930324037416281684835111584598243712832148914171270556558178941595908359857068007854080223868152923216451692946373186025659220205230743230083875757683678705301225976440535339752446043571781882330822978504498107571857477841202720405819607898104653484679447617383178857752635913266670538713692328453377849703651666389249001950322739197119434948967988354154902710536099829637582945227334159849710182944840901219767692278790958452552913166907661660219660891615147037208144834794761820216732619318822178563268768338232520020245318509844926502905678784726657871805210785706446124619496843861670428482491090280042649241931317826747645283793549471696595436639533759295984373500286241890334548205582516149273392413381945816938204635028659487115739249259966304755598855299840426317481577846245490936959746330705997744961473560019388333798112831594205634701702309849108287037582754716188625309229020481073105433160410843994646921983320928487577797169461798751047128940603016875806662005391516979158241072542214210584815281602754284609011688599377493847632126933119103016184548187714785647734200944524172184116423819408853364732228164813481909926095647782361975176812505662439425696262626974907256029852360151903076863827114380273684049133309433955293002391388939174904187165750345351776258419852147572727190368120371571885755247052531846744336846536173634725556404767746011600455588273592544125939233753459100644885460169718325279679433062209541316249219107181851501898502939339491108534346095882883528202272176676868079345546401668221875880102445906262722421692682278822990220770665401502735787280878141890389068261599922336815325474198215539693560610331391425239946093221606652513002523938906013438170010424760777002472973654895632347105526834399668590359997373869245601970014557369334461563848925793732692647588123500751437159787685676721152541205177207561504279752308311750357207765912911088555824250575631541497723045865009020233290137188290921356453096218458785987268520842127810990565123565737551458354141519262082467489377959261353039328622990902944565019572967777838129405414636400810952900760453561586429585956114837783258014708599089065487875973646198351695389288952312616618707335161105028386494967779623720129690025318636264322021633804209750043398550152856135101886945410366781587127279319040044376701221635068138011905337861266133908943889306814085710230362814599165950893575533518144973864681277225265817743779353986423341361274517820044988549104849384879512693982107884370850197913195802830887678427142435667865684708324999934665095914178773348158736222838333529301204140516430075547680679891479726614869461479828572716098586913864586081444169431417479416221662633884882415930606311988918930291775717406232731290063242502628891438677547129595127813929214570468624664884952370202725539465680699637404668684224028718746665899805943736840124799848828340985617732771976926078316382428828088375803231963298770006704808981456301172852361683022717351565078381684021364769784091260448723196358435871531403722395320073044463318745384988093401784288769469970882478737128094224495558255741346028442939815831346960220842889037447198072412418422660131466971351557079787932284491846286360090767844189711732140526175374631891443027701657461406699962601064635626121682455821824864493112100796207532675560436304865201183496053841134290782368736674677253535916040121717342514263697532251288766119829760935290331806715176281633161375145472912781610528701459438663012659382343858017971969699059881432664482052407422834560386682608336803502801110330859642277986398348362961205932911185009648349678323537417524501400528079159172274524276475316637601927481494414422857283813557066613592571933729061139624682071720871260491026017894252088636497234869686144242853821744645878346092819593907860143502469698039327722958729821966143216005219979580569470444549419003581025042312772757613507457843750127639920332789938228542759110159328922442099542725359294434103955843293008819028964477366275627695072148381608062450018735136089159976087032317963535726540361650664500810165423647698337583427861984016721071714451178362144361122852075705459772545129378639763796606575598334514981619163007854514092109492703786209707600250137167117518977043404469658163503899855408272950422441231237121321108219768709358702762555212539235900931645400087666987053959048908456190829282690773291496434932715275807930296711318521302557262233462766552099933112618285035835792834044463660666400263533890505338265388190935182928512168092654490702255860432594379880867106735967275994215154314610446888820534687772247479800255782027844570028960396331483587773970932301658768446650055316801447437040139024432785658193075298493391186714436051919382403210191107264386578165465821556838810074171937083015631368029919675396598615636542750575815690905819602865001766840859335051604997556582759611077530224048383012191088772631222624512567519393662278369717382611359168009450467339442401206721163094292265632186529311276130042207136961453317046808049188430043747269900820639118143234946178306915394301753110711190166855804598303771007455553646135080241670898929933251247933620893522055673902564571954491798656423718663418445022818860309925338121832228629407981925242880360953606335574892115060121076048657833862385449309979464446115910084067416866770666376425812575678331870242418367875876830396333177241961958515966822781544431236661883860982104919752115094192841744677890561157647717608354341391287331399419545631299889702468432846461252745774850593843053553473353860858080214485213050682788806245448266115462516188781611719531525006093321124386855965966190598077235472899844766917944632373624943881540951944560557329868694249421606695314249222054721131287383220903894813391895870514253796079074508959036056634762382914766719252569474160306830007631915795314745710728999041708553061713618794648654453407180896277764326581132335025235159296312991632493675804213354870871413577440283955099356692522818172793416544200363162841645787913268571572827138397483768558779438374570083075251568847836207871861633035195326635079854046533382668381981333268887925810665154678334621665452347641075304560816679392128654112550353843268689789488199036339618060124788155979452345106647816262263346414761022372681853683108231291945081960746913212917982135453136285970204013444115412776926858524196059596764703491049536410338281044503037765726117186169652868027019189891579326625308691643681666086949737080405307892172395022160020245697261941809826617874706828719040512199923267744653745933795656629984007254802044461336160983067151276616283949412834447739809387242617461911253714025162327940311180955430930633715467055833198576635603393657734433963253159536537873997254001243074749069657552968273412799963202835859636882020432952213427069623768792028668609086435994575014549325118449851463408787700391888781287954530775400271294987836500211768066758862227196941888830686643592664822408314120700749965797675159546168936715296894394302003289556998213973121898327503179484588916946173472147164969002768660306753728585900568551899240077843277106078350934457015658657052058506308886317247399826476488643726354406789030263630004359509200948215052740780747335464704155503243910015274979648003230095126945306621244603522776904147277572655109954606194863057033989368085868199813913780086592212391303732328774756127984858516151353523601996973249773869302225309693979206613755371256925869819023281897205019941913539428168151312305357892818570431361974547343039172396818054360768267039979562051065539676077705425320525994864398564296507483615848382040733890026756324762039203269019487190996053912639350588532272863805904062129286764000895546003192233078254789766373929822248566861419903891921389858204653117682533857320831334130333925319460774022218347305752829211794187074107480491717476903557122819580453387124098824411903948782210710255547861397764691156635181265640423413358807995296636745286805413446778788465742998702283518010621330602560109021912312043364377723961866380092787603575652760218552191985217958288056923168281576059003181471987338839061868020897349311525503645780134093461142163039373287249803474747289079843098369185071029679896802858641396289591011961435588766796618181008999778933212056981222229614360089177712680942561814908766124572812500472676661751894290142813258835900109325523265842342528829245629466121588093195989106309074206323227698699853395347744068399210120921210375475691912531876436305336977886583757441852770669806266124235220632767509962790948248768168157663196399941011220734309983443468272454551055097407375711325906185154309530166841636602798511855629844755216217034176675326473523108202412530195918037720057007796521299160063189539563982970819367191768164793761038902389322030151056374675680892828086598619304019621533620804282457562465027029741361194953878116145219891657101311319507214908394275867640722749504995034597185062469868886405011999777478498452818232192082956758143107607458013537996484808178514443358431099365271711655587603304947041726152289227161682836397634078722137473238270317817334428255438534087244229099966223196891056959990791613245563131038444060218816743729278227485196324365185027205874228902460031666024635514681937580654543657658463928408915532048292452934005104765219489375665897950365168646327440493093895072977300563903363917219279522487633936351793953972926132678838388051031176801866082476164399128632102924794925958785960501427298772325162784775733947590288666224791856723650401138359602863635130655258987312308839077057010996513704493171615589212797223020590950412023313113878268009691598759932901998586542930913103407816684079357081258219791799828832303202264755996131508648399612397909192715069075114181127278925315279372541878695335860842781124856438072697578101964525258167316350165358609207897680864472888576783567750892456821328090933476280287286449651282913113252055548636858221067634268717456126797010919212861154938754196455662080963665291421026802326488852228802872782244922763455374599010940165186084145603055695925934982468828056535330318600282668053069080687958748714453926400452614747267903234377683859025350593729718724309559304269405934418938796709542580335336561249214990638542267725931614262728379874191776057826357297131100447314520701071397395180829730355681846175740032247698967447706186458199423800138406262300824176461162881541161252961042842189287823332350812851204301515031083211613663723023946689142448790924752757670213783294275266094923499069498997565604872221306417718243699536900610562546013117379261852357502566956209078052383615695868579928154426832845027494392132832525496887533516500772278637610250564788944469391728107012254459077317815212695717087613962394376983066545381138337802669138164754436584086288122923889440878339389642501166461992333329963355325963975225739445860311779648888648542729769085867167259315785281797624935875549120302924030957768242094263747787716248635136326088901482552595149759741313403465181153418124544453140857045384188030068619833919593736841838398658382636180930028139538418526724266047530933155482531878437047292339032111783734350889070223271786757009747539536793938596326588948906257621018461836430670746194497290625984072461429655266142528703796132132499106841066195760944987063809211662098493421774178651990879131033060134745058193221347642489141605187867017411090369281316085946681242939121048806422524939670011608699465469963557928293383255701345913710857887475940469042644758092106421750603619174317516098214144152461683852457296397291567663737972713344566907934805907697416378727978624420868748090991104205705218383450239327087399082720573416872719072155371642399523545860353709933596324053468280012578311850704629973424772305798253092348956506541886198756812411008646018777042602442171176167184324262873998048579034421178134238915081589488952036043077748174246875035595605791525756000286064866046698787428240376762055528589419518298699281897130373705669595018608726232371268513431290505381438225689626058753926744310247345902958521330265013016992568572289374582054139675744927573285708211804127222706488644058691594239812409599088279854797816559047312834710066874483146277289434456185712275403799024494345207239079565276006405201696886699448950574332792127874545200000836722375346238947523541611458591896073600091801393184972204359751940148241419497081867688600257765491261957673424265485140068744813597517256888672200348853388300151287955361341973653956998785318311254746271319470992625853192761155593592105722633354062732861380639964210059849783775608252842541095737620006201329066166013069246758866153846912255941457674751994453547226884538399769905454083972883220767084146689115841513592739291379332289553791281224855829945316165240192454752973654171228139372686462554086158680106747171941001116938081261025316494035910581361234300704215476818571460032537598664800754026854055659764478286479447033528306273367444975264564318788339809952259714022280383058224466786173179061395481909469746266629194752995342181763540605596193937006374365175807228319929925359780322681986069247989633252186400961057928112926967124858566114748644791558934785256366609091221204227622016107679038913169957161809814402716842148123452524505298256516362362804628597872264609283280658887057763752967664699941222065458042630454331922804181768380577796657236255052523949550397315943037393650685386389961265360278128531763054134407772544396704336055518817584569608783954740675337015317170724022570860745832626833908878593699175854635936746991401216939599136701553695488105496945305928078249377382878021227444245506069756216284499366492653637388344466643233191515689534877640755614481415218848509831434824597245532836644060129457168720901249909706961708887776634637987170897464106410780011955814607109421672727983260091340607114725669276155628883285269796720892910688488207613260107047177410523000738832267398209899715915836971757952235205612790329490133496087077430124434653707086397877322087956942792416875188700925103388952160186878990903087065336286971095341944626450600586974052449852136040724411426317449322834621772702666589383544123858942436973968431638766673416425490661119293547832049923284608571783548789993665250902896420147370074206195068742930436019091723240197340345691265212357381857764758571025830999924622038997942769469926768516165738128037137157936833428543881273799462941668562620046189126096150817154904653232901707304025691928079773885888036577022866340526188948846122255961642850413696045630292429184749275959236994183059444046765959631244364900191533974515689263322342933240671534724915564151760325872193857988500219494139598906013136525401518521989046278345163292181875647298345262081585401362096828695540155764450905273490140636150105253392968775460183606812763791666942111202244901187919768303585998619210606728691400607588615908553978358032391576932347938193291665975604996802085329501429705223122196587268539898834656071107567616719551142565884750262682546795657219011721286336304730558808783708874904467210248097905105128192781914381018362577919250181089425011779824986971696375455569659378341368342880401185020823685787643709200792307422791162021300952498011380153188062407389162992673930565841067341547908321652190421553229683824489294203427836515618627397748232210408297174955814393716906199242339131305512893737819070251295308378263991379116007213947526852828671077642503693630990908284189247307121816721781594408434790904733432089625641389589675626030175854317157095908938736288701948036745151590454168507714721929696134105128056418500727832328145820325781752734639802957831116217959871355476546051045834289897894467052524871457806827629630676974146434105700953905508224070016619905413207645488169300622509910143847410591989654751766311284969118427065775397117376287876317858636137247589378195058501598214769749003538063579866200831023300525374649025099306223160438212190411328270839642479973816149822403579558690993757067978595675036825184089883621207921042697539872420496400911650630058120043982204326633646278304704930501746257879850399624219107484868486660803593673940073918181458431060054826287823076807212095630843611946395375845245639399142060094100020002007375816420720735490143104692256544621504766070736786913123827391171586014666756978269099733208541207000320851065873402100494162053576729041915696117902516937097487232833015556580331871918195649771003779675788755929883352978400911872019037649708382346035705206269712151232349894575597106685910862072879610538618034825802626934516779614142729893045583521704182717849784806291824564438004850996909930805991553937186982600939041136363221189413303395700396736915919789040278888132830840965067710749064834077962938563964736481207022164917135682222522127119320592179494128766685405437567269698377017699474272937934688208887678823835788053906052683645145973652929309241727584133156727025982382109885198982432120603387088882696245890681914916610558558647851770835993082980045932380651690520316183116664374253179680978161320413423363076063611362536896561153965912426160536899591673018677357761869493680906640148002827232203718966841368220783619641740785554616901589727922808379218306763907355793978519643981297074454115403679225460206211522261758665081802300781471657688702279142782819016117798741801106482191354548051835959754360527838863057504463853549350164223525487192836726119169513631685068763679014540439618577210430506630960808762258003940876736221581332887705539762166899788558610118993461379323787961925217673392556530472574741423419285370077605846316980455593688426196864499587168701077804491388765897345868005140045786749719313817998807795851236030500421323780025546795715865282545975133430686722907712949926550267678855075244856611297245502967475866126587136969181092257659359554844060586147478837602992083125310409187402326803714816085468478729290404407187247331704955679911672396124912581449640942532382865409725510149393641525303099012672561742715829401711426773029570518680176698710576200770876745127512948443309704372539331596535538356953575904145396502130448592943729464111443176936445528556855462939270225022390939354795728473155420216135611874580288963552718127677179162903685169523269904044700480876494359901197862522901593513992431101077024098432803343467812639580020663610277394583795156103551388555409593156832667725195978595583241187338480657235852548803466372449736459801181350384794296792097676468507218713293477283595762153958376402249269901527012092539657226521825568009576739396036727901556878600522441513924012619065617524717219447826392331795266692201422053727626820192700516724437053662246338855124529250681388955236940292282077889183032231740954348539011647108820092234842894511789288357731601401471655568842539438143582974646484698666530038598804933355293104987757178892509837803529893800565682685626898284860304325149031476291156777883539816072191778589767027612039074270636568479576774244939415562294403900048269576582793831238244941417699458033766908056287613541811417287962690154830457153756400824617287699247811913361497238054531815465974890015649405268135132010978828030676503920987615771390865396918478222862507687509684362766654069372347343430142624677360670702635537033675253074279334746175440487305750616835976770041974272535618175166393551730311494696613299674757570784453752645547064250079439532473593730569086936106878134031758378847231392239170680051730481072464678649512652317320076193332035709931888475242880161965690050791111331159144771412117903902865427051108571197214168428094473269278224433438207831385922189858172469968429593664877712270234827087806174660294552888517218110691798788710423591496035916894705344257965414534012448022408799746872527280637338327562086717899357682116248249385288741506914420234435638592223634587314438176458550505097582597791561406670606957478677064628521363356241170552053715950734868324006628165516577453306960954894883142663761442329776081522836815456868676757511665921045022027044549487762000573974722606689100988115437926197614511822469224376484775530397595228845844404573293625311937223762304966602650584640535766538920602864242138011283542858480372868708153215000564907469233030466936990165769414228833329284041011208949551341336758809529218846227276390023624113251389033919956527744664510459582632556373400187727543125851788718509960880011294170881551349892631859447239050507882972967546185949141557818852815603246263236161011555029654583089267347664472187982839011193713728870434533964783153003938658519713819243878860232711298118709032989366394966285184028883057754119893263581647351963888628016928535360599980615837948095340217999145113912351216273258094879662549904568914384177621610749760349631307811638469436365043085231426123838353614323765539295922659628304555162879093380747691890151436363625274512082125895372515421307404903034678657547457759196792414112130057598381467127678369786910742162458296742863901343236530317005877783098968942571773380033679126549792197506611435790479511116723617361104166227880790954910965846215730654780774579049964921350783014564763017998291502858100064732078769649062912810900740949112472392063014909375676686721747321423752033408418040406082107821019084207385868870140143512675062486335788173111260428551916445143393702673426546802695444515741935237446699522769734774957687704235549567222058834736313502317605496581415553045952893862895127125638139154772089634201825293692621121436031314588324461456053003258966820234033122341264794432674664600104226086893593735011761142866738786717399719900951343733535218606212650826181480123780861244290427037690611251415367722135442317102344637156464678617564156818854280985513964773273908353019145832522023887211816283112178018294602346889174994404026363583011814691992347336411402395101161640977401869163331834436577294557850330977658377830839094509587895526707994072151207363352180984831850214527578079916862734614717816227742264799765965009541355998389646991901923670139027648754521460768822081840815290531720022745524487960634341488805829564455193652789842597714570686759324056454824292154909404871986452496032782964435719172183666419432187084672851149566523555300577028430798343283232351231821492369246997648034085404949858312131539954375074769478102443879366562846571845518345533395726315943129484181237159704740870910627858354621014671582345414619843289933376733492123939803485879449353755229799980528512505226958544665735950570910362508857130031683314674481245856823648333582573649335229415995493957402195136423728556027847236602922981639789251092235031813156881262596753139758905748558354111126805619341126713010812302552372746625323972890324867386627155527724942005310264089858119858476929116292062846555003378960726748136045308737680796375296560829834563161186500740482969183344950170511341576664215717851949745603474804458478679590406946500973532180974067314877935198030481836917533937943045060665141450829588593502757539953445973894621918131737274407569700360329151428180309713073846336453430196304795908896756915992742701756268705277869787939412084251783923834566912784691388625363550441754186560949741006058382430431753473418191232611217443739238988050867431954182621015451218504111328210608354377617709857291689634357231176948150420566971847636800154846313264875379434926007207538510109494708191577600317228011682873659927570577887521061022210877627177520473725941490423495991442722329687575344037597601529327908135605427403351488046085041905707072034487978378921346404666469957695369454356372466157922173384023946577382894233083307610526577014218722698759785878021217247494715026268963784770631892994184533288182874586381925841303075985074099918586531618396192983766105268206551391169348126383908698827441432848471533676705095234667273269129943252387118079960309048938123382679148150902768983679593880883183923995011194006381808511893439114459097049175242923862962082704539081989427197918012873268530885690987104417173187437598506970944118711336213586113182253806240021827120231491960773491737668190877436363173233819010265235994443488988566759135202575513967623288024730752400453634965894928544952115409435787163799288812344771929028452817262726909559727690902154827802570812886958639391376829373495444442802285578037584276149659761888942836414853352204730354223830055792200766523268797959795264096040352948576442885122682239672596701753324814183009608807246456873800754052026460589738969058579737762014660065821362553933392765321538487752427757315125366408229808391817240222225066560576233360460566082017753220063005870954118213156036490066332535274720106894008586983336079576290575993546506797755874576907629681287710118634764169275453276126178148244931128511810116942445035393923151361924953268285793557874581675286138811137688140566694242854441220498401043221104328505344184261833589004472058589743811940346753968463729186924140565317416030819763519391523527994949209615664319335241872829130816308405250264238619103659320149842582471436101303268253830933951450119490917179884420105778214683447436935718801149847381686954220827978929253747760913464831420740702806032285259435278825505869998823573207906334760584166991832781824926244238197861219458474128964141482481671029672089309591855370930630138803618528625249575051877039162495052497318247771841934290735512395971046109511502207894900922549891393420861348052725108912690524692086024550373943186974022766610229733074601473163427691287915441962416997110897331522252449372747386598150849401812654237844729582524799094856573584423649683289960613042241706079258639059661531921959293920985181280416375973985838703469469104182158885374362052535689704281550339052604073357543300510970710926975178176957835396282296280942655481212435729588206401168406917099442119066363307099782444475283120576236405986975825448692892508662684445071192896145478159009911823479243624512703266817043520325802860483706326956794638564871421265713136799476743108716508645680182789225769464513415228163756959178941511922037734190908036647700719271503475427563365974421981267841643968803198697041708635169747997536173021061780148553168790822636510161432636983979754941302991151254184138005483193522066185098780255022758341229306579768065245153335403890826129744461892231888727862744217925889200276368512584268144840220631721985981324836344044954723606457354510570372610318597215573763908553453182963854259685528208226441699307156263232258128584447792409834915261710361902959046592786934190106245888142955825044383764146149711450568857284921886940227818125244820105193540883065329470620825710738767954774510192946475554412970119514073944138681526025383599252721522123048632770151645062268400280232044638286368051503320129387839395560235822492123528070881564750104111212498075529476016544462879386869958919932730558653262983159885180625586647174462720269961816835356050242741041469752713114874280759899512630025165079306916398722838721512476723416225279059270209154166776452467339408054797785500514903701751374840418226269856371603506961350273103828163096694253530387788953888691747024173985819943623299896097480627232225846556823311364479709356551888381742049919867836209376227965336202497302512028545810903877166108088151511004934928328784653123238611707020201124325347529555955810308604319678528662457846216383506858349410529566851705664689463861152576388647961032287586899900725556614694535004959517196197563805729448130968169144429228001453367545224010784452787278466938608182316798906251530221498562643368591680818144399377741910352382565339526900209902516472471716779748888535679213373665495264953214559495031397966235594054782199827512479356578767183401589517328472241823898834420503000827794739448944000051524013089069833554569052959050250497854674532262160982036129996570556364751460873751298860660099850175095500257222884982484806625903558252149966687345263788340110854411245228153653670880849652716898091538217481297548359349559056081376544585549042223385185149219180021154091634014704901539685602118286304961192129330951231997956330950759849071563883792005037696383413935452685049578166424215244358455850310898529044545408273101854821527828783934453805181536890829393588710278596404062727256368738804647912663805306464655829448173986440107151874597686116352884161820308480187131565636080630022859256973141973227958627968645457703916897692454402024715433533510350566761914727102521392618189207026401715408075341328041192176274790912311114957775379822649433377282533614818673678063622006215780651951264865045616354788034110813843491464191512419412352728017429972129424445867639382350545099053697424635216453701104407119192792303033222818097114699306658173978955602845706771967513130599149499885160640587444924844376631620941115094533978441454089310749298369223646870853368847936648342115899013939977164501835209643086261690073741472653151937041060997163588716702004619738511169454621455944719998559319479435807445645700757240704997235122005203771649785519203328808805181494309429036645040183873707614875211448464876699900380421745586997189004862771893403488582212700189576998880418971289297669861222773698591256723942370295849554507256385047751339541976452937616801927133225915457203944603597464447355079930342254204270986959997692329570413461577545178100953161844809096635369593659823781483293943031534362888217208885443712206312431003418186070296457606460732828146368856135729963614745350953192552225642391189203110820315983086909216060244099145104537468307547021970983971985021801839017175375461413395491374396000393352458553396899733028410717593281486286266399447333190106332991629663970821929520445617597117850992158242782378191423562941467548774666277455038010156370714479139450427585740365486997051345646886037124904741740896646848234786357477725491246602014076282490805169089449290059697262106511545140603171886942571248033146146188144102119419149318679860602648648398596488255521878028916956041918106737181270638523336166397521134054734598806076935490360616116468001251280906766414849885859553714536146458190648420473947909818384633939239991197865064356320798599881753758042295334004639723128075234762918878030277053124885603946790867917040019101616821273586905307003157375930468929869372091868995346665008569161436818585253288946340781683617526249230177866644811470418290761567548991055103315584778648974615503834715207459447212728402208234968929724768237613065183858640623987680842781529734743984327446719364472009926539535017775184311489981721326664663179894419604938340845955692555768896883199884399131064953091457695332567703923886553321087105815585912155924805117666403102484298356797648685009765081091110742607309471201942377206450473515550594791579877944148202124162377804470922471889048601226847686389623063305568255902129002414325187144255648377758428992710593654002853394245009749556567852165404842779777598742909542997146546403077527578678769410986495626017009039916024695251047458997532492913470192665294146938646755400762001339339553305013905268293707060579117245119316933556587928242210844974525498460186790650751518915127231297608746741980910183026723309810956142232202182586681109215643812273973826106231649650231013179366483507592989333859473278277077247541327784389084191642901011760291806863630424702130943382300636781290057176291577048131903551470999459677786193048585526837717459003650806022269469816559152254909453874358032942382630501419797731085765466836677724827317237358718971929878615726243500318818414499805276433887628348965972237333624241258559926543224364375170437981949025127860925273877484714746892628355936580364476939765253372118680769548810325789477717430853282843887982832313937803476765575342399910669857475791580534438626876392508044731512250633464791697705797671901216714081815578979246527925217349624078674300095161648693763545104885410814564381492415790058063452441370121627409083504332414500086383789546103445108627578293959722871261042447169035547409148909605817538480502089762647819250498269341074377955855574959498795689916489053369814960346473207187589741286723074789676117225105802873002158692091453767290323123996408902927591994151364745942365432657089398802316681826259806723714222430832056144151932686424701191639662515836283963238400481837208609553642845322753214535824075237020970456879916041227738830095763568612475374219481048522827883819121965169784180264796976694889690940031411128433152248203682972472663037061084293957006727440683204972401087860897285594446989325902259793263841295418215051988545546168410978286879641487133618004653674543092435801111231874021293841148255807313437402681009190108247809067532927358868041694733498983207553417652486594208691513866502517323637627607909016725561452257034525500146423015845253998270100618503779576930092958019398580802447249833848249132696145731085478507915905748234630263544867881286760777173309033147377025431041351558938667013938955540077911672038858345893383024570258789906086546001159990411548842090229983365954096198710357672121133381572874843527712252870340436734642817025882382392374840572547958658329794960578799783382212827526747296516594553087346980290655226579987612175820263854586754576859245698613371743242470094383264465182854867166094846677244485049329442383751474440977323033839783315939976636646280693826836701139823073681348934290962874765908614261384614146645282381657779114194279183468140766570679179308862784503122832570585250711188579444861663006258821827305704219646131747163128293356866506829719450846319509839363094974617643023819539271156439750797765095276593288106784597080847886605697017114272611151324555108917210707759607596498297646247623889396309174927413323153766795369365433297189574572687293542538852132944437869556796849192610426341258733827497014250181984920790224093081533720337639873898062330749662550334859588297720691615186604146804552804743137717448806651212615445097552510006152712157315007066385750501324802395650313089280760766404068621003856414148050712091027747364459233396389509708696991881959846491757430053484783073667725717115978353872167702588461280375511641783146305007240811386831039741236311694697433085190039844195568471396128387579924488365745538984292388045421409333678342255187243921726789715119732107431708698231091294386965018436973269354578237346081319899263862598567538233552710040064680568197776771447341105943603785100185788434449203239838036089560947543899485895480767360778249237925197110971198408957897955681388270066610331508935865585748225087828299451547575832534263886670324559610345638063995971914051304176272269158521393553474425162105606586051996346770245791811503572059096550665653453184836243963790882768667418652543890920963969964860815645276624254009208031771016196583898560074465757131644364467866075916147141029674976372861769168930421610886221137358202113740398621739586034530111635961803642169581616566249131864276897941403205835479100902733639000012842055252219417372148712959877714643518671785870147295797268174370750306280009639467406404742091253506375723948301863515215187998128469564879145100578988729147641483502518090749449352078700676637289135537973675915748899934634359938231639005760488330629990958782238920402702779762761885720056381403611090812914760311077545990492129526346142851916093686558269494564070636114772656097672106368156482969003301928816054211776013157663417194822638131781631072552272819267737393637229325287423118455382490529718754977755698457589081151175703258170991952382105456082977831455268474400694898657033626183535460309730442899093491049543177973604880762112658278685777849569903734245216512156163437203103478065111161424465421117868628693771070393590902167158522600336847016844751352694446949341058694383708713051565576719807554595064396176659929380583547145129311522965448939839758555274292413564695592354250905646689946841777721661524737489881624066670330219270621738278059546495491674816780688153926063882617670809358413904325931009275206693836491652192141364406133233063126934187844062140293397787683032545589215481075357524082254989351427835986317370087425152362647126823963420171635710231026980989914042317512583015833738903903163252505060514336357349785103108484414619794759177838410560438375621152919547479522666733088267225010287028756312214443897967549031875013810806051928917644107903758616297669805929696493782479637942238033467485603318569377553526138325585034938158159159343672853371708563282571767306350018900266749687789009227066750693246333558993130970201065235380455896644596751266292524455836069419616283921537011427774192283614620494053952916751406032858259421341724075956867219330041461274489778103969001577889825211588052868468192766365848607891731422347703413895123165911924043802172231196354953011930423207482373872103090470463741465066286358392795451125352478416376155602258577226234702769241453121652982954919296887558804079367719524525052941316577639826788059060651186603558676583712329631016869238200595879209992922149215609278200643678107655001108786751906914277090688740055711037349912063721947187191822705763170947344061033020490334452844508415784477913690590384606515755310666190597517726845063717078301682004718479682909622175714309959415362457553704139285025439477011376788298666268260786893014037328472451110648308714966365880774448413072071633083302599807710317996626074153716882123729714335766879670258065079059717492982271493997126208370735788212317539962686390386251543078283501121997323066608129078999033333790893579634133276773562318313377739998943027533379753058920449531599688315930482648483811384614981033737566912544902855166891276451758672180452255284444109374452216482213957012431068652307152509944347473436046877696750223177023585831353602363831964866509711874827654222512943257620126074302210225815741240942178697293567784380748328367978703089342002912698925634061484181476832959237845484874913865704369115290455281032532935666245017150015896198065328616825643610808003683411150513243641294048972979794721814441143583600984865305615026752355374601100686586509369084131514459979278785681246647578834763488206243572896494897975655965076615634334827208483931182986758836443772176320420124519576873479771806729978500448675055328024024346098669141425647761332034858977690682850417972230510224141588099049455633045239907978388835721547413120848268476542812867572082227277612763516353421334941981876603545448732967312500275452343338754439811357454307735861737441985094298662887735561896076281895471979579553705063382914953669210120837628804994511139872082906472057987858921726491452735018845378062732420437603305032239860455704384206387420017155138080651749794035692318523238252952853948551034688219712150203797722964342946981591750171506835313426186030746822267304920311358210956370693663733792867857909548471147297827258942423897200332200690632981770007049517943274195386882124335273767560732334205318482455959574997728383401121485819901590828281108244748102421150200603551950239286406806805980018360876493356880687384636403559581033916012187943094200690145134922867431964521870826972357388312972406146467770836595847836418097125823610837075083435683030539277795187423671415246706036326690476590334549371947017505619677165523416997161720470906380389601899859040921529527217004340324311228556776504400814929068289897882540852562800401915721718411781572918903703022615910983937958250279768769506795021633993049212909005756289361756348282551723702663195191338292080734945212351149369304957715705382780418925682182955540499960331087465602750831809249881234658267469294422767467531644701696953313639414329773042761715672552259724996581618757978201287931049513825312372536320393626096451804047233730971372931118016993825618234319619042270701340130417082430344782530338600982296529994154431010335805235822413606905656501318386976716180807007273639636414025147323204334126684817998819940567798011669431949591261090699862663303467577315287475301790310879984115974296595960257053460155140940582678171512717984793564161431604048404421706590595809330998843676341806370831365182173579344975701689626129327214562204197081306726207400974426674335688126003689319639638924059764018410330655484562789685111860038918630570244075526699883896502984629286844489729226490824949261950810315019982545811535718561059904208055754135518305702365312022987274166150977741188902668396639048972796050165835560752018133431478264089953501081749573824803880982648836912318241439116050153901852884691181937466878650903604222972709133215206673163316313796454819775774284534918896011591583216797446396018552785270425787084968226536412026591479129866218590682423219253955611857169624711937776780088448334027005675735637790461397871516780938307021586266930564246283999362829949196550717131399568692672509199352420954615317955490021567954799378446086843824688462308815009534689756115465351905377787790237355713921694707518822695130873899782751805414378245495940592802150205429821584996803073419374515236343565723143306321455949405835211087753673425121569843880157602705862750652865168984677493829535690300383488603141796329106653357021853166263751402130515191615199004484120922017216808472329873793607834046974308772372784992729251701206715137418912133855894612370423366777103306581605747812118084001256599160824053284333481164686758268706669257604835579255648480966901101483604234289938597171392935402869108943320348922692207580952192265981742841887302100020602863369347640820291331844347472385022484101554073408342735036071629478509675397474677547950355182627660047057910003394547178241772299668727836973497319481980277781882225162756689433728837704447850318866401476086954718231024542271627225429379366276428718050453003910190291413712266116268193529848182800246214944172652639556410907975017111819896592641036221639430872555332399001411885126404847264217914714071724568227320448580998086978543268474353377626243872988521780775417184792970628209319516015600731558727953887541582764229089275060906959375776862720076922876100952480682445408816050059486852669374887839212677204830680169140636409181805847289524092587312219327962355932656339368785080645012017817721263325850710059528709449911170505360518189953097808639696111772324196190113210228650821642258035435782368985576002134306679861124052660388952907101852509926096267669341133063070686153001410146392777862411423288815812685347662397604891263658324488513492826945710936322344228086031679104787457487971714892873437716250746703367315683095680080990688386960496214846777436855683402978793689925467283596851376955516785242858962464893196723830513340706975579796368200359288271710244600018577524061506701993302212267851944818051486251586539560255132778063345263392963664552105855178868677292274886511348282288217509526592086295586883500504768087511870424302430123243134421037607131114539361446305044446665712994544919491393189319607778642532335445080672663753207102626635089321880898489518552773812385314684403658964152938661028282252912887363524633050150505626719760079978557347497231371232090039362806647634557441060529889318603154895625889016232273848505162859843370676666953391989414546329299149922790424562976755145279941280973133739126213492657889050252055816640691428728251548833715098074393666796542216665693993198655608461586916033956147997103924059300037469123061977355773044647868261664888769904572630340815501601712507933448375385555509446345365108076421916901164402581957021402941672158856917778345480607862269150023113716940959883085921098224330087069214378079093019632976567465973016186034741651344924153568171119012407473335437138514502967938216296005555792960149620957879049257996693139295533692916985014243751572883067775268977848916251541848721194339350841939501237270994922164969199952604750697086643513930862429009023091795117620058873397542101325983109091773994384839809430067707078237878327284981106932938271890725813156401368823120715273533368754139997202609306305376629636802291304638664404618141795506255216255573547482153570098385468431359994744167927827274111519995393755810010960681301610001417874670056561967124074278992337766059007453135117561486705066079153161169105143516949310698883183590985863947012456816089353705222857394516799826302579906052665825719722320881413278243989785223118041430422971840366702328845486033297143114676780340290956898387722409176145548659478833059128939506302938265314198055604805792959489338870246389325197235110378227153727625304577616914043749821905882664315700787035479424471377055557756252888027775971120242039312742349225551669847392870721092188504522728030203186372880149145265498532888666367578560103851772259900422563374000889017341433737381547928172628453305916841540949766617806291480291030877256627522223376751318848213660374820574845153648085596401329594040147959882890356659272773294628228913736542631436555818969881899034842018850786661039275312171154451394046664252774027551566504790728256307032052712437543177464381135849667385593414475265033552072243284726647387511309078326541884423263701477063690790202345965475509411022282797287253073639778238370238795739891999111854235313186316820586849358134333709598197413100808371579295746723927122844506041846662979330654585563133602086188067969813246578556355494923169878892133547809708485978208456231042417715075333714272730286917578293059040621771741881896729536884083196233714887499284343785383978843690984018589018381726312776831955779894804176855545732980351258880643221042062945784577701622622232326766227738300036204356786863896453670496068011999893824036424850599047405684515465424454131339152294785484422985341171820990627411486533290813978028260682122449305547293540741012332376347584955439381398259211301019982441717284217135438669790722630478936372867214268015407592154805885469081489975501660275686671929662624961269522720514139960000410211634339190917439164853158874405410343810346137122971707823215148130651806422745948163698632832107111534383373165929444402365743771551543522894388652084278372330248354165507066241998137848057698795961870090906302856001824727514544006492786643314838546862081152323231916084677467769996501478366318842581302417530153566342269204044520332001766686875473581770346970547179148252990785878335273093088566177575599866291682591064236121437981081926958802784943977103133995401374723088223693053298506773243224579828726180215296029993816676665382406094651546587844598533728428178074907916145185685299866249394119796208933562036916641698464187374604441678628803293138584616077546108481375765898755787439630813047975503962848143016752195945667139202305421081843968021700200477345633306052353008124391519418134669323495848023673615698104979844525120292792255067939479655667578860356559974817335208381519117734753897108019555943329099841179023342385805350334908271038662070519864557151107138767234319901619211080425386660822083307542671054171078964384557323850509723981550787816610225154197987795105146288946729050123230429135248053803590871343731539873632645305281638679150109248531108918985082761795658700325749250528147468244888493862886801972257203834396677580458892119062487699105608914766595959815190420691595428044372680937809802874351476434519328712654594459467419090613085437027154838948319795547538402387753733522596745964983222404795296001825982127719475470441342180068133394299251320236883858024713344082600716766880404204449920227743174079982452123544909883497598353316542898339336039664690350219479209772145243020485426309238373833177675246340739482699341831392583748994709602197517983391879378973793229062036121118793806393111132257727868318066931461756895988264171970119474010804328178714634339108847732081982536357209331643150894980445272044794774124111836133819952523551419582527724453644150901448316341368453469450202678596256170702716593272041833959068669009280465159296939542067992707884968499505343705811795275265975274536732106709402011472495225411457619734828333764306116085193655239256557747794591591183837476185375513527601480660843025556759406681460444548918943879933994935434444744196929593926093176880923504648587085040612480429927941098694327487314236136089934768212387758772284446524922787423364693971672729087008079835445573065011817468446906190600648555455579379044194288542390631427851197050924764642785913047426025205116620708544498472407935442983869427266676725797611306551186046392872616911615742059490267133037037919837794142029789305683532776043329852313445603779053463526671957040911165110823186431821275687291785676810205190550116526866769206213346124542944896618659280106455854313217148540340689663443922764897832665289628700318393126947428179851730682201730553534516303259715173291382952065848071214643449105870107780919316756294861564952739186193110409593102579319976275284819820704112957093799117745957966530264003783007857132409789781223674644660409995118084301931249199496094024047072811574551122716756229512017073787846987918262520506112981131936061357283941060580297538536256289438386802421700100558198339369010838157894353348690240896638322823094401503402514907927187410710690549881313837334138769943350233551977861864845528264486410736438358769904650533790211611206817881608571496288981831966906034834746017429913572580317119635977858082679639990428943896884391264838845612270319205636862591619056257417397313719183400406884434891709048146856226790607617093077524885560456091031186104828762629794184773792171857081612334639988639036489342400349991588451518361677634136057153321407574892925503499706642047981252933561271816955333262433141033625725673025419140761999335279667407318928466794806421119461634115173863338377913497692703257418751461730793863230052761203021439461171697926730743451811847311416199850911491749240200457478445854443474996752265496464841294142978350699529457703711695798097125323090695782437073539330641311842691681025669005167139600091727453201522906235717386950100132523221529872301841680343520535803765363935367303596648538174813612359708864467651688079469254115814793511503037029725694433689418442691986342972653978459178329280333855042537961658310936344377646968418380615146999307634351646275584183389059206983903688653221249669341303952711364627964994339529477278656696965416077746055226795944761700325657408824083551251881904156573741795680530122888133582787931987325104960915321234384177954139795593326551363667986957821484994278167977631923459357492276258124896815026806610436546652227093052775160372960029981197042756995183400565397549249901501889299829589556560841629533257402580183743519904870417490278215374077406636703266261959332648358576845258828652314199046631162424075439295175219753865747990697381905134911200874011212834827205063324093287095301534914515267967201318030169169306392229392851820942085935604644554669069365971778809684785449875620380432853463189274093736408333092114640864204912152697043757519467261991965356643853895079208230047289464783905775452909814314196666505822046011470588032997208285308697761143232787555055353435435617100764582666512396783933540397886966299450918133614000783646153473471940352166235647847422597712030789957024228432171359137730493867220928983111647986886096672973829123076463601335270536892027045440327305632638655527856626589604102018258912993216280726409970986269374605044465228552400482469894258146602484545175060417768562155441523146743717113189339931980273595246318512088422913711555713657645642634256897783694324311580227327577961202851860798661359863162626507533520635759346914520278705894487320064148426702723259975671619458371323088589184291611383691147482058820153884321511110220205449288512867272248251975700731380799013778467064619638570609460527791735907366322573803936015425355563088167389680866594904870069602676439957806479656339898354412119109783071150776602624871967017115148281363892390992746928639251853482749290686982136315262879533314486190004533193505307689125039427092530926101457984481429227440325869076234699671325047808259214797284328272688665585756886253383509420493069575782728796429070572134229558790784094674647698687557200534784413869153395951414023133904873812026577747221825348538636327588924384666012252442933165095415035054698590338650214747761665193899681954014282326611993614603619523460784318900728288121525407086057182210974312595911569326944761846676388989124777766690886195260080722131448547917251841349566698816080890845517851070417561730867141199876469354740357803714461399972790358202798934095851254416813449204791268302746057111193462226390415582837196482847555570078195566993871608778144724288616636723353855051766232461103874725107687069584527053933147133709046427706366290530448759141882691388184021410714811569946540329986724711832670027839568191529791497852638032592883924918383624502073260577288713116458008031577785077319808974633535835794975122486858996730692120944466361013167216374715100021001504211170668181728567910497961996093629250058840503406404733962267013810060811676496390084876497709285150087190274346783704770749959716330298561956549457884468614244718904291103567684665969646036925820857526807571960539265749427434816510896489820050001334131428085118429236290843231703424872060866928133957244606603744444471555121881027336943269668833739141225819419979219349978326315974612617254399530212750741169560576211680471142731738391807318340117548832462871034953080274520895665190299490578608274058135568259599441635161309634645291054648288058174801579207132460709607731308302585869475434440080004709723745774353137761406608927151133603558040008672079857786804969625050999528808830347332805227223380419373560659748316512802988816024014158482176102862361908547064610040943905451729147927086415516403235688484637098736649224014944990345151063134048533625647502629377258418644939497623280521438220305056388589711053137672296968803900605119054950683389027291158746942928241305465270457368564047993006530156563646845262919292552579216731505769147383895753162073465650694833580434575319296046267402041442707894312005182572163779669945178803530095260642020528668677049662184236815706566477715308862253938754587439814270641956448165150147113441733596513687308016989122195793243559570899691750856794433166309035073920596800864849934270964987077785126258220091006295429759733850482005553598186738583983841647708407811200544075773395824028780656398501348169764068977304561470687946807774170501289673457566935605166336224490263101338324978391789735726125012168057359056953681936252855039798271479610934485702199225072974491720568956879355216204719861155657661729375631319742573771405615962426422225561599066126083838427359720432392696991762472685955678776162017318853788761120266617407796919770268274831015971480482204034567213013914694687896341026667642261780135867548107504998585090500736611803781534576083301123861631530618557440050283276207825171241471208813218382602677355916384152708889092213422255673763644718791069636251877691685132772810533779501237780775487009190631591170132171471692915781252662883935263081308104795752398498380717727408300638657670495684280116862585496427606735974035194392758586490703483193386992539306083668707503510845506288442593964864938476958083228063211287715224703664138402955494403047891134464688216121150731685366029799085164833880664910030356747308881419500214145571836100179598895031687113293571785143600289993153162106578544801702691291375266200148851117859836448700796860384700316651817179878565522377584137706243403154095089243172462084140178241153106935811432871488489924786046778838771883910794127179996418050613014074589822017593659088143129652569090399854714245355119471411172742116313165484522240405164981429468647774762704605711917880262522476181528538940179158274069187293718826067810682996114033947850121544443772704308676412074042513555181781738744583231925939322402068578617111757171811713258251514679505203139956406887771871592164798894268163953589333356640309340438996761555069592276883218950447685451782492571811867568615135988605630510882122406774781077381486792115936279134308595671685193363059186003843405135645164230693774888100907473131160310274428490636920665444607695158621847947587676072846742801937542730126284458211213952620178343917828783968025589292338752595101120771721893130025502340073029374978784850035834830488564453418754098594576206051421118332961950233403685485790313667679482032430813531246624030218794185110160669732561426763207901985605905490950436694159791411342060723692347353170289705361646641974217449196027456835030998131812793933398619655681475442489269838708563731780608320644455024205871223154885271170484771151503841866087624160526356423218503590555960580676188685726922124440944491053927244025805138142703720521579312836992517916360692450831642258475459864807382170066076121812433451314941543318043753654001874890451781911091381648391346786957676043374405010836963945335669510610349212103616757847045532227574568820563221071828411267309199030279693337707239805818654668142109244133782886965829369821348016968965461072126317046876578720539331505384340259575277970375723008285809505609282222370310027456413018317069570105002312348018456902923641311812507518426327024815715569270105336918317116928673271843814778950576948899938093900484747340371476948792387222095758966495562261552012237366998068520569091097973711288854662427343925252032414776882659998732335827455859311706141684787105755954637639477859102476364628778235260127265504478169053646629646006832645704069611716125221545840810403573114173433616366743891422266409125620750349443436377303227486408751177127770449536948155390873113003486129189196262268774090160767499942282464181633453278541234940993986630283018968603470149587150768148737887534360426848336010074987366614374078539837406700944141963376012456023647368807503135510280580509316788058018442242137741000477008567335802868284113097687285918862386761418275868056166366848546418089010255294571085301485007886804224085312913285659697368414651690728232075733051670336957666216738737600286991437244463669943575004635446242874298595728943886964461060265650945213592260568114005442979490646347837761108075432342146380983634027013336368706554764611262080759181633403241636655166990302891524574800373944714676960545758486793298670613316464559627538988726326672761110568666502458939165723818869977386221290804436706408908473615382449367615283452257432741462493768457995943353385291441508486119426927222323844283440007047288556884437290874847424616098515209332452354067111234855404304767621365232873530740282436397395689926856274104384009445740605180916475840326185110154891991678696823766090141099072628401867898580126558096784441287028364141497197306845486472193162463009324761377033586033797723559684462065647526985524159795511295196133952622978294815486925876277746148043781610278651179112642626061225281007197139167620428105504766038042205443193981910345768984786475645078177954265610607744022009756283357054890262898630605337271439716887809752993723220954910532441053269976534345507162400123475838367199106517121380752191231364641425851257366167309944780672533280050336018082002160238416690465484963905488094780527047261397829340886988708821080409760815642154299514261435234650563298006091705839226638093610016181717482871636347392366917614959137157214032165070430755804966743418384655824073964978988355934571396092592813998085486541874603200644388091382953461433020956510973881282528552549360246220922145863571248754178228032070252850423631848434655172787805592946656090111358853769388971148303746630789004347212631842732002960130868375582001313066982083980049622465108827120423752329383147275311955818679509348657935051030008306345002305697732442865614992960792356262351607318914179790352718848689682650814563970556573949916219904373720788776269163412440413662654471340681790309771390656621874458139432259071245246351032640483973733693345790351539891439797634895124115394369920916073855609490713109459944771569024464536763207250307658377203710763301923806446333951518603035863292689237292964389782774328048126705936969904134671139465355742285141708889858257600631079163968661058747406155953619796156400406420609124420575330359550499813921931435407792936785832873056763788326837865297204484976347255433181954994005925276469789619428843628060258593594626912524925709587929289460983482368039970975846510820403056436232250790148475684996256458112365905513575279151490441344005356542180267239500133638417383434757500354335623175501280007758115663946796142644047990404093630014906749790906820052736862260983688236205482178374963991338318290343654991874504139643216598990233178219571962036758450277775363835950388720992484600724253422474645776434774489080606547920839520561130107742157561261638139805000348779549193843625808536054578229696413095476437032473753652443284248623615919123418030541809729381247694168839515730398577537668956290937746346841948837437728743956164848770318088375446513785682596129372370651601666628568913838702520187792962096502035712917649714632091398662102535926172683126778811105636388772313555911282200048660567674634555914884551339967378774237958670273755158052607668820597654229715209024200455863450412826646032043028750108135097659664155199544595158386636796909222777788350304831355188684367029291314391978152330184305706759537753133847435383065757529136917187971597324536027490430645705186769622947708860353686012955071986142189757423283355480687975262404671571084616337041037294073996114325782808170600571554884174087331855002625026852993155958800986651872757446950839985366056178487503052245508345599709869357480048596119623679285590335830580205955020276580543493793184579381019550499973502513207674757186205662512827062809280248025504946261084619016989514700638283340411948512974458238632998886932881174625430175882478984078865738859524892608069054282158187808516045668432220849486977740523293174036166205259471297642033276571353725800622248181938267481534541991389070836674272586635577317298796849882687394484880129570710899942027989437305403840221673635169700794481709501605361741226811024954524940776095078941875631921997157423228697792087764163308124172427266181828434464700830877447291933098109098130799245323940932481560728469897106318106432502479061489300351273647325475409085603977308371514985597403832853302896034271561683408107427111839163323059467885681455712304446790211363094221648422453712477243390538557930109303442927984617504865039666656286852185488980811591753254734939716850365202985913269752630278240035319832862498442888949983481180572133875111303962509012642564434540650764827097873804530391407137138166226914590939727193001979226596360994483432836414189582606371051631081006909760296536948542390666172458052022001923299765371755664632208916944353136497594348757587959272064572492146290489689761045943043030169542827256943878444083490632987573491842161644278122560107099867023596849273277215894990454183396811970263547702992595466573693876842392954690343968162560105897313285318630877477803315322661314445684118175411300861351458260711547369882612123905365224118927707369315539705731826348008807972302529543455219619079471523201122601617504840329042651742750772688146224268136029174511626722728133808616113655792385502418070315766511247757852687629045562872286083147301121471555092496486220065015357888573092934772698620629925682148131598272410244591083956505049560685346028316247265278832029382774875150524744934986551423639794824079021178544507453942815580692193148481401560031013242276936159835465100382751083528591715117935543428141262217840935101797823098881338781877252172599029657728939455501720963941522490782632875457601724046879011759093265047070225972111204383215904028977243723054406828868533311159578285688368831923378891514548059702957095219488071218764056885640966524167357379449942562306365391085082624516264872952805726141897523127219968371401351395123921926529881029613472703563029960892618978980280577309056304140719157211513971848532178037153781505588202072565497443726948901303370528324731681431347761421608032510747353223906724033392286965015931980145345142984794221983556132619202964208199468873957631313767402725654052126088828109535946769167749510362131773680596845755545598634818380914605499662942357660266596001744332485342727570870327226341740802052726562486992231578269607945429604804285323575403277686763069711794247112629530577903868823951598905565335470061788964751867601353080215017485061548788228133896439927635952401842434379685256950241704099690883849276880548156319057734496124578932517333564466021179863218653051913250641387786187326929939694604553649972282888471293397693647745070060426277107860264096156485942268794987743834417199893637249708044584183968038690666047535520082793902447592633610533848265622108341137644472507352948879907601605132606630763576595645921950560111297677221535120668630324294290415794378425476625368414775761050075226002050453987415487789872562890450088118133926214557433336805031924142047239162976404756265278554080328855190874192972330286966772294032961114602639196788112919328507136090160872604966356835417150296931334466700382554194942251788996441127638633768539882691662728817919521294900263566710379056495889401102771121661893608036957795768120005099945152216994747976653212542740696828161925476795490356044719562289813127399259418424271962026152904500887927109232713377673608791617551973359954672417839012878984568330793176990749939424788391870702999566326158726500208387805958847162650677447993750589224840853751520204280138653979667743155866978166023424022612235179308982993391173043431061763570046180811454201073871098154677183886766031804444275576105686588194872746625302669262913769768664351911412251750116512849542923296496123916032193059076744215316453191423434005691877980966375316052480408954896235096026994057321146890507967629576795463404268923296947240753181855958034913747781481051606070188044875455771084264018586673255052727409091126207839376693536151928967054411613534003058260679900559992782115862482970134996763932720964467271134179510335227260394176907483087205681640833449296181807795879874610068449570916732482487948921918301832695710136303184633460396887743535203290960079574617228941994304154241097177364918205303584595179796546173538585932830766807814286264543654624253761631995306825658612077361653729228276208593223134978687858303447323289017558012355909096605197864909882977922697250853294288088271029524108118909188952583187534089417519702351232867494095271565637542389323122212292588893087887528279586281082981993823421256739183932699438375507762334912642672087604952756547555812872524332766938724270083731014725719652386239822986490942263965993535262604918826221878843534530165361847630372181054385057067529015514771273099269708685204970768665668804500391461645235179822669360104944751937720361738055117083441415175831695109128505979174096897866032439045078781426965371177388428084870415968409747097823441530550951354917848142071809847631897131285543587583199541643886997061667509307427897136739674414993907911125762909407041800682724147954749619870616139441494628747515354936192162180801764580579093581127360547857832123754798808944584298213504295689717865526784452601642217466731208073355292975115793596869978390238931090110927237853529000231566862136014823899791487801172599459458758326637485384949356726256743615174151011203833025158349208332796464208363675456845184885570885406550901265282688879320798047297399038923042702558156315829443939684379717225379889830287516427478680429705852442427316325066915692509168679407640218950879948339284066815065500410642419707543991242753307607124833482698209138728232441839112880828019805304322150378347208984479927743137991668141431411348428841864527347977155817969485326343480425239576792300583176519066587098378313483710210507260472326513960211469665101171068491045437976869998926824703092368196620329615539941824190435230806511432365252893569821065151715955999500988612723399601231523751352570539477526726061220903995000279747816488372224640765047148412545504825524224667771133078870390923637440959294170800841070131017228405653230951667872950579417050510743504563185288291350400617236722423687743831050007382794469142052572677617113773325605305369712261410083589793319573765601228297177305627063298361986363504703042140068277930130511192433865186762566876405630488743881814934755543295134660386802199994511340320985649472390875512973642512907873470175976551960292946244176663076672689891787801968385003137041374164480550282286966969717600019508609656895635472596873221113185042520178992387955596211029053248274514225623728952535786907468697370599927649706984814886206577674344167022457339846688985755169525250136868254887523495714128639877132709937774682463904219643189765792830053333337296572291367899630833005704790993719236118951359005794642890531336572317056146456977701967950270969680447848529607338909459531006689976480953551754818848599948645279879634161929441699039524592295851956965412289475980343704075912698525210995425113385882394926706796006336751730352958954084765424435418223285770435860852623171243959252813212494913243405779033327954509413454062965805551722818103985149712514386669770217397915393467679768587280437744709203446688076499150813222785367649381785223831403079380327573154509631126730310605152648658183848562018609035617227665731178975041314069761090415692804538056248330637731153342848613955971103138037605579992061534178982119503026329966630913499469739972454489578014298243919342460260732134463591232760056914130984044063044359609416492753700799449880530124431796903174389234138692466291371261147704006625775495095145237032949926790243571871942859478014952493639806934333067651534431401171658067855667339256561567064704957876926079255320821205671422080485390084603173054782369137056635909315398995306127930424719284914274955561856172557745304440172587334293681580031615757166845376601314448147922788733915578140332635663126210320859088065147372372228242607659005662350357697826113016169686202329639161714330859662315609682080273003578052232080420820766873731415940376174653189544897090076682203396788197926488418964837683097137910424028057058698202887703749392738959167697473300811138778690697104315324175001567136848282446565121287282651857160784380478972932361248963082319834095608398570273180529223538044612273643357061722276930972863699150470049135787271068425934447439424839132657238408753606052585848339140874625953717891455329433912604987219225270478133996605560829201754474170590156536262989262570495760017922018163454293766530191880136015050028237050420720883899920051953610849452086180330865014652589441096074757187068815610676988308742391555806759524735964702085730225003280885536034843340569058152521887476553522707808016766378404708123140937183116550664873569115255128339545248285967419463190811792899078358942490804627652088158405185512125223653662992939982661694640025965420290189796702291103628176630525115763682492590626715064821901803153782466484496650477809614308172220693383451543733623649280946624167393907342200961568892859877501534974263922528429482875073586302373026344338783043881068195002757119548932620070373856543324654177539589612424549560258296115243665856499562480967447350055485927003816776462931958933644306275983622352715403842153664449389135122597635228279030044712535165306962733242194528026438082098894204317469590717283845525038861573774801830171568004890200912905253470268619307071655213423467790926551948275683904943411455214138335273840439023435881175472540779002286199286433186200454225270427247150687090513375908319780459521373698045274675939213157526383288597504264467504622744247206661063347597533393925824750330577782044583576378846667292006502414259440818685884590030906367656201417098500652312017589503646267445021938313712440869772790461313545077257632639407360269915033593092036885880616479616445089019342709489428003280249261429007627725997521452311196740415739971278877116575994241389415796163010132494702001857389138206935885444760449096059543584764076482630497686822637751251645496425225849250372960314749021577444739573010627735880980154383610607647549647187773620374747149427301120007336754760722819141827215232308570373750808010136107579926272973237040796126141932979170981876472379122899376311661327332864905966442053364150566247843842876378059538510218079311623787494016963237322091300526521535088113490713710843813713379284209641948872691172070187466672596276144950798342172781907694562442791840273997908230220592487219029581711226365460281777104123736771473813707986597101088681534059783981391436014155128089520637505490301808532097736280871206715497892309720572492524917136685301410026527872302336966197161636754031801157830512656145078136281442700651387215215995886597608532450416415278312227820055725300645203654852080863982952603109376114045850030559237113041391991398263129177351454486059914904639743667908421639769255027484478752821685153715082128259109129706404804633514160658457201681890305703950957295089518352682925801488973639198907248048552359222929463313789483548595088224538652347603257272222792857414986494593757188431668208112831035127364621457082678102099246763940636032011332981004436131958704413444252251066649676702513382635396722844689790178935524333750537662135949648467808545647662681236540899990319824661849087368883743881807707450729672572052883781561247371080583570398540412254781259233803791099000545422792698027257861149108025508674262127649665338318271235790367991074644157855537368269043399290731227855938834200318935287037774557513238702154597130749970910885944556340526755846507567577950986181665922739041483564217433210579942349558612369158558213952084158022650532489232340492717193695173184288564286833583623502420465946711239982693320205935118168069753787027334108861252459947425098501918136153395513445342996443767357361734940055987008275073795389052908315860384059419250072656251258202474051467644825457610267882963249863281926284947303928706853390919134723475697413184522561828198282332844064415859923706545068469023787631559382086192442600382149708484389965698092984523149704124714286410090168161745846215862982952646472746662035250862854549468626061239612974072574553871208254883896042892326845636559431217571858260148867081553955589910370615745688133669932332377530567421527772030214411728311732900188630829009742792265236963697191478903334890443410606037520144010939021488880609167264274027040794003574786532919008707650559879230448083385293518724833389902825467341073404521626750928253399010919156568824901765015065423879456543205715556191537577451016142314543472972728018200677211668459579634898546693836153532515412504461863091792053878083727363679862744340598930647707465555551419270056786685927892401316608020512766539483570264798672362809162348058556100378213590294811168504864373916229516892361535338683553059970784963859259429150679111938308263645654032187528740194592425796725824656179244100161171117394832199849656940954218432367138156014814464912594438595132306889080710256263006913398159214084224453787411936637553609127987822078074560471357142460674225893957676544635044780461487054108058776605694354592172329397320012385694667571531322111444782854249412207911204049478416166305889429827423972938140542025197973192122437030982114991339965293905764563064415209528966335140326179768775529785634019029910382725301126484724562882946470815641325921044547380690953841882230445884961372959940776909904813453200169362086773228504569064190579844916341862553671443113107976268715294889817632036428833547344043610485169570226769738999172199261792428898146092976913292999402690855634601930705842523545150822242207958280994785850045836214868397056344633787299343857582996140515357589076971374160330808900713396271743926630488355420558099215807470212153490465469874749380429924995783083250004597242777097478568223241065879176461567799875149416147180289502859501805855859049304755109018050576048208471743599077031504883794819809808726286966332946093071073874461776671593087373357449541041367195122612083299743309572195506852261075173999156425396570808896112253312788634231245980373531490489406461996852955677640571500344339672543461222270123134443893021230685705857655403719654232715990434915009525361671978442259450163307167709368987484518377448554819699615291085608115850567806633250074064327254786681644245098845400777893342988910317889131071846559540690110843480364569832896222381010004472779757507312368827123969995303509536122148525182144884046713449305547647481753724604660285735953639101564929952185388341535205137048255161809852304687728878579329379683976561877301596992302196583850479877051794773756434731598033259061511270049837610161788023655718158770642305640111289671938042673349264529370304407677168398532372992927276879126401798504290992243804406105555686386161557417462727324448833925958614362932694893794868989192291634276369470475325545426933970308727164937825858108105006294575162486433402438168828913646800617461168822783624969132465027455814978079837668653014234231927363841229608446306170591099103959165647197263418083172575553678085407346602051690821078964366758852180356401708260922715903246832625795636335291510470297270855831181780575990754369273978845307659904790863247669863954669507880732259465681164227242891826465566568254758418594451196571805270669815492942406225586202758370475137934624939455206470626328327245940269361182134261814088406036218849213227605007811249767761480088526314132565708303470333981262626415854755871526069299809578292454249607789206206751210519361282205352123155868791413896955299218990448236990670785172905914370407002604179023095581995173436526499252986478909918806771860388170203782714642496126304999618237730283060239524211173624676206382540585434603462745706597740588008497208074326931268821026537344102918241750360038519323048963536066072462396626412379075441650901701304925881960193147447610785358562447858538187778658886646694996725797965084505385510208998837916939082600604216463937132726876278364532526566599645498910543762483695976649853686663673517655187160618648924708378334262681521086636498303250236145003311019459928230168393944225091160843755122105468873330435250103920957223208161481521030086816146210037453359044702262643339608873265864804887125893975008055273291194224063014333351970931135566548590120828732544633457333239237499861307055779880410583565346763071626193730968117780343931118585210400556744898337988944390698963127549137616230322621607720033088711453666132504907064419519404656064018602772187231739145624315994933191363441120236017727117884640955074598037612535277363269583276292164470266995453797357211693814408174664640445674746876776502567593139058386783281233182785355640203395050302761237061968673827548456064885131694461725072897482084048470613023248163509695998075855088589965446212451016106825012148821732960523295331131980283760323679102964942233403299079828891250220125403113350529646751798467429785907695432730224697316079727955158356252112652212672038895028243842427583596511786276086844184624445787236932639481114223288937515686130535567243642194528448276013933146714499217062635629973063895167489585477883516464755932274376264022395457784361101465056520612128259733704386635600330185219382021687702999853568743938559186985207483355990795512229316886993048405887211761810792493163799294140553415478324252371794214219907876933872671407568863516644057912803273304650534624227778867759695476859927068366189935249319555189236706615062857628644700673177780424301590468336298086786852785761604196362180592642319598889405138477888969254932873000899324960780772936438559582125396945410623026026276995890227587932641493612586510525262054684470679382456910176218901677775178037854455069349458359854446910758935117207062361840459539529154569400659508093562015768647082825562556369589717450749015359004533915026198983803664300038117331814158912146493851619654129479740219077756334021339806065207297418907681363139164796977467914521283159522214877847268579643182698990726110755217721960097061092122951720799118209079168518511918173382639484680577577941866571339414926204013661330315425617692796821466378298397210570844177849055094612111810430825209598770258677592616584964377952807657540435195977205798391124735395506570162338540046385933740788853637518563743844217090995689174010633869581496086338273757075683203709583892037658091808900940820646484876779500810904838490494699590945509097134241174800405715157681413873503469671392085633951804908176215795207751854509133456520192711226494276741288284688270964984107388821181449054077412531025542450584815261539854233247244712663831585367825958619015611348834009200800300662908284446097542164422633198864124400885284604630574535405535572208559733269975402563381784323783441321338419836171065824326257179463350634043012230123131084245286148009870614321469675311244327513561593120836550160522432116374473720792957383088549605927454405480670134667215704813995045517845064147903689287110117672459238827844586255426500419940264258166085976890592656178548333061301058041896422974976717832128376573666482642792254609125629725059571685122217211042975066400848730198857378664248610455525219760086467397350755874055001945201799447977108935405309515930080456672404138008923131349060076496573007245640719036416347078753185720037739987445364106550396745299304899399584230424838394699276987131147122826815430410831858432693427398260160047303833005358192896777386238257689190767519517203921071310230687182745869368449247574439051470585352656589016030353276035919810555387553670352396085071912478064060190861304426328895514583094617862424221139656088183552773309482720651636098872011834988017517797545183559989427325796603596437143407035514920262379226787880135917153201212093286136960716811209230695811753803636875412526578462095836733876571414577753270783380310826587477199325297823633112404736083621462135770036047672773742928418883643596802875697521918900704054925487678073762074576861886082225595115699735354319527916262877045070885428440112744662891604640916369830528181645241096171717404327309898464490978446650202688152553524958970647910010601921034163926367583181317537973846707699690724010352998197324315983126973317014473740923413978222705995101398137000446392769059121527334147108467556833813527191790799843684621320785129214654529703300346889825304399748536110613651086301230235773820405765442410458326642933862780577434429416327708861537711028933603143598772436516848813694249445418506942663105779229952807678113955723798238989226799390885835556275774406710283125303060178868733212543459884622741139896675866547741061142758811781369269337884061106612888947290353076816979989401272806642937108449089955148651838789049725115026680421419554270224320990279252116713309091708336320078499528704525877935617973296864614675234910347721279890241805441721754972132962129521861684644787085642858653545055200367799868024847585512402839544865813984115102278662895007736825898776508421683677674226931278375374627226202629804811924869312545798710574752974838467225233329087442178744587082160456387151577845212373533222615062370861344174904555712792218270269178717284624079792463350851624958902956180549045484608257576001610335623200448217916154217425399827368955018071770156216255533065520106388841112330622811530134488381587209564185929428991427209939063136290071380430245598639134994500795217565202926655812591430887550073602482637277346316512632241432901365878963735841223461549862304165710306642659091040415388347313234534657059612982257986234516833758268935233395424301489484498590529766907195500651873474997896531252185691696947817388658647605343496998108878364446132027494668154631089176613731243660611296165794584612177004714186371376590437521214952083500038652130717439944589178380750836015283259343511589937175525621226948286043250215188667642682403916125376139325918218501653633143588595997644637780923030594413867324848201968118014348676322854577483647987310616111079460165968318684251237475104614074952543571083215384714054550174936952713570593733871238621566311076080507127358242142863670548485852561124741526662246153815040917104927836269852269544648662952442345234870764269333566954191609779809908205509972819609813649695717534146903210279490120504122871462975411985801871112907135418642802713809127827736149543250664173945358752144465328155397987397217837867994070555805730618835603437523042003224575732745903292699742270178132288317164225958499960376323321355858938564686766451731605836160528181018752611289810814592426846764090739838901319673926809750133253109068497083552579326287238465028521494161360041696877165376714923394751940799609775653678395671841477327308903717505413378912552658976019077823539915410104071552898993297728898318108465440641225262655130515851974381170683157715382583198729528066202488494513372847892480672834394974865943936046891672815994816078107856194015215874892508310883719985949157645056073420460768687435419395645140390106052322064570804179060023744394233877250755373044556975085998515076265185679960092165855369388890922472785558759993835869246870251091694840553397987195515112009724383923521440607286433720470688963452135196474292217747140300265442502771708063257848885522393639839485890818528671212163256364496446971967389801985886806826707548193248851327482788806932171867407324727120333879899063616876040594225453031837520613132494645246446138475182794354279912779454255437882111352795772636482300973132103008536786527975814850169023785998751445546487820997141348528283365230639660697699765259695183521203607621676219429481537991811695604740625131391604308518206973475819549831188146570262769422680237783289845693276429532286421983707410756914203305698378850592301748339335170489894037296563867701489502387489198854992005115703362753284965710132077001158689483414106519099691409752672851347655728139934739176776724383522046761154701715305666855908261147281463011840240304708507133601431387312953944706542461159315028703442058357149470083067796162559180457279327888301249905564471472297165560301256835326654555895522861614149231276557143326468159814585053670611527543226771257187505738219003691086429189313036327116114560252616120093020952623623140966784774320712880153867648800825862752420089552240459769204724431367540203136366571333656210340571706643753952834949470932298793721635541872895765111169420294675760063173587112190928866661773894138834033400402650129165176452205393937010138805794554148240242342037821830830489782472321641184084799562017911264115924571957064297032183674132174960393198585517217410971627789433310183238898726976012987922692849641620792349709634596395664410325111669652249768300004496388575419253105906419823998617187264769022689524555323216329993136302915567234614659890991237291444693927559987508338269060359792639588289275136408233103588163286764218693053537662297909621335935019458658862657242802925980805204674505683281494213950890548234059577257163750608297364024972909005859472989011895828639679344985701959735610198384409161479537663894663705149472717889961009050896147033984810597368436135175189551488797771702207102675997656627729630688982279070963914591707126348598980783615679464469919617046133151874054395159225589900974943949381932114804627457481668885231124953048770225387116500343921813064154863041963546725198120689722684489693610917290306440526398211337842751218526059144811840771545165145557978797280703642858310555972050733893891691712470450253028008722723154112424675963980892643189800743163465015966108050677042176699182566838348815696691022068292932523040880017070450155561253847608285957782528073295552845249787360595663403883829599113281034112217570400164216765607418124597926453782714507776794120866737460763341097414811810725284041044071656451923100610714619548702947388234872374286298522579442315474603381360499614696334901124440656635614485831877200129602343170148528690802257701890242855971672233757371540478759848993453449387141191396701617903517695160473379851807770570184131867102224680109071740023141160622921928913577615866323016993007266475722314873149333114418082762246037158555857586694617516239429539997972042533808556271795047937896908297017893809165930798422571458212629366977512519234972704397445701862768884709947499374714912065683637168915283564687133936466500454280817069420910770738253631350334834119333146256024504226374728020852715310322884161222360163216999161513170150497512095180750411396718145620722884593595969470101849842986225879194439168879827944245451826088147029869736058765653528663737147477968098053634284909118673309561533363310501788686607016659670084014437869797579635497172240625403249454177179008608800192923041018629971989312321537967673511943334834490879475911562978991159950307134493374155776520692086886331481549129412697763990649759524879950773954219259551827061801897453765413069158902834839473838418160606422920800777988246001628812279503044724851029949114092663889598523094954197540630304391454200180463558393193940044701361276072336601770915110380071596784000276316950749287090327689512718162990005353015554389970208262813014144050356729636098616512058566254558959679658845918167827906490334087992219562199211377379803552094851454310294456296305327265084742746232481113103263426518559001884837686878103668121443140427380316485230422186215904011389648520084588071082009722840018692981008741138228613473823915504988322390816419263169890489224779627239178180475681097600950804763469143058410980312243845393858149258911183144889538227206122605254469870723660219694304866868046079891349319270973407642119442645677600988445574305897552169026322973952438354449913630972203393194350597930862172697263907431909605693358999518141875578123935929007415723449608692658464154941799187501363543488644325105552186137653315562835020563327234236427265059483565141758847213511703246936948796837954533555451844645166058858813598729478368370580578699566366598460930578290303777715679567414996291403594270598364242856616493925514182026224594963844219052866509827823735901584868411913022034034807828589798286426869508395071869659584559573467544127093313828436362919205964590950106166924137259518250870040752608516708420997357383924692938471534507821035480750112887225516111892187496805778565383667918553140732119918276753572863238948283679486034188622936593384345710640112882876223085658425129112186529803854719248095303220115929125625830886550112944414527796164032758261662532819172365170677008551551463847405924318345004445566559242312727985418278343453803052828086488308284765179330439474103576510711412732367831932655741845245039138089503217859510397245317508156533590562262384949480136383226523868626010524581266729681044839373314384708606979232105104275252718073592632354245666012564656091237218237811356656784580709583171583598784487877959802069380080617819486037652126791474158663684682781400233651780964466625262263447196134657781422224489082761795104514215598430588389426628820003879575784453989800565410362031533289987154682971365611521818677949436386900586346927620459080241277247549458347254389540320153798752015629814255521736176031170390698033708182894693706492518579927110451449754873944634609807403243272432764449428950467813312377883771029609836303813166547822792665218446451971027493574293533104838913368295023136216632844914562654537068779806612867247341168570600210126922609936391786176063948651929707982666336456825393019736090248592182017738503952187967300392568939952155604328338752256778896854068289730465449381541816296050809953080600903896031683794790832280468564866118502078984764271175649952329196344136229545740357882858095322232330665327806943128688339765524981442751166714095895056110790474631525385253042373617710704012725870126713496722920265668257428768792311913746233431714765293448463175289151374832000239449030562650040677023900143300812021321007842502544468503529582240016885617824310359440241815635417248192269842646176392270570938396378673618271225834630119970773712474042412584681732165448323611495667005652922701059549276600102146842658599912734874289982921621425798211353650010373030297664006826750601499530001697017897112686935788008418026573805911065930042532633083270498538420121937803577020193436150475546223315357929526460637575862069139472311632940956007898514575793026009885127937514287877208427391878110988599486662070525570569397081245678567728597406423002050607096936785467397753546114740556031164544307022676469320840840314767488533387809646056106160828381723591241893973761071244496526768660799177495298115353463820330639944473753318980795880132478479513846498495255314401291089850874538077118432667019992627660709770101740404114214168650678543970227937171521851939198736947516680909543260607175744933152776577133640129616942236084957509501681188700374758283435572839072161658455126100575042722148388675409412360748649534556939755530465310815344211817225470789844284780211121658935821667537452265904165361710689346588169811704400119240939607104655417762362461487218507112998005550673660955781651399924830152463477253991953857676793177477169219928050572758605987659382165591791467171866433487896669469279679348388151171610244739161527376430322078129789045538658904608548461973774210904757338007014740077736207783344607362029289300738034793869492383944976110964197264770619013591311613599070361019948498006771131693361170294595627369186009918670192525761122762305560641931224922741239454696673605543482668725254587871579559893567866184310572886720575319258577395041978301810787931512477252684360877401565811061090614017235993612652802238786806260100609727783111226655520203537885724785501180524047697813164797028024491172767022597692314965685169723186872423723227945631871221265951965084149629446677529307796631183661312919248452476942294238241023694409541604843405422446392394692200266891964777187185004238402980481515271584838883619183394731090581908462746325179138290645223685647276884705191614636722490996646853778915873399354939894463345813259834987778330435418378331570009519156356514368571331901347093150567340605566305598008593961222680950694947147333048160747059884236399718372989828233954849523928381825000956856688739825601877180745337449907767846482650998449541458242141711030714108872943935957456528638681449737695587500236520837331187770073768042226098449070590215368433439748015577241562099043867028894726439815260191648653632853247964133661072347099091926898418674838639472256241557583111359535517935484904824691832947016723283581356979155606600876448464328470996481896857843661821095620400701142130342565598290080270726383020489087506595838730193837533196091331303670431609893905587987999414870991951556421928316212795357681692129632538797738579285267935077307042967847900220575525459091605073163157309821832449784288605597249089259348270912141100524300250014207845954139396793927483978389114277892993782829344887080924422415297389379938617027343779880339930051899774964283944696753568097399604561157938565791338592601908197185666129117804399030532875749359734790776221959399399244712283824959938309554857502586565316047361371360672030150005968067915823629709610598361657767854505240728714661839026112660017471443567053265462966476670675835806383107792921914551226248971539334556732370662320295451734198531108447184819878643401094139903579060624438143327994920229094684902942941817664944333435155334647172600710952992032553891425069933282450193073882371836519746933877480910852661915862306350507843101227425740780796789034561521179825698522480506704489314985214742440866781200083045412353513150927115215494367509994789177902743638149465276356486335901935222840097961322627540868569926382637423446177398543605214923867076572886846232839377930437072956810092029815791558760250623526640849021533774492852550549559658257911130437303812273062671482871695191138611026767039559740581513485530489706049139983931970882757503979568172654751459670457633096374911319680236338894319772762507129300038800721753026673353521605183436817224323457373864160803121055232521749300125282558854417658161616769883426488738082988016041856405849246366719668320067180628340361837130526882109400373832538591967614715048117923935891840639319001345145132047757206146095227349018722138772153430270054695513218312014488979466543365070816097667784962858150924945905304446757893712171137933299216308564196395631043981362977579096762855574675481047705840911828354723189833791178912769432098193955298788108304415381082626975940252136170275707416728898437463519536191941867285796772316677986167592545921202461097702536133635866548654982061063246878696904208893152659765983466144106573613039134204083612043293983530322114999721920493567537826159668201060725228752530017904604314705224314947095662327906003207626969525732145003048197132875817454987697336334721099225087583337941844055555768424654788516542538998418583396905645907678468673691485751252626322122800540001942096207035367738827938177162099417419622624977285200124489394380335264646304813448249289766709292802254877848795343795639791686831745641813088805083928148934146778324292562742295195781871963559672533551774196042345297797238168215248026514766134464708320821347431361221566794158958509184212272206008457743513231888227208361692902837560757089432096913893541332706524705400482094369681842786902089966941368533101415465419145511925043550439614132166241032527055590433680637105909611433537594255288334912555520438080568624142437381961945892291194358674057156646318957002739135359968092627274033949541003142782864276425896924439953913618313625675745181491696975775418990373320380505563882844369021547616983201791822892799994017486090654378271213350027026990110001752569341688774576127842459901849687761012929356654750600662412119503794866163661744756254336860213434310385722477726329508795993277481184993718199647583367940380079070985642445732430435514182393991888725145660164310002589472929639962002192501394657738633962996949528604061833158909971189664862083435046054184684547926001072458099187291519879891146593026260855068935080139039174849392670726233891122288337028800166071303319095481461746310307390492130800674318282300150023419074943468209980492452773688337957038397080978560473429562463591548737610897804709114132460470248615115040003524697260070054221815530644388910098364233809314440752923817700188026919613966628790151649280896845674180517283865117829870551379557412512288897974228182745944804967540223581433635084507304514768284007038306629674670570587585759177302731436768080372288734744912428960201067860480192825334130581089530562007775137031886329892018801568505982472313636313851963166853214999474092412062277169441381438859384239397355202056233602951080603492361843455475756598802518500406185744386967422855904166826658924302123251711715650351690297929386768277808040050148023918884922428701076683924208434366392891273688768726336643880372368378839965047961750672200236371021025162489179076219033345778415883588287453078206819984337818921983583576289935334495099945119469390859011043270400784417731206133900237786121629386098473280557486140666862437009616513427357632986163053814113838743494483051664615157873744216897529291629622106047568410978904436385152716724059550941971046934791343519006385739981893091756194372505901000499727354616778856408122656645155905531335704222448996924751009957859461265688882859626663744968011525254401039113316479904022621288241143334371443143585097140594225039752919304586385813174084255631481998490276825766840860886394768334986468649656268687926570212369753856426661551690278054242277264587144787691369039951988876536865566424869672231790444458938673797706774094228140233771013656985587269225025054951674297079194649044807860089750868393272047057212795900193775321533294318345902395994711104519968822864539763521612033207414262848112635305566248924356277179283091501250809550293729095223307594845174818352641845188740678415470374645382086985776561601080236319210527560225079795805742187415660345015545539683317313750083139624366237000880490569403014086884895334348576694881909740848626587861624384046938669394530101497891497320667461869038280501462628934431925177600788642368877650593622599428078374846512098126401872766387564371448484990185555714792261105012287285871772010059835725434258855620349852057613262086302611530422574911087625982791379501810768017812213709907926869489376458238432043630585552202576649214141912586617988465342676167480622776992259784192502285174035114183781293250913628406084982254402707738149619016136946307100256907220593813600744335713996192371345080829162722434698814719143185961923988464348172939165747039896990327372437261588571270722667909484493624646426736448380663382621817033153871120525735871169073444177468931500925401747004901751935762196199533218659124435766995085253525439804224888445851686898722833522879958891377947151142417100198875063685598639237797045520122529468980668516965837075111356503002769959208292215439979569328586689701477748823856665540693340126623914000661075886505889082423420651253562916079018477431707260188786235295303443812859470742597253046324096532570373232712623073370712840942660841671756891658923514455968567938680439871309708476394534832502355579257333792035587684690294578816903081958009606599234578003495403294413826016689256473302692564064469143875234367905900185064639334145995453986068523890775529539420969434788423602256078770734613551429320139800040302558505773384966506968609734187657071538329770062240586541563428091383499896330573243017996344073518027405125270648271094085115023738224431939314030387967417815106600807465529528046781160415884080258058910096337949337728348981616316302967812833201050168204469495586265608004377345697156550761268730284234807806651143303889284979978545301535449774566388802388780070353677529144989279781168950941645781963656907713967492563712261142766307104626601004741998269543692045868200294592758930149415318248303520361568782439706518753037980381730598211509522876454138042078583860290537942741825536578244962691908463837319962547604074884450910755238960471197381056892259157127868176527669445305393993002962046125120114677796766303469357939015322567780240884391284462918368116153548945426369253478269521415076712094827855122973218887286148015879979676064442504335588594637021037145079738649670614242870818653936123390377677085788004867848483851333337562199264553924789244919353030929445402953973789896002146216181069821890888260920201624539932375394247915870768086609338541450777938873830473231311718940681524142049288725118613113460515046964021544701351146724519544673702744004204312172765227613145158041959112941755072826976124628820213820273217634851658178055487851970423530158070883683756489732775326465470843918622207650331362390177380161280195241699298155345004689653732686603482527883522217850973032834077824075418623417923430733753522157906559024790524895140672145833777170997375487242807437586447450288839910309109927939589059012585752697658014372426054617943314357243620244683330910263423748997119527631513880251268121745524304307235222258914865709627654709718494997810034286235015168104389963764515636628265286732039703147769188025716321804616481834502994203002425989408556380394211236698037517764701692585276529190673430093995146953271715930444683447808245938801668085939254963415079459036312511240603978294935837918898395995162114967963631094945523806105976512205900278574410778876419349531118582060589415054448107280044482144375221641287685414468152585601551198508113091459523201121257700482984824750358532199707677969230462381256668574128203075156520491291702093517206301786538000995905568412025106444706389560663761855933962758946269405406429177238035774362989698515866413665180363142441964165133134202178397867708565538113017263162510389492068165476993971838726121881657149608576806945311480948370696521053596852266388899162159368898161897977691018654358161251349813602749112007742475006714225285918459021013361195360164854703738810111047724594433383588363026299241344562463205632250594924162541492373706644328793049611671515757585409174650669407707237417741525225801507476015998339193836541234344803177040052097350738786438104130487924312081033935192353760408327898074451858773780725455293351174759323345481476705737509176092798677717998899905430391265569324438317518686719025128980153179650867004450296118092803719116119001156581390664215472075900661444664414636335563333899804464666621868755153888359328921437315627877913858287810752804225323663536341169588271095978187433818571393397979602997638051364123129755278178178533920067102389627699440735542091304409765878634893196041430756781971880138765841104343047822014291802936636504336731065565736274601033974750813491633070630182622727720839032533746688960926475404778643246996303121018479395266044009867029728959854300760615939902239403475618421032677496868536505230069981947669348776765721133039922374984935506554441154961529144955352046704290051138052169014151650378145247475239138013771333349078942399138070934843400349982622079888274052230647033601017838299880492881375507313092949560391665744862867651578536190400224278117017151146892007676534011853440999612448768295652513239783824936312383780826958255543228916809218039370734437664412137790884873091731033578392771649738015927451499566196474030745439707714687557265639149661249287353896474680241918096850729339939021779511016458756274770790333428293549880092875844258085483124708717427365526571568081093473268353027517077306884435489067739800691081015822485640357963657749056987048851120022264820273460913569016189222913825865949609530246207558139265018665558374721548522453280087676833844471723173712285724702637532081354826172342057879496392566048794118613899535866922396997479269589354686833545983476249285046961373831162955155875268588138652075901620212219892043654860899091448383471195250422920898569302699156574590754728380714279248679672401066747002299997163384012500213084594713650383022684354837164821490272748891992166283553420105828321763722616484459958177802459127189697370755809310103280271062480337098291597467900437116480491684010636780538048667187777710349806245997554442619816353086220241633842169179368976961276322788494125815665688028915272212149499741432863196560980047988674671331975342488425754736448126358918329853432110811172146533574731066349188912914378091720914111040153328653462764728230135736440283191428265538705975148162476310487209907307259175074255899683574232446761763049078344948760619042197370345451358752864852302233717600433072303878506233310211055624791145883354950053211528778612981682959418571417210687263077522991458402106068274786004492930324534720553192867434809297132591616298353394121043007387519428527253019180270317896486728873193847883152944142264469500502889268946341128942237176444717615777458587740346538329706270894579570536801639251026227512948246365694364550119958509766426773425007128181537541790681644257173647037370658627757628691618994065712028483988837482804794839095599449630776739916181764439791710566722073955071627115974695908175412265916642543585596456715366260922388052128818197042025098339383162234323500859467111486727864263877388805201287637356631251629508128249155358201912798240915621863202557030191716763388897748534805352808833900230259425204940848033539914532870462441461312084434502208689267504474055237725157116099307090855822696628667762165122424215601978537196266500875127595753240180036709347814717418058869907288572269994596783401315577488460068802189226942784900871771663796739569053690810077976890044561739217853355539904149561313433903665334978456182494530273224205925119663694639927398058023559116235932699831012703217306030429148921859080879465146185506914667559605859357329154144952051276236555511774930578321441769365792744728087355536684217442766041053036704441624243623050545643481695590034350463724454433604233681917528568160618280748355914884845974566613978305142126085731965170065840658506993390671497331862414267231036977826736507505761380332508031439207601980210135646739798023769562252079359701158233438296793717290681057293019095069437601973829533318130830387407545568183027734251493925982788406239549345733817945562502567771899540937922694726152536229661110684444125222858162559744120135896845185556351404448579426132851031698746875646118454162378203945007206753739441020451781262460969576843185071397452177944133491902370890375398403935540605514290198581404772964373856676893858969459551209933301675089772405881189726075212762116286413869182126605792533810386204007427766014890831464631083924469650264105850543996995760225515280653623756466529667999834653950311875476560774128276412352326801940467078376605189833156134556986976431157024791329179017078074845796494840763631997083793898226934985312272865785225795030549497438342972456495849804662741884995866462943707947448872726596669540398323633546525581256591379332349127229818185013153425613054255087626589180534667343593260435624984868414847085716996520786746001614149193775077807987271773480191340946527884801459104584581182681502163539859901392573816311337741944356298471836371080693984737660240641531681053816911330149337793808290088944644424894333319212198123015894446167235958318167308240667489974429798824762667137494540186988488062938539077177553229354703942736168449122426427751320695695009136253489620629191079650713434838455644414052562742460325346382593431955306824821795014779515596819445325546127337022746753654307398789260937705493028109889244212340935687482188743145042202570612141438241536582674908764983636183830545236504608225198340759878120809277671879879971797341763165847957708566454117508702271281749734323952816382679321212570782033757995583179574572821259439016835621779033487893000904941920623592146363577123747890466951314033482928333459989551017965954163257805731751224005274840413932154147702815088339449138439745881804701480957838442763927258143434091494749003539971681677558419435556464990772192317347195619110356767488260095247837230714623719413051571671195205141539297545157341350705460702236435017156218927254750191232341291699416793411249115393714952646323450545344373502684466657576001845462196673117077171096660784903389144330051156980116063739518385137127387419263045618251709420234679959726432781176141813517781389567370917867901039003609171799600940980762360668369172401040419975661072030565537836725262577090004963424340994356965289340538543476202680030941133600790751686142770619003284975156823329569299137999579015585870850831793400275185708701809452271978910607648572668519938053541897072453734430990502104187873410735953439666202023090607406197455713670756539709492750672817037051658842890870549233639759510683828609203477939329174335908897527120989076383514968384700080555548471683957115442281862955387084232341139935050604379477128676816823497182557245443361845536578858940472361437199430117017321763373909704762762528725909373477785167277012868812468238869832150271981689657199662375657470291035520480413338922427907148645230876312735658900673524902036685623860801308274716984033911653542497260854279703108165255579436908953617406014379336338988099860032417668230099328844707729483748626756987546722428621405637876790833806314428368549577453767436933088801679151428884122296199923613304813954323571910688643496527930575238969064634761141498119511384512558310158474913858295303473436437830289724464418372185816789527160084239525224016546680135445548453868063104236511017111481707181980454936241485977734206952825670003633218197176476686361976770246606239555539361349279762378521165368581971516186671311879238654897526203889623071719239161121122110980461426322053016689602373735392389324240581853916314864818416566061949482275312889770551376043558565003874725089411508961737214560283903797515282500126403270603762851467524108462299542585319526098519730578953240766653801401023824629450281862224817619105001927556905836216592234063314517065923150766575272288141332013839798788240825063609507272415801408764525559700146864061417861053063551554950672293372451342494004411721054113283144622524650786054013717425370444798801356168798058185418705712121821669166164400226094238152725816563673678383828613597064604832288086451947334322191808945945404710667309521906543782175982968868707780220126519370559313630257754444132009089141844026139418169446435914189404292155056506965880102357652523846140832210368752421908419591586452596418967031652860214065899570247929908867580439957609249118203933965698253494653301091209430714638502436561592853319582808740169578124430437507270952264013160660318729961361678008298211049364302500726181412720596300455384830266957865223848402721085966420714740684308239720194675959585710111053576649727454757400139703913395436033093546450824037059442511030039305124807252854741790388649815935646567982388045437743153538045099728212051537040405846451158076854463935037752687048135044651023988248177320547017904886294860340473959018044214153832918327400008800169921232359561711194179676186628808823823819469612266229533392030843734587562079322236842348116423938751025745989304701475755119215673239285142054658413263396209145019867993477435879356899085160958390923695015199878123912723371960993502448964386889422820499991820455792077458232238630748978454693631792778512812357575733421621177744365055637352418171474277130256315563967583880175693931241987274026479011581296288775255892657152476605870339511233873607612192025612626892787693129396544167840922035609869645842091149031241059552716938258628732834932695289541441039342395502376394415545144278205679034541623422634561202583747470058246217148820317446373718262534326821235987346697073306897833028387122800482927366493662019371170338328703730545267941601470072405690879232460233466779809079621810055406668259812461019304079950058699103346110615629939243127925293096373863806042200567607772657482866787623200593024544127047818049673292036213453455676814432564244075059888992335255841568193642189559426540005749901698140442530125452159464097610486521447481447410599291715712680145760943480771028250989909093147655437331044306735497681160341577207733305397458443393714205714371767980212064993994193731936560022421201789935003887813151469374770278796143194982056364906357718640723008081849495409893059360388660772059268372361946033326334989096188850720093787724504762204932103577347211660303165225041394696770092296734886416505720653997290325821650764373624419898752567357017875441634323357407191001948897699428675464459199965058663616911540053002335945194286189430278754520139596064239521550524984237493802718410653276224694566364220707974914192222660232295350720237730704510255898699955834972212041933560464193152780936534933197869765105067536131759802804760705367477841958722243835230874715827635108784133760402395973345953361084371122091986472856820718329049087635432422125557772635116434158383155159853363411599887947263766240511792557795133761356065354622773795911850498909854660776011220504043687893248378130369309161502032877730297538579957992942666753512683708549372206139279231363769014376524231277328932436370508196864413221466383240550085590879611707655647180676908352604650121744193537776015672548174829036113318763513631174561933614385657800888017819575726648703008461802929355832789743925319841210872154987141556717540967881839282646490628626753968272048612976430938769766380852638979213654647095120789089133038878489367769230746316902938744740746827505838562612481105665760541323126869549180166615274719972298641210103287062581204140396818568284367289100225999274745543604316500242425506607968009723458747476102893879643563825655124098119785827773006756774416054408143572414745307570692506571929381128216369887187117704378855803406368080391375127138936959335679186496002351397842079025233870692748326682168320859371138475567246434533315761269540398238588981680128721709285649038501878572435963560097587596227317305127508154638370922756045288450150850124793447570052464676286581520805602577644229783479276677714857070275527868007918223293261444058478814972465798372954694877654716927070060598826233017793194675439239089043749926631405220547104997617225426230382604507231080294970737116386322828799517101572141118288613388684715685411875769258381125488930018936452614121063540056388938469313453304430296378504552486206089075813279063165204347398748102040671193058081108236871407811668926176775235264422184685037440614232475586797837836221028157187625221742905859279474095198129214736268130623897474740167386341752204693170531831876928177671183859212736144806644772353227488550471766473780427059086636107506794992837612333836160831580686055359687758930884833846586323079572743299060471801436622510409090132761903094880784815405902475876821684186267774479154486312758643595602727470224476719771097127369338326427331494614447132467208561190153139929581321567802698080129796609806774441691726090423408144650805884819681784475750545041016780813667997683773196691035102303960332325763893024275899094311515745985360417586707591735492566696670002182541622380223794593268862282116070962080220042711222427061680809347936501722054566918947612092219350568826552861624112946007045274567372638436071364225542239713265704809902458044172771413313790630206462060893598501349075557337942532868953690031981908062275798642536177250193730012507882585993615528538259601833295276124967819525252439241550647279366267028161546876673904689068685898439958791416716939836846037044714256422985460612118774874407790895178919371265291414406079889181368627680231655324302646505952119559087793624104415870906952449254926248940564043834422315026535849203299843305620254214696780403109414253486748119768877015920554455722438052506673171348769665675612493325368104498430464243986140834088954234584606067608158667289762552771050243478311639230224472341848335699164875869983068347449045052496591745047558554270913179492520357444218480963018969506732432880106785428558934530613849261532579302765508083859338838851491673409992826289996660830423980340306688469660087414752636443102213423396279483350941284108828569215913477600129463845534327507194688373175509847788220968125738169868716622154136296933780203515741732722702071640873505007251294501088199108312659821759023498824133208540312844006744041188088819451308133289770323025593133639352315885213547644837576927664837823505636605138480713821700936695498445670412884739999236915905155383613244703718621870825660475519617830741207922912981722775679068035063192624496284931926901343983903964825215652097957128858950144939011676391290135590308008120115890820191756652058881719597533753839062246443410017594199473087588235240531334303135425606198654995441387063210288689524412838217555361816160469836153926373729233251063917129615982564373394464870260613739411620811464342723877667392560430262797797307934095297145153670640797383743772772100976802632955522806778330467094904346761277708125809455867378713115435367558989168447583339232545328249835044924957053080998698595736199254017897484196104456562243452545266446716794396692544508493296013464127992426246957189513862534627826665763651010613096939913671906285687312016289166357516677816471258754733168028240133699480447668469153245902065680116922221290500801322172767814232990136773230512722099642094393925316420867977516717655974331590689264593261587361077210559959205903621909287749067539922053747882420129584980322821942719306468271305465000367050908655952727348406711976870156032483945665882316110326745248512430426956002240139985367001429908453263871519525134231683954834508315228235079645548926647230652528840912508436392832382324325559699970462871177798026763748075748574235603191854130124655725613359957403608836093107245644821181654627379286516845722606855312321294958272616452406880931057766352918011230186471894702873505619740305939835814277579788371343168623369544930198546107963194770099497501883189600875061018679307880844073977066450968902228090688576485539608094851490767538775179755854070284096951810497145517318541219935813924026117355032026589352041232067438512377518292095131942491876713461218016367741409556645613391952520593701595977451639492993431576409908844689677517041517681965214870255605976972539013879960386697123171384810912101041735785179479997588239876657763259379046703481884443151130673797378416046404118456469809364600733649085393622653863075048539982069975434134087299850917117741645907546798006722690501168955639017582284919950941121188936368651546030781073715535573002966299829163636197073336137541829900278493749286393308295833841028872329909077134145177286653937751474748131505220917900836804588336285680928309871704423516033115275524774303070554905117501931660321363810928269314238623802281351595283712906743949113421285366879522306610796946457172573452210586547169272789022532621679413216673063846713830681134382359935884251335414190154049045755679498605528840627089259187921171519498477844457680623765562967916500847319312768727829129983094550606430202542029892092720840204941818078928922663231296728887324722632701181974376198080631012264755249019866849135219131515805137510922911440521951281391945459546832967433007541041633482537417866166187832812785731053025120947161560043430601745210906022907061361327030630852599544280886044975098369299124406052902206005475287722083625631115341672955180839431732593696603638291345942432824565508971923867384805043646222517369744744992121012046509176662778508907204330225734758371589687182460545321857382308126373479043927377315220459382305886021390990908192884732505860223983016969839303747099097602662445045098122184216338605943750816825206113094429664176820016233161571009793970302598935584542537904232413133072452985374531688540674420138483455604650225066596274230202196452870769144720716199765715810198210610180509463254390450775807123860801530610551721636537434815720351209530503044655614120969621600631409165173524221353259295037961537500349965274251386262518871085162639207333354767798649999982083834450192585859998128398271749489924633262939383388201076563640812320284218627332993734410758687976136162389686913597474917113993757842413356204604133707903164193189796806946039728729590647046745140822870058046933975653416080715928120421232588405751083324205384672397079419034061163049525399074635619826892983586692310173806574162869675321282404691166743143984177313028132363585012450996810807483352391751169650383237118559779383627723760123501093960746217452899805303673838911676540181325184046676956045310972340696240666526660366655204012528076175909671454761891118034017471911640563649843042949385825419374870483303383280626810207681943945651508036784562800068238297033266567546919194037261591537323325910289106322629793045683323766759173402596349505336305498765087340136393345605338169631663404532363054705259997026198270528636823855383508159749336974157616053643974829976675873100144746021018331770354996774870369072710434929078393952343899868783414705062639308410094488543669307833059883592748028083098191191895763757694169602226899878432776847942401264224894718439690382487644213968544284333128722128489929329794840702236551113869530131504472787695535134548604866984439722369178088206759778159134320414532140178577973913967838281986198133427635949739962873919684616421686615749582175592139131144235639276881132523185581856711846571537799044704255278630837382326582916894202347209584022785738866736393825560840131643995796459006302184864669831288215020649543781725941568437943451517037702196463000157600022234486941367697095026344585386929942093970295622336355281450809864928072120753099945409161021835590576263768583558785573657408376615085531321720061173290213068438988596513795578956213793654042881401141536764509948906562948958092203561953194159130793525818019730510980456471072429693809295115523137552562840248508258228895266008805121464611771394003707281326399233037386247014324170548204122368125437812412849521171155501164197073959962589982780315688380685187528313096351237454160855190914796138175319383511893271415984304566798529886387587177636115266277916638830704966494717799044223572319539659315709169644888671812601719849135512973713820924879502364435260323255640740582000878476212274783373663969605449536034145859351382110212631065540862140618180252879905718707116344605286825760663223483177718415850265480699864125730553939290827246818858832179172561465814460594591937636594238246736262381839775381013368615143403517407039348446034703091163336387669394363336664427849806756652544007987636397544193972595133431437675392876982123392813733965127246325233497319224905171340732091462111786961516648438817210363704897975724591647966706356997609269687584040315947984095860866279310371078653710460206668834574222697927597567618906904348603321192296329427261159081487016623959601889213768893646271484103131309479139283521613995371208024158090285055470213458826218257945748576411684046127616993184902119762025813396771228738571805810925261159933397961689499722076764572599162761618263824283412322783865198874888197016036324717772573725371114275182349113376028926897350123133015208247479885647867313289302151576732286827458333829493023027563712407899357525446366356923474921900987626150231993726989424926992751398826811129577437663174493394301559915441491420757392913007217608786446651477026951832939659391915164144828190561040601094449625302288718261478649867303451475855943802795268635872198272009046509569861292203196323031010008801043550405122558905734756514899452759167933823262908054642267907790329827158294836608674510283266951014709399886842602260497621016493084332610923741516080571959204427608821377320887171641827082685955146305876000414411042924131964507085901088194399439203095369376189619920743705849524568081949358133252992610525251274563810331254973222497758976525521982900710415837979500589043885467668203495471120963735438686861997547790814116681710622334894648245229399058276724313249789042717422959016875917248371055352916325723013237420910769234255661784078578438592392325833155924312215550382026600421457085053476536905197759191347081856755537615439644114224217935836998097193023019170694722198468615355070817153493751951047078825556537768611356831519044752304417604011696249961719875651800492597196315440714803231195370447092535102147791406764779360068166657446801763674374875307178496407310841237240455625076054722593947791547078192279136555379719582304320283877437373589261381349691496963383072331186464726571013541695986914231578572132388937699324804332565821784257820504681062661209269490044183554758760917158073119534388692975568153469215688386891030764425795475286261679937504996039189593427419589465967898675805694840009739488922940304860436863476286331399584352730347008224177020842496524146031678014574281338624609271802658720476274622145825383941901304713436153779126918408184867817971899367918442296775650371793174400230519672391562417121733830406925784597427213966930500299474015268260704302939857389881248259167485683149757565387288495031976372313058897106642269885254921492125518015515267873181585609798218855694785265456543753302608584503251537010072162844159173258369259789680101830246313158026717388068206509737246924772721697548519859932029428323018574256758377425971860338325729466416761378948608422919942530417895524634608324350814380625390048458722732544820536117615775799369576644998138209675924782958070871156545986059407302345748905765288237809953741540390768104864281895067295877456419369553653800964379317975391851143707129214319905611201599754093395910649596068883192949253700996584953346198207189804601986836419377992838499916101455197465249841250745601724077559218966038083686778203755283000602110475606188993165864365302266034199769254980713873392054893861839824457787912735478738560823704453705012660599078678216291799729900854655756588476649138999335689488332587325852903994064506370521147948622450827491851697885517833150789507666204151802266985197982955410217053810711139528967193693605870619550447484383991253427376949621353702221852287564541081554011818292838101651023357101808639508259197749039984142412833093624349460439418003030857929161201421774670825540558717599093623192177885551722711912732630444074866525292148331478677676368445839556449850648066859193360245906359182467879347928326638536606799825363395381207148938347034494021788937137428517088280837426988124008194516640093050481842451712862596102152374575204663200107907988729085622199889525804174500640082044286190827347112763656649429226179906142349898297541245644513554574394817462549531837303903956822514005170957424954800645390767374120779100966449324912098181565609474719802452738958466143438714821879226914231840333905836799723156093708203901537815157347707102851440878522210356902807581041814822905485488477888199951724979122799677476854372051401345405411899239106037432472587727386482023158365706290147121850546064879237589744541635310897947580344117451914500022258056815175052846705215866069846354329468424122969202242306181620646002389644288539536463053690731057109221273816054864616513445961044344273914204008595738041217937987877954624132342442671571239383864874974213879537430590098975025254573648060440312387078301280839377567753190635862893126557493132099839264160040401893013687219622405021912332460064846393487165826097573560166347677262594159620364771520368761006998825249422000606124229162733892141275296769709588622640274573739384483123247633418984420425346034807328760102880957188155475171879745124345876561487753209681419599566541274377683403510655013959147507692385656558895871451969408098604416228350390333675751214283818653602962585441397646525132084689629017630677418112628715134191843044301309684809988604290005816978841686944446931911511609328696675108098880157288084816153026465484354559498644287452860120964006684749718046106149465435782421270161962152462672587917475154487059515137959080845738581081380112189408323566818907127750118570481851295388798873554439795056375853746993744406094631925815950654460996776347153550834183667240186185415663912307962381178949007686092237217006510165678381729642264146796394582857716515939744934745823500727947171957437375224808000882846045103314712836069063577496977378575200383861816615461142344921170412730644682799635216868759064837852499046936940187509869601959882646065336024297789005755425215139492155633498536166357685212229797754740047005412003505435014855650706592262024506645096868612166787758556142275321665811923943814756663110330860587531983944665458827727954993198040813843157236821184970027966995318467701457524859488108406310287569207057921096413709088739642903542531445189532552562108667451723648987370391163103347350932795305488600343614082467521066167503354661926835228752615569290931905177869994419493618746163806137533948239669318093303559177497929239740368119669022774549957011072045064741870342855145573506293345157928229112589875112052287395971491509495408006861150977121790759424107456437718620199795416677922637560157562928326011824522072527141330062992321598666698311911149768391188853435657728211178417345052206076347465379161672044626861747501019842750956201001387462450401004422367278506014276768168317585409938180536710375672308713331697670625753630476814946968416815767288317513832853036977235023182879030668241208894173670500209048229968543604459158256291077230245836473278433605703630082808768204322608768574420881999728377474250001128447473677789360489200264407768442525177052126512617406950673682357042126135654711188889039740362458711110377453482126427208870150760395045012356754807903090833593802678288469744357271778050051393127725946750325358016734775113666821143843172745130942293777390586246939829032731334092684262770163917134989544777435351543631717079497325200270155281088291655894459829737698898594810993121209461356798973625089346557041863517106388287592881769340785076152821638021419703440006609695193192329290508526952845626350888451400614147261602314144075577899464083548787350913153573954949291837804103091491502152430912152874476366441124632762895957971505873340912456772442741210305738389517618133384959648846700214531477156879449817946089881825604400171166836280499565014461381129818937061443960676311478290073820299053859512313944218273118704417076560288963094479172176633663548165404794108627586507286104701398608412970936012042885104158898552342294950870773174884786191954629441021216864617283534223322649762711101796248232399742620513449606259829845981900837809118702173350158184541167164303137528905780801153641671168838459617462422277007761333336910264557091496767635788643500293055817186302120094347697543009614994604781053968348752078811509964178757905196622551875378581977468757626845333750572323026742826721906224140454984322598648159774242559402585181405764196770447988016974947074283541350241001470107805638522518012351992899433098587828286784039465838169697411513350951255689393947561274532451626906288013940099417780645371985676419203019538730820038497123085176110200216535432381807627407160307625483660779970892190318175150615343765332582893679356810307856103864695351570768643613086291299319687346036100264264137955558547927775593149620488749401214334459905837967964792954673291179403262778542731255843697527148667073877763231718032933498791134361750976017881989159880127407297924360289100576295598864825677452602794113996714927447081849716662226857324186549916948892725461732099626737343625013115273207596848155578729931772248634633563649300160725180126915269743948475518820877986853740284251435539100995161120874371838977755371109003955491534563878319408779664867368172986061648954445974069238660234080405648965429108527508179393868735692666950293293630299386749485589847883974302740416901360791202953304812332527421402227130803055156366197215528298618216806307879166429352927424839386831796415325164957385663742068877479724911216832344070247449792268732772351061499535589467513069876157217201257218182565930723517171047080556115098211404686255273215647343681600308391744876856955654774562711954075331089539277825454114425836699712865122109378698213411153713380027450621550334849335283793464008758826394619708143102223368221927484104275376018653668075539136271471486278042179080696178936648780154487369913268285013148623853431004923289003949317355484369824934141337405326528558347733557797634265697090068069363318132784259285095445983985958285314378934979880156085847103251427801949799052228814055826492426670155447687732062487902401576514371561589320615515597568881569230545371582969469098919599948902299302970749609192551561154821729801593946025264695627540445764405235561093751615104412856259031062913860291938564114087488885032324497601888296564282979782471199827766698758167515585776112732140137134156287654654562832068895707497760739212994423449781612146795440968006620092229545565839822491426815133872130153819260058426969137053349788618820043623351942800195160041393722895853467080979043808405256229624907507816431687123465547916225566576311720915354115369252482218180033670998064289463625489985341115008165233855928216075827000035123230277428892887668952135680117354671255953965850301840668784074847316884645804182339326623819475747738115476911602454117440090351414017239074495351315708462835947105127821301973927916612877864793437272412878021476907956635846581234094124554924066793907954523339194576847471231075108075434900891624725280470719916248912132215063511287196210221060477460802902876146284490617933135942394824750322364357581468246393471956077553915480685635046681542955719847660942759436667013542901897965527946564665080556157159131550157692066960427575646342764874584910901401874649775786303285332390546660489848794011403222459483142159571334222974598392098154777538287521940510622686620168000687378193900957808553142731092240364600348311789976232051746177827567223996863912410879927403291253273734503084196950474011442335050710963285423430137068347286319857749694601334401654727764763623156896177431212803083583242185371709442843999823297866615846578181098038722530052746643948945770048694877988653232687184258807334315322296619348677907467733781946731924647787257536691926936813480212047399549120227274104432487398318262327545834007919442075377686227745073225205479580782630947897423379377215597780058823190320251475651275971058376076508175189342340623154730699093638918559680417778592710049729356659215418203405987901834733009947596482807346259952114302724406176521456422215891299962820282136416639247184418297169571311380518626666742400797823779155431003515419811050921803813190828023066218784637100115185685110698952790246794550098420857195258906646562218658729305246369069917834799799444202932414061000026292985789403839173675421960300423666654358416032461882104312066710088566631654265412024428391412130427251530895015953411867506409464724470715400309413536283727223658153092805876920204691572704560804512917326228350385650149119985577233434082306350843414173056122873207713529891952098323649012508817003638696881796108277846126757682604120185298354595345572336107906162859697977766823925229485018032090477400494852392859137709984231492019805668301940564826367265628235420884340287460487472322555409958400937850030183710292041735116657987669799257753427640318610178095742033732615663856608810665757507576539600734995044393992942975099829862704444462915592015272592759286909735530078494849284508254983385458506422169168995251207425162800736212669386035809691707658104240885430457939800046017631850096228040403194986371747313639868884025523478030026780626748659038288608746621641846491288443484439547517142171617608956837346044886758626036123802921195647946443079608007603133622868479007458581934291419615153432292117900791933981799873875605472483648726446184550182929893833876717016272332160742722414817944687601177340274372507344431253075030371241706796790169930442838451348267980132156802779346542248347859943571797188475770217041706282958655514740292267246758877361698161523990116318167861908973928218972577108816907255532685954431413781423538623221254208884877956215527576065302773564566602768288616802361204061566778145450515801171720886491023472722020119635150154033920545495249383825247798990294799509816102210369486378865907446559676070460059562428032210221511520107676877201287869402101170110382383867650319303920297912053000942270823111679144564318179769860000805237981966037918499148129887415038747127004206468701326766027979786686583600105049494811432517737497478986563830636002578850541937327507857474894508249114537213223865701594946018067521812768529426472523744842840521515364649688868727602987237140790798719045236475644039495154173863110316035835255376347283105852296285957831662103280928598502581805493641516418627598371073686232677063962272643707105999886370897679288019502403167702166719764512937445365633650586299511930634746945150346621700616312209320401790041722339147429477223019501550612788686928813767670490436235634212800139574167023288704485524559133835874651124534791852093073045735414685505748067025258700156220650827398264209546240557458289462420108235950230498641714928605661795136977292255371809594273822482752668761736258432083896692678865006836441628562910225609765999845715579287205361346960752678914681635519057815260029741404646244563703240357082228208271034069281699009842460930319388123926106655020516600426201894827031976538878447570640719988647766258942294515120568536516833744950235845614652261107172808930870692741909713069000947714553549904814472140287743990907392568691300899745890234718714871423949876081770308509386545862695487876257397100996297949430724685602502201320287171461689854059349071338115785429723809120398300049985940477791062670015772654408878223771930470612851057211623852484632265120939209326299414011131488839166970763368394119514452113481173387251005024106772486268288799691995214389647718599993644648179917121158748248782780937929336687646758200022954117628442521338427481423259656194760008501134406183646408296905859637488516512454483123534868413185868283724251368269925814982699364444917418944379233652192916452101630557367969693550200921543679942830750371379530781767749208391481100063568229239889899691554007932055654662961611444471581209965419381935101696168586462705020304934477571706577005213074854996671227883554997254332602013654971630746358961032380523353980186901359609597316973740403353198234277694061522716248916723814030651853466122011450785117001897572926546368848423373424166643376575201978215240007942927213457987650871916790537157688212554982769620743275889708686988482627067196697742349174488654740929050489802912970306587882675459528016850021324551421015444912473060132759324991245263520491800343684112973093607988069395091711972857713640600125610066787528736712347638588599278731795184943838873753020444607046639041206746967995266621725193877522281784471308581407829180653485498270678298978091930541705862382432582702852049085446467265391019669597870356717152741953334276024743649056915546547678001252755758118111322046380077531883667345095730151652149924366932710896572132424708565196684138606618012454638508032381927867620078075124507523842875517921047151088605084251019005645431222619273757373958293740584601043319137570577959633301251165826768657899267059561146438114546135878703198118857031052612964949195448183032082337553148554087579645615069265131040228934341822025423759498621796804639906912677896584178071086494432305560403863395741212293918258596072946238297465451283451304399841392812436382925950854289552841507073686729148993788512452032648139724893018728406668613244000846023236041282843553892698685311566316641367981639234853395164272203223005427347227094224185854901208317135042220352440051087739976548670171315017973303358053038577776700197921811201212352187773957782095300678473266846994349107040393264970665768632423009272223218119996919734730095988003487657724268532303900319808853541228178045732953512021092926579197209623331190026973960050549574090208368294229742997595065945612731924806178775463148731820346466677857205678906752878400500955516522563526889212349739044540804833907610541531278040000676786083166246054722664765036827288266458209172413588883253974583093118067063432024413070517533135752389797249475304449877702336645539747771280255620429603640277490896062301079469055106631388063700361009571214280474019313251249180578109755983141855735261861630820985149643174982714735973800091378087742331275179261806329021907754421693106881232538223034992348944151766394261893697477493186322196157017001409336224961912724044464978113340172564602486906891511604866179362943774469341745372009003385874072571440763443226854603662165218490939639665352623578181326578711079948653897158950714842962669148586067348036019377926385321269148091455510390888646481407013263187308475306005417228180761814704411372269303028717711581496696663645627309512311129081565728955882282503139041340767923792492101851833054660967653598504064048325225474201099701337118588786480440274694343001006553334327275731569687961510015477734115584778021013895515864561824605222578420234510240994250409436523691665651489774512091272682300679924709190513803312886396032199148086581790444165778931037555095862300439151010567468743528656289505607835430758863647867085541512240603714187798504251584943450385132051228532900255732928144642872394548040824546107847966047198088123921008697420427147304625159470247207738588558377419695795623789970073227839059518128569094267387329731276189714053314745580675871591777449867094732132860062478025401402134026009888160174957210422986251686328990231362701357928493431408756613671702322936839971891132202302933280432630344321670080212464995204294484639546293504370427083601510137003095184027380200240710615054398262404504845028283490655104585735945805112040865296320353946629160956585436081546484342159481363615643893976622967445609888542745681944437839898644819771389396401315842697548920115492214227380394423524034882394607541321552796246694492122676026311426448452934812506702047841540326724093210851173781033417186053750392216280617765788879087412217688450095176256233716910221912998362514127041416926684129502496648842503116200538634336705853205881040403615465792602307301461806542496216569934716009152149888176646702883813291245467208506079111937964507448203671431400463069449072974153666621089327998948708603564807762120900313753780034593113321097997395356484199524703974796965160337906246463834506751039063424009939343180413395636160412809955457945528059636889587427451698671771976971412153568225805009490108513483909803372230186432354252769628118740574153919796187315050334998112678464165976843240437965744692147950688481346871099537560075008586586847951855245612139559090402322915431508150204187671924739172061280371525666236591736585001907148063250863592610028218407485659048268676031642564742846912679038588810058141732135037518842028319092064712096732921635824529466844764853469887230001776785592522119129593650608046906479760913708126487686752969582237189722507279061111884963090499281500740148200317202495957024469323155972750628049914226537889783418746010663356584526212888842512525663419735868514050727719298254416202698443584071379256350738594653029673237806958738769992131770086400927320899102571542470826269566321751689678236856427387629716632895566812762535822800868507353588059716726725158988592178051184518418508253911631192541348352922462403143725894294470677967366404314491494646467793399700026772962432683587426087027621840890495846542923112540062920322416952712696819397357067945391408535142774089274433630038775889588804010737448649838418799700791590333195111475322156427293946431854643802783563956478380977684252678519349975565476045315823151200348788291426828427288427322195067351720908919141564314985111664319015846424169274684101404076623944915395059941293858601951821675125292530740219974448093854595231269761979040082595171547770700366309463066156623981890921740324391268678292644548223611702543422397061266353749242444324341737276870011527152088088244759683841032376958982204959382602116158490698581805463282132923303955605398378099242186267057799276679758487174377787109431419507881287808000409603300939092723657596437994610952289101355168160298414245457357385299462669752553551952530874054589278489164960745467303342038909793156255875475287323243875714775138003195030647817757752916088997149960624690539120708862396147598972370196055066835990797137762982004111388131377552237327515279928767659921469433622100428371673263297738990859735217731503938639181614418697050386496257461937323092178504810924829670673949780679429461216187424409716940151762869409005370844527114258637840410639295752307755878278362565475602111601214360321715152910915485250658865601063899475218639612052827685857650193840623546466306155196706966235459730239858804871194417837651814338494952960452780994127775540766349173616383660691335252426417523096491596145751319586923629600771474132233212883272410451446372615823468370580530233036924231008957150090289531161166485617490532604594928083102776310097223752469056736714951231797131326211011913580177941096585234842788501211018771435965022325996382248595946960491237663216952132144821571787464296415463639101236168970070703284769876273798731005235417286797110328626577365793357816701673330120043724110119983914363680945149985886519615307679156540757880708474634025498380696653899070838350030969675074132422712040200844425042499402889076529069123019448015887689443419193425223574263364926113766473936247089484159400595948995613165343548579970073137015435802739493704783883387886855008403993979903603521703917641777728918753038901124306973634927824438551736816532608756382735531742149289752798705882757880028689817603048413945289090407549588831450515071674386408767197575568190433091645573611947443586322644723805937079305115432865645083790541176000754105319638064344349217185084716018511151027192890428130660201893948513450846784721008017951615427807799986628843973549415407349250944587169983688784141895563134914996306688098255787901788345740399090080304371423305861539764037761858245775028186265256203799034197368446275543689303712744598416013397586115106238939614184998386633338313470311183815397372912085793582845518762728783280648909068614210233200024170346400471817652290877180318631556463656662371950307772168285678656823668224497540480069251672804773981215055422529156415252723770255954535136264651809334417547560820657881940271127298613212722421838582739846950427619755615311472205720751424926645715145315973016061122886587589623358673059894737635367999726237637815468651505420903951314843172361978165228767937878578845430155885392795652071657068542860807047464276433908049498585172612064003077734224831124589696542267218563395526818783674659713044933960340809686210160277367716235543927671636545496468097605222170007041220290879206725955352577767131342093249297434788544582441661990488333308267846369706280090771201383008059040410777853989692857689973956351166715854212334204374844692059203839352954303614534543528172905100977338748526238871386637666904912252809456028052999402240496166379131226974230899282971297491274733106404384010988853984470260409819560964628837979281399009877852731924204958524030114700296499076187981334980764947978524210443019525181431977837023369382959791850573811779306269308751622433420531342204846272574580702590295663475773634067343994032716606654155723387212318693980799482152235495418049274585012599408323669631517316520027335941376378925515623485099207201406986219406800809126785657626224348019702611060035086170087099232794590411866271889332267301639837857376913210836631825173727087838620788927904528381728438482880921761849238631096998182086327827315383756512112273992166835341351787564986746861555905379598903885012031903914927958444972074074192186216814135646102242393190895664804839316527686817576558704128433102490091298456365654899072015368049135573940098226847423945543061815464274607029484772183582191340179294779331386919113553967281850185571321497213234119296221905875644522982044025386534620145460337111773363157144910900202699118140511652824993341133554412846075302310781124217343075821602299346487825367560306352824423926907737133094505747964501678268822378480501455162156838751764970494765838352019816678908565507291862958972050891828772284211701933446399753972600337797662571188120541269524844048115230894273549452249635103602426326140671198792854181596068293505340822989504835111392213067276794111481899379739481731412127000277022031284345959931523805406845966287749227965043530102044937771754900963642794181916617971206383556850394306454086131471038661168389848199600006917527508174005880668547572152141878687115128401914764870607174119411404523149125331666551322413095497935212250033489605470346025868401490834619352479753826828269597873257933335469154953487454975728243995177396449748863295743510485360930923650422768969322298950321459377787848863474855968932385547611325316441087698803985749131995659745295990710800328856996017131333061171229607832636253457444077421050615993258547531668298738224249741390830726075849622065407225841671825761536121790653759972955008127418730731151863107857489563346576894789511169282468052754264560838485332041387638951557763022484597279733279294529069937696275651447055135225628563692994629660509998403758708848921412809681095485248702864637283193495191276068669215846640215127616475146048771291158923675244945335028362259144662290698914643457841368516107839258184985484560171329472599986354201030089989150308025970046861272887958335513501396117999650992408047886675091591688527944463587318748278479925731926269590653622596222102261331672524055438382935389507191622296117882845536152416965401919619516178533662169579422341640594286479878903080347620877699914736969824218749339154435933205490176732598727452266270290519370559518646095259876992491782195951393452473763131488760817468285944857637657365793681599116878052255087365442752253066241273558605916999251981085036757144701944896038000426164671552440336578422296912574316831636848544736917226816297599094080198013308889663301787964373325972737743497007875173021071787031501658372120717034342028973397820704664099052679104242529311347796703967115373078043816596992293983551854522654701020648923717694236246297823474293634877619437992977198392123460443791189734742976604872107402383883611300977004408915872273675217414521592860361211439572543320811731325879204060706638987568866345101874316308670841728009552129456271702548977423897495733839263479368248096307882174693046552415309774828431493253303583584981026243873532019816618463737905819594370538908841409569606389360862389193143030475718366343126207394025016378256496309572201532714085751788514616045996794108979076588814195141074851902391750057984549121306666756389901763407084772174136961617619828320553024394132796149879508471102010344848737824265527098436723567603303047951566830850059610740019081919836220057508427884754461355816769228550045034175088891694649127887063090792526584548462140209772136671251497286353677889299077327910747491726145128666897605990970826269645185128842864654323485416388338809661767776132060671704227119993454593088631903442559284670309980254733393800344418661998687819111776573503079142799414560760411208666486149545866953327387047255507920139613645709335762432157910839171345841979440475146548569898607056690986986983462504505465311522454769994705778579750259753398415419402078494116750736024741055316841816852609830417242854060028765357134586834956380589740064361409765698424249942343891168669904867435580109548228659325087262232427139979462724475910593696009426889249817566650954998629467682009497212066066270924157119064753949657234875255693653019992436979449618227244077750949229141617272129138840505354059422273955238521065558906449026171744210645055370436173068830730894799996903169414868892772611930186871701547557097383542959494418516927353608020196994908998128301156903036555293852464553820383528884371136951368473141820573556045419925971023969061338424455270061258843250127535784011062300999354893515502997200014487603401874556378297729411024953864675297225545302148154164919346658058580286473560664878307358764227090958333938210287290242433341930327542662142721572745484826875339525961048410801655637119614932053903423683692056531471992922655268100229854966972126924297387292845167660405504895210274707622686301551498218273010109842423634193991013424818702065524301477725433740944710154191495968907558908694145530926338679997766123892859895758545685066022389286349798322882541906963448647388542690915722571366790040149431234189813812276620671242904294259471211815357004573916595985928068193677452073915970980273572112240983895898491736826672415495137249802778029213003315871552206114613668415309573321666627884101241524222483818625070611521356035684329169696612689601281171272484904438373072568362976143025469179100953284528486901690520705434802057514714240473133188887808842340132198447690574078811372152810345475667752160626821746547131921471845051820900342473959094808003901716050689634375664213938825294254864059399933007363933630828867245630821091298352035768874064704298001466665398980442576980590816948653188899170790299711867392828902903558465133252374453113690103376301006635842615193517425835548848107077545294787381196952908692258691163424511923545180733674794907050119633866489075145614022071736103036734874312069063325788279162465148810492945876576554355622691634334936504230167670501296807460250878757564648866450156688108107799779604672225282868211950527063193772091780184156547550064573247493643223010948661546338649852091378598157791535280705333477050985450586887828613771279262999251918739164425914545176395002517493677061420700623773056520392399028718465490112167031696931136642123897493343970387157980179797700676246854102138994352860454556096425775166815016474273360312786002113225096759562947669223645042600046695636518323795799596223635017235448908552520045852799099234080012022624328972399796911292119218574682768068456948607538399644540723071967158087819887891719480809157251427363626589387569189921722662715378664874588045365958800526868395942875169902021680928848166789092135427078748367692218741257950369352987208161900446105921508109188657014524641403767449000838936297233290464986192937909927191641733214894666009706584645039909963105535689356685730035462125795816166527793085176996038337873892738677895793470060191320624234673032077484626893462245657478687256142931120366853168101683400028254433017235897408266755655220125047554102239445390304307030301177905926987322600913128168081346635662841500711517311162185985322352534418379498802002616706512646736373352481654108294841549957775449785422556559624710063614539300029965430098045409493469447900893490121934288782034944986798770813171484507074410226910389231413675164468888961914775522759571171546914132955948448540177452269720292947253890118799265278299888265429651994251962331807511620806205872525009255738903887877131347977779442567630622299273717982940365147067106866379306082712936752416571525065496662297614550455054279512442181686501957438450409137472620771840477267090415440731281775414728471571761616375558943143724129480625974677948430373003774617873768540267301740161075026506787423178935984408651503230259223784951385897474468284597309985544150616930724131863510577663186769922968268632255233345518564863351001662587154471827704353131547647555111495384828182797517826404662668431100005473638446892157956695035346836993008431779334345810668549639287492780854091813885509963570585364290327801791553613313069550077185160806503030111515356177550689327420567973063953270907280776829266971414748465471570826464634554223678749818579194134076456222781378174394747330256136272664937815653731195824582813114476964247377188218576768899439174625537863908992544748150787376341361372197928461656214409444824251986595148499823488569282602821269439107245396066532970501432351659429491658101272064527889902836401158178994880790410173544280873366119300337239277100463658533454445230081140852088873314019237473641261344595574244540842566295840426633689500534734277376803600161508170003633613646440655385842579650027988673924981297038447081022356741395946980635195290737836168411241307416206771007693077415220879057896312855081030204831553200667603919630849153179532323698906884300716772885896915868819545064763034293028257712729218224105914447302897681767243278418172445457155942959728460358432389549286662147546262834452147895994731581682552276269272760476764386187638832495360184353394418897845236575467813907970107841112579239618312647034291453231772784472902142676692531958612465258925872360170684739712638544804113077519807298837676178216404904680807346516846821835103937535711083895695467816978783271510061355154943074941406844189714023531875436721259338148118689145822588218987622615364891603125616873519504019615045267228293497716160225119745235239454510548268416193630295192200177224011484386875558053300877529597558386412816393635402006638350399952140341177389852287075090880139983614632633662532482038350388042421747392261069692933033543707551932941755369010707009580361669085882384421344555919103000602476141509833742103207918120594034920356016035103445875036734302911699916367074513519021089661549662572518922852237718206244677496201163906741065793991528629041979045146259361849159131856482665844459957071802556671179557466776401848036522671166174617252640030521037185515153539632841641721449266019635723816937236432326787510034878902575667399721558959441440577560110208984450525505502592413181998494778998430175280659023408603178071412886753669675978678309780285541126686102178451383624429717036277427750587836483035194291045032043767520563823874411735690402739695107593271272369332324405663085788127434378911864588863720515974118991642574305812162702841178712346311625633677643265445685018157143820344236102453278477439259339000896937094043949889660130257682722568730511146189402707110016278319342335768936582863208152490293140699191807037893494932597228625719366243160826939085678353250475237695413544380311095267305281762445846625085366446108187691804359079171897467992483350664033960206711598256314541421751940980566356188513335652634356276380485334660743295390086701453550304611565090983340106056907919585063391704668562701864512575266601066407223096032497202350654864748817835042481586770602468940354655011908113289469988362843425988847348321304758982614612018709844696099010548268244852592328799981749221057623336399584697424380446375965796887154178897579636150186093663075808173420646033867012037403343642386757183398478812186689680345513372461558160825366223288865211670506216432231568567630898598299331199089719274386480269933902250402956154996041434705118827847619330307282380914384829894801392680009682869402554239996192002308473794710981678701106550538237674040394010526033582199313396606262778785948474080488048920492711998709425081302349859830446989604077731976475571936854340269845802803794128192344833676443074773542844768651420060055310084459580982134347819168135062362225889881238333237228299424817442560305635648006081495435084222970312819120902054347209296673384255558058247796997522405158822549530485573228259465720295382936612075474350234491223356829970021897332992894768605252380111198929327529223213824403666156525370128693078641439144983269184178648953345913989985811684805222348937092979164070416299026347392429575218252710578149966214336290647453200628814296683118182831152159384357764937592666282041455792264753607434996646364090601532034317652768820816744920153040541590021092629042568239797317188490049871294658328120290342932243039169074211185371014987173082014955999779782685377426615879849926553819295312865651639273025302943373957421677385116526130428164381569110986925808374081150158941391353942349271051078006612331546362292861496971371949116130949307803341467468420251764131862656505562458269413328212608091388340550380036448148751795389281769833440395147937043006320687349788290712251901797287712129870344236821385865323927331603659575821998629629444631776499809460226688516651397446493805527863384048066273060830754441192702463226754434180762782629536091828792802229671907729597950564943339678939947192817265575596062687626165602498025616831504163646513204538001595671688087472688711599234655051725027836019676331405954284835543995045132325111466302718911181101716855069227119108619580684069143427148496331497525258590104255827664195189514188367402361900324680578664882402082102448071550735805733090551043543457287144232290677540097962292866148508919019698833751230551715159523639550288170677324316207001252025740215444406905692985793793478136656240399999985022208340932258134558559454744481983136201981735792567141335625246506306722505801181495996428112473795402273660689094865972379742843623897516294076645846083187774813208448924762000712526454374034780518933100845818929719729636138662345977981683889736176256387649556249195176391265678283067625661823293262230651524346929572555308606085158854753437159346930785999956167929719025305373765488899350973819905943724969311535457741841565893742673513716832799970370639726266603975040899240098940437037977576625514771239096970345331930742468503586431424915020957157116315731925455121078571918947273226435322398354211896926775554102125941257503330534986208961528393910430667205612379594324753738672067013887093298740293125537339696333750111548566921344247788657555862448489410372048843710506010891293091366947425987522825339015280261727777136441580335842768220513562800159610893883009275231516046941674545257339644905390954598412386999586462011223874337265132518833991477753316908202545808553982898732193026025408318908225684033495511824215360162637626244109186513525019015415677959332268269745428726448126289529454535528963525618767703141440570842972076951425267040604224960488324023269777573363047715257145586553006169056458081451497489082103656679067978185621611687119647690009186742382584737241115027580671480876564859923026441557652740726714595429410810491393036436905440536592345085808138795300299130373658221253881368049293238666922188144721553305923339727989054472510845143747592335355023551039285745042888282910205489146519959390578318015597897614685279269178695558435785534407949512949420389927139779252802287218574766678546443220611482340385746799276036016852004191106558874442549186837696574737888966338381012862760338260177187472668458564481174678731879865011751070814863091759310445336053941820510604487136600632653907626397582736140989740072851700107598849354201703258356902780248339854558051845495701754916154331679045944057756376396556627410755149959767077405260470616174552869046358937266566074100223818565775630338719774778536590628469784856424771223392484055422812718296750626658911754687461382053540518716716464400654364859878933904037080698114673310681806407777032802416208578882892470428645850714479832170922657619396467515265033038882696737903143939686600340278339747532503552205199753062606811660845993794025794282209247810217468940376118254195151520984554620135672516997521078526792884785779923588709185483105226734700255293364755763431057096350639314771677173924704114992212169120415508161140098532688735116338757906066428683875242169984203936915013454827806402818893333498783089861055159651877886097043986677453261415777772236096025888180411847061846703284162404886340274106180660137817847881001020232369260637227075241584995599092109174657170568434314212300039995860163150756041876528960788093893775335077030940331737262185428601533938560227532946062924961766078293123863735276800965767729891161999736561054769431100789794152728807186430983010499863152007366848873712298700349445207316362047366377001269370838676849494580494118482350011498696949008686088686077617916346796411622049017956641448847402425330151942844979647371884178636337049406771014121566029806327931616136042889580705003863453086312414539490678397246209947406314634607521688044512459909978319522413478222837288415052482619961904712045808769918586442065879958387097770222856280908063857087932339437947113255613889292106402277256825096540888540153508546854119360477837255998244774097908169867992594625930475509368580381693822610365518437574852251356074241044021311908634362095451676952245553049540819790889665141813833998034398730996425823703344347162587938409201687724135109079868339306872907633290869435219076020420775270247446917127281886980759926595597953588146487660686497327341444497303391645749154851217512037894921127049923071434415931493422252033009576697793817646431930697496861096127410249920619604227479063549954008686914768843659907246778087063450642295843422157868897811045167072610783450862945164190486987853461396580270408654625914444997989525655350135857263384504536960730505636536168827542930688893046694014751201816239571622912028060669237842403786762930073164048793176345691122106542107397517199457448870958766472665681874389255058917025203105499747237782973890817288536698909496671038589066613373158932880644379181939600673056722809476062046949121388150772585891196613217499442942537909990099877259236563319861046663854068116173172035267815961317642714719888242441229972770172076445691330232075961605744820493297336956488450380894128647339129683239934948625069328183970958367843130594078016994202610105868869989544421013506203772923318804675392814039302885283873627450901357851469889117119139999116964629434392771158034638030404616750717399564451933658770015447194421293404218272600982903952618630772666116970497034798289506812219368097110092047863921791252506461757463419085385066651923384527355807778846524610074356836721916339544783354452706249738047555772208039131483098830235327007992984659149625137959062141589459574066294142465022013417223708608250392477785050317869426884450114765469731031255982440302002518644431688042415247395489471491919643610626121891870348844608569235616733490253861246942812290047930984201026242421827335797038271560053015717100102708247016653956571325051904181101214973367081655362632798525183699334203890815793707638684252984616687914769138921916911353757357802108693643007008344500875489097377613486502185212839722469065926704472965146818758526994555228379140500542570004198591589382205122284530643998237001790997560222167522009167424301723772375562246730061900972490923412385420675589800603774895030035779694473232164597900954947676822189987477480221382929326868796920365338801179712698544793430839017069053001661329612864701191141506787853867387447605740784099488655948896736668858288630669047817586977887219912066253913327253184034376272088700577623998550252255768362888302560151226175338289220256431028533891839744754406114906545218602627555702835252287523373081963580671416618395613889163485011416398964736004451196695120913019654863317981878591998088949496920162503516026970984173356739961513236069870476771229069118995586678967330300112802268183299822465335466853294006521657054243813039009994290964927166037847543860931387111038575664014893074816996146332584240181654292749268999470472979657734869081994385690073128822251826090593959676571185606439647286163682806631998617240800345760170881838653948035904900583776602899735596961639014457929985171563337756680462204969873513985207041415661018347607811741026949346954276581666577256896543593018867993950727902466447253618872033990794777569918096749630661602598801037746561216061354301888021867952569973914471147235663456452560121389004387636767508661484214402329690891285484026689437097411334603116105410959209805891519317038216587525673216366521789900772999913675482350115803714579511024412896495133695388556436960970665421524309783481959748109420933235768867090890662910865708105556043677505434476216874017048140776301095780595921674242454083084905229638402164747521575650462419497747584936725892631548801362658246867150588664353962991874083627204176123212342788834981395118474021530561398614387525273891462263961191361604159979548608023452111284948641314421855286462589776449368098006732062983668976463821054189546564485579706765718256534504117539296593910887324451606897409361100375772381356158148454628671138687603004010248782862318704039485900677020824207161836454815475901696370384822512068552789682857811164272054359002641011704825230472351666935169418683175883370291628738699591918744599516682162803745746957681293580281177843608905193266714756446895971586735459651498077052503393977992406152130481630199699539214134879806027576417862841355118673036279492330184314425310385488406141324532963859671912177945881061839098025339247087687104631887945548287506318828972182566152234053165843173968583852112150393732215871719254171893358558155640351863922974598662826607342669582203412958791913371038164165427706695536842432040026937580138969787426429251355992909907682199384547566157154653451704875494252630578275342010495916165721090770401868019642400350259179782030765250607947205643678290795873475772349078820124716188456033420325039112999824153250454205382773389762658846933537541539762076070233553209683486100882502965784103182741900203464443093189268141902459593003904964756786498012008103164261001227289001720206664906167358009536555755198942945907706200634390496974960411449786298092550020680446388874194489531240728788603572737712690658020689126208463409866990351912435302082894947488889730425400766998216147055012984676162005801726018406212635250255899153025104688923584481299082989084085160823490254825779801572851524168210398366871110425638059020086927922635887527446518310027665114052637369556626840589809663766643737287022027718259631062535628910653380186679418890280369774471261476252827242530836330739926853368947419742835433456342719685784588320225444297811451611648637441061612355632256569035034320549424945849575513171429112968634115633390000023981042531182020432540815556780713444136743740940792238712222458560006667726709285240225961647416053741787248181696815787315124506132985069011466785251983880977398149633861122483706987366266339227832310487280635378936339326386939579233821668115383658508426947921723098519534302399993964398553501540933875587741214256576819437225458654851966424740020451995835956085805967878789155424099604325575110555530913741040694181797447924649573304246432815105049433580595281061670875108896861259308787119227915730560887370167542141461032477675001645386607640128387875551076005914138765297503619130304391855769773359617115712565603945223478818975983645442675728615557734430725891032579972538686810150323882158430150605862200068606360453341795898810697012629363216223639122192836960818838643085828636167648314792153966505540744568438280268929205689825777512582073361604930333431972651684328531099649046827313652816798047832120394590133517396813220681198474077518922520480023987078625165381346091905463665536288135412845010460391500716328992337608991177744736386906018229248329054761377544122463997426749787225777238206933455383269649125473202111700848294388187359882958354125592728253491772918454867790658217936385060764706700280128713881836049181656826523016104961827157679100574634970518291618990393090995148564522145935380778381495054053947843229154074979799703911450641299781472731699336908286749747948621723739478735271837221863613275294661006557077075562485716714738849757929696182182604539385728805397298007236896363677711369598225937230716890346660815245881729722485963164996914943087800659157395263538835766149782162334605100960623773395207014980041296927698101214436620118927982260240183227128839548119765687938141628959052421562837997965065585991260574983986660966990310989735917810256837142674663355310034803166074536384232129114154955451997701583217028692584395802683404022587567506460273911922527881903980979446781824324685910646654728610219250054401920545281900441372972007253373918460665094181728351361077221884623886183358427936518731375166791429119974583248065823014192589780606824616925541357973702450577455324671004698952149192781426777026716970532817792615121285783051087030549027734825695068098379826007691159067893234587355589388258282814104028076232613100071199664528820828927682155347108268945836181761972364850369247748628775060304439295864278038491013880685146983222420115242826105870486686378919863424992483196883989271215109076950925366177272394863640796392440627860823375983864567845855397672316701399150622531231903461686681600319091174385249402364648494309698942296023731688364846349348314652066636356093242570969980433131840694704612222521373270009016529677524912698312291234346434103364324078253254290744856426611354521726150051032432331244794051602526877560524377846152302157935059558199775347345136536838912084389088969961552976457156476539231020800248136212892630568988153035666562063845828909760675648910744131344207667513101358207791853548707286581455594433985244260607196974022609302930213633624493287156014257478986868978248550616778625363959399012773549252396431971222105410330017550312786228088432390826573904813322373234905062229968326726604260605212528342966063728928353476093875378617507399327617367743246686090505546288280010824082366474625540679743916610481509173358936946717953080110918411203653266277095297494933959540170826974942407116943158136916295233316734654012734694170612075811848427222850816116424284917201858997748510634817377870370338512272122187712785952979066496729833215509920442993389931742261289737201444146645927110477463754699314624598541281281561771068241147209741322077781033196047037160285301454587257412124071796668053616443093815720867548588960233386844657416986805746543136306777216290159849569743317495464307929886636916080598025930229414332023462112262020960023986182447064486728756321979659141354185690278575573225186675042344541076531304450391054793938803838991772346199334052561007744244685095331722117845791630630433008427828259261067559877655849555820495200305925015024408906253824623368896016010513635003556572797752884021440736780606065003103731722672333092856989202859682346474149922362835174907157534555209795102406020221464276576681134327674315844560016000307736744929837722506749936495330283383945476557061624850732308620858830351236904633361979433635616226387030632956211157420100545629320281444149119190927913617877303846722352325707819948051441944738795161503134838071354065758993671429765898206397404300748321327267751760544614642049674284281115271990280068324750838756090229800600479964372916746392402561263797159639079155240581585419665381147932483928537285056454963394084267722617363399972465487978021376922912114589394812229699015744854637813569528550765573711527636549799195976438808536945334314811208670930262954222170988989432631599646927620693973761426347357634566913059696739422263979654621196189852643066989836530240409496528903787994197332766450877999771968834432699960882814683397873024816092150314623830141751794906362887357224156487821415090189942818780109870491236769678577655543006967456533753808596388922671726900902816102591007013137437704905150101201243826419386887906446521433516196918478261936559940839771643367228188304768790895074464498907363932879502482713812455788031779160126424079002761204767788769679016455694565777129043313584403235016294665901875673308405041813595406826356872114849204676393994900152050581909910020303967883903695886768572606999105907112104180913049272335154137914180084600785511973559230077256813272736255328353018214156323222440378948338816384802222797945453120302395501660195642732921529600775430457930384334625043809942947892026699268753333676100169972444413135211748037850650160135179746444554021669193415559112076544477525444866142221708602195657613850775771238007710586325583424171800105556728126825985026646444214587234994374765264739694223917876836155138456075535269519876049702250200820920462452189105768135091874261734370492727611831119409139070115951560140503750487986231475508627435758795062795181618439194510089944875761562321272982116400086080458826197483585057884795074480288018294879245395783260758774758221136235453391808931221557042575104914670128010566711234053575918160864738661480921085862323944616264135483591811197146605030244652840252163530418966673406805167311776800034064486314064207364292770048667824728807742945171223811051107888215636623790041518256374207441734528793217733726942881996838686413607798029237328210851825846417864307867220485865805663495368754581166442679204135432089596645671415656373559415520478707714767852246885670973944698078935783346422432367400721906833324128779750016939946650153131823504123294917253654446940306771493966085044815098301073764347036907278337374866305561582606048801819906518317670032864596206637621682071816884150108872835576005858744209458252398327179124499373225423195138205274076038756930855951257028602044542758948837533569701935884557806155200179263598899874569382403786965385686437851874394237147190071329893994284630307330639474552470825441972514781336638892825979033804507049329382156535286656024715629940862726192951234037687766279841384474338478886922525077446519010797755363429686455226099873903076563405160607667486083813776893899049917414214003009655498731245956027447907266579241960818157849896481392369464225521450235362615965253564298247151817715756525526923951639550597555105163226009022956593091566398692177900512182985207808015773429876401519710564210582067388766362334831081556576840577872016524849782621723642573016241491499719696292241002533846088991527291172231061584475626211069971902987740452202107279730754456195915177826208801274641503398400336734707029391159084419331762516501200380914125696731376520663843865267851859984321035627231524766232465572391859824095383976387956485565219617296440501253982234018127498292678467089938753033713641264778950675084253408165989014115376722607001295298673879623540932609734171815907784028701777986630798236994807356629212036172273345729044429284743162980525212689254360672213807112981606694705539545115705520123185314355261389677216048690383201859397230557685029513049618351754390453694126427999762349715810094331099833514270555430533234581916204488254147457122492759210824756460376582334266940752587556991745799219475119469681392376724248801155887938490789510536647639873954838117998785186922395206872650835807098741117720898766095462419998192893705338033441925581588540618689009800976860649156325430758064326792322433591185802143031957671934896628073640028842391341553470132407492150838411452060552811486536182041797100440270695434861953073862792108625091536273955757070692631906020715937367586149259666294975689733947112760571472383754853981643579617441302721801017788124175778446481798140378942742425079919024417998055924349959529050229445069949944698137559557264151313534322782491961778252171908565253266014537147683927414460839118006217141365961458567471929659050685454988853049444683648416366651698070944467657094973545883311588775328933227231519325044830041784647850881201189461480685296101725781760421526584426556990332007312687697525620630789231756823696554045061057171453773687476797744294708134443517260260233930475665516675092205819520929789871567763558111444858475759635578209688976896502677018381682530987579408310705317171032977567304568018196610044338338447814258608158157150495561128854914904466051462946097073588703194578785470446287764622196033866865560410662508402293749102294280123841215882276779980956701546303850619129378507903127356635367045359708716335797430455785641254842279345411487593797915581607697805274925434242259180401762210309326000793295266719933827014669742021837251094778839657459605534104775113021205148672586292730462089652499036123797776101228010162137095782103638826049389660967413980674571892664180613590900817617691976016507885612413369755449787171201161615272253360043039237462668155040447330463371915759298719528520224118955122920480295543665476741721282842742864917432178447586893532383213495193233320221040647201806354890302360545613062454635981828073767516841003767458010292200455430550817713048726136645990091878459549677909677040501227817982388190690367064330547731511999453584735108496310894992180953531375299992038378598183474931319813110155148050403516556876968384089245680609699788376904929588719502732654493923506479650973419256959995078636870633687434931473130736873177076586738507802051019023895192675837311617856401202574797783033379404778134934949156014994983898026204899096059926713454985118063406282475840521265809081849657403621860256262677032025641423940360198065332942397512770839800132718505016426067219606508098841214908288116869313983629811860742795539699897754658521251354253461872210543008763241582924619508941949504032950611816744584308023446705637771785793272403152755634349432706099445214620396404814813200563659457925530076056756472348399098620318248683323628150269972050880535559454267377889319444049382720677198090064237976546975863976188415978640606662742796514237996514849541742530869078419957875218775208451017671365533269759279429339919310957777269673995237871137455380826345682055524630433152837662407208563127443605334787187626730504857291209345217631273038389321068974401077781731014432813139093489783692304783831964065046670822479088780960037234693062122750757084080745633525488916057112190018778486181893018823468912215703288833870394004576486702974828803569925687206776809308129976169888723345549155844422164981957693269811663274590501485055049360737610022819159120571802222003724495793399462806271860294984848786509767197227724986811309232866591207803119390060777564004719263869392694900094562670138766259545431696470809246222602750418395437235609908639309976989774348595295974469635471129029643270388211407127540970536240642104810575203223756365293207948815322953364257301785202088168340121139341586101498484159865200220759093504341255180497088410542580363513872500371996496244631644776395526044178147071757302675113708331583288021302589030577096246823136630887309253745324049685414607261403790001927820427682340927973230351882892876819239525630029459833113080162419274916241341878652326926255666078956572187913877638593197160773184302648137625317416889374360184829960893273861481999638648426238027280537763790934466167465188321212534281497308624227316453648498863186483243882738917001496188984450269037541230191353375801011852386795989118745642753956206868916025071621736878940856343968981598332704843493145260022707600981147460966994565496428665480236921544942002014705599105844502278410905725410017811751446793376944708609039058066199354004787303676541250659316160805375786156958812173466507362830935045348013136173740088267426971378782137242349949745247704894018666985807411299612340181199974288890780509083172740342979635016998585766535891272558528433658110705063554971541866251803822802764594581587583197045071948968141064053307611194995155264003539817134994104749761004407360004246336777388412604868713660610340503899927333209703561378615004604172029966458911054535679503156244544573129225217032120427036902088960049864951891912583178202917278405320304749385351677401481388867322780411404600491561190582011082849850732671201779266739928451246336726763801591657277642092806557340928875858728307060480744178551864819813794013372172075548945301163181286008969943591174942588216545902683332457717942449642273981799067719395471405164649890078657656742619591091296944079133773997879839202155747385927624207726458302451663007020647553500800047853247510631938469469604663980106725668175766626128548798465703877902432214245490927783786318170856506769835289295941877555452170606884961904082917863879548384752184407138326574129787551349070855528638773461308228315410416332775856707450491108673845880011775011682449019036462616734647945824824209071354182699496341494233394193280319660496319973975911973466575182688431854018286544860076923608328241264688116908957984944115046103048440482387292738992364224477909489802970372538233442729232726643322299880434146970315593987593859898826514831855045760411788006474065722808434003691202455267653218684812871882904520918970494277681172424511871003422582370633577359522954741571085322359956340354620546890346356719209141600649463914494943445239915716112252928286669090723580727388279956245479587212318964796173353969685305559042977183523629379619005580891135730503661476165934732513148229307432029663011554580590334640117709466887084357168100060060486001060873019215084858211754402791118987276258215848360121467123098672729408874194205445872714702266857738596593496198816433234764947595375150961487433301042842449612586055827935198631060648958128698394475318488099649159311330804626729877934431288338740011700941040691935264198175559397771346066549315094723001877922802330414707278141380389763337581808179069195520974984393057550325785295628828145595685843382801160731695060513511763370351556968223257217132883883487009554091156033177563237585947390603460478278449574216512545326578615254280105742367159900411850614895900872280615645921655749229199729627921891272543101806756420506466667333435507528726125730662820274856174562478962596264214960900787779024045742501149127571869394755846486192365177055310158867765266903681127441246096729490012919911444462919385248543743170298733166033490461738406922525046293992383733410730487934181158025694186301278770736480589610169384454136326594141226035385224747929157327497552720142690027411604261991572751624291149672314455181090152646040334283932374584494503370751659587720453813635660656348002777871626962962969871021055943805868606102699430661544254090881016949472557602467475800986749147807274599140970361278701539530017116921534047870194148747811496730080752587694896987787310244197787010536519253598363470120180964352328200888628768011170171267990744316561877540009844233515282608591193551264687323510719143997841082089987143134880732200850163659572191354617235505246705977970764885601748552256496381563615409040050611693732328544386997025298781386790522088498622958716557496209270047773930663734585916766547926982168104951380025810751349246603397486829521255014704674922182737770985393743272742640655673100628393937531619745361012226189193910187043277179581167350564928836892737595310712700493660940320183506689160072457553955924491416931888382840277612314699947712644902920658168087578040969559873541272019122047201858685206484103682757548960333296983934533542426525014917594520248561175531453730977585219160452002908927449635895662445351120893568586852524920686378311272946742243285098635671395368019871065719948502536735843572727874512819098962883424622177246078932884634794768606660400026299947134664146154147087666975901013719741581322456351821409785917911932639587218487706223535403365024230503236298443803991119204036338367375242872717006120577155781328936771712623270440082865512882010818640141641837045230166606911267272569046945396085695069543214148694743746623720147343159117700318279280227741199808251809799214895453076021321174874011705658562101629715093003073328834553918834981459473293442794136712894582558507023104172358071741951579850887409009877728535539767260709614049515786508898484292918693920626754465826710897469308674877465629063625033965129857163532311553960900327076190375702312449938608039368849931982147798284791149912010588678294724838691025840949041608566664445225030148464688303875782805355157548281374832892315860211925419420899262895695598094103462034438537856429661532205711422074626939343167971842632635460323862128741426521084106859414525378936108675296894947453446169569079137488793173661577426700201517369119719927220743875461889711991464705864087282637710015941763788073522712869563689218195943733908452629443581692363856968297778759423440718035875763545494530849117564567552543102648118206568041383553256405540278756422882582944260544343214691165729486540282604796190951955347532694391118727925357020605540522652597166852703408293326222955570128364588209604087183231395541474358675644039554949362641848148230390308293032479559577474039762928303438433685710435083642129117668911463466331338123602883677491198616530154759974484439968214375158913369394267987162637875142768412456938649844380309761014154990325164733186749951312028442148263233218037255411494225798286312284404531916355616526471872640212019576712690510695648701755943780098477562629334164358484720664489692737607806629337139931221374870584405007244798308859010716024962392505039376470999485268897070589978988436310554859929692067424022441402826890236303936788209881172309007697125416076306225163582859872148270948523784503091667826654964650743417788518357447911236697470718955344151449674161335251424122606347030361302298343244544883485445244467690293439766889680014610205056177548477075067459315405643894788432479500708334600399444052631720761319831610739990596557393655457004694805386189363044396141218313328215278213745559455774360292991127821881858112889416119757490729660516482638193024916077596533273741108484011907432854617230706722440458005237890765651735520154870846550161749132209770258464188030247952621089532572294675971570169167160467308976521791041899813771873959087538945378365226008089587509132151084053127766054921064752790339981418424492694397963299183856564691420026168757027541338287746957051418192126509528348340567198665168699542652760282600138730013261026788237303010284555227581906179311130176648271375148789139830582455568258734976416906131317381256514814854809888713482048719624870579197297082029676032835500244519322500279246564597184915180542562617468373644919643759858945015486218941226566431543720900432336832317879769962672171033364728730158653639032713811899381482211786977279441552357008337501666892556982467656021595722135458003267945919704038860536277592136311619159140587980551012064628626249037815679043951573306433889755566549266175000753241772849854397922218929027366979020877241087900095472570814481797540908284654431273135147431454894249496365175541988792333564675737568148013314682006969722276892882291984342123442758701598352511883044070984346962180755214256741504673991631632938321537018400308932451782092484384918031373125150864449590953816764502799265750465234526673419426520752374490935073046925958283984042038650590777682465255582246589673363923014376781386059882330297674263217950112955562556580343880396972720607397483794857798871722857927188025802626767589857010723223155947906205193331279551743787078582183771000623023531530555342603623532554564942861621113834155023901847329257305774280093744665501148210655794116133397582225083781185084167815540817457635534791202884943219501294841541886851740006035393879111369992334233416384778027021980476774045122622369953520901478339200097233009425411827651559075820342525039566011721360802493044610957880415617906615518806134263963539325478685487180061400268972267690478173206644681598089360997180911341836136833754429863609000589224863408430670012340641381302421943454820609035789615169139711841632448405124323769908718885749932278086584214977479191812745875852868510412938409427508792677131310879761863486533945555694011294634871509331079718596806068539489738242727295498681853123345722068279833137665509693568517315748041688779748149542264470655734623290583386860711396037001523736243693658405380765757092934182128601377915244027644370611223651874934210336956262349910927313744350607206081851710639110539986882253512968114022150529445786162139601116838444235641696203031853907446512234611929087450155577069783406778011482815233583280747301430650635538664908473716819632177746319775322903579806266776100233679884555928079290973135074028125667362596925144510208972624301022035109318226297148202829330750624482102426388796497317709528238748657275159121545120213960392610757595400615462876338684639113511347528419511515338493739138688315326249908782821635377669255800513258222487088547617955861601794241085687727889012008774524478189227306453590128213235762469728817128658178650205197113541432725701371205319904796561918423627727795921668526774665658127365518522773597740409116983932337361384845294842926877950562684157657832107896885667426510342426243595840806660096917986129419179609188367849436840789168053562662891502722959521753862205616354104205919091588025276270406066840558404639380004072742684774677283444390785634719758624703626182435376251896390535938896529944715618092297514991093478871582998366752454725995789068513831858413901265638965383778424584547745958190844246732841752428509963796650501868244266544786573392502164303404822330088812791139023937518150716824896052307146740923094397874894804670942783760402989365117244708099280727713930564618056318336923066279824749613431778562906571596556823114365067312990371186312978489848182107423031409622703735925750953385678179317858169924369235449630472250802783617454231785843192273011759708410333384883538298469768629562850256683603640034307643076179536789461445392957946570661497943784277050038023329430675925505233497846568287841748543511597408946364177018892429477398379350479895312171231243304356884372626879937099732547347315118577883662888601749199898476346585389051080887175392783121701759533449481247140546604899687544948815437525049741558488557879012589279901591426706630651190369005286911468067125647399536469235193560499768617309908766730659692050521887529259609957961779562047340934862264520113156074951891741382554427998788927050154545044944763995758280433729327234825740745995659879319417493038547479354247359231438917064892639882612827574988701167843991296761122478289470032384019329723787633414911518029826131645119723653913976464703427386989260217503445397338743970219951904465598943093519837648126845694939247625190527349853275361940545468364199875685869949435441921902200112001555070877287417291884765403812112308087386724252439633639524395981651367468982643738545098699348026900731596967471892551304490496372926684810764105192303209287824843078463249840578889616431280070550730762380804694820124338276020826956646363303970319644487589815189150322487386030603169482890443487526936094739759735012313212486531290200730633935323764143498216664872565714547396093757240500013294694620253633308637297486532300217378934704722868601405334584582809953406108681778935607377004790769594494409769924272921514109268814590141596318134540404075338424654823303572960589751962256719691511044594647440150023012788991993632884437384723639181670444107884844952539450945805778006646353582313651533403743949058524113823863683886570282200992342438193119716596815263791868038745710254337180473654056660143389432337185254559337217878980652952161611168117459721814424183828845760929705840052328421050944323475205844883536030872822839360100025161539828540657267023539087129466198797246849166151417384406301225199102851959911317176893831450285644030569826180735148990731714883371711733683599382613462648806541030941488290923580586382033575285840135735830601364909530071681730612363543131393325327259020686441302925189354799638775807772020660558678128491657191724448215629174881409529340913575201006308646487124576184196702414174564005700644081375555605943446314464504049412205164163632286006450054207032271412986309414768367428645765391943460963855844534061609052851402640940252955040051954818514529488949207071951597339660691517777775851662494265038101551315546451823397092889250260742437791910487055788910512490913053629063643401877844893190630986058507622749695049697608834584225767148490848459744126143870318385921936056464508254632619715402656690098014708326196296114792220064191613043667880165854230906140777927650173670940770836298173215689606255789480114481544996143094146599364696132525998899759613007188290214515588315752184514238379864012454083534000358174462080617501894623192695517032354560512377871500413278360525628167132876680913973911808410084257188365463290129497328008859566312377775896647351070074696230867806836837073742787054707499339822671547737903253321075948831439079382792336036064811153222763175509169069760016003129678765975747479197122193374906506770195828265653057390948328183323953679154406846765229111349837406122788356759995196118662065326122174724821608037977557072125931894396185769081979859266102112841525907927284643833965729246217402025444984127997531942250142055899602644300033144800764383487998270888169777344208175282389459249682439167075948507664038823913928360464352429712656279263035369576859401701590948586584966478041666335362972502270079291866123559571035371408176216953373803523431370237304937423399712646229064103862676199731308741879118627384546502210909556487099515662719796451495684137007054996930564071721218962999180799823792766163233773598441415519421912495678129591248641372129027409390330911030015230107541422003573816002819278972928005451077239350514134627443827410032539607713095343445480956045056033241540893853515708232378019717194937263892766531590478170940273119548954085767949452516807568305931241569483806350046875542765217023420787650729888226343247583862872764347145960780517978996433184819589582362491592050010854342458427505266181287967195035109319532789669684445681952517267078240011447858438986904574713335815198492779715266255287209233246583042640667511618277395674268757519392945731491202347391479243989511039982387067710914371477224157829384579209608688808714176744956013127502781036888935521612458148216414254361872390653831167818827912315066051174868177782386348241361448409308249939484499550847444670512608635367030185205971553553435676011033484473515956269994651301246110338988875103039678344054996097069119053479914566153953851223488211073891933742568733434747330966639415375862072523175129635157234439467491651564438594685565816243771393057863204141043774354094884053600562233719533693014185885423904120798636791587755284137063091155295761826849623086546505097586584908645852423839843483068333862264088385618311730640582388621119818437527966079558202137003514640242954720068412216708287115257273876063117435970595189022023787716620933919261883334990551821042032944441965356129869189619106418970681569283143762188108205868442972435018550625556113121639279095696873716194648647247122722735760946124551108884076343984669685448838182791797766924458154235438700143965010815212021878536079856525798893694846787728655239765959819075006832407670482151677861364226719094133227683408253472496816101664552765275407740115982234715627807425962561572499878591182672706656562233951335035511966377108911654396457672256215203457395935291322759302827306192744981161669884577767835434030516724334399371757808339863617535997520267795401865266115520215772672207353207375399414611864431140445532027222151471161140719709211637257042738894307220491711216820362717701160185497316964305406486558619883245125441033764916144527095744726728343633317856346743655525421444611217218276906865717782540840099620259410301516042299174234408686037215982920373652449077721263908064059940808372050872782766306925989869296523273758094216837785614992804218165347803945339878296837744037789807385177542296084128655092338913390795612873524669828848262295209110613401578965378751810914200183440264281152476739277734268400151029961097596191506127881051480153334304817744529173423886684448229829505136391518073987264899646801366385543544301410972800934815952231538955335655348769649539322763921352363324414790450220132388611344284408542586132840351534072808370014682704410368680616146337244464673066929069488132819582796236595799355250211355433416730149164882084751174968102439005335441894154431710370666204842525837246361628025961936421462773534964072512039876877502970143461619184343748645194782440997188393166286493275451983170785116404290497104517222037374934647269155271635547177020762932835160771469893755599414435239694477159005365955075415536637679389816729878308028489759264768677771043658187382440831705911422666870305789998508214277999808932740622497290660649512931723723316158287384757760899914965477366215520598906509048734191398604842535107298095451289980051367808246391053114566987660236806623239923839830177368253760633105075582531443661646184977129426409270893050336539056911061263375313295174594705844541141428801560549307063037526615959444352615483790821725283981489653328156240568133464317372914907296924473069314099126797404950323113908229816488428078431794274192484493325591853269150706847171666949605938114575386845579063642809908923122959890053887030253446309585123441080448627196418747910981626318423373688496150511100882960770423766289744499146144939316153703123225944561057161540758064026473616165789588288657164225844895000437140882670257774192239426419501376103942509248124185834851019464499247463623746568709381802679500809148322059255875362913287591354676490554225004651010623709762281384279452590264250928788135226459080333790270625050495118976572223425420236559850390342997778580265770549507802830723257315204087308613086145571016940131212901186123498730593483842248662024866053914965842697621943537163376321225843981818502672440721037040666452840834185605690930934667102331197891308173734501316838858597401823922679524273896083458932525474319146102131344913662481311702119333375152812672227804976498913976996418183723388660188259616976753686689089298560678858384792724151000852715148105902443622196754691543189942511004807951114297259175636700797059760898120277848593866006244183906487143502380753702712675597062341250214157709444823455506066127419701784216721436055250335802234349146786108859698028936544280686967586834190141777168216652299166712846990489023946884852758118164212806242214666189113673660233244456453405937026453217125283645189369833479912956779421942507511195975711821726210344866672902445816464939409148081945739344750126417924202220035937595963668524772205767199199184638613755227540810632895458518236967090158044631084438531830024341549991887896294025726377078006857031554968615016525329321047221439431013654491177069274159765439522197076465784852935119821618701383048266433750427797223311639281965379832949514291392336571034693208514273532848652890972620169682853745164839225348247509831442074938117329146916894040734371754659339654938669608415732020416121151747249116131396664097048965207469218096665924006748930505659832554023747146929696592401834962472735970207064559768411780025588272525276563433155129989182805268979249330518444527343244867502120108018718727135694931883800807226116118105365920940188207206963304357792570964029763641440485985280396504426353196665631114992604913013812546775061835366796876667183014826113528647725271059604804677096625523527885409687668053206493813788233332495689964652696753749515435138838650336476183817956632399577031595757486166844021976988285915033339181543417918777257261616257159957486807208436656947526147813110094061132664901553426619692740789888033205465723119297019237566489382195752701328046989272476883962667850974506814161164127980361828209520563206585986421524032859229579219536242415108333202259416207145363361869692545056342129731555586623525672528434246555449489171014184784037381827824393651746096103416470792259263494726688767778315378542428048805139154479804312838188656842316691110804921418075174078121484198142791609139283098755112703075211341414742651573096923239422484676736685186328938645591921059949973667311051569432797577210271724778624191963642745162859185841419809853159795354121491551607992534794177228619524780206706157743864906338868737590093495060928717705379052647453193550216609807028633966270757624861404245457338177787576294916540168111846742985904279590707100930358328137527714692604620244671485821495267782596871433172781182086123963655338673040487118722625529864554484299801296521721276813228611616967466553851768101373484002628918815092164905114730901659789573989489626008283674663711163514019712033852921535327289711450843790095702758100264095295457900188545638847235156403757467556736226197631787451406655751932897798812952132112204070202637478149283650206085772018559713667148191798191166469670394340403248932250704849718967366529115711281738532862738149543609287577121594500731611605479385766435803484585992087731528311984925485190462015917179357257792318989222363802521183033898932431551230964811357119153458629201345689008766025418420841880076937089988607407316900280449992838335882044261062807163448295952105713296822555989316467825630186064235583759032566724375096903839912819045651833039436582000706096205671975354329090815058568480749449560557287257190491729325420804280427580625063495261859302841690121952507037885969456526938277591741920753848610087050993002065252842818597183270400286142063578899798196731244343520936170639087884708264787262317176864710126101970392807414542704604696058482059761444578074476098014345587014238886523547641057999710160464914436485848586952611373045147829996713435306601749414989913925186690041556194447313681171133453900040385097059347439889727243636592559020051636577407184673952527044723302157239128866038717999493079158178596644093382534131363874852059618271366599194146997178176012618037556143844613885702851409720349849052410017215506147545677091510133038521139913320490852369288969885240671715107417031675035132453378601265287679038197939341668304715997816738856036988891492968353558398634462891225023665605508275406315267399925073855176641731015779012846748671618834315821585728008384516172522304426407686873554610181534960177227914988015989696034504465046323803300997557661908443632943648273795780141952152497619610616290763634892216971196439088599351122389087451868062114519460934550404835578720779398205305353844811406378960419397810315565648743730373265824422421843254588737779735307002561057398166187524594036263071676707164625401388135283248734413327398823773669721919002716197572272052684897947197586878345721676527204150996688667844212572913036904180400607057869294720568346448501645676369126864764263832784311366892906911462731243358139926795793480388312749066784248845198484030826838887243108996546994496923273222233322170116483847606237500318548898341999512751581609858107857126207445216530529098812652811715285609753953467695281661616141810760866655586609230659077113833714602313620026858826429529120718119994151451984731554976641964234829149665113886529426898361434728122089151812163805495613066627324701144240878474600141361972362459534630204053937468797931542028921074095457742331587761167786597602184214670468766573836741632232981406389150583143762364602090280931004630007476412477202810273125557912755458267359682051970167255290277409792454640448072914705486667039765799881655186960151997989840562037586214101452109358926965911356931224698677440245596753144232108670775801764969686643983078899346824697787526186284894061108446135276678762927731568926562192269078576001980630068512259481933791534044107994800795144812846785730973383593499250082006622926546011736407958638720405598085253179384073741257777476268835939523081432372084533058879656470520566096543282524791205866423174648187360903374730861482711174595958715580573332829176907249606894569470622715424940923535758073763313274261994409748323890533743075403857546649408225510116503699941957410052532723529799764811511885654558205738487184553363510238687350751135065205581281894587306715940260138616194318774515690844221408278552433834379737606849470458641340534400303476238862074568075910103915693986123023398663736111161432094220430605105972994688033322838553368961987744171480865934485228216679244860811505657419230133112489173819423589784971360743781404014674125518919932702321849671548051913023688796377133999598730591395571691193460794577264721315933548084736213313079925530064140097344591956959326243915330389961255375507254096820136667069628859979019630475669555860831566627005816285695519676229381896903791798483864792989326603069551510924849070996787115364122666066358493099639794243388374034696063650863234982629381722209741099440519224082210821564364159544302177132663407068361341532173847565601920532411970106907186534243808595961779859162438603663308243070257666187078614009472519972752477041957649780799569651568163460107833726825605869166126799477782764168073655529917911289754186329363896670100863827608812786024000340308544310858706814529023905687279168518716131582657723090907825420657359349009634016008200110419406094268745185022089299898681599582458888534469392453014403550399552168962833820887608130811084090537777360466750394791834003251431411838725215544226489709537882636889478464183093733942842873413410588026709121233429626947472046516081089438566718748398181502793585702700940233730606985803558583988124234416539815343904697639895050286348880766611683534566689421293609133617401946440713011306561157559744345690635707395960961491031963183550343855195762180877378506174527265584475735037784980594590454322981128198244734462690009674560139514293533055770596422986729406185426543513580754181176051466199641077845797473672729314291693880951321580480389049671202518208205769385663215412314617887500686882293793276751768748655869918833305515320249725284161266840401642433844347303602886956370490510475965190877856285539015455889317936673916603767388933001854880184022684881950223609284923712927216954558826729197234446196776230589986223159294034525876370405414518354807968998169811993598695058056611732487029826113209513915544156202021255983002353719733011999559458410840087965387720993877858747595972311685588996720720050648551584825719997825833166828746047935280392253891130924497241564369871953751742112574516023141034707694129498043959495317931663869444262960340990619377568645269070958561324274153748211498847120118984397814317003863546086302627228598392999659144909796253917782814143069847689506547512336627407445251458475108615744437663383414349557289409929296288397167542860283612988955773349418288062059332243992853727004394603774027590932026802112639509590190434681060064393931533888879535942909240725814919741167231035369621809282005123296992031601075384347644913566794240018006794699189975859287237660738374149975982141045059007164873129583682186920364462641410063691216282486504729388417154320165304721362761994306064883392774171514634020435382489426244589859976526733201254996273865809478309882384983058434452603139726689687601532563312032317310411791751957514394005339479615430268529560700570547719531606851346875766657297155450053004048771514493605110877848670154517425113656252059915062515217765975512031274845439081019650968649857774615753663657779564451415321323351144323665562865051248534417494788238247008629186751350231050774576191997319814846250622813203148124651444834452079098119845716791587202726073127671108578798659184390198211560534216011149267876102357625775751630520472356621313686914195429436577951070863880847230109455438115798224820031369302925671969264161099738812633989101003328973343838637018698410544660326457038523531104427412404636714200982641039793374684366372582078208954599070465609518849251387115785265494612913090253651164542586174992587835973234663503436040455303703999367017974316469681681877864321930597822474774798491316017678589263661355417556006981303188272697572582704694945172488909637011460896321650833583996265333333455342601668381558803182567063286696129337722863231439760788388146220513009331193139308380610898429108931848154971905713477731402416207851626835126473266409901593806500635736307128639400870859834250875445161946244321554812257043087602153382834022813088173591979359657799688546305256851881049968063177070907373389455754263800539320347056445051969377334285643102900544679291544835386107189652093079346303430525350669152495233602929681129020330579419973332176139121778685289285711279652296057490004087175793048869035552792297335045290764915986100931012915854263772824685183261149588700551287099961725410027683204186922287795468963365335836069871932314011498722966198419467190241939597975219525883651555772303136270116979048573372647473600221990167966578054871956812442150931010723310076890586851508750866229303778689388266158916747135054651243338207829146836168425560667072316968751685765658292908896313979406767595781768196184792082568783105302508124259463485935394756165855656471674933702093916291006048507594472957595648264873622566063068985525672748490149292272908749133674754525395568592744473159470508702851017986922584696887032316920527100523990348697293148915151742533052934545002363351600946884135521305926221711385958093515388268604527454284493616179391703139798164792721832832859633421293505860828062067485889203840679631489497189448887606114103672197115329051196295265339710926199637525412927516624828532143581454707779116847433907947289805075320245810470402320662921649906853724541870117430042306625113398637809864765606602011145749905947851932287482021602960694499643749070249705680777089688572252062365360220701550984298090866226576567667986033936127563308342073408663086070808302079722095204677913328865846689805262361519706662246919209483672319575847030283438897811970464556697888985621274508450195794159994278068945386447324384575358932274196662247269979618521549581468729913056198617343317336124186812077120358355445606057912885318823541213555575040498646255575623848308372177317342934757498232599367709066464138025077940708070560068408224737542622517257512656605580991813724302320701523868584237206964362191407900203864624465058771606050220114151118606379906843522994467270873665511269406660067767071031348520181253671452735682811379350357456256373193806178894983692616399325014851861789185191623568622727464205485104610852918202042921742706685011665577693392672743317088050885340039629584714143891285147312659048844969439685965760462646710905178743093212684488437266715377415611657939197012944606734024856550334554845552019604290695782333323645451889491051623194685435889516812649934118362340929080513910571142573151063793912584190832168467656225017894165775830927164305064881929880718096122897502383933790780840404795611787752259043011046830581768079418678363804629554204933314588462541324679119518949333700279006013081643830493685289814970050199011120350404727303228114192317102303277316967725820365614705988994040571773130657851871223973110169046383513560506305106338661592439377480086685472226483323382174117850129156087195165825554035803330794508658336993424480142488649323617780869549241701195499916169518049165049792819567199419135176377148819002374189740831754179520206272277947851578420596760604752401062606986765781513852487301430458534733337565110762169867625417664401782135929562060465517396948746661755036143134846790186350835744892549118051368960750188346023718358142190776045190505864550774677578550370692007483919100953189336833111171127953459618071052729627302532540255644049377418861859620850044353272485152180015803988645095485868521415681755467450791805858573992216990313145253702285322959376276064342854267532745377953720741561662541016097434314502585819761367992564557793261568168529053863553769828677704431902295100938982319291863514070448779275504182418801651696648595234915344385186527531823074046513718716832402816146875553118800611015628703144415919801514048144909093453899898019506059069669234938370793756530781221981873903296165951190429183554603332838620281508003947142793742499370247893091821678617577411861631063510550976037301549627235957019137418564193344918234958012923254011835964002079205985086176662704277950605479873563063850651845153039095782901592194758782690163026444754367712755167202660095891011712712616356167466042154570892941240913507943587526492489050119597273712214111413506089872176733254311814125605575277721152667516210446048348596125313122504148052412865556098543638369498905286301353647978534247560872821692805519171403005560134300612960101564267685884399819502367023973377643495708783175644587736370031817822157424993709415691614389496907166695183325352446269278014401716266132780504055118963893556615106067286119672718328213521853373197727564425119534816288053692275745931100214685232681816324417991646472417974777169911743694873557821316029803194516072980557889908795778626256604689455114961201541754576607456694367688642169920984547825958856260972281042122759340709342394543370009791251764609242411342326656540674203937275595527520226020373823116339693300533422348286890919971364757130232184706637718555663705365856941791267182175760718265501342019015527820413576222260436352311072541786035558053820227261088391441484535299282110125111423123162772683994879604525564594335064443819733464392986794361459916903550159781722258406393952002109068023253301787004705561794567310224409996946295220349126048350092896603004517201879881728115302105644425774969365532485441081371216444449493624238618920493047336471112447894391541453463750869331010152403310956903395045175351842905546095562286963116075097007934399576956792602284671589768777850997293723516901995280599573542503396440388344632958252586788164931097456159920788827463425944329151613277220918894256500760156922413379302505224258621115325522199531584261163727999758224431957528021674264552885850992160235650525402820882505673966733067006774445189033514819392797753556048555747796788099469235149727347406600528133850596303624863485369527095001427770782415070285527414273558230783376446308466301560902063185019957859219587926708970498132605426150091443511329693404657509614575593689049746995688830152198313027445576459388684935565862382209189751408652939227557151540998269242866307428927838813287628295277784927851890462522948941623137630103431886886105148361864335392796486280444257590592631354346321200486352535945948348932704167095341915581940243235759068974676141958004891320702770546882221543952044497817724919261857248159259060182787236215380409347212990070101010544270032112473610018965106696513642994929310226485486585510472619814213688016211137579751680726505075631002756454659897360115363266147267225067609571078344218835241599749210005261811958139721817128646466061962628816904780805216262522151463356761374938540931813281937682780951903338993765184145919475626038982497938313955742216494098093595837695077978236140975915953468230215795289306470313902060475651175774269137863059624523510185367162295823451044573132560483348448535789550523195908328715698147304722393337447379751580498858722447007882371086013772852753361806001015663919484889498003758259744075124723285210027148822390152059433962593044081589041600134836374017098214357501711187788194415586685511229763762873920233997085939863757966565708910449884170572198011652201387911217454546107765108993683159099600799310796087231580868594011587569194395581401333124500091292037263953754640578054346154351059265607599189422108673766780011574690220342570021452424422665112218659953279676205073353365508827825617795416454504741004623308055417862515157544682620987959969991333554360239406420433047928951045470898981400551549211866042726768789606080413825575074910081829713287468933528575470703620375484634380302932662525504894239910525888405435642853517139314858314406279329183977824377726906685802144990528878284177723595864491505709979404782327406913839428565742809492765571421001929517069884046750177661020243035535628207351243362944672001270479372313359301040381101498764555271229940519917202326393252491108237993071035058998523866633664089637433382308496494597625931723142537182936662656372503892808995444790182055473855218740332214473704880500590343756760799031547463089838329112087335795457293144240339605365169249643740659287523216631879486988788765355821291691628136748691675916898631354059830040580150560661791915178914987000136560641266105559844142014652246512288347131354237329722276031375425479268684946509654355623851382058868577030630922690508298416094919472798230199670616982178963622654743600533968548158105387563431823452398384487020751782659166093296811526506318849720355836503965746772518892880957225957445527899826701741323364215287248737179329456122387035979817797152890225270463665692897144605973670970242666232452093849465088513531102143303561847372392107380923681283663259904812328381916185204277787916546639451433748069517472741433735371879526466144959641647845558031258332335711983828343430154473831327777009394759030651155219903151442788556859384479457485284743861877563618305254192116466534087486418541477672870357582983504724557079385472390322307415855849047853012813397606745281409081687273770711786205482298552029153558453865205225896559593858776108935714250971769033895233849616697237728028135271886879451049226931982672706706621608165151981913965468273115224175525509538102882701092374991993265646948340845297151293219390647985594121050081509566192408112742107432173115386593084494968948106144434643000175144931995230857485337713555304458597052891540561435906501752535279820518503363832928008229750467709431604793622590205193896982662442319867783766288533914213691147696211106429554166730146625110497504672105458821700554455953821994860794657569736678303494122451114297571212432126303888474193570671719792585538768475521134941383272619290610621465165631533251066059314702330944362004795836655582050358788115747731173054734394647163630777836590578728979246611598029907185750257680597354485033553746419328348964186176145596879991095936575072752972650486128037699567675249421048214498095709280693612921622806213237912349193241688693507343375647478358013891640297470912896511022046170973000348605843148200192600917814066574620919223993929322592536782184025675163533888084477612865146981938740365771618700128202686243897767728901976401433091028249569014213043460893386632353212381586634964386169062855125745039125554639186844913746427673240443587112857985761434326052369032754462434335635422396975641669506318252466109012990403612660855076242146794379389966535698668831293696220871910001929454182685591848673625575938525997578450582017111516628128275787692608066377722368171780872546858377642485826540293089156716754996523811552517330786482709244099403656906858763583068063041887093193966060970186065362779347800889730557641379261179703788400832197247007885031170022059427566481548577057657986675470580293383996506809675226540777257724059834765349269455350583595671290438899221352240588268827115380070655171179261949406407260948881445617655505215394159002600771741280512212228536452651282931287023801668988665169787702106666414677713551633320310438913627220064179143744837693071518287249172760060711434648637587600399988922283196113346204468354894473886531424776468664515759763558283326280595546811060462469229573620773137755874942819091534001906714389977879170184119687050928246740270122230160723569557058177837299155340669025375187771075884639939239722540194861049970303149475789318010504317241413618466860484369553349946608140596003434269033503631688559811618153868434194590111844233504567974359133820963295156786136324348989206156431313848275836984981527296533673175951687864027808859744606070281119772139847630506058314944512378379666151334374027538328851054655900303894139429718481558156935672521730768476731038840560528273348640817491228812737702760758531706603144505686774482441793213485803306551143016368765450527319253614911700997871371180066266439910969938323342364478847356608699844771872738668871084239882777051681202400737301257006117353648160186510733988735473798783392358287639957101301679106916339017928101617884021192546499724640073885332766634250429426277473608506196247348772129829803928204381861512969388721666715784541141007434873127477055891046346617386357282526675145350110222398946607018478324753792937041040537052849633279973259390613153563551403743252747266923164858160462850429976890753035027538905502993613154884177139863903244873463422237418759689065707513402928409541851884671423811787953468096932150491063220090108599289120827242405876863756315328051842065653611599132431386035854752126039661155652456291780331346942328193815779294417791599313786865032739721723134347779592752405746357046976392579023281592697769680630839929046112574253353061756315723402450548754043520496232043187675157062396938208962822205219382171261139432143842058441188581928210916768722060958465208444138758739664239503144231128572333576610403495426542050223006580243465862192020217952662608695051814275239470160055635932556912807793970169797742243320423042669581020251430550438266969614070901763769430042520753462443705886447933528099477825797940386306135338807576061429972359224564083499400675073169068461798957541250043264924025200626090436906456418093548526215849049765253038634711621694689226796064213449168772294528861122682312594901698270233292492075986588840388116692216214624022642430202903300697021228821697076867543070131840631284059712096043007241886695054141488605026932940071760495875202327126790863223589764938037063498992397615972290686115363326562946173260671611517859220512228031682232990055456356512846422126777698310691190743724845253491061132715916609000301087493263763177747321182804617227852544109280344227282233529450509997233160215099443419904522248147882295454393771932670213341708387101503031564367594983642688311034102357432095096304834734113627550639654024845258769432774373747314671537028751053345015132213853899022167891953890142907942832369490672668635979252402320307683724877047520653499487583692640788646404916006286033443164631894176696410379094408975332802318038138906654719452661845567972397358242288098991136803408083668793929378190548798848459066352498522898484361937812515532007005647367745286418762761726110793723307294824045040372138432235404035091337163391205513357509180999051185359472338393402564182709876632735030615362758100603267337838741746371485956429964172702242264978409892941609969575794325636099541517623402127110708705428932857428075398860579593387495374932106775785853640340407229918931263029736187282311969410931920880958865960737068925455801434484648648840948625916359635696719340739266611228508214917054020485114311598948554779756505328589333399894690084196030358196635028753109199221073665398454344306121132527208649827808529191808284788846865270517264079055316509859191129722856321426399572349664325279368425403296747431063890050288849511925501176780117095499268311401945982005237019230889112465365226664337085723916700096433781260487914541285774242246318341633123151296020849618212922602445320743689537292321717791966721414362974156679998816626531199566682672521671303225434710194563156659816447370096465386980121817531325144666270834563001328537017179954231519896120648564627574087335413256901514310245025173918054314490097254702267628312153424322017150460802672537946493953601317384020882441560386694348373687249092336289392093138615458392874178603432838848120092643373151381874469121256459765668542996015621136151147588979859279506604216046120633759486033962701347286736021981265508051017057160207997471392815999609070383829922555804159227821518231134567922589951588414323215195275471131511444261923329986629382219013104018484442913177016965725099873974009725414989568450897229384654481920118555356901919308837470432915664714607231813879985858026974583785113685169173234081504008217124700913990863920394972468134875312045970473272371080147835369640927198680104557637089819827550866335793623453975495037424289900885001694567895340500058065891698121501330666122801056753957547477480662750283202758206981249677506804298468426315179439371045180329137936493062497090312564955406312950247411031488816897145346766787888886979667800137406981072764731602881669450998724573067920388600675183741338034758094742649643599917647192532619517886074378816043530796547295468809086672671463536826731038107438145092061110189900609228123121657562291473897988643602582861734509379431525472107744932540760282713259254076680948694070848357618268758521603034441739264257825162928384487424505832312202705559819918194283826056049211843042149700242041533701172331757163591953740370944617318124728896010525307676867183505831842490694476588714173549319099053321952469301572880645576684658547431660137588005939925712176935444444407458945116302832735783369008527442505435074193765724043323816541345958471312185282482998338605773536622077271794369138612590465019705720859828546219856426290052581794193597230225648676174395799748382728055115797320021002779753142661913935774945375506587937254391858553088825275560786588605214764447699440904941889092584783283941770855937734405294382859275819156380411634084127767393161011117499456371799138723451689047286809325367331453200005330325203943091076782144476030300056380553944930511547436090922696526450352554146727009323298935457791668389624906409205730650318520286096572085224736646028231228018768592729603448426567200018071402586761115127141499603322011355496533768392896533690951082463637166174341018450704321831485089247143890822559947141078040354282971503405515834321544984607382537245018685292851430356736744196146299405962180668681536791653011344813055020552393911930409742806901364376222390331109421069300762666096671153806265767664119194176188579921805767097235985807306283036746454580009464755348650281969998282549325572504870807667315654195481539491081209820265416522277670949427653515744183889235901228416100752713119695078996597564215860168057947996385832367307456603425281700035991500831614697698226586198516237690875188086326014368732677931763572768073021327632864897562894682887218291330482407464148416764791896565411824701363460993484233883826145766172199082908246223429220149778364949400351266129124574074563270835687928514935663235138164077671125050523644482442438786159521560658694862148131260050611490185810594031218305676628903740133547290689667905000687232939505284881511876121095178085513795323056035092115439739746706237707713601829303696938547726355053325980771931604359096059715020731370033378955667494382751683953158486832361387103535940500243630851808735193456038867773600230943525402624086485732105980084616574544379778967545560301349110511739615982417018994896905539578034853566659573175191766121182282121357525885525790128868415230036312386401368184483909088555762541028702981199986435501436996285866474896762707314477762003881976621830344949871075884614867406094928109882389885508565140683899121625667099687396674934918831342022370753900275336872241463874401000231030677066969084482765732336075908521866880652976163672445072524956508129132651782296192456089009740975242099493148950846408518501166889049658204692255207556303652491898927112321131117702783644788901283175266071580782778548907157905790472615408267811702489013395310221453870162620430285481342818092193359635283814058595379627484194131229655285350025260919933296779674100889373714904529972517502950021755562253562056369389502319014050113198943393876774211855880013134324487135456373473393404893801351074507119915542980117541756352772986537031752593300909866339899261986849233160237996259203356659384690401616742744236214564333894182101543360054714682864219834418222765388566059604102857101903220903006547111928510205579512851931858134382911080810508822436109178846620682233551496449781644994216493352762484541299201642237828747799184150319428059258731660351530226950638572130740965356478333982072725824028874872663584796805628287917404246960365514513816774857245617985726956639153184372453406597996760308373983826604178437252064526010684738367455842135069985119719725121261971884163904219179879013256613203702807219610528956379966702350007584170773775114670426945384497431016873512042063759855850011705842693734594059177798758835018636043917470389037233335203566673566095435921034710478922728221666842845774767325723011509401640986320623720183188897521355255951986416143934699018551957113525547634594793965966523406053715467877375849380817324474048317502204496064744397877830732341322030881236751271701990504668645006908578443010208635865631460125022821673376369375411729677878019759577265207427062279998403346883154567668247982250634627363930444950198706604378459360040163888955781420922736634216215512353029407077688982916167589886410524095258618325496236030258076061620158024807570968927255401804382894144306102552049253935934344772277896291410038567075950124478743519465055345102535392408138411901852710655133022039815626596833820323292365323860792219918542675679890129802329814953517461166988208830347435136539032344023737197098997774555386862497856530496143865029391551122253229770837960042040963255309903841017381164475195924447914179704643113229541409976396587149008032909412433809958382432520562616205592600449941363541152391951263374684489074981794047929065826238226097184599982839963343652808333407419829364454834367735506899998328961861012943847552628737650768420010786938544755813878232847637612533167275720798501707149414382280932437407361840725047146616999205461497281183286148557772075531801900793200727481299176623861543789320135102710288383490440614397412719001757886084155719545440935469300547022928177011965539396440143434351836554608804156633916383654181088704253010791310343486849439480705463440330937667685521939022492053798416826419435441060696297096374788245824526236599948033768517789529778773282781529506111160990478536989643195471147812991687348217272621930123748205809313449921775230765669973857610900574855908373357936447099390473066997993650883115249302415626206457419676487351016842733150217120188077735982529302606936905360554506639476364902802826467610410612564977559792485958959582095226591537239322598587978991737719130951172741444378128952931621011945211486677235853491155249655936742054753255392983192691511806053477608321368344152695644435991919170371413015333857333754762239448783559877427582016624695311336709649148951148236953426194553055688193114729552840600124396814657137066285842449736286647777094904087935799046231225844680493211487493231240400007162949881946637063893427931432304256545205476922602279971020498923129717658696390278071705718969482442908590972771717468911812395471312620007308157993605660285463331652351600320526799588461112597861671092932422088112018160723239769430732809648560412517724259136254187176721108815450368738722831057999272556278343644161309857205680364578159898768742860702337761137728192489745157525992254526771410605178505461484451552407461617474847321071141009408416743698842219006549259733477176565810829924692816363381597676685625376055425242897210760847129181346120804016789224314616062732468637803641376965748483933213057928441073607413873811484115690007355240135236884286991920303287746104261857777096794547079794673774003573536354138435708010550145557649521864155539729460199892069708292158776757891475398243886101371620316562859803714697659194349848776297255612013603091132283874759648124097663022822564019175932263581560480746892802632832973516696425436383588762572958627071834066830401364082513242515191254988315157679442271435594460812519310196885520004889641298504081795227581495353187800444984005110269706200342512684901334884173225205093065456319498939350957528384320479620550959360326501289015248136912576205879670268219698417979502528833220875980132803348377772553570890608948629606117011054248982792406706667617919500865330310399920787986928191565532065796181872833886861620293260340522096390568397471296829683661676026627313751854616943237757696268840887356694659662747704614289007197573170105849588455917951314804022609036389903002430809864775379849745283470877585697688194989043486949801775097245680035822648620729947648976742618279337521016446475439866445537969433844093334147768320134756122093180438729288574570694755598005176004654027066302474704481293386454837100804029976483775684240578107507892068922862260466933475651385564622194484729202019721612641423173231002936400049295011877265398797449774736633466698333872609242902834254781479640269422512921016700699231313428697740782657962069134079126236990718402868970773891950197824448698118913748237850277548295954514085604553695579576252397089118255809238082018709036150127759642833567985299382653614945976662843862144630835249005474051893136598918081231262119352528330936846432519566786677097999292493653107938579805650412984177495875907772988063128179203857791443437991942092177979841579542126523225295130814113265061488065189861377116499669938948836752574999808745561504522026136670867561706013687166444449718551528383479179713219193886668861048798614871562909894197811624068612506871937790880084789803228309418095127608536449597685731819872383960794507342325434532191856684044669307891868183181305301483821059584412360141065685125600008408443725934410676315360299216140603995586325807738696228309569418065157749070433312953075444884916840416401612296482531762246082043024452018678930769327225859540665421683914203399116801501575476502842881850554184213127460346060837474904730330725785039607439396191469340284919722273349700071760494815061011735828343918245270708245166634220012700027668432054900476240263634326859935900929768144904149509599083631113990121935726308194674924015793792066022206783682492926297653923485515260359812962119863166608885081956580883032694134797045257071886440845402630077200823524433479113537451066332845764796380837445463614652737759152683880479301532539531160155240127135034250122800276751667746076667370085998202812508285239003729311519841967446999286424355768800258545575806473241518333495878777265225764577845748548632651917170248419749254899817083494224496216539163236182632420438225555221397501352321899417855080722104291677808077391629151260066556747210725097879182691210602264078922935147062758658534579058802390060594870155358929125996371111678581264946203099332360908676363182329967075932329623211781538816721397111610919938366665307653920862173881050107381546845946450837969913495111361739671151681083968844559500129900397063018950328282790004792462095884670712385006154738950642578173958659247234086464217669861053548692300544868772725666436723796912265332470047707212564952157609352675480477215073781274274692068500757747456912754831943744454142758624641642107906291085844930921280035239429348088567903749473560356697014716767284933092972968504512203071291214333513177083078722661595250798602519570368306841248757095838981841291867428639930384980049936925319574326414442280718344068460819339300408915042781734579357617288766736399846496775728152693772504382649378716425483237519083985000540757959896331888005871771982767064534117022895882373293234766752934616624036330307510822334122460752048272915591107479597629869363504453081659895941783505519922233185119972408583827987363805504816557306518631657527689984406636279691741825323806759606606713709372029849243588297281890784844853989437824676880723329984496808949001867205810090276941220066216288528131316316251311516271339458301481902564954241278386658611578225650779234224411899485715986504794487654552569032340637154648935845174407387604503368061218993778574032533034037268158042435331110285220340362341449459500743534320127705615840558505771299537759314168200786109864723024264365564595793290271378723359397855774937507241819442639659953323879008911241749467095814112858637272944607717677777329382922995768888552564531436906593817308350187417351549312503846730809148573720837078641149966076695216418842694878320024401257927623776262524552765062114969665769128939940657915390347668415776200232834599028934384732637570505013933521755301831143588052568179398047730566206064551579225948247233158245537205976449843081217203462553347961183762232779488954032365017463146312329519673428034794125551146799092852533554505065114523923308429524116671130918398426844063225561903778632961360386741678485213640554095903361228828792626169405359536930887805668480535347245633963410212661741708382689859592532142620690259516524136977243446246241263011746880467871256204032178876449051629308022322465683876508590367100268378014137726049751550588144277494868018366505689966363487659409328068325778438442392076655316584463325370280504590806246323214992930278625035928309215377469943266657921347253130202846671033886833755612831808992079219830734829954427433824748335586870528282541476108256060443395205992819046726230140744289833688514821328671425770008052722300691612763543473435201331585920815622816231278062857724594576106113506063127902919847482165285292046202180353902951720591682497767311856332836164510420626407165094681206442005871496303294787447862973213477512480304240335553420413026659001527897085574539112922422516652213675944970720910380800675393941641758950356253890087084928715667587569919804927960710458435039090634802296014287726588580424120896323884022776552042971886892796967043582719456373390296704862223622091395799369002363896902570637168771071451055361111200030887732732046313352594830255909463996903711333582755890836066632113234375578682440357749639535144844627051109557963515180929047681017151880470384521003800941631267043128897296242490371967444763495440047402688875671141368921901394402785711037748777279195548014505302132265002388632951354607156462539916739600437413658104601340456271216233556215735526869274788226621153702720411815470315156749588510907376732404676837934376538349292996974245860427848922263911235532196238447207489468414265513756425476143562746414945381988549009979998645368655861146606291467685840030826987721474817761576376747305745495707758053380026470636023307745460034472916004428147538753686306128212940343331977236079514080705930794869447831890476613545983567765796322128721579714041936849058565536564813398698929694414866522576849720668357361093128169360433234605869370585993576635361934335308744215164251801494844377280377188943085555143981146775759220675977042005817257203061861605059101164975953394983948150589488915382843050777021172207091315722455831278067941265797470121531598868549477651988987010182098102981299171206812288321853177436173894641267624730613081065836763495798506884945056080442959137540778966740266059736346190849716327837067259905582393478350771547040065012548756585558433170438061213114198199762746208313864764778933340336668462831587168383277744246212402827292225382451469097244480835568056054405716997722392597424363942470775882393397485182719637675330908465983169524510392961261049827383672805318215678686074894354758369987696889036416985455844593991868337690061794043259688786721639758103204647007405434717419831173639526745602550212838636383261751383135817930845520392746644556363582789425846845667283196449934454516284126055596423472153399939080919032029779442230073770040728361251088188288504185874368036488118776772646875887737510589481216807222284809030552748877629086568063734250004529417627662912198734772991470010461753430277165090892374194387007989150462297570167688355456460898159343934268103066914016563959488042026533118262736056587138916103882870505721823427297315431251175703736721775601058122130082184737678787521342274241638539308189661602955943050141944328488984203175353102049231466997658740710957202859293105655103144766499407077155592463390448197469615206100210909610532744061790333361991521157433258507681087973637495375640228276162858873903621624718628500343030825304856833694549469351449890626708657090344403422528556186515530148133701297261711419309637745208812189174065474122279989052779817738492056058638802025529359475645647497349927414914044488599014407059041053051726692097476146476569934150013024695400546040706129994110324623961474838060487788468559370961989100464030120082233169541915373396381380853257961573716092650247575095030873311035949949368440887817418441414189375826303955226852838970533597104236342783135779972836748705215986683950870174683696130452041206154961087063967465214134789286235368796790508673952093154973625027641043976276939679661253421183881606199005993781097749741229011845525627139632278520631690925023699448046389273750951283791978211872691431091603233067178040074940696999838378170771573454109364491866158576989704738508995228021460094836684479083460156984084281824037805688507019817471548544330985870284840931019893610253147935839301203811019759978958712278150940733929937568758997666227231615818366706545746013491933802162652658824766267217954900040417410266068749555731715636716966912795813598356583975847399942116257824570128353664347751139179216350225527435915835892995579404214349568676152708646340546782595945703937161024651531122590655062431203879690036875785866697634996360667330368600087418570275088488099752639042119615056959278548196719861365359057177563676318090435759213806663104120107188815132535495728806801885723102164286330914504333449022302893061166847723958169308161705005146415160862652552555182514037134809167052519997695076851491232734544012403096832710310036552352714386799023316868985473812939602145017808364919906328292340495608570513410652274367386717274560858555595464379917502698710066085896015114482221294853235697278365467096201015978752184069107056231862013366830978439051886866926296203576481310923908357450279297616560794314622000435917027122402720159185228455855670895364783186309166602449247075751871763831853844967702665163719928601650433754865846632248174563049739777326979204208770367587225820481307213659311267952218171859498995140619726121663798554559345589306706662126085745203870303345245098620698662363105777808940225895607805989522008989482923656224559743868380966425512499957244112846310544258770828260655793622713138702391571892088229742395718219673618417207970067230903961601264338928727549832387424656857250321807883199256426078638192416537643208989708360604944297708284394481884911500366864488448049236573231417383965341848486508354472144182900573414350342999762594276302165356286860765997821832178746300568612348955661249929056154900484700595372136154700949627497344835549016419626648461893740200845390860907343146388776499065503749791467669835049645210089003814696355110674098969064706538490599402277928013356050489485347044526414206874826071684119905622213026418362494056049597590184424448473549706632450144265703416902835801435571012132985301652050713732790750344642113060954122181400165471677170090812571193093552026812609136186639326056318268674195191824045790994821948968234983297790038650278272952211741614216994719005098655911383901614461353998034656134101982923598834943828715841199202981038406496057114143224807555005244180706571545092408738040318537944982718620824618318682877107282940845212863130827169048287792956320100386926435384358271654623571591857071552909232014330753847666837436513592705883987133186199812594834324725290461477319281939016391905363350743423669207760412619597233813808419062148867900790843985482308121129678941014275132207273692075440287121395801489309720218772437846303386960518591435494366108328083674684756849126898538415231207859916255174178657470750901541705178089139292767620765259454565452608468199402012374195921809199316231711178847521547324064575409196826917190311816670846846179209818838456565787233920455837714002985853717745994884326677992812403122960601459815902999764740519040115589893818314607350365685642568505687117576660173676544207289398929014476780284889600871928602642809435818104660148561174729029383299003464547631681531463735694530930184864746356564112810419331414315147414962858154850518293935028442970774320093032613329053888757453872326153087767953807770565128656352754911910518686816576256777785891555883320102898656518916103074322363276923616370907099237010219234537870798635301081060128345659055799462719936005045539940007460551826308711762348070991155202146338008954733960968787571916222614884498827054946209771379963293649519368762855026178868870355179034353810695541388978663893857148714043186258087990722109778401263347627961500867315514508204050974917714482178212898192845807659409355150763330252083660984554367913195861025457689408274123218199833951998436200718459324619191805855293521723663495967967875009328247240949688092671732989320629209319654003636005824518559220741486965494269438613030152406059153625261218252568937532624855039515478249683907002499969859071863666039315733334600671387837511880666709063496421222422183662678058317152783818683867965166481767669486660450485435115350363965201943667855244191633096322282861553104312778914231274208626456045270592321604441647438878304913512278449390298328408236187855887410758661613834236628581569650408285358676922300052922467017418161271190232562180251483698740062749248180199549255179270601900971313935211041996297638785386228513219382735862157524231748285317807503610928112690988910022759436023622639645433430518527771404149171054093416430509063102693867133790110106998362429176315685761127741325876443800638599838307193870100329391261625184557922965137193710237193921584145462406177560498281433046346475109991036321250414502023376811417283112999888280206006633991394739628110663936172214052690319029370876479078347019864880498672120940069296315406058273373673152326650210484750722455351821178553757199850026570745967686156852191650049341738113937188880821250878161637812288027553909067762555741769856032423980845294025383050590474804687519385803840456459853815743671639764486688935117280921065262186352349336095159149828217355690777148815302873205091930732082183906675884640599003747344995873308387834493543414114345527635413991489972749258027608148130406803225058112473821736381363521580498090513830149846145164265305265087199952628945300078662659523951852729470617627513333567251854023201256048484412782466467777423304896601797143699769071770063425124318202434082922922149848104865509087183688230333172385107417210800230445454358090859671841553684820310626223206415149580699652658764417118184559289917638575793333742704344236999824084441589316601099112991526853260004275807073672773078111986670970408093108006358166541891207873581842880734222138863543823880447954819515768427136810465031552147944907298182879994798663244993215862882521885405408698009346539126097062132043306412196974556463637365803824934396656007739212489376345302366292519298963798837993024718078378981547754759137374881306993036510389431400978934728708864548355881312421952798404781449385697719860565616829556595236897961215847389207928223206359308650190134652372981785098947296886668563658764382403338804303274641027381748151463401984420995378563950994889370671618158775122313148740936538225703957209847888111752985954774292348401522330091824656391071232796147066306281610706632082347847566156457563391291647895282253911748090769641678127760304723497903142101131488655005878280159080876883795511039084886939678649038273001933331457098323800146457048961192021969727292952683888456006922504564717107907289783525188572579427567789937097042473307363543632930141428420964139911639536699878656711844621385024715973102639474083400969156388323993516596532342860028280296969296093737630209151435839696574084337801028043472768863253915269387773409857515878552652170217152122834029210839567796303204275505053626778152463736134378261100759206508784430728434843486556590725886939182102962358654116484031003585870238083030063534100036107363451400922121649922711942148992378015074135883417593850274943170385671488602872025118073739591598263380485874769042227111141134416860472979691843184807605406371925868119168739631991199555679656789447585730976666764306280040516504141467651148903259322850710541395281386554178093647740344165035097481399904156441275123778954794097464308058058966904173858810444105046670172263039704916407841739456895350890401829933596271622644426797462858043065156921623289632703698547127967875682838318057827129997372040930978223559635957090010447633483814570473742995670594647588767348056187494405966894921128590723662814320249139454290539178501844485678617055011589410991932827212181799779093852582925947321244529672189259158966061784535105846241013056663028968437232976767737135341807448699668336321566145898362383997545678902131108791502986512233088290542411893407410938524394323144647019777854192558977155848497114725706096780395599840755934388644338190357789610463971484054215616368002881616588316075751791390017157570663294528650430186862361865188533308669827871998471105990070681186920252035613222134446195534362019722290920877819771595926986315941127649604576425282452929115180966444435351547240417713790139453252191234054725290309807602291327679201806113351864086031963953659269732083583518321805974650600711143503891585864445555572273959479696952689945729666631511503131859276875320713799315596339515449125705189519937649018899497633166950830827423995876124405747220013720205485587369780171504410988892591023440388217884113022343863986739910788662031244160178791281849017441104957432879921553369755399379019940257621364263500674971720336537124472387477097049608997561659598507489253406872729125727016292867394679129154003165282057940986037769365525575179897266907735247007262205818897863571354654880645344579200209076043212251316023872055978147723788830783811326142294840498548464151372773083772366166004472238059017075638567397134008146792167177161288770464211723560375951460059909875499557677036782375267394804637615976745590503105944515037667504642086100824906291370604867809452674535209787084615985505785481887796621895032622867395373501099041322666092287484942133608910117908930672587918610485670994045388466952082389752646502747356301967554097637576339948441819098006231777382005626828513004032309977298797275384967629784235910972989236010414051351602704327285802040692983008491251822234967031195129589355626844880126368837835908771408766271629395925340499100405893957257240493503977595339703748529885918215614374567665187162457098654546651150812849373729273940371998484117288764102343607172611954800925052435637900939795291219465814895635774832478337185851737165565008763985139664437440895999177213633737763401169568684811162028199709712762239617033376030796272288737023026573774980052778961679186862558263648679342399980269620917931221421345014875133505145359238537770705898434026133375162098767328484739742181068332067405617889665175627727104542619402032941261189713002586873296498298983972802693460173086533932813560754918850747256888090573339257100195485277961413174948175243015400167135219763332957970175171919833569105637276414666413461731739385175465170959546718343434879476411466380140232468683010712633481480773992236542713328853351686959838769768708122700275909953584845117664045886238810573606925100412692273442341241344490834089542575406369783904137975816139182998095669383998067106507718891810562864042822194438782271472113706737951209249146667165803703954255557787105815672313873620489604253191552912056427650758386581819893595611822909174045245381876579102174876603194901293336603997165141532140163634078509668688113622244613047968673423616052528186910445286889606759923583294215955418563747878972092234235149615038189168826698930176183097208985517513500560187321726315748238236839199121415023142875613601718748906381048214133736282597868921279791662569241302777880681093938844289451811307608962249292075969459768832726506090157041724324634326978952180705998848136441696174812484177962130021833349925593525454587789961334750932642541823044473090988390817189684293684179070036838346761743035299305680117697683589006832819730848716365245788849969203874520882771976140359271358409743064112954072363269790710411891079955096908745467024106533288496504058912234026672756135976177852753626853372887775875369887317303099179684231642874860020968633324863776302483575532991524965492204256795782828068168817359914671569932449661758921717146054920887599818924247732711102122650725210547349611655903942518617415784666132685381121779472381472115958450068180042436753002438732300730332797944441401734921795202974999379645773813649131735393500294479319810217810621723368167776810323341821503767896832564934845163072425125578669813901727821748377460462238448808402348737459659783723436002220354115549537984914808500445178138198700820115379119483564490124067791623588732433118738476238739441274965008008954263450851943736920371806112202398204166223152122988282033969278537000989207505673939742790280005440643051178828654476999084044502726846241981393996960155147662510050131310919634561433994790908983443056024022601076736267491209449928747500948934286746513349314487791592515142119947746543226406368235110395481912828003996013189246899270154315661002231102408560482007456274692934922926048666407521590778000573603867956503093295416998080182517194860099830625964302132618835469706413933621508894424299544894142283084997056093937270536621789001861344272542719171010550061012896176065913375992395918506802484436072191344449443838710687569740738852535346662556761725679868280640445885562676611616178479730849924650112052983606199559694281682719204686970408459304472355934212709038132879727420561889318212262413489159114262147280483714015801754666596865672869123245897376539544288093965588123552644476719934503826289114060257857306107963049997127663914635563223549688859188866862286219359585790995309249695299989681352463474714724311102323036573789968410393791116866998171984223971957049254901322389013344638536456981591777766750471514919581533951019393886846239126632455367083629676196300069864688878757525432047845807954994719402233567206865076128225460522561900757238348149533388043229874673227936197872971686949068822050453209537223681182093413178079864289629864905942113097742965112232734685483255694271476301024155022982302709048805606719186123628791639142059766308130942528393227989503963224067347685808179413314989329003699084416645656848814009317344929059395973539204887179301506374774915387334058021657824441260689447685369884305367301228918759531489250037235719697273538336902581861379087653951491556055151592239642874883060151624077907673105723835109185665595157741213343265146367640403407758431834263867662732339855041776397332982856116215833627198988496211002170397736634635839789046260849013600717528236355690520024542310065192435266709723494312831218041469594550211499849318318833145447332504499675252785603852814164210918619863263549700183944670649783215607653801824867438013768627081857009807867219755786537733990780271063529527228234212080854280039116041436270145062075272520162681988500007599942409976291648982574527680148543015288066124094460037485427385158051086722177302704533541245026690779452052409679292924776975590996388027470638771707720796823397741856606820784257231045511065960534528745945397249575035230041169260638137141077277451008892722772967082751298723740342683250946485478147728084727537369683785164475444421141266468009931726405246137340771105175313084150705415390940239634952632883422576198655394503772692580652275312513395806853715188845873777549744411630321515611119873623905799471461019479022753548698049793449859596138767122549291573979884240504549073392793338594284040516534068725608080902795810755491225330943069606318862548303174697378091600690261693370912330525496136011428369776610999201750239524687207309128077969307086824800658917367748408658809609419046572218317875920527201646749196599771550821888711564957669779715205465523859575686497248236195577989372201580662636056445373518244235270340891040255643797992528814960785222051777124898556668353808150819097028321414276002103744153041274146938396094013118764743983993030482694721424285916170309788489193312007439854888191310408412686949173714781798176006535861415392718311152885021032103094209225621787528913376900656433509021032200717322055181512423188670055507167909204127246887992335811542565238392706896869021300430351044179849953809769567367446032790551533778234071339120303861815170734114171392169202092258077424838859937430413936045240787439242402603676637330171200198181462750125837976263393951054469323968076279748365153720204025419021352953282308587352570396520507614789038585028875279597807922026302780933635012204449622908360326883564025837315711708584107998819169971562866286495554909996471778295592255951979550500681896466487448429359862615059046040035445790174516572702824252272023203669701400414931434707587143781921526540111361727637651018673240458778293415599852546142667141701442715395147506503069210573721248264518341445315470809663233101495339685032296801177407216494839943679387563470183962078705267991659377210749249316908007701885137497651982851794905357963060999287089849521001389794575449930879631663614398885580157796981912882050728259188341451855967816365408808206988343863711639573007201231905982146851571242983900598764246961347337046346408241101157253122406818636634883328554899997948705459001429736480952354213632758335563272470098751379880639466681337118652306303621999936025818037849473226747984983289229409470207788004534991289136050059503648646723805729967051837530630814423109116173883976573455168202337126955845789889074477305482407229291917687036088469570617435112461625141711997427595317428966308658072318610362659811642050411271092919321643405276486208013504529013641929883443042258455829407187503514586324893197941886823760733776443933979419840474737865868752930120606418765363559667885559269344814697398807200246788853587642325989124505408130853723248331633791667663971794705237240434161352126101771654822668822873143369590517985463519047932021712151661901137283020006964030648313685905259826287584612106125951349594216261479042065759171954253091038841758401580270305354129699119964817443130347285234936457753717823662888988537613898458155931349023750417802824537025714927935468660080256055042324247622279291774439275155963615675743419339289452678026116220885118044835228143901475307237229892294264630328146715102417730655888016711092872394744706330285070808404488964571020279300116169848449956814503831999057644753979406343173166938117141907857881049247113659079900891337773665688072452691111581189668133350361230872297044023867586905417294699307754141684859668445964336196888515633508564979632646211999722314546206181736253530555721803696036571065341139466300022648361481279733075989908918863975226356718781357414042628255110815780239391599272466374521015768152545751214618511275025152718575624479973862522988350110622699630547793657205093709308837828327027401262465111009999417252137286837119470114977917650976550355360612639563803606456246867721164893573945720176283030322011481160387094125220050961081317098044950798938410193385499526111708940514980502265863578914608843408592142848289699034315637129435779518528188345530989281968984711779026084181141654230617771850863781873084841994411122187463537865947928149234408024447128442754874566383648500067211587257135619843781253871686399547720633592963500547512485587871675003518468428256272334239895961354077311604245381121983499999487305376538280363953099714246124260997737411245925919898329438523937245846953793913215287738401130951175957496923949078848941418301598573418002929929883285260551425826939489944248819594230258311534077517525089846672303299901238028292611378165100377788577151561183406084876118234640194310487905456721322904354127064072503500737202020983929496563698734352330737584050285525730491812942093019438341369352331439655565033281976865302503563137474963654133578646068957179385557706878837561652160528276391755158819068756799718502921689729193988230070432728147237102688658745417188172223953460733400003386506636948818669994342228074259918079529814710583478235241759599135421211287518121644955970876161861556195364491169287992289770612179717177236214303986167354130247500985475515308653825061091599954534165812178414943766040027839951399461770841908114638098806782695857464646806368674453113141211387033345955890100883393672740028358919002193228244427262043708455809939482397155723752045981760573719255005093370191764991879274070283858404316571119592586412465792272482949121725192638946305800221606142987365177365764347615690490439460863160791574182177212271910493038751413165666817354999466989969433079546232048239209425086747965903741110068142823629884589549326399774157644067755593363677751912116508295994363759697200290832824105342413205950067676193827298505227080099989080856653655530577318517959543973676198316670252535458565585272023097837236618750816324807156806318714869809724070190281333660709521180760726064477286654507940793842051676888746194626127821855027456770623812046985680673511691400197966241828208076084846348531729797043854953185782258052093931581584927669818196375626469473705793627838362250962794764802801302178931334748321899103730534332473719227800838168238256249940138127477249488381511527358491833499660268871557549446197840140876095571153687437215963930100865208852120854931012200909700612377726952727056499855560977504248647282962235073569853604758809222656592909262663007570120338313665285780591087540306300116453942152539918998411256589685504869064425813711997696051274658637387319230835511180653133030613487190449034926644662989612992546766808777873513863133778984322141687746529624538638991415513071820412355498532421991437280498344482600015704362765798547432402643064262691898878399446013923522987133768934466570634872826586203694517003873283477648505239275859798523889575796095877708281493331243695205595339563327274159852089424497159788235976685575132404559745553888443859346233949536060722243615990924120611312865989151624790949488081542088070458737443876374245032957201203217870224295694763583477796260310387933709181116448057195469438360296092944092093809052088119891686500402233706224230643924759701568096938420015464237731732879905707707745936385004417533777428311804718378693770582596646992014727318829178961736422328937863517052580367079989572920528854703513821812859294463649738061766952748086832752924133382176861572347431018444187037044148475867785782209502969179555317007205218798619703589655541124631417809909800725246367888265605854305744013462964163048181152924747702691301293896871351491226994390635379307517460668886164111289313120336476842669043610071600347191677250138962170525614332047853579519406005334432659517301901584024335870611410703878523477257985395092808054684253590170205458361264626493753768090452728354803419901944663328367384388823971202946565433751414113307410246016847790597621021633127696949552301688754031101043390948743015362237377823661882893181306968294317006748344939125869326849995050817867235239679247504438874260176258570796229470201658211024949007065077782078297996947635611939021592770214643137771015313439463670528071566918601744482266197914604790796408041691495655416070716291615684780895529718472268912222622519427732935292932809834281268094510874063066102499913129398676177272785650016256242813695573281139485531246739179421413519975443010454621731731884529469881666767440490580184760296819925442468402996237958179464426242190403612231338885493165219446697013628563406557498741738360435378679263640378907876394453789953879929528194485311355573863782867822126961756128115457258174325263128548291447772069989044935388323227691434640663405459420310071906537088511034094038184181188272903942015627316998053147388031267326345810541270585567590808855363555263141592276284290560986857427054620321460194352757238266619985956457834770880549122479490166015137741817693978859864111893606303076952504556222912153565373200053941089478455260754935534543945362007682874733788503356771410064276435604858520595258637253856153098989767518468419161521485259283484717486351166246819483028664979151491594551295629639507627814044372646826972422860760061647986886168805257040135763676105896947178954802419903381141472072683640198297141361682876679695799565375551942492954380764659633881237165143111050705621271353525546056966298694143920676755739824436910697818880053365567986338545583414547785728811006152096239085082970593747807565840788236822091967345731256541573362662277546780943852676252465292488415476019151726658319169407665999453677909600353358021680751850798663194511363316529220858289956691543926982552378513093442489610620506233543374106726734577713471647335692235569435921157241768880501314727787364058562261619973295486812559441124649780648985309430173411998851761132296496075464922045669539919840173519806565637345466778755364033252141173243139730141200495412447315205614104784072202076404774059308452943115707644252504644716895684954881250246109587554905663625855663331138190015663905064429470353228502195957822241242098540394800532360858163560956639664733331586005196389730583448409482339027083740616184597727747835369523101551573112943352633785176273726729645162943331643051119376476954596434819166094447969641445360646567812788203668331876267719247760552694470808415199602343664890095894558042759912731782254076089137173397806634095127939663243298025995130560886709593136796523802075684212458702299552692609978351008088873434710041825254075947879338764431899275865679179673460136839410585431281326913720455873500885720083797403443191447088041946938089439540910564542288352150409607373586239809753792905890396048924054541293715639506649310283680078250788495855126048533283348610650293178029553966173698681971832521756167223503365418148645890695782854285894082799193581433725241557141402219470679151554658468816592381798653037730368255878462233945502085723000609146734420939130464714422402943254057088841931571958125693714447679090385301899265705731652579180390069056265419112772247799611947243466374537497768743716924582768768751738406107861297268708181285326753047332778772656722271726848023329623065856890212235176666172243823516992483333814393417448020928424234834925852112432974057174782956567933780324880923790769738126348670448112798245363350806673006536234222285339170262693411243675542359909575608429593583674314613767914550384166303715959330455426999422108951939710876481534765867854741271382309885273464546755223123098430398844012804229214532328219212922531227315494969031716172093547041801868008503498573247117422730128585437494654382605098265150059366986841768357742235336489894410369132541691247201355818670165136232256313306181453968097058647284944153491241376912583762506217877054980235926810992240342580174262722548949572756990009664354408512224440319236509915230888671770801185912684638954913763673032452446656172180369550543481420195493612937763838593866250204904471250085607756537364453220395705852639747758153290837042176859209623334628291310354870600232039542384372944266992120718080191546037838691560987242172197639333998454297428648211815423945284870484118618480241626543734974334555730799223034266034766517567419492506198934463929361217407351010818501157379443762656270082501224221804851202001230855070427442813721360570851317378888363402491400593722245174067370866392119423314457351898114094382176884470641093156879756030560017919979160013539686015721883856307447505268395168007822547164228920674027983659980474923064854788976524683888054207123376043372924454090400584024432495888137997884518551087749720741808582432089158983247920080104140826565694888682754626630969351697434640655435502647061228409327345459233009135067159630474909039750203102240062504041525024093112060160322946582912031461977248952427742631260483593034066481032563643394808111240909480968779783685069860682587443888082797271179002705240373490383298420568128989211465878393231596403186567694964489116361577999061265987970206613071167155371908659632700122627722691415943988881662897689081015221923381397391876473789825181250124370991170791316119301474495574437982340223314670903626383245171444490069713959802150614533102550032546166595096110636684303139459673792190022926340447955460365385380985375504650379785502475268939584204961823374393269766575101950868817743322632635477419127617374520228487653804158492143767604871863093953036938865178488685303677097524461496334359525305283565410315623994140799982463615348553512863839729026441186869997878625076359307574522580761681483465565998112829885283978515974274101726397501348814926504710366711069827103193216098010185036809015509243379005426799022894077561442165813334379720776127469085370984811727968779171292486349116060450707500628908918294102274006955944302190514674630068666041074950859230513044754597892750511169646972980587039274702403699954197838294370607064523393475961053056080443539630850224708336616815912627295346011692749618493820856340531331543566283754927816165970005258306698307158752073296685718950541509264918926822967926765148884199229140133238533949603456022868848775521408995643693328500665313285143781435961529966942151931008585496974158441181785148829176194710106652132029484855007213100078030813218725170940740236970647420750993499608329642374792833614152684767821430629591572244563414860143224353676516135487136538110721321231134542892578373976723522695540849038896648347203717924404567862065919557927283358928845144354119404022591582671168527131393207927850573286543650384952191699489936670572312347040962737948408867688860250434612828405558687071998155705149870083220582565127762713553726749477413476611571126910307809627528156919226786312378452415433228687204147489878497589172413900766592487149211922365723238185080689471745035558348408917120842264096228997499431818780068645316228434182498535132777068994530747725822873363738757583794760794892669549158243747807574964807859218384609114062244192161463779005138966398306342672384989681238710842134665007679478916702020889543682626675233649152671482066408038746879012282917417605024738473658530847273740480107547458587918274837680747961539572947643270963306472532049921551040113770065981102101231872545475888726178471518145552571789928165572481122954106650752399148928838833252571104045952045343203169875657623888186556655394485269673029654970467249556440461121204213279361547605779123547768646672977482013050560925304325358643070326852429367512173147337501461296975334856826245043614594822776705029040134243200990350835180478845287418688636256469903720054428569997584687204127950349305314693832834768001787337056438518151911971112191649635593750928351010211773613987087444195889018600997132009814602394949251919160229199879510753026418732140805171026671840762702298691748510848893355004952854812207255186372716532667763694888446080850731476251230532268452390037854522966425790512401204161935688346549272049900649721692288362561626632899948741320963221350479640918396648540194246036082255560360392393705545782280292412568371631520373181189974435247285379934179281706399128346139045689923000030849390676102685722040301884470472813984571912753344776322726979037405882563441377363997725303837174509847416777993160095971286906772191912379051807909943212009535609083585360170523294412494584478306319739636250271928252271476649989025116542474980498848987699026427970487310662092758831677815595525443563708853062887205964781096062632048147240606062531330296172189652034740318902790486111244242063331798195777984532865928866183205990103975120268125293258735888607135158460144335550938538124714814907063393991350004476309195735946013636706312744324610368145393122664510241770716270728775575797223433139157591553985728242671842561884773247847424550930236603369668100284761383009208822506497761374408662813328684196867745905287884937521453530011121539173462945764882293062027078590548458744927156982032439199211116254114758951115521971734526930603538937172986151933484190212162794903367016054199246028156071790559393897623784618174676282962340522258171431618928537774058224757387116035526703039412235022217160293993033109620006849027132493595198059933456006325009602600722587013875562528829369994330174472395289919652176393084928733702359008925968415579416759918997227578183168488563602608667172716077156663247384867450177256753812599005298488053226299497502470934129899739631268274136489124107674114164700854399932405762258801833377196080036425184128068712450454585133107669448461692697103553421415492414419651855970396129091639933733279921462531843595741637205224429986374123423496663758871997570693008064795322685424710593542945661080574773934907523752709903154150715072397589608299539009664816378102332442948178552381424086798766473845112501381777132885624915370897860223008563392218184871345170754362449288216366836143755293868926254634833573785867734684054661475579635182964569318627308800512586492872960321493659450179331883252238156370600014298393220320698614640898793415815555592421650548188264050987766711094181897864670057013282680896094246838915756411756325155109570245200823511191919359900171901513821170599392024906170130933381933088865716437546147295796680214930928210232607334206659923535089094103194139712438897433119924408877461320874983969640781795087999211727432405760222730474988175656714441336990450944664469549701527346733039037425083477270577183729751320312619536247142194339098182853870580245716472717949863793093117000743672102092192045813949954672043062978966834033337389628629621544317678916829028236594080296410679644414903903872798443138782311729443623213580845825115206417925380173832942699866932878749702339508626337221333083903184181423304434798286831091615875093247111522159296568217218994682337417543550582098957725530460326241183079354552871954690623923266680409945904855112393188365909811774884800213493564594613789348377529306803448017427341697306375348209487021189719311395320013107382090453227783110741899901506196039256748790967643400606544891468622565841768626454090218189716231741867151402264407007389760654487199236578709468520141988670809586640833792498835777437514136680465912239293250318132859904258364088695225797736551174598551666385779470957941163065793037746000346288112207544911864532330779005722807518343786779751098733892858598149815829315023228093534700701534603267012570503955066410381649138442914757469965014421114000754590596698595825711192394868682100686491129995952491936072309684064116483353693439818811732999602817186079166711776627105316748530711070132229056455484299151250390723252187088623386013584035986205344039312175810735960671017420760238240381172126860262438711762604578211096515074202167627147210446629544608335830527184328990472203151111312427589401936939250500034087838019457091275108597896834643671825469987592951096400724778227188011420642752913998142798744601008932330089094188166248968142045902427444050428980717974292343888711780643361189026342163202805533968127101975667589634724608865226444734268312498139921549761536596204176137106713659765109096209976944186348005084501841009485317134180396756185869607815746850321699322222503926031238262776467753829673440940299793256464665821676461140403040485230100839608768888723526739934343907904311932926886271481672920441807982246769686342712539776305197957960418950187665008318489632554797574442135625264789492729014940117116472109907257303718632756857012578363085238465731146905728866048166535230889699794017260641310567748656769857516988077498596776016730796516032648369843444426206846696379258014732924610463923127182939617218152482658252332902287486351297752535527676184198152342932197687998493976151865333490288008254555885685807010613347181588236383319651163431645803797730227825338027001893125835300691649429208005782144054651306971280908254066388378652574504591088269091345453879024561795011415616324031779495458994817626008007671712931160526383283396210676410443188527211773134352858175803282279629199221899406999849536029324274866968241227415862574974357053260108671700515154092885443940178173488427707164617730805453669240732187221275145097833845603428265412543439289436215100869426151259724571801275452598104621755600794806378749442429750285632848483142362807130928998512529987580454494926796630196656548786542465977039266427052863661204302549865459861194440703347105133846000634166457711172889888921831492002191017565560373408779967249050584963883372217418768549198509611285950859568876811273334074097672165794429460116296852360998090831181722228350812534980649420280637374920467853956390824593449441865168954334705450724769392142992053366364015107659160420444140841658190015911148903341798912115383078475798562705157184879108413546217836424382022085264077085077308588074221684054281976187110279336037749621105196500714423355489849598367447265652931623207527503337797029337135972784289075945474947301660358708613649621996660581588807006547806985512855843595291910464642398741703341262707511279473295689160856332766735576364847425756337410021327728979915878650916685053390821941125372814937183811592883704504870991611554395606324228615794232597585089987629641608699978230579717530875526624365004954848425222191761676435499151193272594454645436249049577589585912769987203312062226570226282794572776468954808688502058449456977994865303531422522687702435352148474473704496428119869143667937063054615371463988438465114101926840867060591363010104031415544010182874949705449790681253003260270288616070650189262649314053093584455882275358312326365936968973171079561060430891163604628298295530600265534487003450063364618276415235433526801076508082488862478806116529013407675116852012150124432107009759794591395623223941454997599116267112132969197403775387986192682617456668757579804497445727907632487605774412507490984711544832797107883713381712386780346113637446949119221926679711338704610646115617334594612258995552295931811279553153532032919158940932545184156478116198581271689007592728540891131747581355884508798810062747356159965577578338133657578948085569785169962928789500623063306940291867325295312819035322298921550868244527085481449323324591781849261956638839137477542490759211339567463579328526109282276820232987905299297945904731078660193548626749926799296792398116542914516432398719016959386063777829463480715201748054949291963533336965642862803554606658651167589386940074657270933637616385218498346012441981017706427996549926701514665722117685168583508846641953571960509915573917664564991572231844603363230718682076085410365660641341919215968094611796380349646083564157714769219921309394136569518304166206084133033010999356733146231617614460621979749377293689505534326255234802235217811411046994847548375243716548126277555877513027832083890537409979395107511470301206944635718310043217562933536039889429954870861763354199252456033623275974610539398321693509509600271500214403055472139449659044847595825910096872034603920465032105118140216483885503578657804422213627189057641929056147013415705736576881998299883626004901657603162521712380239068841982850746311126376341561191020050742965981952258432936438356668026000690751962152005837236905201038971250454740774434142626469563087432307261178084352936064273136620173573713163752873646654491353392162487040239022524635726750097504333645253257270267831939437815848312918314890975336747860030714011856374135449347184614482663340840496182376107154893386010978276863660289468521998818833848186624934072476677512523003194660982677870657662467469846181762117065039178411171611813219166734759014089908057591408186045333752282278676768330747732932822460901349038257898305086750858156890238174808811756118532559764962213351827901338493920340432186342842912851985550326028729871227155186907217720471432258121084113313080085754260652653074599815443963276562738787726519638820358039770561249651529216106973161249571526549722319036654631349674232008328163235899527914367412076120048831961923021404680405453308699942712781143471669350344988351645002568023073936867451811987216382040543114410966165126684500247694570727416442427100273607066543508993192155918556465725156780278936895464493362865564734946598669610056679335357396879470705511566685939046174678290644235319575710937555804897223585602267346906060143550962693765098496362793364536931714946684411274145974347839262159825869155238219893304288581210988299733718982161904901785686608375600619888778520080662551687837640848946604561505555360380050691827693450679535975867892502522160284762996559335808808729729762539664631328497922062723201920349908492291698609804223936695128674958178634240886424210279164398226793473050889696000858402683865785413060194830151172283041891513401319222045273010835318088669082479141224236907070920153044586074598914722288572996677110898829880766634996306852284676621666166853668718475285636359196254461465705876956179249209542156576453039457881953734181382402918087503954898324212708169770382142436697418565601332771595743897697564816018169201218447330245456903455020393893539626575801366845857437791807812001678701830540768493305372189834615189097772233797666037530012864080284352585737331098126148320300283978067928611466432787894218089167523806122545293055810105646143959381329131984010332160925200330951411384907299816446567523581975266655272053659699037921396535663534288645385171284752882705812489499835370835056270825488579800566081852045007772141379809738105736565904893842930229902415446128782998186952913395092754284528634969178937629042023140214866459500010206731177572482986779602218234822601056463032166519338382057193624527155512228183804333973570359049514730815911156806685450649830888569363681494117600149496135134401534422711923254449889420246576348848882102587295982555290291554031927080965298755423065495110284456878531701668029459185299539921924670319672974339677562857406489639258976982644725125482530499055913795585305713249471475199490762890978400806742735659757613139218234802527822290283541395341786813909403626271791756230095674390811572636091197537835791092435132486605572204956081397830825125612540711725401674860033265339769354421655938765447897741134155537892554091390351553481589096277243891063877720719729347797807919015825166406982546505033053408270329043159559468222784105086666390016738752985664840971709580853338776800408361569021236942447461457572673682572967650326995736195805447835900474973469696150953363676829845585851309852130549392799833162615286650283797728789951841075901322679822703842970093273242390405294077185402944036285108907154586063744102768180821197766039916293454802767285205415694037716545178950542595399442796581468508124469691084326400149051456097547051454474128955564541528453243512032398701945880165990578868110208738039075859404853107563308028740814450686896096675100183234525065700156107721712505482304657025848140136674077800610390392716844241119631691576759157301257022013479554870471932478579878370637239083873821449921784670211491151922106314516843706919838508825866376417955940821681732209905479368690091509157867437908846970928484158592147907505669619025502086286257634655703022247002588864982599412595088649945239856503102310012336555898292029763605757247773204088768650963787404906067282162763827467829752049356728429062664235369038810372771841937444197836517941758844440966898004642739293513713771346720621177970836472339366523333538463821880880173288484682175468599649926234670204673791920228028723613944375278293672387436705697785513257318679346679182289503138332291389287443073421728607848223196535795955927585431563108902088275291872998078404796860494355043733617280632635218225933092849384593995388055468991301908882022978207004504291258566079762332631911482700954611178499274144313222784501941200270987444578372200558553847283989797056664999562693137013547202343080881962803874094043709846365061875755586189191694615705763830866033844350352334604536635536014678606046226121165869253143233074184798575331797094513787838667586438534635209726345502262116429341830034731745901565461810354392015223735476705957041720755569086794081712743998145930138055534254091984885624931681741428300782550069532783748619407965621684903236614244785265628981336911337589909838355649300508468757882537809636697835920617279621667754423943833580309477355653733933457416422346899509402318763118288009814231993402538150342825552153571265939415209594780327687596567265915769359484523132911970278243483410211262055932194112055076938031515873405560926698556700521931454898805204019439198763838684517255180043116255548495873310709220500072165008947737287093048320494873777135137392823014463356034132810006515342144942945973766909887271599743897044142384362248859058072772499688327130601101551025861828091807575962820280307429497174233799774601411997450948060621786041321636700585135617684279321437605437116936531085592316846062426435225762644934942260810266064992240383543331252132463265776090541851412173221524179089235898933030162868158980251498348028365149467540727919418744634342581702563824398489346725311678497184792505587296897667275413757179073483825063523598577989174410686815466971144737742139341699052682139448329212494483717991524572291413705938482778607317258722135174824510379262784834170689748840520482784634447913349946889019661768556556126161114184651382566580007092203028546476161271899720699806632604517933274812702872145320258016451199549786329556913262580403023159284767644830178101564731377477914424041886339312863306969274078868299557140828790729512134558781427988455028908192749811562484119955182836072997243242433782497414057971703571453344696968306244898960553268854192747448436048574438982877102811788917488333317918567606347640197543121283004408354528370800789912501998657250554362774886909500207187664603596159131346818638335080628874641585262127705616690533494096619473265041029255603023996541201881325591892346104080148633279521312342236601871344468553903258572933334339469102308143676720264469717141144456383715686380190296275896830282626853201794379442339417474864057101549099874248190621728187391238694529703992478343816527229852233305083609133368249493418820674928081590654770047879242165503435612095459129153368388602128502659338429137969719456500472696405406232075395372949973072026953694048594686431634896839262302919502859385757315301608402257337660335393424733494225060822465775241122561443896412273248303167179608514933678506953727075435101421679648208746953996096208560932271192905064566218988952938398380797744308318498552821527122500064917377733876628384059686632417803186196235287049040636344852232494829638551145248814627137858891014104997233987609432942702504738760651198540576976617997388414839114535743460185257993905645205018142843728634031256917743562203208540616231993049996860893646896549803371986682777427842008964337568903362647921092095218873020443364717167689696654991495224943299251524651766757248228519298422017399018467870282624118351792562407894905453967671367511895019506544854733519453838710923100801370181224990913688898216984813608611221100837118364304769004789579835671201264897367185780119061949139985295944497857318023464479797867608527149921137394700916739174380016110363319839766225833374859491805128802894230045759587741095371786454678524106447158935420041213478643391651989366314064697892443629703620931272095823765251934354637011759080961921036934073459398658200500163065555363262043557000960082724210272565594506777037005318655939695272371817017060269595764824119338656180984426466034270992072250277304920968602881542251467996272086358169454176720074031379522122417824923554185849489775319481484768982947138440194932511525154676855857551813735751194899553805279621419544051552844005110806456048609336439528982875243053907039773963015118935704277338238247330822877512054085164092384962757813141776793862530924810927239583416243713543137391066890346839311686216239762644904169480032667390627730913958984608243366160243908718738052993639301098198634802485107766830393358310445288740689394521943173887326415402104851120734781055039063338786682267294149904018845587870234537358607874450708952637689991506224027761223512420000590130801490391395027049359480774109565225523634338242807381600417772332298553436393235231013679429584680770861000672041921762468425688999280102577972570151427830801895179865099389139991042736787596991745388657184439357977469666022474029579056712807254250476428914300570566472661255061244025591240713346760145418203775012538527446854106173272002966469532152247134652101074927905106567849628317543636263372139649182853655198100027680306495683512726998525250039605756372974761855362021390046508564610810146014800951091519357909160703965501565345996827338123728013920314755935814201176718938486062503489815660634331148247507432099258426902198655796705355563416375127743339397737208504556327648221678370374875450691690760057079242061589147317954805987364539353071513635236540434098868692547571628742951835375156761995135844045396595045340697012261395678284072251898826085372464322529708954908232410302642727874535756420122438306657431447156554528259468111508993046327382923026022479157430361337138702364332969765003089348666395495359404596881429998551870972291973413559452161730365418429121658636436630993719183666873396625347933228885837792523505958406311591261310220526220265731113275527405770884341175126608129375819074408786179440166737661039033427976089856605879084867513527958999607297961041236554234576600287196140359213545799142733337390260807191609822475657512842885520524232398182627210425515183356626271349516849376887423442595178347917205522880385844788313051430299149805443050905261812797597433821999947175316708933916128845100511818893103735215697808891693131659492490644892045106868800924775308413375231919033239350740953971510613243949611132121045416271181252567502702009156424677562751173790600952288879411038709269719261413011984288495153192379545424869224886454433458901287712876235127560405364688683570924770554053119870240511619024275320080097072146607407852299289807044248468686986452194693606891442830321385739006434818418191434424534969513323903238979786966603764724251818393028963490567509831490863564453816317220378359595530314297039931907708370062220719566025984438314722491837717404681650685403569721970801743957483086935379587663763298782611816177266259708211730341685088996323469212406602430143226877630139494264410334832095380538438780043714572615107324774917993426657156776083039778521240517294745067130341545608238202429958483413038969485490647498264426389370903483929258792041326061964317355320476002672854344671420864839087227825842189696555300647027933116693003245710260652680033142507473373058337546429269883243901491882661442788195833938860922639158604085947604205826263325184137769918927281595529885886479981611260191199536383023851793462356013142088411716794379793934624189119441868952088721001460348438205354965755403839232768730736926858274303499068816258888903189919798457144704169962534639311739530475398577900309517586447835927589446950495293867012191990460748185027416170670715484071418211226132687599946600565739639396094776181720817830324002994954668235873297571181644918017380489559382397800934191837865937962475034540217554118369015206556191989047157437406351537691339868692526158766853679952906700068039613641253355171574956034401701881416730384273989232206572414141345939864988401924392065256356961911266866240144359872625599243422327693597971490138411629060602268591026305169737000569391777892435409220876386362845034590802413033249542121532671162807657315004371844715092596519521089659771370299201615454323068341999652299200354913548813708979819807474077972690953359991204129846214867998088045400006747899277528030108118284964219032387739141335779413219158026946273293625238498342107573966342641927623068478034652165793888674463744533305942376498903044706918702250842719026608829279872707803278178432300056292191730063329681334786289539041670857030988135038486556210966909242875841443652792917861871932910147616533428189810406044268080529288795570850774835951829994153263976057198357063181112363935059928636004997874015142134147511501889789421489937922100683840821695369756810461290562040409008740209081817726935943450287761671080701577067451097241346595819157381649751723592594209298402329212610481962629210864000589846166939100215154291603931977828951720799240286652612415012521016287939433091217293254949060370624886130572959935309658438937829911948522438141043874419800621528347116300835480963472843945549268452330048745551185756642168316940838811797289041113336524558993071138069141351167931369434962367860618456315243636139053329944319986808934675820740345669647202383965725766665444190981068273940724887051933260681485193848712927515532215639163654184894689228303157126025922165541432692112668831389474885526179634583190451231950867787157024947853996271590563876716931620227986471409102499499047262596843641303709183738370057096524067444384487502114977018910759049272084027521598356450004804693091825623770962755014341569879465552168248033684991862070146218696359356450365191082771427280466752438664633657465522221626790836601272872460417370592881836055211309499185765874580668067306736747041339645520385783540880415900343792180511173717411418428850375291226034196690550400215657470040499109109285889949976108928832914210527895975920213223285076125206196174420859863609232623027240116896050512247473720787531389740099372351761303759534513754354149876104544696956800435591057338230314239330630215262593691595696364808211593928595585155736016485356594701057145278219982292271793078918208115908625276293233678091582899397644539561194036020057151936727598655373390155476806928222827978832417720751182186800364427426722500302397222303053162438874429674479200462859751933787390688850489993517172292559557752625950349609839778622919047075827399105802022998968242611442829745815080132124752725810201950057717744290168906247539423343065060720036593651053818517068104053346116021097428241391880044550977325148030894886814192927310036053558187964308182685675358980859659568623170040798476248106827626863281672982513646928870007819917682686529729189358764447644270726424354010647320038309851562289478887797532277123932422800941947499034241828490598902947682598647155829762671595736695431998801260333882401496076204170586115299060669626842052114584430198836362778688064598123116893880264352352544515483740761643281605112000106245159675819406138202106340682898552519254442945749573777456279318712514869604606342840808621021786920054160378552624648772076219463706838242196029807333080929865956973943031586254070772245743719044785865658016668883390325203305261034671166305420658930156670331824514733575936164589729024813461563326888013278541502420145939082323016997468957886573474509873388535985376448252904488766731240289437253659873600912295787321698005211308746380053982997779512838339819718933768484554449732130403689612292875965051797966291090340724608810317418757026325785848766371784335777996702887759363113162841716822879002287147802176641071470033776399709603403442882610719834207427089250691945520774504150567997912641576331460968140792314457358730154382859271005326088660728381688289309314978114594484884897879971579987697180008609818877916303717323715556582730866171913338471989668153677110954409614394796057173791402671084208767561797713413120833984149621909897757511381135513635804052039552292597356540685414450280894833902663466365141935699565656505203843611851173885130951601987192200906572061670389779368214131657620769639257453868069848744224185466791388731703091628657983428549307068165200642960722804954561217658060829512186564171975598601395549663886849208165065183008647786753973598775412582400147167359651916928969411114885654160022010939875901813819733314320438997100182568742191563706978346725778375883691268853375234857985034477444042064895081136385806501231642547848107382768859144564059994224554246293465736779080072284987732078456044211323198632626944450694052372285030063916972072557611698050442321776217581415095199715045765014825356325804546115354706304437942172446191397705606899277499675637392178677538705160894053985021440312602338364353745501815087033239176950921911799438251264338841276575100202098662295715126877068872869809105883769005220420644292070548774730738397233060199751690456920429624765729449585349412281875289454625783132360296235477984682574490887433870821842264930536805935092184121699832620387832193438259286507532530574755380448972373790643903574021187905780712642097833323782195833346160598875225427705085690420054848538149967473533775389794285825616566466980333272719008093961333970575583741112666274487749400747781363111260144977228346808096284280724313975781025959794197650278534499071999068847309121326787890547346432112809977814683400123548972378064106323320029540293179983968519394999065099427305724407385833675540337869475022626249768235775866988533572559983812491690525449295209250602389124253028403043961666173738205089323174606319993047882337676875713908377751450479426093911871145644099257832611751191372565154150358807380664621152217650955242979344259280274162297116669617313971074063792191030958055178832610619299970906791334099435027506677621771650789109458380426012396190124480882468828978726508581582931324064556344233189613765950162921718599003686898751202311069030038698456544694370118544120810634082740930894318886175346249961238330735472723278265156279456863033302223618246396787907867381354449095778742638043052064019041070660441739781990673824596890573559433896107508684948280721771359147991643690202730251160236689748313997423436925211272868486880420250508276286334718212936337216472253639755304910484653025969253604544469287578041469813894866127807317193174473133277618610668371002290763190620890561449404959771468571522483630269616787527220081248414603843514184736636518516138808171071996902820905979124241494004681714261423945946435307668438848752633205722956830810648562319258418241297121381043997114931998680850259864305275573978277000493925009053068672125779878084197513321650809293581830360871273428377357653407290296581344333011333134518920298846209224138737695650229986684607800721618852936534295073637881706518547077771759843100550590796185968878233803210089763373455683095464092820501820685876126119028070846263917519806077141763602094116542971473971626527544688505042600365121226604812250311880554823662291512224221734036031148710677473100325109716234641860722872125917884855447711377593783285584000259884289281529875924746652359229232951733589940377386013226555496310996545802802507095260118011427350624701852146360291844001777774890147937094875690270749303664207815737210626570945161233919387896788378447913375237971374803057746040026893722449245657524543720957024550918122501848978427170794840988670222990396034456747222771990757607208100343824741009765250505552009020090879157183274262387164636923164604736061768287569469288269451437707579611148288488187867630718983585955401378258914975184217557060425738351578049216292789779897354039501973354454620847651952388504103247179925885424185044295230302642553609204141493115118496089590402888363618253286262907498672022524300437656140219041434504680835983287225905626931111989560135874832574253745583470915732615341708962223981167121361407854576948423620150509193881143100613654321854314694104836560992250366654466679752019144914781605554132403561030251437695932659133733136679165915731679860885900132648216398853145866749975071447119293681868280638753842966218151385820459553637509302504219131919737245652745422886909283710050585555399120179524309987556510108747741817398920518312196271000625379672909880372435112021976595433632257413551603127316537511122792572535698182219936549820971861185105444512878701950886198512905185547312433932823787439934543532902225531396715929507046704164348597819975205728003159885477226775611212341044089097679331816711503937043241220406040516887788070200484286889608937279286821304654222732995549890156496188324085099483280265433893921803479253295757931406776615891532281040833211404145606277037819611716168644045063257807584123183918808220518796191923793362161938316465007255741884262545825481733541700860926081012026084592263404818374828151484283749807849111361234414418333127272355592920163922104780926646074437842330526071886057958274829206144112440880295729367082259989691964419230558852810107906586884688968257116683050283966622047075245417790611838469640467215062467853622364904107799822228684568917795387746629013370167205453273770817301616442719077134599751688425486950637303120422735607712465071411811104527811264301412948132804792453351647703690147411936515809989765928477867000457990365340992529925314477111874504362933325781474235676529171596662607779454260791093179083206770009485842077132602561196059119154469049350825082434690923517558770934645644483723590933729034576541719776084959146420489452341277859764666307283587980130684748156075453088546954241867573192124098562340438777325924357293656519960015444387424809627903076160293322543405230020387010427061679500421584206408045764580630358838487708460315385938027865184817789053035794370680663187055695661475490219177725221483545333905802238696746175157813074436914331866251179859159504060008031215993528427852923524778771064120560755935416894393230879397994487245974275049180136524620606043095439183196097764594612293781558033428923157067994579792362729770324051328569306639566626941905019392455309146221915309136038473152734197047119818585529575396456350735047436135601178857536791399381458812649176143437866287395953104766398071806192674376838738127538586719067662398140317086213662672503195521446284221194444037835252431537664884735344306746729133782795609032787506092433153864533771099365090736245592726489231415135671506054639749631375138205416842493536131050045474510905236342876876870739161771560918547493729803731224776668317388450254407246578018369302559158270082438326910209282146628877141696759240539765333983141353210557950599725648017189622972208581663377830029709986162805111408001792082442892430643360413423548480160476547076855093369987342556564700592466418195558848732129089335415598678959774726010423396867605303539861191683640059955288050967149647848743554867589875543531797651114231342589192451025267197697737882712676444415970749163476426784393723833860106454800387057044468265468943967914023964515928466981909154951817299879331731796733213911829508674816005470326301240083655001815946328956837578604934457030613631585239012626508704869900464047226702471194282699530902577564516103417140906124844407883206018241451680525730778810086408636753476241730769807234535709555483855331205082134186744617355576460520472635214543051693397631113093465316833472742292306332329487314580035147867461709082062948688149758276329458959057795577522582832566577111129109653264717930163299366257196881570033727490500818831836438459908712160680912326125823174830298229518663287595554516088688063495961321638719676884543074143710252145749904591243169707806168767160896554580533975727242722470921151689751986032670089251389594067858457240236188291360498785216087521214095967662189038777769263471954472333541313975978190125664392138111968349837620779191659773897070706095220963378540788363965590421147535993797535761323286291107403591244642245893051633106126511623238908862273805584226082050773467615785010666016019835046204267403912498629127274336594582359392504541521745931885073343838495078751037428745384143538177446966098610675881227312432060848551891286797341989012033200486991573700013554849564677200733364196962301910580322357969456446912635497650240873609973987635478767853848662645677678773194327818718365196476185434749942737453873025912967194780576593801144503963680900237979588738475081271885074610434473417945660388322613609634205483505541382383376352403571006216481110841806973823808767284601824317994714676013663315251530535963226794938495440545746685159228817261942551360616775114869326741781268269221373341437058788411518217029863343596290141403239291957344934540313260338368364021508228599607954604361218206370607175047652098615507492428166124549412647332084117327237978178247147088075097701354352955599508892938451324361266253787226420978454121127623529268954516610229523664760163359243607437758007699936072621163138745495162424955511035771304509245286407037686449586685098342025929706026979648272320092043890562058232406249880556329675518450902945719657016073159242861467617960457611974428167635113313958893626711461623394793162521795062485843418391071166253578598916497498925392686424857347898188358256914818258053386126242452833314073892713290111873140251408461283593760717124963268471988253694713148572115004909453941182415891293377114129104206741027592568219783913330524243462463045532867277038442870985445522013157550230151775515186522009903768069947250850079845413113014089086466331419002534751413944377690010619464061348507134837373915215691152965389303333241412526991483521808578690956101577493150523481590221417422039198271199184889650996482637081287819348405086732918724532293080970678411127278567828485128719580788361868900747326954486510487668680173362251249616329064520948032126785107055201103678521695075498757913662278262049077680938698063124031295365940539216417880403596076402422215630071567464545544401009812013535391410421144126269008398038669936952992347434403197523876605199011399180894060833580229038849961712984002208111405134617102445028488877027375875329537161708514801857434827230220162718607478089287205975634618518982519059988382099374972578294369700040449832582420252485141373566399097823483683578259798216701789427121677624944367987114168714210190044172771793638048983391325677116167405960728400866456919133282768650471158333045002211433488182192228085804481124228395832752056329127607610069712847273867189482538237608533044731080502960728591491168820335115033459020019896807964433299598276103253871724565713599585083894560734478461368964980658112483002236227830948256829813991498956657485537928778047000968528136618574417089245046847009241808553852466812247956331685817571144487333637568226579767581224479040698591474331228073384725453045498415840651711191122553405820304039724204948224208328519563256163913556055115364130003271568500047607497407556578301187646423711997056475323910489416350605509321366576410351086281259606315416507805457489793258762021341173937045520772883020774596246507477696253720021885438057982012409868068082193121219431834581940867447865722470951351152863894954975005189518703577462322234371951895392318094521601871698063048128129163833526710709805203696838056615462636697589136772419904430823679587290822738899160377166520010878857398126586587058767083302699062646346169653555341687672152038755862973087712803904483467661937294422887910569594182837083684274562480598460050826988465688959588483052732523781788844468828029014026148416193132455734139448827430174970502356408077871595561795073949738846165774013190414773954218535084731386272768059009290552065473894492607241580258926426038083357491782077185646010754360054306594579987935902299727432214355134791031662719232486749300607437344453993971735850869558973069672147874553100759874956663716019124855417528160585025656792549438796453522118700577372077703672677006760052049329827979973352426235230108169814286250949754838274306738230652955294087287878189668910327564388388594878169648708836300343997022574583791087779240003051346238318582967911864644967812892491445441618910622352468276245781383495385827109917965585930336244823471932756210260394885673315186573812712102371625855946604739623304352476549989565664946784445170424813000107077892912878014966653306515442998829681532874253074041600734985492917551008012287182516944381711189307601932040486435020337178081609810003133716641796483078467368492969850770488873267769229072747523276695805739518031893566375835939755203060923276996512740583619133136676023246433964318137562640507401741428749815997294386485859050525282958562286789929482871717692053565363566461539219956220829868097011021904208278989863339666975440272750049875037016667641664250163748843247685855057484637694559485154238987239536284385416977478370083786214529421831284730707546585634925386077988005035182887356733821125949907825888787576798766922458369964072477991996632246718255013018515034003472401680755011270806049466274246515496057789919397174905720162356185521922162083886373085167333043229656952938268149823735229446133960769505140699269242169466367361922894598179384457720917921523781207836194518499835046196425484913532665970624680576208565329658160541923783441636409619669422195528592951878766480646544111362200404705658558926712994465083177542825078558070107523497980082962867117813773807252199602556125285639406712402849180559065039259060099586981183156089075149623869821912495337991444506449874122161168905346938000409006890986415754277297846130889357019231787088366304213157880901684716465605231974819669204830337925785926901022768562769916666928548104863672242531787940421652934541181132894947029323534140925404085926442313426401370411794647643020896414103092326734766495964460131138411448987951162305406497706466060077053248320194030320446043643273147960024619456104023715037337422532234285524629599707075176528916427538003230822166656182513790887233971112334602726317459466837921830339761806615359390560705433242270189647330037943294333552460563249373063602044646552701831724674484901410615774192747053682745340357170993554780389994501834901946444376831398319255489779889478573620274053526245210442325112774697626552509229240902698895862975203248493796227934403750245135262956147457335198900997643763737859629299131517112603724985620232012325444903287112318600536141944321085871255769474415658209520465417261967186369601600501533271147701216636039606385188039310293571612719655341174000635526030045176061479488559390207310826297114551748581054819064439570806708502129994979447275765047961558357267826095414346107053702947908172405237808100659419087776233972170335442744085508207335795766560877388346220432747756156866256769251133071324569673145016766787794604189948219749171839024761566069768141670606341914302135296231483285833804077080924040591159912597642655216484634073207117451758602265974324083856103040418128667307229989702803223853988126035314390264220832243517300895721962252130670541231084481565019163899473002249846423219388196444609435861850305818772631468218933197339906845763777426988922534768139845258675912539570829295259167825909173836028612107722842486441579348174093716392674121663897237243778680537634054617366113947512743067033050116860618279232679098832103569971783889588845322823809864918035026896141783485490438838705261600734829303206656467119876227785637288648860077205629249397631416576869549444956635777077895482561878302433758185159151066739700549458736349662080131186977934996151283488277511218644478081199731097782960640787269880496314927200570403038068764499180236015228839466993692600608415261746482942041932465945032561999500061723788774930192376635461833743777340912568742793936438888695422158843710903814477888920642560002414225062719925939175013010606161269071157384983729222983354250884812129705374167731891679907081972081302278220723749217775892971549830791024319109969182620991291335147237095924960356245336702533220622555915404662022759288742066146331634109184383292283881476901771343850156732208002679221146076332631486880553024865687008810434409921914100775952356327568534208431255130148243402465430699187574666043420789004414834994245010813933104692459396390390809215276059857841486391771339529411517562954389161102269303001825303445370541994347138385862887492076833454822958331173922766630035636827844263116648375959630074662546982303166982486052648905183480009813623435329123283263603316197154001022145992868669296384852784006660405860145467595964563129808722568030301949547069341099823477932668170191843111521471573235575125554792143022447069446975649652721498904306612961420183200418046171651941210031386818915395326376899171142736411083224664419353669796395468921221370393779104024474474567999818436795335529627869505036034800237062242255135394949223097692934274495596787433959086750137128224693326712843025892824619743135712594449325256711523229114682501048410819299191145160839035452413252407604364016127820032725015279624575359731181809231179693834226820958016097151458387771325465585721481738352606436502164705068653809687622183588422948006670804934853025796789137197709263052578934230990204992004728366808102057244805200754701222113890844075813170276014645042493236460444273298632784354156122031464508726472635255361466147029299901344576669704943518026384705767639455551462102250782989000719200384415287490538427655632215557634571816257162014504587878969700211155115173509203574115836699209294067474212525305513198698020566244520290153872156295576915596320431051496413213829654414477317666766484359154806978898966782041386796380254894430974125210979783806099572302045041572194532896913088875906403368900608581255050657320886690240815738775179971027929518712284924596822672375271521831398597263109878748147145153258237533071442460066629203869619858242467829398852635009729262120700690036239213099415414290094680059185473236719107821776747872110588710160953752595383547259363584669667125461308526798485531201980154392539485996056495228105947137901881689118901451293579023851132577612233917496340045943771079234666161174375491926891875733658703521168186475737866421547211832998887020041507535318228812707460302391392600355342983379004734481259918978890253154250174763559682247378171737421603800247635079363358799329841573682072895127568283842725355996992835632621517655557275105236025994742708874123198002291795114717608858734494503992896322120173624648768061760009455781875463266554618401939402021382314062206434163546363539519148985778316391320029836590554944095962030442528468389818719966214897008757661276528407857304237973039528444025572166296183690925878448187973096630491520216873393130240218731813302050890634221942815233141674333975746377730801174514426505173341668978404059599352355317272826490787101214149310496917541187331679899913842153736334428978333269656617733949688705967599060689264575293238755327961423601820681352800246246153270709387654442044355823985140977709199534598951805796378465474586916573804964016393358501559233264842609002947290163632469027359374331405078672918218444568487923090011733877275549196243949680705297444284983392230784023488497246070540896828843814718498651731173341591110906013736669665206606072088172486022983461046440150464023811699458839551720087381490851652781873775385178155913700461523898031481814913824689489762872737138708993106685602569459052488940632847462315634149709650296466685882478077230237623381915473795031900868963571418237836090479190012900906311510659741111894472199328383542450136255050400400126465948864305959319515683800671029100607670911676381975317648234706043104891151255330305069625535746429472993886679920270161544109685763410155073573420815324746375312075559015676380900863639003688477752688348704164966604259247853362469369863352723451771673385745417923724150349266417340220658835151111827109258914493081851276795704861809564985260938807383974173940681148356118991959985219703095096900219647987932004003184252672160950530568980405851937282016417352062021281492046851222422095831611760810118034285821804993647958281389138277707407113319072773119073869817169713155705177016034524860299703197299231860978358001804482446755799083250410303449440692150563902103233365370947475405581191654621206786013220594408070185124623979918637518224083887857601105013848452202604374589372321260801021420799622824114716942667674571690782311500241687445478362242547404151569588434192788413740620204716324364708904669299629367253824360053591347802206103381631236732556553526663457405020562234486442946015285474398852772321305661902054056847899187838827611228793477427512516681357619390369689781329011995561961426908217863523760275548400002966642684961289163894293225358354368487858536601925278700877754927654351898006175492906072041045860843673009103624369762820757695967478212544448513696760326366929346046974297362512674667064001149260241080670614576820380782604336119777426092883184294166144372690026555618320868461289853038018983737795547512341997946514026122888988992253038574622721376550037132727810226806059148760225123484198888402487126524768167505877630464786822021870113605723882728713714268035362496218418019849091456471482364541318982652073751368636740172719216450701808860544713228848438291225127666062895164417830116014799551570962951479193309993846739271879150225228524868075796016678500941935211397431043066583095397441740923237313326741156794459884435385617989778880936735969333135786461883841658476303885652874357379821747616366305676392042917667969143331105097467736894015767048449605377646288270066177636147042352955158398853319844369992236890497106658186685504463689093274185297940763153172674228975951608343721110133280326376668633127505294933642494141955091049009862310777930233560842139518617444283390085286587534449922390374721925403011820125161265583050962628908028920613074825308016953040557584210961049647847251497791674598230352626916691202351654884616643855073280684964590229097500957832942832378860490100131489204028419794363755380202576953333204937086478888290889675134631151432057963925471216007638334008425054310999988867278837065096892771680213047868323952741642178857078636176880828746052464838270620579902273193891071190841875969163038909233070014068501883549112936782628272857536511303087432756414704026299142730341366083739190117352312973217537965980670174227385777750492863747981854922758280236916382185897439889480248754249899514226061267116470276878185473405853218438195464937396217780849990776219207120651018766403167111786708827387700003064673640338371156835688180694982283873710198446421861056470459622844256822955265616584701524271523724546194221427476862300095964203668601670735624624269451334568187106006108570352911137270009088519760999878306399952399854163966317649502938047498420350860890716545119402628182654741610587424980562269546895959540685625074518592425762352837967490913615702683363604100604206474760988405275846429769037692885208732142182056908462017156198361378921279315728900163129868834934851320135312168484434328590111881507599110690428749735121304474879390952129954113088118294253155453586052511891209802966706943576985627234542179205819445735577684746842822821645566565485383133782529589149027834320641814394877456883925826135506590034166038918888708735903628161638775340550486104670455998780516885371038622803027974969445590368666620048685792721975459643601017361900910284493943172519482328442976456115161450520626521128017835478044672259825558838889226341370304417181658821965324822521424701580606386509781609513345633029197238617940569888941067443651531300496476781935534272926755472693009419787032825938178046632792820656562774796946181234924805105995301325536578543263096397707187533676447074706337741262629956449314904719700615612396969839013997625518955075269524025002510428988628447977527126314937499601836538869990010042467030164217190045011392447304844755559076688253271621057731757006565783818472413766540404821792696351674239258610876579431797991421317062242330209774782787133193350163380968973144532142605509180634657253234668771261849919455943002297318108260971543821131228119994432896405046182134731066581463172481063894451726441835530756362527068476154354705397341482032895868987174104189820498607832689989642957888467658979273440979729204662783684791094336072249440600638581070131704962323076105397592060346061841218023985350952975575545810561800234428238570292221815870596234620874587171905641647897191224598914319966335896046320999605237396401161457294194335238726898863181390989720472115183708007939642353416325473587089484421185193480130649202766986133787149655313840700682578658284607295795741041207723198030642741008495765581410064924453612017863904090960822414495060400575563422392949148931052316971892020438784171392245812532829656811699739244286489023697063949072571524109767061091430447511694975783477325578517716449116508418837340696419104460093549804779302308419663750211438284163524873509735932548732594148078282099513245544834003056695392339512206871813027638772732978076757650695308808445456354452698591146192572964589687792503666361406015939032960473499519805802281315472966663806279418430980966497998235183192583062026015614271348693911919095882094681319835774533782948549040135141292405616924396220877270586885789774135402843670570771561810846835267688500215336573197882104987429578377848343242810876932875203119852420426321495489290993909103109358072127610494051273516006221015413888312931588490728716880044820543781585438495842273813672438690524377161541854793647276529078520314731995707157926706755500328159040058288020394297984124767368084013388489645928308866844254272517552172006944320007376902086588294304130243417278733641649889573422115439126868072053707843054556012411224721406020540760033663891144762749513502238369789572840197473994318221740458888192598261930096569245035040791672605150248709609231215456899444840996137301121029035652503014725443413498156671198404728010411046597693220657484797632520312395595626374701415070616647740655717518243692427561582638301067633389787453087661863975081560634032676478392926471132502087984544594412552349308984984255656580855374246036941030175953948196945737887334073260189090898161406472768604381486382266563367005445783177308814200468959633891722066199888786094729525602400862641098941796292720101424434923040549663076865058065395626190960007211090118188071655601292758861012145878148841129795368710070991901538103230640973829596975645330307841075585593995405527768697299333173974035801637500343588740891580465730252036121844663326537130494833661262909101437524840901954863584789375102210634190572131967270125556841547789145982476534038893913659870208980059379755846078497480649470923357052364380932933505119293004579695828210330289011736915702958780091675033731524455986686506997805892166606171019075192247289566944887320644742699389035643122680022855944359936253271300284816688152458415757250204915799146945505651722111559761423720626014720017985101258279368918814064795644100075973253596670854408323233291655173186861860427628723000922553053118548850450432782343674431085700513837394842271504184982943045228966294664881283323655245303391608370972679838023090578467119166946107058544443592927391383874518259951493280863535885925066918705212570297394378128849162838379921937284222534550249316765721018343160085753242439721930015849121497792166619238480837320275057089175186748310504986490535340726688871396252527488461912098200538700083456788816634090152791241700547172961934739459509217397357224713965250336843759568181544213349184491830085053854825561694722487539538551858098625717784721189235097823029438342631345582126690691841673081546534570030461568259118593085922859354669843692145069968247380800846012786301033548235992662513412002886781851481151643562351467385067900405485839457882591518345428471086672570942489022522455046342530143888559721150046954244290969872967679467223012454070441328190540435564292885513480145828333970280922155276848612280368611442862791775321461696772303966331544729794984350959088617704891314613378100160136188650841014489287117780881491928780331056824642814564138289919654763190210095308726357027569708544580773496019009342137117772358735280650898133927782547809767456472528478747776686541561072926582563489398794400272520088262237004722096477227054733536542366112473258447385299069773357180849498022805636167911335003384076782928417923055261040375964709248407019498300960650689462208836747321383273469884597221188536495818749177159382138952784315601973444805437942383092979529967471167722793225242726066312118604338457823689697773292149844631657066563406367543559134006000793280167778702328201898326688660802328120894340996778323196735977448118759993011436524223346905787901912671277409116061319710717039160018094323318922767653173805733201023329050503392116144475427588395179598055186424376124657239275628573945158192947975845047785137533055780639338674748199069103843990229375188168370345180329164319711110738566936253570884262433238538910476799413975629191306699116506109792844061505737417979321289014669652833871025375494647127209989971447470010260912361333685633912151728893934677107111128909512159773794583468385468155467374704306398584216784805119297242487701824789761829065863203874831377723963039529870447559169707498801982762711972569222365504920148632094781178766421968799746598195610236278042832129926799687672620176873891189863322528358596117023547735011951561122911813712345386386719686661946251616008508519130443889369088629463552903232775665063193949240036433474296221196972200154615591086497878624365060779560496400986611180718354717533356596102482153857608074738047689035621643380502344934466438121946465235587774828079511422658238736230908416238047766765804744476116161452384723792621721391201970036896964681435838900581705138469106251744933676034381094942999201351406501048334733875832709508192250474159871322626244696915341335461484532426083807088580249470610845044032248554178024899221212207014049679780919653717104552850931724795380231337952153625106963195729923793774173246425555467350546073743008058419239866175379722646311845368505778547764184445983927696981510741547086459287863118330563029336880737337858769678603410352220074616797191646359071447362746421251879883808962091448644391364617394365893726050942751508163139099031977944525092816529548956791584844039439296090916434951392377558023510038629241446258190607775480438709008389578039913040369685491336102340735137738531630994173680143374866281877605391302181798874243629901136513797146264553655929705439942648193097613463712522437228272791490518192101196600138796934567245170252144231365774985708282754485078382024871280426671282178969607578554454316092327909246084092001996671077403904979386426852320557431926838042449343116031801374232204689727846366423431803327168909986109591627902678401125059689607251921014220624303254547555246629562888256621977893565727795552434559597190900402453028412453638713762742737939822839972788845671648799915917418419814733782435011130290919190339614045703226773154386966628506341712547957890421741358824733206048683528288768693512451114572413452582041043061639695282621136733426327520532382323281982836702453142482126677904117708959669766534667919884378184564052158399138693920415546448040629516201841634737746250387895387804353151499684825487862627174950788639731354820476710898534081345026602430011483235405098886082363759880581419711189357546405599400277355687041217916109567324568571574751979872050679070509263892984641414859149818686497404658510221175280955218816059079830598077364185107668567145591532664945792677355727132311423332541065882943979322207579576340331613363388147523174884338356219174320202638991662312299239284493364103621589832115489520516857475339494471753705024118337787997957210209379138438851122455935536561275382133986702884767904544775612279142286987226977723469425072440668881090285699680472876111720188154011482556215491182443793773818095246107997900373394823367834406885214122143740579453525880143383703348187213343522960178971536772330182510645385571656830654248197017777294672970326935898688496151470466008491426826388163908437799991360053233838327402624316872968329459625789049686307126295545797639172404022142251380761627294355648185835535488381679768164275323984571627505836273221489928113252757377554159700751689883006503259793138155889901565358319822668653016457329832404138769729026680785537428013751881104724679606279776453371977079621357204612689163772246622499967782702841236970189762764145306177367363083732693415417010540984166221778810619193362349035501155731071721976627944385719354596118699734345557170746536718148632389578137962345087073456014658001062679899706869485914713833236056053750557901134625827296788743377512296284010010208595802443736959034741503046574142268487687518915407039757012775673473940453379745467441971870128115571244710183173500439195679833027604930186039651102951822052303846846830087207177724466246638054758996791354550564589293620539734541116891965240554264862039591661218095670516753049679666485571281852026607847456522447210235315981857318361641030219052688503346621800584534601978131840573320011833276602529623014255248598680654021614673883763688001584195655024544530953189903757498982534007385392359619157733825487760694599419066320737668867616153916681200402703510831432855222336246496570852528069934164989039846363716281302841816792851888659333082183244298287544288353318971239903880126969226967590971142156909509753102658393408290834284296243052084103332723746070806442940830755207232225525499660820804526555717065890845673681046882231000719479191125345748851960435141426584603208621224042229881719542556416356433597254617817822441586351779786859176483041833277265675471363159644429266091025614887408071449969930803308878411195690331993799672004020225926983438619572530704087695419689202195246320058005346483961141045182470214858827559559030602177317335570224390146668120142241075759223481069433386300380651511269901859434786066661127077901930923050212431021125560732011007292828011586065644144084025315741474193573871739811704625369360602227286096724487568512004287025972007347027703034263819459904282711257172244444123759156750106106287121606694822536093236893342077286131752287197518460872582116901085661641566145804382081619242068671346812474819008062155969980326044108725595048831444232060710779949410961774430549750853453736479739105369383385913197332640983137663064851607015362420168087401479650267117211554488918969299632048754321282647339052312551385677556335016684395527357483149445006303374619754340835445824501961100328569419157962400099128057811738432459673704740988939879820835879932977855572212294018129618765233270866382370147347021786193413901932725106416375151978006952347739153946112690877304378320043052156413207381645134377253398438691327770038026660872288905944929562860401712600879720204959679320939123911990774536887788795082065446510285485560205709564581946521792078223102515407508076075742093280080942522357527456032693867472846795035982257195451072320333995828941670701826604562946763262498248285067746501039746379737301697046332203911673185799094117737082787854140608463903797059220529668622079498950693479659997600500099189772871802870930903617931023009261543267293357078114874068840939173115556639352745805390893336208800271146484925004762077368369695281677742692742445321237000175134228530170710043014073506305279691892117034908393282981533138892015200703274513005473735512894735183944557556702760313693349891313446513645816144072039095964717615187481148436667476515300329817492813512183522836293264287181485173340347044592029428536333365421398653891404337116623529505870380885785614790551218867594300203173577234016827546322484186984978872915387776840421211498954472574331688594196334761619232587979953121555424085965695628436116066676261691307023159678747493119366311775863940654843286579610545908746628917916497671126401104975463846465423512825174545268437292189890888261652949703537037094415066135343015005563314577383681403844652014858960113879531133577438626033428649306693292946728492177996183581286537087933666383319708978939286425899653300602020285831546171195074953106977726197084267375147454739550073240830178050198564786757175711022762780882493134472871639523385936443180565822223001315873413107465644508118613166482597272143664595473782065231278637594188038770760791531127141804901734779709932246178085893518975850195390477113515696897353436470841874608939447384831491427512831068890973721016494832707160823692123408156046533546672552421704740162315826531664815448183336711691683357144829176636258005263517030402373676002344527031365086965074888227343207076157895903084483711088969869873288076882814646703044150043343873974329191221832638881032622305331213912155147589198893524975614362949187975986753631363353270787439211304460820654700307403526352065756039467899593556785505722059186906705497445867877218961625923685542429663072939748189525770648617922931361052272974333680476103141961715128110899156161438224665283683875143688911076767434359226021776001819998968289189863795612446365827385391416872747908914298080079799700149916218278176213488749817186157891977375709623077459073283260734577169037792944530902301029757692575453265102820564850549047094464614585891530454869201417701457800441214528414206039506409138251890734378509410903309376073094414668899151355094714388449086448623461891652069817581024760635350371049083370545579978309128607160103771087919214531129480534891640559203520163113905362222632835690091285470939332132584773885687410607343341504290211867201843305343368242431463300103302047648178131424931228211706872565446575429026548865894135108700268756023694618920728459509056943783916148765784418056099322917451189805469162827248986569698341655213768324713558102715263438945066722878914378455731161036851950248028350630612773133579593298752838500747984833798348902726465840701057969270385363213175205176300949332674887102382119571880848366699963584806652515022669926182490354539071409905896984739434454376974833667479126615104102669359948382502757330457292469774096436031355574129498308916977153030347357377195646970761898101036205625839043216158550413498662270884026282544951483969394526492643582063804004530888734357565675630572565805530867538299298443571510454380362265064174868931567791244143914833988964424824689138369486530433392538188362066266774652014920256086405946982816863963363622017466412596636899448809071895567641032641278748427015871888207234720801328847898888404989706348721476473373292335579931629492717578229067266680608085923385714685172343357173833400441780720218057291174196596643300849646810389376016751734961338488429309616853131597139873517300013401802246160820975570494509002577258896237990307488949779464682033555541133318044689542946765219687161722126859081344888475328940735272985350472347611431880688769231409474948292409522112132402440784757349139505727896465643553637988152701265629864702232632539598023521528633090704827243438909720026890854884362291537456566745637405255895397556169449390737041341503199396777319917402958181035494691719369547950179699302275428923481929410389601276987696815458833293715661940926534320666721939292146191078160027337343342188930940171475278282930970451400580261450903979395821827001271731850822575915324976588977124554327349011688022101626582402809589995073482535292859834439690494920026494633395861643748277951218620398686825569241931457849359419125054463057160585332510812960420258810092060277232346006201994434714950985394833550390374700758699614376202894293846545767992882755290790628825007862643042819449167709990046343682962248375482924376727180291514815268927099073100041161979119730774830620389469039547244252953158803634202147775280931733460614489499130424371350463221277045493563268393209153904892646506709968812051945028340279514047060376383245081379043085618947940878751816804362825769098280888918189593871701493271291596740432843513997888297321814348721308786839096664709265791877592609145067660927273232316188085347216753598788894471413691906837697831170546049532283809196496008061951644250081154401087715700743510986936621473983114724490023111534651489839177922281707980181401586050077301012196584991260401988911623684189910199065853350227051022191008049110672894814109677225555066757866394886536430792168308602011312873497775227546694325953466533298460115088524366091890323492068821587785685016048848936503987759030260882972500939921172733590178402833130762236275706485674945082665868827449748817741844873543909708744440837359585323646463485762160513684049509514130880423639413956609059176082964268716279924854226420964310897735452967086400308698749206752573794393016618928237943394656478759280252911872222856024315233337288774497388364892002782970580604609183105261345193876966239122665985858774401228044726336659848798344771767077478998530706404039156573908523712251442055009070175959198919837499928327005272766353865148023840708250944785894375283824516970483830509385975119396955466867241009428120028618720543407309307325374161998439594386395670914374060925479710298364634966519591097105388899951401508621281805131362548624521475046697160648095623460540885568065433530627481684620699164251109531689638092376492158200081593534352769565956555099599273570065319301490470701902814954855125298034025149180775800374908470765796651664152097187238303392835131160635651633269120970984642610059340322483185406689142690731473173659575172124797782706655491317351926630801022272520952642379009172031877443267168912885771045479499668056581630523204888270438836487086839201682976491127056368554226385667424799555364969124673580057420383213269326325054087600831812538702780588076244203221750222552788010586000848261466994306470907611675830061847531422736452190382470570746461452615460417788376841372093145655602222304977888214193822769311011572075959470820970216731752859503760449645188107908272023089087036198938698891277796984761030696553918298039870551015794449308389297102121727091464983190322625975033228680423539077876140040547134012684113542330996525110808058558076133082596510422026927712674539143712685557123524381527160173897968089373331371931450028865255480558449173001817701753173827909166278973359168966955571939775525693520885237065835807298189311088970894854603031801409020695756302720588705418630228066884171178383812188355006031171116428752941979141591154851889479581854778897948430100133182144929291549105022328773307175652971816379170348687009204249209840455623308184913942139823272515939472905426444079744499142139687049024047476286428313084622603213278394250026859212443405861584335195396177737302620121369013328858355677135385079115350590427062598505523807846559785466178928782090341656372736034789485824335510752248623912677832509776454560560917602034819384693064973337607645121929258430060606672671999257915405177873828842315471128592777988263989850776724638541199663000948947946029154164436037936102564373045205444833884689158258417698631712734093158053917468432823989957506992647206406507431280810773798661985077725519654410761963864535693806082939989526740745441970993762876916079875017948860773653584132310422546723602758016250932297194200071688233116772622514163510645433057902671811259667270975849604508853097758515985438963596515294076897894398793536818016964379846460414939383250370292400825039124382988035775397832114859245798438006835546284143253288639809698961880034783445755129848211789948633209744746346921426687156124647514725196770273096271522830720803747499162936006161939211451104653458009260080566869496089623198177812493732222485651701545530706232647209227514450863496805586214185021252049930924273617400407544010756628171622555262709991820432817316795554486906113478283582378809748985088328999716788169564133732436941662506584824254684359764432313821033452302985104016492457492786733414303065904359153155832936170018399799013304212711205433257027843129467462542389528452254968798272344851371597773781099704041770220379540486007873867314489317938095346975165108252581802017269340393558230144412315675274685026374514422633511040586999843761095602917879743602797285044018739889807319943341424260606292575533261287930562173405770192459841491097532640743328319812498424934412040744180226615329839160468229422184139478043210484781772392124392662045962602991154881451588823177167741271028181757963978880340954028768262186519350636426697548177500140694068742318830389827503913410623760194085461557477986778342092420715981760994640499448522772620504120167305222054627097533916289544835481920735096361663939409160777377681696796089287557538926096472489672019776718081700881346949428105658607080862668895526289477112259920946047760553700481596261393520144913466576194562881487021015753163524458663431470686026494046037361233807886945038433194505715970124922744663663040183102620911489216938289543319112310082455394735147142573880683644728571387401283998690703038275024626853628480331211499424266067403941130427333028089137964624921198270243283594413883378859610476036100936169912135076002410860681223331745522536331536513443634171298324083079864632761955616764691903312282874227313522007510954487584095084972026497676963507134558201436662100248850374395708278051263503706539343555270747241677864880635743634897437092913709547705841339961217352374737086663256834225849731793377085133028162427737595700855909753774757956642395824310462922473644467382017230214333678816721507277290327143117111825401984122035202281587752977704055621043827007924447040460312857908700104632939391261188017280195824179892536512968120704148397420403001669483740271759401422762317947355450290969282064401611829599653973895608266341395672352191834331165371384189284467497500462815111065511475236006657622231647537140357065651882276147033339779905503507096266518750117070680215140307660200467147049880397326459985209599222024316835686924997400483625275521569271169623313331252361556328388762799157771933795377110609000639808907781273633430176845662378325344821365657248647248667690950794397018556168862883939025313744926650419791357578524315613515009506095401395589917088695256992972795083656453526371256944439853553786116558381300366185780690173319161308509427347865383708772677537733641404113127302331729139145492185453244959814262409880460209300128516735772442035973106842951582519378375278067509224620539247858389801001266966133238930426588636376101415474139541583103528125465794097406799857992947837578451952925621616012585578377982507985362824051824811941006263266077141866578234954384281489174717408722125482555563003123493593925813811368728432676920647889184122674028747483827876914335162641837958865318758378099845517706083789936194960752130143869998322911514708256188657400309986174109289812370538223292256688627561139725529025887765085539839381490562498999924187534478189022356133369262461547980796149689545839684585095886116648628424094034822092007999007985706234898260408257672279318990745766525379948690468523655501846869885573886071885551078399323848292322872865536685131803137299968555043074270748284688305271171605306456705846571439217045647830835769653337849605621243040712572369653415830554961927991564639495937620119446786145656810337593437175104117647052517418893643238587328166178832487738347386791725972898414674174031343468636421331939610809070498225192985991450040343815765249629059749337005602346445059267700606818101951012914826131005819611937004914253529920297584416301204218653452487051739173668963858481954779718924588752751763107066136143798192048311461839808386909919436993097516173401034140139463588838872757646382971842986185563883271282823037603377538731753275328065312591791061148536945685692534879028837678915097832550517838571619138283097500938872362588337619704404700247944824806545456011247473076845276804839522580090406711189232724722312312001984167957487106530324115865154497002804228548168242549678098394015254727847827180430559690990464792808557347133786894954964960736766039413777156392807846612415097904417445532910940725778582953687671956923944726991730703426205768958677642743813990500487102219886620684465374964696843487780445595060090406677080588009080593294868413172229929272108536933645697714928613472065720620398377690427928337691819032388989727309583587046148338862879791325137836992873423361031309925676455228108686188644360331447454703576005485187496328372400297654511753114108815447672692645837162013955841246166366140994562003322945756148882245914524818351531198674522408397632145659318263193281459268751366261408371222676767280205457963685188377590045106032755794882700037320809424315874767994232346281035084390166461525350590241182846852005682199519165230940389435243272249476400405348261568733409029429749572027987101384087232601802602633124431272179678469930643030942472242612446586786319288790920018603211022549509328453069452557908714382090591857677211560692564590665870440534234519285329041683050910863505491299054953076433708445442251070986136223763702786209006338436435911726275553708831466302900634511131273518875810923372614240738598035981397073987132565093346998731328895064946443270005484030477761688255903570421417979018798191877980829526803194959993771690766369718640603871603290759155870305439957932624777949601718510627378907738437400409190562344769043452627503466465813118059973905151126345670329897090203322543572088009907365577076119269536253125899974608035968065788620650834800457569393864148302652840637596397500072484304252820712971594854832090690219684819750622075164884926442631808211163500202567935148776070407996678463953013532203352762798955496214256724846447559968609197739720567175732790227829872715835439102413275699030529044320925049133812087338560111700929924805503623875672686153597544305701511157707279946576757230113170793044229993784249160749015483837768651756061050067181671322778935334826991831992543197561682746479298805992976283875711832569519796437384089484371665689690313227395751836059312239249792138162907315695735507201834919879339617549526486470673724041521207360271716623041063800789792150615852415191849178625998664873924440279177234470880359700203945001946774615379669007750617536408572633179475906546626046233303400327585192581457453517919520260190187793754632984279617378798473979645625612499289046938952760595497910043208621574316905303171993808445352031180355034776257883035922081361004141460098444699378595379959865185489534103743981906184326140808881055107972658154561725471803839368176142418200856168104175371321144417629699009241197126672752467953660206036321705463303304548213410685791580225292371355302405970142828815939849612045318869887475100287478399392950704826760354851482526551963007800674454809558803160422090266336657411904917597061241231140001882787329814726989104962418214014550840998719313604930256779749207841645250471442024583649150408062545932481780657147382590514658508971911141305942153005853083523845524700387225843780557024214674562171032261761370822586170124366135725243711005455870178370709544852353359743256124847765189192205673567889067676426386617770481253961851380407762880026473280607358222367601966372718056479000043459145973551805034671855618368701681893659317255774088575822100910271899321425021216113897803693301180261046456662708253464131674501623268533353805973599179394635983849969677611546924546142872325820055696380226258752710944708628359990955185402563079570854228563648475204432015520449421144293239480983265960414834788258219250510379008791014315021797395451166444725868658098629718877058482917593210775040075222830561587600935375688001229501333814742645604085079201390964943283391490915988233505946763873514797219138998756134138946118782064019023907733305003444499729758352071576052049012108314864581005681386876498410160365305605265647880479059745583887222825642417714805208250428394209953463294898255630339821815916292499364682638176128761650820228712813637416115500861942922898241591228146918697789069917136219785676504995042012273955032282374072280487314284584926340712611877455163186220186328380682240136349617712965820716447602551590678783743960261969140228595805244540839513738511349514793853008394190382295425528415499548401839490127127247961676971841067787702277925796438070356454715363960910082779981644435781856658046967693235780600350481415991528365813275925431753299721096462587345153739889974701700945556340560562335166940116390796276545671015287144509995452177231121464280833561602959601128730907056661076367584958020389816550917193482087146279302866029064843328936105093963361942796455575306392102304873735029781450027952022535616417276137901469814822756158324872076906513479106574703569187641398842144478616736848559623056364433964937163061838019659702875964011093830066102310557996974986214594684953090284375940489030618112566472817770245055182160328167596487701008752481225909886262855272109511460690069071099099641310433221851759138697427084813460832760378426929772598011829222800115592688192294217393554311218811772709227151149822222403208748782607226317751217463426452367284097552034416438859305094864109921242408731379585478338908548062309384928758023961623982698932744835059495658095634954591379433142253681201530654131048497665480570925852928403034652102879196844210516654599806313742311268177377047476036196102352304763449445433869013808558494664116674715945290229714979446644389759778901034229752305493738808206096956262866717856679181460759025218982522393473617984705461630419782486039702642534428964068316647454509927420898778627885046385148363368813084791670658629545598748912806456709398221061186646770728358464448832427667885619515163703302955600413302990027131199733700001526100365932892097546527343330620587596227366612830233700519094739988006254722761984193891431985115680386157525675466209500934279337322817024523507560894812867550500231735589001422684702229053747722053830025726188325280578876663586611772006282314125146113491102337753287175576630690316872196513741613021094993685066803636067653303596970317209733844574255306639845697967876898256366960104749399195276335730314865651201798471418420779554342284442484638819165893444893089408078360082605060671415362969229205250512425782305726696598146995927189181416984218919796055811858680003801580501963490996660625630515692140214686977897725939457323866750907820701248981641723293681632876063876840515546898076793349926003430522832349074535362897282759707206159807608386407535238043295564044837151688358483402983580021761919655505864355746800056832383953029836180805783966670058765165006122961374167773204651345880291567349013983602870856891396068268718178076190822921569878853920392207026166133463506318660981360244656793041694076905485324065936216352695788724574182915622697092138351051258494052591641468908961277063768657598690341214394988213769838156496757792950820865489945147458282929357259800999688573002311922942586583842165394141163596005562349964280842938114519171650761345630179798252134545871248060645090162407572650741693417777647034460654994315454910010961689062658051804641600622230464806407445545523325297246471354249134254165753274352899875926454947564721282229411289113456181936390776387330304405253987880512876595306374070871603755293419440986803124430188506008399406578341176839385301270712780939093148138832761276001126480757201137204352658253319668577756870362813364778969909731536515499085332531354383395374152120027200518866207771263797514252720508872979547928855645923695883307148825618897469076203722444675073847327239759172208078288746887881465298979889137471809250424819327311406809555286179308445917824779340189903923757332511921772329786527134388781532847973077547928783753887191816833159375838853023631742297315360976235761400594171855504230105900539464728829482478081090521528669352619016558160204294135553350043219343746509550130550101092943605094006221676637614478589356901564485187417360610094017864783723412826253119935594146357098732482944448962886342767650372196608585986596280415653302053307983277807914623276532984368066401761892316995384588246013813992411735378012427445900998426955958181028045137018692504274090436274343080164689450395651914006415795608129866125186901930612398894110692733811122575060692675190098742182493709869632930664373438132491304031150927217212476190884136200411698339413294266142659430440703170526130436594517334147143171078860288860152375416981531411688455531736550353591930531792317947848827474333827881142505496621172555680860958032422443614956893454370140288265759477710437346478421916390049552511551335876219925216600112581605844244150207563136480388247095495265601160040700205521267581633578807834533115703529597460100254585935349556158949320875882245243824607101583339627092917949170975662831849831533313747595329659319570494180741770286019928478064739086036251576596132113707143501750560558080666779343932189223206612733431293711248965366109613701107791992512367811212514177245515323323723161596442197330111313103541517673228806992173727760089955488185703216919975957197806105740671089873025900586985224071898771286215083050312952048820953139664311634298211001369397174696051437267288581438854700786404072194191616088061237182285030539788293627530878360810326888151015106502364196937655993651133137247264547527510306896243002616678074768351090777273700772825372749308039540591643116735735014259974470846719566877224775412069534474175257226082404520925677282067900092321669092219097884582305739934975028893737591343555478846976342710751748381765206685218641459526607266402201378111837630537632116957551738915272218591104941866842214681755093503961198266431397926077375881325458213994047451154929356138954119316425204791427684331513029137895224322945747874792613320698534299096313226311548160599360907963909721914464242925796183022528433542914919376443858523349132372002003004454557666551799651580954466363251656491291598194805191111249250071534040017838820771598504011180634498743913099894794276400321132953481630071280390024142427316953775565023708713222237035443133629690442643929921189681505640897863013852512753103098394538174268650860310296833899728093172291617381649715402874350768632805363837569013129817535863861245876684134011068023483206600396389926585066023026987347683944247801235889191231881398408097239838309026899794378028983930472767473087603522517433033659090070307822443372593247793628580839651267563275484188369861001931081166421422342946128470755647079779240760551976872565015900083112347901749471832966455332922975584816716000141015569237743290074378055573183961382919494377524711954966056937679481856072435215474253960050316235759901970197361655907502807571007288915465365393281044720948422951752781417965824358559088941148553969470798865875118821411490858576859082711418435283147771096657626860092114044054803214469275961080115263508315653307866775160861701700121234315799510645588303805239703263423847812302816905744920216670159414449765695133139041825304201855379569938572307979420268312934005790196202198490184606438877782028879408119801198008884653369148657290856015898135185842011230447999774509707440283959731672889814921278857230320306627249422377547669997238966256247922534915812626566743312485672623734542949994043807544883675572716024388251495119870590302940423719528966244854188303964217997008033685145130608659957358687558333035045278958319046124240949825868279814133382883720179551227808145194386600978787112169408144924185809189653464145111424896192284342223000748476596522972129111529822018715741588488126739545072843949366016444362717706431269500671641219550181724548091305982594828581321904858703624754772555733008146180067038587309134678073321928400533810210169108919222735660073116390691749354754592409202618031384540327045765959475945211300041510642761189157048122496086238063911297742935928350307715477233122373293824738721142084697979680714391871529466067632907742324158125220238440363140568755921992422353000700660007731538386900694078671565140058265052613792557701940575950353625517193199365191453951790876260852998346630141520208995920666116386137613560149845008923408498457468049062597298128591717671020037479886500335848839206573206674526068431958075238638036692974414691408889662057646743564564396269556809262850958763588296874688813228704840989439344975035955354044687311845989462179584713838499337989629299821552213239633814598657566625563945924142814050004625952281133488755666048550894195287188506805258650704321927880651079231960612371678895869936976286758355967256069507332842443177753905672940681150876296983072917968399842162665416629825391701758432081224320074474473440318306637472274573083021767908669301526248093650400492492874835860695520209409761745515397970199597795814895625634796356623097283735360009632838402712086919315523169172628305757321334367067889944389128837287530353331308452239981065765957404476052446291322716813541543619346911223681836229423992232521871128695120540066119539709912381200290781620344298004687655788624319383652203784221697470960138090344116746623819342288064069003375030857587589695176151915584618721868005609860989109413505811555250924625200356533479092238788993442341592562293138146938739805415434245911815645087046372001186618678765954878546455612395679516061845192216312108435017371538607457585663753236023099054799360372082890838204128885726919973080720550594011406535423623576872132205143342362076174257658083857559254749813407524042873993524750902541476087673509636382179264524943578265785910406599156268912605172443106946679980073781861489069183732356574949802729611447345811792755006421882257277900246544489026693745477964487088494619210182362401045030493623338488040655959558153840354737757041215590715473250057995510726558776679452021997294293053717270636673974087958079231622593509632623423034766550864785380030646132828589636309754873920172515280129631377623215795209057161531367500651611896683060529434789353168157975945031573867411518021263831324066501872384531790288102599947689634910318652361492402790482251839944973141442667033368001552777971034550585974248749101591291373632778422495716343946970627787658025591263287271554582157084942230574454454548834267943075880260182565404759745474883707769235713582584082885266950578887566141064927307374819431907259479968527367768068411929719055288760016557462845554073893538111421569326417336985780569610638324430211795807931108121278475038901392295745613507291839528278980961747222056986777951473379954093204011340649488603888345267204230249078788969448923764166511841289448695776543429954020017316305633818715828425157429503928662638431686527179141060270560025587030940405314586248434322986263140499297266459502378810619516507935867284227943795531021856585337342949301096773283261527435963726276475754006947873210261119885060590270330047584497710182987049980677180604351393891721595764602233621073828460872237678470478613150570106788829091021303202644338247959981900245022523472582187693236537743958056265606870144532801764893449992501606284097932294615031212619747779348983606396155656269973925655536678520295843811109354892167445946194611602171718070659078848155881204085625782664613885416975903838195219604380847897309667807547213114902051248788344184897931068631831656279264618593223826019261673949708616519886812501517883637456161054499465290685169352701262067758801727748209582453914441465738937519743830261433410978924293843491685346011622474278961971988887024026325298240444287876181808655332986119183031085543371107565130919861983627626366713409445772115785144793275934664000092854402843950030738337777496163070204511960375197106480823549790082417301586171717558665551492881317981203592411604251211972594158774029586607709883748340469637517814805401204273198986227041738537122684591240793383893173579135927107167251611670845335248802569441990868545947055619724137016300358874194590660516076452335575681952379833596380719237491123943702339892967177104895456244054292828795319142013498022459256320356478935997021063503402843556904286160559321951458173582963082564326795524998697564274980946745672720569029959688707656582143054496914716790920854064591620183115443726333947185276867453126634220277833567831607072743092661403153780225746751213641165252530058976615063933940193722199146227363460801899005405146554849491938653482807691961852766012281712112413616209860235388735217274448783592439615727541701593816594582602866423979579873452611230435208051737448295561267661188803014326483416642087592982141987340400670651186563068394358256444801282024600050972320373843967607814308499506312987455156623014563568691283780508254785037437623317421812805197684818411143594660355684889338854196554979426589639538816696334770371365167986568008465848784987987159409007505906982396665378736991047644258933530772366475376422668839730456389179405486647451469014655163343693642775437224084257095870119866927408914387166599353261693165826171237599082782880658941303974498287753684125028691360346777412617588127493825597367317056987752994212746645115128170057707464159974210547663921255308024621721763358484043584135650335595103250335361836019734463993863445237915452866211267105682407533447063878632575613748075803192993728079699967306028372332130646615012807303609138455918832272227652335679153393041299948627025233219700632019202740025799416833634004898135966264042751060621442502409068777667626416469113123858693156943014808047390158066470173889538948212671327183069835063122246451343766342988341156732151258724801539584248008728283106840033466647061682561559398788069451636451770113096068545614868090312497841679982994618669935886246683282109690031478286704270504377137517826636376225431492023247156754320502108552396859409019791520112822262664833542328593966688438516184502386702821986497725621342368600189254062215474571567301479013556585019956857679683774255172539588574323891881821090463195557231614313126626447128389333827372689422014161923877971739257028136181659635675725046900995959650208605218392567880069267984888739471296816980938051289515453716919221002051763111314137216986593664584570668602067899951358547895440867046256970125490751813505989359700842717873193336187784520832259158764828778651843942739501931589457450142127236045127969412846386379229501031653076245308132493718917274892788938418363443329567401201705359810516504073077592999232774957250024603175284003392616449693223347892124719375071239547496834622638071606462108808495329117384743490994190711781488688565769234617059790346712024449054029741755834732044423774011555578172713867042483594594483175392657249360892533232066330550083045847031491206260293760141411785545489806462674628028759115069957272997908634320951781367572056749444999934567211937748684626315120882366634386626411932638907274119705003546658638316806398192268505401159150190309355485525458359859353526172014896577564010779562736912257959460509763231387446559846237424883171209982740602601498591393234852898354528484878678626537678605990526579174647626489429704756025846307073035394452974028037832507583928740671030496080975547771103277139828825079912432112261407425431409641808470876810445633333291187554085962691092109032229042145833614218168973048280649909909846377541507945209845112653228543118565616764839638092460544850132868918074163249273922552337096336305071790124739804157506624761811909842192071193762625533503792661538410574896927850996004263038055686651003650726988612894894317466014231014284256191725034664179028323399793035921656056673753791628565202359861130681446212553373004315087863409579578945268723143037409372266516789960728321691772812050245529951795496254905377683105387061863933162728107488132375812778904071331464440284465351686581849136420685157884119617151959103446555076325751738672984921694889531900116587537659083844072326744551466844790782610673770109543794487647077179229854584483770304391071770413354200024893064209892895986923042057808359738718793580509757444999413966099998716078485707295520311693066732272108708025367517240696073068265373857449376908925566096225625044716951073517559722046089662806718910413116215139550431337471690477055326172006070628433826820299791332233770896968487305153747974815896604412397921011722159791936303129897554391582037706645783019615542758369862849122513072452428289382013092950165708011664039474555587778308483767462637719832460574841456747259025811513530514435635907842867319775227595012515039185723781866744524372513332208437958421217353190017583144872469831531463025290342087559814688263147250409596067731730075484237531078350669872390627565139731803061350133438148385055308088478159610965955731726521734905749213262212603779700300264917514872432135527787237703408631994031262302099928899333200145542849459897669458515272470133844614462570345400818472085044725816794706148073902852206976611943169400053480682519329804650144144882881370910383303106217697952770377033195201731579734218172921773696767146081419510037845028932121997001065217496883074347613534124911614751909946859652492254733099452248483270504643191277053696832889185619206160897079618199157441706195369130139863160764873781102724210086850310496230597789495688343410168327560335117028954302238476124477874193721920077953793067056233718953834718943194212260690027606715260675462348894749680811429688407418090954348391524754177445472283079594591398343653667732037498305540111120552823627566666118641139841245696306008826938253448729157756551913039085786028982363660197918316602836859501034242148907280724986129071777731976907310113447157499201472884701861543061673604194453963595496288473540787200559867338894321714636339414718564918978117157977634673934120447774544099436238248170953598648875878936876631562789368276502706438358842539807874336467823937953469381410174155753851189831040216489584649706642637580694088769330548657498517020907118951826268715667277333317028439323765626505405698037763981598425668865049565322862714344447316873917410183027207329903264883572342688987901841392042140393139659954820621180957177621892847742932584644131202385748730559417613768573790761139306528053637014745180153998585705310652856023556837535946979125439929239535044797706978411142543778276998859156616441447555727878726587911777215876536410471664227171460048630526710436654781771437752152714228307560634606230158532788554602019315357414300262672001991973610493377340368690676381873111019712851359301596306622628306756887608358606635810116463768623724657854161555030016984184957869354135735353343913784969613395218692651246728289493741493154329351415013140624152578488573452458215966831542852000058572367337800491677376875344004492707935375080706948739264607902542840093705343589907398172437913233885518366268229995068162131562182634383368256640247049362831742390781109876318234210018403682895775474020418369812061178999925993101289328795820192387219497564788544071475259836435029844024459803057341656215391962407154438143666593246434812093115786142834084380697828327536736786626776163527971549450698705623408798044700354114196052628030268605099406962894514765101923055306838549231408542599954767761215964612103199773973889798786319437644404034892851063190567150316541112127467127386934669760428855688541828014552409774695167945649935580749613144313316180877753408173238513359304678787619605179060665232629384412863952010716479155772143846296183878395112198108181900381662485251787581738639181101442307453031333489544337711719009037265467822632658447777453825596786124415674477466342761944270151991777761285871555177622961926489810971901316233354176788429168261762609966247361420961686844864054643613231451019404687042314900421155839324877450474236854486345533073416695343044034128432686832021107749580084487813580993733782877043830982092894071433845473640509953784908149158594421679613206173815379473679374225544278043691953749963325393687140273459385219429355260043135192727223894701444376423749347652399475383070274135381571083898579338528891587879151113541968543679831989771312141525769434058321887270428250515966439164459467919951346797775309507772340192078427658862663636327474204656857347002166462945518409366940199306568861836134086063552122232849660495482966893696173984060230841679325876818761712106274689690106567257060000701788188297814983089885996259829013378796414816345163880082995353752724100851941579266144952462932148583875340112177826718303850218314858543359935485092343612587051998113527985876129351410680676453372988922422159457744248826149882720707122515511450123669554201158977341084185421555817161212908811074071062763428908457802436554097330318853672140127634644704385357514085226043515453013662023134807733604834403026046172942504895853284658679579804539299263888196980425116057751944063986433794001139287309636316869960701420187214872805320334368296068231574515355321898794904716081800453580784104629674906197399883371128433476847359490660155814227227240869665298167880257581443197493358172302561776957519699554144151915988351218170419293150213123608466073530825481681556077098852010806066083811758556021569058818341515170629041137523804287934242760289974521844695221494195835334555669788037644496417105062572958897895410066580506043056333701547735354849195838026928655963686991152572164883035957141860521449715881879645708874436813085225161436578321893944212696281525676678283168265645335829199663250908599415851513249865677547806631053201469289716484461535132785049214143235751008995632455008305033842029431410013641356264761328294083321256487789739851626649511905810387325458689816746809422247114570366166561897029454903132781912713376438367379885026545656996984858747017217098339823934102716672660388299589803144460399889733834097759283992967726794638747486292964577637486187005536001607037747355316781034592973525865263137543228225551147990664288934484311840862888202949712909981204066649901740398319691787015736366986380804904249963489790429986782083303479934178594197315961594951032512353137407173936285839990258670063891486132663271418056268562861591538370645487966494770872750092350396268053762717079222749244278665430292739434219390366127000095075503151940795896141561938496188599806748144895884357278992562745058113409681423462919061930628420471117749351506017237313640759978674890511459607078901722355026708696515018797659808898615439447968928953802438896912517848284778463681588700939234330976884584064773579917307982138845674134787102080414230080912905506549375526800653309116788170014611972612133819421559102886588585130315050079965769222674864803408140995651315789179156734284322180516457715363206403582992034603065539939920661725841783151252346610784437979697769148592968391889334693196762084586365790325826357240613858999684902899605923258849125690721648409123582755701456087133039232544106177957573061843522369364812543981150502932015148519793607406212856627862486880398128448817662475458636183580704270028211581577979387291030699546309828774595044740876468970371667267659372141799964307043471945136276682464228776070876951246277511005116137784224906666463168472060549067075197217113224795930245512328230371725479058243586809726392104537173878304814071823647808490680058693568876626128711667937770059685538991614411821418999941387301824232688754188706199489917165413738706091141445191560085831563987914978454954713923339388855625861658131671403784566164355042140179224791811194382669119414079308673889779279143045612718458761132227086875887394138098560625228633583019965104396436874126474082371031660943675913039616474254897357526559658626409478096502040829626105184170426498615578944568221160723175936272427867554849534013552734803442211437870026305620134889298239895027588370955712051980200545293124262979213976399814953177853696977584643612125592156417704220600518917878528657008581781555632232147730064429303812099276758538225763016081649434323459643586041519791092115246611644504477667037522016950220258522605646883417143095451398150591558270621460841573580159197368822830431200532236068834878506861363984766153559356614180416424210328531022918573471776192118580266418053391047535526364403117663777315864996315851156542823519954860837908913340979303552794346925109366930962889992660822740220419925805876248367615697293904471642404654303096545517559850706411649317748628165859457985656936391178526295936633553270135258038430951986037795393649532878606149564088616729693478286804047670712201848029407618848277586391099911097832021195211631687219513381309498391824717417185572336401249076608537490357905143070936749445630109096337319196012026647691013997144138634429439592149681023155280005606587220425567627109499688378779915864129498256426969513201452256845935367864114161846861726097425977572938718656688947032870213515588167627419410086565910859574655699849541770091831766747815948893186648591710204039104606614804306980822370773667843412221605766359575031657397013766976027729657379064603173565169987432524305267381200051445729465797994129236825961335181729815728042563162559401629594480882949499109431162581429554266557976330829227783589408476492313275231075454242623305841018055509812405006046686483075500377117064152649507190742456248912912704674526330188014392778134718673131537712241537259451340520508621564604644353445792927766273529092574038197971692017274006001448957846620688146531433318668464742936347522674982238502616381100104614056944989130715338986966873259279559651143371456865677231015939027550292485160172909771639943584883696291012146713036495464425864892592699307601559455912618016686662387454016245549413547911197589204505011076433972657645101117237555906905298019923799995628381866989654291846934413197242300755356619298474208061234400166230812488117746445999584605017054471536335211429841180088031007470523193517710601196091069493943347786218192951735457203999941002529754246748575091853099139732997206772695421288102806020758743105454653779377548508635774533068367424862164508157293905809572948884608753131245287521518483454393167569326031264032584573748059467707921867513073446336121349700734080474763478666408685469505234685477186306592689295182156507729453233671442303926515995778444972837113621834529547929307866444365039462201227371652032917294072050288311120235489667127489046219830593362551199705662581527681482720361605135833906211953770073766530796751566921159427940886286510615159263690640010400890123637792374663066131301270648182095042724049824050634018776356639034150472343540518849335003033237986850773163488450807375164385022769633487830132722264308021518901456679626706815897028072138209166540133580880123217860251764940606729805155384987219840448712456754917346790724243832489384481147189882456856994698457303154292246758421936932943612290374410325920166631279053014761408123856688961359769311384515059883335401706394958181902789973072125625878312182627912163711702474680192316904963406960913881676122005425045818976412823931729210332320993389465822554727211454808737322337539246388968016159240302137271311245248543437968735336028390691989071979829396390683433438313694347565958636930209323083361664758466877504539891019007331417146773125548061196593571637391956314564851180636284109883290235659136171463281707572621390208366034553884980743249670454328619441626624807815573916760159614418961741745340726334386403632866934376737060990094264374417031177902835433043182748200503275946177992348141263148857045844015585159287209458341491181529729124069219780887783337200836456892114973878334848196262145466682914147258185288480262247306476385527549354636931308844940157083626217361722392933730829297489170888170494026836350849733415345940203757072077697953078555899378683740452483588239593167960449623406684758159395838905452103343992142922681262256580034214668797887644620538026919117707669020051619727731347405943736367098996325232027425517079764181234159692898030128639696880302950187121818141255961440874711591636110790633407357830511979417562805483153729342692567134045133361516483698052145213240418727696566358226445357747710119344138756962428533720457137617018253991536743791461857779006099926976007488400590996906593239167011465936436378219415915156303288762119403617281520041879468970198519555981629856245698047548231364718611094724337374708761430945763152074269182948199126965975611556397491581316293075975985167144194389370416470078788396959670067409395644486835767646510664833927254892462293689513640699710452418359400179903878769840294489944516419322093796246054469458504411917767334936345894910679731223582662000539395976464650465409624903774093840515866951130950535544899952819639595085885191615332275388017289735462883971104676475390152133389275300759235844713540699219239869370579180428129973381636283579131473537875739182953187127323485685621825727895247572228201188361776605052275602042429131689325938698335094675452835370917657661876685598987523859068874377121707796509290026250136350619704327547848349671214690866495163565637489612116756068692610682455266822352729417919927185992799032169633721965517618942579465658655147496476730204308510753062252397433041177069117658105300615851096090117470421750930375669024622087860083839559071860865758381931799613154605447320848019404142300815472056220224329312550011436430094580117273932926615844734058729621815554113516094566200961057936737354072267135353256386298866026835460641587671172762965220005293065441022623957249979626087128105082093310473753379275724110166107067746271380399509933079427146925011622538504606884877755329838156588657352321445172741381432323050962687669122131428505851950988661633680580109303610194071416559353956459780030891932048219691341117560369427100728933305244699105461439588271887972157805055491859380676779791367600501711388924813570360130634742233238693993765653843322491851519178056727497076592599888745929619572165438536105584447660001516579314967030948569147759103789754182564242679154789844614733011274178297747375497641241990232663055423234545536646330938650071568787820121190064206653712910076989374290131940713910533362982857117266098329105189789856975664756850341946401660403940326323575368362031869635585255653862865631309407033341733102698562069377945779599432913109989537639197370268637876158185677206855489865303057764281681115419985533067962471374976803619690065431717592425337425282756193212785129218427275071792897563527707587383564713523639821838261707450409481673854563544322464925296743882121194721122683539013579080040583884069003221422726263755373731865297273233452662627171873213933274380212379571337520933880788270676153332455331568253907628957452799154419383915750443266677290275080655207753746307785375587883820737936091341243518327966137548003971746093545802343810853108967201664681630760122632194854254115946550342122951267152690561738957454336880784345420555438848224015120891460383995007061611080602994539695457470020636686315164410874977140570676711734883579254079095841257056043914721125363412556196980474639035664873853653860368377089894005965275866865703162302000244165931797538609344148488205060200434377252432430418814096968514879213725228126628372748241007846104421965212931686420585058406467550251060861764211745696130912771968494142419877229164049276166506547453397186552953876054870749208584237831971208706065407833315373828993636743449318581374673768388896740103039070094195475599814381131443753536288595128565697149193790144028373323384510789062879172522434443437012153740400495287288469616393880296190791357400053859283620670809845761831652555646348971719376034554633924786347711135417569444099932541271024656261775474756442104689176745396638634202187945409085946849020008778516421093455775255953457998866197431725036181895025784280532096208556053586212468046278574634501926358850036726506896167283847788546120175961097182142281145535634920705516987906535107023450064122613009064488572093529244588495106140046994004314254874254082692592184003757498472122505933190221163389342522951326831352424171236815187528309955252055897820809254005471286907078123528127663137770043758781543214482387215173754891221885196193156711728517380708094729958137925101848108518264477560494692359969312067556393183316967885327653017035373608476714828393456130729091981071939867462658046207993973445763911005570627312789402807813534639287291284204031719700665981477176685824277315912961336079258187133067965403880609408184943919190669342004933315429210403760950270131223126570195829063936440333396634445239394201782099225351271801861858068650802678236279824471105849091245322325543917117356013388399174800196361054864307866369247291828192010439133759420735107332361538964534119877551264287437304695102924406699549470470981857023007273821539093642027823356684557859243266803545964303089605075957989054136360256628299807046364786803849402940499331862240725733764475834729425691263154605261841477709500173929247071095165362191278865618565858771168851338116886864990977608892946768531861332216047346685587304327979228213967126932740809375684247285282457303377229335729738261096442616871543591046951627592518782422679151728016831170510258368850468596707758700973239838504996936234881257317646073739133040777485141936458268351476360400478219856376678512244661434574266121301680827710372094376438649642213573484329223990952098964807432017247454445959537726298609023687730574224343666017000876972985796348180451862074987208686188335381443117122142877413720332468179434512048177524379280432152114809841077972329132403860727965382332844493096152465045133213930766385832510184435001902811723217586697047835726703444384660662513806089154865136077051267658130561907494219969871769686692407779771261993502265049583090643527318258527703131664475595887168981477821392026325496370158584142161853509818428331047544053151161250277487501499697692907825420216862134376692651944116359960539830529419326878158248002570652118599640193454306245288215462172547680780161774310650624152762503626015239356844285126725875614292706118293128138540651744170491521483446005804550331768261687242278987431057390803231566284780616592640449066992386247434518864234973190597739596076878517612311324876060993695024172075454093123812299863191574070866773275598904248914280550372445812032423989058027435390825841453603562020454470138038011127677469078110961243840379139824041926016506380272266004006712257918757503186320816195801859521701865498720880185067936914215659506959429391156583370759792864287656531454000092366550507552040668298417871810815059615249110564345651046921249372798993379854166021645261041839738410283472947696368344572949017031310677943467600176280833484133271812486473981551726171900117136623811202528193845257763520826903963659050142665815358101320080164867302152276559891466169595593033192007471361958626264239256651792512683454818690418022055374463273680820753861291869499890023355966465557820192645517195909137485175591683304837288950066415706549165120217155405987891544260522727258367415599022316600937270336898817495247880049362344337352366632256522036836459581076801655470616770639238816901880412052315236697231667190665287263117552854494161347607102615640937513305527623047177557340027982818538738688846434311192167982112385551867216369940956256094118039759402629828415460993258064169255508606875585608921027168718940669734818866734468688699796680733593647952766584149712067843154688211031269585497821026440125701853626122063864396721058842013021062581532110775552394850520050125851459400139628593425373140571893825456770349543950200017122186020281922253227111652073007192708314442516491441401937029631441967477820401184892075841626351007916675699577283044567149218281445009454487295965184428706675314412162043862334316829064143759807487503161751634497344493236966283186359830962626531805170939139970781981494108705680618705260662648795169566246673206853710094914814819660789474345931644080804058199760017705912705149761306293591279314624441558857279383522417183943287706793388294126921281286765517059186150762187175156847534339709754560927451661255786497149576482537247818698949923734704995658798756306846081516568890415663489559151446510372126234373140446587979435157363655179165041027312064894614413311895756605064712014075421670419867573291071269256231711420748092590873340350340522386693058732574878944112797776501111528413462089311458990917410537481839150121896068546110530814600561885588185895557509610284525669995285677588064086172500087407522899227488707056131167013815798592541232068626470674749966247221786535150007598900321316361168242995528870667956622838337807219111740729280195436775818064326701075417306745282502100460813957270920624577856022288861955030332844600075901234971934104746142511844832834893450774639407602673094905303938334659401387962774306625819870645391697622376889044707241629434809406260392031667411606882912270390093690710848755078037829383483594145019005908834208534079538272488085138660630660704561235230127850927644817246782498008644108277215182195106207737385977214490783145411407367547313637380858777472419999845868431870881994754249847626875758533459150549990414863113775551450028996140141865904227792396719696515228427418852533873449142313626009239930666564555542638347866924385352886422601168545460668754973474050549808296139798577778333298208571155575294138139994274633935949225176603358483449292903201138535017142084114810019058492357792617484888809046178091025949107907369328633785573285819200247017217651165529150182103797685967408872045475569238009137668504398458195784181022310895911519977991183189552503784302567488823141900489949789560530787369800556773740554690824163157189823365153270458051327808535511480597721406687275400682189453977897946897244609202107555975810099855501742809315421290112597843004774731126685845531756216277415428104596395433615981761472893955860070516332622351625324505352607098370225722299811079738136683888019978917568030009583900093506030106564107903106170957735991164595691385860503018677675366573063692763897177179324198030527448488300355392971371720739265292298788926034552577657128132286551178532937313644629907661411119632881832295701948367266709695153577200237946403502120303106345481982154013057956381448246370235779043816008405664760474723977408623854692844019571341604433653271766018207632102415004803075250562177944433313624142565312575769682975127907762198812423780888300943625557021088973824950491263803390381451246952346836934371230993707356734433451686347361422240257070442649977537710837773046508339770570541927799921671830713186582563640771924156216634779528860408766682683344270376842498257019845288117597560393028238855057058520262484668339833985462627727535905358778227356251996693496933778077897468632932941328388950879680510129177107421984437174237142419550340399723006029747839786692876804768986762042437615142153122381230170198401742324649401171012337695022427808602355388273296357839275850813211286110737335654799732112602321874953592481174090873315146366422106531238855648065213044141121219863337306125049885905261111452745504263472393023531165038182803807805074363354239306102882956478138909193379061905716658950649775818091720874631957920543651010302534885520422694812970517407468142484938363696709818710786749699719458899182649620982269385315895548335773607374951198960883904771674035966310038961761248784924652766350866849137083565431033813131551065937888768328963259304829682288471075906989736707197654108609730295683226837188687612123042256739272575844952103956088330408948940094825076251235918779950949899864192212278501185467914809336386598453344361759459994518302447244506219159554660820958558168457192935318563115417649961568052979553448693373951967070642032682731764446141779469023727191372814233181171006884580154629057540752639279734965889552375783001596735779343548894094127192573065140479607519534181253840548790100208827304662196338553917028632637098257782915333732063032998967191400924610428602735633636928556286450220903801537409420652389444505090121221417521801060597022590923477845921127631369698742327644417236337523896198205609962095665978021222198259756504775232868909300592368284518664196609716362871550396033859522282435073761777264364745356026450800401193733949082268270598708920622572951032162987827761481647634945194150782061996319784480076147351858919366867060394656602858737077586765523951042312973419978185895606296353153359772578100217508886828208288975586724092001050844452978872211273458367156877740007668611445610011114481689712150413733837721896474392141261988325476790521179245637898671583228888043027657124173103648980611793924592791932812058007816890357189415673656201718600980407708440002369923240707484500775740693239478311111482638817284833656234014017475141344008861495599433184940203630381464052495178267253892289878244391229225680536445413138392499432536142874098994922341893341830527738066481581948082351066302673916643536630415090358302399526905742740132287985810886819153058848870015500714696427247203490875309057776235529710098472746391018743657753600851194207929732743714190911293386411497095438341460490449182822248445744739896937074856750963673556605632726342965687812552907179083988333906129520415303742341498167667735239097037011199127305549600107684473928008567381656311410735165855436883770401430408599293572738753329978779906578158604102262246561370616896222172291149827754429240845219238686625554870470408667357250260780200116571201920744751996057028667312863449648898354451977835905099932159649107399640924666078971116854837474510439624745092388430515995107404372891957115660557734237525346180519388563225569819529941933043932468875915531817014926409508548078029123426981207705293580026157793785362532744817273867202931600953874896432443991489051774795643802595415408880057838017039844688997888031002520858517462092229454834358258292885775413899410731009825058870536095108147175173102795048720799257423955259055435060425262585755723978287405927697779807528790077817533002018722213139761402711629231076360148522304115448850966120655739187128926707642302534188530878196100565862234491054952083972579305673039540981080169551664485701817862988750791716833597480572375280589371091976281928548868047013477439114605280006580771862868189064226870593746245164759501381584658148086112719247234992589396273894797718087797882134627135174582152904466603076905011317728183853350813487595090688134799464382158837225676457862476199634158670931305744430871757692853624021696806502531454370959769576270448938164661019719598195959702605895558350198216900069684587893766004675468784684778105850773684978873182092910760125005211820829202635188529094705039798573437546950321021784567496919635148527863358583014441375484791723134226010337958971612634718815736185714079438055749997501021520584293829882868671313022562595994575288585918011459540901027014359233097366007998246810370525310467184909331195489545417068087935355134231413121959474206580699163453773091436488605678678922831424418535489040263442827226402079842523806235203885030863867579606695948179405925883355251898817288059965954469874864659998441537801085485748977403489401356552275538659273953211942092893972252046143336046049588670960996719583222258332006056470716919074338647276414118410151630649257777032491090617476172630905266979723989364649214833922847155824674053796983186461494941122683451620591300891057124779139765804347420853234923815049963875249061846805819832926976902968691638835321267972351614049401183411676453102329782023455722835609849877244618454272811708966710255317986329801873724516957496569475926246117128979591859420556769167383712191989577997207663308974786763992606033177167205403498791244133501306831222617023176055359172410170059805803494292384070559720846650252999789771212190275123594012095955104338264719237123709614337404072054000823009830648687889640182185666619516746325158078570585611013877528768186200764080938377309263615133473727024468516667524637857207817732148890966985746474235778529388139858170214775296556921533365658576627807533878418861709743509882922625609113831607529541393175982354289120033731831123790486877190846764792326670434955860878923154373250882004139660167993908284655470373197569901775154966462502819768192594882533845707394644380610971102526960534466046772411748461949317769496097841753326475910375595686321484291289964069681344558537998398140783410985662511089457701234189606308681802593890844072376995729087668018037681190279989436268776491022367878664178916488595494802741455112624491286843966570850077088246632129366839990504493911022583501272121404289656668118871183441616971286147084805169671840316130064375937742916628609401417196132154913666217646740216993683400350093151591827621264446228412244232110041650500420993808856793326181439780111436540211497217052833685840707761428037706004150003372089929838769254652440171359170934456340028433106530113702813381265398950965341013165763549575220969934809502046069874848479992401590699842253203088710737529271497342962533891173418697828155212907438321918814076572967315713064841439725678406362133813522482456949484388648960274979275467689058450258724357432791693656705186757299894783363079259692121878611384387304132026765454000401026227836756073211884636666919392871680768059085962615182181116378342343151656680027654071563148001566103198089998547120596478861768341011826793143725118895280389012322865660979680855126534467412326758880565747962254229468550023570103217816557026638158487028010642334700702470177332326752970944067466639134859906422348292852730960505802283599413772631385228082179112068222753159661254245417464283495318761200779349137886596761089511233700216377422683775954340311801908857551353170606136784254241565986880180536382615333846972553347401868706970037823490168527400519466818410252027273190630818955851017317016959005954476096716857375878389643073688862063480286055459329474298875972727246915318496795896733914681204034245845560591056143525047082271119613625457996954039631182885485249514695176259726154896589925781085946680759865923010313838529439570899112268135165735873444123141030843850272212665039478031029842911550999763553086712211936958501034080258558351152505797063163641787992306648167153586241193985390433847909704135471522931997532128239264198222964329976076916760343781040592955729257874433168611563828607222100634919278918134590009198447066420002489225366491583192334733772831968610302168227560191268113375303548138927007513471812035492391611627457354981167943964173685069526364977165265399055188318258382452049992491355187458855825955666224760238552237485260569743437406567067610318585838771479474938838564761587894391397365200563549888040960537182373248115623312590725420945390075218951441937799676550730637737502175091376207182427126560067285512286089921896551696187463184136726399631313089905287148144432205198562557316219964470820221260948819817022969295724987067773122748036026608700637100030401696889004739084040994942136638774408717030218205648709384161902465560630204986509779736798538833744906255759581190767384264363024501913778858280751086499596131400024601289322727391676644320282618737286089802727617699768305450488213263297919927472382356211990014787318289403578071389395360616579310709104411284676597894350174373905983255766395770077376220082930932574261046474902461710046780671150592646106625016034822854663765335414631778342997680747824897162013439978991225566648160333242526921223863177039378626728530204461369613612450342850373911666423495636490844702609698704972226950277310959334323361400469336510631570633107171305391379111365373549099085124279002096011363839979824330036053856007754120655211966667871260150123489977185162258082396005969206433108596159098448039685403956453211710884968790894096284003465669028549208314201651632069698279322965776268860584972712803790794464053572049975878971352035450416568008249997045562922505529883838481699176216742757383273502401684987447495858545815889229280838647333061985238278001274958471257453404045263646290603590094447582749000478722417339467935990859918663225449466233327585170684012309235868158183296461717836368087621481748734349314237433251404558527552148942086898170006709360913556371278543644674156321665551163369883434520977106009623601625121014391583764564916469507907000437469508379828832292201838203591665307070609270538576005379097822836494272319576660962064822024213529747672122488563471166712803185026683640667382331234198491796086622408319172851436019046880950733108311036123363979191146718810750548446295762265769584625960908013674558685968055439989112602426991169803661264360636296997232381207985364051427905932234217868054453309335797468828418593932083807078095222286557148772979319562956722136563618636340775440574645751772399024207199794217325120694637069525227902381006487621151339880086361662966286654285197459542313084360453425678202406524094960400270747514049161178364244294372324727177910518727739687953257207390801002312250563384988247661262029983543062106731649406782304295766633138584166357211665709581911854217328007294259942250340759718576753948016927450225084673478976334138037382859535665352389355264587707675837397783976945826966736983429969253471202187318620513406459679465597259598984370080454298078234062439623990867539282811025574110624443960184104236347474831950401213099889165030897609897525337533023373557675264094548151281617626519736254057502093763522685030500196044889375110778659223900588713478236827852871599020223364601215221015383597460712092270934443854360183558898300277164179233345372213896269501727725177658527082382365004694277117759590202203110836733551413005267047292022943608921335160322929818766133273823122395092044457605277894123751418554065366051307168272781355947362920742884886691098296491953191273955536520795968895819798443107327672696745813413456410172228455882778180702816915223709361050582258749385184356771235442831659540612750031461838853078378651561023451114577764951825209738403804214925347939948365992916047860505891422609349713058476451051602917558235868824676573319225647045976608860793728499624366990848798935707612547743043647628259170778207107750581682084372867414476847028607803121661010184693211435184670261031541960319602113392092436166047240832106215109226959611404491527354697911095457731405855073837662442017179758405252573390560492821554122748679041460327216521706834825007299876141887821278761129535780660413022999957796869498359135738046779870770636948033805199067867812138278300721814763117625429334383780766308357869512949159974722908296941775014407615950069446091860204934372450915784555526905748058386621026567977803775779993505780614665392323727347653727348204296304965579580745010680220033944089888805111550491003620518345754068579891653501796557459614179284189051923155990872159254390439476309520090200627058833509174663111626010206661755392522533848219496866338108054084951339010966956179571068087050771045394689462152178634986359004713210696573503242532258683598625751629391897913371358209014158074257996484881882865763971248533188319755549102433925686266515107402787289367769149099755130505837818540500542037842147603128932508963327966643108659693865145119266372888102861111532342182310159489375793563344724015427333140390634327886690112016908643209814753458122060227301858046543585464328553191605585804532360903986323100838386337689603091065468043896965899397606415612022722495537746662973637341380410321417023525236358077696577385874150944226618235834567407749148854419115185631533333736269304553656125282936503146588372673064720050815740607038141676221846685607728113667476245005874391761923079170793728983749282182234605626824242386943137648384512094889765603408522665248731481539106820239914149940925865475326538701192537569515403464553155173998157669143679184022258325517855287227432898483954201731493513161924828326066715231347904346238055370782921205576240334829193091922916659209756567070590287761757312520414913680720486676179797080170876881600460603140237511570497092219359218406804545638948318577363326509603055965525378071394707286070716432401102080715047604032427395130702098540802849742985040231506332078697943560048962328755917852863105565938808614390722612446177282669248626186187297077878165723425630877173317584285973659072792239719543436469477230168962095353898071674811027457268569033200134323528937363213879058889511958150173128782871794198924083830714045143685466948931352644373675667653031492067454799217914499379285534848354541367205073194395641004193820966548009494761158925510346141311845613489159436022662320858632825524031866685981636772029328587117544826752223201559058708382347762056807024400885091307704756223927448895491152107218982180195684535245489400475355096029449105217557983771540722589392069495037426610227134169044056258405829960331677950472452805779911989751244996528944642989225290972684523190693731900370406336752396918584868092405325465180384593447995350619056484902625445638665031883015784204565089489560723843916236243122594341378514549835303241985403342230433741924190757545280012534380940663725928034028039904138067197067463160235096523571636825461531879208609808267793552521047120919906448903398171055488182930249887149524305694843850563276220668575269343120212628584904317313659432930200832527519164485995382984616548814800574531009092721046750673816020860756193996482456530321316861684640730250371252085856375578518116167963008663180757769346564006875500954297440485919322181213856839158286506215189805231971526994410928133699319025650362968328521819781847748732228163285017918990636482801555655220011243347119964422555940659047364287739754208702262469313103765382664875341792456782862533379637308205905577119802182840527636539342833609111194248817564267059986028556927382055381243902852114549234368804395218858955372972688334084793665294099384383136458991838352739091042616123697810179518465080449399729469504399541237346708753875039928122288558361979877809716772905975882016283321922766751181643958541927743959308181694643865982709106697607448017488169294467425794447162126565846777742617926384663796213074296368937829267290350797655895673280712894437395623906205128063952360893526302712653518209227613736095442521302782762412411059716516013252595741215865354733829812647948055789711148189712542832606100070715834401840541072641622809464511493031935123944077391297219105147685200745624739806271202505142790104999005287123775719870979825201556872049868820752467888337898824271800164393437340475295816631763858240342764455183243548771553695074071001203615904511785205921000196396187623710781164412791994690492673441225834823954072865995908742368219495777096344758377566546718391166109137313476311312723846712280766787483742489796431476218865030430049943345055246665310179694286054786145320052976452171062463147038902540207841259648680118432032969852464791503626196563453973020083844389981174862043501896799510731655058742067616098440540950963233523782426130943453784346272108391265233052126307109998273467861099347740233994580062019358174790866869567662945717249872295619024602537356026594528787623771903272751422163478830278962186014634385119094446042378870075929508589391801719628526944692752343793697408455263216970640698267314425787355301296719635255660077713852804955433881369755535581286627036119444768952016401426058412816661167791846364437843519619517880673965904392333858595589822843825262253244325244456961138502062192372321384731466764677832665577618073509198177068529058897707440456837551052598206027851762095162198564343092169969069511454825321775453641461914779490594669973489052647459315281050178039176968590590518214477540802333181050511317540187136985770382414348560774005196468693418332506656002613652930624163341867015494849398935692141931814674570623131814452885436702764646974833034427298743879721645760909817778541044747430247939793172598888492829805086266592033009601061996529360136631981206270766297911393972941952735290514188392917989589202968842098574660857211856176393246511329098610812311237800265314965741500363983599137213206664651849565217647479921348014016627929716182108748653194218692749632922850408297907270493634619472284019896568704868158084975093143419112873096096806712288583958400845244063618235566705331902872929356993451164807535505205829851179242013798453616065107340518081517573469890650574664225419914642845545357511929943948956907640712203799878741383508984646194171575914844337382153432479936361231531484106838181767653773800733182804642068651605014095236929127877442651245445279297865580279137185794162191160112165279676896344039766870800315379808499754853818139431099420297395120589041811846368397072086745050816656141552156380143129823829998114341676607668854740216340437500509929376678064811057307216706323938102235029228658533438982811307009597893960929008814989328638579393829442450943715518631631291005199838141808142712192962230166045267094647394634259045276013364709835134664434458627746058075296963861866357281244795251935176477104257629972939608573610472920618763550854803535121876806211907804829735830556547466163950633682686984405741438844535443436861319889918844275549091903996078294182543745424776666350539747339334079341991943795076784733887236352699690460057942057076253009103454206043823173860803626863275815378667743852690472423863811615073238533601395102002376932962553348836817551421293285374060185934203192668229666345958122810243510226036610416576108707160596168977834912816375110285838523339596142197453818414499025091486351753860694208500491546019601112552006377884872586437939499089838734548048346370853680459517274652051263897396807980205365035967275005543483025187146889216061274317167549104940091595362210455694392399090849477486580047858591273073509143919052839189508140391279544471687340476103998351516851229245344489427732624129093411906425665408847024720018199607061255968783525202569504963243151823412721913009135517419139225658294349784167935267298307362706331916831498469155704627266836832702736848152812898782488325075922771324800648605079581711124338900785009758741196388054226492613449327108577468204495179197065064930763484065057647722999104872317756338007222790080812948175574319639010137545984838191279605978029281063411964736954176163992015120539807184718263519200105927326643708646901459841761799170556748979818406740626129564437383045879663118623915715728530852411892363103916313874234490586935759882015162897988081214507550953099352431202802853849521442861760020129843057995070824121765895003413766869466005421090646692216285635723452872373491424426245236844054097109825422341095254869996111807668595119377246535584610932926214790506242045649376817942178372837827989597678159551069432748018988693667343560666269817673063382915141580694104159088480526169299505375354299553079729366773978960041689647356498494954119351179655478547000032555341966039191872734131205155116862632043727121950874253347484707908807987398194599274644940068333605224994769198780517454514259258982908300704361405786255779460137174220886227418371883703748353733831279196559564597327744677993758323047865308958831845422605835513207917768897896439026278764285818839066782556577381522994486196824229681000741098485184864968063617184395615288576660912169192263162777331830156098059392848549161507310393494744570828623079833246845158395135355411143306703011407238766190084302760847697474776887498507905316415271009371303393831908552523379735092851102038390547337628689221721440320927354330885994863157043771214779917159756238154750263840654527026347168858428019902808503113317710493899033691447063228077589605843425890179713727042900566260634784929760659264161218747736327141105916700660449722901388031747765100352242753197600321865394799722224870927731115674744626046276661485611294879175237761504127440574831177714941280499732708938813315244646177118458236868643149662394686117939431529615588789093269229109851479540202834699842828992550732046298581334247143597135307954697823779036238422699602625819241773746668364472064519241172020548220730428756042146508042172756821014997224472445887609803642518321897379486220213242379990529767259178517487572763084357287106181921546449914632386269404986137120071293874342745983034935501352323669775594916784361437290496450650518782458967671759106691290978139961965249045698218001479512105124124345736704878155486244134309827340217353317996835285692027333223042808168709158169731158619791302243207597862798467251562895691164054615078308536976206745677224602409245031356943647510348994740780047800172225446857338359666580719775142517080653125631563464506799408757455983974362358460319072842437400550362705343836373701854924661588546089697519283801296694855619321300375961325464139896725497668789394221979498295646936354340749386111665254357027615342659823940802305420179348069735262208178426549374692764055161374185929215035091494816022228691475640291668419056957250422034075795675441878423207805896136406502117867493294559907927842450626229806298426906927182722661892464866172320567134346128938688025596511143791157854131352462896064804848889198375106320860995454159586971111818864028811131284617007762933413052491245434468918732217138437448561970990680897442728030751792046380788610307034447849360886478336456806154360652385121324869334763824489293628190250850880232783441790372696998907711640757823744750292832974989631601080375768866482540620367108123486501807117841830204325726267518992486922391849595427437713668323310179725361289063953826485128359686763342518681346593377866640006780116850418537833474162926317444597487911828475078262178629968255945770966134823128347212913299190240188929508798634632526932258153736643028739722391590044105064384226121410204947240684502344151585442435406615638391041478446827309928953016220819251127000668743259246859974425117434242629271934326310237659914437885614109227215696707657158637861498807001998673607226296123364400958669480104889425332467755123989724010553423591691330171346029710420554503763686462660632666355833809709891549016281002414891402912982307283184793967556885290097072309154399080784826174096557058324520991514246801686425600330780415652978792090544116448463516982650476615683315556382285500534843184973628062130227813412839689901772981690268854733456658217706841804015741514041244764905022813948382880353514598058384903053391816617947373335456966411145527094477054395515835073971865642633920288246479447249410960899349871170765668507722888169193732659812106315982097198851007988465900203882266733244811085246184564621292754366358125270485381612879694194318721818004245794649226717843406634987008851621842646321765816430072457286867726246123780969841124371674796541605496123645202365625828868703937621911006911063774001250775373721892584585687566019084690889219012914416875577030613420571167596376503610222480221974093672701720691283585601952905071818183609866947280657834544306612153817475580978645059705125925558995056651930054336487569047322965119404450408246530963511345222012451051248001540611356706337590051834079582072333881689546516480338980840648921317488779451186104702278061448270048417468599863728299965002577206217701078826803850818997150606495671015872753431410905109682511226925450747907625136696216482625100476236344598177019723712268758629756824411586354857327885773413842745021914860013981568872831430605406143106384869938823357857360990673171995870092932606158243548569662249768127054100535307968166085060999534542634119612226240797888608579085862336465119195599026153627432751937125084486149182427148939917945322604562833632135889381879692535865859593009372622836164195412250525398814143169588467030822302348902286272553948776051544140215462327917850662194386719575401618728447891345824101931423172928147296147435097963216347672716842063704121440149817492719370794534741484690964987930614921527982614476209355979316121631172043303337637784208434331647128743101763321644352176321367146298221102380623760424063804857799650375944025723849987639473466744747499495989553642520133564473176388403753935838174189722641913388927331498279836328732043537616768516558508548746714672422734412348655525918679629632062276341367300096927806248538895182664400363461413403654055310804324635187038702451647207124657910698663494670639091193775021324385979330532294769999426222326519618075381857004868022535529020326314316884823315501882823174922438471732174539414598103392224141331352633357811978443892526946943820231004280905734248293051862577492040099047359462196171908707340338719442752806300728554629527770998886300731797908251708028098090275086521090540468881543771981389864093473027357233617547313896322083371508167441783402735969012198054427502459978729733155788439405957942877278714774864251070074913483994084461401122931322034925533781669384223880533013035018676764037207106776430318601203109259905528656897208306738607284913001639311839301778685770441354672225865404944142389677212071549238895524901235683218857360425098629301559260825891333482081260052174236359113287726830028343909750755947794189237901692577147848008221244539618182599139875750818192911461832477131603860208993575402870080294468968592004895887893065535369088389691626649575045116180600844156356351159962637544667874224773510738848534204169404745554787126142859473571782569303605710368556865837025751227071564683201804220755924364555697388920473718686040288829624863895254791977682935859927902234010985300971601982072682797888835009115410566154704120366524257180159206763037422429582131560684428220991932843272696810884864691826090609504602447372373811770265915556753311111567412715256663955619252044055292858967832953328076915251607062182877519156599209762735645866521454691940537219301544783549904155561111731566528329749985383369480140533571523672908937878779555524880798391356577825836289571227896016886531237050054787979321040894001738232447083431986373999612582422498640485159726391397817569837918637479024589684605232186272693089460371597068353723208094381852682155645104077229443684339085536451555146677805562370990065877781106302534987722445519519596316586837714135888883818020180805529622430493464246408535865044052063602006668331574738507519314299057863859081588104334646159165736969077287138549512657061042702592023226798312364120876974696117679699593461817944866049668483039250683766911044502988131316250458144216935853352142306093723436244069835203146614316617025600555111989246874079190232701527004992591130642105382238209116187587513603319744792851064815453496846989748576045284018598284126786972343461398749267170669300945917908044380594606595014848208802868073696640180347450981065955233116241594133165336708584004499347227406668855799800134901134902533908852785717306807563888235539279040801061612426418186444148693313272957137040682394299622084688488588561150278731731020644058074346597759832332824473965892474605966355760226579724639869018348619518805914664929516966088665610468739018571696082989463268462532285487825646972422674095095225446194484801184323052073675320586465627257300866528800442698542801917635652808891053267474917771297646283055506895288892571506700343261041451517811049762838642006213945741553681372429584549739197303497306166497799761074064001288872496042551002138083753744155342883596833757335520541657057304660928685130062182555000431021118823818693453411645083274654199837110439161386101526464411993768777195604380734637969905608305623025209503793755083951860465878482815646488019110114370925754365516065467067873513323298094099487441483845543606677098715037577728482210169568623170219010542319089343942189072495096130257005687118962947740645129340350933075964532794807661551982367747704678015467499268928565149314497794027424249514479029036682292700242400850200621421661774281239063806963641585501476059925961776116234164421918814445387432709443404868055336776636331914111255887808912164758823028307707182837015590118994757858247694075914362700431390297285764513582534249702233994321607807292813817341702318985096020398224788999020947694226013176166180593933659346234272163602387602534028434780712451739918720992854941208978880833065686937536746880187904201438136746560514267716441908940392620429668370782838636226406241439198195759816983924706569570234610020152080690598907282533266037642672483788056787793342710773496338590588841578714016581302200684519559801488116050827992497542408421197874419386182089303169614676716997003996170862508051692337237708709604452711432515815106197166701815108964473351949589539594229145352258614416179346797544211545602254950408312069491350779257354006061603601104719605329139233614925143301792491810723631418034723709447676237185255049443891563138976940993005047428820792956659685678714211254199782390756756167497994809176957855668647981629879397125973210029062991900212126128436877114851653257491744062876529840629356699380027428314494760498515352673835265310580876011738600575355980254482912593161841234074688115055644467158071371638130348820207040429772624152635213961330438404077456277252376893943087913265354021195954653261802328091917105065149243347880901542543757086236760506124031938167986051930740532847802926129827112349032171464037079804330043086095318895825490077086450571987811979563568206714603370701535554732017957283733528541896207580606905280621777929534624082035283428262805922818785108073517538638549403600815114886649332707929369195386264494673851407324221149254935002375679939571628424344566320196906640905247227822551045360502673389194728699482022999214016559269076274565952401235912957509347626491233794446765593024492211917122276264715829913434405540647487824394741780576733206883452248550419671619494209631734662112177569223271055729122272835264416983831408905533912991789305902143801494925298782586031560020982782520980924499401023781117491949398163141968719129680658449318493369012745173042315701524410553039445510684462450117826616411056993925939818928200400518027972775301039795710685905349610617661733295922355284436827491152500837994506381212847152841760151211417411394154788252921491698371483482414359570103895373219960903872741736423587525771462089953705375450474040823957407756387282299840996166820947319089211139085136918073014570686710528693245417057134671356600451117118713351691180569296252455892142028210802866018773650379113915374575616024859291817940137102669837069756302261666139858596289773335014283105499406854213742072487730409592302594499837749421070029714786184055548447719073887765614114070958709277128969367361534487583483320386225403245676992467355176961337511242693112195308673415055058238320571971133841867410717848005403603081917489197445487346464142745609366337011334040662363365649279637088947194871473486904894144526402698527685191729176768406257456237931727279599068388532143773885073799012702352518591403585999115846117276061049139169458669484479732791484166362155829901551910421272334008959255694919297858416564390133397321346117624962008598297326873490307626007902260973276075812721827083845195761567519676683807250330277446192403857409563344205829251824079112029306476463293671931147469610733116901207193294429093117117695270039932428756266867412427031444456323021837150032275118445994757312825490183286356357747584337784175387003032261024450460275810708487931748432881246249554881685782499282591611810810312683164529463583398938710881137501986363966379829114444781937810586942057382192026517977491272248979697674229455579351284967424737608228712203272866779275383660245890347282367619382888473090353780230076871135104963842439110812036585617264562277525347665063265075256857224858655739614512606373975167693195104833250522757960720385843930384897018773018838761771316278471467417010599748790437746992928267087320723979964005884310368824091740613033894466403022691236623032144285167021904356666459989874540947795805302800494829644944425363446226741346943817405259581846661134441141948776166780048564024720425960186819221372115580308844304324542966209074647641739194153825326965650414359699354180557966058340484489150694521228000530113322413704613741851494793343573161309480083721406833620477636195384910932740850743787902109498086377474675171236751684924543439454811833680833807977892873740415803552328539641998110653636795444804948060783780458002301295528120328559911684503221037100993040745415271494912209702968164885217096000466308697616987559197452020252292312164565950475032539343486367599184029268348017872491570517199110842338041966030089213579661415554377212960755270124438860086874124229714122972685531822738917557343325868725757928769928930994023353442763969119783539165026549504520398036517796325069581510605154661262862300410686395477793119736126379403205643506228259781832858246842949479987516286340108764330967310944043137923475455995485538418476862990082872802379761516694411262299416703040005882713274425496066663755052102732827102087964457402032992366532542138608477122903251993988590660227307738069739722314302230051673518843121239083081559868617759686782626364888350527497490401218881616091239110979317789319193072691201191144820253985562586484938067998416525569045509666737030652885290417237542831063452195931466468482188308438182458278399458086031848485949003653185205557507850321267754391000867125282599368231608003521973587627044795134920638846113167738395750067560958987821899736655240497540536949778165439775127005957744340989335046637512149192180778804559694482900589866007197324177218587800932948952505162269238297387457233669683209323685107609157828480618392473369682769864189499471398418431467876103325024767926104640505624964567120533434987097339131118728308548690716429471762719992575069327216611345421525493731888340788600263218109466840501854625735686026820884790132126134427419363978887875610360582356011732820368112491275928681003607418672545815985451330908527173355448866670763063158696946277705282427757054848144117117194125923825054125834087900213024253849661467808276020672462404024506320463646026797724557286271720136523469044892691395165587559822032422113209711065515959519298041328204111390564342007612022017972526931384947745414602384295770786853434788369004202596391914284788833599305097224265247656969409352706720528855663381420558998571127224407546106392226370871032295450753135816883393507821810977345245384094737228456690551961065813501438602802256638892094584450432687861193695088025720147847162815603943938217492259682332503786610494495092361239971821234072534022184425067572250067261056416057784725415258658273398134965548362777888259877457103690715283640224494741976336960037341380691587343190659890790768710759854656329237339191733162639127764443657328069891351066344565967856863392729708049047687969283335621970325663962793058336537292427290135647277613130746396958666656683594000932153887199289201406507267647107892196967685382847560480449089142128077326963962073601980938930156679459878082082438795025638595728161611637374961095124167250993942182893123288609715846208626082560946688005316118644208128916775570972653439970245414005353388117109986699733342695504903517533092276273419892569036124684098029899755358064532686820831980505999389078264311986835868079103688169722773545931180689859613941282956677667408788182693417692019492041018981168771897648488201717411861691385048284369152189550269919100915196422769297368381768809456747360446123493385761812763731169521603665380606041622064490567532710425491501355547606504816165877325819647184485839206593566711871884083506057898894771879712853531233083968474323281621475747496171727644703334617463008040953601884553002447795081201912056710974965739822673446786080225239933150793134539811629361207234034547641537461365433043862134736385784228856546256894523949718775684468236817148359761873711729673994115065214121546009900397491940442955728590693774327437700589898992310512531367014317206321362964995430704771439725327071776498650080221885045885780070010464111566195936935928246253235485623388403730969046605716656095003111166564282088003109591276219704902680476053245568353114989644333308827956887227962245487011626530779729154103798635905587889922529034579944969897800197390575865210861586345341538268830413324040254668663421049372028891403975536537138244360675459418922953137489975739894658351837051669605385778832383608445528345611369554181276225317350742971237732754178805228136429753656228065118419401521319009081740986076510201451853288880620489908701089422179531826316479299426285463628342037641613650469882855108905102186474121120605801978721031507537294575721302390362354608559549649372813262541393960868086518568645697813175424764393492612446682706496517678991450883228941712300977493631325567060992048893079897911819759798610739594763159875580653103347204241477791024841026714324088921780336047312486201639830922067917049548978791826588733966756650821246042924924839589690711440736390068698412791306496020524472473516139699268218820283969027824021096507301169072373670256312198007906550791362796921583815124887169479354003585414668089948261910608241945975795097118512633090874853537930835896789436296648122251335437994179297406670845049703739759686125722787775977879872494123897469443958946649884313215365951752530557407653881541150012820118541798691290753619806191073435289522922545610214953672200636155833312673270870605236744393879138174941939499540335241575963401370819439036288933979738831728876003944831609116963671784224285451045462033666310425082185061886991110345774916449498347851814821137931908329156795147006063599882209137216821437825648295603460289552177937995948186105111716662320445206591458528825319683937016259950908785567681692874658997662857101418780106835539425871968585461018156203219828362898768208321467479128905959417850576083364012204406296435156561870088336263854718784490182024622750525508211621432629756256427571475814383631203049478097438394494109283498702165862185242719982914792300134572003165805931003980715519088041990853232621550991109859461766574680692049551766813451393724936451062895409322052432307371622042488327727410521913974290886805759208697441412061895164209770637958366374628558077154680496844306495231697089757776939408177902559551663456595845177831488517432772999457408608685242882199310220276576511743393883709098514235037295982905994476979965673520660481428005534762074015038935519458449351763316497929961512522213216217191633831261596273974409322043041713011990566706271440350208738776202445942948731967963164183680464622385948706741650191845992262629587476935656322112603436621675923942098020039092911140575782079217162246207174598129647647995275519641531725899415925104468859768644237018480936449462466895227987730797837349507306652760590236072311012526894436043223837943929455458450152763041548040258923686436765815357494856559407797134418305641386391146505153749178925077670549150064085103424056552736084291807010960726996135209039090508445904471375275248663676363734542517794748609809431961353600044738638135428185370657217260533633319025975330352652567699483740953108766249363973124146394592613106331394617206322262811364634212533656934537918624766836266850064626808318160290831844540542227373796551596873150467983714664297837997345661007493963381140075044829767105188267573017580300947917011332719598476895041354630565695074724810154861901141194234259920640815326679817203934430598908732629321355710710635834951381184272763016503460863960574966371356984207048345688463275529215252350072453702853454243478292180126080843276608304138148920691288715388005066672698620490640198570624003954548506043229257959080502797294729534200316616296514155423562655502690412779616482645238563187098284460651188806152978530435314027695796229469985719901757697412444881244168881551813244175164655700011905234682941862314233656715650627956948408425212880438787655957848774122121682097849933575558360989418336464641151800900603871324010060977349850173666356048119735020622861238860371853789671510649673886782278833147041538199116414146629977405992074313394457105711500062390090975390082595113578295216701832405895211730296715939388422143676303496823969206893130840146786466329237846521118316088728366594043378440193207354448522465299939554141898237558601724661323215732471052545593327070189454405283397397695812242656897580044971385227088398778525561965396590672069400625693332996144522484781288005532500047508042960371792993290276034069273146399130229252332180535030578708795056298689952830918017532763690633403348581875892745085663314112052228275579859918227498738019135196107020834303343015801610272535654306490327402224370723393204044017061172988200961149342646474636758314493532838501406406413074409927634918546118837984797520981982423628637789287202769892704174350436979070265091355636585835018799601221346556400263033439639010286240444174854433638985687648626477402069018958278533343641072096354036242257601873231625123272951504094975739508033798112414054914990445575491520869560665656662635658030876385565410304430138816767796833509328257704894352086890134916235579717058329164403850382919665094353928286805509099083608596778723566809325479132039283467718275235760586488909267221452227019863488877894000271541131138503358202724138365447482843930796184932092926059310574231219546143826923133459327651074586747902760662213244686495623159818137750975933930908007771321527190971758479003114572395780418180754112182092809805154104732417565674738456133330449840132327814782651461445102339846395165728499769969159565222043597345789139768833166350816061222052603190550884519753830861838361358707224145751702304951173273245134222984373992900082097970509994382127924733707798232480406022708841715992873031792390704610487952699508957141084506629275318296336567853015029461323882088556558289311469678216307247700301727211803527433765469927869722201887316281631500876796643916989565766394731882987926020546938843239415718449112856675029028801089994705149532769286103390025536426087214348060004792319995273818599363820954233656458222225420091233401743228040037159361338188546498217063301383552352973496887798502659238474621565314260360853051323696198938442666105923899921614409808194397928172419916073815222672761634300120645878894524880114456591481437073672481512675981794587563004227514046313124160892869544784555237777912435837027423099969778239063306932637983188458949895657616570415666551477259655388310078483930931157601273539886576640109232188332559397873247633590317015029913878089975907805962692057740941197437012473551612277346491840470230272524539311531500835726694784323703008329655809180983126474487848232119576876379604796205817927461789943079677351923602760936269295894889573661314155738909530325770185468369791578184944292925573241324860011510937050906927231322632665964320861424791846860153017043779630342229373335539432692006032816284796715958411085704145173145127907318549068063369239570994427262588544914541926052367709000635298315431622995294962089371571480334920730585898521271356205114861073862284119706251441538783340521441592735186415726860908401902803162130518513193143425970752731852268559771636924076440119124239865758980565431834659654636231749827975107781421669914323347658230075394664873418950115544439438562920986064773645721911871776446092052748357975056271464485696750073630664835321268135296451920496358251134021840885980224227797271319183342347826068771180077446766933542261465063465958467915594985555937461533493399910475044678749358104948846559510196051501264022320956882858514002963812931583374182458896125323985421220849956928698767246407430476019056989323980019465325945793361686323531352606055691297356106529874743409261846265410969446118357409710109343067818466184510973346157050545110129442672837054454700961787191673287332541910316538600703147616610274651590429090762535182974134869290301924690980999791871440286442931832090234922665304963762679120389141406450284468608276151383185514300684622628408801312850862369371665818130903531918530496668118195685028949279360480273315187911790809476286612013793266033456650886415192794799863689741880728534942207927741847605183533406367445067882080606094586327041459048236308541725160872967550442698256388789267336008979569512996522620832545779008395089175955549515234670093298207668160740619700858264538112342860090477265135873468332807473884343463871339209553548853408800220337221187919104573936928672054305614420075576687567567554302405134706971858844601569956451971449222935299894906312301457644736131571208964113077311959364948964357765123386908748767514638926758414685771730171793799429632386400302485113139590829016393975556037955914640144590461370391870495636104455437977211443713231762806939636334018233833061646306676015215060204082229207142042690744994528964645018786872731458502397206815758912671825885090748073637365855210162879807858730058242408228254700151986248403638915302752249207347972988323496324731699690078929881663267093193153451577402727287417027028082823112368500848303541264743323096151016181684713037884705362755191082740787012513095168822367336459565961888195805043229438259217924724147811014987312698702486514806156233149345470182372579839183688380283606361111943194340399667090359382543010863688229276507762624914327420696910790585063445786467571778008773116529121002814495811467235085753146262957580084963702858769583127454962223861496316198766848372162457156354769016013960174880853032161459496066915414360463882316380689023645157851197033775164699234080679242960290044901695706776034145834873139801564455165113030631610073420169772219161110179437998910571077366870740042873763531080119777485139553325150399888911158434965953242524319070370102509456764847938873705583004735570808640116920068279755208720286401740858785090197037564392250491059014612739466704932287639057926545313362959852573100361522150812336795573376769185256494522967008540348988037864571481852701267536912734691918917606354787917065005788922687853822904228605108688927139931414622403555946366262037097881804914803878145866198665621577710164865822385547247001488888782092313280363739195662120923953534647121864164252490781695670469797961766830502180510472099270443394406706149134970763791071999039344350482073354809970723214159332458235631457533648163312415656919764099516678183336027321009106273651692590257481100469611363635461099626509331319535851390724927449105394093091944942348984255524410261599118787322986454859056807207877603144475779610274743624575267513408620345959362609348580855712823222405871245542238132149693877648623128001319703702426976684675869016966416979881387437830875588562851741997573100097408989489953667064830506856549067567854898719740432850236379524135994714557119883920396244342079846317295657771386759259606696208681006393893177915746376114736408051932099350569110901647600478258370155629669477140480644335983104633168943499410308604132671885339633250516264678654282465530903978794010917148782302461268944371563325172872627894744118797018619379492451660580984667929414899544761698207249854662191914609338811137194737114661416022417829669785622568613784901081260031253616632620266028372957937047760280534606899044216379404921557278786978214243532799566701173812149499808510761529513916002840654903119293895106223992227534268378897816313376793783787991208779978005977516907063827855616358535905423039572574390348852481476191680592404894087719392970261688424830526383410662862209206439691956626743141753506939056956481641395615296795468464886081066419860327483466978903849995719845755782189381805231622345103635462553263435712277227866920583681690185614014934205498488680313283068932742613885242212445529498818057317391153778878398448683979801012604657473047341790942582142259409968062663397049368401846175657089262958807770057969258742875270984329419000664201948694082945600651909297428510197368678094886212750826785310079084006574063028264517879329011284564377994794850189028950800187099366733631105700320411950961455465959031879380101280600247221029790572509709051661789858278003890544523711714852475254877825313710800829446954066870791108750832739928770947831709110065685458321958428214288723435589141528568122411181018512153668843539995934019124817875285471372373813428005983829419519079755992724075007147410958021049472355074726673284657838704182830508243265422418223733630298900752130301581883145396010282064480347590918946993848722686321683594038212039771727615600695947018508892870617373496944820747253625094937520546579808604861321351000110147410300947018838921034688132283348857128101619538264629149657493305830449960031903835146229875934110822306822265967271293338433535100033727045791921631753728782965026905587133874027199408979912525136959747285807117335887828536651788723253720590314967846621885778448581094389044403746557551752595917447935710720345114958286692131096026331323390077825770298991103460026010075161650445699068209391973940263796300574769524290774939601618795581427701184996833908158516904119604728026039134036723999637826260740650380901243487475497027891382374587267082369916774042656694308144758893525276526866210119739754332820988796475637991544896791582301197447671111650746222402796810012093512848901032566468579926183350490468373157536842939883185214661345224539809860007575700183720858705353218054306616825015466015252102928607354489246532803442174705074676205330113628539854871730064949712928044406388936092025378371687683366249904311969383725935798388643450799814163526668534926740861795523553583785276557461325718968999194412028720644055251133347053694987844623865143354634146789249791416349880449052783676737523813721409709294588830423287368596713518258939000988429291724013866851196224931689529245973658476242994785135673129272155142655587111861526866064222063205058810000572243567824785569317556282902003838096364132392737861106258224469630593179053693975030854937730591200531254829434751751355848550808443613973670669517525909809174601777772480226191146891204543046641030575833268015346188808828556810569901903735833092717247202487666604133941690052890358914734949546251101448478392530855693749212427427823832566838794288823587914542372203749184219572704868611264802194652778886716686569036228570977833025154179214663678937744193359689495911306106318562119197619687430458745332414137963266248429320701049550760877065200453551675945247294569407437950771912113583740761699407675036094334256147332149223151692860219250474270201342984910160594554698432922867023197030372117737217067791133954070936291429171192060723602571446166044468218409789214495312311940806877404461862844842914000060192893375958858598219646108449078135072996544369870472355994490033057088536539670200766228462081103210936061379156246817301908916121766278192612721611998912944144239334531762825863018843943406525706598231437553582368272788747982897512860833857674741028833821689854888293696616469499329146121707003830955289001463924776306451510339575193351350146021701334885218555077302415333942536102473643037441105401400718263404383544456685583158546425003459655952013069319142593890758567153999550850971870721549655827047651253386338602541542555499271379405718584581161644733593802084577413704842205266689133286071206740192802780759591035811188360746368216519795579009715835950437246329383315472777080538219229783782176849383225133552337214698498780560731797883445765454164030762400999231052801985586331967307705584240927706083017652752334405498225965617106600018607535891643236446909075161642410716635882305611182590648878771397369605694787184166365207680011305324139953359198821780052863266650066867499940001387904158746842483868065274966872877091070936894582693686956572284431463024409679635439012763917937433403522560082526898536843966232847099067427246138257056800167564680930612679643568623102244651391387338161043266279479056467253592601730838950968315624671936286004014161539556523644697222821255752859649136789648449359673351566221046164237952281954036224247369056560065662733692001369212279309484541187374339353858536092862813987347629503725394675430657420460911527019162030298293837523892474279848470454507968675123428061760736257367105310193102289601998709139035336662163813838372908304217103537244631643792056207360927481560498054406671603252019284858228421652690817210029123592424638468088192780660905003096780432162427170853258818237638270693032896710704998734577210566556380177884404217311260191316987442551721995093979987571519334357619320605742502578742551745692112640586663249949841154590782691759406287741421322496106265216808604716331925971088805677827651629726025066799341337769155180444275736471525491443313220747814321636877821328092311765122140075907400360422232828457050266608292324194733318296035521062085187957328442655082144014289090284480261590493196006732152072221662212483172193545773754108771775419390938701448739820618693927834168747420770620023245066238057667881319552768883634601042228790128037347994625254591117107457054083313174461157553121349069830992643216731854939119179821689106534743162069303624759466104839760351974515667071628202400825102259361092964720521641668428111285368566808633006289161837815148712231248796546622419214549532508515828035595075671840246602015884944279870572908788283993996809426514402406999340446853578106176657676498585698684482166848212016193133923835401444288546905932092703148096023562050133119759558527825238104382479889686664262455679070642479052655800526274411921104183043477109957844518468396141016251775397095317089090727691172837145408991701606763919645923105164972676289629320011723656893332158469316516286461648518909703395949942912174276429637118285149469599309703724951195181064727221284793810240862880157902664367723442121216377447560793213459441550609779737710969803560412157046912277020241309573378313672055129513445267486428898839795378342542527197437220996715793837290771389134760140980629722367249459563196362115369765248426489107339334672633467028071166596031623035730447585978651227942256407748535010503439849040219387460606942038895568683333901073180089237695686149365948523293777251510267660944498843649324954822862430739376224272815222251693133351981945919913203509100425095937219275380842183855964109279803501092610216101360570257116313718263500615445842390550291394032504094513404580874091502344065677967929431143244803835844230488743012846681224511434875073068712061081463413607147467972407996206499572065659208734529145654852009549976533429595137116587426183243268659530013352778762847341129027467891848020499546042046354712185797507987878888115642685385953033482671662215046848656920959810057915289208296040880123711867892715522808130372074898029034840716576511984022837161878974516721887181077884699340156892245046569272414396650489261456344994108333664033604421073672175550164110419920708133398880109231350603685431108593120280721251799243466171832309137667482751854199279813939009078496959153299832353155340305438022324677562615681007631613902628548649625631036746009897517651309423585947066019029765985129074109445598574678016562437845113196337636381009734878570522124086040968263797764613497073300586717909547986123099482792900389689683028065361097415034715023936343543289378867984884117204456137255770927972005119876004467694288316171063027426980969453803661137177668931747142850082496320745574153075065924611658919783139882766297185717392063948549786926080287126663542844003246450833751059406254377137789682089880447400428082958350232552946792573994226647503053038821310738942871216441093576469232835842283070553021557026494667579789719440968170934234662938043065618937804785781652838469628059673554297029275188127779918268282052306162471971443575867401238908135461426953697326880171853622324645919937378910827987454958710326627512140486846244929251573450641880851369129056838221491698675320810610864210574676080178740962144299431536858029686915996425892171220732045752777562385389768769824895051646665746215439206861016828046787381619841366693390670577866487507571675774615758400283184623450211375876546287911636967201071048475325617145480462857893209970884354510922541891934970886598968566112088464225959248828111711642034147758117020149147533929088190335836733291815308862318112843725884591777834930507234736276399124776238223514886830666970315940347838858566428105129841566235568835052986015820936748145663952030370114810846259521436413386205747721707705013497346867019726724811685640797442708325130047976844412862022312576262672309514408318103315953261084485733162818987069091374568255651554351433557623704236648038784042694070427510297206830153973494636559702900618283686785078005828768037919726743933688169589359057986543978592953096789289246872813825088671965774927758247719699382102932015908500509378060930284111183866082899257211999589539353098648652520552419642599881923355910432240967636113878278996050873091729288988134426586241229192447962447067253603207116276282293657844925680764304710695208331660517655325125256745397192138824486151506487104235306119933019562456015755811250917816250431431628047005303085461355111608438784195377953410958006421527380915926232071997781619016300079132525290258993054267934552115204083917531419442342815943248092208413397468823549532556692172183452010940495970544090353093992726278988571107593173554290531393283929300014783738547456753659397038296436179352414719595115432451055958359375666771676758036607951751660730783185630986495943009595813648287118818436922186512312888016415842890473212419795714899738384024567318758098573539174211608985788155585082445575902362934589423184856975073092111221219199323135563621026528245227796250050484256278077493273597494937603280815369533282149201710346715395394029216766825159164894518831564758850615790746908130024069665081541199760961392322498572373813668478831716221304229884089606817791936863185401819018297490273972203026379538594575137063610286845825011332047821708734271293761752156674302129480487953151285836435790136923374538036142242840662290697756256962091288816015819096207056532808994607922988927588740001780842111114076079494880919304610292624662553730919931884743123030900320329019189851701586268000659746999402316681575000097566537408883717236304184659587302484243260220343403934988024147861847422687564662799359815830805391885853923108578681645662036490323764085577115836971216057956569350585130713249289323281814820788552850294298456684303842082960566227165437238353836246568327647421252402264717819302188365973088921184089098955885394476045178426840861289710196946127243959090156654432238332153799855324931481657747580148170529399017403785558024312054158513495663878936617585069986815630132839592781027918213010503811250495764702091604592829846881335823013551795818150869225721481112009400366792492377453891758014533874694846874446035791810216760795839604693660790735147739196617168224524601910283015971444627429399320549142344498663842522452529035660766636473357702282604969128811864853501914266196074547325044036433981040561730480918602115396048983087395492544199227643263589942277357833124717500993277828026865512411780833877186936196181649380180221946957904827984909320826686127081030032412103337381975511703777191035973939028958046431355393271374804044848696128520862593441660679038046840768760422185996658657233096956494024358491019782046361885904968621903806258692239420865732481459785437546166925970196187766718922663695741771717312046107753983410312967665957463412342405429149546312856445246062047469952058197427058076906939619580185742967011084712010954180360735089476256204581103073794052399984130148743614326271087028928543720431350966207513442646196034052317158712675037481193262910163198186930861061942402249350158752368968308677357955016968121515696004363622708478665646955617028106508561529771750392135112593545946831372068514401459892101573146679726616202931095400546706495194677874202977812342641626552943244353298424282483062681933162802433677582013608562070416338340695308839794655631665364010867191162831498820003814416332576864814095050123693147368020334271792864709258677086703070388704426414793448532862664972109154675236757315764649856068015896006338212232580031494409922714351463843536927025112101146825420824895310207625580069641196485564091429721801158476356455932017620358604168145980037023211158230677661291387787999052633790410173153097079836900123037311875793691690125315979325219262714413081634502741575982991952154824765302172592334952251478814625054404608172288148866582819404824805679093278898320974297721815174452749771588813187605448602000502822243288439922066424805417753594666932802261436629687842618765064882106726521745200871636363389018886977668479065128519894956774724184419384634700455758571409834020302009458304017890895880279031781713523820166587529171565945106561257349802557268577954987510534008939596628931940113155062676402836964499050979880130366357992370351640654630020788170853368909404642153500072566262373146758366779386358840621256566098513474703083732037693825529328637931311720192799570153962106045518507915965525156445959985103089560855545544018948894877872632922331205631392652876747935732351461789027898921977099984239360460913529209228967619014055944532877325799412432121843891171019140675644932865074936492623739723666800645350169689492234686398000023189282269491935202712778995817278873497888124712590262466890347784677712827767570079729135241581748678736264370147783753341113046647589115260927676558699005653470985345537507424465870014733001368160099065573922789869548154595735862970989567388099975656953774226357048952954593826790990130201878610723564686854473766170674520068418464181105194721690780146438791906492440710612956662938352948089611377868800484881251241825142661786497599626352972949386426545242222414684041245351026423485187475412699905705964927687437189598107137512565756820453414039481091598498480313853157065070047262296023977038489970769890129945273040385991099447229867593633589658159289687300151558196850849143621350748401480763410793399964750776399859050907460947482981290095891646964911825848487355804854404254880051753376349122844182200363759579022186302487626952959174794924388682925531332980326363611086481191982920597594532685351902444753171051782433869081828069736612596078361288496977311215782222557326873974888262680347754017106058722866802142918885001228398834920186906000253305349563899279878497618091062099465166108054152201657129459003635698697608665136683812817971090133571914078390676658921243072074665558151330635916525878285445278284148883610637143249694616772315620526977115987928299587663684229204080476022033087910069409294435587232529202334203381775857074423393511569299679250764584326420866624034681562869496038577138105478528503838173686517337617758217672296257228581913041383634707976932804571892007139926324650048158334791473719211721826378432585072859882910955382933645592208018160537200707643715753773799808922649833022658485143403125867394569853672076302674824257784458330960222398245583620199166420897007538237876382577773322884663761135333571221536118899334221068106258357831239118952557929168650166283435852924111509969998895806243447544404801958799115789356982515173514875194159430266549760792035427440993555725067035659558840088484968031989221615803330610592008500567452990060030976489062705227004143903158848681179157261800008701429712598396106197600061715363131160901168835318742715255992709210810668820011503641861970616299389067958869573027807483854155906821268005289798111507697623969211481877907994520438984121842404995929768520744392838205642032249218855046608474141426974634687572036178994776522483621350536551698370366480219841673637009230048184337809124748830227629517561803065763454883877375571368471964411259024593272871061944737622635175427820732357071865562342598836011108493275680778484822788084664210443059484693655942388023000774183690602543476728296113897494103619962923259895121568734121275669631442126186655825673033718122375376193234297162994813567044296775986824627197768797982631712808020941685032566402027786232962996360886823645530467765513625618357764398929566202466812940060857004340314168432890093507862801555760160012149271124828423143262628901516736349124438797535767652381187551786581909167617408236370121145117790940002301985341793568311424939450320094395777077795961215477253254661716333788780975764584678671876399515499044944323860595311284541347163706226614371612353354415636289723949838985331881213746388098778970464134805166636394868756161451888237308239057023722458370309513398763675987905395583207706129735610590293507884399939837603965483265823730038374797642909096775657512425992818834851213248959264149252652608134237031795991258956469628978769006323524484567636324869889052941825615507516264474568113295671231976127398982992897511797645674601414601465433684588940344189663793663950823591681663818786265316086245428835003043655655662321609452121570065104437451782921395143666694826343615570291852757636202731568931115332530388230386409191352194743555211563526234815187040940345603463066810619510171284319362700126249336200197623241376684038302115087159985860553845888304009544630380769285927205023062684339918334514479445577361991738751360219465430656467385282070864484524472661415039847132567316237759284813699980105986438568777091464157621161000488219132360481865377985926349035440366366625628743023884810372931309666701295427809704988643711399374649664273930966467653377750121240594869886125837538996645805322860576461275682876393929419338231085689680690959499877009978835093837050201622370726193345004147147669160753969160903194760375185475263907317119182882519148283365515801235150511254332577731502097045318292392649084612141940051306685515942485756073858058022085526837238279048438820177524112562577817881229375446975090162951268373420585801115381244618492642427361642680971266471813522264160302613635636646670658815426755711283572304243924975681132555114267195483063102580916886582386715904425690001673464964490759721617607750473543793803615759580657700578329551809120247327951277433669402063844025332684444164801502019560240586954492594508813398469410385171135209495198439039253157350528170216700760499942972115614662167171541715180724461693552435545797151954130689883290063729789976797710730484637335212888614711744958868864560407091821363241384434293146728530515040649645507968852066361399192035826675114210133481617827716428598909215758952538300499684440766731647222541302298219818351252722393690184564738332113335298932078765778455180575097180976370021364184753790102168605923765466094815582816800875535451174899085385133417702981232076526927596524228777273731738839066193082048545222636423596134168490590408147232058445444530554301234027371133622670617605186358890635419112579520076591980771668189001035125317807400439966134440503382969058892934926968367794992658094699468222051577374196418676465992964967622029574659986636784094131755786109795668723884333309529881091643671742546625364856529322080301104987861227913457564960398004517855910008840966069367120822820691871954436615668359311913912717142648516507653933692720211956010254353273347952456225653475827758081290521121187531137008471676832530269437745695952892098122532740966962263397811870235292899451052783694102543306041176538780712889072628396444051299936745461813467529461526467370687372817850080594834725820338979495611306076602283546053808885657583170783233765776396616276507030934535347579753597780894089305191027132498662409612203878949688956381027434332079846727788175582428603335547711359459209853987042914579394193723116405626604353148983936740911970883127657114712858633653351283866143667173377531978297462917960227242933239629046484218522469743859186577163606298362853290146271802046570412331442025174350292794897851794351182726346526490109593925234658212914781608342245080668467166633991146286748801314194430329336669548070173660542850994545117098838048574998604683682065565825759664348515430900533505071646148122818509321517005840980167139288569665503902683135568040391113465473303493735184233481351693683321844046488349577301953874747884156013313023480730236781231279958453882736361920316589644760969753369218571846936271058298088705889613539412918793815278073826785486119889791640705689382272457738021115258648475123134299307412439917201613973954461865277296846786717003884604707713106232173552778642102946884529207192162782191269636659376164071113051426315206802714358390571151405274412767831026299934232586855308152871248822526015068410726053293114591855465368355099300777117903121391098558023585019065525946938796691805795022923679953299502393438901955887123373412378569110561645139630774646835910220660741315907288678111547673408453946077550168984220043530826253087502771139438193720471000345921302114391233245838736255376318397402210228968715326022062774433865865854767217631260569158329703577537395360949655962494753139569804003664053130309083434540678733694659287209927199253012981027609904220861444200996887649321376496638702390657661184316954946826221799853029504201232063793533916375957149553064230404309033487695161878835075002564874649133632308778748203454972899546714820818887651884167065725412749044570700106764956564818562859788801676884156649034164721899016372301791577186221057367840088792738356632802860419279146913565462081282808208850687445211557272930397527004280141290494725151233815827626330184844419009235051567518062363815060124790038803027294751898134472547444270010984591532607106655410545851365145248927558490010599163405375916130298674463557334756259376613880957922419978851730059399941020862217491340397894989332759448496379831316306010740420341108002827669707924659329825374516335865453114257929473319533652085773640104317484123703108845437802753260138104673183704776931500209415474545259190164117760859579443499154358669509170783191048971131678677699386534729562523316758001087385312118500981363089746008895464760775142649032078989799940675291530247630472519083757206633052414936405404117846389930433572450366283504715754518482724357226710266180564064677873037734864994253116705988800563951613259749221893607531289543811629234535683773605181483688463244215226181070345363610466887564001253733570602459529711791193382320451396965655022125622089984281484173045972194406042992756705562574163070234154285989947271921949166839609106346991785704209107468774872224155617499459631947314354463145529712081677076666636194567932305492935923200305678207528310082872718620199591798849695286876334089239105065492465429069076542567964143251591579661206314349110394426801075047829745170034542770209981941343173832359884657857246248994965180922387893418931485353881070267881689180756265824483384044992682820548007451266936858708499208101631076878667434488946519544819727015879249078695137657041771349073460390057982815365458530064922197048820329420322641115239098773880048781968197707633113555268122766468001671029643777493398153372267912373627998861339770659064388587723524621199029485675342283258872792116115270770707842500487428881319046339620995585266972325220751350523092408089616852357117065264105468202738577638312349098383704399423628719179207895672414407142083338137564919401697618883838302043030185235771523328382201224378690058587300593590839693046672689307784493519379464422912433869046169268946800573578579035224929748937741863391262005744130032943358602416995764395522644992315707644874594520013130770519070639536195639655403353834993739145341892581582265811690030137367180151571268257304764184760728594147332735260048299476399535599941403833544100339602690288220017991513120245840690073465855100288734584924601737518896452010508541083193155468903099757889988869248731007771094964725395073112110202618048187921994896568411513366915412777293636713148274759033269353853379947616818198756496124822467498831101393168599415015666906541297541454767969891878155268161407042092692134701759752943097831298586603447009006743404533101255308146739166011169414483600021877852566510545932645899818984196752172035026955587642267474898107822094529356092529669510330726251967170509574981305542744197546592171585697760034721072315865180195611254719291274777227347857861408662784671711619718779284539531416867624264882059247809963989480063766574666728826963846710163387665902905658544288907808726363440374775182990053763021396935678678155798129830405305466601367037588577208993110636928484807198120992767858259198670067384413384053421484439887504677900402101494033998930699638975062834540092130431639654218597906303710946560492795248248917010702338932177449526690507470403039963114290830174843413989749245842671594614838291616345953641514485911353384221847561379522369650024912803559235933302753337861781226069779733868113922717229787529822796772397782768299317067319886982139027356228827062256312310867151303683220082590087348214605437173354415757524713698082696892597252816270315055045280532640264821480992738876865123148844700912712050139080370089196959365828520104568038030708698435761981172952145075349293173167005157621224771807695387755861435639012796762012599517735070570100622920429152375263603788743417556928804976859445226262748540916612280987216055153849237724514692823521999997660124464291133593933925380876846602940917377792990949335821064425904582066430118805804183994921179986067275251561862448531792836490902145729876338015630683981547224226706779957546180041685532589604185884978015075275953615698821719497446472525921027670068936020803663693240289086403790971940695967506548700909279848566162043877395335080982981876876090270701552191136872619428290212055172625578654151326362978301319480432858846912949681311179129904768991366988191791167126327030524878540488888110043066467530303110120928577662320318301645834075690463142653089772462029767846096741331825864570903553264225549273588140035022391796499707597577207905250061564022735327242624911458372888277594937020227323407797660466540889142405759057893726781073302483907618864959153032870406818300416562026199994881387659381496621952351927557880288571431435516429950955854404300527529434169893804308264082734738419576863343402394025858603478407798179474218259063925918533284210522776241656517564144967079464321653410341333992424202062072318660717125305151383353936678487624444664894045152069916488055853975211345770924296948149778058897797371312316574530275034708850313515279736726570157273150372397100318231713074306901486323610541297548734822388453722014503974670112363528908470605864461091913009799769475724217793740785662460438589736591995296902820975428202910473973014574466494534481967140993814379091691343313465203703327262572780557203868882417081849150722757878681887738526549536574224474888552385947337337553560239286007333536156106024029879847665761818066734558131976986567584027367146225989619457982284034753833630877457872264473026435139694439811755017379236579045375099701902822043197324639760906366198402408089369164439798883225908847990650219177030222054654131173760373738122276378513341239267429330076155997856236126116514553937583557455280187843364474580455709916608628712775082472991315357634378627113475904784347638398739656113910577932093970832336130356788449007604846402184772651438368270893327410640345153035060698900852206196173590230406281441731872982700159509801137989234528296343257080926114534398266735706055270622384183006364147957757653208856046334594347362915093728710131548357157329940454454101887330016299980188812345698694249877628430600296798486270023976772659579999500102419851504936958972099653055352121896822801269241922771306510908138473090001869270552799995879124914682107459066919410713290003539952154330743671456115408501435467880048714646373564314326636643828842791443768078567079781485598824908030830636770043830475436570281069076474563100407338832765565268563387906895496324834040255865467163051696920866432905176971885177961072885797636134131044393661817147967833852817553152111184966206956358702110957957584873776417434751880517447809565735892928433925960919885543553915105241174680554484965687142598101354098030542770417327063196246664363427957316535570615867397010308718333798555855965384726942478119381607065990390091206955644037507742798223018057563083811793406543155941431754452584043706943259822520851844074120457176754807547627426113628171677432469576650607560644706162566582114297380701613993829185755791851154576919858156239989650921299019511893073010456509189067676429930238685714373021146223663167473506461871900543719778990407374771830912068194504415745400377439733776206459129658491920615941977264065935447784695089783029052050514320321586228663442723602413014258448943429563659777859233804501691602605227794849525089257764240532477984223780581164189382239166127080954157592084941616978179476747520754028557467652000206627153248247614056091675213179096489160728808035184435249098137373153008810590557559948433789843631390834287607906654931819992383650914245501888078780402735471594287829525589351779536982281310119693736362566153248869875119506156282221155967341184756666729861529385187194180106546412173997161327802720597714980155797569719778608276640931832692030631217473659188065307476744916201219236828156947671289316839740840119805883193912992528204469570389432949058563344282664203797400411855774579931877507394568983274015175799050459371092680611985664107712648412732858024484307653527740795694015260583034659989664216610701831907106346213967406556999757645115196403257259911350156484753170874638768722933778391937681632786330068227844484058419724432398743495328253052562391591322272213535538044966592189281338572580304083647407350765018591741319671624398385107998914941867232562899240534624255930773053647106897789435237321572740012927502596339411521963944571229462824462437345866721395826983449703545666940137625565184532803569894528365143460923535597055929508717536305059523114675412012058672690734359816255145772890956494338284970410132038761032255560744289803497455632714927051637913687434701583411742091057698970168620705980406725620632061447467331602999345573145190677505946174186021225118895568707633075243653009378259566557166498492448027222892577071167329882871361467122627204856236320500736523776069966751399360323720763575426686838672411639656541453277938992363435489730730579557955082064863520180636017235359087813968308141085492041691026799973386945936733067299758707044686219663141256284299859705886187522995419449337626703103290697387220448798820886911836089382880865969146520780122096432923533822814297312511079461272583450057272331649248504289279232694059422178867548919406282297212598062242283029774684444223797778887774166096262580035893987884075108673484294980614544445264324271706476668317377895620517859950403187144814508186270416864850892744037160771526789976922385115101947157001889312156177794820831376130490343829295549829678308555928655093017360991928174857339204230025959106039070095541168397893100377212342233488031895827427005803235562443341062963461890283888638418025148317696231072255220667511058495738395746977716062273776942364353578771059316834099328221294724674226312458423614460177030093374025177784212678585046380989086694282046801937622683075581824950678427292011209458569960103330889282615567912068632862004478770813769541135711291321827828379332951226254492091545845126390479267753286383222108145058826075993219011729451099360514497407034072587771668775630044744859108743999285129068120653867296076735623679107037250971201193554206539149596284753685467870075206617137516703110237311147682755012011692672483172005958370986448606543685034249853166068009213038041266445164248897932536883753603427488058249918670808237331737075236442441680567044429182231137777914014009313278125925353242781924261459259268164586132480691848013375489543289549597875383259541121159194876628926174632869806527087690151220188046952945223176515215731909269096660281961897402637676619668304898079324708911938148364657759155438128840150467610577333602192418120725310412920699783209421461633477018358736647657711157362579819907642631184689357993503619521047925444376349693183115177509165129060670468592852631794814959393460806775605371784319408788509077108421381189090519868812105889965856586826286358050202611974099310077967786307305050586403646213945413887470239569052410370918485398849344854405342899167338809811132620276387608446970729000372563263585440538977202230118557541063096669080357502635833896890178855342439485030443882523181435600776614856408162025261444844684118056838150930552455419571287946760158396734169613926616349300730221061780943872014372683693196513235794337199891774633628297170826807203291182548108963824456595883104203929267985731339883162661299514551432055786173882991741980541285855497777025414695355896774262709677075064520853135401758329153762025040873322390655465998491495549962882114764820645557991119115254030057057350058804391074139690325008583469115563176844496765571821476404690491145244657550064864213788463201390268855631706503238854947845697507362220581006218578864775914989127174656675584610529246383081064221212371179998510688967834118285588426642493904029219372677448377332850873099729843190330203575472800721472136893258903086042205185220630191125020021249351896602497861017886738342299256216425310104205231457819304182123588362824373950908086565757782165538630632215853063423540741649295294551484586274554312867892957552417152574944763701990434517776643333119120982206157045548275518228319567199038902550547992053428055389709850148908993200240335951497661687082042294439645042998073525520057598657958367850596076751795190684244039054005371271348670355715858378563936670654558549381204850448624736393758203885583494851216235726678893793667823722529545855306454669680722062168394833418304487634673286749349906895279907836611478143354260221364157178793023893315277236699975993979134354307136371093909798699181971550935895526046646348553425579188549335006685291486436860387014887319604786354905236747027696507514733396195088089314374321570373203722150667744238710110400973104689755330185243965227708382801072480211780957752886666857865840026041195734117562392120255052555347172379418838773402887565785386863118455996785318173019878287587962821326582139189699176882828381285399704352971194710043552004523337140704556785896508528166506281359438325397622213919861115374494479652212120911911336325028183812660826678590924163426638236100358374274257061236542942391280580511583016697509639834100832719015400530153495913384231531350212471299957143605852685703784965890045696175391309186265366531312071901459559493890168605849890269989972069523213467369651587361820788801127498992162469252996376674899897006982576716053998443708438309023427751517263265221789189732590024175369618259774706696168579059269484412112504044975669520166702476000178831308423447937224433918548831735909322040918395588178658509800128911534728073962581586951194590490248446254807333911555426695892334544249494156675342213979923512208393662734706961239020485213214438465233743873854400143607322998178944584266703179450732966530611585929609527125130260461212739161659678128735678221996558244191628910726468745949488961271008711230143462833579753329438834007782543582071106429165817066068304698655698609226530205563665424998121771108683015796882015456010078039648299343525418342814494746321459370667048587716567295042654204749980673429842348126385158675872047047202800759342068921976192783884415704238074420853755856638589420791047274855022074924014381144554647819447427070467349279711383938655588954708016291628368486437982158421245832627280734358237163666272842642388192748063411515749681760432759754792740440854009955766522965937173857188037500550780674366954479633586901533158103147222360172264007550154910702419730989961270983091267656287493337879643662544563811691800282631457825464106206858994569180446617284080523785573570512691581107387216568518166399630561093185423037669215454677780173537104442379086567162825072283167960813631601923342241097984801865639363221591910787159908226915405321353686000202171985393267998570392770517143797837180422012796663659220021537571619817342473090595845884712783025192047927280393441151879756147751268570226163634048003295153042035573559226345513106797235146475624491143837965298414201314914335265126655133531894705909566057012516395716804093189795664343597999240173494545993693507669478095003916420325095378662701815195465797329307764265816177487546334439769938840531515335420031466643400390651212025993381745629864397155099324354034209342454343922385675723055941088006674636678815489248641790171281276620485404585512949908539228545318191226463018045622949050296889891061527546198788878895136537280234530646788502682078437289607528492439710205914964069670842796642770894785027029953311861321169507441896628229602285201008252249027436375165266762416140866207215218891234031034666248753881331438715430171360757676195109796066065680119411241624666222875376960944715251841764742755034414525114396999741085565274471661608008227901909934382460322508767878594149434185311958845383730673975052720060628441007118817861850973028379077910168928793635598364316855936051814966164207591956028615833401285357679689476688937817044805279541757468480634488608266623352159936863443071747384444747412354458303148451824509661268617491840851295102538306904785866381497953053125135853159547684423045520840148363321718457484859649881108698548234155820038773848897464403795699569399076769454947464891764130061689523513848982257531635443291254595525845631671050514349863582026475641962979716051674925297198653986871946144903276419649728419418455687781962534329029839748408012651456091200008054555914136464513283133983927174785691092525905561965101282724922832542151855595764069848233034817590638973942973265664430661740896071892529752071480880427680170034404256989002799752746689617455017089413638469747139433467556952523209026132814532048341855337409045544581072902201383815707763563894500369968757017247964957671256864246323479917471993056810876427779662586746207200277936246477601193131909674390759663714940903276283666673851761823607030760772115739588689137203552008495986814274156662963118433397316982522795495933415620216856371493128483659137383075182026974778222683327270862499298533503452723356904442998687494012435000274034797570407549241534722368703406939732484821404156543319788825959367484902339809385920593664274164042067868763215620316905298892883494236218676633387517536825369125538715436905768449833601922956469877861219310425895066607045423086325001784474496649240198838318929670659815228131487064211502035440316885677525916996696345877654708034220878816589378059698069193845399976898608296364437299449396281942947668727160584373022707198298823416228517329949118188385104723321504280752572350702099875722034611740442683003280287606177733644979460386053553862102868451991225001435889921639677132627544231204418011953868180528621674935419934933968308143602947120635715073677389894306574236884275279819872614352117164269438795696566971895142919617784107055553117274131719163570505137357068704215120501923558095334819320469811041412194202043690263694986233116446307499916116709420586683927778195409205709516997358545215615932000010705392522354131005774443713275355190367771783942501206565369539348318310943994498628531999771774614263758039415401813516960495206697065667625188450096205121243630627442345525201291565571831071972104329697294022641598209198604354582314186456038939496084850743090866313268869357624235744494784171812885329550381448398889772269977908888628505972706328787367778503418642697009458777284013019669455656452217499733762083657977267242681353193333425206316404563571415896173389117427852200040934849755578493639511433823633340877793746882316968063821933791074623866486076888636517929111959196411032485430647401236475176117326110489443750747601451595456181457511695707529958293283058728815725065287856509717751894497071112869746815844035653613386000592919012765181028843722892975141017754722879550903601815053458991229889573883752918398804732257656194751014683352356896134797600242728046537787652559024876356283718817218118707446517203047308556996002103865485516237498636129151257002511887045479243054023381835120141085443896849453294646006777114963941537623101711012826607944501332901432777257660602907582284630953957077721999394456784972562578796017682121673188022234058580110431022826195955980995430532270790582984842880420986761252080227365419503366748151526730978349990467308829930758090343388544734449642550283011671183411725154125337585973462673619514767312308704816059500798115393086293773574006918935337417703750793922591448411879088962025527742511298697740959212487037953870219178324419395628942499686086231676305190957458763516263069802452706849341071651621756501143159983579479279043522518340822573953055992951323104769322071115731443801860675227624150479024235010654760871032088958181630886935694584947167257526421825866775673803123525237683417091865916507976885282193544473010366720886246701147346953990202569039551208062583973988645393426162869937326713912235144696741061206205234941630964841735942456510629164286757285667867525403140627842909577887358105708979006695193280638870305981900444415856591322945614686628719024793638982531096508425228515203791861643733095987127610987554064552821577416959367253337440679858062637516434121865542312082930291602071424763182631091612316130333024127384942545503144259847750608319998127281021088322917903771100774609108427574178041878065958695027766517402352264006352374258237493929848416462401557697603764039467649157503384629863710008641145086151211496805969488972872554641427043111360361742743559481600703880845920944574562183870562886241506827207224454025586891749837908161113874213120385002720699572439258361412470601696038548610447176843551904507533764489488339950096673275282690252434625039017926904578304546204611369414849497536064787869113185382724689186403581918983765265521864099335055008233738092842073446139056023177465068551836631330495541926198884521996682783847186111044780517478497947970599465872712385947384142713605982634124122025735876097032755370032498778000013725578993036567858058771265418928397050831930228263100187283179233631501550476906156789132358521097107262481543923463001626008005646591557059410018227911152889386447347666373273653777998342996902190753717332577751005178938659441005457011447580392801597381259761025840027598642011706289225522455258690311353039230029020326221772115183807737983679148751162890712223580763766544624835231602459628333171148313534037135859259541746134816710968407259187957624257946820917659540312398571001813782437797801337897670177172876749674391560773858107050880968374400983290298061154535549873738422500198412924685792803085838135574309094172208125773078274951648490089287386265534681413664838763767337552505082198055533314304728438262290830763400645445434054094769816435834339971222170003341086289764120085859778937058602674262674319356645673940088280153779508509307430371856767403277832102229134609443665562013353862842607994757341630429571500603775038797185423421812429736667513182477493804414486507017610910997771909421761667148784868655551094378357777665771438378066914802047702109786228845541651334311516572640728496975221496030823144561540552735852126612281677918679875673972818307808481886170075791029215094347106065029174801701787605779033568623391731074106342397407814257627375469291831282284262227240400666792102936263379739713227677437970596154268196593406203938445609035749317926444086837672819513332955397074285540932443607244189491800512762112632757664573544157841907231192974393474015277723289200313692898483985500244977023518594246459511743300968384531709997722138302670582123664623043262458750192578357245407762644998871387149832068593862614238142275209593008435073185274238849532961557185628702046760810251363037332237896007674227497572806655614309805736357852803384491333203543017350794856145034972789275244565081043859426552726503890471250553182832529360311240919573800630925743359938869443402898256567929365039041534519137299168305850406518157841320271613548274537478635594396362225304014533203409850348935135411258564091600229167786636365394606081714449944981155695097217965367716708485208957069251137061656941574778399059727639564295381641198144637247018775379960042877822958354712245145574458878463607452206569719739520331223232672844218432403327051964166269890612606125567644874707968578781038216129588374235188426875435159464692550826287281659674262093587721609820307444864589945809098341508374056458364555078264504789878717305090426010153644109345230061183173913189208066912051104285613163531171723174951941910889737953111847205687352117084524198346867388264649585545038296140282591181493263473661580990682750015076055316982542829176813501361134187041564328042705409790337488752814215901627023434596253914114736030353742734721110244724112460982713745045072670654433889469083487849435383345936342633194582442155214947375375868230405084168251041876565642291525327079953370344398365726214462832357763930072602921854230849913318193376959968268321115620908397656675216213625383895829413926832192678944347436807188968699271863693352122882768478756006852157019876731765051915938000864566060211436321211117761081516643289222984237741462638822642399026789673255882776695023877870611008215049673996904323082996813233377397900933026601797491585661444200129731800693746879174890737854801551259651807095759034292389821830648888394949993884021634712304939276218929618890837221396241845056137343924092965596168990526917611389053119078128309617253761265202383350058454211114322003217256700058790210664378387640756434164590112311498134139995572419961861409813567259833829673354741913095143225306963772617661065506635317189017982843078851156916753936723369243870806170298068291175501997228469347948650046192962972944908769410206502435676999351203851742509617499290187193878920755616511187895168443962496619016992600526975379435611564626614249939391353061402844538688240202334849058658081403646274904314787306625574420879564111025895249286614309207704463978279531927493941787550679497813043398146616565933110207822586468129600537689660427938328494228982888003106043999724270465203953997827068860324005408118543828395609596791506046305539290369241771135795639772235455546807723826276294252205903202352302161307800030742168223992326624070403758475555188157637697924799672732415315162098248850825024165827156878912677555817338165496995578479609193248415340690551881409332841166122278979223813847917414295308059832015704558511218587863531538948723528981402327792468520680377150041440506819072941789723538634878352883491526428479622742595338042976637779266855476305404786248877932322962206191725259968317581492449135157743716237031837445351782190525907104236162624424217207666332159798775651204120742771226298290367435381573091228243920117615226438308972522349763134872654571482790215574975134244789429128311431226676094457950587114181210665254567867829833050143922412262803255049169894987025399294488519713334348260576233959476101659720290889960485978585506044013843326089058085889399505729917108094772707635765713134011057816957065790620014295055502083786764976283780717316713404842265702346658015635497302401009393040366061489693546865176719804355603167762672700590355723534456357375599907572775178642165234030342357149153479682510501939886557780224994415227081351257882587876430262690596544302476160621895146472633007384783755135797323619777945701898409195396162490312320624659123685685231577382982893812576616900662209970249152935498435552551235425045438990740093709246658773225606243415398406644812562389813923346005331421164714663744244410503402021884845448674113044385589473469020769418516953248287255402488406254825428368959174297182340744487201500370410131428876841908583015341823827598050019517854742248704633898109666510277781881443044853898038450978149095515453920970761031375604555326889624093847374898217681557712195698711229538050673213245946262013275126551592083266066642441354900694739709780019384233784790030119218461892918740799385509180275022294305680419091154408651285639582809641494585005969579814224336930920847701261569723404334556982585450066680401623112405121548264030341940116608642548458861569602994561431885092441438749269493508298661230311477163474060575760521351327658196063677925591513187196233683610104749849129973212343478416857556418920549010113469098356494205342920151111541466906047010163842432251708642345137213464835447760797937939718375517588313981345364386682528495932265696655875974966462945830198295288364912315569835186788247285078733430526987651333900152954684470905795537920109605250043817587727804312440104751987173034065312804346670794617474937420421871146691685387793981967541738789104027310426694711369329163227876262192265674840254230821345335762904774395159317698898490379169749717189853400824519226365163176737293191654138672841163322931143364452538029924074251769199865681500389305209481962689057647774853078438425203772577789503284699854934638760864496682403345311941508050625896979759729974739787965071131815533352868985697925514908668376222172936216559543880988021642301798894817272350282922648459373195521524346828833784257337631346844573056478089721189675780981317577708722468811590816521041038647169885111402311766349577776392210973963207485297952622377967441425211244137432183228932754667233134007435785713550512549741367035225355442544719954414741182625046447413540411331867333246107831681883894790557679620412079944944594381693697520097979957189590184045824084258149809638189465973124473405303750171713856634154296311109162882590413769563902508134045037168267937072976006762581204055080582760701536240010704244293695197312982629430388949109177814536414184983462779463991855708497055227970851237674797547442330471411765021970902083581844938401926006512272023784277933781632150658403395852946260358997084564972847930965789393392830184570988972553530046854399746341395485543041058189828721535755950948557711580542064449378934303613959204947607588408398536713569984210160564439779874177115585812077676761985915242154196112928435876578680016454614476910429970862781870787209874552460213651901148891382838849725641837295306382150338215651350120855924211511918706771534790540397489602459028188557616971172320201194227316078037432629642070975204277295714751165859249226208737819157714204818585337971849645894323754124728878378040069003694556515955675246385286859641763100996954000439274750851929219674225488089818449317334143623398875048688136479836621531608328480034464976914520160765218600946366219753542606030235707461328289901021802509465428182117340658405028853302050752188402746716937477601327319490910574731082360564991485193681524323917300132796511446144408619299428980194372387363923002849637386523513545398643201903289986954401732375209498049984027852002595108218663127114588525967207464382515551643808366893864333970500516322783509810169316869954748917147893289950360082974916281841828152985421760138310504098763327844673971991079065532442535994951189293634309272836728292919877000950388122229532297198172631270435245298970515428637042286355679353532002231786932746761526164617179838307978828217241772991063392040782320497712563252929164389190479185568583453262268972312237005986975082427058257420933245892328981973828036852967170402765900894186853765551907591920498919254883301070445239161657305605052438050882817035969259397971814908545020316338359221691525171686592832180584573986767462004949934510573232979010494289478627235338269763702686331523513934864026959952501667745414638198480330351596803227997622714807711910871964131953880885941165132817192451553373515496902073173579968155643899017027077360941017564490191223793611700397805678794494687113489344507912088735122206295468211800555272872771438219729514024075157292892756924160089643976582747825005434011928609941857959651782662745166168337884695891644277005805525795243456329199884287464211657872055371540789444151321245565274438093278676347559408030436663095234688288359269553759090721312088987898353934463238153463569967247691249906621024604238939666590310731033209135123166877650121538902204852959479370225569353217107251333711725696482793093603138846087476372042153814649581324084012965718113588516449176724463587482397528398369807753993270543285706590763632847301690559867055325687023707641610328393147597104246572845151520465324160576316952084567821136075855579262509434133607763650519558181094167865745751355468425887029756100105544976372690599097527203296246406326710154457824339231019973711470440463104942473355968265845047357793328199406863023445792427801397506362041973514943129046796466314888275277124399102550825194638969393426147334219121378585097207284372763044228790390272076935948539359543856936399003861388846970333607936032199385910513402121342455733550240694638440691004498287605420779636280095892468423649882158349281207033740341288532841903458396578840905724493058973538491843966419756663240386936582561497951582939516454924098441671927791317791819436249599580177631122805517348440249433517949592559418742281108802428755665446523911344581110700412558745618398542658831831329903126518571787105335604474930951006142978850194718784273458329846483690208943251097467354292673726114278293792954857304784200494874378155692626549915049250682360541199014762785257617797113434176044015336650166474247852168303402592209003976545471057363768564742608017025508191133654806713277987311077658002684137551739943329637858072993840331433640515196072206081539754484588097126240135236611583388358130955981203535237220372025759791092192096489997646784694283030950463117192041075339291620729305256676629209080275776307026546319444332359561347589663758904049446558384656224577464033584279480600292754275814224114818296808968418518330983497216983624800026887479560582973981311719707594489588629925052995182686156449757388361220413131588181581038879676853804545576493733547369950178509836564420140812757182759310120732355534608481213976039589179700074796387455519075104924361646909207988753422760671076301656917311674464878428119215586321662957339758504459521931286700211227699101937055885127348026395065569067888774330896301268431694520647287859483496750377863968024012193769963030625952180032943075096926254130278030847298680756929668290679258117582629741986401303693695372393615367149943575970917749300167655529631911979121671177773758931159275759864954277390565023192917654576797717839097284925457588405626862431725289582523181071383327580551395030430783673975251280779371178860314743467323802765126756606422782841200309582000940698884637695400178735108858202344793699807906675113771676153017360236650647604235443330699238756158245991243567558902330448276041044118743675215419504744769361944415927483798279427053499009887492333291811725087343506616345995180092189688273785934323445420161670692174475472305905763356029838910953817300767613895288009524979303601699622678758500527916194758838583857063503199307568131986084634020251759128837918750180744927213909620656983593620740849484722941661710652241157026488157508820448396090482365297720635480759179924339834750014334225181637339450937795156229170832498187288220769176258205065676688895577940183941285354897116415016441095964580284059082847688599619610407091147284391012638445713840791832235048269091146602585760420843998837680972871097612494675934292879747948869810766380742541699667428080288393477682096503702776092870928417446624525594301660805346115142055167228536800058483608507386637194823497633574811384856882267495807434952119955155552595822827991943806319307160397788709689603352460784017270713477506856779681203693081614847835308086951554040421195833971105046152058124130545093089151610735462933876457750800036085671217709904245043502000488018528272723108028632952780552616561702369785943751750594626714439999660989828695359836192761763655014915764251224726061366062473062234072882789164198264365132679880888209456005005655995841719707916789899942900395010485865558401958524781028282666218111242121314931015318192582340184179122911751612306624383956597746732624301293606561977740744689919267684819978427027179496609868748092629416359559324061139306143475753438408113961124775469188615341744130380179646203146466562309680349136871574637133707604121213013402626415130250525422448192890853923886409988967121043748218372851756098808520575078399887066157179501923201000127701559651684752194113404849260986047451070750578803225059886144702367562316831645208072032839208615608127479571369527056486351235740162502709047840947417558277413334884201865136577585753679313265184394775251115225504912249557068247528394588711938541543014070099878129917282981937078069171705957401643067581505259862056488034880871291432740635475839109230827830825580180036657450379781840330242729534346831119254108405932626041199122935626006366165230354080741367617580408573677258662607389618897633501722051932125643325643028732017839339380121679148827631705128207543444286057597259365217385012352116765709314100688010581168261322946233191674546135120408173227243845603005848907587806584900611566086459155157763863232876411576910119419001591647987399736127866531954251679897690905650488605627822768538232236375032414703454681104980529275015810020244190849553031569915120588672749817297361251530966252874379629549033929346421143083542727686188004264909377494479961101367601636798094921888880720297749637598156027191009694502417768363286446826560766243787728608586546508845104414171127238528599343141732029954857244702012965079913775498352670625064082107416727803319883865123004040633795428484632930311045146875874299330191580102105415320112641547338283723501005395683590368983620055743856872081730214315113845185169394276775387696809207094403935215049678294757365851889932274212001781518459012249425355652433430615639764165880664803181624892516920711103744268132199082576696785138686544792330351315631701580023657131911817695590120333784135938815312373894165912356513400654396472075314503737858744319011276588908832026199543756304328967481049174486480796727201418416357011024263835655617566613991475588890703790717147277713443282590989649478598558581925879724953753796842771578904086167242855751671086010549341879133111813594499614108941907262898822567606694724237617889001575189183508440096932469215003240178374549025084533667434316902334315245341274763901891602356988964254244675065333278507106448944375313333764150864077216650325972044271982277863535585561596068568207875984403942153695431539097092289658296531946982308787025390716104639770476951107160068445603847165536158401635291594969155949560806041239121054069077826835958449106730576032386352926549579954346706929060948071635603428145147737459149961744968333016545183688163475825876033477308640067667111584144498704633617463577516293847237917761954370191435715451909776159838423241088826729982453138570173833313288031080109628937517579829077412397615671530606001692035858089063065899164940258924277236402495889959942431644796906427283973481950436353144890892765680372788324905062939295835461985758093590827524043299772909207161905493842775799863887887577754991537790072396217237836844541637077282644520954495896329487902197715271411517104067177463021780013137298869113825801026261832384032329063751032398290435630222298431186400660444701789598091007616072559206746670842720890751841488596409882596963663951751938475397057253924735696036153625019816790369865478309892648385953770760524224387721681100626720111687217074030434603711762156843587147838146802771466454290907018855432667162070815114852824910416484825638298105005170999951670010523953676060052154722167120685703383650945166294879508107677204573574746097573530275656426190987617030428767854359823347559352885004844305165305862840817562181658287416405672759844527812369132256296505728432987919605433317108103375661034749509868226120287014899828804936537112895738987754834837423600744701686584331566173273455021337645787847968368556707784626418904647571014073334503512397387179702774341818385828316396201554237504483333814925242305619597281642353980691373781050313334651497386660407203641374296086794957116452512977690577458528316488951368524036220085841277253960521326669061858847201728728078009737826662327962034943868517134392171853943403980327032903184692584852495914687001495825616041255472454889293398546106994512639714200455263235936713476159504979336191734345546705499717200998846222744560338398749569709714193843145861091250368407400384089623529837358089022433146516960503992521862390496926462663607589632046691242578736487500594273567076662565784880754651871893754977194782560777512763942988255457732655846515546480083146857379722806707017739989338515780229178557164947111116010877704284761347887175342665012711547617391051312700533030550344966676902674333145631533577295380206123718790690647977140145828258441434131521626087922006324598897417212909908291237690281786599211308810819452430932130106604347955184819615558099709558173142771498044260818167213891605417322522531467476160100750201725237719670294711451893734033754135973574357748585350245176678952260414544507031042187043133291713274164953676872869785841426444306020497682980386469148683871215719481389246076713892294396613852721452461294690707135451149754343238583172610791371278909011836990831572086260798814561666399317099345197684342370067916911260996420782949985725569705960083630897117705567519416934738870196324055409586755668528387581709647992754384718178921584621072825887553371580775646486911256721475659501518969400365623278568708336510646566145116331794618688840525243295956158591474618848726722125039809004652869782050735668358410770515302451814805340056088741246211718208174232387598654490814766666424265129690856308766966210108862527748446483614325363598379176023402275557553439107190188709679900644080041680179290315509562115951528932918506812431063765124555136406958627433387694508980765833003423973948261286821535566074054109152118433182208556073623283083779055712959683962744932311912144064910420422751296600800014223507334814147316257696914067905397377806895538734732952130138078464213725168171046844847065765064321160476471304456945577602824853398572938111698361867443183760232281637117780538089274721253666401051869041376722819233150965428938671893436652994918791947590520403474897205750222312105640095574875140946532233681740670168370708999524878749069825584838853783585427083749003254635641036320806679913473174327182909452070791869840910049969130358046162352814460823411523752893314993879182528161618182817596069759662564020670045887468707352871651244517212733350763506586859402251669511003993383479920142426191306597673286730637027939624259562126785387442649324864572658972605420383654256029072270295948465246629668812648703090684811920071587359027101881450172073341674945383593753496481031929040345824855826340610713478401839681900077105377266348970722930759844491537155747022311682597118511186601003624011019153608138729276769707240334536540586589984215954303542340175972819208397349058859187785586188132647321514495586960744098761973936409094915524294635852219290748652019879829631975111507422732136965018315899047538702996945836625610022903407228548157621773935029998927990021165598019347298553236028046730207639684237321823163941956624260533841274979213717415531877959384799266153704723576361681296800820557601499723503667874837137047320811755781303432967284475612005150854690267693162938319273938032954887732106793637963128905909288144656309092000312334386236912049454827643009348193748746652946127692195122038796662685445414483360428949999666377906815077389861294614427012585494221634477431629815891313346882103882171111887603702441435343903473136471774147693985239560453021194235744670258259363062398177035654769231728348335821392323482031206806273167962106630790463688536272073358774779721089439449027571868299624494380451112883690961779080058603336824696551336787678628419208367076165849746843840041255262286021804615028271427788210180706842996853925557454441030949404278402817838779898817372891435306758292960349792831734216117189246625487882777396365842080165548811364515780026101052587898041577755340718253606116625114175011216524239436476521377960505513703846987876186365557473222043097913641540359905331527846805473095765842666693775562934580501401693672113611597749423316210449475523074125380686837473168820457879364783812926088916370070564690696720560675468308929247809049340912615868522690967620617212164488884933878892105896023078364916540790507355145242144439592276295325761581461635865691865379103344983537920854698614814270495699674161261273645344666781695775375021051082707574493506550760923098417672023742166926674664887559013533614064592615160065597076649837910390934228405844556600004129224857812143845290102250553286773004418739921075462260081684288273429076576205562805765972415298115081286825018853780949597376824960324142393762961992856467704866008546386728395814819946969534264746244665427494091178133093483162765237079002910350521603589965728218909863994536528903346189409546669980552923178318532652278581420208790248551299416002436252933838936275956192200397144535023117728275259542707124906209307667646465585459376089864877880774048780405553698861256171437322897514814200136269272123096538066191992608214195807442134093310831302136123928567897999131451664695712510334621130004637320259159814070326446749502385642320155769588748515729988796033804390628240375665315355985589123114529498219353682064745549768617192189721520406336217401575468754515608668082118070006033771552925253720120095333432212409891200715344344474213159543688168721830606086291968347253252994079222360549140495674939734905265984684185893707804134589876364617975474895179942753376367366599335722292509941860706216671629340914307563541241989688608462243903031458244951327614712916017524159501052648014444292936742810330555624616751196967688993926531649631624427686882948911833233309881579620557344292509823389538982233083574713011877378023608974273261764012594766974558152994962801999120484091050659201717624392976726151211028523077254844151392906800859753303103817543834685491351585293286058521741196943515422148232740051615063937232598334428564195868010240932993488756332163008059268005713911258930123839329539165609208840922424479361551313875862340973022795843447834075018830152890148033458849830432133675409235993328800978749362047867866743795378498949288386355598370891612158475342764193578607337512644308078849135026351324690182325741583373043100178726159028184910784446502000551435928800776506219346219122691743778633523358909767354621396338141514239961773427177228787002705081271083924858195113202938689776520546892120002729904697065306736128980345853698682395824518208076817047509957834246081041744708332070507713112656436451051941681373289536103940391776460496662702034561770485575767979754716445595808904948608296242805763651606290378924191999002414063209918513422465302286213639799822021429857317386246197666591187249138742324080667135075119938246340709852164282009187497796280117413842590399127988391302052511984192403614502760440497603780356072659886869026822887612196440842123184248861822352336858732289539333285288804700624353212545699346639441744099411851172491102930662533654641585931271341182205701223130794119772854740983039602004845633652071582002730168115569243862968012838146067422812957761415770969453134225777069203053189030367285262787409888881455274409689395318745505192620936636933064934117483897727956039201432419169305625952633458709165202493068258842878901514734981939324592292662342383900878845943626987373167945673937202151473899271288433783789962727822031520246289821469065872039321803652320685633243654417865303316019199052148653266400928092042321774634251931997839426720436021279179176836635318258545396262114356748555167082911868753743238022909037333055645314757466762465203902377022263817954282238710765887720443805223053821817098888287453458163924752654094157637901881531245325996558335245304973515364737124762480649402815139860825636009525469435853228043961469956932361391718748735792967228812806797153437911291338422151674306521035813978755100316244965418357787959797256869981774041651740559450151721789400375597989851758586572414111371047288359633938055738514043089119804287492323257412125027894305908154385182399763641239140292770792447046420078527431129940789337043773835542345817624295753770416852048079034469018037242276494755247110274048113741271148469332810230053116492509144566008266726865668674956033377229855539024522424899732655722478769604529995313395590382039127587308577685173473167356378465547302655674185549374725110994282575169165577199365400369393134751350394902209269149408884794323903417078168606494247123845300058447762812802638663580947246802929403773182496189150013254843996200287549857693242061095001674693119613910552408322199764090201896386934681948905078992555996576718735712264230128820271582751690683652755895421737155963525021967629622183737602873546564577697207076797074894826385498722253872549825573111181425146333214458534466765163559756644595448792617837825819729582784600086865028152354667597824288365189973238884961358972061647019547019791469922730136021576045815312829900609778469170884256315397385909280294043519186190241804325438835901394151561636709666937052152692993313898387485117023917960767069029336235537400105562574277668952364233479073623241903913740163283845356867987925740458114575693089646777676246205724082601352144315886124188277761882715944313611219600381821483714450343336720265214982283324433800928251699952429801707201014500861668193176663212483338534263804143111547595201861933750920727022443803306108299404400673754060391104653987706504791260486054690244679700783615015317997839254085111262633146585573677860459482938714644325366870237611284682066025522557706766699520096809301582060018124212088027159212390145090067757486108114529231452808045906815570641295327304339718666437560712057916123460794129950586947991188521274141817527008680780682873278045029452996722982163800096064830291263638973766604261357337151068183709782472767719692986014891401193702642621290622522391909652916906188474058935469692460003884378205101289952904430745428480201115337840546322207224461705601736104787640873896775931116445295059219322601929830916394130546325018190876059776341984306344392334542206179096478859453744560332587268612965954528980976084828310813688608464354124023920141066042128450234922305365434252040525205732446371777368391326409856127255318697162658339169232529514107005419467321743801571029900535679789862573703845523582416445445010440706072874714858790222387179701015985485027583022094582562592643695977276362577878199866356537917425465401008095075790639635206209551090530574954845787098057780519150716907759144376649357877598628938967502361393716284517316364667175632085734170119716894342873080682611072477821155765325107420905038063255846235391413740423431012611908674657712507865044535561462449200673982256542233549410327953899536536003462173295585524174273834839994282486964632793402719040640393407161688602435499676664127450452260816687644700333173772671489793490359114267004896767005985038594404926659616267543995978787274602256372836243476538046503011106634708929521443802199020432200333265138086937813794405916332129824573855887795032686024913406153487468113845971786778784270274166430504325051200503068405547934377747731845728948201759873892462296673358705050134637204909635257771330364809114559071544804815114274290112038443321619537385657208753304552826555311895951729366591214044596903772282536212550825682264405367415293492888892786148706524908276523432183211927165793454973954634750637695204031845891190261114507398694263266250484209245522681763688875882410602712617214363261763849219190131093980774338824507546396264622957501877887784307351096452195279362256570233640652401701437678152545205406588051969646128056219821267127167041243525563630137963933823768656636449496508486975307648090657415680642672007211952510730389092395125873004495776830784987416147384794371004618520334947517650369436400021365408201912370267199527587376217324625810322659293043558225423044499337715596444888114989287641532414723708813414980385221281419527009523004545635319487679039949018479453540811081602994896308894131614323429177442347327160358122627687584404309522164931464092876095919200336619881174684867459937669531797309948229408552089427235573267864499382884939830531464580841368616764901258349123013826514016922338163169278781293773246349756635405906316256460898980427671282973411932118893431819324389583916940725806633888365566429559283964579775608878774317575645833396221582513608040150147678498313841294768080412581438537463722941409676953670070135462618191082662614709464827413387212386979963870103009522852757651819164173242298445836715775406118077660183106504776579441502651697728823030498979225352053624549720288419441342821105854694838403042968252585872204347081587552933535039105886226898900119737793312735151312710771409111463472747911777617980140899888095786673989383960871966113141945395501737835888386650327121071684511630957977524790567924698778002663007409900130566777707061405787758614224573592865991787272240609023489286897381671334807020302593471660256524116266435803342797374643539350256573880234226548692826762679203872474542838572176545683771501703180464090561927175144095277156444827319505045649006667082646453868610214754090638390385776285790196463850070493294451474935762044711949168002925629057593541358877160439325127940368111590873541877187060130536131010765583023302429420164615708181646736324160185366941729132213622267892543376058904963507998933104358580558982681069552590665683392896354040726332457611197601958273803984382269924324662585778958655868162848182978184502844974549174536146139579461203713030066555220316282988030548909404671340764383274320737856516017537822868856916530498376920180138057597600989507129727677416626733029051949281488860425808589435565992048080785203227869973111145425467124829668247305055859550937151926466380887910292602982624198950721011478236314868756027178461886199773641044670186119996782013633893928288944722904562061399081223917752295348179956169811287904593101291205194254928986986462511894256361447896449004604282375807726860858341462376526882695860003202259699676894686905397786301013254977151247060475506063928145967869456338368133845326723086246935019779667241042039577365694688432218088428504324254200565387550889061288642276712625880288087698344111890509561961229151648160113880203146277876888360949719472181647462829240462325758828101381882695165844401618162934116070826760471041250697649701054417705938429079368879771921556660906539430199535442944741176757891533920256768740635766860841720663572313350511434970034743933672932743597355366592464369422036757697409688994121759060925829839110583648127607382020901068905711528830788880365775418312993201325618870680328999763497968797728213584600328316221625786078776175645954810042010300522308240542147240830522351317859610012872220143449021923309987388022516593843620486201396710514129239317007043942979430255884625874118233334303602203413808943474218453994021962299599647176126995368868761352200135180702012582206123234820552299199542852633882620986969129126165951003100581843931573529414000095353062793464147889661419647486621171793982971201168201010850675543882133759171767358083843837382163789622075293510779152136452755209979861048978654427600868591187891536076774127023407923158321128982794962995073841758286989379508709265354791177057473964376253947440751976297630483072154880362859279935277935425157384535227164569778992891064019169663078691867158770717654453782795898288797372092520112241194323662564773122639694881953081677572119785848988704587634214246586087044781013226226155955257783301247459001703054871547538025284434740008931171912540188269294574528186540171308532449299679905678808586293457588140310328197497889061871257062736874460733705628343976574111759517971558749943234468163841275854244462907992486002059372314969757627044901076132649736055152788272179622449348012460716043042040247746865357415690395759992154978787050210478367350796614256923419555639535144078796369982022379012978155759070711143684740602313465329678626290154318555532874672414935756202486075599792119444250428742083322032336947420505115562245348900428359461774755400862579554876114047653159816183937073335178237600187032545510187846320471667952666884430432408542700829010414322361007211103023458188148742268857868235283633827913473789428489714429839810669437830749311939181930338429397236088267842828577866113934034939248673358555154886650151476350071156018987983678316481849123739346294248916802625616909935255194789369045990023604018272700621804406102686500689975043461024847049554936812095638973442926334861131656411452484923887059592766814844271336610011201593647147628574554424661460743273750938125634740553219492075576447979301720149431037089849323466288556011094318482349336400237982735559292114420001646483899392367650526623869708044393643204352892944935703808072730293379399583259462632651601992220342655860089771691509143219817595334985632405962500250689841066005362714991016035210128038871218232040159012363102122141389666180352116916055407736149509323212862218186057022143123425467203026487330143136616379445603255733347878249103819806541264469128717805956761064999019265047160389619044069282962020315274914445369042935599066224289546165080436822534713347002546144929613612346039855293248008066446992815010180955185221257510069363413638625739875183778380885090502976025167827535090230225382114658073039786969525660380860419893649167470968263128265261856645223391032296509532807389978314074722856395151797023184768816336443204660552403052241000300827494894152747368207677933538020102367504309757676676338524344078315809181670139637578739076040686957587440633630745332638774097936737822443979608882070756317464979845298020757009773858216959610195966528935046020628947153224991767378693752675347029662744778604130182800790680312553719886572325441525058184774077424226354658436444193782812669360396120244899127463740170880495798636403735589570348420325172718903226219197674280358017181043660116014656573167056902857637193445279730814396635364749199273356522242001871295929383754898126844983344535166048820717943949897992041025432502210987430669839791954343952014991123730318202135570836438017631753869722779559011577591727528414742741173046577318078660529913663223300587681194228984900013082648991483791620592982494403919033110814025682994435495234324724140651038001141456589007818529764881318562693826446909492932312608538468329824985557685635993359771095703805732367236581812627583813543526918684512909539771629659288469520616972779706963677405824329561856551430524438751714553007094340226635091996872280559799498795891755600745707640242565842720618734081014190001742083196942883847690494825887443043115955400439832873991948700716268810795693174390458021552155813858250245398140406309000464799472067911278284161406463954858459743281103052853518062200506209466436882364694058849133892264284995968430099298858678944748228761354014497460291525824594605914671525367571045917861175963694774163975161354782016805383926698426292425602118973067380721794784259564559109453780766066800853365494914439501574317425422696998781143030314914332387822226056161621562965641423434007337834357856814260705501369770159833191544040736974730941460955750241216197960216934347494905359800881198952105125143141743167383320048239630192968152025702749753018647347695286306696620456660191787794533365349795208568309909120947609897327066457180731826280726540304325734101676685794253311123438452885961028205600675208866389732480780723073458387707157986843679763883933971681753734590450863530644366756233147734536294747619788956906214169738366627269720208565811845644254600040004517124637807961891487938026775132670912747344928521833225696297769453627859626543141696261957512114233356895082107791848291710924006437736658570581720256202067430246092578456425646517984204306715471932424444032929053815244100578548021768774239583770119064430192499507562941145885450335219043858736609308254372989944808898720184904343288300380441712042577560830728073287744894406768031549764024321850957806926998052033040817263028145267330319233745226699287880387504380784696534162072784115572168253650460599333418205269411623961638208708071888414747537866266390353569395415461241943428679827580386828179766852149400084239070052442928323879905666422914154885998399869659125086734771100623850332756440815050194126012305999347068491954070907076295380346079797295070906364040234957059692120989350880196185761105930972270655768840154233982135249510651227024037094667546772325281306137136123707398962886624335063903572608199909904216213683834500643215968380859845878068447660457697004369435900072400458959625445499335312002621268530824091870913063763652086034045203440323750882670148988929583887607983104749439615424698211316571482826275191547566534392121346214073979908479809928182934648575393459264821300898649912619677057737305627538101614514264166998866284125553737730319452108189630302629075143449010213319644042442754897334120906313890320737645097445439520852358176257565991855078308079655211708085198022337389573061902317148330256161437439328864101879747236211975276244557873115231187461253084874638601452273680997904142299127696932351230583299919124921466359532130417358059722484256142041422735699983495782259933098285075459401623496118838624365179258474739913221433636394080982472452689692371315022431348395047582779379563917744812108189266263209429300093631560742657124902460227005515091014668554137738440425550006609281198428378688624545645684389003993173588186773109732633054550161736581446637357832661558786783477257471080221278635440148597265860435942565674171839419260083266964468862878086088481457305569889046751589563340825441684771063417938629684947352797508062989890165581864729642822063411982026132247742106366412228769563356345222334717570575749769683879587009562798337800539713742224616633343218367161231672880905525155092931224752613456032273361257141827438087653557647791734447122433200362027353625875540452122059762401455483321130529332557245280962501617511747152817811175674924442498626739258180369907920796957390308629427872773179716198996172755541466776119275090489711127571575971241932030535538466540137253083114830210965265529356294288359380287486689547754350425410693768582759239699257697643813637173637450461146013302652751782949847893891382163004830678371193887885126013806182554828055489234643699860684537873121477247751134334650820672534215914669352370820914316675775236820215136676405523086062596220932869403627534875080640721718609526220682155091935969783304030447177117223101876099610198058828139688242114828523243769348109360462482942804884584268332478032761366392486648979880008702701158739072764796618297736187851402786524602760402440814626760210364871019930356601358604007728028045252883747812825580753139697965165605452679820709764258965856720086229005730049377729183219987604189895536432125801847558591706326259179372615300215884284653141098694907628980776003570327147652074899651052864621333640982323353041531746662700634956194949380427268065902995318665579106031853481393078610241322364542361801330341333809545650663634159613123430886917544540774906127440533250924635670402008957536396143389027021572334002329415900122618118202362553172701485706967735745227735887157482114872055098980952989004659730084818382059727674342228187729108338232270893264441047670706994013468444147280524317874573747277201237003530535345291984094907537633413491546942613345186557752182525249012829862061750704207903229540684927976666857528263891987744200335894259922140285270618113839983161861430459595146718729803096510383035518818691883631846449875147377000252673615938905295186217615654755726836956821582541290693904165695094033741819659824981345294518585122852957002274949327043061711689415235731777620393885555461995772043672191410903956277962303966684986700221335418184174239724232200334320989438582848591022928186692517239963480708981818087508967280139289198040684716030220192704526832068072004554651398444417524284019733240332916836768451472051698523108304353558132506199021134871674526710396558739083898682789429978699350875267728341144160837760442565740137858115451005394357344470210588052356937039209359489820524296648078180113361289549765578639434749709096978190375303492207586611673381596335096113832359509535937659517622808647359910371888629506569950651917582863798798909037414044878895745191251975364904463666237692579265270247850264451256810905611154901103427326175568680673401599101556849414694814052606024938563489113761754118843057232124255425093638815794832293337533212178879047854642727715174475067299574573513169158003311572094825182549444306698951118643109291894844299278314243009412260776162336206046710626685262673107506301038371990005757086431260617064226089123601062792112997177686015291120720508333698500604400526738130632229135703115668985663382293616808940280903487786185663424630102990479275727108457120097316580599780377395805596561509836423220422606867529732703321477915823998770329217850628718628175238282600062079404626070117088555164502090732156534467339251637055889310601293990637263120259356749620871830261557213658156348602676511340833423493438488980145602157826809086431692018786669737624114215185969229204251026410618645636223665944121825313601379766824407670752109603032747664237808329017019426206144523070402125202127649112001484828112116352859252984687114855398102682995412700701786719794435962132875240073646278309161419861209476013930871144877609493840561396302679956312127906241062633182800774945954696504756001974244165239055902626703930221048326031096829387260543372060665308497905586993750203893854080474231490663416756767848116049408814059043612196749579203688327559895906455295240338960569309776202412634030570759188988148147723199039258786140855579357028824102845859068844999072092286779116772628302352488204751108019763992083919765510426333334169907422101545844547522117589257211376422734592797816734889961435865518830638738811375162845446420005139963777761728928519177037754208194821110722157423054766569083047929274811406087994177966831430778270743608771163777970291052826302714176443317298760593636291078442318453608502811563532326908090875459210258635593082211984259779886773030073690817881391767225471032017802252541388941595663986007162009739385351371235890341558321267369422804580727654087396452423775808038455938489134555595389563987631285932276224702767206926590913892238292399398524349711561345494916849583127005364058055411080401403031153320330395280368040000545586393970817532149516819973882192338289479574342047086380221969447687570352063413020438331495641792052035469073614342038908410787160982991224547914005524938554698666282324175519919397824394442921505954337282331808348362666088338772824817152686152794222602436280722110507965239518822731465484029698602455981370879730519017057690292652804412446464619697402022899775734609065080523355004838136328012494807886045286105165992948558814957578235958951206291331326210684796879285796383366512611192783797389396089042755139004387127328032844080877331862079432409095455570655737278608112345239697908555689811053402821223057045163158102823432215487063871458846390517465268695187633299571009547990739024078438194614876651882887358329048085207592789366696593223348360267867734291842883507831354655161752280671743629351936585749553368294900467585237302303424213315213219166344076278832336517003846675173738609175903057789890865747204688737023876086484571140363455649934453318338392673956059403507734459282466230237500481905666561271239200924016790393100292307971457292134858728969307359400369600373918761541792957178552915872353925560684600688757720951084523440141786366685855463697797617903740002687383454577389331770624835158762230519913443831350804177902277411215543406064773272658933920444993200643369015087518151401409874077704506049959481823732132384978630495480549150380846596536823951182286990228954400840267068812830570718863391632772298210564068612658243508719741420506199664574207681217963444776870512105447368323660392684830024506596543915423987600708790331950736908206058795656572488256157378354646335548372662444845184573631855198455185926137413150276800230681455848002856170246842075817145700630044903480782689530980098661474432808558306232652383719505271468123555034842905480708713947419766984308679506878638216931915397250578531764617958539301601161450377078515363137097258366425130756696010508737615211560915108156628906872824841185258039039426401728540877820034624523159635136667272049086090036485606957211386071528186901084478600091980205721065184305362718030968423539878949493880690105895914557377537861011873430102416701847524004969030262379821335957091849402256181257444956841433978590334938453338181346385613518710699817926702981795025597331148823248437099815096446800764983882016969567350581390403938711596517986007075430710843942011954583123484633542726904402928502943470212919711468257369601765097135216970456820726416929072644139510269220072288862076495786721083442233426242516083536022548428564011811046639905183630598123693375082962831564345279188438222127957871327677540157164928060429872683318048227182233063982733112400483132656259644721959416220909746617957305722853996207855065184171635988979994705430073798400185007172882399602538269917794027860593240249592441999533085060803070541783578032922915580805361383959514090155267410223805798202627476508440486155414856049818640876561103941302640908915316588214322790518579300866742087732773735464775626524050124816395789596810393088681636398802218176534418919237547097214119039383453329572145245334752899287979097768064419096603306999416210778919469205085431547859020240927520528577854640643813039507577007784360520128542252015234483254740133144802676815457141647258920960175530601650207957210838387229908703810992007298255743416980298829374100361980397382390201745605936853958521946415829603236170292549098717382067524673795002801097633133228853109877398464682695059403063760095518509616247562231438883904754833327512879424285635250485006505350597247024853694850126765255932403868788879556027322671953162927332917693293045969889811171865692557040439117478426435776472651512202236447034116725444767714583851623081341342978855917373546040164516741797976018732238168949483744444988936864485120286916909113239928718571957845810400232561841032294205566316203791249339821628778571945493909487292579577402286873324253682603312060518210463633394950843757230213313988352623545956470743092332747797443528642014729834889638633278583705230740314675276874392278305729027620221076650513538080612561478802253398552195740569315883579465244715403905863120734874153747601245615982453903815340593878093640547409725920634256141611881022519195817087866891775060175404924225539374556948369756493476216535751369769926055201941578380975661632148261867893188834781845225185744920480766310658565767360352286093787015322415774294091318256312782867283124884705308562501001002554038239423203202919273061491826604354319665737789729683356475221027769199662983184933038611687507987391456881150359238966123744864507490507288072092369480824298088128323777733795065770384402157188810354756823419418946515449533936426933573489538954058194996092499313035560944640924649659624630583231021774729774529666377745395863190054275674973643448841397363335655447456773939553327001420784225077128827208014917167216883838300931938186886058744579000250605570849512007019339890316432688662668645440080579159036467923157083335339293544254821348188362109681636021684343441285841289036650313585005238433618590881105523656794301555094199444494642273064670636850918960529276006283103553359881550501436231618547866171418323320869221278372246642962444709605115411117395071703809168131163826405994022385463596759127631972060322074326929749222373534266679108605415812712489123461068189313168897964376079566669242668066936356518084847104308799176809564253365301607677928963677607255491898926644267744323612321895247229693152531931488895813381634824407771158183661936589583779669509136781953515657825944056262372103361722008791096474578218772036298067244902142222039441688088574606845623860057798060700339363258064645299533916798153651624605348075731417793867710733112716201867406221661198258597635981178954482493839803224978974182340122043623374358832374778252838118143528553010109237015506446824956213769181678894337817634856267597266846755837510926497431875283145069023437832987015333372240483816905507207492371736568467100586438598524609885277299983548715199100193952264738163538081017533928062651037169550914452380199489514136733140583155380857828527163668382625744297711406165810490275011504475277460460405025259108760396071906148784379813163008671016291772104361251614997658072952875658695942106097577615245452840918492462016627527714742804918284574759860449098832726359295228509399189509201246004686820232968486928058526918922919906400493582070752159431918533048217012412115902878509109843085880697406283638851771067953658627558736976194620793400972535494310676495482471093815472839959934938636430633092223277466324149404458287593875551327170131689984022931543837047146187649196773209546282569115336405905821577533219931075229908696073922384645150594285110129382735686760226134184137680078199202337452422033705633906285670089648848562796026831159443641606516427901629630916435106864531356102950849167634930441940324494029221121872128974644715525468311035902552522827462540059004923248362565372089793247983177637017158280940924566281801271219461266098593535852025079233263616947454008363528814913779167264635656100006797552993841052940352154659106803495201896993606264226824669669144095030268161931490839881677417228867596602282406398273834339079915642317556851568004633056723556184673835958811994409503510450391841019530654660205235011404993061022969868299747610988263198572420095407291895898074436986041099187919526055866037863617425611900763032192139075711117112523215791938006853340427714537556939146744403914622725144725150115511572050841764361335815911501363004252411269637190116388273424711180000636892757403398314497436139544525675025668586608226174851227428261828101247392222010170522853763845445917898454806935859799925174779821495143777498286683629311460235396547774595233637681646731718625022221358630940750718350646015341161712171475659662969095542087083406485832367459222447264663834748465482166073583796362722788153632214775508000191721007215985010021558235409292946124803411496092931676756565917758389358759882529177073518145942913143831474160383777421251649146772973806285831849331646920348167836392913667409089416385617434570262529246661747032985155754240836287336684654614403232456417929701005766338445783358700185164933695235202750476166091345007621922089382359952244777326013745227278417493589307486542782096319252412534019922972307313170054154142771138492228206298750238582081501112296705569846947428154715387057890899604256613332523644880165962834007052820989507710707930163994393659241588469600122255214140049354734639934300414145855981593961958555662362754760619107558000810912202364021904842983282325049088673577942963925458720859103454196078828944714128338006175296509663896422910280946935447500654808383286946240267712637650350497709174815296768854579013183505740439595107875826780411233680296767036685265929607440950297816235637843490945306358127337544360191913836740695033270729663380228107610657969595717030581501953396468353812726698477318028983042058781903198115442063638483490741762453619737765378012391571321487635727037652334918472135242689319391804064130953682229311180560192570874135576037616620737203053015205461678560666918995840268403098545547956616066720355483721293463634906207543505724065226765402642607143834433784601667851547199170896063294111346633759733220944541699005858692610673218623748490541840364415583204913460992578535140435732698659434709266177071596007214464790005030589412392270507975675742383648478357513808885626492061239994560746755790575865228827141544282338207277454691041029145978146183377042330632518478080181768401488883722627090089549089608715861180194049929649566258023017677050391006011551357368881710555478375872292793374432949666034585615702770749148238854453635555611308608797566666941830023978722309876174421761131593109911556047501388077767983603406442279046816676899170038292463859883729895313252750745966685007904333912219503654453138330566450013523743652258957656593571601565155484538978874005585630266275007412985282573718038593142663131471660513659822791891938702452402244230046872006688152832326665132621122816660093553807083261551370424848878367010144675777614397258382799300465011414738169390599742411074405415225797467710571400035184114930503238651755383956080569090988691080400048277925799505481681189292644042666045011250826560831855841764167408742017648028010985885104366408425653380204644612477506121659858826387924768174183087424360398599831160802421851383666461880048039074763989480045559829950467637469931093932287836174131770245054148302633531781670192677805497353045814006060179341467532884659895974858323578030780097294287739205767748666426202915294258932037643455037361724815211599990529313138381085714211645504338892689968480152684856377775351026055070841043883010354451187872169138287656676674099164252278539650601104731284843278207607710277199519149125512651657331233870056668535688206991817176660056355615160961567953011985642211686596224841432369898356885324382134245565546273793814730843637886327258981242305434667850663898928385704998466228224832115116735214548904861450371315643222520640011620990199497279615368733389678884174691238479008096279830244407766704114747383824377140440752116306295655331905419218777490122191176759434911566670194966672760095320582894660128375537650010047426487452866095437252039141234433250885144111114712436532390918519205369880723299662961135777569908342902758094955473076795527314124800598287728361556389012922647394544214221817915327917786897570862169138346619952789166891975234933863916892687355306533837195837238542369043863318408987593235407990130305677735013964418438647031271221757165466744299230983377187401394673686987014119042977741757917558842117985797783193883993609584512688020012171579472820107383634701750377558065782071494905862270610340181580453585649771536734274784263356582074025957712884601225273784174798149612626154494424469542864086303747630111343085182295739298480278482354477065183776761336103895200733329356202231456908440384552473060674363858997324741203554628121053723169423792865050467168546323326958687527949203555002121011570524508249257678185551476231931497858600959906191714770144337592176009724938031330271266778078937034807803464950929251366318881908671982517001934895398746410189977623670767199598215254673710936611254783862051015483009500494061027806093192838426604037390814570337331092038263875406485135594979833212972526868284944882278481817773366293962399697377306755885410697895245283847210140317558042975587483843124258026062608933241884718826071138870062647800827037589168442180938738879391005239628371623996167402760728250991146739639392297817901149628023381750727859406134441382107232544591313772427155223553061389028758590540267513142912714000891350823857285895137699619987297952157331882099884510865304878701471786056820126573991309042948574442775653216419830746434355403367541515249674309000675510529678699296654507457409260157215667940964951172942355980820027987255804358348975704525409451219947627053547857740618043184192844281267081989503609031883612418643075993794326100275104078405524032545844998310908577509236161008961405138329941619451079015907100262973604127387712799850809687390103808399741009414609630116835278231147005115711956997663971052084597281920809465180112078554730457544382593277539187240351676282718735829842499948839700748184024875272352664392783964326466385159264010274528493149825977532004395813889556523251715508153511267807795876260256641165800921509205571706607249900206029685979397318504233341387016940911115612973770178012235923915567185517485009798656437775994871246558362610210104251813589678406365760720822533698148414813162163988058404241636852644515226764155220264588886108377764993527513420985017436285040775760775123565391977961573292382358007157065333370432352683048052870078080266791399804592392434541021729190123082526735397098529594061843893764750794120101903815328528086364843878189661807070117753176370425482530933829258155379354849983303573859549708294177720280239369265797083255220239907509547030211613060163400226509503486485601518629181446708190284192536086774562748178591118524600613319612033804449950145648858663051694678943386309567776972540164718612053245451771929870753765198571582778131617892909593021881617405402815855008480795282779331817295284200727827623797659390390790729602268550821784785668667746921652855249788372194315860437058164909145905120292016815115547918329016577188561937074553620971682816064312885971797757081846640260277635819037417518076990924917795250141719812554382902212989256647879088645661151169442801397526500414128743286100859065752366744964141933065180912640844037014784146694056776050772444574702921186627357742345443105757553292609819941948122807285698055093909837800279565177121008891349582290817737041838603215400242852865024887213261827266694366591589086723039857114181572519875314645386567399721882257758012471282887218552417878783351418551541722158862663296818830575354835941645212837665082915678083205067447134076572630808874450501358250473767558623409649608721881283378850301623202712689510060206330099860475664069503062448613950955024905029710841487896402989200701987195045865714361424827036142528947956466991508260312054054968796159084734847000471169915274818919251787570969104643429706614032838301734724982917978883028821686126052821605947694748556096090096845440633305017404999921516752225602357655099249522685759833675350026344836194174019100179857508724664121389461982505995611119313423604028538041868831699633803182971710117697922674116568901407400696192331877984563373769395612466861218066819833149155211106392153939623703235058313182060557549836228517790206489211703937211513829193920520108503362260758030317389496624426128667492750819102588530525605407148183808619411912939830953164769314219926637506220665904165047920144915835433379192866642268265284544915227304876635311865745814055973053843244056215631447074332796964621156000197732310100909491472106547715347921979031493269051887695774767245462259147645982625764287900202126165268640079426024679148972863997472778852276367365360705160619304952771602442437999455158075381550481921685340087064338532430764623964345246563353055251392098795041715822321896986153958232421023484975117229654862745183773886667678857641856746805642867774902614991550567425681746862051325517992519586907521441012325604588190306330239768528159788745530844028014257204066789048438160634465096086957689620657177823654429398467945088548766430853449689570715712712343629564158539723639455391507805641076494227878880550523299208467922056066921721072806406016089382807838282277203676249593840853962971321249457912621418654439366606034428393503940455363111379493561462040298857060054695586131633790133496645549421213451649854838257678075529926291243976351160143028835719937420934278927399339747113752904554603900646305850747925468491234603356632130578796624405380185760525817846654570882987595967710244216097747161785053947760311266302124168403708664268472505320933048592016905406946746873336323162275031686524608080431914533202353206596067589186304943767359153782798111053113759868588874711242369594579426641631675423259247492291097114895340979036799513594969951041750520834604620465814425130960419894554352626357750791301055610222831529560296238111496513329850355604523025637562266602006712968426179118128428785911668591730107045591136221807708134138207905866237121234998976753182004931302016224840717657633104537031864896091786573090363519176877741923696077686606866336678440897787501230946763319132767359114812020447138727063384219564745336814228970631303818167540964338035057465923000010475487301733154328623591589842414732677733968747154581378089539848053937157401898707621481281249413509691512869306094753771793761476576965651142166115195340105270489462234079032055948672836222107549880661214425623350814826358306791043586094411934225049677733748672535557561241012148459481093140589968446203264707125252916151881608725840935869553315007047236711101578163215383846645229806804424812296414403907569213558745411963738833886015535020546741161074115152402737703660505359466649703984420686512268891834505705792500844398164835939543703532831922237968080949598330411793530461055579189087688827155154890422291827333291475774497415653609101966287986625238026343909961422704241080253319159126857110761443939311412987566005741992377341580701236263211480799126145416129311264734013902261004796270325188740262381288763091833722520876251143152685898365516381213956281777253708214873406839963068132439156906782242643169578958780609033074339298430398580017355530199456500354758543849447000403551566997578258309991240575715663615864404922379464528725122878296475708603439748931012791385243379578676794148063437269768490318264466482788193094147676449515468485201277008816194694727360143727729974820455478369075748547311177668733829081555461361286084959508288893094217569426377074857962432748042950955074358471926118082624144920922956160772769359325390780907562982000087135247964765164149453979151023571163183592131695327691084358074419474548030014891466501906983549859502032459788623967311876192987443832192953193264087593488753381206169344838404320246765844516870666289812188252433154307822940323454971134984171700222284753081532459589208141150018388883153062719002405781358153772773050256426939824787052427528338995149240369896476165443134861221842967981653425998415091734866579258518928295276463308356425638036179225371422080631541858501279065196837614807835451966438203880101120190180273644651375070651472509127122687667428349002737487661187559175471287496538372348639248067278316316663997032218189678670166015792151494584023569060999980699677149826343900833571867315498569733474608359957422665594133314128506509279253182567957108878016839624299543777769659289066603257810959540067029044420112193472930835589431121620237038725206135233609826773693855104251012780042217807372977032633257117278480588958216298398265173554133951539213758081471189391398354182667094718468138215013834055183866812831094449407429985477479999826021061620214269717078505462153579477916670368324624367522695509816627003770613129967089755971641136188703139257621814207630100261844331432354297213757362429436007800997184115734651321600752445557033364997538335041635443907782096257366985987203569932309469823409483484988738744404528901763847549823593352445999156104155589279233486930311963433742987099617339691757990041686234425285282240547386263912139034104466251386932070868677726684142826152709990100692039430786527087975751781900544703934163153305067078162865257862391251418635974400083082431636222153014637352382450138075005888977645209157298996932538519180783422149504829361097675429275257890689108740893579117477353173575431305880089700758275822209929874381584714007193493382078533259069938941676008709612468240427055757104901474228027158288612792249175564382521700099386508866115753474606576405669443002119362537739620209197532772526971815678557171106476735910895772115896677730862869049515366936942357468833250650614790206193522065223740340083437696902349350266339062778754919468979969604570635967828092906958321326489639401450671381910122849785614014812200210303490818087974812978576844938422105974745644733330379116183391169322083282189798510897583730675999130714455168146368853454100669695286487264862874754524598859825564683131847026214729997992441460270400773811618396530385609931482044283353172721154247236691723843892529496849182439302634761494904455083681528913764473869691521327767497396625158264082763402324859068910413249858779900098627954228738498223612766378799615946573261373311293086477412906881900868191343656257187182924870724562366478584808634622961128536984824544910562746443585442700520265416187887178257101904920851515849598017972653356785525838870991825916544178251643222633148088082150587456196495379748754974994509620979696466287990461424336968312395194075744140484178056109745948008153786820355971300154566029021127660361280126918263203006314967752499616798703221224206363147141312522644970877983093124470569770124702136511156563706465269410558303639875021388912699118659027164020205447117137655343120036555684990298102844509090087340345166909062176810841272871361026215853863891673285780739663788274629781464073461594471612803198692338846748669314944248044359820764017197399819109515621796543271273783801078880027844912987373147096533744109376876786688741116788670506076828713897455495113416278592500606272275987478518988013451266812085839743167914513176795049699172951483960709658302198499202196920781103322020315604434663502096351465460324718750566240392127524010919386139247263797545845981719664736377633242416787966412652227755586533532447922547499685296729970689718350008727775454423419720805338040221144535543304344171102051827311832428948082655915080505366751208861439835262970291495601702578787649676689727163847824357279357424737117619971595264251393965361736453537808911127688321886548980438891774406159757194763302858496094333686629595124997835680155501035435882312709470239852249006137864093476118633933516771860011563901920963352401378673258920269599144313171721165307919435398589509135387471753468094062865620780125776043745275223124345131326110681176299322758927125497950607701338645491218733507664926130268721301577530380267243273572409723975489468664481537078464358067566403593783680435413259336804385442917593865404320953686984691696693362455179215163668238308225430513058366466758939352222403003138916037339661753792365098485436435800595526646756015684570735614714625642178885166376307743390494248654185093144223510835095774797719006296152833943259513596247023359247940320948047234506560917902631629543787800141986371575679303006777316876950892849530743758546989395696028199065174236432697552038940553841996758661644009797664983752296929821040670298206405030826233396799551078021450684062121685147992219834420162110742293056481986629838889534497546618157186043603273929239611958401321678841426934607814276969923860500373992587892787251197816237441222265051014487620371938134911629905728987311110757152874377404590656656944754340516806660856397565440606884315982358951506563995270479663856116212120858174164560310549039516177472681157261191586182688450026384235777654700337417530947097032949869821966016338045538169685228518234309128587055957736924522612779743987448378563232364417590391602344090057631134535793520775702181994539026305086540692829218114806210801644693596212844820440642284105857750638846114510927918990344608417457039851937985214847461057109536062951414104709338735372262918837064692472745614793207471748812354926978366032168937891200123138241271921769879540030037356009398326561530057398614097706488708557545145333881274258610940516767607263821298400814456748655249740791387173394504494329936807975263329530208832640013532246195628073241684743968404717485184100771859883857457198689077524516515225376821469757275930932784313605299597675232570101671249810871444948617021289694783075320955412250544410410369652316554885826471882820333587033922364959043386965966336074535031913490369470452119865498143900885781559681132213032744819381429735853391806319742220004560836353640065813116038377059368959049120837425940338036616290001253898272697599778631804574440966226671254059003285766154496938474689701420071543964155195182358318441708310282874634953154504969647962904777260510235714899117788824356598175867668448164329553571486449090517778328291014509467219653810835558000059066354259210627259440618067972879638511321842933214818162116328890470276125933845221080178365157546444170158980202066853831175409548304930030770235533590509037120537054057603159997154605382049568028062976397357065017206845208001928832462859660399472635828139524746435239647604889613601326852249377979056827530442553399585382039395779105020372947223917654716920251998315622675107581907442520380845311407136242904405348409267414530708383218608396718581444709191344478896005198686115615394549644135675855292422219419035769446049813598062732115578199055182127987143049290565923429471087934382656486822680300060123692824559161819445978423526988775068327915016892163544810388800826748780329275814725775739885402227930716677379481507757430615224135920722530294580423790401900898828317784602981595458262418598155598453318109213255356419628333784484027217600550467274739234896560394123896505326828344979684968048960725486054462004875406955821088541384281885562862871216995543275441131199011256558208160998447278762474081453949358787723233042960769348066460522234404668066086398330763742633515223712961374988889152429967372154025451838586159671063557661514942543351110568081520769706395133071300954870019550001091684908142923304551119370145942491187736878655621179073894927996267068731822781823434147241645364019458608384899309610000668951245901327840592856751068632708858120324194459420000708548427078511707220955604321325361475599891373348514169539604717877763383223234137826510908554233438801335908954109739562250305355649285710586115498209701161696417894514716377774605156461385786343102785379179241077870415939121091849880080123363507568184606786864592858730174603438200406748588155432108727254423207318824590250120392887592674864792092584079798620243509141457876261791033743918119658296257578193527474220794094566011960334728146088519992506270406956833582419624132717175697076418257679875362028071494536184471749883517738629764151500033318738048781254874536315578425086016674673141779179864636344421890614948200552886749154503644158326596368285710683291458991061052995216648778155652776579163601480964702395565271105446592166166917691522466028854523977596402022753696120504751429710417346373399920952799171833295720724721406001598813841529425453167645326084792808910356082906243403477949353880236665193849446001229600693126858632515971842130497015240557308940413250425520245503799485729171966223362194145216873270823230493933395879770040958719427151294880944725017132932185548622490570312085147232990867892774655433972423304480450217070640377755043423147467291571529719740237390091666456821588429848915349419146686842927830299983045752540991635164868764999580794787034315238996379031740515939188701422244365016853111828722078210978094876020062828833674494567615011547399482809930447895986396019944498919233588027677533342871749112866959304171882608040925559468001927339977676598873693971567187557798425909526790235536335197462060411292722198370866181376415901868279282303543157145313847826500891002241965685266537616524311425127205189159302354649865075306684536448339695457389181430883862122406655831570801959500049366367780558505339780361674426929543825199523799367842327679841987623083638839527461355894969907072870199301772031458782849995690862545543207532345014766634598459596076507477225004483050093109818051969456162487797822055529857791991702582926924417572573274989110952198154870512306221385263561483116562850537105217784840109787070120702553995088824796526096966530539612352146551975322571010159751505751858301091362540163931788671868572882763110433194071291606958429829209754874087393827352616565720091320318475912372462605067171349553116209823271635359519395611706529131397426465643900512137164901973513954970134020204310262592916148939130402529992741244728464863248492064385116263447318140220425620888059268979159683274466970156650326416140236356759694888479393050549699701089272046021834819963343415413487337717232639779409282190791618049087520999547122370905350901429305048764835604089745647338647790686329224075231707365599522807320631674944344219104776335925503783427059425019948173503781634672384705271598866587692928396426340670177360205664023890972565842090700038420353459757247635981506258643911185163261367509699866856558031264250890503611521067752824456227516723941560187573545797456462178969859982104151102291046054545548037110282690692492036416065461097648498733499187549785381140980063484887658318029648949287355797498253775374293733089590083471113181178185492960859742771470369708733558170540794787983800422602989092046645654813772350282329742991057282442864421827270370537921961356101422252340506983203998290126498186158972807485658708246086514741903787095565183581976997390985245078803684217907756305833955915372814626615601659921895263738999650602669024768734769506387623754517059261695160508377859562353120318628038664310677310454277191359359203255986788665588604793764701537052870888391011387386358781223321740777618987270951010017910423075874061998219244004382315690341799835887691957285342494239463904570337094538282683809604556368242299174542186154584680757899367148214590768438613430836605116399791396316652156132153594599425209367486504487996785347359346879617425487386272692547894208706819922053627373664708852509946730521731464003579583315611145439464312493662230885115735007674969468039675039279928229905155472919012181254486800876958694692653059756652289532830371385496844821428320358634887718541382984673496787147862144904784933343750631771115037764829307009639983110350649286328221992188269079820380979280974232740330498629856169808632308803158888372874355588343911238353081951529245139975038515894442459501918326102161152874034962123889942746575170022464677308455516150047036566964629764979271347704786785961283576749081947471158204567664775930362203355817406788683898904091604963714349300176019115177713670039501131642690685746963886755823265564370530280286885254648106052266470284623107206696175022272654242279534496959433053696668327362528186471663138603437005533210712497561175733214719661863470772782644635644241696152430751507553169186984609194518501325498725551225205507193035114445890794501162048517862528271902134667424799571378985154105771673928224660188959860733652152504184124128479158282877726064489421566965147246415612772070089623665007012660407706000470229913711610626234677938974990514110382525703499658038600871233264074390518165541766130177154689656768394758540819105918580900608356917141635636006722712334544927570980842353968724303639382932990267476139701724883376812792940970651883220393383044327770808432236668031963496121093415804036691825425152695947666714561674488746243469067710981087908693662184727077269236667137862257011156088998512483471386252590435611295713186717025408894652784510216921348960171630260957614241103441400572865786976117502578483949350396999670399429397519079157528992940160603834943037296271740044426335190534828818402185590224250033039561838812776718390024009308175976188262432015079418340112691459655146076496635114998576890949879077503738879149274818304469655187345202727902779100348002732184454283532616677235202365494614490950050766742456269120155053038464835129428131589718899090193518696256451224125794026375671271621027561549204073780404836050169949637166994312687095530218158542490487625788734775935994340539249799910528237366652460380081770475922705762234653762893565368402264911152127586485584039766457200433161211478492567415483615172117241797023632941168956919728406698181779444845474370632968906279087175878400276937179604940010761164335252162741998417083473029514047704285699970947852661271914932431374660525139865993574095169198200224685584041986090301469067530778737065892555628588125463937462702500447748895446992952641143400936661966709040238803229220301010846704470424659252357746015264687492755217927744341733853025466210257371341129125361116892822068327153546613263893338894765339035474007474886809428747163464934669662975223303657460680974952366887265544073435268182134909112146176328762980850177172534826938884360051964130448308355940246316489944588281152956937180027437327086719279115187858308073996770366971428259553904759820586309041925046956642857559951636510295472031943860113061516034206960568202207296467820576849489018338955262804457934007708273604524291214848244103694019006409500322727482033901825612982328142913849598211551043230923611287517295903512868985526897042361208879244278085733928492673624859820187727787445846770712672894070494099870152559131422600501541763601082131048302869777866349368493736616068757840313431914596402907397590688781766463781988081962681287456715106574921081185736568108212267431310032946568800760470424743010439969158027836646628968170200767529742312887789514018297869795669505437376016152057663666303974433968324193589968940149706921553404708655609388087375817728883186113557394334828240429562736431846515729488878894431972476792479155789692763453800140823844864177493796959300042546459253777613380084572673327664950576781049266139854366705963697558047356632553516384838573456021775899446229325973796686628318914557911110811031041019107255081300297709190564493694623510449924004773866971085101797529498983153242012957736738156731241973230108074999328408480701986725433269400719966287020563339873641273146340536727361195543943037867495086686038333569084999650362032397084941960015044261874634648795348217021027655285084380237665973505270431810768354568495607523339133927012598534112524331316364039161275560996414410622075149138529765106336823337379079032102462960896319729291451419044442279274206537624302414827423921227313663041736094922629567654814019552628330437000016419538076726692747915824572939231998696511492399905585928999670826946110173456862615113372221196087080940011306455499268939293158408300493346233520463931209439304013428437527532569377185204517740709508202869265006102840141045806065501728103726126038613003263178654637618085971291495387986752234735577071348052682816138516112251544092726080702268955871717385986968668706736490986150327812739896426741966274443244212711660153499791195789205533709433139694417909256317430807407334804964209092291553751480320933239146029455554442158522061877381431943246915324597399865022257725257786676081471712707446679775568918337429018443207799201040421022881837512766954981156195977293652202707440269691822042197285369483396394673431431270969301505113558356634379095876100332968732208551724308001651887010603373887088769593078561033429694673272633112176802965267949442775129047370457333254735546636386310040814476247436363286205359751217598222355543682680652118846558956352217731180978629529330304849860211512447821679462548120644593310682764488168465507429271723525013200932048437448746523643011828744401131625673684666915377179731032964740759943969539287778554050944545538104401578698355252409718033318514538899983713966055884026929097585635344657006635987286689928525201597344532740501845900644100389023442488647144697199470439526431686827879133895973141676107396211033724730970875239968088297499843709954118371228447733869687619103534216508873856857534880984751746198060380634942725961072566016334013769461562227515376091199384106690927810836599544078127608414359887383416361492111465203001221225177687117521827720497253100404297555953404017139288566673323152486860305975415758283099145399784011727525206825239520551544188224643687914685800353614201033178909802977366585284707916820620559449340004511435338091661326548313565178318067910497023795304004995809853948626502896411594731041166448654689449918326113651404322343027837430308767934412898187137766002099003058100803119002390486998303358847093295871113287197007349072220535514277678192879303915605505543426966131164506344756301292196504760264406236579220769836807355335971206289427384181744195612033160057519003053190791899381836089051402800600301492553844755077992114111896219013759463652595783844092475348367711485900871519407790470491551014758033775808011028757910849859489275553340131584330768973426959985840290391779472874904069330030008655115607815662894275136946311700080839662952708134785516090018274350707771543504093057136510300475830242992109829968851759806825166571235380292878509230119257633351857970603035480913488337999338740077149849386858500986417649278160914413588090610158732723152316521546120440063334424440737481789188897361924616136197431676250588501355119242320213953652703489900027980446696445934961035916219028172135541049000645451085638972441751553971195911302419644235537076672886459102769061497623794311429157159712932585125545246350155404926263237307153425670919091510694113636981866585674073633234867810586898215282881534834315356559343005187546689344588596399084509794478070304865236988919205490865025240887387057428840576767069249514493408924095749300355422903771474864274614089111255220755147535298167916573793904026778645721548557398877011673942791453342756313133618366694494400665081006121969792051381887485438180768562328849994254336990696233885481145716983543835953819973852236050983520931786768241084864188843793616744640601887389831903136844290559281643975780217726828922645243043302319092731885353585956167562951721988604011318982049646113135117362253444592602863792903803469204081194878432279883752273307613352870676173462059061912547475340921834795036721196987633552415294120972773078998235921250729605989584024275994129175722227219792436785457355193398124418958083694246979443220891049289475490820657382826386511248714939228489570649574318873435188629244715291560730800931654518594051062997812381526449137335572504371925846478364874438386251664523601175523978007762082206941927777313058080930467510832518316303472160000598858854037980231153600497822604721243209855581146114394372154134254095321562353462634186976420924689963327660005707993528822167251050149732781552430699683839499364960898476378899784459045547648683194011709852392086040297542345748796424646532405867955175155375447388089494494348851583852017002100884222722149136280952222004558993472805442879566649289609652585290458846062912796084881861491139983036149779403774892936558100699820689305073921971369860135913822101653384376113432298470374599280435052847256855624328799830041354783643186929706856772716630290144638405552136436135268947354467125830758313113585114289610231083912211121175483878975333144528706388870697310068676530416521998173957983800007044149496440038585344872491455599640826305612590814390730801452253290446950420271434128246404072671363170159818750717444944673553684340512938757155833936315684373759697617625749161246421570641917299998473542829781412507852577174214168283957147318515149661530619348098032484868993653562417354570714283161555019799110314143672352087209310446506252112679679237819751549329635930004097466805211377404741264230350347194704674773529654611399928260124207736257238145995428291101734680846399548647940128650508586801847413935081319900494069809557188536949664298791655766210110621047983282318317008532316883957403380650128476676449241292145742494897101153829209199462074237911652337631410151965463264381484656925528792124560015852548729971125544598611351602385132538778041303161658585654694822931967399574984747003937340102554451296028525090471026159550322889249459244320814168682516926000396185550807054414757425789559563825270598024828133771490123218883503967668943790952753509886428524797366304202609858675288779258314021192205893012702604829806311319494912972004320088040544637496170520235893839318002890895511093876537126972241477589300346499740333488929420031008267571739585919056469424965460524277139664589969528463635600987978754584475212412410910610079025033458308541814106235094746931171721155392670652478009301935591714865979988239044868620995483300070287074529971409660993143501736087031534626491674622217871322291625709731978285480024004095986015005074276920309380720959572638512624194568228921937893806251317991038060281508097320127601163584626788581645835509765411352942154473541222804518501765428781764754343017629284535651100849707400933407716399280479045350311833383061790120542490054645410714991831745858446211722804374203287394522129426464751076442112761935199930067598733962173156492042682491473393723935915470544214562185360307328455811497001388929015652870830387612006440099980881504072926761662654812967801047127956395053895291116415025400382125304886012031512018991248552067467807069815725542120550335533607942175633982958405658900009592209319256818879264029516175300151935634928278712439014504206029003754103047861008690685916563270875039177157646490092232440889515061038356411786524436880838568748128801665379565248850366891869907132350155666280882287795209095715084417312388064905957865539585551944617925768913819013126221092516263916910469974738039422985224915515560269831061560923874244444898199672363568821062351136912018986640028271923616573536088116494313813266346361562650965473013795943066174208370929399965687726521185288660825029441115184497362146651059862451019325859920359655244287109872487729956340833245592297430609115677803444557918630665892249624146607597455896899486223778465929761379535935851900007685725100630957634288728474144370248477167666736346465148092721762190247001147910400319334569233464550370043746067583672796662297869764431951681505235458194547679531513593817943464301837768541036676542325727811732024586548707755178303928428685671123614407530066197794414398571229486011287591689880059367393464148455222918661085862753687108676345101903913799716716059233798921895456486529749385493655100718541991673271268363573748698061266199140824914277830448360449341570220845753927120076963096860603441359642694844418592388845663934032072480199930256583453733124193481123255761205785956306138686476348283909763551458162642815292523756146707238977472665052385663235432932939570552650353505873056619234832435124168688227208981988725757826290298497339598204063844501726117692532250194622741567560802878205654829730502016318446526302559459128144822351635002457254910079818156693197767848610415705173991285406167857712319505996825193232328193690502905290739651138528248760643824937768707631454336771398533665483272123742298516795108834130367362303515002859654260208193439286374127911656667951057879945578684676532501085733564391647279804221902139348567816080129004071289798526110426488309166744073178269312106790357373218046651603710667586128167448905475176815751033242985807260521155194039064686176448211511596547500377645960767627642613559118002065802334905915288795138779929356043358942075151126960846378647211417090795059796123969918169549438221642189652783368547467224382683726797228272217181392188908815600903775939305920350448601596653940291301793667599133338372462378402021958503820570984156219094308200099479934151209081061744790106557827434178698524742597055346032381414486038472041945028949309621562341690053050804064002837812256366880506542262226263445114707868911558366585840816377423273334814907542050313258837436830481332385447401341735783964747863234612219988880186660891595359368608795220391858817875260126820874952433510848728020406528012732921665485380723697818529995238023558992474389670041339210249733333175727025069912145309257856205492455668600745351096302839444520585435842759889874423789044730441771279709003401564049137210237788245070318358441649133517847519046154339971461668493885622303863718433945303588453851950875403290547537158989841881911294263792103830227239560119519794305847799550817251811397982733458670633091543263180512580646779748001857311166448104768591411485765237451356744987799070589193510657675772363343639658644671855823577360384929645944943134341651298511175326000386392571899712343402367321192429154489321188851060115703448779096642925908848245924945163576958207504368868376170779628184457337260650617925151728015793880779707764391474384904356232572663909997557885528104524001107270531514445441616938345090619303326521201048225358031918604433791681971161226258737573099848112854211360991788863236714087227742557207793451775512839094303392107459214398992318418356180468944634053746436035840356625274782506584470454329497831171713061933860857181790529590051787474640896585075315320574068829519064281131377742577011449205599920977802444287993938124633662453451117182692566347375460892532795115332311377989752344548365682288995860150388151837338006196414316698923180036148773886060924397564046111507848847302397454084910543270851015149068960221263985049896977800249634423418687306121665394012476789493711539134548002612559031152778494458828534922209593488019815768121905398997244234091515744918361637231347752075570432311405832643210814815793159542363147437870063491068856620999940623274922281954676908733874062907519730369420100892926663354788223979704906702204454769957135838516489636840736343764449612832188888876757485394067114350440135442625037946228857167547417908449372974062244125198931283492783804199493096000165249635048541281000382968065791479386562102357925420166462506955183437808826002503253542960857951683478088974766795507567485737541781403661656833066813120717574265002871293161073646982001076886624304887988984337532931130953529495977649260588253733893600469110229205006831648042136862386907323738407566211365604128875343799030697754678775539241150787177266462957727908634840597489411239155114099293759343418768508771173098225479316373258999244983324847467536027722023381041970599276627115698804890550293232607532390709789142268340985125640750459779694817058779999898335674632100333884223737914306773799959664355808674409731494543281915120944641749223709874315242530812202808690219834783253103135202775689924813459924040825741353367141903987974149303680765364683552315225236800151237163240875471313088787084052953723260054752953744347431479917682976769292033365723239827178307166279654092997140591956839099440491950569500682322091258440759683277426893309403382609596657407622130776385508108167317994880954818306592131968909250106590235644241078711348220281335404976713687548599696453581689780311882117708622629463248533164200585227788698481139511210039763583062829489008712378528493407166661043546379448184966867179411759109941954003847908994990896779930267913437532560739683273126387320639188370434411861328267120023276961237818805727068155708666240228411514484334617618637318658137087024868522012183773838728151694769595016190189413743399239139506947837341327035752674263915253766170921264811751357351790726862877783309380330020343891718437999356865279495555660890267052410875547360010959723850625607961278527798520780635256477349677612530551935861465497842176343843972438147466318912990436408530478321037478942677581660229874920131635546837090738924945524645277212179037200417063445133388148882320357605201165069108101951363014349807861047505277611068408693862621611042423482388359621248069273601416033242612725797023781157459336375464640258669083684434259254394616489634365952480614435644671581810867701900418194932702309878153779437316785287070053974961479505293356444458554783374841678142826079998314327571875236329889421935176836425063905850968539828220616525606560212584674680131704617212529191686048748296001359464878339138446494161592103818472253878062316817103538260515428988126555575107297986040359352484721006251047544096346485452422947859359034644808779708262531763525302496365974958658340039323486126806381081935701560854699502429197502009228615765646578817126680294007805854093527234966083564883022154462611677101923619089591742105662733304924893511532546731937517501190147637603736343467274455004431179884314942252311008194354161973716946960873527644443531687762383764846049149897489264954404832353798441688914305944323232225693496015917522710313171902544947263625883693033623731834030025990814244191257717995291200628397567451474065879875867939574788907131340953515859757583391468008615888676177877049991039054578932379935071088211931289769444559493927327465882319493019704818974096234956589831133198476604026322117368271173031899715132453687258320691389871738902036588021399566544183811049034767837997268128103297742811268441566627172389074417233207279246327000411628452852904867904444944396245803136754285495753910164127926346870325384225403802682966679158203939233923567536585029934657155114351537601805595170423037252923269138150745767600311289695601953859168643398107408090319416851642948432295638623847194339935672025481612784345136751012782152387251590149453398454897606852466780887096566690622681962275698454555192669841662198866992677292385093320851555775606128697905452778505594961195687423803764405844398861095124482134191024089612735841435407088631034563215146408353098809203888074479638582678733247586829819240908638900087657976373587376579222291462266472657857111636426578469205769911474405988295930572661213598373699739401873915914906816009637370101597943660498869747316911790544083917844465078721509878234140579016148816474894084827249650638725449598357638350221160420274595592727438341373255636602659372242732879957277805697309696059225792166458491958972119976819761535998860339535370543592197121837148334596198597091971983146440341992306767878098441103032886677969983276101745659455003478862138870457505441324640060532095313977634135981700279156836337990925006151539011410655469220111511438904289759479895745343182014788399257546503652148046455456340999097829062574217541174784458306078112275037187396095396968228519492039539622361216221841140891253081271915265106953697367378228118589962407503036535210613490754911502430015666640072930467629956855589242312314010252295529952873461755416952097396134667496102944117727793670919237868163460950592849573244542656406992441344663672878179093848791291035145635502598078657459836830317063562264719509964100269642928619114092718700597711255214509225059948558772067393956488673506024651206559940056366168562577087509072647869132009545004894999768333721054889539115560453829514598327156257632098536927799246667564596017113216112083848999087687752833692664694981763703517319797773705459457622195164016501305914993114488213248195078818433189233619789991260552521235886666008860870448079528859583318926498403116871204467927010074324753346420048762127004345671591286438771505716425365604387638156227129794991443059522929868734690958246628339781335836376428401543030401005220357718365727791735322363257660369394047681782827537992927711760859425988844096719984667102795362670060097693304876017341094074119190730231682540039409951158187202708234398201383241884381413341210431207935903939951640130261815087960940547166859403892367311768536954780228014565754022885593250401947698319746397394758766202693399108946202059752429640325512351512508586129906479308910825430480378342483728435526463077020721752475805577174217291252359231566594100187424786267151045510710229388623323805101418911507547993166075774296248713798511740844031252446899780007472397828609909704378870642256692323352007726945339932540548389127735100183885044826236350465403277267054702295861120805170051054443340685248518688134692740583144177166303258875638196504285664718208460598068145512585417184325951363013868628192331490090370223615854245440482248178430421929364066670344570501360608262256711259953556834650132054138037000002794117439597175555678744728315259944329518679706064652328916812290535695316413560246529526289214577627076886697090335421907510173580092212852781958884683389430389507546776217551559762903254523717223894209974337398356266472007261550464691296339090205580387612801498555704322792333862092796063013505965450259743305919685259733501111013756862586205294290273064310005486885398718421223508349154378979592594841591590312186439463147891131854965022955401750325496869806685253710693068504539115277229632051826361281967522961768987589069574296823536020152267801424716989043549193012611506648259327531461668841748461729411049938336169436398026588321656639247677376540761327658874323942073253799216762824146532903531836167995366908276441673142778894862115012414332650384648831075136564234075463931257774617366111279850189990482096477989670588128140257787493266385424033859601347852471068765832869939668599669101404610595721436536774915254138013581869083841134456128733682822478670797929491924739611957351754715906848400172191055274809697582632764480323680843946166755562260132127090059671198787369662323550407453760749622244951830595175568481979629982537952011398490829018092392474851560231427506390539263324112304922376677915011313246616528582655183210717441893665042197579723389982920376327574076883578663134022864609713771710955477565680184532377828558119914537333656977310891535714300551784684165970335264535947126132214459203219584945485076415193268056361703597219141856282166071369246321502937587561535661510967205906141262531753838163764650584555431027183939754781503258039407864222885549364322941516165333728419672690994803444215586115687723364267172803375229252080961560882230086010351478525857356292134849842631555054246879832303542059081281234161241142229634757027023996844693105669586789435099013196557239448710244050679792365665581059598455793054380207254695360929329716053676287340087767158789856666582411583566909040370022888484426686817982148633982654255643178431714271924668674761902571143042590063441473803981883275130422840998476919824840422368572398787501020482689985170419231385200077828875446976365616066629016000504449812597994291847897457549317004078143850625805043760899489264091838500010849438734091781820100494960913772498678140634848123571525753635581508242504087396827483096525540869030222799986807036193283521966924541483574872693538228022749538648355331770931672865290276008645422727040232530695196925020881306103366096113096660669604487771262205100453362159066613690996013680288615168444237413309047230075343508331987329091847245448441186544100845991106733928535362626763574791104913983275361645032798810384900637236772633130798956399164323108612710837014013732931132735268094977309350548049475969912326583043296381183925944097076924821842351445618296471139288613846283031848304744630149606788186705248524387487539538105100550987036334902156548652680551084431290521337921926477288492222552760375675836602163803001427733696004676143553111323066338687538431412565293371814741076593419521677328366208366830020807319695099788140278088895139764148245167329165984041708722679988215260201837134356739075439317665308631368676741960745662230823785907294812505726667269365661054700818914869595910240487596047511288291579335003068450199906351888929143026736125272358040060032573933419144312642654688398859859693311763648849553391028636148014261954685890120551159121003049748373616844533931761781248658521910245242004316962979474804862729133068342255685714304318212387157650404908658741556469143083291020689095421565038019001784055609343549371636592060248954441089706996382573027787343855675722435359644122286620030136635633588070336642947150750281255705804606344610391701981223610863972688758439296278449839819692016206321653078072244695976757213683331042483269692584207739639508262727175845028989110936449087832928123476980854278554298502455201149487671180119868142385039811212526695401945914886393031121400251084265510033190757081976194650427294878271274675831763493750603159123274804707156930057501179281952888342545881167167720075285829897610285030659400912751519723374185773797955624197529734393509306405386308731167212723105511862958901485933403768760130568037536971364272225296826100236381070990562167111462306292473232203084593124634273858539932517615552243994555555638999759128439321883180317780027680641916452172781143989091596368790012076852258021440598937080897517258432088825893221113989852718632370307694886575528204820064349033577368409498980384891218059191739633286868301592785697472950214117373291518002614433303209093895701103031960441089850173614218449341679621521694761920445511942281799472813492843328301432650458232071776678317309550102685805446151614061216607311274122118693656743968631894572371194139213247601696035744510525116292347327939292884166892454955638392045665117871352641257388804398767054833903943615765548006277914813913072839507855682098537364440563683465841835071085847644287499267123791266862588403057386591969785332026691360725904367580091860898685532806815912153379540575942715942728752504587471903222173626207779344792480578549034491393115969494836610235364751321687560046560551999112404583036268196873345937825176495199660714257392154590196122192705236388079419538368635749668530492190314155007568827545809731243937848840358996768422113197716876042679246498234237818505919953583280858861342582124686581486918426855918437616511714082428176734987012875166447148383382830922339707636262793192739851367693294778376879497883275651557324051979654042734088496928542578691384920724055023940488441622027811033723848317639739594797339923400028885283227500740232220690238227999244949499537782210781950249525766252006942579568859279289527356392053059126228265838277409982536210226966965043001202194626924274453199156768504426792668101332108747892833648633997696698500159926278793692868042032436044412058162020566198163114516375956379978313932659778532146405225443247047500286859597225682875458138385489912816550256405560769260392434194366763071970118512190493605773307572495143544025793321970349400189517377525681020185936535836132681373591605705596761906646068384616071978896127145932872178689084416476766535253559690287746054772995567649030052802505419936821384457251780556159863920930853664239753833428998624770239189160761837731996444530394011572149811750146964606903986179463118292021523059800915644275956431994494388664115586994590895895793589290881348496544753470703035753993612632814285614279894412221445659840080619179343049152729155482959634213091553879942887113048241102575147553718045787086233833119441578993271499930889234039095184022142726745634661532766346411731907110988087506449551771492577376413750630764676888055637362635986591394560717651534347352905771426871114242967093212024587803409283902689593678427615951045412785894461085880487392123728244837653987538740762422366017278303166749463305786368694822715957210741357918796181718888385250653468426070363616328165603101366424609034268610758053374579434734499320232118051363030933805852509267652935889658283153974372199232604666345508512766685521700239720819774787205687081742462022883768462068211870835919830761257088431692114696307170061574591144490122317094401260220746864330786734896355458354322723970409242398308992903689048176904944490194810318436097554971110158102479588684315138771511917135293736819695880853790018862084791770507517917616217537621179721425788472316428555044345740627692656588954186552553167901448428090742847919405823800434029081567397660475106465227148001909478933757394735990733628755949102991010090014644645569413257055526148551397043370527748786075123949117623050351624931341631112886868448833379095134516068733743740080661658831714943368265867240490385896525191656283128936853185832451424196729458624851024332222590367668257997586503343490734441153189749494330245588568026187551199519790206657146548013746443409002454174729291814162008399540987451606889336777874788603206311942334562917527695489585560406615882889614534793625229281153948657877137871943636112064077822241798499505031508119077428068720921916438820047917850068747333282777456272985485601164573135718559456382216399925630320377508081934223321086885469947662382783689787055121682946873978257708754492579947790127130069301095586923165039939447310812277875507017949875982128377421320333359769461646440891253234101433300878035986830831467473687966321618679304411357981629028158855796202546227810816761271436052927494584682088768890552238842922561559526171745912034329743368100528680309124237605386776343656963957358911314802015432185850659809500398325815404042303913781558878420528467919209971260216143993028359521443122679306885583528146705262379583422236741213098690430761633253634297945143730587149858947012301391184567308664101431443970660825687531641718182033486776984648807102596517205113855877645343145404623505385231401846896758992315946871535659850553901305887319141455966894422367170218625598253052666883297931089342155618809836711217752132986755763384591362978636874074299156972147340240945829271676004666110959603298708587366077894881084028068614122104028662465946049890321972852203025348410487411526659899779471347581613218125522421898290363604193105491711544674164285400918152024641750402979954950939485215860218709990501502940557529592143610477668115425331064138474643817496921444575639287473700133757794101505810137421259269556121330378390821043187373513541322388938335442433042914399797366992130398072543438375046126822849922497928444336580292290938314315729638324527394068545138609232072568015598009805905760212582410486502383222516872687723732636351165162338353426817723424652600881695350540512924095340093498549241274635550615821829877945529472892489866344887706930515863011948645148835680957530295477065421293616209241066969245645577418235315078052894826385510166092877910164257068751738397840983519237277280897885167908705304637333062770399185001993021269332651675186303903048412640336339616748540578617730739773062245009980832627567022014057892931548976592648669367965386159854771582134632430485117485026099504182804472621183594751404251426208263538837887824577051964829384541742649449151702511138776479950093015947655774507596478234176252692768104288043766424185945269272211861623034617129708080564193070389967825066283869320622180848325700761221979319774353305398944395488297886708497330298990108944315691588502223753260721642132879787392977503413735404004834204509991420717628589048307236643346400777244308017957214615841642758026959479476646182469553032755664336427739798250151343511450010261284607124019804806853838880620561399226868404165509284541659589657850054041448774168225395967117359299533666455916961522237936225724412229158982139543321130707733317337457594463229761742720970321301599674621590888194794424048635308364509593457200170920210766431767040122566583848390845835621990515691681193284636453185298405582784261680975810427094555804617258600868165734345472675446590206403901418679233931936161068381390421390926675497800225577397373831639281602452146205742668409792713338524960275732174135385909932771952046025193791554114842791607475178490962479086087774775817322811181515106351905037477603785662726182974399389553624992070619597095141302985714095735655273290626145569367963229751257885796399508091878388362944644377638275878482827456361224396679320527156192826533746121194886662077319678453635781706843113494606428618026286015134509769417809009897307958235103514347537636187431856435368425119343945604533851899501144077317307009399171019159702778779395066617722445786187353037804853894360048614123057072566624427815855174729123916305298028474869886788699525631181521120408777088823140433138321918160162852389239223079029440467953034076930194682570996396093100892619676980102057958509218642376592049957198100003077716460196501462694307378291688623535335853057352315690850155742817619850534908084132704479677951572422828489955289571857502918133271011975296490434285989297319436713635982410589196594882688467296927122955239107824617784685641902587457872663590469002705251613283342991493329744293141894983178493946755723162268931851505232656767054338061200571940475233162364731936001627865995132392209528589772544455043241285911134704273120298060803526421213581629663785000674483455010409585226806315189790745612646015343467448397001066696187195750958500228444239734266390579344633393285133766713473589506143805491823905783535015416512275048575178129562006478940813994429926464423470665686275367727241485593402963960487462718006793518434938526336455183240199132287463030088690494125080351862794381820279974458526646449389166229992718576305736758536342127652205497808656972056521433275328121016202702652661721362375081407647540988177855121757340633241470866457036750366564739147359733666692327608757765447960524792054373791389063441748816372334213025332809863111208494917757608838852083619339929963271315470934757790598544252635250231276551875542065409575885949820920241525693561637625118629836094109733899131697414895033864543564436332630556301983909285456091528083808003295520189347037427896745969251196495438514575144437998614544935186462068010725441086887379581719909931628782251659924011817889289492372263148525274100709094136985691185945140975579177336785699779060551680071424886686142839694890852938631853954066921394221413923979450473613397128195890941092079940557243553406152686879666325656959376882892225022914171453989033410956151568213754887122121493749465222951044979687785946729156810958769011138176357630506326477184947007641642400314689173617787831296652785454550550975573936968891329970652854176101466360335406149502387685261536956984157353325595800046703905821596556075263192992167729277025216368640982186421317636614645434162424294046130611583249585896311908511909815518874537877185301878155597677785878702319212642959035867453728233896285127103272204630746285890678026429687758153929186399528480015858524822038818073147117114234392239995351726871232386503759128417096909250184922772875734715490241999878666506064662326697003171013409986639383930117350633767310864343280776394628320322130139164427430717223693615590834303759321752933026163528660486665254200813201900557871371879052995657848830071035605051281273015017064124437390123756581424800181915741481761634935447118627079081066345225381275804882087252582181257249757803467528629576702637798885241333055658431840611349987569379504296479804491240891303141858717640419896217233679508624771157041625524598288864744778178238020326094038909393906367979233935772309853682878371907819011635141009267863697911645469397378965803359499848618188184269266528511936908554535621653402523933001128232545990270478374220582114030122221833317783192463509818747506439686627248669275028285846557711505565058650761218244782477138088141547347106328607581495490506190924229641964525575684628273377705681928376817660445351362483596669283267860314447008880425791817293188748283802362359422769586089309633305872195893936006204194633602070920343246435139329164637095181195515368934832789585934267179500695241144688906479084932008406978439930832376899024190432340333840387264630121019426446284462432664189151045522134091851675477820839794661295769293852975627300006541516627246918945072536210095079362518117107819314823440860045633338707539820005494447676058588288657380109739818960747183036183712430522767315511496614577763251564626511785273007769132031136964415612798656757643222335831230434949587611300700489424355207286963651685553157640030001061785619166893833161704899404336777606354899294216565866004188586782287099985279990084493545447145738210313560044716250077343773582082560021211420910780924257769726629719212345211784086772867060004622517642063130101443667776045632306421591215887619404549885477765473869517648260311596358284780996557314514394132738180593225579381830317044018042047513641160417662312603656483963870956146185022331531618610706339947587600433642066165302595356308732567666697134256423507256784456240203743519802819703256455039311013836606152437738656547948305744208061149761463355880880323760423297006622436490048274750765990008275572638093777216359183425679985090963758009215520311030869221400766043441737845323426554595723730164261383245250736392303132792835477758188336063366299084654909533067778972910600903858751070526966485418192034066127421220400954562867744702241041029597497617652296666644090063162813233247496191162066775401493013885211428193078728367471084338998437540873515168105935074093350008676181311354530577691240277693484588759721042727458662166065340397419146035844904479089878343695983292653984312853249329186533559698115660734694792099724859082294466189218314644640106841248038553471600092419861279104970896200927661903247513622642925059325454414487513872855116313686373634450897783126801135798566781195670008767732395860108996167435800771542991908263151287318523712308907991541790287894643008897894410477123383766242854737884345627810683034338681886980106472686556966067987964617104186242212354782364589670721626514392717232192690330222270043694524844713460776723055601802111854450633136727365743939184296314004828441708471398105663730538969155276656178081650243585219002789735499398770432596150689978239716647301648501214542810002320489189935039519160471664856980775635301087258820947841665944756973776966448980679273475828760155041383729869948349231484037733307305935564031920722602303984095549712032943637930644438327356186422033442864759278730321936842105828745147057422556724500156070908565663750731287113052928561274493635907223012051038541886242972613348299365246131964211928667101282229783330020408556729398832523411661788675563934286496755743872793504491444926931900626712814033115343197884718925113613845818994835723502701954403100697538262373789700833281284282707316601969157591167472853767783659660971312599684156888365171843359965255427164042956640376739146857102159041678732788068236102532627120187255700659763881224635144146486157910753477389286092902561692337985525862381157229532128948643303336430359991030411795292377569901314921709798855839977507240715193800559845815775772213118432385561719764890278140147368296429732232188880465923685733323106289802632715693599918530311300425279531753570688572390526768777733161837297265619483952788117273045504722399982996237656923235261876295351905928278099849002789598079589273929708365974150382355023130604977217492764623546636707989524260640117950350414479494173917103580904684968776785555891937799226194889455127860158573877152011538022278503035200738859179092540641515361278242813730275738541978298086510315625660008880475560909840830706285228374705299789094984491464699416421621701382614902217553494575516816686202558783355405586852215087978838890952721381809593480288973158795288885297256949453400052706560009771422668824724540870466926724604349869551798216379756168551170278738677405337541000146976082518606959306536035374975857470874308255306451124497173701418292490516385689169091790111611512341473635979754790302032272554502186866375672123510142425063205206547851363631195971239937688849063293453309932117349682679130569829310495411682249864304751964424922943399449364576357965049119673621556870292665495960760746993878098041409996858568900427616135988948633397276735918358973273944234798939536539794984820460235622542492634538708121487877484375183115428679908051695317883198792194852790356875382878958815864615760536887575072526494614297881476569126968986392764463328216211738490974664448654464743915136896129885714001068364969974639185060635848402203464102304637315645943710375861239565890173927251084692857758969746568058035220771039832346507733958309339815751740773737806026327062141349242813453961833293989129101034864695989701613846728811667550996343593776415159417397602113419960320129093910722536354622530119447451708004242860336006498201410270172840343429862586863027156960935023064746489684564725136963690509349853142742830570297731654173550298790957442717172625001810036662044812976295360622327735176862544321796117388573815511719967974691588640716707958535429011061551437892038400677688425871775594930604742894783126050374120559502763214148693390973831094582732614358514849064583293063550886362577227124601902028253828270241867139180593167382775720662075640299428671741082945861181521946850579111548367232885368882416326258670816367288148445849178321213662571938665065508080378781438448676495155219930708383117384464722275603192150644502847226819786413711458620273253507447597236869534745850946599152540606316127143712412615394660003897022430866794396442381400779551261583275618702142121972364930325586699765641974212260983509620633870063702943733269571112608691207152697518530554255363581729521884119979302701685932227296693100004055620082012718985043316907618184107235082092035245073078412237537090186695526106591773323894672674554026242835281882672730498750863452809671306543153865004731341634776498159945683224583228603031142717991253468921775394664829836199251862707128738851382887732954299651096588204589381620264667263226438147565364786541383118984634240303311063884566361624577828857372664207916134438138425062373372470996548979099451836358636520824567913686805326879877759352483961192126860807470803376978511925250261320013564722959746844370749643655948771489636583468737624666357020941422606435428120807444492131324397595777394750660108214555836791135322452964769230614954603354924885747018179187061079233490528455543521080333533469806669352390975779716641654408471360280647536021161224759621217691632621987063656801274658541689391032672584014303333142737165965109548437907252039122258955793775906265689990529772862809971372520549989948679967359299177792604397607589708015581375709734334718627295014492730501512324619820703254825557359798454045973267572366468075467158737665727420869922001030551200735337203947549589164664879794410392803330375947299864617586404364018694844118396367082023031333640186244920388795733613752477605709812134191586437270259193862231226284093942976463670654523764088510414389577260606563350953395639515606150335767278531493628107021452563566068553098507091258938132059240708068706276081414950807016041580743097821519777981132517281675273457266401074146950347528648949694747419650414946992101027264143282289093592374610855226653488078288445571575219033008060502415283899484537936493215225944145763659923555020099475122788807049964030252191154798437109812396787746128140657123829149735085980506163574039022266258805905836636571934695947986720564211222579412346334864569570238170045191124268834415603518933527202582433682903107006220182294112958912105995335427819580485930115175159369022629407253731507559033300464421547907376429177638832327185263317976761735568750559924677424643722585549448242926496932465634913694730016143322596433123928520077984718067800138543716114411773698259981209825921389589728448843742712521734696597197258781254410776516508030094318410307939414985676364992570132550725233613696988837712720473953890550992740744468331515195154465175663217500923868315285321920330614875095840193117353407313502264547540038839334090578261230782163482273483524511958812745204006777482361055744563938083219606885283168161023311230355545955606190708264866383422919894649203803927916089980760658848820740735511489240612300895240646708645416228807966965677045499447149922143773011355266193030809630230294866028623857186989861310227786965991549585385619559228528012907046089827073654576923540306673801663046090454696841074544012052687906880742318958848405469695265027543260760548006355395451399279650005517099298629470566708028397624798319417468339795113612982162358577491939077553367160325807951810232394470892984152581575612820485754089242516700527967627733622319777477397097223616095086417102852669092134918177326697436858051565764467973020669560355677357397023670358785726526166384443306735435910403643225275849819847189580376465579698712826683916535141117883318583958529855817531273270076700533436381290691137841903256212808431358791103152894210300339073239372881326144010190504277627164515135920417397792428484216912775152571322455378569157887630583853026179433458580964736739890469575125730774207549690346070313224176934968601049026743118072564264174069555194731995385098783080125690084816753153771979692947594802025309522800960041003486497191716351725201043090849914308879471938506005166780210582194904216056933651733686695951796302810168115315939674506618588066752510371957032678313861178662242160085832666280265593175601037656613826011838448978645878009972225073736782880477806706721440398041281435366375549919627264211376940866060167265948038412487688801992349974184099529199034023182482621656731808788132040713666376822854627948256499550876645371751360651181813793779360823743131866542143237882880628202962166902369610153728375209501142992537370021276265002911002943271546907101359837043887982861124272735889279345482861060872994309317201960665784707289173489288589824923069501161206743477644130965593812028657607894647570145367871577603180726384358843557801559850561993875531777240279579208421424495497193340702233156387381903459891380380000341512552858619804143900130349376897586661376932120577299231216897514439919971306898223130071797575205481307714945726498918456899591365729126464683371021684034733346311666016661400561930151753420331089005762433760668238735671045908454107549787094564450882391374436009591912329278302835711930377828724389293818789171048308623310608960281145540009600094520755907549618493854531218683123100161002586836864679328044666143874978060451989485352744654657887711994191246453512066341276520420130306067231780093544574489693694892616605390652494309254731161287284287917095571572173995880915018395963093189662542497784752918671276367991750660490815858509948718316041050618883832782894774789731290890439538130956725236258272262205448095255826953142031827200455627997477491457873250716296512439313317784859297351582050615989721774406198373339324972289592156597232048607003960866597165120369705397885319874434851177824741939945766785128042143632598488211452542804407859490889820592685428862725081291722731866609739116084469643624948871822951468698518651555971135493063007524641792076111718993737368804714932645751024581529684015473291900526295032831003409865799501800944604523358603674402193666401258530215841961169233491691257379924004345413598311103783097058795203677237362607640881852950741067486826518187023587559664120935468375487060105368014163721949883623970771924709733131918684467092121360954589431002564424355845381950291568554229241473490176128355698160171922584005246179816106834406769589640773403992908854068603005827083003420665728863813631388354703298188481911155556602476576560241781234889851346440338483164941194698573984101564048224355177057859279019103549321780926141448764782144416089759909397221701570062618153684625697128075068805530170601041891605655968330483048602533675966936381841639256654702807899344354274868835201728293393166842254126817109026582993764187524964800032979115504691884727107786003694723494049074493187141521891742508783515472175061885817084651460796237559590584680594129425038313740812916169830110097796280171309215148257105196693514915173643560263002165135737838070261684473013208202219935870413861253070844849104240504329906671497056181475250865827365280638806883933725880132976885994657534377804054559017569185589577274682328770263895885406224429406864342874790188866385766242108681242222451589574670884358234854657601311069667177634486540914592365542960023654721318479102383055150886270965606061749982193697955448766780506693242787334460183806838521255140513982035906305981459631201709284606999930409665253206867541707135917605076009296467187693476269399025580182260294225110377895088222890140653419853543338877316314379030522044124883672215863805798977992756170466717632812385945851611093588545860050989454564642661794916084233645597032439992079203211450445829472328841672692779933512863398320068193605793502967604233439936326221909871471013233464068002589334921597607233901697153050372503279759759900633762831967237700109149407027198518077829543656553225006438508790595013389960473848890543504924059929294307987790782612442936342878609598494430232838301559371264862450473210105627347563729250951798639402153552889993767050670295851864756548521449123584866068222212519174044644843113108451459795143136316932808105348659055087500346232935739432367064907521634377420750640325502645951012074385506800814738461856407994262659604857062993017885410728822249894388052167766922054807485858438039848376653455902453352119975528574381577630645238857627609166396257333127522327211801423861355947695281329766402578245524593451136385868791813958954009283029161090231379559165473145748679291747557669079703534682359701094412003472699530651577966536324911089981976177444185820307312963749477786509334292389006475884104950217568240926141952429771362914546085247831013607234638270652946984799120181577062817055677390498618862314062393063807090554368885306230827248835666898367314932192952978785456605324348169357514268881047605291776676621757679362599945581413180430553309297423746222191173414670088411593686348334535088856099662847210105277284969693700896255575638203992861995423970429745621079915535541342976160558740757964311730860673162855290134551937971793476057590687780076541793289045466904714512656227891841343852487995696110719329338718608899482061222794948518125777060701588384097314697845568624800181893647727714791131856506796647200567944474878094126584621119943054124290297043876327380592913081201097873732708177059293644722811292392617143723350830569370273687958330911259232332732188858575691932368893439186581819922102334028588434547831111166474602701106151817095305487578567563189388580883013638568833600495030244338325006348320968746274722147941624218846936477114879630592671476176299726799605403783739372750945078040626347794288658329235752504414593741219092942203739654930518034395335682516641759858306921667034548710252541641213642464259600367039234179933061878326285781844860307442534078647928283625774110149383419763997371922235097281481775384455280453181502339416479358287482480920100920562648154928025834620366857754334045349062401673463139314752792041897663855552641061438133517597049592995733116348048676942692140214769336069290436931349832235572193714458231033688743900963612898056526192809986026503095777244209574904710228758114153940779806839081760761642369991759997915664876645736748018343153503571944112762039684873337488890606199639352820288886880236850944803695285285879965175479605770898611559845582524411052701319028160273669451638390119240215115617930428983588103277926608228372242199102985163225075009735401008153038276165234028750912555799674668253628652972130931953806935268947156898774180070080783759779343390170977190721452543557588816090563004954580972546402909375639280154317681911059580190267091320251172498609201274320243739456187668669930908882718548377600512003372043411156863685301868105773413364378730975776695877429943701932413670765682976570937903705047184671365699674454103611354458844556213657429275436392189891901433023971439136324908086725524813657973924982675466784027838846662821362581421130701780600037053544150086291459410748875753350157961943152274332027938730138384940886730937994583895833268746943380861649789328374924158892292484078237786304062847084106148767006553458659328819662423405295490072825207261316129526602744431829956312098285762573124493267764860893601616036013672723133316710172301470404506647724277754069714489505119259080993910012653030464056594108806072750615954889531391894348053686283975265782469748576083073520910896961039909051371393271824151196327832246156495241091258420503108752601183835931886549832432380082628172311564501871270252994092568522165315617682245650620093428891055895083892845125006801398755032739706919715851639030372373687236646114718538176964031180428604115419796807199595060925567997374563211166543232308478986843612374909318839418256314706029873824410167089335566110186961656315373356178689965132084886140593874472859483248798271653031595631870232364947657031247014954595322719142683838671773778716047089515543615869300406311458577064306870066464018408762207940194733285715279993586295733503840027382854538571153103079532083665395137392699091676597204029109934136630204939057469668616234449888084461058894461886634131647070867437245540488162546171715451101442836049709508510550744658411745179188449459793044800046005047276858468700782300551989056549420799920750499146721460287897523100573904405955713986094741639569034066296380092063836037607157445741376628499853106899701176041860399166101750827923032664308285870185418538547530954093913396227414559462838198804235863099131858928362302350203208269471602252797396009802634985683745590864839183848371379976315218183257598266063568290613754187518779606607740496751961380317501045540236197890116673758264730859901299756639035582314711879827183106668812563739547743828679361058415236565619122549695967516078354706115927528398533851212950614133550809988670577705386362865557045369932145847527197178839925417739547694337502693931050851770991433281291248584386578401922263063366456663954442261232018312841820512841320440191782448905360522515787919954971607749012407159722592604465823492608212155549281956610493247289908189330552580658996272113220120482584304475911654912118186297763343818854842064257930240623909842716183494122083067660401897041775384943189063425939891071907712422072151158227620885331251528546454985745867142163069613159344686507258881859879975616641946629009066065731533406994631854653167316235295512235648430243308202467298485581579523365416376577257307280992955711738477028783140777904298400555687137299871971858617040795840548510334097374769349294347710210526610067353279030500871415136614122692101120259776356610884746405957451315705493657980456571072544617131453975301345104681324158124652158933445903988008597987396136629371484622214940117727787197147011451019220296103051290961048562326184216630886892767021579061787108486391462607332852893994513978236297457963219955703640764449610533049029020745375381030897452917003009346571386786815218380686690326690978550447719076554253539282392386168128582005414218074572028059554572337030160143208509305270721996790655780406607746343942202694731477694583583318364148197103003668574174629372013951343370512745267368958316093365520098553193292193171026007410705655582767923494277859897720047857445209117609814567609522040901331983755989435438002147181744235455811477687974033409683238373804802706041273337982678066279600131738819425717641935737312475349781145024357910765581879405427808576336524135091927706239117601881291153272236470268286579915379084741482029756221029914083778892976548959970895566123627620107388241949256397764778977653553604786660524452540564013439507383749987838488708834123682960217134399320745455756169772764790811639319027998237207769784723932116718818719956422815515620943564243095458270620249959751134845838961375320516172654121283900418748395472402143581070230985659550738476915650288494513875178195110005920869636122574787287112621790837875537299753021766600073688546093956659974312807826930468877966776612494507115224484607681771791347572125724460539409000327051176450085854476580561960238585086645499890683181021255651859472412020519208232303495779909209897820628746864123700820866455838371143090332816221601954388599450653626104130619899294800514840688530930103755394109487553604526054022465782117925751821625695729490633052810866552324040445774989487568645913688108368222714816160307836255820393516088924263124304295300787899131176220738281294371963886071078555979427251189569354707359849440445307102935311296676429706000046911512951538013889297944111203620560111182235008383067396065631319330276243578722093548218463905771968771448054078117516374260391440688990165151169944733050200873036646904194164943173593398592729218525910453523388723021875514597453334929760628214629889461639770583192392492280018688385462108211222108242477454926513828728178590279895334004749148109494907410643715552936875600816160227763039006079145445197003343028850948489383695292769558891104948772430289141636867348889309018967651740397189948554730580444179644092265286322728146506370363910429061298347595477724171346954238745400119721082894338954961238816880917474159140107904192240752189598276679313266879317819859588654866459043922136818822731467005090725507945935610979881531029885336118015561112018883881987853850207381064530974340737973129943559299775522199607835708630144747163938755979856763456901131367905484602958226401539205321177779424097114678421692306697009449320947600517044915678467154720383895392689680969971523535950041911366568828226814246362039194665599509869474868174222355844608939894075129187031241680229298984547066803848120593281079632636483028968809162702197089255718070705997466688112219270082608970420805932040601309097615991227061966230775557846581498058272110163987602102389598160218434123887806851070466762851877670822594384949243046727437257515931125890574153455723683630810780369843014908561705542629339606856270999635680375641061961897109343063575279117708492930027182502902004194401895760839249582898250926848868027641491594882463281917469616290066047996389390333247325087088467744921204420959327823954530940108916453840263124859229671403837245036447241570069742276796072916049184284416548498783990548443339348462374806930852821007476977852480835381794554034677264301110771599061310178433678344317721404493400843266841544373494592277641798877296051530853740229223966180262553817940708482586604177038804762759415293331364258138456567790898726815733694021035007085959829214895281428940672305427936974639226542405003783450567279769254938589219107898755652696201070895843900866519016300350040946244693795906571315885509533344127268625237038796962414751984436227183226002746916258441011513644797231469489549224013751000522596689398121656779689813717011356142957165758128146916024405656660333274490534986177542857860403501239845682279228021066185386430464001146787863186560309553491235469367192822131924674217815176475299244987178310551654026281760279484299152975034991850220525631569192246508495174464572578886980911474229859223825682265795315952301349157731291763300681581074542260109691633569275501407601544270434989613075200453754776407958288314201402876111230166837555987686468248577324131769671070377182797405655940426673358490346008160689680737544389957823322894709017468888584962861426151804453267137435879221161917096755119797771905393814051207938631213896808067957548141795167046301967304918576808471322691110755482122171952360542595741039531325978407120797723160013777045071042180386334410100751630860463382697330180700784960072828460471495250896144247497321783705980713110613559264563415428056279415214329952537535874805532220126510884060239844958334207341497899513346572122237249149438461694080834929049895027358695766708524675894206139595821825559490800042409248642164178504624536762143927434077577107356374606255853043223744921921327799456849491921023078420037070785100598401664291120700391592954574561095675239518480383807214916877641806451496086004865627015582522191383637881199113670598892691743953617962726435154991277950035638913801738164302438300446192957106014938829170477852417455816116816161760738035807089319813249019760987428164269240103286045330908766206554277710518575656228705668230695143055939584978647370332686733034719026025518180688659701970815837276966682684005171635290748069592109775435234795815055944405775719275533372979762142636047580961453324003627314730992584138303476763692307509474292683401550648566922219781933360390942750600765997717541962607252125120544073940642113362890608533282256984194038988451180074232679805475270415676232332274151045758547067018624211285379852505530531034307524843688134469452384326880946737263075639029283953827659407344653565057864190723753163498757273922785667512035613035508250253825363864322786814956744160793009801205357323263276235061417524988818662189891969136538978816269546921089449341229944714566305421953013319644171456591176634884602535322594498908813796461584181003205376507519697355043664146525051765354193871224550644841816182396330398852709784611150665886489981963119971752882161909678476151258354215215301688963262623195884133401184158535022843779419011577031966854807454930318824972226115531212186629346484955192092928554593383798123894130446658119590316070570522073638752284858464411027231812608681762949541097852114994223559897897839732060079358663986682381051263213659262232609643587705909233086089573883646602553733374585846564983796140084842027218223207933450048384311922352985374533648195683467581119633705672104119658046424399059371247978809007343352725271441985941983214847082187329670627603819202953995938937371319801036973442705971214657305014900033311014088099868387803746389128502268793336612636434504514807006920468851991932714555431267318570387690525649276360887110153714138326788108160331456697917529451714878362394250093643639172218349138437576578412920556225419288089351269851059130184985606540243178004620292352392887323814221656670263449628601330879479430789403877719300448729466896598058819247035125757168954777939226925763420443233668356256830209829813122169977269140821032297249196496051829146775019097550700373241647031302377906487449818235441529421418020010645851569633817589237086189755242738335076716796106627164613821214811548564300342173635392851728142796232825359281156206191412787495608446278697133238005689313027862480752353450662807033252167895411545333460444428935455185690330432039851215074716754699985397748246768220565670282804876419475252521643441264161005387911988993563433046812010651191169958276762440966104056366599411938971733099887578495827890399972452737409231099199865734881237280682671778367674360029029402117994470799730758490978227564037065325713328973161376210121954865825185082539400791729517244373769979284131714872006737470365464049621086237107930235332080778659193453347554505322940392580353714159134390490783870320500509500427426628747391134854782683258226969195695581929108765796487947044304378268985580096244458231743425713971303394068450353445584545148235383613599820757743905934307662920252573793780715998709409883034136655301823804052245966096738282486463492030835002374267087819111247834941149380879405594009468587236666578286007687247397414546910189029345119753134665216003276925386630529198710091360436702421995043036320467297202158326940758204035736165358024392163053090050791254138470067413715175978870463619595684859157001988817318996409251740519003129149871024466778422094292512624024576142059150034968183235672341124022074634921029758526080556153866040530772297660385956715405182719085296361697869439224345066351803346557635547083597683858208366563226004056944833811360769350578198660739982599405533972255164194125106565000611810959269719651880179957048078141796478583168052400772635623162443843660883935411726008995470959056351663833539481818118324926061708922702455956260497232663673843314974546840302496035615151502806136636884277336903345721858666420497469206828046205810080919427268679051588135496559256121205015812150813961119809277676248319441667042305556850977518736332275820128354226311599350060180795125584784811175405872242549520258919825379342816995049046634750631258233365109028908728315245888551130713938394522374025049969160281421750583504558139044153001243867327348951792018137785008911915452266465423025254611823730231339862051590088426336846842083523960581401159376609151475615671881292416659865114799385066848606221185671883274727671790044722020799946866841248994596579318879844411003900098468222943093232270010196489324714409245313297323559496587866032541185598871531586620323133209311819298953044628582704879650338706281349271729907549959869487651477598325207730325009937308829576968404199769025268762502112494416521364805176390400130287338695542134062349981824448960820970726634951127613915807282782599016197627209901064528463944215250371689758364800576224244763024151050483009918953169275654209573733275102168037829176087501829221153241560045481426141168218784801359942558931397758607946766079988337304223248634593135841073044355022943033661345969536046672221444913418197515232210047129372869358369136941484199676394516191015564947664302554048605049383543818365795339293025874880809099526954593398508588473225297952724262262831141467179838952366805740480640953234108353163656289438457987692490456554028059963352862767510265555680426707588522136208342834468424180515206407973733864223354753517714124192514783588202026706407678624443846671493906373691313603865142104920635575357558841728996215610047595343106401502702124020311460258935470948814461096041218693124731236283263403263847786359899552178886093868921826202046003333113629786051578420147843134795841870510976816868283045267168508816269307985391794319605455194955203742348038670690155658217585617583723498393664381291493096578810772344374818503827491915086930959343874946920091711613600811777485599692826280397816068795958792427233473927801640589850074108328890961994646253770323471084829763342901474831414927906336464278677127786575685576251583199029286930558285582683113541466092559735066272541281710965368602870115395738406409238546923020118788431143853532534701345141931898637683720374364769144482839622505419751702636952145252344088045510342164720818662692591243508309240521255314047216682895214298824486382360029764719903755375788395690456699278934203634239950012061248018024773886480826147843483284104772005823534013896902131947894133156449354840627889312836369567835875220880739048001089988303302416866543032569855417222725566336923207639260847748000980339604460239529000831384824143730478286727769109537193535405162933383310213658620087152636862903990070749667336877261019980456364761191483638741719019519741735960842884253425707301780051641652343889048086371842914301042181760963201869728428060391161076589991631727246006768745418351993485947006184813799783295801224592277929715662340346835277629908352887481898810784710996176883063630325207305213422916090140290466919320384532253085283301547538922882234157984412296101943462088601082766756791063788942607131634712228529153845821837195876684004152645016849407544227661082685530003508731345649787574086880497016585735295596122459087285228098922613188612071920667646604332111033299662858666900547695812686746032099196670522086845503573863387201626670886390589437189476682226386858587490786139671958124301256330059239541285156801100134806764741764596006969791764380459061407070891860858655472377171014993203859678190905617227406157268645532821716964754249671432432816928898922837816909456203984279714646578596638037529836397723557122484026515470531718156447292652839198831414336949063102870744877751629303640424922950403749193332176094866937169236317243922018005340449239956468711478110405448215792623918086684393663400391828332273449732655493821721070007316857243635461338796141970153704670651915363619197691123970647226460591650646144493806398927092980370335632191405759145937784063534918630564148488873033469881390028073532656391315578572017437278059653736149154997095090122820200674151068991242034163461081715792967968878400228312477680052042041704104757540534539164651023101214975148872320274178708331831915580537111965233077253817581243593800691209713649074993946604193436153224132598346421957033357521374957047921998960942500486687581238612950275026638356521096518128005360332255647132369037064416194581638260164568045124672293319695626028211849176844841738562960326106045853987431660802818991157010959991164680504609991819208690093482911547951301122435930901951649490579772871269124288926345674671630490597713293987495323547229992092242278840327960632441516893883677246553892161935046280161916528183510581840095547322426925813197659919131427029770595247634762550220458057623493719361737433504538718769892562766476158656906550624457515035477935606516018516919200163260683350885137740772624338743529729783160845090557402918212784521727383751730333712599734602435022251194710920121112842997444665017819920445683760425249842536601055345130722214446225418342129306325024655645842451429771308661643441814022423239524650353584771111147437655313442989927868311199368393104825812159958198982571685969290008282173453636471864419837074440963056142407873713137827093379837824365618812143010267415215527076233747929604506153917342833377818658659853513050674056425036927858017535959994115913728935249621679552975251724284840617468757849342239951808582620894580078766215289490784669243546787720645042150599671172151163202608591575972071092219467808656223419108812621151864225348564563093674503632722392777100159265499232671013846319299669098463425418209490209206176156932744652528523429748709643715766932283719248562904847382419858424840364995856141663925616513515632716903642571968916217469963266560499132138736358103959151539564181615104755572508299419027970774948551606631634398794073727701809374022909559840669427391119970996082180153698526379982651429564986783815995466660509044131908625652414678507937831435228027309971055976119341718637552315974995458361183695419135656961619797321073491375438193670546801149693434892085368540983796584593650433046835832119392894711148237218552391370005231097222341996342110731898784034691387467131596362834958604378755290167962994548478024959700116982623849989272391999170890530026906892100260707692293677384152250771150140792588236985271980538570151937046173135180273979868027298006897765692070686423410642343131869051272802729300570990797042130753860932916893534121551198800172088544405168244037549249568439468352352303334993274786031370310571442733367304330544871959796262327791626531030890104976997434043673299677040459098590030060687416578252982741497299680342359624572856120493453519235261908905392793707252032987123287086480994588094947633107780507388291280868291830991116782466985320695509489486703369391392121255332526675821938168778364085566494815910239674821051278673146693111759707252676176404014621833178316973415186120777401182117191289402908224653063935618716012970710999083708950249055281966733823095067751550070240250026274486041189701139310599207231674381562875467667865998841987507820384012919137197292955728443165144862378472844769506590406946334744851910144006133707481351948460661254357042963513353653781889246959081159854822620141142410543744229660914262808472425612461422745349575218090538810689218849217899378347161206769620437991708451468298596942124058369860992948714528242100424848801970022419892565113465172825784263854250734543724913754421588151539610253981035601820812696744552849471773101644833379040949959357986646458701708561499089180529100657679220103619976472430317000442674028961095677440584235014455414816318718322875092465447363875321464084156821515238415470589103262021835641617365801252568447942599275262623471871345507736967499537116610656477548795706312819479388770103412966809908644116070358837712857981338110097779942356635236897191248737534562428912318836708677323291022330896592268728501836791702661655986556932475108708148091452620499367046975643989488029984940606588638496709692097666722728149972677677552136351213945674194109077762575773813208057861800246464281529261071493782213827397677848384488905057266472830963735559883429759934501243767040994808986108516493677349299825999961104037844877159248657630780061758479363882070429711946102295304244800763844422868692937091689275507921049502115907005815813724393084208635371204916677161030065648533170977747062705807823774238390605881207592321765117913573160172491351006061578380942750493952525125505211342960245451105562153716354554780307782931191113849806514270668741556914431285819331874244590851908331997100929986290502291750277161059407673151341752905236792954421831021979583464930601777653723278206386431387715866406601903089242889213533775529634229311373505592561436828814295711534337884058496937529241174826460820690404619684258920302819416990881269203426745558243227113866598685703194047349408413826226012607736398994950857372450842179578238302615049235176094395857103815723780961005662152806299318961034998006247357408322216538817282698416793471305608748465647735527193011914067737776246257627875866598405930629353838793840420500450974565329607804253816819986092970959339890091551163161045330757453613321391791786271657569661159395164228079595554601260983220582747174413320151160725299351304352108972193888675715388594739114272375680914430740113445269917317804371172276358411027174573712204400697075928424170524487873353120089403161688243384423308864760528581145760868352893103763808521012410623469350076606650884254918716718060977413241410268201804176630053390704628016614582238033451627901414608722495837936580981418538110129879509460282143722289787256068948738182966073135334306899730748930743222779286794275576170451342054647364078504756818374875977096155939521064891819674449984542235895100412347401635622685045412730684133254720886150465115080771505848232236069721942493545865448652644558993267898839674026261353783284957321026011465265085649680255385773970006511852990121043586573141425540709530066037608133789034311294721388928228131713461137214234834548229238999165119485265546190316061727546829988783292591561447140608179601256540082130393935698470350835480750598063409613454587862778205539818496157183861492823171068785590833813145532657095785188470966299469887977217252035012107983139318927589327058072916913177995814278754160192785803598733110109230857183995016614761226649979561063145886778408478257725542674426830987161358539164934598321026172500105646323488363893775832913874095350681031800097866677852873750284665907988809918548650629196929115311105683871233524647776389454990215304951540307337143576240119197193015657260923102459605938655733167571043140613094114385143942060719502586179595583804610556263468895830619580085885612777843038983412771834438799795653796200121197889628013438237073599838518879143848139679504323685256143770981462024668313356645891215271186213013776688630483725911731115324053679401199713383745759130163752990970187764478914873115533903192125359090033556262572399823197799468975689484667182401991087647784342376812989095071632600726879191036834139310792247803748825569540385452953262761576026940899606816368096302512459765998182463377092158392516463090094523738927307027941048370947889601622276532642414101482593896853003007515335158935172756749716163640975058226543035861681359646622348740378677001617973083863410430678986980214243691288268353037253487232101806257977304418803539713810392031577278651526031370604522599267952712018781876351894015518225072400386068996726401721146264186961135176185138539269536633118312153222891147315038117243512683419429387597337774721282659572456271417890729515187688458364408658058553205819661153719554771635955095681240382801420949293367080077087567793638323735823409701018842182696507231322265519859734044095207824426249322837537960220368562877276155536513064737663585768475109719906979585383329201840680840214895785320641995192397211925221335780060262254670617191077167880461853844453080198053420397582503166827468017441577802386342725027440255526374334201304260142576690339332213025872367009813357572055984782497760048527652473948302230577934536925626511453019530123262267200810389363955004120289857707953247952438556579253745435689691468490762094449036226727145989209043393619641225185353670888914520322768478958571040830481816839758805802611285135648869769157338964643033541208187935464911883705205229232834278727185099975350811341451403087894279319898755349734582157030890103628454188729937401225220034715664032105804663618553397826816564979912521456770630057866824170303707598787230220714202840670094175434007657404420719911957250058825628161293178630248394537801043676217700795542532742003519141487545441017099808557957911055977367086507756118993015179336860388885116343056301435930262638026974662433506381103770497819176153642810424840275052324397722788452703742826146210824119634922657837409965415095694124526474455868212795355840768273198022769878900673965038916675594572523474788879194346909281730717726711220803469456291198789129752446853932466189901556668100893842622756202626407145144718371414914140070714895678656203863562817611480455230467372571923444519354618378261610449301824622573767410864456553454666154512608896783803928294306509674998519509898153699187882289370824815500158905225305346867035042206322669316240238000589708763032484078385436806339665023955037430439065836755261109833493503749457101426964558363658791516261769306586637788992119468342071362868668797319381761328279296218483902192354278199603365041453758812027535492686233003988483281437986869189245485047660203189785682549247169112347380593390696796677228694423243750330179676928817395526241490083457331219175887513123547861229351738668277952691960441670761972629404281550112857744843818179893127179030918264862482929403532969093088038879344512927282109811516118670183665185248175764342124505951196212174687809247240145915444362339732211500928962344261703396570335692029687492483184401462543825026807713221614524325785793941730595119554916910014533696995458634213819562162767311205838720546257506781703806737784663188668317589411879353569653996722154582359690805910106659827244055449437191656662648793844632555081928936186594092121665415085720661054451254869549174189129093711890337028321121457758835352245310262932485187848436098861565328385123724483299476496516958067370987308284027380847265710897334336245101124915482434681692901347225506652402387594554429643051203199023880924128154257637787177251731640112664039662023331639920758487598062373616821183498102266052464143172585696024091337728166392142749071544443336978128781381373199477088186207324727772751453900375707136193519749237565980308787398710590397033987331285430756197016166455252982102011155106918960291790598466984550810199163203539808315022190544544588432812509378273561657954306045299521295715848139330649962284615184097014423104053087289286926644084798419028511317338194948560725185997226844625666296981553219400825663049608482375873417338100791783499805878046766762621443810117900208666679747838915432284615897716212862244780400876332756098540671329674705637975528548705668584708460236372481362465732959617089273996115589028525998243263510258883119945143007683118091668658570914466431903550007909228986182594981192619920673038846153759891066557179410503212010387209368191136234241487305507750698997185569192573721617009552045232831798746325090473713372611690961184954501116736433436828072925845569889802070342673677211142749983229410037902580206818810602947062122944723181421586956703609320644370722534811045968887312572063035716143780673582481436844565983888066115608696608320533981300661035676055507189664911936955180956288736423181104003582410127536964162997129394764026924012815691204444880541758598201979754372877640390947050478116615951243530055186114834290975524868453780463326191866104790627230238994063843752468859645576227277537737836479402087566032703508792937692602235819122182574677711189799382874805456595695985305547782917866020792647637458841337868863880310076000649154670506397632930978630800349009687986176210772926039277159621574596849729672225807656917274533912370549825264805821702364105937207813754547441812209699872834449686764304393862020191416812580067056574242511455634671542991503402877074643107492263995996312589039568343844191482442926282770532933499028202655119375776911550723676721611713527523571796835351078405292719291390361448642143550865078271733851811283799707349264340031893555060669772913523173863083822270088521636282128734854432353197033095206528748911484074203095357795363449090277578619501126021591101800304380694510928843880682309647636200494765247973798683937137303158164352663183821500592218434262527848427376173941428942725938596868023833263267530255218116522380116138380798013159891365226389633481593887239990366872561618883233497762478482891197945358415485634708915108170403092317750294871576271712342677716702950377694775824937181325507639769757805110285185424570625344761832766999959608210671222497533502531301342185599361457326790398649945696389482526557616243706185970777124591675784393497975692505316956962422505064821036655591450188537677267363988941810886895062397274409381887834204727335048515741979400494691124400763915703875300788143928673910937736607353009316802690528825636561076684287007780791505518301350205809890783773737115422993823692315539329419229041532177357762165137961496132859026080741589648346543447607040896014230346711360868232893082465602671756886388051775519129319189791090367957158699934651168384960351725459692202963255902474986342359175948435871741237899696255927626434462711539070515822919166347614038327991444984721680817324082634309988418612691631200169104727393218935577713255313675762270148995468331036457888956514312695207318283397252580044124252195532551895548328810887436235034471162918173977964241892806907942564862099092504638515520665863704921082195033436851967344530978688551525932554845592033696944089076706801533462605292347045272377418104261041358654422194072811580692189786696098808334512029602609726673698469938208901309066790357839956521566626895532659670231564137632766646199706656196198524073335895463097728625016649163883488346916049999288892553834864936172952066863188512417198927001840050282924150087848022790131008726685077124829232111295463617102038154537250626005388274534142817013624185569036572640492020360782904016282381962478570700283281319191970192443715986120136755585342264963029450126419042771534650094629802264145273022999950690250540106373171621182732992019891631532984161277859702618972222287647408417245464427736814368575598278502739429800182536951790520024982109665493502689687818048609380022075736660837611219440402063634315384579384994917466075886434195606634712430926566089161969079479901273278961181354090206587933061797242602403624697826351430992809901986148281928064333067848589833896497259096022088084312511166219697418285923580939853377763793340380021549840020612298010634778380515202698014741954840392330825076770044745790026143698286580464747080366848217311083776882746576621586006684303249850799531764976256540724009209403058119321267506868831304228640223032559911592503007481072301867691899533366167715714323517080733730189104651958226517284819316194087288600282609791427370013076544072480526239853751456731368233633966579297547200697409373546229843269046536488736210502563022752435337671928759336310852630419384993990011875564100153172464408185618238020940047971055887082082432160828896432392330549641469169484159826104847793056003592925852882875746899332350042092414906489744513072782741660691945802983804926670288728285003591557888857340813958982723884244238419388958916226547924745450020783035879876866076121072389423848053161431799060223150435292871170358018144057161001587063169119461922120593316709454609684498431064105700081540801543806038537172356404442768590628902685504591937557544803485778093591778746577435594002776545439418442814579642551703685436536645963240861609707408192579415761093046234181607645558403700916164549055140378505237757901878906276306268612097929116611048065579124092122456461671341529421872125965903830137932795099953409018599908738876645700163575132553584132101518203535109440103416158038317129721791620727935625366340777385055138216985745014354662156644829762799772525120549198549511060370240223868870371212336981239533041628640018323104666779077895663095911792102561850283502584357001072665247149486196051694277424481518544520294012381163221503374384329810917266705701650928241462815893653077894349007842245751085993664815437901440154881021688976984514106832551390774748703113576541791604576780702537290752682888355081574179656731978998317151125511332070446204267750377774836811360319420962872899355090380102770274058747008845238761029570656987288100379570241941109013001135273917539454569871761106594383963108461172925293046700502389865674770952225736772727078803585933729603350347583555185227679163848223263385925750614711492736929756083818911981612213718129879801328503058855998604830769568693744559041917464410214598427708084467781267704197049102223443878245380224030731283411513676538313546053617566633045585341998084556322570952410136675173171001597043289109446037182966254962830540058381574620521560645229319646020931825498545014749268892835278960880127150984485646177136972853640371445900368447470520160098591892175726334725186409873088835373042753811207294102516917863043825439092839805833712544927979120448969460602367233363445751848555713862815265620537384489363693230250644756851787894912929663581258032508858693581353049463094566076974569611836236561685901735456115434745274421781213350959661307018045073414289208102431953166111039608442632748535038444103953959634170434168044455060344139845404726411085778314986978671546137456948854786787775824809915198784045662157059543213767605812078312457642297432790073462762605328848277577515115231202380780961624801448845982843386242810383839212961967242175535960622183183359944360392250516132402250445419992337399980882711824912814280143748002024799707920859685823877131382734120028658973883477549080470025693857324126261593558644289901186240527281728624719131714278470595470864211179890316065124447097491151718829223210675205576649112278095844368030661899652832210860354096535519327016272571511148068091973328499446547745926589467487163756960759754895853923002280905045261958185998853624987676929880056151552815372715675935073411069045625002267993373525355592266813085087090283345240687920529188857573998442297484883610194952108791598712468098250759999862532879002024856812180946508877109937252222635996303146016044071679988032716712458510624414903540538575612591935152106431597192979552733336503416385165952871515156853433257470641594035599069450410039929289882831558112874759255155645912484957568899618567830505139228580748020226857643727987627337627115138366950526624061347614188487142084426837668490631085452073118554559315688830980352161251509416716548634271674518808116831031819126719465258909799192202661018579608135366077896464038055470090000639801656840918007861707665612796208281222918422797569455557203259178661429015819026460334304182684933187334925302238289756491219734306868685915714260752364092955422904327322184875334165544373429032491616248643696834761343900192266299256767979065512851204490319483133164660009898099664586817027986853062402658968523583458136942086218924437501171636231451346249270194849897249526738067990867621774593285884044019135499512854216943117787372803414393369885069839249250475092952003509472669268084336617848012265109795079679282862721635528907431973850401429078188564860674633421456759940200414762689654286062260317163249680108037107103342031812607409596082291113953964254419026671876871060539148624275182672338242188953944626405639627208935241733321161191021452331551997667462558060054294526079605020835754836923696821774301382025903403566229463221225529782862812241303584571894307095678555086643131241260588746141034572313417459151465807696864733001473637814855667029694193876998214140917865243773751047474153556079626750898180569789018472802200024313487298137844653832116817916246235232064540814541118436887162023138638281049594933132191920243620822687515570917120563416435937302816578537797603544378744365445714759051131715407927216980289411100290764408732856456710222552055856612204085349832765639600517620068967162389166692902595427749708661536912385833751313398047951378498255675794397224119331510547808747585855730571410920561227696583528157490216790728977212581350839441833595631127573889768602681687108357076989433683432399429246341115363589825459689856825680870828358564693726723848766230914489405280593915061890173751866779769010758503837328260259419425811961276394913654514279179558601063445363986884444761597741406204524474942051926088149713458883487993556590549501337322294228555503117856691065895239911296777510236349469033355225400612133412923261401902035437561454122219474269666190326517380026090531708677620895145042389316743773983882666338793639258040984362225875778844452032644669395487798820318252076294165151550968760635195495934112848210761187618648685667291700983750214838352957171047852114804301542832134197786404944083681772852064424961066613955561066245894171331095678850946577606181644850791961360144530806929985712714395218521278175739763001207530882693098836776230158426382077104605668774355225138061855300807841074006948218376199993925999401588810789205234953600401847256200604949548753118415681855312011417568041572639564797758547009855370825670486092677487634323082264080091318978208752779268002294583185884654852505331819499738011113399569903172658742279447993656111248289783890704642377488950511926098314065212055457131278186564232205255490669535039045782047007878021224389233582763738238901356849516085457650215876813708048360393165986414244404927812753029345869342994529149332025695732982593650834368913698783872614000071569462328186221709186612032310895346404059793857679372401535934292385042810354585605443076680146743959649067083805155779517592891036845470836043855813280303208636834518572805781230573549998298138777477967954851515646707243547112834791106898827210130469748047888180102808794982286188138017689000255023141907548126472347238120104660057167067933252433435444073416028074875273590710055120277189239200711060789371137967735697986336410488336638640073415523254608602688099235123620976836017758486192699612911607809851714577088195015819148807621824361192957300565547047188081423031043929524409865540501394743817080100743688480498813648517802507079850319151051214987124139831616904881845182289351115028726041126903673673038810156707971684114338795933090644476808952849203120899950223699690954997362985556963136401650064594564178744753826312268457937641049634876345034302562118096699725221589182271425305568737855210213132870547929909668509641946482743073169387398935854759047923745074694338823266997303886270318352151521008136119290704857942696466377393805451969872025487898678101783761105202964576936972270148017661994703197379315734898424733485844764942666044165554247302962966853193718419512989403673961411692666049723674891157304547807064003486119492607596998122776277738907225887818317707499967684082358667929889513130514387527299048808057719221919371820414874233153552528231459285102746345883571552619164228364377774539499284315331048581523160702213465735679558315776494908886638367622976642855303219860320046296729685101528169912139743757042390020633553862383828345226696489257596052135523630006225222459681518165070573574640164827452743759663867759617909144291196005526591902127412910948036725278529454062242700423261799764394475486065118498912855835631399641502261326483454029849139012074605040825050220295741314044905763427257053245062756160347667181343782056009295314237129838335323805848918673849852803558006761485473729687663986714985292489354643170282377857607670292175024906211215987503655240593118007809126708451771787558936554013224421114929225839717073469419566750087156904538939474483262324237890358279059656045140147080932592970612790763306359384967508871317147031183454010033506232786454427169282541119281554226014548006916143119716580257008980117319714532607436171889633248110855932023273400361451004786422586866473432668413395214143066715300525853075141836504035996486511534506842029765565945409434307263416585688278720159619208380554861297420346754961528931672779002907655025814826309571621569076868451097820556804433898211609271207562349998989922296455804515701213794568461407914994611159300108392490353023903745666775322654726434954222146435153875995980009657926102917082288887917298871596512646069434396786032521559073982484889085072951431888796398065997301814552761338573947129210757464686795710948162386025961115716164104769126290119806464149767670494074444330251278550166138382722206210769122590571325316543327218044202250366711782790482011851804738897528061062927712689007600934629663910622578844004555461586183650948335358729652882448094548174663527551756980771923305281099493429767860985630259363771656570777993759175744692127234394652545983882016466463876513090239895872701523189670264282694730332957432920462500051719480375800624579398876206061992225699332118505630444058804104960660163310174134069654167164200629482826034309852887657722611597075696535017023991168756122508001997033125232701606921710648698420094646068066866420949668606105441692031100280631304562599020245960206603861273411601391654256596929714803805396871941222135091139164069106020514345261608159447681375404083010833866025309513475253195970232164778327808310689747094694737415753459555743134419947052695414818655222613312214101213682286082767142443204487781038155482949199135764652228956255211478405331305470358644044355710366555611129790066926586372104930093367893376112631094470518571901810753240453906968942207024561612382810857827331364133356339004970898954120753512800821218713296051083574738988402207216233273952832646581343678703742555067712942147338367642626723805473454632719946678765058723355595116016264263623047043271209323371321108296767277004954368548963843228713684661962745362368342174935556722967559132521636277835992495731282792525762942008876009419765371724334648737404296332828491677431140890484134976118662553126890304769016368201691410599221551109514284613418335844825059840269660016060463970001408794674943858657322093386258139401680720371641030497832763512813898760327531703508739787884857781007461399567056262024596595977696605942013266120655983735581005299442427914402822393635914258505304190472707401551294057944910949227809699254037200497885380681641634845357538318796362188480099655090309825268486338506666125869534432868239862326568725138357145021998821542352794101895068394576170381469541798922772626599796825911421759203067753138754532090729872548529066199715134521896419948679743587137027370424630974098155903384904749390640753510197114271960184511090682519414256818199299844884068026877297798593451130870704352205541306265662591146873482997289048888569610714416437814337312884956862328023809045584676325923864580865921495790719467822844032785928239181479451286828079185918575618736929134532512939959252930583515515885818905775853985205812100026754063092398430258647190279126706818656017880865654141514839387816605107981947600031073188488126942501297595380992200067265040805474287545298695422200589456133982065554927561011503842241323032202889805402908990427858280227595652965494314880094837844860646057922433513748592566226268778517107925546781529966786875527984275210843064642573733644057581294448416708266115907651713662440814401554624655336022068748594865831223838460159487136432606006293320590585864974886996061707597405725354926090616654069270401523545043985170485058214161725802233655087608025593421480560162670442985274890698698830755813270229792547966978052978479430299832449457810654526610491910727934600396408775341058152296907960234664037441275885457449616946741218057418743207590449563052731242947880787679176549563599495702679217616732578528003055289142522053316400172986379699579661284483777204073938970883040386988395040540841036033107652712631632198321095885672039119655945289370852006287373563270014380425082150544043789921524587947875488064752499488624146170938776261675614381908128490598235199885781818232312032602285375648405001486356797233684683396520983276552601029256569923048740622377096520487340932523164609425146740973955931432213778461404085528023348163429083823684494799668848784473104683024957855032419887803271306423019131716323471675998100714865573433630721151686273098815543293375592882429096419599601291406689964732631964490765361980814108657260051291880169562075940134254087793932744441408050426784638006909918939920535574135137081467475924106789904144857452650802091814283256769265952777843056902708363472034866901319731789681958766420679445066640106585657865766689933399825660196351359229572123820542751769925595367320264056598456984884315967286709931787946378692878153900535880549752957679148869017695923596579048877559151182927458256159265284495358691851620451235309813006071679114326336827172151453180852492624353367321543151164187264608594821888137232892510922103204640590868189482297697727785647740374313860322316966050947321635735607012173015441074049114807647905896819182066793762025144792563261427491417453086057461086532193581039712957465251546748435903805081047783266853170086579379446554429170912153801672399046422356200573717582368588407095566165080836459319987332636741581794729072925071675052927473452985832157227863030982872992050281262557938404831954297826669225876549269125962584816884575800453135686135958901568449483053794433646561203381786153603994020263602752887806561896865934013218489130590294954909829512526838734388276941838568344421381590834982331430456726926394068164973965477740733025949583365782064593982784340509472813401013231743692571552181851966917983121598957180226526982735263431579789926328692467909599284283918290290424780547860221613351938679996767519825987384372107677339956914428461251697799380778375015797081905405107605334301543011103120350118859205459444577615944619494553909855246515064552914788118955275319392490305864098716150212158767920810439405870751767094741171398805269032541819842971143781226748022935359274278110034177885397589915374155267974422902281182194381816990121241804518143726514329588744618322527507862250023499611233664415277937747611770010684998388604050119836240718459946193957109873829165094872774135314618434996074197695175966773803844214162453087718008736307012982542553999342227403700809691104371631978062217531718496717303712143281198767964035196814084658775048338242344696539582889063758796744219977129596081791556690254639320031496143386649683443148822447216102896410768788129511659470986042398653771484300117757536605266822978913035447447758644553609916731968220428305247701671458066567050289058419379750449646476976360366886731768378050600828274205354432933503136446641127054486133921969023593403143157242536741119503733571870182894937977537460838485239506165870319809648257385105398219012424123014006522667462402224027861715538911785950502333898702187529262861264070886269462462612010571264788097464534656414566821134481370454687064453703922575449942774296003032712254422560397087405426008262055034835285715002845708547525619369266131968349500952308665378606061003507248967315035173854047304694711243799594111863443143387843803541182350931314408135445964654428872058638168259226566731973964406117736068145725459240613952229588219178272899702479530656469149963934090822597529854875748629021497359215354639745425338496641904736678656563736799963916619489141647626008875032726261056865988848585390536849140297983283787545452823865176261708887639819343020453285763605445911848890316563107032225035543072834918858142806784344409173862271844118853549834439564171484927722847739149767074145208986425780779200822357208522069883226746462836446169365406986000412907512124662726421412785420255127658138975675814128797927350404622579044997375996985140048171007332134136299944029150596962402881771180589499090713212822054255483151470175637088689721303943627587509918786276149222787932070765261385287636804158116242383333172208348732702567021518547267242806151827534255129514885488661167463766833071625484486413263503523983373498239147132325028552198768761846413875588161323983917613374443085216365989679211668932268605461694567439563325466025952092695092434056887073629779506638073873638261100780244209998185289899974498619232567938461271689414036261020832401568009868999218934158333059480235306957329934896835646238211235217635272774041078365715683288508159276256582669379443072328366193681777871707242024008162243532924738573019044941521929185086139371013120620549547391903706286835377888443193940528538669481269465270730683106289854382676556637446871423845523599107086936477052749183522281117025811038318374971629094042425657438978863397136474784919604197160569826083005049676621039322827369611931657799369426905009730939702830359820612582385556981729055493803267827013424394477748282156753319726611627821626780900969116809293424582944298512962727704613771049741220175948003681141070612477047015669693575282563296957398306701491698487722273700866444619538178250898823908572920566813227003301527101666133771337483366010309388837832283656935629043166281660607165544161102310227646980777663734386667998794896525669696796326848963908885823242930069521635011325614638702135666814779324219474738477507717510935568589828451240455526821768593049886440562697761216039358207616047847676962177956149760679199317066618368498713177037879309391419236673374971838469916582741086939223143629538881745039988688865522326214381994873554187137084281638719324398791823230740492539571822536268460537201023490011365066026262398429929491109956562166901729776694409879393573852463377966713837668153669339650094003578759388636592016768807770533399513690924036558285788487701510697736054190028104436642867501043876366591697163793470369154762994736435467204444083999203605926851053513007305198135553466353748461183892507530618888460353163923316248365065111142035134612448377837412094477880998602596922239785143805766638659475132539547610533390857241751084941952791294672353669613105782075721661943993173159927916695691242018096301543219131833942267540003007375483842928675979375934721872087088812553390147696521116135047072832347015167021451281686952807058921915969685053605117866590753693041411012867199764776652875312165043262158037697765254146719126298845682453476309959841909227615883377395971828708672169771981232003424207742262424717092657610730564693511027517005004809907691022626205426766090661758090760760466126777066658002000397135989773628875785150149826659026947807532430303849427370862613230832957486077629985051106747506965315239344409121452092345035358905833270877867738859460379206756982624742740642128165252837214686700657641844266902891106119776079507011143516290071226240222124658752062207017954473791337256050949018606775135662200657728672627515964035283275027463633644490890642033354830993926063890144207522833706009861557706602237212267789202888275591351189250241950959696379812238227052339337255162683927897079466819841473842159018930991344376928641972489952816263885427379134027157298834878948163474412763313968398935397190616502675471496398533296645616928427321160827752346089040533531541269228439773240491743380435144075215154379489807223317104900943334907564615593188257296005053388903328015243841123265857903668707243054018999757614251678940164472840306706981227270506968559926491142617089517495873165550366477803168018253503740408325560064959241503112743360046768161977898571609710363456889384630412364659500069364362929678066647143439046634524359415542386534125059808125944140370967808822260613479064208899675188607066009403186449779065013808724703523618647296828642641115525112883538113238056565655273274832416055832890180639257540916440767709250196390728615254236278844843446334504403952660278433426274802118911242213405717634294637148531040964948006380434700195458109013166954733878353924471356589444171094517234077111026569806770143710195070303453884266217898485862806717885191029549416229836171640914510477821468259483711594510419344052962083117656903664385330734283221486161255703085095036341512237180455810228511198282579317333586984858884999273098583679762410087044701793815843114419733157134826516094069885549912931005946680385010897266243751795793764508618969394420115300441086390233740867500786708355957821837812577157135160840940314532202149074615274059948692043403227324865430899392680584074739659334038712899364372413887078047049872994333195188093611812500764827190912265871240237211349300119971675576595201221934573877735051458055586286581215905890631001791396731815430741555529015557536216929484430213524400583160071067268709709288674998263692839224809891054476627729348183568935259981844091312704651704674768270479447058711765370364203001981042074289154662215625164796940950833888505380459997484509382023056813235193225664112324482336935229355514263530563926725644684954680722122774383358278576399564167369042352475375199799249502981632110374594146981076668611741695393289201185627762910994368378293358455495632485950625529273372121402270281685470908580662448001816874901185062412797309380957834521387852212496470318964195863969642372366234205786615506332650962918612856729126650051418618373280614344051659619820830110158368661088391030025101285336331544595838492822502655793681656062484039104694641757927272961869045301029965435787011321925888912126350457709425904440156069595316489069541294864285837573301137553151737993065492025942453713377861407974215433380186792559731457414952228718774666512814089583351416345779084582730737796732084375208396162243629803297744032847674411634860154874870107395793924185517169830997495462232068105085209962830297686770879247157109761063813998884892055998591547702870385073012845334300028819863775470803382675110001520659671432401973063181903623442448515157031151764130172988111930203894764110755657491581580193341473256777761482415445911161135760580001772977686556969898743916031206725535833474607452084753297348398257022862444483866350069817965295918571488899715892623525727254036932784361975017753796119771913226876778421961944417665788384264252040371763045292507093318583372218053568171581895473380163777170087621544963563897001776214675019947052457263993185763199710238286175591877311670299325161464850262187196008553631276463640053292037886794576992304671951400843484350393799157283819376360418608581747808451128752817809025820199530611656070118827962096192242679981233022974664776708569031271054382297601226451115772126078588470134150682817037403222369518274580498680170419146524094546760606435920324143827248851407168813170691624606429323279140251475913508964509625711823128936156599187755648759137391025130763195588419557137735163961127366343403152591925963010235382146195881599763456220925679120794598310172244577380793133366650534228260020306694598903172162915828740299037328175906145621628065445259437283667187633859229699140916023068931861000523485870211620252612179036893920814739230165776404788519749368652357708501113298178013442547659042964602228522586646097236093407299789070451717493395254769111149977464329454692255458094365187969480013741352353294639043487761101938742228187641685496164580578012972387901409750981672176642464030796437516628607314925392401001272942762418837209538616695204225987754150957086445385585707572261004112860762826964716197252502466451166119479283526439870730474986025490882982477677712524906167286249087197187359300632882735013864820735577676141691527433703035381755714378358396584064507595807618514452554250824765084972081526092369983675182011961454468455021989055598966725078646034759912936751979623295137941624846739071692895391325636482600932802128757755443821554090828234246713855029525369893475081808174867673730424016139699491582972469838868936774171060324686531577544568151968155408310864544453388965063451479310494505602076471902087719074442846367127876670018128450944904180858859326941644611084421244991416441236604507753390237512652437683862830787361937084309013060375980477980022869179523055018655624196472753459414379856955004659828844689716557903894663318663096388999426766293678858303808186432955592582947954591936786476427569209490393349036225928974155651857127564937784726973947972481780079398526879139651152355440105889476991644823260993737435681239892277462099624290896928961618146406212716807333386005594203826059880521565306111882135529248763930961648801028088625213289551394770798773606211987939704883412775278090093810279952671024605463886064039080391565095321588129284393848235006403435283194909186518678553147823457921267408997830483443991883109907370104488467983656965525246523319997632672074406772275481340916253053836967933780766226140992248235556501559762705125130249222860389766696660610063726016652853525867498357417168710603818997720476927656403910335732598455223233270825271803966320042467158954127672179553473880720453698700024041044934050989870597769220039026252329717539534144985464225201658210403199291350463621347240667540186330030224767663310645015228589614241719948863027912471054978904834623760467154189658057983312725428900811320506966433525915763433168651989218597110782183306812148247073174004263636249530749657206562885253109599581123882531164442361530225041049751037118416315152233466473271649785121013673075128521797940811554432990172817201066233810851759797842060879823846408782890902255357226246965200540717921212584940486565749619707280096030282658311945242918083379597586607679961496240584926770051078600242564623175697490157638234868701346872976134252547055537412294751591587053665416365015681814255070611685089954197777405922395165683548120663734427564454348361018010500557407352243479469401043137072404838475825038234163003170233886001254379890286404290019642782705606951874862878438185094415417552722561586358114614000157906119071545994067699363587896896184227109274126829599722049495894153730130403361380423754291573264482874482693269594228395744965738120146607036053365082252675800839644369092626815581718415717411667870427083002748682082781441087661259313388171544840654670965951490298583790300246140380633287141291911675503080478371891497283747059427053354182047686267077060172482847819735958062569770644850721698318409874010497212354189557412701520041505365724794547412515471210521773636885041849153170665416914546553216993400191767900335015811325120271508652178543452817911580103382451656354326698568405800678546621614846582774439899826578294173935949543587375798394116817306301995753309226721728503756554545161609979320090483485891155579175337384183195125489087672487068252295021505916143057666464105270315772040826322293406199489192377905253093964749293947336444604057189284563940415817630614470883298838318541528751071204971527347384728457424511077535428608192477675641009048801174560240302215928388072926428013399991740408192690358220509951606413252565944581164690569072522030104306577019043133991094742037531570109124284076022662305255019754076375505513378452701891844032632871965600222530895073346091589084546146792186427325491151969453462893735674042280964530454976828273674655418222305058731509618591527507614446553798760515667564916607995616664659873864536258264722709800824665284996454095576914449656400722167663774782603643892835845180490827523639972041482418805038624715729585819031186299314036683540825090197392165146967643797301808860869337121481028912645766672736432348120815573026760708691399321452826770636158904469452913628048303336529956711537346149659627947913656365293851446751777986750358770217086156902278603860003111271437346992670779326297485595499564035309389113928484435673459798309182092708428702471396387853030791836421868306409647750183803480093984862217149255021866484754781374738933783897891272447704641469479292575808534246260304936471550382319249138261760758395065511890965074963012582020310441461987844645492250819709656602215000021230538082623860638140549749512752658820332703786234997375993191407387907276601604619783966959061964290351163384746174421825632940424985387179576530861529435870474225636645456524554726182765514683282965897114440091258768174007971053843292711648256308195030864556876769852767801340625927299548475640337064957433440772640459264997114474426823551042458365330170372627135341591831417145971091312240972329231877031735644305099694453235482172345275947294399133659852694870218549210078863151842622118278594523512983718152934776376557101744799859037348159661207227444827340057741683314091454941818863798860363673733680766098069030735001905975688317625143702452557559812500726886884739222797934870799397503224745951862103446895411526990444348008849136147207474996909471460111282459600759583999691524210497759289977225679577280008761612851193097662343991652065863744791620809884051561151787172292419140091982847308736752431278476949956739317502565418015208256743720245601013648797687061664226990857868090251155176307428590525833952907789644668163849291500209919915133202885312344348811343144896781694681827411160886379442130318301674222896905408797691087456736704983266742712364869982245238619229626206576176989272421255440289622626104444199360847177033428388884958420889059577194798827757370449275266070166037994794437752589657580144499994407052110985508813923457022591165209368910700315361940820972176260612549071015426942316775480667610896744519363729814724796047669516022217782915639091541608981177204410316901940560239930971100604556786429320543326258466854822056486739654268025900388258644431603322468452025672576644117839278812768352982739754620942376893335233813611150533264940388849179189981558922237001900095588451845259848092921304713449218526837051610483489848517003124107267738610938738149383113867007421487532762881982936979155473689005668912099921001520822461101596795369695353313064704158309366651747512040126481626207042086056583508309106420639915676886003826544679963405076177856839172295197776985021745533538925609328632096455912020498360631047333429909120700208440078638755463293238121542810900208756822450401917063923965616182105210641704362151037748631539472177776977471385808834861912155526867058423455331781703557187617223188778712958764256619736494838564693657334305480260590000573783977146205327044385795958019567337695491230386486205784471131546510316847153643817775585475103831627006323382940034065310417607524921654346457169444990714697328724291448109781739601203846832588622159845825175264848415672438870509034827178090141804151668139659471215133090812198818233545558285918917343568857765510716965206113188918349084743811176447820383180019324357559390873572725068392346222852886462342959886855911464866655694899086955533221791732386374050004738873145527640140469161044566149595816728512783628111006531526521163206607075906406986303466973717785351959741311555556294646086708733408081823767368379262666837836542432392607835686751246760360096888491886287695075196088466516893696706723151681245354941985627675638436864349060083206770078461396819238248744523177135709133964181692437313583513230962728672857242884405295410741956695814410029486828383213463520182419540020635311405661425156594306537564095308452987298742110534945536572693353807240011966933324905046099862217098844500294070228336565221892568201349205701616635121874472409702683320480924248409776227109006412412586003816017967787488773800057810194360902236967376603332705801787358793995827455640725069971887870684945277392436779974918897213553813613907875047688999248803204693017506989526692092944464575713242219812219018266448804566786741047747588323614680735074437052932632594559519230250299181253806174148068923829704310348246778295629881956680135663749962204336339541147964181475997122639864352202001231981842208143013814480117362910253263122558746391069634105657942726682024113323754829326343633822681560138452400487139833378791590596733713590179490546904121163836431821182656358278578289349058903847603254045542751402817103424339204060241303642485984263841979632282778466828850300095100405988924964721064894864114136323827078722355857384324439119010641921734527221383734558233887746436769147273370970473319044379706375475464838382223658185206578749884604823673951714226781981879008495266929891944409170071025211981748495616155600422518724771661601793620157626110773386016474950901325634437766814455616355225943540814212700850882949880336668167676879966733603219056426923059788031097942430207000558263378813811754902186982028998572213127840310672769076228557482047699444405323862627703000422803461844602307017567404365209683766522264718799150191863428694674706991869513895000086308373663881663210961042812706588566967818319825634478471611681162312226639298999295988476837530672215888173118800191210072792667009282787659663802137652107066318714517826070376301406450115130747480659118811339622691219042859037702485282613874255319343382840789367924091529983330264946587329833176484835246165852702064493854318550051460204966976183640988468422830998217723266536786742639755440823824329637459379586200190432343460135068094086768873756150807698099477038817276763537894456482968482280881545949247414859326158452132432748876895761321175372073965312711721600394489129849394081301960318537323082390457854742046673044307022203790421285806081666174533364159596816242491830130110080585404474904932842864375833384821360677262113089680604086870523573869851985046454921406726502485048060442020522868443889352803324462472553013988177322558453055348296723814163706705433706906852251748090065208295653076865110743269113975466052138418028409069628573204309190222489907824759874101172888568904090068209307479418814792165522998938670949736573140950850333862399750839277941300521891041107454212706678584625036249966005586122159820901662053956549719789954188497100076366520441874837512235566561774117673484678027765863901817935835321479901689379212112090996643332840438482689962864074463094081668881666917559668031779704498822482440201770569091391055916695074201381532481894581626165118857844166764002444356901560400064083272295354402069728785519566089584154644532677921614899756726274703036181043084410710626192363091971128922071809875546387018284619740261160705200314739971074045779741936485315264777940521468929012156483980575175559161578066875176418569296437802521005167875499133721197432000759331831107693986764752083941928296776213027583255765062720391868195791049321013071065120993792524154031248813068374782826849597616936271813925573422405731074972947583228303416769800655088007219628179167871728193602351971735164333086631021836323204255581760812193361898279566840587803266595927971563470599110841055327294867461192158792401613482499908601126509808603690632514111822693746975994060394152742330265944685977249830980869684657969225135837129992597681427605763982361575934747017754300576616858523912964201001392744390442404225356291602599479771486192983620412962003920168653789816088967522840526237289524583595603436527429588899813087784998769501026391496089517203610747302204848919490850290677474021563604247555346354338283156393981306602270257478715775358432064785323196381561846337265734327771604183380327624462445115633257808652786660165352924914292629775973376740846221910105410678940185781443388826318635726301381256838654450543680442536821921763782451307185028948900481902039788396830323675431429035387748525865435338211924881361956147492388851820659046990307072895312030013303759150932753874519531992241314704499290231551342827528220114852598996432069324923786162327744421540173658012054129860110598354955646239413012998163937334245810867002057276680493244974686452121638484741478668898608621502581695300298032547896440135283186960099815937979298459308098553455012421303083196160394253124230625036618165881025120600280245976521346772990579472775478290107724711568992644783095928405804843231475456691517715687077456804328393755268934868931556723303290895574710503717246595884975397538040745494717745576861591112462201069141546353036397512514178269914843841975880971019828692072475832087485019060759622763772187802220128825835984724962261900722158365018080818362662527864153193531627515840765730461921257847550096114576101370415937163580273671472028388902785722608321704736161470313953115347095672536363760239933009365774411842422213613603814888658349829498612476243804418978693239111232906520187191438472232527255368676379603324155247088237514201986488082022408923779447141882653316850108663757410880269493699008098643557098351739611189557736273304301955292931294432307067124015196534132253190633644823191286372643453455123343910975242129072134309033310239398301352505634816994259212843667826446933134002432747783407320010453101028709511764299155327646110257776458502485125673126648194751111171815281757538079021731191519867340819452886031653389437808660222131764920589553649670573033355214796637423345024624623924315473442307587395199821752382480176966774297693270140716328788632374665095986755262836273985880557635832050453343234952842206462415279488551475336866719888861120224126317376517730830864246644061041297203624324377346535812412737303253568948016138902258362770053872159665507050360200402370606791277307456648502619904790285389863153811400986516513954369540520449566797940444900310498730612758963196090967795716735407870164468317127471502662578575242257137486274379370398328240080859849817961823091403157298915442371843604369168476661865352677296307641554485281289862369069709959995992149028172577580871299295046936403483205329868413066526351351243716767349572968079395130304948609986218879517353112193252091574461460709836428401907931722966566134968262217245367977814702905764741098183566175893162487037583204859046385196457629518357726230663224904668938621881545041301355914692139923450710615167471155783873387041087388330631618948006146583805098610385658834806926358939991889019973181513271815593949413850954518989199121643154675578939885414463358136810086496032664191343429846420957577113457577784326921304148864671652156884546645354172923587210499635236644353576030872996687504012396372527531313669802531623704380571262938598370410925734691307521999729899766653526240793358934632441566962784553455752095287157078480522991380349746579047476494933336842327961190454967300701644290150263379547334863774505721080116239848470692168878843397859578700265069784582563531728001698930624261378933397305534980235366359456663550975849289535285795672649146834463532294867897676569357055863471836628930634008713906369783947308760350920275510808916851148592511514126138377016860389608834797286205978510616125620890438026629690067709956458870950112442864742395855298052436573304866433185163681489797078271383661377776313929047700798904903157619622363542778159893136721509664758661254535173990317314377867114251866308273396604298806509716002128728299615154013447100330930420301512275388326636204599534075557571406124857316722195649421386886303948536979019001912889406069791407022828186596027970906237380859062468225668749567233076577141317790091045737939075760121152123812629890371152446173096972940503971689966222070809239020222282292370066621556945370251483829671549394312466696395767292313628430135753868054145960178876536072701046641598913682836684315437950498770305032484436106338620578656108667681659964867411199906966909082540456508444202224630111821173009082202433842844941635919737530292850975387228967141364101626295562852602273089144443356271325951620261221527906166021205245592200432523900761862414645511983381599016657312126590996109923521477360692252113512625269834454554619392786867719764624456486598771084530860700429061699458852457196564957719545986676725482855478228190218618332046766763446448935762200913776828626727175388838034427128635438225963961704882741101298322436946821829722216997736562121050674058275568976258955543212572538562984370510047636004494215241943393499338363902817930783651500969054462166080491680125394317486147229073788920993589500687879589739423259526760014635942935529891437333571948972834931731194186663591535839230358605212840164714704796820609603796149619914716827467796305570386299875763249695343666742954551915482900790063473330030600176058743607788611076333553818330270944652882715671054583812191645206253772902199461020467533263086426315414823670777478398756920296214574408239412762866984380394163797062210480792277938592946352788000677846827254230619039389420659866356650244349967333529845127000187405975054197501359092548503670751811848544411894697960951568641789569723215010675575830270121148759430753225584536592961195657277987092290367702015673663437299813458100315152114560413708782206356498994427624153873578641971758254945309288547680544637573231006297659593702922675426670910197781508373893697633250724484922025159514139531214681076670085332802217640874640347578422009437319224453166211241461636444893290895998216646816411263171235523268044211830436386271760751165626516900671772165565491226697415506617836242139644107999765517653667015478413577388589525310562847649290960137123364144645103221160404082134096150618933507726272041107661772760661121890299705845915610340093521745087891272259245424816331038033926874351026926395772253561921025063799213599761381631515388881290540809085832433926135182779032582080279715566033969147464706713334249364953840858804603840144536124185066467699853722236251623965871265222956035575796551281244228306817601571405280333701801839719500992901489960597464822197930506278453849400126970892676933601196747188950857293023220250956597434354541426285318995668702581344173689280995971934281214088768040064711680926024946031711933906477104177264587379168752692018790180869561314255956614573488797696759597183260210356985362007225165962445033451815989808280736798831695081500338681416312385531700057412147079561835462586918320633919895524542313077966006642111718660856928894711363700127375694983651298456534390065930325469959967589820161610380206715648275705323600148328976390351402492638659933489974614201435023512815079549543138051705569232098715359753998169158897571861376274441041332807604960056149384224586893937546847514664946525001193961534497788759496304684445912996775864751513213436164444619226692562701727227952288952535358249690507730461586340727286364404728958120430936754783942227527443576950254900550146526010657677462429363611782886160824152413639228412524270497955450612281095745292357485580985047080631962671051803927851751894351893642619861981161262941928480606072198123660821687309083216094238408291161158700845571442091512680330369368454744592931376535617596458332627335986795618484192429495743769834528713500926003222010678925257029039417599926733843163826676286013048152176945829197967688585860842926615948819728177375568555754097733313405849959365993333719913637463378607436450527218514950101754131003949017654156179312615257881135646108165853617149771399129096561019524885512126444418086470966450204422132502941879863794819328854327131761520660116657255186556117041281794852352467906793285268842229263579922804099369437848432689898669662682643098270033865439070886388358743748073282153882849875830061037774019690613544727658754378469886785116932359989941759797067159594451106001274707812586876494615962773655687849760402007303688672786155925311292240327099403969421700374123041582893430722713640286832334043125212751355051147591818861007981798149707540878472078904301930161295899274824680928461199369785936716175486614474908627727868052543196258373331125401833461973159789053915114216489582093568601294479375447890812540161726990803419101994994535676264723792693915565805219381601012527648501923157769717672232554160969253983565306730195449504921831234217192933554606853830134053415417067515221548782134094142523046092750198699301228979531461438872178297882425654159057084797626162650166782707623989783466111171932496860890286602103589913740008900519007996497524052569466792048850746976291318311038825205193745472416240927183736462377646791067495636297772657855994506690349794915375512106794771581079302217839330070848898426020279811787731825162045909965158646420112718359790712632244576530314592752048049114379152593091766756523629885688852703057874155815562581416791590498624990412876062748349152108414587698059862780940108483434155259799983358179548669089411768252611796444693467830865709900684894773009784273788277064286047093756548063943438817915739186789374361926365326280140407342097599988650524479478389660743350698895750570131793903856737913464844118339161514602613768146201007910279379669600615483362939046894351979469295655981822425384507845370935141839829602948595613747708437594630944368869876652295696981129334559422709273590546526322789423841083567756304632477258141686484414934341651330299394602959404525520078096772708052644545286927595279728401402497750521863003356097968502830552784292454246762203291275016120595335123625632549725037328749876876163274300203401290291480860350683460098900907329513463642434986711256348530759779271339243928480885714822394753151154010451337847411773547098833194453908005006610903526533501108534057772048477683976328290475106323438396032398807104988141761043265685988578406622791860579137546946095822215584740295802484360435060935632174351555044307505202011008463822465115826224939742709778323956857445748408693397381523888003475552810924287693274221224483784504546400412672646448748285912496575419012114338315796646818553798245469343159510133506001736413960610649147392595039403978071234357172268429874666012911473991405536227958521934257667429925767765507558936892456693288327880388839321957279744812417506904225122038161234539802914404264996997897663012321406446545267065444078167943421849450167669731177260018637399857638779764552449084891254771271875564792603227398838649866828336380362487806819272692566674253758970208167298818549428874695275206489965098277609956127475549819522759630976611112356431750299974573627013781838822276036883001995814010307938438153872737596828284901249674836837059241182944538849130511709518963368408993580448139358943632450440433091011329961870094412592294124625306674832695964856801499020383347648475316336189779959856649028016727433771876457551885223103626591917507330723797057253146947381390720009763381741705201516186886697103536261205566438819177993537584220301808014829186890630727253220010385630645150730739363046099787955069167614507629051092337920091137679493886443497352371019855250671518176546274160299969458071977310554400456475487783408299984018724947990231213904272806540571864681225984987958401854378884232321867079183570899603701827851435105399868102596799789020884454621562797254928489983143063010537034543336012146033842700501129587113682066683322275453910635578258657794655184005254581187992367780110792164361439814903802470239330525067885437396633004111468224987010849004447926241154558100982083893792842632122511524565357549182845260894101985697471166784158304432241045645010753665032627065832805720420746888149315879531877100832409984948849941323869766808607574161588923964916477046551664144037917827498073987703890457354527034710806074646534248148053261052546269737014970294337468202187109413534541102409458970518487923452527601590859382406112797198958019227322803529188544303378644813501963175183350991260035249217395066168728635772068095473892495068281862980409767674680918244642957919008947454787855168793765913189871938248388847263554054949901031253149110858550149563326888143952105197344404412959557616782640322213681963823685848769584247442595742511631695927526568329503614213826903742069341544603639640851214794796581525710406998168173348338300132305249854926244474741517441199393418257514246918047657024221460968644037252914946091382411488825056452743998608681772097994229093433410247476052494899555865944772580694871271699092023805658461237628050415108190018626011297229831959611255597939347819446699640441922148959202364144213015024457700503274771749211439851023728274702274797484798273590536937265034689619571305338035462663122046025591861114640575896396524659178230150334477069616287944646654848819224204435101942618731956726591083581042200070520641814082899423315302588020781050676320086316099824055472493318319904024819273405396995722756670542440285753247360319751935538725112917793656595240127076399544843908938408719170385781676830914236759954597532110130166057457536706893698419120600377857609055381998239084736979647026013194646066506487740247911061731025364693579065761275430252706363668720888826591969336427283394956970261533361823460889894682846667237063534830825018979040332545098950753509748468453011394060941876119890807586768012109584557478502412465476036501931585088299470387129857848976946461707409106216074166773968824069786708893199698139401800876735044494594945585032406941292223791852229308799914632914413014454307673343504381237044119998093015318689565565480372222438102193732531602569593066013663228041263712286411326072866717581399158802251288188293629787773982661243431370324465638498561384428277257305803115597570917661302393993259331894650072943606717757168398377452748148642542722128698533087852922797971545332380539250561358121623212974086668887108269706484738273807428752465118629534966964328554354889250577272610391394059759849081953977163200920901246702684704042653317277311181416213211509462466194917852460274485453729086052374135917929849699423945473477613549230659552057596320094312618620021983869511059897603199671625883934207784926797852599155082515009035197402868687108331390951638992191420521659093786210834276103226755666652413579366159434348439466394397573365379800586804487279838793656815239671334785022668019946086848500115619760824511934713276940141492369197339300583418389725701803675659010132501241710063162683329457304272633684002715058067151614410508895647122679685125323991173456509038594405340325554198218684012848487295324932090550706348663760519628222244281967025279551400077298546397755468338941391959587244598419722839953894662340596765672757298801620207901884671689127244085885538004172966134174635187749480253180043355773085951111317002727881531235284362176866021030904227228756084774783736105347004681200356401974014497191543289880145982234044872498691187306772134707750429910261936542663559146036202378626227227175951846535716411125501880532678704878844490574931943943105000554741201760342170272910405139270632039071939457092569030839181737294810050773591335003571163685864516392600994796332202564655643257745857371427790580824189141676209767710136671277935789115714697522539331655789726590535978575182770080773575715664937330767480661710694555537088581634058525261252210900312484886337406402534400391949272307921928151777969798786423977740500994063596293513406209823473916516381521632092431652526049953243860032842828069831572948592330706390426454310146478036342531088773559107157744456667564883502361328164437946977168790751045527215154803070625061728037053373204866442901823901232265822056117529948215439764392518947092856520258092743160755075926863210277411277774814932577389340602670350082397570058552695530590046397133721281101929597999854424007949039715669092874482943234861783080395585205677834087970248021791477090420527524933218700878438894052451115385125459013903606340060549701256968002588497285481313278624947806502314538691400830387000998027530106397284230753166589540996914857163449724915523184425844001648670858876726057548520368251158773194832838624541636610338002110662482332582323456227679492748327513304049625162417788539869805852233926528732578812218538561514934844051637178365690907004905109300431132598203121814298846012986185391989618698037291675697395290763083708772776282541458190909473231002443976174589445161343506064597266663849322495552995580842853776375578378915963297033039187536946343065421079501360827973001838289570196525098180100567468167325451856056045677442731165445843634137563170089061030304354034427224781773794399240204136157905914020033254946488782207384410585048474596337950937597959211040061787301928694362886936795589073918872246194532265215164160331374548043299855590291948598777904364689478011100457507932618687371559563091332004447857568348034396602735080082930604498149388805337925910609504395251985172412453273133974657195329030225991755276867824652499363698577726123385043979000865521792370830983216399988205263038346671908704058180025559308809933204363126139776112215490943607913892948416495033353193799023220992166870361834084968122301932335206732403928732208411212043775535468648827710537807698606940720312805383600009168030392728678114440499776179916020756603756347154734995481000242094103353154017975243580102451227567466221506544188028002368714591985507349728169777320113679376096661403926675379252264499416465746822143057330524232344969007825833661835847986521070385146880832181956261892959837888604761568470667586390970530609214169740004224722079257049406176273168151287949722779536938411850744670964432446374583456840305562632560142752125760983058925029671779503268739935063546789125684755651784710461713632776379226223404208214690096733131064969870363883722744032547417537703754969426620461676178239316388716116900257429694095748163852379114047108584523394386655171304884102445530980439359706144343377751921556462901538216564133014933364769838536103083018435958944153150849279154149417317291151986830549214321862701070682928682240609859278342493645842950588344181217780260169023365843145661308567666603930536351700663561432649648988010538926877902689283288880359980070195080898406529896911754076123684905954943484054350365487337156469538329394325803854712074753393094779493776386574961442978935105259394268872663068409664698003813523396641839846574176492240529179931544887036919213564367278451881191063753696936557797750962503460578095239932003528080432364531455921889113444969951596844333024577278271590152607763153771873246455682755781098927907318332009707762228426356418704262843000530752553506085672078739015067362919561292488735181253392277981938557903694160067109418530751290701726247024452852854475725245069474942080805369723935438006376763770435392942957656357604228119933229097772940489689698726608844321088828291151822790384960541688229503448924612381158843208854248372639367470045605853624324116358789217908174620151452032669653300380617491789265088368466830566109458712862619693816654399558433112616066595723863110861823661968229214866604913387314867944819818556433026145105256202841672459153162077960454033953464615252282223600825935209811550403933538051578004094231141202565562991467447602606526673697018874506137534501533325235834923981659414457164548625231026862082075710797734411204206050803160603818707471796900314175283145099492163898432450274137037679540767880247471946384160534749844865431118306957949879132229966325804358650846188865341685015103777308049470637665351445669795716513326112439989988922168380856070618650365418104997657312175589755898394253806824750120174159712095486429448162264523575107753034826721645698216227375174504140959896855884472379863646022332985659333942074544975086212487409471609712739152779846464661226773552768100546107905798633698588189065055944340997411452354792933709098619574213433945396554371141892712353285035270105205759806379174153403109065572832363148408224267657181734635318566128464332328939477597853415284094823314113222154354658518063668114441032197273091913953611962245234482810142682872112749611436274100192902243359282242440422270487873226059161812385249381072388379260690042924125105945747806556048753281683344085379327574906108950375558443869412335682811448541337038897181578966951209257030335082230594640480444548685519777183231806685791439964433368683947073262130445737098604465338989195859172327157679720333013145463765007082369673327969282999035898477584788905835847117477055607769045909076917419245013040897575555498343067360435711732696993933728019544910730423413336310079867721185973634452111109609837380468293482281613122273212229023485703852967712707215581356682590280664283514777771492779583866426667326986363964860707715487561048283936287806962840490693372654726520370841049402380195786056287197817724357876824513307208674700905148880644905681233594032264525079208003589442944817831803656180718346216398204365592798698777923264712000281274173478564451842424314719120202604245091451850873251003996815879457484567292050892802102641643217777982109828017150952419136396295995363823410055346595074572586334254151083504337066270841150119892092701606420075586712927042539913214081158372892234487172999786605898506205720619061919451458646709625657272777330149372732007643486229958685087565679317944017811935240034916670111166984560824236600135215164283174509573998329091243063270981335544990328880069936708819197731802722584787387785945056386715191842809498345783514873666660964952764196549220166607958739117414078275710463767228887653538196087420873102270328429734209782589263179376320102610642260925985911992485200200515021276063104417151658841638437406894242646410947279480451977847834014024659945138054515996100620730569310258570704152461933041338936556908987554270355706940446758266505472527988771592969349308063990484681038351094521393579599850413947700065403208419242838358869737583326691559681903673776369499267266920018680945091097583553907174433598359454880609956123691867346858717652343861847899227811521155418940102765587223558347611593049935433862813846049352026814188939047215107318533754622507059687810098515329684106497770716018990455090656763700546490640495867573530426546333819381339808631675160924060518527269836144199074380656390018802877260734108186726773171143969602182964260114316160007364246070054276556616126915919260053167287707339691560811447434198834405114491283426941588667736178566727438159084007550352182224290267984521269620294541091742071139746463531176352020860524206298487851698558043235529748115542770691504333148984833787529289979104520877946074355124109895921450201041634220260518152672527523518059665892761176954665470996123887723720565735139054274499842749104802225210929343338564431403325708001072352401217165206740565345678561415005068076015508750107505776068330215669255697066748141485773498548337301652871225508574917665609958885975524289862752652265417526851108260372685947496482876204298092357603931516202986338378771503815876178839598086690745811206952480327799535818412434616443127231989820330489561874535502492306318834545962460857662134633800701118473348561541889864403788637107251222577321147751476720416564777809944471693401759948827012604715202017332237623162482681050771716071151952272396471753981933043551580330239912167944098380432724272762257921646022671031434625341386695703763499216215920175024580086812312151853769234406827473319784834057457358023345028010493759953681360194344950682138343452641995421012394608439576774978026815777568674400226706082151135740042323163272802415606106142289587342313891864981477670560319245023022959142609657305340996452058583644324934999149450683281498082440266334298924974587788507003461515711175339269828980810722345547756871685981548612819550468227238668761406256407079136382291774287654193467124536519875477313221996139195680615097955283610116533269678586963666001169366117671581360773103281524735370864573199709580333268048445710059544754910290565766534842096775519895949058744634036839636881349761279156975395531141767283390621611668512345181630206089562317696803638661197212328827477767756204622793690965811741119169279283616700283002456742095891856389043019699982503333548728146620222205425679868075998233830486444999097522143923037863258974993748540966573525076015602516789219533182906981388252737647372164433639574748559916059804781568302520858648312272842887959364669367294841524712255769358413164544291571972633250083443374908195315524725665059922621409165392203280475723012995969422979449771121739750504080533959806607925704636469519238580866620027461140891005054733288458866315125674532572919372166651905104748831058987967064501824775657839696379352830285412920305522204688556709357129925749988078136116849481515762536750511074462943425818583021146147853543482996687181370514435038229279216478331308431342205154521806043886276057176522537886145216148478100665046716674115792191559327648619275295186362827909351493104450070721891210418516493451957220963903860992482087107130805598485530450161921314462423368979427840681380661493920587094801885808798332638468511151525201081301250549261214509315550593372178355527013053852109130905096050605630844947003246612021773324761085982474031455890656754570540105056251098805681038506158019078634079768970430299300261995453186779062178651125027995307292668429250729735616846612299618990335102387099400799796324066682271248712001172176486569584726272369395927170423896533401279446843738596347193823521250570460442911302610516527368683586455029354438052299348701438622610208302456762508017525270221968642070326439482067532572358626676340119536785076736214322486192227516680567019441153129279008146367557876319381204683565915361526891505991880733037867735024987783141206191898099534463895385067308801109441607641133571388540908986257072234452832998255820885881493145646838109117419180903242183703262213119381948677363121271734321606161760518347498663448098784297815104752855384100804071694001439683258136925914758854412321633903679342754679600005140992804909753567238277499467696334023528701003254545051417529266109855095796769893863996451449606439303039492609910965724970849709245437519031791949831018203497106917922200068644193562501566183941082573093902836756802099585881685020939403440793054467629016448999068353406211460610421740102206256681310275016791839328746430426540072609843844753875009054674184442099222057491079712758137739986457259681552521410066974359300162104096926143089944912262795969338739245254899412890580142324663242445525223875884280279419997882301279695066683546649164101682631223705432681225574340884152456108159527718540573637738675231184736325980160328254776640849583892091042564979990413864209680890096472759766235721803395277033233543915123479718769526310007421137967737908935506658221568670611772997538722082809952158563748858728349733359267119083929359048737499164880723619954042592200244952849174717586092439834224487045097779511220038107113003848768070370826782285756007052512689773656065659471364998047481628706545339965829438164454974192742928218176685954402642374860014846148360913767912739021405713502855321560265174127126715976163168315010367584375923361024893292091659695176318474153074520449436137416897745347262348287961541801364505283449757988272841433375254797776890937956390966433390466913874903427436490299129104368610335704965965759419105231404123558309417643645615949688307917450537253055134962147356854389022572883664613907500482090211248250668860192319751645571682132610813186344037526667106461673611747471849507779733870296591146157831485520686522501510480941452319605932876084008745146312462026037247958967810921772114371183522937565726722985758715201571062009137250319431205732701808038313772954923435774545867795888654937566521211820721150516449743932196303799306790155732025158178325955146197837762599707742730232608622078242062950495306125468712933952445453350680245750594335938023455509393575545400675629657729057422275620698850792475603048962639101848222304132832349704260942219554019373552776821375607503563684555144501338340739000571606643330590423679916286739267174015960013505144837082112321840644457296177765388846939354206223734580113775095557665201158864332455205083727797785034747034721400674883994182607992748146390247392001611373381269857065881850860327505608171564323723317474791260435355883570001985621689786174423773057732288144514010353060698095711875119815490361842533185088969487267338244933877018928650487431781391817991251998728915505323542947944293206002454343119961480001915193881030866053833183984448821466142077696231195667518350724962799493049275403741629415152201439129506043629675132112069467313195504987526674739144745986271048573366762104025522223090328186598849698023495619758356969065711673787496799174623191677772281834825123037134864081632961485762375155279106136855585748121040766610829073780549206055787830451822051288148103559839000315249282531538276671440587307374812542184623721548041422921663011931874370073499867847834340526171773295099880710141253641236674792650254856092994554979002037391488720485825872697580706533709868156802788004024600866512003602702138628557294308389789791253065352858197933226505255777404303843437920534825559292060615403427778340214596421080796509109734861968050294905706421403321092642557664293374079638355935131194474852267143609202032802820941829858527144397318872680362964091069809798185402460879555048904869656330693274741128959761214053807546182008845287243921470262413575318786761050863571319742355282772284005623841491772431750042947914844688521659644680928553023138663310425015135140228255283403629151116156398767981451405816508281706259939008853481739230789115506860501486568384051065726883757765070220493399831159867470718096285362181425108328839287481081727870652388858125046765476241285131981430808137922283802970024455604742726421539197670580254410324194006138038731123099246378907975684813419442325415058156138028625226283747721107762396803895377676383080857866686156292030022848533515849575617355660671642323116237126089870059052036668995454358140165829068802498125566641478529702346686761010569908150366628728758471829790834316377994580630458986954990526800023052723828413044927418548114775594235778485526492440271262001937943656430758595394560749144669308695743497211225441254556882216672417238884135030955654192730823268617098169799234826841040410708129811173748549359407033789758762741050196028331414336126425885334313776605420180046260808767420269532008967988942899419373143095836744583982285180365141503434985957918351354510374038041306838404155134487495512194051998302287922302235350248801103750329967744619254218292194977232180958861894930824097082025376082442728140412786075016317265831665640258664346801712449304959953396861150305660066266439373331158300954874042569671006128197077362476861945512068611053850474499795371270294045186486665754738157906745336092678863996127687787559376025825467628265525756061033915638750906306072925928147928401265972626709259251625709440614866179611302195886514003161969568171336077180231414674318064359675102071413224231303552333870643702901001383597537225405894674494120398764509893990171185984183922167115954891197510564669424499680319346965693553840597371312205218398618268996363435983333471100382995204358779229804409194566829945509930145803522937838417974602489446733577671362017218570987791392523591336643682087734053584064736061088083423192906503690815328839299084761664177647406027951178202779079602684081038776799615408831972527123775095878260887267563353338109281600893762284572789886493337521288510672472577543967096169568982286977865339772309782897868092300105350037127397142850466575267701418152256699768643383537076102997176479595180679089600130867443252142395636022224666012403867322722675469943380023086789604922402904413694297530581624443933763694834735151660664302316634139366478003274408726309135322784875234937972665632770161395846885025737657736847384180263088324459664565652222071804075702563163147529930173933641861043946919245151768494624051252829183322568517973351739260826481289359524543041631188487374922328251379669665412271900653096570285799670315099785578644201780642913581986175204852896293691168112791891679725124984736614102869198720951594699374257663836053590794790612079958854799068810728546426934719432687276081650726483272884008645599332220017073549941705268388025058757028094060961519122661822827335152914820168851824748265290972438859485547340694341737155529011026602405655336303202092253093736647180676869419588306175363628389186445434973786414915853849255185624711121983170523210275455736007524746235593827439023712791527746556321131056321053778483400522969796798378207800235944696309085867943211573073757531409664420852420886916025285810090949547187146277204584382252548909531070987925848792698957860215269566926058866548983103752144694162224055347549991759725661538700584640852325776048768541874848925716473351665589930352667851089717212333696098060396303031144619274569811712844769332098475287304927201674363553923567848597862989884823680059439412505808408419578144892160761906476871275700030961036264362116308056264891737890635674971733101308869660036651348565306561895598200922277337501512052473365775414782128032911265010720973070551249263343199827135185050897241732636118514571337292154098178267969533365307422912006290634379524253626165923907448536659902415095270335509192521437383270543649020882269447214535108777671743750767569979144599494161543751080228951218510286606272586864470900940225983421674576924014109736051419985720390921945195979500405483538565760914394343099626873098668167517066802823301872874794109994015797856894762241915732413316769552204099744701318082832781768056635839776325763869242173065434942067275226071942623564475161567969862384218450771627519026221330041329475675262325693847247462989718104610885804828196274383196731290845214850113363528946560266644104698716652121411040859361124886899903574761734654259507114565192294622696713694977039508346808270204092517190555041480851148986868373691764254830108092382211615294106886839843940583152349824439353146970949363517617769750700126376434936785395597532315230054473753659493034233750772723154713282413091330673923090293875050361709712787765827319445532640727752596829741289898426898973275264121101327561779706946152607609980708305349109470842720063236449629980056566127095641002958250618482007759548280683172909789718854307681024541620604583945198767653675143271464440103606141357499690816571641602168480209616107408026352853419387792438940253046098742092407161887980667815181110001403187804888422558182623193935775534216190527202641320371157854288054374731881790196500270744737686242584574752724229797995386581288288069846564776673113723958373316584405684159557652479330678988052205524047184641034742542290532104152301447806763383904853559991973436859476341667912767580284920492522006069279597924983595775290235701142844575839982291682931746846570883636555621473063605801663813061468150007919975199720106121529327548559717619775699048792669141278440860398055502902820936201168147824205859908599586693767550450403209970365666797377935556561422081074940615806190023186356830415715676145898251360823328269977832438030395786229718418351353016959344294891644815121745131682950624150407189672996601071303167783495147515471372816525811060160953618131775895815522104579397089000079651732638484701422838214663090117848847125286064225254895380071691055594164056033642307046718275761927079193387845902672928335704102796618935807836408822930843564697239924742732225779884199050036728462807225533864972102445011517531788440373860740508303749726628905639849348150498636395201527455163138066666379051996779109770528796393304148215611037242860137717196590541348790517977053680713624515999402589412464951105819870082368531086533040983352470032015859684138488294209367193490315246647203845133023720197812866469423854461117671555779366522176345705862154183301859770841979605408645032517625734314184073510737602638466141113799602021798259870356355138133001049694755694852236074409430785555431699795986641067160303154304722616744977974249676739039905950442265387767472078397915287639012305487203061588389346080641324758703411676630159757852118075135052411297625739062299784936565547377720455707523765067284662989135648031911073960438714773091212184254500033933793557447344445522475310235092433055584391317361901693111497615739737330416572211013130365558862314235191464601808613441547513041055625003957365625621828957158241298183679092585179248828753347895605189490925463166214897478889546428423376970940724980542479828240391983396557307914307457586671111594726269010405547229659790646316404679065215466121531269876834283228396514655674718554580426131136287932295058764330191191867045013425449730821769814373361217280818073451301180153494261922624973765882464747493453725454612623519903276822046845754630339510062109843175242947032966404700565597294372017707223581308273076025228369468854693150627979363754820021560697870798948204330881126188248903255578122084675930929896663378798741554635337214866579490706425227563591414755769966059238963366828128969122170472993570565522867319785672200971183726822854692971685572369178162371316248716090428240342898398408489332755366331623912771334535857230124770554336989890384472771463165018518526743763040848440433815971180018966541047285935206139764106633233895607343441628382420655408855191687266892415106220253615230016388327280937047022082841462468825431506852212142069085527833423157783174610544374655577657175559598603753026609596884674680694298432622672912146476965561174030465045920747158784093161343329173764129184942985929259271966592749785932390535586466191595193363462987904713725174205895320097631591852206736276177913213535236950755705729896748504546684753695971036098149518168247732785655574111603470189785012013423728150229653694938336900991504027197314990886345297254311812687464322005773337707019585083344044937097376832669580392224460914338258654899356442559616440221749076046768289348785013086398636025904930628602864917494575182265925267789141119041666589597815166923091309499888063683938801743918393286709241575520607264098265681297771190747105993696596502680509620502283841095519109137188830768546813329006919858817341580097933891241113174212363428622601162196264583841263664817036214225608842675773788426216716424801822297208356945147827955664887009252616303496611578928746244347748988538031203005798349104942043572651844192094139198280995840739785054862120311173960354217829243743962375116437571968257524180507232496493174558705157942579634936665243485435624722381183420038203851602869218480244001296586427753276523573423856658030001194915518460098350603050110147399803217777950106422633391662822080774086243177053811876375068873580673788509779241296006707515127002624626534427452628167297117157984488910041473973964666754786235576396231189924223756584242617093042204560804594272550383522626699965960110445513553867312274987486641983939991376368771711928097245455946949970990923161438323392334776435818241415140627015245411631175411858007231166120664006885796043675249120628061055892960657538380980474109222211691392896248837157507142728012186287924987647415238171313642947522327968704987680191828802648533347890990758508222117179579428326084888787865855339667588742327107253481313139510721033490624562925580030808223558733937458886688029579424203914337672706273973957095953897407383541632811163782039174648823630306064464754801430129746647872234644936517472723317880804140309872060387748745405618639797307382687017023522060520941623310577432698300522948648536373601343513185556381610200132499392683909608182033834206278098757875032125015094328305612505055144609556025462147600609903906819945159745865194358128663850389811954656526705273581127681173918482301884673181386440143719647779684198201528719537715569779820043226029804758830915560496610872387954122887087167254161735366807587693222857406115160758232737462012645563662719982281533941849996822779323360408565263739460804261663035675544092214702508987039996033358401837643728868533527503002816657275394564183678600459855286658239038696383603000991462307241731636400704830877414059705290671152975815325245850638589576275467452490839443374256491653648462087724430073569529229979032753651079388954137703740836874185973849064668103085798216117326520659677117287325148214709876589597749701928689490054795862676610655625858455998993328072425699261657630817449724948975290042934551888396594606608467595017738067656253018342596749398845955774565646384936088660971934458352058555775901048655134498190071216232254836234543456309650663096794843989108512399409017218761099075686061844717491264932268549575303016367732091216117502160458484600999235537154863310740339615860516889125969495220794560066707881857425824004612033241464427352208898075265485547811912598206076947447130350764079650783571447973754566702271592142490128265966680352640586516348973945929253019353722649833004670148570153694798673414342865965748207031885137035746572751435023088039368612156293386556035919808060702123204670850954614204786837279922338877304477899572056440289118544393113180364638473960630580226996829141440146173763603373878368092415479494095020937742489846627081410492637729215790571600990267885859458830294832576382160937533667583063768315088082905244687281151010749522601844374724470610379056842532827909070041744831571963107895874609215868127795921586095411208791435865657386128298778016530211928602153451950902405071900447311982132085056085886618279076181011311859471654551118431900868274619093968157527062294149294948889745528604209431980879634475672061785902556410741552111454738839535844952620336617152862428047625844423597845872763295219552728759472603907251360972798788108065618391821128386613533753688470574740659635457218945000997803220240492278980984749965702731872114083060249133488222150774448231652990608419098297784057978399209513032519688184479079344263662360898883648813387710208109775398773477232607660240236589555719826891733243376497272381406567658079740224641854429526066189636818720797640853836110103417569848433728844801468146787069889443606876493975731860805045667251689117964447690510711820804637188479345716616495287115516130763105735871295396874627587305709810814451086933410618810592050346732183354598952330236289652128207155377826189940197285697507529357251443374220601238127695056598161453997711327721771651517404071375569192626896691185964967225113457368713190439744976819876150970193603910645183745092098591722808305395525689465956870129929058020131914181308600941305993454068655314446188746912307122600636128192525754800258060107827150396391794570278794563252819091052467980755645735773298009986520257823585273644612290349287223414739059932114424426066670885170669477743248842029142094494926301596999105851164715516349757171986248203585233544984470339757082644541551822018774550309501631581564282714912453157822903529885084719626234337902386351297166618790869638218931628034565363487202857283260534261018008675140992937029706459735177738787348914865732368079477707767608087251226174075773406508391877865849456442910064927246561165790802561915022687770296119142474622139410012227749759007991026390734289742024295519104567283609052607131592798303690640177983205638464078276701301837766951545706744113298897542013747469672390474016175832621773266035819165647813895919294858455683419771208307965842972421153965033886197052523993316285441132383275629273024425043007501616439212550950898111991976012987661183873623005568849028678407434836740983554672285822180266814714006463675191756955133639821555658739190689880448164872884647807226263633333977008122873178528222856227942157017241759520793911334848616604683355824400239718355729859416993743588036933629916966305050628666446870152457129749198771732320006105112976624304822699890710000959763512230663464847371376723238618698081415172296648273655830584040137116520209585851105054316403860473416561301423473424300612950049490065192070184721969094200675037265859165847124043035560503053088359550698981132881777631628649448403224383450319999276699371139891545127076961300701016027874639099424353713650988954058319331401394754414190516493526441713797419316280543808288716737534534389563625036751543365733413638835527251622076639869339673292750231065329433791400872435899720063942008997156378063366796519827214098482089302701468535496798286821841208560499253465139081010473739501392216358948984938249763236349640006469145014221604932718057900339297001967700655511174492345363218601097837542404982536174954225636658155167903880468496301303845504123985576208838537038930854605394450313035749807526922834995197692179655395078583879015142727459913681636190424922940642541826006595211235424974597825549227980109751628270598586583999906763237064748804401796742124681830189429646383269878422526131600144234390073678366591865255274697103390820407124644276078787221458343752694014559222297157991215877677810728794968244071231793565693904416990925253901520325226884200374842072085791158096238325441109063858652738096866096385047691465044822424473530677958857864864085455901688494366246765644422897169914132630363870053796988147460892434147453070037775706786837453379141151309507789282328159569908601453589333697663220608598361842476534038025862355762030011172691689922607563412423933390379857744173810475124419044164796412295352552947037146981885120195809347645498332126800710810736946788636589929458225023881390189612079939344005876528485014570927140823579859717440311014865513759540171138053136308766948711386866798833273801206896821604664456855485511743792005024751858138529330831521893612690572611546182956430215497642815395871773938219723908423201557626767847754745499279954617623439550052157340302411987486192266884082314201522607324722788870702753737519994827814257204125699190292845115645042839301130328654109152795325040302288357020524901870827412462297495589814544498201869134684034944504154092908069320574224877994405571316640324613425267009405593461405409051929963765580152301723016020637277627978506219295413185859545913773296917394793599976934993770708472237610292393625106777742063577384840485192036496119746722927317721358689410671678448996749255583301101088535710922248239783469599382919368517651835486312800954589056824014357509232000719658111458853905485559309877124381463778390461564766432557703898741945988324173103674671663748877880296283998002137441504779620788082914388372296124492259018410013931942236523038014911390650585197942771899615812415409928548381384207131192902345945570907647528015102992945136013464407840935302973855761202285377514581481426148420561320596511017362984782251916301118532546012970905762766470930570065195030496980983399252043522847753791209179718434456833923181638613471542994257912880717195016100148409096230025409770481573258586697711729045873218607826242089979456171681699359815935027627836060685388657384408154346023446128258597960600609857561819936062186032873214143069878234827336516075154218120895461820464419991300987088755987537143287729035404091604855328846069373101656329825449110529272120858943342071574459041062336885142860909868164632017253460323880130640590192911867235977055891780902452238906047095710474040510064506008041596143788479492047538008498874146065179042881454875962014267703174606466413395044081631205986984771025856558156491457868176167747689533082331131039876325509489192809597959584391632265428447511633106380144637019710892673634244891382983528537791947303253850342019251482064127033358307268243391539156745093619073688058935300900640588722746709988252894527183094074977032231151687417095797360515527059157344141782432159453148252364542742218751279008488831025805293546195132843355975885604391201502121552243084914989671018580357609326358357590411493330986157170974835078918127564227086643900122670096881655491402524292983998993823415395830950622592209950940229923826422041884822301073362315339403881447847133557765299013565804493953912775999248789708259954142739617614209675300050633468553263830338767528609340660635830720602443615514926040818727504343122127025155666003393922110578125628952635313544736862787567591279445956720010501022551141297694676948072416134672396966003350093448494653391353704973051256430512852184397932200390587294050003042756197161305783631816242922803135544827818300823022221500736339556124300697677855093527136817854978472886733090196901256205005041833262223811773073493647234045379730846867190217340992598188448620615797393430004081831658693567531533723747324818633145070087280372771104689747824378454729214172755788208855462105683619244120267279213600155463800950459630763769721847570797248044166926437674078771840289750421044988034187888729416309556991901656040366921585456697551833858523323498970072755690280985935311432313706691353576638155207647428605635606061727215480090627155447367572485351998703240838068866873897546674340033608976780488875818437327457344347850879253520711840094488264505422351537253081340189509490781776519161010513092370858267198166749178475683325696338230603223019449733483713578316015556144560832611536560275691625952560328792782630450774896565044885293072844047119219407378939091144775542442334269977941775405785020957714080836287170175634186454278003071469074383860785845294658718749195621129602644925859881579649258718121358972926007189050312458950636988766215015071315976190451554076981863631470909465854055814984834519332777096738622347435311439069114483913769541957344293832885034516317683677688682132147963789852646814160591268460080165240098844580500849528798700591876049913471618536367567844678347094629706577370677325605421128413835807186282258939737019696262403807315998209501018510441035954126294092286986201111664041300079217159521647069050157777450533296569441672640035281999983444190094835078238505093726661165423595980479758733502675359450099715844549383664544522136432321100932589813650622903776765616335315628943833217614975337794713837161457220608725575437492999475693464052521493152463148418388208844384525684372407959074858473097139259913153138272411413160659220547559479364430144879987832970480673255802097207509549754948661269269000591187969087383462188143093232695604620893348088839846875783326528496958764686940037317103981402608984902980584256407122094080782132069850857285842117436322020947038004986449142273614404102281008865847944236170343375280643525649209357455182549699379340599406031085019454898319062517777221551137819478926852479150776109764696447227638196865093323659124989094821449250828703011379931855832088419116955926607493802969196250598727209306716084814176168645106545002713817645050370136061094930656496578324915614018068493369259882060182025134367555647096768816561338325501831596262048240831297664160092624099602858169770602154123526858551230283392581315732817600154384381386559165954526443183389950973730980555619683250393340658127556757525393881803916179503127055701353450273500278789347282146574037807581238423957525996796581969885373315858205997998354470219166697400635180499662682719707572484733926040700746583029104764622547649502893071817215652094965991647008290744154470212796113547937351911092950887111531019620003773424467328523118826944493182142711303347619664074182213888544708414181753932445384005878326274764215962361460332020013847069319610649285632247756714494796848449061497887911447806940474367648415223714742127726471928371169609758585389723088922058334035568667024492732576600199601938519228451783069947107099660687238387620412917077314759831770905999349624604507354516188613842046790341123761566417939919567738542806631402456385846425626956699882986861193339487479838366105079650000879721150728144819175930975255197708259685036961431706657193280296005994680358903305144973938469275058986968290630981011817945259652655532835611355389397676085890525617783446647180712820451476013620869670944552936125998174139405674971351700969671801419523994053070317712982794225147254366330093532404365312154260264371035108090519967638061490751295245650301973665459811655288220553764793968626514739167726514053698885184139391227312843830061457947114256751697487226495167699398117265305234141087568518924236709999231286919059379631808358075347270589635258199480991684580420221917311571670986161997461315381225365842906750855852997958402453772112441059834359795671934148120542769789155650088662807431861795960006356913163136169301829179539332473885768609317256082412304758730882449080428527841372125438557997070505517163771398071932569643814737524791547878224118342562642971970848341823081522500741445234354342391093925666156911258990743135711309364855834871290592369373776111644392790648105700919897942486544031718939221268540967502192402869249352891216910984783805408587102331303557745560339906050393349149771111151807702301619237388014682613328893640880415160318366763527371304448051211916986320620409580998348128781365128823326656965330475367361716487386539644403517801219304895848495420368953392932925299062442432682470191152033565095289155893215056848015724840720273523988012718490387559234446398835969508162055971682202960852417669183807196678080383434954764446078049243187873074899969961763616252181249600181514611972150740307741554115214935770375809757499152931463125762912370247947410360992333763805827494687023888800184140302853930066043134363099075563386728573508600760149455902668866468003453611040063809745323014355925167784076590770458290705881589445470335283396010624335993559612065779914604990972168200233536139073372319597735953630559837918762022794517409620286079098291795787950686641527143825908950602895691056557403119062345324893491553894184049076369418388349847348830602306438162571603240187253667686693013163374946908080779221298454427200634139061654600696213756250231784655736995240939574616249471814580310761248859390219856533803474241048947758820766135759556482502962198875815698135545508087096515093857597666981164361565130558418685431240350996603026342976041994390632123032331459938708313080705006959279094298646123793099944148655311188795377356698337872582755882573745876231839730786009274222161910788984051960426691226157817278089258493576183609572436517262717553314673233997284845080908622075558182373259732063712423535874807873432250291349934650899429838143362301910815083705375428385725101281063649377565886432352724723663212049109898757041802889661044981056532821904500592549608000680019831757528995268957616102057983479571659837686513524195459925395319186517182171856633073379008898383377820866320098083784858485008319767488134339953191450376747891928473379754176047488873752232462351144736884703897836000012440634774518023822915388619390796583063702735765485835244977746765167062362414925476230583012498328406143314984979679043941623707618347210203488009737164561843206797442464424179882992731137631298656204559005796104372344848445623317570553438956585625519646105449440498044088172932596426644210583183812347564217465841530885988302315625136145918297795581871199810164641721902177612638549871633769698884971775470022346174742081348924431191252264794565438120129711119982210416286209545676889802825440213454976764022732358097390874555814515735658663852326798666505427260979592781591953523140797321163456324062820546307232041109334855630490537258657527586934051749172947845754432837205412386114526916660356948158571800712398784917100164569237279123675558038651924617935410729049614579121854728428147194172289566429025129123332251125977687572355609884841219780085648999556054117300029537274250862138433458517326457224907468524182174462800912911244067458832286681519550790461885082980534479282861071694827222671794638534721262866677654227768413128186400313714398601821098931150044196504349719916002350469101188972945380438813286117199950861995715773205400433592238734753553433047732052558794388350619441365377256933428797433390386506118040571713797084539522492333452939072105710878854616851335938739892805554715099887451105493288336016355415920652026984841592922365776311650128724541589128917079557260292235522012255222965716108200512044324129004390840328683500120873674405841908790323124579070331234955242068566111811252893431570241198249126275847450076031691478281181043191521240473570120349166653095467347304652249641157767968606804686737742415459990312640056184305961283761565564044878923682573910913072257512193370152506495238227363857472074897322156266902979084459488108107354464245124998283542989348331554247309829335901164953771577029508056188663270855590763165978096373125309015066565615631916118320213279856224538625480735364473097199791971715402270509193312493620088835615251621801100466912470100684852124378678242117319578896266590803322761551407629277024468355677437076767084384152250659730892886274112220082250351552794789603172254549419443160080007747251997177555170450964219922842496445647912876848828792582426607495399846511965659545993770132045845653634512424247790807766484912994007501386711700355225208368827750440243417373666162063952827359898443446133540226979925884051323591713974595731670265436438482538882033968256099473323535326777116890576634649884310222445135060207896381857514872997660236593128075698681769386816539550686515838339884737061283961273706938553821457564361353010901832153442433423899484735442153086700715217683590076650392393032304183639316982634782843932435291929128668579553344714934393668355963175415138301003622937062388013731452469299264699895128621019978526361956473988761741423422829943305154716554329812678634179808292721100695684389713165267628572888619597289362901849755386040258703376675434212944533089004068576794175013379104123041157138180331576617248389588256688972842455715960937074236766153999806879801804545427897459929149177145736956927009179652368550203171231353579994506723976426130750921281574056512756047985274742646081876541165308162390817327007644580032134466732967343183702997531379095214244339671228821136329736778076909250951936979253553505522849496935153605661815123097861311783923110413268768185330790171830155791289704636579260689754433277459246478263283470681625979231004609922946587512971004222536092088098009429030983852356462153554905119441817445659876321728091136503139946537619735731432328531722490404687581192296827218729149632788951934369779257691964689150092900158652870559283592722464294045424076778731175095386728458215482818721371196059068776045847036639023539395748823871161908322686373611516417197022499358147205375933197933247867502712367455191946702424684650429052785387215598765905423361300767274926885663525291517531065862862006277980264417402482675993461619550032295884546857378933319624420937446302632082390922330429562162088107130800276207322621591979271052943785445936462052131944896558675400286896727587197492188540907097928468419520305688456091479441255469303723704488946934854448032180118147591101503491636881458747772637617755903353709505092559215368834462782200024121010569476742752206429175444186231069456679732024241855169822789123713692961989771900643665879273399505053101397241461857652010477131918619380925113003531335329462784622176693829000534188140698870318150142536688453146353966977892489973873924489051620919577931999015330380551441992284743848736826130182510631723337907017676821499306475546506288293993903596111768724107115948791858813651690379574973534943318473921773953236053099568274484455692838199933662981658963631197892876167148772471848669598453850772764681182988689263618816546539291679409846860507888716546849192954364112005509816307574187320483067452949553099001670864531049365789465738806025823257934919167740812898735665921729222463845993230623570705473720352950386276858499171161594345607360988211676043141406922019105506358319805736314487241471168556159043728177834209534013002834709929411924399823528976159929844684791207072915142687146036775847600162948982468521479136633736024942408163929306688938471249515298683245295439180859537428059786747772085732856376806621894070074508267173072553896319370025052136277987655392520956121028438513749914605552968436140200463847096932992376240013975072114314303899253226528033790574368883738885197017166040095609439249032616363000851398461721819141325786634665285993036701802769202986608510719676656493181809944600077006731435137873602979935559799646380763781874335542832698779574335362557543831623413408073653883074500220107688217891643851173115972999433077325471171700952995836376623373543612864011647415058491795345731207123909753250249842047227501452290208730918320459883819481607418865390310901528691643077069618731835081901221539000615602035804190156243163988404469863868327785798379511984531003553165028408013569818722086499923806041665014010152961569635944049676394933934233166857050288216768913292224839145929377589655292389110383185186127004431529518215712152425435285577368818136927082439337692151846491988916126795319560627759562944356014038097883420797504721332464589327188035902259486979160147535477206424334260962743356954536702633413472842700069284168724245694612620985955682101734580092605639907228000693448119972752027892407521692181201029184677772878770506683490314002254249695741474642163424173623838832697356281092428059453402423480115075756755236330924730845359857913171941193167783586574342239091040129438580465352146338818972776287902974728651844718838500275701692584569568988979703524514529484544861090264336895119215566544105142332320738543634256096641072538291210457823326716603865968329363048576370231572852399429156134239941814124954351928337745981644488171384151131104361644609670653295252241225354515510963021984767464522196789240989392916818122518481785329162731673081801837236007431769854137336301884816952366801680634319987975490559672290391855987444471868300697979817064086816921549144666334133277873354556466516220210659814950593492827997492944953088236836488560921286865654661351197475260543123744323330835660645574289397371006888193927628200551496651285203179584945955382142014050320608491256062122170798533062367128571343146042808051453653667389720322799506716936099669003527237363532461528573080840103784102074582385018663830623597448444330368361394862003011709463028476776740391333913886017417820446306506505461278393560436716432755432375862314613818362474208185764152621494066257963711355785120137736211692918091584490281453175791934677125695303104392449171580815898477412069134562763630647282485172644010794708439635767839999212437307577021987635704122056350490812183633206335745940884724025466718023690047490084270468841382463804050202028666439796944420108450827153469363494046584755766475376905986657153325849691908028733272145375793378553927296010954128962804545443120820509597145341262624330790718201969533470564011918776676732398039750015213844466613233945010371199310553427841618490938059127358517375022169753027339228976562222668767125545527324705899858936071476419296011339635305116199628526931677116381265505995861375592551895863940121629303922326854568477572835023614362203198347431157349339609004486441813257083858076094101576498749892121034261619263649163583202584602809823837620176598657387426458171632324936005742576804770523628325665848342216981054604967101125654081684481504448163857219661899172315497971827733718659022107600042946947821607427136964486727508347467155870831387945019746881504087349628564068134057183522597008192786720341360779294402981453781631608856636852204610017122243446123652455017350992112431305358522584177014464224107934183018692911103769029959325692778440097318864175872397438791470519922682887515501590375010190737550871395425334878287826940515970123606729025834051177161659319732626066134878382536612432759579495541832917121943953606559419527706752148135983328284773711078869200792975287835864892351107792193329657985027518658223407960578301092458010339277965374812867130797777525903101880097482256456369928483255183436276047031552852821782418031119358373253380148691725041138688227899667258064060422597807318618347357762540877642069831996802892522996832944030172620327196150438309940613868297577405152678316043328179078714495168406995052401956667374694046584028243283516846915900784338893960457604275665531136221133889875937613266814800744022587440405697230164748308571853895174467852961897702616339593736614214558559116495101805230560694591963801614844243650206663056327470318637418000438745215115906541493642687430250045117423704472944098069006585060189484564254200584573809450758459789740167266720839323498922470048379726909810608892856211961096232573796594393925245429686404640556866212243137296861275446272689413294747219257762807715243278296937944437427639342291995649150578166211505400496270643631149944881034254480917765250596795262082684944114383867255384156319601572693310992761052827682678846851395786836250714242333439790316046211290771194835879058015419029275406967700231358951900109353104076073214017453592528559270464514906995438781825168444831374502162600281316273670386300536068674445357951229038025187512738692232340813150706966368757632752924020561764459625049670454461851315055578372100527575805061078939518830295602805503897398847746901897243685747548177788937992496796791455354858907885216657898437848171681432611490739496744311992398344142647564751351247688226795938727807074983986256225066364976243598087946813793488013783217659451196907381922272732233493956607886402762669890777867812808936523928758886982544368718475412935987196282459064662847526921839707544276055387671802881773481930627892744740681273740473243460769255398453753254928327302521823272503403663905475866101119825436952187150452530248516701151106958192150613863986021455249529622977184365162685790049782447677649889906582857192020972358084888334370309541652260837295934178062733619974330662945866529578277504376404934589203939207599145967467930122168453749385649384556658815331404371456038249183993141336518084550101771582484148490298328456020679972373043576742160093611108602804579139021530074989721932160847975918414660190093191109915143598299382186498171585453226159880634827425951904687860949211758780668770922710009339996741908878549681173269617254223660513540051762696681550041335392130281818614227172266642369179688989979639360203787790250715052218194627468045575053145356644871414014605844431062261908447282531215252200494578709739382852281173361796258231787019981559765360962796917378121161351731834742951154142202490729952175091231460474935969976720558881852385203556185273488821494993976867996019643446457683269027390487496075925254459170392170609440378670522549755607086927471084852702313415501174285835955992022691326082512671145340583411317048695530592488437192304793623877097140324062427814629389446630587099443930496859276806623535537715900752878361078830435785830354600224335544891552846336848388014554448158375646614934215300845422431184063095129893828183593668637201542279884498896924393378032174124644586692720049198528914327665988090975308538234442475679610643033404884535130125208775883818971034050557267541140670641898888632066194522312387543034678101127747082108539161739945165367986803487598070057584265798676338811153083715235076145544383199149468646031459408801782549989017563481421313292578963605404606461267589454706324299539948757367304044483318108124047319361994575627238335811240884832474800727422676210392946040273749572867963138577547033784377858166648571492325032848116315309596667887679948839151303375394667700862985116339084915352369465727945623792112598589865263023285374294958103198244769447337063078688523635905541762175323613223992936641724650722599569388007209038555193524968719586425821871998659535509000402623378844333828290171676911728560026273165714320107228728208844221055420503399312998887221717326502822129027188135133965208404395083459044931522994792298511479796678104138749050279862846321930027679408815770462252201458253813485637043343232813304612528782554513935922498571857471064604876955131215198650749909022037714335568960119037275055480358416258533894255746690744957383683049916813035633882351557227871476225378216326886623864858172973260331677369396652584191665114054550949742028964805308342289651175502039875647800406242372013045127045870428158181835512159568220294475487339315219464231951834541221357293445876528310844650145736437200047543292372143690578949475011360362475101738154408055387552162301206545572816685514740522077703059728974359239358000635695954118682689006822855177405166683687475592322588972181290046848552124268275588390723244093798027947792951135519419691578540179939679323502891737059634550263470118876242511035708413627620428699455820560693455351437975404657826629615307285887475481743394879829073370455024845039306924567245969316585273787196368950966913914614504416873702990064756032254013055647571976746697959401056368262341350707894779415971368390500870549101974299783433623082793529071151417860386125791548438262257556191601633504471974593490155983073568354308761851582479861603444473987600524720749604893780493844662420329983292701646610471749956291977065525225187137687001303194304537429483564044859238028139964652422286431085546778508216260675185789337407169443040644687844644559536081360599257334096721853006210265966768514667526021305379761311296494954590033616181070590851355237797373650350987130988574489875082960981476003585828778605773644433713115232290690236507069415030538576894685029154387426539458762033378612560095616677440434489046518251399773381970594524815908182483626623127434540890460057841188716115830729541552806195400272216862257194817977274967887472463448468799373680119687831957412449446099921002931686784559088534094255306329323373211294953938135257389370159602165076694425526167677121268351989915369418104360656595943452422142384821523519423136220587525410768575867077769602651741525239382884341879489265583259392748792061398545584519103810195797473907529711521144963415371821887120732755158162831217045071813368975489433370449194010187970843787293284558987306592225862082385536281625063926628620920155273780606644955945525350493660739422646793909776816396774589055131736951836006835540699343371113613004172414896658290197111631250080546361291180230575678095778042232985906169182844602076548626921179708620884599370698114236708255691176525414538739209505192259124485332396158785528810821663166829804035464471424294422853830495463476037084734653520226490330793296846945120163724683503977371384458360377605130834515543582396179094076484693998808540309561013391431179074377275826804900437412866863559726976251010192403687670492245250692322241979066461117002296167011942738646224080882382247928258054547361111145608585764961204457942753854674707798971206500413933793813877646458402898273302625493520511444397457089105181772601863749924962544745809510188246555053283855452033558488609817817207673239098708434826115407879142328963541581689937679143019000552937151442574291556614796830474748507778289232285547413738525544072843341916782132083839099842465163419981401616887673024559063524912163689844035762501267636409929811735081032125369075064493028162367413209219462261500431023423859502062899968717200468139213654151493988233428499918603966465830592614240746328146562718796936520902246872771860339417825049861876256838776175039447712145604748276366576191250424972913358616448120901181935423189084048435808638125593713256958246411698487373598515054661000974323503212081308301510439092806997172544975869780867252700053300084248033299560186702671760524561518778475880861582975622884198372253215514270726194868749318784728909473085607697550586025441415076508375717458048069039522242360907343438065352140465555122991515956358755286615206141420025304913766002099746819982491361270106222594913071461204511713489780306151598978177609228214072274939630443170139369090559917195576930507200284692301660063090556860382398072807655464246321355036311822920215481911967893182629195283393945748130839463561107905476858756989623687980001664262271337228145804731044580406631031750176382337624793742439170399388535819167468037273879331623660821918357879033532963571906260696579244151125699225038451274848224542050178062676067074720544624135652656088847119218103694224385204061832108026453169247526516101621557153284770922190895777211938816810252223084811513496677442656619490014827356145853855264021882559750601813453278055147917891291305250197308495627139169445869889108218515454367340066367279796931326627245984148242640087931982912854739744400227838171735780797885737268543939970449507777394934404942839503150383013839039166975811734717761661176411786944080208483917816445389600549226131539380257034917534953110614375797694669427723555446310919919346547902658967495265141637880064479539221371784943577216488249862301948763605960902455958079406684667295387070003229010963503085751708185470182988507667303328264550687596637107630957694714915067552952733430911678332895019279023137824047660529455677301744147136321889381917710338562819476999533242875463351260974960445900054106555775120174353079695967413172128740995087314603501831156605370951919994418997709030393349030262475538501626252479651969349539071459171781106238340739851515376131959292530235653635147479483536131632570010517405096643315827932169412768045017665652760511828209410448389215245182142609378762956667162600214801381181940132285692939189102998004647424365124257010569958992273998511396795271980807483080633219970174126226431806663669574790369555391605745202644437883310970805970267060533301168038379913252353670528961640726083320446519595362028733858198488078323056684034227045686046464624726446655695834953329844825135167638371948765349940230065681766288833335287951927268703594943109620259888187019825365445612427660809539652360170534301549706536080421987159170298803378499623098417479853599260709983834540391458236372405490436282031040032033188840063485767547144627014066850702326472703108167806531624425868176381716352616144748035170222174913935972925206911452537314167661460518185543683599886660246026275147073672000432815980921146904792035943983072153655258238677056085883280367351598916787456878278103583364820820573399464452315459110170377284936738197885027204833176707906359653390874106250263779075908532665177634128067615099937116521187974096291923356344657847173838641691137755236685697762969384200016921237694095129975647683664700839775988479273402451999527159925709668912313779107159844999931640273537780683704762045411655752709959743517471437339552376225709848145180404628903827612374933453084680793380376430154560746846635121531281096197544810416796397269211983813469999885083636420776447323801589290138541008331927304637357349625013884510926182124331211597052905239505709595341186970393212137510821215984713631713513738553710854639490660780689787872325943127854548827833241303264021309462334473706288973505542309541122332823305047439041400830528769497361093044366920849612866220770207741535792865888243910445508219453582667555785680558123583783702049184637057500787266183854676636952140252843032122575479630449964049121641289174547577416265280155927433852869304892008709422886429590536300994727187472181313965745105893013817336218761642031766881573945890409211167160425231125486448855427486408827552616202641725099151741023225265572256651035550422085381279597555294471224852317698142434688494212422400476684665831380352472280758097473992400990619231111271792928665695080687898649678442828809183304600558337211982881431308541424406844475753999665789480550176028275941469571938977029158860194260294194768984310606947977241644725443271009985366016408139585671010484990157613722090729151433566286386174324965815436818150381293656613555305324925446668011265737858935676229058388985583944603990946547852911771229151923848971160163041686394890578393338245238093011089056733070163041524534815455806632813676957087015589315481810507245677738410613398494975405710940187979414140188556491017015556163695361057039825798735521081821898540719643489906743733520998161059031670072184810265840801560091667769269731548833605569114060632998459596795460611791691780265321914603113005824970279150548933824749585289163245589332743334138237769229945295827667557557317776146350369667569605916341345337729106240316602453806866982034822552423735761873579095334660858958999577822967634862645364716698048004902362729160756130323747994553986827806999591095257894340377432481996044657413448547151308185434875669511675894456104466203281286443201345700284821578098052800524682148573814533594680942593109778528662574349344827482632800888888610067063710480045211456804951062387644618631458750193288405896472773770394835324154096070304624301362387255413066345653477848169060862229693865790537435190093820209755435595498561569633803892785432367284664438248083738424736598471858721467952251802050108086054217118791017898499542703816024745268660649147718790546209783395582286019601487126787657046185442529520309330990146913200580269508222571847666555066154905411421635821841249427278029984681639878216647211461132635962323270460637809702329226428943179783167057185142791763516970607728632273077010424395498253192967154178743120232320905742235641010637709459811326637572209876384774855345211038974210656280715152062106552299305043393113623778884636605262111818832173569926992594582679881495601557537610128260225168154994704027559734962476973166037068360942778852230002118508383220808517491770246043829608459649085909010595324170827872889684019558733375596945287404806418428406636842080459105129336908526923537434930907061203817278555239924699890899618122496035892101697718725021734774232188800224700857433408975090471326573796702260556582469097607114681918740236221997661408516057752935282957180516133972171225022538735799848436954080008921700446613063000150335781004018935663426036686760801127319276451824315946301127717456851699105658729966183028635483570665980080185340890301264937731292524869717682361283211524363633504173240847462308994224463413526678604843649456669408346662954979476975561055545121650638285385146604274064371550510719869252999943232396054896237388510695802537675498508622376458933907334561912758290571498267813685219306507593177908614003360644402416724943779156738561278455065717209705395060976999128742230294924337477705486994008625887752034264668121123054753660776776780567319726141116471518287957910636343129123587086035527232426648672666582488339939560618610753961475778688712243049924596230259790124948097225497041230881648048047811778086326728579231715011322424842548878783867035041009779656001265316620056766439757368344424405687841698586958095361908827963962363855757954777595615977146220882795328737678367911672660255083395370524836801592962711822004703292822768784496561061560017955259205206842956281464473560667377353432447521646842788377587642052553916862246291156968607536101767337151731025086342829264249072883559349292271010768813038477479631411736437509834383556609181180236779410858325556212591537389942050308814063149196929543667609080303372378577396665266152807237720144000796082344704342934791935919297204142723144683705940780570422863959511807977524463962065938280294839790652708703782604805171365921862266191857427182513084457661008708633444262217508863398904260136212541413857322123241124074607196734574497666291330711504086292768523555829295449394451520374685470742622666557261653220571277450211885130466699645781305633801169358823790053183146033415739437935131484149599564789722214644284987658489238073421205766829662247933739782247421849991838735238885628905345938330268168412375664873763992052482376099985460696045556280465613835294730475818584354136679024561670545732136514648507801966713451894329151556634766986411060703792182216879532313924802850122186726660500734261604620240001122410952250304833315197080743867822057318775052669902627795905483727707636430932924072758471764658543934663712166868520393657919879886740037592500784625530513134098831338204193239468984309803644243901113806853581990790277147371554733667056890455575452249520256815274586788647178441473805150979608639498970723685177025617626203848828331203478940052966927131502414655585553376825301215500091329604590014557287576496191461767397392811667009662586568043650420458361680179858177899412352548363410740151168069817041480150767444066223461290666736336352666805760470714665428689430731471882635979270277510045750539140783829736397224729700679568248567484595937966548316414746014277068663714891157370397409819584797133717961121751738168476332737451592112947036184120896699910731734166892544785381874138802166850140544789155702711120865642236033741650730303249770111985939036650459066445631022680783299583329681763520585844334171844935899776073841086614987641116067146387531585423256374389928779859451699961490955644543265097913340148577112987998439208202271494499577091451169669776788577657270467515206409565663023776401865231770174471606481899434766004526312239067748955617064574976688398189579252128795358984831103435586572989358709514538449018758170558425829901360674740471400523706367532030770956779688515692176970060541751418318138241171880619079448932316644542050715521053409950517549861766509945970046875348321077931646806141290242734265932626506859576139724743829206106029357065560231572954033552597773251360392824728226627485501896656615371784536671946087751744887928683794802386518692813077230102352948462300028328543854716794574230420472071893582296916900443233412186677016486698467949048437698387038269477108616501473346899619536457186714775470363871770421957549778369300225159333513354990314915746259015275102138889103365540323899226739610967573816154496958908911525562880939557002670045963890824664848737261391627311913891131832716511693418588421218561220731174101554553278065546917524301274945941990565513254017726925739304888400164159460642351431386170052806364903535205493228849372609866920416523578227747171425885590081535235909724134686455424629443014631325224413766177383325973746707990347773920294855569677732153351517171901483105143963666447438199665638894588262296639294967960110927021706990342687795702630327602894493620855269474396945292314931094183624664912992708558350151462961130679893599696394529421101575228227184348856307444860448661332253282285922980712317803820500443287300803587836264035050932687333216094352933773052928730782032456604969147211393397272596904164755788739197344348655752736131773088620383430670889872040634501461121793822779116680238346258346808187998271563970720825314015471030584240905380280389120193633497591217955409474873819662137630912731547349472441556754524962994072286175043210835706243257102742724163889504030032703579279218243652116651469209409348605877555924832154119719433836452792432244334528899835102637333422975164135506743239590869204280246541366796204999777088716332674448201661760140963578878853344885503958087131227221155709360053548927485708454641143559059448644131376483552597011106169442383730025960805328850749145173419975241788179007051981258597766281845437486812335069357715959641678833878479191445947668421395186568034779965992700461108425501019177562681257954794691350712418699782568976837642150692114695176837646773842790135201659042847335565836748311419012638348384159165534482102930163387192330598661971833666500073788512409470002650690837717146984064941430511192250565801933016812484813291907933262693284848433809375330858929803686734034670351486651203626690737070303651655021859147783409427692929390300146239835351911916746479151322339566115368348411794393404664920884886553918886002592933529958557852245348930432439223472908308873210210563021113984525442751026573741075029891205659934004680064091765713758049969113818385465689940340590321824110659770889446587380509948762603971432298959691514189053045495118782299908593977968947428780430648746494261793497502591119877694553204287752012151450262321709628269638924858613959820679745331495402078690669447965488364455729555954423479471998727263787669668371402439506820326523553524844341504865550913248945643669286082843770604308328629688756718677341030196006528886159204286854460042657370883993663147822222994667273383793486148771599918943649849698619383565792644400081228058947687900025344633018863711986351560432129480623006836708370692345537059983232356008340157637570576544703611301662978025817502255933697751307104875627905673565745919073394631271306926997400078045079716756727161426376631786414626277821090999113707055693430326465113181288084514459906662347081658877440793544892787912615397019194256426718531826187805535580779801413554637644166432553577713818495792988510318440805501377136970890308000425820052104155231744734032537286056699093743047547645539246698464102640692775595180617931140953469409072054843630031454569588052176324545840354642159070376304214487186692771883048614015700345095476059230202577211161923632592536000875146179747930199795363576866669945793474916809992267393465435232061506366794526672770213907923534750780015700469586524224543684846868846634555677173179662608565908522078083531914515976076151810829808707980934601030535800785630803296775628055943183416915136398202202953824836756688368067281540647481515006525087702697022330017758343350648887413263790412760022790167117954868789116536534492599619238706227940169378530231338682871703214052334262675297387353634090184090772654918259907424897525209035226022649962327270339810834082996888563043438231823950763275201828843519510999676062431631314659447951528672596453209307822853165342012155767767906324792925023512959897407708082554115888593849446274448609195645005113767152061746522839451993967165706178052118956435238573232944110933724575645386631304397406666494120335449506922951705233918717589246652829842352899666128080472825411946963042507995072533595003662544650600286260229750789220645023587328405409405169846879014435416451858990426303321476540693022262763549944013502976339041942763276760561756803222286282320324068807158713201077180013512550425023027011195064717619371297797981340078026960679323052498416123993660922913176520023706729256832428673805885636196723858407119495173616830677463146569846057062783006024916352731469983829263269236454362495965293904050211532916495001784403442370920060801011870878010249960069806899448708181784325789584985948756300656013663664612489635957848765825724222403773112127665659846081652757342929054150406934830045206609952598870923862111097449249601886169522473676603674303673105011929249950912112803326683136667062655969933298394636381846085906858458790872651680113653374297924489521577235552380421998896419332888711716338979235204552142048784311786166134047502243522359928026949730687729361507521368270567805912980967805142086181301567351853961776372360605431664942987479474857899341527171248043984233212717824264612903665422339627901664546493421708177037494040598450608287848310408965299386876609011866047509115515364271739041381235706766712523986610166549173876290374521352163919510586812333717386089073749290539548806058321943209641320059595913185472789533347041202017397067574038180032057841897487323738863369740038127140017775384370950946851609307941033010152132452820293347998358443949474952075160685131707265740713506033052373769021537805590219115755634076610141185480205181012209275224232183051074244826790190203905691946133550668674118761477336242956515341906759838343955712788519324527232601662359235250853655971975950541945092056007137804752189511475787820294521857513869692903839332776720711512029103049057390413637844570015358725616494438464740894137844238298607098175082082934869433968132113922158612192082015932121917653796921364578657611785206982200671399053884641893692256989286981829688596216357918319492494157131773112390157553071443228360694131295179088311087090997502830438743152515451831640174204248682825798110270720085142905747536702475667183723289153121940546825291499897124552063797187168518371589290784980271689883731246452206077988429345066164320963714168115862001429525626036024780207423682965429790630917462734307644869103869363643184149433283934045315417238465712883872411498228905907603249228742969019478618797202853194071963669483757388142667924287197181241901465218261267103905970601150699909419425530059512263782062758033142342544044994655993562260969038726486288072773690648144332234448167015405716622230912606288210759833908618114810643039732229292072423203890654397818086535806991865707033108212701596386742479897911218835184111409507844241275712160421794057675030819384134214422118175876518033652623007407649863539757662039645546519480889677324646578766957707719911338379492032073298619041177155922235851487167937686136872124775912942318879695496800691515001603525963024362905566908437634333933027889954099792007996766417231835003529336280347171618402481777212498881027155715087659530176610157319004391280212121384970760311697603119107341345719765205202453303097314667482756228021172195332796092824565379208498364520241546014538771610793134285872225563791570575892118809346958162397918283128439693930526237843514415325863161361287842048248077214539745423927770015852465022786287796204827885625513220145260797969929029494521907468836877837908724316923443223324779216443147914102764667863525838893286044997189476004031599172025419148908052516206814632875796591642440354625940131233617634075365959712257660199699610752193364615984127307254209916750408548596990960032778726305194010701599545290544729061350013552357628346240584157334353610535631363804175194920985835054801651535620689395808978039294871294471258001828921997488158046596745669699546640761174824435836573037759580027987726427740635217212011198292062087681677308114037031339263921812333773598662293118433387035325772127297450248294020727097538766724152712625234341024542945559196277240793477430938033179829015571206639649365441396784779084461057149495005641947524794483238161666771072001083787078211371507168230694816970018565903928850367255706497293425154791752118858721665890559600410732934213823540236122653672934777648043279189649019985276824169240118142542304507162032428156315419536272564642921862177798488622885405613071268017222613156944508118985107176471349490098025381568473179363199946385009127460352391753954268868111253692800117878362294758881619249255369617884223790974788719078261733177618915019254760196807922342970773908939537082832421799461436555982726144427371057748915068376052892274757958793726288432199801977786076404895186494700897316268134908705766019973145722288279356404197044914486834681448304304449394295699312492525666565376871844254889121457436095081493471046170825589991938291480379434794340022026830587382133193499037500171507289485418679176216772609566143548922804192164320354911144522259116021901876761062929217669917472743492075344002998236190727554332302108846483253862074525599386185014622289573764052089830385305155293616575192999473852801242990955650305210604216937030773920165646210848631663057241829784246087063077096527278371946409913710441837089795658560823508978538335849808871102853085440253023734044284695352510034797651332084817254028847811566371643850547768928029904081301990911984069403633705205924077776593918963706733827145410532619498530856174881047235201118711277445116103570077272891680753036541816367052839449242997870721278672132129818008299194769367155564402143551814302034274069374793863221920234974609667014468199742502165221956396362563834134864100328620628589948137311220855153450183656508780959992667079030388063014904193822026379472957933640703378607430389683328323464764114660757726847178390701472665198115870181247319091647401462077293660292859770352356724890384864785791451882094590285252411175326942305408063168435636996815075089405089697218913772826612596652322189787332168075333021694447625087889689293459680358345641195120815596086699550755544701701059893102379636496375428978592059997699302438885469198208632737755749988418234180759378904696860219906348638446129991986535564085641725738614591674477669789978294128549209963058578516419950232780108674065508575565240928184010044312886529744787151219990002661570501152891501114943143771387904675661821491544112386784983902719074897768562237548617422562397172157434034274003015693422077967534308029946737536645098627343055018487151653664433014929564912598389872785524586032514310971654690315562946065700195542311516271288191008376426313915291213002979380135263245664392282808738885045499224349889377685189053332169314903016569163413000002823076457057947214341848829598499419156630155857614357826384769406510755288467654037137735184627531043274541381843342489452627707007322935849726428345625438269245904302861608726387207446080320236455039072316960821038398484401784480218137463265613689153443917232052902205786101481845703766009455413196061911005028079286612040137641341855093164598270990996902545861230980602680786819664887412706895843685310940620033324132334921940220718569806529845978289788271463475961446849271629623656313641958395696985020763944372762594994973325494562142327213359610198629880895172096128234762610167551732219677351663745966217847083634113683361434462004019879273022569811353962409695503571674754093411872318988061405649671891128212695293054613454903668403024625975109276127276117306991454065166547574210130637246732651864222853864570053255501152588446338970445328255401343838332309724236098784088143132357907552138103658370977397618944518521499234101489745676646332900627261026712285339389825123416717144150515480594069209908592004467283321152329017816732527995091659219770800251509301734963317802253918799174435564457706325063485069755219237650892683879993952946572639262238440842340699128199392237386879120230542925037809109928615087040900456323903271582170169349747376426094703643528788783008143460430938146901687215120585814396783434899205266991431726714916725390513997174975026190850497734603865659650060935455302424516494981575444410006778254401149624928992939073326273601046611589579357098115523573884651078117121555072023665055771769505733795981656750914218264717145088546902700216239180938851981130909591766821951337167023145650805979441387371555124002352788402978601863416045702748551296424720716386689327494197238148166789859198408479919173668850605769757942960408307511291752412929093975836173081091250662216528836485171042144878951324818282765429289032917375559170019200034873540041828672723659415934161363249778592398523000967656144108386427980637533943804972028372084945356401244498526739579868754919026328384614270335931302611011009610747726276937114121314086010155581109444243550404666217819896865590888412686144103368533773404474980560813721716612546120939861409240178966244590942997650364210273609930277893908838146182885352127677438582899824307160678706421113588864926446023293100953626414934642719811913092459356456241291619196498880620645330484430837011966182816886241921676266478098819383271427927193396269037400226576857647538651509594260727979527040519536971598515967560808930342601174530241654886067703482561294619323689196977694177822331782460945178392150204306526252887185622674685378856969410757869481475740654642298354344314512064033470144522301088942559633040121424751479290500674084476483295677850744740849022799473229154121160120548984302044130845032468986478357669587418305300157085689251665741017078672018550826203591560444880019123093491083117007056031383213676547721768757388236922229766471724962440195808637854201046391851620243145796891488362339219971665968957787112611620304268923302936918573972776579663953792009511732164025631374052822208113763704956319199997738140499819883978962708654621544249479073082343328310884746916474134055471054275456925638970285760543597425759067395053453905445123606057677654037722146955515595802737398103685937391480330569377356176311854539412671492025155145326163250057578224721503721339508610125871133616824494140235762588600904193051060182639202382395720233690849172236650635659720626007911455431191720633062131107835410745698869762825736092729018769552357915086688389848651370695209569161989119513444374292471863770417522488099257233715551652667185157194132196842842625942031251910524593690767060149844541814143199345358698072935472024712423583950884040174341320373204342682218537511252024140215482138482736960448458447105390275994552586550510604880432684262235274439498850435212678163240351569921316692580718151223126573866660250790844824670706152070030797433083758839452713783388687959625206391147557650857384639136842303951805660961018037273359854174016990883331995038415740902930048310781428597908299808339281222405156562126579529330700231917641546788110583326832867990312021390516609651207701098362749698437018172144967792714521611516685487556714238357244103674402891227042527147790257871981982475431048388429374728019977789237166266501369788654858490751067733696917956163676839391673880811864705476361535432980523505904574319205054447231050770103576647189377517510645053256945667914089376593348040735309619005587264531939030592293141610101238916241735751847620765666974209976389291067381546413416587105839910143628453353427644562645349494047137871204817446090558442242714317024571792004940945769951585359008493481455328341116541341077340531186761066398236225698027106104182958492409432899428397619747945466626513297939140839493120238843343938474026033980101340591900929149980629695330861816841939722840404917594279452510633073213072693841974159587895660124612467658657466037778594603011268174471073344041994770575089611216384007513568307792911523877363931422406099252953001220901176854382617551209484785350965950406553878990646795542382310140100121501287488142362166736637521864180504329319643804477024850766418558687653959557702332895495578458211662538885511393375452412131029780983109589476500700069811449987095145479805212566898263233910853033146202469175297168276118132792164800597377622508246579466250991335913999166764067816529405148067488837790602250547017767912703767793144997508496540247107980404080640837601964349089823592060152785230997499460870124573653483973524794520109769441651356049480815136304329461341610277121549540168419426547939738575405779034828381288385899926440737327792728404571107621974511840502199287630038300635858028409565802588092463140470161001110840264427611444950276459796367917682535514942201463119379071662120191829034156793569207531365611623523544188724679534070453698811505475631470794989279618168910230251118905029092373993988731954763741863164178442075207454772498557881619903468459467468397167797805798357440548453471436877313390522207631538743584144226514856415473479263745367402372705917028190307369626956590361320690178308497870504088631606550236824887237538616836582861363459658160113189555869356022372679863615419921668628773447678080144081970030715015436286606450119103016980750908711142194672366727673885269445047719868689177437622190428867141244689119337279084677586383001422504809866365407158102748977433426639321080110492715730300361734051812927194999547404364028429681269559232494531407429683581367076134371911511355099933076181274510107656499495581373319995200405942945318424139283043818845462298714405048297728704798459035424605273557766303627344970716737661850958890846683763623459837866975745643592113905916340301931115585169204705553386678946604223004119521608912382186616399575209848823674527178522777622958579471937757397386167090939919111775092656392634418806680856420491913022986338536751465728431406240885000213280419946874134243694396595277493464140369321922900270007055419865486655293796514821720749676156453520338031450158122768819777348078347820729053244057996271672717731007522479776233876754465752750041169392875102567097892510525852506850043584713616528790194621332988373914355753546207745683471184958133117408730502234059410811182833718746393055417740624809460024374861684215746975980167631851083102631367201133140936607733580879105332932849698824575892889843940347961317580360610243549630125370583344634574480097588313353382000029042944921224115206295256366083333080195196393331398377001697871523221248945128907633424257709197550112773477870276704893334529964884762447482452992501143400426785404544903010551794154803079169760486183185523676113115407328414236259427159904948665396235366212843886724608860184684354150581063882226589837629412324933991858695920439952195489936803088439658882499469529367893686315525994563176617920933388057359401378678289294511116539631851288638676732623648970156325731146094745285951241005203426653151675111307257680965641087514935017681910368601574426644258689747368857575419164167872407239905890425460857176554278258334429644457386891080566425096150334306947785983940019705034455321715455339860040995486137398608467633812603653762366150077823293530943731782763039384651191321367578593491078815714746545732247984219590033020955502225471945200740967019486837953726862906722022654788469168925649639780789289092335512626757248884363701671315663979368123098079712658740504980245347567348337515016158172158736321200807040282460992104059116926239109917298588659187300990214739204090948600982871242078919625231182193892846649383264537241994922517371846170223702741033970254210126662244675453727182426749260429033888820427844139691649394613727390206243847355849270178995980298799474351990268832586148761084351819992787636574489099189467849801486500758626039723327189539731586041031400038247319000548490782632022141493579753771064757637699992998384627842233356691634620086547300370815786018830627009597528586201196745956084802656521837034954618610333783468936523841070525320451554776627235055860019341813514871851236522919101642742591472515978678439364810942166418226150526641327424522940880610067335705836943471567226383676551793001387192174347005466776365098564209367769316474542534418522046558269541605159632024983126805277588108327189297618248637091769135476146762714743022735345234711820643413675413467516058455255223453110149291544704300083408529207922805115648285437667340078976757804303278736073679219039846386767564316896828160861514696586287098716001536517854998535680930415014690518707471398434180302270294762219995117000275139143898099925923145823152845277628292538152603399679461099313855858204266543471994160991986513632932348797296844035507621612855073210835580909696723695606670466922167720338047081347248884060409475472455722309051005727602171649133501477691114543302833649975333512260239665597035123076450129751555896319732272040756460064165365576265443119564238764887043108418011782407071087827344315376436030233727765312033392598282478836674222839910843285680515762937865626085064125869122368284211546445141233678275417984695282588458648811739412718837358880389829494410966478312273794664761974331805105301665808653035533946221948457365501816818180282237793918762370693657358240679284434194881011970367244468092448715553660112731536560038589009915058729913278273253609935221961636371258498917953933734002489898717241316847757477356877032158778786902030080474088117957160483994515203316347274030607783616244436805405729293989460579083734861016203397422546685599416821243461327175238402651115141707153941814701889117072712341263750954526593822683403612130987622807331766597194572743508777484494439936444029696025538752905052994152505515248855021321004855598580516157986953415622051830628311268100232756692076047689102246871958550253841279556961206478294529791019928695665218360148859971505558725257585804292294112501894212301029943755257244177398512533388251462386425269498235412851633377185643678976446924111535458596973995746502761394261866100305904338880103053458320333033761799213479950571900035428426506776789851783898271927035051268530187952104058027433590511486374254274967980144897571780592346428499030021048413877114582869278300917960597541624281464259463215640023034724296622266625678770875375483109355455491436175151311373532908772353485574257063455718596119963760707863636700160916977667861596308341265039314086848528943669572824746913081417836538144960311677687721386402187605026275687291358817695470556096494493326892256358715269901701256180399022518739880862454671142660848189308140799033360066390360447513751382817563588197658738146967868661146944671752163717888011802442328569565758572064104263393411779024177727563084900396073243584075281352621746183775693376096860820027353387408885557638356923930274130924379611029799252341871392192454030354939937467830487860585409579880123329047356977419395324468255502615848162599365284326999132105495452154011608364020171683406267608672685107803379909770673978353433267916543699881277111230288945837549660985312627727839617295943237165269148901590512203023927346353796385476276993394454898226623519848759331298227675706536116394120095207902552864029218653827109252007990256080061061110776143508865852816712264811360720313309786093558705361415470084360879359260234680225670678831231452279223280093364871324907330187958471827127368554582768750507145619261911910982018900464400528956117457198596893882544319379304332586135334355959338165738721348148893103209348344745108328575560490972398854765630068630851919018649645920597757599614269372322415955660433451002099307296453479755168179857306538686473991139390049696357407005334490266201122533174433203053216923240093274012187929995443701183934051122676964984890675455049624977745949555574238471971262056595137451286920900370813439440640342013643842028944906729823703879146921936332113505674061336839875354826256592153030211006081376039039216768286670576892680269967306527148412819264151144132304285315398390430984874290704558483922506193265308855741288631244621573500171313592982215890739189439083301043671635362674064274119149855751492372771139312111071826397743951103825552441124519815718105021140965138182008215078228889805321668439910110916300732205622231004874766246992760372133020534886006566916170556970271029309182303400615911246878581141033092008241894664273402856332764339839790281594090097693465492517343451191010971415069894686184832910987555750622944534665583721605460407397485406656571725560892103773752420899729666850504427562250788217984968706808057970769315971389504483820355934572558886639128262208670256690318806367853541528180212253486353812324583181683367126494403924084515662503723684320614390098129498014053438022528590928897989882130791272261036285356802558313322621367835971269324842922029250900963077763768559015173019658010069400019019508091066786854311421332979395075215469677733922689306902341457986388807598815718209312361482106050649669942210396679576669776906975057146839379644661834066403478640450105306148370938791977773516943836323238427444164299619472783300146789973023737962525309470589140772331356113179611462945804494349058127572260459482326631890751956322346840829737802949752225570589963988470858562751342880725562038568332294645386968380698536005062514582121602772592661948954075324760517076722765047116209408931190710973234917323443205306557298800040591193288115893503324777239915745428448336307661210131794971042255845835127096069029971971099936074720423849251483909122734251100380517759739678880336018057826338097505512538852045344829697245633006667697035308024860930279892264502467050472367936868790070513938668022616375504345886143409273948724878174311498324172773825800761444466295263589927869073059141606109485673042569049833726746399681994785379922376707035707712780086552394628585705209009052694461046870671835536972572653344832516098664327921810294401666004567196135637015504428401494746257401614771220291138460587961340887094645771258393372948042325317654522062870125500178800360055928926317070337180565781795619167492980970433815841944060980687796671042051874557288922609686394272331376058032107950338987092000989135094150740528096868632332523144461647297312330959447585346093997430221214655186973854609508700757497147076370236795844153338933670028770139935899451746992681269507089644964487747131898203587798028867130893035266625125370630598764682146704132664595684824908425569693190139275536519637485772086423263709126816015340008902740890554587402670875045625548867399304841689116102806655589429338177727906434251833014705680720831584290549057041482092063203237488389675335204223767292727182974494406668944820093401989548107420640756237905440721607452960420417518853730209767903494651562649093385608895080869397549988071537263557052519636774122263805104839148570932065486719199222815613957181766321832389097875838256086371865442768454629487185562550717687491183719058497541838982820558637282708105309507758712040621800299468221497168434690422473140382415454331700259425754723820236426921981063351266905638223227583618021680585216423389983134104514641459175268737527264100191150672339349849831694346097169872851874546061366144780017356068759985219653007289813062131528780948475423545018205607875745132512852547785914460643555376349198215904211710324967525244714599900658426344502746798193581908586099690171277291044751215227134448267945468732873511727466443392152797420332348612465488039346718858537669687949934540383572748157671497574117298660085054314680800367176751491693442704125089021603554163903085131467084352553853746976290019297742015253598248972967259345513811052796609723993864162756062038224021186592726748279169001677017052610785904848410595283648804636274904746385757081773342896866440566501036917082682242684755578511430607674530999315607426950971040006531069579553777494267386699176228780689947612281765008588830928071703061137662430881757522630748270127508022110521669047830041011269541492699894234293972485950366802408081664092870482105327686355299105110502178813779968942347435241944825970370746136550172774246784639194313824010650556378661644310170667303740026309524588449923148577626522071999542075667819078121524457014382162436014559740092042533338689997120664679885570625322764190339272373888592832883636677467964842685624896406892000894851941636052518619310304154700666177002745110615698526042647500063296839856755355223077868130419534847859384375172151366552294943814353148755884178744810508026751669443114393684308382275297803713448891915601668971603382640299082094815725244912658076316203923347872907993303357238536802790606906383266896110647673799452410873128838608393631061830663143408103203575529737483096926149355672058030724326548034725721474076558098769272150120156938060588621456807976086441723897623737415379833923295919712427050194307567731133823439119430170459123880052899011055067935635029363268329660658059440140718468957981574087991684878044595916090798730290511204546838729223922273735816719990796193217763965532399467616384114311557564548519952682455017238413060242381441775384060868973432785695950091549298733539899456871355510537681566692933959327799250617531836730434927014263324810310026013797491103644848047829939823254004513430782167511698394610201573944202701179023717196544054268445448313432777958338992219196845252574017641727338428890424320855293643130092381064104669913472401232963741412898331747909371998662369863943452831978205987948798840756971579324068069275181325361358115988219666662752962754775301238492492335192770904706610307852426232150343609691199367623303399413539238888311753913513941209197888032649080888402891901991210594817817435937754705274971570838630079021044367129001333751176652822200657039333105647665540699959784573355481558302299554172561229449455399640484939668045814578119189376299987074853319555916993628734816915823980723115549564225996759035643150470518138492566732373411568676396662124962379714122059044892332144278849566160010477587029966077636155025032236344352860115494364273730261401747118623321011584112739165362803326338371316456727078294700520195979140230888041823110356192239185695760400460365344603964880430055803618166451540214337244867529909633379443092133034289959167568785844673239250049700792482045478809555414485712132794606931108980686432743146776683101831544431075028654897180110930670962844402771380719798785899277746543215952325465669744609325928436197976465516599939789341344768567844438365021735419949590675109278383238034694124520404299333671731101897695800713375439379309142197903623757994172836989489310413509339761563708245221473661271976468049525858665784925871657836020889836505944072753140438090762084328411345465846586009130551188515733927261669924002680038478365505626469042638292396594315409485232091737977699672934632805771756059590524808235935945981702916267781519756113790775639087810766356099636413599110298240574399310823278090621156524925971858395832294179116817159063873073030377160467650266737935017455396673193007549808981787170528183003576598251075105797562509875058421582567911465914494634402229169473233323164349045627114128466722516134204441014877104922447847922038146591437933872214336957479834074536386993943452643111923868100721094152475830737955324860009755246316489335542833197327080905273924797730409696598168652729583819639894501995481297698511526663416005897351013940365196524981701546528514567661517539242009967701785746146500376961088817082887256277971174911875783499667451183090443725027861560266131268035355530663253847788586552488452522800746038999163292550605331751384096200161147100737300647326323096486244199569589143762194107851823917775968520503307283613797334539856764439778426166353675331931166781412811662167130650502353734224201702056283660060173401043095102900196893530122271778875988859860240470196181164459556090526747238403120722312638506599350681240476695493579115905999435856300363677969987440002663343871733288521378711909539378826528157616228001848717177313253339454426157027072267103474037528130271187979615478152460921932094345591628383918698079415782859276965496189284108453846807641364885549478721162489441122732992570595265442387574909569054555245572465631511453135451679255556763394768898892446809049457144584186032671711532189386787504318733789441667688227986798984395006392625017158104844006923851828682781080457075629346430928318413658653389454561665582321967261020209217287921082496946987593827129192386828235922643505116224856772962334925508824322708851621592855328704212524057052955482613723449544957838063946506466970511726697906465022178481981750252631083849412588110946697955178562731962050443179121799085109532892095021335391739108242017605494911388638080998156889158751924151036265685459213809012221836567544660216087632542995726113238924497929668606177626054326414282106543987463222186863204669975636621916718744969603504769211724661434435838890422590260006489398643044022351634326247873362443346159539167315091992826411742592299697623028609426933982077461586195786827142560250208495124359276304839287303735766126270003468563115645436509712959585328320457788822628218501369319880181825949928496900248242426318136440538149380632174723352881450078337494883175953725711695538360215464631304269560326065906726207217480724368055958386595523327853431820464732284994361535156648597115728127937862116171653817121124482815592064067495791962613170920386768277249082054299633807830611119626179006727107282383336858793332399920789495434700454926966446743580145052616623105238888488524137372269707437148518956832943077999284632599781572116984508307942447692020237404708042414238858394064432116712636291222609190835614630298425943599631228841288049736481471605800968614683964536952805640795027540569201851264675989219085428179245894847080051445566145184212327815633432451732922029298761815403029150550161701819312930300441527469187242242266469517322612147602517729940801767878785417063809047221799669009036079974322628856092859856941143364521222628231155161956177590459202879462034729965173596246932167058443317670419437544945375511258972698454684883843541524891183153950230081038238808510224570235008377510145556894862921636406481315217411764801532328439425707561839416438097640822150839454064666720763422044204197208045057666887753131845745366686081909606293217542500487156802693398723701079804902440742663371084444203156456862513109565905467587588548249900807010446981929687856407603583182787874709062665958908714981202193064818870609284966702688647286256844981947195507733485022772915453086887811627763166891818816048071612087196402030099464844812061098558296001274910288405645860938239198081472129238075753462589169203855459586504753332528974046279701124157279412607975660191816422296410486140314516653015782551206395213653305908292572344038448974536242480690754459917080096384536409296063779246537219908576394015872749395063991765659721426730326304086164336175359142515041452364189710863241409650540257629187197177183944064270346494850866603739229486150431772184011227360015523380339530196264307704182864368153196483868419773204656924418909954541804725925253533140462756359961159744226150977040622397112374899178415232553334169004857542550929265337730819380798038880799542140102008252411928102003950814697587445065448201763873174346290008755101121272143929312407614353213049559718735278797262008352165488521674787291335991207930641077557630811905868999590879565974083793185197255786314465071580997745684951142997978361842213615746167885279224185004275884933922370882868187734727166749536772843823231766222597364202138336693953865278898481822548568798259166563955838371711753877568689588096968121971089299908998276190518240592222669965674411039434026439913926395029284157748519305249239457309984905861009387168498065634091326643705210821144234116949448331368490120271496966078790947665417164828419463023367501101039666056346035740663076750598350611831215616003718636157395749476129783097224469995359822633567570111802848688624761476804595912897866023278196437144252593611892767608893933805328209832705680015581087676342766213413354702672914970494187781753206174126302545002362394121633249551938181468511511404766462437195381159417484740743559336788814584340549829007803906776293181514754045503507626184608300807092987172318374232515513760129921414058802988852275308161583880512470300010809607513729869155780470098710570960158066029829841410741892436183783232290255927909270900260982957308761503817192488945957164948283119586406811974932775784405471359634900149927979816774226694668695525712064306604520277817919891316489675371790974128789711897495838972805707387519842419746397795588384875358643117861737623835394234282029103087278861288367347837399256070695770342923883243901152624202933735944049195269579291289319901622192439878655880841248826334420979303369091972352599764574895605557338325661470985121404830226174450843561239629199916794759169491719861952702669443223647839623882941046161873340859776664665784807093359645182029864752848519070525991462882617963237387176814256984827580885319957709156670061221730301900201808740256060640463836162312000723046711121861269756725417357888282159379190447458386923543790807942063832763838511034572270397160174392082017228751958641042334896601527752312117558056163287291978728824095950785473720163111788872132589527572666254821358252961013662665744135121735522209724853103020194386133408921494357528078201199216754654235091454129605158562738635460181962577379495900549970225981578463630983598352953980775132024888954890450618022421936513272726781564135506085322722815256608935450058982574120298959378133942656179761094815382303730542539017166902202111293439494831120112467810626957934946575057654043578471555786854793119376327761059411622109431760759413426721168905333604877631190179113567509930168792225342030573863403952813859922618724443282739556288050342467587954851847923696504717696477752164160171719584116056110437908289768630798419606725591618254604472224736801301207687997341102637809314009289757445158483096911653543778752401086212120981948477012700787774990139637898310630438655016525051536919931157036168221267531385988879349191391610895664409988681341161389325876176297984815025978515534367817338763472869712060367439160357009467313469816843827596640630546536265416418273865119756518671587895591932004747930553508311712174691868121653778749751898521932232161120546886252465875369439673206312848654465680519387773688046144975109385892708287403268471136893255736259135251137290330277718896780985729071112383968563177557273381958574449159655077190574506916510749128395999584474500685306273410216806962301961874112968332685155442021724942060701045287684726952465982588071693876215894401535631345601137901281993222317705224718595919805498451688251877284452149166003923645302938690009748207653075001783186913473618049203083959255804802098103533556269907721539922193393359533286547180750933104873984124836102980658112257935902567882185761796251862197785529010297797686266770207921762797515335729516589159953491856433817635556456910368769720614129405488129030352317872496764031320396664182972494350769532400849143772200266949046308210970570844652261893124436258997200319209034503685001802563231035827982734589901046487255312118946219819845615889254906886181448453704461281417792516938718993811465452135967251329563548445856606087239440876379952592958846887126137232013999148025578964749891822776618731225304769655278017846357675808765629443086231642245884471207734332875503244730989756806179504110953924116543127529570934479662110141905158799200777511049532558565648784511586071464309258193598745333582894894648319705199831242346341769785116228518600667205509400582400504459473870253546854313965406370930066581686517020756989846600072801400033203772143524557449239487774506142672217240935334262445244554403009611911144137956541813971734576044957407869443031643302525057273892642864273579158682534527682279798415819512398030704908247503846851506909602992246593906697723240177602389073895431927399381589620529949960628157989325664954964629367999969547815869157506993693355023747253275557735307005462324858746858178367567596262457686765105667696095305381214176780646134726291108831856149369198235131461566953607680017500341293349862672482334619648470332996282163213190507539864865732083814731430930977072612391290040343537390898252363906522504629089977019092081471053596888707728826651955840340321971233069374316046052984305506497530241525034205523630079017889907102815846529096206291762673817479131634588969036138285072402914691806152609163632335530447479005600099535945455224069468747919683841738250598056476693819441399084239531937830305275664245969629778073107425066544116927103697908681731379155507096092897723911310829957442209359908071561078140807177268983266505884781621013808825910295893051952122107756950981704524920553741884277769172311447386638092623271085477782163495731199933376793831341200210755138767043610495858648313168678478286371021370952205007171728306109945510973308403554839290287880335168481639927422426530925096225407888990050234606313351079010596466977915980647710619027084913306509142669764908034940127761169714828147724729529416178088299922773724613102875665031312928468669648091380891841035681805483608078847671879149677092270034251542611483952134317638501617927321229836752258282107494702160161193413306464371621033896113329809989708092203491034920551292482642933415215388034830813990199304502870300245086198682283003535904191453566253410474723225741734135588662105846209261836043490596717049130410312721500846439601565275214552326063645409265081014505586917987788480159120563224060179229358743179985143863688892922313849799344988949025675725841447936106881259362922206884893799342683313427278605091862790161274547643724798066072171928924076407812281512098276812303187875520256832015759983675048425202990304860539904093146701971362683321777701484832135021064694461666187947947921133593740925169462732478845028409122494180127414071005266692705491811422233849117407948896518498625383454129966350707320750691195255849016650951264030856113297827279320867487629837396294038437296607377759817951204918360415184913092738794216744971906534723996313070738686622737858845513788232112105940642363204131121218723034741182778569978426218592016003826353300163505343327308409163510950231364472452821617923811439486342239146571453954920324402391383439193008085626337533394211403131038788148140879253799607619714168996710496582891487588288897568371633051728675366864764509069834981361548649897752941747002515283344081017081970382203850748962275222293021248311456882876157924727890429109209431132040378852697859700604569232307047561598713030569371206035468078274312362319111720117483675784835870869380698842950963694804254214592767440587192773163157110355409876995086200248670368850135738301930094574591747530278996702032540240279296723141174620936310080933207351016297433402813626523886097834577747590667314299252110986562921182554026232409135199902978898798997386196685947949553233683627396085045865048168646648386640923347380334816028281179112192871827466269890473535647225221687008602549804091094291027874479867636581151484661383908103741412962101841534083291779714017799614408407562985052578948771823501902443482897784248053615497483545577187670394271086444190819372880411352899213637940414497558652953028964186450028149426579734533812488030727924461172885287094069264462111180012278879478288206700924904688758993120010762157105868848792988869581223969712312230223532150784363670403284663807530342049828716961147900738841700087134254237805511878156152013773186454709502302862488843482196905876248946681864042252307390134316471804180130463488649310785711468806465539280672559812656255436420782683333235552419039471109452205717916821957613921912504725772129549387341019247623474608576467519581431219219865285276772539514105009944463775588211622225097445402254512449159173666774886111861057533255874463472140726933843912739749568515107270966608861135328312242861516202949298244468467647367449660473269504256908282980237942326238303682203272004951820762018605675373338048523060992692704445952728496641194714260222670985047164169238631863019747290371479305857244381421247641892042907393515557308650621211257055602244730569498829242885049526002515268975034184496795782638408578071774828011129706380188504978908958239572394799366034315521231296233260423786697752901695353601620705235128007441101345753787612721196861540073061603816399985479190679055817120236447864607856660755158516710540703115054566808716722650176230702744020587245192904463298209830186930740936972188321620766897205819642281738524507889751965121223667493387764701291833291515366957795784578387968408343909115520256311868545627962844476068411939501787997075913141069636017649035805593269276589091319222987925679519270407509203016002584038210307448321335330185461478819661576995137544742836689130496200373575609649687278673143596319492360414432424663723587856873359441242219333806882539617489654014180783637923062082639305526179018537613487262105012499847350082810318453641200503160812621286173610195651718484729972146525587975337365412822664323895391730305482662076337694194660515966458928017289659666025584344355903360179936460335056598675337446027293050242996703293130401382800899508433518383443762393359700124354225120203821732278044860702274626710106228787119200144812610446093281057046008632856716032946603408814523831955172151209652539612036981876298773108084630678483955062533978208962064477874969852217269849489316861211602374995360979477995533203969384139169758048799050324534588431775703634118857149014876827504719361967798152652678593430025351752265387508055955238388833356915708917194087490506088627665311996841153769593644766262594659280617407557583451708899601217575139087971492971835128412149522298940332500141985133103987851796599019823115568196537106309661214233871872349737753835423487315043063197049979546687502323505293532719288000999501810678439382668925243428640270221815717695155775036040748735021561218026286834530564295339563717306441236222669420135546086839167328380344942175244326488978846540511020722526550856233670909995693213897425393904401798327261762676071876171456001002162244186418638343870958740313324305114982623030538601576179270719699235111796539455888259976111496892323595458429846990554459603051934959454031144216216634146493082410428030496073667307843813799649627818784207780635567347807751595179470458790540237188147511853218195719071906706706146353855795428493918409899828540437924070686944505614058196948545320169727651366892366399697293186909898110062384557333816296158881640262793446761264740540326519836093566027837703048742747571575539525846325788157657455312189762470749291682290741980068758615890057219426047100705391724209811280604239970469095913788320890809928639001691228534529481824999642923925516166559373166832879447595090226535266206385665680284171952663444830806933213464636115259329253579123876834218637964191128387020459074747042361527852808686786368485139825928365739679651235843619774630666633120747417871299437793648269024928243221284875328841101500134479481440941391361530212689532431591995789712407161565307614496105021872669116060695167375669564401523089785418893979368420318249690906982845210957549681631620708152340551590829431852703233468952487071618523050046083273974555037463907515931228748699466078166290243803334294571083153455231438871108579050124761007365655026798722454277248398648733919793266042711525586425844257684342353332159313574286710430031192237115417856408183782995937009204103065162170337168298080154616714917776819525746849583093546038791385306332045971564893223645731311827242033727549751608539141215027319887183701524617051191046536988026476414972232294576476809164934412381074683897330281053616406506865908618644999472448615657316602897020495633896757125416357372879396374877802195130210357820687087150242100817544533801689542260177210059465706312702367645214304797482059311880841492426199786727099808857124413274052410170900961185415981049940687172549870100708485786697973281981210996419118862426139376809451648265671450625529498780108062009918165480542539218594749726657127538958314091177042484639217835299670501553493644606112962647572071633184545106593163250086490813734597416328935607721450841622998918653446730767638815594668837386983892855735193343880870125570413026295483664423537479897246912477840121467295964001043708535956300452966783965327962922042853950267878647849022379813596333364450567739555020425665260780826641849468638634640903538761949963763214211672479631828933054499863583121693517779010163597363545806968454357409907400538889536979294888020242672782133798624831182775585512905800929521665009572852814997004274602554804352340328241842177809351398539017115037214046205435925724852584109311601476011211896721817725460937653206795928325640286054758439650545433677345908680351672690672634484318420122384062903815128476714268018694582880439408638281684935538014067828435940848194565513826728809018062683450838248834030302230542480586045619529460827147726754506041110605403637937886607297724607649057415046745243161964976184427103950373358030201530535218994847652303824355688571867234015957170285659346572532772070680648456279672309507018148811517536615496712318004576009305629953935534757679455569701380340753947396396406170301246654904566787499487330773514116441906426797417924488688924342720108264795507299422339431436120261532209555888252799074534485922503004617223261535465759186680541501604550274250715193446789424109715460137872112060196869668040616826669405370707407240625454074571435471265240567539730379389073009559866676280789751791826505771758473257056988840389906447038775727758286271594010021017507670938204706611842665006593467704384973648941844837605472268479360053346253219417545216925379758311922027225893611297012597412793144807602158651078725366134041530571357191625527846878983488490264877270177469300647436743746375770485731746331137025019524862426643064124772801667598354780782240096442791238534494188533443781878820346317752091574001583720670743097732857377914267163435143429932262086247286220189786196461749144997504154658528792271909838365612251572623003083441766759914611604023413395767013906436091646511346289837572154019749459509991154155722354448987336061311431808578323100420732799304094510783888834861885869153846089762997482685314987985163255475875824676128270047213763168715575183445100937120557195749179386941833703228714665911407508480972247436184798871787267639512676369967728853516203733288628481801710875311825390464761501909220320062453822216245965774723300021629423624776139720814168083797688021056250856202967804492214613079964332303275122868807807031275177158359828144808518378417216315981802829861223770455121725884678911314184805909924822967131731229141193191838735638777147692361495069582732103937332455119234884132679839288518336830037885955617677319173589438446789155311245448659837599887329419648139418918438676906297413330043709277220138415426973025130938732320381849657093449169345171126877370385011816726488746981073359244407720420216263268578595376764640965628956767481447078391950822064458239968783629752796407398885776414731580660359490385189753878691870727656529445730017721781077839026512650566592060140133098588036177552721063994071295446358544372980384104060241125486207961567571780614755464539051815867592651885816752811807084846934886188222410317970859074272638340951281393355244907033094447489180374432042066258251680919789050715065899874221145112600586566420854185528469340561684143801230460259403074581749530669462194911380666187608974983103770743769736842136166239422572162367106605927890875114275151638222883747224291007556275626959562930512317044620795341558811542613307679784877484401312551635631772568846555720292858167775151692050233210169843213322292720679574090518817998564809527517435801358375375071500466474298325404290430133764136700600743795618605919426929803512758550419443811295950602816638086453065573481407049340276346619704101783057280351738026502361639785224044560560308962672816091894572399645726881501165058102220612555845267617628849595225273564638343985796337477285289371633448163976935789967317620304205899990829124460477583664592306119855565527769070178213999492787539489259551391925590073290171992811561534531260067078136633416526571364635413589288635683447232640360115011929926921565983348326534454346979363092388379786140290463214747690836437035973608689258920424880008739716713936289457158917585636364564009717015723094323951750992350082645266058799303317514724920735116987458022210647254264587460793308525816464306726240332651847154823209942325854014549482190926061220308369238079543681475134715757727684126443821354523444655511257744944939708171530756070188304681040125248531211601860557846784431116852485278346502898782100048768071089302807917235366546445991236940478449550041159679597896101240092639196237004878071805629178982258939879101078745129988005191273859103928858138824653419135200427226156262855369267554479282653353001404057805866412067075332945618505144278546638672257567238603407651100834008604170093241689494462405548018818976784387222286483624237810336605056041494486993101421673179940614887959350293128228996265726671755113109124640828208640519771763214870405460866497323875616076288612667490132739358642392148695495535131868109392163639821207830452245996376521047604000772073687538795878799587241795024282149153592887661613749834307998386086458058942272450500894364474233285369218713901198277219323620567423900070563089920458043978428266630355375432483329375071941995882771057856932465659163120578164247958031407756934147680860677808265960372978558345428299651273874198730730495288658540624106637148979457729173910620937396966151750028703749647424909303760987269055696728092597993098460705258979285025063718858041805859558263307571799971321008707485250302938316118604060647721864375026315873283450913164075573297048562499217587953263854672532150497741312408388731776913242991470066666007797321990220448301173334667032162684054765098126553884592797198925789063069376221425102034282429525817086282801157528966083637666348621163686030486318953410680034441780315650282491723974287808638491304737132180790603439726720980289445931581156535452044633837033667512484147860660253180781718823391917873145549414544828225544848476642629384815810866787892997840297811564777135821178654470890964037310550747423677214291525020299265924616469645164012803889700110322368219442423072425423414056759254452489226686769631895389501176265971751730402715011353759126203304178871573030199114514781895737723996091270516234186523339453985648707919504873261187133130706625912023557831077352398668366427506287205084409655448710598188955737987159888368422119063145591187537635376225442314386518360508992549461189292633383528808909831899314193548229285156918465245050724711857017282052948901918200958376448494169618759321426574205207418048246759562051126061750606031187163765621428833378115765083227314339637771233823644186356303625142097169089327118790037230233499882055142728840627118567308257972858268816054244350887161091196112489406709391806883201744704692557250169718443193844518580205647511711588752809870212336086015013608429128029500173550605346768994663309130121631658852004465178492491015026794755966504756553403929889360913426358416100176362417197673454635169755526368769272465082326367348779407034961826095227157530463181377805815349491799995937760386001613980779737820117589707312620670310956046843442682444708680515027017133910572629915023787122456256399739612422091318396939627626109462325335364714435389716419712363765058690103701813216467019215335335458691308140008160819614344008113739548183207894235288014787070946912192873526997675602225191479488725027508235368643300463916236370924469110461264439855986818079096629472553352563923913505116243792138681354696720944895357397157554593287091599247351849126282750660060237636772932892984884082499867462753978280694105678304385136264566283933943777168795593403519802444456033671477665505702577862693396114642727971641250624900102257931689461559997779194125533406965221370853054130817738953746421516020789992705518091355333056355345003432303492693404487693542095717257230086482478270983415841798934871986352367315115802728118639866107013711269023334286592203808985654299971037245042195886160456031462139410268962445177177497057503495147096123469528327303060589876262618714836310557124293553078550485809447742151736287950201395383166211452009239755716599232319380655417056219701648477757022402534117988823185272738253628166309680928604315022554627490332293612340256120282930326932581116957089852539404997707430606341669718240618600486182282885356541511002791805199754697281561023562526711128882897167531183303225916804713756299493524741186047918759869700494239733107397462730258933425957606432006569301736490355239183604360354055900536796506622727672809462542682746693199272865236156584733637174955125534403296043658361117906436513296736708363866551274338967024670782165254513323500334320634603244520079762435722426156152868838247783784401251455510231023499036260144183731218097232663892738486128519249240331683681971781249475243271308616840346662674818843106933527392928096007123658514551256451557956504280255148500363129187223450840751778156400851380196595266025875664057264177611049982409853971292857604164032982474311233546683389736952119106860303477642570588146136762508398016832458391133782716872782230688576732874724098761969262008359101489392916637035816750021749892174415756068158120158216268165895543395628198946930134288456837627402219363530818848060578199431008148033549488106872238376008857579459811131655711929944640087146874803300633243912167146356346768571772502803874754120495267962637466397259330281557533134199573066289904917933986561696433376554561123389245037072146968933661245801366833384452053553673308789639537272667591862830643912056105495103872241931445160684569749804642967430657455111125680473455851103627939842684537679406608717165435552364325691573538357269204446874384985290610040668729331270588281276056354740978444891518089261795741880754245382192201099377989798795800574958689178730880652184193372898348936598733345906365834356809086633067859566081341327641607803770225088437107004534782659849344870354138675336741489651078231198458047315938626194056139166467918806749286860572136673271611915473597940959871314158462122958286162215079162207460824272016622700840891732547589082932418162587248794354005686396811392121533250784305967315323395154642862647535238500284513235226228974055455921645455704321352190707972702622168814673096623575594554019162190303037697544825540015688105938490114386169251506820338311052688020293476340406597113406353103950971050987798573407944969802483017821419436167813213208477824776030958116926518259233827664541620951318609023073704016838524679261550053754418558149677929539747717063735782928151976731120860859028693642962671153210615685154140986626299736742466685335317256161499527102185304889895021452299383578392558393304054085642145597573918382055869912383695577474774804658907869930235262885968741939403569033731620101282770630503820933529293552522607334229283251166532208646784229156869805287139543611164590476312739950372598063910062054542338717975042741011150932672460178574798821958153297204628554270253724845558137965703178360953971040492224553141803866567143984132820148246828002332043756793530688543576270903581017173621741952233396940217707594653644945846555561806508047778781899322742701944102787079075262086862122845079261102368068821077646635216099073993837257631150062753614655632744023960914351325984579589047202948516547688641105345626854033734777560957850584138666325852199658420305123263633070197461015969629437251276234512874247103809800222400171079737531559750711717344519716744529554373662991360138492091094583275302035315927000131010925476372056716521751317407078608522623319725358257698793555868562684119715701031806954911467957128299142142086330746143233545790536781426931110580214920726603302267316353744516373459940586674826091181028491411268396759399222063660752507835868130179513609203184710163696113704976025862868609737437573007503023587630605761143763155273460184666003382463063564228606587469270925848589307166493760090766584394922088130135391629814375897713050818318055413857034614155180712961124206239050509505153273226823280096921132331256401851833789830352564277625044888459572354630896260199733897144015314026084509758690551372887712850219160008420940839774049315737040218646070631026836163324131654614655156771395819932186096212251869499905386461991398307975540413199169728529709870556808732718728989623287424557384816319826327260626785833118258279997718864866604281655055417022182571970254186184333456860616814354705267080085405446151745270513709211876323769226469689280088310332381273049365787478592524617567349127780821053588189658829442018006679706021577549923770748399327843578222048642281476139774756847304269865425913465655476785832392012992783977750452875041207411353130295418073964699351594292410512025778511337251081093836032054271310156072884652244911380984565331315576867352271277481756004322069665547559453461455144076863432471602154614072870681465812305222674065109045379901797607941998927835014538734399621293296276069520621640566158672364568179778132379758843679209956982020234683485839444630087640759347686176219631436170194083430418888029517810430615181735625416323845921235118176828535562343376010075268668490197749876562613506839313352083363311637166895826163184398552434518381304531592514323237187351174498880291701124123322164377975005697052086281846084133494708846520716984726065199456239783591249840264404667851097705501721903007765367788263005806381021418122543894699093740925528561075209881717574355723145482884518855888859619951359120757836972168454198871175256090703949298542463006293944147060138948964761346766789249302171635096142134844555015815482211093690731943311946064105127870085700734993753583622149910439051290525184737576393299004376040505348498997380272686486869898047251174481731603116081762064867218057956757915423265283870963348179652796066071759575738757680964259130996753322740004581869479688523403482692781757641148090741853119294975453833386115188770761614408738920285183490122494404449155816553754223648838936876190428384341658803617576070980520727404154191424605619889828127771161010290692302938875497840187743367002342230239712470448256787531746365101369170185081083150708237905809685791163307217760849247927134606453084326270968324611589695233482109722808646353774719636212181421319433519583955917587889674617840271838514410861101257843173217598834038812761487679200071020575021517177325522106240640207412925105035999082926753766176161423315354946418760867584253896673588891615466055949784854045201281457201829480969790420874998579087289003642928643714054491968475499968769435995926387816692773888801343338676840200727680771295405153510215325085956738591768815018161824449119377761198326107283538767332555004880595403441822501807487977093842525255160893340520981421735233872886439704663223546834828617942985316295694208273787306639454924998743968478127250028858816427409816314836278989539386590742772196651364110022606029065309232011922912516134083868252999182412291017596456400832541466919717370476768011125510959672467752241213354301104246878811461511977430388987445950456752564437919393359593441985352460170120450621190251861715767428218293992435319016875638498558656204623323918547926384232735962899583193534324881742350166936186892980747698665338537077471033813937921675336404445445069577754861831820964531539810498985805807296154427949252182452077934103531645543157986730404350691759826447874354179879030898685491110777081149490325336848950048643023392973628983350577379898474901261577538926213668456681179089577493769727378398409370534130512712050967175051667146965035924693211577324474802408485004601454769366325145743057761201248894334396684420209154172034662788536859682405760025454753339104814767986463250653599903778228821099303092584242346225802017885696286281719768008919045901342504744841806691622658145576147373027518676304868388573929976972592033507401283897537287014807772221870675954507646240924209514196370355607425117535610815504902228669252088995270505003197998271958366536473819091731822115432621814934759591016127625055920727490100895154150111728065976286712551559399641666864381388615658532219665962347575097771677173150887291566663444706296546570367329011633941915615096885167609374903622851132585903025108759081907719346496944350751471362534929874657544844230011157982178178577841046232233470830434508655180114283007433693670444444521707070345448108115018186334444884076838877933581216666781122930839266439458790404329311434604058232109489680193050235264936629563474489741632953059014287467338460409043823829131518077264834320450019867781566676387163292839675040405507668181438291895900640451274462010414027081401624004293946919089068920763597900536041872939894362807410587047625099245383470225074045297494375182702488332022537444515389020308502355906108047820053991253551128348568868316665842185131002427596266905156509747902641340199678233141517724023950221191771965864523285787951424354324873092287962949938663121881019625724123930831972284586146272149475127551534167207452937008810065344976081477573856644107669174602441589961708089086731105021508416973488655303838796973691994056476639487769227447350111565286868632093873406448211627116016791455598485822748913874964040811748389448697967931246908921713264750590970939222936101390272064970362732683721565502881792031226887632312631624492938110910502703567234672046060158689645311109133859645138823439665190872770537362178204194066197928751445125354985701375208659156785421023139474030184778383677316042929983434817290646801482876030362536164226521977873173281311688224152727903167325744081508757771173451344818610481776605515160137367792023426204821463631311078984775679230765459600131624108638090125268374032355637220743507076838417770412888427227539398972474966822045247309053431938551573194841069358719646717483303308790351418258313307353925731712630191313590839176451959152135412724461256380332169752442507855003486711586311937727850658793953450389327030993090744085028954405720486229222618312151225170764698348142527487754227212512403626341920306647287561138604918235355693529101086013601543557224377666368100102433488072444740567223178524563605617298576417124788164675199896603458754121287866327197376609110945958787566789970072114422139416520084968002770063620246162770344837595875876941289742909564574352382310437339277978809839004266496684713900555989136565907271020469483727257540575547555089234094375217009777837962081284422120950115258294206067573077541829825173872152407311318321229680588578978285297457970582535014442109077597518482581536847689132108829515908786684778446797258615639540471878756846020251033399637995300917443308594332763679031185151985688612384284020789891152142688734380926278626388663910094797712297655586190577896385444846976150654135018248549340874741529641786967711585862496956166143816232159727916254686348836290924749496071352687272796903480030085011404304939913175724229844366426580460901941119416249838909188195983672336913735761433930291028366856884079686447495843613591025711503532858058432700105334763852906999082843584659324264864139438029665934417201278410228736845550074774811921258930982382446078793310638627924707038275122283722699921092964632912097240727357684970906750113444416943144294828239832478517707125843859722710129752350629222542214211739713269690534606645671452230554572208345907540516377175753680415459512635625566529057545062867260486590982103872312014490410347821627028260223142233124592358117569647605374058151162892709947398436065427531658638055793220981076050250161649875012621245003424416216823815046904368828643415135867294774485280223875660299446101414946267750559484301882714411687097595659185504879089369995369438537244955427859392189845202228951863000047587749327415179763311246778388915077415032891368707444866952654753656600792495528037399977201778211690922056059108292123904650836310031250664726739471807206050302907578355698429533526267164945677799106697996851502957345954633830408032987273190297940032696396464566481581681178314630037118904434370823127851124059855040051547477611916016443062883430600269172095715261656671166922244270288143235539512675898706483116132091557156566745542031850702459474949420138163614568038714602195309746043079316808544036465066167069301362843608461592678651534632669613371087092767952814210828521163644715071885774608409229836521464604096836159279071163572516879256549838696429786459630722885901666129683730486069236236302848529770892182461515696553202851355967144827671537557672267929419083968442349652805766706833957409035916630542563059856047962604471472917929522323658468194362407299933886598352367007743785865962232706581201698189917636376995325199189509395603663435475047718507293515123239257805188171072452656782214251807095068168447950621299824947257586298082483098379635109191290686289360275954117290335329223885211570933559888369265774909973964604060853183648281766851760319459734627182346791007327609136288957287188760182045538649237091735583598905893776765672364544237470072205530471826985145451400977128187857864268593674606920591031573582514593410618337493897590960480583062553841387503774300455898191798229582635081802407682173357521900575767063190555809174343838167924618823443772954739441296965898534528315581424171243011006364514974693776088366683608448907050765684964723716004689246665062157380863238473293331341755103468075604536758454653250678578104772729554875566061508723878413717703159447633319984431766606864200236951324252942660394241776890654246080013423558877702220044940847301549573136668512119769823609952426446017919588333156955449270478605112838689520194439835339536042388507126410766524865174942288091119377354915456541627863855113370841104463938994897136362681538032563296414701327282118484417910316238712155479614448406111003568431056238319983439283326196314928000751826753558076730513865145686929928742544931677810153029346409912916159542085590575944909436986144380410620291298262213193543951195778971037656274742969444470278609785750940280752285005435835195472819395201657331586633901720963819931319523693142787923067832203891529935181611123824423553825083650651108735450425674285088480378336881374782595511200265523441294219711914213841866974299971380209230469285296008766097848598807735139220869125495314795396263491686365086187084994298324429144413851365187240106787565780608819182677875514156621285828130554908147552684543876847402644390671960576292606550189325043597027745577687878147470736151497569320681680711521844456557256371318674297181912655456473362254688472005744334911825895408247436469108629444596582298372538208917679816364059325952093875991078593616223348482048417360332525982264135857822190384188972693510071206115692929211796088664821633260101871624882737692020632063100361944495590344738620700839749223285379682085841229653161797849716219486709362293860309803132891732008831762974106182698465231273298162100902416726908317853788626845189390286115940908121105529249105967623336141896981743464761907487844296539521308588592241924623552805214835871769345517541462809864086250839758491815508611276703279757127816142172094231473721345760177978970656755930403447132523674730483132158469655757497918631786001920145906730649867523670789437143098830197496027720372841508659779360983836494160102955180615553488988955955648211000314194970194746170804372726637182604352912820691750387545040198669569047277845230365825473627088538957185693291240414122071158431684985058247164141150817673341129716261756457154262813909089998159627966185209997215173636191532768245069132993312932400696589162920488146808735665715682406325052968966250621331633197959400919919716266552401635617133286466572725957184022607177228099966541557445789442554697665997169586758035445421319597086075004011075441845595545990847687698983473652572795551603463617624739014201667346220901873712093534678381534933742926173338166439801517545885987730987085295132704892671590954377534078370609502453849872345283681280193029576750026308495802439352104130028817670509484482092923634907150039292109100735057810271315406543359682332145608398531860430526191425505281190950241486474417860458947712801766491210876760403768387423513669348339848641262526301474511166231535292707439607719935246427345878299691428070312586722894456912635597096249832323190362117411022129567895318056186965538420885323284624809596748879811214142681838530360281932029817933481615999557678329520891869698212810220335632449990093791549722248636568921866713004809097577835304231210327674747751258473178209467187980640844948041316869433680921119627708020649684081116193266410501407714241438391076336618194135689559887798261747122749766193393956312227430546349527840428691793187107066497116381438218058956032732838262680102086414009835488633776637203264058268962871195499612818844464437029417776784997010161397477723623474947802528823166142271425363048676094642198271077948257928685517537529486910794533493112642552680378302312111356214951214763577049383007383914837359314747053535558181479079395566797457257568462229867572981928735889796431562545436396964859780597312868314068391337113317047476046909730674147871844919915876007270044930728200616834978885627131418597175031606213158301976928439642015525844021809278157302758772970855862749388395003682071166953261799223351874102328672500341994251115125061125336690690668211293825852034268673580617828091526508125113599638571625643102259568079171697896226604980769070040854616344627992202017974841860712429603849094741795910425685276903345638898250429186574352266801740623271562765805705401569979363194764611796716455679423675616611278534679934336987225071791883531207683951574681303826533529782419325265634065392328916021612200345790058954563035283921599886475494059192223915807051185809427017217059325040902817471180605013416182206564457853900305991757823018897658092963027134064176798038525422316100453159886337140214510961187666551613784985459275505432684905250932858838627790646401516822460121230092492558275514411195614104502933073563104705106306931815742722300885106338010268370345048460941242808759440109773937889803872313517570592251599897982483099894906295938715099638576009070765129023204110897249442112970489302725521441995801805153802835986515940112726025263808832086930064174645320117074846260640099660812764014028659329599722035356221449715158031767524488247974795069195677499869650128185056565634449589472534084328234136878849836926713466197327680565397722774302122688222351088303674756027809985858197226034680218104953215519560359669641275049524817464064108840257179556967932973564228371208846796568278692820416631142012423939094129975153530161346260068600627393238254170219734471656129227117644111538054636022070789499018987153988218181940413402265888666142126779493348900710815540209551078291470097809027125022902967682706453148550883049716391187848281015044526729281333179968374740416351843018174793142611910250121763799661812836413269439596053711500806800928030502966986208963860157403513623290063098938385720423077320609457966889236738696438532160030199255601554729131820975733089026663537403469049497273653311094530797525174206621661003509838785254176355285278015099527061247888244801034101716484130844577102599748781731768724183136210580209533174003099758783261086424478758625131933480345385918377450856096009756995458020187190339115087604843082281762967663330452001897542914672581125388684405237140993667360919208710729982641286153135268410604406094768131662827937733044601512216156411728195176251931743737754386799934560047888111466345046384207746283286302212643942046646636985036373384013982642114083597595715652988147765281634770691292567532884646579064129395003629101257598441133097345916272660760177955877250256019225353085601068975635582511274739963256642661106846650432240916751491204200990707408376799882690668850577443951667153693749367754534761485853745685458119451732376445385015482306535574206088018916808331803337509758003901859737660419155165055371248982496435140978539840204178370832901531258386648991353892758779520264261993204112377928619284968722749469536077395234064455419206769090487781371712397496803584238832383580405083229364130854228500232076165660481745948817365668992954562533754276987652447419208141402434639881166989551232460463434875656601123260840020453609266115846885182974508594406129165050735219271549214138661511249670384120755285975505524203189651214242229273312163947616772840183813220287944548140879494563254218112004843678376798791434872696591426710527904952566532057586125137636980641590189733096600411014721404420717237215031726729602121236786760915494459918635938519374496555517504428606989149754636256845938370865438431082249693845218366783097070316220500958422635770707252130252102575018362377110705030059756053476291522202781160087638232148981192194325133925636399432960777817759468476502697476495956883162927036380387969905976846861486112872051242622517275056703383999067083061160098448187618280203641177540251974211753736137519556969568270618323839902203208653328985996559906953964384883165718211201806552442941407599128333380078714081743237877314265956903721910002454694577899977298002436539916279403769660214711157127022956142642652614231997390696860351054724608586460788654631395392994467652776489990950228178427215762422092740510803774605256103108016979658550585752132093287295269664421854860325255483749757215479019693247680697350551196181117381502145799971981119198411250906217253583162450972785802939602535781431579546017582223757816058760733847697279543142869489445764852876523174721875424464195379104781687729852478638668532892575335555091631470103687330026150882432578261239051658765735509300851603300495546969976591200692213095769485690664066156466849557919138752323630236285845271896610275363783564522236084676279713258540899125202091619162991917450037970488328783575645712101820567545527332823134826246565728610784283015506751025025452111513594491938301480283182615416867316821664121347980749083009547812240627900043704392717337781920315226971598027803029144093233642542104349977386474756237929320932948883916499842714995367608889619296744759529372454531089377179441564376732170884377323723781532546188925043260288410367709606016755102072235276940920293273492950408641505887817455372619911733890110356476292883857476741457685897519698925235055261560342541251717443835010588874841733040058711982623251615066769403943039978844337495021910042174740146866560723007841038832397428956808594216962637232408909622436408327467450438627776211918443194790912628730444378339047218504646905507157083069077512313237566929072452673799169928356119873713484112431731673894878747244125119183410096770456431255090546785827688637333050982400926548724360468461483624662875391744239061478536409302707600730733617570509384286825044411269355254563744443401707565464469947326998158579000382881923693945385433665061816165662634878962361658202256513102100801287144935397298536912597516622719119706042789660870919665044626538632592211535105541603760831566747249675799930849838696313808272751436702289476333101653373221891238778790265889275805682763263389624461722845751577000270177694967262346780433973155881413985240296831987451836143485517100940837306910366481235621151503534301196035581897571777309840831849829336519875401634912988254429322791445158611502518144743652973005885054783452400700338180268623316771318361816137264245243834691468923093136570525304815811768625204213454072686996929042168566276016388752983346154929876319420053211550289601568445936387478979011161172645181532482801601471419211165465124942042187208444852667860289498094307220661652595976220426709830671229713371858376826831078916096174041396818500026274096649207165617262682523247575750518266449678918709296831240281652839330008752362987686535243583124115892841767797685687528057879766845534646504734314587255341880738221665520018749317396961935664258613694363959637922079766565044324317940701634285744938487185878850668244780584398655720007451899216829889222064132002216936204707837498615160125421667768358264492581849874357235157448748714408063364989880329560468100651730488838101129373203973302211889286816250168653483715684905277846616864673195666061484208077373964698329185498777215174162634340716417227134379895017434745497083120863448415426964414218158016482598799531226160597108317175534452348738178879321684366126457602814265984551712747477456401210944160420755235806359512495124101385173211158836345209225546135215473473364399182427076384070277612150246137277312108184380337625694910507898585970940411447600669785568667866548279014152204105173633407937383150637498239687955481453985538865846548736032162555714508400775220797427509527881967161789630493559770566761815641571161108631942500711697669344998987442867346916438047198244696178262348460019908720641688703208974189715195148790049587432900298933014547254814587020933202615648380052891019723745471910435345751339840613179439348360188468269145521160691243286650837898795577678894526070586354100220498720363557722368876023031181967410939680310717820476021626162235805625960950156793471475540021017024559076484958160449561120780344512861365019844007950558710678752527454944227759113508751773024185540614705672567077096040367784882430885213828427513111404851998737509243585011035687545690614759023314893502459940265565381276387211964747606025624467398629465207002423678848745903450869367152525795265572176681178089569825951641975634525272994183947735560604006679111526408831956041847271170245052031601753566142818141384612593151246455951872692813990083714648939576244118158195739513929412898028081178991499357636508019232908722321529908159563469495700324227832633553445764715210094911135942064314739534968582158165182723078121951418539163557425051405932517180555772808563729978789586192559610220396572067586707637275259546408678547901125088014749555377649383139019644571897537690587623105214410234251537505251466532633961565338762306475345673440626738606339840611410447310841015984845699366433669490469363708793616959785476616315917301266181300684636147754497792036828046850019478025981650930080814797557427876978021464703152061810607353602193591007526121515731683660770153085689638797644020680439642859632001000455917497725089672956460691287916479206722745679137608043677733700586395451755277593560055185891049688022418495016428890403990059558628853795566771220128728046755208076413844102006788086077331801585959213609720428374373892456905636252182582241070193983748257490002331670736156355192196792668931573647135291274472814164521986598951625820922743784303147477355403830871898100024521365655256720024802404491112210785500256701994392093678750162852650820058159230099997435167492151201696362532824822575472560011245443777960688245008327657259356648796145965127278801197208814680912436074809411405364207665163155148530064570458266379526078610255595939518542044437780036110167557861458736964592353964639029643365279317230488122323732947953305234982104737262543798481071289343988607547212466339577498953995797682287911511989421596645652257008298925309569283865823632177741345302404062503375251368979862711334379710149144874799337647916301027415260003770106440585778581367581917859486677399974805468690515349083789947143590764766257505556979679743648643719526317012127141498283136289936318797271593968400547609350570927339190648962372140153289993220007314265230804005179225758658371060338930489604045411697692789238982442137839845887456098301889100944885005247439831196591524157662433723707499572693450560067034710288950881602844661281916638157265302368201789732051518187148687042328052390047942606701328478284477042061470376807998257947332742176749230467433895243904382907697485560769628356060602258708064905045466658028617334246399052918541235457021646763084795144403638547667156918649277945023402813845323156104053958799907709885809203915927292425793695593529439127011126400952485431413296332331855897769594970374461812628504165288268304097735120973037706564979254709527019937707047011749186080507248555675821617579967548753720220640133251551113657687395341701056668516880781289020298987606254633807429492261119322315621457210922395540322330450277697787010620890852434878545314968578519693003171527267135165727526132961277259870097307424668621690836268273405045211196176302821324865163647426679870215311985326023688917334585803294414659611095157107739861193939588421953753288918695047287348326062023556222826564837609317762027397743006357436704517014339504425705930280972472735891820309761843759331705563329986093763861016644193403561572892190259500854757567934474505766998818787521309315634518723745367530665352665679550305842442928564098592743435500384770538241409007668047098000382081939568817955174888889437496593022928314630061766673592422330134916386572448072474503972443562300820230511188528328236023508580532843755337815855809834017236615299262519449619526128124610165154571788571711156094280991940100180410564772200746141940498139194484976012664309275057122306636128855539309139618627316006420500916037858961435272456121642205970603628087920771972314297380629633015131811240718297536327563936135912067476286424552717870532911882214042688437096935872231847560395701166647295885124109567649210189849222493851260318066609141657762891411835250370691286253664603119674104307025274398064400781621716519480528986947157699460063572922162129429904780402720566469301310571690437918698394006261624628939473747767239102415840681829714010160020005288065441053654782549682142079789600660717389242146102255478340133322255817019513883813838632641912195150155896644807012296024926413495868929711533681372512221581118128340499712916040507818308218859931152409451903464524523370863145260972052247302101347779730504844040431617972797993378105766249049954818547683905428883700895169390489206085081855193086911402278852572015452937888599553421882083970124855959876064845394465538148836194191015773906901711493499825076901454609860892221698155342794023719760069443718240555429149980841760918030060371232694296345160987996544421756913148431307737029955599672890215699131668068321581403861524757972427513673513589748040268139986287891204628014950377906679859465450701930582234116709237511717013115423697619496822178034143300373346158435966556748181060080447905313793177399100095183245314389361645279769388147329491390298887529542360109346538827995085192449043104304913220126602169006515186793817712871029246417895764474214344477105117396674933428343433918183429488232611672741694512401614385052867086861969451141708599348736864260925666682405162043717669763777073337441964914613667673494253290329720546198107967319288407574648645982367164822647436762293866629716406496132393247919283514244044377520457514211046459034995913122817581326143282812439824011734628117546320757082646350473715554360301068968335995369998269324924827986738976944683752439423151164529236796087889233734608457775864439271625938298927395134144936833919164767899784651280083003668999334817665268051780586018112102419568403977805331101903346833840622362918672067860831447593576893697574038482366696652667226173222601225161126116047901837811165936718843598374252704834521614484407547421247298024654262143112100380486600849891253274067664493107177700963287367596296099651095938864011277584035849238517445199396570117527524135266838979334571595399903161219716446428319611981594313629820594933291211720583405942581455788830816343811954968439020251293753821339416548394248361410825303903544038025980325731459638776608680488654436762080832251977619763897578759062390488676516797616455568321666770716314520461764229094859987663853059645929935814942783276164323878419717707973728710168520241066906376707704276107845871414786680014328554685345781492884250211457855376983546804325949327098648380369981388923009144413690980630033114057530708489561377448382514550969899980918712404703681189966297144270214006897239567360604949208387680643250087070618063587709895613350795181636993586291267863983329997621903301504069522612311501027919511293584748807189487003247153709564521442166988867542617254210290435750758775032212885327415915790206286364083347726685505353843801937235224382897899575663138312268283133795098755333466226947703828425413737624082783801093295839331813280402802376837752311382083538618735593683349499206556711720423089317574146385852482220566453695002276510371884594047820032237620202985398676397829770244179614471219036251056278918053456979547345074334257379116967561221687902970522000260928227917922785243017768479413984938521264369002368000343349276607699536776495375432632270028389560238636194864550609193816248812151690603471952163366566729525729981990318858692272581808371405413158499021884634646094084396898650605225501351995434474572576871478725349075817278413518891966661856201275561703848203651028806263250162730097435372683980556919114326178723011516830759578073954006567993259503123268656564056326575517917106362933889445663193683426840102880171442359221040619706922536800769957617438223431224864396430932368785233843655574687426205667455452417887564698074636588595229775909271056667594484483178544185763310397940569891753278925420224429719022238414735833211922216165907477310191193448637815434001323580126572196398024878339762854683828994346323939651633068398665677414403419775172913612663155796768543204218719616302876079215956512808982168446801320961895269541796233118578407241016290517364601055868645648213513536987062029832518727820715205114589919871954845892878225295725190370199340038370358083387945477246054197986367648065958236516448336007899467772474741010448920900914261378425056248965440637634959464479058919468601022013545692019833503429955180810261288752098209403559395510118283467945762520333840888519927861742637912295134110070839398229390869400237764931984625114747851704888451259393503018753895481775151875567119754696681379176224866840375275965739351407272320516979804191625666927285222597072205967029297028388152930460119753200894872345325244042057172212397811186405160721397839171444548180983020143622801790040105205371622488791490406471416659988445765332922775965397098755923794928239900387430166380086665358380844162373306932822100776606015576435294840410663434778537524530811692230902237807966028546482550733497501597505948596041214909128544019734277905256025118858523367971237070693936662390993418414018373315971084766963320281400024378673458645088413870558405934781787743258763297034414776179153165232529511346444459251594049107503659770389634645590540229807017761276532012027118276612457980501941991783957820020722849424641550193916381322335908290819639265752352175218694197988321354866340635979327416438433069346121971758733855524746914722191864400975344919145703579220435304268424061889783633822607264596537473524418683189223338236317615416289484354792504917256537207107870267663373017452192782267428130107629561681234860797512411956879359608461622582080484190224028867204868763200155341577854093938523805225178485940583596285577611413964151407689241206798110641091537740044855550508171222756309628144618042918832066635225970399668281079576222837575218315492250885310882407734358498897645196015728574996420120024425212272584206331974323157497665424224589470580263705835924082193254229292409865844744762808315675473734826621707467412201577704501395937491192633049802704662460816539038456021771333577329341745587937147408357903685597375138727311587821064966088035491210488553048370462149685668957381870202191571676248145819307236671864182113246051458764819039649310157682005675052685663941842115993710997951263420909038640298678899889616296092032064350131948747063862759612814673482369180639311802605477940376884037951754070605661603313274414576946357946247930615484186849230255445018051555927251134433265609751763406658124350303960945090116790280233309554223358132541539821889356872703144340586994858315438650498486444946519016718437440398958516734364798824026283393650856551543880355483725740861470353129843104913410901880994146612525446730008989521141298353509349413984963768542960393939396999995060688693042585892671654618178877750280007961476498770395503495300792148934258376738644264437405583979266692698956566547230885873087559176653472266828499877061002829475524146704922571658453231251367243434995862503246617198819033272353087759634731628213211993767889041764399836164898373261511369036843015880210087407242733472210050559104189470996226135475394291931619243801611749764932849346394008870518496166625319970215375940358718602920443946499729247401209351736580938755491139228482261113233931704889628203215973354702560308479205559099612749439635010370405349712813814489952250658457939971948874842235664783965972056618834571701296736836157975961497478489508011034216730780605359923788470854229201756244866163337323305043653089985461719380983576985181128085897092189043323965679046448853926497109306997822905793706596329055245690095890109925276619913362333499125207658270078448397853076063118598343655743956900882985751130457227055996502252096990317930657173030598866576874128975252325888209693392100042640790695446001359733207841013580669557764783788638210999446529090214072556547663478474940409792326583761737769061303087403952054417736531525291975059842854259444415734907059857278189952705323334386620131502582925328107400109098610936958715757849901805908368148217319282324738676355866930317639787073762512646456744291452060958245185669524816869429370674817669279885086453182232079760638573700895742588905211759989852449096334183237897332870971594771596789359115400389405356676398262657770041717477596735985139141495386783795079745129422228777296856566028331566409196856468599243641557196836493697218447111949426976489972418878172630028160836145295797861956759711071912793362196238407056661659219825525164012572134668571359707617809943998732775560706960072628258811301407979212357755211859153842639715131844838539998331378257591175027288232863721585058650189430243005755388852244953201728278197051748214904381137305773917208431315794761637904491739127495872772767814094108279685979653214019135399971999258645182116208570746830560947727395882720317541879604421206178304573639034175705089376878536581415828490772472982272920416887537844257369691012806571178155711832447254270561998768847783797773187455527772817489304551163480134683103472145727856268929928054129006394173419031186771629236750790600470978728751234366051102253057075520702614918124102284590980335920182800434827362036138554349051423418404247420383953884978464780953140692829933682268085825878232893632147368494506337290672242837998058734481037899490723458934534317302448453523670531270142389253570652645209735387326544279190610689578290281555346543529922315062601873372899178414243190650522130322035873445818338847244767656828283974294060801458640630038007079166441879381261415350875069907434448557278526746425933838939671095851620161813080141476102802248034174903266642760589722215688453591663431959223743806076557096789276138690085165895892303606552916789380012513026952385792846555100594384074209414028917776512977740518187251443947087088754506182709254338434382078354563057350125212010659297539348003389316274167632771999952973019648724483377939574910663553035632023299887813397439097314180893609042687223570682374739368370740664314962493040538927896001436209190294911652073631466010881027172579322547031782322828194172168184007818958446031384273261988024144699751630913628871643868794762682519547974880817848053893604618165646762681421536217037386057609196255834211582545890534974820358977227164480017687320438416199734207403495180696840924474761383399900443910141409313480974288324225557837596055086976238102362347937898379999170500053115476154781080358100369533053083675236492764061005187405112067544234423685727771806468772092907529637022448865168043476963058165498583842216994686052978059615275350164215022094631079860270758127040510651908800505368945459944393609932904156012279977237128206885313259095859815370379357697247587393073080535503111597698022658578546909011228639057790571274122891420958088438075819046528974232262790811027181568239441435730696988584852805936565667973089094974219039204272935022222475753271904808580610529576902148926674265165091557068717105014050660621718476273464011044875086769883342256540752913866909819381677471615149310171282710127682926876378509388351209068476762929689991345526013229509194599298333931175527959283164835971860682110106748024898655339331468724099365956655639565110161722812538783776228554103060730055419722251744262171153618303657382422208982083016102639752136420579419571776782966566328276225782877961360672779897997969835436401033641674289631446420339305968500922259367502870519351796474310779177533487164972725475290351477849768911653169959416218960691761985647465691519005510713664252191120031378208594285635919291154665901503373361818645308311714809309167571917228571447854534064056106432851275133949010950877648673988432645194574301304903443765284446881633395751019369331357785507148021383002962669108485665097846076857633661365459511122274424533516526368662080041070249348171369959362257408615320369790963407711742348818456139543856107652111329628752857519768795837637716787051189289742386645393348201729421555603540087215574851314311005587443849024622446678234437059878492445893376278534722232332644271289801373910118846674838147239939035921710650525817915102417994754960063792696996932976744473247724249953213080276642967527584218639549498827880609340989762165478459202194087220601941241867618568320748315828087369972823431624744822116051086526749191063427788423665041480218699595750187372073909233510486941638706821667086035078717751090623296816835300169240114661182671716603256516551325272333342936838699767944529832639872364287480102640294403895615360140672704405408670494076041322741280826473947879840241492843135093072536302493387435657652195507952867753965362128393952002207850346060910403140375139589844339673372211030374054181522241180129063129941746530937640695299148295838544909236235363064154657446407268182107365388345716914877063629384478939889152689575134334995647787424667517864951799658680548582823339390719724664867466061229269542650082604158234919324846872083036279097832129202631167653314840504166187156323955621866995059977044663842957862936058711145975716172026580376723489768488662808188340452453999520193262304179918985330431697323728675160794987064523015543803551169497072899758594902551749903753994047513381397051530841641118107590368437247807574629154128022971947477752609519444674411353757677631919012096231006589014722319551471845935085686036909182942326765389786874055771687729183025701643164387009313606035601027512164999122825507669166236641084475122259560270506650201023289644881457138601605068396291940893859000649613657809100823998799896042277902769418025460583198558366469631468382640161844243226985003154598771488550868952514435168639040717248859626372622626448586455562092501073783737260625261295910968756191767421559200684856945239498107384436759551909028167526561646375781818094518637451820777881091743765198829624209926404111524093042665273391110992627114842021979619736558785540693793228963672003325625323338125653045328747720626896686280386949460194960611101282930069544240348363713100558694293165041647712819628852125634754026596319077378032245502973497026022388524817272151863853227797826786960429715169902623281897706332118112055837603172785854029874954675961187287009481820652712968568416188768189113502637090084237188224432655740417148671747128833680130056846819476576009075055488512338592432743014293739739849185889303337001727225739944816393613458978946512153628699353639551323266424019638766067066876977421311483455879274535087150240123858926825928607383376747359324488438388996677234559812267520736332389366575270925938643839457378221674113314024316846259522292738690180769960464495966802831050988422173673603081153508694233159409668220538379369521582222223085346092232411254794560525444380980637525816014488359000364042216734364499940491120792238923633943585762379869731864325726075986922516741867110330571316064676182445328708129501755646983658781731883342967767791476313871549826256451083475005695350853663782973642471521697232025703214219201428508940248491366135484590493291176916405862395369983976652461535807783868484154569835615439575028157283636511765716895494856020113966962891274641776882662724122035172128189942222193108993943088682523950476381161819988752281148839273804606024532569605159762346723816336755159701630861392596675208482972565372748157834938057429514334035856182052972925777325159059669337029170036518848033356349414262843755130729280076345273108592338566164410170123500107931922801151147934301657507132023120187294023677454156323962666601606935249138662073440346668234356114676007774531726713783713443056371400577686901036592915140739996896730556103955575989900079970662840625265748040113866737690325077360955613779139536259130592606768883043829843965584599081262683892847230362552390257048593681280463556677708660520619788659894460091506259720009077839884284063567006314548431549667182842629316777759878023932560842814954788227132124174720738236346513305644487979826785078178738395598837971773493262518978399588879816445265670393351814169408612862057753235084646462818485309515374421797804597746349043290984934629229925049959695774162529557000720765095322506644466799797856980531691624542484575810596466393589551620199305994997622173540303876691789068037188681548546510907220703803943237452679090514243759016511592404568378517939472020585351999605098445450702860426017359802208145541269902620074147199214017909416903805848151929901317500160907621343904978662231688402542138643901829660560161319671014672297846118094067114455636236326582679760855687009134186195748827062831968414719736557335485141716227282503128756363912592107148751583074103846451012153385774257709723827880150556292083588262832646167073073537860398624965866591625382517405604302307842677828660620970940053931977192838516971258043156155001505287277877182772388828960273681852615875101660996589997317718386724553325978752265004273067231694027911259030934713516694974180529226099747464506173691305151562936772718799091067452658037466690802956561273456314795166862181919957091273829204172246034971510987410757079734237778705444530791333929641141273042703633611491338995226047914451463128236392569871300792056973714019556642781240537596817777140664461163147200195162037211836956649929801983532495557370609252015632032610090262834931750253186821073371148224771042635547800540644436005858292294656872130841096018532089074194181593856129973234924162219948987118207472163386997960317166216679606943890904384360770065891109866474466216945619938771549650134300093177788977559046283226037586885962447154672637839577849573058428306539143225244811583829023175108020716383942807224730330677860272482309749131975589319386882580062088221811282042869072648995354511754209498887278829993478298152302451330577050057048214631649542258653476826999261520955824225452867255079801188512667241243196720494673647296555212228463523202045685565668988090627591396885209368829197748541710041086403242605205980218527285845995847037277770638180103862910784745938300640643547506114114408309672234539015827854394574632013589570513246663030578308306141984793707297267928289370607610132207850055681602671949181040648309322862046427253730477829453206726766837116611801041097848214517842468578763004846680641970804407579658188797402819780450415389605576031621032929060041893575275125886279293036109144108233320455735315049937258096455239035482840850276503977455854549147941075079995604188867382873702852496286685236134729600447324986192013956981974804755375407987807342047914003254407653071635037620249644853814729326419307375082443996834973033368702330350090843597664177313857344015573519651859095738852185043023267054556346345444998533938055224608365648958530808005922639332850548965056203717738865569683872058977616682278196641798072553324188254246946541416004940633035916581294042153012614856363904505871593683129874730652680952983640333707931251989040977214730372112829092452583293054763334597158235720249636113053487267157670170032046762861203284661695029271754117544426053115213899736975554354842782701050278037548851399934772102628652522423709155352960543437740633771588048389430070525305122903943867300096934751989782450948868772608410930642456653691522029634070584258096562803100873916818774853976888849186104408753319601138254774718159638944208845902068048353907484958799217935620315229263918146849811866749541845873319592310148405845999677935566045147498143063555739813969255890213738538590292972195598203166259213408517845800900922087099394981280406684560972506129757091063108632103940006266425124428866035778098509828809909283427825327211491716830403873013597106178686914391305949444374951232780176166210134259252489242987848040756185162103278185691858187556976870583187496265079623149278835090276132177167985504840263463408436417545272071681760762720256833077937088671644207872436968152547838835886181913046384251671611494332853485387105081895821224881082949761714245384149696813873553976480418016374430155080933767610635148037010189402529124020507378431557984546363095178244372890153638580673090395549743256217750696546288176211236582755626024081760630547795695722607887204579043455462506170676181696411319378597567343977769406405036624447682499317815271907292208832459932267548694986164346966491415039790062736351699605888416616098149273473503990046040235744061844831411775695016487183970659043144361592660502563195625495083595076494088913580912606022371061795841125569921478227910685792352186881126398907077150685109319204899260394029555840878950518670409532236611169600821650600970632295452794074233113937660961441147780011013550807632582443489069171902192727737506411196639257372606736999306795990263273537409267511632864894716097411987274897262345794704842824787661524009838783841961964214342857682607779759685371543535420496225302390453326411956173235781465905153232818760723378127199292030475347964961797843004369631440746223536411532427155835708174785797055577323771268624208666075498238056112768511512453535789333087476793827155308780561200405292802870727796651621347612347060097684230902176618276054531611110966340959904071232583436038548938870210163815465787919728616987411153834672514127234456209412415958345152199484199650307339076056503867216201475211277256199231630229224787374797279279090741408804098961843096224124320077366143818469320163797967961859654692141900603561730090761022820842889758952218814576509252944709389121352355606861042102660679640829531251747372760686671487126935656275293383578334643971252585005782106667863225271624057413371428253754282234308553738727425850489614552221653548041302989858598434482390609891662238305259444669854559547857687766969418159143190977559561815229160776089872300113106313736023946652319517154977459605324197681496689595316206234551898848855722183052723495032097996618231031282861060217245425840562147007339308632836103448352381861180644695855144883340127928286853950049530307977913546338720330891385142622081896063724961627841971471593287960946443851956929562102795676362277383397570806297187416400992081288201408770709329950267788155008435464909964920707933417749773744664477155714128485168418346432761421740312580674774238793539080926254267483960219598780538429605358330565397953363448201994625593437403486568405533504459157196362739812332920578256712816404234784616434338777340665692923074438420684092473382504896920241124234309814957322781505037164760947494273864678497562925289263658668184778085834342133946492597447116975785005379535409016520934188788781078198455832310125394668730272845215591798352943374841402108441200792451434694695350668187971150973044830464192488889960572822011350991030534946543918321143945365234646615423476210491188263335456612823611833205106457287907422287929088030449894732640267070246909736735131170370891659227896946664712544165525854769776905008167059625604280622824506576347354259725878611583168514514346624793663437925508662559045574342311320453851259917808933185868962326714704102098159167209625921856884267404301395819351541030038432717370201703855269588332306990420842164954277498204550718844289877100411264259135957600272394400037163632962768812101763042853050236876800065968230754572750748807807412483407473989652085561912040026344702144632215185563930941985135212659057564538981654680469650610254231816849813699419995322970387140748121168882764054214494481447947232244525905274057868651577266654687838477517081106289982275193083883757709726430527049013660009583644326412978759143224527048644946285145010895866661252910062531999377423147160058136384697051473359780276773178175646995707778508267684494677038766570317986969701102101156678300065629852122041102326724844510120992961389547593812445234531285246049809646566548167934953001012852282816225875274724731374722727753794043349987120854469594441446966763825532389352572123288730244277531238439351336293189438483174213066640422003053695999689424575021290437101595139736500109095111443707682829647093944459839516898658845105015463220613647932935421618919073659897366268236669906723433446733217050369868450625034722160876485890263224383705304741477337491786955099719590036619405733492091934018778855242594734859887586693498804013839443781015799234487507801753353063167422752401227949747422967537450059392230010126184718065670366153502070524888794133690269320869497902971765274929069437932327470920866633740202783525550504051853264771573371587293603029311247089651733839035924520479991344892232611491184725043763253416207639952466181042965812369370605755457934852913383495932860067416696311356988544045610349032362234901955850646403303049300742988629483053832609377128779790926105447881977104484513438157529581066493693834253363870149548359419633589766448342285753325546744292832189242374606780392001941932520068598617089040080078957477025866679014203014861228051900442399844009145512257882379356927404121470897792981946558594546292320063099528846132760919443397936993288176718915563646779064566543551283991247711476800124389621358066479366325990862659207061831201303588283665458550112078532391375402851470443199042112977910082075007082389107927090154653305997375992634070405259132209045691881951324841140632761909715152256250529899135236704613632292686738539565298414897429781410382895801276822507811830942894826907632634697658643633178891897884384806030416631661332691219027339823099365522259612600945864755528577006371064285688146891891024069547563617991905865830465411423965445564561253178047894862228576673019736944269029653055857586699086079117983520164893758420051883850645578565746291302837249039314413502107840327326738193374422947376869756780437939191124055311355228057537211859717323961817146396399569896601460070833791086454938187718669877745076689246949443196771089094012238165227730357715546479240812261205657406366140442903644568163473548408916774112389664694264075339830527738881733533816077962528275372754735374106033472397978565861880838908610338358863706570431221054651075996476512792235042067332910816060282236477462084205594371100930613695264543873804527983801205918942715761935166924458628402966076612334028244765699620134512935839843506679675757631557339095404853588996123528722723251991590309518454197624127318283255282342488230688158122220822525752114627016787235308201232212988162889503529164838505173014992161987039374258347198381170149521856593966718653534039787643978569889739199394606941870955098685898034392534909428914999834095613610187861696962593780833745744640349223911457366344488947266900828288056620682259296930300594167976548713703912183361173441569787183894409914580668136610138602783014043741584944083444618239267281710970067755868010527626534152167007461889355087952261027594720007011690120730458921714872342243022558435160906517795037392872266061551393124401699419241716355291461541022635839036478719392244034031446420231749560546269354200094350997973223928536857091065064655619689560272145160650558793281431005863544240552048576831093651786292475732355716347775660967682975987306843683985050701339739921448215002635009799579904780996942529890276166926134043274064025327201519553339264799581501009053910720325762280902135335619810491159772389181450056544857645170092199143636181858481265825952740728768872601746318192058527670271773035037703535954358725959080219026348099930808332350881541600843968835821056506593946387019674837650548042771415152284125872928277573403719618008236997623858926847718973826568601684715519650932167704910951106655394873498850595798719003370301845921817747769604224294556090634947570633472645301066661591840446876251388529367715812606297537575780163002403779732165184001758635383607743950658994491753013523065124215802199308772965509988403310408970549832393981331388332971627748401688808774383373473329283435967860130975558286712069072355853105110793109275569448056838230070328250593619663714764282364485649458301981626981499891313272381568367046112986725526245553078041535729109484683268272446276659560049962301633597278927636776897405244584011258382024660632730190790241143687829985685299279868942884546006553230403266543076241690277333257787042529878535559393128037288483226466855536174795100344352676557899059688813359456547398119647812849596991256163983395725527338264098126748079297655901207618265231589791517499262482103198691451883634142561314159393383088563528557625386282462281571013554389343732976118876903730917178297775553512324416870747500496237146923872257588515693519800832353518472311131932216538513320743561938798704966387350642962623772583142759818122930525133397273916838367900897154956838834932033625812011394928923231047161049866015495697191870566356233341076604957441049860907260589088754312348810230062708656905105148365378122990054804807937432753955566028288633310467568914919416187938443094059086894018660685101386819630116907468296647687647379645768847739256774008972287297107464918585892784999545443859839687323405340606984102314150350356196741148968768055855381274074618740911801316587231624049644132581835050392068115067895952849641208239210465468439899528092875210345586801276720331736440870474887462970615563787733711828827775376393538160410085907336618883553723763816494360353516392779332457248738082213143433349328612486928641270671160524237287018071822947289754464208058770033556098439355234729677184673516614755143121924082609563093760103517699585066660995143933914173668115120936803461904742319460831361696769220178779091513339853823534711295099727499972041658853667373059316837635808919723221292404233758291273205340135523514963029390501352458295460748515759585915156586556974677868862224915515040362553995475298303129221513757415671102459936460216423395982836848465373123219450313513218459907153884736792481190754051322594403184979843770861429168241957973474305103590917368074595847641679503153409912018888499806506756059761380940250228106891969474052883764702461481771829368442376406376246178395881803174435025230083824545667231140990103837029902374824865622264828670842841543480505097802683146748256704576021770663139742733483826803707676857897187366843197344786424264637223714816119466917748740241426614926032364912631712877700327294466354257880134792892567566743102996196588711258298396120903759530630474170494324203647343649452744102676088749269495980689158329145736864823591044028342047558331861982631183430341641696661048181289950345214528500672711000489387944144181126001851408791609909761093585939889241923519222048572957446782431592149419868049636111968351706575787277456408568040497597071711381919437069374818999997669809406023668537112684762880361269297806185305796742822692766470029008673819935128254677365899682938048509393322873230460501191535859631713959134094339217441876924946393676746664956368281198713275636131848742961846205636375416891692932347564941336101927805964292006011327207433359809270403695876907714255998942428232059998899142639052059805666606808201883248582629770814595987514784823833511297563121957393420817783766093284384088767682410328278132955440980834705751930843420029920646157281387399055376930735119511426036075296183071161103369194642877694013342387675355383229805983225985758603396406149733948502020072727339808511150957958660554623030478027162819348068589771714908738445872952609397132584385758475286230881507754090145183870852993886933363479383518109442614400053246216700992081042956812128761400187794400714359530506511970637604195980369833361529643301249993835454770130404400778890762849887484835054327741298930365968793768534154256836461702876065526908594088149675070254895471258413620078944978187264247599828358164226799120456686946651685648631925216495983455478137710100106810279247392211318969037199827896730373429918302514133587464708913595382959302908494538056764785810204917491941087753267450460889980232102195834366658617643464583638540105880236576421642231061955014127188493050122796578457136363564664866939137946249742781044916233548825166893031522896343769423803928659920080544513457951563889527550090010299709700965040592736454675097045766008450323686779527612335374237600625463910149730375009384788496033538612676797685883780830919552633162431984663561828008498818468730033690975743391955000400810077272003507634578200166423430031061368894613358544413637061763150617971793550282279390835310121992682398075602405639658258836531454454053998767620329161040098983301750996944403773018978338957475340749167364021697244023661995730068558858230444138413576310728723960012450214664722667804288394938873171626242596391259094526218372159301315766873064597580908958151509477530537665911091214152268219262088014802664561957802770566616413046803172656068604658679351585775538749427743326219863264069125655719282817923572783542469586846454095162114923319394074946719266399956732672989508560981435771710829057208837728133922199646088531817820051763486491077155619158354086473968755123903499912169215708556790965558470061826676081263150729951364803902114576628974470040200909615044356928792069420057723998059567469178187795149635800054424621859102506208718547328957656561074059185662431314418629513979222101829883375618520898098389275164363974352091400003551567107067429505334802853548723992836802574632101440442393084513825034958199180253206709689832257803720391231974218611309800674549780885492309128867337827709447609738828918524545380371860343284662727100157989481891188551232132323382236854017952041666675162396167260668841673916167494680360654311290160925444051455838595774775377195859974656500025863645933625665758369757593323407314858799718173775174073258492841754085986754282389239218153726644257134103753878328810369044780280668054566116891099167297486053627214180776990988565089286764376344463343971926540107852170868535699146070465993702535476398088346944577595061371118472735417759038101593751280428619211557354713672787590325519025337594679702434488695503869016729406506550996244743649904983668957983223685377206104418194274756453552197201943227152753090016447280097874951957130376876003871291255093316039042301792915854493685424186159280063728495371523486529986197244090528714122877168004347815595237917453385270010986857080060343894265675264137568118556844951012679223174501761404408107675960628768129649088654471664704024409328854897369452978389259738447539709676927389149527138032509827533773889430910575908976374534721737340412069145395767835759903035931153102259540042341213772916699591456684549940744835949110360861692613616893735391992904728491060636106579920148851756218760557674028555203920859175863590143151101924833653415560287717311176555859841591890850181785096868960804466556348744258227231605656809271060066068985885322694390380567651829517162880795103447155039576108191193518055823802935300074809446614158207283066880583811518387168010301045613233236245857863452566435945318496332502993434797433077145061588698039309618580607239791954577473979174549098696471177740246680564491185094473596447376277609302051244721455554191762243704693331364208972850005772755160723721951896156356483269924528113017301498919563377071446763778656166642435585521862982102672658107641705105587979542674543613195379764099248307272397016706168637763568078658503847980322435570460863835541022687582666122516885967060522110126491878210924831145078967781157802425630612916287783993212247274483971245463112165030721866149594666781873077535219446291167004834381832349357385470300557156001258410133671710750085126647199019045500871928035703540333334376889148955086382606947519839026737110593494023135277619090231900877124025555677784984586710210674727582035480083611420463673303931622419712022111082717617488055032966651963220112481701130191436902710589546660140034226987240181870399809626228738804055856852032319569950290408977079618580745334876045859780138391321587984293199162556626940173300686834030114226364075404737265450368088689378546384641906771721341129294978389774096156214588473824312640968946068669061638466570618665301643861940860091806572036111934162178698827503469725173657661724918368568601351904334953440472692363693202375703598213593062365957667943426174258145906468370188849250284640249388876200354751231849567749680477762939483874578869257858112440573199931494027276806693156403078353443935405467753946752806190914624793547176674738043282685758143843613083140850270033497645788346904784308498776678524372208434831260937252663836221035491714774515432543000026599994571739182538986997261466030897998665151147690839052323657169475946480972633936888716455606974641179728439091301696178736607945852169420751347342384004802666221302833617133921576111233864092613230966523383267652295193397083620387315703248317927183941541657347613089778511956630507634704864058397321932158265603276510681559807403985367440074981609002635218233357980810181030766586194515772772977399222194021089887607101440650567599814907568062111882807111271333850316043035722151480128468925103215739181213413987143932951014461955264724949042131163466434566173640599273574944614101922075231441824222777504760446460069140180793601318231212522549932806868021071757801015615861839559913481914214210996191644250220006424775986411396944527136115031528998007524065252488944266504341641614866733603355913538726715062979999546782891887457488277375012597419507422702688649209033115183363742173441576022103644155567900072828732284174721894460389967406712434391820776319993149596960456472303281698379598379512348989784713056523418328659722168832740081536745707402423832152117622821221736459951736273889167040022825078783281166264821939411805143087621859611179479495739145006843885003539724538229876619554957630809513313780313115869003825784403387268890573942719900920815584109056058775240600765810758289036706065979208485647896105529127896993024377497674975735782966838723159773126040350308172242638791336817414676110738717955395218681899554253440003856755574574772020764800550093298463920480478764036396143913288350099055080776736867467455119162858939993928296865184032929371641947698300636076412762271592949762083613534099680431893005701965799910660435245281734267062290479243198817119631483041023055266396741100602229348592588692265977607372007641234977008926917961439759789795850478284822492079253567244564650264833304351555959660776659429916739989454461049015193613897156134710784796129277309720188620732182465644224171437539907848583037456108768408609872636770560060894955525295716749357448998808609399148086873287227349324103962287582602839902376645572002633506517133706721353961080212876812252388974086099998667139861242141527551771544688917372170756967577019965277652696230610421980517603388447457609296343833820954876850093694411560608205648954199705654605863553994501579207577045569251569295289305646840698682965907157575257519033953595169397517428098289273382267237002880935293363429939955664718319322164799027623810774833391957367492877752484482585240362282307852841807010369420031708563221158969422504630573538706351462553399248051257768374802657785378269710074663175474706223570712299176503451626142596522400839563817584875860043369272630778112150408524851268493738860632419343187060985207565670721624692495822835947435031461555649845641499185298260435726158291353903397655624293024865919957035334982792217862158652394657494520385468737062088877206829731009913842133547763134256932321444340696945234803518733529079739923661708217001882479962184353873957392886382615078303292622121560373754929245155495162490796840117376589782140463442301540178211147194713040709503866699098041887443601893096648923989461174411240851728527052579414928060931745962248466855266350427771781512717852510891868042552475520367889851032901484474976036093143785199440179181733189375268701595348141891012493975995524198810768884412409068841374222887610342492900404108148671132403378567324212361940219455738349245626688062849649071604993304855332943616601411866414397100525102584537656272862858781517877587516198449962500848573316250666898211817189984634661211384278792996816497277358920810933399509361628709554177996238738316619488390022553493476376605351363664612088178068722955736089895827017372628911597193036803778605820543174500297613157769968508867478525476143985870630932079824208123874188997222683087116383478691142262604385445531441925079854364322052357323637627567427340144575824657778027803488820367832284908098597527826875690869285175794827971409212598173848340949338968806548537125755683602970829501493015348014673140481381327275884813745006113303434111826687623850918181807681668332733804913296129411756183057313033164734034498705031432503823252917166618309343177638938666327188501577483324111931643569010358089399129683347258759939583160825510660725893100399289006887259376096608755627659780233616938543345305829011262953725548316683061285905732553304704458194290160086763804961784885796328338825798983718085630934169460000818904017927434062104177737102075515013650697759712834965508676583743842191788863546478901652638884579872994736342644433006875422833296840844420071003766805658300426753695541519513642333979718707506205338819959791581024228378926875723585978282422481041853280622877926883469181890070330981469330333032706953269501087073651162922235095310986226189477829274388707489215554062406186470626440303485661812442793432727813327867837774148283988822496367455819583031061831056149569662167587776179950045948148059295876622415476129594826239106084220779350115348355333361362830778535186579530256299347886064821821006036320448559890974124064119006636315912317123794997221995013717024575730173648469035493787732078462226319034541492439294107979981352698916717340390866519480091917808781407112639438774223794018754282226541954588687893131217245236176723840493831625587058449280580586399117140037806646831565306634691331363779831532388973292134548979593815138837579550437982826032697360673192575187211520518683643351915597702785422035080437212514168355971884926691135379456963020370102240759312363187681679640248694491333131973926302085013884663927339825766479896473197346347096576117857639604997310156545725977397830846771217303900296412953119796420265619653414188679597945034287609937507041242408485531501703295170886810473475431128660487147962829239502679159064923676051490791910961709678868221644143297300810943621437282599999763345429028649163106695472325532690433234626987347154304918224200600891042428522681484813617883007548464164801027524796711220931043981500669837388936644554027771351991791866494351516607256486779107414616805835442045817112730015381844401928393681207179113857436907806465645140936466453427768703019317080362121124356563355924381901168292880892754230989608277747735666857744342958235710606402509419665079508901442080433940812787404128935403031941488708802486057474727343347162175661985425616522674535346703886932495698736630820466023168120785313330065400740539404060581583164236604372891501679803120728824306638655050982118004530338260141424552501005710551432356973320249642443716821896257248277587021798990295058584043123498824269246863246443863115518969228158549476977545664251939376479092836437235138054046335885550128665715179315383612728987927142473590427556274666240013463987953684855005114203095415277604840499440908838791185772809713964258872855834111742180588694185146100725350310586745127720615902592145832747007756655991069834176882046516782260834879142901576285911265345886634612627244934666978820274321722396293785538154673056607089202963471053947369752635103282386882066624285014560907668923259979485427022202383143363068014656053741897155956728453037642272942127653005168076889241588359892487093797069719519240274157312877429506077180857646672681075731817335533058234536768289376611955751671652591244495747563882345860840516035360966350932064232677497261930672140590633450997153825093038576823519254400072314607390638839031346517882197670422935727737546767972318317337979314741883877045105745157458682694617718134351515330124048806432247014659229494332209876747536878796470117111253867528598704859416082907858144692650340353190413632999263296818523806263723983073207368645306508009904301671249499880194800252441249883660533425881104486924981716701182578827441733218665718017192901499980998995406814338373246263683389002537607907654503115669523971149205172300048250112057936951488641647509011804874627859826754183500977151796435346153578753190314353807097417957466798211195842965773930301663081062535872877633583372774246828253323902246189032810094133760188640694583201359650896750520123375381715703060220127196784244118861186489679940115347324604314130205684582292011945562966496275569387199973707107220742194786864604900395958259479094330896930795019020853326872096704146984052249606511915812630936055796957381257300725016767969362700815808631086155479160631784572817552273001113774553493444019206596347132307913543376691033594151095411203081758845742096478165149244623027429882639080235079871512645430187444346612722520319053315060084955106526417303295567272898780927254899321859290415475250242974663603972275845648370941176441612905257338128293834077512721975584871459967763129819645495217542475768862054232534782511720136132633259711508335711673934085274538421612517150754798092227613830736576047785428267052943082538188140515268071895981292617596311067325701214075818418501112005826944787072441138502744339067202413224570105798669181255453994547172779317418001477106064729135401708345613435796628008477543076212955832429683759130316112012509023647765483680265706192768830979873574379918505838225806257776232166436854954071728861703760695606867613881848707658905147661940766732774752444274216959787493902662773187735931139672997051514310419250122983520190197748014123519428162670892555043957856853324855961548467797425519621865529728708965035907435117206354614901764323029152444294798825495687403736026266535417821347880169341574797736499785521159579716781735103141318515856387462995954957757377692161659063039273639164492970258866656467773790378241469185540220808861118042392321763845683471964882261332303725347211426248877833498608189788265254318227968936399249411286171398356526117313026394669238611723134877189615520275538874737395015664205073278365917011457911336738102888561770172242140921578798225129700191598401892054069575049397470408828616236767265128620382621240969675487644480850699357998639292014609050497428913786739350720631018214267061339952631508176167297873511015629154589960570438262928564271604243897373324228527273022744672012166170315044716805490181249523442011684055910606934646951766656750309091547174007368013244964895679994905413545653898712425076037979458802319229895717225765732155723494922315913102525839066645332205176033539618227037036539109793487374192305199121338383739677618765831618634168098868863687878573924120815236812287925558943783848590857487193241578341063346484790444394621531365962855417020484660807038112504751424443557672352683505400426953565817905275077229015629678796765556439775016529514725906338679202319831506626226017152257369613438560750784075231302827576705449515785408411675521451466905507695316864270022739026294848564351286176941387309437970949046263104281211786661894996440539465264503784015826578702539406217167199995506963334664244042867334485986529133586281111293217871385470910309679562321602726809480143851030607100860848626368927797930678180013514207244042669798157926977161219578268498452401889613875932960740936192036019958784063154659407599888891486408068366788877118922649229364176382234591686872365995267619165820925987816499778238465091326795135686873963357793053110886183310368491373202367779959752161618984422517057626025511088036661289754310650663379380502031678279350974111555224759541707055726821246052940350457789987122436770271961540302401837703912293393999966634432870492070880410910675898985755561283432491766576576228367276545505519000993374282869220507339436823301545457304009442573686108060686418338082360724064870828956912929585870448089060039085035834213491155646585969844201933217366324590566634235205403777019515776606910043279091922494166440457371929088636823669964991528882322508816386932400836995751682223423409589805091575291023751405031698052824294830363716082159533507938702767510199903027664832708831236790878512495747810335723241206033442032465495879607534350510400820628970231621596452392729505400955240780919618242154918121517534733521342281712904275379101624950872482212293844648853458158959004422860057495044947378750105498543747092551168909689561771688944738444543935527868154502130801554636368703964380713831434835129985598976168375874087322876177241894594902271495661939491550159514931623386620385923221175645093197330020462388347601186604367482739474314570157133122918178134087043338297755224016105684860970696358015935011003805742975616961950891175369031122847265617950956203918351435156695755656304053427084399365914614082748382790045755483525007057257933673476097155599766992670685059445064162650738486204281565754782956749124240882891686881691463710753649684482278857808201236072598827195903050052415382088761081695625959850055142793860345448188358017443113013293452249533567435791175809346062000030553561546739878360599220115408081164873018327316420836736002101972241192743535073509053454570390726181781034203562903398233750977130974518623682249201340994909041275053113779565843888862052087912200542148470708444641499305036616539496636740319673784352929705453035502077131242393620815769144029101339906323958024441176631206679567995889899617063314446514346982760056145350456289855446204347701966530723898522270898021196571764959358612155829026692869676364149837429960790710783915895067257893515819679365733795308584967574991253693972695233603653380896742151681958473536461074922672979572398656257614113308848853450115685295866142914619445283633123474423981203287036008079392523682547802228734961197005673031890444018030208330400566452214048063263110592015785440683431408055343441062225546720685095788678930329077151083717694544992872105211847031569603019770826644410423863363633486743789400774099082104666536369718281068707584724462130031901982589778295627399864633842579965386621235405702814231978153198509302161777652658352408701616521764048458135309279496429033156990100871805646265544821613285990048101018157178660065356906715268165827479929821011905021248930375136316900897846576288157349731245000377690938063642088013145919786278365557701979120671713575767537319887105087273100960385934448388513541985499793473772549606618370782892259484640266133603526752886240992253467781826191375480399369154712214064138070876486590565126481408806731508454662986909255067195954696560439269101194263492831303349262797843933254640133225127451019907109273898684595495594186325338345487034985315095818592423107536987812807659716334266872394671522671789677086550618020484242520841443356305959164938110120076725653114964221735563529942167365333091427505120238026416161258404076048469600959099018750081288690085769052158189816465161057859509205492173421197816295471890851949572008490685209183875001780642072688271670120129043211653062181527804347766007023730997259799921159068784318121741603931899567144798856594369179449518051999761407047960266363942554279498432168998335357278916209082968417468565697231190324114963890506585302330778227166462071450194314445451473046383260949707316164881607997757585570543803165004359051373801282502919962579653042597670329037151152422774169828030576409837434025992263637451892635077461426863720951446554311696652385530277772586802097900170360324970730533586919442364715410973065829956484907021487248052240508100489438298383177816723932483776720615331875637257097370492210698329173279236030052893715262741703662973573578487115037957714686101740246528109749548763034352573568995104369139234911094734292958078350088885729370794791229693080620763173399044995689902033531985485995977783642820728522224459436602244825332380233312919439848360795519124268070137499663093511777070191113167374556953409616753019050192961244183393351931550400195027092162848293420235434317208661960338581405073732740238274310437146657198665957044353798451215261973973409731223140624324530331207971139685141613196338010398439478914637362180268125791481185837673951818864208783553610269395884423120333893332073539703946736927409292743998737319057666944934800510833407715273768032940713718918414126591891309142493647726488895835792276152423821839324734629344683063598561606820988881920396570347670023415930792783006769274612976747414125072452109355436976686543749946991711412643683474232856022218131393793576199833633902724956365518174765341911229066691886946311837900675056548005808350161822180676960876437307387747149688045839009594041213853021917586397557609627673169745255867614004574780906710458325241011058226278969524702503339769360258984831789787876765026103492598712962001552431143446609433735823842159441429052866319905006036091690931600827381283026474261723291675097615499607453079485266095286852737762458033651328138580905862575428147768816266467237358910999093715442837906207888779263688204224209029173008898295678287566194831494484849446043453073989096188748695564980291073529354120715801710094214609376367363114369358836995441129534973880939512003123829491099122443700915509490426273668047119740111837172369527376396562613966980881323913947861268994419290266339672167192188955649954290695154122482545041919750188203313892601349114181858457445552480439866546176926458639187288527631961513301399673215048932541989469289417509353911832742947888901789906481540858938559886196593629250701043284772217151789686876931253606150365609740521154111874897598982822018711488836866616246785464871835827322771175049499369884999550146675991587503378182979686488645523693469418784248171662285907123695048737434432565819012352404219343664533592528462358189932005843639528780621528331697007850373386074805943727787780363691489542766015276413064116770673556982899346585802219557329696518047046771056536109083012138352448212583519613067772925577306239867361002045384517543851313588538483905478710058538991565735159613344116440294407398891074260388713115364426793444609922386635445433841154958838607462349629729772313349521770312580030103832952344906804566026206860288171939050135974398622282381933763395271344716665715506796703474075413863481005088424245824093204657025088118014253840954857444525136624993004664841785152749050769737327095320917075354548737815563265718821136065646909790242907481987025865548213437835827106530134838568353000309371260887364473137440894374639747102569572757353382660015574636192767210475057298940952419529898449212839368837406293248272272305277984281369203327452841043020358057328220305425427175815405670140165363410287925563122112099649399388758196095496119231612748830670736363792254990423487261107828254119595752202136414249195417153725446342019070931605806598076491644758629215657488033679594298748707290440984347043596784797595867624449502673870343519261094451882604773875804788221152071839922544334620406759801184289108569886832013698474573353068263050616333234086609943116294715672119859179328472812896181157658245969311893104502646823786354120020329061324442998494692311156673179735688803561930325100743348113673023807647073623937571867541156452238010942228457984290572957663651976428369736870983778451474235130969973112220252771453679203907823573795534590426345164772757727823731017603450132792265128486664770191394326302523364435468680365706094066259030849973854154199059333435335905591328240486841989258136802021642422878210554920745329595875437512639769374493770422081374247889764510995534293768243342752925514613232169578280906472957455743124751055093233260536704007439025154014653066359356124823681331571857084782662913908102084331881350503987202467177894228393978453624238550218910654917470970244810416834595818415529620823278898487723922227532185422451158086796973179297977925364211917155872968975569167155914884388608453721661705727378564740840250933376391528028377018748488687742044169953988290069694012123273907869912903074838784140103101172230522889958397580478145530021405378624757000550661321707764514469127576768123733324102401403506357658258073304887175419157130334114792204297844504657804962906451595894505922951406139445631026152580225453202531890266561039593624437372912045873317975423209830961827065116628081065933458360214781174947070512426537808452328332539244709895337084717020781124720832519151185991864934938248337593222858992364717294472972750669590214238032966817733340230371181497824580760820247141577588714337827476109758526757928502194392714964771788115441139836187045586337937135463804891620063724039339516868220200631230750680384614501734759758670803655171636569394413052068063681275661171608991969406808459312162503429388000763591097644206407190176379850139698352615585758066476735708536194309566957452380188022160926831869363418639492952187255687611118117248104461587776906658895173266155562378836213982173609061093146974939550862324831959912849502500259046244732182092295056810018855722504244349529956670053107628816073304063819450215446479297243911784436246052432103693205347421575901332662909513719387355928435554098546056978848190893300986103193966823592801327902115019440835058918265993778611595386154491789184489701026431637490447011206630121803536238027353860485461178696899526217028311365254430948395922769038042085819133694369656375266211462571082411452589277744047136427051718149063662236296403522105556361491551897386334004401573864663768638784339158872094869628439509959668062792810288559833701030754132906982852222826946816113762996577800500358330900465652863363931582986328872300615094801716482658744630272886198947570952851861747714118285947039600497685147368840384258590433964893213242187613714286466678093837962390528484533422855275573904956202083262312267314698267624437789728046723785910532703312473678339672717089213064168712992069190781931492868548850109374624002651048670128750437918134401305154084293237680875852291472071751970013251159460328623051492494182804633373607172410442249238313663389457451662759879069722577370210818428307426639233794542562960150222019889276634756590219503942648111862016367820588576156500645996382674304278582861840630991773938681802781283897094730363627012737901317747912652064000790990310725809462997176272558691607734924394100920145293626316112968118304507235810352640587814102796371891912822739888969674041822584298564462452563115287700982592411569849064466117927575646710168803677699912261027659301042474209729857872470057448995433227011976097738485076958711105054424137777155510209116321795781501616169699755414368937345541686106768982966393985118026946867657243712231318004174214367554237721102846989138263585138374122855893670640630885955689448349879214014024943839328961104065923303159494228925708926881989811695369308783116916688434059199594936991763285967739270549644083761686741862783596840434084836883839303765451808613743268083361783693391492717834517085663078891757476876234822892428408578925810385023517814518952279970805244873050547400437958876147292446461382775548219386860711991679332529636898808317814205238670152446185333068527654447114380455063756789888639905151124068477164730627429069616910669748866810227235076169953890358739456627305650626844938378750943209049428269950406906627222569297301986937253688383381733742643844204106559163451965735380009040917934702178970490170530256245878841728194127278453391619132473192682878475609116384102520824093372176417947897493241530373592717467257701383680229765948965136045314474367898431006375493912339675538414351319360377714845774593366930356065053055484169723377645928946255657567875268834853769728978949260736478863226493296621707147058851179363392886211524694154423795083357938809804589683528280454362265353532982876123992015214575879018505576615527020237544217346493418959052881288809643509421856977003028559205580566537209075256004554015492362345304778792763023611788214841177249889264729224250647793627161439788964348270520232948934922230802404525779046210916209079682651796640306035454123807859571466568407660824732132495313732561055358924749010703214420248988310983466247844064519823523046302278710867485742151382402825195662572565749853384329693545195892861348046405796236040522229270893157846741550766470274176032140340014326589419584930587949298514250548858772148817250006834237601508137793757536047184413096507181454345954283601115644737871321700516845311016256617774070356200313485073571209472457735061725451464545038244478542314741615607101741134179613328594729324784837549336090959035200411637110838287365980190409676921857482131764879471608858073574318743772649333208283289613259673282502864190086599429924653242887498491603732180234867136204324330135283702335688618228908662254500361373846288310944268488735496508545850086324434664909592135009894495143263529389720736392241469891853340670748824064192995862841550649146175859756001526506794126265271310828571012444029011733110171721300785377428157114836738937853326562011851845259402716647665527749934309052969932139294439262987378751701463073561721421593689063562670368103986210533312268077480899810086903282597596130528523667695821236367923652011194813412606542833548165119622466784146911386748320540004373482431244385331484635392383115628230053279891607166934631703363169554868365691176024913959644503915462328173678851377596686551217548203168413378377019852887572826485640229198714371016358043930073798117282087550577925587696109996735776062430193033045104054667120201328139151353068770224048572712370386200500642600533638955664478037210574742476948829244556117942732950085564193298957070722615592452569382110164753226844783042817459445447158994800770106025176705493795795494185588571795317217780646465071044456842560572571451042233132325950885711253649619618830880537236359798448241536854238286373773468190938295170139512339770997562244706068843211500145492770853295508147255383025918142041765422916592513071421422176133459972640320546430086421728269924554835693236882405281996134629386667463250162533509522158790634934046891905696212617133023977347886774310455127327023418425765213434716970954241355115555119543577418421316714978999477550333713736201705719953346910301035764917387819801525670505584666220073453070915178063979363778128251738592348860004771421149136123310367964014150104116124205848956728269294806031832448165734856100860252229395441760289319335486058704999161304067449690376502066944995530531001490731958652507775014770575694335306535607700941207688199432595303215402342927238899980641577836122469603049237474553363583725017469457781844655995232676077508609589043519213006282659293559535919658759942604659775541058499466150196997875909973305564903660613771420864769520148244843233722739955040078675599931822758423111344023352251544366748562379893055232562118495816714099226685995749734922057850098788639114695905162683836316275918188444341748301401012966621714823665836121734668762950479847469072789511014301575321839244215080834027999997243681971061445890077711649075447262056302157681630502057810525530831690765542076615709046650813493455623190926390306567783324238224943599780523166817613341139992438437960218026958681474282294419554545399945255117620618559890919196810712465074550437060671767298991843338395533504948114461389258737116485561273344753606134193295366676928839129015732897514719904587979049455410590718908460545400464469106165454603513060883916871505179942487398057318936602735345927978044488933419274643390043667720538467767465271700543320668611283559217338215769214583030212079118927357280737819321348743318885784110587250664162390092129105248477569913320163624560401623242401956441620245096541573620153960945165843274991961222402193831305133334707631661361486024491077123426966085337454022132129225110839854830414631468147115086652557219993457233791779634480771198368955681849310738309351049306169995907767793756810361655313736798380612319447463060035321985477400652962114949091019670537842366337195814615687225867356905210269861341654259097626760155799518018437075087433656648605829395956727367675271890368423300981268287126453167060848142831212505071205926504336953330186113269665645147355853323215532038314109682593179906931794608411475639257271240243769423442227642620573610642218994945735871234254008889912566572947429702783077028191970770675597777207508551800023076514495359261848500049733337576348732776711859061533981957105016156478867003191780051132719311803180806935361324328450269855122924296031360103472916115059556091383180185459015241899756213806191191800993316051073091115939793864568827393867642573279357595671452746191540511811683776136262749994296348799972894310814990001808517799966487260506520212971493611043609856975999655801457943271832873381826173881384444891032109803310707392109772032447124002940128439655665422752381492639526421859975931962613164541166774799077956958462589130644919168187876140328721658882120280381727813986167568449648025312349584577981404565782045615390498329253923229307344450914680288033942492160805954034484544830754908564959621253597190828692065726705348172634034481308794755640383759395686902822824993365861085118027505821452191669328692835617801521386388810654955455883919028182118021200259886757567674217338941523743744356922491058518738325826074714404858658618430579307331789083447469430344020980144825142362726739341172928827712224975507148278209419671657680990420270085756495468220749436484868668650779559057479024569586378528254093677204074866660947612375798896251500912303395815198601554669986972095365589576108267218624582198787644800123151785048625392396440287686001670824917555526370893547981340418683541070451245621924312126390794267976213679974001705017849742696822961499570222526493307246816915604584407017988000521523901378647588759041764434964882976885391747056372694372457683701375046614927031261887853695466763952391645455027888754178749626194051616293005642685034933054357350207589360704764173075296571586771768158350232600737828543023758596340186937507293836207391512207164546745890588343028126281021845496794916332563185668167636321025535289401133088338528988701868456535195292661904233436742315512313894143566617493891040101700951861623652992026414817534290105377463795490523371069460120218486432619427597720887368288360324004454675791973465587956711662377419459536144390411353183361310962106412664305938247098090162076271765320168845141869772958228857230406074745909791124466939117667632301084237500405932938951198844063779490837771594911663738411893429013375207115187984101678217239098095310860730082285413754447072984137091935625274369555692495632785615067219487306414361054298525999919127378209591974206695000470088936269046602575381588228905707555498918870613360457855879608845746001620149123563488727781959863312743326685077212378885980658984582484657667772697692486923692479138541982711755300884251729023081404637667298561220884514603718222096775144005536552295944324993514850055548543603470867033859013548444204419559775196070857672728643767550387971992875162438171545880918952260680949740277228475537866821054288014810232016904207226033677928312206217266343261222246619621296907447084961770168358122206311820662125666748919856801595491636297075399560921822731409767878905122768402553009258375306881825684027364714623773073750600764566866297721156292769002389397300479406994032624313124305451761928864432088597942451168919743682867422770838889171005410508117598137834819331736580107233294933723317701500713435354314149645633705848150047661084824659051666723067264320772007893449193282757301803822098084159592827862067831559886403925001971110231983212942648662259637462948370317240166886854629426482124376128237329918193567927023548231919018164704976226044476184253022865564599754045034962478874537989777491138001609402697138643479356504468614886754698884838568550998646562596051658315197660422505625846030271144614346858063294979913045331573375390560160142970270607442825405093302864119703313966015652434775896373295656052117881065932085008039967232694791946191626597591695598915830771618683145707173454762918679068241067697977915704412250714878132314466966466227051448046828557728938805169724148247336592688622719314484843888524373964645415935392542845763374697620196251816568972898360484811117442408320259416379600129470398476724847820984382538297889904479608257824306967836178309487423453989169948842686779508413484056734091956361527281777734584840935620951155671203890684318108941878214560598800600775840391051100029026325390588725241655194267657423651855818821960686459557037005209066132671071032415842875271582994428253202097301982468441946832550803131127591039707405349734658595048667586963820488674402481653616987634575007492826744616820102675475886175591258092763488366592771359679268392604306449628305976999459461773255526754215395097846690668558034048186041194805977960037566050973695199729454306585248355443928422590635054863988548358060798985746754822389901461774715238332476309970918402178595981114154374311589192913698801754928235196242019877624343921782511488399026836783196769619893019008561779797977111827562536290360211688454919226337309681275439882513576320665835461967849074637507830968288031834410950116960076734804928784011783089529396850537817160795828284145362390944394878234478859098253953420142670567404712596120888313420700972093486600217085119298046916689582929192365373886087116363600399110683164329793975895000524119264370458748517490228846032837956365916075080888505543820386933641086048401599831175583132290585910639376583088437259815020562395023149848561554755969110968583080344456284384348513073530054453047901523414616571064726480369351986346546117595532401375445222203082180012102292923901247337377477787232077883909936520740984452890344735243370539953533099478763220099579810465307213677540920877575934856461016014381218372445690914442957287475399102601825716525018411165567697269361388717623245883698193223411264142974974701968381480636019740286267118273117400723282653497332003290250495189066266287123148490133552048818348284071212044462300844384218046318851533994702761443172887132932482190120166356586758226218198187089895022732026371366756066211659199868371487065223896883199479588478860637867781607897000911351636325205047312938561126452102633700902259210071887637956309706579430473844489519720780363708198637096783826451281641281546383943694228170467998485914206474821198636121024535900247847426517858399710879562154527356655639162429222785402278765419222490322306786504841918314558226816497929749680344899187411987606493819532508823155546505095406810553500320807883552177251239119479860616638665279385966437442694055065544188854858984266088380131708251040999029784611705409046409475391792145186467920853151455913464996119243794264373958756756108632858258232053436230319073026455504950635250268918658524079158819074682573202115528495282816307298896156246309825378919401526026715616291191109625484061924186617733995812793085377407371026791921628362464451713916518891739538302487513666772462920328769171029260567868236549769829468337277964690869962329638524296489964539813285382335839349145182754195319714257469415401683791010063065319738157020272739885435200628075281809521283855904640397019031643700444689633523798847590352904878963560619896537071588309396136815055467489180927899757554843262055941955204104290271481003769734110511358596142307504692017822909798799740060124096446901621554688000319233143760774201925489493626351266398693445424215339521855229996385095821689864903171708567154646656403794905528390004950460096115500129115491702239871173926501444474621048024835607216478722008123215340557005123899064346713545152300561657932246492744992083142099785074865767843224635240664795897413712932863247592576652883194560513921854562142128276387623384468443179908951216631243229712753984357955499046035973575427937365960764171489150655063606674263377474746520387722252705215931920126790282312222365835022346414800186096134752206066934323264624859179300022823524405411709619659351336312489651625077670439911367511419776350232738361192072119480716383143614918895595084810097449981126997063279891157183607599372407124779957527794377567946672521131957178618825962578034398442188274979712157504026203298290057286796802948904547267685551972301468570252394577832337806515078763977495615701174298968786622183856009444336373167629540265792837757443037593052816875981928572091788150985991998782515955481314514647098721333669191505124010781411597510789253654188414655190668987520744480234967024103095097377045472314015829967706139848321080125646706933073317854526651163164242033412454361249653344974142565432891370785963190997506751302999527530790033896013053451495374867082305689282901773852441008867662413629058477324823937257413510847077386433700542621552633340602564638596725001141040829811281749139991629500784232546954703816731963585526940380431141974077831609519803412895000690049995547380927725959061014240791863480517148765523219276859532388388749798978006084427379467994308217658076778454393225144820826855323643905453848005272075584945930909402451882261040463091734686594854893186671810946954186881449260226615883948312742604952418379438142094812606745059367301445923180097239511883948681514816194469004655128426589145617978269899384002059692607562716680428400167885872008620012390681209870737059897806678345083762241290191511147935347132100197407532176742485368674734094186462656564379298080474717711062891462366685499629000043970600762567315573357131540135002456347612463000596132839403126417373899935802561491487200885880817531355711085872840363982293285656881130749036113425580344676721574464607459066502760952674068446220745590858993241373033687263620100476601474392856782852601506251850212450501888165110955499457470396747734457426286085737328615404927919443388678894243572539907591722797706770549813300256915967871076602209249813169984251561905216146715640402346729578612958749254017432566965773164663883773621298897701583101990294859193238039164746609016782484432709194304940326822353231660943797132255482340419142145620268531498827349919836491847135524145225392682261943195165271275498037433551410683710026957280374770513335579510097695176173761417207179159766986171182489492809112190884645756282507130095894558218161390042621066659067275395802317607469757714838030637380125896709178466533666295236644821031992286024279141928508974297606223882882566052220031484850226020735624960715996246536286627986949472567388447034512065345613932771650937837517150496992516157269350747800312519917360791738034391912490611916445346342768691067874218732803934367797179367395556367029253573804458542464847800108292681399288905535343142710443939146022996548488329898399579197023227811078219000768816759581244749403841642859602012491361804918619365792047128534778466513529123013852169169743887775649693134138373379749514250664603485972867621554879055365480661483594156265965646518026636780217483969416984823548189111346117637440264295755167986131653014038643890804581869765049289235008202715188523281103622460332953724492495537554258973611505095575744303584956119011144520321263930773961453937227842084084328597728698787162830270356693653742618655256980164859620965754480247055450740202772717885729378079218715398239448221284467548601946539756079591732129052102944854201039912458485537244980880777634360067615690957274394370906759114121337366860339489111428480273954422710993696148274425417959637202612212741910331327740930952213448024375220577803775066194917532365060897438236705842130038062658418620265872013863235634081707098375332479091059156832446599806917781097318379227825303160767137718400537402007735389117837727146213566730534046944144591360040374254638240023221630047980573090859801572896452947409901615541803491440168883339178598076611375850579068868395349340343117707341395144168114644405087864569957045756533448951810982602833688925156882696789264546044440829852527536063924704764253133696376619080932078399619662648453671771418735471383466535043344777688348981548987992924903508813715849135102668198530305418185382748478769947336901742884904703164371230533446536110817705890148800474295632924161598601671534862602335006058212593801647386756644446212747304300077343993148029776110900782106256186987006526028502611104290469536796430730815342888474104074597943720822941952160729535792819537427385599751080976684227432375459581320614383021604409012443094797766976591347197413810225307901064256496815315482269358091668090359495608794787503659650501326830204242523986184695893464800950412610747456211901270290547890862355573982110127361149485128781083870398775529733361981329571376933065279227157160297572853413570050902039938667781248122946383394738996371961463229190031949607666309468376970296442009600600995179218083629527257639089285534865629581285833083289844389045741503379554515543910485112470730345434753810844643198005401296718840909865292760804095811045913817967822798364778905070682135200070877002112163717788555361745032227742550401503356860769662634200362077230459346808757893234427745228074407856185065598488152602231593045131516383573727966418900937066193392770496065164112487584798877314418009329062495952195336466037826619527646293474253017636132747831462598425874533708023629808573198551864768513680280101350778357221154638293648185888513072405728134198116114758223291573377718576010955348086097149078659324605805426453343170511924744713013997231886615926617400512026125456897377294189223466968543771115602810524081445444708138295329803861256983922370147927941784151862906359751865149465608336607602623003770174781904715569546444238492262354268523797059246204980282784510685195826913723690230262534099462992573765504793114950829702389856584034310312594513719143276675797403534491080116811502132638506991014649449823299944145423374958330338184523527004258030979624092351601607959151275230557741784439132545818362306372842505762175774310637444082463162791570272585394253097586026290864543348473107764349283492356778302961033600810950111802044036541329175544748152306700415221568110124682238804976367065290505730695817373510596704909039786179000666416075346650990663720604778440121449681609539580080569839615638125241400467664036208854961633419644788867930547194719853373401142699195492515974254631156686690794378575472370255282989310151714620127588129207392354939759424629984442573444020438885286945980770891344281302667962393091859601664883164418371135785582504631747661531935221522595548912455260626831138944669953009500344636476902013235881969892220836152906205974515395857312456900715832625746937757134302609386691408339297774691089010948105004315421914301036777969069066615624455794510577677691935978926644124401226060746290115026379456876070803513047508788606401778807076425657273343541672355766447473373153402820890442323340762306477321758125035942779535721492080275791015942754492260498814727545875098068896101590218798427215766425142974894732723305076715262120681612813305801936954697116392418639753897152481784595630408986847884362593202103869542373011745749834759844908717439255395836759431555552623637593018233932592852506017456826842705599603074316400438083719485933962243474106336048701498412619658730566288593528803805134136250166415971848309890689837157087136699169482208753704928730759761207764679993151252217970451364360067996169344982414274810033196822752757200492297925101643515733446378907252045984209756927623035756457478437059737463685339988051492371316971591409604164535274545996133262520117645210826562493769858239163620102292436415683748566528835220499354275220031118659270260477807404604227351203460586357822495794338191823673675509293090975837733572344713219673368071589345956765738978679890371901434093086287285520979271057802680160767442896114309050296835693147504597122513306548376360318998381395171357023335403683494026100611810650936148852762962048054636603275002955086324663646345164260822624023896319755653625070108958333959530648161046632348662007244193568898951510533318594233474772239598118067234874012449197547198622342573521841727006914012201468611185004501148619363845340098564372468804051484878517624899652197509121926820700920035360709349499049092483566934646995137068610448915696049052284758076666908375839488925092484606298286201696032108786331850355546697799269525840437791372227041006995096165451456203949765521890088000240704457778504614295993150699185357873712806792906903773306464010113529842005583633693690462043114481623129333454927249672331807897778507400065619765256395053266252964766169145337060053670000907420315485583584396564856132194586168771611296203970613188187073688743484832041653884853555507021618088104611257429124139211712809373913095563816750032660855167002642684613764571351348631999482610121873493303905655952963234370562407959521123360855804132433391631563049511675800468004275188821229807988946786972822581432796405337811336834865300888292623931685863847369786537676273684530249711845461644552400013765146579486399760819660512381940311442070429839360601892739747749190057869719661634471267584857637865670752148588850277264398878882456682659276266320989131564186443183603249240763315757665157343708467949273902418243654394063222947678105160326424984152119018012880357283359573309789752994233586053731007583249858438572910215155635773599679107251869003974528012390552312721857722311854510816015245673801527379001082796559051340700506018503579999548629716862292712420055575831084100025648285008000748894609038600734326691645006784036737059052945086441535303071232632003905097532095917001855352306873827122562167890423548475949851832257113979098080751513316846056408119672677644485940913237797545363463628423329873990977578869207017280110196424562888867495865081079758426435722117287672755815933462459301293527040364813474899129660337249951534478177697951000770366295364505694909848601103958439701866174390632477481235362853686368656498334297401178501448084316597363671318815396546445730128034704723660953601078590187155088617141580042495640485977192101777176651304285112894111082246793413221486297502365096751901929376354017121689952043961329693812491692893295931044598174920956324545856961427574387405888740055325739716570678491946928654870266874821720594967038719833980506837817462324100700950728513772492532501740220055610113195817629543160297150407178601877236155116278362027253544807762784731572159642509370300135571103235269519415659890004129021018542140574516821073764869894328971208306996835980576057916863651005069126872318074792403656175800850131196460517159865984528358864363701096051921431731472009839333530729461764993854075798617100666145776369421547266604066973562341277123268646104108226741104025690836918747516564654565066806754581879097466190016001877949716392233518132942194264150489747246739530196598204762104431436189467174151848466899879477888687992518146502416895720022614861556804692593228687207789390912933293216532146958262062674595435052810694478094698392055180757556223413684451406483290482381338497156050774223323132551457996102659120570511942296376612617269601707369558758813797032465527207788089632498902101837370752826242668874199855228941899262511696731805401089138409900863334894092027268653752051198047572734594274170811990028594066325640169003413334858679510416948312008541027430243840053571250630997702128991866760164010845736859836265256322743915653214565662082701559562424632601890573413628437279842104025765250076396839460236014957804753408958447496430338872025534892222039494533218857967914150152622989562727093777018622941475620652666640319341879324204568994940516338381394520275938251045885094405774501840544943100909419963906178953388573505490334616804176064225880377866049630752187999579278126966743995770651032071377442658897067073696243443201907932601501318187300945968608627280822121047805886187691440568084667982303099939217626768114258099350706379611476610588184357663658464126076357982895857790505561966075922330790209300295970221472751678567609394523915301919435234405564687228401643025073777712497587848775148267211924412920290457519923947664660993500752428609743635399218317609064008522841099680317967403480680749729462710762325179876006997406697395842567566097701085494009438227227591747591645513593447333323993435355498960830639910545891281664995394679075054153081019250163294691121554608441321245994736439103170958631811220791048759553694171417255501476772130442160095486837038547012764764384728075910383046520542911583444441648165280093883064901944769664804491810958146245353352081510301525259983903676195284774374994519105093425679448480632824731554770962995515536207562832484801515850492179053493592098337140853807817269450676039231709906625354391552555557772208065312593363803604645748499982860103810740893085516880463993278570642977367227507678822334631925309585146015255109163616031242778641110502030007551726126205177865321760642558013263890141577207479996221649034801177293518308068543878918186593165179441746876933877050193782364571897264253953024725705012424308530657128912530902319092401953246842674129642010576000200320263575746599228808404817984529100345261167094162610042780690722925319534734476412556032867547458130324109859397103463978425352905439773517674249844152888022486867815223314496378862837332005194044433168341191486907242227940624727363356042435677705256772890386735646574239457825656442818412468665461247826689887903290865809751682315565748091741402469268299146673429997606945970519382418484232968793297255621624317191814680892784649873615257000421527150381804454037272717428037215056082986640904355836553707947065046380062176806137659790709848009279382950793469246688955334876391500279658919619337872789118325670994593729329405599144794315817810255879702144721067997235684983065633323038087580014533157288137920469781993569882249472684154195199563992908628059553077094436657788680923614604746808886549142648206554902609339482422333892201043219737594009458800606972108531083000541711875006602792224634631403142127450002487129250069563190965398497248067233817055745734437773665945606714946948151019601912905131963803926218477940527021862560011605302012850636485556464812257585710694504859674765541273033494686606664060705349330349986319414896765004760026956088320602212469686031169488016487977210254675269893889432304374902229920288531720887258511631743080978543262774841588816191585441174172934157466286242118660694768062227538001083771594037823640529947665799665356229875347740039704849737283442007098039511704323874299492994009139927460168402241174467789615178561188531285234236505779859971416033051069556157350377696601958203616889942727881686199050000582753059867187201600327448094775418918524524371471045397028290545550371345089082673126359380567021527123342143855465432692180385812843237208298170662890452548876257653871539120972009454384117725094459605193835928977964606133517469436938450565095853543175564934754352687957229873186154466836373568674022750567794880184596396773181934520932437635643223195142390436708370095308793338550520215688852561191224488261573609526211021090573044299509135855812100498308231525711528858945808207575502520248514751617919402367147141540936436324496590279406000607710779790310341015772285022148329715675499706499823971306191859319030965677994529340109158709556467663379444788012834326210903037751688600064799279043052751217894638054739498946464781589559278872144313284887896638345551712414767506488989618036353837685659982347969594646851856816169575100296633217941528881642367102969206309696849183567088014843857548929554542855268832981407150676633042023816034086400359189106124076848055395358632974360219282618394905411108074605156869791010181186829010746187314538539515907736935271520363705598576110499381704964169266623690603866187640116651996802911715258340968169009542085943424053786548734770181798640354090342116646463752200018423944205630687097109511340775424559271998414135716503566336018077188733574794622302190183637458097558017519569979521744134476839234645191387246625397832413151915676483485398794182705578921022729683524442846577897402206977490724152143310214954983156264446772156773796949842892783866333577973821489528265701553772666677055690799136284738485198788144052472915089750413167170393644203198999479276357665650108798678902018456759086945175555132546961763164625624983772802288440215054409351120651490479257456418167331068124005888381129924945065643805963400264406982092721898363101936674200543919416536374125144588596959291374263316439510350804261181963592384026941173951054738185367699284475169740573497044463619091883196661586212089923445814861211877014830059902888902415218554694248909367112286562537666712551469616790773499212739409836221203308899711028027013483876572827173169937121896565617333480995154420314811700607664881570887944070665685557911194040517507620088963011146574543025977845679906088771100521784805952357400703195469312968678881574644215798832149179073694878851547678308817835394791839859176143605636722864943004725299913667192931956169583417393502634585857997265364893174530691033961436976304771616884348134863706192978521682325698764375132291753960629116624626282613637907348027989487639480947977102022684845594092091083013613403017197353331570855237264184207064838512568719750698477338600607859329927572667729726128538112473451352628623713880730787276471130928622919017569071680231902167974490499457716315704819552932300095528200164451687161396139531855979538834721182378727552782631803833208132140193209855055005698315269643509785301771002009481775386414089542946277074907874059309999161855748930695851459386260125876688266929263966126305705565979825416423766747127357994625502207197853751826026232282503854208395621256264461081325653089334226934674914499211018898771469644059691986514014883666064996419850261139495948867988502323115755772162632632514407851055232059895328448074926955885365450328187256741263918695826944438791901850411487050868860993388698017473327399771516029530317366175542856013326993181463532443923523210237424996360033417608696842015969950034687128812256725825247073903894150701507358516268605530986078230465563345671841986345733486025102114864978912625138244248910402162007084977097787314998387611268595916793197468336542654133308879624120513830212631341291678869518826509013830715067516489453590441789590711050339340406958967218980735902405352213543752662098071302679429465240699652901255018276757055731901835800426384783061118749570666409650460053232910786198949391171180226407554245698682003640428720129578184403074165485801605820503958328520726033601778414645126964716246075604501091592475143472048357374873166515979589495287591786235368188974983553941323345905445647743200813726168521169197800925710921241048648654572999850018477912487731771602873363788812907703025994023516984460120178424189145766782446944303560689994297732451647206359880192017651839559845738222490016816443319992664164861690571167644353876914494653595319743263863588515945462017264710670212301298185403537500660338108498839924157938573242296704168286452843905233104637385841132527307212850824713054641058250941875998948903221553619876861429054906934563356415503337699576704002445844461416463365282911854129173555218460615797494067873302043617857291673785452812954388639467657500000787516650173843882922436351314689440228523435515248515154500169059318315101826661621322821648343505306209059586170098050165102167838202049738851866923417580083708402626725273683908800363341631739923819709560450323676823160410167624552056768485098659045106037907585628065900237159101971092170235229846804158384525536368552915073736605338274888915387771953826954502493696989159956121469513683858715904062774333225618429867735495990272612728930676074515932360039409490079872496261388408147471615585597942959524031717688236241883726089175546812106933848853523008873940546769591384956005879342119116025749790858829450160434998754339625610150627287411233522815669688201693189538532912255770260951971232611054240907665135128221435763572187470103845250785463785108396208141249633093234957993210364888459578345338010236478099020174977741750094231701613920930442627231806977478778053994069940424488935684561465980678953506212087730894085146901436022445517499019002816444458789456851798718720020054102585413807548811589938293822546455872527633630047445768636558805226737462035654372643000805550952749672634296917400265035122959877150146636021931760314930732667371380857947694023653844005252404443792963486149572881480599049187593151854298365228862174537211434637508647004870059218837048136623884060623185328805931375549074305602027039119414139049151488275500773863998545186480517498171923893969703167682218151561808895368317718351586860300866102263911508652945025435098672390178293819597346912070221766672207350977489914936315064855496064810351938125635311398231466061357531043161836301908384338829577526313500299071023317611855021094769045862009035253667125678358043713798054001543998955968445208671222625096866360581323261412174773049533067439991858418458603821405721003308036121542374296989303013138799224326646085927960298051302974202502002754545419269960103054421091721106319600119027597605574081145123718954269095911480432690763051750211239081530571698841384601812136747277994921735542628202821810001859946457932247888406300532791582559742703004062196566650278722053528969932312133391785827189126089551905306457955564667620223099851933433565504282511945743249652771751171074210581500028330843022929355577632206282349594800583169418273916907918668949593698500836083596051577389817847628028253610915064473875766650101862365173004463823434337659105409831601814303112736605839883290369229017623803615545673890091274904598676622435139638388140168855588429047010740276458590049608505385429187091353870956685678989140454707139698800258030151534200092849689977279562383259864453843157829004469327415372254343566485643513842464106470218417973094587267212377023105904959616920050422578652328331301175273633651310664727408055114978555669607857469734868460711881183511319184202273468129002831584251613693706955825379341685565621855430204944810649514826652197092392251885088884386275088713269462573056105366677994210720878423724920916059631353964112963790498499960856258520323236466308476384049326826020669480859970637493883277495358922712625256107548247193333899284171346068163909774880732345562521685763316106499278283141377748151092098097894863212098452509180144447194983234628997721903707628796710458874018101282859234058852387808991636234225822746182523689446973061664136274138723565231470571640697478833957953323001198077279870866086093945223970218216727091331646972988407992600269522101821079228918488656251358712785355297692843160579288878195960329870448139600400015552304996349528448050409471802707680366303432580652410999908615142359730392962293580168083358789990677045638974986998702149714933486333249794625296232621864735487470723150908955869661003217320519329542549177081226474568920679262964695747163064841196189021493675086024350463891715391714532670035985245329201346690584908545351710613913606692091101495954628876336761737667508842889735777207396379959780535912795515400044910637525037415781532305312035316361612762553675242183530969018499806495681976975484886289787597115684154263528905449704915378719423769033570024040984468524175424778993675521801434990565752809521373974570467401877292118262300842900303749874411826342756948624888667522768472082865238850877005071683948592072405974622726896516126062903559304198737017567168999530241269652551865079316582377267814324013820986847210384383175319917394135730270388761303310888397043844753007446312909544654129552339542628932283169178655413339542759241718360636796711569504731595352912447140163771539376174468729915679102555757418651240118547228034959785068673028961701181161292983146177383355495813702752295579091111805579416380288086551358069371180611394430715433322876006515929515503333568881411158142237419952062876460706050201836722171818931073537659740392781333650069192861423805592383027778315690539408594169997825968900537786440332742597620129511804117243194070888099222671083186157057037342378743770750567893366309732098166551503480967351611246762622512755825270337425036420925484047431219156937037138031659953920911211069594533255140218030765474702489425659034723311846009967346711792663716240028976500779717258815182123196635721413319888108909310280891956039897318179807530014763198821784644114739949468596931988420458518133187655349646673609307869977289329520260808128612054660690826326467923303577329807237521070834595803538661053822225514412899113366848570007106595082326761873914507430419370696731339963403066412592459967273888541302097829792514943167485490754431205753079810250717290923651471773650206137370943683926041557102575020928939414321598758528005551614662503217267524780334667540872106242584462318824588818745674700172331896899698894958532966242714868387157824015834304302816305006006413390916385282164545352337359080145188042082084515486029442806366615826583293915557701099250533405134525501888937529342230396861237484876359610761909806200249007815178662030871396281113448375715496247331332988311144052336111785898599963054775312428835053473154808294455157375077870466144393424723658368499094926346307292286979931961752582026842866084417399589348007745444664828360682177219745308660360320518510235384598151878108957380541792419889924928726937781124310547622115280639855087781651934642078682343588096852618050931882680547325944384131543592462472925442389057777936615329035844490436975182216713074197175465820652789412676940075515090697587778242601584898685935114014493779419871329190105891181453471208795423343978456499550261697087350825031677451293908716749584637507689553426181688415854331715503073251166199301080929969847865033087353272242682114228858237209942560055597738986321768925233698371190214270073674887798995032880739664098119409922987952259875863470286742313543500129453851047380104554736991821458197481185481871498398416781578629303412754310848578298937587113450645583499800910606254453189567174717240286402864190918476655008830621957413963880339883918585516839632375838795543385159236897350630259115001044079631135594394554151966951216134001530876454222958556070952112616503258093939888550694225901516775988680226717527854733782341431896241999377863367029868787937963945672103026988954024606697378435958459792218715045501348881466734889180242204926747947916473066902765101046134447813747311234440570400916817319783013287879197291140881161842306500366718406447754390647158527784608451818539371748992268741829690950155029739553092034573131416841224575166388671673723005115721871277515686545164249667285487297517233118780988641286033557876089784835370357331508906631846940696480422026607258493024669279177681476132429500453853687945759717790276054604936416353503834012930976525064659541358897748152261072748868499438122697676172488983430385063145482595133105528848230121842953296691170741276190671722462184894746694380914169724711803994788539749657082573588212318172798514729462979973029543634788431770508651693393035396846819860409103834973609459267892169584694895454987251811450020356112918624180996871094427531183209405711160460688177692634310684329738824288815735243619892550998961273877071555053574595333784272769863465827054713212111648075567701245453904503727721757925719627851189161628326967567536940077917960673361081082626321775482403219885671851301303196993047670573173746075624224093908562940465418519425468638291063330387520040584129340599134083465025778657312141092807518952761627144411089261916715148506103730586544862836193122721600136724186136244142293466864161389344130663386629114686895081796831170346572024832992305604264068657082939256335318469005854867770420661529687214807532306502358291526529681732032675596918105848262194364543586601061753019287917070662325183453256756407268418433455273747842520070121617862050915834007621951593363541313530568142862052855355448990138225167639173543631583924192153814797573365801813968625556437064286337989790787827925922577796181863253261905883584378005296488062634383154690502471228697842770907977831786673393966369253239659437548028848157499016064757671427671376785230054590762378260318967383403408218806424634054319558741097220890008698969081180198797589741604307230661755515693871802508691424562580346235383434071756967931901370907491171734472546791743165765610801975126667860364113389695057285703066357768285208522443811497317180040375110394055454846547392247709040439001776774291313881730820163257574706252971186856621699449574509477466597534148747062157384258230473134365681956585265300102339272313865468426483134781364609649536514893515822791876751406726325162834003719202396983028468911157147419368431450312128297093075296490262893272179511490252266144477559282956084842889083091883142497515638676513365055249445367076454385988437174503486304854836715196829996333612584298276485230035461631190512327406479411707034115391981806318933062659999108166938418959376225264182107918016649626253862866725499850785269113032453714531889403333690623624883818236664950565700774133654085516232013013213777758058013909068604849743498247217874923066951996015023045458155314248887182400092811086946444801172254656205459852856116478024812261468754651665170284349154154958213927013142773566245386731496801599214558952829835369042731192441466955930464582168786282288523669304603750299853381718301758705469708401264186257908797882916240837651047739333004037985159691552189763223463254380141902408872692198626186925100326720854795435704343785909699671508118608151994347308196545445596312617968998701351447215386166800434556812777183430623889350482552604768939422315282741077345126272175599914391105737874635126662867353148636048622101630820129140662272804479942305964904514483036875839224678633654669665271441005866155321155695136264972032786724379456044328524376568393569804918986044333319332353373705604618135766142836876073558471821275818802519277658400654758605754797363724407935541316472691127363388212999453741754851804194223555965537689506974613166166060380735242273055468895924625332851741221661003951248920780519228797516088998165705526121705913601544309698631230531730959302178283012017380853057065575058432337816739840370853134207574539727662257909517388764461639652835689072264403350369849425825071344045895138161731727230122682348990085307342256746958060900759487350298501751434273128466280974120086993235561710453174503624946417475042998265083715363759268147648759170792754965703258521185411718244065291557259038787932070879347975408816176359488211301032052537597052947994965977292732690661401909603875437386158797221001329041804778655159819796268379675957684942064976922779668793343004148324022757385526858778274203574231427216346962692513469797353272123655479993367740042052128861423981077323696080341593843130020214379767464434912364659914640753946218720684461504890754751675391203782082081330113177179114542974993985825147048623891393727783309016892450828686616848178475989149148135313290118079417618458711992450810344709888974370590821846371748109746926616552294611484843416101416518519335611603653232576305877169548156962625786667718128703701109510622432288110059016805969433897894074068498405263720521598429707131232022160845898226566355008598188313711846177248224390290608576667662378094080706843962936130487376784892895185635456479133383799790386444355432971265434993045767003213287270705549347864590436418489605735463577673482952985097935454733301862090327810927198983377194930448897649001998639336625864774389402175361282692877842224190005874148492169363068250980931439368552916189459176032974167315358254913512968500736881956227043774369339765218041349984083504893798934203444898040265600722804097484295280793880656526826041467164569523438206291260815050393577242563507420738465917248356200897499087036765477190976610747530124989562275758200658993950869646498706608158262508843923015374392120801492726094089438920123286460480042464494699834361655372763887510672625113466254776252107660719781998057076711337742921078076591106709112796398081203108436594627351494155021793336723175531712906810339367660072742141555797797722207543601096487882602833638750033293556137021616370467071782292198097845831307520378863325658553818937938243903241573751568867375413523921452674151945575611401734588184631948080279342121254927691903437042204712658574678630085748539984505553129546996617761254855614576771728642148752121638533827463300431836900794774171956306257101008962785076482490058632229223992702544723264051009031607011007722209895947997736545559998744047674586330520413012604447500740840064494372209911600219959457300392493325389845488687537048547650593745112666448690640906203278093584842788345386479936004992809182040934934698544858526531565978009715191835654442867326566167636424594037385253770805989198249897894180759718088548398132142497006054902039249614715593167121888323732454278677699044581346546150628845136237424018293534378992402936913162344177251758739746582980006299552468756587028956826173844546850184996363933513525778147776546251943066745929621190526828416774775968480389243144499759936177269302614225661961166308231320855061710950713851502274329623478794541891904799557216004307350663322567311222494576975485781752605532530175368525057660204205651124458114454550161900351074646092165874780051956901185246042431562889303002187149499277573124686966025709470149449288598449395399351920805517110172568873958790340917159088102875472617164094582089734782932742091642041832184162996951935735675872361943341187998537765080229424440213108916947427460683291075579232165475940101688721771337515784174354760511506978126450052498650866289788915505265175204434069792074469577484851984602572296536243661895036781700019122918741667753800517986573345688327274266194594188727614559613350474478766760106515261552667451701037615695727200767755349982390659182747467193671996853462511625742595768805633196694794569176313312143172204536749112200810142183058496824207098775838965500388457997560306392823449776711475790341219606599193230006430205056989917979959415230993045598014066947218951749887757395544938232128920897381676261186728526632973972167480711111560904320758698039428990217490311158476623769760126726873087931883774692984384810915240335081345943284704621425725032237792595901022492755353818461576211409131302289364957154150917581871792255068050847918420895597478618027670721667058010499447476597475464143240174348695522865411914439798256477314579655835053668745098005906775057169562533703669904497326491298793814150226095501564064429662018120969971114335360098041500086412344073508652658417314862802794203326564203501789851286458758273312461638384800901066171404664099850960252571597388925477556099185404279346807990622219242057532175508691252840325989560916610366283744750438666182753365205581526607818608197655677712128306715968644284291778745927514909308472715610600097689125620934892136531488395507188449532838005451577802287544774775363957246071429802123300861759283429693373299600733476574971330393194164741316887127678721991024510171732832779042314172341923642573082531529913311630286491800465190033469330245912600634619283818483597923663342303731131184594176787033866975372952000785559688469094431625490394238370298919141211899527799726878526455182151132332116047928806536780825974726577503779449207384745077158575046126919207980641753929719164660748203610348976772317632057092599847929601248962568765804181162809938320601022420744907586668067050045742741793073752412078008145348629947306243922028379126359882593491112657134849957041086139085492629238977137637814852918456931433329557043714180834181402161553245169408250467215535384390167372896234988880124151045563851795134237867902008423882734089199319340815444819878881635171744413031350597480012812538604897516591452549239419641831371909303494422143244464269249009656646862409875593591338221873567074285409937632563497548038887308171093392457377353005054237596374263574055969110489536828634265907424301270700497767269843589208992611524112388432353857581302491450990129523882732294070875601963294579948159708825857760114759410056190262095716542684188341814597158672999394895731734136594781335837430107100288752780814824493690287109486727016466069549196219046199651382353302339248550068272588310431433244368051377756864554519140020980799604434985344729397062722180410335295709536708081576293563311048751980273704591387285457002973995898532709722482469634022112089946298052185395299134010588780122890338538160077892430211039811520681272401457886668104510847836837977716890820844253013378273975529734215673008847664345875012433783562805792464349961173365663574544028740286755088238678282249439709546330782130928591957880068934181412672885122148298188286849466164031000786385220693044806611227552443184725422208515049645786668170683249610307118415481241928948912847084073895645958065818692417437467885286679801272910637675482771610636270547869937194868278639886377365543791062092422837590994202819927263099643022698296781250238995339447141382023596405003652011151068692547216266067868689791020136518647305616283072270233382907110778560462508607057386019734299587485101080530065752752430222869686927428823269299155851194497548448434353482793314977605033448338838444556882653476338571568468591088269529130719192471348082323983257891422666665696646157965805828204825440978783870579471704935611949357851177431159055363004735209693362222993842874022590412016010470981603515529479328374379187412685969029803556604644231489069381397809413821585532555193013147553688528908258798172499532236724693402414036527608771326517670450808293350077232376025403668720232286952413059216087268419774422441311721442899949874289098002992980897214928458619411771893439925211761655150570245157586687016720540237412198604014094997365762897499391242841250884416460319099591036809692381760609717308206054082157371200379649203739379039954813897559761456447093963453533185239028447399839636641671036764709933565096960429358708588488312255890841339344611669547775292085211194538272246892992594988276273019445191926303626172099074856207667358378981637652550155881344228659980133805931229963295830953361798783219866367178383621626251025783798890918874714485036062690484683936360512265678986308687041548888294425841024617168346375691493745245830103004562681334382794054108128725252980554996246195140325964227768570901126181364812626841113828248851182705682491110236952883931206321369262208413027538640574258550788606507126295645297678249171185992499100173899518462801922145664838983661834152507476751417841723206549609758072039655497204587104183081420823032571543235592062343926910912995080196884603701486551394085112498948762014701197502360429967983955585378099099372880046484074351642319163863007555042343576110777713334896926927358532066316415938380792511256222501605465417351918347254431341513688121276419171073896869102012084462415782523986965497755491507184756496968295745114458328952156444880382158678296755546792749601544043961866728985337564115530679984717445438705095013058795913026479970646693081209108281421982542000387638912111460569889403945871430909749103586513193786972410047433165752264197703673943380917225682454647674218504585871367093687672915481616575638693104327459471020417808857079178041527460658171982281854436970646097674753047691203759822632271878588902257128203909582190500629436061639419800249679469587011866542188614548352076397487643740613721105729634875843822121976541935268462997614616262198598854827438850005869547639362923683552767212111475237897780290088118317959101182635801992539672527156083885068656745982433345715821228907643107464118979364714413713498816246695212881627475916834108943800027737688837840754751709476498461026082038852566481067777467002309586450947242605511460821004451489027550719750011493741240652247575385864212018458667113125207335428677491623696036948431387472097584272684397792667620795579626734659168544297733439253966095881422172827169962888975418367316832709951967713306056275365626463051100777381199813289130815092658403543595519547566908929051670018939575051673373068023432148605657407434125607834204949560105893513410915734806963723322366962703077059805199298692384263953143174431723238611144933595955076596373083978604539916494383552938451715558605337922665422960807008319411665307049209086362982559928377361372355290096886530031661468755620494850224689940210339842489518531581548917887377393029373530708880046371652275651005198986965976874280912122144936712302181793680659913298932063124636671278396813356779890852539833825941292778006952156943877185274430306155426921906754912465784091917715955073362408997578542053245551369577660343364977790168504145511301097379965135900378850495807892085809146858099057840039137375592131610144351262056912789726761551974407863401514342634099113093964050424845644944244875548175565471222613582515429355423551485389482853095215787079272718662892760748668190157776325066230671262536692631913428415409571157081678069834180792209030513694059687418549024771428268648770043004843764990556966337414902163116920016478279261677432314348651800601176260914706991340692007683306280342059405663812723836892859796159737873506494246802972114840652290784009205069335107236860033756036269084456123137677430224558957075815675802549045031896390487494632394524430954926913649691573494813689139665139331652316968768007509620760514996132655366779308474908651501789348144892416366251182734865419903534812034862455400670184108035760160835391937708864307622476030360423371456943284920400662965009284795810212048395622223208871937829485999066210289176933070130669241843109505071629140308031457910436780056281603772784290738865994917091065877356862167887457738249819931455942346761360917997052975538766315025884806047801298575226266159519969003255849210980974046433312743595021272373342537743488997033021713897345134329137855432473983508202073292983840611187292163836673854833767784991513528431361102561584804040406496859191494764344307807041270440292844663165249394187030817487975385528548179997181671757780956834277008105784308576800622798782031148465739076129339120876883685881993364411756156327450207104165595160722361645731378180272625197339693847949090300557475221092908896136814107237177089002706678410193078388511852135110780113947680452277367814845226067634169189852334825006798675346096096010421084075628027464332262768398788162232588418282075802110604942103262742741308488185344997850942273943076348805009428803600141593944498350770499719427900169404619312483652925015859082367909286373347205756108832558504669472946455267383380767691967229218306876128885684445403430916067861339933154818828916590945420773353454207958649050675017492911718567036782568022379253794693350246867565114175247847297434966078962563105813845009463034120062358554099205488709372657150454120160094305834291681068380606779021141646508720053290628425535491554372833575606977580089883019710186835132154206699922779437297667466697107604168998580295353880421366430092127200922695663736915687620326907907815076997242056117351949086004750879465331277630868563869741374481286117439285833927835580183429255713316045753862105385542346627156013350573333471915919000178474174086378611992282595454269129242739016439119028338946474003184821530475745828243144705515495195266837458495264791319633599953845894891123684877769200865633039409573263999872768487889110262304875880651642424299554463032010936224596181901901938090860818846109389239149728112562779384112980626852126373467849264154779301479953971676261967138792946572966908565387935486238586621708567455769420920514101951803829747485949373597145924688326299205870473659677634911841130185465912586327428048504545500175982999160131560633475403961804807171071674500907636773699446944688832092838682791207514549120339378629612100157375539438997924919331504173731641742170858417971809999080502725997659915090286162688732929563876952641471231758083593328280461302922524635357169601798992035285370348393626822502768985345988434371903760273739681645131746889047032918209009218470989502341984691479406754677553254457669121371412579593758580443513271924796678613820926970707322115333004511377997749675412743497789538370872809447581428353023640960981168363959643615953937243784367761440182940372025424702660733452377348666172443183496404533183646419680542485195295686997342251456065052595501664107329525571455305309458967259954691887258700019070463155691231840274783656047158472744898033363977870512216515649406334988805679103330081655140212445840004824667699370139968871582647561278672724729709205271904271208221365599692498746995485360762542550056261074295749531669692409837902561983176738917556541721652054085230160715193349904021020579583569527382585621566357975975922753282288351868670183944283444892622659639252577052056795933697726212931664015359239493202650407722161099180607096974522862390844609135397279548386616212556038074110823365782928773714335067496154180962454816845920986939600858554825021463799453885480719234173358987843813563803760935004507674792871005085648573284029706979567709787163702241475861150201094580488814587338827202717477512623718734270811647780396343859198109851294608249164045253644338830510188982885993021913723996856139540752003667688277646452874253891107555637069941894048198676929529278523783768650147346273833290729598379688480881311411082498182199942814643730212845116231065448235064314371755071002065989917735691589913988459900392576181201403942220012082800780884198107987453112171765529953745403254260788365186719128822924671200111889897219255837395969376159380540030676798974628460912952012461398572727694501366121517055216575540441878995320586390916741594528383043663410810850218914665885049922516409066424275320447115751631090981327792345306895717356845590359660817822018848136564592379830151553644738663582617760460977738981195880338566163066531750207280679003190840758806027080320696509971114317866164529295069382762086825902662047556118058455624762595128130749980141951897162526903989931236501578525472962091975266716040901800024040445441999988158333522664065000633346331204359229550737657939784598310605825711670145461941936786820505429768788151393900603168604635409161698187752811163625064956758282543911663147673158527767263332946745491129823950718928664812515292042798177297977111321187291771188548450384830026660998833752157558974663395065460104367023514278174343134704835115241971035920895091663855251454040157947048893428159895794163813965323571688087566036939600514268786208664518930204089737579618423599117143638355017559745224327217139023211689192878670490857952491958576680777549589893839330868568830422573186960350366642745289058592331549306816465115240290569622694797495286270378124698049441418671008516090035183677404652180248079627250286532183630564564399727620189655059978164883467671722565686346952189955736858075639265697904168644355680177822021236382410965373287121105720802150574876199116999907810084804258706010191431494501563908496471768106355243739044361141744629210210577416134581790816936296311659952199975695552240704239389011847726611582720846284043814727611007967081099373480839522670961075408849956598151084825660980606103580440203776017051505544578537117316829908309492268354738914799720066200028917784231489818889522978900396625604188667337460664572601965661889525181294344176945620471275968066676873170645455224316921913197380339848887310319185970873456056650434866823092861280303137309711303530882589494772010480204542705037968478082112758630021694374731974505908781585125940073143055762332680228509952222952478753948399766019412279821979894923555998149730851091451606567749508601079395455799422346516114613542366854762094848675693522698714964797755329807011696019223554639049543360844028800578437006817723579895107069683291938637640455095129771629478032108113266120859433697510714354031249301791106010084180466767886281535354215626867653125916714251785278404646532432977286559776030833199682889642660009689001113764032358242335473115349439362968890082517412321482620349112868593563099504327204621576817275874048775827086207029185227112183453322851949011426739037467460674134500349558668415593848849307780743445044193153374678275915237756744642017088893272572290524793001241085934422188006060806034201604490248236514498351241388049693082707741329638430543289269739614819318553793908260185232002604896261160881177475348967314260384593952849986717027378958962513118065517985927795008472321753534607335027430170070443301900657160352984409243501117764986199898838989144525285785973150837707915995113964473388321688224890529495555536972113936535526762916854096376269831133176858738030170003439923825695923922969121632686425587772416328527257499306742596165585867138220441261024165146276640308203357649914216545357145976836855230877383047521375098729515824242035329166530962385496598618815103023234759589464452265025619768628268973927676195544740751908122849684777124721721942007608192533995659498418449308284480633606971331869016830445975759396875955932722198879502944815506190819757142066794539742525401470173084178579744162499593145541671772248767581923442147425849027194173648292086341826384807000992475737472063759484033345996905114905215502343233446671443865344109542719474733811719319133781299255970533172511180122676571417652533564412506562138179014913280811024477245395519326315249721645523514053419618915549130155033176034859405188029930205597679885061988691024654544242330744072287407634021025745334343133799584161594501175350228993685719956723407083768062181705839752776264623259086911778457821311864516813671488432174939196440091599551234138829357555132613461127482129861005144524574116007126288949792547208096482786890368100796440154640875268416018790102986832470592469640494193635581858527394823643843391166324451360823305732857775595742932676171910872463850856768073074067887423594022322892761173638435642186702752531095190989087106558925241471595104345805331867532570562978493120485287504146579315787594992173113301040266078217229309281168149339140164426638504278184433410437364254771365058171471900002282232871841222183626510620488199425649745706262033398412884070870487290713970461213550601678594743105339967585121348490678425775911835029799517198626338309209475371713200555229661058076954731326860067317801375749719353299388453442840924508453980619889500556745506126762329429236826554388261195724065387783250456247675069626153631412619645812577067375790307521281210312360608115177331457613979950139837397581164966790140663697033985292140505825701284435489836409018797912852403169746784414251597723271247452267787006800345397053065803956737741441482728091502225791628197309126508192908424670104502270340792107801531004775787552943073359604482456631202183191082391929343414597928868651405831216877338597921943360975348552285442915346064104613717431497831241616326018172191810922901420062952916153275637310380274643045089838105141780580718866888311735220857503114800422580269538210713170941535592392361588927587874981486320811666461266953303288864003661562591796371253932161075231300322030924380631194381370449046332988610067496581424187174106171255786373206528166263606447299449496087616824291553390505922635434441620098263809812469201047094246453487974342655403321762693618909672441740728078080774945421629171718674177840415281143199591100768716636195506551312009626862722182329631523698240589575384624845204921818147546581000189195510735562365319127178317232833450031349823464221478395976056380392581703141010334596700218448693714673708839384700651244763029306674897874239100963160832582252730356760261741258428236153541259824801355582503255147472434996782333867905567923243945428924186351782588564085841579476498307724384747287645178365483166658250267912774928688185552096719482167536750979407396401749906790356567814477035253010817811131937859233634135806769340112595350685403305667852170099165871162719955923418983852566233656083498432743792099839402734612144188535852563291144650368600971453257327625516601234337514661966516905158856311069360200973567929498012958968146438303246473096859809628068832609351398405587393411647864377019305072547035762870598801855049907037497138685878238363464891186578358345498699787876106178563242079771788505367571905577814638815110332239777226706880673334970277703614578668200426846500049599161928358878673728580027277564376568245920589446697181885544322118962166520364535591172150646454676220374116360143204527327070199074608178349215773741082002306705111889847903413723722062903219938832668200621683357129978773131553832681313373639788956628301005417396000072901690829220496218382684691080274868161052002504249979469593614916392805880504380353264184125517279483780170827555221421407337257645945249242558225471151037797993565511440090454058801808669920627040000266380257793570595938121475718191850484660755063634436726444007877163666663732693198456820287243520235490934457681237527367357605402196303636693087045924073152752656058449054981075134158884308244975538622843917537924323650086993207894029233459530391497534109957242854217908927587588888670241850360688089720790165556219890131188532154279693625002327797349839233258312966567195812520677493636661687089242632416855971066633644091162371535863824949037999716855228087524281772218292289458549108381355267928299281138863042583802747097223153949850276464094091365661381234792763510352602680849381184129654556249847822242808528064727942769261811236006609489683927027664251268884674539676620580555585652785609896560627092663899643081279072772701291123945604573669886295752534423724675623240840913354302620269831542521682690594385221666536084410277697619954766103906563309858323370857815201203829623964797075820417252257703104378437082007507581524524558082088462222251109455923079690583593873207592745043902293967057879688587234401176154161081756661926603297382384430328492279406042650320947083789731298100186723055285786931325010686167281521173078562395428042007126012082232171293842056210333889302809712184161297939047222656531773800757744202874967230363770144594001533038597829418152608157733390171332257886049316848136697468146427419905522828861970226972496486285792882969861856768460294227953596147159100288221330087914796114268897034486344939186513997039986679496335528722452648971150580646766166547707877418532185140146423529473993169893164903438409087984394659888576179136525913114990010558993511955821059250592755747586688490033913595563636313986465600474717454495822347670386157743937322431508050038400731552638381735457142421325671835151261376415937752485846439265970260070893117048723734240657496037524479700020958442526722288263327254089474658343469754303445656740991992762829527958813521815575413774862397934547053792278145798678132847926463901536046644439632159815384418777611691792928813259117437752046464315469220833731635874822013976586314913656385215957274104808062342336659677495645292328630598618769695074794723351062766784374430000310737526164361125145254312575155767032820872840809669216951134514873354662327944874446861797664824309935338473219609326216963743315220450335413247406096339873862316569753458667728621999451683201988526375834222219551908189373788030376473226244475716768368909451411822057431226653289650144188720663705726123562301315872443676278444560135114252012662959606179502645428608780025078842704177978216965590216938931774177903564768420239979254666847305307726542559993265209218473233143380250961205372999921790329885002911923326635535283102761343703997985049225617058296273853434637611828694377542008185976230493112084217822032790196002665489631898906713914343607519853146690216391086953312351741833979784260758539321765110256589199480132386539591289172503567334358828370980078665068798610956068841274252903782760432127654763452578077664257462033066641797582650900845840968113281330988925957038405963241780465120455980405857983839318189501109263845115559985613894806354925856844624267762097297817110368586549403522842416575555055844520811816058513618830671255902845355956064036440389087634032995565651316730417665933461099383553965429006247717791539635800225399729938223420893107306793635228869578803225340564248030941320866517127849119449469052495766747313590140683527624484036802719096600108504962492291113001289134360012779481391946339302586823115373690715375218777833358676514680663060525889051451444084381467963875679937981145105476194597950590139994773036117342355394771971625922224970255090646757655505155185585468869473029572327126259526808493436411740725576224220146157453546590789811892947483079020656896907367439243973510576960022769147676489765022337812237410263416667090224119367578908778916565091415962450328204813964638898205276670472725602150041889074542626778983284370334618647389994795560062570413996804533352134405147334216060887458989124765545679660879846108755205349891472178374666507797753636847057672450915552017516849384239431765614521839124838429060487874405069083775127737059791587860414851015930524683632396304307831712260117125370786930796143089578436465930615142042417381389284512328685975619045010340192822918247519244050292692563131703720419443725703210059534648427985116238721842332775130809982479508297858007477257156173953826544179926326876192775815692523261898262691099586232637435626610481355770969694526269517610438721888423282526643364549782077984249383415788445306566694648423333350862311893661939340709945574018940200408081690835811688496520234948783530814700350623635232684367480955762033595532903338552871986211807305647712270554679120517531596960404699403563564891567466232446197841465452336956855705265414322645357310210421952980741363474824909146816521512102387092248777069833703679795406415046872133443582062503208310521943110712334204587597693177302102763348798539324109872005925036182236816939556421218554900345487574423449405944776079960241930764108347536353368196033232127686936930631364989807349508424928645943329056770420886038826746265082305561699784980240326780025510737232766708673661494148644500940812612807327391381168970867697731820076671077967426016845412640471365799453346979393253661853969244910625051282956724116883448727332688275609624219693254797130094007222070394276736437945614774058160501577751958626107554966572116427364419535948734313145228028902386068942148914153637773990394897287468520071293486238784539422881388989126243345651604672616047720723525997829598138546296962132785581818717774968753492391700747114450666417479627594670123118987879493303211080183378730643556791258785545874751804551804758319860004242846559013163764158022191638639176882355419784476398430251838348174134087621264836427555251710460016070634391337150749738388381649575992429114076046471394659595435763075389755854889180857701139643504728847474057372135252673310301236143272216581383388740167385988066108425133994731745878884066213506519830698008843308048212289121987230072932508157570515248669817798816805759818302088796080165732567629740832253695147208485469734423454474842531826080331462907825937512245984827179336117992426071522683587274124216879350979573998031385593154392658724446312348966403446882879640779627994276426634545958155478697651177147779760159283057881895307985759806204213165224337174028774012707584218636529082607042363031438066023341533984708833908505982466467889048701954307559746752384564692406998126065058869630739784028073857260827670091462182209077990272282781645961938885554150605044675849091105895236446416845786512185114819504167533071227036666444593639524348252960454222548045821627126091870467146156589927046515569664923764338766506655211400010697811420722968261725473487671103877786039934295050471244789310330160610972546949461814264099479149902875560372240153098851390539059203298403437444521245890549380824091599818621433635943371084952283268608209717236555803265507071697615280476993998432879560795063974544631190861050723786257918145941296606603259430625621934922108571501832792856863556713109395982303416815865192689580980665965975756921773000125904774237210005157382815549934196428254072714006478306973594379327459802512206168889099756644782683681059147485286728934778663353451809651656692615534183026507150319867719361012554305813693240143374376791631208745961676003876627953846756233348844669553846181272665669445149631197176119333713337498702668825137210073450510201882582289919593707033606184854760830224094799927189342480706679739870388608392805785453558700726924137794891922644817707276172863204430182131608253174783999248397408726096076457178990824799146889141460626564778080626453832501625547449567961074087697302165983032197718103307654705798883279727380691725599300378913921047603723799267897796253431620651985780312477651072547532026428119915819456085241346442572094720238270062253071764278953335519141711028810379753590111358908856243662415515778709537757579556099793784557174568415787200652837086844640086411555959495526073119339330789215787194445721587311617460644217285393425635953460170064455774490611561748980830569102593645091817176161305344331822394169663804273579402718090559822621251964780843736453760268882029759067074349609805343224000935798708807767740884589758425748744304717281308744347427449701906922311809650800704363957153615456007231803741803489320547541881194349660847426852902141671994904875178789965855630758819319472745878000200303634615093730097506644285372128539180549059048150131069332468980030124017300922247147428137354160744743684025390090757596825382498725445809317013643732245994057009792099683416835836521614937216196906197800614965310365792446734723267799992627166724796122778474315156130946499503675802632754973718287261998156975837856283405290687941569103439124293765307665049191705521856459205928204220913045950935028287207436706423606075555339299627952188343498662995700667292986793500695545042504514470608064121661083434680488714809774874057682016147702924045865800957221060478661825671844187224783479810642588437925204144912705094157233208271237897621547753762097010154978636427442411880943035102857782537133237620955742598602602300873520654314407802775934326762219099645689266424054074304403786646557916447727050470211182683960066183943561957374976806202056977311442862039844229095381087660853383001830925817185612390251300209462180785181354390053422415890067927007634928659385123583640496221146190263874411337672340613122893372441465486808964197184171206372785051832540113056612700889479681461659373473114765002903551039226693739235883043253996134779947388920566290942665427886074425857084690195149380601277229909017965267824648366735245737917167959615735902615956508645382018829971536004111168302472679849150721551002173221738363361186326955476757033556696673311758109096989065670939098026769626938896400519246563093411769511400381147703688410442734344472180123151592551464200087570877080500633274097762459166812703371278121801200864964193299237081767131335761577567812147805024969839156946296018516289491804365125398374118935122582399701394185597213017481487186472552581213655660359948362579738827079208101092754373184039433514461518006928462208101798743785055505717315240563756141298107223618101511061163834846832458996882047346986541417285033095923850336174510290836335588264514939206870338640592800022109575008573289250070009614524310392559491931384761787617836899498935650699180092994186640463713646597041565838142854603930751118923955064801266907893508031944515730760571239873979102510795541875997646035227374884890016997485056532123006234432729645806830922225118076478495376272069263413623391923915094588835854878088133493892242333625375391661498074198575046524368082590362061627485660782888192979152224187835870676444106546662119834091334029000912833093456414980683462721494996135275598541822379893187734215991802693557516382507742724747224456710163909513060782309041330522701973234062170431878659516230603846263339975155758456544960479151998195783089931733254819499276408275402447993681869863269669871147449457520223698759149434767068544677971663459241728821251286796413072204085671982142241005805983641742748677677777458904840602966075425378098380032003557518725632795442867178184745123881498737055293642452731720154915043564515987444539081846179805239115550848667246883007274636078402009243607758474794863662300686884758016833593310690612339080323053861408358791374579477771758952994563097862466639952538799617524127965647463130577804662187669887303445019903172498981732905035742683767166491088738570340883273984853444319290574301691026686214722191605196246644504742934447389362122697320989669813344634854207127286127259039249650075357439848285285966771753613495453786128394859009125979506064651492907899574731601815313440765006457998177979562252104224686551300822645088314556873839078751189431175310106927767472358948746057375751376756315212867039482643994835519276054909041182144541410610406579233334926018168681516985724418587778147864431712584148369901574652480085358938167957978325369533594552772845926245764054020778943881744298379147407307745409176670887752110452968736483847887917110526228926722118722457385240135497353879239924198578051849593716867371991393690967984964868076095153879590454043058999512009272549946013037623460436842273314426620301135780539466783573478907019224750473345658341368471121905680300369290665411014239631609134398920964297951503435054208471382818829418170034807424749887939618281234913476715573587685222963453761456816495833908224679431639384607032951227085529392968049018960800126796708542840726023283782066723721080490902748964981658086681564082544924515507798434027787252232391593507633605065932417504512187076098292702328723160744622944142556539772028724610888804432311639742028092423931621384750441425932442635855661821755050968190066354738071399825388203479084306088514912380802217304831357197818988401985647623011634928391333223397794388065402726714002443132511622073378554486064635591617098950011721982102630083035781511189643424701716430858326060182104034616649141338090142469868407092509725909058042864944339843970842254497474512973231622071654568777529667708996299464379675133638865703243934097518713248646900334815439108732809908971781289810022008729747240983071152384572882646794159668186531087299641580705313645203688834271717266988743646791402314543121850754757725352090770832206989650175242974087824727249553492114505082361155975311107669801759287799724129614553872055443379994178375316243452008406460384070687173043250869706912803748072684820433168617228200981341509228639477632860594804479424634798916312711355155319229938276483863549097767848805029337801646034006170134811031091310454755415434466956627967520417355053497770047085489540075156888166503884456512239433377675369409323525097538063131943850214471039936954192974760719606287450380551874535801518425991853424661639526217109041852813783388206254504631691380195446024299169105828277773815872886539538040233143876732453072466487829550253942152409782494512584861669669338062663307539794495802051561011017844303979034406444444856351543468864143380319296021662552040698093013973791590303372937108857653549733372208007345876253364944786985032173424034988007174421849203590093201366410463427490819997156656028794546564235553681515443665057288433192036478695056166543614060499048917107023649305650957717475238740378827486144139603152034885589442652781815590054755738157392027842656459951122754381251708496137063223039545510463304085974573405652246314928848461355463733191075222443572930382399482343807137027171695183211183632661436330799400807830122394508843229161249684782810335846432535062739377869697538674784998153192785258861547727923029243899468451720710768225004360807450119038735839611556390214679465804749743648521365216262160341576790628377185791745037122025880523333490295790235025887612619301654464383204266013890420520151934957538737478396858736419805748554163132123144163672668343438356105517333944949959150446606017817216360531523269736612774749277830282696967837738851530996207123112038703730373655861686707501066692727073756307584056483445551832935563341268710721655652904366355862357721344118523617076520575601883976187558979246847576048720971913955813055317103901835684419283703000940916244828316992116296493709747441386390360378110077969646731584386069940212150413088236578976071507954586171061386896106195381163811964572209961128836024183595290492460204946736776907754425854460654303765746261447903947632885584821018608508521051428564368638528463115349528984974202895737469915941038406014118285880886910527165893460892356419352774522802715748358607832357294529278720341005578117690884298061683117934562450428495887363725268774533257555835917984985970124063125790830119615575264023296188236659486999332572280385603946434145087439400949353849602088406934376528977929492011524442371031523052373297898374156350595830812622463818793376987392732716018846463755651137472255784579981169123605676601977468124493074635662561241627627341316965446227312516762550483444993268818236793827301510861351650796649313047463936618374734171717475680362754808078918828369554197269123822602299869816907108975562175870959983959757642994298571283026516724593715846190685736086985343214002223428933075656814026290681482849787511603639195806283115063440894911091279946222885182141917792484431176988907243734708265755368909298541182552441231272023037862797718843694118841798766385905148343695614168883194642869157752492441880794451580779028217177997534083339049468446404692627098885005754977532474666416255588218965491285826050145601299962187815772999001269293091213354001505003266564413633477033217603212748429016636149837223394126381288452443997659027273621358957757177986294571100794889639581348235409167629222339528853668574279466335508946392519787628374907187266627450676767750578646573170430057246142033837514191948082566794693247656570521722560444093755090874587984871041252102853488943616373122924633702511923927647290111903122210247895010937342702051238555974688799146051100965093604352470910273409058620911652039896653460029166120539242416396203133098631696347773960591565551493915641794371543596529357000611860430021056601451979428961602550117330481068899555746041601614275904937580005212331992608139830972240554347959541508377441246789509994285716779893393585294487243809019092589861183721737781667901252891512954325986355082712849857145442851553073769557401642589674236574195173473085631508816749511493115164220392691654738920892349190289578588388595603114789832076136679149069804586532404143659601159573574684056600518513179716813595455443258547444365320904225421530620994330332158274214366787020888800680783815274376116987289652035387593356966118210384672173876027052705677152680091930439003860128606709255439693314653096296182910969630169312748967823403394880710951215742824289289569108635373849866259433620583044300805688207221607350875639982273230901220814779480588983161660076214220128865457470637573592169974970002163455662670901255993246241994642616273251028905633897897047583980940249745239443386384814900448537806282406205686113370900079569350824175527292318722221736152160721822386782554077060022626131101498977122198098756283078994743080829536431127699607686730992842633673909023759717364357843906483846491291088077148949262342749987917383343251763334478818504558247853045469503716237896264919638723779745079530655431214263853363483318221921703446704915991272786430947491689346442285517943074171581507330297332413901536161271120938020435756350834364869561990290372651635292592813275652065460574419681672094617528530395281292638302547841894947526222838427460126167675906398068576780209551706700014620412217646604943016281465458958825956449916460404945656791935276968314192643526361022457438288644636854156277278783656387822249822539547630501343770944146144508335226465674146792738700748290275903235092391616443957576342389233724218673197528826670216956201842594746770122744657709179195046082051146833005807629913851220518261180428931659318936398228408300185859240002425717068178829329604595061488482564856642097221445240554548851027166212447716513199419301045774634989918381212813882591406751668324070310196769255180155805702247148688785240937991134251914486281981399831997391206533938675939586493010268954346241056712407083510618536698450945391005765269549865316779513794110671604568251386270308758754920422659464823487600982838064947109747791591671553171976645574095884868185598029073353890648727815892207593856199755299864639722338538614040994192234243684497226954490416457866995255700202116619877782699927217615986893392385195482208599964754938742166407453913247445149154658122924509947654564649979490652138104814309207582470421879565004802733313043732147120367152659697766719549951246791174907931299185998379146176502131636838931781518806513353667602150036413320517778509350243476075811357339787886406205295300101483320402875419680239970104166405847664255587128998626604288375586415899431829694337931386485001632001227146616781446415727104495883740932698560710062402983135822374073447296632624613311465302675214360021176238851614456518185474732238151646465963566772243403586390749143847149229856615971942380961990846861340210879129346418731886634778237985465775821464608135988143409590723487955677642499414966830159421596179304870735544060648550628494659051834148540783437142478942199947476367890893659813246692201110988508525305768972737559634652626502114582002007602767213163670078562805475453266900818952104828290730700625872677195830219143411079399564527553234999312155609696047281490966780058961419019771739951774449778229100035203604729226084088335841197267817161028977574969929114950636764539395045656012867364235488008640664623176749206417480654540999483609415699240671068738147936491473463142429881657606507588316010664024300731834281637676037886885460156243824572889064381784497782963749606073615859933199822894457934459465220422718551202323882265010945411693490144603360382719067274560149016854809255918302493397242108450726415538505943497806125960811658725641578783807598774157675616355016925815891966249166285918108085633229499719920553120379053045614460094331729684953187114264363002142105245660014595456024306006216544044934272059366085930076802807925394864437385042596727371173963205234580050068232558996181294645512189504796569862579989672547611882849329521936551892454936996403229233620087518074731203214631690673484696214154351108909615480462396549520636627619686582884418967412832561160106876282719302202425976191221827853406660549329116777991457877528783963370620284622479779146258200910013828411516222874735912166931042466420121438726551346965310756226354554089593549319732673419615535436168825621441790069563975625689266060530134913059798873504404037626427511647309285330852401119278350818511692368505008276174739983676501141391456653500465398185506400420686177761516895010857225915240963320799095362013261974195797915756389002520496353701450757257502157270978391143548092517732878718468709844877866362705240203136191250793518139814906172537297889500588938003048087482411054333673993917795163360918402286671308533167855657350035994075480172760959144970810398287521959387508057886480182743375440736962769054721354946990498502123346507706974320247560843848737337784814867782631041253002287184865929330086234110133698595503662439820037632699277047203175608808404480295421726903237867061173165785375318343617232860010569218108647257309555961692306099556944886910710698029844430886544861582067869282440248694645972506321118827946962560854431511669094658761750433371944844795576342719143482640119596120466268486797573321983124885602074172732296376184457424015001048007619788492528621688207860965802267623192092001829449752648724934413915927569277042968782532751451980985542652418773071264465459995182938165532393133090499118574519217542875680284947741412531842786255590505360583872646358204938444260757415566657028991281255724846514419010169798386893549563352817001326705133210953239672595110568532959620402366379121179003211114299410971858368652196016105580110782631175141599789331386298592098295826301164604208845588952892131216987255398596047336716311014263918421972309437374540476961655805432188792574940324781262672001298247036189051271277331789261247177033367086480861995705761447218019750861326064520098405658672065227997232930847512534075354704512684541398353096916568620810551609423656640041093011221032105153023477747209497187153041825037951638062512004527695062446515401170166473078185714990235663863162532534823103349064568921325855479531138357777600906975020475761528007481156211884542738080639193124420270672070960324846349093229189069894329194875486354036052021789548485983865377682294336789392106237248655911084998769785468804206319965691249927704845052159672870067080276625216410614636073987536220590669887247881616338982201477624910616056354048334656296817377100877154889669047307852932395563563609615244315170538282723750842205903735845680590365344384957100793019681480832813582521379462978384924249422143064745844645807744416144412271656055769496931618600163880014592539842615580268281968188747660829336520671225741757741865203305954069521845620425671323481777987033198037354479964153019269625655754108463960588809161283242855271754748438407357593399975056486184643936113365614911688103138931182166038811305653101145599061410173975322925175447316027039889057959279971308249515173958419646256232354563717929959767775172786581196729680741027888159278739271943627809507059968643712128483034671232765337748211381821357911030828708153402346713647812887139360320623350854921437502377956631467007313314729074648452219768016203400850085370356627619975285926018538643245737011874503641529444952302966510052412509718671891922258570313527888557285095016452352965073230836454736768109907545899523692856547784258024117446513552002956076858097709757841982026380926801772365271701271890325548472472644789283485954664795899484300633188127921020502632594071538007611887121889473423081322782650741013334437145020070669397974512189293199569707367489826889434972139728052154364640064499823092676356571400574942685815759084141895606871996178051423287155275787386340685924318729766830520495992085648027731220368741858507727136556496619176713181787004351357292633292417432599432722446832665387664557245627247498956132317631811228315372270428642528446635811372948125333450120270198492993922207923561086382546986032288447389477712486628942464032244125592242685386467557750307882341190537952471447964893114020506903210502436356889272974161585116457139053651514385180995290752009017691381754358778063335959266956831768285183116398500834990456060705972061521836021985460420880599812819926056389822056455311342073985359143649812152633698077517861599401418688804496352326925923983501569935780258339534244655714388459975671528052337078130807925336371153177827888901446540865402263566933908304931762734178689038170004061028900187038302480780753088602293829822998948695581586271166734408599857761450121864652839127597400205597583027742247824190304080913424772031540535091591829136921768054797638526328283956517310460503026862687549702115460964099936728497349944758458764803058382120592394933842147196748620469760588476008543416890456500139320727934795147164330938194674731358956864446972079907642659086472331026258498109319943465550607362539965739335219819028032643449028785928332074161051810554769499350980311121345183998848350433188160024727717438659101220205807424695592362587233525486875720431657701876861717730915998234622401725819991354083116545364680307424754529406844076810715903812043002522672304660667661835388470013068136077391597170665312205506939337894024469765367560965674290603508186797091697806169586254879018368722189692294879173180964680295141985433645135274620617833167262085163892535488654788522142191556355479273255193448850981419076453258209322875989039777721215922121377677526533797772785475866268240525663370326706744620872029163305464244409185705714711808800943750590615932516041464357748800911202939225127858092904223159426377244451269655576079080747896875097229121668324187966496064839996961799175679879708454299926441954009739469803563959350712503417094671106180519313054152521793612403572157661389246457575006617078701911411726666060669729963774675685626824461842653337165272208716297374760523314389397300420639337445478190264241307912172585939162268310791925741215361835515189025443562416138345039053144978717827377784655073815408821473347420409881973215033453398044773026806489250969568890317060330271527627533452847364430525723477834529870066615847413544671101503644991421469452882922460336651886906855103931789990437330717848714445487329986047781694190086662857661890795585924596327414682515153284902831666406765686008958748408523412318070775827893683689735518120149452072844982244392077811619397042873124546071200353757074684802492823459008403891691965168263328302192906695364498813471869284523964907588506640047018258019345293023393818438986072438456410751912498450594127659781742320296705558980005304093516373578112397528316831031106480668248090025627838814440389169370892848154464874375254859949533310705603700696988828361766281427983383397036609202362028592406878302683245275180898690680697039642173196598974385127434432813633352216620055155058429222326478773340350166215604717426324879167553975181002741317740016651370242386017375854250839741741215159904054266937342534680544617408724054377222136667753096339783546846108935637809195276979381893646605752103835057907625256076148534360462266154361335768459851420632083428703166455213499546784637022594319823781173480045105837571286539403435214884798120073030559842479085205054158377773591317787707893789894523554977202797898519911054837984305999419101866769891052118581800551089412799330284113242803133053016146070720065097545309556409975966693287671729763559074738644538888664157384642014812826064258351697365213647627422675162782454137713936080515901696843425313240937412918938318581068101648913020746061671691842147021271237544146388858567728023709929977637860107458599144806645889846501574245727884653081739962170222052034600005372988176977863216200386266742540987100174178384902445784363046518325761078083844839807989909714944110079719715134965766010132613889027733007712704546578173876523442813480420512157884611026317811080438468309199873672692263616430864949904500613964750947567331169516532310421427833640300673708209322979593525572295215827440164707047724600833809936640528059727927139909980582173712066840752711016107840471747887249762466856147249217168372238376806538447095925251868854657096582222563288468265582014163382268750201680032220030409372471747392135031005994273655013368721369964915978697789698954900042943250154720243071842401791941220904416376166445212403493258155386056718840261247035251830598455412009868179945987535374467672040260293533820222313293737268765480468099560501260448619233513425887487730007879402387706380876155769919446838787768409619204362906495636576307959544663528102434924104663733409182001541995525835150734978030319434501321117509042118210644640820036669603868976143132891131828026657536762375004484679783055073364045002683004641055616514590441536066651818890242957958887405316427657170008565658775243249714061548126764861488746399394433889355535830805684194468241805496816706512669849405814993682149954913281564203779396409794530275057013482805274312080282589626574372594110009326433402130458670094979004671096371759168379463146516068550518818231916777890617984623899569868791053082906543201755901936749253904107797617596533405166609941896595693457258911943261030598083715844809295991392461931726288802283513437960268800038452714300741806340534389007367212091810222146550041971355097914101178019469997761154297046738870973173786301010510993425533811794526468747476984503321755775552891585629050260003295519852710122574106364615432914481058572783411364403873114458036902101467987477975407968241031005654481602178132268377476184159504793804284295081833790039756438042500020950068352982873934977754997917511809175315884767394427013516238324034572388937334971184320278399307426622469166255499571707593214098449485659307148642153917601972391703640003628647766368076402796728157699085293243780427768580793914627229645378469072284966792994113774449382066391943129819706845389983134046776042847169472663431235290037754527837884883974368114398387680203360351007237583956485642944896746217511032946526360709076186506905059199526963286830361845708321829390828381561906038772237304364188798641573869550758319401257110102040791827086987369500294698337944814330476961980870681874860597190179046609373941825977895037532905677353108107777725416625290019514354262708963576348506884222965785865700922933738998189915557291779545003405466184447745723351142033352653099655477964287849433712432761067509322988812411167092108475685999825219976216047506509005253248435179371586407648766299279439077960082251866827054575364031144457454188162426285176141322598276150650743720016882590971639960111955352703280984935137042457256334865140268733775123993334216744143939860549685935759554616371904189619282636975878037177928157571681854189021428500030262284078002270777531439241889603952019916205894759644551089979182512558289747316352086102932512688107589845757087854017827804406486675286363668977533354198373109446610321264622447897867595627968874071520874573441160830227531567311570855652686176042947320938415779197874819440899766316125003957613132698348268819755272841630125971607597157768148821223518195055768751371435622912096913365409226864629416524792315658707545381320637515128667220136565377086128504341910780340779335867275140293443475512533273878994355398194497553730189680090838527222096409943323401153686548555007140924214408352402390032473224356118122217104232634722249094530426444762539551758249491823973585297418891896925177496745244424639198272686278225355342824890554628807850185729575059671631574702170288330851373723155642590337948647217235545887464427409510620587718190965510853475940843779719137482628933742775272728953237273315638137622186715155618596624518376578154368821897138909591209830013475082630705195891387051096917317415630351923596158578014410209147798598164456482441431925219246230094717614067414414812317777474850329879363766749653726690693180884077977850577702568817790536905211247688354373969197380960566724975921526081022523204929862804706125785804932571208340502854361722477255538373126816220761936346525099273517589953125528055560925443089529789544293677141515269177681441981262747116872526001417021662133164710178397117352221561184646791059021961712304819901123836458806397929024437405351422321599717731857807661110639147432553009021817335302109965581464294721176608698751932686578559140478536712282320100249067344199980270213433915150434124049841064955998522303154671665327814989480144763570174845891149274557672196644636556778605362545887460978430554287267385820464897614783735251069566220500489373497941043162613914151821345302795368319812567341212866958144121221235951814312074887388809479909324173846019401457339661567202144180184940482209587027404500993651856540234957602505525174035948399015425061875981966326658475855987079320002412907076488161353134837813571217447142342648880273834725461324742170493792251945748314449356121045363630472362821801398531513694090991164380206195704617909432222696026335081924122555895312869022114036024295907137269682086075949700334064384433974459739482004394829412119526620065322565838586901940580859193769421857523987844677111863516923498039695149616881021947667044901737696303082104551027206550875415784701335245135491677287595278580229450616141070387978716001847947374932340929869884579994575939041024069657466257611062295301053739177529542441140543744689122853442860537995768589982767987050611956652596255845215350335851619053054400280991195340020750440301616210010681144772879379019128215940874757238346546845944607177823046281739185687273623144796626525009552238435972535577538158233203148863946459036413936286961275856191046330468699398757560688440693149352654870759478301593223707454536665377175798876392348164676978924708924615241455638152815625654621675634443934540159818545477498278650650047216047633495152784974747203237635210804482983397481925831765350757729243083105739291059396414936944896189557335024011891163785877942427771316792697976125988875955771050752197756430074561571582233350159836391628548815639891598511380843177853389372277115321402962086221801717347470732346386268559509328864748301565714136267665132069607683573295734675026430054950098482596966452334978271080718181230545445308256892330304024894045852510144676251417883940356080763195392215531586940913491738229547547948616730482545629266867767511138491936130077492816398224536361126669290411728588863733165583109434049584932541626462547088785885980670813620870741169965140162361622388133510888167251510659461081314000218015058877365286868253298699949264129618881572615812837731634040462366765829184139260974944679174276623613636119876416855122583917287931962573877812629067351054580255187948007021519761961482300834630871526339348578669667031628652500904355550669468855444342286812631870285299989419110420131910378935547861855707981638382257238212254905856448724686693799890638907996407758539962676996607142881401448522350414337469982690909991686441063770085905515326605258612985913793352050212831698933723482066133568355196155982135118842659015189179845659291346880239019968944943370068885607914534936124227161705154750562582009009992859590174994431459392272731883719239642880016996954333797565538118909121809375358683875538982708203252231721643217634412204213934460630256225567305212333686808403384586218221800287629684663901190427686293344453152857366133836292758788978829809574993127010930739046766684851082066332820026752946084183036044820569604387517617694000877330119510333010310492520170857164411478337644043177578917963510603883699144247687588657411596471126920569756679988848474262352210242128453813588268552960012790387270120844955381937704813788636869120044942276881662500956690932346062234191154497810311660711105204695728023948134867955075410487633643392321627489876617598995722355725422407703866860457476919779073406435539847385985131839066663361552061671015309949825095914124280232803426719604685297326077928272200509720932445506866550580461365762389307803895425608595113120051843827812030222656393136922039828336737622843953360413852390894897059188608638113397556436959094000642422753894145499480651324663403406686415375244451821382624991204560314937523669983212423005932142039283390273355220744672691929588979985762439915280888063892780356127755083062322272479268759054486051587216324932111243598771228807905171818102264427492279261562042795537792082015107147468801140688790393839668462175705690746831272219782767970175181562270915838974130828179594279633147412651151435078938677132278174568067340195581703419085395192190344478467274465990762996062587294627675298514718821306877219740128881195245034280293820851453151749529921081486951545127266499861711899206777372639101511293490838716884448715511402828754741118157057906504254421099298584096037815270581266636208661943581009658239162957927338439875521458832250486026016516167005200568004785544697008444079352429002359342063022178100423788089630318114519679199736007736450384878342139946302971436409845770331461931902632540134795945025707732999723999018625495528711701914935403791736471141403427033481625208488030701189640898828075286771895511318112796059185069637116762137061039889781207507819640112098931385431056396875450708209776662012644203742094016537179294363950303548137168843255844008245203627508342116303206244763178106283591352066799859581562877909500947264204294683439262440553485174313398393994765241272245190172518100455633164949766989931207213222491309220458326816676098354899520727299355894675738871297366207186302145884646281867705296283641098325822648351637832223787427423746038811502464589448400521653374185611201577728526154604395304857599112109896096209564072781250816053601724266343635503792953537398944851602961783146877552730991012041843474214587914390941015544032815716987367385422254075648802987294748693721820433908716914907451395636390358258015601683796564732237633859078867877032547586210874289665182479416549746073111945823806723780741119569125064674284682010595196771372615190272373195053172013058857979450397867197002206672058816541654712978921202685031329995920676705038423292405606039431042704404316969299363626766483216105381066919421216108204459280105222054002092724829159734501190976903044087297130384711350134815828910037915675658925229385856196987338219512154523998168607783377487235640630964955780695519963945106454345879861368176092187943086489262453064518180120281075274478508687412179401755198480705559230597775981147014190767259226878919445107164285542160246132005652551239399772299312745012534055175133325654481400585883937559512696643490024218096744860298856458469227032766238703168542476000380555139424059465592419772138201582053365144617994163355149234551825684864278758727440228835853439105409230540389419891988216888577260875897016513252041781662234959796383522164855024329414683160358138482302988554753184556145333839456924305724447480952713762793619983943415961543792831056671657416821904198076672896351628916865584008134614557441688377593038826042497683490403613288284211894092093322098021003240355569211174939891496708381673188204105488344507614856606784324890123110118970712280890369404575383223795133915430570104340784822446962876303880795712258507084489581980313990733337336680334361074131855335454371210398015191518440656438593394292014383611895776169818708302106611771298605948680409616146072615065542612456780334016472995395824533605533883562831530775739079554691426605311277509702404239052007734003977220053171876795478962590059800724653887235973221500778841823926849414225074308511078597850965580760641544920192326596087912732586189486995040995154127077679304198886124147433271393839150973103625530557030913914992018067050699278565845582680411645831254308354174636199274997729910650161373263570081499892351457218362997702052095983851931730857303695191316147718999845296798103228728855974104296498127418341692721439110297072037575120410005562879330621317916626097175822697531904889675237080480200820984662015601307977083334880667683847233829593202356943225503572231847705897553043371656140678544785079351655444551235036063895490303309639788385471716897693866075760496574788371007467065779920707126175196082951810936574508514759186062031487461815720813673361826868371189169786543677642924122638505345332353537813392783710678576078394792577661786384896681395898033416151688683393985531884722624813305183291694666826855830488166493052874746708368182056782779638315571234456103113510163866287026758237862252889870448738930009848081422140294425926512385227968254185197479365021529925120667538581255508352622862675849341757889979718916167892190970743182454586518064006458553551911998334102865567591467281247128036997369426155301329432476402335599656056487809684396923426426003861393516570012068861135833764264536296756768634036349021358431358068886955454171543087218713920504151241769543895314735688315882840872315413593323461209741807580732356747892202917296684250945204025092053891559031433863838337518923813826528414676888234251621399080157901236301890127889060698717970170131478016882408280563027660092665347331710398195313771506776877789296431714028392035575906424398594552657531927539753181060892533089354417842992869840518379500329434948653922538458215922203892731137498557229853882510799404639732098244686576001439599428123607407450429306424385982134745674482548522406410557992838524317003413407088704152078974580562502184824639722853333199180487521470804078349874478221111359404093438990409072231969470473005060179833000813539968378591468784888326357319582398743020156977640109222774670091033299415812179432149764932332164990707691880831318798038289297993056463851057462016520600261088409997814848997156660191544653781959258846810956303662815111597210345090794742434415614934038310390363593010355081293577019706548455744390614539985764515269832650434694119510963085510803365091554930826705945643473800937017479167592350971266425186100879212397822990486475234876996275656446219225003968202651383902718705424947106872823768403133645242437053198439665400054895869959567124913989902758928615133945076891346546490409425530634966880224956262675848227141061082233004825210056160897541238643364789975293020943085326822933402874334015007049825031522518069952959732077698707357239651925959571208886444225875703198311881220727301979325337851097610872641344184369018978489977070188916306116927939543081524159334732609344360010747903148003240221806666764561200699039096320969105889156889944769966859550054686094911299698343552811843488514034085787366716540154847121748195488194361914290710473813493181724082713803123870084295308340692170403621081249843797269588915643630253124429042316958556644531632535939474595634068828157778429250372678864549977502802508689954733014552561451474852271462759087764598258957539355604699707999493168247861563633650225967473300025045773776626042673324234645766310304712696106689024418725455756228718922454139976189544408023890479922225458366721057975117642126471424492063433041081737284885179739842573739042963970283252508175826800554569453722521210400297905501275856535675081932655397233873533597533413394201681818480106327402614353296067119594140006520132820040583214380957830310878051085946971646359177419335184262452230740210186758187807413715283638581565341585082415465837820204975190966464649954105295990614283318595382193035020157192341817870708273050066301813746584267901695272414726803501941623271484990995501036167635615343396842029485185141165279438958450432214611202938554882991919064110522650837418860285321091317794441345575154228020395357463209472571923384730780255017956366148825937722602024411019511156818200979911524676032073264975279388212353320994816776077877545379470973735076715708946380882928597815579632694255651633489039930912336979330955806641073531732312578499513757324450221390523423085603322599882253972979800847602533002941226608020589971870032703985364374036610007434814602684731827689011452703326230549728336402956793146213481787409803203020715511219700288003214967812071398935096027178199183270095356365963530835650190787746094327062909425289749403339759614897212592086387710046832594432889196748301385101631268735845415055343754780090463900086690953158905804202474829941342196366634916791464728535521459020247082694528602708210516879457174195244455851811131645313911726201842549547493638835473606933268846964092790418408981387422112738004282605390099929672285729835487909473224931632321262450798604810309605812934262958046926577403057645823439244423782862889039914229113451254800336522718360456643209249215516721344963680589015547466948914022442598369787526500119052919732237255646970348655017692122563599007304829895942851970870881643582418048234214319465649721943238985456098912185768341604463049842108904525475313117033363377097262555246249916831255339283669273561075460906503240272665216280199472152772400070964245511760372228375281322655199019064486172121213119239888929250316135614795843108136236588788905949197165581910952236114646809484204902962620711975440717268033864723571808779506378796770235676017094066768045353926367527663578208420344860439733856666955883656292235690347010081048975101556702927518427129292167018304794112846473701599835490916125769902797182192839942369164550547302007956416121815374329576944928020545521404200082592918258181170692078145463617173351661725394434733719562534548399772205973193597782079110179117103576683090955035604159739493887977234019175227152086065910752869122154622460843082425228630053512063298303478427989448840926445889397816356987268419830535773373621215770860137878173066482006365239938622627693264891674047874321962232699867777493580240266921339055091454939911620559052766604554878860820517406868380847267123621389389852297863027467510012130507441752428602935453370937636204349337281399158535762638089674968352680437575248229690466133208442748724507304834189964541498238158505491264638610037466365188437417351437020774524985545526831544620521999386584186816761137064720454770179877932989626875726430645633843179555792297163207727620672168084232379805385461196842789080522756700243418779589946032567484546685814384383077477889827369666120039835258576193982511268744994893555055640108177353854501066303021857112693781346876288796565492356904761340017672831757015518059504359902461032668710074030126872038238433985479377400045231766783755058830258323694358350211597876599855465447676868369375731312746492550805061274375454479366259553622579054666944610296312948057713046187562268837430672897472268030435088878223837913733206184349796995346932230491896740674841935347994497275269434902020626300389369798521511355732216933594764127996171160305368928078884180223318581940045780407901982556287441270200431727561346887906446138417177848742661434903119561886458884465108457175655711954269995752550024493269372410599005969438763047004974870486200946189308571051803455128758472978923710105198808278686384045421150786029691212673399680697563080373549249643173115787884191635913593540983658673214484883629911901727839287406502468681485503781303368722897828863386496744676969601114215511419572814066567227589222884990807288897715386874894547973645286375559831348759155191269425978216323070873443145375678012167622826618192232231986601604914508822722905805108981660970963396044277304629821245542654218100651752475904438742438959048063396591110445643446963053792610181934857473847284413305425804533242551045047940130445104798873512994549371718351970823473946404967193955988881552018277425016114985267995503108417701397226044856490121140355102379820032821931982896477575370236729476559883465817582732880059854534275164005241871636513541790231003452987338930841298095299450779028486149122841784455877617646909571877997365399439466153354491877900865019927493057071793470440903167977661485217360486048786283519356862762125354398416575874925635399052930906819040798020592278391261132879425193262749053684650572789738177426600288896621932750408295316158461852771368635476576596916237381100652087336408635763098512349961274480180433403249774103156376185897655142612495801503310014139276959430179431842012976903988714124443644125358331351851965034474351862779230965719967072129741317998141287084097402006760811289249770182769854008224665859354067588975461368518739850373777103223403361089711934396947728373704577990407012964371550586437989056392559136605525935804702226662495034873450192857343691402803900924156763836106250573261733114361380535536189324629031019213611444392056151877369451889736800037668230449203522801120643430889240532154934319951813473524572522767273725058423697299669442225349558835373077168020856373867758159136742720594834801517559465846429664385149244332082424995114781951758119568652175114783431852480203758527941765677852659293948659644429498178763099651277168285763212845993882054968406270405662129546521321132263091947386389854337765024960449567007706885816345736987329533685050636389370271511601732700374571156618646730336652819384180643709533245938465873438374367642740187845874091719172659668716687332042699009863289041128356928950991529843275226729230500306591884402145631609019858934379299122502008027761854653375879005640273756797434595441202745373315038379119327746997580749140241817212144959664064055526804829649882473829322491467683787101237214980555900887982383798901903993944611171709202159871773468922766600020232065192496014310312751896773108058360747221727865236911956457217577469480521676084340106979207918560811593380239151097594659725337975515145574027503803594803517738255930095506670465744902320082333426021322929430080240728960741617100326765789768193748662649462739362019602741382254300182578654127814888854159308632392141127266517699278758659325480128134669446399870099768140067351570618823343412797520608788635331379931967846347589787217399635695385117742298763544935432274695066654069139632630368418464375517803397246427359179224005784468304247642558752820388443773541403914663372678434534759188142792250007022265007642759538629395655228759682958288794794586910132873832488795149204028533745310058649708942525252683331338609885589936746613540906754803395942801808888427328184176163261419075483864931451580739788223373957107714496860743058138911209036121278881301687239166511042515936357747679248152413764074693165143753155209531567583650054362643361268408200300743889278174190817389012468972055146187051803896932687981507965980612414279529207756123058909627843347157449113184905720302158618371159964027279862225102434422734565905203783299458602059555491438523194273915430281374369329224582115891884409092043917749648749260922121633731704286332825329968914058281671410165086443613293082689767975282382425996021226223836551181172317649688001198528853183227111277722809634665435527898783959889322506755373957429246550210584748325461675466668010883607852544747207041965734839100880640033266284497200484563951455474034242004136251950461776166501791299755571740517320052034673559116507066410906606459757298076884230839043891484145845665428102080707562492227456108222322442272480690133332582811376664797247519613323372620547891104590632916819328696054877120577367301316933722239667128660682444322641916030833347231238883701791525659605978970447465616951107121602435600071767411726037425022393393812988950802821655891883792110390935152135893962605231836512935777897212630925899038442034234606300152803635101563889839674555638631045223281783987684676578518350989555524298832122968554270497122022939129778912991413551240815485358072097248902036272366288941036278304276187891798254001458800893302471551946985248270783788487204767537822574446760625919918504241733589000368134170508515520490888235081396614858850917646441208485780977607247407642662434575438034623532585649391556765675491416413051212783701023405042265113936479780308287579161826382115719645447204822928959262259445981811415189400344818960040958339602477991864742542465284066144505311043521544261943695369815152989598979665790317511783020716976416520949485615749266160487093981344100012125615441234302063272828673444715469314880862197187310047366805278611132064285859471727176025826838200309875382596892176450133724810744252919740463337077363583755296676386391928371879409919978638338259771521361322398416165497581208375413305260649502751315770792055016315931754189933012142711898789230561738416094593970976039552074283100617205591548091932184572185069700523844963838856845305270972594264266615803296736624451074792044052536276259090216441465738494093872170418378565568794968173419585235937434780477299200175722291833198608387180662708288718486839428036835490668717718295632805388100172308043267463602174288664112133788653820283699146106880318130855608920643522665842082333965960584745523571681584678338896173030932963934522215975178957867268588044292439833253690770280486356580479777147245271979511713254845405471707884844768119002100380369510393282276009796186168185653939772251900742115543539770432932912145441049923262006515046443011534427402693022713159909268225862368192017671205566956737943404303105918299555262572304808775705704411596964173210332364068538754969334784625112924251390217944436245046260977235196488539764920965144342424169348552147314334043826021040815209360116018951284104282697871418370722901600263131763929927933118268648340612003337574537335417235640555973392075644701763636492568523119628810843882746416955587771649361329116463395739355235457734300621732853635553929308792984074349881775807730988154269999819701870743629249178671570386036741382590590976350543815582626901991523074507630989528233443805291924335839706296420474025212002415903564051653067510105097886585173184599972327818005169252634620587885284533975766262541417614533198125321215699065674044668162583544673662616216631005486122634981506156596786993481883143767064826307673254982179648958504123796523734316226130151546617199841084575500634339052537011695026743678565958024558811807994620716408280884464832633936105077453115424628168453092776829606743497321266355244761234802161390813782034239253638724014298208506277448161850733461066355806364659833646667888906054653404527641781939183482540573935457122323302327167456187460186325147403425418483563029752289233694738696861008890534228596395946991237139536346737315528054403005087324494299241467123805517548097393734749888675645960552826947425802747695394744244989143633756159015125747698272995904764420163578965034175293043163216232840303949093964238763983103510579278743889618033520035270857549759365675074097243538090798618216745040730504677137492776903801651723974563933767507087184255977190208239962010195161921633360500864459710151658845901408124751661112149151664169164110032338361956893876785661058181247645157629529161609135646668873681676501487629339555792616009458629717010477372984641588215349144347990235526471006839228834386594402350946526968310872478155406461017791812322436010504997837520518199766324390525082598204311681031714530581460623970561013942362337176782080481046828765314466131649543172011810151292836699179151164575594576751205730758168812344981357915106677413230378889278487109967876443924810162325401987724505644275260159698697001851627192167296145482732093506284623073131252491841217605742343861674269178700370032239853663855184509519255549201683709615530373106268541350555421049748706327747984155735891694322389434075179955067322106555738520666692443156133862033981178307268222757830660197656268342092406609105760973760220093744126535975436559319467208980881802253725663625513775830203554856705223747113324518358367875657657058784916507192654438512971552960903432382466568545968598049056094717661609353844692131181678097109262577449058246611834136812467794422102763415805855535034707200986529626195281978451507943891118902971771569480150104597739098035367465908257340898235051290476276550415568546425231788619225192848985838815719393981940710508759208309648639979575280800864071274240811635907719661435168633936317114969052962488231740335287813989347490060756784915744377886967630931091256796919183238542051071701169204004006672718418295348286842416876779216784386940662304782864873395445239345240458202037468226420510535176942093594972022643081863478770405893853496086797604307737530090884630174489803825252698595466726093529165088255583622639308511641131797229075204800550859657433848043676980895219907702088381099868133130366642286629491364205936032412006260929839436902083474422636719683699594763966239316364789767335950061203379600579030403131703347568750850313783203192632402889612962173045493667144546355226310464946311530328284952305781928885517427693736050296574016096184643419382915290337056474776819888991013828521569008993706163264210616409527477358992388741827102631007592947083665135520438999063790496849756998786674449183079675534157942000673746250127220393658849594208966099019010311235035044283984574945160540122357364931993618303146519985269452008998609144891315249666020716045831398644766934509559053847809579197125576946933398704184568309343349569790496620861059318994356423395820031178663257823644656727300441379695107131639238683226032746811967637105325801241309811762188000884994457217227589236584715653739109047884549042255553027746174770683410767605835670800879918445479404708322755131606751132253924157865441389304985994255872716983409457340795150866336735588825914386407770871877544785249577549909740729591336457316187776366763641398824590340202690410896360736574526248150373130725919690514290445600274817097161450662946265848018225539347488331744724274188186272216525796653958009032725258083036334563464109474759956207372969210532752693649489226749833437064194549735156743080583308002200211385400378922406884645356456797927025628378712746538276098468494611915593389935650207096275078455620784193825138107940047151058349000586588175773176524138077881366313083385126277829072420004122952559577273810448551480393936697898083615665614118668995221736427686275740024865748978715168415023611846012674694217777084016499823421214253827209398971386076181496773078850578700975800560662159103222007586817005883225811582952426680739425234022755348487493717897088086769272397520252702248302963250801975719237571499527002154196898362824844597627167225882660022596030398382419072661136615205209180977346521572368704682559993992183540555752825629268152098039868360299525728769750365933500289484601987678507439004604095149917719154310140550609624906495096665892868228360521320817685819605797554690114623081843617628943303518807030525173524252348985283515866544639433704630361827986249614203696901037947450172831718185148279578663717987699684283815436180470153594490806299728956928721232187486993349434670851320595756665827236675044025540884063164817962395703694248560007520788336291520005106351638863227034667522883166645135749155314800334980171462078689907186527631884219272403746406419252000939735827218170940585749392511206982609915895999287703763979236247873140552839623283115970880122168409951345256682241398099518493138573263102590786268562071726174286605944422777571001181047967328866140291801687346126242279022550680961647662648619353543124876168944608238776944205247232110639354341677558831315935311864319206578043551133326587654649654895968739875670199949941289836964325741299505936619827349016355576386691618652188022951952690175711020381635472614548684017361265966580920481481477060564163874334482901739816296696131145821629731675149882363125873316350260357370552050412912387180128534330175024741603530843100690381237730290809834355371021977582934484314001044780945609180753701236321494438359222627340185833977663701340504974671700437722547634325119637794769020976917673937575077256236120167552247260629309517339812388858285888662000358908538173167098780477475124363180376133878931684250401844355488140493587639551853137239499025674618654222342285125515400029095293889003864167684407264365851755213291508012994330526905979737630908284471202307366292374583193312836958881984899819733862760294642759462735564201710260330276890425455019495162144132760476770341844853672950951748601932462083799442942795825901695725863640956157013901561368682364187193343799334828540033888170463607025080544287653858862877091455637355078914444843521947044473336676229388063789474440664360142971552568436808014544949111019090707486350438226616565702843978267068667411769451745700365953193837959585603430024576463950006155032450012375050447773637389911359236063995039093718199690441731199993474812507940367500139523865091091726104680715251942555572111470930927320084136471538661520509319050517570966429018076165317064768062527955800451094421630677178342412376293578268594590412523307998059811069330393250259269096111772543150782754615171766622874450655859126105511458049891995915322492024389302753353700648412188623315718013192872102017877108837818905888730440028871309475665597392318171477802062525938611486350076525373974028554662333347699358823853831657943969263508665355605315730609217104632266417478948021645658311726044369546714651999730398169032536722111739424090528493258558931754817019886145495270747585910232259573253247145837109775979623012147553060585545872897276479557027630735821823019305130987264167276802607864263782518930540356563917285977483273088982036865619641623451501299128711246662747486849317704211813447918989230892022467208834208495361822936484790750825627406876394778713415231810319648749775428784502331449732729489024684751107372987227670499448166309935435344407722344747933260906618372616842112792907259434739439466722356631282115215527437849315468730708281057640022350522068516725374788370580369794927825839044595742731943927432850863492543419043729384350932316267583082389596032190314183840066346516402808068312927085637202514978378965769920156320654268869650991888438619129792661402698540958638704983031254699284154778990291237583300349621834473492238095596765778431744410371476137306326154627452115319592195681237041729673645846876007820635610540219622827550686421138917512183088766468807402807686118309085030523722820885184666228181540623543405260101213435779745781314433805437555162835135225021326689777539462776548399115452766209200854497692714510973614337173329700004457866691847816015215106746600825931956483316872986137325768379013130934178141505072171318146466671192213193032405627992063706645777203582250753362521129082903606269238305856037583454002399858110081975203730271170844967364567677175820265768866153964894283922695987635073699456914554429308823847985635902085872210904530386350349328354402083873338974443089526051278307299821186872155058884771854948546915272162206463095106432922847369244853314919912631118833339808616062022224326921133659510560662218652344787714203833650799262050888471260183707611264675030872345763026984387653831849917970495049673790748556303626815549250086465033084815343976922381378395395900859126502467829813809704927394730717726504360857450225806736185116043754028675477773755284168905109693240905417177395360828140489214050838870344361529923432189597439753130461752862027271856619699668030767746709141554225015159264591146836904762533819019485635068448861369796040870272930052367856562709427547600935670413793060205051874262607000494853130446678214926895760320750698975570420427981160461321154573980360257669716808225870317899089980025211835711921104588413258340668077901163701517009995932573115601035318428742868223752360017994410721567137395604408146877001495248884628144105046587024201527055356255749408975688531599310887278339959763198722473184157199452928872717614891627314173215480018995127471765648522287550970309889591622070040251789688076702679677462542853320135059329155977009585186689483971610603685022852541421475542090411221118360687918646561086289605902195229135062305921044954401307035882267719420340118161784779634658376664563795908036831760501042586931877392223882676126847233552219490191489700569126007032262960646581562661248591327150533728409311126054634562375765209307993133511389229646281997140885496236162162046077513237409453320458580909756023177052754518112741869423909455720684673028245374615160900610081797337911994148102927370085128946261467023530129406701691953712545762429370038847432032983767787739441113830637861883049437950380743372592377737496484663763957493780467352523085958610923696372075817688129427045438257276119574468716199661070781483392243916289721508752933870576468038640265489174296566149896194295647919020446661083267749474235089061496782978204885439154569965103028585211023084523693335495318523825627259878676056462702103229504275998413904735194498538124252553693149859430279031644090234896738608766717353254442785005797829874321027474234153546125469543621545145289361977366723439460073879948556917287539626387541505128326903798317405877719844824376107403198713601116513654757510108389516147928185185271071490562277453485871663416275594246452024055153898133671341386826281998781464950582310772948684269891561199981104197732881566040986682374258255340437566400463831225097425503920497121216688470144277152927469549655270345339618893171691029548735287408883634856698634171508344811656752014478774896816203305542803863528100913850232341786726722323389112487824352325982090733681113209949704232293589328150421828151801371421577706054265935420168441596958194632820149655799828665636235383395636231525050883676669862406919084876404411274595584702264562199025594392820493169552876920184632649795145696092416435244106853856970177149360065518314179848442702744075351925191025028434952355708756554466553131652432595780342451641932093174684105103004442579834340266481535235727696282094721514112885951279185185450920146099080155449474942637057097059575188128960544967925971169818159582732752837816604317571527751293473176299029744888963905385819505292729355598478599306658529701227397139697475376164608465992651960037078903547779570359719582309295666215775222892719861379296776265049594463104000475568092465228891172197219195153927256813786384930197381258792330075553314865693530896516973881200632442170126273252579495334875437404299415746546092528670654300653728951081542614502470291041396679746687695084824294888758787343466993208529807043423929054163454685165172955235377830308215131031082256735989594930630295563102252819482257929355841102837655131514699637358597060337357376200482750421965671339889366164338202285634284794944945457082653338933270356100538337735450342019975821056082145546629247019758093930399220293408732723308363669965480735398949662208105182951295998109273782675154983109739492733149088304019927974211929974348732820008724708881872938066448895490721092184887405196130620644377043996391958496891680322403970065535094781755359856951645132432364543683840300454200733023639505253232365002741853091857582401044700590041048864364345207435697183787753811764380774865015917689380813238237162296427063190391944519718942315934231127347901884889841550165893705763518014877025446113792999758703532933207815241914684157545080526498628747577786953968412320627084060754024130841464082551611538969753378340435961634600630767979291014850962182700325097639062872649264403577875033602249106543747472018129499048079009554422614830811087765313667169254432054238909148463829474466192769661665846139143437795277967191989714483405687008908647858904578656367301536761563052304478718576030249695147839916579549299119600088194869673781599018971398053158238260546759975876358342945693807501499044888799446764085492187192896171899448468502089897399649125950414438943971274192209717615476323070214344597469400329839930067727400401227105715556881021765577960160450051612062174031074683340249806020866295576526620934768239700778873641495426674023618076645304021552630873108160828522268679620453309226847113889985556353797224459145980577645002778730185027502142971559474381320680929551304457827596977867394676820632412684303594207345801432352940635176054347294992569825208707549954182744949368867519108857236547128029353209129371724741817199531789426453880923132837509285016118015412774303738056234550854581428778637911906139321174000618367820726373462076258054296982714342805701174000905872662904082410709208051107320909564370117386448149688835408042347988956772750425562744897227133066022718541272753678978845943001235269690230598287187477189319256969800223925529484888182923584445301704573894445323071597716954222742102393141904277519361238091058638779030782524897589255567637840762734996897987892997558758626240654327375907891169843466237762352369856743892417482095634004162875759590821062519567295610192049981919896268607100915820084417425486670310624972471687929022237182392053870443528791716119249330330959693390406792957904163052701418908849675431342864230472273561216496812619814276893358568180574861432485085085315464313254203825869040752652425177475715950811612758500485456901686651704503076987045860769729140246555023217072498234220915852406106673929101210192627978364734436144439230289244979332481195065806554564292370271641906157867119400401360175455064580432166197639893014707027248660409063765407113027620111568207973964943128800585306066818101141608094283144569350018804015502674764133195109528555380813717227961266496177684235314988269169384652695311515236991707869671629318561125791909320609902291889025648792498530197397212880549051685651079642857170889827047136568330469424866096853079922922264474231580521917388506868893582496803969665377682890733977622908419986540854831976114289814314799588350080328358226836060370644764076542772359473657011604255134255390832320679438010511166487031805921773740290994656688149316829306846361318906007770118294496585271011300789955419140317042880724756945016780941178331301492493373141009081356837422640237081689990408704082007046401190086164816542548471037960413907085641509047344868146631031720251361700527981750091107340676732580045347529172521962413441890364533482270928805423715260468463278183021428458401999843951418811248595460273441447462211556025737593592934217210716744169731817215277676143965381079775735552340625561918035881522318897919805397241947307163491381774279690564906433788179313150750722456436807493851675996699040388085075274043970055574379797025230540888020908122598353015880919510841572570280332972877955971090839268278622954609285182298378017298147344687175485456541575612700875316036867685641773435384938332091853484531893802262317005746472200089134451450675888984952792892051041126518072782497402084942727076358938286756480805425861347496181000863759185082910061501182916880234295247461047521762769310295180012023542211384654514704341952421691497319786526299539431261309644888707685971217399673369675916883429435319389404076820825126569300801499326383938672021348713822216996446374258668646434439221923540249180267383329041738099802843383133540604404200044697202018492329596810033605066785646962554527507286572188864873320192002850999151101222456722183269865912392072298989619029090360115061236932058880861515752119782821764806757102078323594439161188569696262925440113516413190877522475215220462825887401131443568889970244929059384773805779393130416143152074178912867539114819632521524985416432515834222819124320557664684118290537211304771267821262707494529503905634578136988642553229582188050294637436074505919912127769947364247186338580718160651958698192106192031106720728449579981751641655161830869221966880598529900404672601862474374691296876635452580029528557766716725504793588018137595785868802659107915257818923867625790435803120879672764194854734117213900514846975101214002028534502446456892242052224330168457020872361924316778248901015659318675434840238420865792650752373039983815143720564501996324959388546358514758956383354801309517106764348934888881844176744511140177072101866451252067757307303391374880965855233254180692693003883667661638314707633138177200465163723106676279900023964190645804481593861900723486866856491969838487486134248803994955143292575589900906825643934477856220225276637921911983792603033381816859325912608746224714045280506111321579898337828616241482738524370449387814880871042378129976776721248774235297067163654544407960314576319393102641354160416362269233623568925961060268582156077252933275231069222031263123384304752157693055259976814015550057546011759065262660466596567747033387327460947804519492199591796234265847053644648565626322946524167513441287132428322131641987086026845030542542990293105913989605366744204496907556256365168007538192790178828084650646143265731888795109456914675803743536067645675667453714250230217783744485286101500721260355720129943534471198320093214273014624485911698674427613239829850297679504683262701178759371735644810124372502039645768546926499544686793552745565477123969250042330767057730943048135374253353455862622543737084743424995384672191168970040203207001795269309514264010851737924265909049439648434628241084460529732063011408052820781104957174711022630496316190773663673889967643368534378165217849262168808495368579777371813080920129291947293376022484544938896820983758243847238172639953755149968419071114864415924283178029666497505707505332833678044252015701741758490260072977264933732192845181141623788222364254382281599680545475409646504756393048199784937377117596364685819255883474421238512778672204785117099683884127720138583425674353233051881072398854480088888386714255541289442619435792337127702980170872319372845262839955382619969465945031507673681753376800227190009088468464346014798087164412498089569745071698729950225303165163948116032591355420694772655394207283123248328219108797723401855520893712196320340053770649630107181842480739385806173179230043000546689960042250557805895100645600072574654970042634552557317371132159784207104981171734775994594608441176043977341146783685348614426828478248647227153139146569493754999050154231474376669547040007418236832726132319335313796614978595656972180140218352094264112759244915704403555303600082430978177468842168736624523994597977138587520259495118220449537009442291479032214600418088749348163128288861735943223669761113860037725963548218894244370401425600913714773493968071375559649354760635423424899210838748566453110406399735258941477501237506002557469099960809234371266308050964562296596100884747816781393673730639779859316691254143797145409482839139772967086145495888179143626944634005159736008261347655063737254803259394451210058670315847954053377419363902910548296719593018286906455885844129527420528121419905352725563848227323008883256398700928302549307705274012304713966869980775818273507890528099125573709163177734220762172213350516655619188737328214202790413876705550672938562274389094583255573631153396570242268203336796581832789677066892695797396158241496579078135987963741717688781412963933158868375487832031738022562152682103123284993324272127496996774504614118036094770592728622878034934992463466535178788711581024609296547806902500549736315375274152260397006786287281254309156066321947965505662167274762564665298622187880215550824539445661060094859396779903751599414366137750522890125192177426572659723404309495037062419030344962873669025324469333099242444211265446861170809288056603505407421989013890780506714632607395772891509791672334061144607304728347082195280776618674059563533989712954024827187956838004981351158804950656836297756609380995282945241880829336529593816974189674100671853558650567773167017758241329421843553546384674132722829826384694653583749683457777613840819173983007383476723388815169110622864774758803523712508681245596979823634271915468193132947430948193095203697675266844402005889695164710868307537838692223948352538796003825542959065931015026942081607010727011138757719315524970831984611133900112205595544173787128065781432840299399162696196146314793222983472101786884709564912301416586072958331838533539629268970337396047571768394124361028918946041795667139663294461287431574828007166945310716567988802264433473805367321442698962402604820808496872723354385620895080757993501332681298321492676578792784177170329312119651481881782965580236653319996113308364783202294263225183147813663407756296478404270017358399087527523241833332893282492643580022504694600119842606578037224868934197399094701275455191389685702959704202291380364641506480901922713966360647408026412960586745415205242597371288893277838405957483826515781658961081003910362391194434211706048300566519743279205412811193207959365101240626693534860011067154964061205691625396997810166601495087263329345852842556250308989479372356192148526208955660723303981445472948104471320407669795959327210452498576114079029280925076740676021580847473974270251942896782856619418420451993909124389977412913347399248011944183893854753958662594710548290085480154422069248730207360468159318068251616132054538428375806017631525847808425459969592237695175166587997576150444482461355981073983262349775823113929503690443456138778852457356663760863566416757108060270736245835471716619657711260041986649824221346656103666821178642541103103003273541398052060217824763694020854453945310533849866279627136202962318924975814045621266072135996387819881595891519686740942541937361898169774783762928501196720308480245514463738085867623755720560653506406562798904642993096924811607613283414823469234082699574118069825787157584736424552910003990881619218351289915157365207088651880098248614145333257874676256276330456942038958096996894464895967968235724523724979109194451227166988824734751878944413833270981937725795181126333793196142637933489179049608111578025230761636021627077878458328152560418388850707853623590944240810060788274115873707049374721604732332835223825432843677131107938608473601514834599405574953328777492787093326449905930610978804468087794779559648190327520033447441673402905609195910312183582809701223095961086122214804757681678405238093274696918657519956531019340050282226376989277076746771075146563007946407688846029259440684275705224406664978192956462347252674504908088116249843079169692363245680994917836798463235771725696097740813591681472540401469082947148296511988572188223836030580825307577024850123151997769151467407318186136129098015043808133339987319984154004968079522370900431162048841486325893403375582089735952852369467292842254097589329351633436327878415637142733662159792034049495825799891611415757856989948986205084147432023575981268188402814179830876434258577700350924902628235773564907281824606167942214030419507782648159006203395682266280382074005384323918706530458595260192759394014179697731215921456523630558268510733520281599569270061921705443383603696340255577597384204609384118367529926851981849894916736568219088675920861768666977069838441472686523091373008086236926399381022139450473326186378920875276915232792810198163345570790512522146831998298527414267897272248458387577922643203806149191299874831382809106698961300008529092646774231021158949811589670999203809351010776269798549108554972413710207874460137215733887674902719037017665572545615861808229121562777801454961978773636039389973631780320505166831017525082444597852347456742121538626347898696475175437588590377584798668349535620257911205536333558076722198764255211807842434785445966961452414871365569283689357622353620259897528101860532722862712476082388109770446721631862279092013953912407779644321551893930179500371816218616855329488747439083170046433489993480396611170586721289110393045490890250074121010656826118674883714770209480147691166528718806344638099645941469371806565996261087983554973180490684853847374238990364641013929654934929778717399490738907977179274391457962134406372556611708169835471820692729420925554521274007631796054697458905959014918973754547130783864082142477885999175165062387370172603017711955379886783843003676547154816322153906770925633247908486428109401852347165580574550158716882825578624747459192843960434555294930487078876167433480820778433958386770695790563873135983738767458838879867626152446366968984934325976865192496968679331774357070614084295564085268515751901601395631843970389126393681472028002726057082988026143158698280207330881687931741742989336329864309215778291151360663740654740637175728682965170486587682775739033549709859751523474307725635425863358812265603020215604915832484199859660827934795094009684026486304916390708642068870448472963948349315982253724092448097538491541170016533444690516788627990199033857747248414957593098935672167915774830631151597100449817460008259902042320489136457924348577917102606886975351954900475540140593273850418512883932938456508619980098508128764303225117996785330242651765461013676070595261483856874150142508877405074719437922804320262869159400046393929356336364555254630805057355421612480664983990906981032327397618627349574296709278270640135958508493949978548528792850094914514694837229747470106630799183213727118570790666817371202819294915393377221078959498267365197442607972706596495318222921743327213071640775875516408290408288726175428945557191271585095182857822144994014633785431864236927547628183867828407062300529499011550064308155267915412448822871439069853314671968046849745742892492371638681501352171766494060460874205153534927100596073611660523776703980806915198802666719282932146519352422185954584312073124629477938646849790137737052897084980813261342546627613170818479664048412277887537706787521231835922727134317333963559687790869902602918955046930883888173570814413097320395488730287742501934223749980186511869636118872807242325649179401209647898170343965439184834399989042065968835611280544808285116096743368197218046781317955873936308027369856174814273463707861328506880117955147818417932746415992856663237984319954313532126975178857978868294633860448573329718158869683251378759719260945708529101017853699817869407450496831344622832390813200745563583265406042975895357689882780110923089562675780246855665191123637900330662353244998765462084541261682113907568549815223209130147424307146230308548951810045227322249729904011088006884128853764866154372496280151613379753700832928277985104181218550805093301568681965950986787776226361097784695786380711541879105469137805803546215313571066926069523183292639639324013961276485243831037628974682625114507036860006654547456303712001712545546215615971370835854049580279391695976032934833418601785012710671068805340914894583053760964094025397727689210943039702531145562396016108600612902982412920207310477981675966584388994394699413544550409871755234075380378198538382543808524573780466583892449858408441596087633740099649503933010916451170883066177555624920319520487290473046892758051501043157591309119332233119217760789846978271007563740112153374812843690594104208511950315774171520675854725113371755308240857509832980935596662393801070322157932992374744310111501981747131526292211307996636280903590381915300458315222500296788376540277291492841081579736234844941783357384073574488400252995144234703168871689303311466982809486826061950008725197682783601888893352258780561158601556385855097685180393948254950364100163403325166935338099611639260740146029415510724646112015438784562329192399777623462854270116820262944652605739241750767013011735367299441748870455919969007749760233897416402292744637655894636739383743347700894626450101895068696407541907888924840393332382881711989290560633516808520208699971574280284475481786662654574773508248513942813206710909736793214269455709984742344679267232957685864683801107067939014982955213061783866644767405862121765640694665843545780331700532681440950020213625399349566160406248447128481495739832135947305232716786673303730269731637850380278797453501856488173630994047592351568360705871369797894123751509040653024288638495237418988302446290634019363728123002952149745805322182601657652072481922054022952189623279286754225438079524922977885963201072440363553765167070193917699513146753471702160417527623357089100466591099740874495174166697554789707061456338240180076637071271173280725934384126107284081731913778527492976030421933789497483933054815889448741821252308305071939071654339522512846613889693155866587839328586133773831757326494918627471518808708803698551186402416737466995760549960209296996477323546803263138423816481284835317033496815433254526880805759344886348396684447650687760058680513515671390667088040349283814048356562338784398685499642169157092599366807479406937190817212045342213793200314590046597757204976060389886489180166913281438029812771753351085456321268642511968074424382072232802745460445376931330117305897656178407704823876089188080051055609228706241847727256359431895024632407109840773715241113371297232578649726637766227338640571909174630720696214034767609117720133683978644932419154284538429324505768685533123671649873493719765790902779413351809867571303690129937156435035280352543318541761447429876200729321979601439167844410819168527566501533698351925555644473821992848887898618777120532388265287781526042947394634954011293658392235883624899627238324797449182971934155758660870563343179423792754784752348048348183453897734919170066480470979245006196409492214395844977863492083645310358531512202489145837306722706098371138108023740040026863684791011329758183861464357749380340082090306076197912352310286063397307314422906062483240385065565348583478330158467851379696327113384800344731330124404995057554468766549387764474390847260944508619778351425081157684951159254774418869201910190005745183602456954355655551238206691104751747912241516560026939102783227060579659227198519057383140543767229205955464768682244071468467212492149101891878209576143888272143757710780990337035588833586336668575721328900084017417448164416799048422726609091007441728059605716171763903787142836191711553107506521398558241847043150448700987110193068513643082024830759554435555876882824228928934421400009426595498090323186141234969260503299298837139349923149836708378529758784596292093881415148929500849205780991157881748230314247332599234684229321211494192699053482160045477087343703100299986048785629424739979513776996307133598831892625601479414841069838187876856458020652666327009212839900253490190062181710701045061325359020021979029841034830873294352918322991954461209519653454850096623529802410317284361972448731437335718117569482955436427430542117755539023732644825982869859498562010528688667081828639785210346868773446926149485281905320849740267139853362831686181876170003803151238192153186525077450709106193025861772201546011283507891763228293591623908441868364945570783599460237707813594194634052712035487025359204948328926437729669999895132586520684436372055544288605140678679307228117420814646584399590201728131914393323407848095091580311524027188304056506748338527232991455762649430338726430153165831616703101330904433521929571008407332024018111719199940609068198583188107408128649321796150280742910579003864589218895492466235478837983147290682319913950288550482197584964333682558332724305033861898178537053322712050899976855599314990432819200730835703648912162576995261381508421207882713303894717832906203344472446674084630410569037568591638651286506497311935309478246831305129372708368308514903164550404763056865387922315006114168527956021765518835746572589342382335814596213072966436702517931044377246934499918890271724979458431374239349626689322651089148589079053124942218066682463077670387276218609438228137968305467781922350013433705601041441531162574084931499139647633299717208305897931312578381071334571257590689787981645265043369564941936239934871707119258915409424716789883095828212894169364385261808151002993886537067204583426994218189297315168714102544421948619978517065818613838551132165082732085890107312685422830377018748139143370706440821892183324044333327998742342438476302057618246768367804142296319036624828703955276877104535626918769192103770763791956980319725329212751516604783651567798553040752017781302394880817304833588266290663689693348250124687823347286822487175176728944621247921948724841339459434059993376476633492681321784243310222520505587693281389706635985489785948384334677239269170290001705494753383396761810816552355720251310412784542143565582525111834429266273446976313594256806202269050152261739339986027763604414017973128900389866065238972523361611001561041226817237672340219911116303031634112430284350256442534576016674880064171021532064043676697530865861554542371764974063428264176184286148859302307733739647832607569989797768673728057676557796203522186006562436615604776138166263124757925547089651814796653552917842294340030391591304740848759370235335294372195331524888791445232807673523372077928621160005025931461145251177717357187440886687204667197269395730405986966559013037931998517112819175270867537097401185657551754899736400923398303321643181311519861828319799877247630640295751863022104288678949935078868660539677968338186447673023727270555363715240738105326629355782066787308135579180896343682532364098158083502037247624707648459709766672913807864459307277988366477840902763776583145579644879943075435003932240310657747077977590211949831582800006912388652661856238296101479100657839742086260912714080943762030198633315315399263040116531724522981230267747040621191389684898947366111285464206112885908087464943201364929483275954130946499324556148662393994788208525031715673938262963677641153360874620092536214042706367118397446645521058581003002838959941331694077261916594532944407176390966779423898360669537509616324797223401270036495639121571992604191583155725660384163253551252276406447155349503001372456357576553892654049317961693631304686325055886249252098275630737617211754606615212330110461103800578368065377195796306040163520683085913663098876640241210920814540856517228900488399755216433775911050112536839627066934694453613469703572958050384902300389731407933951167429390689218741851074665504029580594681647794522151469690285992711838228954793209483739058954086775212698713846600530105762877981897547030029185480757920990592819818545491667971545772793419316361462834803702981297049880531443588624535879637341459222728883575917479646118184004481823172419104472762990509100638812455179394117935183745808977387946448374033242487242376243238925813261354583238089006746135518274695193130803852045807954835100765429133688698113945826446841023508918369122425984933257204831638927049958680292792009799302685152784607775950265065267923497449520245781150469209133476815502349264392636038290597611782416731453066648442771647453019887094525963540079535078882636734454452891412849764607182604416771377791937127005775727965586113328099224203411117605002881173169759095025523360752709603865860287929308826384435950143007004712005959022182367386114923345181305993320639303134352186340713524812321410213563167863818732260179481766784615973454869089097614127234691193581435971822595387557852430045060760336059092806765429647137165172936957058198797046186742173379443997881422968435457607682520854107676499459750167856239102296410017443752380570266053598968053039090781684460902120446471409048116581246021788268520020738582639158400744456190056900753612483689293142654911364647306519971904160494703845163632175246526754938702973718699479963762170278696977941171726371610599315008574035681485372867247297040100094791235729669683463766232725626758785138689770395764059483833331554406026723413379608417845117814846873760474144299828674054427848752170700986691237179273042269605244137815287345551246033384764007720981349937316277902270673700835797580948819171370561846469135505479416555263458598710537384426054623635454519743227643244159547985718119283062508381551814157274215747748789149537023820371317732966824298092130716031947660744834748725352638252579487509509039883634057612184508068730314122277648073733878186583932285665467040255986858497135708165850740614534378768308691222649753078927348098787256578730286378026561661776567271995195500593603398476114628638661662243115916613509806040080095890005479851312082101607704198749115187256655499014804478845525502321678602131647652765174335906422592057523798983977228634234733412294894928182051238597674238782196905089700457585603614851578425850895890154152064285636298283850563361299048454488267132589754588534168749996400181707581536279255672429280325953651840223519971669133330581361776016999312798096896756337579262634603366208403363024625770648985624089713633881954715631119162027506219669033805105186385289767441370848185177421155246068083836446607860736465510243547494461967878141742098970315754030706341609419070650191866732648700124323998285141680232528368770600418730009477283917609994266468990867022622169529096539020807906451903918797922600219240601758609894593385826836922280526798698876259027523318530094165597671049098697595142829363567555407746334526896988116031487763851294746281263625395727262254276214895650951932886913077638276079132781107462531054738534351189158112968377048258639913689175988464535603570806899208077439361765243281551687955464475956153512640309512246692035809992650102547414300561741566456772893728120105794667063763373226674362811394547888125546656718157942729659436111808503118136090873134606128063656403376370866529269346374635601970616603516298690749269395240267235386093970117888473012416877869029488510491945225220124183459055264283977080791246764752731808676058350712407138724344258652497467977490664424250081129582293345198683623780376237601560536580731803731434328701942055411802530665974423006418268953255337667308231451039945179928659639650617280961423972241056523336632674745986059941598577542660054025482865927149838916552922011590234583468227722158975995935349945394082008928750340702260288655637762921182396677154374697436378574494045220049733728325960833550764806183382164817205371948038857436273879009970299349933248729929880222428728403700181898105808176216118324959935444426387797400169049767201370616382077990534446637923285732935918726752944045681491846956486657592473478855656945209929498736089852453563951639950376781176046667734771392975516678078218160048637262107935482335245763769761304218807993146687688109159488976642224601557742120066352257848042270343053871495234322295366829021141354968727880095466776204163274986122915806327053628468668907135076117914228932070531569443677601691822715159542373190284149173831434781802755703947611646147970213873995053678010629377821128865359613053776418874236807170902471874760653615288806309298686825929426256153295401440136886926944503651523678270896655718643495231106631507011837337138853586740417705719638771992614089913828402231468710233972055824194936837941332217454800647868877172864650743801549983996011726752982551586959675420406774548648324964034271584093794336614643175490267121819223933764021259670147657431667586911192178065864714057600980957924558073536782597758367452522562971502660575549405061296036307764204627440618525639243379786456518781982622732213702598854593823317971226275944054072070781716560859477753546869315022107684159056758043836964827071392258399693478855254940846016454031878631941633525734437547853177925468598695722949980506130446880468731989364109918283456387870292153901313680400718235659166702028597068216673665224318995764848852713471388619461997637225341485911548709765618435209130645984311534969368015047682480089405003408438261413255534191541233798548740126947599607945912315121588811430485665991454702691822270113449194531288388483499691712797450965220323116275638031776639057493687085640228475337433191661522432282867973356624865934635509141710919595472626380027388748548418137161282981177867240994251249137943336321099148170045276189241550080890943683229662297538171113519388159635220142468231780636784343156035013177793579061267278934585814738658535643779509171993886265359866929012377851605531076964704474936730604493891587444634683991998512891997482909718692930370675258967688442746068051628727113269021032224360844696969382739849003655441503951546083984383311864560597275082946206093164061790180251241781830320831609192525567921993824451454883834778082620883792392641382592755155078038746462043290863032874794462198874974381142961156852546561236359338200447837174502919483901442885804448979115981228183838223176612066079694412952943784414554331452841163585548329981106785500562470781243748861010947462371779000866436326833400904438431927923092742085268187237247829802986979488547779935613022693093735114085107094026748784934634820963832044653729122828939481418547957097161634571923581984938473084326436910603402431119935631122170417996729748272931957465433178503199188617321846574323661205308952517641019784571782331365898510970521314658733835012664153065583407758476590934186877464809498683556482774681308692309564929114172768514133214443740921642248018736843262146245600562927379223056358917553966793908418156767509461663673006545829525658906136439031199648101254903240893629952572424875509463429396785360081970943087246975291307932983426422149266699564705451864699863110308326624037237628863137703937996310178805143959551174301017509523779353784114632003063239150362697533245673964113831438159114938124617196533306473871042756563403613304044538547246404038103428133733680550304606023579805510071589716574619407369523553760476924634701036533688896605734742519113917324803207709487694739086166447802238027761596849859969600996445918982885753684178598501620692378006845192298792896413948018722019637234796184629938905344762912572802370715307400143261712573534808976941494277376434941171825423943960070335039475016926806266500664591751610406078593309029996973369017030696286577687788330036979391454769265540824862618374579912088361618306289847970765859484406426330414026187092154957977296000043331664703967922956827398980491381473863534128161182923652693296817733411897061619182308782782782863324090180758805836035688261754486822938878965292853194029887348611631548950977115106768226463515410954089319322273848562350676527147843217336376411773677548384293694905943969806796045551297692404373124494913238736454419215848473512944064368224766183879632795242015222565891835103924435619133216765301400276304897042624169239350898041713903364305859221283936922513808673947404184188791284642512000045559224286138934153042067281715756502781080728746448283821507505410156992694201371206828270763283850394377300625042155396634195402902124767462247351056880700757324903765266557498015014615869235271473322933903220131771234062529658384714175457495832567885936453492532396579311735912692743313523060067284517527411756902860613255815677524622461172242333385079023363278698018659372840363015859324218225937105528201781575416365702800189339745288654559253580827815826305382167998641061867733581403064329639066911998561425587679439443076829751906248871604866671274045026712907605793929559516881372052964953958195393114060780190445726597049711748146850444322589144280717044247838599285805264349065182870526641992238965253623119872687455049356109013161003734119748308291888989968626267747145039006095214652784138210062889588671410598934930887210699520127843335650091933471609114365931447344185584650492577411685472221806591245624643825268234329948911108806002054894286434932833018600168087128620588954351683487035852707382934296436678226169712951091474415139748835464051192531021815169238152889817119664772559566312098819214271699655539938701544300457887897994995571431900298675663816106759296080722971556987447649365289754069818295953851240757229502376997334573334963991177608599636926985406788401120390481170558604879075610368853156944267360715574831412244252687136087479640204034990724774662422910337179883453862207390694937358573472271893449157455018994583215398109785124446050983872308289316741164583418255557920099976734949236983691676763528810472419363418755395621029336691129769431097358821505648018115921338353416706551503174506667216827615050787268667673848608224900949335171259646517549377636210422324658567042075398793926566374919397188886709744328016330061250919073326424954465591853059379506657676527115550283813101213595539193756625058811264096705826346974923618867012696042624106071060108261506705628443690745911231570878455285418529432952326764320844423789060890799661693131075369734721910337037067341597964118055756800971918009104513458590812511384733615923443011439954620421896598303607607070636742944229147814580590177407847674575777371582002867527799797243741539263922236446890330523783079343343546161557794513096025395071559628331119357952356616236637361435944140281875581683478884645009057723929177213348632401879789401813067294885947562718118513175587028693839024559000882877370614771597749535771267557236812237522720578237731918956431127846858419593998172675215240406906031739508034386042090107449801149561601574758992515932280229564860749801791590669961054133796957197702637700806126491389726640025780590589572024407332794833495777489146580301099822584572448454794468806841446872944884085243214791726638247972786838510788819899702347111290769865802978505542885354316502023595801270297407419914890292063504117861342480529769152264148213738021821592313296615500081587768400411390451784450533873680247350631143731177186007642328027517702147980910347951364432165459554061487282298258052201353798622158203224098877806368016024175950675830559986279652422191440247566409777994071876260780279941902171407112737866236249609202581266012719364961185302586330856607169895074914207687606706165028378423235696090282109193332059959037313752549316889241000249660395840914261518173550957581332857103096834522015328078256269064106959497377971083823107516821326052133336284804248764142804518740229192416516138459816354810030219056630444635513610420699663343395281515019688065968272868369493848789926312353893127621034095603996927521905730057802366954757739094360886246859728186296973435191229795246851232623464929004628123624729582280598208518760727782222458284038006131103187709610378600118772312408769065186068747312815944160331130826925720745004885739152558764732170590263150353192295641951660534159652318128554098926382295414778687209399309302957859684906689682622425612454394523684877582495402086157506889099078280684144809349375951198115313888997741863964309560598793164462381233191953122576946163390700316918633947976990354645794813514175644678825205537779639408128453856339071058241867770256615383536674639030028820797118814293040627118138365035207007148294383783112258104697999300140384911646718651375053599498089619662668434874237464682067850552533952763451264186748238512822615811480431234810336312832436629570840888232903486035944601352597069620211818750104510876840048767763402492410991654627305060006812992359559813567980779238417773668201662862789196470744167423413932900000013271042890852051212283203294890908171982241145548659094373611457532417029268003377091559668301973331603399934071217288325840797620730783958277553626299980973293536194424008137783090653836916509526009814381783138974113187678486153030499557803529260248251588029087737674130023331091200301305386438774207360731157088341412699357906624286368879365210107633245444007535685207128580208260314592410557677423175855213432141711413206295708108551023085711925870020891747684395009672353651080021200321586095041988672051887784600738382429591418725574890458055991601819845404631595510537692470336649679358088042442929166600969508260881741148420496530356674131881298980859946976157447551503477962878612376236964872827865206523402713690617277512943911369006015724766842725047423901964448999010226963719401572913786270668027650859837855211506999014523885309103626657786679884517777083939225550483832152862243276725493918422851128750710683917023736137966958557061950626563659799194670119631795550488543120390884742939477426878010825079390747353650150819402332069770002690295115511191337845826396622453086509200880894269512692460634665396014490781460629351018109505195472477335199147096257181025545918520936223396401985343246068007364080261132253453822099303070102345778521649131070361233676185489314089869962034954622452754986579042269669823824021276216583473807183386836875483607201312916564866433438329068852769419282217023021188324481953054720314697054595419127177542378546028490905443802116941811689650286227171263532233241927117003706890237913612391999835934104071924854049713050674979854044261911669752971468085164026504420984629730494139241446024101380535156435542912452686868270800421043986182927901325056427053443202235639803149996209489324188353568336137874625364910237392962599802203634968179056517040825051580287230621628168733294555039331499282101950493668929568709338562263251487072393125596710367192444388863726964941409327737066369554305447251157804987711679243367184142710672219301164391718243089653672432894482794711816915017703232484884551503423714950714045789930526975965149294759206213270785757265113718104309259279174850884062619168740568466551656291276969252048598675470077805623137902890723157686571512106768220745697509386776943371664078904554199575043124822892933316146851343576700939914266973814072468548198803473709345871203074497898957468484845134571537115880968955483707967962113501615326418419389840916859750647067399028114541394007193161442043089020665452514245671743882245101431560385532039379824724982810747633084886879700019516987512147089820777179324238579378925095294156000523816124792299291335549226884264548056989507445846348714966783031797827507367660976088489689376813378130609573743425848589480672279664369354286371838184689260416816813445254828681007681390758264335364954233124804122168089171364268473511986904290527514161860292683051282056359130556366838490249803710127222432371177736927293303943189058841756070546452321174311324300100433386312743351736911431392310340647279152539965173914573461004920505768576752579223699586448603070230973069513608305050549415303117520775415475260019968085550826650312856347937438520532273246115794778950880513374843399930672534998561009280482525363568220964157680766171175565668174661037989184485683384441916279757215279736997811624421444121476734261453293242323826327215673566360503395620328561650303744049378323866203478717629581848133828893988718370564650927157764749766003141842226013645768362552523010851134250542689039991596820555026149039113110997844235391258288345555100494012355777226360298837981336983717095570695442114056407882158120919084332976495409441834321585343091952976538271081375456180163039539086381398729299476221325600203153884296012912058059218204192641861847449475313543099091427132521996398124352871270875775222126506065092078108973919598200506105252154792746273401846599686557691753077108492548022063451000984323034906827110247502342712144745690580327361017536971041474788304802801170394104966953245386995504352695784018466914805296793355854660093343636255054114886479671042271373178631287280196419426893858319920691454417039558129110081439073880409711308365575460071245550198846793510570043962546830953386721909737222697922936060385165111968614040891642665325788686939280530967935256252283903870431055223782974499675871998513312712550664338173843705062259487594438103207342050339810057248137467273859898799012556617863072926148404014574211708072286455240198673561014320221827224475818272995851558355004962665066249649232755431467276742938549312398022842927778703080743268681399596873753724213440698605465930185933182001738961344981251353790236232587236459273638373473504476053172458654562814272242659405501523955672579251920395613364668594874154514119777206581942754034501384817888564870080494254441721266294747338925193805208539155972618268576447996857844143041721068960058557234203357791026080703522572761908871984903087761717223996706588888803124389202992390142060297054132764068617673430032582797058165756590896537537207432088475748443347819336885154574203548493907811005629444274718045413495666983247811402300682858234418162991164652854781780388206353429491381065712829151704650446807817858954850415157132508849655068356240830948263525394516557573539114936274534787743255423668040730492430784212796753359018422716616736874225378560567791447264382216219709601495547664572767673065556251526202349319484184529103451723128153687135366586034994437161676754022467371584163656315404486101165842730751841779155612891152554980984991518364149550286317705229311148513764347259013932559907880029121067230874119146239604732804966340148174152350944726065167502167410221346527339985984996614129083326618329823731810573645671585359162840428771327083778363477797725176897043225409884907481868906745817009523600327052178221656199004562741407789491263805083988998147127166673012675375647054476761352291916145645681838237481693571645647352853255651922771418085614309449666744389490426333086583534688297314745996661271541926775557963269115165059492868436595754874899876151668804273484582575947910192645758164453964758925108890830422103686961096504115309286785608046847638771230988140372611314364660875217827673023635886022723359866364535915243642437636319323657246318252810915855843266941828141790397192877260307805469618566585778579355151323473324516013689170395320393402495187804016326462818615303167102905899612270395436603456752729690486503938269477432051268286812709112382307237773173124839283315077761121417315592530126049474231079026967742782127630087270586151798735332228968261077350150544152864011842247711739297706556556941044012944123151076226873936328934446692071986805267907176056323051851267863503710772514404845007989985788484471887907906796247052111447173514846595680632719130170321240431975755819074873014360963482835757795575923997459032397726710198620685814091046849975940422981323160162584008032916496334241852690252960201973996232374282758915977542099246563982735410229373905274542135381952586123753700724589788305379033575810344514900110071900445194257947250909095918779767617112511746771978331039719647416009872283168827392230088628592234497152662864698735876096984364796954070772976192725844450459387210139221650934418947210318915157067361257999459022153221595056334132279879626160049408917161418894423553164037473133551556872717387559993177970593633691509593267787481321561480117817637681621965833901044278733495442362234046574272508079436229056832394639945538711088574497108088204546912054012695764010477407543489174666534777795035382507091785334349548440143899525273789654074533398322321121169496119975347232267621725504430002417060919526862388992179258035284451410412861628024186639225485386812132010585119602710321719544530877946775710258901222740190376766153429441993156210037698575095475011459786443858319124630572222968666502532380177323642278783061592853354583531755168073700892661321003759457623113291576265598510777622880068977033187804195147242146581389688487811158211767033441468997239548296393286016323509640260615211170931974190982386901431181872377328094258381623266154772330505717997788089259170192946553751560063647371874667400105757293684052040074148308410114302361066871956298834336376572903091606243928200257775012898235504501229309504246800240096144995495072498445896171049937332349002010986602621276795365486731520986736089852609964092419706085737739375073319567990447314982859608742403554341628340799971508166894757668698484095644726795310974541522965884752409688726549236629235482931577665912475356444206472708205256897409868781837176872361843236981155268722643669448396985587647997356133709097685876029535917566254507325762898147234524292651087353193852953351980298266296247771587817580819034761043360802506159419542837014999661563772549057801378259530880155462854752971337090013195518175867293916336598048318080796478246793644767065354150413359830247963635237798637788139291692255023902217937886949525353308121510927527881207820934227642254274297481837320524447620944486893725087074263030070344313229327599951720178889449811451808365106503650693678826206340926173746092326425233900811662867858520035099823122645233299848345086117719216462831122867200283988302458791346148819184390931370936852381881789225512116578462001132780928798392501856991722465822196672902859276941796546586975298793723370170737830680662871516012754906274769159726483472132977365423731857104192940896200545512521559474654867339167090831986133489091904011914468608010913930335186416375003326368695778423652661331940644889794850711798368008680857045767824820629468386330642444267772946659974462983835469547243999835770335081750131707381452389781703847081698004646615507720075097960994950717762203188250580129559692320212844661926350142596002670119789685025074898906335544617575513780456153963330151430822962529820463405440840648576679398984803054027368431774392794985834928018137747258134095602269309393420630110906700536607711155964249160744949621241543638363853226758066236627467682247842602200259570817917751584705266819541809947756496067237874750013576083651978862928912952027915684421683573712360713943355935131757320496207320624009933608063953647926544421753841470345482763558278424520172987931416032252544319344375145198243802409682882993740642487996983761019284968205063992869292614964865145806711460650033600947220355941268204784596618408428197198770781288455567161898947353797236151093890335500764256835973960682746405256966884814178566046017432181066234618797734173202773257789946395800781224171708641910120446313218250899714155413915703085621243437438860841841516798068692697792341528999220439885653846589050527889334570800577901123771632631617759084485772716488651049825267530351814480555175505392129484436217984791778215657223476262384558242653334809108649514936970360026819277566525126484594712203713384695930604581215987893840201944403404290871918252452391469523063836413236484442806480136857661189718629847030218072032954715764378519788791065536012525004722145981139891181324585822571173141839694824463513961628788372235352145688030246696274523863706959616324011622320352534733593997872078503642369869598743734811105727315091828286891826763699959489968957526583189474033822752231443759390663180069704956569943206325249949734380895712898189997528083817190644488269029396480559387692543441015979777484685837032194253053321062590284241661018564980374533615683307933431162195395084023408313855000523053316555270122558164077055635855439751287413598192705304761412479852718992887104585909337163753300867759084208482311581048287975129690310864840515863975929022090986601825503110092467908184326738992717256260152887560823362940689028624384206037200400799315345119118996110984001756367965821977120423219426735232443955797164864152931645654951633391952495215930789377606797100088863135690501234478199362364249250849644068551117108416665970239092672877717890956364097209707189666042525761694530470756811445269945038092174583083766182316655289724049277905359264929071325281786570100401988767230500107547482602801409628386048691531214259301483089039000026219250507137179075904734250560895312236765197903384595475199714187847911414356727980384499873577599824920238616589013952579331246922294492326600859108064456132771243021691638545368874786924623294244879957375551433766970662601862615526234832870287894382205604759203098876539296911370890056582034880288535362630773407953170547523429666377608385475358718351227901604044166863272805910263142385809936731139953350656692572842574099135834303184138937772461392818662947922132528767633917483211263515684379470682945041397443067694670566447453653268391443137399076943328281732226069479966558101803367484933105491708362640006694947981203658014724809360871775990214707105129969067080020168731300597916748044410539884169713465843115374309933081371094053182807253574403570645503028437042190116421224967594167614951508805110804926006465968758466337432630297639183991238241754266559281174393641680513788842428275982652130930686629861430657348382166160339668297075429545960815301427838869599918372376514613312196808730418907495561399248317583124968731636229016572650916119988141523042087152659765237038360329926276205531090651309781106299176260209089000690497118546028795058683108286981606473144187939875823676116740853294862259008847988043680340184595297115892770349446731485159005115869219586785856449036254455208075409997165808761479657919608046675589553051593542867403017199312099176901196843116737598664932381060491175259680260104279175490287788306074428763613336533573834610790059548729110080385237724333282324980184887626757414995552873170987923792328379714241850052285148129102450834669043833487898220501418570829117182188579256499364914830578689389282873653648796249522633823835555972039097838350957490561604770843142706915457043818127203658248399455031073478858693411447891362873336821369396759976515094870328511841316557758139833982701190024819923126336629042301033352627894041599720694819938535943747577189434779557842494075767498785709169169855160878786530352651562575886555955792408301855185793462069693485047501812353079489095851455523786826656783025505551385894550999093419552911806879133809005749580231807636518433559175917482287345332659034193529418062708504931474527709681335764896852328881741022780393381101435954200545852786668481632973494574826686943182073458504753617119451429817648649164247295356880119516552759207018844513581842800802467980096512164178886600045716807010787786980229478046215780196147956422504389497685695093208567347076248434120533624165387937050623709184747807295796772796510673075721442232468000286580978425016699453240125106615451944155816092455930393350549883921920292550225100446959950358109026321110608874553480870233144304720792048830301742493039214409351012017741690602162118099307783605680287045873015019157818293762110176296524313918170862235787171117030630083622254750136048539797442132776684152892737287439353401042712490471185627182728711214440602612702354281577649652088883660923116996791345643041581360258021841041710474275987171982223681094125238641842378120197009117884179233736065571445908537173861813137681269959694327793975358059098366506367971967882811575175244151607290663342033010637217808444071670341030149932519477336063731001256465813588305281307419481461685239782287756936129837806540198380875235044805857407074339896868874875249881478568225882628436806136881845041905155143130961425536555163174102921665062005586420700322768535251546662973109996043868507941792087665339171172396316040983110477054605303214895487744090978467639453025633449143756207468164373379011020796648138060106437403598416344224614415569371120863836400467226362825812002970184788865326624202775777834389676526003831713259442755612533421219261488541905638321351568516546912438698299449619489783441883646342112505069384713251879722430173647014124435629797097691133825518648127033345505930685560263609334776752435143176101626616042460674610232783835191470388357321421314069774941835690466250012550296386485073943326130879642333766939237039634623394086436830866159101783636749785998023932383243344509883540399935306848837086475499900543374923579606341773170340415490920719380147202134093644953335924663300498537494577399807448147563125075530982460913037698365894805869235377345112251670781618218802655717565983212940209940241269804678663781754257738102664548621311519416488036267256910073095472614178092341170758180104023193048455481242352383664390621976741041497453608160744699036874057390579941952095705703587549831596968287090016317541065708853991978773353070099094781082425868801619184194001641363259593820255981403644736871808583559817061695265378375622694470831013207534507879210463870777862600057996803398051164821715663520693860157971234842235715648242803202367784281860339350291151703130170020090288493489113766128112170096161355254908295109758497660878789947756147735259032052081576144746328642758354937304133420055369487179605718248665711075961576640425321717256494345340322506079391829715978529984970750390213625720756444860983945401914389320893975770952557181267090089413388163761061267136100662679958534526322576420036490038363372886784128094072684364275782376330650594188860073024481180669816081142887228958951567508974813612783805053136607122031257693534565222864666499065998909587826564858137057252373621010414957933295946463122264637986282224049078120468500222423693680074124177089031467597271751091174600474172108511229837538854565986941722341705547325012849731440853679310310357343278029565141543825714767120128507087613938810064265727582045314951496201044435085988334624308029624565046016280955453273473626961330219149579103475830754218047492308060450911529571391325274863045200529077646282393429965755480511347677936094055564079204231786847775381737888253906078858855436591506914975699707183265288427028115313415250850333610713839550333703797094839009849699678154478149728817778302559805320206603792800606637698020307256738431751888200302306014241786727373696602351658661470614242749191804488544499542622743208217823637003382326813205439083904132158972622567546600782616208861564580037062834459813308884205438899572631144826442535197173080416053904640208040546997596807624340222324160840142585661839369403704195118695159480695033094621011573870318857684650276449500339459001341354441259991540462365282388397850698391770637423339426244978263726758478196860223478603144695731527638609908631729683234699046093158510218860191818464806742188429564551830809063541708080502116337512709842932516625164949860254238235014310598199563155934297218507671608047200984171294090814470847093457435885491586803861782866561944636528715323882710488060088278193245697780850015685679047882546107349079798780619347367656067099934470201082732517865935630039499862083860161280577119886305545595571066913734717486958683462360099288707486281350345477522984310504265410823359495546884161992993643392446150378451736235316255726493870894917041113641049103689283970521112404273810343708582533659084072203196370869627155317487755747315303046360075403600006112201936295335171712096629075044330326107445895485730486122490193359215491700742596237358528427713762060044455010736386016177660697292144459802228978360401271692404301314121934271505368528482115366302580255621210894443997246942378345352779028948585830083408947565312160385609353724752312011645139513302641350615343898129056697191310302524900480080329967685375498279871207111289839153540089477547971498349950021569235805565300922929888247883168659253196656871616723771611502278805568830848058775078081055954011199772695878823513368919557722814644808546915844362412922056605063994407640670090200353855270993646492662177405594190008202621480130309697983749577303624301966109890354189200362605008913726954895839411886581903781494098580321089034542572692790748886287716931072654595154199521673461608839351091801891624376547312106844058093614216743388565051326809110128077593287743201045810503974716989538725953073733749412618928671596488612270539821316699297516169324035051687325307158958316586711469353996699212304869800925661956628835466956988513793176155814500577587744686515660735352507258782498374885014713505985499472370192389705101181290789604709692148928851833003760958969367141370934915275798408328699270980959782302240028305478721360511128385195243579460020911713765003249174367900730198916357626582702989220529781817655238951092624746914209544171944244741006633167143758462994829493127557394414083480658248978267182812542564211528204649076803776013026806202714686721826161776690983783586646832605400890088638371614096183294407969763410379688517978268922069827491391662405866259585908669214413521590118972321578576755202619509254127739442067418425220058238558556305301743402235742161855354936383981391744359731013027545685190275139879878869659041187008308294015799303131798631252367220781842557298281364413586542647121459512617750999572237604284489472169192819251225347746999986746518051087195616259299477266227410098748795532794032028878449917040398615915379999643296178001139862628349841109885765340174115500846055854598118543557167741061298074074532301283213917336304347887028820879610906780218554367596354723095565491488519359702253335897576603350672747646251657092792390681177309010685991010683568191429059198258736922370445005460697909077686471613305566196762931826735729479700096998917096337959600822526038633639151482635867739130975620917551609791725824292006034473186179893352897023441394977878950795185687130498176660946065671779698755732846048379177802730912231692085533563951958606099017535947838291155527446601304598124624083760736676502822913456419055517546680095798006055109798865454687638803592858033795426567801136705012580249824468733223977410008470163560108828465024167784527278335204600259175499015460199794901694622165296462079315299340796502275025866699611493420108689139146250915015831756271108269938397664239673363314394063633509863900245874993457754691585743867683059548374377441910945598338150158989175178018705185112507039486204666743003335636023126890222921157553121488821462059807452444179469662099427491426348919739957773366067015497030029244495350575813573155813942121033081947886032688579351189338471936893081470642825221375587783248799852061097626797093153535984372263012343526647486503043398552222362758475079423215960269193326875328731397631730270753045391189279838772659494137710844604153492302340387473642884895402472788993526136610847892931205737636092722047167550067982077974845575570229385030282666444210863202075800836813847013614037173177826713402962609267835472744092262123665100260375252267325946113596281361063741053511771495477451464702297913269435265605763854412031210227893676052525228599721225658840766447080706167404870179305068411580798656315999798825245861457039374180933838879101848452092176330868472465613274239427839359022124519672883002769577995733204545313231973986608159906418259988581753320947431874462524764506213634009408486265995009015430435149877644008828632335496903173559706913831038604620801430301246312764606812950095047443528386946612292985280867881703295740684044004322625584726218699204603956689451562875365955130523971521174612664001304406266886111694779724080150512826063371786055928200941861375922770993129853518067216639312136129083567507090614866984693575902941080225006902314724641733735968586485432482774861282841353178382323330716821145135350021626399464990404634257483181500704385121597771983121606557123356235992885115938326668435865669330753623829630239183342563033855867006775553376444829021058610428232153154496688217026710982600083156004761558177447089023750016820432930867077944704456510514467484319249770346355545237503783484181848172902809431149763749617241749670956879682478333234472520489882515549611353661402390726048706425384191983450345372762614874660559391669679380505445477346952443843810996602313888798999518530383049345606717152885599093056135492648716431447814810405669267083994230161932220594059572651336018462988893460203958654148536292968551795082346410644977782641628950851218543593206245380397702593656742722832515201030050763305230477384163700449998238505197440461548274090038105879553025514395105315078709858054792154230698641824532320457155995638601656884655014946982617051662558262488862608952270087690883584588810343770386164328546150670451059148971163499144843655840858804569442372612982170758597963598398824839454816402351076644791637213617910098543379625179401327185316957269022524620225094581495128402474521158351742834643300112998334400591582346594793945815878188632900011694994957610598035735105654586364331208505186283069591759662434372814997509051841873060488326013890255984939444748452680464866310296071042795079166995538336297920643208282143523366434945658611674714479647916117809728345111175745117204732808886591811612750439655199284711901937326739717401011470314024854874890384958080437727715841084508804693961529616621759771295535700029256409100574501846993572062048508246923786593266506945482857186357641796606833999272951467020376899735323533373990378669808430473871997696508605328961753863108588331234984239374562601162421484292361405377888572260734546047557774414846864138941118227833754446201672818051245447395583270553778319341648704177080194085648775940169853786452554503085624284508602113396125729699791644090280783790804089081502895418523784197257750266541789666520551059351957224861496282356666022351309022164581992345521041518750683603804164124072995858757987009284513233308206229775586264643642684358887193082773543657827824820976318651239023208335526126629650187174902214083939204389053331854549445481619791699394185155586961075261142838135649173129182210933799558917379807400570249475760221515206693088758909340851464242430487047297616055413554342049581257566928672394951881217893063835752508296646135742783411120510975890344459850694773050603701051979949876088434617715903888308060423460465543973948520788896819845127267950858958817814266419038355081010488360020102563068018212093012828127235765381409221881305719857277888692601312303404275510089303553474279521283680628359774537803158301296602436361028365906360763427076940844905429138339738754897709292697791775198911735165505921578671135767846300482016836866783947422799721725378142355674418135533156940901516428888442659375009698982896981033760137060044774269178031345030195364902649676680735426874662835294325372933237622360172856331969289532970735104849527496248880510877507276229462324313242827147413726229784420915009887420863800290172190506703803122262859798504015201746289270374365011872812635570992199598052352373100583884448957460895972277539846401859220007939921618004786285261004146002698987540697361415642898539453429223280718640940366006299057184022313671659331170633776549098473947992318751232368293908429959985591459349881196274331003807463822613366624004450174942005485040939276366129072326474658665756223650164519759146054192989911651723167904900828379437491274674010804670971885411913262156635151241905085342143868187228431890281977268168723439038107728608996294037957615801318686583856585511066961441590671800695277915814963347746479340152130955180447426336378274097007807751614043391496005871710296785867787477507661752736683853464729327590406202380897287540662228153386464601744214142072620303403836007293248749693713826656376773956050463307274618612735964325898963147543765368683383066384924864787729551402334466857510619681957974637867594346600086278964929906580719968369309864289660311287189633252734442073394348427686290471358989582683263034850868176296785126706065695488737509356460353676896067175325384662206772568569055681669232063997167450201215084925853485852785563867075866226520037731662563759489380249244403538073349666678367312966035806909842331797516076157959097556026217022695982307553616287420084052287761500679820687137375291471606189046035597522786112426120848791557291289107594903041355231820321978980991723983654731697995109970562246129776977289507546274064113199162280582353683084698178385186173164675289245633474211305583622916695786181903674871527519032871237202221239931946431579872193556184518158501374587436271283675161658840592128482510988323302223927348592372413191381308192484392228997927004235323570190548662031510627261659841628353018904991840629896189694392475244144225136171559545959530229276222926918888347883518689622038324154255614826227308537855556763759893547961052445325581596319085874178643068691350004960082341039780622671723390172983186599343859679261991375663575873423368873568315745514341061875456003684764660866495104423448712329993647015653125039332587386726446462972153827956431788275344086728827037682129941463998667713750715979719283318152532604265295131109281091019123980854623484698671914537989266566311572595043299558388073857884100374638863889796193016624523915984022556437766240259684164360648015194950736789764273810318759486083736412184703721811714445033523989378190340655866809884380633898636262592775548725941651677811509335073171226937379183908641882973683574920479628892159651888143277150009742606283721302148293360956745611572481634904558911259461681336722091992077617460371532834030123721940692341671809826776749904027361121592513890149201447102010734363192004567421946067364116213554585804616904150013360736489426703724943269894997147830437324690366929726156907976270454411141725218616971469439141916574315621750122513402336338311946405272479211813773129034976527537254272873633867560539923299132081390349641760285710299261765823563691778044841968896761200556082969110018322479429687164434518882195762447413957502949542764814129421694513269026134741095801181028630984600363322901072625296006490438757557942903795832097351465325751471386622890934157675252512397552860140726220445889016863040368768394611497397695233728390361496002796079028326618347317708952230372001658126943360492712030248751473710036266272375067388569897463991895053952694913968722500065006867384901288065102122365018179877015093159940795461736128885816405419696295839125454885655356405783321982778026972261437110890719166663519214333177033694115950107715301538637871881211537342032162325776607932650598587367275747570073877426526483959541733371375115587386784247406664227593274837347756841391158843186077869580176937804727951563475071381130675781071162604310873377178989721600193679401297352350490213029689059219499320334768291051533747950902943211490269559976248234197102111232509356425647805976832428827340231775857204819961478331170992084733878573303521807851901922764120932956102354901169047187292922694365764195734182246699045566443228145180037031791496667180268562858959341358337396867471354132885093772640281217515388144971412214663383706189032596669843911331836547503725047388673961617286536886575014570380764853641216326042800514881735431507685564187659587961526427882909530953974832402453365355037145820590690561712351000476227001189448303225785419026013651983912401389930122080422444334117912126367842252590055243469875807378541831516295913448668877276788413238833412998829113616998472847836340491554073802312693813241839863209729551121142293249179560358324001269203199883333879980601716592336639907622696645919548758035006195089056181785860514884267474509396545600997928319423163676071167474209063696272436826062814798044056836031667395318584500454148871550513279455057281018409339480855483599846958859061264098342411376594486713972774270824300130296432506561732206730461554699034526723473887759007611324305844027328101255630571229946365518905395071859383171150529136957168155405050319759974607342506728387036764317067109131216198133671488500098520381508950742476796825957950299139547043124787670933180957747958030728977719503763835670268110628193269600590005559240081387377083119116780842779566582489694840750916531773735344259255474752522681308856230638822211051508670839137181315767930428460391339625430014197068723332996517546373138558438346216501623369681606770381947186139515698265897060180647153737513932270275483726675048441915353096116432163080199117890480937681306342560655625997476371047933557191463227363152505313150406715480196491698032405851343032387970516178869278749583108932042998143047508406769721801577502344465408831445529902625719903511955588646077271741982568285000926762589207644940041797840742249083257252445289531196489633599269685530862534771929945297414096622188035924117149318543041496911792371834151573920624048091746865909945444652674909123379370908676080741366735781301313620369565805773320052799981885595791415533437346191330714058547764417503632111238076668133953998553267764593202207257077216723255648350727370079176912236026712140608894233634591618112755088808816193159089019463705446094694659672136392989887623178722592093273105777248707296691889849287023502387609729777865393276324779100663989329430561306889168509816262073424230832434470836343797497613432080236251829175035722739107470913941182338449688048436162939309762246902952700433784690339600197019010297127991523640180950154521919851030554513453555961413024303132900711328126496600382405873251966290417651657429583114379876197441000647527601879292960137423631666251989288002479155528324121484540558509988066359088642989933578747358994491932350033473189069798163806481376852908626963587510109506816217611575050566193724973567524095681699394345789647330773366116407342314179869811908484424280549824610082084650004253911479692980973226521235097569010509332907244886207984499907046899256551525024610006073458588900315291187129568577489679216180042888750528915931835782725838944477449887546876334632529557226588000117785444336411554925170751511328731292025731950684902646268152428909086690065050351054605602350561880632923514941087902997258363108639957224853162988866951953909687042369222747957704228885151121158444363718672765276309566161658514232135548614317800862688851839694167124340437333041484206249048175903233760177427488616787907331990801526768733110291831527915944015762873313631539844310040904262836268874286589980922996227388806876785232542178291366855963671277092663225373124246031352734249042236813390972198124798262894796115941873596262008070671226483258329817089482173057330788571174857006160159697079885997683106206486917233326015762030894792332034321396984269401875038286351618927088691929570521400701587366586025928899678824952997049384077053527634051834439498812957532213225808995607841492633199379301468223105306042117479123230460483546183362877240171834004042837312847943470821212502573748545701764316164050748252058960104256145666156674244275762089538889198237554356520317275289845078761220809940284253538543187786526713742411425109366588011883250398516554934368306753515000962622711321605506271514361794562922490684986985447905459370026179438242665533323163887646863681622771888966199622403364789822689169537296259920127133774648596332153494321293289739544567550555671861893001509369584537873544354297386399563365119302322529880036640150944011335946314728883104789666076328485141322043833471464128874551214207995689295056447570804630342769745180983956842910926352565037961948861592578179446291961161553597733838775230838929439645194473810148716278304728018691174162464944341722772176969444725410312374657285594085328894162601507405726418367576867932168553194557997098034641118463955576760450123284111238979874672130441473190229798760872153860140598404133879022112951508660583681878417129858086661537946754077682682069052115197529304664223518396048604170632948232009913901913179335116323991927915136273112276213629372306967393697243083841196505593657377119784137657486291931684583054002705574970669454926168918086252476901182873127826929895898317727450907881557475639052778452610129167081079386659130226177683298230356184484666034501853507899863991892408839813225878350752231067602596396019063944382783267541715926842245369215554018730345247874427850542699764462718473642769187461793774462207409598217146860723720820312701229298357096279950935425313472470297392839782244591961887340193089579867212477075570648916223861698031617001512290245348025692103066396563162654275261982923073741829074718619668674910968122099096229785545945934405826069982265032822298666183623576419317653474840791046938085526217867042928954158948818561045251888681717322124720455691334037480057105005749045764189524562160199417682919404991715585641045056718547826981933384870803492282844145389384230243397571955756633215361602194433935626776928640685352213477348466662680571750398647726900055120076783439022702639758789265826728883333195974434799987486876640175859088438121734252456568474926689245684143582363909094348596215924032264132929773259527922016549615898236123335077984771088905388506807765373708514062885576591561448113440984479208121260916507283150318977083090557989010956642700937250601914372853352203242261858899455826142233482345332537201022084923260247333159204750148945494258308353969129983016734417274698185484699302612262239111639026769554740452391390740951588916973332701325719394584091194128057099745693989083494628976220288252458439248291697357769795617666658754997577060573744592261465844250430625426743250895254633166163561659637566078971703841944531123601817108151576304693577749548201385778639429397175172857280029230583157277060899647768383490726357379865457606600150736577890271780299874175258430424368841442397011262133924508738627188427107244021915923501680229112458565216092599722149115606960344397859511329239568944776441278377815460379846692159674099144501873238689471160724244907745392415812060182621590002507467056128924531045801409930112239726447722861738211775337064392140583454622175725066009038614242246643393428965827236795853607017059267751634930982139777235598289657220490851614944359802492153168051280292866603983932178784080773354333563844145022678426916535745188640879185833138605142356856799039652958305930003491570648692586858946655492200633835961969302984627731376596262348458678776346923939341101299855691799141634614355597436717851837073098228706086025064186739151926839726057489789460256578577646442515484706077536130211630188228656196567650066222068960391583954316058191079912837956724739887319163943635473727607959312432055799672016159520729275470161945460171528043399476755522927848450981419465812124870209295800626528292635546604675692233964926878334628128994715134268280335256034193255365202178991025361389662792824735116995381057658949855364846206894722766733907424164539729132664094995714458761959498320765208770373806567704522191000364218976834836495354993020153640705132235237680434308491986476526268762684177541396250926184250478392918445447982229896228733842605497680099730556261598239687269217726693446985923591498690898075049035819770455535618444243242489022951459259084124908235110550306457434123236041377097923620416213638441631609918922709232201573597991398800386680433807704107474014007905077788024433804080417603231549573654652057851925658357785230594330548320907007263636038689727517171963994299834609008690351562565519944581247171382474996303710153646299906749603670091011899046018839314730353456698730913321829662687294041686385168116413032259173153096781616573747830594750081081723686493698857453543150533069393082036115758390272093739378872509615572114606077735699837542414504790614276131761124505303867668536572388730836413405706316223057485282219780337405892330273949019169153301467827849232771480824853629235744629543498875003410109442715577958781008924791689545506871796384212146903022854274300240339687126918940143601364666737193041308650709885598252205919742642290753379869988423233035823476128274027991977439655076084569590737195484403977959315290121108545409487047353613346051914960067202142752991958647336486461347138922322563834706589075467247945823043032026008459495814771113802405489345565810274287767418771703427846797600103147045056777048898432808432077881306559258682393918199849097861541426627104156619138394227699478997530889086640224981699387348922497455514533944268387955938732462778306317425412212888127614407672192253116737708852971919021070658916844477029193926275054199991253024577949635203597650965209729930234452167333347219777007420594281058216076415990282149024388169535835453664955339218229118261909940845378906517013353368513808191662370237861645574903074172447787263379375629588336259580165254538707952162680463589011917441864730490269374187016879947616790867419314441095933505894487444722900837095485873991229288263382309761661780831649430462910525389056676886489529341870247320760125964580483952958611879460424528891579140329304558029613059402187869609401366563101771316231558848606728532207044376911718400537684496129662370218929251054637556783762684646245736982569846437801294809088616217491789523372298398595929444494293063259860157399676248980342817514102007983285751874658786025728018344944770174828899966233377614380190481160196815207944504982072680675171146071885187067981592878307795730299722249171108723082546453141059103386338229132193056532284177687483568149186920912361904596036913383407852322331243434325902347415639455240976407231749596636166056844434561596091334700759065864669500913574557317296302240141987955643654165210032982180405862145531963146718246956260195777030058746166179528792303262682197164462137202396658798884273668699785490676986188746020344083486600598052958789128751362759452261849435409545060470782699973877143360931603621086028828696164928508477924246288532033821155510449797419689021505526122465614427527065114413149406824964000520208997251291913466034636955767034933877231409020630729404915248639928192753085927901003853296607790566589728452383732322101624504966022379747406665204174903277403279988199072985263612068027854411956698515179233352917453604427624672029833009776464922025283383011408285137059728176873850923495566651621497013570571796738256902318709515727636575551004765089778742779038809784054965892640754659967293595781597788286420980724379381168678614356390553357570166277071992605496284163837375236929768452338178365935816479409279340205162807066653444065771552301037750715459937586763440996398721944347730936375253519188352466599388923041370947108319143397814615541203118697331155585739904853551335706033646449294615352512867290923163467142547984408634350982719563491586321907483023154082254098833996386006265570720511608943195138984603587211661629055965146624646180573999841685369007575779279198246508212932609022575626591296289963573629856112957739355127058455718945271732300234282761708079843459839991607400649584202448594950215143958771015856411097368013157164418801465728895085112952790482668906832980037915881553787475827936273652954723571655677260801604924364776635273110731037600132300639677535426808808080067963472121882686796435838243258216223878056285265331125713657499927036219772277194585428135938527730064994241749057563945656646365545966013823614273804981732668952771707198878704068657332641554272518896906631164293669210460324304391896415467589033318640890493221664496354912402407131843638996837633245696237412918344292531801767923653299677484847018805904484996709702957473230973351502856695452449885610811501430314085210427284720286384148750660604387292842003531641268762061338335211126183702633046770658038290003785198403704705771036581561396504622872809601978808747690886172238072841204374597095705820677336825066836396864950388075519091767333645940936698678732319540061077371710083461318837857914870798711007094854328243743144029471190082545845140769126445968528575223644613206725595548864077248017921327967946834262369028181146372643997291027766347007553803316831181659380696307925959622121000711270259407936686861858959908743754145950675224063120117052285432692857727560843984283055771039028135984819345436186011018002378438313441498021005150131793836348459872534801782723957709088077393914144181013730486320489693026728116749988320746683035206624611778242473668250752385737341399359823550993541035016065389973471853591016910320224841751837515966096107161223699981286229695469859207600155874136903690234588748463086477714053119186870880895674328422733036309535040425362578293607570310820278364566261808594784322424307021413272689450463370094675944833270375670357124804722239952597056203779038495122361605084669172461174497216092687282500948986038827911022999178501120644800531780920269656359268132126391238668548824283584904803971131640771364053016260869074080022636065696667860886160422017574008718836595010690438188769368805046477652768009855379500860610499337497413870632665155979988380750775390930927025461648269869232375552126123003162099216657426340650807291477591208427693315335535194338068371233406608645152592200240373966550438134568776367658947199059353535700279529466118798727603257472833558778782884507484162616767358155672651705282296146435392411698919342282401446737440485401940845366018672258659931202326082947255493009724251865684867440876634379132926849514663037818949686432004762424679093699009002554614934431993992653362308392607186700714606622304092042219529527496776642995332992012558178018523827328502750588081775893541883235363089856954209532257511235678084087166594292083216654546071414763668021762816831398283070976970287792567018088887709239258615718147532631707301958024673523888615631710158419604011423644115807370098699720801330926945368507622422346641819594735385142913639100864796694965020964014098448884480212011609010849025395378695136895041502634974454162440958404235955499089587742211892720183296832167257345306517527610140248540938293301055703511201506296666613559682378546448658144522256037022425504279181475772541819817972555120536764643259989723192039653330755855884434255385756488876834885425527845537135796809300600564359601136535309308895432406638976536389448539376929236898668233992643692840944883531247720202911446700380261080709089588187240456535549537863112416968137237945839581720974889026462429557356160860422850506738406099914681575319227755893755384809010031898198564829818988712877671511189056992317842823697939127630352478910202161938591056569148708832133561777755750594106310210579517021318195919320169424294750169035440721131710759598885316880678350374580079059041111030266161700877364579477292693056961146311128364539071045228701214328555364461171151237145631954246395566362764357248055438414814023324172180943705359402277407146773016052686229074359998170890749787547138483289970646991034840385935051791628272452425661285059520229917782388325859129749626726026503075347529635052091096333761893948960394198517827172416556494913451795444375618522160765709007747223107717524085190603601112769464027842392998894691326657424715617504499876111412902019921207189441590571739035229656436879629834404840477400159607075018869330778305883501179158584356687786212611455755395087196887979565982719778981676295232971343202419534062793260138789190671605420697366000641822040312365759751146075161021415435007981608775939872601517471805499030655654228504443380696300939014424441734592234029381592039595611173047546097940688133915382644547895594092426046918301583012714650428450393136155014458129648961383743854513190239402380228273584707513342392460501397425602422633377127611889427587921863975944355039673142539420821861495545622869714950642428780652161793160546706461228285670251215566779857999997347365308584882154629504284243140279469237539485841844476759759380348985622649401159000191529644911572484667403705798243496911077397064445631542528780020133600339042155928642089113396535412358735168190237791751648638137685128634927115968506609336426211024903441905934578916118874647274405915108579793983443542166962746276398714642685690499374601430360159264542015706388076582444204456997221347543573016800494364012757990462643474723982943449039196285305737040809836461786144099461127583109120238639505160708394670041736961500999799697736170787661955129176482677769659452860340589096838885842874183510016721826665475796674024959918513879381000827362690441538105014029632178872274952319445381798599186244379469440117861306649060945987849872002528518436306335171708133448201888876468406172767956194656848476249577947590418112528693790924609378510158117074899988963517522638751857477155801663465749492842591196101333395398143686213778299199776874900242443380543171613427485664439504089944917365280370692782073884604272544834562461554672853881770562243774918098907582549990786135545958138654944306941575082443075394917268868438132122340262125356057204396625464912832915072688891844390967638998386795113826398204751739011650790999550448288492855521897999153653104409330692662577446238702311860272333773429803975227132889020709457064127370388404386500522277020420681672974380256359649618189093858472562977270474674357647147539281274811380261258987261784095428663582043795270922133441972996237935039265998911490377515728222307208620146195911173279693076299038345840869435720100170451674434937451105483081110415578854999611920990826431319049292430220812301791516910851109265364612619401728814435134180082591151299438364084661695823593845307485282503469597329930534070877381185581758114194550641589265510379022387185694558347646254575887649478380286541837600757067760008526148277983528750476460087278768649190065585979574342527059171341994586309009148357602579928944299386284813058928914330366155962208779436042657211181565780161378424574017050148357872741531970663976378838601723602630265349324068327937863124560596213790952595173027902972126174751976051360616937632106594210324760038361170703816352938947824328920413122865704770622766753055850109495133617006963192064769362661382100672374689777672501278524425433983168116233869783668736842326982407568500654426837642186574523240141744364302064061905470059539412670673072948077758964371021082385444795618099163384968728651938288927344643417198603699110045653238813522611316210055250946896917134390305185524507339115781521215040018480274403470705104896300360935684002223551407625694420617770370429629477348770672184141959546890919675030251108704540040433003980850638955264295262996448993964209903388402672649069865033682472570009028945572286818076560255480104117193994257543367850067817968665758790097863260994961305149131063245386098261094289012508943639597569325519379199407021293235406880570010663002214210414861461998379541302143365989215321122082914798393352387403040262612603156414263813974414206918536373587666346088733263865753800064994451925616489842968928674995289197335458452604085902124231848251732913687253767417834203848434094518066830599718111929482189768611131772496517675533588027448519272503728710622780198070329840042680534751666299735747966298177994748052295306439623622228080555134957021198269057461373373925585763327702459505040426651643791527076242317484050748029197361860833085331686953889485423623413635616975587744942872233839424311642661391793501135174871540001870576709285181792493638363255572179536062118103452243641395915960758965576483289916584234169241571013630645273450533293179619761081163369124478643127042540995314799923545327734959526388610576321913041348722215595625350509948785071690098501983739971119515656195191070239296424360555040211318553479914644222359820108232198798218887725120503630784033323949346960584977731475576890938903981743156341596045480601423467589927071917249666046398386091211055559822732591577121966262782359497971750304659268132495391944856473899953921363947955250181949275082359578732222506751872893613686500107677851617674285985350567364941266833189558296000179524639312337671407021676748871429464593785356748023724643194939829770692903311345838636238133969722397227703653522599233799427639128663651283734087026040241085541053063101570205535040109268075944380168801650949501526053833531986226714194234588252139733619324555661545682503007619788525712751047708363660294874852567069247568193731001499578760903730488270413832495277514716423732495419552435730526278429497055076457484792954633050896592668832120455257355079639107540470881177093195319365513851808538770779718328678941576823204633479903683368268828776334640476452553063633044299282043453346329587043588890743948268573819465151320422949590682413459759477967778706570992357982962532162304114528865432634111691388526163279510814865389760201919191741697143643360229242601437019378602154462020607620442837481844221418611748227329692050903303485133487723979226130809631009941100798446283027138008847862264111256472954720593774333379825529859688825129448094182400670347458797918246493749955713113889809914504968042086753683746039882188064468329042663003101537461202862185526396964802293566401662299044449436311470675448020481132194862593614047160611599879541992438357862292545203807123294784083778821215526470652181045838307141151306884732883640103356935473410931037855703527565765107916025583508522064502091991142209670290195678858824504445116833023171067381571968122315931224374191776687037144782166138905508023792676603989343663844708923275760623694001819168812207104346873763569496708211990656879495085061426127842568737198104400132863521767933640187756546684837673253568436176042186817018247212699392496346391030341166831025544789152953918919653130547518863901503908238494637035192987935905474107612911242282396293200812071252718482076439658720726175500155060625124085057335924404375564759330396844431865942359400081652581294322068306746957578324531665378572845258362646573619915648422261257415693954354350718174589014377223646442129794136650491859008898176485706315432617590098981688245570054583516479381121795782987856620712611275899222202654713938616131232277918643268389205739740986037593270471497066851174825658318764951014131551629831739476433709849492814174785767687738323010799776224705022134347904359008643013250586497711557864956213705401221759711014962370536745065981482580788106944241828808781253410610967921937880013380451042710280759196161669618835816777071337605432217877563875725672381635731130512016230140301612678205701896344122278111443409990247150527682217583494561620680151437308551267236994121159800736936002797548446679520753312331984154236006994951842273729515289609614380445341984817389834787212625794209716036878253841163893526872413995953601379587524365444760048015946860265956037227371174586641332298526393831690030893615590105179196534771568562001333603802457185677708307492170059550759315174096923160424405901295536305481843738186222064366552610483706614927331641717494279391573115337427818828209124085507110644562352246345870238476983645280696110082939770428930393371595397757066104813843572563116363786075430421491517557456809397569391963380617150564346776741043101380240150652864464761513825927631483007076861841828259341353805421887521950214558478064204785744044663252636534793618175741592237159348806708516454653163220089893930156768694121378208286574405992194301696739999984798007058046996795701412498226878390650269933564765464756858169365566212734873262076256218170702223410971155685659633856298319378482081200947067963617255736299746767667064836365822698160310003070098881434517267197335210855110103200328577543223603422372985466348915799797012885097965731859405981272958878300737147246389685869807229928926289861262858659060921617103545013839863335506716114092630871127862536052357704335835089830575619185122819432873283941399596922747729509721948662700594054227936031384393020132395445637284487738382397071465310460577413532701516434876458355237936067625554994617984344244339709160296053437700250316217867405609542135383569811686149998073384065672995657388748754998062085856878460438416551659928123217279319025648427089575300178318992565133127981010457018813272018081852366946806134428612833221411002731872829346175701467708097181395292308184553842048514048292849453517000754219554415630476182812306961319166946246247059973189577054818957031645897604188991529914088926149511768064972090670486182750556043478974834358590782236073173823331409618275183682817705991289603982844241277341807549411629382147781085397465739853123978166328468708613778712014067490566213662004662708275338627082397260061909080435891131730306033545653935530904979886163510520962270430886057624175034690613525953633807406458786111883825883963896297120471030521590685557917658193287692009421041926170468269250171064405091347686663443621490857462843287215763470421650652013952848147296684610023991689479347852174801156112629456944429049455655199581837063494467746724741914042691720473528364037072822633311530997570476303481541636143720892411032374167189867705708711242616607067088412527229996346330678560639034849124039144228408347135128574541397521672982620738213434506278699921162553753629398174701332897752583845127379429756023240369205577133430876572547915529428790395480072443054934750011073888134758473138391133511474179394839122807403659690157571562604874351266074650060771763345321127468716127887952302524281301529905918244496891415885142822099956796322908136961304536658179835498050678554019384577134779978471645254477901860602873430565513531263123017972063623989357081358120641957216451581412803344184359309457583181676635458124007389420624418114147847117767365509709552468370211632179346983419785891263986513074693896612314281735943103513897813384673514098446344909892988618015817036167692467514643048825923183618227085163895137478724860270424508209163748067137912763866508380349719817998582221776568794865515093586569990450949981409308929860855118034431704858373420840357788995516903902842517553442858275579900263238200490540242347096866466868361226976024529945098945306447234155042014814849974268490369279763244949177049584228324193822763351400456209168502967324829955678151702212700516375866238014208374559825866522184054880745582757875775708918160348135968596051326661283741035942249737132247041202174393372757082812495499170391413485963071902373531086981628588552206161708317945251218294866471402374177978634661000173516920207120537195381140201893877425153029124333907734084357435963756509444425638062460276241617536807939643656489609172385678950452024183185614197528138292554021686658990963680581228411349297501121389503656746970735851604922734398792977198085568254197131830835855656502827349886254663570029564756393157750223907684338344858986340769361559164839249233005522264120966971488530757365224921693722491901031214772639452981532809601021998362338390464871596918175705930670145200230073325669564885405583604706805802770700097081905098027463584931168599780555711099838437227107217803314977408723492467380267388669094077177464537664298512090298257394815620434277872872896252008114284668371059672393938409263605633241934197319343857057583956363962827634932489503729634122652880109485381374313783130360813562726470493080754806786796996066992661243855042482255313952970914236315402291399210474741878545675375514140282549910844727262516551335957309607005140240658117879902402386598146676875562134721613168889594877065865281932237815797506623910252440970896317142395391163876851757745162063264666779803890697524864940350731991146722762235646403379869015320617554942287717893223902519377046043470413619730136237791121295485640890844040550286064192848466617088664095018777892767799714008382962220911201074961966791949121423374403295813465161538181167347821075638080312603577866248448084495458618475562537403128754458670475376656748601240432901866185442291408995939741734110263711551497424475579128613960499175121312683837790160556415156433738186057417145153855299730528450898305948784116601726552441995438226918485606575101524314749156470224229494438331027086284633835782375933951508328631706541939590132624537452079723973486505527880995230915602224320058298198122316538112308692495473094643230104793865307015211007498692725195267796732210382583229373166333148692777976488907905870288960176780947926296522796268438496944223403466689317441774023229086622583641982500868609227703653326271659396533515653931732462913192806959121901820585922798881443956107278196207174110150176367004483495305059258113794522164474008900597222996546078631417256281440937307634963688270987976537582772709056437232064092666789156884418676602905763087699424369456805214015781711524283097125297789377210449959967917110132688454524339988227812138860001105662092253809610849719407726564335565678940637525839953551787943284339859416797574335526283344051973002768501367918607354709883031401388801414335686701926569332962542692532630527344484564026872701514027741013317941908906126466461630160313873376344629994952377168925350344361462627114176926965659844207943945589073675617073722967325393889083047387617214173649126691279840599819610379523992375835504385604675680067115245082076770373083792878307121725495674689578179122380770354628860572622129743462337435693324303322416758559975114586739727717247753278885535820129383620596087908948725924975385278350714851032650776222284003853894577160736374544997148619506924072631581593985626573527879322733376554391536568702610007123894815568952405402764292246105240893340737098790242048952335118089884302517455103282657043550155911741756810963432344079825037475334231276279820281751602669572383402668787244439039762575919043758996390124098362034428104959830944854209871567878402199667748945273433832395286696757463595075992220024869393159659427923694584812572565393601073307922575060562525845712201016571373631677444392827783969486022255828142678508944516676043736125270451464578376024595145496160805502444798043952342984714055755946225636415906375967252793084634695381004117497958412017596746338402774224439278287214056127551795182721198281725405582455299805460350503622469789953240568553460977590137308591106124605661557278478459677924909808716113465639977701768269508497224361051434928374763376976932465338655081677012691446107549023393188182820007845480686942957466550668251700677659511905140525651255670739747742398794833524877485420660632256192035827789209418156895990803494221835829233629449779487362392088855532808050939684277517232113926578011265852413790208779835195432604667351466881406966696360321184423731558626184037930335317722387311207340260136013969584172994922061436484564514565390267111662575722939827916369070384052462998625531302281984213835178310062004869210694883879402803474896898358631658666523102417126661990530474772157755595582086646947790492582864242892368755126537001600760623543978217268278578295858857475052796019931792909297702081628859276190290861219430372076364735941664261575855619177719542831509573981256707256619827930415119166551792967719761605109843182842713748582233216364053855964845349499595877868014439560776642751672559381148031590278277848318139445082205694742994171865166854080221016282489000389140567068081449885645786273235149413312999534981469128880110454994031353388241327021865324536056559715094128570306142086080089614964345751398255401949556225054546082203347770085350679532446884981468407807928473968507400479529207986747147767030990111862740714207725114408153634049691131387100030325046229915093806987817236914502467270345107480698292726567799548376400099885855440337738733801963774336233026743200485514531097673490300981649085776123524739582250586949300763722188565834335256761556808619060669753609316458667480396307793328660814778686733468239499252517206854283581397039515161393788882819775775575898532425428584530595319425231535650670506119771105136130920082658391293878158614700753889087143848382347419136798579141236163208099106423347902815587278956777965281954425496102627968165667283230454134009971441405356407213405493512759146943990150934326299639757805380604138148343029490525582959051732101690752602306244820724818808337886911556257551436446412647998607169250265380194401070796865034492888120065906698704208989030537075745403293105845366585356578089466186313257490973760310707274413750618079717826981390508572668946364220292575708678136810862455784602696156418360951244939076410290889088769494156453450885978602579934332185703561760517608223479400993395956358562334459164717738702040746060921560906280075952300428427520214208035867079186663635969709774020087644988310150495338585769261230732537535329459778567808639514076608829873430864120067911810610288904283436126233046920618847711750103152054366684151059145180968405913638460610127988787490030640259378935958252045446856153999589936830654510424359394958429993768446306314812851553925215918011290782656967201149361265269963006089281656155983901255126641780500794137518858668039478184138553541912363952872116324594887512636645108225181526834215570064112931497014339125901995455426272525683595556468359216586754622172098828547519726214043873045315534082797121272531862053914486112607831623446304160137455351607218304151984482976468910224897502588522636878055670624227703194439589415524098303451512852219541956905070284435009031946204453018668003627273261875995377582055084232339000409047563865656923866862169604191361921670612747684284507909550609194170023924008826455581934339508759367975636277028308915780356427493909963105154155389982325070196501719346749548226731979592495228581779113049554387720535330471192214103529356735026032489654026714131284763346057234768671895087360613980856579396810141319962980280184261194638640884335072010578005978343240657367756995637403632159766884726974356622132634220146467304551364342376852149887389542854949267459478400533471517623105327710853198109350647389120851377546729034862934171532414838112134330216833039475628773737558833265441172866921680071766041388581851140767646695312548035519955368701121445502931168599624700211672676686260459202005341398399341403186456843385275929138772987877451427783967271874127356782117230092192182303338134209574919465155027623653701417110316967655363580988566003919716578347297501066454080024046956331582307320279875451022303067887457119770044568472662852377815211442394532998309592754535879318907374992715439398537591306465049453377425916619306067141031443565407777204912040361431089514542484556689333744747247097099189322491185131185100865443500840521244556542381190390084619180295954366904046390340050127212477130043774523040754430436448613750875543332778889568728765576383035338791356687379964885269681318067583147242098437975341078164310028136752235614084540416557883265386829057012212304935172191108645948692432800509355324543976597350473649036502161946236357185109570560986471035568522685216450905400922405074770119979767542663589280819534031061162154654044597973443851986477293688382775703785259418838958832160458775743132424202344557372248244465465619896277308752477236764814097307379422945607325692585057261721322432599187600036091966003456430296294671496035237196049343212974507379825703433330186234076138793770725756088884104909440408884068825415340162567310174694296564756681395692526091366734379574834851121059269412046885885848749092259302106902546074847840472971271427555012961119591797051329300150194910454286826167521147431461748209530702247168635802632990015419567457671648812138468640421233698204089607487611221659388359753425036652583778831165319629987362555579620758156623799099060573546989982807957888204486191661584246270018881222397049615250706817436796270853585413496245850803954234556409780639338193200471992412742223068885978444814581155202328958084420939529053578231222297518513254990784480261539358632871940255000754351441759131097430905918907842887052726563727632841076561873907594973407618962232416047147085619153422183292215486585262155924534827066856867069921390785858104343226947347729836813982938201897378010975485895365826450776340464390718071830429225201432943662538848365300383333685036421385967598533358547811780908190044973304946155143855571437871021949531306924837416616387639145347228943956895152270404373034018711491776857085944726245754165869653510130237106861005781391194346388793284274245284232733677658203559754573375728095237783735839728168874435533507238688792095196486637954855537263650349498293114527557021634481550343567070536221422650500907915956624657460241256183073723430893077573440820738526256898923595760014586555400249084837111555534372165476692987408705213195227815751237881541896666187952170435990685243411628997673124369167930824382553639769733620229958416772362101214208022499599612316452856628470792933492234546083399380302024564686210153968623054784646964436293251273307410338070845552245124978423102529474825526458445224294138044502341879209869196435660062340266257167653117219117899828945181010308485254955069153174058810357736163287332321247137999612833223201496136658252239742872148166148231261696330845468613931343068648176138364397149024537215580485435717211279899854042161878216507211754365127218577079517287366575249679604641412972307014523373211969007280978338542810562736278756386308154212025917355792912496092559040704526592968467763111175048179534931942508716341991124677695889856518168793916102083617380984286136445698742714494574557245447703485654384002424715027148152268051943633329362142596338098573509965643218017764141840407815298510963508731497854008140456512157105150316061642907048298233392864228002226816436466874634124359669713050418433848812695308993699604576567691744721859239207269527627931800733794281095733657603604060662194626701158348829459426408523681265817748365791251793504177398678942541917856199246177233189200291383651336504352446894309872780294031158411006065258561095233605535576912424979067083593903044841670791615179229110447205824149017979753344623322219880805943062257958376383513310803383265570166575436904641738911545351164705518194402695077563446310424664058391777523886939672679181676955023611182326037756247799317453689682327559299115786557561472697777408170951887288834211578282653873861614145962813295143660917139455482150668682307218309504304363395274576473613302868821270181000098941953361641324089451799951082850671624788861505209597110220465382375910508563850141272696330025298579729050094681976912960342610247971384431675143225897638419725144450993467804464367920446656258168838154980564937288909127273609517283631403619323194834258430010853036029835656126605948978894286570499392791335090256680702495650740462817004103518753339626342791653739933989513261126276791392874761845349090948834491814883846789262200930678412559338449245059360777940239432663316678928123387827551519715699061491452810505936520260290800474061488708476077069447703560210757208674589685382105958681555934152841723132911722559962528837166663191632657454539104656859699430262198297351920254413561922197781428978928795385320024965789212887245012852059949163268953779152965928899272181472708869556128274211103128190288686016905114097523412076857848197220394061227996111213165272562919287067405165442811902203420509923650772766279139982303091146387714576470413886922474330935983413055187273618059305310660083843264959524402892876923160736080724302578255445938104872402065695836557265975598674338965159030952604915368046630844462298225698390720799354299472362317679132628354910870404500133583867519016641206846661469159407294335852261414006736856694378600246855641593974156920947288987769378242572183448156164135362159915832614915187152993839462988366136159626120662411718751996138262866930441702725772470255186254807114524791298028606426896855596674436540794112688034089206537433676009570324188584071808036606281443568567814499977213280297527425406126401764405964202073485181311099753699028858127749981609957948109400031106407023276203346822548780671338792231421127097793387629323203765822447230037891156178764900045886750532223410331569586529663650777790543663393138779401344648443098862934027499689864807469447409509561663353398339390518930738186144366042173188140011663067297382296746702857764236286482086337507291833623523901492874000003268883140190458194439889842123624308332111431970729691491221465347882528485936940343518032443456230244946731644004936900419613632369723330354697480525567786321048253305344574883036662107144095211330069427899176196056356696670691694913512552792982393673434846810742416032594358271009928119864997205265615427682563697237336810873563208749250088255335782886103760710810119148375998578394365092349864142376386687006411522527945679479411108083856324675071785167625036438062961450649176396099096573999900955527387097962429930883752904860492824001819540972203679806187673326253460485698260961405004187554139668020858656165975242960697314569536172703992895774891329939877391401339188943966292464109912961292403611560372280253458291073127130304784776019872144141106930712289568185457198837338902079184914323123969513523452429057231529873334678565357806638030138344708130975867844206822000810796237854610089978935111975357151516589782602128289349481075978919292912401132955510789578568093763386995743006239566274111480922579558845481980403635866531367557355059766647327762790995035422854589912981069578933857687296325430523755169685741567854683713599434077330438845491609143900671841556907083734612559257388219001079258142551525593002551101643856161032997159271590336237414979924715582348479743802331192011479156184564594703414895604201500435390112905538540847019626202785336636377458826659626275829422885575900038295067133704320950541785939140635440676887373616204532495411305369226919498228562619995616762169890684299846976560466053413918166005759723643537528159175851983691965199199609269207876525772555821951124036596737279476670289814370700791999568174468776373862333894731820402842870218055304394257048179468570835234858096259091073894313014998844469648891820434680211116247609271468909443067016157553384110509670967095256874302218189884770421716588818505044498965295611591340253659710371778088647651077931034179382700086978235361970903520325727235029315829409626028606509786397396507111834203760337898734001761079379293088660225703693498620019961866842886344542978656737982706303122864676689408143477622665289035881017987298261600263613250960381483489861808045310717801274118308728387586771840664507888160069195126700950456427368738251791939929918119281346562786358404330724535007392249187378213413088034111408857738129345705743019168780453610329268755623434301544189687796530405393885346334200008653760089218248697703520126180973905662657303092844389956722588184363679541259204814339948437292953956685446309925678643908968429264853387696858496201701663020695529974094147336340587567260446608099978560331491863556992160669476955098469718611620037023203661971097263134791965225940667403037555114488797194929581431429128319580418750401731961957808814001186153121975230182168035098181626751733777507999640084687863327968949201786880897815820209032397351660940617055281696843257832271243573087404391198588203572972377592269282724533874653340057699480917377653244130137660839517834296485234006310040737950275743213045458905948969155971509523514909937465906973126586243582514452645055688791772438493353831165438353930781730352404494912268206051992206141705693674280303303533826695786766432506020104515859579370660657402811714994155845271732576122086981051770151762166696285613958171965184639263169882919821126143004441762227688433872026723543874145837414029539435837179880570684254562721758021207087703050964873708982114578436344173187306747291451084542648302550675780462643993894081896779121763720815471991838151535291062560826027891580107396226252859221771466195788487319713238768449659331379087376664199092286412896028795651214357644220215080017706715083154282554758686786456157211664749559029743415687606585459704125563978894155383817180462618022960491570260016603699768615238320950103009831094725517179646496910830674462831058067935606685210808994702887088964882624985400991004237516624461789537378665570426271784912510754954971608041110771726059626319579459809125397458045085964219865505418285154840021900347781716825304583935792650988113703283241290738015295479147702780154756140971936663372796493040225410425734358041785606621142262780821908085801771198998100375821537276093503795626013880516764512360923129494686438813687601435628920971106139942602886671234610737572313001892461227133768962617205221606415834811276545323983079377992260457879121824525377207941623023678334655028822105478841939151539921101977543910715828307802786409719555727685360248802387764540714438480463446884772822262400794195825622400997533248575926594269115333004731734902747177080779767413245877453345667176522375770148610814887941525498627789542958510025888219953474750097823286283872666312433203177977023968875299131943327882980230962784560770690710199577050542022599246481716896410117060953469860143022965111635671160385730170278449176135126854839907381945173939837047639854890211269604091097847145725819761767869945074927639478193683793653323893114666527340106409464237200968672675246106149680004671057942696176463037268021111144834710046904154324675321845864223407050499802377650907243868342710449542613754213913397381819096481813051538382715343853657807084156864014062449755719144768993266295071468397158089195256400822348479538225605965721295519868732550761852877999242315013157510356032798254807355292631881950738285838486530235227206287968971313360367870218944285714221835679124275360265860282555102138285345331776472443885857853744234181819339004897109403632209243067869463282991150989065470893075193406234845985542920148471288376320309254219824096406299536935966237151473852451478709516938688192258090107079446737501365942042910818058880363819291593320760536317811971809823313562632537959725542829769288456222761073635939245650984569916498263711001137359913894480638721712222920607463623043703564843129968528757790036197374348490834507519105556691785236030026097755269400802886150431856488350305571829898003915823547220712290990590771007025981294179060614495515950889410553702270006607054454756805289884986299695934567812183064597863118683574823393904763513552042357166408686688818973295301875072334715420249588475109441615599376117532169517141802293863758149139136435665990359922479937877165143721864460103214809932434431157714141101775433136134248869831978799093825825973939592751313720601789325403771926039133208629807425214722701616952567187752415269673529410676445309137756662923338102657267052350833554868257279264649070459789756713347978114093228604241569803770737015035464942407156973467330997183798646887282090112030442302442861631259216130552995322953929600666790614285864787424484957151922980140686532846272850418624130382620704461066811289864922659210605070149011865190320787545025378289751408053677845830993182198051180633259281053214303251936502849399619267861608349708309127909667500236531652051419134615944225426987203709944410100588597994490948109625018259885262478398353242746747703269946662008243261840689283897691564160515917417405853488295237851996815327337167313650169025680290004197317946434237887820794399676752040214473561772717781257786591295986193218506904829254388311298482121040720187568184878546681374552225887379300326655617861643965632793209427617134470066490785294953577697452744221089717879830087493114846185695205895186697494476306698360485487963981975665045300676584912954313328146387209210190748494321278602118642292259923018898174616839784804185187756150871560754205310780786357463716576753100709003496207019560750468654373068721744672556003393756531651019728113848022944801165675291142703563613541450114671597605863625211293620776543225156623805364757150024089205135651305053384390831183574266201250761381638847115061341594598946844752129668172383946541943342891368064910935536767490433044727419425895155537260256358084855791397302913334844415105390605457124957982672960053623309773555366773647720320245472276007057021639778980159906309391016487058277909111995070106630843655452902704413213922977013846573468798320347340744696870003760422967850361765962248665283391428211379179109993059489972540233206452609047402757790963766891751507926885874985491727022735652154324387220102645129036792332537871231139540143012732703605402777390531415463579418961764649798792063105582490207966797291152034855293646892032969489194452501516157389552088360854506904781896999971994219464559791184640968741188566228119541944740524987742803651207340673629606957114604869798864822811007663951304289221263111871625857842831460554182013094397877990455372034373028415476965186649203518188407178674985707318686416080663847929584759757951676097806580445748264917475514010045476512051934698553513149661798247364686986251464031464295478102104373753735837992170898055861305768419903718504513601051916600532481398981834057035311211456250960974179155029176987301368343695618199026546177881999194412281057137841027072705483111177003889548384645572248740270608028358957720323772637391158954840820857270924695198911678348176563590577078181127441195402414075916450317690465678937016800996795591788154388375674893369019809060098354864055490188252570279100765630237520481626048352332291839389628401774214262826783945163397683599389414871087000022414596289424981408852714466885964362873372113075108993163808195881381132883054824293525108683080337191295381259339955410521436187585102919780000969522767193479406503728737304105352943252146172675353556950334640094710374191400576944866482413662354787175925607603517604587056230014206233791792320235095013409531752245266263386493108332399686371261060455448869461321561055982110398432849750535522958804896263646263863772815143485179964316616127305809083582217946070398080282785239255297686811315231669157322044287584740510992476740558618972972624150050882854744475162022385820955620768266437238187017283588094793066957441980580439832600092667261303536515438301645018586551105154482473931311004645837568787533397051915887646080441617709895791099906231676862774390999967366924211895107111591931229626011764935194640917209410161654726481776330323076078581252168993791921711131220584726640323446638247165429478422809456720845729540671722148573934284387905195194024202920341977482027929639677146237839241147059939095316717599361933547872410199255441653051789139858371660573023965661063219507103268862151112387098345301236906257623768655635804938617321099440477636797519925957907500512163790189538913269257793710874402604561319072159519386169143381304421476995745843669758733224418275189248346791593003623034921242793029214756375429893798618368091298554856378091706080015349728391851046169272153232487296725708728521631359238947679354679334190158671059718617331626580525086521821174626502809571037617388661353516500336893899565391698629494943325421891612508691122558554744020232746344112112131216007134087260419048388101612108321255031018367861073481970371218304395895279411056083140108051584928750768882730339500346922727890613547659164222470874324834965541922722610387869340020940994467277921472868743684339032940007000663197561463553950875785868662576726229114789386426844463731479938884144977874780081922492442044513601214137050134467799788268435386570948413164397231143701421460129698258382691464661192748931742710774316392465731951258164997113296546347142206844657457347325236920224716078506041369343242540684251301395652062198840425414307305217886686803290105008194375802172490394375903780096171912898439825243242580740034644422932052277707755182369467050152787539442087385830794489202516877758352459688479993660124502571632753074359900142840188016822513174826815471896153530754924642506110664350085140077759631735963759766008549295982557396603396296365286496159208727467469985399176634104226606278680000281993548474941455657023477448814927255694836662055899129820259045554589030453806514059179194171603873366967257433140034817375571118917542666195414974976096800640601170275887726571372912236537180427155485838041952534358705217780786995689238729057417446160936656556479186421228839474227739978460406679702850836110974422789114854752640540665295805311777290899873255028080931864615639209295108490851641991677067039248728494465833479660349116431878859076139662682774138776080415404126726858289735360413626964068979866725225684807628726640698384417821542849284248252036315306686416987392319631700608342886817017206643934224388484983092782845906744018337609390330131295029934811223155033992771571558311212240522151522966917062519001856266451413352905524038075187101442988483436221192492643782774446911028496029339984330266326218117455674754864289606541405577625551051672145122082776769729771715015125638894822289829489077678405361965492138172221551196688536898388138049150259415829495403805855819571337144341528549256147496188301986988260371004985345358383773575531260075154693085925586710052915935102764724825431566609743236330808066731103350711500957127003082908858461676262964910966136263097794467660038074758045733119090593286251565401169398806225819141156644277399577212972464444029022979709813915968009920245916572384429623948847942748732999496348483753609778150900200689241511767121273876624985295304662254111861267952796384350297975009723527608856122507122829659888772070346383420112597141449911586641560288881959235164029944740308478418837265252905913226147450103631858608540412125931936717704085331720242169985741931203165196747670570978516400191770757240723839076030448077190367660272932926212479462102365496045284177624412272569765824864609452191853051328486687885598412292340222246160311496812860263012113317880475663096487425430338167106177981009327817971257400736765430410633199244869675982915381427451805119959117596137570874283452209444000551928594440953177881916177040464753538548403080129478029572712579800525022823351631399233748518392828586206098073883641165420387092138394944283870204776178863514297601099744659496515975351523046745894080381329926465015758943197570540548940271391492041804779457109802132336419424400993511024724958964527740145102611010782614724781735729240925717521187836603264081381148196607506401911906369019631125911183470564485905903166975195420666433478735054924267076026926098556580577060434052263079524300870196493700805553688048298400504519373336535190686655670035250321369446781515403296524845450001753418922042756695041681860873509040955884026732088879254947444806480187516778437860179419340611676036589435054867340713341053088557184884114352859931420445733631703980331950865726733336352922483117832245068141723064460115093072380528478149577982302701843684300361100564260061526745253725262926395912232134458004328895596442883462978503431454039141447274020315205700540895239145354945778909755756429567151523468414811882737992096964555385674087105888291796695983568905321156199670959406814143556032473837079530019347684716352062461809444873297926357567682211280963094391827746162329851252795513425252420404396265130599163441714390135714104626636435869993996958949835017329756395822508530381406195893969195841910177920096343290802067483390966247075373780216230652780312607302151753385077299038321550608358299252237871956379836434642369490748053422536094679290753727637618638034833301012919162313808488981356449850440457991804500766175406989355790242556306793171420227501982301564362179646102632474641654595500080602566359325475289696286594404150434174286304383483169523135977861127855885158220474345886935552681606225404805412594207964177547757309486834168195989076649630613426799064520866721122916591882575047399483474776767231134468706001915543728342179458816397431289972593502596842677577001090194086666132238541897626695421071388915622391755217598830499199119750196984192882490230778521522596326477547980183751188950084532358312539106718520061186129319506866950543047979904999988965151479417712712319867892490693485086325609756353193204049978112019770397161195229994970773330066862381365244591793182519819084938545533657587074430443024426577665573513370732945248075121756094535409359316698232484482428066876041648811375865112328652264704376483152414137633474868918060454727936687663506625483423458615597147525068415021628125730127843227697596833138524707298392205392798646380050433760595183958575642321676432259848820263948347818769309010932791720576178833854915359381730457030432028411467066398854472422380686428512914003839019087748939867029915341975091524371272452320503994542418052241980923513435102340723271070506472015157018198646305971961792784277707010941845130994695333909286544403796811438175717030918315757847725404044478760515972958628361941076694676435635770988472636745755190314119888498274451512008440673995145511116433674846510969155199117207648368713333919051586625053674133760617919008647392342576114917490403816351469324928820397505721450569057033107882024544039145507532058262067598303841848056444493010499588514847210254046926592546969028233138258526470011617872622026670937394129251276640418817834651590333606036652608125963812194040875659531345568950965813070609855969235609522331282900696299768273074915385975288675531399611072761710581456787514008337702184089660805894755769545173714467237707011047922589402953846636025181494515797934953967680266049339777182593994782251982444817060451018518548608608461496437388988798993832348310805652158852513335774427116853671244923858650108235977787488292292884496856708234591935042297117468493511993513025661854853673422580397578342737041179101747537931548042229328946053534837533176718789895149438720677196144301036869049805179499835864877227413844601955534554883763916777887410938432014566190646836163339075789121655258080528805934952925253574751394804948857486179163244476404950976146287887327863571427534674442682214096344110579464709472736109211841782953136176549012084597304766405618692774542355843483695335224270389235398167981857850656832008495700322515905478528191237054460503560558523492530091340838665420941289865196324137593846745414749230381306732647652393247454768932108920115539476188733816594212824782638007158984287734069049568410788469810594085651148642502541104862946953415620277928969581067495207475438067619019408469591424136833651359660082981086656966800076602992468271623030036496788736740316505612061860582228066571709071306187076331147387116785754612045082464780590132907245923588125007622039353396950616353477916580045371010412417931073738228798476947424779509328394631923842628863724187672735476602960768923415763746738700128747956861902029263475689987642089239670756919077594537288633014701053078801367337946176440672517799686338248543770703380675957964835336371044788495824582024609562357398469739670985661136876482376260112213713342513460202040140583660252920092301148199678806352679063833167177854968613854000742696694667333511028708425783665543653606691999380991722836873265117491994926591932493497307388747734324547981893144186317083914718280317109075946636635781207663418204273653065677928888092809002710656411392620401647585865891625274668681788913443349972205012138036559253153509896544106786231256658990208690299088238377343718970669054094614879239166039322524768291226012192426092762772318219846983691605128456338252012250172597678503528108947763369263903393647890424838657954915595428566017136574497242537373010429435144715156172986605193991104573604717942960790897369393948032032699438476778441479656363340282100699582051681683355375594283177216895267836065592199053788392717654523739329159097667154305568124321961632311469385230447210365949080333175442186720029728514595710036622591331361903138542004846913438808518686291527640011145935691834915686810671318674282075104879044646362890883209209778443565266667653567948926800580461046168799445203629786063302197233649755468808682915999561153739699723194841259749204792422532732423439170622521039143040984785118413973252609262877645858998995306252789921443011644380912443503412222787375712399148727932198302233616052792572016271769792753060677567058916912904663698787958917500265323838885975783175195351512238700616265944185871582831547477679135947016545338976028840760011541567600175960234901737341413370571904197947843770918796340284324339404844254887112008259729699449115950397538800396458724632605699274167354370811054254303800696787648651982986817059814479254252390844452401290054819842985035305971876790259629054118389346230957839816948245490571078499634947521165367103439684512169082923382711191198614180069188147636643911252415414003244991150647066041532635584195045219679761478399023722072243578852383642184029967902498961095411779403304446259524824936280523694745777345910701958635311840842942757220302259896016031773128249085294755871506177243742249375066101946178094444284705185403732080668480645606720453202896687860867445158964972306687517039106516692859726923119504229943722825478485306814561846109414797917297814068595627578614732330705915477175812552783958334856788368900680368864743330978738585625725873822424411055500776219765320230062592603428598884182197664728210016914829774608794879764466330825768853491962556154967812435128672210504422391021571465623372539348562416519893056306324814053692467547644466721895639360089030421440238150678938696473933100743168129316050843069068859498495953396537447714314412245506247640194976492869258390333188298967144041809278784790561247788478252454842296767147041554308214249796946851232433610597172042488996276774494887624798680343521300565021865530069436367416590950197388607001826030735057647830906987781436986532754594285245546319977195960695854208962427617081291881137733760096443941555114744769821467763963374141478344339404722523742336969310639403228368671954202583690063043293367272487636855065698291295458282181824956991578106314461635893485364401446518708653783435040977014211545330820208467020539942317623253868749196030253360507002370898246855573409576669375776190605889423514557084659743268217300740673167925635370708742145713357121136887198642469421271537363124777716297560614069379002571749312739660538923404467378793983291009930313182459953456676642960318572656463934535046908448630880146246577319855834189723253905953204637546205215738444811405872868242651329515181798620644008367857202111139064804868067159488518030296406008968604541826551624900350354745431819632704380481567622294888805366101905470504931240879677063489272409291869716732954284705057598867958260469319301022250796605227880113871463658951433040119011031899477399634829688025767362383520246473054333052729155443976141075930582567015490819916283532997923355701929681709297859858846945570153445994376616653025123303257932470281507989531463807936703852515642096279753841712366856747456923385512188034336373660927735838338777489310085427878968759197440127170677368747697475860921226695202078131144535855560378573991367320848077233302212009093089530136171983675440440608690589429691746654449278367457436452315571692925692495511322605964992611331299772451688579244275369936569249285469376652002632332248418261128135884435694451305206412886975870782799098436367934241791599662416886702543429767696637142538382674068535956135171279746541422657357352730775724215146541488544224333234660973232755793552723269582206035942650932861394784267372400344367866084000389529095362524494364232938074282474692325690034702665069739076134952826037967347810497570189252061929640998894412150835514487897853532398919742880017198446939959791490031074593685353367817453124581009420011758751155271150664298917482844363671105989329764672199473015809333732440718778201315328466719747756859417163762306343732690604596747139080650690267257373086490582557334550913877203367054456535647190419180288802201429498016145306965717670437751493296119580693949093307585541358123663208037218732884137380506257751213998192352583415653504703828672756748468011680191765555368711504542335659606514364705661302234877252072271077635756895173695750758782242617824610424817221629333953199269102731899150804711252640159834723312056775904734703451876951021394779761068136637418488732203192361398839334272992322648855592215834950698610969832818341278304597058820490582442268685712956328720281567709162597180281924107683930862156667286800145896305264884767700619501752527003759619234890588840201161048280307017159385260697389093054210580942502712392725925540960582203198947031420188068267951066176068948520279079405727924174553279344791067253004958317754774112364558975813134484360665012640653712811178296264272901996729023725233890512447277787537967352330484202971838028650325933266656034182667457186439465214259393401835070524898451415219045664750658293611548590206639093214957956758217477318559102556956048545094399744120288217839501628216613609457522279241780263888812027484931640271585296861596535224530096883120254356031316560169273242399776817810150879354949588713303089920571458694600222423957896634853335362593797136728931897196241614421734716336724036367813246902966151831164561867032013847696130105115119136524257485534056456664798121320159232930969209183984051112153181390338533994694798110934222790169014967123450266876163056068088760689906010496917788028923251598257793481794935475794587039045667454825656380976018446744247153446265812379329469734120558995088004730670203201458327079571396457895856999055730614804088397207393540449616315780423657590659826899300160587850849989784064785577403685307230293139128309113649950237032820213520031751251066357310142056760256203122227928181490058341599852674505852886092271122043027263537684271822565295620028583936522840746012253919555015551763517677932867675930265915635885343852441373027081981302864151746651505794924572346634636917651959920075919581965492872910029211049803012739496969975521939545527405040433184758241676333821134279676882858104351114812213176509877441460207782080680426600655757798751053169113888980441507741587666662476106546979545727572910172084035022377810773237589667326185385327443183639972956299326535727078731599100412076739431555104227202837646386199459989046352509662684710346686891220769645614378242565958744232883549507968027053041424055269507356055872646671955046295493787331311284054494784828202936227349617826199487596658247361904977209028913594443777666261472346090080725226394094714466034943156146533922151704008095530855916850607811049848785868837463438410459394875097081697648357747126268631128248877750335711148342217562280447138554391342650896343695609495108118595608870153248409011962336664811791601379222605532816576878722699479457597165505207658021798548711854572522182820390282492328577911350153808948178020070201114549419129156610268813248051853687046112310815740236919809227239036423420937813694886854502668194603956731421662405370624285196349495713119074692004560269201329659556921894470063523115989029103543924568603494063177769715762326577420657364475229635251001487481764309625581737031689209404448260120423771064612235045807164818685529778244409033283576835549016226412799619684772762342462507762074502125817319099081769043981098936590156920660138583333480781877313267747159859823179874564144881622188774561158805704504827046029846096268284689526587735276757406940428866210204576422545390106960701324446159524551285370544371083580175043937652106060555221833817302764809662738256092147140169274914309911398089008720871311725236042396349931022550785290441740697173175196002117327870592027426375055938257219006478329721053705096843200393579504635724347221577065553552689936762769617079006613975460821418431046728870677789792817101223313650726205480172684859052293844496239069614088800326583093897586990507004318434890009964250228686641229493624638670086982664569547745807699372939448650510219094922320810330736735353949116009515220452248889995225371516913903762533684060425072566964932410172478170352299154943283525879221448007998316131772635848111628725976020415687012705577904627339482151986763223121427826657495415620360178606162534743842079286354881988824914739926004437122520487847039444989922046773584612641990376667848314866748353758314801932376904277785569113579006667780928089204009676905322642416568813316076854191040444442291347050546166357917257969077147328602099823307856956178162768621839534851818314717689304355075452019285829216921568016809859834399763075065865560526040642937328790131591337060321025413385264534947388315366929919320427839510402189459571032466279958741883514191305405749304064016378139942921324023375214500559506642562197845440722600791428423404775418855005874193621789553307300509236028098159140722790734557050311588248579850618761287091263176319281247358745856121953480372234583923855407507895018990813843500603569694422384838520866950228596220271639522310975054770190905893438634175784966697221500214030427285311052295785103445095108023339100377707715902820049008186524381341848890842940887692330272371225838794751533626857347308238700213773713493282876091992128891542909962071615114853436731441548170537753029009324335201604563222477942146030333243467765156307910298263410744280610037151420232259484595041820897643651714267539546698667831575407193158445717315019528241226725641731494788384819192388848042388471396424265342415862275094104012534287927059715797000588416146705866682108899620743584099459644460261249408545682171712222820226036611225231026190679159256598360670799865732376332478752712353437280530744680269450432816009431649945916055970060812761519138180998334442336398125969764563925679304101069484475681831961069753866960521550906217509070396221604656545695464429454387758708829360755685394668867094538427338186895588062489233087516297246702725948514820706299200854352921473380004129122538643226206265477050687749040824395158706995138491950521120163887700536004017549648901534148025085823976573220508580058434892021201319821567412490451446747089945436372437365791727239565638617788499508408104598666233676320474292876284267986503242214153745278026769674105042369912679119750350966380825024387926993056502979274664189079896271485521048288601814651276089087680274280403578881311422402136477951205244068321179694947707995742234395180143485602243580067616424763499441186831677693125578241158301106022583617259175989350738706465043124533679592576212738298646432821878415818379059865839518435102180624633065643421167545987752787350109748816746106052179752987988367900796402000752611601175061499010950900702813402259299314538059834742224031294337636695618976853947130710927148383662722657791586778276802149451187655298292774288298506440279606720439891666023630328464033703467800851963076157167393112610366317120604087501744941845604759549791401044793194986659414671047912928553381873850191500548582308488270035699550018001691902438518182400704841991041851971026516869533730550723304447708305297860722834870427563742394469894959965268483667689632153676570885931246286750462100631993377938256413874123242573438075718378166602645918516724822136469644642391329419127445161540943577563448879032351737181868792429447416865520100357894278016575512011543068026305947922871165642853137775485391120210784548081650644681497928608147314868821066294765025089301708838143548752911496646994748217607375270733465879741620823617969121487367694139264286529258232013651905741058898882469612749916714694602444486293480344303719204134534280441734690045269066469344134528464938808674991622899485175136225924660001145649753394131982953650530256108313997550990409168681395427201010389922547517320257989611924137853350579530800782159816239119444996042907579252224386940197785460146080202188868008249167661993524159231217510239069586947643355736545497771453815284147591470775794566137319917287714538501506201221639450826826477599387437991970561697483847523479003628855265475421895665502372870778901843329693298628292233007975621708513968312160925194358664513403850186305504393492941632739898030542975662129461312768564521781023078283677827670389414071706731131022759239800975543453886281353021223201759988501984687360092103828641371855954925467250534287738896001360700803226637083583165571008811777573895079926032036015997512088471190913572474157939741242636866822888581099969954879905346968430179365274027162581858570200794131090034836904016605549778361261030369970125699078883383537606123143168122550638052171531947118400365395545594350610978376219263827809968360939564296271289531922810106842783310932848302376906561883577234855590127955131747903570948936783587199304439018871515407925801455448188687307216053174228463473400056468768207234763633839854820309701421757117936954597444307878132295077933073829755244087423247974235995743954143022223390884412088292083675732137780906861615589645294716154894830456605834219137116048147055571177919825642447684684614845265958079531120219534212921307257431430223379673168119076473936286402654261197196178737788633892071516952466300582281264406842571360551696312665480040215812331660626482241696764381781305702901700746287991679193728640566165984415509103012275537698303387597376030441839707479347163197214440038398101013377628622502732619285834185605191503537875556773830015229552270084882177356686827832317367452088683538945528052792344116933070270139225494144282628904976414593941454297846838404241441865944202850993581901491671868011653989033537875513183836757496722645997473535857315944545851690945223995580849860442233653553357257363723429860273924340461844615119935091673871749061910721771726179533794850010282719081910189753115889492199313932983735471835719020983056572152340879203810136863518790545113528384175089912634982252843605821627637217363195505990643896725099734343113370430094150633888792882199568754557243261629107693686095490426060899806097705546494782979125053213606059229026571330531128162730371479864924410497273181207349231307293207306524008785379736767939963990912379158730622372802531840162048364110709331464252812653332267078085649300263646210618312178741215225315748241573855946652943434241872829648105478314600970712542430875750465289393390363715819139824230069304287401392079915542394853507985022223964560244109852908947959319565753231738200724352617078664967857190053059234839416413741801509635315831792043584732115929534025801260553845169414618886566985237861664538347500050340954453670568055185557169969507928080092924848011758204438336837986453426008722123025094742074745350904100372790190127186126526931737595727630549464171934530419393902578227401193083104765285631680920699765226967114008446965389067487163009251397564758255079370656340419997142567405527301856207734599749848907197575112391926096933680135046671023294558232320818324461068973164892616625081990008439973204502026948519804311170287806062504933288642289143754839852386685379333504706485235231562088329605471384303661166348593756170854988213769478424408082904201382419921497265810564617816977690824761337317568693370694617719452275886948570937205441666017237714856096155079833118017760965616993798437463494083180891417830101926906222179296513426796972574376897415782722880525969205164212904729109686020605701105104403677933065477289046598110531269883069786128569744805712625601341880390071823789937677383438464214734925391897506311942518231640465948318971116349041906262314608178954135914274593539298803139435296470290251473288636954153363936910802764110553219776199257440928438581877398603773037705945401679055140662746804836001188928151346201990213182870666796234433766363663029214474463034398959823280978206869941108804032966851395138719443685315846062777039841203398115729614958269132002039142878672016987126353147992187376174628509341591888424537548051494152577952375128067891296479110480473129815753835210272991364381304295128096709215671030253490359117158316782071791277052265929258265914368492605646135312761125417203772518049062927290170712997869051530928726308321925783017924543122507598748034514967660519707119410463415996993661895670482362961063258252391993378145111198050070724308744888369787722609609583370827680809140413775976668881679880598183332048273260587784604896428584146788989636874228588274639219607887761227533664199602083719978028260485287059060530135899769285240042225570738497553571308088909028161023261900701770784511739591074791487800749895919799142087092447290205437390137767023045772877025719922685575576496708004252053226493596461092045838921583237537172247363617685582753025624734426897080350531704856603175537385170364647575970542474331627958515612285783120972890509991272182166072466262761318128717068035530510049317195602541488260862896344878445811302096964470718481476388311163406216532661792848847210327941773139866836280933033483412683281283964787743258894153178742335025914961825492860300052315431529610676829840861738791027874210892262672891458328338820872885845429629714706732613443481829876344192690485367349457851548629012167774382927701954156303413810128793802457140762829956687075050090058335327010952766804280793037850738774651519124853716265403956489529857217785512348566781769964358586602729367183572904891067857081637721471690969541022230130764585995264843396088937937956427456804137811899761693452901677704933167286481986473706238819586825695605140577437746147532151449056703700182750488927142035133439214248699786904239953416157624224486234875935820618032301264409528482873869682719901378543779048211490737953620551429578119805482931391909600939264637498528696089944719896668504294357518254968693454968859377225634012071312193314244225642896383724877006281328156979155448917297560630178034353971122160744100473863290041994628832347730419915964011015052568905872215182045592525596808900628719201660488779307588790010883761222515430149521139577084594961992952931456697285954874173336401999503086796894161299614883709888534425256519010269128298411929776147229378459491701532651556052786962168178214578224287872531717976996245442395784499255194733821704226229717019144790165006747969187256457781345035630360215772750905830414085500550723262222675952436927405906496057048193402385487528600000550263766831031572611713671156492982852614222220728740133375442139959669802916885700535872196856055886182941379168851979229726399936888930636401717474020698703067493453864892051416111495320135734425863317624961079277132210511685693154288913799036500069983498903830275429079228999409866256198997791441711861659201520611002095489199611144992569883076581862861991362693543099231717537989767806041250117559294217641215772507530275374630800090874754071127188703748070237722279443888793140200487389039098259434678727717460424018407015496665543756119052561072198587672513378567548826223913565316365639524922905398224600606064682729696476036000982161390556774110779317621367286054407647628548933166610504278895271042898486799816163956262525207001575530742153491492449194352739949790770795479443031098044734759535737544173656244420687851498522196498194713322043237014865033056347452657505152503919566213520325382044511116449709076631565327165645714091829851943541626899005592006196545647363301890524195433261456148490594360911298801863110605156082680362713903817733852384534632320657033733710335145432667947718924456598512577323723678468931681197305521224263116083084723183072134159585618158470792738869911240077389161787419688375020274190047645248850928652847199206277114878730356247572485775764868474789700857653851006492076756498581174871189826468510682311208147428000112393066152719959249354024880496905412251426698310560972019244008834200081174364578935286110816048258408413059029870288291537434374874695091064327118843203193675517848693268149632179608427590593688104428662846911566611091659602529202175508100957008560506949835095948672172782374566089591431865985922762083420644429110470530766350789016331125355424919929715413307007524992217339770702219084157154309728479029433001800359260042209781978724154459458748101389796846898592696227941753890181207280683661804092177594480882286146413307791404476509196676532867547977994814018215106859647048030117873994162775580538627332960532539338283041657978602673888966825081593869842228400411654408033775748758400179616095003705386367839151484111385163849211806691536222034578950738732743170391933849698040959270470351375862680980930719979748429830177595459351727786668232613105007746665961261274359592221719457715749710299714729940209564059558973809221781748846338498054958282815531921671270594955546810638710893198339507883105261616240836521297823884784539417636915357369095797013601150785476844498482382108603315027892132698972442316199581203542868514934540945909177682850898913588382459613416365536548346808193741645896627272239145329332833822863350555340491756446363668800556981745847555658175452719393940863506669272860782248701987141344077893458395607148452605717416240413942337420747968716150707798890974659730997624261792547964399497211811630155489470242146840698534886706645615592205823496435338390193218682648840486196136751501125944936188119829305313245094368347774025212083568765440426021566875650526916757064237192416353515940289845504818510437515416238994240905689185624558873970496430783518084729538765377104743372837924202674320678372360511018766039477810159571217796824817168871033014077647945346748931333198466576921810209337995495326620030315324976493491883688590616375206588371170408790625587072809651983462623223316107496513312676855545929035145875358269741072731395618264719321411724862924454292205077136473537794923892448034775375790120658386854217033263023422945062037904847436323621962268962265130749124226040775994932027082199245558003537346347279846836968115508057959812179087551894560861458085629357392817568787281046618008990709438311772987990415725639064857887253568821634695672344882347285444757482153614214373693053754987467170024863699767284059567708548542069756926831015801692770575843788672362023203107640388467198083298569581015311791519705396604496131446197413057214673490477851835533136526107853446380918183438016462633592746479542427207589056175114120592870980622407696376568551882923089565116117339574699372327422882139127735860468145869438490265653853418890242847155879505112170036801273733777560056356332995989175917450819602454795637175969225293310201597263823486277300264205343117264209818614541824680818235589964851330121922193618430282621163352600401035072138241923853143234178637056940538933645143222195302835236670341376950001103190401596903781892434355614250923583867902912881279668883182671948569103835474648425029230427927953390221220289392048308392526680822526549755879769524192160507522770813923475223865992094251405719442991484815695462444398479670719691578211657073141347236839884196526483521458767832750870658816504807527732969098171556540796120221635247515620057271472560821683293881728134707393105617948389105174707581518805011428237233153795824402785476249836543644233711129532392352008847146541141813910499352319305265234724202736013406073922074748601669685786644896517271743030610846683187114149577413229749673036792172434170312483436422528845630047832969892357786804917880308385911718351378497253476713092216422400302972151237182308675514397970792988911754626080480038682289751313652062926128896016047402019049965822012101631049360556342054026881609577826256169843273261408512561957319279727867216414178572575856964850889941344939257760012855892701849232188910349486422674942392512639743049526962363712993403928124981319413223514008337203087076049290887581588440421754284687180701937635451128830119169308904344908289571952435103552303883204875597954964299044876932528009870471964330150514417749464808637221457951484940310954939756062348701404273540461201402653515566916697410810266410107336499090593278491750946459008438969624719537991345597262005413919211496168865504021264115091926704422809773820305284166019254999504271237294021998580752828610314825857213539672625723373681401372471528784502999409194305351082729889876113919933797747684096746240877204124299006627359794830062602996033953618973170173683241533359317543143667184442400381571093101304191467850628858806126191193292049343092104739638609559246984015186288925502291550121065391935284150555202752788001082964499654011819490282904079744476648169909335232659619885551739903700518371466200112497481862811721014193058624950024289544005040590344569251016980409638861966505181313712259482693952371096738275952443331613271678850063582927880076650940858013236399722521837896568629009838244186208098523581901544483667508194034126022216846298377204927613569410850315399272388697616735858630839281874789134724773038621402564468577424015446005686101451366890840472481290641031425489093952436839000148109668209774671831414941195100161406032996328032109762282561871710433444727654777492363019656054857106604055208705712145650951860647144554108006782607530526925563656551270399326523874614574564679669716571403234008056441739793477297213322901303429369402119097945029295843028286969698817156753087999763404857654597732283075226936277033911233140587316599522077053433496263651192821102492184185232691960189257577355576863798291868526188904168255017850982010928844278364518715074864563635260793908739743435737685595917374820014247908120471005067361244268282278759040632091437797702321479912206569047904042112818394257684125702783705802476085305103530651759204578055513776948268780560883674333151719803233715663297278052074676388117849248207934253838616291550791862820776840812040954772461814206452349395729125438714798304433684777237476865651655029236728400447220912846083832169940699848041688413968593789736114296621072132063531446632219380468722268028862358176029311754819660082700758395354543551611792994737487002619275659956632193498535996631037183295836368833157889713241959813201256557002866270859120810771560082330514001978278253617961440575413736168172435843799598336184522079720478257034848710061385343744400804394374925632801631419106822900687489628324602058865930078487583408969494245870444613585090355602540272396439774557513199314650889784401345127600687573047344463286749849353296003699289067450593197731564892336404289576604680512446516857990017340781123034736297271584193328507798017798876458351505715299176943142819835092781538276273598315376576025458205408472804109014127357998190463363708637974920716727775575943775486484474701792979745964298046574691276810888515489421873267531872185075095205065134039078595516621439802071544990467131557660965010334449933919841884330955660456665843934858779100269163168422479240721298704829580699691997329245270931760873671624290387824883548901184854248322982552155213607374136679875260227407789922970494470858474615913143750156523204392426389933410640452785422299205985100763767669902936818697009572877960791679942134422105181342354685598807749568458903319266975158681975461430109345723859795993630397632217304925168974681077690157123059238411538822108405853336646837773885932490785863826809121471847912300616789959526573529352375991227229398759442991590327632919797464983692791606804952743238622143610850977582307049110482430412705647271754834991491078431337744336764584139929478363795113679194207254094331340689297101932696136487402772871393604510602111923558887619887376389074505207323248872991134647715709735316160860759192549743981441914748115959018218036785166688598675550160171489370327799994807814474257230223509812102593602457759321122312806587623913814628981603509500374990353462717194630917589604681064152100830860870349606981360997400359807105983536706129050022484173752571615505122539003019439965711718158764318292981533835323378343215962780771342010807712460053268058174682232239072433787630471091829916682629600935656628406701074365455387066489905476393131904655030258736559690585078376071987393936375635788263639432869617021362932509949840695921547099307796750315051980666949395785535630733685742999498193791566090736708789807826044270052205162470575422892744088838886875575173536500022709890935415395425885475838389533375113221160105527977718493227780478451078015903454767809144618348763614102287672334110982920406256274868476229458166325147072313248485745214912223821184269997344237702110043499039564739962357315815620213469045369561363597783880316734797300758123964520546505408524638738297716243364367447381820381521486417263234713375136369610023838569546761991275377349954853340294780517464624027836263263105069799575079566039599211979391911159223047255359620247030135966219577401061562728726065770673525829586542621394680339373949799579018095707702304040091347507206087952296556868958179430208487933953269118796521978520934742568439685612117258265173864445667388525197137449940664142861160377413630770131432275440603112769136446477315544596220822710290826173457400694245509378614195292461770582921139732248461689981016841240391580884190913584936516101359412305598099812520249847826821482394383090524346994212829542468968152214511874030333766647792537606451709373130127120460161890281589508227113722699716945341591009762123011732135139160136948943108826041590283578500362963184557174469521771480342163072856759982765307148437602583904610904120364902109533606698158395553317924051989322874714125409845904283566984420990003864357913530887264438438224451857912024888218494606256207830860368330345105428412699515452226761441005287332474888122956433793114651391114971550321219242553880062115842992872774420416264798992995542408839199337331913547744632545406182235939162365841750633287850435330626835324472332537638818591284169465565589044864721782152152323413099514182998444321421675835233503112601346950048253664544911089607416834513143281669889226218461808220964853881135443047197521274071144200719043235311375070985223666941456880759890923733035478266316587983383541879971926091690140140686533044732004776072103036366996500586910242093337579137864603777109265125646393432523364291826207838116280497447417057312064756354711163083182762124065543541834632091711373820301522028018126491150835656589747879927812179652223375217904112746978845887388679597773673134223723794597373439912926729316792618263964769184413305083601089438904505375816470161797521545176719098782888254733922359031785349093536531743281640719765860970506914868218689313740117757837515813715050044766663574184174919807701671423602829001713549119781733244860262786252932204362234952957284138174154815313490992870279338306121690537719577958367838564045182332134905504140935695673766987374382149489546431839810103679519629803062679923581830483744316533889757556952971300748053443589472269559964946497037934716561087498075558761576435100055584869350968308467635764056222725217162505558058626683445706927333559826806936232399142202512973399785559765553939667860955874636469798356267432068613660564417431645563291366819757043446389983307225533936634344852517977862217907449663313063104451806576009180274901254044849538689639263941660126881689181656341173745102474592715467022508138515077505074694858801232852568162804236022393682136822641669473050967004228482946044935586579972847069530793244125399276835975388441798567231930330988322956662546289529579148150943257604386810720617320501586752142912046650627989411295950372269477672117110487428971939003106247491238585039296181198522583412887672901460111144668939764915221625741218991917113756034467667078178971240353370616213021325348419134922787730408807697939176705327190618526882541829559497263495726023997394149805912049231948934758703691125333176068454163915697532404484956670713821678774923047278709266700133798874439701164582238799891211476160044093366490946050129786467207033253744891599598892879652448112064535566678471087004509475348495302924971633535160830154647991562069653220588405917133262677668181585130811907950831987378032441993482496496790463041041030555053514526903424376787973282530638873924165367676157628182376829516840117099662336655198655396576581008460352100532964358390175574672285467924961569110236512214956585381651133801378151718225710746098399281647986698702569869145530773285585073332462824163729632286449993002852847538534482859245110353807838369995377774792972112056304400270328789376686702550722353510652100469805612203905208445842972554200508291394811703887425300967307255293640025506466788100090701986252585206484076826354363024170147776603870255780602425835833274420624218124018852201069353840996734953067597192316044793183677774990242981046794673732528317398703562265952852535097143607220531871903122471407174851726481817340192758824610314435545206396250267449475784107012255955137133864605308995588581993969376863881926239384027197058934153800671262058093850185788605601945632948045292043381221720929679922966558883239015642630016024610055255073138280768023129831456598737168233018050819853977872553269440647447151737457499909660915857793270644423585326001398402539540525898978849301131173483207763821320125814114004283347602796090370238583027276083111824507861782069619830270662817652403842496975903779842189262323967384533822745110978356583679788388418066159324026218638016325470292456238359814591726812754796703653700281450026960059605112383779094434651174876771181924728644665272926993298786670270404857308970933648000858029610851172693571450725491661814102432893468655521898726711318803822758814857115237297834022205451872375359587457839206779985413716878860208746488021153517162221749055801901621123175110686205238427282246120367639632821531163968396742211090665718163918398825836646177062537855511392014624312680271276458145300468390729632306428284378569190992777587141171638552137130511666524401408444256557096700781437211380502235881272548640094581291008649431893810211603269195351422209406884745815551129984834189230035022703418984636793875333060528137147763100790994407005447227194017551263019835662321765674224235308245016232649417186397402363268619609811509918815781663263129448130685467459696102273172109211501372170837416698565751690000381902162603449966625721581255910386680943357993291530428050538068189913934394709194708869903640074704614895162928405588733140943149917322138375771489660875403269809610143873673406515393270170469781195207623070672722876096800705862622998279906733002142736133372811739959282111930064345520492774263961817043262091560169724141803837157651851938418954323512074869648161996449285787858374874431530398932091646177672380210279745224280571670535202205636198646532709714623926840009201740168702715837543083289911303355754161263423951499088316900641147174461285594242572015850369155174963251922740893322341783759806118447728533052935835010393196383447177877054287646314440756139567837090001163590446074671081637127408118531888665446644062190635704121874565148417203942229930022314134648021209708832363104477653796667453322894125752689139129615870682208975814639367807557116947368223120044608139255345599524820704185490752204187049117102466733979815313216471034295359823794846984267566154208903334756896554856765069673463581110807479962065967138593335378546381008030310010621519139227714770486812992426164176793373106717025303601494737998535836742903053729420507883091251385484281659095652310502118770101366714268593423458579947364517735460474937369214253187092171092008185538634176049850249832892754453661328019746421031253796963092958543515096210259841351625637632796390829297416006826938003127183766760638935996878601452586607750261308633363484511242681089770175189505178704363966170082679486256932576543082651934194455955096380360603826326281857844520437760216684938915198284609180007554926232798885163962476724480486184617542080672378188513211142621344163561528924763415361489647789306034638505984728472664992708811863073881707290049537196533263515015181958692932459371214328532245033214925742811226779123306818696523072841033415133926850001646722046609031605597975333388610662900287011604206149704663550115672697849921878610806005164370547686008053944354328385429376039142164145825944839345888516427344380790238246768924546031891185842731012074150207520263823083079261787257707371307632302101074152348551358234298266873309634913204150641389801413856283122732010671934447702290266096650167445866863106772876327367812796470181786672483186530909919682008860169117788313945304170789501576527777609589435726860667962383983636848981537872814585617127675514814483030321553061572238098839651000605942082212155860432380138353585983878678826532536077202678368494410946587448684401762661773666499550086653306023402291364569262385335226568162083661401901513331524761896418547750317823136852962846767944538120781456972491150509860372213086230957239059896264988090715306894838267766340204680414583986841998264275900346877658095778714143430313303708366990278759919241911291602015927975870770356174152311203596186292016645806387004831624784663216498128252022518990760148002901304034564332060719587117066364816867736552277681262551002563727094374336584274961647339595833063736156562853074241952389442969874695839834780602862545890553669830148015212721164991876823504045272989688424514359034760562160185485954043956495360843394430873906122169288484848366514489981720319413283029644331657679992171550932731146634712519745090701867868045537141079309820263098179491031178427775912582545684376652394091285977044582602096446413692714134579759636926794975231429384753439243647974670975153411748044386796863417485883659991362060878189837676087031448996535877095730466828541915964933101289486259270003306899211875247489479709658971331345998939706375627117717129046464166963931163408761155077717141667453999916697999823489329383170009734761098108670610869794317131024850989187395434255573725581508332760161121063934742709327463896330389372054045632300585301000922994599409006640405982181932729214945531741288773583934691152496778163903682799374311944679521057481285692325371454084539553496644737317641571873328999729025676582830001387283609014702697394229222758094654655028878917714438597544308185507116756436552566562685884988684515991101935051453432116564437576027843343554074709584635639329536317992825550164863958206299318473262994578143970381216049973286787966539670956049458959398465052876601722276593724768401530767983453445903691071900687770647942523312703951401013938680096014912735455629758103205704424023198654937380878462537715000660210814847184294420899232567273969911772753193335496981255459592922095500148605437336129755053865665272105316219874312689105716201240697386016740833576062264781021630004358845122184808010363298808795554138883664249975435822130435835590463598672248192861883313326095461376411151580203675949926236020479132072905835794571457254159048666677994136855551287381909801597791237568229703363366090254432189035454932561915219368968358883324695370588973090978009070070694881525019421930219938194193650033853485608921928284829593468270186038650097518036653853660104073064362869352509435308534762012964475646423354372353455469337734692730066318418740716328815413204225180318610011661333740131978467116767202247199977887649386426224446926705368836344232884430064344870509752245078599799064273339062819238526007790355133639876177572288818751692105868288412345966055245928026026104595702601031636088618131098275627114503145358609504869876388196676367062039230817079450532835986262422093056984428293223157118299712028087597687099108874820450706050968975643206553402246956831293812412578118674665639137320813332609548586098648426378144817097992071431606601299658789335299050346899558409890939389102628444014434056964997116218129148100788326810414989409822244300314126522098106043269403253799354261532357494861787087234619983098536042715129576983423976874148105803316821642263660683535491204658130127277119828290333219712023320866464795703884828844539913818787737184395114714602757318820065217503479749241768541543631805046906657303511737460087380145585034116336461764280128373043317179175144243621624580038595249609403936828068430709831641510942980687157276216198784617211989802255353682488547195619292296017161334875363951072573919137795301122762438515798408523740189448441251669839903956816133290869173937727502175550660741003440147665553491941573964707236194470844691455019275572632518535458955755452234386500085566696551029314849361534466728758955009397875267394220618154590295279318543963504440853335760836077110876458748683515830485004906675068407705592903664977948650439470910026452336639123069145118793210042664886820663885786931261601420958123082555362825913329199089438474422682694489633842223884133988985668136550525368470125486343315256868110126512921641698091092970272895691695688137958260427770393850677637521321783394769306509205666141565709658287719112843656599926486360713759497949111164377779179267183378549942996933595050941605664438270251521753822827013989618959237561901710435957690844182684088801054924228068141738217558360914232723841076900024440820437730769251686469226516488528178676179713574186319461329910918252807446398832938072562593877397393363159774709880321509930864148362134723132813416482160738523882755610932673541877612576516824448186900359697180821563795804437632727171666147018697758182387024824437519185011678362626726456794803709082877919089442450824625860129677194942245132142087413117941394392969328625851756712205590100179274286450307985038663032457247559098615935759968334381959972173449200622282932379374946103649009457774146890996254364904083688680845513741794992940332399208562656371586163873956749266220577360370018043562977046161357041684054147759753596743382614364970584808988254285866359769823638054998675173171931693634909664990797175374987467464862783883084472383978981741972957062539558691144192286489994559910579803890322336977840597397433898507959933027846015684588378456401106212660260774513712539081488789231468273457830797840871253807554932879260528089696308546140344555663786998054831018159822365812424456581077623499722849798061016864519802642605331148609933604707889757207830312935614438406106769135611931737750332833458345023679544181889791369259996491565153282263143814925677815124151875141021748161501489455392432052972660562563904029270538228883639271433081977011527090182890439317518570513217626778398188322483859786869387518530619631238201829497053591985877859035491996120394666005588314350716208490913115852891181165914108617486227857707480193021472284825324857872989437367002849107177139289081377764586164323179562242172500968003365533139465470796383524116375438918409979754993705883275813282067111878532870349978135861793271075125476757584888112892201590784737219942868335048143407732259715224343868055888364495724707457858321088625655846848412944815193631654133243134098863261849668699693359945722118371679550564973653903942724194921802320296662035296441681270503675532230124533160191670228235394216459073477207964214618954411598362846004382032325710108014382349480123176147131062613093950004573796460863818397317825192084599033191730407568575649033489799721185697811969569538992739898437323308234674880991769280525801158962698508902235884499273072453059494432479800297143734275946851233601423428382186666078181193623637862162234115216115317035568854078454122784103625504976753934930648646461553646843962906628789232327849558143787598693086721788918728757928291709734566037908685525129500262888152036136524237050982014534634279379785068243230221997701472444244807874557638974890057279346529625975483231720070444395191451268604112805095724484094432327754634758812833536248547764831114988993497443909693246304428333996509879138909875545054595165504446281799448642947872119708346262457138297603122580624798751276800487146244004564845469555326871833706312950839056237986395002090517816432905381566004683759860026840892866298985396439117374930436277158514587487476615849483710849834338317889151120842152061689392799200631660134219176443756116995920212801803551875282024992748043090948213369900876864928928135620799994241700537980999849059031531500811714938868589848299561769286067397168902510173841125924085603647727888378319674200518050764829946824936749405092756302767862537472458067050720269776597859298530223098609312274869984608724817117055346936265026876608064156588500211883492720074215929489520563270909500272790349698351470170627774163707738597372824206355214604109097611207822742147653747343780229189540265757492673626353969291547651056342290163484439787815383946102583159862026946008936761700432969733498956891955690534629578638982257426208677428192355646663943976249442244537918129509123276781519095769879059208452058987317841206364788667658042346650106096022864649492902824886544597895239502419642651938743723599158249888610784574504721542002915597325080102618697090715855879119035102218435424655007053325015809872321184954191914324067163666604407014343833060263436754832174875680794282341405854766609053949696195650116464566533421738303690456558446681793818680345200561058209043217308178266741790262773805027285092450235964130712865503011615441513746734248380115704392055692779858846894283331429544305792058156569017695565324881927105155959285663733841924735326941607729869115289399427322719275046987564972203061624145568503069575410791845305904672886822301611657309733032528285472189272286559237193674047290359090837430689814554210502588783216612243898416879566499088777289793696168905333979006126817735164209442376655636610236544278940546739044830453295905440692141892708070159782125091362279751786151431470627554431014198772925355034748402968265210259516895664665928587740584199288555058462323145382215022976699523193021045664403571381629412350057254591637589291030271639701220729644899792098920810267735683556819447760228440767254994560820317298684810894322293210910227868970517232597853121844051171633207339856524667896200467293743344022138983606091426288314623946310067500967609458353863340038741309472237568108329364976729227119569607185928420930010646968905837601230059309946410976702191410832968586539792045613662215808356924474018039232972204632456253673186470338664004292371961094287342963554308534198210308963884188612592414542835814940515595417684496311627179336183026715211928454466217097626326834545002681262803474872661122372145540729263489588550163511829907193540201852586202834848449372083746639375397694851067378015265712721357582029776135286091828084002930463579877782479872751069368702667271894150517605355762935467814855676369390870767842126708773142376070849029184235098683977243961637026443652108157076521456171090146512821283415237160255455268229863073498473336250827478380734044705477391134797046616558205925943482023745285990643566731493191022335119873773458236245618812341944155009719688265709992319509843594443307660842222108414988811338310791023500590392069824821947645326486421074306952948298337078410680911675095617723615065848310340985156004484648843029879523381159500678810120079547018520234364500181982762846288096406815026761451705290249458860983181234849432781070051306405809684698949324942817975344103937691959222804102452462540136182792866916591458916853598381237609933990334815036095362074751190079434872332286902750642587514181910172006765496708737411193763043251676921258184491165644382829619973855804681176985128133833529382394002709447006960306715620092965427796690117095761942443765647927164570245974075115186201239534350336290093285408878023720873750685890041579758127651185186797888070555700560831313539635581283083076055834868500409247096734036091960893148524392297614916527934802564340364867185073420947998436388734536146654641792027628216092747975289110459137835335970891599556054524149189152374281050180002948311655104431904014316850612761834346204740982605491321774822207481799121325017831091489682151334411803643709021364586693044405638073565113961055575805160716243932911807066637587263536923258985131603772884750447784976708369643486072106063732469201286067435179575596173085021027844718742826818446673540423055324802053153004665910160793706302883113489020170375380193799629594723295985021564487182644439892905092348829017422345133252701471100945422128811743404598496111356572786593000263304541986232224109984987978465117224689310682001358414075523983386080695105767334292163492651399938997410049847758807892023921301456205583733928851339557819043488424002930384649783814889239263669129774279217830971129971323429637688707912431564053411400751285583218255086584501133761770048543369245186632827055356680661954954693362390411495102564744890486987663851928867464373138224212478629865205681562296496437372841055860475832125114064781883845086432655450067302270577357854267419389522547405219373615237589702982384636996788778836672486442635788741071199814817639533146088750204037746338824475219030548821381220381701615079519730430268453443709730911893622152955439868826128104161438589192158364614321554938743059986602321700362108517274016687129569992770542891435011607022488983439482475063592884187176996693627226305302002079043476308848684468505656693224023974366961717732263595217463206723550639803353658625887698380065410879421470775103597461118444880763861654852746135467030065491496445816833753408283433173768654176060540000556540248576143222469956049516702056650056161462155507446354232540106394879135120563364021850926314817083015659588510912299231330212049644292219341015474990292774965785996173670065870811735500107023287598418604183513485216834719661979436170617060302659501587894396078899942324745532334306926167396757445840399785541137619875691575989135202181164174172913748744196567049260040665547503055826477332486345244482951852307543642971116648773403557691032907520765641382249693562130205181487591269882722011507942738952525253396617161415025215308775292434529939112279309828330075212369099592248228157878329678870453925088693260680758790793572790093493062673289166704390509048015902194229456603780167835610845069146437525731731150914592014788617214409932101422440651409989511687481597842963380193978190014106702593549548118817688962221295757254121861804867869453290808728957589758958604632580782510993038285803782968988700789968439444274688477398555321374375814254622593129922056603091204708391982829829590148442580462357428281590245357817890534316465089674297488500286176045556348367146603412132118972543000813908670052601365038923584320929703368745810537309064452234375810071929809823064993538867795272670414185085012090612076021256141241787043420668720582773895379378343506830865905320849823317249727612875146455886581234920165266346913751482977445125622341196920895705396282496250048254820438297824027938846763702705742662855571919927233769919932966399950403880130378097393966984055883464920467162204356039908375324020625606366038372377170326309609208179568160885939047024063845953182391475893056103959863627656131757072308125754130232580981725821044371008576853474296139269924507691332627407778234891022156558127458549707945408785079622081084311587136249683473325357098039777257800422003856259792429511399889386189668462796458212138557195172630709496864542713310644806925945541711956060174372836561730032350212724645497921537172157675198104386040725506024461171522390821164830909892920812187581994565551951497769976415899621996863532061935005135470965101377801151868485149973254967593372792126773389676408301653674568616384814204805516448681861298910338767969207435228480952437332568752158524194598344695754953117619800224995151324411132928438756937710629235543681792020514022952565530833007453129914505459156529595062058571956610275141741145686740577660404946178399870992549644026842819704491826267231592380875567447153816581591682654742367384417223524879734437817569827537841714343437218094121249449674175167573422608923289170071885850460955620000356479596692948388245914735125653325157087126062920679217118721275313829487785538641078160444365477444121102057796233329294232869448934018898786036358203480230232747414550599969452816155109500112921338733054935127115223682861256835166404411671428041425398652073929674399590375298469566206466128544354011757135559031043846686523362441933931864736579027450336244160442706361028394007021249716881949016264502311989618888478367104583073461887552050601717051595339346892643820604464543223727834491194595182597170416370110105124629800800017394825229731519432598191298111000192422353898744211407551262443076309052930753862173535577592290836883436921662133273222870396398893265623959064760159317368824441684068880480654696657408135918806901453037842978495767475630948873408971591319168587746611226277144560625810846242130669701470200341506585109790606134155168880766226538033254713694329707313020669413900307662451055719778326058779730948338152875175475791743633006158953611723090357256243222668599860596357040103271023629140432320436892618383786640315538415520906063452055398372254079440029294948498399909259399342102493937567257109818143120249965529574431473042358110578456352573571364792899182541676288152845766385921749963956722158668146281819975089099118579354134920002276964519355758528448280266206636786381958467009403634479549613736219563110404807248323301719840214220200037815295931485042869466321378991270980184862931596691263676592400725303359541657974532301919059030971904644570012443059465825592058001919179501939276606199583904537260832280129556245429138996770302396307496292138934465454767160314835344280542189247948709750739923614808660027914972158804785430171682310575318055497899057636703076500479186095396213724254728890441491004996920314459653629889379163091014657676497011637678067178938251777257107671993654629063906231103209917222273663488406967091784242734794082251097571995651359843156404934304799513007070104107319054761186846673212521511797163150743167054147473547941631865431976701219353454606271301465834642528142157413607252940195982014504399490228449856145789528762878365108917973716233391336662882455613150683372753104895347892597364259486636331501727448342316981999748575635447964557213719093345642248335401457920508737975414092625954170122291720542900793251063531479837177233423242990333418018769388047764836061978104928922510558075258364331099175128782401119159548711955427015771329056102155959122744088814573981525188715882446807499083143409985378211301141606992237337706212961391825486482901033946363410953659148066186735847211181803579127562679927690703683137473175538061973995645204691720848449092323582672667130483974690621791307906685426141173710675450724259832883840164317611502256969818304661151611810676132499715292310572899566808608267409302492937321511176861400751631198808703321347003491148822450496710028890583640927591350674422074031847184783420536925154666602741993793052915394846380583850512209243419285723851937921434633454928871270726786884163561022891011108220932689497895251490141182836725859190995569461687583037540190791885267827303113306039384678985427774447085057790722488739414496017008081175904797309778898201022136565491543223465574905502375816619483597353680681872633381759480244065879170212396031425207973331917939664902784082295777400296192012047979465433809748208391161613064525486937335818561934747378361545648446489430588126807608881643724302354621297161544786136037187438549458080024288728921914778874105522787360721726985478963457375177049228334374818509260866378755445611696352797195205463964361716999235986249154588511194561672422517892900718435263923015931606743748074685533427667471588259107978978868429951604365956886597137359708416559133446594070765943004883191447129207813738421569849970948193696078466387216831241544900015057681371993078970914618456773253089411958467917063197257218343244767475838625189587237334324966857196093855381738582273516811318123507079741700130606260985131985737642962009162818143452189154073177051550360886287447427894618695463184838565962769176003977391439506751567785348371081124138214632046583131993119433105773101628647280163860183593113810585388038804905677977450361089723609108196092566092305110978366165551629669843919918451803197247759869390527583116540251175870896900550415247999379721830168427954849096179782459136928926008263959799370974678495778512073354978073740829547079493719619937567525171398296232983754336549134887923718530047074999271517185742413280137903285703757362544275227817595912454871469821206783156712655699404532065444312575680988566431596401150730738277270300579945901145839935114530095230999851339648954824952491362234160412418301952492989107945749009354964649791197590131841384547036413862300717081696497246226506520823245095709135601417374427571087476095431265810124249197336836234193136551040816953288766920811358464133768690298066313520351746613930887603318674928342998672811617972482685717382298289941046923784392327082401000427110545434085997093290623134025718692448094078402425376581482574356945365354048770082191631297374867121125018229978505118331591482389597135997564457794004430855606558734353981642990856137033757661974336754185292014783776570091790014418006083007416948648186397429774812020817672128879349892042848341962685434105080694975784399290439248340785015421137711292507347670355133149572765585344476400031395911426606690328759777987344649901400922270251614391271226932311510842001526853098194903440863010414554088086066202470764240074534508519809548883165326800324086438086554632074592122570280508875639558962895080078854172153851586855445600286780832443429136965212735137328270677527236501517169569105216225759790372864555064114269840147821576455128884184207972695066009536647127360655280565148742845684190430345845517581719976729353052550456862756771402978868492350684282497796000254037668076440248185367950022410928384370067406086620107992990364825148785752684701675046407086207714840853772024479521535967802433500876551480284683219393750542231216517673198396722505306123664145413642862248430194969401257146097344151560105038674556575449798847192264297272496207444434350122876065283090546268140355524179926534814772045242394317791736080277448381980755148272548527288830113932405453678431937207152177713954086117537399999434154843774510613991670566239772285614719552174182328946865862458049877535457899254530910758425280267931222665519969798922707675014285122964349304968267497363469131081524930910084024577764919370703580959545411845435942861796702641624201964785112071710999076157320023627804196153904498423328925021009763878516781436041960027620576697392378749700072295743516667772261436859751649535389072631098264504554397966065026238609743892904735022624688470110295809240966150085008323730006478532332596010546575569010339653511495327376486103647782263443828054277216771527618971625238040340262842958748470863221895934895494224701502812143956057744958802676511190223384010359012647257031101630637404173802036277627806656405602742003084889503036004964374468534049696624900781780455454779982421821809132960190709378256243513382700744436532399539547537782230432820678010313739146459433440161381095124833328752883299135046915975599773019158057659514035882201619735149479144367262206620634385750506662677081612883253659536979256407260176493276846947375101408316921591361626027299661960075878112155129587025860625857490101309236690029536596705902097364992907554409443943252159420854901545047643167543474186985453875885085456241274353362531763753625777901984187438692618498540132486111202498846881535299195343650245918175258095188348921706964885598838717674349200384993987425140588286514150782436364976205229953974692000482655567966709984509915700560378198928321925123397630348158186597633084996271215824192952491860566348890882104675362371324877960081628475067450152725833682900557927642481579455775666306665733499830401104260620257668756153733519750548519837225285090683794921777858869837818465407320749705676934517250993460419153599714401903675754557596465798935029774738052863545455426858462648369912963447285019955801407167968415900498566038833996648782824831913345976097100928148090246534528045663319747559824830164577272410383018085201293792243863558950457160840924872152228964573467949784121174073313124225036780098735120289049479397116021400797230344306023210383827270961552509607321580662351310791360453811418713467144116592103673764799647477188728029411288135650998589638132358319264810169718875438605412184763223707128771218172112708312784834511536437817662644516999225813077468285287513275359832728307329458822598249967149636107822956987225508804745724563455858163249060585825519999676737092439078292985155577205181707404194606993448923110384470473391997402371990128224948080463141701223416624241832775520625734939173044964852319315112589002057853459651147682949298490320250578620064076680535689620877599800106714798808280205613826171894190944687539768335893920813143222128281842044769408546962514068055468682759192721201892861650107133260540260199602171301500873622140558508399676783556957788043452631352296777345060123238079337279018875716022905366352078971378465684192976009250332810785799889322010578940969194780258849853664212535112310463862529122537373092775214194852589590550082698700478742873540177922654097344024768946722796126647769093116142369073026466343996441100586860494067680113924425680208158919767034023628303937997511659808692389048585307734183590589256410106240031508798440535635293986720342384631120101090054447787491464134434919138871195974379728585106767824503338702892299722198060806233628263244079782626701880052594029045960339610676762369186073976496940262577343896066396235090024636700026476823674218436295312190861890696013246040243079673521866128737504872259712404460339358383850980231042834716399709198757162624449709347184655524024247772950411250360282558978090406487844292030688629639933818989673587700848909719040746685418820564385809568185651792731113130321821980624936531563200234819866140426548934705524928324410471071347556848312361488625400236158114513330749693041354202902347787756611959175948667098048624100808079064085045261304857854345969385613342890352526908636809523400855629914468509129517943517651044917080639239783470090057066093769576203890851360379930182401756564094043861136990832552631443795456625636867501864520915917502689074588283182567381289381892216312160170219075257082954412773441854455893826789944500034362410070629397107542527100678072720017504084107370047780348368353870040552218927355676449834725975991034888697247828424848221079230868935309344921597811398035330425549278945632304333585423427339002357265858464859589948449612441289781760233082216288796934703181264196078275047148880980810379188056527274427110560169667722176002951197077746668306206210894615467171520413653633039795313775078830993224863251391181631874345159298931809442213297831264246443107362148172265915853818086943708904743382974653068958837653808379603909041154200964081044437467307415320222573398752838166031341844924380459344264412874134351691665118325716386275010785381965526712978577510398196922563454451660516561734433727875692316153246439535600848181573652000160657751976861454384520548307366655111564256570515967141828501506505714564179387610709346150301601830850000832079325846588709363128153769028691891275043187960864639010398439055398727858084639240331079710051651584598562944470118147620555919075125793044994741936966913969303457438590779327615565225433188301269163617581088185446205963111850329549424752039950963418546972010335072366698217368474008616390287101320629850067547306618845136975292407021138314740062354026830378701454475343125723942492785030889138700152148340011525270118316691973621128133701167735448078733209668689783088501344609567991606132786946058938282011976602716315755555939104311087434091386612584432986842509734012831969951090143907782607203992403976471282583877749537355016586598976917582504480641530141227008640269695954755944025402598816347524849566994198598300861953322480182376650619099010869337774904127362572280317576249778502127654374476089628824854059710726066899869765130397847885852616000247868963722867787613656862832665354791396288378006028489602709217004738719957040224662502133426112672864621371480924548157546223585363231313406159337378185026650469688902693541878756714768912439344466810210966119823622499796567294072176820530087052740512935199745449835576184012895483678117572994621298478787842309180868003196529652839357735856762428269692333638863500052971313859938258167707167193599263756275910143918164211656071268359292870457205123300638425313013854958542182644664722714610499975857635704614296944716917200894752183322614423040401404212972511127213745060412722264918834051723580592243001848694100688861727379718230081401500255237306075909146155943631570255035207666019813935857956390094396373898794855491366076038720883881031173989098136698131254719317875801511533604890118953642999807254151128944820112753546907189021053416693965793988664761626542318892965326958104466410717228455792035051305808461856916636456206972227383561386770677016733699899815653766449118338337566694417701927227221485459388820663235062436022889380963890492959557345210209360179459918024835670597204081459261959790270028680553783157612271261189590699707031033284138370286806423867119147191306535128626390164181990673623702974523191907982724795542953787389357076374816678896778376479312530738850586649426029462348072185307041327995373503322141498260402815895078209270939659951488362819350127616490852334555360487657835616854818984175685979106049104894170858988050279434757273304754476935118888454522231144450318133455782634670434870118013792743779277557456326788890368258454971072244766109573152089076462733421481398900689772021193765611948889143521522613276929264057027180759767777442853310261958829308349843463896111536326992275596017332603298232458419278670175836536881888262369368789942430202377144623925312509183630014766421101388189417116368875312040027041375918735686543371170559408969063942741260190434299092894823137757906790292188703507325426878303714115550323461121204711700991661134954468508411439528531636817220674097990275588968061292086621737825590225207582829153219289744770395087915035099541261492997281256312137475725301161701053401638232006156090975332109322082626445096153609451435453819498256573909945549428602487517255408995874131673671394700342259951801030428803313272164929479311467403383669230194382758046862479526737055348026999163503314722318379498986791232216909221701253633055805553576095645210048663777194954275086529653800527275918587707769661171156158970313039079508685540396539429471760100704634984111783842023553404211957734727069730583946125207079470752195835261690799005289215846132888963959417530759120748818297173739642429765746273728557288410356782127232826079090379984898886706402052682813168932045635478779127509473310262918491980035500873064418773692982790585577142155854882398676458842192936186880991589012575517425801261513063722613666664187206361299731439483901919310334290094424179195170390873491792417268808170799697454450539140820006673967927229331634516700211198795759706825134680790184493094999363962445062761556398538805293424268669251817569826169091195874889523050652621112860466740717460601710653774100153762270781948748760453358093672934496142662454088211315607397709683028711482884217651489396390062010591321637841524936261291388893074432356709115818881842402874145077649701986635438058372428704166888820539095709165760126405170522447865626500126352254985594876268500246360348741077481922199355000395186132969540811174054960042521560874233310282947858424841808414003537648353722479798225244713588070503687452950877344546965255389684156464936656985300756145451155682341883201901257208858401588477273566009801737717902467028318318383063009985969006403443647677733558570880471415444374355714805424747675664316020629294822511105977545697623379793026126342679868152592738620600312281526060842008590587615483156398054834744346324724042326559420631328310590388853308035638054644323843973673843009390095927684353846713314897231891592618319113986880999501054577347659412413260194234792972367937894203274140096381510834858353770023391408769801625469064263174025823946613563883662850606493644833745257716076877269844675883332841407363499311467248166741256749424004672399550252872324884092476106391601967408055606410595004300544495894914074025260350747950479777801814624136450051619199117213472948540679241102140281829157823091239345455233959323931778216760137811894150817655369397454659402243677012875955244975646762002163955075107922216614391598758909236206632523669368879172279549670758455168029824386417568691174308017467626004221625947541093281347526668490804543321935811181320677885748427378030943589707159961664884906350672787151866794892755932448351998837995147930375229855071867763489657375963002369636947881216258136256628188240099585676091728449152040143904774533342508301653678054897477292293062374861672887127439761598372805837788802280872256466880910214422221479054119445410312166842258867589524697550900153511424863850422064918837121559796651753136033525865696808164603307022253082998885866643486130977135657870073439736401524210144840137854913561649142532011873432889699433656431757771232070715066602704016515899890308621000374145011955603643254718155423336506874110437542000582035622532123962528614844228960337067691872886568737571268583803580497960096382794278196545461212607789975918054542790022324095484850366057616386280464302253554300909488270308996423710742685691071701573075480318224789528601126074839402198563415219437233672178160080777377155927608068816286562213008339212262086658561335408091237418324891630257479352336900539021330311203280270777620509203170005650930999941808370208271822943254779597492255702782330597154665011840459362103406199775973374256725127321923194035262940237483329390784630403512631785689728184025346266363344183648068926740602067108797021628644664535816086226307952680291085334698973951565241540524703793321138277640557405609778793601038228991706857210915442441504417346900699795081915021666066661552983347103250716936708071500536060783461194780111576061814887761297337124897054243715268885120708070059062983932844887328785736431762302672154766229534570918439856489660682390138437771583833818514719036012232572022535160920873168915092561669678909319918696379190025304975787286260523606707343571457685499710231572679783378350635132283565224197103098972992470326310330036600635405875759682613363991634120756801083415137778373685091132406020233380912716032658979837995867532287695407229551491148905040987836890065984159721289324452498293231652777372947725720551828391424299397236151411253384927364828839264795113944996200110489671291726450925079562452838945690535255896574687014404671758746948542412879327919516573236860571259211133056464348876723709727980592459207514127486841233546941372437318920733831428157369193322214747064660584540677968837297709050615265056349019495990803876173785364402453291964114548179015252136930598963103926369798316752060047684563721527139827434355182783738408239051719381845340343733944721400452075709797199854814543296856695604572463683315074371885761817214343412157234413015836427427222914131723811374568425970229720725977416993541549396670299416382635062880856833197295809468436514042393993728676624955224472753011866385624085111818926100633488612884993486951439432920018810096225115826622807723806069344710126566529038741432013149601602240242088350142035458663381628626099392209079626645015005725107748905936302321420467766955855419274836099088905283973484704827575501637621492681178921990671487820222630219242208088212429137901232108277645977280538452616679943674141107969455681627446293967128247991882455169585944725217394345864410832384313776320735454361569069879229124797267372480694616535089054379386856519881692654610714179563905148206150372227134304769667638807686626550778003453447013664818111127113926039939272803999290138413225743819914627338711992617388668748319374090518910991917371357543219759450562851801639663603531593483585760898522041558034730859061089016723008439423798836406856183446556188609478204517200105096267002701869718229425798688756664990223718296398554213316073303024009920313008056202950785670030438901883773712683180896944144752630054186144994873878237558852595476334482750358634714714754411076620646990544847473328270257433008756074955829580725917418602126569778657487216063392490513126500775688751244340829192011159708509363350302753799552405492645049734573285025874549213814535866496064902276310308505515823372658468606190815353177510944937190923109816522331706041445624923226049266059522406960132351391141587928781184171601590598676068852666479782992518943191113272443846884006173123273604501441000820986167828965446953899493812918851477236506786190547209578834399100858308381675943539768015259156549705757346266912654607528662199822678311391842534292229865172594786108526895585444248925051856906322674046756436117806089820783787601726481160587646464687270246877312261437431824506677792840053739009359204136130022435964660936976336890845622667829031290525908049854922078176156725118411093472623359896104057921326878640266425528365648756684017258253092007544693596450936618691551541359405967456666013611610869066086013395031141912043542223692486323561333812698910619836541775539508272038080405573052889564436208268673913457919844805874773318839606270523397035188321322965930174056005864017064499990512903783122424010891182980592083181849706634811548064106505695890464668583993763672877591535782060974255804194452947551313119191170644393449752051751474201337750676465469438771429744267353759870936857421365271414031626349507359475180269120628576219737764868728134747687272719490580205197058878772109249629225853799130157689893659237015970689730768214485138089119035925541310800326062364063157486121871407730535189709474196893844179877596214882690493837226807493308216537082231479926586821131228347042716943684706785656900944799266698631369866979479376761607712842466100597022235975563760983011018557164365078879191004388089855830606240427577257999415113595044714341919895523061375510330420028164762973668512912438822506516333749634290684645325399484104456742956366223082598521524842902365659716704892004371441642744100793918116239574599471151146973028232958786398890158246110966089455330230352288670195835938329973867185930693945351700430573186692208752571627838732734346210144087378420973339570991621532661557389199826066884498787784655180691620025081837939936782176694801604011662351348822108780428050009049035017253049651718140356741691871054037200726892625861929123745456839241874566595547247095608731775220392746250331343995534022478631051478373804535291541817856572060028732173637522529214784648743291670256621155849064208485123738209470955882381014927534191822561319802543562758641268490980381027537373327421686020067190483785344879147555304044500898185292943825178505858667282648180603602510737493847965978361832366351298703172202812082906702748015835883826389643067699170029888729396047044944942068395244450998901541034901490905233240222706439944140557712460762498772126296855070845997825212541019949519777722845590937679557258095410770492178799596748714391755549326528384950000845483781280364361527038018407694604368140382731741604257731681048482574941175831041723616311228144484692889361181367460377318086114441226469578975528199563767837646159113997769397964703827397314208912099459703656215152266017085918421079499624643330335621991125734407953300498131551389646331330154822318740586561033222667424085214030080412824566146954206098355176740110988898910511068737828291801527128650415144258460612202327376705207521663612608771287209634877603812594471670376028542555049013494582019637882024076294093378373201017963154050426353009000730682816569490867159659880106361692749229417958723438849616359793928863116470310007153386186590532389035130366695042287112185433170731994751801236581016304921436805771157172984627440909110221759043431896548419009323712691054846242102723609590531969511868741447981015425543592068686466518791507765195570820880047531013857508128753368307047913953768812657548112746488225162913084372474979683107956690962864491818730244677972555157356932393473111262606840988789646252052063026144886551165694528150732906080297645334904948491443927443892864422792665489598659002927513579047649294048373823440319919423042329129096656017350011312488520064545225875277196310157156009582093432363910183313195624578322785797901058799869000945475145271615107820508436297785963106685464060993093726242592216250740311880088653593843884119786168531838307402964630064667362755160889878622607386771428923644271653740617601821098402512242721278659676018484376119921448942518839142581797325149329084910794778218610293756356712046006788144795427677864583162459321982117607502023637885410714869097283443710913493754061784435691576411997168092175521179691013205665583908102162173789275910650005186901819463861442116670106634225957895364948025981557016589856519585589093488272778649740395153826197304500070456801483463584140238686299043117371719666805783838116599360120627090314019240534873317424763939868256768150765439155780626169015791406566294885440135702547117436264568664077979501347716345677707506821299632781616110476682135866871110813200105251132902859297231704618671740767343650779380080822381649945609995272588083064259816546478606183183498158973486484429555043397766741248292572346798711621254470370977395905595532107073394284002103413021838498095710211278170250993657507896726953498608681937290008147743449496376027636686724125790540564910507486230551512230408034257934666822194282979933135545777843552617984737662044541038416736925086178493021764010150542165762734870535242665436139610098967544094433307702928025559083935721200704730760214896560186891777987638732630042807789143605078351896505045191672488496482349791796094713980920104158434920619499165080193076606306336001518656102284120424911575990898398386135985906524046437889105094824093170621233039723426456498416469005514028669545225380509063247952112475950891522367017320243376050055063277712600312415769361342091609973665101513668482619361746606665547485638070223282356661953873548018520207996241893635882460406428688512616775568686142973950788811398952322970478654830773834854178522984510508446967402471287083203474078861837419014070649523446073848615099996104788143352763413942784833067181610205503807399093899783447860305725600387943860962028758591196339733927833328271845021971779932838641519120690313873324024239143006616448650275171150770173189918678887526511380501725845788095879402700226009967466171097491780409981604864688559324330951440654138303338846794313609044784097354772697099774384062939645523792675078822139852080185731602030037918381614953567162688786187636638303080480206093662448532724363489021624695583619347294340083110311581535214110400943157199360572327695659210300439359140171257427550558849960147625218460144875308044149634405932475950203728638407302195129028688582645761631113814396436906031208261640667329418790153665271712639288662644171093023659365449427792645220019106373918547361830383546409856616648804964009118392721549014757485622683488927982677018171090127851568910203502171989219620565034077144819237494547638257713921037603747513881587687402200660255755805943778142492420120479107982000877444773047816659448672652374127349359736415028238585211554460233033516681026714565854818846167089888071428571866796738248274956258723041897287276576041625567070090722554939848020524074171571667009372288327727905829591352663453377629039137544780232906242351655636536121071624077677878503141991803935026697539692002067118890395959816506604055503213564713927453176534226980116749726222853905174533369130537170314603983170857911139930326984103264026379240625234260157538932324096040064039641347897777735783682002409488093905371082105412024215886243026104958586507672287993799434534486345803778727078135385370884589737184883702902703011355446754770462880100286548576902990187063939416539978885661527919924801953944734418674729175258144820100852074862339564675962623434734843913962102117503374539783610296600249226365651006115485259544955154150012250081192803701583407127545477466680989245815575714835567806179016239178247173494421442645648439877468473187475428173117045147424344064371530616188160029683013744007637652198510750288380485132531717840331140880593883360169213333266466695202229276476329355097407795937352179596074927238026930765420513021009593750893916028082563608992139899774586703980760853061063475526504232098485062628607205287425153518525411293887297495837530873706622057679236579417242150639096145092751620335315917631417336629318063515498437566706789164102409659078828314454724499347535952963605511918667468167389398674984748406103122617838295836640159627688428570523677300741905899807382991791361113442669236199944674729540816808416450687803300789963632966500260320512928204728736695055618768269217896219386487370956709031393060281892870584189475573994739716410330804266285724961982403163053841674491154275907985024728800540862838362264212211721109926108678180710870706120433111236163166666133231769417651263147167085989347089496793690659379436588892075309042927846303170725804299827386689280640650497819359123407471029140858974463297379261832895769315898690962403647088539476480656279230947180828368220958486730410508646716373682121128552998666968629640266233002351138603544418795367471873287206291837721493201970970983762479087782036518985501029245985266783991126350882961550901664542173881858169796210434878772546459481894084277222146342514156984954699449782100209725629152360306697627210364860362807983728029085585148001513847383473297384641479846251263561143892212491361215982360980630831634366029669484507999425457657267747918110293354140706806898634483423592957756793257622725708202558699111381746938392265253523408604435975646671786153297601864875439403136908787526938264812475546042417096507190251580609449775915550858586612799723256553850618307632163776491431579335744439333297595199388518849246674863131169566616326235561405421046244380150990060185154830270515433564887544276800396944945739571601462180883422367155173280846411863800320159758350560050763113045522350758094220442062801437885502932622250544154515832487756465316991983132414743748681120350444304938636699005224546634054476636315078880037507387226494120433199092828856352999676867461917146337246200086055172228324716416654728950574680070365056789278854621927791029608386082402031644041973265729484118255567180543944787983133765159336293035612765234052139166277195959695768555015853419308630023175891379563361216484106206915542538273976326783750887961266188719491143748551988905446960974609421094955523002310092171807230183331170094834670881052660967589375909154026354085114534194131061059529636871859946872648489393630212337562612189527164106129662601329244918337758784810025572417446798833746396058858393743119605616905845871437463181086832073159278616509458477752814902641260001894471026244112924671248016376530676757485304057469981542746355093467053744031444583916791330923088061039263909285303389828783700330434157155365005245167621352960835731742690042677799428467740094562682427282197391993975503447047265284085241537680413587260092850142458635439994827428604279773333231763216119659396093002284061637136247067750275887207076309588623900594316484699627584100842986495880646401931156825136006439762924773873647375350241722255735041889487884321907056466319663761734953293390531539082893423636887739074217284795621345943588513083055021581254507731259252337093685642453024820918790666382199912364232635599800159984235082736096295343539574932957894871270403165276822327386899050952971127274862441166045596495749844493003334977528978768949010032227504354222549078277202242649965231518849186924001570119496837897314831218011657737328794146267819165431755885414381349546444591128150983489638133015894967809041384466281189175081371002548337670719744893151288566675222019750591870430472953154550885402208247338050108752379899231442972593803194941404227669779424055835059096393892520225133003261280360653962818810819007488758360123058008536736236480310614912701157349110424350809240300197849382297628745800781123694198464366161655166223494381217217741270282048776685154995602966380500576770387238992654971307252706237618168851081196847075419300946271536645140130566162615067011802631728557257535926705852084750675031584296400907317557760664921145745831504404163365516897161371466210624980557698442582487907863147089751840335241040899171689030286052763330390190679813704816775906134915778424536010814164164285677785792420069008426468191759920323058290236807578818788334268562011302073637951545645791049922545806771106265577443611321662788985463846496692123704465703495005272446723753691215866276230257580388331723106429908632120051576208806987550735956687554060485584168271200300420070850683929272409086063913560863385150586798338260236491566185451573805538362723835482194844026022005660858356841426355001378510726741406548971569263903359702316278725618089485284573356938916250318387791158477122869319118516014855395981205994563471980389886349870103185990482481097845094403161437025611780481215607550634475914401470816937815711020682743020539040501632423541385593728606677038488764937384422912251027633569899199649905777789588823512549757797176415283294796535761621412254516922422714641879906143532025356881819577391410886192612764470015275795363554178603443489154632209387425942981177438535617240872738776686954918264871563265670650313406468825345627009194717227620885039800895981198678058602477831261078165693161825951549685745416354410167747644634026344515211807092892166289636848878896907645929174230850560770325332917240499787907605152178117197785435470933910865658542179265643686292256050270619069189658011671730115575457837940944563245301146032818136219844437249854297000930450478576915934927934185102611208403776483668149097193691563624719137592613601534816104941934202524947584531634145694173110947531986313659971928276279592915808008030638165857084000586834495976083979340514510471110468842281289009643346415019330229444932399910359808565202323673059920938423762241873194394436114086116671780733334203085801963070674055733665515388344241929529692680260678807655245471057389986027411087285939644974499634299327785310239409889373534570754708230369042946579091488895994872492014680685385647300991749207879010573679736280297185335365872319051089483406775365800576346004421879530551655963005445638555902915023908313961443979561878902294318817830037770344212500423600220885745662777875504248286674974246391702148375907879970450516955798748696891518921162046906138132409241425638848877191075716126014603789713057314128716863433684899911266824892586002864855684720876693868599815220720974553940060511074624838396058046551461454698377689470609596725080331932118637648987552003043953251482675328807331271796184378864185463782281989976599353658974984872003999340294100350098410021235700703867054742680876000281615930565761755103035930729102124166819875651340883769491892048602270080562067501484110683757865544894941894330065116210713343341435749237711747216537111612341322914620440350236964183320789217346827318493632284564682417542777957259165972240812232152851138257505978758733328588222572421044538466503582616947041232438112796155311479861493562749920516933955027959366189988639023352496083322768708429008606378734644798248190395467671756819807234345678215902480328221391366244513648542697603680487839449462163897365382503579372680012113946735113284197786779140706609821635397041035923023498250382912531896184248383077518941912452928770869909101452164829961547605011649690427076688180046259804500452330796692468676191775955909080302523260507772580378374796023013891818523947539068914622581382665033443291394066211048660180815605537672776988822477858961511246261625353971732016309807950485112063636223612151817424120827576238481087658317465869523457206408988442447347799847734256176987614587943323980389858581347817902718198945458273097779962583286653746261221172279787634886951917874766652414003995675720218544293741687331819920733733984607353059026252282008979839989745169996316477621909772868055073610438923581344263737735871048440237222448096287875504908206556630740163375937490870758908964398191573336181371704048213630540767262011299336107851700494863557477040334965087904819056562962390721300026470899071361983263299347701303771321571747008407060040438016336010458076302633521488584100076387817619374047875825964443015229886756055619566156073553055743470595947546799627931384752156130933843894735354512672728796777383210921569216046796919273125884640793538123380775520811710034542755342494788938129165960138124445124760681668240849476700404984844844005314724298773620289363057231862166811354249385503347494152456073840973073339290587434207140036200536671366514266026908323913334607670252073546779844022640898529468193923058316777386607766508547499915931732811643348970893284888265422217427184030119186526599250651584910907517868671927771637210358537865945556094546907436272703512344456925960764731940911106536954390500514787701032072419131767816859915619989076319519770615507669185177555049882484920180478355660984035497818101346474640972321228540590749393951594164965603319717478825594630640261907708090780639194717373823830904563219701311689886796317116160856974625854352557782020711354408321904455802183037140423326286627226377560495631019973024817214635065693816383948728174930653757562976319545471430378479702754903807135381253479635720354219945965968676334000271142566531548259649826223931469794605639228213638381611570547030330100211945408070783204004289215969634077619440765250818288364239331286135420618278755001402328349315991994819894509061928214583198614986775640949562778204483939444072120556233962525242182244890325632020648738060432320767687974293289617633318495446691884431407511152539550094627150895481557814267895510114415522928728438203853422625422945402581042550765957881746686683990998136054043790614976261960667848355397851532764139441142205631362161090502826301650842043243139126216177351583395916345790684149723143279415254044200211691926897550958691411779175320407326033865099209260031664341668843223702322549770664869462786070142248797494548679960423870959219627837932318241994963910637693859047375372534515877980907271682947931224260168102014432625642077697588099444813300033763308076751626646785636578583113389211953042428245953372714299017460724576007206559464924315525142583110022618452319914234955521487912334083740888347440465133469960970367492245626401812770911613796286175198769951650439931085845241095114322989667710637826874177311339782190462860936852836270524348238624072784951923433567485757307254349079937455289283972868174544402913375921788057080563908180924782954884688423960615405058079130042250165428650176698840671938088897390939890407605551888261910108035063578014475784054612210082498637926676539003740401012407414170107379816833089663698418260482405951997636924243357985575594465713988257530467517037892343002353053047839786316906354797706881932821622894403176020289489299106543148309284657230890296084005367700815124608724093854357970505000931384213871056571058902904888003806032098089393205353980825222889750286588203509086646346424004157220137546902387501383648749727735201791892011008277211367423220379303814390194570635794580548516743767422672244589400275692846900906939320819250344026473776321747159697641176998029950047999681823945912462513468430791154811648709406116757399203523065470849751676031284746266760165902869655426343369289741025163741244598468266536027265832232700427732534845586846212614799194501663602249277109778612459486661527272905285148725667481015506350214508990071817249217539308345649251023705864758752832960996161279805743081568194351418771008307986197544531847474739030920965403639383447039784477765539333635429199396293182252138855187573479937958547034479801583375463415159708135752554476517118018311290157604801308236834557069462759426826202283904740183800571839447959603116498127336940168093820428279130302230002011707156842619446171982455808433113398614132960675031361935987855740494864257666133758453499437777222315842950607267007682601899802154891314818842280541153282493701230937376861313674970963943436950077409852872464811243690779820534707942947198487153006642666942205277444906891928494197584006938120648766380738561763608204034313778737467465541766985469546609478318625136491170325071423412877608323037765507473462712956056282884126578431104237148931283760342882275721147990146641075671635578936070777772314786810841056005032801602006917737764034001570581563139445649988741748920495186456346350227355727111408159048612431064856211721429173200765027991235956823774522682801764357385250869458945536125435557468396291520119369173070168699444162855223320138700002362992539514937698062209061495288528552523615798009933308164025105711613815578439822892675555900365575250288841255913626919640372375204600751142731084263154195917411870890239874844177565078678239535885182540912377835400363236558715959307220412876157749942130208044765307321734341927133975982381692840090613328348522249442302070390975846674287382337457867298520292135279272074343963663845534867006462032789496571305555078411913468035673217093992665536060565051240124053022747924185823639423265972103086684189949105924667026632683593502092479185141696372904271043554128114026393311399865240128924209315383643952886159176557975647469013212030550132019786394255875151462795028778355197988264796307187499298183709943253533443922285962874586584590523120910343209638514445819888080380905301365062717492657083503051411236987960165158605133269085120334396629178241922422802896607558140781996531352356735471978619561979977028723368733458889329385936361980255895153116212414126471183877656848209357343541536631716486087475844321662006671243536654649351476267898681338844755567956280342541783300560150985707591546280865612880101491870043575707368850736675133729508536023304414746670892300704972234309114307256939770316281580759408344903663739180510687658834862159501902357314813116408091567612553728977380371752654898828213704319427147024171493779897000053877379207907127465590435361791746441486791128400980188924631264657009532662743983522947413700615038156867276707106075402040125636818774853089968112620014022295499120429210118142131683160050680654158652349397107160844367536881517584668488935166339259552855738998671836019429035450631569762912109250798443111562681263771109994784876158277786917844151398061590937348789889728751381507332313629332327176128413632876688593217356650896481919777010834939237957439418664518227175901480295059745555351258448855585226861931519466410412109064738035878958478885204488624279307947167278318365419589397566035841637988260578993065725426845600741263418215654554860005431374552518131730717984824620234078627379198583386982747769230985285986495149609093528152881449738526455157093862065633120540486145848121107206795065001326979678135685463943773270792031947193006531986775143253494526986141629714759363664792610351576258068556640071689978203680953213612806242696862838845921867103079945471886435618871675911275840359136926593267429266232334241409074589814827227244293345203821379792546691659106878603997936959148964120470415222773679367309464952172140811041917813964776283431198796217345089395559796108470871671635724430948797768097759875958953169068690325516016671659007023264859403798058499782606818480872433225225286018366629787739525995360642634542386223212341165595178755628405032083488854772658800701327597461662807646802110375459691024517439248704809547010809341850483415040705631663513422007993746646481404636475231006421685820560327847000035622336335101897077585447477912146555604662011211329180389788959043884262468573105186566278733796370994399530667177952909172192829311373406303974443152335863398977599218706025139850575249969883856343672108337446951080065714329859878776987021913644483759896746670668272218763211332650782821986445577677610673023771770766227672200069702587850735210924614224086325602554078388865973087225324656418418274560108517129054625458250339277405495699061226768598930542101579633397483312706251019233173234440543915836230232106192533398036019959275217426321504509812859129262224573675062843349763440438064018188811101302610495098580607961680851898984895856446109225536133339706177701932524389114809123419327755801367542114493467461702704884805585717259548942603714579863193263834624830726832178586690080249605678585291944615031898658016070374145087597855272488572033573345803242237880437447428879568317273131580931207330726169564332288836783282787198769293947468052986335722356390069827040009698881108723867120136216440469011639537116921832852818183839144696378456958530764827659573631277165502127848602553424829156829076151543900285070071401423456069444450921361230745695573586928908008354336477181565892050249637943182652433410965293244961515979769551046307400572263580758503960653516429607952402373945647379415357137466868582413926772780925779097243211412303241077691735866551502570348974053069478640407339534321338861092575574032396801131762718396224317234384521093987764781363190633423833857762770803050310965121100582234640186000357661781117275386333238769317554605543308303420293821141500750844679597461649865453852704326275553952019838365009977869492012819759701203701757569219621013351500768246242945525408862270778173171322230101670239666755401294357545595866350861398413308018507407758069503327794740167034123849879505722298034081728590820170436007722842103941304872116929341863566465833118229379158159248095410879073263257070540512044004901632555913340982149629751238653979167381127550606668647476977167778779232401568066433917865892500266971480868198983894389231095086995258002074671286331800908306771982272354661048477329077666394359211739146097090885441621421427041234658043294868601163976576163044059327681049219866430828838345457814076425168826675469250791942498218914682115585653809145621375611964870418319403356063996846712395170671597674520082519655781648174522243445450692229528213371707721215983960177830042649017030779396710911096755909438728653454761543343269184711576492326709573207170477344227878206337571791384416113613160353805903518692421329563173419228334739304160619409853864852538873988564387315526842739218889479933826880339080722096036546748164959967400076503468597090789687615934103683428610722008896685577194268533536839862231703806811232402665046545194716129329066597614587759099423804583767384049567700851716398627318441315364121315312004900884594153646508146405021872122036854648667366115265492559670714886755967362888745300725096517694886348921032538011064502904532956185176759147458403325958071794969865929625745361463404901127174371936343954944332591987441392807597323376484628945641774832803840072199430698763109830358120725796052688062136791697852422608651077195795131759555167385745147644491018970975616323977077146808822070183828482604772067481017182496061221981930170858271560662553678366821894444695897708220859334392950585929341440746794707091811586729034327116780547524058625465216135797715638643590335964228711048660012947295573530496179829744764555522587158099582521410047312220109605912073631402193949540778050463088268165289867570588064556182351768631919600463932814555257580719689001396971061970384982850854902266263857051751146292788809512331047133966506049608960385120935992596482443181362677700894325541871845077175417151588578932153329973933239436168229473537753258238710987353467589775750565270709525349010521922030825626922222022087439090052219205951681331557871909611575416089447075379561198461254195519112648623006428552987257702644646735000174130670565725073676176445491289281203137056836823683711671040026371379059936103261744584292983420166558216412306743376087464010832071305600419256918855098253950173232464465468742102151288908055028674371023164084368508316664680532820941950620913305866449265980132190306899588730830691084554108412751573093307737725445224423678324680388675122565496184227251444511062501657412404452137733957324048079390092133804804203719443068897941939581460196154336184641562700366299206188410154304099626066115719746716537145005152188921080623625814325061344418494159540423017300636698741318682556309769368071379736850413006290971465016610623501833113841942261015116064217932440042311626609041978190461395973599758959697249204636996682113077326897026216406248947240341292331944051221824634095342614469606922329779261260970634148166959335563960739014120012273899557447605749543239790460840390046360325271579370863576136714604183327554438906855179647070074861057069373524016912123771841817772818200513144518704800893367418344474639398677820520795174744555033718153948766535119570214346002245122970755522330822859378217623148878193477275204977060266925933093226203128172634171852204543248625681811561184660888621600139343535937821833695981583126093372558177849437194077740867297002490554853445067125041401477522362606643118311678188394456872801427101285370444115652820317084578169480292881047787903237694034239891461566330910890655751320760964796192982124484192181481969268737409399818054219599554748458239849402171453140168612058209678350262155040471419485725980423822526024771539698113839720803886835119051790414937014495147793280628108875356588885606924281004047565006379946781838627246903598915019507438156865382954457197044460050854294660219488535501041953750223370312030259503045211164803472430088896440406950674619602982245882435872703695551682916347991665258571776390973085523395651897322098725966942366049835598116166824119360678295253854788989098936009279624672376206380792510305169191264146063994467328613814636520705775271561373936977096764976574185718046649820666428950968231291145354538306504270435208278590774886910081595835281515957985611931786834498526802262291016148280798583434089724951349951256433869988155242260429270434365114805362947156275826802469714682569821755864575874433439050553841775373004213463371604575976545121005017028321338692625838219818355793677668720481032952721981420967792699833830047111705286254242747021697883713046525700731152931324884940665607681407867411186089195822293871495152289291036869677382223738019243965232651886904443159767323497135300258911701763046592241749999320814448062869724930892745976892599027854647722660408346856597960294237446240302655695212975486798045971633794121198309655221601766361374585310716040844540237308650309238130389043002456742365629044744782024049856341930399511878618514704861091441389638063370052764394872439996630168309257133845593713949037372939004454116696722387629780022282677933816134237182914114949561344790911677113237540256727974205928180828857861667969408394542777621621304934553256694873580483503194219385449182750661893320157596604198139200762246395483548510310401883181235059014892153887537016243733145052421166679812163920691007432590917991595298030732203542548369481223172130111576532103400750177442684064529697551780623459482303199976694411816118675853363228771456396212548428377564466111544175416513450131392881587901683123896036751558348307347100635032670575554215529588795587394680533072374924756735143541702496607886187794639081666829090695788581920041631931024040720454245063495316235118944196555501102173889440559241170349356418438378174427770864354527970716088946263745025659181324516250842890703120201158862218617848889279257807070109881965424734542816646550010113816716521487304515912744355466856642617654861157534394815485812522638830079730202277686089829734382617853601691542015547851969436346777234001308749684986669440352427320595233035455642601467155348709962851529813051081253630287801575270099309434552536346288462391208705990759336228693157224666863273358217663920124916688210480010303648357982293762861252142723389066879717281319138018401875492860072053644219564170549883591148409881241232689900322733291026847559931099817489231915672385727112080912779863597799003733071305684925274609588483816399827120987515584873344297195819042694782908607641416075948657223964266721605072157174023405346527915231961633472099775269688297512457763547778681277225716744247362902962291157490987798630946673607870461624851208072497680527118343287352585350075202025988867912966518267246162686295912079449016565811441328578255596830572764843198923226977400506599792533976660255413956377952581205703131732075047007288783686088828766738193214500056050926100579118542496999317111340853462581860577524608030989196223673673592847923322064811177208915100239085008677084073239751896723849904478197149634786879932252982626332092486953532384072340201412321971089006040726936491624612095655610499064011941289944912055771224750909627915347111660336995947292402072471048653745970052050996423894632065642760994407157616344609348042189422270980728365688960441773800767556463200070143463000655746230993816902560558018313439258303013368153185013009721510370137127175604942543929105603797019563170428628660701048016431802054763266448633222676632810694410577519628762167573277691158954576478052742631866408480837151294135870070232004096212785427663798934304842080772521974927486351848369741039324274344192574719683103728582855435650475784234380727059173216526341089319759942174983537414337083227489375011676997585532528492995307785714533568967296455092655300587129543361218142272466489550221396800745560741612513129893726735728385426501954715318349648028732239672303292424247877524429347458517341857241607927491503688043065220723142953081519650428364460557086461612993445255947903151290707239393440957652654977739624897517291035697256346510232639512697669842077146263363910783331142761125372688329661470541830348639608950707459660498962659748734116660168528453627089076381229752222697215238314883851328753069804899701487417987396845987831906209275072769768088740951379669730434429902991159422639587390629897565649707677568849658840009256839942667015703165386414706131115830693704362117979668930077696423436908803307196139379391260267068935592915969494147373628364206608771258529911601878855630527294664233230375697241291034143578205554186201350168984596505334637462211788519366974227536023564026724618665794879903234368858112578635231187240082938310387033571500594187436494617540206327507038165454412095207021599257005941695032391096653153771037001765264217630546290434181351276143962266386282281002915272993753442145870540425436986300110463424082935061883410132976510005813347251831968290322535166807850434571293137905096609299047518382694811772700495564043502438095093894275260341679878959074392144906588536128444123328350595518099004130049742628184630176484796769147651149092723040434768806985345766016034174990209970496406741914817383828008054272129601013778768200518308405871296866362331190520945070585478146177646238425873344596902543508106725086611849778914821259718525406550881349184700138182031621239081794107198465101920692491396202479359969407468717612216765923712549543900990846324098749298430754927205027656122228030113728866777809132489160609196839855773543574138504238462122336008656668779424232333658102079314172540180960391774407020633165650391323158197725798209961311976200293741723132922804336177732630976230975099625117088611675810825142353075881615236140433599637095748161684503877606344591175711127050497140610626127586753887139435079257316293010575915129633708608147360240260975881564648282849424791814311934238112548975391219052949311145228984355916261865896385945109514347522839531285638478734109153674548093958850489667366142317609191102499357071403225589335710413651891831613361130829666518945733880404422703218960165581722744564391643593191501185100555268729878347279361792947953516953350511805324878126908112477283344639225130629074475789857971864030289464591494043269923671298244822456272899642908102916831405681728648041451820706775793117508445198183892241393696454696449142544201404277089845161971533411121392635836318099111226212237983817376156725020998020180465704106975573656278519719871525512678092802769779448127040974426934560624988877189294656186512803423048828098681355218501059043391833952028217149814155450991183483894621399349320209509516784732213753611181390277596441045068118705193849226629190364203636084024026089022374566499795062367056719193023142672603255661619357835162173157980325159789748256164557288160844799802489462066056961527663590539143629813241064870516015733209108110780329882097303421188925009710391844884156041241785044464592271454851195991648500697005737421054458377433806748481136301606242871453562341209830290811002498501514625427309269417690363554230079514773266072222462154447970350766211864636561404165978919688297868969470975283331290798601896647065594565527240342947836751128817135027549829499290135031240438209784226940689920103889646841030808740693264885704437700759234608948268403356424974562935571951974132440335868233394217571004679862477611754934211198173112634270547736809628938139993773632678807817796775218894058043302211754362788285967940356722446097163992816543169826718839487775575526949612340824929953138113826908342973760684511831048223452375337527140561357290152291204201232008804773747674707517934290688318951387547432872458196060073259056506824304574533858446896403422771850040233162670696129865551068281311797748845944348036001123435378752769046132103458085483280420935632972125326639557818131935998447635814806364224317401892518697539501255822169328974663414844546631707396979920714191817490046719889857327586388820751426711565553929717465485764995597384463438532267056044267133948066622879076980585133620346091496546521181017671715320831180822477224128014720245905089392941700745987287637268551240276084654192259926992163300657979999901106240017780422862372962140119356386747487376846773242229887323224910192651802291965606248784403112117447969603093697867045735019316855071352014119096089123399318915780407927028166406653639633685150200640581778742784714481519268507200268310729384307266035195306668206841234670785985610340837739069743249406800262899068634201714320980627670351673184872521421828363490377750337191277228429117493821050332543143054857621966978492556972028160001153944631863698621867024285920703212133009288548382143574475991103521347175992178957360031979591105625066665094840002153429765492057263642710182896659279796666267998683415357370059525840942592984965537713129278239915354572080633813449395517201636058702332012656552484181344208679040851909335971073337427934575734324791524436560019360807739665126896374859227392874894897000314055436628184241934871997318118269398737191989181279138064093805316755891714203379202960105585550514325341541459841398742405291176958106612014912651137280300551800476245021611517661216396454875477183707881540319651600222365177100448486542677525814459198814984377230454948603160077305275635679921753009483314976310753182795597714396117620206796640598575884556651411120832825142166469878292129170887484004555733585619391607549454870374115018913355152107507316705956831717569390531896790191313413277066881669663967255693875789469352712333196900583153843725200037642595258192196852977112205967901254336687962149100788904259130026973680062665853419203351800411797590640690299752752494636808914454111308916807340883509608633916952553468824438140783328219923375137880599049681214744050569466309230309628711258196222033442042241054182744591243262801647255341178457166798039989024375990310261252292928129066931432039749877816563704681453527973853741907604216465278626065038133899069659871059485795572286121924002566753953038253967828434849907799687341666707509116585679356536749759925973008402625013782338648092512853319906295980889349235964601081707667371046882006323871572108867617035956251246894955268048290655530577717610182226128044782875915826461549746017496187050217480560628999110220017970295377622247715397690207634292441930372563180414395272243956513608970952645578298425727167027588578983407208717963386198087585374090554991608040491976894102149725453157369126202229929317715704916173121811716212405635858611687408267315939263030522064559379281663511545306826853431936147911362176735004261623238636674243814266150762707315755137352414865714019261117463122810033121804039992939122889881646309740831999407270762311337513178789424288686912931893768153203356834712071381015244530437983527129322521979774686085025670854049443012668753799594748083091425241451057004029048656393079221019869099060355820251742898322047334710918658968694588564598051306972951201754971559158921899064801839374106680866754390491242098574875537026734969295857724266360918686148222143500130412095902441704440844254190386637412059552215736169609141180550620260079879316557636094835181752563596081215337079949133601131391819649274858512297079612581885652188747626358720200499203226437380715407301409345514200333726061335895795268621057990893644979052947229456423004564957372389511839879460198212404408829556517912906021120946672854422383014103046879516194360127054164573426878641529805542086773120494318733110625027438344695717677091606670359224380926406911782553700528401668151643208896087480974477980520591380411507687391321544784018048517789539106967655141607761915372113711362167833742450148260942085097032215877266247255366143895489011728645818512021299178320452741166581908337308015329705054437931878501410491133548019359926668583000608581539470543416689128617941117563242213977338444799560615194962796117885663857099238644404833177327006559567456702955487526183657492867095949912839882391165702466659978004138908699682531613175794398210539700743452899361056887126940906367434559053581625448079680946593896978059833183224025008945597425680553878339022449058952192515220414843927691074247410480645898561758115469918862051626408538164110893738885845686790395296101266396793286446930417823119808067562323605680312665461280253078897944150176979744846133747440148638413946585822721416693043752351583540894814098329764212036702892911157362134498722592617642957518260856233734791883736276147866745847026674352171283038612546223419489893545497790982770222348489982937442001170674087329730573538692990024229972058722892052950653181586158867176419553418118531490579960682529396658922481763508866837710110502352435185277908468435438204668699222320730896420622769553216312167984968714257681305649183359447420091484545723015746487870677886554630870377527824166949337342005863315886863677687316206243000810834032705992618151776863579764162978793420765189647351947829855624773646347747854944562542321981357641681502270821272540435234424667917531407526740375799829445352069038323039428062424473295735923365287473251000034070569315775998020841998239109672862237822037312004055730031093480077705072430068860086276706312607586514555465107770839049110692930576081246132780327231727629731515086508058902843905360873625525705972736693802187201348440460637314669972523291776700153128991637763965067425901726109749615542540348509689458005841882548456967956054835361754399447871494511790928153884246498716938646290469345035122127897471054895533263614382560270171126735510901297067620041748910631252266526853997172554164054622445640941447862820026970363284115751457127735978086791277156548632127164429018578250949319153223499564556734264413043881562011841778204292383229873927254936931811315273364776558745161058082864558242168445518891639329997687366701388630379532034729556432968214523753736657862749012909277864172632544683688304575510734738205396519758448738630383454475550769778386498148668017590079169520535853939611179024510143573258307799172591336970557517686494735256181433410598987968203969527356913449658942073377909004441848510062373810636356847758094578259782948434171709653995110811100751306072848539883505017608409041347434158220656812056334266207656931598180560253609029604039310505498465291083217788806378027198646090822565485525647131596993004550008563538803338713272336377941886074370284601632839727592865180831841264291331239511895891277211977471036764150404914170394211965086529145643363919851802154537823536631560927943323873037389475790091990377987794804648040670105275288487193896160125286516038312517234638072655761927771107429749426029126804550011862044416279348639358488160704292651679790784854479306152729633509142533308452119317589226748111030443378726999973244173826888962346451153520264516335650509769408229707665021520967837486992359973173643482583968800661219724160116823616452608923119609426545844272453595657026079415723046456715275379218280177680543694482192028711673167233946637265737975127810491815556371754084587880149447273004113181428390138283668133577183098837810230940653561979433641101867303166088225384955347781653110096197101161874365023238567951157980700536959886487853194560913242955851061556448879375161177622448300853983831002778241944514595287491114477508059054569212960818714486296953069473740053934771537471583596323932823615390279669322850040173536983948516859965784630362041310048178642637009675763156511004961381042512951462465670905936883055915293382858513167656047671732269931631613916238629981675880177319016881485732850401958348006501823116985310872677001070846818451837767140137966324909714118362168726949265449867915835242505362740846989848995016776938822399755094881449148863085958189918102860529385612819972496954741310608151883757434053981163795789003439373307321313258930859425612882446511822922133040882657275085928353174875661168175864192783706672948637320715304276280512977208611176581031540575884379743615216930931906193444716749259820237918234147261790856961900799472614289828353777918712630703543444177945574970656334582725416947486514057256133955456556910904272851962076052710231792102605851544049502210401059615510638412471340904617509731295363602975502276597904239278197951694001224133312437706928444243910884764584556017368174892884362119802525292921296576411442326759413869799419198106415517582725986758990418009067711465427558760141916114312673417894739873561554929028781538823549084190832307328745705389495335898774416175912546484163311745493883481510098742595027550529487920655878221351854208391931751245711114758716574794917480401610846338467820127956048672018640374692690316349338604223443258571488180976910302175484500270406697435206133556153791198962688579894868159208304911252842223914428944095984917494910529431819046462649604679896079095944193592515708661159685453177094018829098395970431192513566376612748399111068481610256661622936322538930191178076972034581299142256237179004996845164690824216549406172330912927427094800758072579150709742326679615742631317091015294747434463915908167458611959554358418006233182487367419880778903475288185567568516168207996055306437189901123795724068845949173836780404069010779328991071709627710839168052230741891584764387648222868070762933808355906741271075819088511133975930375820294289248838910086694492462418664882203721103365291249918413686383149211089677206373857984199566561910331921223949350176177028721728164308545574896140738558621919078733491226373345769548670412375718114885670820976284265956198908256588772599108233606266476617051477839820395472191560830469668387772592926736560943967231228662797104974603989145549067383994591331316561009322000934880218068814980519825367901692859732521186719317259450010957395563090062345149940825491959173761662994931204002765765146059553800157751909394340278996550623204268819343172153843453918818065689787283140817264943470734366447495917224249404771261304043047242002021335757491130059502653411446772562986286784041432346615648221361132108457852248980162215071679712737306672447514635416432253162715458019381694609297951656947000433711932282982363051557941018313625407036210657606500182986180707199475633072915603590790593407668252321359170125088294101931724182137759037079853716540594415935078543570430515418114497672356005953667904842042843983188290041458383047359367094823911236342540290012200478922787018555534853090174234947707224579421797994558637720013030587199899055671958066785711785300555620220741500436750036982635595174722287549825110417191618442407648825776239802049077623817314300296683403986801559695070273367884812720448433164825360944212667541464470106508755875120922166957592164023169378975599579209190767871881168377022555697192797363870085268282840064056249750940954750483297105274069848085032033769723066737897027049767471563302476433225021290587771092360044736665141510947528798486250405869923065452169147276543480009521740046352466952482136385352660503788727500303443285207099374047819765710842211777144505465165529842452306077217116065119488340051790208168830653043261047217488529682282453556232719692458046584369323416634591684055342534733020456120068392074290395424662911489182565725945790083295131552226544211702071061867939589032540829159536057960089275929758300391244194656391912041770764692015377581331543681822636254046257508802668258996875662327818743781525058602927915676271643873512061514507640188548928370905733590721192191440864572942248440078201303847716799797674743936729117175270966578964628887124647728961977928946222974665817239236561056193343980287164474665444113641802403450108462228597493282218819045343176891127798996261693176229709966165686331012712979095754954319101202749779341978487824516997736561128944830470199258404090364637251044166705697684463736890925053182578027249058887650598019810268914820796353379466857957147381631149980962958521736779510026959327001416537025350583761689678862668059508465580327881861057869251967170207349999088784856667245881113438318577540071544352155916073838617446660721669313259741048578552027781919841471042746276573930701773964111425990482980524623897103639893493016949445783066752252433829544164652742418529786418721830083579050278017928326501578369299277256862460128416069764074424274091143837728963841512144214920472708709410930472429879347627936803241886591781748444990327810215891031336624227977675532809798435974871375930777043219672912379017119448309865408827179717070572181166087481881658865127535127569944885781883960219372515270194036478394830660667702678609273107171982439087978438684692335194252590012739267139359010505655819988365747983065062396875111487552340293850618511102425559395739966312430622320122124330498112390105658737661974107681803615355414790986079726647134489078669057327131636985000551166208024148802255597918638481420232889614408440242903189598696336290540595532160186245372582755438559334924326524414629275554603491435806829750881835392443682603371673764745632186903905592068995011095508451606219654785871537885523529919725418060664946874153266248237340423884224125568858737810484977275950388901494319061968230269035179508058104649186175178396047053803179936882290791252438527041819906240467902216963819386471453466563605675909937457426279198164819871551915548928654907698132044877308462815329586709111581062757133882601184739042070199606962544605248612335835908467181857025203863251259610577187546004108132918755150226259146507330706012845116781126347267484686787664108130836776381818331210973808157962592563600210365794987705806017407645681312146477625822070108733159214858477162563651646301818527051408544557040198323218785550035048960231537757647618116174634926564624478651510509443027221449539043567977967268096565930224788441595793027089041076437916578717589504375374109052679950144387875091538735953480242787156985556495998309818465077391364707107866171127515020199546468864913215760436929549643870880288647151725150344772295177521187180739019561875304930681024573945336341931794735877149477028390551313533271884293473785071618374147548377125830977356921344043669138621142844239213866890310824529425658514600417162368024611567757556069708597967408044755545328769688829252952656527730641278976251230879152506930259271150678475906872408003495670035907463812742931601875166676762882675139571414125567046511892642909226199561689362182683172163932703856992810444375066473858685536292098651595108685308181791289922564296297954716957837302849316998674200845584111503839423652402594198808584205385376468881474230218267243680512270698658546108589756062487475775880831914661663115589168817007940483472412739350601233337051585391963140986807662922299136390964554247502451753440642901885364552983243774135144204672271279862701916154685112269329039500405082424608770734373000596020343047411997887172199672812463101977300317014301320385203637661256543100953635797762349297145733175476689127375405194006460123618755653856745507418286987606771358527056958394905565891171417118456104728180828160711620028970448114924587349768806892092003731680795864257090552227826747422128478894748363820448997185855567285740655716433904824068781562617244553117340772092602403062416843546971073760364178169711060165643226646245826651754736070226933299109900875714695091602208988694100343173253951571513584111817951939916861604773342907362251514321452929350430126844130852701752378741408432462662621277165406728041227645226731183073959202939546572008994249020277849047810600706304858714801617541916479560568881720343838534955374441811954996302447038190396606330116492574557052113158650353370959233216919839564536649364504798692804043904269473941735640938665333946553956535165858059363044996379296818053375305910309707921707611962443712604236019696241637669268490265429231082999609684031335559727356128411108380847477355723038570976963406058286993979110116672909771758759076333991444617463544457548922689253087998055054273769904978836913763192691270184154544392967940147635309893485100765549396264893462692084458451678243473054346356753204721316042217061647079789802723088690098486518644276781084743041273286907014329882198857659466207019342061462260119756186965693898552833806710981480682927191292214960505777705831792588159615348069138327435877986421072336218004769758370553780273558530501154450028675671212660234503413653433586284896989211253170465698851990881234137252829727556179679177399425505419238428083081901388704856220520742264010527383972091417225500960411629732369956246669126154413234026323904319362054355786228020725327414665000561718114496070651013068542650437629219780998125937407900047218032730999365619361415174669823919532676918582485908924568712580301141956140587423960024614724894173296163210353169080618597684117356538275606561822218763382297561701724781510778353670811451312434717422303587051921342368413983749742884802737663977486403946853544070767630260905180536939115538758513839010180626008336670073842796756854543935341100306511344433376244165016196986702727285550830532135190453935565455291399223326350234593648920059975654444649887982655280551443208105467501352694129409528343905956822586040984779690961628004185919938619555736184021439734651210949018343951232087725139900920368962908328558124636146457414953900554384272549314058846979828933248496264246430753640772288793960663497108751324692553101821323975720917458405815281992833456988081821672999882099551717698550824393371107959048678894791200724531901192426654498284112180631512385110724067877466993498625372971166295278644687238507494846001532764071657529253819272272610782809200059199979997252952675479739793371242978086952291524706491910364240622903530922004614946416923348830542098130005687538472731255273026152049802538972954543703515430561501420681783559289844346641902516380379083298291963276858359816472414202467272830089655519393836679665517413317305324443882941052442980798057637588512729550547746886999558043502356517246550123746617400841278769909107209151702069004576300233891026863980997315405262540582251898213541137593298645630900601863492601802818345218533023148401212147602070050398578437649923459444704324095999715087166967796387329433427211606969625662759716770970009114240401731079801121393979559790227508579293500279808265825812498895255375063565644697107376522760240647111957657920921409603664692112762549320497827089898838802824853910829472108191652173979162276274588210577261433780433085068904690079193713830771699545736809364365205582371365898131050622194687727962391952047767303798480398746454754178103983988891754165495625118150427917089163697891457809089172147317316171297332167325403671879484394444180053077871602335024292681682739773097344693384450910054345483386631740392389746225399623604209553303161399679800569985787478354727847320144907393612937171771033781802877376803389307253935250650479027742763466619838817626706921329216901290295413266046920124211985908412486467543282708649331149445118981744661680712760347182290410504620305096027466126907599482646340657216051549603402029857843413882896968929256536441793383024530508385211513494711976381711399929772112184148936602118260373266671895405940021809481263813690808376945324869751493544194729385678757891962259608924854169334321287810203156162059717861939272362641955758061560081415937123614903204054929733917397234466889815776764337155681311378818436590360577953815775479982140571740933576624762323311008991020260924457923954752038220605787476779367878877753224495807356632682529553277885633458626844152688934721492924655194280371042414525706296529990324512161296861099521618793654779490371126835256315345723783219949595308649197440596761929774936835793834619020172223428283197304148164354996725121798290338249796535002193664077169130992441711197269795049101804340011478375023911308463280421282030767799203198684823335058958444696974370610694575095129092178179051014891469913143245424718050600747638772966910861707744800210088789770650254918834688145670652461984885035813899711243518799439805400396486959273473270922180493809051946392738211816702569803878613249919672744787440461356082557464490805132996001894224889722285156046457087210160782095132927935474599709076887173855553776488804646730265767936530997290143831258485323028647469926921485978573843440640775631634184051033241910277457075682064674688991621755711146535411337733013868470579482577948502744720210577320448329279320575815914361611136115260675146771688346924662650166988530450100404347742226149471672719835274403565802376311950698655449828206494275718706944408598929849811620018311987022146371749094453451961353237098199591892487803581233061097500954665070942093255969754610645343511942029186374648470991993449602712352852968317729721155102222061571262401989759221215262785809233647554335887163710411336708274298714320442167995842782966593763294125269837546477335815651987437941366169889725301697180443135579822809938405366530377136910597205395400559138241524237700868616865368500822302611734703616844511608090383918652381449850164366699168570282848257997405073288939570313098797792110280302518754108086585027722196803751575115968140696387486000821840091044642691684490458347606764163242906757616968169725493720152939788890729070126771609200048725312547683796660956772402512703859874245246036572418725510427424905114444095339089343081150364047712016648518131716741892386064055219099038925664851856226986224101842479538261897505939585666020339355204396910140635008725231495804929556098099952912048035965020750377789528275209534572580163400951390568096193508979628384562038741766955722729779208562868128707058019071584462801182748953098086351066439273572530255010096403927460327806104808408225799942008378601209203790738671780938524623940943778270034810181862870452528078085418050446757096288788668328175149761351711184889016701126414732304795401401045422521134287770768661011600992208093101694672622528009609037414021042274079430120892478554050593761170753262427043769713217374027349438236795246949395100742671738169042249028305131418109948572818665181606254134388829709414197462475019167133326425303813322133845591366678504076656007448261890058185455358081195228076271955712752257613051062213989495233969863220304951909325304153167849821981532900431453803389918191927180055820690529631855270014799386001418472150899866004774354328264827789996073363225829174276282529280518984205013546110677960356644277896258714655804796556745488204901651426024178560047104801836439643513080718215089192594703906479774727039517339254608352199446317289760691132747700752032486280060498381202635267580289185665739242729915700349446055785040308243128697457990368011682609912245067654677220346758185206820028089937900547271179890276344432233895028140491126692615881772109240772670104811968029458490264986412065245290385475411033753095918337634111990207789486912557415128484226542430323773855894590281239519597529018285591198306906027151014691545368823777625961421878785368689948879445835721082767113152250659395959445559953764703753837454170085265998020268855295902356980931295904655953220803614268373503148235533511518406933564877470094380463128063842082387507878275728765164365903596052117427523958081235815681914034434917756548050536608191243075851867493074233974551219523180339708050487347278696857723783089128920315076024223838066796875189441774710926483137309903075474240914571606121596656269145744141271359332358203625857507723522926157737459608022479429273997596896143790792808542184561851540844045121878257309318404286657664434003764398866933637039376993540411358965337736682207629590577854844747361413955936801277209466109211907433366880048983658617399134498939813491294323657912863428524553270090121072888985516888280482039905441810191872339861933683452720261926184352188154410453098108427295110357823522106256667939977960434269553362906455939773409303394215005694205660699468615971676948455673941261104215521612293963711435348015522882384032558480343212158489163740406006261289118798196683292593095888923671474519942837328110615487355511089391332943593540539918973876147843143433254029333366985505545537255123170616847131607621228530634302311271135268255467375048052101325272017595777020510059234839722703309601478735826924836159064163939570921981582945164073844982726266563669099598696127868921104632495098066886983340356655334221345049507572302094700304312419775820456401820068237973747704954911157626037780741071058999451436116880338797985735447830882921011404756252829427419823797324565259446592872765035975210507991077520296962799068484865631641681776870413854998716415432295292859737612133989121751602429130860206565037370638554963824408306007467910343335884047005368387067881971137639007307835989997593085742356296893410110455202533125434975157924188690675107931910209595258307052008413609463029188115454254769357553566755275129366604196080768481694981192978015367164887637113178695451773752511684796330469700156380291031737716017496539226018792177930209824496807162229367158124352624920238280078978783750022588232930334228224630336766636899419896601672558855011513385855006877108935134671017237526536628611968419701901357417787434322222016643035184495767061162813984605173833857099123247818597708817485406990465458127395175829715498254844552252049287490388149712496936144185597035830757525561579066669253176120034379094518585035055110193708453998622177664656305894117124473927067864412262591945850776148448151752098046669482271648650145258075258729979143174962764611029058266875632413666723266250127241573140646101839468609603276257880490369191495031765249918968590903740890540691423426184677108226850826327091684783731700345632821237031848076894527546783936524217924932613834068993227314613167935603311788069712011355692549373261097914429739826641323257094936868475592467950203471832000093495257186053089879603788471105899105163105965936434824599893811118478686487268061123224603605761509794797796270721666944999340262183132337864597444806410155163854619999502009076315517338847713295570958045321923975041279870090166649977239693376447840921391816650356676087167810756295525279467686517948594190731801247510722713607018376657243134110181627988591580949892209558073395392563934906678805510605543353285746679094250644209519868005117082533540681764808392581043163734451606597375818909439572711367733536953634389974914080069721046069471537421369990502700224665061941140744416110426700087873819671907411527331334504233965796599686004945892840778825867775906058772396268707051404365377246293018806433300917053945990914462270132179409368369869611761241436769918028738623936921546656489849019877042898691292646421206809302126532640234230990073934988290392619111101437831058823359256528546931733526239770485531046551166666683363448186365031959743365590708379359842373840077383466857898755768559187564111910509207152232894516950177614303812254044982258774862646705787330849453850055159379311614601546172772090287379301803628713286803684828799171914697018580845195753445007287942619909110911411134990285169607554860196238248996701854201390970949108562798014829458478041909530903290665768748055320642762838304051349332104258135719615400707934822941473570315614900532923086412574605948992746337083791784140846161956040981066893614892155300447813990374557689312215674611638351238107671989735028518224641330227679045739837863203005221185713135936702741739486648402714202528350088284513472042793998513434025848919307191064052279590332589897219333949738293750105347825574505158436012283068516780960491192037638661163845247474211202443643950902019183405627424636748666963957668453961700786514397339585825602331898550535577471042521577270502921716308002915214854743444393264419641348575203588220574579252385570260959282843141910920681748333028349268080223519260025431663580718410698488231323836343954210716269393277148814715136263453978900537759249012979680760763311101049213867055169996559113840445255992712464273979652780829415695820373009055122125015370858712417817711452523238784125228282099290044897361105185729844728521741385163164907036619605219607076797590749985260675222524103153671821801928299615173927590891864692747241267444061819712996208585394250586105622457836443102301712390397021333052835985743884792134483400646763554865613560701962217903303750638916490391468196132610723467828906529141699813312445161779920514110819846985324361863782314143456946967319293732032378671308659327471914351002467389923526313037571766520026928872786250810720484132756768463664324499983613905847189414007799601644346296616256132384665731276263992459688992771187983059641042027685341623746456235417640362597368992874502897036750786976810744232939767902139416422876640428237023920643767429208773507103734668707645448355467921834403990978614808104329447826021812894636688622079305902232504160319212143398612491045890881030275050154962541845200642220170973073892920535998340168277076194045143614779049266166905079777187883549952932223033465695034595227936080987790835134949654090143311626607051480762074012354488434106805334341194055274053534010805677651940841839772595753238598385712286574700866227827028782492417220850781837967187039949945342975269654659069832453754080107692175419688777539896601636625167126349770409513856556900480146263613452041551703652306117087043166555746689530010989189841084794502105140417424696483574159487321195580703099398571424176069021586871718482983588591762163183099054766030438732222178328995138010880147813582960462937426768870307424360856648773617005358978106245701966449966336045870073463235658299034708891205075591101405281558535974433488047429016803786708265914767297724621128894755916620161884270438957174658526780766056178491896873704622487394774700806889285378275406109693712610058848685295371852605524367000565515394114061692269354047219992615727713402849750549257877506978464095037897432057530381963141081194701890492628246816081955722717236356254526644435232385124881193844574353838502225486255878206564964755057635125730116245455151959594831016881240617345132782759707374979195610048963520815175201230910740104680514928313483574700925891096012368841414640766556329942691522327323609942192831037563337147888119760236474294023143426576549985265835480514049784638046873056999454540717604481931695968394139796149694074178238576243570114111856482325336571580345546761418981095841389527202989306896978569629960659076305741194270966005957459426877270769127108961563853289955767148552958523586878901336574400739182992764343722947123248496587803408129459251133255450787335643400226844269131670881840832088772033039296421868130519334951778341743427560556055386550729640070417525694120103113992863530318419149765242560953380593219765237717910835442865384175142780968287381295691440905642851770487645637688098403947463473428478734027270952214023720710126048463585386897635233894816984316930117705326951614966055196771223371060158690906659835016211557545514791717645260155407762699424151464708200345772895482404800746509146540396679373100420036323221251914642488043297361196724964890758780389899469831012363678733341090938922030452374784473773303809548462289796331497430397406665731907450765514527110118355104670583853910738779492166622186133684174375477206034881939908255376765761458066637863539856882512639755427657187941337560758095725978652870208482905813175691203787932253849239115797082704402847568483331414746879828157160003680257722363558492806429270811101173605591667030871532764437692734921789957780114468993713320591513087183291952685315159538468516692428542857411164884198958047045750557583614151997064720952621465187784591315867308580581731930862216646940412492723733190101337676521718959512139862620494104805008312375678307731043604424810513642490750261647326137569910444198066200647820397759109207856509383521289525675521044378767241097945102809068866463000656070125541630266074212555430745022368287869670005070704798501019997736287771628029072672130648526712831374955692445790859920140388728529003989495642328701743640236029060712218446933687237645106715529947867308340005877555268153207031410409479126573147207848605481317083744129777803441142956358130758970055914958278020620412213330263385575069274020758311179202818877581241574008102652142527653219811006616573530178221298700851486983626186058074971037584883088130837600485217310542737944874258799032332062121316129132372454285395595121193098941737174833982836353301364869602871559345908657428240118933020147971649388583463471764584010799599942108950211894894425102384863495949780100831926701163918146975810618619337801850271171933946923411752139372206584271154404118582434125081022115666802794280859662617405542642060912686140156124308285694610184021392519483641813547256022285705023276884846651852357694859460710164357142997875476060932977165157801047601462795207151915510714692050377660231192054668795166384519088753275117386235824202485020522797870862842700343018066458540520915334862417164329048022771639688883277474946040939446459625573938594741009598366440375514151863414528647943213877399752684629833658172895428352503002231636608234159282058914513190330511814554655607138007876946314350024002423133911403214282388447044046140907822821228431923931542476699015173490390785637338849434737103148239547291931817620392212366512682970446046130721039949227300118031663447957430656399743233905096866792226121733376057291199987696464073925610708539110703396164025659031496054203731280189447508390660912862672253234128374252052061293097272186763795106033904079615194555207517235677375874724850325202344941750507394542992476501363135923084058983719817966313222026243076837291638955998849076379422144548751858625994890094438954349106424172395081523661259190512710911827036215348874161553335551261333878354858268860435178997522071253928749502686684385444609169112865242084224274388330495462873004195592549642409019913076324761790939378556838798853664642171719588259464256494243504353126366352437685080440431572480039783820452978462185698374274290271280331368263726302292565914719422752232954459403500037826160998821255217219633012331019030031178668386986767039898619239783051631871683675387272990477202610494737813006473057984780300147442072085369352981401516124698024902272975792135997696650822719105498389658505684059667614653579595041299850338218888946600019153436331115054299308705664786660038110147653927343394749867532059312111386926076260648687689527604950640286050949623601686412083917996625127717764147971481243211395946751053794032745333179531231034452810102846961930322265698091911614681746154944729432577836799151711759154191816975411100899467401407404918210189477571630328805134170505279088938854531978052001306651192637028303569810006969703390382192084493629674832156571108124366026329876828008339552910909745023039875347505382091654430747790842917697707183501102997788449879752152037999871207862099932222614538793938956558597109596296382469464509612512997129153543111824634470537924344474195520754966638182465557571536188999445758665973657482142089586910664689320225884514936459085928041707282851704945322583428277033926011773988123851488064242945606918098798844633597722463219456763000535635084871759806941447882281444230522299199617601198804945168564039151406330116663655859437367590399016441813207970805628413963810033195226494302260502079457029464905962385173922291104631161708705647264149606599231543671496992591481270883747795533853869152911131536645213956611012153302806419718549884882942754578026748308779646858103385779921746213702258386396236282453453475489394590240174320652272039029619075939642359737693110335194272247273334623440071255131798516509350259444844463374244022936664875467794274013246774652046753856832429231251815563226675223059094093645277042971708280758971209117898319212437035436183199429512482678209426044364524483894758071455247981569584879900741760209414389042945571690203671387959923876871445200194718896954381483221592960805249136162493919782112852330312377382964784369024432823901385908704766352576415849611292899323577601842707563103932347440519816015603672549744173590114291921199464287638740526466910898329519424595334655361515511933226139416224050849787467733465753656365767583947025759117890901326632586503933148901787191540227541216418509193821386782922709737667462999483690760718018882234217292314439404065082222585994389003990584921955553025794323530264428619343717504618851724311823656164581718275678834108012929383466793474369537910951045097278962511131131574382336317431761161553405726044576942799486904101315590857714119322938215578717659138979728247923046215061405199643405068465391971932196279898530947190007984488733074360270124091476494042152198599977153535832057821723336820358196554472397740073100074846466966553751114731099798152442616418735392927183320326338577060483464626843898301688939893442896868480055928231935900324086115030304477710509013666525988271192430085695397754909945288104251448518809899961002499631580331446470808366087720038035827937828861901676344825755571382689819865399126581478168296909592630313629304337958083901250071696506024200690438545010116494832169604434914952535847427157841100294691536979923129471730533865022958299397172536009586180589481763264017779357526808046189869436178722575319802878474829841403841109437408604188929267006849981059199193868628696217849924647775564845937028028858225911928330655933360775556749835486737133365260042833220899578098074354215181887145850793606965789384834513190739514479259590982145723025841340176367330856151589479141828435502446790297469100587885129781393808039373894292107812986914156930774949699579190851223160475568933373261674367693323202074124751992096228580621906565672678573505099632460250507764248220623565770547393084114857612994916914951135944211474616576671405084827758619194588866545332041086225565934889958666284512878868064980203172240968967933478649453864660471783041931896218513927662754566468630564229569951627898788428225679405688746618222168478766190057777620319471370584888854635331799794551663435113311292041961962763897381523169133683649619772665601827140326020357789120872659768827938303849731409313830808524143139023017890380295595202737003502258300863444064989524813164920603746155868334583278677323817885593076268808418833948146587334074321543792699801389017034527485345585284721373101869030667647918324916446651453656385855249122745018241419950927169944754669471993457537756065556117550338999314530085738642848487828213008556676364432141400272012568295968670638060376688270816334912461805989510839356280567291820026805371603479362862174472895304649244068888043369028019278363147526427356470325718768150200712840968994979914062929497710881730610916833212595288690609516500590560961533196545923737426592641564943430365191887453994076716305941234504783593027026346015963870371905656921402783103496365921359585188976090354021682629589720314616663077014210832656865566864683232975256738175696909504305332479382638863227660881991398094942316001723149731372753793177480394669026623494075946750490678050720817668052654717528495414485795360884221638861112398621351510986249157152498037610773233278827934681634282776392263616731118753876532393027755297696531379639702502808274181771274771127744914202163049489259228658440976793342237243167963794448001027593723158553300913615623387636483186960121652284389497635014905219265835596133609246044655293311166636572416523563036656197665653463655682118160333089443664512354487757626979854895854900947687702594717680454955916591719742680888274821670264697832341548601742709925546696908181267672152851203373600836578943400882807860101668729457586000604000089186048091862839526528460983626698946436898127617525354193553997876155674210575723823282195418087102438219640051502742710275142229762312798185102927269604707460490149450286878780913454436589720690791482057491769196528850723585089569015706745855405690011347481605238430406712059504124948198214150280834628267517494313160222507413823603423778941105765429031462807094211304059887149254111027352201400376765345425596583206337754353896578060154416828759383140245723152881440308031984713032709445900793706606605516924056723138838991604402925232547378547528223972417773767669625525593648312328933755486881562333697650889672659099659103156230486051793852712528129231074873702865873781673679060073174130968853623759065772993480716646786853715151232591636972156396137408999822542083216194351180140579760781597538421768002362340054474648197240062804664789747721197091422999689474289776848435696756594485570965899388507617352714506019438035061938518929099677733497016772807938853521646379307434912350021158417535263240799790736474757030070776196466691116784495476510911399040457620812629153679039861865600958266512983451988186839141086662566942758130356174810570056438435559357732814583506929950805426956521365535590916084831801473202420986121936689282583142403349382732655315770370413742038314645917905791993508959828934137149246666535430354691024217518730833722273154441280019729589847450201341260481577328003391563004945318783670056290182586972336625591047195136147940765999888048932336835966841425509775942773107337858709808288016528278034168801583834083379338887867779942106621066063205985046804849614853543294466809745757355598648980773219036057508118062529666345372878910873520947623702236794274865704084492133715295673624234074802395946175734881757701948568499986335447644481548257256590571931120049172793472025963029207570442996563435997849212520539474578240580007153366518915017139816656662837340520038054853314482254892803770891070982850517715778708676299521325183865453147658768586815165267629881199467122905128666416292311396636706737588721695868393878340592966080839076867141706181649311704614736472767168773043854102687791642221928407065530626326931699607730091474557335743987861669628135025481806478289595569333347329323970039768042941323039278989511819428374969893076434715797311969603406881226401910147516005803851387571259391753294002957545825614941049594855831239584821934592953609522511311189996211669526322394446012556399838733200473195803029434995403290007347887441516485939456449363566971376462069271279107257749570740752469456896219999677325405876471484763145172799917777048341502420699858971870826194301503680754079056824088858606167514221468068065296968717117342719993685132095519921501331086899766382720075251296472781188006656469198247307909266835361453238443581633012114542539137479651571706916871418237567532229220419351861419704347363841549253477472444489356419809198738752093697622256247928943863365842650409908186915021015216078867086207422339483096208467703468149604249187947494792238443286903974136416411567544205373791804413317142924408462489037901214812846909591664696140202651662053629689548674630219318514813297190580510662366899884750152810051474241483854980539998088545067302381181867559555960920923179396144516421281703787492710990011098128343992390090249580287752382162667667616399846280015761285318681002173010466349351899004446053892744471436681664438935214835103126014260751896726069436094187283022429150722412538955590735667845387778724995734178064846857049500346292000980188981032950115662793546101298268592398074611581548144259456153571294772902358761967914579358655181609449490563943569976939783106990306604756059887965855181764787712079077610774295025339715075782034772495893615981816026334567102838060799477602112129825696572505583470820189902959352497600830218072318961057183053087534289310414508261441169597928179518596811124128012657285522181247989230275842319698146694710922534747540973744203944893099768126296222477904865155444067348787312577225374435988684913451050226145861543837249518494184800854569139363063050112509882041468314389032592501840992919713532865349178726355453700882095897074856048465652153715365288291678524091391359139352917846334587853103219755746151756801052262723333332038609235809356272228481808554246662546585829258849712126138868765190404877299139484759905805513813580799670230759722564185836115477964980543803086897722676162045397700593443434685069479800457360672336797291058503689483719743797462157038849911281023896582076059489046300123120658603888086713062726833913285786472598955855813692943519055968423734398417021233708774750980831405480845089433378475048718195429474095478851310142773730746883852144392558894590879154316759513021441165262327267167979252913241399719411879503547861645863240904399960632523388777000126947278480857519701294207564310474154373731597684480365555020390983099787261819422702228910196594153615112161598241041348178430036941751263221652410001603637979598254968621209102550539568938159137584336903661900035320797655854088331515602178153041049744288193209621516143042499246488295234355439371356421798373735764972053578135820461928967499485580948013278401971533023212260186589275910898946903003739139754266355915696211658982557953992651277038251998940662407884901379794961032570081158677640507844180041958766343706062640549828323982409482547255480648543125051481517414525897675991577290419285247309736622663662889137713133510716862318892809085142024765351353009175311126797645566363822343574003708715859270345357293776353281570700861061991735280915005951988174443538303538802180707601421176965657002166512009251961928694806652715398202848860608599235300327072837720423778028634047883790790049653777996789579756270548424088588267202516753751691041232512412813277128122295203297292404510521540821141718516071279821564236091035216852293413000406029881582454249413815317044927062204486317481007654274027831754663298680554366927945283208746382215990617865565765850499813010498883267613575341886619493798444105579058555950536379539480343703681591840877044159287027633666092857166888113865740476443920036744918827480846373194922575722617113547673908769933623575748259632558816367937440643753471083476946846279481973021297716264997228242288852195111930319449047204558737941295527451288585522659695910975815625281556286380070327227200474643177195050117045199791884530456718198000272623914779637181597249155241216200173512917167926973990483056452000272210667404561736038148152276880671463682575098674652373453430122932035569000673439139802146412220443004186358347074180978221342698887394334847247156349255980004560451996076230985146438935541411549352106583922277201564312459124181855694650460613329115461153115242343870451873430471917091462220007383672355870930887526113709982532326859336178534025523780385024738788162434954349003390511753980823412940804544924424834843083020292382657504481957237803665313887421923229114124242011626974509673962030680230828212112082229246620351793121522059559360352862439807535659523544084243820372099977838747922264230492661545324243852534494099024161088331979122990117058594575599602114063695816021136243855499574658728098838530179850485399136448737830261971896631405114492943547970151501372393115730851662939844316921550541487939219476160446549301422994413987892862788625652966224965718920916249143112110635148354412466574209694953131519908176852663899834407234011192625836834596750606762344635655939325353912012324934654659166576686922003871243046289987628827839882347296793578661542412223861765554243824736572710207361706331837330187447634370793549760733648644701761492275545017381338720147543828596071286053797502069261598353386313923181434803972212521585449538806115970438468373413798536462267586433571221107844021974107039470117387271401513238648130835299238451362240614466762723481465815927285326404290260474997298045520526421007181402991177980950589998498190659996842308611239821887156558438663930884016135358890971311589676284300650325092885021290664961462861995764019311238286553617233266709256523758347525177627691499630641724366362820681245298372397545087661040014411870349819422506254267380531700190953534635107654918815305167307734491703602818020513544474021118361687604033271359609607548014236753211266249198089273347187241004572400264218979659711413176787722563424037214432847388109929248130418700730357377535899605488137977938542374275581451485618808738901722709987752108111942876590067574551732603612272701582626077639088941064106403790911175463398629515839072984196428500392118675664238206196792584392035945831428391845160247211408626491457911443229786643531461263198485568186263916463854167429841059219981672562201136000361599874038973836596717331776745111261232704103816614600341391954514911818743574681612097797538574626518116230523192653668486106582784509209524106572570454593718875970240347077010160455767078348093135498064726090843632962107815882243783107418910449274207648276039552927287434431106797854373777221422524569813279265756431876304657088161581188619090997401994619511977439181335409496811583852304823784645923308226162847811276769500785249555641248215548204259336408176746848010943337757651259263684180921660807352464876785907013620263268958679935049628133861459059911741002247507965964430029185823614434138844454527334041780364877005729835459809848189594445633975626748517531940726569205999867552704718446124697134314989196910663732136751205256541641007814736660161726373028966023379284002609635502180273014497841269007074733041539880777769930520991541801319464120867431424215316081993090977653633518780249364317109794605542908100690478559553986310227991348113082884009436379902207848118035518144218250158042133982451541549616951856197718189320764253494428679822793198900112174895058420770577015820121207238191240937833704345887283114583852479153054192041184887203124562705179128432351427170549667340665592536253104524547198465806250598220811262518179852489366136535339531902002594741048085919413143370116455991673608510657059872091571921754295999782056683599242384304492181780250269252368684360669600288270677314918814709129261555386329832839557127576838789932112904290296176807703194360698232739874162358332232838313906040616427238948918834561020308093107576135597461565556400679273330442433721668751951701468754179104461405391309788762216684062474743207943578717669737541297416339286006155772638366408846620620792626262652614527855779661494456642522913989114757555928949787395323236604914178207752300418352280558307555125191725709879185647884783836688236002098352510395025382134121298530160884610336216188552084999221034218577697425534137459072070631243398361547813188226981434420501302908824816584036259844733708694280425749250902527338184962386483134784240112841443342885904232015509775757045335152899244747719528783741953495221625856556331636410596112823138079958595091560655965699513770935908530304782973050257895590268149437669952967708512644983923903709910291471229662106550477913518231983194074382619469611212586404646820385608993519199577672244418395136921666865605009646275667345839622906255986358350701347867403976733375857810751517617550331786899099756099999614562484928504677363537756184900138326953529934373621259264569171655890330201178163258227733189862868921584656799677229623138187034017420873348245259547670388197538379927353202961797481032219181450640622588581824338116018686045508994005118336107070113750486309132860241663597944032299983899002161215607635178365054142060077675527211930789008431665314085819877918773128000072571752781137718301385934402629804512128746590647122684126488021604058879784280562432420306079466510259242341648098413338988182009099640273734228671609586814617015981138480053200259386887754821921028253360091716674938056806935117933914777960434113639223510595899231790990989471921954118976037797931153554310182008297122236322600876578536642829711149545155307163958233035066231328983804135826009298630057725419156724813469852840399672592641670180943940275810928310071361433520085033510760602524173686637951615779936114132839213123705602010834964260539355546665533533465464402443459794918634544204024863390930977308212520427058083746871987126010526359164447429474350178128947617807706195161380465982400565918491420530150247999052246965477123284300224743076173792581572857670335207073829403630655991408337175776602252959423158899761514983775015393025534737648560685317011069434079462773316412839086632488406552430254767099750683083679436662898783084237211301779361287491089984143442527019252712576271607551747271866190697824738363902013952685472138945934612230518816265596060128441513027646713492164452519434978061044059502334888186145417582849151442175322712790174869125999446855579929416093964469034114946258948022995868645575326123563558780009982806259031527198741032873177119497636591582056673960971792162828068975779639166110118682306527395114615083250289702032481261871850744718290648095894969933190742848083620105608492466787494145925843503863854512491730256463333818571295727286658819388820049210599293060795643002452118276692145292036101106558862179035657502366831413328064761593471455681720937137469289951836631405825179610914475112601081266399851036595879580411545623445318227950180674425624921489619692746843790820662807894930939051532574898638339387991700677113464225961175866020380694810743805736296939174307791571600772289342463464888861271347474441541075516739274824789817837040010170962662421825123201819814316271305653668176340071962835330602172873099704586973971678500140389569846700964834960065761007279267482998749113716801287316500219002018774533039541702936759084991872930457201255143850026335540546482928593898478098471494862473870086626876735539957422534944030150611426410291624043583867255001287079627564734116583363681518744570857743700271445626182498647742238118072688714660801975753237796386243663741833144034954806017369821448032615753685834112802408236914109121759891766684471525033132621366574702079976400570050591895805943839094425995671425330524141892265115243348887673529829652367355147458794607118705194002802087683008525904043531086605047006618796251005800871713878295860614705742730113097881487384533674637809707915915750241658209641981165747013737853140572889859047890822330777471204630883413136231702493703161247014578239978790751730213588086135516670404948435562875705188199430208965285702044585447311807184515416629693184744991683445804882736367947765878636810550822336776700666187908680904343078100583274863262806133809911695752460000157950655477066723638322662566318737659015207872651309264872113739745824161690650960213089004890384571486471187447152359915377655536868920211863660804025890629569038137122006150219051622483621924664665705505942701448830482842358922827652009480592223676199648843158922617593758577565900204817182340472359880012243038985513594396381673664722507929824438667860450336256323743606750942373469465124361890345792973044376696880173804714361172989137165284970901946614017218884662002613568698540738159534244592852035977827231664077172253924507710171879133125222298985099750390293439856850398362745297127494397192544202336834119200353921037224863563315965793794543570436984374699482636112375245066638805148081245714008967931404810857293076068882530187591511803429219080970184523390672550090474703335481119618337565813753119444015517772227298223165746549241290554244649886086669563583320912897124510191714039055246567811795407262022653856847401758808514379999581550125402245700431954266750222546827944238854218948881478723020266735819967042534994411892818833964277694316349644560711409359957611377575078328396661272751337448789088444669730052805648861582659563868705323828479570938838589096492674533600141649874302988297724694491959647351725052795280198675217619625874979041642940289132049978382119146419212991970165502258935421398208539514946297761570637466836315204669049214973856556035022012689623281305993584169049086301021139430271680742848255170739120788905313464102487861177023794389700849182696279408981160160065010659747986763385739761445813669032315535154491930409301933604818444262429235291558594594148934327064735385429360527905782455701104427739589564118179310286976200742146189040195850565097889757325183545596306286789977212205587578199011545410568433431791366295819176103253688753045704012123885589787751723794403617496110640464147653795098148772679816402602197547547654921720630941659670669606310330220525160144715394561964224169566932153540913915813729579911400689796161619803125776750984077109520297857912915105118898886643093047490273526753469460245965911276253858459009500220544365414243625656202407766798160176427678495813310715674281968711633887697025264077931724856934365046141181648760357707670404390132976942390613312672326640875175125264549979043248104208338438858578012800136337203174741118333696839094844617283572860047327684444465337548669796453920497352330780007167384852283662213490333341875958674572820991850817533493974079205757071947601635181091917539848607725786719432536489803106039373101193193760001673863418843347326299902136489590506425991192156823410681298607629607014301772222765384597778124954064093009880099700560783509379928771116834011961785358073431460516033006818178605854969245954101793068469179177100264346606497805611807598087258770410707151537847412984816293294311949164536134906716435581204979926570694457480200982209057628748462926712119719410926757362392706669179193403381406368100408418643884564159155062668301591672289892140065263141519004655160923881892719994497153133129827627438381669820857770078895266468099183470026496614878441010658815054343383697618946879185478024300306484273660091080676646628701664686290695199355580862376140489468587557977729181087975931008334327539300211924449053814560071329162417342811721889915916186871339393723899754429008300597044200206290685192913184547438422830287460174377100060698518419797974027618234552311750594741910786520716179867182843279042791504339511530751852854801325179915271612541607490302164352206127645926835868001530729145233148179529957560914640449429081632773984952388815355837408958126637776060804327088982130384265551981004743401059277534671944897471887582965616486258822682259625687107068186857694084767781497569160866074463844669600775858488959924298050256434720232495297862954874826621642086253889646260114698108801408669746385400154560865556376931665366538682244104118499294767196814741214287546758996821836837632878994043914667600704262710562725112128058558313966725047442997726734972504830717603880830327595111540956835051286882236501353793937659592649906894533954146235537533362689023969020884144895104837199693070224768801035431979437502688080660125376521823528796870138504505772593300883352918679860556035254284241198775605769753626788752934298560624224339288873525575707677989758146544578869515883536875684237908491283439454379960154731699010139327948613710043582915266058420687244041378126888694968066567727483090454228718694428388540160685457372196991287901661885260149155062014239692083963791512963481752124854076958642175067102657550776102015686456763319012484053435473274462092997324821875193193612226746408825752647601461852031556887642043996828180828176130815436952273686753930183657193494574961838072654596759865890179240349321509930628206433714458340768155266765404080060699350072914807244910569201057805901595278414686105181343989801684366495680566405874042607971507439634842388441142068983863835216872486134278230427353197114147968124195454549836334580723299060014774850819932115096849713501527529252334682579101332402848094408834802395637652323812769201229567523250786404514805847507290155773146688165700077190199175553700202910904508566773233553087260788260391252801976938734595738662269018721124525268062817447869885325147777683687185249276763157681465496220228767923062305204870177257145847356977761024528084265410062775147222691718201695184746561365797440925574153241889852404901992094932044187791746146897029694121455744207677584786447428815497737325179985752290140812475068884733562881338529196245993675340460522188729182644262687888159610550419803997284077137083554811905547240204084808056703233243938689413363480942335431307597332584659620710485198531084763176581087165571466229304193434691371936439047136186770931033948604006659844286560478383805226625870986523079893244295472140929392243273022631615160958511253200010759192180880092311033802961705867206841722215013230074543652806756058364676264864898205165365562407664399101099350091526129743808639247722201552176889622159000000429467926698958881765099061535028252901565157104239066599972728063265793929549192335031876838458238150127752030105087519823088269930256200566232081484975231369354613502153423781933534441228087505047830533415412992129790606844367158901952415018804604889372129954210330371356058447229478220523381556819735479210538281164789950424088364757680062584787070163661645673552935715123310367166151634747668144587088206136379525836239572410425559958347719493336549084731145305747021595581087805698686427202923251141171667782648464080604870341960722477523279985695501686665908281806012627156048804114699904775032000896867548738843720532869736926790974267814423040938042120011432319585376633924036863162676004603482645036574880402141858316163385289565263968170835722528570399982130700384511403230789487888949706897260656060295222101896644718106030827865880600911122076619014231364470923347707522395494415487911830496845552898188672158763773249276027166503115408444806173866616525132654546257618984950699937848599793309140921864075364867143735046045203932421700298520760214129849163227346408653213157407835195536254349938473646868560517293898068633929618925873679677975435739770942978736115842376715705614449466165352922359061518528153364527186992660775757376472288477552024712358008847419732165199500179799648210642467572049521663782343334010723336938248154694650821592323483953108449610323731137349188160103853663423263465736827490636051931866571108173166497628281879489010074613247850411283097980942962114663292604671310658227933884563038732356751097348503314921134122172654009252883924630374030928431113961257706445804237416731141195785148146204455841772267422408921269446621674594478801105968779615863175715077225693725128795288036422722873707506981510271829439146623956849860973371167129582615389536326941983309966211204802525312444895652148440567982874855101704985493368871411280494226600728487531757879359225534816258682279662760892958774969520964377063201425489954358887414023046031845433506632375782249779901821882753333933587325399158501810489314769447513420514796237580018995974788938249824689843977424669058678840345474834790046753272889576799431753472538108956004969199648874423907579738264071338957661996895935088286062845612835449367329359679452504145875001435300174810650834282271845814597721165705749888706014828378178151675717066941906673456048867893210799637813080119731512355501639291023570174297019933960823499521145930581181652424184356168613182432733565310318377632878460483034952395575378298023213513967782663593843547179786095607771155439612851790598091024795030267792169915018704781948199834425682019516201295768260089779712122582973187942084136232754891705560106708268152889783884319747420539147332519956777456494233812285515956385724635339053063523580946640885606520901573839685392174175439203351617405575767458622484347586514439060650761621022748676582247758950308093141108888485106007946564036703655658396036453484196581692019833354798510226774163993649936382021352211692819402266538803676938991444718344186646393356529074750478861514278591452447547230943639978675741335904634830012636575584714653185178656139915945689690391165990017228459648461606684235776540422482739969716034699628754628550615010473834780898580949960967455427759555248233744909131915678813461008780517231301664352400810251335218716983016402801303641434608813256897062538488604917297342277633461982022943960672678515009077496986073786608989880008701784000810213477771133845543151828071101534683544677145757243113521312251234881200894533510715527579586905241922776725503852541754163018122840416345727970471501054439207598513405565797944413347060262171140105574433048310396148082335983024694382836288799573529755209890229074485703364634890353361689962606987120204132385563984249633032937281817194695213255707668058909249481316858938706746380569078046320939042549198350448314402466262856263023826897716003546779427474629052357355760779298101886867918045932435198307830411133598553935062047506996814443757262209848884264313927814838115118837624531037240609921946761402908057346662095378704001465777483368957767404217872526879540336160065743655184197972435742077174332215222654146503044501398238031485287577636178944265736366264143133302583927528909364754596473311491462425981443080216108489048067806945084424504838275518239826343149718612694096152113694830443620256328015877212055688259024046369804090387395479599134103217296678389293832376669690218885189433616261746818797543547884703727390635408432198558135731601945449132993814369836457973406964268351956444512673551502941652177373896524754410867696966546083420328741256609241138891599715777517777932179868414853451860788633957853979106910125966226926561678470993083239332836346286160675288546834860236922921565839541414735867740085908220324423898195150904189855919709444158158429209448955380000213562742999637404903056385322847860133917503245492894485759054072290866149058497637469182905467270149223858101424292169878130648463457057134342567312649344467103330153750638820220463969904703076477115498667860948151732129538291309839834271337217011802439983625259973354610349745932226623553074986129556651869573198802665627161750567066924282410527674534888388351658199232988685766031467691854070750203048730749686579627850354214921934266635848297750228089980060398595262664190334711886531079047540372123818302715572381644669659235784878931498698084943374989516948041107782426050309730450064258790493713029167684931221226267701048963171000520045116414744709548307499648024753679923650986937026482453352050665463452278430466782792752307239442143349888574607806323011843145651635004835341316824794260460354610867545053201121181629401332429240894337418017055688403880730137757784760888798975714641415523008552673909675908859210993637488026222950837741639965244147579291162672214327935773468866912533064104763937340739650039488987962321724067073890263956939997503988772565931622943028341548058266851818758862205709025005448987115183904137371210553319928890990202247639520192925023769768705439367047354262522893971353777345353880009721411835083247703658359165519101171052263276263891988455748099003546454176983257305182327907327684545425884466796438774741390964187757015984425929374619591387711579827923000627007727609768770430030118020387332882769140292706237564294856125113353012968650021138611064264449498380733257302038347425896238979636392154061797394238992112508304510909832532834629240432507576725496666479403424666598403908091706179508861043907670022203505378293940755163871444126643127645339717160663126924215055857630154474690948806789529571835710361258429514726661816495917827116565201408358588275178109542795698006914376765216797241335724705462952917948334561009944190450205013239605329028117286883730763296666229124464038339379871672971627509114092201430403847508163208176208961344835238516465664490067310755850682281748985426362529112976943705446750569273655368915329373093410291178949336355404726431981962570447560778190732792203774193359352517688860835756440544285953269586232722523708435269130009965093567270253439545186074229990746670452679103959220557469826249960709696953832983397439804628284720784734555374130348424131883596811693183007076340918781383411738911806597080901844574070236809199813680851784744145072843679188864587668740494949286636329678131497212173845050938130227086768716235990965677933663777272288804665376130089311692133864893474991876646842285539029174151137436574003374734667746676835185706183464317834570543675731731407033472021127859090482681880879893290668511610983260131513841182550679938847063759248937651833175642971529965069484449336295750738033559367338406452672415328496511886708707869773408384483819100922821468926488667925260549699151021116405889257613462650546275592348800686452225564425355847250391868376928795712528294251420623647418579964307602053379782942650411944325011696734530042805022218248208092104898954681383153397550883120848184302443965141859198770818906419508201788782192061388031481446850908535680016214576887284060981733460356010881199031272633383004952566956229520060892932377313956234265589798456120909666007249726397147914015336123156171852229818191588181022901754609702870649978797613353105437490129487449341017323838756759442579268224319961892354312683540677892256313765857730579149982915151051853196516061818271767226716183680824992938101201150743326864477798200639495110305772394312606494927392556593472201973537037374213776722163976972178098705522077177161405397811053030670267784875250954285859969825418066344867120548013636882531043012534312694448767882063784395761356647917429559426207081229712022750035973113219772999676754622910246649791382078077781043313199342021119232402057834217826688740922779903885816000905016961983227733325392338881728712083972509581013345986252768474707187135629105609436406316229983920865709626648536445203554922020715927203149593058823040834248033460559336125486809484109902404627326751364297891961916713091749696734729941691652501778129620157881500808486842452161765924396211034426710841875863095953308830165553520920869056696209694569928333645240272854612071420270518220228171062542626386529381423292722216707105768219854240239676453897447614993507802417995667836011726388449414817067217106154430637606399556160010222868744255077132792817041523303057411690900526197566711316923478483885209585801930033610827266429593866410044023486277921866607486526372673398092945599875107349660647741053349632872562578106435278237934602362300085535652378534912449979660366130537799620170513707051060556419192301802129461820688237939226785884539186752466384461872247601961048599036640217049065499998610977561075022381238001472827576549784458258694312471368483248065430911886398877180470528402431526810896209675185738152178578730571120330596904002325452739632265459100739852219166626342525449156414539295435457272796210589209585587472302351165342267991713538649505446084335813156834910155058506278675057506284413334300430515470290820254752914780385309056983285336717045219183026696526248409407020808408461135215133182954282631293752697963730392435059037433955537252046606799827792291487232212072078411548926393117139588379546528397309964483469973134094889468166937792097162925473423627839698349316899712690009298887073515273108830541463458506375060104635213138866163876665083492479885977986224802025725776934299803989362229942264038087679885047116484237724735745443047761438441012542718080962154240568753780070735541438933504399179522447412339722545877204071318346451144453882627428021340853811703019962302152424787695844000729934189938908263684806237275365716298156284049950963945487864759130673996740890152622761220572583121040558716272364094838171982652359581029095928204496125796368528873905740489565587794551507894265853268405578520748921702453787084032659405598913704037157038518368232708200282162959106964985263719817282352972843975981189316160552648898270544326900284077237443500260883838464321441635135641576386606361207459395966479623651912259648733973646427445650424665118291801401640631091255391206516700757388097407440615969627259060149270054543705041171504659652574504853217897679651707954407173045514210900476226832510075025650513291923390856718443658494245747379735448996770602320773827367623553654404504276934764690651494972166769261305474728769671045939843260560716260544968595140758462976425194971433523900429862736463202696550083106607013285759897699313289052618311170188691343416978973128477433928130101950472604910667653256977712729713505268226069561983486263127101195824132332413765873890284253384653795623523947217050596544600212409161546730354498973712077168068571423331338972056399460627602854602605025620045008607571051763064784932704883963038068724788650114094394824811100220651967377513417818365582641513734168785848089437496187533434073508440525570277795755349179705757618037893360584821793891608084659643006852618266584118528607415368015219769617998837477007480909437814083794274455162071625871785498457254376858284032283528673150747731355540410782672187512239246495478201988361524389869626149290480817535004413644279442600912739224555501679528801260169637376221399842232306669190344027209844149508489072852453016033167042857977743227256666280880641626712334865556372000692305856972350229462022779554231800199812671091364801084446505688611238085997398989598455040180276683011655650162596695491953379069921480026023565989200359313885935414935762750215567494580454206450587238078245073740563093244188737857326844212943614050556491833435285945473873229815379230773106265793006515882061551827382008999220507167034706735421133842038187818177293755215014905284166537000701214127490958961932236746746907601067443109267577174095674772606369196712921982541324585723424297324459507553350941858970454152790569701341137817978411492180497422549805414949618851957968984036076043097477399371687898102556758784839095085987086641682749374531311494806589220102987571436276979540985985878835455163327414971450801380169336213267196993594708480826402386655415710405457609593495636123096231514291442637425703163365925711906942993071999703091318525987499600626080894575948809412635294567901863117456239707218214410510364727437418606721905939121309122112760170171726347415979912173418691531636196435318252168111446545689118578416632315319605403195695509138609550823671765840582693501602450598636814972064783395336292620702289829071898150980194650114315159436227380321259330215266242361150925951251014597422429913926939200304742428861830544078433948881282341560746776379984797236411071650112217066760660486058100988254454444197074090575464021142865875480620478604536714498601606124322992871664774279183746797715687717389136697757044258994631807758622445113934373607163868202300521978958000663923978699975811749011218070749409803469928390759340902513182953093328670679268109450341940523444531817988108723666726865056068188020274779785484368142492860869242371055569759601534908104068927029419124303388206980798964587207058703116422982469618455940271036528802667614932556891397652375289405435515252846091540876723230887580692955655677366351533125926264735470517772980514028570377664915058316605745096117335331396100751117078856555414643174905144360349873548397907737824557671185525554442149976371657643622354261595092064455473790408037450954309716337173220166543065878667322527270288884915607227607380634946865613309214395383114668098619054405713272035092950579268815970679977619967084552919251392411301448113510133556710420144012675705222071397098363096352084405895488507025829486008075340187934156948028152362210866436938601784643306076967470204920689730076418212869896928215794848533795345914177800557474499288211304085382544146767058557379239535128766468854244015044531879891297137568606422243351730476927337126390343436758639824817058475514764476943097318992503179722642772484611850593861601118432529608433253792129629635537958620824273087854141907147717651554076947535194891613807742701161492778581474149527274879338914508870647557240793812806984033174311674961477962967199171213671598356181347851714633382847721005664139311020823914526489153463739794907677378831484281418913562506175957837360969053208682920827287415721237021146496638108140021851298476308567711910092380441779369703049218229149687473510293123168096305334044148262924483882001365094708583578114213671725487523599441908912035821226661439757758134217338621396221033217227272108714467489407036042611951836637702588545817412848179507250860780715916319801497995561752574121995270339508923584686585470485566367106342577327646971567798355477616711225122628293601115822084694909851876331170591355529732884270015313937141827188875389840284862593291624296209952561061927089478961415627226134430437744895082703300639197965534986585234356648147405744904567585575357593439238684271219635576785085083867426344576082195097842364034107614362079239315552943780308916005393916440702935998080307685822892754631825983327194617491539890130306106834833699698053905372246795759339843954990226855427611456529866062849729409567756777290018860947035856228909022953872679448363660564954962880493977651071137299260443213150981725949370892044831438642692522208532294808621804363720204249585833133922152366949337688453481558676686377235402694621688347049868412195250740811885607502060570649143704198713851245233672989689952861876445275366323735749237863770433190318862826668304358375232475429124617470277616285407906232124687824928253797701015650182835449759774330136146111102708996199572613887374668449433915353909329718803304077641159994548982097413114550659096843211553371158914655615150582865299604164481781415215755515675578043981338865626768981796221779434387762283490675474138511010325547176250561788224974392676841953661739034509423686506669377101131362078375588173566056967967869355064423269731256702642778847208250524335675588552859003154972880618314966046954813727929901227534379058256949760165423907253723873341292639665061211457613224206665838166825385812334056868423667980153664283267309279974909108263708263341262913345609287602709206774715553600642280925674461613651380123214196697892433414236762869557495223483030878500012244764499320326360812450221189080441466586064481219315641011101337738982223772769125676459569484844294995946824425816973657761667986291282897763696161793849399297630924986729783953748202154855713522026771389286224580824624482706199368242292855996391943560864028557833543203706695856462519817238752538121146509722769191131815691003340807214596425951639766848132579719724094497140955755924595303771172065222054213740696180366912759906002287171269754565069421101788106055914121722677400585204763300899532091512268302468330255734368721839573237260083379143990980811857835604701165163755306186175761590331264610497115553932847241965820776784339387787023974657225764084953919428622977989166665318536745665799958189247585590689924569256955797677991601594632459168655616987150709055116425968612716609267788503647213857115631770870637055101757979747947105849904074671978597858248991745452629541646738572359904711245266885727545033001501247492256370726296757086977764327576067856045654941030263190938560952576856189169098799033055369455043663538942188468825724656271846893470898153792799883812255134250873049322502146277305465127427542118106079523488727368434821736521668012926006253923149588539077974905230558806801865607463360066961213984372786435530376450655110500221750821266459145884272325324842253543453097135057231754258272681929922826524683211479161397988375570346324692764039655281011443849414455087775271297222762590686077345937710492493939616133331620934877306088647075016461079997897962369228955793317593543930721082702427898497125093677858962890263126012612474544748493565222180777012772979789921702375630793127217860998459822969192475914626919365609881825124010589739931654803618637742071170209597589358169578427832061161631370582630813197372682259592746636750015866790607466450921767885532737768782052796951461427190746986442428212036963334150056233326714423518295179639128793203407837315380133755078526607900432899597212265228312611546231108799056244209829704333558199566264499225021273589558731894150240625929396184956084641282497438391839812688030576079185798501744418412862073490253800461336371750950865842110458593969628752559358602691478248732232150423194310895626662436025599171765385264523920597447849880522468197429954157309451019325606733436587345914479280921950336459794380823859815558457323547308694373277702979756004986513570884376060171843455987141131535059564879060177005197865787337933035288339767360390443595954814288704659994925157614814710087661645537937447238736402112422639815759416561480860014730840615035888080128348586677733729861143172073538535165891448794988918119573090999856437886181792196989983767192031008165200880499769356192030707868373398963579197063837553519819905048789590692601294180876488613074150616229730176448242224606602130272422803014993937017806941748132449041353696366584921618860589243945228683147584757127494652288795098735187587975062291292170038131541011281332170653303716151907791002101978315115752030126599109420612031566709770895725886053093740856083427037038782609406323453642310071292362946053151781672867562453451306296819440695120042473719552800899471729739327442405757449004531032705906006361644943551524002703165401449011298348841204505877011612432760696234206183178704821221130860898953111768090287851476993959239754751466493177504542779355457111062646011140865575663536666779058475784829423910697635814539456672962092455575318918338305726759050348002570593427741818613609103978086386894612065227493483374552749909469030377595040450172101438194365013086576797446190113709073753630781666377246992050496532920537822329097652480368749398014700223558266944003356554432950696910948915853655205422088186410647229574976469107194556610953464237331153862672628011086023292278152632954158845253780638346953934149616088542284571156378489024952268656620802957477759900488635119708756105456232111978855039601214128424864050175929577005188289272817950647629390058559560566948634814019801797882028792194067369504802317077056533601007874832016744878624999422836751722556143565223772113561805962102741023431351515699917859620228048117837146210945247355246252387947421127264546190131592882861402972821836812932482537795557561550644847102794521235130927762115891036588689222646778203804747381864093995812207373306014029495003244453588561973226502054302687401632919866862248079809302406580068375563133929973804543961383694110303504737200595730553810014412627639813682394106745325666209161237131381064303500755442711355856351304951834255129122218871800598577484702201224174483731844333071714310088373459304316225992637281571288625827578284844335938449092384103625265075172487601486369076582550603939151710848133519992698384232010208877623607892584039794505823404511948532140904137203912667519249313394378480027289355114205385429674867624780353126048738063162065061095518653359749418468967984178896190900579180848001514807384130173442274272907125319365295072090734400348327731092761453649469503526303000051926278636909153265328127198032050992144896242723946809688649409210377358291689158365215670442550858379880572909586139743528455192945035422585846426748831731056231910988911364361319216659391258389482695168169105463203592282492001573810505571507630664274743782430764352540408391031608149959641325377593826581168459594453129050614743946196683658862131459405492932219205686371093940209142707480026819954837020855738719789756817897936707098811577604533541521666670495346635073194480616609125522173984292359772653636465560962399587309513343930772425158492849139822188097864777052746167700265727649215367746635992846880459075604192396620547439088918422415944765260791440080720883188976796633022661289278765675836542552214448923036784405393357075719952266605890179887083260801176885979844421219156997045015342343069458287608514966466532329633888606121129244438013446076753114408245835935418372393948360088925346676794109066545598676783215664869561061732064226307261671707276711234203264964525430700504384680420095209890656397293671517819710722417986667053100581783033272387419122980440715546490766905469910661082082996618158626884031418266879658131813170302473176620935827887697911735653160543911872369774127813648381880689010595278656907892276616510025864553438312495029624882686475247970854831371239507157842628381252444195856921799818239253652595603964676183748530796826698621683298880129843511900400872675806994580608902399483511044012680457475279057005612881735223950727993120433766226443397049510155867072623034684078009131091004820046538317699817366742713096324534426604255234059946075280219915814420288523484425664401645277454990248763711472364886281226393090923090860764825927553612097403095887739959485352802376136169413038610800163043726625879116899392965452090470565621048471167383751466902721137063742456984274387054134638913788936249174312961188777933126935539439246697455410576123596016113587378480858032381801224370081153551301961584233867409094972920413234154736972492932205504936072206660048627730846540041110445918524394066199013845045240688138086169262793562579264623504103659259371722592993204527786387711165120714953091099717798023878796274751250965900121523467047283815163303561954841035579071174849358337118266792673960106553172122060654121885904133460384466135365396017447615018323380733141266684998177378688825525546650317551582193870905892635794925502353265197382335810753123244438408851854153312668711833657508267206933078555625224909156378245507426585372404259217418796093405919928059069484859684932783109037383845934054774206550470707695777736486870602866542953577851187646944090623115856797118357514486541197047235658690500542271939483454543704468695124846862188149700802008039545493094116443072628615272931680158734857535883116531540827692884906581085410918548892425014180362254389806107663694764247705601224002101134401765600466453303103927921982488787579829268260253342383602680125138869189042022013502452391339935465914990301660712071351407024908939120173686314444965674994127500099332498223428932708021723261074796520644119422671001342012616567654767133238568197091198818969188828031959847627782821051491486527798941868629494292417210653554721140959102053623934633525110754260572766187573637209192384001442484341387828542901002776449873609930291775285927827478151902175689234284359080367006022531474304910047405348508200292733456123140154266808693555345244101792526432459973505362210467005884153347198045092059499308271491589839315414231534963821205798341781572386557911315897785794611724318737311455590538968746829783448233916026048329471648285228156886986860700514816497522707690343207762588531212744266894629860948331946684187651446931720675774661002011043120394818293937921192728328175457351398758445391337629301806540206407210826230147976749086454762717312234452745535500531444488937001044791984911478582634702866651862769605914273166490765350299311781857416935633049780522280333676121659180318091919468410399271438139800042446447659962616855870117887006927968767012079132562700986535645957851484417791071840764127379460614094952024059422353212419387965303842117339935230977478784451684714025190654386570361080567302764792378137937908707127321889031919188325491935702978346793397189174835675171983079962441806312112142045573493082212756374864175145215230997922118818257975508211729760191761672555950762821909697026234617273077670872900841531670083954317403292970816425292452401597790562692501753073061876499790917025100682374174205981309346128030052480122484626187797027254158680286360209950442808702470308139648712509932015292721461295919963590042051904627164858356520838136577178743706780592918132374843128976328778930665845176923161819119896966936295083964361494580407177082671847695718948720322948202895195191134286215354668892634616606198912840982895399936272911684797998340823676343005599544030180330375178111895578023550903627606047893696848478510008409584822521678755415480114924071618323370398040294825592871798434131873301734046845101241907058592766650818639567265402638816160238872099365609970706928090334468479678229568388523661453171934122663888756172131890864539807602979637032560693957013412496513978145090383324850183465340278759416441738754445012854433772496812185947184865275795205666364322533908548636173914018652728089109854788146616786013098033543808007280910021018321600830179070464268156282756883428431279273169144175410236137208317807205593309805602234786055009507001832419003584728519284977249599004145126780958446432379893294291115077644346070441844682857329019057851845709666075592001292170311728368299194397267202008648332768277041142230555022446842961908488981790203961091258571616980173846213445346199902400694072249018720277081855665009635617398373117445492667237082875733407880706761821047182868349639726330303210308168510504843204288228472002741961385563833508424778992212976360143178911224360764488575287744967259562491701925196920373555685551528845353636128173977482983904395057079561723582608663913385867882075898227385630854063635212513103517763601691913349293806173498898468774442487168347811133538236235583746782702551425474470856541414280870385667343592459112609619839325685972040475834470923034314016223455028981419985871202265697634842271826075187335352202324200566144352611631214216091719207493105621103523178333120214616589314237933818699607177568902715785248142639585837194619523320865517322421376741194881493934751541854326425989863310059896002309194047888149708901588152841712554403841205921796409160426162936371413484622098429940865542977361502898967539175627854826453465198796670498724974343283467925032003388337572618567124653656118039918003581118274252841023376366568464749946566260292272324187820104542167308662960379590213324287460061321376718475225004989079357648332436938486045484859241205133632217567149827004330679866282801422050872458635960503389072068582702278550262146644753070864972992577136381258279358266148470544890662856581113096613226948075082463185511733678714739237313232709360955637692258125616648904783723137538448262111437629895462157567262594260545052311079200559159522877244754117844307769253781757905610291635168224799584075215618939025298108419808894173885941362669034040901838015545471804813142255211297603555759472974634777284897664678561522415801258501181385060809270933484157656679610650697788040174470011594552898205224150105279846108208038506359495902907991502954531082940550149113730543927543342502079929649846680322215127986879448049960813257773699723692146026547424738948713407361454397280041856818315129268577336818182734938736316974523729073413392922260623301924918697018923791987687436371090077100541030693005377248544559965535366094368205597216422390969129661657031936404119726145714752786421934169759173190444096294709720968500212698844091130409717970160030267085451910651066856870693493884882861816092925008444660159326089253838145777003707239047767305971785473485721313197242045636757954075535125730384619854455537858797938386596131342166299431075023197329276541351707822604966208056680077033442129314850021663718514623421754472998248257677048209546148811166469354640006573831946025599086717235948486501032096582295706674847088906343274559645976651245040448133192941967777239233367130163176091740149628855439482487597766170544117092833273825918340340869241969485924418231513662882863699002468381082662685364273596981925639812862745935134336759563463864688901927554473951113355643212365142934314539929652697788575625366263704280506853517259299069982273216363515216919759289116818403068622548692096896630870376487991837247158032461162494966397171113258563297642749021400776115699631656968107897680147217257657109704511375196314302275560453306405087538826683316570198596466334391386947315121253251880113077398347097108207838141337430464878915157793767111750370656361611909728404720930048826278886964364404440966120656352120051214635641116267918680130099400986607161661931967080820528215292844511325558473598630727818197604555172862296671827142236101491133239476166391427861749259623151185200895061883492161721175499424824195971423655705185343731865284982978772831935139420527624309409627235202423095044709793793513446587803413015396017442881135549417548304059583925034393322004974390893935175593943920343703365208479340957948302774179685671498243961989700753107504757966785051411213069201002340549517223384530250767408144563858035507539840245322764841453725063198327019552664529665467319190758703029154228170929818260748483792927484344691862220332910828535686196163005333010802684913620347302447780694988107982840089300229154523279221694473039921533196162920661931318325537758958903855136134066526928691999952597719137677157160287292764662646512681281055581810297880807616172915950024321767165901048895390541399024653007106620754742739117789616640170249395584855523819148494272501126852491832397637221626487703897222091452808904962135594377343228174294261670824086775355981311792252120194428856229695673175153224841208207850940200391945965248657094819017237009611913208193742634829613944534931702940630701234135803669859524108781824621466031829839650194897489666860056550236822768124508977306191947504605329532340972491237595358541274227328320268350827525360054351984075653045560134056771461653437838216344321941871704279571536085892535608441725729463507334829463294035975394275737405041261292822298069931983764848471130789504248335967368208790620952881888320681996317429764249036807356986117913858891290893870076256573752664373540196547617033552170033027011582964041441302089514832108033464279886739969464286119157678776169333998734013339776057427889690527039209200426678209480096460945123944463097882516294629031045072813641399446301648043571143784760073079949527595033359846103501803330278490323975758739253152798763561179417792188369577662220392974254787742172519673524501323107340757914725543261462155832022866161446442296903894863315459022896673923462638889588816199743842193701049818001335296294247281098651494070737165436856487794936617403759481438281213361438317959898247519497685182794930276221835087467395303529290406152109647225936994864393552579343198776864449185178838355985407025332492461984566471739442890665484172363494108030602608356278775793618370786031283543175700406319636006898301803259071838195012911214451471960616223572286564746503201021552979406009755937968356104634762143675695555662111597275680706971118646887163357606287784764592297686332004913758706322169756570653202364680041593901830908263862516765138880196497582734306692836954853387224479903651968295430727412357474372194523164958860845617104515864789183716007629595947989567208768381967545061471306460799729171265278247453049918437848780001232866263082383801665416996891791689217545366209240961457342263928213089586342221753490158158585856427710792891247788407882518293733255357161695858352767627927735974257030827705320471957962336796498983714779078677374091232888996295043589470534476171200663322416666950771138424941713565032715500792583091356335525156686847964159422711907036051427925778015936944147610955640651996310334555198502177397354020006225149963493950158444970699190455360269926025096764514015016424111927844943838996519263952669699271747547872311662645037492306751377425060973289977481896410734662319640472916100299797486611778329052278681202675066157901590257688774072798149583083605530641439729990513386951750651093762061304763701887589139338331843857204306129688310281679112470676151325155702192768297337978966199014357429188482634771038510169258270156712272137777155895147278641450894341584954145615552089218943303658047353799697005337387406112085867628897513148777588803361360325448986939587913997643532305477021571697156601362125648747650878235840553491283257166346500833658249421801632430888822635195604940734032681881142765089784089753799642678829516921598669572299794035469357215288263244022512184492607794577228519651115188313011633073652480008261806612485898682463384107668345709922514188969673660114157028453559318075811752259418387056034227612290208643258576690897664951131623010588385232426055827789172408395017635179971688013518609315015878961888194596196858842971895898114833043749693335401467125516836140874923806377435207057202866627948724018829347563174701049574430606261926727831220866672074981201539347683304518737713140436745172012082562061325924576856631614454524815070341863385573362580410209352459894022430269656775733208652348744480533244123018575798396682390544197385921098246143587005971136024201633121813019179388932853502247595011405387654658000795203042925401404788479131616085108639386045485026411139852005181381030823372445579393163409856410347887565132173180974766769034401620774624363101310733898573329112316382015744676797397191296192134716347092796626281731693925156877294479291843015320178702482242538738724881078329184151922236346146630129118313173969229265028282545004359142178564275966000721497064910555681449726817323165952223966926472986421163822718704975279293613844826726638192680595410552962634770264769462771161077920780066082142367130038021932252184631629153898718042760052648463633550682956700929353274428976528670434533376871245616452515762288444853026907197361127879698368045416113500444374471011460298118997687599571181776659005535257343027168268369834143490039238545215880798636638274217310347456711553396255202247713597301242122074953522736026013664746484086269545963420082171893864814608623168428788920086201163445681252668107668898766575988199316679139422313276018898947537407647158780790218086291389070135847093055553660550043468108696101997089943931694761531468183536652315830667736221033875702561420211571489535699627996165649263397979567716423680514160210407164137049344937039280477085842286211903680449282505138757768184826435940178860470146489891153451292674975125831736114655907074567548576085719941697992550237549056021328288149807868819783063245698110823480099350004971914504898277373182436333165406731463014620414699402188276263072078266447580860752182563995528485971385497947053055685769100955930322549991621270661230437268249181261888876846441381372300712545332828946802098914191684289242403939901624721156032622516297630339917559368389216035070710506379518261848102371491759508176044090556910590207508555191022649723170371832774150440789671375480606353940746210606178068214741152711825904171382384279575910756027879075381956967315397351759922615743845105948400972027631178686993627793524756155973853193066515095664902646695168793784139387279939192459957675127617589440377571538589806787093781470543838953830752547182738478286279414463131855738720407153374666216276261071391230142592838725654300615268377209057086394123741489032113700867874380378079752921074677814878917739264002456842339123419483319624566685942940515770403999382744711970368665561548363580217782958219705819196628332726561664300258509100008696690216222791299874975673094766861105289246372483199477603404653150689284139254570951909354972667483690572042306038174662364501055925302408757787985304415550737942312927749799459045262504037325018667647604634028826764829037239960973623362855672349964394380878415778209341881580804348861566470314912447037372188380137999512759378997498440200034406231993602257363388249157702829756521971450865964242923082821232480166006019614667921955701426559411713290097562927811992544313505515303514505822280235579916365004205665345668610841827490955495262043756938704798335030498048062599657507650063016839537483680204308377374914066047531555616215949075543879847936633542835095278043622628074759411981105491248912677694601697108489662714904194272786413423444608296899592612040819852519869161156156037051848348459651351183248959159847824863144904651872295203579153204714304421035433564359080113535706649084743657134439182330535860059291838234660833050953667422992577351377297838241334924675773934809709543672772802824415263479171085162951766213662112467992149485454013444288971731459031388049569589035730161665377879630520839641959226219508698656819356181685982001974785546490553641110304593193126962492181768009352451951810328756618215004888150702492414501800293881430359411216873266306453983695535897259414333126856258638595536575104064282157620816615528322612376467569224804444509624312134340945055991411780661955743810201369788239110252144384644065801243748032231070581843581963127923598035840838173116941918147333623069828631827673161746443830262990501449048105480983191441432846352077900001021334221399478947517122656104493519101794895376296470207616989908366500427560432744106168232323359269429137501812131889430201693506349254190322501284744234794261203369462793217882552156269780363030078770137593900018156889653543267153409406209616856756226361160652633982242142597802436644058746782181303084054970687780364951749050417171142974270976642554464779029088762272618305478139758591764592677679258405854755798724256379658260687172788921986205121264577540304144162819018570210043543702598314030210719816752339113673650520610858589129838111078262849892982374817278717809653434888459298158916898147135109429229528992536212604807680613569814502202443677234348952855874188402554328676492111223130469838635884257965243498337192323305787062408144635985165099735054533829911318554980931925523442806155996382561139011038329681736464898783153463887080496969936876443484469871576038839884869598189007791478582407912087167519747355360887310280104378953467404921277703277607289803409585735998872347851554271288315037988444848014524947211307088148874478167405859447161007998890770108572231376305158829919368618898220639425174281881754017330973605598965182921383224367276563568834563040757345171473786182042758859516230193093770441633571159564942854445838403168833817262042401609240983176180544156151647449943841500289953550971725389128640146899224225604498239092385138367865289807057179452958468151942602551108288500036394441211691760630519192244178264211520138491990133015358896365743997005355749519663039013579009741232756678912196800855285071208602925091548423125146316013102393639236657564999591406910629435012205331700197729442384570954518935871678679527773172159642013188741016158942308663256868429773755967747626271693549353562135511107777432495290185810762622156363787441915774354727867088168316287686092604629716966691536490456056964057219512259786531656109266518800385912310296232004042568474621250375822260727229072958487300280643946109956044675736625146265485424272644343947291672595738204725205136119516407452487501461275784910182538449677364529472780075233508389912117556472163517847850191093857275051396009191049393592421298996730171585002729322462501884979508763112316772640078725844074670160796803317981290265124484674526952413304533821168755203900124003000158399566218519842215653331065974273016914044505967173009781812724283359725411023577715165661752753968024055745542478805408847200831621350672024908086923957099023491908310316606041727860882162810411037277361450932922723460074831772592113515457777568257060344479131854990276753276852859185198029812707632513796473576551110545396147173672075804842978794628030408073955306410589325903723267117132808512782460244648234394708464515004168840740022028777269088638793052685053438885144008658037890631287927188572606216292879293468482819938580757242015021829051619958170957045772879755754692786871171644594930111365490938576012271633277288391296775817528455379757270770045728834214977726111219141265314796281844721296063695338176612156245263190208504212827414557045693061835198149245456529479797405054977932459911899645328547041666281194326484632577928944062876289617508857483938230011318253991460920214623496981260962282309218972497918647497995363233888855301312674392561073293763631358614198087443237102789495176608104627695987572141058246163262271042499088385304814394459324862542116810702412631317949241141162365092310769956294692137530432363573841450201747362253384925774734713640338070956483818894293019824495772156892307736469460573510847981450276331765028910343871647447937664339012583117182840910408223213554194477451756762821533437124646434147578182208231022541413305732164068038327774477920285360250502582309203044047054385698982611320062315987563467920491117445978535254927585164960739922796049706512553141927271829224660349811159636720226357293657486003500765678615642919033537932036227085605827837664179191699969487360240236817886958421806399599215752762058949872545710035130683532921741042395792143679288265273183198386237112400630602291074469622411612059144041440327747638584487186502088206928261710974268280875723186180845678292573557325364746606300699640802225975967035286746774545084042442329943189597896102142552279506747624281475011778961275134364216589831073576232695678058056027736375086761769098647447126076864734080027543432164261336654806729349283256967129528053596951420651039025608244512334618077334151997645058237429578290428201655141429222683332435881450978341735145240547158173765826876164101376846487089893034618610622456399258992715315976566081270659823441676707375273880794137739165133470638331156538453328332909309115616177611653361016172823568840629076379904818300269415536396015606217622783381568132095182468076452255829840472655594753551462574178218089302787129477222338944820102897676639205304258034615068995277353139270103584972196723042136896332847925132194669073596217158639482406291788913434798375759845858097912041755994775945446895171991077481291562104152375710502166930671791414540183138836656564427997855171314677590376686841096489988475855702505147894902460041918666783947432019644250499940147055981428143408231953610383756893754033331366492982478573276439191826504912003147030309678263110519056766120316989733178528671773636657806738678658258771481728641190725815002232580484705943013575161885016828587297248847930271394927295509774391449660165143442867671403572249692778815128287535916501645481620908423764398895875786179780050200537560176130093252565167766281493971675326861961536261066715817461886133642201686720190171349926468033096923189829868710668019825571017998504665078887984485374573471362649283319947360122015207182171267810929950946589709978607040009402822190609444703086687471582418161926723001708521498318038035578988211427248951300496171975298279507956236693727233145717107285706036772529767887143643815486237409604876162354668833961538553592569326722754863438157660113510635956182505781202041613963306715669183021462393883551186709052602842203028736507006818277215281317599635039606248421926135806371461277172588087151303436588612577182568730028817888567684482592157690369118548466450916947001109016294893971407479697965341540432705116601292902341253405865684514925414660698765496184261058379857763738931960222539247298014580047231541467061236407005667682348897946136063460217942077551838033483689818454663082317655514635073275551548896057222353933962172461849371730051520427642456680883791404630659623649174235741963501321341740252441458852227685958788153950844835017410655933125866169257819825643314326602173040024454996473460013747432479706125124615239971727392757504917380668641394795955304714185840939031344616568143751759915194355197162615374437444911053032517266405400639912748645771178964236568545223300423801224951496406516499494965358645328279788327542710739978812622019408679872309998298237540392878393126039227727177418780224434558045226713163113259011131692733434125868486420549282722534141895520716936226889695703991587753890035578165881467441937354856571935671741032074337152132026223974448699853606728790588533156266685677453401960226915735525793868342866738711234679315813291819590980079699547818070614628749901298096106277888401669495441576710450488721294010476178337103857356327596542339709269029346224531231173381542614704450415591286213060788719587626199578187829632281884496203031643431035195499017345548817637096432174889974037967028233812203115198653984587394393909089600761473997752590419557897326969053587518161324322171872780459481166933778904030349084274564074449045702403826998301904849161617995048220626876485264640802479564951943855341811805396477362912115773303846366327622384845969200760861784697097597768855548962464961740408253571301332417476520950653629656097493918781988887322398996908551316936956394715172171157346939993140252981720976701457047663862256757806266842205161784521092978147491701388209830003990600340464697893359985132127207507198542893549592665522087904642240493505585709646905861866826009787680397567724682000066945509943913194886208816723548187420001916911028125701253997374343459772499942604338535626016089328904352694285115511896217632923488532193357685795862176363914467649867409829052275388311016078780808752353211353197075650216746305556843941360692472581400285757757919803805211270412461404880591376446025281430797143987151392460563751095473833141608571101632572168648046465819254006070751560216554321978129063647079649600711429111354129135295652933795091268853039998622004901141033247779811097716842024479446087415483318879060723767384980780585134193958132004065108629700394060465703487761906930920910785218535605329566669626577052988665659514123053708106766430278228673659911558580214489345004921908651362744207898240084957837892250072990744300913964126764020744779655613783420092135789788543123929746390265179500736938474479217641118222813403984478539723991770211597016435164955030499413078542601664957726997542292608807205570561365308075547045571817150099067607658454853501932028993120562018221815040277543824588935385579129923952567122878793764105270777716134506466495476338034055815972470284529459884735257928826792863258689848116407817370331528147880672243026417546460126660637302302869008536479103605017600052902069758150320171362838126096053340304835657168178025816121684252541555661721236828309923056850078290595532451526835877309520410332520182089025235605348544289961992064814807127392377016073807229914447520163101492813615820451974652296013392276546977290053525488895783259534479327248502609252067770128725951875442852292830637147597416715821919592365701009464175231173927775199374571395907949427880406719541077792516793359387418564379463792538643518347472784624492798561639903554409980290889614903726669524648166675202550052420323684257094704464886585968355265752009422690908869970696441196936614771176303723082024240759758759137959591930619136701438981173000796331110204498380135810751109630802437256969387599803657155381294256083095549310560885225921560696734483000989806368467617039550153860847158852141078166782499210364443402216700971983632880339676105225371616330464170276300484361497223166390784755896373207002191782199760154961630195800731925142368686277991923939855232032996256742134044279528731807530468899485774006264666236977741800136286648767216403991067300499324359840849840763432946137937599472805662218890768981139517262786636903403955099873254235349038694713297790665891649014281146608962294492761076426533530855078556355515313883864613239917268872235341538517324678135375334931472588775177254780464302335116894934134677637099594084482254045709779476525195409271014185992718569198682771418269560195117442063625379363237851313055229634613707943999303780749196601243723767208584404316806227706208747301003207541867525320718797780197282604837684892610424638478250770790719519037623361024563443553940321944617290491916651845880684918082399988535634606769464987537439161408678248298142101046291121421654382115858891570134357036536893344517097588468083924273048175389516474759504092181939500759783770412906820230098962236902998853430383907978205188429887024080831454354215086390491846055196471975047833063301779992145948931998265248080474422607908542449358729539308670669013020719225814990311171880282106854899948153302765131133831435236614880222961205184257730956412374640816063533974125116489564770889090888011906943710740616543565140358352532862070025036373211196814051000244215523428166658006526002746167239954466060624124115625596253600928381929600696751735072411091691062417455382345214145427696665622902901117652065397279395554372059551252929969789664766778987008684962311487159478565782266322429003509682231938132167170690337218491478555428354393498470475655106974843290031795602042829499396710430613345003567690532689237349466015728601213123333417151009795325739756343550050169773767441708563876125208619138840111615798405830888602376559546920758405248697806394254482286145273871714990677257591907576523726635893358997719654510638861650902771558803905319210566509076335027611180642104158164407956848070520331355709133293967161214734739171253778112843055563104858269860416669117226878794081696939404608213770375401416496006610540187847284258771206839427395673074009336711930275159583676602882355394419274162896952388451795721096378382430877907098390764214535638440491182642456613787798445318187480535542072637648615146375799227528059508874887335192929430071692699498505956645347473560362317933929274635391511962621649025920409384011713626074631832670617147470049236721107498181791679113461559930245289765458798740836700035253966908984596214742334161035123005777550685230075021559977791044151032091331819281506514650933691022346906618647686893748434526923157804246914684924295827600281010202593059670161046886250270198179155107025685525971278755913630402279884010122836670815924917713698998300989636589940668689124311195465028078790216135914108083116940291767364007819344292720027612075301086161447544726315998553528175709608523137846428402598943923824169116295691231766642989608967213242842669660643355311481256921267992130528667622807079836992455475826470243716632565287685221750593184809454238113350442076537160843722709705195472703356809909675899331504643259361628809352632694868692762658174016897378620125784655861030453264565600957558114964449962433410030084796378413320640470811853647544012279614120440667775020967882201885410663853640254684045408491320530310015715318577805549355972727839709190728473689323171688787512128031513997630984555570840655618444276913083147070887097499759523622473754789646409608186899853984997591359875224326566633392143349912136830443641095822593228645043650493444808557369746264496102723435801667398842965007183473085930774437404096102672862395276042953079114061664182415723228896951457230761688934497561504397167280256516545786194774999467745073424743404611004048141810093360363066831576828685177264327417945323867159474513345334483386060337779542572132837092365897086089162400657286889760441512473785063268129318866488889630185629579275368047312097492471391474745066330691473527209809623062704690861200871746756638880768055358011628797672345932754853942527441643751186120482623706213406450427766290222204445049694979215124916494091446223428635760731587018217466111158605904941119962597343601469395199362851111714337067121580582679126487923836455609103644205580967990480163154201675527982090004279946875304633411584207849262964118388161043620352354966356234620596654326504925893501366364282965655188834157921281277287473990990081120325672361761487517060055521127241385371834212816011880929780072936116468238293862081532415212122679388662615332324955168130440762859192985844102464180746558038035985923401644883928993609501312152901945602614402242108156119554356291192518668240919940505981423166437421702603120802298512329911178694275127169471246186253514084698118504984104437342451007024203637035145282413294688651821657585211686123019658047169771537465455092160841942718243107477732421712114039415061753660666847072859487172422187478719850773804360691340727760177403019579866003373469751907469561782027242759832901105425641073597083491519924497427485150079910223351066231494161596790061347621804960959641147590355694992438097300172935018903615453147397043103161751006139661990340301197503772507818525568524221142416627222292724078874317740302047503894236902717934413769649473025835313497906456202216992735164124725992624640856521996647249817387969962043800755039836958356418789657930877891467309172291011309707017258228740818077145239715982766725770875957602287158686063319927598153516171466261388346113524626570061716338746576569506156289374838467652826972910866562115294052075921015893265380438722335257212665675182744889825747288095132117961462184114272123821683928302072090014748063521957667316639956849849773971775742217508038067489852755401676930507547892775547455206227764348386705500227473038175289348809302427436319705472929936665991368978373904275963890913259070546088397574865252253471258477626955252353541657375817580753404564668659237145445686133826302242415686856152211266882937553693994992273609825205686555793760534751971281957351846845345490836237296511250303387025957299210087431343726639622178127339380710890808814571633359389676489386299704135439267153676512446800521143219912479846453732574762087169196559000240307446305804644566589045876172871432555295996925820223489669294609193254106505436359861668117853003228981114101119699973188477226963432865008864401926310630308102970378302965994956523009624361769477552908479741185518810039783008956114039429502904852406721598221378549071937230520641352315595068278247362615303456433565715891509277037797022345962620360328055574570075346153280256761013098276764883888234049825759155629886170844628174923949227323544030262125566349094158215410758065596132927530580872585644398287343680767789874732817012898002697678428578636876072162930277202735172639851188599995819917324790410532433884606540248874458844681362865437890807620915394672252700459199818425917840955072847985946351954483909101970649377609990180265259192516294097197482418168350517037803462235319208659792375508660562404344041751415893202023226416545629634225200260487716227571765248854831468534534094640782295713951645667508837696777946389811921873133110231044714716085284358212469381992038272156903322945312841665887349958074969341484811110709924023661285975895722676173503250286076789077139112616284447992708692788607721744118849871878140694021660153485353183313297593669941324121183607124608626573422118976379222437669443214760100805990174529522451477761640541469847193680956739683678192027639593307462424738492178198535095621767036156274341872204553007286812913555616643304704078953949341611842049808367265589667648845283897312135639950790683508402113008864117462520493681524161092324022485691952923103281671704852477538278993568310731334521130112244560085093897753081331928179318611244300933938093462715915332320114593291898597016952895353015301518803465041808330490138401724607640580231498340313873176276115043000836908495177296693945543002549336913368733677994403623640988603767486973005749938245853250399272532938094659262127690903492496741749661456438303097074839584918965580103719600272203561278762760239993696225911192855520840874696336506042738577324126024903313790639078914665782659138752332604445668128674888652932368016906510467213386246142361471948547848647243731872680218316005946603651613683835292935565508971903960344106296237524492230874810551074836761146386955866886276114585527903452396465044223831823271055958216495335863981471815003720572382610633953232332695581469638902540659262463958830257255782179374204899313694713856349687504520857537882832394468600466807578824121851220253119446861329291482905415462182656896594035330916453429842731667198728994586441737762029439195659134103607366869816356904902143035982867115276212366448347299850141345445813908881177246390529308946807603276725723392782681875098869303955488826142140349839560312752448350465678840842160092323648028301718067179830089463982391817545026056576791777989901224910008310290954960041274378061256983586973730163308217071812308640174294600968535098345585682302583886734703646122851518806611038283375607200984487897581398752547974952681138992131684113355176655435363683750957998830332268781043227762504479861254633310786471446307543591260801354330260801090370672962036760369063260753684932324689254766054068763750894634423733854032797159211283642761165077540904635567582156116337055278508762219626783886841026835719685979433036328433012705639381914789859027009068690475020786987406126388828674015763765284516384798362490778321957867232887472634672522054352016400808743220770250434316279198929056354645033575866277759586618383178994085414871864716344061413857017258941198958636709926264071172580011106645675880591863779573152811914706921506163717836242765229469750645159275390513465253053808234964644271646910474492680881360286495370833456278071187514942260868746297588485241397379819394721661400615415635942234622688079075995055813417957829744806422412835300925622408869624572187335484405613135746359588359446000670257210105840204641061357582565000785262052031283305733708489132685564882750088870100139223896266964818793604877405742236199155221912929961731577659528806517831551819416004861700117782436385504548832883374025915202016024632197339588698306482590847097586172651060442553591393676719361392669281811270432603355736169164150597560824666645914881537364726914929846147014324948567420733557947652823080124345582331268800297970489300602249489769134010697956785377646448339295154045077944956613433319390179739490239784690727621450003178184063476208361999792311645000644883350313950858372313353161150085810737214439607364870884342043553717232689331916834728500343932341726495288569009835029857045114803781364937486346351246153996203730965625470369390092347444512524304162064299014243938074139274682345687944851881204888719946874425411625064937065647499076137685781338189957634656184305181218186513429502631628198529385194224521929672032772411525278417885826410486024840481466688123065752138046768167145535206564809019435981979217647178812111413694813264500957488421592806161938549570503343513202778685337915712273167095086714246451889387730024664956033945807975788768391534106430559383430383854716451526778508379196389952111359076717880774077262616119602795214859923310603657507757367620197973300073085824491557465397657403743538079904876679711359894072425497733579067397670439288663075040643964586232848182337152226568101328875660103141882115257046622321317681026471497576689985442397097573211535755531145004336034596308094238228387264756423514757624113504893823486606546197883859273534742305186718292414582249375541147076240006822339837306327104039477743415140846852178904328669283589462918086383562743156972016133220761926337717227512785944576986591428782733861392027010788191447472864844690282312540537887832036935403408536557043276960241131887010864222264726239569295398657860028549569818187988542193671468004161516269249154288574509914787150537939713360979800250247105856198915365138897233581048549368798965481336138034908577109499922783146885679452574142749364117953275321168877371041385706072712698652636943074722769033615157625443510206593196747013951625855436938993273131744519861045262003390961058150587664351426081263524672853059948343414035726925231031970738338273652050589392425351436359490320140984768677772893371034209853207668545700527655244640646869285719172305993836948032323764474004705432297878032559442029241990888357154468445682611445850142672219653527328577670109901067678895774994466087182825386767519397967189520637003721887332876558168771288912339951308792775335703554282119433985927017671751899815086643923765828983051931606425415967646201169842415132647823475472443353742409682774294736438175102079174622772424383663601466258539966862093653333193801371136699072970344215347337348875749254439171858966788542220679521677406305277201783240900750336619087824682229796661286364197455808565693844869990171417741955974134821480396445520751475065338626826074556055988902967230655475676478888232864960764590353509375177146451547106288237465013775036243748173125901073499779793846393689542308179331266259397203476723643058037202801873673386990673976581066193079406757511197067543711235523746226565152673615140841979343473713538998274637722896118567660458276491838949168022398406494955434274185202745135662803964263489032669357478334978396460401441561242393644729312808136185636843759070972344373052337856225861437213539878086034900000464028063518539559841388516894854413847855892809405793637899782369597257475331694698305661991922731245722612965012481716229919720546693070249845076892391056011996141011997346877512116543964783869145180714770136570826035714186498564849707920455519104651211909425614947440548609395232150295692982327252332325822728853211038937130594326782575987630513807465748114956116631226709269610428260968818129363027247515231100702670925115189849471750218788718034083704702364415084404762568305559884754030635466932925100032635757721837489802221200541209730792253882405189617763115867484866639743693684073671421378448200279590150977286369522630843736359287158952861329974153486796581986762745978393468073815885245800258604187844671945390715554693719754420568259970827385924875216804481782619707022611738021131903348141229260000502952985983716937341899691660119573349170559893087905751556762208711666113716036567044118750733305131654852368971721852535873220448711599548986214329005175204581396856014133963512506116637155493400322679240481822034951027161071514077651437769260173490581748104167595935237726140687220054021455427900361009525003764253221965272911788626553583432477560947005007612365967287955142139721387118679380171435190350168324701921532699179858983205430146439111285963778367253333244935798543982843964228146123868494508000616448136255572934023000828792020903592166397779860333527971630181887805351920871859782284432411365389140762834349657388886749948916374290648221247595231048305892851951986538939539481862875217670013244885035606376060099644656412549660491856364997060065039155160300740832412228165894938183854977607098962820498754679660891096634722351560299771910868467932497933339368531198603720088877708560845957281275388278363310571044119428674481021812632428558571349597231858884951219343870635370216806467950063806131962883837073230990376618219102238103835747538128665937828343781758676990483671991570612825423669537977291042783991287286635153442671218186806510399474391645566694638904555185241749645686174975382605383620875203738540120367176260931152783186005369919675060296051078938512145584553228689245035752579631460951274695390790730411408696880479215916820447817108843567445374343616382960865555110311682674395478555363773005701336203013241040816993068391512734628914607498797663417522081431776563956457848419998144921211707935456870459309538272236046948562812594649660434247188852469853566689711709928597294264368819568814305480205831698430314197495812523730263551102990638642112183910244485366455663804335223835159239680691426226313053574607848681767473305740517497221003245272779132707796198300171237549173805672197382127256317323467760682191840806988702475264912071988114759589700824518126039722650965495317705212435531648482043109409574629684738448516268948097909839003925393996962708227947425572076974316894880626037785139114817649690114273450146176399381808374662022702170853891229998313961852185697048045765965380435884297862199296534671572588977796037125334708522007200190600083366362764726125457080263853427040337403813928373882978731653194446148210860591003607309772935338572977775914718910425566558115155324533934885939203979144549725557016035825908033113845597747316476345526606429375630487735543655020300687523659335102347556625101936610550173471347341918662583129829879610165427146542713053408068883182215616268411216610249381785770127383806433827887625570789651991733939640880971377557764790277302432859134327797617776306993996027116621506755122375850590788488756926211850497306459525790786361479808458089468289905766164564465124725133182207087350184222438698677604624841848479302407058251128506557282954620847993397895524243889488019829934834235216976675078179805955878492021012848528823459989833220375154226251074918877666370048528589675831380909388346929334593898582315377131163759228903175784804916068236015689074163995698722117863574715364188586144900967000719703181726032643071464468326603277007564272893745999818951672425635325996199920048730410609073374924949072481235973415419131164702682554007209062073868263855518649392447269034443639090262381643863609567464637183897822519224325706162445483818813305844214861002629004825443923779023506293333453429027591652568747966939786457615727398950012090461594184927669055821114260435022405586687708795744803287356722997748008997377878235867132336870910991755576902982498808265685101017177081874377151193694573544490608904420527270809924113458914893293280373286505048783948275558825257477757434330394291556487532585910770124053367777634346304866403869038124543554678188761423833560225773461934279925199883291412154098666861562536894195476020690139254845237386046571181206310780258359968526082022606861603154372809014488985038072104986920354799810676020637306312561923067552709107860792486864596379519215829652395996937721594984212196094303316502199073881036265288652641920257440276320180480651897042596245181206738310771501592233726411932995914690029031090294891633332752972336040743927873582782277523032021915626199906774711649821682899436644327600772088776170962654993652617849702697349598351730109423427870223919540932714647724703888546589992308396928678669474090212651553817052045287097901978543965594334709701931765173523116940427861860146478227108883685400868178556090056744620356904160700701127848377423910510433803866751752172249837623619485138694589143631198882504782380414413631652513580034879134490339572136667258308546569874316125384283131704624815958522538750495848488998847114471315463432873490370038110463031201626714574890635426489320323814908894534585000212537915701760906061266938910558613083942311351010122954484287654749964097599593452741397530226664556686804969015318590044049292401586142004982246765217208674196092912324986043918488831827819534127788466051130480145561951984080468773470670376819869129503749102872241297043188226871943774433622045816037742352512994960929515217747949686950960737072989077330040927868384596177700695168070469175190019175941765268868501140778445476344971306194881946462936342835929786989323892291368944557805401167742607759215347307003883697766892285458667735114763291538938157964688435953523220036165489547845646055209522494793269895232914583998390951811549834676405347133230547600721392876425491358441067274319580671560473602510306640242358181237706966495446004488776935086926439245546848100697605467270488248598536247565577664843255301087955204372577588329744814391832362356052329620277168763165549556849001786508317787891488482871915130131124860459795850795017123799226767132405030656610503990178731999144117167970820010820643958794257060449456592845013105966492031122861785991067075718656600219180823219424800215907313374897713320259763911113903293477233829393676748506070907282522775314110659176184995808087248225799582798511406073957709464632874652926274403659176438767360768080376727051529044906559807852177023753189725291780916401429714593158527827459725723829768495614673882247416811939788484289559799357019768381894883072766957086708603718311414413292800332454681848431227764738619073255938680190859778876830631711186692630285539518287566894382155770328724722647273308379346900497551878338994084907769441898125923885051182614739458817749065261736013992487545238361008212982280408695188910845935368927596436210054371399958222174406897752460706581012275938059546149655719222299585672384753378217576717047065851448660900483278220063203219687469589329036034246498410639954067572333244674495551226793014864165444969056116030429702035663604621265874212082188451531043032179550364881376096918970141381296024219759622580399006589377674310579856669822966873262929074501133456349476250277447961147622417857358469468704016120774503358288834763833203181188550131099768883303302527512684761339281802123385101341239429187661855417418423472524306177200186505934146790669876165727892012834548409246240786862806698633381232572869836644510131542037438022210145375329994185225298493961934874685852159724597425808186742798477656750509541995596797374046546797079312018571248047710877109787943327742172898669439566320527638660579966002335041298473594515732725837031338082880351466200395474530171423811703610475420758010277964017150320113469821864208841644618987320360168039955141894541448904053504058797786083700302295645046626184673254383647128099943443879331992726882968262320211052751561875852119647643461617422228942199971210719876027472614621959535379585807993141454831012094552395821427372612269518806105496066924453066045247758510425665247131411736752944478916530800281591484317107327718781937406722691501573985664469609128551932723824489433209239880065378594375923952305670511036937176649146329604255738137953671776412069118291950855090462250724401993588642610545853183517641439461028366842523305281847778289679209332555207301540790931830851049578817965246298706594832996885761048982501775846770792518683737307145775958553215233738303976830260462949112764605933283817456534210569036849365153774839073432944895417868446754075772707382380000913098684964620068852390759215553308663770271021970358368621496027236371752343728986511196037453286745702991314878298503091631775263619621181740863694661870283804814516020436056079469335283362435625287228093210801773887696656336628571634505572908803721271705767179115082014136696321383999379249596757536717302264421687975872253223645994675612105066729004140752663584466883041360472670849286839488504061729962272642696136309238160936380526232046713698310749079995999889335807808070832367147014386102827645516661961930062848988483860154864505780324679709874440276874370017197530251825157135486264920635353416627154315448921045034956219184325302546931435546251691075660532995978056189599626189906781675295610458514818122341504589827503078561031408269984040025192130799461840771561646584615788142724183490185574540017142717455381303061799175029277370131245459637997235768111900355466811654405447955323681193183328943414840544481774109980383848148438800452717737641718002396663451322112108003624590614325683587357402105471056625951368080941097571559161771729584456867126653079697247983737817194581186190026446391570795808222639860251861065606795038164518034195780209753136027824856503880198411604366748352967390386750073648227875693738903451415863398467374913436652356308162340449968020305784405810988433187704476548782778262654558467949978954567042496061918591801606627975251086076170142145399981051399263391741123744648586928614456498169481240557173123080643443956059502604510057040616173364523607728575859102249844961551003437473207005919912888426950940073309033847689473506843349765016903734171101241876419651086219474878111047185468248586536118403272207716379850672962261446773930321994898696191385942142160242972974420538757991223585329109804505875349014691497910658796317448183638563643434288093624399172098349625594970178055635550548691387480676457465852692882363933352799465474498865029922018530746019621560965544691315565931366825457277849551812363275672572727690258711713881458164700929880257905694014068371617659917405456425208177938240367241558577311027900386076390697707668103601139319233186886922554381648376015998133905610651132202666194390699097406863305475911840635076244945951737696918712573253164282754014146979569370608542473058279606596708015552261326947997584647806965443933031431517719248970126604528352918529449991962861927916790474209082838289979201588239091680880603227165543847970154938003573682416242772924000860017385220130912734431276866765585285337129104735315015652955038906008429343601401268818182925440700535491366589973428130508549803736239623218312608728737545262685695285065324527299558556014552113958658676758953710159833137772959062276569325901027624617118454627043297355307438389186636149798311511082971707512541961003698816109290663573838883066563368338432058029471671643611511523290474639605035006458338972007824797715381576351626514288129247643226718948704531612544665190317038307418836497663851141679604127327087675522596446859660608241381349328674709379035800490907058283842562194650776533328343018007091279779232693518987493216545730481548666224812339722561790516581444488517744780727196939948596567179207197640935036086966441203363825171235044622717228024093155343724779176568742440290146406014311969358910047575376288619970343601810687514567635520305233038355369632184096871560549113658066243873379510608311552095382259674160962466699325600857499389795539909124953776521362041728405644279950154881073243348625174547192653410827420467738081166902125276486632362136710929867815674407317904779161432549307079629875537345196520206276050682361929361030783731038223506189418912146184766923195516433132399252370823606675975226626943050749553818481291562005764559154226847067995283303636679663877083088986304213452866847969677969228874458855147898919714968115423732736162824192486539699465020287579597311445537146233403296670354112240031949888340288869919898929330856750601529693282119829189813291224358184405472158921003612655181716088218657213414769689911604380478390797375188390327850724355411185171998268919843399279884778560809912434077651559844614925881568073477940257673731584726808224385001213049692205182460885137581533930153261565484880005694808701507983726405335447870366706026482832592779104962197918922980544033553582530680177586264066958307582056660434550091771052397739415987388736114711510976513749204707570872798667932819513632764231274565247305332321923214736721058582410617097506796592184779916861390855132189625628767943300319159956482482270101436880184134433419140483255904516114261817966614045114868124163213723749362450218396384638814879319700431398686965194685536719990787004487730401774791273905537225790414396502970927559213171031563174712522345749780692353023487433222128791501779727262705752772156971853453613365287993440254495609339061402206195374730660122695309959864992630260565371227332614864224299971997777394931962449122179259015130993264170583374471312313052460293026958908699808961144110109856386137149312951226890883609707616878609847561312286793178201999632358627521807497376846370067328495876096596569159736514013734145890023117022958899383103772882615725550504355044643250729169144180357911577294301793833792223149964473369035785594154898238615064611142231734515496823019148344049413445247197214114433850313722093582268444719969124833141892686189168766318094549706872962511372096206537441807060419105441520227321498146251137973360751744135341178354275753846729641916000762755375464739555760941642587073921955083573507874096990443402636832223707641251402640452920815283096465784489461849992505162502617881471055043039784437317156665261760602385987488240042423149606354722283386661981705550328620497547225635857123974349889947895503125279334845775266480469416628849521454371547902788213628155431126835133739443381100848939048519876864879786198653539199331982566464463102627341387681482774396614592630237652441464366893784654817968369905433033820820404249237429242699342055825715507104759719879440307666091553834067684765806561289296474216533968027093723128938596651307638318084296688448399968097211498491052222614685629692179721392140397191507028827427815051289817673868476275117155659097230892492558339231235825257018911008536368471264716780443069302720153183840648942881583062142710986093298266065004869675391439499789231534033389764212387407254356725326832147327985932826321316474112555539164318882527595120484031360029312396142561851250956151965690082737781734662789097958578852060175119432387552613914872454428627112871461569152468700452506060483354616030785420703909739267305868473565815538979688276165837971026660474420819635184253061689234405751260640281605320963666550157814970521232137151247920116476496570669959191400986496862251590238802399613271383144714970267810087294758579287919950784562234652409358073554062601214139187889038434508452740160518865180812907197495900174367449237630987391665455300910116713585533424321656112210580745226916597274389250900935311744271177274523843075040958879023519463809566202670711269407913481390699645347087850122456487064388469166692747630715421965239710136353408124850272542504413790625420007728386672568983198224198354762687359089256993708488098619425548235251438119124167552263962480113270666547817244323395000697550920564006796328695823301392140163528112160004404515827206574508789440728560679694012376858184847488031052845397661113983627616434830389717169298654319582954490777863235728377955092722322068050883400849293590240958802229962460163300149297957154185937447006654214942228883437949757155951927240622694589675865875585227810223253248451667020235441666783106105329462307241328081909603070266740061663294480059173139911839751115609538924507983386806895204208683577192185679034093708850976994714787052764405664491375703411244450542110833197814399823671787409908616849835122202362024694551636879065277359182700077467325605367473930454079642337126216987228858613810984550710092199788779859767962449845248724404431467187393819577528117777392326632731430171303632849494461161040097928975613463857320726023120167851929702855091577057365669105600047849551764008296030574699813660616751289846453033991536829560123164567465939949097669169391422147798160575273689455270724909639511629576845377987801722308557536784300333648995156238004868679138604200365654154080196429545885975802113328470053032044123779370997794131478398915071926483070939887103025071506108524304118733189527257239472497563955594202147151235257268260608765104894638599120665727720358754874913727010671937728712854854192308169354419100001441585538146564927981449096018897869232936502777968160063322290771738248740512153361351229108176510584874316995090349437477905934817097003013699646755057686474584213744758723897833200105931582212760700041727369627465800460676868968482370991959214529395113262964702108067404007521125116765134876195381215878403532460680014399056091381057647053593732851830244622383272281196024965750054664901671668245425143712518715260858604205078784927173183203805045201373354654841520230240286021970944352004420364771238137027210128870789125988691150636254324092186667114571219020941822651296574563199792626852360750517587346748800294761685428182124145337629331424258337113209524982670638854338247479426515122731038706660868594350328450934129009908905826933043213381191669138114191422288998825283469505976324754167039444770371611905920056922108638979451081062195933265365067669433647849685582216692444609262018188824057867239123167070412988432276273232734495982887617273770782418195200051522551181458496299398077631964365941065191833532866584638665521861568150833486884888933481992924172837646779721955331257162681776283040551212008680758220866874410220474393961703875441157930455729848705543410110725551459591026003101998573776397906150690550328813813884985562788907325806084636718076372060459300180350966114331501341017807887060703476474794875726472452157236274744224172575316964673656214751376983008972337063928591253172411345387847004647306774393658803667476988585229544001958272922527108815480815010512103808718956139087202014703505479831540877673178796545127504097065351497571091690964619598760429463020898813509077139753638135642476274530401056152155348689260715025227903921455309957484455846180890504622516295536102456062846750156467722639128050866409478775006199852512203716130599591811469440639974152086471558277828842560888242484675214576446602669818983413536283024858468841731399591014031185105340940829567971207168381898966068032148023934332206578371233140365749279453207589470297930146477874172042077042329127661319693865810911535064339792636365218923060133021233777601267257781012787386554241996456105431223529760112222563721914051761094167697039807394143513289879290486667183303083648928738608264870124266271917559661877222039536670459129364212933099692962651200103077679960621940921993978680100831734958292332068321657976460608319442462868837137577029795782243737392182630922412704549227336679246515018757360033550577876724832137750921084298435383804005202891822958702564414803923978494450096037177240506128600464265927974408615606946391558303364963180602444600662051130396798271374046997139000221267729007115205502296203818044449337856252349784344805154594426914855440078111530950904873787383092666433635211338545980198234497947128422155869287802888248043777427544138131830652654907994834857051021155479076832357132389418278526178368788628283139873958374722110037513255750375281162613265721292966635181583467007081782091553515318398965267577825500337942833959679798926622571968238929566051188342348326589383503765361676921197493886924374444777870052016597622901623577235032532662910105437085057569879426500860551298306880087944466775214508655020585259310256591281310390423105030743840205558036259547592836632126265979012238151021407411337166245000469000589819702392388014380189874955082754439062371182642100403363132615091553843342807750165615586165832993324362446519880826811043000537014966223445628615412692550092922495839604757189177337010104814028032611178386370115592464366673913288378495904477309874521059187415839505458206955752181808712386744236190882597645608730054283465115626567753101088589615864601272714834819536110019694672601571151583318382386571594347381734519898850434123352306803631642101259682212564081933565758574965489961287099815240244351932442907478236316355594387776019704452750898907165582470766785673296924777728263946940872308927206022566123009068409998944158502524296545995396199425906569569840722819144959566743387676035957241126583249269551061186892293652971470220001392599766258743063972171576174792732775267495419564012757045388038279839877524808172154876572874046993030090662473925099865910834451441193567852025756876452627167619177829935340618656719554243169531201016072737935529743769789529798629942115141218246163290239188406570214374219394345272682380298234274580970433517635441769227507191418545525144458886566942726096388393236666710352283362967667248961782883029337429618291750963623258334944894671339714676573958799065880610238766935502030496082200426717117086814421644589314666507673482502009947220554694883133019420003130127890406783808943752353979302067290246818652381771636479615198625872922573784915450354325200310651746248160290193904270421595066534851643391185923261577577166191695063815728860157504488691034311816940041656477611090306650592670917555893878757594338589025332570761116190481585520741772218958016182432100848935936680869322097901044728465918639108030615692868991520495680363491390946806687591984210831431287871882951339907814293888401694132032756306471495916946488431332380842513902731863809135114963347156974251237481985348798410650737776782919055188753620023560925497582334246143736015435458224459353670473711408455270205891478522555084799566300551726397411883037155466560525370367077585355792927022300341798393643591989729858719194035809860667146925698073103324367848262660262039060443495493746010669087889102736328553902642539303825151540086439960646518874550620993516871557851301554109436138200434897202840617328499064202282399084279055807728841418695819376852612629965267913456344999120393783291721585501360584082777654229293541545394153288885349943925590095046068076105534808032327377464088173682441642200282468222228069448931546883272235056499718761772997438768174279919137483579767572438340432002406040445419492456008862158338929431580427844666196104850950483988970993275670094346159470733692851702087003712294869745758270688441456970184861553832011537073673978199869414663062906769848112591848147413315880009683281383337732221523731598305371384234230470935705522122247358663471638149681332919338650754650560341206360851160269653852901405775429396239513856248767978147172056520684217920651211314272695898859972138874620713375195781832963646642295515486146229584714506507003115939533063557289755878475628984294578657376523149625684249723823047136530655911418425417920155137933950727355604557972602292046876016499048225872703469814181237169614980949981848469328744718777469762694158420231782964362709914961696976622233830949138086599577704890292842743123846285770461303655299041239258564968632262739912175273563948581199299673431980629513400405687145918975516849790675123959160620130683329997349377740834954874814466487109830490459222178172305649958285776777750030539935067137818700144662316433219573914821065408428104348273796142829668018865889553018924526515391837433245502368214505550746648356337479798903196630219989711403016931225307034259788638474919030909627833199608117596112322827301163056353285449325216465453214189978611180052892406958779961680274060616449340763659533072497989046773820720597593834507715278249895750786758998623622717102042636425394484806443463812419553401500583490268455469693446632169113714215601013826506172853722919599400019436382906276028561255361180483541784695597046296500482656912466996265077091237738194383159610182809715177119432259490846582826490727650696237921072192779318514498390887645160599728891208760463958115339856818210339746199555795450838351380689687299837088891956984514496711097465289275048311097954326915073110760502352194762884177624170480861763409353285648336301895028027778131509018443125611283224418111789305371101986763158972439003091146405393875353348422946469594490053857071155942503274851635507824790473729444466184802289998514471029094294733626881070606716669833530971742701191912310455523793599773359469913585382675888460299930560910517208067489731767956882607087269408456348645515357927518564821271068629359799400757847639251525443546933454877864435597403579020237797346659769477127241382777409183863749306595393951542802390947687034848649526808478724935912866154148204596679702688140852834283907441223729411364006757783657860636543392680088538363749852625241448447202312982576301251662279917697245460430386530465477667346486370692822955548639891379385661288373008991633502698653183064330541898084969072338057952285243347082721653171412689507119023015353456287784990385410773458833561983502323255086312666099393105002240398457305473011554101151798131471749454324174337599333055598044478124656913247947675526993214642329822719188214590157674795946159472535917254519639414890487838577324833275693534303564817919416898846488080113001889149039183700685724080532109778382043128818958579844935825720579033156962804173587471441837185204023472798613257893086690169823877397611764806110665646456065963816085614669309731565521065102489759942746750545891000613131297897509453899049789438283128383804885865458721725384331455755890537508762093312181663157734678891193050728054612718216122342896730160540661168219026258514200100493648271304857657900727267551692457999701217064713037995713295580167424969726945864737525027799114194963122980647788904260144332256847462353951411538774939630698965048465649308262676236361029488516143631741419894422696377046689858603256630082667904246134354749750089681444965464615054062692605694850688467559546864020690892933117846808307891817596569703894724737062997185759722834548361735766875802089180600137706215786096252748156570555644050468823556754613541991997174062900528444235166505787455325500701850561963216718123789097231693091713243189573070448740271520991061607977774048569733010748334917988321821233851566897997817496487708970361967435911185680285629792877499504741205433915379642200074401566076882121083433313272670094753158897860840305588385326568507400190527426223596155295011526527139171348863895341334099339604418933529304762012597073445517245400948742069760566868706890815161332004538738516303144535510513741470604234095633563718435403517689557405089172710555498895950783334881699579892090986565075453146996833446108408135065465037171189586435436332196291991080076831697005297744884447257977395867552915026250788750942364119011342199765676087952481553825040289049735680620343116918725190434882091502804945554088170133564800758403906064942856583086892023291820179753053676729396982369285354852638769935117557219741599519915542648693652741692632117206714941791715365110436553953371584329714614455783534794352380481035157187572744574506672558784838653696852746606986559018496129441331494695947368068807051036947162163210545447966352493027756273976529169022257369654267608739623858082813700576726367679661326058383819139528921420852812292298039397496424828317617292304311169265595311460348231876292091654078584958553627275419963017039688615302318833051811779808760462775695537376546722901763545441338608663758611579459900652769082899467041784957172799376826024405106429501411827049888565264905553529492446363970685400464496415002306735741956042775347264836482398277399952205909012072889517537732918414002202681746677138922472981324118161690767376619889043860751283752530804504122679992906297922963148280417895325115437171665736851385743145296974432839733384249725026670772805995088416388831114228607762422049702983489723547439761642648033872939687792970536749113780364691397290653201807569145737629124167838593737633821318582484268277282904017436558033443787016415805616833863754742887019795791459221040271246920696631925577476247269328250310175775592695945807432804106873147670778947403742175124125604613279391801958496286826618689485236907469029368852186492357009474512251284227410328457232022246133443201678341434803860993408095422694336414893714045509129383189475436490733774325952660664357052210406359411759367411925808582922562066194283989014436340664504523320565906712800239494982549365063396488678239659442575663567860734169600942196742536440212311519264213109689262362645478773778008551495849531684428762716800326335474070246484200139789535095750815815827221282813593507682576361973035467599988799678617684745132323996179776666660706307176230318925091473962433847053139021949618118305194402217512528243028056346926002759510428689519570210740185238813500469123717464364771885298601416057266757276583044864802675286641368768877425966281577388156255992023662453141074226236039323303186459522808981570897180913730707205447212854620273831854327486386882275768525777926598787600880118684209746265622296479741014191283601051160253356846485920609554249479310577339833995618439964563200304182668956064643960342018248942418478145869525795810897567490910657578491453574976447446057834426810030979408662522864552656649740638430546461201652435612935953651184379968526717779627835191435171950377429174231969513130297644314223055876105411367468430853798486763551655394773616528811434505211893522404404929700560200515927292656542537105572507909208071875403876230909634505653586780501485846780419027300888850894078108193685810188700817394571950441459253664749266903917777368200357834195836323245460345636736673231819457376185451925996540697495693811545116913836579424130881877859913891551032243114788208370089690180922737886371770279966399448892029865654844487076658068792538698822580341665024159915432586711108170399221836504813159416346331438577658000032707774481681222466331609479382118735517372755207797283429133864429927809913345940654802452447114687166637480283470330243225424041973688513124179587983362331085515655866546859024022069276621064089729461669230398836888705365252617746462924727000930464485536143897377242492797683793539505180949504092750305957968354763827266890133307147620638896567749868521271869504646251860900919979741284636875382329205220762564796515525704913910816387436448680596030572766491712458321233524145430953429531788285039358905405346717660349830363928298576636872600901193707726362299784880280638487499277432112325145257315827717773481095619424145558244784281929692633902214849693240117497863326079641355507517658888327024807923326753185708334484644236407457749002203046655393477808014615902507958187474140819142800621687883443940945148418011377033404008273119317295542735677560958912995576604697093830179651547508019993359521416151462174564075880680347972433482068973142266262408457863705505719449474648069631214257557508624798330123250344226967450663536626730673923805550380089868659311634119148520366070322520059223277795508827896564020075545030110282914130943668074451976246485033577162277286593329724607484716946311565698538139010308337031805014028958731248620733879153984997407541643719823803641414190443507819822255797827067098678453521283031272072260068184318250570134331039688733229442265607134080082093552454456364697596766167088897178526263127310190486811094568391061237860897916281630593578465997557284240514538991655255123202337136701687818581091825620061786595966278034095602708164205957091644044556039922368974885771147066245513769715362879973522492435436969007623504025649206045721608300430021354010270804129553788397705089307676236533966815368297411435162087795572011112829569744207500547775397176730673048647873248625379605835144717230053381240928533741588981796371046634920823932571426266745806259027719535724709072593881219165105443426027321431091133440976921210468370099720208006488936972366411904770295291735697654295790359763028243886360943431019447783133732210662707599090154767937007636742314536600560603910041624439007013309063871700661483980826362018629305102502976515442629922663349802007399743126300433454023180001137062874150857498533891241176217489941411868882971723804709375449332656848095513018463698247820862338125833562192186368566811462343462858601623709318493653144200193063536961856196416115199149009005382724235711981124982138783414555537954944149049785780094408353481189646818953406017944269932343417800259293767142516244956672001334506222167037774259788775221325522930368524014718064404640688826098773975436795409281490949156256724320468773178357341156225637325454667124080963170572755680247388434730974345824269658921830083692214555332280126533026715786666878331188916069711002522329655018626598081394548742053043343721931346795709314830544921660223108809817159703731936119342612993646785974875923219135626990448191211520789156908534154792377070127213114557090752492766235814900162951154106950219642890739545112697070704332311804985915336789608090243330322128018296203963646925982893250867961070079300697965843647319148787301701528544369127163921364015107834712591475653978154594037586909059418152994387037631880841800518332357203720010702120036563926728290870627858954838899527436824799767980874691597240938512123071647125939648197525556168329757429555862636428122847280308542345372840541599172502704938890024826720932186122889084252497806471419357389034272450189963294439607468336156628702408047970718021298326088062372727125712200987882833456768058927750476950186445481109496266084142336873278982837856773918098521508928071256668978602269151641136468587005333066184959407594872641673840605442194259807769082251227407403966348034780675976521676260799690021365078522618494641533886132608221650193069549233602484503463155284380084261388598381490523871193399507737787857999356197592159188918130652880099072796686872601136778441158327811722665820448821244698720709586355521867702000272907531181857663630566928626288708880241198088173573329645246439234848916306898890859692994351131031885095378084547269427416601579327326727549688403802514115071085097957111975833620385864031237978955936062699421020636072306483754401650121874445044630148695677026943396118659946263467221199592996791832975841118646371542363272904449972653890242331474549992231940037187379398945781652875560394965359670783118343415310225816328120430638010113638256987714338182321204043742490918921375092602014323716345863320422395899017081997129448697924146750828648399759180694268238817087199648003485657431318181689204129415396385458330432153616444948030513730853643008069083446980649713970438746062647555227349722647342816932294372883643491533173061334321769278419897079090451281506620825759197133376951123914075181405149733120203140362614726442024938263495250049165824626521684008699770328540890195326746301069662257281114000276175668379948758253219733537338750466060401940492184320242846049061826473096808484696663819836401282763327256518248896277839524038284589349299283603094675789716280424010957709004397031309957300139751646683188671609234256857518971700144865188841343286086402552865436436317590223356893736125369474282245284489391725184602671867217003325653224294753415950305558997040114006942595954492874191988631104715581941140354825051775517571707216018787929915019429109288097371280301416348238802733505053323401359687449773180213416203235443898406038574342887673771354496447992746420108140185539635002181768217490052090027046767818144624728347306815851168986017685035471396050131930739966258082808381926741937155147651388495713086772845586055774589920229093570252800724920330915561067785782650247104635140298438847192410938396797398379917472938216911176386884445666477848895604619294060196189488284858908002179276262809469712550107901451533077575695253096392952661333906545205666729603360006796567451627256338529439402548692017804651626703819841517071984467319655682831850683036882711384454039222991056284456973289935272406852786927890146468992290410820515359267873899676039121734049214476385512402642333413129462527993795951802666106676920347394270800962099349627229716424268067528664426225094714487033828385822054670648252222945954442289944109888776264857477141520169567321352516647062346369171905303931926144987908592921994278342185063480503661985669004815536828014246855218942167753461770092936923794328904742356661434292056385386224537483120044195292855814294148627375854731215926622940356788658575226990007390245334403295716376672529110612594854049472605424597574440422739834565060707749929143039418368640110453069098417433474899368987793472173407400899240517561687700272544688008845549666169470346799205163394919808703662173903696805746523322392227974067075243329112516162605033131763538515094180203400537541734005099620172655614805486578598606039264018464712212955417286304880499147736794899934562662222853223138078883885345051659238080356858916268153266464846998578961727435691939797107137491657570966717864226682678784822109739634006814095098467378450988719323260923608242019798432736053041207277632253212725875202932869202730615164979182675056970698064199873081378331619588090453925517300779028037722545276979378795034271038583299601262709736762420438527180450006257677395240562433105810904106297466807064230570252629571513942390847081302037192721433130958057263787663466204570757015898402269640422437479913154494642618622494270532417109221059873775782844877868556148835689662349994424557343197199961101130159763537644022678438450293073971669999437409226061134327359877620084565670080401227563355833095999769341905723004350642991848206744921781397409313458110798649602874423193820800023778543168334898646741066761805764623934703497018707094767484467487098328522041363430880265356828544333566719887403254927659640164069759842174066044232809365488213872252229198602697736229241919560166557678291422636965298341320468157541373999990250947724802225784956862901935332348594913913863531922567868128889815198312839448177410898714301277707752304836440919824205349012750833656302941372857987408194781514953730723531734305145505926549864391865300024788870610234888958338212268775489143090244485921930039717154635427282679249136637226025811723617511487377049260817760812821141698731988629312879652799712284339825135866001312095644645813934607285848085334649595110499520467290975755003533500022729924255120675173807800587097957318241198792030891001689893107300512400171739497520030568598460483607285610200969066553795592597666867586382067624502864529635196582922730245867667711713492024815255725939937868462084210035887366563605056384409702891349147635919729306932715115467002260663968627929722909189841197659817216974980314051276253792288475244354723647734565623850351648474486341000080872199136352133148553994889604653171466068404792733819827360317266855787945808948038308655514231112876101107377537112044930180909159215444140727924186499163008833047785410231197945940314381866354845302112637380052775178897402012455220108877252734363771445670380941025759432397487140789593821970988498700928978852619478819017723786657447525456773962680600013683301373077357024445279263935223823948390600214894937174841401713451274537629638123542551474055258862533663521090644682120020850957129408195117749571656812654564815207325118701139269045226101880220477516319411423013358882022541988737078335898274255874100199208613224010735432161575536357252548908150129632340643469075262263426624684667808256833533199850603859446493538908045540472254525272488499537342274324936316333226432385335458049556061959506255477765152332486558843822700831097964904521949271293468919002226524349939677824767148993133083112294466861496631979512175485565187815418862333824373194820812265170231160583719227686062408596625882820860413171773378833065390241411076448158977529215133306914152496698420019966291320065619735578675236952739027876827598267773983874142406950274500676593760056557473686209938607032230590332264152404679600414512184795631490947419550119050285228651480830637499020059559157987098639842924317615891869154297937203325106075522151101879797847900734820545316256338168817931249276684828167254364210442342957341429686619556982821948811485355658618006349799706023854938327740295246776483403077610924038007370042909073139986314357550337414629004398213031533479366287836181960310164223840207530550471782014999038099578263313277319195071473592650260442506485712631856837675436119946377024858132051957759004972540198871352518409623683679011175472777873451649439935077433817372116673064626339620658682100076181195462611623192460397678878995266065710176329188847488663730840179880560573004333046261877888804287682588476788805811063854726161018634848389955217219471649109033927217691043242475479278098610275419238903059883587272506756655328469768860348263274077577623193434382419108817179647818931632091489361240892023736404309583910401474923132323061242568516125553582246996913736775259265246560368300603510477865357027377017451421424929485228694343846506252531939938306331254893657003804131036282589458987498022863448401678741438319897040993935314476350757190739831346022113317761446920134624648523915708093071075118439918719886971590641358083738364301141909724631226681452438780898750200124033873668817092909885392421168643551859086096591014444374243233235241106239010382911414602004651335588478792417478965303727996644889821600392415469399880089960356177071934463463830895538937214841963734072034993474235107529250284858170419874383908506796319515129374630875384690476816595643613894359841276371910680513859440976160229699925156879130762945816115675700318927185013722725908422793706111952360042404432939717659480603069030408067391441467493981959456700392092160151068569464274970389857301622745264762362163602984338597597173317415947013399752786535683813409547116808963556342174294261910924818279007275460847412205631295360976121874868486081259727975223246813788677002685134338067616059162936568187878209149351592140129886715099076520041523462873357467266590466561865255430408820386190776137626853534970871112371088668418144111331357352675288798712611733102155875877292417204560762585801836667206216189440299455607035119002142454906950622356413017687613641499974406349462693388781658751714887970878538053207391136933286170419167182806335442259663437765715992209775436482627895208284723815369484545170333358674230239262747609047172359971394797004045342792858148665067014153413859709204088697415073518953719204285526008454857109302976419761877370254587165832396907696672412203506578955760031699752340833294352075903731823437357326774895693664154275949087436905130974857767530283287729454765556869610888566012364569090625311887253963777315049584178305619124411444952044349403540417637435135902469625067947074771020096411223642785216646888548705726943403749972368859138765827297791651452666361195736107689565570498172342667974503928818415340797974327293400879497086574173553833041408413914327190900417861900009998065014806784349116139808319504125626845983181666274490770140591799811058131838846261373754106063730677533366538909607629302441520424067856019753064878080527524439705013039124213551357687695795593731828942879540026359935340832180969954159298039667655924954099459654059999312057498556087573304802571118738180385867123058515538297191045682944804948901592395890917532343843969377775675683527439112207503280751979541989305709650508478558002895189860632942227517112165683683924000261692646797030155268167245944619083909940177845356379865689321636743814561553327667027744473598475730367439378033275695656384041826039609426526329282922355060426058204957571995274482337942437354423943120970350586263114302327313187866263760262080539493317800343786811008945400219144876670382575884301831771315233704288152040697132545269014170080226595689490779790984824544133734669176304565011889457526977914144257212344024989068503626366650530729944626514912111919004656206404918097356192129018511828147567228344043968106207558874542378012780910333352052635591652336551634535653508661957864189627730469962770040013156705270302938365909064453204716869499921983497026252189158847934809591493773686533677343193113257295258670242481395176495210531448280741770094124490353581868787557253626019773896993452138023557782417760153195141650727894160374283956874838283790428600890870116875339779584511871260019426499447259030269590733110306210833618973986154034641513908033930955227948353676381284223393045574767399210024986924050234385196823100949010417912054671525383807279602211140561298775103892001241636231422586278694651593621878148885561409284283904090000936571909994256111547090530638946784247882356766988206287556916457414316457653697642129509846286029268971961954255843262453916807268684133113413324028409365190545361440085846534033694189158883140804365795361859267906502432655222663154156182249538798176761979972081557066167937795192558626301619553098757815303309944385558916452270357870700244614699562813630004057894240907239814224483965875904607114382201769180354426400179601090660677861124660018258325407447065397729631860155378335583449838924921307706514741559215626767218435767563286789697641517333626888023305276369801722546021569521436929375946466598928683220107557504235947313542869524310450985568298376442620489166004844772067433848293484180226388546872266930941373765995630660437004884115185431047905140160264458885215425182619998671564846175956064929212768374009616111051874347196777587998021900372891369585147230690965770056842232191541904812495609209833981242776622660330110076123689796578661089878600285053310154938460604646251624072802203556369410799452183976395485478145496647914625710642966850921160012690524049253768998572993426984441124775033007283173019229216022429937289005511723169436368697029169864943832013248871805532207515356959762415993636008841983177185958290279609296118962471813639573916834852298909001598074960306844977915449127905982032901558237777930733365416692795485987196994330694141249209198340302938057228946665667758789033871628066785774047761252869264575047485752072262343581913843109902488373933180681232690811051460267302232224517924747845703205398811323631542010085363327082051716386365744105943062249771977031207150697266252677513716385536690329729570259035405511530684456028135403448816257397399349242142259995459198678470944706641281201670749052073383231327127617535862772877060829553796492752741804550858221277082689334560911145131209184200653587609605109647542473164391204671903913573107500903613016547469624078557924389475221161816676431006943889501495506060308280319640080960779645618912819041782103975568041595385890473598935914225723830091142767519917462447587054031687186399657819745163535796644512322896057884297778779618610855647688901835683244522443196064984532916669681308843300237442976300010687001652960974951104913143858753428038037960359007659284375500445535179616439655063749957761891825564296245014073327534242233754040532570356720430400168054832733943365128188460276580622170450093386753883608830082068625396284924113956969251036727814535313552143105572533405275640392545407354957502482756490819258910735960806734080756668695864682872717575522886498017731427473755410876278757811960641280319494608836534583593890282268498389313418008369733446606946436759643058294126494734337035073069921241689410824533708602429749929283380787608678456785273575678552259359150901936562058054602623299593963682153445044129128367917902747461196031284406953496134712800401175411038714665829762692904673309985733483382961289390671163311015814138377954299134323010133628426465384120775052856651034470813140349461634059769571890724645084723266428358753665180118268661651127714111865755118409082127644044240623672907051323225944769502215716317566904104208151442470351688694511396286608796925088254905845313347856886578796588429296721640089223165961253330901179078002999929600840242452439794257128535225534922178970201426679173282527525577375978245795659962621448462373171373637635213814576749102627248018882562312299461277656254710767167813108692336306193338168416051762088043542818591899977140458910552973846950991211892074722432604711141851849442394176726787326859107577793009972499504812280619209347815095058291010234233911332006092827855779200976629640949878428769772344505424618657653687882427816971514919463383764692901534989759456091862328220139294512405463988972156042039160457860099052155673988609175007519616475737783644941321121330711551204021718256996641515816066198233208877825577530305587344514368732899850036296382525487894181204139217310876895914636833787437126621556110777854162888171164776441222449890088352593930368477936045507662118610345670023671292694579135144004745509522491114027819448102008754867804856966322167473541986921057880469788813481558192316555484283707371739976495726929714019041705318261072704586504432422929559575375818217649786426529837540498190566801261709122577018735930904232516046910987403786070770514400249033035019459003318072101014063184518969868655390132608909580820632023458268934892770424149051820135956315841372149804532940835555848526520850615663735011303090908416870354826602002945398695071405715807720191368885070820123731022979378836657602680891235516513311859793655793363551545877356432734382004655879617824329780492531007940894844394240038292789734252885158789125707695611124003805988142745925622207615671439818100734955676086226842044548195465673192805063458172647009094239969504635730426525004423848933216554778535316132719018604710955003650819535428173695396161527617807927868270449552842082913336494229781893880399382336777310481413865688706232827206526653337582769575742537888652225804839570982597391108571736742640072999952960581964954371945625069245556233899731547441534747924313101491655898906209830755702113937254130814886612681664030362598331683002313612850296627291793394173677235269345836549686662732629836866854754781730179579134208941781229589447716791953289248948604592498387405458020292151876317040358513905285871051702487149446555875787944738951227038246930266065491484250845242026438927102197645874117269129593063222644093852664199561700370115071645693356776754669595713418970344607155630058937168280640247487933358960166200483689569007025273546924705410880436251867983289949240014300300265306041095321485916858369567657764133697217358913017081111490119339198900644095343832444862428061885153926983208634745701971934339963193647212969997526385962809366784278501835396252487159919213347179618880854082166960559509184522450293146344073328309450135404865551962296544632340865276460314929593634782380199553316117428214524810441218286378066821332588928505123866122992736433572984143578784211953657894053213030458406286079238987475936183351720534831173429479892587675159845651629619969449039771100313233639406045952568196281004354692648221057137561290158990585536664168358176259201860410268357129631490604760921750892128295984984052956457042720627707058148236481734763330523893640229349687255701360694399387265392810786882951952648783198705836015894175100323830589852351515804871700177281915016733765478266082269363234379388401562304722567967920661387514749138904703181903376451579882778785357764327169604227726616291044874993209849063033035748544801023955946149983592176443444354491087177233074175177675419648808517477437792616861276469834967723073631248425015018128779050280625182389427039793963655752710269696125866482354659503241174522136095466062211307762765604651201368135451561375472271747254544153748078003605188027274701320205767130897274122296042475472220353560712901601773171767183738626826571529017564188376939907975577831735241882900706828869641568416827146533354259884693814566972101382265659998315285219557423506959696272767557051573332346328575760320748998682650678768652064343716450287535291841028960695263453973610666303345907629050029183555231649484995485413271667993268538040997072303906921708826468145365067827949386711011357768652327362995742089663866572482174786438930901078770912089200025028673119189159157233990841996835558277897003158286657001227517486573171066890266982741121020784167067882153572247254740891288913143780864393898568832105587769991442204145676459381425187519214166635686446680352412691195487186717039431786839605323251029489250869382191601073311367040950622243111983159863316817876969445474049225473504314250946459026514301493438233405086159678358145578598812264153628918156908194960040418125502270221792320926939976831491803909638525564120106269708167335953944120498023175024012743746624860044540763117354032271666814531928954939858695413575902046850292852223219598918806474675612614270673432681625897639802444606962168002374008102859654785737639168251397455280962207115916557058409134431274513089399608757633662632077945618084363663679521418503233916624429919342252919293072271206067181110181578574457969207369388650211984850812310063461533086006685140120959860160050996323496605082686966565965195718004338127514960306039932047967479566975371973352490356809217910836955280692629822291086890765656360363180877269785712668435377758991592780909792930392061848933606272324149664144936412590583916563598497551385986223998871186314232436485251691239838485707879082755929294930723958427137365062078791528480233649291594641777346943373680407879173701977396182745956511955016191637905402916083887060079354753671544213012894372221306149241342646036382831155745291361215488471658164039641165144433040958867588618689412801670404208710934648867860454124900204899643084882599225537777831444354528742758172733992497709783752059316451770170125242901688154114814526274263532971326638536521367168583947762934483346127978114959560919722639810976085138898284617472100040926516779359048386743284530137113321059047798575681940334401346815084575224089663314556438150709631982099589804434958323249757702007990121774862091200485982165686347715977100589770169223020552885569372709553791326560852219907223121413840899315378264366123631078979235259281481382548510502029895110090857648859544470821584903075250030010662114252854952391795440930920576752225991298410010935481192360690974900662518455350709611922745550098473891594496910899925687069249601518773637742294303139777869874846888361526880054556063417809650501175225741734121358674156480481580296112303311083456886739869304458906438461179853940235368109919157799955934400667470784350990042541795067235289144900798255031781639548165974627345920167536296947056299663033970785652954756883578315227149659085789951845653785050548722492150171788631265082621275666956002342152370455990878588916736778176054904658298071606246231081528586822591643458928336508648109928614468752889631659907898114399028997925324045007521912509437015027064668833750261930281210692457578947862981583575425976187574900639273558219817465420591114417303669444972710368781254318089931819401531993317729765134052515966672678013285479950101635844589324335358567897711523760703283165864990422099344378782393897485950186796804990308895430313135634589752701082461007556364560305715442233887478032369136218146213326608539976952818610988631018528287286878754471129746689455141599265929062278813198492738289046442259406290970886691876806036069080048115652724058744903929220235561414788363863162890894522700894060913141589475915400851999696864621617513001660395969975994461750543715838009346649086127386701619830066269801738935970923029635940605453982618853868573177224046892695741957349329011505635935580412392574353130731004516391267433285759593027763975190041369399791822019260064950851161441965607768327602515405748863178515100274180955958718245497461667101294344084692199520581385350249186045963712656713827281879592159207673627005307580435675201611760628312289568754091377424977914536257125152236557876082079985972643376958056411638381321766839538597582432778835015844804598901715558104532338618832754640802806484718358919793624380551002324579977761280969768013989461819039606298731521816293543197349365829606530992267232638174661603782232700820202760416011275923277016680356367882389174009826593795001448464209055889118915786818454205125779199093884221331119502941760684240948378306606487155842259709761632039460847880936759136014614903484574527291689042765978576932228779328621990151128852163553752231992566827816819824870047183579887366682720133752100064670285537018789661095570463056161097118356678927908431422760919240670560765594210293146567245209564689085440559348472080177520293596477511328429921960146119781140995162134385904226644126160569190237715839065015329265026818798922733825868610144236426921360422405483155928485173017547064818620522122746459665660513385018141724369844126902456781445557181509181529066449598384591466836049423707616340884521981222216902549079326767457014924386389345098164038717832697736682948850889397926647712790218651386787070220711637498950104257507867986955944529785049906864947849675867085870775048742957208716001418099109334540242988458031545601047469421409839804418713081469676509307485045671485658437100386936604113067710546682028897566183672144262234346230837704843480187008906657733048829446173236563360675719015820467750630755583882265044076510512846672896040817264759546005734638732317208725563569301251283676594143743395507812768268338688128792119897795469519501152639225231375023104860936235822628646254958397439366126834694296704818970632063474542631549968231846920372149477731371826015028039343317556470604282592786826080989847989848123936610351677967903308329462429555475002151896275239595525797391459321638542122559051541017089101933744280124430540563145444870146467622779895712322162190493057425358536558571130477483796482376780271016645950487051713830959333264815322114910761095719931309180871313446409709464604904696762783034515908143301181378366185568014203179998022343747688113344693067101137591721796616401752114614536295156875007564073045484940780395101158547823953242595647302108470695411364915886919628808586943572790005700857385216779510621904065199701555306427452202743604869623293463084599963592352574398499277112748481575689182142920739214381025219478969919046354557818377362204668885422394606672865413392466264205091263113455481136950876269253340922667246390968411570595806333256126946341815527937962111732563084466508438293199655373558748365799192226474734691062117765551962221467762223456846751554267655693298848570184107854250072689543177067580806060963994035994987902167231099567948249116836585963792347719441723995716683497398972824778788653321604825930366377815229790787646083109161765580842530292172169245645867277701658132735710668930188306917217113038766447376989578998960461783744999018727944029123528166843240438036799294895497120216296596642359394458013634278534574361695783543761138367127357316156372658062414287706164441072685239069735270900328144669700624892724316896923299527575525853181065874029432968073545348363010062197863813785662180515195092287571163335215840984723532398317585065385658071224356458736581879014492871634904600910026030805629155385599515026105563607768487786599802676767941921837336124896343545534661319310007765194283487738761046550712878667954303262677878578251220702818732556218675386641339357928009476410121413786141055137664690465299090296502168870624723214440500211257645002920568065658657961171931346391437075009442848396651408238239620029995863122057674587968912144447223216569451947968336979818964510320072082098523445559724488408042897029548291851665568197779395452675994183935221664937480178203039988339469361533286697825401275732497766056332466877861665897499264067846510962995479629229837435218218218756850073288496301591869210358480592370473615427034123985706120473528399491254560180073234539290112723559976925854313467629048005192979819403956843605732603684615323090249419711282667876629274412282550814004784109909202513381350175502101011288595627482638185939421636368665065845056511057050880516767455485315091275040292266047610139466516258038754266188708637822840319269861251297529308985972404910426052394694117866926366808588976017682070457341157889374395374510965295053319604915306411272103097716524947610328174013200512050971260271045632948118383788975504957048422242355015182989705654659638567768581362947570075408538806389921979069000735012887255380518117383580761516021988852743754256437898737036061728364023752367043874812476594924344035401486894931608443440023533968758831052081512200665230602326306910108759670548039585516388028996529846669953948833591163585982775549253790364400638957877922871883159305615069034239794166960026412789180732521045428507733508712859639927762780962174894943164744873071936074819475969319702931982022627198544733429548620606515113155215631212322132944956255889767842971713398909785403060290381409865034461185880630536201939198587585843338506166982229354608334363873402942730562176142458262721984616853252233467620430727459141322917689653279006897806496144369711157174727160324598712350430569158025672595121909082386405488576845737671340757541881183884923881941273249406048191480161732847891444140445618829898811558618980642119214793797752252085233735551306478946067710942521296548306184040653582257683217406765433714759305649267062395489469287494323891115212207303161662084531025771114879589023113463084728277262309708603421739431295769679615418529211231016516709451983016968487643585796322950262276350609787685527002761306004487016425481186487714481053274798798468357813542492169904695232647578375857410693561088389803743368061318287779258048426564911252941907115506256992963984576917270238779712561767521029470205335705452660429441507859452708862999104767491376054965943917071930332917277832788589586878768291268265444783825254581665410889359660866034158781869631338442621370270542103932005601276998136803414515444629682138671797930185408011921623580645864594718162040376347733622831483247105285710167183952904915483400967300914609684146542199060505991616931230295243887415131357860211157338393303192571747254112438398062574450692112097567922980776694046561782348933621667793847005096473051391755368835415854126422849214415604115524536839797191090585415392982095486246181314162018679876316367140404010963436571467403273748011698610780393324002412016392240336724283021823336034527746799592420947871840646426111616464526079331666423873929295050126131253282783398476921058929013530081494502725448450914024758833734562176017502508582257464343415648965938730563144616015107602386113503674359234963370052229687354569013102062625155126776625455963336878664283551303710426441884470169227809408828073643471828500292588781924507486351480010663081714744069439907129923652678058315907579151645432175699846404122661980324327596401714764114129420425464639880223678037814060904162669299250345105416859376725788486627016096032097616046033770463019926028825932304325462868614721007021966809629756266272187842779666833021144263241228257274553068446466394725152700961613129624936860522559498745006499042761627239129439787706616069617863653560542318175995742547285779378009030986530610550616092003688193708030597378964794189536276071362669701121789173691487201661407706879278871644701613030285640181393544517770668722284828970611919688677817793240206327713393288362473466454531346113735957123653189052242585566173710093967055649898948635541970461246734317628724471743846823009141078337265611792695533879056106536968398200176526686620653290724263926481345920902635815037088106258515893799571976440206612927044494019479275941276206717878308677320107920721524959676508751094180767811937441799448913129484083739580513714502220804162068014012770437317051299530484317239441675430182221564597127082458885063239158649607750493982279123399791374727309486889106817931195729603482241496116631214084173215441408714861223619924680666934974510615972081009727960668689057898440895650294283355870503808826487216017648589161532767211221477621595564023399945451224669081319852916887860508833879653812158251362736512277216981473245380874379828930012268343532597186329862512896542336376819989950074650160609434849319589776302972232209133406549367502211327273489678500736203728701814364142898847801969307056262307288205958015916125539308186033776162368804284868184565945752698063708739857983051736542610859706164629305390097955753283667305414876300744045559572353431810232902730145914517084188544688310472590489680182006126357509452613912090227602357212056605878925816967110387921517463155543796288751705829058889404183892333659466716417737618859307345472369127004565586933357619470187941899175615017047816947021044955042234609604695194279385245414263440400077410019009266199845992036667070472626652243043022796472705452841243617434718382948098651559934843929468775191517524003564378810761815731917237459877348873078209293812555409075766746721274853500052091952317769926286172749680283194450199414164072438845915123170218395434399113059624681793257075673318384351980976626303263682667697170769548065948103301259841845399643873016298013760041847682300082805984499221056631671668318375389629784424030894418635619863474429471529462381272194788514054309162816052168653970020945213149507808486637368819396630879536458929387606468612187331703457540834897352213227175107221512812161784416587208783061847999584600962330907651891791629363842109655855253816792888507854312320238973965019114565550217082674258773155703345383388834788844079474188602970095302324286716828930130767998253720831576130191078030942606941494974599921221445194604954223583061762892582662613214563205369643153292743543590396387873671034981018860706151420752974974137971160015156461821853103753180200783233840366729438763483539561416936821100414895270957400050393660094249649259661559759907054434115801184861450109665545219544600617250847444209534120259263912597488313843083393878162459266509685304371075581747269353478301882125182234928628018468592086720944524728207629892038539473611308372338332990705824686114684061455878353920441889243832697350910328977953078823222965951757776680447704468496868070788691578967164655247623928756836730918170309773937239911490412826635547686324308029186635538479214742624767266806681179964419879793405217670784265450140695814587594769646624905127310258557530578483642197555361551124878968510150917013940461287244259669614651580284120430131836818509585193756164468676707104326222986313099100746501595808460803489884710190092489924078718271124951985589058980766904033652897941405171212826137035602914494000703432826762355074825749737034651145254039471580979908110768101692739308748771297582290448533738109394025901011420213247637563643780281604532164995784487082025352290838628372882332944965047354483194009384398819584694979582835040998086603391099275029637508330674341232697420582189599852697411937882440454944106278824374920798781315075736954795408658717448776022896883472687427666678902014869060376204305202884216581628619969612008304317965831781965128868832426480062407791367696777591513354103796783978377552661195907732333036018114630173400405549021757474282427746000746330476758001014900715884312553213749442177257110601384927899451328582578413981846503477387933562300031200487021554992513001509315741292462020111552564023701063811976736950024030014920691263772696828635610067015077660220515088073471425033679091819022536165549702989134073509236659492595904647033337515786087757669442356549153367668053109384846231358432618109303763604027367269966108967464598751519958554542670453846634536140462162641778998783781591202222075213199827701554272216600979356688148245335779002496464735476205785418310312770767995686396271539893164123073025987465279692851679776384204474701869820724767391887044743814926473927383696685963964003511946107784093560332101856016260726520597606515710344207761676317268040443534555394363008076537992409436616366543110575553541062606570075776249278419812952791656146913543303570430919982935395182522173852918421229906870586842309683200694949785257750112688612294554622356405519859642387645702306933736841398176610232328428605679764520156282277966460405056756321253389931643559432450528952088121073859504603589760959666044364140870231940790369592514292434892808219493956483487722152091873199307198316284244352235773032264546575575868160647210741336520373367980561684371587030180923697057879923004593611019074633673255815202498423645446048793554306117759073019313375532579675707494828374858440989875485745227420978012057350982216697204493321478226933454098579441270285062831970628852316526062995019868966825151042190813532527649333381712776296093850489411805501813104100933528166646314236385182248227599426479513935286315598907350028230878609544726178198041147261612069104146569155758985466072067197799316652070194476182181719931013698073523988047579532602296731521248589674633159969799753471310445896825458917316831655319691989901451585458166075284681510793053009480736171136616492196498913885353844198671171581153772237541879173006105210813440172266049622221668390049972839895474803092806207623867442114579961230674218241797725200703854609602208582461919096871182171028935040796002308612919299972797495307237444053322036600074056906033434764755680583299281082311953405361402394252615265367782759454352047689596365466763746060036582011697144284505756656947913436495532198374426823421112253853032372441187509396193020103680617436990389990047767758481987272586318662057135704251544631819228759086114879282271419734053859276309948754836000797319289201606860172243797249637070788230722326628776732840056006165300325089022359091944353791361434836855914789440796938719203561471761221230951874566696062601664071477650621728871634136677209816893428397876238347369875729094938867176488550543816823807253546139449244941036602448079317825468441827026430009284155174586544341700784508945597439033384345541331981744371613382044205051552252398914692410999075219673102267577767293870654373067370087500366971481195762012286219543598191766440071093091122227613596618444649720646726786331418606825433722233486651378960863918953891793179888331936135078139111588853625816427180319357558170777511954291187657941652129687790284297059546601232588654550042274575451090880407466092500218566843538367057416579776896024568470102670632128433095337621647582203050289970298957971294728195864760233745028688306897518038602413867615601110083453968714368085436105471144321681741467130872377498318343673713223423725118317292617711862784329226347431806515861242246092399705175938738445929640394495519697731153230589463789007955538526234804862728667845897370156155816968047645924458834569250077735968541710326873383441272123944391942337357697838986563255298786980703949847552721897626248407336457264498970935799341535633920812820356233484912797195481879143613361412785332843654570444546429978890639556196554281685438290881138119783905726384427671643010876836553007540578197953209665722049405622933571194807526652443667044001116046442223376427009264936242498660822787294644948715405698547113409515386057254112048993689087579477057357607003139622186252781601007070784532619353516344760297879062709978345410444632513693089644517258523550206730893449831566702920659920417327868992020414608004226447047128519682674268339100585545109946117276877377689472656871123975099957788468626555082294675965451952998219623664157008065389571246805440507831180884121283799827052105226005504408549445238657750733256889788694846338234605431995244746677954891479655876609730262451057266718889223695807386328207246819862919222318109722508836476430463661250263982640489615768324861923576564889433530403382702903105875258525297742504452295868843284486293695181967302816666546741153968969454674668484673092382180386669899615523352238948165577009458742489994206113839051277422074992303404830724174535552067985170398956489748049277439832974112880745396056768712820512531825610634629780085501809274867608804474071640618409420716261953003387532766147969364349001971521982670577749890433529755707928145626541584111868160745178904008159753641860225523358669520698640103159657431364953841434487952196529073851764592035049173500900359810410092876535461753045922735842161342581332530880023285909768815704428048227624196009963628532921540404493052993160048307635258804594330898651343918927892395369497578437054637234460063492857158952134361962269756350151574972247675989415234447532672434918920239190552446689769817433178033870702065856510166985617749724229679794532636485633960534166476924506763291097394080551364654173516105707966266726782111602113199216469005789924110467710651545241374278662208040078234546836786742535640154889330813821777958640882362352072815117902684973199303333502722310032270481019004521716554514329811233867727328195652153207009509970723714474129138324957633597924489306233883247493472678518479639310450312229357711635584342519739405052183479377079825278414557800549037677433399923953907023719967917770273939976693960069883174277784789245911010702424859465770413045432367860216349267268173451251422872787632061823059305518037663976857249270243490775767390340854767241423686115436117617915605818632698790399936291382971279618140257231616276008699393477851671647170385478891401017691418416493388790327480989518002827204858520945599348005639292805638109067184963054329841831510337166399723367852738106618211940656573680806910544081135175894488982922692126407958158224094558105883873920695494255752384387309131249952608564726716467989131328542755580336875959272178192681340652651188012124735196669069253553564957110410237516303103240708905550969936470822713387853252878319775633376731733980706255528719192452691772203073424358945123458512051921198114635369065332021441170515242805427696832608558240570095469833605432156526385498892235542424944341737619046685080677562767355298948894952560432348032302029546939281036454499206352395192698665582568489922441442028833792329482098012759037544999182943584770136445560228447100080000266118433680145698382810762330176527397069055774691909588221013197950102471704958402903273114433875774815029511772307883856259370613460506820519109266016488150387610248122671258944155507023517856998284665407191847805770673594093069335775646309751453200082838282978217997301977320776769461606301028730422127204431668866768073323457796662523319497656584986447831784541623262136861578153483766592106332132862323618131067244619349345683621264451053496527593626029906883091530051615386304753478517279578741445884424957716953706226497976951457458577520232733149157905742315217992649073401506887130256302486266589230597390495839679137429951486464621361194036096338544803547020997809141281254157473065063506671438873839172724061953317213495236300617705710647902624681402538313478747213451954137344554053538213362195656385470647892956366659039603958779015786871744340493902553567889593768547210518734648960016034018716716749613133190132782402009741012382299389203529413764964809723303392719250277689004819353285470147527980670591582182914654821872471881922134912889805412673560144993646242765097962901190000450495764849249007891466563301265915087716029073167797768939419796769869861030777176492108911302644833244893724938773322146536282502500389022147854052459777429004003897894041650161610654552653452839648453784882829016773551942411473957265156439951018955700290706746604505664247593245374906384638567009443634914121296102577563899102803735300970072536736842275827510968443481108976005910095021711701589719116266832765253287628983206820905891429372519531817020790352505861552008096235416446246133085395167749065765634406571933795657717990266333675021128278500234660240074926501351126162864440136800590892804220961124770521338224253977865026269252413463560071191676941144233965635943010591120145880518598411513652045507456398189318598927365737238376636734343103193081719327644009524981945048104222830698971768772703148018673998046055308592960346930050299937990577567491466754107029619337829554352559963721345318979627943839825843082084558723201738801038155178742677491129708182115785633605027955750678175861301344119357541402942718009534643475996961473368265849738313584492050167281061907015960441708602599185907404801033202391362673397572133820657389112414897711376422755235097034958985661560976381667272167764079597524700635335514869922704551739072623829124591476840028304813501444981950119597127025339320963411314559227457496155297524621472326924926688238572940497816467766362225796756810627511842557974396099817030618580124059172618924525130252048341095122687303933141929373471213958073061736700108237052720700839464232999619055229848187493151688542116364152832448794413452033773314422079716886394714730941069887028988094128596204847155859406155548647951142778031163407017459861320398303035100040690816810452560555907042564144262213956693962978006439572513196289990047732701991174315413778653426666136182138863267151646973067974182211192060750662644442523362053287802934477073628247021983644635683476983755341053051626609632724670316305846595927004682711830778615299369922591493533811417724484930133960882028445024261933753624969441380178304771148839706594438275855107442776010012167679005359914795105101369239491781484635190616169231825314584802974476759359783848864607688420479671359808354078027597978944416399885043582597852172682701097367221387344582785011354155463744433646799835439130013124944612957171333807510862977390641778265818800730094367641763390941557614036401999466682382208377678581109986543816251771873273651172386437647553827356792536093771106869632500996547755574005125891564087716346270303303306915057430580410906454616974340100173502261249796650688277232163285599653313241071913819420727833672613365390214414710883189007398116341519437293809173561364796695441894019838924358825460386902124967139402368863457050921810518429915113963862138615453100976825936774782304388912396357000230491362203569383117638267423712847734550103174014877506520852026432300011917283253613598487220230093721840398448422924516102141977011640404752227553869859213403752231739523034964028705876377324402659711602769919654060488342741495874076953665052017626966472441958806847007016325539043911267843593894412736497388747274403788723293936138578653455066478702085637002016282567702382308337541909840581717408312426297240309716503280040392475284226004710558047462569002472671742897353554272914248558448972123748185421110115552271535747082769594117609939333277296517494509980165703471263111754014886030414886361934218898362588383629787188656879734358661853192832273258676305925798661362219785945233018523510685296890202449167979710066526847651443018419609376001491859440937160574323134074937707957969533565631064655929955332629243066588671413889559327375828520990297117646061384674932685980088511684253104764297685605821370096177952320774418518779924481559175204064801429923703893792084169384599822820488440103865006422841329131768981742306115000347267916543740280947880354308813188248847870574122568321359731818465911334139240036816970887604303817067480792661784371129027528629695344266936141278489326710664651942898987173847038751671762748858489669704210293616292346093999416711530107738336569096356021551469992432194240957399500252724815804829488276830806347351135783579291574068591646479038655067614060601774743871330971879784944362773762245052558235193492144754028886687938156363829713867994781385519566794520095180527658656562572914155886862524662255792920012425672881022524909118373966549076324687115024103108872394746058515400133663072290873004091381978632730171225722169156026550529417503362136104978942393379945306406063679973021050547226750193231383270246147526606519971134429753852305152438967849479641898342208921759477059247174937669559617560670856552120840322744989488346574918523402122038280625375198162840260362135903549034074396035413168608347037743842792443811240905911798156004603786539419720260421122233533033472973158588906598321854697658664642347390345861456649274264856388420572585080638223962809201562686333935690464460335864985637022987601753588925576270535249021595603860118181172276454687390080603906205214795980608598012270456724654413909606833073004385696721961697715520687050620028835073174109690178455175818053007190968210768545289252595478235345481335454516188292441079457917692989377077295623015286970700431603520637365727137579383979447290338366940945464954694113591734096525929311256718046568675027965258081710914306647534008454371490986851331131824420802910417134640539957970881782682704416425381779088068912846321499527277517319936300323307732178025159450381908411493909699979692905042305575841506866778999985267912373967535991587118892939292104926822453758769588190086222921512182549842599021072375502856846358612044269971008621479652730329811428177091130292219996909716698893726111674259625615074526158245142279739110915774923390793326050685305492037530847822471089446839402571048912122372667314686038759548237804993471259417528139173339107685621617397792032496614819551228050468683731436124906552705575073957382970550787997623710803743684703753299075650716847099769849140251483893797230419252777492383551221061384313335968480482740491289119340814641504872463241763872701220770202502894584188704531887810691136356203577129973254841326650496967800990509964559438190733622566093682472530475612860387592214036928615252807224302175315948599286322757322574335678283832578961435494518967060723269721219143077732295688803261574876395193301220449577783549500141452969918280146426153575899440299681402989185210079996474455856562406514139733321615409889917216725327131674372669306307301360155878405470285185816091836813846005662537606283269214804884655167358736172556501506561712978529410615069979467465048542604240385405150008014945528650571529053174688779534967048975423267643746055332144687953418186262032009671803295367748772006093149249369620555046131864058748811650069604131372986520342451665000487163588031598454347766697622818219450379123948247391748499012202971373618054512189662909723291062112275376154774528843365095900623992997761914251878959561554777351171640033564039478095190873539934101539723965963439252957747841347398174315905733523393198974058859251366834604671432965171202705991210778191816875690545915748321054196501047947317822141333723663989098638066470217621876790358177808005414459105542018023959286027770033394453940191423285483791918098735268601721311129370026680390907632018431715891615803923448093945724009869471185220858718726081376140711654128068938539830196849033392878922884555556233922407367939007615757227590154160272415107908789275372933395353162748595015402950244648018788332249771975680646161243101470965076137439607055725840626465407638733847073512476285561260521629265843674237958537165485421284473662467554428175521137723603915718446392466896360858259962030773043975952232353531815111972301745536420818711348981117591438749802717704712790019142513633885515173581129660725218161040938847357781470041815058278946960522415196469919959131171459690925103391814487815529934744172954048928406984070339893944228845806169219663045886693903327072581568983353063926984177124929453484748486545287057509122493218285439410007167019854513709789340197961424660361288616648399946535864758553288014850426783205674349703379057560668455541837731843463519019853477139026842488384820030062063417618097318813093909012252401663604022646957002893881250220080510791961366855917364693623674507415818365322141407551750745380010924914892370340747490314991428220238201017558389245957988082981970222462210091719045953480633655453952517819975497108128601539094817863305129629828930524104124754226343793940022906692479199808532060412281359895111854046035346673330994798103609603035529752472805217128947574982399257130918811850257112363391228274786682073136349084233703603422400803684339572453676400337900409572855870290848183125878616905247976756188156565738256572082232024457017749877780398346532836660035519986600869507034690596067342646904533624451505753072170344424969943487889124298040377259424406694899395569397838118474345336806673719919846494269176388418379016128494736026156652422382967800683830110193293213056342804046832691956252052967404975574281170811724211859986436156271560056676142660083201570300945046140156636273767096688836385816153192752221540493182321332859997539911213652411433773846910260134378423695510311565138337615994735135933252178815381998003078008060775555408354001080059943478766906825344588374869884091562857024847725567143738708592477329175566467851904293994927845923666818031807031074637349759869418120901530093033148400145188318283675792678953851150808384792511738156291576102937101209134331270811515807694746467819273712723522955428302218492701467084911021419894544841942694575230155897588870487442825773310861024819668363537059524798867674946401357013916802513601964834477654298565796486098356941184216468899749799026657855849395609055012854767018416271145388482030381906162869278463293223219227282897849980646024247335369055442551398787545159068556456667949151417360947438392707359529513255021021419853472966605826813661956498159513614638128209535434240429276529403569430162077791266004928562321951678310757037798131164462489654065073569283300340370744188733761155498283630562558117569646442906682066868144929968702929100814567362515840726534380925449847140021204484473353934873867312048255290941817356004119828775592379136559429046833074599389483812531865714373578284906527798589756506359823860370452829256845385060787470027423335834300234258886307642650015370137696241364656923274568911754168745496938519207863938676692158769544142488166746165418066232951220559681293293123990229418393849918703259272676745535756571553251138002673569709277739230238144061666925709659545555155525341425026156013866144235778685628646790156181634355495128642886129976101183933524922135704837929653783683248851870922276985421283490777545147852681027453593044254472910082863491197809076136203954292684519579125290452886640176155460134253702041408297587433274583607294440418061643876257844036603172494796474427011654839039367914933247146555769109609274140036364687673313325471086297608582754747526063721465198632443228933874559450358226556969794529613439606073850459689400772786094735140027533450767546762650577140974342839371815066884023126791090315925331447545395352342317443017632797075433650779174104918969460749971718536358183764065418743550472518186227164884409363710762245206086561351243009095029378943796625767524319638255127135019244011393237388152973722477926667208356840164229454206543992593130469247467664394202675925914322315526532109216746047662250477010445433626748232461129244142535427982736377081910190952160199861875853939249047568532657915472244455369247147602732909881729379219272674895486788609040718274038799690586157769659419733397851778002696929808754276348215206332864605144051611630075627534923779887146857224190737202096480624584712828784105471755164305298760024263463455984094297634831208509762134466942185983269682391938687254231608835530838133816866985152979282070333408557589740714017990611712711747189976037995945081547603461220083766186460057031005648872783807523776719142692238181837286904140342260621215260439453438745278652037652475029821358073923230161597640840791922933296691646273962148733115200639398623518510870055919312915765553840236637056391061615854074800576284013960514990079285832598146355180047683650071051596986716339715152120123690196813171867624186584065391223936342882257487484175480079460263432809792540544259146044047597830635641070191315580431419282841933021617737353246595762898303002418126949826091949655713556306197565550741749914459023899065224944652128478821452299645897910038277628742088685155763493920250702036315511106530950582162024896596588810199622240593019718042925306654663576393434558934460613217606224199050818127903009195464454846215571917646318980547178899721469630149344752861006877682430714299690015336830140948737966562991148474054426312392588898489595757453748782852147740743283423722730617679107155008259496099283051754953009045799439532607945805981251054930423888561441866431264911787536375495912596672334171427341833946587146128050836696834738421692467176290809003427742599200590046031569225589345304203844489670816523326947884158521650078998557550857041928901390098810008260574256475847095325403127375580543755021420042395802674086373257908298203773833789144953777116713590169441317859123740803961880973063122049423623791931444998803772506502873028778943866388560210183886628537151521115387307710703953601791711313597802321732376496527749599256250385823587891997559276085446781907491097072203493808290534050772572815434189461395472861930571192886225820376099370047706305327775527795537064424161307441169775197366004641561972801880286847419570541632030505693513862222760403836721333996231265010635514212690152616261456281115063948966726688784475173649688821369918647130245972496257717257399452067344383338383646655101334201825278202826671240761972051207858368954245844477310463348467921497658299554752222842199048522916854061491828250039912297576480592016869137810561215958323328973632981234987955751118071876165597884979786492435608419944941641882843318878692908524873002870730232889929067679729533664991963818891050729688295813046613862870923581087035177721527503216490029582009555887120034709464934144429457202224446571352918607194629824441022646475095910903746502166450897630540656490657774715484731043740360985575868132297587950496932506604268139268249227388695173921928620885401430527257049621056300429639068106201711736114151564601330622353863978685367869920096356158675302033333686820315660962813307137629419889779261603465818527201612821272897031701460225236968934489968311720861348105401022520462338539778660697813060983817245791246745605752670349930532067469714448329169192536026521134277471014271606565619945328966282481536213626032377035016947793584823715583038549783913623498206148320735653779473665100166843862204111809646589288349813315065719923272814597526556104793217873625608740988363367481681098753671310197869636896894741588058322264043430124416843742304140001392381588644284297766904177481047109798805394774363079853914280262955141041533457341069173572079978623209469192175398216216506001343756970474657975318598256937775146599999287172481335693024246896276161287261803134230291725602710817478056889907465642526186137265045806043631072594738665332465336590605706328090324380388460657522681459592290945040244080283212700501325920667027816889784921878757045401193717931583253073894399270127335716768444942565258595197713715388199354778338626076482765394922871060546113935735414449112143347084760173831121340222860786472114544147345494677104610007202700262201318091141969184931655743452157779250632052429912303683558867512681276027233822158762783605283841160826862054678217004130023999047087663843746606124766336527696472537664434869851444303147059146816721704169082374841235066183935368389410449795501489156664373569008218088697949556793756071002022227957330139471579178038720546780077212214842110056546436903125838356729692342960491277900865111793169551463811503406164209968740330555730967289387569722959220654529148312999276596948625475987343141262489109465173671907748455882466379156201295027366433305195537918768948920698741281352215545697222569838136627298137028496107409750861494632972054231291680618718024697391343286643849561942661871020132690094880102610672090339214419767517649932050298822512412909505986543473280390856023495278876513705887417459260022604919989681821017412370344084656240957254987878670905390721304814661053836621513136044312136639835308873602259717820350663295537207781650172207482831185853540193692751451703419525840361275344390868262447246352488018668793269790794725120377520324943661271168418043593833510934664171912759756835454811239279462194408954816538223953753280667287054402084264340752951657380498777236576779137018794473352230789714435714612297881558762596338572266296226232728076920608792496160299046026363687851389938973810572274648469041434846933895974917853725360604107845589938523795802814381477330295272049186350596785287030939615785983821393513521603575422454084756047716995518953105128115387176921904554256770718764492516522271860830137663303400739973465544158939622900528133993300950642911046270593721892736992759455672178796350598261849434912080766827001778852996036201057157740097833441487783510492697363636773887130291897735337086144528404825968185787202246403636922936009196504249967518277002013475116144198025969746674090506501415305349091820812100587484106763263889677445565407895295749977054938805455760259067875286849602273621003467007689827938743854222153079995705437334188721527981385245372119876717004619254739313983605347494298676482384349244640437280956108703498964881542726738356935968185475700913009242538044280778452920526730495833640886012108229293723399198022754531851234635380297566383206931807671528369859438065162392374036684025465678957061253751841917978601790850894358263608527828503320147425803290995760882492204875596139761662309278462798065322490753100635803527209290106479233478677394672056853985859382005990607808644848240969555194557998593282256463025958104706064683653779916911147229435760793505414291443114005065601269808423274065864648865197822100420663825304158193310594464603999436329500301531673977839110319252661111960060365495211896435323924407061858910463938842494739499134714318462517817480031725827493790747154137605661181352290580181046218006647998539513873764962999642460348120847930143844833730524804095596954414827168299155425239438129553244469702219551329815736528617729641192291615421908272157916889600879555730149418899532177499894099098435702756261236103576971331762817548369217627383253192228394766508094673710345563107684420161752674441889682489567786141988084600042946376987428236830920998955704076851107359310694509783837692832762876699901630881085149159668182853252735855507530702342285710223214856855092075376750595472276356692060155965228195858503251067536681436793625208963589555311599958334895554426805326881352063591184618054311263963803859599492262645242640511655412904121307707755732147481418319424914118238963775194695264416345362923997830719509377004036508748478635301359497750122476824922549500635321334270309097656583045747875822019129073939687397862112797109400250807875115693811566537248692191506199493360807409416164454592427761521831589229928917110419001098578634821019253095050079058725160431324424278100669251253540597257600267504635373615322794030724943902295925796047974626041744740006736591675450329630605345127739872251263618745571270749157716046542662237876546299941575927306150068072779920859275147517506239260838073864696597227676299436840414980153648984913559191873737580549743993208629498239330398718545886391477651250520636681962761573399486977145113667671769360225149808648058973210756506957288781826449700869759248247913290777883098607603209090988002491585085774511226115936925454179948611883268957542961901954345537738925200053017258679784750790367276377018489938219087328957782878324900282826737966684346116209207160324232477082385409549952709917178529840251467603208724815084414596220801283158035652335403464254109101905472145955019360699308711494647609169544703177022209000244383993192689711030542592552384281446053107024731514543537582624962434327111619527722369256281302299988418763800582703955281179834017534011493652038905862741739601575048108694779594716499565074954817909126419848160221635516833167342618531347445627562860643600084130341003321192773290974816599819105503852164587217783316174788197608053460977349577646843686373900537189596959371403622117610008713800458324537369057618610265710776197317950108861084502755777472848865818765414657073285281480992175870570549807994035825161054668709987054438490015593172221113665107126150766546300115674758464687989864620701708583938770486980357578365877342968737162330909600785901000360669886880796384300785359392959905979289510327797559873197788759079371485054739930440648761222370266065789894943298208667772394424735543614964236700740812658721646263817410011772075826532010265882614902194612689575249337245576696020260369367529787773042461018523920286748085738839533122147831544892044992013026071867459563608160137499725691086606953722951134138470735126475165257183980062341486938042804293279395178619725822223609018459122581245627082337571391493277566913908389270039998980342330652638363901241212364392043621596079958990858437756608011907955707089700091622048499686025471106526087513999111948935711854862602619014892413016529529694188853705390198399219534308816094954191083788016815377312750128644201740085741429110804773353270895770735251563120318005656921285291216323089458272619997304351028477876626674384683327629023598258955813733608011229633464257558965076395580712318388299957030284159357488465186359238670535938115183599823720084664222456967035897717122360858642173650046195377856687525847188961098273387703248077567775215365978832891129979240906673154120760451954826376063227842063796963756412817280326641953365495811449795938331692827128313452711262744802404679485220429083791066045736748658552447194335951008343033569605310459749325582733410564354079974190676830305583908500577189555928078540034697748486086457873836421431625649340304278088449982601017230247640665153269506870821748094408256770408993677828420142506795941040250284650397886100929160790235272880620340887210769668847938404441229712583979264002874127017465949044374245892270276490948226597279183556858429726715421266199117246328325558435524816899727569588584720761161131565079427990647749621483094943107152231517967720506798433763409088115984832422173352590328354210762383822610986098143286420513443098914526732538164733396017827217367608822187435614827136924548397907726077050490233510564702633282828364679294384180589776093820777418444337392885329935425426635666518334115780516382008273734958035869815635604395093052456556978907889966506650747460224432479975338872506631384850488120185520423134395398900649936889508061223860081037494007712903078957519290788249546822984034118584596582316701350500928991949072767619462776063925578314347608578986741889369378114839257990086669154058936033050327009724417628773483650477011158669957710553736614708783926827365287584273264900327327911470491245500843866648234371408885424014075634781058061574694686657268437429377346830835335693919274815150751034724722241009370595427801254217156584665488956415509922234030397725560794433007992087942534616688175486429394790081708229045816006887382158790748106924587354877352481970053715086091029247325625225156282823063522515417238549111657463194617923261667061500604151224412412039170436866808912923156765819970723213709900140062738262325388043958915787495937114834983250815598107990725467867217668149816605683935121879230449298062094576755711453935869928387907425946040223688630236248403717400898356619948607914202248098580834184106307723051314223071796937525528307303808727032772802055227019959418195984292488328380165053095762329554520061295410990433725999311793078263033019526466381908788926769050669941474881749023084365822647236625638489712647450898774503085442734753462372679734421960179780044384014318063659204222162878830602909708331777998781465018137308424636265964467642911611585493304166298899875538545632332593330893777817625095061524905886999398327905865886644439171121402887938580143042470848324897096305044788975353013815260361842266305108353234385805951243005011797945677206277126254826731820615705012267928645794322768292999139069239746497914396320745915649985994404755058021909038236517947065306145447213392816233715199399936696643867795031263244310247041750201172900097393038491691354947772657449538269796247682664889149832875345388367099976580432910377811150935541431810207819337377092011295842539792766491559061703081983857513211792673821790024836308559850775595774813700303152620843684992819893756739612855665853586995083332447121667043017213853199168348820384989224602821716279270963747488809521332733801194575119110857461660012328144436770837269828125996662569747019274373129945108148731279113280863566265343867577821026143135344280356123296180926443263685361334461674133123917742248833744758719137566493770065195233725880346679356816889314112300505174026524396856124170930240306573249034916728478170504319568109867774252366725633091414370174007519809309232697310522483401973872316327159834272750105930655038934750791027959792345562386312530952683691815320864222275866294942982093843507668465268485300160253261050178454228698375522205670723801315736270720630225067495404506377400288331398985896765541843518966960333253942835300539457113367797703928542163857256331041244357907268570851912130861846607042985062997768598437197372432045082922914444781039797162788214879898467966641006805215297258895354822312372060222903639587145173971214387925802820739310589748039764473229997244272610567038741349117946901107666678804509444885872284883786014612187750000784061466858016181668236847102179700890634473993443117909620196811470350736562615196156356808862226240989112155070809113069233540181517030037415989287629060068191078431333811778709191474985048503288438227139802914338792609372764090254458258753007665961578257508593553178676463528077686664478432753824051885842541392059862194631012157357920347344561715074843870384342522558988207127670404009240136823124359707733020530391829073594116083556440505839019982077399647876411454726879199815248851052041930679283079111789686765307804376930320512003538764344486528061521607820947920242831821347319960030622655089017062119859628152219678443862874721900233880827109799407435986493842884022049302404051726524668648737431320415584608895283553424970781834502477579915370229779116100156719395208368896009481559422167315912525787591120160122772386802521908324648190852767554493725042093396111617610342596416630481634376769849888517748757525041967569344207071650085555325683334097602866099774136515766681121302838224051136765248433963968537324376792994146318308657131258874080997095072922147758742297554956931233902254166423515838017514645758715702445573433786371955733631459049093918099284409816279378932287516518911885305083571507914629915079064373532703382720098886963233938645718105857522963369910678260278727875884105668508250885650291697445384166226368989323800993576876560863715859381189701469439139732211576676011691948179345857186184605982564576667853896224601783905117791620431824185531155194594125687066446016744216415585764123224433274671050943238959498283087217761084251742114315825288277907093604155168300143857113774947773027046425983083232100919257967846121472397894838324845964391454355885633903018569476832597453687767805541665733820947326840937490994270313837442151863367927630092815067352523324378663523141925559706488956773160081117654660093143803555710430096291912544837862510769963004039395506025735572205647789542051783168418144858748902353360215291862581185644499939041282231305481021965658208933934433431669737421694776386485237528670015531753527079080295505038653398330992942973200403324857109918195913505102992853058645817379353037618714314687068672473261083459520188375412654304785409754077645030405325198855923011501129130784568639057841294265382040701812469062422859321262266582914159865805122171414801734689064509083421330100162364612631157595012706466090114799407715443422466596582755877883634022203541593518708542173867438860527369929744236124418626041775059905685044858289470192462887691901199626383916844463519199694630873883144313451272053310238397373717067711568030661074203684934234078534830002523372839828950603427287389874047747848106382138741958277472103333986437565284876105022223910812316820206773997190246161868951495566701519739461962111223830182789601565720104970381150132477406223136870287862211268497178415874960286963533702991155970827012216101517883266315825903543621503519404544452208466681008562837090478871238736016821639385704276999436897255168210100943764972718809425594887918165193634299920289231820340605829126209930649808531365372390615325511278175782805331158145254028796752101323706632348178552137301830250262392701221662180547642808630974600719829708997899118789313832492095483144843115216874010071368853499175796874633534791034697864647816402726917154899962393362549169965425541257867909121587968220278809051094089168153070830542194815642120541120737770008087254318412746673871633885522650176697969298674195448713646990145152606660220478402458244457867434152501863347504751663220585675304114518182849512647200464580447313641326372007858917844719146623644373201422467679145244866116367129403640363452901521144810871016978453072204768463975306801865828912617546682966636900848277328435168993126647788094791248756040706977887543436251396072630951217311800636944771297685987827824706980482101089146707593252060514146283138186294381902561200262919331846413825026612049665628171064953340939119330804252647983657045544041575311833801941165864901661003447714978580112498631508963382426620380283311886580749282168287979451832516915072569371847428388075546963007108998215508279327708903340357390601924896637704064863883291152340425746224471966805832102623222917955024106872326788535045404621014366275623684103302582924163257079535408461086223617607444432098211158952743152366316743818001594641608222206861516134565618147080401551519777506768069783631984111992841124804465637315059132959361518557848778700867233210794404334877391398747997924109922110464685402943810014732703928467049722579311904130117483712118992899131551675823191452163942417655446641791424772414762889603239215495325242205848293028879828327279413007445989628736821386713262192060250507959496116285686333228256436688139308916999627797086030471170492981156556859449967454029526453476641418048414722217659809157139195490288506666633439988688073041948638569794208364330728649538138731823552559012528208113153465369701708159382206259909679106250696291702186372394034210098904103750125504379273322166357377492288749778230556832344050229082823761252648805244963195689281994901233389421655808297973109375226355758334636306193365841656564982334406487080818299316730678844251251593989453976426598196490175990172292315813172376428824759364222651376655597025011223126285181020120043472091729139677118678709892235286228206413172390410143735371448590678594727612711226896178544529986976341287587842583679315337632196239042130287914790000749385792068806833069375331995603813286278145313449854748817904906198686204246269502178555397924770193296639181930089971620014036393036626265259442225825753117863567253271066357214399120621618100378921720239352380629440731390310939578185352295214507447010530898383999219039240200014357250459161219988862183553625778743839718468083200918767176858708937794059875515684577535975398401507368583838002521830832382898894032223027022843151601240481185164298424690273872441094082858699311855806169754646034164070309722225124552079660866626804891455173906784838614262201657163783560138399712469974126312829523700240325671147695200175902823412168623237550338228579733844060406246394692318984282247893461489291887924973933431254914711440281942576000486836181474293629126427190451101210371239162901757997669264764186813754258344199751565883653984159634066287513240475109128935822675764402335360964713762713017301266403175961006950035365846816464651675314962900382280495216693877864188439092756107258100876283016647149900802626325921138227381568691632181073861368641613989275274775713681375091277973842723065876584373960578442153272873862571158694084305575578564237275926484893140380183044394827856119277324229490607302378850006783390169550024297648917021487111656140628365083055754667136006419956749925016418769749710969800600228123689861592403819180378037098623098849731780331693923747390155459804466081523298429314734193279262924958088044934287072464046718074474150301303118134532619631205640132026012188841953504101231079466512340675896795269720374039769774877542976604350179783681139407573183692470582410791652203126861014211166054012924308142376407446514809318987449236833497511432455223103731479393159814700239458024144909367867465826636964725626690861832738562458452305369071250805347885466005769172722151991205536449456029884656024051387413323230368978050909012131208827715666896688668161859127946618997670970095169623239344804771277746886543482677703617852670220216364547835810112224306782269645063277807625522361193386114194660891768821480564232681344953201598859450566125879184580618254307515311310571671765245347988464666793434673678751083618351159670418557832752054099978535012176278818458797886988641460455142951212808162284276798257893059088334329296021464539857270962865267873744968894701567305558071482582504720923897603071132179163172035518873244816215964049423422917642164537565041347394157881509464364124907450697723586635082152852653285289102637655814217050422755337177235053987849312776838085350329416472488391145596884324564463610979758766833191729105973114689484784922556566155725802642007165507558936133091798805875619704008519237133918929696063916918209834676006817478157992963161003222651390055043683588772313793517117935285811263635351816927043548516212190415271506411353563378184861714156690391929470158266655190455030658829680890981989691547075469386561861124129083957407608885181015361889684279508414436728427182451492248544527230135216034666049477845445605661336743997159762541776486148063011527827000351751760405632337958871538369180567783314967245168135781736332875836020655382184619610092988425882915923876862685480426869524840612797092741496574724528320617830309281839245111714218569438766277087714917810334052381397748800152145089591300079658501531393542169178073746955685515230364939689285139204234680761156979181618466680366718776934454358489136979911805130825861231996557995761604597342041786358441009060922713154310940317082332192610801953396430184117648961554703691191134184700257247184227752494861863434112015514632131097192432128576481853060142180731436438809635650484539969495316810805569652619025015712236828225214797026960990245431349273570983704647636522648227709642183173245836419585510333278221421768161549453532387090808271011444716210107431026472207431757168926396854458324669502195400011307755872585810317188222917589077827511370455049970424723120038347356030614435142148627834050830621175346440630318156862969936594264918069756007418483350524871999364299069053811722525577715340156216801205139359337324582149392074926339263836246360088157171141771812066301361010150284767998875178048000411188923144774062221571034358952593942047165732896446004652666274840007193756141910215906960628915085996060279628912883921271382241259652095615226421532663594642418317390703633476156415170603503458175076416578010419427915601549935756065492656965970540482616002134235347334655794891365131913434141510698701378260795534765866531166971439677116992113623191491886699620227363506342304147773519803034120468121452210102018748185966956884776548350932194204752861241680220612774283461436729771181373322429396450463707604515787014255578323405824155796422830729991501924337886927408208232272695866203626958964581477434572548793560878531591101344396119295147472527661276787660362872013615355244696590665315524877055490849468677051837695926900770287105198446023493242207752657787820560338420009457999686051055822935749178477956294658698805213058002249881575969801182033763125707465909208662307763015456663807180075945721186169873851957569861875303768730234358770267242026045513630578264145089351707434047583406437314658643279059960764936439260013390060223732124476287638789019813230423584634251800185368430799813863300438824599888527508733327296978924912110418410858331328146431200336656009408721220390861377155987372770667595292896956543768690020762727435580056625083795762893923855193989784334731725214260531243142183811130882691743988751085300644957606000781538767254054239558522306431657256952933227665418837023973868768850013587233160872729178446648858676350799955034584140472112988875425473426536478935717546054183770233729507935448120361303484311297565741818718827459647262049188908740826742618435387642782421423588635514687309895069042939381267783503356513458934024142669181607075033912938931057951589311537738958506383567339999933199086408445774428417468077781746293181266351198455169641873808058518049642273019315189479000513869483081644929308438145225369295120014981595505614114126178940386757707839823398262906842667590107325852496534750744339316265687374141160212244868305444271787568083372545147742799288834930026496568636837993124119129953894688214902073650263526177497419102058820279706689400342362914012258294321644334803889358118833005858122856658046002447515395548381185225724698896069735314405448414380367828935575200332320521319439001327500288695224104714193411317031669920804907721734100035678151735332873269768091533113598592642191971932232053694860695254772234372058666820498085811601542722678094602295787591268706556205801084314704114319211024700649432933073355857053448217165532358830264253395466856614189297326876632830676151772059048692963642803088181724294843447792419082732254252387732781461272742553206188830275467029350163557648988017497666749469571778510142954185186106908548809433646023336632227927081887622335479983550652009254837825945613333327897058378765377045402249954188223764687132237869239228115626319766896997028202127540838815607970323244954872903522467868417611057371461878561233442446332443208060457162426581096114827712473108030620926445388465113554602777717772032503741026937740043964967428357078956766417567341709115055808263711812330459153438198814122862289495473725294490725753865246212182062559171862957043689713473225552908833143266273118103000179179468926367346980951740894692777303479520413048886475970903131706196340391660575507700928460024255325213785377589667639912025324752299523332063320231941684849670188885518248612203459714708175632999391386900822088114851610922652470552704723916507125614501783886980520282519815366704097799824605335709588147375093242937090507412894169230916052606802612496807767897605558011870119208746782384973855054512885872354843949945350016269443806895208425086694802898569242335903457909479472679084047579952401606826319563553454638706245082121592340577330827116600359958496775571753278884911788663067364839460008513344091385019097254881558439153405058393207144909215702732201659608096359621797408351164820839167471321213645112189545957724309826920990802332698741487178358809541387754424132501178329102807489642380885903548624829561928175907799713599039305273742921115254033546776758924779647769344070518534122038067087020855425270852183544683993969753516375827755430561215135022256173265353098221207697961422911592083561762262918104257719076554755250042493006035776122549044078196317942565324010875279410400790961418393661123605263045287603260820252780214411565345912661074167148673031964498113021628911523693178398400015828340970521105616720456811706137716892104804497028688409469653346809473536114412570653174069097120822384830773949867175818874842462275728405570545378710816347580653912147408501069074120591241987744374702701011135342346885953906786950388676670091305835779994316830493650008378346285813257124678841826240794752499066875023567129708373149413054499382971301527683392192827453862516582342696945767406895411241689134543759961167368242282548768880609312380098877387060525082585644152781829091894792619209623672479045712499028823833744129754354166428918528932637264420050735765392109299737968927315708707962508354336359852952137932957164314408886349576378668831425544979416773800078716811447813538254715583616042336997923978944870177727461748375726071969984544136660229454212137342811318646373059583315502627867072404155670277512119557608384027146784117931768931650536908010505155507160122649987924097795199382789341261617896119938548237286728491199264664642501828715647081372877344268923393599862953329093113879082900695280929115033147941250795354191670751820555296225461970527038087026478749989332045653164246909435447610662522499169623495348871718871598965685724185063007402113137082360588264868952442009010048101846223763551953623951653719616842885820010769620473521088737274190126743738994921279619073725600529834843593046967084130976055020714452513485777408316576097438425814374582484866521512540450069234115345321360108359236784496747442941289163276384975526502414118521009616017107004052808932962195238432515391502107825663365667402236030034164173145699442671647019970247335333207774821348383239331560742097470709393700451682212052635247364641234957682390552962323762919064167293763709936646905328816687854816814873489345314853802739575180621335484452627074601805733683252506101352032468558671103116903395646022936002333055042074928393783506520443893950537478244111161735198454122042059375561703171261509042821806854487812482312913533332911200055958794650378263749564152593341435137909182962080080516111037097667411408313800845442638167240192291042615602372608168247974551345405732259490036050899480158407032929722575249992782507821681934468088739579877474439168495287683408836625235376731401392796516600089313694473513773384819913287083344951638654975992952066100753895263040095272250381187251277833900096514857979118052682405782244186079896635616395608041295057680479276032779772018114265843801371434880847156743654472889654106252612799819974895742046729250185093691312254631975154494699705170241589621651346833083242585569276910976841246590399718199606346601153595834880511777745297236967792788725720178684426341267119745533267130566975399661259233694389288072130836935944285838340332867928113975927172375636556495950996051183188089442442991217758445613975950981765534505274181000093217506404055074427307131599611900859535257268029931601584577645038078162006392282036261826995258393142516549744785406925124662038496247938400502356181385127591001340043058765520925815350826225379653420724001796019351563663082609687571101721825005858122645186213053947454699343523995303028476154971557097603295075270871029719443065110862172212996302179238949214546036752188909856825125083566063953789778800863633851102533359573026198845397819245352543777537165104518064107426461746862016454994361857697167069293647460057986782607969478330726874174198417593169539268300875446944848242680790815565275988472376040250323627872360476162189299929840442104129087946103891729572599190830609501514396805598467555412868482793385243433620694166263247770529956509518810652521123532519353162865791845515370231481209917949827227442394187100603067627826780222650037236479499349980500856724113245486441991474893469031898950264226139651468770176038035484097326175091412031705283922073901276252062363298602045508182871438592509410705454050390607714045079262137059570695763501642084746257339130912597311845002357968030717172960953853974248823433143895717076479174488201298007721102754179837190242561529188492847350481271814622723469018315412081156884889929047099201743603308780137559424473428147448227144533345773244391535184621978118379463681783045711086283656224034673054842042899837482418260308850180136123413911441951027751616569524911316537212502823705983881672336186731759589556181391825962604168991168604899653689074593250094183223564590072387765733383675457919780182711812932948425754332670965627811327725541960102974689736402544276735438232133410307730666175269218401805665886919799431450513315578544348686291066392119858267949699108952186933744883507511134077017768614295337124524512126399522892444572166409471599887475624178645423407031092615276198596577797738821183682102318443968928806476972307145501958869956699299374909757680119571452488921492471946843582874951336017494750144558514336222239806935715796867923621579655469525559907657116012974856633426808776761880206725810720724448629380627540240354017776942371704526420208741690884409595201066961844811175652911503455578820474812885539325597323367021304327378231143791638955440785037033910498632685221253069003153336546044301641331341496060356412037732909879884625565713857775923148059558817372913944126595471187905398836215480783096843204866958537110358838321633871828175797246342008903094586236176733334826432027722463673091844309323510977259859347668849801348141346370615957534967132097669490639344743920560153245758124017801740590552553693757203497125656361289932214072478164786155124821493413695778659381218989310032910926897251207420854452013068395793564366188595811916924057431667755906649926612879789694341748841541701942205546291742751795609849338864000828312443835794016449846089203284614182907562382215761319227183446371015141697660324473033590529086683621625110432258881843833827363926598847222781705235742736559995092101690979960161579807015302434674188315817236366591774225929360053867587989572370937919528789977245689565716333098698354313881050794649257872532550279251542375001205641242702236685790154843774632667918087629775469571510248513763284801048608409113516483852146110998355241900694587398132807380661446055287375001621129271087166173495029172044394446436986246363730510584425970334373181909896598314644450732616238399277141893123441551069382472806568427970210791851234350586896383621271401196555851293980018283383289097911033584782212283317917223869316970290704637266339619686151129131211109251132545141995085664265745939118174896901693464759795272483201778431039461456004097868816091108575186367460352864400309744795155075479910245525290382473434967420898081662391333452763017798805939675363213695516005686679664304824927523030414248629891946964566874335748188205255049961265382380470497166837739568730009733443732409194467841812615615541590602936710536359049488537392675016972393223635517705630104132601795670575396767206372487570527755795489084770101070010949634923467231438195232825463184888336588057592040226607003118834239354050511513160803433141603796187992192988338918516800069870561339337540185582280348461186677720130555559644756194484069615680395903154753362744010485957623434424121866860767838465863994032623139993518630107529604763802590167790948856257295470159918282919165980886394673296632502409891771254262526866188218594617750705319999085554650492638332637247391761825582923087442343252750186749735945146326799732071396441578983675989096688900825664582713295105234307041004905129001856864444598834403466641140146331889480067929243133109423128285500020030898975262727356623027886455033755492848183473576507168997782769857498429710212983292429464918031519857394444873846276502695227261079033639828338072471444887209564258553080041636920097828336479311906866023938254385205180885722636360233589215880826550971982208286025291554028050872474976611477120400854802821746052492996655330008707429599556797957648402290833313182044851747725249332122191053888095983086907938180579577210689504879563589737324346899136284667586220226563043720138524618708838141210439323262403276294497017187447692469044408973891294123764014965926980385894100191887585554478276165487780686578356391896411112031847344687143638691622450946803394599349899579816751187711978284867096800760648509493499440983751972344399810777188636588600879327353862240627425053549840663693222236208246962901446689917612850480069524787668751863798513445176020312702908361330153758959075857555735903158453578980876554034397331034667124050038452393027172856291772026700143125408342281849445891293826139758021964169120099149416753980133391241516025698250105699232867792295089049876272504263262509826732678139225138383633439587624379267648345577705872627563149998013314934930656824393748814172846662364121682975729580209956005099803896222532486639510844875511686877196551718543120552590051071872038285724216779465870528471941274682698195298114089745584944607961863033137182597704386468545943493061396504134101911536417094092646251369684952801448410824152522194621942382295000434183711896211053515081942734966989302578103662862953591796610750472515828643558092334118056200648041996716643901956910984335149964681784374511585577410363018321643488841424978743046930800364508370133318295713040491743786211454137994196814836343474554167900782584530042983598565988599760943674611127939914546787295496732313194982410005471837788503371461055483665635454691312735113031101037715987299194014786401193368096455618389319882681365979736362090513981278772131230185781766997741152336644268719193859001863565413310546469265706546733296402381034260076751965589985958855775501271948704329203514743645551076555552407598435667870626639039674372564023252394225962437613476578775345593861973237314319711581716605984102350881654313045980176945321020213888004579319230708857216429543513909676347190177410438704468048849754895154773444397352198036826854187969752414608568956637750734290041867613659172913952042422305669210963028184223192013320669430274331054732595704740065726660412587245815201771001607325739534734279000679813479967486493325595399121587423597575836271715026823545153874153374158297009567834079768454339704851567306420745551094917652544745749232648961883061278268214556243416278900668208559203255970481588878584427155676143706059551164037091071452423794572535968397994503845034122686132442083054662818353822621624049772156206699662266763641860177580662742861245150384212717545568804885314114400932369176909538073864200514952761382910404023180983154970688183053978331695929300629209879219409077551669473428825108793001930163147310368378455675628256044482785359836052922032715898095414887686918279865632626369221590724492106441470770210076499211422447294195997653821861903910157476690106270150341531868264011453279348149416733033835801569040620005121967381802948743195918268315348690238504743057396415343150394930989825296479331365699651087761367377268423915441595506775842191645749642936635680162382461052716375337879093848818187988525115543396803554246445391520534807600440409831074702171864532606522494931338701118158179216408541310705296877337578471174854109293070978714556282646582774594500868611573484226766640317369578845396889089850834276614601432073630007195015951544733122274633689908562538682229799463401457289910828722591563217869960774060735959331287803919326009695500522988647322464436050898121379579766806815351611097956826169268656317708942096334852140524872644373781019565311017131557022677479882017139049874356255861587868747040200056013982606051906858089859585441819598209132166695869425417212070802293776292023989504839493636906398028219596051341442986928234352057759698081678465906161526799198797976794200875999311131986852196152532262840453069842521157665892503370801471475100495188838864273305611451431996904067126368523586985572314338985583319570292714212836948859950626675365788918599743290555934911879941482833669406142504330977402720427016235391730427860481274457776199574767939787356290117253373409380205282143642541502778036168390167107207901065707236288359711916490017737726079483180355993316230303061055686805697401634763895106389979099159503219788722418401843130394052210133263364244254411810842111238877576052451603887383638346174987990511762576604484767856630571101518902613780251804882566980421086549012207751082475634379845820337436809737697891211869581505945761057014331564692397570914908539583197407736585896725032281301826993213758495468896199922997371073658208205403381997210493276085136062595976863854887192730986696403189768782580409413060561056005238416268234827939160727764478008659574123042060747185866029291475262924945719221588662463066204751141716832277880196726112388385170521761027872771707375390378946502700106968687318282829687186553370175565968415213214913085103007173801394297737882984913346273257580323364471921987674506504429660129903233019616837077026166321650220888818603160998743545019930374280547767112981480474858253507939665123677324994978606340260440846106031850848231407432320672039831257922001876095600026610713780466838752063861354990778089271664476689661949605938942684654555118619530268903435922064036883553403417741226656700103544956693967179154407515778098359840394414305790817067482843026984727837042094576554341771680431277747131552049413724694493410111791108305001047145731286612517862226006446931497662799903331700815842725291583360915825090534048746607051742540760113369766981665279099302303899016598876881325108186328015990412407803623114283996824089754039815651345787839316903879964272774098021469368250680313987122403103647083281922508310429625970347744701199128250069189332723405337873858047694581825308579102864858828514581547534519754861082763385106273076167026628368546884012919792027788036630088587694132629523169027137805962925669694789908343783310382649224935932930833979146573436248014922448208880015792295533391200141732190528068298226299771216431923731664983486809107098444712004333972359653018280972553769960286866650480761134590864762668605815116643006301723806329349599183815150111311980862630370138381151603264140708535672439303483617675634551630311844206361153190422521045638532904272098797943242921551028795997943155651482215906024676433096728991323519951467567784346746732660880910167991083062861155677223726105106442056031353178664982905461581040758040428859850782736839440334384940462082722867356643793831715280478985695692948309032828307034271463643329156781166653488825343143505605761945104045804748592218752369286673638092243395834853159979127030762814393391606698766762708195022878131028555273729395224406529787920445762830552246003826597334192044264436230139429093847727739313745173751969419046672061434937942509664930709770559216380574915424134513460346536395684336444252676572677133127418308999494317365439676361530850648384838296432417992461902331254602185582883893874800730029675203828828338663046812934199068205155108343268722442649550206456607705422582305407589887733827294882291136816995427917368080523456848170544445448876186345834167786387212733949834557424567964343042276281236285515856663275488117204930049234255939039040034272289376234496975608548022613740425412699176072689359272181778628184023907338547125545570409476463601473036310921085655646887326552036838670372778865979626131582776454095590561370898011634182012227000508251600852779532773403725655484106449968452293022411229086314429025493025062007555540214218955062949934895659288278604684794187753763395397098696661549473044145244202850109761084850647873704211630726490878429673983737285865289352763212350872684238305475648812230271715354198555160697093116352163977074051156120073100888109269757974742420124506070909276827496250763696550486284342212819624277733032033021763043733709196440251864952333698475325153624698305277386348879538112029744228087316572676696593318227888754923031484194914008586798348883181367046104775042274842416401855286263637945790597252694497168598806451515694092511502412695267713840237312189988001754427774386059150147403774715429038638229304016049513389051818844876628814340668147153765429071873466753054185632987622018549059706553289778222476099106467824261978868882179037104646027688913591431460791078589816380697175207391427751885449072428000407488296173698430539660432684390286539576160963233137795602289023187884781417621706568970450200855814295618021091447304958463887021499931331447649616614305548540130553997931374958572232112900156597313296210674339640799481703384429941651673989353760753906431220743414123511523180574780371139227785365678664913764192255444962395502172905952925048466647830380918468640640231139652860997231459803605267465536679308436631131575403366548214146865339739729080571629393978028526927715672182810767516228531471537779082702199027259244830029377601214887820020420965271187805168204703229447606735014216906273961127790687676059878319465158571745163352338389118588954467784777927017798338336591503875944427871311775064480973729862735447186851338897017107890601880747940345204431213490174878949952328908808247060395672796229732639997596455531452704729492348623511742578408255475839510946760680343300589828680553764114077439165777583301300465905663392690841525874625318796693056816631647768168895226726643996630918782837320223368152861291090818720622162269340239128875116271060935936826920839772207546283841065254227022630153989959791087002877459869255657815810705856310833143852628456015566288682341094080956430163748851864702383882158760582792550239083814389899982554898224613957973581780092523002058062762581199460225673458928199421596806838059797759619288253533382958433945807238525854854795281746465270057967429863038376719404911707424949103911470888096111099970901975243292766487727054074740058160586470949208791758232883704304334853505687579029427527530504291232493251271361095977719010497179485086470027699251376020828801211329531413740328656464332226398056080644839262809827688198854548587518742408871439194989826765375624035282375489370893855560323359069286226271763330942183219341554867678652887855912112998464599679533499473758897110807101919502242456649999117596272876605281911983467810552359146277751083778119949358995038621634546124201106928213875216492818577821425042559717056604841756627733408005014917265801304557236135796541478468354899590379784584369083915377596943959894122414612073973892871656907589769244243940168097616797211024797337248496511956636057243159742622963115480859163427344453508527348767102842830621249368661189469611465512415260313216788067194850041739275484894061881629877319303722150849480367528329071405273181743440233460089695366877267662007005115130592540276744437506859671295511810992813085526482359734423725678321851168377460620937308532001598652374410314031148243302494805239863597633575846475179690439122281503778949411129045749940683736296732093815002129924630153741885990673970486703239713069129989281797761327384923169752642112431866705777034068636308361022231178246316197779679630511776733170992320463373843289451257533918058757938297338565664480898545593827269449084266227944278479405555127903630083387546311796926085844450052010090487589098626919668554196039771872261503492316321207099806879818467490960008669525556532943258300340377186881217728180823834843529677727501381794012918080038089420813050681821036150984330031938889675327614513481717333938533397447429359648874185513900472024132644464122904510965455612462961850450453984465269012192104707908670354426344927008604998777493893859176551225725414026137141846910102396254471547746644773825268334109521263676882433394539135062687121124165007159397021793773784661886588305739466932952201199927971734443064254787828038106817713501314206714076211103573198244124814847062544230804676032587173367411840578617265184500752174193714037643280778566367050734450642358117343258675818539831712150757593830709783664494753666486081399379622882453068459917012844710544708047640632906833799810888695307440499143999916058247694599678075636487861963435174145329722111099764576646224876526823904653875362625110405225962648511946845533635071963219499438738984941345949353908851598786503235612174452433175652211041996418616369053764435524108315175178524201472453938647338794762737677300075054500074172323167220463964448894264786152276199877668369607924184091273465843495545897486894241488571838075711683670180494289866587894281410045522349334716288623527358587142959552503738509237604404507886742775530900896757563100230561682996530390627572465741776419600704820092245502423665333012727077284966316998469531864441610502445565805613501640022018591786023607131940298248384007562076808217830503313916249362683575237830918534928045537424194521130553799206209328442066452738116003095399635968056318089227514332313467381923103473355637149837344700765088769493674441279583635574128043904098599921232719386074364376649049071257473633735454497750992515038374839303353541758031932377328888021825944812043126326762652456010290938989296427701844581128653586756656079492425693830004984654730409656608467712314727980196937973098053779823850807594457970417863204938876296548677708407514542230120689431783693514232008586263552025605619407437268270741840348575072111029226321800323535804810399835637093700167807542276445122274899704810233571393314015428686957573908485867829373663458765354390882841360831214425179109962624959851183299528425037476602170398460869404394413094410724072438482490409993977780654969086230487363735310053687741753395093879237256413046715431954049838237937674356337140318286475850282233450418086964511544657687495837517048033705697749964960266808522872945167377563923380989771387205034037835327321376950428605485307963218197620344633643252293228156220620766913830293453088520637870200599316364140368535210888257450675435865671622529552342360758320919874162539827830211113872062577960710810243741732902951247262451617448339774797487886139460855522479624484036915771365488347109723780443612050041890641012476506434071848553193898533881078768679394275828144206412621837804462410977227026067178089405166176290658564460563700275172214533159780427165465052136582985694574242430116581217431063845910109823266316065465304918586719904300380095932563194614418924551989153056940416763804502254702258498280796201643710149859926106809159411195200806906078934449737441894579836144332408091411403604364669692878116763520200563970699609520459970971786100906242507925377844962381194046315490954195805012580349219955546396762112855074676430047305504032070706605351914190330895562374839705601549969516456469352972301403425328475360129234319161546263823898300017246057134678762983667276529765177163394139035340743492427405045733808752743062332175179219216981512936691815888773064139514301908124649518859259054043639550345095165586448581805714655477499708470525665044246342329410965266018629494760004468276168189165839891646370504775565087311955397403537222070145853785622072860163574767977201667882843650720890108536414919063734171882911003420949439955093931294807000071803872036056952338134730033207137979775188702789074457407905093015142059893319409441487560667878474928347830821885455609975998415486587442456337996843330501252257084912254660425942632612968644070884939783044154209627211820325242506684490656335284015022535344882014198025591804439655834349412959034663808426927864227231368320947848784568137265009863723769113236059554565663634256525883019441407866555916216053451528527144605703703716707335456862867656428137510195536702237938013571588174372945758153672758827353262251973258654685988452581065902244120443168788103521893933659850031632421490091621443720939724006877650066538818450125739925699686411951621211758015947193260520637635844286537747710007673558294689124075135938563310194152687212751844573408142425775143406153460361388892177318546952262795201323055897464166726769205107760946570327400940760433086395765290760853548415087124648235577802363291731883116198180481777428289399647570444015314397001644913473622769794699485006642830753138717954856902283560556309652854289387972413608030604935608768722319325195570550966821445352333646779633501110310038084645165921419300588083091245245731866399883046761815484664716666229303590235429014065663770699792596298686930666062858630996547799427026370661895437465460773915664204023128920333664261457284806099986003696479493592710448373792185174225209288697614058065175884900263966485400971488875947108000856148283269253882805400095706735194905238855628611681314502964704165396221525383926220090220235851618889195917604943833865094178784353825000048521964204042225818702785186421565661486208110902251193942184419974589827326989222785621930631484952142201276406476321421074346449608363555464107163698835442522820558500045121824610775195717872906183192460523922126452346968865760390823482807411023925130873139402099390928044205678857714299701254470172775073903697314595633826998651666909762252833365371556152141790028167262898870864109922011890498037965555228848522467599317008377591793677692185377438751266821916039630745830447452210327322492061012115106376931455933004812834976903324233280781593410225166088673169285198305383013514330492902013566830652165292627069802159149180933393665602535364624583141177833482950738443204703756450098383123589109170814197280209244540832324784612592917741508095806895623078789767758884920291059004434328840413992674372771632718950411619356747080389477306899739425510054968731538315735154047268362093702641387257485379067972533267047615245288409018750609620334404586151456178426722878527266562348655062326360521071307775283344363302379729925383069383317136990516021598154699449088513135913460971141626687609442784702058746567582023465932920359436375127300421347016474079802379669599936327078881818456144976237588393429373997754089620736290622021820487571583293187151698564114086272388056436184255847809916705775349004655757494733777121207194931320071758872832566582075430199500010206641472626708862459250356234890709764911528859419257643255265862827302613998313625331191732906871074977664942445125754712504250263675221187528206355919594523501277575900223327987576375968883608253418939840023643877700029366635316788624742495318420662352619177670769577853197384283515947263448842380219888861655910909149926821171967293732665028225742578995518426689637395034528530517843355739405008969098344634777719788846461776383421470662354629732213622572685719305645296594466208914851577249725187253737741344355448824373619710743469971042298810780680993626232594673262263699220805535827706220689145655034682576050396623031644075208379746266911157954087745351285508298333139060763768870821736630589505829295129505065757991522227383766630532608271646466870668748486442072881577524243464410564591958342794436487248678630836113212452830022472060197758928408715927866331820453821315093352376545987379155378753955830334955413638989148018719733056465706259801845285162047229148698191419205916768957491337225313270453257450210270936766832338945719896771935468344475053106766498022381872806977901579504218083883403055899318957675642598683292786749455839738381616131029721135882046353960774600826218694779336238545030781368805040934156744979757450533415052218934036593926794431350254913484617512446145091723271613568429707441731828795255079190769264718448001749312604775055857863250131482021840164679107289664137641328574470257349983387459338343471327505086195437072106767993099398478917698474675187017285465423344103072516877617579074050001792586317751256278560757813333873192855250236010147007650570914163662656154325435372090387143204199606358348698081661760189267670098323424157844956348281968323970182345270366600103034136587798845293960664249991731713793716856286430696607239924762891770857037324523509168810954228169970158569475569056211931242969172541658795167295139277520559791955771658237755259988406528014900651209104021790700845134009661127375499350174154237331253307089387421249545897587669392186018117410448666164762920547243521446501747738673209438426028046718308051860443590615438567295611169301221210492109306514269283994796686351877073832843441391084796809652308873112106088579839047647463470985585567616364587100243643153162310178562438879285524516402406118273435773167297358660945478782417370395117665754883417136614590344500826623066913810500902012170965350098505360803766963947490523299903012152185479018563903474097019362854433907371015565108507550615284527050311194815088593105086007959860188805578088646390745507404475315755812035555814570203936149156435798054168828522967573798831976348815980790070843724344427933330653914111045947853288191365564548398259924551358427832251724934543440437193157983345508065226849346215822930253390588659200657125347850145542784045178257160781381190959374941402872257641070362153107307145301015059506632043638387696072522702763174867800832606733053645093577997179346699136670295109029953395178602209873293798403036894451061556824081592869413918252470785681933782624554188072732410585844423704835568021351856164925919495535787866349337029801502558635554193233864392065221934304010661753502459748716492368824853215498846689929801154583175346951257444516540070399552919540750656913300796748741348133545876820178605896411825531582595304306083350739963972256156440545948895522383846204036975201534995680943217692624061155704586513618540476600431912988065845026449908449077389918217667131356114235681881973109765240852911317473990510962839839486713361840426018521645408482264380424595276374376511593533659554760405567196053381692171737578325737306449553508703565823425596498391266324250824122956481159108075377002757321402040224301516036874059780850823380584158360117790686696129923820244477597679300647599565295961626757956047926142852953865708998362926116431271835102996345711892788205513428270620612824684215538352165862385191437035188943206396490078847429756803548306607858958920886765953482373201560103687161654985205091418033776975858221078782061089101858294052764330840202751338339274224582767246176967037738482213263857735619792306203530223609510813585374636323900634621589147876903594583340424660181430832226611410535065424868770931095462973692054218439581170968357974098797521071644342059438056177575334622942584439643639260933299910131157169234676725891162552629232260259949898042970826329571238205717542914444864457269810806816122648033965277397797108414548063902769549616346830968635292225873686476321298031960940175872601874044352257396043573612963092694940232581098573233426219219876361558299153464108543672178851779883703217252966619036384410051523367603890192474983800884138772970780728127702501978114164468888125759400828377996202694057432949038483476408264361834594733912122370282967995971890049560013812438837779397037171242084773908556380762033755580802142258041812220802506586808977667060596313226135184054725161667762818502458268873904529571068207307563112825626296224282953592468545373363684404871140074996151380747649242413531122993724539046724333194499499122609995714535253569682517026701126609076880055031631403985697073342901930345265637096066091323238087247856692467806244897418623706275582054995861423114991044999384975571927265029736910711184155920452402253931024214380440738079441125247045804674468022804972462901064703406045389092276838169075728996980208992057495204937979924769876343635817174319807397373825723684218490698438180625703931959933326751876937769866763009988626628313737340341548043630083104292584277872298651488064210735797114952363774474601436497585284181009052936200137002537692926508731373966835835331733356020253044261997441453002545831566604497231393475118864881037145230406031056920429918557647354961583427811092255215770020893438592071214944903792412933071232886721370131583384386235714265366503735239846617849913151445516045071673959809340103322821212614955383023112068701954068223495619150967831422165825838551102054366118389721381546607783441075783118128623924484515636159243119623177165985682716141954446997295202386514831034390758896531775943319679955727247567985137053125906806306992019699870384634554693377030330673720054663119969972433342111904106990193730986589094885808013934801125746709797095576947631698583844271813420182333386434712442172545036010097402293591695023268864647371367808337036241058432817258320197593289209076121222695084901883849407869624227312902603434396979985895935910363723733481138013452094582217270060912127381748946120123993903757352583288071251823008706718281627384949188626575473004904032738547879138662352589331552724822745965965505084321381818410862421941242547138565924161160354891668040313716660559349789334356727860162664850291476539663239527565198712533129263600702728254248061347979226272364917072788272701382715327749006555594859615695220024900361490089703802966333933012829408021894574391789142204307817374849471703851694496873551310619812790267116658621152890187795524624996299972622914690996043042760130186221702978772673627727340603491228952436151539148251363078854637948269744002665536733309589802636826332179087872414641420605841406054840493569414749178920830745238262556080041091611317940946371105887689034086228501731148050216618932455820545449205622714877607002489689555062694884448134069668542407518947807575963479411758529866683688290348651546950746917568489534620576409870532586753617196275899123258572180979995786102946198445513997597667275153100088158127139856912933590499634201828816247285588361961139951932954674907764446682289644457811110816890047013804340693655400065553347101790500200698723634827271115598305505030952906097613184396427818055196356436678917753601752954126319604559542262206448959035622341996991361901155987289414266687447187984354737269872377174415978458013191905071239383534059289105455524621064481144837039501486443165255299312438453074433038116661376273628243197149037072500564166746002335903161058420819879318991428995393955776720987996277173457119901648761422135346394951914364051259861990305194890732778368122433799661417579335209637783833135810398759416022526290498951455671402704635148993152490321409072783013830085362007627297709525595481661566151268516269551486796717209072538104737412512486880829156620232383536355095994876853378869149845763786754827800840807854329265439007472997410905065009755612695083508312548752262634642800990805797029152461218583689094217468380395516783298708479418378478359355622226289556965004323644665702500334663212975940122134542314513925688084420411573520826795324884850803622809819329367456742480766658854018408657800479237091341537704269517970535804331077432897688631622420912909835293423593135076051210598337119498300760375289877433192910039661619141825907625124099861469263736369538916439908063108076618281259819281399302723932718445988970919472151432981009312808510150538082950344199027731473392864146369078786249842915277661620959102112729981303072706504947973930251703390911522680171065849473266633890716149300172756481710344528540795765617505434620771956480212249354628607543696326439747451546590175748026589200638256490477973298323023411752020919279902107587975274423805545094138521948828719794274355967845384168111234634309732315389934664907438070292990542456056051337091661084574312226283894250338399806355484187982444754756993877554362594426760230564495685067366745035176244773581544720110562853787702142871865804907788679618519793187393226190434006448102014342099500643143048475098319091801607734666540138257846768020725339299147391094171757363449478257605735205195920690483223172923765496085766291574299071198295451022207064456955565842328763865779803920792891886320284319737647852901716497713337642388033073417159400772187935632556106756070883904076427060116108014007007239089281186455692656939566277111034730742285360103738959528025647607442921695992854993095346626106735198087078775037379053274786515482912903163688992033969846805976721986136526238294864071238723456322809387878794288197135054025296977040853020728210183395912100888673789533353164714749704556791825200809832785164616496543466794113119037389129999887320463872642115665673914617757812607613023213106849149443397953660386731513307071932562890876531705771350835288352044938019431648984309579737352601138435399112766669989192613095980978118846179399047067497841731641353161305300205173472395974330180666915265069462362696769092985048841217807497507213418738372603280164447058960580270704320468365994861032723487303232295156187880444696458907102233179465636058151945107997171771163186549129785623705983577658203554803726882075407542494315153222643223101460772111619736188550522129454122669148238743199251495154175715143785509095220304462549537228699155085684399778721317988749333284710942702918694790154519404243556956257747652174418978512122854938633287473362769964138468814224048016279411140634568531625694398463720122061138634366041222729521642039062310845970403546606837854995065262244160698906718658267268330073851697419740076751472427855338284991622047390079153690466483096115703774657812473844698700614584295899565574243842903033204477419723620894862091779317287054889878908724262843533779924076321828464317948179000425866247731693418188636804863726664317661244089302358863587523495189602891055745401585315031239775647807989611594375078160870479759500934894990696699293670594775428896869695209335810877237436067815719483878461792678573474865288872134838587985647392946253897569825139693447772921190325168392318446705122658619577203170572400325491715096569332100843271593650851738568882293642638491473876307799245550606384329789835946629992681924919992367134370786285183262432586468725450666389121495037426056993333923481495094415796881709213556163339040455644049279026669999854799725039410338332698899003926641132279180827863239542192482406426036770061363952610659445161274255388925081600026150908040515272219067049812377375525955143210962791221906609878713363578237193295076294878894290712371808893719882348309157438864227606715942862078819991041075707903885194232438284591258900384703225552254817575009063950357693730948409052549206012226704135852306798951364097229012343162742904949112773904095109069741716192144707655854201346116211360749021786060505638602736464775504446498307265035235083462981970239100606213143814857555153973775412075133687544682472213352331918609216509500566633422605313591160347594972679054716758806566552503584899346409622463059699446825830097158110100820430068057597634482542297435818632461912227868405396275033536456362742897959786616777931600058345333685131256670454158105258659709776745807211748998339657048117597010525461369828787782499411169902754128251978413285054692936209330572095760114550035990798131312228074284718994550795650818808856351253163547498485240619760011371324330606044950211154316390828392522674100775849168650129675983751287331618501455092798032240913472000255344379155046386161094472522818415768815175002125656866940990800113925852164320238720597431953140742820073435891729365473623186012795489399184501405315581598294978414671780764767306361653585827514601723383695549967976366961173081874443714330077278195612637482462680838799563465553033178256654732321022978711025713280123132903016666019385208693215665711503803297960717237957776078970174666840208127834127365394826907248665409786631905816705190126853707964096643669301053171738474060438531668920089892965421185182980500237089581766676096929418334898183777071940067657558855070205193390672783539690895556441835780525342604212074255416468827213562647034459484092214022438087074758319931150424526608176728739801862221989529532380924084902616461367321244551684826182371142850471763901892918597466105571984349110701600768946969217138396876265561046612918426836247357365634795451809303864891084557449601298349983601011968937898970960737420372600450402689121673968074241397086459484165267665958698863992125403362940806755020906242778898185487808475101699732264586056039544882813189606068098742386984779726417428769417913513700644227084078630990860996934297463812965786720849413848761985891820799540280809224456232169841982927562968460781609683784132985998154432537110478124785123428946086075260990507467826103781380410991856240297343977620859046546528644284107042140273862937407334901551418837164986463866471755230624778844846907943074302750403040805311547782290445569231468673812629609982257477947274480531830250320075335032695357475647021138567680129856422097908644863702174736370135068557214082310631137547578587388464214909683621386382650458030745463593032184320800873005657310240396426913277415839596521897549700066437472741682874395614757309107175387462427177433138865709289329478162441109064748665978891765063624299005098995504966025396446453755564863281859127485831147168346020391489503458300904736941347532938822870300435092381524211436992956936597781608992601842529253261568964549011664594731706513805868816064326823974789010532225428834313758575719144659643437742627159089539419008711296450280907809044158322742017966613309541881756760047668103392675206651973304547214511724144844701526490591573410868980419767930676898745087007169995183725387823242586315143163597539956479583864504751157489565647782931316872635244140570596219151445063146705117166559805893738068194601211874087761472538480945539200963615702568432048136104477861547331131024835399206269591590365034803956867365519432687311907578971082831980392369859367229694951127001742475137931442615592560009209491435706150773877377445767190587853986210373318202638744524730711503474349931189650784956585457350227499433303290527711523484898049390488744054593280854414730888878746423933253898434715992254526369441280166402944359672751407063181859138938414033049257581795350945899987419836581725550851986785114352800951831718521762621135950374892595402786092912704881201438451470729982339826644346857152709942121007635754270272735644877871248211208976667501838639616435726073547487190652782700901778474362913217117878382446098924925103007941374434769156032486681825725688925477376364017718698012462571194573085407668898677299640609633325356182497812988046053213190888694984579630071956663189557717542200388497040896427610978587471579521897748707393537418722814394294405072318901575215579140110750567097828778183687849962404851870348060469645975330177641229756730941557208209290298477185367542539089098851751809543414753495072632729452094219892182474930686556771374512362545466949774407841310919553896628230993601315550678396691127813493869277061447138437243695847498845559175255481854608888562713791047959646804454912670685315013998323928176608598822364101970496869478890103229576714935494399046070714369024831301682029485116777002311719459638017683603127238611318311662115496311096222530074452651338913955200639048535523236885170026292537597493462217838818729194531602947547334114368098130840425487158882606173282713267567393760818270341094938261318222874466219027935136588473295394198731153814387051808717582125006784463373599305322469386328512629667829682882743472877262085622174430776172976602421146688876783975877745425174327468491242384635145163884882037473856959598930328793053272215683074067580196433420763796123133838455599964344596812391403459510522205745897332867546431858621098485225098757510277193328177222979157720847073981754744570770438291134031310697957746735313126789760690711854055008844400322234664108494732435183326578537664915566457054968697433939179829123725196280714281028151688801801780638772574974452332726818778407214707955595968749549181515836822699083799562132863566167293518484823665090860049347743817544520932383721150069056188630790777548674603253619420217372896340668443127979987150990433940795855662592248965735043174527255780762171305575225160998564581011700240757716568525138927012266021938602689248176356895979761469061582515928623850822879828785485630847010205722286913926331443161526012580467468393130498979463621776507969916523851166015556379980745502887515231923886375227607642660653736619238562517896866985338760661399046791365734929270175605743463565468953918069986919421467596016612780870043729495356038648898692421139384748271903002718555055053499748792560509639572763417701923553551234652308518866201774906852260813053871011022488568332091477726600131131094981452101403728430386998602186409955932378227484298381763474288640406311922569185391791759960666205207944048045977294446497003167090984917230352256117955442508736654940695943561066196886690635559271971910815976336569571235051735544611627195841828764738563968027135197501196519311810948536063400603586687898345361831390212325094466189245360165795406161227183260375564106493470947710256780324013278355369407482610018621522720957665993476842853353165527010342510001168439500891986239516329948612696224403378867889560350883132705825570236285130850121146785414362637628908943837682166126176462652911950040612230622723616721610150262403346751119759145531227776913739303740534408779850895731620201600627122118023839455731516757693049813711007145687413730012119114587401815681652786724723503947222969042233251450669984030008711942995831372498964790888407454434745149961488575789179509961472109574263285546250717021682797351086664980003697382382682922639417293790612743998718994952999182284148028034276439789724706663993248220425454169473387944400047194905790286763842642153314861285673077655989379158713971529442933225417857653118764776108750279398703776699319661851351733507415114234557495859987509525990789469353333114353099773160994044971667349049212768843709955519371327933995312622543377212046074178509756362659946630557172813241611723280789790513422720725968082874923701203762114760654034228722990261352024483693719014821973485711314333134140500499812516558764351778030190723486494171780092965980055767606764778172204999363149510675631854310913790811919417767569474028812440980035023801762278499575847280813264421272631064818743766064339858797359633809590142439885052204377857679217812866855207298065088173864122342282653933834272928715855233495951560804949610453451290835678668779071799891378637540632134235584863123350199401475627967984263258552790183551467400728776268090595431626539009638277325475316968557206863000101974787851657164911196987878112169821853911208005392712150141308481666638059333480646319252446547255700090019093928985834459655027632678135444911095955072470360109391523235382474584548822638304984786040119746680498154705195417637767901870842508189462080236602275336588059901571390599012390147145361474745499196682958978880303528209468772986157583216126803256321078260267411131885857165409624358606930687141130368055114826070361251336623781149366633912488049815967314722237370752017475903171889941939663822894353021810950680551188509787266140075832874721575265638009966433234697458650414929647844318496181821191258951061424967086107286507305500612005716817414594807116963343038214202949477981087580170227389151255640898010283300609575754972121373497723231683641441385902436920997832257120895800805355051945645856496854513269138069125262000132309942139800619112544200105603750507088175708404084127700296109679245911782597392833749212105295037504755267142391204289795453531328439765366885824530422823819297102769901298201676565721649854201057627639236064916849680559449819618358951034779734720079265742656173903712713300551576593642067629516839081254896875905065555316630822063066108344223778992170314448237945361070495646238786445167262663620244334815558771640893159576662703772690107346992781618274593034067446971505034122907088849333200818290392900993639816563885029072826444892596006339484927615326888131742757100161200166833792924932840974171237997026288164094140339018128730468389148736172143546777470759408527238836231718458189399931752582434751431048108816885858110873949217127744040650512842391659695398311892384870754842344623096074333807475934651718176697755165651919910728081407642511414454537478825854661761947851232539327497534858112578155967647549421362931286784605834889477184120479984131226962364422259244676042613861886883568161836975918673770598639563434337662522769166199114222266498950150178177718294228510071108396543958370488287190934862809782048954333006440714439983326871636854753738725657502565888831210570236552790199059092028604462060804784986934666100660641527091277931216068361037571468402036383154832607299523760769879591742383198850552733228185407594401480370897032422633655164890372589502682088989684770838992272171969195615504007314695757872904152377324888962889502647628223030818408691149041419915130052131149460599709084404269838125069997051689461232426743763453883623169637307975242726916073142417053183295087551746370074517538063292203287043006506581052683119101734565624321365445508006448678857157730497322127803843044006216273281793990700686397346002425611631515401841144776386409177534269727524093934067333909821866173211568289587370857451086142959069517896057264248113833255445263726090579559355168392730998502922805002848680432481708611832304652354836617669293836488201714705626889626864427986501275996278829145420661930890486183927952785641805499776203811509024386579349911762441673576309936222779577052504616320812467792101703783674492669663261360171619539421230483018012538811290133832476892716829391261100559380739384459487471860694258486022369279080195990678183069578595129751574582199875509882578493703310886292403087941608567929663196849666434284864675568475343537574196349277623690029320647192709545057511140414692486104698578824331117534125251417490705062101720691530355646655500143692702926435630124120207406555547223725527206319868274753774851751854507539077513332948908689087498976541407262189707548306908570133747375993553221595106916917044880793746332826276484227462446859564537215081118312230276990647084587055277795814962515075990173927901203408151555061239622118500985068715236796037336538749377521221736266676705705620682139043667829122849206331266596689358887285400924329776135575533589351424901587168610466079305806755721168709500137555085594396305736376941743370249040617902513280819242553865189651223000963593057724173252237383177623905263100651080383968261924602150780038576125135576623465855070994273809925272975703267310407173089644628598448559014836382340335125132517302271383367780447240648871144266660394363810251897326522688160062238125875270223498894000995210565004446644520755448708949196323568384159299027182762254617018347358133468975513909880041962648822190542637086955890444483330385020776690868176990559841821107173112133539130323880683950707127709656803124792586876384579290382678540015842674454742517704801085891743574764257683755699034979242689233770926288127710821961229811514859597402883831012726750339952315006177869694672815307514323453161722707993497167447793414274525701824799423025631075282797356895533643463725269248476624584673231504865982355326616176283239000232264281087795023449670450476794594442335235755564951716474705440701823750012145747858950247027867078071036067710119960607371403996159470164570782018012554424829328061699786061187348668680883755617547060183703266915985074456979205257893364228582170141447191605931961509335562872544432791235032535506992713490829462017325430006224624881087903575818616141470655419065572297736920426781081564657780177323614401354805183120923017746695468547803882500303167604072492705087817585438224047006095922263202486706254974410544518601592145594568444507463282153958146440584341015732184457445414624275947676335237846767014634296683885979946379767280284585591844621303400445366337306862754185764220774020489791636301772418706197708256851832087901103693153360846714831911520733719494970229552460583637884764394243970370163619594363372268612716575583006730458918572219267513962336848519152275056333904033838960318258483586733889550915995051125318323519401320377698675268911012201250766634244691658829756045253349127886508189889629854510855842103943552671866709666450202275297577487301151864970504665659294288970376124818803271849948071520996600365268263841909484179221564154470381628929043676638575875538053141081760581648224879353246248046502153429027502735361446244001225648166044524403406950635238932118354695369204206355722491245854470791585875662185543171564839799698170511642677396722315965001820246101267863817788413921983644347099488550122674109705428895501553650531056222200782039080068978102797780017246140206583409690836475786516232643424518463881351143120470719909641879766211355630254072717634018471932836630117316860296614075476735895553827517835567867111189932569654417489639797854927130283198212129462846045981749241693643144092967154360890889544323992354893299375226860481550713393700189159934027396498996278964749654853130938680415266803010905793225436886250393439279326458800675333050136181991463235151180691393436235989079599098653862046861877109324210639867894385418005977038495840910319026382488449941192567431435846205994298570205680082020437287282210666091470162267316989721781294037033554776329633607464461367018588510791758567076183133384444547399020846096744590209808081697112517567882356148012699364703812196369043119457922899352376929979250927346579653606509719242491311158474196259921754214482526476221709850241721348769238663750875892093548949139570625764381915214754661302488201965379003504394287673564768246438134530731443400018082710928023886880270760377892090931170553583671799722942269292372539092008451636649150181719631787551003932432439361694528219075861490204136250548123296793816842271122136952281566060290211478401694962355236585483884149683520500919642822688135953581076132879256008568398707720968705894769260620243278485323276836169127341118559080157112518503642592016536743201144454800318634863014544628016049517064477343593816134323343332928482731313763147232815050317849708449458904515566724912978687645970489658122938624499582317075236116139944688179654938728895959089866180317550588022432639310253332464796405281344232670029228293261322622392844972417577587027650806440823232594679071114290189800126898001859171603616442328704431803380220089947324355495291871588174741073382288827317303573199244562448345770544039842571625424382746936185712819869412689655207504284418161406823092384318470590613995957982180667591627071277586033283515839175955884979859745111066946273914243983910708948324323507831973128757843184628561173720973653504666578990137587543700398217829946273855843813698018233321447295998550192614009631385548770238340924540994563206757397748058348698192811396121622822452907068847764505682212986802388553176730596273337184225459223656425897482638621060740627621868701840758273881143907582724511962002445443183937684630554195627884641228979187915569850344349276177550941861971034928954495055929981334124399868222293314263646349487532938930019089783078689731781166181589239226194085144164696609602030894304666755725902682627835197645107211373115497722492567382216262608097252697139566047778779379374204228698781280650774878013250969783226486240474432437352067071984826430178049313995778562823800909843690082914069194043394477674286174054228675648085056243770934036180066720890510412459937863750842434973154005051419906424848032263477628358366724942462214660347095154557270675920108524863944740737604192218435948803864235744908745302915298832862119334999958972125117883121059382775806399692784401691079405933970679954264771452871258116477809263644348321115460348598271483896155722106500944428184210168704479051741207280755758772872637255125358492958395252975202045195261401178615164308403809027968205039080037371751326864642130727235420133094006131774598801646846101620057107170535530322351111798646244254026547289347339808309743534937910786495573642404288116159158457298842820707333295793942478736940890897450201539828867224371483744482264923806847225627808096975429933679839511339239271680211485401372659368695898160556626359153528987533313272353258749541148247217958148629455284752551253627485643647005213057659264850585119426772602964951757805856678908541567826677698315697132681351066683998528578561148501603838886162612042305367003841539051733036948668746874156100683424648942108902657889657386775432135909471313354948547086632092799094043855218946976568399794019570460491815847712141144201039078049452400885181701118424935481114129453219738508528117720927505787835907278480752991821242340515840820552285794418079135605719884522762214852075175452745318632380672932172728436726865813578520704817100660458781376319102489865191133683296151196342931205290349309514815745955819999165350073052951290242305291972402390826696795311570954985310350736950791723865741569969952886382562840924014741795323780675851560617297373408934940354728474783052192813575007393977583799257449072245860785161703984815650592676218311611450175445258265327754310165589129472278703612644483307856998169413277587086374258160528317075108678469974536072925496523374797561876881439993948040660199208232773197880213046688799182985477419974986620836315458721303035876417920237933129504608375423418757845508304083349732205812160802824831821299221892903285868051343405612083670757738982834520692649596568159101800298478393169499719391906117847134979956233883120813098737027005845929217068098768129966453543399445732641098808127503975490698270310917996505196796813413708935986270773568241694841798693338828880722037532053695810548251237532596962518239242603128757952325199572234729081201504778691414610274431811979892047206064065413612553979909234975496918155117269344139332787655044995121837292126997739639170470816908194111450610286778274143365742415370313448077803776733808149298786999073767078245499199731712970350912345638528752016522709647358776134326838263736500970466088612999173296354745714476381162929517340854378259662383582996984948187174711929667015437879849810501585645926878319310982373772951958192010935564786815927756400218465143549679701742925247901208268801137662327205039673098185090949127137148735286260518532354990579769881328818884625394559996490404782424760214368666654400615210485579127488707204946252494147145927089153687148156843514211067820977258555635364884857250541072066402977583873529104201771662574630918561024469153927122232404997591197459184060635067025880358729211364502699183946046054516455244181365331293462175493820596018142691940477852243547675043848103911020738249218821544517689109055828894911683805833149484353267284140608345511440876279145837774830424266749629651702201817794734742976706247121918005631044272444232954648543201227514100347801112982811189391645333301050337496861380250900431634644960345033967083293815199892203172284287039010461577888979945733127755550206399147770305295190536264261446759924669031397225717441004035641136202407925705328707739696345659407033940795458647334886629554573145471237258700811879109506225245518183430407161546808492254532058794478441975809967602005443149860790231695981186717066563904123792911929680620917666652551891670451555106871533149317603423048656505287956789031362084304795965067817073699501016548426009181455802303356955208633057075852750978459933007574386134144375633836487508565685393665319519393487144394709636071047088965268679897137373717633331840395619111006347957166591323276617272187120205334534672475672757210141905268522570345013492270106586119645813868327791190971773396980988504131664662634333971646987531688644923058968058011530722478724697094880855371326789680536635190622853801913518937474161421827110390846035257028703352300539090040101299559135056773339707472756091241869504468521046874269263790031312329257091043217447521017989741444402222491407220763486358889059493046922412526244925806468757181931383893359418709020293822363080243845997251617617557917846462385027605729540070363088129148770775291180141705442769677077580332633562097058010468290935290059126556298985737133344967941918527033685795394044590071023303800549737933986699419258761090300800768226478003240012244254834732575229043501236233835783464292263868127171503013638264697786053099901020876192325034601837451999265935233668708024919741414977274055718148612524708164588399963687769575500439861632098213324923005560790290635608450119089886980839154553560074133602501888463772907440536325447513205171802756843815582439106759555815044430918852511610673671557827740239240452160771977470442344702702644262269950300789034119353155038316730661243925263049558966649441353504605678179537005140855832040703563667531684793637776019672986639622304807102393482594122988563960161765436491523508619423926170923941466104098597201287056709098684148197755460526152633462865350557554893321123309403695302548550400445919485808373135155207196743976749019319967696075726562301177161044012517754408848694472874770851395993913809462412667535622119787811751608224292367717752012390387288859615204514351121262505425716815136992848432713789969779848038744691569172293846544076462865087202647018238825639683381007105820053417176830534294267830915019629804234738890716895807263545932918297801411825024565804860492726801319662757893810227806272192878317025970330250223010341168123768523578599065336411553628210115345931063353212340125085373622006513532602882698800718002172362374951924567701806873949643712315196218325315841126131368305005987874285707459613125374407100717699008784960606122568959363790684516776301395319579675082890341545739245055291659815415595059247403795932834801612610666229256807065488272922540164698288200012589256403858634828046399647927091886751750935549013202487271465568285112583293741527700704784630837596137108039325188163150556961702956591369677621668103843504895539780922248222024511234285663030764075001018767413622868316265228268985558673566298750560201105181246544078041228305338374558544035344510296386694196517150068832654627557016226925361541138569331547307107056407349222195536457730739033191736531854610145999070518494667321400644381520922715415794526696133283988238025679640568546724084090038925914385328094324013772989693348009559950215995592534341886198481421128564531141494071377798054777210169886426586901230978561648207348007115143748840242510740090087485432020621511062081725359939049748693222088265843552797292559903163069348057665273988498205947057084311485260632983301194602016526203939998880949324275062829189453447793086856905363127468009145686792424021047088711977241057710216444660088251508415435058447245290587305335372694140705456479610764611852056053478500015350640785355673235172104787737727577150940023050370694894733162681026211390660343160679672128618580047174362380998744784274321868876631656870077370939733236583640450102208532152752590092011378328140246307196430621815509930144508772211249217378175350427653994344196080931157051527557905027322841677305582208515055212545141112493794711653440648955334013595327379729218937425628525778903750253189957114747286860216081767022832940276026501908237825345487379809206399446213526000017403905308972545432311531152054594452756132341120057745547399196869213554721010765381552932988095858497952122241082071582153528002473847715247019671101418113552627412177089329517030716061977776115423218385404026060639739051596329072894150728464144333822101044610848300993470401260253589321551204814002469566329809225133471140603831884016446658016113858468388202664123110235147938764797807234594384771263059507550394255207026836464824088727680776928645193829226102730221142778002877557377097945677069783194047359294168143794427901466818748701567484865642232644919783934810246701767059338486130096409910987876511026942854609710200281607596892646369134318997166740101656115868879869882474566613627034951104856881557971937747392477222683659193988137256575162488992280906097605355360350414357238205074632757477128112649703695799640319429091674546702390383980326795542603631548339381388718996193972610818240902091872915332393443061873057288723700721444467630793994286916991696557413209596300196305930653610018857621069383025830443342639244789238625123525487153267152240427674116500807562917824675777291782515132445424450409830349923188910314660267289374399121188300900037070302418585954318705853286993514032205479443547164212428353297460304724462212697421029089665698780035134568206174875652766267350086427691381864276325272497896989104455637872803664563715859690126407958935097210608079500064925908543913049679316645619126341690792949306268130024393845664674047533409623385937281460652406611271935225967921342703184167497710156534022901443499337993260100131530448110337502670577961787032102873139746743224531752941302316643876959926722708299249320259937405018507595843903510882082881310123550552326866441893564965067749202927454584409185262007529095866075014889563124361024882979222577648564245172362278361932583101571622128383298551446952289308122786828170030724558822921187093459848055710964512186660459933466570386588013688193128613177567828883214386698128411174063507343682118824155642762343258454890768412689261291340828921792916897517527572416589498542085748366890358874265656257435047064325383213235358183937459262244722976693186498355637649171106855489148438617121255925473868145531012673539514380134852583701794295310381030243551498681103805348894715237029052846322846981718562367636491767781092877185011843239478576426014211352856853231449668378137995987241731250529738940510825464976140171112017579874673057966211204959734986443818311208622863723008898502835552077774906282851412071398946275702090304280977578162091098154422859260334426840333218115258291231838111815341179314749174860627776099935671222072379454531874968497650287547543634210308115419518622165682141711387305725707725452567906807228150105066753243431116201280223529934334322725733063419675717694562195307542386681520130411002129959224624155630812995942712654344728535560554225324325439110114644422174320829158876451731836696952042379407287710671544112287318850902316726176605378533421340983585272698933315990813832935619733915818747262296327041321702371625411648460157894516740555472157821649768976274545930961544790790843856596312580659716707473528073075793725291650544899481566937975267351800125864982202288899708069177972290104299667588947954124584699256335287543531841554799758152347956055111117355808144259646297640541012189288221798981473180760203339163431258173392589134455872929418438414596950431324962005555263752448475978978516711243660637838769044842016865760502314664492774377467340855494450565830710005388833622638202715518841047430746124499811632704875658890993626688628172919981359306789488926686210042396822558059978246953115106728124009389862607687096443976707188422326623362203852967944013444870644800378380837652271969261540626158902032707276397040669218047812245529503778580719469618823687978833945229359575351038620582379232250731528128420547099727469298146468699311851427190185209247297351089470724490025453012220049882614750828940603592856893836772747565811314186510435568044698368027521906618485204293808206937689171800008055750248505554621142412057877884731864782479330226157580388920431319126423930903101940679301872268244024836272006028992635100258574823716932446664327488725877239616413550853391752042160413686780464504610280403622220329309785357566405240106740499755541581410599540734251737662146608413569079030320870194384983823737656084251429723486021112693526342410674780745325586337084761801337576976748510785810445188239454275638774490563939950538397418955816077797325178234694254299440180536323248113649799967001754380413242242192496674598990519558686063374202603097441319361185839669587020655527278741286098106903195364827719642121228773409473280520983241430947912067307999669223350331807841093161682889505967170188552938054021752273258386015194867243541881160094377983660073982244623920911646432181286030412002010463827193373128729295573895820150743104886572817056716620152576044087155492867104359838776113980000028473127112802923532783669273314657776550168050056274201709640208017354324252131857561012225878183423128846264714626627172964828936580007651642408488837329036606100776362559165015934536978877988690087674578313162418876140229061950316988290352560438288227516681908979476822007120229932878743232705814660505375108418097586867152139803082040948820650627650732443169853486372790139101014409548391881561732212394168726724953524911529959096869989036451114556711158246624669423513647302803305766308891102411868383110065504511676685015324320389968894223897462266286036243092254541398017228615903093996941828328998145552525445156780177758091936081280784150051592653431170830647906920114521706828044103985321407027028854194474549539537381411457659057189846000787823510376743172668063126385713062514845785557352346363541862857821192927384146831302363796027302584735041067077470761958036643032348897329155921486064312004573879708830865247607767584699339820196515414818637785209921859055153250267751721668862816783987075796010403454372784260727850181076282438467967518524669585478409916675040192294183075849900171331537126038536463034877018940685089784946839448803065325149429083284532260264439727343228502399205921862289892099320007488985766358236615283090289685209482163010207235160679515713259851549500992671584696695332132780990012082612057226875486486827227698705974615655352956425838749102449300284288253892249293926364628994672234795488311816866800248383204829113900816489629051535167204148825713048798833898335252550378830271926620810667630719865736274147881516070624520079790878490369474745534814896384428067065123184536722226712465716674295486722300258633902999260494122840853924844575081809905217234481734120181003494206654241779441769118141055209023638113494588346420795179384915753317538335956128058828274559211020124362559862348145562433460552805187361151192091850464109433979783755238429955612848181640661559223707207877166232272004420265580774746371615612380112780196865270103253622095603951804989084204427437836712693964013479568398889838578029394487927944853302416894014749459547221359881692367712924934437265091373503074334152590237234294185911492248853592371205758838198851780307295366056909819980116776012122515901181247133543207426826250157694061755701957831705971669426761247480529773394006695192058595518653211579827584506260000596807844978104687580297445021035427289972803400848267336054331448587073982935213041242970885908993109353228732241947665010242978504970325632738784590803368387040469168568823233144770786172507114484490607728503274179350902970621404089593795297812189822244537963264068998600697963372546204927214277306157848322216877461932043222968905486974949509843340815160704926085111399199342579125247041681489295683437962584426297569455933098027573945862948573752178541821333460818537731153481489101538893841935020172232274228316489885895378529090851041105413258104091071762155228721444314918667041017691782461922139419671613949994719716942867910095753801098950457545128329901434980005142449179859723670501236817135583197156768647189083166840799646834343149476342434525504882450808341555570796846609168523783462860589085527054642371241503654744593332813499929570297072431994558667623050201279866868519877144910648194686495343321419536736626168057548377092735715837698503056842426163867761135724578570323024376907932272945873404878879292318409841558778163957099444639318045833002780259425690523041928078651429058481677007865618206606966749035698387704469138380516395883548532724795167575313536438727596900501336302089517820619240801226329033823729554448368127954076835557457184114539432646306369372970057984903329302353166811679883746462657117904118780406831225842279922905295574638451127471493378701488008590990701778915402077228224237135799251799658192227706962375704161601073098574110118248194580977691723772312535144259119281884256395501888398989895982491125867933132256573361566481232845370218410677069119862994743934074759065301558207629770823759120004899309367729954814522887107811037123910794757801352828966871027716252207114645587338120035097105884591516226064701463551412956958087994550658179423110876853704290993848825744143475700554012264819193648414720749304882008653420279885468645598129366444644648061534289009061171487110479725654709836356315018250191661264210176884589620156206344110169176329480019279352515162961969642300501297475392917403818840309397148730993051624443404427915774698385162534611398213635264415937346484409298180066605321750178982740810729363901430809659940840329634020740769916658297640694234682786374114464468241757479668958818286099067483546604113801368315567146471469193273492751373221254098458681928365307749668986037953401732146494530280798300520539156605897499508203736789486113338963940272377515315901718650256296145203613456403022318356919550883683792058576432652766351501919533108893126014817578428786290952895158563688076999305830202570826987391028939685310065610212704097450947719857325940953206430905561459490666616633982964221486382660383325849714296632077168045903369162623407824667992483887355690973572754254460358795379377516699896983030594504298812565493306574456429698055295772050655445426091793205596048457963190116279127937303758712960718954098033137983417217303423917353874380428684896083776131661293112546207093830858876797892874033366175108106316838239587486503249916692355973180740934416151921631616642469809446792844096211664053815350052227199026666208139680265102270080691525679193137456823646538538098846135362552636648072366240637510984512358178880786697924796954064196439247906105040115661762990130643466229271656383500882864911755717238262625432244332700666468087563594042359647043080004159966233742853443471995136194415868179451199056250395644003884269016366319963477443076703173624682415757720391391451823772670783277284514351129348290466896469701227935784867410193926511832022544921781573272804541663345458557083895620268938744079114112186956482374075892351470293221157598269707078610295333288166876442333696476210503135475669279878872308990608553212833966542630750193192754033571555049228456327699215223168480970461573842559530486170190038350456026686416025757914863386783351151825999741508401632527609337597541224868583860907892907208829072485006321934435729587786754873517218458543280823051740688130126627483689267465785385096549872391759755563728478362373189037644785494013849597545035903208220619574493570263778456011977565655252905628073733351250293185671588394152342164673234685006815522117268660315689523101668538776287312575464104516820510176697151465225173830671766891669491422433641053249311277109863459006299344625839103888155960629556644309594177358173445240872720599837391851776660835714809940458810707918226759511501408315208038802387705198807688472969555911088403780652728335770427914880037745425374449816998101646891699339508337747796991645754798454350745075582721899811455039176762774408632417474362003464605541182940870901752682678077164353980491953879168033594669972233924595231042685527798388869471740555081226465487481132380432292749076290440369399143353265596448179067150978962581572654022155273602779707185642984213585553591095420566492623574364500469976857855850009369689416932168565207192005702516178893981847439630654148304242268339391361046904012857561627304486797068929311533138452394434043992587091062935301864671383964750974188154016180015219157532755991837796037046647229644897557591523134800604201213277218897225692093140159751813861287753980279379000508901271202207591299609535781275193992355147638792908344677879146831997136969893942833862542043814459536903482384367821079668448661392693822362242647391418115688323893215824202077806016058675297612240921266680366131245359807966791659657059685377523774004055460483181562308372201869414204872449026455840196564587343714288001078050013086582688378799422635385797041936664851845290498077491687712035220297712795460519044297974137187865170695491124292922930975461122332025375064934501735599217300564490461077468963166486810959800907729748450710368099503700167544650266408737354997157940798189320901936711431926283606959334011790194644890380106614135366012267467896157426516117359724744164308928781213505265524521421895999927690404924677941802669922105136527459571471116855716676038697865026330429095428869680321397220189305323674529262588699050666022374894359678577051159268134037271573034375390572116407691106157562971512237541143813449004905878120983632110697907246489307618767458148958939925241001038752049033534287320085153613125051714036850737758112189088286983827889801960736856955981660986152756794813430631738302654034721084792524511912369059253400783592916984533608764621272959525834455999785863888600423512125284767190679958213636381475418824312245601013630247926008409586202901974122765212545459497282940169143253526231384798712488639851808539862914654764071273032217145751276694455263903286263397836104823928277010221003868941721685291765385712109640902395435117135601923836042734339084703112805551397081932195883448624705505816902712210911495507068492274760724848137095103344170341267826390329127092577919849705913185825943980534876555149405351421261729421568540582577662228466251729943405593812001335755889990842390028201353310420034692357001596973088477620365116516548789729681248171859372922362532691152451843565642214021824227497948624299659404417736864042354552562882133439286186950545760754375618361326115069609583866156359588786924944484317017066130672190098515774724203898372249330501818532167856684018495107248968624503189000479357940464278147130619680563885359033459036311620293371030726756853100715126679917033363660685129089520307852096016164833193120610733700913099923009324033085053604582931732685889757318520988435741064273501341240996711224673996523250270792271634955241404138584892681356677124812982536215931475091583118576341859718645611978707156399339330751557664611744922774895294007068644244311907911631996508427974779003365426925671901135597459352516493926594447194382552727305754554866492261369918960169908984322902070690756388216902398094700209184664172151165832826360887843032966531795967848455978957450897952089067414617954267318611397366344345145119171748139026099049660581161163851428713797676510321142569970713033162849796107510268374754890616116744791045011851501836545383350181308655252763348583299161805686844683582066603155839810373582924999447283717969884895399160577032877709247625539821725229808969256073920378398363554613390300862096006762549497045789345779142086228386048333639263012017737759333866161439776980082788780539561970449800490800148760843996849058919992189500128671024334282417513877017275018671384508898687358895150034767445398337593261342043591992146290785100281519379210777718938533521230335330647120486568450617711171195544899108762909136060023811156052467993440994492585176212879788056802158572754282864354551730823287434637629294308407859686497771781869683325637166473709151969708169463575013296961982008755351965242776353620075161104320974329021907024945528527299142581953011986310060785904072148102025197900954808930356685364303479413612365584335107876439404170521249816362074090316364436644351002979979079875315833775465751518986778323201891459897710500662806894859394634762018619479173723944323695589806956718516007728855418913132619847452677855484300724460197114613523377127058927910322955832375962929034859226746205875737128291711194759233813793164484839341744839888325014527008948814202647800299735610424139186095917080586922841869006716467646954128616488922256637505761543231937834197408331817229512631061639978983153725436876911852944817110626085725122043986375148726607123787880989053188329901813698530409077537572989629767585610565036787850691034706689229302077734543015340864972514052562540108430174449446430579872235304002583666976612688840586973268339091196367362764023290527124998393736919848458024317208945906163622019532608753405032932788585016958878187388300153557526570880547278879400574896856349151646481668224263868010799699988251281965926421457622896777946658047800567279501858814575826774365742667371568076758684772901966645639820115815779894667302196953306043935136347459794291724614532331948092778324517723344228206700996224157575489285844777690224950022851364476674940482735990713907898702156789810888412013481511561365235822205032169885251425123612845929888791948454651008094119516967401385350023598754480350376989482697051367501095793065810435579854118327695902440877049077853775962106493242307771178904026072799084775733143609306263249132214482062739716823226270284027045751720545953158164990453029806856569186372056733985314700067338729327733795618301324828503072211759473993443953150053427288633684873584852396431199793070945784852042484485329671723344247602085559891793812722277668926356213123463395061945482950269786938409848449672648530934509960414157036302765501902631244094041115322473830985713304172866546307588326271598442245243478244537798384307060152046926032854472518306554118157180523016522060231596037724340931786699540501731813929105433357887674324844859661822671186912189473600477793315633804562713136470669763036609841930255263452976033059116420535439818583307314356721489772961755598316466489252829870420848318071293266491887364443367208247481916767092079296581506379437792083492066609244852833512836594918627068331051503565434584680420178927303902477155034689043365838585337845203836262131322985087160449353625029800616944658674818996388444703382705736298217530475457102229173037320919518665226584158203914508573035920021432293790875917200697663654505600224481252243537049916910235785386464017415068529986642271428514152121142284600587982173002397982524445397423852259439114997691572353691134504953516974240042631516283432065998252005168619838842222846202167816853398388040722285865872374112806390016940860455952962916977300235080039589271611654883518108207299191234530159804732037007698255296524935890585655567109048642702396213399865536809697588597799107814831425802040840079732053557954087127285312819919435437457151875246201757007284216984501670324755531508431590436747832546602639409430104238700921329380728253803275350779165011418147806135814881939929333456175499029545959465085716365301445111381478324568629739349380401940675683089618180724650689919290716700502547133238174140597902339937082433693311545306028888039186446955691298866689406877129433011299173309392349328873977709808836760154935730373615981956148157908625190837796043137999115347534719932545158395467738531511812730041915850496182576942494521260402222277972808153084985049261564316297669486557496741653566579768393779076790879099496729148512743821052145714062650803035488536588061886475937710156266367428269875264956075013662787080842784961137462746237772717514905058569990056200436506377257370202358834385985833850072001168514890801295360738474448430429357123356294396088346817464126898997942164688397092513461148955064786638928927317742941170402421394781565338380475692680404976168797562098013082490265817499050381348034911140229939815821567471528957114592229601052852573161108794344104930045611100043233980373759123650683218130259623598175932843910194585836992277721595691226445355023521502410455123465386529764851815705917317918357530001494978761997866188112593490910074905200087382834509131212989683813459468125671935365198692173574579549887434928388795536797538817501578780261595204401562800923216609797274294205468325049509590650346312543173001560698277121791374847040002238156184366594140883302919627920561863961268058848981073386654444215514091466730619290109778730873521669820382758405467260516089405938517840351090976492568698914081894085407576477977738606543432002090041971991825306428760745298920770518259498558746558350018851006149734437068723233511039028239340362655204849118558575022079313599028083484918524438464860800597526650814496685030702816061136256822337249531642522645935211125753439286799166689090087244439553347421817495615895911683255266758596889948784557575051958533149876635509486692378275763808467400063410488194858563763631970220370469270331112833878443993653784017011960030333108828398595089492322993669025097923115199336054224271238191128348102523332840303001068965219705391225561246629630634352206836899284767577045176462620658386932052713427732796666438428382554564487360827585336211205472364305293975034940851031207718136102816012739423249982150566002569717235845128151175086741072620617504550473829664589540127781983860922527079141516131973053228308771720359723309668432861208022212207459284314782383478631482277874803945894990677671557712059470773872998818638773881339378594231130079094242381732388245398973096433481058356629825163376873512062776529238005815177361089578690682069271031334848947737164088773487363660972007217366616376970407443376056580217140215142340560030723922749768769431691110819944516731060714339411497254190716770795665560852116412454554534281176902970815573323300499958928433000024894548807262618026163817531551627596349137437198211215888426351262983229690493441242834193609317713460553457662510018798109586083306509644147833856037342161927352133701824597414428460287229672725987626552358026440675488923937444085024116336907093257622287943885041365922553557104465165148474358507222258564636486571418200609898949941606600577789647383562614147551845434731648200873133973315405439340197573230257549534929980821012059865961494071375564989664064918684090762728101344301435980613377285117155166509105771209818454392320586656283081443753128405873042249239622665877616023131818477583512738827956360459787889231393882075720214246577679119130288330687258123320205608776820004228183136660381507939511997834519715651904479993115536341258590637654211201418353177101548516932390864058846153578433776502686646512978739420220060194594162807873712208208078968625976943543265950489494554216363075736069553757294619759865993640519527325111067537101824084384782217908130489111803910333891049369727830278137065683480970568357376589974883055840264899474209089060684905198975946913510105085772218172684064668822518283315841695807975689432119473991125789358834897930817447689954160808693899623695650752974148223711865484220079431109288373453419445833532676992520716531844948497447334795437759690747194868259636387519373428164662031133543670775226415620242451610931321498725865212203014453963414477013968682253816967149122533190216709844019531236996935036960940339757597632464187199949704936289837862582611870178270226857899599502928360083891754665460130288034969451471151985057240076221296689937489496726507185594197007772140153605440151910055172845787378678013491898964636297506619695826750622112366216824754777498123583247029796129676509031001386259488127836504182200962164385289836953040536585547597080570430126932752795792005594518571972397059266147863034389168820923330794981832453973473386858072870526043524752073167978439161653553277342784926022237560771640449012489535157860498785171413352260271093797342106016549849529213013103562888022879727455492277140333166312555191111972679544570846927441446927105271074572255241370399182405143819707158471045115225098866201731982192987128911821755247059086899546646338502573073253797994182443973978757711043779160487826673604072167614364914819751913557637287116712589802466305900774174752040664473721506128611768761398494301903738463790545325131109283768433585114191407392916196167798583560286744230871758575543789724569910692478874866376920353339546381902148256684132979879829386161175067200112514004160214133068878083791953568048815177098341528913574129804221975206940299970111994442685759783591666469006498783429590871448380692564477493165423391515848163387081781523498193228910915539383364401515781000076218244857341125001692448055366232743406647680056446661053315937596196857121077612289289503645698667365023184276238105610550805231363496821360295382438282941977131858256203996439729643821346976431351689997206627159965230012847803666633804436339068691385829585208799082854105989779031179233954388721018672457592514037780235002021887071753535315005192110164615211977152524737531603407704647608387687210836778471556742175078022462066793541441765714026965526871863752545129720137769816064160638016008277857028192358227332513574652776713817295717060283712738956415353197208404391212133602970476674034690462995933127585443060669218873759118814913883687693511719763852442064306396444633208160721414235359913954370715413418753829033113510853832558155831072441470606897719586515593700201280091261573495896021466657837757823355106915088841084533246114471880468346173470008326609374609402602250468317452812397628177226460224032898521098844929002099535031937440217473228532273156465113802888415351211769598866794926173090323313072404013840715445556748130811101106046139165627209957768627450102883102979460183584207392245521417577719858760642770589909378431318318577509776055056356487627236182708808247593284325087248486769424471987264783920504983275027099419814867724835108450652529256748360886252943053969424219231953938837755221158356996230560931218779359891004570607429919503290985145521355225488636797758965817123431904549535501731458841782561876716837804471643857764027120609438331584347175795569069622730172264266351377709607502812107726462632664423592013642403057031442708691630161529046571845133674290333771218724010177670637709050292671344895619141676667612206258632319134576469758971413631461816426337374480632882833119494020678107919858065185581476429762168226104901363441317797676594903427631116711198592531692930642727825894659819801859328282332472663712979339388140347499972984814432505985487444171288260793039045861597681082282540024354918402571665767305346625136346372992023479411083194454439674545223605113169784173557233332126317813437675006065906015463117755222601494624430630781747717847681585871112239605203369942095512001843918465632754966298298079216955958088864704008828636705416514910782590164986989441292211795282622624895165962361448603035602278481385852766893525636417549125842489299273563210950623259321381163589480814207607454758981941485526775361078596234235736001626084116885997956097558989678581263263271205864447062034617032977478503998435278345342635951173715477544267397465777609315729738083013050661655058222078510313878451772215176010815759752792042900734895808639708257732255154938157367614797466538724065235540157891036595020696034012036681271750572124271334102231642715281331250601214737684314721818675690001366103810467411615828134527211043861500017579540975112911724600190823596213649157353031142343236786897425612043834959010765957712809884132339769921646389759527946546163569964916280850164517990753575207248627941044965335833031263003627063025173507383099266298465835201098031028460007335287195358294125917915159505263054352241924430548722241137768610962860947015177371970581591562354708830332035551961975696266400739309805601542314833098013660422096902810256670102360656704261915139424769639745856187260919177930571292415708640835082461239659104834036551164748506205938241313505134910107766618292458224892230209141610193283553059164550212840998095686555136568116183756810436865464064273439536745407807786449263675527792659241596579708933970531366561761062239632541457248916613661724102049415267532128511397437330883258404751296568969971743077114361355408920493060710332858828504791768531777158437004272843405956654597274165049117952657342689468197783505008096175290632775231723059029299405672626915768900341496810388595080617908345522439339271764971993717825047032966628321677536907074846439993002499583009861550636525977772067569441015151041350005807700089478385786135282156018515265366976748315067057587621416611834529984441910212177264589894258514949368067235515180241888751609450714908931044982301442167133057236980508652869781292708904120751871339726567506365823667613985628251313469345197569556907548536398138072511455269409672707579074680028995560138831212620331996411961645332224909238559727871710549936723115574395645020964092542439711871034799317883883301904296899180593122256449930737945798809455344640317248660446848747707831837912265835604578553681269737928408223575302210055534901726402178702598107821864711844840724359030364049292331469348109514240646140253459976208782543915560630330820106925881424487750057011563948538891732717193733983353999619529568887883163856173419797413340748874742844489918669379510570358935826685756262513558597317904083363492981112900877574544633845467856858874764942383416660917959732520809575873900309577591564658197698983839964397058068592556359097565705171102329430956185100740818381882263168645663403037170403313493780244801921645985784801987870707172342011727488953942237198507429378947011580392903817832033357279670587362289538768701335488885459390853139306373360904605351844798379891749100809068319659828473142688395565571375072006581010879541493725212210929028400033667005086715176841145360327601760728014616253310328462226152477764963143947138245323036207306984354057948288085089325933157118131660065395407945459118483110142433209618101574317145040456196430480277935976553601586355374806207520317411146073066047246061754890497878024489295318473098778306449037606303541996644795394061043269270122250745225519378605974409375562997188826840870977401524966712787790139575885874620810271407434110265655330417398003625589702776182845427303460969390977573301365411703047814728744327986926691473379427333370913669740432552444806630784267545746847499032329260954790968284124515954419022695127502524835733984930283652451961387246712965133795442072470694379735320798513977219582481629107072610381576262054732120054006207444550762509851728359434827366972962701548884859646524686896905729144317636271503391722179745648565859602468426269225198632434548448675098344544809891189978599639540032230846169417331728895827879992387801191926836167152058220464653893357295904377541109082416941799979336200997439748739013206072621063467347735223446306236650560407133695086335262780902433570113119030460172143065497182872475964015210012917442218779865180278514010750727425598040881772256358076960733614081153290972966691227335252259801116060798715884795712725872562203874739266610821676664019740903918342007273706535914109051729689044928660013434856400154878617141220745623449764028323461272203149943686340280358994978173976207687101316064591600306431167224407580390517983074223246338081649090531665830720509905390714893339762676844584518570396747351756794662982343318828671174414574048497044505277337516161058140105407052101580931315142879750442370561489783437578307096749571551163481905813767711007872862778728040092664309951087047070494146104616413591703957494447347951535908696276777794817470203005245837551195535484237914468212991358749748932992073923511404852737366747590228927891887771570717442762181320217633415546548363002902580042102571062087269169751093665404470090739849597361468510638692554348804021600419326218203667856383255521035255840641937446011572130519209640779160955703549150647939275572939371604679766792504346461834828802803939222043378030954534673820971726801220314621993158407328957628675918088999036308320281402615673179511581727572686206091542630072539446540579234719182604589764868796548517268012140273975436483328414030082032353172447067367464713222251441321206789123993136357765753684111449214532935350230137510820411124352860609184250240059973171529468157834276533948731761200994725786645690419543862439573565450264176794815184521336529955575500776389775270494624479065206769183174679264781254849616469758141995090842735956788503184641526278445819729201931776618130723539650133100337171124802975429433808204885688689350733174072173725387502057360906830690900931952199579671797605111942320225551090791351279669847522525345699598384211028855325553217101235179324203936711815126531907356209155598719778821998175566433550924951823010767187778989477174893817859000711607348388891612410347417113087465171543930272252233120659488682524246568240867440476019044295155276583461687246620896343585935860706438569480137499094639323578618632031655474553472470174541481697862185832828670861881275477610490968944347088957922001443056516276576790153904254894485952036909887356025844769157286623818747541442444700988158395982691821436689990301230632700662909499089004320779097397834706358297295734608310006413144548685828943396388421102404061008807411612988228539869627004657110293790598421848189290115720939037284028642711764965077636143383162103826533884234365453004596387296594897191290677948187405880301488156850781124187393640612719531544823527440158630691393141954674782432469918749489431489230911555856947401822774666118834538434051792627905674758116956895568935000844007973199103277975802844846010467942399046010278285703385466740035467614182279929592058129668537205795779623659478130799181346276250382424893378736838861724242435249779308997487632461472083808997608349156088884855587772564828366081053726664730348790294528565947370528234374193434877611055930329677682688505889893510366789152314634330859111315654082735201232948976212498654705421012604616462657661213716952591791417062673772563971857994359285341342054547089553968512181941561161577937928690510191597033611640210441502466643844159133420253874721238356524211720851224747059702533484261492420099866740013487471484736967594398566923106081252277052042717043046606656572371175846159710447139921645163792907402768986682312895327267795353627577266486481329259132447817138424804473961080155831280774797496688914403189376748602598353042640406172069113516108101866381690326081792730953767387322510717819322603225696244986713362718534810670689578941275882333084392196542249150137429408380564097059917634758796142384909837661193925162402015589829924673177302189228826588028016190093419242133856230494489989825978367620667119749739643214601737317694557338761268159291268004868684507755243491672285318035710035576646591049885382721323577754368955408157775224794640877704775059971296858557868109351759212683964558598419402859985131334803899561862145888519290495842159803004416080358103552299626432211483050045125605653120521051340222501929235658709773948179025846997703389605941883056767601900260735499652979675825045499912253137743052481881916788229944820564062767885641296579962273393527664539984580693550670446448909487728416933711788875212459567826851727408176134949525603507232165244493447337436842582503420288409422201361496494288263635547352483189350076599490307771698745009544782149871982157688477686482305130491985201528144124734583734347481698506604087624876792303349375410751179741749625582110783502961980219992810128718488960464220450286419560194850238295196466166572455535301937212529164549432997711944811391018971359896729495321332307800399219923014580533029684636145220015537433600179043730526426939841452417857384294779123745615884060541685833982767491212542703560402074267913680388114644743045507344094542281498804864167100101783615102848162555970993963949262489131346797358770884269821855343832248240947586052481312617510682430655212979863624884539996427255856630169603139302154113528078594221920902976247127000418036233792899658877430473011107028734441279240856050975067195275796499812381157790535013714100310294512249363464084406845818439669142067350770486442609978597731159474228565206680840822908995634881598030055884514396331599667431238254783630454177382293722517633627508160494189687641181925487207788364537962787100841642803696010649213072181728709987020552986450340291385931153503249103855236151732019971632465800316258117454833828447488553578538522317686757285538551926533845106481157758843423060897181357786300327643693394045572584958475688814812699998806364408589567696840487593691949047906067471961850554048001767274943995039875262779583657754633456607928984335667140179031521842771512372272379628055909655498560769491552913714724252803413399216659987105835476939577058218022471781447850563980507520730187529729527089338533340807649025382675742412716146055240784979977945825849035138577551693366005475496342951077207926174301188997284727593252839383765970062515525739062438528511419060948890461295387450715271756528938453945125763300558173156566665430305329266992334556302837070829944114716667983436458632910689625098004507688039004624891779941289372954792557779046751320984863062599939485594734895615404728952557601935587352662133146080407426875515825541480449316796577054318921649855219489842765516107368249932046774811160153947180762766640138949469995872375144021840120834314516817279118832083882985876408546227694527861046364795445313871572844612892479864211630024551242751220005933252106182099363449949973247129249736134289467471093443439238145217774938383405922183317101365638257766842130856274606193550372184235772713885824222271612948192407431460801682813844334104544464065774366539136314272475117028472917310557924464851325101437754917854124378778965788004762414646822960543725023632973754374739632063285831570437926440077244645090550051782471464904934669276009017769668265991855275892542169153944632304322309129211104637863240561241272734076092939872802241474400885602009464144606357047233005516532497626114235471872640663910800822597190298759132151242944111399013071430696223309007545842918952156922524599779333992982195779800299358611940212703148202641172479555020987677697462338188121550675095241066525460477092205290159745800505589400296659478248054141206660513336037204317463588784509545781828725964457162715604051946233820743763689541262305489659376153393766764427424701769462323697660340523652795724376329169032224464457285513774771134001071791703845117817897158479431316793338203575143670961996981965480872850510250220803619080337985167733710287861255185445242182516548488746672286806599021945541789007912941968270939951772945071913433133532787331708250930167658171798181687903848515545447053820458863400963283125537444547582870491524588602339100114694178462358537603291354938054015255928254682562654299697367065211928351701954289195783649808427284990463703001527807238309089930771665592981447706374609692475986923220898118516247088654503508413245770824653151299303346419462116741521235754259429658217122669742231952212744032846719497413281531915807481918393958482630435588456236946149237513542407739219490603353471556561445937702414835176160380042085938224106779459317719370324596343228415232643627202379710904191320871653698942196326857229628591265534937862385469870875114903572304932364172609271081639217694473759089787127578533618381083458923585316516095962016298782842269240695106733701146436070661117828723103695721721962278303856046269678641968765652284401984349404418230280932429768543108544623368009165344075004609803294378241262805087050266715429717237072265520291438095913859559276891637794498639064455147803781905269554526050544699283893809048332873276597069463709975978993230792856420132945074364828993187580368358074762191100926038617048620333112685159162198740399995896325003458076117019585468288062282995422608343052832267729498435361059914704082348565451769105354640017219602100881878216161282364246309971653686506004910148704485005984991153834138961457188710618133278943789196327317792041762901816572694853949977047648667406420923276458009314048884805255500153384994016112632806688292471425182550065107784908790091430975091941622793637218807660181800889288613644738544773871786191864394277256226396198702073165781462902678286757737807121075153783585547274334006868370160724925285444329324956874036944474017027670886223609547617154833537448947131563294955104374257543131320173514113459666102965685482133884043555661828134936035796463737546900831544819853049019145327871188025550421736493136941640895739233571846751547618056473482962399527731573662102560037640218960323485471439321292637976428657384215174834955595113341808298075890151040958430536648352721991819781458585498517910533745953830084084417707177486096483199869778633161527298324652985903768346836100229586126293000099819782913570210319833312035283532367020389139986491002385073836838365515710608393668131207606110210166024727800646758408763700636951210509783097464460200960711683627132996763828964945275871329556149382785489568653913112380561104405489670328905571304104715489763485117058607475314000314995038212340281334935844753541941791563253827442527524388183950346944905517858554228305448954161297749652429239165026639771958034234197518036707893604537143986661945210020741569674992587343943898139081681495178086491135055248576949031348828521600399823311641883318974500514377493992720874447548830085327471632730194156562379993813638600295920788599933932270927140792285851716932128373826673879798835479135311840121025503389174844855131719305092734414648742772127988739448930674850565563503375555135014682604884056988269507017734840799200897482964384844102163336879242581522312718229418661122953379110223191721661949421369087235571847238979901078545222002645885364993542587463870634755754099318498075456336374444537474059153677414476541407705821426155242926629191283460506294800233354038201686540981776517790144244674663570473367026866935958524239257795660803191055207860858005753015720487551380837751186504069339497156101679887323186024763967019396338494406920450581622248438659748970529379313120700309420526787934999015274251732212674409820762230958819728635513195795241473032358002071701649507653636775144767030595033928229549954663770213221414819467280881840149276068287538049330730285737658055839692553195503177296244591986042481005158982284203068504294376987137403605405614842770780034503008840698002900638857876322467795329793823422950499044272591594705835915700937313790814674125951964601739536619058349393897305789145344382913837829996957194515925424417206920477044687850349616157412549445852451751970053306437264253097831131128481133929867756119850468625989890165119308981413325512056735767564861534558822773237028068807083892009284467353158505296561370635888985157225802235696977239662313007033526797555044986947651520734084175037193120012988695889902377018825630311944566162677431794118819064354074022633914911460390893354199620527627515307749843465792004113312171707966645505877394589256529849464109401000755270690633933264853005124035039627948978696752841524442841053528500052935153933076028849972864399010084179943958033118118406810282447039277013224130930542105165438528958497569803568330507607505425207453973650004250645250077219344112416324119249910195470700714171670771306562431172294407525833951957969928694518547302819657306382651283659414400607140440301094864829560541387045195208018758070320316571258890065763786350706952919592435207482141847318393182452494016175227579685696590667329728924771292797590581373440867096846083238734416320522473796574604529082265657749123391303776166448733703776522391009367832954623844902439189722080704585112747658880344849045879728461717511478769753896691978124985261615829309646748014567268003710246872747097444738240901725187228388500208593608480488622515253899004983476968375599406443283055259479408271997439591530140142585708031952204607774312709798912087929260892210675742232942575068074199646168805616180353833950944508722694179346958334640875273624665948640978528709016728845717605318516265566426571479524316845490471470471988579423439903971681869537553664457575225802297820527253818221978710203352949313331977071942436779765880749333122903333516808237766061643058410532975307970750584505230969575012607019236739426738386503447668332603293900367675229390714687659767050009818127877943614063595672937760177414154066318259240513382657172280360250406313125311016285100933569291372242555186663267181861401934914155827509195875431427189691310668910849291384624374830393995540225500494700472367497337152069379671896556845154978772696596958309128790335883241843905476968094931226935012401565769949249317153263535527315025666416247627395371589236426017183529022234041683974865797676919516491285152828828570734215146561436676297950901534730750295783673820045511576750183545358986222284316759804008393871945293385472323930292200307075064216850496510610013315409803646864247585510560185012841010683108509964416838863159705948053197916347512865700532214584879919597558917209223228436020722824817332704021562847462635487982448502062132392009104286151728781197176653180964740626174501757712502104434551586357538270411485802553660459774382711200738080806462948341903685112573501362924252677915135153941366670793729107525808550261984275695878914373229330464147597659592035536289776737886429710399842682904234801385416865801662351349879270844411406241801623524880892005100931758614554159785692810193526022731765988694562543892219770560538014856935975492515828238585545370374132494607389114906181640041369729295486479264959417350161939613386132382024197824623650553757304854727942360185505878947349314361427906433484066051631539025188017216405618289902087038455471538725845225112043446313438066559476938922010453196612948003242057628159081844598557355274714340586203278629692204769186827604263345035339189972665896299357132714054302484216407225059836335769570835368216038968027539431754206657099983945975539908878149335546011325839878188973481654418868844804502054914143413520724357061747866341485977289416371993348030887727170236002554719385667423052483848909935492754739244407463509920751670744524685425824908916455134849500833092413289900721026462106460850049890324986639263816272785229869230100755399593246128062413743863013341369362540315614323801501988739029703233719493524933553559381990594964914733470575866852108271352610759684420224591525305509265710688690487876137586749628602026554964167985422418531102634549316257682931788467099534846561675911533011876644019144083319048558606601489908123811263775339373444805688269389114090705486779785948358208711578750593126362610248421876201285230070048823731576601823077360762349236987395280330140730881944026690050584487608182591396268961780060733968851113282623718918430116786543172942326483748209184995458520445999020540928667969731491439017364678032289682299891749728260772781745828893996044183227249317337841607388339469567438383718275751575356781312167129034169214740881744817357802295030325631396625110042610208263141569563597559973712092576464121750015819251873159905607851212148907580362924850758320184323572993606593035277868176303885384779290273125498865081104488702599463200671446263652799982934013609441007008489408498936622158446371549539428268376733991047779577294809912218086064204331778597512501719714590907167622026197291183728993634437631238667768944538431081082041908487943043159542274946241829326917749107139836307828046450588090012528864289603930818670749759739738861819578542201461247487816091095818537395372642545747468354934428091708591775874599027454519304917190163263846146047967294748774182652673022168908614957033843947054426291411840792199489931763198091599492512062368493931447790166821245562546070064452971497338252403921659188577719047269126727365905517506495025450222184771296124675038918987826188207954736043107956874342363930807646553393497542109294150493930456793440870925614009813439310342667731306284977264475671711035149775126890143547761895467026951230800923602984377950731938147510050511765517488297915170734862955185749151795072412453110541189114133524743799179918306726951396671360716676649822240488662077416176996239247569973613840206573081434671609636407410048161472694755625540765160204017572496228086690505012587070157276849803748635882380995906962340322076689071209734669974791921657018817988544073634738843009753607658123448689425831914728504799493184708156522989025213447229574106550940305736337378136105702391687013330408429962508387597549341426532322465897755232992315259689472615001971862887002346192436943228432420510378764133752033852979228089144307963545352951963729829449172994458837500804429085386930444591361784743767475585191473645190813661567512073812392403652029776901326616899823825927549692880924922737418638152812656957900408560279896222688465172365652218752895445936162768147445945852110398006807259911519556704950484778343358538066641540647698865091107571516695861144922483167148388769365349371639702847230681095093383379764730789719653962970065924106649823623535241222339424402837891094617226849751706278673595187437871524366496431961904897985798110847788062264854631279650275051752754871246801502687215201821920551605615689395550650423022449246173142114769376225486881024398968860339724374067692382878955509780560670150143402886007955063381028567942426349518685921245656006832894283401870235578276414549648869443681220733725190312766428611425516684647020864010708226106137156291169627552859706596672555625302027339645089789300365534595182926703364728470068438870569093353900843843527339332901455477925717093179663481462389275343907463839519374060962951081233010477149360791517865230892230559333454312386778805813393637424939994593323691513397302561719421719617407973522295110603717777188282040572009204380147876152850871882016698111314188032856420125776588614242541761660554910781788255050161710054602825006336091088774100182977704361315473987236336963857984041065266803240711743697029872149498310702904200007132787169226527549317226941878542199931962005004471147366437120227448028930945937040302529034621349414848025447002495575478520469714396789533745479612469194741501873794150403655049368140804952367171849687778930916392673329293081045306243014325408749663796465948078427252436766639446843866235751618559269130631906411888278744535765466913748837494238033776850011857023535812692474391725411995364348823729975638971460769815634357463204780943020652581587846272467276260933430625329973317887557336054365262699303240973554306984541309681911303158945430374608935459687042366901778817614785042222711445672467721605402047827043410945399274627705204111404072406770554047680226450738442944979242963861686408642860148070105296875429309481974073534470466140983337121194246499176774743324676508855518729016709244570979692497982570161966226427121774848100412787363112671099170015056269983764543223745766929803768783920411139250024630817286083631398122819141767749587494113623763324537912347718445315523067634452054271647100593024899086781248840079074347899155068573121478242319987941044321618469452243269961170879079686232361153104541186639174036550389436213364581603955716543278051263676656358943824468491817497229620552902168981340430109565869173245436123655905270849054776571903865196074623457653428537246984615208499059579018834813596288076455234697121415177070842399157833680435630498732713541009499487347400318406637973863193836983532175028599040581644842860164241083548701369472872694015745235419614471111585908823566445838065714700900156837922481139452512598745521376461996931763729598275420043358989224895958004733214371141096023183457283778851709634985529743749671923978735313501794935405875043759585385625668065674809702684623699175698192268151187750660990491847389589399520144949970070393968235555819750871451097267749637001024172742318465256001898324092244968620343721522728237416240279487060142108462582654979993226130728774543509501049266654830969494507949734610643013198685566201039368096191699811048294098183262000305280155828134830618287334468569041981210057294482421039796535807677063087330144382582887540813814511408691786864942438737686862144695662723339215863142581798046933287226216244538524128749805738795063172220538693095049476175666801952520922358224459058657761048060490168469240143949106218619073365416361004768010575152946845620081150991602827735454894062790981358064793832153398689481511193463691642100492333461582536829501830093833796177444748826464659962484098184604076803321800923589951736833730105272373841360466950155420818884720206841662893405738749373184928465140596774671167487386461842999447760425234067735532819417746608856989577134536901454604698553595764145908681822974897233756517214270575585163417746344540355009922341860452221853817687173377522449910389226432274901492095908924727077409128361430155117339826796732735158178278239675456924129021605144269282766047751805890512961762229645031407245284900447985128928329278173800940909644579613238707126912383072399494866926253081733249505715228442994754909675303726282381293105645928535970112953905796629264063959454439014399072957388582587600290319975017120198700627869980861264155698973815254933360612120850482269394292057352304778842962708903483705575789388151430655645770605889604544802246474794138803378957287753346817957820322040880856607751024618531364308454505036373883176268698885610683202360394435662176085315803316480711612340598260826297282345932228257001252797429423725798714335045513832972798285907430166425031635118954693380703239475253623375568989415837363024233632234367670006202587169448284590263935981960772985924284674754981799070590934202993834994579824992471217290959270216738773293024269359486031329432626304370468347975845403323707528973748970270696114390809486959996945760758310225521232979328143357206069225687176776041239698784123200237204518950810893438706172176412507950702983922041907992637189746131113865721582130070185508183250506083825783617621978068836341889164330016279193741224669879993087035535169100154318152967412767646932979657270212831204355833652857393676969770276609492553957111120331841388091869193577765906419964484180033477840624881469974729046627509918734146140852863345133391293295260319585116803023987987883214511254112388454162707271495336418597171697978361408871437208858203768134619663175901915127583506015206139956801889787151035310517740463562532356143402057840854823252429786098047456975452365224237847957645711050787111503157034705754600938486707371172580342663114509017949049153227653533566007373740552487298766476503585738395096404427577294864747131170001612699824529333005597002143602242644354859584952042237069102040865412449269279965952420796073833984909215520027361370025607083983970490636119868480807626726390737546160112273534232367338336455817415307720967580650769810421255631029040553456715661116010396735998680318285770724292000091176697272111549264598213119479001583353834860944247981219977103712135634761496808173745145950475209167254625588222560090385777860912847894481027728391671455530970472514164787845182574357174692756257250786582868160065631076954956783465461869644098068590822240516277314227172773705567381091670531660158512493184466150893188801320345590303562091690127737646997512835314641546197934761247809865008197134300597278084024681472715533272838940637259766880761934013853003213891601949042732816930499260627830386425033516195243150508955955613007148786027549407999029049540385418224668566601125372511206904685214711374355488803196444308294535368833759044684123706255445802087553829178031807167188585113805459289838052546308886411615549976626264371021625583168940077874430283752309167957879266904997347763853828249370291462185435711049264908034946678143568639591606651020527759055191381795964704959584912857210834447929432740040022045910451755715752255177108122449803578503288018890796357571367783198959177880096398311399636406460396615669636774569887815422231898045450683361889764017566712910796757638073290266833091109872846849854135312867054341183413193732522478727743981535867609522860613804427706692876502730732353574363147124547304186432350440267798038938379191532311613348205131155935049731241608371582111284026630112969235993698893538195009532632947775622557017509183681273785952523697182724745995525874191338078518105652212677331449585013364511081818538566295505185954894579367420796223197929270019731249623032870423015724828141813371138547071886440660276554489077698907914806055985913667609964375487044042127689335919710935981180519680289469010236587146330271241463956415265400576068803047574699011477392233065798528947952934051219342139641012457324110271993952865985131143185152596644362084782712950180278409731906396092017489672310955562255932789302843453639999408295782805760003165265739331459198328621191305378207985112766704219562365413090440147616233876627046555470557734564374340299976964183211955083962467681107490075828852727498053410165413571579942887866792808715790538944990190453108672398083684372910647475490285803859607917132463011898884168159407693103713420981425685485404202153630326570127761381065900202723571901653221816951095725540474485167668535786354269532342844951667419471688179926823180170116156412128965541439107605838320147594299557730266298277359075587812261790663466438431481687391706079493985870570879767318768750913271660224652147144078187624633811575952603351948944849249733932176248098544490037584010212912080709659719739250973703876470352804862800001348546169939752383538702454353376562409052381631259437143455423559861996927556242184556151244150407372410050631688700328629782273957825930144431739416213199069239341110976304777856434014071072831002144340941266755830351958092660122039719394574305594149374423566820258198989639783944204797889937865716990040497306708354182906091842954987854781429521122976808182043562619355646693071906730112446492181801646039612935790570663794210254805559250901999075444334688258953342134346985792179155547909422891061704728178917902304983979014359483386924326152648213507334801621501804295482314607155048634085413663288950925524635577447368747101176020060887663593365024323705027774076706890687423776323045897825502880641989564039705799016567994129152583394811643865802747503687030215002311011428615038491513879950762462523910912538583668747887177439061474180328880852557214102827355249747292311256836854609970438172739688139703622882771447893249910395955715148376100183361488408017506843838083985812247650325059970878672516662798957223571156031310662744490128988197748306031314373193063127653859700979579130587634755824194401889371766433182699862256401099090582483443055457627506890933975054659994299606941552027007327236780659100823012604456750769492596519721777797685143308978761829639462745465783333554811864667927975289209151547239507337512072242529043185277123321348441146513260638815829520807567303892180445304202679266907186040030051073404038598367666527406271446900484053812374771636138517355880697964480624260298320433687267022250357699513933467862579328631117903848412845777358670234940675691391005658338962525633859511870166372599916722547871110456822183069487140136352983941917174990427115847549591047285879045417920542420971112274991248839494338303281926727054205628698534579765795844948718640247792991914134629083145500989124417719448590294107064000617234659952416896893960533939780786267100422102400500110335213973169744640264601964349082433201345532321972879145861459218750927186108727494367880674684261237105121132007663894843634112565767684682668164797225974617367725903670646400493250774279076718191609548044060793655927214405381840328909676609474295024596296093981258543653291676729444485891212393071798333244048401296069519360792485688538160431413800383625177403450366138681830985978351133112639833365871715503337382349862449938945627031890536123715903008465382275533823814949139415294406761891235026176852513297870040388010435347790406017881755233287792848755830292748377687136994043284668408440183484993582504097225975595644719712002439927552518150815872327338089139763028603800253251284354531653218308201315722701296092999315070745374215170569024646262083075255520905167387621869197294969660044117692814730115915098876412268743866552346757734366439953499916856204699513984203857989869597447759653128629012909333085743259191364988463516342699821797292544626858625503504788219508854411180468234040543695623948392312619442217288473041186023922344876328036643671592621104220915331869858513280966106183607156852368599199411000923691193726973183722934497741373285894618899146803677270693358527447254056834631155767013449612563311994533993636575393628627336063042786735996721047117097288132953501462946826855435663142546010740152346694307221011837343924916720624095424821997469934758609899007306288395777109635135228666436040518469661336133783409753392174115402400008717621587560841104521889062319036407553137695684834008360262796571550572180773385704000783331755222552554328474703576724742707262787280650411781986537237864772353101300975381995455696530971329379298852858997620926100420068404551384535485462140362614360379348740471876109339128473514575912518847911768629743478429214962439618898359760158832112449045066115574564908771082904121233840090865182323058584430939952782458017427177441579957765102119627506861745098279539606674166758672629844496992138968763829303792892214654557852946390744131533701575699103333858145980212862365046476765085297510647906917695928241762846519517711220015892463166463086224597651297805174682808872081246505416825474848235360473702791870080129988222501714061991427623630470344740506422523654478747677358183401813757534731051839805209776789302273666835370508925718578464250364824156819759526249349224956935746207688707247857670017958074643132416972007588385076057043579500594318959600843345314139468330479298714512144472661309028962283850221851310328191229097837403236326000534752306200791828339295452282877227979852567678048123827695452840740740213724329572713296110795564025142925274576552913893111908875694916779690734579695035910416500476669779481673903018076730557784980251548111232568902286211829283169298527633709133487026703603687597145121185401237260474158300574850354536564410462696522069845864563996454464427278408114662182790039141175535268636130155799693649074160439608866143425400341453037831704256673074335382169886733984438939926935838557470444227431151697075784279384224882951727757429262417375199794754734654894809198637562136991127680594099979915695095897393364466832972042692171108255426851009448616048607949156002253828305719142256278773387575969226939448566333947853279426484818791518943358482308829203600367297318863097529808981800309971235502890855957053746043617318280949591808526380931166057335413307274058224077858285236531205552234222722065077058042840262766374554726248257656426179338986796889129040043282392944675750595295109273875453248539146261232935115403248124501166853389033160962605489093856537938031911424284973406311444942664760001633000206960203454712094178621275734674538618035686392652639688015321472030606297455441079442100505412521466444109914988801418505321512085117666291194811315881588163936262738198813000394886318791577957197195039787380356096573479239872654670447334761449726769191139680878510576622074055354327677440789694906397778961164436398322596500693675491209510757257676247641141576204690696604914714960262013850771898343824162141436902831897210467897673080750333120282300031869473440701471698355579092710259213843063395906905466045305975699734818222751181577579261680078642371277582286739631908987082276035894916326626419687501847320061045895148991196513787510031542919630952737014305946202784806142601714727523056543602594004095241548991132598184400556747467569507410602018080018683635127622390775759054446612538237491796688140830265776664029660752400306393820327043755485085610373860123180552766792925216373759336574118371219847019727475265876148877907134086624206634715768419358031742647083198168798784516034385194256922893460258713889503326684008675964429911255418659845545206039306445741628867705468043727238675460623974143462493725616355903860432105522853096178714575075185810097195629813952664906217510499152733011868667299907002419706816511033424660343898136001103721422048842075735111538459478955178360966035411397041782834713374629131241280209193162879489660769535105526911711946284067309328335198625623056323107674020807601251677923351549504858383815978375052339861422755714802924848311633781444860990921824571858080075430745031558309269878872246848756126387572598656776307411595292346454020314569689337149836967467045544520989795411444367221797775709999845778119258229515641099873907622386406609819363792415937944139323841984677076708582620014964762780790348492819836185896226753599900041559574935325740381698185720300836066221394738336283910477591414271145348614430411571579604017309897893565771436036077442650313418308611852713956145382619003074166698124106919635184830243203398162378667329535541489816728898902775103662489500434936237189350203476558149569569798176783601892343135154866124291655949002443784364647140886252640719304464876983143577051813563884969398746041437485734333893939589748166560810494891047785549010177316759913796759351643149000472890395293464270831618164315314725853743937796617125389395987789677143325545646396494401420489563785236319128633089667902212940195541400362916827944694888243156402919027621047651105681206112148702062744822151679626002152035814857056437238227913448841702596358602670549256782224329101082517287088343117516068078935513821434110283691954480962591051796224998276068449238972258826267673008327113604696339353027896314492998655987077430611152679566264542979590125722592005313598423422545859881494264580429982329426065791772796088720679631045808224045109065922066272007029004274125025896082157287120811657390748833165000606023639311890209716784547422360947808739065415622855101061574877754842114250034484238741033382780027809501353598752613839649532999760720569317570376443985143308867986023414804076253601784322040238717189686032368291036804191340261138260532216540260157491547912520397206043071752713058728883155516753843803753583059815856853329533670156172196053216698962066826589995022313800160190836425500315946090310283283032367650618364075136449440580711045653639008541285690085356923970895726692970738448319639189330325216288466762866854210700219470254718326428455490289158439911600556517232708648377139500486116158606964032314643721045341091806980744201572960071906439877216266071038618879079454334371161506690131911657407409600614873567916573832133388668060439488511691682549173429725776779788202948852520332507802726640065708760330537821259702780911196585515214876470536947734012722195598744189293885785060212178463288913180211427331904290849587427243985479348479285453559668611652463765916261936996173464500310844817764200797486680982216949030128102144698614510132286662149143372800760062087406957945428985783079027161304799788244459957934686374503186834443782759401067833831083147966308981227085959280502096235613238023588014764823004013947807194959756136824846474542607518867089136372827656249738397329600183001706568444838720422807745983743665831619013343413939294223993813236537325562142666055945448187128361520386036448341355604919680013519002418194513773335890920032691519571027825101180288740939653184316093290619104179320192493140175004941414654323119781630414458537767250687606278031780583613757657406134263136304200527357325441877960349307611223479360920473495295289796071837527269972962313622192388359753619325414280242823493977635825675379799550752115593412424228353246330861285985335610213050062705029683227258762177233162484848677693234627650362931840000506741311875500162274420594457897526587763755292850980579818148723089796217940605720746490304161921388658771143151187286061470275290555703127188712095468462174704811070907360917788602225089771808144573165587985000466089727526103621535396322165418156727236076854035946151690007872780734718055996076295100440917144079471384803674778692426193959263881017170265755718252992707427292145205716813656566233839869510716680286883371633537149494619969163936687318779258220122758387314718562856440942492820713071320024936112118142643847428990888010133866146330151909759193145433427383649720850284178412620792228265809905100312339545455351130147677657117216089414719388537050431971756098427923724771041652849427868807094934029111342384340449898613990611428610406069633714182074387615911264632874263489314933238979027620619662621292182639205489142451421208539928606796426806656907773703697656563450391158849240517478148608935163958927076563090372364955568887638176507673268516467042496952695669367101222337916451993385328495598824120890755404742263294498326509906608931087341753830524864156672738102840738282865389838574969934823535496704825663259888732412319944660635237364573586468590842781602011929964157125725602286102591752976106899998177055577868911740655857156552579360270937320109059607911538905755295855803460157638529695751955423676643995387637615164007823972587699833074707733812387473261282348711631173617573109677531910741258155471426213910028345390617611072779935175351239940911397581159878855078591536241270963086875087398031420283067554259883439748799271797880479541149266329163195691172530823484486316468214398777014003522234785628605784879606159280561696647028085202272925324581213151256429521038885527748845667063733654351673119150870215501270005060930371430405472965930543440842508582708843767633113468299722636171613709513255212107974058229469875465844359782722376022465357946314964744653225338176033131806820899323514300324274676391608226220687650562827535650313845470694417280212909950696940918793811012698240769940652719478343930420702291808954592231252925167332070276314744312817975009353169351396248376079955768040447562088290542456697017126472751334194555927476356597000384660307897866605385446343470936626177131856466556043281534069726220002293419598285473746330486437501395019467300574337791290778965565318001191483935390781452796930258888586256128245182192622088793203125592104726102993229365531021755147762837433526163610626623595018050926750114224475473032397690772452571081170711820459024199858428667787247332858467150535731207774078406935257191969218569763572577533184874671082560323584247732698736426465407926349110142859135303598468711207059784470063108291870481062670127193991012865600833276539352721613534985935128078976704519999419317027109007451158854443308378257958666474839039007203558273665913127635101756116500927847604480401861167834086036352539757823942247658336454029645430502239212469954067479181706405707595637482511353736396339912947101894452216178490984751521756221314684160976585068431784554300740501794085818341612167532045004401900644895371792708067228736850317690674303970706246404313985319711589466555816290166665744838178162070909516644509041308362649802084935562800692984763863207726147527585035571993332423370173015568951263221785947887774648453199991857679718828663298947661855307689741917447845563177330802911576826603412525207488977971950349955098901753328280304821985220028392433392332601084728093537710270454496812816385318854888408213656418152165018412226680225647440353160162438190915370838316890472845630197597837781005468195564498865442491900700853657853233418677763519312050043032803629792133250092635557596129688747244156449370125626536446766179319619490069136842047793205796059594141736069914688112276437524133926823950290575293300976857683783802456104526375638179674326838454383206943597443828664924470128667129287240927696425646848377035964547030329231349591934091792870236877451373259507227218590812272845519994771567404500065349435001379805263545971497987440336999834208100912903865061175582941158040332375975260384743011205157049542746973761635667501598403774294470623090668562654174788183346949955973702747260691086142688079994545650627011126636243509666400997348718319997111351111664896690738214847877913424169905400996903236415402739860134820204985230097867512772936319264402733700977754960795220545427147170803711160658625281569508687447536580596370782802029119366777836856791189768182133179438109636791092578482149294292469953430931830672209488192047478046448591529522526318609732778116140853889431316477512403470206919936140465337009378168009328410041467296391666932885068757490148415126091870038135582624913416149363914682436226623610450444015634502967703912447160220456420287411322499233220911047933300806002536428546112136681025607734400551508762585146255740533399052178799703143302030433233106414473392641943166870488471323019128941798049557234441664538891808796441198982733154898753363413215286405778512694062860154110704794785975334860776460903579582414257662845173173028647935303608607115933478103905141986938910001259022819433442748243819134907093520224982164597344882451205415771230212541097603693798518168416239732081128663196234066208293677158870933590792507179079124838422196319474500251378893101421584274286542477929188558882894937407459925240190472068711161624117171023788513275854025489459085530684962812855090328346879085583807314808070831688752057261731220747331053573718710109456986112599639157170401286864158995071918828473566474026067557452756127847089899176224885523383228604885722531898670086102228410876917864315413487911285738186812479478742127729196702348662581188563662731112596544667082765866230540597133665947948683536160521529340239129169781797259423020847324445273765145475707861112010981166886751037816390436137293811506561391766370068891580338426352557231776117834121439647704604474204047789602261032069802624993918541878600479905362880554596477417480501269627253442737822296986129171452938556375020231501499250821322526116080215079435900599868851902639308040248808640401943316701622158784053564803461459910798161462193693498686462162378867042950417346419148013462283808783053868327003400920563308224907517547044380816173782183777383574868294488701801636162874216319299802327307361121972333443235290491267960209926300257901182637342329135105283418516826891462172042605260222520586920572910012469343256309786210311695638764229281827177012760305692597029435962655181803809526080976789088857687416826305814184597728680152048773223079142465986085894643268743005005106377478381505146900459320395588040085508129866506906131866971544867443703300988750292249084360685122374215148195164606313927384903202008082283466263214148192939521047805932731482973416587883862482196638179921115826224894069827506877832707225623606898949441104914959492206943125849436690348163632054183592034878069690283132577961282583696367101862586662711398035707264669279484464260975604939726785453208467703413037158604470823456560002373477922464027010797469400349528385289298482156439459248737376026201682607405986922595313439390112870667939743727523856542188131613035799000755977880669168885430719594632383962824177162983314911936092863081472503458322986879525792678639260599828553976478627235902025904564636295898402403326993248072923775557882465762670307780163982053998382665534191903320959680306053873642015140420488744239668051929739455010152174984551194028350086540861784491907748448514736652846138049715419839575575482521979611971468126376433447213028386305349156614110845029583940898700710524650145835461641792813396838684966728207800841504623182686975403802138307623784193877172528874442239198710186402620003873652300212314500190605675829809409774152866413585403359671307830589892333925046082372453872373122699171361878673164825719777521308248059782687030002805531204255149664329816930943750558938218382610297613200975731068560886113710128426359992152649792690264063700770697884915785270146789043323743865544282292384664552904829653836491150839818655060051749527048975978325480237372744664334448565527117265538780726125799180561042565263100567474835297086955820660261485272527224434201858040965495172411168497463032882207153902190370227049977144880064067520896143523515243432225486613328435856484218312339040958146392874507272671184659145433105154617055519962214658137714527070016053496452643159936239834143620810670286382142275767910119191855196045317653163651254321144331665924061524589064627053093774070107429705419010925957797492212522671589237183779539030546248396264497778654677876214794077618759940394734997694971464933138796358704705016154545364665205452378116576447838189694276321294766382177349590053703378771229550987917890551258597612993395519792412602341130886733097803508360374387280986932928513039836030799993376878228120855678957909481143341647593559630661492142434565612054397870198103163616245017805725478837343363664759957266215846794901446352225722235323425141042350284649556919194482040168179977276609008621521837340569077292479606350085192870855189188316887865311422903039273421584863228565959237992011169648597347362528701504993024627361623232442763734186385725014466885746369731234596344759838288305547917810548783837131743725968456646102417943821003113445950062661059596586656716395012749252441199529405593845457532262632101863297295642104157077026740834175145442533158069540347174029233119179502378397431112085992988251147768910504239982834106112278959764791437559459793248948718579350967495718194900391252555303096157041656515343794499826975517971429279365361750480815705664972820251627958334728901029869995819446953076143683739677967401860673508374830092374069916097793769489969711864716353614455493005177084519999383427493909915159368268260189444061676247741878981287093764798008981916543982310945620513499148367555374001924822446073643124371517357682174676241855182629581814182960467926139138889510922622994112242811567462591175625185892831273349463256039912436022080392429726257188720473884859668499681422577278926038649263049238216552395424510965299246349334273798887850007123336633134416631266078441835617409931218023447788791147141854312084292928083411601807616001066963501852238465880352082325533659230150874641723978003690464008447006693323511373964765688254054341670002232008261876250494387470317870636755913233683060017261288796542345871292700915617187322383962288000015971104707011856293739550727468843590940722074909178909553049317728200438982796217174551503525062125584856378688921262969326576445634372034103833905530317534850471549258472689875618536015585170158108759529304699854760582432518308696580366112514297331283564088880335551294041473963498245885396561807468649786650343730915547080956287058226365071788753088292017378598376172961731736895577831783133981843608287811344104777068529353699998284061586158270943385012373779155076620719522681779424026114793687128350475168328924779048607134917678123138646361603807527439114085301447509063517000325732486347236323225509436865275799121010486054008812501448944900049739460076752316302519303926673698483393988783002893220366918377100325207984654897661537140080106076155018610797227759958734676014465564695801145370406858781807396092264210254752145659659393771965672759694279305716492622552104692363847536667532389160212074857124610074191280870884053706455127240473657833867057205830808360500327227520512285943230279349382525751927697772162338049004986192399191091119907228702349935161594290001398058996705688809036234919830934862514631076418266642907398402216583045122188641996838609609520859497485854358620595858942570659976258587541967712112778581245476837198059787427349358516040028973556358043073103223280423604673516791993044717865749962298257703553499843697779893082878620199362500354628020950112141925839195689935538792263542483178505437304194432976530871365487532942756825011422214951582855711425361914571758341843067431691210133713070429757316561259708800713210448889913279537698458550207693883810394749586732814020436077339657990045374323024478610777331072564139367293563681481217440997729051135149303784476367741720515633147207820342479750300702730183660496374400650710472825731985488399255172363204625391190178827200398267128074813580210623015506834408790163975526465669181334009905549090664682336629942223224096666056938378436020089702611441025968924981540808398821879746520644205131319339942917896120306220762373008277747686759347449931346158816750527586261504592631200919062913674339683643430483042781907573144443511920643549592057002305135012535794405340889297489035032754200640149349027289370094254220266440101081900580283285789482447086721937181834038025067772137272221939717038410049205979811717154221432178277434320032131054903050181760054549272197324541591272000222276352222271135194472125106781160216104692092591654659776790627770876843541010013392500362363586411017181705289336642514522598751131407242214980475629623684642388500918522784238035990161398934772875745745546210869435259024750872921314341822702297563861881392961057134491236942461569202869928774434792872028811453531131077379592853214968659331994614642357682026833186595665343238142100934831787996617351520572534842211400181915945261059101160191710696302924259073326740179056706071360679444952982128793440908297708027417016548584525128184233376017430085350187622834329647126291107214427198365505469107000988783403456846124306655504551890607790203966887491638356731667393844608322287253404901657042697440457285141778278949668403841881360896337641073655674463823808323168756551002596128532271984567689085468148403067980270179947598174595589126663917911243288549541170865958632420089687347035658645218886131987890569409260290208504095588139600486861519902110075694936515335700171846139628931687112838231446873695372693555483543817886793188263865929642687655795256018458271298165743315481926399178299045678327896195330036533990464642812423997584854377571395968346146867087133654790538829020636407252478561457905455405413065031786619242418707105753811450487256266812680846338512749989402903188096119419715529398278858684454019802731932353956828474552107382406415156064061712045069582840432562101510005156436969990640842223667429271073664681571357817790934151110955986507117939106787450249845528849218597187933082571153336698107833553456386069726662354729746717495514074054991530690987930845148045480653563405918106826152286249687510262838301159208053426586325754335929722860455199658382317834905309717113866213613472434697803699308533961219605619694315671150725618678918615196938150380663406037545497284762233228017141672367632278093924465225370663664914551753291347733866180381954375119749089905904231937365006886135165933812456702753321749574365610367679254209597253634012025985115446344173665816206244015907948976757307628619133861408436172242808367003728643599595604560753070578876066343631885385640042378350872752573294577445893202639863389451499585647475795408385842620826347175645011037506143359922776545462434025008410291374191424182747522156817595718748192810060516955832846305935060275350803819266259451588891137215697708189231002718726681776145622271418115922417262095040167752516705149958857424134919747033877977499579522242517543210614161672396661409088802314220581808341883553335849985026354532048098159463841390270115353093284520533813518170051035633278011829025121475406966687596580834247347829661322659146984932911147782363603806473487559184795277970982661409413620393179703666942176499080209341774609789412332545704857596600922668131003788963234806905750971639323160917672884149471024387019276494694164277071684591822546872794805873260027616288952756975688068116696466113957996641965924455118221888329125487054872097344178109468612704681201514971196955439068055119441100731375668465195265319973336320889605363311977332239350901339527740833485280078782432899531057157369382919711362809877580184429291775146530634050941139234079897268798171570794212562118572620409178502446595382807467026479462066604442484807856720962515074666015711269246275210177807669510498552273830333245053083900072597589992926792991814020096061524083861648010984380475395763949590885522007506036255180701568523284190285477501722006836843412347365516128594675055798676076141040610123596866758704729621432248936789456325179319173956447782969445560896396483826315159356732623137166860758793980492515318818911380812690809623222035735548093136624471127306767995540767741850551510359601649494181261020059310539433972257229140512335903108109958020524132417939630655241654879711129413989914473810959987118499637819883826318293146109139525693381232298449520571601786172485827633071614545242739376424921213313427236171700394542479022151965004198412949147339348754583694256099383616939436610121095548437918637156038608548042436933268865886336752613696244618308062810731820642400639862308398463876750849439169574488464528837993254709761580609863301823465584375510828329231467642191648432599485858762161525354901567189198393427814475700828711110577836843212270231368380317306008858594774676234004514424630404642158521547362643140550715824792374383386323815685076179295924109702642749065682148517146844167995458429878465326262378791256306845210471716987533565033908636724310570625755460338784948047097444261178492788362719013415813480274159226628025130133187194394780075074536631764472273064137796170793988679810480929563448290063847401652445331207076871258208405084370340988046143802835349418352540898056189759711656517308760631642247524202776173746940236340640753559871069473124716136055482287949799234415607081244263032879145343340179696445886532291426673999707770863177134295527184458519412984878844299908648078238886171414933117324547292420386132568549218406122502313477909592524048020092180054790383854492876179698286289862512889691021952541524903651370331540473110036683207725829204186616577539070312669382664094143654594937069440181228045833693860828652088388088928977163326613939958987809439543091569416235428424884104431852522877491814851308169478439958726323579414134818771124993355932464648064198619712369158943473202724687852596055666682370026769604527352808810475119236616855761831703963111588310634613645750443087330998955346446335431360035712319527842977871869540478529484491427856622178042884192448905811911990501280045194429739963068481544894489045686246625459738065305824424739925748741763333531435389041266937392776618910947297997815325358215343495342198729903708483852071690959587212197821135734884087419178169490676734908484464401133497830857041039597423857716197505333756523368229751392110733671278445858662937927594326500565930776703542251443953744041933676650671109222828286356691846221941785689522619592620880782885301334486241417483355875675628630427188084864358786727895095451303496374169088246502965827372514527765017186616446216493879898247456290601834782891388072018793491479183928064119195223847742542914909871615862580766337081293448902378225239168308006518107791077420405422321478222694570012008706533964437018691286567109314828662108172107532983300850119834843703275869463662227304225791434888615313515660087720100617610557364923427658186040159020826345585036535519583450754539872161121342253746513481402905976171623823872811125972080350330912625955536865397997904291285264718588958972107683768494226791165609213223813354697441525560118955176168046703350160320005685435949114204904984032542846981965835049998922352541895842190184435282356573756820063105158599171063674538003054196925119780262369041911356032251315500023512462577618937950233831485735773027893413186684079816166926142140498572765111594986567915615600444496726057826705133520714342596738600992158448944385262370361576213489587851351614958515978631436919710681081132667471685633194576402189302545557020178682381998253296005865273430186053840576174005034514244305262983906078902853774084988186533755355300959631319909761648691370279473105607058972428656018526526396128046184806141132941064033253154134301852066538329178983159562875823956148800506844354159645529337527686504054451381799961331020227293770983830631889153657901759395302974455526058625808696083393468406020314773143085160980232945635045091857541699488171084270770759775609548550797361499454023616257737972746709869469602131617090296339532142942278650736408841477184488927616253869261484690015314180299248918311348526089298690891717165646590447976339376224201333476207922538358363646348649171969448236012429507431968359311246709806944958118046235082961899057160115067008100674466577361610698026838135950405152244902864094180472203931165405741377201476882646316416265473651989255569545161766838242274620024021966032395259384732572238108234869644547609643239426919423980728418592125189828935539372561571242476601806333937538754466553846122502404158999070752711412794470829842181041706374770298680094690837789049943354105251058629180116015716704461686089702525023758795885882542729543735303305238444978850355246932123799981349791030891245680152738071536479332612635133144598818452285554593411815474034897864407885438281647560337503087813405022328637082936296615999053699614978734307092622043892698981384944310742229133142825695859732735279167604981188182408281943698617950996957713113597687722927149353623679233935542639273410256157643101059577868748968089053468002192753442052011075113349678681295707408930456536260523414515856011281007519092995687927463131334208813652950857671526874597806256219019073313495022158018575943279788987086432678640079992933400153513555897872969570350068445719203614962485173999860174233710532726303483275688734145074418813405335701395169855297162854613188771824974352850008314802544982520227077264630803936133521320309797331395357826100899781505603853361114377065647918756562756175735752782587273506430947491104293356654591315026190430864952187934182488298260693281700177702722531476670783087265795839241205870451163954596889237513213119013335018669834914475703897223836839065976581769957917179543309534436473935022581713361365822533624142781771264413509816593023892639502000179611610559303454365369740408973219563492523631603938443023861163829219059380593025637867979883735506198836829249107509262914042881532817924397910511507830337928298558621615626496145015824675992892639324997440629633580646254154858415969403675501846870338798855228716441142320117750623102075902027135840289345833263685364826711290960256859416196259458065638949970807495654817516919356949847792956691304033127064112912000889326066774015392776140105627415607662523504636238057265477495615159311222840473465071713928481702772350969748024112112891067665464871756558979974513694916243226569039660014815087881063352816456380064180099936585002499201547266685660479870312852316909362569849984154353232797825697893213789072248083081241946029188477184495799792427623897008258324978585421085170231700247966952340428120864103393833183638067178313692882999818570216604497644911657265779355212232750854782350618710752950304434253199609433588099436916125292213573178696844744678502751147237878619230072836730038842693411013060184505376133363683824886266185124434764755701904926335550477545596930822142706308917559321300028600994903343200575524347263566999933515213583635535222226836588170840130486910257858289658233918086655110641777871571243971630693858824889622252676991860469990029779916950973027793768790479528199413469221648215550329789370538525109654574911449330201516571870558067347386235500204329536452158857588085019412207087078696425185975817802367381007445548333078731690573789968388258137880022595949349092707212710349598515238836287720984011405498409498961160285313329222795962650866600145348061673190953010553751852968519371050445510052316994093516516311737867743845570347713528143350666106647111263755309006774458751772112263419819418118500514045987937604757114999376381371238948826670605575114676882677594069291027655576913770156071122207785749372328619276922619626246831232570302204216802653989562298484585177092860013103167927344315384740077770273727193981297000666855719924206622302012182526946136051095235434146473311403956136791868832460538566906558873505853629243391420246993985960228736321736693220954647431284302844263531151978073016943629647240099260639158365984466627055728378894008368061297436494841742177750238683951273967931271076965213007701711396028011072772294418169909755961820653671371772731751367754510105925161214073396746938235004868823805016242877120081769101209841348581781327187148173889088154875589929308595324853954617092721564539665784794645677390317504491513609308359731441026246688545734397702967264536053874908279608676076481042955559215818148507315986299871472696490433341480779620240370182051534861167853715413677789700419676417207917983953480148306307308768466513028706823112630280092944162674287531255252955652077800882124818890425019376144455186246195926462826347596873588605671405467281347071993407364444550580127593113417524785782898303699807618065623003684777917576850163478081780097698925805331339036223507162161209709864501901402090221804001261509093593787224947854221598279359907864101567730528029961380285926011493293978980023343292726175397152705824002668388687955635430319357812730156698880708297705864504926253373028064428483527154342691312234671925496570313598293443604954310070754918045395079214703663925277048965923135634556635896885699107556416188840049681685989875678698245528039245139326756512255522388451224635825919087426743216740890800682211964800861464637089103691359096516480174066006258906571673487030399822154502920349881093831373093733469532095053025496414262677342916678169277741941223177022198877382798150738025829078452987117932517221407682617349464915607352925699069041703649768174666530755839377058143228168006870721955077055659104636617639877588776374746338221030116626164405664262161784007206338125966188410865489544995257364876078297223791415071881413118538935477303941768407504744213189332199340736807441913599681785861712140803285988658767034478928903413857949065650799895846449279204336814661032973912937145759183173144126639408229327595481616893915781766279845512294917833485571453636246019047724834557317258157837506658020867155383719734817848053492450568988158867246905191608472523888364407414941286785866843580248798251951990784834933654354248072627815586744969295917258662490332267165074082499151834900486543654740854863099244676397576533601604240606529649789073529217807540772010791000411706190775208042896593711225324803146314549823998735693201878220753719808911330204456700034955003049082172273655366524199965672228122847981329077728328699804631314690413657842404369229740999009520395985107636167555095268217835246710439298999688245522511230731519213372255968280690830735515715860460157089407039053953069099774263297170750070316175676462963169134148780284453219192318860941735424527570800780651178467474596207780010439034582064701082969851170794217533949437652418139512703353617876710960245297877391763191558730004353637935036140653345394770029402041505177344951769199823953401744843521606531079209155304878209109439107015095741703366224143951354688881798658079201356674524666755807059517874009454222532428690216200388482783535229044691483343635347308374764117792454749934598160680911573877586960015075720273385449794876138063615843789119268329129563261868688409548258640874425607999676483557916431213473041211471525808048435023033402230136976201386951794338173605411949942121840742031825806065057985785769375728277846499242866338796273000805993583436814729500091287892053800850867868743227281968417400168666816736391301790910034706183704510276746290027166512388473814901543582638677276624731558859463368232958931899962601397057170720952398633125791081524301113650786175554523143427978372813202488950490928223311706171503788289778385740578462962030269085755903915128813888438083373891221111183722478918512708304206403522145371985567994751171833486816052703823517637541994826326867711525879501868528843299234885568570492033376876374626302296363721306450997546025367181687803783173086719337755018288797299836030526037122892222828296978689975109224702381579574150777004523928169881568170099841323880592618573090328844055437289510447144703622437271431113772859261118396572012089337510401522622438948974605423278172128668166520559052881277724355440542180888672662520725376743630230874591827404426664278133797743570383436313484101290683709655855801306071138205639591325697649808391007108870764545593232261297672374426891021312578079273046160532357198058452248942845657176643117772744755520828123137133388246136168489862288735735405536784182623073006101459898257314266478301442795940387709267426107166166230260797713954261329122785021220730588087213860565884483235443767707824302926950064730143608563425902276462963959300864653006645441884133214815282418789152575271761132232461564042712218931417289687654815574392313651389622542752172748596674603754936228964886511506336882496368135547437868026667690454937812694375110020719101724629949561718046670804132583500307430334887647457802040466296975957737450106343867706559226884908988976354685852157086195570747282286832851515681736148377565567529206926318251776336549484667914891012698955555989749801290682696581098808217041187590772454066939538512842830346307080126164400147446197888929229477963312381187158245535286285700721112898170305723194120529837656784028020952538919676391227477470725340447299685360846164240440481439853342418649650934634070428139530078446784510402292003183098780464773846618707349054422157386506350470797005426597867365614063312618743030106574667494121353798031704950175047625636188113536325959064761218037249037074942416852915196646779851573923913404160254508298172291729197837974784603724614752793171924392352374288852181883091743796007791690379938825886282773291170038063943622156175317204115941444785155859121341379523836949983006563587666318783666312727939892638882579260690195431130956812356997422981110156635121898881424652112283001658615770735469079878925719316975464632775420790242579133161528702968780081177182237278195068636264989013630992320068123665666948903721958636542124633724843986876600688725313775575786856609639939204061904877080710194732835649388500856155299451562992497218476164190442051848621855061779152362716897073800781007349308717333531022121542065130744602404480536684223775310272801995552141967122505154917784578208546312433100051834267693096782954476070552314936264662494519823434712933438121887629664186317836266697265207693753136680465123187407178896019614619390318595737585459254467045529463922600772069037705234217781416699373684392836177309764567130670787938156682366220779511875009444771955527019987709185622464632870824214108424516441776771486075985729376532406265825554192871465132871977579433863666108663196741619001554018810965381040503403946384159202996802721783851356078204611123390267598096565246886259867594814104216936012257194496628246442336481024281048860104777525404963914954131836502693959684588007131868258886814860563799634171674300102496888093406216210845728501427727498739539493275790754525788248289217875693206425460601165815908478790756279763157717599246718387033393062033814111775140317651204636742611565515514063538751087101410239155946042536346184845515835766074639333209070430675815720002469296949163377601095587840688287543608494692272441448903708678289075649012142499961545361601960138888050067158049714416948536749443893214572018254948523270931538397435142353466965178369670182551851761460613994879957342157814740997687256274103021251749883600653249780509767284089335345105592476042420993346499408056300580260967863591257104065080288166094111937973577533227254137383872006851589789549828044806789595016682716930642111894195026517000050131195257856954498474632040485485891683096142444653226977789169807626077736869433244914570052843335840645715954217029687564663383868344683362284124496769162479282754118875362800713656844827548409365459639928429963130321680821293071075869466818768225864298715757739797692951560948156539733648866157566654576754716055510800092323563635000041958233242999767023888505836830376262034160546223000049824900464518842704513078807726874090613493215273189562204785813977769263519015626047914354344125314566887724089956712824917238992925205733227127732819335334501565401547921431308758304750816928040473789153779202169298335683818527271642022411945058445177600029311980540611781623028518854214772848487960268954877506271318665050673260843666760985407342152919795452739665000477725436139122685662155133695602348450970166169970621127715388339898738377995228717236776651953627926848945234208574985228872479911783284856852269300096395255727710162308398387174267844614212956233132069054237071330232664768199129848112127774566477617998278794694742691172140473455952698354362470744891843884916477621536026875944432889160203671779197395292959233138657287244476236507663680254583287913996623731196851458270047610089474962785319231585466538136778679405270444431521382344731015079096149170108994348673186161191596254678092616825683085081243210019054087275083160657135563773969333022465353082553948951949842277531138422850275808457430559484448751338352844070098155195724460372368406225899279331609259792722621773230995505620136453876365322215455734056491637635979609345793417032151199911594471490768120540875323402300452893259830555205314607592757470866867179170180612348564814830014669623695291629991114882063857030435946123499742314444291869466051834093093249279984475337650024799452653692019165169029379175718631924711854844416385250908793090391666393895379404182901587886955798353120860170988288182786964096131437843950462678832512653693494490954487166420143207565470323933724768584842786797969767547647707680969255003853337655081190715896989140853972070144065504112987617137779443304844282718911601904123082594389374124267623194029584289734311148251717816502813636792541096740314846842065856621397536070377020336083659304180240185745512551144659812874537263788683524719265232063621695261846232660925645020068770683598616878939082342055603635042739262339806134372585462833706286467393524485041097752579565913871954509271000024517302144492454779685635451410546178930764873517801882191141630879126246632885461725120409606973830088268880522222432880423432312664499294274502812996580307768990385863959989792434003379105176017295385509070532375097630045591745505039099939581795522932153438852829349853046653548263883634849869434659296645570037256419464979209016110612310025865577969961776998052366778659193710182346654238666538804114910350225819131994955125650968417108568903782626640306310423197609910032060793719469482977482035712177246259136819224827725028324921760344548140034111235019906066324979549711848289726470023298169256356525675917909521723376825367778377115979731523941939568247186943069638161728307234100175616701291297177106141022092687317638143923147189399020526747532190992415087077331014122597535743871607077109935435655320227073922207483111837057728415464477188381488187288980075554308102174290320959585340980291731578028310027390612627656570328537310373287038460272841989050412897573115635819981864708743838777859609786373141831380258316170236385011957924245315305686348266497700639650471820315360090873098418235337548185187006547889855046789539234442782860941604268298376637320846595311078495081238287778405841075821692259092455838410264503551112789448422375513674484330748666944016716666758489688000780288864976121444214044198137675778379479388700554463222764747107547778738882734209694048866738231023945857409942151502716891667104339695435112776021061285870935960033344917084021506470319239187594906714585908081926532012094085820542375551211802357700747022792541650274017990717535844137692721071411869825014706701381940178100388228351691517292042487258818228139764156265339824703869215011074514398603132189307392092901592179453925127015578314639995406162964447166387309917544885614856066508146219315909942608702210483667151052088190151214588068839732232501765772530401154042093256715397355923963344935947470359234460385549795497402064758170131791144052413707066644987792661572291305006650318557313356389240029521325337881805375437162571313147072569862346119702222544766421200633756664439996544209088787534515129234682865892113475644116738571368784537411466478258676255001797710483710034300914579734290651680489791457403893192480309003668021226468653423654485668949496869673146698228633059713424656117513813903276474588274184785657818851637686011801805048037232697119025698003982163259165210334582989318569675216074547299710484627263536921613264776994852991670115752296516543611147896904357629678558607610490677457587460965448453057311000425874300842269492718136273111551635666012958897095860381660571101450888223829596982800592306819487548005057804681488764965204645881013186534261106494829054055046095243389664226540271921549850719616984849518741825945735950930764134914690595316759281083634727444334196217362206397562631106977147880768513180853819277972439061281625844721976412162278426539445237155463612015628813392436485647335466545139366051373925411350438328983655953097855853594615121343930956408069049100502678238786430190155866772880416709029303691194419621520308914275935245483116518547103619946252057002911431015003685495917624394940494714013918336455240478841138352341078124374553252736410540664513053041120040511189967412724420058310695386664302769168424299545295464094021469650194459595964453393540013211130711208563087760064213083487527009523033122825799906008135485245650136685318301546362477863184393373054807936775552345249392964090703486101314270560342247678207210828419812197977421204392556002166598784277223678811056460135801488051420156587493689736469832770640982797099275194636088175635477673668678869475448746215068014262513120846998019901156110140593949941678811286916036581422354740395297041265923250443152234019896872296610459130153762442589584189055345393899066690101038450364437970937358539680140455435370864908706542841232835070703398582241056778776405530525776707204991135074584161957472292128627618554336945113369967042330347986511115507376688269149847915352858789544084470398051939834257921976825151736631188406148740781489622846281849695493975139672595981227647323587920469628403004026626472879134457065421679821958141848112176775665174033009953491985380318523087072668793128492096345537970460789706453689460723742483112739999725694162172961622128258483027537749820764933574109588500119934226953956031842946669040298662206190056229483337217067302782224353836941663574815213972775531870147113677587557305970058116287946690843310736151408823750862043098924972644564513300536506074423308190474760168736363770884192625952113770876874565743753724127209753105260712171370623921727497450438156180442758361532796413473370695260104881923914333311170880594895876197532144715483970066302585542224515635933600483456478291073377444882890869770411278479841539473311426870829937578266355507626619277446562814976581060086110442774136374408473043612671010009184011772223213021620391280262290961846104792908517057466205567587146951239600547303050736232557977401369992608218076849758288435606990253092250324239061100301163523774607317820406025406960732186602188439846925181338333334099846247877787777274258139291700496220686886272977682215390112665647123837239697919628029471344632513000809267192875892706371042037523785348831299517827687148301738063073628009506176989316777460324900106221718406323036666923431308648675695640058994658889139353861184287942221571226089656964587692565606759629200170379064414141018154786526795160690600556701565690505821577419900402338363146988982900609012237808390136049237852911085802517412227480151457763419522143565307553937855144884026165283500644444808019145911321695524023107228293169113267468470116013854079256222110336546362696803590131957010457867906908688370867643325592222100095945319921820637228639901708945924789281103902570005749738209939758933741830898299630031528326496223377910025724361345452462576799669711395646743021918713785312865334602647747525560477310319353846536034396253711615941018673940752820676058291402735962042717943690481779048341477494141360041844044032978635061070116270249175981379056800756036015982072317343406022589135312081792806830288794560642620006661160976637014527344934954706204972287929691971619680907047570921641830001606220604948096183758010587112481573954847014005402991111410321068905870242813978556952939170309422026682704063145451906500533557902268833187445587857137274932577008321901334791155675220210787505459375202343072709234938783470626108471668172581738323766776117096265099675602939501669706807481511452485501448504169372710269845798970369754670987910847856360020959299004184431268949153612137850688836639866728913567931203003399897752096816091068412064899138511971148714198388352814909610556516107082783557242261008397495744595061627743462944248128359869875648706514441200838455374634584763439462786062375546985935968499801580152751608123780728663826955827484518986950464025752057776110208861857493723313942397670474070575661756189590259188761823299861263336681793549332192250987647529300997081769619884353012976825593515638144281812759764502705540614035221574560379098759867221041813651135228960837947310791864345651534006940379670708980963861312528335831709357283064997461584265849486905164800775665024578274029601749538027888903391819696658059394008054079209002701165825796028118882596062761917770633684973605144016238952864201325095723469682879838632029935861944748989490422850797053382634412956341895314003254848413367068249166350306771959904476255285585887632563886374983430248341097827328824705758179571150118029733183147766503506259561400452104914452428374538345326538843690319733881983649963383744554804031218492500336532224060758567952928376403192817585876517475852121217847580318983340113913227151254283704757688181456100679527339724459809318820400122777693744938886648277164587577300130329650162199406415116418990671757948157128216770873433244134734789613594632466402437971331527688559350689875919938625189932134999828579535276548725914912668233664297408378960990474471351733670991725607978533616244031962400554334338508796749903724849434112075080807450335229258318239828596632360480185515511255756491916765558004984915266357782554026208012006150980697313469353547519349092175361703174489023307380027122056606719821468921944722626454654893787346095196579514489226726975924004072869532808245124599705924086431984000014963698016499569864013858079177890623202154666251640103856070836460811267876807971482298122921072166292434797324211777656201992725301036227781879262208928307595961149081355123869996035091266570372373033487004939795383764223688094767237877867169434887325876460519077797352757685129581713559058151972036997554250251524331888041815652858858837651643625327673675021152387992449126456137246621690896459945431512746920723864883415771645600987290492923567028266156139799924451363974095098267347846772969313203743401152862130805999992558883849581737082318254428903861290569111802797266906523431961045176844589442267148830267666545500711395470596675199381840448465892781294252903517786347432407372143020388129033677635926198868719781289300280089889086199911876144537567072936056399737589130314570930930579108782124847403367688538388501486898800325033264100605492863474208236296681211326823497858545010947340072309279027396837594810592092603184102797932773515516338334029426794376544230502748372715788285111337940271128979265484916038701869275807551396788644267125042503407341639279473221941413209274232557435692794956540530821785125257913016232824251899713889028892399117296854260319541033411931183013960682915955391149311513147960452744826056748213581417845617901580456822844599247271148657136344564174060274713635356002600662231494828499577376670830525435946986613089452090467386252672371154020515520025926326375515064811886214381567489602839661415674395076216339689397457782569934977786008269945169795185815218894804950807762956164552895841048629815848401135251159865627372278915504571101019978783977060971601183724473349207255730640510701646962951225476288302847174456717014153928831321204396532484243563469393135332418760758685803440908946642020662125968183640335417831735413399363794484724340573712627390155378777457460877095719865422797494853617324095769017456102578055951942863467952700439974219174648717395251419183778399001698674387608132365867984351590459147008045665464179408291117977863510964799459748957100851532740807532934191857675073119898209614071470150738180259634092989860611895118906084760585073955826348552830322724515657472073794120119842028515730335836007507452647935461346079001503356042202243860390782851207874355353523473882481079276911647946934836405917242139793380581746297254884159108217553178473857316688409937588724684255063228550158864894846837259402421296511062673984240316750932878800059724821437414130251462166299702480372244720694945651294908817860597425400474176346738714985200082892305036542367204357419004025196094468512365238352074460177860853749236632115405747216323919836016447667944872195174705996444718912503413919391038880726325134196059451210017072226902638338337642329354285978020932889113585157342754802266927547713610874600066914787433946214361122441089717976307062650021815542889183844549162543582750629656023887046452241384636535190828396246591747599444971571821361820083156817998736243366522249810799982433389673873590225294383824730189245032669226905123096618191209519892983024891451173794748102214072423437027041807347399752530647914623402114679036413316270532723421782609777651894532365084351521741412653711475624184661051306221212642651425375786157308754668866588876672588423561950703879055498064216887284035948191390863089163066680002425454022276761883225216669994921313333517848702892202871100860384022729006865910215292042888941737240918581648193996331787231683041133325228012038827610486296203062203721277069460370261254889297581980354389742061441811908624241213509933194975579502568042538617996055260153785784460162151160755021360492173240936838713570304697938077448547509626100859484360533495057460607669820692711608252972422465822681391159952849618632320591803534081924748748957949402117936689936173649534112588700255979579956500953154551123985795929323211457549975660834993056870730284092051960472145638946741586466406801663797588288860060014240071976406804909115461242228271890089209348562900189525622633683653563738236826888633652211300678335540512393346647591457954712012819988215031774385785698799499667011986492156276135071009900838193991350989855044598361523520056282342600514113243358229386571627270592515187745400878588438763577763989778157062562308015952850316349717020525276432487590528060082506100636985087810734794242300101702163883254607051624920940213248498139656846659258729599932952573553852717883015564725600638713863548184331393062181914513998982830321549552292267343423117245986760742492866951902156577037697999885615464369708389520063994764740656516227302301063406106969720009682580788993570911919042873187853471203567705548623732441873521576827228884417695210200938444740144339933433396566167487121290860168824083377759289359917299850361167009592561446043370451494710954991133794580577209146040606810091649165924033247799754434814234869806354796587819269024907861436557140755610644824891030565818884113976612628229258859223777656126655400975559365036933758362013358714920949097982619548474966914274194442532847768755664705176561861988064728415369772665336532348223828421227747696481953678906659849482914588351208475523110932491949679703439037014685499454853200201473704572076724941009993195567898325958073045606546895274992509434504070593086877004545922154183808162324549166625790170228493449656720888964576665853074874949769889979085891980694063884155366470762678133496559359089515155807243531766369091610402290513270645646149622117783586197873001190579392895460495926664665731362425820389229293002903604462179818710904011494485073005280294814272576620176631227985081837300298731331901056278974421299967161119244815131492190075168994548250765414571254043365915573669521918022646803154256134403817849212424449522801682459233668760717692187984010242168582754882935098868495056993990376066489339202676680719718292385561526297864884123426078517804373976785913383005776374530734602188434322637655099725586414692268295669710098686835452487083814231884539438518846588217190453604212667931392268820634541552756615766463209279237855670054537897662950022220329773207620935157191839889991488969444103245621374099130533743952413231245876935624131543617233794676510990927076705814352319470920066534462243066752557671229416488436560742442502925550715212006302152115961121108784106165295957618953259239541880860998554627287143511633478032059786259568477923327144500455004360221504852794886352118716775211217402350797606611666670923835671077381483767415133747552900906701381290858514779813967746539534122567197748252681125676969158805217257090758814011484080870270149439433949018200176918354217400053738325660190779056609895059108189889990010870419199678853265980804618258838973298695948418106069067251900198402560089465572683328643549673317589632920590451519577392270850098238609303948224958794124456763877332621693027711650596194184198669905033470023845263818973045494917244932838965174788056314878604106338339971282990309492414398368127874099534805662910064738005820533199585578872450523291402040871209616119188793115122990689519676158172259494296367205335543792696635813076810048622103666683697865816213937877049737512052677046920336041561094283229140968903595683387951718517405134768404031389557398300536269104053895598630958665486699404540937495794468326695812000187048510259057733731905678902859480880916275640012836369195470948587711744528929791722484940050140362344864280266858514232524234035429834296963461068826374345624727265935533742498830024023193199551084925258478431157317322951273228799109498070356855989747432641230422174117523612071410580504434529846821820700489533917254130968171979569725346580993248841957906536628824243545681482946481894325151563312058893294874052273714047319299995921154243260112377207963593398860880426250690739746066786988057117983184749940226482040599713503207570443773588802443821443479145492692256081528093485717017424335441064626173053370567166439501607751526921520510355909815395668228279358424237917399663744417940896712227894794273665641342992472333403934272221075893778352184239776419301547887401637012285699904181764933275460727342012535916055059232616645526117601298192316523321488070122554997625946162004497238699643948800412242023853166163759348988577375694122322533371491412621627280200724804195063098059891792281785126759346292869593851085969083858726720374331420551362937600155883177742742137524883915354577300897872304137793596267506594148523127261446555573333059671440088594561171921311975701000279482644837741380365806171048269959437638171919800328209494183451971320876433037271894883662914110786871414296060349846337083551471609531617092861237630265407038626677300022152705955307571183269843312572009056298300551592658019557157922260050624777931392524271043787857015301062935792551612784238178100687133877109645779281062603914164185646888695071025152325317236069872433184071470225758832587563168027331557170970426345341285071943476762477367235228543563380902425437221423852041440342463883540753588039562508147404531458993683832234038008033236682180119861745764556281718584257856062994776401044815763286112667042977826352182848582636157590406842711756547166460117984134657590088075146663785646169666748540848381603805416051133184624111397735509448250437745976131962886935140174622576479482814116785661894319534966031409234733551300083497065917934535141972013643934851124213664358881043021928845255562160359782110026094737951323555974091265786883426771447418045376159424863930553228576310923457719150469235631174154019248482382445042347766360967842520669586251999455273330250140959979738562498187423458135285716600079132463377407578484854885988090823523211762015556725579095675016538345064488943158521427828256768097606435903427719907740266944163572402265885574146297519472036628403703161547343171481216996529268039342216328569547508089569768600501767843178765744112148514589020561688464044427049476672139797877962771979224329407900359104455330458790247735500334696862979961473966430241806791124914787944169365190362544620934356629093499410772573708299319362354332919302205154928036963198977587619974516381597615214121428378395268600122058746480581916786157565230765445260326650588871362484080260329289454846416897389820576891991084742018370028477289304783583430174798435705660627277046204339375005543561715091608462783604164520742422459437064703776109656240589556694708987600194516228146388444340746921719556808382402376651071938368865864715397935188430965526089997893432379549890940438908272640219221753669237073308110228081313262338491030465803476764516300743703202405692243103988864898695353811320840716892010394260213543959002205569052074193103995614809424047221842962353121412951562768899469196682805656764582552669809095281995012016744282011290253138040184018515659748712886552059047653358097528661470039867131012598046483971700796733936081454587992689882316995407509940362383007410302544808724974217523907596190569590622156541574467483091178573994566811276638727272705910272578999187831458519335701887646535155602701610043243557958499949191484065303828426575660619078986148301463508907724985555374120226895041771181333509259578078757062449890976459653393551869470647963890778272173157019302992718064462732847490714661384592883398032623577828872774460668192643640693674823541281771581929233253266257891209618932216312377519411618860245649297787368200589021543011426960373680367846775110276874555829811478945160258081673701674642947167300207337818741022280990963345006987561838479519901934211022205765133390252173673626830246334699199451520719672421470055837331995743376416175181254910420296668537622309572023694887201340893090443518871675238119478263798562376394124591328387407811310765217040262715330720512934506477351478441514095982465769014840843642650421145878597364629784874744317916732082650197665676000215420559185133927333012329109228807980350416220190232892870377530736684022008725078432034149751245055267846082284413365763532671962362800576546927851580041134574499062005581539755064274185835837536899124023519046892107595431703286968097390425820487364399366643339253186774121634708553731006315101239978809799522767138864876205545770383444776349446769249819834701733819798641129403154316211490156335007287969028710176443942114831606019563685450841235669349114167276422299758674933032687299125794073337738197844137269867470363513916594365570184494976516746089795374248615291694127425315871369880094403569553493274775885829835779956052636876187083539951528224378385586846979478287479029816947774339221180386002873745733488812301365882303814554808012592598932240659344318122020325643156175239836114304758671940153482724694568373001970509521111150446037727376812815541995815863390998712486402871846356707973517794318574500888770468775144434909595804605963300191574613717415182496689807584589924451180904716542769302121538218977277541199797371820163118196084387167089569848860650520536619205898335576094397925570257117738929366497138145253855873001108404675576012461240618409670657648642521164976715135173754188208834385783024854912200708947123041141885132564629149101321717580941477183642373258888763083444423313171652829158471283928176418976004537603544605664051147974071107950826010043383116661484227692948361991222386819754198617986096552766195648744532456386767692506106850789066160816202785409582579350804766492309757684899018838019712615192458197692997529059660921925084911971376245830745215496988409860323408065822671364113567716565790193205936918543449501693148818455698808729793641464670506102600490945494870037082199177645631387605189799239485484392133478601793794013670907890960671964494086709746034608991348310849948429237251167148857838072230182657139936831783667609162454985441330788137110486038965323766258267095963668640009741186816116565720930876725619003152868285755933363669571180729877083308346986929539843398106331790978851039673164256710704635024443202181700388007311497527240451328300102577406747774905353066835385804225494968600982066651638021620441988434406199946148425203913872315553003555487597447922190864449570928863035885591120357581697377007798444078029587012311662033013985822780219397300477452045512959111788108447372430466843945225896591253408938053092974297847292314049275375427252181779425339769794785536456745814495567761721004501922214121791345968187569783228823111759380031738070023276988830281139564906355216430521520367938592278668057789494870915439001801121581667474135584639851233918343216949377666999733353490399376035534353705901146268402766221904545497822268238596088194087109061160963875424833767256138343866838032811006575447510081664187195836119305653583994218887702683187967992706423486345790071155170280486980025870989571797437027850104761232365059438963037545679829964147754708237755559340974986464350641816326071861495069318648062722767117418809985947729802157790389098837829548560230562367825590800291792792884276089810424668594000674900048360746002279016006491763599528737345647226721802145818174428161113548280117172268117958930520194265252930510715630569311877132654380171508638847500056057340128911202225708189041556349564009562987487919526517091391188566072654032514315053829546797650418092529393365311403361305532725279162657439316368335413652711355028219197469036378966406768366174203466618618749772821218392997912288860180708427395463770277269139609963163720975869386381730531161877726403009345273137666353642222437029763724659387990769757599786460610684694473849997361591551031653900455258175198755394473274854625128798797118749335246596069934704298044418357521495405903810202903014603788267727494472483346695956742579598699744640730347420745767476004630513431129535050209888263896995356019040469096433767290604960289837474703358180485117151189866001707983284958237289781744647737866520329701398970924424060651825412767206002146613350818898810285680203387377936245151787168423602458128526402428253066079243879484711608430392582107857621980330334048158461871111024663656299810410924032487107668843559661787462500729611111528503679407807280162280806637995372725781579100441729362881848131295803722694005331379084703096353607561193774118201427434386660436982290787740391997421306293344351477895831144982490264082980950777918802626346880394946280163073971845730599245247513984321121522631799899255444841670923068598081451208151456109862564043275353448663648292404422547184780346005299742749221137819737403539841534405459614269282458031192953351786832061182409897340835647347750750432760249108969090594655927489591734854573790516084045222119125491776851703063509124781592930976587195084473233725713310949993404107869998437836245955037723281299113693093683166307958700287432123735162692812587451080473718661533785914083876351648349542789998675089141058836241851021859383484461394128929683740678165104575847459036411683956761520545611756578313806894472512874331575891253686307318404385092051491853170840273523711642273485364031717778697582278715012812555394320171909950729707169181319750742653235146860388552547918676379181438235081136520031811037603637367100151401845356823962776554190870730099881045367229308189349907052918193608172742461732485463470378351391631120908505478445291367748441894805966985551524426098300009869076483932073079186772630092976770622756840512918074387433184054779987535274825547068472366567384941767448095949472989608990569779489220705657114521370628328447660955014635011595264664248198106107202798524353451057372721286816975470358102470508850757404709004045968531708301570274606324857122405143259075144865225986728038020247522336275037872092327048471330914477425499844823248462493551155926792220079323893392426948102765765868221683329196868369539281794989234704495895201287050404789990506403768057770532959261905617093538457362620565500848905503183345926023417658812307386794327066350956178862531246769985286224062569638398737741993348569916751321376559384281099861214526691776861437101562453024994518346831351565623058082839855700522019797437918136877523134991623628429139793319885110045030924623285131777805108780646984894795555786159462982635223971832565813889800686408292540459355499789017348822811423759082012058309199691470647820105388293988095597571774940902635038913620925047470083698171008361631001181807888319685763633954389415551122552120198178926923235354556074567413661044816956173180218491100930472671747388628275310807727172196207259222527569571358304527316055026117430861295049733658185500595302541704725335599250604022885242289735942264852111346110946040632437632229452854084041421131000374815627779494744485353799576640941078319951748757871202575557910398246864756048192292179361731810154679580550022128664906164667313188091587843103538702974656035507218368578111189602994479797298357874378641466809409592289385378296744090407370312785629149373091776854671227897401759012309846679517280242484560669106336536002668172895575098193556373422933710802020682770612885148390919787321868685578610550171615854969801341055443480100565811640487050282206708205157179950062770101262642167094096632734012566925511635205098835687604396003393710414365231288227644308132757230506020265773644896034961166338884626801560646196420885951529304212921751356459184428530153971724854482415362370988777870434948218917408173491785231049342860460366758287782271229545714454792298023676976935649920107493426084146852465023036398929405024743080122728068681426062768361172729089820768977319675509644937706744978525750726083133083644257010417523829262568653367916562613580286819574568579266746586817017777240667124467701542278008826094566011690744243095593763218692607470671534660792130055812696334009304720863625957620862052007869288007059428431025654171545667380342518136098525390657382368131685195140308730055201571526829103591885416509739486597022582671778608964982088957376110513125397904385873214741078975881432775909122281927328196742348202207006376602150547618405127876544941681434432711239206654170627752727194121343977068973412635802679759417858813878114217222136701353351919565416124001024304176109125673656971317922357622359533754345994044541498037570045689998948768986296592574350391790791301058552821617189169084514321414352607556886025012628160633060334081742341721842593584232467253153028240636169269786777156688677532079023047530853185154499458418007880706415525335140325665326549245522273870790836466428336748721701087455343507578223035984034461034056270701688903521657510117877006968278590059509419836728103816435741090763785480043610905939070828123311392180691815605042878862775299846503318845559847249232782951175219913180851372216890058163137653720962359520469465599850963839054903634905348732884404766142077907593979587721978741470821780844025140721619288484326350821064190182693762925201245036767385153615912892310511506491513780354304708688444187293340170788214018971315335615904413556750882082137425259884075785965903578505531486977073213709195885884494465089425106539854059069232128831279363946634040333578890342113300626705414366570407798927942225744575920565119021188388832987038999478418105174318622950038396488093627174714639429273222216011010339107885425106379824216418024617337472316275458742230761966752220062176233066254666354859039596344012462252130523857831207218269724643535890541671171961069703700629884181569464584362626214318615072842135985076221779173430480546410216443147025498869570919957879896818669744971514310232923042488303625186473586700270336580177112117472556500391923751982845056995270449722349497540060114512483119479350023369523518366408300152032597757658083331936739453791812721883430105343055140204405345506479535693405715007394481091057905980645735163276995207768333874417790326745382934655552846558953121286803541213043847771788234930334706548019326737337789428715118589940409728577132389550720858263774308126394978673469078176148072239137509132495157885864998846840728664975916014812455079882568516621506432952024054061551080048757613686113483470382032532494477089365534702997717335007792821093197088843493010985575653513705125403352677419443139864773389664427817002191772227327595085697156507701058609431159367127916240983390517399823819601638625131203418284620919355417592074870614826794496243648611202237635266555577173351061010302703969209429939441384491287906549564587831018363562171489409907010384462691569524967705683352650107107783048571474577442584864571715189015728562889936969038050430093213132893795991175854742930392980188248661333987651869987549105606313115195856654010924461777112571534904749110627908963322481350217641952565128140952953097149531845235998557088958845103623103685051741650425863535391236552446742815915424313918549560546967875760798748522131828554890824440933958697852590218040598436737056193979985867521786906346762809937649829955922244733334536044043267676042990580128658928321373822270240921594534055987286781268353029353262535235820426897166979842788096959559047386022573813461592561562868335382901096607410868297817571577537437212156896838477677270875765966273618271331389606874093490553750855229634100275459264819397708866094454374032480656707328304349892899221835288308437127833407692188227918900040046230729820063617595291525477933165398240061873850493058377280864344506381094237351038936120387456396713658020498371125466447295391095683398635474252805491720906288746161143635930420326759675545323409347469690044525808352296617843573513166158334130443578961109374802044490952942767254997928660651120226860635398451758266545873536815291988282297127867816387562857182306349101548158312959564808318978276347076352755981440683740064060880710435516480954565236527741096704494989933242004740225187818866108114938969105561927028200902076707038449533649476984297263083721460932639818015579187965962753866105376878729397545928530931192212729473955466924917502099664858282309580142745527718436323227734868215721787657495137704023135777373195232209694667413350254874405025424871878703332044993014458578694687665759725335061060625152033292027032175542959741094525230021273288505346341251126896171846393971801235907627675400915817251969355921119089878770951328005209580621027829822122035317428915508848666356288559134761015516906227061758504569437511980659245161809477329751463477981431822819194653001489830468950039259469691252722974631596459800332962046131412177070580370106369767074931441140630318437283942395349540557150642696241852510357279071506869692608450955231661614637013007134797338774954518407740888567009235641550742876117608719695644672603654523701934250203129507359313738036696300287091652058160868178682054930095765394242837502743722864515771052695468886847073969219463811237605791537588784131742810206182668072356140427693150136645128918849745422032829895367273207510683176320382631536315405873872771249354568916566224471121817086143541333614028624479141060414611600979205713445072799541770280259134646300171572558608265159990705399113913304172562446836193016848196891266422305952237761941698230165065831997705450571288002123646870631240482254638129069381470369111924334963760109980681269779618277324083680533281230896355374039687162807553041280468215993522812581212893367532102493495211751841080509484891349589767458646435402260234386378198605104215894460857080085549347704316756641575923873579907556803592337303047266826380908679824307258972872028616218768021697398723686077548983027430259966990410063666483104223605162487413878916866351605705729375925257786393376377134338486765336841203985112411986653195411787544520901258025735102362031670336721500288000655590872562089188403482822528806959993335166957862578011078777756263490307514498135947360812456842629480352182366883095922156669442223493993442020528870761779785661226823093428806238684980200727651393491098373625590504246995237993946173416727344540004521976923754811039937947824850497734164237178073069589599738425757520843631020736565096251265613219726582873870215281456805876134082923795576039169116385697361363599251933884536273041882498694489016024415643167433803393490898371142521316813798430264785223676145603742031534410093403535505660738581084321011808280414444968643633523614494442374878261674270462704331518367273700757041212985208445652636330248032074386823231067326987238211195037253015378255489030517330943745825519970843038245666794839479834348305842627614250156475164343861352123714146306017023613424786273002488797386124564215494491301993891761701423623052917525929018190998377789037072935571219937693485649978751348566455017793547987855187311695310757022554984969114877911442599761261640801016856945632021139167726660064396209655613153889379449322125165726683650445893558169028471690738669860388153326221460398843133554756424983010490806697105233926329653848761309264454386401096466512301648564157706416485254307182848600400413713962944666600496576922316013295435429386661777290810101944444655435696973193872419980778316064229280287271580939259331170920375061081046086251792716651413412634848219603356967942143084913191909177921327176578711201036512899200749928924555509521794642048873635346097721675199287499843432687039329296844899605297800081540650546407453894347612452864248993882769642434980993308611145867463555483390460852659387368751649950294022868905879536180525757709559356808317564812071518151793718682967755026924192900196841667492999917263820977784639907423046374354159832720054126391497142803343788421276362244550497141180465374974593056462628605525254024577845413264341129978333761888597498954195820604979876936656385958892245711579341114828102764112160491598730734652871785917127339907140148715820912826672469340350450312797321754413272269103884245868310842629287952428621925966237173927830517969350257487233551487829089013060493513833002902568323733508198774934548959397144784861269788638458927030793046123995663516305976563205679347952338949802484813259768727304634935535446410627371108916485819328939839817404383506607150717344633939114401966796898968301605199557097476847892227963426060283275023849915499345333947635936409205004013130931252398059736027389188542110040015302790111187705462870456134381152774930917763166870970494960324358147858618533508360536274631483857610562126661728960309945780858356095446486798111189173500874615878516192978016117868667464340957566357897009809104773484654943265587832141725744941388992450442103691377939495856852006896954907925204640993576545408793052980507585161306190659201266264504859531932225957428539972266020326151657049212264855248343858337263391403458134492376382254823105838522649496315687610294212536819111217889630424355760943293266377455046526573664551925449604468333819052504123278235040102759365084332760844991744928243836905476265729451038669814601993956798721868443662379021722884782855084363569835970779215921666978391330112194758802151590075026528850064256363791459848039891539925612086646482320919155431120508162767817254129967886849022171686844380985098684633999125595333508476721302936476235992760134243659380742024699428228556413936820865520382527507903394342877711004320723574021038224179685028281886117801501748078221821163398791510509618797408132674049490069777595815300099863830832394174160547928715085669217010448877872665769743371524525822706930074266922327197910543554216508600021790278549340836153431373151589235855405792966527506009922130408292817252487651951779780338806199444921206664267417111598883521249337109474724355403344999883366184644236423546671083333840085470454246946735048160260977048024142763007785382898328138725999368176487726276349444810204812270653829737756369252815579195088139361494462256118055026251098894538029146876446427094105987017052530744896811738801471372233976301008962160694424490105839566109425211872474350521110650261183010571113323844687945958811920472340942084365239687786142266045827909719596622969354860872459940774199507813699163656679614830149095760459703193217465668388148183705299603950816569725787847896354143974181327769474575142151705147737143293590510835387016806929323596046206060995476864708799190901865667129064151896263816036290102822789758995885629963731197225583611425189217154509043015480209106638724275427891623770513334229290474019517426157337568912120907209976540125621502295168085026087302155755153421161501056584759349670186668741731209909007334276639757451385358232214636252832076546713649829868733129564247064079399221390884941317179601354997798877631328734346003942239111183999565694087396056448405550148077868664066966727014001495075026649398592901757824693518082310657654059185185313896140238780893297527591165486695779513298932610740807979183651331241517847981123390523726660083146477184084203802353501869766173555020222918222031151305437183602894637842732189892166927101572274560541657633804992038621160113198448476434570577364908552491180826355574106364767110230030284788665165586780626224977097839484277176062812197334165502239777582004205743358163144921971870430757025780509408239226654415634647619284959182884511796601633837382323092847340566604470466730507450141427350856260454099067118748560569929780142624174814585049450061658177287701437149845838437779552432549104540440963825091682144522223869951372627753340784086284532715748192396197771082923033846128745430755635898564467240180760570746353486069403204354636329954095765664011517663827470069590975507844370103818495239005227554247744907650264741579258240006701709796508020072158383259282269770484356608286779150820153691567138683805915602192933288432679920303613915706777177763074822783282574903497097967101142635105115328142726266152894365306557927813956279711505838936280570780746617026875180377920894151972245132146165258022392364383772686489799830540125720354306945286355520322773727432243412879158308746022703471534987339433678162503456924907404301169852318012620804310872569853767509932593614821861690309852815841434500701049302789941536342500927761782973803380018758019743176666637286972246142032213325046911342947480341788085569545953823855322252567404198684412428680831431623598527884411491256014409335764894997020970615177542106715864405945664029283712730101696546744572121933248684922221757906594728009470007157519610262389473770872525763366688589308487787756036888440842729730087946909067896880769974097881592682521159639544604503536046890858558389974200099075276569386691325759624470289775505048515031904853189951381494498276433718742079837016167036218962751805814789492129200677827016064393506366633059962756728180654506365043959719073833308580787513901690198164099165890626287573285973120117747710307977397469197218523161186738645674830750179687214364152042150119424226440414446245885803527232458676875487001012027141432286316008129565078501606738743148378511811576229054993785069794627908699929554484721069571266850807144806090915767819929994491220835203956649766286642974872083757520191877535780537324205520981399574724847435721080870490243598019381605170950029712389532863366268088717463751908117047112145006902361620887616904000819011246724824590806766279321284946119213019345613839391479089038637712321920135611642629696330600469781741793353860919081151068413870737843245091961543449596800778911843089201273279975948915262848460851033450309997710936947561606926690285906409264063499638935801468114370884119764382905978230617366800149797129973145775522589567275425288133395980316895273705728272497548064383045362367869382238345512303215072336988664383559122947865205466745426439006941481254969793758204092332813983527783573038601124170547015367420113912577937415000328709188009753609050141974805094229855837023108356956888897236230643856740192290064059547315508202154077365005523858715246098648371343296061882901847579801114701090255890966283097173535390680021728855705355776460542733549808179383778781902823938802039624213449631264074026525303522556844656457860476563995290262778232284455508932965666080656087039623348331621193294774376458215386825872636988607541157139303839492068856897214085492267947790680815209952739853030444949851330487443180664295906843912347868111319673469358887222141156441197838105392786465486089146219396726201498182227371007600807665218871509864931328775969425364973345297582973569256940633363528091452487865606941400152478520440978298548522665029534691182045861071294168449664823012540279151400806269797242399335626891256927453319959949630642357756835248438596333003002562297410533677016572126962313625283897235309100249608868667139823677619752604389979180382888182645272495888203286234065685538129081862562999087347331356968889913146375969648337533231291719069909441812841700653217102738034197798128191408202476857060260088508355593271151736461016189465722840202853687830409714501030253533253340989332497984398435177787649603932461294681519468916763514176455928206254587694371449658146877824130459084987579916632567494839196498792159557457305744218094473029358676102067159514602392908392970269646319675436902247467536689373062131298011419476440951325108648003942260845271807142785101273405355943760159825859856417777836786727710858519458392957409153404987907593739874234571887206132448117459434323389898425769942763607336774344294525849062239327377851599798847398448306272307102741352273513388946427458805440782558418696722804546793330250454689823654662065384165545769501789293738552934229050451017011335165897718694397247123952326575407032552208525456801391271064148197722780385397296313655904229338990314918119401915102552221329891363511484486938618612159653823815154918896172224922156772672589291699213312518282365815978309633504768536523517202449083719844170993456065560268651108161757171935793810043150987445706856367444307354992141875018126416188713758926192568992920602594688544910238958090842646155707491843158426552468221128929678656285134539426372178692244696560354351184118086594926773289309762703909991036952494222210503834756103461564890894179237631975175584930148048384187653498958047156627124278770163765358604207071116882809394699823200452944989917907954742754790336138633392121059665831298061273090471203530611226544779363674034964696328730654636820664225936789057207985237450927985191609807482646848414910809919730055605302646976077221282197390427273433566843651179333773477180411940915816216178778772518076145805715272288129556045860813297669663659441472071691614913625924314573107445837215544889854120621868387611979020051782190732518074101332267140377235111125572534361810455443678827304020646264480275030046664851911628069827238016116093137545745509320951158595379552028090860882401086119860454661335439216036244798466694320936369970108252588574778033967786419339524070774848886688559723331985795442925496669145454679061397414537841477595781531060986422371673783679450017273446352254043123650990721739970283041706212938604257613558344353207206295408105285206761026027867502775539911375330459975241365721601099214365081249505782144116301632904139180448621571678829225794145036125057859276835594853270843458769698832277411466422531416442908901011281382230431813461347109344317090201117341001909201175038973994484826072346756332134894094044432442274631218633778294508293987768820054088063140545444888517720992948194348424405744288442274899669260754132598313712767715059676717756487114647474113797473391333035179795603880667371756695035525921526500567847466387315857239159444525816184083479437028179657860142667334297882477209942806947398216523435167930106930393043094471780569754984122451778945049813550582960575134418577977265912716654347527722669300454427530525430303577022346119422228695524523647925596814506281547635660954525789341576777720595640419806604563598586765314868142100748703447732280937815147757117484932693092042816104278578392551249209994555528766209470443990772451930996584183958423622086621261097971224003916753084620955114816891117203543658841203054503279194741333128749834834899363897018244960466831576681598243610660845271584761909825622570723875369379960336025131519965722150319082845255249035770140311577791504854794814395990296239768714543972056805812585742078818713542449041202709261328871758726494432084999599310410886006082513638836726245553463946533387142834415707897028676640379026271625754761512730852150545080599950446512396224440260214341222163995092995599183839067274808121621902340718451848845254257828254548450648017737861579183706610740901035544510069163485197715750334716703295121976852015354953741297206431556026409060742741622558892403833714140625543528536687544518520307812949630209959676730987170201374451514385751260807740546676693149084972758729613758539775207706239197837995242057427374092365197565516605281671361238539132974107495245139399922691860041690349879629712895908847312153303060260429248450080653147376831313108796180805747389505061803016549377190882966890263860175809609046147217469479126779610921417399045201772078106949074112254360134014899673793003795163738408099368235716661909613396903450066472928734032877041778476895736598520416483744372429458517266180423407444724141679451578200918489870084145293915431908607234707839893538079460443935416181543950787948093716456423971364312901064349189074644941660707793900161555382623788719542451103198689009444434886613573372874394624097187629199758516759337130457883527184732260191122317884081036497730717604035619987251329044753135681745028971462394819422492855756369466662719085136765116388167673098402616761551957488206409611052284235447142702492371794309777315155203133315770377600384353432019171323844561950133051174782899034318187072684427466927501555717457937727466464640984141869314774785676308783874634153439650921951950029152193646362659076949392268609861429912572283933103014239532631087858371523917410396547122813869185580914357051863563967220338078962143665925933741490891518710238705696277502701662872905937512420970978275106951710594774401294811600299473463188274166823191918675110128734142738108511207536143576781166200371910478412647178229525055843259278489056924698421452104888404352453165329273074868505026465354698180189928890136495120894134672666910988773972982701922195970458489334692932945643731833575157478298817722088851461967487614844005044271396407852726233127315483551640177868711581000064274539438109023334524947704445825085885255290075438577205713951120592192342601886383055604807501379315602815411085901509722622188706555099835783760223045487170302740430466162343737015942524953119550099485023534387965404789286606205168721785038891489225256151937148484549936991825328123421655243335936723259141782801553482002329434627563604737382859957230401852234238497892277257240403845129456575070028562659279399443461272791661215358945622013531715509035982157763802854038163395351447132732474777599955274569576258435779845450783945680051994689731886047286699370787190720200300270807761439024322324505229107302889933489544846232145643698010903365479497944048031631306933161882271663281148733868098469358384721006297732650822261765599237921855858957313937572853745448109277625530616616901468277811444910370163493654857614486955380768939332374967427727514747877923240866697437425218492931693286371505993167030391225404313587537752242196181270218860175313169417770528254527365280544412518048194909415257840612692008614514067569572538968913164400764955306642553944320910543018287052773048950399722764002192837038367736850446058765214054031521572849113338741117431200687572368410087458397724429064296011868762723479499933744191024279551298699329353907256280798589233847057787422298303377589685035179622252042396460039267837964845504370126409886728871279586784164560998284681833710056396333826607164815956163057848739303990920306180720848638790624475864313472928307975745202549245791079797938767179580760177047248416881325649168195223165992688879092933627599237053083399259391962371572899669842404381712868804658096587022442117878801013229892392427633331078949712223433336826563349911224417383725663487755131266219984608033619321359589332892514582212928448473779233660968032473572840861162267420545014233187529669830202741099700479246778688972399500338255490573509751581141560694618332581583874491030606594518471002663713441706923416194528545426949403932485365437670243203607600066823377365789841393402526660265149269704478957645648519902985724235018195977469679622307344461224388128901045475990989237611324217235782892679003290837731844830348678788212057477168421934456777507197102952367998919649574565052729075180767677053082741997551484102528389997872137938737144626144601467520965433975581722852821009224806697975681143100214467977257567925122945574213233495822853744403859467733571451601650907155758703425727639321376415154043692585614064113835080606055183843459826564050097785308450157137564372483333894510254763684423349571532779874639314363244541402950609453083103658473425754843394002284838134062369271653193450383547467327009783394705320875749313869883337351108106111580386612578378003456863188750570720445338087211869273734808775812733510298550921750862560990195574593414727927504214626663226792197638808832506921329308816897284902886003543503785623398669857833144205787574456218266228540290663378650873597336037645116772147113970698324752906502352761062889208748732681186481338458069666333073594251655526939556798161718488470510182896226443865414606930292103122580704680759528178054310294642839903231435650205764784510775418111643031188541188294398331195166359126599878928274345966228850755308247435197409867096787586674738446285343640623284613810467879164790404522478681734864387545785686747009451706316952174544055705734980692569174572639350670968519306585677346098036356403336200040519930982156466893590378540828397506824189478795021197839035587754791823046939057002086923408831413483097358647828598656666690409098766461208224488669882046359098603052590790963211140849523227329164054860474180385992123483973149808126212958164893585878749808223117214355487489614295940251895118253803812623328347435585938326128672631679662204673146735488369912009711034937348599362423694394948841901497571546970684719069684424313070620046186975944514345112321436626829962380537567342403558685160519825866237890617222032348121629967041915545111668759593696078938206037429849426992869072797654482852128681592420006548207211067698405318340002392939075974685322529514380365869992737961009132767192819424157073493826206583721433507583403752147854998346450742823713579846389268087926944691904189091850617282699112202330190360115225175539066690708294079423618933350657634998709410279785597805031569198033967587121127088549601286050067563914174101593351252138229842050077700036616201803030737081225209974659253150085208771505894503781911480251973930624995225318363800806800905338619000929648498014164701072055845798994804184943753107801767733866478679079157913992342733914904605625902339246156219543992991942332818570167132317408225566117274038185567809578780345061023539874772374616246471363879630023769526357243960557741676256069251230193557523735443074530012985582119944510646229410816385434573878969821697356434505332728615551959504273470786155233644014476876632596723611935084924402491209296427277813244704823123984283348805212818516330218987186282120726114364449590115891244025295922656211663819583993640140821858196275050904307312574131229762871701084586984930850840272947598199912245656897678960898411492510147693564186822997070546441005709307437753147623492389219755227986781410531914253841394460340765538326137841279387398710431318388271666502947358254663544529657707589221267534984779013337443371527852395484886129734897689207024209187690286703938507629965926153965155874399755400626562666254329802554305835994213172205955069631932040889126560241925086237725770333520695600630346243479883864461194203635953425791219512827800502669593273260399452769034537967415983776675862589871275077519682740899652454276896521105568846553980794832190142650044035302130618135095781321912832329437394873764748951362650156985224231701362026412822902395305641561044888661796205647574210876381602389320190815628343285702943801711792252780147211991796042287514310140475835206511143297927528721679026987289883982712029344116237998572033512207005922429290505802670639209920166143203884406078250025855695479062408891206972821605203780526125106294113715699301026535785282115704417765396638697244363791217233861732510639102044217073341799680767342358856091275257578933142054457268163355004150342703356171827473023845801090997817892801708420848844887235977663711602473166614775941241815497165990308105687200252714463431803986351647738361625147148261560224301279994257074868774399091761959250694433528690472526802365918925031918514850571383685419367069281335173032033813138252040660517675133957091567117998696240327115174019446435875957958383051257450768796798196058721694137946056736568861342656544587961278828303237733051700150593874161932723780907478254384173663027886594031034883104250278144064245663622844222056889339025892668011524265692341759462054185375084872844826024187584925232398242095748384011402422656456022612073707538301565749624318804641092429488549379820262195484744187869601451406801278134741619610309073741452029900612479438203967432739710117227528540137787190653869273040904150382848036227683249081195694713599317722959208110442375495014835605026235555665441895401235565299693737409110422466589279452809777676509196762039727451374945212370623798922457314959065580931884977324581755964642882163729823322489091537330785562783357492583622647608339325904137724844475203836092597040219078580275557778306579794140549377916086886909758262814754866438075581934571581276326191970390328516775489474090520045563458045231510068855148915218836714521829533356999733725605482435377437461358730977512897040081821119040241571463077677078260604013695289147054715555789786337008471717600257163214625890579254197883334247014939632310054767103513539851495677907321646522548174391335783887065532832163887647089261781987469131330845910159227468932265393887746797920376613906423440055442674072909666031331655140184937068874231288895460644834434455948128445904591633974323375924278786433284969331525721404512082735286819603062447861433101410366266162725760556896997315360791201895797466140625320470234265548430089929525364934205340107884401099824409789779514682710648275770146561714789002275486125582691800343682886453882801092607142334806503600734635286174001151043238510333283376177916897536331259781443468670093372715409675276520862119738732167703959866407724337315042143337850947369742727497987450699959788027483880652589091708208331427785046777461854456538568629895802070945823224616878075940790438754207023842909631679060168947672202779760945661104726587320408037834918575581708092991294673824390696571633143697177326246589493588758034437091724409381537563598350710027216353354808098843235594477849192526801810574412062480510392398445026496198524717384208695673257596270442963933144827137160656652700175152168564551141111802449160172542559934739459237246679980150603321265599670948137618947456143093778336777231459552343090867434339083989529754145263757898850637731102815537990202326102640119421205753936787833585318951583135309388277080292385465300661994716879181368633823918474712454155451174050855495315886440210529486846871330839537152412910593908599960288303367307344346352238818387397890449519323715092901853877626070472245530208571596914395985321160418646937444234142078400362514545897325697707161558179641117332336044027592619741478929288838228472104372324423911194107584762679977434752514356155078184601273735305178188775396979191867458064745302506510184574256054836668770952928152045941410162968758295595492429270835215878525888983873085826073473227655984745264611008765926761420906310366217175697242081853156865317225993404947086970406537815224560198709628309282684846165025494875455099995382030422086331216258508966063845219329748811097280629001431495891802579041412160605737448546787588291054322560384777916763632133310770706537646656851202844002035571305495815812337659693111066300525791605626741005757137844187643821475614896675493305239490341655786587822911270116683188660201740225675372694324564346548029394152334352506424155599976225213873102574773767916980422339523627990356778286502486249964650776419624310807162184603662679600594595558897116093853769624507834895781052253395686026510975070829024288802561960869818229003450379961079984733658020657780667958560176641685820557645954442548042824113428335664842513968408363617493561023944710154743325504896785200429014922943907181111260866817440171209524098632884747065472853348224239428759577811587222917301951155299594338847030268604464751290921472740651016919715791152713122697312535144566726232200719928476217222795927893854531259940319286686608447513961182042144331837944945536150374612872392476424297682367300063555851982822001288011172024164202304353269273478160602719237988444845665400183613727636359004513827915871350262312504214441881327518369230272614567133122845862278633386180687324607693606037415633568912170592741961819952582817226655247357124029192240592841995279631010257334520541290963411904949563141692239549002054750512076431740030080079669874623225821560672653290983177914496482277170181287578521405984365162216441941021021077299036809872926510535497946975694326373632775429717987667922095593775454069047064452231042467867715552886307175183111056993522053357643289163549705403014426430575732379209567014611361242096130291239269504684982361731412029790781296321750889958543021373049547461233702869548020580725928779815345951284318166813240600059731259219490149248318610356163136712793850742994780054580502694845344577036942313069119397953258055897051213909951183210267875145169507030112120783339008005484853547147288492855601268628394927109374617200694812036474605977018681472211767301812356066563075427991717348309369809246328527355402856366391336446738446107439787433254661431794665138882749498842176438767000850925329127009008201153995922220562713149715798096493677165803307217660996523150051979013152691061348603246015304518887814171137999664145445594830643239033094248700531988521017105223050343292390471166032258204995626822492930881809590375589104618755899816896135911711149238034723471819961579226315228627169418829727217256322888508998680888690758069245755864391260749895610724487668117614291505687612841542452809777021116150221443979602317303103558639668678476285817071091133256794023154200989410120415846972536963899759712073807442842772959996629625003987236052750712158325028637437914842002020743634607386551560329348321184031691158068849162548789941920389930968906579471298230822527820561816138600327350236948390671583645846908630668576650295337240980012671542171140556511955879021745257789462398183984876891075259240195099615200038926156431429820610687782962275187329117621855790389869677179455266591648668294584838912946108257646403234095387204790573713719117135120476081652190807717691445861969544987103865735023795377952213542254771817812113236212558652421906154177523311945878241424612979270713127510626273096472564674458858153847896153798077506172216387262783199459437073350707097956257453598532140438002518056175011326273585144722751957953344001882869382558977998100116969047110961680075767707098898779710773876648859210062484395288935335811723878051529735335682898603575916173642544039489081445797904033390393751924573400887546395928678214428559126256676026822861888032798050756328323045535230266482108146085402798891213723553825348759570447359117830173257675334955690299487709848608801082683391459369131829096775068841793025031818464091021908937836598994261704789160024032078976693942557023050769016058582910649303276814971654343921806315616231034343259908950517541631757460161400783129387236135120594472286408613160354514888310886591911243839928488286196020049514634873022211734097905538509622546358897192982644987819183390076842977086730345698004081583265051926326861767458051074767372548476212392700102053015680524801478392417992055129087112913700820108500242071705980222324831747401863944866158435832652918659006509114246213964051057085674645504145184940439455503735546478343318447780783246022598212017167029769894504921006136572684944441559905527159634626831166401399709834375914348905481672831053823150551079987133226616199081578708898946471829496972773946680564838962012813618544679762301864931006267600661137383205130342028300279973743715341022239332644679307515397265571475089133659851651642758167328005664488201093941492242554947450398323796359236564184462209777413149999058752709469122610382302387863308410303187876429790613831505267960700912680702092857265555172873859632143956774843764148479825478338660320874402805601822437170635036831561843985238829920772644057230313330761558728517131951000017783154037857424976514018122813217251653367189274691256099071432640473549028616122898386631466728227920921232094563150233674796630693932426099604055050010331121119543601722625473960393426801849222618401927510986755658821130747034273637925938370777985264526954465787272340738809249932140351555642677023712575891355630100011784816376156679029884900129914415891855687027256208547794140551134417024294423892890540071290823610348722111983271792103699334113148971636726941899494206272793712816729477926818918731915501304213324425080623436730273978388984403163965569359553051034055314228356028489009475354530896023450684095773903976689509763860519696809508041240345419621384618422735966495732272027119971702350663531608490009855950406324006351171398662388967514383825960322307327642501654740548944964899304564019211048056273900972999111896129919171093499546819881931610823343639810611711299356811394423363920853349028733975495049345849527665266093055602143373381832410036951237739724916050890946615147407310267204708805012830008255701201149644751589858806676463002044255242719277385042823797953906790862526439962074792645609447657668011351973824491703704827948943383467650179888933656635422593230878183809646467100126573031792694973329347303214628737522467239395417611972783475527449948322642105987981709252092689409677712965424869080598648962524499269891731960058952431838339060174104055229211073919924506488538859895661032423244164097512592688409581395883573921240773874500802001341142482466138635690827292219358081697474470274926961532030207271578689764190114459722190368328152673048641494809591959235198455234797411072039662657131772949488913891545523914218713562048849430858100971932578157050376701463468371108334069842679971116852855314353616823756730803813310237451329313042450137096758990718935469824216865360001037060958220838591885818189615175276172137415523081465933085963382967526317301307232328457161335663167021107334573642844731016355089323809106965765479617687219107762777080725988935572615224871337146399361667575125041326394240461347133897562849279867398823306409038153704575824175568551369202978136848437553568379788963848215758108765674440365273943627413030345026208234333715579120484099429872987445560861445526336409698526168376626176095800863681540000671247476304767419817690551370980634319880221785530588868259080076031964294603961980414759955942656948949791640928745200541774130254630154657667857853971799440556085067445747647793798805055847999196621370813385529738724303155826136439301514754688666998829399205194360820908445310520821865652660470185036715253411357861033094799236102424829716788525983175479701892094884227498612104419369126141073781773923848624030585422771291860891488835891288207563177781410807663720246758796167553648400649814820995295577027016445828604637671947761817831537266651920254158058877707254597252666205048264518531131994417006231727734060813282543698664041814645239565667632382277984124418372164732681977437074305869717328693029799210052940295286890387295329316417777134892590630613142191417541349788015615214249390979972309484657642055346396461212994104616846645963181948081656844501320223684432947166493757072035228113123000319861966494985265017087510529777057382916563074849939000852429300174556598970580480705544911174084147308243053380922100345538827579627018424285188013018945122769645787646739227050611791174769711265468905218854724789763828142190052424853020736571384670502230402118815356372917379945046814695265394829080985135673903247943962656119156604498895894394130279755343625184934765348673186991830608995776136131513512132936915182506191707207458771997319061718712387754515445210128905288404155700569699026150834203787200801404766329331147851275369876816150823313061311288349569411250642424083761299615494170290813064461772424598640207832801974384132984305750404054661888978813879533639681298799042100771764728373882768684938707773961626053248956242391123097698693976540440724255346514331060175652227438556026103456330046695678155834291880221359886356521889215476928752104262608610167036286593396360107273641283645116342174216177517725297405477137562975008328824423177269608648362387173857990226068425097894147552387593389757452727221882625743646453166577843915152628794534871660193098308744487392364827606235662958351721277291260774842886095501457465138724813637755021030464123186334040052382344152573629463804411945381923588799799530289193792446212417436431179948381841501809373525824862872649616008710183971461069276230031840964924027719741855240644197157916737972471612391796554530684508975041068496802207749830111689093362249455686946778911443696339707261216626254611072579570028709390828999062226287306597769854201339129648478644051774732082918603458618669053346067350759483769259977588770235652954272240721298258903010633770361627957180800687120898123948829970375602091619008640223251283900232927996389363349494932135243172175626209499194878008714054325731309395059240477676788886722232366346850227696262099411013380737783146990855747127238846008297645812227885901250712017022069681893389724912591861949853269129699462841368430156397420217063910884445696864491538354494271068243297236141271546827620642919072186295751056548676149744173691482480061275320300781631163959773843449121131907838212457569469820764840744700243957990606729179538186621152820993362807521911334476217364100418266475673424297980529282935354853387424949020950660688341607024832442738468911794386859618782229420606222627168302503573767769974201403205147489853733444535168429163173514989933548458410209360740419587895122219614032921583766960868977238560670983542283414391745669033357729397982709630500673832752050343113410618654089498316788039905843001231474944808128253597290415926126077455906216102461287187800993281592883516636547956702901447350669180169497559841605291345907793057171055184596613345918418265860955577500956821715311114743826823025796293320710939230565427616912080337860660858442705779870478072352371174439856138678818347221094732608917462849694000937679371781253940525791989280066199438042273209090803110588653745416140201462376509898130100740942059213115532756197982601162548675664579360737972915470663643850941203447832127448107303436545167889916640738109227314492490408653084428319781283075883334534963875455381631318650130791264712325867451357346540853111918606682303650191586075554235528486574778748362777000626711396721054747000670496747329993964585273082923913931304609927392182408434052174416147771377978841667535453669355815503926260485885990154313671081908683032276876690342493967515522768833217726564646690810641848787810515499875715055905308755422347843015708690784222859216956610128127375016644915715557816091094606672722806214157887751603100609028294747513886367728698216643890869576010475846555557549383095363215397417501529558721380834586561292137804843127479807588089033369260463435248831330775286378095105087633692369968858402540385367239240239166988461497246069755808161801806053150851813521802429073064492959944059413541001459305775958510281005132631644677099574991313150747778617077390813621984250641594935104116991109961951802092153052468021331298203713798848030287260940296716418360121838953285816153729793554557172845585289183905022959254196071714303557219628514535717928556809181300414139472465112866015981167985545014987433479908672428942755312094994555534287539306370616834240637620582981564928383687602388872060320960843785899864502153758068293464857706937246311762224972456158877878483157070461715680436182631941539501986294337139542268357049650978759247450533095531447572981114700993769998029732020350012471387271564793697913028659625430336148805840008844639170513162452248857341662327874541586314085372067109473875603706709315326504504245020516208315949273285752755773373140087431777494640287900484838986502266751715537943489073285374931281145520137638516130230254819037321098934762780873548850844486606467570510117260419019319728495711576751736501326797182250005724429309073244284227133303377460021335883648942946644845601490579055648570456401868886583409835992194662087982629854874437456997251613006993004075671171139363290597755779671305608470089991825920697371460651727352090165963912957047391541123347816905243479501432452932827320255941709635642100725750440913047472335302847029603803638208474458935446090994957185391995194747679102493336890033115928965715026887808193814792296920417547059919114726720721796295793830557786422716601875489806035478244865705906244597056218719188703706339840728994936269188932494636395517188843143486215121028803981590797353182656297385678589668927466707808507432163202358703795116649969822407500894604110786998762181787615626986785003008101800576919056921625069716900268598408249869346657786778495097891591465756700760622678129820282392110637435067112604310503473304626341090557624447224279042882206640618399794098666499382312952050893802306655817544568433476683084283496811349069262048682828818353853632359047727650665180319211867520903382796198875271499519381440143552919040682033591139710328109100530325734206743871509823684733367470951570256215838724814754991535459074244890805413271550589162594142111075453193449759552209127826357860426950517929560811823410917290992275692858764631887333611589344647600914310605091076830222789954256770937343243317576603229922282872925942486175741611685624067190633383309945024361309442430187175817226745577808845540661386577795892867841930020919682806932744742050268084410376183073788282261059329778299180690687710437297043931664834307212850686230752437485343689550248056477321881210625137765620878246373539337637724250775300357637791088175326803919017506370916746908800968742026561073241034530306560413107872660103614709070307445117035076179413813878955150246797071291619930732829723326029089202458487144125953928139620800614425143117994562346895448907415953086393399490175730871521724614555744318355051567835898677937610958970437343612833381413833330097939876361048631757641462550266546011812194079908680168222005031212837758764745801726746922009750777348865446253457233627120302985083743219943157832923834287229390019948739464658628911780816286235400909063194134243250794940473243511324681223643915393263359197368854542676488781533633760959988950406613067101943382758350924489282117052907961385972820057594619827291107211545689619659576333024713677551704645291377801226928990954163459022859933572594393581914534168817029825463344522085387990876586146692290522238527363729847220290853859769625643060985625828435257843514951369157673110902662120802348944477440999173945834596519337171657985324446242543783538544190137369267068993279645817066335213629075988384454814063360583300802832657334927579581838795576785471322358147276925300594641335152252546367712592715733884808125839920218116930640479401271768975878152148082360576231803003837276756088226180591008444629686031241116050899708247111755810532509522172071851917066335434831186226532904684793472363056355640480189528019478812304840579859864072592968041475387223348268095758280399329020049846349059628945659394217254578772439446018671152791174593605810796449666170151813862151496313867152602861094793903763490673159598766364694479528775975160719601993072782402306507404793836462220072246877579869311062688777396940009059326083101251452588846377514208386738567543954124948553533158491784613284814503171982430809698446279480539347939562843553017137727498382864080779588660828311977363978869368091036419309287794559721144424470053525854372577540210090365249677820844953336898489051259187029874237089869281737556529436620283167277794171289823839271113581615696013495044685764842484198261922022408922021898217293387443816013456626998672594783221719712914977076321361163219966058209067057397981573648212768102172124256375455521404821058600477945414130316234586350870846173740244073530270404537822222343717999794377897388975394162685480572255892831879372499697363845677850806608781311799473307964251506931756641124929368245375776795924401325743329254034193636515621492140882186555007544101698654202282185827040848132545347073281378057392269619124853303863076238033514825518500574585807429042744978181206738843588921963066466843896102385196293075250313382986612981167581817794939885089761475668349826530856182599220069192444359648590452193520903696832504516040936363027225001065558928414140719238225187432653591027981586644683770526517707377468358998115630605697978242355271623734276303577109843491403050217632688985588758797463642052527962587017326940232070902270921917250972384230233765184117386899831355912481524002157672041880290839867600122283347695504124838575672899346255051762697260028087743472888821059262258280479841383665720685106504346791231398509611359751177246659665465554515968002428258379587513694319037534404512032990356189857089274978315233451236285014270491019445222457303763994295490699999572728129465325483582091422990768116415206188975106476953912975103757215561978535401407714272675116208564149672103839068303092420847788632718999885513012975456859988635902452053701658737338042886648765501517000610784064239661453744485636210963205922674319519738227939451152294583659362907013106087273593388618503858316844499587619163108539348865403918195431696869669945563309117399753168438655750297980724045205943315154210835622697007092877517794669642322914723041018324884952476546463485454377879786301191119969399178111876682992563000321133875022875939748240450706023458122057844760982281759598220656420677086249319332419531145768367203921445086860222675975017047086189452210493122769131824878812515391892295888798528267473751199635737622729978115970356862888295895047599026372348079463403936368627994015241977082915117064526313068134565235812137764503604631356476993080876448916242491054929765313484513388624921183200759870652121747934609726450427786931517533555391118645103130409953250961517725598124625400688741203878254142068899801032865865319441469918344424963691826623691577956947378107849876247666979744520133547973529904922261948626211905752805482936560308210402482633475491329811637476704628990991747142017548424146689092757930262411180362094776061178300084846985274115191284187439149219936108083671431183340089196653938587449126866809937266829068203760787102414002269205306598234904938484864186544709212811247202043487014607634437424021620762891107927650723964018830518881771600173977145681904486954634798879231826029168132322603569625989563788448162441477886439643230772547257810546458956566733559000650408433643533351028954669732705948278437246387488581462736115817901208499411368899479816549063586244485296976152347495630120280327646613271357855484997844014679157605589185364738601024850161818074250682627999133061873164878995442507792963411644445010623539058961397228260514726199626861597533310326282750895000697873837374390934003747476769513607772846208989281047642537035051662034139940128384703616619961084434734555047219255381060585214882891622947947903515345705888531948206787771834707331572559949495015752929805375708511806986130263773376893478639902207590781687894814615290971138532421544955351671648997290961397260666383442549469023742631323091488185785234738398999760819470969767915422686822810144532477688898355152890687765894540122574664935892717047462288271635654937058703808143936893617582189283326527757266573102029474127513190571945138572825047471004177492003060246612747724142243504168828181643440427669368784052407541997559954482386470052836315300568393631334989638769430146486195295016809184837677637111998750360152234258002550786160660757914362356309341101371103789504779931430392847473488577611000554335022867756313053924301704112529044351463065594765850516706481217096867117819089154333136234822175057417477508759744382952566747682830997714100318400717910912335264133096665903182589018321108327833816092497951170873424520205500364537038655953091937642349298078249779686687466910386551088763830087279939436431372084145651555440011643670404214174173204153544692293438369101069729936770008936699033421635800182908848704203607675928504459185231798292271908057021075125638923489526125563017784083065037494709268197474692368163320616762830766770447534045247158481795700843628458216711320860551087529498446636462160855996187038756727797254548502992604333461582345035122372864294366293619846293691576560545545551529811767297043962772398554441125926114480719561327835234947313229499361521444666007486425771249276239924938845738228477802332672017147416515050835959159611333376717019369695021883738626146007019904574053495991200206447214592094540110707469543945971998573101183565498261195896924396811557516492586160260580455090803806581803428837887090118874206319795494541695199694123578962759001533709426778719945364449259898918044009393568876978067163243955597233829565468122523689052484198014875243612933108169372605554228316651982176151743093167416898850770604121863707321008918276847657531095802127426336277158540122549732651594500713299207233671038136441101134450950484865829374458094730369792393956455011603048785374240625858553364291805343577119159361327141147643691258646869846516823133771783657288107997980416696626037773093826087056987918993304699228995034134495756708311853491424582837440323943253096184676485014820572867244670629893665871041583879305985740925830638910869867374267579828006908353009161190054810308774943420268385532281817664205656495450134177135488138940289150179499351749364268231443656464372456517331927538354274128734703774034948997744035080187701357835021379899428536342052933865946660453868540302143077691619221572226218785401368749763323504148659139625925848968995336704000339852934234833579367829438790007906372140617487984158364597813015026979386246895560153257290996704425067684746250369056422895308494289275372071103592172401349989473786894932116692725162256582683315065916349167670229103527852486727121871871752237309623079534595259854556603525562966035028175803141547808212502583898316861255763943703292397479005082990344111718829779020461710175699095579757036027006269866631883624445303272268988227580367749237836476711633295140934763832579098579503699124866949474883053436657568669982880442507164653155385235253408479645504961837745657647557043888234936209971453991951717317612076263941040967127978819657393430359568991748947662408054950711192253845455040114889356217105085926140523786233045708937153117487437413010244310426728561921184159543907302944118877129072637766640056534263096530408312766134879278237759256855890087437654780135878957780917846325210896014808179314560552260270680745870797854252034748674625517487122672369401601133732900629890658734368196838167185115297867417274746021584877492525229315122220732271261364451610050482895890657668273973679703970638765459425033373122262371930480464874386006990222803104550333304897625298119486848950896381642428991497530831085944923109880064649027879780701138391729232892780442244185116540427442334509807811673890462634024519880681331492111625410285722654969297532938820072566339176873521531058801314714928785041224193389341624737610240926560451822054712703519112377347675048661556643122718701897557785913171531688893046757319189588200311561331922639072582864392191825996483609194062967354104410844010414690968050046266796630698548670109158215037416738179392181125587309559535071364524648617597880317151313190581066541409136323379784267404400019197571612171398996625352392066325080648531839813746605788509968144359559043217069777152950717626716125484071435752811899838901087104267605857822761942499413370054715710649947561608211089488392081130958253040210927665849218485359436229842189219330151320347605521257213578294983901317874994891873658299820761841120486315481041942373716095113050983490907337585944323575729030038734012658053866607522164305144168213964819808987967753337907250819849357089101993230280869474766424375401243379704465658435222916904516590584965489110158069570283099465906922806247469221077700103726569848321651632445757323423556736937911657039063214626618830891138308757786526179690832801072142207904736966988386972195814008405314385038884643280516171813707835165014507614889961784355809863715018813214967174014780104961145655822801310087100149813568299452246162963930599032234942168848001342987875519064188182157234078294309778367724260985572000322536106980171657783881139906126368231667824256191676303162922450571563956555638898824273969188806714991478838972601367565212351687779105234368341634392312949108882156676297696106036986840935664453291881168794022201032883480022738636952187640167871819572724480787765988211091796375282315161665497132477747408252210148832440763404760769669850943369708440183757318444077115310894613222311022449558434699024925742853012358215212480951105861852707539777158041048313475488301153558352694094213631646370584476626114073536897834799714563210144550082946448014810874046523623211626476212664047250931937174394540839813249686146367320039416562158072781093734826078425847907671184764302883304464938348159894230785526697308392844306206714806168594657841690574096749015368429754672137118797862461918418252084178335490685627695574769790662476363398863794815514723090405344303517290828731575369931067824440371293742307914071301028845113713858569159948038422856045280019739271276876989950382545584457977883684719801135400793091859526964856840861818338810568634224038967832993034992723599194073627107022797104467118155952263627999820368924459759897133936381391892868399276294073446101247794122595127835917651555528492321713023109525106680606492700222887649209649740173157220724476280043237209860530461669108995327930958108450170164836581821822840739523566372365465674869858633725287424037857711275550655951723171272397193437776457262559976103007549408943850986084571140966168515880639972307925916988641042744636524453121752579698438387333817211328009313351147879048939344873759297577817351596084465626820977614312804721664090632548322807572014547976009658503602697443021178672998774923419439934089879571415151296014770240422445897592887399032927856627849502127508726343437254300498161518065301685256771011507984804986140667701905594955698862841003642466793685603211816481643936068986512522595773966117968030671077958103238990149431143044594996160249193184552211398388592517863026762425945719766916706567357653419569901947461395811333343346968027396468261899084985242245320860387861002277364327097961942587735686319760114479186317951219828196895627787390807878403495614783134719260119526068961800264939868422244837786375551865500591024943339662399141193405891719712989586448393989766301156594756948126181782674692725625242952893168776469502245775552574121523830408358021417294202845373409565303869142459864827124490462692107774776790038822696643037839122632343701719178075348769039355032987875608380609314926193718500430363405155763711343154913000393325227371258827167034687434420737018677893441798946452887025484269003640616239666424729450194821659204484840465477429668327879420128552542557710840017040097045891453183474557224957780185188303789074894128721127818401116227364994040301520303249675749086975831687831029309977292556357371216906746115544800452680390813396680630664512244359604216656391059876754353888037590483169001439852692703511159940289664870982399578801335254909002934332904951490589991294005361020617226144756064410389085118898378742616113427134079981273926230444827430392080347900130658711226455895792068606097536937544541360209684813445886492793812366482690862329433041575732714559647684115096961602561312764867740724322009551768115421576249186167275818607443236427985583405113719477876330014735274414459834709013013702342226583594680876549957540797123945191347526195297231471006536109198380549098191762367679426320071586108797580346232321457977290859756057871856774041186046947296778110897365861813111460527883263919347543831067142305281830077137366376920572025177948329724555808185579799550062977571121133757576770036880313246975098490777121707926561088908100910764573755924738263354371701148416575937406745267573124205072127947529931253961781525531517961435920062878862453914054717404700500787285919086370193128834386732007663630983484809962057574477560522356869082293925237678832031508673328555324507608176180818055656633331510177766584872838504791254492382893086574719331796965486610244238257304112660727348979347262543346528422477861005935748066650591881298798703072062489544274093789475367538002903649213966087423564692350156797246461763522648547327597656352535640715966939123410246136016870105395971400318194011622805541352881558612474515183230728236516494874524823674005099063660437214358646754553326664645446817711899987803631501660200856919152044859491400130583017158587655937695661152775906368079518897117399997602714870491868165118036534393759384724132282909736033871211024355417752288077529793435789284509826014325550481771706999576558809240447450842260116951919333087064533996993726042985805982235566762669985052953874907491551900831631453149681404397883501909942522028381744699698729727851488464361605581304379810944092198601496329238211849368748269322122701447989468092319175961323205625900094240203614932738211010988373103012913179133697936949514807915827534748158169446346207316984359490284886113619033612581239570633866532583438409863286259298346692800074340332223110932988736398321165743513262353022913545874610287892305790085067374332466147442165581068309130383297469429746246715661905622371409868871520092476716631769689204556151520413382385687812532711768012007604643745697908741365968092540408259480095781101780998412438911855168250050597463098326402089470692431326059174527561119819891740122906995834664163149775606383020006403281062939074213270157650669536500214471924103176625715778157833745297972601781170150318022800415360980615846073548490868948243266638049682996201348950675188326016173967467908295343769907848527208091552941247578404069451906891974550092520426290367638431560554230516716384224724250681277140366331297371263691235034154749992764376541582706978751630241423769597311963555331532071648590707226663008856230385075313867819162198517871536149115508505361991306775640252843194033099751759935698629084767364940152396293781660615981829892263497321604055868674233350055799984434104666695329122597106309325010851096145883519706332827732695197698873311439037119538213113272598776517045763764824737502677480821055181410556183294932117527667662975424094310969594826068208347646125341071811753925037319524771754618677029225830660086767297202698553504023742650645377906512194039499816536847121398976768122421326476524807223094382261296732345215035244611470255120560727458875311708777806450997894230511455890781122577999847538424204796317406824314552030383121463346150302391564854626837390796486523464771180253764235893397097125007030701499572031546119939847872199687468513251415957015936715836881159091637893091913278960872994412987932078357632331823613951120348749706535538098505417015745365149766002705426000395329042731570414430692233500884672776838217725020222808189929057705081028037783069511708193128140206445656381083775801858438492719520241649119037610900531421002470291243719755716937405384069796129142262658723556964065199115306452966940844778827187225631169425704578402094263525804865319103096682569558585059628188687432571790375146085101772903789240769610070868485965191106507905349697785187828743295519892754515692492246442812390646062520469800037320104926447188996189685399018215914689440811245377840061103713622563334242905956430441881008557673992556456898646704528391940372629555758514435560650268429831304821960945627970614865217023752584705774207714786091487782774208482377262106452947861092847759063814893561183012296724439818737452872117744624930555726029942034581675998939203347540945092487076329755209328067570157578774039189402919412872176765048434405509424428300708320143076380839381295823974862280836969400399016397802482276954582858515661862838499721624215116800309382486108989675684514833563992874990712600366167072470100259622611398931632967455515684399330401335827136700891822473361245597085683093553685975738018852819154953299456451539031311030553474650059031553574067235079673643913561441275370769481658471332839468278165812582120842741222439840016930502570473065016269418022212334006368618812447634634865833512593642344837244279317645947179550120276979364839087093690122833023159214121906590003056947613133573872527260311131410647691690914026965131698739616905684462978945897166391446392472462029220294594198501983108648951621382124631141114161497984282902773074375196375817448538680288993565374304189059234171434530219137067644329080112259619861039620860794293215191189133490506147145139155918404424698209981388556887914615675128491734890640189763764439970974821199970349654370694348900050347469333704029708031681172657585144865632860939870747311754884416004970290030243767930413538456933808998798229859869320107866670092285858464948128996569313213602669241751288234862460936235598682679988088077148086835910041743913455242901229386232138538863693587101205320065249920440259532116154205076940854863780762540992409661269683078083907406663960341671224740896127040343394145607788343115186107471186368385195582732116361241649138215455568503960258695300326807670817096368502013176805702851146922402816794725742743874999156179034383994677673095919139493701261543871640646135262020074273765640050157005507061142528869224874715708496238786603633457294148740243433548811833884053789207768552572724073737748130925875588931739218686666289178014720278958716741735572345880571438896873419545523574674364505021393104424736330629225351144796375904318947020838314114737923826902770932108429514738098757682752077873790243243813551074419889382914624307310236238409776157684826841653694968330658216070894120786734562936111655456559121729374462328980089449917985197153561795438056497321427012993085155472189295738668181418866640918841627462720693911605463208835663413093962761514259188059761144917880532486417387179096653138233321312282137845847241128126690283852999209793261977390427514092397016747296217870231627746740246910018421354776535389759554760495589483459904538729029347959943809722466022509458640691671366522711699536744941008611723730765417731336698124655577837789940771552868206002420550548467323843611122941645874115084000970083227513024591376424763044170787711702575391955420197847958548925777286041245358054314915366917618431952664357035883117598588826188417444170641834123111615122699131435194551990094754884457041586843775556937801365664515770540303537983421709859096979525035427150440168786959738061870850931321877477217447881718311864963060681813279440515206620127306842704183384082419208339764098190533383320396934864162184766054950326454906426541827598411980281347177771378721294907561843257854605688538202456814301798026184394420641704085759865875940170191994660331369673934752295182919025859224687027157407779076532507216829804514714759296635761155977177261948663556728809696484646419626027267807330824067386092501402136361788769558580095131271722314687009153178011188761462697060619409381653709565503609476791676723700881790876116752121591006969632881078855059209026531324552035828049133896331628504736295213782733287345797207862124674755126126952025113454577372284460801784042658540331572128888407588375859581395147881275629674176948818709717056548773780089211285478841800861045051111232885245125265188631408769379818491574754559430227451952256037939961693884273082498953883563716377295134848875324497252148780766276643964906498749275131101038712323570374728174045768911489877255097485259827295197767686707596369942211084391593088951085661478933476225139007813387540057352717856583308871119026187482520593491351843736405432920784696055750556960833221467376025647612874670707461966371171744089257748761910106069185874973219934736262597575695750674101156839227096316098056920016254700519451892321265012460698002847439064688332937098178532952508990146193947866298629065327035601363436374003818178440167193581105447547874261751029046641570269283704605780229292756774374026804236493059740911643688873350397907035198882193112054896328544026784790076538235970673815630211442765920739996755311269699551378765021594369000529014326550614354066656037324186935965131473713685184918564069630632050972802686816723469385990019743623201801750128431746522774319276781116125146607944580045822639960886464683317062053098077705197235260408493562063832210414198569014478078817768995724790753982268857434414798605226256499964950226538172021881089338780384218225088726559622329129057487606266579158115409118584200707106337490648328277245319879256059758092983148404645912831962433450678325609529935706334509925836217915386809048263928962268890168021535237098239652354044749501281891845947980374651674506667577206890728122369785990352649554194873542344925520260870758264405754639394237710904327154649037460928917694581589605388172873767564853783370647106868312110674915254046922740328270462387272726759770762974583439455302857819819416059875195754629629114189460636635535676161602479145003396692130307012790181891476857867857388254092979878654426560912091587157475392017471230978447960506557504760227235704239798266336675046407470683872993145978403675164353277604174695156398098478584870413795001812992716035023163617014225245996993888580391700182990177075070066578410836274113868896939793774458279191247506209610702065828704167267601170395041490916294352071803220925307294012443456082371418384560599831598575612860413006387657887282607238606620966390213716840393510136453564958420143800141884269312894660485750949590560132520602097786719883302314696516398779471194991902780924880632044790929382362628837973837527168318118443659912142418214179033988332891350664679324213365881478746418919321227345244184771955647748071803742329778441293532798406133927839977728454053360589851224773138014484420652920861512309048256737394044836376745549990857313314176164117916161797706988515020562520535681135020254599999337726334659102857986907757994078680193888945540235841111687603301490612371917882251764768160623985664493314599446470344575334850542567894926797469379906083158037964222346746574108352396429171992340063367285893126476807542586695007626297320460270640998266166830265001663489876809077605655772049698759775951403768893124795622539005447495325573180078277784382733422301511681258092617099451978313713678295374488885669852852856668556313387697258118577682373459985645953211250222668586109184505862799255275405697532169896536911246799881564545861307449819569835421027265322704425015467894737587896402900484043502000527712284163878076078214779025790851829486890264104081715082493143201593081795795290859058247284472354070734223495396993524068018056676128719299206123290848909773777975091083527487440444425170118727289935244915383379334812290863671301537869441031196177287868146540787651863657367702293596072947646101760311865143476872614234748250613922051338800891922128995850323453905067773574947279281579804591373084351997756183125340788807875759986094668586669604213281255935842984068250205961964198397867633794543229537794373076758547409738873708947770761324685702568359912813950795550649445421476270302438451471862049794959592054176592039093581035937982265802224878311415862122424029572641001786496267880406650987850264804760722847095620916743871688821058563020542717047851121395466093491736821740405094793209734467484640023133780280552074267022827344367924497867889114366732102916477276917100038880349048263187576525836307183229133242429286524965838081750920600744715427154262720955820828401260555825549195267851493828894041466708428984551108050360489064877275430002490621253135129639125121294472489348965837082376555431051800519755455694592165888109359739616507215669135009592159581354890301001602362910767080300657393384424088312607545515090556348836282314852471477902017359194191423897477602180886865293465632214841585868097370633803400613461774032066005808521103073494906055809209534894159841964579824527991019430191543764318085811278587339866610017184666237390337917667059100369075922438224167868042358082494303966506465644540408931684843345933453412209709198581683665649570776492665199996699216091356102514968681636784406234393828487200306004848866977605498096024445310317877783958849833442356476466244726849403860173601309369418714315723808707527966439813857070504773674691106460599726202651238609002093305293792119195336754203085781209263530974451440241618256385956032060193751157024627275721310603621883026277860462526496541257481925792622648726866033334321684233523739684023202690960192107620330589630804411703311234149018097254565298113373567575752623058009035957044838614847369737495012199849717678899704147330446627338117854224320297369407796728272084288803543648392984999326628665242566815310062013116262395719256095517217553949262726419966320245410935132180865581003718511650571850896547529433699640816746951673475627916913486154177278465392860596366786078919456385853875970344801495829628625715433060620356101373648280659460905070525817592223425300229172349006065697966701320132474796331793863982042327535044025282020342314135776909825398876148057934855158706367708015566502703354489111591794285795455847508529624932958227810465039808093146184857126789816650828916842627122630628973767992782573833769171435951826920822136533384923972071759650782551075880649474500660549364263161239828402717745830165731565446165442478618093049924889822887789955472247365597067754212736624319833691531251002291373729308452170273075466940188833152901540572485815202587509105326189739279343556418007391914593162150504177179964693578642600809915756716984993144152391345856166427425102298776284384265377717832693680811631054924296975062500632340677179665170551738169348465311688158854541226769344635556389512401541601288579448479473818353649162583002893772009032314910385182465079773151914349946610803791526042240553085273758132401747397904891553539690398200592965087394163341996960620224874493974744538066211052416524209450969152899415457101424982744011588598805410737757681216584320338092723319536292179413616830762679230721563090248657316510647234695183750674748510126523160899017143341699864739928842608119120321498363124317569104474624556536787621057820928166644840771470973174326759253027484161173063528490003252963831797453217046924234004286835536450874786499218724644787722139093823755784813401876089967999251840420184335021641156776753819452324363725199369286787936534123698607526511189324859994120871749172359725381242530021889747346141753877661613778977670742929041234355122616234969636421377213712431925688501453837348385138726977776710549444751642638371987182607939204076805483313562858381312800201010847542208712348420844133814542321520964438943607685358997897110818813597630107475094767669636131804744597228513662205912696682410902401423743605237018138049919351219889630050721306565829127177694862938606592382937998174320891344265267889008777807605542248498349090263373856418096020499050891684678614846819842329814341222771515214444844029292448956053817447069623987368305345466201862418557802389709280550582577508989878601458527684886269063234355310297068018822921243163297185022949637543842033930165959866167568921233490870039736607140112119088177201947738501309929138082125442131217835670762033231407702795399645454645717177081210142619758850781098525240829490373285482899300870618082482696622883155878561193283748777992990133876362849536259677148505208636514680462576379797260159972769665176758166076320222606004335594139360167472245989801336356815250254544288397521024700753493437017961937011714790030249829720697791165589802040215589786056856406840181204709436848683739288622353916653906954730848316492401887715332339144020567050569283637161859926609107372420602315981282373453867218399571511153656283616305260880941526108585418562285842469561353903286926216598600515304474369120813182186210284449444225323258953785933010181601095762823691392751557005193438587580099680204431859754179829430055855678705173314090901618146133617770091374767924065743894998171281699803403955139941526222137011418666954689757975988556611410989965694616583841648275726404950206367919514314084376173338376281412180214710415657147853433336946051984734015167336330041758818590724064124019707627098078830288528375887406443901064957179858085091152915676209478017613882091734300802698452020024227181616332207511937540684439649883225130535037426530435558514114405238369444484988558430851839528583483974387148299075637659098005834277014795354763307589014771408576643839332410851597861145374622910177093693279396899015846693069010428928758724576598622988456556174206855842017636862086641618598175692889026531502323361090427762500829515079657478635186402476266057028581785166098999629253891398442707091264230616862000190328160336471302369241719315425279954731490419166412069047442448074812935900144654402140310148372001922732692929588982780048745900706627977081498222229757502311436751129085047905659831196364829943541231144936797710294558851707477364847650297571694644900138779618081563331563636995413841603209113159624158970103797776151880385015406002285668214091999830045402377073855572930142701308222266706608831255550796794825505404070610235540764812676608925644980302215875938216610805550257725597718923320006723761106616225758786295744652826920209354099541734399276492578099284639173324627234883559289425510073441881333605004351338118491099974961524752432504721330343303447632765841505258110093909593778023593532162399959018127412098130182058271227102465909883139724258994097027848851078216222552845077058276105890837892923838932897067407819002947122319982926793637902647129031808400079632884029818711580454109585016763295346579984307777434831631771327294157720586650640433042400834049119093715733713351822968455996045609904448470044706740619662111825081244702220711767740263848538267266856492660201210243529368240558339219682577058420564639280650307815738555738556938403227983141462168128027831722375378038912029652207521750820191325273743567725903962785655799684392883317713127854833985133887786894681898113753897583953349728284296757074021103209946470683635624808812596611352725924272775426408680459996596238119339027932641457066875122983997905476556537681125575438460253303463593318680248106099313291289537927173850104879237965325083229837916403285676239050433526489474471763445370599825610686868817115965616839571967920306290910499116556914362510710371790354412012264110255365357235205624856387061234343309314190063041206044982229208670231774807801032705566890164536027008335009213218810127215991966997925165784615190768004692247307266080271284173389757236938717454891429006406094595578393031786971509622392150642377910241359619172561495536047872347000486481348463858291204403089030330895938176067977019363484873071262685869803512131065765071387060367994852011141276391702115566361876977060735269258070745719718987745461130035264421848713553931295593674656173391197828304110556976846569806399859246523727183375000321674864140146338137168426437483377398682287029312713189040931655295662915074628251667917437684764192437176048375687803890513402958949244312177160971914941503926471280973956643239450028399752691318425107029159830331956808712477724083373007990531260427510140700161447112520070297000808241489605828977626322433251790996221013296029803567549193130128766622434588259812116489538870574252850867980509462654474567837713371107981203573439909391843165682745840687959782532179160985548815114177334234167405665414579896297654115966744718604129187626051612831770524915554284818442356664862882118901471086838856152058979546101592927342298410791852157034115750560355888359851663200657038485421621798726395707719481137613042532495882575967853725018645322261247989127688649174235091831235869023135381016946702169497285476726198367206321432078241878645391969410973630701155579738974847140047794932709623100034507285904850293230587705996300295361884010970187771697938167472554185395805323163511184974828589161009291529773330862574520328026332782804377831073045168363548735936130191962422903415597588659268112052753633899081996067356380786431534475016206861081580760641678006326317455665319926641031715398526159831376827169111238581940079370640147371227494680084232683926862369751546677832740536769298504072596303333467890994189151383694993262134644986751700972955491873207739686590405079818119775376016772586691391254123351400985197846845042895145707469527029073546426745592823929472946133491065601939051742623632973799130274545513159423650292242315900259229758643255709519047811136152668227474938538833243634949695464820038652334972254231769888828585592142775385261272158477896327278349723912967505485093003977821184467242097025658115766560769460488255905496092956525157027631897783534861268861095434501385873250976414885020332929909001070154275999746174927942692993291920262802251688712862774700105666658253869415548206427301260194985454475263363077224597018926568778967785568440497147061050229127268734788729856440129485502141828201327564570369951468935332868563812591337148781730165793931438373801234565770064038827839932251071819304445265968500535992920922570743906262960555353708499258244548327874948506279560938727066384504780558545917049234766570195909008702798223302069739154189120814284099147945102439540405268617052105911754871251943298844384747539648881773010600346722554570092938187698501581168063071581206721276673686693386299772327977105830502370844731794462133811192926989372465792408618895727226670752918359676522672542751295419709184797096763779482794815241649941683051129313289985811956176384372868337988384633858918805846833530920105817566444571675033534417511344147245477394436047651762713899401906940200303480402390874184569242789389752688896267551690771596558481920074247009041604405647301015572546694186600870696392562592205047396137344842993053314511535624587780255770296173916490992629169479919672328172070800303645007294807879127724990255966090862020470176930268681877496436521325842171567535034649766829638268676394177268736639414102767539748582639464980771977184532805212813968856154201768965680344702359809283325314649254260015789676528450851733598923746367280583494561556864278719985568900469658252271350514352783932161541658743276638574217400454693824944852155668075055591838480791811689197679144850632219819654080190062602684418549611358014130589598423273094746960002291507589279348210139956138598352290191188373112486340417277842362987679504129265386419876382002047625633689579259719017989616119898114151926400242581368958880453928606246522721157214860724976881709336910667814331258325437803446345383018623995346860519130375975141543985725135220246697294783370187821940062824859927868035658623745413090147980610879172376803189547905350559348519222156564645950680690700402654501392522901115903200460512787108917926164695658872727961811918601633085519164467049125164503974278469349066723283784887029396527501961528702525139126986788023809906681556325801845831247798621123139856690722698857965965821836549051248462530008315799826910591219820851564722193328731135828027900130973177778414900238064833677396055369143638011845244052762669576812970655036542965891136209288598290267561349333615128569422697085138109766184259395538474019449791906361855329769200675241261749639576965640791811007105507515255124199405698491767063403857271619644352360784983003336746247766912740177830226620782679350473591037453765004124914603482303909379452960436357752870781865614647341891285679620003413752171285570129901786796553701025815884710835684933095977723217507091482989631902209494184994801806686370799347784099581604838090367580036039645738945551408378812313789701385357648545874824375304039418992191201330004882450953975116046013221151868236470677308100156343960881061287919062424000464434548241701466494726812446730701445011757028137813633606485965976297958099683531086029014514203729082102735947575098430974081045308722372993425868338615584711586099188512389132227700038823039451785942892415648358238081549993585010861747079719535413843928507001961073100039447590208447359935668909118408098815791712625667135171860170484484137760994025344396582385018829319038028299729082536614203200208348165514118850378992857335325123917571802540907747474047432799099979727880412318672836861069862187351664142474075630407870334334064356024544897462075088899626069274243327036954538457669385882056842152323242089918538368467507137127277904377871751484911527758624861335133550164252832269812936291021769714217463057233016430686394671521690795777280400572086445284417112458440037067803050945209102695916051322213890700896207068890707494791532320390504741204114865794445798336542159201173332132964806774276139684129489071884233651287415992685637848362467806285927608689191443711997958055531909167654361218448621687748526805415489614127233938581282731718533687989098021451900404157927230108770633436056423217430809229627422412613530800727966050379585312929134370313899791335017836867068142044196908709325885563962546439491639712131316164982396377617934279553420834304771023657684098156427770076794631906668020663726558954082634267071741018723807600775540673905204631841799137368535323009697642977152568250766055608935576683438882062895310154260179834679881308614660807161484000743885580944580175701160917407494526015631379036445871955365732190011981863843529099561878551669342862871193157649806902153493836177945910579738340161396389883937263662312732228983524202965337422554837404282961192570764145186979589848410965785508823697633508307669842647629246809411400341224111798483097732590969566764385142707967925627512425595590543365224131758641763474808537749476282563568402494915584131608907005313241404063032023981855138596009089549006414083618126945938710426683023919072994677753939928290727385028694302249497181913662442806512312853245533711558176599868721017586049914907805092116422457656666022382484779522238675517788700715136138454349883502580896886107520817503606523878912529563344295626368104490846425928796622099926063519973830848034560404397533824365749206173906771898330027076382353876222300193396783528062661082707983859442907718083207451176291689714252486095494200816708305056537034634759770559690196046033149878924107334567409391387898087015834604833277897160750585127109051027069016980839959416481837877497712691729483137915154218168725776599128030693190092194622234177836718348063293161399959695392504515069695998032300000523713819207847700522654528743456714675872557481893598942537265993215092478406661013702615245157426847563230608745440629628937162009337756744154330119333187680723648090159833035176463121583344905518147417307974453589873428034764394879138217424717321209018781916298336415289922854268998044457658057196223250109167544136109697676978415105528466339937797892397033295632519709695782341625219118137271149502164379976533914880037963117771752500639769180085998591235085763738692775263843626035090811394246674647759851213428495987142654220370159399363173945756351880379847724963626751857868286817014853335271368342144303272811183086602515474827707485811859617780681857809387765453554733137783599644279550032330807984770464834601514611768216485466464333376263228351915622750078964759296765193212309930959419643976258250834435449644233069536812939825050395595181603607304997437272508813241643936004703577618181071861530751845097259326787629336394427746865127643567625818855269767575524284024774751412168598352150104728898714389373881834601898099709936742282661131592653226962487356761058438941064519745227274224084568722217361173525446434971634519425127013181220893048503319704735281730839358296920216367646005783718109840754006879367060216160584124398739220673242477086028687627141639245671717838999366491510944427878541763555438371490384637253285430479491889150088787728825585902287259410558292387568435165211252981019308872676036139807801890437429693465914784003673101694401634825083512630821296631867449533862256625322850843664403084850001857734271506488948076377161955800973253246928171166244887994606106998554319859231606186147847583710174060939180358400809807204903860497610882042715305841210623428131846041923875858470025874157648454120107765867537482226567917721579041332403743125001014248032535531915449229154646518778631639106114205819621623425348778923326082800768010825715824039110447445816760287749231919040817991030695253373447139864252425277261386102225812171655254495784421140229062352878837969149142999770816047565555617774939554992994438916035455890514208202284698161713461737324144875321297091208899765261653931944444415506113271591320770623422678480124303002559800454666882791425299459544287126069775865700425717559123988758201606145912739032257169739010380070636493797116246655494229236947519072463104931965812643125529127347226241847487287697754274489542091246485399224472573304565930550156710238332332337571956875535609046247761384699460547466187141442012942694031069553653416268949085285677738024945842328546825689242750973999730661172219491907632191777166923549430934217011085773612707805243887218514407898421977931322247145917554467863696365054350295409826203280672094956699934228261339193068299001610884924290932663114950170995515248510962895360699070058890455044659339732429878810770179908463628648174461081820261840091576369716798164409845772412080265081363135820837716417927892126520868578401920631472340216820170106930858990879043933172887890955156556234626674126910744756699952840769202636087557878399978839827748702660956460377125992836160054946999627852966621168151427399331031136636235683123499984722452259543468637355125581229915724124617912465714416212936397365564592110482561184138296998218473290570831316178610508624672806069835900285727054035074436095367232720082272556334433082591563523380703340875953142125062421777608801576130624712374289160691754295021806898267444175530833713664158016336771046671652764614920274920147724580290776578151058679810353427512839295107304684379189568314737053846241651367632870835123009763298550222236015661521190432692592277658123074540920024829178303732658080785077680496280383141703877968257583577774043095631173487441265975126026305985365130659640773271593895154624913742871659595586730074670883958906133374586663565204802443378130019425289150999557954744414055334447330507796577870481329105044652476211854238623128449539336471389918149381502552703610978574519567756852401163571582508483380098750814680513491978378060556533434772101090465744181837935554548631605887437756193250832630681612126025949284665521242540733729960176046559587623910751903566047797678963386349529328843639803657203760143324386858848445979044217315171337312115690918189616408229620477156183142088718755276175999794955487045421258746673324223847943616885137264100979527533393944783200060472588735671159994896534415822286289806593073824225221433797877267580286718164617314395043811749202277933090045147884494683903492128631166689479648640250150389383591026137117432565852564195652479762438185668914120029561912315291631718403829905506718572819634512742496933511295658805875912935082386560640776485711857796039538898439274009095269881395803417977573375153495007896119079565270140706182799678748612909538771344985479148044162017105475532198385984634311863687655118407834653089278140640487403592863448834053059758331360248331792780737184583186628296793056931791132569040931682522525185624282257369049388610665668271641465305510427581012091316571016821831364099154709957101668054776426258230581511582619709048578808389075766033585833490497103462375295921849648443105639553818600014219745722436381446828665869049057458641668769490058949160817935162763505770309746944078025096559752983005346181325933935376412174524311427773367868523760609423528546795201250439702259998248256978025145856533138560057783423570307157435941829651624200515035470282298778730899116729876514773806973287449783062705142811729289545441598215294808902650889806893396751015122665831944026345609796622577999968110005658830105388000568553940343930382625387048968650641562198370539986791771737541930068418417190796537524902759302778844555769146640068655213919671933228269026182996558790756765443614785700777624210606419618130850755324087610991012328344413651211784479589438057217573953891898468483522341856393458627648779199165263370049220556546551907625379440573125666264327831537225886693438227745746204543172731007812702423513592174085667961346119621912084805201674330603307434810561038145563918270472556771938050029401704927217151101245602293860300143597263267593498836598276159183496789131016463168665911749370959997525247058159579435649376031247200492504552167906717423152331014735475577460715893743158748275487467216971951616819469393865481787809143498333006354618365221931287232810277551991405721947937610840401550792991084088228063679391757748494649639661038683297719448637374182845703957345383250882998067111840428766486315676950295685165420946847055791081634677268451761942299768308551901075843976951263207668051829616336407562246086512100532023487110128063331010134131325179156836666370768259194125161098467894179182476832740641253478645599790850525934836019715088324925435301403666352741782058341789004155940076579882206939227286765904614584174153524365397364622059876374015907172043489930185481376282852396981201516594052558588088675028939142532703750529725670296117626569450440960764158612327589778735510991674444607159200107121230449692121050528283815212180164787353098371951616268651653300158653831347481245040887610372902160427069921009590806015106918704672490632358601106518126934946426878869094665265766723016388938473784190303794231045892766986069729964569695077930656320057927721341790491079356537885968270937422647859979463016295105447773447216350035342531771557382000278260393052665851801474962025867692367389403652660979292937591912636007050669743002250970008451160384468685045290502769703156831017570030260724485589831053962747808616922667987993106432595751208881989634129745552109586331729145489801834444605289096050422425576073128177326061807407833567595008772390943027171672329071587692254608665838129721100879870652729848131939714141151446354602511073131107251562055775961852891199210369283471564454574586239594371858436226650056456477650438425471385915109137748695637350692354676890936860424728837467711722243588607767172859169213782957328452205521089897778153838907435112485603492340764399690993379773113207294460477943345612558376819116191678425443106084700270086104027791930135426477461198841218933901788018935812605584331980381138787378542409647120341563022655540873498838536493491659713491449320048256570848104848474638044732276364334301652797297446347746249116654168814529802313115756853035751505680282190336832256188748902009615579820399503078954793011677640381067258934993264748545739565517393893505093411440320632967126512977615582252604681554250985677727941658190166596671667329752974322061225329098393845001453350972597630118699358212404213151075168882218491844058970691553777720956729261364638207537732482498122655710812220746262980640283393132071766187307970954411945978523616516877214556750387120394264507513007345216187971588347179921333319046211284188422169669345312095705756195756599749024189774249944392766624332547897362652772546316245677422329882456234191306561237570489648426580107577332226274327565934066549798469335595865774766334974743299783957023377849831507909030961717658956339874676621747526879860417741797983804685802408799563661003010799267806696151965067865014838897356985305359827413144649400487090344467676503386965094736319922356027139715745077000862904975782325598557313844873708030777396100703683694649555470165591370111533080628245003580658506480069381252032542465547729855373377692366268270959968198129082462108414909685235009250006382904792362798339304921534619097091515241382464514110937553853019284364829427157403655459892683096070484352971676613872544248855450565188809540148824198499355562025318279647336047913721372818496286721616684438425241890691389262267923083640822428702107778658924425634219866045481329347227343091254335975758839327020193424941213205680436249201238357917847499849033433370053312867418255549719186123202575567505948995569603582259844568595448263267177289751729470401136713122518037473427960945609069541179537062538387716677497180043275791025060772795639173337421859177074221682065532428101775769055987731848746588930872407563465545643162593365701783187916342943395479398181361267186898005045304657363717745152062873335578290616445300134805163675762414090148696023174221956487987176384123114950217221951273808936612844444796516330666244665460921954755459988229505033262894612225257950937034179283450814766941404996950738780110396581110653818567066644236345033649095279689648046074130297797134738864535273861403933497717323026075878032360823302780013227415666812666839065406597044764292702466541894891334561511445335829520253419838047138236692947103109611946299719270898874526383178824819416634395586567131453742382314285177992127122911492038663282221545679193724153329630739949881083169634015705479906447349250888289160647707065550800716019360221130602462530289985920497246289457394636139157888042748508682075832726193726436839036777810906946518899969146461976673875504681524435962364636994525870389894403573976130304263056739470146324577189465981149385916693030293541505210385102335944813382049613584288024120356168695366395646499089025824001611581645269796017195059916897329430941028155608731266962082167423297572946239671067389697489537100460290670823786983458990728645218289852436630416118384851281995862119806893408515428844292449111154733119910498315772435112016852155062449793517759221182833046428007861368083512865588459317515459870693535859183220054493857931134455219878105592485019424049171587420843197329007205976879538234203960349659849740647774837179194616826647424496397920780643551601168832877193097728189569784540936376808555978927608420021882433844883978919301883421331812605045759237498628727341762158599022601607875575378049254094218990304649842184499653166505489940736842689833648678185091607143607047141651725789806459895098901048304377617372395915685355604010245215480399857209107715886638280634224688249259743688508150702165611396262702173230670567171873490077493480709494313318984795471795431265754487762466885449854962645946459022244072652408945442056144318625072661173167400630399111404349102133929961355234085962293992900148374865078859269658304621661904783414552334969111568486865772713038021870177112674368127542005808305530469003297934862977217620824612851056185114822989412272475790539852005995982221325635606673195418144227818210590657741917335720041140324707439835171431508438688274183258138545322914171378244832838058120816526537159092149481728563187123743461719633809808191466505070592972849966295195855536828788712684830322887035419473476159476526550324040404250715587343285930615578352682260380047993156084123305554790328360759549062748851529141396763509004559476991937002239401925516357242373057497164563343124837861901943109807011078210626581935993682833118595583665729946550110184158889088390698629254832695590600091315495871640215027482600321030073969150309305775040857590501408271990406042457182985616525354947318652132893407351304623992044550704583036144142730743898650932051600165581080031198911036584754551957135414064108187378299271287826253059637748980895573831873435064317234972749166553084387424948636795966338412902897049203264226275372990581594256047646343354136852806415827427104812583620290815198918399316181977950702906718919505332828170414875507949936736906750002217305225853338163141043206778315451729226984930033730183624422434950287744476972536944701799256660449004050402468151429379190961533602206710357851595159138426117622691395474312661880201190389235474923156252378580091972303855451325160110697707373547137555874871323201166262755144682660363262375329283895529780096714406355820927209865763672645944525303650626154197630986269742410106341352792965148349139652784210631212930476222371932541343121589918230977901893217152876693976925741425987910084121240577199346673410811356543038382792058696541273906172144215423644198865609765416960053388824222679435888616343238419648512290327736231213051129669754416819118047507748748016131949943447826150257974840647539212550700411116724534915041148795873653029449223376731028878278970086316361101526710781780078969735654948984506046823596141395146825721057727268804579546875351311194149114596588346080547230504130034311169807694694801096769360926393480704724003889777672581024577136103716199765555874661243898285136112062364345910598452368150207564067104389279546903822158198979318075783737197042087988491033460288334413006777623765641856966388653327633947550312981797408458686201132626156152913571867045105529493587441524327513693062172063021368512867057323168387794327153087998287436314994123393356550328128981154747795448610774710854427527564098170993502407428381998996405785035163135506675743200171346679660726843538183463318798544859230003732952393690932324263866543218011101951147159087701539205402244438004186127174848740591472545525094570532501007848095493686388458866127762431703003817525568547308316291276735255853126490337750357438026117440353390429764882695353025835852899704275216160719133877612922556061267254119933149840543888021741822818929855975571453390188401569459772762312411550962691425301829921488214043077271708596705924127162645350802498063263246562345912015294475892848498838637136754660193598231652675987382928629378624259131744959308575478174890471892019862613170592282245581298026299362149809836560221260319129522652062939524870457094887982155866996997536034944041139828261853833911673178397282211106517186219896579449347910093642338141417666005221849112752281724376911291837202916830840738324388548570483035351953146950215056938224006751870171416182322011881897343115203638874888076042573968292983143686642119400432516008063822992019784895028084451589662157173370319122735906028355135125219328502848283788617340252776341196713552055244512225070967359130930898736601669695791902754797883646675853815376138748502728673616183281233648211802393246030953152943723987937519921212498397161091843655502028346051581416807545300079941415966724687885495817414522636709109893295300654715949027813384267575499410076323094053302178668770362583566564393573949749970376351429199470061788262272083462169434702829863772176206156852660404230769808719088558167412854834153500459733034934273551928393051678872526930143304552813061800611592113159888189077173592843401960028603217800256945563039920415665440735135559282224851603496657992632350255129674773687881087898849920731782379584025581624726090412560831927839233469148556020305852710501774534979727078218552182094622471042664785213851661561101303347164194781668400248923760736297321420516856107168832249524868855164857981071943638545793843906314676338447938964724971893595721993168971528671534095206792363022175416384695051355155973063959669201835536553662982994069953263467382296283453992729504581633243018244434692748380902018890226699024873407387657211228900832553778352688337263355867792759971055766397080556102371775211485519386420279849833167387949367709923081543269423826711930141163850679790686891175793262404001416585611534466497513562223979751403921709046045946199838087226875199688202694969105070139378073042791944148661533687867725421964028138404182681655535580454993268978648436361139791376948055007152491019534532583777065567660092504207327404549374571226584620666248523179034112462245132876334896907915328320093140286597134981700982686288396300231013253577810351614141833513113828787241151083268026678375215160840509168985479770299139091297756593010547452341035302925854866310239269695331986687324728037962457921086165366198675274030625587371011218201501590971023413542696825947390718898294482090166526674472358926834198967105438723571340750403428206999986358461843337976511106385934848924271478803554342143997921997006360336638557521887744017981351651114653412004793443947792425433159675042782598600602379439212971602986458934966303888329352302937118115905663290893950308576470910552986483410112838616275253904622786493745391678037168430973857982481403139809512238080004708450261184767029376212185631009405138486242888960048473412586683162810243448979692979743987802742708318536060203513088659170126539200391495046873721336540138852189949559102743126374465943931241942146019005512410788192405470667881551477159140109152228628260938463055351241170018262826770512193111659450538092116048256707228220461239169036098790816685396817933401275608711151301540074739091601711619525561004046074396019413897855063817621496822638155327516882297397014121127446108659269548947853790441148995309908933158085344302038749451542838464430463576985420780807765750479223506223023505582776566112764453190915441013293862598247838776556895081356537402690002121879175691935329075838658390885206242236274492395790937021317510459753687997371950013779795628645208963822565441969743523550586980591835499426262258753314627181611343974383724224518207407716819598383972793238773835096163445007537672743932860078370963304219581329591152639758404006237206233660263318351030034187294884389441132630919041657084941838963267143030678189691781447977990668084580643924366607926777130544653458715581175738924833571326770348805264044416545510862048462029666216981754746298006772099618784055311437583574424609528192753973218273874869079959767458970542920357814921972736170489248230273963808827612761500202263208180371319054752545755748513025537789225024083629090199645824317065368446977708740479826284803328087457183777083388054473436619581674370733256078075368555098276410926100999230581777295849993060794024152507228313826483461490027491231972827001487978798980733695979641892615005978958496474506619009408463203441833138412153053917863233223180838062280716965364218059386151604461772087078476490653615076793677440216871488139361750248665354718521841212529225371662209750114871545440158971886482147663167636467893696022109988095590203538601181961726588405969574427400284961453728698593046918826877724349602175812096763034319064181214138675493263590938444860686117803550986671418207844481990886535256454058248648535869793028486239902468380417663610030180012945625691536557737298559925688132710808062499652515255354120262345550315510016870632229304992311931881636885253579359479524112027090530335874800029369063770088540033560019639633175388642622596252642752580163511347055395806679047073286642490798114882161827926455001383246350599943992859230088050925758133541164322007116427888851131124769043121332816160992302575102971622054487275021120181533621462497863304345995279002552351260753218526950146742193058005115151345955107118355668652146625959769838808956917501380861676983065724412315589140386735547592323283691005852970983186572943853874537488198263923893657880878289998241498336866593579645422650180712239844696807284941832527513253040710015691253422972233773151508281842060450184471403334853675090943241457641881268712298347020025037956900271451145168580944996644400842576979628277589457000679443583612691143240672946252502569619021871144707110513687420047272017430046704402615136152480988635519279332782242282049523812332932534390975641823506368608005816809973509895358467424888575400601053492075932355707303855505419851021812393451245484514940049351607576240055733734905774035421644604078048323812668184985370109434675049036259481813711988985270386733239129612914639200438584050863081627181314889481631956225079922806272524160235797830723925820277452714941394482258533153068108617783615226986546882009898162383263187047306727785525650402954266397521376827203279585109876089947572490731996320351086502682692843987955301021724370659735411237343150954559823628972622976824822665274939287348901042277346053600789432039582730504827608417184286728660253332687001450873393478217001070830235843161691065259177580981409670604759786833026931032037079223930970039037442600046123264143116739770705455081024228490514974381694101824347674900195249569501863613745534820795890477538080044610553121742645294810383868951249414699121585564863281168395529393649045108972592570778528345046847689224325203516831057697144149471450537053352898441445728394833686655761401838629363076086642908534202089333464253187289376676380360337617991631398724839326262262313229276197226571633446517714748308621367767937056409595100715276875814587239317770057010515411673766446013083285566900691697994051719846306912855067917441347016601051072310122577355805467199140904205183452588180001147003268832602863526801282291069211081127371110336968192110406265239027401722353436199235443184097896049244185276585237101808796736864275507280717081848540973701057268185016824360530268394723686950167738397736005389841507906076684852127867389100321946440901535170350663906732029367678168963778802950978538849973304266380508527146233170611339077013826867833530995505200072980253278438007281506267585183643911897406068254168099956837901818240754313607180344101937307287634013084629252619141000210255913977582507144719276037998725765282987142217821117497667018561065658565476913338301468067660116836634949966066930938529193125412805018881362534327178510878566715609953726333312597924007278078608053522357444691419087799908938375760038390345006481500644802152687942167598617639826435857569935699385063166418866613797563413041428799053022473353566783908920957265623238063349909586870204195181470912846236953418135802837297986192645155616266285622385080188553094591755978704922193580139519984646768265247277042886014305970850358069657810688810985805687506149407335454948694889440797892714657221326855920432444713005124202463905208432505964349597035935272974169234770073082902864675688719776219008046383621092256141503681877072066907138557843162307328078132538314006505201640639797805949517386979786868186354230687618311376653793621995732874767110179337670178626305132990711013540023786030113448249980872391640465774877339403803560623642177631636855014130781483919393360592220450443941637413240784799477169877678025988284616653520808566216218280126952834011750622968311701561539752791206738048217171498126381258576196581321971883655382859596113101087079827148284471226813187034815885091602345323105820657107222313896987826732999286326337743679696934159893556675822290551525192302293261637027820991589249703017887987695673824493589730233526131797034520160705681874638598083926807279299626930371548466790482084268091995283938722234627507331947004462996508362106760658851861435184611434733552638290891137781470078718435281305743344578026417648767187277896907028457230254584174548945820327393128934960925608308619251015026129837455009748618322760391470526598918033708837839273834267764995325605173176569476312227903186645306718313454036229057167197750598519224236711740221186674977712122321383710729987537375898702302622930045211602869408058752975864630089768080480213938313826978926532729466926350086826815078743499905114414894872638038809686817521921482305620037393882020340602867917601978452887029660404521466316041657110469376337461350617243732918321305639902486580712864289939262016638746070845162910821167579993687165968447977978227775111484980583273726967855187851294048131027811704426016101808732429894391121494788109995597498690655962259079584681801696351957975601251817798018298409142080489863424621044502848593117531907311389127539731969807551251527217550630428851761000592826433988117558308808640795117038361869720746244523361476841423924951068314185872498901299422033770578233179608883518480435342800436540359750020073074724854314143340467073288438773332157515418535982855449365324224186242860264740990573577267975709282525375297307696229575750267961222743646460305358136549165933634424394873538923880751859387492230818900467424742324243404796508578843558527595117313574987614867807181927837571347990514184488315496845925098835073426338982621446390663672099961815094572518416652568014471300812563767578946051010370246987780705708552496495258432058498083469372202678977185446278730302394862552930673822851266518042608439144284773593239746082186099271145091611881893109761605493153070101999046431761441867739671436256243798731459524937478724060547014628527917709856346807131490628661185072557785870700476469354857363918277671696519420825875869974699840444638638869108979941270151203462485191010995132957562761474878654810639483395483248098734890735590290457043802751519447124650705954121380894447816564923565631257553420559856628700542925644725057333361247415610314456099071019726936103971629548299120201452671318692397052850183627405894056005483209653280174682185398402590728832161975410734956578134869851251857010612658873179340824056093397487040289271169273899255329760451655054963567449618218588796514890936264968952917383320289583953000697223508443808124145331247961039474713669874464827789144953759134013350770797805693185525120073008320371866837509954966317963033091547596987945910774070982380424388085182671962054329979432538632001788215054435504454640289741462973486969702991950371553063788849935594586980345296810927015377111970817555169795567096684263601085109722217631975454520804180400774955669218774359198902378853690314730016575146826610803634214360298437314765826912683914421111728986027245634101951803158961534627067864567465968768301519219738011367736488165139909413735765934203433923612216727467120125423404211984703902604964035070729408062453379898934491915010629243657884005699319227200402794946594014605591115689793452946243621280548790070377943372008487058267138784341227562837020309617582228588647215239919089771624548860711438930682020874136095147679787126191826194421893480618007715133605002939691604924915775030527928875379222777310175145295699994397392571085037014396768474173613524768025644806818375569785493721806330527736982866768863040306368041232054431542290015929647201817494647494497248866764004940339655025776745078863515597976300220950290362706477479857950069298501066661057094787179278555543979692437723858651760872161316706027086604048133950700412184964165470489630821494474458004761919883809888548219187213052320832850126930850328066741102036861539313209418698652001231057229658090173403827725536410866296086725561222449523851621244073025939239022392768271126095518841616797697012825971340793636498488392055706531180218809465026668597426955739206033114524367502403385742654629409140046850189309918887873031050317568280303336484980550686708616093245048919338980542966767341248365180151511400678154807293474823109579834405792868114949186569894800740674477254325227804074985700242608482851342290416354655424399999106868784477015836946848620977091438828689579742544357235440516307803896953729464698622693725281351165757760075760877473086231995920421989080465720580288351360459197923126402299292733288062430293061605349511432940443495313355445454257561751899032182250071318842175482348900650120310626817251002266665324673528800631054106532400362832718358343435555967662415969171613243679059304851218010007567240179307796145935219580882417186708797147299324540375786192590905442469439844000998150083671091207277969858651878386945702313750591213625295930869384549311043504519896457637452197676227948860429140768788196697188633303072474259285792488061400219807989028214941772896300832790076333639891922657806854511172119874204405805443452677322600029661078196778770511830539273990269036875197957227436086742702168467427323645420248280287473431847635673949279953638910946989530741902194807925562902237426798895444688923641392239861808833128389277939896427646554270262728472959437515919654671510865022647895777479445026629307825664385818560587969459889244930696866358675773762118322793981409220406051401855333505251868397896587765103230991727072832352520123839615315693416913655298571492096044662182511536585125682680816405862890525651168723383522705191612236608021737425826138943168967371613781429657954750210494811519128330667272667301281539602005567697691306643105218613985759667217482374363942536192328199370641896456427795621568307829765536860508707380655552290840576035196567992731205227203649189810531850354300182793430606208753699875460287911309827916816900535865640665670851193368780879718803056571784226230523062834655354533234005562168612150019811222064413633897528747303245798869810367282721103202505381369783949725433554969741842781154700436184109600761754885714835445930596355744951110270431371460086955106036972295490320484811154837807342855203023444597359696356368038115964387160559878769958917099616653488866366505418696520044314425226883686912360665793509824631360969827210305373481056767072226294036674050935781170864190132366127232222365479750915931391117567373243884131349469811539471014927254369309495419413690824275004934223664049291718302126692802346119109948155432559942153641043974511646104242342940891570961051075993852577689691294074307128042707386140179127714736294209300354852779008510869160334222224029456896685383911462832761417377173280334173319873173485855590267911162297133307982542025183377910319472126276549049869498587847445991552486165314080333165747904507830479491969649829619473330211048270217700871531826920228133117611357295361419355513847716719577881680655477545259344742973087018610081550726848055861651958977437407267383666024567250548227879971250769803253275028188561144234564252690463044828302163698608982048366265148915548444157831932900388942466249246706240845143001525314459306904436430025884564881346142275008257979281162498299752639243145081916280082480213769380299368327829994952535804883150337141562898281771704284309014339427633273896955785939527958839230077851395402891506866565116218975526145183812170526142511972782766379110204131254044676869602033690245303605098477911473075247717311265181756358533900040677772880191655902003866430256069729670188205732655593119429402778173799072808405023862811811689877429252907556808532737764463476511879342507517771254536053193812446277160812560511152863919488996254882213088326959269109438983850334121140930465419202744405368442117252195831829393494953958872528559124341041253625803761255316595798318833651275102614366834158096340416715673990847359654165437204804380482605470768365913922561392573856664145210563424896698596450280428352326598556847485088863227882662196472824671794166030502088758849222349245646774827417300181199873233528379276538032116399301876971781839518372535643681817855440617300878238087789732837057820804067253952003052116200504814580731651601365437432569525539929358266456632525744841705001765832855211775468649387055829197281261433312057673002621330916511300784151983890123883692956905786705096784914693073824930178843078429114163747377437887573636475813619054870761032832602404871462809792851326125265366285382331768445412746388421599008151583841879211901878944727523486176250028628203596705703555857860270246503523573610035858353621690200990025713334658364803412634177864836562838152423276839710345622698360776144805698574680802619222845832677692994871573176667590954567773924337681492925576276674406747636676789946294513662762213810349077839672044520782042577851443499540179597316752457056178191831310502751060261859517661636384517529437919798828991954582036269750632534222869957133848025220702617207126878200130528899190548172590129772623659766419446665300792535978764168009534262631508091970026866055589752096279386668798908488420124365179322187568134537724082593445323738222101846028962076967052547563721408361467039605985501549456509728291305655217147284418889095442347074210452003005941388657335606010687947280006537249304663884070616208170961403031605630242446067151550192184949167681346222075541777225906094240788152549695241814252214311585709947247150544658498267294033297910912513040341054753517968936642563720039959129006934138149780141465638634175268695773560906013698198329825082029512333971670208705969855275138311208245936039129151067688122190355384066466068064535994864489381646589444934172534002268518136690562689091135265652313778634261844165039691425917420494976898267579215249409180421214983877769900048686464596958454255232109575253971027703213040020419807685811329826751590477745583681989881009443036567822634308168660622534932133045523721766068303466245085268405912511546471275749876829641887293844355672802854257719056470175140741399333977785829356731419258524901303595255059875630375176115411726661307218010881627964366641300999779105861511675355679550103125553285910784204731371451212928514387871318867486551928503817277694407324325782965121771313962294732415885831959905221960409652223992171283289421152620978305418745066231964391457782809053079870076210514693255701931618591121867566579161477110426257357968530036524390871963626316341909390681975839890704714465125983625367163222752506076044315321691706819722515700633622036143000125527276759033354692995854249039737153846811533543266520302545276127707341360172727846224409225426309389692431712577860856021922955551872066202048420053862243058872696500180731735096924949186725277521295389911077433055215949492476920404538007671751168398110770572588272926990097938931432375076600518369152425199215386445863424862488586120796438153942774794409269495485298548775470561191802793430269369441692895052671874475859413921223549354215166288641574927839260602253263251089536576223123816182094036317967113127000910277445255071466494260059360340683692964291042510447447195679355777986727804719675727565979423128856763694783938830492077481135621021983341267978945989558406940763383638182992495769842015365857836586840289232480080280135841266135733686242212034152141864405401327520470913249274004925693704778603857630448687866974470436549963900507431489576568973322295498336362753355435664591978720774461988958244375851685829907018848908073630178982171920017997658039455868371852677551520685543417722646153034880295735904116537980881828928738838110472734653014699680832269354745711383815965032752978644453399987302180028019563717384137358463050989481048765784352440926448223718019133944383368040744133926637795915011423005070443486300658487308042902009935198603595954756863076486615411655785212386722256748482854422583446833988674548332493402637780514363945453053053381616643614039521506996418110318579456010315471047355349668536382629230364282667587705432950470169403900571523686471874026415397542751704361547053420280664367266094440143026542135687102042567954940152428287671819877853290350052372811131677135459930373365289863695395903408033434346968777040734089207798534967124269632954565028341770120473910576570059325283862849277354191368667077080703287082239382152789493128291395504241310812242530975091939875446197463693188390556096685847268351402900367064534640929282838250292790467742263371940381329105346937896006747943283883752408102896216093355118514526735948968789952527227129249929814427846835903830179269361838797459667571552462520812863128387970357889541625677918075754562199696389142984136531169812690272222172347107608340317718350347097995655632380538209995485126790646153637761899013811932901094515979232968605160395566348461057904937790370155250951406522108126538610457678841864740302556809101562927754487045002418756466115555540025966671026385727481157473467598428357038895819226060621552620926754274837931834525260344291021843777134530477529113955511014725266724995454899759783788164165399699759395968553155426087713352430198663526487315264019626251586301161300373012870110015791471678161334054754821744049417499574175788574165136519427265825393820898138304026043564358050580758523131513217360708771622361435704689526849392204952287337997858641451155185734015085368171466365684558754428945699880408138959555303501625319062056713147639293605544297253885545991960309223732963581146935636600728075868234006399654219724289778093037359806847300654096828309814199116586778759711257463651390034580040750341540068060234963897101681324975721361548894208079762597970405989541759121882627214612009441417660839406088780384741512885440055976215163556890075154423506665898579586540867391645264464550409154140185064385343674922073554995514049968422115612207412087767461737389231671321517075698445338200606902479765921867009185826778301554798850774502009346320277687430741199560907422639306488475836087804954082220507075163887276671398465188582087556981866649338526468466898261772163033339280893071129877828654318715676621640267509094244401255715956302958496306874325048623736495149691287293185621807437459302273529086838900344808036802212671829008934239459018577351372014779749084775483170381370330539179300747133873337754510041940419666668860125975615627175235048810481709616064868613515731161595140094490890269891789144438037772920314996205925315643060132253492740138541331214989158810581582741183026128328788014000118102756096942275749758705867297414408808606135113242346969687038245905844163662270531619488849000985124680957415714783592011719724866146228223178642072821024594405953758640733676352397828877096321520416727957697185633607300494299560245419449108895838443038347551315058484017594997672143809315528761884841528801838500950267886478257687739453645151958645138363434705098615398558733897924852598531287905998072962397588215508073980370820708966772609373201237419175440176567384009449697055007577407420485874249238219855808053295070504881369796620281814676949529498301497663220012986455438361548887497657473430593513678679049269475733582817242931557678223413189600015104436704243000575890207900094762101204184525444072728727188441105503280465109978719226595366709316803497973465125029876945214296181543505476825236029056640815256957309300005563580185308649609644342899242962863238213659894877646975551060296901642682233887673016913688883714542744827420402421122824478917912508057151640386999959621765900450770308816215341961182190203785480047780895806501632298051073387835009984485087125185097147277637624690126940888688909025132539263095638033670497576212712449518273525889623013953390307705181527126040459102264238239622647455436669238886390119979543948416774122107731239082493743847658723520104510177112689190634141242012008024433237203023978569932524385429236020540190790367600570008213334081230442843912044039508740955705656325540892956434321807162627985657418785274275319335913711576041447961169236278296003566331754274590506707749585332667880471629637595110285662228372854648616830241771753541844515544196986253322216232230733214527005214087268462767630002460845308729258157945788212002308629868984335411224964967641937141448992335932378497896878266790952043765159323117642205527286192312452194108170039503757916297679039204294737457803759411987192674418050640669117848372120896094951342013067803727945221789374799945834946679752801426592295417043493602494608339305551367581353571404217158671064026113235056101357735921325305702265788470165272825565020842739522392699851089568474374788883720216895153040186385478367388364517585496685761579833522583375079307984585214766586630853182762082502146119895837410140351777390941075678824504862035999101298609068230859219172905472201484382923873666217277034088403201937069552509891597334304981362064324403963099793598986429793504226846147820443662620260261291211383801665895769581711838685396745865507683023296158106284064521646177263890694227793209024502191750669317256722349176148581082503956088743513196119321069977613780839114199425869254332693263755823433048080583634796593189825163111991070043557712170039570784228985291314965518495854032730721465099480297730081049391472262509100415139851358913828118579277992814460992906372237592879068587795946119035620362200310106477272266347730655398502535225640503582654801196879923410280653979157428033484026381138966850678695572852826800483111149168451910784348332310909473096783922548330845016753475508007296136579878327451791235054775044479652741632415976790889298840295267370230348871704880841114377487782608363457246726466188680153220998796021441084060101827728157260724628220450272818274998942430258588646149816495700336900916005084414607832945186960626119053552682316799634442737445232118826077144898962904830438458195656941187160207135690750528911194834409326582004486877611434526765157776143717035316810707252628121227201545847726242780667146157041595304311565458936538493754924623462617296240966585256861484288016475046698861963204489211507978785514476414273200153328123754332859713600311433412687186415248056828817898980977469020537341654175904804178210175775455485701768277839531211376866404832471655829017614186499504501338546647321197565491831413446558800051117576236471348886724124544862242986140854196205612699852814457123163457538223618432679000899570354452847348739217066728137621626287893130041853138086777814005033315799731745253058792687478178476543392466994070165723351412805797397395419217950854179705091870753149923034928801986536507174819982098850984785671038037903286981019722567761789658569492790323041375227244548548750362779279364469202734648125004409229344086053655290591965047027015656185657985972083922355772913792782208208081246169622776397946938438462175908829352285188447615247343674544022237014667140936658581103916594312209255943843866721974520234504862467991704890633951662245884533079384141677076004826876697030582935033590405208989354273683384976423708075617626514575362133306656309747553198870464346769759501239726169627486720441442461092149753120160087905258324518594506780037438494596192184732124043787702768906826222558635342327159886553669109391603626537302662541863698741550347139761393268004010339440287388402119288482319290462438403403214510945707146182830914648720198926282487150290101304967546426844905792870557564281958064037776269583250497258395862448378295240748483339998926144980120169352687278741656913014348693600780558593287160194657420654446329267466504710785993258890884938391856437622502911998749013220881835192603967896871861225396455007222366101667757162817782014205272596798973912011161694697071681083552162572872268249818337026575969029878129446664515176019597626859477123275847498670175569244947012730269034472056176946812035925264332255922549350666023719029414686589353026820829529472685772565846614793976903813553760823559591899085083217402900121655623415808840403305194744129380860903545095434513617142953744411416597678182069192436364964956029787162820208701005079124900040227039338492790057473810429787594410699325754683064625603769269924956510253328469491343178967081142906636004234401019080819513427739865740633221781277366269510038081073892254555048347785814746869723283147478351336642899397386443769966597897771928343910631086662636727015057605121290444325811015311715280524069812887861405662251142869269024430867957355057975319200708096632560584344747890804685395550488540763122204433000683525543675029648865461547636435890356991467056075121495288179990939216217849656093624485335037657828101363140720290393562515629425653318912931915218573261175764244087176708553975628162730939386538715211787968165485530902281878965437417120079713706909242653878985516150264610134879826879640141324111426517025316668516191430758463689789013588572968590957492449150836231026794691316494652344780336751662356400567646043600758233100840337689894700594526445402200399291234120419972977786900189286105429309417219308514897029876678099824722999544068130546385324349040864597988032241585686229292210018830482213927521054673313635892358910169545868081943479002391189604025930910112255635360708603269582380861141826809594336951035578171168023904117479136031606364196080673754538109277854734461960721707524512471777536627478905934396490117828004301170305339208611813477299142926072964816728706960309347967946820285219525553119484944317753872924167923906774995086357766199448556642649808716815972114510870301930134116443613251449753195156129042996659824220400007120557851435135490195717704385818390649123491832687054409216938235512586339119792416260081686964263865032385924316473111409811010869997816828838616787904692899706534323478167597615321922517675678095216826401582090407729185318296456207905930911762594101626090674892328458556465247153794842444268540171441567068197842452496010519420342168607439461929313473469185821576761544646776542884839649368304492502640011801271784006060511840496734611848568637416204087465412635851360492558330099764865162771254723730471072924832702708853327847981612150403726608767505226808751889339801810747325239234275455634530748827192656540649762126459633163961388411627681111587765520853175742578543439589300446984107890160768035214904330404409600884445361801087569524498599351983787212294304567083627346154101941734599408685312808488614159053887234844197624634037693781323592706116398225106389020049554820079809217569714088306698902156058161197522207204607786450901061234868680803814622929379252446630862698871637237224034484313680825047787286713408330738061558763474389684719382392218902672913753447241862211549915831976802904639288005873595638898534266631482363393592213894113053374773419403510191098276083712356901962059094457498701993932475874647584790088758053479513930303073745821562081271569921825643552562058281915601942409188636508127122827844397261212080837360253050513952468485412841880090773762643917079062914484688885295810010890775793134666553926401480046099869022006525337289098613156993010820987887252287547929452255235344683916774326666589014028448058531157205464351045704587737006993427195484202662035920479360503627322417251081557767718673107863910877431225714575940869542175354006396441918351449003818525581058939970035571861091270218783893285168607190117488919703180327335972358188199424268046827098132541088711136738212638850324374036940269729266660479646532492878621259379448420690529133680649411969940901982140779892938440988373844376482005372438352385229457925867098288567225287471214861779659792231471628661328156578880125288667995345490697601668162899842817356076706958028556026920740595940774842217558891515803351855642739411161323110786311042800975679322760620416281077409265780788682558096539931885600224848523294547534396030478379407679146709355613611057609464006451345111545283954279676077290697666003782283931645543171244391692172945672589579432243930436120175730764214601556919541891623213055635482454734240473110242580149761232319385873706752289434525586477201475216924333117229871156841534005830477059614442256229373486681888780021217707737540358200921192114423822091821538125767971627408098247412705464236054182420637751801997625010882298354894433970994173673662541511932584054295679556539700100133233588062874870596300363962949751024170049331847187562523741562494014347924160591885740543036321968101330339742475865325066476220746403933749465556821750416757544737346789556751098811326856360997047370506547547721671175813324959654667886712206738432848938215897958199908787607548490920611245908749087685093850582403317692179048709952230603507723309821656140490693586170433825105817746432478906737229586037791212692835629119060603833093312227020355852531584225213336815124567280596618485208767274063176788933978684877408002320347694651442917245835954908882009611035723294059045421041223549015922562856408055987989240244204935574285132959845911369269472034848082522143264240228704613996437511017310880647865427534365586377194143502907074923752012945873379423142638425683636317610172333800943695955676691050156851698960853789328824851040379327345635823365180143857854704726508634155461643463357034424832092802089318462257851001166248853987081455531167020414640917604955141461221595549925057381279383285740221770821289150527790499973143438297205142900065472139054097538026723446167698092599846943671179879929702969780779003310407223472325431319731122868754710363139112250259780477452288555113659406202539895587017929284730073873562491351132264407822432620948490916741493735813839051157075306365095959330126782287131859337594190360576167197939065017917238712144713240533299164285530368324650879307854984251488115649911333801416407512595851955903784877655260155111409659108622287934058456887455015574685965027446188829496657377557377543603931136662991933368768283685700293324071953808300556218521469605437860139274580006691534179988930424619445572658669677224837792819637203304971088852178142235966169720238096080561485650315206104579706339068798790275359098793225298791352808606566866972350971203242009244392731513202342175887047973277000252200754674146776242654451953998156871443090302265729416246948382263989297637500373841071392998967584280651509872814924648365590644257702562720449533017182287697762941700298737698833295286440539023045838583977777689895449293737702731210865850229149540118617326195345563423630874596759773457698976861033234636379800736514352000661713583988051928900939182023410799626792673134796431951173186195010811750497557339480444029385062229050826654933518518867592595598989783954735837876728445344767751569055001429394565137088534793718637918792670669224667826673925899027033679598579201975872266318776544201483453815753837186403218770281450254885136601413863133398222511796114056644649088312190988644501683823579163978734644354459536019652700230125824411237865946741247604976068785727177711361107517965488558032089831457235963550626058272830506486356226528460617403028801840269264676859602555182539509181888592053688912698065352193764513200401177228535627356498152910344458104301694625551458445475600589902452339415207136403117584890709526450042609762391920678181478802919749876064566551707026419436148985762238788574593716496012506303788461914504957667395091931462972598623610333385040981711776320632119919786583441876169559428815671882781342431986632657546899726638879219185974617469854610927382042792621470648399035492152039620462641883617885938884720486112333660072647336915184620563665398405781266977473949568809757665183569091917533955446373506199161825851627392349414270188897055509212319711707580566719886131332134972844829427176715050452769936450532240119749985228684903950344353211257728290568371506479713744184668116845916964716179365959954755945689364159758412014416734994195824522861812365792629356356879579514869005232679724162567853931340378570325281446710684620351108534103008029276972835780272207689649076666821429720472747733741350056501594424909845507004331624944534199533572956026354429452956874128626002751309436173050911335765161620828454166390753491283171551742557822464869680925618277460912661367749745748188477497266802350698870629154112985522978776431616625826025862378397678661291962400683446132236467193460493123679737132583278993656861371854545217860241484221641011245820457734715477059239695380339188245111266067399358645870253273594039215458201999643707190861845171819246190566543032396754842742440584489038740926921787605966120672354441982129805425164807227668221996249997966022676341351211178573975123286298712289274900128366442408280680782559860960225290256745660272077671116939218338220501585517561610102160857430995850141155056882728742721316999469227589613596085036058334273125281907136165557906705362481522752979381531379247623394752033370376797528838409242524157057832471427540399667651556701093101037111777077481979592368568829490440776478531317838302620443033734606855879860127862517926227134456750453784261730697533663170671847594465029285718866466942149730058484459768331597682072688372503517450156743690025517238756677561760612439283028550006756564628025686514063155986988627611200489580896854902098316167438291258153946207197169117643983389319434413424387563471526596604123209557652814439310876417594557274526858766257806712847669263628318292125571478764828448152279968093170182131691223777005143915666991345035513364329128867906461186196084359232930850152576524507897256414670820711440484481092583240552972971706434975982980429539949382851557580262583965754288117465621918862556203844361030022465962101797049920124918250227628373496088333355661570659053180701579910511068784880963147089665175958872543401662227829256523956153038694159673030129480333082098191149705601611187105449384193281193944388583798636252855753702663480927431776450676643576750810304563228626654627036147380585105015178643595904395054474665639612798333912601946366312699878512671960633434170477837569852586621162998128218269491899698298596760127660226126487625583244612030198454444455491519164972579999404943609289115143244372925885973103698250602076565439218162573613034654689450291677754765823150140102492403131856608019278695368219833151213163853382529410419267593576082696123964292986452341634849224754950945565027889589394984920944061618843424233023594005161748573439589696154496304753243012474747298688689492641821319949492386274749566377994174616078841877008209805466736301626217690673991883460999725259931893257767487620621441839893404985956520009135001909978571512853489067965183248584911003458592836876492233660357584934580742897867399310284573517122691159459962792816229220406303553313291172999196286081444550630608941686688751190537516808618925624886546650453734189464568399523652378010701049282080787231073761965567531705858254186324075187264003894431648026390449999754031463249781096707813000591721917480660858601300594028193594702717369463611288077104406083351234493294417957135037080780553806281464640789593178588286684059925262182056680572160342564476397284924342414720301984402637231835280779845504429683412937810863550270623310407086421714710816345084539770290760961100502061305473278059104865932585042236821939304809807342131718256496271601322800677535681680839981200429748023735221307490832357188600762105707134551515263375413368139539457570115242429477731721842986868442709418115958718612063791460734211858878518064077028443907511980001816608178764449929623578755066212332608940433370105850250278907445765710917893783449800817095185208174676807304936665480804331166953381965399663908428471299565153076163523275419936244301564200976927548447973942852009249962971310232511131992215498396518764906473143202915128361165091481419937904795562861944131872242101762352830887012349937516683455865469079284658727438699416130009216953397689571045153970775057604601598008683740038048069786993284662933704370429945474601945280601205617024331856444154296436395573517044599309407725612445359804835998433355515536378876387365268865447510410239351490497963927603386800133854711721858676879840497878864399089314549184692991860054837185399062105002388203210648655986623543003759106428361786515914273219180143781754254187052020234625270422873498888328384832258806551422862384432619730325167625250509813276697661961905493555094013494055205683083986553925999711289772268944873154476277677393354275785156556139464337906315546759954095821126783443336114119057235201474500018030231048419240800809234015104969594223318379178817116254873092062244464984604304072262012704674385441508193834974590721182069319235652688303999956161560134622259082286613121518336023031362503199360816013142820011613137322279686029223854644405241338125240316488700226451366955483233406742581532830259698323984087975140917870986522719288455601239363841582876442901739162624005647250421080106351965753429039691534638028953810201683524392859651058183420665552930453397957683570966791531810514124169630285657288004690464801233355852283995419198581399522870604247119194202491320701278991998609720698823232960122260846112188636070474276700607612108675365203373348108523817198247416053329185485084655672745155704271876634311061989929441941309849577249644917441600574394593683358486502397343831733228972363427105212498964470456130269329634548700072854193885698896422305381664082984366508225038047832550400022691808874769217791535525681001742763352614725752489414740384881733862212384039480798635307733733023431395747261946992020519576668375322313674466232501966470683666325077492372702167609284984876107910737321046549257413878419749580357823802547920960237847092439562907011404855365657361201113658323161491541768567079000156064435437874968768641417362117745276066080025522824942144474735979013213945010190371167047794833672063970376497294131446778366896343003101182246882099047710249957001339892629833897646917418437703145537888569708981856649059307114683701294367333577311690652459540032052804404744765477515812295872993103185450172634853975684286283240016257178875162662061991613377682682909891844849772793712107891315270185179587644420888102377557715624037374040906136269006560419088873228131946939162811653416225830801303261342185128117498133327385884716149134048309363550169786305880525722953294872473660043581360108848796648255891216925253361916303697926958500263860441984527101882975766704381652335350921634600558471656648329567184638599830479255560688173773638273639424870455980098301530269542026534509463599047868043353894912432653530884111606852036275598605177443426152029058371558412230480220819051759393509137472188649515491960065151967569025225886219846357553279388708931418762842046840767218957251745127829380009474363441552698645382630627884174211107799610493545036459409224246679641450670774072482799519260597992512950480367469882389364827361927165599511600168990117511040599800222290548247657870732194567363285051230737964047558600862429755734658380667676196360612567131993235110427593253902644408513180946214509947526199376217169999500355541300461850987450000073174785145572995086223608289829986074839072536297850159139806588822117464942716746986038521102003125985299870079762424272011148235982636706554775620687842927383557789879990396739218285686510593417150077777987602847432076542065753219138024630136739485807001726466528264951086075101898305668275650451277505325481541345723128371181676918556017508324399056914102314309064988387183556566493404640562152755769136523526461943561623250520628094076967918648433520675223028651164564613854974970511935928135030123498527496667155503451377042080446698570767900540127780123939893092713581494796037846381045146973666036310207362639262805358774309381853149565356221951380963714967654880817698832607901470365458317226087825545795477375152825263941443484406466232868769864062042893950359346116526095285043716326036824706769102362376450626060341080393393487497939159836233645697687725069488262590504220111134072874224680457276898339835701858939040303619517517422919954130135230693521524113770192810735929837068685179722419591822889667907436074293378246741236016685548653914047583317687927618829430453303503879676559828814222025238581361527288381740988573598257640981223217021833835843632859118608987825423573746692504901598470351024407818027219543456005631894870601199246200670200077340078881867852010462498499073443754477355919720157231907269261333258626950170012587557577360980461364245792119931540038476496069160142372908219460070925818152297745968631787964832337824836729865291123488496929057205591050252529239561193722299426670333550807295440619051958265046611877317894468765466338933358926797871772613275747969716848987202375901701767738354600818342368604171818754932745964529587898090009650338779447266196366469146609310234495794677370218005343090770739495742481813372688631704717216779781103912333639809449333151418032819373837909559477850766399370683473438609604107205938738138379166185962519135004538043864662869034061766767115522914486956769401414825219450134967881021825469454234459806054166149081649854373145881268400197471815673778102647997894265285796172490391273713208039333489410784910067962948981605827788511742481950554031510973640809296312169543595842703214538459364937614528150288226336981848094783610177346940522995981527022888420725395337476142439754275677310287499952932934842613440211038793630792549618160270628348015274276601287598237971233734142240648562785329012240434848282322326018658381936752047614597379014956540156988381144572816300828210570181184919506565962889682293693144893679759014368797944096141214767850112368990759485668456738475483902009158912621564257371913020378837701840369168805314372050521868288561805787264575015887512506851688742444151562241035680140664470800764389607652644289129387066433598909984558976349622555639123593615972525523845361336031543191873826225170423851953526766312557764290571470922761327907276181841354544456983267785682152760763915637045987741021067746286652695940669240239096208491665995963532972520860183030227383049444861685364578636033017539634779270426830518136557235286991335435317199082575132264337036147783356272151213949233466192556321534187564482864532968462116892841658356707065563659536400438575586020669746216409465250271815992733037901627493549635460295298011152055570305461169665201583149590399161904946447749874888068335087043585372886978998465892358198476949173858538462004815951571977438489375383984359392077941982970482555716591004049248997150553649689577852583673606569371137653640890590168684050619233045247656199178840459119598288059485521032469843905297871155587638133850162054690072598217499206983379737110761133339608780743384630365040693567625641874517983565852448140838931218496574097021783648474924179457355880687634570176317807778855605519553235519843455487344989145854099129837365385207986784128647489505431344590676002385220338211267197783667369214496419277538149677855092988426563281871541728338736006347757062443674914684892504507478441112858258700236659650374568485724683519592689762582673095383913172092162087957630414693426728806653114311788869164091469719013319752321927403639818998027726129430438105789380048420661586448713873802796521219276297828542826967195022551035851043253403783246987761300842803086479149690053224493683243076837107342678459120727004789331734021824779550292333413431052873753395747029500213602260488021169387956243617369820844836951030026572258255672302451692075465272033820175062392092023279638147192411326992935312956658271988510365602030158386248539757991549323303563183242754794605070857123755802441683380989935382094450880365703248436520939430007109892326318696111878760052419115926508807530205634536667768295759395300852066882575647772548681567217448788542869565644710657486303382236802816047868339210341818591354706348773518052406425477209397026660391407037388598512271728584259930579998668207492871630383813565473711465737785876794860257673485800075285937982139980724391454885672315877713674683983090861334508391463044171335615067073613251041434436432021636684632637059400949818432563827423987401697207267524597503638216792965612368136788626882477705167248777045548225154075342166399571998980678191737679152616970209716088637352609595152773046120703192428612618885339176402078293215352150493361244931664401215476360791852286470962156940043422367972857014765812734884222241108384302647647607634609649362890897440074627678109423013930892360953471922845756607364594316252894765155990929145120694886702278220863646920964608735448427706246845821860879657957481619835556971574688048379055842355771573511485084077758408149392090968586843829796258563012160000658114102952664237345630148604149109276928256067427568313740784158424186379072073075141364763033355316400867964857562628709052430923267064252794876714709108476929322420713187060746196730936805050127443392418789168807971586660926608545153006976234422808851474720169009385585857465333392968030150510979862304047149876905144122705373238757873159848240978226627115005388553191495039273889934942126899816365093227973741418899475416332857597082739202694675978433446946916758038839836062049471478235648101042825837023508788605189046044232815793207724950094058369631832750262400714247774637689807418646119606328050306174427660894206314704077410088249771052661824365963628086910520985093929323150695644005625796067850347522280089075992706439792270025627963166823663830800307006291144089359260347076100043813415397814136469070145891685512994702732936575857011471040978623692668662389047346102195299927516092903200941473957259528534442342860158720244226764266114332293907933220949027789560944329811221024910224851890611928004720156374120033380801180649693355446262002814056900737194801188573154468893001826236894308253564436972315808892871033142711639397945968772320630813551289711632253541988845950317256898672251767498994714960714626535855911602666025490046486406431789533447974131230213160856111920318124973701004765590352361477086763593501687257059521477069159449000236576400994600862520186780243988344894724426019925526636387378189367258509895142634659775975255916393634206266201090183284077091169941859220677453609311506614759733058525103857745100512933814695209460466692573831319429391708367603700608748305155954738673700417405215905526871934593524703087342487090798393446260594543285460543698531211376886085469794883427100196478727868209637004861511666057268380768949271409254350532725643699392800036793926387326105947921617378630077900135130767597030684832241790762764701129388364974050523688323815739114704594331624474069799002797512188921064116348194994700170287790976832759379207835381767537683362847035791676514316080395994012552415018490788121415284494020662049194503729557863258504407064693222113320739086215948725946813103394556570037429435353823013608248259722632898117098943478785411713799161905266690418460141197656572535104879867611527236808583071635251075130587361026982337242004272385685490706247392369090514348868253172753603025994166356017934176025054439542253656054902062726615587227304620293194060618985982919632954659551244185347273219147571858338260718735022412303410539363719247888334226359791198830680975167181749476199195934440592129577850394705926194307639129308328139286786263036623341793106517418626142866738576719665982350520746949924678818530552551142431883619609827680718781983282922051585115667642633757021908293794287938423289833648551189606659629353986822116159381615567510277658614116104396750698094949744862142102309187117115735304036831343433470678241803700735253235879195671180567870852516546401692914069123695114592730359682937662010943096610490577849425789825664641787346233405808116809919983510237407459697151221337735237145413532765339164393200442624040580649484142518072367036434153426825642076577573600797285506520174500226301991804175892516499428228098590942790432825208135363758649318154114868986429833870707918770715386611703557013204998135593367760475139823215920937358570907316721774326473930962497276677734003779344516913523629398335336928937487344070864650868087224983079533812414374806104102741530448743945413491324682512088454947383606619646617873790768143438062597149654561688262381320334241206254876392363107852988107680673055597274931967616111534860504671912096560273927415744761188118286371221825617202390931889713902277772251118563259512729557320592224016513755151211305078845747902803008145891487001020576512063052801051976573197164664788883997137150798103170354274661831493681352766551264492049887457847584096039721358486939566287222884086684159421527663432642988795701765683636595402925114736474781652305873011499908615682443517946397190846102433071328042466198124518459266230886111215002899919929293851896954414372106696234394117834967870426814573297834800975612255428173272732788138903621431894748726470959254882103148125175120612043397343991838226413870289772258780112919367819115292083178527605819789399377626717585886232876841461889099125806491010528422677436355741074364728994672736901057516654906883526021893951587985253660465971404965944194363682551212522245162571980657566721073458584336339881995210670772664138362144139889730079070837486330072735892354449295583270390525448699391857030231592499530554444852704169193913241918947302602353904216007508189057923225007166156129067302471042148238799623292503771719900451218331326241734543884296128471197824378092914423854903243230981153089347299258782251609061680355171491555823302200827455875651371383052691095739113024216292712209749949584713368144199355683267988236633174021499793869682430445324108117333098038489551733056631824952887030305716208685715249253340250558478495561382988158363986588189571685642603162812718603234068807304739716568776883246478255936989282906272135876417908707953452948377233091255115575063038034084861594025358263097489029623670558610794979358891050036942038727592325304739556135695187127325933510853216583368479018014785669988092138463691792147297537449487117476213233392155312377996185755356844920398882708150110659230768694928592864057579071501911508350004055013813032037131370006181263002004417644771113156974935444586255107287414500218888578146813624261498791841523310217622989667084786879590976865528835526645786241566852089757635147307635452835128040556537607528251867421665232761319088047222633669302979709103660793767764348456676039125932218816736043226249649598111583096582860046960778146642129183862064051680098832620584750577835081334073546842611977409175068566524596607055432147010674920305017417953680079242448266677803346438611505019831808135534804164737356738866898485340569645213541606739879904664942805290655274626921327224887810407380423511378917063381112535605233207430783772648924590089219041476585020367260118322484679695377548534257767554332364102602461017195929439219527825190050601456745713852453710181896878205586654822554409588620745250111231671468993816638443913676797848937937143024432390219082595281390123536296996637206610808316562380125114683483592503239421432638752208388974040540256182336920214176152127867700005729552815137014429123738752305522922940376475596609160934188617280680056279990041830730910677340494770122843549903609190188541282182171006311824728665262344601713207325198865734652391480509929886943593994061772069939065491970603631431084176178156810471492321543708744982015041226441673830786490564184681212444737129054105730994262674334963057273466693648995276504253006769223127288036399315018819006296824311392469237310565014112158010940576461774685141198045437489388544709990769671024261913628327802053107208216329442324527859470533757843338055230037704663118741240178087883952257222356432481609935992853522437844658741800965705693456138949880776568855628072008277973374609566991919939636412537014972680578286619260137456347777196028703355057347479680105342219488096776158389838483078869207672367599625969918965734749049802480009122933411668047468052252326185000283389793781551086104062370073079624807852577909326270259930135283031689360213360851721190979343360238050109418439195734699087035376561563369236502735176627235179645255792498819678686163236439796475349380018804269245413108983573337071356418752058052306690795226038811411186010262366615001268991246804075569440896486533809440081432826246520818706365906399249290643452193664438278442049279970101905191397301197878173339149264159268937227044581118471755245251570512126392840393235214545775312001807408959414164059231537971036619137344358575973079898699135761379600803963762332710851764537293836832331075046938470096071840255164625433114882515612932270986426986181283691330827654052974438292343405535068994984782942253169885377244996532805817714281770294220875842026745363312692886807951993960829040921649789110740540836959341346769559300259157856550354771169243456590129979815605686099696844435748497316076672442941630312163160823168580293295022637503147994056380822529978284844182369783314758422679260582826448119522304648308912900669743635000378464195218378195729693496308954201328353357191105005982431347555355553461472046017944651772644803302070964604259443584282393662450944481767172849024521250674051199871714883187998667800032578905109111249227602294039168697477837235212809083465727334198565035206351976364989540324800630009933415221220204316736036377647637783916418913345466891560350732054622373571606572601988421006746169500651087608853213001412897612382567782602061053176502188576218163125337619183644885850907672182481326003422240551485262007035906310127482436512464236787496389713358473182735509299432173567646801039656836251860746787589409772094564242498509137552307747117392914903831190978546171621663677075471878103868123099233537300317049812795890544733088676886902529163457745189193949415410146707604324208864409799020728810728236369756386653945323564645978701849471792676696950245092288657948942291173863415358771560006850161784713423699391468617679123971538778626420628191655556753176525224182134111710806700763267436104092699136212390011738949958363525032245006371298601522262500446834087263287402243370954107843461994624692244771522310901563341211934441087370453075127648478157070665459610580501231168975320135469860556761190454497754437125015598704089670585691787274413408158912340769160981064856924219076192433544316187647589171490237613873090695707116968979379259798163941300784415526399050336973369928174022723327176012669125594599282976998420173708590126415696867844225901032564196363964845958936753553116966883875464845198733381475892986899140329576760012735808368919968035935835575466350403974771994203529609092009789304973700074034345964379887480526064853070738399486236553283248633907722996138212597454483381216438614119830826441757358931859335720331918456982291551435332758342891777458115025281197527724725677364966318479500619898604288557847543988908378851107597074541586658510188818715800390376170026905036345443210388681203026558271606934675105967757158939961901060532724493844928965318909413167773780246733605482966900696557403697181070714184875459174706569399320761283045812267285713327104685967564309790266660068201958102497373595335192469496739211446196803468763695204287939204840299548076402875476570158771666095042633266973785271876822446045839588962704770036022950017793295331065951224203454340502550159686471738065490150533707110940733654345915802369737887556645420006292667251458606437953181693828010332243368313477389910601394385039216131258493497622589325382665928128712904833443404273734435482632600289488004765434172111643241237238502145264867490118303931333280057947917098385196871519601912930698095181990733127202840703789420228762898847262876392734220147368733057303338761364965180152478089609648763050083990470862876369301368363642965369897057417152581444648062065023418390698605992579014223327652648888016057945317547019455173020525694965694782169662655511768610765111960088587367358770757613263564807726827366459665064155441639901598636165511723244024892923291992261249960675079808121833453978382229340135556466693886113209038371753337197216844661584709280081175312032851519895080184230064653688121478003155447725298924714455067069083893121151550437111974424209225557209572820576247707517839577533459220315396780730974003385295752426953570825019880137489368883694943082786168958817007188188341969442558961573375646172304941650037827045306280581221659366406679654128912938391129832001438428343196087200097007517889191052640860179763514846528660669409661927848853836486554999666800755364757130286966489086080350064551805015258890505184305542112344705618478089878847945329600131748652835570193071241919864256970512405794495452714787286797052449783290685857125311388234815031857021516225490251880155977124145702279153081976018700213324820301358675062942656337224772511826527512058223923890661746540832045644580346920847763536570764624345059215144764161523833726859300312678381528768275390937888657427129855205142971328894906756197832169020374398314592724054147997321518444714802385447835441645800374251840755781614092001873714485452416069827543012997776367272561543133692943811766382029246062131479701172220416739436464038216993396007833740649461927201242988414203874530836512436105735867599045781529677764270625685368220813720875091015263732874851522892779494154726006398628857941867288563165812966369079419513028850988553805579791644688157789783421094584792124452875836418003066470819775960398620961543513846597729966976326817210090289056059471049939551113334316175756307122569361424533933937081428332081123852888731143654773401078270918828643068706969137782736160904872722344330133199030033647257726414520365854567409574632795711357015068181886224982763656953293562717104681936284807906016071565233299554734434572005584827237698673706111893476707190739799307855186539016568404556499345663612898850466630403712055516360221873331056564646256779093054982642673821134818310669716875624904695239031603051352516185882833033928102230286962736715925311132163305408776041626373906775320609058305528326039310600396166236849261933794246560431031711459181857756111404053285144931006281757180850625776824156612961073778544001115162565359184633001701523792353922493320054809060467145087333508354791220660294649160834765923994892272011334407855082375793424835417674548652059464995816248546082218295925115108728007162681317696912863229617581329455055697906424084127265169546054424820709000237372235998078888912594871093335317519016730139512562933857294424826515240028759344938001605520178987717895150909655135749522192143275693942659555655356040436075188653985296079272797463579131190411772832345373000112613390325545540771238344349887830560522114868540494907518283285414478796573308105511899637274318122000139969233529500155219277369003549238453469483517914056363336590903229613510223389066919250809731072227197716713782623972360414848311253850744261518592364233844690807335473504634030333959553825855353123116249290064952513361618327958839821898776741284059500004232025968709784057167595310937100948958239060075567357693132109422203974786594025361936831602701199718538737632980387943453566067430251001325200255087032400732517694243496137217381965978680567616903442526166270652271063120846736112675860813231470003342255772939243011403470966442129038771824572111356132140604582703080968062404830858433872818098966292175167795056639399264752278874229046157269499650106503164969436963796841077760020112846086096023508653477336239823582965714772702432330163210283722982080999132505102865086723420581495984845551200562504406453571595798191579086390736813772849164643738976130161523961033197186981234266450023640803234090262834386515041088821253588901357987651709409612506162391877746775342367174560895493041373657560480146184112937805993365638576192306962080736541217626946653276081586487293421539215463143956003061304836530076750484068988516401132730988496979466275267273151842784904266561579271858814673272469976449056003834979578408918030288970286238810042978329252174053776471422283511949438480883717424145806404286104237934346745345305038381099770668894543486492722025819980499294348293542970379689399613786454424725180111262747560587167428418028339375500044206255951304811966267078943339825209195802627725252051850801679745324269464640194250528092981389250693027377274710423492748667463864747422862819646545090004378647964927709717570976062434420481351949477404792958921816094090651196903495366382538345184496884891260911949280586376297787879951422043875308750270527802765520877211016713322003347370059066476948075739115317638105359879294233732556392122623223471434026619264993059301973147917464971861506757779932056737184173367704992007505213943189492273695289539058779349680706741025860012032919733088049644111198843999711335463060579046889730875347901996512441580177595008676208624244280209262136153517246707496720567891789683640394398195296647940642691793614542859090363642677051896363679335374987966727755408271117657850439864798897644575446288482888501576714065981931989635958782106884734316012176463346224107112180471939994160551375785056711012087709797545739610121607444436455617347635893049876864909135945872303888560542622753018232488543218020357585593511266965703450930856759265914367253075513175485282119056666157170636910951948207103710905650976920960017417605549241852028213054671587566174227840356781570848892195571194620373596088207047487329303497967275267707274610643349014968451079626099126038265681989334173733029944251376527880273572988857852178052610118996444782699221850166823457065489046441051383665538142725445223357486770377560260398353879382935095128141705502112721194113218307883924980467446048691668235777517430750475236150651055486075126203987055569122563291786947772560100439789931386950084757394824234688045348920378041040167018909064952792853534273780389397162360575136090713911456110508351029122813393117281815341568404531708161357679966198950991139421020749079224686827988081137226715784629051995210382524715609496821157229329825533668159055089825603914516297778447959808540910366012634484494734457915411153894691703216040856427508690097557828353087999805365691604858673072390090573905909360103262427323073687805645122307892649693550774304551145431878669081513914052364325805150029025119945967294427392310655820582833707080905590666412738414032240723360830190607431370096568660664604107370427225567030090363433335613431937470109282562577337960635261974522920817053957349558516972165250065581784038567067468856179859894142883864986760175507094147635259165043660180762312029462795135869175411682287194117143332392315195847105770647735020067811318838540158536074181803217759335907729379996881384417202892642331235992995524773254938724693692206645474900677025733115120942943668165566328628129163542053102278800986813987474264846722978153226827808608099201443235159819968075015465730240606831277235934718376535211759101766201161727154397911850682761959148369871321140275087867244613424588870285694617550382966748699826348926506676732609635420292306460073998189075867169012394798661200430780286705696225258730805888984150468942933307549947865995460580452265340261577815612007687556205971414292606810708092347513245688905462812482061667913309036382836602643151220537282563090941378054949048392780874780471279501764054458275619127655355021574531502660156075183904550316290139568749268262908416966797615268875457622574558733888404923129695122572924066189379596775050202328246433313532188743169795887159501320858128770381142094942407655211175927008578861951265591486924685789163275788597066220743475050663714630887513533008278004623383413973948201823414172014654373904117353749021145947614171238950696551808023070246114950246254138722211120824277667461295580332472714758513339956693158396652215805100337785534272892166600532176404710523301689752811249055870060883801042984130597416562487904350494103452983600784191009170076342832589183018741918584866061806111099391284645366394441398493693112089916545984411220507790624701791958229845957165418097533652456037070178913599106836265090897875390080216045413863892439176496699394700675536499018132409345060719875303413001270777737401078966156918815653947948512392837287374593327067608954480295873468201274765192270892554990821809798328180067650150043857185587993568931118055852773381399617474356002098344745071583540375072917473601948458594806885283986840714928028896545522094398187855262710141017574758628442356451399003010153790135978627540605257510229709402041362273617396379487403956434570303693124888209531789909563059542561226862141611382187585294774199026620482194904796923248056108420717869936688473877383284124175425653414364657463889317186049735650312322084610439540201022568357026549873544391012925469550676040496442682530637306946824896683190021736137077454175720398312453072420023474876762341075295758493540509418154540906556362718904065824104019190595185886956647215252160993077366065135872368516355871310761426175656047220284062781449289761386335302253667892960042767053336979145832131981375193265142046248351424857742249898210148045681171332903111626825904082631562790097767717765729918147025118171408365053760300839480776539759179547227904016136778479448983859995762592249371912369820241450040832484454761501007335816747956603241016538710373846671765141511362859307674031887264244974785720527972019928960503212594167506348701483375978385236156176434917574921461629137855405228966418292728863235511634990262158617071622389100820127740405924976121953257958306562125533520356315100802563440442251268505254891879744171980150165036460049643057919359912019440281741968859838405324507362979326057625329635549504459183915648808502601727930386518271634302949440765951587713177490908677815572888087930861436671399157929318215854526466322894275073588844061336989226244179808712712645120521110191296970177556495986485292336749628018709174734239272291407163417904934789796927190295012708529772526352693926221639780957232852198118788154774072892060945220657574675342453996746147555354609987384095440093996851458576897693398748308766256093472151986999226896888008501136918665957106809678856482179049771780816295202732481624497500499008318736114692346227864868438569711504371983256195820530358062204342643602580363520376809251303782432681203909736635379834661023663811479662238096966278939438925349105888773098776679088493493692014265490908907371831442807561765093921100393035018604660145775423552479400348637913557639815199110289001262155303185676037415390033755327427856540540215270708568218353365007978040526626619017073577924588170544532946150256524280189532311176863293946871710064063812682517420062961230259564039517391959108827120032216343746670406476482055942920963716292004862807107275951944396827835610468839774962318510104782496704505882397172063469152390505311190136994344213256468831757436047678461449027960782303938554334498272018682206093389752227053191910539645449253644023543974938534786954421622030913374838698563803927269501491469457842611338381341658368090682139570672223448808087362218014246116606621493985655973348160398759290693787069515637566595387629006726817205419808283393643645500679500337802446366394143073475939328546403849202183333439385889714528247640046552968741600249347234031500614682401418734799899219695189249355907010814596692860721912056558041456674326600533175726577455427644120193203509167115056527494842335893791956289486268799177334089742765826674113284661511939748275787590846275508791616196183004160442977845881582453895734473888863421833646854869133675750729573833247959731857341001132604000980422167853547577876657383564355465999125675322343240479297869914998675101858949195200875978920705625366214977855009068487100145584675076219686153357843407327958028795400346299076883407744330074548820971762783685599795177673143489711672941725738035626534674317291355127742041117669919729479343833605578358052089790820671424079176385518200810790402154868272775444760394704968106430519630418807189267570315546382385192119370564510426590796250241044427615323108180185245458433724287164218370506265093469978908169708736331365496074071222186822287531110868808045868463947117790829544253926350270807773522902470004828754822744206731163806588845647759112781795462522612876400307510352422133268793988874696260800041323421333424252726487882719582110340191896609652451561128118470765477938984436097584224695289458645046849319777087231755642540605363633251226979079276581781644061098088977722872159145692989649289425937755112456011247093672712453336373064879432122535128960582643159925094222441506378428514152074392859503880891355347235209107331113297002352525817261004743220231749573938949960076680855893984223490505676852968118788735718942469430086085923721752136604714733515046629136142130334929735441207556577989767867502482016549296514707925692577215570666289161689620873529885045960416713415817501363350045538387742996532256421625044584781517931047352894030264371927304505998096944154000956671331048556703746121751566755684027783109557482176435958859222789275991360682258367531925157748271094967121474810599641520414789770076664859346519634539430627562123346390948090919928049449159951637173811271624992047445924493455417697486806219199635416558328607748113179510494966455688634246950739822919144428356335282982179332804843009475024766479889070799502081672753758884755133896200373437494719634250921658832828513165098722280257686468464407136919360959071656766603684723135194659018609840767254496895236227279183776990421503483902121149600645556323212123524315498169226861033711153821625120944311674028470196685986824394417238235800519321568788211298928594610350913850209919093874384881351706749685832003225036748836152487271473388940176169690935289281486673786862336157531427382233555350180646128478867511560137589201753633450469541999286801108483270903850793971568370727736738080165975916722162269485193171801536336475030492985350345844006448774897938171695954757522006136690744066546782340767212961280744719535785179951525011127552785260140868023993783553348358379191537805760153573159492270106756093829257181822254116873807845727790184003212243402180703629947238910058079703399892093880808874107497608982066873665549295042475963547820410869185426397737132603962855246336469432507387335530025934843741582343503285966162454420205040070598344656994691558656095918458441916647158379051983821117522195880077970623361518661479384581154829337062908589829844557057471679273332193781277655147301937813111216085477910604629927320651827370370351358885345766519995242939242618699882351248426745765068101258961954809793010589789130177900497122923805485959409200714072665223064323414440037218733143727072600811766249478124795846537886312825494086497525141441234760071969042778192801517046759144525511172931703240419145303054863892288028702104452725175457825839794767119415109436056103327024097350705004441553813987599633513974106321215446687401202622351783310266710947706454936220171645070305388054340333642315358696883052127447825077629780626739574589603178113737625956914900111752784896937313721750864502091484650106462082334630832655279836618213756575267407309328917127406296319259539325999509451560079138224286076611691138549021722783745668320540464139306064740496460713146821788843498485149461505467513875144370966018303341425041913671378980644597900579157077068434875246362263016234766294845374806521238633956817546696671538368970719910342952336121807083684509325463951680233124506585821441128267272703319749522870190555362730546389955392851925118189080739530270695116619768730599725375254173753674061563277585268905995474617396154638967087876843474057301574519453552693068174549201601073073930823785234707687755248692486298329205396367301123735303442293560897394501447576561330925292582834385045443702424297932878586751664635877579450672749129018805438738519740730062258268162734851604586021512274956681321813722906723903220718787412268237815642713206591428093219916517911637877055324978656703407433455736659779676002741605370169152736501109758398440607202204129577381390056575542034276630711511106814355868073421051634045931033072410634539405759206125741655803692999587874690126589180379967370678994920060218799755705747286438759690064363262757343930486250417052538637000989206957265126069705157470061705927475582312910040951800126098597981579797043653459670872286450928995399083579289216403023628486995324094887383957799076311300338615909009069935966728411941144197215228403549780878528743910522393207081684377249536968680669706492506706495319559567988364238161151971072831452942492720897221444339851629425006494319910546141721330240884361864152973110040197109113223378466460131550225293762219319350148495622635181612106200860052403102458890946688453824792423501514488854791239288672120866033883385658840843750021920371737803219504236332484254402330247843881374081652556738131661344744195723731704749098831721330081230498317574266929487245304780508174372348392206620345511828462900062447218686339189103437975745489448153189064575640549735741786761570334539531853411985549362625241980346174788125104468322021941525371834826038834605453846277531708818808858870870435739920901608987093578997910860280063986581813489916976591883859088516444922058492969243862133108749689908867951460724222299713565077617527971765648954489279892666856748671329693388760992200408539397007789045590950408517563561755253835156640489229884513076024387911753399165533344504923211810506462497914970787208066888315938848533016392027802785783504729060722170778380057112114952896169230356809241550792057533420288478297161990951078044262051434652553957559892963248749250693909867078011089292773344065906548231536294556270622189228707643644570237284626312560363472205522768386835557340733888267834507443280578540335318718323517942595282575850030754943596622270739653268167084674385218873450735709190586670779581276500882675746445021553919623229866410522161307643538937111380887007106774896325824941047884681123019072431719218931718495457305620169709491519069070340725627755150067465651834705087442110253487276785252815949758481303229904635588435145331735511144038353034204247060249253011507731989791052208272807055376964185085013065181590269494674613195686371368559593835032079650666009990350161729354876952872653669991425695514059552894031863931436125709398585823205664654717212768385855116913081143482564776039442191858447239335345395910101209829249324892027654197162725318652634165055624668224156328710279552645252331720001064345388800044154172131193123701222472140183377828855401197522170336453530658155577612993793349130276069320714617934630328591575075480007712114654199137175756388615760498559721454093306450584677285981888578392613387248176154884054266347080270899518417958305371163966252182703409622809175457127892941651770945832846506500225476060879289228202502607665087101553127388234453466813415177900341565664592719399170012527635498030009368189620655054787989510087161188978497074561986000282763808993781998948237876661399995371295591269688029145016831825794173102281949460757285647208589947287565931759639422553196833192764259306993923947933153359105578310167427219754657539475919924084667944740693684671359272272292222159628800585480104421482766782897582239533494557108130831735007802851127562013652884401158843237808386563351937726327579599099161730636476552086245475131760072459935999406579057339361204701420835650068569831090951948516396327925580564257772614565938963644295109950536563422801966512086714592669623308505852835721416777695943493925113560059359608900687888887392153023085439236256456674961845435723618652596536547224794512891119799434821872475192683992817105396046520816534725185242433792050253284906144598611249079184319436800241682318557350592494114574749716257254708944685955271651133737333317244997394861348566365391998415665556980502832426041897241600286295815340663382831387652079395082552880009577750407775371344511720746783294902300058279699219471094390158515235554788369784424325441340820877880708021716077141071534281963907335818928085069085187784212575845289189747512884805600511547692445792317718147255918011492529695675976012704586761292899364006633587758432922775512553767439787649552367413056517746838761817655252514441077591340729382757018570342652185858193758726717480753004070767567261550822375258735073351610421802154768329146065752066297625720962337772735059227684083022230051089558896606734214506553745476028255272968812885503411946383748183878875626814755919460950993215429673419465197541638633213569688165044989878135600473611226221658885814557794121675797230446512388326651518233058490103043101752287442850231966725037858598155558764796159363176561844515333637585230459634070349950109244176902242117777129097074997283380359171409289260934494208782148814000295051921330175232081667903769137689402182848157393634545231244540585822224325291122621377474386478394874007328004206731767430340392842382900834789496454790676086082921520181182230072419086527514970777789981918743537451159194524610567151872490357922759983758224608262600700326471128550395857347395691154289102770310987356740958492905108431353044665105031479242354245046840095960174512548718525196500134519018156667982005702040131061929562058536130780837279129075231241450080420529134417670044635720985876228089193863747093832042935637283086842233110271041372654423415963248797236292817254163379946877431118835804746217643977500605166677869465329290435087328859279190582274370540296450541311504675896964157860796734051527440546078233779244530346863828904031027333697906784032669762982593962123063338528551095269972906789685556713657195913691826990883343311826198151174050012202561629709103444322114803201732405983580485702003686160493669708585055981357507443571376011671246418215547350760403252807558131199947469023949300738828602058578643145098138579190027684196502457995107362961040837257431151214733203096319643543232824393876697608782863531247115014072611649681438890900799042265097115512131926268579643647066969784347345729249762910936028533805357666880486367517209464219759561474274206558149007357674471652055048261930089741601056035975931400652757115640162179679507034235456223836527777877498428962310229355224887673058046541284606813543032522814402923115902319667969804201754485710682444570276754245687189763489558835686535385457918648153158990330802562195655479787792851474749135493763384665701600716695256677722331246967313925538530238039745164787707046743257002606787117329754038658950110871574178653255226320740409369694706412411314081041590833133987523699032102880956061447054110601545256168893232599985015988272359759529016104241537097415987347679635506873977344228796156364428991264545280760202774655349747391462834210394571412708260002366474391665283556517133192526602131569563990364228338910914080152182285676419392910841953047874811752506992382701890342535825128912201692049997510788546988353600959588425551870227586232430348207994940461875325895808209244422640182268317140104295670244962264187185359358907345503706520154370917070550304139783492311977838353136482774693912799244099946254393223861399711756854285256712811667882010578433845410669862687686392426034368255416848694788454616657917721835520611506765988914001175829544235288839669896211984454624949824207037076371990537914405617305649770080908501753381537180814919261703809678927181066915869929649191984735040267067744810441637018607343648087391878949415577760132139793208030156589623847220898675342596575926853054149525816124935009418418678203853682644605378631082205334187619277187470625823675249800770656947125905729039457476782586786027661974061535085434427259008209856531193685112897051550291366896373700938628995629146999331750214304616335708724104072485316859720311594383914317580481414839186120914109468709535558215484394404605394876327458074946622588943940556357154412296203499755616650547801730637151453072012775956243425732089883861896522741809302724435118247339489762788659859871246851531580982843737348606262435194640353980771627080991729155743570837227818919024006390545704453321986997400105848023187477878387536512409330955488335919675052903377117920587365054211183433118244837901438481205089345988685233157011754517380153057069734722943507884671875496064910268133359180934078066668534420652696691051255739196902171210502803158128125081282691739114551407489225903627726967550954840976866101917893134980495882967575157552851790996841766053169932235568942267126371503978557863461908248795902964704867086761086222436763718441307974058835528623683811890618057380286392251909975738205021165681632197437382690653647827541928566382469785182266532945231290305985272526041681635631502860864189254317212964919130035020877366565029900633148588009279134777817666247502979117335921713419643302831198581240639700043964341189594562372094498582482326024626592621120195566647046433981786697490521294954674104264389413348116466064876038162676625486904456688583555072693303757659719386291845739933283414148390452245979059327667511828607798837473945011838013409348061776495167767710911525701636424963881480329543967020923027131340441518228335558708334105225461691126326790967010611722051065796883949968631817411739705180458461546681991346434735538597905283628737882396249073765057734942016859803037161101899347220184603024867142594684662893167919864808689772313090335118209542663629820975138865142644128184789006647779010720268832434808025952672209379150046214593008981042799458310350865274004880571223127602205539839115664589877744262241230419850176672218712707809634835656432023720278545199513334812613266285539170892143694547795175368881586870191069951173757118567230273197118702405316832122610824370459259650155482690833669193383418637199807134898204965857812432286745331342449528366364405616765233781311987975624269617360131122998012801864714373926311317892585599670675592763268213413409507726394927583523065453148082828638682835842764734952424568146828728647792206029543248023233190130558563248332237078750681074861576035538379170000865915086029080317867069807096017362476914651458117713429947788872670169496418688045875203662567900412398691340769428045344368244505974184537107485350421267166973470424472330894895038056047438121496232642625059046876653256659033080186508087330996543276567988743042491650787500214489750543736648216545949102289830471337923206563879332760209152997845966992921911762825528101294526443554800250971473854303841480245403498149684017345409317589227582860211408518361446918194816263633283604198179888287815660561750718133230354990254045038395396221913336232950363088375366971609018537364812052907478916187178245506979139105562911028555965846109047974610635651076959130062662323779373154032755137425147331355499606424677374612433916841767814836290584906408863511202399628951227226076917765737330156422231438323418969502075127957805148400829883800896712341599949197528370520888354116042981776251249831831432229474291065613365900854530927802055217309598143821706793354186866314702027098958462241461017108960242959830689955322277830668170650379232751777945923174211242405716730516174854277623015253119186080738727812497924275626878321989959038051795961739980623227659548581781321461201279404585771418294728612801403805109369659794126860684341575634777230025512843765246388785769093668901286098961529730793078063498900650818655962963222538131060160708679795571620314589127498422175696397398365825229411992119813339513501356670202417290592432599335187244205897323157650171596961623581049638231730390964391093681430172927758190058942397504019693418964537916858890994255459481021833926551282056617146740476812632815081538405411275839924815302381910112784225548063762191797453500255219867438682561826769489131549224814887987796869492096532123503480756850419908008663361922574230723122614819826782837889108556672809820667362851024454274634114501800888116040190950798883904845556863735840089174816639380229350409458201165247659027758417654493957065579770184483361263598650206551552722966920998033558824566899157332662954952078502915605894137443200485182348393503592281629820950251160233720303092844375304598623944543583638346965713429127935335321163258077383383904732249685284676234979737474455503924843617369472282648997192379147293952898597125131066698785294290245433923161806278438004878010145086975434526831804185107896378033545459281867598199731037271120588823430993620958563468859778691177683604351097495453770044325023356954083174900695059782831520566658492160950372042750509766058577062591020773155305347986784152318432037802631907184981982400234605068483933993748194691770544194779603284993231070942043424321487717224351895404251006951225690109137419036126549084378545007467345292614341440715806995451764719502885904782394942671259829867396814543329239301406822284979391451659199191903479304627356132000988999270759960027738473103025560490213776346174824016038418186959944793011066722037933023375306450176777521908175123611303821078941229694056847610386124047598200213264212791102089269800731034104276075484443388105490517679463055556248408634298778696123316083586596853998038898646907542545202754945414025941428440284355627856181111267045301638847439313923048871267235826147018504770532132559745869808079620763348186219027763488949484555292493971748345894583495777554366106352384226966619393945612440707503546470957169401274195329172783844936109849873696403402605993492942520604903187259962380642415924071009457032408460414113971893057882521239004001666212583927394684763123577213524089763995341475979268976560763880117984061281285404203822301799089066553104547367204006755219063400972028937639420180245225848881438905834406963216291383810778930673022774295932520248782434020787371371528554537770974573040862360050497592050429456427781816690336300832578466303905208435378940862466558564937844928284398926001791477178519071056671661417987090773443736438546822908762435777492952116619149904321256947763667434146121131605026387979131389980363299681470560400111342636447331961194251194109594007220834618513153132903686883808335450723211558926527128996754166064721822539955519820339281478934049131994752860134783189741488461348389615879429250002082198201323102377551715301392949745409656527718996661748362325667767269798247673484264991171601214083362880622672221517582380927335591033008742508468358766885896774150672953188260190883388843046193580297005215111188436323974261248940634829489151777435666868178378536748474714802845839422905084192675820456454372513589498530129165512677218310831429085194456522182628054479658243951582558824137772357429818296482548768657221095953507070642457177662908344547787645446283011639267889608418701989599915031170659337048059894138732735353311500716811766621507844344834525857171561953133118001435853562254832601950619399718275898460424155058817437408168921848038389625296906337739184835539636439430985062802033766730170250824137459457585121225984749148396961918772202101236946419487994898584188276172322614896503626105464119169534339990350497791466152256350112751042801331150391989612570633506323660007838799941490088475663235734809746458858457370865927347051638066805905640791088565816586941949210872173322618624388930422171766325974942196781617646645664300234275581479741071927781578029702434746145547775227592197414670188737807071189966651473848290723313989662266225410628789989892120272281751124639731302393077258459391239599223571403609597844358814366834007910031298737064234438156890303994326246688115465235433269162262293828161984591183828883610782670723523190376167264934650853863306368131843617241234127032648575102440375409265761626771268683658400473275401291576936958204279507245110026526357129743886331865346855387740238522317138050267898455917112267583716003466996201577309736092340499098130343903124105435845731072242037270736786854613089276751947317237270743050559019805302733031594693400022065382206700701945956770666032351675246720631860848668396419820068714888702426905050554116913696700632761549585411595709001629991491337694908720103489152918189953064637926064900278804873829466078114908710734888347187573666620318678124790370228151224529316925272462779395360462013655571013880622041902150860770791859386777730823512523416060444372738405507148942260955326544559959370938725128322476053667017267809115425869441672076296686421697742765950788078227865980506125500158540164845029642486549486961575187121677644426482757296065102319701959318927983043887088092034358883409398876098250559916904111383677036846706932022469043704616818949867479903427532164581500238469755731401926219182139301303500750459500049558780622300744345377607574404893096658538918767058445362741472458928799964706908963236168891814172996906367183997003382177005484657875043349556985570521820155118461581966174188564422829361981213518666175891248383880247486149154421581018790895470288865837897921380107357735752808016815493837952486283908538568623883906039034292896397965410779521496865007813551633295764161775007670209026690632710114160496553449330531588587240207493958197936020496047885810702194562110511298559592803890793693396411161046850176687764257215495783847058662385639048649497137581942545952324700618890199466869599492574360720725506585166028097687405164280056834978956544549151908051406008126127760073548263734289463178802203967303099746739648985968485546985924680227505217099731106367516710556081797762770353302691241486486537837382106702556289818862609041194245148142737509673528826772063040448995666116315398349727279604176558431245573893727850133568823057372367425285831034576113182267592881682519200316457149432241208639640436331046727005209346456389326126111028124944661846316324140729103893664601392183217954138233641969773512635448952063818963022507667238023118262351012569478952876403365099118127328842131348245977779957268693795554288548576050380685164248275314072331061275904746417231729915633311470582406560215702354934831038282898987358625091414834574218185230559396532326811454548725475697850183600075175891185313362671025231700315165539688904741715491191008735731314436925103474159709264042491950594682897298630754916129968120026589462912918619675074643198074884455063069476994643130232154306263144541986812430288484989175883202420972632217845881830688637832433395578269456667793238709409659153645384791962982171379994202525646879019156564746767339447780332442630816095268915627796262909625838089458800046190828777306451599501302721987285164250457616164635645219824768148401138503661650484059695955940709582100985687188358390098964896040454930961567932951190000932265849586512664977373399543056543327377913636098922051542613141599408783172394856768206551159153876231040202924980089530864650072601845174871521673677541367332721875720370313224313091058224425584371905425286351266532676219577374308823353913420938837917739461590272350124335039940101546934893007726096575182042558873627678632694727275230883067908798538211271048508736515696686576683970844222878485688916271125133589047273638915495702082610980306920584780827702649315501334044460243857193513341664768062008298475590900103732484973578361527055089511869881479882514591568160738375472973267906660775256025646529721668367296608083336915018201107332818511053127528449124531109714071537782082013710288089557896085691131543061318037876249785571154845170027969550985560277639514939819513984242573954578863289770245181804150114424209595811926488942899621123453812287738049271649632729374765494694186169110921693850472525370349227398942754388714292006065802111962046276682996039460533980356041926297239771465315737119077794712053172081377564255689360599658271420596189295019057836577721169505507690410244366252136794478805392193306148221968645259714563035803640336878975291683677399113397416728105845500585107896297435451480226325588142993575624867723147511462918976960243846895507904548202004437629952897510201891539982774721942825335139691653473770327395208108545410821113436819147780678649863007852620691261400680859472287537169960090918204255402369181809191076869200499070350879374404079459967864544966470223796924182206111057759735159853044208061759230181471762471157581600688291469355108185087900220917011358511628152497526280856131633163912624755582144780492206511340019932149155273669394109685556369023545486178113725956026024447786693144660614567286523410526536090943480701135188864071841982691172680271682939793814838586225106175405704113497626668070571255318391754731876644173413946992534267707859710514013515069014838654556204752863662096439809485891657257492987713679833566245725739539226300372177100585500205953925563903410284363916008087298649467503686285787276403824874704801664864579730198067895160786085299623804517241736722622017402726234008089681604735459288094428086989763267552631795773897687575437409288619225641320217510798074292389331847869673757419260433795302929213635897191194443543921490096957453761913265822387134350778474504570489407619230793368280331864555577340767809452456964050357708487741095534781173551094183509388789409071276529374052864000979676097195441348896848717698860467474003301800263283098672257348842863732865454748256631893539542228005043165134282768953368119180234965920976930961306564764244461986385000798926269381766658700247446538275249167509644025298929955284958510968537959840278200066384976069450361556128526213927085178433670372011420836621856990584360796550382350186641683658250653139376358530339206286375861534391113195043390794623387241975698729581416827605057704309735874176701395069888252196580906346669929172156752416770311954924090755636173872121102257802011785701562559613050553549731332197431206973120354419130505287366628677940896306097553763650839922078501814084746561316120942428767720891309747837833808978956503362743972993461474735672700367943188987986046546889516955310407383523419472573236394188618037547397709182498840080375744219282112071537725954661129915317665370668874099982631879544060796042149306447299076568432363859968264835115670999021672408609956752340678500965011130351180568152969323551144974931504809447473257696556675778820075578752436270152320907324245633616664137873029003116416447942347245088889013798683535751872988375941115962793860155870672039863033073513301607282994441648166179202910663180845445910315551900509064714846972796041771578602534097427228666844675688584408986984201473312386956826351707445288634067081234573206468226624882759636889995913600803311059351165963510512917502265697350968803887795186891338065388174599771433636374239855514654036956992365210750540648624225152300219672513515046420378593171030719192348558692395038538427242215671265270768269370766052506062484440959726395845553675430013432549963660846510628241117680650372535865735842195539111624724324565036658725049275394765666378086336999253729433931204749180557137370859317184335523230878406054381721204559645865735525800915667483091525294837080935872601799178590629200703998265037993073229777338184569996562816425874612629474773848754051024559106841257063876360713863899777945844491190577657739733738324495731487023026024922160825639519225017778553173443635289649349542327945680725242122924650685915164785131647912603524623983206705424488535758165647519114537712424231238342425371395905153730479763875111998470286771211387667799881752571564624985424134983347860438939752368382505091117704314487031798582517621136127144289835187745352000237587430690746564305169595211401785758665719911388396612429682561400250701005441061014434336948518782407428739339354494913080328006527467748898898743870635693249735171799463159678140652288183928807004799868626876323775406752258750521311578709481095651707058169073503570213868653418156592220612644785577339969988406319487574334555650818688832793436455742973128074825702003915499200200003676841679140484865643263336736331780123963015668123062601449166108737906821821803839778191486677946175683054184666988149371862340724458337811687497888815911845677796562252995676675410322422295404816174039119481249596220299981509878639452106380640449239439295157970956473366324830186610017641233299771469013865433339265650211931071225377961478683645936536789052314278606444976962938916672423812840353585811188145721741681779845389406862071889840628754371691322179624581602953883424115990697048584016919100741325196885739484048901344889491052724949201139233567145128315121185703503187690452137799619791637624997783838042651494755741206857666852983526579425071702580986603520616857857279610585985239235760431301068345161225115640180888984468339612017411465981304404221240341845567843881187012332194807028986147430270311352040618019096966290045262410709173502355228876428043227298761386453901668938564326450724150188608735035668121601818790189062898323013980033546501971051051498649892419552078857097672185161739222172407593212282035874389158361268466786488797362885561987586721263249657211198548258973582447002215183339799225938033997312237050021618120577055092551638124069738567374042950802396392945642848818557177022652062531969588126854135287350616181733443967620639868081235820958963548626729848609078810504443238310735774151987798771339147674704105287036580424987344640495648622302168367689604641969584009717409817823163274323356844859254215532444370778558907626134653542862340283801039956718670017921558311355266902514396053395978930896768914392961477706539045239568736234258940581309695183106307394110885048916497161323196480737215696913316499042746056577704659533709200607223408012825095372437221251448380714496711978824839999096551052060696547247411071335752381365587681316685871417431975548229204036863396359262672866334783552862854212775966753465110553033346059979008937341262243424215754524488839846650777247268571783648352908353246521386989850969256933463007224750625492721043921715900916086038450083272708615018210464245742999781620735050993937932395609108331667381247013751916492314536090500456951779708450099362023562294537439267120092614233628819426750147641289399202824398180949935257106469743067175128118183293063980515657832086954349757283068876132050975006442567522597607426930536337092255077143479199981634962172239622659236419862130249530345100199557392990679928223224419095982175321359757223833796437306779191424191291507810060046829362731354460176832655793173192853887837258041378349158239845970573156385505514368991250259384570362764925243962031770898575638767814699294066399593161066640385060386126829583669675277182352778238426803662483994557278157778392016104194275636454948571426735540815672542284306674229071560804681584955707811310746225209868013041563317200950323761946323004411368868034392210507295067636870085193004401430638761307544297835691017674779139676608689926497909909344430669684598276372814591475010202413163698652157609824093692544714356544103340293892770460978107305283036999121430054586739940701289736145232426633718431699845907795023982038395887436210145801087809793302479180777862152539950390987708094965218354846749114139106837488730641397612326750298520966638983685359007778402449683505661302893352151159094752344364097152224903519694275626743294613163039455461610097633758882200142079814285251747453593019686742071750365256539675084163178942550127251806034751831405166241572586827283574431748468440088719540969098345703501793171501994147062962102582301752433386668714367553791974523731728030464544500090173065000641695655467236322719827108385933070762324766419175041117748642504609644558683444458510288126712994627304990858379560031765774107016949010926889303234490872090571417055306937968707909004767016549797979235194664898148766000557768309817117082299591936487501920522907558071130876519233356322259845397735342809091691058193951735090061257399817402082346266519939309454710568462519943784956648341050792285589913343018931515822126753802328262755615753728354137576296418209761055382570848675894220856098510819898184339929567843242128368964072942493210053268169741289005520596307049316865681601540569713793571453281699377889518420406980340069361912373024166574590548276318758887142914392259062312633163324565758613010865751455896640371338647003021909246857960133078712264113061028704886619997023540566242169600564686462619980847627827995038314100641424054856782101553942852280703932458631252060673614007925069249289387225381826984315756387557626374300272116109849952145818796427256342242516604692338972523783940830006926377750349052329030267326304351128891705080861886198207520003386783874311994774917299220122461936051562594940563015509709763156440578866396545316794162497656805984042495689681036110985378005874231140668839741787835565026119817176385723443522163345832737786418224151860638491809717092285902156003656369159036343481549602436394506272705485929934937603429449828931901963255158352764239977689447844695378406247385862878216813373785147438844790878107385639904778682984525542824777342613144760587298371098150124206096656777644152410555738224697492776733604675367562784439541986193752686715425938283908367494440640275207917600060690115338963274191575834314079891176257702072962348182439627853037653995178491061738168743016976572838579692755319455212849608043021495343250256120467616209663796995661706697231337517451664071574760620820016989336162554758349196475348541039516696225094170385683619067268323761952541620810699480398765389048481365201174974789712629885047464729249445523268466579455720572967661461530218340313175769911983840477421122422673888334713002040801677417697777049196646136277301554108216211413619664816433404715591508304320384117070589268838946798176168937568903029123908477704248294085380419303911271922599147674503538950670442614558399610900964432503417384478747745263933430488827884383466909927845101316466693451029070181844758756329905009628586503247508756407530286059657772448636415894310984973757352219954862649326996878905652783183491676485931423435874047791133578743414118317191542994405012090668312841693020988233303763573281020486338842193132564448421349832638816059681459256289029203933612962319683377318421819042672457264002773839503657362069288099468046768127444675346380558898579526108586151593543949957588808771166679618038353136830115978959046818020448831399758864192554385242765905008053180906602858413975279856155460518235876624240813590297537747917219544696259720200636096275578877184645595562187491521226976289371115211935579959398747820256112811642087691055728682248861161982578105466199559723277216133162874254942405479747697707715543574815604837012355392955694448243769891006705504997649763082791856391922586177863003757303768921613694002364048619411892298603506386785074905768621973066864294039322268072480627310411890714389080813629580322581405475635197584508374718863372203830610592937311209867691080821180618006181245586942723343257379869929862616505829818048675249889817634420612292071206960180734139722999733177371191104499515589382771584730506709452286328943741861298583163683826655108347642395459779571437115510118686745907319763762250983575477251512478100470770014070255912829792729662736871308876393020535070612107567634926088869272160170360801586734657200590181172910809302713041806118504180722251029399415429643915661918859819293206852782414918564435513592797353348046031328675097744013894362962908605500566311773113006340909845420066876234874700312281965000162307190578505363312354177258680421631015740106021508921665598120052018492278426488243586649755236043691467827135427850549481760259503583384985189263676340944759585756806551061239537752762270491955135465668957994270213006753571376642932916412222405735444168149302614838856175362541611087063568545184493047571411696881497699694575657832326591801884842207036625098308556888884269739242369351552826193616171817941579526588518897964370425549937906760328525024672188649384880660140368420786323569231367132781309150216607906641039241054714361354094213349842784950442459546655656147992787340356495380641198568486648993007565509923098608023616774060963424978000056952334360839306523366385272488230748898719164580693997622802098441422461658168914259914384019998794544294829045704198727591425952282679485908687818138880001877851708815620418422761560148193143635918728448049411876435594380669334086808952069580560879163023390376810120720810629416045086221579979608803143299564768867277677123722190903514134761607334233884531070867939903586099494516918564211353001052343961837741462044053554945657556138158041943674688923057967314543490279642770788974205265513934087522670769765106177692379790914366989318988954094664892086122035371033055521751620913376786449356895956005080534799316283370439136809145873519707574634407616502859400150165201684727703168929905612850262747498888014369676266682898503923409863719564350499260395996130278272067223851259745646356198920659304808499893749752438411935126461278010199071119702047565914568448959593020062990924974487290935552332989322459047995026494117471921151253516543685176730988527817485372091561368396804843688207105864796822571606400169048478297680965375825878532466969758355530710366166607654805903556821927239923164847870702895306473360944548078714870222852034210928931124799315567471271910431491268034241450334788895684383403108223358622284186488152170650025503946283463631719924971917971244267967979852814563597221241173320316824350163339184351819954166650081301927813104403822593950196736120918398951614425752970956102816805791845601710073014053281786156725489064129827960824555030298103728278073086903894107035124079004611437008257812011780423990397907009137973407761617490035761588806460122608460320503666936314334260027931915317796486594079996819615831367344374520144055216439442258926276077924781907112697520621870179066035022083013388558355631898544489348622276844367845530960358223895405965469463639245648123933599335713962574090030539007806044107550661567888473258899924383131493267468321555116017217107589207286504383309105691424860363150311409339464546414162888885407977709093100497737761004617552658124202235464328615578433861380311049433789646614654770590588243865820882455475475516522828656167719026427580934471066105582235756996152959412824687052642881397993439507481104100197626411063940617377991630107889989950379525512370401287202161587534844704476736523399264301513398647822132679118391381574148857241836124526304740118210130047141742613174378177401056421851415734878403864663544678285339940048323571453925796213458106824390828516463701574870550351416404935678404248523064777603879107496225236607191940785337432161272018210197507767108678486318920196634908608797898414368267999908322848626652439320061252504662666402391464305687146327852749859955766908503779412539478006884755769773778130361290461145223613207203710256332945269941502275693038172285263153961658579247969948890109494516069212026915152461083543924166823649656045208205949574162600272770672203182099791691836960787796167361885011007310799488713911248234581705554732959922948236269607873220592780835225014365205636051337774446139432535004160275495853173206357198275793107230780488248338084851263718122771081770756817688397700712767967456531875713275298533831009768312271063812533098435844808122424522887996143943464634735464555772364364753641684662207910893487330985150332666228349786983847625068228786927235724344899615185703511868110126172433389066587603780482939953106668494090131962536863978800119677126655033597202564088634472191219988036444653109533559097367081321671589270352844911269833367434573030266072141172846946470141374309013536175294537457286788501703356364763873378351757605791486448650789759943293068237444026741735877294712869090498530627683647230465271686676551920668937306940452234383516796678267020897030245855690231763711876799417369405246421060120309115685510229333284757627527944082224706333774070372647587530117205035637997886103448788306725988734784409649912973393563668683134848549883412337276829535982455878725365859531192544469630427936677064317773691614638557028789810749664468260014542285927311883053087692638288005745464011790743755433228990234032373909406739972426057171495326443931696359322557229568206796570034821658601332992121085378814474431494822818344965013830065949085233872721206016410143057604127744965503277993396761125335608669867917279840818401591437802643248626989876135875705618235563520744150349463841111686304515022073234805311236351612828902851436446185013440807400061654665025962897734651005744288897387003736131709322459324496862723090470710114086442802811464580967777552431441184483371911784802360025063341441200998365166767527923912551126123640868749722193396731474138654788858779098543386990407921932214981266056117660229998476628844506416082885976292613952628809541873977909508288539884186434347402732554916104443027377754660143183041837217848254158067454505319775401347605637856683598769994249130962092316373029282917494993418940119256778083336397481571262296134292186250996680138293069286345924402907720218079553953803900748546017645234932356005267136656231457588905032969307024842499408941112954194956745491631202432450593302548062813950515823112150120634283285654552834394864642476307252095722233164122431225981111435629491055273490336791900066641451367639765268576304534105212205318848021805394161274462652295327019126784105608722058372146355452288033014646436500118588543242336273331076817285042854829033227951799829210068346740758382409134982200308190940754415344478379013977947567306960871343487072989240450422289855498997109169901024980589885680080684171620645227651581967792945458685868331032380845845637376029181946779001859892984144004301271800899765369111163934142650192914439855212209312652221573480796790101310824194453759084545630922550443093196851768601802570506231728166684331268761940781096658035031519092791167363611294567410385445341832866716795839581601076659060186147583211666805343967037829302935433171016175527342524585045979046735929127648060288657615503877809625598892387100356405579803739718507438142104443692867721414765960270278766139852641930992980766386650510584480772493711213669821905387698233499065906209072332176057314470375564277646234590529415086161016902031882069729218101153953416849079105833027196826760134380152742902669520576354762000279861753058082793170922190018588845099520235395342895625969566418264444167609442682024303918076193144744517065731383399230053973074790966288697215377654649894356725342807736764688509902157670495489964177887315217325728902702079160070797611538463185705328042505128331828437709342359180879588655578910838864136042899079151676123037752203958983571467847998816897143529856122698511431202314133675459308327123480043598100001396529304572807453061980067986302278315416903777312198720553758522007042703983548809871626052219196871252723806876521210103346779717368967462966176129748628496467543473808731880704112546206550741766485875466809369384808890895766358538300630013737942921823236881471674341396508326523182988074505619501794723867952057802672136225587216104186609933465859385063315935949467225951622370579896094012634680234982520258683400407670590516150805534185772302267415858504465887531163254457406311937567289322789060362919080220274256390593643997555876275944165586471944477559989337134625167362567396607178582632270044826664955884796069548245710578830739473502070378936483672249850323449700649803909574751870337109769496705629763337184389324830877186052458228813798099932437637207718071083686057267468258667422441732724604151803304209784393149446168454618309617374242056199942688361135759342889627787426765438009362445499061737636182843913551826807370825210875171986340911770401256928951260758816531157981334132431267164459771000865469247343886453428917862121833533738613427743094666928091867279616317077372736513660306854565894997474759636372943297345044087417130646105385556807434754246197620998850021661097469096302389745689462164399136096685620236827515868281145587929265203007981530885697720584697521349263678276269983833885328635229369615681737495996335390635393961543793069858478005011485113154817695055726420520997844271789064981548922067346911068207961366037435727480802950694242322573626411215928924122071062687256590751062489433182115089720499009838399531754303366693627408543940701794994143449783695558041249595916145128038302428354797600021493280660586937104535669132632942456823593769699490670969185892527191532705548747113629881636839406935079320431198704128428464130249374842687757505395000370091635340895412739112107325443888277391504314725281102709629679250784857685307772100566585662012813757273966290801475364237435737169576212668418204470417562964376558769938792525087694877378100977944615744950051625992026005135079583436653228900305259761189716924539944485779745698320036864557217998444833493695680868820775867169993274262308701261291523743455170755933586525959299761749667170951376713412078629068649390414840060057292582717263167517505060803965773702058246196104640572514234196734257698200327628069598347168049744545607239615829802774846483190257191977342528364583777436360327302296737958495921666253541795339592061843431372032805557905848804651028534653868641534390479771566248584245577776267388831230539222137229878289101225752485268713695601407165030420301971301797809727075763910628565501742926855980481153788235785506730701696195986332866398630527110113988597076598734407500340089730016538192672845440512587757826566128309804305517270470853812512431462871309562945904933351104953777357335531423775939622611837308734962204679438833742696587475673349947724643264835549048837601046876480110861796289391866119965357558131370552753518946436433238306022467349118909569017207484203824558977964048572864809508331930310846086060167466774561218622567906680659384795566581783042372576559297695788875519672958787627887227193284832988109764285357213634484322135955958550735301660533915835810179077352777346318676434136768551335926855973829569755852082565997419409909289089238777166407745447866785977194604382133731526082489774656815186168153723961380269254510711855875575120755992338882605462291036973519680932912319474439142519426802280190555444885717097423821074275711176661022503484692583020492413185592571427161352399729999776159111516432354537528464471957496182753254655334380839067669222353616421075475256285193575498385961776819301835575058425344978935786321968199379060584833634263796532176108450400259326888612324430616080303304598876903062955258199251619805900449169838951574131595965986483967761058189264960582949053192360569314667325934458930921010895812359290155634912553642942231657592191448175204268818017465531453563390360143252983835860225176695773878455727383701374487295191991274227936939836700765628750810408026647759876361158167926742522814597254400448457011699149167384514412496158033707997115682156779530709654763985836891200781936749586529967056149458976363772534761809822481018405387041704672054014174328209272363476498892141561223524343181653124767708575557035305982327948045856045339343815659596719326708860993887699765681921388407882914365797571976746987780326162335078354277578122838738827780734128376597139107665948118626900208462547467854964190941429734790115597371304457460373193231054998277283986524618859281203939309064022348067742354250088649213439854718415416607899503326791538260811537951851165614598314520977252282361038938198544480580116112518393219693438131211547472756220257652189833702285263357634904931237089673114531712397711117108351126029790515944223190508157097727737422600818446024937676936376018601520239484292760265762127318327237617800820957215890077510262220269079410383551381329743099405660584774688877962003970144961588538525310284445253274921781294573415320405896843439778604378359602851851085897189900018647528719250967427873028779115668694524854540871548604728462525952078309994257347744091638795791800630810853010499093598327560360668379444385145095683081416260336466932321880837418167690860595309336543430712894272634472150384522783677958835365554293100776308176968750515301352265972958607060636247141282611111345108775380709474343715037196698219959991608449166020139519796602635283766440781791416779501332499201887472929163939453758694797819281673931908855134358745582725175101101988983546009980747954372068459640922051020172337428807931112463540370239512915486873937486506074169720315734481550561143753201797973633361084545644910227181100878400682623382271422044710597175480012654043809996730504778123123680557225724881630935538686037761259724564756297532788870051556440151153847667478001497274581147428980343984819588559325576345463996875993764534447273263578979080083386049182936754666031614811030712721416748268757506045886721385152808979582454598756699851088847496451732726979604822042839729622021960412600230959354416469958421828292886394132872025576344458245786351869423139549848883075523587113377403349422387638327710347981278932453545501376895530342727917073850933368904185393006262593019279876636592181271681768065578356992519530544952182814008649173632299027296647011921525591034118004766478985836362618869834569748830434794130877697810433035997413241110628743820251825981820252906946495418215154835439251397383717236704285362145712832743551343726628472826689842789633103916200033893615650645502049420680507627595846007938290299275065620207315921280147446765837034906180376635652513372806988476279295839377365518479517161438728119607338001758636802905549997520449008107678455112382489820111700456220154888851823697494163608856255989686059171510093207095112005802125595050042225570864580473553324031617028607816741185949638625498876130198627222946657944974380030393737826733296387661951930402338585061632582078232088009561810757157499302809356668100134671919173466926750718821700712496589210487940794654171027368931095023995999887380044393255277580611295862784755562993646809944989464871695404889483264645645803076561293644508662757878753978346769133864679094323183162934846944063780322522664191342337035016852088713622984914670791056515058321589590869916248229858982028546729247678475723095709241677430026217469525701832888879566068282400279556261793522755288455831452510715186856120700324533736747806392782353462726055608632929593799845194325792171774600101713939888436707822530909209089269077351105989940518380572534887459978399100090863788937832190630807517079563624589474493526171032328400016338392576300782028606073286776552190853672644927390600479923378228551636314933540042903912627440938920659959654640395445663336692128166768352184966829971143941949635890761086942263790919318365848286660182130115844189767138560375486205221146120873587857400331164801754904644487195951876458531020964381617820022072033532999277191685619379198380555065652915668742056734638514136966544384736575296689172409839266358647468310685308653234215267908282048234065618159924368004905747131630094686976324465323375602022713446958345156556670558964809578855347230220121758345313568300139878465364943815303874646546809786516329408864496604597793330804258954810850370915911111785466819807077645774755180679396439557281830019496610182667101387163450256129604059772929818371017960264727750428991720071180219092180623435533809571895646217625916547466010327656277239488441122907208637647295080959902044039114553389837814484416948204045829034016705024377548863592486913060457182848008247301128187280557115693648041921055952773366912231451864191029748742860931849755671047418209617069028342571124093508013786589569661950633226392502882775220634411174892742905720301354355471731799644191942696422812995437834056797361292392396104836452497563789167242248161959636970391461662517398283319635915194214656546427907184779511602361335358289994452067343900495132422268252576114825323573859905043773775784684858157186631574376622758572776575472896068416833299596717804186998510396466565950025213885969792277628008823774152956820647276415496269874771165748507148823593856703639229110314417315964155331991845741061131222946339820896685008828390410851927233319774841796243207605421186239124890765887007799969003486800894232353911503608405261526218255119418166794426638813140836414542162013300633491735131178771105950902978061247011195508129163736575907556650183792989730540331412111802209371920036448199400998407882645593806006877212533850074361295740901268570743259919340208306950606709796286052219328949936862930991192432525176967934612619862249232709235440674493208651320903509265754083155340058933598586807987852310045806348862482879907340699088340471326537267088683072411454822531452514088504015542007619346127679041892462322853580930397196426240192590962444745664528488736725121409504684231824788826510818581256529318985608099608501198898732601769146616058238669043524805189826461216876634656173281378718650115110779465223725493532942779323546517284186469969754537004107568930603905181265843312772252190360661320164284927981570859981805089322536791729559736337899574807608857245447124138858867881258935545376493502310233041929231539621143045540466899639695355950865656730714901461560129929116593983937469050437559811450097616200302389190110659266154169038562602561523701394867995038621061001402383735480856683942580456120085983729832945045704917864385740527301847014278963180028366293792420105495659802476017273313483374395015935680749333633735611250439328810322023117176053042448845809930395811306223765743527012412022494693103689979110156627581298777495612758376525138674694847563776198372016342558001730644779025689836940010148476923853417892984017551065310157577424712346999127692244344660908509694375785868330775192988804190879249701128817845010875526745179354575474521954619268581915956255154181973317329872453501201536464290751641185979343778216229209854019897697386456709468218102729307614365323133900538354404895904623333562264856221207715754505470264551217674822676983160571378348809493017030892482404909376863896175046913429514713117704521179195267201417739761324676855115545615514019771002593539716171711097580425739828692679397595804756621809543846156192539672537318124699120619762924218089017319457060066030085792039938262664301055525311594608744882526213879713809586663988614459558211866770937412929455853287898953907135805384562031506460686481597307480522564985266312548351274773151771202570369038109024784432489915083444826849647552252510415741541058483816794076481035847922123990488465642680932257579776258914618963016232997619959762194786053868167564914692584771295801577769252258840155139364581302813780197151528783330901019299831817899034832469597394463165287048046791998193274894176091041989731966087362210953222957512609215588412766615257128674452974541489404614207476122267976986974214806057453144103087043020352694666079691856123228672663227784175251450643592551339716645685994478207004245615286660237612303792774725440469065053432265109785539564199617147300642915386146481599530038266122727629505072258252959409055027405814533642939144000595034982320045668156878014770496867052628508349725654584978099186042821548066409520511784180432889921639172487722507438729455634205578084934818703662646892655576172153700990833021121243695412100652321861007136768576114487035746619555261419866929465806682473407058253561370672946355657310648323201541142758847999320951386547758752176053831075650491206312923613907186865359120208176625570206642045555531672157945329819147746105306436745613106587672764507603930837097650864407146224625422823698302357367385699146571395765510974445883010200914499055331475017137783873107805836416147630509778247715128700912326457357026915021283981158588430412585475495200376154283969892881790856249722987601638695485266986192593540121277936857391054376887019788086301913664785730313297414915163477062425187536516414415383387891819084036816381853562030958802000612633490027722757558814085529121974508148934215330900891655176963822788992705324290943664146096923295278724743181629917024592671987067715618651582349857782808960937270453697828092888766854310092098430290348057417449175023468614786907079124814556311516307691493910717525449544886746985566252049459776435420270560400930902390474254664058086377475068269614184551644498783228047316951095817140154848939970920718009302683652087512135436083837464609273986835922178951305947253381068122813509468419766745907380787771637572916418319907167650760344672274468333433635691621887401921003704034754961493451465115948064150146850265504495904579679956443232805804551170132252010294877141249148071905696997160532880912695458417481076051926790571445602516818890861447323173536787887222807130869022727456844663964624841647319654804928730283881084571388442603550181138146585691991898742396423463781921670438684553629141528189161442595190853563033207323280684834597718159697655810064165002967440119827291889768394290434747997567487390347130719166525414467948605991078468776204056278085379677803653408940220406859320970414572762524766260673180330376868818671890425227907599204846205686529311217987857428320083863284568363166602736128154655951985185323839438913545548069149842684175290062911111242293787102333790087742585120794231946610751087323548578162984757108374900070752811937651694976238765876371175621499992691682126031340088032879102195860962738349999506150753623714988392790435296268945304987279026044108474384841278964787633938809986696715855233133755221529847842242356301485951223371198258831008437986532924516751024798977274372862739803240314309002357197947435765392431060144030529768992046363446773967431417176511435087268544898347410123820207579568313041144826216004752078359401698840508428655580818504036700869396173628041392516064620246472411717445066693705702598736904772180601554357997254147987485795608263395744250774293135716767914181441784039377118951263170683356555998149594344471092239820575711703144492159073846823433596030421806618366497113880202488927945549020686507878193930481521202956409010713687780905366256376203226702918547504478085952045794337692093546507144021883451808018888419262952726540222338350819904803265224054669833261683667450835878038370938579197827990867131009839377312958260770252299225289668818125731705647098798262788366817329287444549840057454715620469705344751201778974080804676822166952732666302920251620945972486763195199369819172799452329868661380380726315845069530984361477377592120164970863290290620231617202651376693242369919860987256410439417618944317447160933024000623187056761627212004528309140854346615906362057705543346282242346313171404712199456733144177887039254945787000432527560569706265895026741959740614459786535683718917706555549266782626936228922309050520181974812935641833596857725260486660206208150699404118166655749827405829903091398434796976786373435885708268271949777241626754667426107387380575972847967180511641140506460026416123641121209762053310738344835839441963391068146397188434158227261858951600051620432921922518260848650128234934265005941701598987607302298657852245263652465061560631240312301784444086663528445062892121008671273086832107640421800301873070318371993740770883156806226420057312707661810574075162007422982466907750967461016228264269537150789978586441949524026282898714894768767110274388148032821499932065693007528476714826294515904202421582296855081740325688587404842993848872134525794201768802175196927263782361759260828901310802694794998061731634917784056573591530532010799584738260728139901114513883552479233416949408368956418938182770604030633183696080845830818487347672762987202490427622103455532337789942441789243983061403392968974742597702849825585090666645648223346935968736318444789838858095816726911536396953799147518564130308090708559508628692416906816342911925169992648020544320795661734613639569556515782038333145414902328390071980324786568729391536459058805178424065892926421477782591383808860336691608430865528022341974328073281246178940977569578283195133965462647272215006280842582696312862007742436420703506389606581155581983529061123196700500495492287019255852918252213491294200885537263807463685995718268742603158530869243365731048283614845120272581131486785255151023246546778058709297024424043969521417061037268180734677793847516485848929442933560572455227686947171291028332142257507996997174556279772389383246167969270843213926131049170509083255927742916112187791784933055995717934937180550193769458592568892904835621519882699442276806574568104152323358172037653594207796262960767638097132871324801554899553624590962755810885384775019161507208926785973665586294386418649371563915865988585857555299469512509219108907123296617782345042122966302018167463853279085439257508430085097278111161922940005941320258778579618747085696244252827899002425620732178771289779003431919400478314902318389494918348485953448048690446177294222358141603611568384448414182513329062744486916487553717508847727765117450313889996421881831659129051242264075869410473291080609336132858091793507112547699346745645086023116739033889963944918562714391073427118177578336494487558633034720107991098923795308011580829604924061944693295850288311475197391618739481887108291143581828424481049574747683505646755946138592572630151501608900079160421055511961166667140954828027314035415608624038068531544355432925165774940421672297611697477688294289349355435663570488897546572686718885433529722393912995431150031250155560454895544705277776752386422761545827083236429128306322249604501694534029355229902441786995769449975634808041610942294573939553685939068086925826639092491809594781273342396034757784801048911346416738210969245286607495570000634631713063403519148882357337630474448489791032701813348337632336052572167099679506131660446721558861560965992380625434241915215471289387815721681473732640827618755016289298006264074632915130503377189104946685834877601406387946778650478334279494404002471084694677829248299962918937462209771130516743263052551374804643863399797149279311793755279017111967970059704393761149744542290828919773059214826345026970184776801550475608761501942056504838832198446891441959656877363583456230786225648088406519516023089336120552554245797837714464286437713514496964554697410149057278058183864606426105756104620536830818841502434227919210711587927410351831860360264146314040002046027902079884794039858425145913299035648802440905733270022240183961964865591999936990761736334717267473596992467381434297581473044164802216887568077484833613759608023038122483679451569412268003747303094982095302788652260792701858986059905072193653268236574430983151480358832252780434192113602176939067185915863114933668157742128053694374719626743529513308791299626631059272581673433855887927538203055117332727040802417687090956288753395981772082691565316435121029267443196149403247329851501903702225939664902403454445830435857335763268421671598057552045935789803019594343097769579849148834490563476723246307977886152197846978206887530339753620280685847112496216031711553792390671881944357751160133497818018812341356834050834273169134047259280865016950501528457530574746798656707194493570312044216122422427323937496448104954245445727719249733960784400890444422213682921233214077957055826420135207817551032314818785054457297780714074668115174908671770011849586433433366397831985924226193198642487335360911542190154259316980034902631598973105724753199541010051120524450284674963674502323925356312754866454138336739531775349355734882678218083000221945130552294466637028905331780945624594639630947342268572610445920339059702174927340475739549577751654946115427763939213058850135672349345794435833986119737047268029173812378135034767582374249755970413967637938429204590541178952526446109376258816254768579305262170407791671632908287857659319756237543825363310778171798659832172724949413897730796591389672143915118514680222805345603668806136986347637499561675294452720436620739279592222079148399054909197623397084018828857217887755036007692603417276643958008543874361475882001754945141410269353668794586415099166167293972466935699843379721911554971569553129388389650208623691533758691599741590500969972595913173060129666348088957931112137101766330334316687614657461678021701823803441608481769366142750694072397978290761084377201440834784306345393824490806795955308051158671558813313147802374080812766378139204427201107385099073337798842284378324245357908649743379324458401639122167313551554864784476848063265437071732456338717878597959854979245054387423967883395255122687320912845501016468046987409507697525955345178759294354615337996369891451758938750280989757346321363353136849726820673304574770070279978048016796347888591738678769617556587848110069439960099058429271542142383702114173529202288423077875261543201138312707337631975324199134880859797545405039467548742835347426152965421178198472513910535620897734426706661208506315627257796211421438636524341250442489220919891471822845611034935131865919953976620297594428216145995737113203589698587748805773389393078109820759275542879687681730144399110256389657476962727338525287074417689463738240127419681427798623591821136090282631114485438666614186748116312696614705835122587780638165755265731401987594943972054889129993312583183961796950684210559536337236840802215608420964765179320114068310581679521619096704643635462402479629863936796427997266488160245584696001268702216508754889031722047933207397237370435575600375468561815591807185517614764654983088431436089680037256495772538517742069486267641097125715424027779320224178414514477807855173824911832853907072273988206142978332231099623118299036833193371353512120187648861868516094382802673242919561357384317698338032882549440366794783261263030547599668575042692364034483326861725300912790793698320045290246189224113740939951431704330598214925200833071272750275191250734500800832134204847429084398500981625649661245566040040608561234448952582633609095971412964676493794255303173211590328650116710611351202167212819824565550959198022953154901180499132596702063283577906361765037346185370116062705384625541076584144325788723149949257601335568787956137294499895732808728661256573059544190005624187536247459388237166254746215536214505041379760755171522447227520502022968145442852774783930693949740991563289144820113783102414378812013952751941222860190328552670574626939720147039494908146158094999289048979491436969640367110023713884681857325445577128164991439585069699046545088074526023999078048522237473916009466368340723429867936674205368399254836053805879295550225772485789733671474192309212483086497922659006675002098261161340904104795245372106202666252435522989803052322646453144283305836239954478809460299762357745208441778574813112709065306199958668765872803990338929645926219439192038336057060787563222863840053956163714549594824102172437453484990306878244542485878626765607541269476762400278118114961563588929352163811545348649162683815097137943840540656268963200064868632682517066423453698237321922968562120496357908112106814531467209613705389986558793267658077055903019878380944503911735611248620724946879134784140686269911513154745006147602765778510103416605010073670021673909546288528398468527424507377990405431474218949798309753813342920867183058475601170877605597017861424451995420751694510685424981298009444393135521534147252840005582320579445453580676235159658250141358488154737736305557555491585659863725616454559447138060400969262484624443229672468778689823840448577261992658216781842353482723032431264836256693485281594491690962114528240787401456981392148727196412182445907210718025847668148746540570773342603952929432097096530457560764785377373408683594125487682933787522093557928412586941618403286214390193345504990405986072090631539182934447842493116725517154497002985541248389707362710655889582803858903401764938939356507265449742465301744045504048808510874177318694353813177965385966658613968939698182537123491081362505407901143021302902328653056390426769458127518827845246599170395562686371450264199487864242083480457826530773520839350693731975238098185704985108531133678465150883162675730837937184190359026923709098402785538095206740284956642507092303667349604976173671936189817113411373552257434382332956705291363818007911576104503339559952588718597094111568119706494376015004118394921954905682452283675261797794802039095874777997600869570353741105312893702753901327378264188938433297136473554174767489436118531204897857726974516117061717981542618661874934103562580173781235412821310484243654351024582220320732277281989959633138509880376486455420592749552002881679320828155606811239575250669922180009019010074473617195618018320406326288451607813559614459274947917199609116523128690570319511634196500270968106462342865944388876248877957152413793404189915965663978305247549738407669646482318185727691844331524442569872478863518432942976838050820464364933180845116452946313868436278363300150027717419665923701531479737836959544915209806923251293605338760228633898786161603159277837209753490148215709928928704492173118253452274089801100014431290326143586261295347706263989851809472177714423248750601895040712166669352406063704303649093812968824984600013657205997019433279043693372646263520914993489857920302334124859140181168804336300571357362471302913537347982246807194250051314467613502720335754154037102631399619438320995044682034055796767602042323686983893691658074794603737950770494552115923674058461811743461854164510417383158701893809599913611854208986978056679808925038945634393698822768424329094987520317877525494862767474374091033733741319859498421503801740301244077443991833003866912940597998079660629180902056934659509810809253071370541911459678461334850588774361398074491180069352096946611541051394314276198594847137901440698077993419694566194292206875056069884287911910363476353437008436806626231810231843521684141221182565225136256323802292708644512387291179971675457803519116230526767655896333326427799823140974474781425257464730145798994652372914956331088333733957722139427213565056310211952846784276746077369255515956435059021534760963829492726535332214690566633188890839688363606903841912039629011921765497601334124892255989529287459673406436766341132568938973713059609310507058254514905834487662043327939826749137978211625485193503489181615509801538330070452317229113332024665557348955386140371310429058624589662597011708180406360758750960551832616219629788185701810360173093658223403372311740768115215798510316324978270226678345266600991453948158086911693834830935808683989940367730518579386904726507732228958027897898540672628332086943951722521673448057868345834205655286224851047739008990960969912101709662058517346664781068616183670593463581851752969342608328678056209591561487323620899970810850025197432384933022355705130521083376599974279856419823722231592891834519820282790114997200386819235837958691566041697490372936047176226462083834576093070453376237625858007309016813118318197500344179350862928587163620442626122482194693665979883931378803090171850403146036105222849296004253381914411920104611288508348428224730627405778752059100441396996539619174967381707586332721016548822825673116169003702470382270752401566422407110316735520538174327689342834298280591694853911159150222024712851541958367073164501529547895736188177673515048193737815327997913241592851916623344983853535038806015294119968407297725536129632464357486051616970616202732592206460697942687097086916327261531824068333222284335211431685631411945048514639693961939130497381717692053269865707168295472127960418118780956928696421894361810861736265968604264194800037416649122572875129020037181201274938872814875674164582823474911238322747993758366618521509522725283184314576096067100028352568612323892720102663997687994443295798252303669874370765194441562902181333864404359324698317398094277209254883416092833071832352616898499727386812111720685507073094523885343714159904377725566459845356622109716094994329875370947523635948584244195362061814585343023240949471485258380892242421081495518919175297008563037847780244200087261301988544935638978902863050816020470260376870073632933347965988488269804901924070978327085564850652544075911282211936058417509361862633677113843523115953563127729725101861772558641760765993685682346770852213092047060399235012589278889092715179194970570864836571644267652877638864917222258527303441950432597539903582903093829268791717148261984494379534670795914577294341075095969307466291077717686688726749646613109422999146092071758318233746508010637552545817863774480535786417141108295682158196838511827766528802423060696767997811885988179072523952455035685646561066336965793420150811603202698965472940148446875954390827271226419385419712781943975030049295793050777430501265358235541378387741388453021977313374934309379387805692940121440633899277566653046702541774474247085529624618196532657781610606241499047051810199478149119255553114296058285879833901012135016016639595149864044018726955957913205818137798201738751484131618276576130366948785411449693733053530264874238797382396566254841474859286770393878653484670567222942160266744651832107599443154835717009090661732703434785468475268049056000238188758162869988285359209613945145922027952871768627546076520353022027188886011846100532449565121380956596469989715135021041961910992512106968593297871616818317280848875942197082019727303739617277812158526700013531484982141990511432684832934949624164359983464049592535846077725011763542549089120409631752555357478253974463892830622501369865845600917413536914073447432255598540312315599034127339658343979676557490303419182138730393496840546357061879517316737944897823699546286302635558206037064696550114821929365949127178601804319276670024495978435433077613029785190294924081690534379036330478378829398946481619591692451450023945752798933581115849942034207482443319294156071653585167868969754309288761276180450743087710636527083620138606636568320637522101881097190165178219321681854421156453025312710132904480231885097635817034516084003376239334217066892365778406832181884074244904407637514341386094229643217345779823000442158399078950558318067432658713926087034661470257441323751316544975319208618791040266041525345827869694776672664664330026223669712748546813297045877199080526004212736689848629479393926026992409272743437625076476076283985005181254582197707770209371502693066284270053421252616929705666457528859619323422831035102998246369722004387232462700624388124287082187107166986102911868625782066141652613403257705800069672299167416991137074475646500235360110318712445180536756382449361008533393977751743174646282489202119788032535596977225874604875999346109465215439522894564601483781137394797153047465204395694974670977415521970673227264966205688181538983938527431011642215966830201774536262026998976692858372060517111517830426612925728048848468370849700539278680342677990751945172886855625740067243298763797192839418942407290713651803966763413111246483128423074583099522899314524973597918613811491210788087818685057297252632159060049796390749921563359161594829455157860144407279117304328431761449414707598367272276771681782183989222072269889152239381216916054705322229891608806297759328851493065166591542861075448931847454944205220530056310585407218559915329346084572838341429867981988851759793147097860142283167306411641351397217608511199578331251389966702861189498351775823064783455356868129029034848339902569485538674874258950108356997697013028452776637278203207071760758945314164355992934144527663636107758428622119745711681450203073421310638862417387443230410647435800526060917519540071194802584298625874352257389393665886429239488409289335635982762651868998779520285857116537068755815197043046551822806672409708394648811973199654227241718231620184557609055494908477918558100975218504513763142669889185693709058569902984357165931242263490664395288381481907998180437203839978828583430279754483705004458962003067391625050042196326928655592821354814527008627824531082753681677126988143252464720325203809239646111967738725275799712852553148438357244470952781685743643466761700325732267377190590106384437848647871495356525334715154204018799007287661716188249341503645096529496963859672138053876781855410688746886859951272108991844120282349742372255206722096135154315326589804210779275279786565143707549469657495474546745346848782711140760027837140784108565123426771442599312612121292856269690439115737127235025057378778774206191710477364438985465091455995152374530539234380580221347220615462817847834061521994139047783358715201036971083916229601605562598605803969191131760674405272163348705345314500541780173987471883094315133452119536467753767426147583275906498468747069099061065592575047969679227056340465621254368892809097765114897231781578829143098157634317075559015141946110789042701135457445971720742155980690826454108735028099883207013190604479231548876399353238563902103766921726210135067344190066425614466058405265113699054224254313154472393496032990488180707764746008121085064714652399251820109094570128015276152172332794123862357526104699772126949286335107185572358605675613152163081940282655927145019252792337900381537592082273631627854508209247032586807203085740260831259558428204252689729399874502495080076399271600496118269357883132160230320726046248479250476980465669113258195955715632404843816134235319253924229484708139288813723808731480187772358841221872063819773598207854813699080287233616588549300293492877505460683344529311155705035452801582641956803026735082194274661687755366515623117306934136637821140193372498951350876725737073214313395503336730889628096119644861166520036562604618678943598003127415997608883791243258063086343114387318919829271321824988460276548407460924617506048876252794547570197749336525946762615014575591696802651829533228831916733216756930813758879287301987273876215222593455859736442568451901070844320396608571062607131865667377744680013118093463898613562698123801123550310356286308335570656817160923711553884010135003227082183061184815565792494864092042991096372246282495398202918064680747584027034461834471649522313449710314114002048828366834271907139732947100626597390405159082866773481844380781896567194486967289517787086237779448147895981647182199748741925452425026118837560871127559208915281094062949681020087748827708420316457709268142614325469569194531302461693837508404350892965136606245537235404727104996484962199989238573016188645274715456621676755916928273406285858251279146609498706873714099307324386176136916136566439619222522355458765323187241287822055413537224400768328891949276815960467172892724437413397606058500975676437030026642207346437172653299166045042418199107803269063471518473205002160596750849398323345401786240877928063232548185525399829382428853476333591248983633261460941029961817164940705947380214617121265320452962130350478650203293754976062797226123761853087370318042460295973719607062568001514278026574618951632039592223678025997504140118691626991658941246385807982904267987250686404765548759530490329708302622155388790451951908449719750212131627141905383388616865603854200910892393865525546487511169981606343198899384914542736747560030018557272566021375693437120421639142834574231319358583207392400879994462126395218282187680474915663340675596566879708941422182526878861091530810276173192590302149890699943416805234861049320123595420192309816721345343788360494789941513484403547734672701478964320848400878811344237188080552121014574994509755557509702002370427650055390414822995125800907542222030724559379124504504390627058783014375002746239732952755420524095596388087304326011001359244781342452661304410455518816480913409266868399414979733526453116575338776139170667037376426399882752266157890455059077222441136093602486800103069196898529038906209710293525436367473320770648942817731148622432274019343092643570038614177978691805416789576405568771950000380665780488423503789616621341203808045491599807836673607822420273637832041482239734266631250132728272177220262305781258162423013954553092439454244997597243476666331901766443055273307961238189420531403152278821509113348351104288872300074117204672108446634636887461808873255407664850553696157849395885649444416942562911567441401628501059375361414772976436546782145292876893855600301989689629487864428975043828260218088439762607397337398199445701148562849750664086870819347673293170515664378676272536446519079669466565868939415236534674669864085315503359174393998649705118747914499063089331424448788534245213555604500476270477550261143112919052255570542489487980621251762615369929128526119818264781637429768040933022010561768959081975950417775510720013068171425748914593999818878017211916176188611178543578736127241409989584129531376031912639285060281821411971824590557609659091811857740545764514089242999388042309013463288057858655658817470600859036234180074288485830660774423458912939401610872506963529084400015122555199437852405684501430606057812238408461931436530952487654722665479433183602434082456118894828032320993948319145268509158250602384725251598019388158838900489126284506539428436120601015945349716369663643776335146068713026619655378757843836115325573641685236795517807028711967122941022099003393683349345639564356084592857317910766865227207718317984105001112560236480574509948047927579135954391185376324284951736842827048066096722444225937823087971556794825498296780609329161070835054240453555136394964454670412001403160045357061944373611557194399023206972172702107823519413356326992736542591523610322654329263259419688503218931623753685512338491159757517807030421409017849755144195897552880595239453919401778164840442029986763410530188649208223888224442281808385566837128397392454151088310585590327416360984977821692231688883939166407870327768620206378870488935988041930794175275836950820764984771218992883189598101528729373925689609928582053564651602410672847727961611753258945991862108052117223941330006650280185772710060408460688731622888830209742199572538178257720118864912412041476306278059660728831206475566605944041618111050428875894989228942485714136096553607095742562171074913195659460422220898098732188357647801855468723089873327461834355528345893526048302017569772569466654560665684097691949337165050859278843009174605254112006649848316441319288131156048289750131204569543255253270355453617826537487530961372927129969750555062907809600805866808945772895775544642713307126587253008668176660049005402405720535393963322345054182471396077843611367357119937347436535920203615655657326577705578535602968243901026339141040486999809462926562149404314686366605395683520107737250249665368871239191177815926901851185543424515668641811491871577523708923266225889691467750821196042231723679159017094009582024242514381623691892190432973799905882076426259133616752207487365334801619564236017708854997112924163745519721368704621896793233104696794589573331673342820902445884139131689319097996653317550344502372409969130877550701274253064788606232328346170032698925856333433124156840534649189549585851777515310196671932139347013610113931845647070071926189633702769752795510541237770352669777189544019117494922685809873209314337535520230715662071279608334795160090320250947028775387328386396819024217398115376941237759940767524166142512343783674816987740616056834054335522090838383294402980125752070433795828591894939866321374171507717312994396214976842618237583753742115125310289096688698157751477633125413321218710268340272170206987318434390985588305393892581285149760554479860501914625324784409045475086604913592934465659666702291233614315071742086438091824081057922328549163894944193910701889703666171185427494793478299562508121942415164226339818957215684944383089263927578311697064429745395567417544898445393101038414618220077332396726410987049823700900596280693844255463328693535743763259707029750645665852156049742754923561230750654746788277562317423810735384236875923004981408640280837107679743453555415245066164917854658527079561293598678728506660842517521330979794664302156500297634319702791761775336440256207104689901603730336756099600078505280192569029129751321000124427095905997240881281783965675137461537169093250888271200689760787976617092691256299202507873098328722803418774654480264996325705628585846439327773018601454617376291246402827057278350519201026832932722120009707951987243576224528791952976756798456164026075431277761580999855977991224726097273869795653432264438203083483351020665641567417973782681109461723552187188170221080577041531242590415243757658440220872466275367290626551465894656523581818089258375394681240389851894990234926931979917578628648130528961521955759158161710819305441767703331997048221622396201956648210671126516538651670376983243249496535993978210911568639113597756159124443934074918160340896355683060728243734349785269563295616838807313210950057650547064005460556402088134986633313649472372753276632934036284161150774417439732048378434086242210786537000869640827121557474476977725895822856900017729334952502952446824364183511249852906473011381888499627408092285536296861854777704420649880548053477241746821607625097317646115975667335758076300247071811478607436055501802667816946205445328269931816041422313067307884189024753805412587386521363866288472293132471232181036804148235627012992509600485402820854954378003264402229581239620360499638614662710538252671544570340318759805235743253713049309340748580674938876199175543138666266794914720392697681371267917106069522784395487999634249300560045443790450647465838427634619692731304281608176912719491204388545168628981393115553886584184315003473177948719092113933429456975734366997192947222536378818397866956941535621307606122485029183686009854581801817356927893262361028515052696722428895261666469636324564705740057133220644889544659768976253627361359425435185077284722716100554308034120588018472561908004912352225487694344722760033423697621113639298065992139580280594065651272383243716635437816695921217181109937874927810493001873806279715074601763178379380559302045286440310787573230665622237346113784511505400788321875263333293696594341239961268417214647442520353156087678109899824534962926038239652134658687374215999178215878182592955064931029589253859388827480549221744989930114727251460604019701194920575853975117360897000124806908901887571270408761285178002103636028295268206736906304665395820531701315396161834990174098303725900818071496469816952258086667781650388029774854819791041186904831359132025109810519761071319128775821941485432908049813802694266372921897524708193809570688737290345854369670837586563087568565680444824268743366389651028524412183348115398000551119639766106458154159503369699210343846518251749312584540560710775278013200139247274413410183516159505451425504582244985476543587382973878865543454576524251085309978768098002326798515130223036109656536112913596880575107892987024249832281758777759239699505810079099447350355464933370832184790321203257068162235437144088695213217390749118746646537363360922405221248697539130460644752853762848162195021581199094085753284149490250804828342877736366430332625943055814309338075703384590403531948497579864765495417297227806824838404261436194278009121685073586569235396980122219328579938234645744372750161616487634455543193616948101239653308187953840197353782707425351771923557834484707357770405850385002908044941479286707757013391577152603101571638188306856851424392495602209034172372386713870803155834333817078023422854605199655868349949212237482071689616413381799270900505118379591134723879666092278330613890257354510632900799303319672844019739445880464523479277303065114325443247862917223842437400441190763512141311020083481813554318412413931635943515255504551461267162265022308716374821192777044320078262229236326344717293916976582560136471860599613233396706357093892822635031328714384194150527367971191833703306520818240636023869118930262985511931457120302222877590814553087723707603107371074510920958389100422313576386017165473932223394718438226365723617252692378395279180062841116249128572532105629278281927563462328255322140608907326715771898053434888399404661070871875777721465652420002527690301744486135964822805081224435007421403363533427202711850517974871449759847463688938209434220512731753772731260584736175571902648877637430173818754157126795195222214930117089775534419575242679279868789143889610071564627439084953667734332596439358666381421617347406479553147862919062047489043770483531731505139539929668413273624472524928835307709493019441382213303117280196101485301954572789453052440310694069543480822078538504361204674732281432627982267649884745395727809793103042925816887514615496036992499864332453196219154803457098231851733169741897113986715680140554316162817153180321878791281306964496218836731118977271896751852692575284435154148014352683894662142832217951096672709164668190060105572736772442069992766729272359710053257941018256398372223085449070572095919010855491439964856006189169680555292679508670405790261710640939800462382652304996246179137156561485835869692568210532193240424278666342805383086886417637000272904460210484798760076080457681424032935704782545446660865048746663203387328753821015377798861819719325961841862758777488352090507985510445222497141380976748981173238205638128297150983682869809158598605447420288163536834865952955532487164237902582704683668031646759985196175462178273026313733616665105517809174246725822253842082271478072433176598760102434816165731470798713883825809618087679640259386673673516838868243567341424686443222335591854295149536981982622383602125049890879212999907706844022893155191860681102657099188133117261187446993145639543023841391031665091761896205471753913178878718389821220586123721142576166291214760144176318219915775195024418849981901427753522766155761138445858797732259466843379387896125913358736613295061581616651634375792020986022640259455242554645389511123339336081597046995818910286094349327510149935366492963277782820528880367990427102995060911779479688264572655434265594338906913975825031513552384631243701730859032390925389219102725547401430709912306466131041663980536997473328873696074017828125049286937775445672609901443005493331096909114802284419980327072934590091719412545183438872575360981994871800472434934271220790870792993797903933953020765695073281636059559746789655912348991151198939599716764452456585366374566865517147421822222640996748571385799458153541613592177666593035716055625129352945719889129638478725250701469749251971157989969675464816031065389790148483779497680232504786275445235875819252067763703544505860452361200007722939282261220395840922680020095061276434753279032787318075545068378761735560464314163077383159493374797437306098343850901440006521911670136340645018311651982138503395661093191349321421700588688461769998874530823618452193404379092288584321727369500935294242614509285319795032342166946767131444125110615062290628782087671395885402929922858156492368402865936534093005857245056079828919276453319501881197751133715883922244181397334133189240242955618825634357161188823435835351076224938396132814219301573216324467907238084131304028843575466065880003427611805987363405355917492697399708763758981612024308238400773949111592460047540016676144166089458125141915150423009148364159004907235601370484325281327801163372565860873792839432300118595249219040550373005602437271206021466003357041721584402811599614133770046643458313848783336527735384012146096988310019656245305724449802866529234080867666823303112390464363068118642357719437622867256567495671937074279660608995948783774640340043809315771229093559880140633973712425069070860808751264009885492494329891951430227582765026139321024862614602530082289054328045742963397108526037265797126884007716100875720330927369558180980277341785769533181813486771522333128877235906097909215219830653375096648919165702470971375079762768347994581868170007802740748085306025158865337448231856378769264475559078839603532710095574963096926665729827865580903609945306362144979180199852246982018026192106042451480507372227628601850224476415245158899542663771946003300970991201559811408084652128629432399288381949585133293997266391225824224696891741497183095544508858077584133541542918033896983495704438567994945202215412800725225975328318897230164174849194155638796453408095255684389318655982864743437118786694424920253496884122899708257518203952206850154686736744837376221572117854045330753432120416214136632540154784183256903802237975374331909632384805717360360056253553364470972911435827390868744945602996277005401117029135949193866526145245044238978648827078829974321749517147244069413447801458448128471631422009121122692534471566336242186002920438153492587182277487855613547497539504299763627060526174668318705940898969997628855138157332401075698738847451033856488287594670644648954864924953002850732097030097500734144149653730128170433736717654614283406736094742541923315447490156866589623064418896959677668081338841001509228614865087038777383714003638881476242632450054331777441891162037161159403834120661095393106612469010735089670655486459058312051773715458864216112423444041260823402752232434245300412549806536506206889465919170594411092661439162106737053776297038598933715912554947885079603827621560639434049190965492274296958061920054297143745478331387993567420853995123055663109354633306032027420125428470369445285407336604060229466031864729039168618694743600947408315536050751403139882792063659693951927108191803478833060746229790507272755362504103459106337586790997508522332725274961969388345751246645068396858468877802314107293660591704946263073576897158184137001155051636887058356569911599157749795423997502799643647583297710322427480064863861557160168423431501118371719552713546719003596139971456413718782487394597211855672966398207676638668267868893977373325179069608175762688740404601508412135624049019469881796911750939744297923397791625581766436392772373310326638580812353257596801463267513882683071443218598111979843750163967110841936945916512358581829719591073606415845492702643749920487924331051586980884848149275872655617307707975388308769191742320964406692126988294508051012728918128088643702081443106232379759503176826343711863580387794182599235163001823609012433776293371970623639085050636960806122233157489612394313469873858647430807219999898145670009679336318357509283789415864990640340459901124286337978912393337551192115234091349350318265491439547549806513347971945103663012847224388339446020436080203166140131581754753385745828737151771729975776134812841161330490023311343433860262841195476131917747294103942086091173709436714355829310865327049890067592746645168323560634886247107228940321076475583032445958390199997751267633264644073563084237579778962404993855941033013720156913144804999245960663422362876422652938138932921881715987869265428360588242214515276564260855261839488754327198977912235024663174196266989771998398161149323696609517864465225087456805851938965673346258301081180863479601292246037845651382246362753070557258423866189305559424377547694451795030962991118560743116721309490627700502841956214018394098337844342600992340969973714802782522719131839315103124653843056517362110810785710728306719475548867027006132116307771551898723905493366032227711804561656240993267451362631332600360947788560479606825801814549067244564590466316462908743299486357681399537123574474919881669114377306748054154048915572961208295578647483239566090670423333526400988966886912924889848215808295998937357768402315292030846567756295313693763468745280511768190360801538506249660476962403369599560242066783276802204417270082750532570017316639052470645395131729728647588308349976670647194246302145882795470617700190280022681540616176596080395163674407532278058859204629118522444925371355956509333138183688929234801417183255233873151710545572935468571721429284405314671857565507854562975641299256520671701157354267464780245289470524254092370992033889560816543062801441782406083284497123215021923322075046539643146389249028085735594082424216237275406630219023438345522190253146327239725845852199775306088053840294696536527913248621781043223507017896907897670847599240544909292274691616767257894864638670558552238665302322826290465940645877280817763586449376797932103769645204240709637993296300833686744829511504343446252211140804104046114563185612660771975305577506850067249676240403655958819722310776285326029060914967164816920629749793220511771593536528211720472330796921202146493633477791939044605930095026408848181618932154260856761552967229047898902428582705138515194100568573050529122014834695515541792432654621692972137075538928880733530381357950377044370290065687581001311050049419725090774515234790369888227438314172567883841930738508238565438433838388260390836992068480494896138850173948603081479044947236375195376805667054971634516455759420410670511041463806712338755360351178205574898202418721523477774343214513160015196988497493852080572885594423316338717591217879419718000980840581739298886761631738895627777678988123226303620543718915516841601384213124240590389636974804462256929338166264538919125043947086567735368615564050599996542535301448626759954544232146929761566014369223412479299228852822388469265013116520451665166027381477392992479916489201617964294685896865187963350668582507363164500641615875399215173901239619924231660341696580660993663338086370308588273566137491310737830313292329101105809422378287384315491287530702294325043681005213005309874256287791798331932694283871342557135831564694753061589730959942389434891132959995267695553557196071931558514162519942723159753462258918693926349089886668124698406625275823562887757814146276474041228535065973589516082482521994368062931807546957353838614593912302107818668668779783291479937956488793787410162526486525541930554144595187242299854078949092432724528384996198980292393734941975369319725093810795605725727467390701287706409366828331832198168300721856047838900584722107791614873022916898801434710739548875491714902368694344085000691903591650604353454941478836233754304612546023532023547029176717535758902887411639421655167537537284654825539169164367708630932620497785172015063339965749722105147734149554993455168615639579066270141804509860613308953054239466553540491943626816485349890703177266550655457292032291851215836932300392793747537777620547968847906465215983739613675458623170669689377205485904848292837747366850604616086978367196493688313543548797741294979015943360357259530985629258367621659151010797622960926139525507750976489116846305393533263514005786488541742030088768783188627241015814600223523712301475851681324233950306416558555746461723828319045063931439776167891013043990287566967734902278006231451093759922634464222491185252593579492766775365322181189259720841591797681111800814781223653147964625288647967593566536531587970272448836563825067965827948095405675779100982396603617692249670898657451019058529281413377936109385489950140675866539750049080313605652428779743929432918463925184278691735987002592216507982557855836792733424835855831005443207156329332590540209464418479930383046763368204623200464447442972984020480579507421628957539572479524226979449260602670640882764590606996810261713115167814165156994827353605821314028668198696896627832611415363146845285844097232295896218291226425141447507800173798179851340528965880995961721393754450259245227383391363342934896965914867959158818253483090753338035281155144510599428755515120468144199327029674336634709045017402189613057216030784869991384479839507644304350812406515871882640110245129377537877678729208327480369289756678076877676632463709869449174761209010764801710730790050593565663138922244019399005469801108077862212762173040900177479559695384634021576228477059424925606680629586699362116677122496973856510270572590146001917866470213371857672243245401553104896975821353742484287682896278878899221196109687193814657395509882628265296159450460470991452798598223094173896181811251135136126969216374906145542559036848131616535201830975590632052568867561945815413249421265282125957695654251405839707914096551857228655018900460941931453916896374614179030790035735185199612396531406822120998162595188905695633714349887590535539517390709410662623977789139909767726639541787898311730548582532997152961236036133234894880872098348746031719277589653357737168765723314146420070559054218667806737812267286604661954774224425221494656558049653200799935477737183590052922152973755982243941046341795127886374746072609494870360838566823727940480916359260854835112761591711577749695529277173714409240963944248041820624808423339986069249366321589984772970078131800604763853960816414078754113773380232787858097030285075023963531633790569331989270569908011750764816523851766011820336629062968262109371938629775077303724339146594707293485942436770491335770503554785822464605769766674021559469245465475416033241775540023352569320468069378312278039821114580340678554259242371135413091599728018254322585344067570627266386328713041310825663822303185679704336094511512806128776752548172906553938133110226946377094995374389553299817079896609390242568243895943241166189838447077903107669015981068691861149241764165340887053145621630827865083657553491926423455592264661779151360689177765045707024510325875060847229623695238713869809749764285638499470352738417138273204426107818901086312786569421695257291317223521806302290998999407994814427927772000476664846575256450332784259512934397949219111772876780540065573978577584479230355417453711223537083570410428485160238716826592378424965169223396592811128933473964213200021078900119777810530915555715308362691863859507158519504307889175853519605793320591738337690201280241506263467272823221049518234910592809258853856802547113645242345461377578566129374884659614200524255872803618751051132735273637032314603826718372910569584774296045020124363033052315976743724759185646324675511702913190353218947006960432640107587437706101307907777518669689762625530645966011075768219513669678884571814652311917057720831829694939535877377345990053230808659118353279325908673493555682359448334427072928031527578565500262538251781135025287508971223115918638394935599244202815227865855198585564764406640479393105534847436110896501671231746619568539930389322659965439618545580143424571309167823684317930405017362759750536007494029073767268997650250144430953997380295618778234133556835827645264498593352775433698590692156871500649861065571585408844304312900263466701988203079988945081618589170080588529320261809353457077165834029403656019518239173183468262805849002519488128578341105844731691892018673847328740670403449612191851291906685957218397753490841993735883942277944218536752926646977773854825385545926851623304330822495530754997097259946907819391046386394485133395819114692023572445479485261034387657910021633114557822159404834789351061324308595360902960404737775854087083652145814203447547539452601876667475148698258120111008883860501974754747806713276835092340004948895841008139845579185123848902103580124834168032088732982192012102201643098936921829396612694197568330823316225872474700839903736854581366333747887749981848017870785847379165516364419422046383405345310219169303922091837181828588943005859832079673693077939615561428146670400785940656344367544113847474867540275232289499232111271795775917258959173074872133096813970012579049749084736124794862355417084058200207146362263034739661583007436681612672817931612973837880906301930794142836599986182483982158251011167940476332891932161508320169378436121764373009781422005782516171325182793370402010608134293533602407981811882547024311388275480003266187812780874721229371537579043039767078517353740653074310438528902240555795639064679473641344131451199274862231198703313607072757317367870924223941282275987303480150008139983228054554839718803959846258984395793973114612667292314114665650749105905627363042082886317949974680291634558857957725238590555419999660441059970907045040653225161714050799088039364708978464617550018220223866387259532143203911386926863396864357042175509503738294608473265625640653919308545392887532286410976458435632657668654993446518644557754063161460501966649114036430088504136666063570177037481305172185630681773981971323489085280931376668703526683580504978208152693692211430460166655950479211288331696700833397808581979634310580684728549730777284811078280901781349543825944247044458368961741421764082816239605859938573560260563924042368352180269614819929030895639115211016356132642869106484941447997997992483634241589476859224532308798392603714070686621197910692835075301914423509968148362293241593461632188298396645426386163576219168799124956406284544371979088034961520470224583206674677985006706277032400690192146194916311144598876508933610663815333623782057211942848753119862574397728185522182327013453926139182648149901243038660220536378680646623874962996847331002367839599188015501880525919153288667208967191361633422612040551992759772732662027432816156121951461502473812268788919005813154902209169315127593425489326228447846772557963820467396883066998103515201923545207880669033444490990140650563877257767308646585961692612533416344280427327626391023861687926442198871360871695798525001789138397668677160513751216734518299976695902001021884656782500946186696713708634785612336149817422360541401845608585242116267222272169207052287855309482038066900175145898871778400719148762034105398069946292502605041305786723413623091306986195964776863817072980221551154681145237211935681244511395016036102426945604849916231545875014216755265160374417698944136127962164824377972104005429499794571334708838245635490758703190373284665310383868487498955205758665366854744655255462400402764793675516539420634809119120516574427893266704830265607552646426640588360725762270080097119992076099121763107623216287122936442323419302445473611438694607423743708334611934034484731560056745577231878269835503462345513803209423903761431067583672042302117399016799661031332020627130883925447455312760356273897029450600601839180305682015160272767475717624729255833574865520487520454063252735075592035888494723905330939087120800119496187258112211195183753449789042609567535412835679937334678127851411616927085669331521782362220295468223662380788754301389395664524565518945902542684558324021987693387943338649225290095941869781277169329729715000698159293596527157030062998409913102183831305380745977328193094223206730909771633581818477158159051327614270994959828767920969445378968665616787308319307770752416424319440824547137810867790270110183452395000332196719503817552565870624848070612857827878933453839872202542939574093396495942000492195603244585239945420050551048256902824691306189682115585126910336368459584225530023772841432935033997517084463731422641457822994852341177820688337365536452943228077461281879674433911598134211686636700051899437114393721558247331868778137755254440602801176939642744902395517481559091379690056760008017145770767846663249240045164046724957341179931992993610993867273732828186395121400424888150204346342867855395269879744531788710005557096762887172462318084919013237105345698469199683805873911023858926397295614286928210679406261458728280902409721309569422407167323425211805847278531271987031527199794795014748873835350372901826021353001806749877719135485490334556382558615552255691316225347812302337151900711088534978507749559664671436635656231270504723080482548726583059529961589088962641009209967449318384416741088423122037607004405100397656627497742758566778188997215340213877546040206753671814713334852617623085924689207266100756420083418870459905246958775970601954483018665715616763948265616769053630623276469543509950279480436199171362827973525288207868631007026939231102601713241683851944635918192329845792982130412396224842876597004521838333367601840514066916143778967711962461531910398610239340228274058755755633866742129011009054163880029748234004083873086209115106189015554307848320279611613749862483634680951448405743173991225927044258331813334508155396225492652071009812307488790020677033124552822893061767843423662626626997830642392491760257330186629636376424671610409842951072613119097327568694637808656879506859019818593355989278136692621322240127300658442606141362317779452148545959490224726202793186700615174185494612400888659119559930683890465038408998861095581409353370287381927170260823923510804947783591366521909676294777839059701764850232407108959717839394273292880610661416770808310963138783261637121070027611065743097801214528375018183709136887754006854625003114187380315968815538819997116885044897340434401826540886301453351953420303136004919021330348238382272237100239704204591139716147544010533790451646429776730058355316767364250036814068118295126063596389475333177310029937882831295656491206033682249365972038123076613074244442282707260054612028552322466209703390036293530127188807282663888343857156631826826404651722629066242445587630984439381148629327546282394809650427619062753332017889697812981792002311284879651630634678099842909016720376058054374734271357279524174421543544180250565952275251217373405922537866420063629235970356998956970274629962691844442822887648219446829748608755473892190349005121422788006966045645087888970514332503931868849640006914844897225019592974161451419722314514359412614300188063830227872003574259919379424304987257787800434128406028865648712414088226461409494890301055369036405964154499738957243729534297324507382788934410220569163597634312765815927485896761671116409054588349295940612378021986762006027302454022083472782936592472261261089213088863578653321124031842685630313812079633502644544577255666746475615720306175101686420712426254018320456366468087020713036431793994274809632130076728325403237237630226598932797008432233936864277199319151202832451064845091029809956291902288654972206206617029507608656819045521492676610121461360457448966691733651261826293702433626531230676245349937828540614348163129763882065176843564099918486738011061385107999421531970926904126299593895566054818450602898357515638895206767373775040027380104257550226692925591718926942832148143361703478587751297488831880668314740008001116945461544402587589759933943682821529280882914231329347630067224597190716787389077706798456534636580950240523789868513303439496860511407341960391879797958963138801211937744065849701796522201326337110626464053176051792846170346376364725801755513295253752490183390622188596412704074758645590132632711781940117321140075244175609814399577066837167714242975690734729062630111479251813388392367959557310539636715420254053754852066299845303990378483148153031112184564677647049114341539997657814128496756828185682943201280008167798884644037453709618153217546247136491408813005575559459637450573218946831898769900289819181937108002393945226592217507990259599999439210336748394342221985533686321706295720154069756399635429433033631869093408507889436052877544064883290149516453419197572762033325624643595667273891888318056406387420791958361689422327176074978621154082571803839687804042760471002299238121530440414734321759067959495246555415801052246749745677879225998511244821644354012026331189125214968040019278330021664900404788428745523671702599278064132588085046443443594267767719565523877235002046375832529143096983497456033200354721346713256930276813847818859274493843099130810619877711616331612002754581916452914551057836927597512942461282774154256594459331541774796079345399699829605509930201565083526518039678588424154651326321352814834075785892906789266196041977574119071858030752192365441925212986704083112987587345172868641331910385176619879376028588105095019091982963316247787688781332290277564541089035048286731108199721544884932494362355876451506850101761904249869939336568262781653397116948278513267956193582751400318044625697600249304770454130269472652094621133002247410273018053577937497884175648720160976013548287076167030460097061758168411755912001667568413441228469777174443175462767009547893008406517777950221356608991939641204045942927899793759599615534327154721433589682820940392945920097059348403329977320208328696085862230737186793996375221971293614789205028625137001137581722562996610030767965463670787804356739407319590609076474840292409576993148226518625963129785372776923072898918338673281326297766337682124204783212617944178107705840025126330197702739894565357533790767225353226522432871318271704504227479937321896744392465184322127988428558306809711993990842085491919045266494602336883689948977932562964244257029366962890303782000624687867534441505812683966466324014931935653024307169672112591568086244902606973393226990866329579523093731358647558717088850909687309508100151487892355019214835857457274598510824341350275131244378407222340463565958143631754069508785812993810053635566327838267554426442810184507776811956810143747858680977318182561885585442069428166940434494012565607273117886189101143660973567930479309580603636237517960941564068920702629522836469868670481353378348005747065498206934214724918793111074199957282413524976119644135174667770258942472361969689432623158551219697857788261291357105083355617388762719919617340172113971984129212126741842034282754898611434687982169107364096610875973530285379808763205966491512827302720860280353412317109642270674679084693884551550701377695782878499149505335127011656730762442990653240986388138285130041191360423834954000143604518811612397259514871017104051290114713892607583718225922844783167336580488279537188391907019981549181975772228640874794307093235781735791073152507229472207047172370398796875765231044246308844243402633305981587084939147826631693251964120218735237123118766047723406130744177422441785685791416447807100112470910938735971228170592636024467522671435503082381451689290989608907945467935230107348066264378140865746370034848807217658092246301185131454082433908648158257719688983187399778790819982690851238177280812747377729764740899339224789245437207974098451621468203714603818541525897393241669641389656220857101643588826972900662602064308827488479215163967545909603140526743803679683466605329158559960916595077450307435534917407731337645450438630461962613442224977964950964936778555547689491568291494894990144424547189417750272679754258620150073929998846898956745622059587373338986678224105892067148127336196527311941251151426890490853565183365637890740503927729906299385156370400691293293793727571703877223638232499765613489103520922306097995004930037817925360183617545364861281180530361418140472805119362654458456499580389329734730921931707565853003462786949620080117040597719249856686368694598611781090486224462517951405341021778811514081347812142417533395898578458628610868159924859222869700049273327485586379181075419618336058269159837332564709245778410007711803770432159249233156481250769126693389454729706748598340420373387137283002355519420414000972128369165524460205718216214660766585183056613720120425999889555532297752303143184291582037343522450413646943617216264069817745049216943834285397146547598396680152011931662222009099642036729278081843300746225051313698719488399640493923056144995159522208236707663921901108891006578330332491423345699611003492047964123018352597912916677208796117669917883080195917331098346056236972747650824284049863885957646521051868785595360763103547367309933735494769958546604594903166821106358663692892522507028808222174271156149443552569794006289697468429978503406427538344566251236913044282156455678326041544723201275749507566756815954327178339497232364729200866140705678517361715733098663157238519415340672325320960608611965031489858956047565073295814071486531593365387785824706539447449980973343341143128162651589270240329847721894930225204806531632920946361553821594162080597717631102055759869266435206744628325779470949010613957001321356469142037451640063826047676943295099340519154577985663668798364383752732293716135562410044487249858241619097692326242069084348355850981929220742194125808612219826990215935106185883295474627675193020918848473838466985338548785941943212895980464433602696518261032908614700471177989488513284607737872398412435880777881582543166467422881589380790920826875263746824023778961116515379639028589654237734648034132241118423448214439814725589030385015860815060087686531414763562305840956647162210743029849932244424252279985409276497797998103442456118650004906350746087120501344479723604767259234539771288623639908529725680780658871704233525966852977589420117567318601911500064478553026290814803114403709691382280852852122995284261571985708506883170925630513337658549347672029516258580620886460538122512453878625723194190192600721367380153014687177814252345901350531849664692694813073322448964190442733529832141724871126072987206328461540133326156389893548104435589567885870652626405296690429847872564629233746125657401005209922145842456027023781847613554852168088086274037434378841013028159564495422158735867645242292403170182855241701447414306704833334560419530234007971447651624193907294358058276164147986285996319995937969532343672291539687849973818538968292522167323113912213862601984389109738897753016903217702584505340062958155571520704346367426542805805749661942495583338180659934288565631611185214244246535343558742078237401356740076314950095669513645572816701384736726783892867773546359014645457700983497213059829143106368526678786452006737553383583296508217280365608307952003503101793268044609291224993422552203230790289307168640253259874323894732660200520874827316080271938397706562559550312318795654504463534688458330942433401877529847709610021829559676027628788886094272473196525491777588267906423164357887740108886473014425148479386454998576150044203221771319989887849487291630420083255066924444448603937801767144592360265136175678019861497950053084979846529022470897259937609444134743863943234795660386839394125893304757454496159931181626218213001054059717360803841257990813705937898155495634443289525057952770877939161779801567183277946770267750524426843795905628917348310054676692280987156192480104906967909491803988828145716707314429935832282194638928681909821897854955198175095014794191713266235990620887953822589132197179156800248310623082090229874418034505082027333574552292461493678429492785129630281787013783501435702633411735010852417509220066205609701477829694618311188964748684630619828756748065556008758462046486613662223959527331651082194724709747090199789723468104469219792249394526192633459647176975102025612247635150783755164078562397052858571618203715159203039626032730887597906439025483494284885099603272785770780057219103117618800241377605406067589025516083036949920134786423303781866411643347678861259286055749267093519345837068862320787761389388363696598193088961264557401571559877128296997490662398374882600810334990013065243453912415322881151289847897215574814128076054765717730641003473179081968623067372868913764130341820518231170275253087669489271067704556388931931010653234133878334366240754777295861464785293493312292896268938017443437806495123687257771880919494257400903938630317647325390373605191683293863636460704773220086130775403761766996502693259211278038583434962900798284098456622332594333454062165316791321686364676684043965656435040273414711373987404105664740386304124453396732853788269360568216331335140960269741182761480128657748600676603704825359754272169354667015857072677761877236178026188136537235898257186813223927144526052947670840791722661016605070737878281697377063972455982124251283030191868006832262759516400248486659162598752868720371303253638522152815032440604321713340594130069034230838837232867575329839933022545886359498533611353983017052726724490760232303635072211715430488748641973956474703610869649942624926874314068497593623750360892762943437613454490544081134289406040120832164979586854969695135995661284971115010230579231689537169389595134140516238577148677227206712851330314761393526281724626452834094431490869105511779673735523438805230620866584143082061086663300984513324371560473615954441707614646368036514464318474658234154375407657963801696580991360293576526264609892906318183670229242575714682356896897844585455873882434898373585721805806920201988246103056930806489995302751608444339798507834703044946050079062551041398591241602300332797059804430428856977454561513458356889636321954836376370977030611663002493943644660551147175496591419403708129785629609512058132706081268865048699765329156693678412885774330982431234641334005352653571179548157992129806792073554596925746821610333450171880455708713457824048086217301378869346900776028777054634879799425332391612041674608181828255447652748834583693004472062730175121385382346880838492210132211295369619574622216328228179633157397558526179761617401746875097027550989813600863605286435958685460594160224596169870688522637684516248692709998405327544563818123992226269653583634793494473171781706717854575807569513549771652884716876313398149093269792103787789786323175471718505375341559386551574361637064436570591145289218826952156790913200964300578610354272683623456416555320730750251551217909988023236430747994491139166351842153614665243973443522141363944859699596354907351971505500196759408671407782585011990481307211386026914110239541967836650249957969423662818089988564052745177083370751997708518603877480928626949284375705170083247466630676137897138521409329886250162069829807830036339840131139994626062288790888978339850505976286877122413576189549950999624285189426345851249788856382720552539433832742147095243426472379005537260234744032305029425377784296927832786579672428277805367528121140607396682018490021944583926982072728204456508013973532624433009010730750525595670328503841391806879839817473922895884397302318408933624584259850692171359549023653263766549857427938486422217872724924939423287552448902798836894769237423194934320194428849381542443235529732239145542723380260450401384454078454147778271099789751623358552880140291132992329506895355000204575842527569833694650151439600113812609915001329795813610186094421364072795278029347868518250073992433313561006255270147738573504071010923988625615540007705210990889242404971890976936575665748485401615262248297068553641839116949071012405492042282087046963918041793858751687081463274671145703346677538856441420843330997825590885827195613145634924835534357565407015123558158147933364951811911228909367624957242950720676439508773259810235136458217861373887419975655170586536192420784426221003290823756018051215566261932678133430970513431328926422026931518435547246173073531310431846781000704946949172164430763083951066560925753296538268474173078872008686098982191478642803883739909578566596212309996298530138607497407744803409266216237629719678984386145726887221812617865801970433596861049111408547288517175470547233927319120797817427394491627845727631341069316824165624804529862006784362109464098004526761652554328447901020831757562717544867307239253134754278521673398669346520447940542570591415676481132305892950902434323531271344736399644541316968129575745312841957238652646090702254005152471807095310357905758034560491006309340466447181202710723550996093168921872257594347808370812093199516382984049397063328445117883423825363024697797312732108826035088873948000122984680541382115137503250162412602235820593285142141134328592367619194324852356871425986703417303773249113525289523977265724747139656414331421875515786633348774403604895163706655347059322531762801408434256075583672817951766474473841228299014053645216601300555149550442376327309040382931731959216116907412829797556601675377310925484294148706071373452183639370540277455764316808483826427579171614050500555600634827576308805463636716684211265079495139045954575842247150689440872858433611846829006636334983164727829084126835946559305811811093189472553583648887730240730564565101800427067831286363813693116810969571257412088162818643574907087038597528729887982711125485614665985278342743348628519986861769835567569484793351420242464661673325347481724144661776163080433626918981849759395647632494804243164838555422202910220116298309188439706558313255094501918265022936091385641458672192122559498813196961113058539147660413988419296854144549463025206399397110249214237673797610626691961439477239948046297477111981268148573111145146311930989263796996607620744630311338174849104492982883003802837244409160377121648420933105249375584348146952698493417165703451093629023646700356053430009687482869707029418863477353440574977591508440596531991108791248925564182335084255783632380132349957464271237748187693434310985192554730354821661880550341087669305960511769412433658979597766339564251839093272066345781445770111502889744030894861097889005967868619183578043280157606845299503060931602324432415663528157448917684498000614622227091441543383500424751644804126019819873903311164625557956673607102262250835421114273165777633478695272408490299667243571744538766098193481480632319993909180161425135823947485293427001258450044571900754567640176826324275139080446624285352073695512550377965329723604483465430437312425773680685422036086242332075988414955044114547753578491874290861229823464809077470368924650445861188163937302821562542135024291153019541801311744104986440294311076380255927659543915082271872704025745896077625991155992851967030812648732835559894653912303204892921855814219430058374832701700297283458823199497447166593103591474173488371325810845271494227238238014769445433865673893791625569426922562974635044737787501777626517375413894764440644581100866025540464291405997912435223602370657383751828994999070468874656516299785831093990817875385455831921238457036140791209760123948574056357563366684219766834950729762687764634788342798591375620239562161074054761246225967874053649481642308372808471661893155899880705454694825591875878946317973332349775408123195465169332143107259684346360687809229939422817234263736783082691533637099392590239439782073010406093589193703822571185019325339105417994596301911766919283406243967711643970887909075205446143023125279302359163929505011710552658186589867876489330590559626566380466688341214006433681200322320608630827331208049810545071802570964558373491348358608704110246447851710745088134114225015226331873284529881246508920354838186771262555268811334962058562337324079158742573432567066022344173428776953189962629302568486843545202383120298024691490752551750437376434828062357691264146110481807671717551220095188130214584792163228431881847499643815621065833071569509505021285125871078142814766194676443787174597194995051412588732586131198594389779699903500637651577618393541441886684464268197222211186053206029831990441123882748559429808419827089526584050219785645908200154522063996364171257945427712415541862312249869269827876662903340344019513785687327034135603846806449780361023996611891233737203256290779673492032470282805666674709691187064590740851110365880982308715469135921048958033355732020319817953115200947455856254981701157193499216387889763018017943148044432192104970169925279146112464588380989380825013284878612182707094435085875540188684145982322532267107277994436084368890633040266464777594344333209986819660653856173107355855556213133495933979720207887800338830789745447239598344896820998330148035472332742692266973646928704032234469179297299734377776468654813382013944985636246498233734383505822860393748156569808128928164743285684249049732703744104200113064645101013342823982150431001590719005495045077911106190862853847253986998730825626590530539389329861971161698225142464967183579331523342549992485967520830727380361611866395051540496962581619140423159733459774275531413832724437325804053785994217880475439515925661760922885250086038369396421966161707272862465811729663718402895911105910706098387078740825642981662017330646799844416508420744424365831592279866971119813096268814211405575183824660419507051377219417127565004959188822727158626144197592770005860577914737674145011811315660913811159417439120888656608178305425171796137187239621985266458453938162844206391425735667931993967334617218361525699530780058273058145966540963506148114915892273797246701875331499908667354158863067438278856319365128971915723980640850616095302687884887336986858796825575571967143468204003368535062740883470707460519522725698602385666890762571318928003840453239264606903077999329917158569950997474197006036887438672127288939480409069245884527667058615486630399546538160094658444318247174456144799320387048255163815242727239415965826847196927522118524207368027268108923819198539375262325229372378978156127443491746024695603892116512358683117450368169506812881543797139588111563592339996483171029352447537967567790032404261417059834553794526388355132130241787198853264193329586952046238030962296542190909695655350196331727303853995653451148723765563776633392432883508449636953572867658414388472527520699518384625229570652631196389682184871165718197231676727171725734967691122021392526794340827483452796335544014337161546801138543276144250431486351155385275952884791152977453030248190526532052438203515042616326781820742950687567406687726598254747014488277998375221382902631553918974442467977144084099596382080103199089980816823668005587290164630727294216489370770710443157857695327450716521335786396688333515667413908858659765473762099895468165631417180569508485454422037530098314324754261331463879597656733395643705789291325430522702339529893236423191510600599992146759444102326898037354600345720227495514484478630208299233147244546993183950667046494953301932853732453617410168755453063307053265957902033586455520466193965974164652940946680083459262373372993521173641120627509981129877971203543739746986025008510330433842956920075592187562013227436996178143037871262419667784963381410619513013176683276911986443214984093135838108265941150281173028939964686668958385633101626876347037155015352488081104271731225461751795487538526909082812961984670155847637093541256919388359092333135577830100838413531366144798982974842941770625528013840941848422207942102733386161522240140677556704925723555486881782327443711778547167997089649056795829713597131718174110710263473151942582924596415071091424025407828358560460217580759361492103199491652382150476245604685196473626179840899065830879280501941418932998432866374627204917469780625904571231249158417062003668553952215985010652488960642653903819330547443305753110452980895681399058593276424670955200639716904049386199899232036499367746833793761910639470319891496526181628639682108325084276874125092525266457036564539232641540303728066529669816719478958971837135544629810835778826066813267729988126417018269668567976416211827204353241193785872162037564456122259878560724345676623092879113319748226883262012106365170718825362202107878718653715180488642998579279228510067042592819066937376757937091911621616693203169760826956850510396210320285787672264204328028189072639484488833521758051210973123536966482758467132404310363296465612624694086861196028870160698228852783367895971901581619552600076450146233077848391946664497138449285192475939882655486685006656747853586967293058619475972981397437516194507653415323085081045851981733462160452612513011446794452719838987552570384069546779049594551657575771873647963425830996635985533476302809236100610601378234360168420224262644179401246818695402649945107375542241805053031411276824705896835525070166322493114918324228937519005538974545789011363636494261014103757283859086865261678431604926597745220041605475016825159812856333796134705081228219948478993682965514754365692996597720129013208437471531230603213013798890108104018033569973794404881371390776642173742922097828944455634517367718887684374137652171601350140019371904291354461313247837237819811139619883967535438452775762695055017430471567832306790112496564055602709662223111735058023580735503438851884578547524576011731658010000041159094207169573804667789260682349392603706773878872971465820124381177427056154905573088939346591233057359137048577118257977273710006741755708234259815727567464906004329659343019420320977124601181299958614370156509557245994880725120298013987084591033260289573578253370755096548157182290870390509352008636346600282348830695119021676766994411348604867337847135547561715324516273834896601715203181415726087633830326923868995593402416469387302401430636069456738040049006246668630801247530348423272936579975010213504308783250901638687069786239588367314836876952141850502759129714802302300938632358509718198541584387745141758207849789653071286987738279196290447541384610609694310209624184728166965990358750778009794834549658434208750127844038410339766075467656907059710992012310397677403179908846775162707816710060155664070955627009877418976289842323330707840299822216157325674406681006846219537471021820988747172775546308414193222494560027599418095860532579845217455957327444283241587843894936130149988516188456605987896981262130657893125533459699523794282697459063949983292330230216491329036798750663773638595496543675209525890094572762366589590364789315316920254748394886093990752722597064585947465279920233295113886655236205757540588811662801331078879907238527058871562241626345131468999496177507949697146213465211530616819549787308118508940814514005670579314358033914022944393598754847644586768513163132704527494306200894872927018431253151911576814636977060083386624093208022914256614096071910483740337185148613656354492186755626754366258234926367460700596323713025957666635787203716006399482374367756734648286773028201608913716167616806963622996124832423820645592672175550814685245092954909676211757706398835771499678937061575876170662049537456444817657532396538531262444744878094852697454685898366485916116944869247274876403919101418492374805928782999257537988724050967350871377125828878437273889514081547451263985568137371802756545102936222196662706946762131396147563780609874293161002604655304903157148700515807431535189390370999151491291634746086407971415299673715039139916089766666334567611089606394339938896633348668029053772254785891831337147810036291184485839756520803006424386273478980485616411093869176651832991678881954511557517087268219341158339949230510230431268485950876610592027165921945016368144276607658904324253316364019634712912861560959041382294339384936190850805840774330756552887544160340063786330097197696281689215010102282547220808698361443099843109101135829799606628086842192679743905236660888623274170546867686902306672999817447855625778710734308084497690262428775071243068970718337357340681437322756889150755299599411293335461165079827967354417148222555484737601449491072472156556521362555452360158050052115379883132131699782794121677671304382214007525257474452482289494099644693888511957457769144914448604222050718907836491694090493931797057155571784697009531576379386017482184452207871539509155461283008907197010730572475741235910073311745209822064625161658689131146449791646000179355132499984821778591092147814552588425581071605666941190496225404475436374396300511689522847124225737179001041601343386775139084039743875347778905875327283943580768905074659432451174815421704415225524784138625018333046228249418404275971943612258471621083945316036948414064824369256496221969636360600256213936584585187709320378012702737126920436972588491145152077235106555980344785882450751555785469492317060553055648618632460772908661073407871144144426798308487827638758087246621685502309631580550192949030635320872284536820651753687017275948982331742829146554257002450529072947274611703963397962231576160235736777458460833392501986179086337907594709316727092805659465537003530970467345308180648515040636848066886993200995025092478149366720775991653207222291189844061069644666580512562731175629089656252204139243673776352753831539603288817538401765054694417165906677454664050862460882156329837641285231802897156379684100760782395573024594027018634977357113844808693156144748823033227091613676030407558246637148114793395002155414623220846442928905356184994537951515313396180665500550627293133695658199470450431841697831503042135017211267673908697427247014392408652404620886668206121734057467603188007762909858019200878256616246613296416763577662587034062014156910585792799941650041849232752706422414514605715208086315338899182896699022118061558438192209721525891562781030409525103012896320170728890757412872334959081310664876532835452899681957944944597072184513981024433810736689914395207849551103446846068674553724492320646988139431712742454976481969232751890482150657290483545510975199043996026949466011716427854402813327529353566279679493049727897337847239240365714437974061034597010596571683835068494222391743779836332651980687442616555889095678358692583660732512559794648164288482742217284064358609260145180782126825291204792692660613205711782165430095768049111453067683229735102317453077539734198336768576409772083099698883978561071218402127709159693686866193637381953200172854941433141176953941733341920428071828918167536817786512485870630550621581717973660878102319122786733513561532156847089542117292832016824681786794125741491842003547723001726322042083968776128249127932557961147159522154721193005889127053649758644136786339215019242916464131388124185353882211259030409358327984445532942231232637927389412546010134165583614774974757012920653125271274374675958042382318865638312245746764725862638144589049119930281960307902104357316820332658107408370647007762423306676276019509330428300868057708478188397664021536867593425903588595566182145006708420452103849794624755374168674294910571864230045090051824139643018023730155129267646331393910141779594999892937412802725824267794057168259433630786801734038719562997198471055263537322505937696874461983136774754798335600356541717879063347065749082252106005092983930321799565090772751192391117889844134825103415827345620083949678524187482919439277917167163937133680277551401188596493566939876747297775341622183524396151972590776422146408161994935830751041737221711862191507241646987044945387866854378179534043977360428625462611784995085873185546512875026346802425985915088285787262145298103708907333692618337543597492046711293523458650917480701338587003865159610351281765216225108609722927384539534577282776768600369147021197584455879216331160200570125406014538139173715098174763608943369072957761871736837916692204160742280594185053504154560447027312750806393478243264106779298459981511325233632875137652602762650957030054602698419118617268410264625268713632662533233929483930980163269043652654898386128234548868308902425630414941461825879943834708557391347542514486380989361170958359389809313084681164564528049004531297393143658813881514671200898501880683134269803906366652230088670659088294468707632275770581697606450622753769355649777627209224849012296241515157855514007715328208331164526759854876718987091605391526193819670541607349884965335823558285278141655517162287329180674674886571367523583572102718328172259501571669296006384084040446995491236441919599664918654736380404945628235133452391465965806264956352208060739518958227714582786910518427446458291150658174223525445986033981316604522050627362461412181831576409409121001655586125182498861829705225020776199193061841094219393770741222065606592572004345527088882922320534202504343273929504519016621576543329268567508029655816385696928869045295350063327929733175945952166433004988278340105112960089960140837600717481326611853943245535146643767033336118531736168832043401258878135587291080518333680639288582147726844128783244316088505795294500092045173086556788476760079082710772298444449472630270311706094614115192206315836827172051486974284058958078799557365700465774063533662844411148376275373784226676945936867507226724089619766738943346430755618603135365328948455071469796090067041773968767029226610919000926173298448404371175667904035242629262444224253368656525540660776035900080086403851811521310818545276034528103771982465225949902839724359113338663276261413283156574575666610561065224215483218524170032913854070343593046903241655525428020130917727476367699747780203710073940294042341164930976908320573761342481806473199451150756283223720372256764188433582676606874557889121582657540322477202193925886031158555288028333347493111593029149024171981438738747096786561168601897232087326618107882475764478953221635964937520241555921454753275312498577488521965230055139958881251635295230874736289894194816795844175121234726759219566249756832410775176612893059615073307941995363759444671487163256389001711944100599198745097129105772056992871617299554617100476823598118769630933718069947985318776259641135939328226728293075291995399842951869042715983181132083386534104489600665086605146912094087211042786504238471840916968534487424800250344830748882893304341446634106372122669055729121323115963806661887928152821751981410608423677546111883039018949829197215002438906700045512686237478614633727172421478271783771759100263111726928349505136077226027709422862604238042573760899456778632381442461727033971285168444566211881372084214747892688813373928817703526573885525052095040643994408159630843040027963856272195338998624510707378222796373088284647468578859753862405197074358009979049729661106808535042423467748684929175211354799781630722900730859275879816070321899964837864118540393487941774715624193590530816849838926802664200468862047640649863289485882386790694437116062157122725227800335949549377852516721975214416845779710353299526266721803631080809105610769474298734918359080714510723257462741613197725106091430053127023120850446459714180912165354234099487191297361783812957254052256895541848019779845251491588882169994403512711551148204766732833373137709683891125937261897817724480905504082597459443219076454083246408748499651798442268186143917989912812143660851326606285002688223371465377812414334066647493487189684071768848973980455598593616296146082821287540710016468035749289803251692192181920318020270190630730414029404319374822234028057791661782807867202266089845428393351313091206631880080913441310409855417768258951516418837307403089801933676552166139028355642983549454936927484152926942348611543800777186684058346745674665956279793319404808327107259604205992337849928609028400095824451727608228054715031811382351230683472953025255097623418549658539249863758279006927997140545401911987003409790214922198461546691733324244342872462788764206949008590450012761720953865314999614523059908722141439236444276099118402166030138935129538929188327548295657447256059143761406717095084091103847793625157921187614929646946707407654875188938332416046825187143716425312286046382035998114225192909743674457864253715290510926969519178720467780026951341276675780022706288300032407630356782904639557313340836911011224632529326633572976772257906828688232001597487507977156460576253600869942278825126674308648318269372070208924121760518544288085166177258364479549382241184587508579963468859175881730141944556246380014151946492934467107939210601022398028742006095169324369975176158294421549823355489314677227747721692145295878889333173163691919234532234940729068118270391745882650584104504582302921255882870944214770846016604802673726705240299318487604619010819353273137696784506538365071132621465391749833687201291637917915533955467274192179254482862113559275056117944802159799704928359404048538224862190755876119563356165540526359688514078267615854947890668207972179104372687329620521644787037841729623658669927356615077414200868102354230769602258093570078538270482840883227379561712054489488436700558167309521469880111536808510638150158392319127738647651674387390839956923848263503392719739872704979669962393301697660713641354474636309340506497233185524246517687842894796769081066642134459702933848944655554945431941299703752405013729162993346979978961394152190555869040169623463496315783278395627817303014291656425484421985067103275232344825151951079260022294059884286654591486696901670444793366679182958569785684673657152263454872946408031811799555879883047954814997792503820343403674436818282239305562619088417908485691929988722252878425260815687156552686397617255001345879000756191568729318969638126997710987598987816911991613848932654539498945880439152660464363904546735940231494861607862518140138065621838677962663985665008463638558195333204419548523392069283499507487354305389306101073222356599650415843400128189082300623609041287714278717231941478240129970789691310607196437392136045964318859462019544720039510036148674021077274881404016957529832617789014837849386841290573559420186351226572442962422318324119948840975852157262313304328196652371437293079931026882949803152252899180712031930908042854999818782185504120447838561254269895963574609886028204232791824073572834991839920675796824847282273616801768462018699716550021400051827482897380979530448605857372528198018452496856728926895022624951471805247147231317943781632545063373047401015248262179369861864797351573816239363563562924590747704594409192911191302573996331265169838377547530788000325816727670032212795104921921530420439560564755662634584978440226340794795030470550493084540186203637587495283791657747789520351672960669463025370228854777363402491671966178037455968651739583828380191589944196564410535547058231082775828211220807321529135720917808155627524905321474120590060923054627504227315054702062975449074340916582567317740165164343155585612432490723385982645311729013226345468816931033607107821035489254911191515950811594147403831523163369395810881431137972196987085542390446172237569980730714016796594347764595586805516680116757982495323155320884485055571555236697541758015511191146763952480242398688160408679330027234775195068945651307023498515325073670147476744386328169920466179117033653162550549919239374632448848869584456044728732641128427502379443911175034086056932138368389432384322702534273300330511441311473447002312352341382381498675726415716381748259238365089976282255477545466219444476166233809869819256633880553865369764432541330680861029811034801728045775120941363029655689758073738244880510684990872461088506634990330624380395016203615860250089678345663351552335596136498669923680358436562587600680722792010927469228857777046954386415341608022095699668539916418905057578007011859097875341836312750915178532024860103353805378455819992083531905801923359293366916381789087503568625798124301820931100185938385633030568278555868750658122691576796783318705605939913452699930503195185416984342436599386073133306824737119539391516694094204527541547721211126504060425982764506603031225583777174215916570767404452649120097034058650627020876079062772108247446578630520395505811852422715235137781891922982860701540265973849688441710109327642834272864066908194330477304114894144425804654637908734018037158932094547436842895958575723050071352529615567506084159237720253395301397190169277029432650330765946439962791606475595433762672924815885077595711860152151450690063974751599148977614434459389600079088988406481681385725794333949094829966410114492174064872066753310271862962552213061712338894158417791062504536622798075262081196153490235737340830662307990488162171258555898167243044427074992376406232137766754108356799503579842673910711215786057626226960238201211193770239636492627723703976497471178370049029460410486242130175129514148343909216155555032982284044786619360849758742060979953540067653444514916496894913482947026269789439904224439906659919281156559416049752875219103766448433353391464814921998346988748828365311123979898376012765270034602955991150817466879938601537242561459701093148486385589724324680260346210164844635631178855958108220841628889550028808628859651653555190452213319330727668801083374155640024219043328754803578500104372408107932209230224447734636342750779595287328587245864301894771945571931925028831276615274463358642237225880186747991492019231231065921639645473701048349368389885245782333178168829032144692307512074651747263311323752326372820379562822333475739486413042434725352112155363379047296605246384557444039903440852448601849502851290421849489454824992968579523448257380121258698764484360178437883596573635712290784884202202930211710470339947595369034424301994783165471312858409456635995392371701433285442930470947640474873138936828843597918354245849570197274474351203142235183422817797038680221700739805902697887570770772346637516544826395642829276383864082104001890773926955399612910682313280984723858631753352327127375251925981139387737942012025288920617866183440220073691916367665074128708791403319053002765999527599823565290012767848141353187951870134929618184055780555035307706025965177183316272773747152183992797922166262235183400540684639707897334294580232929588942792583211966987948421797146860484990439525805752116294026407392546258592054398229340572229355945939009779345672933797391894111859766791770602668189121535575609981704503298763363023935481940324012656222939637701461744798080093755233826400391195451252058559822357096854839072475517055949241555723706385517579552503622481468918172066571231066422833462248640855172178935760446893456701088322120819982691714780428942623667779000759912233149056135859991343701850361267872533902219181203174840025441546179394961902984859524612617279638759489928599384058461251488425808021555452080381873231110345463330228341420337329570794145580996651142068148963660251897333757833716156100448235045058836492544868953244129860884765984829623076328820846946727553116768644107901825793278788898932977835015596466797052754594249232657648738782516772416490563233201434692593211593929098166173979587722896443626455786824956160170886599152272939512518276466111840723664576418174165326690260497761785963158869466943759334411670946152211757104845997670570182529192068061507745278093556077553213141638006682361026580961534642316106978435362580429987650487716208373341809878477586924398331421128012503719052266951954988898683800070140588477785737574883924814414677076036582894082014894139880239095575106821549852218091595439923369614747760454005082474453294304843541567864333414417629843555827454104930853317879299887018926433576679547743670916493646474893710586620809827313065397799972614965639946622985174374652133193419541890028637023065385648025556894903970205965807081599974180656750664362030492055255142287942768364807328061259257119339016567701976724730548751202661644435481993524338038400606214349458228676636370613110350034006863116055664431674084108968236893470050334997022148170558973795046150924021396193684641104536219996137083829679049985373285738738018066508674817700732983856491139220700363238721558354012389307564553764195077454659985146763862863157465258074395069253320082106190624913295469248557415370106926478068021171474103969605587055581773266076821256518777175586519614078237312258914380741689359552145588018475424291373601772594759698601518815257262571975693164203122030479229685938228617008069731348759281416020602618797381410468066752717564647912219008540764603004600279054909346036013261283158374808895896281004731938601808589611135549515410950505434639149566585779393420916910626118002957687311515887124839049368852569170681045750791758313849498010344104725882111649814054472257524710891502562223200944022400911796688707140799093101746525792266501920700250057474817076452068290521085871128474051906082963504335558872373085185030018848025169387983590669265474797225885020348952419488198241411687556229393121366100742269888730069898287137868328974878967152901731876482186687937470372241166657472722317257435546201182129753687750977237779875546350082782960655501544021277190628731560386620498602889155982230560364472169283308888918669131919085693316828038959383443477126689277447355150464879942755481404850568613354772185093281988201569416620370509831341509570940396867238520087480134449942633512104636842007122064345471530485029843041025325635512507178784483619217764426621555042201729488916960684894558103280687291124060172188506066886069341443751734996201819144322071288053410243957604294751516669048489886897119279183351801776779569095839460550361635983687033706207537009794447522082595745375328369071198884565802335148236887439488040595300390616459692294073811121877826416294831037845811166300797736561129746390198493454883652444215144920138249066161263320269504236066658700353883872937125879675328648566673099871275276740891029696429808373284182330929607988545259516658821886181599821906716945794030439034561937914314225800873265959604820303662717894976901299096653100088893130910615135734492756035587385012783062053803985010433126374067809885425884782797640375449094425575165819359049861755033259925458201045166912439494934818472465391459513287583170993774756970561431522215150951051250018036778470255830525543222426646254851440091290838203561199621331044109831637283028304734376830234775887744348784574198676648563533343060934499467575871042579765767430478832887302396203812264283932796220588510601882979296730782984677341857136085168542052193334650730240330439996451585225531990972269479043766621282208738005156295444655081247151462406434206659967670618919664420918350584683795251310344599071106026576278635020399542235120027424047162161596125671619823039489156564599048400612538463667627685129282830486287419799117941889059213598013084106774596621495676760097768831145260134184783973383428117285064975120468690545404780490739331825236142107534453082448274069753309737942552832750544610426037510705930571356936082929171841969776083870775329896020736918894316945492469156341965183867812678734136227364129620030715624464315310680326432624877608452146166938353416844524792040124763355886332940314887261938878844532678857695779106443641929115821330586587854022595988278936916235458451967266067936237115676638680189505374575725240866837067862136065695407644539618413521765047790971268489116096508711506996555239158116277675404111398019844277318121606697911273318442373443588920862317835747473673113968459544084644102171444579478201787808592737832471434117731467241054326602889747602966693834917276392719347401011389062096233934710186835763155985802700595295601324055044310966651684122667277683317742328321469985092441122312209166141204028585881164397023240352009842630066090956116933060592026771523384658588474020382194971900051575536180758491699931818766576747225395594853796374279261549833732204428219910197044078527710464546576781224458708403939234379947159605981100413961197762128878191097591852262079872414365356528795244912363075202586345895731005369882190366864641908137106326820524983196917617056737405050989229190277951033381881735379551343594215010363533133102474230195103553838509370978624714211164307131833226563083734793407809037625148045135643000486979174823278841339051744687640426436498357103908640414160559980970344206777957277394922590427615166255006973024320349732062008319524769415357514292810293247461036009061629545571381653326573490246869178568282428848947214478043424625183950216755742664620495839875488304919604193983364799818149489569227307726378061793252001238435321914534426390492127073368712317880713900706134738650937966437821501442349124973752962250100253749676772688448904005488903207125722663219680398414001193286995381199813247288769629430348768639409767785314229873751776017458306862360092181209635958696425055970367620575933479488532834239940332023596493406227676945516272307219186958048145377340569842303305377665241416655153499137866987829441200127919790318705064834246979527132601640551653548589940803924862845105757231527131532240159277893076757257912707922229457903255748255965079467114926450828041325201836874424257840676147721482034873741999940915436521664282683861570751838924242979132849215671807390995655793412889877709937448664312846902965971656495755319523259250327998535050672150746473522477633024345593246194197431718397236048539419469148181419074368090296317956668274591115437496245517345018878683856742119189858684763917153269139027964463979128214312773681024578991637132148560231286676328606654615011763260098460195331823072216022978878143484686307505381387151657927361402626872983691818414133309513205062952311641774448880598796456750053401449389267454431026573980998992935142127246985391416159266497833591483000204912030819218093590964423185752602889474391065904190631492890510664200123127803217720691662267599743327246138235929452533637813107243404564070514592103841320124320542206046522455464038469192714920212468572728354814053966228275509368838857418453380214985529984530573071394739968754451581944956411283474073421906157883911595059158285526779261302642589870767220180379922190826671971426336262958654813648917462028106658845872769058403766493044717449810997213909087087045859407056659808887377120375259832672320785861635771542130418943424071494567853213071054029003217016202837387217609400654811546507473273304662667684308097117615671015630947164381379833460985390675607238592837273050675732494877741004895115788349807496291608837298826195565477683723701726583812203885336421251251236880610368871224769319525101185472708294120266008486089142256963704563995253148971927600074294464453293515845376931783604448575817704367472285667431953223071081557022593187664048461470069084192041269759307159727603181577292003547411089599608116818554028689378188698520551081596024018646634519538771222457580204686617988781342338763591428383063807479832541943403343612972693688022306808049932553697174102896976790782387108141363650955773496605656989912917806319467428743705677832508096482884813463550465264816355780781406630676015638142987489702463857021777781036176980236628789929447532040387220372646656924864537914758353100096938254620383675949797439892342394850750370559776065142439191537647111819365754997515670050470095730711037086344826894914817244031820485549555198353560378561482669336532796109072868293337757687015810513116622559367726988003721878106483163080176789724784235994362652528735151090002364482437193952959439541596579670497903077207350536280370891444929537026467135782863146772878975388706482869504947862713213445712912594807558650405994869967726231066675886770858003323719716950256026572569858348461006160853874145395572260537807335617902179487404375141715996136528273613212299751943061106754932806935096353076703084706282332147786646318911639761252134617351915824512207752337910602870720468333850221976321080734988929756592229620787471078626365507289141887239360279166132167869706163525071792737324639791109738103616162613046092205191256781131717960406045875556126142039380387126830627412630052245275968447648601987970795862413098472714309876245820406246744182442559870830507467376329143300279401682947159082190723790308911070193460299707550242654781390436816415831539972425472256434051708225961140542165769228606520497810220890462186898202070542771933294697854123346520470550105322453702295237596596017902019217597097427416891153580246208672386763074600142111565620514153921911664531276819933369211865268082646282614493160194496705964609299004953208218180221457409474532718425835975386437063745405587002575320203692807200300572650185851738253174757770601759407575125150309897102514514998082365433835955040195219167116945874023225302576367088210757262215691082417925732810962643454342174847146824575211584401904564059357978346698597408056142208189349657850170024716850715154722112709352476237149378537264584735555792269336562423011180415943454108228261202148026587525459295014155150563712347116135813916030162004052799557915413443330390417998427520243049386187081200679707269423534614476512504260134833908453520411713808762548392874282961553348127606665766957292552782235827742406903768662570573060739872999143026992228863181052093748579634996485645753469149088752057441183328336747680803810125966451579505240723103487828921632085011604279109375377820790071938802883446053155920299228894827043407448560314844565965649699195633213027947407368735797467553361523477859393712025589759592029796969129790509981999256187947637559116963423000138773375046187611963910541693902124085334955036415056940789452028205574413619378781898562946638930930655094239954031630436959097469297968954549342051757397524792823714428041231453999815594594247083773969968817773109959963838323863396849203929047920408304758261669969137750108541691850403335000476577213211996005591638115223785179336459082074220300694470616984896350938460792890756801988671350096816699803759271138166197123557267658011387812960581345315531901087867877298110265940308791056376947275297344557412327349772523132880222854744236211937018671556568874123014403000720504592665496203720713845225018377176079777920693116324558531051339593163896754651186998263938975512090401266640595728422700514446722025689037086284315066950282398167139438688819931350752516624042121108510078474784607710663622756128346166121035578718459770694753466625549575625514374820094923756220238505844985627584241153931119089062511573799710830749886304129730918033721886260363784648115931372622256388377322989716074130208399412340259373915603480583825574023873847575177041560182618064659762760278699547385562193509376579318896712155868939943432101688137138627855033586780269779511571348115882285602482025595690251304637211260128377896386512569684680469485806224078379043078364782791765903546665228425556659547873011799645009856712469444535898102370481273417664580299474028297820614195213910374828037281636148293814224272340219578276332906338753284852731702428505381706037346418550703126528655011147943630692019029569455547230069724070131178088027708907433781839241823619705335480996294989592316686976642653174385687698911211997974280941938953501244460449639274932607967175352986208052615046574976372592393842366390821422826571943245946012429187903120276791340500579467448791802432924522722789467535629146267664776098023797848534203584644197762286867676847171023859977868843593116620266001708711048450384650579970829655673580273711151268409957407927954605275591001573628184888602101312507440983238952890142271831306875335672210698716098637675704472138421841163032846609132936156217514456258072953019899721415885415273971811033686883775617921763886307861453571869214252524342158722715746678167914258161137400983789057672311416678254551890243309501464868043024324652511018813283706063058741579026627914064599086754272044633189863147509661766844590607115488613057502242619290997486617404685468968825547226229825758394615714237652671896948683965799189597938530343872512401333396575554745806980180681450752485387328557450143589868285285785541546147287322965811425486223442280090270157086777304595751528719142808183251254549126625946940505476155095491489174707854534126673908962877663640516782684882390273851270876573024819055556613750652914333878835382960548332191668431450366531676285637717214173987702662383716739554752661095545551915641039782219781434672868768752889450149105458473877578254743080301254706231824585501558321152424552993965886210894025317340377492029756311858390073066644161770372522066885166710599515593943211860666543211721603699940327578766852937433779791402656679981993843861005329616674028800745555593036155255745420166741043158726759268554270667258232558439347202894606153349462486579517345735514982645686780347905151307304108127741022827981100817274109000610516946681336861010145097010511241163844379688739010450133158591446466938622384431499468066174776696710891375042422762846761080257242314432956149345646706236133559868023689895482208037515088102650223843153166381207208681353987381192154113529225832658281676468999873213892800228579185291832882897848907546277736940596729114580310658587113040516059170302606361072083180051820166843973825005764326302251687341904135212065908644196199774082782411593804806012546114166033245549749485596319551346890554736265477715179633294242111679687458919096452314679135857873366392248459840216215583737852670824396725655940866992169563498906312153980521410532002622724685178026240197872156749233142065889239339727318548965310509235366417234353366551772098978055660839344188738288350567881395590780613024512334148228047223471995259947352574987306777672633738544518272033114756532877643871035683986032300018020599360812860591221868013727735143713332228916680598175340496799144317276885747817139153805219965151447295620243767514713385708950841551997840584298018901774821782249875953104067800579472551276955928013133270158180947144674973983257172467311808783490841734597028368643075915238315600733351324523491045242899163046388062359834056676055578129248010362827636811334345420344900875602195826278065015412038401065433667256796535600435922272873551823036496167124682103486545302123978006137780014905679886285860734284354333236660051140395471666047590866958305424459715834709091149788427893890592127550404621901791163634516098778077739275881421889583422183373405148040750809546163752370261319449209528441879849742469604278772909703365035625827720425114139889529905733761972708039013617588244769974488427263146135147190386269915498919014213470831595954072735173509174311478724715917692590776318214760834709113457437524651916433159120243294306536482990386953009616890143656301065025811589696427704064670435728743413268158905820462025910913667924044540756458401243946175276306699965958136738254014710376069414304936625060327498676553649235265604310309013907921632756508014905619061038207492209348651226335859771876479977653292467570000221246440481689747971308831737274595464551707848510841011683208020076034009291987730415422124400350100228476135146956709600845542962323751231824267909978993574189763863322339241982223049677708836635750558419800754221319590188201429260982823967801877794036913525189431151216283040103553710873212815045379643591212235155165124068881068678219860826618909575125800335859386097473893928041355406960019784034948159310985381873709306091027850657541140481866538986452831150976882181178094204186697415900641846335930853883612103495889556716942518253879178565274250877353032663770939792344738939065790704994401260084615181235641793458183618119126288351565469019304670986898427402556740903040520593322375486331368153957581652812900038043096714629531851838416352995800515805580240472639306654801865076782326273013566830781972198606350600989468536674386653649802092633125635256784915457956058161959876507526941277858206667612978274621323670330667980243810447258162905345153568252565188115762194264461073924328040529579959146113127573768188639041647879335022468391511889109158294226140093799158531132860019033342156582800008440041401489406286214435112880632178690940935234675565033390841791385496713210803644056288501237345594229719832370282441496484121052030565377357920230239939618641922710569596234859022281276673055813912935698162735190230269685055106880650384005124922022913794802572703995771520978524820300192491230816668882147564052474127265900237189350720273329291638028609419103056022269965152021855112425076797083608049557355010242627201914579038397312292212454251081633859811488116586934658769378584903894354980214488556016757273512961073786822293590435326971310735737973352736538916099024211397018950510025857970204705530748074038024059447880592887025475713280497257980261537550316572989542493579303007670328069976152723917207683132101954282518256748990795509685772072453121621470784741229696666893650635536572462892910475606120226024626394778495171527545798284508235798710529480851638893824728450994520220311640246450339475981282594050068513312887667387461666423600083743192049590918669029551109104349068407910861746659730499157856813335807293607328212004958933739825412575797707758919148397947500225784532119884362325053557346528622915851378643138276569398374913158862937185234787470806140208811465560387726365498764163406186530907543822035865399151212417458241433967215391800739638014777470081032465405174315355358538448988684823951597166189391507936672793388571346400963778335397383409611749288613774368434235903217004771037576077381574135026285841020486553642369674587663419843887531461159544011386482066833346874348621092702203993794942504797320637449173890619822853256771037895419721133721394511789506782259456356080837078172488615179052703451422400585566365349010723960300363273502411395206384179465546572987582517987105200059458971692548531227518931788610333705620777542917150102565029485041938213477442232053976907908208135704534076013962557729287088287730153896263177208317555682195545354794842872866663004778263478535408197937103712442598477528586037016765775802977422205828775604582232029069260854431690033007910579983524647456807390528216764797079496803116356602977423255410131616482422515168573243453724096266213088526976774013062835369745869677813359433836482018782695247108191126152346188718421811546989235109695275024803353075808311068953600031176771989920304363454408869049421895362546248829697253316590529051198663714450441776448449331401276826050642557769684948725773593125514268382436522858779152120628167596194621000702542950163917842133497351244240865721701267670808916935151669088354829819292663847274763229352634501496621969327882041027582224651899619275103042640913041634483267269431627636806774095146587310900719401062031846572318397369764679635395916752353199550264445898884112941702744524701412503381225636816548382501689325140437351344339195071352397501183372567554758020816820518903965484507890749944273255113906733102717280858837015391269318181976330346029829676438968874799024072518375896407480488395420792293109501784890885802790651946035605285633585307250095763525617590682871335421500707223099679112188609677147331514211558380414736603366119594974392026755157817417671943242018002925594642809423915666726526385418273821434873203887482811945120797070112837422045465482435369578863184154038450432146100611456604478375666836010394073115872566328699737942345309740800998337396314766509324218597199600277421716467365248669595891731154182627067284720298920852527897750673641583735946201895723809851231581847082105622982655208763755882365737552617684492940766231976114363118405517752966320630268467805750769717443549541228493103432860747103195723068906049843128051360995642626990645181119542441301541543821095024788532631778729544890023903245035592807455593158857033139666254832513402081096573785493018045338548118715362481020020490653886974741506321874968342041800829014083054423543903026657836072779351094129389636946734688819084168929843398385250959427081923650958504583805339658318785174164836220013966917677553579956124344932289968198168094209216003661570865931531750577554684833072471868764785252742584877798599442415587754270597339369769368314159365326963933021425044434097168372965126833318881905358299649835473563238519559454779432084521616139436491379061120295057416921055087797956796120144679545434074702069762710449043423815830763705597605428965461202177356924287993374086706604702862880119544043576559738717074338738844711030186576590603674947345868928828808043720909869939357152135166772675170772034910093102367508117787364638501888851104675284597278611907123391405669297461653761071171832640424402597046561113908287662278745711376541211130935005226937574291894450363194578632471100637651454617522801191832502692564714358599507687838573557438549139427903368607437217253315915328419919767112316778363615585528162099447025631987105370633331573337422838016754242382248522894955959307651743202758136276651202458512613611498595569657921968824791886935914546928832175850216430738838380763091410064319853587448922235200685913722221508375519023033460242446601796672995874737306682534515821455270780507817535373470154582627844987305042146434162460862751137211547349953825324401466977938430254714767385033810799733460199409374341696673992145146672811497300059093423732967411375772921999272867423738035091706407971274983439660298135917858927099430123284181348205656302667120841500921042779828006652959143944572057850039544016254082784045520243887049812652137695355876114936115173997612615777611055063820469855542197984454689358214732950030036125821635936570276654810217975657738537229747965192935036940539397627678466658758772131305474711775173342915706533844249793505963276544569337674247457939696284506898687386949559281838734135165881125580637057292745606187631013723258531431209811535993673570526773666696517667205814735583662419636840043032369100194283247877813717100779599110010070007171988972006818825532423043364979240900607110744994382274359606387561153373300770746797633053547145796224310904803201024715494140913453743399546238212877531525784062080711826770901442897779893953420822574705674410408225518181699789223065980570560105561461944776424002946416043193006041795736313185508518850257403229004457282631705942561731727731699331088389754914022741041895453996871215677251388411019155929657583362781716502549616515499422989113235102326023855567556321195127710705346963575361525199115449690308335110113777204664320974339729495082992420438705161704018322520114528417946667543645833782057528831099984048831879641551149240976568929963444918917477832803086514282207527860398469199709082098694586488022005607438001250040265631914824179382168989950195964447415216270812914123499614964063701524646825996948129557553573358740592511515187834129360887820209938574842106805179896467009527068426495059875778698881126590166159415140742991318902155888541430618221647524870987457661801251120774813373962660972108762443355052404893047500639587333437853290689535079931598583449332820184387919708189781903531789617024884947978274012990900770175376628744840684865222244340910781638202880994986506464881276456423711873625090315990374294056570369636155348412500349293343605229499650247798487462304641756255997602837206825957400302834304154518880672698696704251498044820217142915993479219789446323692024487462009251404528221950475356984804631043845884248377784431717608591278117352993174156516864845774184381094780955510020761742388855468499360250108765303202976540611755060925574161978108148036028091813427501561586509058417009469626363698899777707801080248477994124216637646031251003144021754555161038964131748017832691527894017819544689156612867129675465709266757690889446842170436091032113429209604481081391104892075885959076643023648177867091273429218575849831804296995141624891686968150440467764563442790140618392206393259088882745522453607923286524730271641904074941832328149587489770235173390502202347131504464991366373202580970894828406590300960751053199877893636613232898586572546103708917052406531441972860713425150961189405781274959568130557068478139487964960807636872042006202544243773701343803538106065759868937852626791720891372362140113568837716269697952824395699107353695117112921445854389984430555225373821813378331894233006799112838374726472284780683761776981920797816305839231064910136454050889220448281052716338907643873841254872584944999023328440774391117806347717042064047396804700150303246144298887709847901741964424582673447929546013957694780158470464169963401772975628406980613783780441633672106354329189353657559133464261217961953665999616908538164097091311628278457107741998231932292242574520565546024082925296281766952369935848376288090735769704120086405263060158393847245764531733591520290897947543564129246257872715424026861490659477154160366260514981424462434451246504751039620104010723033492335447745044750175434190687117933483775198232538028132984171112165809228698309150584288026990957879387986256119064489450535205006537511146484765583009725668611952153258880485688556289406851248905404041103894096937752973720585259763979291596063253526560964167908849491100914359306381305281532911749526444529237665075504738123203605042218275925291731383259669963132315706383422269180757350069236194413332334154421762330789499126552928217382154969065315556955091668915000488521557032148252135727587710157031678414158585795293395245240201220337145219408519644315393344952618752039065555219075685505169033374637382948722114102434997768660514740654616526168816603092475798116290269408327274811040484426086442197858234998496532907811064141187552792740141838415373676427356038791120808233699087941353998490977459110686155971677849741358284437318240589478036273958868645667479081534762870684175549864877035768080028868944550313263805381635260817341616192333853482490141985657848551391937473419942127872144871684590790384208011102952339696078656499078584602579734169144241117983545460514618673437197865051617992294861928117362614281259849928868996264766141634378112100987467072804563791991211324532163062961847191820615133472216736254512884132951940548133449666696636914836732397700550849289036529939197935200809007424445894913432770465958156815224069260962584797238847535806331557296536202469835260543654592087142875363400974583138845385208833065874572085665604414437753535866067251319336837178492055488674845145578102648960837135365945111546050646523405637955697809592571333627402451057665350602198978366863054533043949591053707331699875590994410587777459775257218134606324973493827655967856264576259071372978885010314623542020885664001906695854183021016691412222597246944273935013343726944461646739123400139171954344081959898578837461973543051164737867783550972457222963292192733351078305224178981028045205642845214887804651567141570640154686542680915902797302110749706586188360986040053411506408497432042320779520730010711771178682269834970720607671471914008087702645543371898113567854766576226602805883583755043738807795301819772318060232249859721306641597281136072726671900339821202667142612947692790817804709077527405919867149592921098748761868313944401429089639776697515968750414050313476080359722399468708382305489085573437436575861791714794898839653071595831743920799851936446346708573353252733890581122382673054279798518991526232239965333956666708912386596295739374403622399086058880184524766834012200974694906731357595563734176452506614626432431071416034960864401106340518252042424292988860854149039412265064894624304410154066329058538831661922435921362993134581777024374209935016317296187682715083256929450857989544167607031618268647310648646611123985846779586332207341990501197994761874241340998690669071054776070033192700039434517407857475456681329248860690158458922981293320489751613536989675808875356376181300775114484761652156380596901697961997451195988540249433913886698127390255953814247615847830098477174767302595183029282250216672454881825746699997241045852027660039787259249678478430248964803872482254586579205617856448518824390198210152500566934928273119713424690901579479734790811227408061690004066066458825247706050068161224478475576371883581744513905052824217440632489763247262575024703382989131615404310131102646370062779325300414105230295696238775474501720922694111727518662526693475410755827211645715070142225005130965198505831708353204149499213814288539375063244896606442222048594096672182997408540880471899320899164713441259942284311521387809404304751796921574851938368692965432201468354049203826865267599663296053117007177134276401760381821624148090008035614161741998433689879942926219463925153953166834081806232755410982947685036354323408504055878447941277794957421137105594661827651468441600627442975050729582947548409435127550293168710815220355587822289558033607473002457777760145970462716112328266426777961347258296029457067941888888315249557577686293930972461514025458136229542066184040231465455725331589464864616989706979337673024583028694106588178013283354308382178507324951998822921535862342081873641393676984000242784374994604785646958281572707511436763933758492621216422912015676928362538290922471065998012209685528983941526538619699868008434596605497414463276557626638123473072609065115529201331192138360434737869689041332209553594726035380998070467805408298903454826123900275242721618810050940880739158151593703383726168492921705667959274411144560302957501029596667608894049278407238839864823610897998590205524198334708838735314311257993264969013978332915554577199867314845749730221110953023922543312230572394051183028091947644137872464462048544495477377630316544285577227848865680649165552121272624637686405790970963733928350692354358380807727234441676549091014126374496798955317906184579967234637810054587235817760158302653329462443943183292499821995460688691619547175292697813747052855291261469521918212288831059472078626637846909637848480571402141847386680708387557331058370553744465460909504874791854313959378520320644473334889762732927800646444954592151165807554401762731371806267182162223050977876730538194417038164267372185241329007617941834763307198840294085982412292024439079757246678884607114092479734399049045620442232821620033435276410661673491842806568873071670409333497058044051896048205518525945390151499440764715914970644337765232830693280698587364668344572116729967698399114312897819449128636678844829032500410381250288614107012331454284980450887008433453408965441705971834659253287550061471531159557030084523588532491531626509492452243280651409470859806961044719546191644117521868488480367709496844000395281152993787128626966674750504544363654754043126666762075578747936521097900056290834478546460984598804226482842453599286697563155078344602546588956341720488604676050309595290584371584486247106546382329493526737534564243528834821205796891552454534907701775115834989971883159445203896401629718264384406971501284862707635589813729515021141132309549886865204486212738945096393240549743642408432316781654658442485893132949797421541838611850409589401620826154263508148732474387144327628762153075783347639825140971289838118882673974406684429940262973375153582148665498411380665978710836366421355902739444101060881907071318716805105871649311735994600139958891735173339816412682326704063103415818025787712685023375564800862676745124677404482884161902529794940846071601065565437403561791090447790215279277806699150920158311538578244505605633351484324936323670003170746909640117132567239946551135920410974133250268343627901928302881275339541184300252094312091214522797159256428267448785990620930300201020539190482643763695005017107219596781758656736182124740927726417395684543371207735378174029840715056301178414602060919826469468611114951932838636136988067013355893777119008274419051995158949043382194454866083155345228327170346989120315769348569879128011472583985013184677971206027631916777383165091554786568896316196422513787487240196535191069223741363216340624833906522046440051338863282764560662488128117165733057298490605295480996554176947861384321940960958109148950636518262541953258948040215043636435705385041205723569928604878555770359116144210417369473593443068889730163735309684206858347525505537644316300171728778898280400754167626610087365436768969237069742552723052977282318693059872152039220355191755409561356254573054983902263071312382747476954548585326974385102229970467867595752984958701997700603757258189926919714091981337500487152369371055533205407978387597225433615468712157143608785183705011570368477201530891971030232609713886536199522125735891157581253632014605366566118116468309921039638444109518656708490507752233890922027051961706209109835240285800524528439330602502478152654428536399482015854867965941619817986385607583316653431063197886933298554222501671053875855771233517599386217703662244196511479823978983971983264926268919347404550656437852743148453199031933547875987547255880659799441292946507513484096743413501217138557455528219482501337106046843220220797472048855579780874203143896419665310058282339579165452512535048488617973270382212924343452400875015652085077976781917742241005970659810069811320234943820116591551211596589774056730225633785108149770642018548137706965855903796867029273998049562705225302582719782545342336673445840771872391762006819881328603000901071922746230296771450639841324298475074110316949427317695807455118951435450580956596765445430588051411741622034697422680976152742460843290156416898002622258869586481848527014873837652089691540804353985558841280427250382381609047940850238847997771081661224364945225968386546786270946558220965915200233547204819988466955922065414929920262106642235905895169252772683795817108014275894222799324289326041378217754622503391473576949006641713045471403371586082524399475544110418879433280981397758826259826661861708208625667977816791892724540239517812791848704839573733566165217265620449133387547572128648036703623974681337868454437583244359510583780349201131565222524692598608928634695917318817402830067802235832286540416209601783055335587686144184385957068828831026998597828378263419772087213789779390087947511839706681764546896259126979565297128975364280907825457732377319432003425758036191633309551711212174738968994237980610785897747792969310519962834756255478831111858077668635537073574625445773573386556484431569054722245500548992966258920594786903471328860683040092378611316177659232680718190934410775376033054263477956367307812713303802247260476000318395979732728238488608779014165253108192656479442443163384213953678936896780683230042297687500173752133104746927361178112486937974076971275126803853051381289236259417578925072296296760211256967162472726939436860174772861834518600912966217168906175535873425254602129644652340638542297609949559182134347132352769389574215896717751363284482784182886341626975257256705509395773196984156498684009671484432876424010991036390758377127047167623685782909670176685651218693801188809744789203661067195979905363288441954368179704804414785100853800356549074838285367674525479491088098027907958239085914920017042448859326312155332197340103547391707516639316188371746338904241053909099732056981846503657567709223820721477447240671443785904355196204354170897471801316852489604256694569265053618234601756890232730105845642147721076595366337328106863844264962651640514346683388153505815382912162969442198621625563139948763083197845542321374648214596508721741733747426039481321525078323374722631943164330855027375889443465761511146368763019130072938697300039837113998454830484082215530656648598390505582024914127905222180852556877350111778444030252710298016545473180303260062852846809525939639144175295565759105588536285560997291331530375568113053626651393793169259602013861604292159272617713897610650016673827808141162248702070901171067192041538120323941117120950232291457163478558272494234048352676763775049705124587328822596443652903271632996108426141531351085833781791062465977222900671176993286629661546402642364246884587788121975883588803735184531506453351318448596698317273098056972832769609255766572889443923677237941726012228250220410973223123257755304952590039378419612309557826623478060591203686923582611663469995547289288281216493486115466969533675096439271132433558836595967113111382406931375323853028644474128102705972790784177363537939223216193295164888440574967669330201476716772180551349319384983729857197292433411146158158425406763932191710916359589903971648715824587394187416771402827672373363421626506872994849562386949879589308900340460795196487627719140629226749232345345158674914296035645768011551406715788645999531054321976459805479096843041870528122258260489702554223785705321484031803062361733856295262741973665428564133102754776769053792933869897776035705703171051942673672871250742388899837403557352643287054161188793935382889648040326985454396853984468680273161641808931976371107884202348255303728239029452379532693006611843441244404313004948661276163034526770359319247544290144708413561405224859088883432287031086450162231076074217855586599311883266491360478153725192579810310787370685479895130439072933818112343492288506166549747245502418701621813736490739654477901790257161951227080162829614967539490557926965030257976747845412973252239509094746300622824777534276290339137110133967545653608459179832268326514747609818726303203526164571001877421051436674302291537496479040406533342082411903834566225438238919278829071077035724921021146481367360764646198803942844220599284095036531829687769708312865742357742473266988514167908533965682874562863499241788827625027625481977644964857589967518385805923540999331819459641609902713114367174849301228668563050783881727965667202100854771163505459379144707898500382110039920307169602025549952777092825074453151246768468466099138297398696164134637227653288007946646862290624783431910068059155245553875662386190326185077937754944395199071761448057903821992946795052348335160332575187525211136719908501065757138515829814490974180687195566769794621398986441813312880012852360474091972343409075403402740598292898714642572777104208317591283970487522388675621468441254586295540529385488859474583239495975905641965623155931408921708364831258868026523240850487265609164767629119844888331369803326432533067113019105097159059269130637586633564793736383927382135321265369204222632568098531965027336371267741731067050260057596242795095041699049850933822381217926433718201178512201221799896517571788651432939892744301921333552408050972088106932266968452401438166266757419916190105349644979751879256967104444071748037637381366826988496386617232287483940091628479031737113803183412403674429918516433893899501269058118197747281201014836948738838150967494051691893032603994443381832207990143268889523343987621644210822523961794558988333665831030060567419548531607200888063166416332388929931759823944421388606617460905712255812425013207513177787278357852829322167497269833252860509120845283016291029953622193539867979895901095511109612974692348200818211166122786910647907849114188462197001989049773202508771402531169594322002032253410929190368468839560380742400267195616618632171542209312140194891179907402257106008318253980950432276468724061226590372260689663720042052383728047417215146194384471203262246324458260821581377158011046438556546158111021271867143578633923176540181547739898471361214054387144220880881092821873737714635419840503133389267452173699184555363653603354880891081765959561348540889105810083005870154976373408913745958386223216212621398350744952757561481227069307271089565547975774590728875350746764170145489319905168182594239338947212306280193737443473588444457016178572663446531394399253717636651413893564832943666029850496818907972710409123584351693531252132827338084786380909344191588763011103756618626024350690635150070102684616496670344899139564004800869076324197350865810240156676578298153605373692942523468602649844440108878287581546202706326284962188045562022535373170542337418188422919347118273050567597665693075915600927087161091338699280024674136618500612581819761337229727079504643973100210171579891812741298768305414784252179489220951848537909866873224571627874570268221737173556147231911932228627872178304623412149790663305789265497298176920237967175558017644998910214516941097053280172311443472246587914353345214945177857318124322481028932851218027633443650495392671651928738689782822753832586014421603333701227918849552631847040725945536815852732667325826810324750105006817052748537986289963709234632832093019855123617277111727911587829544814242362154572109006045636020423581443732939003680294699031758006396034359990935936409391930544534426039303965222018104182737302781004183110546094499545470624406228769342092504577964417937675310022849877445996953209032935561645672937106038714446040750423216468625723716027616903467178088788144074716876020806355700375612488714724648540890873669025548092586347849733868415321933913796506178967194812006784683833723837971784445409659644003188198850242079623776930690264205267936594293590755920094260782919138024162256688790023883707348141182754255648514669036687355912221911644935270314773965483309675832447787871125167252459992197345859532790940852519408244725599244993225489172550167295599626954156309374575817640460227558843349194052542903088613886089402111066875528810388563987022919205506355404832783606301222110990784213234779376417557226556179041026846261432186241536549077332579427535343678362095030379385777681528745818831877668335069700763096953685897579535712702726675588384148035444864603489304726940892158578758529995265430397917545824537549123114209071761925098552933583888265256040945195584047043618902161334711804805114206816879014746802252733796967644745562940507175882585787770087350711549445135021862212311720341352901517696891024796598721134892231420408327963529857730056077928607494440928522922731044341872804883602133635866261550647971108716154615565540167898093252975030087916123073001490922197394651686838621884567779354972062937604159135668875608423526905983187342535112733230353084702611835045547901496922646132235220575694163980130300455033188779944375221182832944576750516255424051180819211547534388977232385018447788115800756146396005940677532390885204564127173371194115389155732131327542630411084404755042397548248662841026681365135924922536159673653082880336382710196014901414651444865542070833995452586775315028115544820501323483887386330459510029558817327695008314861938131613117420363166673387142137967302355197471319377061909648707399479355362706410157671886144974017999043428439586312404191369580763637258346042019031607394683200507495501181844237289817034012042181891751946953101149890900339011763211489423710919726215651542717384891311177220163311145551577558210901778605597434626731854170312869546901908201936774501278823929977971345288354348451716988564865545559010740431812067986068407029420513183707653302484719604778634409219125443162349201673340416316975475486115869424921028507884258800706757245618591251998056588630208000845429957134378291220969866871816810484511146785610489527545512813180106798717616134328435049374472632989168806484002126211600128664412963468649430568470967644201345892329532284502264756544221003614584932347439981211134116088756854651105634302403853297168060148654569130163171227859836667310086799271195304098022820958232132857411011279306240041131553793376571575367381798756089270507126478113516523898084984274961119554056227326535546652821459901000806836538645360917857110722932869951240530816944148181967839442968487391463746394176495275961957966984188195878597169939958093535111726926823635063593807432271220333344526060028605688564060688433192722361484025652760536835254405676164942305243550214922410551293890970297564374719575933357577479930062652901736121795688899241265304016105389898911980379775708095160428796369501423623567290948141514148300731400679917371801144021556832380590066348368470992169385071498491891896629083600251343227927147381588585543291890640030461149568431048429230472982812824522751480247838920575780262445240050485919643798445076620057323071687318321492192825790722261978958848520028334183546512251436396538332839903707506791462005591290741399978778868144711090037942491590378270214211355183371286613342885678763511559177864783979010117696038540436028218745924550147423737319994890570132001357922872221787544157235616657061722159340704111377447474744385746694739640783487759488953780879538605353961308423840849654917546800605514142901254542004480722644853155604618105125531783485217709192946416823841775393377839370501402632063434461642781386895270768299703627117201383919864207856936328648444929017375660415702307311833199911205986561999821670931074476681738002993302623629571260784679698258232676620466397497027731044744116606505323867978727248090805516931063523572304227493762336739555837064307347625324540581939334325347392730633533284270624926082733048103653240816521404198483893503610939559827566753929054925219164331098547753286655891277502818443856736506717827396236454133735565689657451034509177881024136362435945759667091483677683091497401904003695177808054698695248250663806263428389453480537463325317069619599953973634696741071286950483986438999078956110448942066976450728710346977734805634247224769160935995377406887813528894561369421356062851393924137230909065524765685832126961378693003240430746812955356366847780726994269281740832519442930804087018088110653178292682348219598425061325957263430881064425867972627890985117897315627230093064135829488477126990270185801556694291917570257190449945984072375513744162932128522491159840443808715675362943324236505483829962312450536894166325142445384735997776872434314828486866524311008354091924139313854831446976359532768962577645270409105748329107426598300188952854934836164011296022362166212913521086218266287159289544371629972400012713426246010963766609319697649875333694456995934351709127764603182809188456736773253916525148472996392930163178838030934417931654479718734558652557561788455571232162981646916075686152691269277746847766932793001909003785041654825987824064311825736278760767762970283008155097320384704062125026431490056724325020210063373539012802730125939594141189980572740209550225305782400098645383139900652616920781242513342398781193091201616154742546202615034039072919885831038710470405907827908351432792430965483360252287164071436207260799326274417906307119561348340706992051240742015323875071816115745030814999825256468162498286078597905570253885917264817798535268460517557445610765002604868113820185702803631086285687673456132021147538194878950179427925684615503662369171046399820208818774033603879643053609120152908402488121874618254136761445216737008276902366031623985143086391425508530683747687038616228873276997505368850813569540555704157772759044454982729252146837613170216122647685657017419376501279644749346622169653818280905461314965347123632258686430019050529810363271963278980648038628591100301460844318594407170812525039008707348091405953262347549106045828126581437233504684564852996518007105090350841465206769731562836047139550540516292595786921755522206318406915068127739455258677386677689415151757648796029909253825003561685911297304752065398682450801616015252358979174260367489918738719140297081054552291452731451623878049438463495557793960639407560149028972267867281409656079706502243038964470233413482712172579814898263733120144073516327649038306634347097756189193276864342444844224708017179555323622722135564218081120615797833276061470943352479705565235505346364182878054420313662945952433771347310469614775896454896220245662341504036794993175144659667844318956639556418912192611735437167682220818989257393979890832247437764362854887854074047906004553477315489512396837512420447153329980082654800755974018330438853973457895930044262445378661592426430218956409358037434898711990478306051212662552622457364156757896066594534372545080189918816933344406084511680293023200221028391610029264020299519910862993380164556734183731445887837838093546849521519759200329775207496564469565149384303023582968068135075192575579387590903159275547755564138615432185297091458959379316093716142375120222146874352447053029932692319437865311307786082894542411566685403347411045098223320171335046291590365932484605020247203203426250029264234517767486109499263162831315764266410291309176875106939564350306321093714116846901760292290997468042740513094476691784608887681167080984603181207530642212345345848764054338660054163263898891759551879307134961866599392528507586556786599185913651291613904727336803059481937396124372035764282553599821774691372741101212990122365517001898689281497200574086772842734288015809892950172222108314682834518770554135928777175486232308984268260270288663935163784850573485546897552357500587132277822865237556607329994510698158966217286683606045532640711118504286716326024745996956173952495347169567774224792440984601609856384033042428484851323667246381894227741353963168933039498169805968785941234782661677982694009217137892000296377469089587868003433540715320338858613971064999061832576875739070002496615024970074295158785646055812540742866114211432907156012360331243206000280133560154081578732134439134845011462787518427083472883593488802549026146752176202486793252571449203758905862518342616240066876851482666433628404701587596201205731953792925938754852786212236823797223847453855116871348032780480664756582098992121578427076393401131168709317118611374556598729700291775564715401000871910322668543946026134801109663869484908937418470841054756681830235684713802838754960219621439675189862401874352319520965681069679146656639020190378959772716402917814601574482746607018670617630795912314372735501245809059332145268199320688669753110809219049576586075840756177857219216151878264785344708188155084909359823449090762547294650501731396311575235934733045605367289938668322805235053142261751680743971475248953607976521090296097667184462167192238043897832877235139280697567018521086098690757469546323153121629767872647686837300514396598502029363648212357348573586274418849241575553526202730260747267560908534562885677429180385342921812578928278714248697247884679896867584975908347864623732809122275775870302765226884182908828175483335769065736124529662959305201119937761754432689796118628093466984144042476617203443531115916760006081718014616282888142414840343189771825029950748217075038843907192284478770429666911766680581999607943680939882729669191344261568944997525654597525581609182440382767923702365366449532132165335199777137798537290296303898063445716320389859844339243500625284961257956597594560098079356705956662942589728674458085141757046066358813116901253700164229429877231925095835117895716824600899149739164628039067681022985409547373638900361122263056939159466826706003197799123625447480457090109018813136441171393151682123114677652152807048329649824844874706522723865896050535207786570811371179869073494370208774662312513300867850713525088773996789103404458761348703665989594370863292927855455605970243260867980010051929994661219232453643836317191239051883114348191228422305540985942901754612873114014934894798922626057236106476392336073044623110408804767565279329427877687656412545324516377770679954139753195408453581578655928597622593794246341688323299256173088677280347927167421187230556177203504053099717691279525633784988431174236295250092664942502511185582068731181957459110858284012412809765137710473457540611431197325655764361575084885664638310480906620561119928045853069549976364698483043180753953093127061560634248090521930840844878409542356967608335030159355636175219887319234310447468848160282438480732673473141353283939163494216964908914670738625469660337198971343666540281102659683667373043336370186590168810484923728224869048089012621633167224853070990479031477062934387384756664917447411915793511434405087761865337870547820440984303928568695096493566398377183942659962374107331184380622083124543453028100297288219296041260828202941227550253584909885978103574611057508672101813495100114013124949455258363606940658662088598454775168914563345048770592738775903508903393227625658960871919078129954429642050032072272394716010137635890235000473601356474876183634139654662112340206149037591506037642983958241678433382529324790810090624688894330471087147394197707934669597472223387071980136639028734298946838774831274782405250654391043402664036793883468118614327373144526323505751148619458303259581164199270235349011600838364873781876315335029462762371763485301231410071404682892114362732956917274125225948993961275572946293403970687869688238275106219072194619701732702095161966246249948855540772583630270607353418930168575928415681615138091917634026375662495049314960089309230475892771929932987223779374158036531293221927526927179223588854794282978024434003318808994298466871289727078945848413946444076726615840832811439265113494895413914604751192271542635641067391539840588956696065890609393830305216594277434499647672208007688076425413745297103337853033756354149440648291302218809034084413262586131120277018142410766626789313280717170451010534437904829541605974716400004928263843107022514844685242064913859669051354809710529631070146605549835977130073663500572996005889770256560931474710414161671167157690930677992487031829866604472571408349038368332872960221367724925470098660875154570583375778886167428301316753159094979889000462905016230961668728263211927832415358713013859795503527588215454092530518763563592378279107004042166511614290921606044085921953418329632340787655825460605114785423689951232953959811231429510252125370238669831999227955667416855989845079129118069489750945747837282946196947432694545952574460728765124749847849403847827592827786474095673301755046868325577903241343705062098036982462697160742521592308727834991226568222805979586668464195495658780293607147646509612554065978196020912133485347483876287659748818218078451764301204778831781572485918878346840928419285129662412619585788039546244351588697842981251568023948954830332224538595577953749456013054788656105385614029698643335885552386173265064874758331835148166086140633299264308179140454325299747260686921694682925786603558389826546667361997503562116316387293091938815096462464078823835669034673735068177054415613475537442664480389769402427296321077351582816044220551686993744128994351470552452213782983875022312446266586454023492828226176594363834185226572440400645317494512371563175080924137655322476641114214745533757273287492878737653658242431024161084002416858042204819809023668265285494182641617901327043984227660365129974569913582713413855706367374990012068397996335428373546000032691748909808003091594611380959508889674690175479926484845263763810593743474384113229020000863087040649388545133317029058293519453165465489359437944593636434779506494395528118314282388430925172760480759862635739881972167978087226367142605340617000628284153443495842419613373245682962195243428843432093265977437407556766176119150762645916580209760133213157705984377399814097035175352170935039740438889257732171961292586290853916914523690777105512586284193269572993238266119903330498066196099833787215733818443931185492353733208253066281739374236131212923538494948000611828619062035556824332032632044114107518960425546622531922681121578253626575648123746600714370951176798875674735004289281966159032412920939149242003207413013156430425945261304326998405879953684429645411655843842966240035627445707579411123056639431641864617148887967503358280430057404933219895395186704421748782480426796799220190548365234301810886748635509713684454123180299938526973791435460047221655823046098076991563688098474147278089375987910142446451688991925426084727057664754410679493931294539826410696330494325068003998064795797653543891125802881808536657023944937489885850349715764326441853035595447928696832350352027266791448198215119737508805042611999386236908598407143960145545145182537332941563753051644130215070168084730306999976102807683046350947976150576270707342864020048396969257048013001941031957206646088298606776645403068569109282353073451988398665911994747510969552851728745328520609807980368246463309923998212980362466379696248142019349986463671189975554470161880254997039934956313569513788953760414382596134768379492634935608948683285129240033231338554537708934157831472503858741086783854311511851306632472786288118092060856308581328373596127970188787735372013310413886235793027976068674929997503758186715012632725255153450298822184672825541392690362786473801265595503468795461112988713387438668551766353138489738072686904706260831822364167147960979362479043422042460945002940421167345671140938873221289030221165550777593285145830968205292360383175228788541874473541869539010581926692090462110201082661379059593537549802951118013820306164257043418311630560373751209389196967314718420148410777722683848633152984423172856562247262261409062588338059348484278859579121638253658396935489199217407953651115922076330314426991166877554556862884892807529990592378725660863646322392581772825193609643422398004164629976169632908019711708776345921318537659285810908313172111718563589791371281992175251828278060337125193262053758124444810059650861674617112481987971622445025427717202562673428212942402016220895094573888211716962042362036314278046797956619777993655044418189968459499960387381437964800329571189708659044608365739353971108723732710869685168464856140087396765418066185881035754350538285920201504895374439956300553442363323566116898707828944203450069035875606258932697380205950507348982553275865640691774731116433186161145866230506666766015540431472161517387540483511981121832799599558219913949024604246981635978327242405673933454191274742286865073184953915813683805571850430074596998340330593837139705985927376066072424437630218307181434351000836465380221051349901253825849017532823658077008053544048060379313591764967317178324983482520476858703671465888117316530504371679935794219256967860979009508347195526094773410167380602977761782369536003185236234921490490865329193792294185116958309445483176681273533829286599223844451372197980659801460463595047235954812238579942700678594496154342729426578819422758297446568992447602097093433052152590595262955495934521782154549077021137824590242137201368592604213580042212024526793887039790578822557779137365901939174326489416419121605682113220456702321831923691431836205365165025954698371072529525516739327545604800694483418020462252469980895727303250576085510145357730465238252519238409023300767646901834399282474392362379939711268993915492338952810400332720349251123552383806305050564610128831277399532602579301882682171793284553461505899114282486314872540283889461078064886201106682791818334625947852779136073402672452162547012503307534627759245706466440466706448809483953012791219901941182076708257854234052249577719952561087574377801261575118138565937875813751161682681065479355396172467776835469036842703787619463474107266285608811907464871151542914791278489445041668155868407809057918127842381090171631107350077281557408812961956512320242671511653772142101667951431512680124244189483134669662367221931709867100309574004197725220019894156918072919078294593908116474371524563685233004650293633174524159123160068928767770227662585259205609324884472487226977625100638774177688740724061796547976789780075170198973774665326462437635702077469959620400128520902996084000564101531086116397852386287243029062250611083347163689082148679327797165688667659070064824704893056316978576151165850145568910519695475567401230470385577415016034201529924039844876253680404090713573162557375749064726772321051745413958154915011589963483941480600987919342818234767430422718456566437703295013675274580430818782585267069879892943173792645809595203503009185709252933495524770670692111216429886666736759302879557344345953466637202833652716623039635363105129585126628774097213281674256623385392375041795644178294913006533000438672300400048224778378846041605468928315216894264614792780746041752305789593897301848055763984380122369843615281124848674284494071463689473879206592135019127274482087693091605845905829674419867367262170856664608625617502943690281546099009251915343089064919050370166224940877783718777644039306558330171179594877983356988048897105831729602864042806336288936661111547213455475176744440294066088328933371020223262276904277914881645643564105132829983321989629736686161984444220433447706916897766933521206788233630057801331696549954200274261570182998815441815149298694360089067748160811291640000441735998820866712092901270654726821111079516083378523826957178913462458340904971981418272280745091722253138193445674399411005671402509070410661375224460446375574269340194146182666295201294088745923264060824100254041625281640597488050239863468620577370974655975204615142281690925852836213479673895952989556207623541524688576977424618797171882913582100810538705401793746897879356068544607895334726481978775730759099601507600320137594644946680000699322644369295061365459661518579984839627309217992629837635641141947733806282808111847957137730154290811575881721873454401017834988166587331830714162690259302732972987479784317856984844801784959501192084178247634614718787335730581107568082180421265554935093435320148694123216746969492830357293903169090120124492585827727920018077185431696903964037723300296625612871958112758954504451976890827869199339551480991179804067490221324709178100667571205003354458006199262084445611521177283825025228434601285505707340548192673437027075259891260083460371972775515146117167731074703934025843478425827393077320846269127081779732706891734706887298480103870824949263010411241303905098350207092929380438119861231964393164431466798921064095439289233317854765363643596675576484642575816764865799896361603378719145391793548084312499379742900082598999306083491368347552022038827666340751061504812243222102313841839737450265928076561939359267789126386822961050245060315996769366752035563959412022109450909961435648218547918059465167811287417067547511802065908061474454295718783896316608297532191858614410731453746995763593563268096628466224466269313303011260967641885951702521631278377526367302762604168382210082518253974879682622787999742938199059333614071594774708517461661531281087949837667900863681149443367497932648198937127221006047225834210157010657338354395530383278045112735553230361588242664539792243394966013578062183321792567699293361247844081069927727074068850750777088993445911028943431991961382137632097306129651534533950319669997081362208635279942286952145609207359845478908281289248990846784558567908447888272819013482317755094278006283954551574276917797462431166503883526982756502545317099442226965948758914453154915649129833556234680661991599142026774448785784961889682625732538176595519160717657313397522244210806787625396194005051120198935068450738740803126799704389033027632142377074231936999429113029430436649463152455963263610341726092138058025745482985497759997954187137160640424993718815039584560686619219326941369727389349177436666571705152495509981316419423534023684869741437788480846796887376372503863600490982259962895224271198314507383427294446160384610323443850242760168402612747920899539209150146241735288405181015977046620554834028112021649656505699296771268378987917948234271901712111858968842352772445192468869595162600607675544805754689773745671206584084560187598469779170223501381404283991729625185232387952312382123106532899094432382155796324010547005351628299610577715072530753836073704907498537468448651550360665470575078220286290640390060594264039928730417786881409120057414407212077614383815578069471757464574966697300775727804545641256108762624374857055882711421744689970485724256498577292558879781254084114417726637099059495041829714435987195228562852568609346804025210814813023543297598550058103680355939915355443139597691625476041355638915502446909090396820057663011145035077673948254696094674887530376222877491580113814031580966641020993989627094229259024226037027443203734687903537106646379469299228583775706958971204381997606377230941792010953332961186212432548313257956763481735219899571041377267400385637693037394402006556843566070418914879809467325747444930794512771245800682427573244606475936861224878017627880000079423323716745289889518193016474344747024268193273926680475496347645623658149868889633221307148947036465037152663058230587199379254234503424960512067689379298181763790270843179000764011574461578044668889372216904597418958406855723299217108286694597846711591400310069874982972976531270297592239776508515232633394195360524594706129598708603693938984182081695900962213728508326500086016541603604258900635755837409589306470822876700574949319260858391394102097352819219747904123640147939811538809905509202048663681683002798256782631259440146704215299032904164727867100666414673036822961670388936160310057673666768031675993717765465634921324681430134620308704763318782210319530063092460558587584379482881049458470679247296162283904542464617171991068386374726088984593456457279621867780663513305992317619977038082791630129713760807340753114253684486863261565914358991993509935579967807243256631890154383611598167241966127980347757598438082643642786210775081828737291184240900806572132370311550982619690038267894342510090450482908251878146626582704805327628068755343554835224109224166464944485391019471633552738818529587406914754340134592464734408593698169605191924924137246197876177097823502246642005476574649641214611532229448991354818298019784589049028030855646596432545800779217104355335566129583078967520145992989857328406147553033055188777926586309814626991805420447382516435275001313158354664505596910633510585243925598774248578894332666103889691256477573250790900845010324470642152026945006386032895274908664329228735599175123402467032478415796665336345638195027362141729764805623688928078148354409216756946670230810627038647802326321112397283641861164208441432724495429260585326959156172670747315073019064873788388006716834809404071001233255656109001675944421194320475140004511921485550631841926874546813346465347595510937881163228670576357302121574427776545082572820616513282962606023232388157437134910124140349735317616201720034209411571072837951622275802834899623857186145039909554549308039127710937089530394237492141356587511402394220483040067253221004105223310813821740316036128530398365405198594199935035573885897040646000954497451445771512547210273635869487018768939243079611837599267375397446753933700365648621844657837685504581027222151453073270718129403536286598264691255260897583421445345851447224236703424382112251410932589900650707537635736862207083125607799588944344451986310045483349925670138834239848891742833789737094763368807572107985047385104494169118508491415227228164478769792402814931073096391530783668268977329941631939376780059033669715099119229948137510816827793906684696116250594800397926989902459182784768546457283426772978259214011478905746192318705885924460493985679755284880400487619821479004165061862288875776974859435383912823064713991459401174668594858473189234542556289008314721288223437661834619666725979500477626903637790693285331528060440492383447427839671478415353858027030585387117487175809138902757533261000367167429317300952743631316923031648137489884805431546574622328140619166663522237409113078237220329226042540005133805565166122236245213193478460783615120133587097465637722901533790632097452031142358780171563553709207042152523906031336945516712203876063238523443797838665365913061609142905620793829934197792456285051003808403486029138873510188806007139752289481389018569899162064984945086885805366033564133783963674377502831362777993372847359467711636910543556723623475340170409686739016800672874021730255793496243633672302839583804713077356644030736158207685883325037028846067828002977083358324319197937754235933052629645574276923292528467764280501181295483024866373687476891751844094569665361664198824993300848670869644040205699902357560359403454149214998293070117389884659569312114938274746096300211165927068493324919239335255165687128615362196614559013294792927228599341711410738923931106417989864390369119315042276009602141325124825565914431859503389582414948636378574617123679270194763834855299798811706207102117842821189269885701039204823074683569912699882742377112679235419263579803162883995206025198776872461971200061257277681004136171169214565513695691274062699766052124712038396782047323846304277576597538695755286347021801982392443676058425598470363730845107676420441405673710169528590153967355949831708681461257887476916631333444615235486624813826375927622907188530767115177670432853346214060175577713249723401292574960822554363362270625943362411393889293387823972810656143662650825529929533093805991099090474506041524716565160364811800552860651150775769786818841190388015002137359567033950416618964083510643956638972294132393592092774765412878053336070377399969014896735299586547829219320588867531940967471444500190847928876445696040308789054018027953335506318439752456272077976119248898123472167466175767855336918497087975524729766729298296980301965323722141999202845607355259357389684216291040632018065120440525238856817363864736065827751853960987764291306394218075281208162627573595567008835204460949305705892408903284582235745435927013007256445959043712454929915689421743473445042728801757625525766365935768621992812287112486943022410813735345608816860637596926639995297911153210889475931201847692414817033407707793473265825308042718192172332292713504990345831292172576386197158121385391440632545117218350013677382458804040035077775925646698905201408546281821976306909916474893564854458953727430056873741005601489301386337066228487201372484451323007211830209522989687337305069874911663153365619792176797008338964241225787776490516817661977067639111858669154778958112709850724224236498707789877277752742810053555573805573855332303610548141195064050365365865897469018797586828483055422821911216446116753516764925493831799653175983195658459497800631189520677093146684151939136142903527486613346253793211507140885713147777929887481525249041596491747692681731008737710342044183205548515508002640405345439026590788849051499478237639280925388000723676667298066819200874556519327883415380552100315624854483422513313191607130329265859763285595686704646841090339008128312339001299889769353831242681862742174884143436890965872036937401989802340211002618418527892267992558480609525230847658522129497793489502605793240389296222115557634023970627216088600032744895231393522181191544556452653523863795363323562075965582313827589502136012706523888891893670523171767642212802704008746994842362803856567988945953309977748474918637913221972412433124362996973004659168555064762158486872211650626896821536273255100924210255386030480716090479152808713434328036741637963831104520834968131437681174154242308722968608563829928326591405225758030813529764481093379810051807917786978700950094458015166406701078464087707461885375077921637512988564504604718158127566965159848438199978441672666490178566295036327539684312549204919182395533175088709558852435332098216028638814587143960917461930190118600560546149430439798350170679618333803801017373380864635680920267285176757012751827070531843964783018430165167106244898095193193565567277004404737138754448882531606193818159207680133179015240652104871459280761912513099171122732197753020794186317895189833220517010842823493218648351916222750004517429525312420932256028232864069182236480042663466170792245326740570477614504287105518703776046341378822547575293279901536570206438529730753493164965336160410479196402793729740090033519586124165484074775733129702901611710440289061141859175644568389795111175386463403611702328037212700989653772636725602179634859724976625993324489165335602840100411186220248242732472854587122375727703860211360289991253791165652236579909004706772141514944262392725447741748001804832619098494935573870590349192030653554884729273453597675707513272087259995284411929398726480322961473089215553594263732398102554613174675943025043620919886362288619385140273532735636390030539395218831715686713798857107888675694398438270885816480569599637185444659374312480433262880255394453582750802376843038737132485569410195483293677202773698177566627604790942985866423057259184871191349368940046261346988123490995948910193454892255463085468595491703760602966719241907400541734960933103714083867223998854206830643928602881700070888999713546118605507928799052880009499805490725717226897563859723745181669753223771360423428384369545499959892343171266457999823056484927883792494271027303123350713362210739034961025783078681468731272199789028236194608105245077022842183748405586864072255772301517734783995052285602354675989748468478898867167335308141848515150300553784332484389579786407575642921666774654497155655812343489446498462097181779736554587748923417934719747373303481369685269747366080098384869770170348248671220341145666563197070252814883384456666560766711753158379175382429716612252467864578272070834590486730028366645792027093708220651588193795371422860652831370019591393155464233567248916381484275801667887119677451092239845773457027767437961177667473714140021400060406372253573201845462530666726061391992248688128784398400949963745027794536154750968977478339470996613042976799624298509299028492987569080704785231196368767200368005451697261862708749421356798199171941406830074747344240409730868507319234149611212322475175726667889803717337348156415446860709581438551004058379403580679471989934086792321214727900297324837927875754097400266447207593700980863876375696076486806774855938153046116672600741134384161890282176159858325969865101170612125146333921634444425108287801628583375200674964232637540324504332801480923875466281864926665629003707347643373812858750351648456749503399494828718043732232178970911116864608422387780637326575341985905235228756131369654576614749247504357028734839532419263806942389573923295903767747872067398031864139836625090416431634655054035106754278079537789247944526273604725179526865597837149783579784307622395009887918546605764062966230682711711841516318826390742068383564136155006778949148412503855091089688027638414637144616357850886281396877883600360644341653420153725345636888933109399622227161572038075914101555638769799658690815320860514087043706831779396437716960567207063324208311752689258673262436515535236323260898533582937416738375113534179410197563652332454867772479008303584827340405457325057930579062646433726669756188559105161963480683998754603156006541931180184737133949238780099856859313088436861797184132663399161442304953629858699053089827127610340309026756220924462647037369219470181839171523943471043874940886190419681635640676619765233495757461416706027904670529110932036433561373617202534844881915128313113984575448748122891041055932142146493819811211401806792132651057586033450357323668744342605481551107107789313144715335315253899231623324458035005811086036850779868589369857873424105506017683483817775402615728502683341788028971491281822484679558029563179352228014958450013485184744514695587548897789746199854598037949131375866541666707916004569428817137620270717435912394753278623647033234845930132465641278269813629839136301783658923162944206782558599982952034289827052173091926315973736573125666046747452111871404414846317657916652658662340352716583505505651552451133585607628031091323454932579734049802187273968280086919315367253865189772945755792929670278647449290401466538807765897958219575406172772947921218329079084648309958278216342430828929865750782246749465062696598019913087397041978498631956265755196594641994440960457848603946173173007184880323465813473379650857959491252298370796284679561738190518472382211241449376987272141223031766860645332245628430811482610122923823008305082758766119749632159514709673546130174648203937691237690002562798863776262611494847168630371790545435646209982278421092521351381373976707468750219411341612241347167371205175129490743258458722515001295671176526033815039460661358348635647657393197849992383543505817639009143147433559911578355285257309827745148441987507000219235143988775810537648249123877665096705061393242445645569245505763634035056042138025926146921530114852364306439733177839872289772467129926627517149376685809002259479040271842756885463692354026767285380021245396470721095176155406130814776938824623473106209793498886087135470397114544581018225809348348457799789773918204603502730259254078475380059703587184500179971569253438164833007649517873299997150568551001523386299085299949252598917357287452235099488275648566141938789460212603929073317514938127657077459526707158913116566759006818310879286034665197387018443902743964134416247514526763760348962443803006374591123771425461423296391771526743290449041768451027877460731918753750624610259533050805084772598008801377217215349456014743227789766044672093613658247295762205028839240843269582007733146595389158611024154224913685305245703960049036648045075947701357982884715159028396778488092986932971431954325903790328890066045194314796347869775424836987590069549532356324975828947673512122797659746909018584546511429027688160788230370144377000562819149502909496343145349274887906925312080375679030802748469038199018044105963840368346635160440654639894371013298201914985052867620599326732383107058560431470322101088588987471436017065606346355324888818501900613936894567080740382818306839937282038273190567087513417009666404275259799071110995654759393730081106081873360209768472540506399674514980712165593295211360790766663418777931407301382847286978057906055879421528347141229188576437601256498916188945299761005052231039062832873850429459792949287370498277591382835269110752995661583786155362360557130073542782289396199991862017657936746510632144422430559055115381151447402642869118527697682734490420075954041720351775304349604130746106208824304099623465374920446834993073819619752330631351570776509559093291398757659725926419882163094038784479893846381227705986140084764963720194795765449970905193048937584626754435110255674603178868407763747453227571502563081110095124998558735553204727984910093507021226993255233781755066752309326419252515759062430317330904965862606672765714981021188637775263640201968337586469370395476314638553483782630932376501118240173700838813869609874302461447324495491088120146547712072762861190171634075394848907398671218224300982149007248736102059643593953362566037943258141740147147244119324962685306890727457333240391657695053901489640733341016859292012014597868718368341741385196751619190765184203137575410532734862023415861314299271068191110380757814649229822749133314187631380615577648523694172021148841592921268786554208258807048499146024054183025010199917335039858292199331049144420172269321916811019444281742965163761643942672651570942332426440848708301469832033056971496207343894936464845305464268139141290447815886367730242449969064718916397646795851193916505664577508678758627986982115800066015185338370889008484973903992621962584380605544264570339796342247061288600441105069528125906977652387997550023193552539755802523711052739525482368892153365104051322644556096383307526380528002636214456904049738610982120034962524852749759372542769223546574846258396864523424160139484938483076665653718476600887010749071355091889477456780445369245752675520968072405949239362751310762531276844200342263741008546982309385681096373993874358805068039517012345636705147033201916593871435842214503243025195133163036305673252799806027741961910115011958690252971761283411730973417907773450475437199521281551229961186888226900913123485662543560858842533304720860775198211995215993461778600755615281592619410550067365023716406934680713579205809311600151558329690916636605707236576166213058834611759539199560245644787509167951128787376751595899044006183074658124027194669471381730618823725311226537844157682728310279262514849777253799852955048712414784266592942052730657946667833322754298275736631101442336036682366546964147718221336751207222819142552289813837723250748163770975401590739197896875387459697974840643349331999730379440663195197512014333510729096064376241848080764941725676229565457333475645488580086990513711917042596604260996254687409848111873599938284571702360185921202302761508254125512824785029809902036898284319828824557124505357380105937776992510310750472695097880831226436690975490133092186743385577934267171051607266539329441599571705211704421371510425307436094673907289843769130013135276030899285272351294859866584438879698246027748919744991326990643860357511309249485790748336414573890654543354479950151057162920372247175526770576156607434120536693311100619564990762416286835803740821801405521987493170400794628862741203909067974657766719240354740827910511839319056145026402295480286431426254350224583390244649661833974010390487188014798086081214369346920104014359185613260445303485991910674458503139988471082406031202925955784798654026940729567113824778964304723420696574532754504695780640714678954533429066769105530786933278228035816567418348920062881007219844441350485307156898243642619876093326072966628156182012435384042988246202256929913368027299474786981832158564628960316987172890869342916907829976617857720605605771388895198153221722781195882154929355929853737381917628742137447536401916315497235892197383092677489086076546589136961788041180197369845356180376524646413107540768399921608405678320958809639020130711874112440521468484807372781943013645897186786783413547781227871454868946044226739434807408704900689328585956454755871653434605406178404192707004861084526908165110396521971125094115520100442446703196282608092559976146492707970762087380064177706265864930749360347265437084607425012339829917325128522789580527460958331070581077048990685727998680382130360974332112212762783124333901219760014824866663502188525664506462420607978083173372058195703964114490283908314457349415884117463922567118169415110628771740333827886294644651833189501168324890989991119001980941923208041872349750403168313122729183748740051183422426367651094191134863776243085264247059531584280103564051255251580635802538261082187986323881849004120697629365785825719407387190646264757012170182642914453313986817511990218375064081206505793375747742139362340441898799316695982252275452321422575999208698142806359199504413653410741446897614623019089320496082967536111713520602116605575953008706328107001393786668002443099108542287853085821338612148752962880349103396942549551356472261846243342893897591914571361577900751725016566240130104306667412249071225707436799945637633600317621962083031790838362431502667139626382473754993253744419952659518800356837212993727241286826220236294561718075395439695169186902897229411304872746598619397941806358510588856277508274182081045304116087232138230860425541534158931192011902477980387183122476271317687389110579490315560506511454719185839772550220264359100503189438470162790527491351545577709173327200517845280780660822037144914330186796487223879095727016899303730663737837069639522630569889971354309108916813612261267129548167387547452057932989038471517257617872187365614695575929733760864791202753200169397611348186699847361981648917534121669694209703922974987309057305831899743351315658579378151203316360558092668394143482692250712698616993255801050415429361580342357479753691584190091303619212260630784405175707874538152132210560743955007902176376184498433053154097418199672510334675945043307165190421452603412693269899669091764964333881229292669929860785317031756419033079269304151280911037524041055849266742556302314673887436427030313454324009496897254471303667427465792291179884014972894338670381725227851954661275828484603236527027873848852957237513062685652633513787618577900288416382392616560829929954071656794559145310888544615213104826277142173908293215316145737375748168280299441982831276924843117357656854019379398829451878252177097291274254631286214069308294168631762125853775831784069537607263247035341841486818322633449681064395503040151183156358825938436007485128105856718356750197971386351201921998698736090548058711420408544082945896518764479291670191324077763359720558086531813142023732869895554828156815160184432161571455603765027826734469583066935157764801082018973536562040585922145830385749523204996524003358253388492708154297410495048474804406306255893349680665545924867393636261818752739953247332972904332084628299783991455690393341160042846954601676989406099588161965338138877050478145008419254804161487757373528464548973162638320854681453492222942837127630988723563961060565981349437330761920280057939811731760018083980779620908728045596154350174453506006343622776876032785651902838543920921056360580940931370955006272132451905111408051458729666002912364989431264883136226943536820728768094251562400480136383850326877697384842004313594838675849328653867796640710600470650367196919167815899810531316108351390893482299425184920551509861715836708223773408225558988363176055749450431013327166761375806773849254092772756783973525824243269228261731257874318413400183207682006792272545143485540806794965617446162248460944571288513094208146645650089112064245301533761260560754698975420753453286593089674576218291937699355470202738447005857431774033746977254709987277284667288008522958123046990611106607789240883060024832037732579565860081569392995210091452021502246614151414263267412713062302439742063627844809607170234900909374410404629168963527606518569287858339337657739831807756906784668200539458848673672739605004052921452352381150942843974760144704347387167972647434636537200572594676470740220298462129734111929292046576896337737358659152220128772239276374138462280376259057107220180678380149055882575343863573729511965093292946029143325762539809755491062740929115799045058881145227289176479710530841699718157567588643855451754447542561787672641966139095386957784103553876601547046359729217643500832504341398164563384436532576537428272392208949200535583550923497983600239010313064326301646485319506251003344170218183487674807694401501711697965827385938169157284891579716884125395400499296049692357533322833278253782237380057716338918713179485226606397895897570869765864377830608815961465859701579364651257961149730429402275065014138701661481484850920667196396781767184953755262833589333233955426702273946611907200142065107992910264188714936166839160079338142564230306785181305924431071545315440511318283205350842199776038904785700090551095318390428726488834276258195710688640053578942490028597692477931067720473538183592797702354005968393822347266941273032553535368108799105547682199641258612506404416262807964639129089305121776737714509879814028451333130642475233192310504951259904407215374074182852125987106345389470729234650242588782493706141603853294545950119659264509911652614164002727312047691190524235317127705017681637116627314093753590309013569367175815477722114942173545287748715493689526165250459793191216353458942064671311530741115640135615013725731975107046874311618605492006377063665231252128639617803823665447329551896008559469035874326563544628195068290955902490524825654356619007356199338305883137722516340411052873739459269267480947561940097843740454975197264747859043737954530527157301608281427598469163343383932749826580258103875762160189303158311066273650741015720362402463813355816153473426613751540121432627327126786073273092370893835208832261257654611665719033894911811333241258989449397772690846060464708565122706872822950228285253061228899726015396395743359921987985504383856637148166064893339258040818253398939191355089692052628095374477504867112239849852567496433368460985123626814351819676087651333648321463552056985013704911055691203398828656587425974413527612347366082850409649996686746752614991273546794071152074376870499878274738645349846287139656166248191441379104157758639538936673388525472047562851448911222299982266902717736928062806581435942694972891786619096244005168814759291840188587385833657409056332995143512165490252052920193837479313607273076291688816979310016781311538433623048676578253702635229584729144380409174735873901466168157863436934538340298237009105061246737846867382526682201185109469020237061876297076911282324996379560427920425547556213864340820790661575447337847871101700913974937284733914331031631295186350527117190258205928960001553857322751539678696973290774072692280411316351581955432839722005752520922409219536497507631102222445644537620341219068591288302652329061069702674178727317344151351023396064424301894711292237206578096270361041711086641907041382001547007465034770365692405443737550210151965220303516466673658158477406571412721783832929635069906339081543408742247273068302494797313542522029498028926095001139312725820913685236488520526444656440437175462794570534096417288013398561821233964334245942539686141848182547460960992027766562026776638899755118031174996163554677940249795038474819238575695994114727784073498905075645934767877529511001567594715007304179608470303472098462829935954605894197817621454626939514378255558595182487155230545495321089207927636594096727176170107371914831627566580834593910096239411833543607076654540234734501080128350648991598128600625888124714860133561820125994800121044773013223170308783524144660757230824767355103870059207357911340801706519412646867659496433323974881748597816870012759284814418235755233821789687553427473187121198316128711244466161918932885994233268101446496121939938650522788007051078285849142084298027669540806269714454559976811011220069086205778742709730011550792092524248308313910680011931097423822862901744464341635301135656984357116688966997322256168547519177019298874890513744054113394125075131963836735647340011075279692975531833818710322944036938745966835610159571148201571735602159615587759681020549678317318272724079019227402845968484247220288986541213551362963242950428618585300716184629085373031584810030054945400043264578919975861380624445359860118371187535501135067499390600971302146836314186673272954112488023090342178566931523187265863100854261365168475450670027274037401357445997291340137543209096846765316220150997523298344632391335540079154246760997086793456172693970825245604800929238532747923557961655166758129585721281450851612460440521356313950626148869552252454468144680922670660489175090315141074807781027467005620878489634451919118157776494076292754256184373989086473219405043071016731052214549398256446818186448863242501619535003178775740918587092546738714575135642609036117512078569640235874391864503056722366858063011381810850436012367109712118265139787594898767661110327280324795910620570073977222422833769902341259948002088031016403626736288596521076060591085705310153424718125363664674742842344640479901561513611060885029472454872960184248061026772545695731309790547585551090567450556683951479206783937445140567802979559515978229459027751673718568057839840705059939714399227311787244579474753923193841945333234497338382620430479207584229946349629930886258052964986592256583438301419624555294862343345088371137258183020396912211839664015569841699818790018470428231266203829574474848963399953386820579588948879656669791426244416672606517319978199242401360203695494177549325766600764772853891395285258122881885976243920019706976499722852503987787860160851720238546154597784293392382372764902302645962156849881326389741654045809217890848524391997971093327938074399226558297643354430186357616005854820639736964985860463151774035393987055360209615263817293449998596790593759884903102642943133864405823928247347648490153463799802543551187757174662213884239842999006880060399072985198713323728458957345454386245237098108738050189686503035693753560063782319322918456672860047246909363047922730524948190481515067306012510298511032761815818160179940713343466854128097794219423050816841127943419140974196784551384452778016437979822761337402862689010620135429565729010565904230258425896036438585696972571439004456865114996888773013993829235996652719632884306594867669912216583786933685149251916120875404306043007531412362689758009087247127884180806220544937795218965635142228856116805697628717032888124226597499018865922342935050129060181881861826516038794982135396714770373050489190874393648256715659561118664704679325317114133478003764296278421571207234726826997708056945201778843612173186595357220452083891985173425865507169956589872494820453141406031246899288914358201116711434123840933498352985557970653408561991664424155575410344260546082312791323518623247279483895427074529871719574630127232945162521321495261718207455567002263310727727644722016848530586819986084740379864414569074111729019472055326593370320563889967764212480323240875020995712612145472966681232312144463826018673532773474272486500916637628381431558295949302770220522353588326707610667040878778178157136509448310975973750188153046342609640257614941546787489069844952747366375918376312306667060071615487527096998675959719497648535332957227284011785113604008884678742219312316742294760730201162028111920424363637950897551444036057214216673308645395899945992693259046939008767407350679223418998953090757891237401411396224213326351569256775487173910371299640461770158563682974554824624869272343514136031849885153627384881685615958324145392432259021884035994164125581222898984099460131212892235271041738001452402402821900567180361842027098155740626481347970691222496484996320714321294738797963701927321719422785242822563037383479341219349004997674726655724247865076763259823736311880051215658373129870068922864865745985334775378609962607555294471604638267753479474720196020036375461769461353632479766707581228408120006364557557213824257279710150448697231830336273056812169283067828751057689673021761528382982188494684772441733965774644892596954378093736683999719392100327346436283246869341649148180703006272311205522304952927682893030006574997249716696350531902922777661321797269093918133134832561004078530695298388066060007472619156619525109326212600042723918162304987268561074840822753382037260128827825975577790316064694608894197893538631194986247875676498384449286284022936767531304855585094369782137414957189238332256652506544599444798540051651384904723578278615665183870947357700415913341899968161569765767537389667817890936952114846060265598359500512480916230157099696761864910635040372290785756095729017865293160548430911692822294235250457939506508602696980088039120314849825363308933415272676147688577697584786000019390676725759117824370895047842536472288221046915438281348649474746896143716065168197463391374040214706872233752660683460888513820859115135663162742133784111603786941444310220732881246861676804319354253355297745726862405689270895685648524052589980182133409346075125070989458555601713406505524376714861262580492849762700853178824993835135655178045017423985726593346674003948137495278856042892231822887978545045076092740849680008697320621140684751818543257402997458389304662401865561453891282626057439139522611595895191025893734001877405959107265927306343717510567539042635034781647073159355662782429527445492933163795603954405789809592478232060226410848516518736456513461737244074350125535800614854106709777826913244067359184152603691689121836865224649253528566884449393881549613779930569224312504587877150320694596243491768893611944343806718481960512953442806900876353736528445068907295577862430022063140018046960489959103332110500151249462938157755558307074630951394805848347306075296267107187454567133540418236477600505673384595340728994791499692006730271018395715900211333159076002951697020840508746073299884839865101251398975259420938228109667975082674318059861224587963724618469504440715377201070790539423535850054739949454350633265586892947059449376009011232582838462359748182778821978838255841305891341685912691847465109871765526406559147841709514879511386867885738810193360367863478547871030070258804509922715263993706773504545095424861581236029370983132788622703768007179289137307087021504724498930725472669954605870267372407458347308377208498718464050478348680186062478273948749752885466605843329281702742712939144356151517546351969021624631020057034639921631685533041397313063025921548977372807604520408353709965129033684506761842469685658096504734491106303838676895338084034319986350646249672902267650365296042833527120150997484980079687536451657671382150732666000181509400136934156761915374856457628968294599148111312279036607869332657457739996319384681437033759312847687867104877302324744752974794447267724127619532229285399095084680669729947336424266052294717926489761324206126260124488952062583729644547760489547446397262733656953213354608213308295784263324874404744872076220932912268258666275042139319868646011019197654837856471602571527097808723373270232065270029626356233719316414836916432470869123245015285119728193266390996609793242807761615211482839934164844042782409851099168035128613669941895482308217684060252261050462577200326375224664038608910057063098480015628464006818315510818042604818089580842322459069508710029835648245314189163991940673427268601066536703512664802950369646295076030608471238620625733326457500259014529253939696468109292883671208336465447503919900498036219347003775769720649870624523992509084157071078165818977285053557703074268332932057135381038432350248381445366587677273991851936766951803148743362186523392198067528670596889543530261774998614753667445892535920250089892934321358486099965059463561732070235446387607804245138919689424641328136601340368036443546190545517603699420242822307202593910291320562237460491738692746436204957783430250155248297297019614758791378816268248163455477675549627918953912750767673176472431566756500780985718737844891722321144513691056319427695545345465700721893537061570197376984453591113419467025361542126286043328135029680779720118293895174463074334318481396981917083257670806431482038290693440631047017752300771594768756003180263495636919481348486338989944066804224617736201739751716110429354706486731924367214547144692396649631906037824480223573482521852142319841273120225950360599267976698589131961533340847704028859020337667578327169977673157889693553780716884886566591287630079742776441358127796930519811222794542485206298525990641399257503265160619052517557733277945294884185233398037278758572021841533004396271270897993033663458867427481048108550521747475291233508708729300738696848330151177043627176523115847869747332420917762376742435770252788708819228167056370059519423558313274255817919784509874647788066753875665633675334394365989038452319723134675897110466870309855380689093694477439320464500621019081189264520037798793550590196297592662517081282361894924289972089731227618447623930503629209820330929420831767068544839866218790529211552292957691119031268388305940537309535084251780107195916760789044341618198597341226419365213091598632378819930875931542682234167700567392043974466950684619981394158849520984279659395190860843619766344175231797834058560410537561863040015230084770913105769509613775526189005353436855896092238092240461848965638035630214786922972038338787242845097472062487964598796209958052124790036087840243519093997294448647087145155367388434987961944595005916549685106739207836214817535022751330731853668273522931753770215893574735875871338187971185530903651942170515457069721375419664225675731617152092777585580881678878140827279592405003360447598232665708408653952590820241564318461399698098730692188102785054589239746829364871196422038242393193154253100099558617749240035824891985105982069563529606562317108935685647842106538921356511257519131339596945452725975750385026668082469519259128786833892984358513769842314395230443975890351149419147717085994230729321000913328797451360403853238956186033343845859195991463355230765560635231396698111807086540703989406765883309534907526902317573993399689899568829753077475158264568046946360992508841237907734938906254700309783458389346316573041967907424105402998158493589291599336322328367695536827437912878788459166752855202523524670845764286758818508223978673299908263885701685481694094174837011716078186463410257981157964640848408683859940579155667044432994520468689265468145040462595325126358900870580361887003963417824229437226215902330534092489831323769512661295003326237885567166876754463765939526074282839894992718817156940237261733648465551931035387320570272605629397871781626903891931766476732834714587977544709800898288405701506704016163566404687427541298338406071744087583231622228002599328215246179395904989400967898502039557627362007385676053870495548493224001905570100225344717344031465117620213786880013334663141622587992736883813026899183718185977618355219929332302527187188486161566207019091289897266818471381606613737121954021775525422438852236208309503308561227384063616022780196899351222689333682892259884199844874453865603523267425747423500509575561107893598694175863640005163976015828701753589046779411347954006840992212460519857938927490654822345169854833600903315336154419124111764212284125078039690017963513643207795773446505955065931409527333161875773683260300504541135403975235120411864134725022344973417945151224328760637010218440155884186955533428647031182690281701632666958852449162534136172967200221688989543914825020271906583716267939589370724908127484948021189365256705486390419006757783906927345480335449936532931897460854086813724910157063520824610324158078627436097223900618006215337579350688498039260731830778178360762011567106740083809180174995239950782480525998562313485895576870146184602377012647709037969789848985315620956490614169136699347811190024344800777384229269019878316238876930285853528888368462802771115998290473631591499599700805448833473282415596767721975658393642263099425887505873344871090458345441165160279033587571431138512842905322819886242098311104456995561071122135987831208386055516482515559110051382011250934241232224516979876968978959008602584611911823290528054298760000012586953740087095047649187181310914653356025632657701088551749720413794989190938814158379292959121737993592615305714302501679818667235786873371451713756629127496795962503296100407963432132135907662993144887365993463718685012248674740717267550026945183894676543999168673610428071264650132760686768285000530427277384206850452259199630258483615766484286038971909378723808948278923222419884586223185919548307486408538818580470720804417824921529894185444879818245297069618670049486057215057786230834828632834771137406504782611320574984807271437991052419561161846061715605351130830219117004749742671403942504944891244627431333474738428311573574327460898786488837374864136105476850390923529127517969910504127474503827857930712434625207376832083657901870427735700972542042812573256418227904398767248396692914110444574863894874057554010339048496858070547197961118745047694815744888898240080505148118987478863199709778210206831757229571007417522969546501319583965367927408818825493699909448344548332838749497330336071187101376067643365057278440119567940225274370344027825116770954114598789488075779961836734161222930030626085218331774572243165714793472884996462372759250933588791852731428833195858361484822954658019764025492072813803863796196913902180762587563858411213390334163184068067687377932140130537424157862490222667992057503419497703436834076839908829104526254092462384027298236618787825696012132776400238890609441760243768376206129489587259099837649625993515582510267275408503790133891590515055276472409199835836974113004674889777057296859585504438952500719082523669143005184686159268679193945702899977517799615162892501941780592336880796733868876271865831915513678702451264832695357885055962613730589997031206147262393568936280782292811469981435849122846970129697891855810843988707364250141772093011226813136272405761444642394188785353463449981272273083727731029105349394580833590779486547672879453174396089609505836825065392374461193627247075154611831831279802900943927345685141739014591160755185313248044687872513910142269144553842685190444276151365708664513597050974465411665787980310387461173228491940510926122427159397153399882899995407615243749996428171745548763931626119429929892833751203516912011891605576522241138273029075710827842569744638609804438805157877252945170368317177492774376676618244191550108646812952860523131413022040513322349494855698270841336679169626909635144136800846924675430960011364253122862593393878900046746326133099552356226593767708525975044502596259623686354637776318088561829402092054920894132057488683912236216040110215930452261493088843705000690139827761947497297190755056261503422614885600877339070840580833843302463762434556405084059986216524258771591397964330819649319556785056069545892859428377879872111272011166107830246324040167408836791098221368322417245284801281084404237280881182131966167678685251859174273448647824786469911029647063837981037184918029696552741588247524625222631285690589357175855465994983952732814187580695457267555480424299019906903452267162984708759462965659204511413461029572912180843301179457150594961958610028175625695854006981580195928262920761515367813320532440123863899590947145716326956463659374084452877914098285644309525827498761081063506160760916230631976209274718880609917251711236268787531567791098600016132038578091632586662656822586573851568085415860785112640544097915635466000440527950687624144948792693344510572843354907160646390853616971159249027078681845141632957058998156736247455384513294801566221776726282159510534781446152191853502220935093535243519531599883808101465023526152897710370775727752205964873321349369215628008067084603397115740015814001263713711005844470541158976912193043559354477492088629263819266735641284220621985206571380414793195147971237238698062515721427968492757601593512372363009158792713396474021631969986155552908763821545413801263111253038714076674438353029551498251922853362333652740557683537796890298648410364370317739754762350209303026448233429069475802519924785210723722376494146253211169292409292736512232631424283554630224968447578761866406200330368689973479777458096828676572601669542952830707127690769883899295821851511737297400963699416669928610706974861920413477126547565324739378284652007574551365994540720322072511850956822813484593134427776658421508052326730010134297227617311590185825292715862072223925302685702506001300631195678043302890570056167101850407533248625496856250336367566020946189058904201965888884562049908930484806079368679574851918784134243358992918386145599108298025545630790980421042955562584830571665978702608245322298904525385334331119095807860987961628426497847666237764770592340552635847233700157144256858474975603349136749178397009691052655433416309603859348714351863444579842019958975142730785702608483167642189663363817441438657536303741510406035684537158451982053427220938895366294850012520094819823605658430249384851128283791302683148202309355264360026368833626370487776804438320165432391698966096590537786680271559839488995749255954835607097566555774276054716942474437809172228414750091070432913890826061341757928974930591508396045367144495268579886291203418174623378438683705232172532072653126523061628096141041769801497582247003063923939375128197254860069665411557488854990439397759294702052958230358306840292972544906911935527982487407750113502668639664613776478238874864014320009696656391491984634732686011935220907740395575064702439138756527393224076967722377350684316889061836588250827531544812109855263882972136327567472147656659804671892601968838656609694651904013081495887837516872938188810761652677953137971144863460867802150952807222793119815206870460157524509927505645849565792779226772606586829728775569178230400582003697810056216599933185545457339115858262974004326398190065567591875501299215532452124940182294626956634035074818966936304328756087803216874273406682440405515570924745123994950208616015539200217911468840034298212242257022860234953413887569139534740624571404749598862865029557340256380980072131803703650003721108426173013794560235987412357856025198799441082979782646376878476374233402038694898735855693529931297130396365239594351422165913332803590002138836768309544846445147821693149815510680382268002662198809293298172430602762154006932136801267827518141841359656628003330053005410744271910931644996542169519861311755514779650412127439322548560050447678624141765882304351215288761004144843076216744138373980872123295810820479041334496744208342045997907554025605818507424579955680688459145275923663802153841103287645838112949643352908398440693266126712107695616941630382474525241637265517553516654000305296179207090415936750683336888065427049095374878790000061684310371544136951201122212238574147034633371426897804636871394187557225363675977541830460533816428689596357847368257438868684846434832937339134694815171408178802884051675372211140009493196686725736364048210129019397321265998061754378264559585600431876023009810770292638738608778571903925376520759517962600006547020329255962267836509732087963625233737184794471501401926439003758209062146627589316136711487109671289349009162720129963247403577639549666782790714586007202152403314008781263081977261473587256465384321238027594839600810388004587358394850845420081647471267161783528021102453795097764325883633971224557004795175963379370365244182020286039208324626971844547530096115597347915588107597119052106702020609465008557407393004286626624670241124656051290152619170461611959970365774935999760689167791963896130307110480855375133814311050129526431993429077849594953047494158654533069913166298990334218290159252853938685977138807531567787579045791071529569880800912841317483422192992328893061955642212666392040361790647513860801436244199184346404183211440410187233055724934381504864869662917179307976145990690520631059671337846934312387429444338349968645001216971481449126917587079547687395712572311213099374315699051819748409468734324775642375476524174004759403205431144335344108607281973998423071050918506855114383983173540692285986003794990630014893186785034644309938572044725071677978658309289851571287600604138418875936635373458885249699085470441301887450230944430599170672014603769508390654135502456536441635827320572639393349418716549943429098774616328716715022107115028216465800371832758586225833279759348902954024867946356040046759964753582347862656817994754715358497964856104516278630158990888016978364154871852909258891470825671573400609630658329997938521696657944467835547476392162134351208492260074998050824851659599994501493867371161843875105327549025060535998263787628835125266213566434940384518232199808451737421448991177840770280450258524299397053152099749200031311250243385920224736770611128109907797734889676179220958583675747030480698917006221874743006636277312160586459978546262441995596464571201135744575470915741635569009350678238750502790000408567687822015056704652591261491243928069811867415717201610661968586485126795890112839590885764113888034925143842838804197447738663563590099963734870457089645298947071241022132036311789760411384834913473271923399146581142022511402604591686601986871544222081158614424073497079329322406264642157507673318026429740931410117149512284485968713366438216615358521834648319739822334996670481167531766641230711539978696617007476244940114169621554907323975129496346336792483593341944288395016218433318802288063621047129602413275339812803636325378632796404518870169375876594351872472404233161284654657599934170461430386363926102715399743213823296830429743724875053002250654532170209860722008618708147106526826946834772054499959358543469768968164796888716925598455400147105211543377575538167661748122250149017299703085194829524641759862193642600954000699488013491130699336340221136414611143167070975216306521818443130957730093401550397766516042006371531842295190377126757767373913511720579398438636856617574576199067847003393072981619509671504737155953269868109964558413412806201876884614130517187460533655763065156065921408071435281141106132939244979812640192292172202612577102522052102842399139007170111576930031625109676472487269301151243923569483051687183039019658311770967809633599253930705376053303129267855821333792263913429721663001557376310823910409279128209257347847953593432469746908535319846570923304812019946336301206362049154483961898085190361967281706001811652855392759507966959086806786931857316765739607427074862863252430838473438022047696125110304641472183149780659880829543945469333131348439269982423951358120822432044945941738231058044892311282451586962607771243525236760136777350755470709410846717223556694511226686809680573169403823075627709107160827536809269151482347913928521901526650373716663350183892871946912629635938479879991603507171258753287464729453423006986647548520075206066721168906236537730084550343179619052229847952264425863941351083212354924403699567266773616110063573290051870758641146549866431295361453004308896589252890081990749554669257015991107050326717402458078236706871461030270525753136907674605929774516007008568527272446267084202111545581284368894789291936311448005093492760628025939415415236773777600309112190219692976770702639181176171438016792632576736013291204997479558545161320145919175220211451906292436650279766841214251369546355445584866968654980700718119945964432431121964118155044589741692487649022146371481060951015067543887294854802379719028727376219290427784378347912814242816435296236896397964319549977219422938690788688866805701338649855233598478259954150308850771627544528664639471808259425831607535917598543899565962382679845808153609637959923502671831085160162930805289760254967305300321723666433483076049046985519930810419087524012201847298801956801198580931818062507064296539757104554664877971041100472655783149254227038080896138162406390439789203679014648705230593777857496533305738584334360456361695343096647261474864287326665032575399558745744854927389387203604965867513573145430670842275348576035691290722596253504087957029366360446555097639294105944101628421019153260867978828161730872557386560036345739625900653509623275859654848529115326933189624440993131133630203223620750235716726208310026905692974094813099259283313245313027501034964769265144555436024067026306284365576283525249369804331633616121265253460940121584669648413418606713236772277325545491674050667992585589425601512892912481078440142821409735118504003128385911390153093928102893864260270100288605459231499750253898599076403099833470149093194534159282842688350723963820381666761785409322470072498513921019824593251678892589342637498220705596969852438416389897499979710558921583679536101353895873708559225971409730685921502496549694466118725893803789092168994984534030733232700859542626166072210494860700836560308500504070478951604190768948787691579679772269111139993706184393341338623903404719462777797598688827674926703949130710729035290554743817485571851134443183429893488600972744037333322155093009809602892611550921787410370407249264921211530740345533448707714935163953879351975989042784767165422716793463387278731904987124980695609679932019116900476122288926164624244191351152158323817172951430392256645365188600661026056501874737365604516307244060233098189661331022071569041421980310172972826665225655179128060462903713110145090128895308186062921411687386170214770501005090230196534074882195400817184834716436206509580161195229764547738828372110183588229044691855180302754440706185252996970714242170070767900563000940328714218906367873723998703072937918395180401122130480400643927631717662112815601891221816324340994654506797789144890160715589838071601727651761821557911266142974205082303425751973399490907847689986973925190735936541548273129666523490304232694368035134833786127993334224376680717703640010574201204067773009676749426352963351691333266437962726721297074768886747886591034401347129186461260764381006038320356297421452800427946653749766691065957995484674173469166230316954546973671136445151504598953147697557687238539276210588560787623735370458697891552070344514433784449622078159893641515714743706002106177403940202326103299252457692138915423166923751457750865352478449573236011974124691727705537752810141700654993313525478631047370722619164486236038698150372134193185635415940259419507420441455470536714285654672472410480140844069488160427953801781858695107770215215316013228595241481239730875343375986817789199180745009340802734925740177350289165504198818427623307310719910356182494078559728987093444595387246820130779083792020389767920947788813803506788891472688690644977731427651518235507429823249450662486759219148776554354543896991884810396257904710232258437580395778711129430741885046184319375230189655772085504960153175416372740927474699429570891333146517471269571611161112014844766408687774412701116624394685071800834389765011635128436867502509489591186374565264382247260348018414540451937827615591495104901193195149330507126587022352055898361074556402411309248832755833720437789561384168771741452478610799232197319199433511471252859843381391182211982358174281491582390803850878284952427886890192724338125029980079782529476655315312744619095883965527911838337744187898413337027210981911111512634632460378628911938220928242420028822265263955840165650382405218610766384740645826796206132324161755204770826425639100234727470156813491153133739618750456335875329573751031106319652860194154600630645298727697672647102837700428538725205524381275726059099622873786597364655294886650458244284993082105454629019676857511894981584441326944724695004376802509717795940376457913095986318623700955458799531820332560681326280426253196314802847090045623274952257613547481978382594883093123728575618706870334078703922368089896786138093912277858538828623115470623666018313564837969298336862787411500046879830220084452495569076749634270726734936753456047824476591785340473071072344393333525733968028231637211748565863224732510031637477490442579845445552036836605216591260530053398950917931894244316379527591818793072732820686457149035812708390881223131525467830221939549775344720893097864124824351322843388901623117991151399327196124998464070488481064451361559583383306495640305048473418669830963584168562188929118009983606748645513391407314368763832087341996240716284181655751043627336328903392083657578238179135888577347270747346969095978537248892532658272583622974620918364472031856504436647848209813730725864993795172004672360893783830477133499157349303300183146791919851492111241548320549582022737209173178600035523899101398436911435608491350827668988757701002010417887371009294807391369026038587566303284758349018366256727133713608609369270244777740864450201389034618195556526459768363880330560860219308128379830646285267085789350359246445981891552730785530567629245365620274479421244846467159843116407847408520738398098509378313000002977349831385591571053091222016959436126391031074700675470615708230094728577939879436974625607832177923545770363424701727526341960213849963101827827031282450354087828603351427336842154426388516211082277099882445575687273691018508831673125191614312636561644316016393152841899352182469091921627834473055449246935833288537553673406211993114000269671380688175582399651384636018862916387302850668781698005025951177468744398333020817424468852888209531782355655225983970153369200418803862539927689306254798125236999473174855823641846714572193426541586198126670028912468697344987139963261742397230356053762693615864009306855020475637366378817716952633193819324673311501956815178362309889257714979777365443865454314989095851354213789460695731520556418520017249221535497832963604995420113404776240944513102207622080634869732313711476115926770406389153406913313742034496581485611963168204987647442665558937319096390794991952631452344230042176728777705817313671046054335684514684694762341614359079201788500073190974694183867996794217889099878043193317376317825554941220549903572225985296379944967196877118517279746603054960538627859492263486247450018422625706872984569190709704215628128385021964860837081398575474865762407593727913306389802534270767590709234365531302332577303061616366156746681561338108737088683828184578122804759887250803240683331472056180738730740811308149956941535956647881597871173081177347535424366290125987008263033921835617470921300774293960051880995567213104516488204431756898592353353695932554425619007196853358680862345657806776573632498206581194100254566133920332498967424591888925456392632941446521632444749618716850044069509124778832811307085223114112238455136601714798916423096810661455315399702449812136225174370553465954738075046052844468011803222771824815687596746160218067569005637776140879278636252762827140144769361036987500019909042468203561596854441905338199695077900298743001657946932085913602151551902266853893208117072122435670955494344426022246035135551266056072799543997853747360930718353774211677395218593422528594601016831922245340248987116854558565537888335431952997842918698992329705549918521348778459366541553021312831470598739954023342261902538336867299769515357082108113692576124324291299593972227441840980013166274510605142550410699586991476593891503723433308707054592335038842785835644553206819394769584854290756207079026928704739174988080213163704909295408875835572941090922073043009651021072519892009497235956428862617881629306530441411262372490355557181276810673670489058188953283725605085537996253374469977298584132986965995037621314661731078477277915282621802195348648869654234195682863910968293911989825659642958769793602419223465370926374716260608479268063216501727756795628110187098436356518862807592051996007522055608067207113597303275204541918194227306375884516745743267951893035708098283791734406102729881860648219601541660030319904495026545885642308221085531641943576900163544613964107586675607556091338719269171550738964103012690371106397231715125371068961380451863895241005804211317917743814845279734873229099017009570690094268559790202026183845815716233620350746039826243586710385751867004899757334453207561339579387576911248274331509966770613856248281679839555960975077538833962692898743752931193817960328507229106693207525560587594730172814110296193992669426738897538188084786986240250058008423623534539302765593178473563292429752220367375715348718951059896110000015462907071605162044322033684598020682146805089148544979901547700424189718169188483431428251726839323620120669585607887001854094344740769446212912854052680175986663516745421814118527378848580597338565711027886111287956771120505796352703452396072258349205278828626213126994273836911223867963581550091927114113843693070125064636438629368570593232188425920023426864643641369574422902388039564593718302732472706476517939642556542912871894972419290516338377472539210088289008644651000855941960306639005051554628286054990282326553423364851844027641283586494328281243781951734217368771889035293097112838003472545930629155357982652080147837881294043259542977377213399006123690703258845038515004457293525622678187157021053832358417370127014709261052791378271549492375311957065459208579559273672636212341162417199417238676500046210031583394291842826092013138381815199256742867747230666449120873409066314779193489952818243710676984412752946587310111559820696417820255216924768846886586163426206291930006841432993378258744979654017276519313025160152469045061354948960158115026734734224721255757972978455566507161879785163829417090016081595970688419304055021398726749791426913390350971226786775428414133335119752975140779826020985233739347152093542246609288994479249343651500183081461678571451799732690296089523560916178744619488463229417417639922568494916248054577932779708875913376193837925915314418144197039718960698841886848215043012183750577629285204995877998862678067711392144836274366459496903037435708015313250698724995741346330238650547510311422646606384254191772237239831152777703620213180385731583914223850755393931093420031577214695624913176312511585447629358094107092159267065467104805026992272561810640820382772876577190199679475402715868933145033151674022144646228355477683608519283887990621588837465556971048137230504937641915377070588344120182983447409291837263470380642487058373544195744249299755132069896439885133807710539387267556391184291089415630615546443076702193657040643890898050613733791477572936961409025962584252634818914250636289695643387893759420465414688489417040963947328408275854830163670460741436589721571455229086133161465822213731940697260974799544659386731494932665305547163746584206826824644111975919335350571479911008584583722323481459217608932955387586684852442260475575806668585316222000640641601255865842724247111051966317425818451118672800110422862021199026406756056755417423499652074050706162481130254007406402313689239632730635008652679161983627925776927371547967246983250437554965206762935541196770547450565892710025335782490279499892217456945009074626671722047998541773868581711671170773853280372435220964389417876249851621391122545604029966933069843137618832026082023440513593057504009153127521837558457609248102260309543559142376007025945460678375018399260740156247449912832499662738207655112130823552771905548632285403955465141053631154244429917498634274337361041356731208384128311371466926911316524929746604703823004467506276469061224056604823650764199653234221784500763544288639039074693406848377488485481722601310587759114486597073989132777120930517236153074744382920532340722234905847947425610459318800449187286149416018359712414723616455953903512237324983038723184185510270885640827801463204444816439408832316466792339888483850838413084719903007087423896772643260598316586838331003077697391232154311086846966864020937460779319443589978266085590258397164600094398415299126650255460960963320272138192359070994311633664854395264235344993612631232758620346017519308232464997790517380602354549710665262036285196496035559461888862062804505890976281742067749982032862760483418011778886773285615432832059278143664094048565996652287326098897321808122777584627085501685009578496378090327479954871337446263138076440919656973351522117326164522011248876324777162298688811281063951950699229077858117088513855293086860049093592436532180869911015357601498900495656839600928159529695061897971388042152593250121722593959833605068512828595583562929852643963754871950925939101722654204560247935488145605554285370800287415256558582956788446983994215395985002427303321489848660140040404816641472272712036912861652510908074399347671522827047222686581816896616832321601972760222420350870233629833026644793198407746333671566181091318973736851528875315145773536121968332374726021799531640271621299537914827951090707811894436306356819688007457505302959777768051992217340601893086814025805615196564223473683891142419786757565983142330552193170093539283488357128148191050272483202541185377076847317393290684727566759197062205366460964807627366570672931739326792018290944064061594093392027545229524417201090840380999216325020830679147011129824146309017144216895845888258307492683696829988425531370945668607508463969063745461047451383510141912587021601422549778100534669710115906005596194720715092462256372638651786235775654486260195117572350178501724818950972592907172129879302171303229401288115676466891780946018966952252233526610805197572539054414674433931111553350084227188504523339712962616500763092090315097351714853340872994992068965075463513544711246516284464807779272752017450587230088765635580150399321717882093386449637269734607646697837745174121664515461856142556447627505867705723658753785042934815003836317507698917776320694605343075343242748632742382045678676825768667567009762653899816429683934259946886030452863360881916632599760203063334357661338828383780926102832697129694841745782201464878473171500325645254245341493741119859478995935742820004771499264800040444969501299227443665694219173906988239400301811905520828204346736524026075808639345374396591912414569802374187256099301383013795080330822109529635233459711615994112335634416988809878409493751343342919998215299826214208347554908941934498577769015497730321123376730026155838393319024301931281622990169009324189791812470799299784737363561364824397077009537790494427423936925002602650913349163922509828845613985789427299116815209450495624384538642002194344808715479483324671172352733418823248596076967598612229919584513417858187005077618734974732696366749759495826988904633998078198240236420535683851936448243669745436275251519310121428389736049476807482682588275694821222046869490881160358791314071558819165589610154595507449280734282619357941782142544266855685114256659605961011110254135122274838048453784683488198197198732973740931251097755681951956258176034323136360544482542852769907830677352312583559288144887669517532045844499710164341232032091533602330634207278695135831379511631679819358900263858733805306244530647031189131271907709345041769441309418599546460261081722605894595339545051852941598269339893130466012873657752635014506834277811366644593989098064229112194018994287021729313801695755311208742570313251831769852697870876528728567292511307195546815500247853747921027378206109127269061793370496914245687439919944224468027483502474936492578664844193377600351792085878976629517313020105372863091951056373427653732536795836039802508552159198222776590428325599677496803778062680024452979369425317554160524184418574880815135498362841053306020588075335543811136991018419101772528993298534551033931495048151396109205964965122652469708541623752826716857642465436279179575571145116294805281633210147546389136016211063104614967366224676239273993184546086790108305712897119906921190812486535773498641758618648687226500616700152573421464858046483872573313586095633022471370783865927931365648807182508887545842983673847417012743899885017582571705911657989623466206107706011097309670566794164928694049449328310468103057440606965313516140225107533935833744226663102448936625382274782066295843868199332267163941717779696809254419842118190121736125771717711391399341079145558269834630563449643336500783029176878056710977356719097260893919999317725190810679266270760450008548574841245994362671799865578204152133709870212067243915971614576146601058008522362783752982289057433495449909018306486462246477927640525829034835891898380764478431005696207959489173261525340411803663517745430903552261878438606513715179853094554016976862899101045666176790947471577631747006621503687305376627859324665178240902783214966859271250716708926938046508042062406943931947613958959147139849620729178975041108650218462687203177750764087440723645122484565880323359995993523468878347283469386416849358064719129984547038908952109874599790213684011956716577704132416046365714843561224137782536307095608853152099438274769707445903729447782234402923708119165408627645515134079080717115357187653171348407817928660723559533215275411894825691227124929511078462093266493751724484223220326798095417546863971304594266940882398229594182618427522834157662877297413925839417033167791378016033654461424063568486415912259201345230238872779031233304892823420691659426169802109095088333713164358842371704967421965084121116834852590949999396285782771717433950035646039892726956901486245995984099732791917784163872037463847047569925577085981556616747799286399532376830382507552865203282755934816639217110496485990982735964743266222043598540895716380942514131989155197070685931406587645070704972056838131293017297375442474507230002277312616381277088628045233104476878608108615940937084177354514419757568486084754023849475214169025058548120291356712537767114651549597972952408519549426322177845501858761026058719242139221130643283005304375881179055213263728231361186573331052753325400328321959742706094208953994307873539369186608469542306030121281235463832002482001833640740846424960455940915793709592333924063467182911654414441303771491481471381626982491994015715921991094915095100559220985874481945816477524286870724189510852961040989761281286262609295228607020972356317276027782994839549852828135737117443858563185694115055366242330682132365577812508870753542651806209265446382038571948132205618160974918091565147612112983128573427468174027474405892146845933425086759578817707812361830472338397626113778994881707312923716785852686721191431541498622317401071592731446508492919818839839906700254575981999133042545896185904715874041369178689092365475798102612200193089839410677555877418682858259029027924334285963734330518650013011912857067382438622305485122282966692534851706915494964379626867364010985205969183259958662711270440519720330755131359553211355170572474986742101014759944554908728710896737615923688326522533596388741097630763216032231286515015038806457871272062898692703594434792916360120946529835387899167523109640501839886350131397756206981712904899525278532486831660121648528500348956568015527332265742390140057779134015568211791844317758746513992882849122010284670127002888656090142151200690693678458342623106930435949257035779334669353918892918661053989775116094373361743800977986774939002528831192547739773251345215277266270715348431925634967347927746050419044600516438481420098805250152940725008578463653756139269261132714244424988269579812292408503266090186078775979134079559565896940932749041653133891866391796383541900127136483315168583331436399547533834235966748126412002364128760614061300448696580338303799705206771267281291570753260826758602087026117390087083336954662856121170320179517208781831963785586509499836978422447219476737823759943598354036568414934893580667072083918588905386042989743377276085343382693006771128898746180116531295913658939278454577897186468218445815593526737893876374850232639971305371653859748212798261705131220699709408129082590350285611646692739557025215850120561579124927085419043330136793721418088838399249070589899568127300125505286377001946114267298160389096040568700676579049204907419125256240618338044432660566720629218437344116921390500679173996225869719743859962490604849427532030983262309925429012305349541149881999339375623667281474510614770252014908506835239955818885871667977392904139640081268661700988217706471765696730191220283204080978656615024199600878586441205328168587417501732671432951341921460350346221834381809331618790450605517620541538436944072802894998237795847726355588094404932004981887797913916566174318875931431325943976372966361320562216800958475427368353373797661256150261148149862170596495378798663459271922597975471621666670213304709558650238089493204457813555570918288850036827145096858355507069662890845555297704361676311035594545171917958677323673360266300505290567008107536399585165546562596276132624013404391077834881769340284738547673938366442185727610129413009769413887769458632548030375729769514963315463470747453772066978190311048539384425898064929014739251614541543777268311968912692358483362277533185417144186101549699131597750568603947868213078536060810747925828490251252156453939750329884562157143213214244639445167399561507853237480983526117467132674416274759046649736738578565055803224743296773666767226818361045341772306930360405684799102231063780388891285686215512665336919115713958610004547771682263476572687642887610302428944800805848675996481404147396544672210434541832005723397999599942141172630436401441808170876092202045749149737373954943086628070576137704635668165115478013799761752630226302872519760774178947036416286525499621242595178447824289619774158490419862909954978617675828297275514528867270721001266978623542039023867151140595525355950570334561096404977805722671517446382979365953324608176964141871904064629273057098805860967171630598745850388861914463938402227321623297709994368750710088909273768319987300885276976494610116998536822276772165792659052600315130345215917125594641911886261892324531833896406511524041622593174402326294422902894811312389286783567320088004601964587110339402054910597908897210588043326270102036418695893328050925305803724357108490028313990870953554004102705093368024691393773885237921107106027843149520380916256507336224012287374133921022720189376918235321523841917288470719135720565645478051854186908139920254250912832617503960221992494040975840288782430840786715809485664144201945070136166146198014694605685468436285548479045144277762017663608438711974666831201354149323023952371168691455615909951393912179187759655109425715346824694782927187949819398326927849224835345039939527896069766428697772413460859260423157947364080809916989651175274184352475881525298602569990245604000728050118679212208003342186871979214631200435579611728074255875962338057591569059971950530532629495587490178454624352257491837284450529817005681456584195107834824221674954512640899423595824287752668204557776309681009314496869271927703425876904158640824189597383525108401704835466445933010780135701988527355436681738663075188475231823688870618934468634028538054399498055007851098574701094901838808461681206017738620289959654035439601512253088016982656053274169946513185699783976292576701589051678539908538900995675361155892554680729931839618862355422653099650478247052368536391739659893464423844819123798844216926982872264818404426430420896493838944821982579903991960398172392888633291561620989878851756054365547627192938432286911371349121473064531952182930823014088411361572824625202409497014026163999852560103067735978892196992601496638336803699585433194843163589461339887491366601572596593520548143587345678497527423804141665342548844822673364224503347754812295061633527483558402251283839441863028991132060546820088160707444571650131597206114121969448004499665081366405085086136428920896765183843313926099395000538199015946706975692584329938660021459205402997104907535650566547296416742928166060530807429740165612644379619352299562176758560447715300606315493829142780006661000038953852528894802848672775420531768372958893483852127657689814757564420407626027363158735877949938620827431479801476642669943451983904216460723841855164298481835546495892317764969030571596283504727327466696654527295770931563046862271414984999497195271541802702658097163071509341822175003779501965251558233943837996328696734739839118207592751465127820626821426996783439557967177255945470377910306049707027252932166924295451294239470002402433828426207767673703142436572220973613630588467441636242095204630473435840263638179963561512932465650251147103292532101955409782437255060677634451236652831219258385897812777137064023692813845202089424522563102834377228704916384499789005654302555034892946248858333147727367929338179578082644182059529386540043251372696495017217826576047549825736571266911357437299249150948567334335564424997888759968466409574705073836459699987621696497549447123230509365983585797819855778220390397372961674097650971287773811799400123265642638847867473288006889528112865291643648482528717433785737587356481312767851867677082192709796763237415011933031887113572808772715305379067399513684284462889362817820927955860028805506298808184352995573473471487383231427283262800680055327574627267991533658379809925885420160509738842138585395558112127776087102862386046218834733592896181557369173993058357751589121214764636235416050182045545611763884082594918719489364551256907497997524523907343469312310916039306620804878791901456804567904972810407149324965380884239391754764098179725424471975254802888079923420126383439568615191285088854473666021068323503412776064700416858101540674551570154920840777466747942175581006729601140712266263599234029629397405175789775924130753943638142649943742169119635597329780882067462623484080457223336489899353896315553332200758416514971613085300052611778133756311407956819007843569700561436528039927729102422423590439650699624734735424964742607082741044900402581526642409352460321516225516314905415835674568607998039892591807298971028731269941842349999387013964186202599676677739115478993177535317290252800685512284585937187858318291222505291972594285234018162965997970377200281944003028186226589927866313121975055849304524729451883775628515695168188442047233726814177966731558188908132459431306381260248944334980777309920704009904219740547202215417465509133129538720597449272237727209057629278548483159702156020878554598040263614649425215110849705233156791551491593915270209204448675897949341739743037394449520213115962113867355330246165315724777375984354440349618178731407520417241041299166951606240409262514461566949609179154598443742112000184589178367816904795699261088431838244745816550593533300013353972509649704026300103406518260085972237132456596345123090022942654964879533702315050167505756488502953700084464234971914898635688602647159268326816730792949034867728392844772264874462975416198798118199019848096198386180417229115783485675162066671426652500085900027995057312522897362634956375311923883199412365073790059572324145326010255860578428512834786134011026995248805837627653891468063662119276175274800037427812800430057630051479149643880728947587061840897588415258265988197917664910027806721261252796229201264329672542234226885849913683942343838683748179025787279946695821212204790002051725409715826214551846262280233851663526665278630577553717956822929830151778149121888211000846652804531519491320419656682493542530976534515609950510607425033265038075940447123723281539055143065797072507284401268205799524154758011187885708514629486287506076553744705576350469742847227302140208397226939513345066833355944942682211309898479220154441872456144079387266724070941923122331328081882315025683596250751095615074549525000129092014910985501816661191613192431066191045632579439135188615991942885975168034261686838071682331180760885138449972487336563940226077751115705509473579490611926446604502497707580952999476566304944584765372106688786559416613804249526154885370141129986334699570909902529305541981005368195205622656663453278274701756056033655638274220723679234048201748029609567337830281512691109444532248907961224161567096007877029175614693528944375514070144597580036194967078787874683135780444147468445704776686401536736025958655048114404817378499006605630922172404153783716856135579472293819185851421087049864742578830934024426264288731568111768021400634709960624760018276162115043253314394406238095895074821095126215928931483358447745465090178713861926994691792425656284240853617946042376774741589297506620182432847922436218556546896236664727573308899658361881363122855032654990115736321891535915466137901997176976084706872058891704367654104416933694241467075069109496363180283183317375991193418911207199723443219514207269273502424767345767791385344127735130186170941161199132006201068301685153210805459855342530965975159587780063754775627077233944139003596884619218403059451065695307337696668576500308144665832677157677399910218768538964126359017667538794024616413606180954151516290941515500530304399591247244857485671228205556765190805821326253262652101135500570446474945371595305548056705372118346654181410330168529696120092142798772440103119571782019539629384227087907636162202348141043318334727010680139595864423371668093646556930041298943887743806182674018643518412088862240951387356674674928599220695167257176112260452097840014482041459635998318403146605805014766834966706146344507893260283989914561747875251228271728876540293023530216339906041644755632643674984340566137284172821336332475347748037945501214413556061781884223911863082178443292847166436025115800048712025534189583692406126595453155275787039712129508998350387232738959490940785731063059155130739522703760646408191409658569529588983664252376332728565465914940387627550780440982186038309549366230093852102263796102605896969050997979561388358407189681698238698494229516798003048366555352360750914632900871583488670155457209497490401235561647900604323717673651059252912428295012300244711491461525962227253023938293376548824300655008385647856116622151226198119715282695038740789758557481242714787241673883155182840168125273547422872651037282225637783585273255049643124305400295395942542003073978461709147718905235506258888115339490430323699776025322234271674011569401440833806597394141022169776316222906344657135334078308874625754587350934112288412286018776883986747104750426669490916306030096332070297543085265548322125652805689267206151330732534600686971523552061193638037522391359782765384899922086000062348498677023502310696153789346909425303256320043024981110542635926254723537735417022790902085713499955255157309690941504179501048896284219187780508622069960444326751673429115721382858133778684772612165739002331571495755815636553404395590105434163724294989647323638373731267876178084023366223653633791377243532512141353325533525467302774351636240276472571219391449227625691664676804435851402400752121863034892620352159706161733899804222119192673717340566151448989332892948838613717392472303725594711059292881598457340647101647392941925622672208623015482257870367852066642233573491182901502757693692555422689373322260971647726883527436969739172849078330535450033583309650400822622956539710666462316821290636042782094185921949834635607727686444789085778683286991024393826841246350063790672222594675978085039709221119267000690902279297593066599181220940873714405701479379616349719074684020623652985821270694508693498205378986143993668967439468185190482775008034179461460950539243148938626980864130938485067956000752684846152847791355033401941310584020630620508243557396830597306028566155201153240177359810546932677251349697628638606148895979240177520686095783539957375191627270570140534531890986125296783536878071766223422503892179199187858661190728735566273048758187183385703300967017459310577290184394727331718192484708832645593312634492651937730167309679012485255121270371341160544854512217348535791458686569387673022960847829513719718863064582191248485470888715050395516516867329912144432652662661498994513202236466055187204830398828828912034107847122703482959510118867280110802164803997581040208890460659786256735904566346568791515487072254395969401462570315241987382566101678331768304142136742204348528092826259629605197599870384109055279314077578309951127432169240411387774623909083178955835901589193306776093228648388219872676225267930832502694851261663070817498563131576613829991172824571136883059413963525741750340705528373469447558434049807814502443341312529428172017870643469048627335822001968978602847908705286495241650748606201174636212727363193113262170139284037232555593074762537497366101290866927102232407551070460006768363197893816292633049000130160553112480036239598192862751884123860000050568455061735119099141983610139035312699184102207393748417385980479620002609316933912572912336088412047699709387951031539417385363040747846271307744116531287749613984446965476476451726493902127609560335010801459722286777459790960236493457688656819792705431498172426890752190714558929837367000902740679296831022931570570856375240994484621821448606576964687695612838417224271977930176171276585053032366876010778693670540023503341921218040840154120304236269951229995466358310853935319703248428355986388245959780494090122802773866807530107556229603859574547979149076437775682548031330169216501239001924912254524682696535828499205949051172587128590806138645534120954216699549152434733982247709335454290459153245100734851166840327029721853278812356594953517667044220617637948746338722364125721053063301583163568599362618145230326699464954699597974688831300339609978033775974398488045888390620165584695260750155132637767144756310108802965598765531592626251668251880799127523482463722449352845263905208079631329685953387463225896814667155338298809695041472494548360836149383936417029030146744048689288812688193564017503079197143155469713577756895226935642768303539963430666428987745500008698768393365031947524619943827208704687371576559885954457509692256326960826372998486148233222509426650305983989270727351442807392501992170223184121318444021703954253819449921605059751399722231208346665457355233475430029651096101668176442092383948041342563171841470429095243789502539227852721571296988869439670907598429190420376951459885673171225169112947760388206254486451622617080342008936077364176068335761119758888543200284842856667309278149544009258536464251106854333509011928284577918940771009544886200970156473383993551046114583142383215032368100153006691923539493394423401216441424749291594862533921087696680024552698534164519024361670558614690269661855955221092420581894359505652490999620460016319540463628900203405899192559845447680052058656902885533179517324124592257725024874083042097825685530304433123583104205573209695938858447466925564293828361728937315704476753963371619675174776721699542333243558442717987759175546295796749743730077361833974666618335663539899889388512191442107840852744348380615354606121030640641524778424435078914250264335324611592817407211606396477242237854963018549745814219317123131174653159944379609289543656778786871082447426368794365114663177889770326688161675516351783001136442248715009178880482569802799336149931919588440271867859618731506515955719385874823246582575957529932730965916138984682116174898100294321704393310110701155783056247222661488761599484762627282251464203455684039634769444349127490916908402612864601868630993007024777352457914592488887953073404247332406030752910966568134255641738210358634514593280409736036097538437206423772554253704257599773725212776179582832956134668796947864766797491173862660334522735760621678273013613366060268444104230804851211976600872334000503109432037350850730113800153621992354604143975799269819926683905233227983675601570012454057474848719531010483817730579793901255988836994392145685601068357559235305625797966496457739760394141913074366128725677776964691887870841208873677795266318108441550841247413925595537545402139701389271392128595642138468073628912582727683535267547104276453096250811869330167392740100751219154861290042727610387268845101963310453397678750366587672334319715539128666688149292670183873203805455654405109130307402646885232854961303514108129933401471270355291732593885810340421316487982203261352941414844016309650222828046189838476013725003514321673299522812482942173867820391898318843717581135414096188207305935679561692322459125293150403316211817231689484993466225571526578173758802044368542031168228892611244735177616961805734105067339711577589807009302423571469042836225294467039230797152190009281958657167979169501873793416753236189625030558509298188052870111980663669824760867678380544977530833252278144455438914683031812026082318146420949303812575845130174212612151806789559889862828688033575160994906739631637676254220634046818127220523650457699652506823677054181053402235303012778917790062896703704951030710640977301897322617964964606432391427034391856221847337943944318960848987463793599330027450114622948120054116569556026523060562063070660824438455747263507272895383288244980696103924858496971335114740849506017525849215066402806052937205119917471226790307754736563771130059347440562068594069687456501587940139567036365419008066789068073314560907484604775157665859223756898426670644574269524073049737455311354506550958126070658431609086321994096612628974235397866456944380290885603558089209335266061718638820483954982902388204892862717615694905224453504354786892275818127297786238493856045175059534377438514210020431992405290411892907308713302548056069884081597319198341687530878115210098381859375619854454295181794468360221514745897651176647424022984820867020245140331312050485396559644467808673724499472111949365388788692343096023007722192933554280115628688798416206185929867411203535474696999550797366314745570275855775883135218665781475688548688061924655052388503400315914813620716550513176931614565007582883089815276447494295991448600800498877664850727727570254730799537634462732624690217743170855621824461918508824813658708003850304633835685855611545250548299675760920265033924115498579190959563329479277857820565503877136869575481951961108229865933221728797800577716905426044265989398898331012269951053781315239754055543222867190374234653185736887654432105926441240090843992907134555516291109379436358983222088790194061776204006547830595111598785814597276359301135986851338036039527566178685062075191939497138109613733572214491208192614960251257252197666006232952011244400066454378742047882797082016672367184992206298493863692139155198509060962767752166903794629270066548199400371497926273124123765694046200834722541059822596700250712561588178381794573818538777393906729862110782014585819266374198594159615013769371282267229842255212402013046755295387742578077936972844832445028756598799427247587626743070302035884054018157332252118544873285452611620054169252835696615715378861146064522839456966722194765289704766267808476750259028648657860058752144456776834492103659007254361032936490639952778016815110605397824504667996981735543019550746892739502597580169493812707939216458341405539837949290536306938367318079483013568051254138339762522834474409205787133944314407238543692294118999609121560516742675448729355716202923658069036815265101061082364776258763039291862641037617531700056083551263544535633116078545899257076915746219645137592669551479447833966640272620338023509188872763830956083421015714566753444505294099444793718102972173089315379191219064103242193159490540490010069274806234907182129299649681363399834273125572058443108899783561177940930666269333591800226133960799479841291200828755600452101194809235081938486222440387173006563110500422892460690379542067440032528993651289663475624879052795932234496370434391521037617201972476572414184249565086261905403769892351870229703857344634972109007766353999103403116338890915022638284129762969476508071326848224415207936586997928245285917459442255552870488787521714382160978563128241174429980381114412468232203081356890573985351360951874032574840107685465755514984444050837136355854914000314702372200044870763182011825719525323989427532170201060906234071783766191649401916097194475808761384748886460623577243408331395919480617436322675020219432934858355755040624693481368112225478600577781845524715422881630616993451496368545832277170393350431605545658936613173684721323284225990230386540411932168186077491479391008239896586475395767468546970644206742165055246639047489033633131272802500199905792226815373417451468187306036047636767732115909974426820855083743973210394185023583685248851951473943521221620620574717900556458327326088479761454362654961961015927352715976870051090473211264588663931112529431393132804295691701262024456043054558937263071148732125157259366604743049747183742114385965411916311397678568770837546895952997734303489638378524168059524716326187580907462376950155716423888440541095443583013394662582710489020604079620367186033324692582384462305105148676945256896095658962089150317653748375581557044515699466534876606743555217557942071477193894203215735531543299128970987196932364310735280293355833404740300253437192838405098783028896020455447619748034905667914838339729685215656384663522519221124355323767766456644551699865380468591222032727173191355986178141745118409359560081487176204156420808264703592293249012432882474144451395535596577537078450883827357385841626490247734019065551907509440431080633377868293529666184901942984925486999622430790421153812045333993649665398912142899266547410073915154922491646242889067376317483074654658457091702983186002369351880706461967541033417829352867724337362887111469370505395235794836912814758999694691288637328114731549498961846203901531319520658933027685955066499236733224340883514861973724182285184779054714122622794559247579210300670702526594068163404283165209009357139901009731434038501820729946414358612565906742001479136715739945904278638848198941189542398142864883152770141038211389919490196587822395938196471445225204248282795442951948751150624419593714827970391122036819923125071086494890944801303294879932255675511035076115399727728494247660587904081329319335685448542940367512594815057958059624252765310098788672819495669562921307449743246065161838743304742102371010476898481599164499961131342487957912569484834946990942669095765680338388660747679118149850432290418903663557723114899949947269359493938464732685549396860884038906778024538145322438936222437023212015654584473121797253415502566747092529976970484164140527025253206794085862251361472211135254148062144288830833912059987520741339216215104016061083610664582036809117615131779517364162434617814097125568411833548109365391531179379606775594821383997841606303922288351890297743489228147393706170542947784701702775780641078327019393295329232267332271063187932988395929393999737869170262594151885897866856408973586277888192929977728043290363677347273668539529084829660184926747636888346658972617718580232293612079581515331195316208658082469503534513958524975072948254780040087138992790504033831906816937119045889707457182988468464641973174846639741294661360836689508956228331518584657628929869844107623713824009392993904838668073899267192210711890312790525433809174406749861218659940205709515443051981568562198527704915533474916086818314702925143829964750198866944038837412578177005011935949361807743798083402485612333191926231476523329552645615916771454141165485161388634607029616482525430216876235817260772804840990060282506711655089940163017305150417341993051333393897365037646876708945169619921311461941779186658769227686981863783366110514679177587865253867290910550837919164778895780925989421687341759723647731263388777564619427842073969778222452692673639874146768325388750410060866368572005717153572960219036428936934647521799180951756760199179302901356638203292862728825835496580958274919641023978389793946870999816788814647257015626107729018759229912178803071381325277219609659536030256025021634240440835199727991636801116828600189746983430434924542287376025098106409295540501600275816917839681975723171765772595491172011142664056504424696961137476623314820998581004696715428700202565892590529843204501826349499256283975479004032077757690685704631490424002740581724493380708527971058369898274395698699118896949412758357258954276924890098273242278092125961376785486120119601627262933151819141062476950183218737045757831366143348189028488192181513417229862226691472813133323691300850031193969867380662741901989145021967893210004024851218981315251537458654763186303064448914103081518677913249380734939873356605653173413042083990632998410473024265485908481217623314172110018006778609393333412747881261746680159186934077110668662330165067238599218109482416640528654403461936154036798602724042348504780910689774783326036442636430216832601438594517547460383279947731550901705513629054916433022519055774746669558599752831175004681511959594699194760298473472581764079789198698335992327601211838359526505264380769712128041154537016050648409468549094850160615249795481901320436637013969289478236514883384275234283764691633863694266658832332544423504967927852582792251309261903100919658539372773738499011086066087851730741509086940357768741454184925429323167478492689835179317813996329321300662761916913008805134270447680969474844397524597481856200396903597253857135666383936569973396275830182233360332910183973881918338582962532129853318873530057824151039786624262966066319518724717039153196891263916502595174059481191873822296121155378605466265639597471604920346484836320053989744692625247851567433231277252592511780238627502728419159598050520381989443342588646823977956746258285957492212787705204852220998409188470616493221898739342088271256067832109151991582213134895914861420554956227699939030828861400475902851414386286672769614020157047322729698962398733192458392954582314336399126248559557454976540015598049507747649546404764166101769279132724025642360973065526337533782769185164992839113933344189089047858962291653895453105042828150850037938383629335482732041778611043533853249325287628792764499067787664890085372701232504346737386074909307760737265638944319505385974738444652951670978117333744637185005807147206823935145278300323918048490950541680934736473807094207326093917239558719627406454039634222925215244408787398590669466946794974713530497775062205286847990196677456690130377788343269778307722902039507114437092603827643595113076653290828961560287068237349892363625858873497381352879534022062017995586489369481196711743172061446465312644523955209031108803492789854038940086197702089519049570014105798497785777100270142933023306419485972449870806820046250684946763627536370391679155752847441706720773589660062996070654932687007343234110792572137939371359826434225025437618108869879488356744059345923662529336150786862249678648678894281385634554018251464241272696637063637795498485671792652997317717240091496280930257590925631514570127472255096240514217702546053327014290687838710160452863042687852788220490021693707138023737931132765107083786732235887029648196570027728170032078219116462433154487028364213023118911587801402756727709004625895140122095061026957498579902489580204730848949040573310546079801319348700361079806824511675874636582832310586612111407763707740309054765731243253928901946787495902550979123716349763262084746498897946822379683141731022739988327055461040865554898913860178797024175089633179101937550073497070581027442438031309347909785534007440745008201135942731729263818162771057976808456699574840293431698361340765947416736339923336047503386319775786031790499962188933104820757551597609050889225071394132306687310951713341175708730106245064764944011936951151172412329848325249286134804103263777022599122035205956732303058278915879427769873889106432534572471990390107927413153951733058802520659316325506712775140312922627325889397405256927616669676764992466571487769142228948528329588016595193814980260466255836686066472873579215053323910470514640388758149550344116358884362144078977573613712376931023137489914378572010698168970711222967102385008882299794057001345318717786088435186164221629709390005781575765981262375993148367075805281660975234088230624780174397302118032764210386031128879022808578227736632582364081132241990870823516499125687240128275502015833834606568732438881041604644490109690546997947300814482247439491238773531822703014172606928842171461641989256429123389438148888500588540200399575254921131456133336632774025470090261397638476625519846442675735879547557709199378480555767419158989346802341737316710217134982364478282921906378288073244751003671255411117943452220742342947831291540756206688775176693592255253236718090356760083572269310753564882061459815057858997763540514247977993856696705599288930875533587926645177712744882029470032298352108290758348430584592011655425704070711928793643487098689920759277152729062127307561839223928032895239316688133681766892831870585576573712487140151479621100732726960436053909278990249217456236331303375339640950978216916936699197834609707041753706207943088610432264259803599759966496698759123395454781736266160708104543340303585121212069618841585175994839879719225843680623288151483866548760552655201372193944948920600158943946865245184685095002144043502924303610222364571628163630851550140142530598441015877989379808686709585437985003003550690509169111559461745492328702265670236590279339236246403251674077163585581024640753456272465164152241246733917254799561565467050869374878969675539397326709650643040717857259589827602803152929154336087653561496431269064400458203072786680527327266183765128277381755717725075767776730807560254130396859623762907546551207839838059120391385048213936381162039877262905702186041931454108630216896912621116412980964095556203246665530511853288766852838961974892048682076206378407931928967968257575525423583833303408712857245859812610620281120901256646039621793150418570289603562528638109741151186173166265014781247580999634592957228797962833818464174733158945491082121240549523131442822248209251263338745714607696747810860397381652426437179033766266198897230946418712419828288896485306803548425091861445425438136178365647665433193524386577451386090492648802997145073491036703474444144295227628691085327294682321868197686191122102411716638426174306712435289502021491734515657662811482248462970178175876733891606107244401964987117818858804931196314888007053921835759367472187894005092112865744398186223653333188850107499420860772429890313863617248133313707633088053231795471764328445573098785640804560499670808294291108001631255486117769268654160197629066260916851025727692862257189284399075724893167823288279148074572378087420331985241332998149612427692965051761203856957060224210967776972025474042443695869762044526749790138020531103022696123701197849045633760446062572210643519593461622675803665829109034773873020872875812770240857828773760003597770734265635806148156076895357171321828911989592981288525993167952028689215377565856484975829546083390705522082404018355423152970689790780362821265469534333179899777372807988427421103295188413039727837753169709891367962114406986090269587088383881638005606047933451445368462579883864516612148751952768867631063163623303186607858556108578886596300182125336172738520435500923876824939519813868996476929060560926773882137895052727528285146746090000181296224167839697968271360222663897133130675126899618698359935190312508570948725543751225655531857902236497980412981870798162233479618805020903092714973417168880911252822814099684614983090174314755542186694793815212182236445233417410735532745412435689185746834122961967791533190374891625394693580130698146745484332433613335955872325962253242415529246625512296538916737620932841486407153411777097430160252321237430660483822472203131939759308240293366148585670472400458358680076397652040076884384013275192039190652698076775411520795641758776946608112355679784493934862292919003174851294034185688729468970771713358704528073327367926272937553867279058806624783644644148644213198788060892216467067064271146618373491277662204086604716989585644941507907311630699699931957984569469827692460271649812785199077881231193842540607385342521760536669492700131394986635691136977977344957642365390488138569181146991867580938124497528358060720802100077408797663302474458466428512355001303932817208841144576374408570152352606638602956846540612299875764070960689031138678378137854525394610332479635129383085841474624886004913454485547994669061128588915062366615613787188947263116943348696705517137878257074848503614043202532132330866111424130564326635904934201974693485789237508149024993991577708515354289743889633139061010929268357158444091695810205471868239749954052880964361972753044263963008115855665811196376984607395537308456315718680105383602786874169315288052106424241922876159549739114183014957499625997125407277342260272745284001991861742419631424551620514178693258400621670545787450254306524587660355248189839651047064951751263116397138014849575929959223493104813596852623140383088581655974640970248530452950167398575140923824917915935571370039210742722651900656829803954374554446959861402400218160190949311152550680122711277667933042846856123218694569620257635394081428988705754065823500753505634612135755477443296391428400005431460801018926667719147870615119448235313775674506323005908238302029134229533740880026701688337969523022285368049783052412279294906855474148984833997354291275528453558282389617712363151492396249486660939118048592405327512595999714334983745367310444748647364096143024715226739000531220284382024678061545574729890746903746853230718632194057763208384623912788253149179514830575253032995563965271034443981587509418604511828329794638052001402545074271300672921396977099438837324580359135607735759193093910459827652574237515012345473563015538963864880954833243809858426886451728344775670246410845417765228911156551390370038540653259654688007527547808907803091733979599337467066238940701933617989222382293905512902255532150433965068687700724112328757922995373745113728557250501317238754587226639552722074502780637836784871008838044682118081470673898827330529016212466749105161727010440749299685495905463689946987858377959317189869332787307186536232298946372014913025136149566080757631838872995451804853251035697866996206505234993410658195031378380411266265452234422091231401978736942538516741047428159944156245600780031787713346522403828240421118369391070615453696955560254643842856877936965165847011936204001831262362001033999831193255556210303515900284709905442560014288459444193333150732717629342611755549372671131170046067142984440228688936238707095291285458360568615754730305744853110842955548031236464931298236518521613080289840565680302545182802885616696334526657851654929379333476435653830649060145021654892816637101605177651057626055603576226269822933177116009996805024674138929115552364244967436132675353722635912261779866412956414118147141542186779260052830453708072381469144287513703214376072823145799306781774720891054931877239072702015502225080061750842462392415450457560441241481335102069510631127423960302478100541876795908822998562438096456661987364493309999894983457681858755528556119594764136223772396512650225864324955770207857263544893627646010073039378167434281855111620519504988679642120333682432743799359236328899772258733919919265843924858487097642932864138029364782595364611105268479766313468903849080146717893816961063312743383342901129509759234394889371118070794239377017276823734097337162074285434010824724341280512520698780774935349573515529362865911401914425054212393056391820433779950003827159223779996935759283748718591916301043866303878429822084487301173466207101031138378703947677183276347094198409478406830461375193009268881762720143606568053163761112716717220139304235378532317070366727682561758680412150821613137138337323921500344954513813213196912521557250899341423802882721273541818830638007081622556245198996101636426005522427611826868840395471246720128535622527445251802135351744532351415236973575945213187547959997540675119050897775637307633263811118269724101040714820613177254381267335998555404498345817775291506383709201589452633391383205508106293096079454006857438505057755432139505764893201592635052879443865635889084176306820135713971839771367774942359361521110163910835057721846608037084712922136690147518923166729485963887795844238681929519574804722537729670922214256752336765366229560486464606706869377395487345381755145419777446585435854464684420683860791079949186160136254100950359634061110164953565948915314464109812466544122504337795625684986810314219458621608699096198281473998812327340770248504818273530529852229597689138061594581046681088445842282011263459300905259601044637407287547519993157262452730971434892056835795026535688956098582176688661874767569106220763550022234035303547617440830739546554123278001764853114709157445512812510102842633248132956418873926027913983315115864202660575468650722070797132584853322814496521672997799850436966506361220803520919878950058837837913335530880907725868984257422244584346387715009366663047754061792373696474958461077376325230372532028166708628983117394938509944885210110164752901917105228909062344214153266656775898873757037181252554681342551447352207696450283483569412430760368458910002039308095615099142652841803540779760331370803843378710277946908809878282312487993590245884130285338915203756319257795550020369679217526329856771154045467468933108115301519255269618390601288811657097591392022963500830074841159611106520085788185530705029170356960558552250153512851782118612901297419394427223400233507098458514004601950565118116373541244957982281554948489368249447026528831668583354361800262035999217153725585246020139549793542890204239971722305441095587508013001465231602942989757045963370094056056496347429626621812364557545919087482644926550555619601784053442969420140869553474196424636577270740523663723543921434647959075218532845454885071599687418959937837534014656061369660953227635502173166622179421947925258160388728089171214539844057238712168390979753824522383514059186986194586375917147691448600326591971263391691905492096645612722146260875966988940996792120181507883933664289616861166407212385027742372809492408765343667304175215954004484211762019818008637093721465794398245746275240290440318454322763735962421130889126957588091666317108517529823506086960077124654058311047080440083956978787585929136834970009889923348109324051495045959190950709669980193287726624233481903985047702101826606293449574312671192378294423129422065523718136193017206819825056822115748306027247927436017375702314978840216183471020366067784696054315551153185355797103201801029828988538685394045878602183408010174472773694495980127369841914851315287050778135044016095360378565866429249578538788342239895155509781726783510487316001595528320375507045246028491352373421926352604746014538067581213767493334969112399589490695229671906663649529481699930245584541428203557629100481916692986678513939767868665950349929851830898582938997009849440724582265887591680618433083119025316282220047259865538738507460664366633488745067425823978834688642093925530521253795013165697040955038689085714112995993101111719200229024557346481724405708509221131652982089538663012845830118494107670892268863418908096205929070125827516599512282527160754855171689711925951531019917268893883045067537604555147487489681023712636116844128638663627245870882312297356810562349785682688523784008205070431376037316839197715675982314424006105320270145206178621570626838758217491000470183049493193095931235138854899570588355094181749959616122519532245433637046328350903289582402577746773460620233713447834800124391677964793159441608519128068134830066148992317564087452384320140941056728931826251108562886688327865072998286909648908095817450127743702879549488499948392766832942309734172358707708694967811726513939848911142561829145540097074390245579832603262762000259232196414530865918509525358284542324573884721723110856616026595144924100425749146052621742414015479704626769625216076624624306651536053123009356644245468233428741529623919065544232481925110253683660969313033351824897688370901989768467596647470663473846550907240220010021374452315368108280550910703955842933387644663589463709020241897192152234550239860988630026721968198494312902103998076713785094788234105123358406487846770496991879266047312943054561144714274555504817270582802788208782956088978916091834745101688993869571286182093069190261556154670621761688927849157583850185842804540265076329063542067884473416564860242886767180879111184313555033420932937837395238938822110853497083148506953982544948023267417543575505754370649527822008647125218143799161020956696393539789369472230289299567898447600896429565822054786560550003104819496580747705396654234164032019326063770475747882913203242328238075495186870682189398577803124768420172814900419474019678057767560351633995726520501249698743491272594352490821397345400731642787039124825574114409262097275891093236603882050538199531331990072398000747729496054950601027905828702981676975528695754824876717520159887715170326896055699779506732101093933899097528987385088457232514712174093553533365507293337157698088634581996301711806497400051251469541114008484825333836501095672431696514613027194450150810403463454310291987544795484664610254907827335386844438136531465828865237159166843683627110662992632788087029907928853924677597748706533518642508968986824296775426281535998433766569895873006115052824981269271233503232571673812245421268747084088066045475953548310093901159733796674163554902372250076573726076827709624308562743961938064190462332619550044079211780958340144315562025435685651855883887933497392435834537866791997439394590264559039921776200972124357119705203862955678751688721637966086707494426876056126186846942169124070590918295603086484004793639870232387717559592706875862754204375345872662462111740514349609723268190105642843681776330122792804103479956498415790780280757000861352230119460078122175551154137226031501160343808478360118390955829827445072493678765547755959485493930624416605278396299407133691346069196135945330746000822056690324592555497317020037756799407036908993481143542958853294083887780018396259390217721296375757159628505374189824235385000559065079464358498478149699633748330377801326632681552188725904693296686922241940303620529261567426170289237173789134588902893801041101266712841881744151301161079940092500154771262843697721455781281691884604729819626624574180525545440465230286544283893814007626576589492033362110859536786323465534565278181897149095044633985632645799974250993748019819920266392981411351452381173776858259160331151702297686737215653742379231690475247272616265193546128332767764920019425100699487205995895982528997647605351509976224499187090785052050351455774070388122700862397651062606460130243918246593900026659503366450557267171211046086967842642857308948865619340094361907403089324405743680014033835853841045633387897086225376576146779753314445490586697136288071833868374477330071497828178617729680986509715168928423420635583278107440972738509816150355710814937354048899137124929152224803624246447166477654674384613998517929813813408555993920075734109472262973388805853476740542832433220121023767929381841408645922783357552947738126605912429500050829468431937256387315872024795733090759936594104450424086660733003638806379733111162004738842857446158961570983150944244384117125682206864276127128336665401685516288044902964972375113466346312633718017195445172637651596803410744979256797013093370901392754619296960896148680139998747011498161210622223195499252672459868588765043217998227087052208435753439306072351770592295311999846018465663798956893372852096547535530239169865069651198584314795432758276679856750411948499999410094378845070142211791284791686062402977659683454351561905413315269331570400884579240118141802649606932619939353372512825814061287150040009556288432295489730651728679889266058110180584413941941839507502564402587624752676715399966314141559593480984589370190127678681606329485365688519968697051959720730874139042271100365486356057258151983297046075623078716847963773151835587718852888008389609387965935285693088264821008120719715570620337515036935335060165916749282911190684098328972210018906905623638893887303313404394675288764336072022000952269115312527122529945923124584594502218731221570142526283619628768502882346101856025074243618500195427049695149448724267763907115856264275572908465018557488646069027291116971088720689534529986999856816762597590618246633962883370635103492387093932211354147977702931901317816059511809536765189640238402002551404858165645117223917577859624169143357677765048314443910483205906612322038257931640717644454241265375588518094956759824857739001741918898579511519906637104862531627628415618906917964200236447538434416588952827958637035791679940710671606315064671667905914760873288139748757366112215129812909193740582201671198488105854573993737347563565367445393563861057476846287096225631761314738362315607748420955961496588414093610593622399498778835797108932816055453297862044601612666967106308661403383965846952490431184778134453196896999093506634431943001281874666006861269204381278858728877881243468991265768826409861510537199675712454070292566864727505245916159035118822853810777690371547573817154149158401381998267142215519303288294092258222832217821086109315819043013684900404851334046947271248964879877426060581260234820662323379923542816319054532970824564737358347958849798629717975702488939859789806033707442985107133423656104153939257686074502238161040160928544263018952001594458038772771616142563658518226681309358475885601369468019666865634533305017670164223426685330789839706994305592015393360294808266617763892007339996720622067837128239352256112361999046838335778192485318523438495389920091908589756404697232788666343092227835809848236126964579514448878658727174244119983153184708697441514891266593903956438917529010701517355804249540817190068250847935250471082437776566184503731030988113318598901571847303020078976208018972639565938256282121527142206317047727668745840916203022331097868876143669626040490930512359026100295837683950389254420029678600758301611996772153956357696511762649160921053268904817276661332575204299538478695045501102009747340527902702484530897832246618244969961519801305727921961990617706632282394354985766747820242462886558570201875325126654156195655440623930493603549007218961182564366983918279432874401980733617811649548456312932194729813881594548382340781062915547851540391296029415264424948709012589000759483738478658579906697412165467844257990642904107288736920582696094419433137308664333529151097422601919381941796370859304213905255537890744248503518758511215518236144915782069003194019400888083567933077854484440622472467393324944704272978250888027271963841793273190464958769136225738440438401090905510478149145338302819415607469397226284942618572039347507482032157519079290039294707887512462476878165930849324616102799525517033132186345872424400694036560572915927379278611816243326956336643117777050336254198487981301628921098417025164996578050599760289142858993797283059830180536028603754499646416004781053082481008683014564479749543515838439909166628125456214989619436738692320899581138678817109107740808874444186920323879540694568219618563336290544335672767372303955898200312282030947498060459573225117659231751172070033365819907022997987425869787042765943832335970055182420054678306266655973919773814064299068585586511582943896432831674880519167212373602956060591546461940371553831421966405790631893175744889357099837249261966973230798203664004459092130995050876370225209989096619952735565509280378063140629863483318185884595743792919815824087892277762533091674587012678937584049051704228118059603932848452305991833360365180387950054623649142346182648321146521885598129278935555271535586069525169296987909251530191951566312968680435716250733071453030318655535500699390152235061173001769205083421578141132027943044993512028170536444220060188485318193564814350305575648605869581464271398830370001624044690929365730405123428031886310793553721457935168419518664577799873847587102225388092147669520642222252867338674582166172620868304711777610710015602251361417587225855682808238213205823969636585666424274257512929417637259812230429713354456223503246166142914465854407536058406519530080284918857753920592941740450855550594089152229174360260173882851927489880190859960181782876096622471288447802089197466640184496157207086025490043107137023786456519997539919211547142849987855278338185150186861274347744483198745491808270399264765203810514160821745054073318747529994579490655013591876558654916124190669860231701065362863028542150244504230671604207570502504053340843202868058652475428069468751712208793222447355021170588257020782301404626601757367720822160056463571140979093283152128603507190786678121254005980405652523331789807753037799543199921368199870483942417473252281802583095462327467031463800361798537362400840173419129953710010778470335871936504141461747570528245448988466418202262850999671927147575336776585779679648191744250485102459747516916312775030476699288129170393378860873377051365441224792803263984390124560169607665386588987509996484558876695987039599090395100338834152133012608405273761432920957722515779894049037923471055469454538533608534115605674896658124857008529569478170986508079210869236029916994346213656643954160216244531747673047875526390396008508875893138229687414171159106229034928302766851499522064192671635263112852468141584888569761063958790233803858761786734591791843410871760982389390424232510680642504166079775917436898577454171383035319523895060810414745358947218818981978118591003780248775697046088393288399683193662729314164470455045065539735778101271939807384289205772775025424163798574217867738037273894079770504028287296559745928833629210403614492138820725285159848545766176698971157909422030993178796366883841702982293933421530749402763934386352333618223584122765939561461108206335399671601455997391773425670112409649073226307497211863384873552935083859504360208299651870271483929947787257908998106103921434683911881268747965346811208086165608619364972294584647382587357106615173390248596565011723037880556377742738186584110833635232435059896687383652835285274729875587634002075781643100558376614087759839161659098240498132620649114941225860705758113784494123021752563875808007763950203777509659243706269199165639550429428665030168593235498902371015013389909096184854961680261085159728577445596325327767831114458417720257044118154025427761732190019194386021516268081830313888567052725178790195229962775284027375751706500370927787873138137931806017626832312875766278617262039008903448597021314108985208294757495343120389343233273335618359309915401054864285930704157264196648456926542470219580331188856826805199455779749342810047950255351125960597506365172894645964204212752953224855639523934638154344335852083025504173858060776000165948038180295227271678664466933051680009505034468920738382057597332457336416153018843656893331976127700518213334357623711514534847138277714803066539773038229730980806268762103200121358119914973477719243134266851969586872998582446246143691752119196427884845823126144564700095299974080440621440948666238379350778122709540255248554236747031505257523717109381884301292432001829595709857075616248962568101297004346360676984523962513196665284984436276300462560054661614531534943251845259411653312620135870705709231481136423897848741381969138114822507497417156876511694365173669304429455507143878381879033104634477888123382564855209157888330793638560534323767738863502537062043193547446183977546377908438951586784670921121381580919470181783159623700216516776118082128091136281437627925018355742965730369345246429760996742659816871797568744014374728339866710959678990978250147793876280070797321258451834752305318589512175302072104264857344332446816307739731032291995789962630220209603595501529830819738600368408181403913713635498529148252125046032459711016916866095791715235203935354055118052745462112563104709478330229123202096211485603888360427927120259873811527026103333965200778675589494707216024934709090008125177064254412055953790160577478278604411803036431300196960159559700174369045713615526257394864702682752951451080085166737123359887535492312848244037150747745866048983371148356737002369560857496742673913647201438116335273517240070442003032747598411870948300511379200261313964509786369964914747331611184385170245143108537660666467277726248652837901360880090333185262447867472625740738801945816017213219933857929478826051998225902432682922062893349709687905912611061395864634735342059000657209875328881630791307079231791700391225035179423342551348594906832880095010198638802811436541408293145366167830750176140273412631147386197293806657861131459453731379016363841293209336291287633822791142112665072287747111200125536636076683361938000748039009981961441828993194313604749838672727675416255657093079905240841897695715881687961984791698066224459282404835780241948719456223913257475490541738929360334355677478129641437974510601435472660111307988811484442636434507923877910190533014851462503025768787706965683971257569862658475012668451252990024230050044492227918219216348167271787310311033066243540926561141847319695211044316977810631363306119812450326066608505531045475439469864847756479454910828542476792112657768025975584311249638176669518020548416937035192267880705815451906420672264332304696286686292844684593575837241294726269614573241283603874058780779196811416574274137955879234452899598739562884197138966066445356303005453112225956496343819593601182042187706634922717819209096609919537805014299325933969163664360522774033106884207335368327360257231984152333253017314965911973149587111843687017326609590377852293183231327385007320604884763316322692626854919992511363737000611618023580026167680458626057219753498056961546766047590660934811698324261651719135928970966515007195980612082353692262851707889748664212223500284052333672057927118817539456920876204442495843650530608202337409184673050495043106334862566764354283543500862455265989193393470894911978020131069683358794418169389374075818126367140873133676364988510001204968123569792073769105366697557293173159953325333789135188432360788735388528453231991505440275339546855595049337112474469605397878198443787063567951564617397995086036294970507652067743783046996058031721561546923172703055694684273346037339744556440571871283077525502609212117251199114047970626175412839983855058463020249768154567318316118427538679242072232617078568663936956806997587930475651558437766922705884326188329185214398769000444289566852287857921043839876770681016219989470637024365099122937449085844089693591758081860534343905610909464339079267409290803092856749913725834865502413913556788751561814795576949419931531669995849806750480706048493558134256617225402090067138194993343322937832935592302171243799500397430603545449375874672497733634916085480136387211928397990792874543662659792813014605192093020752637571933764895429808161686980174777102860181539975324649726166275397221096388158616066695072236813921315364374095462112414008291937607081744715957706133063013034111249063002315475891953178374205102644130898312523992601582689378227652199805262289508176517137700609499594457400959465197414062593661778743317828241685222664814991840551975647522766148950493095816618727993678965047944269955893044817195863529805592065971695077615767618176830980361523728961004566467330829175235670396931615680904043126515358215766248098151961182942168148274640675401757207043031122180745091580231437805390434488360277952990373426237889682856187234901863029601385361972848155852118213286309235313316023345967031949709391813957616110341987957449938997836716346490988854700762398298812147725472244977176816468385319591524857413231052939236802781448130248103388022227957923943880138317822666580358928448441054361042864592106257679404891190416186538752537179272630118433818487196012752920861677842403744461109757893568279945712714444847906892562206642498775794561120892427762357218642238220612945887714522035055449539351853761485690249358425268716203148291438188000912794684012424445873704903987687226362579944004229219783815606406728865094854798204001640614159158895702560802467067204253965781107196160783708963530509675151593861769429585625478505715469602910291664644462631035853359855839469027301007881917908493215934653956584806452102930602082992686196519761274903693164951272679962397626102316897644922661736504443897287771195512682336331741884884724645695189885076184059778347797427724426035076347602193286458793844460007903303331373027143474040104944612314595340945516487378401582350810817813506368323886407475692131369975867275779704137428478428246223710637256525244160438751485440423294004629285821602795979946540935206253856697799184742312822220969509915109648979278307811499807461035241252027040995580572456670987838541802191526319889699057662515166894607821826877057660618225404768448490445840192695035713961054940059185999453105509314515456892840070757664418535871797656503209732077847984615648701239376171130981126725134110480880766291116255740582826208630619437787476758722987892758750951869845481625527650219922798727677197490909534113223156078788668474851525856749607509587155053806830592272847303163229165986909274423093414717428693381871187053198404491136497754512569356768148918353879000163139084189285418405147246794491307962274223550933488670921974761967943086153395925313113771102880485112676350967409479007862639933102847267457478561274041233664890227865229512957312855980971383237939356376074383251034056063520350222410161743401823770151986660786965410675907997916867107757034131684280232050230447027687861786756415921176197315724959013367128270960903568247476029266699599072110643373859640686327860350748308872218473917910989034739233883641877978399185308887929430834995764528050308067254908897478953512428701342087568763476139113028587342197414444453934190446668110100011132786277900452263235337429547628300051388726176126652053556344149125984848812528840827972475162991671904287276714965183462361471424481161044565216628365856473677478828467230815635006275298581669221190514515787577512280279660691382695126385747831537610807193030437062866786796451537704900168810625503288556894950467543924623689343689931006941058165255961722832236447891205150112525099040986100460360146810269199324505454426877362973457695668682491122869028840356023588283076687223188451992002863696953830161195349694287300644258626500162202055367057041564869150352945795773221902249572939098846246324855623284460521486287634638338374061326456438218074552156377011391416622186838984757963560005373788061262834313947944459505616138974807426660618049175263792719361126134422689317251884593204356368470769345772528830992806730057538698236138103734397587855398637804450602790780780401856194137514678460026889577751093805146920939579785236726397489757243657323789505176905060504578798998683550435987399061581672154217072121790564229849811049549820222871670950371518460051518697353131718820531972886815823421404293941045066732516757419301083215246288066777993346775011919424041661139449609019201590496422627261246879635186836993509178478379687293778189330812645722898993677725388382685973283422016797861336515465553254394403824395173895882614147339899611553689682840069216920727660748957253600129908205716827377396289091173351390450340665186486330208491807571860867963204224778278092849195961694513727797114862036059789442390341942831372910700229943558654994500077592714226539256439298351246280763284644704185224687304957197027002993184556571775353875756021421677433349244208502743312809934760799634714460368348623991780098096877057964093183460566243516223694170484153770900783409554786970786830575894464338862572834890630121013769568529123037185669157417312798983536368011656999915643572835771055388758607799853710168163093847709734225170533462037551653343454163971051443691429763234692006044418872893490005500926796032922571977500394490308424488183199644582394905237348925540385618685812278449087434908835304618898872361658021702202858806279128317129949031761499763062322005366685006078490060450184350347612277859631908445968806364450429994316133631157007844363835576916334983490566386342011129590897960305601488211867942341877205623024768538143340160187156157214548120337389664856489978039069823090942806651893442229552599206475242747813584154663976127417437441907680882314161077114347260821895667500714404294299901087932324405828732516636180240660671195136472600059138449299153276359025606854463717873353684561729148438561105605467791708364347031603216107032288994529142666109913447815234216996546173924387568537259691368245644635759242834803331976429087385913968605703080473219303901929273949087042933599560981541553707368477400285478056307100579685677934443449850233416110448426549404349360672315863443674809715995587025474720411683113933823609896493586652967348256704947865685494588451818056261464918357588340298541918873243914081619116400767253896653293407139253978552625444147551707867249146018343178869294160477826922629232976534539073713677287153760552133474487435965653813364088285052382620219366701348059775635389284579591992721840660075962647746806814825613502655952872453804985086898466277873042124421861204659963276514137767860530167247071448087246999857372466067842873328240902662138931377955400345063384871140216902329396179076439664625817323987471050011531016823333498658144073980194289462687577440256188198691827839140320533858456997799572282386085074008334332525179054624730797027361766033289428070593105777848716822493302214775309526252146154085097028052913383643895924560565197408734049250908888709248467049054469934023594047473257198580909688089639407196135694080343733281775399039473022833275092964628123890001782959785156412594013016664353933950727309898650610454111837694454448907061994566792184647169493734187520273923265893709201124086049779608828311277839706653850220123564974063802805578486576196962061596576281693559199275215356570153000732849809673720985225138588923338849355264073895687600335184248210237143424564042265009694763526794687014454581037863698326132343782543304481060406507457190421756453523918225494776613404506975902716624846427556398454329943038924765373912716197678153990698355693257656133228671812037653318022216980404483904186278327026055795271702191367302355803827720174949234358756702368296022942912208214828895980348621525047424240460445557944894080961896513864284473647626426704606773930669880425133279566937582251054006862812499404567103006636392318278151879084112376873157916153785126386973461704975383592297459332334144657881402658495100785577978795863714885289564854097626300001913846967994811135588667622164506368006833272826467039702583067386039457589115021207792520176567674426405196047984658270475456492183193677832229812064349645843104979482742177157976266758084444596026391357630985061941661178176820927589357260211267758668239761694890868114204773042588312828719194722771415707146445805318754827852709691094679045947306828614805010338163455665624532232101394351234052253584768893207784463605645511938886280585889896649647000397898016211186248233942973093258958177581498133020494350828105613484054531575657786691344119168734703700811808889122498399326058608212868683589623245472601499218052174047015130200947111162823624178309955276936317018203774941455495164838647859887947772418916767338777029164457389050465639265060006922756888468616540107056615435465919723275021803179993165991153771140164710746387145610714208828223473984581395472749227608126720023523897113144300265109009951195562688601998068374241708742743557796221233472855100001959936867107667251948156598631020826220236690705513915300220847860465569560522920245142566867706765171067936781152349124444467506924066086664007172117562243353825391083138772926749335701420846423785148036785241542824390537319268203254372369161843026444854988755083324851321342942386028138893993722878410145736132783197024292173605733278026658137410723672746779742658756225543442818338410262358941750047682558927454683534593857391715894704073989765379736832612304214280088136156083451086968977760842458007211956212579604102715494787131201017092284166431381254681561133345266588351985420361783057863868718374907809851598325715254337335206260079234651243984046808193791133001669786598744010140600675857686464625207650027146235365610918741514277378917905629163398247956477114944519256270856352070218812061342287349884000727411065321918827167136816948758857302289925269824396424577365536953655323836779619634065337388001575525613296041118444901151074449096532833967457632648664422808657818694226701365512455097757195136318697354145030718563528342178106387693241514619699229871443839892949284115200257217902425264063683416519393440368114318364847173069826580052095596477714312502339464047029851314514469686020440089978740647426863289012998696123689752221832427474921623438943170688657397459849846471654582201918119449626714964796525814219124835382804877792997858780632666865707690515403480368909285384582771042447715025592838426692457099795016913762663736475069264384185735263517333296083170313697359713637151677717195719047275865889457365691203286138682998128798810846947727178970167720674199220421074528224075331513985386690000770428721461038653214256962944583059784996136677665513720493254349272635810013023584603209698891385660375567605004550525208251186228575773829421482217174895334124911457009573758356715599251279983837218672052330723757222276391397315782346755973107537072748199176297730984850966247216576513251640985904574303818696158900079277450939650932575048108200543097721352507034355708452612580618096179740715156580405142369622555658699276407297240059210274848954360036774227392650319853856150340366656589866425645685338701894058512553597103246366943678175979412707362956514407363647663344410627520574047997668584945198942102966874037307620730075741350352661439424072284899219488824108070014234788914830892638219881864778587132842397656968434996713122200220343617602287839926866176619181766875701192732292434654303657776890781495261759411057874274045237761566587113380686053946000667149436412417849806000150101572603378150635287255796121413183260688531516032685841785255461614676224027824337676604549016683850993757320471249820243100315355683853454618237409649264494915878084257047759571888217374696618128924994295373108598364962937619881415668735568919287520133229359340282785480259585850717489071658247247858922629831560466865842473667628335749947770220608758678108058109776543032484640386045630735350365449691447386122608851857388069481717091826958199801562331322807448195464845224340281416760882857671073507042165073889586603740490869622478486906268435151584172338047263788007682817608834324921909639087679619695527771605070313617990958300088424624263759144496113171025208577204104736477267651358703140503086910252605879815176866909908809249601769983214232266649839861448404363304877190138775923194907253866917291646093469939897255139848676149671700797688837550479450256109484708789399490004293399592172980990464608319263730284596745997689328671367697271269792733325697069014360847809017099193414842334187123088422880148667359517647545897962934282667481921531076523661575456908513023692529428929004312467788142829547676560286603413630594864925895043962906253903014835738730191446933300057511840050700651694741634683416678514283745404212076955359361326819455595308192172764129323108909132959126484423470515901737510023021088923250323894067434355414801399915744756402822923593494945739259696236564001950007811438788112462903452921278189764074630881262467092655513936100445968407935324353094832062147749789168958493958336514917389420286541972629905111050732884394121428473664589546376343101972453987058467718602655177320687608410186756325312340488490440868902185610519835147059291591218240382859387310307476636994721764944927752584507198912417566332586736862670223741162860696627265426754540980311627826604218938646309181200746069134371468816018042435740712696429147763398735981481856475270919526349921742704588615340162916449043484417250824174115165915182926722808734211388154049652816996869843360758835856166159553077139054937558504327983364432113722927973588857230000696124424041504307718719039479678180105265556406005324714059901442590441121881767293527048215737365779196509407785140909992859857984621714265583917564602242264163516240554620650848196739800873746498526082532389026048457937406186217049987766931000741290628397988463008131688811667162373014519978549706293649805144782251512568376763666501654308846926714989811538930991911997543386378905669812956241616207392602101217236369199550547476229382274407288877983898605171791227442990388270816978844603629827129088332036886892242828759203481702952991450653940711982031781622480442530678278504141067314668905601363126403015203586910144464517611416424479252826545516253479662739868513250582491692471931384396754646430116436936809944050701554839873412878367630928155790750448791779371316905535065187187156720075766045053008534470876423928176851060796288225712165318058231164177762083749867752886450966710859169007083389233333786173261252416299228755876108535686181767325269001487904117890326220722895515901552317873747032120011889642012095595685956452523567402769435000054659737324846808426690679301251477212186158543457589866720813164535689232921049393524981621285768933059557008235771949476281807063377769358064659116593371998244374046845542147956089176328799325254324303398269293859837045944008012908656022835646252828970591766515082711330814035751446430378708927988262666326870765817651438932955020710177327084675680828327817167149094059442028965180668530186917176645915305575796826145408430183435387199612790429312905941789648042145527455156928254521956075838133737857186241296241687134088474595665345475477597830429803264117671483287556991104127577786617729449442647548288052788354540445768187948714078320067117073992790034162143498512245381856391693434790183392184902729444404560292399307233195655472614500015374052489856319789954341382574644563379184634274613562168514398182722249169397919802634939294371100915662046737752125482455707633994412265398625481848990810530427137430376331351842302516358156918321946096999019157926238278567836488477851463688712466675363267655658250078197965726143503889279369058741510223499233588182282602634872573250807682164992278053368348825649449777144665890959012449284311543564503873792213418376961364476092691102476090602003284876419447794975276783334613693863123388566898747114393679011907851984446939572662840060067038832259564096175267471112694997380578202739430431333256712848728457478270668684468335380925953895315858343429564773232801704719286556417184299434256324842586020578943341809399213765955683440933357369236316589292823319855793986534062190762179671811637357580307994461371319505101086088458203421399406390397670821236317767848984798940112455855321994572681373140200457475616651919242452469865977593034959431148567033259511660134727035965685443252000958603633499017333422891560058378756122517111853116628524636588699551039574266706124882050751878314947771630326166736176687564313460349972306717858925340069826439608604354024739609181530380144426168645519285327521256877831711628452430227631586290101280069328456477062963182344279099896114680868704232786681796390847165468042746992887755305488477976853526880190447779165618671396101619749396373008696683303946131990995565600303482841577845187995516953847345523856946322595168745519015449982244685254325729827206706880762438815354176042563859553316635824409974619873788244169335968842005931930761299473110252951221085214553456121283528125982858408365638914273280644923851479444354865688101174272444266116297341619324012019640323940278168409712481447272783483570991001771819112737156231254069948735134500801515188153119366921811806008728579323248031828573219156466544879490186302250007836827376590858035639390952915653475072673736123092615276877174923017172138136786077403919326101466291712577306359846988149840363037824294538793242680113844565269390395678484705585856348941847691673286439237008090564144275890032105997271110627883710217443538432595210856038868250469050144375201069342730384462203165712366929387617145458104378514767865435813589163145663905905774986891094619904779994853108229578141101994889730136845692231533412409419966378370020254552251657650387825606053626446786086409153280748086959452380399329303138528455665372795203895537535309687697714537667339659262328337330125709640511090349182553558002145725374762663747541699088877759918345714319195728451920810864050156138434575753073303750676677689038921460352321259534535722347493790809747614901968726890115595111209667305829654394296405516179291395355468176479447293724295501934745568493928055566575169933120231351232877026382168590489812007649914291909771435493224222975489663220177316693422369187693761103538356499998483556036571005213241821480479827239608165674190111925517734146917698660237965452682336232803282423544330855307341106989003233481639667109922250102688381451054597540506064596906798476845876297681974257577707122042331434540429111036141045622760024819808646600208069549717614041564971737416957553271234426501381369490828097323074458621189959762141751616988747147736005731309944401198610320943947397363673921222497675891952639395864292992526368665299795621752876468565908713205631081366540975625059887042405783757853857723047040847099536415597014817301802627469047814430064744226934729006543073274695395529344542767565017607205431381666147714773760204375986089929795096044316872446868079678517864734467036379399908901967250325764480676029511953793100980077353962956119060327074457205998449731965381961416905190512290758591855857221978923607083226972508963867647189898435897281696611755136208131382465533974622525284017218591506967527683043176160073945119667799886491097772579202721370274654660956082424203622055647560261426367974383917915324745475116111114019274257603893903463253939615347672590972963636102912243534472370792757842845440707953651075705975158987887161660814674532567199300060397571202786412965867237681260848637906885014643436874438747626773282832921348617335437921057130402658559819908394447948969841003125766571918989908094816316703040898932160929771680307445915920908636565636553116629526778419449269339611965260009737789001260867520703726449403371596163781313685594237666139036613319801135414867912998455638254032110220729410054395284581202662942046076028061765058391383637350604083157916648552989655370477799323900836998774232933056043004537913217136028785817455381423974988163301030921012837151134760465785970723545693699380434838094508425035941457493619625379008635947983838182342897321274356036975260413243958789474060008284921529849341370665591321540698022881054655595630466204939358479213569302626551527961502012194396092352836834439198780332513600365857902950210589473542076720607904303741846324497854328188982595198903633511131248322313972066236438430495792887538554595537380360196621640055961850072373593914984745317282518796306205428843114654276807420512911079101684231331366212093036298387623897938248694894879246367256051376742076047943868783423061330711866098909758647491830214727929991448499730401201082644728000283750980904048503370635837967640996813925998497226832461934877921383556704843184165405270955025420474478028824847869662060213224748840420407401127478525978409793388151183377242760220075433726249198172667126928069578276174655737235573877854665362719700072581399209690969280069573584682484087080948348229054556093612337398396130775655516591272094862187500875529427459090592784621413157627765970729420384641539055581250635540857917802475389247441610796541865090929484143890483427977179419432595763677858853355169149707814179821293429354796885823344610774434505313046576471415061815342715172637909734883612152660453629594787425782796702645945429635419542450330700947810897063781331773590768672267118114141478091105804937569123260718215067471273733304441403884618040929516756447996237310423541829853749257782047885692682244129906738487976235676155622868069112218125110616784735519006476667110403416642401726245960239955395075925700683863427666561468630304317765479861992044565456014138981369366309354723093075227979762002847281571303327578222652722768176349833496690347041125861122026065831790027672024528651173847185381056964722706579958889047200534192843273093754927916585531715901282747067770714422400676113773414401819690734619454650806379507241715907774013958518544465070336794087184856228056689635649826652353095591249586977370025171074867373817496929066237275271149212701857018044441088589540733787898660420392484384377795343747897319367708616584467186649194069560956844944346496895099240066045488580951723304637030678922529849964661865589336930116532332520785785669592414432960455882860594596114955262090910303816757503811282996594642651245732438109564408392275683130507434249860315862585956689677697723028873449726779499047913706664700780463999326119019818264158202032763928954622329113266088202545349799771861218638419778168150211603854460189431434704085299332871094419702636637000261063189827127886148300337890512516074502956160891215283665539434435768241313733741650401590096244923662303053785642035125798033348026002141194322134311639391967466383876112064604798862551326804300207087599116234412617441272077794547630341173418389174549181863955997677898911221884747886396806371172707037382765344161344318681336576299623139840456448435606005187840108804417357408109096317537690879900181964512155511500054202957133451196237665297044355672724826247877377962517387227243284007902204004496181008666779629796819230294041003580970347681267549754280127504753167639615341623083405232449830331658587382347889884622483682525480208218428472890307612135566246796625523520811058825659031688721380391693472564225121577870029838949289244883193191543411763987111992857552513788108180784618011928293076700718995227402443146069376701655589443621482597205558730603197120200348914699853130314415027350932528774306778368201297955288337187421943307724854384698217159494522759803202995351679155976409358882716571390358681978169813734471933044738568787625083319426522825318629477431580655283661224041708548312057233725403367788861343758240245125513778059129102834046544108389600514788864477402360544221296444368873390149939976233177614481317972528383390567460966460269142307745414265853398494983606873532757621762492094345516390880138493891443067896573216533959502416317272219635867283751893440319268536456569867254701996061634626233169924603421700906331005292372683940926495633290176079911029371044040536103715382620525478704104226109887924989177348205168224941747594040948147275188126176866730448814102560925046697868788802945992503189940218160740296444259827713095568910775877654924568709246004744569704380873141056183066833197483724772357231735099799331527100313229601350210099617138641670198432017820549251665924736315254606083724435677462934986207492175129545836991506689850740512611944439923179193026634510336969862313977524267945618837300144105554405406166265307039665545987995221712883096015881069249908787419361577816763607479500591348530984746595262705565776120191462978264194052127507081970632592177183013827337512957215968995769856020011850881748575621106733520507054568611523439983975900263543620901814077744635238519408415087241757555329819720309375020184964905650011660240474966013325167225131652887920279848883782808386082219887897500170063835014507018803130310172864693931234065726514897015232684783218299826621680024444624368765161920426254045191085418241706883047962895574130556026720961857456677948803109173285484375572755319184334890074806690893984981076734354909596279185574262705505676607252199637735372110345818037642639256119249689413105157673691811726304377015818093776867597019686902143871172389542003803279711134407834769732625926783703363571279097331683142600303303077958112601544572890115185920851948309659239181410776413313684764831489549297644848484808574393274330326556728819654186305973892476660450155264456592490082769006065271436360214617383469267229429624500553510178572828916662287776461545204309758711601798763635354159695907590112874692871784914496608968578857379404951483735699911565762087394900578384342453543279177155822009798521277854572576603585422926068138883928436429517873432803187229759507960462491892031668805316092570306124660228347788694927356556125268618953115922411036769769252446187758411310994365229313101272059471608853469629835601919356949233495903730532953550200183616301797592743144072579796034995873152284172928821069383253111475045418267081992611699593372553522482411501441231654147971126869699120209293241454274756546180613558435881734214050625302075673177969882177969400832726028572197276736084350053841974250015045068265075976392997505134082841234937493863229828616748505005235916232189704684619436798559850394235667931715632869985256906079281861744699577481730865641662905179947126482741309662289180550887377730582669550086081387065439603485689303612481867327679895748206383377863597365936539853229644235939393005425534909286699286051276092669316170003111836576503995036721501474523326152132318754839821932957116807233321897499036322825092273009320880554275915106807300929355889450003007052263891209809062785003666259217240815993912380757713786061062328256371414135627258830634966904161508619656181575090288409093974590615838273740111666580229163203013055691721911726158840010184716956623566108177769141185686845963083674314928870771220886214229357126013010843654594945090548117092307630535962365944879269700858925774928406988697990789214911438320071594157799807560375532595388581921068559286583401860614906109743689419198782074820926133146584056111077943989469778101829415022878709949529867963637398767913678230210539954883156205160371449530091454569741912522053940821970022427899439896534749954980222519103600696941061559850943997981936478322992428120918517583927909166716009520763533126164233314691925670759874280023130345796357005070068906037948879643762186562422195006779539098898371045471186957909150943298950655921762759297448147361888691724905221912899653057048990311271645057574739598868907203580086094559838867701609903702496017355752743396042604370607455388775621886950944110897593125060347232462427362032602704252676289119968206450263864103929825108315684337119114017796446256276178799505614002908202250020166059936371894720469046145799534082635327189977406649125652111081089422303421633554250336190379282292633562382881371706827415007600639258730692163457355492523481240001089863563306117821437696972675731053401115862551812764479723317798067862777188230830897756951875690354394179901155539148486018238728600695182613259142343455180767406024775139641226016388293939108552156286659176936609401458282804549024452723748935213840434685697212414712805066961016325442935703426342102274147504663142573090290206839786736786157851758098289197578928412295681015200502771363411146930906484389843267916446177231358748330581276092082825659159162366235261105097818266689438652262932682061829801630492473900844065297171602240753384697547104744053154697917602289739993874807858848188255020765084048620439766321956695764718035797029847250999587716546921807245310280920879713145080946140040582003387993921635820730153101207824172975127497449150622417524816238679920360529609343923193660196845907755651969358464571583667582808258132819850462542191107197244654312796999636759905653365601797627813701069012832848661482734242335146577377643958047405023731438601332218855295358187396424234667614803198902664491677876399815849741990911093425102446575779491868156141208993926770938623912434559504121171406684989129182008378389431328744436490184649356853183969540607290749928757276586993999762216328481426671536140373957616268974639532190638358929438616873021576126252587669956370222782570502573063304093819247227517533936317771828613939156762469499357099081379678829150128080299938899564488935584359332621902375826520992054110533999168136401105440135082527324612309631335997151868857638384407075390767060213132505563838228810037964781282676719638712726469519920386825784050155888768065502519505456660879652739967931623640990466527690327483126782497233138421818269644380278567181587121926656555529209072931101238883827232610501339063387750063830313298228823909005333663483902370912975578234948074472610176957187031046159637824508703234894284105627005151679396869679832638922052989473611136485408877955621114796003814614788996731446866488992320803931855338944465591583633782516501207492514942901063863597277764197063376907559204728201750475071712580676845020451706786795075712607539555204959782008711653453119239831130111291497889059014626341598901752617721243159562529729860635796373039519850164814828859005653623144957588256052490243589487052178541415804283689470254945364851457291873697408526524701766550723821609737226998586881243205511192286176205496776169042946240415439005159279039733180072404381884438838586029854654984896536536371106698733609271750561262547413455066399320704178338402880024070120315766017012474807955852381882428153481145369147295770137796379924179911499676781865431622325079453183918483226605557387038850785020789559211013560629390177168167398045898128473697326333517059520918642294266546683699091156816271404314103780649654011803768951813245840537958947981682747925891452077875837839541537791624300819003686459097077405989415059306946198386657262888619836013711881884873989145607851327534932708185341892615936394970899816117588888850546562672314385374069577502302981104009052560490322410886191525258716434628001670121697410937256911043204714049029387362549284497398214254694830073028669085690236456598668760362094200131143866859325051614045830379575826029875033617622307320540423714336762218095595897285292239104337274287306037901527553030786663512256419570370512149417447935166698481786755480811419989129081205109004525149153059707335701593974102589510096002431362439375840113261904192395533074533484497379476965770243775328063106207783649575621163362098650124457852231204514589588276755904358686601936234448854332313654706263987192426750767222581183823220139874551073417834160262739774227112825883025458852569904803411501996790881764172664338401224525780789770823004768155424503939023429281702475457186560825294272645979847947127287687867857820226089233330063639304799442464250238356187223156188604317052156214382502467238128502824948986282583972067687266919819156620502862086422426494651373231326747386781740221773040463307522686191592894350743765861514221188986826619741844708714549604013420831444697439204431749268609234541095347532273112635894402840372542526079763505757985338577975194151989041168468262562641190779907709981865664575634424613281631371180367803293017327886031456788510765521400835084725107666809570610653349824023692081411266129860333831419990624315602065933909979848857197765477157848552753845286044620139407772177644269424447557516621136981818140110963307016894212787018208236634789508005774821958649245274630784841557867992933194139705502879240966540129165483069817955985078071239176277870076864834505627622353273240567955968169734209601644943730110355989258864034239432895784499896502581050853955539250515309400824709769625649289353865599722574699328528449454987614398373950202721943223893260955557867171631658951255266085980515806840799407305356168097072167882091530211948851903803752806009079955930478617345963663866146976492618080441959375097913712519453272688894781487965593602628015673980271719343853516244180730851167912362553760425580029478482935678071848522970618753960059233418089856657555568773052117362827350453336375193230149077507447278787272131106677232381813076316585696264551055209965238683548842867013270630784444380514934287866598411277865565497630063487593135169467666416514122521394936777113504798869068844800036560641148278679344531717101905681823448186733809595671339737994794565878147109843383647301962339510504371252474609990780950167503050677401633130606780909323657432565997966642027718888286480179519323160388772477957287489036905714329263120910075781084313254660948406110741053453973115941143950483310110101373105626576626181645377420104224132584056967730927454671297031247466289816467809935110135048250891509301591018611848742142690876530294448539644699107386655065281744558778572213303964355724603088771639524763251810448053212783986985538090567260789796389481874609830574418983026822567719811739310023795477795779324335040078992539128519105481470961606500971387277700022511912136522300924248103789082234237284660254239449636189030839301748235548822994960486939551728596017813145475773389058971765615779505430809924592149932198117091803983710459355232643839054125985297010241799231795678148950514765801605152187734576290155321571225177621754849137660564211531334605195560768457373659725206520812932654257540809475087085007509838554299939838353935319509257174041399810698703655982914023774344446169667167683634411549568414637601571605980103614724027111197264743143906737542730659021346952068134844373904844173316667229910149296211410071641790935768059650740076735002870254508700734679946342212139080266029473449063018369331088986837463113903561626608045198769250556844527849192151871131101040126837166636202266144911282904790326315846647077963230997387289511944794036352449712044613535015714145070330255473778284619463566968008079326719965719492913565581527301362765142403728940131405546850035167008350878831207188603292125075965110294897322937622562865215671898812937054636623619944292539341458221369838926689385465803614256388744861180261730972447890832952645020787149441249139074524216693056248430905067797945249703469168272088750122056039543581640068885829219350450763460248029226033285445618254592195861377587434796520295765529488981228386348411740306392397943069862715878268868087876551032075771330521604763709947753322369964157488690450881421354321180256835921917911846930226900207926613643118261159329953942598065474020192133879309652774060616707098257550768447119920918956558694575408517527050390360269681828523849443993321011313277526121947688741216313167081598075485480908381560192209557346869788370042111594255289793312635543984757585384629822108051661745948332808663872017030895096541217005829393069485041244132937754541923424080595482014585284104821375177161266235446356048405891478613414234981123007921515715761603175453274268480066577205800421205738197213034368189554537722143425056516816382705864812720649782602591562841426448552481723068015451487623177357073610044000305998693783320555368451137641267214419336769057913479059314786567539601938865541189452584795525152472991195369601578452857495975964954103878253188780697282079546498122937375995627928427791300481190149533053563509135825748847613254274624095238870626687261930598679473843538560204614946073368770538572573382157934157133929110316288076042046645855256124418897739181799068673965842218312190742311065380403025257603126882012738017275386738366619523286052190879877771459870783253417944005287827028088142192246059253688991659884956331357035944644897076749011827527187687062357983220603481863039667897711388397812752231287180359007440452545060616913140636630448557252032820575740613302901820903340729509470230215426104791001156840259128305143645327922600270996187522719142029459168226341815957629874782275536314552717673014951372600420800462665967105040024668753490317259512583828678830555777110637722132408119059410807027748925766006588241028782499441153918043548827989665888787763317870462860851621949516085774410057281083384010073783118168303053234576575469748188848054365052262059427697757038005050790792281891381890239556900031631109002733978209464551231145367608212870194604477328164594057264969743989367307603725436268115692312881078801640386461476132739754200656602584149921822583415057539800637268632475366469687546668239016355448427034355150582415751893466602483452280476660182974320352614858869786718034322692236344701745320603273189500558755197768879299832180394949003763436847401241437049115235968052025302584744506317952670446414779235999806146859320400814407419444349387850726262142720923476841320300037467190069770932767039177751132902093475996217806487403054772207972503619211951709990104033951971646899093707189177359871955015768546065027038574086478229715997330189968447936051822469613440943606839884894088036563203002264996750674279056056619726225292943318877690828125420589643838570930612730600556663960426001472138330240059513802815394226794126602242782530146311673540117597776167459435880188056258767362866226983382909814938496581858342317473363997869972121006280922303768869645387410855013811209802848409907019483400727914116338298584894304190490851703699944184575567009978730918963219132551086984300200446046197149079307694860556204653204423566623538864107545510491089668437249580344390478632884522808229311347848895854184949185706322964571672134397694035123252856747318394601053694672747417530610029331705187216249976168442856102795478863698219102825319671305249696139378422323015894656519209029810354743063104732443876162429752216537702919534223977299626833577492477850973711443777986910363796453915604763790708860716090351363676957152677260922848495191084869480894726340222535959027709874702371037272779871989210290842284505812486389831501741556194946601114543458164140259661794167375917036747253736115678654395245242081432043896969364377329015914143913420010995506316276376587263583530476586615094096087518384574282069415901722789665479983310667110739261047257678089456091303165766348446503145423931598557564152419313229923992254909591153671301778146870518027553211315084755094746078844986508721277562801886358059236602035708445652208708889478335322142408014023598292081378266355686472302652373219029841894436268511869136524385210421198850690031717297881223303281493825368437922180293732417447451387458904304460533035063218742155276175474984688572734308377786814209451996360103755899910784616857100832826027853627017305438018547560339349036056430813315942616629154409023656602656686464245744010585284543807390493837652336126764646454744060082403031032330640263722668142423942506739555770791025470212041952022605295188356269247899978515620905247036266000741460942152493310071627494356918051475264359344144236275862159095719535422503034743976800290133765634039982438005655720050849259187728496251937432335711935787703278039890838341529814725515119471862928194135007350733042536295427076039541370422708100665248250105653878209757804577904603473761592599053808966087642589544038481518025625202664285428269868252352944296524003780694957542340996415756815457426771934298904435969672225173107373524711638421777705546872924150387672929268361280303020836522071352799947566854621657857548322174243950721668957367632733699369649386532058095351647973124033034155184989768001318831893553612383871328843905148562720709050001156088243304254267019402261620299611972887723666514665516569500437840756005375402565319986449476199764789717013103725191560455805155209622306997038500125933619373679693701661204090489295661799166589677045155114529812584084932538154350750530397284085980472462779560274209681576760722297024562061248392146202361922100428772304740484912576504065042941134423891676661189720448381865442866478407491859702702754596628191120254380316536886702341494696008870725247766094593348546752874415184326599703713764034491512396527979990592435234658819618786286719016723912836966069866295065615230372528053861660979282058488241590059409042220448251589072647605986014249955328308064911438847018860041719156550325089327873028729491673543370881748595442246828927419361943047893674183912486153472809034945727729904919831869219065381508767292743996193305718685560998280674311641919072696319528429878780002845153847780260275977676052631796041555220472728332479734926552785168047148860923084546751341147126593692005036522996892432828244431004213933039026648689689086351646273682173869312296107045139873139263923849569463765904421496293690267559253492071876920358484975033686790499466231657033814722240220787023991731101390686394000084401656368048717715752893668867788743148230139591468101008969078611132703655023118993201346391680864144683565677291817211047076594895731409314657212993910388938431846149213072069126699527752839573958341938678727259060912070517586658649683579608387851286208608788516774669226711201461365427600217577648501857845547047630602585246754990325371184661807093840745175500881515079191782310303588907944638562304739875313215965172479982338275497920003249705417533318418889332522354827495328141425686786006895320450677721306427499856238804482404667641364843740174968327610382378368402309018793413772732851733888626948327276584351840699543170709839389924286704994265986256682259268866979563936727052469742110591192420461805563420052658233096459983740130960282445884674534437379940133381401511282545020097170490840411170077702667900592008339481667650649406006073526805741409660403673314719081900174054238160210557943295626054770452802074678780509997078003255996435158139322257005050181627633037207771123744598270911273697102867981261895908606023037875118650669331541992382785132117830332958224904625780856004295592894656193285020294673893170028879916365707134523960978562066979995635112155585650369327949060719281463027947912115733545010403128751571891787713852570296826604797592693838833514569709814676208123461427898638961988344880896331133052123657022759390852856193091528764087835400951955427320928839185908042130751001911007036147379471030094651310975644401025884405102268089223065053474954637286600562421261820794966672355751652341214720402667770179139948454407048846703070452889496922583295884012160478864196022243196118968229014559582715162060768511823017667788313564787233703550524862085887957794584004600974576016175415648832766397103991727875622980189106902973989078046005777265382801744058726330876803956400401631674474617050330149628980478058882797951868248940479208063158636090668145431405437308172315887375536079316075270958122390023516741874495162082286013708388774827384199506968370462084731230412241531870828295045291802408978960767256677667458479556772294536416527120907116859910645657020471162681998093855882542208709775552362279277144061704703208655160673673127926298595417936353722950006557162998776126011926063997620559577885269087808912496986957789811502692362612018644765921977951239938002611927474959862219005378308041466748523902161848156461977190263879189383493998418286257281816727061971843963422459632613649576441302619958431245960333457494769473793278362552356167579285551085720386982699456653988562785364912603736152022147454367431905742540303432697414560792048588605268654555614118342656083987402809182062964799517199544394519957301443212257926603788670317517867545627665598894833203151048409112084295164907191759649175492602226242570152277823324001273790455762632169297763556996994841861811592931863482819593477258159738012748189406255645266369519272426978018504970089320269678049722661889166681347939616405921017323034159267963296004856168893160270794152268244533870119487078664058645058085252695263215603191933808153836631467738980824231095582811376201770453891155773676693994824275032124788868989369691857256280868347398907588274818753715966538861176047176565341541244399478395109907599469524703861727270174207282957031270177460435483875917420988332522733671629892922490822036805658880653787131132529355463534693384380489767120796982368206218457981533232516326047943204953439776509722524645151820896998125684819344011407944934260444638626455749363114936520042099100676584677172508698010931989858626431042428644966058177553142385161470432003070498414713325039456618723905446659613559932328720696877754889113682673149939568108223018818434879826747115884040186158065721691876244799274616111397240605909947284377013429896664959496486603628137626764774261823179643522445339503957681130841463174717164408805259044458048183637556232131190897185960543673076527554751484054214768851285567445153429850375778791642407426368058552277219400920468265738058471629125772592873404946499656224091525418498637295752291388325823105557816922772043254293347274453638445491083939294903463659441413272073863136839658636160538212139970844742238069441331400459615879250155343410564944712976567680962215959469387627035456363428326026303561999965521101465671751167956807729642616130778250966882449769815109004169725209544526212121499717843597337267264266761103966016659474606176348004784198094718901423115260942821941582622517667624796213788432639684506244099257769976457133074734353455906485194598563595455193180684124005392135294228609602541488376140518600967916236595195670060894434766425188276373286434456440565220359888371618827605928033627971792094167246062989422968433068793728473054147684710111803759892249439363745991256014995543629202897010404367569105348566433824515871484850348394312532347665267453296335650598189541676377053035840330858154488801138403846802117746464297984744942600714731438054538547856115522188245749770652583412427928011405231226758794592961255434670465476705894709443854462010690279030163202293584897453083704173311266169600003525565440976395334848902065726442416091063886682408413489553877475789776178907407663348062058367077994111089555364351921228693464139513885554583590872868974161022484444109090628494555880466699668673405692263204300724061302072897302031053718703882756662359286604013130140063788948456967462620912712382433615201431332428239325454991691902585599348411162979502621744731489085334989100736315214458155299460201221814476917050688334113913604466894248725023511986196473765893225262030987015555766279124974173307941438168926072289024442360979740565882260888844125697979558763977492858105269188367144784403068858623043543978874601462049315326809753808881045009869465386395031070276106886383534333847144507526148026388155974018997128668028463152261171541293280170712684677030641510972934302854969813438779395024019245105410305219168820353269054346969149651988209190701996920800058071426631477029637681002866878639134011066872259487556005414130230313262772662163968716026638292457587836686187455250805364126005869578128398137164853171682031599226832186388451822890179139421921671929882569348407275385818150120785659469228233695997333568520651454929051195220792350721186852158919371966238442162031589378159832820102843926896302142526259160324956688095059937462076789219348669813909112072837119660091007198920657462927690014772531345113869373800262196936503582588817994278371540975455056269937726997337983176920706157452812684226098765730344435105633579759085361969029382590333410959492616193042328363320643517421003363530435144105656249893988993324702371650089834416715114949769393021876257490926093566276382713271597568231213009794728241241576241215130407239722608373811164295500765253770014394456847288652757967612440955464586059458982215554190112799667817269490122447678964743173315177681394585605647361035963284828533094766347521373700592396889273629002750360653497926701988165577759366351745502507582703467862719472520391570844910470452084127567765736545469726518539519666331713995696177705687246195493130273704040379027144053705602073841663543071548470028479464300673170898684307494802356679897276127933619803933204626958828060325302530287813657664348767226937382432275613685111904304825989790435148008396955800941075964377166607934704627408040712984634168143119868754569444609436741450340860525186813323573680761364466274527954145833287315630089281576736510140944152626001602087443616119348699900366261638816831623538390365792830471208288520183424883019059158648961746749773028522508527568861196065543519363441973440710406334426204473653576147753547193375514337230831220306014585930142565640096193993500518041600843957951849263265995639475392403392909792089733961534407616411465508492383046486039932945837756215234113660090000405836524259840431826542120105126856751680795686557059007440305692546883211360203681081357813221568988947063657824962602915930748157249089068534529782750390378733346572498020886513141278944357733555226484404367188274466822817850566361439851796527778926396238838169799424375137129983541162319587520817514339022155386349969099276958554692710661512422549178250161666419621883665413593803926388798897885023294329049272391957894434763457358445499892107942663498750111138740335331409877333082453433863971768309031194809570520115081135572677749225493149869942436026770077735300230511303625706166273041721556227386708378719540336447667785212220446668987275231027713230296275575708648081716907006515171861749271907469081015373991120948227258182551728197699342677549209065461450404888615703837758418621738477860085442396112520941122568313118031695328615445633249850660336045459802878413256399810287773416258464027915620106777235459651096035377172390792418699396848931514133565360528928924945362156076993892023614537954053934964292931342232983720608139367265755482145699729139450910119564720263234849676541556822216549858821086640646269005452143516163896364353249725247547232451011265542566424936756371348068974771690998830653648892542731468313915094610860911373660306653549726384380637876290668484782206409437583633327948521356575051172442300433671577814184816122773897115844841906466827016155851801854593352613453777218025258919400379980051311640560711085524527022327925126379088965091705767068548815997078674509397430836451222974998023837682528880268712177273856402908606498934891563658138454904074568011747423194588958138932760756100546790757269183253906044424722168325092115757033785547374029366678851463243046536978212628071183610534130845215557170564430595637871121775577295479272078173386547423679655330126627849510226059502369404470868036260157353807428112919276339651138791027482570900067152112654336787679169170862360301480887965329174607075270222818462437879075281157268495182746364168008738838855692264881372773420294982243208010045618661617481012172429315653933097105753830006402688631351832577267468435259845767268221446879034054423746025156848661754933983766852595890374216627529031314315480394751239681446225918935436586955520271523868015487450370998162770747212575373764891072899222114151788853399655673214870734880199329510736508689481276069388524622617196942069138442753453123123826986361573803337614324888989618522796697581613438216635815680179640336410336081659884926834431469871821842890081136008722386247418832680017716968545479720959022989018018868638604978968755492511693933134611331788735337689206386056282771584031189272429119946409463259962739908693525044287088386672376193761943746573892697829852138439464451258451879610026289407180361881264041142154961336165268595365299352034304550582260648102901274227893602734337538265289239603606436481534706798865433908068054133455237794662889237069310144636259621560155315982019378814308594196297802153206695557169782321781278261103238145025706794936636349359848677670992480754361425784977210119796390036231792767197283139507949145932236647194746090578731034834125381355121947884272272187923376255960814762857078661619591331245239124010842949321027745812901396568163512290814703488619616923234778657468161406841039229321109666295814101183867722995209689177207684437747852492957676903116090572645273374776209658123268406378306566858098849759085940406072728730166928714185744898864099114410799342155328414530044093581186369215395391136188874306244956180938735446086375666496721084381355861247854315310715724248198053645629293211893891775228112040968655339043389448459114077456151836112960288895893052333924302987331747441335804667155099981976458595693352319529873738388391648465955285259964083926190266990394775518431933464807486698383856678267834925738535081120949195444836774315878886600604544091018220873351135766924417906279830869541164698780485921407156878031094728975156496545688541634034165054030520851467711334030798974924200560575928763304321350643927113461039367817386793268653770744707849280905359756387655914713207350852728249306328070813963968468755304226370629391083489993704561400473381207742865018630424810345118798950253397062936825331516964464707173682824407007818414493242073519722617730280644704124960725612944255541683718672576099156620801108687283306884255479310718982377721470261617948493917580024697111418624837162118140436835285629012318356593925385634309120366875665904617545286009493085783970021822629619726456735751920012218155577460654237854682675957101404648806771183857802495227418979099998615961954697863113391016137684623430187033321138599244059015778840553367121487204408950666274492468488959331090164960504357051513973281722030928854718432951628769392604433236655479160589703502918164465562737472307747922034390459832066685906638650706433255176969938134453010453683005070559664141173936107361090128030635736913064099885124450439129127071385826002712941451791738044389029466965721874002374493141867751330956697995833373292277763976748329262917143103504354571414462060474553766900880434609742287317260043369277547988666326260580757006840636287442268070442167424081059495419207004729012629131329510470212530190404550122786185831972313838947173466582285068181088519027789849734353547526578934354951507755413675117655276370674986688848048683167662220616209535037894728772014509688411467238578060257983733009843721863844029062227160184540537711215915231293206116932273565576800049997915032102203522642055153055218473951679501123088443006248244085966923658752605586432280527921503126399234245213730192888188399174380087194004116342612932477079532443191029979680790154699309363805829496763477362202976445589756879592283336956694047396849575538261250958881639329759755199664642924196492189277965267703503138076976536511149702638920438836439806162988557801807354907850633154581172442453911901866004492233340424540004462955975877392964309476636786025188713551389084169715383889029053955436464623029459917531606121408422509597163267003402880895868252608474131473687015030718473930705362393074446517140874280273287223733942602416803030338714487603278351051788616285436310008348799464301174970648313897049085403503909554538665799846873109463070214905824283882320903303364547253765760268752181709869822808857831598648930917440993949468911427628935191025045654240170899592511673170961108105892550406513879920645469665286612908961432714312562915938198139035541949258866220294587996823016703609220228479530648454686609563317749630075819627329489844405142559364198452600956866071094975375583251622969285444515055175666928640316684153207024087083604231919352845482844477717186336513263156091462454502324150975125948313034520276924941594523580453518351314315249990441200566828718368889431785836296295278888655081674925595306245388069201419328896168154971603353191915548627567330656102356318494825598472935032853001830877723953601892494622184614728753731946329546180931234240854295238139912311060485865807533468518342725186580864866245310704992281469512814944145982474505712006579815764075881340622487119890692962059226587430246835284220168864422899187420678682037003539716923367900408786379390143573033952042073741083902989867936761849474371414823189877324278893790628154452712451545392010477581917670971025108031564486188006706300954016214902850201529995872252896620074346759247783127660700803690804858181044994315930052224054317564663126283707703459740349989727327020288516226376673806781993189062216835562309644547586049756455413562108165090589364513865292954016054541900146579298218179809217571546296983853749967239351825379812069227889630702531233795124430792915225518253369262936260542810522767596771076828965477628933756613018288863231507583261755727384448366194153364663246846859536100301626167819984817075795968440871219128787782353698789915885824464424597349830832187800210229029985783197303441875567655896173920078315367002559510276062375031353126104317548847307578694933404029862668720947711917433618393187599099970101390292722933847697228169431957719507397490032588657766541037811597113525774143349937072474558641453441612680337718077950244033404509613477043167969359391993432754746641418172246386715791979546009676807527856812126664384352332476216280545593522646188374294737550851359274774895236499438955198443406013455249630215288726946779555360778025426314691548163884618504773934388448359400977840189589193847912447891924857908046497682177831426329195879192855146947280238162840180623038671940536090275919544965668294228051429752989020653210756724768952698897093315229396590368974228545532910157770500230569384873006918550686069891715621745836135106569652488195509765581918722740474872203094570793209740625684641957019530024401697712009119236172910215325692994001834947675617380833593366380109652754491608422149030702503873288614065265580345600236584346493121649149933409406909892853146688432199315384458447205285298644748095962037077349219833751872246368505116570039403221943914288942875671728284870949922961424638029468714812284859574091835456102429475129394936085832530751115994060991566203906798554258899992596286544189891167957292517054422746578422384624005344037672645457789925547239511442468948035615708531566550986078157614576834527964980011798563679791643241759785527053981883946262450028679567006753789667590224546837561666435800854926853546565914910251777222450649149540195169652213341374370686354245529045330227529847456019561689660629917433668016441813090471441785262000794011671474026290935687000540006982534564993658673832023547868688343490504098525890129371634652474137213295574179710557825151574793853159062436809144464035831168222229969899505527753833680289520176488691797967364699355969188766753561153269990207182916331476329998330772241636902008777233233205243272174328732830405487209254079554001292401913256242100330809852973442679196284658923306543910445184967864847862459029634308715854895016813169328847317742207078990126864843741089884072385129997163865035391966720084385478061359365669825932504053374707055629700794000200061020998027265297784268220482011935437107846302335581755269318704496503407940792984246232114197486121361974219811371600009621119891541909645064984048315769383896064970451899983841085142121972203742201286770781688100944810063666100064301953630679709605492654787962030104841489510089875857152342289142769006210017369917633283423674763305409223656997432699093006693627424150894735657834591628648301079954901975644641557028661857638290927282498165399683631852316385914750156139825413071002513414620382319208276097924846888303182697119091974163149784237759893576357804600978434171101802486153280617566831603355883163838210159547672276270669072239463676144213985120256780449593772196707747029115528276221386830009830176544645844979563894824192444986379215153547038283820538864145075239670415023191405632653642003142310825304472718870862036698536638947822428050424001782841519146117932615808099463344158716876413722349813555447280917954677171202090860935206431761933763720715067435736480536358879233244652315976779925686650118311697869386902058592822135932687080349640243656616216096498922658773835005219490263028798286480920128589270565747290978512537907895642814620370506682900573224427606482317072426636721154320382014845232966293438178981097791556494052155909837624816796090225575502778900304479016143900948550390052854766856142581385520708876050532935471999042474368453780481853973777694655098164523326905417219884473515606854168607097703431601968889354375308218219743642704787818025596493315294106731433280783932810339375847293975467672984774822267049422401981283458839633121539788896781351308754650262918062402096886082714905377104920652517700294596868334320780998565932571557709379133057389023994366160899537271383323532798361314044706982740367298355246128383767482469031001175526651340834107860794224446064346518503807387486709897189039747192808627539639813163627194396533871693296865564142565432237919470765345019637366611274552922270557332248560529650040019295211401855197490263138890614052612502669639023952544775410688801173993334459670018273544887507544532528625672629654269886321623440851590565191982234744952839704577345518321079290033619270525652748774273216494120754577072134583911728824508448433734353261252066670530855550564613678826722495358339935512325992212213737414701549367710282837654130308795545245270645357579356704887353215617120252066185221597882762895659908119817867825143565012741352573771934734366860438297153150878552688987891262016627848985099053853397763432309214740658051961797216250268062015015226589241297238350180913218175227261721381715299966149119167066588409875218638668611669920363550236377500788668852085773936242554211717475923368432104779518911840883971571062536011660014917338879550661294320771208573833242942993192510839412606094715153289051822527608361404378087462531774627603808583927230597524586663742263275862920032228642169279815375546636858324759596075198153343488009701841567829565125172213724705933071820425465488257224414704411904522440445656697501501930085992305626122861009284234491988460109477529144456838744841300657141911721141496313762677221195896852564238655733405109175944165593907645586743407533510585522464520412891603292207176598689167742777075091818551242290355196155170708377826729529443856905139137120671704749639214856547817985286129710506881389873465157800029600658123724524216626591357908970758868821056651193935469927344608785356143735107680747995237076588747863787190367396755170199151731655141825793266644851738455809000839487669253704917291715261055936838412866700363835715560489865557918612552195769500109495141515171046297995930186633342956854898833701589729522184231150663830133380018183280164096889525515137945269881116777508543213514588349835784434707415823393223056532119374256220211623243846242099006035088193037129930233350688166865533220462452175775987612702425719322705646395451425949328292556365795323773266303900729153490602061017649360385556883940539572805169760154516000210397834206367556291046366189597168134752120056801061299009321903564251533434612030468810671662733017458485272114916440601638133384452704219894550437397417473500675218516802812065123701474710616677790226210901165288499636678299014996423966632080236780111717801093419880448456355841654357256496546137258366041929831106528984418895955257037480065987111647068896908419504262608611262563354854915295167523508697175482869296090363950738105866975921241326834449393227017360245924056447731697774862705711059819551681088963420146855388313308781795930446829214478347495642903762489974604337849168394510087405853120292732348519168200844547645096727477966913502612471312175300300455103049247886400312434539219081390755450542975416972362186115772590735050255306593756124386311482076365457108997993587466644119511325472799230746998922689897165960509660765174475617593278236694269638591624588840055052703115853714555618687886896189105984953197638012734550071874730114122893926964888476475966636881996350684471337426204946731940794463202948819028499830819164587025749781755821431241871533604241323947262804605009455734647490481215379724015799810185179941172742110085232464093901487859862687209580192603434156515871384462298061325538656476265644527399480399015255874979974549572221340975007776739386323405386972172047734349680103068105399374318973152028844115133636730375911371190769619092731557813571186321375610681221037545808621797622560476408449619364666405401153858920682587260924160758591403750499992070006938157636803156349656349835818846830062093254609244263072337325297421441868388235417060765224445065599273571915805521692480483581077082419136473318555676361759909151328635833465846763598267009849178105625902696441178006071877576186015725122811271502476208518431711963593628689733907776755494605611258772986601181291380179523890067899702888886863616414548093066641709824064957700960238995243286058769804064036120223634074554983885027601030842596228123774437197249515476880854704043344615505165437135918931318879764162693808116695026315679878496524955148471993937112385819755129787658729284171343074363601909045717989277493410334288645068801848963172335120130429581783707687238473404057466763375976576483563134110370132003883774007733118992246135129610406570468073192582147775637154937554931490307022540878247410096091086267262522813465869802208035477553008543901921144594881807516274115706701507507929544319482315175922365687850906820409266980066795810356693533999065262764229442635592943356910515882026589495587872979952102999425264459204741420898677845550411275194954701012284358343936996118498617194526894038018726747055686972158663068705630450574523439486201505172776589200757918105991985499205750377566163359343248394167579624178889555651006182868251623162670142964484043527973079672676938914685836857681606695331271463087150239659856842051872297607078022723607125387413115880622725631639914011180566480880420026262597421332863944441702284582704897643435659826103121664431922443996909892952782190962796115829313486569467314262638467238660442767621147522317726478102052504223177151211783061548320825605989837269866138226143944366165307379138809439743509547354540986493881524630098147046542252334043716376998996627716579529279985760350361568922871608112656492043757233639615608128321938979844247904496530766658295717888060549904890899173689149040299877823024859982119614687326394441556792263337361720738602889859815603999980752711946500934089925217641398843646563599461151339891642745970516679056896691110132084976482440430169784690934338738345074227946115729229952871373582940790689934989032975403444962739886892929583520294414268877463159776392941871300614434514727739684858769102547457954422868524291699359861922570490270405665870589796336015550461895333364675437376311082313522656815285874239297233471049934593644230122680739455265990270027106650018645588353891851846974656113132891046238089812489235926110485783552573908702473148649627471312403278237033676489888108278638392351037750471954204721472563658682160934678625809024838583164287496069767522661400783756407193809999960688082534874323067801912617352524837602352080465709630481016752561939165910165746645938042267159949595055405045335039872828410915534214304137462670214383359130161666780209550177848470783810654031091579966115025624922880460173707969812101332567413055962087316032650302416252087666452722508139429458527899619500923119553913168151703374335024628161213452978682047421584603601014902671960868701436476507646356532296165821309651873970408560150924182262098836986826896733482474563212834989969209616882656994399973046861197698229302050522147084968814484786368765245831160167232741333398688792976537147991136965730430787025108179391434938736291870584324329857707242797177726801093836262517854740994045815365731163982321164121824767773430436340292173148076490027473487428034899172562102638881676685147060682056106781273058316501041819372359361056558045594680916587317516976948806499175633210000370211742402765881927135841745205634381047858264643147423849302800533033731703563965905697073372646517416845176009565058638782265155263585697341253062625108040777655329739506424222540163332600746033345852059660514310969546473673893172366761118293418513684934828038061867317304474791768593513202500222769168022918015149871819643749061465207811604276781201361596571997805897650290300476142001826625207600988904654058694224698552752506630247564303567595308368457968637755448009842923875842406379801754819964528960893254221492825088849453422569506802014418537234046077456818894145947201771171256048685673828702314719026827066255044154861627231707927844452106573255676904541204202108858752208559130729678551735758205651091769775681229563870601518179876623486961765936565550379729102917010719388615436312140717721186375642099942994154100307637655840143322994430567167397842405914127024828678134707062690742163805227920760855967983635412410665093143947611642664206934377191337493952023728300699500497527783094753194055616464861262386520802127018356194250193847272499536836656202400530388132684778411447746229612790652972559222599595134631666730046638577390673264426419710741288626030310419196308190286093827965460821777654691100639207552874749417953303828134139822908670529509807163036564952353452555478980377778740392978517151705542822666126541385915919280974438015286681859794963617946646896156635237267064498742061108663228258780359225901897169882996036087447138494198535730270618028758696763851608235676793375673655334487255871726152082486698952564580035610798226924441189413386807343796234831093804448777347694398074459860515307182560950979047445897988045577683425425688118815933315116486552552984476511419040993583305198226536164499470525165516759864506491888656091141041519911170302006075532201653134030650530085070039922187874793063245030610740451985883031085187385177138895677989201395675612272932629881122254095792069657748374584314747259883431382672652019787314991370571473712267229024115540785997159089104696666984854179408845977102427430194231892420042542881901959934824590593007403301418788439490542698266119822566259552064870034698801883603371856476169913387273625478059057241179571722223699103920260010899969834861471199399389990255587941709333028206638483140801621675487824723799253425375554925242918081194443003944084152427059408161055933542787831695093139018014341449827820181603050637703941906593963498373559586992202377306310407091072803379161603136264461494667706695175892699730451251512193160886388424105583841921295907631304287266139281642684601273908520180512719372288847764468739678322503287679481238583237860076916568549465743112945242551814322416846081785128259505771737282556841248796782891088495122633117525498941727588833465670248446174041772796431367400717490323595777570979757408346042257847764731029048547153700372840939805823209235218322196744821744511852594766501479399098049243953808385998877742120646859059341918476955317305449418126696090151542869408474593184178224544248857705296133298733498182739998412275901711136229301720913227941825765916746555941384317573860798058767554435493734436434298901323136761968249400809972408737766744750381639678388371848444703059855439038358631836040842115358816955250323257265877464575924250532937652692365164292335047409793095345249974020768241548784191842911709443273831548786204533370220949743007214740358713521191847126604991460719471261473457955366982468285109644613935744218482879113463420595481393008772380974364418684869676917241306324687947399803107845462503622602637168587703611832962483940639135864810174849823311644493705812922639928292424561021772841663807989111467172630964741126342014435238203814717404050851579966250804487497665145051225974065725957237835687181729185689410977006831799608669658960083765791257723071807461649582016011449618183826260916240256125284451433805533036237585078574284059046516853620256675278304365031236451577682528848396875940919041419872895568561499059401107425522243907682340974679063625862868418923497309730400138510344684999581203175429928501948404601093598095237980330488207517570319046580409269184945881614290420328869541564762727936628009373414848075197264248827096648984363626327158370824791011367172255737205127702191092260813018873175826550716120007806106466113807702055044160398056447998231047811518625970032996001508414848501199321829823198051825496708578190942829600620619224726938246183481570962999450436631831096900140479168614564588969334929765760731947346895691665530306484131786795054125294968938904527722283202652474178936560830150810526945767943224364952166275873368829616771206795912397270401179308818995356275927216603270944427131692415824295050857930611971958953185205452838284574160906818120042904242466086888985687390280307853258619450506829923641680156581400338997824002159927895437163343666188447578418004282815343055945904165154138491897562650576691094618951960923813112241248819092280961686643592369637461578525058740413752853970589650271264482514030648886601455178778673168222794718642858444440635850989409251116734275466133716242702554880742546306747140351124747697715412265656532497190629615570468411093497699549568659802902466063979604427328221528162526708338561885976879285446657595897599567086736444736961851953330250673031840014492481713891172351177497016452248577598096378186733108467773073509279466622085014732473092159466642623127607031191161752027606263447211664101768959302796783205020828710456181269532332708819251755648825722095280344711903397675270641195789465699354831401631749329604412632824095125204035646860444496301527172628929747216858299859708433906532673794120015970390513771660311814557939696647359343105213644499054904851766031453168932366427984276652818525942960927591773875017488883243062958710169629685536420952352103972381368185613764745418775706048879435589132154157242143725671622091515499797944504866845798337744746221930992877625818046967195637491211878504606227109889772261016055546144748496334182119825449071093988034186069517262318914152165431356193900088003546187791870576382227662508497665201830506874813228570504601984664019309989301153385492160005114038917813335653372164236309575372277467596997352410125217211253155593697238995119780571195436623521125960202708901342201197807205535790128150315338917900371343627479056844649863373480981511363265339048948617422864766658555356424152128082972936539587439306691102549437834341973495807492420564885503932085439903878859016918409452556988301602353717681957622319820985317643412975142496308577086413594663235228369192658314258591228436578843963551061199653947903139934205578270536810765611306811096999990051020900649160649748026680872793615804853402708759660462925584541587091722614400311754406409542725807488793600019181681684028290389879904956651129403955965875078409226779255735330134163707783259398093229266400742499504976450894938450427419599445088333275955213944592709148239352246954874022688313948956250454575114862309706090540508449792005268748284109981141745896585378445539466427461599457216432467269692129786427072603525327186992226437169907287548034468448411640201050520588752681641707862460885632536120848206330273795573694783898012558859001657956452552691133179008831213822902232208943760575406568091993171553699633407650321344144341523606033461742954370660320414505904073969009383642478335662537082384795139159705270122687816563516754303218149416289995728391187699459450100118452707375951274758219972292260649218620172451175586995039252223175034236240948263156542540488571476218100213483624876516469813216963067767593049795342724098092127563620140009996574599364324666604772821968919763599453623961259973739848388430428285719624979319793817235614183039329330514496427232724304274462110910595922260174809017465423219730785226297908619456069819797455516595980308554044780267037566288270535997694713527404332496393627857491419879545789522332907243398907284731229641799628643188180148232656110142015629018745373061514206851811654698065997222091976606572788511465376999853020741210899220223852214313448846123271008429565908639997446091553669155464111860451284681452824142613216820046243574238922876041656940030267660942889869801436577176558157943483356597362661933612629917665431057548090361546672464683645883427842467161274063912143178836682119578681928234010137906734518245356130729631665956340325162991536655210690728964947379404249314412188141580755594937599318386402369568998780059430573863275979052655481998495482474777589107289622594160076542183690038303085323566332116938619899329325028173691317178916897927428216979279082807428319612020403034252414323569318799633294509707342362814990443066193652785147428922242139323850465878281634026044142020680622108948527044806962693799587246966206666181107773690949885047203614965736125176783137214013971907448913894286973100247386659482604212403867757625386273043694315523049854178558827535191955947760411356660109313766713112092997018226655588352323838060707225067861786631626417215503021531212964839887972144608538579062470495361830804656672960506975180785349673722308745060070924961796516649167953270307253296172711295897196636383755349327277613431759300760387262991906446996904353445676598996619330188623063004411176405222369892503918877698783279233523729233914312941358734773570336906601167120887730783820148766584552348523865535397708562773914650630280861461124358893559643996085023708176083441440006364208091633960190409823745387663612581391572437987505532441945144825871156785204689305986652463585242279145766201728834841412007764076828432280594682195881006725663603001371920535214072561433521640467640760679088287261181866111303104277158462175457353775851996101757636144057299132105997967858071707142919997998482418260363269965350769374311215346709333498719579596814328658241414506131613570904149901719846857512104929263476366691856905504102537454819012825102262841730153463238822998364574485918329710657610751118705402653473707743326905614473084867190890734592343598726175956655487731181018527130265197617528599658964016325537527735109682166565509792337116933406080463448875739952397417396764026088644532281622732931679556249082723039706410912616943267769533189844684077745229427236718705222532879543308126431509905517086119067665352533527884267503207627661585803110213789896686533896047602482822238437615943553079441562586027634053872735243873303628187588862187057173582772640972510445377606060913413621052877702723421321750846472842613784149341473828169132757631950155654345779727454044974031918029576123534400314957863212047619715510129470988859163244150783737249092072094264557722013846578673115987692458558021326005332952139301786614705838535098891942488222269039514072799106165386606076203658054759551101375134775145800527761249263212853162777751458258066665052320639868290002238615882202705447513004201585884458643102940082509026181089635699410454844202525933651866279063860154789681438698972413545192223253162533301945275270895494602513357931200368323247431455090726103638107914393047206442303315966203282999251146816873473173698917426107784894977277633415864678193002022071481245850914059638802379881915664135993403002473815920874831999803741085340296919311685999883763511784539971234431654333908795863923855878690996165048614087753978814924819803817936597911467023293434667700325630860763305156005916110456242628870030410259144703606250366816778110069405197871090425603953654100324306852877249467525597765870821833171286495268093846850669337735694068902418332506545168649259306941275675536914232950079753093192261438312291340120277794819386602559623306652364577016781871188720929274595889592166046979621294567418297241226883238004363246464979760999941282620062282336640933400634295219322312718274838194501970898031219480453127251766296692378538148370040223193580232077130193182503543917015231230066178610511160827151932701975382073584155911323226898697834102522069939929620727762328401827545408863046123816479754271045994191578599812582539946619071457592145179852103194141549945045092410943151423465277131204658948629695218341659368826720250264762886635722979517336579265940176519032798388508331691594832340538317818708639013767566400167283283589454503453972924506077204001299639823803805654438869616311329944842323883998021752055958935051703317593171267573725152900259049049996707411428114075544794375978032018958205987547984779541072162853715365985668682200462776045546719723781619452464322378831557009644416666142078113598320572497592893757079476588324420533830489175701505625787416028520098081657070658788346830654590469867503631163743295297400252170053409007777508466618476518016914742801255726802376693447345807507776231585673436711273337153604694016313882084976169785012366782373195776784099980932732390011368060610364564894902098107399729268637593744090803070435869572402003763154052264332534633666789820063163842093338957618620574642561359025394973963800297697020293433369056467910796744243812954145318998870495499926531676679982574140017017706378297352721955003998747920256687056950810558583378513874747534589517701243095709770505687634359220364006937533895817519293896135502770949203738359589779995162002562500012901795009301232754640977477164900756783738963771002473990884462704795559649110507751894618957431917878282475603613508219338297324041205626164765950522202873847488103118045883918843756268854733737628870774029914192913311508515965675120313355811088048168319795065125673772209371084443326576937086532742033546557801140626028696471073041232053368957353757897686306631979868358185846433363962735546484030705253160763965857508216732058086544128814147095324911092133295442435578428168673661498598614239180139525062881811004392180182869319730186479065645135704974244284003434436635738884799301950614347340668346381152766650024517684552513407436017712326762389841696693915345142766154365242506656478655882704781782069185799695114616882490145493667085080866395588467864256886494438743478805874491671508374491813119337041555921374061232536989583524091335842700987930262856323246163180583998101146559470837756802518009588545283471782636931554914450855627484927584049629447323769279496509749206338832270874848163935475985690570303407802948469899458408472784584822021635493825071609978111961852627071650125023395484574332380043060269460549018054493325440618761904829151482692393154927906751994081472370280487420877066605238489701262354842089118273070233774224068168741938152315015534219998713081817577829225330623123852655783832731285020334727237809999060069364461286203465259140288364949111767102696971210922595600581782690772925962298320173249088266840840731938798606218165033147133443983290991153509336545727575171581802306721970164528019879640459270978415001178512400100888209156282929889616185211825465452337139133339524577287761713297360541679984449447417813128946707283576417755258293659161366495404408453442831410986051311729275681372026562075353075389095988167424865974438578735216143547650324080355109935811546661856528943856639271268503837172344693888318124002068597784487841986946937252358632869387831308307570217446218960157132647689085203537468725679187883208284938830732663708653133316719548576923422220237936843446714881446677439626284689503696801998028897800163635810015540039895627343535603648381184809147938329709201050941385920993531450025627161911650731339842764528799780656577693040044627237043131129327312317194773585883151774605163737976605473811851952500513654896384469669125237991309123271076874685773595591748863055926183401424238259151507868847605441644260330349683595837035528072535535033829882384793773324306587960158780460775567507208021128831688367860182937379284803644880024524455911899034104019957797607285182991866208051959781012512460849500787128717081137650202623284879916743621614587349208282967525005866787845617636725274705749510225633509703200756194718916351261329128667097437986797493211940990523156331042676484061385790587418721167464712914341620412066199109181551829178386162508885895308026827280121571158139167894626675020820681083953988595541049995663175507873900325389499697476001707685779588297928189587105783890023741238201736029722555349795140037672950402153201646349272072604775520187118871783491503509895914383998962065741546529299287791506668750065708281673012131400190810092393575012616307700088330943220846600404895948277742116612822642986926079779283436822788299865443137666862322698703127457997765947045393070305225569103367525418975735968520446488547633320080321765874731750840135740675947707660392541634567110337333621055962894647165158991074837499392301258212950176634903893507504250005474924306232840722278511921623268044919083620431579438220099093471345751236516206657676993214931848991197953810286570259915672058420885594883106651172529697316466473108580558867886682923042510628865096926996683011626078522802235700599399509937551070730652306806021657273965450362902710968611365784628551271969117768380460846612114428225730155468533704278371823123242051184656406617262102405647343706601458001618899600303087632120819075257107368248645267978543866940002471932210659669074584099107745842908029507820429260174718894511242956736739730505915012204036025482974680873693260168659518142839673496635142876101039248742137714101517007715826068814838137491690897853953518826581145733786108446243993583612320733855108079961193205279153207591942577843357646636955117734074740240232481271869319635068327127423926896023490280382516098385169524932649104677058329738365889346131717988741149395281644001295896560755378511650038079883821230904890201934918295917282633139136724589573014977331536828474299324562370425490794460092416423199352945741699806925559171080513625242644596185021324333768977580052438866754232551879634039070712756571219356991197327415977817502965526059608872144934799080841986652414174147011124277685769261440784909851892821662789918886390925481512302293273869413108067805929708209649415356089566278707163104107585626131862227202208655355021616024711859934966947289661887651029572066674158646273461307129667472803375905233802479607603289328411153167967818908525120242226619025437206881677371237030190756282211252917095839608730948571522494968388597770764165490724737792430202148616513153871623589812540463366062674857793849782167523958661900330765491073251932717633105480835412943530919341824259456060393046320385308993059496377198347700603549141551078260732784006657942517362987645929527771591150289163501348800229229783254893616368697253736388143047239060223182407087670250996687664248261562049145409075542032639437640311698372020700250213819360616212017412534184997309282257903526706823511855804715143653373380338370970361577551910594179808702535764485347043422449888342651610420062384471617183966425326216592571286256931863921751565039440129183496640482527972308959706799430309727454150261315222255579244088849176789392538327931572979475832418948525065361177456532193176599771182948943048394235957760269138766587096747119229541956484591919170487930412765694673540034321371257227082373163369173656234917891568928770373209583183975970681715093352244873271318959945034164277040031181629847752541242440444181816058787232309310060085816353021677010428524107867985247364539021874694181036732839282253546162357386859644792754040800391507327255673718878572695305564920202773293059561870761549578219264261237383715849055422152428778015570566148840311122971994754684840056038107846913067116323282436870267209453645388007548854214301932239338561208177107091586766108353548217245025226078388600644276281913117036339423900910456609737338676420144785564903343724970611225059205828103495495739933224423190881171956565786954849112845988208619374526940806374586515830317658097669171318034637557647621917322724793306480473730433016385474000926294881257894992555698148375760747264547722657707412557379109990289049434952244144958300233446587751000654205400884881858815460962934168055695873382024760173414889820132332512208948641325378619865228588301737712510768089153687325411673562458046792660708258032094659591995079367208663011585377022567377675875990954425251808307106202553390157634610612223465446742927957802081309011757011566437397949376948641755033285431532343646827865695178032839617868552131302078101028820366998784128060709663867676768090121465854009871573803661802801283481998650480708315976843275620441815475575967074470129971445159499974742524459172181960759100160282762506367767929987914241868569691374959414805584388625164651447019117145262383277585578073375623200765043749909603243382190924480069323621425886661233820026515781484808481959985688192887599522503987260587064949567738430533995601270170776300759796676616113306429046682476529579439147296160217523968299600665568852153921922420268289387147914869348410910856888570446881429586258373299930554260678203579340723386231747659226067749730610553197118883709126951600982652558557556407042096677975935346136693274678610246260993727887397120438614197580796628412543592868409489191411392055575004671388492409292864371284184710203581632622770296883319421152302236029973296046643510499559217725560833012923748800739345443102404787869282592459886605581068590943316415108041652649237713549534444038193017977736169852537008204017801814263001926855517342980107170675450597966038609899694452231399033527457814795511878371777466596184943777318548684074177714338408231716297391040388854270721132469879346603156486033345938561574589480582835057092808866462012439984500054948972705973967697497128914185108950328230570550809757042065505256426121214403001066423600313409931204289453022481269843239962510083151794459467358491400593874219290160394592953217297887331386463607588387965181126533404037700302161028643005328372603372353434465040851828987758333689078184309308292095295552078937218786765830505986995904021838102398285650524353896008848538612988473566682265087022239767326495018543911639007854287900223942597881171534673207182729370501185174798281938847380342270413424316016813870060859708145597382131922444905127877671321531580796472104313489266674448036110155337353027353510281965072761220752645218390533201811154898430902363816801592516686095711952453814095391641542807539452743372414585056574610332690750244032263227472943945796510825232570544310383417471149803984763253928398683248025088593319296542634179143913934733241887225858412258113679944860806735245550074313303759138263395139832426516015596623553078629761016523859914666827155770676762391409982035368429372702033589830764467153030665510877156250630865520159638653684631785099676466803082475063169875516950778086373316102202769203623924764323312021964492522229737666545596567976421176585572242957321468661820035749944908942765133124368819672244979336478372824097507235410076492556026724112359869052112633186674314461503885013262139849318065287543981239012669970764868036310200653647446081569089186895031174118089264476307803986754696697252562478596686557746117901355460432145970031364772781941459809888829552449126889247882274014323373844650331349846054682410229181914846700449261259643113573051997179120314522850195264213347507574406215290459493200164555369440290058847712848358148725082415390568151541248006858193139386360613931582717503842621170079827210273796657441128506809268556975755167971815043811355043315173931793003972189074061992147794803728525513109845607373376657872742923660202387105582643647226045742057287168257918126900815200527584129698028405810827094240407001686715862529752056957319069863013488103639450689098567799491235693257629634387304602278380282794042658985166633990404224303977775205966678195294462078498714023041496653348302475060081212550391221980989411723882751623557408293677536328279141795713900109296659831101431648681389654864966016877654058757523430544132332939132547671099666337116353442214099154644947445834457464559493622488089409215024668714327973639452121660765298285612750192900193793967405375226136615061023291638500324738990786576199647185244998204299536946006554536740024252789956956969629104135661516384421092680080137477445019608007740247781265762648096478445309778458444245352991533324000853650157388141959308766654569093145523444031064936294217832215608799826192152357459581449842417155090198063115164240404043750801389916198492091783845032031990344661875001018747285321258474107817234969398838973109957256935372844188797529378547381520294812984896802795648355836475352647714756929876247895473773607572162965993571418949227503810897866490636292592285912134951101066424688785737571722634597821094881435241721309827600073373009036643711195083124006590530131888724249161490252141301463126416596270798832625241257413644181723889442656608411317618533476926812025088816896912568176815505414218984679497699792346995647932093035554667189030800886489525098960135112079344095501631429921330960443855828176743069966272264213246265211528743744650653517467677399299950953975521903274605662059993204534992026331515339446593482514503004126138516448084815728519306291690727775258946452172020831715506932472993411499553493979315262278969277135150044322395382450513498013036367692152942033705910406609929490564479113234993918234983045926947274935200571759968867174336703423046831782899278932431547636431361943980852581174855911828364291459138192691413790048132342448571627011644729048170720064644469808341619900536820979396666886160302875571834550935133153846865749090676016976686448121544993631944554412645750643655603928676689498715957343537507308925358762472961524958798458570289334156085422976128877604474680578742352480016728148615434726447928869518991438252520170168344433460988661967856716741491029045796674236631974478761303098741978536501962559127953383870688355590044541275012979893399427058499611656504115527962859712060087984210864978483705246614487068280258986092378624660306595740942027334413260428602868224509727114799462459237733055681516720750582537582898077477069376302055425021768034091603842578196765817371240035029525363913508075518333649813271676960788066058388447784416497136768472410601277098134494090336301306333847374412705506382301597718359182251307752009288425237081926405834523935499304137051168238293838132157849375473060469990254202490774791321902235849243189898494147106825930644587508266471329714491540077716821469814936597803803507080740574795428447184904112043684494206226434387986063008089621582710564956457449478293832118327240615165715236868007613634096354358475593446735812041365869640695041903751734788786960854445279915069109876918065260594750098342380966345700687325937822652664898946614348791206630398935390369254471998072401066526634924790428694682085027128581675283046044240223169498935788914941473593056322335011222187613679893440586827529342124197567759224393506807492422112292716622965335016502576590826166472863903620787010154293033351644236033211104850374405413153348768649567219752550774784289244768390882596624879299695660471860515786440449990910109436722956338336053002057900726260334939672796097558588767911075487187770255457307422984007827192007530548846776119059007200448826376158907172066176594136251102726490292802344452379697878846900603550467565897097079538991210647183019045444070459083515337103826932055492590213722890578567622825324594716918741602885220851865032433486543344253934480174881890201394865522814315456030784208015189397620964170361279692845922668116342768453069718628159230843756034588309329035931651981716628415492220638990253040107449410125426303298662581859324345931381941861965079694663462726951373044086101581206632826297746036509870474223786876764683973455939652465561148878469554820775948277715637616883793926025964244365100949887609007930610661271540707058243064382485413101252706425440745859663474963427544448557046288105046146829708629593784808849820172468963829098972599471287882201710844690696249847829322058688487008224948431216218184544866569351662914589681942471193532905527960658924551614026347287277429461952572751606255581835382667269595393800500002452495823833206273738079901805062089525653225412761680881227788161566442336282357758124922902290491110442304883736346381878799353596378604341896941545852238139710584515930220320389564168590474622962696760067190877964166666270274825005363909059812299218417821934526612767366159654629361557410681970793101995558395067143471411628018077706374980509785094884455596566452599935340783880736588789405205988235289867984607863629037991113210031325126621004816062339252532682440166662392816683554770686615401793984543228583969072121366309983113141757578452828616302248534307189881230323201011219246517539445039093806515064019758720779419307049326300624080902875771141106811627636486177112523420478182899737401206631645629108606666819558595127390766684946708697606593494166445287661865910036797613178680844388058689306684448939512941899626015207210292987276715644843223835120943688175914368625798676557147394241602750313841565824059967689539221102941400643904063923165090896094398186196476791296984275668798230068001470810591114511824143624250532746956267278335555616768450861946872230762362500815859743653488376204941129268219226945887104970763147303611465064672429003183071013903289361460897605307347490966593780006674076506998324346292989795018619162205144464939677271333587191477691765564149801210177428888463447645843501210938736867216623124101679086021138811339345303727288005130008606979368381233843703636036409231513153373352571427222733881583271976447070368501917456079337345860034140332944591528155092730881316444405685762225222392261638025834433376777307613499808338220068859139320797852513562386896309695260603445178792172911206600424291258526570739316109741685383431220004007004367888187855806557241119999573248365960291528227433632223060103702470181801112341395624416825110246964396278027096888187112395530384043443784614058159942900553069553138729768302475050921916452126624806497566651010556309447416991623657083147438465942188415038307153462158821883843164053059727783404841277621290883300222252032175784551656373429284808102087871576139997448383812134907871794368605136727889051267543495522888358334977581542143058653465780241653823044452280165052767472996068303509791653300938786222566752591939070168604687869968528804030192358984589350162672462687282696615433449028139373350816244872863598375400838994358172625265914486841323527104618539792220347860687681365542367209852566512209150758037265421348084939179040916356492971025936917708905625659797457669209989670994046613358828557757687304231318885776076645955565816734589476295194562272139286503676587174084287451369248483912754337804454529943487308798822456398406113968471639144625019356969018159898075463907420493254699392095942090733467004381139266876281084441659303943374527490747105338310070086033672745099256950091292765636974100463426480302223907911307378327421903066563815553530160512631161380889184100456519723162271965097924961689877555704666838261901336055550363457389213948361904948447450505770918090869274925837411824760223977251007549671164340057307665867746190038001526027845541911391003710455288956367025260416980622723289388702122083547731493249214949467672310143835158720477657326513745400756498023564863559985364491826130093996518511083467284289175987525564927029725874889322631818721116116197095136070474212321711898324384286924739731077779159730258598053340097522248599237168648999352480169856761478069105823773674844089841804687047330834165538621961750557138270231690954433326107344406754254663894329478765204556542841752284102320698590631736124773570831481578453917210745664883123298216589100862537363794199829794883700967108461073653955286564932669701201742318051899385921139063251467766360410567243045722500908370052140966427267649475281907666629132563351531638102389461259429110101129997945786988698568204928781914938750677814902393197232590885968138815767891141047042424180384979996060755588321106200651336353905372850440964653880960004461495774879948468890390603749470677737730596954060298005997198813229379034050181529126401231038921961161528944344283515668426829480451658661832598773568092549822249975425088932616575890549516142887830221245746307211481492999506723280489206430149207122338062256136601281805752765035846104565627789243954008706760886001922931557042519813951464994468226733681162659045667417943994878423656624266578992530676938880080820585548377729020235779274021000162327880517750557089730126793210410633901288644427283869838661414005024351241083427067055996244013994902782854305443302265777932673649807280891869368482265365655283621482680849508572582804284263453097982861458154882614861911375825177211585106919952079110880708559807243182101103734011761199571990008853103430993104675257744168798956129637585347104618794456801733628576974954271453339174426124542689034877990916316472633591527037747995820444789014962289817444594976888688706120094432053798934421074634571522035529046193647158185588468812254398520341786263657094748715534435292860095901793532557375232710821393108836228149554684325130808364275782492399764051176436138157981011283668466580125242065790853928203495890116047216954268063665549344016310075585236145783677654736219713279211023046086165385104095780067386100558448511477151210260292018005592006489417933956270577718171866081926172447121802914451026973821827323059798345368627249784990296088177933836633507341738266752135415049016976710800028797000292352181231088478016908699145509441413112997867722633612311414524219666279023099473297440748798152279523182335937372438891314424334109271869576700160605038302903402344845391335513967519342120742553577144199488136941233338266746735411526990990261324523319625911221865655670909775855448132809726758800593552508849294594501933723610178334205842391126692389246971602929069568471849177351766432904007039679616513157089645673342930524554901186122370794800387804516263136799439254074783227670886613295107579750569031752418513261957155171208236927395302813496358128671312407819988690224986352793650573805183060594933991709617124757559925886689611298258485651535286053568283491674969359255858815954183462396423377196123121612990915421192974370093516028689706444735075447029597308529649708718460881408306365568026306768558821660263756822419354459453395798969665680897289144922220496612386736064465878502554507594612633105712799596702939499484758367485944193852485091125172444804138071484146087018120502136854078004405320718040833722925049852352502647819518003825004461953686662444613446732201223352121930552366234322500962013053565164818446008256233432831763840584582861668583709375150744273972129283480805271317116128063422704160867237867229939902776165314970560733143014042541048791236016970422786768931837085498829962817997766006373510303504225499245628856962811421882858206972379112178340448858764699784443179637600288383490413115882501408591481375245381520022519893003388062767249599645559282832905808745878430524748572140000079010358085599297389975855406827005085927743781731518564794779306982765141203349354024066445505511914775804156761221821479057772400452596085318613620204375967902736044358078480690534395024285214267974775937528618874561434603523129101312344365286593955861678124269459598101851418178767810168239871512747653099353885694314374183967344752739057056651507178248729763288401995310826767234632259689949185980196332343633094629385906516438635709644246934838899466269960820489760280710766914583480666376764812815715150411400818342238242798307024208301152961354507935271394838696915855357175165536870652440633366541252751934160093929919321426809567977550444146827119699518622510546791601150459609353820861948178433854482992150024679442439715397495808949288113805175633852808010213811629743309207630707077063933258024848721231328377456726907547598045678461743891950131770271671137534461030166340961848250296165414168172614700711265006210832578606002685206447653560126187021286620210103003548623614873890365777516952899468822064107565796223850533553553910245343195003654551239829960846628821998402027022015538258535657620156556210633353462030761704789187672265842444459402020655561073578740978020395263890869208785408090198264097857730585226068271000966650449576752302038283698575424251844535852775328400332190896706738387853242547989835685598240960289322999390206572515634805204790389818653953473795414199067893355379621221897725973870344547661052579999800765053447696378059499804170849171094892744362783471290947540828109786415028762332014299627928433604005092050108885717283100708579344076185849080382398660575832504251762029758885993936365977236180606864961235114650539452276541604366198847398098122136766454537653657262161901605359355414072225738664041111166169184138967271760643499962417308075934005154258745470159105616697627772871073172354170978435482849986040053668856389339251766642922751543580400279160900980361838717867627868800088253818294805229092549325703321979862244294106169329580342036575259323088039594075334012973749539550450761592043201626006554119379898033522916658493848690678427723235566372132056551498256871525158599776486065269865868375513468158856392146712326489604059815498503907540800864551155567681187859993183073664818427147397213774244358817428116402963409861950758091037319128766597326096533510943300646189708012167668512283910822350414235183661647565701943628752422874738018823238767461815002282223279331179360996728845179718233406839752299583124503639005622323799636179760143142473285432540135684381590222097879572306751453805863827192081116004201836444376169105178970356637572188976081792793587896426487103256805359266594822239611653719055129357090065333448172906047468617719913620186984216017855231218300640792678140000040641402679458989400983237103873381751522569602629828172335414634879904550932861825493270272672677027174973872573891037373619276048082342956722993762433088665776150578736959386017518703041190291682295874225756791467414118565614913304293700238494506270826514486749947758723955267666397103193615362000566590390347932991994728755886371485422499820550322280418051980423178562071978301539675383173405366737220280117570211365915272425570534383151527288783740313734848037891971905770501553021903975080763569466621891336088152522127240324513336219757510462197058189554236286030167202895518316832055791043747695222222650394677871013676420320786502325971937032967293771883762233749465797942844984313676098867306502292490811960092091815972852712063661321802248707223705498800067610002482719885149961076090980769525425733128461398612874451191283478945060808553653962311636654503903535434187864095700075612163336732456880426378483894558356153114204197186589723399236654156406028461756967745822481005162387075572705808778532910194377365610840056561810352121082238176366945351201486637449917736723576321296716171329397015009086237902737913958942330686707849779004778632169638101019250643247701184189648831037259446365772330411539228090633844645107271865404402788939575763550434816172062206376014039460334615652522628728693828147601708946900793825546460659996226927866829103510832408474420990497003451023514580500509509238572258862748214752429520482397014841117342185008820273982580247418198865955851784629414566375189925601729010394192377967286492368049089575507323480861065561701756245856689462773815236118694903797463701445498719949106852631713567889657953232826222751408952766422613557214791667093805128207946109778395059726073269755266335557524332907106192692445310349553235167979296272686060591945208425033177971653746236828997143981641456994576036702729480553595066494658588280486823661484840682674576009852595910181539361595863548599323092990058714485690377176428650463015236922937325065613746699818103634532611213907211295310681905902842908342875403170281804298041060140343258140406044526888364728984644542995964268058099917622880533944896228923324666313881196227273650662881862928377763096934154658399030278853882041518880656819438667014572465841011187654330679001600728339641644650047310517522039523571282923404435902026895478329050846571229237914122299449815522672280159937222669686599728447996730580799775959133401554477410735592956135463301475474880325817585042057403629285580258436117511071763574715091733172714372476055193422769061671350971278850305653579139447457324961689118544350811795469844072303117573724234155753071107498657233865441192196697512212591409452263671462922499883630323883870808426862290894708344168878347768879404488474782746407451597959949727833092069375685140681897931766955199559847515091906698080860669963194283069616181674290268734870665475351168249793184052158555193051123630694401548933495348329517508845226889246234431139013853770725391574830926193334755922753537898266431860077840404517065082968981789830720314097932833282272819961505580966886556796294712338175579200552465912842848179567099969416756963965779400569097792421103266872653782872364811214766277022442898296505811402934495493796461144174859675826648203219524223075369920033903560587133541058831591737066621647063251854069654280093141867658324132049393119958638139831311635499117917565117503062268328224579026283462425566056750344989813804380895930001170041998218370218896684674691088013001438893696936915441468570665071816711816383852959916828060907052053947686473477572439789379725251390974990380151724138891173138605734638090190214813414562957800005299144599365827365602836555610067712166053322287336625544936237670448351148723562179036156568239325074150470965155160197060715489368125234383106829502159752213982756125104884312487209380859213661736335271795072028538218060716300439296660286685792548145431651719624608913470773682498340285623072157424438580923092453340954872171651610972581546281042080692934809763909481407052723264031015603657687241114795346670627657892326070473483447308139905252965283484737572553782507044800848232340364013547435614033961105427584695862824545770702297109716499944211111092083145445861058740487900870073964422586155754220492218252868886047910027719552279994234912502969798792798186465729095774038633879334150249070087864392237230812637616451682086099036604371310750405623649651785257742286155586794387857692526192484408926218814570743590744184087566328288510183932580813192621560896394006078650471253979284206063802755362452113980778024840427551866224708352887030782703404099429324696724356616786167447781219881523391150517837694429862649700655108364161022020359512581030101403669143316338930575451007534864885315738133135125378498791489743214900928721931451866548209085419730745187441572689177681638518916550973820473470943854542796107783730400915956595861858218075052477495088221779949173519525279654257698560213843883033049105284942431926972649463166622203440450682788608749247346316110438627739098029222829798274108926583211704441593332626517463438908211387870688241742068019025987923657229923917481753461787290661670883597583780572894498445953864933664603673417598630726024886699089672530982884449005176590906823579637956357802137051485015221912200887561664775921668701761046582562826270177150613581965069271987996832077085409435688644908994289046086158610796140778846044171539277550422737344793592870550981964536083157788237502843690171399553511734984065911957641712725543374893699208096576329959073216480273331051044812880401916978106838724735675408316485711422756794054229997303164406073224330211647046837823524483533729733213200266259081594405908009831290888393048896372407557661969807706882463674913122909752040590625980457383423117926957978569370344278385834680903862646573820854676194249649024461005769887248596751350377027092692190501090138046362128873991731839565558589214247460012057755557123226266189987920198832192825543054218538574990244631086440066013650314255297464894722509271976412661564363328547491390246151154087219512669949453524304255057973807611309008478282049285500105781712821425406726758596915007837209765767996294490351256303275923172733398469835949022010491319590851146591837231408255151113602464920297424430829885641351009995301266340984714284625111501149978532418915112444215947256460915305527254072453328215059832751472958593605568980396480810030749803114798476430317768299091739022836762360518610565480558806317938024107199289020508228469450100194469801120443727532643476460617837822244273768525209043119754071385624159245136433415329663837242561638179597375723478461802130914653656670284036042856229961331623202750324234797313653494631662458107127854577394773772608940917099892046814745988943327015482878819383300983388999756848135807627745488813441354263727677708475420186727665652899678218275376517570807209871801532482417931425655785929234145809758834066221557899242264172709917878471135329101840664818259790808642389542393801824681358085396206454109425457239884822288996179335030500316047063922181261205531098337710650190506151780681367751336059743146355785840333528799763969221377152413884200843948686650177197865813216685524073321933713383751489999122917517360116440177310502531586050394356819640460107616211003175707797885439910069400599425302022646527157510004167534484115212095412583728877841446774712541801760818355339521562333058758877036398920409527324287426068492617576986139489490134977553277619641505297547901946909072849554841058510672395162205296051352291998756147035850202854010507818753319116519957941693526736857811527893316683642415118079127875323405361699462352603815145704444862825358780230900568768770978530700848591786506020757315131488503195857964669117070956939886493519567450710607630382146095135340770257199630770790002491119490810759464296533465169332999064472044972324347465286383647814126776251096724930217198635635962612741815095023310184972358359418561542837685427285444960907447150618727650240009920928011245016039155308013160462300814743966567149820164298592930950631400762322753157553832533701154549306758598381902467761578033197535789076916047075176511306936822528089577383701577780566172938838658920091257500135772165474730444597575648838378707829537316926422970370326375152241224881759686449399619282086971335401300299726343984749378789239560498750740403129743789741432243713977724951035616166944566561350789963818194130409993808914303959379667975899252923586718115991781625754872319394289523385430266623006272593967364809127179578249123368866173310344385801943008669580441591595735674630320737233664774133460936107190031886124635147017487223196499867123663526362559744216180160101276744228444305887283760388185909486465893854353459571838406437359461429955277751957523779178071094203098238349597390165578903510068729777643406214125673218671108935212544825603923422876886334097604170344451212962650464958854054403812263086105490003169516250334780786611809158235892638742438508673878992790973497415051532096739186401511591640726595478475194765110685378443750818715937319054750576920122804687868179812631789435853511147971103807723960966813149940936758086540204866831767032630512620208420823195245708408737502148138713970799110378776040912141883325242038932457942766662558591030587399934497494631422733750958740126705262155569702162520113417232380628879673404014038521347859765331479249202933207414985766081054053904967946023989941200928054922653368875576105456342596011687893252231008038270883786741151138585337743352395490465691700539503313984600387604796122060363753515508041230455839713753400970202570728293761363930999373857062119379140768228941079261232061868595469223639261086499119224285687659085653901301175771736588801974013763605798021879541310780137008598434145070336187969729034310615079965622997224579924831817044816675332843254804144064870117610983903445719146793050742315665404437924215590516800377978169065229210686135205891449047734375818030880116793988519414416759290505189517612074030532649008540435902708444013030361050296888083436869175008016140391186071211877707931487588469336427397724795204341581012196056737093755169105630530341060235709717536656749809559462472259011297949481633259778591356613238872896468390991222000038137175339021904512056752221500238302027194311676664069921025456094788616076917977705593400232850352575513999792608523465536509583771474749317938433612449840206188303068511195317187685835761362718674233311655341073690171212043826278598970918820304472474681479660396187545464904999689655824453666641146740354657637362478676034432921260787775824095674192420624098065539488618067303240363697346598534995541073154370081179588221119786567692078345599810295881917601285067630557626146235782204281795428029664932265503887946801575291736703423355694873663309594634479590396397149558736516535916016158615381840339913476985201678348709850437248764987603306388070503909250484365774571428427900891951679174331206577274858553865241931787354385737734046342867758758027197175842051073202928682998113916720453431057493742187392953879123173106845825264495356493634680138776235038931389154185476177468375714182445061601828876722473294919037401200519685132579865617173318569713779235889052791489943686305338997105396167269560119548327884942100850402719773835682556413212568570277011846867286606843513692308735010465717376249328220367989567917187935794561120522403954544565028943045431038019342476929687935763269319993237716384483691854482210915058590420903801291148644270302482088859518463519374995834026208521189813615733963343990888026513512238091704717070088503936090640411971171931862785771075556128259627868752906436052056236651230931501602728199552749417249840097267058198341367787342778633421328243308784669756861046627476803497141457628555856800116946879776560040046370265103173492415480414715584230250507880721270624612818756144762609905940885721321590735764465697128618792145598415306255061773107592078150110605787152493825294553675067834810512559506434994288648823493277502612904318754438452586410264539003781172890893841541426034717033576056473444132541030120549750763543462767832248913575943769233890067541812858921998833292806048860496283978522311087168748797907417565300957364337042725905325591590796062038760191715383550673367279958727772076290156390855351487214075101675289816964294450623698853708177056923918141041828640691572656348569018983630579496862538235622586503293594268021729951008255512537751712816421613324478384451676621611885646174556159501155882031347903366105780462153268793006714234819386385848207601779593552624250088679825066085455115379666916304446651851556945424093979956692166716131352689978123593533010937821099641214145536899359790989548477956351367790969986268395931564034939651989635514948398070282989436742249521993258192738481932082329923710097192848337266918356100595390221007642516503312273051466238603861675863097553189134021662916904351437320829673298552542244969666540689515977799512395318338570108611823407535576396636194856797057273684630725991711707793428780348273047458200026057427727750312455340381595155747511333848181864102977562153947037458679852389844967417046682370616909665477141099081642630699843108519718902081951119778819567356653449465221189725261426166477741040589859147487102173400562392898536954920230605615843633921692340828928568045071832657221139407297896334946827410224557831657109290700359083729488550202630751235012076948098442344520231304172398205047604900436816996596500370159020934282379841107302945250856980437834823959032348472772394320651332517178553366653527762911995127135612478940600754291891414300952383718995255154535081385886117116477741517173040035083828310348550845305862131995019388963022904564632194862859475339634791872935717645107232741116537917704469736633064964731254824948660107552144728987695130311075411745599175473290453780190889114592433048735092833700345951203550661491790100641829105053002707098942959017646640702280927263568169983517996372177516745221725156739721528420942425916780001530475626074859583073451160875236508733829924645425096398419144237784147419777831583780562082733487141304473679850198644392434139699742819903653570204487647227936154156492219215245949856074977518788410384396866811771518154524308651619369833949067690043353051639641061831879663725145132118424313676234704965901560220351138500697927972312910444481459456465801616158699286823294916018180293043859530135003418710697536468968989187897919894850863197849935277889963988184159594578460945140181810169379726655477051279053290595345364468309325630280392913198516199560407653482507004996047128971821799242015640151819602587332978467414725830821756609135950230794432033829283252823050204960882020218426077228977452217845042297026505438902888558440902738669714319166311767156575679908303533835632409503026938220638088696366156732018287083942346053339121727502881319480880714229242972190356017519018948216971200754077823583570397073542746794835455853384481030921029374123502896226611194273735538523804495170751158714353258178176745501362574706524410496240022130132938678197508921122884077692590484599544763788806175787805700558859978109940516219219504789712645565310887592392486543674172737496947237275332848611514793556520683269817702185288268267708428937864007599520442679712673587910395434622716433598686877726736398577417671269671046397633476821783136713172110590531193410671301861117585211811685141154250560343071828293272937908638425133833935853743131097495094292064592705023262032597503742362354975120874322116110872772671354005272730499205690084336749842557175566819515235429040116008951745351672434007875050645245685935377903856040898865595594063666541694860934111190820233303793409074000320059160136660491714146879644563803678873418611454079964478997854820082256689619452405160878576749685506502116182863519119953604272118328330125222598982811927936932112474812865094643635499570472465515952693586179925659835337364605960323195768082229003115056648432759541773762720957337773606052517921226725612401842646272365293837599558945775950462603865350212404911367629689542728129118474087162083732522439338683395446831035266118852623079069527671086472737186259148413116278548916865825001391822574007732194555742529095840896912419370927040952271886194114887399381269601849051612450473229938765501896730636794014060001808957220791954268302229753117333822959738756471593901724712779977724108768311361389927966570272086669965946071844007086772141203495824139247598480244277381845620999519503573033473381404137574716343616161030659404381515783061485390798702051420608110520029919575060322483134518163465159557130972675994573885481346096022964598176179549070233127124677112220613566948827545028522398834551273166918036520782889938024816420527197889669501596762524723455665221628161455459008863025728225557775916178164234900846578058052961509437925774382407656335044930849725952713118285052037005780040461706495589860465385055299788658047633191090607097089235444179950903486526273127696518639208565702059929229455838489495055549694662027280963343012589272860306956091907901255492381560700990977472051871671746579872321678425364620924447360939858605951191689551953565709385600091878161542984548509759030755795902133141196981650823447032076783281867629281849669388357546639658604022902417905962139985771839129354438929348110924502719977759917657506324521252862096015597473306342055458540596465155662277656948118816347124757888944133385721903511274504705137211344271656835579580668872902707844853981912503202990888991409407498988273014692750102509796350056087514651777378053612292838286469314135803937005013991131241670643091213244921124666457107061212108968482967963022383126986732721470310923350703933039103889550443698619674115513206539479827967364580578048385099468755216375210017203356652773932756848866815297785558793551775778512735430812485895608684015667677504876496748369501592199225591479524280668963025057932093313469211590017102497540077167147608196946644654583089622149752589620378040608322679313710396244496788798962678418517203036817971144836344459207794167755544928889477437111211632455850187868574238879149147017326158835125701411818706812452371223906334146335451699979638944422941880268689558304297785651526829866502780374633915984773848435721601251310975939844024731381468579704802672125420341187492788179126534067592041748203928541552960390206994326137194581508214036990192746871793145176893300845043340513637830682154556251282918215930651815492418837664500898893733803354279973748963463206432044893671447430835323493510766072620060416603524896640258623752670458227828356850994071159890149133002491073204253845518609587400587659582579798430113049081761707189717443055005936669083422442496914120936734249113918149860719438629846659953291322230010972976349887627054653717388929423188178417799407410220982155138761842491265228607356081551074004245187257351820199777417487539170895943892158915639404984050701511256451086732190805102613272738792537583280305625251741232796201765948450149767242001014641060943318170036220445350795903718831414711734593316491034709481356806733916435530852399220232032895406842703364545649629076104052204491250715061236826461498175176218146472588947669397835952235876368102917732094419724557871046893792246329065526056340696065653656606197810502730358399094214530101105269021412521034249258917855338564479581254656895193954839498091599976473487169532601478330177412500815652942090433283197734792633849677425909896241684311897726986541072953312860436405108883645170784820189570026618912077241324065940042418769722636378640195147310573718956775268406425131475076325940070353723267698186060288919237331698658720090154095208121369970847228120467945001175812954660592204442008997742227566139271339029917673464737719452720583515102931358678555144742546814866535714505257131068606339915347402125220726702440959892338996583625309488791001663318608586309709472180663743888953921541409733870248470210412876789466393087774388248249290018209586386685485056017750165918994586458263132642064958149237413094376652397733674079339043208276431888012549387292038872891833540209514833827250366695598478266367736446761695014852557889012721517967201382017650103061742673434184195195525539060046641009826787023562186693769367375052567618174393774809874145696562700728208048474602859953828045494914942217608170241915623539435201478384908754377054687558751599332758017801411667438110017828210766702074564715134109479400765847979877332502331635994868785839356753794500056975267816609927697560107999411276547186985238171251046922806616025844486205808778534513189746665431161040587337168247636236800694364570801511522776845814636202662822455563912027037231792542281761849818601917468714011154048999863235428946839355599278220280182919198379140233963241839792035530611706049780434857871246847161387702316279043256464349913688466833413379930736974112046831432688652392503471348074669138133161469009377568908388748013866829806858259943304748835891473600865375080399683011820473469896338110553605067543587117996165146586608550160785953443536244539273152063141310374482746886473253450493284243459573951896491941136167639661049356469938558393980281160040104814563276587215230424609659027022510650227737612852693873028457500697152875560553647582066027839588153002375859018515232252436799098701226185775532841035713597841400821444958223416576463226630483003969064499307767732100333271812573194408534283778239943925489979622461380123751714630688567576228902324619106191286642755721809934443929050335545385574303498177613270313843577436337222245600881508712586488945392662897428767534601811568904500947467906228288165208713323575341467134988799286108828727252100380402930145974148466357879060183348674683829767857160004733692588459554734486858146478063815384562350966332636410930610740722894893044269675248704161932766965738045654818543944459647447753179925923731191739475811445406162628492525127324324606471049759136173615185600532526736738452710922174872573353799221579813456033064227793917884738439611451388862256525023037033445874377190307962048109408737386489384000336777368090169090353434322304236472564595719804593178065051629860833859316921340619949514115800264636250778204199914687460366557369991357697831618518870081981392989297430512438823371568152632721775400624098446064177933225867054872259732827098601739117195344664745016556291579076595521151829332401879375924831272919870876083759570904003779650085627168306720495489516131339285757575503477598261243250422495546357190021477221565246359478697478642973393051127141051619441239697239598949421536202899920003170633141413778895645292895786655976572620413867495610252565650944170854750811431502589529608060648232808951269105669129217856799398295355462557652670169118745826286295671755203158913222644595687916363940616076175741231157000841897480354456265681672945760927388289828099366190296112016997569693325196538196191946973151468998668815374147550816576595013673377661121165894373630593395803119372531490275531933824083026013007990218561291846658277430919207114818302030354895470738645908537430220638199169525857461020321102103875544622250195662871193309078452592587305862556891208751987328417192751719692939302872005921896075588079129487181202644935389601806457395045829838732208879568596862242820303438702863157927121320861591395352170344849976069225695759922604317220457108166461659642143887581795193474780512635546616815282191967206352769261662558578298970198484521015293341559387966916464336337071944620203621328105397161269603747161291540198987585596809209031596883567382812463120821914032977377762862773283457529367634493009686871798372062652265527801678544261063993160440422971306565239642200912602258641446108795629671594494513121530344798249129190032739717562983614219752117138253361722743693533439895707034403174906244846237213670256681134879131295884601737094754601716786549114573464415293590595303394114635887019581286551378944911411267432134840048930360168976846940469122848935725774654732564451137982493605111306638352409011775114333314894439727158746087069746873757033069962337599773886064961815894778882231683042343267175574388547540348245844371058243863366634412096324097043082088501303059441791153897381017972455282663291069259194709596445109095274779700986183110122337664879415497025465404553662581260000182941673412108901266105435276404513820850672481907737055973245174988384281051362730349563029343635332818761638974395230335729332773693747771020721795013094230868929782109418134992493962250226864886459053110975331437247675259557957335443211131179165245525739873969043639798275309428069401416216410542948076803563724914556262099922282953903779796883560815735194005318052566327245320813507996976107920767254704891060177753351058634555017513961371196992784379842809706083639433935797480898778549478846388256484890796326644587084885506284923128476879655852853488722767607362113017214553126317673822893025536057017644977872809641630606833103068366811461406878419136320345830671783097799924654478010228800856456158987915903607217496110557001877678663041373998657812682545003717056573829573283436121001405327927845324790792963915848550200965570141671213189937421078460009631764536587684773440139632610589974699954538488224212653003316040930714529753864890064975334868007953974925324581974694997821434353896625686769804468528961823384272940575616300797534380978425059231079927391850475055698747740201341485028368267908934149432987225399193382966300973676879576761722067718442284427214288481664635795728412724887616005342302213228256169304422249381283406203925424372223005442522684160249112291937194654707445932563262899182821290077216275056644898086794173677654013809491680190148736236588224933404783668968087381406765356019739921530676848047340637471194646356214604384326857857852169972986244940911732882905755388901313646345877742557721564420173960121072206385060076820972420008516964955218407838340595500922341598809372264887405081308240857824449502521955696160983330876038844480970535072892533445430314729137565101921993303389838961227807455901322400906904438412846014373952274240269007893079548105390659927284642155555516076079613567851880204067146343940752110577379606455259288474177795415326055690432944913854981634591787889514579077801370748390792516468607404017207884709595699221660600865291065618617292837986374106324988574102463747130513269865360934382582737831767661230976203336164963560252634590592820923197258904030333826809793751459540675599560503206974527364263359612735144694186595621313631165847288960453013600932730832813549155047820170339686712314939106370039647419193633236099792367933790100341356390700635705829852745270000811164187266505847789135551574202801771589345246338311999778452901412672050237533957584156776487645511503869392888979909250515682905343269825063608801065631863472490773378870556972733386469863671796466486855461728673096159971820198859290529861734004003191488419473383719310344476049617972311054071275661900765653577435759085264570555898259435512526436548814090677448456882737720987855726505586446392900470456651281980138442807044044231761089183994861906819301657434646169784632956641649215342627936153488905743060856577609769064432074314420451543616952276722063307129534390294193050083903316832105216245290362779208429103742369655346703668737853093050320803849618303575640376528863073632212108872667961490649507464166864747113303803913024755525891436515639038288277128777075084272759756857966159998352972915082230856627235945601230154294746637391691148888438414819882853177378988371946711890720791285780387107715969261112220396323325803560561205429009450241194596776358223757727597515592678172777083104482420490916830609332343879042212597018980336417551188355018664944308250568565022697771269428616387354157499547217935641909609554441202476843697304531592591828189160887591235217502388600917009497058397033384044309837296152254783947824757252203941143817725842950139984537361072073692102907498306365412332879393689972410097838616041670676982814787957359114569726043824059239692084889342234163264541461900146516188046770222448123069489576738232187188655477921452489717933621478450302049367541492229044531671494897296281795787971837724561214643715388624163142674474564284788945989685047036317538740571362849343440665478057967614546614699667671672951564040644928127246924489678197826889728677978412965430627626657857095476054027071366795833018254929110178858679074870355349141139532271999625710471092739341330592647659854064423975799878031990812520956902802821746225907465408983457882946576159780744568504922977519365273018699372174454028737464107913231187151440649018752449493151904834152930785733844353069822874003737233782571208442978678052119294261346886401400506729803833051872956279424829239816876986829194370336335054210473273761946899539663462065258624174066005275510723333932578689607959711157053655440190886940563385740153627407442653545446123089422376986174944349903656019913736100639075130905070877338698556628458050536709026737092927435639796953810707565744655800827521935270422378236560667382610926291802954016986549015240179172140223814230841342795253736273277560974854742810752150726412235161384938358796991883971502739844050089548837791945066613219765393206984270071913516305450267673773171954597210646605680402610755496038594836527682483058009722344700940751645352165271737999642495003581715739751478693988112891182082083500071357342580436494657368712012284013491563431689482843620713970447287765319494777521986752827930950852981243042437200625467705792259586065580636820245977138283293752326605832340384437207492783008096760486212121894793742494964152883917357933406697896993344143920977138677755364213786165183387770615614904284192851766175353725980520104307693036666216616738584579307819300870046485095169351263104644176843787617017271635470344415098668769244451336877976966145263616107002338713473854194417209011417697148917696219558107053162237647690536095824023247004855277649651176768454940999545877233682658921268967495670048895411327754641946393099697696963717772579539874884588709346742758241079150461278693353895192004438006516547474653924148334679664315416643266663364002313704999781546868721656809735389067353156719768066917304261465444891384984945383574175599314190112125678869376388223890178922625079714504886384733428194523971785711532920689257502627787624896531194963260755996023298793255577208750709013709436264386746067866012969701749301042926938615341243131961839724285138196178735702143472743967808177233841017280133896711447414363769959970631558864339116042377681955262378282777062705009477539615937561199444578639174421572585452272436445600675703520148042820297752123890684245866717097585552600470321322970723408232844331399650958489623595558689016797516498634847886705750511201060962618206401210215126936623915349517025548586981988792849745664978922934136519156565457412315041791040909766017063182428065805365602186867380393538762781946171278016718656720498286178687995267514860758163201844641771845864931467624979475680497838306979184926174534909602834117287827620615903541935741160711973284264382874124548744744935970611817471035606846141455708389273978096460193081380254579651589683240595557519862073173819940030097680393580260611239015193041390804548900170302326062711155778585753081482072032848445827223478907588823171189662190373290797586317914598128860361799028408670999505808103734899652716421319204921183012414530161082983894865747407434901455641783366292191970634645870029131789799391033692678378496882443202776410667179713437529244453579867217678197201784421186503827009256390746135400608022091708406534477901845016775815854348653813063830047987108856603130458369890303727946162606090780641932667312599332335350345975243277303276074478722070916737862971880139797183558525650391510597915163691286450323714696599908456564856231159452548291709302797700687420348109923050871823583401053356393436320327999368427275964391892314942869799007638927381819172708714083322253827575457066127127136341739343761929844713559219131793887774104043581736573532073104554404770666229864086061882658694291807868848819425611644095825288881337594241384606397481406584913604633920862227443938048890125356138092781035287354177580922193821495659835726474329890424316689777185099416220985562055707117238541012603283270369279420370386493499366883064352799018865960188791098249038347868935298201238476964535275064638737371707336878437766288958855165273712102179474400022607314863307830704644760342627206153898552324510266185993737680227205677477934256000271559015036023053134195293853519833252460222138388641388684268025991233207818096524813569472663733350048258820587614523119638233223427613891838408648519547476136488083108587162908234397607938883166322728029118296670953519575763791170693802241670815370053276200338182225227687062891901317700000882908677387410489226789746553919182754081316689467018372219814832628826372538917071245602580100559357924061780322085432538125525147726986099031014943579685376212680301410050821799188660836182659799835594738406055675084744933005853883533047063087250308423759165833776450681409022118862582116765473915465979776940743525371580101657225110062320467289050759195741309358460839791356665360590621138787670064603104003791045496327750558516142710750122584766307142538128899882483538067266276569613045694165519171636828828936218087895422774491058013611309737793471272606722600782823037073144894024828890998795220909534298195924026456376095000018112302585388897154088761641470808057876077164576435798525804382097839358135371929994094245129104462521725929768406258862472733030006463941888824317245084514770832614607498268734302991558319594187937813432477585450862354074627850326249461916785706706208339153098693046606378539573262827594806776530379623444625954676388635592318624884934814296818526403636595869276811707254070454112826735714174816656401973521529945209675665050978182325997420256813598469330920354675565428222676342691274118476838510403367819921223622657695285280692452906210427299730558324810467808515469275131927227731877980704147922823024666362811358976753153624312736098273377563232751050467779523956322209120085489216549083353660574207753538446451004856769593857648115972561949747090190204697546110507723240598461125432415414755221516131238832119209458244380273382879532631980379053624638839141872415164095117009763398401055752357660471935756748665375066159188740317276446112186041227387434797224658096454451007958862692270293533311030591249093084116690387033197921459786266568424381726555131286732668256966158521660818190800097662705840880152100108378734620964559438447757549317560418753946858562685512774223932131465671078884108878871172170190963963031876221106724722336975557630780257404224761744519895184351415179151579469006839449983592860898063261473404376120216842610109691951834626896179236903114578129920707350121908488944161682575269435618773048208537804881131877230160749675769513967149800666870956824092956818638969448525040299659788141069294195455055935896004569427495039474067438971876809384525107244266145088047241109993146377021044995641231719201663934843895708895590229699303195186404028102713384498555362426943411431295600307992347289256643324445221276325366206262625255702029950531915948611556782703732727029912534157702040625994699211927977177940534602792060850134733155516919964490735990924479449425592192246658214619726522525090666689511121058600362912985657385112815634449912679434433385864713178298875050815124449874012287734907145138907417976335932863122985447644542507762875602626124952073142847173798925461371194813938551681092542782628530872416438749994603623674378449635537264880417423396176452199002317821082368201074989314138122028966523187498928506347893978632760893538162830736341818757629993959046150730606049828120294163886105667642656461910678631948905540870557117309784690652144600728478456210161727975504734639654113997746848445763257422454416848651214587838140954628930805660621156945040346096014864706048950719516030846414678322207300508518588824158571288692990017913664133393056348984710889904522895999970479161506992777879061552834819329984888799969023484381664082767454689342714548842069589189614042907240669468676144432530552921049412475131685516133683060134942155977360499521019811117205601612958653139777412963462387746651834585516916816674594945359201215384194217223687719583710409784271970156974960384901342901095937287413946144432837105862481792197952363035389234858159501819826631718503541917007007003134160586409305607202850741873892457752722138473153887818617056059940180632331844305902914596020447067194565799440654054230336913324809086533610179402674489415407560306317341042395655477649033421746337123852679739504078963186719462254229497053168136470469053847247210296003938490762656799904389564141769720472712696844818520564407667514612128131101950374785913866795129564432274663235276269580635980477569627484654189385242088652009720484649754967470562733884337050525107040669769632267048345774610789844579707665549421308461490440714215299912484780175230202129048111187202862679784520291473568724338019113050149934970456812043958836273554740120258110821198170093956150652286410566616275658489950159597358635008000154728939396932561564259683923207655168223618204443415341261119916033043770302497853640174437490871982927607004722101950565869877196024317251091941819066354191952016985627834290734854074801450331923564840240248424982166915342629765545546793327302356541306782162782058011040878510534973482216983100260859021467345554908121824074396179413280198399508119203695236492064606382389651971516296512622758375333809845332744830372389817729340352972607980652637152693714544917507468193711087272753410457170718530026590048356865434318735281256540397583555345817840195893070837520652298069604990094760201623663429768445444513048092730972027546708925379088428327796646823438443591233574858843865683738352353242425475546045057371099795050322218066444931681065583262320001979498624422746200962959752413148620210231695543800548534190182365298407664717232303226341141381896262141831790485896826098703929145806319806962584711835385022641789281410132462070664404122844670679667786752432856268353222772917182930954596946415023628001595560885999304234143412875683624377600486960232566376720579672032578775531952973221939567230006639172584613658820335678759148303243104378753038391462947729098177277457549276426825465689486151805992730136865087765510777126124580493607096489697983854985681271480532164818295853333616118018752674268731614568588773587369522696687046786489781441852276485928301443405222498199514791450415865382579103535806267561800990131681345751371843366373040642842717950600199998281744178196420262907721202994607397937271848028175981590927775996732297397809826337345963870215093836834953670367391458288220584846667150045962624094030069697402595430760185793042296284282914978920760585471175981098901473526343323729342462942080240066186673969236230358353659404658842617624234279966721896891120030872605037969496487329358700764751278362761178235294017702523711557664049386288293038357490952857713673480920111568912439186523513147218136744551911404195557758504363888514107893625791785330170953296476883213259777894696118465249200460814499661745507174433695430737524398333557112522225727253085382982072489024423943533724140796281073533364785074199082086676697080602055841454630675815351455267294464560321405507642334865486572618825492208585108060348628499008685030273740577815231375095980315897927440427494048836493520026597329111883478570520918160966646926556546743448666778654497382799598562937927983255996461480446109410398968534006145929689683164058102171841649040083319682909861961562056683479171881322121644702570028973415688018050883886977258292778529246870909701804428261720742322885698258683953475408309451208690078440217783137155879753224151577475123903205574981494788250198326422101395170591587568097175678751224392059550880359864667471799197771977293670362552524500979006171999145728158282064167410474808651418594811872400848913758486535894218741836063227441310847603531568899660576857568278086844129053246668897979516901987093102458534404225279017471234959190737430553642429983368192660881192564047338055227401546207879992134525877932667686793372763508429285527663212596032300879561713832510768004820903040960426446211082705604889426179831288227894378078128223529654346642670528938540312353918664031195313292262892786173112217740219993800625151489544708300963966055813098760926312995470836550822778250894174838235015477057258142555527776702801931764207580912724569624635298427546757659342905513703494491338588040581160675344974490399251055314745842625670370719257099244872492920484222455396697481046305123165180111778884003546817915094555026650881468363907359339690306738410140354866923349288594976999612602516335503694370486255854435203807945354429633672107920201031777327360750983050891886272500990535020810341366978786639578700974811105057272293806396329266200056450977083198456197622815991582735340381060032666880518559894701982662013501079399523945849374229695672054659818873133107642665906551368431722793111589894826820558228971782421979222273255970398658551546019457415193812969482832416035237506920592756682658692416649214981370883039655733503546311812458288056408965389307641098781818251264981955590641522351933154882445345753623135025090164083605560951545923794433320120596973259527465793112582485598905873460188524334467489433184230364438699361065431183817215201768018676771735647733874336880456075026046483168741871640188631808663381750905477203939675132500956046512321424660748785084816543886200393490325642875249548396285097083877959560795821870917103285923966166211600055279895978628630529517333996571993480300018291557158291282841757792261438320007307426334726788186280498294167705795152695170434389973906488272766128869896942412979206508619237415679781837520891439933918562099563150220709481664560928452283420462040225636519299448356115892356272190019470055621764140650714473002286360025742672498743663910045399612533011687044765291950830045374039176651409986701269434726930874385771178985675463001559603154074116545764908066964052971052022047310620435136479060508311915821219423326032204908530595000869378576167669653346009378953799055446987479023580196677907517419204056565465443420066988083182733697776166359890157056928296033204428087109711673770679123405883530328908114987885696484652678783227501363284507811293047444408419911918437710251994488926501355952898501983746134885116176647801083178329979192006307796362157265400806192799828150411935927158195315246097077520322841656018437998258389147157809337757648814723861627244290235456498166690403705582562762794490252916286312997014756475741056404532664041628697876873890356207639867664813797695195529864062994702656681143578705160075004196790803518671528814495683050240806280492563255842562290007066966823680066565502167035727413030645284180748347601347795620283405021985125201484462095793696107355369832389371830051310437917299671744920182070787384438275996403779803527606847943719421621792890441401931023284348845934536600228675107663422352260114762568844476153678886993868870991842049709938663251382915422740634129986621511880812478531456870563796405434070804335981975791894381568538280282726652656400328594191532857520175842588844265294314441489883806547583734445101135528601556963310296063257732425719110081303949023803361211803719635118957816128866893257485933525949881892679830015011241081576987971631415213385349361955912224227696390408546796432601069978829469594092821088797702827573089244665561383241675297452643926522680970395379052788200254027842689797581477962007513887121219103312116767847070909569766841648975598326019282589861166251319390222545650915095252366652410514134629231428304799758264123227341731826055982901719042125099233659358434889074445492102419273692752882792760002265472384973039403685656585457437349595850639553571969201519518381126991859086929380133302342472456779111462056096585778663228613025673226182933199335218687298368627589884048616851471128966316147176378349949548824841966458263516551915826365891603375272063427417030044186965470641647590910736425096860500558865774346400267021461660581549743266252758546256096236308005505490394468210401128956732224558607318921118672025863492385086438326553167150709719908225929700985825034218989778571066319411547969754987710359735325867316169930499240750925151419825614064787530810523257187014398056851630181233779506045912726268486731673918255117950812905353161672987893155116830805034327161246710092854494071014570585862590254944393354717343508719027280514823457578032781179558954793563314193500572102324366112848189474129225456369903285661118359966731493147223351771254990554047465289677330371850616072598085532505814306384767406727454364449030039690724743913142798455106016675036283936234524415931749366558145163361361143552785544891671845267161878000671210748339865720124361444611425708299725924054279247273651777501783501766255704639092666907842470330529169733716793259842997820777649399378424236416618855528964473799461696389998247482258842070849092785573717526652220990919396758470860222550511713322532032466467905037692508388796225500345740222818595152288967462375410500175102988106399373081327639209637197319431465993467052688160625996028366637820267347197320157172903152830342565727582906964785824809795490635917821519641546859543284148615067334413402352365213441488579922200296745706953825412976713500296049616176169557357695952720240414467947071731008397487344537380631989963809431078692160189223028386128556467327031912978821936529158948454800027897742460942204535960622147139322310811453160894448974211959683208761862805155034068132478732495529177681359834495835828688265877350461928903535131661384953054032612707451377034290836388663655078434444875878109316128372301819411845267407898507176526469150103753066379985116361254433049797921316186746273686630773290997742559001153075032380167484513597308216389478936717351817380263097229228043249823619134311640490981538962122445957425091086165229230953389326125351467359706786371216272335917436349859481137427268095169617125209292825442309961394710414240167848602789992312295259159150460091334314869127930689500314236019300874500324205879064947403757729329488916129818707492095505539444198948806661766774157295609601568004278415197520943174765620452988411986407627173413635587672095238387004138355521406287827979722664535255085229506396692110806386283317737445361717572363833579283512070264605508358973796971703952773714460200765919817691822393751856265364955078703221556245181452216600409332493926191967721242110986205416639755000277632054952032276903487482841744852091354948089544011929236950094771533900165091548634298451878439154043596451569445063164846536706268280848498466352010112567801903423597565106951491242288934082239101860089203396076852156487762082338982035140475533011848710325122493947604202013795004558788322282581075726514231244358000160324068796937593687886102363731697166904769760210696475201843369226867006709395250132590027350181704217525480265399379943964646231566521100511161238256230586460433958565358230594050970233070760976508752300467531299097742983286631414453857963074945509606009004818564696661966186124610071692484393642260006152212153569041481291680136541194364329507476508545417014805615630329116249944956062077729986801463500243361875467984095483906308808131128789797235704481464109631680016318971023370849437873623246376649514559418067722146358130723364697329809414372174885266536916165239439085126236449924706107083344918137386380493924888611974966922234917049085245892651329790610952410667286085611392244802785996173730893709590704027354422340321453095623901389139525128792169779408546715324754760782877939348519328018257819687844362899033411909330950860192527402903979148008741427299229907944992923368833189501084830816067106084312540962940310799253416822415537064822314063650216081806427621407813927106682968818070094454028061329407914905426908790553026797973088814597995522636603558677821331359161192380985606954549773547551008890061175548430903558946369462673285822466377487083050605747471286870746451201727867730075899304652361390956369806518490178511109749187685275811749983723005282411553559365713049678434869533189723026814440613499808240159497576994981765895068040974773676160040361944781533140074701845938019430434844929587816002923327855565403737145544973919594793340271877960064762100098651855106533290882419373482248632677992145585308847602833484095770801208940396769696671055097811925408472115518434621985144247587378729176358218933867065579274601242205003192992567818373093083404690346279615180787075344731742881710681680398070926826371311534451258708832564946053807825658663064831562806249993361083337109635197378956548496531124444280576081292379587590607403767480853707308802893970839348466506989756439183474248060740879192691127175484499036336107571750953415871584529987054618450437372670980329686060952828980485323143976088192839753561913803520740214439174733858633309747412704571054360344414129909824603441710089375377568456403043230416939916401507854699003213395134707657006649753438788200245220398399641806685985269303821438554314873338757968765007464333159450076655331698126254767058965493125281451134172559474631821298266976566620864382556944383111145025867194989349177607198550200183776853741761893685575319884695381452787087571249636125545749044009728582145209644483174772003874117552833269038031144202600676029125044853162712777751621717019335006604712257563274079204205701714242139131426089524076047847678090150486813419079781648560668257078289940246839786051359243726063829444662523761716563536392969768102932691724707893952532667297490443771810898800499167649592981087257517489379985793335695842606687687109313190524233356957531627623378134527291495868607004351540016097490745823017036017924474747459565220738158293136404457483143288263453149895372013707825778953331733401248890627923290627837723528004002293353288617892846162474820804431494373742795463864213820004673629378128564887770892762937516215966764926610557898634182380022821373613075089664045201731752864277810726203468239314633488252503990344292412353506281102289880120939544707050420964787441533826651631539069112250670162726111112875529470975555698499795751158412768442292106848348654466947318315098912385851463847482330642242288578608029081002992440497434553662221570691478622684970780663074338356698041477505417251162237644410778914803349271967827431673942416563874375086248285528992746884662581898923800813241702970120732879780046520750587942152649364759465280035852400754417619704300203426147150044242805826843406240323481994796984499023926219060780774523557014282130843346230198966369545886385034724301763642865882106167378227674755936838343292441033430941415362003904422063894085398155440058974603617664928572778010722848812687333521457211138912878837356984909449208767404039291990917353918356537649124132934360110944344295895589894637868864231240065601061141160047958870813357116293361176814688832153243981796784134961048638841002742692832747944424531050180622043784918579050842014960398672144644214410078014025168096795399148603118278814019009747164549518671145639149539835159734756392491842069723056480441484433463386018427417384278613466010864596091381468375637064723837115663269494597200801561439706439841973145752301222023298746276153986576627753423266009774796923602453423482451983943971994167113555135020365956629749728388450597756959452340738596738265366137578035634985226346476978388442285165493222023591999574338751405521412294778365879572517706125011959068457832045577980418420555138877078931600870076107850312755298415138474324431006908443459471404302788189295416577122191358564994366276338410561763684990733073165436460784574414190643996824243480228757219949728635823852229360920571642906181948608881990798433147419125109555428288773516015826356979787032253243572048905504015561282194724725208831128265390309549827682942538594502851400006674825189173151432167564755457926256351256161229638362092278010596571704438992369601389848648707684165749258830765685374160274609070297267812198804654224569924945158180426577531754168388596496132680493775608655999594547472022838962457956046630740208006028483494294357485866298455975765758225412664923123845356751918984141006183426397742935476542313530239411061878022103969796640261762947172043186199792830305049871653192088071345074843379468723692277209796800615456620645763181444720160907963435307995675994663126287000841489109560462238694903568757733366075567735570887998149720905178453820712956493663735125730134470444505293862205224925906625484886473854335708120537301055374218668660015479521177023583342695497540109739644618432755488225891477152466913447523800067132401989519697547678986642541397120096542558611868886521028574242795461162700767510792067312573477217414601772701861387003506643683237183484749260108656018130589485101620816271500075904760964451639375723315670508232689632329110585843337044853709376826168873288199133017217996589323895583080384211770132937838670194872129533435363531636244076462635253898099989338034835740688728082856460658654249835424839059138777569657335736168235503658780591631962279328803008931864466715754825860156516461761679276673790521136704311474948834766342589014755743804012322195174291282154602250912266180899239992047124776945667317493701489073175011659060797586025778370926328757796280912222392629984894088615378601130893306734849017542113651607595047572347299561402980280161609834264597682389990470375048219540056265092250802011124438724964302207408917939704566911643755800214819437525138691424152840903717165571255028936105141282764009140184328518394399485318584852475232966146256194333848842087713953325507935789985955944323168242050756905153026261417343256217940382449244014947960776884908668024656083848388620316454264564186439276836880521775609808446987297046479726460287939992774796675746962639110066389931890250151875225468025365569744806941234289403226706123592293598898837361008496310126130439988465723248989983733022455619433476064075977574129286873093379397230219005518031282480568903806545953589988123303397500355570996407423991336234245786921096974565033045684099754622457413318035174284469464016028784965513228938483151862436360507915831824302565271157212665731833010517574316561281540635619182973971499762302351726528635808118323532572045241942956665382681867028705112742853497411831220074518903347078491757086061016844014456948294326524204840338372310615035645772696188211654464486036695582386740625435413372164589119720162357709272609703168548250290386864950330659807648026416579539915899055945712069368452812791969879678690610470564864379641821540027235208096870113482508631954327407539671646830450530991915265753755508432035005922507654841266480348547175395444617704968211943400497819201523811931286199377950161963188271716711641925800160853293477342745484560212585114950310453932536967062161822730166596274302618342233092295418686214411658870807220747612038886326886517661519929273575290377769704342705847581123893536998787134752808087401281427132736656073387160566225853566824301061807613713114743305670576926397937506734818514474580629413793925095951556003859920438637087655003552703614231794630481063818314730228832009102993068171408512938122578427659436423621692894610994940225238078388065949956924018809652488766093991853788803263500915562623353568512190874140636156503188497960835503386162913405127463786965943363667496340867800535886989949582208876671249944339532172652129086667381951790449458325691413906714855272961188383488141170777496894720808605159087672874605944931116697333926284892135104179172216768312168856127898953432557475390741381833931052211270028192923916232949987030762759456439034262513785336625815786827194125817278997171434736575656535663486302010024393414271178390392233313133796743924909541684652897450015029114717161660083018681486127051955901988969336442844758280238610907382659400972658577144752006292060869474697006169957558897130886644548972767807126811361929724675597248435921612843185034694805704663596487142578487905620080869039595502174405426649016732007867550258807829721932755748665080382976166385148541002505998425821416141992328817922206944301623157997567341139281482300671495307671552488833750130758070129942054397956986036354057874360610202101465590770210278678772544697842000699648635770915295672845107198961576413739594883560463102373866617494840117615095578071583490294050179077677952770642160673684841014772871554931014756925030392994707212435111189584328849743150348971716937931946287012661338158350551993352301931268594741052077240809834532262907186110957501851636879123697073209287792711560898100392984907179038326292374726226035312164909209338750248378866065616946246807619424487664317162269013430472153640618229979683236624768177955558064757059592546048336504472866944765741344721635677048910073312366963249967319261299664989207585632848998770607600650484958534136022117852053723635179381738715213657342879484384103667959509911851349495572835235684425956844987425248307244835785851275537650045331762149941605940606071795049050907314901164902490581269660837417365126054488339923382860015059184840676702902587308805260089018778375037061105725778637433946262342662379386834686335697745804265999595207181102169580411749080422246204773048429590667364226124770831885042399103417637491175354590547414244981717531927396589027573724187589544955962343786325941881950851185626899998435198948527830142822492487273153993806626692124665222198503448177343322761533286633158673796094077882502498290949008176678466822211638537118607464923314749810280721005391268074731498943476109089776112396927562196906486131219273147801705842082323356420381810535305984042587727304919349596390428530265248681919840961156750135777207198005623013754513743551403263035292763783959698166391441729251687816587046641577821155798855803874890713747466194623504315530573003618156352096303365587744197713100168574087167505174331799674819786639983093019371577161720214362550297881319854384836805886401702546051955319634769494485271324509746566323513720993749829277151054710587002681148144759181789846545969301963241568326861612455517995316043902891152328924016608284663464583783459221232222979182701276370902566129664573551787375129763101482648737559822583690057509048519108083622538427757929621310244414813791904527610050495856916830575033284664950336938825377529846387208719123538543201314669879267576021768214672340916898303086435969547064714093569801716006725583639198414999580521213128715012698929312419146077495462090517257503008578167996385642615085365173147048948322490503676428268382021501775788724113300275688852217910335868139403692819399569998887364440813143252022149755967659056700924682964352269976864194501533739673677333199111069474275067586162492197044993243884089430747875339526116215533875444102357364286558057287888683248158670039162764487473254848982078887832928913469726363517287091917724988196725948028397780568813906183969442486191161982104315376051520460330839923240910529225356672880671920697286326347259129764570308037708743115026254616485171387504853393502896383144674853215049650425707016693530936257534625652617164086311451370568677458753690802104072884329149933611278084379631510151749656200339891832462713781979922129527136125814135500767716244722010685109453486158813206395237440029102108668787677011325053912520814433774683065698289421738476155426089841284131120205995211648843968766707625397976813804842017301730655502179549361227253161702184230601037921150951829795592496519245783791344351511403208304465196426125530122155812471465940481093865251434801578451513757456869219784252793788001494822037927239604115547358077146534557304723019129537938989702875582455830484628070062336378162666800851693562013379548498397089945002472551824117637605291637804009294776280654267304767851764034960093845576906273895165243693417640340589097598790842660263865428157392358023918486309280677138749533178618683901117087000784216198401374257899472602930011103367098943408473847494549593502394121580875420052506061257882581621641675979806784236207656462244087650764076256103541667763421572029756736603860620960092529726137960366609927730454719460304875644013361075234541881229885155973431947161521168418443780054827453686560728156805811135665692637272048538200078911974503792419288742500449671656408989862891982822342136046741949118172224335157271095903342529439451128668599698074759241597906140521206931292596941422643472292386844859515986518752457076538181978260726710409892122686704738709646887180937333039582027842962330160980936019456084261809386136012649883803423534858682368611547898734181747047441041018216540288310538490136780616185241696374185206643652527316899193299020942940998239969949309003340033633228597306656501333758206820839885241697466618216120006767481282423772078461761465935472352675090220011209448593328629655832737935150231649289489538693737243805351585049608353186418997447856998252057326500755781479781520966091344565638590567819344942199730516548674834754056841206821717118394944814156170871104752650921276328827552339817814637687683870983794952686648399293133306698948752950514143203158482460293072313433650650083763917624201376879438352057839620408352827658508776647335370527956921103228886437073983936275451936342445386482358984240108858217673578756098731783572114234909427674360931799769480001012101432253803195009824039832896624123375956012011062661359527621454502350741002015634440078951794444415787640389203867645192906247127828158978364621482578634749250121979450485795299265154736315224841759553297121488912433723116139426963621253995215334068352372095227524429704675269943902632848963802660688496035395047862616455695094542525644539324541194183465317185190548663527665808056268765891941026635428204499791945809046680299086576365368463996851608953144349503715788537923291672826517261490358851200084171384701610764730846388168234812116461437788189284303842345940053787324385163766491935847942412499790876426844826114758890960630077135542061657883035041230586397950743485498913625665903258060825792135058936356866245037922298767414448482845788288574690441301808916821087141859795947949259519038571093576069016254390786859969538595337693194756317820423491011633638374149595929050173921653539806867801835531307968070429681407360650498155402761682478796027620603015132506110163401710700334252865376926300680800084617311548177217904795971601736097883636960158978731232005776692955239062208394284467562418661905832477577823960518455066919219036011580367780960133159139765875000125511636737014033719578482704189860606355724541344166642978921270948969447862884533760589098939225579322840992960454323134594770192277663533833455937486056234848330771580163557318305378486613566778518147715593905723311404492115875450832597215196559715760119201334030744254119057255693018614589249678123967177284347260800158819665375363852357327179580533097290854207087434039675695342434766918756221581043912008060126250837283244686767183157920946337113001428060555043462166862889524240050678638987723296435809556070513913838963475181945105523536368930921608400831294070243719251105037275050582361204017046806960119199520120353230975481466133712785104633310000390564421755498984455602640005825172159227929903315069617638478397223295257901104558627493991507068848231798132204280513271778839186376943307724102321461960733889213107195733012178219338863584598711056562159878534481945076936892651446984120018411010051125808980260126778430287189765648699379803573141225180615635141661442679699734632060779951645233123024130800415021780768397974251654104295368040208646821055966520643971468938478443180602791631274358185249130839941766671211922393816336034698025021463447446265679422283436204221655558517358689104440304794814287841667485700887100112566915221977283249642548147349738597008078326427818023187715930135258183747421012025005990019661730120752296252261281732972652845374984891554169127150671094527432975432508576351836214626916103387143741174735963726373469208893261243226683483811357757807101707252438320364426195578727351751640911649520593531923204777462427248039962096307031315112543770838120303655028803554121714430703385901192597251413279691341232069862111480487667552051913485631560175241910787863443711853624243671130430311466480530432683792141728871495782516385485819726585041966341704718842088532450310927809718666479742585918122191782769737410268768834711463957330153714398972693301838231400792241372256039110187187141063359038180568265081923494462683411176617210590016074060286134742874469246664000374559170089023447423339426038393800863452647755403903663019937989724787691775841326756294816422987824371113913247659348331825451150432486068979438031778999113944049762347406581266225697997581514760256766331351245143257593934431112794700722876862068003250304516779399745324576324718580854728492992922641339450025099131044544501107488981574782765698472860018254266957066317184209844548679578934033230595277405057320009288570438965672863492273134503959874549573698641756001630675829308002884673295718146383128630643519224753937449340885798988452948810775915999369665527441367366611786546492075301742476538551230783403741879681175299396799384774948075893583342776259225365803316566193351485206206422360244841013170338878158140784356859822040731293146628319438423245342266888247496545917958038741541741525269469881084131580544845748515525811986285951653263699850491327623395989685195602202044075496095978052229446186710950198290144379517093506218194201361225577789770094991787450369584914698194623133308906624684423554531997786733282810504974598148649849205929201111373877187299574585991112885296197617319619440626630189189073893856751125389409664392622765654821316536699010162359593722776929973675286228590134147677043605036655228831380777361630359138214661674474544256595321109306115900682710646269734338334992098961290280018745427069857789647349830052386659553784736023279500975642187845599261247053589868909945245025131987153990868737317989085097354192261225136815967868292672716622408457964284597708956534667136340359028212750425313226051873937490115494428483800662878189812982776752991165573129905637195722001291327435109323950071937673207690150131714116398123201646864093128006028392698590476717283192610092259269898162255970430071602826093193675007904934324922674953923336944013077134523303102204009970818142186529845245424600638256006400685388301708926703351034405030019353793848257381232384237246605458256342381935269948286944657250845418010548305487497993248362868842242124943200472145696264164858142695700822708402218911905019845693371499399751229497110242311900619171414551171482811621203072222422839563515748450320868535385618905697317371346559138052416500878251203957902751720995402851111201894355663997214755374751110774406248111677812271376293284836335303570707943291017776165666840665718154363229006570665412683503436942001009455503566782512644752019606004965412480414579624650012090804492466480808820836199322480867326019529990393783463179332412769918960426863863606045586317193757865989873424000819644545837125994719047555055592993244180976862873805568633624296553169237928637290438950174956829123476245023822249090236214559687789791163692252204072834618508964245276068247441170610206139912736673532738675871469691945022527060723742681659560488497915843667239906588967896070428191117012397355265562390497584488205343139479220176532009191748556740736696768750189771936051760124274194147080708710757176679759489296585254598928888895407452966491926194871503562080621913846865759440757597285598430572569691936499270061597908481133779356309416600534763233556979343523042716148352278459680977110493581999562129319157923737985542732063551871415408560434760369097210563191369248918275776819159288779730475557608098551903496513914666781222997137000937025964790699069580431115318569110416461977931170328549072476318267918465586413945355199511095491616676835149010024843878199629105787769952012258477202794915736517761469266282047511129783742574233652752637093185113466374997824033407526559655159062398592481519921452846052691864382411397643810622763524231976078432767530884169222661507386795166722386798113106326179584639653288782132581164313379139850197851947101222544565478234531071628646473027534623559314635102019883068822848734977490309144152371203997608415397437833437190586640129745564311577521523541118460463858299799922358289620437640328641936129898202405901846571002900031810776962573315799673106304536049621183793604844297363144746326727460473297089501898563351267151028550135627771875037297340923731062554736243484146919210389623472493511433700146746899972988717399314694654262142770990294627929215896682856255672614151186891448188087535585879655680008986138412239039151816591362564120592092228792159493800002719110111684070627255647872648310195066779922368416944663468272935146103163727223968178323288504684308974709181882577951506393484180120330742337842161949475333681425607302184176488879836286464265411290173424073593823395516878842096213920088433771221577470000267894185154061377721714605809862220934654930019376278342131245501154668294391083771383559468122187198983937312097530839706394846153713420887906909896440854290012493244192303462931162068368758576808683009382301964644013910431891623582042628399426221005593564802330284953452735658119757764630462463749379824356288221837880953229465998289866334456197638046640514997779627005108077641516837878702340352206826145679258445032538881102808000035274229903838633695821435755805732413024118674373248947210817262685148760292854412801146285212950419524959127374834191858169244400886330970207029950659409762804841528067817106749647024181680317646883993790127695933886999939202666029649125308689572048788260110214439433441879691258306226484702866389000344947172692249800387476243389564868359792907191208175688244299487202595654870883786776875847423056628852852296312434447755356224499051662324678903348079797617045222951990328216092127235432283020418492407415815074452400730242959133152127839707212830934863028042192470826600030339761236436510054328617962425458100392364759366801869954112667895029028290344983342269932926471219079831440419013048473586569645131333012828018231384393394387543972320447343238214819181791800925282480452374549342366156573035081370039224458044452032122135753484774736130506335870244572142498859292050440489937272333799414771587011180437368326595352231055499400700856555890134136384849895146728382494195716617483635466859896824325718292139455041685832353750929131170474392772986889460047007494772499560364703843628774992708993872229136815869566254809399302184992786442231319157877180951908055167938771457852080962802868253838497228860352489438061287162599310782779917453623377721091684083223266585728767230656346983668078154156493015796612133525990771424182575564591575541864960853670751498503626511588540186463951250786373826178718851343343152149907774061980484084762169935032654331325126812273690784625830852367577446985906104094464762737414536908500411871387625330241505711552956135575288797701007414426273861755324525759111883416614495194247250364817522682118442770546571922164151363559546872042691734408620947336935305788038295137607501595110922980795846977110412693804176434782661975741135596674083112288397629215243470862520666934669583172200651037266965623058445302322553580900010572136162037780906809294162719067996947392674050509256209438148483446393699710015668963460775527181807640316496994718605559974382794107259467033433776149440131712356556010144137351921909862585447475657990714329653028590801066206737244378519531830540792353834890164209905921588477097197578466257023792421205790493822961839067696663132295537608442426751221736251896941841626915615874928758902936723169354958205764194529836298067146987385010117391224768264367659276284846721782475364846405319713680823132472466983735038228056832693432896256052049745108683877146793793354223983205178956752998778427623453563231113513872415439526572512555888180635085272603313352423883860316949706197021338049131429676910047623082095416091218044659403286078891964156464581440807231523228485198930313883576006263934082539563160053101917602800166066068785090263056293124312036316319174388014860586622544757542247999883935108433734663997853634588778347525103719257550178450677116907152922511083048423148601653368603924638857091247217368869017501774427888707867845174301166760004852525366379554152075377860732410151438894897948829635456868898514898228982061157042993249959249931908862304328874698052765829767908689306124189481999596033281090663595713335255143628794443655677732106634957118907049653790113799183970379543938369794089914981478984881321882842567603776899754637971545092066010788724199588917679297263696663596924746119819512750131884118764000831394183040200826722896496929046291138123784061140873393047478390737819798203718315669951672197256495617318333317914632708350095343279141393760057109659430819894463720179980520387801316400852164405286780954832272233273563254633648653315709430229274634972708060502010651237774124636635817975601939448813190809986791823227817954798834633021687482270812639197171653764546937407816196496187996676793947027006340883243654339873703096718164237793889535259394354310599681722580493893970232654884280301374308116011828594205064262534874460774537170167211488905204183223826457072331028266171312657215225085296499414204818963746090353978654574261373195152487518073458254080076743693010608277085733818905481283108011644328232129998515362979838800932412140247013791478924582318247490486864660984325259178729597921810071187599001392129793144511306345492954503789774020091844328773457450672147421467464731504726387413673177741765050587024865160993964738716481359990644525798043225917231063623437301538240296865142431187867485782842447367271977717275004314593330112687049473189008595624561553999138792424525525581109642532778357341941877843524173081414241187231129518924479744000455935217916458729983297417382897455688586956463826613415187028691035225173316706805685062414525255091985587110488227759185658274356396279874940167813786811842706067790261968709309659185160686448761602223709936346326001000504480511803419284600249320124490493340273265010262014000992096675143394834933256843585910453524110033262817321331374739757512931306579471790747585139251449571606562173497123874132852017210836990381825333831161465960686177934343688337999247437877826167525049086753921349855953799143818630947600796803010166706151381238530729407453304125732178924589487846097276781821969391914391307782935216164710741810311517907759293270534644097107673616055006786593468552323222614292675471242139797734641063270236879561991653291849364058746110188115749091746317311773802307337324584910490344935942262635740800467803098215771179319971260871541001947265197855384130490770049603733311143651497211733681031220986320715012528174354641157563375648153153498208762921103321331372559168631859930143518845662982597353500590196755030555264100812922268668592373770407066152522592117765876347801672685661826987491366905760710066023121134497951043463706371125408429287404518271756446318201089691449918530090708125654503656931511196435373328434915847758558410050337340405772908480807835879842417620657996299311534676589730763252269976293798732348398391159699215696397093829825720870288018420742999813767791929767808226926616276586252569857344363227116094537487657059059927401283918683902388139231959699146279355047649600105908092744124103280992112314771576670604607749702097765649172666188165221766375305674967266683969177458963510953632207939787489368252097034765982230413671127385932836355117328872369938850674264435546090549258156317324355408906327458690013220814734872982488375926481847643421630119583445234368408358707185974153648244460287866178790042869855146504390255642335359175096903151180918452522397277513079177798295359633361386484649098449379559648892773507287756998339517185836522695106634223170453889707595396116194258848518572232364759288094856055017257273717804988971639001107952065334928668813224122153818356510140171232419966893693704912468319996842502641204634868662023536323242121790346742458976209351642567477178607310976617777057094594286402407312418139555398412673515340456152235316820665040505090806917575857565267922431484351172585967268437665473584642386095489522852557999813556870445350834013724661199000405631958123908998780910936032888101252103851049360438431311547751222635568148066695841427370679373163724206281076763842391805834975861958617124881567652455718370112229573686936645326855836513551430718844570001552800207626583444926072785559072858235532762144326831150564959727192009223636419977332957373533170078853778517465531028068873907713750169587274164628497582295186686622530346830118474258312706874702300776719932433716788970691446511779792240483055156299953751780282914794812861922106973811520108604920695837929303012195910454132813443181441545838428736343637817537219237520638598368385450031676654142344951281992751200221597470814423875093232625786151568200442283197990945559461354249403325786693228798922599092244983203312886764166180748366789876114097628223312829952580742827477605346647400475323165292970323833136689487304965387126569037738320218902693755067259131676225214084170164181497205243723529128640659011582031964613972009439793694250036253176148268976171003728135082495955593744244416828116640082819985988690463244425575217067497589985830289714250505174424745202082175719115628155334680525864139301415313710404657698236443180438988567810384486223539776793469265552156600455138060148533189016421854208869472578777657139910182466995755856476673254115157286306825478185738115005733217159808105909184784712160246299521286043571899243433550806504470997867274662137465843757021845888586249130918064140577073848991202619542810411044893349012250305296935026495226724686469863492786364417303012910282924845351627735412620729713921055566590426457680559185747296771880367017938281811623611878050698463219227856622811419043247786000630482433721354916311773821751177161777624687436856115224921170975576291464650349070421765131990789323015842541320898697934597041676601514097652861246075278685757787492240915895697598827509799927664744724541138393910224473484109240177894215235927403741541413269181290555163381153391956579944261233766204556415189399301534499947186554349521693852413134762071744226413745584799166268023393176190331659062990951806017328804449336954814876241982554728730815563302034934693004174512242631613637770277198872139072677108031101732682168513106011343166681318394703745966240713781263940615867997434657610810104095672375115541857103782144875120824982838925968334115855138121681520548474119163722931690457747971294464618787215180033403740514872428358090349802694368114804729493637567656476007584629391699555953131539440545467385802014792032006074501530232087093341135784893128481390957332448855032151466998128530209845529959165371323720889279761562507743914146407544326098265607743375685799299376643348877246916420521369219688616809326807004751104104904771565001153255077072145324778648633414288096447813107652939435471490667992082613186424015507249296514474950205845579885849602410438878087711062192044493757665296464387789531964798337323959580383101055287569872782312938386302191229022748856502340586589341408971436851338065155483854599123591657176448983773426017598379779651107153457338350189578454413910184366884593767411669540310124352632511633711197217735418756215189420308054697983142318718378659885743768381865559820407016050686766650371595964832956526076917156630730945096314606951331560407867152879941305358369464322660735762780536230641425151688523517114913541811744882606267198403637870246370538154840586334099626007455854766260751988122953291619886275683894146430178869815149371101274492868527145961776509279960905853827375269867354591857937645820750461143160285328383085113305908367601695533938352048186479463303550387610937700301517836504567614120579631813810223143767226137791796000430785873365880529230995366025779848882978473507850487874227127976652552513047840054408120701524585430004667007265792369753651917804788535739407048248329876184447939871879621419662840472969399096965477539073784719693811943970892362363914633305019216728606930834666773327137250988716762785520721743970899401794151455140255526517010960369757076998089272463814609664573808785921016861117884969863829219508813825136375972737372983924288030253152653144312201075587555630307417112602324887630501444039024597897727454553646484457713933415677333252851767810829451455515892825228981175085336550283722172937831396218461101506787773036585472600067591942591563693078857007990316263090811440794528278961793239417405856933984131714173503957529411169919444628054166094464852333251188257706107303887030567740580226208034781484338839358777274167574491551898842181337785522567302578119036291833938116958465455940702869707172526788462801597798787334044992452098371951815520230524702351307129320067133721026695067139658804102666630529838834169126339105461894173779228602586920677914496110403797611359221652905323724926363328541475099941015952321841271900284936382022595060688745713546522401504217840689358120235840823185893534705697043857620027381702238192675798466632815821216231004399759495941035268282207945170708368319224221162317786513206410258100329178191831997118619664058544339617559243990107729744005728278672086899578723055411334121173417754670298607253458744323674592195284089608867951584844144692124597767042365935351941506898017715065191560940817093231044329776770797950521188632524892252146784611277403407136392382041700828504998166540380968027819949464657878163723876392264353956422400181709489165119287905527305761373077693291483725353308280938508420961452134389471006723188905393199037553388193849381053649734927806469550216116399598803360958769741082147542188030537511871212864477334303809809391704035559339938001961373744797147659400207081138600081599010515719114528374374510858367895788284895222161126203225441992941875515739921266970323782876529120292861075125171761793113852708288944084681617294060282699832317558866724121704979451220970982953237201047114695683222780927236264700452755165462704237903784354631933121925382507696989359523405470380277181675258130911212245841285970362210237799139434784991742130024986578480724648161136270450738791861822577926924800194719063083172525341952727459705081583792925597572677838778376321166097334755194910010537066242576367142972539716015014878931911340413202706211250637697454625993323369535506923871777164500632409740992028031650563253495378825778913471601366429708165285690633669513663087681826216015975736739526470544873003429028071364758299895427698651585331456841440253232857907115483770064105565955012323095410718495394659704722676173592704858421974091951371811082208753888990956244955869339761789137712125558487492359210549144492013197814330085343031606067102780322060759424723981870460921231347006748102098661151083757088681783243718468433667075258295138352556619153013215496895537893695433643759019373266347142593225362764419949922519872086519143598274327656384604608747684600016322635213470810707148500085236716919977479274690683683711653678544326533843418682245707224584352198358273899328269073023916938410015889205071306779292808350607159637396713532199155353665889647118704821079729659573572402014388204172123793301748032349598233742837922176293704974689544861958328954958867760699452177768572590735652170479534787082556831373570597528243577942007877315307568201115008200049940340293027194771276941360330964838084531940558222821743502475413471185623485398786928707156751288844907541292443113388986228485640461340761285361990710729050875078717407016704899928479920295155797958898287980180887851678261605727904105812527990125785395804450897676884591549790155354249637322072774749346059416812406808636880270888932320509422841502856993744723591950510029137204744041563258882069850643567571387483911810492943630616915481085624188429584961801259160362058727464605462900231364809445903233189509020958558139306406511039379748083967678734479446046376400915600566598697814065652633642063576317541810509801453621914831393864228638196275126764269096529169210755300107208930687400423777526858118107811268931710112409207619612317368054629657451136716003775967015748925728140709019276091425375469542016225929359630926580814517548664837630199982114060098910873356730945892716369338866174743644734581909005602328918726591550470738210972407243542640350164766403645797047594225586327562381089923358132628235071883700062071013516430866206217395672701803939658729693094158796103600672863454937955079003841277922533951488902602778053113261471980921983334450949667785746399411319742604294562266728941767859799795180321656393528478913151496011655990364074647382401369254546089654132319616104123628524073549473836889707567529607952169995424608776362544944326071589696376296608825253214010405051196829708583038298316816732705082643852900524885489941524180461207125979133664088484876701784239463079619780424693600186149425955970631550878715478834557648669872525886933809600868380475512647022128391614140607669324645877399548951982483313224747932295821628353767782579845096923845733226830200775757811938558731097392834671528002361630458723649044661548360817147747106730903940540896027516877927586818676780410576419034367923040932529319616263271482137342677408072455524787542104741289681329825885518374781445494276398915176358446072462056006631940001471924080223360581354477153169765449485982836888535801833191929665236705421870257795581190678133663366646366537966429669818317847758858826100520708466406812488522750645317209648191645193843178251482999854091723118366190093802602018260233956460938094217605058827784847788008207130579086105534976005426428860526068596412617629325401380772997681392331776620080816494274155771695542062708200448971022580627783936377212743784262697840949597172469896434866661866062253716739678546265846570198882213715853830576995496767587049464368021389312762450743018927310678382422197862491879609643142283091507553551227208702811222672117390562441549022636484728657715989345894818532336620749352259464833341731865671794159171287437304737128840328444642509752445334414549688621683378372588360103047649027135642356511757919109327196491940679239590976169802694150064568635512557941892750098320539513385592203989647368027302442526888977783160620611737148874092826764663840869915045836763600940840617054504539874531395219031895294551258615203433914465383414996902998128389086578419402431825506092727166511326349319886533544069322868530283953894490508294459684383961141567601398892092298492910857107271008650466169664884240459644151246337838935653253632177507289328242603668898058549009746395598416057158003058054384571508081089223325940078796221989310868818554063902908078520420305425300083870231292659662344066005467416596585595862887259647696275856887736430021095716285349513171139621323248981231627124038030701993256729991422767233846413513342434056595111199911804095106519983129162267178417919209863521267234360364317215452511982537894137965925527273637328365737135907565842738104159508235763915405817985734108589105866276866385039881542455964615234575797149540822424080461029434196744858934536381574969548824699310902439317106553624615272926929504774778149940007610734758059550231428545624424088135963346486357702682445369817703261741404697972544136916172198412548606888605418193053847260549010196334582832982376167803940266557390358163331166369487478221050795566832548407074240853457719132540376487021344792899160871005493244986723430572745870271851233267964757278429223955407941081041074481126886124159175310330760930629109828464702511073567242121087868528199025974580876285028682888551652370590629272880525372016830778634089936134021666083742082900778062330600941677872275841533431168016049316175870949338525810051351786625558316696100877184125823214413937015663394382869390588846846196621341953341984200833307287471120378180610409414292414872221513598294471189286017105369378819879809278013292756405231146893336670270497716829163708821849885244003981427400638514290595555545362463093081390019866643815933286852031300389530274400279419566714189027349318509596051201092162362148687926892133683125699774127291399365024159262478812907964545309866087476776199130228781744957868443204178657584692495235220703834300915505079007673179182520164247793755289330683234519132172419937090481240205373443675413163713339086463062523310585189475749167119551883006807850840256024115320067935609520837407419456646861379333629609024100987007043909631422114247107687138653415997354883296521700483103900783537138212963572670931894167454365420029069642130988986680383136757345341117893831536704959313236452178781591989133472038343229972502812469615925517874518065578440782745912688862572377962959105032812717820964903757615864736524555269658221586667272965663513230442274258989304854708535772336051876440793993814385366679653936991587888843206980440503728132332112477611635951634810735178159351349435889825006714627309275102593252396761539086743174629224298610499469206516219398572476227440784447918959289519427354088887353352441626593393004418335670240119823805706751405257281208090701510590082411308462848513435872754243538064800292931187346179291630955984791731956487260788862783568004008541761159939557513448717732240993360752671864925177774813233337224061038297231586453836997751895936530195110642371796849491742163052161991019162647860326949845071158523124674251317626716522919295610337725214497421663805160829481249028241408211499602573358466927263496058323324536157677979095909327864053138247153686829845967518716627794999576429955902061930482087493097177334377978760834792292815628034638119660057364970895227647095665546561201444296024938722133097723416678749833953457690504012973256859800297676347691517221350237665207681578522302646986582972485763493891176010830349256376473018967850121555236199669823734357309201645598218360295560219671717868107537382075728734239690630070111839843303785052454636193504764839169431556374401482792074359127064926101201137356190632242807381310813293934031348735003277219733830663871526946251978966177152170884341415433702122988664820248167148727108775775047466741018487415881543118736777226377985815520102687625754728134040362762488110025782283746713207589831993072208896526863434234698733329225919261286471744661511850927681492241786868672345602636926042124204680579703348840121098662256693354013922916561586770012103998119959512981367363033351957189040881339565475947128170570912944721874288773398434336403645906642864468210123876252014158536947585547067753137004706726415641193221052957654319122142294750943465922317946920827529677441638501368334566646509807206909115444538719209691752018865687607714361960251819023732469913247039721011103253756103810252116538326176951644223474428842296615300318461417987543116114049394480888102940089680424736776577077392088709199641847686224188884654491472012998957664344957045615390486521124375317647316181054061905972584224302914119965238429842797291476239538828163918802842822439124675212106491791669155974758721805943457835162504257531963248027238547012045357429142344929887014621602728760464499465874526629386083851455538139439645105470161349720568847016576792148073814272928350954936114648990669792412276098474524066905532723503361322106727250997413168593292785072205966883613513392668377367889106158082984312148187495192635081681537968439190995453353805998414968749185707181673419923299073939931709762908142855859877431712574457294758340932241856949363826866383535131961047192635998015507698171253275640153676754166536166467183380765026098540386169878465786569005104097555049499502500595477320882894150656207434973667351258091917584842126501906539598138346953253875195666222502652374106239305552483142489155033764754139507046385162556211009984642840046828448508884644069359207262801655094955007168377841933364630585273389535909687622629027304067920382621455514012275057030779336567131147347473866169913603715379383037231583549880775188465529028792358174763169256255817287527277423469631352525931626417351827358858445418055029214634693151912149092821670793295028238385226777788929176322059979025502634547854817457930576507720490678889725114004581876579979951807911987900656121883233682452722274059865752194072998675391382666630060774738723263636788521148140209601254231352913739676695093518078149142563804401125624104131841237849935313559180948168960938777138656395347468486217632516891525287279842604567194849417508064960060481323443962821523271230499808019238252992920442584226461148698651039985744102064390614799180701564842599354508810471631353155140646874913988460385548136953823378243421165713577670382185702762132160899841371850453032509957179898130109613791875483610708615280361090934056829369882090362594457415436354946462790942713519425683051699648993266066999932529134270291723430963719474307894734312296179211730624231999871469729741395009873960690345435389871016877676432882939059515736042050163459999187854843866695866576135634531862410451402435539321334228937077263524814852464402749184107700298141888707794504426066160448361748282232338731109822445167819120871444293006197749308531435762463821770543655811105363311312963021855635294293933145037306666837472556938151512509496191794519426690117490895443094509842059790646987613435396617405885348802902925808427876011250553799335200375003443070026565301656637004967150153257602299813419805227028940760955006198961092879434751721604714539843344963218292878608475985658264190020538904124412368432901569932731807307953320524412918435462773481285123336725659141207335865386132357278012496727344864981661597175749859163980691084076621687375666701435913199526405763193048688897413821648663306139409305027417891168766761699644813554356340677734207935202457719710572769303617032458737779456866870234520127817687721538439581451117564491596026904803850021459958801453964126481112625727165254229489986448208557113226311088632612297870786172571058915048700624411925058857223151818205917530309502800855199626372489603956973847686270738435316824113661344951735185015821082994691786837876915474869829695214461176541471796425007740487272057889920329249401858774156986814556086068982418339749193009613994178254412252103433056185752739018297362649620521692121425279352610190596973413379788598944409315568052829113728128964380203238334197187250598293336640390922374785943587787832974955869928332495082520768707407313586602072417564952837645976946012909127112276171094880773160208806571632524851936811266149743970680159332502652565145970308972788717806446379808254179619210314775498839479163423826061151207665614062030108157134589276864544999405204562407641521474874397570546377359671861268377265601966279801869046854271640609219295656436403167677711931942754906804461183449786614041168762254505515235529518026323077734737629659945442539602522310266051220663633558464795495842942257864651068233510621139883785651936610295331827442418756765376615625333874220840867782307115624623555015201458559326556545786264585983009831278237903081011785427421174342327003901644979937736559763047109674076796759882441782169648988639303417106608361728993495395528858971046767081309513779287395041043350779250922908375173304685983437595024975453938954298964306068925356766491849129413674081751645584190644337237233203483052320382102380109265025825577866517770744912860130466412633617495214474876470267097564886367870726551010010092487413221081084393784938913726589466606449512653977082990080766175374872667560339310272854311170379497074478647967895611653895638030815257698208731695707685568119145566034487213156435601953879550051616758755452353927644131588982828661723812025816466022533532835629151376334549910350208914171869018922829855221054204655050483278346662388219586590424859670285075679503611922564391312096678705256548556770606950735490774817428417608977676457944853029692748435145127640451996410283188169109569274827525414649781844518607172581948313379419697594163016654847202318163612443170692902981940052181355331943039838008601619362880388333750680976292759207615177850810689084699612136128906849262192082423293644542915051225933275816231948530574890571727193645419693657370222048006525504707597328457219306240303011236392429271421687834273067431661579397325831888506467800984573544592533532133082529725557374511860668135890212212816226223658054083191163536617757976982960647900304596650917787482244032006875380509963748685508762790209355314898097435305084364846570726011161001097003907060532657915409455087952517425739045056000101043639317175754326892022672331559366229057953834903282666077559599774478475284283226973559891491603928115123152668648220787029701047742510710920567757281799926327874434380850248749132969293230088682420888342058278122846543681434215301226421303463742117494135985523614986328455479634791556068793025731570301254131376808132323045615080604447936578892908157110202064296412371633165350975411636894594720929472128026751808739897645886381924370116353886615040959643770518162049587863555677832389907573969090530438716752070168272868100693930078637593062567142454192964178473012939771063898425675460933998900202781764994461500990942720797833684830176652699598678985428558304716787929222992738464729871226910215930231983969527854707690212281388833423636431670871898141791635764304356787950723422318943620282150727435768307623403968251695206080758289131738277703479804161505674367356972589584119250101471984649142383886280743109443679979512253015991334342662281362843654779074733428035029985922586403999677309372191328412325602038847539541992522713119093624672652738265319230423202175458255470200560670043525233634440499027163345099502058238053561833026098971240716357403685247738650733826621662145347144088352740643314431589195742147787264460742010532325380274121827970623658139057827177392865338920558921445226195821787188639110063541269462245121549054306743269630689120638614424550893435386607616690036731721745682008867425082570516105663202972050151302665133367894866877854061408900661028867819301130940471879581782928720375339649152842315795336392224231027008796877448802407668733599220242109745915230961430169701292882143507954342255169114862923583900798023707055500360893470465170158157690434675895677360613914875892907326034372996250098177545373392619523344301135501799135649175329468089619759120714422164059942955453131586133754457446756884847034352192731061757255490934223774845173655638692441774539398182722831775944749465570810118799333634103388731882110836991915691752249394302962797208447466477379960858414708425573296015410512870066425648111305514996228270617779480895160102033346023938630877063239567082254328471725760753281972471908660556171709493232876199472079873639989919253466969626725786176691712517577142088603128003155154949397090702521034119135938248785689362281771274910986009625055717876130684089995314710105439791523148072623468282847940790923852089574392342696683038744035087117861676989668997489326910966922410848506478339666095598469185136827079659510402338030644213823922331593715010376893497121739950326791968734633800911389273041817422987238339412700767628524729791523940642963616654843309439340835291796724329263845743331612631486740398492616557812695674283319556776534426339226125656669828065965619559202302290340699470732208127941679652031900906762817116927266866537373975647603836434435434199201499627380754691544497798758814754356672474141769377743093258647163235299424330507839811567213230342383228162232037773099272542955197158698873952770281872974752864651474018350072567677718199616276952713032604695418836699410965641697592458291381534371494722071015892096160626759242779683037750791478635532810151227458280137694476444612435229052697148089086890257454423957695912989730884952934296751222464907147454217065817714759782186759411969826605152596037584641856289871252105046871138970820012007511088130704653068521581525526801005739131297533623298924188546701295309305315426275733211717341780439459044127313894337313476455616152067287531032694008828306836155617247598726751518248322859171452020787563788107728503361059159473291611339412376540712238790438928667358350547317576507706118406609623389960363368590085581184580275047080167953455700593851492488300049986946609343896572479387008388278614316080168719325800089245651251309862292232690205027204199936777844066646446452633329207138510253064773605414118223442666771037552194534606173200144120820844050317778079027576160145667643156905498634066387117167960534396149798700940572491004921905812037427046289608039717978524673426887344168097039725722467392584572893734305495004822877522805322512729241789932214758419974303129706688987503776576818240012267323396825940804942260844080210741901839631482804267670975634807349874600895085766470775054162236724209364332596734429030692365896969583238670258163071602470810488279546963487437857615683869763660169928125100444470677363899598096879955251668158736097227047541953539758561859765090796684563871953177091916481914047075123106819544301522259886842642948264437455393553857668810295377869383397616712389815302331515940647709106595193229751316253626323853869801605941885324082797627401605957102417350803392633127364556956482110358598521226868937817611961623482909350536744699632884770790026270139113231661405432959546693985187981993499288615789754635601638248484680787726426301701629450917377380038573679064212841515875408825474577753186242018495067370345886576507818699353289837925694597874212319379915323978230500382462305495040298967812855623926482513648047047652290783084319700746411929220628087044683665902456362784793637560679395134181567769351995695614102630341688859050710541604625936987645921089621806959067096740487191703634629429963543217418987618746005004825037909668166504369304361397806153191991817188676937339048846826631384045806376353781980386566741865677328548465314477269453403241365053636848882784703233631151136874847578856384686443383525350030741527064003639151353478664425316201434290862077606371121817184257863906544999328632578989765743128936643019384621837680650335717911885360598932348507412365098483937202044016568099204740341145065445075488767244866449307290433221613505533492693903688355656280098392208070142836173974872043420875647919833628526289410459808558657265532095930964600733861010282266555918598666617330846688878887502948560381537087521766826355338501900185133416110605164221512364815379015561772906078591384923864411864137630693062615614625240024398780216379491366119226293833852477951818544792771258869911591756159072701715232613911769833522483312239276417746140551724195810225258089375029358354945240265115324008680322793565058688864857825929296518984805498249693284172197339888579834023411089184044853109097887647654639146812353525065804249314455499594228330153165600574801911207750448052414408668778730025223831572510277939541107181390666426709463123448699240329201932468526099880628649458991060153670636217241859514695840149475501405260765351221403393127399842505312931883616477733964900038676283400272844830627714074946334129770597836215105192277244947945785003350254978779071416883896807288076793852837524321023117997039672761883455337670330232745697740702230557244646626559028969438481162039067747014046443820699447942793423740136772603957328002575247137344311167776773191214114499088586747991753957192034998171363842383880083247168726886240457842936622030157497007859980966017297077298568423632015939995416569589515017201060206360280256113646540706017406435640941702671710995649599224595643997817125492260129651539048408888296238150345994839317196354110785195747436610805805104714360166757915637103723429111781704577276762197538816361249292985909386709333843873307445805801740651601360373421828007087154770883684966570177077528139737941298714787439560506859926657859753258542891498546268660480563869136216368752840582721036210434083995429970375108937263282370977221681694151554170352586107725913846860978432996120577931934631575944802859478490120557226627873302440163534997831644591832246001861946921096532014128423214464116632039162922992266029615813872859231519220597589341602698117231386542609265007642744948564830593562185032576990394074285488233186566274398181240392639212378396020126722244960683760829890091376047947821173565742493754360365555566551612950410152785195931845398823420267360303293498707605230814753438637477569928406376772042586920305280884268538623073204336565953967949206639622327208212241376990781687745824124880850853255378381377073953310520988915669568904916342868750334567447731788081076787943223529826019340322428893741427575491823882150181516893262283569882180457568594899500139407510848975029795365519198422891688324797185681305257037849648537286268361283801979307448415649628478604522468769343941390134648335546620088240055081211412310619926660436612352459862075597882674581509974569581743765642502535138556215609363799520655436721936881111466803808951682405976612991251513136046966348801828720008319450496489386995710783540972911234088326117933870183808796869040996544573790263169615704196758330044301718009148293262126958294472229627645848371879972319338852333664314875047705710208087170073600500860045867807139024394852416475203587096623689014107051481836750040827767361331061800232579188704810505264144386185475979069903542065597942997157217920937261503593051183576561249237593254192927779671907217254212045218265666013970564833677808942614548213032453172701609218002980868783507558564672604297351591184124157955383094671954237569715427621368727280260889158990819039788495497976085412503628319645596335806108325835408230157154489831199198938048951052944715405179967985453610919775293883609577045132506180557638612583097750564777336429645068148667810297035834010716287650826742902859980752209220725169700095741554217184987515816933363644145839168570172992299900586176849892485578877395103029168048986232686244417517588687154905430008864919696514924465473895734592881154562739594333609774305195293943214210533713508869117116585537963213424939077673392575537585527908332850184509512853778165826413780690975647242772162675742351713632946016964764736956490441091908629554660208406589108917065499851222839802277887588859050468106011775964127613773621987510111648551070196811805212171597404768513632956746382819017196463342083778763066181418037843307072426750127748573908256433051239262753162577485160660725797407408951157317181190712283706501913499035329065139570769653285648554411844223509714230995273297216521594398140377175655705882111013432944872898271192323103356325590212145412665285104684662332720843622265393042619371956341616213540989179851665016133128467616674430629498306833943803482593112664657122782998441699376255363351703814191075166635268213918464090755636770674102436384372014566697009784233180320345776562652496119767394668342806675550129118554696980297273333402890759811890632506919157793426385798628992145643737309866531659164328261138653428722617165770235619525477651612586206808398539181068590878638673437138489682152767376897044815790020634089882527676257617070713334946833543619027728243411745748560538157494213998617912122546656917493052138582480280768104629623213871779377309990654427155221345556830985096287503240274814742291178744998353718109370714555994144907740650853654169736213028339112996081627094885633987996476446540901338019726741075271497560732705804713984177542903394090551432070017264692207491233235568723777823061855247436808295980626169211213516857590048007876618348343493879609153116422008700693694245403227827856654929387536093411658220633644381225436366996319049124267604199509374980738979416014344466775147936170401114825041941827726105871866229620025559553824560983921824075029765000792051841800057551855212709716898883509132202090398439732842393152973306606594152524815064596595233243584654049792757432890371938780071891761913733337979172634847423149907889164525025290066715635477848448515505918043969498089215473493911256470392518809426407453396695528705826976497358989007330170061840314458900174564068075025914685566014466538599046478082983987761609525308844186721310153978082652497085288406418600844453999988948117390631588179636367036533745531218658147566672381083574562409227644751208476463424936777310249488053975269271441904426777063020975155665164017389483848820514062001251560929939547803690928212810399264180325968004836999822149480678249482907139604449562892744406447232797017466876561350936243300994213010942529149063082730130859098280137982528113604151831397836824682361367159746817683455429517636430979960119640254889335657193094990792691141431253055136500428468651584478327045731303681540709237108514280103473707258774430498374447411118993067199023483304465910359763830918514039720280528532378355569467828778038601157669422385139008479303498922447547567771414753049705453814493563493170893004421259351284722162061723838040160518844668126259314422791844174758397035680162018610094916520950657865462755666007385680337727678352421625605099740797932123350334783726427212363897898497197095640645807513120192086188851849818139127719315343449177273600578787927047289086404199618770442507176843993650638512087060657510053935032243579893312462397829677318144083067367863178125678661489962184141394470699830405961984808876710170267010865203771739991781473443335081136946730475199342421340062175608646037316914741062184745437684173615245612612758967157202145932543235974946847377871039987000548718789167982192773832626638424317569762710329215315491770237983099746410012829900987370544970993822555868337599038802660179783693024091156841059088176307886970796981954460141587423131334432034879427686779756281090537962177689803018241170559319581510864009625175403729719772948087276742556771161616447284060820853382446067358633734837232004260298201822343528682138357229702663905343354333332191509089053993181551844462617605554550235939289303471781991522063213178104029223847360948149977562834424317126991667058358743698750850835216700068393441538465404127310451717762678089746945062950532123301229068391722542352834029027845610079752914768467032185788358874502229909482827712954661216518591857967237324309903355642874605637338452939451206223017128632467791210829699242983834077936440007810261366327450113791180408162873634544547974899592338368874918005266103765319597194946805115335502656113411864952321438528294931835535087108360409620655710946172899290598572443626258971120321575798623188098762678348923735532136419064184696548544320215902816551874466294017799880255880118289717873989925387386018307081523896774453117665634218934624467269501153023020313743213823415544850903363381618180242285169678369764739773397905312346880194345339921022920446842822274269162385138046819580363526036024016579384876629651482838482069672061852050975464937248267523589199960906332603729606372870256899571848605322948698241085690922833673077572358121395337141596580880390083559620606432279952949095516387822667833601190586341709421721383332371742217361634571959546379215677169695043430853769567759295368366015567404652175485856655889665495935120477970199879359676700786542523015481211750226219540135753711679294857152754031289383879841530766848212733356284669168919259685744138232226706581971671819085384352739687128738627517653977045857656898891172611662594551930544402827063260774099438604822630180519375968547108195537548184254543816906929034952789958486228592809289874186576609009526554706485170765804513080241554652826818930510077712184532060956579479565225760024938472877627992780691918684242414722828386059289188446004815743237355629135840163450376241927046190129001492543831399767942020549865513557028884835513519457348108319638521469793564698432832516144295033214997011622484639903915784681887954086661184912332328383580136955382210697641963098574006896250963742087786415066826430231980125406007683161260135244814229239156666184234833679730787715292250824878116752492777637440187767141879584701640047391316111377800248775126923219382015731001317003250826617926226160033800019097047157448794419438840457916399295329222880841435921348412025165208999570613639289294905375838700694633350853623928692953709432742016146746285060578459768410457839453354568393926064943733467800235405966003125172027978469072939423061049184448238918469320936096124696541753819925265247499391422918180397725322838897094225916615756688701057737659618331645005788331640933438521075770058537447986411821060165161826957316587150658732864104139914541319321477986783866824346884872544058015995326757763043954449644826840362706923490467301142399532934150744353922850034751151047214702082072641143222598822220647771649860669721464138977264961912599637470328606645409214003159634724964205315738626791145178767980302405760243138780011027664490781469633223249456448893649733808865043350535349142922553335780679433313627149052854784089442109499816812190186280109373661314049246682481543008091284894549424137248064527061848754394247332014059594970645560424484185200615445152667485248475579848971064494071870444514888684991447419508560363908338043283967314218369262212807880736877681238069484639351200305288918769764511646948902020804257895779262105967517046238113349083751530358016356365101994163897622462358326208537657107095221150494355725379694594988981031289218316544532304471207366367495267174442178994167330877655599077314904701832206516640669274500746466724390898399161558704194980749279463818233889725003625594482654929315345840578903238371637925539341555731681050621062713750149257337076587995633661160948790767436323500738530118050640186080328518010785533894125607360669333812021865902974269876883735272392701239787722182057546584744477839173333042719292200646066269906194969565922500572759402218784961005457818725939373398364411034389835709875420707642476893586988739542702058911961424832426094555698165818219288631457639679729675737901253028388521011044376480441748773834960763013987570783922687157628977547138188380677153407563315407573102414181870531072679784724826052527137627340335640056703167950984801466987910605340978440025152270704990344150115388802757559415919634011537197410517956453122876528344880805718666257742821021213040750958638430150114028451136743108733604382569077362465983603686398253439298200475892236043410393131653705379574489406673289066118879917695238565248919659286532722914358444197970616341573699046847988143928852465992107830504840650897059782595249379216471033919511508284447873185889449582592894778864620044530873607488574307501543225974220728822353082013918434071106426015759465670500838186951355717167707507071101440900419937381975123029619122181956206148534536639310261562367555484384351147783370961392368047065566513184740889965046197469726473954312369149745977159034228931854255075366627845586362992230571173135530566455946515874992545769802924588016260760672604499793409751344065197839072257807483040306967298101369548171724348560900257767388779868633514440694283018202880475851420754131405203577184870363840539314166373502350454637062393079949831105501518642904613555152187034071295110388793186255043504774002082700343387185793535730618932034973290032551832710277725318996893504134141402112778135058850429634689664081455333824514572141198930194954329095409256008095273759218051174594469315798494028926366568068204869141145887038345725131930767942605906090188442157379752279997903449916621466658253496900831465872674499919767093982314048749553977981593852555057960675824066515954012458289178773855224228778339587972845590277793615475594121600925706032952986321340694235565155400334327355038947787917988498532492731011444222212900031124796584377189443438220327457359804268663948564387865618475175557788365066895148126721866671982259437980130887299654043905412845741417657667906563401715238170890687483642383413037898182581929711288809001013036469819240657803131312628628702194618949108210738198171248438179649628166613100278419167648229730263710870588071700360999304371373497967174859836862661923210010889841937263235005641093050460649683204297210081708268981461249373279223630967555909006616419537014381913289772799303094716971327288962452816279767584152509680241286400693970812604200870235279794456222596745893265488593846573166795463431775148981280802752814257027979919992512721124414732140159908723460046808360054068166088889614063220432105805620886203368908555857513725934318654490661300675454618616201459767997199297152001999444106774816234927090518880949332864474309355423383336582922218110898067119640943656905918378612699826947479326743062659202617836595838091452965456011112519144653333992863401153542085018612534942456152491798952035693018388779182818009056248285429986411246780641361787060728682010993782437458199371799903865428470446023088805650857446497401160906597649754346438264438193116095054428470005997284422730560840106233067145063765293500700984900451591794039670022048793076502261532797685830346287778578386016786543350301476045979063996568738653718598302150756886702939331917864469555240164891228648446876190232072033372310385580687339129672459739494797908446234469409842654766375454182470714985596913898709916753115855793839004305286515649860820756940189162954529028765774606230375725225029139944120067736680162791215945340632920794030797449916857986752791192747448310886991517628970787542444321604240870840704542720212538820219289251471561700836602025854030827908375093359608025045961942190130664346581446278931062118475692878193816413357381539086146751625741749475661620335551867164235519237974432336180905418700120698269810506980943567305372087528865651269184167730013727733824784432382655470115165287508151646721522320840193854327361122960947006160541624674091718517680459325903525476563524155182962433743836398285396807745714578099066336377297605869180671728958462703779937803469906904095771638499427247362134493466805139455530400694204899412034934250065606433162896331933923355403513758604753246065413175380833704224495703108324033936016404708781918582527775784117428899671435422542978245906837387074026043675379876996538925923372142676758162738927530308890954537195384984432597230452866401466442977244989489458897668497942657759890590678580540647952277731421797975018044441907137532783328870720380433535658272044332471706056603746247345083932911245612229421307434279012266704633890460137282385696365894422745282283223848829318288453874550001473464594842979145062959933247508820849758328347588069091827640541681935254898233876770379930455215261250538513296349511027624751812410985600801029824932186981500946530463746670288974130591113863439733805895630925643942527711637680846769525432958524288973741254825819982033542666257113831440937321760447825095646656211696536431575317147774064779702459398179922492555054036559575817425733871626740953193143903268963432465692644113976042927340896669669615852002637277672687886488895181433659747994274916515222038188576096553998808572404945937783961445806838157452388018796581956386591850001920391757374162680914932655369142729549427764470749799792091258813567043332792835697727856858075421339708873568660803472300926631951692163987457790854454835655649810261970550328969368889062048091665051746282378536013317745389471273928591166897820078620336416472557525382714990270521369202716207438630559549468667781990925429803587452388700280017239803390586652602747467510380242202508074319653869602285036124762667249419910226574606478431711062816224961841937715349766146113565140507143746627756578924321011693293977980127568032095358630106781894350298598576637268763239507058157795333576130305348479261054376284404683967102815779284284758922846268081158547528359328110206489482824541402687138529841447581919641344953967050744770747351279761103544744738403209011303475270559485580049572253094006781847358982392374945484757823385185776021769474914536166172003230324740774190085145184597979278452820883372468898596097609628611482639316289752844641693409567357970833234218104611436094181486736373984652575206622147218832041477695225015313481167954517946784972640296120806260344873189868350079458026457622980990042174966219378615525625826602635135318085340571030775482208736243855140868771031994521037232837141098901786404385703236751554229459750872566216971128316929127857163008434387278624446564395405228510296426523683636864510828078195209272004897824350556358407476771634661379281848194170531266029696976243613065440878975199255443560873369973200225816222598222676122389766363317611042724940175594654495013211690615846525330646075612845823388626313226875259631080251829002455393419221288227028220467744429219497082819669437783287255401172713557585782358844133182165648445499801728475660858381843160042737197802661474815414335104271153062350167506853911093268660593866963231662323258656887604461361318855699966978507667236520599276060411310680226291802671397583273844489648860249430557793312142809775053450833481409431102226410580892220341720420151574882814501794477542422691458188738204777524619362299952215586451138951718262363380789147214910814266855523118271730416551501669975216763249606951719581343475619952114335847781225717517917630685077433613527272516222868715073599923745588986406694943906895970722252147333021634045697113303562479012446001171366132128785006032140693538528783536181625380650709388776936740321857854895355593608329092357946481253512806687257703707516485376956526156315262961872199719485689417667926260151967998953827621478454764491073224050431201311255932741759120500585259538695662529107401383741278040293271067459500922762343893030186715314531423865346044376116124171018476023595032815610207939696824947775689003959236025064708910127446364951525055890914029734471776549976507628608364688861867641074900403415432872528144422049472427033217865963470703901565912039850334517018090037767867773797311148401076384944225712605641962918889103884318721186416329108669854634075556509050888265117869767907237532730992050434475888750368640461601141202933093614345177339640651005760923438031639893710959945260869012102529906835246948826121176130594418347011966025699105437634320726083218476876589842132061844675665915292292881556233823164118078101013122882042473753184359419507592104207774177773177326628450380538249275897082980336248507032409474123061216291375366116149115386401511711642866346314999837893549996105780793012777953952774399369172984125483961073584493164346164928424866588809240026292017029109981604441308155240916614867512484507762443169409745181677562773959142274084849350218133066363158834317705278242793836825291518075540162307411238021611230471631127935310349092709469544825770093038077426731570718973282620857788947577968471303017680387414271479291496688926345496284473736497192208785565724660266225721433502560371249516584790236890270982979710387112222523530944172177348882571611985690970297110608364465719059735407308799047707327861810651602205219335361187639453976468386051287507167654074060073439812743906815178520483407889177859978056668213516367011876546072023348634194813282296548602512368388217136245055380057298688756954607075078401628634292334406375486687590288288510369661398043526173401482817061794507729100707434394810929906605739467051903980270737919431714017283292713543687112269965525546360576838920541507065579778127246961612616688583738053590233462083319813457739851699170202089859287478028105765294926013299284102222392480109609568088318464016004937284089910352193731214651868530118385022862657551678293999157647478035898703004616092954242045328917777929511811282750264629459137909035056476267769839221365398071183131678263217844435081465820177392426591416239359270810998689102021401724345050745884625316022795893830822913731241305691388682567269871159844988062382124116911826353448008073434858231661705923677790892261080850749112748868224726124885241335169525231804543635566210320796316278331648535794161800359766540376357886719734680624644890203119533187444922633009474119311688782717659428839646337712663324102108289103630119453630383894244697401531086545300264841508800548628255464708920378411784614140032998225686680011416035090491033465133709679489662268253515571764268012729644972337793916316026567023394112169878849872897374218090549119900593844013428485552535838818749311164938453152836548431514090483126040210997416433243114410182478087988719213805583102591716778867327839705698955491649461741562145299698362274284767984232866933268229397167779040900468103764808738426926493958931782189966398754493319193187138817421973306139280182764210267623856777434102724346437128283486553495258898282728652669222742380260821774346170471580275100620806095551592603192216007307657351338729420381306403832086751982654279532154815244770215459910416627679598202887244236625827584579021084695164274344664345928020007478092492552133704353293706617742638171012447168011761053973978726333523963052182804389572732841558986306026750729010300698163591173085230740917153337441135092402935256209399548780143823126617131905751760843819105372892753818012072101517263784921104068070724407703625390685660029237097097557850450817260667588244593606404142206050667506948865073591894988320202051460576874048510574970583052219666277772857152198104234641272799330382859865192122801144503386155632238729842113491695139800057046009305078270191964363482008790993312984130238766277755614825065130699303202843976992896241791657860791809943623964195507392189309502851178611755443710376120289209633457466094036193962871239785125025740481967360671299812691491241241568798026407903429739058995361217812933214728404213616927787880470291202512276560098130215845991517654385685471429439017354171208360858984004259655268358785729837400456922598296864115535420840099192298066966009763254817286313201795286381971752491195385041533867235093959791036482200123956028722979612113935935301696906452086667035832161441330609672615387535234835856846249335839112133682555719496713941876098075706387996624590767309911626408869702379911577727022605150504589212050857294745724565854493146110860314981322051814540109285808434373454868845834743759680234013422792352268312093989393386154455433342095098475057067037456151227198460489501155377344162027441999763682677896322663028657448334106578039993490735508889828264332931354791727093127968683862391380140222156604527955159977789439168861794422397005981324177936858435124038822192011785222549501687669776689166201690852576748750519775934943284794617494424159402867995665387687577061458075977914376446379064765440137350333478795847457439831018388653068444450886792079636125240732564120797825222178787324820178084472621798494018803128268954681662588572610547473624236208241651210608345909218073441106658929119865865251431504168485989384379990173433671421940958036738184236921115904346221574869332672176671334920430162126671916785137353236170001125747874694275267237659410836110284618611381230357638257745702209348589594574180342785955730778677156294060567256321977217342970306451034232660141717476332526535041932776229254949761461582954402326190021042840698143753852375217359472907601949880871004522474904265709395907708337973814540867128634306565120287038068305231022964797960896927426449918436541430780175064529300549149011183105780650166807307207795997923581229604094256194870764190475329409872787941472535274853582937434198771653183684345880605198851086157733056758718192111092604708454284334600790009023879737270525776438526327277627817309285494252269292151241826172635430890606245805467430897398023347003674872306218688490210857699648419164082874494385569811007948287902948856728597277020646427227324415421044973982922919469916684098519151180505090153220718790544800830728108729884419459490738999838022636671056445058179385604251374030523395308837881301974368644861703532994144663395381908856070492801230826595937611521517006594503463641299998650523476569807895185143185914794876624182057705483325493207010233716087215512513427895643164022303666321113256444465514896114295545610558202153604957766287435469930649411273600724894619086297911269613752408505977614415743820217883114694047913514287003299705896615659147589321912599516868580302026726047226743246383884261189975357199662038940959748720679357890171633385573172387107689336153420643053191045924360306240852338528653360015906657628143043997426556857123075901570987863086395014796203531319672535546834005499792538211500784336252608749111523975643416391761243798451623057463607504618780159347881566434643573006041585727048717132918167798263916638353646389036206015822051833645528448320872009108599800872145783366728528494928289270833144439381225681569927942075765316134364881866053679260687950640376426096924476907045876274911305153404816074600455733636065223834856692270670261313302262153738063003781754233987654374852871241359020962863043202524507033509622700550064752028212031379429012318117955540404233613784760684834095695897351099063557798545997974150351697459084894702192864248468053428365130818670481146107604611293981390265511408538802682938183844415380642218861754656929883478506935598978885619631498946112251507131199416874261289065008000957052848661302256176531691900697648281336026375982321172808100493458832515427919737274420600005317411071750039278426627813489327783453600372301729915694736551437748120830907542006819733695534764916257596365535652101078652066023102101647833999673674236271968040574521416349320354576993772278677861366553167610465042368045959322124925377403002489080103901556843760375540632988390316843289740121521925472079451615916922606854825863779655065255164676993311598139933123813676410490046227517267881012558367918625825471577770134513282670066254588474857367548518393262320854644969539881030800873224886195434223592804650836482899656776624668600181502724232247322090995097051777197739198225662171441351142687350383000632266994591852578012766643501029393752119645241801673290048194938098449118943248684628928223769531744848950780022097389267768528211701960482705450489792641583791069016672453344346827285703821351316322960908739966045105394857259841945406535088673056749382696791802478132973990864729420502403483745630821211743316836642041872084402012587463433335472812026352291143054363948457600454480239721892116685063695908133654427070847839382748976767581357745054793549039802476011709678131095457851913226736555877297905376318200411198864204234524369478317048030310355005093581609822871359698706675254071166222069461783882062254586657843082011529013157744655006764575517250634331856916662981047212730847842582802768453623542807920466473984180167146522252540459840057841721257316668005198601351206160703435625706870302471093441603302513814045823804862148146186087718357802411219451729403181946956662704418025668364353811737115136747089381310234985108343235499687020278579099954792231162427673294988773660475463610233535333961954428745654236438770355894179994510447987734053963550328582444271926147163148086338251275456047929194311291463221184164326011559330678160915886365601068766955050142630570015608267905217832055591441727769528608485508065572342917547390249284544973339161661392885355004555376964179121566142475003205758361253839125160855155719199838587531209552409337098311984452552723288160643974680066712371130464425468204652393730295445935510211806505106077610464145593027626463592583999038518268079645683606115370793427420202028065405663263210865976206367013850811537579283385289221073776168743250340990139298663981737366058385307414469962097308351526403530177450401980323969794786759355497229040618648436161074432732351946019836575984399196289775591180557590907121040688452487778031608316233084473822022531516351817165213081773399250337998494751143288353904189482294419062533842751859292718295113861942100042516500462553392316250051318835116874664603084520142733485307208792487076809989050088214974138906254490800046480526281088611844887659990790099496604914976358139348831777227369032972380334270368710062289857768955083482672811938560934792705586130914188415526626964708393264282674155253450015323484291401299587321709593873607880154854509809561116890495636671018172815775938662376222317976218469188589842800331649936232442154020387154290165783303009225667763128218187192613267427087690414917718622667742150334818205123027895864584748429161346419318968664441428030417155642624589186168308490022262347029876805431593158486959958297917873300188895028437265969496702611656128228301806538404123883985996090443893152467678681211757909488191846844485707637915732741301425916560593489323473509694003603984286761932145702747211122149403401825288240633824021137453431839944923827419449878989072117834660973162485664650335373509935668979241547927616670887846519639223239468095744034772229024507829427617684286845793319147321752626684879999925293727206498897625353474851954647201179102821657917458034907288497574078064347266025134565416981319467562643077662447728161577076582069087614936914950613181980665273366798926878511302041099423068119019117896691965264720065425058051708359648797127707472781930800833317433299448315981823529413439295058049857359888549039000646385194607350312000964276924050792591742117635059536824054055764884312842212887222826558786680087660020910541952010161726224281916915213020413445148422087745547844122834788851197406619890405317396357358553836659147579899103331558501159368280167768540479034518928604694212141802825408624074650812049205434340242577748769904323936269138774481886292794668354929861908438800511126432937683470313522423282867069432231769246580856347375807721138506814463107019370705898937258678310127670545233654521355836134897974655924703067016652892743328965249847929862287116993961011695660179802200250452717470817350408175395591022964676328417822649411542122662558339187783930606857171413817827555316700752114023658882336833098010822733292207500513777147101664021959345026225513868895168058732453835092127942616423421687095288450702286552982488976182404346566908443963112752706023131936544193034204557136546536712040143808417802966259065214336429227454004555350821543392269009513939924436046687925330795561038598774952385330895201140210833487000484188136632572293517234480032130730711043207516411542277609154900854747550377962148828924114641223718386131762723153296496274580131496223295137537861234755397996427624394426829795109495746707857017045839097075037043809947135666914257787561093184799537489893804008730032963838884085133303757178419472434554476316963345958091878744633849106122692439835110783530297815191899356823666603478667127221700908095678508362198609403643475096983557226950817309287370950722219940880296358666816033368086017139668614689786077736129013641656584160634704236382669651540903999823674732454970398263797877958332103956668377896065933447691953369071629143485124976485554204786700059698688709995354394905537924243418722506590682122623454790621755374574461262791020755917168668675689678254796026661448054093616625070623159936699320525136764817884310148075193971194551747081319143199216909555325388015992230472537348291804106265180988717350012914027056839985407733304762889578442238797471704419215465727351915203988233992606311950911846110043873471642855795512563431096667360452227722090045965365071641844566013352249396064291859489646399373883645270109531058647125355464514790216035602883081657930527447330011235517332504193597655394699409013318191117319097791956296448693236480599747471781796598237388489203565734776137396773454397680945937594473973877861749534415952970342291322804577294355786499248564561643178404826732098049051637491611736732002108998597825426158293176331286829758045939708479512458646432867464844311342496887600452867306235659950038486960204812729083312005815634591368347620411978398845066256544367244412201705276720124600689466693634209897812707594402669566240792730653925591486234746092810694830688306961362400438733188317500840890238792075145167026337445804784859420380275249998200699082991088460297290295701042284454902107580596147324291242307902802763753336996176875230230794130565388918702948761480645960536423180015173497355719471799143491756005867309182463755214390146244079438245199136387153945401606041478285689733408475167783531298223838890458583340897251259153160140195550831272417542955022987731729302445439952653024939707813370484039349522245234312814332580855510945576266687619379405646768007010216226617551481564833882904502968315744919846156476497722550264987383601315531309367405367138416004959816815082011123838146763938111943587239704175541427350832480150492540369346613842448050020800462738314394999819316214486428924855362843913027821837951318271655203549672967493164612974551524621088150797446791298231906389199784557074774412889477494627237909454532410556155608753216832131939010458422419300506721543970717971748610162692157069012636622973984527982538931312594318386452997991517600584683070865842808848656093223829299435538382727114069692568835898639828185905995916437131980000407734016038684085629669777482892717013974041994348712396299739575991729586731242280170757944784414990440154946413381797187930746228198631794395536690325766115768441556092631833132036248796912100251566155935484129872740226225756053790078816723327243853038059500055364246100290002402312549197981908635049912837337911172637449420378594586280638497252130558044272181711279850923072933915375720767241632689561201538433590856805133159891465100168958814509932514667227724141101072366081459579541297589093014450938659574518990958045247010680001652089365525660149865855830651020604531732893448146276263887878306696961146304819675426292683750776256301228656137865719688014378174860640885349678896293560265267873421239261162810762071277747547424695223197507854667559835181000779443899531313514815450550655168983484121633548991137056134798515033966755947468760401336816167959204608030283406742563039699722395886260505238197755373298953571451503402565241774538316854619249336908439504750894131189187031805403839348075977464860539567253730292682333815941902867492432289898749223012197226591410579489670566337220873412048286664604596451832400797439917018525939250077849903948159944840582657549500725012291807741045362714111760316074433939062480091325026595440829347967644839599644051100756606987518488837777119151784973239254279780686115396159486441039831801675361331153074950201476963308038286840945817878194126229677991441149976145716259033453591031289955288614140503845601608992677046375331932703863229146716368887661046630835947959821394387620839270862603730988806208853396738988706899443518184157933163979949196401900375388928789400237866552353700177055552417673793149214388036944853692811670745381777156084846298401599680012101167565840422327839594510771441276858439907106522179210905524154641288190090257997733715107200875766254409193649676948132827689622221919439506920650003013766024670320263488967746326513062656282139648086878216435052843158666451885187155761221745243548473123598313495970775526341617625240643556718557022800402854555011425522191804699755588635153022915999966363721667123864840298293245760939189465944078218776174163546840877470203717095956624094656929194432434695241156683738746571039760490559781221188216637503823125188013005668844217107152634535363045195350124100585988088781012718633304983764706556441753986187287239834223245877591009883032810175050397454842641972272642666039008274580898519819793327630133391001166185747788014871613988057143714358507503025535338888539013080559030156365187095058695119717093549319269060148532716810979962628427574785653912725924672047851237645131829151146102520625939419691715393805178423665996233980367653277599427254653435725613649180278564956374276389422778852828203285879049873844504259208180588038669980312299539450649568528890764452500314865860564436475620082542954284312685895679399908996876512001198650467254145370426444479446401147503991344792089322523568977337872090834051806710067804265370646005872764041879703113062562947740791327333597613970899457105002393162775108880779624866685795283091783797074375670533618323852911880834554414434383189206498519558256787872126688380268498697551358811020457062745225171909710842242672959229103266649612569142487848514569454075875203072342668632085143190363855487138232955186898628596560185683630064179128794198994636658822211459851818817547253351341055623606043570743829779534262740373210958091382773022456333992759869253621531241383351779141437755650065016811744949346299930474708489248116688314554355173666942970083400625125261854320929778200896983280176275743651877702989045906630032645326785413842694548731065255812193425794234924385793831424763346306106910569627315045642838590053345190970245578211682089174192762655477900351754315574710094013265567693965497543072089405000581441350863091870138607167770132398411681576225027362058999405705174317537050698443048986016809719042362418012835148002841770438826645411935324845686218143250989470769226685181715015811893037947523840871350418164127955446940322345852071691723023565073958632352960373474464215906098062153817724357710038363965916424752821311863570183866071431259670503835685805805177685434751475638658513526395936044014916201891294212813454613079459645208807834832917984625893014599512547884818227100007189696858202654262995705422435138701816022780331851023214940961283683344100816353506240285512968660263390445413216939615824413985684164785462962622541111365572053845146586822891025075075342128336482347161529679353321699740575100865087113981948626421591731193242462040528241032892059545423386016077060895373423907889623132972769994235489658124335148010343754451098324817233677409504071070274111720544582231049967562474030808246720811505991674422108903777281543039144964111071891988480193183369534167642362117313784106303148507996495411280133097633236134083567744530428142153940979375601563312544804367838967234425113828147305920320877926106193392124417543171235948158229349589984826349524381134304265284428509509123845353328323656594114865412015230023386859144597188958069114522575749142207709283835954954873012290364860690547642006798993341140373793355098345522443019338463984492822061497971312706883447316491298852399840412191650724146368470893515405017389773796893340129587081255492504362703863709537445443295118350613145382451124114031237223111314700734860262456788484306588530340088992573062568312725114769577881559391206200174366832101676820448824730047103804220393612162556933810213098778644536536257090056355933730434751824752379836254531671393390503893835080331859263304915876144536894164932477202365874661224775224322177848131004176097886801960162059266864493691717635781006370789621764691628032022432872094938571072664641548669127692976357101847134298216928218392374100966331999450572046368180380934970904690088550791258485487706960720167031402126373740511021374506683379141325225587209003288213674422501491651446466851995546420754813409529196990688676501736441088885617296709011200158750626372341475495753574000956396991030335522261788301411003219563335717862747973977976746984593822690990318063662176681118958665484782708063410177150857344420643050689107404722578134240708185905985239913941831132169460627256103956325666361264264954850879117407161933288780962675719108605613760992703651501628660502763824118909712694172634359120676758124885747619242087433947055647258288417952279177484963277918916924246162025220708466179894836470268633121768031316423586094984222430800095552870924753396669529040039124015795018892726153422435126643206889693616433482949904236824160220901256695365785149913009059272161606381101960990947003596403751662235761352059838433696312679674415254502411893759041482941523145804950908963492955528568350021486797429933419419450722119760295873303407988684041611638148559315950415665739575416434751111170216399838492620481199839177511364192220041117346150549777339663237190674320579815414573602699061178986770988606961553653888520381063736411534147810394890043689511248352666054307644296772061547477729407441190559404214695139989872141702138756916119801121648176762571288023974800138077662166216702758052303364053741810252508825257767070923507579122085381391312984463920683530861008428955213943130947744036240822045503183075318915645927992920138988869302837899256532383075882517529583361982194384217488510556960047190944086722379654437636994295628306423134382201257693828131606471708782141096988524249165375007547514707371247497380504154683868260939527591953990135223093978925313388199118334815070654352991158995328636242797977855182237217915987781928573431096557418160300689229465284916536497409299203196988236722058984130127816865812950401307061493137274559581908453103286903645818645862946271038313028450118725593020818334053385404712225771146611484706626125208385674197449147716014722379060220160659664225305456904673994783973049436477009123827880222624578421986625695264248564942750385103857450179634919613585749944841779679619611416202670062941748418118459451291473352738702560005204120616384446190274824824546531566171559706386537854470409515732642750868798090018557191948928086335043362083095129546295027219388692799244148821579827881781088144667151723839338020368030063266834923746777594265852339204644613983399424588026704612428237881523813230217677954654389647427559235204443349169204499026702462187588462453570629333143512321826188595216967256383031728100552190379394993059603136482924742929976380785063788905884834648745281146058979608732235445617184160997354448691704277569373339662495450699123923940621512086221056503714970337397512678543850514130425047872765983545597677805391648059167116317166841252391840176992423607689231063340322641500325442552164158921492501913539023356568938335191917183121877669039143408483183960481403627711340085134659243150445613106588166896082281056875949234138996528344788260212822496040213604743814980638266166331659010004400826560211537467292460520503122240082792724002768949762150560744839937400760398605830886250060405111892311582312800486427965281317626202000438672539567439984176834193827934922519151306065362275621066986491858898834910746178036576532545336757865411652944018503124356185416564632163066492483295008820407801898516978939684653364601311037702277253885320240808868292257368477681893203283061574205743973302994035700965903483413232020002557868493837481002872210835921355246582060030111956061357280299305625107336707501908621769995752844383505744906453558570398139811502471828645459719305499089444501837149845252190240256313779851835422721680796457572656302368678919449406201146622328200221900842537659718784554634655857128272512321911171625793132645397267953214776170212186703119513379669778021228014212834144902424496837551707616617901097966416165488061999168236047604455602149453546156310607902388010828560247910037455167996391248051356264675407017491272693582073018734176673508753336167533896346828796761374917555100105583739711303333029624041829081017891957051037872451387203065733005823399759930702022230844523798014845694676923437746377636676086609928075147175079623706576857438176580231931608472704999955007227464237124621313320251059636221792781961783557996157238155625042831363620222621490080236895795845627189096501271007737852847311733110553220412703528966600113088286350150500807224728635776285037380324172187850012272324072992052316014427789953520393111997269264974378569671443904148835810072829851124833947944407428054633136454920314093964899045761153283418630340854007218630370821986164142629187226493591980468890225889309541355611098484534658600019624035226580092680989019253805016094086978471935906528328346261752291005631453686232835550354081708545122183588062854272422546007043878893236780101756362552962797041104561159271948530014579195419558041990887475351302675115026976068286993987903613412615559036984941024805372810579679945839894284485715599926456705959222491540852703011708376050645370829495504524644660612993018024013461639742283386577588949640750118983697952351106941326304941896566994666202038429945304227373818338362778237264844276121344243662907048828769057054360464823365384222655545217274091603936127415479474811596448478951118932882725768771920951877587412743772909191891498090738221492635866248493081641452807983679855938069372089037106212084043798955141065327936788580249938469219559760023857189353363560824901396519797344590418511653439356092340030085905272454334729303238813723101347920318351992286328462121007181527298611883750198430680438686248377670517970929579784093995199014132937008614120868814062456608236766570002344231656247426036263598548231912034113733242245886233946266640177874281883490667109943619754636704184703749890446711062222586936861774224957787204434069170921026446247708269458172555418934952288655268160768723314078530581305294991386686650813140251334097980641817714449165428312691001593382543974497034579821246540016574745464786928525155860932510855695458120813153409124887204994707550759578348398951149400159231434072001309939643749292644604704692928003406686941830484365176651478195874058775820492804949191947665698813513341263413176164080182978502645932683104475334641800797944427887255427960993645639967601299475111898769687569681130882049776111612047884949483880308646844844461538357104226129472582581906068006769320088157015178233482381761881945240636389032584485842730160338190990697100574980090782510313530709026025010493886923412553482169914557178763974933582618602969429278528837843135995625800183100482357089991404092157237929879618598345473175380311622182286117980169834768708753019141704427140553561359623854624130886154888713121954060057869208471458588839757360269311315305322811093757458983058792347717844991295770988190885092204996221777129714301291004660520046307902751914419668169475285907396402240718563981656698929893782401266920711993134683914237901000233461071811904747831040894560895824302873422285744493818816389393630784589736808550731775813312603933863168208455890436530791177985564989761643187542257670853315154040896021430097740100613724861037529522926432790138788042158529144153042426078924669208104795534374031586210067539454382335028824767113083253679925490354039726739773560748740997854138086504497514513428931983493163464239446637499104939372269048720214750565279764246411398404333628354402859462290846229974071026930222368113620948408169273901969049634153295168088332162681815068581253205098417179178257908243937751456416081971181035245945273793827376904565998945976693440832862578056552022671828089770627739603798188160744322363518329652451924641457934644968969926269324885611586958088473321793790552142883135183865755290090997246342033066852002181764249840203484730298446101115531587318127414898450844145601853590698802775040416202504174612528042290465992417035850623032545462792326774214101748906039397498624053087268359977579312796775260408078992081049596421565556955089108542974843070196111784889719280562990065746098920811013624258101888417089921933802525858119502327123235003676180772627703589233302702687786812417728508038205760670175852931580352137864364145061163579092287494971666356109690395909175221665646638303018205438284200568303493833066498693259692942116709419328452900125573779802080910749960984873408878996272466520995489062847612864454419566421118926558571499383523124180510471769186030117177390929415773040181430957868493688138300227745295797487651112166142669248685808229022165283749042540878275571214248578507464282498646754061450031181719338500880600938205921446937829915967132029760828126365249567957403608336738076600500848819429965838421418699590271485208153623029269616155535732253995940326704064794758817776503847424559168095875916642538585291963725613633710818199445986895932385065917685554958807558149742967009733116885715418043638056504274654906149049317803314186359109795045252535858328979545077362539468646702327273074174406514020815738614834365522133753019238915347216973640678251306940806369576366464418494100082561901257405298294082989326424727809788626178464389505131432145991035331449085172309452668050043447855679858726890024975957191055370676146706233437361199722315089099096684653802424103369672133838624081083073199015085732933781088900566941999743341445747609388792674114116344729155896193681346864806669661045862997523388926521412946670385119779251451078966422797406961643757941054814334531294413804122297278027691078033813717493877553230715780836588504340642162347924308387744939157573731533138530613997518804907792867007703266291007795498412703357333381216475784555591110930958398254148390793730001826554534714175099836152289242316263342559249692972499860304047231101369714476839970359344963529007515507877476323749368990820386367907795405440885953224404457681679044266162119621488820633767110891613769594824715898837646111695082699144579187494922388729426740475468332566503225698091682809928237329749843219699193073835698774623155782951621146625218470661693412604781024453278810741247512218027002013321891179643195694403019390793192543043542350436111363421221354129612891308238378866281266775374704583832873653150210113717103730635063270837076051374132687090490256290932314639613689731982734825912994643469997469811013917653035258303249869583648423981962820995377228589445764781757837938113559098898957535148901596829140942146058201300787431831962179625755903062718139412168317622347071148327242713019233871437820603093756045077280163848218198085775041359296564469587139262377048891412197062511387951151353587361795759320926802410522717968646394368615820086249459145843400670442170550699137033957879684847469869104064222987490893674947413118436630750031431226908255052238033358995192564125084118827737622191104990658740111192211407501772445663057920067238185150757630319910092932968139323717081384410151458018858041555392145256674765669627255208907329458588684496261226123753720672661361591666843309376803400709763712054540563116714606309431961727212745390442934970920469924925104737573315501732114321597384974115404149700501319266266760553115480783097707590257255089967594934449920343837228680609220127230055100630868175381988079282056472174327851465304155210421672027104754333186519150413592646899505725541042727096146223464201630520039095580911275426254193935545304073247449194295281935933152193295075031614216254824061542055028243515145255261349912259914924365747733763701030117335539107752488223145605167666974256295071142560691938795215301663050259423347778339559154889468531877610061766756810466689679411658553707235043020194526702697361388515267999894016555585517921512994932972549082681017948646783426301776223874998532092707292175578528806655236529312062567044957253582850303155886391839680396426597359740653910093348474962762207531555040869624287199301402830007512192512238018223304786128274582644361688624720398460418923041732517415793340323050276995249072968552970642087409333718564944569061367424739745453628404085833147425333155976027269045869069758202300242919456793201114786492613437974531004807495588667621848625314858348022592173298306015416566486262377889157864753003296836450084228433172740321870281992735980818102477933205579081648311029095211216219124545809312541401988695341261444317328455674932621447169770216430659506410109833231574819374184453225372518727896656369795109324904607234551020064143214555935384253852336372868158292622426081307541032610908103901361615128201199317098767680794012159729373737870518103003255144895393676576962404162274541172343307713355097288364516297279953925399625146639534826454630683069265803156832824161966269497864013566063658670652702193230860236309683037309504462032427466580739772458439838711988758235244696090180804709852738645873531915521521474989634711552560290211421400575870404834943362024375315899655890546480606365413727534213276062396182387719569792129541971700645265662403949498456843341206978836650871588817269866480195311755860545619282388036864863322503580849719712448203624024961057478700111366947260387552852703664305612290271613182898095434323719282462059672918292869697828067611656865883835749377166830348859255491744750095576580979074625597576457642894173158034097252994703406353714274170011490504637139313140408986924980134534985449246780749143754907389927753518575146526749332483398592276614174351322009948022964736830323471992821973389264799003275262581302753256771679600089225470185206668324387908103670600122047729141727323931313439404550342122546237716141297804701086624524197325092978613048907148504631000454601187676154913912355330832867389376050559106147916363180389667738817063948321767445578463290308534925886720626926584684973437614014241236158043314609009589850731750373011027090585118122481480056090462933683952521400429455476183030351396003635685764889688417606431298793093866246325961190579735170487323155792897031068581094909088384673239791459958126631648953257909856506357358820827071211521060376371049197977400308914714524418335740726933087799595228285071051163233122603046815647857248007551901630284593951916160953572824429571315616545976719692056504893580930242006978034698868533634011828597606068248759207579984511316068703541639373567263993472862574226578530137001513155862049650192200543373712272988082746169540789429998252116458606696035345248448766800282709277005532955724611944615547479990703733079119879002205186691387906722723874185316249139563354073028347675588259752116703479984049039068116041886555278043614392041257452914211447447190296757711531781179741036012904178035774132242273973115895013083344158238077579106459307722478647132797262314638374792201299210673865905650894094758728950730177373382426842780114914821850971927035610087523134003432711922779856203295736420209903612152013577404030477902683077859967079525832576612939713530059050107824872234812054756131529754786912866262131854944728206503493100208933860279568107985921995175824748501160065973535609613282099534922696031250130920603078482203918600356263056754156099307834613337681891770047572549649649612422288651631571831569166376438366274364121020608159326531993154002045747152589880208273345175493991344817724968482859645292966792452625742956166220989690520557902243500037597546051150373364738956972278846304488784781682466143035091420818453937776457263284631536683107360134297406431168154887063239155551976761323325488657822911388768643022426867069890325190414232218379582906719106018798401932906390419877718297282575348440133492838762761800283456689637838344217567634083486645305788623390926512119650027484825121749828434069222314215892329767910169375567593062156774915054040488636448812984221357009255146821693907872844868030779987827130336680519591480613546930220647674373863276574335078777025680932081865444886151536095994344547386297793977309621304049776504780306288457059519989830197708792537796299394193083945154833502356448338599708575750545519235088606605536274854900485436924300743911531958496549416417763434043419389503765356490808748078446433465479946191214519508188181742319347647767739116860352868794637588242170661102772361856021579230326030268525302988757768564838925197552391467393493264969483063221516162176819733135412100126124197935829237020956385817613790395038814985148400651774955206368569156272847169963203126439939684107199360417434750111084512757249901729055358340421014630192347680498561798325429458697169803343431716837660113421586624204778434648482138580728039224815885322263596226393083832027427599772654711096306157253788665068534326039443040311473196173362775876506778038465473217763837558189669588628781502913911116005195207798369296297255566894453825959189738604639564419898472798998750328347467278725027566445675992155542585734278788912775854008165710416451320523448771157604319106834716612214259040221869455465553415429388585381882204094010056270271876967128372867844713189427323574877497662583387139104509137542957558140683525282625675625391389391403707028249894540394396349745987737114185080631910979386461035061344684356179100212978445537124576726260983875361951253361272327608628807243965074306979698728104036976338348148150149103527565569070259953199035951712191195422941091798747937671552934806508666660054409526692881798779185669128526916888011968671159363223141058976214372434326422727938676709945036697585806327824080060246912857901874865058652012830551827067504219421185582938442113938615656526158325593138603929672838898688267533416868337003265243316751112324539578657134267752256072983226089361843686148092474096817303901913916155037143626706878490764882936607395163930886685791652824340605375256801447259551391554304861977762216642250980673787134909858374512156399169085817264884879727312829197781677493616689504807834666264175701650110850188440058603541567586475193816467658407926158611299605120590616627569410207933130416710456636622109513128515582158240184700663691821814366912394834079556869125462348341975914575684084947796868383666775000841619647115521200471958447446196524374854701658441562069832943843993273161862040879976383901029004003818611450404132439929999578748287433715860326379162770030755159665391828076689634639838580068199500205010524517945018979638217674333200540760102675780804240163119839239090461068343632448881911772180842698879522447101918568139101749695414145307361344008835617068407669762300234469310780236225599681927781045040696873267615729349449395792252817604674456081887882201197034120713791075357107538002090346320799171051313990625828685073014489375104876380028628537273074714402591601420053249537450968776388302031467163136496725242748160835755550523820889405846913020644951168701897534277978776946492846733838946374838414579376060512182560123269745844543118142215079548991501064060888047556598351971044852038679606927935252272111450010338174960432865725683918296206037672586762568820126453737927734988577905946541294384769954454604579574082527072659581032486439240690071144921652044111682283941347385990003286403741466404766644606504294151786839895771346965983348594922681887706654608332730645110487161678463708901357539535735717359088520184834702584105103014571116553601437305209090938244917128035287905706159304840731416226159191410457014452622166744657642463487232157067803392458104992270863373422570833454312396449686464563402873503868448585378847447063644852537611383667180359001767153738496903441344297138428661186730091614444093588709969172088303699204746385525501548184568492400447935623955189042845533636030453812261222077166639046410714724921196520082366816790354467873061279372285465887959912298856124554279956653756601389234192823309519752633175119621453708144145233001060306447807591869367594709938084386047317790842273582349972939752893026222142098779665715959407133160978009028789648436810215846220213902061397404656874985715443221154434034306860123613288295447486216544183955488430908166664711214556894583738154951624806625257858646171289477964694941775064474989274522903718479436969204410327090764635187437524258712122594107873612142144290491915793328268930751568322419932611503866968886539937143356892555945219040836546372932870610191048830279504767945472411260884332520770374346794577351150057964771157052014994351702364113987350769086003145322974469813583325507899423015837315081607423083436708593358034074315718128199906844576577459607884164100695802075036446488757252839483521130601088533227321899367170143870040717514415404301821511423101077190385316004540015681091487664079122179440367878853095910632659654588920554405972104917972920557758946429911727747612369236778542333690368995423137088561123707524478450982216822682842374713753873098559236441490012538856078481433358697536541208424524335092612548646984870077132901446913395975979907778954419182843483938251587669838589673966292414242048257682814938810636675754676928148125150489916490375084243488972556791437833415708245572973473444263983912568772718627007224686320425306415682860961295199955479236655252591771487365191784545413168945608867935075065494020162493470834472830858057932197327499701998681097921767375390286254280323560038711419575273694493690396855174808097068576879593648037403619904058284781327459345572578750716226926847094724411081338471228680832613060282088992894793755998019451943506763471962949414382375872377646235375066100825272663314294758886194155632125483115009579760937711440016160994101547334778953260001431227727692090138909904896081994551564988785576330274211919704059373762485711489983515034627116893940145844571190720989147023136587467748605186664831532100641031910017260613961726532017903397923694264272980609170270095087189805068706035264145532533355648054696201257681870998534944970148452738543036968446742422037789593761699735493100533131972032710801742159213527585371079418207576206430482743520309474727377823292794432128944079458651499435425502901334794730848962211828952416247170899449132103129698953247517555947618824931905939261832681430128130413838281470197821750292764951575907422681583100903887582674916908294634542468089406232346293565694208157963045044353688045939233731286586578900366932343348320350327211903584978397178848463915163692234228403015660263488819837075836627607660594213254045507975034568978697886117385055401180128872388941594963639326968998204246675583397011380584555252625545081199394331684221266280515371126522691817678107800030827177770840693096296095651515705939769124114197885286138373485465525305807055095889897198756279779492640926059418750639090401180623639234860680572673525853781780979403376473466364946377175247789185089521985014067519675631770847247588510477645122131324398072216715211115666990371490821689509025010664365070994922332986771521534930122108791984566766958919564087224204671578617683626408723424434818433354807132224252812975920472165208239156001965644523549150068783990963341445445010208237113005406799773316813322092295874841575648667136146668269742258708205720299039048593247071004444669971870681337962186596747346959177764769937570653747585088873918155143501076364655182910682275686363836827740132817640672591776054769618441595365787517170714925824898268610164267665344714055487714469388799081750425102870837018304612407830788828548208991844829215875624171188581805616797952644024120769057109884477637034084267862284756881270666270675574530059714456208648748940173990880431448752578222366565456283517201359171145627520065694338765470922068809355583770753015012787111472840597011093116649689646332968990887314426860015664632930756213596079375447001116709532913285628790568192758942937626107630932383530586839813096407992952585380483412157452402299574881224486020438468085706864456818800009088572659709759045470205596185354553738309582525052127330869904658027193873149576513805365352707568133387106510281803915650983508254102729573346930174697123209569376225389378228108204831563171428130688064018483826340400946178754193670476320706711048527444294939996259932915391732932527742941568409028277621245275635743433786106229820101083869747126581961160312759758765620667691437207881771209222002014754805065182970353494742432072126618170835641611684173662090109340481871884028952707575853714798413286973241159903263514346064261230196656518489187689681795018625212417244809610528074511330312052595996995487899593109572142768190893354072422068033265863880994018001591918475784055382651818476777606383517809390861821606056608579001190747811018779740765700297788087830023250080415854507835958800678583695612687937963815985582536183416825447800861905312186946667550358046595265405190278963064562917839746151420118452557178516311760444401901977846696237947667553652869811638238402312881887054475118508153301429952678797199627433551480494832540921502750869886376639636432832927637998304891827058158024980218157643766537018864493245246404850857653881787039702153698678682272260349086089145359766521954321752433917553281989460892935800008981227261905721665595599661938799929409669414862292919887986724949126223504553327756513535032700179672812228955579582257944744456407601379308560643483606615547828944922139564548331771506765284508692708854185833423804944545613619971737975940227348502736686069382357704251989024728464379044675253981334966314440107084802945636272774943276011149902286858894554703871718432810835302211763810293786344875024762756352344124899812141486701926166847538253274037953150650436238813021911809263947379519003538764162133641734004377530311236980784875892705529293402216162863929548384704148955329155514782473973488100543179850383271813368724562782271838455704078567224362650077136943986779284156317793468876607132897687145137171175131473638549269399654567273397250712865609687175884913998180481990378206147278945809760626398119286462499202689149536478351217785791048742100607413842371507905544059750738972048243878302846119007483030694125010118675948039695877851728572672776781394704248640359039420936197343841626018459213178635816523176899820944125917164777119920394666883570881157488149201141755297522574390768676913178489076265465317330274087265242659895019414671339717376295223441492546294712732992817181175236162303200702184435847432296536933465891177672698056297016019177491622337532671016948546317680753506718917247068000722149346413013054147360029904210154522304543766190084946918176060588158262157869659127291284729694635234465346409185924307416099481762396755511679887184456547985503605533703111297114708168014532055625957657907360080104872742559755345364268504297003064211814902766288032081978603989641277974954705559190607621291503248468502642521594131789190754570049060014035951429705322342143957677671248369024441055878132327415978276891712260474812171119112280826597909411697947970466463901663024434568671741750721630761809255096085524810576563902522701152016277347521184899385158964973688233495683210976609461332096019511877177893820381856568106045173468415054494426652330510067549849106314210734429074124619689745364576267569575583189996341986372632744051324216894999889625429336364102486446834486468748748294801088134505321230199957953130210265374811786586896827628004019620545241691780910183039553505067561583666835137968807026917140819534791943551331454400936738193557080638640512077363087802926273297865172238732685616977303584460408139219305721612340863306230414168100199211889742419749128323971085129434936309504460015395897199759510487310496371809950922311112650421000577446092962415435415551876093943797808085264205324985229934279070882714265929247719515598385343212227642933197550647326295529451729613599039289388580778765005546812755900854097620352316426722032254967320684160376592265796880475332520343600728835098031722035284789590491632875883618913955600451801902491113494977673253461355396089758888755618627125924046364086044608471185439463870388593289521374099160606961657374117522767764773647616438043840205784059588240678740727295689443095942133788217214514226920195097365886588293739040737790269760366208073022551769237286148626961575008726407351996115411201601834930880531069456973743419423072020923195648739410433798626495311160423370014101648873867907130404141398819791007871131228421551074134126563004526340275903991442313435829681381522189895482595000715478490581524109400952537797947298855165185671782717078768201070061557400395882739026030501924937011545061822847495656454346374540064917521684180726103587755336795844888887788348149936883431476943955638886783801225997685548745597585102054139673976459733129318030706611004901818645149212771916886286855680759926396406058178079372019486949451732827004251699801067244443821542318267217028460232123877271121720452985553121354521163646266254744869378259679569399986224524501843553027274814476843778314774348406424490187174344336867130512427069921664377488597678657328939580023173213811643189406417853034901615055460628855327891897338507012913723651057165205582473023169691885668184800851454313220822759291959267431950093857620886195364826285300135439467520239056771412652518500757149815759560912548254752311999141850137457886054661328007349168173370988842188987645908080333687167540845576510176325676941601344171338400909541107595254618654019084248780413218848105537388847516854586687774325311669403649837786535765385665515719108681552136966787470947228300603513023652419315270073174510880292944027117418737637003369446698076115101409358513841076686513984849621166987672928935360466041485573160467819718988973680787767889128415443446860436634164133664461771824910723545979782027424841531677509234936852008046759886507285846458891874399831236049154175264049092447091096040656225695099504497872580621518117155012019670404633278991527468082382480022183942419814205843209820916539354186618757875848588372195697800450947454597321239343749267522226161755393581457973871053525823163318173266622579505094215047706360256171944477101305833092037069157074437206029662312120512887002642329426892603250267740878088373981375383825830709427983582212905584218900805096204626289968754728724265914309494453821724312912087930601567338198668311013504647057819187165289376390626489466616017139320313151156374706144288832252332931994559412156841121137950161781568836102025854938638876461065602533007224423229808592781545437970944076094728438450288228703590145023758953208670033929756719764282173406981277672750524062497561955706189791234602659610773041241301451095222997304322369972433686608705199128857967285085173987858088399986587420248268447560303688013981284382113899169132395682209482400624734266580389687054365084080341152093838652826727159166302499447040940565312700531290498845609630274917250242649261581761123356966925035403294483317741317967772715696957801691476761012798860836158012699225807077507464350951434201054684519975746675683389677683039225153211094565401385591582930618918639804891507536110789313100883852615551792974681037893724560322760782962594705108532255282051726615790127613286428400951427456034219873646647833377861453047871407152189370837491990583117984089018130716877439177047293758892508217788788487331155525697492235223637762272110728469043183101202085979945280334225036617594992245096257868518295657462880681699841950024809741528560138281250455905754785057641159808342765233616326384372451789422274339334398048737585563394268955061391476715301861546315881708956040639196206560181517558750482609684116409835678136180749412526627191245827925798242151696649911253761673603109222229330122729109761794422934627808267776792951763614204450128105546870685063109634506539305623706724598117782489518585065747609017761154081935428498730204128645954649495366786316877625052739864823865267530530045587406895709098689012192031088091682669034309186774077720759279227556674771347484019668312112989906593125608126392045449464583784257473966778945949971478091286682248529743227840588178226151487996000076309771966261720251810035159639391885828987927427994634083961311472358013307032739227471083927732196820605815681141723528598345940545195652538312099528942441833279876928164490979758263709333637002929641445502465914352094648786813584134064320851534936872772055469584517978096624349330621814699161780757937632427418671744453758043352050168819837712580528085539589641235027952102528213377434121717436083500879318880016639529166736952653388624343365556472898617716605903815960123086040274679272266873056757679386320609850137258987968587209362530357811508400533959130686220081234411659750433920142209504318911974172308234466536876187120770255194908741492458853239933293634816647666216838244828080107790525609388266460676887708556185783804689597462132539500436761285186252246650595302853084276050085944962290501349280390915181637084911994168312570586201282856095767362440828625782156639900135899809022168044563347462915421731257523739132711890382239934928918054117007782482830815222653616913727830278878860680327586806795121794652954364853658182797906004621849933778705220798574395821480377811789950915413241365610065989790409527945125675449370356559595404255830284293707201149682107683905768087337295905839695608972031418263443937943105442526438057384607410726173896156239132420315690249529630518544769346494570193247578251150654437845396649496256821220318496857203176742886647944373058001235053021866716787538678423527358443727816112631537481452579096048186323535495865608584371362190803659765992442360063270482075098131340723213219944973642223480835774502354934174379430562775551247908251392205374369519026454356108015858460664685533787142232878820148969756949758814557344569309629532435980120323630709034675541405265862778981577087478717049703644892541454202068575318962672674573624330459958972908022197632256713638299638907687105145248629269290093002720505316656333585136532567812802053264269735288664039236464006917403451948222791001638771351244643130541241690034051967154221229666827082898497527977891815954661617697382193857507164423890561161005868162459884382722715867459214003550864856025801611032416498117200662198086644737444332662543775462601407112635695920088508446521982946241035603971062284933238383454455002917659814068088383936766628764716051047718335553625559320320384774155207473276519683036834013418364454147328062037484743812331400873924210402043712459340363120303823161434834103098939197533929609401678216097248083577524102852660013923768125227423393558101408061905202335612897327844173835948276581215888990230770953722449859201532448491660629146768086398086079320478522078761146932125925752361547148823626086399751317177780426824278394683029600530033915306501911119670777676775718865064756627232286701203520229808428224533104109306315656161800297718681442649204149616208094037400277533764583963305628244235357066826248802222172906468072443414549965783894720518995861714209242561241023460752792933877369388792111923783843765585122663394147943469602057426220072412238782400595430525708459923102818926453072751821197793188409381100284761071890566295149011838798508269753938376947621829181760770033349449917696335073083664734736851093691460796778515607581973183136478715134996630770136900558186499966235421113551311024153525819046624473381201500336513673182275730291216259145340263644070539402304318575222138755536163690180547678807525616610703278201687519410661678641659033542551437788760447924573543230176890617869923533104914299158144197009449472218626712059295917635090178785356384077361486347147163994663563230187197607097489588827879521584918082177546916075173384260300513918652661934604679293752940945400859904598263801952084734259567585330942254693955035408683812310388504292884749381400413658854673128149077094342321168720788237501668079284942132199588156859053058444102833941483163572449930560628194291183386703687201367478712102517095819941370958922347050091434381929994022855741283813647976880999317010526581683806165869228020639799832725982788485561218472733429066261734606775368936859606720329770496384252227427701238665970854118712211890825718469346631162387596289527859979715220880725289304554097508859622998747414986755179151544190533122611409101534282868637579208804522137517894327441533256179287172299766880960800870282086707913839155217881652933737086244059700644853409446531734539892786559160983471381483298585402881800163111388231387980512779898660211235549169509698539283518569016741760955407208464546543284060332677390530934265842469095276386262581926376582394216131041104210218097319742143846221717165552124963120696975775874376620841778599181877699832337674827975224228882875663556848019066550924789851978336060560250079515727470526595273017831127544725100366432298689652196946788937465352228354697156110203371962031216966475057528848299190429302070478567399481637491463666643853715086109630425903003459250673624884984565165380808242199462072315057863950771883490799468968297969148045880680498512653696124210672786056928233256020673736984499094362098520924415144325745982935630119871078177632304859365360775853482171206869209677363096098645775856171501026634764211605047094492420719608446888670972012596125913165233244479631400768969265292674511690152479836053773474007623764812601959496673299783739725736780429779150225913438436605667786336881382683731146913737496786176780932607544405285560194848386033068729871537646208403003381100268617785196479730955877420048747552352716266426801763378505797061702586102467705805996379182130877604341783088051379123991916062578337590710283723705872202455206313412919572788717113185877829848732729803508245521570227424895048301257422191460647121584964537302129132696576511237244333757044863642754743607455004071578813195817049388290268371272217969556186789792653374991839155088714628493646050958588912702748437343383019774517525715869074431743708263794907692851175562382515256453037199046683606389048924036129885810086887220584351289386409524461723572192923721426119655003916476825775054973045697785928119036197320234715928042068567148606062988235266130105436287580611808598136969591081136015643913270548464206082372476613980725354458793971358520313388772496794680428719189380252451307695053251637792881704886989538662453747517941724887545539885472559066353281915719864674929765909219108727730091561570072311596944128143210296416313861043073028658560509246068456495035248027545941602046081997851908089109754720395193779473490612691602733844244337396061566010975381144684293047693415649889965399886234109402065156894555226365992704813562409669924894569722852892824375487845223360351248517727371295453376547811277197248686666873935497419425213344054173633807913280987688177441479790042485014027793290660956000539972227888938650548339668966802942101147436083587239976172655183305959064874413931732979366115788433785317288757109681036677931772807724071184160327700477974715202793377581575159616659991720548134312752562921530204574773493423573661325440202612211212795393877469549106482138707287357060338405520227586117006893302367188121031778168982557705832010762490600648329109320059055120066160441488877682474759802287344794112793567591949431899455978586576505910488538389172721416214411816707164318621375589677115552466653602697262285113683256584901309875218722077453535518736019948473826242901159819571271461132500913795979138872934682175251518443344061034835366916410046289137525479743379413943626972751692565777852430758531861629769835469850419349581226015407402333691562994995459137394450198874479813376009484057537250438608469005262806564646947887997003375480907732867211894029212587351167125762534947639441998412110096414058946649485836472540221318168378972812540789826784251142282213103315880691055013163996674854546693693402633767842528318589989494450041444557447749916064489480450242358669982254647934761202250582441147309365711551866602929917884264475531453742435399865729718058574068901053449455140159982507982280264783329222207306242529483944120405245396697673240445192575795520977413513677500217621259455084417238145268527621966295766152539443792994385124540547962729408209904408782561153609043689720626860145913836611312238426920369390520719340472944941347756601315330778773310923285366840615347704023954335309206563004224220717756866339349206167524982419566982252774931780619211949891588223767045311228600556760869193905337227420820154310716030686644656214564361537051429291284969903583561538001657492169581217087917815596871957601705526143475191511256042924178712139020563168281277630637485267747097880487792046479802148041563152201880289167461948726842423492460822989890481817934188379500111956229942627988725780448474066280896437153230978093808702596209530169606237115306077528151025260946408244394238146360350410558512892303072653621047083000020866687387786965028391106255368930185933790271168878938966884315615573588534630906885610848607280266836805586932913964043662485605032288707310210066589215430702294667999256576410530306582839999147269535551600895066415261076295612494937665540960699295443993042955476412718432816557514403424810401807034716492692292290260724690950172652956438852133520507833074798727306274955094264471926617477676249069292133458056394895320950299239975818437575592206815676816766148837848226211925377000520255396009992719291666761348353987512309495119890792777278102369144717758850756270754645403693707003189137625786837337200811564462554470068287427974689364383057533255165020953150891405314440187090500129679852543624583617664184938996790796816354097317902926634135301890833327565085111750832462860903886837707427785314615479689258190393007593620865590758275999338460214699936683503163469244030065828296184138558781529567484000965133117925546823117294845101802350220846913483789408967514835912015866953548015619453194677530695114043566811927284635436368724829160156779309293984335185352561380026324641475357008816418675038768308286446586282223155478035244220995091952371028987098128213197535717204783498232343403841602730629358628281101816754997905439120732781609414649290609758307307420811190565428379026752191474241682851602501949276186828345912665265804074718689686939762115037157997237449180596588705215197591062569522932765840261221145399015396026336102342683408946000338615566363937517088090178152108502778338540035799882010928419422730476644069381150571364995019041020747790769729227461747418824127756202476607637049157704786769967324571328564909333672199335788978982715912646211741234317475769802006668821641129717946467458244966568939937942634105694526908747045337281321583920891836391970167132443413726228072401537824217612103743614791374116162712580216646032470774318833201316235182235417337526216420002986717635175826711589623895626504270644608899090699360961384955532343504407061077827741089586172222100445492159148288171180379326329014655253057888068761413379237455628973008489295856008532960870902413842372036136446280856874082649299674965448298012709097006356127817151114003534643800145987824597793306904027489552318117158900723231197590831078732386067490881166882415903149155147797627516602414715129601824415271197022477168962735185883773589071320034034656349563888275726050396906017671534921124285773288692339646274982502028102236508052500253511789905154276991471823601802080593565303367708724893475278831287781365652166182091134570468670912326865257627339251069783425314426284276002148944250403787407508694847365251977310302977366522902073921432670881923070267619900939102108148182083676825238431709081628496997087854093121513012471155281958576407425562043944356966466222202967576273984269223892826309109117400283093423886422736178435188506837165629424934443265667305657321269343060005592619130219619232302632407283390618886162551305562516776400674421090473320063236889852896858794536099403027819039456813559836546152456694422413766136957119055176383838368500870735257679994153367924918796212765870315921577715777477073863024380257073586876810228110105878480729978927931090646387137717315559037329664743288173863950355361353815505755150788857451545700273456448509870353263271142885048038809348134690583682719687760071031160267843845687684974328581970053847244582920174224584246368261779722877985284789034949145283042130644657651033512453904883008684602714020755018091828776307660591617258927926588113137154318925570191521552143168271291907436141737398085164731533464975088507783095075922369457304267249296840013726538598886017902694442776881693502150446853652432993779598358932531362861583265977322971383195757536801338742460604525437503762333690117231119974663596621735357209006648059200904709718711973951590356864291153628360610602027280928524411296565977000055358549649646906876952353754324067071049884967925016125366001169353191740549119511570769368356660457976410701655329093613256264218074867154917121788090577328980361821300831575861275356667642960343609000506586800888514662802467309898284699097728036341142554965509568977499678134306907301963960512101978005549415290665701922262902191464228714371824333132965707645261186095668453276942468845069874608741018214915673800895620989630479030446171973751635043726338880726206361854531441347607972557228986129483873765853518567803521356226122249154735461769082410266009768523940223154594327841071387705512319624783537237127451802565576368291785451189391567719139623144834979845015039740870234445045244742535675494487937967928917554787830135669728768301209911439466699404163315292860656586561107279679900316674188032114514141979076604502061306531621974156543457879026933275849641417624158935547518063314732911895330596522530145584771251305809020613860283689889460634153338439473740963965356032780998500301886095287950312295579247933290320616951351861888080740225854543201272681994037469603277778571861183465542801463443315583577910484381115882075621645385576243071907059716140837742478222157597859493874475542887972162604082717477566535535258355105750267351350849826613172176584058495574258518219279540563430597784683611690690726393160228622068461845084256180289286806866179317793328032716447705712332023891826852969271799455131236480179619930827736390314180307642952052883340616318475727729806749507035164778948268974153008085593553343875236042617105548517776954814361142084684726692803036984914457204892230104581053800361581906533339278289304191904774589089916413536733799990638706017676264248242038446720680370469557187803895231808539497864870929248923458910178527047385125334787382585224432974395963381141876910337476250051393728962027634771258980532702073946938952821584416666310188275469882860012039497302161312281128529934722097279115963792415655589024536025839007859096746274375467668248596962290130437460797219919819999721273040711535888053254948599271066922052571107289756850017778761153052452871803372436918654320043369993049259664882169323222954064060835518527167784833123492180267078805606258788222644925402433171666661629376685348601023077723413178185244254515035873273872873826606264857680082487192173012043867284538471512452914690059189490851596428565020747194874596603341707775312527083306889484923497267641239966854295758166450190697669148273315421096707511027225734832387141306881564665438228520695276609642491071055447525532877282072729022273104092930879027282762924931354636362743675702850595155323605990728442633819185816470555424743074957873030056540013469410882498158428234944838956861429260043161516340065160623679621898138759204201943465855039340198102295316444999576535458914531013286253624183014118896952989732323975917371854808144561690571698641668653376727317440780552513748084198971275619234451034952643260057752920446940404396297928511145214113741596818884427429051024784308622804040597554749501747135236346736403609138000685417417465047537067387925803779852882036365405589388926487554337262477488163330642661400719519041810703760981391844707823391916635247416164803166820255715668544878047440977369869252830031641773890740592693559313442074398221786699247682368390771323184757465265114442612222616501694553977374599787163501346831211306351776070419245778626910242956111742568468224128782593103513750209688027955298535698426716519404255293955656022379789992248115287360307874305513163937129664716306638971616827884704775588763608482632876743235144361588519588684947438844184685257780124180114417079814012214570788356431347508743107015261877382736514829186466632006625938497457406191606748963132419609921729781138864444309024361075995750694068400554478361493290440605037323703438322843583336542521983825200536575429201642085722101416456181204630240196172339512699493368817437320074206532340228254452373297892490423500670019493522370396074323341062769260865851676476865402360722655768603758281803475666543842495531087772007305845489295652165265915526504124005267969286347927836897853189896087185041205118321247274885765725108202702804126312245940232477752486312849733979860025256628539271885639481049681880052539532353768360866775392421997279507918898811574805605760564248330593328012794667418286604713113689084544869893719236782271045708056863670638629263515083542199415282309182721202700370298784483857647626702968477341549604232492141163842641985222401265954133498571767886294715535730776831992220012921739268868553850188494865596089085016052339346403826839778609931326988625960378873954642678507963401881340621280885874502175091513963574672343023960799106515042484418339097347762470496941913810988211877768021611767326767420931124941172258094676346599504917294693988060194123293491760578659296613340056485928033022371495797415375750010172570111215662134368501004223637718453078175217786719810734710110436512283634121817407397859875909099023469341588523909609019394895226846482414228466342815574688875248793479057558260411740938575371085730047574461406187946966436958846291472780728421492516733770513006853735421533136356550183921827399008394855060627599125896336214612168840045665137778345573577883579556010291461659222664931589545640167126866713077458473000426618619157582959987066688954409842686701973933047488120797274636699568348327192908019742450115161620656173234413188228441403164173751178102132738563033333022176761552912722127060098940149372491769324674350228091357381690013769443354644337626264907180904094236282790464316186246844321331027272874904466587831666574469022458362845908820931016473826585506876060543964040154520831065484553602679262479401680973682590070222442324846832314193844287340657759298853675307152610166769068612318357049900466161373419791650960438301488473512234111973569505425303140315828993129472323933829256601216834423395028502151826579304239414938692853684764586726768844176123897509623804770029986353271314857973102098021710358557808005368521002444198164523877056833139658168088643914115682077369244423235193127837679092191427034173969250055778067366193285590060856656297351719409250698812359516471591516232873451375763813445972581850537482042470089517468168648789431252423219743688396721108470926653003256599380014034217374618206404759435873131138056037126442115394295554165257858832648383804622913123556833987126137716461637343053288171889627470057388631432431682342174312758339575147324117242063899559865265255023824574995782291385647755101640172560699818428211677588025274998843797844015101574094826475501742492611244888016571396568810212227532365538704319447993366698463891433166437011053114594737213414333201345790113391612597609599226044818279509250190144897539627629579571343145084270801463258213533611398812798464830779110320080200968283148506329381794384510616905234310941920288615241633438999146459939863580053365282905947820624667639431580321063698277404742665900211351398766988515669958738160225153178219830021213233306185866079330183193162861995444028316357861462305952102423603209944922272555994333604612421239075061032443213462814279704764156046080963163136351531559162871676382582990148048818608277609997503209368992428774372391299774886146905093038175549116472752087856475820406933005707863280043940726857173522967181669773034272521537266196463840471323533122677820340178518605182181141842693785747119402828420336231163878978048363736499015199346286858711554721399516391054213058496480689351982332413821484308162154479909916320444651653701753075331802306937055523394323472614471378271430884653189373647970498438230361446539550378684844427886273607995233990350292499333994426468714999819451560473231033481340493502877218557721011225621415138763995096259818046859396222751873133772813375499831259496599076967999673449073282396016616686938781661597082132179932965061684876517483228515596551348133077408868937014901746625143031693349770032836265402319002652160732293945955507651893712605183076766988986412607347151184120815778160120128084289950608507029930704358557285325434808627443631479911863214603839983001094028671485384004626588962000418689120996589663076538997728149111962601501885674568076914970507306575487746166897612472685857220490220171891025928051408222915703528506746682168228892000638564673330936430071234830368760756978472223840905769799739033476217526161008582040256745355662491049041750731452193724762652811238879561022515190366695782380211446586107016713118113779938511654932806254214102155599249097645130282618955357726980408036046476999889842012860448332464398650299316717928155484879600498667551682531769485014894451001661518970994463577571216963354340146017551537826772141690029335845393024634296874178705683147375089974914104758668548850471260290001134616125027402092167744132993743588589296868369898000464216815236826986063903320227637379862092367185595668453596177609652071200263026091041239427670057661409181159085767001106480418580575668283167365083097685852386923039652586106342239704964412527589101128273105026675408889436651056017558102756037103991162527629509835504026128994329613097142692458212287287014522659450967007364058267704773771430138815838572539403156118363106533786648374681484928094889221516463079226924895953369735669245820070338914512604330679677992555189153744676194018877547105458817683684628658939835831953041774688816802763258161513542710480269016927444181324926646679356601878777230196584377523591874229300989471532422294797268007599251474497233907176104804969536177417220117887223974663533951629974996270016522564964281332222839431054435155343845436189722542693836363553178517950212356600428630319012776561926779824602981918789359025535564409723167249668983422409371678610719542225309854672426229343650427594720474676282477282756601607657032401466321929864995764001996053779419632052342892135140493459190479300759365016640217853380087287592772960302221351240456882634050077735928339388183188797272916699433409861832910251440626600132938626944929678192429306049577208538179324907176993911448927539143659902391871787997474669052946331419392463636139800528041328700544259889129443189913907242909746840911828834090742823455024575861367281184698270518007542552378037326219808588397291442980076009414888350718520890528030049506873943381777349166101008177994010492298722961708758266476557894653943652428489831908858449204179959961083975312580635078437962213529667706605485421252871754455011260493348397926915342987244149686212631763574731331002995393716717610498822113996252695632710670707440935895308554170292250029845331822860453666505797982021816552190055809104703146903437350401552800831527804255858419282052815938097693795477332169844172253513279144186698946029917826939395677772504877480282158964453578435200124591011190156237239231742342039243376095041315582998935606822994946180716693331881370470419409812074615425168724626211673226101952687443466107015348591305171292528860146053697450542905773044600850713385278033878824787890244995752033064721494728996879854807696629651289002782401940879149732411492348679881817901315285534542717864611190294075231333887599173742585327732911504977564712862953136621175686772808707448070726192815141781777036701774576668030226805237215420651061794531730521673706121795136647645984980142128265563733339829113196993037332493536875620272326795774972689004686070571545934358455473002245242355042614031324611965389258684760617642123370429290884177650732708802778507560666952307290740337360622195851217573996643038525758262077816159851692809026098767761398533987947740752682613508850756651852112025647231610417160735673130217406151082651273352682550958646543223329394436801310689477175934483663669536418768300822045044352362466403659093369825463706475153997134874432338455620758800069906651132304254915857658863649729576857189588714288970040549551763378058401891700243211407350815981518771796479327204999437894074518545872674154744360966819843079157922076439808207222613270877156364282706241845712465970752478550259773412246677620259528901703157937426714426813263422576229977797824366305456912868547259710671544162180232836122788962397554881020045853520369390412655599644553920776686403687318977455505375264125928715854856270537183647014162485496153968408074252648239571092244022132444238531703351600860089705574793123779581280892436310872843574761638572427803300927094943783938209198301372583784903258984199061018731765983688090691732089020186906562877165745028182244679963181240217697443861594708655344460213831905990918231291093701148223634564938555842660186267167589867799735511992389225562702291066809487287971909612710773484078473492271749096912228773850406355395858811075892316255991577021699171675875869140456625777748841015497388314521636138132819202750435221144054070722934688256247185520338501781991849907128071654989078699840470670281269034332752151690140611878033682298693842473043209123663742178744936909065173809822660212858757663749462647436567718109572155811111360673259104978328607155798100514649323123039858714600147527902340364011705743907413861496544519828467245135648050549937477662644578017693901417406548115653210949487130140655495966754142597866921187122249902021768544172926580678030103753708681380403374923980431763986449091537062244772943100316079157494657760557753831572315872312275913572968667753521905060921984717356908067816125530994520296346382931342408176560451801410592812474971341354334203162636417851668553203462251086217828317429571259704467858333795378585490825869702585588663705332342171967159907305275469854144703312040784514091163433605404484417584294626276139549535569054613161776906741429491460926541492175183000125092318487412225204450893920329128309721865179080211265569083048509172114749060017842389764156311680712019133676920137233080899412565044536785868750047616462577341858352506872653126265340350392499482033747580489548802012732873778119595131637124546238436181910178903848578383304063374874034835354891929541110922842769783055555088050163912146441794112055932270469769544850606037938144087707098267445487709840595691976878445157061615740453846416362105341636849563054910039157539055536994488527264907181140236061433989577059732212428238330444888277861838563387937298048499560792443860340912009488063922109321441181691295003340525678639127547095685528390145237560272071572514803189976501945096175910922923852745514715819954845345118189863402884833679793359540360475484419872072198641403052639155493988023980762169209977353420905404898349228801643475410359054696155123600201629036079623313918280964011538250043074625774078395291156777420505598758092615646075535358318396349092180157321302147508842279422713777958137481445982272660707000189365859812802804400975469359226679573049884170537788842409068937555164979116385155883495024859380367569005476968853895107432068157530871879884500039571383229946791625262899697994143014009289974786201223354133564906706533169602648371729941267724463492227561169981519079975073199974917292640466171319924505657334924971011315819722564545183754595700919977191128591173147093892848070558154395063002410144417239407022322716109049240441196550870540527214815387753373053453001967700386124131986325693213597180172925491198664506894636336143627127117436885564193404053411115117464937841375969777478398164039869749305066555878541662371312466448332379494149052163071330749094808618405269032371973167379935196404270645728649608524898946410320056943608773455311108136127793929360386971784525064757973658246338205824253990106658157259414319597752226876062251322797522428329744132268906121573635669906491595734001321740494033093363409533270206459123683379149637465871581872121333566256789029908462322689864418737356444334540352121707364018928905856625946217094198241927148656547715855843136576040009019316920449619923522902905060063348796541074401316814018723035815246705045113252578946919210787841618662406607965648542481768463031800898485337701695956257837491349326620376995091142705782119740344865647199724848924942862873352080981821105840709936763032372217895961376653771358379959652625190015039026993767647114791581112717574677693266779804075851492386622950977660047296124980161255966276748961354896620891671589269449520617297617717212040983731873149486614663953371262654285794982112980119666057058724074842675019561182553586061042199490645019840375120833633361912923924954960407269625289960469775166317812589471608461356071592327593051098923590615581017808352712236822307549120365846875766884460725402775687628767281380255514610499615720321738080541575894001565246454616407170165163545679911045531084523220073231622605482284370424566669329351060098875399604061430593935574485080015848089005366046711346368250253579507735605075252063867292652155812355576265198474730821114558663154323096210190315368495650444621475562095817721268783906345264131473286427122109428018141247069655129970381092285776151965092893955595005964094236868089630659458479716991265434501697588894476350766260575077469496611324018236844711896866418294948302657686795904129678178254166725534191883565077144641184685075462701763556002529044255974670249683419193877757315331096839710856958421457326730923361512143485032712404768402472170437971978578445000829542688790343665501301505602922827971970301791134524158270914969968878260036391587235887048533738747508898222410208320895748809981223798325274409180403734992088967686630790582530253876475973222891601073575136158632754411200709801416998547055597581587356568149346451605425160769109351508546622607392028017145395542702927463649381087538960871466254307700570982335936407712555568574965230471991463573447619630132699277721139921033097097994833940026617707943152527867008040669831066517665975916594304871122584601758882493058518674329886536622614849926665539358734762258780051435169006179844433079314418472652188574963909245847091281933817853426742705516201196735714244149990618952444284640328544613529847679161266059692556757497483690827268259805679449567367621322956270669351572265204361005353307767352427240845811404242129936513804046984992613211870717538909925351302595839087605487039145783197573387285512293136301771168714972329180975671709150168785696257863031218598842553306354564013661987270142197581291122996670113725575754137047321149263096484171480011820727871448332467781889924139421734300298954754882824454705728742553342697791964168692440317959525301886715119310210209984459406545671745334682868178229332749840553832127674671791673591045562592608567105134836735593331291305970301392512421426312881405885934520068108638143959666716377891709637105231458295293354149210919023481478430300900117533760445953059733456569861831725731583957609763827527401524552215753223710734717026560363635897045399735140847581434336154126124842143712992602065503097981600811501857095655310683703810427651553218800201598292145728497454061694805135230006210534500409836828346354495246902380318791613416992773854584556818566712669289400520029913254049478593024449005370281261345193802083045533847771503686524527527170000647255881546778527506989407234202861283074831283090085230207664945644690802622360023835945648152780646730988325563765654207825150794305469653670695085447385939628217928334734510765087670721422481789187887316923079503183215876801288642094904502254342595585129403560761749449357338891707506569416450930416638265563276892920303862977138345308669201339325910638575208641266313743926294201383953797575223541517903620339815392972378696512460641309535733640028082652109274993827936787334653491643824728773541905528493757069026995275163781710260872425252596098616252481973771218952826472139039593303335123350498902489370793410409022063556728629921872949672072239979584826221550364878080565047698214982656830069576183229098833276303605243221347907268311849825137713506135135360047429202043257521693291468855907548980150760539251251887049543710631567327064535961220226095728234722164574975557010688946155698512234593923700200993912969256706589597140917467439396432966295393422333911226643375554108595164613926971302840716821233134817078523767773980724746970342478640719196478024924047739048607051205571761407224044531065015081216671852610509760296336526530508849584046667500395901207339854665566567077377949490992930081677087939787143345700963946674174712922743527825929382449835286155581884919316809058384347639256407151279714749152854129821880029393200204277081392409652770071532553426361371804031483367507364796511026617909852677635423865524056987808437700849522507136989573596527615795381779137734467957613890759774881889163496625184076494294482113780423303019475172263368074339688543601431139632252393691968844803388299367353072227520723808178231993703970998700554721993221822362748840883650345963872694332382284258345018898501005046732343565550722605231014322453470166100108786729542463362363589454270397339323039064174544610150622077178974164097184928919362322974401649773651889150574252137754641231306762894444047091437823714372609512021683063032255328124910773918254031051014000585718560615425543850293587632378790352036562762359698278249711068062743879799904551836894895933500858110902100100834137200961522775721994431360883129041459597977902835094673497010393669028258508287938248998991328301809527820796744414571166956147505565375177008710778995821970659776455828295903251076942178207960788535840833260685280487792450677320285736734324967578138339236845401500517465549888082863920366076883051176904375211891044007939434747601468309209814159588968154168701428283258562549656448873871111797243056367140975590633828466966192847127400587819198173293644707651483570697412302754460214624366947450445392044869321949151202882363801356669639271287771428247527140278447040629566660107320431755398475794240731387938914974794305015327257581612889706360392729846064576957376488864406866247215581296244769156969494913726426284315661881603202601140633910848848801682006383083925948023148418849898075355118661313290553971744681262825897735586162951038294807571771579119738921602951521927990479126670007799705731098276420466061526554437715071582306312289402260045465516934163531604677325517535104084225905867297167513313635040396830778196304078719590591008182181240012184516272626021083326903953138174497739049269198174177407283167057946217410040172752652610136416097082604502615378753485058033789453729731580525650024212056134390135717491935312943702469448697527412252617588166808863148873382340823090882327880135956008619358123213072288457474215205672735680597421351097652515956858281624760935672081993173864603770989498541726324599602040582434077873333420879790803918909183704963763298494297178939445668504021681149842546162574003554499740642140186200565165600516084384544411793869364969759025818180231259760798192688324093236044575694684638729553732645256744656295791822595795369273946433742810882169698834009424516749385015071118131285438820415950581542331305703940987599857548928574365903742261887190965366964443604044333024931126568260545283805591860386363328225335693466897061471372824783797737227884576809873497538106955182504406093312620704036814139643097082764573173976459733234257287174046582358140218524627793530270263613613697783988889878824112538884338460094094712023316251125126948240850266277436837587359025762926909709838192136433883954201618772856994713728049015437326438926232945482531412530504969159356022699586781727188725790402618115307181390228695576371374777193443156642437418163546743910827872405352082597713423138124814587456879042926090926287854392916777356538234520782754273434194298894889602579281973025190203319373394034057772109952838876145064070490521990688150753908664912902424110086307539690312004476318596729870594634754708051454719115841047400534582589039638047759340254018434692401581161192409556939032654071297072414941710867400521467207645587237547915737024605361755725700384389241763888400853051374850755218334406241567252483788981836009343444021071446511743381290311537488848144361478807160217229531292747804282972964696093146648377956618302235784754339830550575235582106465715879184321309133728916035553890451137498202292195168452135767927765751052873265609953331640476177562892642838312512398577662529094425419587175468269914772170603728308127691035314893303370441147339076158310001829430389708505657722273397447896397492701311806688774083971731561657006168836655601142157164448500292148988666712005195882143500594860361700498320219248140968569974267529506666444051106646532132610276098605721129399940123528048088537244750264572268147365683460238789437358109221131903230347041752350789568756505679183342656475581727963955878486683106194803329522084514590532416587579220364871872290335471637084233093412227591407851608653186414536595294771554875502568174403015935091405473262998163790560369927177464675965239765648464112010599515004157402502430162117806024335318590741370329231387583535563721185122839249664789989717273418155821950650532949525256155246900249745118083902202565691286973674637291100362705977402030023008440208356478898506369771112093573648656672809638509136099036563204314719275767826638328035425936904610349363416697043969014925947145217075771394308021184086428902535647679098905207300565441952843784539926186872255684012103273884396035684434753935617948725594104448181812732376886509922236094656573254717189481362077694996823421085905906332320536796887383530172673373813277491838199912969699137296338091975120564900649350517429925160604859303666302999231560960308929232817739498734981937066013776094184092779960927799084923297491400798650127380039811038231481959953289375804811377335016750939633381866265210302079759303495589428928880825809738034045922743449375420517484127231067588059242440368855345235992889405198133851392622188229764702939138883103872754652031389542798323719166770608399151408462727356854706835934528705358817778272630296226384390607164477736903663508736512254371899089134020929755708011745688135464453605628082926031220039380523309858785617951837919000792784221963528289543267641312772885892047023400273975476844644245174712470441852789969200556443895891724375629633947354222148094976150837370878177110981719107035687281336842251615405513304101793281465363449359349681931633658237883424269993261372062797264731762024386156677896307526144019982175306139420295773987841953616395659383205931498468453061292066096477855314621238556700554717861407097400046412163104451095559943669836401845357515109361257248578072952928488681111119610491083091882830187297332297559181884214237178113383312161801507320311866679509735768762737198515222207957640971816486366813768915108063676534569879262461523079412602897937879265510997304878330983285331464087920974827247981067740463944396425587637416412214077530838985875617470910844354793489769225776574072584991349846073388440281453265222643318230320195848176072327797283642268200208766443034199516473271281196016228867869329304214688750066121703347781639934409387400799407158626196349873355130198487165499534821417166715069194491637365936413809061733760505359757343710537215769850546346335651294357618797973394679072151527757413065865651178292772905847918197688031305816587728543167158786816627417956130391505444851064428026025469912193641594696467990816731528602890819277666943172171192340610653934588608118417224652489662248832864825512794493492064136468103314727742990438495537345156008964530962176878791983478615079396394693427333134487563159522690196214459731295840821822841261801057829424888138724855896827791817693621500164263906193399224105600588092538099660904675700024226909009020304840141538252546747395593998534901734271430399004569275298095032102598354657035159217372642412589977844416430535227719456606474184413572013509732508395432775635822564685534119055003196847158313882133834704931589491409215519680332980698294347882161138112920553494066879068077806883832629311251285522175397308654797356580374191389323685301648083663684609695277164423625409715012335574688351457516506365870273769206434753117584346504320021830925571251464988077333220650425237334695870732829688620223320309757290473620744977733839199283028220288599677872525462438008803666369894772442140802158971397891782669853771860759661139197614385568087181394598683555174541815466837720240085043970998645114712832429645996509239951144685168755035660903312533231644873089768542535551386750041773021305265760961519730757497113007527781289113962092271487332088226907582934782329792192130931330708493751232071257876356840151700524715478109613826615250794328773952259424017812112722808370164071398465992492698632259954403291336254566622296186567092322862260525185533589150082416668477621055768508043813674721645989526967009641859588387302179448818642472730861357185950329094255477504923177696797335310805744962222604858119268679307508590087573223759630226064786031606156138811735979513679760093426047205514701109108431248631127461878592604287189896505214173603110061099350691322995763313500800381740551108838066769066599535339840698237604800985310332252072034869030345411565668633997720815735334898215948695324761446768349997742119482858930872982182308066729943396406104074396933710169460506382655588161139800185109503097708924695498398528211904010716478851412182417617479230539831101453362153700032239297482794685214019131958521466764324542121014196213899491249272906734094486931605699125926515760918800488523180006289808402651017396548427652461467112302756854143180665987512162905067591567029466118855096259926809882259942839541953209620062023247189786790423579922315667814286790975021639023233561580622052325235222644912643162526856752783360321457705166987965791296504332609789177638808028035674601420529822583145943826177218631223536481139102627930925461503173182047014518201938125786366268351109742947374724589579149814408148329139557207834146832359154633134465437845218822942966689558271094977915588792870745851328395998258999105970762863357635820705807868719421477370090879422500684180760943045456724632805870857052856772286533283242153555116029121703336719571119318074979622828623063508120741413255927205163269227465786731257548817147539257865850733529203099346930908647272299487488914337900225135219827944544505374984062424500426236385035233587696270630047576701065501210107503911607496906082323053714359576313903606859626787655730606473929029716911076993013910050995787638464734457585210283060608839154606732349798458461025994956149003751804620408710094980003161026535466308330961905069079736254646223079828865194775953212334704069385637938753852136178464695691034379071723080565990590285960742896206904253549275268102289799923667032997216614822566555667515376226772797892528402424550474499338998543057159753869809746459342158986960261736776501717199638714846933214850231508150827154159777115111909296949311394560186974277901870750757463869316702002871277103011653505020106692758250196115915122874101910569384812111653732773366136916984993501971021249629487905562888379902938138024933041180843481910070820596458559898332851381280726601056489026706268049279182403567634585413569276584424835116679896422095242970190412165188968778032191963006925927229167486947570107818374135500288508656734388223290449082715543373980338220002176184626144044096324817066969210171661406641115556181976226587921216192191476854092970694905617181030457586220319332195767027208866307768894555311387056914202825777386993761201196206359373618158668108683503340769802659671569657195457527028992660983564043468269429588609151556119805259800162133424609413705696048666763965124068860285161172006173360462816563140579083124054506586045013917002949103274609164321403247432206264384407778830794471361164344790373690450210395592735324728169893818290982761898678580153127610827777112598712219039882357824250134280773880239928580786888284780987575744512901616276519228713941331699719505585460862143903557706115818079103613839071337268532541244681436288611348058410937738418904639080315184536939559937626679820253906366186921032774493281916166941640634739689664117757732271615024165695009958370185068639383330106838841117497675520873983727900026984808119343313110397972422957570005497447907816515685102049934256329820706080321939105674311992680984942658505730383521679257418144227785904430142291514269488631772878953386690619002126352515625571620013969482801190389493834568461268034277988839763893836438325876725046362053396776354161313447893750443469487149392441220934512182001805227459755196188683180586461852065128875937842374229001287077710550139052201287927697145473275520272960991922332728885848070594220124483704169464165167324730813959451890255410163939807050592130666198890959586400115099322658616832701647494795775753475699567059214931899897726617996876228292911064195262699247457934619822610957512724074987027904903228951560820999799938588454947594747659244891755025842729069710037460549430904913924134423210567615501823794828541674440499035353032200134526968828156476306500230940523430794444864587534541457564445370649771674832963878956732604430103487335936365207059867916799438168633732043991414951912368461230988054177568652378844185322372041625045226326426477693551593543371835305198320906956556417997636207301957881230664775790793417097375740520565354915511656280908058409800826131876480846141797696858736882046928312413745679403296118524509224544852157910648860933268552111639038750023151901060985243218747942361493511998630136606122411554475023398842464203669808177464703585174682191717017272877063551897490802520910450013841842349012267521130198860573209415142930646438749705044333562257837120698951317134920730423176841329628186933253933455803064979478889986113422871400129289830400995555419081689297082734819612201189041738462611026639033138078452224665854225710615082119604007443024342035611396010145597000258789094331264816663013340145708412742812749297874833240010170783285463642624310315154783123879151206584667636068655525950384420951265410663964416322800584630828893138805214746528854349826988417561978244730091874177667112481428250250598976139866603146298152245045234847868750837580859202340658765900658874247534725173402788067965698945505218282619559637712214972514372918979540314883900574974168477114195090932965486065243041588025557933497207341762738283129893938931866447425618458045195119948505137239488457466632338461809942659836180851526234753666260980109685804706499063627291453933803098207283813056751817919318429627709928240504854430244014050691088836996340751544546038204193291067595939599226879463744062378420873934755898126214765345395961428404458633629610411591527578797342328620741800618757699857374366697969811152258681176736740199204145407825715586131965564678530346163311607922682710211668451029634300153847359537855999010612863498039952118513027827022822342480191216180050757927621670751600870719276216843482219930465170755059702506292048669393691937896029477452677869528149906018196461497551623386180283312040777729839507884235037070023159153523002455565613535444634436099701401812580880855089874685806083497169234094993933320725631733521440456544635050484987127874272034081844715790158681681750724924189546258823619376353387831845735214771017672967326366069840490817523929382969519601107105547909035725847917259133890424335968020175391639178262775571175733515861411485975916348512045540111127644978231298702500185808560545564659472313272279752575227639540377964890219862545496791457173086527095345333219903606346144400471958419733384219562309716045263852998079996250569103292649534730224398868191994155346816647021253829555093596841956969606743320077658074021260526750803841060575329655009567412582219405988314955921952842104461144679913111755447825540868542247368692332500487591106880967677100699747606227753529926865169147132140361755318544647925932684330345758829646103714584631837047434701956728303325702266986372699881990847422527008490736486420520036954819077040195797936883254204334126289674638829544080573204066119665245524880906140551718620685945375780870388954873441214922268954613469238577715683747691872548178328829569645132637418579937522862781007712463330509361668438307338855110923671806924987436334721087856106641868137508850757318242655518109513187912193808367779747512582427107868540962467764426867001437619665831077709304879211582711978711004985430129370034397688835183840475257595676037564933798956804765896056760693355372833492303166190916673571965283955122037138196815960834131149833934968515297365441074974405291248063440508734027093542662951511701827736016500231533435562097540262087837074891330305061190017522180442625839847818276122861185032025842314476894035978790699601677259697974006326765071813636892785575219716358543427882296307799665073930335701706550244506988165164922606676403189376235893448782513366833377193302871829335615019502383188320286790827030806684067818409592250873571390846933143871620857295659422776854869539238999113364431044149195336391303113798671930010834169725434553260905584188383789128939953248297985256864607157219636821570340364486679941447105701082160893666665761571973703469446911748784128341145222030021741407543627021666659353441085847090378246815984638555452550129596595260713721363629346519665204045197737828343185275165261528614087156903419766777140576096979543734200785207021694726664941035114329186369340979786439414407062740322864801653855253955119404119218439860974667010527083707579654347675821912287212024490121920745622890299809208146784576684371457325235436902310562057625506236741297021163599487123655522508727120779694823909475154215146765786929747797986640540028606738491523040904997964605134786956878708701950181529500323434135755150680773386300693706528647932652668901757323268705182842943245977033970939438573677459592951927869728383503521527204354714770944817727340011277077240829060166799464483826382360011317483710243306455082049768885586980070477938225520976236228555608786310854250745165229976751049777277817503518993661586895630930662160293313368376935730977425667361194932731588434676269635871941705728992619731678403134290059456168196496967102008523143197153337788326220162174301558868631033318954739267950173676361495706852951277169002489965271203341422503970168179967543333424917436512277201913509629041951986228555544176872547229244938185156297626829509322232745794727154094278505134880890997767449705885652897567414637122759579049711334746218402868829247270157599126198452459429458868779203775645708396061611464793238770371670574895171356294532489672708765720722671867371438054660953874622196366781142620809861827523110279733010463877125114918299375929779344280368168188100864855858261909352863399150430318378444989718688907266312312811783231655986125240809380482561098906515758401923762965825719537739066939309775255119718764070311663651725423789481449405581651078751628326763197595954864511366419266185903642242329662243359708925202385245526628488994873650555213598188697855553072827770592492638561763208978188454717439311616924133131724046761371652275673513878112221804869591499617150949025159115054061761467809420077644900037037626784905675777004065308857082031270890373422276822350638765256086428251877333650394516988361436161890063245623938003001623850463759048787897566323610467120953593793449644137635909153413366893906609272418237878398635051677317782861257246520458781962217410819290971373491164343721953182530511439729426153592005462560779845569595365893182433693113071271683036692680110306958872159577463083873386667370356594689915844640527372720563729886520314969038983986558651518899055725530497220059761653466153676124885582370442407469022480598263080214477815240517098457659029793849184788564417792466186540850608601474346273164823231832381728432793687483920825979087604699928534822251954573561678207366026186331174870890987855711795990379085261612433723707506218917939188988098993139101562347406059373419980678828647603088644603926593220896892024905818329283759931213363386440259238781158292458274558292945494053150033786189792057211525274703917944400801031181227380373137142795524519903565709969031735336899282073199049377846112108885812397009673449630868518350376486219503367013839415265878718191710007060686061695013473241706135130314037963737919215129535190990814563793644117949928031920205882524937470698490999740922635047680838465030754140394923954578165156082640445707534033193623429691863986197547677743460931201906094461501681366636288059337748460656797473294400733019704771292960273479610347380682083095508646590056233408858795841323985755765771278067303394385083567678641437230786481446686056579046468408971637214507402885810982748510847681052549029592589317340720010055088067196554713294238141896631403755843681429043211696026013742199588083875828491312933009298350145524825914979623963926466221252177672156712872619255451687465793818905688884597406615259449105720014072633928295387821521425769972588287221053268798810385214847704242646402777992090515493550595128535911172207438630017523549833238858684222190179987655533436106917584921716408106767055198446761359508884031975453782933480450966267932107908907594303029466461351238712255665484228074691077932788882290841723494212761440039323605966600992689505397813404307850427237281237492703065577632311093103561592270692097187908256858857939223501074470987604930116378341656801672630180710548062050480411982970325867466216659726620716989741415971082702464297019927647041618265362167265033601920474520987002778780343286068012148538914279546514778085457306799824183269833630767523089619943691239474103046480695745226937284687352122187825749591243040497635818469234358887726176894544645207093763104443970300608736766273438701864268791612923987122243222204622094098765618589065636875978799060001911840592875819013733971002224732038282503616977775665825043739906838930889762598997765415064766320349509534593201653246471025772138201764158323674176061686359837594302840176312491222294775597232131129196883054948788787938412395596824150829303556318312608277648421028663313560022708996655711548672780164529606758768567508172127130538519211439561459779240638903422889651745819198739442726042371961843878852257148508570625244583917748683332542521230925788491086635257022856241717061832186886759572396062529596892800889847803210422990780434920370045194585402709451114502208226978550274105999456748747325503100001941414899218771091432318427880003447759705048518340993059911595718355337916379224452284504551329666051805044119427386832219250760147695508267327771906441329488240859232329956755234815390254762037016749182930138104424039268585057180949990721096049793836905804893370705693294201683935257678862283894041384925026943998137276235453693662157133864825708580610357676690759368801220497494086909118617264244640584741560250299290236877664158465017083062745096516353522023373657332522714002803772548553341806177680872196907556388504590653942308468043296196708178176979994689471738640115878070914409475584920402599015788030404206471619318669792410685389087437998106290620390100816683550408453011396719332926521485997626434096164027193668676411051105440013698901035367539261637433731593246944868020646124175075086704677607326959437132531117483809145001278569818096457543912629610855787664435836775169291358582265794928512900765586201585006158171099215296459424824098607424746959376324183773380292352505350773990401411394702022990892819402785891140961853973660835066596587973097452550733682405947897171147312256588359271366277136392858832332362040093271364261598211329610309939665385496017392417891565844606181238925873185583884587586784888262555826224374989523497477295292436977929230180105322108502663060386011622663313873926193269215831462047367285382474505927968187470394652235308368829873419139167461006587121882034345659925371346962078082813928867887406107445748009506235007177112329924854030552316017111870885452280519606891554305074334934843994668013522483109570726349039235683992794887232949793369133392786227693716053278748229115715118667232557876368429055614822403245841570374929097938956614718620071684215817363144884704682141264616287315609033446303390056268334824612750952449574662849775554078889652692072877953633995968665007617304781243580688762323844355601220825725790691660781622091395466036809596789876748063175539157168842004192879491735334109452579231955143566870514742870287227081967581473616792781638741038387728391947995483382826337924187340775310379390531991420071436845048893281491184596570304812822914003238574204225439452651907866283360667481323392304850607230743705478587042505983384872867461199545769607077529974380344381784753999417719267968851033423388396608129359171439427095269197953652599376260755333927092463088398608085970716658410614402303412853897812272151600390272115444415052532473817314465480215065148217867386714119343328626016950299970142389563071993705638191636012002000172208838507233805708695855917549021653653352822674473824650427906962686761398209027540962348785520607824313630745421260146322927142820028283001404346243844711908398417522908585824933485680073117639948468894950003333292683448514949425622263440640428341153642550900733259754150459501919154549871776013284029123632108635959064872135848304691927587766028919157343782775784701771396425462335899900485779727530579576111816465228661508212650356427934068451822534706236489357744884830939926209888679251422539805884844989497192399198459009017092878599850822156486210840112281489117220406683163822045210114012023582917589055285777737922486559820615227665217340619552680222628290128929124410194848530799629242668125594480700123054101293293995081451713258419544332105687591488628441211460682602257220694549540641164346869389227301169409037508203122292009600655429748768953256572155798135139606204441924059943473420034870437770361740830680233529569379644782991006131553877262023482668088841940215060011952090585614167588531741635640697861129838063918382241356847304711152111920213348267730231031194203919044556087745050539036897774753623369396978527126686119005704184912884574479222379110542964208292699528710533200582222623801514681894188112889755565790818908637158996191875932314798507547843033163955705628197360106770864703865203276385674222895517852070417948441554808163939972431709478645762628366240738074146888765006768469800321529109985540986413523143802792739415214795299346912677566567995418731867718442522403598836678066516985693988867368523681539228226996649499910778081490986089342882545979474239389722517125124742516202732476750038210691567190989516470282617103757788516670458709727108700816018411811481951752815411688500070944827612156198644534410598254751701678134307307281594352635867321005270454973805230035222643826289235902615842003385867135871636521920098571702708855674800353551696006400871203652760095449429860549008631417193014279757012271833798668647101407833240056195450193901977334375220385093112658187968147025882884273169813528094369178871867386737764310350208329059793147641080540009647895800165083644232883740982216639385907746676501420231841868860754234018468956613725946941203596753338537245023289926372981766648464889551784081846085210190778143765868129090617396842782760132472828898771625970751199495775900528080127440028613556522568243583690298249125886352906972499182271387631036541992465053497764897748049607904025880972214181735933437290349587607334413251098453863625850675368824421978166573656264729957637494662334362275959050220049373964616090258576783112418564016135415122305557717275949619175040697829378062018690211345743621331816590754361549650665092719332132318573908429552922789394815593760397496546007875836347503809939055210828130619552721785169079277908490941024833026762183206399896000325573176152738067016952609515605183136261490896320932747217881796139253666937117661791225480247588858812806112258992130828386098568930877355021499713308780679141700911828403082505804929429414239339887141462388852919693574509033360258878873243154293406197707680919154053595866817869472512458741530085263644889261523734340732872187795811225654646328367877638232955159289450174984636844334158537821872811907620985586033160110211063237754252420130231794986541180692064881978184396478604327432599039082267255451320863516294624043420387875389084244134551696447040202525794450272531188047011119790392190746537605851419950450904756329993458401663692234275819919104170848843209251231282743184492407540250577732748304785926952774843758536863076373261641837304408059052052109197733473804565566848538038725916004297541736324832599501754094812642962751764794056661300350854884605371703993699332075826922934868219198062481068047788045029083682234718372969893031976578385971966166484027112021595889130060145690846696002786662184349840813299259601392230279112009385482367309792188835534954125412592706504911158377728934534872965388332730324246169141860152028951092840499459869037165606499717433165052049826723109645170911087910574170425220861360382182582838041458544941785412588320100043330489530394756675524980691212862690852672099779994180166300288444120442333556881735553644446356892237039804650135072236487001696928919028045073066610515896944138357709959478745517863600039225610956171357090885533974235653826734748309380131533696898043026342757975473221222567723874691838389250514382291417456846914173209363416947246498301632598983867160225971643907594367964899554507985123474621996903365096956621058035023473402257364373870784388071552598312581025588963218043387472235587301258565547043775265777136348627697904851954027366168468602179162777683083177768209476247756369989751769954712442086180996307252839463259457110698607868290605023117238484378746088782439980335900271557902825720316528821153288716761836977161958891847282278848956028732806661607899496852338108627668918802416863513346916934167285260981849117599195054780168818034215193686463386388834379200115943444053898017675096869510943973390844242707322252739121389944234789651700829385310462157467437310230060283097228182623968146724531164452601573121966692043545467851864870240909030639998669878455594232682038244655598112698641917148099692894599657762124032999190913345985500153733389192241991904986247903292918857603486990500474948847698779641175559786107614591324210440903992003012423631130836359636718118990710960092776093217317833012129101544153511417357604947988331342139033693248356225360961067229591430792911118959477395193717221920385435869233214621830508623292631304700195028965912958584530894709793019810809532442006379416322635350745330161365161555085531663931895392095348596732034265340228020407606416928121625701557820944424539283920292750453991101837802598042254138205876910809010428588990311056087584907526725950621248860289796418926875154384026944727821314102808610366627592375189133480010229498550299464443547686490708132486174187995906161080718971887707446021141818697854154583989088497851965500609796324563842969800814027712868753250511688057690534508876736685398536779819499467498189878689525028403046950304212814077615488173329421879772456271768053642075610220249100962557147972574336427459859952463535465033434308205067792993115238392227149095737578151001636033041591823329860379188547729015819487239677174791613579685989440111568027726467028709085611113894863353970405144127040250096487777718312028914121034778324492303930473576629092329399049492668391676585052305477253962755012743454257039325190261453152877163620232220941108687335695643798206622698995402586897690065237025100940797110715683797099921440062741666662724041444739446801792015144489039959819247638032736320720808947867623907816812363618690084216106505431959637002123765679823709659488027365591623602240413063432177033259322434210667343206544543408968341264470415375509951722499846494480279406905961789728721374332566354670556212355159288403220088101923905673999993531285295981068272280286492935400468241395658779439375428725893636827225422185519359869220807891125891622744918113532399406177898845190931171445189814388389986634506588914894043595017258115544812128187122350603589615106235494951297060809542816292782833021041826826835260606076451951218984778685240471930206770497348326015676628665629627571528244323306084400694945850075746415246283709680761677077282463729963301474462343614540067594794444028942058513514186717098853580659805371826450878771542286830749965132830464665203078727329051960137883166040916443067893957171805318189136419146176701525077552174501835741913383262329816202144388563635899850624432119410533358889611368402785298811645823328619897230098357267173705462388174433779493818763518782399390927517579006183790856616994316710346039533903940777853850318954878548212007724224057943776704743281872343506810123132814802562716918382633157487676027420011609143454602971533698646881163982620788217455006944901148902889457768352569472028835486786455306980525550517689054723750790010281624392144915121755533088755181486208745658189725117600481883320172582279486603129981573432694884135512757324963084882052939805156212257736119353945769072642354475743271333999934614603038767704172925026834823825760526494434596564176017399165810980271470248555518045472332273686561716555506290245790117957242194896864190597855654367664552094562514066666927770259990956762217478816401469341622161481060831373221731268150143091323904043851986697039854471868070488599797825247546108706399408830133651521777544033145749171169199882883179956174023874289286276072914928743417843725148832522492428659165864680211191739156407925415030405864081802404099060640358878561063185693187041515122677617522438531699887364970701679616670856820656354624097180043614017202307679626645727681704603008001104269910955905844215350568089464797008701246431976595888541755621572950178478057509758474307242260433001193437788744294391298377526895700627092459145437693953877150930799020286581270080173542840924382349991692288259500626573562148365597191786349607625208144553746557662762598051246775828666891817969002038990381418327821530082934256822916545308706854932584796779743871902825534732003563999340588333529196327088801739478572440690377540240605280391300531734242123550529854702681582860126665340303883642934171096492290424472457977867465906938718710591299592346548087872834010399942522576174854661313226398342650208423628868973202826599685517104533996433731000171452192554041222837986403459167813557931475628349810713131900979641928710692226896433168251744211415121694949804165449351577394100157363631406546178884936181456697332258708891554394459630841178216545015975172195580022174225170783198213865005783352612637487195398107261882662374296084827301526814850165682667780097173550206731940208434808371294975441361752200106036074394443475825688507681877165647494237614756047078472180527160331930505580575307002350070825122693408207182376873222788110074470310775493474069987510694738954228846571803273343564034738494190465404754221457167466856370015792438275924810716503986285726657659261469339377257230432908409162730996861035987320873019681088722188771925024566644309820549078444795451125715692880154064556838518701986620330979662282537501524304801938537482128474567428681970675007802439851618559582014590498243339101215234645745647493800410455619433223121363279396246940230475974024144009976962236639008047917246853158537252675317799948162974348456186850711280668688821741499848664323022484040508062518326401212248550464545067832795734230269405411811184315218852814999794473747443483030776215807411227294151933953272404593387253593479492577758313293391026161484254819948908327823265031337834255455568560588157035456327645283591030941860436353636504719643775869447249078118092483798516768183744855722760503855372110513180320670865831842975397404553442553160200444639218163421076837246290809480297304654322153294223146341453394029808041438032807676056122489027877732704608511253434521719938918168423518868524565231792316697499419220303219756525865482836792092252435080724754666621921249214159420713266417632153521786802458147253579607027688105079166593704495139165978490957617266002059938047786533721849350499244703515385533896117823025346007761631049798009360131477245281475017912731718886672309586673072252634254409459631537332358581171703578302177592842205557581186800618327848382098266295319656855900162887594753627741403492611117649174939079708520856782998247526505118786518090557973484876700612407985516312155875100735629233261223222135236462686412740526954172964389262956118011614770436531723614677847021864172276231182320458987774122740863984671868122123514055307972458480200776920799307297280357119444180513824050838063005881609633829806345345624435455399590018810319679236375430908801206342952484051583085496085321350771222682397793763943517510577131118014739860776435164398460319860401621660239992347673055123334232034834978335614331526708525624480510748475296242219837183501077607870401960905675505102368540452044658155702452538091454459438877988150930558599397603470388367216532997478774074890514942020748846330887591731914558726622651541467973618330689152208802906235416967650355870494699804968137218671382288524943326830702688944078788495676547575618396112009243745120812001719830303015154080506654937037729883867620357938224201749389103811408090027287960364776927460797398040193629362145521455953784778661751256817186227695390552551893471503988577861819726708630968809311503711057686509943564502737617181550922631177575897443319464656278999218158202441752780846236770744673003092375177337553448307873065732647839293999892674420618178079308204466499504812996946388307488002750372204512279772461952690160421714451118978749442893188316943538695088479716048674467374704228709766714553365058202929729569989697027543031129441355111173721147641663332123630069200784915458172440892375322268302690551489280278117792479137076220028448894335527234429023595290328224689329811124860428753536040194968015355676599358555940551997366319986675453198103887627985762581220459876192612950638116053555396416648104653203187606445872894916917694636418503824728419055155030633174535843710188532782822584331265784301690086875999153694235570357244043319311798066649537766532709326568205510590713763009247897258607288488252668454697635726720528714894220631687161429020043611751261628766454725805766710965887961726707045441995484057023859800611304089913131525295047319415928710002818635501320417693673074169768333162367912091692522556598068404878987689542596908536396933530834218306749790558368791389990485647751238616862900684330621644856803109053989922370661454230300774505898729884031969949767192962895800784416170161732036302455193457302174255319078465580568950860654540368584679339812062393990297012487514031570070400802459604306450873021337095608675012273471200392618367057885820567227385428284969844558821320870268659284264199674382428674385976867911906828827424341145565203932699189270207982019668983273714096468627574225116820488959149363020776049166178621876248133168422898805398428398897011786404462651433603140552673635440655271218113788479917494105343774078276504939682286532376030570175432091505549638626062984101771636009272532562386588605696434972928943489589932584637498151773187869408415731888260371760386019528793016193365447261387194899404885624328953714155143432316600574407802636045802413951827060493401628132982328444386058241878411776968664646178402115323096106224900403395110706943405664942583836268158003863579597393057694858310813842524366051443442114699424932096758762711331459136706850666600834596963725845063741133849120054976461192619095581882763225272552756650206306907158347276959770795054209908232790942478800289531072240720383745150740684338402059259810565870470891498144431462413692529056273761782457252012239486695812636782087911072305845034172658893670565344825544874516533223244061823722926503013404139058340578632376415520103581406234614444065482446614258267007537950393083862035088941769402542238232103427366974110046619882915059705455046805574076490812221469744586638076967717039077776971065755951268301072498079486697985886177599853340169502865868774283754986466927728438479319163869428326667194018650655118591411122795875734493922278911326245164302772936774508699967851493394393397722035286890423613823098592144139097591040589701525026341641050818499315330247882832542120299196102355071688214167076087658222287574250931048411937840249328519921746215259133704382523940065552001376428427000021223839099821983947625943847131751560912985480589472944537868141243188098788211617411210512049987918023921072159327273087204925113373027531002807255317891122404495474181967518740647716217292422640327418667123221367272466523871388853708207117063619403753653328600608114914673736957450544512868630093523997358763221804722645756832374899514291080195769591006286350409352476306428757617876313257922347985523697406294023604815625477483042548231239157787562386088503012326978085624405446771243544130116659301107795868465123782264723957580179007888509827241689886643141800736109602831834716075960982000058261073706633969100606460259971587581050226363086512069289817303680078563694161052450500676533854227964688494135490660766424428732679303619459955643619161938214577967196833900954093611724405742243520803306732643490642028943078503691424366788933559467124525396961747039482598579047273638126777012405627697405478550222343262176401186149748836195859386909355884426148087608502187992397002806783471609072937306754957822461896519491940874636569263172062509426144357745845819402575579303371496446105195918820794071587008342357096407935590519911402995344020366834361867071913774412658733228275673711749680284267060138128457900155269208019295422146527044065367445357024449142373261528153053469298337193029437177761522590988322788394954992268351595812099826692787640924907874896621234878724577683452118310671527180828855217002271803716417401411787210911528110481446932563340423363796578499606973256945789362386456267841641183945182990658759754397357196977330229646952862827208613348297838560392190891550667215642766097895236240272035233555933323092199584254264451203259463807318763642313854646545945355146174881382162923069170375249871549813903908093867601758520099239040465293118732400261969915354712380135347342521587390607542434517712714619998526818549681124556108078097945215364877129343543972446122276485688524481762040015767661089503559037365504378143923755994406503401560599462816982421306493760570697491914617702415389953379242788537914227380582345218476086534697032175300248875372017490260258159867815906512085088535051900988362957288100692398595114119660303677516954243253482721136034537940013623287500952287845588187269431462529316684247369623787699703366628988806005585363491439971096297041485943428275701716396116753954834730219435042586611390959228952956684673800991839505494371924478491275474766683659669197217689397232335107764594890558426187233606468037156996975900353314120662936494941799690525772159970989643148669150075143734861765345953130731773173250943871900884329362988488534257950654988048009870719389988639601221500720540190089307749328831097578088397618089017391232582848369641274879124072535507445109345175682214093240950849646353722777065896160592827737893850177997475665740689908594530959835200176699877839385133732059923665710781791309552892787350692113064710671504073012977345660390234919631670501558899352504421304781200217277585970104494219379028005397646208749033503533422899488460181523578089551384166888035560287482735753714220062637568405221410245886641444215245212859225410802802492864064610480580308012611664360611300161287035363728385956280933251208125800176708948462888265905854254645342660065695428603121022671696630660467954104339142297718335998698605279020993719268362876639143624070924421863156772713829304656433780086916234893877919970376405145117836153836761431515069292844458640079463600503165899132510555646064467794068148219461660896690222181472212187062428431644834877214457846605087300201242620492228146597142594739579573345031171551825770796591409635433909360402126498895367272562472755910856582488724075060703170384440411384854628964620518055758574864032962553054928314573406460922071283770371616653764627309577630002819554592975001095239499057703583846965902946821358806106962915293825947385697337320414935105005456295328785974766105891372227767082468516431613877457359835805046322614039185917392627533287489641397869393714884246779994555829009742036556977498010646175362020090342098367133525791677507838796733622133044143324412009451821373451919688096016939892353085602631590036461781362482012849632083178242699121492671663924935914509963005706948737092500480589197039728196509692345194247753912209390724747621642109486398177647938031235303184306687592694031772835892165120009356617532448406101074237148596889313351739518742538841534401542858500732231421414891409795672023097662362154692539721581993019776885627596303454952042007948762645375721741234602137348765330348513511694031440537157330491906107472274624871450897654591339756680699766037940518262223005778764843224597157393470856835725886354816744613635919719880274112817820439360972828368619957634371527197456689087138327672010359928117572739692504753658350091902771237942506468452801459102564169405110176447586373121189567791152010882604978688188233709381098087938502145499010486927878121449249178609552369600203057876428561927062151274437080560257757881237321991638784088017575127903566926179473482176186109316256384146255433491045380027640324345944001871064846499141623199606415423168954976536895210932920881448290097911278154632372431015548229678448517421929255297990013797773799753671040256325327128955468767259159455326154514138441539487490824892420478723928308275528853668629142657025872540379497800621904712248130036770299513911943135706888445652442931580127353126596242065575575599180923098130971755647176251364898433968701310008165081149060303004837646138962989029611407353630586087448343059881735086715577560786986819383666514711514390519721908671281704936269041990146504615249446717891771372843133119099078888620357265230964061683187075180596984896888009413839425444202011398056953120202167324313549482098425592938115143443287405705969279913548049132336676442284739941854135097235703328611854086563727327815436383987992888061941775697725594935989652005061780560554777553457922444639543296372516053890759124729807251519536681886188213861757249861254901334976555117215811483894213569122188541033784638648845550811779304458953069815458747125509416274264690845917543931383774786462746454368210899681082371369131632283414234603674855168280919397197745420039059434514166519484653735923455971298662709671757027931052983194957071276462829119808631220018493022581173275733690864176829350681764484920462409137941557746733401758548732909806773231330241578813143173926556227537581456759472986879131776709203241287030487594523186737735769440061424806486113555651121428777751315628409737132738047568698919481747489123224791766491866411848360105344147685354799307743558786892714279027415100716627921228237662987653275659503837723582953222163265862224625056517601393576661649665311977399347715031638409320091140809134870742198096240553680958490268177377021480357020406515800256174856601556899118110381853476218103222578849991582826288821409967275842399894155901435177530399756634384356856197988994812172169243400046735445092102844528110849008505857646655738552277442210375171406895586791573057920009577842630840344479889517149360879382641098924264401956723349969837459704046429015336573663533151392675746936337800439657657817965530815789611899366759245970742131092000773681831285681229051231182515661837601660566900096146400347442333048803083021069356149827123759044665908509030732532861492203600359926058559238022052967425395356338477491223239569752570129898332608012511673976855121024020437867675433066219870007840467028432550575786017089907493429896291685105078925374569837895346404943137085125352685548854812271964452524681596218994183177468769771932521568150602268026056083053137336201949881023235239363806470256894349707837758155121109898562425263746015917451336231057811677192613211380003860454182533418387047455385285064543079551781862638881884223438093309546960674919278728511140892193705175231550486738697870475635275226555953937560081263504137926303903668232510397764897670121880193459156307376143236146261552755559458095113983281080924819211075063587216961338900481243332486740394671926093937643779161944347054056305793767891825488943401693273247633645577912349605243478074422599673646027408060038655998091629064822948582716837665525570463551973116205286130887890480368634366329528713562973536690850975358595372608851138762935910833993286671049835032649160761502421862188431304596200490517633183547181270065521693881232120691128254567133701664361297490386096510831060722980260091227618143906376223808389244810813464788094029229118227554522432875717763415025599744044458414175189499470955443937624779047859325282573858621611709395047641697284739065758825181384182400598035257209764086239801857077730169710284333655447091312770022357887023186597696056488003899108787263604898490737638100858315861183969407523454928827600065813240987987603995008395194168517079166968610880872488916680568015184590668875706508592763923210284750180072257425658439267960576606273641549571733304581514780252543713127468742148075630338214526805158452697961977277613932033322638549883618795280996755967865061311244680339905142356398949941435879455194180102381866780281996098350486588221342878996639580247422318273038293985426196671930927012425918914970435958591843491443175171398291908441817461949788498939498920595657732191477501371759350025957889786218353262017910971809296770654897846749763111669361587852249333289160694904471053606990824236257227764949986137171177288516146213977750994704625002206094175982356635574830284290190712458850767026184493253006185366008953946748324137831226535422151589782682055372213666161077601437592466402095097200939449958251756514725371532522823463044200400479092631203336019981892045188141174760392577055460872125633146593826224854881149009827557345406065875317779565400032792040636997196313816083522025039335899023752137163140109995559621748590050261431110854358309375103571009218749017251425134111639711603091618060307068843570437961583760104270741561333384320825685572154451242323358786125358200250677554058283330613692966817191538256112398656564554178161276807917893578821928336383863713779764410970945133641027796558499277984907975078296501438045591901089504868078480720965184790264354868217144692181007739435164601808214434385076596175285735836444091030820792893175846584268092066572517728177650834956431144776262196752523868244099188948187606385888500470010255285396239022137508143903681464207550148489518174677449027331432956044052016782695908306297351355655342421545728881942809174083158352211543800947447232964746504661123829931647257148313115908193727052870018209399681372383110406792525092683262699742370824095265086686528215119021491572622156692831236225119309547880750145403282882470181826051326575178104355928425927283153882253985188616971997270750939292394290226764806442183476122373213532559360110530589303903859970905451807654374804278226996869365905898046277686614401687712410346747626385100208375272019677177460460986058216643844843188385271371484007727421952336067660960613671342913989328186636259878742589650192947206675476245633702919766226406880959562385665815718668105331413255807479473771918201852961318205611733945592342415321968782207608091310081714341758752290295902647085413701641343936713114646352689101534539125209042203092317343690189883679609038686791483398125980953082604217942053168371232652776078100080346154633222405877907684748326289432206033150001131436480772814465767873927442167505287945536132163932646211972195323429264148934347788104978599886930658521717599614591766708211919891572013790303544809233971281701041446105839290895986942942136190626468335049061031068425206940181321466494236231195656076202876722200061011443562194131600023126699926513974522161163345679360855861289517663010207988938206564037460938400750582177589093866352950309552848072602059111551112266731590600309165052676781955525743773201362279443575139275270235129321210133700866156328308700729346938704914957315123702115277399259676540464631015407866582766578342715419642692329213893191546310887520526641406852241916449910758613716449404109788337233218913694152787773879112430938865251346058323268149188400278057626031909128770457674085367788578127742486083319413983778612500250227108616842369400568275096777752279464846544161309747732608299536963249798625646685469971961013304284526560357712742064330498849830347559687928667229414856017331741069019193285156833212451950280514993061610970787709388385200604152287063106444098682312895160277342315306619235973564809402363932742429118641791963507549888906855076790874512244096505101563653879025500367162513560926468101829608662154989521450968144681512581692912509317983571776727212201609330840709308333057696538677821382750462136560769822301952508903119130870155421931416109207692637723622750440474496800425789421776588749099169178653410236928600151580456329275912208200870397371671603820804609194570287997803696199810321600764681635747578115277913733297204542868152523178731727256952877198575180605638487660843191588003294748371780800875613624964266642543012190897557296442728706117490635756434606380860116084874099387798611879398310965820478198077249579200547549771254004787522158978049297064476799236594350811140801838612036276274999373597820208228877635469934962347811882398800381301506379323727751921630107884368890349656462913117679041803226804777149409419574986243790619862043756685951273930249630157491535156678451658574589827945609335660407211017344679251862026975560131849672598289648076245517844090284621971438121609860240868291079251536763269173153400418397707861485280658491481588484334516079891011098723683523201685605566028470569503160896729294693133794679903284176192714846201510369152192861146464548656278613435971934623799836771550834488543591324443122910977254123016228460175714402207999276670180964513556216786279310687350079961808225517626628369459703488578709864294333789137784286598009280255653315813053866284179172176921818229135190962361538868410051512967698376323238423712515650605114288179738953005901681902331682044808745823792018685070279434283572052405689577252167668309178734741880311394483721841492740447882483237746649694011484538794030829682512525111939771051968513195536131545370974482167295583456476668035563970586371174381496720929306675862028106848727058105739763547230547611115442457072822391136142222209396944339635884639674001588531466836620692236437113895703171966037971149395908630377908303249531633111441979895918299940098878200489509617519067567307801566651700998368059004718948060784846556729493072494561657326270987264402408793433942397915671005262898435512011580217060318095047616057541956344944060561794025725986402164869549782269269156533921544736957669769884655232973019301891064973600896419812284949707895144823214333661843262703862602452422244267552837251703324989608544331707607352384915099129676264340620708783216779263117926764566993845837073364169561775037142648285359414079391765234466933003047711886293873553299483685138955661363875586736928531364845499827852612267269544328101313654523811536870426027668957564583171845471567411444069180693305898633647230348361905063302213521019986758176799852764260313321441745161915564180297544070900654391086151059857472269292732939287106832094621746392542277176930114999224457204079742492124012801324711639979635159869048783011196826217707990424528293029162097144993507940512417411512503523482986526639013198184151586732980400954409470547579925202989314695941425997320392118807229059316830950112502451906506397739345854442092059378968913865266883707709781337881042761687863818060140931862026035613023437760099851411678097879188687018328922983665990801031803616616022196257032287710791545519131613295113991506058935245535420428863211141048986047889502747688137692491420071540094345852761386051019234263595238044195181421817582161625303829087294573859340750520858796434526707467581946107557544804979391604034182692631349336735540100722919630426160541044873289443425497470815282874500735151063197314050877925902063440568427677074347792909489752626688729249560828254032237060347284428686997981983308894785907137726276809089076427191277148114094952079841308793119281623600252920766593450428321919144057797042528514563109438082767394074827492427091807475969312778828894316273160527600401882272501200855522934523834744711724473585124914811052657643071317372199050652167108889346299387251965158616867827941490461227384709173665522259647809537606145046476913018112442879639324898519608052118329303097713042091709503611263576366408123510366237139475042134454771180147635829598398999058945523422125879291864249500839930271642358594137663084359055270892436486967810069846423789288816052233841170622612866854464008012126566748458253095910011246706260462047084901774325678202951362878244293108883075891747006155059482447024192091477910957768445505680444366176494110568060898282989089475801391726237438392004732558926373792099981957708787386327345813907227995826171885343989338449236492174396419183531662225846047795412807907044453773962222392553613781574931165293081706943140331999970081356993869816722933064908249558641000239560005057673137530830636242082322357877838776470867851896591123327533944319195981230508845512352858232123123993341492962215228206756848835857523841786207368050482436017438543525340147367167947169499099677422974684420950222754086573503380514619004578737241059322428794447584150051513106478781515788424436832231019363296894784561666174384283931017765280867972933155418791473747613966963172186746577633858477861632845976354775448348755727327196050095216705798274740277255296633118963186205237430852934684528383817895333387369871417727481663932160173558606868499580363365003827552805546042372485707983591189781872808677683995673143970248349214024556427971656901055924870819921933211784162866566472996149432858251791292930735692305256780619894979177003285545164259962882684071567426588897644599501526727971194455311466856746816207246512582379573661643382261556726117239826351662111241479849406522513671318325888903083270767013991319080404773592670247901098809987460562679939608389787269287032882992650844090353199537822087562188553775351768658101959364851747539358743342718610649713665862346459539478907582468897065376886139976984091026748294496708618720867075437848112007387713233421733627497883860154389190013569035658270082604091411592767144017474603309718795194732897196781241023416762110509600603810114452123935483515324746511074532918892749115935660307577935269859112109696472475657938069048693959078020387764380354352145629361602516537303652962926975754287740860917728718389549138228347473821915257890040597440051127294630993560988687520437776800657763773343176436330798518279175199695097903047243151647015416590210433094286439219089746194655799131036504634752689507763936877791714646282600574861653110031276372343716496095895245728616403791162455655340935440029523580283723668480765141154479070438698223664164034048320200173707964606933017446296080852690158057426689343178398194871419915693898152067030974958527522594660378238500911083603598620400304253950043029158271731741794233246106210334094829457815597894284933118519664717635376180165045593841626913603415708020107465852493870086871927123561742626592405239671210886179009352124070614093293106769047491036047330464271026331432978523754899016720921938568161525166761880488365015039763294864654726259432212169416239577524487509634299776730039530388763843700792819836804748150815469228809460854155850926202705107996589231236295866971603210574563384309276332997935904549966750874866571639396790410706129319156589512977557556050021328202669088832452363517935730735392813925806492507329255565251496238981573070850172034419861569445618855250937293735512711637419831779551725803722299052874560677419475202374392440927139324236789443869666623793540373208123564130503432902705673402779853588964437138245087531253800607550428363377745766900208929076798464322908262753275311293157467554424819934896579408480105406607332947166542005826873875396877361705972358590946513554436434736835664924400182263542135718130724502828808110091649878407563820029384301226961835779299039528151341929660446304731906027012153581574234219110449624682512458003044310098859726324103129889040008040441929223482267487868527791483275955116214552945559198247625723528673029730826455056649632953514174626162027489077239341971379241797056756202538305457208180331778590822469522701826559583544138862833331166650449481412117356296109199397916497554283564219685080962250148817500601361816062490054410097352741649780102291036121402176439841673827594823979658407775701001020779272104451479344654320867514781841355701199675795712024852411139260863516567140871610999110365390775838838562110913057864454335641817237414448415887571346652282042890075681007045558466760629295545964215525002685294211266218692550058260483052487542378192558194358012004504655810282095641034816796746959251542256073520132936187850067322131396241624858669659459793165662454479477932471768599109891329657926533154829807579624147909648148576901789502426797365411314219889271329388556471505487488123225014682517296727309772377491685253475452031901122515627568428548353253208611801251429155295172177926595396826550632661999529279945430266211375095747033927798626028945344136928430132255122843267233023719287666433390129312181882082658678682176347966169862245796230620009678658116822354778358407648108586507136616382623798697313296150032062554553460631436353512627823240745088211398117994100812322518580115225748910847661997261651178577508440719470840043781332074527043849003852216626553539478118318211134070320825804118530425300475217737124071182533093391469403438596357104930431267384212959412245384471965252201659272688213308670252788105898345304737284992758933620269818015966522050369308178677443721052331802497264360575874247622539475974086484535310143670236317951194342776668700843977897886540584493684879923523234191651465032585887680684527030842923090071360042491336227513365071605675800276750218801280572387442756122490789005079136403268816858978825682478953181373096627850021690583348165712434682937344033250769759641776001836247178012273760421559450609108919953241892984076681035198683881587978696487899053404197829087233536342875433678667926013859947844768219930887010227672602821024316734965730393160226743856381719600855060727706184850413696300735509621354702966602264025380497415962346031240273840711175673571386002364164269458705477890563038547734323192752053973276161405123257474265915943106817141298519615368600862007856561245151792112109015848620730678820230366590028721218371594723374071115379340700074809805821250849685507069612792787116070862314321184356194645028320906320998974955511408758849653078811447119134844338015511846068161551537652447818541392318304785769115810560433630193109279725641031514641063617326018752223274524996827334976012855722901104199692611926688838779484659961785261991922807455870287710496181221717037180842534866939118272887442591990604577006120896276689794687314650175002829033453234112797545838987925085832835472443571944796700660307760967469826238296683919280251549518694554453695319632643413568765932757246399166068456660748155918325743059171529825994736952778521977684008873982465817475680133793749104128690000801484855798470029309872921073054165589210985436805754058267253700941829518376954754878733547824307850230983659975832599512429992739627501977648746540757884470515068670988148644418027604998016729582399513068609973792703099165097648812185211936865598280821946381850264463474805810175895684746710987380806620992990879674659431351257156999131973913433107129528506287758180053698411311779899315758388606900105776845918368721200330578529322288941438314015221471953701498927049072776133930347121666156737979428247926212738668555813851425359689161504370275188416767213932461915472592523179818505973024932732057714647622670687276056711956022249589335367063276054264088702958993052738132666633986055714081097662974448400125758917749400654574680308624014320862536703918991848836249818407276170362300285820326071740759112043507119523226626348452369382419793500998886980499184943063182275638403028163394114534378800128523487252964780237235341102076805268389369966558554755210167453501313080316988407382379602595496953473475830763966297114116511057508296484338131425880136043680888338787408894280726915027541683576500679512941766912355543477224359140571098100482209372005795004826358845468839336217350718169384694321443354841914059838841611877286644737744239282977462188462183052407076404406957977418860137751713297712021553890756002534694987678489277002245838969614502108003384256660926754580325015169178788237890719071180549484405426218807235919815335141128143089116270827885128258243407661426307837996727124932984317766728200323771435705759312946557627397413387373268812387381526915518649831616643520598806129306869801536608269616593259825883315400114794219253693331642417488773769008229159284646439422805473269048596568020638673215331337290294066348491201805658363031865360131720537330637977854830516605607960126870512924132881391829428124868734283754560671581426613167913488876212206002769717622017640264714058908459352656161901068288161766811340081350567206324483191128699119837043656876920525196151789129414584552949124175291898067683717729154734475718536147446084715352822558872000988826108863661170370341163178719816682402072488630755603395927559806966071456898426322011609927640513347816813591553100370356308241321745293400761046575465994669839383270080559935694645687147183397989894137205088159858782311093277060474828146690883192712049333271554509569788219387104978549216244582281596262520786737143582734974611715652219321974900516295915461914796431938382106974721070399249000504992205390497221453486947714389749880991386842346867201027820351592688415254907000941833003923160428166477690761786191934280007829089544572003053049958325115912444674913855355524193022611261729909025895963609876798567009364970431576079898389081765869714882269336495671419250158850956247519295257261664623959660730001191377047308195360310233330079735872798923147086327368213481886883429243620822524924297899849541864654215447592657998022855949991851270112317094163811838906071239298856223672987815304600629043596870073388186603281492380389037019873636560487341504615394940854674359716117416032258818761671359427349426513027405779301219494789680847461663350570371501420698970151088219650535022196326226087152328451714246812622263536493450112138038972522810849651575410771418933292667134160421403709152819116423120063809257160344232000087578194816612466550146955003902761720578070537342286627994751331454994602229290580839517151667352068220055158904202104243835217960360509368872162500169832775707042313569258096380264154426957806310567692491924513062379819770655101879138297120263684043189831932525118940735727982361283421655289256296448725928770001869587078643700773270428720873394323669153152224710743843620605177125925138735802488716840618103154578618035944796969234337583204373729631598571455458851539949842419995801871000914959613106918690051740470984412057400153927140836906365178715935996664639908061388292673988639116515157292498582149347358027660102392024030643054356623728698820921969259187849303433664015714573768157488859649792426884291189435336843825062593055327702888714151417948256232058432803771603420829983671088553503542872332587561664016402949856995320042136585389694884746925124954091904706659186842976564984652920152783415765313670931974788355224130989137408354672093304826983500493256021487803383491207704179777760903673448770526125477823114040978827146654664028810073258489458980006630789149277901820028476710053126748036589162762449127346249320042619854193627858838258640886899483195769999966652427697054476230427692681198140261833227531680668646805496577238420555501853734018613392574003677174778863258566173407721434534554296464775292903055670091829574358748580123759495556822868992137587875919457832300962287625548578939412780139425781991529833701774388965664291258822179906023803315457356648420647040381386105771598165688970379577868308252546043273263629715751016146019447287003542744310666600822729620722667936252836623616612376024576184851687927519208934514008151913551199181459810819540988177343342182289959921313451733519491714982020265291061608645494795588531979783988683761562152018086946070394931989586013043630547354541499451489074345913390011903541023083209118392077577568868567342264230561215984082319494690012549464259715617975865785577612228567545076449562124409748645919589642015149027753529668069042205680233434818744125783524513472113298000708631257248026960253276601872089118007719133145025539191373566698620990404820853498554705385128539072518956668014831702231719680104290251012460641769767720610687846510088133815347579951839841227882233607945777689329709117719620835448536010464253034118984860496880326712621701419572563014706409927815748673359460616179680728735611032443537360399850076655833845679862803811109282509478495895769589729496312659953962561373773563730867074751742832200201118137812889943540653005853705017934803084500229980150328768687763348845811877360964796202306971795574566150862913677003858022363225425702320313143586838025616021293612535780548102564906332450677971955837767503380126315905764200282872992316442735158899566527364928844850483658130983730103095456700886867334717010661633084863601537380342736565385260932191174599775706846035906603710740391795023229708745135304574254810672245942617252863734753882006486250880909889458723796504527356794513422147418046005448469457784189325766456072270018388007328123325939734899296587640776525755858685908173059144521900773025263483367077314678420121530827163593272061330800996547576221848334659779768990419990485227285575141095133391561487457739500512171350203949297180485486619408252956627115209216971461468676290050808943926309901157481348806606511292191382539214016854759772644527777034982811159417355033342745528808033981037924419046153352713037877339974691564827879816028584515942570619389268984353993738137918435938138299060306874327045310291216523917939478057074417136127260040541627535980874337454805192083974704506181624936862966352617141152978096137921843124345794141105482283407212508606254287702157812868651450192028668267689668055373578952145549174340017826150560663344582339793370726180782500577785072666286961696468843336060895928037840293544738272659300097600459084176703045434577916747437863258997469565220453310380564609276845330381665415928794373480456234023498970677236274400913148034957583297048592150477764966881942418748777784353744724357322015151854294966271882058823094743346601171630822478474369452867830319514812914456325453015885563763191721854021060108531717837886810182399430508184634693120487594508191709632239878711024765263363547392867480944993163354751303346408478422983041498646905230957564426576294240342089997981610599527506254520521717806883722918818555973898086602175963544663108748823229089541330342107357899032687078385337611039253395017692312843272590827596186464957989258805263953657135082525260583118863341742703802024734316511492884206058675798443319926721690166458949080969865167439648516557089449112124246296718891245461371059248335966732332254641778668759008333384635440279219176241225827292459942090332383466219207163392634197207879992902018793144642434058557957207846607291665194686286233290325249571037755360029292837526253002056796589019757275293449053302515662941336425496899262807526244055154686628993063272969172669904219824734089513008393876182737356205064752640969066014748152446265139736892274567329992779545578261890145298359322523786718771962459251485918859544487192595170136089628731655962176326913054263020738488097292355896652690269698465485621824590880976457437576897510250748542531836836276010150215601194544955867600288985492263746666761194254804425317409301752696996907064543310268077888376363786129732750757081544047166159155880442626229387387681670601878157559705865333304312028842961728362685937918439904868458493702392680315646436930312468643143967958911778140523976431162593382440303883574635957207477799551106476099254897481290654363864105503362359227255189171104339260568634783248657637519319225959374694120670945024425813648463757648072942372910180616691146459827782649569355700281627856918853652972304028694604608034167722786923167448994158974443569431562298566095939531614267114807982135195839614013010485047832450666126355549718253053392682849433390056002110750276610047358771675561149050452011252726781620173527721450525249125210631227836505535547710283620869724683477661953380324331723451567340864013046167175041652594874552755287547339638167534364167089037374780896576531048310296873802574576386845068301100519736589974872677832664108091145384092119570753658899788268955061778893760449952309800907518773925165026030536627447610534104392810913826283373228451711781996154869563991956741271892563368388089719232882158582240460287202506485063972293175193578609608554326476096316124259642684451870310808635280941461143618221315799500349589003395016300997148390624796901113706942443785018081196832225843851863106301326820424025520827647074122024509263443095043025763044092219585529366360825462224344658550225056001880186002093602504355395937990409622417963556585952006257411570146508180394938555592002254787397041614639522835409977771696337362792523509095395466612690744665610641072200348889327250723478704418609058201174490047273209323736644766299413001567832202275759280137548760818013602884236402859505902236418107466068034923964945133984352831323028105743287442124736904427582477993798971146709431616201958765644101319764517975600547639547055134365140445370233398880998757769987500886679693905558773768012795258685060697399827379923822418896147155869567494840072646766161043051163958153000772513618757060395720986882674221488319948263876415512464615910162918105769605310434816762456395795471990127543367406081172971646802112954834338318228556276160190290523977925151865456284706799864560086207213288477101022473867992441150618828114126720693939746562260568018473220753094525383667559073169519291788361964789961276462085312708643031976058969783037045313186836937469500917123185708817430577910859884662466400600540763191768130507382361798455681805933355930445074719574356240081317461980761793201237279582405364070089767500859961399700670799403821339358102948756096531001962271802921767386894751546477421692202321521411040809015334128878104917024453836094564113899213783610420395730548526396230256515311007405397715496581655504663617210510714315124649454470835396329410031853480080373296316719455837387393242160621439575023465222121875017557367015654591748926999258478059735866974294764198589626213088201432176193023057454484850438364623463303298397254442460409672833429403026746626452450600768263034035092145327276564002868530865495287255355157687483868692401677044741951001750091360048801144772458030671868291878319583204435242005061673797731344575162481110790908998514473056742021067087472363747375026586696598332044891674077983941939802839896721602622090973804244425222383781673407898886104001681907635723004866019731656593010169696150093718639631352353067111010774537183247487933337389208581187406312259161581916505863492536578334385394600748835653525480580919031850942846600415527384952513692867018278928815588910478113840875963523673482995827980948490405663059754842195122931110162649361355349993636302768949421427129072748765320483233407577092401195626612549106696885269725501144797487279110890298355691136979726754853737623074261127478021368542624941803613575163488997878362157562948753556067699841146209996801451075635101059355586398398757028748771835086292976670523776500532614144203065980340931944609415714568308931945511162158971234602736807649167543767180392126537743176054020815093519235398760109676825664223453300395290646378267116028030170410324614640876794444000820415281371545300784093530815037363869871662304419391295915446807615515593947831537719778110192859059517144719815760510407774167839164282680415726340724257496783465426650164310820383899089071046235198833657321010012188942939382347569240119994507100417137146097916631605386130461717756803455100622624511245878839010389275660478261832109773953063841398114114648569105391803075629269507942061153856853278403428352088040203730226756639983151649441450574771564938007034338818779214409808809664565515639806780168381633673852569771116476125929187742690390575946718892399024104647218647787411002473693718682392822474553555386091233651979636474968627329133248880390887562519430839845729111540037339188134173955327361537650916462889691004412830850710497392531383031578620203612628314791237516363700801507714864082052413385423566884094603645689816363456784380717590888399905563223375862089584759897980169619676652913440212774258078565293045952481581131113553134946382055959338351613906283627009742414206143129021532640274445118735667961604031873059679814325213664076561887386652430411123886459565570508726824629091033414409294252139366906505956517439062814116818851964712607474935484720577420256703312843909086836517793303844220749712619223403341238587666667660494091653154880876621893627873995619908087106468412461150957129465377939324418388664723876479577656429986071736457632356806291946661034483513313322137842207281503306077795028294980477543584536856069335603314853004627499284476868212313645082597616229119177582175173047775432704123974367708787803425655826807716459542956036359645183211876506423695998113731625540891314668202789399851804399467638444930709215413671418498771377983905953148261649007643916067320437751402322602349753871410760217511391240793505462770430859346424427007768971276975367540457726253331258840120342346013489936180714230235946559980093762009713430417823166349715269955908456635042998908084384579809751396328183884816475465154284443276805551237896478778408209157809751622838041537581717840231858612485157188935264639042382986057291222443501291917193099360564496315405461495567678714916596823309863032572762344526912156555052284135557930230972014454040170146657608445890644096283568274234510635631549425221528043354358307177915665178116121789355231147315287449134048465921082444605333012855422339388840435041779216315215820576284664591068529746514312224699681449917604112442674569761251636500241033326969273464368995515596159250576415728623976026283752908354829318715231667472237950907724653563614384968394425130406949757133525482750309540892018934268083242230544216230782266794602330154478244688219760578080325461359034160804509863425521669034825214976552409070129686338393935311687986131508428814508287887217207913372984948764888306345927940380714126071536456085918118587510019092631320439106514700105183642136168458412415018887453488496756522653603037036096080820526206268822226843110891483973882455697679955533949523566503155314080541734451524319706898876226306298991718980408827486299509273099701231288658179937613170032063417108925219726477877674255262180948374820672931651893780814028223345034216240535311595876926845623032044452399912726618037070350671346791300440635748325953944233345906279208362173781233238119483251060544372838288742404355339639032724804486093175059833719531271074509713531491244210694326583861307788925258231616740638587380131595783606789637221242390056747538682530865023204642509250834192946404883178078340531543159920389407491878702971161290861447799325904475527431941629231385848393005628860435140709370842899042739458526801456573290521341360448281148906184704542870239264698464610488615138079369495103216747851141789457923065231918502782763889961733894679290904152301480680735363834250477181538004488878104282122309462049532685232310513015166140581025920531811239092221490841154328914198503656497075717779572360683930857519920642928766028176599918176014120722717581887465471439030117826869609097067175490706222519125262087181115020388659630320110383586707022233087981759935639808514832507012662872521139578760567501022989645241584761890483145156631162624968993282330001210714857412729427583311376404799523792229299628149365107493782554323108610082121692482467304749267839127170635578116307384751634253399807736464989872719625763751772837912798281644536192974553326435630877324327965541057296704638354425995359225834764750230658273863923469154440175996877867996534419489755161723038634102740338103412408540128720794040764671391140967936879542344365535925285836647785395335195067084336431413305360655327008533724607039729055232366489697974069445217427172291726352264240394568557406551991193314452345634484954135179170187727322133099637068698952536169794692213120335618051361307267394637743599249019432834528762995737856608772736986865366349864461979071163985268006663237814928862948091190068120930403045033714691109288228646537850290984517265132711419084732361158511787283376062181414680803664859511555711637052295073713197730554603386186323491358445122165731486049293533019951537350715763992920437220069685244674644012518901128407236297664614058466288499309249154182528532279079624436937955834861605315864866972667849865613655769276594245714075892512915819145308112264654025503634384429079739685757021771591542190495305572357020757356889447808247849607510442275105432450938738029850382530203473098680479414008827534678530920326752255332999266147859923815642322520990389600315852264420488761992571909987636839504874878546052610721276924307632732188966911754130871981844140247128980716355363205200911279340300843288421642071714026852746507962588808065845591756772307482770310010690129756557018132197980565806196617479101179580274453302822372304587090252070129296142675970643338678460425725991212255552439514807658989524955062150390131639412514060312789943922283622755604327608648526889195376743208904097602572742151226488669018684566932489084343513189252042742492137767264043002899495683076272980732982160430720133577459449938638163813853479599329786790174153091646555656608006528447180579075224382491661786620854262512370587165785908618391723093960066921832406320040202868470850988883133393236987703709207336251792275803573969783508883153316605205623113764323788456194682852261575567576459026023713192098510504849794731198729673451536009116686786215086665136719922266313636974476759970602412940120520713952920859480858641076257253618456105062774201203476049774628513986046495540524688808651299206514299717407206118516600296703180155969264426483680976941488030785774268483395886014387944804655104909087114915920395816076406668973030343863235147976099804587718509526524337194083194805478196533459653874639517078709446029484814230529249927712211980629576129211109105751426853853985833771627482126718934373607600270354766726211358696180390695612098149020488136307954969793144090530810516748757962637137329345068527862849920360793743375003540716171891935949149857827888778515985507491721162437387738795920650250168973700279582872430365323771646368044071945768868955848868321850960256203313942450607675651021245021410919676128946377716802611331939159930084425798015958406778409748042435007854275320783919658361821950306449286734966392361929760154632873409265415583436785652444424348487509006215117882427119116488913902836973110836968299970138748220549792410296220679258946077616009779505084980061801552576624288362505538674558585567916506129135103771285530704587027695377394360123163487877157227684817612829113713152456407327615563292746869663892493042024011375410458336439571951345954140638463717246406267779783983891526301274123386272886223409303238399095299556691155177314546214636284380520009585754050059808478162691428915767342588301744001569321390452279577385786927432027934976586555601797438920719391491109782313833578774501425732093136767023305366696223403184563614231903329958429291266425602244216072772367261909383996743606426475560209416283181361844244105574932868718114649673792307997122388066831670375413091363079331550637201419857233150473903678122173614850660526708189377373416805319880923055577723396957645223212798266317115306047133597050775704555429245903073384810657382008747604903703163715198449248668031636636190716289381263465203307606256615959330910241099705821135714631142708076133734305643733962501293363921894148635047610691038751570582892787864271130015860270352733704360916820641988598231609568133014605288345673388541650468052409080408223253427951883575571754663560432978690891753128268970063450261125293759084540958543339085753859548262470157577372446579228485479467561521669391180676024843754729537618140803290875250343363271628712589079981584791553710504772239679136920422980482929668788449796618395288890200368159514997034852930734595329839113852433144466704538436970054987995327202135903089146594066154563744742806092924522858680810372249495281256265767793177219063895003889248542555829819750854832796062826108011828168833900967491886421593279745298508570245315688351562303349294630829747376312791035883883199143308603026850621460810381498480530539805341197367748039831975194451946746185838379414030039320126181856143203782806377068042347464926743327583868944271336069209140797772078022455597051663099875127660199265222278066887761211985513387989630678822076400883016039920371970372012723580833112897846507198165659605781766823085206039387276094610844516253001312740159067474066689726757385554340975097382916972727664632905090453459037372622992323411639990458170841976451460821443956159171145368762676714665518908679646284015148940334390401227948480067372847818580512961096305479922022138567259408843093556084890283051924804440262113658375930731096199142301758933841444964346900231137914385796303705187812323376230138374254068221672272895198090469488764265200010670637542754109143115692231101213943030742838217772253850405740233319134979082782610439618516051332064763959991140200876796227900797372024012879329292581022626514255615892773522537945311503479877190122176417697893307693808563343534979118555871803889944053252933771581579854699589245250807360564917997641804944470124795523081497010237315569136586292093332601096678878289843408559897907734908609286558133824998362491947648126732259511476662267869877438725767205285082056226529741347654653428899626049127424013310954433773621248575186475117134872048082547842320155328733412097331548730648408453057530431729073945085990315011763973482703253797563308857654522424043246917879700835889378911248013760751393418640710994328722009867511392359840944998567330560114588685409868230574147680518259003560749808169411268738222457205163496184272048932081868404438039993009391521717779220289824299586376411867964251107058325156280044273121627024209608081815316911143461577422562021498437054547927319561653161499148544416659057156739818006275430489936122303481270328797257482577497453588533692735720549055539271022084539837318080979940078027050350054664318069512461278353765485346546418899105243686183889996976548461227425065245956404753067507819322080019660828417146133278681354098851516617764170045984268551425543019140727651484197539456654523053911717497628403312330746844415911116056710864965054120914821801315162323887096740657400131564025363551206628597551890309817373741581098406703295100807570344554901169061462888831825433018533316659410391664241777493433195589132165034523911764915184812123999422686415783183399226562401519879196271651309409537042815098467898159730143113955163829848221871757901042943734349874592161450110411732192660466061030786575335149078112210566929185651656703572453420153071877814127283017670768719906457024739575710611783116325726988127021778764305650980180696083486420276460427675738941788034535736093487419058184658690594584615153262545423506596556572891380658246269758946412353604311441926101569134263132076507661586530163356667130218229607403544920177263575697134927281816534964249990934689176675325648895318056691931303623830406144316474365723956915083968421505217675455972792326077347353045329528994257785401755861885695876078416398452227439255109662713144082503973311158417983140595373951970465547830782914293930069149820257903900026640872521124483706143790881085911636167728754116649032471335817903401861103884276042869262939482509277064557536630861475164098350237711317931287289493220095286699574868204221407169006621538039435478208551867570788775305459733183924376276211591009092616064318169716898016414164555264368368800189777414140421521471777256174032380725352686544966787286348551891499812200194939402390436768294365081708079371084740747421279785358506239037916919630313086475100870137997892020857702611150375486152052474600103268289468994339464212829017237525610643186999632825529469749329774308336668109609178040152657801853507793821474700029191356010945480793026208930758124035245314652126412950794211737997796110658474551138645161371155833039761938980761442684908876806924549583481593899658978695906792011294126635813943410875280729440308975869811835829426359639747302951692541308638237903840854874698580659811706305558584096724976948454996064050663691933377014318376025100322549469752417575839311712134272249773800365904852099661702861116871277188186750755791434110077968313656057982904411827434326961362818738486252968891354821260749333883921496468531265280150928229659595352678255707655876104799967178303285218172360469873270824185829590480055261493809214708243077310321902539419767783679404453386045970740481576476533310432685488856071419873758396845638486171795192700323911585236533803563163115755872471551865559683921721119497995781295308249050646531722916749478079392142570426036784558220212855025845361828701093233795354265365725881611843399910977645407300644045220389562986641303950586005843236530821907101262529668596943537818490532938204475263921299294182131722480952515969884949902923591451195887422160311077409399444431452606065730966763627816542490823692912681874599281754198259410802256403486795406872439794484632722412296411250448128066186867015969027247119865536109599759641961907257040538328273675650379729661593153409302237244245369595654180243004502181891854409144457412968350099696572380739916565125868498655212156314948086919276926795673746089192435729495534891493846746815334006930931902818230773306410279535107742261553845281894223496583924603706264675210772076904367147975311815440474952556929900704815970497856504188226885136055358298370017434645497630129147678672566393193197216012532600977331934925711963413359997384174551275676815159512856424757735700973793078568276779620386262809788897822239784525120102259625282952346484035179713964456540486156375673532970746534099426740906225168887262632759585406219467296956371714850094618498607781376400361842588935136672339602258985340484017450731532941211979481370009448233155023637686377427616495196514074635104765165051993958216150107525828236147365330103417474432391366849165378523909889780671802706549023009152591264702691479463846708980984244175191554696736193131824879748929130077834677548235955108762348115201194787949458913715701847613384279843887279589253779471257013572405036030255366178627860468256535771826885993294867879385039551128995581385894272846658579055770843632919186817378860476686770513462924578193668112446108346159198635267922175547630677635155654437791827104982020410791540524294251659049616694837338627806429951495864378351622731811550486059855198326272238607699070494023947187505347088932257123841892118127388665515257904467291804861097578184980694196431693991202168472791616593460780382596719303233156753389190214897210755520682936052481673428498379770421597276754003916462303719875869380156741598720042975980266145214230274967286123231995351094316234123164996348303529177292651459847241261527456785432114935460146304253236309921606287979888565233456674539865924500547230711593046172222190331059039678056962847568140426359217602684232930228040181770580125110983767590918700605084233118566183440784607921676273913373695497157645545004799562969777282133782015592216946585148262442179321069254347869482363423830191332008564912984449086415739006008541203929348176293915008014456187246570850206666664087236998077024612812982378028229750987685398807513750731737803264311906063973576701313947719323052085103770512346862838678063520182291769812509171674968760433005615356415710728821263585734814317883947365181820388452070218604052762933367305530443186470868285802001634148731855292496434493862426088986847532478873969612541641992725537035599632563195537359968092300690803906150778366322177656314988821056851120203540830809983284903905577028212922835497726092338858601694344664337096115104207741254471451368984998704342640307318716367422672794981618742113792341556772740423871648772109398606172761089010508562846712757681266757630662952268841317006177154465120844075456507570339516786628167432340930659230734664724286935852512002391765298287198413421430425698467187410414892527154994943216169350380250780709671924392038249610001402808343383902674892822972767141683147202526970403445119949232416296919700047409375047311061136496487083975686516317074396208405612229142544446987817231214795452925254664089807485804025127421392555624195555640707442874905109104692766359925690048077006115441549470115761418350697495154896773355108886984319162434922727789833926423018003872473764451395136735609436812424458807058735850896387059181704692706760509762053517078722944784682352604683597005573270310556249069156301948368509873700984470100233011557791447540480225696684069726101887779955011630604157382338378220555732215175511999631258610634840712925446123586132200233134974120729627260647591344756557374801461613052637929112333071707440757554799808703450232402104221983086361412949385790097210390523784605725973556062534457057946776660554700984223425083350152066058390462756773564380428079494178811527282695611391088303240311498985723093949316514861904618523798998271652897500902891870325024490768316563454459573126504570939652877472091440539758813128637098662285258917034407499418220480932889490598359445311630029897003266995350794485775261575772081833211462604481776070685837759446043078096978911503028094397131270817221829832972225637037450239192352827159076436376842212852286998130377801266112218155378594207951076234150636939882144983975048020468506147250919614527737083385834691145266477574910584672455387632460826254171144540532224212970423494720581775172064155886630305752329618418131326065522111863483447829538808540991118903456172543770480310432248507983435776317255837346743634264408980551192667876781509712384965019005268081831523708814117411404063647198031859768073378348726249621040259715847515213029789024156706375931472663704754006523634346197739968685901920880941161547578976564601886335460829516373232007401940103972116991534900578934417559705601833418396625494275692780834469551775122409964486769595546859359669874743881846716740257464573008123640737378582257462237470819128416902887331345547874033364733510234627154655486213695080966114488533128851491156515904711158416897550162284776551348579459164148599442781466104709159780730256865573830907546476264014106541712706107247815178598834520347755483552809045202620246618519303468262786932829789334950791358043142353946422373943204495576474136793046825075171313580729611134344483412270497066939685795885552289895335861314092834054832578382168472713659908661196964423675086871695623829351614189656762436427068373951984907798119691771914769831243265357941335895885048332286516104321228719577783413030461839006719206624653623180418154418300886146725766182298036298345974918222276137064962885059426075604609109778159833703644344574060474234609328807522722651615592209265494235267516644974230458842317958797680450412425336665689085046251027160874456233364010918443294202591691616515896070069620540545377450166699685728749431477790908866799537668613912525761142656485090449038631432481427887635188806182833138309126039070563110620610368490171920353195474542889699961287336257991800345445166643398610554459689943893441748196854426605443550162832561897488356801516442538382660414925846545800286469316564370644656625641152173789033981720492238687802465370908932685781955515446464605234449541375047117338338678462852465937414195697014334190258775293479349945508607735794070108502057886132612283201336284886659183290645798569238561933056906190213745266110772385699487689645788138232649322424789878342320603982615657626242139597968222203012616982923369972703496504066865797677044833999644809966159399258789753170302749727893276669701675072304313259154789361962309104791765205539749706459776880849235040950167230709545396890955607848097770370197857964281735169271940547427042527576451239623631772831433404124726001207611521646740394938161995865101937923511883202008336263564675569543206919987066589564910739794169257509651794641194444031788692714397134447165181552765279586949346778499116941206403478207096214921107931710405676121404675890525215891134174909794941483893010282317770278871403338910248741229777173545177925396356074285832550860142127919672156368063492597201115950786778404416696965262650459859237183819528440759021586056229673833490324782119497404100063552165918702907044891208257038559118740580013954652172525513721130037573281853039683665156902769955557513726641531030472957062755021851484210760676913717060029889003730811101271881989936635223744319820122902047293466902055855580329727004309698610126288138718807154467866511930950323944880998846490878778323084566632851603959615365912703843846246994142199346926689930610892915554330854277609126967749896199548226472175716898894584352880635783891451330769996527039454118480228867518419724452535577452261929715214669918570253236569083915360565831007282363007843177024579235612112507956553712040873028961941095581365212408385684305326106930136917456665852138520918833209931082358193045874409942650163517304421150219606496492784426074910960697030123893056454587111869862126546420848518126615687645378737635161451497328747826717316497068603980479660123963391232782681587839424158930391564296705248924471584511136888191018426928419182801785662113420993197444287258992738014050797739029957746942688123336160264784009851719985304605295293960537432977336087247270039307791570469901546801646202070752778237602309899313590826818542415699888149115594186158359830192194473285437198585472332393142205234829247902470614658687290069475742673558165077041341193257177487789094056210401143038449686632665777512275359225096754764321682594257730172016588370087386962288710707713589036100326396374302439739580402314733369335690823947634333803358415393180700679993799038954891347904291729471061049371859011982792994883245133673671020741152022706790492549170049059763447093278210613257464078792512583717996189738115947374886676764787778102536727137730786939481501672546808313818401317818939286815821721421314610069442720909068890828815167076311248816144545256447737967427439475607499422596458186746443377635416638783842447141562972929038049820699263914499027797740802032666852587707516338985330728672452379186296783963463714359493450369052923996544625433114985199251842247153756182295166794927606831645707170320213365028519945130249687301289881915920909434005311123836226117209557511072622320734679838635056910798810166457331480882716877666994943260531068251221721881859053032155081943375461850454371827541077682166568138390089007364985691633180010174349824704196435282912281163628487601218676182399510202203216665083500589598015754528589969577036994943158176250009433403812111646530060590564734114579365906763612261200387665580822586061760414574896938437903975695552982254260598515623412945364161921255621789144224396765252303666246331520882800156896469731386036675411929720115881931159775443823026908513800577612007927659587207159711512981233676452101937777053133274305889224310256254541871720524581531339387533746096172003564807996089820405275376589643681039869382447350325482127598223212952515724300783902281427556150023858172184834830768020596222379339749792108838143738474307386388341165213063079172847782371040185200863718171080223765747068192260187589791559216017871313704134310569918650392050416071063739419435281960012880997766755874079045762320851721482093346732821085376420129885362674181843692742150599230521713110751327281448608711737499405848096330513771912992589607594265335774408092392342137122982484968108510017699721194235876439957769429289183577314628515890576646840262602798117209213563297209144898951396533629861772263408512929118422854654673370136263352936415224854611486624348143444213447484535260422881004019053984163717720249477880379132011415180753038145229481981268707678126385148066841625291497686779003009843511387233983032472600587110862849808607837329433004311879049062308878773702178173977847763631461201697153191351183586060567184214235323612312321928853541247608268275011690778128280530034018462874037784259612596278725721343240413169353750251118910660394157676364783676284502302525497067413052480819859095941891947559622784521069831119761979019481100945398562350274844207356136084547516010615579438956025936755977615191267365899332022423499179518645035184910235975938369406265734931538682364075041437520563748976456227203418752138900464935212486163200454663856517347532471533372301416870810465906315658082080844373381194258965410913320672346832680398201307065762485227154031686358789108101811147244280888584614027105299925269113782629725603926961166874301667931913331301853041582807036606892150358329902533911038526814914629706343290153738483267054725045435590769356358394536282334599807548171456653174938784260825000649495450894036230238154199054488747525039481726310238949630511138153430521126055496234783753079918764514747757935268597719725685203980117077992274077606133673707029344711919328168207708041820691937750974103570304165780420681123965990666600780345838542807282527654952883929792822246717946806025810228211235187760672219016708356686650385796804076452258159307748302473739085742321237543291221058877197158129461446111086537873048226701604341522341983474251892404898308835206735480678161865979150894003568892398962375823564834534969382573673571936562989343987022375439146637683631613619204134782725452846177384703649156451322602956344997804194258714832272475527029099562960229858105887917926781777907504647824695262314679291466492024591598886703725236718031502001241724517052349829200831542885899765880555704583308969672549522186501772974320279340022798603504959550166116414904073337086255961357649296177409091847996833680106763499722020728406813515272581459051152706868475359696431205866142191134510672522193234474090348398360673706229935443698808075064157894579668389718222427065322424633127361226697361602036677569342701166691409488813911287924826382913923028697979863905309859532523573803410089096987019198486256661228409704773423669699388635342420019880168609505621238137893656273844716231328827064807352745825100477067296792200871335422335855174499411322027049438739586939121275212756268349267594898465693964199602663588457165067117768645013812021724106296209803575198673700537657343163605239029722703810649051847143030947410193890706165895391057108492802053400187012523944851954619399581209994474367663119701652507927660326642241675469320049167012964653975971823854253772504140077479160178502186489160355976644242009753211748392106298263225231568879207164852962542825296070132316764816195951159770416828896264538739059966866796297979376006273554362191925425562582860124839103551205673029349387587845559550073509225149503431999436912539165747657454248165263733847271528396108702912541375441108733701631485643486395443400608884755059889946656404283317536282134992054813032309273897260828020491421686429685239444029855246191066361551430908586261458041552575024496922254609222308453543939487368170519330577208267865076816448108873750232926535980400966620303520665843698938368867425598212987409023644494664613601259622223625485211583527340715950576599514115077322916919674299016256650871791426953262545896565540923332144875846333273142590321484833177678219966077394933850205789709410781239853477483949333669300130957482584919622318947649056182598368622204343499003386133052006660183655999374365433789828736090142289913072074905638071768951587765703665564888378885032876600171473608843042033819545775889611393455231606222574344221395342381021408249433499576501464632552528386156892051450270812235734735281589732992334022761349594067487570495869966321888770965361125831279300231642228794957720232206746696447322385757623637189947748175575308630250664042932410695611611089584322765321643794724341637380452094277948470714627255182981470156184167810946557941734171560399411705634712121899586811496640992397143861748563670434341872327456354888222934371397244255319511549663814825253715504846559817782483962804232663722368397941221191307749321005616407699139421850390744974332552482824036489710189887970862172830600102099756147076742227076877819566887974191600095704094497312655622830156219821006411814678077285470805248683768726002606734279550082102645348206900046767512346186658596143137115397902038553545022128140343898233444894504256160723406815078816653955147127624268429208820293045027854999786538323808064966292972458182360678850873314224985634803746858902248486740053680808981776150192968459656556221401701553354167316089842763938256042455257799573382035865594212135078993493265945625282177947364382930420928470277381095371338527606296821200784272969846576164655327896502964536799145069222735426227995967432467911612723975675845354657780223798907957066877622542206566555200197010788412426087014094991826427241257157509235291114542759337254479524443042224808077723042542507942746520207648878332694789776778335347653482808092583857086495111431781084184834656965604316669471622770454392270196210864460175422722767831023267738576849276158676172169827379834774289432599840591856545194109865746326229076009968131089598300726327223412676180825768057605973882124717569781051242160139110582998719210877181995185123024313122409057674172671795923740090758125288683246963529237903050490475215467665758973929267544069563843974857943012220695201254746788521729265449982667740291119980423469019896038198674524237428185307355835185937548010374833103174748923474995170391219044592561610969947340009529307682689895728194391280116873955443639326405366150038348921351913420982773686737611562839379660744875960967992887982636985177532184990312564391423551776939453668834375406875280456591288045255163026717072319193971706931005359160537425684965502430121233709020360000190502399857378115139668270302128528119509477472895745320981062118205279906440727832738584491936465731852258895447481491192125762999150110978871765630175884720030126000263564428276081345601392344679493533877929157984563328156447981990581103454995267452393681448902466228162818740539818222821639659701928785881976250888426427801191964333975693198819793827722805051619003200019130728215134348166223296689201555081541469505664807311796710724638891027826958983280445053720986478230729881195995055409795650424751227595488562580299272052317622776634283045934067847375206683212273153623034005240091218083222655150522018899164101517353271818519416080917731313686804142196729871262853311317052827183259386087645455462540083697464258631855041728526610611223796540499165202339912881769925998464707378178522034234816993604254916780381198904653654679161353634656143351150332272649941488664561051414590205421376994253715604447572295846554852456610605829502654119521526615787601383007091832655096485932248046119089054545883144628099630379796658927409008125432503273196465760310309961843506598820140124488824385498539576137660269983095645966908960391451523152154467136162623885969320644669102398371989746494965202568654847098943678212257372734843736626313946535507228916348192865837758201094264207366482421162448727017297574106789601482146462874482053240698036535338376484592614761528307163229397164929298946610916398350573868663246971639907669555096932184027907565647858936632176380921840742961106953178494308269619912711550604870883335697129418171099126550360401488998270336477998835680738964916743594598565233175706944841037743702772969261010159942095805161015298783762917975755317739314769781861473585466530160152147833572608828804556545874278069811911822126897876248012957658267962568051738183555125883655902376010569821211183380795500300480232055942677043243000525020663600072302787630353723527510270095397500470060384683191717104611529409139243333902567566166400506633288774351436438740921197436163742512946341960694398762496265945017234259668099165988261483543672828251678919787566262348217755376209237589718256512556612988142968202466937691465367544117836529738094386711601660836011993183507956334627397669434308148286764685425975542152374298276809941639580123349950387592576984834110085509326829000731332002438515165963301761764246705984892185375046477792683400186312640075170891373877604257268622879549507850036902109766395579882390430316321175578198722742291121819976847870705492833252145954521664856427251461848310983939359132024887015010410608507803431998009406729320492671104155654293952895676509177495666634055461212155325324865586111767076442646499266711693310673071288630401165589029894627100765413393955836880510357293325573397695025038201184563851042887958602058345890279357843895174683278782227378643007471428722555572822858364183681573369977409819199275330353650101702863375346815081723868517568574919839416794031785811148869634736250478178364862645656124904064631265759333750617798397105525624344768045979607686204528786875104884290964749606351224661013694136051406300831617675038269003594396626502527881254378927295888109054755191863097696526003638014178781134796340907452108253167592727962704320885006491923364695313793723890188564974791719886527041267744773283176423538280092381506126984650713024725348616304933628817525658421950867256730994088772008731293033409429111830032488895488147882020093473661170565381658127295970858610705677402008719849991499863615697849606308710617090350760487351734938562260129945480199090851461642557616636355005475363862349943951492698095789950716454689141728023628590743147718134957713990551352371049366167669075006823740617368382155218601755876878562542490804882902883829273045855597124010115546107404033377191447839737453971800451661828462836709089418511394385690772141918388318666648382505257260028312664258838514759232861478178614031862844705350205175554585134350210704598382846508115620532667730004266027979826284938472709516341502422604201802888807521659052558496841211918380290123941615642013899388090381900128087168554980944599412863486174239162055106573331008299455096666873471295569215472378934680119778556235028572213263743401901526806154781097390396722229350136941867067625219533088480611221023044934192276510826855517992297379398113703061062983401207892649849490417815574115107236800048712645996256010443666336549694645858865061546910869250350895285617038067100543566716091680963248179764831953215661445715242275678431280673300384434215261581422372402004233593392239434418536002450888521138784081802374645576840860527470807302296438261922269171315789149686282524442076117467379019278761548034339313417825159155635375118068722097772536216281586120516618673254697137939746785324352565198151702702923772772872725462844759796872843202310589721728573425627113342976373391782858373665194597815693511605788870596137903825409103864967609706431340307071348435311895860465003429907089454400217686263688778322374945078542540158596001038597418030869974164565076328909199630831694970917254640397330309988971597332581562234789095166829927218682849640639818443241819109609509435601302139750960726546540904155032426733603883867780668839347132751760353233665520428232971266506210035104273600018620178215268290579404757985853041680222908087537164171520232564514811901027538237478093244767298297605941670058835270861113379129367866197640745157318901263429215476043573993626429340449755766328815912526603259792814918515976721796896332284263060648675226931690429701437944182139759295410718678174957911021347117065969920589173049561213863757035040027195630952075299951743308304361997360198229511244162754861718826660151356320374802932229416774776022335666099773043455665367832869029927542302291090547879591283236498182461664902159972098780747713542004617464656581096951651531419142672427526782367351484443342981577463241940989063734656331981012303675611008841468565606782142466275164897413454494609272716499910188141907307876464732224185991403223610104138339987632372359692020102088078214012593672701070663432754156392527967545584584240498666039724283072974085125521867599987767614269079202724719421809594304653075269516594066655330764346160086877007439931117901048731851740855273800195023484299805078320619873083972334103637890419378476911140197538134691922737789831149331745063796957338138891782225014445834221240063391742797522821882155898272494983061365638536403030567828042604917097105900460056585693845319955498797268752878183485967476348252785755253288840855015131993398699487346425930036675681070540247781763489954727541099607619714331639126900586418009037773590792801441393732667029895288655273843107951179985980376990249413796962998950005093612097575195470008969521221263240750729262840919756401083423331629313929992766621212018320786796441440536249463898175048202273393295949540193180853323782170666659305330683465092847862440202164685240796270002735928193315323873001816766001365735512494267121082557515571721011816752973006333880947984583255413601651778588024914183744691578800482632654977415293888618870963955373286470870731944064639080839888086212676778502646866185280008907576876274612484060889259508164408709746982048697866086934710192467087987204361548090355051559891610646465645433696016484710218713317537547999259093228440333033550925528117372300551744821685726032242128204348631723119242767543085139805570575924638915298127892157884063159328252879555935468755220557765542380093607823513128524100014359278052908664981500474084016646158663098201639320810167880288459184566091447632137829697581013812169103223288030521024861807661193686737740340249737998305423194705588441436360490024258198407794236360331462110162669217471763100497282048818432456174016292972591512164079914097002232553930274922521440991148509336809945263465655537058905070543910252954435546181517078802191435507333555501927256138045415077284595098556421509422558942593527319216697569067541698318786396845061714679968840761614896200006877062067347360864142377778364733817214632743689497455335433004476429321879495868534207699078718483058142206920528550218800504191491326571744966601377633159332511444168202077255382053442254447112970831473478136139146669518001608062780085895135378887495752401020414245620995013596299447293155107199143937965604170599082213983962411996082114360193290156758807551678012990205051077655776463588379254589226634016649133657593928209877655465374428258728281479003878235154617260841266758267193056837146645858864758601596535139874423034071557513311546348799132829446228340417678362570293301316348396610406086170959529279604157818866377285868169298634067442015614814994661978093110474728503776893707345337398208285640610308527724927048445614606724827276873439467708995066920989412651764816791533525449447672052705662008829199992844490308609512391024318434933090035769296400063210042375217539518360918316533884472282595761847967971730463567527218351021979478273242968083300890235580955825437615157667369728271806943305094131690646798442737781385062513038931516006476583254118352954975019459403860155343456096583214130169190103563626197296881584672546657262954877003955801715062756515660494464426244413494021819645961833079442212656666523346548539599458039030097650930862294381431517222164815750759561712940621251039427248422098524978356082753365434745534640687154859198587351291902153776902182472271999573319356814710225544905981006978200131738913623230185459335235764681843158441372664738141455038918250354798587664031522564810173836585832106323822199896509051766153446116199499229359695474348559120831679084785146536191376429749102227384574481929721844101606165836148166310187023187970265549289118689625007475418327093724513967172312993860268923151325257514682794062238750079431146578539860740294731796780349827570059533540465061007208664158372640481849269305319456772627164646197582960152915942286946244479530304034414953664698104845945828622173779056863765473851057293955749294660800432728562000916121376330265363885784477252440917973973522964411761895943370623983198241687281127109402362701281702628977886069296944166643752479570972802067813195221388227140241749863726420610750343672617799645742555973733326549228755158850715513954679714925998872934338758983431386542600957918370060840566193968110154155515342142805225531570748575121182343280690278709819655401487859854962366333506908955111798185828192523284261199346380515034185047543266888131184748531596282183049818498822962204701006630738344689347071260662969339552538147872891803631687917974711609409611657392380074009143054247150220247190034770891297507526778389527038313911079955315986020433996411642608215160843023000217643117078732606483266606185153596456003888736995910860171420462226639871906771604788707565256593378486488144277295405120083988651817931505390559295039167754256248783535593796981020374501605168593144166938999565215277264915137628520955587900903918163320985093053642077208437206368867142058804882944681865993961822870833106690709041076222697319675359002439248416209934814334194427833562816324032534561036766880007019980586863798242682609137795596523825620487990334268472293702389680168667557961194188249131546740504827676828939479123608704821359920101894369188843427043347395532160699072904431567494903217893287496917962891685530705479249671728777750323696665334221573041072242071812506632280007406159050680297014300173558898631298927975420594802962662893545332687339863505688983161621565223265004794889530277545041203110567607798305159123359657169183632882287159192548109197096569262769894335023469449270578728672369370933355920114961524964128623523728910507528170416050587074332576810461573237429530014289745522137424980710225720922268560277168490578240638901678989154625690308506292536201965905317127425236024521221345217509793705402295738161800599920164653153645079037678221804316871536343813893356965998062949408492125786824733345914047807132549571112432567674573536487646378394299748289733544308116091747745059416558138701339142482999736455620284595931246072218485078344900193689319900082600814412519768277812302614804615455313987508215190720880067129855314725356694390748442312837582026481535563116550249930591611998184901437981904302035508328380042490835008297024648363902979087593518889944727400365223275966861718557041818621921500848799359496843999825814652901428032944779159348427621422792832860672227041675599887511498914892597165332070306657562617671368246626724675758001571382070997389349658925681300853041738907983638788682234248962682101674034440518043559215556803622258783723405389089963424475248013562224932986200788205850616388649954621391820912042926570176534481370749326106263644945426382872149563744622735420669915861301891184405991419906778594221341910585109644784637811364150765456122940139707726422860810075597217296494609944215687630132837843841420677012658310932727142314180181545622526920997640159356637806735272613633101276425972179363618189468550965492169717736967874600693674429044408190722224137033638678388399192106370659710687707749000356497580637214093300657145803127531296004883342502580105651560610624712975715139688609873327916917603933937929342998455056262926044063905399295613209766539445261585485328839869932164445377413732237059034568707497745116619097589718915182693209677945274207106890692502517894987425584075661853893257121549369312751058522231545153540891325178798128898283004599929105878580309071985929779708683989403631681614448562181068995357129910134441928908862640726656093361304611006625771021011567921781249951838706490858651386525106145056127787600484178366235580467443502168484367329256881336577945571943628141382522026080599449442896725122368190296187002738903239495750709911347086433438852348382460282213232818763500345858606435089892857147900898216784156502070947803337182077547337360124072205944819742512447275423726429956072140320236783757059712985442721770232253015456148066307814804817292812910718885660236371345616833291168635523915045061889119720416075823588589458162477252569095890012074781044247061293470436974777482828802011512224327723865461571460025341841483692922445774344181805017607313220994496584749008208951887867967163678310550832472733897372267963845442882928267491935617858441357062033612906963041791283981138659847898999131097609912003317986802553379377723803143520759535911872805789552298004040129258432178518369975351540826076324509191611621415554200138890789926912328066312808423654808668741043633105133846618492097858083919427799019870746776971193714403943733479876949292203166382839778530300433664992933352570004868421613109154735819283930683537899367029728182302805927983480032265538348545836004930657747621705643438297338987904391429367893477730202769299685708023513082967163911546573778134812229102145657563125545220502190121582589641187097196166580204847574847259080988310792721653015384354580697899708562582344103975198972091249393158492352634406595126313266007889893314198437400612481039418309627374036780462062763630385000984574488144513927270823444599852475556722362292189451789675440742529592508157477318914474913416515172363490260322168269318665059099026916985892294533517335998457126741712178340134343487868401462886612960238784805053891264863639900040460022614341801258880463908802839774647620855221417899342430514316778581202515076882261683759432487581557792701175347740619061790483298422804621950905928117343459045646055443328843510211449455660187999633268149654237752275431092769559489436553653289166358010055094343158067232402448060546897423090206969296478826350673788653342473467284165906448680766071435257886141777002859571117388677763116636548327503102879511122498751883696167960569065020001433774268830467598243903831584958111925898046332165358898781533102890826739289864001268339542494551727695139437149569165621551732275779143734922475074447046858692945971039447768633267455044373142398333502781070360915807797336674895411851573576571528381900524088404896988738507234156868639258970095596266629151072256623902538434855720761482687007009579387842985964666350858491943047941977887908071904963466102666883033783914184544596756969519449651226528870883425914507836381864616830020887433655622876564613500407186968787477353139501765519728137550983806307263212295435333939255043011037891211814927967585383383368352349141272943410464601202875859788245876163900159715760355871364545704698889758100124151029895752967907621080665076456942033350910194247017285008117688507335181147912266354288356925581874492089517901173087541679544385848235712955089957989158269289203422069435205701963139780487846361167397134611939902304791834421770125335992846585282650586281796662976629046824773218691238438869163945762713121066876536346685317199169131036008558334100978088500260737691102728120417037851530299830475940810574889890986871513216671933430855261446326828444578401309033313683369040102289896094214203718578383893574499410099139175092413119283905671848814285074676962336123700935636123096864527153687092863963296277489253889957939723076616072085211178296067971714168946648924580321835529607605368699313492476699383954143158753076759017154049839537578009201480797793796143488364519326456240590498812297812440626647038430066284022274779526533352922680379549957067835321552216447838896616070589254084998006680821789097594169613243766047327296589587676212462731606507638867061410140652691494952680568670195719819124171072537611116601692577317659883026632014393996734635778331639390072501478032068019303974460587596591126574388889334653273558040326941645876995865257326342890087036915354341342785356985174617109711203141205028287719566727900539154503561476053146477728145948530668509466955957299055762833966500384407320686527182718986198326765732257955847193108080897587116959345703462303190117348158980739385666263515454775028985942685008566314620012641985305329008148777131439884870485790217447802487259826763180095096080895269952021729772895011544090497518643082391430086289113250300058915472738314012411073766112059546648469696699006983088612184828654366077964155478827616768730426268700270846301891512230061227639839781867633150150099713035453466078135030601413385397976207662589127484541878999917136737672012011258598049723109525990033947347093226690883628110704195529998528220847370625443414941867023713932617413919431892388035374883402201169518774600081433842171947032981970268324861306271839578723215045008454289483339394685378872022185326347128960483973703561199237170249309015003056580123924737933660315266451172102981650849945785047653306973615829005755025103452750782960969085238308721243156706834194111206495735727668727378817102124797256703050562002137774609291470239215788910558842741344467517412121057430705766298851466974580229646372505089085991350064820850315334967784636455715558326728065540172258063940433433695819083353888948033542798124710121215774544758987275893390210736535059296561703691657266889768845113939309077177656367642827676383637001028425276381046773257879564673013166265541261367161228747127206234800864131658497389066955503772075274040655510904508727923592130566578032141161135833506208462883199517306813608694742827235736216105315903183083231576352977580760534439575189717282854940242586367515848274743454615955747738186616690115751701586606102890652455179353167657543610462087486445165133637778855157356510157648198922269870841879333932430386774342594754943651293602304729453003545091666251165231699755257634166577336265978652362778140970913631628489371074888314385625236147247302014669096449691670796478447651918389239795516763811335371549552959645645437890153958839605967204201368902063798884245930962745156429319157266487485606274407291723588241499852172019824878470686308049953535884460379906404496033202895089582424444367069087610070534641741649304640330662516095878885130798044939050612651180410507607887094247275519338309281021337886170355552244104454649193516865030733571403207077994396102895396104912797861044006572856733451281225179257348285360561493641928011856485482625322269116399694734093886366549450719425236035164433575424891198763838791255280833413942515723569375148253533677150477602872559066381656163306342495742090117166008997087003700476318325169959034756843205389632021160529776419972685460624463084621806016585749120510048821265379836799721303558527489469895075096174627267202302653508908485362947267713865302405213996234910760335529353471802231238242876592937674712182171840393349944728526337598388987466130588934923708482313987499241453376568061657351583902289640194072104552245430404688615595831652480951986653825583587378964434819335605795186959971404286931154286778895595819355923803591503579625019573413968885493086848976481609306954210672450369688394894472064157705743599634440606279902564052298030400223351549130521527678996444917491551119352948753723345334043007372140614781652664968288490492161003132757357506829758429470544997195276082376050476549962986365022835317419637911518633372833855745412083959777805593695097132629864413326234162175794609270322168735694343255287783571326407964764810785060672836905306906787760652405907560306738889047773317051490240502826690864226270755440412872686887169772037673149542105568574287535821205431016298283874556011894036225798228277826518777497375844986287654551521696960381276850388539542163216574966017190135696118906275898245446709102445511884770641424860809714564288024994729941331311819163854395720511817704785271477749727613228928100083217731071057217767517178444332414152144909595719280455848708993759795234830456661005381987435845575636640339301437682846691855479916918597657196879288505355405389689723796426538078162814624966739082870044793789088276262333021944925921701232608227181037388602057328235033816018199274803411981777087461927237166221332281624080407444729983952668950844579311186060076983097148209791443685748130270697787703193530725376362764142342851721876288792766977267878216318888948212628101082355334315301008664039336611315914164237532048845013816197044255273134066113845336030206272769351593218582188651342825084536187039164870771751545710019759791837741471790472239434943195065646636279646645649103857600755373143781872268385264100636295377503943283541807171398858406741771543990905504071963945273247513975207472581422444918788685774996942479005403517065800935546217605331410600823534553912451474107707353965205845586462992582827357006772241235033030453848227240167512763378059684070557263899572838576445830187932448667082022057398902920178379747373728173544425791406813653368033731567445734156553587972039445225011182034390277529815703466613490864701353474231550698519176824958601123033873829986702023788623026270944491580397525601795712944073336466494423039291294532973830341118274723461025585838453771389205377540280421983281061357479958552726733424232761034671182910658110916708411408495068555735134449064213906726690449472804670090560970466175953741772333342265587588362305987973748787061684298466881405644819261581696072737983489385651809304836237054714193707837645730611500104307700824453720819649193846408614213779137202259137459017972454477328001426290824324290951697309705912230220577155610275116714383006501979571243758411412300763559094769170018352856759681275634358047914689952232679456202620800647411683192112719510728149218695781713743673877992193960575263911081080431077442089813509435449217489142655187268406836789984994857202665395860920883483083662836062795778287970866502811860069630547054225238821608522211271007076667196368081975919239949467334076549230772669682397770178181493243617473327334605018763179733418225309549892714600789060682541689792161686911931931773726644458736507175472839475469898689219382562947207967519885913331430055655617355341825448504708893306019401932602448426098972114149532130787779762057964921104935765862144664501052314649180468027252775417180135827421397153887179231816733108397128302882081408807306748277778008372883478267734531223351744580202822922700467297010981470089121911300559527301389100643173799077551259304305244879250661287513581432717768226261787659832461600757875404360162997246522134422139064876427509101967768878408915676820797760520818670355981530964430665654760767205025784440437102342267537180954428132755777147797908096611481400182527976500606782632822501065361729068539996519087443213644230870881312565314126635634629079859169328743459156979341425076825571797347154435168820804723426775766300344135809346630906925937986098714424586687434830886176933757003391672417997240318641437962189426203959029564812901060040385309895163229756629666667693313348466996833890603590228281127442230459134545362933102944633161523207795237836074661973420359391392600374955821865913639418754652367469691488056281696849659522118680635170346167726541645305573752947402444779678442922731612757717869378560818373383438450888539615004246843044239784093887750875794293779421492046463676339443636446652868249392751050883124401111357016227284903653956332729706153262506526557015927692134757808620870289241792208606893279347714161312788678927989923251442618624501371365759210442174602467719300003526511558567224690231298679610717086596051054051930117992231784545256544160274667238167100360134747199303388010622782142107762789034991280940757689837562867846437588603510046666275149083171256089145990004414288944276529836941349893686016752483888844629177403660553236133932677825769370315006497328944351018199690609887270178273238695270649048531172097506193625113048829535851481211808304655150401370006299885786461945115800481863098449589241162167187188317447018536215201358091369228785345561888892200996917798289562824103139658957349154479927584025043677740175301792714209591402574433958722931142919459234828735845275651006275719855144060242023444068087115936620113778087165160065365241089604926213859876018769740913513021024050558413917969785036170017579865842946670294342076419587825209650967245111774899882462091487050337702467566413897436606867842466256620351616956991101358589182448047064566117233396173242485825015115151839528506681520730803126730147188739788546015094108565661472429717140925486932041571032643654408153186629895451751477954457972968837503460203949122365730341067849528098297154684313601972136211884947862926430848374982524452228403991069921590842331507739743306257292847808358601169739406286048792323354197868049199304112047576818164622017958656701265400761560435906827569805188874264135905821235137031619295012023044050379257910821091353881686380762938187829614429122814101224765958739851369638393213499648892175080361068199260686167309418724363137809665290378957678748270991474846529280577368310236689133091945244085097138547586788988935691596999524506710324715979645723958400123115958608688788314892482720116652086708488901476334989790004841322478113203287301219828150640193485643636147962495239593517728981023474171096399604879866700071444171128307745976087366180348504054821172205496527898752845376073644317324037543232497283834408445907448068562372199894442243728245110026147680201166193785768499606656962165937541449443447438580949039768419349185884459024341767647697140460205191567579624333911896984078721315418065740490118635712791629777243651311685966169004065715860784669641986072736208961405984122786403530268564874375639838672864005693893946937392757240745191547005226848484113239247815616257202827805125886564481863902252624115834175260291403427767168320135314916985011717789532995302482400837073791557034442565151564688072225041835618288720158875872621534896844782322459582795803143102568714431899318920892749387494764728593219547143909783923651235474339211159593535869723106400475607814566587824790623274205765645659201552519135067850498606564134113174068684655023137810570866371052168310096749911081997732773830374600852399919314316343357060298016672487028934414411612768862225871581240447641778539753156019664263604077452162159854047925174716557754182603159891009380517282283372835162599164090611265587685342680064432941028924058469149755814093302537093341645976047259660295956694637426677991896191456103992604570335974680862924250974871651966574213385807333237159120468686452778131913050741548311309330815533768202528877380383923470645983825626642061982334833525556347065799203394068559968107469836008517935073548887877931935249681273460537321409598950592967183593798987223794155650445939458693755640702008553859065287242834690345893295109615279046554686008725004317749995109436922400422802427694077417631717460798757239024026529041109596077695734369941693986391797640281773324507233148816801666727156174892492461103606208385044584412177482115179128937719373229517862580330280336362710797082930701304649063284103206665623368587131905693927014034800100865300933395323100853119762242112189002933525985831301666742942622879590439815037678296784060475980471100786168752752527312482409154558165239677553029083539706637163967464275507564588543915464020874125652150125654831910536654759702092037176684503199687691772954561016356698284018066235417013814588979875042892893266079526212876170496413332100156436706964269387360734220498339340964989477413432896882233243081482605615485453028632638162939979971232777114482169099904668785608803920577263695247239382050644260797628470746167513673127536955933161817547383866679089119608393579001476141830400382772776906641067992793640495907029705323250088591393793837439513875479461067519360552043146820549633349266414223082214854052375390385742965290750378472961882241077073117565218539667431415740404081687320656255965388848559661920630926586699422327246520042159518052655543972266494832762799808335518909951254123574480547623649904465444047735943659854165520440250131502885972643868408150157937466481825604874550563792717103465125778026168210117624189464988153045087429649054622414539861600923299854275991343777930780808681647250774701770477147218367147524183442453743028995831091659640848961890690672643823190343565999777118920640127568988234604945880595007748978539062375588568499938259656232006633829361799617455104385698962574332251006102782541398547594433701208542918393981668711470412134095394831080559331198423083860439018062998278340246098393974773329889275712373019691502843347255081740570481932032091529454043876830308310242364523382044622734686117309836965624654181269313377456160723291316346552228618930048079017246749518627775634725697829641474044732844064500940173123215101717995328844461499880861194314159582609311557111007496497752101390075574301287103005128361000239893109332142431664929857837738314592010050932764439587009354973014759047215110145119703057907310278686059586284959546515965381402421638781718299074510162980859689676891890509649042541495677798590607820374233081607599450998648745876309622619356292417009496381562225348375620784598202647543328860696933676272059841826899314916107843166501407883713644181762159789362579548155519189171026993158286862450480936713641014745370790359990237169213986549781645985721402277188020253369055963750637627191862642536007147576490651095399260686491270286446785298059973108863740651279268096991715997141496998367375322011665422075414767657427867516423784902684237514728262936996846788373693628613511137823631848670985464778785241677337699448722071544443193962413811078256268659564467606013777990630832291284415378480426769192281723163034578527076971823846614281485712004745010599646627503185727904932896849797756190704044621452842360264971793715227578476862283538955609334841174135120638298974635363758132614226589740925643231632296954499113561751575431734294543325634151695543236415677049084019145032333593124489012886492453405953279749587046149484434832073041835796917271477289477830143338749094530794839584691736769760890540240768757855121936737668501091121530020867513192178799936548751050466956981147101233122721856545757922818665551852798656746838676335076807841632702579268535242484376161095221401903872637400015143668036851067151086567480348204936450675276943337324669102916327107015147235574737995979480851226960954264802655981845944284138555351258403614149359904159259763291670402717711848229268433115136302172586835980292958070264027566822605626087031503052035783755036242745770509696374442955419448673273118751048502823344521206697639911407412358598708335890859635476501404994929922665736308856359081171027264332034989146580576663834212057439815661009127060600210207708221832071656765176957279059366094805906093385994477707116637396427531803211763003808906651391907470423783629223327490810872786986196847232603698842401879312999196798469649239458113916749785263727734920178286825583564242959336212739327841001469527244311212083220158680415047354457180565129359826436527794162099048281999134690695336633296647160130719525217199759439260505198588131137205089010998870758158631314683671147200971925214890485820833906427704989336663039888475440466019841602713442827974241262141609384618515739954928135370392840444431469800702237880811035996590145604807134614048915951456045268474962178623604528424559520597959789053178737806234823767865837385147850105901152610663047577207105701226429283596761527745645329663316972687139457222373218119101264906053612699650869504712198751346907817444552256425367336328947270479329931773072151102496298992874953423679494461872545960218525281741330379009025377020648961827133705036492290775656659354570737985914916454834463559775133528544317571315077314869075799436091345821515540560946725288830640914360717514713361985124748131926066138473963276466990994673980828251440767169414651214961999636665425430378115164071215828286557574966936296542050425562347848075177743120720286214950482032639498250320498654081394053806766270509095827672788592074471042094485797823157233019260075466527989796534972027473035257751521081170787391943283208314787135258929406143084238336063690012724175670285431872978464568805655444617956176936019113168627375962875269377022470524580034547086574806366123371723322775276926702438155015233282513414749963915941853425902151066415644138437153967146920565266140126032498416335092436154280412691979158945746859772156701554927943822320600998194652951874424073736907465999966793518694240250744907551427865334304162608262806286098626130318919567034153849965198507356641519106085184968907649397472079141513222917851511248643824790659206349195134914932717900253412911799909030846465572260191249504990036887582437207298561004033514064247133483635494227129384132841470458903509616776324714791303424860665965788261174874148101648841194202191629351181323048256032680435743389400868361607732840914631129958373609558181141775268391136320260864023432197827350020008366020180143915337410281638279831444751058552936715266678967371095317548663025438708145156847330975787141861051945787567036207882898251582307961157400697132412692065485553205906595627516369874141567663696664423010376489515354743954754842347283446959843665078051002626154089739558619221438954089780822491481835618217585720608253142907090972713491479928066268333601616594548385953468085264817136060764256054552322503118850839109835447852778702662643304276462200648482047744686221867894635980061040340684746585456188093006594315024306352277150722517361116605444354700493557602943835884634275911143665198826672864202361783126532620292813107891969025929823758583245027325476314230934677009573920138886978024707405225092298367188475915685478966202975170377344921338731184265018127279977486973144763716944070098719001761291853499500828851039945356372887604203259441800596430626684345522308606841849769810565129601463542043428772990425491932543356093211454795215819217325948026446078133749581646572157574343986402606482637193283653315406648161928839986020943820248492091804103272860613986748026191546601242461251824774985467634574054121567870223457475083012661062330729086659685833770771491595643610000731356671988090503289803622027316590424928580227711041879969589612918846134551563560940648351383510028884824702401425087988217887131206060238626331118867331547077049152409571584878756713432228389397052359952666571677209219948253709411597668504078220775983220441492244578953547815989032008554174420544975904540112763272249160153210183885887549898184980730083032946487766566782460786197908224791736234297051643208852137616571126259535662667881869488999042544117728058433111597208761268352602424844123941111174315497979618144436005588568422142478945849364709263411188080009812109110483227261677879330201849494286941209258908154393693935056153069102264056983810497304565406723286725520378008250232665566991878594257774960226781103639752092801819659071469835554830415567567933857077158018213223612661409766672731744275967469925322004257408659520030582737813778352298452490199004796827123239324204055066574587674994137615769435128213191688051051971285508397687299717764103857991418487334807474487944564528436169460812335205907958913815842377648932341040870194784950192221734384831737382082656390534677086913289750311261923688019868200488398312040661395135035864134297969467914001278954868644461907324336433426386064658887331711199973803840582238121913306883043315520257416020780232750546929517443442431657829639640044245283003950365190568073127605591353157041920203396434799104840920186479600296722950963169459359813747543139769240165583194539072541237188551478569271498371501564284451411460106264773930917709074172467454648694734888828297953160104133811381563750312308449779159818893747720825352010067243948815369853356949284333617476388277392416779750601624916336643175632460150786039459333873637854641972035365814775917084641854664814906299737555587524565440705707355555493967345806856150028602294173761491437387598174295832366287142453896600853897063769896434659216693089704584040070884362677321159446100759861893416974029461043926546853204566441450470263545840198708125532417295056843188820110165571312099812960179699551032996162164972207097866386518443019450856632765766517700772459069144703124823910702240533172144786044815631668724681641124360601397543507627230304066956023274339288211871351006308256781789937678715506071528614900566327170752858955127390725759475192472748794939660210026954425854900351110941698562807885241931775725519575342977465519763361172691930327148167876951981846371761731767147668295951510890246256055755391051396396776289077853742818014460056696369937278968388345475460189830335479227104633756491259546333732991066430874577593567075558521924580433655252209183437701178751316972499131426318485687331817705849437556591929925187727788302393749104360218603723084471553209001058049427769108826861628607227619263637009625905883904824032919174320570667056864614971311107646795389376029023853706947665898847991317210256059112919893197793709243169531371101501939271350644750084632578162235558237423903553983734977895954112261450918472021954323536481808796945420010911855103098687306803314879577509884279900117676406602433656519855267507980761870507776327453948189077161497167450872264653780216620209577592736231695285005255489795278338715653476286542906740541027826839487779139957837897376257652815290944617216616908591190852255423549820881851187306573463509055109295288576773629530616374692037851199466076274520648644139511313593412718153957353155370274715981282685943727461708087849169974937014392203509444977545010249613246575676500702671892958828701488904878133264149809959282269261097756017713028866541570647430216531134910177695699773003404932303086104444114544446841054870306258731972401779977705863754275113604753401124865888911209544970393299835803335828452310031656960500028347786584652027102218565337586305053974420616691039347922281156583414447735560780357991157613370192376295914001084518755244578572612658288048360582435381795615646913793115354506776234329260283331333639754429595505101843664478459770067310460792247899857561825541751358191029412657512144066966890300008389870089641940715741492659483441018843081717939197823334545722496168180095443268941116329364692015292847439683696434566591042184985993733137668243226335988137211857970285740464520514173281444646544699523409660767503167899874217769369364183480894356603828886475599527096046778513264659166732315607647781205482598102091633477060131288106799035207545971446492732803306701787455487075266680053171244597245432180739376911914565328435234637886301344332405528201045193244622098765458296213774029358631005528844941227630105553681598565959367450563480210990437708004626341094487922351077525561781377719910496142090581610537115342733987389517131853384765306641678635960570126478626110216294716636857403194017299497543143826146523326502095829547033467027828022358210098266566412922495984985693843238253164565667898512703022252536318806021724418451166553118484028368040386762118365902702469429129285622707016344894029939546487920164344188638990201491934108777794648751301014537042883326918849887665481090802033170694738008927755639299403954106744865419136687567945788775469511398616046047141029123558474685543669758676756990687150355173889326438097707703822103787122608194897125239195810570157693193396248632736203176498594812214774417695656338177423859854977114858249912798597294312988500877860342157339401948442684700835697369414199197261646095683627746331240456472763769912726540088829181075415986318212261121088099897048747218762917409562633356366713951980853169230618830500139879271808835471532611048682436508224128903196923769326598044825595062495198300307839419285353119511063652644081630922437942349790105590514160833225094597575365373363792881977689368336248649323426447995133006845138286914890297323025483434530664505815064003103749921375545741815837200892896490973818634638072182111453512562796265022237672665319145504081652285309185531668174187645902014821363078558516715772755015201735977107960571568682068983918780559215368179558735011546002133386450303060809786457464311480011081248618259882416766369821897709792789697578870897698854908355409988210167885306129893882625926751657368544040575459148027416357074042750781225557101994498180746010476396742350352485445581253894689765583756586807449193806437093171812214956861762875041250361975588621709173211359316750699161709776558874115244738063516601135543421813897700046302796172716940716590006280255152364706465979002289350860142762386846695538599262570648173016809053171642828263766062080399742844202396496106678297466536571906525499611963651599240215957446250043599973896230024032929963410843486409769862731858003013522545982738316511358690146809120971477878978678998879106427805553591515436853787576629893633742104312440204935117031728122366160321243939156405056837556540748777651428354203912702409414335796579906076334344348950774563816186866787529481073822318395818933645202276536971797352020509907403469979497245648374932856969160042059180244939753215769737442871109281173910544502167417968281666236434190884800947079255995348939228490839060426747118875304466816044074767299273447644432233673933196767674615035173562861288023611142933312062418725119521525903153120108507394851944066648233571900164805544197590441873453831614389721627578067373671846719475912999764701595770766512591525584595335435625654600499598836425720059551813243201766538722380054892797807858394522269652111266708777110487770432951034760813900619184093740378207908844421024001783564535640349474558259787293181787955127666892610983701118187288145853627749266420691262587546044543440314330625377575912981266956021873686084516127616312026216851351436429761593305571692345474502143717889731000361977157332636265868937641560030336255731540756897898001969470312192757031824997289401091196304048466342807752508365433264689359890163899185845956171605681378995942268918854556181273674298717543473512105119941587046492048764764631635176425953465008821002030247381922706621439230307979515806079256375580568457353416089828613797172353251324457440790755697252396283422512734864005654857490133997630448874582821501731051346793035867184256685082416529044768192333722473648145814370121957224007598955824236617994540735231443504728891817821395934828680859495084225754176856167439239820397091344194393251065240009068034586282940418100610022323546491878865673826428876489778048661931973205939590333318616569984234869279402153973690211040478277520395455653476590355069841349767405208951510101996491732240888910631265455408914199795291951122760756370629333326948445086678160578760742907704934389116297235750680372229603382164380369585681626126276750871618413060936367454851745319996119958316909157101062846629573641644691695550426281576090634975485573112439858011437992753472994454691992800895187679934726619948113507084269255642101931738200955135749600540123195095677383039132836994055910945816439005740040582716040443083736060636203427711344888588769500395404380300474840894875450037641502722517142571728952095889376661939928270496689318756262734743883002089371403003575040490748770320579630159472590511208413676106353677199080307398149216709445218734961659134480026903164351031813468420203577966618291927701923242075913971115384099079239441638435140324925850366831104617390178299012417004517186202049751714966429479667245707617937080097971773543736111671913934164588896388560388900974959846567163136296608267284463127508586094381322459983141816459396782521192639812141038316087123778297542318260465039442266519317453424164209621576983474370158550833375634829034450603404559255333234032375607603688946083832340392501281027528296930678967786145345648314672300443961807446953138637470841526571138834686019028837448037071179047232755461300253124174498247933809690278885117213162649578311218728356021125381378935917032555619665926477300330732675289730125627666691581418685494062462269670294352445738400799123627002570824205305903410328504897358718326183175720198745886090894468743088903101781913853267093482410635137972037745996453635802604271992396816945028605208827239026744143793684991535189592729660383485159788853425451430749772245516559637297619306505777991165374704737221769876665808769696456845100367452452434153518657296677469472319226046151027138086330669247592392906371710068472881722984279668181046705490300553380421475022432273591917874064999270688274483623811915836245798758855656087761674068842493495267058914042145294868430493823197580120608391711149973844655298645526553454463964882872200940714456315000491066822529239023712942274559489751185957727833965106926976782799513805372858058106848925361380734954912354127678224334723187338707294388537350886554711890785088826886188632252949207787479815240501460927565505736287301556040081373561718287814505347838314363453084978575350265736423903952097146439127597089495604128536723641677169993292825680746504036497328048664174320499260403181732313475425882109846720816153914745662477836842542527941699598555180159400318222462790558980686359775348117857049399133306508793598474340282018598644930186905683384715717003716837663141351443555162429599364840269142645100478508988503393896164182136287648128754493598361358032975632724971306298597359055046829554971257811304556153888156548600849715839291816390195886113090754864858403167608333799841700397055809317254663587794868224425016723908712941258014841783681833853549447157049541335812780122468364230931942579049218658570349430617801454096754114119605880966833385755360763331922459799368905948927922104201902512300526906650764577924396410502739059304300417949584887746918934426516845754157315887896914933760981234561271300387963954453835909676398476232893527403585307103282033827501799658778737680201006764195008021367972753635507960715330776822999621375873103576511369271561626423414202755435000392610134064847767540046393960525030463351828415913747960037582051011397512831879431289694041634663201728860119921385237778487625635917255388866678195828669678296847683961953564164743326095030525958569972036456571207496108958673842964037317970588831615111138897672891415856639420174973506587825768189685904679541445471968828600504015265935158016448269924460146192637999009017967133532333274378718594167339025138961759746687083273456297506627026246396434103026089294122196514709007514055041191774275755140365899774788573467155440801675988053490467766969062303911232244314485275011552273143459442829895122739219836627907460589813532906944531024343550646686102043899440693046317715658011163935929357118653415438580137034713658204344784237427862361555492176073788582300281802630187027611595354138675149726423956613528630686891168002232055058895175086594965392890579249746173527208734033184635710722915737023168229979533050410490831147312527645977875787185669026931153809409266498879485949306760144417223258051983681132781708101234305080135756363916321296782791759437226208309243340717353265543865753599877110755247547320134894599993206115842552751245932502939579662793640062440214672933679842281256982899312631222364487064595710600333695296899907392290550764225009072441336862856351646137065560289510082032284969832563020916692017021436309006499204386927651720244521445069848276487452728673831078748562648634539106803018218259104754827760542659774962576311297706682111099509512619391090655210552812639492750042919000887023479845614238115681821413448538717188483902107588060474177621956415426939188937875158683676717943760594801288541151089414420887782835316517272030131812606604700456529966393707027268230578832765884912269779913169007550929705825566764419568511979767282987673380258995776115587910819437279313054341616291262767153677129113731257734161073193962840932004832459002091786315197472041285001682626026533415331913835517342970986168369959583691725048361053607761977464606226135611617161365190742664091363326920419656902211088831366156370276782110494859245055410106585949012427911630430575740059320088971153762934808952217752784741681097265436501838261115400329293895904300918010301160142184642467360568714781294499213248335870002535999514200012575456225073798457301704682515333294319552001674158620650426882591267662597158566624692371543894273074972701929399531670591493497586053134317036322860214810597307036558904697185307306825105145327440508379421739872617494165718321486754757527992028735696341031258074984496057256933480877623359804605440803335467289865619773131195684257921999942813043767192501695854052150061821254853304484563773800885467196197780100210804737744875901656611070955898295524483128477346776881135428431844987032501948367192690592702960646964069176003083173404957960329643330719415100182370639780040334614697421978474735864351848888720421238315316268097290975011040420432694680613961510858626956824293880212948487879678380300353470593092197042554033555400044932323036621679757696235659005624760836422092444625995526201433615315257121910482293780174901229378265650488214335269411124945160930483040354044246124347485431570430948756797117537228983231569034318575580084414814626821794746184791906261412978833558491416178222984635201071682328476941021661739788306214580855525468359156998015489636442974567953063928266785673361792318218659554691192471549931164336228757278278012104274021562931332890613877745096717326812303214435810314616198303654531811163556899322858147671359684924730288608515585507523930752802150382898438294921439586127766978525716915015699283597218270746000943014563312179096468842411594686973315641027038388557969526473971988179109824563996806025004857402476116110898313856095468471630744621581757242434257932154258868642405439712606930320255448130322445946653615136274651725971618563881497768524476158925013616985747315861954088821679363313186654219265004779099208985745700495835871632718521337547782766124382202325675135415625642221984256731806764151765518689147571374445835306103993613984414589923119622063012523625533517800404470639125714883686111570957357852745969922254654580147758637028558682531252258644231628339839473358324871220879617206590480676699978521515577542832306456811284764753573859908219129493146712288758998504055010349274358737244311362499507999935888749058403621047646877144443993763253058755499707264909332065204043356169353164753499278478436655155412755579175413115001382739997953520164304372503996863178945788026059584652284906064292793150256914901711914645209865128637317488732450070680749857922282731975998147078580875587054162319595453067246428464666272619356855737632295009745032430502434606474043641930142737584714707617271687255715114533398602955235212624200720989386453140805203533261557487637569420011648520175256331623719921638990844498603221117848797633412191250273078001574247838907307223383298138826413403644417399034566942181751267881614203472622611348956618054620177423717936012168548299328125314627772388079847157243942354000867432378948998123395988910397508405981649858029816355849573534938930983588027919785591404213133248980195862094871209030855046771140139195892324596288171085099791679424305919556006080977643402027482229510685103510277353783957626334233449015109436024122483345251757035963533229847728264399406620226933885884939544826538368333800637959097692909830767724165738365062328331384022677420246936130556579382450262552813517677453788976716284125870276955634169870099771757873305007696567040622217430501305709781300049327754648362273044628408998827001081169183595417933907691985783461426422181750069460200496621132969188980945574109299883693784156083610965621815808435174068155135691154753713885332921512559777570719092233141490282386941690561348794171429358513665253391363137403349656132691741235426906579054704420005907478507805723263944284283593323695199628747382555987679261011044677917378421103824047690647098609359701095128199947909385397535380831711227689966830931875018901894364624653781345075288500277870806706108667545695002832351835101225838787898479135799385522634773054607299902077812734513452550059674388516637267473960850130107051928201961178001225108126184265487940009365070164647626245881265776460319247856525352057522332767058309937058573160613642109264488613198635709210094077163100460346655235955728581713052340858229192396953139474668478652350362905146287284980457476530728033097439509872597177819126672121393809034154037933483324204194142286543687226316166109249981091964612932316042295813945194863313532205001638421144782726361178556867819696243983807114027165452939082845436243733033800059714408955621521829438086794147819852304721638066132485107813579053255955807132361421710539592369248916957751185832397143020729584060165660797328554705651984679309185292930924779822229234524586941574744654192251583633396953177765567802641436102817781588923012769109078186209172270608464753426750569874696122152275167906987812408066913595568425987855017193989519343815778894622674617065735259005630077863575584052883184793218869519126441459149012706952908525442525939417788815355925856354844727447781533605379712363320474115698528938624436264473359056331216979099018280245820374227623584388973554991495270448376117322185766506131353705828938119126645935592160477134411881146900317884520310973439785387579951796329373655075754076187010394409247114373062831994094656378229390954366731807249333931662802553002208432180733715781410350252391657871200066530423110785021755915862991276773712859012224253872659460138170025268508513266546156873073312558640405678663558615829904765420170745835049622207287115869714265980549878805872552335967921753718227828756663788290711225562423392405350275590846180457052066789882231250743421556438051380959079216852843918643378275052048785215927970557294845010137190585159505455856574261459995837587519278290032523544159757156081682488366251280246176993905946170526276340504531274688745672859608273682821130950884518782767449555035077549692692552845982463016235470137455885991643164621459907091647707907024825227424508612290667324463366923723449595335096158441028567446735173430595216635213442766738721213134983496500696642977800702461316470162171712525519367928189689049564736696241661207874842708334196066565151638313820568343177848359468694793893464828961591967625331888362921566485580158717677354656913248871985029243946233599259309374578680003467465181388698349961769198864481034646796446094332867342858643228048495954780792902683667009304388771376405157342129156387072368810797641753909421259878744516240958829625445115467176999320421710028554172340624036807863117451781204690999881525254813683016664678189254098660606129779667534741226032598364662084406459496310727953452053216857757487347335816342288009591172047715056677290030237168155138958745912416324750070744574284731725463174265189955142215015729003562856671830945580905971306443777200824640136889598054885046114858872216143556502668699407254755772180656133422019935766980180972300257982198471207665933979978324898517998372862970812285978058795457998216214084817139884819833489135938383784397766907423318543461610291549904309039680211747679093423482974855701642630566852565655202267038086209419375257513834870906742363412437584984503352796070814425379380727265399678104067207727518634101058860779170142632937135960590976383493102975773676394658401987940584461801454181303255433465279777872719779658066122554212666871764827836097516331955021242346402795706072903568544542039339142603511432175243269196540871735919079708908794622714688150076853720373296521667287618872996737609163401666140370031051169445390773546875938179578226290247661534753844178673857403022041317548872677394388852608850860263162880527457548364337379102318760504010793440405433050766066543731067381293367406924267037112030480608385641311526832678697540200416011860420756638793070999328396261057764531993228522591979185377800606389159904793223132800752014174839738753316110005479679850070710923361530915522186723504966798475933142316343550857690144482371792708622178169583367535219718993854058850206716009432799658078515200368941652146408126090938768314289444869294626008635856829385914573433230278250120658738536929161564653135106948524392894522507612294727683901069275096104749425538315305645147366165268092741494265848930478093619013405085339806145301404240910714433055833435347588106596706896538425337784444408181253083396474887338453710529508488164829370972828778702529384792646923820910586854770883057707081438846374158843757570187403575180288690028038993631600758946134233003792347498024842064450927255013014134824722463310745797203693539463718570214317988028339700163854476072878480355622813642572058632372895100909080343724361888248806094236413005555798689229517447971540276721760053180802028860337557556683990566088699186613013545603874286090933636499777800669841990117520382414274669448806328721843208735614165340079329458768683310102729354213329333957870352274479596737977633170036527372085942030840333415456793141563633990858230642844381374146721418301573841444498188941141258538770823528722288655655583110664428030071743956002123959438192201009976793583450576127708930833860059102638867828638112049423899858880199931603824186044846585814448180386726981498512150772432150995479419727697702107417090195078306096516042693627644788361123309442482034815615736290572987620631703958259094600410824769773234147390566714809026528460918592390451259677531166589257121194040015817581085074807075840116665297668211832821476130813106478010399037324411167845048200571086682379422846799041539886206635967599098247861814428986090355013502933361338234476793139918927276250293402416738188936088995194667059713248416521358072864880571695381350450974583185580873868102352831589039995106969689269336137848460708054800922772806092326858691505464759703586594228642620860265846366501805502884554806109069072462427861692672007724044451528169524272164847200054342297528804592907414786818930576692893164271457386020178288804743718874537821183213442080783340346642444383304963614420377199436582458372574189581550880097290628236979847674445172638721441676180978826769660685326848629398137296212159685011404391502136438725822819792777483800523797991362662775697496948738704961825573084282528907147368904887566466493744469901203928715105114526161473052980003801815508171261276345930473843905750427820411840833009897541676239104866070491249347010815629453563890109474460017415502179378413188619053806744639093381285712499680352151091086503800874802845350766091885364202158878428984984416803636455513287552909930667852511212284239712938656773384204251520604961880719577860592794011602874605936455032481638861474797365204104285837326818431177018922354034178541351471149234544854366075965506270854665161533189538158850172458649685601779863698446019953054294875023409248806429910820490277360591151735609911643062485323165540695882441353023473151001030610212581565636092527338231042854031238096485886879025227288364591550404936113026566894466939990063239225679408085421917082691075855655206882839445561354311260918329101703450232973462219233473270364525949376692264677371527618764903402088500491927168204356029494590705362835348138033801837495277900227635600546659974399065887391563643956865853115414303128442388506910556689515222298647104515296984735362674755111060107474835221951961403663273374087670551723672585691243043003318461755288527419426518410231971391722140131946938100428664801909855206506933459535977725952759102770890508146482984131742387253716376645291810835430992863997524472958495056594769887167642609958845543818806874772544532802245352316220565243314285362317569683423350513410831569056934699183001384653812314493532405242192141565767453241133703708698451982829594560818137915188515914080195232857742664630147971164174707741840015114712153419885470966036707227928118390160131392677486555143924638652460786379264633040304796836958454653752980292392936899154569079074899808883315788638736220154241524504440626503046277813758651126922971202338988985746842692821519264375534712274296511048884439692128382930191725348732632380062313088823232467135059824572085236358177143356416744409473808912674119699961086989378949987844897016800601002921819687821481549647655929428885019852581036686058269064947772918338266916099245540977402033658343333571776363839436331247159937160922722579080936168730607628682035801786056351675421455853361923657070562138509242076787469401268027313558316106300717380945297150783391661008053611167683904977003994817546323810595644506879622636519933244395381653708007402640094504787205411644120286759542311288200157389435650791147105874720634577295637931062362488732367424495143045072978940435180983930966745954359806414354753586115056430388070089809565425132232502591395053246144776538692455621193691622322652345275871385061528169933229475835406522609570834613854684836649098101983803493834925241492263139889295130353917726814242143100077378651076951728869257477187178663554230645639705141905805508662245617669398821021224926830134066123022277199285415392790248553058297719018227690690499663702733354285632949488500202430501907787730232930396225420230668137225768592375372365889955654338701817092441000526068893357556637278566733204056021544902200717777012987365491614604770123224034520327440102077386136917669059862529466648697573534780782449682567987753101261673144839267898815169393510502019217583736461421610707357946630634416342552702652253951668332040414833635194528978835730396405291276028255830970745990528548259487673520196021724400199231997199072415567067966995896895909480386637657047608194771572681063013500958977632110742394913122247792501035019537382430503065317984185806210162835248108229889657473322673419844876298306183528991202773350774940138701517240752344895963081263169514577377424948628696991253911842346224668091881129167327622217642761595019572100099361937993445855241806091878268670508968526862918931293701581079371592780657161622599557310048246348189658765336461428564111245262903454845518225976031946010666064016498601528742437521170450813130916603914460610253538814116329928111813996283660936020182194862081172433640790223341047550088460753699751658015265372561510758434559961942950181765704465644908575953533748601397456155044869825973034962329084685572227570738300534646290601646881336268829907474740056823115687613403772528943408115203900059721478640352197302207422490651915363829438384689277982268107726092954611361958853456429837340899981175283943801964125742984108995833819414163501279230455842547001358299097435311683930986678404357952699650094190760391067676004631262514977320894887629959971072307371858303771459508462413971559854251586613387902329500431093600055302750916111937303303200570953890835967700253890142553465670018973265342314542422150591946007423277317158184023112454223018240607547945652634796810053685523012528516968718812296313984301877084222818136570817624859047193629427995971536172191503526227050250310442596344478621020878966188095973847588897260218483461684003035424927646889533568700441626991654402670177946929334071749357079441311597354936499169715869010405152418613401709513227326846161878360643245341973483782739182786807464008749080607759088938061950442942062132175885937031212741504345224556591204537443041938745273097636513906472064491531845782894867740041511057506413760190663463976400862499967138643412162831647519830776080633030074824803779839738281006943566767852332439660238770500007236225554823786856714809018230666315385955153214901485338392134107342106302242144176792621780839928420935019345512240262814961818307008990484757690703108263112815251339802755474086278058043026794713136070101678613001316646272663995647050729740634931369990422173182615759480403660213225953594556564956500734796055413241296417560864484776121108694077565289338644514389969787804342195141611656356203720199232524427058474049330117961678301537600501878540802653574705617511346846226813133323634790602803429844885965306928713018139252022690284357863041802404370739017585962270212123852288171274162278973395711587204947372058838842631503149827467632838050558185640511218497721067481370081817605283375968800295399690455659052604886712130153825312822631169612429567175949367195308008019516006585970825084248488315088135831387829347640169800297901767918968272273555818125386648238338585464067156819215997822787334964504038529593190429038674872022599806131869525168194116510956064348303351199707045560472123557715326273883179459876760297330279033575809443057337318383577731038557535095678119165079554276689476470253668051373772062591385344140104072349702593981531216564936255553998734645321185195780631040049316364563142509988890279157198848272074817590496043016439695104465318343404063736017789774755884250463948355794043339733360456994406070850839779045441611883320813705185491631410272341644855774019939532876305569704972130252621363249526629116137856548389445463782370893539821326414791953126059717266283129122402270809682184387253534751932073716724141647398087533397571708170948861212198208537765779643948699712806424647665578263979044863445671875824340963085768715357939151104793292441073906179971898153626048896232204637608628728804120349399546703970002798083940990827192281779445062268043988614020801983902910168994705044986968176244376992942796117220900242180860016815289526757391525490930875489081251405538570401595151507503110076379091866339502598387293564841643025125064025579062319571933246818781758156774850599593131352753197327569152043331804557997825225418662717502209211614127210460530219895732862065465582045961902073251326880628757970633039153385902073593755421389866127253895908327990232262246732340367149780483813017441779528639568723944645834258288356799872789832395984188340274086871645041437105807177218870222095619866124207302962177491526618242292090012284654160945331777083802073962816733404296538220071562847669078201986915475979867073114619293176916818770120492896004090476517776523459412955416020119953116093925766182066048599931680528645943378997165726756589012879798871566446299607794720349665255533704855671161324491775622640433140693290803665267382565062563110784770227613456758065619589502372796993639607164148417418914251583496185907729334062803199943393656189216741911895366815427240265506368651512106178731795937747236055315962206727757847975652212833429449631695268171123054091862982076972516947447962299845852008608565804533652669371065422439291758753466545004668220074917087304213692007791014489007734855057812265963044885239150177067070354089467689144096371494346628419082395615469488503082496649372253774091508070231356618690495610481793284407193971517539902629756155269533051228004997797157716585087178378655231630489625390276402631326364072397214243798481907826165432993344328302954284266722912703786390526317027073196864692030232037392156727820286548378986077509135021284727364991902655087724463070576455520121525860523270773475238388515420606177806149851442203922430034150921403281643631955704595139695251720229737970813117580318148724288293643230840303784397164655194144019131593675134167245993236908678432743605481889134801517702502643272365912061378475240949558403485107945716499362294750127521818297723084492430054862881471566439962212030520549368634100137841335093509809407936485245074075137591633348264662258662635541631249822154689591278929485143912985305068177514505621387452243537835108935909530149336357523190392327574490120983062191852669133851605597320925097383318794241520564467983079313791408112360364558951132494700757494554181263143962658784630719608541011525494043834232959685711659457378746096196978365626549765804102914803708318082362937057281711855895992213304513748658348162471785928454970123113837769624907631172470556412798469691531722443511622700357447251300798093050387017875214864508850405116500364419684858231450922526857227896572870621696956512706385985438143715716902528004308341753324518388316182760394837397621345184356659678802117152018149644341784060777973375595831559588239804112161336621927383263416579476677230824607179607486660076468613817340498441215216743902496264484631495203214479734543255015490059731341535711617410344598489498459550515246476728105349361263688096426155421813141363304557739501107216713563408748109800791886947567346670657731273076549129309511927537404666490935524990937823314681408723914135667778440246496013431851369353673058192104879978357904687317081282239256382063699270558090387515205974366075724736867347209684787622258115333343074516762799761105031834447789201456931178678017150111217830579321394300037632846519502879177183613918868442428697777173033512789937333602796208770288426625773433945190253702210199751604951859523336243046492198388054769757409645499173712022059008793684542687267863380991334656232650525990351434724992382562808998556017076805775347287673999264450390092034283506336775627594034462585712940829779400149431516358827325311116943820414620299182267210601577772869416186599220150661811889976628737600693150975918357082783248264489660879800331219723532281735903956411349537792240048492294764403839710959797393553442123681948234913376142099274666130205626705453009394617289190450995398069911211894549263216059359079223603605306630995691303997915252021055120293875766109011635859539422392854109170530555513732647289103811747922804711316395625939985735880622597233510163278518771557525664477830054034927750526556207026036746550923312382920465483476926381576657288212253518433690917179176714467593590603512506229502809937348434804239523470633167746491664932266075720965445228175929833430747454195422267314268575373803347087426779062927429886009292798751347441615367844017849710829383547858249841456865842002036526936882784080470115622216581180947645051934595376385587138445725877223300387173938087241596705738294202778547103478381109926946411109274564118026248147235577406720414440476497828644669126976279128491188996159908135701891680580798898355579940641864520142519226941970217456714802754498362177184079626696205142881567161014344097981479493599107248134265522722167236605863895982954931028172638679865778581708787969508841040075743393812761862986038682873380263718597008484087579343701117787335654086966420950323803596388385173163297350462837208588512172756906268576772786587883709539909131437264051964236683807811943143891888240571965172385529757143274544162497300221722587264906994837514276371151841721822512473086854915706415737337806718279121944644195885184114412965469760755788339239868393533456014994959830839605070529009901062986386505307975927648091769359123802089631327521160452078707762860629602211989998764488787498943986294575227332822609630383725746404998118842372353416151860167546207585220757643058367734812272483465505734214677189010454870670273891424528179743367715540563729154979326975739729165970579988116177297393136795371506808547738627579565356390390919958793390434635226571350398078185605943782882241800140870546493916681016228920364686725242739806803912469496913736509733842249430107792717417222689461570850146665056899051128750553430931425665840452283550915556742283566712489168093686493612258636305836301202858309327513591475720398410459478871228522172933085991672984056799165484002610720800915038070146856445192019398674968144556018422787765841684849898909713238076136539705279709308510018379492527294531224560285575668462986440066140509383068307971394225525293218208672810724982003776272195809707728185784590073299352855954519539317901044211061069571496931792927212655816718880760168122805813724238656080894834358967728887846321409476809265237855370631323072435574128845770533763640849081949675253795103345430114489534900507581889911317808733602608790706879902545034555760884773696479582594645348752496765254047408047286339092117178263918223008941421598239195058805688185949982962910229980098300863471276608848788193446581951385362571544754473293933096141616384126831563034614510738434830223505910790726029291535943466201498383301134207305168986828639424970076606518245557804189021619142941818432240791172829802062197795355995284184446790737391976308372227770812663206449463673819419926655378733431150848872283104538371674226483532537791068734722389815867218488072528571815342456479931970865287033715681526599833781904597612458953649134490614845760076171986863716056645027756915500754901055700825769422786893793218158727051973884579012408948315542252130626575265802317186197943256520875149948429806265643293118580108510064842112291354666066540552416045287571610247884106907460868692240530646908935356054930242902044633063871742760781560619962350957349504365666451561863026581141448328075232736201588620370995611270285754988808040929710336893763529974297742207084729230221818647695771098786004650641101634475605844839119631010802514390434102338251945325779435219391919682605315389309816000020595761611119198363167704787530577998884607573336017413446278159523769459886476054859457496697901383654068358779882669410100975769102640660254183881966530660574639999576458060965403303806802662695230605567103555982661355209174205672286038465314494458101805077130680894216404134171365695636985103387180313622434737447767415083455137092051495525455169370071576261488974452280922491628664711524036162198193330356792192582807715609570155486082585868705817909201015946327135538337955503796026632283877755501406836432170040914571090811605975393556757351855302729222402158141262719652380237953156518152967874291414153136778206410186398491643363750299702557092999873429423364569041438890734504659442862534066784034756382471953641561795273168996938546733671426473834366317874928812785738912451814471326378822739900179390112220836315874285741180894350445540277205077654786678405499833348622654990108436298380856759640650562619283532586495106396297044140513995411078508058989839222137868529707931350357528407472038495081349807459589072494906898057542485419410492145597790290733457190095820352858775174416746869193931828553900728403679748253134613677122370939480512876679933295452714931761841619563510368527477419844288976230313402210852592924286497101756566692758713324971431507199653323095623744777072054943041414856033961696050190896942344296738762417041264150839424143667002391044958701891271908094637848955808393482047038455720261794291517177709460340636371435093943809590418220018899777840218168577954374799375467335884880181715527839536659229458253728232170240842873988744743851899526726388311263375056308800640720927740103464747723469394352102315599304988646841773792801582366003609762158654520503527905773773771258717393362994213988509736704650166291137913605422584571704952624949920770831202376763387474414420933639670997728503489425372512898798270059551282430168672541474176347665727310189683498244221852170415064835922745972715362381523596798717756486354434212838259789454610199575400088903964029861115420349802462788389161850294916096033016437835954870077269233853415327018001228838770605576830217853685342062946809922722882230826925084422525188179245205174235718491598271620627185066308970156723933336892034005137038721153480925758454273382683304764474375094928944780021663290203558770840869010708104918249493351710583671878181459778731380058951524643914675101141261928435483930051165134529580687378506244741234026928847306997658995949446025862440098104804865822765168539474813343368231232893515668309229336836333912895364358233969886423476977562976103982181944256107959913060711952607867833457371700665630423649959508506831236490784946161631059376338060153239029617597732028857757057587006284860182681009169589716323754506690695051810562370286425549710038243937486246925405791848067976425973544633924110627842045544886945344013459175091683218058490714110822667314070864939807565280893437302867597781275912595954831868501549010938439976453386958798338835145892558446162156288564269082705770096379452451571323633634910724824166851990933744633034186883194226844707124627722745577087150856525772948507126439995791692501078764750753621421115848853057471966057518117729076693628989309643263341500889376104768648210009752308401318564529284619650270846285959425688493482359503669931939883682192846406199407231028918515296063268664210719547732895047749480512052879978536074258867904106169172754077058822446985287285822891169042048457293641389027924994358144192766037154625741685964946542530318174803243633423267261186013558856260890810313829130125976645563669744189082299453803126867977109306592447769693944279597481808181100713776685710599653862611232873561109431771658670093488433291277827395994125049552711335892607380708429413842061322990617262648626076006946096364889476782981597390980676348965185323998799477652922397253067829297148728281156367682702384120956922646279365535260492318857103876581801995104155228097909133585992436410307428458015362730198510399039382527533859591405264793411590946551308812255972551199214446096693573065310431393762740930934344545631348662731689452857860175828994995886223646397063601965183800540530480135616299364743819863457219344261622304059826533291405397547948194235487139193931509341959579755995807206475657454955631641852182071331443766960707489585469792273758928596578880045873072830589161212064020086979754478083594064729895025523342451239250481372583258085059868812699639756197604770706277456597954375535222411450174352684059140203808905875420964058545060788757826469464565536078674687939369524210892714917153620642059853529513362827416178247559174557836547094763696383567083597031415932524052582830756236916802359149745785476071982779126881529490988109515765623056761267375265410587859459432330115543575442542656867618844480280434962214706364517072748817651531205935177989779805644663792164152459864041059816753927554776816338681782575203291623936178200625303438593016507731529436738165411354441713035734333381774218310892745597397807233548422987686374583290855116930606757582197435065222324218007323133340030375448138771844822158144580141705244066735623433568801270890845377765305556234457313174924218208773094245193047822560206251214775123607158754931321358638056885852561640523512932404803450020274822341758738279041758245312835693899839872895790521571063574117506636978871577783757437710583613459506766976235286141838444232746581689634640104484177988594090652853767126917775350446429315924137371024084258970057872637618506840675827591031497979941924055527812387333248256335780497762246677402046508876137840945320208958097716970553986655820662250560048530823493732365487456094390790371357503379119456056791998585406230718304786383446397158730615034526313862439693916851424141744567395811254871109633801336346003077528009135850581685248740196225042935779266607965541085365219663918730379929312469131852421847217117079164100662118891966493920635650229024567849205564536533363063647250042344766645828357147747139385895673779588376852343730163593729691472629405584057583326106207953878125651399593032960867933714787575466764911016856163120467426907456827560758924955591527017950573598566833119007980047630381456722224496359432947909550302943173290718829952877002102159014819457643447800360913773484566060986188640106651586433569795028099813552309612766041750307364507957882980170316295691028477535112395203383866851019742455897347132455573404366060240324489204768608342008306889170554043954523734051100844792155291144444080240618827472132911104932828817020152814067938499887634748784980355911334830891561501019973577929029257129951864416458837449968103494630405244459609839455667790728529663364685746818327735793696953561538257545063025146622878007679234021215299816996539412887262367900843518746072279436072334699322070087751117911827085848498409500353735538384684509385084453193454473900709868191427441743174296034905852272876694550397958990657317314631628847482076723861261615165938245064129252647188773462455504607915657941153667961221501034692243699271211986311870128030184900975903074506901147854917721191139098807809759690332937692750649728536328165500384572460232170701953462189230696087629640629829401689099132534068948272475823621439353001970227389120238192553943801937070619168042919052335325058505594594911864236859390865121596078867590164915659990554782593474087548707305139742680531390733738274405365568877736284554613144822809713109896130266473585374442708171119741343878772101307509897132283060283751704301671245654736987932288916801006613296407840455720718926308101472691235227616889420793659796667817373337890626517492299639638795848520655110493337796944175179963437530813552583626419476487660447418026242142144435883170770816009133506007495370186925344450559249347286093147315098519836433314560445566518500414380417491860789632465896058979686944711614561762097847036438573987729384386112032992911209424234325273013948934669557472378013052150788564295497021857215225017442131537293220048304150112643107389075343216762417527210869582829265569030476501849509944720527757923595209891867009237704205204861231634036326088430052252203486372865454369898054514504613338443466448265927074564444370148616237071843405196302185234228679725036596124493825474527546957643090345821231835621716160520623923764368376806298965293929466619269645280955868840404334786378390375767186621859599188177713947873274453331237257523991899205371429417236616687319504144621553319112360494675237268898908560049734296794546589806267729789539672562910958899513694435324077032793875811332129681640779495902472072573368336790954819686237629483827116118152456560971343188401893155578395392002414240983360332523734878609359653309067306794482973482933254150563119541431505945121755979960742009320965085806672625727012404230053522515048230478371778347771666260890691462443226200446383815543329903858931011558704199505498047749972453823756165343558102780937575125549864661463053306755814903302884556991790563151478942048336875230736119110499282774336173491973724071281040655093016595280145192863316619430992039894406127182678721208221742026291700777517301335470954985698689473622291119722656606581024019410359729863160721405979378806973585760861468614292214209732194921859556314013374315065816696683280037727443810792029008912175532210049148460350923900547401117162672784034373734712655564886765886270694628086507076997316051265615094699530836817911756075292551930768774205722831392658034182387260054104236586768231262360901010421852576438394528427785571048530019285283044258541838629341044631210952951308186326103476191867485092777317986361654266703543880081971944492677050085578980930006704428304342491384607854417600729685734903580575456123449137266813029663249238861932194389402941744697300879255184707968118258444901523134008068281783628899976263488580625834549899093924870780724644244952163989764619546055474596393530224396774338196566844618657079969059078943395478287752782581629142781143216816273646465579291382544097570745217905943306075564548994094509345971111756187906883288270219055651906410309177078841971053225007526850499757313180071968228642887911135326296324934212520851032665162546357765032030531587735247879950485455884312742420836832495208333270428061751012072206687786589853425470857792777342602278160563922363846158019238848943366159813810520531808180148780444359770257035448605555117683572541492267144387807176558864161671319661475639201453441266268513287725154887173129560210190352768915347443616092535326692849615930282460571916244486252081018632874245142094509422564184771100111386182630501537784240439305980969083117183131693561339347261443721402895547987908240183913477265650435368449847830179056128498704869730281832752428116330257920075089249738339921043339260807074910743621490050990535959716457513183522062325521836495204725391229734642869417400320591518112513852290403801023529219379943509021078457115363324724688565427624513436081812494013731782354348215823266210879676182629729177001815431466124154735218842754817691042736784911272677239732491100773892858769066188912254040009219213357920705552574275241490595033657379297267706952967614879000920545118564494976087214820728805331902442534900533692097224644623279715953632876031402081463064183050975643430015952572220764183379844125554494589151529781817289187264750812231257522342999405775432102348477153235936452891965390904432491832880145470644240348859356899585535343648607284723492704719164001531668317667682728932346786750379098566048480739328826522266233770536931474776751525460406516414397526888109411311828450585142748565169851593649668697856998506281532154014305453114576638437170958601864980169432105659940754741377183383511930197694360965969659008690266858714193528954005377841785476053898467409587711017074654343560964331953867431362170616948990307688685824704544776289231277363979400145745883965256912723537283239281930920768038535559840102329353346249639326130064061616013939327581999302214546795941083653626410522832956641676175121294017171397334970308418110961999508415972263183873079592325855950489432710893904178257383031367295240752089765460926856676851492351936270329426660440365096162753313706431179311930135102943049936701386695366051775554520678404703752157143797970001525773725233084724026639242351934085695174897011330544321131125253936524257322427487871152978539499597752111203951594235992837739582855635440223948580399724103760431656123532510453127846359188932067172589812740383305725927013039522696709336134436604501878841156036173354691600623925905665029745033480499542305026968093618518128215670047825507859317303878277610074650707497211540914336600598847037945622962754734850000945891608395681205183933486784725622296786978915728144913880102470495943539909190830408641265477922751591467755413508611455028310909104902353783590074388846256985043031446045208452255067484046860389460651669058443800556476878438025173068595861042517515688334469015985995794638069295831736256582903490046741301812094228321212019213499962777329366491248699193235097734410336874649662728589983932420259715445771468201422600492880625142160612869795713822366881875617846663358577145595235455049654972649461263965069294863017719808160081484850263829599455326096141014693039697863646082084475166862218537255441454331567618429170791137488606046095422901519038588553284578878446392263718109833847055626219831824443508249482697569308255555465912461870745036683126935617058576173404236818641344697618076102208328383543061914257661437403459275453252419919409113848777418625100609051874236361193790718150818283571838129441139835521882609863581392759155212062873675037969545517375475076665353844275824387251603201327507043166344482977678110952452832007420686567486558705364445758929779238050979589654647563325042447445207774720513637747721954328724882804803945532664881430640409302363368707766778233600097956034972735372315450488218248943053994315080780529001072756610538652805431773463076459192775842921735036357938439463937197175599668557540127834718210919257524857111255678483307120010768502337707973125937542159118150534895678620714067711005291277494111235074151169303445187940528314653896412121400026323523982828268985636965867160751140004383722576058443227383166011401718426847000368121114943849175870126503931028674569378781819837057992690042894056023401723581660501636248566189194693882394408313054291330394826310152157193655740107888243682975301798473173073782928838796951619917808956487341216656268175427715790893027105066772649794898604455082251063455130152504996417838693063411432354251683472160299674709005084568826518686293072646298560967526096697491917842604669699621502994786084266085802054284139555973284033218436132794153286117360585647445132685604804154365357722323925162022861203063697964729024487828950497274167047608072927308585402958811394006516233011124699522143068428951456214459082268070459386768203363230920640336129318604450558016944831506630164321261206387342325233731157868138534568489763073272973686600062622780775666461463117649235035630299782430730057383935535096720724001802995237028799586444350729089407198686406174421263585721841167128512576357487486658006770500637636663989906223708030130998935705009969335128188208546357452020287851494059154664492516042741749224917244651509153097597238073398803543387735160882026458429516068532178898669676291488395704708573195134726825410976180756456797084323934539250466559097083385714517423099803318655414210047343202471439595031396201130064587125505998136908707952886590728264075454433370731096811138079207378517492159821890467883571220552210108168346395750490897098259684748412352901311994065931958085453969475457482348745342401341547903684862836813555948812619704919524668818585496865656188680852004840338039389155996589046912489293813770196845921889485123475652290212044871463652118183674388291518296241872832874256943355407829299576432327758725352650878926160993982036727449187310889014781912557403198301318606200721578951652738511575003119945028266362206800865282430001703221071030577409374945420896494903924404661636588607256987751622793162699348947645004811366151584810138437624709904141913810631111272722501176739226897011484180664154305036565653113456980616792571199300463392261840140349419070808985292473949969231254464599453367961312926070930258882992798448847823669625578650023323457206832056254270972770195035366094323340497073008606819473009796410100149027126736425739934351471963589749975788503132122273239773908635746102080506940317582856806910085780012653096097014757231513656196590177308200170877286202682693634826015004162874198667996505922970400768757166402875500394515850532466706514320184668731522616772434418338303068794329189162968155987729403377812662455914676515187504285535427819680477517746849995096199699884692138880664237853259591143538670282632910138348389819985702279351271372805505953625769757882058146699181810776499614885887517370226399551952170422099909577952266801714945525861809497678241174263113213836970995434426742476431888325492906768532203303033767513874261783724486027973684338421377878166133781622968364355330163069123653333967039903837656247293989300327966258371617535272316912185711589796045932039328667539713503293736680286078875227059258442526669216129064898774386221530259811743200355410965063337135260386218389168141813650144457486281043026899092437533610628950785545956721841896493911667579170370507186295337468346247261592243759064779364200982390771724519447807458932281880859707399968430081217249767052870183510171814000757082479877331660628444785521830776002424745208949318220157619831719316966804315906829154398599924407728332611294419590953854337048422270546890718476792964576210675850716347991423431574177960611321146659266218825613179848459818261538242911884529301400371329305290604795638282003404330582435528971253796481981430640167772142053464666416794420257463195548308141317286860216655533807301335206014565496700518096279680225998426276468935396507288235423251752734262258523221587073288859809485935949629472619724171198795649799428805892513104109637155382159996632746427666822401684951978321401705363290775416812134186108684222493127505677364097223411699523897802516931027321780276446851018167525389934312090775068062228478681818273289673921248099310024189960167249532045495302509824489888904494260406445058148782474654688606113540424447487171137203184408761220871189466192656036859660355432799951155642941360886096896318345826485833745066880899292027499125437134017601771707915850464075730204834351545845088978001993076712580298060083566881414933245871047965560600564415951218556398641213689169701198595662807780910822696531994473725586000128286548107046081375759403081455365351243456444018266232806008536650025204587752257186467068593958058165775797163899597199918039465104805615746455727311905396864944914155343703977466850982716604643256769543020065797955949471471804929631327913337482863000604591756431997588311228898994778304315777626902263262940770755670878990295314308413649974894873001907050495691306076256570608822031113125566136055630248499577041230269755054644017180330999989513758779215846524878491819581837752573400739853771925958776306254258273790552199817917013260925861221411105821713971140729574195345123711793503962114855817938820012131699492089090667641867383911776399560507010361557431125693897185441926260428351615299847996247630174667198510969440679300385650523106330911912236508622849868437861470788892650453163985962657273780241456979281886942034456298430911703760849060475004597093081462707052083942756277283009031150022939236083706521010418731034149520751031209230408634619993089932766029496042976536923514345438056045085365935364721060918062261560213261595288373417597038865182249054368287818883505506989095714886684673935495670127295643526507460683614344694033170853150990167086024803403952890452116017526388959968755001017233301171445193128042661891424720123996704591391944000916665453678346175600569623884426878085037303138000559277624036355090304747091862264458108814745282735684210378536894759508189968097263011026967534082448319723930299845516205636206768777459090725366647038706888310238317681322892188171954729111318012079702865643676697339924247127551128269710396654195851738917143385221790205545149234396848818420301075114878745980822707894155199702951514101213272883879145985602213838474430256686322024522272177784297841402284602696642575936433685053179356801959742637114069077841625701480045030639712435804760748801974333614269304638445341932233276843612090150263351518493928226904631683414675712174901003175855530133899259999895458137724669256075116991202547763636466155867097411497373599312308914913940603733545946369632006864806764333520570702791734577071485421727149148340941145508854378439274887532756015045599756315049439266398303244239803050591120133065934140360155324378460316305394997240213948101628130513580196354881418488513485793122485286222498742318657928468783652023987421482038854101182657521935369366715965798219632110838003027488241924858238954157065055270900444619968814104743516378320798802301139277559736211832148409938936584331587376345810286775489406127068583013378335791745112789174191950442884372703233608144038527775793118316776136155033058789239044580581714092757931049833321825201154737717329455572339444931987742152295810827386172236445674465274788755206774702719431400890035991399052781770905151093796964247073475462134909310811291906587760695369198409348234621662332649534042327296028256315571353102086438415955900499086982436241791544294320407492308069410236959736230891144680573031213650105829727687236666011186703908127071558729328545837014606637059555612556105567193416285505601235542064291983220422894511915360673329296898960243648273838308800809926325792984032494703796352228135881417320777010546149427732884400194953674309915190091239455330764016176918595784800208269855445653411397121061707839304471368589642853704005995388927365943212806900434223657714372888807083791815477678961458492231196326394376977292682943354886912898427070697700525934984453115636850333684008994093997915897989268114910982053536492767030750837099606435703273540116169921540074589369118278168475822373668616522137808702070428459724056195732008775799907100159731632007096898974154708534168269582993518834207545408847260717788412842295845602068915205106412102889395105701320509891409614418410713345730431945026096843158054381934322732805378449256103233201690683270029231338248054448053201317657286714253238097712020286139719567108351149556088647989041290560134005999391073895308404359265644382342761621600642629378453516554206501814062027397922941052105033137608683651209007579144715155644368809897255286453134414127406362476697181222472864520757143928275083088937657716724359645347431933851064344714717337107362762359318973958588103449932960924334522061940904414613877310211797965914095915103092920739247791097829256189594640113770425735482199169385056010134508005631163676339484637601798480530427548896232599070987604866678518505904408543401316853617594228359415428787207622672063572338796203286725804074372074407373428886640669646270895781779544589791487995426103640049263802747460160009543912008521319941008434984748270982780868364306759978770762643967641604218713144158739167878973393121812527186028147256075936030291623090066090846607164713749779625847495516944757644244279217483268953657251477491373983998405411212268504695867476953576936504362288605577036274364494426385230335841273535382014912575588197765269409262873070290508913218640796926161090633548396806123083629672591332663097535840316175054618001857520013147259577044003777202362873086760106088185283893250897367126189776631001610761142880956057892729334070997345092579795801233918762060662106799610320585853120894352645808532790420240043228397848889017331812839315279571440027285436212343197321744116919193687827339491343879645113912775871205112537715918111035133182242001678509326650158175396832660831168289865742661036609936447526388653281713681691625187789361144535446948246763684794571139204865743507696149681007310745672697813237245086151191933753382272472859235819764294341845032789671267863337970600837597966274295200251797247359650443199827402850476022191711541348011668615175895058543590798752780978761693736809357355928695557584696683484057440683989103397405669057090663497677264618861384205435167282437797555133967430507947906768807083182572952957840746478944308211397533500091667281169915355759875967732826460989679084934703196938113398940647380824541752326095674409628769128591102119241514348625425393078851801113913279769518154753472622402641890046320962391852005409938974062950486295084921780776370028523337680824021987781820752366239140812170922870012517427631918081966888675454497325337377386039224384415700191300496635302744878069060739727649831952059568206025196581190505727319529343479347613508810713687473751761697741863705383004365908890720838099654594810267294575166115501754696114136934099492078151280356613126419472832706590467864700760219307971769416732603931854648260467271892109167349546932373635666783624890524619873572651294154869745202421308180291105774755285667412137452940775040199780869843104215539083592906610645141056478213030707034066192899267213085198511520101468189461884337966120359515034661405874953272771595100300210665232176071271215045215600120906727062596229540582991551736048510584288834589545433903781715260876476676487663411531990041483954804123016049683986605900144473936030801449937535790570257119758016752606781682693113664855627070608369654246649098854066989225464230757292916013758450941666630434922287636026314401701104711438029384304415314987702220390205244150622294920103894647668444136396625596434933273012893233228840071375154830046287449356101264340444446553369627229591313042279451862374555616978408012578890869915521653460460385214027982142102114442606241186702553903772593850358285487222162717132888447947732686429903293626517244547921235772412967991919624623453311805705017874169045197484093172360560032970396408742140660307735390621454494605348549616924970186270181015332349853594276531234817592034635732001477557112675547415689407990164241949649499369292891234683372946239363515352854935988982573541715893979143782488686589761526959788455396480096181582897043995894427308932233324967967060534802114073681558512613403461574277834194979488946794539730688349993268960683693628858433537333096473438326494459604993621837496422070059179227982657879227071843384061500887816419368759417083551335160217278274174404308457530816996213259697211274853724058326049087162625474670087493002706643697741504029313567453313269945787836137539010361188338888086832942677693239614789198903642435503981124060982498347108625283838974913405632621197388274288917534707711248510690347804949396189264408447317246105008736170849606605438883089906902624269383792554903940812443568169787040658912857937078518855439368342612775877408068050919023777072328149075797322119936592187631783006903165331580251178541003503960203387701345218729112308017202474975736316933811953165801209833654511963876773372234483202347205258794946227857131492052009941440069844351967594290053968810521893799687995733813071020055613021156536777991660150027685212327399743003234443511927282693832648150142814180083548383442940378244007526589483190521167091900989790319453755836948786900197331472253627046942179153092058640127308796477976170918890119053208741018997482546606686557373147099512140344221041870101369175328584115845051164629991283385187452992682887981939133585921247610022466519132455836507174952391498595077943820420130169708643428185844018706185417246942455098588340947451135167306219887722185647769755356609291337518577490593522500861728693977002893639293825038859347651455171100063424584856623113038633515675435579949828542139260278261431102234573388951426466667746439453511399441428156079498095166290617266510068544635070789937492919925678630910506524663432543544763875422453375210700082551930225673708395881507279693213687550764419847291308969047007364219389611927775589413519809798378227294931799676154206568384823905927485886015484748333549890688543962212609034048614290473772513914658280718297672570158178193379903335427563528957388133620132942222078933830707180264747449176273123315992348940367887912739123124319672554467826159430360312262803208189419076804366959626966399398265225638822483848907325708599925075909656367036431228879422175598163991742472086070859026832001548741658658060179881729292010176187573196238284504783790287306046461548061929920440144823783920044817128024126177181657772390781612720571730398537548918841373119541275905494767911122923932756031368351218237507621653915803447358876047748237197113231681251311672613412380588320331284700363613019491744525521397639680950514620662645891019681033822314585440876821291061418761643087799276328709949969914401547741722936776462749934773706643603349712476966331955060377354029210003843383980123016442514631105102884937411790315763195476184961471013251134296039468649224311411527563614086004932430355911083383427752254461396061426031613248985098457592143841946541815313282972693779224448761051396802675997852849794136122501385571713599770029897160776722576443016155146966119602951169001125182545958693270611776147264795054518656265817990691720790444130780327516724575632914580586129323704328854671848326960302782287362809976047436094418212653249598764859925361397912996364930093614641990316649538630885474019300074760200495167004070166995486046051711350037175905825354631021200680619459710895926296868324162629044255716112998109012170441134719761920290764730281886193207090761261490279660493380906819528264468452673213025735623699327737183532089708674390657248116708972785092846216413878401749269013674373537065288554829093411267604129641266565744013944021675511147930986962442171543725835813828439337795417478547281390166389353578012503070048450424311180240864385657062576899362653522327394720069740366447506488018793743268268054940636209239022553415088441342342806193157614273147574410202685431399668158737135173736378399190854641657037309897959459024819856381920271005001961747104306226550531120858492413761237494043980610818488335469361078608240593411127803165719769952041563001793834608667728513111625950035649005433171390209976218089031793310246432158308123951584271535532411897238888184892501714867070091121676070490336930518533015995208268983225571979653894815765682652682659624791851612082725334115148043973564796485923874624316544796282837830023551401983672923045601106939491605829516410367357957305518264960376532087413482509923730854163419517989173681819128030914528864172013110026692687175783527776660144803092375540691699386246953387087219093037087079493486465770663481420640798802212282474752155540632762451186640541002353356070288328324792674438820298335520404642087165003814931710983067987965940306585261737316778233953633912396545487734354943337161682789815798973484563823372165660554342042885377743492625123698435337593949693003978572690978387520461289105239033871865505597752921416026240934192368808420853782900811970044007275252923383613034892223160934024409762201990899792989136990991882744265480602475151244059193351007699527283197096222398807995872610535306767099898950892198719685926609224737817413232970843478964646829202441362849960115876304911698815082139394423537308395734526494858980578317653624698704448245885482802122998879558286893428613066729130107114957020855137356694465887465016048752548908884627181138402863786368505887239432112823326401755833207676350005286794995502207431751873783566935371826768316355756211694062382422376643636188948568802856438495824677366941960152996041003000354921847084160105937277747282970999838684105756960395295660206455790618400518692126316986058428384232665605350040086552626106319230369233912510311669691053778372325132745307405042275475991055444690691093896222914454424465042443607484670408977350364546076587126179215721787899289856937893878316840593871480069237599471895101840224176422376290525675267646719878010499739782892192346396030769024069224070101280063965729846446663260065434095092844213519574675222575871766674994272530639173777791163371655898463607690184062860922822737539903577353046005705623432667268063751702546589170812779640604666963790380565692075555564886674116719542403379079901203837821151725694014174131629673598680415651510005947136087247662036492131838284263861571952752228198535904026314291540588999902779945990627438386996145640312582485720603964435030893916457576968331696197394406269525038433432284600615975166487279172419217346330967007535104633648465840042232987139864977891101231526579123013073878234225121182755600448502363510201603892136236707465536517571266102731565462533105330525127870710692290211767048099036029949181797783595879345587383607837008141922239625428088934078286932308906956356464563473577460574833259430518694218805931872018321486659584209274427223195468898352319325942499169460922987031111603561973466656098971062006383800038465609584147743542314377948673893825530088249344258749910175416586065654680862747738795172759966380871296571433224971978584225714189838937786908688914696733209235305097575211603602991537846269333559579140102065885852670861870768105711899154683397537353542890310442354957612551576279817953137731676920233326270347815874667973013225664303260597388639695550693357021165134658421489795129206315525599380565546451933784716949949868877031987044434030282392898824367071224663244260226226325511853125840071304025419738487875920560520896978325351893209796130449258800663017789103024609937378716725531913882079858157017490199184447584054770339426981253132658473061801387972327029176117971914865633739618085104898007539720127834422583530670439834437571968156445583404694088254210440366699214164954646113959259930448883852667780102875864759030181072847191694469901302712157535062285000518093541647456135607794745433897760816164863119855360468375751789264994051662829328629560453166805913532222941602059918135189250775285796170261184478972240386601449287065994902206567330293738730430620756882555458673506352319818567419433730610905776669436955263041574841985118641652531727689396154083982220111977093998078397912306052615382222053442149121242839188353626993642037492204613484172987336613378376676007939158404201247196688598326461939025348768424497316613188036219401917261811515594811676296816780951158516772630632724902392638788023712020819690093873759577484638079651728619890613394967537122453675502265027737692881946357977310838778538701782998566498923271235674322583404462554182032032587996572799071174980061848147543820276125301860573869420837249997420512052106196666456762335199515738239426925393405535723404170245084826393985746433063384336802988600391606967329188621926773553103349706307895524784024052992675397238406637678369717408704315667396958150124266492871471398995078234235911055129795333807645078082037288801284590051225800954173048923334196976545314629026894374387438908664521914333780620378367429572814758037315470977612485614486280424676046190091901967311545210285846173063941462239614541429093488097244094720370298192972587968842517945988996275393614799408585561296812993733712873263967614273709568152914380134385236490075863616215767727438693132824420082214949147937620563149456224055096071199077175989241325817520204943035815217603647128068108935894559980053746754470048291274494647186296728942880827037141626467709258167822521889820568720256986116510831415540222627208615168920193710484419358367710898303088052839701387951003360981131532520771664692699173628517241181866721989448523029892204833858647396076007681655904393707499571156626208945837006684199394915574310919312908441304370412620410883006531062608382170844375019487057234880844504262506580935324333724544274251953719987962386036179788510712303853965181357204964370679504354907221883162803455364993819230486567054333686905023809632442449904312534818497220897797198681862705614352123757786578658445784695367713909172439495644704067537867706395970152846331946688883559534252871264933749477509543250841392829118495161117665447764849445779445413532333028893456340335510341203520318284779256851697900742003363193098413059794265525945876826514409393506672113436937933959253176192897879170776810288179619062974294362710601832850630599076710680699724518508384576570577898070181917427536597546600431138599486857694824568238299366832668415140598349714935556374779728585998398090139941639865621090370992793461427845024347860241968647927177938702639260230812507678753814485286964265398242458207655496619868168267492702399942000836831036495863737923778824060483725489607660598511474870080272687125627610961114736123618800088716768639978931036452798913936076107339816023001877950135240747851016324425073404501663425725899045439519946177778133221466991542344883204523447054097988110905949056778076361207694911340042126810453819921768492871622317011976792568688345482111784999738136890344507658949047964200430814552399621904136401309108127857729840028562221140240657081577939479054767076928446582537218975665343536122099106306002684513914107104163636965733285632505726518555390190379514207227740492352770525190993027297135698760669364481839451013623979823007477851922929814241786370734056515994066775071728058560662797643218467434349745524549366909178496110766110531292135690061149983199523550474273237871563339958895536441298660241666418535365398032175503248632605287439443569400404250274729636678813198105097463811564884252812744681100903318921851664816639886530519645331294103600261086503577379371812156026542159662777851868257755469133225306080286556757361072453264781776855679563572953609167877767262304240455341676839573505040080977577743658630941716787663086859644108349477450396064863930337501012321694603469776280580771123521342500384264100486678457728756663475911476868719347780937918982514146302904754551829321085940416656717536917020948719552721087269044496735687747572432768927315085691233151559956589593712996739265097129210015588126280519438631126612585788790971942353599384907517276775165728465528040241674139454597262362378987279821901658469204101711567646412192765170791801278294298080146215029481172152069891006441428972399382318368642349287605312220709719147235117407826528496661809718994682626335395717166289339121036517796462377470168026210560789399513496777483392374361855619473865815843756605162717469312471030759640942461405311807873294929597645661120674507587182104677372057154557667809373263469502848715666716780756089448093537069007201349650142062499824449372166292010695082101628741089581703426470474550647816282092122370691830481291565830364070337984154436063508909178042445713555166352251529864571351043314601679230203503237778544282888269106047426482355678181069502277796272109768764739408856121136616047864374888413568966376094742770430761939830134164983415941031462669394829168650725446606104609212991001432442791298825368113542772150248179969266862094938218265890315709674189225200297610486717981596274192985469492303021935464526523995431628966998893545607812846053239200305380713955133167775178734183179967488071382436308639062063205539143412215478898734141779137053138149663054478983920258325413905050632666749249315288033597979903347423884978360378356119508144159595458232817676805457249345767401401122441724240641268708708388287583092842465608453623817748745006596593596521678462748273952083632343055348162803243210981955824956286229629332448738159151481479322029869399278138671795581142817838323112971020378530790116010792531488231636017093690541690269747282236549162474210752448281748700017237639782613315559637017415816456919625853306864837784165736189226799964618358822843932821154927333930336602005418303637040801466633521164833231954708460969007460863686075406890697164526891304820801899232470349023648315556192973390150895724917971136549804265704826880919807968998483363775517811491719282178839949021136728985895230839108340977118017667935266471854760991961471993290799332698256334232399562652163475228899641538537264847691031804610941502511727406734653676813047820674638726125017460672470123095701429303586279659098463162054989739473109596113191000825863518090136773595330384501809104543456064043065638529894789799359900680175900675901381900265742859544792458903348652297209328528670813611134407791085717827969569403886887115784483200793192959976543991386617465229049110752943304897049175052577798402208917820259217656300575155610485362742702411098411178175184587531763898064170604125027320395691871995949980477352649151239340912080268548998295078391703752928838879731257469381486585425683692393630567602420983531848054198986355069806137223577504579840346352281407077689637320857009550745440211563283636016121079460643980124946366708058761295888391221084094103922099484522099104981165414590587709903117507159190326845621276710801000499368577869855999365765598275013990452126358256094365790793992617003298251112148522872511498784348341480551962702991464804599576692591814442902756011201096965937109175831724430418362741925028734733530198571970943902639418561450427823169394781526364884490295113218738857452102239198334636582167011528380993129358854155162455035692240326883322408287679546934586024505056918107918282630061248041822490048578093056499753954701233900580806169989090144184796849038378496521552820257513147858007229364084307552086812568469051563863761162219183420258902863004763265067648634625886403961819144108038084531155306393989159302111822029240387416851448716345948842438613861515146117928250662993092198114359093429645824345001656357521595228456280290404242038906645011004766844775709083893531592095988429574101433333515055461843880295321901701790837800471377440554253834108239879915491259050007651122286680573687962179868573836523887358024532177621838682712624935074327581457490065311018496139586650721046149893476068131499429918320633727991469434102696262836564246636950233538249895907651928225085926172840825565247926633275626428626904624597867871455025801585810617080398705278014349667020872391574545988905862413933159656549525127325598982657667750249817892036289942828956070984550986989231705495394343592530494124953230920199056287319662045137109989530978697429913377064678856877307705236604810334326043182373452694768297778304129123981641828279221162003986484051326969082546892775404626056207061086445514503035503841564689846903933308472298737180490254382639221356309886184218500300221934824516523810374655489963593187878829986445258144651133158284250895040790866812400286004257097797362251354546888562324535325556515734964071890276579884405320416274026332353358853267202087723884015781910186187234863069399504682381350744821797182980365399083283849474132803461323499903214064050643101326253062321548117568348789708258299056278530889162573278052288469303347945995983169061946070160688329631958752817995490272286137559926452820215588783177686282138419532462531932851617212412428242821547525337066719632954989655490151778379040789845096754134212167890472836017143025004932430652950443142176235336303230862548376769947781266247923674387029198414714473503779692316106708792363506870777545551673720612711198726547302719807114370971429294778321914556025247676801152802573383412778936602551503429540977577860193638892090538305378578753440439027857943486662791132415910743851458043044371349306465534329350134195730370629122025575778598096601145723155754613518740591221226029993237781905414015974575317499578672719689148921041996029239635186720743973921472841619550083844719801366165617201612606356233873158052699816729993181164704038991647205589073941522902775798344155277195959863839328091474010934492418307820437054738548387571904266273392859652710535816863534679409906639670430337640054292080186330191643595855384820628371447925093748426458111909085639891037406577603002900241041997135483291910035295536959579077639552966089851955261828364558478828868214062939831817292721026048971178724461384179553115199283565692973040700871978476717303315151340478563599485155830372676365571805101627141141444093620447633425403148610490388249791393840531398706517130343768256780414771136876028081932556516596593133192329564684329893656224317776987849891959834012350795092405152339859329819534167640799632018689039359368118053479046884060485399262548793783262904952360465985469941551620761858849767944704839011524134220931805167200071385692613447762538742971364784180775586988546530013939817078997842813145983198592801109716265766714892762663180729309627448719756669869475079751722633535496008685444412582520033015511879402214572201548497534758993963156205552713300555898511788273855960279445930284911848071249092167900374851179703402135344934756704858534260451223649812195171226773619169975841603577857908595772648328868569304814962226875990329777679065480037645052636752004088195363839231877104527196419928265435352205100945549419765924305328693568049526436477354164085558618143798504911437188386087738531779298698193272767535077993631226897059635906357778207663018976453004281159116851497138446275772153293838332694769435731557006320975481519135659218780771684318367919415925173114294447353225614310552025927124399504747416693747317469281951698159547986733459619058994539156922847974981695848086209369297873051332149750469791463667435746917695944093669696381709540831708312511807749868909884353762942004703582523541843661213770484403834919060402945150071063942990826828371210273023991902257733874587541655740320711928500911111853847967731180244153892681567074405944297082670352758112304111816226539830393749647263971216603326670093340556242205435316940801281346384630070943984891094618504438049800314632764047754093356696389609107818073228401382955599360190749290976669319905473650336993562679115307357083935541158005312257101821205497210452494628185961110041358490923383302991178325307742200355829716370594705910782292881289757068519748948226773150968774490536372681502424151380764433912300094984071641947614525323202772174688979002577861542695405110330691938544947894011805541845747298970463734589803189503587042247929092883115846584957384341629825419664402812138963438600962683298777328969512939658100751451602401714214008971969959287880571793238902705690383989143897627186710460592798131707064176012413285659541080607655939513734498059700610090799349041038637656603907466680506597236476151363086420982391002161667801490520266124506385191810362892438698043267611054665101841779267394743687515882607203954193148418016232401101247707139521539365580190795776802962369180983160061038077480760019704057945773471771266893569401202314253538426151809301781910765449319572094476379620947421853248067231693881336638693965372501426507913525304842447678243426490168898650694649419879680076666298967471732483550302285990570225593875219213482805446881684331148640811587640605600717582165647319242478699760134611771621521770270491249707656324121970974927468392026723866855935849553386862718172711162283337271768516679842778559743963503993149009404613031271356415985396432147400121269299976998898679636122745056630589853408129451684596305349452413385776545297837563466372215127590660555555464175953269844831247624284792811388595273773499101887511349518854702332819649058687847813748737517609393412702085022179791664802324345386889468866692301582269370069714914399299996889216602510487285405985295045766045743515547630699561574877493528765609721137829081916018822675140442278093945674997269203492523387113015649018191669414929925831686044406844385089628305209675886190594640233998673655663986750541657528642765393724424250443659265053084685816281125959922352531932823190617706995748216769158325732829178705529974246254264494931918547212576297860863118813599414946765196531021332023253759635453415424459680490925511358401321725507904373006628582016332326366020941076751137089385497967439951660081324290463949848146449953069593712317405173168891544595501540693548886164684203493934918192804669541183964312049317863462433759889467898373655901935511731934709156988944656646031076489991117256634072785691470731129247130904593423285752212924531390479557466239089062278882685488566753975979513176216878930246038916866557906013067722307127837212475906275279397420990239258872532185753051103421633193076092886596739469989806535466187288203303532412857581121480089067174397218890090457608212501339251960137227448072726167469284242765051581165745723594377031116508386888740231563663921015014976002747482592247960121066430056092699163289361848512760263849379535955671346284210827676065090143243321038388735800362756486391260074374184388443840090767385323050209946836769819584251903826596590489017472310770800053501502673564017732500284907858673816923118675683758246971382410896087230358295355672704659236082994580174650683890714872609185397102033755444149224433438781882677558925514758394006217263778858520516080135000552155744936183241087033854725173661585705617110672216732616626747118271020374315044718008787301374723853164620793616801261056377001953468452515990054906588272795885962832500206456964446194599694477769305516553927588754523895174616580904749348731396655465568596779043078189273239191051745735570091116029335692615013962322908824924241394719818094312343081109023492514458668307835858876951601116526228944316493709301670627049052582102918471463995826222894755728290761919471999916788815636115462985006891544174142847096663946926916655921706294621415783946806502497673973713439281012854970314392819766001098029108792848008138636080397618435906273945062406366313823638099875188430849021001194506548414031357643355065873766265494071408692223274772129632215312745893915028061209934693388967952413082092273246914025225078463557377391925275002111680327914797188676427097166881724387984061907927374291416102124236933186183767343218244444726147664668779807974374204690827202809529547295185711712558257881934712877611641651480484542149746326096749490191969158480316872903284714379350729907591959627256020264190991176360535013612310271552282584416372226035257900196212397442961156430365909530724498454560283490101232495310130693141895076993579875109324506878936406072930381061911959004052866119145131219028194711945104283087136876907227346225640005980027344793865341841459573611739140264057640229364538645801286361001448197218018799763914905039376385544347024860325597251101920693312404474766937816974721441149524231307553764276238545318080322696528276043093155627287342791538389349703229496459324378615761828551361620316754514738764360361328452521087032897175498955926319099094816283424194179843852669144486751450612028347489625217644845281746905037352582530766595150389065058943124848756187389747915375924139326962621041639621576308777164519523652180101298795538175882156337434093178536118372338820244584546071386099457796950809250455568646078712091363682425958696901196735067108668153666991336142015969030111560099744438441004151133478547487137052121194159895513608388144053572123231972641544281192522491148513590809379805337923513730404825205700783936641313433163429472870652736390702707801599550238596228932556699516431038330134081356461784103753120732474398754497138764385499589845630456621554239201587188411980826273084299313106209349205659096522162903511925801129766062623427470140919156574895271973552155675304159773425593403320349691167605876269812787052503599486112805321366814033419123533761926072894253936218221150514504642800825415851765166673312325814209528121045096321284574686880478730845305024617291708557725932624726325835425590633069069226523192003426728018383042343104334845672268842813676200979611756751767083990414963798311191629254233156920620663668181169627282693555911429173202212681375079644922984353020149470841996246777260013685896557380466169910854043023809074032241801110058829388351547018262175918014508379277464060218015185226446154981538408300801423295894080742573969356486315302051228959305632323695076426667851599762174309302795176602473795052432135357045180504430616790223966552465285363136572350011914833403914817599141904716366323930386658226725890839386565420817588108947917640141384016194757007526569286987149869498040307493343506551609239700352511150950839340139668393131223176360354493884259434167197557273285083719455953069780945154172394261495384354024505169408344623432206370024173571840730475218237232470742474892276069129851045560740242219112206368510084606640319533776426145977394696857655112735208970211169073726822976874064686458391574452216365514028625651445406580398347226890783143977115921517668224908105009897342377460125045101794984280952007998527086196536337557208855294177495772637750213433353159349611957362569602402467695339121187127200175421805481828558273571298192874323247348990245214518527713865442832626681974725294985187780943862720042518316829717406294638417754611882165462358884781124454201011632268544459531970439226569652514067921270258180861288416472636767680861034734583096590031475281217255352912044536832296630025491026832202969129229377019936219973424113013360385789119622111847740633589589554829131689637386886904070082905908543470261467931075600771322296885967442768417878918752600500927485431235753975723021494608195369993275682264672448450605304236809515724885451864703380886144174096177017634271021461803520133167517065588678785124783521324896179215493998566181822734101184038536244795087007217591113448283906688456976831364449367555218669608316947350502292319647327427487826316728196928799274846314014206760706485913839230877512257786694791497320993338582748270266997857027993630507664133440998277906335242088844780913561086364554181123398524515229871510553046386718113398795480767310866471063468241746195618447220286916844054455983289799437828237250071830392968317414177090730871488233605592727093151479975275545433995550745953846256168577882275230869798488449363311421698660372261807531028651228643749150068860680048908250554186912335961199665376340289822250799793315107272563003915226394712315271255829962227818692442492518881008547241068841661416667869592297512105801258347470127112662271493162116433495951588584734229969578501127901695004251380706095909993896280391513488934357976932176855928784307533777058866330483865687012023401145841963336792566559522562617958019815047679269108021378284350909999348532683807394905708306741808448765165590069676794061044563530987048825650529489085329130709019392174239026040918082116781060606574030568680391107806377376992572349929048674240258195851544686285777832307684688590428392489473276717053429405643267674465166771488495254143137642074875590181332226311135331586475480204619380344124373279945134211945656828126926014743425909368103056337571421146689087695439031706494838043722134654348979006814668697287215664849617325761913236035124538275471744045269944100007332447710945648360567568760443991954573721224176054715054513165220723182080035832191254148235152267468331573149739654400623531078705072097812934167001009326423240171122047460564686735509173523787893068339651382286469077096909296754894935415866941130335183843442454497449647866079178107986953209066470807984994047207716619798824628684308924257177216135670224973483140391507722603569064183225728705021088853401704732755602605414862848254851160501138378357559753390536407530905745309293077136597664334153224660523686928779801304590171053618622401006470425325230524817152651261310124074363914986672523569666818280949459195717777489022757840560585488930174332445204143781591541492779899389535664738721615269428648408207348245487195690035077678418393768719831541430847383754148161335436170790315084697733772528673961601189164273122102529379741500156246520572913076020290011937407776040830300530832000494628426051131573795885813162151033659348450509930812554886175881084667516149499606966669770609626441372186013978554022709530565725464052197222251647800214943545739751824903761651352783617009894455411637598344976071696684252164495564962058935563697047034525942726728826454269003068878777473683503551969389598437106442494224362768914007837838014952602147861327540965112144596961836141320618187372712188106138869343705057601690202003603229288186846855060057708251727872744336981873147369290144326798234213929957630739475923610521930277565460420067628128839010819189283770667942351985025657809400037108197148751444048394705731764839196089238137736780669650463990782521042836456504078989905771035287416131867131351944738220963290978402917400699077843114092421490473530900349690548969801488360935101292957900636419265848750238336119518001235975703645104592166720012681481678808075637559233832448545178652573715098555695688577699937099324364858150767081076082040059852832461613357516059907376730904888195282819787776194795163085698755200937493145037202348841184671234191602728616098724876513519425403629291695924223464193690721631350133115270401113738104413326273216410406612953721783091744028152193239630487472376021916243503452907825265969916359486321605604195219563116286529919197088116319353180255018268786883765184094966385659775083868882453907178519145450526265007843711713583504179633661222732927366337251034880589817709679974890725455736951295837049436407923832020201032071805978478291956741055173204739796327746265456468081769883493359295664937763893714924687256222861930437750990757285985161594725110624359742782286405660554046422352230730819192840876564985406566740035119313805401467194536932845106726078600900909939869965648499359932089536399028426537453268949460852028284966990667044515005248099544364568436889533908711220142827614274706943609994895469217547489338151859468771577679273696473979878455480700208495026888223979180155640125150138183912900772105034787646488174315216710374670752361374364224609325401564135597596778058912194231873512335002261838242406052517638163723987077014463586106207955095714432707397769713948737128789179312929818365295881355722970902912660898985152156006241016378126105616443057970839786822162146343807272356136434588652828954790385283175537608342155736581526603120962861879585573453496812714730393758850714384660433083452368610138208870059258129242362168526416149594669833304837149306361781360237975513086930856790112176996046627144161120025489298527720945840650384812849575605630359423974493950734521184745302710843556764274093517570318570772763288408615888107818087759645220804723307562958057534604834973913254799247175184166116309164139542470413481021625784249709189735086488558770421843348280352830732336944624982370970521613212638817029057264800127798547458567692185411365207537515416203297727945249833123687030465609814458710544075315347260024445708546679616267645640908597641617397836036724488410139304650516184515800620185041113499158076910178281122124575709072554607097601151168167359652858982489552886688226460527494319353789211194137266464441496058195280793612748973473014974653810840344255075601652226528244221053081951897191211018999040685070945768271126182037840197984086108709196285738919324625885241527074653789424582355708225884668087760312249435375421986232004142795827158889004961801679343094365593266368738075813089883576026934461249670785219651440624292118536579764586004199303276133564191663569172918173921692802585305350345300748179042642766326116114284263166392724595351443848425615051328287725129148792600425077760752869472034673667987294005192425548516791825150155972666893027233249592616909574538883265772555993119452880363816465306028272300144706497055203536052845900920992891729860920982960390433946796744152811569726594117779667956433410950280066221341698399689146601323371377909313808877356313656282478162002844552658010176578323304329919839178321814814375809142484852512990424859155840639377553268103105434487288652597311650202265378681008214546907242248579627905798567742841968728207600039305356155837148977225233442271110580492131864823399537620374235981839377616320344945622266827019748367945690245880104195719072518569702594191117329142492281810820022488870431865870543733159092582130260266730452905680111604386009092037201063967395919944913184211319090759381712027679101235279334000870198914656575237326417327933244093997406628043088234679467883235275147787174139329720411556756343293933671441742666681374792824218786963562831676515307319785478105966085039789498516235398182614845410804951674797579439972949232168266971997625100388107888316882101288461409951027789591130878046616766585612941473352462512607159601182967234925660046789719538864143082101002552491773209194565736246523304996133861010511710198214542869067713162135419314112684947161237773934153548438346668346465948883206170184887892558357968823156551870841516402623341976625014497683678345381863157277015413493402324541232530824287630794467309632617148051331734851360202777250764163971666362456595951813078325276697272425439056111043451621606286850066933746544956526044783464203275278994494781118111760959738388742148913772216380047733647717865695766644659067345565424401257631650230653045828505370263502938747203976108553660054419135027110271910902873793005750658378513745049514901641767473687059447051154549144998212960899960673343862542301579280258408726440815431059680166633274225586898506637233844719940795379276397822598173995337441758168448644310808983184531927998008206214561877063452905260287933758616611636707577137606199176456794965031386779254321716930056145149613895631114154555621508584272195330536662186422664230229368857236386920824435418642285500189249623205982121872324337505247383075085257711544894200451782033067062780040829161555468120976628211989554510361938757566721404394010495373495106122708468338107790457978512430763874292932371159637813111925171550369592352780730514590053499875417925521311275711615946680020231298614388363778237890293523339937336349762119476072892895461376816617202721047286132445892097019759627138582624094720853655870594727776125629665913987384502427336707703132802770084325233490922522740639288511886182244173823755484998831409605091401759908234588811480398440675387588884726008558200700330598878290558842495201044357040832291575936765277157337018736485021696706766500902400592865470169574722929180725336436840989375685706496638555617442286162780460923778555683625193193538496568396418337696588398514688062980099255237162861948296098220407161192215252763728503072343161129441156789986319637184333506900053987331735528487433490379382569185279408006491112001750900741702813415500685814952559353978228548587214899605263999695964790621803610446942159203440748158228439967184499449815178319513816867960962666081270770177226948234943356885908968768306619436950153843911001896424050758895954596113263868362784912954013864119337829103089422509482341545564042138058413411188431122111588133836970925526931151618070344344746297475270087313997077589031317379613517613909257829499986845930178918106035290211952040952749903722279408372291132367232495765696383734596827311065542268792410243058732595174268128127219856893966710853856461902532605435763646643123020926725164338120121894557978863226731853153206512553985451549640265198001576457982973767841121021977652624385193498575002787905639528869534685160258668166444929321096573084793039259785675362188653095777114608090003220870238268280089805500381457622272653718834507345404916957018589695048053516729277061109266084233767398016738519083321473312743702697404873561658544609866275787609100639685973645337782793706343417248249060517466919914055133235282649055254442325833710889549119717408990484830557943298896570076715939907599301032121961500681951561272071717725434466143840812819980638369821025616971400473170202485278434753517358077253840174916622669646446687635573242570109846244070382655688562235093369047998257040375951008680534916585279414367914924990820736150985246661092727974737892500380857174374937180965882839006320536958081507547089654242473064790010492925932549604337027020837689874804018285093698369987055999327371851727629409112409394915673888165638169368822033417202386013280924239214976739815639530868983811072788461200181335089232346152643987137706545700676468895664579195098861841813462428700609966607881502832187452392079802697731600581326624372234859523097130586322176245662397524288630612485258276252882091455311986671798082362839915057538942262929357983450494827334256025530908855289986698316517276071831571463544630096624761992071526928036249585361326464221638493924576330392370748675713242359567318833057293063290997741957102445106073446691020632265007259858501046274474208967570288076319918474939984106885432553559667297782837094178810146166507003551410499604586181126793965900064621210757469908566818675924213507052490321576214431128959427423172591023416709512342942302547859876370280464794559265191163035022113616078363846843664336306639455274196520832708140929757310525954191211281163667707665421700540960158325640587993883442031938153367854464216530106608869060380917488016530944799541781923581520311918129505127173705298999080015349008685453094013727091067170561350843845531172319714714829206861043619735959463987221455281574267102786468902126771277621616901057649304368485167029001748599072765109873222889056740182548585472775383038042076706555032788462819483207352905406558506213179449912061984123237509648194075860157420408219793810212770286147185330817813709250653556815190271822657269066087328608643615922177132206560151352282275616461823991882692845733171459993088376294265332886668898722978907003892100423821362499061977977932887796014150732702596176408565569856074988788351552896869869789751441767768666683111422489100097821740927030561048170615698389885141243029527479919572593331948166073259286858052730858702266997005359419468453419590965168149112386764958250670463250982091057761291861772367822105414276554260709478293858737764950316918865945583319821360684100781641929174701179198391756379931094866405388281855615120441009319839194407436198902472866181690834863335440096925099484071781725524671497158852782022280889946624618490206086062334494477030734229292539334025520384265803570790394875225767009124272091816859798469252606571624890664524761224218694488011231130890415138235738866989936291563330233950561194898425791404505719491165247197595634082085655148138392276407980353076369181150884759179896937831607473745312794941888242894229818913679760325031691115853876874005488123727969309580746332530692575448271783308365111714021076810322068939725345764596144113469669349079470657770511654683819984262085158576557038421071305381920290796831494419786029218311764914404441282880976119230564048106328505770761104209784916090888681070117737525985799545107714035194435346437554000399296851011050976955959617802988105243543706311367489586296994861128554385202024169794015950934429615618645209088023934367768952861924903143570112647410958906611498322686833520708949230980324767167894982149083265370571214980404011642686705537133850741881791309352892285860270516321909685284651725980073471037026001881142626065232746915534239712688063989477720655209162651353092825098106459848283735183360853113481887521579028785791186788668855762574883444350307795381592768195618328067098240312902319284220296045788198411475288469837153865882843255368214226996594527335179453175402100905201437099468370330328582145699426616032511954824914294645868654026698512455646262155389445624106159995064563466131827227932034910862884963823814275395845803403450767941628367665823475451343492204475165595492382022636566412251997361218300261157681902454332497736066183593387661783775004334772340521740937597199169157840198362043736369341314631112886738591991034879753210784635045378292915187677782962410875530538875864265480634491659513816324778483368313063756245708403612433784370563044452925735593351702552040056567798851664099326773997947284623484476178635054168661780064972922163420639026038917908038039643847246061206578445602126066968215993573306861979001042303544946248716234759845976991732724546313786411670237601918004847326716353617322213933847358823886663791855672294433073676050110273234867442493457882918302753029704041661159633504715162753019452663180358390249156880518540531060566923064571828592872095229853389821082506661722770877588601571309086540058078914949536765081168702759918560154111639499056404087084514456111004620653957225186257035870521049898354122929961191524241945166405399996052439503379139587712105518268176953603407304138652642394333932253666023932066646845418601897611711077952436360954021852146394225988368341305235626611912988731500899704470553011178865059845057518665625033791073842812300776743255654269921279342665022092954736012603016648187917452332309919910648812744156555903042144700332819220207632126300471300440996714609196026980567676613853764497075712756203813334435273208731960060513718474121288417261604769925058945006597746366907961704294290047794195232214214530860625404800756388893147643249601364424860952339463945415469742482207912732618713173663104419386218219457535937504655815590574171620746502913965825659749391561663496025788139545451437808358610466996532382245931648139133744903458712608797818600307796493631917405907698295796061784191595163534211535212147785551780262347882450459975127660779638280622816466051650197829467032674298874944184204842986024883319776141518659629529206257074818746432797631680823776710337127170582024691594047268021886878287773917532128943826580174351052878957302814664503547397256358685210538015569642065435039157561179405589344003190622531280575293265956536832275842725861954551980606535666148730435652427825630174681676575789415911032109374292120390764832729136342837453364108988804526844618737324861777269546093867195606794568000249873795723247952754813135176021842877467689117975784435485293559411980874473015457951440604927164465554823911102873717058748149284966792002800128866216141233658806367431781595759688743462585251475883763057968671329724844174296359106588463017730439045705771745329543522816947084097349260320498918498072745781908015921557512943216227514412920642899159328238545379583293329188389626765957196225824410623802751304276838897741579801297261709625297509953350018400503941529140653525970061287924590007513267829558997836745154471144596233541651187305609615251044164149576836246482157625559624810820782421410779774814741591261661270681572260844109274032020517502197651979577592230937999113324257695054572296419139160369637563415937500747673642141752950714288677334570122495529066280243394893169738412785022348670581345908121614641436140938512178122938286933638547900627085165667220846429675931033953267747917672497112882870309620313904189373217051134932230857511547090441595079908991067834100622805323510669186306772545557316001635530539354653244218558979748084477434543826592494917146811535057060957211151926281945285900600244151498193845099112223699541400443832193137393235355145357039153286627588166196348601656314946354127551337572307292683352004658006005840386293301151832971489190977658156371400472050814318152222130529516941450444952859674358702810376304371587544957450687989425730034079413532832182979231097620105715964236215291202932368190685553687910325883342849475615573589616358450017423903286683909396277433704930902630923653666200541492305308156246222170944095504792629608446399063466918725902353625598519824388175457355779144079508672915789808750569812815763912876702474470216194791505320051626979622082889335149233217567269857323307895343656753485461078902417686443688569983172220398530444793662049186975267402950394204652261012704117507232979119349790943401867912365868945149800342046382671978347973632485467770576298980216872568178807618245916425467920553637660326173000978776163027536138534262386728882851810464222349374737645703865584416525926644771810540151300726164560761853595303953071784050749942407208120462832323654732681269514628495420162889736683362432539896955635575053576636180192752401634877672964506229691597219457800756512619120811811315367593854368999845312188094454930543168299886286033835622898331944666185232592911494851347736167309532484118367099241853820518843584048112019328808097048919208031886031574857070464073291489697148319976030740163500997588863252552556093739451295226801975632109747329609291676772262844401335432818015116193209179635261855653669809889427704462776636733630886636814044409217162180656144013975680721102308202018668641527976900981247924371692004767274857869810204901717352179950700459381373963819869813573290510151971997609606878982089927072963553050573514704477674505250922130715719315138067087654531298633985210235169359915989855616637679131054597364535895961203504011648083051074346757815932232310057029121443838249634294655744025447814350421716454363179001178674501317139238243507414517155734887718901810409622640012935708088959371951706706954498727995194332587648084824546260497060477256495573866886351402261470597098437943047807478248470553610540209376868354125746504955272637067193718037920986286381578456159339954491175053246572169600263337818096706501552778135849925461780602490246654268621094348022309464146870078207416392185137211297708882901751684646954902168814830933281005552380680175637787046299482265148407547740442029952678019991064007234342502977426294476744966333111189683225338981252741835756087472076481573667994051266842343916201694248340494131659562744136113648565410368254595817072078745499924527065097707574127388306355796876129423205306305261607985973122207927357383424928175871544204517919136393535431746230292012303632657546031247693675354520614428204676501906222041708226172096914451095897154957164433386368927977498616331464182206472092315382556944388346607851776445132636972718810568757708642778479835892193108993574660896233350168842842818322608259798951778872839273338110881176925976636986005041717247166647629683111672074960806185499757544010550613232062998072017143311424645769978424576705369396586246813598048388397059005715716103695559100207620032125391057211892628495631823048025278831635765680972009300255585105277055483827192102502212487864251034429279252020761363495465657695651257755876482641494129423712013722750650967855635651717130232070799148690596963475525269661599677975929513186168693445255530871556346786659748327283349142722214977782986784142002921726392563379692624606259882280496742303035460214442110139195088311813045399777829468228222121115016042171964970611636047970053180841546349607833384074414314900534407874092092963584857896905129254532578718749613182652035717254043427542415660951046569545206639637180227416531175409438800151055311579374415866398598069644959428894745682614671377678652598589413522880751841188156515045820000586184674936294918325151516774367095353775637662854433966383151610574318320959484068418137103679078031497594702985018047122424731729328006247231715461872503089843922525654944708244199950986224136192983209351527497282933195655383896732100453559047628213956058569998295317981097501314103037225031717177863658991514950387903797186766739822600828070122061560075119446841112218243943654218135714173785279318832315840142812303162433958947246884627495637684981438505538871655257794605541296141418340660554245724376031601101928730784812035458778390664951345895287491513870337590260016047961198239086053797280757165043825560201174749186871862026413127595532939408886973223280872194487872438896943727161797963156342466841622481367610162816983865499577660542194426781180413960445341953637362947094166302817161350173266184318083999275221971239203429712066140010157203950260564676109218129403496535944819980120569440518061647231283159941240923422788461010939510909785569058600656579735228704264061429489433000271814584421581295911245399159560493359460419166576372363836862878786227515304306937389047698521515399297522709951537089600398741544638631017203133971686000805826500907456587662750019515331016139386034394670457705785126086263707204051360485575480376184973693344007323299314822702375535583906243989430886824962285525279418500222803263700242317902958349600658147825277614458493812953453010543990974382414497656260209082469540584094747350056008874807588461283908038927539603172794079414668944966768489153649944112407182863947096707759790407759909902638943725691786093760021998923666906139248061531294628638198212735146581273243853631709147311401647851848608753447347837237010466953841212068812300049179542122178497318147565244735511998397650649323316655335449047897614614918555259309842462592229367117902339894045223833294791939943846250736906892426355976129124001113816977710271616662808708470020274665846725095959917319532835892691986627486194842620092565039774081450751045219174209532391965932213774020209214814942252820719368480988976609423198380943267820275961091130337301338777194405969145754721607352069542663180220839858058099451005168313850132605526843764339120847314979041016489666556427498829618215993404467541253751481327824339273169056865600950327882103346611378467441102908332936003939857592676818722404620039337262274953288669608924872612529499500219497188904265801273295128907825733545220627896022379877159738224077931818019113948119954414996008641777753655014082883067807598392741791691214807702936022496685286763260169627287193344833474947470312416551320282424880325268744441260595357500130469115561381708727358583810887972039363831552583732508090933343095247554025564321633597734795241723831680151064000418942790019044843625574621937884288945634543854478088138461696169252322711645898797988997108154514072350442806794893916974717019858955327467011783865881407421527997985412251816542808803766191100406053386994740655256718298472673403392320056497440683137161218357289267905524642806279522798195267073384151290258686275200739595792051606440800955602636535088886360017945797895964661898080048232848263304447177632630495286058546663661923916964409519691183459462896765078236783201552561475951865845446791528391860786276290254101164189269225365891117115694739385028624266138599122619624888309700310121959062298816254849182098347374704207420023367171057550473233780067449689945451220127918529381479957221259416691800086137077639498498955402923041351941040218204017862605080323008061954947376836531951414568748171796346480696783671480592670694910706095596206477823220991432333996842492938026561253465973311418726845853752386373786380292338584552729641811526966426876585566684930179252490897709358441760358500941215342623001383080871468384551808995170945980715889067260331146334857593580095347978378202696326064237158830037292505997106179342697974407942311673750065253764998433136793312677770587068347775862706616439250358887989852354127157859140586355525424258897120661392019943501742558693450152817626971968458419611493136846542142572135499292910180390831821079163067801458732619317259482828476414803259079439598979363664094777367366832209719623968327010157217743554753715300062999269770234436177079992692269819939286757610051749694078115852514867465374219537398508256353753130926197736566284985423456170422263767177509997988718679262915252299933040087960726233187770751727919993340875016506252315984216522571491330076358719629415912685528897206929340214053821771120464855286650515820023317255820759290618196713012959871202046078422170927283548116160428292610140392066316410585065140974252262495454872120325095617840875073733682099677290082503756591949866552328674425508860480378130789220748796368869789153497207584354837648530485804394912572085745335868251031697590607912198895341405296386990909395962057832102641849559874807355764585055688239801439405447560780973044512706931838068780610899748831121988829362913362404583377211368186870121445314133808997396050415171702201087037081808616446601367173203999720406984415832102164697120776227586157031754851206057316323353369815333866800266841716373430376055994226305844519669336090115327954107448626731881544796212466345525451898635202541391513456723682844235500351986056067778396284563083054281105302573333810891816395129564505996199526512104794885792464909625810332899748857039099557783195418833741772984160558107873752032522735932983167344913975614610196988096185666151047775116851697614385775590736568561355809496008319263511672865264514921760554004608411392798285943859372640180143531491276713416881582727910262123620039573708766529400728679443843510836504996428958089584489848177884736856974203568904186892369875919342406216143475205510318964329683418941748974092688012346670643655873645255285036561565002063738281103435059486654002279284785314063001410604961080550512152139670917470807150838253324653085099321833171639899189056631319983897356616901813608197764300680110098100371925968718735182961346983846208130522404889513877092937711711390654014309022914685615734612328089789536415400009068735321400990141843775588114396969188100652141050871132526595333976947220439323717094139442187713738122007050329781454556065837385333924352396534434764956376093000627849997091838777007468003014033977691799724716463620329496096205348560333345920271344925264086944870912165802625431946280138653662061903455426785385718189308623483837616588207043546157621612033268096687630354443965569827735310186266299855561952203552467848614404198872140677656293081008973580310014410896208927401576300913107597389471130399505142024866308940645297730858298314333422687526847345716249829689587159186704149583125015193718788289283307196468455115152068976084630386895501621393714435552732726858163487056290598585886585334606097464308809445276925121198904309990451401738173575440912136413912511196792216447848794782162743593840134694184739824205877165346651026319367505925812129884495415112833218768364259797810197683141642803601151917741567502483621224918392108874482235718954076607858285478841786996816406408401526590696785266185101473382174788607360199384157409838104433810692866421458383856346842619518324544073559931941802467893911545398105113538469100377248164154228540264721693807230746927444842308545020536773737875197723103174150945848636217527133453930705525003384684678615211999370664279047307289185451326955482353790792225985958308459797088318322157618414136569796693394558497241081937952082293545266079027784038037361580551723389208862808607289342100959346847421045987538242928273470182271566177489101568839265739348566403795853192612389253072840510017702687464393619987632625199058683745006371576016768095258061267030868783459966933133895192152890546943816747819136051098247651369101040188932540732985121732135839874143200846496112865049457336106624331042924321562749907286179883648180013924809255443771731036754589926279984048456246487222127645512285333768394542108513902466461314792776146944981142057589251915677171205393711568412377877778352440122283984751246290597511072627022556468242453787378617778522335298426892770585304568529682073451996554155238375993915667499492938107685346156351619105704652671794237292185130970275974563338174877099737411789302593179906193070150316845202164489711789512830504834573413722003499482495208043770356935374960495516182454852147105608106312172342398177227443692803057895980419301017012763183312462131312103910857380753095785653550117859631051018024594734667048288718157251391204133616865909829308074824797664612772874685685979971771618029016745336419153753137541080479652881364264332454505055035992295831330139757606658060884773243386878399500016083946938815525849156284774005411026503112683596832338977582107230126512608510789253583317296510234937040652080513255292230806187376476951555683968117408395876244461276772962297759387003533752942101564587115422163974448300052583068636156472054329138424359990431184718765859211494919426690371061421812575052829056631799222715772404731578612517866382503017006098300420302113024554197979654857133555354202032818579894023338806931058320076017447032998149642732823211404517261198498534423498524168590430407315047979866368941720191047153672243569215896973387005218021292300481632943780888605358117942395950506824958687683976263111062837555362426740062084521712889562240403864969875597471008038681383045204413425834365800778337781137366932643941424853208099303731032658047524741010380768392231904283557082149440100317804697338324049668103278590205175352285013673902445839091721125765208085353235973126744382640913264391572819686305058788774528202893465454013837338811723772773786439281360084838245027749694325285492375869861551536773240641443421716497035197283137227776528611297973792217188148075517514820024910644858586204700520333007429904346271329448945989657108831276580890653729348410367459684914822589108051512454771819175581981565289951510894960962496076565656255694388146277352540219097721730515056766056837532375079674097831191960827912857283335473108188516887834928059381638415981780703408486679845985721088890869744053015543354646093808548574567925463948369515337254169354102919067326902327731143588703400387021172858698959959393917801606417528018064283751796384809426242521156898964941648948747801070642902923379444046208957961612886789778956998442298175716014867643070476183856031880983426011731489732508747260789720033531182509960258690569580460629145151920233004227847246399992020109136099967669271656967191969302422977110623001700012765370990628444802943744090575260667412300837568644268348674078088821120305193480064685898369285432381178881741602143235664927736109141616612676547662220982909269379182878785406289074575122728102203875549705682847631679041088826306667202576481773005216423376116689310107507285823933187881796510549214877434741604972796544368062991107107360223709700553934797349020147543570155870595320439978386634016003706790303639079344898868508222359366837907545792683100560397106483705120066702873560562647642985463642125814074517687887174039471638527946088337441513339860305099652710729307451719692335168408800697017272174722263872621211115702043647670330605897089773722624067932679233308484326356566870942386988524754457905980311020364097196484935519462260834013758234773390200165054659111558194855294157105551455948867607560475106226949031250850959464873274141124992032788261046429780712982922088555281646981024373424941609234842342214790265960276676323892324591403410283335006367745831947602167841729275259458895884333351425360287442126423017659570505599641947190569487655798235277422475236774958640534692103258183328333874203655090136508118426813559351985208595804967866702342551715150457728901569028448328859876922553087858291227337670726171818095021590097207425528812363488736660495278659263483496513182198105631141949270176986248413033165289481046548311170126602514489846422939055237939889553711816332628935737379098108665298851800726830097654682321850087057597457527062847192505924263690939530758462124151770663167990374871460516445565488683488110088969219964803888121993495064336125039960954382892247675688896578708912260562102501646842122234656035015114588940502783780920291949945137459837110249086272379518908188161409764221411377120223803388959816800208016277059402545442595438907562790587364144305376375582309352616965979770395580116690510750767205923184554107591634590479778139709877333975391603019236475284652400470548132799416239551294627371061535289536647520705738874731754106696037457359677824096918589345902721136270610596105077562591368200508290930400712719611917059143427343851934124783513737720857969854867252685832901076639990754331107840006582162270093680994234421589699006405771263302181358885846550297169360165822432799266692056644228075059351734453103900656680383963067622759166876977182286048288995509790791937691224197731245886412709316607238251505245863481450382441407692385307611977854465554503352037738777916426962097991401297831060495412439172109335373238851597207462941045937226330105584050561103965242026685342216893265267984272871030476816221823210192531234047703612248231654617134827109008638426167237435973984793188522490499529017268790429548418182799166731086922712385689630433823300271716614541437160743303591759496098647138031347066162240211476305780562785344775340689876352008567994548831135894722493292865282630843031389954560469037293300494291526529441768940302114920026692223830967025835070600170639165721362931170267412859793478154515988196107349541767554456232627508908013972915505394977828496843836590044065114775066265818040071400268667374489240365631880386273233789389284448211224847726649986727121826964906165325074555236565521308871169247602812437888851291937436161331569115628243224913979267682650825568381270702599000215280917781011384193735832626016168065932568869106718206021485324069257060882797507909756900984157255454575806488021883802803456627782171905180415190634452771836185045599523503001027791574202899790608347509878212418115793037212859856891648846251978859598153666313501573843748214540473576299763468268096270261274401091991521360531704261586872953884985889179452951424563356887459758669293517061697983425323725210564189687416986971695250016731142579575086630683494127652117603220871166453498097180474895292875679626969994119414836315869409312104400284624310664339810213823721848037047625767264511953194659753281872585040612559704263259322748281592538640984565902382371565427523862973321379017157476032188907312581508476958497588394368403262644797793389469309061122274572805312583314470331243959715948878075558095275180117333042431639483766275765934180786201318341841670593085291457871360804848013384698558606094918161872415814592464595076821874337223148331286530647343674451120410726594814386212793589046216484570363321606030407703562382796427652279424396937692508076412718332222207378012580189536122436375608708672224409858673908290893602025330377441927221497141272049145307970716207010463023950972892033035795612097277081150698496286873173143781515478208927612861483396918081614847107112688570168201989614435940200321366498286859294961065497512398321091046335000518574790232225497268124355174360518494073209947408694853634582379658582154381603999916074649527848599131725602859927654967684827306202747582038341154573105109904662653310545101116991417280482755432746060929033179372801603216182784724705676615006568490765086436697658187093874134723269553148008462233825797913491708840291485777916036893417088351629835110009694385462145633321154606951009752836975791895827587455449906556397444478568238615183585421245700275382003386006101393208499626120502027231948807450951901506566519410534196681634794400319658162103312256212182484125750652341380436368895086403782910408738033897917179872746456969325125892263965148113129341317061810302187774806400343097087164202420808187642518950320915365087276057525431534462687359549443604004337467548568302797878036321543443465933853369746918780320875195828554760483874163562175501226763387142338639919811164280228959746119773298627882894040181149242333131951679631892525044284874208428993217364649639307240060969095691308456349000109439694564422203914265952030420353022484277403469366359132734372579038080123082289529063973458384744598490126926742548805305597677798095447430282977052818345915421047165607605010984404664682633260454068094765371612974798260574276121466499452475760965379146336249739058424267424901796576649927539985808193326499714692693339394344641036886031967634302731914893330867906455435281470656008389150509894447617009342776753327121515832762930274229051214469492942958426780820199811016844868810828400546173942338951655283965599979620430601543380741210028722848835728010891467962918563397788533950843428257033644333756064072782407848444593608487213115315142701744846757544725110878231539456028928449483102421592870707179958451126574723505006302125245270986928704796544886772894729851419190528578876014693300122996230518243730559251375781825159479244025657766359553450761643225210836874664240022660286129741882846610830559190876474147983818579364819481105016368054282958003059256916438156945183325337847257847690092251961264306328296596215024637636825351458750887578055542910535545555827813220693706253371619807419885320783036042351571316704920088576437595798857257166894934789072485786579793064717516849248968245363907781401612497492937911095770442901461463834173756106962209972547721997927486555651824378043973394764621333246222636952903457953397772564327467554392543503677063271838918400321444334025221138613617016866888661118804829941702944721398102059065137679917775129066533429848295584824514569048414763744496666939736770427253836072272644857850509872606900250903486558847116674512225050371917577118478718492679689530819543535853934808297394233181839715502577557924578632232744615482559215597118422680303442212216421409419627394981784436937663932165455829922790695890429720020132461514561885938152402599070420794065215354978057673182424103029291632618158791181066673568941510253642989686543947680647291130149344912546423129249347895902421826623083526989734334489892675228821935032513280311806366404236513158216070058805027288176287755661224800717150011308042643308387991947863049743819348945628390473175532035741161918188069235457783073675997755698782365851040053689200149289450974381926595081369514065446266234488630022443461496683329271091543612066462240896766907531302265485866627526514276748004054369170838953594713673506461540522142663008676816191992567834241817867756678643131629913172429593837969282893343917492497731022484258625686258705187298029208199557777706574312436959014992351388101740176767181181218534992717882210199368604461316566893334297241242755408471288410632301918424589634160334577057586766218152422900447599543817125154050562050074293727194201859924452426257815710796425111258131389151335724648469722899024864694066235237048360185151170737681726789086108645222703689716135744687554127798573041180427957962386814192164158325734633994091154868183413974635494883342819956526421935102997074536537710586082279252120928855269904503135365446262362608753874591903546004542177478245144932704995268172086662940389110080085654436984299294859840418311674384411641992810297994804302423501270413689754347182127315143133310391439932657026971321853767502804438590723563431786701044214446161117660413830516273613383055987928887470821387557417079868396367704027015636284542668281185053212164673577811794903993868852568611809975035014929654714893412821265626929479141734955327914558967530435729840450144970929513218155360541269333517697842692423668206834940314037685377778137661829547600506406144485144285153479365305104598847576073483927341727568938720069050247807905808202181242089671733087301560850506704278618639171389895087999617323550693394512789032837078241424278512109116652002795639166129427154191594667101179407601000998946460584488227457024881147022321412647782690597772013232379827150171586781316432299063760100906414853174714516923859175820673270165542966335491427217820249020757066966870245874504617724323912272532055973116386177199235209385146032738448674564244850165645128680120982943234429021617970949943394414975201475233273212794726878363110188030468703951584028650558555283556028891852632713368029225641717572111655417143168242421485960417558278841249068911591181777809286711161305600677722019586372339070545202224723153172764658430017821494626405905233090628255126325197388207343578906592404531699477696632731036482839349396950987358151738427817403859111979229694638265402544117991270323194863435120685024425390964888652611126478017308695247176434793324845405642281516029560044420016795064270816013132991579852884080757247721394595167281693192179641257481434780435552933419303372995810992508671319862336409177954574762931511820165134096491211871905382457402404307080051402378891692919168752591741212496078963596372570335746112472824020106314998153392008018243145306644200229580572893410833516958968686245086179377013072850647799072370413755698240914850138419431479245680260733184022684321833496764720253961618578335179579540965041540797369144781762719855276654824467339814679693626630147915903599241807049016608517275795718823938764216202460634019233812667129153269265681277666778490565377944731523429571098507604492864200001598198721756356121886152545039411650932669647614988426824404963041227360716430031662320809473327140029100428690116077342783553297563471417873636348602673589178801953627156962935216587308026102291156222490701938615268791248267366020807425899253410024185188228636685016418132792524653816172538875024988118669150457240928921406888036187068927622909759030736088626682979650379817460366269879233781041438219732311438313807618130470449472375733904526215134750247728107695748344965677409256429960617141524642208587402924040598817720048837846517949276747545765349826421160647493274111324521559470063972085696950514887459643993377419852603410074066766579525896786956011647079392697760547116866497924532153553785118785011779852820177795427285348337083721955577377835914922574087059707258664308140422155403915486632869195149380231105391274959979597654539259911028916161342888688847400123524634778986419875462428093352050468728040867008274065615903333339677957916611765782851164160965138270325006161659806300976570342890890581761564300114868915738236140843635323273952682857210856610669329249645930998629615618366749933777768980235640104212274414020889931156449027674231552589579369365653421051523175315184536163408309511384094007498921171197202092117234287406335264167753755673666235044001760192747938313988105537444692633584397173221527810184511139540457251194591357831508932840532702956879821391312636217083928380877731260881139005148956211281068717151336075491618500999039535087335848771647617813615336709472950686573789492480665852501431852634938582055433505818917918090900631212503102166507818559121729006786131768380948439935212594382701222431318998629297321709946891930018723026370128404290299617227500341444129745173302289445087268803482567170591094924645707151928486836605587627491958331028764897264215690464471420444882668200430810687032101213050364487392817464812676959737241716391170111632478930081169599290517603085584429922665806731445474424736159886149067306877885363213871579570098676062919651315029780791222277339373816120213131874693399215116494137161925455723382878351038376442997489108780784180630058157497074836958252531705747972901868683422142182946294812312827538363838027151381097761993320506583766814066847398317321269435625475231712565450889381138462971033425506876214580661815686416058846933704936087095027515999030038387130498816317656301103687926304865906654349477456636083228009920579441221452727587987813184968359348373442305707445164608476269407444864810950685829207494377227466382975123298198535985808661347192601404944471206841846984009913643060810278261754669320645329584530228919803814624359976536378337737587098885169171475820408955123507472830017385715988843952769522195250589659675361638228593861595281581134739683281616506148980718914327856193303489654629477568905155016084579023429854673118908233005593506569195318906399042639241348036422157536341808161466735150160870946032643801076810472196813428952729956086352808150451510736258037252886698588974501947678538190979823562313349370383129940740816748088378623210010122344545567499684949677528506550820739609772604926549814934827739621523284054121762153748909173585706987213717617642546269433293821453982727531719886565280091234812867809706078468299725061607098776902636173521064238256038352561909013755649352165103334012133100066357026053554977017409638529118798378312720755377193328132485863610724624942750284921258107304143659892814707577369779649388782043271372263367983972894560260408567049798964097555313401652583836593979910416875467284048486324728992222712468184612620893449482115130090726079095416768778064232584738261823740725780833693940226049078312813731020974050605682728151788712951252618924741417759282802017853070406631121212519647345611631876977067182926213998648928142980041656202909992708890874875835435980292344584623247829591699744332371950900332111050878694883316240981723330884524354798550477788362441647111746268882547945136915123832207867114125034020125829954636736928084295899370742242961600593307957570522754665685687993041769146222350786669161449544645795955674368746222319240671988474410781916468326744923204544465922025144705276827356955874634794668033825316256414569094790844069679519490996761754018266137425515137906029528129082796786525314365802466731289947370894526351248314626611849443751783213724183167889929229879908373336942702699114971148993608074067173172408355594781420859857854088608698324098779336158965604571661770736412698388331218575902324887630386244078113649325429371722077736738268824157989704574995015716681513154974199731082193569830332259425013906941829959489284389999471679271192304552631589691700568802045559418615239553968990037135622066295425387281222124468248781593439145392513897038971661477968021657281794339442746176061984218856533461015177495842012086155522229530789800064286816553438881831372039707920096230766061223378476331967968896879844251772516486479119379805969965446084766074986868452622276169066806834372431727045643373136657652092779548272132681516978219914440655264135749611342319292396413852890631661725138198593235853898462339826040401621007243983746374058372394966941249436543101804772436526490267892058803113494799518143546721475877151531304639971706257654504619161784269852876668449171938963743131399214258400720714662889331015963397099755839832887833226200983568736189170993001308947437719373926524317230526238927607227839238374870744162764717929998980201463328499662039992969115748108011224321348234224536693081304268340758815308237185853387423472442683500850871914109417640773737086817520106481313239451653452449203982937383136026560745890056679972100694996491592585019369981706351380892950268065721955206945239898023368284512333347298360442459012139377227994496743653296736228921056644167246862464308755002968097510678941832685981474870864137151988259436371740736626518386967388570695832790848496132203132047800497717089693727424909019561650309695758047901558191001831175974922562942418941804941378947934290958239867389306983985216037753908267709134430953404862833332227256099211123506127251310292821159263879067899676934175869928393333675928946560592770721043159080541071715911929926129927527890296671797034115016748479653352457760124408507945340037246366718188217054006968074755667150585067771238303031683570270827046776378024383040309183492646709293757359218262727976312517229480943348130494750458308090312766763917017033206031847352077759517505773075580552454185898975281105866452423226002734051258424190665173330989370785585789228041433403962657193531891880629080309616647829577124470043665665084049092497857289794534895113469692619559958289489249162698941520995428453733776256309376779515202639466857053265819952053827332123495496344071944873524690614304033963995214322679303286410568322342226981813649582621692891941249792822808406481186482119950781750040579910489923660921081432664091288248823784095393356799068517423461512147311737749791276034060169576307545243700159815081410215365079106028075653074898433233794591482868517910693085977012797417482883056374179105422928619438911943293129639405479268166833027116754670721375324070133735941670607476252458182325948631789944598901730840684761176891891057959540015134530658022981923416080293476028720865433770060555292721521243674926127877833716783759702292729013638679583371240879425437159196677927426655778500100768300941355342871319716441877551687690401619235962443783555487057002134862925411935791038568791142628073791720458453961826820090471015753898565587952491733078815233248842434805666644443734134912904609432838750638911047659786297178857803423574521538113925914677632351684933242468832828219073580839540268720940496884586722692590304756081210345805745653270167875072649268381858810062869798222450542897462454606607506303849546245840332927769301427737118446336046067668863295819344748267786819618062948063235158563502578261600394036185490196421342677230299147851757893039751895216988729241291933938856244894604140076067706709061450569130133659814754687354413433297750806970759827077396166029646194926323073615250068319110786470676345797602854839044275761231996246315349398343348173807034332910559244960573915823199738190150273071314405899215604742112509898458354026670095350907853850730507704929349668151717955498607154195954034773257770326802599750923607685155574641658306167324729045705979396353895614633942742297568122813483139123586955904528703977408265788411565764556205852884454239822971508532092271770450384076371875009877686034496744730525719990433265659270049463438309112325636736142196878861853997864454165349719155942585086726131752265739894014521072069528842037692214510885867157229254744487920104725251401920081246019241826168121817287109501073153612257228505930780944214588863350991526963615180850731611126773036364954969843216516118738717274015836468448395364539338242535529439139937369258343978854747685429373101272028765452019674636031320727713018618645558308532213917854330174040073483216815827848764915254552374023609048117569861032709065220990942687524811495874589056531167178307432632386866880415405565035474492772949641297121607971052477312794347374531940261254101006914270206586879954799087231096250152805896103381295157403274716844863029243803697518131715810007213895909583533805732877070959423484393492972400038509464134011270032519315295215820957576897842563372968395950586848789470716288893687754677387869200425039036476982215963438546045623437531159542815635346773355732823870884306168846052742435753164989970589952199696990375743827315047557110541867642051873331768882296086806260505187655925128332665651005721791065906344891397417706795512069902093445052056127107208844263387297093308276164736549250938152481404033334762985596894185187994852284319307797623814796367283931115975097153211480284968021447923688421748082571438922464561690276167462432871938244287543003151606369467278371525492522048459101169283369313805454622192546881166352136157509483450620698188504882508633781721457999659178683832996961215147020114349926825249557868888429538461076468387896589108842781678181049195166459196799674526075930925592998723668733956659874444129705529877495543235783418451421942879712753850325339757920963654976256889857151071689275618703923630147259044733688822860849990183359633088278220659036712162691615817403429336270193670926730100057261839377519845850840591625567658296463573547149259386874450424690941231996510994160771848624013498986139985124296549644299279325136143849319730628805113965393630202750175625320598852604300850807889142251281599544431715868080045754523833498833106730419397416403026121648544906340176135722699751732252369928139482123226669164697413069279338005195017311300119108546146143926788422343756401697586576329495102068711516494200332847555554042042944845959323361553078091568264116974613118118120642210803076248363197577937063651740263491126852883369232260845283215639116483667779571890793119813762816926174134677907083866031571473981042761384832029209881636606317859437600763742617210685602590084031161719237402854003748120395717411344528013549586481250053279499904124579183068656492156102553518911017589913741925999694282602281619758274364054333855850487861194111473066192442535211848146877517473394996634658791958068284506225449494918600380417153637778960287045152198688718352605530068889074545745066695188780226306893744603298991158670624411790663399370267734133189478246292922698736661486044267588939371725139267465182275654975707258799714612215841405960522695693998955486901006345228718417181766206773743706106119607382503376640407955864177975204962765463782752172539642534183060125191027951091090036179836892884386752391540176029847021292860816735090110180383952211250731873149791412818727367629321847023342605206878811192029022037576335094458642042517499013728284175534606021731181447007227832374451762943847395841722034538644806914547336633765664155027679054664856207885170347635010591978661269705502761419854983343657042635598968320596674210968469234231113389195573152937333835502882058013907018808393565646889945760605813435186119719605881075477967232650147560444883288945450795980259189349563427927610589591669173911987459010270928186977995360905942599344389643584376233511800142226817366469375621406289634094053555063126348209522636092291382585560190015176912051590724226228470887134141388532264498717908713913370645734281242566212611911967673460879064679096551394136057419434095462341366875881076691551867717676977120505341347026466403171677795282089688203113705669852874535379036935510002828605803145879316781335526996386697405510364176983075183996986441399775630427794833491322184189112409997732363950636614879908411232626611368609491029224142535016097505626968909467426011354746509767956804655603865372151201295221853282317638383262426155084893759017373953003304491039025300118323200873141526075794069015077428543066309593251493753260257042248803812117963022459712489115357199259294294348434401542093362268565614966228942811501214902592891348442510898919478300255625032371704004101704113089151140972123119581455763953260168896529073130402495128321347712176421479422613128366566035437126103782721678275139282552469736190113981188213407774564179690375480013334057931033096307021201938503429460734243247620891464742379338448583112835291392274395829723452428758647091104385321858304300823922487399788570782449834159493356534695599714873770121620733731591958689261747392122266218294868341446269567843525190494477010051870560496654806969111812841528937993254338500413724023036048520689336884176335013895422450590014459561517153631262140954659851978429149811486151882954610668450970568235498037655758937344521698557743021507310494194024184964699590689077342450772252774529361766091081425652592843025397629408285142996476818149375329269402766162729913421068151330576854865539407282291156928377722001766040107249485784987251305938243575802506811182174351126594528847970096632101338576038734874425633482581044054729350428975921049247016819470286067628275174000381847250182412914614397718106588188665007505040648247343220100536691777709535270740341627206041105413495221717821842061004819035456717824653863987306732249311610223831761795868050612528302462012572379518670194365473755835555169821002169522587632158778689967855401042888210537665753260015749141547538426397904397056777612224211703171895855166173567756383080137233930813810106515001150688480867554635398290990518312962058148017665344811311081092654379360259752644725874269077337195530571171935810918542524263645167271142228043127148389797945490962908080615545422145008784057372780444811371017627097544060341118433495938427680694726134528809557961753563294143302317975655955330008844990177726126709748415099593358025743699782832867304222136996778160335805096422814204290153318330225364155644729241424250329427375959635394623185430124491974881944355689227429440825660946007891095897125437384858036789925272091772690084683791022775193816349134796181926885967031478636279665117065097078477614224229745940563296812764527804796898888368685407963651581552096865116717088513370537043062216239445092494553367727555153110791644127107392973697040283801403771998543222396908310588041170274217206269801538700744908955902765039715741466725464640585853984896714011501924684438235051458673684193820721977736087033663208969736158907757818686983846537805190687027557273827781114483104975109681312515986264120117907383325047798708372738374478324731834059853845265882563976329327773012236333480730027851965151420571655861239974879461103010472386941040273287159563999690402994587844386912648164695702076833111111981584685057275338120360227295235016898962668172882422472686637634911221199644967853384553005165794070749504298826010418056173200718200879496968124200396974188246601440294304526001252192231660795553196622094152514195132520745970908446168158916921391237101235748132569280266137807539811954136195728055552481412527017814887746617593143846006662037895863630389246032826040616119061585263984699947305203502198471293539452160242076638984028625923047631380810323744035262090983124634354067378115142154997826218888394381964447426167210640519792108292188659773744567459469374400120349043253305447435706748590794264079736968172435023565826612981303641593111732330956475318773056842684816899990857183216675282436680099614835225648294473006490728198898513479490687137541676402990293441653647609049537055684697844747398571413940292688578720255757599796761886854764279135077297176514513382137119340903452054081066937320205443597711705729607256275859470485861289800115032469739847976301642204592836906506386666375804679268420624635652959078044120477096686696738111864158862197275910530465176817392751998256000115151068864904014435396127680207198838112098021197610970495788094000520068680905961610760249864999962302616766397705317341909477893432701208464362125640950760639369904363606062603233511294260470697187515174380693223887214696118014069367779403558639957872952430474276524205277193991310702191766619904031646594862193960814034285965483499462271186953595754069639137115715481947477789262627428289840370647639483652293316071950235886675872455744045642455554233141934551432385338043096532997808430891847841792697165726780336143632065498483689817506507424844055036172224737526793887883964984177898599858619830293609890349543334858653789109759697695680523350916119272127506815829667450182894263821983549066613615077846924714855749295481124652483529370138845056184893796951376212445184010018595714424830516077620461162536425477167720137453258429204831938143455943670462816121267993493783470973878302752575548191911330435316543361679202350476296508310614606781564977517547429732131934015878449414178105256205590531381423288480801340813156894430311445813066452763925793910123348867491269293830086519370047668649994239466116283854064404524173508201462164046610734270594666233891872107820896447467208605047189503062023628523425487657016277188150188924580404032442689498721866324032207305193835760920357387329301769513098916342551606919745073006594193273598013078448456988803864049064353895110141148282148116400521020135759519565475348800481799379219535208965675592388240386381831736280198900609661011349600475389909887184576264380950608088904228870586224905920450158618276823888798965067698607582025044136572075483788994983015843643651045810532714856388952253633806551939232829577802933682364054734091575319410329907076872240623121191413808233949028406670496439002714284329557098930403194096196758807343974240634036340067923010662916350062900284483644929381344937790414224611158188283216888417656314068014956648599099738768443367054639716828636814084381426994497563782580241025754874006069199418358723271849500923455940956007336005964832451112717808684443419550949375783341559209006430469614363882306592424441465234880952566577645739989911609544605004335884873906562369123319362200223011376395022470782425382991074439065332134728680677270263809427673976133975900271517786770720189503058695178993055782820899329835932569674465991290004231495339064840948173204063523120813829221005015160411193990216420191715107838212380192106193965354711669674008747638175158876322385624956028955090049871206327403031097475657746187337130908093660977093429256795563194142350856297968652621284063526317858901092660405187514313057024476792538336848682844664164251462437807411967323334333318265006164640771331028374517427787103737305235216166977817052406848827797846094585576582104119071788683835182845909877921820348843535014815533747686058924414587415295371031802515466615407967278730900136330165714063358071506788731061161587724380465981465583070038665299065073987039875027189247077676006922378697330878592135887070383598483232294697353320660688057234382103937301900861295865674854127867095344701304172915402998472263271236219538824782670955617496648125446154502874313698399605717870442637316991773209119485554670719470858895956600793100842196321136386764643739542823432904195062437918856970932372064840029455750780334751722548797270328058236669617792992841162609145129557975197043863615197968740262173156116693285179766288132032563885464671876774374130808599426768637861854998296147990195006277191561391869283998345120835061025476167064407078785752999626083412248943783534044987740499957375676988841546557202460480424685574747244611183216538420679027850454289169984480429841285105607086164722449673422127028520088594004160585925398501409470458678454054094066032618106059887924111395799848935154690458973427075599018625719838887324761822282556615823742091971443101399171782217659743579631081214154467084237136175323034992732415364849055639600173715260649342436901808268151607285438178272973681137589951119419100975253673346232941490371963802866935616941344605291454430539077445551052723833279622871242799538610882796255661460878914935666952652249122824538160305161627361436860507926672151159780905018543337171700132869358329807802674632750777332742893051938507088676567345097636238189026126890621407590992221214531319569773768762658057633362704617559933493201736920920453343932381929878648021338024255253556758617190447916711070402092349520227860753024889682890559387446562547905858943763912244975976920235772923676936507405908008356114341344145842060083363527935946272207547690855571246316039573753389701340500410895243950335859806580377448161631211035994954802230527261767458099221132897214388613749575890538352030208725115878573601630710069651815528378375771659043805183715742287314858382540215509117203599307718768319751796905140807617590573526665159682436062272324864170188475665193182722802606076384717667470532263539025688678199056541636169315715104774551226752885161246816080536992306162494052230122760797215905014299411826957396047232514380814667988521668019633080452363377960361533154392717384410445552441556747346336886934491737455265898827374531771595434055647617950085929126441541670088263402058865533535403369241543401757203248491632249863163164533975280624005380636609516304097260707344340370371842661762073011045124766590591909298166113243414841517994014408949754513753277276178359845950711182860669760724380392589220045073572920399768780037856009884878429629960331357895824399927805465457232468171986586564964086182382087345627878663727497887285537724909767186274699961654609666413227215093089039323755996738618566470105833399002669014084476399651040135134323531227666817963747089257705176659946073867678947730745553071881854118223218567467542606360190008026383810976804585936872705405606681881601033050201363058503220754326353656016709880085466541850916225439211987323613953160027521830077290579850335759389370671632588904982380060860953333148200830242705586344496451109246190349050442167489668314347807278361519226684355322709547255343823840257401879994601046725919891971696599796087352163020122447857657223689049638737560620430306453498862366934633517965213246232504963176462100640562955958119907823237436739708238996701973115007617319973989511361517730948310725587060748038000452696711645788201812475977017269203624705569436696547448431426940988302161693609535482018939329704750519027992094562833494831945700233933464516442542652410363314369158369988219269006489087878234164393408201121878390368131948726056075306305681751173414536011556791138432713397063464238419268392940451584958788530012062690521263900272438304796569162967827235722780290468026042332118506748626025410602347428361116163654531419360337410425935063904232273472765038070041838371149050532125333985404642865549465411609287386864866422359426460361060424872629473113638357437081642810360948120054980238725611288436955796869347012177543907384209739236833405068672918897164310934780046631525816423202170115588995560458727341793529855675147353197249569128186442533577791107542458738247701970868753911486178599238606710892039276115931698118416166595154322710891623533348467509669502384499695904693594156594907391480771007635083970079656079835927211720079812534529040187977252699525117702506364514100985607911364415999243595703226334810063009531293307422327007295201917505287402866969171071436171700652244950457153152609348585279925428593428347980949439754032475629552296538949136723726036396965244949858638928539558404295875920163364679694653859288086606754737036604367255513193765843875782195681261087191889451679883802680512189146954910528589389122552306857198763415650140564928897884319015398613534933357291076954536162439995838403898769497867375125306159804404008247046898336919999942660473055499688585721432222670425869233619194267858106497266065837162640326931328786378540949629064954632006659623694498247086740866051042058446826862193735232646696689153799634256555623111263981713832875079986964308343299831362501622419262486260321446033457524970697591249902865502298014787644559225426473121974720064326543488969666580090521968112236373541252162284167698521852597180212790880763069125180153468182898336919034183357935123227116143542345712061700902010027663462031336055573906237460458262995887415761307526013786937277989381560247899576879449440360569409090077300741366712956980573774269806063636272306514143623037070412276461671957945640058240786402471909362662572162379233805157096201518474924362078563806272287777906869578240939930595008572325240167236484345584435578522320389036092976763474700510946469220953820488350464260373347889476071846168095900063532613701153958338337482905346463519166450462740245923475688886344256713397746157780096124018558070714899621820386165372552828987180200475954787514162051358622767021461392528524374201620266593861190854430449204722857962844692601941133504507332516655567857926757752669612443944512744618615777957107233570310488844545299908502517133181833134919499232647490598745598681896757637783344668250724001694942111109702745810931576424817181556777811051659620495805038411152129096692594757581230008245350276553426162339119094968580775454333577467734387936592991411584376592641691639621330753240236327684785409908907676545213434069831226135044290169030431233892937140975896710474595018793736204089590816475432313329216002112069608526295985473812506364001237696843275560191784395224079008166355636980987980952055389826703014352509310980028183126892288962973991413873331934024364205457220690452657820540906515215156029638389053449159092423472941447236663864143050707477268090041668777105442988516720223582926328195904855669073188160816919908217974521163100076424651788595823708871944211883538959136017786730692846436553219992381212703802788900121069968761702249833034625709818175342946059229116021370154721258543892028988039372615378955430201044214071641660484674662312200016068508527540280470992327227272556082033107218216919719803575877000353550140834421650384148385681208273522367916358859865225089796384674638171473448525680387603704107682242660014648816149708791229451075189133138843372592273174724948378648778205262451885761423872630163167297782661591883665379528978449896895651705921846855079562179865131682632042789960916286009125680661282401582604564581515092925882059327261233689880630953604962082804322633322986000416754892390975291488460151270858452111229330095221805432033533385729825245248056407213523860156898945796410260073933102263686348497731770024170684153045287896279429644574415776712811060194714834426805316197665003383553253652210378272978456995797594612116291345239480792215869204082801075589717569775815908088134663315181836728657471541686631338881795666585799247397262305564410307936062651380858655570942973344179327521564792720120679637219049298263152732148684557171496985979763074858462017223626253642507688240760243707828449181646449265952673815727675109846174802452457846504102108741334656911619701452350146017533884975990677302331401281344211991154070504851672754789512470196068460617579975979005943739422912752555288640062490592030093811413613511623335676587545215169924651646640772914644605286525477605857307629921045748031602614669106175457897368032130629269075637422662638560787394563732136132667521673999232758996185055049121480499633974801613216461497183528582053338477316349626893148447279612728027453626043499934743874039418258641390021595485734144129024147734876109036317479524484596914504582259982499300928316351418918660570198988458012372755364281450149639086840358647352767064527995287454442353333051085541441324453533676728826849550339601443469815714633633084249643924843981469618639423966283258392089959668929549980988492279623689804473081780957591546922769197141415662189986327259067320663808504324379778901240632428238350774635035664134361177603590033559993367835708729104056538052604054364787761531759734811305334960550267990354863571724345550675627092359115814836703388029478116287648402257703139382421713290635495861589385639819399198304392340477992773572425705934785603081301173079270446175885600073471647541761651464012640948824299154925865235203653085544844244408637931881878020580782478582142323463118103123847367119042925525037624743333517080939250843064297140980595745475512583620645210707269977326858488585139087780583895949153948139183058332163330066360730079273898079101587552681796164679043336619392374593237139817762644879952422337938039313197409906900712603561865623015965330560442261053100982996145927753518086302308540609621431258865545475572599710468803428395481793433879108179542962270534811495129971541079553129210606728273425440793551035310853742219179242276759808070333874169790091956680633073004921580544946769653550274901287854753933106394647317381776854483436526215688724518019835024841219478308981826089607939355507679524537969243897673151979130323000992912595254918263392881292041043606846295957920849395547967713095271051198910902664282255730269409300250240434857650161732902883308044806680452632317852227424116382229924753603761852730435156420115356013015625130598551925753612306035350728308358593821354325131473192393017449990020105448932029008493624422375738273766786838079001680767168942279282965478143548632303050806760862612158556884687031862879743706644249608599376115280965300118057645919562463726188161513523947977899128244100493276484920351683873762011252428451623177871483847226795465055173332051067859062336812472595904986801995026803891423194365783925454558727734655811467090747910267973559755246864307174484735338326299995663231834762777866695415636754442486906545525734683842899347854947751079042679333178837234250299376349756581991543475738767624853103322784152207094258919864179655926482630006963019772100347539313275156720970480713197553140809284234161786464647219042004281234214241546243615416145469489759797503872892981723854676134318561146487042780988725294266914687251499547390928099064976348902513862825267478416838291926273297725543694494131594554296989924597997985579416960654976523874775935202262011103737546723747283225520494230836300869737319273511792029046637775196703929492112124674363601543397642435135446836440566675759928984045075760551532167669278193945614794770011104366621198237921720621102220589775469448043839452177781585039220273360597970776520644079261402423576375609286696904728584854809022755446912826604501458042473422380112397482862302760791965515899643481731046935254573504139466652850372329467334427742409192746904531022921606066825636148570548684772507605211021532092862060255428857229910583053729372037811334746148350794169086509368770068029272566300233339402233145659470158553891442750897357624299567417118648647088586326086821675929696903415201536845275071666393472110522318731177319189842287651811666936103044370654679218750663103429219504916771288580477706076342257800240636107850155275279022706502730014914278957127709493799852525448107205346789152448299088140661863864596518879846366652447034515669515132888235958035479185430722976712797498567902160111164498260075703319230480933740488328992641220082057938064701196570592457286009682051162718460059490843808937611195923507297697665726898520820046079009932432246103966880572394152387644626889926596141711829326794251544547281242469516841981105240411989572888645464321644096215177975224985762326417417094624972718354076631854306641196042342222754174591909476021621379059081064643151472757452010260623653375683338605492934616623553746927001764291940377667162822790333500173582861162974990149565946424453883202634529256729825684325946317971559084982077986392159084078292338930303638018133956963263204278131310320190468189475360353290210993324934187934854098085588658091188046583627140296279677349623107137551105490245515661019361749665285216135261884207407564927408197763788358632162077494499820517711378098354374141896481283089324077005856406182597210075160978940517425472832218072291035861407926867595029036566138390871096552370113245849205316403745729606471636811241332504943101413826617171309070615553841341861784192048494711370784651109379151144047650413425078410995608831669188594107431611574955103406858374933227871536179544329570703730313492570963147638959224276523741914458916756621067958878949913490629429782987457768185512531186369586425939902906596242545333312291396788763415396497785329787382553125928391619397177991412840202025876333012903758822618136692029437373238105286494034153798644030418670590181498561220968102039466753546072720821829971300061723100433202312812767666878441201792405274102453179756385261490861229595731589307258783315303613808996388980783938038679542461403010437976953798199361235286324095341159349701165625548031192263479369082061961331132952468659261108032684303547792995835606167023862538976512057956532133271345270911882568899752904858714392779619751567236177539879142006463313146691501301361530541945512482381952426682340840020290405564265300331460772286237777872341595042632011820663478353710454918952001492236814779031492486979444541508925380212175750584147376035811962296318277248007633072581431259252942887157184036421936167670236784775706526461085402558454744770682132520938453288969329533534581885510247778554700534392345743144656255264797495629366065612101666846923646553008889349951946444680875829671542982564220143292759316609619421065674920287231616495343713583672437486905933795128408591971811314209008737933339267957710625522869608337220536775840740731446643699848170629489950109899540638611866214479071304720762204242344643314515503398885427844079597078020160357771172739552858393107925811043953033667009343835995998458072071919289299277510959514992059683956541304443823237321260761491342622710895621421352123469044141026129160824557334177576663908016291584021282930827174375323468667819514470636228366332034428522150844509128624800253655602676103706054082539617723173739291932096499976904580885366688556226764949151528799410836871567834960696814296319586017964422132701102713150800202292862377475351764359160774649470851646398773874538092574765344920090095608108764481303272661510574352246399607337447277762511719112255439998844737681526651125756661393385936607429657987032522659025559308858990669267347101400252781431878761787748035255349509222642285797768288290130666581411032473961718571936376964016548005646042505007915318992494319758103909605017793176649661527744928086450345500474094629870240661681407644811722276200107840191517727629866992561980762950142068281053216925303166936974094757208688116921428001538169699025346204071711179301043025437256597330559397268050737764019434353445427659762653007335127829539559331738600569003064359026921929707198709465557629053339444895417806231124241568052805266290451238818411532930152981884456649654682188914503108482212417698169311317465803675809284527187051768610172423774492762264834799934699158420094024275513170257389612159282094694536030476742919144246550503075491635254085799016376257118061338858293252906605065614643638533397279844816620553646742018623952271010986586084528201990342074756933333931159147920003972453288247087065053474923985248634924873654315839589851145519273232119752573431785365453777946068621088356851019164974233894237436550945119936475870503328155201818201516229074505314757905749710055307141701141036047464185040359253584159289383363865805569895037046486977367360663033547724289852555833072329124317211645072884758083562039033540771573740398416564481420283872032280930988565576522304903482606830594949722009589505045277811393651990980009574231964064939196259628776905972637243993279955271245982911443672532045729795214845534616951769536876117557959363872820099860368847339502876415572361590643949222797326745947000069179722584604595792141760416997416120771189516541481182060614708877308050383799894622697177721065873021338136936662263895052704049128315470287725201251321504137460149934909735916412181669288178741411103568470614164548564183426463457812142539797665788239303007718851054422691075017549955870959943825504427880244343535458848528488066997241348098937646377520067988762834289880023176723733243106245708472266701523078275991565907578891170676215185003863661499448693197377471039185427661067639643664740382769815988284189240606422356525935480601645143598920177677215701385949953063817615064365309283212505341759558428888314326026865985004240205802372003914499511671523363763402001378637592606180056775411530236683368834692881056538506790098399827946669124305525689631255062232834554256960049789482520897599088704112657487208569026684054750262031477395841077221928422058906993042716622715744526449861042052718963227564196294198258690674852500256313345192069379523887198732926109455432156742842860138611778504609742935404470629899262425181667322319467177829239226064346466583187640822859770144261735646179792974671702320699899281695502659599738231614173189146208778748720309985838420070176958134837354623184568559334057537512267695016408378242185525430080073171122791544053105775816910548726311122827841308975577295343641739132692117345327889465993906105286271782347632595644560884483189421399619122992271040311811865188926341382836260666411470611205064007894591517927156010143826263735723792769859438060450918443804465049516753600180597683154218771101092403515038807025947930883147002942917153948139787255755314005852985397337085759364849164478065688210751029169898554067619050816744922072459726720890733138727025112051578357003499154657634497594954536076415052272837110067426086922388712814670598840236445993076350320164492458461898060484273515783366001549301697213905692562932458903248711902560231060067164961163328297392861045206614816291101001953349685528076325455520788079840506092719714373495364759890543097712904247534431337314617716393417851035836765848912481106463211569979722044770713829735558471036353303263321019427543944395055117990483517338292647134770434197357135809535470984860096757487432432013702390515170403378011651718171848199383976711706328580688361625366916951471296500750744670286091693168263201737651426307098897941638819335294100551140902256238689325833528777751391483873309083892994414846522758174483077205639306189801421518229433830944544371101524324619893501264858964828392313353164085298335660713928830030221184086158953727942831833846840955099901253182866880870536265762414797180225615133429018666592335007344527027687897329289472365534745631974302280339476518987613220007727738655847663937468124759033234497625388169551394043985115959630440910627343653803768331332151174024872122496535811343081085519330361973211064754005281716178009150654066221705385542371274211068163825110407511640009753099601841233694850926687840738917711292423707985208279537945874308633395952668445973300332519964206735420704278309294775349422749722254813485831521062406230596718134672608937169226549905759367180303510307881525013619879622038897996896982225867803525005860352863245244069524627597246357039671796096573069982671419496845174202112946887752437857941552622229720077259226865561504305475894015281319787914317291900326978409720965347826166409426973410659821583462372201562507831903727471925945424292899688826782145694601099313615720112754260998248631477013332268797661377841570344522762787750963417577983961155399239814262214675560357781431868207136558552421082506192363921599864863330281693960712036331796333736616539756047527418724180796143847660010642062207400854264151871315411937599179806722279672693411318595065335844188721243925380579664619500402893483781377978754525840036804642485114772480943451726253974623041608239207901436227800299185115695663234484289354622253830204229976733313117663013410118397051097629694538424027337605115063138422581944212053700747574149904538023041473715313269034698039222371158120377153849958017753664032817195902967883303702643802993029845105136009679248425692904527585539082603589169155545114725361858841220138760767967505792849922990344913193565666111525062208070670157699665310190329775082749692094891896238224724910054052503920241309679053848637342290807459566735809807544260219427991531886093150007821049369066970482162280344485335385110004604498766703402499894227295945978475894906360665119105459358296475690047523139181289532456781079859661772006365341685054238846147140086885517654386932358452168131748491819124057715260069966253827083753787323901632779940522151781087801508056558698363348688460858770571383800927175971323098080485847073977268202525091164497136845254926496230607527618744429119317039857538900147423533435609715028066500372992228021633365928280240261521775546078094150017351341723838659109139006126721056274983139634933991985942879550153545076056354549363417019535063475618429150510281429888945858819389363552140337479296859107345992310903977621343176390331832050133758018269545983343375701433847035196913197904795085908459276650449728711599981600337820940505355143024680656428967234216922439247461881317871092717172279666815341597502003956033589016856461933303506288250247683703635686253333036099245504501669827426186997299624297692106913320082999214341534988275117834524637361134888678398666198126868829265723149319944056946297154152830492379099319025699124973903255011692070613133271588629293741384185719047600408542917929416004910936211538652405390851740671731920188584554345022705707102264307036912614161520857375695459094396339825548557017311193025520506060543600185757553067757133776277734762952582821238989654658980297595253782515219688400516295284062870109709995959479495751967572708850201140773033224751550593122018745549811173439575209465155854094836163445059133251439183117338074562772782137234076884852516357882153686814109645663881124647424811607216456430605641078315061408138534182130935290570664229706534331793061003254942368647047043122861689448712595764240064459277652038135906975885377601299489420940044569982429175379213868638372544451650288417306580495587554295109630239552602221764714586753677270962849498768424697671405348355695576595589519077718134320854545981145595378968334074358481864032875238316152542597556445160778357285981435541540220027860490822059771883513682622902843930719140276683227485448363492269788046066780816364682023151453304454386077134181693384777701425710016727472195245869988289287444343089291335161089922359724681074729179084254504424523070537045475642555337238882907717725042806830788619007402166493583040242626625524320498857892093943912311826740061578000180429487649610821231291722486475797095346933973900055159899736531236644562852510181839990038126081351947517576407112759706739373745558730255171076538402603054504288311181220548945852413945894424011501352941069354924259141453887241756211673973765561363560433365062267820589123610226633816235480005903076678891410505504983357808631229937065226626452787089041401647395331408787338205143470719341465245952084795432738599074618749305354972328369385681991643424631672132829323866356583578879630843092833815923199722168825441240011488300709158281487325923677131333439202665499448464291336483056332119211449577350279017296405043266643188459870884131615151835848592932722250521044237513344632669123908442461385657784480682360530503436006077635831608514149425429660654161971669334504925080097086505940914506031090957549692633228874444130019174558112361054856783587206018604888319501300434839233976974236352501697323560378556635796299131213510857390970818352808421102770823920550868198260514808279657284120467521380153747120049571531063393611286424320617372903580576178488692299280433427333800891134587496265801177162710069155281374833386003963168260579243164755159932743478177037419217498712326534161037783662792666510639606268042136291648559133142063996068140040784438144254491810558669020291626127113594245573593437997626515199747825589209828884961997142930002458455950265596679626025794186328877805920398922878065411838855517136585959618138310091136190696495726738271652910202701958327193861058389586207345095613325706862581162544360346694945694383194536327798484762204123790059303470882575048896029079032230217316594643365438234163915667374112877272175977839157668457545655093718151058370981587528626966307123014750069112489326976855424467301734867034617138186917720017160157122849900549629943026644431172081494612765754502010481983274816535504593311990676704081384392818784681507804186187432873394329040656337181567197799829260417955428087255989190895694612485387307780602333984835256374803937991881947572803618435991090859943144073665849019867631192784084269197164772474118181394010168749006232443258884063043912445321753308162199133427557004501638365873101133998846794309502650428155618570024784545016666641988684090481072188898535734695064982010763062802813318618909734775179637685771499894212378884477764156032119108791993463197876615602727976196977767881393816368422131423368737097289699693660182878697657861212025169916715613737189940578089931227222621460238774605809038129784623446504628487987672951711068534059188297692719850169942403260735362475797720576463744368928768852230336019281909786808325549015697163589269475546739417342252826736292984848382522921795857451071477623128261224621292992855136161864099891511191368435239628193924838239122222377802211606877968402466534765293215579375662343128462891693509693773670332862999922634476145578841823792352841447170234033479111872126551556531394088050499531167140435598223350473789633988641154406687093301519768301504036311315842556011446146551057618841134317686016375016869111587668017736090603353857827205032361514240295576654612070796743328476219900182325452147756696432754025210138687358035048583370087326270082550794234079360325887385958163241294673459209168983843708535434852776959759944692946579350736215959000101876426544618329801119912365706885027703049822176413899268568456541443731535952933432020787411235636461895748353671661358199481906016602770371843406437188574421841946084114644299865454407878634102742319029351192931620623307344551393095908375930253815279631447439753535047239487758968281905389499333762190607362205798522813606468527783338696075897741745636350835323615533396003073104549312182869631268178543676532585198784075591884520751484366984471796268619867389024608408660028709126851145306763119052977308168962787584545060899733761869170996834654914894805987806169082894245590341909035200311849514782793448983871487439488840872375329518823998035212697048709616024826170418010979559858051128757663033584131833441544742325794018394780698566906113270413363243653843447530842247000084688125488995013677612675371182118863380018053294936662384103369791549873729285581297374875202023732497832147085325869297512687745627957258991588655537320813498976987013539598440092217905333532155314521664000605470136268033110866184502400581150310450899188084501585523264745490605322501453362653450998521513050357179870347895845111520240146839140133940401925149075448939233315116315594915445431709716268284122164066933604360398915777654349605939646505288922184979452260426618279226809885616742745440715207641600151197582708940328633269615515366039845668182663757857641363317490555521573113136107892551891058681766184970161360998179569229059638864845622951009537957802243440629005972468062748953957560257924918366432465007851492143376633446088240385915454435890913745686178901002215719526532911072991172663585618873910952833308625325643746111918488012728758412818925525493087936479815662086162720287081204591478908039315734475086522760344586202809016948056112155028968198142468316984098757371499501299080058439631216652909962514394877363725370192253985294852144873535386325333412798788447053736925128127846205208117038208158744954146511628113323740538804173230704444124521845976926964808257214971808000734822706444238730222131744122908838635415337281163815566830923782925825140978935899577518638854835676428422221705749494506700058273349496159616427952256912264482253849261570071787947440187224063304459424608030951682978207376487933606650787257200015928779849048269909424823737655499592784682336138800860313619021022667039825409469307881600140220648035034765678074671877109391320717087499803814143323774390594476848687491938642461983868801724016926240341750964743085489183182888860488839630782247168377608658535660633464278695264086819228450940034887947378925739599001362097301594197898749252534621807232543755491264628915632019763795154244049547851633350598885621460404359492179594811441303923944047736908474843453059648008299914194369345839902891210616736409921566302084595157726530420342331786774259224981261401756569767396523125316859256654645884117238251254415552909625368739014738261285770859896060459933896594709055601244371652348319490522567350648990635663170038461876024116815396020066326742101479073813244965892781727315480957718817676809043495456032926307791307794110932029311111156834400450581369222367949899342391346067474698964944589464997284861545058301347822387510906797947752086045160582277257583395608106981767985929450675041063689416809777040879068821025369289110296463570906565405356931725171901501354153991765960312251903813765369047512383023129287685639565238701429508410917514351815394612233549543144857756117601593596973600750717993797276759962659139718832055455366209167167606808117602597275991898632456376175303772779157079445863999762058064594798549308862412485643278913542383465149949366700113716127202377830000780687437217807402385345390867738770184421169481346592095820630821767849650497566538902702989996611169571337365833133570894579329894827702197426133712318325820796906617972448887122181141960348361400640541564049171231048157155140509925143560515249865265789466852508476214347229546135133463748771354241674279900830978334602002606745202869912381947648140883580178483716779667134562307876085078802965613679103639808419558786923356660288685331856078289616053629245316231304504543907332291234613481958219080102420727730383056082238387937545044201305297410192454880177446988907384307183993460303657370923620072883573502404238433328146717839269034272371449366355369042835156445128466645772513750644677458924704602321421058271538003409416869324541598015593822406856088171347193370041960744343698493362873236000606799589116495278338486444457810735587306553470610118208347713163481421721030902229788464085555151739862732511417499817696339507460503167280298504054512178243888546780609936614466517037655683561982056710504983039188902885066880819291050647675715472268872326953219203224404392173804107627609986543211726186362501241230712212599723865759353093125893506818526825759695421876232613645855508409854570005928430413691904284761591151800653312016229690145553877599030625146275944207786729202689848951679932927283186598892789123956134389261769461993625137447853830884183442499030368199761418723325233015626556461611245103919213499642519788526652010431890741202230533630226426309069684875579381245154914603975856034295420245195744848380195981349321781476872449179578570638018925172789529505636507495843680296687288046186032246747317411951715603796511372900356441309252073689548868033814732090409864937847626027841179187519153244369968924640497258507263266437829906735239065729956404996927032756263735341899890222240765247844902222551755019870381031395970860594589308636196683459037012072467874163197546851911907354435551574756927739258391650552593124529313535017485896484186564626215034255852331564947635412705597712232536704001700978339942798582991526137733967407354486246324890628211387730734193798015636535402776472144904740904047608276023812846175119562139913828085118241147986901850728184985261704987475120480422374504435326378781998798745015752761516337637837590350043369953591886393475605983820211274562965563702512730995974955577804536156600267851635195665406836130018603478955177656493717640788553067376342234580010339495980163969272925287024893769613635414118668688541739877867641827042428246424667001090240501350300494577294729846195126293345728484325703619917092466151496733410549196473638135831417451641228707960261463371675858768905100176000280021814720416936140863014040024114039684853088718880880321763378355840514619310772930103397384713781391208602679420926212597448265777577843330603126818144278146758902352757755582988381223849085131689200555181903542732366011727869491247006837251959043847552125676671655113493490965402994164243765922722651678593829791652080648879909003683705127578626327133771136441224569595290263115034235111005560598473599380321614527763709667687234549893916276086942967183799548084427920520840041140809958255022167208475402063838906729819093864426212683850650545048066701959250154303011636341790790224948070700206350441641827776116277554359828385984374328936524035460388272757850152776038210068378273558649050294973100471986834468227317946624114876500938823185393633858992691161294287064575097073999056020445374039675464344800160049377241039972225680958670217055476504182152722313293568913958674919161719304457113895853872202142091690999180040903053778244656589541131235511774674060066879686019536925679571835374726498994041498484543951443588355426961597005218330395900735901798417225544158192226407896344028523888579786218954634214995341525388149602154175012313550698982853961943409017693744658427759066707145251481372376926569905267823129022563867030476295719817421805065553837979314936050494371944871014229991580478338880545528630207675971486849359448190352790342544268178448081732515329160853906647711380522155948402624252085230051610378844792156286155014504640659346761434295078616025029215381074544488310194758296435687872370758186634813126477708419033871651840405099373140567279357986417787124293201871170777328866272749395225095831528820414645788993118640003781591603687493028853672604710255810404048358373423362410551049242102994214801728295401615357144803605803328879753498438094102248055232231224428069488831842265871570568218695518024521451343362192257301721117502800147153367518144556693577762693914273416817434629640475587185241513300619890629365213624453139039547930713360409519860761582507161050896730172535937867310634257677582977961080844517142463671247674281802770267060331615561028339538796564213099076724495139991080965719591323275640135385768037983159168873163561714834263087502649296831245090661661182397079566341673475537487806437425022726155609200331789261172171740274516335410724014118472546252218048952234904704876145945895788957898268369167920856386945386075080904825450068874053785696255435997515539733369331253828781309126947829358020090757977005707211174101997190883908439276772277443650085713388562672169318456691169537080920013743992500928970177356809051404915356436677537234644695394434895934395493925294218880901804047846667182689316061795869179095571099838623927071369555571389783924134566870230136637894237513639919450059983835635810809835353065789281970407182386419447207330581296720925639105920953432807347778295770840269058447994273373924365540240196661331373234629153352515801657297540594338381749365565441269922181904164134454681598804633290938697495041725966577415263851855621187506862049871047222747765094728322425504662947397909897500385935050831065844885938899957622306524180597897298890250736375839209045584649235659927010191301126581619589906101873108698385693556965058337316968758783057785243642627031877754228775031576300056517060170791704872035472035322685301094362533359188418366467145184622977318912938971445771994053170754506002642988928258135496368255816566508384365377883950225318045806595358479755671432588460687272858776236859528687394912382805737288872925140342366985468450374575112977613655031418448022189359641960253614620896922378595502987149063065141136813609447975358212528292546961422480028716930410341952050061227163787498723952692020834002699082933118680810095483444894800353072806349332754280786153561891749374054553893379478624589611022528025983160286510541047529403413100302097588756330399481852045221795569659828265722809663859523064341381967744281790816587593619986093648527977566378359081268247808520872096441941849433163515506972553310190420881594158347713377242430077976232550447557709441263721838883585391565421223754506969667354521233834629826224344730520753357076578969636228616855456961824848618172953237408408607381733542613113984301456029655761202321220067177539879855172717384304093747913370881337054039327191606969748000254600733195268961538506101463296580541222356244924436877055104637358402644463550107535590999236317715312644399298627554547977503078472521841461504239346573635636985716784891558071257556511025578322641973097071326462824155192871321495944643004002249918361037696948569932613373133486286918750592596630249084587782266270487198325216723913469339596273526554283359129869043389564152008656386429474926496899295826615541388955390193777116508108176918396282776359484526915673505040342558199756162143670262678819841484575556678548695452236812744453708844650982481666027640581780408466911128825846542332750336542377933639204628349658611808128178358686818000469910093263855510119846675365315404906341656732795553730245024979410744255626155798773400451278610061399365086616845947091644267205841020822050740868062568827127876325405272911172661881361412188332070849257596684536283862504551542868810027673748009682465676861741440102389700781068821316726379162514399856599023712662863615892460454462866230563021870793683699842434007789347961332135661061217518079981901910262623358279247767504515165280244580493115315100839405179494431179796110341534736094839309216097711641319658956778335448045914018198032165965996839605729083067630183609156081711941829954290106884621952170062930569496395538015867695188210418368049603877245236453495012072938741214396895726027923694423600417805756293188874866574891590684037569782033611233899940121687985202646719951882572515179234621652623049297028322707500986078635639426434031152210386708550129832938013985966253027986126194206616989128467722605444326134940761910763062941738461383511978763714678713328003182250651177251400257523663261716288201346532421515946829182326765071411771183846758204273713700787286721478846481413875303938834127705275684677358289083902801936287950700480748582522811694022949130102051443467659909961038942013406762606257428652786998483341223490708330989855862665275863875895385331232149807865427720742442273437719728544403590731064843665802627763013889410652496609913780558939196158469570009625924247394139160756131936258797688823239141150590504638206057696326343643952206192853172849004134892047190289984646862997086946599644075559356852970488032532497202584703826326698204798959434063826314233486018666570857919738872047234905456670142988867001779445187232958103128740768688152052533496163479373228797900436528942450503469798538373935182714922528933933143223400022775008442408167747281596131395981676668153579669712720567122363112612144162344928507333492488572208795249659760800117257760092454456895047225393525047968056176611794724463396848815971988874474002619235689911092411320395655701981160081413047453047886001817746021746507134763808322194933470998295830366487707014650654446269147132987606228593257650476010355280046497564422284987536506896306340756524778590058281435142073090681457039702170641752771195097925877806045492521970580391184841056205698057468375600890267294773981187187504378408282197927663971554574268426974443706086364069711156920537141172618182554179130258010901188520624472180636239517160012248902153523209534678563609338220903535170211745467035906694942887365669675898583809869356812150793389761072917264336694436124578495257232421692010747366049216041996725700560879325146560702280608562706255859462700989810662512867750592955441920621350581023859729275550827958530072649571655532109692867939908226176934886807394940761056491214484829680935922740455884199961093733064990156395008242970201702343892612035350773370403585006518720517089286261464764477041880783193970858700241946636764357683692604137744150467068559422984800645292330570840418946687151648255980697733797540091499631878450095477541304903118015961707856288456599297234724601323816802859053106609485822296527021257469156812959218783625309419226590806563694892041713853562865627856340804819573660370382487751756021543134281444574621219890886719116695648620141658887355398186864168087349344579558788123352636097019129193232644694877516988059136838785536663909391700657736545353318643535989659805594500971737467695875783364446817747499280452731295378793546722138633084518558474185347941022777349474255105011779809350790586996860125727236434570439668541627085890684089975331464802826936205816054124507690552743932513495342044175732198021343425733368833691863161162769317776815065557914841894062505536111731106572282121632440496384358575103756779057153685596051319050548891815139394671945242265118632166376548589863865363906644898356811002427766328268644677122299416160411293871019236227672420052679281304283536600223282010726814826452421319293130208843549624469922411250203652783445774014963014989590249504844134945390430668150267006042122076508186844393565825461742929137387916531150842142818843856436316050206719749914149809597905179913014411826985404663826852086339109139720307264870055038421902027181584616123228979179463196590031730609617720479307252461722983027527503498809108500755039852618932619001827267058180751431046870554343327040872246960670939767069787338297169693442347016876019720661014571111926543430243088896936542678125600658959810947360909539238081211241453415506466800906656618614293507226596971170574884969272075378652676630325752052923608113313035619860687802202052283531647299831057077942725284474160525240655826669874368628734238889052000648489101882099020341903800806381014269978120868169826240850491301764079176792746352149384097172844138561310112574173624601366753321292768603215731926987163382230021595481372953313746535403357395731290231394798184270111067429888757771907933954042951987418712485451382666259089159738721222388209027607805287561657154736031853809434472145790900415457220331487007042750453462612931170650961894654373747466855513990478609144186386756118071135271540674314481572883590235466713872055087512162954722790771763108436866170689206218233112400396837595151252737774442850323086958310984225832827124306479051277361734306410517480362964185472711452395131761262014605198526649509156083173694672426291115190085904777360451849747098520736970054296563776734353854475869709238037148966221007057218851118337882106879436873611880434207182667264332033696720017834042645894237934629044450388464001812362485520942924547772115896777263509566404133159833558457140944538473924414924628165253016635055831558733178611664687411835538105707576837168628422065343714472820150786286232061971206731483287883660452580926382889998996804622019279781408376950027211110398038682240389821904364489986923690520209942857940224836431534462088549778846257343751261344876520615709715702203760718855293521072555373917442380928715282115538902900541940136586442205116887823929008673675968257428967850966921824806061226077228025523158319941878044804389831164420063553260357082532658353665885285504245266985224356232171691834196162115415969858504053685110760633648924964290395081601391101008065074472444820249507884964704728957747330370004086898143484320368854305336277049632665877786848627826866042208590167120893042826982773388355470556964779720518736329277830523653472589839843684967294536511882414547907115723395009387535127779902171244862621669236777407557080945096934835491800526066614321248163954153419782085882859277434396270405329713031153172599532751467976208307439072359650318404339593207807400166061342093161003745289799423318780091825818300861627952931481916410579466379187026804669277363403996400042471564067055032725135100174495727400531555930228718244345800418479037309469478830991943558809850535727458424934739678531561021790092401486972520654875162503282147034560092515928227108446148718891469663887990542724303548752616230340113791523487136849030830215044424300564344720873759483854330187440492681791525517819918720139564557404789730590402766635292367231499527262261890670508103850491145045250256661485151450387525022436476759089970567301540580403552485815500984750628104574178004516260670499628853123904977139992162132295072817609405788720789568040786679404846904341644404584150402045327110749579384670696122891594934306840835850953433850730546099749815473125664339784908890813144698231109494328484731015438444993952538185930794935133357658620967101927063128200161521400918632325956841005999585365131627188793490509004523214078244813470279240463577506512258517950366479308159600390663419185504993083514295605629805914657759285352196242439391571076847509424084023457236916158773669685909545674646985765613686058195819605231829993109908272926545056919529718804841611216956652005532390601007003491334279354680798425819539162588778275855332497488559143813000887284591343641404439902334015151929687576414568463178808083742678730165913831017763303899812053670871571102287860652970552691158498895664070384577450463835050122861738975836635501231068203578083070387673918116032673399949790724603958744552521956576775435611491240710317131169719910438489806049417806649291846829615050027266807711040360043730889337071665419882681963126256018882657298828903713220213402958596274187317610713212429267318841329295412632203443336598560732563728086263958805055293961408996296882377385674759128295244519740454053768765886284417994109398314317770619289171821507462553855590821626001782184917607904845635926420544317719326137021080086534614366594340036545462816968297901881307356466359929363238763451153645640207182769224970334836153633788752767165395395121187518279827992589215980946996652057045999408049629732155884105235821842011035757989542839196305302883286473111394039306771398180929606815937302772638060266299264562939436976409143855017703597857030579931499957244287062499334275556291401847413253014578441893675185490197434004970425688861600621668065301045160442071000247277010683798449270976928581687784480289489885874589192954610926403330198326835981681917217854286082759388994355149245250434461534088075063924612291562788161795133467282860404680967496853024495863073824743325111975765306416944602047494896139139832792127583180793864615637561254182768847969947487406530751679927006678919011767632856842470466768043416567082680311754309716920251014227754037768956202514518308190392672405836178282895206281814959143989632542651065176302598668489582893300522004668284070964858980727046321892156710635481606839658189404941662009640188794180642454851049529577943770566356407327026006534523345750606967816575111665938535599904663963058360729533830491749708323058124487710380245502337539083133947041707401434093823661172141290871132016169535240196643208683185568064635983581264710238380203877034902325320318885735875903679932928102878452601136601605214479848644610242146082662755526191102047283910833437768571368723915769546390246319961661523272811166315106667129503078849715310255058345779875984015243988729034215541903911396138883498759629875948501994767212093345169033243525861999568342591798198857850045704539189228486944682201422378630622145098619629456495313872733952424170061416723004022795379279483525817859895399818089373435678697974000313856099338318631602693619977817933161708054584683095710278724589419630496350508286393646488632237317525678247725967993822491811739586544098349154545232935190029772529569939376197682025305138564153420841907710653763821882660037591702760956154922157403189978680501847875002783411274024458831365785056571053838393392107303229601371015782119331314258884890085492865587191057868272569080400235688390038170093058395216775590018543045119503553165949772014220962519106249424912280494401370083854411228317804549868526259791489281043236267130709133197956822209560400661398303753154879948372848832747041837166486978426494014177100434183545260896605612722928136871292626334728502207515807180580276668079151500653526522322973052594404916182791035507252849573660787371020511119203178810520322152748377555616973619458836421723345210985528638147215854247482239511284826399241114580053730624193937003072745296322755545794129412718564791985386446769301034748347792384723132820001621349579213511068011122229625261198900573197768464116038894925164113010479894245700628331876863984697558743931062172002180556166809367606355794726430446698141209424513156003955177757344650923017020168813027455687639564641029966795487728389956958580789416949803949398371349749953596991489434129106662967514539026303639926244552694764683999939822131938175396770742305229774846989845025687076653635319413027984203113661822793573094535071244920665020261505172534527052368952332691964059321429229274807134280459150074692981765585436734225144023991835604427519656181299049240810985999534630362035895775143356876465067407334113297827598836368988402250798819386001661304351669987691709337606584571453505197881433280433067230544388625678036089105203849342222809384889251425128793372592653437098611183510553132608536914886864046081616405782287171281235415472273384067871315610431167596776387201220683623312526221385571725082187817311804240564141496024291478093585121790434087523573223394241255685099523989723998003176496190038684685530656237911680568401779668228485022203083795761685896894852554841022206838127999549740055477745364801979421513155116395015984354005836878331706670046002031145161801902766970011166902056919916718774183583215910274865195090683471419877320927286555899970003092528541456636228780653943113437357975974178732614336826471885217582543921496835111655867369265136430940983965564486471782560988026373383827928253036980142672132379374350034101450213684859135329011719328742614791208598867577927116274947663253053037675490081335273962909377590781596564849521201683511062910154646576422726343756482036564368465931875264291526432144485699629772664278086517375748801001666122283412821189480923012188361533393248984784223440294118225491853492983431990673422345077250854043214942685750291812207035075927368042688013137040474540476444503939827615327856088644211353402853034010222711482538681162375322168416797803766193979789584789560758928207326785668842495009166945124292065496613121298543509574120706632359606928061942963918580983885898316189381292418730229692983750875524600214400814573274936777548403366944358859980767226777145197726729078855788006570236038249624734111175490986115439893536427732765670977345611549808368131567796923327096812837629828354211647316420238043929952087343320000051734504396865744931204173790080493973426819352143612296040901083877638735799588685542643884697863352280995659376684633076305995840754533205465878330547634623726466498612920873765340882560121118030687276578669343280236792336494776407561539152649022698146330761862059790733803141133969632578236821532081084786153884121539229070019362700373348151959455067671602234391097727011171257449651655758120141872114001256553006639783474724287974706639396839097128151129317762627457647078266796105602132771166045483134530637966535255572184466962770269431905708656074334636724954666171941637099108567374738456961290792690185352620290463576124633536646250767064226458812128315021044854720475958793719321235601525119160162535489695683727487934950094043776780219792663613934681298281290602965106632731893132555464311367082338751774865677812337974775029945538358703665331467473497190106396283978507584044118703693967318669040588111808686043431367680296388508644411947480725188311671476872080355892167108803933778664223667572450904597818009809570024019819019389169017485336707081589318957097632734463397783559860401767102415696166451769123199840944226877494752188102845225202864550106223042207239764692095847253059982122285950065125515232941944991146834658986994301926515797442198480843037568699975592982781132591195816018882975826188449696281646552187441909061955585113417449479200869889037062336360785648994560479484998476013636353103124039401344752162646788348586087678265242495300681380992498671863386162512793078036602322583839081391674388274926223040190401867127594096994298119384909238635729756210028695562279544711443467687635136887935154261282120262657316774168342737745967154298019609397737244904745092331492501344211599826310460512465678844058041971015406193018123109008955589324910088545868113575270261292169641712854919489829255021634977377767083477843976136851356499712698099238605523448406916276134479521324480136895383959319155558570098212321110623400237627399717293777072750798661203086066137521956745311646537280668140904468738946214676286692218357189074392353864501477604588086310115707156009652293801943675519344383196813336669904632480149611182250719087285456330434169101592261948200412811998485749660651427401345735452985733484313224327960526023768154257291435815703747346628066856538426214260611392214690603125884184440195779345779825947496129114414421946457834887713907540235778308298606686218426991927330948688740049582909022459724983409436782872208661324336415625640442677883808366021800299282258217476620489403773021748518490302748998543152677466971512629866773569578686700834107324056574621197847135694877195701690920796737103872389540840872409646597310258254859034611585057575079939381234377079205388268782349771532750691939611970347054836814848827825302915517372044012280862731465953632791708411327082549571615948641015167856639028777658849752758775053597427496841310108624620888901868376460456779881858003865238293406678097543591753537505652233991700516707606438159159682954332031661028368626086932164773798476532747517294245130784012032318881379703375512259372182281689985243525165914051207611221356281828413769742759607120094085259727042464247198388312932161132697780239074812937103650935758186320821400671870149296806697349477201435054097016737153594669476988182475251489214045217337035972673714275590201263220303375980274712482782847261606937497057887990920262220893602958879631725895302647292064092485263297911103643149576855688073120704841249487360733731142366155954119306869333405943852259018942456643993711532530819361163914566068646039046151168696357434604942889514352811707384799558911541898447083449170780003883524439502385353505890207688254646689396709125319124961964260542504218896603349585566498709667778790472843287459284066789440021884252867193971068648284940383960595485667650055790634688807124278587967072987209205279498608430591760105023960790509296566113831706884785886376867731001429401129419782667035083950440113291038887131693266443893041316596004709953218094345497907481132318619884279456553932471485293249619130989847940787291179957295448977614092668140952647320145099546360504307655073831756648052930831311015723189051537413832323404493506764476387045515703866337670278194832830835154064483559196410844157615191076641183387592833015573112400147402190469440441251344802292221193954740358423968501234200394305365338337955251299977186508383506695351821437627695630691290272579867954752404441253118156955513242963104375260949937486598073627664563358850702088082456634420389968439238489344226952612348326075297508787828949140973130846509514292153762760621059886223953396004216443534508258947626896141010951193120793406487260716282795405940981623898631858011997740569380217284904895454484587525904690027109827238253491603624665766585999715607229363480789354386268457938294311852154199086611000816389194930213719804986370499236718309508411188886905571135371250407952993635107952453489810786116997424808888099027223032795035543049269361472717312465709454340147259882146115097148415859947834037909556082625695163374237826320369479443348000561757675608833028222347364038663719139848370880224242961414295601850363474465351268633911608592481474301665621357006964404087916805136360126110822025951986081866738722856262863760744405644907332378720811945362375248213938868478825241169397306909221189568893603920280926864234358070750359681115842364874519533688025760598838928269942132676749746626735528446171644189832145803427032876717292220678497442980185779638656959053481440458047527571101114584078843006645971999673008194769409811288222442811404142718706644237706527440744129638504279466167671622524534866807639723743732462887344662561984565494205062188394996283340900136936827896854738239206338563756415823065190479821537306918451724174893087736113461714665264161956811069800821393585319342077147700181354897201743090489917909853202530457502357634167435698581701861660927352898014173989210898990218684285399554483918136637517702084101477923592383168104230822874920606001211317655781816104155176727068675055451576954617476291855791825204206916038440358244970524215625648865505847314584058784543131521073821281714659476195202348457377526744375949729056841080037437071412231930501522133747544848067289037139271092964770046917622173359144918148940552117795665794995771681550006158394621774504816681659514576386732181745316205808190467856633030133700515040524710349330071547004742639478105357096897825994269328505233634822983089751324069558307709592972248883404016907615067917794899845222993888895766961654397628740588812729868554068187714236113134382053569829212091295105027005642549225461421752957500522849068867818901227914087675493526778656347056455210877249828494719261205077357734394620220983042305379221725638033053355238287405636718882492870275967484918600762128948119651774874115905563673732302840987130341195322959172637927224773547742598714814173210170271909937993344337894548402237124216772316896909477617098323429479238111796776203415028193804442740248937326618486201016195006749682673152367662766017470934271340671165857900874863046599492398902516679489571158164743695752635696856238462581513142834096555900781184673143160795976292048324382217422481179720209252296611684160769353144265878923804647957999767948630203758635211258152019764269572829772886234884353319496181868651633489831937696615758188908744267374132196180504718724542466133976457277409288298806572266772438249942246282319142478747381034310036319914122455680344982815395814711096690732066553500264947972084226343460948617539775487018991790217751576952252521001353149467667729407489167395692118178866853365601508179139455438860637674785090779832260164183189322878463363638776721981522791571438294678388734873575544058709126349433276695048309789484362456182574362535128402427115567937419187061661191276161049518118677005144247930671381178465183509918753944567451307612554518979246068101992169946604022910889966896034771344603395196363146019373494460949869633338670211889057262245881336490431407082085486225884276727922947948847955600718666626391850446528081897619285783196819270882898836915106709976283416262019272207870793494556812796535558395296172582170502690632372712268127252325875992550826990010667000218338690004161001995106219756145390376228994339168038431668359170791916043230166493557910957371019597331472896644449206125715509794591272983437716663260172854826025051754727794140628768220568297985318001346332670295461391871064145419619234828624399942765891498358605990817295656429017047134599176363855536348712384923469638863782175090057682078646280826235453945495070173386485456906628620748230604316420434717886341058441906378447239046023267959065597764226551007931189329432045387346719726406015783934799539629409612843354934033526221757975101667639268055067021407134335446974681397712984390694215534059281584527071177502939100504925160269663734561268486426943667867628044771384225415305563270483752615568135179001772757885343383680749339072088149381701630628816090797843118930855651519044384072438949212901273243136419374247519326625848372934280256871444222856808015852050151822653677052675471518986422759207076005413915446239080621958299198082568945884978684282084997229822715160224043786909234582282933121189532343788468240608557682185514665247977083656316330265902474459133206449962167430296322130541423063840529439641109352399829697846648526818746353659231142044402757990073297197363985098844991593870794350789287818090238188989087086457634994999459745440942486557343511991150486797960723844247620593992836625879202838298790098191274013022912859722224082297383564127726131523283308022637102906537149284983957246015906109911197969013146562030073859668891269213086940328720363437120377950764984031162057646368510315423676153163346195751286968630863484285810725507693041095448730056211415933511266196482668943688149655201840908856260588528412405232252887517531628363627552739572153901317019319141676636813223433270180418980906470909418650365214341567437651828044552408649979661976517450280629372887245249385273501303117243286588439661971734147431993285252155201965609916159669327464514007578364563827860534608976873182088248121441751295127716314221418435216581479699592788876009612625867157792205912675121014157529229606798075332669971859855122050152228795878915706609070063889779872546785926208499110985621427501791082128892284324261018240082764293648366337969523200586147226210087300455610510903373258020732022547640490634690500847117777072813305566961960356238869543544785779425341894193771300929910705890588190249648244113818985405647397604797981412883861497567856026322606071850127248490700164775077242542310820014467786801806420748955996819801203185272963991901326058960578935730275979571081455828806187631241845853428131005486121807579624248243419523714085077135550126546612690662182418370431734960345694076234890952526207914292821308459887655433330489260367447358975302468955864775420490880657888089907500584532543455745154850687628033475993721983480812445610419161857662841298864078696076202271589443575099018638718379261686891209049931251167655089785383125578751620847167891412378113350196161539854481071142754811394442847772058174412789637596432589117719784653716684330585614992330526368420504955311398573665030443787747838188850690203990439851497749843774838813134577741928004533985968039935920564415607713709517437572198699947707714241400806837186103699205941632118643334153912173458706121916116949028034425657978360985687204069611635137084147439368344745144364961661226348182603416436318310279998164182174751189281804006817180186374536348880704824492076006656128857095048969012590404995937163978898221311322285199228761542529214401645179276286262588137070464452620547364803825796785213333759189341817655336429073197542493433919785359609830998318923863854248974927888138198623977656829796665482123534934718687151732948796218593021183947755777214793581964304333536965132814516350020990468901890505553274416046419918259350124766258228060764288220515355741375327561543492861695113779064967391477702345456529409415913948573164309783143495974091434076791976860433802194560935380236399759417977823341945838867850464015125679580161503543209069080427681314799612233450635606541628324261659550698433650339597868444989049651690037408294974438721677055893855511858293984995551219959472145952701960150100001865472191265383314372920629483353229201638909179036073613541345277754382308297252957269473681460061321655557379507540046326262103551500383384790998006274863992746695961915377950631383808886432296224433935869947730328613948157474850478036155661497595446228481809067575455495089711071818390005178677949267008465873112311191302377489951158194460992492233418131430205823910501482533018247053981663129731965361614686844096425569045416024897359269306325618633357750339130795832014689000061477048585088976451651998438134501672115618126083218701651898513015221908371670545018352245804907530614760441811727911020089678301556718491882279206470597498819094892935968388575508257218484474514135306192833420180088099112604827106634722502252810541356130218577942168150610589460825820715032128137962790241226830000393564376894478051382227014741940073527906426827352718467887044906742437399776281131410371958250345590234929736078122764640320478877676067312442651976821712288954914243469946397758712626560476102979392221447627617837131457327909655534091227340799907710650033850710615393723167025838794461527145363564846217321558468985628743570153354153764921643849129448240088531110687872943247742546062840722522242843023854318525578341831334065237829851970621992917281929224247302825226525593163206924845862169757113743972917784499433997930339534006218991510486390773894778944577304302491946111022336079968575775989237958622790075894706259026487597306092351817559383804036105275802657829930910066806725720442330635960143928304495157178358875402962069074608010358515324008512630009483307979358510449224461548800653755947058634911215744862648426636816227686301832735630937210109254444946147017223754258853673062287897025252386712575842056244035468979569943389050741677669726855838329890673176445825404051372057238231851432443184500763272490519319393544217965982296785145636501264825705766780075891750095921273306952406718639974541150519394475983404621613958598204672472177691753088764541689652563721128452674320145620614377313791755057899123939437312333952954724347142022040790188584089170657271659355737785180481560585820217032872787731731870049043604455893150294617954588718394008028122707269366153191610684517692654553946222204343628135522557089274201532915289247821555225955621862236473954719436204472723062230937934162313310154677834129852307600057940126936249688516031956582699256141389440301119444379862815213586821996957395437453426162624007510927995709709759389533671630934811722005680903014350051213484845534637000651866201981779153962946315159489862782701594394933692737026286980751707197209966583742823858005100132285096816738156526049408742047064329525807436112403009361740830883844639896282241383722864870831240028153760214809358661809607796942634977207638119253978978866783780425257088466821888693702759008060281921119378347973895308467312840140867918923464758249502599313660913984515183532928828080745302753574219380395171253296157283159000556531721108823021016015342065616363436035496705441450480390181611152316642310522404300149466837828349119906229811990172137165811002054971889793626113998131742603230168621429765137138052403367353403257524913669886322157441356205306956714090638680514431510192195410866730652608390290885687109158504664221040330596029285659069338480273887484223427704812357851103649023982172938067083522073395342126075994959336242807766629202409671525580357054446887185331202366193744146688199517119060299648454543703465371902785714385553566128349452821502537771076232196250342756367105035304908377041338193309277525815949724898298960292368946800133702410209053543721269841604811122642807044380041952497339674776252788878568536748731153642562573811072375973267705037383993968988953102165813836515348076043952106990824696477589588999233906826024596673749030544281924226395210615466281378883928347438184514325336479622648428490682436247820997948276022853471662772241131475599727472091260470136063731556008580987980177168134235374705490527766517694055925154816091219407831440640566276725738138018477663443442679822368360058287859909613674871274427926077698439528272616258426888643020734374223023194213807688744845654966214285758523220301456748420836348859108054995392102379478238856348004385122134236633088565042591307978971841522997578443660627795740587798300314075508772512286960828031882908712124533983046568273682394196368069929000924992459726281316861317818924736633339782808076516170026503692041090692722894340082973756065758449257157696935639447723477073398425064173875595868239783307958512579373973222058122355627243712137542690048081334572857443072473321091812939881547459276461592395972868723457813877350768463501204537964977971108036387078915090618987590564370726406451252947286367822564339779579081159375207451307756230640873420841328332662146815657948147102954199745368535201022770063127536542267594608255958955851180284011244450706717221909669582245976663307668378158104581525647716706682368213016684700714183227671816294158384246061267727361312443315440247437011791321129936210508190318254860652696374960332143220339147486061191932714552580089033836464425802652967849439859895622132332522088910395220828137079780740006301415422531909091389563463103753918860838964613543694062653301161806545469504913481602439333946444027518341602692506386976219036716104892067019408742940059977501122796967103884241040946640253370982565280809136734250376164890710112781578136571073880746116564017242323713934393454426553556275111525905235920665135028041449524471761419373836472250201552690972486862784624076894094563974711841728188713044043398485615294185823879954197185302961286399445494286693829443687856620615242305639363182259155441527536725648714574692864352879938538993947713154285501106424325877517773359884950006253479465287423494784155568472580936393537029377532349317320909700165928286089057553369660191473156441022354159038326910969073681483283659678321929403249889810196249229923777004507588771599001992287379445967600420551761818192150330692410679429870590115819509531394215084935307768450927880297758829192441216433732615145033527770708922092658461340178191247086899295762134839782369703117664390082180138568524065364987958974614614128223397964437622778175936146903395908914035743910413960518571905238278901180728353638543275374990048568472491775806398599486496406019956654675902820503789246359248449992283847952905643610940470967366189904819289723210797894256765308263760609028082665549925266075893877970096675500195201389946845503008520593444358143684872042355374214490991893798111746439515355377958368898106232867313572134467064008386946825118770352995820008256808219999298648254404813287964421930802326203846692306882556256248455811963242932393687114556220100446087917953069903134440033528878530157071875413966071823935970881142338789800027652980646803079596960231168281687090860100954046293084246766999985726557415269076137387899966597291639610284238205584410941546806591000804204962560834653514019814017832364995955641340401738581791154595884433385605867864084164284032655615536597032144069478995429682689201433947511414360411692548511023844591526990909924743008745760719217283705036627222654234540502467675753013431496642161710461750782792860668888062369824391147829481827177195601522325046507663980174251034960951237085913451173503908613649800125730595047832284993880319675957229587306189716262966454920002348750388516493700857576690297070179477768944255345067682694867428979752763492004113769802209570064295050292128254126420431002473814546194947710050585579709807647697291947392705422070049380562460131860407638277149748734326560079577664129073842037542748408460568551392103469179912082024828472031042975347933581781514761882039522057250921882573280386167349075253779445911413530243203043140696192564460556514218437846670966576078471417920210509777309031668784639669768259349535949597532313142194762890964335366736084128109866932812874067704976194463184108878892897957039067026303919575551996801347790702839357911259081066810861854282320302023777073240957199792263415278183846702459838017025656617960085150969371521819995788653904656248732745045344474559023267202305504057048009296283034143612292283230584335739766339914444931792192018968704179776199205656932768585617605713364462665202526750183630065096536316869880218247584615280309986131732206745364590435793234764687229961989417307921670993915667420209099355729673894258629030503503220355664548749909692856804612799597909498310823308676458561887829693366572943170117879182079618963761844314438130789646115612180927118335923471541140308768097082216136613017268596201433651082689959539594707779851952406352549436290788755890109546535967166417502932957209934330337944640294555975113243153339985025826880854618253312044401638746735703108820501094546514139924841194416694096684929747558840041184377926648692587893798415711674641653481506463703044826829332902628724380977038084311007960247686650176658860540153406131105284919474426366595350662404846829924021791638436615852596198462184755906990809427618471253593695568898219089518466013792967874614797626511688323862333396745666866733232758583015279742632359931752752233780966429291724673062145470128593220869427397414116052642932811159041641291727424093744539212869225823793838651650714617187014061318185794891107788097282133578392217684168820403741763828057546962306773659764366173195762238135376427195900667313487236844662410195833834780555573194643777672701483485554210701844202542060003151732387840349454531566865574590466798613130340382609138543578518901350260013842236092759544289562955370829565751211776215600742440501493196645664713228354917867167814560803840406228348574369784874473968457513033987101836522485703529320301271915830927055840907254350835181236918714615539831015340652854020179930244727532192017703825972758207857227116412889533413904233265546821790350057152086726700431400038799211780051418532446697081479944601704315855123152310335755166930207632145642870090851071373593460674290729422372233563681932204433149773277388552583758100161593939128474816850931908418966076956707996771046779984620912381823891011172602321840073920824487903683532514053661524365896040765533420168842059577396088854094567436273739972960003473848316027576614144971757763353714998310482829865897679939526097431846746042543691494716144457425274532789126208663326981194465457713462668058704359810308964601799491168909234133360342628240473506207059076826129948423573146799361991968365752251874562301371911730650049743867953723836985654579431361718196869590955521750774404907328855078292415163952934798416802954648553669994592776393511505376966843470105927902862283163168004532629862218056097138512242493532611342677474825951837438509058635844461448087441867641339850528314937595425325216962946910976361011304679897898182345507367531232614843941190069662249369564452614418968722893968365753986000734579554542998458232614927064396521511918389231738343814515872507407377527628479022576400131471690436865143392243050023675976925647558411414530748913590750894783158955750953261953797214783986247293262927018120734023645561754350980777906362689699047911011793402371607398230980755070702439146746452583686422311525659540985513237350988062215282377160471177423017376488614289156406810597094899710055760925303277311086578467962484578575287334922682919167147714042918241019671835969374179573729533666388927094972969575204267684921412792152057025805679452307224384177800678929692654668422950924013662165608905095211072469839222308492393983252476357210504182392592961389123512712922675929160965013261499026720589451893261310567506444616196198320542749423961179777578812194339272657746918710227994000775295662654751497658121802466688981942717801445773263013416338067716831653672010559556309475235556196142475863794550114932708139646738251121204266822906229361588236208089325705312523948655273408135615364253527528235831370173370051279760103131596800335456581806787279929259776428965188849668455282688069932055555420196494791709211592591787344093714451476095017410313766869066595682039001188385766428443477645889635092333814589179060210595117152048802693816315624091990147108913606065537375690076301235957790861120674694228982584945237380488318536141606153807404007654904308935957018656327074442702472978398872611403631832790959308514579666285011842377535667506126083152348715853271600693416700791861243731290466758978838669590689068487884516123602268950728057317010691914439846630956677496754044140358494214147992974641321994152828660535570732641436735669387571594247160249675881709715006414548737072090997285097007411568933574135496353402981980637110260813636183050955234017084525787569176301268746963084691472780898474301335927537233574255735780597691534869534032556083517104755338797543026513562997971407385089790341021603203374743863324938823746707261078283258923832129373808685576727072296869785321905766368804988268935766247190192293661883579894163712293110873743651452878736841693055807986743103727486445265501746158694066555472305360141028071164074834282840006828670759633620517880161944725197947180713551196231448999170593224018676919258029777634714840238688948612208604093882060650444474104056171971945287489290204301822635678121782940759178615386437403951317156652182923806355066103764554671138574579906489321558270127261034691717639200519096901541299592825767496503439779696238185946291301032391567159845836040080699123248250086696529470699593733013814608838901596504285460242104794568036057788370409166411982620645971222433191171209503765572369658700594066896331357141217299831473295293954061718611700549536796742177656383105101512806967422841339635321789339742963698640794675259739053197716999695593315874064011372136441997328941249982960065261514332493306611253466456314032870532572384014935099020518203188706403138128283573707749614613550684037336374968767291355203397559233240070580191569948489821978038472482520662941813388901998379000327107996505621279939959008341229188794105198514013662504317394767718870408245749265564212940030808044034599165899034924786944764068518635573903381709606762272679875575502417169897302638256899460899354175275466444956482358743375576490526546670529625341252339495891272340024589150461532730006291256760994037997450528948807825367473976224027488891728372864834452971453639488732151719104009915652051473670718645194808503107941217051439461666340768050549645964298869597454717121365850427990389253531213706077882187585481825293143178154464289125800427170038324180998911796393044660296500979656374108664280821793211515709262101460584960661228961109352430684499729473436590202712581487957062291321072368495807715376864095886069906419083469130616373851832020396708798386969881206540072932212283139776485911015475364485932619548909124914410086496898634679536630688681717790855727903269800059117981277038335610778120627004557825975799881933744501884612710324486100660944491189482255155135203206703465711616209969648352795580674918959580710626443632204325268228799985247138381894783471148767071300947525128106410801969252003735353608992803477316070239313985504097465600677991642144885893204244627999342394762781726216354246507573490686370781790004269522543334057160098707396151645230782111773898494539633002719273198906665530808979684572490718278927680441515858241704059534243149961628441014516324095818636527818276926888476909068793194062815495705644354334820326835648068650812171872682803226648876458172159298608487653307066944411745691475767009285845579382787130593873502861813868184881986383163409868263861427361996317239870124555934100142335863441266336083776667500274575500548474306366445408048794211509652256226980946686995393304880233570685413984500977331745901141527446575097431401331712324530417356195142072485236489816999489294484792991066173657979287674263537646259675514617834689683631943440091592784917855022664305904690302191407227787349386339292071942540941255214661820085257007075094264653356707881720730493892285941187695382235898863492407909824453362044013730505840872491999223530402491741539938088111533453450366155799637385962519865313094701232349143617009889633701105126277421803101352623986340460867707235574021502527235846202578427264681577729777465499986130690784203814762774477803785065726571960161680453507339201190429821863812222704940013493805055082056678678349379249280595406087597942106077955080901735547485476610529090137689632851078397004173026587913569826803044899113296903892488030252873569936778031671418722067842469296696023127886882174161343437095611266152689272532931526303201864822585179083921959885460797818012875677247636844596278798892420533214207118293213214944489914775735156073022744899590537791582718076035811629944243855831562495789720191820929701810553007034292503542100204673387484797142331309671866638203030338873089326747301165527974669531725957986504386767096302831523265025699966777717979391932702140437181556925109471191543224421178666635602219109603913667870109931977946687505176058241099084926895100049069937070928260870742346705117680359979218231117716505017432439211446464742739003546970382801329016049521939499821616373893056928796485550295074362538816795584999361552325189863064400555724093856188404184466910613660466525384413423478407866431805156578479165249563137011844704889635261290250486186281673516696575691069422865571273941856156153635585246505492981560240369505800275531161086021991404306712198735890890401152892835840655211124811518207596936264369224392102874987270580523546835670408856311907462174489943685417345239606928811617698118743708608826861795537848867476752315757566995409686001881048446922950477581389436248382236265039227675467923233404998402973973598502865330534202717067287880354349681053210491173006417465135976611071087597568276577740205435962448519956480006845416151900946373142507516208918417395002584253590954998246881299240749094639042544788938920444798515800879837857578195917177258442940613559547824450278723182066605540510371889125249242793491758448878822577569731746571118490649897836718205974269353440197488919283506131319213453778606489683109194719413351875403181901206177645202786996267440135561815369867081290087957484751975111465338866598830167588147222004669511193439640295722162645779928792510562094475344004284702165210418331522009148469881354373568953604041162055136441515901718205027041303792865753365458290518563567244823489833924419010462225070384047308549808903704799978916851925005360112775841399491633874709522975279466954770900105076799747279756435571755460060500335796636081169904503873009046726360359851426558195560633204025752984605197912360540662271293245753456844318270183793326757858701397622166290946146924683193865048037445859596315249538459208209399773002465195511060076478943377239384926980726520666766892124445977313492611166579971024768362600773169347665623060530655722147608238661861842539117304863357820987868358472665503515526184287513423182991841608977733501805493694332642528235890792490405391678688376633459770376275501333453448457075814783404708243592788810240528491510107251043022038920858585016208218067016877224603191121007393513271525453577267659304443990457199476597906230118927816112406199949453923902274651162591813393190390385174682600213381814626519944807927472234046663257326030830003464768675014392788456779141790014230356680558720389292741474719074707635430489590339740620129910329013458141757156361859373100377733099631519228463695070082760889175928374460279214978265129588482644840694640389661761744754438940948809815206098346274899394106158795641335136147614951634728165344773487416238701240399131861449577223362103733130527603050267832108971499336151668166842384018527281026709769874698638328221473979999816819614691102125595793032512713996216213491107778112182862712612006371358456804936335347349026885491733995372819731425672566356798175454194813990490699397820798954141715384687757268101202990693659371994003806281521604437284848869764110512372396568894633261489688624318762730016974868587674326120207099562799167577978765991976466178145557556470456962294364977118443071452165181405232064648873043483280935224050247116451251052219196046812963119131760959071034415557117241487038397698913884120850735463549328434113158036127715615144788557336173367353387879691480921454096991102901590627861727264897373179410004480035795699110440546370209165421187804144354759372806784055543463455049248353410249025953262157002435108065496936413402447418693721450961260341430967910263041186589744345642802785107050707992479284762116939940986923480809509632094778152419660115864568225160108594282450724853105413697577879806585765527622425447878641123797907464491217458804184979812996622518453094530068327940452475014593876036615693658554363230921176979821260141361940822778075317596599265415537120798965838990198878557797333366984745138822328672284105367784362372553349542534527975430320863685556844252042227773904522108354897556619253408139283198729195383945049667717723136250758028367744554047689840183379957670803950173756564910782911775298154158110644820112194082232242132565753446933250952243092269859544559442507086053514617557353926468308598988995144208016410656044877113465613103288926545060914774518898789174942533362557953749023356282366801872648477006515617476927558399616430321032303499609978078587920576794232796360322895569201220690105151856974159209583668739578161852982030154702605336311982929800563716762750453792937503112193299610532439885887428545066042629395237125016015532213632911766227210472027513970420327807850432306757665489550336319718854536358360530966749968016060358567838180302821061515464278574022791015997710264619293753656997697966376554631720050735472568022381640744317757270785502509532066392166493447640900498025328409924774892731655794667249960282336197368257663579362848274458206311034799888628641729464596072671909526091127817193530698849444990866971056917672078911085111445726454086327782339291816248730395899483055803995923581218254766164281342754721524073161270113147648687195488225353942650966364285299144370152471395607538836856555846833021692171903134227953269747639281063787434677580511514434463278117105918374289027104577301406649745984925622137688054362952307430018208715331160799076239231460880754731042990717965398122589532008212912921053636559015724038767980223011467668186991179107965729408500782085311269587455325171495787850307762698216623286016862213144878743222165452594519070250078306975211400447604558161991938270913234148219318235951394780333145093767203939684574064657590819575759784966881475784806319967942209710185110188775960482882799115264456943138360440592915058464173586788725320076201920286010391262152271067951486085711366739406220582858722743761675584054555766356323812695288094558561221046735420142082052914160598204527976749976398089580210745334919290133287076505380793812390381846501676995171231907307730636128364544476744745275257094796458549695833104257112922450056562754092917117954509509704270661166331019152596183757621741643034493869258085387265709416113960425547574776545599971904485038602903763555423902684907478670488632168433406714872093712456974807550724163661344471695364511366870965160689600890991303595604531316550099944132860617142037157890706774468191788901894296989643914680455499426871666412366723175285599398446178790745303651816581659580174167030141501718460646713016772305613846384877093815161166118514350931288134559827660002117430991806513465532071917942717787078198752261765173011010050809018343012392086560534442414344664447940399774206167813693560441842362966899530148577692911851153311128925354605461707061286377909923303824005780846914787193921391953953000382087707912558434836367615714235879174096327372568559506637598083700616271531893962024358455543328422084027687013834556584380223531700095615364566651690728785023457343725214896579915790272268415285636312807407817305600598497151190557721693056281390930071237756220192396091846131982568353756676118110788460979941374582769768869525149759978703562386495540193000570227514394609907819488989202540843834712844627433092447247912449337012662727102289254171650118971950289570028255360379892969550052981637666214098111013891659120455404090609769573673573976837030138541475934729796615238661727917821333094424694412062531956421436261212919567483309185535770807901616144846751728137997412247064123736372079450778638361542064006718958723650515461230763728214718177553454303341356961668601406374197006822953454696703217267546917272953160173824977414706917263844244421154767238483506585382264144410879546434789921346224391422066758824667297481629223713244084881349840050046253341776641043817853482037485280179983389391703151250982599976843058021386159520118637089898499307313238648725758597591345517589528016888921123280848634455868052686369224098970307979240325964420225583441908261530649494381221324515895678466713455951435017553960584265303414186391114540282588553702484865426446482232939997636350371836567371077231078512842642895739999186568033836230349875285247263636329369059573324366092958663467938795324202077648578502304057931037594104014938868033841845899428343096215785479157240626125674507036195628213845227056362074786097923972285413671567143778447783122924796768510347963767510602723622881599126501419703081904711003243306097025332879794975284717052760695810631736097705965203304987488999523917274161916521317022265129824076605106126364849837548422058010558857584541284901694734699640810919741685440587344658245527822142166717225096296214687311294425744069757425878980175404015024922807647584722863325598353261436995098018296439093662124299129495713266430516396466505714487904434892579411449861867409057990488588461530524905109060975214001158560275937731282316761278106517965806047259510782224296789933012079517253136763411065681325673777295781972616299856240678139016788471609484184787741416443407521767798969730678028897726247622119200169572611458463516354084197473817444713229309415667846400495089353876080957981485485182490999128038139763402620823876372702879073360836310939647754537522713608080504592789407717836487861883320537821221639419390031485404377966497578837736192957292129948063360857100430836429339117063337606746134679648698859143944954581141878859606931243204963648278496196261713224832815425218089833978293934829105567606065253814655696990066162231471435881144784776012678672343869633447530630521817859375481123934670838192958162258144261002076914058969339389087385081339360901285346084513685084185302634356203317727005194612392956383910772762403987806856933173479901464426484788671622781776914016184447552193898155461543490668714613274407730900448132334707292647791458129987814378555477970755121575076458373198230508830865484889935765211644611277304853403930484289514667786546662964814153803093653681112171087770195679567002729685415494913879384634301310943721053418912999840750605960563988291779733996661723882635725372516350238542877271721656248939572545291608996084477106768998351166005048338158461264272491424252317842139870447979357405442358414098402814475004844671980783148581794664128873215987163132859748091650083032421346962164964301727521687869322787031124346038645099072996864917041291622897416645265306784391226406660415200343479183397702196665805170650427280060482835246638462324880635648390557284938747249016757185804594336547247839791802038453884283473984918056606258689123925359564241983699789509268784463823724611628150551807198157951908569955696744355505859127278546369387699318337089138440935102870796513626628635316560195709603933977189806526007174225244858742211136285070108150745145920449773290449923646567499245645101241976659550033315734007572713773192173986412447869433184099634630134774143050199241014208784765919790562055887944855642437931655920136448686424332335803802976223000107727807261008948588640917204768967669504056296708106365715652568003791817383130869796860842616166111116239735831761964099896529147944263923494983708314285625976266574833547777040354967859773136080734751466595669403077465506085297556023094153787240658856264972972740053380022470894806139428192707829982558403696670902307445165380106844283019217091388549658276320768162087813392437415653526984381716687092049093538279958425675737860926027081315589660795321426217252750852501317604036929900596883007839852891882007687087641312082888891507126320127602522725289309041322690778935225548237836155757784418169067670767493944624941055332648100833433736753739532720733020169297763832158043305946432071681368247059256753334762383620880753932808198747768037926498235386991144281076021633727675403474248983789464420524428396062391841109958523544552775675320677912725578417286649073207137315753803430770523558038664352780461030344214011209795543314891298417878392176198078760590697814342414196456508045465046233357130668766044563421821708519678108047234366814061643853097834288470528907109338125247825012707592907013878123817752658428736487679705043861743511173980559365754485596991101564034894338924889771299023550996541300691451141947998548169417734541741307835958764687647306066225882076648015002463278083855052014506273291578975360822876541396270827307608701767161395777000632901623286438459042213990555497208521630353151640293361883309434616235725905087512928267066484264255288589225451818982464837260565287366459995765078913098192516097876454231792959961227396353292710945650140650489021821987463849127558038367454020671860381057355305206883969607613694101293174176371501485343143531602502530540491948048803341425578016251218260660693967205389956856878635758410037819231411109046764668224796444510851182724278046678959979491157673765278425758260550455233119127751652945919404329875760844150970805293046142253708960037843062780821794594229332127891163819599616115627928680931480090299413938836441475635326230929848267939031483940862551778544174892053030504875248250712123992942319165663792914014248275049510608323150911970388293339601663936034003770345392264124476498350840019972288697527575251675541160963052847181750295020594998127261979121829942148019428888136419014134790588319115643996475422457139137111560120101510721972994125012436027017647878332112169282966099612684437615590191435675699784626101269424943304875391389730245498616588723749593103493346972287902666965788297283965435636547690238876725728841323991824093828822108746223142273661740634424583588760827001217714199087074489544012973503968797512930944933654251388707867329141333856235313633918251132553307474423517894026646988567107497420132379597093739426000523920888524097157585575183170623787132901466063367798657406395942762504848594112297426730259614481493384352303098103848730036247016105949342401643462174707329359932676488384094558437648848424464646742529940996273356463400879018550465849421656170203431787502609591329853061097962275613780041944973145499994354014122372102476214025185959721045156812263876092850029313366970679250442085284435946427567245303342025781637647488599616875871373048140086918130736979456693976679315706794725424083538520830371419583175212839834060484204290401836293321232871583245575015402564366471327116564016269596956054542578121265031635036036430893922480121889545977329463857173104665811842496666879757967062170403823822561198801390170553318488306222541360598718996925894412697408543408153266245155755370125696949373830840697200366218402369288728963108296373150882283458653080101237564395608703395119328624176390058767807411399815894709655147174695363673295831753956946671612713583928265803637166981463939057079572880404976852454008214604455894025322400430670550857829010051235979106598372273548540812963549173503535964333481649563033930356042624444836970094935036589393773156629882355281591069465715650205334259937960267431471457374968578356252843050490386184670826395400136767762381852648842760938775398049859006137575237054740195735261364577836925835876437090497011511554875309351842210712119341823048965306830297513342946060984038853179504514993297815663306434502802181185151430035673752232048876957674224164000491233846252431537905090750596790803873146239741371632036698976644011945267335894927305517922048139218816238710430575985861327558601869250717864862621580880710343506942977257950361280813184663610484038877845137846025565646613576473366912851542463161261281954347556065181608649938925889805184538526086487120269486476999472874073173297168389613159575770990457006609601271188761646211769919331743317130152240869751944086183931167784771609476545892921209808426190344659101837788509005839720473997461091457404027629676414048881479779935575311480181884681654240765637258187161444825538069868670846249178192928852792654143632379646500863977619551402193305664417214502079517798594563141865222391229850569019548337558737883176351123629361104111916988631131903536337749802473879861021611567022770405221004511833874625332301489917945943615760927403105205357257632001016670768692584603241530563740520783413123876952753565667744114968571513974509741261120824750435684210042067994879369448047377323808987005159504025682285632016837863688412870852715713751249275283600761585840374177790577020105641250047683987141447651605042806738113077480120952562119999292069803692220867591489780935802517360384805258556339532181283784604091750761610721157445858803788506571121562274918535562483741917111839469679833725880377594204086050005136679344158122326521304407841400307447997418530793465467357500050072066832644320632238675643721231463463409022585944030114825788341682370258061646277843292223589602717347385339877844373169880103973068299288265628066786479880843086021949976339001815233362664481533553193991820633327108262142783747115539199469647217425322884387206531115838687939668753824687935398669822829119929114492710018349100415123479642478411069070278061079144374177625937055093230510028307383090105875409072444706626251263860813263175731799668161020028021305394149785035384955149773198536777095948453720668734787577563962543766647639572894504466531856976499064452678474097863541536322286759681562707997937324465234624858712567755947302470681355770920677057698077363574316567760416001253226118602133455878129662299987095640059765745400994287627651040828004082934504918209685913071107970426855930428148979408014495945534463291392767954813511668957813957175293700801975887058248440158540956197865394093413351137830605249859166946566820962777527019471636080812968969708977589601928550873828024647315872210211305566991684799887530227187404851733313398722824977230960219518850030948899454137476014488427025274717455933651311368544362053699785644490284706279176090227914448460077961724524941746309178139538467143762912163543178346109490386085343231393354573155265597850035954956145532003205016797856853712076667768319247561665519829473976832081214334929088032913471620553914713338518404469253372760515455431853464248140124639829596922685431536769934046795649070532920661149675567679004148155465697336324260310358378630011001456690588949250569113720653816092353273767366420611435939732946832132748599974219955100200574426768680560398896640370142562455306680321195018847584179173527768146075392366587961411382642829000519432217574859303219097160135575837877371999779925730037820813680724162031089270302784937470446711121893077853813837258589555424652051002404211998786940248471279528346430233930708468365257668550334465224640293872979631431968908281629355495591433129864833246809729194368795275726897466198732727156782398280996204023758723662222190117541872068238567238466308453401727396746302532501425061156618026227588426269302737793346702797483473937742783440839988402948315522342550709562643491193068688726421767089119887223736932216396970006376624447545699609438939181002980875443639798950622718711598986413593121493967963179983913528014109359163365997011273159412578830755817346642285460505194775895891707986473356286423470725622074880336888473228874597909784578857990845137370896822984115599391655706061618220536202170659740923101023842801928123509809686301842621059183851092180403328919067426091225320412949695152822495889952522897162690796705486557876939927003441819070504818677558819882449717034073251890703397874810656171988414412590034344046343501230916758849925514014545311478392338072383381153539512628152564053828068631990162635384997156043018745623240855036721429620743285647697526593438797101984778289208614089921277531314130559001683249448702054074435725217790889786109114194848717490299717400537171859034613379139169900094942199890928323567686767871776006549424516145553368287986616731613962335705960572345619677638102043912693723912486120270676699603114681400071201383631766119624682413244060886715312870239185027926239228993458290040627706614716900514053081424902323338538631174473717219605077130975469067059729847089470714816584193568880036476942059094605298854618296239657871845108951192084211181181019542219879574061138847093885170634509758150793191379284545266428934510199464839503471899753839801360957228567731133997680313474544387479385985906427117967604044965645356909993752071493441014282789858251720649312818558066358915609907312087632715502584768075689488374118444826818918852309619726529497134033510648322903978618926443848164667787335247594854097759451263475967838675352921559632903216715269279964131353168327748638565068060826782445710905547850283933095817690608635189059898493237367992018187350966500907619843201358416823284854351329918902831499885012311721469393692798770309298670793860951357687329968832658828161170082931740865054889691341702728416589413493663704150291009928507287991083375527978027137724897426847292363910976426037847383618496871963079329577011000687865606102246812489081771735903105892848173709385599569880404078399466137903810721967696977311266991223039386643865512908531986945119235030359611947375267027809916799232956695208655754552981245660688161730415582408962051732989533845244642125230002820954488906194774624897759351016539243915792802710970134175889959856716328349628384621065492561673577512919057897265942593063743905192716046338486998340588631830498875466647219141623031513586150570206971928131425219815268361656446055399098201124730077926216825771635539018986225597851795596112437465879170176753321556429334414010186638429686957119417513608380941813930169534901283360450866424369237340804710198663222901999342717367517733217640172860550759127032222785532306783833709847363034114358665475816250269923611457297589890717275955920778133279339689623846428001004466812211884248284379486110362033622548717227291958505071269768904341534257422414204106174613619821697113222504230134323806032097066340760631269317005483874910544878009487287097840145128043622860227241280885332272893420008230691676244763713547163405829232164039851236962872030254676555832805069538299335628643351414436061630349022637725618863391952495888630514324218561235192397760665672102504979845096272390784857450818066972458258856821398789674130342895810159498647370788718728196469054989438555084697951247540247137088931283913973676289095246665166467429091080868035183278294114848089197146422020775416873171830400817275574914550064488048321385506669284835804461105934858472298208871087064319481020291939485169623773179131474233414115355310861245379101472082220656759243887124323603161180822442171217274438758906598178311982750055015231626013249370471756223931138327802030212147232304688627163367595270290598449843552655780688843250416828425949560770368112119842696059852992618237381619925311093531518585199654452765395248704727375162997717520109141602400267523991990120484188730456099656597846874918958878408744440075211203334132898610473912039550628026518835807903120731329261503298008038941109595645484222217035940609040550086586562026878420376850502984701274240876268337934264603723442182918763332745518904579047224106816475156116427433338063801721260860179914217654261039679514668261451059746677301017070610558276086089382178467341128956825742013074661730612707240692101436913495793366910881562614367382112324480202423466896408146522423033183794265620699470125361933398477413021255786305473755623480385127495439804805532086712018397036192310951534335236252572106264584717944065881655085367393393365827922435034370216552646645530218440674128031604996076287114102029795125008159831012474411005545035043713426178292142244322956864895169164721198633144704211038459484937503748531020137428327719709012700764996526531568282549211645076787286367525959903305505120334135648426024309039096389614750204205879564942172516739939101054503932005282305579655531194800273082658672469706690777683377943633909448674214463507424174304385815650782931918530130321581704890539603592356238506889233161638807875961295005834457609911524264476258579761992598408288962861924148895215144703736561621106902614446683934567476205170457467694401406874034826610935515819192323300330985796221490631514123736065721700209998801417875843116807501796046842625369544996649273342818624987920503160229350687090642291078180604444364353250508522827621104543796902348910621103758011261973884221022899418336111819356579252248294657046214847994424098365484314492739286028499176483094863004003907048636314628945586202080847931502041668393969051490763867496804803808323336536036657692569697067274685216397194227868831716862043062438002381859964489795166202171459492539718784773672993253381474943593671340335924614669679261594137641307211461967338643216489632095195863881170442324228987319276725102834329429592359715474735911417211913361551856167494480207099176484548153026240549856283501643788359226191418794267807619517625717284648277169672810350821855009210514691811310565053709675007336955263523790318934091061344855536100160090199729850313842867736671081181588131036870507664924561647178825996006040655431961298548702600076562678581952955247715529574592778821617878085633390179785743723388435540608745147757662176594627928703409440658796460993363270742085950530748104930223431645742477511195366399662446562113826406917192344857584148441450723346235546534991831032796885886898148256755249690537804841147049197858875691129767960180109189960365651508934723383709005174947796648161650527241534551650459164206129285105256411975767262695825096764232822601686020955777723678946195535523766546816718233433834045518543083576221801552588042816852071323538134029845294016583202265685431271921594436260782162594360430162834123133152183627706766308531792467265735699539575768592080632947689106198429252722758766856200747316859422642008663319853588832540676167716501423247165891282049275874558221473261244552973479699578665939306745508916425419478140357312233113662448245151764353056283636641637819520426427635707899498565923858355066287684982964477914779571531852009670231938408163574711880520675467571554442377081459652013315454628286052699608806405469196171541386743061400855281944913722953894615212783450034446313407591706665241749266792710093478866074970056437916743461155667751148647987827688170279156756387790783399470122913833141866674348501935590739014389006341513142930290580346879851586688414644072897709452134021944340704964929559410245400862267335925299781345867582571796328814274539371260812286199220799405069782169530690012820581997173059172078711935387602313714674412720044399961002930568533418869105032383793757499069028108661779995327611175084942608615240603907610789822942398652318615075116099558001604868494055198032839513352203130497236064946997069558900338675529124577364030387990236558283558969669817699476559104490305814514579054547981357479896363937966113461583732667233125365810112605532121541357472338939534081062303612082229491205513672438667544889774378694232760723153108607717089323241014494541493992339754857712733647777051055980188946547472349850793692754064679436827347363605326643499101663442667592142076306670465004072270158483126544847310452265352243998036861162625586336380353076829286716332481084780655539819278198591005305241598297713480136810722082304653617098599951004878567004626207463022583591011024672442651775451143834534247994247587812443120434196543563795592708385664016513454013947100993901725242044098026775048448447111568500612275776442913109340051274638416837595336709315648779508653652355484247399782871509972622141536738885801064542081722370242909076190739264178967713217602820227508185618847704999889339941102473702942287219133297534573110786479144926238718060406642063719451747659091265102906715306739367654202517538820049481238171387121204899126595204558748818136888693414734395996568515493901598806632398079814312388540466806329690193593122349317105965527830437380584890008901361530074764201601509133098443255953528984043217403007446116447376228311044857417551797860623809028805642044677290101976226619418397728163010762585750609098355437217133976308670551009401581618104941402896796359794839730052231747520641105524354847839685037591754628767074069896834959761410077798266369555353821366287836374988513269891824470492805452670742920582527665974294730230304663447177857292228851225586044639119653093976384920641036438830663494461726152937443421590174542734978180612646313414310393268030907712566774840291142230688436286238808277873567382369703957585969300380038435381953053284158053905988779838268266939996258449424182281082635438498488318873380337381806308268949630237440704136403861188993634843289467407186953574615769686968292922914081716747679488415937989462317787675653014070837489033806035631650796246556065214336980412786268766107718876426816069203916553183035265721440027657302559175046668601773271851344309850045722349320744687030083590786113193067456095155507987756836534353737139738554486875176501090453587614705133443918582347701119235186859282673406628624167150055203264792006326055681614363254852848664473290126778064996442303966435980173538890173521295287130958806978564709780012251486464486837088688691817121849060906798771561985374520653092582654113070023220369672174106764964614445089886408469154244260841311858123845137694955662855357810767574683589443636808862011014299499235238307025477084134895998205382207295408167128835352821745633672456188908046670332599504116503843895945327260058751857874759617381536136070938091133825329902811231936315242033641387416166493662371983803429596093406624247727113138497510159854515365523392588158857007365585915712140084510142232984769810369408017194411497353787866399766460184124143675894348760809893395903050619295996283198298369853859157173196374456165691613254855570464359966508381396315361352838604890974695396016211391962270781896983671008285051236361037721650402703751989022126534790312460701001753808801330218760048205733012080812719498184076720602976033187463665067190003088641763532803449712205959249880177521396609638679338875499020446378928417939869230616533898201707271753312017154725143149567609673172854657717827992179954391437462018745676942789011020726013060418017824562969742691181281077293686084160033358820039792408947590699455344635004123403703448257280814459396723690073350749962069636624280236015471665909010578611170830780461832413504827454625117665054209935460645484562672564193889336397357885361013485021935812511436360801607433351577046761490157524853370029966687491762596629721560389011879352286372086493999081341916182918939928890598616765668010636103232362810477430953507518259309915857411876128698054749636084775296832387985687542929025259960647390641165945721824377778683741504080827379986788629606107376364206809520841328029163720355832910055111827936494804093428283009643949864289182799594841034239542308381931727234149706117882570647297956122541293645679350960950665001989107885246656807085638092957125770380333758570033351759828129346230973392610099629671560989298178756026690712530163006042605371941242026201150618662340141070721711704115600370734221983820893198379350898650123932405037045570564572368392688524843457506826149045841254156176677767266481731779066870637683431993800465570217611771441320564816845046456099963484856218751555817558111884768704134218041091322247572149242852042846213389118405515324203754260940889476173954460534965730282049985799995409336527321489955635705300057344406058131084495599015163438400563808806633181745381362893388117950092289183865583918710014229560271129608272341928232293779310158917729829657645619867541586465940175194348508856645343928390701972059378832660444122225807144922211098149050285754853158115751110174642613808807376544674688785231612672022980319096377692949312406209899339082959961707365699364704491806790189975213470943682751948460403003726218530943007161807216603805418906345762313044305961166039924126703030604083758858978695452556986871161068889718707140559061055578649239451934509842082572653517826808753886104448285946220899994453843658999983394116502313347322373014307026613355219563494445217984726784447064091465258616446675444567690264955012448748385413713598991072571032694108285001600707213839390491119489830675175585199782891258116098139530228248493555952019799869939940458374864616606505505930881866766334105766345208017609559893030864981957197291372133968717577004300063100901353330610544798068783416630056046690629403551846225146387982447989069691475674828501436226347619914984882206019381945291157971606101850035156499636440617495436675676027745437328538060679909649285761399836335624772533116241230050755201428246908460613601951768713004585263745491852046471376705132142077348984676670478967797047093792557835222278284800962100499831742693648946959911976451663234585704053070148464970304600879363135573831870575353386918369190861235527388989544370982296494006101102372034191700964177645838107307826089324948851735185348426372233435984394924249250950784980410914287528673218241649415967544181027125322483599028479813960246626490238755235592612000191900202440238364983745270643756374342610555533342397197346967824034971864333762866629369233454275814106450739749497491062577140621106079251574155282234654327683465775933935764239599479161598487398315478581810599267876849662775139037324411832728382015266534798142720040434520593220399016311791429844564754624646378461096535495461637170492606819960936320565799894098610504630351993148428579513623033659581409648098532960182705831760151701074262652367271780213437939851903699222684036419578227654008107345996022873981276811305900731571896008191978425206667012567468916533149461563399799834438224490874907479037693007258312670037233153064504389430629623771526357299978519263075868624905359250643468808290931483223467627148718954444101732471684337711138651562981900892369657777129279566700907163759505610160000266587737821242360892220140125647444581877067676690792213506139086028815283856314378012828355895675104244711806381114525355018007938590783038844989413839685903741077374801686168442048843857390167000025544331039043583862332810824357368357695984578837454485385475328222698799139788006926963769464653065164411278837222089725239162843615388397828236003962633119074176484493699763967776262511062918140427057524932634908708926724862741878639002259963013269360551865143968021532370958936825301216512305681013791824379978084294569666774116410215620734889936561602929885556368919303993509134223160649982061125747347521394422422161817735644683399804767622333573355667058266003019989811117832006148837516422072406060748073523336122114699630041808833857792809331559240140317645446754369067881424497088777091802504927730639234979268023442886227860639345042538110835104059863347630285486832421643880292887175941345522255880153198992573880511040877370592629614196987151373570445218166546949254896032641649403966398192819906947904529465291787190942079065860257545092485670081425981124670517225068640029898321474996674601121187473153999592126488174315555916939135735265776012838418381615617568144033295111369533041395862773950628257270209976227348471268264366776140437337551047249343241832585377713126496352222328691823494886815428857454330023919660429067909958474698065916897254822299332206286061611213079831677121286301609205972802443157128111211691888296379174129679324878420295590633939856569448559158744986028013879694919589329114413321761381766560546037937605493153074873585094226407601858434271158147217560229244564220067747984572883705875805149229830175106444117541442391481167088251368904702014017677335507850499124433893217009507416078270664415111897319315004404000582112695607597307011156351263854805329734498117402131477197525475994469708918577871896394776291442883689305178951095549170787256963182139500530461191479697798828838650721991560125725301409723711266270231497521642091281472012132207359295423106717955329773295538427837886053244444936200513022002660653793553223902779517153894186039466178267747353510329036928636660425524997479633001531760695379517060592298861449075056315939257426180148393922838727763507414785725222899152896748056346446523459057251454201176112759584802110505721752029445343222975803788086531926986249635409935791884381022901864279247334117812328122707744747375143565271835503968236850970768750710309136539083362052674632415071115228106740591692696012228461076977025811283349631997952595017736475589284150584074055363434506349785039422319714781588869687532558635119861543024272132977611114447039112264005427518852412271281818540765717930015362051101268431015316168994126821534534902596411946685399762901431159693445454130414713197783931421964060588811424141573473751241615336407518711961676233365114707964169328021582124099310360874129637985437885814832338186868278921673706210509627557391713383298417987123399913983900062103307132987872310675794370687958891392558313407626557159418487500945045396633565618262344094632051933450221781806063759762273305006967936362043116971610896973661326463808785783215449798220859129382814188875761919239848209293920537341696229888270175617246365405372388437048871824004606260223083990467126417019401361933597586546519053703598631865290096210986822777642497607678410655120421674137971946230047548695237169714128293751445704786334969454661136849614381754910341427150382876619761516049879108397335463777396240981091441232459023594801987553515003949429771650008018962036102101075334026859207999242542433383867026226055169296983240028040123762384611106131848656051499465256627611738357692572816603916690545647537606327734598702012378563752882988956233729155992040441635828518172617994784592097949313548292139868766654204073980011874289193210124405808739411650434417665283412914633794324529746428194790612119500173691712836041176101612784153141556582085487943349060769996767590454205119443712953603683207730302175174651779900436579315797074418848701037933642086588196214438166786065512320861766424295356632390825085618814318252512650959590435545474957808535952893158110409080342362845404806537544754818984958411699887974293877339466564851674755688271303721436931268280265677529860844295962850039437007355785375771541309241896457389760541846906455852163274114112680890553240663581205806553190134328241219174012366850543387742568922010343714950181231212309233800200512851980177820153708414335466418855804194345982802433461479095138242957340427193947500807121857367792686912336742785673021617170824189477177808306415149849142362489201751251969317880497516325455089940776970546388478277386450878392729787340170060260830959581736011658811372487245293407715267183629103355308899883143350748594148316539244686504888903236546646873087799623499772874606394586986812385063336082278680025205552815967011083587425162578399819894714269437908006799892490389657528158427863294799451856673479894488285384935033323097325671424191081474295305710979931667891180389958259327727814809099298580386078800244911869731511017928876668224457458222921397874901159734933849245414407237070569440845651127321954263446576517927474376892202403906677320223660348191509014793273132295442617128500262013384645950376433359557334159904793469463657830040358752620267672870294806438788790533384434727282218998541544635782723368743469049156300169865499608488716538767922083081966165005703751927487519218576437436995789861331943548651577332211808152021399973951295485398386558095460779095028177690371178404280481223131662432396291281302925769134704948391745676860939191828146212212771026843810760576380654905514868808544961777966209357186155784149305149196614607693212303456182861115095568674820781173904031824359508579165032785560230928728875274725356013662478485078843997310669431726839684836107226356777215891064868899536231725070436808078276422173579712370017220889304819143406013489599074296175445478133543737964289014863773020468500410581429383721557495859255394342131310009023187895897554390201812138663644086914834427023547853344179140044400508283578338092635851120288361872054072386646568303903065525640547581005324929387750887717567735762616764295048988324591639211988846064856799205762068203372755433949037477641902750687998342729320565151400948164081452291617171295646736889995776901274849348177778151701204546946705283442521766601127205319806416659313645526602871970033973532393862552836177181463558803342857913243066731882144506405218419847156436019050263996953078376449171710843059891294172834347080267283066478268782890720430901337256462420361315890275601755888655393537973870189611496422766598289644183550996699652233240695272244333686679337313751546056844842950901853249136291776822237688413163650723403976454612894267175193457641355770215047014289984529489456322124042349127891289328374258773241230738080248865766087780766258171913157651421009621317510898158234155049637875364847080582903205154951200855128849188916143001679887363378318457932699663777236812169635798930098535138580307447936476637086359494286361155123550448189602284107859492617650484851616912386119391607692202951588721823400686909248005591954722776069606033111481640473151616562774664451788047978341867990847667613784329077967916744651752344172963313427859768167380833113391075394212161239543979601443265647995871110033615658797675379096755283404803580455813300922717068117295332822716905395781733408875606427661801393104221606941241521328185236549357456201494669704039550712114650179901313908994792963003152175078393624385067258736338719510381624912203576492771292762751553869290544958209593825512319701535680748133713475001474615982137892526627214866995416625141489467579900727779202613384641024957270592145387859605400973662190111092616236248076979494717352790998169031072839225760366551422455879907951711121547451094111473430408079353202482057192985470858821597301651172549368141913575725793663952600175538455176704940948596598573589060874119536730049134288478574184953340699281043356087434503554483407571035374261242670756362863157248858611412304162652366134577912269353126248658751930730311435940417799190428113538188509278647254850330415331317891812865974848864562343827752274957086263322123689125100463040949310323675776266104867182547268014569299804527583342653620834300447559609710673125319617850588223741086564843929151105912633169265103154405632973447062510959848267886104491997133632192066129611949892042249544030576894513423303208504974445397062453042361182233521596869529261387317693148459625608203425426041169973552719691679441425877411010713736063413311240482598049135184276362076870474550285979953809177666166432626825684040885798569681530388281895694380972481582337198372905364158899739067451102988821314749863412765135618183067384654717978687650802575534774169659492386526338281063826858107372049650524299771899082789327917014667338141680528052225456780116392497500271812788864611270320259118710402417005431361243965901644575434153893344051068802552506298915903772086362231256144284491435698675078866612190544073073039970061764021096957642440784594050605700602645536167155233595298829741331416073343242444194213250492565185436205894642363216618746934064649452010566309569934073272082779402668821490586765237350116816205347778412095891797543511388324086043425100324700279334285571843007797247173714505694044854144569320061214345522158324930989865621738294019543393718245271773974467177655864888709693470660291726997709570133515169058380605327184993499407757701639322668357964691360293072702753755646885660120000476578988807096704898063325463460017744237061792870002878151529733650665105984981914421839116313650042095789127873277485895592371860874458981846876705407726489168424896061551421448066396298577915935138611789148025296252984533460229821213098267213131076248855352266354338896732623918200012386013057781667150418628600772367853162932587217680915078857330029536022606048753772414049715080504312164736949584930366227418458066586901628730581516038341779316237551556521057755510964025849841357757342269688180418806459288503519131932055674885846956202308017062693958190213814405990117268169509234018289931240708377626781362673104302064517699408599852650448847840644503086850872076132206944655312057440253425755236703531340350110020801683108249335620647581570554997920957155008832419722620124422391573246039556055413372486138460714388716045989229337438537367626184067143483433706320919866079120123353375645748368253754835940923182475765933348343507099291384073466781328500907887730892350794337952435895926176604429085896695524177634344979246821366601523240796648205340099704824136843922764681095874834566026530582803355444356987934833930586020062877949988322068454108416443082172518081815509880606411799467214527586635117024105354366643475592434018316661468592766062728413781431752969678403254586807356282382891596188403545897164894453417211032040601785138574237469139878778605656449432249566350555688073976404130313177397227549318377992671822123594320483352085042528550621332321273209325286691942660894138177970594306460575809657851113766146221272666794316285810283914960532417164802746678421190703340006505929415643562878391667593702247150307268303881159521765409457406418441610618760182041910221584584708414449736614354075246502375710517044365557453816865679661741788935058919491011208808230052834596286788728857075620013445622183847032075507217118617330165376647961979484679359263882452218189185322348239030416586438822147913903178448461351152649510428909913877149606933979438661204494294812155205573853126609704752344526570276991049418729401766993501909227170106208133177712983763085075735038132367804965095807935869045731383739679945385790028942282632048025038190987183419335073554667140213212286418063004391634155749267638781996330293853264991954690657951697686965245468672259665896827557484218637504718798697946622874415686280233524391691771010424307015993891116104959954136948090449030690216473620151258251511885170453348886362907972039488129095302167944370834053891611460214976612658443434912562270698736064347733388579683551249947004138614736430249687969220886655120017300580753371566891912500756319705466041496727907236745394118019689114200691688855957286740999394832672379995907750095619748983340304976020475822034554240842041844333773414684892287909247972789041717980154285874992751056479136358583610149929626550894916392814789987829147875116119113081861650984295190019481544914359016608301511450919928452768987565556877407076445227596464213976516262491895080075249167231906397137201612927063524321436670137947649666042976560671048069222078377779315691767415627454908636056275641206536138165271271343033433852878842351402139645016995067918747705341599311676427907239519113411774693558655862375768049529482104183020175521151908630878697150634376107266352149283257849756167084730760558848394092660842022626517308480961444187021229424594674890563021597901112608693963755676294224933463803472728658060406925561647590275411047729241807395327799413312288824080980322847440487308972677470852287390732148572504070167516336721663069451862746467871366068442375836470237478629900425584624483723000363874595373215491063920051812214065663232215967262753516991940736369899636481826508553611945516660997075358946336226256852265397696663925447179582841724611762446082578711251016174287152414666268862088050875601326425379556114753828309215001165497150789446819326738671714154165975768450222486958097547574441570227549045651198912956278987389504260069424146196439525851639144350467821582002392324088141286020855419604417955985851602863568367130838013729941448718778326269342891956554078279093563143247069299700946523444709276829406976292337342671950653511971945359867163141336982201507359223732881456992993429376113377864941058984716029505342267994615451293700879322855429797103721967137136219447434072970913087426641024274014743602459447778483177430301364884045156973044801457122428853369385990662255210327688837794188190179778438735701804390514185639012599105312751013114131095138846219772699201131409256108157581119221778328791425579384211972976024488759497264684907075027968738260789126358150514068678055611888087809650077220642408518468972142931328143860349227709152640822307598889232839635922651499131381518368264590772189447888773229352025499140418135764326413279143378339742401479006804983014212171657891161894201406903507951332007685695824570174958666856452826783460886221578971660539842994640959118012340339266478251000425793761968580630388685847014180946880323617257958185143723839627806227496310707574572151988020701942772439142419470726614358348244283217739321118169710228920948284231769636743015404421447026139103270781256670075857941231141875772476397328666546803950786398722928780297459075457891992421370851745483812183444139446243273621700888853913738637327280528877908720534865972298607007525488115098025243721377509098732359945136830581433397494290006972243049844079274001187023723286406839287211159943127343885336882268437827684106412356426944434614097890279973864405261761841517278502935173897388455974385752744065269129848917307641749371929739692272020258686577928513684010175651842049992569437918662150575000037341158364261137806481912046858073051368459883733861526584910246229484732816913823177920509429149714892809486690375004191648049474243658321400954820760371924043124010089219177236956115469281391552902533550636413938035903635267270711297392739891269369093902973476229879186136758681710159497707519409442125056704639761938262703377125124551588886855460439923568282760919115168597298550235687426701498121273818336469124004876809155423992371712200971999663632636331827289604834056577315389409723554174523537507618323659034804532730132556656942261722755225525581153071490897627300506954776943314995029897752764037666186647314580703907639808267822582346782362024658147930004508911613734452780491677644516351236751655328677194805010635539169857705904182900509902635599891410436734254411647687603222857970519440213200974493177876906073976016571392321103850169593823172589348218234688120805979505903512839983563935494387881174630554326957579433553696116219186936603809798393752498043389649408134756058853680204912294588764582659452765101194212654858170855396264438205074096832667091702740762074710443734566995675530702851727435102726935336443704159273503444731539328778284345137786355753133822187350774328374722081546411153624571559287211908870965777941480479375510588831741335693890723365307054019000995171904036279398046721666727723866034348980041129880748568366014938119376989300653492351369666083650659826006364545687782875651315120076857882783300035714002085388754564303533763377725525226211846378762732685488945856738884286317310295861828837132925341141171907423421370274340508660304133417832866903127942695640011935077893052301602160848452814982916405521543999891867124994951723283825238812366916911445429571868207081245049257173474576160506624754476200267479672004640641620677245182343831892178056063228812473777151450015312213371724790433455132030590629030664027820111045419303494454652357699132181333634339395799524568087629472870361666709566207933573102943400979454404927009982827818018241184304383117440418966401162894928161029841189259608278755763838687298397989736044742384688792679820376678431336701323630116227415105424366945074466888244695533000855108866803407321786847904126731663525016231042842645479460335968192552943707672861825556522744290661560154609301789989323783531610780862800051990504870456277415564281571243200297957097171037536928174608395149318337261608933390448881977667119514065999976570388574941753091551368623006509457907411051134969739908063756959993335662787551870040483301418050703670175911340987557909498893958424971853118217405612646912528768167680691132982203750780891676519858874961069731201712679696579952943282453253186018717479233031841638899845204107683844087786746472555061930813697259576737726836294821749986799308292325265815619625707761309806114573112207472447344643525481896243890981547872725696974221937741255991863058422458452227294599477665914532224114593412013595139119050532548478839917328116951891543510822425073121765157759080176326734342163261403180666198295227965789984969605121165224487238203913362595879759966564992491131189717935675004714897045898620240529689008225849347753563517361841526475771536983994967198825191681005435256032709580629078695228524021318994248670693870023446690638246580284694873296023975974981258533680978449949357510281606174739406802319322978840349403677302058108252753073831157773455790074629558593923290633913778295971642413208528884600495301700147777690027618258936523254582702434298639227629772048769552021167849690830334679632212039924638837638956309292753578883591853886234891894866373895261977068555440945120174306192558315841985209615255416822787629720838046541108043832998054668081397689375422855688194986558933025691512421063941905561616116015007179900926307561968264885648900779315590381642608474785912585671515577852938464082321045283107767955629610342708969844986222038550016974954242090579233976979521049389651811077755178213142394589830424107860960469178526013859760704967974960309948908712671889203882565683860220935588964222424137317831352535630945618221641279423090005794366512195441207286950935578350870030078771601251433706700191433223666073268801996602602416146502221289211511490929966718072387853717614124010870560102928993944282301572600149206747425669060084567511091738205522854007970358527292447760061094938998890072966196767860763725451375662338363815606728118370076374976377725346759994070847406369425568597411764105341747379308196122808164831182701262273851910858916824727674538658529603087805293290435131664309384895707769653247308614116433623939174319016821318863063224232913247743748711275655117605385943162387200876033759722484076394831225352307252145062760860280825268621918550731842993153983102217350607105281569694214694902732963350141908303214639845541662981109779651799703828594734853060071307648810329381171671539653356868575742023100761895223074567959821150652901315150272211692123435831139627590690423296311127393095878425545939761718425179338723091800699991357366552675583152754830800077120974282392718549319640942908083623568145614813569521402924840756242696344171211197078815902222735081032681796283343743805199120045774018696689655211169122034060450074800389628899383442296817022317929973227625428254759648798948275668871325165535285098878270206390363748482769957447640179377257611182066682098966319156601251917454523185446664862544255782287226858198925233852952505351696852482278622071074623082111574388285556130420260195364799573416627445488385640522040258273922059184270751212217574692280783489627655921110263825300953350778246944976716299390854080466180147075238984664936577167760846948107185329565024871547592072356622815652282240657216514462699479199850863715645395119653647070430543691053270776845664626147830398774802639911641064348185295249152691510660128908519479540991747228296443145923510588880069633063557472926980148960756659221099196357274595075414110337813166654012021072999338918481289127683588257538391323494508692851371160411724935625722328225115133695404697464146906728853423436320712920676505229353272937511040332258484762090646169695152186137302207369501269936974397151644983871453194981446949498672552293821952060395774377344203882524586556893741842391812423663890743451856042586296989084368330124921321162456729045000871761398231153914421036918613344671551031421196673884171791868655678798193528048356813964974178013169754642442202580609285663360273064149747952397335695862381750953028185351210323455477292750375265942502823682024820941322584389788182950556232882137949189636085060032433736292648201262951843400470983189092547669193417802408642165525531919088730329725159313643952998399147120844810835984077251381443143533147370063545026669735022257094414292018807954698651117161372012725855381943376150086112803104455501632630335505868797313864965118492007660545260938998397920866859449401104170913546726478941545905565879208021518913061055639137541251777901752497163121287797284830560904659237203562070691024243610958499855687662792729605964297525643376298647182658154989949465580313427693069006736076089844450287041798077832349544425633711761096410302006973485060280993828685141704635706587436820900988025934339101383904938447716864331644200370273429144861065234818289175380202434581118196487151809483424341886924084158786444471274202698279128048118735159901700708064270628354326250169905186759366192700200342123283839451594639544722275780852947642370328501857670659698860495739118845460628811628092131021032117197496958065312933260760242576426896819990573749510120754775176725706198297253674949697463777561767956464692699061904875400641088418378646195098653183248254427475553959231555551490504908159823955350808175612544062335006985331921003413334417899711886646335786925035764953935914232779180787097246969008757248995255612771533880867619500751722234473664555533804541331613509679088220669589591623422259793057659409782422412227596257659926821338068901364833037196399069670303359871670243067897850191170143797390793003467916538577658060995138916573452838684511851502632033209086292142596382115204822305792485831495476926698282642804340379523093943788753134983277324615012660889584468093263163359833297823146298159515091852775174946538638629262445103789356086943293992759398530371412871058606757324167111756897649310286171832077570890411384853741523933289242992626107582814286674883795750216274624471338602474748946901923634917930476068596673457607871987412176445212518941566839333024119725478222935996268425157870545202291219133777480612564669773066919509003589507444717270934909561338449019995378238011578263782644179554168686461402756254027922663157469324122715161101330827928333475073257653734961133709726404949918042125695366426556488341271298215205059624544765455286005296848191676122812470902483994190339724972654409568965157563476996158082620789873713329872064268834246009197663715003671756643874795856361955951157295091213872640650069302096378011832941497078024354080945684904741446747004751424576353398248048991908428133918965251552048915494883238347585366061019757112170337832466224901887383495449671545706145974649584073859985508491399047318346130599415734672537269374148441031382278044609677930391697209006326532167893994338300577931794603309787892738570378523567302760019493485813409609997969599204172192157766686191133625035740476318909518452961864661930959481472747021161478578659086888962270056482660106633123313078940559318212678654644872534343844348852607259746848235569950958698874788041402681930626609997164658685501205633998713708450641588149838771453482465429802211134053610722083568036886620198766677437263315033718170034788037845691344454480552593288367956650553395404580393382074064410290487032578644421830802936460083958410150209061127742508921225316455125567692235635308794012291298104659906939469133412506149054766109460107459420329424379825653337893398747137315927485905738319687788286480570455346924730295096588700464411071200550465738756527814311612465991293815420165851825101836858741329105522024231321286612200701931006572637895934068890137542923886905734735746279232309715722015571685929107492344470184763411663973343256621318918662444530678888774895305186778692984303955860472835088692203296602828017355895135237670903717916165229595871860915360467899572754317813823647728359609069601272894012954203509695726109104672619192022964797389968103500768284240792134658549988163097348115634427371703762688688991910718600388657002053000986463443380115136477217337961092063117943935507659290720356490635251561412717221019476508237840900066373801266017762371526062566169092905096630107940388839290809742320386043447733814522115970362656833005084841354818705956721417101352236281818189487902122026225535657521616338854956346770764937765520501979456007590144453145293005595909164558066097978078056070703502606718348893982872370679694690160670777338094095188052576345042185214060199463597310161644625179024971823221171664508624414231482285538049776765089914754602634418691563187576702355540165179167602937021515181586136009816029611369804446874895229795915965267787416174953423822709794639516394388970710195050162036108355294398020945596048953110096113455734346493252999817394524054081586255705422947041056973952121002051936647111566182835539349979349961699935161461954484200484998680232883814356584581856596466782376189160230632836332538382115831947804590985100850044395815708625993811502689628886055448133855370967348339242948017724138858646131911449031260375104075617977349220012769523173657386792025041193789062019240831972457620587693716139953083033488972531429886418366795163030902519431246161992296916580445487498721194756826616227176849571270243589209738125093673177770246255690991189214628218741419585216511370110420935670734008928529408762484777645211274787437816145815434425704221587672231093263214745603873462378647400435190504009527013467838681065792703742833969307576546563314071114411547141043363170644013520864937568462174519379153617467425379530140999812701494938680747376342907488988194211363691695268999814285442064376745106423690765540293663803739948670087790563379877237569542174966245880355515423414697180803552029208600964389997800720050257006867801822166534448006840120312297827033386979575249461420167429582807707611421065600066074733589386525459010191281980564607762353273431483422969219903228113624413455724571404130812710347356638486088275534688539242943213534855695517221003649072071639678999182897599497524930190063107679605847772593392307970520629429175882548213266502770485703915583585114210977600871655362711413400971150030478215330870430911911266416600138894501785589006037903777928067366859153676626330138575126612806284355698012991089040691490444907165041422311854454184039863376835815377313194581201967195241843725446083782683192924011472564967682891025626376237559580129796338313168464197099532184552722501126945437815394497979169602561815129338845484271596014188136711430321146892062184876904563725520032569189499212174302958822926432976487772243812910665155243534370889317555286918702064229046773597025713704627327410344790487136115363676643248356110611599220291443855577863713141411000476396363732033677558838434738134563241970232024245255375942647882659169241550750372418246971627267179156883266361344115078581246794728100275986694068767689791082208687397327127011926803954199138208999062605897558605042459475993513598717222690119429276226103885943009160044432765052713131769750996147672054094619893945405495984782991310521288032248636669843998408256654346225895875567535441090589699290971433862034418044457883335401243221182233501841110028216617374250408689862871685827992892358452101508293763330091126787560040750287847074668648535269156122392862342715634130060208347858609501883880977456412731611046843177386800538923434671316160018802712948763071553543937843108435062556424991823702377663309628922678621826745699514761075463774334168163554531813436705008516692230738189082847609050145278386009509564545781843215537369248997898183432906526884102255487186327080093268399568746778296644660841833666970775574436407077111788596984099609418733741347140359484001408083612221833054733545281038230070197113601865018892334855568274750008841442283849950065546241489374308783529507736146123570145536324006432518309621411728054633757960868760886992526370974682844619545982100146061229608076742754960384765511169905577110759692545174327988901232166231223805558256399361800866007443578608728104689271887893549054957018462157734866731961481384539944225512290631129346964213527202068938430722043235037037535202730099887331514048280701464774113710876615655216265864764057625753621700884730404896643493509250108281150214209593306976970570005322741026586894175528633918162296738928118667557054879143460294329285340504228054386558720040183477435949430404057732245909328666231946761698676655924915670578950815897261074105624058791909689347924116832608409037464462009825628914535083732547118052011449637172801103170706529172851279136068322137599195511747484258993048537890986860795875646966129103243331294480457479288770149081999775151269915575693476788774503936523037062278079681223947896683687184715460944620266548424524761265372156508033170781903078291584009227017308351135383271975860164512947361863748820013112375911737320538877120816573255237843488638200116365744686864476383465238233973825493048114326481533595280756387092708395095427116796945319965179312993808834662527794872587460423372530325473425766554047261949269767026114174938126008383623652544567569549033969291566694872827388437820083185015558132931802620947378478701490430118142598484636621679072780400914778706056077222172421000835112323507687347098695127159626548487580080831166594369515369378538431063299425184660115100996591068855450341649847459629937470018490454449620465928348244618582186665934600071474088483441747065049400669228980169859658774817175420177216111605923812460141014089034457778359343160125252048515490628026066082962340695255267929147469920960744042199472057073228124312182134975219554185005361996221409863401084962352311319379472520039205125949753730001932094787350303216657705228271980166460979513193931409542110345552700517196008531224983028015067515182296749875171083437658224151341962488780000337677023457389414941029514395167452254927549605530532562825951273820626867054411095936409361997600387869162183276436563433967481745722086547454025552119089723313875427305329414357985402194465674283910657702331662533044068015664086163506622894852111094157812656020755057992425768824012661273403068528702488494501967326521244570616018862875365730027272143796408630536784693062207192599931391415961444410358571375084633622715014952283663760782887030018308029183221033533108366216600531572606132050344897721505899704159467881311825399877286257314130811733036727986053693659019464447855383235284066087221376513740263473041247694121884811661313129365904056130436351642883572939309391755439184420797550077931581244323637586283358447107641627506937536336819575659132609329721100514258105332758453673083297804658913526045247867314490492478935735019839936073620621619798505760302686473445594451020056493566281851261734517774459744600201976057231481657258213557297466557884187136803275566566461036581424391437966996648360747057777086112679458587625216561291095325189843964827093671126995977703765587813249715364185266146091321719790957604197509729223711968800306013647530637028771761021227439760905579279498788826324463160502644571120322691742600650151335991647770426525255842392915572046340781766212562614348466356086531244260052683270222017755295060200475379462022234166494901134127191631010807259351990342424108352434880281393208228705579848520280644339529805406770861077586044647122960742385989465078895785237084502439172746442280097521314074048109086873562673676002229863854847300274118806747023326565917103842011006757127625829211228275907788683648494245454030720077777028797253140806131011743161284396329781844179859936432893149007751146616677300502918358651736600123281486503867876153777694506869218448578730579777781220918544881014705214543499478618864339313853323390514578417996132858661175554388874115589613926515569255419295962487600101951485781053216574986356557752766847840965250026457958743248422338445309140315898665814071944863071280931722988077791871974891848936456418192859411467092431426244445165871023192937313744045077879374344495974055292252752874610409180071034369420076799726615465099568176018797915957945929170706879491285754676404382455775883052845079656258104509981489467857026966719046748749332342364660325191491291180724070719109838844824039326797666229316073986506562739659366440093761812085139479679379705842901461383627792400546682687709346484748867054206246830804359888465320822328689633969859722673628232124253869187201693656243044145079900750392871683298412017633754048841321668066820857869492848075242154387069440512059968696676813565277677795415457722469963471031514166463929957729140491264701705330606402855270370625604661105463115876441450942760814714479411199055444811025075709842912545906460919653312830312866563702159163764062730191362644590542525799927938259000850857417002595703788656968250309605828967773526945885993524816246518502151437822259455734553623069207006942543493801295304794768631667800415163135981647407970491142859512078169557000397350937546105306913029887573937426746636698190940775225722857109055648737282886465351768822707312682761941752592943207310261335848408035298279352478474625255569973883130892411407966889639497573633489891290125323656320929566967419705673705056530541706556136844574119183727593141615366420463849814811859894992518939458217952400380961005412687261439242133996807794127213937294379696012539234838855871045266715521696050884759414791990869125790933669480944548705195739179771232685967632216885788198550104177076183424649353304610047807630598973102119507104254178925000212570845934239424117451165258971179398009904131644552954268018137093113792205464011837043126701588177775955150039349601923814845762369479962946568418665620629427273665212015664607080445031858481144228031236708014570114849034728250909046691440063584114026367123940624239365224924885384455430174929690171834331483410092248821615466807259010989178044746999800711642983177736951889062559659863705836245174731179670982912576351120177564069562292541659419840349856845658498811793640475074113403426437765684601615936191717952064998628732446699304496779204535948902658605445548996214743815536563842134073790532924893888913580340835031709391582716866272045234223486865069705411070987633384531374029638091481306281462642759368569714849738343213049260491142884915345913976939492898289251757485108783761097081622289118278428387933289259885900703369388395054269620893192513764946528441021347323852343140140047326706959925478586706708954301729794880929385320930970823975642212556212294631962355413133208701066423108825402328826211421914303015784038106468790983248065148825238464302953103767610317605132904031725825871846041251136207512758131276572677571497272598355696010962727599500233711664791571571697660538893058438841410767497260392114895349145138631706303281060600627131440620362760776441292917479750917796279132060916550312364241228602939570101821709689748844013690414742184632252932117659922014163921580060268338745478788196926120707462907916706544645604760239494871427447017179829969165039611452253139599882036738651295773806878208764254928111610624198526469255956505563639287188704834049881882491800249119472819090714339010504501827017484035718674656605318903578363650857606154640072136577575005421399873717067383491421494958408271394524590183162229147872623567773261298234606347095899322518585067391566920930768584536521878083680422638409887042300929844865885628761006130073865212707523764341434933402939796505920634486553717420876492741431426278700446364364681479966754178471993806967499128698168642814651460747846124615380309070219983339264570802531715930274172206846602808985490262940954847523478433504499090107846887683684393642567968371706384600097392093154183080205942475098605546894852226578245771031422124136350231357763183893703746963255743202898506564373457940748474832752708433428951559490943201739853307070524165275810701995710339397933415988119403624830726707513032646160537553148193249675230091120979208623522388416366565596673031507279279452805004727427279518919594573022187667716542645629619203638426004575249183280744932123373215197694540188529448456621889429628437295534410088656688967345592084744825473723889073197492269644457106027011843225481563300992108890286088848418223832374120924776749178583877924985374925159673922858977927855029811072801002448916439989283744552415180142106491666421655867073726882318935947172264274211914520357583029326333766518767846842313363056390599665253075256657387250988316873334970257181039673265371847341885155230471642121729567370360376036100998999196034827528533708423361131249207959496683537691084431414819082227550138366806769863327731830158416989374329866742889651973575377442373504885881927979871093676163798925483381790948191807468783503761758612568650332638961877151975397275199132008991969879419813673450797931295979493373142309765471575191700331477420740045804361232894061902139775432706439247333725398196220212154471240376973886150035342984203171808200505202342384054180969419028338137677072403746045979029994417180673255923625582710164086003483562403241765854081611146445873028544989301763705056349421031780634589178080503531726750732866540178749434202431585893380500614589961184821032786578955119494929174910034027843829306862569713400606051238470332634207448530937996442797875708194663891820628314561801954246399536277255976448234223190838576619233045668189922056582707293474777214752208693575615683932549412989514025171607205210020362875112505147639043630128940172588743623845588977657044721788386018487162894292086035233656188883287671597667499343477845502414782025728694989645596609391068829183118229749901808738091194435230173659771991816298285356095251337596170645846801153590668682639772703474365595954577933713130973948169734097553123003112971393851620845247766099281432921570495264189738396045383205400450105778876472076824418204478980994056483458651446818029716249349882426131138754032388908545715266538256757539325517142180149434466490244726326009766848789203649952152655444790280317564047914966093358197441596481407597398200534370158408557596145101826025824573013611123874191917734672800877586370786560309831127785874715513341448459732288703212895147024916848190351303854649502730978725330565106915352794868707483780380224972469031072035628537985402831611004976974876825497942685965543762156717678723080965851416731593029268264188694299535142849886606300060488380147182375072795396412261032414263637232859585105277791225045610967315597345613005303923332069347738563710576355607925612072592308404107168196097089898049412152803222164471390615751221684353822488119726692845644774177802683593069573793137040507766381895632314483418466165603017753043143720662134056404979613272500704463631426643362574658631881884502584238484643358079576055593850354521428812169785420520348916402629581442635446427900055681594293601800768390913862143492146767241679781402042416948414392431090413598781229782489040338228744375347307494083083313491693820331544583522736396920508938968151268306356934774993331608918359984003013842277011480818423560061753770054961157443854895196707016619751389013182030495682982342858987812090332111962178021413228548454624487136425012995341875604789356520240654254528084494174449409446321833321728821530238984587862185625341004625274570018070906644016574655192303899595438793752434099362643111279430311990949133795027249949202062913272647486260634072332555986973244510722517264847071671416366067561870457531545613342006143043439909081049416013913973493594645731782653476001648478354222885770825291734370117484876107457149235826417545262130300573942060317034144950407234669358981201931858869531907038089053415762731060609270568802129891264128005811862737006752944099289174177931574014501316424387356538502007390499881711556910387816392323834881030447296266178650640322703971380222758938007013004254057819548525137361225200741462936496146426833024567456117148145663396288253864293410094716735704758878006021042302733192232537998524369988950528202200742206975715197220287813013930432048406022221194232344933301287053730914723240192478542709770425089293221093239315500548660163582379310069481176502958291628164053153356634710250316623668086639628689936996792062976898324923734089120364020710277034662792283715848438707983775106320434218033026821406928636483384285266737629536803894085821114301693006907035674339212010528579439539070728648704232487072859827589596139141346191721752381721728066788096636253764788452034897732886564145976147869798565583728524510529611614470087253426530543950942769406897684446870802293655433648609654814495723266168286400778206981682186890689073735317232590266081995252350457525803693369990602660800734299096863314886029354715816402082547527552742505565935801091172906805857952729125003945145034453196699619301161912832946619566806118979120186340993135692284228851217356936357966905012859403295951622278992808678083036469052514291896080094049453068965314465935202063036942520467522472045107820299551825468941843685597433464149952682140714622922600802793899681474469382630339214860768668900475015991627092987364929055373537511417532247876341705502197257944588893763449423242837021864181645944245769921144140194109151627174548621709888346619193123727947401201566399163376499640428364535706780768768065469888536166194820586969753803423709264524809591646821735563060397022965402393217647076622261281916432957234515447406735987038398906705775205732365606539593089399412222797680834203770029739501942489176150512357257262641614808926675385294719656295187822903001644132278672062352072497068839073072611148421126293539650020546178193457141861739648459546369367955700352541292326941183738891137396021874779203655019853663495480538700701708880294396726125856759636851407555153933072512415100693169737560749628521329705837973385846107639839742117405371368824398554306377028596048396629813969957640905851963475215076737894938381808919230655715966911764482319393017209420718655838422300086674823218878591325642604031688172095450491225299925011479649271912617306103357515348957811533140474652354065080519213175906586907597724909812011364465386119530456416232747514515828861146380111285145440137512708218941842612615785409831248305914038132957443969970966704865287387687849141299355102113260511805499990385182782548074511785876705018672383678306006253611872505659463480406396388143289813632451466496178068414602851562346350465479300387681301400365638849072439216370971233488044652940416121446608831303743393000407511553326708175916838671713526452862885279869758043103408334972607107913230933892859664618670416376466787516570129277809934805829894767770155045137370206380141379300383633437185889073634435459585713738655866504770245628051389860533889521892177960883737958599176273889484505247151171809831476585741079710607925359985135596720394947949984786505053427204655215365306975889378467991022533658655973743386858610752892856871201292806722696200505810732793824583750802603661272964568923838467584259577269613629543246549314673852956610338341087557905639108195335788946626413069073847017971855641602085122400318769964170696998009172255473905843510406088170976797313599435805634157058475731651001732482479688449828760446753609985556733538270809424502211821281313848302401292794368781205184190806434752144435435906993607298841516953487526919731573942500391085382018475266372625452529216527473498540476135143178724489953096825590360031189042280384141789702058451978032127094063479771576146008129064409753766720102710575599982792644539522956027074724964762142841950718491567255642882122745936885907913182232151119079202479822583032359757088115981069391233938422834426930132329760475070442153356348988352559260974415494370579528762586796246681707010621496641615562931869511723804338454139391581117346141315602138740630386206437579738938087503600941440943560213945308951573810957205259958654951484278284925455212318929946458088260749830766590029666169222549816772681329336742990875882059907886186683845338585813031427192293333826313159101501782135612858672323032180820634247493727759581675274621389633514343591571680925401599399270785495373275451760817672211344900015263176961834940966766889399916195999862802668996195338571746397832014951521407273865808802237766600035753827595957352914851827722654638686291705531255825135296144580637233982366484583227519993206156516011892714776594066116301997222223273998231678809829071094320623585602872174165899750816834608340687966390591951866135579487715962945990462406249971613836412412747289933502933471938895478254261413287536052616917638725911706284397786683380530276321074438233130853618782359216015884014334314187858972273891296011805843878107570192717500504090350473735818117168391690946489359774458824748724199764401910003832370893470523548996275132657997619954511029210872452529140793026305940325360865087263217379618407615935471898925564520305705366705984736271049449963331032949316161024953398775147052322804336847571878705513749344565091503095143279342353473602204900981615957541267485399261471391462484194530791753181178582266694856669672129115422659388805078166878307764025897735935660727909494345989881396759170317368562867138234675023483462199002765919388715345323979831376860762922996414684659316208234356387881856843019317849546162759973970558466291138707877721543205991920141615052621290646537245860845940677311047722785488525202959199506896737035000429713701641934614749886128120955504105459204287285042858126403850892864359829845801811399007620508093177776595094631130205300854212585627854131450634361983276821470791286779223700606608138290049859360685923576162176706603099086355163762386786099729369610284367969718948059974721122913056435274507401931499128972042617382221166594125257200249417266265889334602489448358993704443352787086883494334298179524581428470307303835165141860260014548104004003866145749049491444113800604964246748067301356015738495470981906123412099720521682085422021666384438091669937171591056820748480543758242872579822034656235921554566205575031647373867219173051813544504308365064785846634372746659944752694900685039279148786148355295424255515941304517809067582306798836304479804000992521494724751904601962707219110045518062823780520616172210423034494083601214533223009637424444615447066414804638252435140584360876364387022384994283698224679634394017809283586940154830098525157285675061675622516938472482610102484184297429768588927125605372827853295898863941110246085996366930034563412672900603108253142482684800913134548927362914045425189352445801371005822015301641005308990333565579000836226349548310334951993847344931949222200733606365078454008298611717562426330825755166476246799445079404503726706138014998950404389807927552314336101909614083486444025167905877236407831562374017292252920703820153406249452332874742747374425352345212685456711427224375302698133440541565248160229532138400958447018545806105356127330356800984058701335722363823775191741993034931424463773686612560076957225304858782372897379908693146998879730500029632204409187629808002297675584262897386689368149350840824180654536285756104658847225668938615689945951619156798392244965471370515472250205618832130011912175385007068575203950927920316749270601193273351544326698172299592390339451542560821262456682353718448895288297648945837728009196871686817822195219859439497753682425263280389912502554839128721320891805719177508736983474525427705707409095169111436053142242522291932505426863121129267833966694529601248779266349483785728913249960520097572060672132407209432921811279708945910074467019457052642207359637724212353525531899890100609210070550478744244670847314058068906063709081692621737258389592382878860902460253465816368480790590150311177832402172358933586160975878153406805198379093639298902822505425351861824502954642849942068162186735688094744355005665063447119673310188057236082358776332421817629660930102978233320896007784610674456619887925733264198633487133080650959049772446672426572478563458501471459790040347952132322240268620099673134140395142951538527149056641223575423112721314206434996287091547995901192955680595734431863186501364103568235895372636827057312023974693372127164389396988759514070641303050343194851905592713845692115799667346904748970712827479441016840880403436986176388944698397541502226294787638282986812925575731862735904322355721611629046857200435946370062631132151879287727759842926263563611990430184022261243255813278405459210653991884318007980549399454754996446524427047393788167529194637654932342261789500642504816599152840305217534781306124630537581405432314485968828354257324201534647029248970653793251855461134731609696700103522576930523788226376760149060497534433553760258050295479395676983135161137333466803580800065707881366493011018823234986706264673810026557445200560941921122773780078633325782806055224930707327923365583791318805017805901623389189061112613048461909316738051388803555329828581610209978606242171228830516386341194910715968179954620802108889072997843292151468392458504264698543400115484434751175179357855326262216754545120804224251878232299213867689956969456770549393862107660325565049332039388163199672654889342932155464290593933531785201618115898717840612217596223722514069877877683947366411443777452316064812445924173972768022945166718780995950429954640847874631448785003177744365208104206860728964045701539482406662766551062734014154197700465322115462999021962025857045431927856955400780697996099150984284307188160054819141142500247028839677651871616335809888339535352368091271288659825386523489038684166872944177316523473611849029982994709747378777021934214663779211192871029449403052065691607309264163044899469409679934109783377318209398439206816453057943645170687207836391889401011075755264729214703440308742966908806223221924607996284749688694843021568296721137271863141305892536487908411691483724626039370237981558074807062733290264096298661967708059582934691650752494710520797286557944476715512051997523017677270227628817774177423213779568543679906457284785535872126679318307713408534097422315130871776523476090718556976895201387824442876962244801900182785428964808996929740642208338725222583223831125595539393255299973380461470199159525580701875101071246125496805272076954376911297357632649209036815999782363448097469563685450951500359674154371590500752559809700753964252407118987429997625206741491730762238351788993193604629528335618389371758065027626758389573783071489772921161729745021332180029955151598137101966825302125523569055095543525181562466135521727675430821871493982860090742195469902853781602293485912657069093505978089183102809448013576308768614483093034762541584333547100329140288400368266800188004621016540798077514221699226461586590159522546632701836056662752856710932051683947633349158209001204954102780693331903929514641355613895571878259764692642066861821705321784412588166992283582254770501925277784610342827388774872136464307274551419927055804456551197409312117891688806591900010445644660638748876920620186276583373616497028974200929415049358809756159229872424496739494377248100905930500168942424134182087106976549464436621076592804478865105171516111531617617640610894267134634155670785559548072292110083477299719503580981177216708425078629725422997256257333883065524277525536789733621275901552899019509194619559423818118027784971074635453702170569431991816135231696051336544101078161396519958440922532555086828225054291138332445584927312418363413314055533842894077767153307177281479025845398710713355241095627283575754848013188291427089060369598843394727268060470266953133729827743268325014439511499649567943297266242704020160856762204978587765077113459515546236703763071457483507395258476494788192177504587310199161211391638119884010377021058277517749474913521580520557321691073266417013303010631236905825239313653943870911789971009575455927503595712522420365691416297594692750875554548477471640237528373408368323893232652818098463666525163406134867146605913556512522637324596519555697899205836321038353624398488087904022419215558994094836246972847531425665497587124761897432155898376501007383451167598998448351904117620379904721311819765533660196560736277962049576110757945798072526278111405671081053713305436323429206518620378726000586545104357968569539484055280200110158983251659031747675438693280301312481689075246728322929748475476038401448702632065360430342267866300943961160079416877463425482700640814629368509388671886464231784776078843627261055503164736438868702167730518313296977823812615826589698267666033795162834489582878306062253467667224608655616137013530816126254783530597988043067460373201118213235338580683668113774232940647580477194940740189182153068977917792532980004405895043690530733845713452151208227886096847457052771246314211848943583499271379339288936631643676177512035923552131154778519207560156888235091286828945898777980594966201291965526092751245819715780565877597124237650310054055377115067614284769338321895177150423436915265606267509175746534762827690461900996760810122748252276234676008728911687806337122091359476912458364398854908741286809380213168304206956942453434842735273661056984520992857882780149315332629728603713310169295047484359366377458423667160925394934831566439634505840836459179720881625485065045701945705229280083791074767737613121267897435155870751510297555353574005520679945784687223038450234881685007444527599007835819228100513071898788644231017199317924848419232739024445056589594939999790002593941521956842359302357517832455138788184546879159503388409364372633126319500925187634712736706885088343958080313846232901594234553996808235280579735561063755630870767597676907051881458496619029398865501988229850383900129040893551042461948795475490032214547063585636717699861373173529306372385423897616802971523440424730521198149827842640097498959893881254081569109947338499180631609120722609472175320164811724891367729889142631716927560617657616785532926684383829844779193733924350937130349810203960412020182729217513937177793615299596554830187924006328088926538611162194569963714541035640884562939765922959024195196610876471753323580652687475308694877055735488713852732038620717226941825772547019028579137955227853040406285836345085743746017957380577834144887331166176895003294641933048427144121610094728843612821984835406898381233260054156114951909429643789269953069782766417579221530540842025592293905077836260769331306483705487691029196007195343444547536819185848394664912265791864306970800070999676870794971373124914070789722336462447897193785616124258488526086389959385639724924194932423127811909796925503168312286330286540272768255560892078613424199465123697081342492181368784815657609359415066810635588509550845416182007126852529268817585904953894538259529434015834749167747714106271922694393335359469629792339288795687020514978223000429859477106660935649614443039569895909405183231918586243565178530381030969668193475091493699469621776148649668685190016246459050286450315974045168152306586229047341586715623607087606732761367633408423588459770664762769040125043314609456994040917467815572122607167724040401724415640205926818470475715928858117262383084461599766961447204348139143553695036465222344418954339864076957890862716466124835583885402661733896621392945169130675957562913132956990336613881743582083700715918506676556157823728122976666430566469699503826016693073962024877822951347071130300374833165914689254638014621347435421594896498606569303249630033092084515765440870962990070183228910480894980330846676037205404251556756626779867697251946612799831562077068903515939693862390353168709251065483627920494069443199074392070525088493112671029937627788946182408833180837929144072613265243541411944501825102389171922799523252958022378134553472898284545176503250825604559417118185858424707308682927037208688554002409925148582658496951797251564007705846333887114792123455646910457808952799824828176178309852724098786346795824139574191440141592515849994886935199709562103201105218585315505772211054256264410335262226649856667949748091093927923800883041375078618559065691424384007072601636423403455646157888527491632750499281529562931098400539860757920018278530321454642227478570965371300373161186071304466708842768971642774104448718428146171894763399453802599263581402701980806242323882258337184624721190176368255245683689497809992636428038089936745020124881728500986939775249537026948242202205137625543159249639010230780895363727809398248199655663951084816926835108002916129585027681932355470135251925139682905768649083783940532948263357940093453944937104895724355436855840389316931739524573303748827477031922934821330038119479616758523729802162450118209124872871376518568469279287560641717328102067049033899799319811277861316678474323703445494014998392589945694184038914059167247745141286666707226848282851637227720050963505779273838092726769127176817442448475073438630299038660782382034281080998970074032491458477307018114031642633161716765351317687544836627170720240621384656712811147174465897285980957433006750450566278228752228189462875614384740042344509538031983208257406443855645418028165577995260721585555779039315525497156768142205057212627110288288199030140932635078626105562083091532153614319918003419340369574542689826034961073591746904217916218846032590294017720411569949224046937144550875159161986688012894434784398893570466256743049185352812339506208554088576928419196701146838167593514352031516229321346804228508384552098169691147005666547387674201329647937019078164630361411069042002424982098699898470531781400169534943610181964527998598137329866449935652915505369282228396802734350770760319281683939946486714995990328213564884954463694209763631118212152220575958150737218374052929719018975777504366666427675566858366391462921938217083450624479653820321511426097315912709773421858550425192467390082672386926368128115515520721308339311545058810978940585349234140191347179132970447108139005892724822150269382113908978673369627538516440768765611879590022005014566892773810847562346811970256689982578911664922764257347428867701164870245174068197390177982343891671170904239485745016880641388975475120101063887209217118323985744687715265785479461523247063432775790510216006280083596966962468748928554198406904425134784166226922916786272390086882788446738714305275205774856264366589016470163396667881001219770243697853265250826615197677504509634752913534574392656271072919300657485908614665002883603461970761476595054282045580912345689433206023309114008675119079445543981858382389425343871854057447790736745086038281504432245307774290713921056750340736095519060183617068433789535902610101235648272958155822242648489484843593173201979346774308362854163338667464654979995969813586891226216340799711720725252381196268938140373265184508149235282608669673039934887674839366726574618152490611309205495790998137199543204458270163458996757651440182188389970185038244952435786917134750749776494505980985655766482762616114401670728418826625713486407443572258002470531594804413340594944027425419225492062477568986545444982316472422742936599796499951831710631178525874192689969098057405475471169214294590415806865729515738648592171995886907317353478492133580430611139956591561189872369402397916293715685810056123801831953948580734113476383856558916305255096466025438563678422821532848686641045391996549682357777781467282796502426125380452611137853640148271543080153757683236835991491945226050014455518265959309397034741617409119768295936747900637817110955946295517886283658592809373100643338666121788210364543151349368598357346386783021044711529550648629485418488257848542370910635513312845065387685239613905429347633346026546996362932336338799601255957808595578647596926008929141331535218078138066135379099767721538747399257665540279135530408249867424287132430329706782650595873682143543735985707377596168034362169058548407948941963853173134810711111918636605431907037332809711602071543762340580973808127159392206342417150171539427909676558111841035973799485930134114474692393210844131222461535691006572189140918278963490164552319463336368436469477133550104963381250672970484911166513087679400360014884190641708975068298566858740147776501388246609231114240533972051949798094720433723948098089098733405723124330747275900842854002592736558932686736576901233296892565160701060762927403483161477385041568544567153636596301809238320516611582326539339998234117385060712873760792985382422001420341787913245421885965596163618474476989030888040161327676283508298832070248179558323377005755060438490258319180753103854596631469497848444370865523377379711984555607177214608464765913094118155659839045772090163117484555305024600677060304001852005119112198046285698474123171218670464349303871723920043928723110571852116825460930709814704881009320794420478068323539860007944077705350953562470159598775402124629351204603455954160962106655055955627945304846550331950291831835726010269702475412228732535224064175992463999277873165046049946493634560307218883552959459995830063485647723907538626633424001352941701100266013867027830458779173954848645230528554328005530896824620780788734789213187749963640402660700248891233283872813157997159260925171873749286920210669521938309676453505329612279847205734864357331760484519630010574564279106180342758899593717453146041773737019407798595661821582368312900940958523451593612581206136315985074017775774075145232307435341890231550267848173382959691580762772174372834952730055674454842383523085545393936848486844454204353077572500273360387281961343044380936223935314286671313179525311554000755923735604528391594220533482093474914561678892972213856721876046506850637014834909025240077598103194826993712532524851434749502037278341153689018275243898985643244985043670700532633812691653211128237407706994923855222261045765089514913319118997653168228981546737315693651328087360355240609694669172178905651830648622144157310266592912767149104787462718138967892663681374010078127686557826175557827534200610696728600408348812829448720216225951205361064937211795994093988060720039691301851548728126207254220872699942185086174228027288869797231922266274113138243368326295076777291273155585717925436162582415129799084177799797620825279911609553204663073703153128227359939972093625606292701678462299540999018524651004553039615465790520589152128013822876707493833331868092942862443109401692543611294367374100654881524171173351248367446432147472262500732767125349085449106365888297765023594068427477330193978240222587738284771951616877816509389297922563217673131973938181011120561269865133281399678091077023757134546470339938912359695571729097212835626276239169532681546531941924148959689572850786665600107335728920572442444600653355801661766325603702899366719490216235928179991548299323394397236393517063573056772678941302878991130831296235131125496902048071242961046033144494479037182158835351822185352765435933928413617177462500061651720157933462322169720680013522875579415832754583980647745822051098823192946735093051179358236449909139251022395052986522895397189213496973396479927369522460865450479613246171536652076821278581406046616448425818522282896236098434613612116640442695106328821372568130498472709382278481105509559796223230833563796225437540259335974906121092097428412816163218938135664413680938281814457672031040017581905468165327505044191914874412914415833235572042242640747285913930893863983099018458608001535993980562024903578401317220157401700463176858053035324233990818056911492647452230396193111830546882936475188833114096908597511339265581110638698886453184916157305592577197565609573349821241020309112451549528888075586540312972361631143155297289142030072837701885505076930034490451876257725998066042851470679455066113143536660480496862707390614540323346760111248221830908198050439579467343093096195716010856243531848088832879305662563934050407107863213419010563163268200145879289188776923181370820458124356586890382168126865661451140749522980804389938758693502207656242024129848932696264398682618460814455722371960514498509275623726602189172425647227463749900059050545802674403611689293699618434928618037335664442098323705384417778107326222870869163403499390498438009407866105019023526611370934748155720808096510801012200929996337246943721650622849525474260557408890128035071246352090797642303870019243030984496473153246084316319752717145073629937576073605376049221984462344059640482180876226294456832996166009213513150277563587032891562408879657457824203800865311764802777375899843089347200708115157383260349038171289960117334530704116957760344710748113163788883957476090158818136341825010254574755088341387159255212443455124984409257778776318711193676527688863848148313981384281579172501415414976625324628330973131721409946632089570316598831602459000434554573606175105583943629562289567019757172673725301508585673298919010766707588072478682065437487484694188117874425560704572538978395516961215915016381797060396406403156686995203126520031712914907465119552889710240269258709671973201292628882595326054832581032773531877733229456793458313530391561044969039621385846103353053880051772223118780154632487840092364332622221040758441786047685417988891749007797038261920685915297568837167603609142138158013187986347095040629142496615927620855083092722433407015262533068600651418090552872672072175025224264799191351996636191654274862825910842299253772176618594701060150845915351375810880244999820946775940016733197606747777898479336064647204560582557298100859989841899397790343955735259489428508149543890442820393732276404757035188542944031764771398161775679275005792272499676601333514243466772600501600805035572557169123899223746628009362467890348006180986538673591284525224866641331340879667373329964785621195311533051832904283948827197867872806512392075910210907965667603441385260695195741198181966404046979641826638844885549396998968498870579320499272809721406203794801361837696194549158440881344806080220821356368784405314617161099797961448400316197140635838425035344031455209697930256535618055672366556664106800983903179002450362583811826444047768573453630464388206873045341970183169004354287071505537545897174954789344078428495338165146246780283865238106179918940394396154656834204011641849264109866038079829875467665766919375891922732233006402002416910760855201256309548876840070280999941458675579608682471471322861858793018425424897859593140302303943252796248518416952536061990795342167820759014716585437722878900556951224674052389590931492384775375313077180991765536327290948395093348181344269838670328130121811449582213428569729856928409752636852690855529493396511107911658281766144890349324636466867382959449274281187671837406685118089213299459853723119337231828650610793281624996582823144390646973947682921237049576718822152878951649819423104807793590669816911480009586477252289592405650095726094506639732774042547670563119347976089856057403985084767031895318695612270196984429546219123702597118787556139578255923665006507382361575404898484112863113571578408364360629430720172428302849447950606748757902089104422040846263303634743416528096715239609966101140837568032041268364224871632922123626512380166311070185344260675463698365638747354584564393067468344429078735339494086131575124968030263070223811789434571526402566646429272385777748179207475783102814482606176500439609867155146579340381569679218391761432159381617139189580521450863842392621257703010393497744361909515218512057002143239939696374343009085956109552273585213518926132173612860946890898102023123438464378105121942550173920358981510248181788125404404721065705616136731015340482678145451329652600033551767153625788288012835034133980164242900135514081553783151684807346757887322526246910966000670835174680167536595828465042804812913052649687261529823468724158951545218134049267505128975604823021445777951110744146608235004125473492333338035828669165077692724162224342930249237425458197941483581088703780616635045071338324630449575048654969423975262691299964358399782123673787390344243212739222526307764237286480985863948352075040144703996193626381665291451908223562195263791285756981505664779343551802013928257559386744635995826767426788751000780614863782593267893887113331163254779723088118800587696425792184994856945355482955976089017512872624545105246573598734775390855758230959177956727778911280232903356798566263972975252609125666423261215142174159323784349374291533713590020054787939416147479549277372788512137275485120915092349160285985203379066082244810470076917856203024976119011801106142755274387667100923330908644526296847632875268909813591240721242440806928152833642926573818972144743710600984732707159734095327669025546330105831708403646001360396514633259624533747239462610325272647718806225040705367685543263640279063709212109675229079008131505898407391628708341400381112640894036543100542509385370192822521057463760252667390144852175591954248060304107643853221573610134046948902505712119546302414898277238255469261844422660992344050919547056768467039925228436326533169001647048085260231436586393722895393204522403967450892569526781066076243459347424836215025108805002836497456844298383356623597933683048931042728470747724188973350789249167236115135269000834686024838275028515098757600173728201971819848606851040199138320846673609846083345842722259252229456738243799765656127334418298355472602610038395722460859196396734563997820244758441622924672326885554729744431036292398646534605968496270304652241164005291938671128260523106139789532631283092563595267971154559046929928343280774164506446085205437229838834783320251007185428973392573018689793399089479171298145824139250661708236401166487379621855656851665492325625621562253689660561693807207811307137127628190728727459215322323391389648272948701801029739853745758518697666486233914515666246309950501756658979442289544750074987831057019753158518655544584011712678336755306109590484422563269832092191281664328843560040662824423267495873694704919147392887743923800368678504952982177463670296855509356052713946129994922486469101025547039750561968859153828950675448219672701095333867407218725408679539909296779527348367464741902557113192586170605837802705013407455271167279922673856125503890023467341743314299989204286308592481351920294009628599330378799731103361533092623383451145200102575906624805888025435765345181793032262201551449903849760017469308767329624173133721796725355056838844916178318867376481079245565762562597265879701098427783012103811689440495832855440418495555546014250888435410224624877813531717226229299693574895905713440403463494833666764559345437054210337505015334895732471735754857954795145610213264074636634662744427811040480321061137272126096623873072946939770053735996681940780183309183189005008638239278063390942927650948134310115981899547963618533057285094717755708370404302096077374652758691813463522574964904450314046952909405243495025208809312832926059695795981964743844903738928207552952504546018820825993362390436644472595926710780682401279606254665025237628016566464335673180474288165199978818569569241254167842975600359165588631020955972286735859259585999853780815122359508073026614425045669154775541265159420259933366059975305504073156989301636863055665904323785492355290197161893616959179950960751153364272352672680539041396959069399732279478630586810057455939874549544902554163480301150325684431370446597908562639477505617837805653942052044093499973684144583448202543384953456400572277481086052654877910127235485432746466660242069867931419585951855176989973519361206829584920744206888416286082828064070198729438386256721061157378111729001198528053051991664874611043776120343603706479218972559889125501366522121240923680761938720583596354730525921272794502046212463038191133975055602392765461626932440830849299669900418318927408625404731623975683624003631415528168770098443301671493815233530636037385383841426095970739034540552316139771085364700989212670423466593479482996231795289412313323916225665452400280402439735181295014373098938377252684909346308208786548920720183056423582265273353544802397227056461093821159500942156250787209452705059845751853009190610685706359168618903818803367416787478459826191243200235668296499953267775979997240640620547987561592416037630966354817565119049004611940099958633978556544615484482499822849297685053642538413831838926952733353014402363951815655668515105545872581926423977174292470950932869395568583268359474706129327046344993045744451734747831006900925141969274758842752897568122582926968340649435027797089749104202627073933507772070837664183481702384553991866036854070167961079475784799311619602918348127926411134499328492723776851403178100227956554487087515978228529591179182384666636912784879885578861086172351310505585197556021099751218772753037709776613983920142256604122584140191012568386111699295080432466231377175221919818106663314104022594629168144647303370583402796949892262088407444337870981636880231955801389901253903913077822213649506384454451294391346848375531839020705863410125724077360689977568273083772968539869686883141233170908079658291012195175696692746946421618036125252811919289272707889853571763510933380880395236924148957550203111789403801199625079203918890451844308781341070433230515413183243256870665925058970317498283194035147393743972777611875937505204489613732389549578008734544742738192525963858169710643614270503495409631416045800418079962021149271656428232254624596051878311880923689572214142131426532323616211021790462631778873592063736278863689928023769826577089153877268945502931760583981285002245386037644126937128409482662838979023207151650936013182909190796368272310291303667286057069488214885535652455929123984083346954947871530792920000316804863672633227341325426623837521197674107298852647805368815672240755798063663482056993032120591277516288750156701024766847129360048967884524491097763051365708357664812206401730216928862451066576939355026444018595247623207530895486336964458809536253773972418645767634308988715233237947272746232401035557792471310322275685348518109656178993969956650867868150346437532794718624429018328289519844939098980770973461646241417111985739549592457376102300810709997594945096172718762706688766190153430755902479195579560869722663513605895623356896713566268304643299995129313021333160426615667089542490545809143999758181379725230769944578680040033494769996190669616716938148923815185356198481173971675174804116704171200083725872329559192004181556083055640549675465686989661162012349825623146687330554727536660897176721110439834975230525856301773846441692744888237501773844900631975820914830516416815050510285507182230463973333922183695364461118021184827249893468124437456135521106883333592454134542027486567261622544236759752090749830379705023585936880716304730026943299786073701296746135159364351856024546198153470688191798047156702366027094178028732293857271674134891073778454631422695163510868885699205719719509953723010564730075474778376678457012154102108883269544699847303338562639655557451353872170861752819201337847975629748569295251522004086806147341541899500080042984975954205505164959451609526672910371986173131553404672930595889833342825570627202430640933838492091657157776595007070863352563044669998168649020266845568682620234331207446805388519359032391576986174441861496192046896730443348000650176535508494516341240131109350529760395388790301832207994272815307359385531064274170893636153505331469415831903324119333456170662911267844279775190987920690925025136899497660543517179823384332256766494121517535491932541957246349396482404090838661015642108054572719753880409831346051973670820073117463265301412001864246244482431771531564478837846995685875710222767655902804662743366932257763191111662620834139507044071643039064396613824649419666736300775228184066625060178331448594270314731534615327445978627944592379132964416762848823297688391700775218091851187455707083334085510928693170926714630058222548760923526651517576411490836328017674978120548596786561514896219829856425439798568026155537421289975844629262438571117486147618145319103590551739881337091704126239274744608756410713811613916063387487201577498203890690023096037611637713852782765094368344360546350155464238910927487027073927558381431964730030420262819412954170842307801544460800647836785018079385088907331761426357137167659232111517185227429666899570521255794427467510364334499200193362769722873220130970503447151065608500951879969204862664666885649979303221455888385472638791182867699664734834571363392577220189251179896139598297890200986471892480544678962891422572757843687711951077344710649864750523486327451753329317140701662603504832302385501802251317803626745504901520390244228221615729185172629600275978114718823744894531877533682750008790578750502857395363079598958296228394606951725957197861942739293596844323738795821794845712068060373720169700789164923911925175341441919017452406059850488783128061360470950433854567522285963401548922059789889028187738011569324221488876040607903687769204494070681993854660913139283275887368707572771217688467641812939992032986788404408686534571177795841461864302810809528959796336864689401597756915713765214811562931785240283316007140010642488824956159075919416027339902766261180484504445130125902976529583574811559975225436739060966400452464765602653252021330174994480679651783004799706654043272145133551794085640969448479231222991639649256283480354659392021926420926862801532661436354522810910879590662574575844960684850566999428793209935331774124910764283245692334149066174716945768806446015850650954971003986946018997776032568260746472861360972726935739425020732674330743517765843125463774636734965138202625447032581952121367483427607627799638186021217066431912239539368118263373086494894110575385058143303477957625265217132801700241071854923279551062347824846169151055849680164089504644715926297007724851241214136139200758789726467934357459700756979918616516926950426463972814176918231965380188765831777625893448135942521317870454011628076839623811981401788972175487501381990690409695224229667821987606841251130844229185678204847860187692557984653549630298276058861514788852284479065840518768673690940633507108531318937655641907665834792446387304906053710447698441336578549201686784892692682962218483400557320056878621044559350950971045793576799814909579577614476283884670318074084352897107717575976386899505305931963617514567986146346446613498286846870023368283947767618310369963931705416912912651864701283305617319643584034919766376373193049731637656030219653408197474481026587681865077583003446844282988544612771029183818014275408228620053473958218000073894384297654459642159500674913212042454307632713537472327626406897902496523840668798735221953390885963639794493986668259500285486470733455451874236022406977709810153808938527289654773890019620759794305550850678425581885449178935018063805117747749428806291599061394022023636415048854624051599338368061053985487390820354705254411415197598211111511220081311570491684682459350394791178561109831591025231176227859459462807142247475137684537884807080570616034938639216742261438392958554166017785360390012108453257049032430986757816767867452759595634419322925639648146752048359005377269778932304945122192701220979951732211735236703937698387773165104519322341055754911959209414130326557972912189718583928674455743266973640258008137212480435287586648640708560794710375762382709921262328659725184774628468944882940700414806070747154382133257953501049957951970278680914165484132035252151205840074035413401242147764442909923375483492392034621619358754858905643736876325611823973630029845833898761840704122036678582004820327020323899202157099196735215959617040443311410650529042254728393365529357806998016596397425513703140050992032684204087773031870324683579637135589886199242650592180886218515515649750022357087234603437720500485754831841995069584032345911905917948721493713694991449238305960462857593117590082371464297441988691655210294683166946121049736320217140003857714911060919944115347510761242287300361188339330370381342427735207516257531319808433928258194839542104927034789556926625408101372421315068615143627702476571177600124776441650667876284074625131083314293125495940965366595933993939210943219830803897632577569534126209361705731877061201658192592432631250238794219059910726873890238880334904371625708657274269421274614358475352749406432080170038918963108694470742722815682847402030046106289581655520046563090489758093868536371281779665855087066766445409438020780820313218138632454240020621556074616780337027155231951274985717570559872442874514496105053959212559739124598747747977988834829852398162902699501267704942619508026087237879515515246391244938227663154433187734866479292349143873520437929920135290368014246315994659231896495670650386357686276235081744254583613517894075246770101369822889643091764064905607522766628921182551456858376321467723749360299282960574689167066251737000494615743362412291355361625488878097216287249114664032713445630595496104777865544516602084076936450185297564299368811086259646537790377536420697389500667273778575659191578135784932597894950059621424988208214124947631631453876157725756733947551897996534657552188343659025618309300232518673955317138522605188023627128970582273272380846174726018011738642607880069209722686148687453373269928460028859124482305433597696450960524171007324488206368803811577158690963576830092498062436255546670268120579385443106291630945909320088333978462618659941666882192029558431392628570519404459193055561657833323682527745755438664944867713674039559048280325068276765847518439187735959396956263002607690562238030341004097487958682510517209623105912633965494875106676357889032954902628494033198874023843980859780550198548763325185176688615120441873128516574563645917785187641206923498386220779122105048134422873094041819827984063890566422521370234853728428300864344778932194083107226798855076979577295968597674884091043479229870875635296357234298513614832845337498873535365854698807856470446591095093973278234787743642629537161800513896441457453775169161959220212565560469480616679303883000844193933753261669241467818816947136262698762852279119705517196962227688825546599088209013482280284200495818471051192428497691282501087184641694668110215368107253697071484624548765690024698913396731322845982584069589113147163171710291854575255480958480282562758418295436055065218151322382312466819881785452333757033161495857237188082191233785361282426961450931855827298254617514294525398818098915600956590120669072488599604402208193256648910072194277635412598275547518859647376319539659457883438697027549990151094750689747817785537837906570306103165937431093879151139016901843122604981855226698462167983729921393711551752703271621382917302038717057321811973112424149967357176200698953872854443118304098800032390787017262208747094526406819038695413225002943713122856558474123321372927997473979486264072754244867495422054059892128109380914820976505915841352973582401810175214596403544236639797622560302068428205751559225215961213537069363291627706152429594148510610423285749932748679188302432439894467647488938380488399929758268361582381336413966987177337894060685388580065853263685081138288374094414470369908357613492897189021133326788078109200948839925160736911270786910746105411044962108805491644227626275326457448778134882576090455067798354687533487299327321579673976151714868303535792391013825479693394588547477991417166469051712625184042811685771451903599826861115230377654163069545405475194123359795275490333454098001059373180351597110254395200925933104614625312549784458428798106607970984952752025157857293333534732598166903255011494082638751189591640260157778597587284874845356033445890509175676062918017886257126595655508064641203849697041130036762358741018416589607293580789952481755113033775159418734661042196639143009403078436612041484640903948002797953313908162270300746421961814365384106756084883824951749697337188104897192474873777519980086747864273558663140763347875834177204269685689821505699220967270332864302817870519295278610229998887180009550592218369904208497959711722803789351147313869089520895962615266102654427623762665257255067401784532201140215267886810237903925373118571690146891685550886937488231324704181150209851230062800581811373665899269369192691898115165345904323104091467493211792705214004353137475951746903598703272228417580391114481733728386034873756342379790432900983156862931809148165990554376377347794842954983929747910938647645631551452863074413010804637329943578090026511121354436285757800850150666524385586300161200277204007820259397548327485131135452326097517719151065873470626131380947834176109154646252865274164771095209608633181408631426173249235101174506334243567410051379239482345152913952420128688655300783050189809171667402860763346350562680499030950492424401659923598806086754111190024408135533082450289562833712718241622932366682531488151486073103980262555379753156617582192902425267321091310679945264630101373710600871306617182573117378074504890313376029304807222606180647536302577215259393714991905771746811329835070881794771716608797126105200740862720009962180073476562358864943865348707389072743975772619468213815038236157766756098010364343328482673263726391499943725771450188516903180942533080239544482061805573921423621353663610679812466864246826634315006670215555480699444747505409883482463133551723138887212981816362482989487432331231621184110428941672094722609364455054140492501111027548055422331441937822771399932375710834294186527767818754857558185241198402098172475163201999826051682946787610009749240109641149967335593452790138894697217160650236786276269632505887105883676715033830491000889406052808589721279564061463669383699121118630259612377045268192752190717019863298530627399978548070721026224306268178684091303646819586390168337315264655181052454184669999481199305152925183116074927481416103941491977316474672419881516093662431753174569349900874037950331277502461755459395182241557075724942832720894813205198336254205055944518310407482115771622313349644520973682088786359377785950932934050260836597382036279686619174067589009367373453972372892706599040578394754782722351505376818012074156133353141599200832660702006906533792514324518728047431606329953455305693100938920516473580268681809901296452808419631044575964950347141038534843282982460899925323442276034906651049865563779372469181876993323920718740013264069275634040375596024834909363470521915928867203307915375928881015784429640541753542186393199984474324481567541629862164439843649942389655022136962363816332929092875828031548617855070736327547290047317488366393862488943238601149872542698903183646203918056102117553939473145487366997784199968006042316707634233472268582368789840521758617698325214123453512867864521506937647282923715656918388345324316103491785533022318265576599289104143546698123941445531722759097519893308131222311850359411070178764602594087504959121210555248647893959338582537430800439060148673242038569067125170161643047444158638778188599798874019096093759651487273587307643204460900988472553959834376752728231185841085988691688309936892782375751666311036348844320700170290150751976546433531238771441556546637980528646146833443267788256163161243855806406443627137202558107413101228265526057244675998451324773154811942399152648599782216663039434182702363976559483738330063799377168611438954930340804364157836294071039661102887491703654331668216896773096141252170071911953186458277900050901685708754960426974382899275330310631335897854443320514278890361750962794943331475334608862197346361294362673501073308486095338264521939396689286517338183553786480574147285042127317926098004261178856993693577734003061640413343859495711431749994981243910434206831341057526394193237789380672999597630216699353563468717870655942998754492797403759347706598151453143249741841936061450826272598922588888127823329789453756444217122311667806505302039331570243981524368811868793905199967506179545152493902446088465436046633371168403936030299043515575071221109257064390960231947998648353541633075478861893529696052100136328412533482429455423830032431920739792626901192856880292574110369968973609747016844909490469820778505156583719971584385111214969559437412461887194390476653775558873553121482835256818317866353678607203950446301895072576049457148934786180823256935620906644894672614713769465399490749162660788206664296049802365473481439253539157036696660133892641632480539027538365210364630450613692840461305188065490404803413740411932769228582195634508633498404392103922733568238748968665805713789064441161923788519663600438634983550530403187659305278264878077069715090934656908064767266078926014316960027595060547819745235254642492272463041799765643794107114484683353753480243420367425947766266964634019444711395082913440972134807985082492123594406165887177668953538933098014855997259725559813337144026177942680807043147975756792774526796931444236255033848203425598632568267556767504993922166062466543786398514808714646601716999627493532985930184133164186746359819005922915112823550591370900995899259839428416779645482131864694640425400935584184912201682851173189346841671914322708929833580075565452222469679787854688228244409290432387109063085541570285463376642758043682726326018675183635275898272743772931061709868834242288862734826433199922262432200672426572138786425357296904960753465224432590836981388193286195236196784632817519265520073248791871098358399066627958753057243312907905052219452708277779782980427872031600195215040037292294337122887689286739298097832099287107641608961082377973345589955865002247054495944880254758987155025301014172789702504037643726571062428229777476025577390402361516370899602965287459993462820371277731178927112644601393472057728452534411729385580915234301235943576349872997791876721972996994972096992603648025474607290000134920952941532087498001968931267174754803493299892034124849818836502865367016694840642101554286272713015852150457469495180589702441432642290168850967650420587848171534762809175841644323736536165176790755007770772576628282832662270066561315929697678388533834137786796067291869654759633275434202275489869251714763647206847237827213904250666676204192997567915054963410692642387173330249958585006883933695123606635900306623904394796283029621472529848324228038247544204108303642583501592408761588178911812377113618120486903333668941531485749834909895730561122557735656895834342046932852534489280351202056124843947991622583210665516842244981789470387758101865108637373641079472498431598780942793077420007151794429215943257741222676871870916740073142170468706229643805589449768258775632662435628033699905615944883518846374341249065113426675636856071047162013247841215428869452756112206612989448552717008385594560592443698757065362045531991492696812494626550831182875449284080429684970049278231021303739142619137934169515165022506498345437371356696860214167781793698359247507771158026847803828366758796436550356182550857146163281917572894560920196362132601115514082826897643565480518114087461405704054692922496773973497034922387671913801191443946239866895169156155930375924312376053411076100769621002182998225728472439901750454755716809741206356577613345768721565710842403458498874029320783171112434735497529495598250311471969768088529103418630214381514738454572948082635197427114874068036230088278995458784016487120548066850668381843851638697180843300086590671584692431577103559566711272512377752108340386428146704364353910009129313028910814502350567022445996516792745389117878868844554254693960302241366582560263117233290565403191015731583342750397887078625913615854926581134380394664225124019081090592396090221030536858301726799485200552511484841781984391876196818441907185731658820532245578870570955902118632432728470583386100477879914202768991112171213255827681795674462223633174309471852599124278183629125124483904475724357571394267327799806713322202478581664118392729905319728757471462313951325222735517820871065163948632865726473716649134853791862743437282250243924740795821912139179353042737114765099687081357873445708178492522092659829483831681607502245188221969981379546207005057713947534058735187783531663884665419665608738394651610645390974882353511649918451582542149075195933928001031887267984371488610213502204308586507795129627885562184620743797962284679278001904418117179274350672089186930612335361196781130880482968136052779002686861096386294914544296350208736332355603046957848363126895529088526824489053650332661752236960724989864807779821214661990924533282813013156391233376201449407821501891486327853229130281711943136883986197345080229521930088810193638526839651135911383439358375965737694269860548339941019639011174234222161146855738168730980460265979612230348693606734773521433373753469460545767122606048971377433340274285016862396523882801380175782327056274876645176855475463582230444661551494871566507954309633875404462569684844144246316772712658796471529305641469030292534448699795796409046641857623805775855844769200527410326562838916556753056013277318278089605475552935709423777225987590896001138043852690970021890386479122762209717038266501932126189041309702666464499515664958815445586899681509519423178227776605932157019287214208929197740493123948822955840504856653111006584958486355718976620964351356427587375575390221740443004136757541659576928615822655371223356772007105428771673686445914968889156817662989868477940982848258164028137193611651054540690335606606913526443256532011673126402789854609803872536762930167661395331473668298588575736959220268314823668583329507909575706491983630362715698868011600215000662092312580034413845236152196663041136929420020909983612089230477759087647072496829450832401702416820966567500916890632847083535065576274801473001476771388934558268809192238046229805953524540587665157352725734537884454844514197676588872476348849297231750194629467624300070179236060604727761274525017126879318360377439259051663226855831779039282160085455491915371312766465302218123370835505113884577337224829118191930656194516684619402866069721629335217074385178976502711432770162255880871466690556341955982228621589083894113347282758642617664655037986277754297745607880948406896977182260847063892664779307830467259568422094798951360794101702378261093784078760282296543617192353195358354991341899334451821532911473120393588685035022703576846812857814192854736711528923917066517202001746884503447353948423048883217017996743201397502790844377707979972773219473067936467865235042481388890322953421826921024493940854792567831283164164861840102881711464772700100127874556593024383584454298962424212196465771534596244495844640980202014577203666919060384133593006799295024554803414849008043119470629023665064944985999158456703884302590772125050083326591749704146164054123088745785926464288824061028440385900151945789880595586104236254613290295619373155764471567646991791180966940198988683841996250178969540345333389195996551807150007460474234151819166550933156999946204916109105387122832814006817839963226773555415893875292132706805874170337730349635687082116932007763749198166204434929557085139763504011754957861269979221201740591448135388057865432712495088122086012902218485211043523576609551214937726355298403411949326812933941389578394342320172966976184650627860730448354194686283196439070460684097070341768362806306319549986323369291296823394419053550965832304560549205320893828285311199805527344943972396131315578051124029930794044682698892096636337043660023020291765743278547004583685839971914529547679246185530927985157686744361167859383375308981223273004098795796049929752139834205327345347483918171250202631058512128900430343313085851475316822966398384930648119384647669017377253205884810399534208326543957629210504198900405538832928453609844784627776470808915500220510671721741527001799463843945287065712206373768290781863375879569664445377443511511389336981107023084037180375439206572762661572301657108837465838980432153453386113511077541412512335404707824788977538550008608279875726208504516961368242691279812780152052728908034796572005666961432758928154312231007326653367932154502761829120030115123157194434448155866077937292113864602554025601170951166691366285933735390430350788635067354282041754059226552598067952410830263774176553010312438661084810185317093364836725690562925907772447998642017279001542543058000517868592503633357530765139831047904711021206295274868890052404967883033079585483774231160773698432164843839261594896728167290148113344128090173183450772052762771923297064712596506767786560435719396876148195676235405918999823676372810789695844416234324875236702934847905769766534890767143767807207565533148115586339639038070590754007813890128413929755205363389349669181307337955195894056363623723406349630269682020567400895885251792003973670622129828216397577708071526920513841707806640442574072605428701365910519530558902316964078933063394023889774720553555282607684459625174194313570840454773601873448488951374714945745392536222585023709188266776958940664704834137262114419052260051266804450709676216707666037167319574849281479976575028656203609594817245522460088379051468189753258701549765501031874088062174700685885045915783075190564627939552173447825896410685733985396777897161833661352195955409130244988638429884167968554978973302466159781859620866861388829835256240177969214077920966840354364357848334066810189755946717999241281491235581397709469658510983783455319903981449423642648223608625729527837568995709692688489149806550349824846682542368439927671647110571534069919290663524345511099463119062096231085971215389213073134574243602048779607608036113383381090859618124298656583171309307845696218076992954789602155814437809872167386502100439659712153960558883078492494248774326328857636253922989828105859950315731697318664959379104403500457428837374358088708360029996025235985281080625129117129895899234091399777562272846363552383914083511495545872151921373300725701517445959597128421405133503949247700546425919550233471810024208081404318824333668074967422321141319241524505124919565557597217958855434444866295318761512422958926560064466591515617542183250476859619245014482871809865062699478264531754250116303996931789741152333477677032425490036461745219432477577521273305667804475706015661331330031063220183265348664769693321029786146256069552263520677345415812083619539921566045908991338535461891140615962807932413596771834103224409954520231364090820794687346749254309452244653862655580917024211047615044213117924630239279169003019313988003617035283563667625133565296477990771756986726926042615417128230257939780247448236082380870199238869585652087354713532721638545688236171381204250943721030556675525757879780176393095674386066398464674370381933346641902198380838445445163960547877757411835358972063468366880445586376533319834974839317737772483564962181335267037595226699351346972095713193655412612733035240103737339942104842958452153381582263188014973866221088502299158298239046533400425137605774266392014437432458436108468569005316456146447337803317855792099736339003887334822411081243347470054275729364625772643244543800768140802318834035454263422950534498825143437424785843891067534468730267713113081921945553581460422117945309277455288060991616503450584130622188287785998956297554111317448932687110092207308484520183824683760115313534608575312205314361346639353239938117719394235373008395377288515035967005246861244984690657599193967850304440660451449732213557897328114182940690529983670881328338207848177881156200120591568136770860363703182808149397027198137619638851386588345484956607058513567096456141818064231176263500931250537431820119181822163078078222858804421461601730938840252088065777973469145344204432021730944900317217910577030250782380496578446160630937418767941578556244644152267223228739589750262339824280120805200852368864068017890788721169012868660391921487344442351541317504877638663089725730705791213224938755006115562594094699566246992204381517785508766208939725393985639981198397299699734965530333647977314209189191796489470710200801657247848591391177313779916903117101826412624549624234811048349937466576049179699634843785627039036067800274024270689890552061305779868039133247321496617190163604307326457686466132596975511053319672987561225957966476581450799891234682668563477832040012865882296091790049910853397603281195378092642842426410134577572187038432684290302624535222179124930730022407304046082835345506592467735878254312965654370567724164904452893290524177266250968962442590020747748802337791722917821750836159857421777483956509376504686277427695402968488396335301985131118668288432869548790962372096816469066348952541230571282320104440995015631051177797930219338257035442060977850282556253565726912210639969337416676439189713470331800205774934736999156128161548738598356650433574928798365968050045711401218086146567375774310982081264386127851742190606593776155482790249557637793779335544078372427268978926149758409549356528624135683464219977066392381260620815712587024516053702361852843882206535345289148818278630000751934770371712819474880549646151685348925014838729990891722777267944307583618159512716538270449393839246668936135972632091524973511431640652684683935128454138306443819166453813358731217056378913303352843948081502202941932612971423402566073584466164507436575155536507764444904251621109760026071854215891702307025073683462561364762092855480601771548627741142235948293678858284160416517411278395982967841581511582292851830054315704403797110977112962874596518999204497826510793228813942244983993560253074912929865698917456346468228874262529783911329481262301752778830816395698043465577538850327519648529275595610469955996921982947339905589325181028584261433063574135744967388179091821905112526056897981722791409336846746425632038042857535790755171339804459885904415054288718712239268345922224900666387700142593006821310427697574758909821220340053787648973803175932694305895467207627544015507753910878069514431744574118406020505491634808722219371112330480212450226297791490012379558881660436121284170834638306709877850589138115706466319900062327840764516069049400497814907858723966028551211859331617185848545397208047323251070341543206387696261548420952412126517195004849130526798372561693443178996273985449076952283788483759789454742297717573067805790937884965610698334655960778083595022526056313738742172830302060979596782945081204955508143848451924832631558727478952473727136392242304669033751400483739118681982438901289903891641504783967427961175805706636553363983541394374348658455235645847312709918779343811322520762635387120403467908176190160527071292049454993677869761838460031476492753750233419793031840064812602725782947590865851903492395108072113477995386098654218255056748617300842055762875637496560399511023885595591099022718224371753647111300655722264300439236710825997587872207144128877366609663511539460440470221788139862376508448555086106806561603045520442557368546750754467046151818582357671918164762093987287051792716610093861068156266550176063964179142053553823730996971438907549078700936825508826236993532138385291829771937962847206790024483026958870026332067390101965911135205534906550413186351587165884108158889321149044463500088850141500370411861108627032189366686634698447520951404927047643756730760759685650228917245242929356810990607057010331711622417542509571098470092743739158108417922511937396449997305488760179923831715674324157901817258647260547752323213919170483409152955888593619463099250869345909484035028103230650306144307154103824501818514216461304182235853754540757960322387132551207539151239549296760960443172110460707306232858391438659321537563625891329228052478523071225074892967392517762098754218343376351081921939122761417263739825627560219178200195597729270886627751549280729925839128849109356515086017219109185876873704866475477687881777920920644968056454974039611619875340028979459718473125331093038115750541534540724146418161217210244881177803677069929600621493517210008707084002351766012917838183692900102515395192326109918113919398017437051434491297276282034137662638446258715338085381824916961212155525669875259550639215454201260534778125632950017401967370473965017812360425565696688970067682711726263893927977668335854171643702493805612593867545532981578574931962654700652892194465609388549260751190644915923994245462849085296760851420262106885685226141082283582979447743705757551458696221865326923489487379481886466183837740825996055556564877064732031486394061460051286715444049063508657641442199703632764041716991668677317163882538455765758757549945650002003660508292477329070939136583157126803410383757450854050316601725789360855832074917018500426304249595621327817341420094137496689195100281840961455576080679053479071004890651174116460665326142995945933759218522607381951946493426638000814555432279608817582789410876453414084946482515297857722776597217420774495606739323982014105363765611937086922991426286342168950357039573810914608203752555970172327295697338768089563250669434564014981807089427510421874105597265752236659559192754016205476077644226855513413220818690636830343241461583507988123087551379946896064570824439980768298555719251375840439846954770907603564676466220043548378727802583739036052052470989404593957377807340944635913488829027488056017368555678462703927885929863183140207376356440546915884983774219424551211604215921238175408307520203885891138663774762646100587879270757425263860907798275747123852023176010342466803553716296811876263040749021153585223418468070641106341044847918972366056983254248291551414711549381738649473815691857980842587201715367232869350726301083226853179890211773042211636675443887317442786135918034146312819586957644949692750024260596783555878002635386992883318875211918837384300862121829864937757440187113703451624793344590522729435951677804177416790039392504810839325326070761511889161706793676067009745839383172707930745320871633045559756692499992914579314664014517736943379288939735504691392775446539219085487882513806615299969539661852344247937444992730585457168519499519312663537611190347253838374248209061000023408473641789322382104978268337014262495190077505070168130097673149149218380364287257920187481732548179066622043413014164168147544622095234505771687189872163771379391655488540384180676001778057020721362504863477169809457974936782507504846654662238593441779799244973395604209002858187316986534934848760414549705449412960104413663268216792025186306200186027807806688484286579631682496156048374836295185399023841760493558405084539478764769393174439939199647421532827068532075249388544946098138198436879710893769722023588050294113719213807602635925817470388518525632268565385534263150798058892491614700908489273653013636060433031308762514894371615681442115874985990596114190945150254470832863330490397412482435453105330657027543522976591775394735266660521038615252887702716018579379062760345303971066812106437022727097752037271495599279563159994061961766875298459813877315825126396857307245536151319176889765390712126766328287920109844732060921346388634395822987775005400611391307996858865070401429574472442022016445581499334765129338689293536155371138647744518167269542818539344885828646414907704032977217668588212065975327318065244289922304228325194934594504862590735390652311649621710100661994615636383367495579728991800441074835065025139358060287701155182252659560727626225098996944269316402863539360455902616787325452244404534800705591126854216349211328274409709449671660942930079146139584850220553918774975854638945821285976947269272534025953176349504698880117541907699497540798985583037600707367930666499664301207461243880144141631691785354570389678822983471855117810882106670835185955046126828449144463370973940571865707896651299308263517059588517242155000046707081412434531390810024925518065488607848595745716509866135063017247456638110716541189559399680712110619357605753221223357881053071539697407420244285484768220975504148777264799435657478725268059537898608283691964225482860421149348163500428560587421626350277821249877272908386641690755356259285704936957509034489807645408451093218947268406806164463842673157576129929907510994309324690257045449621940602962655097612003816790769318046609443206680778929418765442173808785765783197424180902264935996931942005655016978093132795151130501629294453221785274073941046080460228049974131735807049263982656296836190540892471183925215652577570811595591265999519043735174194174723275921194117849213382987137423696772905601027876970593296077765191136631885811063686569418841105953984053605200155830422683023265623542308105093963684452603716011296740870314602570525895422763519038974695275925404475414506599656458963624711700741950293137200972863283322240735000277656859319061776176710821015532408419457160929577284311218411711967213202616474602644304298175372598902246308773044444458001751503998156802857766949407508190086272738558852364067981099861886838491638118056041428627911923321463760782781950222216219360783613387016329466656439926127241703716598239773575185566767433357186593326667026184387519028311505939110867856045387717639513019988339234734016675428549490841528794896197800038764634806180503180628457696407085961714614682575779142964919965072675377412173131345493021237534038447466945033974592503851257536064507961067506473751461830133238933053607461783349693438339740777361113179268191930069839480159803571456544570354979587125755068633362020237233487274058371604249515495866343971518952876810055452569098642506355252127234609048877231524923423197096551329909378611197499207503199514811788385624352194599281290766497572957337509648295631427827031538754786521865383649925997273968919194286262363340814850317103299022826413886918560711548047947441278097907723154804684236458587158185203069083728805767867386152857629885149616420629856206552203110125500400465152720529547619140176825383749034012326481449028887335291317619985781103144342625161899826502222933794207863909266689587785797315886594212877740745176638514543432375920241487369835745504060236349017577554369751029198699186777497776145175781677484502351486643178312721684810089688763584109485584203131545193634894279868809042184904877877061703025511533726092649764017659947897311010873863907121376517739282150573293083449772490052538764192005463274038279404534450994981906551075085369812472880805267685356402316044767403410360261691391291589471495014180738551601546960637169832107020881312674982416890771263154626742125772620707353951565416267966323433148556469264158561600348409196388336250838131791706097961663188742468424098812111801590837666668296271492042603579114661161530567816676500896407074042645792422298311797262357269430204356326655273882044756670813648032486188862444156644193632024052051689412248241112836245765067183091378090796558275134647666006168774164444390170118048471186576268119915500714811054069465354876810870168900129125929992056537553162096900290228708699136997120382748768569853875591670542052101138106868370783272396174161003914203668050793228404810991965507859370690673761124014947243783265378467635139464524776243023632553978287477674666672308853361500393358530007981676332020462721916434348565075311294862758778068467167208826281898355351282146632495850114986510748298963643934321739260330206298343691569302819760916454975285142360055791792012924192404470697359279594032969054049096185767326670720848703882536648756833572293328142036999609579053532938185656636660643028632301511335306664522263849723310420694858993714472587435726740925128507118307340650030559551988020598025383527230861112642191466709268514211499117115320793088072940257221648268500024052750720105692861334865873552656305820654730815793297264668904935567735116987146427755493719475957168499123619107781101055087225727745567664192922266114543441868323308170701680377222220142092189712116614231687306260201786979089143161201853155501829630266859690854486713438241684172199870643785349567022613267671763026163648482222565768583510215894408162841638456019908817840721495994932656106129642442484317617988128005883275819001391166278210352442034973402738056277278352892478051716095081511207530587289975067315038448452739452875361318190630134835978472099856585283168286905071871621994354284253819630820497778292333349381888290685281910606326349161403372994307955970814203288190017313943749815306041792870345645660906100367400741286373314548773141707918099886645790598431354819279037581992681882777729186996491519415149266685386383303742386838638495334055448680537677532437180415368390447152153308091376344656827343794370281870592347211513286346606305535621665703213741284107064445084872781016926783351907638525006602018818036440957914825010530158988854058501885658095873982700446488961804227307893427569629369055668179333855558102573674846381817398640491602406084201213633127729842663762136107616957283611560325556528964464657960076974834234308921540015550197775653026886357924573101791717756859605511064801729099169953695482083909344341840516155122574662035250401159945516024861627972261249537099312621558149116520888472616048205153049465634274525828158216731076193074951988462961342362649532438901454930018379676424202136618689261457753276935929896658602296139062766881292600950235206915448113736497099237723803953175507173606953438289908613799757967421482032888477209580916849983009760807694957449138740650803556745167561540065014510457159492826606543800760925337478628393840011094894433002013079370671947916380103078354740158898054047989789825333652218113383233399869759383542329765268962345149435604975615338254916092510268245952398502593965179593292803866810273479062904947079245541639612231959410571389106930799550570555248700994666741147997439513461074405364014010209774742327873952864360994501204526709613769944123057618959088933299436421520183242790308792828763234183685113177853222043744924259365275586697494643124584788305454594599344741964628475970865195848785865248657369889768113197216708655085214395964884866457167522028035445834032890962764861584641268049606791002158301063038334714000856077164408300337714421027311906707765691221561046037067329596913102113675162998906324766395391506494160717997243650366626183429929631009016354542426519395861999295182140066867927530439145995437052149037093336582815968250734725706294829204648216374775652223880068276359607571243639675801286173767753498111945451669324332769415949438165388072547099106393077485049173060585775907399960042770756190323163795590171121493706667139658606128070548362829423039459261193200114242693702096430838326992929049015701210966705479728938962701866610286735638446971496305495233250602245704455095659985550852657834716212237169792480949959664735914220511297440059227953479908143132149770818967578383677483657831260633182365624088928337534104662228517466060551160206679370356284396272671231102883277759919158667576874403858836442877593485611561998496437313400851830338007137214679440689914399966000423290089378233262278345092681467310803795273485423232210024759907715599358181106970204554310312016522114982985879918039661478042468551884001954967366885743514561611329980963547091148862809632233944602039041755297304459699312709604032979820998725000023778377186824336602337623827840719200511326665870434020175849970917840617911706469823353633879581585688721568487665145741980870728931560731584982140659354948200001464688751530410210134849647303621257165897474026766683375841147141992208157843501815637425813908542331126117622596557521547821323024721395890420260216674657553145348689242828798321408812874393668765926477002166638248410028116958182116951633724076953925560601263697846266919337067824354023844286686193509443081463786188296482146179143983772241145614019884059022638378787262538407828718803120653566432594477819325812138050023483868393311060084028754214382423974991879099704033337688722765181856725583725995657580500646042291032727156261130151971727909535263110855272430758588215018338289413654191825841185078511131698222800445485196487069552887022758673817695727601234091964828637932513453350902625124147192146240065936643214207799035641754429588904418477442510243958141016056617162994207530170223518460068504766662801228369610317641646844229910743247225313083828407817733791769924705202951636178363245977621408562173134902138626618442738793971448609409090047535236762486976165620465917931530947088053496147097054245327073528258035894516732093858135054148310962136369162855703728064257269935567187678300723109725893173479006577112604068637095710389602137541446288626529500753334064303614376063720628424038620190005366903313255353113129403482531758169096291084845716683225526634191344295344282947598892432514762344415184611404728073641212924772945204798116485678811476312973202466631099628424564480673610568073148133144494464021409834755284962246028153827308948903923746904977873675661157052964201399457313313247498114509673158524484057758008999600525697978833671536591618804530174906772886025821281748029145883380010313009510928919557671695063639397715260406179829701539992198207708421233812266816269641778126013496947320965121578294144004133311777915349403998434398012660983907820961298417542456970135440838284083921287626838168273411951044666698071230161449559739507782372052848599872553178296796867147522983361703401794686311265250648016267454013447398444526905009849806431012108280875855325255441569154346937141360037591868210890972988186691432748135077055455709490429530212714499790571081924423186310436581462508689827522407021314355339395474031501853009185878367620118257106927325256072532759927022004680888083175045698993216763152256362532926584557249338428419303181698964729460594564704696046119697085899384340159770454136007495355674306165563267735194070743212385823377028260548716053301735115115682589594387488621173498663598297499263622227078367619348708962086141517036205378375906191559446278027848885490700590510515596509595966892165570204246363259385241748185148176346821213530948007793676557345478517664638810750420500871634417538096988171756915374832423238062188431816512846031102305495345436230620438283022240968974414920072210134428167134001087242735073550609648644558924200976020540081647956810624539491937555973088719189263956149439008894953556502327652696602733625837946802770355233871282579166659276724959545651886234591571098593748780257703023467609356355594882250514531429079857598889611037040588736376655101504902833364491994727828719861643117487983318295444044356185170714675108049191362975751342469803301826426349000576768673113172085247869690258695065963799029231071692143831843207649268011122020541984579125338689307533338281504014592788500501733343465024915585848390821614119660194886071167502441261557897527999621025134397386910023225071782789789404365141549175592740130652890069805372402924536500226268401123188903871295143991464942914604189930024889078925130307403117274087713504797379116549294680292901569127234529183555718976451912798668062680059635336053647347722071669614040673545122636108342145572472259172097697768075818238641502452316785358956591082858434830125013028655401800974001657960945669791412632265966474692540262643165314039595303371746504486883722998416555657126976108615340213378188555967663667124809624100017114137053099862443907202662534830529152206227739338258425940866179104006083377483056922299342401669509647950711293430695168973163678559480538696643258569255428312065625417460671576325914708889594009011324588172217246171705070174444758968470899774475070544371530275684529601024515613736819165787656596061720060381378674607565683891062007618739883169380572074404696117960293942908430373233285255952268484809440468009252084764772124286382723937037958736071564599037190804841492247861518114352128821701810649129896380950926345884704161759156532127912651319616283188205213834270006974536241476008940391911959647321039437083801870797666008855178290246741161675684995691899490422759082039745587539206650377810364020538044409892692105460430406578166203466238694608524993008429678596410762213129434501955341128973689769277450014803010313572441123754449225212498692539938880387680557812593625383024783664977866702955209946919624164649848135205036895750006410446284754445407023518563411841490018824119350245966827254690880911309330155895554129844588894571758305662618990799529293293037055410366576226369319243880929066586440572891777488744540642799202466823820351320008434850289809398793979515417481812579302664852531408895366581379101343635626851886166094896040563318403661411400457537439902309701155067029252024971428292898753934007919943498117938861211680045150459802251217266007783196252939445256469919120086127614075843720595992254218247083922868849183312209708500819932631085975068179914928385299106195732571967905281814775027564108478422391433393062688927099625147618575720546801788275089819022141371328591061420464106902083362078791022975778739518257472663134585595907453039273924454600358941751614901072985741865323160850234326132078700556096474834842349028474344076129488197367226530486919621623872701673871766701172474294359945125427512492117585481663520234102740618380134359754865459360680540877355356525780853417993832658618855924656727780072970641148391618136441109329607052341464146044020206615250428244433321490039232353819461451293549278345623051116502768536824026396853048273282122965195211125734188816726202068354605279202335652502047228169791115963263308079962449872854759538675116923691376467435403859625834175503094500426505490278181122194193735411700952586699298159249915096736862165229613560414367925188244078108866705559478623267012306751666549593771131706105276277868217207450255458254439332728162450576812699584424793245140298962151283916472557482681974204103067093784491126388844773843201643730010343634583279208616600483461972142315924980343306683530056732547249421838137906145501405819590130420207110103867078932604279017087889969889623164638881879670485671541267575909225964703002565395135803332661062852402767046474117339497637981418056165178016815972150517320599081726237575779680096717412511977966480518124753019168125998992778683923672865077937749157787124571920400461581330494056390077116118611933516017582487312923976036184156417162981857747649135094134702665781521334043860850703632666251513700964877108723686178157908372273640111022629193904124540974415874687005014319421676542942992999271803075840814080817775494842725724121651465666884104116569077725037319313948261748693434369865757761703723598127345050441340582722214144904190428587702689807483820397318670111910092240783912293102773093266782678333168232196159633960387182994431964713197185482978908294582644242711356475988482824104399197105329701470405090129933824419641569016690514832524331627230050866158878286869226390770241868126822332241158447351852652075395520148964780716717149778477686584653980350256554477540820835756895975878089146516136904185139108486204551650360436730233138566948305028926550241118623179526838299267383204471214672618611288053816903202377173565060711340543271916371170102025793440466504469110730766233901961385241814995394443791671118215908589559167680186860094271155255011153937478213073593637128395311384795387633398264493344208300968984646050752169515237317588660645288980726564895257511102469659310613074772831957635555629621717614231519941421948283543867025435824192232298926815609043096467235344907470742148465972493199744118146943148237754558784023547088433398648653130054704148792891686987902226908520747905747725482183602136307940802692308917756378172332492796818924697873025116692022878988736950862696597872137924049193427084479292143381600392636637300163522204619986892745311400284425907420931182294400279709415788184231351642302438154257993996717365668603087275985397216422596792619221779265256149797861330340340412890265215975878083743276561503954315521261836184241942117355131389440374063860196546335118504136985897104351993960055376391806461827440176015294171818783953506526343184498395107482654543273763397153431332377958361239220454903226895271976557254028520757826221519510929681107404808409219947560858610864471282577237504636611773648808954644611283407635275493074712482145085360043244481625274321762143518038584768226566243735669394445837125317933796079648217413030128719484676430461047607462653679251563055871315541822428098255086323752094078285234986439578145930423856173219698846290112222670650951567578235271274281307741503917906329224771086785742572953349479217690904720118718310920118267585251923994422652819760717805144832121618429190815088704748013291626558196457305084179474686629841879896109854695508554443978536207383074492572145051892813132230430320171440436653464584468313879887170609664711219486084895531876525504197082661001938886599325850365179021215959341064854668900005009335008162641607075382323432503257959419299760372785869208346826822593545703390565002705000901322160548845805349420998562960268435145557347427057113992158335956270203693076298978656893351844783424401806696101754564460021327151934761115984237491372489412190957123019449596087917152082111584020320373047138260835274679936234937232270350552646009446223254986123695595682752796656191936385675587003911792684686134770276825465938494418897473410912617184051614994960317538158179323527419045038187075537621224269085268914782550122820735455354288277964453681491692129996756158421597327417199795081002146848594493756689413173609330502696821322889811793510056610445266129563095165717838281347037569478261362898472484433568054818013064251647118113164081148266863706211340823710160178293935571930348447980463836790514315573787432063550641969335676131805319258241562189115879163653890740830311251055128352362290343523465780738227176040027378560407643456911573284222826651348899781944397814316178265968599884204814929783485878450175746702704695750785181755958271025720214366369490008107557797530764527616042391906853939867279739085744805231629302773862505634010529525288714935131290179563139010519639630032424462441372787343564785901196723025413361445153819511379343225218924851628212604212179915451712814971998825226583362036604467357541193295800731976260333224673093241445230566597769765274997872610900074786888882994327888493824459544387857871965705922051797243264925322043871900114787699593015895777484310944862116060273789831402883548384725949795225955816472520593080471509825309416267007359992812883050100236627100088765828209801382568837493235265132774099831285540647260463813207669986361189094016261368458407010644680417931801442181873940979421490148017670345836703550612549273989277520947372798927022640640153354974912404819804823296732712572656586396603344882056268685258489165568667433051702675311057777708945552347044979451168809918366637366236071875923865608732709768392948327132433861726300105575997297944117066694197585428778511992589136224539550378014765238054174020674270285700004090203036648313228558050849127191811593425669939300172301784602331870880129190224130203785918521240390825281778055435413660033452008521806442994061811727327606004048337086816670595537213210772312086242439738677760925561370239402859650746702349238039233601640148998019335838078152602809688795338238003711943811361124716658479619623788343804629986320856497584856050518709668987615252724213084641869545099818013686653821569627198011372160560325893930481392222261772919177463814604669907167303151547486348319452933717601483109812195360526045854624861843891668414825839209838262500613648084821045478970108406227976012892016744061931732572604587295640025737828852687258585765301916740497019898734972242522467787974915917854885948305740275300957308607200039620814200989238372372645017533149568736506136782605585541537127500900093691387146402155675733544442502457944594668610052576689921158335097641700265129629689301133271434340363020063779585053868876793817160520746422935721092390272600678042635734111091488298433754043094369925852757400659076533445314861976974479790374905158651719928346551816557172675375210781748434359236233356007591855700443136953493001209725685464072885102863589673687308462218588570069098405172877481606277564495343551097153325775091406647129918889083600534915112184945232666504802259922521385486336162028778341366520700127720359887237533710251441422596638996053174191694561756500336676679433826661380805740621341669768951016794339962261750328345247312082763551876241252485482392883817523529677064012451362939775318854325185174269091642245669686506691909811584350435569169934695580392126235962489378501127344750688872492574263064729688247758437079865512219210397937242401750640782783961730918858414389172191862353444051979787181729393095119170728963078484087417302300438343727415402512432177125228848426888497657963888413623296190207712235518906126157317215819527786308309234253742367600240068778684264298518403473915505909822944581446914211817796586205011238283120141246208227831787467839280977624005667136821633282308605482770808738104160387383885025102796723123006593698498343978653428285592151625421578018759217959688796017050996801436865060689877954577095875801653395342366430200006711401983001964495443632055228001475668960376615671979209011279383106480160323845324779793129018257629928953353458673967944290115743314728759300422099456350699950397884070501448080138174633851996440948186632712613267870373654047716706126404051350641119809100465673991541052607504572601138383110221986649515140415023440851414099834267560201475269249184617688578464135388418672920357136169837197025712446426719452283833070208721192021967856726865937700061230645778468071804084783536199656187300122677827709608898654956445937163954717554229243206661946491200364909569439938329840477774517121626596390297026292646384004511217017558865504174108041937690261113192827093897431071121159634114123339589218601482628693760892281134718480414946976110734026717716906722038907424659057624959991553213481028696855274025242234166759434710043080020997300729561192995661031441665270118202165096668316689756747061465971805953635294616194376300152187344802409752417640003020745409468486521029088716366032990081565326307147981610084886290605250538768758034625718975377538561003031321092104952762561636407800338561560409373629402490047503899010810832544684483109308397421698727601627984752601819150260215976604014457317629822092878958243088850521636863385896152296722702799203003167981139315827737169751177087421487426962755904401254392638243422544387107433256199066868267777400498393509895525946662452310349170926187041838957629426795024200138680252254017357410077199087948687137562388704970360307386149928285214456904050571395171014246014421234483422168903322622646036942458727883829709939874859074878069115027582493447503763294438744474099994082676243883949988892382894972384906006389131386743965408953494520781192673837138075823996981990712985260860765977575212000994360249288510575015315336355987270086696786570961721293934753777004744475629839248433658400144176855761241186368891404060790983329674202817576252370185946940999775096556503073091319010193309602770545667361723757899269700492572203126755924029151474170387325685763318305449586709732955486497125962383724923691734559214566693706193842852509692082638949154697382327106175973735895937507897324633931722222336976560996823820948040230799236168339095718530345180639216759543426003127447379254742240935354456612074782540559302325746998965688063386959085344784389162369781858418576215711506950036229066745876562477625135817637999089355591161443219451498819409115320421787578225260185117232090387126235310371512381657617687636813996191113886355742298297159324428890888186351578130205864956391314770703416905448937920420748934207986475960824321756881995713367346785098628287684835624227802664864148173189980225602752901414163636740546428550648573293500747792534451144421791649725705010719666251884437392890961226683261782139584091983477831091957180189144025046541761312104077767704964245871419706341047712693148282061268015651472993284878269574600751662737292549768106688928945070685284951106741357100644057274277491110361915051531395862927388526283817932993902112724177739950450092721765659063376682070534380867864251764670820853513351581915254730930863101760216157919608431249522155424928148791683526664635988903043794101868427841630553483000090387931811450902789716258460846616310149202901321780811905488858237107808803858542360987572072951774993175487072242806994050757437639405219636745661229206955028001719322784581795715498718213332902688178989882826093250908063718834773095530046692442743759637805501321438942550793474311654364456386103037713460531074453530207270790509820922528969980611581748969509960845288981346796775200998469990993169769166315956826668209891568346226248926214002016897581958344272731330128657943683103068262127970086406901931053777575635410153565756961667268631907417740967264138675295035606312987461719215298633156856049306863790945009299068503369625481148478399188784277441700547636613211133239118070700336407387003782346500747849958033130452758955500339039466981120435593381771850356490346717355100104132874459840548696097640158803937599487625865669142570365162095299432738620857953025639239673893866446799319581566372534835524454288046757084590778845095315535918535794331135740449130451645504668988410195152195269703254551764384668371283868869840423430721231747547253170992885231767869505389726825084217024758039393209345798403529691191829148010381779156235477280105738803339799022050991512469556181904855050252315065796152175726507304065328663525964916409460300527912739465685458389051436668290727232720840395267420235132733574123239172223510205415806108280406417698070646248982379228440821838671770869257247003085921722894567545172711416476468982618985086017272767586906349629830370926297680412425249899208543149413083299016949639279890926966627519100124354831624355572621454574822683546438920668717276198024138115423916149163966821578821839390234263039042883847939077063230146732723199479408456315498614329648197540501190081833777161219192936277601404165778488959340098806165634319859586426005737832339127536208350896069060215329764173279708213622638170205428886170646676572986887861791166195702282042734812328202037795915914528584648854781220863694221967584236405253177512967509103842711084745699093092331861927203035730948389482096801513293529469676886966890463383866600970630429068823679705742647112504553264080239556898834445077591357175584448524534951890317637261071446290592418949603142814576899863083032203790314041282851392975897919686611184857742293740638097401308572314194052711625270026908346937549856359929975143946204355056031073358781978344618948211621136949364090743084101293063185317847869161342621442933654044017622701427736472823066649644507407589325047263825122654683371368870773866370135105095241411556317390185052828123393364528593232965625503866578372597150379864167329693710171954901872669361588769673655032042467835017041580794863168635568530189459859271344238237802794476050647212492558323966340100527350419030415965761402970876637221451292438627250710096222269423043326081989824940416853596630830153428750216212989964814435293264291953531718056886222887197567869919844644951860531706817177809229571035684721607851192413231799951633170707991325548319330543714212093094184253053483183437459155067962207698771826006407575748249094830697812813123110245363152164213122186402960201620016139244459764487104147444474224991060434277850173815057301329187173140519880658402289437049641653536609024115377904708668261813223940424416540867071569087239306153239466826427031988154981219543271435368005130585044486011415539636646420458942809077259272357301132706925853191965738860996795441639130804087635984422828478305381929757253412779627857073715745882812375335380370507532985880314374318145328560726378917669622623198110534252629314143181961532194602589229714057423614759797910553222820130458894617459371189019042562036559867320934893716507403736798741610921378728303824453130638240568530290670901564481566080601784127546014393468970070399877542172607202973788396793653296065176520455379957212066538359146967614161483136984166175425365798002028809801048607132431932897055532797069965546751995264391981409710874129064892510487243676868525842781176578666488456528412538558670889105338972336083891211566531683076560371471013710329394647580014258972891991767319742270280106190930803229987770953925110804750241491027003894227219939916289549097436496305216108317287292259748622445872547828294338622580847247773632588705915599597537712944407077180710193536739582449456748134122339959819350338066256315877182332663986944977517141497762263355767861327551928273955740646661741387481490514482567569711237705779988509791849539489254217935453694894804127904330025356510583856097345570563310743401200840854337126628046055994243640029647681733373403392355707105843180763839787333512783396485472451355804133788401571665283619738527835870087158473953414089850603900563535800838025850652481751554442626051784904280108617025607343020460308609542546418973930375352488793904508215806257445995490201712935787953261366070718043144775920643137031139531963540658139117697386885209738930723387545196787535571068626582340332426691667427767004246611445540026328539860315614879912303830594774991387169700302501327269800789390873246909656833155193134084007771413837330763971120277361864196595476178183354296586168838848893531362487235526903324221736546548529058414836473845842700979695356545509424729124341612292065374916195230120857983294297081042823601842707389033406936698581783793746286460926593171927056113062502628401606885617979019720037752741399480980679398934341230427441428945623668404391195228314593278604199114012596567623626762049710984131655800386812083724558982836273391873897689229268178439071825006715233252544814406765820622608764513419616332396025592687396858097118157633081911674791881799833022315933862337009898983144981659367627734807317212223606432113485960885082730918576382191520021060746266010396209710875559235078214898386178314000134707634127380765951448542410161108094038037117125877060318994914617748641142102784372265019376270616596842036550375888985627433900061151840713361996160379119663247658786671024616045265218762932608473159761471181280518362114550253344028266201563687176859727326766519399477959663914418551068901144357153286585570276100651742503360303530846299701503209876549656843012453504417207256632349130459749955538277155523713095981300860913664440584716146750487797173426647764468921335843567927346043996957764188062001788977352486426582601818034809980996316842684498346505565197796367485980278918951432336749339028447270164557226536400517503866631861732553304418060832109350766421459035607175896284216741499501507876606015050223571118480022003304222645792973210567930606093325896310291520343569369723745374430118135703456536382309385125624589444764318215528976679094770364483369160713107409228358308776232663270976657235512154717168557369680482572434102350532168066811681704854816228393130130776727107866617281239788715654531153623678762242107926686399102049384014189946226013109098520217349067688703472188948987003281874239055699128603866733604593847600392925959215658909540860811248098418588983948935165679506924210417395012743848819943343569991431389384409439778770413868625387590956668218775938826121001798262722080279747365258772619124067864491918844681251325698931657172949545612140825631861068674919998295647123321121957027359377468392471021554798893715920776872181164981788171221035750395870788192246805921191819466020195654004071288283445660845608358277791949422330616374771772172480052985654584686217645397456336334929574203917591235581606435062681128135879154808527569717909569684924800268039986672866040945617511723019317539515002104050314521416869821465510730839571030877596112434036213174399541088249938996637199980617295583236355919760291067369279545073589554230145034680858756162468148134750657922652219333551600298142001096879595997943591190974576800285445768386660474378667381231893067705171083076250363315334415563501975002131088761492488077185011945256968473854443497568897569956459390420234628091639736465782430628091438430867039424664604610226732438700803176932698002227710281004843627823190490012649968018273452554264342852009829919435375017546421615961950821062031018059381165163928685096659618477329696035200895923615460085722691184020194591809548508638366044959375803948573615606612747734808838660858890695562963443559583053670183959040000845927044656797715636178972706767625193455830090079402575258715453824228842190871241252287554247844381796700185760932750068723038968974435880245014427233477101528594799916817401200126248328938661666554705684873945746296257544531979221930732565027203504956542690508642174816322875952592209000785480474889492598779681641622557179971531394600898042507677540365583205349594153206803425994554354692183341895411309178017339477372260937632273693970387572492654338188861063808999107527446225491508548727113168775894561645698252749544684580927906249453702889732023892895165057549209132342777624204600678353014642873938286446926147463429222059409895730490243561517263655974236461699354865644321481294467409677897206945820800412586100424543237668680039868801187762968561945079699180330406004187731555404917300715115365706064549973003288552046457736735518833185438546205460022475645860854610822774270716099686118120314462492789217908225905015951560143851669688512486908647460669044618322270354769515601223874734328679070822414585646237403039889561449866017646044968175146575680298390929449503486867407061995862773709788242076810500446401549461907480016188073932510305762961745016586711630047537083841565525202982552021395543194411921494352670869761160355711377819431852591926328927386325552639412839416049698117591452580986966983892674160503090000853605140489820652559527163331131360544718909558084406497807194530394556768203683198400465355218330739599858930524321149447371624369410042313057341345402078727521573140117892508752743543656716285983403896377731323993623418477701406742516477307881191781550880296377946417631347311581662223679654046750585446674609950058192209186805880031764115079161443220802236462104270356426788921575828381576662234204494272464106707154925362244222197503313170478266725691574666552264696252694752567593833096278371579775379286051635130443143996546317682664524385964246878010384469515204888305842949007713963204987291605603953077560387816192635751140189669362052847815269759997486375843838645353114169566838448665250769835809268402911702756110715935489583150287306612776407288199729114036749638668072268767110816129524719667500505548530012413627733740922537437641567091642885665594549485389558247322905478703774243226296002273620225916873420522458882256801419762042177123620546425961932604178624699105696145218625988658752120314164789703784501932717294567874388300513358218743312865809759906736559751769041409958837114890572787668519919092593171538521254948546415006840700833612475705786563435498847321967704737564923658094670026128290004674987748773863782645727719784148702689285951389705775854656321661382295762703319579577275252525206172621958836834257225011080816696262186653010781743310677167891127075518132469218379041147080315965748999116995383851323416188711700057507108799312785129214753008350379832948544754738575168910300311240241132679113025956524956544858744797854616580990027446390086259260115407934625366337581552724205820534707513534966728214967978894879469773087359660738937603923633665786323905979946628966922762936288060535093081833110067161973769783830178833348254998307100066674529194560032983343220006140811855311856007353600213610606453557756797777159427932704717380460567784275694274036490250862733100142686822269951169705007428745376548082305165241059058044713552697134032314159509316364921554883767262486080186643428343968442086115094657150737737703265100243500626238915742404291676386510414846614772844195111487879105095446153553406990070847878313627916521008133922590489648103339555416275120017231082565821216531046155021615313600397935461216918561034771746867849539568369241152176010229906365227545554496414638543797460525452569613670297564663625492001499607130835763209979515107292651443311981352683848327105617395733254217411941663749205345919707968835152572855217939644138490969031630919336812377511109804859469952419089065795653273425996664937138143009969233529091527636467688274100195878758935770865485876960312116353821582383758248211457407719129648561890852842338743897029574680816938985187483592047287351209583428627267120135149569449173807517245597887337000925959794080938009828677871057994770269152153312212068119174879854543092377105953637161961560243727563035941398068969962087501352367052511528472009418361035989909891275693248414322412179264801094787115697159506987473529060333937596971034456341306159402141642030628474541079868857571691369632958703333975066312767059197013893461144987941398322617243735308706701542642565969063167926239570220990600884667742194433483129198778857061653715836288991304306436752660902382706014514591206704421731794110126595771911658891997115370233265674256366747741838011268434679030795735236698826873699975969565527131538544576589477069338645050513739928825574103590429537758394635560610012602703772945556626978475566741624012564419490028032164505122674030310693651300243058467296484953353781770531860517914954448149763748169001356205649918237579405370836426294275944638156199823487343931052446382687068374473520145884777235620806103786200219000364522321853387507043617781729333213007808020081397044694855001637593815592461325141597788811857913703745955332012023278022742116837015039986572497425474731432945626045909523104542147962159484192503484408590992631786269066406181407201944337666360778779556077588694029631166199018658146338443498350992742208702619090356960790904183932216824050926774770744580482500319577326379183734387349384347626780472132862600711295922595679042041211776358764124151349916632690975394584555965206998154682726996927761592746108709526650406187161969781900801677555520758378945186374156059525244965187063857288149721478472702762553463077487186913746506496116463588387821285001968426905688075996103476794054568780862446449177410458961624236885379529782151736096950143114021759983098527341702981787916066389639901897957434169479972422065439890739976275730623331011045194713976183215756250328616250663026031512797138954766708753295834556098903166997094461814349165209535837059954469798586195624031110648751698661873764132627890162334475947107600881605643150319876719144359404681379618846575444330701478898957318839413802813713958879121526414694202381049074650377854665398288495482741215230438348921379509337136064853440506351151445307636812184291534007564557847436350818954842868168880137042644123051390948144992021600617977326718046559024866999769824556424692390605504803613122432790534060710241448881401957527437768485193478391184539711945425677463225537896680257543229580576425053657708200995213180804214284982485633990677971917502924034237718106875440706831316089889252359508912177133920355104205005640911808715180008136459450209824568538228890817799109776890103591934318353047199596877791395642278285465933062468931764809485047130042302345154196224355652872110973205894886380387825410428791236383221298531965076999804810721902335090581646255117270789086601133786585129502192873362772296972583790778162913853845845734804411340641715187901662233013587103072787947399651744792815712904388603783708805981880853956837971209133094730434964633909105054492578130447215141271367073212295908435684291447951650392154128567356810314776234249041667442488987146018045171140920963806305583070085085174201516771443731326548304750490655740559914323265765452323109103510629242258954900404396926087900263232715805057114827655769671857738485500975027277743874103230999430634040185486239475602501010711838862754469257483071371072949454290943491311966817265168490213849344831046391901620358357088203958539480899243775796422801416091182169624480405738720022287104645094563719217438074429347644264955905387898244257086628883095597450079512088291273504263176300475722095511176809853019009629179270990105164930341204207885109380979910615283106422482154151155499254842008905441524375955646969828448448020311195236623187892192536492458182727251326629459235185765236102256848234300577385412102500828289228091416458032392882828954422397604041810637994933994524290457677755818859080894586258059644630089693710827709981379146138985038323488422048700365798092699442694717402721298900464824771352155934790818372592715408425494803849648479270038078312503141374358208850730954107322440773008785969928927888331151788077906268194738032035465908324493411367679132810271483111620532490211985244111092382439179513589919142957096777879742396797353768324472580500162552056645701753182854792438757357508301214751687051781305768549884097922285326907100162307245025588303045443766102409784668549175340956253364835389247910517812708917731185070116006813089709903327631794250263973542407012149555249871187386938007576839529686779177657880443917742878079668753646890679244614409514593414452566619918537502140756632950068623579501615752696025620691810986920306532948942560117853763247162407065479359449863577244281811291932745265332806366979903890111766327484347864881156292784966086078668458195326508117378427883779779373961122202697387842403527507904924377572278382493704476797260671842331008371803921996670641536351309220504632359177043737020762470520975604271276201621603068841651443195992098979447416366990154425720155943138682886003554899780680477449926894010544126924832653762859062540286393309219266885237083041378434841664103453696592800971981036360919026477439567602217762113130562414923707445721645730463037657288746198275653679043146233771142134897254866071586717105167017576320051304623450837586235105987491084669651795663753019728503963929740182948396493283269123404439197032755119503681822127901784762317387232672206195366525770028132476576978279329199586781279821734853737619130194211039250857230759847049669072683957828123373031391275779402831323472207971872511656839537899935672604749527049204913491445802900790415207018717703735599761173660105858368441832339417863123837713106283578388599466672284528674826095019635733830246944025131833518473556544500378431965678630794437522061143718143705902419188928903619952032779832304681740703166893332892217499488705950036612493422572207053265077011005880980527523505136660859518961151455678512696596190411843026612271072985041752974933632229974344158246994581080562455445152048697808801092284134037262639308251201735465381439702094274322969836731765537892879533042976812454975185254922844479656773133631705195932911914785468206685795839866044592921032913385218887597292961455247517230993485243500725980489247379521564328414742972426195272927009368031828054879975026232091859899681921335098132951636169721886747479423179632093571615183804622968354366550027119992410873524720519836557762129817053519296147145322835040090146029301189779178024382715687588369995811904986069823662637502655735911121883224213840662682178669809968325806211660851803388897187403351178125915374911416730926240456371412846915453789139787851908600686093359716234501167108806850719160886943297170903496025751284870783864112023195212093291453719610234274112804131391654784884084588861904256368880572382378655556450574954992055159339920068037633356466134202143040777191295723705984889918160487924146378383437053602493775077558012012469997732603928242792028418083740406936031654607841703130786403555400621396113005117929313264772467029390696350026599822829949572851700590506448911433333599011794653187242924891036439610679388631553319726060014985188806254953053759321337617403298493566493259434632500514051054239974540034654773873927064894652638076971920626538137480077659894508781383125258925749221970007909399127312722022426709580594321681635325168214637705107404317138964204967163295650976472291085876909871694067178430928197649577720230532474564888484285145823554129814214260452299790061493770687364593315327553462054090969729116863932423901874058656388652406736299230328405125883456982468329520437291792374625854781097578424277516585168395547327123492536404445120533627807282765618388520662023075584404626553685580162796737240259737708126248238604788130254419202450911411504143687706208798380163218638671177455130774466895409643629395282316894013391995678605368040614625585839203618929089971639180112382720984298202728905694871783432133719860584484031750237628174958297486432462419879357064693881784257243664396810634773881948346332006688422994318463595951656554260631821682916915973295971888117176127032978136970259884714411983444867586492540373842905738616210172082067450851060989321926162803060130553488229472766539157562781907716063603555316501577441906083396077760265207685798660317864046311380731209671139020613267244722641421033949750104754980972184796009152874680923367196730581097790773039882804440268407688427266878196246975701514871959924806414795379687624555939797554224215139885965844580821684740798059833732622813036964338478849394028163720826166478843031758696330388967572026460599427639001382914745629135771263374054202856266415506960912516963262868186941122025325258831407225926970523003082352135999812999411963698465375665834692013034985210594240669582213043462171428082821797831793821419511105297100473256026458038805350639185531250261788121372222337343374087127875608053695164938689418154695841017423680191739799336105564738307666683564726770771788478022283241077096322220982368895204311182355934854772981153177029789131538745938559213585261949512674295260811461174031988643126092697986702066213606800146484716568449589091010356992179825064040160547889449608412922582405087715129983309067743653874397397940651834098271769283782270222217605247989591552072302695621722503858040972066118200050687101293220783300410301682054148878640939266668340155018154456057441467744824578167257568651128083781976156484614551652312265726504094256958359066083993089166958714257404318412237087687138160058688103527381816600552595036351194934751775310220289716723389365781677340257645856853500072086506328171532045583412065151679273141159227325925532974826640776915635882995913266232065239463041829602778340484720496497614748212269383819352394079178058387808050838583088502699353746661444841856687721972359456561810453650046430574070392279690790252916052656511592189647905071007473130519176425169498585459390006118402507930883908353538116990379939070133279829643251116266454926834047538728369627217838860590671891350241871961103435856587942026045370978696815073657225589632691991697830526082459646635851925091485128124380624522049175203414898989492658909290924526175097906654268988397661981840270910802682444501346997903241572360536750521047119464533264555760068975306663350273545548518406831921982295820490410368258267600107021359011459808314104226220853715049329169142596741172191360217237856215013976450364458774690199547992522475003292505653524461999076057859989954154438987979121356630855036789139576524145661281141887212478704981327073056586756574145377539417079755236649101777497451727561464947310928707532539972818993321519435814609106320028952937911692473869371584876530941033071120416356334738661396289153788186925897111235201330065207919842128514270819121521693019848654170665647446628957159200822814555552197343623738027461790960800141384547253128570071815637058777710772188428677057904416303248580266575270712991843537387939849652725501763907243732072567837810016878105228447087793012077594236095481085918052455473487517755846476488987880582902887066425255127397410823414236945475588290393626645471472774655004849102405006846811170477486521087411795896583422637663702463717406139505822869110756379569223276762860559991473609034596236760541930006154675153749375837773149274709771805020266848639706563556460827609093016160380638483672956596775870284329151615753574942941842580732244253046909278888771533413104882678343846016006914472890974371582292926598066953148577237349895766943715820219210510062692044029580933910399235610233344870937251774175760765427444290934733142749667442784527278821902477299710059968305479185555784161148003370498841186824190805983264070363670970239734111361416709173809505608680983102680129474855398704203091598549902339951563940492397190053864177069159769031825840505622407243227108378243050982821077813993835208018462419815818008495629334157391843170551281655515900239446522129484082826347725245798538347021333197965561811541008995710844658493725516192634323878936864567998315850497132067406417119130153675404244032376801969674597680850931026148870153493360776010011857258851211337431547003775847286162692857738296731417918700737870280432493274755664500799279460682013681883383553984783743580343847110446441963265259607729020522841386525574591345076820043255697754607898170643466577478425635407293492818851000416208114214055096922435997830881622953319576670198267425969021440202579619478857097382004828792945087901889532103157412569544084817268703468908410878236567503780455570346995220193277428293005000566486424122506371838850856387360420064542398105635660198025242262225112240810230846744845638205703664203782517224470618213296175769053544044856589019952136782788734446483989449947537463367385713680370640848137239517779453196550364742390582896627716595809043758593623804058072280747447004894138102078411142098549093652459472252070494670080391522733963060180445015603006108845494767664919752162952163617732195699936528442630384450594011195348362955593341455982798202937432645048186627135583873532653780862765918030409230687013715280168741915025368825247420044208873175676172600494167806675176761119580446868674688129678987850864997305023978797061130717948921621438616603157979898396543680055185171257864442053143952531787318661644023540254160386641613900973580892217360126578044309597301109759423271921769868083680597538095338278963756444375155847115516015086601515318289712741085808703024947806179612742256318278067654255361313899639115878045304693249460936602939531519477723440901635874819790838182760117480310258839210520369491325552051161184399958979286488619122559582861588079307782475247032807561989657626764930630971268916586668986188141974421338904405878110475053006801931838926865441362609655715459248135309700129844594114659448913101690858320754918843513967167244987680371502184175422510207643083437508028998111069017872078500720305043174523761682792588962509430914151000618263837399558590389771737840105008325719918172041794986884744805868350381261441414342068377920893970951624404862151485032863701963206306560014958343603516167953602417085521663866842559432581738985264265074197205568516420238733300223801798529525893728206151456605165011254743718184289706283200760191156919467391897699748622080310667102890776537160649686112543052846270223073650867596380928912540699351766905473446844383483088820028825255410750085335927915953008146916527608748465610831336217604963179058824830136498530672610242702622283705016058831022733371134275121723895384016792481706043590523237681329323776164208423191216011326623675982287028713522836880156011329902390394808010491022982237279244566315295615263954327333118836782577292858324038341431134086306100426582615852343392048811774410940866429161559461418503085721326220958384059311141209401168614857675987436050074517284744062388841657547633188088905692542186273292932085089098989519825007565530822568670731175068762808670053246544234485396857496400848446387333638799854080693860260146013510726588730297425281459273843539462090854750981659130175307533858717663674276355140982158422972019104924168894756665667457161900659943488085020052303507700620871404063215233770060611264450749421048895848346668859549935621818355684015733152593735118437427938107379075618701324617757056896303490073876556385324463931153133894221955976139813765425627396268591314524853348775880640570495618861015677046100506898560360316127969475403957244928293420697522508074504464902346289180712124542854121999644488858488595969023087499100980064299865351732207726035738287106774608202361180058621118290899759508939964700716651921231405909612195823119163749206934052858569666168494727310959466442234918536981346521810180530344280703892621053712954062498290047830048738907991674409066557386741139252763316459086958197762259764233200989114789252855115783000702452133129299657970161058615887597726138829309825039831306833358222648694665310287467076286956952283780152145365065491184828990843208501712796593845052712405461116221387449599239052129443093231993586407020069351719740224829532232322187909814799136663676993958963602543014775927241948077527941859386894676568890330064300794954806538203023022538733377360508401723872211755028729665941508493445337457655269071889511442580831403094160035583558899212299894852760436297054831856127001956230112723714192371697006298683907271800202838969438404961428345665008279849077518870333160729324381545482800305248060855637473615432372430100392679567362004942064380379970696399915303377823172539799426087044100176565659478701906009843944209835748343688757242238061299212225423764506782581458931141829301396667123944513009207696176891754687853356581551343654877183773130585015353961016693769907625292232467755740839952523798815778669379357564282447963169631406148446750798110854802704615520051787734467252364649140788903836561768168693581888718922479116110401098372423966437296888858446748055280605762286294794680149987918768607518953093898425535333020833963930937732163593809797197395529989802626527433721274207379307760408385313708303738910356042451361049998584742454639325473267673029632424447191972043839924868205759457699521786557290078337209883934745247036754817158737955273251503041447619222756251099246787585685087674582347042634902005266380386733372078364793352247690444438643593124002379092418619403328578000616931323891024690539554923484670800604720195020261226629253854121419049830992012117920428834986394494480647927151998671360243612983787311444423866947634083374427436247709440572984502231759206238294994866951938921081175648231412257761481736975883440238620175178301446870854362312083289166589918754459064820729520501190727250241033170087732582374969242475047173249193317388706360559540527687800974091573833045072504060929858643766492231399753880631025058881411547782687251332171578059806889006797164489890937654420805748878922757650455147675924572866970790277672197233342183967520056702303574306668469071797189078614140890672734722003254652052756410324486055189984746611865060506827951793668508667398314200202586512361637899206695406706913043632676039498518251957531481193373312717935349458183477308924751127759609513669513733501361075569175572180536156088176181740360550289728593681238282861811187585828934550796891393095410806068057132746649128708450713962617695015165413984067028214285224215673705825062281680008080202224085005584492559475404074284041212072739917659891976278550367186905714894486937623801976524357643866985256582272427047647853500126764713580543335823627622170695162558898712789842055265154254991068692107602287061093383568064639261542724857484465140845861190294493065199124015567939350851265562618100191780465643603762780077727345262991477003366455034229143031522130063764407046888521378301485005768249050803186029109397341482727158454462139940722566173159537397888367370008076019562143744941804736847671024106004274262891421867575814628649924373346708409017754940246668073518754472286407240302781357989889992149996489735334671519232311643810098823854830741920949259673291677378099453705548555352403893157496531238208037625955315479806980654953508769749923953504540737252650954274234386028594615384569596432915645462994880829484330427996126854503281291586492008715496979405078077013765450312745202068098642347641004025256719896496201553921900926902171161857765584051950075328711829169542241856737488886661294340263629554566366795208643054900871978423667438179071435475012083841025695352871144730432248128096056417261118502056418328372293262554666789580918276357527134477495542146725142791761671113430963060673040768918793630047610333532597966951374019321761885085127456197539771519964024402890591555692507018286088000374326013742737485345646351637951857633644607290879330030372811153118871681879752711339672101528654119316286756918043421988080972222344532616245529680019880615475632305561393628729114716351663932306613349587051528894612456444921767690613242064310320452875863462686680666691684215298258915645644895728900655913966067047738015067692981473531100348554166840584791597679262870492356353072675245212595100042867248210284796010543124920261613882792996353199514962917341634853310433983709894005921204599752251627332380912716105082737941250849865699591579094917483740593505093456646132126862034867395493204168814914341746079284206010022821513129607480500782368838610056461059430435069447026247894741700363859692266429723411399882772831032771360471874541349640247780753163701796623759091073832951426936139041174328800581543553299266564378701851672704692589020603628725268508294236405675651003364124117065863473792667182642961955575803705577320771035507948282627146675128233589121122509425970584873987835661865849777825376870902499485499992010922513666556455433901807884724111701234357972614423340054421178463610127171543502190168479433019838832039404426408974972304635288681130057621259009064640511748048976235727633553114999817955564321435192940618591374108148454495256294497893822270712727188939302871897906505519411347002083091419850060435819982264596513746912380694489766155606670789096241583952048590184767940067031369337805765679592085014406138928678523367451234241580176706321396120317139527730010750760433576132685476415118031982919200578250939408051544549199306244714443843939083956418054354906423998288533757174311555699142335736222551544146379100954630985004171504176128746530644496809316277108325812195278511328315927883135853569604521295103787871213038904211591838809081988214191161546207696381261110392735814907265213070937471632745707963779895696161491114600462122256052546686244869755789864150683939198257316073760589935390335544987749863638999028465906945859338620638282143171629012973984736688922164251362585167091941337565327008741004743236332885741889787564442191873795632871637748268794524259273107601098796581689973476875381934234790400005458996608902839279113794505781197762720970794345344102262878007587130053111735756538126796378364226159336008691673589310076203110833292234291034463560852056720146194436614298468524023348481536278328420912488384712113840399216067175408148335367104128942111965737362143188796287927744947061669365332702873372634734247988161367726715572612932712416888977101705146919808959862901345582237737324153911354504920103320798508738110731066651711238826111000583292880561192157387597104704959142586541874856186401897875211872296893972514169510529158743779060531535988991760399297695491765124628277854150687350678379410924528573389071715505928832843620234318406304385703544700713604373001684025392064054280625673357673085665442889044806436775094842701926966108137067476849551526717638349768210712691055250598233259539063335472587042599677810182325218675092371191019922163723874771977043392341084994528251751539323458875197368073632741749706605450711018648404035251018502641349064031452142112456414386177873364964581696404398254920817291847108418929644753674801103595580284336973047458987645156958666236842992386652704044674860669690644425872094591226397500724234283175391395569143876584157585065537946410980042060705640609954457329632027956861730541153406084081609219059265017785635716661283134057138783302714273283378855301492241407663106014345936573516064902882183640558978678360550546737828820367204655629468638092856774157745741393646835097885070867598656999431692701668092721189254280652208263587916435368676716563682584242783536473678449276711804173576140940599269095359253237160398018814011615026681029900219477075864983656717180846534175263481882319327479594790490461333814655777351612551113248335068093796369736661719939479470748662418916842989953587906898979106167004304992763301441921508827188458572147035491218352200942966224540634787115486976165949693277464618475564453393381777821407777004398586470549457653708099546848349697996866124375478871130871049129571407151764248845531763507782226850676765638358483160111651279290849383058753022574858397213138044048093806219003268191714255991288449640022962366319616945861262021385470379764285195584893826868177996855720283166053162442006049157948228126615968635517349939140942042193652095283469045689091690900739291627545748668672002703373890422545096274133895437754521472918376927169060777893611777531588069189093011927373911883551363484952318937882647700324394841668910283985653139811728453193363107162954023882212681472806393090609328995100604311384894835292982130202973220690659938629971676999390380693927419052966047470403443927705980265377304495538716578847588756575005509810009105403082445130342806572245926318731298330304465783793783634679304982495250978683478933615203096433891405751416726902882081046202209326544803685175656565963070625048618398755756583696716444070141930907540530372304771094155998350562462781360197754934938268060051565977783816275332858709974615688325061727434837254099726205667065375148337539774224206712140557290641537310215716184488582182093043295156237148182133912226070262455249735455390843922090157000716081992887785183728417969499485698528316554302236855897444238899553579847843717936841139058141754935109080173026503452010347901562103306213978098236678620828584852979810801402154574500712847811927253153855003670506209224065996006654384035698292036062473081243592900146689129036601716599111650453934871842017496329279398731633143034861436304809457413764616863556722805127480398106403132273431308072245859223577951028507410645157099944187444139071720165717328165712536334772302133501571139385786051274068118066537918485183301228916153436878044052974494310548509902897851864386521580275671004792440433652444402492408946521882383662182407684522684520837522552282169016781635987083690377124432839493680591125131275412849684045041108305126928269799526852101161822740639832895613161955165962531843299136001110544020502321635894572366160633838197749125960144139974615967446250496149996552548928154236731104842604197700446714905085618764834951552677355822399618379266082825608053716478457112016568392376293464140558599583994489452376847657416114575009857302783592653733698288442588901131766489939501377131362824700410880147349892123798061320566101711320283605896588196798243906386681230070986796098205791056046728772850755385512159379110737496649193757095608698687576984870319810293154569677696687096534067874495207464370678523424556432054928180333229017356584937261342488034624444123616225254136389934363024459257211453491889690184385909718011880840880395001288842144190514804009818708565280245498438213264823798549908510477062221799233550260689923104866684291910341877610240228965381497884276903545793979436746556624339372395230911414457645530118166868632955740130321287508696851769791984267375333808344075638924468477422385806578255777994460676348957212122445089148610427634759578890581619222098951037205692817795288363901986261357592569876241768034119497762155520623198542259938484874338258677243141747065301270565825282637953265575499469456805903694778554501443903703081416163257033916782860799970335951147306740574564654782618000469466018799082648342073507022343504200031461132944929501719207577708024485686261334506963350838848251398899893691583137402178550385237098018265702641731239008622393414145159932923166645223718105541068596107185035749791426392705764926997584550958031755320668914151391381054629082882517159439467484932029511948524939987902274664585220809580940287381650476545649681639509020593628380819385577736006304030556319402990329534269191242712839289930246940026408208969469192396366954479859280530456638535059163564216886714864043386957601917543932014643239373450709806809719425618592920762014394210995023479767640209384483589481094138486176408853715327062250042739237752945456055728849992258866100618851671740408332171280895501914709812367359325033853905778460750909189194115412380702536962590430426250622239978953600285905598594915154819974611116366162684424568807648393832014264468360739436706329402770897719840307636493724046453038424924138389451758091713961107219814835416730128040062454849851193819400513272210300603129323879398098508025858197242280273111911952281946540138813022006899342939327602645616686901915656633946333297938112738575542039699937691271912468995981733438514446596245982836852150297763053538723743055129374738064077365807258609336636655454226735835779354677014314930288334258261314599401488844924508641247767698660379652167617193719382273930601176419470100820899688881940799744344419663205718922906570346700861814034363057015587603331519772344757382046306168335141352610274593298334509617378281123079465164460332658739245688013803702419375669692801753172109581939108082096783758922747317122329798360274202356008587447384976743216379405860310597572893513417608210494275759598615049729158848024922851772441268630158165583119365432668052101240658171165152899916382814392131718528667217948023177431303585796971455476410166854467389273781929239017965246700946866793249047773611837270064949228316128987261517810878044422604461483046383509627495374998706436695760387664796400169426714770783995535287064976042073851719209734569986868690717742140001113098632976481024323104319441260286070235655616332213649042037938792163189190316989247895316644894303253686938300639082886101403586136250130031129751899323099709798612057049090479475158873236957934562350736156658475692433310598638758484174516965045818867885528043659737208930395452018640382057874827933786436104232153150248164846668925349651527184366068045272385588054386299000880498710785672082700397399157007648150176145717222358601948213401888042126662323533128277417833945381970653567356109468592784032218531255206788487821634230423568316735659242362087298854912140126235973969888292179221454599371572411602070860777736217501631761700074890666089125899770802036866398700815407465584615639657269590964965051862297429996383080887902655359456964722021764000523383532772369939873932207240018550981279280866408805634076860856256627020808147291653475788339639061478734422808118622070826391865307490968389086855104136532847312531349922762020265741098117434693099781430652036925819629325807229700556528537955756289555658332142911428563168752541213554707363973114698171465388412517602983911418580020269917787403814576312113742434861542124835067360096798642507611982950104285036393707527382879831377539223615345956806116951730150162587527743647613549515936481522997238723092909238884905472299917826515426876070180482353533015286024257811794687824461280437870991601954114962280480590789753300906314368604422925952119154903233300852439995955819631757756244028945664051397083577858493893292796442748910984746611620282305318140707175135881614970950753754405905067201173786266939505739794864257252828858503894221982510729199257547057982668135932645279159764978853733730233861003491261864311273198647952335756808276774078591874605550816775186151279803542245235040881105621857083809808394581096170678998147221237799123733743413548856103641390071295641447869181176447024928219524846142827782285469623222359217591603857290573489444419752265832011515251752198269136988630251626479724680093970958975993834702237025951465142458497783223285448228960342806505284623215692369717294406187083042588448029002538542976780143166754440305943683463329299630455324438936586808718221664487849909438891359690092638672122887477101078499043600856540077257476697852540629875077639525945115593166119718806805733358939058341922214121233867238842285201211470643471764140015635463837116288876834407039888407834329824586545407068445420661909440464408753269906124630372428644273256424823034469400832968278875971090712193020416331739325932014590318803497038816593355575659855168433097475958627418678620219188300281258233858930262416912111666900848691432034625868551389224247010199215067133767704876430696209423661469599554128593119540455984273704149371443123757905682572571773385461049008067178369361013996628045874923221042580997334940300542150306649812539273156628539330645043972054227263659996830579574690473557731709295649903133042411520953421657802680665051466529007039841128126375075046348026142689507878232671445142668604936238049477666011824263061364004765045483172929792289760399317776281792176453491791823597635077450770965908141230734816457283581056001049243246100179499197078468639904879904796255150029397586413760428898091422388462096767796501918384740215505595703892726550275255412142857215804572926969833906807697874959943460380827849338185624282573568608350731771508017685362411954502564969395299756732277355477471855211985617206555705310928484835123990700416404270879435088947690770939008957521938164830756699618225688369068605568028581625981947110513336452785097185049916737505906473310254952010150153512504702746068269465985073822704394478716338080067836103441528352664487896362247778648993537788884643851944111093583166761027160559855919894844849604155549580314755863329222957047143625131216207509882743397499353216516909649890155613167815806173356147095770965658404214296145249034810535122418976351537888478198066896867869409721191029879842628339652570456553387167479717855497983973580010835755132434854990557900124063925040882928792216657457522895003607427706377805334485360366344039188741730477242867409530249186116457950110428304024732563336617226513818404706030812115913202053179230592478515105664371759676625526524507909166333249247762909982225308102091329825557141955224698860480249595573721809666339033075800757642501489933251111490809413366469222288035349859700739616415838456659879883282261199650295139931500879655670967771637158123028699531908363150434163178283260423313579367506039131915468563759702275739886894903286888260053578322651800217450917423341884627042457168832113818587984318512607136794231200650770547374105240759343117842443550351882695125203040398598071950741524792123224193917658564588500920364949954794062818487352610152913839384784019930989801453019965292221152174224127398302009025313295060569610748839876811292649352384783043378091309938774533915446106128771892202706000907645343407815175580641190161734500609420120296397245910837866436967059985916901174463106730738229403505848071705807156860520814619665171862703028864195377650020738930937147349929262136504921844654853262348270323395609403645739532649953561059445238906805741437995733001031512852235556598842225306713219732116442059957294890339034713887997034663077217617655947628989507840674151966855500965841541970716893275059148697169655035680760462545609837061890711517165767047132334070589805590596076285030680743229847375204423349027615737684574649154466446867700532358373668058601905675993552538014732561594797160600089256292394473332924705721452940051650019074455209884000558809649792584114948931753374500005153412860631723655636128577213048205697291646359972948674382524620779361920423099718746805511437485786654571213764767577881113337739570445763713661473524926066478149058892566562596770977583523923184991947084822485798772131332506438998285701345438349328708888988314906272569584763278061783735816331834942058867025519154000326567352125403776033833745603438788672589304345831441972599187151522594023068980904472557122102465145850635138347272126897098852517830515693744337888748074175514417290109539261653179834211293215214940242521981431738000874717318450781054776718702637786614297246610977855967986379792257538675921005754441694171034799412158842215528450415868261513435019466769399638094363568601091740473588620145063611157264860970598568624523189774675124288626922068445354985980186388547524527397015741808792901173173336800004079109228891068484361870192475464486171761683710416146666115592630499180824770459798368264534297050842008686002180240241450577309788343118672886174820906890296232237232295279882238388350859165834941569156083226008868420797781783052846267888628298954525369394576481664243276471761955670902570040822355303807750623307753599199574975023717547949248270195413624770844153612895940094915181834599661271023242712698719605897143442184829106385867445693198739720286230115698305863800012162905911064704529901732638651612710965230324821287636796947026562744002393982274915508808491427081968349556730841410981069728971535099349267465216807057290251231787542766050703424909914421999279745879122208833530472869838668762017528263660856368871141170694747872416079497668921769571593865590260755887635550130900046437492467394424694770534023240346659546190944871058463512802761038684975611787968400598353996743979512377009524652816487985360782126091350054832981467122993454599860095076117133057829179161250242757355626894150987379181924013478910805303565075225995597478260252310981595276063292722450566176043395419923092612878070284355968073522857847722057069087281113034757962994216068527324539478474538498053339881364971553445562440441472265743755329044642721327806301127193123732297767693605514127186460964063265087789295306077179006070012376906124723748058972896492422760997158068298724992277273386488384104497675739979108274338650940653309813211735033523578280558132023026379049952063056848351788631770059780460144495322058411779320902826885189978631667706296198976427000571206566332264617439433215797866301137432604556147427148568417515946350329151078729530978936640236194164766682213848903060290391759756624619658855742465035767890561669336752716623602187711253557093519536018815265340445956485274585016705386003017375655447867006055462005671428993078699910330366688530089182373677719844473759707082729850860162808260474510116009287304693777315612981324016768921676222906450864018392574530571137319054923002044502707136272030533659031680859900286933055419583386758588931975210174020116322699437474584950478248844705203235888985921073489087625751407631855567581575098404599354964739713739570421422227995079937067760062419122532389417899770314105207078275262538830708147460745939003573423189962879392541121410357542316997559826705584127078465022317121267972163659261544568693359083101487571552348643620102928244864885422453334762991200075537011687165199773581660199131354656414877638219225317959597262678968814675970753754377491156083540104227898293781645907005995569423468036813806288414102756366726257416758269922373454462214590433419891528955403608735246860382913275309425821502598667815166810861595665856374316128214727436017470805204905839606081164841233466944909169521123270029277325619530751901751285974996762195391941457571291030584308365532704662000513931093167486581288322922759315130873734936135224104965355257223233596231492512619510044547221840063640760006923590685053281034634357928865019997418856180041320412005954716716950245112074302440762901668079335929384087613172583922658828369540808599740119027410431839460149824876280851970276234727448111928963301522959420324030813607584654672036752567022817626480482722005833173856255632901333512203419485312261924658566307565698740492428715293243667009210501120098636944045560581338586205016847833969677586099572836581494243592130692811592565995945111901827210511140070851817925673115075250442141474035141519791120770961362144516090609173451832885160652403701556149429379445045284242248352468757893959170430187022519100165358134356391378828406006477168774456710611570995192769617928497086421727398235721203399407267191696193140834276159206180105593837270426906465991009146557950426965984586137544354612420717920177189171020768370053833022996520658537119007321836593705384436889401769746487195437310220413830473079406392057647994736156573293330490683128694269569624798797960716779123315722621900521018523774670671460044576483304071334406492515340844636745908787842415874281761208316289313201957157171011078990976904829630490685117378770997273986466273461231292685314572949456224398513477744481574099064701710895829755644595056422933155397161511577273742218683005223391953830161540026676341845737055980809977098737939980037280641412511866029981407124120011043999407220487391821380028192638473384301020903224666930773823455276364762691635234292128532470703376475879000450200408538651313212237531089511867627810448433257655125576024265135547806732683009015234967423763159769547975640647430528226382445468499471519527209789922341282400989278171707421505452314873818586955095861620076251311174222357511539467929633755809946062593029338781988886881583182727414922256483445409031159151250756236489047653771919223860894754591590849982793689578682986611512875196564781763366073668197061359003908845199838865686762837188288348400062676436577457547529886949017075951482553566332147541881947834894620400455937119458753838961192869559546475687074738451091967708252470277877713234188216568812629611318119682529102788425776573178468260383210505892695811303153672633993625486918195018983463390757972662913091834536894818766908073600258316840810146892041790209150927325165517205236830545655395272435093645540738294469128833198317894033575475852005966233769580959758706079063566184731954495613677846801740668621119363309858713493164498121988573094025907443157119343229306659458535968591593835083099672534551443946492306870260608059590403568811244314578756635666302355125067524397169352236617114495591343514234121226203474346373244093355491846371684616866122380394084815614591025027783606782603112951036660637542902105004594154553044459183165321712868012494151949296671955106636160131946916002436369559641487730516567227255519825683713657796557352993799647980021599576083979830094534784757792153490095397109250225382319600792405496605595917462729516138682615151489524448052336358482457322687209188936360928149456885416948272742038925271409681147054965310472966722331941698984873868999323889047170548861543573782939789378467760106304786620054986902206458531184639860772075215184388334843666147104346212083296198614333809210723419860410084407564473217981829622996826871051842366835627536945721860539455264435208466045097783969292861734341643286895278384927259804575078248096287293146955290919381214675275271971773689471358898498648021362034439887700493926902466498844372303086825302350800739268921274007209860097076757915219059867959662750876145528958030319574476178695835490797238647539504321051724204995993322115683711963051648983814561988822752756363547178379084654982775020011352808187104376144508256845233690960858703955853800355034199174411008467802534077944937816171572163033564892895701875437957373844177272245050982373455947568782179221781574709102736760358344654331530868937911594133776360857562460531436757142658006028239502210806431439955296153310302625085400999540084276249312261484553749257331563317974980000962333857135370637449611220523640781503863411968203443032865487395976356852493442432134541926314189894593081796973349883608998538039632857576966285411339856351814079291066720976095073870014217122830526789387867479646579192954162038324629565269166673754958581702463678926806033401609469249293087378170451866222492531137700385293554100098241792186993570031452297943582536357752083688933024466159843867124842480312152278519222093245623591803589026170370268663598199839238700276769430665377540840847827603422973093753260339279951454392332096294606113824414549646944529742416193176320360014973450144510428848356098229200643865136115656837464684492642242369211762199445367690530731400727086709304404572990206144526816352661407636513183945654565017219164987373107200332765224001699213492624272235562269276435070595493353474362367488131454371674313786929036664805364441604833873903775390586229490413263817001010828649232071195432035760465326896060012204788772291031716870459852771057022704945533232288435863328846130982625657693656224658162306606671682549111326468764909571966433986918600758759808822926134735551228555453640163992019488086359130501486922173989480520872667068840360629194407951184488515159963995242647662704208641025684258515970928501852873005655067543702310239795345479981029222401928915879652018140283142915773271500536138716974741993659787365629393590488623632860619100680873655890005395222682073071307729473374389795560932651352221267232224311887179765336334773368669660975342127201274940204749861581574295806732476758824013775084801203521776887424088112023183004069819906053222254073313504045696375442205121188868690696957381928431362191875923447559626475430257965042921080832414858291875396069937172716004158416085818061591363199556340979400771585519398241790297576783287550843880217685205035522372632724075941107351006853754461118695226212034961917180033668604954792200736856077813232666325042503473252339593583973190400641586046859469010037542510655856252572839913094148174771205482150225637234793410383819550022579588499811208698311041161315300157711544872408860217931223996789560713050705907674535246895395119675354226909365980329208353664818392638892543859585041925299530255715565294565161506108058986694373417872895599970414139936259038007857510658516998528469979165354775968113180436279058029404812999776264502888474132462366522740797787127816543815841568687549382188278551170116943530159056011658540479612221579131437487687724835966775622278404546559646788103582286026169775176346492892324295298162386404414938546054619011916555958305535344403355756864789420960780170321086389985244247536431687163970492074030095590235380838529879866486119871427819082592281106450477717866514660332709704781688029585076210112015097932219182880788401662133892970072986212199843536543764668206666934177333732023927247713311371642329149177571605957745627098884535657031701537566649092980962717090705850360329584734098164725452454519588399469551267786562941661230944825292481036422147743846791516318944988332064625605340767311820893770248635995373472522308671583527389682361642001097517896378672067314243361075209716070989895983123874745259748202760493951279514736183281195174286342141263784549744388910595432297383549755273765200634575075246399994643463900747374449345984256479017721079844054538199703855183953721164377565199563870479859486949734057631847661902065364726444107529414052910594777130465372105135358724418670369715495736386968173856571152889455742105297749790465280685783644616842430480493843618747963615227588870918473345824111018361943181507923856970691216152304645135596016466596633694591832966984708780629138900970546432105956208085263579282830984426372052349998298217507234856712327045492781047984023121195162390608329306229085363248851023095604931182226427338069527305686600228871531971804016638224341549305080236030166842612196392578986721570655664970242206445882611888762098818826780468076058541562194033509534086851942291293847284442165096788274135361757462325944431875090389331148226893549858713670922446324869463972840571757402322212081150405733816779149992398856038692903903575511299752008820531184927259856587665616053741519251823587128104851194837950758689406910060412517992321411429725951727662584231005130864317527435379004883334497882713953537747163923885921658954076439262876630761040194449539921505856789297486521485421901050107907411009148934830196257453901285698192897136038775272762723463937357417132026961694035523888541587276371728235613905248572156867325155387404298929150258858981988524598027016023032716492690366520954629310053722294424825944732605182118416244559999084987706635658159961641247862108591712869039900271550258454972081546827647436593184577124821965571777807640436705799991700807319234336294921996101664807624060543254351936142122710493444063557262438965364029929111266679473523185246738903489050865468154707905556077730006488788150047188214511278657569825375455307687995459025753878546881405157662573470500281127849030602037430603443181308506262867539062771173963215713789336920210826702011460458805841127837993558176054743590986101894883756634521628664271067068907346744812863051595482134466330268207917660887485139127779510843150537526791201194950851687315803626196885947475082672202010293981548497280545902920759735842280766771808939912739664814035613137815878326009650682791861204682812783475494719597045508012056231900914477084615765348403081683891172037655001708309280547055895596997348089298596190934583193667331139370371351838928566286431214597275493256206888793199290580855228017544519280545640659749522230161228821908367715968615300187839524883973170217840792891290624366777022768926822377910253008211314278689600060632140456060147455738495877171641336708465819724861876334383587758848633801171799923846008971122606484955038985481354594585592150872996122191214540617614938601744006452856161563760519311730188498835546338743471350759747397690961111769766201879535698905722892575163706314953477059258402226742258969235987781629231464857272211968918725418695140779409736466106193122223260125676660156206571914145268139419524757588728818767254347635488124622077931700646222569001605305402948346785916367640522444034125011754290692302398902662423304808134446526414575820145719316393076066310403386069748083619851253544049894144550252452627191483382583718924244111102682548354879854251587376929081959011213000639349924121784212714509117820635503359055721210441069801096709893928279680358742018105478351210924280001492278914823527617240491334037133312313703884223974380011990693259403936454020106366062834458209126038373544595734267147681851064048289143891463424656720727235681857238561735418200365990357416223247263525600813833708798714331404853104149649787392026676822066804954658014425472609436762178104728688278695881812245402304456194913645446272253979521193350011580681655959303638701864868618211806403461454891158147528825044974916577798751100978760226987728515113587182845281812563428752245313285686086067435906349694223059388997032147388730973694987728725525123709266214226356603546186289546481534425807534676066936224873218578614443322089886484811081343023689589908890790701665659664230150844509207906521251475890545049344441452794192503497849347205764934233912958043435114605325792830287023145521582229236379522577132005809605304507919571150769429846987651278168758923887985059730366849564846797169110631025145479668955175658234484600884115409822965902373812307689976150569551881018332293597076202573473560218425300049275965507924484968741070758150577134913133644912699482937220209767023133837361683260975843428682559050912113456856166717924868039224007227275279154649772776468500931829694947392553935677909755309451299853860538337380061182910054654537471341146576371832656694204727821484046120787000254981317737933003093073980198911805301181418223796061958807223101550044071912448327009388682356392543436450025088883768459846785621795711817709211754648201655341502427635562384408617078651608908630101356299728195556536399446872776301501967580828190152812052354898868971198413250261212831867050357201859264891991022757054543292131149624193334130622691846254105458195612243642442458493821316754288179905061148868627484278538741923124347179593200675861090055302442283636904493056105071992231200722670990365108049998556832053464173603688891055272633070246073960455011587195715855820150725924653673215494616311338099912019636718138282039846637234738714833828602301081733321824849921428095020704560194224892074432289210522337642322443714225391355777242114050673324589943911107994095910259826276612438528240831724954255613210398225257299823628190610510058487966892292079340506546300088668004706124817514458866916661693280028830312395672066715181467944806423775425268509094487206886544795605228211870852594038007092726350478071181705536919231467236631668703329381402054007489125411973493084871589264371638647730030892357212708984486111136650327446914367404089757129463220081018892240538648936134240422926882230649346477913810529145639408712784396448149956891784236773796640161453980545896684600674058171119741671171334634522042558254929300458257129326610003525807298232097332149965291830642658653656332274738090664308691210755151144097086503486890466846909839769190686067638771219762883038765354703312295970982851280083106208895749512194798371900163690510258496470017802951047459036193978313394566245599849572183231948239381141275538049372676841871125656789149011434984598814650998430681332663697595513400523744146550645153723321773354733845801454650430591627792016854199182901894027478268753571376065025999681702082218023852886982683223968923201566954078775861389842801846929753500611630330332019321396492106265991512552301553109479959300446682120259471998549820912943949217435730993399886378163668326172152290020869804601076434746458551059927699415631479918941122402329705474232880480739274055602582955951251110432809907384008987066024054312509857370003892250966574924469703186925622019283256104037133621018624183513147437158127601671605061128990193190512326440270367830836911052380388117038210526965168913119795159884945589244235885222957132019032088293871286945245948110252173929920384832224114872130764221403206636302811122884621908331706798912949654424966678445229974745525796966304550680580466021360946834824017676404924202522655544051940953738803095782292964963960184560531255871877908787011738854497152384215366700453733297085156543126845250360422619939577863090246923661208082557070499109046831665452468744080349613226749075943432385791893781764477020607707160258680920086372539295400934661791594052438156249430903704856138780244847231364478641556787827929639403581344593988988991026339359241434305989239456081780630514696432908918920060860524598835621593140483916553624567816693830372593191265762342670114325315704260368188521674457848638202126106141822392293041069882934804773883158168030845388021684865398660266855642976514738484145173542360629066219523013050780434331949440505983195339511146035720545382505181298619784346565556693841301095016936179883501397999826440966328144730300752296269993045922386288927871648263022746698337096941770841795530792195064656883531615938844494704861249072218641708108635212803155027262318185636722314737178082832683925882983886291379045278446337239562428666474373234808915791061778030279951735379729317476982380659095936023414383205641995273858738589261736861750994558762666805332520772383827890642990208231540519662666394184126631384827559793907021956853995608666877373849195138974022604741461888004040684339405528874492200797110990342925914938973685049049326561231692523435216447850474667427869925236856302970944010424028848860428597169017085900138496353441456269236789263711236557904171462496206049946934656802105765986422998811299726541694428255264506254161616864981361721036106348960446232370952806003373780257510400157229114433719807459105919473924328376025462936882600170251746863615333213492592565601824847939396345436273751613712912478666610014488712196433174667954279891651371324421335896975925671308523343341374387372883040516585585806059717652186415565972467818907983860710371042605970912801937614600388901699683213862887445518183645455986183912995393632332614550758437375915615027226726472840140828886902321934830366781872642543417773131279351213048694216272977741597566027294057356099294995736787121798961971959985397863715038030468257386037696728783953069405058877596432383706817925891339772915326078151814230609368220146602327743802407920886919938645962130451849650474985737863453256212038663862459973144547287105639709736146340676916073464959846745845453296436311984763170708101592657484149696304733133603291664835526861604491469369651435837800154397738817369028858418180466564168920538374751700078500309981017459547459836884885898684466038161428005142314571328547105022170702428622480872911146516255225586489266267629234173697591469458499790596944198429747364479121895543952866025588703263138839559013226841550101460129570008831255739170060086140919347840788124207234513588884756826493509216069861279795315142190659146231966299746423115419514543928707777218276084403166879966080898435032493469889398440650864748917784674403294988995685124320380978095720916449871984078161014745473957048679709819835389381548816131866252622080362441775756812848870342493602314648989990682570241566411385798752514527709291003969376851655427693193538006679520722374877548457391570403764779232157436393253110153370048334953033223005023027048049190076652345525958782002111551560655248272514887777294913975903876485904496163542170075307331730341263005887947244750849118957581328678443167448928083032234503170080966322916399103418750456319067191015569171463066375337215020134665826755201604223014952211618510533231675996789321182283065834912630934975324982719861363171562732043392680030125567921993669451794491755794686637023554525607552982933221906707231377156236530430770222093611057909802076073163680082099108522321716129766897517649812139725025738464915902561594884357359844373333616711066103047399145171019348533998201466351397927116554339936584653611073943231424947525828862336398694414602351652944361205124848638700943368171429470516063771887719442262007203985698173501724651917133125569893155874535147644477420139037619241331443465880871360826835550166439219001811725162166004593620885148383437393130964936551146067971197468443715832598545008134799090278222664281979265206880366935385224939805404110167651167599990094332792064334226703358402019050332166526884834721245288996115884933633163739965106044120263365035543653155901504369516030026406937614964039048133978373168890951458992961511864268704183896620607450722220811463920032370720234326238914606668884419011240122932868168843012724394865974562732169024252967664575864498679933315948013882708888442187439602643184179901108776713953568316720205069123140271432825549051741596773822625361423102487600145999214981969472371733697372682945640170267740916192579514662785646227067924036555496812732606542136473185697165249344041597948854278187242816694275480644573556964611769127258623401059340420979341175525997804411149379648594024601851213812060016013673871613148423502034022421487345987369719661201014979063807664132307276766466310766551739289940428495640293814527630251339183551690744897764069864763000511677411371707304901005471317210141487497714002054077290130748251175663455459312266627698703406528254937588901409336473474700115892375277492915918084205389539281140757630779770948481303912938637076608068984543750098835360114591432935287943192238399957891176633336030011864778758995850661611255054798451983356472983525134300153924274832143262597524131667439685099632644345118508952764851077092235726207083442238540773464258767679575317669085545073059799154985238796676507427028223465296540910603496922472934455986677870010301162409096393105244572955802281309659789129990319915255802201155176973041858210093808599168894311345081983419016787171546024088497401541336739914064001451228913099938421644050367687478874630430415683620332227282120557940582932593799834031699963280529244619640885753511501977463945863633489119045919826646321632101864726079554594128751857716697888107677895786102630869371038721287433952384933925731774159834671910286785096251103949421883652137483495409745264424491790575510411066767376356239527158540160283808216026915232403555689399331639861398066557131342767474298910357068327816840468051287811482956351846127771413267049239147222297317907638463120643394243718110450831180501024894489445163727211589030722299905533454415821064679319861991798691955676590613373475313625440037347057036642630865547354362429606771606000379697845620698842391650739587880751540131631393709022738211646931231652348012637366286353188852856544025693077142002802765411586757310426947619412568374953474539842572041922701360721553204210484253703311880476918586206357283293711564281290771764907656077199762564649717076542205067469207065027577828353489479532642232620853641027496725118245181719105423988960293427948341701825073257671624253837221146559858465286909233293238853585175970756862496465678739164700946432429125079116093474012487743607638012974749083477543751900837483555981866085721820834517953709356059830798204073090875553808973439883727725758737232253210489918701328447398454669067229633299736008314452691554929196085338327481013283633194034112751480303746343262437078984576541165842130891933975444308738973003004221973034652149006727180793549995166415707370380058267277175522238597016922268658300800000946631560055549830331045344774291583732564176509697923767162073427174299332763662789647545066563522156471320430395997491332097479751628014566998676527134301010065681854664032353361551922736969852632360469467726652956914532551817122998020759519613661464017923435437611795796677830596057493525174190888539383459642419401303092259109499450895830127804086123195310395649023888743482027715754707546607109545531535166545081269798563157659263281446013327263265339761239184439063395291224366048998581671687877703329878784960279422383169330621261454968394497600104084749136624131508105611358214584273081864439305259206243787641595083607907266880231822386720549824663516750847365651564146429385980916548633233037627053439554212757640838997111597959242487177604068275175139503416275606609636094522557919670834839028038727849132662397750810767472417024529289892817702712985737707231948863363705066702910136293093678922976000880306249183556766895985559255179461203424660751022012834275766439162927286113508747408349155654135317860593080926583541274259609974249415450901795596386512320880746031025159288011753794840933712178978600869214139070400127423935846738598878531236822037857948703763092892510832720038989689604945497742390575313525624911651375076965254479477277617547460692672627100881851078583695874666281811277003485542308513391007978589143791939955183936261307744851716862389149776571045917923929015583467167321015139923220098161875199117624751303101655296557705673489033161157348052617876007994330963120966599430945562988450287389819526637904854238919490250556038632091277934401647843824751095367820483728880357171677066567694827853532791474880741533994108198102305314435468839433466485291856088847689237646537677375701980447434152701497397373796872455417032516872657884214866383092443196718954167759850951810693616158361402228811459469746368368980564575325189558222162831949551398076268713165302320597855356271584713679776339967997525807808252153538363963689775382908023239546219388619753954354315956422777954219293774418352380716369033378938085548034967129393679761022165672306978283773243856482829835170663703016936640021743080470164197891428629741520376331711509123789386466833612444893319200346806323784943140166805252593547145226703993617535194934342768896654439418572285489014164651648892739646409947820576876520807066350567208636560347256657805098018355149975615089218979192947309387990145265397877632019197494665289853682977854366611779009102577055055937266205762654702697426939655824015117609369440679689363536079894451877841384692298182874324876197061511789271295215811734166913090290828633918700122870021432498138411999611694319147335635219718272366671917222205234800869127653392039143851506746502927670387969698684261346746927327993219717083569147103283249341555096049566931593992561129902984668311139211815897095084807495757825793166644633369247432581536387890492008522548203393804585560933306933140641977026255003049241843443374099866254402055821281729071103629707860947530541082438800351850804307367417963949097638585174478682497942576764711369576691102979865161039766654393755665826298617068468044158421658504950852822140666008644562938999707982724994134462421010432226306793533599675706225928944331072478537535869040689105474689698707960507713305543584568446580273771345163104432817858288498278627492896374402148924551241018921646908637334002659491451611047937114262702069587847682308658568095336528307131863945512726829174092347628909451673622853382112659022097089757705413183266018898642290530573640295667215622739961990549302576530009160210474083975504804106479538363384892716316937531134120458390038471369536817765552288095295164477422254150982458239828643507644164642177401660780613981101523216060545175717440777583573124478179883373789296650827689958119351470052466999808738095623593713957386595433929498919656641241056526923679089335810796802432487084945721139669325472928773688334243962938574644264171545348490890294993617201645112002978328586125031093436545171720794249012034123593161096126250577023926190287829183465814985696215371486247951760360821347417695799005037981028891920643786359127292131438030847360738721014332350548427482592056804068955411847189038290058517367238847501039006959271714483833198433215700506462305436120004256632746905870709184813211332379809893810206425489354334629246858722096534522206743241810986959976878426284542433079469797878530693276528550627894382762699064636453703597992225074972202715550359951644207322919402486715858384142569610967755612218158297427857894326710027855182679281332735228095678458654345801301986670361922290474043735851877382631199617322338580096949240615196800859431415962996155671041616899271032952812824104419341276951811825065710456961713377608574365740695810319638729477094555660357410973388369425989938256707891510311984280652322783757304485225735924359848264173259843336239258181184428401215410112783338393634398313425241030614976479371977090120423507394888022746068639340177457884696238635281401468440759031580327114742083365203303980238309930616746183330897520916832733636708851408791247834226759894302514703506567318451601388456572744063172748105712661598977686877460891596152339172228101363913263350037143917157311964340916617338588571494726636572899886589606732688804836136699670279441197192386003846714904087630350012781401243280100725066865044383776178818686785251295990724660840397846337016069263399950127031684970691339583147011882601915907711637606495787069012219892169713582270840582381721495293745027143429355561930421936286966339469723010748233280963533668234135910167510588981323592032947682458985742283265904196683004610135762436840363071560992818860454283047822325701872454018023112936725589640381610146707247792218242548705459463305792935337362712404617043925090068253207196264601778056911299212219696474812909444328879365185022798319725038785169718913082032334202304000871891687932571209600325443041324775140419122863180554443832784686177531342088135520475720219929800337417333577018223826696787339996951517740562371888138881429672461963007313488866438152464306965841275767390733560117508144048484651066916416059050556000056314589827122499788386156276219612479959702457039607411217094302217979174007370538978998554976341319273415175290367438491923527549230969568176918635440497234828702511957921426160507888117569979671957014225485429980103524859721162470240778218242836016390233137712657227890003313799334315073598995371619192496284596049883709694489195141603805010696468312751860705415501714319908997811200871260620231033365752353101470215780663747275953049658824955012139262208559052087416797640982710285910787358724539913896353257421381273554556275589267073403768172689940749854662250946922927774575557054152512292333478144677547918305227323475138719595773969798133933096204470507241540695127609191558610879525098932373749937311206655016044224820779327786254076745923097572954141595433562078920789285701406584073179464724874121893621158650797393742909073229416141034605109631247690529951612359172764082744619627389564722507291664026458268171049158552098732760047320018097539862701233507289999184963275696785575118887405216400633236094024491449151256284233520055480850707471566656693704287004091945164842634417388398353864404870084168991814644523124490136644097901871899915067648587431568231796693151936694007174456493577344912756458378697752175094841882839316773929352533728725852162794637906853911769788231027356747419368675857611801147658287424696339256816550824539622000570630798359763496211251480071068852528736124333934393969260896831750927710843652363754018577640427077077967867179906931454942498361902954826536058228834175508334227666344344294701642538923541866145330455269132662334295089930073498503710837721954383194308247903925868183704660730551097506207922984029362167076281378711747084662506538741086245905522945376495663679669328174492257340681461192018721828954508793222919706745965825496217144576757999250594809952298317993534556924231061990690767599817415411811317252768639187883938309817323255067818513866151303098726026789424658270329110038611024708527892523621439824536551843735968730889612987036899166963075258657198036112475110159131344165219421540791823117181176793371921082269743284472424803661040500443902852615567183157177278449624872364678845791950030328678290996389903580216642641534375105968817789701977553982872851583296857715625793764221238953948400256447976848818275224267378747211589328276977790701886374196946555054319463381335606526465615084230660959116305103074463749259667574731733063670920894290681338880661080391885016565928785802216233689933586985585915251983028653296439073853896618769468571991230877125791503263116624332842362255295418621777695497291595490708802168113626359754513239973358433557743807358460144623992834845279545106812072676706587072112024361780265094730751059341125289065839108485719862137724526782161488594907063789414178472191744604984007843078635844472103012878875420200645403742855417251814315979878985641603440128079338879203271228485187983890826191824887324351494492524125848643865673258869646717011094269065385619115641027901749383875832012597253318903781512766895712456475677321650235295871921202927884759484267394634029824197006448083711779049626502644336916560322532943664093607561553595255223902425755701771754176420320843695224642795968980102249490368459275198748800448717583462493814573940111442132103424824386603093249816029486770767857286093901660442058052105483731200488879350521641081103348152054447273938444765011306897379354091754153790951118681526805336637235146244443804950437103892905798839590064114574900691239391400499616541078465358245818343540176829380994802591646632284384180502889988940166129390538542151935318089981155022221967668369876331730183245105053521227461979479174693828326840622824587180269049775165902497699781251059808734571833625670386356060294966440362571002084021224624912600543936989585321812841135190217605104779637970423399581505034556539897524616347124774028716035328733834357463596149337869161779496282631264516827153960328318230541584637099441760802767031406552375641740199080186386319154736607533593136587167827652278512865932461764911701424906129700703823917155577890515187490290418299685824858029626893005795638428405369740072594593773290433382467430337187487508376191881631213877189113510966041662860060448033634689960731804854505920556473713258948824224718215743994457455424053179971829466679462460028678289919400388784068828871802125263312626579592846036124407442230211873621799440359264555025606117329917044472090509076003575182424370256767834768783768361028191492912037827718432050205484257546389605333536366811251325219524127193125504155432053850656611353931580823869334955430369415821207698568815532141047373048903245418861262252193561632428656077886576673702286434500515935145301204955505255763109930735505177655995570466783747717386568108817395441979711564373043888853640488818065041419228534774319320963679890931220687321470694266967475833495039783126643800973125645755338062808132436843106762623363075609634216176984651303074922069266066432496854817354522560950737077018803879575571185819141656235913202926560192086820992834286674022511221033056164223772611116511876001591174253496268832060646050113892785987569516486550454120157494256038451397612478390554540299591892416145401801091686099028597808974203634257806548515487337003493916705006621803897312702558818514005774266285359036397026891233606855779631525228910563873914513741236582630693399230388515020032412684138307646983842851353319780441468617267351018955876246892397180063299534604251580805244427764053020557742490586195212531239355520038516656180254367161491934266063721678857491376052794437268063281779718132227628877196260704564438310064241011547186097139435502217957055407221963076391562659210296729330425741126661390659743535710823187790036199395519280328869807680402803600913772796096372232267096718692423491649427121674470279706276417196041517976371357306970889467009974549782370165123742502559569138080625938412864931362088419125737218979663615867260656751822020415609358260802468623006766862292656027585019540812623875452694922881983743556627156233791807304172851949721108713630067998490472442061626066678435896926308283928046430459353612895413432361996345660771105647365788291504306980694132454297568537303405898378152322777610264739416704528718532579898541159820778515542785623302404320907889027347567303151965050456281970945907896783192195359506322022296813641309900315234919030007417142286992787607063591115623246841652480506009891052702557805116185033581806362186561122715471656177745909851263482152190946956212467680092227375490727466708784133229468330704329688959505124614163412197021770284047273658110731127740113789118629877400924031282789508079049210524438607221120049881559601714442956220489955214838720645991179426009867442017736557901527251707233168040638334161282475216546716621842594338076156773566901612875496408310182613900310987772889519739767161457990500598954719668845685531237854083917888833910620434465595880604162754042792559757583804149669151443054506140826325175651981588188016760201474661404985652902148153888612271523872771363774426559412829485833145389819924864423843033372578472672880938252927375465532704815197263890210278819381216470220505906543976453808112913162488651193665467747793638470161567382102240736637010367250747047628990898431864767518010151704307621935296020046966555260212634694618156319630021738649020956132244060563202387797878352042166773377642167777540410628250098785469007878238921640552764264546840782624495569424807014055537559064132499044275878672695638245800733620775077221200615176767427564754527207703248820759060486844676775895244910478048701882829814537921738329376325275648469082962569751029101761494010500299209316004651610430504825861346176054914214817524783765889083293158850201072004060702891960701763684455718052568089615714234128269064178147684632644969282160795278630009355677571066697574019788871700782856927271515389033995778675810070307985441683823348546620830797305131889931198873213701958626437811731515292751369687352818707620958468829006808826318060039141901613611169180543861638671885263845421954081225935245287406243690920488314639574734115753926427604513600968576612140235150492405839892140925176132254820429452490227740964005292920326624047744002526850734524689432392310262325365668239866808841928354185387372226781878738019489940147370424441833486808023941377937792689393438954798093250869903268769144100512675745459129361713763987969173935681334185353111225336086568654573943035113462614871881203451257990562860741712360379917383483873275117963455901179156293276342422228160637382719344466725812070546788237139294072196040818521613962882377339349704047770150354543620926233746744822455480104082134388649606745046857074521416568546191527418664436711329131628774904873548208597977544499231243747268553084376569632018293661570463675427776894257710897917402240523544399981380608435581108092837114197293262023183598943604231055109149218864381083542280647058654806502843590679309448537997731132538818647421331555825739930002421642773848720128388141010548221532105165446619273030983372497103857295384880020247898162365642115753156156637531923179039263479443339626617049332087363578228353817671375800231021784555857900309493430561500026023981713783218814664266931447571938218984001476058373780563703853902870835375263588447690586770053655577783748745340279380684913758870826238855208875545570866797577750535004489220599935791323133450176939877822058346048599710681247750296326294150441036354361364034538808788844814357317632735275973947647149133801785764589174505276257080748152870601213943737733072129558485844620154765688773498675932246217631256560936116824700137243353316852351193217715900214536632560290102851620577988471961913862973226152946050637865268626389764406497070101879073089572923968950658625298987433521717413863276464884891199932168226162792045137539213000390709399376022674196301847309478501018853505345194075166389444756587709329901534103938183292037896430915837224468864788198155003218720870272103867797757358357985204339190233529475162449297433089348117117147667350706462596828924880715401729241708366122400647514917906771334627801584683160078651733097191674218682831795968177291867664120588314131413777319770453620128680631798436207625108482571595362869469541075576739451540442135236275190913669859144071593901499298481392447421678722446953614602558265141681665133511622624557994722227941904327913706956032687877406066486151246112900361175924713669482625581970920605907424011712883200855073267277281949218207244857631314416432968698611343988021446709290620709361571192646411750726467713584307164909719636843009952209039936809338471204466621911664638549109602050485542351694485683153550421450560948175155932514807567858814564514394005797936914928301861883771739469049366735255182027369682266916169371766787603747488146205696991798643721631479753457324571983783103773509903137271659590085862875486915637331499250647521218001737761093376596615499681673183657242148293418428579074722379191609883068913852841212855360792719656014276365646197265952432155010027973201293155143426023987247533675456734973177221653669120127213867608579030757271914472665654544907841616160455486722090055091353113974498196756889621664349671889056184912776056863111062718257662684645913333101631771736581261043408978950325425993511777696324587977155193487587706506188959495135767719276615396513829934828158880442457298820086165469992135270445445589071664593947252517367885764937087603554129704685271400668177664517654487585782118463868025460938065134768662750301896146975091363724860177827652001898895997814941330520374604105904530170564349201914529655099405946414238131414793966966938817782922436475666229647188619010332300162247561178161734289881369990404259775203365080687096848298628792385902330674521968819763213915962949643310801464112451862078385845293248493199367873376364722440010973479077070095796978316276367214999275299239579563214181171133596355730711221391992954574171177437898179922590037880718442663476479028162864122311972502202571271506334571039734575331715783468548638077508208394843180636203277293587986278387733113940020009384336650644143685381353326589778186909371704845025537119923518175264309435058368673951871745862381362445173797979266337691192427286081427082243748450354315553917023578806171073374508181655241769279675526126518821429106875704220151198874772509849235349423017093548735095189653473590147292536726283623183363393795007406078041370056949401698802894004698990200769596528198103640462417845155784995907834329554114385055905103497998308659789285526565938561259482656837094517884516394738376951406018568973869771933104114423705811530493473063241625361104598766434586279562146774803451070903715525201724384785746144403258549723461189055905228594358550399629567774148134606963055940122120427685578020414186944278893108146764102581186906162837660978827206341241472923771737746274363603288161517896878264315252445656837329435688417235280436760308056535218702558057861048751967558253073442231038042995152898137660563173179579408912115986215907770633754033041645860515001489538860391756358393667272173541926751854560914832094640939100607026886624628463903907926174118546015639807896371389432486153317128769287230932476858087297197351336854403905135776949008497928399385308566818869608563955871758954555596582410365453566007630392548402161604326303301130736728110015744716341446540966877252650161570764647981109456497046565496280315735277676393927751721897082896784981692070896117929997577054871698850152677785681850324221694074083638708277480216304689608716222509212460731319422350692864269478023169037158085609130182297081807652495952067202156436062259876675218255487874986964866486995968657235808323744136478324589544939137125518834717408922164217617355009530688301471747908655069853469312120710590767233444250526154979663440571136982595711829535515498041615392660061255099838734545147604644007650329985052771184407238311773476389693530533563036061471471037041242057057733525516033309186329244974883604340849890751314795168474677740385765263018199277233114368885038822762015508382925007337705284193247518239657146924143303375646087275960404174527982631409432965510571315201367577046619924643772686730243694291874526259003394312935576382447040134760951166217657481097223392105903360743125442734962487763202650408315044850779742168794252647556974006953156691369061767220342494708148016944286412044048379880575920554868560667203431650801933197389181203249150414666227389001353741007133881785674317979204326513681411360750480736369951864562183030930482779374176501771518428875194150467097297792218237763797305229167238602641146541071007260487623320042861596243369231977801568071535914534595488331755899495362265565872004612142099840984846393182426447482447159741831424231170340773879485166755869418887447706008262454477227195694370875887342041462981399617516486892144915617915353054990674623678386368153228564090660710605789693094445266150173283613317075299636222343084922249551844676070764709989591673067105322345100703974229206688739818486455449598739619198281401403757988939248986992504337414058593141579696054063922851148154567395448836376706861950716249649181826732813988067691790602497807351621733349361287657445457719198948620590236618233265202023409503100996813670003970355752826985146128518286923713108536380239106503270890645029614240256270551890159201906033274606333204537821867845876556901608174186232062507276808628339156880028305018324322885905972007191897505030517563358294084741384732062368296396343783573232981015751421744385535553564143555835625909735822926322277671091705660416368139917019544205253605714071793169981045426775191455571984333636227448744844170798169785700868740584533982761853703413265564741018324841993407860234112537330141552678581954517249902453740054390334406684528514197198114844340233854305909888418916612815352751294547351059014000673029739309707429030254477219671568407172890777694809643094174400391356630951291000762467624980076202618542345305516884925690432676020259962355903539842601889974788532434384776339983356158539932885802623301081575479295034715119161604134484846926288834280800404615158817456473086377274892306721764251887575966583168540250680423679996618837349166750134514351379520256692049320533395071951556983013123464915608525499568311064454442066208876562810270596295121436835892099929730798306220269660053564527148725453757558570125779486488272633944592336680333070813868211858324884246708618961315405275675337842154319651717652333908399035164211997020095949903312750838397983608450603357073958063905458072660062844278960351474491493963732526513101706865746468258937998412483050847644006361713371793898690420894781054567690292024282619976674281058957987888747176660578930265626680198136033168154231114143685150866245074335780157747107732990788989602893260257049315463081753314350945227512895692054518145024256918140456095017299727824960710968436970009010235778372221193982407868081407899915025268716929128712978907798850367822143076251164505535594673063827237647940367692353556901006165594990531597656377548821012408255792508800529825111306208160794594118079333455260105851968217138542315818197474400854227873106536586202407341638061178929760921563020819871601027734860238693865710925978649653748337438972467279249187337097560895732254207462402021817393138205081757756222428562141470247333142887114663585533435335446999557391317439626146276963917099687978660221599640894504436568892529363924184381263513841178508817487502994325374250545356165474004295080414997862951802098060721309371530648138461676099628678825630099847074336325460951474073143298708381015990326779270851846202881696579800387907218046893598700546256309070215344809379643391133182946213872758981071470153244172182992894335126230264080742361671657691880181340353240976775571289598193809525542783404019078635616154755383328818721880287517786008065945871001746277372942191871735241655724113454920618014606571762445196045536937482204627391381382198750791779064102921137724240332356901767674371283399797962745756449979232243756063569527790194494837412599033143876914823411380505505472463540032990087807256348469094564910276353484676836849928609248645020110743813811318335958154634806240633691919213669566662508936212591160129453479393229310219377072910478220768891153855192079304961552029444253638671956631118733232239615703441176247466380913365699539264493593072836573703778739152071921581616449317215604695959148511367418498555531707214054151462040166750691812041683615816507234201479532123765387957304032128608687195661138831231289336060305993446004506187305628709257954177346014417133037391539212314256809580325414486965421056125645981224253810092571833990387866217836863556962691223615673264492825378674885694358928292373228921463497617805059396508964742507302693972486903266072155250459370420084253063005634391091385560877917258617706642790525987909921804144067191375051899950138527878408345926676223922278665274573885255341540735846467124156757342893630818931010066879826490437334116976204009011477498907045360681972089157150457644122394243458742296595306393649505706793931324375089233486927391736072770231147530939682015790694871500970880560210552618770657729260251335534252174163802509012376767267218665608587401869212861750244384880115177289670762057013743773929696966854797842880140829471376566344656474142461800878829629158045913850014093066171434194840261376430467241697658927182196834428631546835661383100154355936603188890082010943165816234898763459120818242331719069671472448378199366126218913091034821219569100819860789144927959792718827482791397844721809642491434018728606143593122015143878174242357724305171874242358141411035463739713524166788040129999726391795702129796433488057833329038064710393419632997082198983285191896248622444529977891428254112315562121270653217047745864689438635248685824677592715244430649729076005225002837897853468428637040627046406296441796397311483417693095492579249982698487869035612300433480892718164648217569140152796218439046451040969735764619608121462193905049142026541609917293673543112437998412484556667972958796824663062726094207560467024561280321601611695745241012014495041249669373476194780363448617527531093616519434362897340092942068288646665427113557790533791639328845906463562098528607483015055041789690310875851476966498313164038240025191205547599894573813768260138300467848435944667238985347030603183253195974284435723781666087750927518171332300878072267656503149897938755378974395922780529381418071093060427096878738579476265140625593453158350310515560769241796235181260074493439175343301108692791900767696199809103546921661245371401741216711799178335121536973506641164542963939023256718783078368620243572711468488232897946953078688092117599212797078509841604644175851167772356581559782363895464560634602703368536020286916119020713477154791235896285678081481603477382363101829659067759281469380271865908097158336076896460619230186683089500288841135978316404874800253468839662572727902278958269130449534420974851242220407989599334942910161989976025996532533915381143766517934445318528098600080633795832176748081140372030464578166495053395392174863811352868006705835229950231439384628997173370807093376900904320391184326549224776808176096572811053056536436411570063349052112821565450767086832473929108389607277148662727386526897398902261159151135819306803437656256695563646871802706428326913959563620030957579239588433909859334445691285853298462773167567356887470439925236962847985003815404201497788892781896648099030114402875639577818688149633466385158221212449215952802137112396469418360280693264878051485796159389135825643532200449191292567889216439503005923821560532666743360468385997371878296795377003192291671087281809875678983784243364112688908247507862025830581030462502564912409909475237899893688762588028837688546596396718025562390716877023628934736671347991122571792471057311078157760478945239968818825277582244258057770456698378759379781398297284736621703329265313756375412258058276477793235206345889128125827646198413420219695285264004976078973114697270651497088473816562338111694711255073235874719901254794094165834393124018169622416410563963151194336771054728738388666986404893083737748951259509079981417726104319532998122344331777234962864228824951331424638748135007016043940679409141815870198062241132820977627691313792293699686663725215567544177237715351418111160324741299569220390146648880844951800040797458863203982397956289701207170113483629698972887452641858762372454457935131661853301630579657155865288461722659734737624005465082363365421697760146780458976316901182316405954909833800192474407650750048959166880348827787247448234874174189913283459414013453088401396609867433064410288022992667099170660739532197658958989628576684677012829465202281278246721036540917816506408697954258575103484718996695749974656071920780500425848342664314096526175712499869330980268629172559188693647707736123710850172448624390165230149766169246670606168222793499982151378858481344233819785782816853563953440161887413896626634910314035606573309745462523184226918851095056493620694182017691119132893049213681817952529222396134616262227953592580311053980854834742226297261539353343358664010875127596385547157690669407998406025925650301303647742883453764791241582188076050330101254294783108041425796156882348786076639185277007327654758020066713560772205685683650020763364602341249845044965974203456015606972966324849151140323750880795734200746856524219164823616699485934265958092221063826456822169615559961351345221490906106304363908031641702099209665708416216865147344130477066377430048386866076858176817036756261402023642265463768348599238063536414747618356172234959392782826273617420238089442088006911959596991076402025522601799600648320403171449235865587053527052829873561648043492335781175200340486264532522764003934139122266611805127450767631632994011863897632937348018310451691995990742839577309392146545598697386749242408538912554649443348147482559361092298141228704888721364396573905674632601152907593826908701175439638955236874293334166358821804395209361964654267124944335422445661284311469802881969261985486595799905326622758261202378564564790743244449494948040141888766923419330768493829556669205365575938901206072975739973082051743956384198117062145308853410456311272397262623795881825178117451614643535541564900172859620960027250728464908099968499794388161318276135670866757187672219510152624550925499397066874105553964349445719282565297878128458377727602330900020969915517746825755977096607517301576124363373079213779824152781932209459687827006737526497213488068496910603647694551839244223600570397867572568886487138486522335623577128101546471045671794735823653016503945812163704523239724978502944513893844603295128373983226977251858014580693543816019292174996306875169865819053792615235378202831529311630777659515130752570501588195983614423026245450217409942392126024821607443376787370670042098291062876985616240898738694134372326737213691649334804090982950602178979764205636624454270315683292037748912640087974840994274877587279051865269000548812347682203799565853965720128399734072090374016855356010506504750833295867259407902772568425072269066336031805698167386866162303105121655518329418618782165668194831457731130293848283211552707514797590844356726975755609016532127534460116911561749057103687654319152787325727491673647242257920069402589388345066416233947647004485431852666700967876975026801270786880473116031919921432691278500247481637545343087162129484131376630092536422554096952571383846779299931409248933749379922448246397186230538503797848468225659810175740893238506073222117928891450414802146871346735513651589352079679509783358350581819001702018077567067614304020055799320350063823551874429799277532699006272221900550257969322286150654697576493880812832207113087574210126824710362515104881877095016032075382669088135895033013608907747284428889154245103419667142231450653392337072107867125800125595334244260274026861536539032138828196503065264369297588490158985104267812714551415332396033538898546665305072250486765573968189191308214506849416379694589067857821829180386751262071841762885078612325190436394034700904574502966932261712945901559688468918808154845116536582247580837236744450057205800313357042294847529843545075292303513429811036570888682481449632481061260809192077999045233642724920588474505308301647425824776109013277415700629378044308988013697725583424986743311483089775756846751339745188895730093251987727841898129190147397704964530023063250214119848954684561243701737560376889073071924022725067904366177072816299623012893312380908005968054868074830892141379312158883401081968139168837477275621583902263789730824508506975258999405170968452714063453281560443781537920766097064050688168820457889151404874883886196553757309907967280286458082190659953383832192313066486266618068158911976769454643453118460318637637380762430942493627217089838507827386909561178675871934414782629699179771394847513052188406834199736865582523874854041556007900244048833621427084296724535986359143530471970271101667985035699648110262144938739392107282963132210997781064407961259545081739825380877441961887742243018892872557399704144987312279843920996796047064096806382102983899627149719541515085181609188395263011785060112045250861678988907481047858109553531984624398851821068705474635576028239896483795143604472875968590651790871311320419073071906128211164728150940831811313173445109464947000541879103898260293407723264335882694534642766714259037318190291319675963660727645364947938273875028913173631119323435104774337602189143012215515617311965872677269326984274359431321848847935155009455501605207126591180264821090913418652416266870490042746824195515148458942577849457137419368293674753591933345309852364765574714547717363873429527750149656252776964644917557734869135132152149525942053331332484196260219756142830371560660094450682198065895583433988040461686527878983564142327396952038565589110157275113237338188634399657958152846468441405995327769499859245858656609828919977813485963625916395401850732965194545214314788116137423556274665281188846383673975841242059449430659709742765510886093443292188084157446307117532344648690042987774929464470974318362317396989778898060311880609742666144006272074157230807400724819909493557976085993611722121299916700911921141685486291510107937068834086683339771222699024969494178542865934534613519614274847912919177859625299299441739928533298932441808201917041183423899468344845419679050992075123387116322018667698834712703678666095628693249059618035669232703830658726966014458238438589660562697883768486824162118685548683067939991044580005247516563005527928575970567935461524931183282894427118757298329904120992695721713183271711523217917208138533299260870980223300311241954501227780282437430910848218380331768123343327881536189795777884605739640906490404897704821816555207997205669224577070319414348499339200305857739647634002943866191846579629803107620252046247840120035743162700729752418126839144854507679363306952986557794340099041719522151977475397600772665393464718416955138202253707019805376144687430197956864080209239250698402673864103657353848495145200007530063580020453308317160037548011935447516672726354133682355233017181675314209861709966782878764243115580849829701512034748227992527186591090112295200249581126985600236077507789912718625241448271997500539598870681551073924991122815579835498085493125716042477471021733493358806836212541271002794172692335378823148245415041357412351205636988237601336341053825928933886227084214138416309115405583546555473083695217144929616790385647771176876335479053292136915986919538198121079667094345525374931578846876162117490963127738455411223456755010825972173627571865220013186073467506493739770142553716683978543835534618970248549527668550874388601235607890975672859192581751561629979221707726328633145285604374356767056604240301512082634585980145405914527783585186749851774900028488465465168292220205771931803075550550756041275864429329380903727990589738527959678681255993080327319560147009716097198972273074874802749796312347057906652622183717791344994638605984213279917460649288576154795219186199273479462926013363336927762843003984722951214298296143025193406918400767630797457957200435267595891003889333667606413087647970462802537979991246434398596667391368631982257528252245072930089949447352837126072112099992843715073279186764703557192247024713345428008390461554743293850484943369213759414770587113539542468635036339358967880565274545161786659020595614632602148458388749333584556234855397462629060961501687781040400265016379378694354358136344380543711321947607518083368561716796291881374273673618597454706629108786341183553619541128626201113425513738983039751095041248332099072468852936586109750264130483220888047252818302811789166756146403422659406796453425056999198421681909725367075466228057480757241438653048102824529397930983746678746607967950247052026603087211776168251164124442809459907440303376815464969218862739186214019605421775600619917874774594328194091124973672392001251903391392686641628534358551301551124549607579861152273587554162487516165415995322380611547624313217370361553674074627797369475845545345698928582001367281746244366518377705333483655273845698684296458261194159259267799679450975981701817564103438451167870245518176142618524369793302111152468807086191847592620332632939818936707799247365862729255126060663965969625114365801729745186250765476390244697551457058105736513653357497929026653635500848165880252526775239968523603880496441834424883550946484267512217691259694695014954334123258598889394512074994559295425269533660370086906878677700516844233303114687699972075544343502173850013406490745906639021765899883777303096183911597468809798821204985057383863015316491950783562615001411234552253402157557216110403391982885162467710393959236855114691051322754578761158583094216360518412669056703059935473169916580240614171014109128551164116686137547931995534648783238718462339582258662779680910095008213665801369086493778257130217185226257373571194519279861303741489415813137073188755406193019174338248890597916911896285052150563147685554404818743958198266078916791193567554214551204707501067147387726637700165556087853319806680972860683199038701280796359958943830606446554989654945730500418355284917205823465891395261529889188093702161192435421396441657820773804497404031396013193476213592050471475592229659889074849159859241612844306755516592052576759118868339396783177928762059427935986655020146027418944709293198949285482147281196746564083927311762596548698293991566836446827438031071873980258344049595627106468857049194664357438558535653337787492281015290627148050888497935475078127478865310164596818043701701333593927403429176039661910536414957154514518558965810386136761884676204043944042277003446702443634413297537181773479075146335236448834085801409110126357709464855994823793131576159723016835433495895312157393978110446117702384390926308776174654506225887302722747818288720594760559709482077192126860295206811770840254429157800859027980764839088122002854808484683248031288901576739628987996691071350949653832632789126494548826187154568675118098984351362340363450176120407596846397098392066488798015802419601038618207564666485742572096097723526418845561030531725533254916407591963722591752888041865232800194395868924925551276772172437244573884222406405991546820255554702512195910051195359857303488257263551643287618885835222072048320941255190775811862488144129394260801491323949408816849521523929466714101000778257561884159246362727621680509991988491043262051013575780124843873578257836534441821584123160620050564319273155379868970393602217345005451339982252050103193803576630414867699470904707524683758050591439123155500906693669627047574042234018172135502666208443475074103896491053165269358500025946019511786859627773276872305146062021703913006884402313767651508698804377592277175736065828083852595776720742848575528213544104703772980386609616507853078711159439392189778772157599534709006569298393549783292568366873106223300432319992298664848959786587473359620694599195273258197061571764404529404536526212369566160948213673292808817302437090437024816821003991854072645397230912973555950179360637672860838082141104035372946365292911165574395059662700525430427382199985199254074990425497573638163502798179640052511707581936499979291584799492153307617244679005263328071532292110274198363303161672596033623418757569701782362812790919587310261666299179026422079944818319216130201286509469102060467331062600567858000651037982595093100903928929208019979764308079513914472169219216918475266633558324536757194541689017105885780490831397896264525217968639186789953401904185297041585510556948221835139364995110784481894152379757818618977115911535623862176458028944726387064617428682188475482338065450805532825503791825568231433626567147953943696301043939253454136974438359122244789247894963317219213791038296947217719866124566788937250292812287346892517347215817527413830601763816443393751130971125111159955081632639016644426150511362010265849855117430660576317330368413328625744302663309857954496360301791149972177983421937506704782377116776221632982448331948057622262840311229331764910600309545153098172584645229546902605994704963993773162230925417769238744011329107197253406077491420114226493442645595270562662448113611526105405402195575306941489069609600621032418031743046893293425161997277547326232187609624528659545358535955671957797129718553948494627003656867547658107395152639457847637003536958904324267287178428156095731129311433181765322602963216828780725475313024808498606739364693611596183940100196370898622242458503401970108929370694939622956130439556678882334494373611853281268517878721512039631511110070771348749556598035837627362132333343788475181025723500370728158977386652420318177200253016382938501114769180427143531116374937786040058507091674780793352782491419570327340775762112692503850584510235279892678686124115788576214517768200584744732647268452363088689416236347147548355522476745533266492547062733728810569946701573068344039454421932350619758143332587930883052024988637612349703970009471834231236563289930032877209249500837732821538590345976799796517060421986102044849941592378114795564309522706870483539563883396142357952142178842754967607680139813957041096748890782873396055206126195179851558371186226372929833547113966196360390171930527444608623499556191829243543006875800751168384357835578488227097959052528415200269333075911410043528014251148144872692873522373804802002865285961505846389616475644727472579409892375807039679406716556562672872293781397708991496627035631769550023326952373714034889895003669665392349312757164964221864395363355986427995864525717988128790110686846266310331307426631266394831600472037203415269417731237843452323944315086042342299792017046903825610070566111466999602805941046868645661293765575746655413805335285068028215929056055960220660968114221917127558491483098644358073955108235414849524011626601382594715064044149832650492744400019106965954198649709667443628174627879752931102685115387116076926789282523052986189392848746556977016784528740843738589676976965341451020380305378997957387513317128368627845657279080856866424613410814541906233031333134027985489133968837313113082103742538198490898494846142677379733939039773998319968577839278189640110300799854070202523719845498098516725436209600088978332001832796701604748532950948825472770337209747226624082827770005957334610892462495068380461278592724300573639654628903844000229394602873984574024012861604558893731822115173577561762586775586330530736276092335896064271747060116837584390454846833108191173575267443463926181016824314552850128549907298807220366098651517566777886642735903569455896549615262442119867368407465606953954449188485608185096279483030224697395115677018555523527873874078471558232793356470601215813577288628207787922155557995401397597989425135505486856558564654280660334650826066383111410167196506944104201004101360504728158127631793713692210559453819872442893546997499467089473733325876886594615260510569472832106258790958455280593668119899507434241140200388996606641196710515351130362982079059783368465922324295142826192834714682004302260506415387536207725829812658133406439228974091042029449895083453079407732366487813251349591050455880771942529851894779077042118227262985630100932632126393660381576793001626553769048969501710652732911449684473608990591776562195154231733124427134284855980068124682724341355279357252595766731619253725480956727934424363911884150774535915422168081872225293770745167301856950294072538885196360473797405201153544400421246316612080528615841691318266137581789028826089030684922938695086350089246468764659152186147340909927738576814598171032169779948088606700522929147565063852149144615296936705871646023124903740171096596381477906111927289170066253517085039531924129068827163672321910056430384451634584753726370347293657818925164990824003439277041783960324983633427774339291197007125437624102999677146434178262001621709905156807228392455759773417359802957837520496828709843355545555404443717199064760963341724658635178183555976716920480714726407147070506360975230163066592160342066698903319321841026057133761725536882917440408202599127143537767281299579524824940443587655423015827546993910727144854043282732212646751701325031708741413473733243463777396021783667530246131340402559686840513213723438004703047502484641976186384231648857590281783597702636151442281756565956733547493486209445524527695867380669766946934097498804323393640983428566851115398918017416252778941452174841406847693236819329056217211614316501574484722888137348249645074424276121458859510749359743843272100951281988477976272712812458544131065656930727605276907352962498481435455591114422233929251051078504331919735549719811886392634527159082955826884207904949589197569912030531951049046520266128212989474723670022362487631387787461897498115905099588939263322869449310942857442972840301106195866664354191079623341675326322929152909444778898884606096699422689338754768592627349189456854426267776776185017228335811331374055379107495202749865073924595867919370396618022390415387715525248630699479613399128648185681310002010018477736465901203200213511641565921946352802979880456997032058252907403247304396399116648725059269667460695287244758627012218713506122676487140288096793773127880069172622111489429167855536651596933176931321898419653583987470913626239213763483109569485630904221493894202339718478258012035326811674275479572238536711261539072241830254568971968539922830831348349988857216852653169108145483446901767389682336868896728802444874333944785510625094257368416447597814583459834074578082245955742389740825697719026263702974003815407849215953563180182226679212647195369557634436111098549822291156508242275854605627882245667046145349372767106092411943983935584856303803347836404555855005787954866345949861129924106715323850837409974278879909870806791194818124243816241438735382307775362383341137070635686765954474274915926206037507921190344225327019290952100946363599407521527315905702056402607033229545274552044012822361458363049943534533281514934493962054273331496648904494213181238736896250551810687842707860915229516752944315750506156141266205820150932441120236202192891444753269685110975978386671041553257793199696765581219869665351612068806850369256842794903192340206341952859443004657338533188784563287485566562112176095095356681898596626262731263806898955563319977810979631137360282128910203213620442504146658087420797562970444567422680572389649915200473259337075486517886146343659872256167790361668197454317497503443010870887167643683741032984102557876122625312574952170519256922473323221969993877521127618318622055409920844452384256194749051774777397378990610750557972931853543902596307558844316841824464809617716065844888734627844878129199822232191530966395102780507085764179782182514432563616228253571810209392027391662197762694205686823688764293194986345816355935904892536129850737639209994359666679222749250840072886432377718692225733304232493483660444292089293692567586358871626270338111584987833757694289771509338715628591487555668738502171539314333212745943631766894605361460367564396382464475916321170892386299961315108364309897317053070174693865981285462717111826706588937902985130029421917583211136007751606313055826411371949339052367722898529068560446087434319497825962349629398445575039525132814942483185277641682754733543800070754721128918443468304797711184373443582013458407267072704816224227078265694525194315288817231809105117391030353447858200637850893409684089281512202384921836518193053246215860793738853487668272525699806571083604263027399720582413500859404817275000822983298703082654674232051042646835762002010329622592885622351463819267904502592266185574631952046421486715291144970478758449354948229262241132574325888796457258275779380965598476489326683552246980683357952623128811848735982563786397640763536806238236636645432571175740282291210282355814668549949229341732870901603193406974788421930322459430402661910211079252938244446620291377550688390615450694797368434881618405471835244934140442136584663345362050588507626512772260371489135086858136216614468604049714735514627832881776779733477434426131425190672649411818554969326289342880464248842601671254313294757660099341129464192747847745208681457153630303846139929093411831264199186955718512084658277324982894778501031604906373209077522108684167825273511877522726864197232282736319233510145478755584255357461577463222287405495276235740510871361897126958667303175249254145573199810261085022884416094572814968493691406588887004059478291327798203398232617312893409586297320355645731008838345060847586733313765439136179914761820783799173972165883153731952112360075913116907256872599288962071495413795984386641152578198365272829054589521833647298366161829563138914598800297831254936909587858581371910062311223705775401179114784580751556827038050806820070778388196609739288312484066770501017023219458116516469424239269540447672943925353944116647579368191998400190224128586073239239115472366393468480179519050216506971400734228555466790531108748183602879007191288181856619498880757977043738361511457200253908363302310592173930135160416432493373834145317618208932680098575906153002498220180202249790095035333649245746168700803392932861696933616543554126168684601369307799274081366157832810274958511831486617749206457248103307981597303397446612748884391319460781693625825374927714942507714567112733168444877004633565646307799623231397771825433861903974924877737400373375895742788092630170125237962238023196811207074408172066870589569722100421203517520755212302001394470003259879423415552643184095482365586518630493288541996381979544529841401840947157554560495784380442283547129132869654630080056682288172148463899003446949127520999279000308949776379335551109215231836869083651760747298450679956105137816027739870505716282616660764616829268447566044013870008967065122621982380207803463964706134049744907636435346717098498608631545677361969798270164012777609801624439213366759342903938798429933074779230808130298684027935265841635054898019579234926158497539938205222907480657772354560081649428309054330850345441071737575719276480460244009588888327749675208846637754213912280225629822811307377978176145697876666103348914434662871269008868072194642779901473965943466408876507240759005034405938189121200057489402781519801339287158428507953692853100281570876804998094817892916918761295811677612935318400787343706891765242259608704197750889918129760045875410395958541213988610585101136468251396886557221513831805245204203638545814694128467639732386648584340526486847666852639571418807436557557848550522176592070373592125748146362187996412036467971087633631695302563516679524770955730402457453543675301822291601314549147702425427138175944570674333066582040011292078939743326230736166011670386163568028445481398900491691274090436895155365236981651604854564699925037081527484834391485768271571501444949864662091007364644202247690577062329848970966426124240283536034720212954341597704510195179322543742121358331891446665638764941733396333621522026805735097906169711279211901438256817088282385775179484857944738819823769944323171209623842070616754502086177122818587838527196321789151520504790644794497622243495179373807137656583922321104619841081130434785249050324064867400926736376988957742796085224744969075338564901257245534661532862527155336658315104259645102551115786978436997530759422251567499473495385384412977509173269369032630555864349442515763296697238598627880485052831215473796318658320761212090787106010462505416389429004272010627229708841633922645050094494544708742576541750665753309559119299226625796290606438537320731274675156007688163565812585337591270512842893084456873259898969616574415233316315655873454293305351651867524250571066796790416503654897255237553155612244262771402417861266634377053010829224585273969491613713755622705807628270112063286229943049184654810307429407216595185664534667804430922905109626278990557040060885377947785294411324236910737114706304026965282223054257924206075268038496913997160370915470788420952703136108018524991271261115525538822489042732949717336717700153258206190344786606136271613589341549890783911105649311830911920799183945143377271885259100577388448773083278504587766156479737218654517385151187790541546177334717346933676575496952821755361338616685590028365150486696792764292433701227708757943263469243388472467635111428065654521190983043004349621664896141453874416295001374802569967251785621468451116358031347090429714441557063401322187810930289608536572284334565982965818227940693070717122214826341367368371887533969675178856636832935889696471302958426947824751997409060614004305524401701127827001412474521497064315526704458188965685945417141211357680703363317753489480473578250935876766200693365128018981912561320419221883304357628346218317554213999576446007111219034071580267709591391834813401308149805029857884685217574870635792142478926507825962019431789388402993857902351493572323104468364990852586799472034403674592964939944127979865323560532302627377941809160556683049518203114754293133280385948983126262173437206071041553223160597726855987246747712864284276367819923853706352982393816836707476816862703461690648705433285413280009900105530955086197128327948853884589172557683343283428768886341505659292576495161654598875451854433454749405521005737072905024129181223334970405855420340189747372120489218077749798911053859760090920254157216328502739182021231752206342384038292208341106505135772285736058312778928258590763116135631741238496072157226285147502246274155914547320618186121590741463152369567177420312414804914823400701893589327021394639282016294046686495865788686210181857243887658030019058853521034509510366827899922237079742563294364054090161708917005878183898247897663746629122476016769106899935802421533319950802005573981500797899807740158335253034478486795326851899874016971473264287156618906410139758608559785887259990117379587672917921685804592627136213162653920578701021679782602562381129545709239401953830345456999501115481419839294740563129979611462396958505156019080151049018283034366120053609269235177789503783826211361222964939671997040515151486718995971664813417535357656920731748808443411070964380307368709224964397773592617399638771367520970248338152490651263416499527811488199372119079130376696018645043591744636697534366720814934752892050965057344843976850671858923813501845776917430307669491108834641362365600958446146801832665314666461843744252853602263692498309464410789291103987021667421122622128584773061212427014922125237840590463161145586965049834370478760027340877853101277454483645550726288825824062422995081324214853249071209900236357457129129084736440749228302156914055505054649322181369765164698748169966526949592463682428425980595289373188120516638981102426493149263729733683995555792052140190750974148505546783301294629780264832590532907362178140292236927344961665946481430362682977844264906814220912603741166790615619030752702552317219291180867973047319713720797583772765064679460778420348433249672310934580099407963777739009361651942034377860226520216103314414827024071090660674944153496094905437972378820965010929905938122226183310738276454827672773054387739722126788154904170955943538491176406220935915094821824624693455367821635149960590074646766804904327549282864907147514649046437280047673597472872881857193451903894336289296845297623398069646077502840680880236342451789780750402108918276690374126072297763968671678545972889730379585012866229306425426305262449317998778789724770119233247551548101565826999378877177015539969713832125264058950624242454136651987781715605469018271848762815964583473228318889668285208810776198938451401263195800719768001912422454748395844603198002991633814812349861086614925839981039704636768987225140310070237872276515546743155490767598612847631932889909606249733955880934199517516075424553940071643949127399775114043580085975763237997788696757610469510275166760865293034452324071169872878523414273231755040761958720228234152526723486428221821431784045513558375583265990374210630159049768187130102576381781573008211834377138626754513787728388689039462979232875081353390030639484494728799254189556407875949529420085369956426632728316547378710484838040975228505384996125265318518863090692991465661637212417273721137712126396915163685311243892747259681997010199249350952893934662778184229418169446802157186162281530920265830648495942957440595310152527642886712480748782623701334300215289932951481488203261775919028593813604714170935473204170017881207345602928200789551820248206389083174819564462139811436015462237718575350782865382264853352921236607227709438823484250486834642419493815221165583655734271648340850745714076231413657472492273197966493084751942080446345660699293878932443541681576614156058815417442504792638219897072678820778088484937162515714674814383550712182505464075288386696326886225491063554033375949063464349972828145087404106216826720469515253442256783340622726171104352997984043457677038753241503373708122812432213381697215604612041013921964091192063063035926077221670896707972792123969284724234126852442503964252145952741183168733142154786209060938185736177771294528415722044174115938096592573933989291528141149099688551420457278135297510260465472828420851365473863449112165205156793928647102420872261360831736280963403982372722404584575424953006401854651344525035781463504804448332595483671778568190726820762692381089938007475267658716132014317286927039707376212164496171855616884342490462541117848371462399933490760683417018173946460519292492426123615349631816130717654485191493320028591180153654045045841099345730428923151271268268720028428933795549142716959026939588931927565664328009742672026146645915593865551481728361182684935725683682356934683986539877545906569592258855786986296104110816965757723650674843863871223218800659158193634013553949924488308293522353867167585437382927752765114213902687198994016098032730777229935586193695868684547646100842042740102172568378332146102279054143480797665747062200058465681515264212517708864113760217898148141253985888320734567169195182376816342619620603997816571016532099480993998355638099566803732597997791642999364583615141725101031684793442040455720081229091766690276982722318597680999654299609384937442204123061080441603791810213627165152641529057247847948568667287897813856263911376872732108736403550350668907921652823900855956406423668713876519600009552737250729520672263507817864656405432507238395910186610450406895428999803446200988504745182618962278929658347339426274876231922615567771942396639589762644178055058669615982890988687857357462872457582130699024307353157255641475867123581806257943963954012829710127681896487514972314894449562407871613151351451531769455217890138765222731220696515909021249933813636925900067507742727782903306276272549879659022750321626074390090465497400079037162194616249642675347311674125196757339291150940728107185119259231170522562912600133423689308038408572031001965711104430806997122623582528469411622090747569375922179409647265563069348095697030874443497409777354027148095816336873697393559744414633768256901493500277346976175615981526432259885953123351389165973349774533905384985171925006280769133625953598680231595938875183312625048348226730543321462250326772590876921229587990380889458467462316790130888801186246757191511973023015833148177427198161394955124889814842169294495337328201326537057710439718492880763855240753585880045339274029617315351299806382441549612342665128745115709220947523663959907238165149834331417363120616885482834618642887592441097077986457150017580950727329629745793768539578820486279979694015025725839684112053096271817131313041499786756513467951174736462276316894426351230413881156420607463385352996000847178983208824430864903976698920688570787841158415926383697840546510458125093276362681728866831654764679281071690685678385197063355717305341497591784805811778698553739387154644848967019904769059375359120529546103940993741200796326435621454639513392922116059150106405283125346052305804730419874248309084767882493374618846642526085164790074425475392676731499935939645311600225354764442472690112617700261857226071674737604362531587365453030522138187275183167321044478788574633887170011000109377359191932883351494275975594425201020560190084601413921548737272022249148933559534058960991094949650111474559735128285648662117796876656951431051364765659407115573986990456140434258793861287399791014434062056353369281163851520064921626719673973629840305012148737400876127324256832036365117986133136990343250669248678856265954263582936180833898933006370352951008514099035416023993786676828094376542161961016460803363614845810747791041396566811750719155451882939860000904269253465829047085372211738806948259013321737376614222052716846184599148774958617153942523261649603556436644041506655304290010355236799730224212866178433583155280905531357399654767022249990204715772094470818062812116413290223512039920458648305344927836980047859464461518500037287836156176930470931612933926852071556450340522203540927445636407885795829697821478839572965733379620260508715311129764540495402631959058730964441639762358599057117710656122373185619042476699715495664400495474578624356083471765255208392637249990552614878474610993455590489570962867561060046084071362471044261550548665610062841904214071004806791798080354835661104816848940239376590409060845314398029206728171864739119306314917378810458620443227197524164443472015820689448518769695955088092548848316885708168143465200245755444550978157246965277387272610577654994855960105607738528401800503442981574120537579415512085438645879686751715303131154310123491785037020409359000003534155407746557873192620114944290389326846909725000064448944028830970824247025408988834870798444933313428389083340544279338116573006599332034465263296027509995132163743361872166946169457491350436377610721429154722760873394914403569142190521377175216584235682553144458409998766814038308218248572012041858714650567438665320024728101404916977158008426120972824855801938455391067252182278554678103968034818688572879849767084252506243208362504574490674080051774960109448235697689192693009300915990994639969799776948116587610253443506051733932561672038089405264602718494857058150544778442665096352632155561300378082127602008463932116150623321206352960419875938393823239912959382911913746171899913887348347428647919515995114481103797395905877170030117714563599403758054090868713158121982592554663558496212140716316954821710716987495855883759713983940096283702214380180657099989264364867976520850396978138605859415564053205815596687028848287828057680279022977122358765076464105769310422846622467228450895688808503316110106289279056770460787395268557901111405082204834990157839886951605288199048480794260073630332780118491780150235420557260467795328824033184010744852814527199733613782982427806179499006338549480840659310573214748377661491438091265481888726994373506474317979081388712840141449028640213325439091000167075796934284509267651682016005944836096385055853292116249933749485915774069224693086426204553288976912977346384534709619850671239283997508782775694049157444257440766487205931061426402371562168076991833276587081319262549956692674519539535926293754095361064418805656083151298046154896452408249952444358480377603385602373358312644539794231492753149916719777190663118963034935577969850822462788918567591091281620586482477233657414662633191690457869440404374408254595274505774850402407301942941906394890348850398936847884501309975521569042306542921759812961215947964741591411815736553864946587181768757267372780940096714200695053951517672042498335699054634830447377178648962373500495806271303235512395083504613776555662523064795928055527590684195585788811701761092014091868562028347234849075804151778990157169517384318530576202905270709979962532031926222189877877338797406402496178225204055430808465181281732313317305747918880198942931109692114030546843040408714440615464835051539519093418067626886842472424027252436348648342724449296968421097457147432274317238888263677931628512804791598810132635874464640941198742435592767133461773359347212340911745552011827500966177991980285152500786856558947122190125146250375656344594424737181425882240558643009636909460437531524915294014387645201969241284719219490203134575415456171614005581545757533492077927517627622087128975389570503496087468411668399737548611609252409313609930283338480935446816016327485342076318539853398212467497654501351121714019684905643120101647096539941574772483375746582572853583014143154641776599939620977839987047428310042686794241472115372344086003288456071544092575188948854865910641047900761904667938318306003767936460562639171552469336740335955956867026742742794422137306524167617864331814168964229796929347908158387191367023757519100643408597721591747309627498987536481633277182697054856057266950158734257445104266001105862659454443413847456138193670178125011116507879766023649797951540236979026371532182929966221382762284792580590673731367033182086517817407451407031717397287251660087892711658367291239266846223358502244188661674367558736689080427620572687250596677444950369331915461245228746664650687562383676732998119750567839340577695325702855293047056388915784556567423913102932960255287190191228892609819338532080618722500082229273807598588730010379311061789363756506397311588521951151357752509790422903576036634736038906766766358486473652102783205826392867463870980014351061210545491288675437299302809049955091615021322475631877881215793042047532945102754059424349909848134206728628796002959251108889427615167216873734354969722494562089781414601490653918104155528245653306417512322977391722165735368276490539579588298300190624977777004636937547141080955474577653023862350005744103466564180056219388121173557606874290405174860701650938015494035849987584677220546852324748402821519386349748989866349791444432007548089707318618873040487747277354888755827215750438170778908824207015475892997519458734243049018987230296310021928036382214923677044486615662527720430183366450712335199626346517942532817987858393775836051433789309528158768913378470643919549804618293627110214109556259802974453811775586841712718629260250642940161299332205636348063876260252067105939451164216350122980056918008798148599548654738918065370407643933780719144815936791119582168042406757916827459123563199904728799155052580037195210272065003871491502844512736946896713884709889748361509535919820117828791784159334439211309698256289115375100054443461512082933705147892559904428299278358535172823996782478098050015475550950253696257136153668274160888744590784541223888171222023545155963826027108788873620900197992005079884585237610763738710227494081438169192077914032965805666060741154307939953196898783785805407575820259598599763785655571762031234170204053063492141205625992585542021665888744735728646004722436483558462081117149005217650272917085508242207274016138846578559283736379751110550939302859104529115833812463784025330383278711967165698503145179571814160820031216709414014490320717887845619892993229261786021821957347863060300829685820408735653952954486112295743544644735655405522362626552339869482824278306782191601636463286629340918361374920617758956997573544373568729842914078794207143023222781696811701102541524860735984722445834814497053646779368172600887791386654897442114616381267126990259745893398569726471053815861414673770677988858897687271923671276551176365683573157103307491981833544920334690049902437811152435746002090914563272284976692149731488581023782820638486248207592258407337755622614143947342877306715465433997215356017158168063693778478326178411115618279558764198251523042288005319195770737844459444802300379133634677582171702837357216630171344042358694982425505472328765912341560779079834890132299157730897004179902267983030630274020059857857001608436605863143274196848936152113711070850544724195417134691249236648412225516029810061219620008691502686389751350231035883343780590537599807173254129012751347894817402205791467318677907278927567215528741740461930323690983743272514438788406409563043950235607251272258431301825678990628845581028172045724466920987828014873700745158405000069085197110604465963530899289010602996861726294709340969113412934360615379730253407916765886888796897911112363706812502403840098976363817325096584237123236391632179155970797268429880245568941279020214914656856649630520630072572726239301204422092728358936656217505658690834010429701289967241815143093244654480409459169385655263319287946286659545985125824715364475842384080801734592896898548756748317332926218197308614012277737447520420915433375088683384523551249638699535833267959976357509759574419568084220796132861842984204072703944496601956817948152411764573654933042952899261038088576397589496918206803875342848313795082974223105296586936095553436996530606515866796270048743322329523466021859403960361374109757217614436500895972856176037030538616042552475594525222074444188885306176845543807434043132486974056218072369420541830866024674318004437836105488040441993798234833460207521344153495522295130700337216569546849412788899302114003371222407772631440620031108835395775275921350825455278307423404278594643912583943803188463512957845411659186776800383906771200045803799067907477352160406014393740914658681065252640632465991654947647439966588311589671265285655803148667008146311379185331421334480594414360851431358375855092798432487700080361817540284516183727466993256782570092456627123213504976857568497431532331431781961276470590914396935291537487488900161157851433876569230636650802079277817822092321684291704909301151087138876916657233832371163782041218163555688897164613586742689863991941291407904486560084994718161485927735430665307088609002853308599221575342000324182096810975924699579247988870262090520993176177801666778676303338051252390815307959457034438936061827291265979777037851973593114346656388205010897889740787613712193589183453847640522004622955574410277134702635328775102391646040547135544224439324196847863161637703425941528913616119846022061328293257481298691073562532636077159601502892004326486146743866970873883313964136270195867231846595023754886149526202355464163638097627255745138695178324328723921507488006807282792415896575248243510998371939769977648747558350325824259632577712539632649299181109632375819054006462918495203483397809869180589692108657692114066182765882132517869731248058470568709445726946722886145128104372215084255002882987431167271694164514320611097807470237349157195184162858214518900520435088507829010020481763189163039640370645511564781562503181010633707068556325291241514846028716996207054680703834008914629537136256946804847860431157434046855266288210330980454288266859609623318810368904782119200108419288422843633714950737491894284471313939289903374079341708011336660392965985651080922535952815916575456997634869342593369525791010269779348398080903388452316239446306212372827199478806062436697971430309202074649369089883975340128467596199370911492684057208549493583955502329805890944671569081086341395867996553346270010986067175887839266111846744008164724688181727877923257866641348490330101776739617375553757191599201229121314138544099502701984612741156588565454498185697306975123794966246344606567156634200538380019608595142920473817519304240076996495243933441451698173064253006926286581005273521015253193882698363062027234087761169980288806911526338713606156720487913157330430412387115605038041155516215936989214636561029964422920487992040478124968024671473676733100955882404333601642520055709426473037713062379088103078918331143087661932816558766579565143907779480535141006705789221005185024110474060740908759614454677117068170622332831951055666145488363214220218596391178380412808952920253291870832861151323132748113164103563878864396480169529762480296665529171766120631262649073395887954238123187805761786291468573118168455606795207846072605965981680656715895171826491794254954586241650251321874198568729900589917084617820796412439237231360335047044752861430047278713005057870418760923430072885115615619139491322209238161997982187291697988697812029908099755351406629118786350168913730968915790450632569265246018012099652282660930280668442806431513543740369420657876533786350360588821049102833040056176940723444910912135281527668783763452259203184965381389231436235505899156215809114040626210178021985441511133846716852571347916111109792119223360632609462852099676696349380014643393961461456933519803790746058480662579117442472171063125599214190527868277507976108638884737489666501918423149196093750142700099196891577344662290189185045248793842989233131522985967204069414668996190452203511296029510725090779481738742272761404154745364757149800350241122923030425772197047215125153774178856225486274607749860148693857821123207675265700653563109270739170940353953238672942752078110306646983851504402346640048777194008438238688537776088239132187147309448672961448971002527863391288105034140940383792065037739604613880438311391671938544104884919273035538281979865861517308103116853165179987250249712298428339267236122601668140514850753870704058801728795291903343389434376719162444535929661766260211436174376151342416067870363696299422402114043542132569201917524695421841471114297017240575303587974722449161261133634978869595299801643357547216359796066255411506784226375590092665328995949992857564042531634543657230960018712393015035768336474466490689871211012460011194383502484809494103691760236584231399955329174298078373090173302254348990688800526846985326273578046834644514633644166414520257956196748395669124701588474421697106223845409116125591433829093479926730464678767767369870424850036533345833580288660044389071199425800843798355434067282841972273142949092810494772441424492636340360081248241746920103546885843541511020253998246229585007146181040469475389211467826884834187119188765319110491922356122625366942549176820381652607618173894706542087346892109698673494378697902684000608943989533130434108055764592589475594522048081216693910173378158831402139048113809432940838489469394553166256013089231483838653633353718659662587068256133316043477548786385205559406066984679701215695489276686696533247786188286648266700619610432778188540623936122131202190652553466069587328661076673753662747218450325835339705396546935983139489513349189704323590892368295434106769604602162448694892299862291073994707150642347577753231130606027307983509687292331064589281392165401408542633022288475346650342111576652516031444058657595353977251502274719122850239480613718782403382024850992904753454723785902157116856411518361383630764230879768080399944019941059914665398993727955486538766436644736648551581673224642150148341563667792485001243968426160562169454918808729240363620440823389033427817826807454607173088118280081174657047254706404472490583090042240004630680036305750353084587019920348574469466475292138557303660794789330324979240336443476780045255020166497149124867347393227124616920909098185452811298492755288539472341085273800624079820497732981070551979857216293661427300253392803817496998262015390442785672572254301867726885038090438683684449501939370381833779587961726703212771861894086210287970501889355723158099594708139322158171794180704510846616095558747938380465920607934970089453607530008237889779082812381421540192219421354718970991449457662305247410402454014647243120393392501933690301693638644979578818127408008164622386795327366306430545941601477514171226312510580742027211698973789981633380104910325339099604221344711148904545121754107037014089718278480986866172128634935933672331765021322907275475088459702095509532416837433276057149589989195636109984259977873194397294751876318769483650754546416010918490584986338991871982290374519234465885042228963317300081627849110841585390518940402299991806975630290084754401708732960199819976900151997430748333053249420395837390285716984072576781661296206489956145891502318364759195289848463140144740202901441796441416358975616706468612804025148949951522670070421538181072381434334967510330782754610064027655230970302769480944618760111439890376092824764711840207662105310427668298997443874880436036762091038890675196627951170332754229843476782269085530183376636792856804783753326862654711115772095256762013746633265100004947215296241037407323900048919293859384857020638159284062047753697045218300399289584395866531403998341375259855173051331851527576496661585526992707219380063651024538589198542105367231449499103052151630568964496761617825511803863992925043167870211193299713428869662848773176245314838452183260579769425119275026097289423543461674502361779813511260737219995111624118115678832451474844879461364756271007198554873681852660050909804162444281548436136465556727896792840432833510166771847488672571036931529853076477275783799525984506847376550523740084612802591111824830538122804084236192896013991513904745290094372700248756069602788149715741706134138021963963774633878910861988732783532348065966279545094897518339621577048738802933935676732250194445925951251569562502587252616480584414275467081573927298123885626574632871975173763566119189949534367273868501035100311772293992028172947306903219988230281163604113622947324964578873148329607359662288078000930699692165529002204997181033782873332378337827665442360195965821808456478981798043299196885206630416599398606709722051944842619196304414005035411502512857843987044559303125528150157427977695115498067984369545527131860736581375339026761013689385367261465895083374779643282745219475927493846084443925612505495002799374071553785655831124294563023119037551072673425646444056152125412695138111614973134074769171344624695609017287915082396854924281012084962461976363305694280539684598425394703464556729861927380882701356477776694738974355546462320178425476264422790535870607020761976874186518542080890983879779547202775624294582067379517149476700579606675184736300729105709359200272199799985610332208535303232014940849736169356001434831444092888009510922067701324740491953826623378587339845330509131471118059527787734572160088585634217834648715264492705595260089328034667337403087993952724126545222407763649347288812964863999800392658461992133413506162462575963135091404761807176807314902101622379103819515064881858762149578336715485033048339801024931683939317834747947194355313659368657997250059849744365989221798664132212063329671027282196033230334115959012676827170591181931282690859930878826893889366541694474183129266647638017276112442211705296360554977524907358812184359173994724057912121449328380223171973339714836502291851516233388760557464261542250616322269199438615877381312372331811958998261170683787637795824563880260137520315197520767625194928140883207513511213487723638803957707047247892811075445566253196562514257086849424400674272115579038319984224847980079188741952180496142221013546578216030420003477678356356159605695928716283440742058850325157614278510045802445996037177364746053420126594413999533785012379259072245092404210393129699412582595892113719784537195907688165899064939820893078227624751991934041745206982577737282252949595954040331102207625652451014087155222843133272834014421230297999343685111315717457058030454123336705335904752246851153984242643664641851500439141368437672197304759313614589446731474217170471249724729648972838221846735230907551287288128778513070549505639824096341579450324334714051337422202373911481543076844843877306355300179190117313337057484615415725739029548216324942820964320624043770445960850690885275518002475977878251246916298513156939044197193865033655245024973324924466860339023782428156240643637785590531556751642683650263717306864365317617939657812757898496025136303196632434070483723724922689602749860132644825025451155009786609551154463509536185302488795315203982696609596496658432477112746190427175326439960559966891345143252924248018025945939316649031419673703540861126530957283955116384383706248685768807643463553189672764455328389836191645729855030988405068810502404883795502888852088292148611613218141447545075957792255657544743108721657865516937422030601608737646895190800334156743314294224933558868520672014844816674613890961493050868653899535596885236949590691888185775510057873339398069898433027852288376198781824270925600693709876339678350592013915825389437654745964775510742258513422861011671891955190367169187930471289682200280265450731238105391013987550940364025641695976978062013229784464796993229630043215248256605508881589474771562142319899342857036369332634609067862805366028582723067678301782493514221289405845821314918188238254367414382502699327808930612721135350630907734495923526395671353661587128696218642841366786403629357187686569438943532466562472486658364828533146244851644229294511712667957635199085319058873292607407204442522428937928402032694980672645573248357088754324498258561661255557827305622899998340356358566365585460856246108951404502344199987660634609026163883569901013163005096271113054171993128954835080786359923720542052155832160477577688914446418622333999637617453753574371612366707267500757779844185747148219353576431791724493177293408451555260728375725561112520122425375956577813003613320840972934964025571316095384951390354654618903555223744733966993976231999231890755578411180245332336856720067820273298408705643858257075676735716542029499180354537793924151571096930158424709621037592355785192803821897392896076042809684154901726404351242984038977553725352233987548105543556579323705383011604566729971013442019182139561033251689847954666473590563561977699819427059376077690296352748746743866035555095411778689046957326620630037373749511755609624415373494444832364354182754430852844851448039894663754759914189375563553047131776336628688042918156744212147692713554486150533588421083715661349668690690297497388666384526577585996895499695754551503389678874023880019822851577318356998930420176138251433340840775894637998200436613392017065872550227271652594144581882532164629174019849464272500440359583971317536393655765733780086892012540331802806724036068897401595259508630313332383231769701728343705298792333599259671540978475156268294581111071539089145614000210202025771729509706432067342892496235709076128699003250248602529963285137143632814520409678024150082944819679146153961740302450968002196039491084564310811670437172164554454990550360811557530033274683641709346799136315306164517268193135788323449726380099455808228021384293862482539501112310151256738299899992469915908443190466257498036527079557140534277047506735315777359540793181492185730008057674042094953646812902558674611850720731214281389496227767671457633244580720895658620848324831701063500584481454540739071585215190949009370936459789869991762912810143449327239002415389402950716281191431578707711913432777637839619039171424410851655917770569671369266192313011421372293075462576597353528452096101464573597706546532894788433153780289911778738508892006689828223928090677372485777511584638552065523445830472309522146147823967543009711801783337483032433543950496698009027113491500778290246689101597379791204296242569243934372263377092786876489721544575199004191971298997763633776087866100276584536549255116725457804756627752069968696457825583687686876542446751378604697478001955768874403080078017388986385695372800600084436750506207757175233686661655418377452442703858844224928228593859821656306117947662519813023242966471570566577244462917238875183582552828102089834824406308497819979614128941573310113566941925135434552508424715283570931533358860002719792829320601944205132107902476732690005363128621398649717728296404295228021094720576565657284435411480376797268056128862581777399348260508057558036538105794639483620978660932007241087226390236496715543316434018337616006316659116645117693433909475627711257666418637180405174619023609462015641048866189051426116225659931593955920969398928161311262801953465975088477702989615150406948430715850704351888968034767024654927334493777492850050497601935569147823787911040370167664772122952086911407731564950106869248379289897442443275803804785285044552527621062201129000291187288145749672026426219774783730497046633602329228877123681291446221570150142468153518849783773581604005254676422477978712288009495874221698331992913009874459884519857678013376487288105543320594022067024233622134456902466786272864748894739351080342910976673750318682874298618179373912550932347416962125404723144027902913701032115241464393430904321175492718422639355588492083460439974010295850942072569418381795794228154636418230292772197617447991128250063410114172162058133755742477731002705943870990967410097199606142409991702161486257229190174961769621116010516740741402309185401660591507734909112820087534571748016129004949720195186263460271481931349325971138467217953032236598065409996383643397403979473455373874035797574375270767842398814309080521811166881384521752204764915682974814661657427236307606362141837601951840584530990561235360703607562484720796901695731743139081476737982546478505401823290829329799100083069539935448871223682884393942797404087831408607764884981397438151441275117445786565255535074561645977008322893301929819208616720041862264172488004469724502133296042633658079660822717310459269168512613651775530348164103953491589226231062397915785589304982234722694456510830862080674837588608602314641324523261388987362029979212000428106677626955556718386479449660553194843806019659325040955756200374927240518738379843518260755909139955159461526411985143093897175965893808561797545768433863919756466180817762509193923258938661628764003578668353358445747895932908162217085684420516553393407561219485656383809257094292668078807758354557084565381938078643594714660631935094995799052933580495151108262627434789962508611711431952552541785590792761725268039984469068114815492869791086592201864288266239655481450197184594054037877711346593702215617293812189593883814710366027062665639129156148529923340513511101210644003013560352156256087368170276706658273990308733731203767018866831757747337385949063535665322945855610697443259800078520794507845803762690186620796606014662414154283257815280046295316980993968779710290716300958636281217165241633575533660582479475844499802100880370677321283985474565756545871589329782111396569159686675840864127412752420765186296114773099354583959076119912796593861272217076376346250226765752137018790542563182028997956255825185376165580235060698270328328355281359628041796962662970588367268838483731187656425800167433679891904480120609306285958088785594157875341613622504152166739174995703654322111701686403704113793956485845219541579507761330438277364679067802883199008028221126149466333780964347662160066562523786071495277384384016550354647765195756903360068909949460839564210051587900571638847609276492460127212320964612895533925231992792741731775894943741721773383591949884670940172971237648889597480575159149079252613446691088334452410818127930869056643982906954927857229032174404937772481286825668536068267743350839947997810839765773191384738644756253828057158896818486331559196249400427804949870260129832232806906978827138993409353188633076805399901462581518250772009226576632989622208658329481306007713963455622255476372218162481209756544573873775575016180301913985711687112454586630312452738698545746288910621749914880157236507645462791601338220615696529102787102771298475435474114090060527031576573228940618208534657890409996803484247693226276391992608487445888999789817977315842279112097072320615489529061058961433839854066155528929772053622345169507979886251570752125418270605847828304706785475371341864503522633056017544997609831072073619004150873353710875287288009576574358382724666163231809773187995636974882689342861865292796219985767842823322339361322178016866889088513988116114160430343105683179390960555495292421578216581361290079782537133243935928800763697892379172262890912988665893843005986802876821568112545100723599837735035660234044104951769853249795506588867989717750109839747106768089235823963120023079413316323083512726629453173655537719030716328913913768662618452409445694628457796063384814850276500071418981455373867700368673857736235027521515936090617503815822635828994203251338988026713143548420615775586110996346999841154349215952364002710677212773255499449620241093992778221743309747779072557981997152137374426455008520161786380688616218767123619353808079209215655300556495416253792725299153573295925039882532911597623305120504135920242579801293324426600007346736973114275433998146383117777855152355170457168733862874805132021167919188415669654316352354073456482310605048052346280268707049664151888412075378190507665857017898012993075305370220316789574534095412389274704724875202844319625941780254156401525790774403283477964301275523287982357584078015487271890800880828420166123444519178202679058790448803321966305374910861044448415309761734991142391546523340757136853246058812567557047244821430001914645385319328123723283406384999685934619798327605195792081692745776243091340433283670629294436191602274972877129448298162306116858214046678704556322903192119999815461393639956979844671532960138753851953833246939034333833971563604271392706038614061640207888821552741611874287690139081122142042304996908432793502095043099423514739916269931538330188096481255215575102202107447863332485776907776448448925766623954267457385959636603483885916784541655485643304420438977056077942272437861920517859998284550923936966763510470679987923084174412160619574796528392348592869869782389125050454880326073200723408190221539058689857364792237424055965181610899428946512412861571856723653256680998523337329908592881710475771529883603326906012879251448074394314882352161336600099946800620478067933944432188198397834721144830082579335770918965880850377016300509051917003422646264170926693104751061842730956149818854441673710278089694593661607638428448526348628242736904927037182251186834501775726360891053529917271189027535900759007230645271544610428505722968044930673153767103929539959473908888331316641688263707262463230277452642909242070090243470699249836183011633849402210562938428414431443988613203685820719281528737401898420534934656134077112832115688305093722305198628232638451657120820671823274476562669804204798390540650700057305714345622663592658019342600229063987590035871485213048058524618186869436557578791286823580344272136208053927289533096325533260938776500535281245203337754926072406309640216985190261884979343522410397317406230358000986923938426500081923339604094175580205420639404099178570908704910765056307452603806729174475940769938323849188935522033845997421024148044006802507656766487021163248812779385522238481971113842826300906379172177098826829625020242576577869486461079625051868352345364894322287390042261086312605241288022527696833590586502755330012665744153368884166373446791716712565343706326764908508172706612358568773188899811303843194455175187425157186476554514902402698374214344481918715577529455893294433092035849923710607352200579952831425639335639709055878075032235145340466002032105395184747910116176726052596491877676785996046080078778933497098462769404544610048972652553776454543743547839667576392311226799694830237935120366696346782943291578401261654110548017834881169239466198859912847809496842961576839482680510668211939401628360581696546043482762140648047289532835533960544541330048905479119924231080243317613221502886212555979120229133779798825663966617293152251699016974289130401188557041886583449532895561906675570523999892122201780909265731415911727331116725963951206484834305756087303303859058475342495958345955829486734818136101889661787326958746536371856235822827530019487734649034434169675086434634018063006198673383786457659601778244836101061886839954050769171660663311187618557280550681502442271800519796101698109327004458233000726927386942170710266142971266829671425489840552819028593564552466126724484706802187355080665757572153754584077802987502509617557551071773497507619318704759841718607827412011645616410548992561015448348143035905426873766861717815887071154476477427108995414129953983939504137460890520357220256770061496499823073404779494392928085463580696293273834224681021648426018693570920074770711670691786744997545976032824639992230638503703996543183821576244657946529459844895721469222585823449415831227535466580231922433667874956273578338248113260607373673323594038724171024691618425865874456266558464375222179305260776532563065245232613593145180888302190327395820684286275163319710992996018012802299480133926125724473230719783821658729205784808467671785935588013408158092929454292706978868952548180721120412139127557172214465444488497158866084179925948195466704247637993873577577414906048084216737908856213273834697923159454188700455594846650557925064615307398722707502484556234236594611508738406422035782743618419954919675807347375883228200242289044284159474432768062285544918165630206129942191727213501228963697079568313499851051941893365790748951267243403015592602821168490992986202666809608191670614257263423486511318087548300500947134984884878260197117538644340739744425407654724181759890293090905757728657018075433568383065694273345678196114831892224489579557219989087657919901617681841451468175284999544111085871863159530614966969449306670168819105064949021418386993346731140302382262689205731942331349951927628233410807545185896045500263918530042460340024106070735896974441926222794731518277434959944952862034013117435806669627664828546587715070193860864797739049932239339533836714628993704945295624724728634260826027275089812713469228892560777181596423223178407142976761062902044079355809597343986637137493927788790829051369351879015930283565307428874088395779478692098785091217462374087648426277681118412628852126652619122245036962343523058337631505924448556605146731333888237755488265252789142999819332699678203676247984365830754375492734136763212282780112677202394473594369924449822664382472975896890211440989870421235346858861610964480309643809182761360259269643109013400156082658244904038477519627462278636442825566714375013459817568460084064975351926779298150269291132887391315361343286888009405249568426823166874711387378664935388634550836345637627482219017541362965308447859453267906483448858013145707806873023175817648984988781781101161488518116753060517258640094085794554834256341650170152476851314318669115898801331984233276388242018192247004386980621537685851957822174798108597293997474964684213550300713252277317104153573685581487518695844656709719568567425786922252473802551641542294948016339816156115051329495109738124611030867633461435701669431181369462996572094170143093450391153477825153085272072803388923769175437251025493335792288718587569904369722473672880664191279406213356441956222814619937493937322354224330444036505598933940525076819877230410534935726119919815241427364821301679078539291799153474247207948729771490547407743487625629048336260968508449710691530999206496941213801235830965252522754977576386989586366544494267556144828030410870231378624558416454173774507402820673378158985378778134099876964093327768920804056776482391386090707515099975474289682507941888603052575221959255366333968424011110166680823082002198190517405459747430486518349637989215256323612069077189584203168931696321961003740509190548109105866111528829626321345674286500410131202762538227647916567300507898667199720152368621090768920223438476443023186847147029645175651227256893675527329060759208565298235021042791185237636698042464454287413014258557272985593733237431540792716157123263702316980089655211592760856397480853726389640394334429213056386273056627752324870269359649266204905800789521517172003282363624605289958813740487215416361758456813385926183342318032019426887654099253373088111935741139017056567786932923008020271528613146351181810501307786450947851385411670689929545704640638901200929138299877157959956902529836236499446463398508682548070909500474392744490857108902465066699772705189456441458740716528567774706169854835494939328369936764277337340976677358507818671084144052804330653409133511720343015414540479818590974383693110439458374513230528073193631154758208013784541568914901201662753334344860370645155521110459576110836868039744584397171108556025922099757965379460801208703665258100798266298823467078338818313204577363493632539911040953941267673956442817923757537981365441374474762452551693468777058582798681158467123439431621007609721174534597037234340328114348611219231276550177031887982450130427956972196492079908542075122192850762822946605327968546893652847046218768694506251510972325732861461952651553312171952170778839829420920858117924136705978079682026319060017179827529416485532257923307355164229718338604108850343407357299697766842573197458338386704319136441690786619321917467148906931910827481599326435322622943079607926965976980976117678617010581443589343062401532982267224976723845826991067535589849890544038661101424118413615516948954765246972414412427766803625963565071418715039023842986060607903466513965911156651635009758053200392961966669449317766836014657053713772626023148466743422502811789509512700608493273290913693844877484610096173231888987130238560052679047691488041773995654095434559957558723878527332300072366506879024394483007884836392684858679823336552819652392483267216293942463826813329445467857887969897026561619330438246702660582539636075022695344490957514056670039279868140536980324116106983392800419900746674828964842606545193983150106858144251994384672546743181447322769571946097542247802748704516089314714587115773504477296129314786635009790205295703439812714551688012048738340101671775213325582164496682198793072419219487289996848051949475178251141611299793673349893184578719659311017825828474921964873208474553755850843268135355694982838335697612437202960181409511197767122501688427206596690900854980799444195557538990949280870018953080482209110905804552436628222189250700274682620638807654850470386197561238243101252821538573982210892229861211018940253599444631630052217008389631298875396970877290549251480076191153973980237878446693275622403278249085411768381539294830262993787603519045566141786377309540548461297824312855792838230136326855127014047097317149567076307819945543833191423497181794545107588738345690163855162772380274432422315835548077785174537176236707551205479748754343768105370146503877215127738485651847176595855752586034318120224056086407122515705912874621419882684661234018694114338314163577476048208388425734948255518765272423774016455017014600879189607710770004890638147669885063245135888409864358090505837682429845258174376307559342384569303453744594401681010291215096309455187431091233941521642395160883098564484143218015422327979538370257520617426871290320983927650980811050290233163040469577050217277147237102439000975069552919830695642964286483310048153652253123077134007961555614786715733767846405459237010792897000158570464150723866830113716163060114313772341550428146193992637173853542872437847752016614748068381299324074355302672887255204996582671447520287911286582998843734053654441983002263495010721814559836298620975548388277420830601833865843509908368400892935218065905865558248703736954961061082558288389441660224486522758347610310818956053106183380215879124317140208273473719414815466013443052772244603337341843149999891265655007466228957600789579226337329863643503824207834039883678965429279124879001012533652693959737871422701947627138443309648404610832718541523730091048613541015652260627801761180592915374244692302924529783694030755731787510121202025430118158621859989924510537200500460983815121704203426205608714851937469698586283446848816353249957676486990963064400325459662065687808112144139488375375402312462452797814318250079648976479047983391187704732409098933251798189544802901161579420292138342990448737463197800143296669605720242946001367164009148288245427603351111940348819065306731572012775641601202766144604930186235214442107284331916581528690748549465612245873959890602058081823946286063523210028554399433429610307695435715533675706741216353407576541960009867418900415870326811314851262782657476653019770372330773914712895712026925411302948334178075498201802766347687530417889272603663797415597055732274333353969326688865727269055987468234111062562485049317597039191460336958712461698113216330632690110916644413497513533885782883841044529601197614021499551066200289740550237697479268391153856619187698486440627855361424761641165757828532836461351766272503364846203079111171500177019111302542777327880951636767919546427087072223740673761745794607662659656984543690143039251154873253058376481834823741567492132055399324407729192121592712347612948723471122353383110764220057418572770219709387360465699636158787624061978949420029599186473978030292983227082781350307195438752462985463429916008924534840322032937411041112035710651879949119342293602047207375931117014229105158956598757874936201353317572495216055307884111843325528572235144178116466071398642353020621274374824339112395849321390842332328453709871756487877600396052194378267838819487214534656926557592358130098211190565369674631644163926046630622838323303403362417436856012308532280010703822275545602983464681043678113698395714303052110248898989433935627048484319981739459673765529990089676120585989397212734928361809594912432129349477380765762616948339758800428318516768239977487850009872299619737796664631482031513893276551206011247293569178379135807299315841491923563299260649643059121771087001615920395374065628840090142749061998853440779232626929272759554196112397258713569140706155572714588292158432059809653483061987700849755367752247536895942381531499149799249857123771883039301396789116626861608062075519331926472190577862424101189849880813914397640083851357925745717590395363168150242055485515968661507257994470711100190371160527688324559965188238484715360294762139676221952502867722859043947558859183309927385593643384267677130532200368253734464632267779187101992195751453954174598265534112262837933310972630553780405291164477437467698264542631510433962284417026372305138391704622258484412730597208442219295086438084528716915335438526530203094413725018306801637884016136486008270809457641421749471683499049238457828200916523087491357185420509936660651082875828048428075068473497704087321005764604110034070456466727360453974750082444648168745561500571616610902751883621485045442221148675146647366771948482102966172044739660896344212383289452140341876240784116265511438672186787795727547559546983581632430574949983676473504534862855513046131931693497200721861269095842874057284854625610479462546602263234341841647200354206005986033560019968730229109264752385325845591425962041352958809101455796827248188055747516294599616221427610954064571983325804775890429285728410771025490219924845475524635564166352512217797573823336520516891052631849367210801446393670795210371123966490242862830474012270735121315856081004553685703992981171376782748879387375203966399960697967488324069476207823085007475348801807436617556459240743172525994810360197695485588465414592599302508597380430295234218775985822789152451410556857252114866933124864251207820194870930526140574769306955756287321738697191037486179754975217277533445386117506163770406192827746977328229278401763805265406852577931733368120290059545504187130860111800673729862158496556652005179612563374199364131289399317395684044014712915773545786892672820037097162869579992106562112504959993213393929358363119364579376279707982890742525881531792488693805746087042022297962415157768978081151466007758354111485442579805553360081253886081590990432577607356590047079112152353133136073596254676153048170040266490516287733245926375404034065669665328341823399765824326643127613039340910641600226576349605267315361280633974279997038598130006853383275216345266783049292792184544762720631221685810923310543466176586221165385265002938438821982468521942688175417250296255650231847587680600982352120651702547052914389943440525564553378162036414067399975861943100070385889867058633870909459292102387753371355722880691688903253000278959897168903740164259824240414423479291734440971412095420404336022951604202494877662222466334411119490068552943403794450057157364674906117396915521851228621802789055028392177036376173297544451741304255270317088484696867616282629964808124886522254474006264346060026747923284853603229581330716683269644992933688774884379727305444197013939510216733959859808605538788702139013935091119429635256267959379612759378922202563909840742927826643921223376566423796373766786669945757373986107832057089215915650636605380195761978359288020673952413945750368380513849360285631886712182078203904518621146455951785741419318111575309902959200689393708551206212070907192786399096302666899914776137236997805672401531140603602147116120387386169032217913750073847548427318655643134402335425003957707352330581809819463077559644882632608274281766485465958161576125940783490729980524436013114923755584132409397129225990250210760887552314322202009973862592384762774911299086406843517405304744496361657720606320584460167679540575672536099200698617348159339595117074759319334810345097224227847913701927254946171822100138463879428322515950858399527237342857110016755300132882760989492224783654150930056498552420174420034274703382658276977595996981695144771341011531062174172593068746092496298079225170100135749548340365937401387368945907349134619362760230506139661757077081742349738454661483512377240776580073844171791360083694533456408359127144525506494803137670979385456638124427189799353319323925329224683633070228372522643926130792331055294353465507610354208279384643770909702785497367658754516052874429933827136780202333574682317291569239787464432168602878032852028428759634624423685582208617653954411989111050395451880408473768527208339586590681706572705019394686086250002726729874965647222760249073852831819434394945876603757691895991307688611300784749580868417703199702702843138982538007550217194894165287503052102593433115654991898489985377495334481681640348960819831875353775890536406963819478065288171530006378591197090474126583700406146127464805999752240989532357282360007393254571970916576351512831687352329258731624143109601849096718351659352752284396978704523961197355612490819696982616239031115678382420761108532507576439703919778982626358935664026602016886559822221386270613939586762655711840709089709376447623253256355130431937865443445223637012326976818331950987673653777778063717914590068050506672587124556958260233086885200028756460856247997801786648138725636538504845040444220617195479983498788255899696486174865743211175821221273257956280622946216603585688242005396882849907609286275268071616027721115460502856146124663831424164844535822533242975918485193327813574209859275843722257702520033753698601043707145359482865099402270636922516347497382468929689783009470646989059695340925046229503493899271427305953714139735776391515616554991530767462747759527760679020215507240261180893251610209192644820017565439391408082116392719797378174662644547952173331204591124166735017235625006432055121769358611954121781701997760003017920607938709405365495511447879284417358819246967861193060115893196536350486648017364470378554973179009093817701585566746903454200791242628788368325114334453596557666237923122831916062403107595870341708194067749125201746784880536952984151410815440547406824906808500212231723469547389563845164245667034433614573193080222212024140604427711346665940231274166952173694478198568830074618646576001184458142917261721068670378852112617633628498776363197654752203693241791189389562366245896212110461834595802099679539449738733795935251986063629299467220391156618760684456974433147315696171922669632062973470967311570109365901784544956787708463896851997455223940878281792198191052950272595293207679728259278341699845548699519168051752791237910666367052425051811579731979328767195761284186142779065062007578615955986130759473895764247580728880767756902213320412304182664737540045747574998256262027291481543150007930337987323680058854199514817247987201923014570560317055165044795300247687164674113238175795131630269860409997967106587037411823955545566623591936246104057133356185025056406070496410207667880479311268845408406309856202726924215301871644369031169808808826947021824208264367649702805543646277429063607479774344087654906111202299394007376210623076638507680637692596126876311720962655416575897099902325019459021637523377290157749778348010134955073900404256620378017870464418282849743846061156842157916267990002666182977456706773781830930410448998739150062166559714808973569691758522623178845973556360178483120824815951606848985648202653174743480733982098444582596997439924442576831167608962646639504927222046055836711029501929843232582282800740123106205256020829766163339432107427069163750362973874334003172990493098054417761949085656752334048996965027965448635130792672239931370890012079485679285068009437555786449095579410736073718480087971315901639215714682974557525280309420417135907597310524807396361799319482153271411123738846254518183698747108806116334063876506100973751968937438688375308364266603584142266332481223315484315193417386786292134017910059693487595660196553540542222419985279357034131698463521182017479227109241511416730758756487789601320240210312876170432011729754302135490962943655571655853122703583797160506797727954881083330027156728764030939780150173266017296519140292151305935849997169767460987960598876507466279546069963757000516738811299165929466150054373220948755631576414499730796371448816593119889997423612995812544538303989464250390904841929473988105218870440735350992274768085695254045656750981508829443214397774415787518495980503932542101310391340338109806767188648498329769612342731084113358625712369681752584956473160412189276760809564217640141056311644682839975832364706114684545175564048066658617129354067314128491026461062455290512397110005903932363485220395596147238281442855324972783075256868868712632461036850207466594459626855895830609015206585858524396740508991811800421420360977737938253581399637141029199284323210097967148388273232503630695312877452590953382970083608650904047794545402000107621560296418767259289795087401875126070688406209297829345444441324452303403198882907489351354686634531203902903942719914853808601540069949246516526104640651621486729392159636192248870075005255524052590531855296290132417059995062800182255420085566092628079667320259588425121962827419133440224370518104563789826676193759770938562822725761291335961424167538439407697212134488787012502473861904705746593696536844203792063784486363110766189057206483085813859172074109005319637666043257776614421078515540668113052901535501269096484404471307931579078396683389661671845344177972358595827099472727933719593182059785633827515790406241206351935393319586748380491060037842341126317456960837858131716831129575373557132951853210669467271118989141616767425109346952594711396783326386858951785831452714501532193342742439663216644367188287994098387469581592299997580166883487893778925868575386010229509118879955949145194188374845480495639794669665582384658764760685217194199957900166859998722373550020823509460780887517996659688182617259045669296421727009505587721764400125681119672449256543280524625852490498763785157779173733467702559208217856684676121011407363681883879152640781471194396468855438418075395299454677502421291992181426710744979965889940366513063479773540295447870707048439016215005116403623173347427832578813748654509685678391495224112769283201476960467534913860653521322553411443062310171664541614967389741542711795923122375063436270223662020841341724114075227384804430619969967472377691281062005819906418492774890792067287522762128748738164293696326534301000227291307787568410558622133898286653092304270205547068107414871394179219947361251556147827786625246643625082074192441402175891777607198719630603663689363089101454530496711793278002436355417006794103757523958820064976556249048034044139623418202734014418589765706806352389767305431407818579861372582590201271296048462593826958839595386130732165252095109016456966776461199519438110992102428095203492557550241548694352786827285310576964439929911708856238933270689365466591829065299961550741037771843862550750567481872653029198157073882164285690286537621458027853777646766240996232488355134328036369640367448001332712559491376322065716261315608744530040666828202498556859603246032241646799928372113555942468876373485965214295482131072341017532936046068894439966780949907179446952018444735159029460496093084121631076730079124589553424095671742382719378707938657414947792888586893617669545150664964603665703541613516300817257345027077673886870289435384229129105438384435770613938396541315815180957854169707434295214361535807837239920149864306939906459307454731504874063832096705471280094972843505034278759289953389639343454586139787194732100061163030543176552124034109732232110418090013986881984483585819971366645524587389340511198745911063598371504207779789385214890910588355142340206134251155070069990577863690413971776392542448455299969072384574864856166668162249545095468404812689231609896214389393511660379540228684660500759932532737136290014755366852647531760330488211878625580806205109437978385743448369821622270937301278816791081697468982155914026654727481017241956447380652882140918469462013553344469355970614485365482397299521584279771387220431593824166804316653834255603713464801712916122079090591415761584938568624336239131287702386712596699871347054637431407592086205648466499680394629502453279523101000487905046123985134198120612737270913334538924675249334082653581931388106460375639305854166926922632179618703486343961051198977769631272885072055479412047211643340624900117690442569773079207733317787042372755874205363268589396003000230752271940751517644235631484717814075148509553420837412631329748027228037320270058503005153520979832034456237755775654427991093845094840303444489650684455043649126190497748920218902196929589965446688891932712591244725517785805968445446710627725755567663070580647130803635331009733375506151962296657584216744051948224503584130269783073267459358029712062316465036993697221313460445495204782599424469614016429062613650010934975792357472423396836667169091089730000832908906596657522666366739942392846910023238997999996417157269255830814398178175670852923712805490429774673808169272597759625389441217945354690767117537492115153193663145600591617510198183239122439828651195599595011160070571797761364486094227864798634524077071080256440545301526470358817079916735839894818540337291039900239099558456234754338010959600388993762829371425250531567559571554822103950652140295498438163395645602053452966031438860854960806019067630530389559346635144233709100221777700728943557696008949146155030103565127866645241790926559048590485800755118643103918578666919829516826269978933895773627531997736045646934583311964983446146433860996246810635842686056803336870252931036676723406121178763063518988588266409799927588089202361767887996196640278720438648220377508974777010318929484266042198041844543073631768715384138708312426896852939615558439704951729410433522545999599874174247259464847460448818684238459764022142045906653349655087614940641804908036161779142204584507360011366580219290514707236122250097547542650225795699772854271509470685390174789834272214169223728673302513326967737908774942463820478992356319647882747043483659197827958717592582092416789633189433248066980293664026974719468322190965509910924456113035249882152140703682279765381697297406220749828637480974616630294014818146790941305546278852965665547693609075958793922368312450895989949309782969326302444340005032112629748376385158524034716786438887554321972868835351774772015348934890561422716813288154193700658796395045130126435465461591009169052595865369786333688024310563333072722485358432155796424850990397297148563703692571399840481977291672460501710698105755078948137436673805402226380451817659309877346497773381779038885981895810111767828801336700928323791274260958704699818629578006880717644232595968105974356035356321847900272889037048899371104215972992199106704396700040393679735065661227854255251452861389028054522562544612475665601823887666220407984831607556083664745152148850816437973977230630405418633301627024255987842408254053134495755593630833474871353287407608073125135953246347424515507993942299019341107181493029711364546892659875325774018183930856567240518798630354113136842814057992514890666865366999628044633352008681340342525144091518686749763479462138424525180674027228584646558684209380809665950309256493541449625140952639810657095077293668880294797695448051880442696366795064144754107697867180748345400378488534249543736162807588416489853016215364319314055372791010218726891090688311418493889641831010246231163071790365355597254275222897864103462494460307024383249384510280049160563739611996216229537033719179736746645705906781309206735896817206459134052003491849982157287308727531448252379837998001563136767470638388594224273701177747223274036559142438528617131630370788237427309718354133421092118398246901656266610337061693065020935638613690458345017218890129261546260062634685394123260159546016973780385803149085274969170862666242904323899192603888379790552647667462282164054136887322844507135607337366880833020771143100452053377549881036670734932339894155770005499397231965415938394145583880673963823794737081751503000188542469777289723147994254132274646165586288632376189415337666033166518591314019162108224091712960444880395804088718472968641656853151351088684688600037877400192499853828212326490449682853943550976872283291598608904250547205132684148997892856632766691670002168727786991765829088397905627111525882532195483155001833978984312632003296704473063362376197876154374911283663804479029289217553731005192916032646251895440053072958144373885976323602205598560578717284907432876583188091559680638730788614868069631820554301745221108614874502489771304585059945153716508163919100164894721316795909984562538019309254843182983833729910051750516037937636461947371222013092651796988250891788396954530196325913290283334853576700285247850473350429953539677896310834611945853402829368593332895681074963013380356607359359648121005681390331257923035708961745044072611887516689508316288694733572350353330413032923099401683798325197587420384973245029938409084697596106517690516713037083960200926690462124133837600197900309229934008039137295142117043767490087090255884944946044200272107129156006595567269834811314095941608781755700979835922776160460021638375802145423487864141079849112488108801557389559336024346333491048948322373520659112573051280086640269211670591994111790993288018536205214862632297408708203003047732804550058455543825998909007695457941228344206027013214821397891591069204970197557979730452231773252637148458080586258190065690663806948315773438066656358064893739224040716621220886399673394093559835873574993916029772354666763939913544669520517939147915417355963889869893418144455051109092107623402079385030843834157618969202959504192562836166159233710509467123584014416199319063144493735628226443982332526173772759195598541276275106451726815174381651731420612616611446925450993892119516511961029039318298784620162716500231918355023311374737007795782754523347521855863430472921923405944035478988813294522250445817753823861947252454961139271430442847230465693917882042432687301810068643804311017574165443333498982618154717046480171513270772500703234907863377761296596198893443231669189699428897863603722100234916715269778602241821933015493468591871327525360325729011267596106689644102173570851371401783491142657398533133301739175894257763974610679147230253763543014903321515179252164988177686844079447783726591105069013536510259890928984487240779726062663448364939744436404535296746638706255026181365054417511317191074376015070712097409363954260407371416825031412554209977145563884070013424075016792497812604720398489014330569209210088759850649568508844670059517867636081178870512370776924954886965183622493065397710991801204545870427127895913704623466601284336848674593035372139528947421211910327474763408313657292603952181637982227932175573153638540506937389595801956914715212726118155878810379301758197804432366137111604508023384706205354997438632359341370084735721507055174556886513254967149770556097588587780942557061769946254328071552208789509001218535568711113442743319738483016914797634347880487770126761372070708033966568029003079908534287628071992894291932770315869708682985787223473526932752493141484407174610142826953960394651225463906205918919844615646653961295825701075950158824439365241112596596404997406651984384123746163737684067582861063537384289969908931543317412106364847042113187090341033138539053651267508327901576068713061342225093567600539685182072069423009610085147038292646528951651588493265094860631168489780659904922561801619684210676746934708073101102229225689766987283266565145526253973003727536912360296395092243454552830738474940879745723670763601092218239060597927548901298797259684049797130307846594710207425863824546444895854525133741255979646599595553169724882597324694097500185521125836780304292562945595815851489082992213853905220060849031723587950994767529722121484779158086506498100796645151697473817778472757102585400809070638192165522868662100122370906329457760060172898706960029463457730130962167641867312343683379779087371983610185619116769407735312906071419871307893932577719151457388680531697321648570785768592706282966190984405745743931688790105710396168542195830382856658231817101207254964807839047744067537699445510807288413009247293234794891336154900433333684719446071196286180679486960841569237000752597149840966508615986747754174301394118267902762097410342802353401913897994740177812052806254879551600512717652195402917295348025370611871901554281970904788959870040598748018946141351706719701758550008150877331813517207996314379014582895301115260178588854924604054551907776534463972724823481890663822215809350125089047316612419343644110841782542691669917342790093447486441422923051283280071579068463765736385225884916884612446589660370427356000728822325195930771723703205316908631485754984659420697445363921100516096052967373848788409919693890731937267030315831247434635924159434037922471839553074596305466670048192680847198979253638109724627567587765997250031012705896186726972122413581279911441676639841245675483242711611103418221444684672458673437845969731022075064510582324239858494108359529152407846660912627416732845107356189684129049495310072213502181879695259324884101452124711979130215300741981283626858739438221081397418663234177693153286000586758323717479923551502753724680254159136175350755309469824159629617239135875185384768923547659243316306217885982572786181222483830538734575315200870743602756152638491920967094187669715679954636179332630380341376994818425162367856217552320919090423851040432611429211104829734882921318281086440767459342402940615562522444656033861857238576573148894980836870193842178767498216715048575860063260326065190851469004388882790160650739476498389168103232052396299391128177882198311548210930274501329854890244171757751879114157015945880228757490992251627326813077373200192361387291225794948242758363593360807298842809620578791362990431411605742724717909630670248602599304785686113970469045363427590258306126278209095270680127247246562378213423428210773272492009307458215450316959190427465659619315656835288420444090798693036638638533600647379464778295494297001318207169807805781615486521525040568647328116816095488619411992215236325102204026405852994839346877524109099931235549097112543623697588198361998800975348879316861765439701818626699680841427416225646968996518126368712983916159581285514722090009962899919707973246023418558565535536496237326012640094773699141581668504361878577452130681943669174821543026987057500783361586631700622246379832241566055901386194095006699468355803709570819660028891576020360015687148834427742935770017163546404574906831896769889065601967181062892156573674486829151900484896666296286089457479574008899747326531337170094688768406574460202272225155082458533373324320574709744235032710255929186287999322230539425225083125668943224469323910806192186718532005058513968429100500530954374130863517608111984608111006231440239518161918766740333496324805164915710142420229547939504711538784718119790921065140495414481256445252100873158177707352680631137053366112791507466076467288356815206989078844368282790522545094961062081482294626359639957505849498803856703965877046636456978027127919084217121112746865718823327689011811548742511948017564496978441393243942299810131214868458465372347605149600535667817256328190573843274232143223484686208200605258937726694719330650474360890278573257470341764279361622851891454493354403399260795733133969738468899814190825127815813249051256409742245920586501748874465645203520660236530404013564015922149582711127270344666533004036880313196146371669846089922485609595556636233848360790092973351347921384125152665631131490740219137119833610669576304702942250638507774264555166081815075378892359835279471371271750087088361866024299856138200470569985933247838210239610491289675938969217754056518580724705851323140283449522604985430490278650389499948857473029572257583945102714776233499498186721495292134611434500021672539261562728691068854352631962849779710008839153343836491304616835203728219043107587106449714253803749875675913682467858704802556307712558141406393568108775441443858069489881748248094490358301288416286022143875133538277308149182667983362622814260430254388476226136131385010739000027970333404613654627745183428616648039674164158813501760701534822665142755709860837480757983484552312920713432485734815435985559167410663638684461462647157826781847331555186378931189413311528228496783965101910965002819497813564822639996891543595746413392668663608214142280563384704443079770056912776538435472740103437500132530760210854755633733479174699600240503225709979178706919186373546125097500368955673402585160695119378961805359150585759330704998658489543297298221234622272959618689516480030326905759438578490020458681985482036118521690371615512108253085775916929313586286570665589786956528921370476962192122111721903588305614845791854692973428618616131965443595399703465290237452827144916032436959821706022481503992466858020811640566637323665358701447440053981408683584749055186334577966476392426118167352723626237570826577283523524769128337273278300890392948926623760879508874053420216132721945488831632130203211357446873989921148638814837971763334502711650906045737547172683037939475324541903899122103001427286300557521365125254974297276131730951959428665174376662681174968074138439733367105723882588586643777261612846801009263115162801852639231242997140819745821022838560230625092561291313541841632406999433482865311306756504456279820401323548419298456551158969504554456679326984810958031062535282862620438565377582488865323288190022813608644951059597979446165826100694205529038994681545208120785278754196367108119364308269365383878650993573835399311930352622529875371795813469756523950023492786684849389274435135985569431262940508360377611264245122517693782901859324008232721598036181240361233875510915544519613379774114816627562198393410518225638759747464738901141261478220187326139255906169738702857864218681034665831099600157715410572146755890581986263116398981940400217809736169950036235699131134889476118719387847629207711072724644268490871449455094953568852091837500686674706058387908504133694692104684289104712686845050646258596695726586070303558386960123415915513122116809792658463493389023428254717139039838466554973221263798308360859051010060359060121795057299898403709223389903594477527655321226640412747379586024955353760917428388901467507542938484676348860098696169757062040429509872951437426152220968771037898118221800110525988526253456013575520876533013007768398001272058150169790496368647591820707766090275662924009847275628121011507687745489672959866166570466693245761034405786486323046763993784006263997310877777753063942216969832350964660506932143528220484432156397888646678475589358006684614578029218256490246787683217110634068246780851770456038699181733951551052704879083332765910317913898676102700005306459117116197826418326631378397605084341176988469529731447266607009189345451607192280531914458660409747433597269253953131081476895672369934872077342749221042995998354819183214410458660915773598472405483037422621704633712715428913015887484587426612344821898630304653977631656444520163976748100983095774696118187611819441321067961821030646421041593773289180127635702621925248810953742180923785601830191793607564816006440292655553734297542969863018546637327789868440641119059846913293905270783621232511556043862033903068212751249500596230839350465754703365819970588593570870125175277756363543177811379989614320146313006634008004923178453516779064148583506168434549690223658813926858957659407648633786451989654208964722480281831181985846751630806133718693345329551754736411929581323216854635838058710448026444525276510210125681837293029834758752003161561521391425073959680874252551153773081847241843219841616610849277251637035724361546163699129027794875274704569977487375283092664380431992376657715953130294720823130565964858324611996155106986376033583101775769144780659123229927069125701417186794046273711931688423834083052177617721325036959016262198629216581335148576540650896464003165354316675899758399896167302476610200942508252052183071027326773066604958764493873811395118858609106598007134063015072837128871898304604622922642324619593689557060879325261973988289625097851874477894393127113999753363589413526943850972444973741038908501846157355251033086733172516661928910437787790504208161793433912182135479208576313253052913102686678810488475947076966412148628257011578722200501333001718484826185269213014376408176619657753017419418901088914748058753231197775775430362575510656247380987694214521220781027325602855755691300686235752109510078301263790024774236590745674362323617879786068246877457301767150845756418834969031707322873318837207149515816228380482469532368878676941353545495574827668177477458856647214806702644947246848246112296314902277435927212631443039124382447190125136360776832002486882316846591687527055947957383991200159063525146722329811392997613242908865351073124787292268477732198502094164515571253710538011869631833209074355679777610809631834530116133305513948176186906017518012636761777178398711902830177101693288544256220880188453780851902016210783694638199848137094306844967228887987453991011328218304665188252264335445778608556982192705118362282342388292334961534797712856589370128637681692285331156949543101319916875034013321493247889303843450475554112139682175155089845752905776692916892848547848298320107186890419329270423430783593003481156933612318910940284659268152801629530531278798889681054261232492785225743744250781654815403030911436522108398215258399260702223840109947221026230111479616359114019326423455838215330244340252644270229652680379861383488408233415672971088040252747845312475870858356404142233065191424241786163631978526261029181284710715118119954534171101522350228289703201343074994298268642334861193141222927891213409757349683135120310068460183302203799814488163651414798026333221603160658184476988864974245293852745912450414431164914743423371112961284282939785150423392345096369827212002429240546320224152946248028980503257212496507232776000832632975812087341018631727650309295030494316481615475552374077253614340992705076228862688345484220606243571263935678567166304564700623363907350292105459285903691139408434458922890649273814611216845942463283283576365123738765952634941284993053846402796294751230397210677458359488438518766388990385657988620265970914116798505208388054227062469076761255690222872943609332983151012043845306739260401447178724212563268904750880924894414970638219963927510569064028573161526800629036216387790073911790385453150297945498846986481245485286537735144819378212914345742317050986769705031547815672976559809157510081309300379618916970115394061707363574894285973775617452143381119959836975406760050200761499225534276023763106511396130353522184088446115160251905984508421925262681629866994802359152273312130399308873108477604264348868866559656154598539178235421661173863305248277139834158098719226091458858433742059988627620807058941040907231264140756354003020080540560200727173544646647229194201580106128609813592964077393950278270182820313328284552345475405654529649186870481243521059256162792632138560368114913583130585802649090443005127202039305868170862599396317046253519069250495635431068061877070167565253694537911505702012682434655483092312346844604991363524624852528197032596152363448876821101151608389240196801026048564640181396387337596734537031219799064399019547076214711554307283486486568216860718950145664680276540457190775589340480847585909843816884593969378738545670657251453450493471913871066571747989867678969945914702257744448108674960437194289433534121227911711401657246888990528821100209292978001321457553337425411778961831333141053355642061542261396144499560344795769981289493350960969589641460784736515972342994111230087575414348412235173291922582523333667394569964375093771730851749253581942667749703290330846864311475243775858289178021764179020033660450578822822528514541485847864661395300816806209031339565558275404093462106042767606339327082927418827820444354716090740437557893830228066862181070881223074201886036439336191393969300370379160116620839978758721862149366631957648818262183948028580100963537101906141323775840573839043295418159807336829605946226164492607370671444677414229160117401068344316826983025428464733302509182280718225180740396771777174923437307536840457407512127494316176965778165397676799249397232373833569620908057631441733084719536682479815582871684596209010122414619977853353169957045297777969164554024148090099179920800598911697882257469286409773400031180682423336334549412166258912232319978318761978881912956874724366812518879359842482578742982994734174087558721369230964742667095689054073066396155915619626480982215904155139097281493843498812977128486407588816722082761962928508516361959802734788178516957436103950574596709678227086287515765214715016292830134528888822029097969036503155552003354117846848876041221507216969332273828186939703181006373925999630522129205468926967355015260096933679215739757927060881619230328940143527860280391646368910001394231488950768644719010812257689998078255373450082454996715653882978363766334710991005769406033424848111701404846012267311940620843886310971168247830942196973711137125535617490435351311089018475803342893344829607890522490892039187960212506044294621352362447108804655625601311119578997835051137183597962108962158500558691387781921602602289537253219428867124821602569401065192610678411420077766503146906122342598708605494377974097502405267589355724770006711714605486528742879360114463803272644470284711551773241443804921592452553771125356225052327236896287387079379372680614253427678839404347595062006822495098401632668944763014137456587454640049598186409872878502370221036533938480828811104253892117289860184508084489735176373793436914797889626001230164544964195421590393593408727958543705593563597612138719486902891009019559541119228618306392845992569253547881804415823501484446172225553121687112964173614981745962444392035498818617028112460751317368526324451503772584746668009093537891207519534937296766048340632402353135734878861926853824839962330644143987633049924132858081753337567143725423202700686032840899880460714469015096154836058173005065709692094733312449213737238687323991741581751568537744930084278117873154388303641022754992813920929019824264906014488380849219338250963264389511488457627540390255708554449483731844971406122000863831451424248619824149738663153632085096228214864082726694059047367335855595047357780573386679207069011424291290206354035206067396156471343397882612021916262157880676733465553227337371939603146401435965498590435587488051963871237545330550930721995261419001540960848603575226676221050708385664100385258800634130717676896315941156674613683383165236217658197077999318584113862258656177332545359243707226789148707828360471480487147777433016729402309575721414367926269676292803145071743537366171464510091722984772292605688443124307314859532650809725366484266646555064414628064688380478244727991320182396932816676644436687632233989944200752946560320923005066878773554875287198301388170968932320619927790079429778095547776539508950644080186001437524922780223690264762209588384216365962131941748246847157635018736436874798117350473806058862087014757266377966860631606219608980770607517865801468577532204900158172501960719863995930447781700250250307295634036812593983753839869605847196031163224390052006911899885978491261059450583922131137625531785066467977881601311684428225503141888918793734871027356196391461346688697398201577528149335197754583865218244209056373189676414688344261882599681122159293220022074246511639718397581689573040092483276133035042879308027786865715686968477057028445824364265890562646022586063213116506076198153114925170791485324671893008356096477142340803935715994549221652282945900495545482253918338223333098645291795699929293273083257627600487412868946404494946359662964553966649907720531342581307517232860794094107436014318462749276804516309647862568052252042178608933407230395015037969372628236440846764752897789441842188777225718435226842939017574772791953090584758318085895367567276509305405892661899764230739477619178596434269280266219348711719225043661027831909153056147737201701178943928748422418272607252379853568398854820795783656118933515819709278066039504961548294563821613223678378717301444852601438470664042278902930301679363344067433497865351161888645471721792783882019484431711855913514958553195149591101039377954900445936237375004458807293610728240381783940356950701229947783316431579912248696751484607132387871535826458571058537903062733372513023894539033867356981250539667462498934566635820938538998469576709776484960395315955971791778568980473164358051696484324514689914900997550536606902472840207257867435649419414429761564682015113173134085052410540732060080967698962819593402094613347027469141446089383257933198170541261720831829972209308728823901752772344663934297359955260711150978900630482424345750430612459430372869126651609677023107542166094177656537607469928601980388949560919282282765804127753948062575770059721033112159017606438780165575537664767365139581358102413633959275906229248182418862176162532410805079265179023088312702549415335395352724962647136197196942522913968586904728722702330653916814944193621261739438224676453410875170864785528425553701948670702587103952437754803219050851620436999067415440078551774741022958814659034754367180160830843702582462734824932216581056166175391284691179638256634006863800697132960428683227840149893496016295781304544931602830358930664691387632951082715744347821862638865159521889163347974652214908074033949285082693979935348034882289766345982381325256938147530088271246856403707549507989720123826664705237772356368174633856794829733621455577222505503180958116742841257189952384526497788114686789082724295470618746404774912008731022167338549755025950459606182163988163598375337295459429394572540619273062599329360820942558188282628583219707541003463031382535628180788234871021032213361235189915612607363072803347136240096244467638090807354614039468400741666590934898311706969541009594147130991682906045725677975153535877996875540861322864649771090060776405701256890302346953340207252307289856645906281296660250224607119919752920731064215060848158497520617985912379817759006598176430352775420428052827309190178320818958853348472047174998352462858940791953091592946413261971504162294137445541883071672732204692352035899188656382927514918045026294507079921415635764728608352839121243134713277525659845030335262531714829494457924892328259507013242671150766866880820230678228569829123261042657778413008478468923358659679766136370892683577030681831836205616304554418683114959322150360415564261641736745283942463778338835970083448641052676412865827214967678268871659687726723708905948016469403082304410647057797663403740537697489190763027059783406084981389854023559926510973469828289927000363302737192168143439858451225638398371406561963817804776662893695822338874702087380732716000637521792187482664160883247718873401573101929766868010900218852396389856303483541702528113439191334238448817437247196015432492113381677678319344857914535560665791418225279439785678782649850541633720662603176184101454346415199318640172713357979091418187799807409915705350860363757807642202959217514341286886923782876963139491513105895656033415001408215410537638273733745379402312283170126646236032833134718421930364323824313259329896972540161023918905421176745635105045688555843904759358821792707143637409002035073651953208913123431869346252163402729529820775938040913403368687412199247831746795929234470479116531217985872786420308825041331588472839931618683736754246542374234156262150044554851430096121173669170142527377971252701675981142671992749865975836745573873115911346918997410501324269183700487730358594706548605115851718303634994218421879030170104363084718785375654283320366606149263287047966374000587578733649311168168991502549952735945900855182701219721846317171172756535171199113583636902664924093580636462023136984972565098170904422987610483288442994169069614959228437416598536523554210317915639213294976716411370799075237385823301519330588662238444525947572264363397059560234438664339114852482929575481921016776927247180320339253408960683206014299925503091821237478259391578803090234824916019354569119863371314955469092003629366902629348461092748627507289455121611796841738588347351957392477260351446537638245898178114928548545309430101131046725567199425314888598649232513980495930331662083039637598761059612629438905122628743269882129304054983264363164315924554434547485207385561978286307591695256738525731506766234340131543581083633928779401718637535328581117857546175942196559688304162438577511332660386995198321806435890693634576307337648887799018476187765175675083578573376341553719509628018467523325167461136755561517156784973163873096012549250366980062007262630344803969563373099096410193441561784242696512435832952386077345518910799439502561387174446499467471530723982402468131991429390924145730949358302697745124835005243873796646218507402733064212436400695507646244533656738541625537207545498151620871941566005173273937426907367863022039042281864644616695655262915316590613341503118039396036591102898079195435155690419108288907388309178106499288420780481820741361107989815367532684821465263912611017472939083889966795945547112619211554627870227847672602571857911021969451738721917530322103043202748131902616708836084488669500620318176012091981369037918332418170346608416913437931120804001530381215967743689520503396467561876999628401852349072576361745324822072243063737926349659326417576763498974460209730383265649406204468313567878359408372312065428762886750038885747027506886670449529631954032788616976756219666309269660916526362877187635093925360249630082637667835580454310926803077491966785205440375721876055087047436558928085753254950181827121887246902039946557986507683074497337404374514615346566879896946831765351932506125780674823249314138485244566317241199215126572038993576013448722436518004288241112373508900504841677784105617714820386966309242300416175606064764287204690987229591816628409006408728002362146650706060550273573657044243555571046337214105785112589356269187491903857834711032377365379912852857441962866787694125633480438993219183669625541973016959728340067549658675326797812529573785493306909333191649613549436227289138658451059152658439561657541729245267546933376320319654892853048126451615349702696009290943425869999736443137815204581203025145259812035931641401981127617636248562761864366306635534996876815727902258863484416630849668088095040798341695176950828197508562759481043463857154512089527951407060249293638300164858819440782298714441101051352747513586304728820190731087433992011492885688301830393177405334513371512947443330420614819938809277567581140076496371452184075622369342689404220953461330648271014151138590371601447249485325770155465692210852238612563285661613909899148354374962137822788422969829696397772242623129545730525158803928057062914574300179302021999164493598620039729304605799408949153065229666486898578261259097823883343362812870183452329095532573111052306806534817004784107092462797482721343948643497151065085334151351794747745276154010015463996732218444830220820357645736791231303690177625288673358511899649098769845868962540615680955269857977030597654281966683918376268439101084318281941477116973659715442427672587345029546464794704805583325959828167619926514213483056937515113875571380823019502500763254710721211948554632239392360596718497834906719271505864201788402065710945805107869310842059305077893366895786898770906353790705293780279908363717197414994604808174988052491663020451584174971015508954604264971061842286867514719078928106100789070677277487865148305887090783109379177544668160122676762905678144895579693017117028146452128566365205905480448763147108016807379854637186220703183475800723617000564671277132330116798791635445945634447395456615602896910731716362755048946521436002241737283297857555340845728948386936716589288401844920298540157838306664745570564053976128514254472186646137634304168384236578435016442584584698322638240265446450036794053208080116491169077892214095559824906801088622285736942329867572107357199233877208053902747609989126987816779690600571116547629674282622805286038535808196701136096596359606769673110750031386691099786657757258713665659637737101019386238195023206973587797752139697949807513987354269853226500959368760528635749420625249243537175206760418632811785111236993825922733458592799627755253336993053053224685603086179906252772711245148603993201553219982800400245490870305434092728570540969866917562874732252671948326199685547155066339843378621377728693301742103048437257896996277182290402528237109668296289823118361041242448804264820474142434496340403940190834156325866910954547975381334169052272330203734350803930599704407217922468377657842158405138776977716239007348125549146070981825522890471100384359418053396997277824253800774647779097465419248986184608290766049505719656969739737668833254644884004655554872745001235659532088670936298221541906432885321092702951261187874603406211515596759910194109486730156000166774853702374593998072438514492376906266709311398249117429021301736259045573928524210934599161880468483964523221490032345459903187862300456349979048058909931201429677344822129158518376342467384085034661899993057236538825369000968547294196597865250763868140505337760309961286371982657888560964115433653600855289924217943663406470140838635411254184012885266167005048584370494366098462411309115553167043818900702351788697625249234632393751714989485487886191842009052936896128244653358315642668645178458288839384336335793531991898721888716137601620113333414423185968508908539094123963814397884208698124321379050520837218805847956884283810243652545378383174460491379971098758512403349259860943598577139079215632358405186252565817336007871787397545993000439881076448619862288508267482487200009092628253758241986452136001493565312729915435624636745907520224307959295374576092941153060975672108781678731208040780678284493167018276911585308320128745608172486568036788789743299787232760604906330603672363338750818692350247509151763386377816272251356992114400104755461417942981722222872773899349612104913039406885988899314435561816717813049214447294378687267105763804398091607912869188447815962650309495786452018876583626565856912811944289020350111215574051993213095987153001192439153825533429675952235467559335317847758477577199125514580427124124793217120921009957844604112461008129776030577267446544961616237156392464654701777395650275454786956003315099623701658522933917600639789108389526332562661624133010076562230526977727787101825496450597615222798509417590998797979036932849229157643247645364161397394591101301846014675067791521348852209404509301995792786322212420138144350841224527361356325835618225143966170115958922337462288899917848457338735165605537357105189826235210519383424668241776959078481754210352029941303928641248794726426117794996433849990071652948213502070850524046569560147324342828015161728552162580916496111243673884163887277783091580959520855389281541638799925145654622756917363353405930931752268635830183885473926787704038209131347321732969622325820122674685127720110388069909986226388484269373845295017731424490303435473109203347999724209983207948069410681275947889079233409709827763686918223550580879064826263463050734328338787015032657349729751553493485090003274690544917175976582388384744000539534403513661395460133468888094401448398009679765873621611466695921686457290860539172604970532652250012311262446188889921953373353662922835498184146033740135051150350041141056002879775895092111559188130404297902861402883158890936876751990333273354443097199019512609295251100080778836545471757380237228809712818469326552580139081173837092709634954712535327409880779775451854905992046834049494132595040751727663091579442793383515644669337823831473935386065437725126075390355518015653212103297976858693275811869487496533633079222402537771377443782663759078125440731273834921906727743907278746893755352752780708029743680058409812623721521237803086991523416483414650566096527244901077811381294903304318359921299163717804885991459776860297263565252349815695908469614936682382900911618494707456117639437239603126369410429192933587799844738979250844554013803401951352640373800236161206462825785091348994111201803331530935006535118919052276492656769295092664373059465092990539755932654779259924514632045887486360712868858292923970630263457588333356826208998411669940774307087788013591967993656647872766441529419283062898804410636254384510021178947851676617121971989446313505332471715186483787931666318573211549661487756015263832031672771185015822065372617765085228519699180795847961117801952800172843079922519163085274821006056339143576655666036580771413572260131316335496467128371541134115167088302505737564207691422679728014113940405638361098221714948837362438542386860035156800705469078449300218578558956646143278869310285785690847345318010642824874055589366637345934644060990980579615318680789035513401372396711190170724139143802636545123936401613675086884644277111243591424841005904366464836062884132751904001299838935787456645120301968827191763924286095682992863967281304700820698371049972270337196694529048008208395342020514392106352439205860133392481414380818470205926882488038746354184372772852303718324096191229520183259313498379436129000115763295059333661550061083800258898650311398067771073473841392760420905752065777752657561709449403379210246674083067549225485644260259917491025251839517402787637326925374764959503845289541400184332115101025115579361053119158994979430741195528030606325881918549206496438231943735583981283236516067421973933838703460342164758589767147228995025296269072349383550708563304004907788799461788822813752176774074978795638751097278929318880556572056716219006370292836866650192301211490587866480703316551335698491817045526786416987433458350813167326949234203987213312428999382145929662642530289489382486904416591374252587079959417860743293691126597652992477325693214818805825448425383289500794389456302743818048278392524563938731770025704896882252040870124896419390470642539290556118014152943322847701080319152548922958006254595828323519496388549149665697275680462540132537662057065669848698897548996300616737004949686442132531827646752264251689870670740361383830533874787293387896508960486575500395822016493453666024523449291677865539146906871870106786988936127527108664092971353399261732375238440731407339361589966069874073830222398346591977810362267997978643327039157460861355634150215823267317763863953609046077610528615896333259552107521608078968369335968352775238799110160582086101730673335609150996690985195965180762178919589165495386964240275798168744866071492654621613916288772687243844211251954982754747257632291747811088362160669957712904268180380688893412601591725072466462534413400888617233336221504258571875283169658682442684740139055067152718859235150446313511853288824373411788753982799019186411415307341551155861713599021441123511723062021003774962699921894083918904448582821471595745879203257762404297078405840499068001163260075515296731629261720486198215261923133306001705575132306186847019265994540734609051558364085946136973043128345486248931282728784914660237039085541540445500475725526876192115488834396293585980254922948902266142443106963267806036442769663999423448371321825462050385141010025756976154494358354339120872629525679192779576090226101542242333330756512347366406154756223294978389177848846014917362015676098283465330383371951891764892362029555055786313201999764399113564472085392724211391178444246231363567837384849373827808028569605309853229666439828132361342046947198155916272202700705983417503064783975112450663064176575855834204401876838617949477355673679478995121918462988266615886949341169052779052165682980764786162567223864740024230564445042212773704605456413381111876505965040491415467481915627765475020277945306014157903943689572617534020384935784255494235945621183604717089348223138219847407795429112548618726633892708353685221761316412675910709472674051064790267176428798818484189615483313519714026595666960353262985153227091963179893843593785808036029769649441117843752748277111837918878934055586137808803196309887089743016503903003812040241433534706981364952944763807625987910933605045540722998886118090796031876342551274444549178829569399378254509507301694483008120562180650278601749355848568614228342688544640885399721054728827320854888505244042583212952786639868179985048072999804527378688922818091811357135025709084746183277372067537637466557111559943623591943936407038610451134449304546745155596595445086645889536633948013533627104716350206986910361695566506592731016041310435085664819427496607775066287924733303082683539049258804605310854358232171698611780052950971018080702749262895831115760342841964089484436419210311525863609804323799007279709234217338138965086581300884060187803570992016465649550980563959549228132041054797800234403872192569746405059860864158530119701590159812072653153223095018936163902688427319981464482627881722315454200137797259142416100406572373833222430124421278388153439687431480845177153510389024975048587539897544646993134003013567896327573979240940374175347445007410073301507346306704019120374333153427345585217878071352510134401879054322849492576012754832058929268349862886441251204099150381133213119021968436732444550099349949584814267803540705683440933210576040158512709233853547882350169764372715148767025256177404786118205741097051603900117888685131992164999419962440254105906172474361489989044120605426989589679404651376976227122591295478000045716643811006805822247257216728744628074232688670084615410541999515895758513354321026164948294622207038175961592296191280478371862070631842722463671003819355820755716332715385601587924816537981046091343117476951882836760139395979964824427975184166978487140250126224425406461475778338089320181726062695976210252277089735356278364118024047489862533268536623078993689426663556588476098143332686219676523770023615278964726520146295525810547160152204926422505453889372809599592298807871754981694723441577780450006992002379948221214986570588406348274795554412926266913505408185547358016810742866267678574554098739038264320217150562992900071156289715076291976196778104729092407604705677639952670377104555719119473860271166390217603828369656536682484149396721548024956921013859478440268439506172258431677157895779780027089314664431241494581319715748793705007713856439306557533978419187432192675505482359150976703027869910497142870237416939198227795498674888300633714026883055063914652041477338567122635763739616107901839817341115781700199516884059740180470944849202011143633708652752157711351978366300102184262051111171727812158053014649521643460991698710481580088191727160277778615697854182382516550500550014692561432479043053042387457213829187676604455041133423757139080404836763879236775174819986302055239730057646256242973505601083329272109998613782163070509387725844875304487142284501064342199158559229828210696584333398719630592106751945661243389713764639725081912733628861849339583943673230945291907945483553862240910284776399762022167641080906997452374617227672461563477783106953873035116694420445023599783030120192765470009969547673944300468841547600274170453902861808346226620031220957924323092501861874838840638389109824513568643635895243118398526267353888233311191018107506754748711382448854062433772299483549456844926917317116066613499269096455839923597256187421708820796172847150103894454988711884500689452615838312055891088793213639911855245253315822558710904619369307142335140103088668067324111022559544803203209158131166034134790157251888846508771400255529360709570991401516189523470350000965492597078678977326975505961090932419246136440233326392945023503877572670200938532864085728065188781449116639288822954514717279439718161752454366542540889828031496129086734135437452350579692718629592331531735148360779322592620610992038125925474590368879776177493506444186899465187996621659068434632758996024245458812134833126588890773036863716740315144534704614324633640486864604459633707819617402862669685559979390242487379132040177301306326384334844040231551559380223357687471761280043475422103289513103869656881542229401781849753113512274689228309981458744662832981465707967050374905880404061689974627833311545185068969074395361182817051910237161073708273697747096572437022301695757965438450021271273368456055146144060062757922673657291781144535462669629783626777210794943991980787033013770982294135780980192691785861058469161426503797577311002927401375647973788397168432066704496894451106556495221409314496372712845166397211866271266231817031039048546973880622278806813848461432192373122005375972829864948360341625785409817044431081584276657478027719542994517553699398134160244088960881475275797865314150134759966836709098557952896679630686582563613266490264290554721603884957705057394479349692888925407205865627223520004407969233920822442985372089564543659355656495771501801040296825723306131345590434982896197452348005107029749079722123771617603368435010076213664569084175119224356613274433511262469705055121537617187426923500397659323741667871901831354436521730810825437143124780412749105382944503841898582581935391301750984189963228739985859206790853058036625734480699633830079205941005225945869614956896754014795592320927492951805034989673154390438973442793926274828755582866888723628504639065617803727883604122555933577513799767286645749358698071410616191424440871998851879318799872865059811381319789969818968588010803171944626204685450176029864036098865628042563390553085492148717164987173330683257547544008983670199646657301681652215585853642243254015898598988212807014175018042222510149991642960412973148429635227903035340929085693380405213964940138979509042071712741810931044527446166240865344270039340780693585298395396197827018139957420921128276106214655062758019253397074669836845329915169062982078581460144466910610432852321524594569386707249488605213427110864640635857067185477562683882286085284674919084996909085671663273023232564839905702854045367339535800226671275768269765021673467845920874477159387363708626562041070325943574909669827449115156083062055942903858187152109271869767801476251063027656387543976440429334481020232388731750075280149592597772810291639078923498456002466665882408378401428300395814237878378783564144886180229520808257408228547858303318745357617186165380075044426916410929475468835275197992711025195551566312021638244342677381104171888023139790641813881760853846640151528499358608062099239269131023588918023058183524649832345877004239676996402114865263059362548856238664503736476298356049586904686129420261951309482980826316545545701103408153557922758917793193189544487343580578174998309510061462685404347964106945670158474860301710551214830747688756197668737674875140229103931908241036199573509613236618822440352117193189251754426954992258089971046432344109224743952112913411254305277672429933124004308269659021366113367819115474474861672272819892762977738596058316089315204845650272983684942426566438193737142353102003797321126879135927092156581386327370838085897032262824938452984468539975018833667496710066447246318205949370636386416478376847753207972205482058684496043010399016422514253187753917813657818313869749831398329415020922587507019748443024203712816979416870185368106134962503648679556853160609567145257095834504139760771274992795067352428126434558249508647652423151389108942879142316989957480762001269305066843592907322606229240574263857867734400478767035263839874501571178556908153837161647547848146079689021764262862884345880975213397679046726097413326683806385172482665972911094816415210378241466470586069509670728162645238137014955827987501754369433922254845230077557218425307512181431549462947501885588755533284832598727556794587142560940363271587986367280026246537506558098466423191416636401213362589835013008580791126797278655503794754789978721875242925606738990743097847782125726552251126731576299222625467842078230829845272213023553846400510108915870621344072258092704278688341389131287008335704898331668557840791437813000532991845612855551187475951342406780393793720465348960494275133414953617684033436673627772973111844614164949805352918011805135962338735496630564612183134432266020958977331267363145158938553134686632487685409224707452273309298653659037542834918165956740350943028308334761231528504718971390054538236038451653105796190445013779318884954635080589442912414286142147974418071418894390366421335687016288524760809708991956804473494270926717398263863022428071943729350348690053649348642864279987250835241439749155807915356631109084882566706650257432559983166368127188434134778070054369564747506109222886734863133915151155156386854758205484736506537394181578116272673100395657792708414407343012240598591247797159629633369681855759594033410490381162524220435049499894496312291462290824014542263284526562664940798191690558772191394549738892943378306291565348119961358723148774102381927028579705235931200404155064390000735179228534932660694613020219335072760003472046073639338567850000120212596661029939776963445898983430395736655994813900945645120478528828782873664146553406169646167275526609073204318378751209921163307342434706849350393891428245371522911417052370012001574226402661556797700970245719932250771637519823476923071271626176885034718425380025119004833104938703122724135609173644153071837281988462614663494620377522988421754912208616809502174606196032918129844364462628583028227229163523198787797269681127992804989862111111582667046806885679188715766384758224770242423061479027216611968852485660061489023221794068533914147112745564853072116863604927774796324464175807252092318666332747268080272712863238002010894749664751369741835350991096757550102933156562867475935874204022617119892475505771521803490826482411400980642895160348508988445741436233743519444570494548095716424712088043484808544715776962670901340860008295887739239206420112791795910170303543751626969455798973117955450935852748488027631077211156104531889850778033475993569863473167210893961355673142355677898816599271465816409367090011328821414848885473851235861369853858756640170096047507094230811397088007644044383417337022614778463344507575090757990750313798425834910132409529902022638752062157427158746115476732166662926470681914867423973409075424179944547412827519206369355451658445535503368563689705923967305836874599263937920773972413873769416501975743809896040246736099668588399062155213880905129712787533737406305091267592340943074911676398253811206469496502315217621074991276659323210432876943918346545332335555755293003689640731493093374682171197156093995158665763077785634673699230848447111814938690397923137401983912633414136461687096214295403700647022359024641939679016568280409815068182441184431862966639550389689734957594694058696856872468970912967261016220670480037571526984186686158216171012844960720713951597643180200124141487998678038046053777997952805472544129443835894807443179610730991357316903808463072190530505619167753820241351298270455920066129318160498813486552881535681299923878868004507008983352413070417533890863849334264491624468671994957114737709560876401827143887144175393828316700541798418173818394415087114168255459842859718462002717358969515311805921689569334959836975052208190872458782566433437407552348860439261675728654532926581018835799902799312363913049933937165745595222345948846366868180938907764943584411588204286768665381565831834022625000767036559067856536285993141237578498971256777972230002814454151329201173659969107615675559426767693662701490713116231491006987084134046667676585668261329366977561452710206906819378979440436143361734003958251928723311694045761136784899950777083664426339362307598761543304963165742942627116016900642245966099590420629237524515832916362659811032103127331914039099653449182796375524909455978581868315161741777165198308377857444668772001966845262359664945514405035758287028355566014130462347299961948014046278760401074124027972270431371407760538739999926004750004103061948235872937560629837087361167775000848467629805012310318628708702177336808042159254891105401060175972950475193351286342300709373472956837186404854930632676484296859952702762327743932955581928658278380548388082166663061622827901060249529828201193907346706576123878105625106037564933265374422742875802258773699498527151562315870604959348318199598351478394761267898750160782842327836890640787343367002475527067367783941209526334267064675266938495716596472180728875102107521496222014261225387034117508805227738390448226814121260816238855705369156558288159887509810180514451614017464030507664504206432831066325802054856960562957767779047644546957316378440767830868187675043880285345501010151984124635736494061272221922003880848815513658531814033450153354334944370970184454595677087392538205599398222580780923326658582279356780112671824945123397681483860157899232300734261392673771422068958566192428035765516315774168397059423052363358368115774068266979373019250860001859977114839796642209070149884257808329354087150350886931259806529334630072633690325341570498043262175843606865789352285136965233573184734058852632303575514508241551993618541214032345334103614649098911440712915017865021225857986176102401947038856190011548742404282519997377424519822783777367629720224896359098749984354111434927761361901125973072420097506200697927300238602802075396884942879974041827239752536610992868479497131162351932941970538219558191315234790858928934586025301254640168336680234516312090947492921486394070573988862852716553945202354347806650815340655153723290069539612366584505918050935829345994066468927105745665089998117244306025384411871033529842826998493553875215093705550441579155473032878675768225187919929419637100273497834699251797695218523576504709824080823436231266072779205762157089653696391281779531955567129046185315724346962636126738834260881508459195526482706559041672476497733956064914181280596922881215553956812133240002575804226316971067789114671918479858454304686838163703987249645896665953277803822958581270501671373820187060311918275785697336141499002905832623984928561512692227504191875954872892677470620615372470679613017476502598537749714898596871489174664504597179266371935113560547988916223284268975219700667312429147187507818614906492514392702415416621503032838928585048011434011314395779220990873156023071160742594794023193812881102083941101639843278373681097150390282109103377974153188266321131077704145925381572656744293166161001460440568503658034434768606052146402108246778121158940045583097350758632262624287068595582774495787077093171152835932270006200149610524447607435254428444275293765752555213306728552317296134072812122989610548970525385334225430796892026258057182553868196931339202368750700031303025551619443458033587749945818733230188769437408460538066679819836982007896489561971605012181060829382734319862775305067250171240107611677324871051694396675849797792911550009192655302433550027068593628052607244143508460972780899372082832478454039820094315005928130091341862803793641342057439461999874421127421003148710276597938690907238076895802737895535696719908192921567111272871032680187999304002623644554289931297901704770604858496894153317419907718791402418952214742093271652342589578348448480941653556428911198389814277172830288020278552397623805496252731703227821328929317680372915634262028242467805648365246378411753621125555715022843545678008690330473761842371605994572524973064436901804036930724434353922694743226865222374145602501838947434000484319952087999676840935863872140822220944350721410498101770138648458491733176909700761701407406078237457250460240927118963762433140247549219108574244453141730499125403586965504608662709122406834541706613922867622605361495253129810492333788197941837033371059310205788093586705710212818824812470674507073189613936023798654938261109730298389214728665531544858557395839784941987572377759167452518466489215805756781220819493186253871466570254884708127215713454000611595191281879495186258087580308464143403325936435938583606913353024580390800260150740591182219245066425714744953120108535250928218675801764568026443695396884405159573331982421013595842831895844082687745088019969822959882272546195893814378929233001534824982522238824423495789429456457155426005957683547257305173005770191093646872117170448846591244481643111709905958960217680918906523313929319567781269876233110890159005542859759288873759612398381196661124900032454023567556988241805335764135219671669618644052890849480559413274300898998728178040697466502349623441443138774813003864787814007155714104086210895325378300128821031263522767975126934333575931750097824336052318005166299565051084630804570835785552680283708318478814381016411197100788306959654991567536673064109556763440513379675043702988528919655528354055839787005983239418133621667869367110945152028615676061316725626097491057463693386112615786048314200142862916336097297997527086772774461431400986009878012717426515128014841224202765798382714096121660823372099489409866422499904971291406293137900423088708457798601361664623615532341249374357619170344465161718936964998114679543831665439545255498905904306866792154762519118334566659008333319515325983489152661095705163004360350812464152808733620878284093869325745185385830092473698113528552406621813410398095728154266372009199902799885990238653197296391059727439960848044793714534404578494933019462869302480805262381085224933614157267464904929913471343526207910432881661833195649867819028107355222763910676835901552167618597382082117018526624482469827313027912614731131661907136300022031245486519889632580765856081669624026239582406354178381080590369206532473072794241992754323683816996261289445881322834197398432142948365835020708555417802230309871087580131211052184080802388975345257034588401575478901557269621544668744370701802901130107819280340947804048706715867880902135419359793625267443431212444202811628127570878132050837083059609737206988343619549384883545599474302380052440839849144877909611400919386628547830095156708243298560412526020579810410507370711961976500096940523488238436954038529951498533217719059751748457467777924594208809231904044257453198110957516226571762657183231083707444098906855353830955289149750898284138473259027006299618489340248000044854962333576919285321970920249159136415143416014136354600857400564160920755605862078174603884277371256642815733507493435876215995353208385175526577235192616007524250073415200616234955759599387452410096346982853352492680899250938948803549052018199251030055833288269162878871788035986479218698055770143894780089789265491905891199797379749510694068547536093539535076840099736663677363628732777336954983807637642131983953431363494804892174384998354247463376087602428993075463684444504279728489856358858929025669105014902699967987924861133604320221992312134995406124357606462887425798092299680712803814848718005444219768015464730752471311426377505529263651542821776250256066248182406332018615851818839163335479330331469673351004792718890690642597332648149277442407644207955544192167023085526695272249008269618702367766233291444152454340920035104752615836371928849787746751707919737104844677750949295440007793453733986593661155911012120531711767957459403788540333776115532631118923838306663864704080025765920785104634769379713933396878268350162894747364930532069797364909352178726023331383452279700348816520478244848641142890504764391145797059493763885746203759170962983859943124874834763643919325081243557921307168020058259475899856482150662063983353078585117714455532175276783862295607704772452831250045854264532997724894900731785482581401547394756566202098506985993743938137992238707567132823713042209029647336036881486892828358634753840680521752982525145076884394912263892643007767523300507000303430189604741854139701457929137304054078026169057598547192734764128862931421401868228747968046340109121461707607501379944156822654995718944951639728442451376085164961008201048107471209069984770536534520643413425634936687955645322476706154498977226613441104755593400360253448645795022250585280732880575510326325760857810232203607168035628839408630515434774486940554892595192038589038730057467653006961402446096260757295487876395542677694038244660956448026983879891957984507989472881671247672527948446197449225514016052141612061324282076125320258224295288026583223861831273847787762110595930388292497474112323870902477682148363239899621192145896253085899471905894484942339500621955772256423733226688522932635454554894216118707415343909503127193364990277893668735596721237779323064757032832001680824431705421500540923634825113574885638130623823156922976484582413082343961200315820221288356983868249044036069621768367701663304868196596122296021307404847950512064740262743833462989225681769145625293596210359937675639855110836390049801148726037005125896009837073563851043614931238956364253959592319883611209514636739208665405064513482544006909362119890897834378681896848447648831173922817061936338864913131077688270233270707405379410870660162517087567361949944369303008477246319579241883010872917666101277289083079753995383764833201140548988945681021399807636280177814552171113858910401145019238416588114508097987438478699478949679777227879736964761029195929049353695017845224165278779464691563833988403003139880689839977899233540135546604512263991747971638124876019588579882467524843140834720554758407273296272631139287515656999843287880573176931649564274180307651020070226308426475673361585026938221793931779059296204438418447005267783220618388303175560078165759074872856292667819012936635879890558675477572086030471522399609362915362354749433474278591008429683042873362868277441547982200887526829866864126741133316459081695364229413076716383182591658683201990716452259614346636689380610723506958789553571795104615256052000398133979722466426808652548328508841604302564859312502420142675745741062045825336468085955980147241496964409057627565914409606843918519421648277264000787678811159865806886354090708647966961697788243303399403068664623902263048059684775678585284780801069825422437442768349625161097211486513497519725148657739718085405601545405108431002537995907751171729066169499883973901375871879288739308934061461045621734766902290044801764730923810869435998458195620752239623324870300553626238828923124314928299658119458826446793137013317657188537773119023272304323482973119081706936739606686166732195507913872339922446822940129633592268746099785036304190056559140411147475421620540813210187764748066688666828238547211446056554771831989027574770660226191250809260621948044972809540078323541255250095290236973720426225811415465115581909349780144445287778586087018544646655614267048432579645556443531493645024020993576757815564283363305437070530138423045508031554529166874416380077958096645390643190951675603708933787952561942883828253217481414893386437074838434525595015805214771353900104956594073173437528004482397758429291769016808552448699193593670737073317865434528010981582306765134917420583650114058875972632833364597295336709285239979094793562878185850289541050580446568587497615268003936834919025887607945404045631507470404415993525691296124244213054507345281884478481914105502040696706038986165514038336569297170008570326716805629128729207135659440255151279781530939814793977332888923310896131258342373659053517808890791414747377328938727429814297038440725977360686215316873426840462581038955371707121762790054774332098894559109653245992037411424280762194299769479587989935070717661931662749114850132387799228778670600205471688407610098449667198927152519964885781328351464671051903011287552995768762200515037755199195944384221844563118959260312965006626971678886363076727079484691056984011152322921679491772191908212700168581498029569966872890680409082514855167479416506866653114537574948195674925864698848078501087534170977058705880948867736407979268154638615333362065552605464380291351014747534761507284733201836743086239893806917405185179182296033033069099818435998822935770890352040880988899492423454347259418764282241985939847605715162377178100007156027939511961343346376713056631568802327382464162873013115458223292305679848480963267181377540239119971149040887374102329178208052643536493873350528214939658585251008671019519246768796078968165477888873060894529316291511297192861137133720341315838616144288277537792391037404388082579693984906116510927284504745848442059692710418172999019528634070168655720241114932083837889974080500396763738595152497029685547755981020497676710125309135193462102854807462888510918590270048129030640723830451836836842343127471273133329070390399575585035811167593053406480258878121785928597775753610428335012227068826876577978489294627710006978348527681791798399517847067358436225629087954589166939276511739552291410574898619637193232152134131096612219435811252734682515699586286223214651344944803095018208574011709152336556075956809189531909963128556602169596670105443985086137057782192593777740504658161254173286794097797055344704958662948506924746756649326230495739870711304071688447607948955463328814880946401407000567136176855309000019915444181732899346927850843756491736568486536419363363707082512919975978055806288204716402635976545509634820981144291590380210291956219993718276294108923796983333131807984160530900529935920271492715056594602104740923712453520252209632645043110487299556508602521125194482303762633080464458813397014017457871937550930130867739369480825177164501815176326774374385836974164074948154222294804374951425573258416738275864863933450968950708072179876187007149164028974539639461681775864547370587787489979658112768026155405987099972349718637643931702836083328526439246930919558831056882760338233966377375111618778964822090682342169218189188002441159040872365732649543515829038654514862545732611242983870459506559285043853372647850682684448834347153257605767225247647171120562605895464750331012211917370939491453960801512370039840391643172695612226159152761754322014663236801236997916919244864648871393993736973746116224181655126775966558778176581834873115959686874060603565020738437699071052583396447170054260311103289663014339879467912413424676716339348364257748157759944778128314341435963737302470371229163384471918143247357994266724227703960939061729216494330819320234913379408521015235356105278933384305192592360670206285339389898910953912387703557473389460051157383232163600169580565080614170151696773939114461603143569957012717810486503492694771037973498166350838682848295038141416072379222769364511467971241414655542141265384420495907050145088552870394274541097869821721112530769046178234440005981947324335429599137825125394971772463492926360699043664685618700540240750132233465853658992696243669033643501063960957680361131001067846958014426817903236212915165592720852135023297347004003669770539707108917616442777243690480723349828721379557253270727702783535579419534479593323951812761564283850809807267579252962369486007042702403818210320965469361697861972825707625513555186314857321309389099329865324008057139690269343200096565147922876030940632746382348423879097420424145548820754399969519470258529528316482094350992344224305671227468023917444321256808090800190179784966430282180667302742192504300626137219314871837827462475676019111504245301061816650907187064070472487284242121049224366687157944968345788002411399810738530024994740008093693716109047738814087556861887912330655792231317511718671085240034027761944820553235006566309777606853393548291129456108919193887731963602550704448093872329269366717906499803940240219674632559012315761028357112034026205041294116734383020543883835209574750361910666590461600779006854726455193668598062933418666301840414869693793071072739190843007783049016897882053972196265522855759697805192716674332893936604251012074671590810145033250850174065466205109118689616828906782668559351572648112730390071896086005749425841537683898777426798955161992254062163824837038425583590168784873192329328525721296440617205778634081282728623565655499585856119794591680739300704660320587018167963095045159345323961877075840432225424419879027819692107022575835160733404838115089355785702801530469030456787130522605189773416103775738328316717429648173447143158753311561058390152991279207084336622479525769307788599752599921267528605706927130746369419994365443578186320296538828028568443019937249797647576286381749056768166235637633999113402905751841087954988309343087319004143633754499585154716168461421186264894619143368541699626205689949850747319749069411666395301631901452546670972205765099147740396085071962123634721246086285060049998833258250801389696207586666028236396108509065358508005407686127421669785266251799249408389308825029178162150125513427654666002432985750184217657616058234494959007709732664883473967304791783287838813609298376935488702443223976263026132536671046251141237615018989162948787535324267760265101854794476929858871150411503487847366026840191484087228822054594813353354444410633585401957055883793279779216955410490470858399880854181786876029873919069574244380100467629723564241923639903568330415861330297254714616131154941677055783936428399259304567508873113738818065682178113600917359688033874677325983384517446218892897303983225380581272864338351449404850841819734675786311557969827672161150050020219542096012377984691323056417060212640837379244460460533706331605093829882679666188195956316808868420579826248398881584192840790579883461240665975051761243582793381845961969074566859052525831419496598516636161281684498750729836762492888529277417549949598386566372090940532174195198001366913091813143769303624034062069307894115423553239947611139338709730291543667319944269183277678550399614751409943056083910931153397617185126837591932092184489014241645076439823299243064590947498396441776832899286549527102514599461043414774169626457171628897351443674447832942875850918893123981777274499236033056354340017800907469499307663869231372780724408839649167689846888880569296682546292784962637142416441696088086890478182163681598225815639236219238571964987856340591853093068454741333327738340022919702959100236114930024132313504089472301945293822030415228312821906129721909587213376274307914848045851333976166928175734401573863507969445034419579801252038893673551132508649272360640478903089631124400473342102341300277383159351431009563887377145082441235005770333263062526705519991144049002711758133671057748940985917294033646067796303289201178499372593204186031264776923012103446569929927084277801245847436948697314325019786807195961497089466925724146414235850530210941284909695288125327286899599384561975512769029091283801730422026809010086568899315241196191194233205759399293398812620350423225517282373805564753749582481641252553985282480167107463070652118499024950799408599277910397605620803639525691514028885375483390527264830678964840693189352708123256784005664889024352569425847103731087619435264483272780956161307138815700430208436773058811724590001573043476395443705527221172350619661194659950910144508806050648473587607159765810641452009127358683662072835889655275722748542359270758274935293254563833546396973152168810990571795048431438538391074717738707156412398686833102302209346604505612658585336381691066297625158044128744452798259753996896172570636208830692585925579496418132283939869243700350387691018457659687103201930803031364291712373974818408240793185243160675329246718075251587124164990237082730336840397950276921341608413839582976826250587944277208109573668152828639403970925644249455415846863687087236763639729026425556160748792204394063803004318269034077372348667906046127668121672452038224202953046628353637762788351758919862325828401717497100573304338109465602250624952348141133648502397650378714245464269683472847111360335236614278219687602827363587321675197319748469771162039974304939959745874592299624638215930987521525244288516955676261356932369351753409054119736027870566314101492357215733065013148028882336618670535095093230263193478170933436520877228816791986881524281858387933426046677495670333622236896530424592951823435575915816261864866800298857564972464728857847164559385890112162323626743330627925585904129926550016699848521015123376423961495390524190551627223794770917377546704524936206119849907568701040627161965079213121274616180537462600010808012206458569389307751870431251755413317898538755418017516825677312274665766089014939187602428512810549627782277209583269039060749042627885990532780431216033316031184638835198785918947625267680591849955917537562776980703970573790608142652908231926380376675007849457432427117540541112972404039135724778000500217031219472864382840229301568547435934372850340328806255883702658583748842272697640525856913043783928277963445793083114203859570008209619182427194916423763015289057901201877704330786246565992703397085193681664027430570747548678776451448742867107475064761386606442655645958435557131823956799318982265960422470124465983615365401861590542251734278874685824511829616999376956809498614912904222083717490262262761380809539361538810045208992895992781791705159284649181660662238664186805791180203519921790078308126997592666956366683783969090455857486354684286648242185332057208083279964007062390576428329645826411587738019943067818712886836426928416431854080332624465587230203754769937734748019658362789243891907026215231656158660767740746042602898335959034298029278573854899861111698854394413165107321336811831903523148159410717135294880806839332407693881596633493389359034048467819116704741010174725244546634081514556868842027910617003386591373523525819047491349895219439365370276773876156099682969642449946048059879177370284054839568199915471593740264057013427102583408376611882563867805446563310564251065953372318723874305954881352489516679686522135896157627061268148561342175182113597248155072738921132530033994096052517155174932726666231848801500963136664165826050350019850126875257442504394905777732487458232993302382429949571054622932065164676233429442666558726390656065924830907718416201213845161633275764842558815100869978952109116572593837117141370561944660399277148656251755414778841289169641876340045473453138450530223581378512107228959520527793121000634982795309463455056506261195782748360306016710696440009026691287643539022166553827666000943641844735838309587860995221783931201753064682671643617979065046985758541529512593692319102904429633276756233608436300211998338375556886577324460158188075696534243552201079825796087016116134449338207318092581780676017579688161616709436440706372081129586144617342316820083436493245454347766885065110578717583869556385265990861071045174727444517978189214973565766595249928066344336996627154761381832528895437146293029243223495106259751344997352509995137888560549566859502342718174112250150145492349276581825777072521378615026502930201616576263986425372057749349851071075248601209426209120591721624773790413673295304964629897225041214921691779668226839719304621892304521777300085813378672614150871369267489377116425581836461551780264123407438609741516118692697957567787556727648448146987608239480056516425922121413110676120069415921453160066656534833842339891540904112142933063865630176666690850368036507566626639890361950851539555286828964251117690334929274837257186885489687517163258841889456472894886893712825019584850540332260494565756278170286060287438457294781805371066836567058312072535294829381651205676184540554907470807720410328628224396891545057277219074550861543314111980530709304954703344521237970246860884566063071199279124932368282999683679543456115988927116251258201568776684637504289151401241398578973813856152179842798555833828267825104106839427698392450727263586557868388222871121074102279282862728761440841588679359739355754401251342844838110608032428930967949308374646818760393717741360423782598942250427189942051501033656026791979311194823030186670562739332812614456608081764269161359007557493710103127439649596690770373286879828195391765864382296277652333068312532037437013051188357944499061411703004736133297901126764103980644770280243474685746244281050848073093394588276343286157612178759971355942665123982284441614847433045447306574342298559829009229068741004085261843918050892702017617241306959598753494949491523889987833018779569379010465511270840231129651828188373692484640249374484671109390637416342083049234124375789399410172709738744056093344053401399714285421974990158434781300702618003445052716643272459673425512493076444935700119036969360021182498694215873393294185803668156804413007368087611332281252185394258418514591222167267476192062706964366039967193043173464250848180359832979853127799039028891967604226008248326528102124512796551452960105443124259228170569500288718990952317064153265943756186072157594209773961515514853086830645866504339006853276601551116326774794432918145342474554946874603220503525368885719939749945744395447705963347012956720180645906170122444081940639301828274008175942869646979032874011493994336927103769071519802351312560089897011259402835469088878371810029559191522572808873213034468099497562151070646758939299080546413295036902319696644100542492779313719302736896881994153242407765749103895968229283874620993226399299714443032436604813091026594570566449837154942780262693433152451549641272195299862479703210100590494509273049438761758731538218921423109401863002207462955984758473868445794823126691635625047241811740939277216004491338326325992140333703645821208821399161525901263329268003893144615491778976147121654980857211160304716829532863305027898487071291107193927924004413294583221120452567427544885582705440562529618315625318516726057744126265255805324715639347976773753313556821153174452347180618695634792973969305262405526190634429356369359178030638523896967310107183508400869782918835790535246748173654370133397759200941904620203311907272494849009801592556333923659464120014029022918523800505770330875673810252788118206996443302186349914437420037611121761078759863089586319570976112594749876690742425602972262959448847675264104651872209670840501898281704824063962645878023482725831310564137653960315983622778742706685122706605416916363247904340912720636985635742987836453331744725943303115385415322562999485577620324488714024129122670216256646247766753602590069893287777318760316580329590420869666182381523996684154971220443418585310290813199206924735958849084497658784537407050986627650233361602070584772390649344678024621659599202236723406811599677453263308202340485216576262317241506044815195660624289661721164685835216041105942302453526377768537393738531360894209135236323313884345041227793726856846023022717619033058337286707272263498031460791663131151643466785412973856675914710002694569803128946346846054017575653954942159487623268941246802828600857948409398944438811376058521489460268531022893834759505942812246997492665762727740670457825974469641079066502758726063154513369932294630865237824339007834505925351559502401524313200173381284774755262008468203218754894723665064788484045316794919247910372788422759561451069361170940083442389964611390029900634640447805777886470281587670862548348744337298319191175136214033041866283190048723812326829275301720685103763619136637993363261366379815725905228480335582433671833856652176241028791063973042133246602882229171188936337070494781304674056455021303083512974930911739525756459140779688177598475824698818187906719000770973022761670090629411486090045768855966147414132390982023381163776369354362943190217607157476746994428626611145818513324960374095345468484914725528733305191422467032778828872568333093526540943121716946403595076795811058042864315013384833878616323278196633898305120525380079900856422748541629793927181021445875029733605065919311446275352061319885056478560347405285578217619286174758733079545270180072624295356687244194240875016636552566243078546852500632179989569500415108283185863947062614178139960206699210157543623212143913041749096022237579066348322953281376364042877276263547118720674108371789848157413170749901917705896249525048630397647203901873776689722907367479638030933769362710128795284593389268827786600727679965163080058797075142667520209039050040729083028876692417763966337320054840742427775572647032105236387333234306606608253741139665244996496668964481943892642513858320807348011512846883975427250020975895708182870615763019371782821878528556643664434780165261187660420582443853714330295264690076630433729285073621284817945276745007733995995854124944636913715183124281118130906691767019626650698257068358889612063959043115617581379595465375765141497553033296209776318433256874673992848361327157533777975584921294489828719046764924546678798722173299834479111879565183164773694582462422588749628519523457098125019262791006309638557285135059584696136248468876458324721836036901405144558610667160857999031874128962094020995324318792877107138833080161887608572162044488950639378268946326332472685777023066986056755187846025393377896802843981394604631220756960196870623401429179767896141986334567794104188638660113568734307050132503780413080678035745722919899811841582760282042982278161804787387569997565878008767690678287987457241196845865227236511572102219905113629570965213154397413754295798228828388668965759772066915368839150314287383139861317367640076866287440597957591894968572424982803367617162258520323392148211084013061229897092929019857149228115435137961201018435177257509430890884415535880475614210348368103951327763881154538255432211689162542279703829881458506067066722662553781290665729438781563606793178301876111792008630011885557159171929067069459150724072461449942247575655052751555379009073413537270574888829011535434011370294172797248487183487910171576484621696572272304308632619211287239106360539452887950420231619948612523546939618904490238470708658847579581001391421839843950721824462316123572792681413683922530305243733919694257220134023881987685768749198198475217854840706234320337999500040562402554749641144495131926510004740435380258847356756467210040647604027008613171495642615402148334998788489856664594568774261053855334001809604765445335801569988078367053833217131592643567160679096510730645544073051690578393941863176046020350323432316019572339351407243365060545735217597073748098652295791431502944456686840492264807130938758664752644436838140054461861406174768630643122067023677993219833165777392545903798239258032705465600619645856077568720511090533698582887003766960757694253574515728292164520175813714772453948345843867365978465098891469217285782709390975750138382184996166109347095291384605864513516550042797445432311157299397716290127531727880051532308961317913914227180254519317579072110838468784185015044567167371997549598836018182088960039745334099450923091658439308267856800653277387408961773903587776381225947344540744059378307024908734038985132239281058334293471513997942042860969524305437927961270965181440965898754693131621499253754743067481671098867819431981259512067964206719278895215494437876948396543441869686304929461819095058674922208034262151039854941966782590542604297028695675921157513800531077484659426985340335200326522656853668104841623104698692219115585415660659670476235224111355250347087997922210620961454587041359417266877450353083192128882928395995901982413173146591762414402947258511015204846129123316944446940535250606097340628757750128887144197031710237328150594415129635133723464096658377269315063548062331164007807042865446380493432915212435894749640620933413301298464913556269058666247486875084555006663400059426310239731459923064708432976357868980391022678228393203424022062369819585404724870852465321934793649769919888309237328752905703652058773936387607896828529396599943654926025445958530095677116138963058157131954513292045862931365441783705900409807726226043222397757407134263183673934823150563370670150621876761051459349344411291754796610016383531846659775473458611780553628592997897083971276173518042501183732990051237382800827626820804625137947956969694850118705955198305094473772639864344593112744978092616288242404556854340570806704885749423326815878456971158212550354896218188882567668443704299732833910978560854888121559754020100366335088302132529058752576286374367423920884967579540022415791768715765155777946726651812580607296538268092853905479237794077597569123447803897338264004217868697998823459633680421667222274883111418784968357311173698293708936399474509215151626397923600110986837075764916463073132318256390826385072765242596801366275255196614631308911710615629011096000469459772384859504712426365259415423909794956655879785315248594376982755183429547591726302729706107032255565084195934878616161539553865085166549346969218526031648983577891195637167793055297875345906476868439857085111883945772123748230269752453352025656850101114246361414296396404111300713752423830778757609433701184334366622059610051950147973002911429729469125356006559114341127050354601153838741054902652478889332292592273639138288133609569387500779220341956165711345663751176964649305821561238105748780765734979521235276586396621542311597938728990652645430705324347783882798489452670742146080852591530125716409233929652305242887494991653420128020528774954323544069349844030366332978540755734420334639557716763124735975057687660304802340769666303411990023536017252020072158210179924035562806840179566299066216538566415459319599439157679838573442145296702771520797128443772843063479880733579569075138402334659549175707365522871982642637857832929481419371226527939865827761284968001503801437736568499552093419989789776035121442683904769023662998540097783169895542600640444617808365102852751130183787581416647166265094128105282838894777940838201846813492910540352636333695361579375594849099525607131357638635355469828962643651621171270915559172307193516070032200853707221986343178477945287594031276975119997536999679416197015161532044604431877939051526551924168062808400514480942375145263800964053549787273986021928582747215132428357062182701921438576785253420560743426082990466069983747490516169970273785434886904010714282971881910359917571698953443182144375658627157638267454069772573875540898974713324866582742444963883034294670600425427510140491709357389892312509879530715809761034038116325938374955460551518901627041138049724662683087675428173062709060128162914344420515370769021520061962781947110856663797101550484829933524940065357462329424223467106028106319228320292794467358972595412466528729657176131152453334205550507053818136851707981258337992974542403854594863254516508378333383813353921218346150092889975492738342972352417434960273560523194912505547477624817006861205179153352615489463140808433230625848520254508156203727380693629875192538318986911277997909120243775484073184737484341305958893342417629566388335975244252244163829669258569963994661962735484186400252924012980346803899425045589955761208111143562255966584110060415434485860057028790666495673824890082942492980792085198603661474097942008673318381040419617171128134586558312310754729896611743902817253182212256392202058305963454176204173796201781984266121795011026299361756780656435779393299261257714904340496217727279587614943928578250431028890600492541873988177253277348618971590671439528254184052166058305134308536633252896946523835135467817946633815072693003468741048547220365268304929967057019788272594159263387905646866219379744142867560944993878567881349564369589863380716406738840442483246052619558287897047208605935153710237620526320022113881673416123455148030517161878038533126267043275908682339793978733322144274813459323932475810163823296025352523107568697998964844473771744989879342999167789690177547138417506839963571035796474471460378595244177095026957407104083459197351736787645595183633559507956678041029449705914144894877410514421759656589535643662421910422675391855541239795929984017070653548883349116117737944422194298047121857870650253909283887101461619053611921531291625751182121067427855547965679572791063192537476770309612974394915224288801634702280964777167963286943425064616850400393654683701251639610007552224323582708551265811696461797902190705817834640190381276377534848605897852875724681123820702522070262570465557310500573017249650860898828536105654062207391201382945998840284107901451712612723762887587593541460848074563827732993947283435662253745027709025121635889097801387556082129965472926809188670089615434983531825407882762957600089294046621082384939234137587168773503419669494996971931063980671565824172002439770361284298918557964037980734050961520637134057218749602369935647209561603787720996766127201855943800165706321013211803479711225294709844225777791699450737518239142891516525964913060141273587859679333706967163912422349790854797590877076729315331748918520183669886266330253952074023929105100515013190771287058178423882057335414804957501838630328511345786210287589622404929041750030361159294755869315895838213305579242047333141359209029071997632737364206935147028243950284908247159175203052344503436108888279354238383958193954576146570730055145849551012229032785624433794912578625600215189538662700416875705720025482366030067243689760263506912444297881186793394033145867853305176509115076740181139361074062105298044568257000770121596971771776546086231556792198138134117401870829778555840812913336247171068992462470495447707718023515625443778432287486872900832823639910428491915248347529423484765701011839816941712329149846878437310699907443579612663587608207430302876875752544435369153323438676125367957140733116608598668008041412246811218413084860724488618203975755702868780681759287922965375243542336470448920075362793016936106015645684242239553526343406776895816411082060415622760730034086303981366490937013256659322806363136047471759904744173668076448584977380751293651981825435033854059162800542390029681280169707969276361807392580471552532847076796084884939089742651047799954806189136281272930387066095645761798717312823645085775859511464960943108577848063441599132332136245852760647498025768283180235418180183159895368816297294080759436869952939444098021269767984080065107101717579966647667172664492050411749576000871569947943921010366519549906588301741343025833891859469588563924931797639124952213272311950107000377595003974737651069207127477060167850857140734891121358429180963491214653852383226458880308172600591385457595908140652457144654002084953775807557463168571535987116617047148720078408420356623147964258561498461216764778345705265097193225819053898864153628067473604161308845919610143107034827179883927519779349591872347136183984448586097324050582423253671205817985840772856613790488920817088968301067259945568178825430505011556128258928797894932664769907734392651183420444492200601211682924207452217873886371729517481807942550667379198876007707757557028033381712258378488024505076938706953409468149488043303084474694642054846571832958565160673887110524115573183028513552087711138033536781179479909125598669619610403930136945147121745188575679838609437446873249302551878299515740947463019940737870756477818388578603602749612271379235975967821858991737592378005606153610825369314709180666196615426827987873616050344155015944146960088240159410142837671332148212354093282793216513165989241217397063278077029458454616660773730545191474567721527489081130570195188686443001529617965510689711612134117511408255513484668686398937557553268544409656581505146813951467602486601161718431423355364375823709837855729661973044386202108536511284082566174323567641090547043329301183839192627183428841561053152519445756635666479761867006914287615439930600991387009292458695465207848334116295330758923221608127354680214098214600867037285508035655166885343465067561669463736419307593986896034618641780086119620203586290689047006547826647697363673899738698019237244236790545036006243459745555072647793298802174738310875630762164326818720321935766654685606146752689510050615373273932938026695417034689826419911247216399769359210107712671772532681565945475360589234949297127297488564910270579497951611197716708155083088121004636914125647208263082306189705975822152994965034611821204963211626553318593553563376966353370223784091701328130832183923781273167395183527535195875847206264088273976805838233035243462469603323451878593204590685924663850702448880553211300104674399653965996429678526556218035387150473168323777084725396053637869478987082682178833891046440855649336823825834408517692811157310455805933417344406899136921095872113153255176620594795125105092647491857898376494975130324489742351680346973429208551992879515282075949805558832579449942636736434228713565160603846541359725663049053483005221758933658608521171840425381094571909618754380655491275011928357466383332756094670764839350405147624962495469930700928798791306152782707548843116509589533595393998396169959151788321010691625152213071992954270061705973904453923799015348447971041836752456868920341818310948183464133161738090196087720535965905775999935981943393002239014557181147010596964653932981594358790122136113479843808277575527776882676673795858066498686519263951155348954649251274793884266876383093270491104629106710881575252051499617711502484759498465603063263051494076468201157899649094514756549426571869221952566520242389316504243143107166115875288319937279830806257919987631858396695998828150231072360116889375965868707560474771400319969689254065340198092321087499662264123176893518616054197201932152068370668106183083205408331106779912965398947350036142547755424271613447782238222989680243657238691044747206840562134617438382655889798819114520261314376750759181670263557261487732591490350079486305071795120159237848506801784717346858834372577240443984592352380246674033774687219878127207909152177592706035585021238920074365608232146207883512638066042845305712948799908694176414988071097192238830489770455674621533307440511904433534470812640334169082902472494478825149270018519305279328565864147993726219182078793910872858049907631759877831093792908233763251254279150382693692746503700586280780447767423235288867557674417510614094459177725783560216971809580854005600263602957009051045576270192148406961429404789585183245798067458300927935017146995511533407785687827275155652672983402655682743986511780956469590369434512507436050727479026282161948940650310397291434129637608762611665094032783014303742222624033757001354164877796541707784593374202199132711780303739237565160496011834815361251040323448997520652680405342434242505803786225213362289294197544918138262508398186847367859944908166968263720131802728314596229598436512502530509226040728965595976290034642341094601712710920341350991995347615615401201015135696303823693874844767004417751469008623061974369250910023055628527926140151072084893522313497968149127451145076150779349237872343413478246555022883347913119998172971407731160833966536091945812594788285158986438200975993734839237348507036130197802410016697764425764043703297339646639945092156254527034453470494932094431808917071414538373623358836441833327346137923614226559927738173680208047788098120592310648751587772809921704734174965666695013112167324839187615011163335683910742416475709485190614351737956297965372605377525619758253621838349994337349192181165186466877749726429641736475348658339484865323336906448464557853462075422817744173552992687124894742525173962484784932113784282258290441775971338694259608862713051835641040354648546552565510667028239482070048654440244736103605023543281354506550613147080026478836473312987195230514745329827201040462854870064237953270307942481218356685413950922968577573282054925053419068780862736890809655563708464768275627809064169107062499347113795448720923062955307428925584485150892351140645903753926051615689129152456931042047157551142760123619065645342432912638841902234747100388295274938292437411519816978192645334761003493140108313702936526883667721403022312021877452700934682811995233819774841417282369179857135627340792095149428298745583896515445380465188380299714407605558283385260021301843397542217931924676194022752121770877836886696752554975988169952745337332944720545803032487085274383401218390015446068387622895621395991468907203721494233334291512459105325122339607749219256690497617317195497419963587565628000063352799267496726356232784920916207415578203794362677560261540359701556735379931274310660950040556984645733763815943052494034200003594716626457277236570135796022279793012412442044641000541490642766321399037464410456614625682056992113150683487093941222733745496194358432108021591368886658802078887375249959781435932853966908194227270118302480083466066421570881847146604039077442932997533327490873509567059706528024796238641588939556124752216563127083284330289866711438533513464247942599685001980168908396923782299204764045998149333469885640329855178804901015769770851712390022905727386072873212426271431522751015833461146483782283806568797582997876761648688095731259010397019711455997297378979353053116587030468953743782741390272229444849909899762683592884017818525925595909245387747445769638112612994323783689488511823997713179503296955663459460138754379875273034737491333013717281675686900717306806238782326821190386544774610696239678261269655371406382988654604013648522804038424961315857636341786214657198808309804603493890418004802372297751449962862301510824069761118044534451523903665344382771209546135361982748859237863349198622791440657375973764149925848876223582033077166604252050724904480622076393409238928697723176371861458824227672481286963851802626879434388718954444632848351790326444982475915510401267843398336033161937873451191904092412988329363159969513879396222072147133909032176205496347217051425757250061307442694329559361817802228827876466898113904974138790130858158929787424284742132208991498686410694670804209204681930535704963711436414172107960976403977371597414166961221439461460055528380807073626789752998542217352039770663299682233839834687434419683081472028356809712981974537090983488323892284387731828209132672693270459578463460340614590759085267038009794041616955533776263562111014466620451811058399282553748677907539831047014252974096699250857177808299478346136917927962249148420251367570274398303457863106407013937800792160917981872210259751861227758027192179940576815869659543920541831547757055484747092310790373076046111734897314816783971722423525691952738097079210936244874429441931369280055307874679150165577285305319263704754154920233439443802052782052373377280675606902437175321504403018019927893114421905949942427507579727125461855898088540525813197331351366078639253890313241407715441938887837682564832947178029818658460288624311832150863059120513794505539758059018738588276197849799571055694037226347677083694350600221712825718381179088996823959320656673456558949348496237203421413258382633543632736946644399179712592062277880941832876902855398196449240811439522476356209390301347907476234032405756989751746004151791951663753262949859811678085305956895198921131325045125506038885698625800230672558818942931269851326742196454049538162552168630844049424690961246879929517078616777121267712722316754635508482515151541916635646640192229899321038637872155380650867765310225262593015841269559259641233291815347538914510421303213501984186199295291074066787428211585024544119691979913210980568203017148044439148384544583675289003278483967427522145421046945097037892176705448164581114664215232483282641445129334088582927634687514255903084524238931175612103961797038482509533194024581311101415933106168518057365417991393922481452946119997048290415733615916348644010665953128145878015972124820518847414399874703593153342017808533136320057226505749542176299029186447067464742856249439251305809505899228041070423095005892368610398195149679128600047472961255205204950290506868650033514218468298584549585713699064824783996595697898139943633683079216102054397930076415931138984918666204186870240900314793356122729744125508824372939409546338411558295786225052217224780244421097907249343654622118069714943377428323027755571380257336886889864165309266682361870913557654211370740381390561573958640860326316847789972238309476498584199198581036731424995425832846651233024528172692275900567214974279745292622330579542496960250852641822960470772428791636945699430943054056042480284809577468421638692047848914511454442767215193953805599228856862916523126779618025432210085040618592559702336808873235001840540721393955629428234576511607691057369257105340235981928033890434662052255494952802811385435330287999911308215791698890310344773662710136008234325335208481472259837814091690892702106570853205783823055454987580687723909856300023750603746177527350300970473781389816146649889607625167827660366988613803204779970312427702700800293868679277284210684908389726764798731910359583601346590998122625680243202103065451716441981422786510621070313858590532435282820925846735508669385090607679717336835344645433945548356637180649328264913434427036029522755045066196541851577613084462665682273934312417701535412745007779176128177021196146234931355543998511086182086348299561218389823752423425895372548309875177136290278679378643850454571067398224614969553423498632272746879849377017070119422722679999298903387302953269062430618279663695731500274488782262836675007911239819909579388386002311237917652890067935704111480220076617824227940681196045560498195777606655331820189531277164285759463213175340913767507286096614716967724518809392065380392909573075621813310706454299453405390572252230402380255895329791702035741017969138269788532760978854093911890655895729411648560127584769260959892420639288876367414580021261108769130101002584489366040086264077949505317929854639095723310533295353510742257491313982946065914836632791600932206650451193217801135051931039412885719710508414060970189684000960138503204211850438815876202848696497437659217915632416945358718532920937277825326471414743678889931784650551039930157197277513829196906112957375841906853752305966904122042816377908215862746027582200050158725406489615497321342442499391829767074915359602810063017676563713652427059085252196414692703057752376486398075564732487926316956848010722040109584163014006487352240278145878047771423091301628452698969365059033607256358977439662266362686846179562952137648517859455625805088393085065853808462560771753838551025438987367425272020105125567034824682937505872888442587757112331880535165913546187115477312161714461091999794508204476792495589479258827827474092991996673511690746875040066443542786561461251727398540900687017092448536209509728388153139613561037028334250191838764523710462641034531492266047046361695975759285279103837409014811072135670827109267788799360535474497131034891805029785559360350936130063432328849199291944280858794953577702218520191257006249212076187310947844835267369719331343542341754237237785620345066410270952376164298012662544126468363029858390135422666857948110116874684214719617350247476997463705243410365777719638343815606567475921182464483381754642733129445944257356468863709272496938474256148905000978028625425610661812857152552080850187807271224713028926845066827658604735455069459961029868623950287614518915767382678838431231194841395312680774657961393815670993350600193421987737166057425744872144190507403025490658841633463981445538719137807523103201128318956468206083566766897986209918701298982145687587237825825108840842716491966545765342376841835082433785695360251178698222798622859358838826044871015384999902066767565507289636004978479415335996099038531961059567626188555220437872408927354868171762767315952156952379556390828555176029798878032685781889658548306074715107680542148399635875621181083537772796503916816232062737302704365338283238659973362038970254695270611132111258247319625297056351284975002269752494854046275252056233806003617770198156391345152912540014646062096502593409642013108136373458814512247155976386385346291165428151950565715952814218657032263249210948117812679339947377732885978670965084713536599978563761231678809500247114388758793768110915006919456437500779015432373253603032242458899472605997262748266312974830873575933790516295353452266307950454739181428724675573148524170488975693968570330278974412031319838540222153726003172321406561909448103964505883445092267838642663687775665589481063788770734760453010636347435435540396503881766287250927626866605728836310148904500672107317099135359238829484246928605251649510335833008469776360896170738631379017940470457443239106067731670481348251019061695178938170265243248475020831862807410628356268852148139166861129465440260829475081691778130911176093921996370589905040328768758507865547480329265097563885476106271212418570087749129439943380284941013060670709229806927750328479119580933531592581386096964681848810337575220124650250903214840855438821873903573709444129802189962913377355724220907405191277017236139079591624251449532175186721073350827088323600494474595457921541803687032619715224647850481468767959063843883040703902588610912156208814007148774812147758193171786542890874182192498832199024428522152236002584522370719997153177972247247119931949998827968168215131439538019360649644172793957996687044852470775763342167145708594763351771186489858353348531377941389653504978712277755632667766295040823236988614753949027179950344553347503077942660619636513668189753960259148516562165702656474714280733827121150420218152983142121261208579958261144847966548169258906843451561013058843141720343271990825849103199420685330420241005331821185151884250254140221821021197462964495380946827449492643936471915373952598883566888573223236443004748077663314105931989121552336270168562885181086736291523971663662777400301430920302176173417816952611218565494620327683746267877242712954487464095453953339659759699194073251045795495643877178829819664856071933065640051044474191070285833676427607797540083835172658567444436609610228521525299447008258709741747421797493558013389259563396951596250770431941883475524785490612489491936758749153251381222341471793067606405633843034029409439291586970285514666692583706615552035487072937722111223970375948067166361393517999626617214895295259800981523210725872877592083000879348119663240106664552307980532106107027596037190018079345757816244708872678023142059772572268314246674745521184752223640254782823801220178238776081354803039711690471883526055785255081696592659387077348234438837850223579210140909066456960652778118213109346609542602688686026420491661955016149317643212252200342528529946384466296078881686025144172757124481821878335100511020213761513264139597394220206155542205875995853052039828162830549882750630814175676295261632116061229390409074764847752299857314637227428931238886904536239534636698836654735150669388986210946608786482305646574927592923175095422895925850074294301862121179411474088926869482331261046742088147385735727611169172639728882489099133708734379180127930538456249345755410819451280518015459595116017980362758644960914828168875004611239570277829947203247180404604777949212167275342259318158653606773892264275560874460588301106493991897326916777126280838839288758017285563399321846785453242043160968088132031279571894442379396285547035333208765789205952706481928625112635050397154857234732534762048923791049913309998740430674545109996940733733639647286310228654300312569011294788919402991697444046979460781238261624970390580639700977946752759989227956262114119252430549691003961705872267571440373607419256926590707522798865279742408177571928714160240461216055650378032552557389832276949886066056081796961760768646746462593159764686057709259242159264973776808993260504964589752871871469941243118612821682870878127601717026779924734869244704620125588996645551581333446101318587175627763617534894853585001812033463990493622089265523903388541210017980731566877782963163055522688558334722425710316110786044946833900367406676219581355640352936953226964526049616913538524531725709244636907407614548033706932412731938172123021128380347561480988036284515455893097581708687776222114248670556386256861058816733585470378585031211470596934129289277676094963055217113771569034703329437414046714536163087984694113169930505992405489394546184102172261207317674061766308357070024729673076118181812321897627758129208666368724466172407419408333598581368263107419662395698330582101722318853470416754369076911325990668832984495625897123388725368823269428507385253202840851830548543251928443663579481877873284856177318337248753300891137854744607541667309770872396080578456874529296190585006539906279568580977819706677949305464179110267260166002494332607322586794357410449070506126393639012555276694024053427981191755592648577153932738979593909003840121804037837726965657455104633580300703928118806418814930267438297553128751643794535608142368557422123649227811744174445031505850583118486743365551890266232591597599677343781207136235601981040287810750007641848839573302178621064661058393585853505644809636775121144871590640263937409251206866801789907582491030291971565680006211948547848021378072791284899101439138413938449616088377536495273153427020488998079634626547314661256941733707918615065039784731318439587246381307680413701821298499801578151480783384708297041493887589331656199561016611623033564911499056209420132011060158127285300933099260827395924116993437233153111141489674168989850660531627044729266497744516288882648029000121554432395137751267463651867919834850795250290605152914230471143762393741733413835687837148542904236785853658050954566204620716736220545152225624514792517666142670381613501596732865786898813870356110214741099792400842117352248801672408623489854126773903728215188598874524553382436849258549377873116865254445035798374497619867242942982027106918857674558652903236361302525473938131226992256236943124517960027423657772658632258375077037364208056316910703870913466984230821221792752724531588379048202715595876551712423585950132709234833925923472796086979579548503067704310195092557124566157898451729929747371406588693206562741726095463040804478904729930115817700386596802116075434102755289064811021680199754835575640003012363503371186457379972905251557904828350345682971771861603390026044486993758339473164361227090164954057254185691715563223293036819247128115651656760627659644972150972040297739743453940037676125217634157635197443948832573554440917000312299896387571248756355070170985293474120576773580567530527739565450267573347306651767108129961243100401044495615455148005704461132326377589161950940052346235877993467945072720837859335700092989181486396716947464148439193888112786750467976288679678363770226163681288076556045457871900085085817168813323945959591344918722169954619619522131861872669127059301868601162171801995159890168930945940630005603811851103447293020358663100911222785879305942024624843511168419679057247809711864641746332802262262293805208164647425171208167057298270955422204445428301673726228722188593115938395733158479742341948472393567395767936314541927194992000152542678151756025048193977971120119276335070293868727371264709878345336325529889210808205860855206041403597479033080835161495492060213749754439293954749021929609501846083399947943032807003319090937970002061960261527917705594013793474380726011888507059663998017040831566605635330499237962235556435136631033380163153365411890056406741078213616520964370914781835028323275269803839242937230309465542749549408290061792039008451621706736926984475779414145705515181497077798928065683682984482715125270499719140292070558335640712936874371345246777593652574563125739489181434880192681144054473266087878944713640733617022150594692851564062137161576594088193545087354093338977862000869370545706487335262842532530264499072101753806735949275253599572206937863593245887858211080600485900173218706914508102523221458303495200375520354385560146896292346115276441940593715581331719140143315414614622558604689236746944970358984633439078388321737514077493113698896978655095328393113842377946973189483685878515642422347290270452283528120586319477663416313668063604371689126252038568111589459313391878510910372875555660149023412939618779476012034252300963603683252441365444347536523182151494073204890496984630952860884039008942064383963708767161238667785829290018145129116901597868376768361525052679495549535694461868770069802560568298183472305934183690053167540229314228755492121791678919186975041799853204426096317948928144479152755158671818217597455320937229985278062004341706016259539520642729295969865929139220152773056989015841569482344334968631856257067738960007365609478040217603675073581777319258866846619415084523637284132791592593449242571094076092594922505668218761660948759665360678437985160616320813646697683619362002004039663516587220998347647784944380647264790710531843115417186467182757543391725036320155618709527749772556550184099144051997465982659811263431238685779141602915834824049658940033609060394836905297681978372485433259527418486598912728372026298017272941361558016998532698200770553337677272394033316944795206005044400759801618641030348163590597449828517249854091104288712380841880598171276090957212702009420023263388039038410804691149794870244231827878911063751607922796488807155695152036549773169584653828548773637933383325916095667945268772016379821337150368670180012540578266658382484107206262861564594030522233347672007480273758822477182952370566962747552278671890394896655370582312200155560168400378719301992966689573614393140463607230970262998677697316152336973407397958872436675161158444689276360225412631396452127147242940391689904818792828516442323322991050450692396861037608720683470532217221633025330158212663436200933396140908141807595385181774684510224689307156323374504095811678566381970016523701626447148738211435688588121651176919632649064111912139401431185165970884593643889338912081998191587590959066985532321287264216314747955746148782604617842114384781555467940416555723975529459343892836554103921290946334511992860334154058717858790704601616635199403623476658545567768914547939472407387316843521201374566666240882240175910976390004366785559447087898794243145311645841996501171018588207438910207977872423266440343209248245913699339744965188982146691072881402677500266691310051500220597900809674027880656152488119427754176212623326557888288872356061648944395259606778749866438473913709539224443594976961291139639562874294071680144380314203807518752143226481465462367819820987864121830356341771694233696630161177291899057566088145748119723916909795306913021409774970927764759664611570153212140868274301699930510319216083256428685962903447205281755472127011710963513538015857098603070226261586958777047677605678032278036328302598764730559284627318260481540265900462315771205710252637305374230931658543229048480880750576275115987201864154755312439416995626890096146886691201146908589740250214429401473306847374800677918502328182689922971018481233391363814742333253792482947791848278613311489776936679541071167876422941518810996764681414278631459654081645820235102631589845038166404117392628622532037822276516831461123796446568315179136065357041053154759464319674091890763028025285843419083789659693105254511601991544075144528455513419605707279967612602877030116601748006879454843371970533216540792800580792135415322030453359534762851846999730169398033510879743824184697179092078052792442160296747496675102051713168015130246062146768583412960176550281999319214220367358233163030236788793745307024433431384014372000053590711796755971568513876650286277955740813731761177389167742126652762256862777430596665550561885514397792762778035402440617951724855292078740223480159830115646829624022686368534374608287508482918149881700917695615030363157113509746021068171900137887513346704217241620468139930227919127674550398867048741101909583487729280385509221531530012112467047544299138481745329793610552938895666101716044657370910833671011204082291105777571479539394691850129065403333762611310568656042767127620949641203304034578663658612105190057173062400717202616210343771301071510939621271808917800822723341545017580116118423246545816224805872927084686817097875926827116456066286516247880919777706791656979234395148103580420677615833339667489614338620892268872485391249471553104779575202617905684297483836857575168180173295673992327402015974121601346019086795622390816769109006073101989308704100599793281825349750851219361108138912300071116062478076769747558749245295857161751881755672105935990228611661487356703710099760901233722829308333671647746092767724013916352342729609154499278176389985129409823910140258304320115740337909202169960314866991225225135973777479904222845816796401641207191838568641171623463959980319803968735514417051209072850706362154103518992763784584731832721326762273819320592065835412902907027208434834886529487732126152983891408524297519068456672577875945086682273878645612154232789992770716161044894601950953118475296434607076685129025532151316423180310761920218120700444473306220484200554057609508519415169410294621054347010217874329763610198926584539883326887953716175414816217133539850046316606366498435835124440658232177376230283502131735560043996831323873100178270745143912783062982513267387140738261231522571827762778497690179806707808631332867101377395362285360862256355835182966166446522892280993563775579790708667006558253944787455415727642271531831558703552808761040508026241428629394049746852897440643265212152390442059396054795784237915082754711800432587086898250878408421206205779919366586483400603207842974303157413704247362633969888403503542316689765522963728783039507104996185135617814432161157094915684180962774879936020202169793609560594358777646598427799448776911584545281108580910721371768564402645622630613681130166141418561489472561724516204814325574439165935841148578316530187915861212822301161653191372521376777742740169713912587698545407372356535325729623055618471686144778034178044833471804755814876398880291020487860294344218642239019822272603110194338352728762138061783915456486284721130874160004470743168974742929531532412988055542287190599882690019830272149212507353611921579785782449292689227599841496533895657583691203801746985485410732889858872993043735214591098863096502517615197398928396982031675089341112575361798342050366828139076594034962897792611598202712488507586518017822769275687000332503464436192380428252368871106741033859943222585073719265733459171986457492584698244387485963978693787309362379354058839845614056590615288044129246012110045662896447347895992474648022256170023199111722768231427797026813335563717645800207292900658706418238672343870872073020862593195927620788909143939576694053658766409437046524400615759030017441375554462431387398824282580952201908723029267374776764388692020337914994831937061501576483571179401706515166460598439804964812656347006928165168620625007414749461191665630659643912138547881100638099963283902931886048921536680571324861249399683436062108667597674908973218972858480232929895484820454588239912856527442990367334142679251191434905047037759575614694861186997570414873554814608240835878145427082114947332366384517041815470251477941806007593844906792347080816992721551426194341801299443519685115102709504205716670614234700743581069190968853113568206695226852941934709575346551863487000496305211187936506543949929511277344863869227075197126054866191873944223940345964211566314480497500752701059274492767473532820553161890779894376123808646728223535288748141351068151511850473540009897453037818407167477951174934445367345224660342211317454818945119589768366133957483740755534183352697649372141388691855177516541762721579874297690515144799778225418557647966098513127186300693604004199401606634603795925695944610674086284078394104875266900447678861558053258161822443306030359830180695683084365475452759759349012763362174843909108820156497845608249809465770714951529086650584724392275817257870750737109939815821046661602907786986343767307590563997192155823179715984616337553131916574753210265095270381222181700539535100146274938519035672149690385097777292855727263905117172959402920965519471791123187745841958337762039949126734405007478926894357982503002629096616875706620971340100562409430742210129984538106202748152262574123212297008092498019405438718492914653534741920918870219529396886333217859786194782591725672856750612439757424075364255302737112541894380264583045577595920957536236540204585214083060632496378616348588746299635595637607488287367728029853671770225268870668939197433672951607642717201013552526286018270357704172861698785330822750630088262410814003894977354553230025446205420159570835113596290155678702100962377680754759620717219135347347085201782471721875561428287707735305024104162035296218367005649673110036465618992025742620016327318556898127212707568360019756247974789154766993381676274295771641715002218083645252000682329412423671288168389058038220274914438221823636007427561456614300107147541294012870154326108840267131393405539395581234233731463612539063944211581205893980469898488150597318675313831472526584743659052730367609389199505137385963016527842809913497447767394551879335026285219120258979535260266639572576765059878365053765022775304793321192886577621991490228177298705660723430140064242298404295599724845999566940797650875088203242142897016241506236456052214585882684746220209867571864088218796523647155307095374102355668519245021329284849697085450734217230487178380408396066757079791293780373280141501427085651570830443404038700383162636015869446888422484396161898935836326802993600730078717305414095338588836809242592806403370528469245414041478948789042578382737691776814575111495944676106483229362662460653940045813431623597909284864986759250802559636745818799649204884490193962740083783840592513699347454457905076327816799304860561665951891768839251631183193555565543755695344258292812558151904330339980200092355306413460352935388101508791320143096627045574315278105779183524716091643645695138782058116356042065391005001053461454552243748259790320671483808394231771501811132047839659685867986507767246098196797753364596870141681670559123363070041565939203561931338348280903586428642475658744967328543514207524583330713809490324566815865417831970929808184736541915141477231106514970705538530758401397750050209282841329014776126482825072536178375539025150279044631893943908104453027021520094501680473674023713400299220997367232667888131280798620652441747519653617117254737660234063918190016551102123050025420357739330733721276231810395473851555405594259562721068745944369185586866269759665816253653202474906447008532985509086250992517034577373987431764057186369055911358480354957425643688839811226310860384715274762319963281226708689645747136669979532993507598350733741575193750081190862162293695916953796377540037872815559607322360848766379978340809371155444697527733828959317652220131146929408224944996003644155523299334113574917775174714556712017834340373119190890300512345251112101288637777549181010606237619165481238236809922000053053751020875548482985703848163027806637370842724217930575398069141432954554944704661012426680520694310909845392824300414155108838695514441442942298247820263326204434191143488517403245384955271899886900886079789978454694598842233686366590478072864010757476729321973998735377116611982257822793755616625091156690941694753696170432009959298713662696028050689439625610115674520354795143565772944457114865594941720804295679975672666832693331217840462091919589619120741593843853611596545904536083298760790007682739194709041415072391629748260597152626996468699702794925551519410949220294950132792585655101108037074166892372451898304340142495573396830032653283285946631808526745638071413996555647197319988255420601204879851764027429476960540037653054970192381810505293549431764172210363362097875189104061899923530569914391303303428287167821411890815474367046677314163226359706720021292718894454715241332976419754772170203389971956298885178429102817491089297643265067260700579121023435239273284809945706065346246553586993003686736838507329164731943017916817744707563710881829173367488102883780027199110440219648561709947274138642450111145396746247239015584820428133662292627488205226610367138944108433007928124045688162028125365900733254009370748325400712293003111079592183749547719145797866630056217029099445538613574246162477746468536567153734116627191656975869028966549410655178779223726025169725834850567650418023504034468240210337501657681254643428464794005596521578149147542291502223112374354115169055496440029706300795375744168083647311796306829897451397277646029445520274008427699515235583178779118566322538478914329826180776580441280295196800882998911197541313660655427892269606135263140427529382587135547453523440049434907852623073640699944107944822314455069230295563099073118815223009149634318196030372429154092694395838291303214294039342624551285334850916638830023608688408979558633183872398428308598351313851723603748307707045650814303702119547783488179510101417299018932712720782509361934828400699646175697559219106479193341869228924662561932109492270207097288312455323216665158996581030744677824977841925550551443838074848951149887793584176702720081747559977463273537727608311254808496949850493804914409499017143993838569726431710575254605887585243120277579253249191393889869787196181741382512899816688261186055143842694939007594560923232419232972925499154828750096247104942147520644771084746921763325857253191308529253662673809046645359893428777465337397039937583395805206797232731353034031594648870507647832661890082464869718052751896298246518831914323068689027997198732260013864435253675904218730556926462419738040263409113251067087019712665344393603153091743759227551771880223228136538558140671297238078089171976690685342658309271888691933414560442664942553457655339925594538124550785555791265912713026064868139638814561919573244057723435280754481511680220090029241189084988074369843547507960074576858769217656119031164013013473722816000304783315001009127001033107005020215283260865307154306316091080185949168765087414422801249437483096873054683091479582550838802939444153536595621632545766664136348856342547867507897651068169051033698549638104204206826994455040829257118675300962117231651168371321153220229445971398752835870267934921974447821196731698446074336831000308531701216998299443170888188868515103185177669216446270164621808638170508862709587840164587380184996031244192793902982868519433483582131501703145780048111412275133871032218691023093178497223126710793058952343814486751482975514713178387231083751362933465088252105781939527788312605124834662216418403155590535753772744507659045679042885144079520425479332322931025644228310090744472171418257627093830784941008217217196544441941855291412440102845537225148275951208513135518417475508037222454472857685630186105443352451800432551977914292168049262380596279632552001663076423796162618959822540521197693646990753625490288974623638004333702203004040104784085490880310265965766205528237599720488747278600697892707627268333163377799942579186181119882575355147398872728438058691034815362393002655229347620248903498610000312547399497235120475921226698234555701307045236289874738322610124668174467250082364910609290279947214041468973870965195145847797692567433832536400998372441058345847087655917850681632527484816567049339993755057043351516324457452944171511415178763030958738632558133465992429014649379644616557502955546224909187074371627492422563318852002657331394481010583292845458698843974789984269584227196454097707265210807059207318375030232326235213123675520104155523572820450993691698320932012458957874995722138568387105117018289193878309717334831740472736521949278907023449920757644244526761969057792393395625161986221047158057844745237712043401339207585637188632987592301516060501955657038712575852085619395522833734787103132565898622646624528683534917703892760819431383242470852314073941757085051139921059872623330675205122690976470057656775544668563961083759719567658676561704208393527815052617504965947365518808176580070919572938927288119423973453545195061675700984231193658044666372871629151370937791684616283389786298149582957244956981918391139328185439524890020016270881513624975508705232657888276376608467196092956295367321433186212703156818392807540048632303638995175214350877403883769860080896963093616523564871475042592100852505658101087426598900436995787711041853449380873150853165381879425842007861918040568606585948483898155686835874964881118222751193444100053275807051982572699436325968683410609320573054395869822931089950731719830229950736480547731001521920598674951247186411306458114129799223630264230897707634605457321107971969131526456806134819266736752676819008637754395300356037541776895363112521380636079730108858543187294990652385551374685457437021173526422476252598054158510118803417316688314241315088505058877823121517848186095195167329499416301587845542084057147892366581168893491366661574891968076691668976616692762835936190481031950180050897741354273799706392518187640045789518389259098749269590101855769231754063993645260227888685807494978149416945859772104308443343472129539863878604142510937228178354103835912633554802823983735929902515885283956244628688944780819166241479592025233729136193522825231851080249279911099408841517877626409133712232651747168811647018831096014499963245376328771314234859510527539801782691441693803762099581968714328978746550137215841438976119303635113179691466249472028799357444326472248574951540681174146241597789230702199400506478565949386964207627864888370060878574004102473602255272276998167949602208936173279616646701874643351442800118054781259052425768723104510371814675933898328467213660130846517281205527491261559982780024299640292625789793284892547590687718776971253677046134304110567489539777331440533548569394318399539839269738303434430534884882942306223710292340728517369278874941697115165690687148886097606730814572753018803693065692397754777809126121901206856868546849741341648317232530561696801227110956809826325608732228446219995645465253638754279977789201892041229244371935342377813754061921074236104662849412280956793342090034091522042008252852795802296573678116013719028222245890177830294561607711825134592761914190645742401505127375402000199910218443107553713691618725839021043720407036503896555508169935702048585049502029218817042429548104957600440110640683668071855805342782616586184234580447025188184352006986878867490213352764263090124863415206714981622969726953596705613537437595330932060712406768246307173380790162005252679913478646864233483813570306752667423853310712074119451845347585788260204519242191297400493420868515080562104275885470616083411827754436571592673607053591909874296886186899980380502055558448279597625758151939469554419043030369697963279029442224837317052594748562124635420686327719732878433894715587980390169207428643680252854272678416048821507977554919960325976486850508674033167043574648597273493567230357496820290369631715906926683553232193559010942135376882582751030614365308542988707060973488279989355568007585314879589891123738573824489118318553257593189367048503533141842645325858055055478911987935011954092856145374973953830964356956740924285674568833972233815854236022410055865268303302812426671856016054661789518700210464690207522637648509381821337972182374883881387530657732128440857840393336429698850684503841828718736886374262628401749773963048622515384744120590685222786102456087260988198960314305099970188324791015303497081518200758339818279372927478043285309669969783891731364570885677820176224137517457380323754244819366669857461344860350710696896057211670009370044160463936502662111572267886411171759655925754099125614105076411536041521280154574644872238005654385709082053446036654017580176183566446281461136213698749265394245106210754179393933963731140216710053440932201358519209065569675975915209162538904738817942144985282021559862084369395985584503639110518254853368663758330239856792029661373351103784948989673821117041363398475208844582153685575269060497777191588201848521869974657024709717482476208912416416212676066906322705529489218789472006142972458378636126280230032716842722761741925874903639418022658989888039400936739362128472793718790979059739130861007210058635042738880434250564323738686308816902524946170849967386278866479615258586400194357242511174968009980950633548041460691234849195222228570845051698452776871209361823250664289818041082527361835080104259200335964179590617408134816483513308808648285715794782436357413740206749423171901676866954808746833952041359154839447670811875515512113304799720985636857485360697074873431309408847976863203011781989380988664677690081553155826777446583133195242498725276833134532574204009851540821845555652600449954674378380276724819098043754818632362459062449831229790755368442710542280083769615459741231020891429079486809292320773707762322913865629903846537496124644422586815828384160069627513727235821565914134347963797304132848022069784238694434075682577570673936183681249242674108636962474822392078532025401556181794213218960063630736868761641095773986086700265565157377427006745471890592029952585291964997891456935727829130189446499530673174826033541005201907959909741511919210867945918267344524000162953780509267498776046725297227584768916808337371575602540085078965405394933683325176731916123417384356813521614957867499475106546111541396427979556479121044473087031748611029334735279658284175242313747790897539648295434194029173239856835378346566976506621309891151128819723460397905178937145954617668599869669895955375329149547704282869395265983978571350480707267802975125986927202132671556822337633124228388547362171995612741663134649273456053196405144851283856082786142235241331131631070118657486750393902849939583916975125141027279533680594975547042924908927873298972276985134748623143679086560394269948071556883066163476858292548310545006019970013644208944530593424103474084449152672705926988091268298550988421329185615399666985093225208108429808641631769047912975079122014820854006851404764076113088339851706629393422541239590820210686802640930614407725543459425225074396955426767269299649853251486951353783797760810866654237410605949575472247667600398505281967504328919868439938685419830165812618803487543117151076145382626481691202924778334424393521721256200069402394691268016643349349920337345929833491355393530543229973436585550467313090178832802199478089062544401949429359100879495013795984831969885402845631206551408125384491312036631599405167096617311308891137707506182247184240403924833812908919563062372512242242567698408567094999414734941163875526366954039554105678926607302735801523391081078430890856309751589019809126204030774973969430015034845811781144591546726848192857528887455913212635169577259590017660138162017806185854290505720712332117136727617417084371863290103635151979759446931779935527618519740171081338013329437018495288136873460665674097931317268689763390104501146760829467468647955508054577651386062210294813563818322782843496975547418417434093506919095442211618990194130970377598548086172169374723498356817198544574726062014773458594569757911698963229327111552975298800025261092131756761343590218317731547127329973045954084031841656124283838443415970338656090189495994173203410160338084800881866452158725690733831066781764360207134005304854724582657267908531232008172283737264834202948908065952028074181461403210010159435982236401873537774693548141935604672390970508362918639586275212146153166907056620382845126812341825707078423743243480951540402482687582216340955142657834309589476389935409397314295663038403505718973114913491157361787708499009912807330461912219551320288736552608960996463591429729520411803196710264324342441577510500007689607925059689468397386363258547900580311595722744641430520636525404369328332681206262155103608469766349231166708559707215886943684937671350659115467288551682401506428354877503374841368411550726440941674641043461919102370807786230512430694502357127633971777253096055451235355898811501215336556046157943321721850612379452311112752225056474662837076035022031974956281246595235762704302072272358929798798289193871849444009443861040464643493010232677826079481911712403995875096892671289515289472974380390959555653758535683884890071493517506510604664980149055657413968850119308491385050451555482915583683878229000363667617399410536708733713386643397788604112988291362422045542114860956593336302154362385093170516640515531855434875636768812773731082370880571712128910472667745618039461480090710347683570814233438664242748709751008053582567912643074092892276836670062803741939022387936364103139146038423575034338924828407664932136088719204710795363083178482737574792911454401026476949884817243369840420962045474823773982307311013800912328124100040113492850621914120418607136144524856718833023916579974638471241609110873553975444291548735659047437611313953057458492532999640679532282580621882512592513663196687770496754936297667646768453942764176896762884555031440145531541851815021543335571559890593397828670567632404708453823596042579698393934588512011360525490490362775268792729124244875379609746921814511288745040076363025482314046862263540345627740442556488306659658178187963007916412354192632790508745926230016121048805363845820949293119396086420449267585772268878800665679387441400953870654874163319574226426818119490692363106135233354783084962720599140447817370010393711108916626432444533355291789247962379053149681758274818514617811884312065854036449890966559483417873704569765730353301294107289251263832051304185177048732214977831541696880565548944278294027185387434761886711636366238620629048087223085899352760752081005131825663156144755064449963573209817014659768209112715254965080367970549819989319076837994193450250248929492447239441496417513005974718394865705672174605546481617521620854372512709148144661577917628146605883193594196787920448363923435822866707548763475395699314200345257440031612462849856202715389956632002200473474549398017718832647523427573418446370621625603913969400523784697928544134521562806788916350229561146474691587188800984498982019006815169298826604479122749400849476131353672837761126502774335042088877987176440618008798793311075283437208995357623574290596218026981766301164919789428878014225196307820326184673275329980281506035531409302297582586828716097854625780893211057076472528425229658282294950338323702706102283591629900056693502821625576174491364431560149680049430394069441647747493841683484210434725535338476464750319521637870606710928417776208277782440209942689592872034647200164963582109065749224609157402484558198106025282957211011075776487364305042038075623748207336364460231221218663215746087717874278726844834955289960965795634742877117458262444770816288708470602116422534185619088253945166886584351077129850682108549956082937054942104653606858878810392007799360012743756339001688574943317686897529193360050729874056296474006899301566620030995231725340601208413263375486418873085481590024267572009316265808634771833476144333476984508227340013090141213127344075904158181612187937317684465007418564619360444280747377877789556954930869105472097238121288034911856798840761912572105390246270906822762326031870831717494660511784797729761859781003314031455998792861691881582833884336038054707278260059267223454508555483326263362706983470921129463813796321091791070689116657029681769101910225476442460427951383757517025402694067558410406517006542053934258007687752688732949038520382071824600024671484515515119104458823185541460752842003587654059346861491811015144033502626263871874979087636239599820364523913236781428590227591813117551778290153698513914946094206731871534280483742287502802110910742013607742437417766702001390506928986839754069473818109830813212506436096507459251704746617498780909114049962334484147229487183685232711058417195523532881830525924271876275325117362227001435086277200233590474540288650281782655348004251800007805489553693080768868219748376087593622494104182056501336532216293615411318449933501103240233570811866724027222805007977981757264140452278439016569850369611604199049470242553805487832017717071623825254359172741577318301953045674208731959629332635012903773237177624290672541891898508280535692532539290807240863829251795713705336018657348127949547107511219267275456627582137854113669128719800397088113756367533435589192991535301164613853778367928486310660239282513785167894667111343989615820757152985908400748558924428899553922695788561573541742919488268107203734248331379164050030027760867685471049565232165810672272033369734644303900901487181137440835956373741815467784779146307100251869129898012015297635190534926774715260285961893823616295622431801126026115537908574657911102996985533203476161356201921261207124689986583945277567881097433730391444975024900700846208972372281011923111801953319149322740052100558702370563485414496114378535393242935141324021847083786572818444460730040142024505281551916152055526603525771362667595878080158268776058407283728905801048973001297071603444618767236125397169795001030821909634485635434520848609609030873088724493080391317516703100677228939453037781310862633011898980819973394390564217516138968087166984447615302005270069514564114901354340144030383799065667902408253906393190507071859540062969253469207240918960507788842896394550170110449607121886730843222025020511645169497332285211919993461864123418924877500218153259785626685631087705389694156431533193322852587643570304580218480060626500777697748487826141495859991505800580149329831854202832104078610067187947030587376008636603205829917992570738307147423985613225682942573767622346315163476299307167624588293687593796047998382200536253465236415003202364027813309575044467080513548890437975618075609855870930168683891740855510434820910248244000121888081648516612543610238609367307904813590947809154281455524132425381183497523362654768997913280002075684388527678121827897144490834027879991934457268766496918190098271561064985024391992648876079365824240284338454981433138014129242394711344491787528209060504350433310192811116768964978065181484871061744710017615401786663967302716351987239915714952901449754015560704432427241474540285293987893096202139088318870311910103155527869288445014683693890681018964025107112353888118254418427954478889071629746117225050904187773963655654339040542854479822670425412481364362856518820783121040687134189619678002195435405212689985739184271586926317268302186081348288678734750638971890954474569634543242647943789362051217723588765175578035660783006398155139185225116625562628613718352216266049113360583824288287000939756609911891066953081706746914742293305263688043029840210466688076291573797177685369910384961525731011057717025718364952628056304496856198352043872998612989020445506852974553787569279683564304224125055210513106090438004940395007597100959811504840212528398176525333134406176032193375443165754748469220967493625688419895241557754587539146161248095252791773504446490051241863098184524268976215656673497329864145429149811932963191682423657662486217526291219704653770309437216400762687758285936082000908878301625006442503071657444295394174874766786353989006651236603150961286045124671793967266714504355562416133846540944191167425045419891564839366930842641974123174734186310849947042730022716994760541786715554997161763918769388216418399876369792872858674537345912050337348799557248763123579965294268892514776435495680989958790078329530729292767633202774483841246558895454423414689119971212419155112417522299051432862115765720286358279920691977697786703560675319745522443290364917102973684370019697001770363051739373851882004558788507751104282973486870777687405144161047262452146359798449877029365262081734624217033229921171084836618517243978543721181262673169518048869459311036589596541818820640083467169679340502471811299081494828584417487291040268095660091681774863119147203989377972872952945610994874716974085297417808021293250697641002758267117320079391879878853315390978821006735564023868594859628518879290940155994271353610483845733206143836053816204995536188751223328556570135367249346400365982706434848668741613407860376644116314259057462538532198159913332577513591691724862048507042684624833352712278751784510729480833827369955644105216407244559607037650330349494298100075488024754617259175402696310092055805798125161947829485162779788131959126471551791877457249570688924986369848891553199357964570321965140543713508603814480933716596399110727042703437833298819023287915480495190123382459254257855266742587750158779463935538107210479394794232751215034876257925335354776585529654528359619429799816895559005055842516514203190513468380966465481713255964150457456953276681691784006900500832856681764400928727834429945372723702910541688977714015118948249837610478338032641904712233227160981535500961283516231432241365282510748714874974326246016474896708805188215053061570396868764556846066356002601305191863303902410334479095893906746247078479075466364959399673002410921510808341742238323745767806298700801053585162965018025584467004440460053523860918425168319584630400382614721843880674793482206439860911069516781779165052871231866670277960274186675237063130512195394377006862785917288861505873022845448578404629713052931141343430601576227072124316908124314197738451318041243298642772715258103682789156412097466083728931660958577501618189600611126519781679663952452224002787784678375287834537300451559477315075541519818841801344286549826737043499639982879785452426489310919639159805569738039420389502834807138748969764729998738029474101364362369079093174788590065264635171562755445878696210586068920835985676221450942589946546573186760595252430256918097699077578328909418121443184068775921968312747413203900772118596634787583965054170711843988375569411608777679662447003319255762662402317261278534059703668986673453940233769040333037865877047055874975245923226107769401727351993653274490953967298774923009961621615096611112235414992772892951106890851798616998432331642882076767926603987682055505338561676247479086480922902150453985890174157043154921369128796500959451453963661343691594958987015172443455487523456735066106865729886662690538109188458029511288219407600435192486719964722810263237039927722467764643237615204226743220123934315778468360487302238362653046437933705373772738615867232238394653795006491166919469750907294854818763305220371818286200455687852163726121768364140631752116736362178549055509421138788933641974505334075173056939047101314659206058134970624554680787616367597972575925963588672742296186132924059926345953668155083368507463576378830510706061730413117323665322030220299020689663850398731408171793633057001164418722803361582912483939721415023872611400033972288348937993238888205811269023823119442590634255606060970354939397379031687031590063268416867819986022293081181921225479092197502564414941385739403370693735911049234657417240918405983294919553788554767122760513760177777304975066469301681831901146154505374177498096217793703779275638990607383291199749247106771707692002184455861736600481883832888157834837611192583122063073484580180120602935537421393884534684125016442672313035879842716644913538406066539885838755568012951462895497427792571524424846260051927903317536755722766055446650079394402288948497441268713354651610757452212255443323152164575722793935943240483731824524528749775130093866288009284663118219283467688861483034431043548912050108658282927750545506778208959114000472509147173290124997928753712195245655353228060036538808240626608098857347071997601373552286022655019878994713008275250730067526384429523651715780773139910440693342263422596760766060858300026172104098490002005966791797418997253726004280676658119455169042965552035585560620019640114694913668079410994467089476429316759541162475081575030483744954064550521144041907577323181345276563626265328993664874167359336868250223973830541229831647225467697131459288108306942905466656591663521321943158914515048855245112441090154660337036571906779493276773914517521167178804362431318747669071149645662975223502355328970647523558477023237773506427211678354922831082327160694912044214514503321907006549365574328453890651375882487074277296350644378424413030802720597772959147101084861572826913664183368606697262501180835075726723253415877785872835043978337717175741533892349199159464433277447046324886656135829645667255823607916958970990444795851590208111946802730372813647889539770514803411851046339729163999038423037371240559130405175612811203963658298578110065272199245918929507157181631421882320709731123262611252144349407851777999909376583342295060969488183628190372115484147572521381059345405125007612420914806643751139242602349188775297763235551743648064510862957668894137618220723603831293483058540831920435946295000331565313413333248608674969097737728474691794725291579453281558325063325775650607320190897567419938593228014548007206504353581001431779688677337111732783952016578216435734333255090739054833574938390238686774401345060467420239661399436646772645922083139515859033865368168353299009011330247136166369070819423816950894842428946282324339561603499805924054245239169835044438162655928155356508612675365172039533597410219376877198883803846791207762438619788893993658128959585594524215087153375976081333018859133260850727734763451230531843880959644349650578215648036536008500889514301400421112805831444084208289776198041853755873944817077989838436791951034920351694395735031153128864422294974077939691537555029145716477688075500586105234686520373470251242445360938971923309999708190309422287757967795559779823837212894378440951907387950582960781446600151535406463346803241012735550606685758774399156784991454810982823579618183757552229564354859599249031677508854290007972693230996876443647698270340918244391689633388300460704822259323231196386305710899502959443207439339353759001452166974514150103046532251256329240201096746947053124533762208895633828595353124549392866375203332588370726028018092061815010386659683171976817909932943164214043028833602145836714907845611073349086085986720942427034680315127986460581358467746182607064354589402225385028874170861793515331236795879454107409692681187091097955423419549396035593225320192335049092119676881553740630440315533236036114180884633446207437422201152964933416074064780775418616168835026630365769856025111763056532083855109556886502553956048753138345542361997065098311959875972868732903749554288928135006171346385145175774624373727713501967554666713915914659768344279426336037228107896388168728380073984532862963839940808784411767142820963212133406176459647706378187185140742821334523139621805372838883196504425842300255518420789910020956823725564525009063843675173970459047569213270362928679939540680221824757147245043114328745959045850971076750015499681638844738777098636983208256960061817131800652661099495895427913867582888888545829067591822871934287027600666813802327670465610569429413883670079878814612119030773426087552621347164401326949804961931614897054885724390162993799841804521077248482791199626279115321585953544801236979267116864519777142734527614945281905716648579243952275273222622900022164633845918177287778237530783552238072370564664818667930163029985995060382282499933604111556703529880805229694460388682205668079085327158235074686544449550108883579291867122771444971217687650797336350893134865871794962532343536842269279975849937071225479465065174488051860547282026793790090570654441620012421013559868060918805697014555536407718806730380633069909269100713037101615821041175689831206452516596863315429423383837760204639465047405821324482241995967296118179197043760146602033479308220965726674516694118250188874747273253074881659362748000404242434548371148284035876971171790155658795010388296161985118775529378525893896766019053605400352932324169305093947630680736769384313774011840365280787757577594894769857171762568058916640573956000743799300627469608757906325259039365116821291601390430030743302397245138944601987690220418591192187433817315784762433278513364646340794734636740539791097651786242387275888430218578559018607846468956704999027834717108451001217722360452551123042995746081890749683443408096343061723893473919427898334933801060818554696769466850464948279818576756558935075608781565569610291273834114946036987356357648577407773958233726713232655434998563665945443495905259465107008917626843487083333430328694298394151911397122208937723304719988017940547134892014357322250590313241039587789506925786149003656642461458570392691885324638947350559595855480188252623246822332816859232290842059685244498170427479674365940076914609040871854914301773054320484745694914324139531993473920931688581701963766686871989201703745839719077855236869720185465550607902128615556909818220165902364511695895766530852396650661152654298881199771566123827404896769826624746788217859572953869986766303290693928471257098176145809728814153887823477749584626953416330528478456055555738705816098710203188105888816624748566282143650791380350081250819830428921272139930524410614263846397128034371513523251033854881489110505010621111394844100355822163067231833338124056845374657718468483576113221369330596478920143698871407483693623903231230100175739725195911372741131165098418621370922772743289301875035411868840402666187615714995257101515357619138080613780305590410443800600681213134185604022861451171729565159579997326974744098602938828925598542960885476310741437818320984408554421496552252025402693333495147735459611806521717744341008145242115454043150048416105571322242807204258693417461599541453664533351646662655367387154053076216580717651322314844648066508727678883801280021523746539899163923170652775899614300073685439845643335258680751412395714126523536592986438757146189521758306939559560391382672923732486056598073674308485297774902577740777893016044898177412324629221718644850453103239425774439853379598777037959752923167131395960845182884302937417321555165272226885302516868683426642263879228446017584301186873233267907954055815103012782725188514828229647608361573112157415676747452689346643170026285329729822049558135503879522979741791069703809813657226098471163639794499999727064052136934393237708320900420469836509449176366428947509812613583780279218111947331020629268269030141972742390154350174673985513076883799830655941721770299854012442002531650120265183467482498799658272495094850663559443291169206134318444709805226567871463998575303665046255152436673189446816743403530142001025507396428047147848150659138397936533195904457260145606800471086122130253835606457707347232645384327916577228044757319875861966664850595796086270967306143183236816972450047010411648140769343327368131587061737243296473737109753585965072632755708549540270662961195436741933249967741340648928073875919121163957851467295513589412146801376834474493210198388341028121506504844943363946993385895819779485782979738632422087712798235206050181090637506596226368470039747705437285515510072674533411717809436739209416675213779177261309217119868320246520656642536810154020706805779703432113499201372062184743498977293460103062230174616960799776774687710231159377132068089014976668094658630978091703154781360948489781040821702948560672652155970640059460562945242992607427524637456521374598644931543158148838379755885484540859117842864572171985083066985199925754019072163498624308102543555469890024105807595728723082490044310012819518551025980681253696789474355227343938178659512860258441953124451745019346232956937154111558684254232125746704077291324632515968738044815720056771806524049596997244238944032607523653346949188612444174922712673204228734125093310016543580066207876435795056169319748111640296283690960676539363444709828442267029503589786438487830087128992968643550600660307071867614396334285744261829157859569798110812108389708869626612716143963708171491816532015278626701100730545747692968664893784240686341279652963163736756639639088635638863987563614788401925009798219781561290805010400629434947578588040511551409338985439861372977751253195293613400527743443056185702900373909173427196128911411592923511500978842475901561481660413845335671357290469352630058823458126356433885095281408216710914896188420399320341173192804288390192251318672670562722474252218222638231702610610915401136022989559932828709108614815584145229051216972095687103750513907444951009344979705744446910755933803301716819342827891556713242539126511562292198673930749590061882981122962665482668502886314628038174598138000843370121669461984202763977222716103037091711268167165683540495996993649507113114289423039115928285978430054629499330047538963884880122544500206174336240571924256315143538445274055736605463389006381353141064770786118646547447706233233411237617373905867776755777332818226756458021736041445296591785697095537082354413836922055773789179998314851198045732906220055384875474894613410320205488123379715644337137765409809912065956078718208743932600296603123270074448575797464184297367061258653719810068975881910541639909700013262088205994598431607740369238491921058941166695397778736494379719915309234217610181699112243038045809228244750895614011879841215688091290353137271285583354631766428832939943785832708088466993356065844423222844932413871409889405159649778735556104606789177271613647626110257448947277335683570884854990597901822987140297819980107521937708413488965573952870005763708750940384259318961062250977128796425946067568950108693781146973253083653596208120937061400557310002410840131734441515831338202020999296851063708700945812574667179357157967920268511416651007959033842587842543746849752017892658891041780714758494266153676916204804078441283268240582922138810787218150118963722273543376831473669430913037489009204049263038028619303036601812038447800956655030771545303448340175421138020016512214407229325222199920706970655435097798358663412027550767411272360781827892217683252350434788930852425255511918797749961034577212972422142176930907176471314042141107425564910396790815110824663480192174154099509579008526795660552077161923703672341917454394493515453753760765674627572109601177987892107689156947771120569317264920180456731940752476420120656662191472640185017330619328279800648358655008550893620739335120456763259927025982083985205935810969401715739043264736330977502256250010257858479027041812569424892172469501938514227361589512977621810158134217996015262782277934489438597879559080153780153526924706376372740261841050222464411226680166540804097354636869028442910505809540969175584479140146440492084515468469239395243043137732334324554639189213155463642738788793122589511075448098266323955487013364071140252303159601119496518633445800468220023738892043939928753153450492625837922722363449371389902837876740356127020232764396672010169500800761531144292379704360405017762819052399304746568978470652107617343356971785612760194860074030034559289355797550865315381246601933204348453473650061914610124671987128059543517058746273352671532211314011476814261405909594802486616255318482489444821638474284227479670965114716422454071933872299153905666609257090515532399552373999681896322869055412434500232502013077875535872491772463224300435148431963909952938804247796124361491027746125649365627465018226455778178930313350200189840285803937109352516318240082981710338361904204630894638299409190043418480408899183721747084608458028144613979429253036299953019837133799010106715404700965226587728068443705629842136308410091995100060602962056363161360735765114262917260186047119980329024165141944914771109689968521221997502695927663173095778526889500754194124541686421643197727132054531517347022362384942602016768557101042206375277624136935411099229403700905753090417134218324309453306672428249363788080295791312220486313006447120928977738951102977707106607969460980026332289050536519420371907157198469695861666750700230899914521537118770485896935846420742397285101880797075904266551184650542149318697661571698727220206436284998472508505825318497780755576929509470830843241801176939218438137187250341805278579889250626492686420289268514133815131911847978590263744887360073556856495692616132092692822297669521169761906555269657388232116826152217852853188019101975014356241981758412268054318115224159430977222862962297012955701041359452385932309297278429790509780901560624554696339422144549250279332075178584351372936761002811364802598057846646631085031723678336548893296155927753816189546349559384174683636986852234043945499399979139437920779768068915260590347663798065971338553286805076318463228626335903971116419764030383994857572217770481938728783634700694585019037856426033656990357126138686596110603221181513884001811270400400377270236545690089549372741854448750182851644141403460773500621495871712154414930692919639112043381424102425346527837176282397667346556132543102532017942758026740403922948419184928742032278216651855164273093543463179978702763788564829682362089867527813732437373461606730791353771356536391788841325860177651057307043002652267923482948960956636639387261283346693579623383829065960118823611822483254304132782219491896123001346787797156068503869025316472480354786253762773314054210444740901703085987901021647224381271609162150381079282586907484774568694170507366852630601003495845960558431822176677170974258232107441067264468637904776718881163184544426877242478527866265693968939229006377970233917660438115414927313589935645241356074914493369439006963529312446509303126523770275371590821875745122333024213189449595812666013438639667937581142530494617081533761518094139908354601274385965442839009373379985801032580685055677423836560432483432547776099026744270377339484531284952741112477177257179209409775831813276524061935277157591855334798402327048675127301634451489984671980097231960280975373166051575404565609827120125620435978056045277979109392729070780476733049028406061243233085704152742814283227000629298807207524979643389080174526399149325696700061893752897208732700056779663984627728852094079917219197137900228324640482835538463908710163317506913998094670178429884751376995533262845587474373888230911285493925094289915114588275969764966595479250917150656735900592432102295858940123132456654586953248354389003275954599741981284199942242893802651676527270134552403985280236487760338204267330853360760380567130513775744045277247287213167348128673317688002084760535139121325504533124461728171237435139505870376732173455411040104516737348169207899016423198227764233241565595292858488399800090293149298395892045639341491507681697310865006411318406262300983833230428224036373878561803927239675392837165836570751402039871793828960690988232919765726560717929860505701371512718212460403960943302191929247234074567313222449336815865765710454333964385737792513555150475767066107501393388758832193834185221027034435740731185257022466374985081294881779729751904934760596355341738444151608407652487546511407474294722460815393319093934409766141725478503827434884367572956190854775605377679957064358643130915750319468331538238865914013938548289053125039834580484590598583632948294005967254640455125449804591769441449048222174410777483801660137937686998475252331125299580491018050908802156873049103261353603058191171698940671051393863753826702333505266426488054510770971156167806057155322330830108776408572054736892068875652005684201385929066073150410373225478230122178195170777748360291651363934591646736412310879581393962826901399154657176405361590153678749424415635268904432063879564569805879033742158363495979452743831129309141792575998226883399759939683262645940680297573206008629978567069735897211773590666729271018094067228013069141340593472653183174645817073560772744579605567929324950608815158764877779290142951634705549898763015213514640178947588490106854051412895127661657924692877284027054193945299666231338917211520714558177832911562043334933094781621875163563095250872799685590295448813693713025308129917954136466722119809373605484529302695498968123197976880783870389631430174382255507489018260934195739805317049815249981913433847013239873508192666873611841143152337762976993967518031985456825206651874532382579618525123903344619560936591898134284123327469834049289137871785108785229241089751574983659280438563221910266777254806888586725997069045636101837514231213745537007489668041365155136478482095166762481902692121038785416278041562723683203006658778417093617098185789870256136760448444293138391287882809589219955393586796343541631511102117282533113475046072917417996109589183342680850417252233465282850741718301833412900076232590146795851155235619642003492744792045501248604215267364670208338898905880724500822415772380878938845208727542553575286335678315276126969064346381743203370448409459584339561051425728133549445410565715007759000103698077527738034867213422328311131309117302396096303624064607172041206671596419803742333825084510862587137158401970244691513893187055680095278860029713648462770737190803781469458323941926772644238551410815456240872775758191596741576377430852338448942905743176194574187347827217825367162115842199423244247805094226600413008621872363226268138851061979187742978135951561120690191054901147027712957166601132173040875472686642914940750070978430030029520060575373722488804886026049374375334211942780186345257352463728850783702622095084450603727261488925508975385457399980258640014218916787123347686791688192807885889897735978495066273726449077584747429526010506068762450222229803326305645446791527908340264307216464552344124632981583733347866249373068621280465796188086089191184461096806770275580251310502483200604468134613169452534691121145702102693802065453411977719703025689696722128206349580774075159462431019135779512500585989458470633873384075819712338483952817166841136992526392094895386903873337227669668333925056665680558148732893159035157713032177587072599369925148861179533944872844267206618964024433409874391829089896592963862177924485617227581236235955899027607254429829595514580819196497576711668085348633124753948504229437651304393211615561907176525806015915743333886088276503006770831989346558859331141970205325088155844622797037325114548170612014521441370305204151862562272495320609607464570051796648517349854093549703876069542164568239467274856080117529544863777967858656178439513577915548514949480282710840344330337831799147568506727153633377877219395505060864237132567604193631988143798555505748303033860032264009312569323821619457278565887829589462517570269434647394913431107768549595189061099347810601201543071140784451387464066124638934920613482954665175646923911621644697140464507589349425255258113122644303564726029942584545006847348770401165292101303193205841942538701196921474419400027849622527284964847637859446238591868341560775793593023793989181535946976558916374514970620441387462411182588435656337598073341402798449300604435023548868830526306363915626728047110151605885039969096393755610480626318276417186036966375189310127241000238368241883585461750596322869363059026442308501098715973122561215761826721442793095931518321673143805585073426780739672948153471780286968029429678985420803632361419938219217300058159926488127314074356056119680696888987565061542094123855057285094875297478571713928638755668747643381918742354178796320049822853261608675019945559709767105381321362574073877724214468365097909806460010394281454939777072491125116285028102450262400549966234889688245340601126548561728354454668458868661069455957217809092599653347902766019075053526793956226269630075731889904311062147385181485695582942304538955211513528989917178649041461094229437141328043049654416068864181505242509425356329166613684235522076679407127808264630707727249886732458348628705354532699058349834661530851626228511555134693237011021097830623773943871465784291467779967535692246205410711090760242763171158117848789628502412486178214332756215485404683888974928668129317431641143070514559164556416251513911790133331415424703716118740382656374464611105946251007868035195957765103988261684600120302877265774091014916713183955125552305822156204701997116937150936333976314999237347894811631411200779975467191003385760373856908787865701447283752807202271436613946401138200941614370771570985765856018724948098574292510105817601622611640131365364870716828954614860859570480896928476151157755246613060003572071713620905972370210151220478359643138120560819236661318463992137668068728891778682056358868219904524681244810743720755153530665674930894650657101221835375409751308490075947738673208938455358686584149904520467875502676832208513114252967620061986411529063960534091136642552984526777929404304416704835008857127022401882849350177732563439582752119030867362322469037059988851182980922455539937337319390042264170183158001389977813788618458367622227385813270264239660686519814368827613193661692666589892414205674172240093773360630421396229666970358428316353265726343973327219400600930627744876973057691676197333096678343092995264146794943096187292904202832007209691046812295809221982024571516344964577880753868196353029288343472552897703350241558781694976815117481093456995698633026389845189957746955328425074694821438595518120982686023853079627363294859285938188509387049293998223110922281280805211163796629616109387290878942603196870113605117608270969677071861418235989288217521947077535194185217138609584539179044079316428252127357143053456317807801134957643374561442453754552473098609812107348563788370251881677121203201065458032459477803156318225449659533344785042253765878966249225617641236023780742926135358436380369514852814261356521057104501964988920571511548748523445497922267188053396208465436118740160370823486183506377017162163008330496337705392810061067124232836445293231031285748812939000078200968308965957463224034127383408524482763261973415705716828176983413821934192986687095118818978405067369502829399954881514209614990990138030549711813668365635851473726219251346687704363244900570303389463421170194655656969415283377389394180508774601479485680892543742819385739799575753973309865243886713575307895013809956160826477856118061394915329596093392226896736238343243079510319118368096133579846776531064940656344469169105005640252178566988416439984177481365785489286020174996862023208588847638681951179034791079958370359582209519987939100529678785145262556601195325096742272505482808578831362828246580262667819438533365105600475123990691119220762491690241683877835774569945306712834691722534742284147811262464392315993358939358001677153104254303314514706273982218347627406674646133478772873821130342811626528336626440985790567072751362861919432022166813642315334005845627459529613510016538137007416909008587449482051498255325207715754623444869424865369617277170472225802393683370317399587974693858069254361271298802589730366265418538414174889293967493389929874939430294351709983604951636170769887276192035622028230826316691251954288327622745013291195845131298433315727556797835469951779517415393285711425424838069500262964534299513660145779564482944873418670469155326908959284069581421522751328107187390447105278000909473899233374230172247650092383226714359209800212960020491792515209553204734626162060200851835704087967556828025360902496207281869996205681228749253367680326610964977092792079003309492696571919733322208896411945953361508980758526937507739476827667849950108938485292990545939153048645506747739363069792405418424282418467793272556719131488464320367268721998614547081746167306696667327378732464065249620963693160519267350199851094993092087569729438420717008892858775423852765617955437669166042084300079781826032050879385204677902572145167987491225266909920103466596840093822000486976126061244595635960002327798523021469211122584941230894303590382322712453978476816652834220654266995931413750797250123039753870273547145904809265374359803119506528717506608541045572883401144143329175335077507866728073194936747834779408629186763804494553010956115795037336293664148282928625124246971104504016635112838462612596830226281509201445571915761277150998251796562431153404535482144850035712367902594942323104977131696253466572554968035090066291965945387056378019666965290760610402090752542349673732587428826877523124634185133514366480510214399311520007860445351657490932044418225296465885902301232800499158153532992586990298564897755217259125533088284275560332247380278898550160336832531265326310388358114065394338724332681515024987968212528942443552038481125052701213814743324912055522273987093478443680057023882038338365556262799986114760029659651483538801146949553867430700833025198663135740944758175046849511953119959677087138993821235961685423738739128381366622225484961962857968888293702604692479106808207381419916746327096982163730716040817737367834197679868932958585284368830520540772552882108757892844693371941659099125798869141666785421634156489337691218887721743432338654623731986300476670493199889270066204605685995959555352399828988862581997304732502975021920814334849557804493741812626918621335891896000458621235401298818586142310166227640111361997606229201207528204044170131748850467033123403361926175207972509637845314395629798428829932683985862448563825433632846445630393511109146916870698242933658935085291892335749348130180774725051088749406784519556989296591969094198561071500281528891792322024808971039047698327978676606700966836326784900663192173745701933364745186726601077815488022251043632765553807935170336116966042770889827464316722860351550094425633611375568253963401596623372206621768250484876875577534085149291083218270731747873983608630138173005172446730701353650944688490098154688604756444762270109694474113838905866254676074886604528054503001156868371523933331929598696161894466826643207501808991269429180862139451659703325928316344444605977656067586533325117162097757568709387983055392207202940230504840627620318503684952278893305245161012034123740189946159627742640073542364446113746212936417661561053508137878226103688658355823870784244254836499708034464195160011437066874433305732561362292187649499521886537818849972557374310534831808375414651573818324484187595098420684174743493308849606841146485216818502427605370869983686344062347765796542393611135360715276227010688891709906887910418825198121780057561914005713207097867187144745506267821442757476907954000064802316279647901376725650329607026745198814879507829817637010446196578007661413584037499082391017048518402688917566675903379203222454352595550406830175745642065793117399302436056866881630871243713202569358041230682514817912296973920162975778942525575875619328293386423843362910676912723641938724931714629584677786490230250011333433330576521227465057620025223914734298033247571334653912007757801610564434788864930802214354732695126566613423941496321048020219096354802309861857120064500681191908733648560383488407092320303922135136528216812857022964026857518403429691873521170845869291354571386107052055417430141887807594427579758981914938169480783811569177683372035980002412889177229343897229673990286608962176547127543114180599681102594714268294086470540724654154256194422867564892727597008788131871709831105287717810277856437981703035273077316383664756149578321790604446743648493433768563330370362579896629839027271129182762736790196773796930595325172155063137209219566991078909190255165462394007068373884539600027044452878726116138294576366580293592315229040543312844247029010264931501581758542586748410515214686593044989928151456152197970709271088954919901169816172032822923607491468424234512409907780611476614526426151712416181626743169327817787357131197503338004036813860234357027180963472520949309849797949953655587758005067728957402906728557950997263757365053867259617168063809823472697439552709461654413283974801999478282826549119747610866360934278568147565578538731772274326080586487492353441545870101350649549974081820612502138611438869405580016714677922267117153945865432326692141515711325855243594682151889538588524525095290969513959847680746449317411210509459900983773976804306747636934214979235883909982574583174907512572506033411425350487778314109179756007552237747352496389511571727725160332802799674308691796451262210190181279072194518404080300731108362212713924086623492390322959430054390102688181910614925340019577698380981500236038689965366448829376604293010321930949176148883934945888258867998501714909959910924906790915345619395005962782848216846813806735886387801907370042769819205668292015720611872544095787243522876705959820489342017624268693816294461315336396921580292939668614927235794487818096031712368611462507187023368714895458776655129642372434655027131736758097618702876871694684004669918666309925502108707352947871239721187361116384129297832429590264511621922718322550728838689481701549395378064119327788379824400231306153493330880641499412013469838685313119702912744475108717537504427757652358795729742982400262240581050665283473640169336060484952873112859571966427064924684067866839422535449337002290952109876155485379329329644853149218659463697127341922805843065354448951558606695491762233731352497948288935542925650835701713446317836119480387272205039876409450023159687675284347166328515827497528935075667793261800950739310468926898632875690798163275773947220692835431070301298424677494624568077437539467743548381796423415648077753169031756972855491927156876047841390756515410664653739193301995191525038303773937962457844355555643271157964434489044665721724813000952565426966771180528754269991679617351911953427144503061508680025887004064271743725580802602565107524622384851521487498080980115545875477113352562782461846834504229118546760627472266632049543747735296839996228839050359290384447450921044393522503177329859260822327592375792859234585353625590024093393466652516394401048780166078320089401266172098505498047465655817630827665860525879127188266617953490593266970235418480707558980775310941929203031503781582087935441632775899626099710531957109699843552360243966583213065116569257051991308122693529086025316597586697616998874083752085924302890541174342005651009070108765762826021760734633800929081687741492785556330235284430833668901779074479079983357920196460464643092547724910112197911764974995241663271411056235823152817142896093296330462836187163766106370435143204259460425802509890118854051019231388561815358704565157111973363709056561535808210167357320472787925388859384454313047578782836998404533764591880705900432578397537874045712285399830177187022625023178258909757708642712139334307257635946902040792339451598625254207343390710530642577459830594187538454994602349915062466573886353829658241127851705920958139077148924627481187017877703110659400700525875253276914076680023388854744417787236485069058435910312066896270337049819801424196186126970429393113013376696609548812139282199431992735292312134214323247435223383364325019809198365590746540964788551754486218862877581770832911277372827596952637918609739546733266268201774272504860586170829277749509302754609490529457641471832577097209339187126753380870901963283362853848477064003053930021452027162607404416078904607497270707026666926031536051086485360386778030904257142707203119291167845414156184114228437532526152226309099396096837319105167443500439004868199822524261115480002050673287382385267004991957473108901877522974701957503476386540279791837706903785116446228105167897981104683049536241085762315534086476581265617342422297100511957634050489389239384317933750214723973780823185381805008390847404569569403928984718145791494820351508413152844237134713680159770850506137180512106337504770015607771302077261880009152553920266655229903446119965467631112667099541765319775463695439737677161961315413032573909460432440274801157916347604171648780942780370309403862156474912441655182559959770429173887489449242718584527951058838851166871963163331392404176013614899363026436315632310723150215933708936956053204381706072245395557710165742894344194664362158941500403432874418546580212380749963017513945140371850638278173802190650476575475034828627959162897062168651982649305394463725528226906920014480497896667045898079934962939074125136611987612759282771343067812981782756590024503263000927467777247256673819229614589125732234122646024242182444592042939249262309343272407340432992649441799621102534280617761852602092366730634119783906989405638831028316027884217538585813245939832668260228609301091522168256574606095473141164199276775422727032530990895099840026012451520133697670848002847922713949324712042436308300340134565107056595769391100951040521075189376893538940621454946409905285385836991654851682994526556628766398325046916672532381859709497536547232569648482249869960128020714864817122576394137993269686916866743050293625520746879643549519161720228522104399400769189748912455018940346204706961979197603262959875434762287598372951651709512274648211082558782909409310303494376414511012169671401014710081766447196776979220052432412485781793382528901478517813559832991429097894449476856829151212669283627745101183986138297878989827696982651450037416838330259849786738862790784709018953014137838685194848333120487277149212359382000616245982432349800212695715959137590155886835408906360409211532703959186653980245852424643794904837589995326588700672142399975872660702287762781959359654283063357578706542619999604837798271670112228409000237974211201900261990429583753284861733190029990736260376995092872742258613825690550709649410247390348121862423045335098862718368717782931554474598706453337206174401692524561659357616112554888759607280394934014126444294519491471774764204063782375107389728575874817746189335410699684785648746254992044667595821419431066767238754805607375984739444294317317281404585056266274501055997555236262941644408459323085720264453927467063617819847235256761415336044584243339847306255032494986250283372067117276076252653482023778302651620944346955998418874287237862620011336264413503910109756438440391752012623336923068369447595189018658415618167716206460844022068029330551945200271469861298593741887805516529555439813050121607003846858323422269669759628264572008293234365318272876075911172113784516787249658685827753842757861676489662370294805573674609667529435004935577644863892510865112000911978288079344106335748941360951938967680328763276542876750042284618618902246764181312688966286444508400382716851283716708460281962902396564332436186641857372872207020359085282739364482088322340519444797594523489335394713590229055252635183289018954051731825273167252949308564933602199604475389834297711655501769918031389123735864898565802198623503236628015520906529655538012497453999772842080905972580531167324987731595335260545090554707343556889168628066458535530191930179083991321163211258735185371242648922077802859575144326757554614137231247011515792267724902621082798085942246998338442602949822720781204489154793506657684318453009474908978339455384407966364838907273732869842471633106129768812032702963599858316054995939387965698172786223994733558734484500046176662835160535594553823674212851371727030527474720758159535461264138806007690872382001130158055974997147391782080746219202976287110155263274093691522688819526642236341757905014568309787692623206324676491367653429049942499310860192565906602332618447360908018929156579450071250144940117118475501180622260705520933212595520088766303822901601822689970528762366920739101789077802903688790002603065037582463773610208554974868142050196656260659402380210024585624150653490577294817079193739734553746071599180964370585280529942841795721391639921587595839131027771403108243352327468332364835041419283174207046837888451134817270664446979779956072723033767201004202552523562429646935887953007811535928206415559181140745534543487392526212621417296864650450867718407710994010211247449141527485859932334233762138388301334154497513760797889230195405170361775349813699582725779269524244639244070298465512656878060726851319485408848906732572432621748256816861905946114962941970684491106763729244154075590383465258026935370499067535655228586729464105119570933713974036133712671147195565266559856188373880515488918099423696299908520850496294007123062194517588897745356234387740353489422174361474485382226526048399465727166741415088233526689834881276988172880741586930488906275581541733692266694099164711510252703190638793404193303463653648884590822935665488850230571432718252754555750167958436189577970700878140589051222230875789012440085649091226427562934624159509301890735514616837470170902400627547512425338358164769391071656691479930900963897948071825807453839590046090249784569071567877361571106634761227102317861124846595317335456999405003733305788558859503612240631462688576780175899770815503180452339860853762245491078899986893975843682582278843570928711250198694549201195614055084335216988652609746661690754717913361902555502095438315062993265867790419561589726855162572699190860082900850750936799527147186895287849812707159434143688439037230708950940884093300502245864191876583299625744389323049217497969971395329621437089661873934415291865202526154608874363383835148326423424150973344830012308739135906178074321074722559390109067101939693324127377874418974981495400801332095132224192707332043514514572763044702622145827664848949656320710535948492174610278629662367234106698784177623108249601592414704663229162626685178697717014112423185513386593436103432296210659679748257419922787417038296451282212982751943663768978802566011775445631477572883975565839061326187619899410502791093484033877710363891994209327428558331159015974456304629146124935470134114278400329930468386737661332360675643177626694330904264262678744851044817860375726789760329152941668096738546213528416143107252640745523800977667125893913794811934826797446860894367480905252398434152027274559343943938552123953226452069594617591912071953918244824169532453390656307406218479971306980588273544789347592052822562966927854673791116403838058562567154227316195054088609762184983192422742824576930853126177712044865199708628053676629149083930366068002953598159175101025887734608834690556230106565791321537699606880255969793405988367281985221390745362344096955187847816739386902069467536110664104694090850963495592218839903432760219799560533121728588597955687567872706100961996543427845112215155678079595030574590952278571032032551268137916154873768570629854131893490045963405785830965173003967018270960938151173881204772489400400640359929631233452820934555203765397213362097534236959204143446936366203832326740935514437852526718462273747148026403300367122565687032852151725636908134364411014813637253519903853947126675866873799061742063801412002609197878851461962077142145824095308225764628196846398612176729594803995039109038512725982089740638766727416317795501938531813722434928158179772839378113632721892596696532491392148194060409469115063801709938447304553662870458906823031336622155402066481733192028063616243714043126726998015328182501016521071186569877600500168935478760165542522046276356250626047620864492207257655670390491191362683193565117014526154533025099285982409857750504592443695074134963363611964191229787924596079484413336216418113976924147264588015814009770761863199564804392074296119325052132948737801499522815090118657674976605270155270514718928963338212379654753472770108306187013588425166861469316618007400175711795961812240227678762272908919235753730144605301719177458590173030572988866148761073382074424667556823334643521147231628379536182270383944585480382473277675145768478192058085367804718216603510557921523544733012641416243564066169565948230475685608876230848046400627428899433893456403341781360480613690842699154579653159888312773766499475920193275897964538008496013076478068554196002495437488804090610443517709352867170154647330620086869598772172646330275259993467270190263694224972022320517572137290579829710800757869184886127096061842279995954466906659664943605029515857091022455044782512150873202084966031666588885388187379406292476906056152726109123784438622030564098210374622775648572474389000876686848476731797507465939566269770761850266125781749266840671721220087420918461962421097876634517474230148524788721064949389789816683914476800695196830998761628884787565619497795707063733793883560110730803998959909838616565129291763596958274144226060448434106480221796099338929543585725672678769174184532879416998058747316513150687182074518581780832455547112575628909277902897060384541753343328518026587420689487260255029236928305580518834991045134082909890836292428304801617976521374034251650445450813387194108051661133304103627490331358525914444503113593672338200172179503089247111851922800936239600991377410562098892611886291440327788185222793586720683750312984250197758745385570471536312949901484318294200326889481115742225787190718017947966020937545170007201851041949227052934150503868693210508643668486477526317168182089389581265498353960453232361772756266782840398921589208942249928262720097149112401714983412748952450549542401671849013207957166352566467081626066073119325518831379701971291258217255233744190568529606530507001578214151705984245173586740870735727399376154151345033842536200826415418048942731818486990838019691273410712752477244872458678149788229704117633447491337056237008631180879946614474162799447264809631517526774699192679329645458323052920638768372224225637636996325194336183247172880843094671825655252562373953776592831780705813547416827837011365204367439080952760693444677988458131308732937651021192067808929456398586003890570206424687111184459796650718695870336429910168037950168703738003437649219990467116558284347719486233914112662016325050099385459375354087149375896591782619370671171022764340285661960902019151933865604193765117014515725914513500912967420414977149558877387529966739761237440279723469524863298736631900470735944825728216493167961315888160241917750475381729226149980937084739161198588301235048636829945370225559138144568661590475432416515900323013740830424526871125451897427355474246712485342285093241056541031410946624060540855213449023670497842855007593777101175200292619823482613771507762424610338310513638492675325541054893075689723193833448185724142163985491287732768903810041524521742464948411785336513648710619075833462297176046639988548004558243102202141619194792712734246249939204353878028508030701807030235242559476123714768132683703447324256288112711019833602650787966620253274485535032316591232100007769437852501633279738857393055034233900380718882802087267109327397301023275007080997091550122853079014334462284480075828650817659564176777557074238853236641382934928422822342961197465985829757348596569805772604017040635715369195709182998070361611754728634769669607783253349323682484998835500856616404315672753332092862237209071293700661491967600516860297348756343214493243189453291833851737492383724581047309828440027790124701220250157050035976450366171882382598126182870606768903587934428102096900197445598484359964592282957908040399467730359230279343203203259881213466554868708376412723302026940671789880058717888329637113488827620427708552690608920738363813873996792559514299807678177991215012468218537279670507159027919789892995359689795731112305437198543171926514934416394839776739032947436076467652750746795044509252203999854675612973971834960295900347920471447951491412615506702726788025056421743679236868794016493499863645082906304267100784850134757608709004465040780125052585279130081511518003819458267773997245701864366927653357493598410967386883380234728725013725305607397218278498677343464390190515969203558708770315705281171904720792268305269717942165058093578998825357797425597549987245584457630766250877010174239797317899835719750302568922478533716432039698841386040752671131393548185859428759914627537036255064170209885052748833913675409937810622383682854785474485331061316223092353152508037999233481020852551911723342141413955723341193049128553163525668196614951854633916122276777590138106720434163527242897302657890097757571209611553350729794198710760017978376831834421100369107009823589426209226216336579282072109806900633781591416215240003520242392684646673193452902604710140693286855644316962478931621847118897845312140803946023488743677734460515521188648361289061717573924978811809036198588587360986367357873710517438676839798557187166647773939901909727749940594688591440799830901525367056713426876570433488160270786378342012563316791190513999030169189459053140881147807193094948765628960391061877219251018366008670552694168817743447761604599422558090063285304153980317380157135533693588514024947199300784762947752926453299615784051973600643861404208119990357622660181620635963912785554772830277646926677264708304605204035887708559535699398245949259762529388098305118381014740981894441922843882266420984945263739867971320638379333048752420106231726074509279082271685184126956363289963180600904366875382234776091669482214316175891562420289548037560058570300498098776034820689902379389711075138863882838902428686911711713554874866470680909274255390766180066680617493736952109978907967530518718005313799911383665720784149043157916743814838294428938146718271485012390346171639548403019933588965869318489843474479295358954458194669541746179433613524136302110806777382405266506776385996459479539138392536023890387924368864292548299622142074978283376844447956556782904098756903382105646013064369971214451894028062814986696898146570034618528113484691168336721729428978629412848990448098115327871220236863055308615745798782117429721596736575141065583603598266695785405741792178450325625229223946344790697646968523919007590245756584564466534497326997704807846292683937752935299180681967376951660134171449133793701733186172380422975680652313518264764753344567808263643694566600345389607585816960237131889397284399128391148964209617977469945388275266990675295004642566449406059286511924320199763770023634176834439622795626084133676321515950475792130908514096304207761966363921096794906875365391863467513582285564887556075538868416506229193610715335052863176309295345439911259618651186351495991039444219371979376152540487595320952322447575004146244155699470512332435377573417366813413970854107222776384056845491366483603816885217323370445482668918580898271395477208334338339980176242127339348798717065795601498974654269767701147692058189495939746337597299800908327561739219777119000055268323959535932713112619416828037824032479598451793665123597295066863995526674474398287537195173514508586678950999044892025183046785888474851348618981890820730676023932588707365290239615766435806359521922941305226418270232853317365451288207397122383739584550890697671468602323199010169585665960234200998683075526931297252186244193689225624924970249298174396757667011013062219671251276744144647246693727981954963760798760450775185184829815043138170445205597577747547754637033203903751883464869612216949775987275186161848354183225348971224569788449391421287030425028315982087130004645447108367902306300605653481985573234775323905694300054389880505513954647303471904744602519442457551266957426144154569678321897108445588903156705506264329515235981948877680311940215679216159014097486114669335792459233953544624806926672414706737111016145505776526910488327348574939392638457574202862658847016154645289356248248197523371810153274543856983672954862398416573408499662361877034081526616674127365569935345713251787036863256533158427362010566493220402137642412345346667060366909603660298662282442370318923387220702188594295973642081674910087533722572369160407505023914192952131991499410181758721318850661678779846694227138511733002820141749597114671508986521032643340598627283265198414028533780615157277848280146787584265962223532800057946249811238521256389627310933250577292211197773389950575143779182000806341049437587298666135752056779367158863925702456543357279285051640053087902307498954087068967712738288471757755014061910529893219709405237010591456084607916281063811634784404463450485873635559352060135057238296334984479047511970835137129234054256867792223936104738934192461643820416963306520333993001631611570726157396884674373871800619275733738734966366606354611202954151198099101007259859821156534301151850844047445012211134904438816119480360763675775467207707457519740520909314170559814553150929919792681613434369648235791151725819984465116367068624827770968589220434753326601660268606706002739739717420785257990941798619232467606180057090059012751633864983777490549694702971641146321625353372298216902981043923457108040964905951105849556843251715474742755343399098693821610201040406002086031989660741370286767778829804332845654354164925418055159093834753657016177703835793600435099678047660450775600335546097746764533559643035623656331595117663082326361616392150827519939470134095222626251294701696036423304038713106138270083192073089889635576398763026964294369968546469597584570627918695223387436952717230744352375647580008155053213880621702022213988754338419523115647794157064747530966525396264289325885018708468281554940487295997079601554837693306429391584158478079139285959381172009173164770790557088269486149021747749706870530504230397316882929025480944185030221202491557105931539249687474829762475373622845825963560752429006355144672756872361462042524980724072461389932553200470626970572303540554312434824253768307370186902884435524334521549222460885219344053789899545773630637300426325162613914167435025135750852404748546195140493366876049816235712861019904744957231662942709824090435282283363698278723193937773489888612744427427607170054835824908390416469298956791936324546408923988439639981077056468791433993005858819179103780025194577939413057517129010921843641261422017201178605790518806637930734322092621077027241304720105699438975703260622992172196157485149838372613424657589517286449563146708125443460217157677376421143621739361602484686645697452198317592785113376714776641725476223788275774189272470071170337590781594458595761602767536461658368301354077818319887699479674987775237158893715651324740847693222679859683459134784642649825716622431691774328878651336438680851045528359341526208913821258334664604710340916936899732076172207755700010366485617861332770220871179958935238604288353280990531711339420192842372530359416454485510953221060090341755055608942452495138050217106724917242888604791040882928619273540259111448410763621341521765184317205995440222155881365580769138080709854708568280286726969542683373162039151205346241126748762285321365871129476822997349768202178944485149908057865423221882317955194547506904130848108960486843396171986015481723712947422019553605432143591558738041391461474183485749641347559978370011714957235081514575394112186673600941112718525433459353201952008398615197678958279184096527960679700775360087976260753860871987469328656754754123129632895358598979017057345883385835020933278768918148303897163768811878407101273714922033855971517758851388803081051651911726098709241935124977778876324193168297712644607286615531477800416565384732133976741299341903757646575249459367834921862142146782811833640802020336008697776343400975333782084716949331464753439505919032535292597212656243160172445677271019643292576937426042821946781479111861826643731866618321230032694139425654376269571975294754471208373078568498015358199501210537494742015640780976384329366012290001391418870422818661593970738074256222630637273805565575366062610263298889582978649871716248249936768698422344137774754542792311573562770284661733835945585272118367016477947726584214570724853463471329995230709896311488496379090355406082342261197748941490323963922127844106801095002070074191325157566932319892268729547107911517488108678350256389249480846937758963919837942400993162170744956907926240053183674352977019932135326597510833556949471905630410401577593607060185032187244912022173730837842716539317991849527368893338910450328742255834263431434650242924049899524108866859795915352165484616834251674838662002503689052036328250958175869919886553426109785292164800226414109782719783945566560191663259001671223449368446817103692480228823266584275466390229919964863486639569577344419550198957703942639073590398334914974307496450988461180699054331443947054667533069626276013611964757626501958825803789681180438791725005055609211319344660529017210314085429799780121196109017993463287360016795317367222258938790914737595703726260999269110662626471598847950747192295453294980007561109052331034202657430217410260214402115456653574446416756357748125792554655009300368095087423234698170334670505378295686352445000372584593801097446726431385895650750880125204874639758450494058572698269353734526371298855162712329887823015146535362065434436886160496387944082879598733625481732929936961879771720442763851867688124188346920717071035761942440483388239618654867891368916370885173811080202655963862059310873080099553225043594688323412747455658427297172625793084242785333006154026891081630344576687696267230585648603174275823812680452070940769204623860615961042399958914217749802969302265955558868023867820064050830380176472526821614500568241625421684247016600661748291688058055823578051115085584976706666260062142025358326127706164676328030892126773049727701283436400552464025306006937382275189412256762524684701208277895594350495059873366929029213190229841886155811806505318054617695039554506408242623604438349058433802171117531450186871785859531472229029112269990374932703570753903060888689416878417270711948743658078539958077855918680034892192312839451819501548120414792213022473434084294408132885261626052665558447316973831074265750766137988928396532497275878582718465656445090507425573857238048687390488238946335364066460947988187611728390192412169676715382754734749421136161894983071415761584253141940057380647605466016576091708910490017294747765920062255143265408144855599733668012691262485410229107731726006040624865416516182570321504124551581888415105442119426553745191489802953656531233808198732404065914182389818821504806571555750860378266198132692010507171466517255079880764105699961142545637488726255147690592567666867811364761660077491511146663302253703596294716835300321874688442483522376692265288853063805537707712317534207606201743371193458235875565467205155695235851368894179045734666016810523842444950533739341065819545982431314511517158929793535101054547739456300636398645090152630760445512391064743569340035204889991061658932701560263961616544349363280612210193764975730174224380877135728916720554063014393372868739637584011170699422495043924568958926279072699863776219212679445608614125540482550470017044413439077416748966914595473010581255496079955730915377378010904377195111464553172046635272003814656659695069362649378063486486845297178911666562165078937016439572000995220019493539678237124343002803121779321648195830638117813099273309922848770790634472829731770580456465983702056292230931068116150983247955272660214008356763854707030531089961039795098186380338134268049590582748661989404250891011171955036434250088505615469158147849853169015472935175900327922135666600421581657611863105103616121498183908743999010495488698654509215690704996381894230560991003127106670928423465548031194339993446464869909366219856963700325071062665532597565694059757742703460677196498445711643368562342784977670405124481999026273733446367417723787829070762067111792341704730395498519090395548682165477298944062832618064372011007459439095029858781436373911322615710705129040328095959133246887369837944914763159545843100503391158923947860864534800161188122201367533480471435611140887341930707880889879671777548695114509251002712460585286999755322900967365603911347786533607465210351585080004890610345852064392599287917654957471967654458691187190205817582177778324591200381286792807166047375182316173191041882558910797378662852011591473597235013293766192372483876072174994785550715276518500153934834912862228840473986947326138294364422199313536931902714670538994390141215603505999199290881206905472418463074367064461248774742517814365082988118182007973053088492960403352936310726613136704661638950075450466927369947133120295616742034609798209548921408433525294904913754568371198229993297368581855501138610265670015328867282296527459076485241907721925320311655986037097220332510575184370973104863744066338306313444722769864779774417868766622472140475143991028052012529701035811207917764884023207909602408884170148628742316215970243826288328127549326698233854045819704547733514906294551776633367982850154429039124896269849837051865190513998353540381049513086275351371600737991522811306019394308612235690496298436037403368722471734221615564920080380814157668879413768577400195956132380211494962221674759523239896214708164127774773102220913087499262764501932905728488810906945106014951108150204996513912728425458741786813628637805504029260658508785159214222299185282298539105753619620644415267191841684648110949624692840389414085798664980747620234837771102262329002815758057826722266964864465351069334085405309812637066804726379860486104367328697221087258890390618416353546499685096050891870509305663588251048710965898386681806428856138581216730601762648470078133638518625135432115515583588304778945585935682242191766202980949142745220588497371025132784733871791904340746543674811156263966995223626774262126368066356382473537745106755226230158314112838040173760004469823088004385479623680708431136496959423255913227809223217090365878689090070511548961352480380468102040671303782478995803588616378942574762109789445615763502970723178397348431827976620381386509825899230710816228163491738235917005181670023767669473540778739209437965016725909581360205525541821816157614590549464711090806902667942431132428824893992670396113008830207165066241078963372314741488309444943111495012431249144636803542319899466862269028616184123712456241092404432408515039091125005714955677641149026045424801001484925598103620107066510486258826265188226688373688344171915719429316822250941831199522921544664931649817659064167399477526926721316292708371400619545289837503037242836783314171800504341963229323506502869380222606481069707466812474857951739805579251268866421145150023985508540023324953982208808771456248814841188213936361907534889594142554108197153292131005636561510583268600291289635384605760583540492930685304327633379662300770024638428040053000139616605290913158212101600456726145291621077800023515732310177560818290079672850179252999050253748380406589575064127374639600407751907366926064818171343442182741401942576876041446983788653902664414090257351281128058594441572408579724516294214696575388761755970858983800890694689194336373181935394695460438766564260490400129278885360152505668398590683407790447747645926742606287420169397180211123422120034181520280982003070353531430863484521101608034418883334630523860527540765319387392961123644361521309313496188910757224255203289461244232927908171956183701111257486438239660723781697406462239628597463770261329685445543591252372008511757213271787393445803440712233898243792253608207839545554229879856238287454580623690371806323207885529755544398845353487862183527904114605833496125531178299791804535408049533911469665456296020814147046206705575471728510505137106241601203956403245954611751962115983394072599200154124766843782523113053315537745051692919938900561510865630996636518837439656851061718967761634301924055542311973150165267584110086104259958461202693042418863885537463545626774024363224878142264973116680361110486488733065078609281920093815635689911503484202730932991544604673322657715331770160964482362896375711218365068378441744146271342452863861022913671428547935926412172387784387822318720181654544911972159873825067277665776189677654157963589144870756395564400604444960994660992580863008629488257568374129447986796454215241121744990052148373135274581185256790395783938003505591339798860832883799648666466963021186884688498689664199833669881498399633419347879100421576496745613123471689187743031128974113364086502321988273978601313894788451651760923511416210587057778602841883933650747943925527014143286612660314008955136190098211620460700249032526014861911768738251722255708572130509746427482225832604456258846315730328182733638435510155540007457172962183079493977593523338018482382120252880069962968483551246028076870965617803569431605288290522748565124503523793116046121102084845616930151549291538850244264781526678953303445174999704562708941196887826230003100547773786310962756579139893469355630410210183286974263818216983765789547300597749068722075783626200418031728339253381698917657033474045656851073586639979366053910082410547314381754853781237346898885462904187039598632818826824083731937408105985723122761367561493162637526007230670334978304814316071849029824785450544576343108513256977014072938840022599715629025048433119792058364300473660614965174036187340944356084887925376729709358516025997910806617266958268943834509531553066049317161665219046251512323586586140267868727817872388762786728929443104795663852492569827774320555858080348722927003700865683877253876382594583045272702440209787964283268243016509720918211742339138999264098027815790442051404161789600557520308667287479778152141032607763707535317788313509923932896704606615597446616277965333303400575124281780511264390518227867891023190115226385854129662550064446928007394514367098681399599447574118700035652885422327675258995903910332860241519951568333755710641469006954321647482782871213493810116005009755636919602617741396215790177011089972330116060104740074137658469184123626249550672057227623440491908446606281772323532943180874619364757207573895892798980282694044482147154862375360625885359237181326190804739086261795405758003656968268124644015486923237779737016452380169780082552059819562181663019437749756167169599951750903501648408716539427660224248576990636388580932540027435551390928311241689294829846803351552585235606386855308837040704363947978722231128527539802263768864641992492786250864603149375526106172746716630491246212627479733942843625755538213766993739833502881723605726051811464868902165298412461270859838256509609095959908714720656964309226153181842432062369414697635774472522946753442597169061125348711499959396494602028100414291193594186018389467611907167973908476681736239487908056427353488630465526738082717564382236022826613245445940626792842648753230071715698047665569282912100234515348492683367236372191808111267222464929961170601645209696200307546578598984685253421683310221439207795252011283811656313544868412668427632169896906613836808435001629671746164276531731220043007780991153264174248031241772713931608161789328073069028512077745931215542119055091972735762679930003370543494105863789184976035133576254682513451764539041694626667607243564916764160084998709198082532020684046947985229661377863342535045071043303263009053388223534157252846200968334994865377333766474330041046788288708598556887743222180853618184799132320540558932960901796487579620000913044317419016294953994655098408181753264671879408056248244293732584184494446953206439953782394452079044505902019869878802396752927437923629587848734510417751889211594584289256691432873226668675671388251895273518067490558145023307164046182643198664767228924412169963548039277317625452881786533758154844991675001831775597884489497962681085906240016953477217349672604292966317404198103184396012757480701263454045015560652876810194880383552321565300860824350659964951139823339281805790491101165729796311156946147792052801312389517236245975616751932231402696065853113423791742525923722321766066997909685005363158007439375207660950885298578969545620611758155331264925978111435291655822028810434968108343687636562859775320839765668773105102616498253059237800716769178764780076793268776661018885539054217981868252582619849417186230464172900038930803639192877215238553469302618709735934858216523129388788804171777613045564376153696291163403481637435459747301745062061364815878378302303019573314351144234081775042734024899347526882047706840749408153646567271466616228181289681363301385346906604869459667633421857824136022789333503802800169008046095623885351972892456804691521610714908441922920085736325651392346737029449506869404952110579253311560982393860971286703843652979269006777099768029400308488351496555165414780841577977078640166331461074912981844494722937010883109427751800080348131599288572983953883213167637388974513012237064434578564461736669690883979535212035373746738198507918431656191824872854270416938589339280350051196793472329881356297837191614918636885425876566434549326486385713304451843991362142374035549584069269045631383463995443461430076292316159547010124620619893926914939859486206428187840361968533182416316374457632190938736722303679811053170382036599055911759356094019266071572210497790876557716024796880802263782277492070101609870421206782751075821658057588302860743138649521522838876413830178948878896864527428421546037578423262219286907342104404090853972790867928159214731061152998212682140743035431868190524488056613638886463977681821993166282512130760467395575097177498643827064567591941830957928839342607664656953049173655312512227883066235257041551793534036251947117232944588084028698450319535282453579451567676329813571722740152047757837472357473074169421384606250327234279023534701971825071417128652469468316862470213189770161397813817304095126855513105381125614324513949854386446525165654905404847366956296899446420638908274180956136919332645571920415911076027399643731846230817339811764392915024641054911288523964221456286109763622013119617695706548718457049376483018369458148035827868256608691164107399192397412087120636518857925502399270451066311170821068146335800938960068277454469648387658465040382366118989419784497628299763359207315213917582595357975942588193182240460218778272695289387656526787605164308752012933877066821978411620652976077996974662928076876336352512538307313914711609129097752536007680202736611955555398564040958876333510014545753860463924096874479071358723021332341853238361806150895905680868356280665836131519933549934440869245460188659298744882888994130472146759611514280899999108092696399691045525614931191650335403477194981560758795495631803557728841063366334330842689165178604213093116026275107419261817167754423245357602986599674731782077112359955731121933371645593122225317606261442290858838744528914137176043877798699025330935662392853707807625672633509195528906196216804414559251846854775461764701478163640099930688067447303083161790832553581281510030692443192820847647614428635295302479646235190468849488040217343065577732459140478895738211005894531334219582101609121967970841498139304073553949272470454339302623659952870965930354296480610808161532025936243626574312683939849579000956223414290165171620765862262725391305042752549974160653435038664826284638607467189803951281275567874538846825626628818522887009478580160526368065392958670697240870786579339177056994213672214169022277410854101926341869292396612014082827528692941894263187405673168172495100565545810965526831885474915235144080022436837189083550995074540860857463815478161957944197854906380213156916256420116883538713248722749672164150750375303876012551563352118762148846314068020845160229935667871180701916518649319014074318401008721702615255381041405512949728052126352065400106534091173211541094894086952958161630422612777386107818253909017381275935479566363610917385057337376206187307176123228716180649459641666057051791032610981732253870833720998078362656382372927266905312774458316930272158017573423574437512820875359310110963237066994949051779711803641744574695990370065609500523483503121126720750326555751289079704266566823771301704391551528415182196448529426139052511546303705048597749978289459481648096116324822202587075115829592119581673625196905224387315234055686181860513046471197513019303522815359427223911525890560424221295351160455687752667014939708428114805059402219685459021341219729275952451431677439973035618941312273994278693074797724809819215125235486509929266188920910483782305687654585933321923921204520093047404114655990979774115133474213052622203393750656014054461354771834372205274017183738663526963742836228290619890595183703857142856890248426674678371287532205715471612830863985894728133729382983730385812273116487454491468383526746460343781405991076252408609545220468276147152479637531557873265282758411173100376654028132223767106707474868646914483149735882994051406188968956666767113523804917021204609174892958400636761314604424096989286232130801642334123270944972787041962152255576255238939056889614791187809749803599268505143267977181683542646757472834540679307273107456805970740782124343210647318969956487544687915396810891867780816178792563784297347274414595448684492172727210534264910582087373688822508202548879907575199919793280138446707363606099319887545862503335218523338845133592366009699218271694483543861819329070044372140251235034927383905033365208380402724637597962939476384413060538126284106987394374307265816748533493081447205921839463286166520439044616253961326820337957999143162691229802680222164889039440953085442206722763430260809828089172260883975834068782434801659185482798923007882382405337865214185045387530537917701074285686524879980449343194279573593549827467257148131898159095013172850270388329661676553069103258666500638591116293643868995899388721288691044092838911917949175415655393837224827274940031964767654855605497642971289863666462054904040575878831211997716738535881505042837449977098975954863864695443780739743289371270189360881403783980469516395103296823903834149930769182983908483218751809218293608001435773759232429841631442268356237583708272584776290759648013691388399608719576766378805479749698864461811226337270492004322622193619658071764333991218485851629836516356807010635428605442049197179977708019963042361475277808588075875340913900338463198819331611016182901382368342616730179463733882706920869444335762537889238323162617413930505624982487590594943497296765156472246243509441843589645256684733219732643453977621302346077171542023832194998861563596553453737087466815763310405428227357575369709484879295218872209831181468827522691170651701917324706771761867985349587237539195760663417290298766331504112399104883170071708125459322323361666562950783024084317179506098103550226856652054808241085659855332664320041802791370836243486559654625675311676870618421617301087155699336277199284397947802717237256136829855940755089252587304491479461009287457459559850051837739720653676205000249127954979427031912261697117486737361746434208996169317647504319926248591516644190543243067503910593262872405147126333896942426044811079590721513634167033178268109180142472836936187295130078968643540115913781301731817010459800158737546552772772453131392265987281273583257442681080918032526271127331740736768976355721537040645799930218133198986781477091368857413005172859623392069853652472342491026116135133974125313502395423494692154045751975109268296632605602225098940621454137629813735543926233231256735442000009113194224149611696034465361923988554518071040410719693062898741731151240754357989512967044645498465578506498859497047608123384938523763643306310834431664145122939785002088339448668644886865482797988767993047512103277955215324507985545422017191389418523055047714778055366129053284714231789863588325152806555974165828995673330503662864455208710568133944755508020586186747503237896408210381610655986481604748084343579822929111233492581313144322487623872040127616608396076856394910271917600746359781441209066161461185961564901149868512666688885540527552241936614658449045990142080136752342905057218531922628429171149909966857414421054665001655254797436742164765152614769314667646962904653972079157711838834047276252833799136619456425286880282266886937485216210955397909774127180945221563413840196403146216033565107025128193773802829817037339773567932760244759730348122934634161774909249892244102448003822882991369896795636349896174295619010396933285019269953461406894381061147248110234184510017550567823705552711322692620544218214157510050087183910960930773799240498776386594604828658686014630955379025925880830591782323136973889132653548828411008856768356778849509005766509001948444314451515966362029555964559767265233156059482691429324310167595087136007155321186895985395301075702051551624889925585977603356957029458191565673403736039422889655261984277132194971126264451370597310650693973021108431459268825484893194770509710531411966917834176566355968049684954160774158364904669515262945466639959992051431125171911297064714685107354829158937111188487810455738307913600086804213207112904523228955464862086926069131612852899980841291744351464606300537732762477097280466579394911109684512977956907155889239202438554247672427198052903369431595856385916285678038340485427266837084799331917430788039705300027221710782964470545322498272302313520752974975835725426945947915153765041771488599520120616407837675487806406104725255293520435924030885480925877949604173062166368643505595551813889252181107603257395451504707243612630205655158598466082476961446773121579418644356090600578031166437987674278594775419823864603146898445184480829869789441890614135410471878480260313043593960858346526760262713698586216579695556357422319343205797800046886376298522225340479488763686472465584095950696082666473986380974411950699476454394244361736101836279116828244189099561433412710710786576872699854610328141381419520815479535297416272893053316239269614318021164032422379258305011801120449828894017704392058656547176437193654318003157206277208939150217039656192665070030350811759943906779260591808804632754587234144498489137539657837820296077702343985344022521315929677440142242258766375748282524197615805111993152796097191216429245226810739386458556032302337916122905305283409706577343989475466814176123493806823110963851577828487009039489750226258552686772159348780124696810594341317444795493708879590294463550207393751331969995293374518530597961016562811142131539925548910548471777639502091061747660729644031680778397177623895989648189895923978232647106512915980879313224847554859658369151175602133672911927505740361556256123770045991113367387224250518150559704490585580310287689881487388772725395897408928282840618298686407146763357465082478093094124682278653896615899750898423437608656683940521485681525080824623561149358808007737412800079866211454862862347449565298232664196331462801899804940887648992374957860174654413901734921894460174094428500699928562152031707383183862404415203702065203091074151711279396031489268006032895062292169760312618327682993503875161095060851183420929212145751160436949003924655956884819485674969473146342719500547238006825249233130817213872559574924034856326904642165174177959556142220184980877925946990361931507713323577367245235008137142177838515832950226114905496552656668462676577214088270568151634845545154711323433152253504998853080246772248543829883944310700217424882341520111407678182697192552743652098447549382101761119411540734487824831962197790990564186544363255721680882544708051185612211810298053635443005327657231453970081533005196089151238652807570992269473992245328437732002340390760837278818211722255298157256538359731290785592820530005372456530972381593791823796554967358004004705920716498168100052936683432544030898539067939360250396708969271668066675049327070817026619569371440796159158129991150017222414674892631773515622715144750872390411728252944596333207592719906585614897588234240869829308801033713507561932625032821756573035829449850759093828554409616521576839199880291289033905977121524834213412755637266350047212409153894922113093699557638508098765495080176898809067426089560792407243413281462208992832263562290912255717572844034808521815766845156616414331053802081814739327353262634378481340318697779826275278322975333836411348185903804028806543537367702061175769180164246797999674224796834384484833649778204177636691512592419286667745253333290326918217064687955719747417685511155401796852348195904971206865061078496177600781214024185140303151897422398140278072296598210631898764865303974242529578563521745828122757206323121516045573413612682051160741825625952152020889802524407605652010456374499476341365133140988355544289678678433727494431256529790869801056884665787036496211682025612836564578469840092050475205834289372012409778841484481635323076361254008759672089438461356542179581394056261166685252047512513659724341078356933118563744127711155985124060638475282898565696490146030785165125978815175011279919498048545496743862164179924762652381952465287779535880252705557029619883721091651508442777207542601156963848784239848071921667403851761226300334449397066216605761258386601675040544342819813143010182633212093390479765534342850222780419677898520144671642800960293383211527478997520691071749132256792776310939420489782673495441351215040774881318673714482780044690292259797921697355163398705588479050652279180497762396067027246308582139696315140843204616662245211019963213054823124386569714929714824969433843200707619462508218583318388744327497002789605889686015569407484246823514904184826955119549141478446862363781696897114342490961502774412844494951482833652713599822071452091889585593823453359027131454181317514695187741845583963172909342455570441245758148306675298273538744161121424646334524421618549914141501806703522999624458601499658320331269755859119193635767509465742931960043466768717929733918664149830670703403849731754193985389653073112209080655654089960955568235605043373209408863644091695808366197795042496579663686610202378198075827138485742359417464976432452514910499205352925102638982882085726565568692708211602524157071344199283770790338010583303099249131287860742055901195081481216757797324019822066576698859750098102607784899873531170750667349632194812183552132672050522141027945429355803213270142590007323812360533499872184150253355440040865171000203620358623871350595640251739494937900170046048718134136079002796227718610358664037673719980479279274150348138332149142578137079421124251859621002854928407570991266778244854093337265676363040172369956034016259059123025353872240912753604438324044503681933529851361197593600982907647090246497216593983183913810137193591388359828422962105999367576480838583404968381594598993752687737733009702979184911688781475018719696582242488820465564261171415773329355134709594031379632687867895433119792512459474421015885123736880492248069994511302986428270455562077350736815845145925464783171743572182983735917990397074194952467491832535084725725381605361225338909215466914764968232270148685366254161882983221614007110537423958926424571011198276171133982224930487301358703148349613504188340428068541207959959997908160394216004178805601541713833960862777159196689919820615016237850878617788614913019830068155688378960789697696381007133270675704828852907969610247265413727520684963294849688814130733686342359908737785194450641665005844029467797302131818720332029930273491697738983724535614446270134351902191166870604618767543943562382452375846263120072967463186227888737316587858639476558880082458973764488163903771385042157772790924812402650518849641422979321024410150077831484721603366987148563700641663873161239171428521855181439424318575218361839891510986261554511819420551546873974561128536995706430836074324808053564183998093249789008747004213504394134301939463047886949226404372988167257593246281315783546193227227765043170726996226159233547617746400411249669718926078279229459730902795234854067202273013882059544256619131977074383187548413658320146081367001532897567846690293676889646703731416251558581459996193036161429276557388495227573325667830013423468289262655785015463593864383492438929089115690318070065138798287682617327938207918066115499305331490142609097234685799182079256311043197991234443559201197577093360438044875417181037831404195315145398102735712033206551919245969807906166639020310964774705828063159131114861492072177276234262349407107045146512048861669745730349568123961244207482346462176370410137681409532617358665937077018485110561612423681627538104281189973612910639390624621726923282026557891510645265150134523725510174414435035304418164774876717693022438755262431391927137822295329653220814197348754837545999057122712722694933510436943908772845121461752484280854260766408487331171985111723192478763801674265643843928106015744004902751704447138560834627856958824278664445949964838951639843897753849600378052354356211524774987014338864901171341754300896905098016457148541337243726410098589597793352782499749292335353666046882998516399242731406208808919515804624265403329731790807554856920844191206936741327893169791401762450758693127701095228001859587795823062201701265506228443868579207703144057511195714400690030933446987654371662596883212568589373476431434782749700935465082610094201901957345991702738051987061108123237657731083154039429559209213118221168106456316440502371626155723836446846298993979354952824768927886478762987245443454633152209335204795565782220624651543093068655282163233598976608717183082805565168829769730398120428153222228878329553912298725642565093822442950353088224340455049331915540220752871991293192964343326944741363745512748915825065810128482535467730133874241294238013606146884301175356565933756793166967108930414156124305815235023447692510066774881416397464007194600380523131895528580669546352412681925412924794629788123627666841559475485960763702366958472152069345174949511424468208686301244054179727473525623329699894792874240366552743001155804798703628968138045591439920411465107408304869298836064266033579009225666666380782756691338394683885674417252701516663646731592462080131626968364968869871492889863737791621220718816716914700507967535471301742091892317388637676339181580645675764339423642031010813798225811518319111803734642963421608979979228224048083881806713938366397744000004598961281303350826018331920554621159762085028640589672621203014630358122230476531036899364766168563833300362447742874582849028758950578786816852934308628041152192731855065216807971200624322760539781643363085555633083207452535047277677963311260748947371866843642348409139289299659207906838101740540567782770966307206347231558414100796031242059176508206855950339165754213617886702312497717686589863343076910550773041380167814250353923882907588665110950109417141414865460285251168580507670675849326760114322422377512615282880719710480650421597152921809243881410446808775141015227195618761724796919102555316075262688642601583132719103942850994798127274069550887720446945404106813682140253204424915500905404903633787993927016169988824889600059726647624786498094057323627833725531691273711680661354320356540481324207799592938532098251978749758469387478646453948347720643019458312887226041441442833490405054314737292385215374866119317124836626077002723236419276860219438559426174322573601203170446720579905300934068783482473749454732055706371384292460328531119552151157588826787698498048815527228808877337367450366915873974670552023979601523949110565397754619195999646642550453542505391830886197651607200342375267856837423563831791746455055946834020970832623695325408716163344755481506069089565819298012109957181874284062393616537808345051161503408642909206229235801040545798908434562587365256740837858322262363150643293293978586371193859682596268406632985034475254608150841090457134646846406131958959253328324839576321958508165000065505694920624586379680734832272142508356884247705993025282034681858646506303400558100017826010778898513792611115766103993611873071988068095501032148745235747204219786676633504701410886572274894742584453655962708857017589973878728818521502258686621161783954627569774217264275776690691222257386809326578095590157855969823408430548745214681109239804490217547107051073927418319976415481910523710431460577113836592018069109796421599636378725285014702357624219877472534496233796894178796578304810962238938746582512538761836563990883983649572061821474857621070486698353004736574756684850787636378939469194913532638166213096441729903758135953610096346755951688573001393918238494621631531540820949952879924310591761275085696390571968381362760576226843034130174794356150644368427482865106642109472482542330627057242306855999274165315897861113627742212571031096360365875819877007884125325165652740685106501071445220373399432661972606742569867507350750719640566251397067291895415081944410099952353417615621699540022846740684917984691991958715844320803465622079775600268054217438448955049010500070748477578882110495241033964063525526061683985215903738328453739286542353004683079638758623434505198701555833283492134298932323708840540553133878304309220634691677413679060937639376960218766372399510720185203410261130312526955162625198624233956506904475733003772678513745612098013284475186955345562811344081536537726544025790475814437711954927982473044410762133759168955602416348451617498891074677884512039529136303332972359996992521945197436719198414019951188484652484613340250352098275694301178132384025359760859832263515900305590163680948394038945561006707904740631519244675769800056231014963124218031951374139774545275123493111433004610470520042490437913612873409066539472103267758225653321356681878889301304535474620436416290222526114355329888996607212924211225113993617799300446140768861390729361117759542119229501914465912354233749705781194562198028567980835311942634354027610488159402600806175628241041462933442396422810579245331977192318467708936884892677825462232406456253956302677549295366912254068857455884350196623803557946890868293975522255773029297021493212497766415888413740389647110799856357885364891490909589008397179671276924021655975475838573639837630284711136192287885316102552555269360123759110816871912653242677453417117047273414956676187528317641653071258421218924090594897090579825015226219873379122101709998864684161706668755216311319456630679596758068220350041973218136390069615060942096642815842677551639100823586748177388055310650728256413814951476033267330059830453012325289538832618757706337595653386546751021838476380150730561825056277289203622151530328983573671132229037942998564563857834832880953948356954443175657430582566444863354734555882975964262824362762604164441842217834229283257261542906783397341504205944785966045430224444453757642127844333469230570736978288427066822705312650103871789470968621433934840116656081990889426530654619544799381667188669362889826908922975036818104220525997938236754804674836141719295615205452134447484276809355874842867150512414155393513246493673522621168183154721284218424552555521673072302045718524784924803976942395200743493104144369179903043356047167577265717089939257890748456799703523264599862049754776159838912900357858581801522725194217509434821958140928127950983591184653465241422135137119588940456570231562267037737655597486075341119612609642962179582761169465961680342857032579390464279599291998265928193958058701882155973931180202177765845730360988638064139534108448834187792797503182864207300255588697483849419272694164336114423375652099591940920220378539866029132237393734440779597030497229364448316022776978671180715581910767270212566391833428451722979912130911100436179164676679650414879085130638172157477750986174105392971940481999047479280575735492703742817644273947600362458199123869792048027730479057541666940151225211666975676057393743689056838845411624952188792986850726334420490394916784044513485397787152059582961774987654797344842660695064461201983512526628048906761275020890120046570936943537206444295444366912050985738604142359739502669951429203187745065613076555709533578941389686796988932775890886295196481040442059984399668710628100978371778842922737171906428007868191014596337063993927522120728595118925662449312486320655314804004538189792332074646111183518883694502529242247741099396399286743077943661691745134909889990387941084750273134848333638941300349886637186075643629044891448388133097426261316918750438128277939072095951746578421394094421000759411766048427979306795074194247747777418645848277686418479020176172649606892039063862503417465024804703092919350622066029260890360403807068675244321714728904997467010504591587893293829300115346110750703050299594998376439927469144126762579063529081965924288574702023536235616370562981328712159089717594357991495090510348752911549123162527893425546279954362728670054545615760417386520221011061777249344739210034184463750000238830627508378065232148834949873199465111140613183847696237629519188680400464054143842640353298967631089389535793330380898980114748673362784894269337626603829162876575061398422280094898084432487448517952530387212157589916087134603331260732319848649348522897169353196750882526456574194875143332796967714658572823175919363625444147230708377028227574017487198955124185161796926082611318287623697915892039457699898182383626561858386829694335557403401567206566167204081715102619429207506821132757550689345644131328613767449647231558161341531022856892159102915120624098201139339727950527808390502663089277380471910819385845600653873467875693158961772621361845799640574455470095137227806404024463539307889958804634493607548747904978805004689344348374713077044899444821436455287554489482885925355692649790189128425293935738914365572299126009207514844427683624361007217584280344765269038239498743119920058774016004034152581927122103416538890286748822619397505855761272706654051386318029047376745112588448194634067774277762797535315119423909320820744512537327191840544306470322751151155225831322008190247390623594458421415703331471244775091503217620395781309177821014610538728291503690963731843948057227257155435682580990373713776569141723733594981977891430297235656891139245679824392839411834793858000714779808658137704325319094418269540242307160675213084127748271446335480367320592183037403369644330750318635525447712078152988968392127942337117640894288663516432197491286746872580802308926156833097847556746702668334880501806058108167093615461381087890681346903719363888506771791355633355641769875427276727930715332600682560588146043392178522562363954369856831241323245221234674340501841366328247598581695081884874600145749227177521955766056899319846016748172688835239630885767975859796022113541231298781692515251349471935246041856612140932688282570392424639993041414044156531253188222186235225502750583560193873837680762519557145871399718201100257196008260767680361088639086519917958089511002072772303847394192635895572279280943875769564313481300890768588025482450368877901699956075671750641842876069742401687437907795737938637634030435424095948722267901634024566567989112842852651465168465316166493852396645254671172071810581335974894013512164626699747037675065670535673883140001763349030018509830754500595835583347821873416201809756686812282440730799178966542214138908495676343616159877854232107496715027931061448569164392089541821898078499518601879258035997785280883396922439900714312090057133181604105324240347767666109408044344787280477768958410537682342618953264905403941306361661175280594786829441610374304118735874587536222692882285958053168409984185325238908531695218609197063873938620394082749490707227790305459049418168475815319050298444097431275911545776272828654873651453590758061462348084332428525029604291763369428527073954658570320418594567459778874981165942008944660506359424770745182475740610971133963631668254931567433686516459064312434223077667767593849804508073581100953119641707020545378878879018561815376446070559588634678771879018390171548826283852832030745514230531335433092182371469629500881429862122383383511835071336821318943563874930183343772738472531880760808107501193787351977895132589115229770008472570391848335403503519786505363216702603375116236927244796789058779488664830923522121371446715368859962972852404271329985155342876064893130160799120789021554485302299803611314197906605772471771689062529508709647457373106909566199170990820158392203379362254905794936997259673076138295329106950781295904892685371592477904340492114733363337063217332630475305234353163601743528445158219949200643559395817752676731628955465912112732490963741608329926554620392373470204604773727602539139238717824852596336930192935181610946390223095618161640135043285378561232401156054573008357487736389117547709392523318716398053184277076189975703787311035045130667503049419704947572910912060153443928692719517559989303595783887663340364020630997535569509033532979681223719946835727159927835137675636779818642470327477327208743623589267644607910281577965826117437850182658703207284769325506387025474711787033982070203655320439926096362067296143530112519578775199478407176005752485998655808384401471682708289737549991596619050589910257622306221892901847742300830916966557785914911806565473397158653565134077004701454181949163791333208860790591121392704925660691435260752130353698620009398344782121614829886005695724120979565670164359694025439109860952997352637526094799784149414405995021006605747883173767162145105007924095016077871168845912352690269786047301578493835205106231372807866633311717477496545739605850231186596670543830238700918202576779622926095444695924053413844574295049761340119060947354701342584641813814057270270520809102902837200618602311484993348172154872069726123387336084267394150333105282763571308696339741816457364927162297821303013924416462326539126446723717325590644177549259862376182689954728835902992513103712015293267907963464232011257529498610223810677906625278337630300991344885014047536692944550635814902963950496586506643065083841103045498493923304068927342165285588790442447343182710139119176557953675652656323598591681668548619336537820347734801065857608192125921901445207791846997470498763369684426267799243516487820679793896574199240081957726667616076568440781614369923407328143474561747219840653844927823754868403805049338368908951122353306980443746924075642322326556687091521313460966508935502610653821826341969718513750447566074108815731357544884092233725026014937128987812600547788755153280083581443191773047650909849146894463232968757393109470456166455399506336361710502986574378804087376642894190394382905058990768682887100883206154307012454477619057155333722088480715554677629500330178635710521199954652356833891907440841199919175880371417610390017579126384376605783093636275309446515845220137683978348584004374234917280834372957889524045837081371046786621640550279944106565598171611104459342465046029535652723898380977856539612186617475329369168951605934523645882206296736273114554995304979251040192800969254931427514838510887788406591609189467720934960908840220163994164634504018358825477891088352077112107574470756882113340591440973310904546194733611942289436274451591642308102931330107910651892783187252337390833112265111536928018988144262305738515856641707105769361871295880919497831958841814932480531604299147985477671992152493848593967269624683146724427439324171871247560305099185614749157289913365717570501697205622613367475741599151841287427786299527630907385199074919905286418348009070344611201509821237963767408498532065181281618618494123383954829839160710064006033007423663400028617955622507347365363212472022282312558603942691795035405870097044106492174759081966905342972454763589601442683320423546919633828492297031540033489384391798463307385979383636265457322353174189637686613156863124376820950804508286307560550805062993886934535847371360212095632321088133177316672066517727490050929597394904834474638314253759569473257274150990579438609351817552870386592055305001040167114261178190628574974157058622052020359168976437661843143675155354411684425455444724182369253271062642447707808881277029269265145721024623495722274568224492351905347407380061534042508004923519152845099773777970954809770128079393709922875541731475301910843858744336300746694475477014223938004009043355720207251509146750096996299026297490652578324497831859109404073179474023617844962384561592007906447664121019129890530731796428979916085631327429090655781631119680237338551229703771546538975425735470564182587772258415443063587150286494984669798114135272346042217463083377252453801875269917077870554501050947126111041049770542730647372054891722942234836585117791097013284658665055997130187419853134263909387895648580531432442265098888398230080684920860043647892825167940200564931557227570610838976341405363679928449115194333517357595142246387219205500558689349395146708719970335716783409480295855290102956273461642114822252076902284628208462424854579070832331946011251360122978142703781494403525749405509773572576084874494128337987569528108222528128686225694125375644607394287197903381428939583209643601511986342026234804043969341882793249355170639778374025000186154051481937948582369592312722471053690737678183554176934799457125022993800120548645700232992793349007115751144974313733603195012568654495221289920482398411838046602269067788273905248754578500151038614342481495977379280592822656383898435546886764212079243322325561760790781778234164191115251446964307037859326665520864905365194124591923833467932426010257528638781887500978277027996406127484830885577615775203178679086592655844349559417887926693656590775634697814733853598164547585397317952663559243421409786323711172390951028971267041541451053572700066960947834156699195519788686124388722352057448057573070384914187114892410798091021793915661680603137822672316111644030563099166680955788893406419977325431466280591313371742381357818885810815074384324990605029614769735996829802039796250415791639853235711219504698538636665794419643201937223915130001784264578398560994174318732655392435725752988045480023660540946143444466121059087214598256523657481442172087811167402113604624808922391726155485553013424117571281462959392848736906193467625558837296583893107271024853613355100913642982220742508188885697649876492209964167234075091081185355208293317249326602171176762530505664047841041925806180973498746299610221900806694725281740108022661530556429755572497736404434895022348787399503982845460411506295505311119978964997263431720708468955895423703448187770574684344990728258857981080174598103075196044851018338701387581673300837356265318909285777460949154707843383383230768287721654810332968988377835699460642567828243573672150897036410484222919381908831314183669473560217937592413326824682687754268154032696084222821080183418872161932802770066356339097976287909545660953457877095910188057809791544954534309688891270388776666725724351043645735087501406123105323517586386458315002319416653648092563773309803900467508902720789636149938423329951699817655173162750495480730158743913967509549930837206670634586555543731480629454123316342618016147271415857051349033223133078959921447176333047953363820007182525134246996113375787086839628328202048092979326621855655855500659612945798078037914742445185839400555282886305786566426068465297738371930603948795572403543121200793582225117228924887451387031123735792839919864711850827911438071986588392917347872065855280766116178879856263345990073247833170909668617603256801227235907952627689318816558236189876759206850626581645117531783687289575465262041267962952960329836223489040252534300727537141212040572580910929199069433779007959917170471679937100247284033785429771254717982501459594464585482037407476967693789010730751668429988869729168487561470160200662153389876463023049833435679692170471197986911190586629712354181558703431449133443500629638529565037113361492676364378344916981366971162007316830102947177412239192492952166107843414908224951459533090640380607158158240108704333999512776630983024339041960724591648603103318990296587874685269230686378539261421029737344003608197159143868212962703081658851572771480443282364329810742744445379454512310827477281679109858388211382595209064074917860028183021464123982004327300934447267179593662175239908489079282735629863495073748227318385654442695792991939363802793596806530095542437691503854933364705415120105784107558863651842514398828000528391283776779595608227523244941877288952279182530299882666793096469231066111604441267214016784094120465827533528921082573138903751851133089481422822768339222307557688113003850119614329285032234273966896508870677865298675434718195142052254599605828960651389400064227755435663745851863442813502282144317981323908839032936994642750260382947927169976465522844466007009536343519176205561311997080668091693824748893001954114314585821129363486015786626535936959297252249562346354603799483763783286960753244108460740306849140913739174374664149251701857110536858926874286432421196168846485321931819562663926915096769371542534962937936277719857595296197055698780688647599859077769154253527113275784430684242592565823804883674666576445626409995845430861316622704826920451638832776420723239534381004900114940138561952289125207533543790551879234100489375488235840251366607985555604368204046583987485658851136322982235531904681077342180557604558540380207221393557756340754128981263470245806729768283919986689520504689388897070016301627434305956784799537014133746615140509580385479451093812752401946516432534796989512706245930634600482811458726068186702006322457613503915698861474705632080969735328067003733113673570205528479258408124498657575747559461906112352950976409279268232299917633270263427786352102019258504658412218709531724042971569463373620084386722659496776437166651660336379454724311239102880717389650954260195173910962692328578603546351595135579303063262326890087551530370677700255234356651119030575250284937747926298080518614830768389769820094690947765165882919935503783105364742036393889200401902599797031817061630361339783995741753292546905412731239916705280859784101919141301271200459463269631005877505628930469078582435957521418191076149962826394258036118979120239973161426921903705930366442376228048259340047792685088582153520549607139296194492731036653892929384701262668078527185683516414699355879216088813527436695351054626819807256772920454415370499562363839016508461513458271588451915386409621487569266345711284357804800717029076452640125140980035709358201674440381014370888688523180627323215892718358548856342779551423543093606874394029451686576494406384295679456256354233088530204841878526095932875416792530913810126879600770982486855866491289235331206928334032060056769160455079263798163586095652282463725523219349257311464850778700086503464545137663045886657270896532520240186941821292442057998690864093781143993828723136424668564399696590071657313355304661787260157177719371283929385719275997229671661075442305900377942190609739251660336871717694039785110102099686203600668212698761421881668252789952340913802085975641309104880949472580438459817934963989653165843488147680424735679470438098261788436924872412073298630823231698502001822520413259936677416967062844810197230712617928836816808963434240924925389819835231383393594099572160694928618366441866925662663735473996956147110221608176526562644975351573370309524947643941376672120303865674620025224729884799291991738843064737313669155686452850172538884904735176272451318835918965030261842965713508266216062115854286670655564154099019968206006953054258748548980789538759937465172688436297194309874190953141907443099849860478723428845081749045175092243322003335479572658956063336470768135137500599450437160797498182234993886732273030517271923869998377953718314761136668560205693669013873685299576364643457401486484046235545636424053966824885121156614790123323112301556438476605857633849994281954357490307999571147369908070800197398325909337280250844179552295020780922143450367012713459737633580278481561540945478101185676576570046510963158650166708074681406863756784014473059543443549133072232774967250692518301083283077393065061032941973413777869814250603382238162606684025810841006445486885269628648587117736870477369792065976245622973167885267665145233078815129915382075141811566908073580770914459924040649908558000152916895646335134415170276150384132672060606076556219018863905022872329299862801229348897038567258118036949831748649505230607468566472448227277509854988531249905819697788862314049110572349918053742040493000630935208887110637995783725475233098663878135477801560869564618618915942351825506444523980541060262460372240301001402996424479658584193055665002576964549562708202017653216783547088843103638293382355633198342321594972874380196554518893316516497041218140300720238182163771387381099098104992220410051833023826135948305482546921144355783703105858519521583967973244087699498692426358813951506147642098174664715187024306032675895301823445765457620120893145151582541396662654643781834958624150625794681410791893927483936664582755394087901543778408364281501127657784011897686685553325195344342258114302053221344670554582287479631375147469010930646190679631696922981322649794933642901697033697382743971018845873551776946143123834630417681319176154804899343214693137102889590292026307071450472196757921834046634718581648480637178589650829517738043688230509558662723179731753027308785892509459227211617960782530592976665310518862274181252091068392787636302131152913061092753123381353927681018536485962543371284726772623359708816504206560014189045248921872567691349613477722887626903163321220135769689430482629457566348348978590753560534943283398102379265855305564046740888846198910610784969228055669779569733020629720473098369791470997540261056635399105261064102802457954384925781907432891777160197425586363435483615153847091885252303113140511741409801907122879620209559226431117712215076469478628064021808533814782037434897623410892723274969070197250366819488933606993683124329580660025255312676097800440517014915395162254565085649031768528965086250906517022791372457275852708417610705369136928485467561035206141757548458357725773841577438815222922644762572525404603592151495893652201546134302841659353913631734731001306564356606840698227309624976430818362321681288913144241519299570519415105368890703067468718060510114297368040616965739341224605838961006494411191666177313574517350702790189618844390851050540352096832344148799770932271144307668768002077791110912151876855568894941096055623524844771912651068451306137431834478802481478515231337602394213842844114049188620269286454211275746177609309204326308157703001969531318408831489638378391572082251563782674817680119585226201037305598787060305373050588301988798769784125016581601590327490784351176275498696988884637290580793771564286520375295513369657985162286889677079594231325900871623013037599378693051126511937423655919329300847740524155510907695171257997687049391765409314135182060885005937286754840380613174486492944198704685545628196425412654075593886827447573593065188329232470932672187573665094298581495305299473867420945309509954228453755953321311558693072743486743978464568661957951367877650742665232102797571712613348049533610578059536093593102574590490675851968354846336019266774483769433749568796866608541329866021776129985539798301604141658280000246153668438649887231004343962167315100344382830435998394103887701880405994946637003309938536617250478724718094630028941607004051213504183025247375108893004429609512302267705996091056577423081568339714956071344036782269250328309034366821958712412738256980575845282395412674486878364602262131997525799635550555008814778469606858133403537563858530468604528458882891020616619806977770856510865663542162900544057660099513436972197138139040549407170951534602520479741259307773899146957188330448973998909478774508212927002096864594904797408850980091928490441447050881900499564179640573663170154537603770434988922726724293222394037595166036432003836031271296934489807501688181174486052424622117127495477569936483837479892464745007138591569649686986415261215715179896789005567995532275435525728165261696506192656419146504400777164270463955560088618651298762425603710173771927454675036398576499899176494932509568573652644365375132605073620787793307059183349585600654856633586031774077320341235466113604565466923332147342966893800792043874813201279929734889075976963081357049024858215248992347065811777979734291531426696062569833518426882225678808042678421484915897441364250154067346601118168891730818775908221388785087977514146529827114934166630476848720351296888680683298399936704570729750239043472328870322365366831526548794692917336231067933694917948160821932170523783895590803812717816860973220451300180998036857086785286936048462347489268181193855486981146518472158265245632870385407341467208006667044984978662595160698451611959849176871475378959444840067992698700471671226326642646684272621224993583820287708345147102976588109234533559383652212768367310100685047990405555315063421215610743489909553001979499330972086117865424339787576867270326602617598274665626065918556638783757360630859844471401097670031650798505629662898093352991967001966150022687845049354604720612869259166302819679496770092083976628575297136489965427715727443160952739775990439990100494907791348811367009313021325814223006248201671176708147836483599082318397608635248802953307114378463176615364675126372910639063561802607151600603775735193092498057143345282754833279605354371334026400428697821197001766905223267582123969703105226932779980039295599558692836820015688672504902397247254609842771548850169588106381102461317574175983282730138150302935265025090958153892682887169124695194116440305988324667590925460312029567029912553101009693134097210844489605968758056890314426730315483773729392363428105493898373501641401800752055914713396616081983454597423691856075404901481594732883523927368633635100655947683304810493562743170610732166761528424136551729925585332677165520763380765946323110670123282435712404781915650380129347700920614186989312669735141777953722348569539986137519016981568447102007295134590700607407502323099760287239534428575975452404218444180045940277970883483393144014578300786744230168205118858900151794146390300036276913687020523774865732628222455193843457810537632210736568459008440001533745007531104749071228518474244812573881836028596423405060807971845884583391705307419065246140708218222423653947632523594435927013916491607851062919609837434923790305883798527456369659881021924404797283653801889462520655468289982211963728078355655669614101836523084547342743341020502955710136447176913260399154794097242024596072172262369894869785811518472136350203783891685928951279745031151791394791401392828763110661440671078594660304007173107403295528946262662657160585067160885687804062372979285666729734024209351319709434734100671234880991116393257433391840334827835899879515492741765909403440056791179961276190610799215728693146725033067427433962779112031714942428464032259590100391294467777850128628650549676757068804020857898464745184291701854490234899210723514540285126867859764190625745411351599412379005785373428107300370464501186839720769719055821427263690267651829859253952619830714548932080186491560147175486170371913352550469492681157315299707571487348367877568112697656267458431127797996990645947847571028711283206404683746532038189630516474318579070976750504723508809348256193645705263724304337099207816555238591945827677633459062333635511940296827232155793010109595175654648059947069971800789270311818634879357022838496042418797804964484175302455903082765518625340556847266831397201226742330642185684691364533764547590742275103295851078878176568568706988980718520640356361578632974361220968177771416443311044098562404456247165732648111498250966618724437207427829766559008681743654353232608439524716040288232504519980686508241205820103901094328715440358856938331460807562449992564032548332812142905420160608883842538505245343226505252029495725037560852362991441034935588407998586119373596627093506447744634272387952928255193401510695491863304110607321477378560257865004539441972899346133704538446926713576346536336985129012953076084031495055163298214036381936319217131145479690008770668906287013390959160995774894249481489636447474057526294408892302231270672664805579889643192637157770795034344674015205146929860596379156858845458165069292803726525314596009008323829068751581466977954948929364488885039019681356166283241427177798481908578426213861344437657392552120484503620067024984349648180871256041924996177441123029695382280467357677250498741280957449875922492471187208226150213571645126893175843836188863557428876830514458148855974187092881466683726908883987428825627510486779243857174684996266643476975247542661075888176775711823287172278462104261569288873470552454803458024139152121518100449874020959562079361734970188221707357257891493926822512435104931922826803526023782811194339174839872389384578037950533731587923392414738711770563377594043764856555135980733597720711310028768684090013642473080341297225327598784984257988263364012507595281510290413477350451154020518853963780373428763680394683591792167319871268827688648879107246607856003244908132236595221865076987096649532744186394291414552871379870880068119509511192316121638434916513240338883281741297454635294793928026876376681312359608664183689455031984348521011229176921840833729452818695088337507033182970084185622871172050886198718445729922293410354491414131921503168174884975657034028822952682774319831675377357048725905513521021057553055054928934883440221934320098631381452982886761578731926094218485612921088414672691819213288694145279699970959632940774463439887390576958542331709670618564989383670343161651648246728766594319026558169043712697592664981305243305749369632417417944399853200526053699833314464481466440730889755619382191664601788336606474044496548209345860121802256692438015994771998830994910424427736585525827062376162293132708488571126944265627065745552475437836479168371565896153687508977004995021103851537071300689059448584454860596349770268473509663456968415333605640211820673346473056085202239184306835597523833024994311568472869043865067936771134166639458372985644552768174167250894249473322700597440902760101763890365910966476892855778611188371731477513614610931436477574280120026513281424011366603604349706895891980249079556666836015173070311406860460554251948505238679954531649227012866665539565363087709586853130030461327829498548641131375861590448988395067448973479397519249795661246215442352797186336594752733229569495307397600295454802961320780165121007956141119920848124671567212136822385142183346516133223708695886800590623661156853970943480512548902654703129275902016890585386065315236704351064646702418073664265965086306272331019485326313370845882096023466506558299214411313758995634900816515608362468522828730875444732227130405165930115219106724732534976065171377542662332423169710529596665735390204278187206075672942882941348794815784625003402416574959367474131962721320003280709163801882020214876638876418653137355160002786890877584160917422515761549252788746155241917285680689446961637726204227106002595507435295074654058293908201034195832159880826395593690263125200004735150691007259679578770409820055305978221006312310191649776653172723650231703612610065889550740239416090137458313279088457593797495100586960560121490312873561073328713458315166458064474497097057068163916960638951311012097842228274169413142940784850805981214210202269283490519922452637418849029268722981447221186016892030663089067962148125945528262490727198304314478668672878848175912813561031122323190768708120610636995184027346669665832634768511323811424733915286669761999130914643797010273027368077800396031124576806154132618885740454564328860505718289647322233362086685359602643920547446277842383916105716441026890173094842301751257865102342072861099377661710388905739101329874236808732961342454704952499263390402066797735645782165718263766724344402427354358704924525574126341055723910197404601493481524832538675803042340422984599445861589075984738944154415302457334903336072490257066048686235200168481133450140815882229700660622835137310102343862875290841717330091447891558904324016497651740376090334454938421334247636244022802065713023412906336926034375070827659471312776465371886126978545629587750744893227059005190141862428285300673403338725956279657202193729092109541002221945984391863021573786392282392601061673050009740556557032117709098155620996445841154133243478152209691291182566694139166167479039527799319545006329531792075976377609195400433845427722121020358933628694022997008303751924697635691225547706868580543013286978611976739460455342222239722467199980509540048787664650841213851043446321032919989031068709245177589937379849445803392637963372089572307319575620200092836383129783374816836425547041664101232339893319655623362273276911962440003853009796184631430078486954865837883795006784377994350891730124224068128099044136938506479878035382090454367206111705619656289749858147793685374794905273177861359742048740223582649960515843420027426560880798919786406229821081850965786968450108255070876081446312610064063667418322872108861399766539608901464224618868018928105053820008287059342832557372445804301452719177474758539700683118927795611280045862540395102556148565853486735278500911936814177405826186483133034001287797951663727346906385477873755420082814432561976686523358899426447390144731856964636370269133529602061861895271758892709408322996812321794332595886349335407909574010526433935017702688866093127912927718574034979461211700644673599225534153334385543233207406416466165195303737906831465765314397528849226324492044775647539741044081473093356244701170622803281005453456016229709675942380433676794737652509617431459536997664771940778869258436695791790105321679211058374793182125616713287673923449840281482759404175642721172634730849639259733291129877486802306866286360561405945470674581553600547506401180523242783968642711513193219977517239116714977293745578431063249919574545514459562337010037958319235295741080267213804072967575987160700867045022903704501928461742508333425074626764543679872052720606741379471430628333653347973177829492042278206921163261537081664435307513010501062187660264202015299293549363150942214757642463273706306937708643445472921045516794970110359482257117441320967298950606341117714117442018895261745297096594548404706588875903012404508225295385669672367267757027606639585518746057225036685315269711298020250350735580102012674380460828065374355214289278602494756278782257702684401431811137814722462560639598680840513005017622894613746646664834968543830892777588658882623307147865804275472408255041853619187923915020595085020344135768853668555827259541103942862117894531127000353378988700886003699917630294787465669777093967390304088205675907820867108876224918173273411228329124237254015155494758464413436545705524009442076301900457270773133011320932038245347882586736508946180182034359009302453343719232782103050861111772145321404984501667836237489226158722189951414306149226288038883935731168019171207528447287695651624160020200445442602012197144472728185054630573063064326934371057711096398658254729923779189088816907720027993508688167865909629397485263346733833472609118123547580669072416204031973282563829780309126133745802304080275816313017297727655291357437636595269845265786725180275391779581001934594763339018592422924080299187234478803144373511683453733232676902656094767174534262442787749915465095416407571936414165703540569651648960402506504917491452822645121924184455849966955825490152681362838649419710965210344348947404095470307264527344919117562410031357059521782163433007351387821807359673354694820280061607192059422249565100103667884676083913768351951845721700678831554909796115329022958878130540251707075898768424307816502025175325313687824391902492108532300302470932028144687867239740735474014367168120032845594164232947297326045571851071693582590679313590188206325538527903199007952832229118605629076236516320107697323873023005797395901553425629306099449129230725770772927140130916473460765517575600282366366440309061208163708385865685404551920530400164338892140904453482842209920645378174014451547881367887488720439941075168261144155413031269695775269913662221268692772706654445277452886688119392009043531182854747476265638882548204153712917982063198843711858861853640011281008637641475801596544675872300437892257896173682178572587155629019432133070918804556808888293553221503100163501208300876765625601595387969781643744136821931695295553618376557406873682812910136658273152457180705583394378618461658685200160659553199346212359125326232413643443955494755153182231716067162601380757667118573158965605618137791010395171392652567584824162945413929353584371881315176365089056496545508664881501250002393938457004080326880638420849248640150856174917606911619362628014445689820767569861395081255954289282173159617719534330071308488154734480488027048763745078825010725105896993421455319630190712821436968131009495428946916241856317078191732321084998031452234259596599788505386519494235079437747753653304317811239111815152394204797983692258113482850015371107563966490708216770595782104409282987026168512065955733075977996082796398922771433511637938048022619887365661201589209143740384428198776871753267226546117101053874790159146587042877892397769105284661062681260740352529249480861623292590878339263321629108076138215253079029375211677578451386441827349529216621800551671549840659887363813299316133268612072571999670340056093656698143286123230185001455481752279342525151941686221538557338701742660633680296235126563756727707250503265582074791754911363214796945489381654698662812755676378446687073930340227500884487353826805689180171270253340249612508094580281667077955734803327275183780697246979365051764677535956895490790747528847309124171762929484998144181209183239662811768998356590680181979852576047332929247010474244143030532094086700749472508127725401183935468169368102383935711654965283843427848340611051694651772989171535441589104600396835061371475742048154877858190143677139598792522174801772013584726910656515589735654122012803815128416138463041574325372963686070819450998517760584369394277405338482647668371670769305621656154781185288813990786746034063316560281657327941630371838460013965715618912642355380638258356831293580518686045119235278388732863247927200000099715052856006405702959684312142025263698593096299429172777079237089891397130236214814504178153555544422987019802135329797505419310821835808184428186922150786028564873753265185396402804987531392802359397027574486594997364283076936683700535479981285083963582587483590676596060594938468343690488964182912644451189381343099469945984667617465667222843994756483623376194162792277802904823537627407343044954194189278750971159036117266646588394112730247136623429366783809269469081963156968185340303363855737418051213022326264598361695800287391397340142575108765899135150402496730162297552249202187403259936209879761687662439125026394079876125955564896104886536360618538615432645230061727298059170920620565800564466231359475934391210586832163937962712356601850106339642923545509046461676456320894943821748958528904782813906117772547693950722366170937557867978664623931183512883037872480839840936587694396415384326838109520204995633037152921328767170332088311033029093085372050165423055088675545052240284254785910769202665987798359159803740450793719441813038723320527614059763117881575489979399482519397770159979912690216268786639456542538129751258477598122793169766742201539580477996935259609583115802172065244723731442350544770924387640912659289972296134193615258310109660335218907643831634837832769138399106113673304221500169155962350246727236737044597666116604670072599453804785987905301907433745945902667196184704375603856094946100477489545880012415580852787387849309505119851043748163101489273259403500303431751672816562655023580596861921302422878559337301306414574451750797293395085640263955336383997436989455321472448540720436719485231245123620884369703484278043352783037586383240701458159983919268815997503606700037490938542249265575755099431192434871777678889668163981106355476806706263074526045064781901867967394542308325536710882394169656572129706345670585665757457367150992932710948719083400033277081739375631295332976132515648402018280821725407392701994481966175235166511922528954877577373505850473235933861637203918909196546951936504419917083932055238822900630872152707564210534454342001901735287909345522249623977686133645875280996696632944265953602649670840617920363280266267103690734618897666020332882632022790972636380096089135324362092440348235568939568595620386643572178166979012043947674612289479583425710672710948569804210558295793662938440429966979230708244816108283427217630531860031409461940913307828180627833411023789701525403962656125312446497352971728708362682281419200975759233448179074742405760888252299397007963154743051471318227413721399985417366941923183733449782840707020352644824555330518362976222208380018673502746634511961370345386785881302313217995074158622745085802629558893165053551434980310417896517704211510466603095172526508776167284011477774823417116860984789823976036925297241864615401553127425726749674220382412467487421181518248703289093179438411747154263382609268210969689956125490220211761155712076729366273828550356197803688037596140267239402708402470860696611919849686439722253758346904565470963730627564512367620300617482746497268989444001936973614947953132944090130853708174911675398242924070221898188888268002048676868058987043387883482487970426917152821665039759148245271136556883277322565686822293670803190253785008062085322186552895665969995901353037493819578470111952993622528733142946375139270743126424993253674440423003697598563321661771356211552914353735706496013253293709065496832787680089539832013037926148704404165469122078692049150613344107060222985655518217537656613651348523165203098444551717079291367893004229007394830319493041618034674718357864214491033834723192307573304125020886493236699843623642927383813979729672510750296812186303530807091615338074214385649901238518370730607035689587049577602487364924172326944768754796602163147239027921401186939087799736238361441398895624986628838266384126275748920645800601250479777504316301053857090060651571318258393810910778226261811651304527736127623259998336934199340051300550736450852511567612239943371694777582123838201294040177234130411209475473543630144322829875816107378889112955263803709374998701139445909140125630588341556792361015463951114540532187994668421352347492339481382463578855842477063411188740468972575477768590066348758225375267174938584041764798527330048360001306871615400045185329685155941119389514343017559508478154941191685317364283706443741807949082011544583821235131898112843471770359893595597851764024356589127976052714415835934715195016570543868324983933133171654880448988621919018887156821225548575003150269616070075982632694467504231233009359954181355724529016567369240573306443825818912577063283531672848751015889801353855625974334466113961618097125125420018404001804211727189517425663163863923174832420666597337929198785493249361698966493557778346445482340321376805026433863161228858449423570680405323255566463572007429171987525146355825965703745921069555339517803918718303754151724747401067097626157976445284545602331594488094540893942732240675268150545103167492943846010230643288222348553609629341750978566026448677401839974041091226636038348447014727287674517303631001893691363307194546548561902778876878070099928358456892052030895258032485851611649110528495255304155700739475872100600988392068024922343317240300307999288795780554151176564558455216610697234034683179975273128944580816620295462584991785131110886779886933190770020973178782235271720935970041193018701807107850402568948694747999031735663330255758405486057159008854164628750145953437534797758124977854753037927693288234842003131372863463118882455291358183864084312557447041172558820900282138636143816673289796449498170534317995753545406136288698351323678635467852623972939303851715637712884904247389891845430394686234219915253829517178840477907895030011521226927895216072229824746949248964252872902007777923823641967917009280698303392014766477311247083670787111748231730736339477568511071864639575513411556643772730566212159301325416223106938411424589463408281313902289598845134420688610016378803985556257298687975099299089930826115591102416970461308169707057741054770451697709308909939890192290776738333228265085801142362924636802860153871512000006386633289912525980723340397565931147771032040011295027833370996442445431293381888635912205805513904314855326284679028415918265022805946075967685810374245156635583471939322612605845597744310637674934000659424804167321806105409233823704794587333899298995839379723457144703514339127928327237808370337433422298360337911047470841567935660356280998891699866380713497904468318610300363338537663719044507333440541878838073158255549630796600780204625037395375141533579699951637908469460885628553726105335487723007258182100555805508100793072229950430759193635390187488766932568310830666951415436444590925392599734175682653245844181255154916761733097546008292005182282882460499725169385930389179784442389602660463474969393034998231296017350434724153937083724997096517597176765144624432145131457082997627092776571492705672412342338121306820065821115620701579919953908548222906911831901440540853670971174813844702669293329754746887722975786247384481304500962376115881685944019660940100190613282773670080401811386846099395428292319338674717961249214761021475214323805787714594521627356861891471883175007993849595037858432849302365811428195169793809779501537607507378524199359153665016371864487543427516646172836019627438403913868667072568152449239293607150343108268983448744184775845441458873940170788859239999817911313800134315540617781468470295145056578875303938040111307841780390373666433120108178169043174895769876300503910180012262550891344631779288102284414943160579054542050904970388416880926336133566550552713249268521360378654420602229215436575523109392710590398865010880354084103102607867009235521383037391171368942097371090250418292799895903265159417224075076555720131992687195951098883736226826067826270312489433557598633064247964889103492100091624972104588617171367464298773074586069629883879333688016899580892917126870357717652586380735313842999209833515211354471437122557003547498078327558661820842091792482314076150653490779697792251455618135968434555796577360894317628449001903181828243160953110631613206927547482857889682297018950837189724534603193599520007738598756171637531877646718849811227996998770231748212995529397837981265413613428242423953889014970507707659224450148377618041364534040400467089994252831688032850621489279493466885602028334185409135036705211591705370748354462846300520425772026331195633567729608030223783114315318723573118505887192305445213721395040413356082336519243826894944365524586638395780072941021082217900691301586909478030531710582257564181443371167818495747821594946644927713421492170565895227349181993501299225178456338574497589507361900579737190279527480104384221247081512158428583732357356771385042473927098629998218837307674562465414929482653876001517170786114218611431488685848655956656494779152595964447390271589235125766511184156358104601883557694871498874884815711091070661416060288141901255702198361645432829192499022792789378344197661413713687110817417677900497750585174221460611461647877842241206076589709831832758024717475339839360412815020837392533671476217678317520250871040411157220749807567057231337792114189437644052815218505711053949147414962670645413909898406789216987021442166761608015019406066511390172674714338515158406741121799047313172026109902979678053760381626613557561694149530489051368133732891821190918071763479822283816358980678489740819619389601968410679738295463241081976600857313638996195929782087882364158094129782370537223700091208806464018620259217198608308068064260927768112112553737016904361214471077423266933055710651642508329030688136671492612357085802297792165948832764419655306936949040776936654760539420932479448494034347465621106544775614101953876876496242083695631010523703569449839595617396315903836108926712328971728043794513016174504704199028341524991066987435945364527557226116902893136404448849916202628595846436945437859633117821664088149138364916995251093222241774769559437634788705208725469836599259171886034760389319846607768693112896167579528542191536799005250748559799054839717359308479412251962479833545235257871102295793075645236699002605449529630223663845857745666438064333709740638011319931444473904073315012087669622437926777710800296260371787762349484146368118936312786208448414465571948815987084415058326582202155803867755986438622053221994605802134539196532781112368733596448378098235516131311165255293430989384989929946985053752703448439427183506320023208629802542091717730565327897968611197109655634507361741573797401406316807854009671421437471738366709169620175468988665024957982998806472959506706717791948781650061611550157486884769610123792450005117239265347840294454500848373328601988195685278501657729458007072427882446448944947793231963388618660062659016441639339028665115652535142713615306420062553400084889638094343079426752729585766151278839298051479112313411847873608392422017620184743202239176608423910553756656807507820359031997936059759240365421029421979498660086602372417576590265523149511231019353494193647416279856167068474747370680410139497753353616732159284280843285159017013910527126528065127124559664668214983061791251268499524507268226053434179825450578950415308866317725911639727538664921978930477747517304790676179866310028565765246423128038945477799152138344492345521591137162561639894716560556835243875630219267047570399738456617705185938573199007950825462927263649273440186150089533514400220027495211342085070322686988751055439711168483223677881490831146342416240803573590683649438763801919562478092674905797320513747655659421029671099510908419817795526232127403724257889024086043569769676817524905656482516758282558515393377996649258954833518776257196800368094321261546201710513418651827340729921301871903299336192557857080533057603895822237849741837708225096754897268934776102031553486275325504787359906751861847412283690680699050886119512104734793182360120920879127757497850829511906230132790264746524674482791310515896826708134072059109703149189924610059277875891854726638398439736414657995665449432394497570202432315836866135751004059040549710670909841252679075215832357439169807090237435537153771563294960458726061359614914039093970902007155668481746389543067069934906534077582630277449956252119592147507717277599687091801374443930632438732775898467804856312975324998211860952486822835619676958976818608974438056673817734839000619885415552120743437509468566847971687192408300664521299329066141903852648651242108619910919199807138367981134677689465494317344205870074686438863830773944276861014225514696807401201431346467640880023868025199730125797409282582279045957656950054266872503466817149777514090356952894814307786984991560797288965876301887571188317306737931705214539805737645778454927554181631166941361979035293878932714565456428281763204403334214292250029676127820474931933243987735544455359043552773321295436002614044725089500353797503906099145507057592184353696148967847936752691298425691528742927650091416796102970283500647126939118506337922267342041916163108909407831377790461190501217772233465765141666840003226402270279176230651752503464438034504874121112882455186287985340366896217414543137308404949818783076171967997730462676263086674245348695739057873744064614857481118099544891384265266896487626734805923768975250119149691509903508927162155962263322293230871646743861279158745509894225357457139732185217173994897843795088818325726600776063613936445048797438979140653117137531220321341805102394062486667765991220225036119783504321136406664425881700006471992997071014533943668187410169789004063702042600614749729691523446815051895515500118297914513986780228554448199396743091800906437736431731007387076020111609449950024112793567077838000616638524196577926186545201284571160150889528440829455379152238811698560127291060384356041676181101065094337970265709169040217494890987938384862811758017780011543812367178490157199564186638568993773726852255693784961136357677882340421003694522926810535109635970142628834245201025092321455516072648734007661888422311650693569863623616251101150237983055788913554416310776237512311724191680913866654730068469483120599874463109037313458367277959363035261845022936191924003469804468631802228109004575184457391251539487699875529740117307072080980500537448435217516185322201677127695553327110215649278329836540468768301781611671893976395093067051740965383812039496453476542427204906507560302508728462582527204991651320195294096096925196590977712073730950162106128400558593102392059215929602494032415274605839911879681670613815939471886709571555014957427438102794366297680847330671521664979207034542219381703439769603127695040931579348688225569109325105982069269059147784830296738584472379641464037757833783779367522719120818184171031592600921989094860350590258348244923782015856878945030437315717684057000057341633545633713889311956494657089776519408560501427172301125432224513542133616515984449686096440431037012429304184447746184527755036667486812237371649134321930044055934193064133680285876276653636527921632264551271871900376982359412973006350424502426114242844370354035358964587629862060107927057486500326294198451405414727000572617483314351554748679543494338880414863720717243184961053100079417596551422144032071166747766218967341387818485549046535830173264094502318487421834353559074387306444097696723075064179346077267806360569338215956144352012477180113593591723115515052112789233696060073200339342973911984175082202623921514410127559409268006543303341966860715736462548435105014057873172898123175670977844773722484058099319532367048140853147994534020644455295091937161587219839698982014640732879080789826557979323352989792975184770557918852483101088771019950361986199084631032829370406393395693245822814101417755390310413486715132007937396902951268591665217354575950424259756503347132454428791006771814856267129181351987935890816163104427691826792110727967796604404804057363009397769124678591757008862215278328094132137765058311373367880841223093062652954472072190829845734526849350250085633766090263929895422376123211245894313093332340493552942614907133004761453003334191832960702751814472028940594670550690823082422311270854752049326572957417927787975360630996731972819389524508473286658929487845379350511269109211705857482924193884968807347937019419213397278766601160339460374617641138217184024059205835579728192292436886693205773230126887444528548961503160471444716705155410919357570549772972198355167527474294454144304842505144875453661498746886233828037538974312950544620955961915707723620458414675873148232764439497570999143152346015981551181262412593251183589316685931785610273189721480535293696791578956628313776298268958562499884119739239602788324418886954077297826142941278369101625181758778544829126683394878914136868985428641821376842374548195684211946922963387586181868195965396398891440356455661235899344920319360335351436897389364382901720470736202611315454021328042011491739982933764857712391357497977104250794593312636033769642581279238698442362829277827696232113411908486692126761730925366656046941150865642633812617679692345996518604186916022269934874855771343149312814442936259433828283860924284637091352597245283670276075206387447565318872626919883634340709791087032640975886246605825658277506630955622942905817159801850693792551146726196562013750370171141502743372291424257610212051573904752227177271718038158804535005276234316877386155946570650868520642873117882313589439325274047529120616878161814989242264846879001924245498908730299787982968592227119869680135282122259594180225824536838586799524794169325215910924034499473673349513157439391293384472144364677570530492381619360635574208876177440091713261041120914537010276567540924335416403527469963225119578889282901082105936307051411554606447556320301099514375328475907109283369621195326084641797451553263492649749411731799923546828341760192411617041704514548698483283610261893119168230227356480256194827106300595348040939199034204565381802907990732589303207837157011892188446618232444174896583883140074887073813798125012614977645114850374557537806064800019524032014965137864885629464990103960395499041623023693302607749090118415685866679700757976879017192939507456609919034038778579381827228094549092533864271748966889907299069887640337309383858816161983488168843843169088336832814403564322317907246076399022031948075637185213401462488639768174895984010755867708485309570635638500840378654501405033964514453224962783420999535796917501559291048629254995654486567353711766521086072099576067284100216870730394279377669337759242304574671709437701555520337975757252908885865202491541127695538663620231374506928378498454470575062873141150101227206869633212402789298111791837374442309795489012429407960438799211129811836554332106107388102054573866655450553256486967457451974934256662931709899640720364895546219041090151164097470061690459425774422591319907137989352268074666450285261599093248497481154786577118050483097787006793433594940944805300410768519973692505404274230759431948494221187495359467175270918023575112250377926602113881883488702076150859463495324419211860904945357834658152863094574580009237370608239677745091751463844634016972209685766384276242652056361005405307433306516743247072978153705002651058458504045450597945276392908471766958285798793200442323651844569506959990022258745361146048036870679327992864964602072613048449432597851267036499052158633800588733898732073346228877722637997819602083956509016478327753997247864039588095620368907770127834621222949742001021415767296787334228803557245861738288513192268580335706098603227369842632055482585897976617682382939870100057527774290689524093448726571396339198026015467801617294918663695934758933853260139941284195053083650993075950347712814220869851423047401185866160523134695241459263734790424347573082076314273876942330421887896265977429948654685573766952462251174392363841002978489127348254163691334626010346466996344537025460520586754067854269002301524050195143232500162353841201337334311905454948228368805992032271901517978818375970038436801675684615212863396765876511549413771684014879468341038439518800550034694874543741779022208931258306233391065600310046606124388472557809068986238055530489222572575203276817005669930932588190615135362503900581262988799420391874354627583695162465814245840174609779524307037152635299959656297263055987544922488608765358638705838893639568752452722022840616935355256577089941676072145842702794776204564043438968931543668529278102138256409414953210301131037573992323269280657506214580584713085190945429791613104794532534489519118921396201741408037695137819441627595935348094650684546765008770741789190446248328469750228064231964341196539597340672137885202207748522802236301413467084753562537226970108351707952602907050354692211463703423155507128073379531051533371853886216902413060241794236072853707344952908464396460772980694307411517888435945104059069455203344936708138196666864626971604272718748176237008437094383233181173346921880148432474304824786991862155973746656224888466751985773821459220269366633731329561925146356625626309514348647003290726119006217078022368172600233995625919753924131942555034621370848588698768029646808078981073132290815342574389803707977491873956418325087616338388280408368910637615655862479728691081526128280582790546533432699215453873972355036197064753695222670653892656923246815945189760044754298348240020659931441796158022142145409368911057416245691012508104980741806067232339947346818063963870523001532173746172313362025731328019782532329409244147443931952276259488306927397204973841518828116156012121932608347549524388225032837550356327318063341718721717089574949961194648196048399919679156957006088044789980988175019290250177043833828594233763170077144171420807271006879137718960248181374716358590005776743515968824783674883420783382169611754766395213664083468353846285232873435147257693994722349547778596527477917265613618695427938984428771454327491235421762235316028543264309985112798949546706347413674334776864195644573695897623593121208378453086652805449848959745724296883444292350043334569974151362161124960735404174330535365563007007626475159748872959748025549688129570705550507332772250541292873445012842698211692850865420016341366997978867456833557028693365135324326145660224418340366235069683889647773119626965081189142722020080450205390358662216131014877116587959387145708201645376491410456122249905630181384106071925382705659169296665529471648194951144781776255798828418680888716444765185568163789927390876716352571975960644469036627965536470275908952752641571383751832415125810978381042990031092425322685647438321871068365289964564010364884389722080210153001834773492276678933448043143314748231406165367309705856638991976541560189538157553693233083026314440988748889323667992891874564477156754959505960966853057946030221403465526953898609638315182116781862845848799770336784760055300494950642468620022724796880820802885676351607816016670066913169521734092193608621526093119445864737938662678644709650184746523105028248389244102154646340351669518701708765497301381796077052582701581261336737485311641562153869281719060243915064939951614083721901465023366647201770435203985420580244953522255228570387995786305967039105664031914026169923488116653276477819345196571081669127263365127785412757357796233710311593559153243525702954146407298453535420973420053213426326491366136798328395427043863262453577818686736478826997230809703917088273570252013352899163006687173237492400280377836926077079910473153266330061347946958431145580467282313992952163310073549407586874533240863606567997612713410532580625890710979444720040164442272587789254979951506395671282091993151918176526726453593032971541928830170139571720301047083488279298386184982015188717755419040456272812967515336030130848261260263861388718572536851365780313568357505796359814153386118370242483013242428841853605273083518923035004672332377307627175605321236534313255161807276300044960239224400499271324363156426924136558580224147187913350732532060065200908423565326409925755454305277216652590535766378885014694876947759669876695801359910123938035539399737931473305023555492235510261472700274637407279316602667895238744188795582701442491024930697490116565090868597564188173478647854449670078088149049853945913159965268148874817444308765120459969273392133630886401823663592206947825132489892227862046450763733558361836210117617488197914053958777949650117402851965598691306556438926181292013516390845899396149864813603653556778050130171726409369164240723431898908963147487341277285788499382345104926987483836191788835813976384234378465276747884172399036562568593634085683583339613375281873170308445589893819329279439710887308369810991521465717169086440586725090662219662351015605551673608833808305251730089273535496956014987110903349599686988319986569792014372601730842777128632999433512699656217253261321178807354967364040940460373443799500053090194810430922246283438445285437059198728891274683008181873607901978092100676794968019527900283379611453847797438060209474457285802615507875783320671030899915456640830582625992592264809009486477445560908752334576211772977161270859284413391100453050981862025146609067234163459962087355530215464444244694278154963500749784355339051875963566333993950468058804253947502552917981339060006669864228684587145486062192975138934921571591926206404518712850624635211594267974279946486840571909333156255554005076854099556119896445439657334302781223057322447292647901559755960246229133224561314023836930258182237300813463722293311507487419573429934915341093294079880529430801843011700523521774441157100727484778152987953589628881297300568119683547505247904342278948961681395930794584579267480773146700185426997228526639420426026397722679070345771908300981670242429599884654579387902697913662484508019200400144303571294392817523651891335735493033497392533378304850023213568729897304641899230942716644922027790757344065235807608182212236054953767804093005126857362790397005860631063606840306101450210151489362684693903442036330433072912679093985706199987185284528857692725728843422452454019325961089892872320808840746494290413589093673093702508917024702401973634040130529105532493146419124724215647800886936055868787707087866158858873629373119780597028474241612011959821827046096877756161875530721327521599291461003561637494049542422899938073611039955549247505475142169500401911649502278692208775668019018331896076827223514252928071472774058456644354448163684422464758761450955978533364563898198242746654894502400234709068045539120109941504895072746131789355099907738286178339765426586609098818631107949677611105847092449810911184573747948249754437416358930910747826744991187836639293979227770395002343986808325389372424854280502023290930594575369305196420366210889269485238081748528829820122406214978920845532303984946543063884143085368802110561054334468016361195494618340957381412896847853914828351233358779029626997311111255492216686886725027869567452823408382752020556871148106366230554203369227509779733122560896581037207336973973468154269842724666115272953316463761068515852743912487890236853831383686340355082255819057139935398382718515411046801448154112545671273053311161354665270685047160108670660887376434505426985585011776554957507441623803553911228338379106593193268817147078954615283103430522881049250642325898014848770241615246713563019377259350081360232956403047656067213255214611921559127349517329785300606969196414609162474216661986578024282145549154097435398653215208020613349516020536971970605491296336078595309447498516593683005151097263438852915244442486377560446727115728240383058673826283722017145247233074255142075441714345445101397059150824964179272266424180377873765952184798992391187650935489236582579602188649871365801902097609066222657556806551132518977290782576360751297937769998183166373457162393032998041737689352230904231421437039610476992575744876086055022190277017167772075167561492858796548469157208066469508639288400008943770768779559165332428029667015454570196922831850539175304221918611092294335356465880617130773005504313264175903576102493776073069514176704317378616721481390712932188293318963582721309355116751422737458843657865504725865497619698349175344438506057072114390963945831149673446553988025320171793523460037911814151184374558332838776719230101641273072986300083024479498718952334878535600243887267384122084079871087181246567330556275378341937188572881616572972916894897979034811910182803720452427237754844813690846621686148632143460163848728842286407981684545247000403303380037824672663841166791272316907086421267961139814596715111024950346993648353880225453521388416734765640055721539956070301111469188199662489912400169537410236775482950236823834386587924595171727329013283301845631966889489520131509328292642818809513823162054114726647592736424374678338491294818995776548619061226802001975896254838171812800001439588628135447687129376009541842442318448310505457350921024157770389517353977164872798049354376954444106771969612684220881088938325906850049586348234967004955071325959555848781102302283191087955264077593869464216087098198171615865956545711128278878451805721346511238441427438683228262542381684061647119304074137729780533351918001346265048664358824509361816562819577354165968567464406195564319543477433263992802969794297867104407068189145915308185877425303337238372242350526386043648519547472937818343278461011133867976439839037795857912648169656244207959693245080374712182077655848938400670667860560437355833965437928862051036723639549277500155210238687687831020021026923985299165487119147908835470106435645481513300550373049257043361328874261587406007084821267790519513822086318990304927465671706382095479234743808001635373750050900741432596478274329771026606826808332035163202036493679350919873414576641719765474559657606271959160691492126551475072955468265280844532005701005910153707783546463528515660995708206082758999892281315208856292657622712021355462326084284187142809064190114882722655474498114837967992627684025571839150570565987251815205497452539683664656111740463244316867324500781711067871521253678791289858423047215548415790623170771230215235100962072327692522416000831472763227883305528388807467749938280978547948557148763133268074743884176197833735319079410391453913206338586891357546485995831939115114349086868469276221245037084149453927076187407992774633757000823270467008566769870901916300422406363959551533396063859063680454860352888795236247393542529420190506670314999133564153662193851038820923160347582330957790898521081339742741412292247828947208726156402348252415138611474454173978966165894018613627687437940444256930118406551186843510477380228296864747112457302166529084063853257835610622255509112239586460587067427704834340530591556853030640888125725365731274378059302363052730996453355457114494139626897483620986453481491626156371816455285021414077474842069075781796504779381062593810154759624465488993877415566120250806629015984282033803387455262477128290776739277327820999629794934037518479092441649723737407142172096394273669398784793603290182101364285547598396516429322668475438007326473944967437845657117568519490966483662620535473287034695179940543103449122967732091678929172982229193196087639632181704719688689575209115018933918729622555040280587907679292134122799173747006901795038621901720922590188786392942603401701052290090407575924921962947955211248459827340817807813101824698116251023821200638965346290975112337945244655014671573596973276898016560959452968164128507777021127771438197937260125962026689703950125136484824141292059949026958951251107479581138817885788798232990088729691219598327526015182684689546054850058215358173467442614193386099457184074590616930740195223122425851403842790212874635305215413634553980784177349287324663717050088992830717845528844495886972138839460105589526583255836519163650779765167885717802879799931233346270263477099805741352593730526746312117322891338890568648019842541872175329642651971482089557599495058491794003366412088622826447387674867622255235884552049146989015144862470256128626289123351150019215917862309937438970182138274743340957340402788751068611265204635744359027977686467160116713037756858380875897966272850875125636482330711708687109928572254215053354508656562869188594681311137996807186446097497024718822064374679019682538489519830410803684645268732359457736261679590855159411928812018991453998382928588974763313899058436283504346583034865563713414012868441047828456526088731023771956182470835273337660313571795511957295301599365585828751197322856809480079160220385844515261009350598077353597682720789015707209591639111470943982134156896175252312215397137354834783370168027087927740002363674590966845589306959920465624338732423865931388157495782398209182734101688758899630785987211980121014613920768463364991515412087088900741326633491709706084160366189377923962268950590225725786723653128774964213627368960196478891222705743607445819531816888446847181345195582512325099390979495373033177112695402098358034962398940220359880886247424743483364620557680401512397658384670876197542458969355704989361826663287192892713426888283114062144891189824275577058726836322266502729857160466261226071469225673661386880215009733147005290906367437756552611907412861796652027786648176164566182706930454368043626038653862986496181453862708594486297787112032796402238339305005689016775093802537773128283229421116815002069114906133136846556640027249055040813393856790567691136411188620113975800525351960538700687282242557551597072921424512544002155087135485540907788785543178016180489841819526489682853713225610993087168285492740119183428214776212697150028496064334424959657163570701884251527840204054173287324706141237890273513606041399702875874598874217946566885961035757278918133958552040046393427746174048088688656307750209370254151941774886726060183982124682331538675977944504515201547351374611662888818848123301831034612383233279747278897419023155299821737912503598104704439834504996268868033707637205199448245239269163275999412071132630735905199591152824008306671176534333321169355080855642816223608951979365625366075088629739534107543570335175321811465827288103806625144935739353024834862070015178121520908876732278948506030915551143978566478730935860625522405627475858622907392802769063945936624427958016555019065120090648738120185219163033535696688679624874825110997898873275513723742457148568117541533021896482026029638582003145447338821252644565613229611743718620673582162900588381027197741433335641745201008150093671584070587171856175969166693800755922877878186263478769908565745777050669230196115777529667206373444934541842398153788959734955789772137428621875721253158379120869729481205848986217563316132754632721936593521233291820948465292308865611945949706487877483082632334516705248504755493970111393472280775981139739811573556841856211720524380063057030189552304619944628163900029808313351638231504077125543093390751378913735582020911647791784786123082008443630569926565009632591996310458298016058227047789236374814092822154925460037683216571676551805256938174010938790878914568564078367645105652849493188736166542585050188795767873942599127275342080950864796473804589640144100766519002846947113145572854393259040561181282939922828048398589745189940089103806338252248695279185344462313981748296715463395184885208400738982009425241704017379757470243196359930882032450342151455417307083612662355532920215323494411186578309925704319297807019128522157801011363363866627331034126644922765863117361450508216582013282842436681783951515576441282333501779673095427418474355233063715904658259548208971356256235982257287073603356915027611323094575324686355652630281443397675418128048748242436622624799087703821270731103637815821128783422708714420670830885738389436802106695863032857974323901110655478641618669891011667554752747410797026938806113979300259977159780386738802620740694059418697773914716176753314536993807697525201147388215890218747211120665256544066776985477080388425834555882845413841739718939583313373340621862215283324025655021253536195578903000231824546026409783446178187090799439875955962568003289879679915341709235139438917929620387163617209560495692362891523761747893110539223756524726274377663672568981998449469023548132124906422553618055719186330834294119099977063760028229993744325716610412139552718600513445654347288554273188079495789093508782786434297670989966490074456341363327026330421073243437899930088698491592278700228840390597667287696314390570026175445790666424334533624018837952664156840581922000731334967091094026231492410801863302215427743834256796221024363685009942393863410272922886398901587616024798660435773183622428224673893553375347749976054033509801829237610168410290648723941583305092137118350071432221282472105185919681251406013040649385879681263444778648091591288105523989911719466604371924199649879659914424507242357331293844668633874220784150320542018035157241945858239000190403073050050142679753390817958679841903266286851060142611134404404559702138698741217924600214979955752822140142315911186897752715558308372915251117936002425364811970287382155122478644347110387594538780958643990037014066849727455746956101275505835349455062337988299150174906635492435792065087485524917781123911303706493132414751301281687762641671736407986194220615208089865468087353475415345742472909920160073960103654758633941788065402073986573078877352844385602249802880729468533533368531108858213084721807652358345784122448705938552284532175127894692364417586497930441583141411340056177128030864332709866622875418393798433058791037364623787801818520346265797564505229786690717538279641265587425850899671222765273293401150292457223319901801755969599476404302905117308823082208850479854780809472873488677756966858117775240691542238270156646191510916215075757300966995786969196625218454487959665813726177707611730287368769585195727841080596733441222881789936335562262037413220953016078049613873852470625943712121948541957716516559023200704921839360245701196252157674127274652249935270226721893788791257747371985686199223323461307330306202205532789825674049402372441334722676383461289610657038991459722920027583028618902255583525389634657808896200925128592794841239807542617136801420101687947947569997455945821164821101740057540564219873913533727584965117094965745823913095375972324367187714277630865178410601209018002229387163732667038095688274648313709139661537975728887003243515062518249534848398180795562711439261272957445070766372582644340158929349520129189826428786454191286550095046645116273419755488371765163636228690570260037834410554062244448117311608367067217356730969962264216078234943798624291788375690412900844034584199437799478085157394971369338341006997596284355988011355235914816302281131386991307872547239240777432947380084942087374204578166561830489783430756382058237463617261344296362006316304834497180116829317211699346306816974784182941658763701861984207788592625466830806193935257794134076452596903201292245465053892884987540095697855218745438917555154985190696428532344730297560461207446053922711375978352261173202192791394566933480279892568136332972265262580438687755175182661558967797922491489216847939344397159239869444494309698071321308143206118652426073858308721976817746401153183407928189302104003922318169883921268858014445827448617128986662384538313493745665150430256688836292184490049280261627863589162331196329441066962871586782016665955591277933680462414620533378082525512220925324024894676421665821347677651227561183803978727100586237289930976170139685391856660726385994970490115578913987890071220498321850879658014355118469761417953010340805652293220872231792112982207004781605464086156510943985895320530316170059197913974589487615826086392877478659398973328004774160529468331164535695196208130573739031429020264559887196041632155323194278296838784360870039543102983683884442970948161008365666057557349348632156262030319863225894478531861689109338952431254057147708615187933368273590076478676409689806060159478849808903293856290176416963255055437740901213515495734528911599670522758884763631461036046386791905612134495626685719081510434770348027605944757791636034607935013155344351678575179556199677019086275663521877816392544144435703904218058977854503462270300932042099595011661086138482904461931259279215464623537241629531013299771812145827937938181587658568151121769693383364651319734446902582592886660889518932197005534762911144814309511745665816788933562625663759332718889877092397355453917516776783437081802043615524508375737650111626160120522302551439557534475436110364553111655018875088226787269048622318195139851295242657572708925649659777849679835192222373018121833047566662525019115378040661364096760741096419348012186324693298257247065069109768788805519658729037406382867240661335649686236602585919090600573609872173187100008230904672891633592152226775679834264241633738954507379773574822404794915021269763449698022844260553022436294683701923431254949489851171896266581479521851759555371176650347506975087597937001832613454644222179918856368894792824631511266195403225065428411690040453821823636184296593615252059095003988755442433090542882964652729584309085843569915455687356094276687142133020231708281957104595077415603961552842279325304838496929822148281569832115975194072804951547911801756206743202281288253279712391502436188016124338731463387311430464812437238121531100940227335991876578897030635898637779632620587302075653165554222714979049381052774646781676568677276396292219276014298271061142770191874824548501980781234490625234858490703181391820404677845965092758107556002966686500669901198203329303687711123330483314948416601659793661647324933296470842752795674318424213784195732700590728353220648134217434331633465494914138604341554096491722826294949326474219719054868142968415806809558203744060784615920734223148962609404915097148415731389511955227805161738837500599452292611552278161562028972120014753896415869706162610385343133593260581386322896748504110366642246146880131561772839435641810126034271538961138105327013612684361081839666993745725152245638612859199363733906155243211480145967718464163657679760229705819094263243664942027008538755509167023276507507703517595207970527583972812091249628247796312237187125709665611322006544707795787641744659938948901158287068258197182224264102878298736733491417957901221989722259685941083967927628795481633060998608872244847226939084054824250667758913173064348017917941806001136912651757763545685954692877469474056663294143239876249475041660785856471334943467253144107630685287537550988891589992861320844443149867752335882757713915837396550870145506421473024558300560826859222543947242436354935635155806181509680412908293336500714234668577009485165712208722143039823959646219812435108054596372830529818090787840794670843848130501380114175233280172118854324622556752386357611275524287453952612113682741977814422692838606656003825456388707366903880918676964101639376362270934858493307393752913841544878007288438111326843852923193017995267815002840264219192304420579005949095703273972789354175668081280519694682020917936085590871888053484214699854392409039752882944518667945763942770700787057962401523651393263858794390682079912103621668455935290736271082287322910902015528859581670053619989482868331063669577525136921795684162174390595518954358705565028712710942006166437928328570774108504954397462142060877622896091547867896174073099405315226825165038580685750348868092595235127395126186505934662224988533066731288817405795614802526610040630098484735587617241720716624116384062777488210136187528892241625996708153773935855161218416854758044441351959972433473116823283240841942059440364812186500469491241422555561893619183191120922165849479150387739492265253450123541516229327472682005657258823305166241031230409285797028331314689442178553487264138282201635525851504581980154894679483476695315918412350868734128988501244155627527657539576523470359269110860659197489268389783328445101283574356871459123128919806913956573854506499701512838585530359256232177665024169734123197170544418614371468580137435333448120266847557114378137053706078032437636618648401302981090855692855266892145377042862884557626096501484393507855435478516240411857815646620049361921561039064648553597941662774801424686891836908431686068264322360896573174644661195580531147701755586543537043341017014616338741288958886885850220508967382053191678883192102707645699253975451572879409675087559571514276524967562406915690430743194765287621372647949219841414584319731986790775173298514280907510524502406008158108828274371923666208217175076450209215820605406466377375458866915669504977779422541896621689423056143718991205648084643711711256080578677513240066625352047960469994309532880865475112528852352394126841408277446054879482821786164724002014123581991222001259368134158506953168252136717127506998670765313215366707099109773075726812083448059564944533129569623028658405324563193867376776948547408125504703250607733496589484143107507996396460867581630042332104955679791327908129322616522086035443156829799134635694194628614453073079823404419541817959330288369640380347826948832316292567515500095056262825367220567917059904485841707624907514027323149144870023655412432807229272049147987841292797052951535322542384510043115888456568941542966102609640591079458418907045484950152726748401336561069734985803467212595229626448895993530411319459062124866522360594144593034949631717525564818150002296132947927247468347085109008162960116037198646175655673810755535338920334997765732221108219871934025017099701942057808605972345631429493699102083288202995318908434509242384419920230574070079645213340825200484308112207906185559612113036233358828588114593264984999441144726752951877508431730737618931506361535263133465380596513982347299249629316417280129350442094145019752392459115868335906399151190978124547017130556416614895663942726961093535531974210636989940857006712988703421835856490551951606786504805672175069087458746341079023701103783074014021720965485830855558704237730034098811994933516351108687241096016086367147952629290638311551950871109645026403625909459367539550122419452278064520007635981108018283711390285343791098476539259015324409994362324076853718591573932390809724983661740162629566161167153948288567718860000206639971344528302159757888196906876041499831516534675542830180322052019908217030631981765096213139873434908214430377527609071030906232602237617751768021915826136468058012201610289694018051590441468218838418081004548507833873351284951122157261368574880611529711330104610461154728935433511650458576025758486638211057599641358333718198711836440572067533535307897689638599586342274306088800549879940151618382707786670968043749167853655830464001635941424284229322889913834313733822497581979731778792434409571060423225961239645201821798069842852169963811402558328461828725057821692339828298713665043309056764918754708604156593358873685634468679222145134144565516294522319041038996678104484476923388752299177173652488377729977759436446337803305844078804119628944589296070021143727568047409756265897918239301256830427796316502135373229773709520279088420718327553339226998949076214756313764987896899848178056165342775197627443309003165128113456062220856492782835669448781824639329119472731282483687913499572846523787909369897138825747676338260696580902145855818664328073939193299592897566891636193547571047222687025676666079539130862192455004996285228811500436983191009544072663812639269519619334500154251134526096447266825017556269740145962721721315661903130230922463934382238782015169403885864669076814914752003487982888851064848420218545288068292798728415400003344496324136305639526532453337731491619555025881448973665158329595331584913007371416358832505690627322710669415469659123939648679867086271516497929090538180873795710853285853275060325108068293541036457327763365640667168029028812194119774632076849124368398452729169215733680635144569907999780334126604890755277376877629758003402508392725799100901052879142918121631185051769167319984175068039611454736983418167343745250172944253068454168134241967575816321302577389852000866394489588659692687115625650295467565673609091946944290477572725412203802336385988365139532190787574975657260648094540826761081197209065387678575051186546920897260112330563164451125994454617995607358466345243512053616734532501489511836843272149701019645483238260563247155183331803401263624441991379570194397870820431129144319505361440467297133996446779322712061424474114229747351166099494819402829543567106104508314734303063057433923517067677259171939884244326415481747606874045616663250599677730696533894635802796035249888002855277430595768478312930966309443619725034438134938045464684358942327879018112902832451564042729491147063318232555604800842483706364853981321811142786223847249396777026322942027082230852244678059016481084550455374070712793082632994823873785229431464503490238974710154291195056487553663384510686071057631700748277161715858837041190318865700584744649080289635854924106353106373731361868240533267790563407480813403113586217203331221587162132195704919222563458630043866846656227579799064380993783543513715957987015654127383050333798243902892723220816161275786916782714104114695402405387768657555312200112727616421430325966765951826283091372216986464917388271337617287809441335877553509465458660771112997466805945442547109575590415792732982660117545703916617466899326915098942614882605643207228206136044148979573566247355446767165490637842762502096787926055986782305499023476623178064282817866762344074750183172761386623572617535363912026561787715996398018395786964487419340480449356103819947611209972623238045179171880827280004448274356210016917266594679570721119618728684272040218395254585817937458113833388556813523521547817242842548080863590168157277335091390144019081596856940652223586972371238644997809170676613604933797949141139199760270522624463583802492116057605543847879584418524481542052316905845339114693256963410862652538251395107921065325126586839948441453105592735936257804552282770600012513376416662606866829298180937671125762826080744441457542546184774217117107916419246162975134205207457727931544922668069964086508140793612476656847125319956108115446851612462335862201053665256885212755978302695297332974630748137250569193548844027913812421730988515037787810105032391599133403573711633131656863271331499147557801262131759158245965379644382101251255571321679351715622138640165887789836532728434326844324452017605457668837141530478534858005612453614663226648236298608166608175860460004672940869593614957048105498543597930690489003140231563336723909090761909878047825024295431019967097622512376836070751340627222974544620568850841480999175159188689335179167085499605712543866123681765519640774372716690332841896627406434579509356972564892785290675416375522180017638864968313949024913990008616716523317353181771870128652026246301814196430921220231456762906600079265743696264794285086850238809095218993245721511504088192381188305903388535569914828973881302607769658799535251070889168080082226941649277110480744007462062342609570566865522865230863442551636788668705069885058236856674927059131388508174105265938319309620413070125644466436860973112963089731260974525576564780682120062608997728310455407097573170650623497653933348098157287551609356024451092362155335024597026605728047201429723344816974790633178850428844037460379841802192010383876119218801392589547633066135553126371864725242041617905499140676973527938481132508821810962301740762310483449407356461918688670407006610540491424755482889271891238886045633630744388241088905919444219819491867248183980924316196456542960328862682687383727403833760169638871893135899927694793476260127956877714764090749496052546793691495168405591264672443607638510336780941806278747042793180795232509370607409835180788097530270637612351508057271867355323787696837311339180386165499598883971822920009872091062279184501059981862613482349969959524262100046292003204768587141018958533370770788223942804098666741479091197002040845762682081166246631652526320780429798696545104719000462401283876324962714200020959061883317785998169666066586911510618887800985014706165715488401980018392902627234508490782832423055610041449370202535099525498971887730144281936983667350505470769953353544654169333878716076666284124837678076483311181753153139707782504791199694174493084013682633968679741414996390685149913511212147215085749529387776825011398699684784430981900517441275347077412065090133174156523678664866254678465906834190174151159014178322296493538628792102700278976330679396181216136304705434117662261515680509592652633828337815956977931322492240617346576506306556863611073906369928255489982393391455423543176313223226531178815916150727062796182394930305597845330208284702975533369489134068342433617250683589007903045001744802833666132889070766297777472469020020611387934675778864744361657360275477448991135512935993176399451896775265867984300563579601978052990568967259152795509416200222528887393677951444441366608383042700639443456308434794249110632040576154505518554196616031211215689947149599079055064910608562116545376370337977501773355607403509216074939091213886261652750382453528192482199392947058034317082174472080096545263496616579352771636982135778527939470942812535920010963426805206492652876061718595587854086594779022784622456531591709972609582142850298749324752777561081368859015509156343545440619496820965161813532585771348053791474047771028422577086498382066837669870734889387146091550509577459334322919480321753192989009965249129022048561163473731233205853598355736003398972524219440837024821882237262475684814930913754878331865129671369473595997059398523767367013116121937433376372807770226741596699336020957646586075206126517735911397581760477651078145111929253649635367485503537831920920232154714572963978189652666339503841222931163658004928818510974391816763736414992340027704438704038061670690912233566889742162664961407620520697640856360694596322093689449919473318104921205106933059942818753298520110906051745690298361835316244022060973218178543900889464130443986106347822894482249867149472187006257547058164404742058822713653556255056964614332250714930028587213271979570702571227176735490251440907340285241430117310068782757662151271565325564251551331499835609049458890202707677048081737354694062815917416051634885832136185599291576746247914852837384361075739557211869163208178849438215009659440441137014480444959384008688682651872579013926973819143273676704222444667900363513693667562431265751739474390945797823200188177140969463155934493094435066276768370272704313319819239470548235729132626268018773801465110863882280054185164193006201588351263578226325713097601396260209277837591258403073705301453030134440325315384678819009707570803855996716426577493823093432094158008924107160684097383221578166634030460779580091120326197013650323765551692267425522770799816265685880788109020051879803361831987768243397609804217150217531065965111703083970682555279668193213117007835946853631636468802086515468215343319960584718554546987984418307316144105295536681941863074213683800807262342573854518587312059904898141639051496375502830369010254000595038385257476433922827882812131548011547310868294068130166531523869799525502633371309997494707666872199417518549269046851801817278350566556566968422408721723712246558240545815646933116271990127334549580086029136536360578135318687053941911343132836868254889416797514030562661752819256302683425847735185669257112315351078758520360305552120340992883201088484447976611544002911828929474691866420759399170434023406598475725472208785967646918232115885039170918844929635124389217299267416297092048031008654270206426857508851317568220018084279144262712683772134005432194941595192460226196207356867016197760939201595119460250066271808314034312244798132359499237774912997722392210149458740059896443541733832599245005780844076134030365663602350662065793870310888575115513432487060341284996909865300991297440340002885660969920705465192826800327348809746020484438824206032173034202690627784022875715459040329174276650381888023681830612496953659886528956753480362627442445007125317590782661053206700919030261927800493942570669514005565047251902754579443342008286306853839614657373925277370295564703076443269359247031604008174278021282125135473394901533201468572782105006411805181959887215178711994512124194568090048389648447729160686552946178268897680732249789926862935264692783658570749287240253786804593573730633164726277993157721809485871780288414024357402969022787028979690509029220497842961665186795456038299525842569455165193454377204670161483162233535677908807016782673027455265030355569673755034833869330253422491763132329458614900874843041655151539630614400797541204630009118699254120645693297876841306946602514146634293499546053016632912056173555719421584536252998412276145924919776969059284831574380267235264584278251701338230563565806982910385332645210430833696882966052068444909765747674156264546994417627212661578862313833894752587933084844069667349724689385358686354789435243336581285140613314572533900021482661858887110400623776019017750241645111298538905061148856979653899275437886902216455354664041512332893504281046885032820579348582093606888400029008734590682029594106245706743284687497694194962032792007997687812491857781091649672844974920696650026282817416318682346923623046445081942951556794759863989336722723509505872391654482365591138309825913473043414121817878538513685552775301091250764779992825786939841159697186825107364798142769679958627522311034262304486028389523765073522574507211752736652045353798424930565567973132245558302250248759396453335800856229366998195231951880181799516482056252800313600869011884003348612980899249723560502949993167843429449748133329803147557726061123799682160322957705978130315017936658422368147753755126217209583837006923077860150467487247012952979722192633814398463793655336616926119192617200093220076377922749537901623902924786266210464980599425846866901769687838533667442101728736101028789231388182222074289049196263644113489283645891415553069154126773694069170955093154414534295707703414610926762183013038878119675699615796922221936069061878447857293496850403737907264287842896146108686741361051157867443362530495362955878008397796752210746816058962654874800050204775953892865145852323864419757512135459767372254681789773912659848604736131838305406414245536293825633133210274688836966058692596767018398019287171054402887720175406641528667057422452722574182536236784346593121622840052793936939386094714489829569796865941162456248929615827795423222356845887967035913762274961763065613603082262821794803962717855362113312607490688705007570617551087384069814571413519922618478984229736908082906350805258038233799922599957196465803796920017020119133004231284698809063518062036717961803729154917094561776989246879327119480607266301820830467362406488869411184046387267956098990759436716239767827583976414178405099580363685760776404896590507115875827930156661285002006674215598638675351378641883608969932704459381756638199964490574908384426787502817211035331871354833494338926714291639141831363038168060224014846907273279250986134265653368508804771424139189615825071040483042728226785327989697463069972449219669292064583773726769009949276017629800803505159697216168381306467680053979074805812354789095902005189084441111387585509290550164029576535044205526563821139658498678781116936730405388608736123781989346846690011480367921399834763485830283875674783179002428929996231020252568956927996258644343862262738346784318772434778505800380698467667827253459602646050797292162807393838542650158206490183902828590509445228746510180204957894194563092798459553288144718056716206575423378262239110393151212651719933469277076258504557402615595161195045568166112976305177014798167627111571906168948270521385890469430822290362703743243533452586908220554626819201106787756576416954417869441029335715428942569144184742521012376366400727760288458213873427585653043187809915141045293426555291404323001199467560848402427850921999214205970511520373359987089518099373672090499864734533911632131854417981697368979187020201287081379884256374507870004486891130882157833974882248945291434863883094649578516458931692764656879044958261107009652142971626495126271816872871249481605722548914497005708636427422055436391393156844332002551222725024269548815244365839325484120384748449166522713234285892806835886014261630091628461283442919238955765009308293127636741495755693369383792314578185746283623914625207061099298988825351807931361113714507538127304593329623397910186249661220042052974073682736221386718732510396592575529323454514104935391747151993493743411383347238889709567409799824803033102163883919918190881968990153865638178757722465482659269782562221479089517238275282121376310878937535127498940525003425131335260997472071440267176614654640756955443980644836366766483013347343739798025612861644943711915969353156179260697220019980331205038388322583663226232462444276015575009920878378513488356217086868553973487272449205615351746004824022687080235872857905284539004180614357105602187583362369742870079711107250168069921225146539422702907920415426833159944341045347514372748653205996234773401857055126959067178005311220294517061067511471975774458066552687120480898778413964209296569507368685171003408203421743741755401496147019480603176809287241531505957228381668096548658349340091514417841432259935149168119631529444693790760326474820006319113708617790993518037792465172200565025644090801745526309183349050074578469258975516337954572869689069117089983966581260937623195345283374999904189196022851012804187279966224194280168546913181053215550093942833239450827152387549326244278688876321163451874856408326358585285928503852127684190179629942167010206265977210679133528277740679265673396535539636053794788074878026304826786357324438852125282336069093162994778650521078089919587690988535698375890122238355891510352280321423848196178381840516433999007929128087882016940625566306573835892791041230102581022484896875490617152642767047794531635081106555730113604755414332537071240734487332997378834112812664280973484546415915362758866283464813318880057899738993621534013744615845953402324614259623418342415585306060531388270593840473704306238659907077405785004421747097371911846598698456307909287401769551395330142214671046751449014964459805899935333888747283825976586803256492926723518676501468819959273863737690862435932832709838044710242238593897120078800588294052908742786301631627310142502075808247516195914823724126346986907689929334519071328533676898484176281052193043628166366583690983578421331294251396572373580345437065781143330904670532595748448495102786814045218028322697736102617006224140000995440170553584499428299407416454056211994252079478697332209903099938214016198500172273001418791275086118556331312024157581007206834438143441935709348398613718529103650394346676623871387970935820367320519329904193198523688759259736219093698978869104176311255406411020116192553328198040455700002672434810167542555644657273469727240017521556886477451136306876497792337922609690007622784438514779534123565922476018055337036632822763626830842990542711855844973547904294292941071537315637487076374796603039107304113169794434577723708435540109154098550104628605925288753763491708104945631030225825004368706142472559735860343539665153530257867453818507165921509136147316997735755996173415885054579766464888265285207762011142095132084655569712572803327765604948062923901746728904944924849729869253081814743353908335785082519081589601475521129695616974186988676808534439497341973642972694966317635081246160794316619340939107232789322313923498361162761365473369381050422443334577345274541677605062388833767271431742256012742526304867974774607890339239814346078604082661027208736929255789773520262756437475463444418521400823304152988297905820042688917730841062661784291028196373368782357227089266692199657020187528402371854449501892339444547786155624004767471002013606296368368828693573361601522598611786530139339945220886578647261200309034391777134499727365264244769564581036499493910529343094334452413946465784085933029442435584417543697084261771778190384873377965489915318936439324987332402369529499086187884547047263498858544944995706586128972473563627505030043662468097629349313791539991545597333391564168626923753628613499299568392087985362488879536177866074808435021280487850412468452003700479073085762071098655928577428713419968063591698701655203827182253966611536562235817166485608581382693202962778382840514812777105635307426132119564536186458985638037655419430516069210498335209584073730671267272947170482692660756268014171815172182455118213940842513215155205357552435088189816165556509932516239611474563015409051099831390645347943321022970149903837344993872345810898731960770976311168954047635256591383409281308023320909888557178214734150044272627015726562835963498514023451024611645579675957154494442715192407669154457306092772109070966227921864420901073500598551359602557305160480034425586006396029111536086165943597388873039510017609374126141260853542984886521751914089728052115652187235061533414148266081985292500331609345273848976907374996138152082723595009367393603249041496032650849152109455275458408745548695892648103920465526647440789453613358880124250878445376232308987973982752739347442626646172077680544728375073112983006657781314079886420722236102040796439842305352923469108064649105449927627184203248702223660061547448568338903027089134368813931114484900525609140064945989863314072611348721686999165455041497641077055229966970784856046661598009831829377718020321726535842875344706661554824672657687948003582096881430311166552453746205032938404440261659095751865304823203326998477406818655344291248928777422940874583009412521790763959657552823454390851756463293284063731981462149615685242277378320352388091030567853571392295202656713830755016113932375134624288370409812250748546380326318043952104949412458453546693612325435368239135294512183248990123784044257121586358286858964849320758405323796287073210038353408724221847961737931331231409936899410326095708559482508435045318773966242116692197843394835181912177859679375399491485035300916843834355511497620235129514825442889457080749513164961663253274964392871342515418188786547827249780515324406767298046535354885906052090794547110333365463393029207694157035442646062597979836734522848026164270981868365210356626096420306174669833703347636843444635318422703334438524999895409802423865112499615879306232156667308612678631318983460128846714750797997093815108244171073583468678887624594659744711417490592588514505580060829166042374151855273839837841421156262737807161830662986764774123637351266483436667482975724462472057045185886212445236386007405308065650041150829284944475602438506814665621925475424495447070536578251561636576344909871886478662877487145788675747132303190700521767143945775436244966546704055764546682396423757275939948348297367303001979053785045821697270274209008411504459606604891121522750964157800277197825441832720561558225497513439501153732890712437055510608938802140119441120922863408375603416264499355302313642159357787364553106696183407365678010928099306550213666020361281716462809862394041908883293747637653448469980978179551258247656929675831317488990239640905846423610745472859223116087173378227538901056470651143383408884148505863745786654335825585291409741703129733869009228685638619379081866165458947524163490346110327101373039458919127997081108298024257882766731187049064791986367506613694089770737425709137728159705533495025133125045046905788294428216675275013534357426187683820379332714478780205998923847339503847704364676162015245705453114650625094381922130985479144240111656410228691105835024142054511574295701670304925250022412193374492140974134815549068146155399743745330721152422258913702946956264038137831089518235265729986167554199904900905577968062765946261677079818967456152408318962542577832690930306512478209503093934307592019094806102395507790248870764531088464464321489152157674437578607820111148331259194089535164300617346396510908856904680056154082677380399201024671088155317282915476729337097164429242022894127711015994843212923765547684068546072735178851219773652775462021639421707922271819892975482032404026025791815169424079244636053474000824382964348460205217298796400028007271775756189971290494271645432183254040309351425578354363316232534787683184858214977281529197628293162337580392599537750158434881196595023560650975536818018687454746342056008056277479371549520996498028836749074698155774783862982824216923540845419942613456646759294572463875139399652955823630354758492135049688134051405566817497370585959922755280010694950718242492924435239712515073418375360211952606891408366341725629579430355935890836926262201957312813122531449668076682179393972720273713785213028396817952542349348652741288300245581553473961336553020765704073678631395309161688588885465221084515417005275110482983597149908058951935157717041183105816849588350051131866739884636673457732727824769356635325012384933851137750139268213120591315359698290676382850523571270348906827637114834579512218228026572247166993699197280099791373582450741097444702248250713990961787623919419250678771244929863949336811021846663031252841556190152901030720363450082140621265599055302807494058934994601080145069356447401974080404550653463617718502610739766099337940197850040366562650103223596860665446693891452669488053917372625836185734079799107318301877558787256497427883099171434354738995470134717668844555555423150144465282467318331152972391065156289217462128128771316503123942864701383360552236946348555699828516263939162253621601157595778352947940338839863948504306894422996049366058411070973660978063643650328794339315179587997493383970349275858136948099206569137190087012232312948404920837902003364706279698125093097161817230840294565803738497153574532910443677183437576640696174990016950952186590188936894353744440148870365467252788820254829184885358821535139620746401468368281781943179816860413021511095791586052006876231126628895294408537982890871351052819041025107190744181686808536012626808396752393145433240106399945397486291567018549983762145985346221091483952719430635934548560040345730948125040848640873129470933043828105587522956590043563864397504906399644479617201676032154703689185103632702482404003633995722634074582495524727661115182644314718090706456315047813058480458533577443643280583806562180579712527257673993753847685790087462282623864569121977041504409776642848374738794799702235503010506955814334952227478417705380026496549813256994820306857401334641188782049950197049512499773119411622589247478568738991543264568230036366212429405259978425792886140163855556446540809638990981652379665373904571315237107369338173716011358146258457769139575473152943820151057086589362389406492460240589054848447459967431864917653343885462716231947203727371525654460763193903479142604994953756066518236701560224376287388539639492991973750918134654850665085460530158714465311653662509548288082344228807392383387818938384294491544151895636864363887831473360708134659581737996138533074024606700236092543023763195142326590220109559521795915626249412276052073816484705961058372366978830206494905749955712785357128632412090099437847717729714629391646229554895886372853008765601946330790919927318391038204067983498681576479507987609035848784164435079491308045557807049093608815167520141143610769828455697176491301314880305779624230613646010129462265688190927865855479043408789526444114843066783712963946548308630346677207681994952718151348360919707840810898027629729613522438077901780257453352499313026010221423049174405848912228649232713893701164420878567161458183090565890318277405569678024192365042668958263286376150300242824791271672507423570070151421538443542764055605778381131400169598787879346203033872334416583884887323272431706536757926757103837089323581870766687314687818118837053940347729254450463647573244112921421461766725209652446173662644488306924979293137856411608145187350495637014229280671261166337979188125773482234995487718119510826774187069788598579123000118776586783656668565332882633463933364568146711079660868787099314990412031191499435164176732862091000954486299636315091043080737319287099684663622603145151234898359336667051104863287460195193758004019125417859499616367953742157548003016811528899273924234220390403130724158582873515579994118062299123920225314563710169962530596094836794413498543463835351925178314741072856779302135562738623197612319990753543674601357205077345200842696176700527622515178745515870137880388962042341471006403883517024157546504080918525744644061457144490677850754651965993444160090311495825852990239706865268728382725165862992824901019939500230106099723583920697383739345211426396818685653618106891133966200590263684135573014061999960738572898439849490514204318372197923664328104387817664178249350981353406934255408157672697817650877621977948318906797096000325271357754601194837156510164449481720109828086794334225510704401865683904955222231502069547638913731269324835528931615365934454163110942533465358158549877996527338589868948871136522165024361706185625139315975238382073415562962374449036329130092074493550795962954020841468098242827188837426231195919833623184643732427883324727048154160883590335394589277263907559734690901565982171939290627696443334735474682699197370898893873335973259410924135936924988679031072124586670578512501519529250359731551620492124268009714320829247936098408552901995849702385792320592204635340320051410070089519348767226656025368991409504214722815171171362261288593919490969748070413100367870107491454627095947286174596344293210296558249606623851909777270596681968258224305979340574116368814541747364787270837063060832112867039640157240331858519527091662048573432119906825869180425809529149467305275719194831063917887607032108234553645969601845443723719507490007792569555197069565651754003683176121001667283800034488774306804263769555722436168578476074566833316964961658643572765590007497442550813768175228479164774808737955219455741514620356377011271687210811613212363506649904548814022369077622605862217270761059067976827805981675355607541207544619603413057760834358284626899957597019527763348870368271702902157345341757902698755150189542404504554223378708209159400188270740045151701140581764282588518903751415908031185818850390215543933092291033282237696355471389674447637071347898595234776338817867424960345132198426336828381343940562381557498504740249590481442914695106627306426348101823382777912869787187028254927920557986578109867568751133169289536335117688539228146221473573754703302508734907044560155091481715672445867293743134578832234195518999127732471484748585849928259595636930156532446192437453194852334032561956056670709865390771726175623274406307998882883293402998967979418915057195013105886002760609680768945805153508070543966945341879607867201123799549405262169826487925272487530057149037976065894326457806226033257462893355779300529075830662831576331557406247196228048450106674798827528247094077312255762509723716451919078894829337305951561869460404215035780103732228116670117269540552521100650881209620491441321975899181214985502369342674529252710522827076406556799092807115122222805096805927829160777186678321428627280107210912754213190788591386988495865674903714486803104597189177999103829897266667573270206314332143073359728907089163760589228578767388736118721667543610003807230425941141546860857245115057989847739860777183358577673427293871294699263768992097606098077970046574477278785003840999732194527341025236121624027879885005148914118795592483386366354374914788712038103958573745006991959597675889583107010750307424328560442732018869252027967612062325652720567646977329356056980552648128069235870404665851256755478674210601711239664414724533390514806285757300375123638077979413726182754569372486924792071464525624045638886075287833554131545142570766263916139822518122235520876079339087954624288968209106688515325030517510464117323103568204012135308709488029082521006126653231957829640036055789370828660881060246936885362435817567693421483192995939226812773115248327919602286510943974110364845309037065802713679328836727362460321501034879731495779549489331052136992653942810914087367869054644106448458704443715339469310669283243449021015599023139180719628563278777249964914781105403595249594956008900230357003217050497589875872154458252297293286762667630069758999208603645329977141971695648835019810913325809058437503120711801341516112054741414528980435861191309817480122155612326293606298965873434408982570882199159858587933479447734444799625800680164770756624893966644054386664561497625178689739870848968513947067765626184997140827497899186808975887643055039156968377463165452830431644821320192618173811697456251661522791099255063169386324922460680643197851271697265988582217029616938053985312584588250557155465696670642859280899340542833454313576426794981824074145273571815219770933549945458989704175412952539203941395688348295143152199005296814063854262264017587816807957078479476720641203461629818324066473425565331513947293532219305712062662764631294433512578126362605583809147764099884986723340082805413170251144470819103180317295593343217633015054034440142172400174741623321020923232709207983554846748668196191810697162237747188703360563166222237572262928263235044785689295803279244714698615247615262920211560448402863333282623518480873129793470340725051155805099421880540604976871347067970902189694648120047127739634179433072017117246396896322306789416420794800701832172269257769465606108800393931669699954471431448434961003988064449725401902244033694663920867622932835030129618447885190094441349473557938564450348357140395957716967455487655494112263401037497210826542403759347102990526101497365288088208950745983069818332429318784594675274758518315838753759946268244207961927716642805673820299915044998045471940172391737127551650914497155529400456247723560324956981085782050271116303325338784413781256826943948662619150639028414005924034299565986777462070551230075481450529940004730988565830279667465854827659418322118383088655154517724617610752994474329135771731716490750416419690317713126023231627867680348158997432443870552188965367324275154703506247509321379137408769534087773372443806816016084253048697715828133746881170140976756467870493855825199887399316307996809076518797905653710936961411298248008856699599235990995014821783549322242385173431897261169221193474616953814518647008787821078110990364700735351109632030779976923159082449099923338595707371638778892919956059016904157879267646889991020765714058626257726851611395044119677011542839140394657565411597650287794253509540790567785829419563212981909393447085945989702607221153612966157197657345275265888378581144715343637390151382015078017572952777138901802508947409890966013976769288224759878772072360225765246347923003116578964831178161219492879090568203187934034960665067466914353475055711823078201663485445020390381000832554519153036762908132297073711499232640261009203641434644446152715065690716672654151489019195997010745238644974603850391430797646375449910609055150252302563869801494978866901157347541317598377827721266394026089057238323767469070390943910518213338137931766612935499217774920425896302094880549174637347713091180463524821067361424594227480282782006169995171307611844375218105361171600302804919698860195766957770870808040161283748840562890415562370422860301899526042157899432634983182972879354692432304859871403489120415583836296082388803587078422263046590403319976311960732782533227642233025394631146201908044204089577924679952360594651018837951968713107343879414057582699732422226947439820714121163481037037211944511257859430286077607521148158948070520339261274691199394902468995535491619282434163974382139506568207394165749136363058499441104391771385480610829211847901247175107072092886444265757675752507217173018468004099496922907388243682105241083396994905992259558694645959052409380064637060248627172842533896705230342475276310164214947724755905818930837176082317609218326382878752974446395875304840591826495641896675795726796628120578581076730513391438192653387645239356411581997327626242488016534420320428599788167762287743052608515757669978362633979153512463130749772807413185634894461599995286162102081164749140265176816965707088343127922974991850582024153996506141696381253728011255686323470700911028720365922443572489465715700653295022223355202590878844643832333977329427980948506437210899841682549156534272357331794578450324660878295655082997353799024196272677154123345333914051736852750221327020764855236103383741496782601974599061389508973201569961714843885541878101195155144413398241271668404403272037632178536392671866466596252208699565322820027110344612208991082574454328579766832247892179237840058392438169711563966728366294964401157902526563559240333172429857183556508186878308575480120992929068960228153976965552160064235394649265952703440859291874727758036671281034949527544767452037227301885241526247372421167770214736265867383067768570964623257454680684582805170673336680645006038860155288655033488914142363766793277809277695634949589755381478131739696870790607058397494636618101877736381403365259668449645293320889256385179004123872366300182443065897977366336658930168308784339282050516725537178665886412360274035248369032542762460147773833152206382821648992266086294001505810730889562572810544082700152426598051088191809651989657086967216579350201842312547180419850021467199958598924165485016213322840768347435030952632902969887950824873776761715323237261142007302792656701845224023539515760975107632505554140862066266638473578282818087363878191129452630313589324072621627622293249300337573345419492019620560539181991605480149927324277602004546820648444258701710174428269451484193328929246648743383157105857998730803108516850349625663877142095710317067417023169912266906514846042486901082274951088153442375029126340588294991012485586211641197422522268022152015624908488109632037304789487161281315784987734424398511406141872441881617236088721845188466769704565158129826699892679089607828504803273297074871329365053925586629828891014330637427950469806419047224418168157304341280866543567251608614577619961247011633742877220748010775846003415526428186903075956166594307396970226715159608003195991525754577025480801262838500306687066840960815857326345255609508086996038813665362584283947872328889189384476679992984031553503191412025292941044607356554802156664252548903699642175372611960376948081610068784138581248922064270353876660547203217332390521583696667627444827209972686958017771883374021512263618112941023300184119460762304519498971029854957182076106989145533465393987971050477571726652173622342041687395005580808973339287341820101713783058799329182231181038582889503082378804560436508119956369997955208653030480113948228461780076134272440833202909896559752574043071257937275404648073731304270150351815280636756632283496599728093105167010948573436317081217332949081826756128427280750660446974270570793919465762711189681897831315541604179947256456319062810221786971765176133397183988722331246298720970234592662239125313051557722581270023404993319141946965735783768076403149691878083790448553122426875127449838051973316167610089849828193199174259122358185930142013479584606503182752439381117878817950109017593228267975115466976453848044109706964765563827371929783417842882353189825420378413554256781741029120872039549465877708219488953025278854968107465071338826247736226094811706392360580279598169768131857715012279779639751976894607761868436839828346448220422354996182208239353315689399451661063153470466825638581868453767378682064531546257296405037864618280088423873222629629534009697189040001755789967226190633951114333871871338788014734403767674780634214920921248090548331946077361611405248237444000092052080123799470667583880729595891951419683275276351548136408600652304300919933446147391403401718888206200815945285215281516612641662074622166091369185019243828333535813374831893940907064429079599261283131503363668449549339073709724391089271148265008026444687567989991790970156678759734125279359801937564195576277541746635772445261800540429953775828719116505250318798018616108348579495504563531352209237874452716607024259316815702447458934962021664877494266719115707400563135844543044108457608254486406324008037572282935730369742777088580677955333564582211944930545805236854859724666647472335554661158628761613013798585391401353082737890246527605657671070435573242179042242207833364801795816145591801421154733131171853506195996781709962355069708179769598352063703271921976771678488822096011813089780385485955030118035870146016065680339288539909982543147770155961578392691816600739722914198750554171670133183563146185535260003877221975416093070245040357754019695095174468494215309740484871275444156534100204254274957811236416176867822318288279222105004571221826428509954015672878190732966605786322253206179295448078858573212164981920378255605578738608706551726511525409316730694853414535280744933801637920741389823178097668042546663593021328545097919496826736185260181075310033741902929266564875253618610827737021216282890054951450246425061825193112644675683256804897461900751311532688865730234294509555147848768028467059733741004723022751126920661500641577769167114115891022476487658672653154836267225741220341225223593132596999944131220922383326258587063443857258920009881968979465520957535237190343746541556083383617455048992037436148291032252080401427858921692168228445637052586981002906315585517945964428626203311727796462283545875085855395415976068823354827726747688172670742717651244904766551786799395864184738135590914257309670623497002597284650987359692740746839747407077844902847454525735975814555909192136684301193404851603515432469866427573092230065858220757921445811250451481718626895585251183576113349474419580933144380093974894542734540598550793435725411237883101603537865816558201357045374270253027370663554356439985424496121343174653727491557035655896909704082472437697310817946439426582877687274547341211022045082507199903727506982050250134205455727372755304599317535670609641541049724845133008450166150460551759704893471023200680900818863829902559132757772824572380510600753410411682236542974167208437540131812140716590754455941347945242104028701004860890404709714735704008727988494891379375486298816984320626891400418834345769201543878311409308712711124893329241106448910911736219685619566546465492734131815514301987013262559914049828064961037945157548483197294926094258404185446661087349501252709970661134302120353156804634424230667050326528777550899267038133759072589912529547360091475899624036965348462015637820737926913162250451029179203827143679242567023826270997768234395146664156517994354404155089509576792879840462524579877247612575786611965326308062365742376821681128861200792887223785820177424806219611312977947915088843489090536230578065890183742121029171814572251943557806734646514944935644832809247527405209594153137229827477611053402581664144192793725829494115609593850259951758840938965969104395963005953585556183472530764750672101185603330295695975020091888475338610728608644088225894859404718871989173273856769222652668942040280310402581637020094253105963211675754296107976361168625291181629310083565325924066057348428544306891871942223461783156328665535133409294721606693248324713563984570639104922045381358409278398311946854014057900213912544393950951908058600789241424569835563946970350829410630872581188756266791813837397415247811432175224189403966027787953872793605854148219228766772422833209529322688623160009550724824344878688369748110866335471208682186966092779882346903124836093028787098607710127295973336681723781700369173484466816255432883781900729760198746187677348931906321018429413390814919371311277502942321424994812772620537183408467184929423485575909591721029207445494755277356817405842679853404861139827605521667316154844520352663674777247509619883818212519863039817532771352121633744472199103240690465703999894194571740531560166328313651089538438079089872777449850338196078647779501961368500417450554366324891894671155809685888571023709227478004929367784747991394067893472806173645402272473425070072174809086705394679545191817614362999702518637320465955726137214146869026961495778147006773457714513986031237288943393888101173983702606751934098617912787670292109600212467496158999001519219713505637848118283384519060449123459622945991381793909766008253400050537032564599779464243290775753413908711751751759734512962150193711051154216738608537927188479811297492580600559884976575061040546672319027617262113670527183490676295771310752773873761869919477227018290368884946318409616299227126879191272304338588699197368272021964957756570445768169252544881523328262923921725119669215357035117755758010065338090150716519415505932732081197550367297630258079207635403808977853059222886520577375458056085944098381438373396332642538900735095722542844846153350843462618489187639648408078213086329621866794213432742646875669359189109846150377712662664823154055954960632919841246030330630108926076168625531851090921419086862098862484037862572558416021883739315242880373716605670760233622704599326659080728239690577119944075320619190712257718272710976266720199180639567250625441783419206634694754987763905017518587942054429857860604589895038025066383597219151867557098019538777003692862805662840042072353086642773661488497187597229116794618587816249428172713706874945523192027011024959622666439093543267398763237863492085463479592789435508486156639988635557688586401564688440477086956006035045864446170361391862872981487771613633645994225184222610082819610980719031550297886584967297181804754819174121164575035526820958754759673824126339733239012747232286330145849620924754195667012388822522160287594705373356856057151960897143453822061747920457568419774542320843733828346650751495215331854069842020967082571987991441588559309008079758120711894813643465823342900108520348269811834549769263613243831482276815842778457079913604550309386363698801603046192217813410251102443727333129116197377925481340470127363436204751298676258733790857027699748162494641548147213524556694972977199810256208428988677516106944230403786768786069487587420652176377808317535592831738069798250892630142034762431887322548266982511003881779104764881185860823327256367981605502032533318932342439681276321828399953569766022294191552689303063827469563564416477059822368655776970549306891867553828315142524491877133472863805711783440529712543823792418493696960275564822797675209390364952725460838102911682395231693521910715224010550431275127028942590866262792090435452558774707423142699105973993136747309896522623193547858399024516432036163372095875777228639846668706410490843790554422589704864982431795291759818095696383016372627491168577518410141013045954567322987437544039841450901614819190319328708526222375779584166637169260115633199089206762093966931631958409561730810230331018616785516496493759408136900460027900443581454509325805965188032228303949617655500067581577236299708745859813245802242398587463429206918917835937722708306293479834088962046975615108687947074493013781436699876731269292800043998997398358440809638475799684817213891270203578003440197510808941873153257289213592450319618039713519076917572087750327570506048530511589628214652870871771704196204897659494777595762182517239353209606246699318061840037299006812952210728960153776034581123231963054453427179256634774030888714649543797983395861143353071773823294427443963432169207090488099675087772087123646214998387817039267839014775369452654921770120411898195950563824894190205039046571955068278872859643536445463116785590543033724409928503787146287662524387817669489956854892464098785836781368420994247460001726499116208404512369021148753838688892101158117727697784612921552601426337639988314309203209966825977978914171199481538402516358080106896794488881257923141578310578603569822832472256902827124412924878048810554223252922854033871538007840210151402683967368079119791106572514564739698721160409287162954865883708288532451128300674794384840583915542710696603413084968227405532793204917280545537755805663609032944146180112857560344198121290186164384294794900117314225510204876385367772538180037856557836252807767511845884444515505694933317393798523373335480483469327518193521425337246540317113692876835887448659061115666863924874515126631129896263983098304378790922846121128753800121001464543580662891419926032837789530345258549357543757978910393468834884340780079610896581893088273845589457367198334946618600495070029382630845749900900088234769313413193906452487128423193260005601420482139317355841750070557695063977703518846382422320270057528020794741730156881030473164095410216166237039828859933365022687163888940650862336754107779009889740430687580432464581545237726742792008819870834930056554372137892923906616903607081297196552291234119910491333075170219868619655164035461210675007617306101777292619242925830186215068744480047415356797541938740466249978672678164427199774254243668564674036183469924126563199290798780546305950316295285020484176583564874732542820143137118392208064600344082379775353052295005085908923080652036335148849880091794414373822360994804428871285970695640065344680679252554625837339733657074535679563716219921496012823118969690850150205937921761868478594922938234674502597110903404898764823813874497040207709697143226998190802927091195077255938271286010363629298061162506797720083043924084275728116499065228841496466827306449152855620867325818468799531418674169280043944831446169189933215908748851147983432823576882958163434149867420652162412390111533340715560455963087617313941572825065628340370638388028778800472642287100050115315909005592000070762357042325229329583550496538273656332418915879133548523715166133002604159322399038082375904085280333398915705977305787925072821518417905805511868077546577220463336924958227081907267374812402325304226533332763334761461750286394164542212372642075903332641140395726465743709922638530777840867046860601717678172104313472225502646857660187836220377986352342431637718083258437606883896050531108530195036953529042716188934620265218650752340174284016649297971711939359354787146577958130331849558838482474252156723225026554497912936233090507525693921091336668349381373357264591620684386408438012920285805967794825973112299144698200190828388488484328517493639652185910732171703598102351688609494130693068622859047823023963200686841301561732080434177591129249630163373384388851851097926002116952491918474715526505721499695376048268857263739973720069226960991427663992633575949194817536035882400160979203850095072028662230240495890757850457420904611795744818392686251097836308673883546206084982306111950278245914505774332006989172761629730772231944770515609936820167884855784188261247832857639213193388946244179148177081064994941759532840363953132189436124007240393627758526496447935227882849052265068849900239738366823375117600239133596808173456240742751964003397542429586861145831420355125259817570114869737576499955666748698917490619939871948402326293977622951460296535386216121360375308988136714229527594268594229773461955697235922316304931102696794266735843400686952266587791534097035322083803580824623861311092133076111288179142210182396317182618920847593359267321857496817365478578926716374062987504452427805045051247501356824287077368360568906364962573329020291140329820225857300949537140008790628954126279915264423278950458287082613288029368238845952974247375516852697760291902470542187085954080944911606734356718535685951734121442613898917949282512598921831878074600624795305110511079271283616367249972628659282619535135935976266548453545884886927693045750707295236532060124114316561772165891375206590448660247593340490080958522529655820973304957524107791440363517289089770321204047392755219073111405115480958964955113701376021989538229738392175563026384525234625418108549180242376120623505422787386658338155520709439303194313808394747478141732407315276165440801481808221157223599976862067740243307854552971585796817079186322067656598160951861912358396612732768352450347285343344769244840600637285419694701711962834063293159983487876624288434235313132042573442399914689807143495263795637788844863796968712766916694016356840710401967178619126883841387901386995253940239610774244966536054403668181521217905926460660360489534568213535586507578419266298729607389808802454410967302590368412421427126382921828896494998387035124236815425095949938164421453389887077559316722472439082808808744644116306421124278076627488677818568514695863467278222290877993649676192985075874187553820778791815751390708460562632640048132417263933181888912763119551620925072765289382538904272079577584209536659746935920280919808974921941973566948638944090322222124599668956575610754980541694928166922293562744638624931218459786514967825380806276940256148949621293052352785619672947007207927503588625268306983919133831770006259888164297403681605624945878706967959251877303186958841735658514974767683593005747641441442410609677360255433812415145265106859924160363872421044448036989424103049699867494184251469277134411451751905047543274062042842798574087168983465821381252270108639408025389950506880411850706189420102826759407300223597210059085906471986079585941382249362476185241038701959898227247499831932207949408056959798089670689771865473910704449713633382212769292723035116838973286225089138550212421194088610654059080862760190251222897474280913250836510388982072539154958987747296688971402590902995442489287622452542121768503693732362167852083505626466438529060719436969685611888428048493296203791067679647991733617836076764714776656706566610730494398642312864731289928784250103890249502023620231384963039574584886322399809633975093921356048363230789748165598021250487497774630441133252763034726274511549016115317375451514712881195735458388342994198840156481518159153066770984779745297811857307821663281242308487700602029954351355551121972218489713041052525868565862340902881824489473092924821400477841013067384511315038669395566822737117433952773514657561970430279596505786959092684155149403722825671602162123312967497618898484807948623277338230943876915919034613479641151756629207032262208961650321765998755865744125579312159681706279394676483509869871507128556526973110445044006278118619269111806852717482183906804126144375831886199179398868814129583770037994832899836976863491658636070635899280121270307880608179403198386834316180958640261102462234915618376426169152550286845465842889662521157910551001988429864387843704734752331142939739823745860673125600729071754022356002018300000696032974422787124498812691811349243880784819980971074755837160120164316271277705018881787535030149886271749254897649822100695861336550139263847509948967501762479862556182849778851852079589028729677940241615571390847304788454100332505346966806769800546377349526279665994669219696912205273031026291913457078778754509796184829148913678197775073192918591605373197115273761508477861116302762739696164050578564991542521725865710110724780775835471100483638651500394446562227915099990186469455987433746818738022891927615109652803555283318772068366812784857350410560381411551580226372007872815922530104359560921689807054192754664266723447037438205309390337101822539897381938157805991986653427890221689421697410130071898987298821973969649009129769615444676536670168697052830917858136249640229355457174179397502328712530368057884674663940918212357359627714503845202123450035976041731391706018285798188858197334876413049827524945775131136615347310046107479440069725939282221222119701695673558434689924086703811004046709363440062835488483114787146252542141029283745963874047958307327238224964875583836291577903869685498899682269490222531488644666170118532511276507584030474637496115938156864856634778903015717272358533139567060995542266171630783579589345173471451511599197226515788366833987457200811498132353720122582511930408355522314598589170143079696643949131021096725407821468788876190598276901310034556987846736280764058464776377991887271819168237926539215355381951659976437307469557827811684639208680122186356431945606020138141976739339916337703484634237977364004064736318040976409874974871738131418460081341755890878436985002234980298092212622387906687240344908883251050363121780081262708080977228509472696147619835046948224353893757338027549457359790520751945085352613130695584033361173816797754754994671398744297624183565527111751235214675812862970235841310002527283520094142525217817296007674013922397330913286533828056810315978088497916326121059967436344261960225210592847834491351425529247254785775355059476286450306884647406958323766629108570919478547934942045038961346550901318913035736530968269368256842278685082366620477302344863261090648058679744855810084533323726239042668439712673700642813713014454369303065540668734318358508376690655192358044059874443652856257527803105274631409938864884243079549033316770958374434341399491650664451525170440190843491914842408828482005884931183805914230624158611314394754371119672139423310792394577139869104472305431705700009204710134090275113354149510855496371129219340890555724534220814895646861186528723537306064951114508052182680527525665642542030575323579365608361461763349962512395353209620400908156038263652876800769674831687532464059862398197942028610926830611984542933420805236208387749782427438049139433415805060708528142547870977644866344852442866729280160069412062464101354079521075189441995990374481996451330065182550261767536412581936438048574087216027352187003536538387816294374810011125053356148853153044378058774492846616335907608737657509579250058405800533741820142800735020319434790074203908714892955537366685395765454983501908973549925313174026846782626659478386384083002959399618438036500817451899694008433337917915223833435329232672868546892516915263313600993029777208965716681297179891649727320862774449984484840158308369468456430961608994767908236871807175547451303270041886439279012144379905046970557755272607884571598845917362858500140202057409734027684786476033335717967403903255957806247602466167923749693117237091258938782265385548288569474726065200970135679920650768371501656896455594067618330759040160691710947222547565283608140460023451850683412026036197415172034640007067306586763736034812214662391677661600885212618602354430261412061028522315797405446702499693603890830302633785226863442866646705997374608488813194018098357423995042723072539181802801141876797745459036616509723943082906310118124847634404712782722452966225463021413199799498835774299107505948316492019522975778218831156208971146400666643655473393375710628657508914699426079585223838738519109896131992207390698015574305049615256118472961472214306230355154975634455849004825037156071778265890097800405835300946069045281075526909713474462651342929966461959599485274386226203020043943478669224183473184317305378405049404757278308540706096954971408173494725987589186495130960940297622694606169703810509109264780527425410867865521776673152954809446448713491422868152505481242892263553344114419880796354169238451524702092212129537051648142897685201950786430787875947645122783572934867025691853036610907700715671469484352445669070489423343158109953759028967014802891682996467355469787661817016436136747490578284039090636226747438935932384875214941663497141549290339808550304004066204171221614973175056229473911866395426172668581420545181515296423979635112129466106564233876833776164495021823603066355632120806571010713455320720628069697197852331392758403955839906322827161696817682630383461640255153185674997740809794749277346993426844560972832991567440038836824990912953390339269433399297118265266114532005607873243528969557358355832599412286116340192622205082617116912970962017019372750915539066127769950231280527967243545408774715338426656905986769777059125359628064619650899160942135198648697521375301764415382765150890029032521414326320377343980254718476897875008165247865860659304725594722230777215408025291428520618625291105475682293619544927598021002926962534680034410146236256025943456565871287212461366354798094530655062364798068498931945499658783542666586985078830391112385504573076957920828158774712641616907338657846530124693965008735399790202287611140677997149149283425579859771874516784476282035011387970336779119906169990663015116302146264727184343070879860222570995115860175891877336476556232469994995883987293805388397616446654767138693201893730871791053027081857635738896619871591406929866968039913246525018431624298277870138386908726925668665571829446451678546634181353578891655509578126988823507276646557960655128607639918973746177709065355297848424129562370422845282577445852613266208721443901229625782914674905799845900182526623935541758908843405496744025180365977405228185162906975443617202780837554313545548301690355493043891088578551148472205607797331683465547694907882874334241102111980557345337933138225978362639261549224263149288708809615847147400700301103013591643495682332585139579366399331644101052175058664507475546936879882277084846402613943991339709533782975928783550329948666817060794789285246524749498947799411794008583764564826694448412823684117017818904312969299625979475944909587745964359697019461500085624789928993780092782293445144102101990246567350000564565016217347081679438208044081120107683938345723315758649956606648889912070393452748119759981156286186474344793910207223130395492048430923629874813877877252903586861076282687260055111741883933403392933051441693761631766171676654403070250076046880136404786463745452286649766988443465896639678476789853729245441834138095884351783278309709622753415634593889903658612888632115085183760772995269659078873613114753120840252716152213166442472708549224695766230151416702696571420058063256694280553414671456710034607150591999820916024920736991521176188831609577153125182550321159884406098871170741145180253995586521552672477462221873233659523737754109466230008549030994936176512499773756212631651842996737884282827103970581560584775952305599429031968566119612210765612448786407386159336658332761843109245505811565535857404410864040477678144083994129036949868413356172662600765875409488062087651607787345939805105272231106467351305812759386164713311230379469534105587921116174501935089992011408750015430035558364683027824886128250779128600395536392706496808904514112039925932153606013335158147746797544092888848971287769538049855040615538063035601000150590054179786554119885621801551053692270940117181215132356584118646241041430116574133536357078737874260294664502007355861424978487578924398255581316920216352776695279943009265219220892633152873939914398384279317081438508344977794054480541142428474554148095334199127617804176029774068076526768269980153731781236075496009286971267484989108310706496864959047644227100025766307208946569222086123640618635986582725630083601116971413165334398956810645010541276010701135829470195379035597351849353889399123445618611080225178827452699053500172837312786210402580433055677461223518295393122324307517764750969309987699654199610842680347360903609534717260221729489421022595417904628148906729849088369558663340557604447629714924189316562964435608361723554014340230393225909199169490609770900519111927995398704660368704512942292431042741829251828627724327963404763948063835808088946138175381047716113900509038490765835642752691876016184433738501260720220459077608226145494635837854303338075108850731655913390497236048823791798674117659202802812422064174130645999253780701539098256916006249963221703078493780497605207687304911743853859468270607989232247351656152261424665454106539730213121736749108147035452664137507246029864646848628496156456644858950117646614265127101555734568135468456153446459577110801103814531453046341351347512732682443191549662282124569080665833531165879037295590437692311428054134081800035258214827431007629983905767734667750142074041797344903351765453424260746474559920376245299444858683373150725155030750491965970009664201832557050623516592782542026878038402667713823334382373414515577415901027509383612208902161577590602932755858663626080999198375936106075160356449555940466178684741165361929303253347850681915395306803641340282091743228684120644625964196045356894245005847905351367704186555615382090805384114004516540064289589856719779646004889159420507480538653541640367360563477240698140515629840222973291443842829885789609379887249776183951907008695600769161044018780209249773944574904929504526726623894236088778344615088773450851074558875943089633819222427132407553660984394027743250954816290195773715381647849370290793963468011483398980418804501765444459047153673444217878043361392427951808752006369055595724397998812514025505479589658749244228764982425979937015185968019897299568229958333476805911399267376884817086685143009188237424615924152567812368390767629257817752811386199836005926495920706666569277110709574202645815220932499048207649685967332375182380741540597587803217949929118487387798423679902309825459115572209163868611497826324023454407847002085880887426226675323570331950607050609145341204840293758363172646318612381463770469068352212087808459714327504804296001673385691230006731767771849260529580537971146061178030243105697369999807771639279994190549770910072056605808322519368702117306926419949499059795389137118522254191515110228529802279811535573161509070921890898720184635507360833944788386508621974455242545234354696938022902497350992395623085123191219827212487677223868718668149439192363802349772322155805277817611315436309651770373903824497721632728996964440819297286018868653281587282878594710861313809880814255993303845291113011799982498776296793185828975295913888872394944519637022288953884485002979959394516661171087411305021375518831656045228428167565024564419380565070617550767624967186132923658828109196580300624088874682490491269897075052198581825414089988127398190722228861657075134267464344146707027079894779878285267994218887472660317409113986598844055808532601883328735031852300898838287023263515634744457913546315535085733874885814660271691593258670510731168418491890597509239875742562917445530083919107732162115852776055492843629653013723243942734005296911298415356619522446157863361668333181079756201515842362868015295972312579947949479627679313088262314658490437618130467813077911240314641586205801721260618548922048070499911770476858143381211286357359065492235023287114241184248201747281542365719520275218322813248190690812450946433133280431896521109647780092846974458629686085158510449560935168683271736555627050668918181508133246731861139856361803374225844727364561114838688779152583061524646123184670365947565073064824960000395147312913650951853184157301905703252961701995869592901953014995154899991252773978716837128240514952561174541300189828464205093866005206355351650849756538568947448098993744910569244336833935231606493169330694163842051500614177964720062895769667977333263289662466882411116003268077487631865126753012958988126227433623205673397325882208594670623008911114599171002602428593036107966417376022248218828976660683577675314198125205768902464388412610803956233291153770190986754936563673541013142357050141023036513018920469232842859936136511201224569593356329142024525614267585507773850096175738232842954207885857026111484422247219384894587679482443806233540841274149362807556551386099962831351446574524924501652088997062336306767399623540687672137320702935211297745037150335971149007317089011105609717290112237523321342187394492111783211837724498944581747464506144829981762896391992617555762997081237855559173284773434126549236786002626873855225033636398442810221993679702775348081759757089158595735700200327831315724520490300952655578720377674413000884808423716342146575241786909623470725931617193309450902728273331674731737185524734140250571209031441622753409274998540379803394890213532157419778281813893023493416347754083709392709744124129526657588388603964839746553072908008825175243421922978543858045740183633483029114698416585309492566467928657337055708474260197325340532939279108179586284629856693129553041572779331632848054760209458805872443072321587725861010886399670045359419353809851021199711616885652003406457870836011955520640954502756014668497772341336537592877953573559956698106247721673085133622655121352223732586185961913828482656596588565680144840187182447514207753062010865257226242699867459448658624947843954962659858471032128335360832738931504871374768888107165999185843603834698121967977575799575254140965268618911683950405340554057035473152197909702548649532583928312711227386949371747584542914470912128296969417039515769339334323825937880399059720205687112344737764711320614530504189412793359135209583415074976002486328119407210394327424703515461964306481695725299889331775075300125877025287690508034824890939569914462330758521202567958520247982949097301312504637622016996939387399627835183544863732089109854158716386171665476975402117575052652345784255943394479165138718898654041733678725531856376242787941756886491189926120697019319185561411303724076073991878191774708271471515143766008599474435454006160851349826875028762989599854465695046976200224722178434119095013489403416628503658653487413903926974279469683314761215712885323532258865290149926301406727664092638857518064228561373144982941893965169101992429417528603462608965099236081585571930316007369268587181383640173343482612420465088548645372605394822778387104229268616414738558731993859062718365031627051548625959535196907464678753904312695071463129911770054116565788857003228672374026636787616284228690730312396098484719644545830519045132566333895253128629720678295656960327652325070278131878142521494859261708691118998191442692259599077290841750663359374058841444812590305311185176474774315621987828246487227815178591138723332664636569641285853017315630982751221603495012510121759795447077258005573082763936490755271541848329393063068299414703080027955139114942399906386259444815182058175742697129582882951996521367518889463918110727079502586900045705054307490581977554812856812774854146565286684779162143720392964598445772351357288708687304351202662377104762863863471214580332582255997954491498171378369550982708538336467282579499455042369284102308765169829452979198999867015421461218596215856420334318499061496129178614334993797111583751928999000929404546066347503304468616530038045422669926174417038619409073413453262306958712693457904660748829934860901385754014380818893048982728964228757040574932154537051029029652643229470305660071696040568622691285666633282720476514324927920722254171714462532366181071115642132360049532709393286693214957821875436879244068349145943598358107138170969734123428841595401982727375152568351567842915722959926821128192303978964658937462691630993936687329696641507581480786167431295368242906136629311691384168985341124600210003296345508440380395387137975045926022400321342217008627410173100082001737596824951365573087262220171699287542498414215624315359672055839301785097241870983662048180269308454617623056252559652629055026434104694233757796376727678963979524425684360438333594396550089344724296539047506489114890454759072087593952760938189558734636025434841734295416170943825804791427327945260090909861512895065034817002383795830753531491304097116011513451362840087120427421304440782338540815840668511004085342050185164993905536301270507856399508098171094441200918847206451245251993687433017855520787517894497428350554983481813840904695113274301438141283958513512266492088536360982502927262708451365492738329945044576527748447990692547697738636171244107734063173190171531412655107058720787164780299574999217091152895548408324344173328893274276911197808851315095091019347236005111079728044584121168288158242551298126670152268666759697226249395404284409632995791214581160159889816917081799380641029334348257807616540510096222870077859120162973803282246960840475341078241361991758923413237671493554819298535363023547106579871189646937776354358568990258124967143075844754383043591536275511122523282467183643571521466833765443289106614770282997398838466630242808459143637198212173182106388612883091953917510851896770592514217670563114000936219060672387810854612619193059595663911907535864516907522200363002666406850346191648920188766631376752250069743381480161110451329907397626344921336417439508299232602489049317910078328747140798660433081908818252180596384280914792385199088234726357557658451700957408114024211316283619921070931280690630422375433709954435286075400907736864790040566510637975680625727556992355888155811013886231434345408012918163584175411014657933440884294790865719435917017263299441998623387081615819859010145466994840415527767613430885059206191908926897670417728115523931359419077037680903354818045117098071529471752805055088128978146935115374238381241708025342425679143178219540919363283372255261091306634102522110554040559774405265318763952239562759865315692373651989025798162838547306806859214276111067524458963300418157761674384224139903796043949318514072342321153420018233390293303035849306618808674719016945138182882096535153506941906270160628628903394556570931571146399916161527439740318426484913972895002326355906473886772357620956290929435216427203408847906143265144099856554447193735827101571818738075646212754903872430733098417033504621288263826002406006991013809754519155966523534908866281677399945350535846800530587124433497595605350689803070330027560091966471138927031789838709365762382950794878796341203843777804453874894029612916262919309327345980141952148796822327429328452005041743500073049353295842197047514856899790803255842394815171421165974431055600495985626990082646856637984596319695579252197871316319156343487119069434242795739001153187832812208504258334004908610547651256998776153749922597506981149781200567326006447582542563333145750054090022470556998874617773003750230595260637523673247021295666629645154061767914144960705725013395036184642622666327525384935178696173120741856990125840662346359587179321577491116161503217898861247717865510762152655772281274702874975923615403549688993013587163333606765702357434740178353711722657692793650612688139336505925309406194258732618837696086363505862239595493329523837825141523428166592396343718661832212226934561365590300711334130642973047588018176049911216490862807730942236356118378986424935871108911331047670696460524057830943115611222989494965264420591280956893390158582624528016933879984898389010941832403584059213472779813261055387672917731284630195925007941503890467124170697812601548396639871393028481737590060506443447941845896688276613958221730838076415004307701156943049398023748289079514656906690449811605706077909927681057758692037644840756608177559837197329289881086519578911104990143117544437188390429086132107045642763095342670523313482060968564151783907379727441981931361721428012733092164211817030357874363641136961193172654638724609790503387317339635769420510978047585589693848228643058079609681556010321334407702185224645368625094196186514050002440357066847783338166250431833890032819559814982137507338782382968647933454147456434227903559411413219888912140945703341118531386576970103994775428434326013826309108544546045208883531032544804311784867969697527126727019516571281266986123627514448390387642171673367310418039593702428135465008708832490565353849785198608106633149102103385672098247395681999941742796874343231443844215388806767983323169468098716504730364486830636301538422844979962853320039406956044067289953630715381549019535811736852203660953544443438923026657967039074162024094729681650248739573784075056455145060444585894705879693425480634228010413626603481524936041183631854742768213683484410627828364111774223062770470181609391087527024606817483772317749015636909639963890306461800920683890401383732639516580808667466045354193015276756392564482580251993602904271319050738266540837179201075078636596828715228617166196412367312466070748515160928172986174716865886031159782904746389339537501598609477625194544622757703840187549524650119281671190200822367788370834407592730368283237805090853454214643434568941854224266060764107344485871098987474404735631980746575861283526270260259055006217009139421032296462288088032109825529459485422224047724275597249515202507608844504136950617516282812180137094789549293025604308840065251817911685961962169587382621076672836142690908239796563539883134424866595852370327492152828156505433924158314684450426524899771506917949430925381707368229431394448812639012001021051868154389275460348308959645853009503921404931463771056959919919376638244754883504182820328321508584064262412940165389152308220683181071995110685133421010312346641640705587162251509755440833228259887629640082107227815482573832741350418448186383431620571883455619468582374361336317196185483729750777736558515271312732607439651492107227880642513179996278589540757090524080636497244363054029118168086793640774021672671346226310453802311944271620972373813293729407221317038021221534151708883335267652881290194771817112143336948675118366163788535196045248475397487367587381760857449463153529576260642424652549734077446251393577104179453899108458716024688321556146693655536591720723472804189222045490272410712254566365200466478774327614452017719772163185030233579162350839444658404054431832461071263174833264041609822778904843157713933713441321361941279343656074542369460041437179626387446956500928706278491959063497606671138249145586991032726168757183111098471783152772932168578357958629166257214546915832694260009103447490581891508464279051212400856922298763898286812972477610678206686013198630642602443074911816658090862833472787689394329447121740842777586467254140771517390086885971162577186743332018776404014561250611550949565431925196137947996689982316373793575031348519749778119652798757747384062450822404766366408918035829417945262177281155039266237863513399562336919546468395305331064076213127180503197842431468413175885713097755610330485574274603884286673918334442301395171881748767004562690224660122825029945617112163783689943720253513992305676574205531109643840861158071137512416742126772332653410612102181590590382555217468286711882826962014181838481394269642202607344678626662014970277654656550211522288082593841714344161406299956765003602573519300570824168649495672677727415448929351543257870373769305516535604603770074285893916223933532972049587112343994380620807325070590733794950554116897989253077622585620581852602459834536483836937251916814787839274726351281779081895232738760064881768057197136862548849234516198046613600730457673511598150461004225151421421237906401187414464170577221697510058250238012024740547846566269649470590439978357912986335172121042615000846879940176899396798561907925124622937225865207565386126207907965658623894357688185506491795937437611025459504050997480581181266937079424273852907968794379158035978127766736640166284813483072848424241144578296284738980703585381167410471503492175576553349760848675667481132942660426411990706894066200772670074230151536606338485091094900722195193921237170777041340500093857466696416560382745527838077017020338727287958136070149747676159569282320719458461529227742382593587970543849331788919824122793220469798210723709035008546512896937595549860607628006208503584490145445443043385730163248054901370680983497441719486893025029505622603196073341502295613061826908255899414409502471809106762456934712865105312812958814445512625431430389548409505867597592789827436964097502682462281106320950185308221952838919442451246157188150800407077651626711288539266623935183921082621502646346710449491701937073354237459299965260555317377732971709852408412865358706315934530036526096967202594725653746404265992103799668272473010252512013604958636595893531124306363554698814781372361414144121278174500573361666516355961587107134334451792521532457019954847169549966829700634994971197914812137435841676276320000548085811867178515230899865368847520211026989849700980028361437596152465167346799893571279517854947524652614178876371951680986612613621347370911326514379982534350129442484535534268453232936395787781103426530306586144818463564003202534695039777429505762302119438938283139421342608526579144183870416902552205562512101662063026491809899810084760218410520776671972397980496254188880479232618871361841297173783248388726138567698271212573666333661965960009472982717289420848083059606369406448806058575027468424383152178142127548686479140222333445901687081301497818934011191237903575080672073198112162759091630815187716433139352684841977235888374653150198295616887870387230886415241593420613556714645683487922626407517230696331819987355354538501071737316533794560565416912302103206937252459349605290867293699580128407501698227490688196947696170359350244810268082792352710921754969594771877842514757421665277413582993834212298673199777510726220995322631023226668825967717045243072449175123623918434171953711676092630696196707478248005588499234366011986479045947339953367039546643247497147675109098346112334253953599852590833694770302333589081035115990652043223439857546007899836779518224561777515871126566702412287333449780567069844952423755824878139442150844609203716005447845088901280298490604915533637780867048450947270395342213875967315419473127736978742289435104827824937116885000639911918267737512629309667380778911150957807538118275111430104957199663133305260255975087785978202128108945613715100995340609022504632901953728215505940328255252828342468309770927844331171644412542922936197701531048511384897395177901446780780043677284017446166594023204922013161497808995652905385576791444586578453912832727345477956282756944658950141041391682612848015914640357861493909786538070655968065011784460959631985729926041809026294701546221394716246827877193622170164876946041040552283913341594436379052604100129749171915864628001588419256035217624094904250504194476521489710643911759736765305367845510861005949304730374122586328729873560233643592987789103629652844791585704607960587065787426796879817803349117049684072667146466300992718976679307794525974374522291406901634338804006403752593782574394071551367835242020282634879700157540048724166073153045688434725288359180469112217654291019900121547868932237952607236493329203679354821707740679045320595765793551083791465363113601798429357426134778567028640416500586804932657573357786475672719936245034835920089893705043842525086956398420041690823708183313766743177787606232806359662841516747374839374512377417986231287205932330448274123587728558495516412172069626342276848588862107009099860646117629003386582192366764417887172199871678713565332673438449973780763935509749258315245437948179222997360581133028630342738203107885138593918608782750614093549624390632733996637813334515656284191240371658316435017619730354537549941573790150601758781272444812385785095850906441830375356183535959556209332374071114244071805295005234968121635477900985174168072528793326795220441731138364812862454712907565174874130473094936856129739687619665135034566054392304982482005197803410345366521684911328244928714509562451894787363397396488835738388708457381096278275775922262547813598440706080939661938554603980783768822337049034592303310455023156400456675415957200542523097019991263566519370800251869145643502896965777801912196478115915112061676683540267069954607405002997563353153632066368399814630849448055730547586207691703439746451519951374152440606673230600734719112244324951385438702366058190638760533705773959939249914104766917456142469497869174462445574743441885529081466753967829683658640965428455355064481259403270498912383394380887148304542381002799900582666344165066014862402657420325644636598367404112316952669660082454610449060365096104911234206668273710967677162732715912183444976349798192502285863305056930706449842622799128928653425732711248228138967682085553784685517728613243378545279107022813604193380649095083134730048471915607043102902003933088125680958745731993106877224473868582260305291556927787330968082803310025015160610664162462877636195964910429514336054792970448248164765425804181005862236323175826564191294134663722802254824983439330923017484924862013172416356398923285779269876958848087730543880202692827555322416951454852206256689167130752241018915929369975905431468786403464990487522236311252815308066284675183636003264216707707344817201414779050188208415801331743277623994608212857087747587571900524294970643832965681007608124333175764429342110319532845112926792289846801390360785193606649050675760208361338253379134863049770297668486759591762429764264744064589168702081191944264229946225140026714731538081449890444916792941553523051491257277171236454796031829154461317725584723298801021681910944747319035945952138371522788443338449798838617935368357675963686952195803314250021711972781122871714172141730334026954384405855472542608093454469974306178842623031615970666902119769038651501182724076551905708028815954335982541267507199696533194289468167582220097258909073158154811763853703927726182107464131771979574622429286386959017569436764270710946543748704004055117243384387763927011627406696914057616247966342786963446374142423667772988824321899869340410888204116443613913537466907516672322562789997178997899694996789845319878828136606634673767085398683505359358140567600262985720304522625144217405157503638448757989419678663267135442163313596544137283417096192684747366778284261136898731578547294737549255664811026306191323977356705014894345701781901590909263403096620409751748502489175926132428631634911258462042808337181159573423276085561822509824531820732463066686380298069464061958457853597960390445732789386532808687432189313560063176147282766236418332514575059352749998925577778865731325902384982544660353987106130394764322201051940948069887674734735365553511064433641181055425567580167973156564838150637845550975906029769858978343153704774444819336350828247903365579772128791198522206438618435256488656915787096397154243224479005308698967486053399880227949288138093939815136707239883744341355660835734337033009061102159373034672593851887859888884536027124245893099713146231861414229627580601606596357809302775658509243062092191310986036963184258032278415644504650895158669548126489064825806286220245760864624019755262904884375306959933421851555550735065408696219253662167648493579690730619111773234856319339856914862116951572061998965465713531233063280477356343242830238262770025713253852043806858105412598645376255481279073620342317224107214135604491365543450321382050285939008003627646968823699206279216996688279022974242934279608049665591767983672862185192639888128896886809252989685111562576636858408105148345659284195818800053054044661895440338679472342941397485466493146930386754879129907732035676800478948157766888788090566861410699396118934113727055332511013644609086558055642237188594117180802636290747336988090750915223372761651155604414796597838810015909260999501592335443174345275334884303066926025220858790737918064756835843277880899414228285478322330888788669577325563379186399920173012719347679178578594067935745211943838691930584179652596045524276329881110073598331597130333309128407907937886250067234048170338396543047227961059802136783927351492775070396044971020515212705980638367181896907072575136861155708046325949165497859137192563714127359981685693110110708519334877474975845991759720602282699711466383382243719071778443969090354881510905597472091607762155416866463707273794820834197342822858467758626130613997800378816277986585258576667573787846516619140542425969369047214304364528267431982710837634846952254105160695183250047957249267600498007504990803436185118543100725117868560073738697718374084928798411632773103933545717411290820248527024925281437431956068630177560361222290537323876925602631471009599456171508406754818841267169217289239561491472323995639352085151274577485182427519086564655248499996232626759501686770077309097833593328800256273638409815522504707123329925143182813052882856002137371953574697760110623200079466882407309268727275608259468676875554893353149574204657107531897521964193581455232354355180094898660080477956613836979051546821954554721650741806219535525106029223593344896475491848452704438385896562352886122661147487299209955150705529318008649226077433148256196159975094874322085182714205058060401779248614648479779408889785242717729711642646581994835533656084034412899728727472625766110318158424894001186647922177297018477878179157247704677678033208778712444809695156248815901742357397801945539647064459441479628070810314395036719206619049576706500809996961596284862919135196699624484802848883753114241825977542274456672686313618918509072042458663255678711164700070540236607019850157393140947823747604346994818508547248141682159210977780341698786586688229289158221384649845795156389659947647017439921268827838368874134463099432749701699482758499246668154096683557505330393802223947678686668955406065496999627695311492870884384941352490596906498377590917905726736954256546895202099525668998262136949204269041720716891722504782326348884772737357016110656384896251928825624232893034604418483377333326278797563754779460965690357682520881909546189129257408823450442694605959539256311960357539942880977842163387288800877739952938933441517703101737556076668333058646202588794531221065675634884975636208521545931198529865201601050451040742714288226250239120777314100099927475960136683554445004004421713675741928196089649290212136282934607263872033911073539641394477829548084627331767072906841838276549422161990967416482567056004558850178626484768447117191648390320710348067872034383326103784993873905679752607355794582145787222292253366355735965492789915446751976327524039721115621687144114884027058103241545842935505980527422800928258975063407110106351549627971298101290186320725328168656134452460111868783376577485468170043874083507183388071433864984772705048467689110502663945348189477171879449392721471492619626516006338494440541018819281022720661695869418894249399854415441770494310247261028867803913428602860554998477912420743290460310000075268298036058573459835988261795673682022852832805293008391981285218733751382237993680199473410085111032436823764849616052089187687031045344256369938932997736111482855346175718234613037760175091771350816586959492282535509593492944972578738785577262489389153839290108461657698261659680474921538463243933162484597784949432384934461735850087566200214124456434810541969376709037908774240632664142957081957547744445320221345391225567769852099500361581190813856520458330226314392846946639184078220530245404733794943609521793209544178039009777575217362110725363647954295321500039819138209055402409270699342759332088831465283830719657761015311615520739247778539009454870228647044935584014635547492710415803357987656764342501041548975517189723479752048101500448270986935850312941228285019327482959682196326039653292917883375950458930591952254867372095192505816264909681107599066954003450934344626360608481751090085414220397522815285683192652976663626270744454435919031631274818902858834740466591965074677519869657011642846099356167925415391645420343994097774332237310030359195344393819390644017633141890411950948037922562126476371637074002213882349806569580861319600401320620946952152428700117181286189925312462686771873776445268686495769475866344058060204306948691655510719145387935465232739024153877451424132515915182444221600165230955076366995118571065360047921144685794134326685876493547288083599299668338742971653656424540469197151117438342000214076134727068328277075258087337924177806274453091101652400833583541454546284967019984897533111031412968524366844628548436643715532633124548426550525137953318124800655902935159104484794361204744967002646473314704091773164902295400333215578855810518047637139390775199321677222361821898192790016522608065553982298261829044761612638280860890955807671661426289940546327638499328907593023826222567397080589039629641381977622963866968962400188534823147553547799656191065202332514082915489474034436449496000243618546863467172648332723805134157228556179895999942427166796315604575480266682712408460251510055112328596912452415600225356225446907917057708930530872386569051093901964091153765231549093684255687881114050082469526067037644845123707835989445612461749519616531456963512019142246107669515662374027433839444814964848186589844110512501490401284482558785249285562543998072348161363273583698959328233774952094385189888064905564810493129148761389190180565676414956502331677773765126312996706576800127921633991372388561362456651987732388522535853815218208828849973582807393398278245011739001695375951855294734121428427617893057139699319909158971351109462691188512280188891991117372960433002032199337415670918251714603290893095510107784238868415682879954365235795520655250497250660241966521966577298534611228914125857256629329211091075880353204610504138553982966787782663115971104059074574410989227377146002375784923223077357139042825087738119496755116653569637503060001456103479749581013051845802226099136929640216318467719785358562696443307213366413562574709544868636394205953297385401812579057989652008894253659861511518144181848147818712580761324401081313295911560858845492019400078304493986823122783674959937344451161878620106232280873254944961280058162379832245563695117297836330553806036804193383611337574718231761576696745204775761497087325083312442922703609648470855143538323305047035381324964209643554121845929643938598974383368426086373764003033055549598644673181077350626354663163074028110841312966649163936137769581558524650196084693720442681798335027632353994249867681189131504173463161755528167610154108126468043546524423633094640717967802520728101165191239691756999255163839295064778361720072363385299382373292273461015163399131008231632081092852243274593224745804176260192895491710044375021248541579160801257957148618941338064449701710522555742353050966852654747380419111748463985517549578501409182350361915452727175205361658643537915098150708897002781475881031091052546895479498614085666762579711599341683327941165885249981596889659978171081251591664345298275824894950768350909726089509580845741345101330931261094416125346379578201655474539401444941241095856510372787034216335715879298171421733942123986574683263353240382247430394536767353184272623196115025641756799809793431403276017213156446623089543361273748265916884642939960128531393693968342542718061612272499068379675512175845338077733034000697600831551453620098392655035075361394672833183141493682286917211172875315787512728346242266013326535329119306686677139975007593071233743881372398086140895905337193314470939503018032057218206189898692789088499738881840576006306683258194644107891860073848910588428441153134072092539825281311101524340088722697821749173126685906746521346841268986226888079119721850023317649479557036513581649214129531002266586860780631902285408347930582904717950280778535842657299162546897749456309144486823476476185615050189813202878870019814752562604031672386835618819334666821752678254946392273839129379182385714419918863230561246889640145589793002462593398492616716217647846511944109853067296365768822284048042974709114356230324985036914936965723641723103523394207046977991723590152785534822340713310079687105734949941354228564996000170843787758841706101479456096286724970266621231793181459344701266432105531399980189567011168546691796613867659850998858359958865843637031266409748914537749241779173401063315254027965228543860281206784262773165524573664043655841966084062923016035444324485229793569728266609782183052629195663945818891047414295087996739795170514141335593667084231448334150842268385899099154148343825786534661886979585657400943248370246022260272428437085129307727147323602509773090785903806590013023711097507639033074243264731148178865447409424473022704512126007263113203851589147870334294958495489773285613193932426705059553011877678699528250891198810915013650866833637912047884020551085674897073054129426581630248957290562602689165481623717780195383130645765989935223947142967575203893730314651067332916490146323404410233523103464680113230470933496659804889729017840881900370081071398175274920863407426734116241321836375195636184016721928867677162658519699899410826051551431490333391991362982067131004040105340208373655761409618799184304503518364419342185706624318748061698124361814248654246812673406746358704600157992954469422363718689092357780305290757295741428351623770913547530478367848670689340967101264596428481644736281812913787836571203066423362728656197557093638346945169900663408201413053110220502237759001509974840257676108816703039974450923707842619497406788645884770858270926858535460346790258850285287514358312523458693315982078557164979685925713115682774266780830651934913384605056132527777862673612573187287970582199151011126937585201630874886237390797729533695176325005356687816458176682638828514934423517506560211781132356873583297618166025214930343663436325287524971947698350171285804158090593686532862985123990936475251084216565182950770670250119383529845983954166895101099283073752796618832259082125711148251915112071863428098772214448064220717490904905625831836712847028504286597071807081142584637011890735845904979062412020518587749205377823314738346885233099632183011364093098101393637577001694477064199013937093028510383475373427744340824280263690131676677408996123343573041456935916141398290998367180388011575725469385121368146093446100056306388090177951289629591321600928063069885850209034680832909629730565575183215986656568544509294918119887652263305761273793541140237827220705381925865934107793486556509315362382260725041026322282585453580646848917714806492039174436005782150943506034871034119542125713123514621099588712013519764481106558681383758640839779074335858449328807677124018419083003229768446229527862987931983674905108340402968133448328281232535631328612372274779748265106615634133295978053048191572704819210275058617661705775060568595031013086659581872181585434674573502128908534511033469798682480032089415948310506794979118550585064391910888056031785596942109221197185863305720669574659463980824909167815299018617068325019176483482412860213143588417604135256589584180149655554050180314707728048364095578573585746540505836898826085809698312490516995022793006154885637759485672295073097786967637479272726873123782179067407165192792976037368689772045155898802231173623866347925977968848071663283989419309487063976741752461450288796772780722094939428412324237327162093213862408810080655398830179131983772489712973440486338987067834984961578212907509656600727116752490761238254512756370878206993841495292241976661096282860242361362487933053212894616759619375408714432596876838220956715627198880020381476067877430620791256727394280897569930342780186271013856752175194041299285059053584334277210812798327748043340145677482109914772539895416738621523092893509436781745784580538989350288196080752600434102638817470667001171456187362428680210547041297686961788665273640482118459253176417853643840371402565562271118204348749418391664071684652605720516305031031588550508265766722980106294172634023673629131072485369843601866492116073282918134899282013682701178597672799199039506354189566462180664955646050494497224718958551039400408066048749275008840534740797954719153095418372601432515434409606891509572260630460797974664923010072117293114890229056734090150107441787274395749498915845982305572621364360499012784544100094910334869898100950065442845374056994043384808355519699973076033728241467137521798133138684577193196451901007742649301239722552586381084084943384808591298616834537641795613810592287722460871951621985093571671401453857338246860941649719481711797936566893591558945640932023717426126027639938612093253435205888639219636731908962670095088978376177893152330757455652376803169378706348841572485250262467962172077711248279753831414939042616910240373975355740264383641941993787947644006489613406894511161161815855221890814320993619095967757019333885673076940109217825317251846023128335274186695666643507410581944452024088712053015682494471303239751492247000070158757377450297385040140088609409235227399948037214364728820754972344550580856045446438701131374034361353085241107246285883455929993271376988756165281180374500927356706311560759605110888616743269042381596731298002239168236007079360107415487016822887578668514192341823024984332405302568815156185605184623563363602288702625292334953677470377712712024481427234964596618852624813144901080641533241468126153532875201853172322181181842570452684275817008573870731297883528135431563744168585443875721221120733405274853050867718364857699847001447985022707646183168371653297354354469309405255458281161486890959039631698903732936597702379678641642814785875641938718554510242686672331624879814537251370241183114379206376406724192291334748744769448147588828362077411554148202094927734034610820962612612177957522883277255418647182393407253529449978512211137097897794962803521244260203965235209871476948519087496783919617614400660687305382295902606254725744894409880652468794771758526351851092580829454581830057704676120351632577497644961480091727704396058341355464145136252712499769334248333398996802420628039522569282619302885426791136148665765750687302712372094045384109625029911795745887784149685266008595291734425314317623982670535839436011615506907146264459820709647436125406560575134254912894584246876852564319072213350229767791651933585682488265265337299253999480431704061649752897852943189452338281151716500403946068631324085682186881560679317840514368621747910289915217557779252842498332752985536985661984899047245761708806589418301630707202889348240728963598445759476256133891307052834276256900225582900998911248800326898226328779888811323698499962770698190342118308912807894541904022889785948878863284245871950576352423263295496307329683118437089226799655927629373426339561503276173287618891700289146578388667779845956324626401423559448619573675267486289667012941882366633501509163672800642141928782691238984881003216622833659503486586420105321915327543962274257534952977869497446266513789142346426596553720850448233028978945696068891202166850358016963647396003311816737841594207041684217833050039771826644091740023416221991128335523941718110303687193798412297793902277156406379176108325378163860170562400779115420903545660088880079066766225130941673599721673370525211049942183764698597256428912823392125589491890439566146628898188165010062835091150952322014766893034847739074782815757570861227506531890614920249019871249072298039746739101040439155254192488874301371219644947035481682430343133219058495554185911677763674847235978878026748599471026573031233425533645764276068993890849200657102125483145934693297536560597697500213700541564648879529711042082665266421630085635322137724105223538328755257690976549381555469349340669839139861328527534663411251920494921783714285289786935817385836425407596917456697207215328018693300283859695822511728405207800770240866575306676724144461747123160037581221058906616592564644535278156395817745923032215942988136243944479720878388773875124207575837349024455232370088872936074764000422909204582612839349401008610535341558836601125111856297551337191679021625932845323278428376146032810685938817789255706855819091031116941148072299656349074981858801727013693253112583717767727549335982315326364257477125016258440815018906709652291157530773758735584677597162370333815196902413363566551640893476888189870540012802591890906201490613431717568083879905062942785429038801071717076081097266106591765778451265725758314592553893542273117470794285417262520026590800095868379924994687819518977989392808254019531049448388761389414141293700268656234400352185410187696201505978367301563391375458421508635840988696695005657788091567527226856735235786075852879456611275733320551265757527662961311910899432193368154535022413352391447249232986046063720118983528734136524900002402878477866457044799086816058970359468635955343093381535201309612788591293369963331469260949132204343722046182979961268000375376897284034881137447505586684211867610393574485203061487511018847042294028111048909992960887635236088796973364083566082123500544390680817285988818620095412413769726771267581808661821640980767689717509429750336064475173783506999011010945915485652014950245126214683757335843909693184914878225352446427443487728700249793376561480992863838261277109417731763630669333083367025499781172306721266011148578097157796547344958100305456585348688199918565630817114881060591127366455467365650179112493510653171591002345258169499993054404792753891660522585588416722532333919499292601381371716499629448885009505574760975952392782858486687644040084789375945676746535594538995788998743373961432939403823221654843068641608637501205051732065773182956767076504198556539710326631765488669748079538494108726948192913433561503514618436824690847463996989100586946217960488561005974603578369615187999928152641776721500049394919435735991482610456914636944372879417965719094517154599638554888714720014204155067685116479162367897066559781424613847030027113297176453174796216180556812514784206228488527988753558492170202655643002955808288359725116946228362348730563257005291433756972072165095525254270793204523969392212243059272423799537451107149939196067856530227635036754852398660197790582456948598978712638973426586708167285975100980116773159903506558820430339035933967798676909761743861095293727290715442820496490830357062492304435438777010649352102284416997479441374108758372837105142342720028672048002496881782024783955661187240966374289745721779823407900204681682191898032260105711419749673717298724002569584738298316836756250999456729453940888434404193928471888945455659146876604819473036354442504393130227440659711869266428053931145166818636790134554054254388046589374826407239058582392786083985459546374571439085891530342730599909071970724567304208007781704996172331395536102044775890524640026020190280520915734703603268483512070969418719145417087585284191799819553911885666159211398627078477005695090364562421771953310782133749616214968220927399551798598214178424927664314279523766615024050963082144112270130029891368766356445892803872310606200587890220594844101381280913846025047395916071714417580044017073354640557955669357076616852444348037936013480166554940379635169511397773426397936889709517725810268104625193729519445137904852727092713132284668261436619152221976691618063838104146774436977526203043938004612894445722491984042290218116459633121089494745597745797161588919374595609805518667586522054542194280432508933152987267207610371561839419372449653611655499728484553575943506304002725352533153565007714595374994571946533379398187037299825646101110838461642874639883958925381218097364688475124374383987150486187390177325176673715462168261133121344772756866660944322491448836955351077666755271105914471498525758485502478468402402774156177648611704010541938342888087821904482696838297801518079982453823644608068057690001154987318149173003943790873768235344176908945562390762626767930917709390400749594436344140312607844331186192242594438367861264857729262869264641058131893941704815983981331329055049815062995840699803455175217304147759909786496797869357193192446924065136338939169675439243601527221396418995152501818232890619251967935248161785970235309375290502124899276629738236402285043482087266467403283905299280119841100487851704056695974291257411884731421478036731094474700374761183700124203579777701533141762647077556858251723278956052881524984564548623581485840967599891310026698145295793546245326308400606463408594491368529556548580995492024441043378662596966400222555673386690867864583255462256737335719521712731995994000980282898407605282701352499686285256511819721673157107549559569125324734344338314956424272831871642073774453858992916840726190600223893142618725772997156349092880439253411495656308436539278226064581886350200333261638183910174296962214632745610054468915334468532675740421623106625184635921393448710146329412465452281221339634154604183586816743831697807636735678391305893089488843187734434026701514906227410715120086478470680654143506868945054357121620294149108523329645499937220769940037448078865104313716627399615086355083351081484229215397466463068078624112577081273541100184477665847876900507809084185164228771139326515450256690447341970413462057811532351897217501153428433146430034251697103252599491499834818627269126505480052045925499258865140057290828619109807163548352014781082252445019494056881874450685491863144490918063418624786744281288183625155899810686572032801686691460764886540548182066011061295467974527258734612803131346800826392486870037818038991841189365709525202937649420589851687320512850705503184049279899081111638490607389750855501593557290156733133017886270579485538185510425635972689132035898957353221348926102374984540680753567989412308792740408836137450904481544070747970243733238059844866551649003397577553590809360076471250309909126625939088597714650847592018200022461725250900240761552033220547237990273347600401550957717082280331026836704759551727370884170716758488477633700431738858360358898585039140279075539307342009331549246727341297157860708987557851661485523167921730633241383525546185215008755491901861941826961656584574700878293174759033258662209884883045564584701076325705415078819613353715310281997797972799835878833691156347995428997837032637930712370987947719802116406800982879102622091572105262142264298590575077858535399296508334433446009572375638414718929200728987370147459967268320277679570280376569718821670345321866227428131672453534109314364625354500867287016617729743376836901041019428701698815594247383040874771318293256838671462736477066118258431524808696666663904315882154265348402253379682297044102486418947542476683341541396995769896873862627976575935873669308430889050384088650329097463839261081401170782294414812962879171758048898785080942996184332571753670164159249633072233763788601614359690058908305157455980849400902965170579123105361947229397815585659252560651544075963973002519144499910846138535900813353831458254328315995312855768633745479257005757503995865421769685518184436013969382148565877847776114593447538748922552199101628932939977172942618331115020712516018050551260864861132671007925447303976876671290244975075291472378228605863053898057159153681295649134838241118309417231380257984052034286688095714393985261315979526394973846726965914236741021572060378065031210460065317219605392371891634422527448708910806327449439407872809575299709955574490926413874929412788285305156131398385590525089510965076223100592084326234113494693021179227583241170774993956713608502905504870872198908065900440839429631263487078269280278937166622203094642837214479137900438769744250854931620916774067276907206867482224756182258698040651157155976138693315964304061905908621794091623155324443262385123062723194989505624602458715269212497746206662832118514297809474728904699394795786145087051577194152857317558670061668229882093814818196888910097827421159955116548658800916182691876899707936757254166212155138400422408999831054476358968120661159205737614451747989468437566416209815140326124972139226078110073100685154530591025718160156417854228484020761436966136199429532333504695652837661495270154334956580411829159257937664020311123799345405634603075545952490895645173519078824989690075769336764825588388380786966458200390850166538799891524483637048952832461199830392943350436601268167266321582936372952066531699296592115195031431401202847253239108753384500630106449340631420580091449469312659196957334481006271736863379845070715318839040117199319295099721488087824986007322621049609314754431193126895680627292410016074143270376694674023995561259221668610720796589755411894135950887149255720763101062591386367886592710196992588607392885219420035837820535915684361692813178286802123340558578495602327621286354058612084849781687417722655204196569870481114403484495792795028579523085298390060551359556854090186713251579020502606494406930719952728085471937412075908092575540720690790425025523404856684382293378624987096582978530301706162562694936762935774400981034971414140654204247746616302760711120771492033959070883614545619130184839611402127166298095189431885301246298994844588735685817467144164795657192639155875237363122191960060854581333839362241459963228832549240377082061891950269010000025074347386034191793362791072182296791911720669984386155620843477152091310064177453226699250515037611454379375882947224100472519884540015266868169041399283792182218663472054294193048988722064653011819902593847307511571350862010193119477260990048292991832890385048865243096363313465446534071859636149433968632146544087045569775220244796191575062601790676642313447461376638659145049606360044395647724138737673224852800865914417483898389996726538099758455515266548558659741678708879806990200878805017851449138002848824064842109371570767957884107154694057755208523214561498302893659691147518564616984004968349171809133224920670570710810013710008633852781678233663235113185296758109250972441632392024115577517271836872227808780225681900122879670808682114670668463044143368830628749528812931631813487350152382797752721808652654924318804408415174741308551561984307203624241331340628731212324065118545575619649013638001048207583184499134488204004322862151347518221875974462329756875693897298666406551025531775202026746716318949898948931613348104932712652413939618050595636635060463827263662311100803928359187765749891934933082627338117411071853802847020935053741151141438571067423682821825381978353069842680116009187401592865745507768614574375635299990620695418672701054397835379955587594300595303522451733453557088966074085538647270050265712869609703401818079558511949955690298371160156444212429025451534839053234960095605190323049443392275352422048168286024799927660800073508044608393757622496466883042319692015283750908997887521191828459686036673181764767851784661844667805327352879848682991097412829944445846561189314529210577199075201356939832341504855945783932814446589088130866686811455498756446763447957230339966143604593886404741248190739827093142488135019845307532182876277153187532248127551041810448323973049919775259679984316264816868979543582444276640783253584092007742173517279013301747770442042856322830574007719592330435807706398605055618349596313560046950486370055623609689154979135712497668361269082402555332462461584751473984894648953857835283497594780454552540759408564453475609885245204062991344004371661058363020742336521891270690447274088601206014943791067084927787152058979243674585340963225385066760554772914729945295856837014400130075556945163109203861675948302798744352172687219426449250494959616157184591546441920067295413308717470770539637872404286777341620547816251794320041867770035915046156046287601112183220109092160258152392091983953209682379144078542590494583909056685927635779526371705156342157859815232717580488032623176360718532173227146840095079487006532930165499852087434581210131599577210765571373183956330151475391104160619915413267065063534051984295395270960269972630616165167155216420257403477022394474203587313354503229637529136472234649369591320589361574479818129709608308727372127226641783840764934158542754688541806203952821957603481873773176862473899810356869202960080638139760944064653626443487015709245692616398611207662222591332140477803075255637158351141790693846870426440098062248206543100350786789125410665362476369340496976347213241643824488153693599975566308730490913171035375875302200442640431441976220037172672453269330181175105664532710681721905523759366615065618291654373462959740891788242562210251125384130118038213395575114495598849657620365478099390122192214679225679051052941929428898622330201793044366281526100184472595925665316889361726809006310056386195080731250440368835301486091737320122803207697828957778157802960500748588272619841187861386821479069591095751300795827046780520892337059058851995635656729879699233942960454842268492887636930241850574103881821165565233180655793777249785622488488552751616450293768879034433880483553754520715963810929575860691429892889329642023255114028167808090562022594655318763490659042014549250831546143627234135785062259353304605320098039946048437949319628540088712335994066336213314931835283725461093107822050094238347991934913540600667795474066766069185864722142321718341285325368087247197289364871737075941815292303617631534951194324544398287137559228085649285659700476877739771956460364443551235082941984826998333935310342994211962251929243496113380323773399382076535267627390148427228469472452345835927697176600794670192094556059442408198486069479200415543061501013985355912631737331373034492953292939616430001471264193093941515818290084010323880634806744154454943448535765455234814087985986309971171339496752033066760175280463534700907975019380351047979075096635976959139270432112324604801111079856872014122230316817623594931640326775805411554798266368370381735088342413665788354555663180139006686419322966157190965010242656449952329226073465401647325273929562150550400259257935039207546580095082921551393193884522271806429098232512504061876081545825684147830817712136746025532542942773612465253489791163691506240542202637343770078594835653358484504903742119744591672860855425586212806336686501840533593506780473424730422069002903601443601548372071218100225223010820207832270897908365771693069248206649311456338360140714936495716146178989501440437172537116841416910950219626802411120290543422159832980053314330734506224858447794006551826875570177336980780473191779032044735936472709134251480447255358435771371645402361297464238885980377746705737300866986158862809472436222367276573434430640075553730635311667077163363853802380065657572985099022077830978924098239688141340841900858596451248819099151707935490682321309420489311688875166956666277598194374005547994303584075017460522865672394581105122673530074838694950982624371260282195987255090646376050408029176705671283553555408940093657537628178744366409161126547534461125158912502148387239483843695841919234772139242541883628206257314002056707525520837080270013639953154934449769769380181074274310678856967700583771912906256895458668741126290976487275446033046614884739483756260921146361156118140008480432450094642757950496351164842977049666662137641585569189054217315801345303382084808403592063393474449797405424778648802168684569706730340646416031460264634079406466269182979822188405881980401118696463101484668086931708302735830191566520832683652783264502844515339262666826266015170776343454623947371046361103547617209119295937522763557746289498482541277273838232270574928680674514362085766923536249262004949980806954182826742707899103563457194307878709979558889336623601461504612528552056806317505098689396089891763936119698693089091277929780944502400015466165282050806096981514526313484340604564976930322492135096681527208360046826040066184597820925999544966029227668968035019245889105713361501818532714411691697062650624218178582313136066416319046528855112927159534171598847896541008775468269584744970458808844140583051899575998221351788820054540338928937605102355197223729837217643986943772381733259826414155878590882737584386070521846541967514668731365173914367342882212904682536302126635232914167151271972387126940116494070089827944699582908845558978382642559677474318991989280031629413058896697647585359527339003887072348119632329980697367833043034844242505308922875398834882576144187089263992732246521679592837095230749414596796688018174251943896209312315604278179162271129222290672360764818784197492021633255118419128826073729197205762768150629955857346730161874834963963423007190782786341970530684367561165097177184955567596859873484872442813662383041883937946193609743889377363817948078924230414447743196842842625376946347991717341821634045646193384122873460424606724747524429376546191456182747457999654760757946802230157308420865522143745287763437915206783080255901426774859567907965899129692309203551213820417304173565400072028489950370520335175947440027659750399756246070504725124851842997416643435236348320355231814084131843745055605995210310700949892872627397293421938186800459509515585432535391254184332531014105797071309096449748869426617182911012269246814331881504820676583043774591129428773869719940319030873009169234841566443570185271668826951269203763996079197965732824025797370183625142191894835197013029941845211772328513935774518691848767652536313834858623452133537546924559593088863071638403541264989011158753571152630337209615521953671538396134262853337391882171436361806382347702850879749550100736727933825023807940864248065566069604812381603420502628344948303859225068498549638595995474162918822960236491431006166399348305403590790722245227531945804851842742432584522002042487561934421697527703626674844909285832211862079352967109557030445619037741857738157240203149410966566657980772215005450664215251078012168860214965339899570357496765655807302222530856506415137284390027837309202617229588182818241330426669992272851584596719989123698222362978115413067318293473863500607294684690136928585784232758713283216100805902628039857070139655903124340833841859820286220239593157934855639793471939621174095652970767346516313852587262211198001679047268431242000197219143633549498939393017720407974508870021162638449909063110595730313986836808102822128551358701251058315083540226950732012751914063954664887735460671262091183896441691565815642306144215341898803239370595936031048620270481382662117851797870341968509395971438750723039588628268908417265548288874481493808238161428264436590065143869912638913282198865462613151806016890564745785044878893938109141271108487318921542805689043635182661102062132497893893675955478674587375883883426623102562806507248033441147316379064543294702634758618589634132971505296331942660116994139634254244290602443867565254219589586406449857446530778067585364208855464256053772282686209122382300069616486706000938541612294075593828470194349539190967465330079054530524187898785979496918174027019012641190950111880003738116531986861416596135015239651577117105700622372354725270948475439920839239428387769082994003522265010202013581426617586175675507883430467646597538667774276467938517282943524914798264507812189598211228503050858860693548714798571454651374885934516982481089399386358568468569414752231820770235900466078930359602930503118696126533148536874323513194803787322216624401995305707027526145825681581796578558245487789391036732815936631712733958316089328052947554255080198180635104746090278071777665645117019109464710084960485236880764771107901044001915699212835787793317136652275382005473954342023423397842144953388200444710860195802956425481568320984545107054717404500654282126679506516390410641838188478366107257419526011095015530986444697010065110344499937122255869080703771728068615452333352764357846946517030769142170661940641275190896570416372962618324468149995886138371792278953069679518133610590563755365759667045279161891527300530983331659439490379690934141413573519326342859831984435155058342829891430082297267672647719267113569410271881780392602236699529520185489471408152103302112298442604347230012105467408803351382822458233323243671958672311153536899319074545195480487041220479711765547913153500886364313944441863311022537114835068678397666756092932357009813214798883523924637359947977255773069116835455904887276467260558592733682668445949341564980259932858494265139462644151499791182329592639146523873361723539160611996534286193232044901835970127248566934671202550292140912149889175608271791523136158212339105740249691825320371104009319684418188072831817571324722499644780969889090487792081727323316837222572208383771202905793190621631638704836856220950068476622430477928757771910258522310348976429673904657688803804767206825425337584676227529416087694598157272507844216764059857776228573080459995086676623236568832082077306520677288727019734934970850281274240488427464479046559496911455365542089951005212078125405975189620112102476280303762402056079705330806423790003325600200713722517606659484778270614958174706999185529271036569421864124461746052767137025902160339651881822291885607525409894471671460539569507622291945197131003611860869866359735850575808246083011843255555426623540063421920019852200357672908962028423498391085559763072923426095258081824930121264075101931502674576400706165452151752512220047037186525548292198495870556662075872623836088608590546900744417754106908606737692522431030470231091626032128752601663786645193692752226794704430900478348598143471567984987564923658685539144736150894359845175014054103555414427134934355083502648686133893120834544363523342866917649021001616981674894805638341364208865186518401609256974099430779985840605467223904906533835835688873020427886032324192946616392549571218240587872410834149177463018310111306545735382221448101858060926271801425077333497223549221879644319148870428730591433075630854630384503060774465230670891353375868328018646987005828650493944228027179632703428727721407490627618224046628905751379648424764972182204068566363976541374886745395635381015125859816730723339535294640390034938004052691177296114249999613423770970903997603443385871484938413012489950493624856323309598500063644207574306895794664756952296814968256829867255075207806329721176217510150297020463628347126022639001280027358081159812604936336631919512509652264573846099412131412544660508085073826808191337577768645436927534864982901812378470490212609058343104557555128419977132634082155460355013498105109436001223521404001250276944055044593641360697402329942972577943853668466226196649042210326498904838113114467566100486076920561321501318216493542127114672411679596188262055019908273174440319426945907656236680525242734846390017584138347684350376590654273431886107308246510791525628702221925188926443638485557902600898805038229401853238975284395060505216761991499162657259489746890745472984782319984809343131394509555196901299514309845853364030365651119617795340428671709440648407338799887866919758641265550469188978181643879534068417481773706697723662581871860447620961774100583468726090962197587338253225922387364932154657146202061183208195357918442336562337888145555458642646604153694976703778955701949196286133483198882303519790924046382809886986366995102465553378471428264232773262649893060376556167950536463122253683656626039700655791693768667065000554391684788999761580989761638557858653578975263980618089212434570019118534923027726483345231941337772963133512404118500801691925912076116058457818037580166915811351388984702966650934800461175089094419397096830955743986063793848302045929462414703189088588513423480820896133032414226464919508136883522916335053457698696755872828185613573187457744136185885057003475803517556626430959024389959769896320295021720952112882346996780411691862541270703523702196032853957549503539424914740389629913204483909084316467027064739428694042672133449495149480290906138080178812049948705402476190241471592496611301311730453546520338696341940330201645908509180149867167065728220987473616760243587273686640750452413385582811180936980495017440754223672007258862833103260208035469086689242661859917858466541008887004827403781661463953431446494922522339836332329730158993986308073988747210139608108587791785401581150439081564724569286659649396988539614455198313862135962767078234584110415159139148179374156849833170673124810357855856998267183421407443665993715967692453193457305737574709310546197950833266244122070936889684597505850279085655488621333821663905280048614198025611553944618759099493178308830117740878249213658425323692053076084095264450652626077166513082162211368601882090170893965681597968641428463743536966146537724209998281380230276145033349545860716829764476639377790764848662423785419455475853087250137423313487305561195206209788603406630568594745880723189205719485858374931867285749029193661680502576293317255510808782723738245327524278254763342346620074989197899525888284688869811418909182181916416813065134590738527645542649011645412364915550954649665855110161878028223845461395916674196860650478078513975018517467816961886703798703080748777370595286378645055073956052404890709773743747323778802945305522118801843478527529364821265212218376532802816578114345564382890636279245161158695875267538764789716077213254932747804104827558905941713974636146166345302457576402170094970260603896394469248720307954345453960899595864045634579517147033997093196935738059242225920785123038748319025357045130462208588608473915856050806271295174605710158001639786929071066437200136546798119840622767132001815689227199400811704430317154193877273721476684460843638470185206147616352641985621013570675239814676245391743731107717723637443495544986824512888705441333339152704844206204657090052762267668490814910251930849424727578665466872365099132460623129893682211317317610937444954257254147528030462456434826107043765728276939271160229600554729280590929578715121820717456673969057054829406797574590280782576260530052282353355891266776993595667437106031125076629318281744236713540585557512100990814489897462135041075158558954548356809032102888253915817101120078001560139888798839313840567003147299123987635872859894906087772735617226512815154345953035795877819432410766652149180036082036789640787554924367137958834765763331691671548967120172676631944608978369608700154843646555182804402290835094159613288515588274816859136331653736357590365882192759796496490091033378594268938926592225818046801704609590984919403856054556801370354248209385623261886706594636124661984858663299952190108120771851569847483511840485787669407140089341634437585564021711894786571705551961042513384940532988350825468925538742803863747982338792230306117288904721293007640698464433991350726153658244434195831850998512187380406470689036245170729700238944969248411148591281311729456497917907753107104196914999695186749162549797993660519004929302732401415747817893308608297998683197703483900915217339221396604889552930432133246242428251391059082017328976862146649991784238465218642316301992179331224725677015869460858402392139234322468518596867815832470775211409503620567768840858261815178389207145383809426643733098873234142111084443231361601921918291360886398186845348544329563222073773805038932739600543298501801089533543237430280730886826972939326294203737457839138717634404398158596093767725471677145879401325302473877943023396170727266718262691756944556149552444746232057282067240627461032190160685563175447923532864703875395422932157568981568602318697536660993646409572224260704708634648138405835203398285111817093255504061268341663496167991744546344619779002232136988054127875684513209934885340197586143967628513385545989953166528545658258017057135108692624055230895386342974634047243067858683343441425132175673958431009441853369084197127485258316801391118760391033628747760812751138270048581375226806293940644683872795959293051197489533077835292663446926736988985537777915634954497353640943084410259387356804222590793873443655719552793650727402858084616130711808381984965016541478578539708444185357743125192281867801960744879119909969311811989524817256062113893097345275916112721799441819349474145984241318843262857929960002577040561600742508672218320859260992338296248771878596329407912594190988866170760377173909120305842384025078006456611064391417773058397719745943648528107166757273865029037565046594385200524811661139369256063215904878314668033585636231509040988446370404044587187983222036989755374947032788583783659674844858935443635798836010559504411283638569998051939761698755755736506460103745258908707458984611093052503779880563807756688851132888218476305414753092783351820273947443772003561472789073286428538531259895699395415285356554794511341566983067972509683091936024501135421344392686645253301603845932551729133078192653360920567232050804063138175464390440746618038073351870080234862157699207221613297760144121721951197004276894088662583686110818515734913174112757707243470761178217438093795518861207613600799937815476402246114927035481525922213569622816088742975523560928223083640944726168951866425770295434694183124787170068741336350082348312535439402606369149086858912645480419455992820319926483765904673110644683820052713320276697033716471563217377350154195917068790671979930680240490907183064622929616305221619080562166762137498249455708632419494319839006706163303853791832426822273279372735030501395556671538876579442237424839184336633119596788046491703638225868688642889532634832229827140799431846664610470216971828123443071108452868942337920047529964751704189068410629955655851471027692643209969784845238519091140041034078750748451068639849364440959278803565055882489790270820741504735798731295192892893998735499086616454361080571454841753253310885066968943752032489983467657236580003743061143650824581734434843490973278481121148648171694248268529977595314936368006346788673241885230024743218568550672146477400415768874216469630591948881987833474801587202414332401115101264981873584766246654734782892411342570261090925395595525717990856244489575972151676476160596751406515056286053832821672180161477242215299473908631888232505511963464595675646214750927521526611357544899698721390214445332091705171104894457957258808765656082449350568477612302006485329448860198850879421687246430149725244383295943854174140007856289805805618156440362438258559867744177732468930037591519920686704241964564474315228046888309889793855734279414001729760311216265539695031881013373223736995472183240777463005413118153690205298828789691105599243971038879635186148745824403263791488825046679497291911029549514299197887665187468947546193464118407338381871195020079980726737266757422958313989661304945422701301001995040227691350043758455495193929477603669600720004916941550942743013496442343980954286110304385490944200439389915089721099249108531371709421635056171373428515309660385198002947547014625917943633619733685076632161365344341997912406451190829488835306883084464087047056663465789299631222968592230939771214392504243031174154195442005804042579087387601864442778397354087976518701774533836448496551521321608446219985178486127083341730531365200310430263212717465507127830210646582722596351985908518497694360371091819707000444887340738073410490133550831128314394990477316282747874733173302308492054416825589774036160995753529970453460294949432475664602984663542155539761115321728891466130301445330730250535523077926848028098796619260977203304435387142598568811071831707509255872526940913931557739441518336374193943462330764313370959382707838068316482490907207172603535344290363101227286064712930275473744634975146355710057368138959546233924412197112464986913548774032522348263478406873628626464905687132148806753416107762973267228554295470570117646126255753485996852696247029280221303150464121308433935042110443756866585480451697645759220554079330883756702203599521423572769381618819241908760862221705850022028935953689489254774458040872502000370909267936232766894367268228036888512746391367188530269220915425656433036117449457766416396819827804486898038235959104467705625437853730069902611675913470705570815827679190505963063296024695918242538760520102430418879944655702296215031993153907866937931395962297624000549337050145231377940713283286618620965184880562621266198211256559079516343924772966602448842535607522651035158410100015251162634680826264479131198881309407071144458060302250685899429811984653291741569591378901091343712193912812802039338233255973820533001169246704913893004248902645602940345585091258669062853643166852845882270447687439987754668059245780872759718488454152471729712301473090432054310090413153924281798172689440336649801901321519756955455929715548011985901397145291653476325392019412396894499243016825034194934132521733456118117996454804865576699184085982294163374187528528971309974690380916037532950057981850151462061325661876030642499181473641408572660857115889077093561971641393105116770380084476215081589501975471047113986722874684072032815696858922539980928255147909681917246735960609443555958449507881242170708048656902631488906916403709532415470524013982252100898453429967650421388853304662139027751138302580175770737767789559190451824355004895613942070798763030362106930636481121232075383057047243302209092257372827481565188582290655724728182016160698252780586801195343611670192813163221011120217202245946053812989885655357075449286085381031776617684751438506298134218647104005179290567123646636797454108942695199760962944586583783010723914737289154602601016073888016943040497753355986367316889308840559963330914466277927337857474938823043061252271485606428939705627672592788976240914929313915838457618658441806330915496063227337964155444894758634409547743049206470643271738093785608537788586623968876835422341077520926386640821949576580196428382864870630493631697524483065056216312400664092521403925119576802780300754852855122928341898935086686657117821314128584949900640019518225003626388953944640053724425582527713234489086425066510056026968739669580504896049093474330779869706557272829328630557656859159446979118805700183823808506262697781592981822237940052882480942679086008374259513086426299488476966168526175512399667789061255248047119698372742637738713372599023361958969783170035929114104292372881797722363659379525819793707489588360660467427185278315445180243788677534150539294508394175271267726264469006525921027039960599819584383954383131081925283610631219155841764021193823982627105464944037093727976795901039427272733253457696299277959081189992049338116558465099832325832071956199525395767844205956003081699932369659000513739464398232530381929810779645559450136670438943986069942762267899908279610135579659073463448715980876647439625912363530573322087605567770169603028609232299663820628722057334865140157282535790870503576916312618942986101699993637455276313897435802919665453318954680885529961481257756713962762275079882773595538607606019598252641917950668867457085909044603285728398419135235317413623309998058486200967418909679190750097775916125398670070028767371036282815657539530774754199755256444915727687329940186305768076413737427591292758010872197621639498428638397464030804320280521723563214909473479546220863490912178293662026789255771799582639795867554163156237875092223191138929627142021710725344721024266019823601746446806000528211170926689819488927154546840390071095437797183939180330968814870727544220282604113208260851683688108091166492902796701739184327369023939071213629877910680985366785401997566142279233285615597889293184686913922134223187166214277823100255180042592090419322518590552410855223595902058527496409575948126307755693834371871976859391429257989019707493304263128122987906709888289814010552482943528171100884218664652046703506180077371270309543631050045751174183321986715229287687139609509989369279907006090429008117077947268379966795743459429690770676703702279952507110935584847423332278016255570603945895843016361010530646968036002377850308761071501546510254179763411584072280117529539585878270836587329784868959675395931770149720978456318136307307405596818523473572072569023636123175373014960617984346684093799090464643593534035042509913983784674780270714041857367226854547018945494116359612749613274639322623511856400868544051637115572962993850574544996451539043926880711762238788504492656764564927078344238586818155031904070076996062300067903424912126973256503061595837425981938137816764830647439844467013067454819586114626388753094569086949344920135820388096460693830168564952697601464414115519866816261712219461555129935649707702628482937111770007543123611981007544129043089995363752040498915139593439084035998022597361822495584640248299947806373356427461964836826295776076618538396978590327237702757584876920776127025506344712493594035014849820198908414324876132139927615194887458563621520197666870558823054450194346609115581556982115187679318834152856820457560524887005175438985125925922502343654541269499167108573041360940687394472341777555699868919594913675224416918171355167052452976196210449008522916066469686318475481023926847688502151316550439347928193031142148292474505921583971207449574289121122142887031078945568618927021647513568621354563653805316466372220262288490328128875244993297869296921705544719887387312720946736609864311358002345776381381883918547845254886737864427608711333185022542265320396442773932489534845388824669252754429265975279503555037423475752560769468354623054600493841414595415427935145904008524200761158138934898527662958895372382835758296375437826408613462663538082653109165540657960196592789770480237832455973657021871383430565317135033734369778727978063621084923653510358771415386210945082824262560525489677759551470213193419466953378974754751494293581530549347210677937551299876949443060125763288823174803831698624007693648237050752618555035859796931116393173844747908849095077855015264375675642134634211124438728026170828889103979415415430762450518502172872984999848822734949746969334537858202776836754963061665854445617073234914212231222853238296858156123010898153575917748496412675946387749805705891568583349288674549671293515128158330426854578411385721189087503717551274003170892495592471103926154891286400591863519630048620447172347637332456493109432567749253435496413826416837312801510491358833493742977945399572412702692618091561333904281162302153758204901408975784670258277396578420168987521943926334293792541121553768652864320877696789242554657554420853622072375008496580964170167102910845456461899356524820382990967118198600198462562100543026112220959075970276189404874204778267099916469007748094022104808976628159697100504026083822099891239282915425782975136259393037304891162598165388945361458567928762144968468663888594520046403093778437286075321692602507288752833981897730072565631294372455704259595841912711576634739101831794515543808689833161128629974645305054168216559447830119423901853150000842432136082302109154366148210264105221844240326020074194822500096484671205882546604333783266554388111808133595643613799483394322340151642249046612196526677388496176727585096001155993996749664088411314764243344517688684967424156236506885771844193044406260945059052851182235685133588439505460005299747604081413203706714346089264114802137326481639291177430244664889069217951533526119200996352848656247015287769652646352549763223493493683621678214558132324851192321942293520812279556450446160685816182044996159200127477175882234644810211206359967933050086155566807385376002472376067303156770649719681069225595473430371197241508961842368735826184314941652275969029302607242793862771158564611148782362039083770944336117319993051984114083893739241156774927436518404918134835594035791979727922817296322248077027594435938391022919092040479369333339206811898811582052077736699150715733698157773292699989754669126882793569505112804792234446554025243810770123640818255712672902147240043793693115737191980186202119922313536446120096086082250661595987479614229010963061245188616280080457608003954278358471563249919040322309438132429165893164355560883827204679890776899953264967102669911156208535491600727590733476965610686674064892777758915046030445438411978121752500985380153553734973547035909625099747636569729242138458112827371861370725546099114445693111051331599768301476410368038897070222955603454228709323493087864468867056930957873486630263569258134856297469779532600558315884202620276469082890630981736354192766583679370895270283716532479026285267391585942323095376566612722205697793007014784668971739208515630104707028410601798919043331872138795528268337641095989472181433673653660214996006231551789548793889252414215876747195850178960936805458834272552006962419372091089718003861830972112819227617553718669502153467948268181828996045932700684183931974970837855165389636779855070381929283092382513329398757650231276088418209865215514746916151967623020601354502669221613708318640947188768268351634512267802140380180343775673518400509439101845078751434533278130658570533615788551306617684653656453517634774136317485537976805674561032501751182193397921927078614506863287804060626914301327555197502196200664604130023878099957233910836655886783786934195791185143220421508221736435465429378602087151089386107618551610712048659621785657201922331609954988465316852323530705220484299183671131284757381771232358465259101127461199010944075073003541583424335690535151462821676145101748702724421130031804308078211903743209218217541741176973957894824220094539333516926826406652375558032037367391136862182558665974575799597435793260261857658160950342768545215817153746263706851028655100021434055695827045398860478133931520580711325937150321081614885952031577048124910658856699185178760143207190680936321824056965326512156511690367824989409229897201629328078351364048380859619844426994018914796230396707739395780852964261470185622223485333733154088740865968505375807604880804450863996121809332710937763536228737366480277530696439685538331855145337668086923507465177019492605956286578691496541543691196468325864694897017457431013254532889881779351690124085229817326258690544964663005494517165435458980067914009624888893886585627707418771257397612296303523760505144744185370982960140134356759489749165616751619222281547978314858598792472731465377887386266080087142243732575779581742859558255590535904408792869591277423007921336859150883812662878362344135204667643660098031708545253428436926780088646507315227219921680459615159956056087122090682349983579116039172723779121074515754789149732882136814444629107830925407793025971491007666553384248812538476402203985672909842018999814310853947522128745071248398440952253356985967633949750931655418425153952653821922581304597117395799389557244679408748668120490023045804600874800533779940312257069073696689465660313649872276238917352812591188232059856485455200602952851253240564683944394701661395440952120970817276391402916950321925055689841493301310712456535949726443707932825752658433023904864643072008981559809316531768930823139934173813023762757898074205673666527094182099404952676473626410617899969438571669001245276740124538440881869124900462200987764556223816187092948008529243175764650705419508922692988681459807315858124600048826821755916862368814600775038927436325012547034563207386733080510302889332249300609947256067136044804644530775055446696859294786820594384157655438921509609134495057311632470192004108772522977470138346362372260434767076151711889909719093668867388489726733356157472398319973064445338542538802196212766658405304866353250176476816740955404158208813773995311627769321526034406091265443939117813300175926953452616718437280865397568707389351710306765316269155118022001718498486494185205903806669536375111667615013514135992699224174307449561174479216103408059481726048951087274129592743168678094960600238712138794877623843430595906545920695200702095669028933145590844811268174532285200223485872641688413117457273958258622311692905192633693831678875730167433582026189247046517643874729520854754844796237496092662965037642920623327907982871343961388972701995894325876215966404951311592914022559820339659793173663273423701585331692960274069270135196864832658841229026353978043963343565070996694981549751839562616740325928791342200357646639075019867095861641125209732308395591791074628966963142775397937410474332995089088624627433054053876730654646177040482720444460480686167635780218004201506530719136805260631751767547697728835926836541869938780449734029182792784470110286469838790865348254254276864781686540885162925469035470148506078279120817705937282823211837335030596927583010931502940220859897543470419740153019069848960402018795247588481188689584414024823839718966640203080722514311700885114524798607088282021847105410126944635443889175085745001996975053469628331270519876967231125789067061357857417118495875739584684005671379745515905115911034256001359014268699137798320661208279537539061212145078836111264131795624360429214020148817726592787259300705774619762399488118400051925413195214132646927986595775287166663527259807465985114902503004881669722416941296420043698184751850291624942380579566990305138666136841023057726180179184767060041461237871994932270298606811471999783209416444165490438363582532445241784586508185762835003848172012264276157103336243197640109699490572604544455737350367324443446555658122961909817627469415183758704874521253479495451472470989820143335060771571550855662806654456990665095001442600699528788142179831328981413385605881340160309355254355281770615175266545130910201700584305416197843263526012355028626602766409822756205902217944661455956403883799591280973631847085718361232387144680800867912467497115412065658909752895635815778470042656287727193615534459870526436140385682039080886831923384459758904551651424669567634814252764457629444889370204417407055475480672559103938500888758794259361950715542535664520777452463092806533690059519707541625192219365138334849031500987548532254888434421899435166300799904696412896739518177232309573248805073665203139617556853477152397817415484708427885383366609094984716608571611072819168357749732181403069123543078069004310850771600609722097038568004329342250792384295734796532447500550727271261181783562491655646435155944143821857793477640024049849826673694751577475723132369223736321175253656188296468442648483880520729591573520253158551306125688594343061176728765622512971140449113955889021282102789781125469929608069538134489496519422599470066083589424503337985323657917166796988820977877840434965291322376963158859157545152330868701700376702578973291393120701213966765790518309361151862767886211855113426134485140462439013069372365442184946145341379583381751056320475037064658564512111218904070105759798280033248492874933962551214152477449056220268147600032169880590777066197754226576376418795228840670261498722410537011913497433187325114555396206555367634344213927657394486568783420542537709266946514170126845035332246603373948314752916063231592173399537462895937012426236803601913990231240416335566514799095129630977231673256303598155034873391374308322366851598795358303078608838946850642946969421930442192672776577096620264489641921344721598815101970450795074760083669234426861260231780702159303928270811973632125896065736563161453599598840184916367263108687274924897012024719717467670987605823345205860267107893090868089286892322988715727586967296297620652922923270297310686189720328719702686227208933128128971540047267664126173273260749802424838599287910975293253953279246276872087583627035561715035631004865992371539923576558366186417606778841848513400163592182918279315439243875702987928402365573954727239972505655552580184249555643078537784204277211595496081030638826144863163018029582086056171501677351237462537234808294967196157190345143910084664955484849138716009210269580164359015194528001048892743284555889094592261547499006496515212586681056176543615526275848194545503325148832955682097885098534482629645682173895976978822540925046738138278680999063194296787873934095404923089889768943774067843810938349267889265658904903326953446910238443362255796678240887973107504270820463285169504060088668555979299223019295386629341169338411958968479352329098596385447363603349353112430013197996689239672821324776462360343298965618058957680513654367397462851514539303733214257708153520824608598363154239765072153664967981293272735928551739628495262033932228177222019158120742037297323161537527592704919902390535720688696720597109461530456793391874646820063123631538959229060555567601050180598263391637730466053006962396149678151597251211431660242905139783171021476276588238677998572117707063972280641617501646906022922673934026017952955493025723395873590041877864071153610331803301377580586416844441959448359665830819584401979567751538520085311308888798055564982443548387219967444657716250073681036114786460957612491716405351855341807750210982777918932518217537558954681450119347217897874661933140122748182565427143157261727826892968566752856660388014472286398518798573908926548385740384710283550134210122642098278809605118750666616845429373532969048135282462825467158939689439230679252114525550011862131348687109267808868586616531220486180793720549035003090074646671404829567376713321846150759496444810893887350384468287564890686090532754422454790735915977474844490188680661915115773959264810238706721993026708668078408348277057309727058677648467298435353874939902897014621339713243822422751530157875271918469429158776345429600416363709186091804906258946332156357643112779965103302103116935758133136622207243631260630056906667483099324547855786872328041298083947579404986873994164487770805863267524951342008912952074078098508360458834269024049814365748555178318777281429219258732784864716116438135553998920332154777069996422119494301665627839759047719520641418520483854265998921887259127331025849017265417459932310101708598368536951696280870699989024730432588516048339239744066090311843144199356015766820604307608993825746085910551656836355544225232516420569931434545722232532911718630948942228246654382337062718273481871687337517415848241316016340336886002138896009627674469340603604021628449837067778370897789973049616353040748667762471186301802984670823200052400664825563046275656196055288497466541821310478954131082543666126551296653559786458717620428379584939082085969714120535981076519258805643632706457822755237634341092972501148423912219370116065754804961750336221037760524094324168009735651344999592475648303758024898881771561847931439489016058999482681951469553010839922303663200380828838275311009255797298959323885051585339219326633870847034248287186058642014518420977572471695262261744447465138982696638912012696696729979888703628162232337356882140243698684447508277965976161880249481180606797688328439538330620155044144391022982868735032063954208644824039487919687134348883472358947424136679841434951467337433969421600731245792579654413342111335323657797281342105901971927160691312697669265535791853816146051755742389166733317917799263130942558568712464053873498523957215587819939718503019025274967245402741244276097533001012819403905655135834908407762140402820851904050976201203563868690968383158540784927720404600301824120185882003135816434503128008016069779246921613490307077031181188829332480135087571258552922520188673709804338494913112986688559720104857518309741886996243863370061428266307381524654904341488712881539699585939765347461540801614943927303053069665828786202878009545539460223480654033204517537151763120618591124241757078097049388297461495631083120415802844666459546216492534321475551689141434379235304059334150119620187527048299964348881810789019255856499153683571217916294372569681103438921490010936027253729934243398014576827833576523491353599927288523029586598182512564822082098449825958842055191215927663614743865547537579653258118012197766503470705539947320191171680054342914733261401135923996756341257579107459268867041189810479736104886257499237441569462490661020452315163718238573773107788812882127164647259592097483512150782715154272948423490166892443524659535974752013855314258767915515097434254916197018552425109452254542821415872506524280950986899117610286593777919877645560268284589761632425272075626018046967577514582790399645296458009287981692621806062596446224224968818248689653766512693114048773529794633314012050258110814830540406430709990031240757820803529645313205678108302100957646688584549004820650287024319741082043574398701189000031365638872067934896655144973867033178383076901617679302954657928509251946835178115333647873778207987175214755035191685135207554852234336644127376495632500989936820534953126299008497036162866941081992195826746641981424622576741760295028359722417586171198069825847423687090645138515496937481853961902733010685832420402671043744171436156817888448506339426229910057829049081329778610113964388619605069037317061571159260272521882375107514920709563930585794869411494778596711036630907487023843196691882263997092611258685835666881098623646059396545306149335407164275690065800718065534222673918088999361939332222962648356351478631914125216677155816546136740918637838852745632086179915226012590272411534765927447364414467812490308745309139676092062748437933094295092499407043690581902167008776098867252150562027590296468029858292420993696200397729918397355818013046503073076741122503478033376898381930557723007873806866917710079374849096641962853477774731787795498207185395012981214829494280833065814871335115324610039870763139630692806042946460433883592360205814029241179556674288023638670594532249779870325059077214149003513688748220616038024449084401673741220686508469114755238069904574473035204878778694407046401812038306234017087463416541553336327359300480916665005040714180264036068504562708273396402383606611614504000398725508368843681911546988473538730148639301749664776030102558308650997667511029593099306383895478370247895784550687418191061209725332049043686894649643008754566959569526906424316184945071233178928219664246301771340681697727150325808074791724083823998439202228082236601424273758068479719061501796491971069747454884621450318051731192688126900902158748498225051542017184261369744161504650087699995164534663905999180067475327824617703848426421163887951884407608681717277678513696838042301619896715310971875127918995988203273836712837181571947636096608443513047684696438491731640636715051067586383205943874313171620679279881211740727111084009342807993382296711470661946670592357307848127473527204527365639801242594144552665797001633159257157510916185111869184157113492824567182777299965243074503760142137216463092683019867464045063666601203839982712464635023819875998857952259982610981923792747673062037761840561108456406770522554226691074406079975682632859838107697052986896112030658984292139854661729148898838618639040816581762783125015032545452239476241618885960529992048687164021930138526593146387397155859337268420822173710778553852222988644018919718407981584829871041411163628182223786652762799996108039742554623291230309679461559595808776248010178908584604754437697566225211111748616478997298741881349797967572031209651028680983534030643064391757328098953283190478797071975028932307474588672437555535296177390696879221251829860431624347095909141335730503978826654055748340247330419610107827495071973143585594286281307784924508475173716170907534943140969946168724961423442726950125862234428528124527771107059977338692830498089023647332908443948250612017087767766138923194190261951522731998579012950444853242674381452941792436811221211877862351792585607599610052591804376678997735253962240099544316633901166428626681628180374143377437054437497807536594926939874165183593679655624062344592309758036903057705707352792143298969707596067137562098812809376069861788614319299856953949370817692461410674743632175346997769240885073679108780174453681139245065793031807644128247903002534548684616815299573428070631431471190512706431333039509469814955635781719599184008176938425168122910724707842241210108092374695440709171339650033724907451864201084468903061799227117218218866317024276275441408118167372778442649589532469393493774264813600448689793300981753252830313894668738940044536849272788456497272781639295847474298369911987458725031897181297553168569766615335961063496341283915272928449090257802727909240611421175753607912596223285523862615933855415460995789543547521102227050555624836463520059373944863916478672099223960313879916070812666225273649985173671475563061528670777707567885382728192285992722180680853527367358351860108295001222642150321174334295994906108198545117023699681865731497907040979273116848170040699488334626432524802358723682267444338339730946121504965296384920703846381436032581625381904938080883733375920598772065177127970720574483428670786709470749280123311209153637201628834001487857773033190601254323429623961424407038247079112605774909796599696584479023571589269593394964078364299505351696232865339643316267993165507092423924125487321355618967022350201666177886769764559613060820931828687236488620787668345380246473679142566781037658080982851321799224525627345462296434915488616851440749223090927205410114488572856069060776916551407604722444958826380534114388193976596534893264990932865610813481850939174483053087147871067321762753279853872075941907607115057337829382932353878320731550025706753617877418785273999056431983511138596997760885404632601294178773738072861787705362812013211349033881934578064099891594043280487521870453089136868048871144404383061196597111026959915198952669601401020396352835653410645233730856359851294468486737711997811653959662787283822647354181922861804477689249833242855824350439251170270760595474528179014658078789436807190720387568416461067500471664278717548860392630152960029433507972885864264610300391252115379426960508671926393597963231535873708960025754925175289760116288150838221093607592183991440481866048141627130008443054409003440998099254798042784473333955127220986583569954396004017779237849750800672594690478245849260429938603687135181505259215078119033571358819830589716653338643548752107135770483844274484146737671224138757075832118038853875202909137975837584607395852829795722640458583305833819490704977291982699946761173212920975393980190058173880942138958304586822798444705661436028495139076528750204909146014309616713324610435054932244357726940939650876604671935064584689113157392405095251288941756766479005437250248762063809383901200199907736340102376195067453790874505748691412796478914791410839286092701615657319807765396801558725929938479792159009933184280305544896869396126913482419580739410342882280766147203172353560678017549109930640889535156945539096720353514815018083512999958098031409711165964238247072241587866448676621740034345404638380082026899797026600207169182712974719794810282688235112224885119938546803950702601398723867759425561608294853661352079003274211251169366521854304334229001910388516434876475075848872632347928362548674542562921263826211545227609015150790359765805233227590182646841037020762968470319109875165316892489324638094031542380464941995765432627463671770211040058919080623753750161451396218311100469918780432493687755848574094097187677143350612409478083607875854748642722962520429106594153397011664930497317826575047480441766190292040702387374352632559780491026996091864900986308257396676256448025177166189421060093934641979667030748045541252888947599563755760335116389370554524297499553486671932212923656491342438120949830366453308744522496810537426182021745700803970183969054897566797144596111806202782399323545222959999684876749233749187919240840441272314672258565595065361810090162737793077410458076299752456920542361879473778670360412417127710943656255413795104489243651150718775727074848288576565035935906223020385602678269205769492176461689267608485214207603046088806197213084081585931729618643308462435092681282454812567732320806303686859601553324125354896104546046534066068544760789535175730518402913154935731065249690248654183577182141322906284719666288407161486159181536853120218760365052483673055353616265153116847329556496105818943846936753175853065290493458192161193356808018639958938759640664561974815197764666941871193302444153062552665097013471126464467914891072463904632604752405502021159164483802749441745670892849448744879776535071399548799108701044869534300120752613695341362778036152751031016871056370231090743804414917391340240217481060777438157194355508075369783887666190828160224686811431444084675477832235892359497431936417371727168700738792090489994724346864479796647107266051529819881244514987219328190128300059886994299545684187895859580669188848060488555425639708131520467720244648287199465633587699484514869936123882667557378475417567059956771834280401963780095414548281955423485027912576148916416752859093811265209904024633846307466648477504577967928704167359953895200240298069035004059877007082693218043331254562544970852317795634370722935716614782915365529374539354946035405086111369924909224688557414576794264318889792132774098273995456227197381650004217952862494249774971666697248572800698091782462426798264321184486398810985026044850913400188819569660633455377155988693834496349874703492448437810006519745243286851544232550764167086066802890574962025035615859070234327612287048699694245050046508591448414841503523630232566063883532922378171265120731008115856517697665742287564254515337763620720499932922376547657761165526794139888681032348222183840233056549759164794553885308649426899927811396977117557088430852025995006889822037131328873475652492934941160565554217055866904736650450791866311520704153360367254298496104633752776566338861428659653876288597205274192751327085042313124506976172243847712701859972190476498285193231229474373808614102515194980574238946886458125680185397571483070629174019609079067826693695218313717482064268634374148107200132678725310677722226593096933515718505351214596736839628353783996837363966271241786872455303117193595080641972850343334646669495323358168014432296261883935491495358571752767354985835608703187799093399244768091268513741251430956785934416032431213784066847917441077248083955003480818734435891002549067060440837653450791203723823065863232998374766711028538438673059661854322045249063620807459735368545837540462401159317464859422492913950764455268813795193407424230606650163625622825820112266690063978199364871363053238755226025533267614807093690718050869519797996016704887112445280300547320619466602652286463192371347252439764656341270514408708287007599277202417940002336621604749141741793642153460331002192259461210810733457993586093809456211852471098328594632169473876299045460736733700994696646943804949033777415690801838281643556415322460310152565081709222737607408415713241668519511050727836591337653681253024098462555529698251686891975726425078402060505190824410591626429344881607537100942421896833005513904532238672193575860585421154057073920509015082389890261846906373193510406329828191558352167619150348263835251922921751335085570746590906473950187664540361418902225904292730674784089772388770542454999439624606534285481048425183439368368617145264207190994132834748618838028836897696869328539780030434546947753886323343130370634456978512260510021497401307940055047955225188095328446563934877879078826844486066927088577154075425425549855467711834043572702953331731544523348239424852549463449226276352283007666361709317058721784141664545302120777711829939994846294871016280249832160246147763264137220637427094594611274224708230348148449779244417040401300748863900309917911234319224408044230945078966003992803153412343611784867120167029144428701082534282048114322766158309063520450074659456117801438600287504505353389343177818996713515268591338223445598263671053110298893807755384546931173616669431306201475587548533683535785076712416872766159626214002098244359277423806705616410626468621781858536975580782829822168373587941920059543522217717670785836138040913784097735930114071000433570875591498935915390600593190029487701612089253168114872847571845082571889232843660196382052731160439461978206836952346232076475676581577706219406840189156111462170300405341272327096801361190951634341385194243227290731345764690044930126887944080475930308977720444223692646885786126816482007149478192779401321047967632037152096466151933054416376838765772893405388430930209812881243755733595188974143936869880153234115939699853079698812400369045884079763747001170187341184816606466966725426468872426346591379818900999158496913653267289972122602929157187553520004030323444402251854226950077170742455704107092137568887219487555358604748021630575211506611528728965609337357486477314851687303090321650044854524831785014204124468863533393617966005863811366172487161005359428212305101717929444127552453029615831391897279132186714216163766270083258185346463497502770168719323803608600296838880846339708310427845608406148417173208623829612201647220415440601707411549508409591800322444092307056936407172437774372246940094239799107711201375570354851936524623041358332599457575840699591124481708266522232775803704281326786285946442269834972467993409628173948318853332051202739372071434542370722672704640298818196380970079811596817541307209574271740328799471117792017495619521929664125463966769451942875595913433451474584620443091289994496497368991088434777117836391765083372980803674665386026512376622526746382202898582256379737386455747129613782866268594461318037404864737975507697935229052173767016392847277506173997671085005112928687439410467126067416113013098301306046114350676336542796388267337225884402923859118105852386739991406634580618689767111246837827971919327837763663430908873865304372178483690534591702629671661052778439626291766769506033733980133856508519647217616125831300177676776316680026356076207068641391802017049449433205388635609943498877220434222723684175647087342240317749602779414739987741455507657965794228748729467582455014233392373588353446399820217926621056004757373138237346008803801810786408488440924457339884624034299521468004082840926847633646915010348891195488693293711211444147339240557977472720804361353205093321601225032172448190768374249701497770837625708862086272027756426882097895695865766934213921462752920621916835933878324548835694379857024631542531601395648715032123085643511622291804529909928681604421010997996470127489228584158246990196380366465673206781109411732989132900845339766822906694262335823181128750200370912584719214365132395476077338494783536625638261120545543319184618472479237285058590211082414970942910468963325567765112982524511392127769486141893408115328294540831481838402986534376284777103474754285682977107241699635236272298479775053367273071664510251565939992548408102011944554227694266300907937054194187300873052697044704334631438404628752960765536840027045781098616848561887470744499930010365425366623816135738141604656690600766496831961047973001757575849726824240551449002331820600472091272054133553959805914801667937759153567188011227245709298146146611614414823497764954443638804661582711991482346368386288917080116334731664173010381306217193283485305834916642926489966852978388817459056371029916925666274815019196457216270722761360636211764681433293470520689984141192955974018870186546982932167231449776781177661483555698940937635679287699941530661128030480421565105704406212790419548110560356291107513576374674047046212767022247355065858432563742991021004065826787376894742166035311387743779919432240724746404342872780080189197419995350336129004121447142852394112358593361196362543688842153557439015656770804864825495051872388574503799474179841839511450756744230578245147663900799848597896695817441324923132126605325149488319355590305378193018629874431027394630867950962517862735725993001677616590663029535250098854288853133690506865398403095845554553784145557201221180782860447652099240735233566281980920519660803431875569276347256746664677318812360273160112728773376073477257211380695084626583850916582950092189093931969420086422037120779667544243886619164376812847917008869813032813232858224376321323553004520317178228682391674194282313215540453887990356490629001781970585594523169033548705770839173571998656972889647785193853060664119372266722340798076161833616531920433265825019886175518003382093498582028953217315395422629078801830367688438694325826131530401808753142049949527074484482846823076976518409197443478044005168522522353660209993418373356793986598182573890585499893145571368254888076057339193386313255144459121587875539406492469572216200721380423957581459795039054243988436391168590903913366019572763466710634078155507753991024213500171504619255601388851260384409812072955276336495594342766948534686271132983207121445636470384938203870063409476063229812759265654377118390654587266323974660490867129553333170973261209761751560947437841238302082790842061795093009317988759169349411673590494946575027903538683698761999377868385457446950268179574744524917948360581247237641112644515758763432719026900621674957990149509309569532787786587575340183780741477170014689986968655850000318518470471017577935791386876174079901414131758362222889151885961703469056566346177570036380130508485574746535681603690355052661461837991238299998875400570394107404228802800298546648102858119503052706401810184409156842754449732182451608612769198134854781883828156472901643570128196182618588645374469072800538983944654791395972785684697673495651310003039320185565468305062284656916619695958376090465066081949131258008467367028636792192900904007624890296758379119686539494881405473147160418653006468498338582281200123376525736131907537569668510171088491887518925174366960653794295839064249455858468473506094038364647368948870240378209798714250450460502294799694652227057417757039908862529162664798976678319787134937547936222575383271105656227021620753144682589215679688840582887830649139116494566793046416280258515899629608396240052022952711169935827670957281162150163392154790372289090644907238882434162866964822478637107721656227424410378058313602026343745525546109421174744531475849869739806089048759199962336535728748604870850846679125330571825706129191181219704126071138362649713582385443439843807734268912845342843416113743487653357185323726637799197341898622106607677470675748146463759800821049526817613572924292848046263002712669205294498152219252645280771415849231350084414171380312565160744022702822433390592871203939319661500887969011809890528420913561355271349085893867894916568388721185267010689092589222512106473381445927846820832563435467774482893500033395820259606835018494137180905534537232153481929855165659658693599717633497638314282064853840371544567078798413455768655764358909632420313768583374777634808301317768466438677598211990686886009306237741430894059676888854165125171684379678096655966109851445714327149553753403389608779318976622441598379220110422559189714446421158418732131952707673052495722797145896659944818144322969210711953587650294914611447391800751987328864070178484385421520604065299416716311475754253893270505655195932550591866282487252806793466665168107610913811942053613824398640585740947375175856539195283879569556309481537108089201069338955485060310280338666563115217261831235756999473551447829337977414519823343848263344132582007848126131781682291497980860628637000424310212666823809381076152828501745065884710375079358628158142677708343484475508414716587564139256246229592948624479973733805039330742268918103775906673630596395929373966949395095856647099816369215682489157387526258751893016600428419227444820700635986947424907589629428332622072177819278603358202415990702063349047696509220962885650831262454214030661391675219801090071799860778771241912888307644913403178755536220635809622988156951870409664000785778935538506092404628881703304919672113352977692552822230371088283735171828246516685800984509001472661616881336461877469571136219935840093956079145225111782800021598333549125270289363735161597591043955532680960313854202117979144216385918743203680135313944382134680558984267901201192444717719261313640825848002937706978326183144807927401938115201513225129834921564166759445344215740569776779605612338818611575636599928348958091833330608264861904528227029738671080347374808697887575404498635216796719024565598797162053990150057533917520339622149596224399986882508302656353211877853746204629479600540680725234544107387428133684023571369708327804382464042291798934114762508790623846397876316497250805275161574787965871422983638959485114424886043805047017743418053436353957771925222760084069523989347682386991122702352883592239076506384288340595762553576395900137646932470677268272996887658922127137385679641920817477370910603112740133722792179000649279095452983856024814517195597607793461075600173871862310441571381648943849758509998704793652584962768116104162452593908223153311640329014266015375778843098205966584891296886056642564623190625078825168863110059148562321581911662861595901916366504655505764904648605809944023488464865842450847936051154541306256625258481097145492253104201802116104790499934101400338716413164220977824251911645203505868449094884699817947743005635953677594057535620534084120362424632661086224453308835800595765077168964360524898719631043880311394962994923022487783817058174140753314241961331496904725011362476497026670072085279591830934216263610638176646313723795310018978953330169674456492189319385202246867907436264215109520215109382449508982760311439586173491588325777468387768836027144716914451037646989341254153624188686782615677579934709532742345856621426325580087560666402999887772592975404470494836239419075118836023937110328626428025222907761523770087417521866406662871879370537126068771833957717995119922109231293719883199882888908039092824937028599583141863703971952257788172149872666961673658592354967553128836381786459845578341020855542822190924698312587301291205105255992286179062305207479210710493086333866918688911565432351062795310970566811192692638834540909271679982209761390659528578150658690631304727935927905724178173870053112837607427377335156320312266787647200211411468269006692353955505929230685786511319188246480142367850052654715921798731381854124516775158552253896466619715138334179028217998936689436072934686930881549976792484761153595605807944744878299422948572085781215737991171335022465113445517840646326329163189594550851839584433715324536918380874143365120217086207859917520425405666398936811369593419916148965986554870160417709063466236081357410777674695375484053263426423510768988583273516601396996360530475160210573956270055345413768163990153347776028931397046482146010678630360780798477721396635543590275958788100463756157694822978638462053668579354131139564298570586863119308253957114900330481116541697528860761035960559856212176256742788506370017401820360400921215446887314352363723495811985081506768285349360684931794641593323049879370705039351289288669007536367325005987855921223932768441680881896382433005759148819005554921124533646284765348857368695684981657546117354933852498741571259555342768748726461752323390003391187119678606853339456293507623869579172480492770944226542993028268706485813594634281226972053807070180635866811571174382610907715226509844764499480491624525309676087040423874107877180376884185394528864050725246185019081159680025910345527922570171134716321725574049705628774952765094580204980531435046140521700532881471223455464067333815477085310844760294648424242743361451226692265659851479515484662178597361743874720340655604071556407048052554821221359540550647286272833389323475858491332783140543768935758686022554595563654576816495577346864281341028763707052523623157992126788741844523641322828806143048622018696788137500144547869457506365799257883432575778058029561189400498774367648036089161201429718090264151856799747455004024299732503927241246411800748043241226089476651436788704598072318019993722355288617971607003309361599101176972172641402559682330081055434377193356101001010245315929713289377961928962152113496638398910166073077159847364410465548144922430711086328357228783067081794056830644420766347829901104684320623360740348115678521300161816702193625981918375211541253094521872051897040398809543621229458186417225631639064454761774527632204711759497272922087408656625279525923690599596005296797321410372144675047455125451504631261949332639461173757636949733602772372356888120086659328556451668546720437286447631403989891553782672842185899096794180992297434204090917243538487857931367641757652588591459817251197505157351209007967940199804851508190115303796701749598292327530455732953767364270037747201372731666756560549168414604947313070690106112989396928583563354345667403744681109317940920396934651688030853202767997949447917910840473767828109464800026547885813748246071169987006288127453991683156691154501205329747138265962251076558535894810943191308283639468448241764449274018386220701891624937540573815445980275842187042815933633579439457386213011967005343700645745067622621280956186612383323632952551779594438872577695902000332009006081184846248574377355190814906549919271352190850631046860062705726689305292013891529380297222988823691694438088755722831885301193478076318982656562446380562968076692733078786565578336879802057250692860905032109607336437910166417778349018276383273280416877178708164105439202256058880557831649711838834932701496111460341473876887772630319562594688367777881284909659711713210384862092712130093499702839213719733690586140299547258941225198868741719764484620508796647660514097633376717228674462934721844178690972314718421073682655331971000847277619576526937996894247422856213799998616177408858721452971383485970089297295544698527056137214310387035963566722737193461313691104137034842228631330135646742674581879295362583623134189760819104098290596884309050778992063492808201726806307840918142648503128920244564136033432072144569848404615982766215852338078802659871335568284162693343829962224991092242078381399187509253905968369908916238498597289635891568711063861089153587744165788680259990295178456294673756737470121755351957497326731776246745083031781085163221511879631457933544267333401139332234291139291426912406140488414813646872696969061712854034532854046572726086625959383941259805183827429883431306739159006403824980785032792982319078984333119509556910314315375207048562979929382223763839843668638508446251333532055386078438102503934053127745699276652060051908198908748408309033019790558613531656827000349125307193098091013175516244769883561692295880409908614865759316546253099489509056721226613560727557208898348449575714399699696542103118379520433628262061151892237752703934633264747227186688681934217566272382945947230839696079714265974245643997181386689182534331598825056305740095242076669994510348425578068230679793855895314389110225067166380145997262553454187816039588564659644508359516132999856833219752524047608099267555878706081526008122596604109454207099758640351260422637401215690080677898327216793660271575670774514205903781413792022422014466284230124193301099221164776114227358283607819362821480959450348190541268451564162665484134552458124098917239555917227734115942617856163398125447377943525064305232086433305326907454454722659585315695683249220422009970855878897701628083461963213928974871270132247782903905379458155482149718902724081364387849545343401037955183237119534144765855356291759429215257145676731255836231297424937954630478683990619020352435315475690706518773358666241159139998900435059144651433617191671334158464462616399735828746132805003415841095235709238397904462142509493736962686763042382883840962973248868129108338563620431558214185093747318687462342721232421140651877041238381330155119361939017876715878665929650399663667992655489189330877323216413426004554866382681155599633562895991809323142322523969893285691408214802290597209715805842125953654766708890729209326738170779496782064376416616601030697452222778448259298042530124970989071825024339312197000584587479084964533866615273002046661978201195039826642861395323134541549964670002647846833768785551657984050090718477510485918240896123177221569350274431071450272723884955399673037172514221218404271485629226140596257145344178060870971333667058775713031441970298400660719703669400499020301742664039483385512059269287480823153885457826520504569370425544524164970941561819855143284843585574089309421698335856882351176578245454550673569493210648259521706398969267069404325224898234551943119120512759811921106142824860362478133107562335459806246428696464943865818530220426783803814808211379572485939021322099235187152846128342380940161717915765336182186831070670403195851091881659593329998409529978020499101601111125176111471287455958136593358202176441934388717262524224507200359777016589837686388354654533884617932137677784144841018732932217487745493295171492018520815827040017141214644494189192162950677074342364858123138027067234289019455674189080036010571114836401085517470463392839714722946317664275535958867529483503098389902150252709391691543347795235553743855680618225317283785799232681025279149775202939193459499208246273485504030968566665381649874355436077670267186936674309390194083304624450887406985294455813988534346594074222859905527316701313726602867958992082975547401642247619650540967354839437784115500466253364399693897263363728484311920446209600113010248477960825347722085173597027965481065925890491437620180124691380738447294769217075619846223419904902336485468378517321047053483915829927100846359346954443444395268752541223109932716037033316616400610413427955800357521433492209567605365684531486425851360624776375623101851732641261802183236294274543706117026952841780977201523197532254453335790780616791627278509046533826161472522543503403100275680484034773393289923157682781479296909368986082973495662417096557573875295264752998361897450663298864756357199683454980311672344383816824743633725046460524824605919663291502991593225342174713605062215287482129362585056755942369648224533101841370340637416022079272418955274145417008614233644168848650843188126498611183797605213098689000890819318437553553980649098917690956058298354156898689580530779000440325936412699941695877827975627681645670121356926665414744563611211013716746839639600258877336648226176186565375759907148231152337376321756219851961442669313795149756199065040625198568015101869473752909086478048736426045995739899518678995098993750481813499009730875507446555280902466093738919481888657070858050943763005365436310841422448521761372846028630361761823370827378580568783826246162715339584182762794755106265826164368456633854606508748130830488425915716020924355906514427803288649139935499463420520547909604753216860718587780745931926067868129459230524576491235722425283344577270386329302496108367638013428906605759578347955382669213446960691807031633771208403685210997050964036604635988869982650385837908012714583472348179103806796161697952450073777222186237825772797739567892056604961861237820617809780971549386477039995364700992342037297008573502376536684600892183886429093393144993527029948183869934331277123912781493140706010432455143680621242338900433241098023979334144275344816225814285617677793188638402563274488718682630011325586447893367482739464522700289529536650095383235410571184900965067966487044923609857568013787128789902169442417168179125327819169315913861955743143612968724891995611530899083056075098930995268963028049759553266596484684853520717527829603739776193637062973960377605016363005834077075264562779632188919575152352928803798070844739224813996997953792875869821197626498076437602752318907123154093347985450116812120979576081878938545274645943058247298884835429731677082612636804548734451877462967270116104843764893922910043643974383078921375978560442194899932873470466742242057747363183778136096614290041206521788498891921936721938835947214656889673010962276342864946479411777709068030494278118213502064697828687547675829523802318031517382379637990787335809322014505733275504376743580879685556617285361857386631768824932327094657078879769587117523569882557319159354778384541366891988817169249430272349610346614441173465409628343976745553676691930892795159207572155408018149385426684040875062764132967839837976913940047916204818418480789407438556999407163390571787448982223220583358677940220152378248719422842104917455806800195144074673583073664526374225865056351416449307281032170319932902110858402221797185681972413963163778693409077908126628855675727643367602360244380163344689795724883885187800185292098437804109714098874401144179363121509637187105605380716954061683937515736677450083475594329150944099655866680647798428897434325783228157510343977680532338082120726781815097292001473225443753757606000921969380844430747254192405289461122756042484700556823852399330210484642309240454928908418963362653385188023908648265544948719755760187466274146721485500051210697898073016422468983350976665058848120652090011631155646763785134759455704153052434023238223621588288913510691736202759266706839316279162729168741163145221290257433754647164384508168881949438758623777998225090830532212031109608004102721228627685994436818776686199227387405293141422238764358446298483666218002412582576978758031910394325650049669350470492487520999512056242820305439394083744567347717147993079190100653917815207560601615962453945938506196484801458375308646783119754848207701357093456440362611793492591007069737312213455852653622470056078562146919934866586017477091463155483528053293986503352975630570874363535488068545993909959666713497049966653433682828116215719018543717003435191972244826273178305347164857366963208931600300817079516795153266653705899071167932806787480020929835054051669191919766540984507794472091562256065464545032812782746636191489057246208016913031862580237039483173192535653473835889168741178645594025398706771353654642976577711056815833364078229285100798303358648792238654817118914582007553492174920545215762985250833463194598228098606595256962814233350089926719218955789059414504140011171274850027122105633408722260763105544492917221187836810448771757185080430032885885779749087951231153640473166400404074339156511988803325703418944944344982894258856976602277581413598100461481784322052204940481652970148995314691381840277655439534270375470419803954518784960163588751593718697572711932133170154415730624770852630047074211105131078485560661295830623230857141636284715130003128381228787038230609961539686985115346763147158399422745741517631706516695235302815803604901437775547511194134394435821542487962018610619891054014296376135871640530249077119946380860618230522349759974114047111220040656362285468944318525152921623580437772937995501087887355367024512173255088440837069034713431822484316320459018529184679937719575231666673090866698286584198102964144033421073869508868331625933088319886793488717699090500644325029990610413382908169835967839887358065230639220313662792466855891035761562826178437990177246320532544284694219780219248300639866300298295979219353465522383303738580647713338331170626370342883274358836200709594918963609932427834021916120296339058251296697824297266248769938243976478618572122195154012346456727775039640286889522469918527033191571638363806213895705574860270228584797021773381372822778624318357667746344238843961299449056210201976690715429409224376194780944423379163374077470387675460027923341259025648260391863700953141267040589074390732557354692820923660268231913154395017198803526892929524354306335118636294414831901231351705871936250768525716687712854797799499778425877896048553878307018809132633244787748137507780341716345723657864657082296793621102270444984983484452249855891244490995793772995178481401735044062697030800987727189325469887855526078122465533261725496155560785265277957153113230956320745317249370466175112914143495447342906377534930919793154000695220000351770595315166877770045102359068457515201446114319679493582450113418636151221856104143799466485806195333596838929996322510142637583003974876103983870066077228309604490209727126238626724060438061805438611160820985702314220074863207962612871155448931239831457432802892330867754025518120683409940211215170315592605342310438713896237223120231611109047811925737381478707773960032974759139940785903260838400570328015046681105649957528188800512703466473856937396202628639599684764139934904072772171457087307142335603812343345623835749454834192870039316802732705769667515255522866402109938450859043944867213651042122100706480524085073267339463605718744057730795543922597506583015295919884192584597413309333364179567417276119802420319884761906340940943891524034477652026202890628430585417407950728264697463988315085858667175223591760378882124319085959069960379408412226207671996261326484712523916881783720167576830039883524682869560172950410395300003423442006452116763325238121260655213504029263571873868322656935505734245996542443601021111988651916041927891126457014652279352043345638125043332131831891412551085865516528916880244107172775888168067038600616622300470895219445244305461089541588176119802588006448057468455936833683807617404626501442524747553757241558419354338176485764010444270580939322526755949106569129339102249112587154961055896554263596667647296613425535848699416284934332594978502277156499704437635095683076981101315469938806985361460866425356133261930960365231630551448812847451024588929117359343986116437629297344693347858398128950615351466066450241524877360023934848404387812127741120804349046799522257760104676123659584495231742168051297552966636045079329960199399482285325701328284763947129421823612648699617971424165436250084206592604928437036104633625454098783362763345570989477295887212934906494459385946815908048703261497699799859282434764859025689785939772827516334547483803436026076231354270546720405537563352037016306026078903721412284102112963488098471508678638856535910951501439224427059626397987843969818745938583083706706093455634824455676544024299138404503973197657042622621596095603530113829672941513449636198151297809370103829946869141648370194313180652408741105269253845189825177023105704620016840421168587416994473708556633256081863090184606369161584207314338727863151552971645693117561819064616231881661628093430469369190901941055250649134517187176877761888294349911030643915608381696732779019783567927845900648391640755098848633676529989001520263944023836965786594945000185751995246230984204265434577253747430032479845270091535545863426916100389151423549489001067150529540663601961324386086257223838692586729781079287895487289673375178729380513333525367631379596247059015086735157362850851216909489879651342743825134330989308890189985606494596796011635736867889701736563456830545646746096906710619232698266181313286067790774356482480949702092930871376826852649748835374733412862329888303462196960818242417887589996938117791008973480972802336681478585860941230887254968857071165916795952768269924679476652642519254247153021585467445519684041220694663822640167465730309392868691746588501539568232409017176691263590204999349365721365552383098857200358986830730458898724321547181817750031643171580408019648320411401213226602552926326359911746545565152785992555897850458965581609141010781329295151068211936193772482681830434608177596235072939583059261516100252889469660196027014529313680742109111525946919656238095338148181621904632645283849133106395340540944009304968748956983560094544186190441129337024713292405130393478862330494238287777173714099773555175157992140725334417422259518281137300240887388559372524280067415684766581372461246031289924800396500022829935489721487345505545024068041835642417719232455617846551649589542645864072302415171211780933954924830796950133414859254454330988668700020100406862230956989392551014658007455295381554163525194899612902869321247010114031816545805609177365597718384256466415262167957011463714041785410415768573320759933460010751703159672555105820946721212398601660786778175891245440352238518837724455836420497268783983928583331111025478634327490803636514084284625064343150288339334718690352201308134952484613979051852027077954281493473386966747487077053893880410036946389990027758485799296535575666580445543153377736557791646420505840951698908260299603958162065005595742914082243517548920940444934868245941782905574489826632552027770917664617720364033204230667479295402263433509757026179096764978776149166402319927127806223055559850118422626533907071529651142139019913269992259134275707332981203266821018377032662294759450497752944673392397514734841762435235037003760850031201996874994159081244247917865611176067008049985623653456722782045340299493208354079134131659660877046743845146197022787336699464744857448139895201046589010310737807000286205340022939886974188108783737408448147730577076212281695560894590588113779300708451453419633043916808350298896689157179564645319344358757620734168449270215277911422983537829586406520317377780404689939480605015731345271602540090937785042097263105401184265947508896110529548787220815789526466217230313111110712229254125620894198674275072949412692938065899097739787635236802883136774964197465140675533455055412490185635887159888530284252209923227107950804643748661420515679928085453439999546322768275654127574539455967835099283294107627151242822497689882135383795887225982449598939943608289161207555491673741413990517518704171700317449340004203179371199490086604085395197111436162132763843858102794395902376168572033997625354544735445498472427404101896375993421846727742129537359555783343011637066397207517760560226133779188742199107980971642636885449943436805904781440721314841249549228523944231764022973535747890749489597834834433807629233402669400408694318915570802815032035867608141377526267357516776469258859355939822790981659885902172146679512072710920776747196098703247884776539833998998749873676612680077324033442212230895944242442244508462910979612789449607224546147887038257573222928127091841223432710245110726273206049865921937965071669062658927640437964882829850307534311451473790732709974039916609127580574403398831306606407284532192203074526484175331790369446061657252584306169579210388775887893198248967006187480023704976663477348653295659973970687743963554199204795454482766248652368340613202573870605590955456735450279274387154647240089037033438537194347569081798105479626786304604825841561422238850537289833674727736656731777312820703277718210792476577356519817804229457218698320729034705387391121916594525265046358079122898809722098116558387868350562230827443692771900498349308710699269316790231123260043259382623602208780109160073213548286693632806770982551197264180750466495847479406086703441954232555740722635177020262286248746844385000804800806364361286489329508137742076003815585829148215625425287273716683499667787086147740341267505954571443928799952184739691023512873335923650717852213189545344459140766885199792191927835681406220049803827150125502376073230125243962316282032614688330351374473573093642736992346043260111813770716399874861898167015798396575908110587864171311385827042546369071350118617554852265269537331456208803516922110261616746022377593159567423808836884609691908347421416806586619008419518935024747587620895917873923443012275672970284864342982573429515208300444864285208476938551493022885338735152605231256682862993690993868399811775012903677277008317594644296353098414089223599185149681296042548625704055860752181494316946409711455982010473171704453748545904451170319064957187179090328720379828741912838078881826694044148077978884031816906198765338638974911992154352838259430924885407619865111895134088362268096501250023271446016862250751329007095712794157310701913550304541918808570978721180310217556815479856289699137268314148848593910693014191480608268665927868305554955910929930928775301044707818043839109761687649062309724401286940786994886592937947033483696038981606796823621491378923403211895041465601314019780701825455278364612874121408115530416523025966725961753739294080258861592722541661265754504495673211886938120570287219105586386516188044428655780630619744414505993014867773557907712205577155566270071668676709558788326330209126086330900922396120916390080828838878319119062471643937412599587098592806039824796046269480651134428355635824890685491288924194390742957917229746743001540181667919323222487386018276243070287175084350275186259138851476930290043110358438720168077000283146095297021428405925302298968418559443644486654071538085383313046585048172361799431138330109779701948804897530380121886382748443556818757755475802033164324691200708053127327551197835064770364910268746500419915977580294391762452828783709771641766005965440423322856612739561151472059893788791667816058575374298730059094291845980977901309189324532563112350804822449193823496369821244279942443160020902476314425846240685899030343319151141634937496954919381349493036670651506318300788385948185044356497139571005846034846370295588174201982869986411099912686482598724660955693853112265290593652501926454225068023007667757845475362317696532730593998006971131050107298436546695192025325771308247929678658969660649904855296444217441484970989017852397062758550157272852233650572414195632388801617231694575878075791702666013474233725573193964744394696366854795897213466773898849887109965060803605242665313190526419955744736967989468680739824911796311732770633959465426562965918970766646629621980937834863065098777464161585467671572829643531603995919840223004422972907529585476408571599808766825945652473307892316689579526574654592766478396725108341380688609233271455530280179860268331058019898267644009204801269517530591958640113103582357227212598777647217437703732300022835928066069150964976996178930339543434910114901789501786156418075413102776790385728531861919749048210567456813638616999941711505975047772814955190892312451410051965372058791025992822402652656485417234039614198220137584233069419927080712102115460765711626480284022335263527527111012917152076098984973686146825818866833225623182705214273241100500259578755532136052338800629969059376022316827836474728818503122843737187248517747607593353849254976540009337224959396493814631250742296900295552610002085195327829811372638508313207801442001559337484304024925349821177083112020237770662882505097833298082246970251455928309483751884036205041385259507950692915266935798846277774143082219244771926247202411178802326394522699274211609114676042623524869073287812578089950846103117316395115911346808600313279070675628914791131569891164950909384713381129460452999862728322412214567909302753406176146105979841039398356440737370720472335302103581801903414806758036281194883762799875858452610054229438454305187641829596601897712646983781696993386953809613044979153724681467867574404457842205096089332400380437844571052364753206174714476989541534438213496010747630543107502432451751080942731901913435660981693927895137470784731471536669384532105153049701015862963056571154556543281525757386990662717249286099335583196371150095464955396830163766267241493856483384304652658236729310473550636955429620225378152770433769982205641328149841116735038209386580100784666733554711631962419359226627222452388565139075773449268608283907349525902662797804023969236368627982510155647119019849969197515701770147572339217925209919152645427277968476995532996006710021651375085319613865989694067812942560009222081106149314170123452221779624185179931838222110548476087125268017323491675857568097727590491177014407434072018263595384587697803733005182634561570566228612075095469889754686332114567395135787035554482820080418852468298769189374346078200354504506521524738929492560480906217220946522544929800176278259890766447427471035904645686264931117266550519102648114747302220034986832389103138882050415575690523454132926514341099626353092070425733759548777385394049520368794481142997562280011253043628821305771903821832886859495053688515394119533699024844578425333552279883287699784515912264238620445229988137969289824404344804276638362874737148958242552445339359757586090719193759991388139597491653196718057580614369610935336707296016435359237032900976468115770835355769126199000933357194172337740516823138998820298024736653157188879556326059572927598934169240579443033159782379020163924411234437012581564346593250721791971574293462377398308051380269903351799495889643910852998109882947055734239356107398607700715903419859525570728423635496921818680837094736375041737704217564869556692325884747487077679385571022562524104227685233457348703439473806831770300494427136842457317175229823549932466916832420016646563353402466082975895589596902961831963395651954944182336220802776850703713838601220776595642077764721844798915270634780183830627048363911902934026169861851951112368226761477977193862418790681191773713766991345823439459537855923291867576183457723189107162477247136778053284302340113668061378758691635697857508243000510935569526028237358668713510877870644269669230719085975607590949872144336249543671728904499803163425556461787884506360247879566960178846322776794128118641215974860149886766307080955124517750819540931666857188644981208276523127000590532800360488769099437170358871342811715509197769974528013127869797959472559302210272483642758586396604978868009036192718851570189449442083459279022773855455584182568313902941275368401373894293250437360870505402426793553694634691854767539768386287314646313350700714737243485924198900903458320479651595296713856357269427654382190248407067021479605832643166624558514398173386360443098313831590027256923512613501792208951133354418324498778512191190796695506670611755476755302492951779135228914681158471452159274453210391893095727708245932249153751280687366098602963239285129182773413823869432991750875505626608912368841809393699363516522323046854120775667133947236927699262649098572248710314769920756239951002754755916549938959725549595696147496278915845842040195308284584302440103298917754823812729579513713125499757610830612092705680842732563981709573440301929718144408124399384949990100346607643415468058541664893079866784799819415751240445375111453983343796497523018642451055394489753034502361791994976238798821563345583612290526779881442742596235187222421088674627427622859567445398318273234128863666404187106673373207177538876289306851244938839502793377665740936679848315449499732323515769339071966545696405033329617532146168614448625880038027624424912569285447237510527899378583094214008942992578589867005586370593929202470772383665462841831712536732710370102954621218957818612770817209227064504264256686481244311350340623871415240588627075392986017041104989462460315336301342502461925057796035065853402062042438022908403023814124404263007390564545689562065897222962928279473103494790586784226107191601877698249798633366415117709497549705537755231224458452447666569228762189271248514239048392714775308566731977516521439105196552376576508600063266635318539775401328818561099757702824370764914881278241126919448375445875055809377699788669528567020190995343986015921529288030763318664203067244164224188195159103513211615395744394622674325851610878684208537061337078787584281691058885662649123756964983792660433475316365365315002977069344555636300967319080891366561001417814900093945746712912568855847347324668334017155954986401771188425377346335736602940586077256845779316209240847351475378035145763074139863041853507380394136055527902508621530360919686733924888261969152335347011139400370756939672806246213499083354178193551823979655721804187094644138218572444730769510915419123742508138197672140077526555335333422256103045555167809916069266789067103985472776601333624702530432575498703397945073215729772875767273270988563567355827949127069355496754159348414649780583023087826740595130453682354797725239639738397387185414545536646061662770901520809425952386852497468612756583743262821572859378830201730855864040447770901882953974756237849369997181899879203094718689171929333034378818458363799591483715968175724240844488256607829843197395219599212759995008499542761033082456123043735335923562610332202040652119009704480519575326520617344545075158498798157209304508112718770924320442845972287679645527402846181514449201132875143562387604751431665019945856712352470440112404031909220112324544287503146650236893926887097262267814037424051585915262828629027981507020743506283232504529831489767452779233515448274572124095416306570948090263785495987711730019624941175913909555337096511136514799430909202379695834055216753078491271856569052622249629031057514666729165698621205378985378271670961631651416295259580314161235771228010441691055820185682648905751427013987372020383451117327148434912580195991285024745384996076911080148884205326744548516189727942709927617575371362528581751253368872998830232390581650631345181434540597899874518476440678673579890652886188116598720794646892789518125191435418120362948468743294083757174658739541204887679185688767260336017801749772031157303109710557798221180686043700117162384689829157054714896215164280977127087908552818926580029508479385141149705024071567030796531988949584766089303586859771074393361691185896383623624842825541657731842675220105818324481960961813441595020742715161037156938447337996645439867917103862734025327654636413190796161655978933778594968013105466479055607613482992626942937543334628484606278414170766125811631274082765286442793363033197213051562889409650679608911650592718130630422521002542182236311385854296013433635985409338473475211271500550707378676781546935464697716077278793438166215232384624482104075539640336221431382859820159845499931601780195718244900517319274000768922087568587472157272313297845366695386903181539253574192505246603116743608048574630327142092343590693153876966631245362673833316235908554506076631750172953479430245031135825672257882524007592009785924407524462925139321833066611823968847887052833042999541797678425255088671596344808071027910219848164651410909270138636696207435711845873110790437121689628208236400205160951911565899547225340295914395907541349121095307298335382669790282035144275390443248786679947336925982009939889459313337377265087474476865286433297402304989505923300083954444049703940129590934562536086841063755113302461456278904800898532681420848606126774852137969255792501579891243672040796647104308919085831866999576302531614753728795394341634365554790380789525611047613738775309908017512207202760070815588702137847398620292860510233852179063153158034794019590329257312089158233179367425772445506837551977412991845416980890739208152670714522078409667135777098430669834816957255968333026293777038147725212673585633923677926861142301110790464427422884375399352765405397848487971857494569093753279658627144824776937940529357049264288965482458229086696448310660369652095257626679692230527707151677172760425031116196566964261434960321392076344646183485051592558367937237228526893440982964520364456727097142015081351719635056688296710244009921967130035676930219959057837401936232469753010778958453862404342007619277640746689290451611988515612266752824898404448877907657011019939641289089653142883421997137169732813741256941570380550990736134065517184297503077083921176165425873559884289945604486216621125106901746851440666920911026785710180652555600087235186543236809541143760843466526641462364997438673702943980820924969363804343389851603282869621009035227962290195854805540844133223046945083902145368646871637916864921467448203178865934398310835374867335098467328523377703558659358292456853034471511503432740583094093500224697044846842357133197156775019620032094361790907619296669097172967162802126390644995334010210719755375548355278979177529789886702699234748525907403081995699985943347513151781753757001422142017073383069314200918039943589554372061140740827114561506091321874037357114333125900793827488835581440118055823436141550562762929738790472962060722320854134211809718273376813415441796476118219773198170023974496803198693930222194066322545499856033648671886280497604206071944925714094458210015124982282705520757153025045723743797431713352721297853065406335304384325875258658200077873072236671207230330673396705314361389650105292867943209450575968675663826277559907932500797449888928383312844847174678709867197217654264379955004015397752867150849472601036507735946713504450448761946023273077424361157568491983249947655140946378533666685936866928404407419750817013712601942457288587277675007612794845087529950648541459586131589348197660158475687111204388764052796258585981633780148574304751918651930235684598644872892825146220600435264763546745607175352008866748312053706255794703753875594492040079583503413651095238322245051101800546197916909802172964742817380424754883666107464897824296516355127951869703736278964405325211240341443655035991347360342514016434092255292566972769987196502425223271411340275142495677065885495698743105414217620912982907860927340011146827650819516610021850011853093407008889353024380374185045194165486356757786746225190424249284786000003032467981864344015899489433446680782750437518390652680900021190349242878914574305320973330188402886247172467161191101257311157325164186030424859794760932043275719438222971943796290538018271483166491526911161986315982941739319717703165376420185727039409647171358128523753379120710095747473984646332268531314881183452708940532598840536664947718954702423991445336491419360320134886416869760540957766723231427157642618664819631997708563384800017559380987713790369175115956570246348212098422976188840522095833186222916922812175418690258438984105284381711476010941391868160153247832390199212684706220214274226977495732877508617791518001309135368615524977481184212252224138985327662847123760557775789688013451210362035166912551595353345255077844918313142293292010921177615975731967455918845285936667976302865153685388735627908746378156772212506531229187800369755984506174442569999527975437136805956331250556020974751654544330120631212019935348747965952733693877218305289864133417095108563906238552787709322359113918304415356852139339894089302721087852243896561006360585670884757338932261130947851383301504173293260878301492633960757369457624575876151011887471796757056404777679409339129689242746651079734010878525304544248277090396817880074294219000882957256884126450964906999358362465241455641425408850359204808050038874607997892128326980507213352782829940323609819197312452257239531297272358031509174963087074914710394079726401052928990126496500966060462348817504312707922496910560150825611719061432739601395941992754194092744750396011712363094472288904408485562600413381176837407106282254859703450504955552412184474693376155598605801570210641731352656717540344713540441110008539105486176758028943903079267404963356570368046735428650165733602474417850793710342177337645088865111278603137712797365245418946425200989645964713555311212343437750691162559056486704324183575022138198079863112957918022861851017714441703098775792661094390179521602575856662908185218239499409760731321912554218228001307088216840348818344138447731942558984672828452845704662016175721862608821342691449150092401035763080281565964995803937630082311280057986336344519129228461993976003218429331961113328791292323112448696812591277835389390567871683976849322648752442450850367603401000750453487468648089516859148886475360361752124830152333092833878755919834902503989962572301423356305672033154898113688912586385024425106704881594869037030586626692456123549396951657577279833097519564292372414227967724264251013738911190423101523234138043540872734136223918697383990247871743858233716209632738743766689790031361741848334897429843327317249816645997668909510692685373920015939949872422478556554465079489104217263699124762845738246220190816391814997551221968512100848374384695554773954895741607095026190149006061399718998851059067604848642838178443761274128683436476884804220995954274570137513993155237256646343663491864058427631571398883995120500552187435865114603676692665587597773466112561954945759594902918170535349917101429962388685831138781231538071912822639441864018720092824285801943333545202041387139341502416083050636282516687428115503901347398832823419654121426082369253371914378874312364322502661414557282567566418501801584328864992461567777845945802646170025095123402956111842573647630498829742796302819818544303393205604930639382796062307014909099080823829762436130383817244497466389174114940279663754404200587681209733672758572183918114421550453153275099477325366970039743950332564277425296552682462986718014192473343441739684659143248075398817397891135760166012876187336774311823553773752286561513951325444408907247770889017189409606868617358588284628912635857633050267525999958720785199340784530773384353892739779580553013265554156072355760497172778534624672443744665491973841544818521921490587305066200254684620130097193392721808119511666135847013810125065305562909181552303121159617552305207180628726224204400948956994083616967090824669255073793060902370078309148795556578811514554724727924956426893951353985554603457722969113993765530979521770705862510333078169812074497191451445138714676584106431073314622723533737415347301037012764271712834466932671448868155017965082021813244812890831435285576371192722401927014692272189724371177481771127107199614223182851016401042207093887538202865607531240176963298456910330416630518590838640686435441826819021099197662578509281073936151681649982492524933102753207874088327983755373746672837320066828892077658593695024099588277353548526813728459096756025385972864783917763951008743955713053554501380043664527191778343861185758270927789833052446759807324665664310522343719808815922639144416300512695034049621209959902988305057373401569137833007620703617369495580505019312642910715274656035338183742712376087286991829947552408719944310946320325666994560485325121519846368510345033866053897218775208244389201273878854586549341732104627711396915136703901731598493172538581303454537170734763239408247276909499816796964916507043878705825864049970134019124376412349466975469220684771030334577498610039316529868695618902431300176740764016535282094692218082811446895851073354744029853852839969422008250419463792877618883368459209320838073186119515086306764863928879050673138040835063718992025062208842827799637447980578605221154665257472757232242065486130259359282829265593360568031610140494300970499357476318924637422746852561906394510817365607754539091275614540688349658279007844354995666467093321144039290447706987709272848441380223520531058385854962338252694472936140617818791537181022056665706265941316362802716951815602033770859198611760522032111138359359919606673222823764195975096629468065691422910052053404255456327238509900658957532006105644939247051550889562298486557284094351905066343859013242509983487524356979477847665797731463341063478055785222034014903406778625812443821920670029534131688790525865205691973102784028155413129271982674063055519099644791707804340714713135086579211367915294015082635704446845438783542888382115040387093816593250098989307406850489923937465028986062955787094031341756521772956260828896548324373417247019091238484100977353847800072749524485062811400106678893035270305086237074518186565174751493135290640450641884051806663836984055887212423778082832855516133973745176427336105786667601903736594025663721282492503880903283441438057417481011271764246019752351044599512368783329300980723200301614706647369287683930220244524909805670459792667712321549557182377889942073559072133659677933233518832525825499770823527307686065832074578591609960488217457042272643894336135583068040471599957357243644697597997972290604459982247972415371604539444415461391258726304091950774090739346969267068328692754559484756021423098935619005175223901186575517892146610126597945741365479337329294399838818581075178529328678566080251133268693748154272810561395853274612504000317399843858695254936386592849715072138291308709762187966858721537887716125373632422868251384785560938912028285603796438731646329777673403399667924073536523434031014787097970405290033134835375615438620606346803656127875526967897801054855766427334784103094398456564068239498566511006343741746820457897577993215978982117572542911547702409809722756177252055758878410560498224949014128883004565818339030295212613249751129332459488681177871636056727578120366900741107983398212468761436083708720044853519671547400906594516791322631617677245302786409136518194594420121810659602970762939842887804197171437252105213743582844276267528884807639165719526222258374531119729262641282801007484472159646425508108525500840599559052375246383136982183940951047952526087419340786974363155518677619377221752314105975443359393272814746422417059214520317983765601661808387972699978658646117797662553478707811332988607505440222869041229457015652804406579979629833453042149251532302236130385762237606011473657746502674347038680482054169944122485295482066650217585865456179345574267089411128691317109671623609327651419919370182088927995436168983787529597005589110619812043567753018443231325006669003801615418596132386647138093654956126972653860632939652529588357588574905738064544761205832755662306931070609643462949060869083532608545771533103508088610823767145887054721469642265070967174234447854520288971169856278842989543100246636423124060250793541761745624851390593020074245445707850087431400811334965910889888731739246819821774736451299747926949014982951788594038337043293383425402138026440420645287845554568644266258759960964345566348718323196518780237484444899808611750797954994301207564108151208595122644931997671482674872709664835646209477039141639943326825553359675212495135791713366304955359936999043630178527009777051721678193308935065993061827658383845626497339982008312996577809827628197639991808060877710801471905990842430831670949562943261971403238851844693649611615983579390459130907107016773775496360692488989589263793440677048266981435629201164924494980386082228552589370324684179664140983730516590598857361465873348839057043480671633102759853704428265897192410794618333171583425509291406113746887673204063365533836880524432679391189983624262262908625216212430896983139282923274812363323226314519473518643362626668815857905853931662183294918406528124186514832724694179501076035487218881370725465697217759205087113086881414262940409056091480811836916370615638524947708634177997647451800517243369042161645778728108974014353018867642964363938897077398325113885802188233046367242200211095057082314266600942520531003832623141158567123651882558512936520352127721773980081046127809213039715002415506652340102467653548194762840812550845217854294176803407233592623210871347023642746346084256655229856134812083055226907360009045029025977747301439420137712419593018609591548613904010862849108954994547700541883080524931296969979136387331416426568695779452527243698362668046156093003667883570196537172152767850611246073345511983133662348043367283643312247497756475421283764527997450768052620279138331883343749999810087246789582998338853239325408595138448075327794199576206796645463917068174503372968986724992860412302404842691297263126120358150132566634492869985266498746633575070208697164038635782556797757301052557299503579119431552714893161914600114861160813444980247011849880271543749853715505767507579105209816436832764524049785868708578833530457557406711032146419497378537491173135135488207408247463546054531569286578238819690856088700654132288042880913800136987868241189226461771561981220724746555372324853282285595300390043903883594377719688531366318030005291127435919307944039130199772073741500917386139731342676046069510965394523527641264490462430245230824637622331676885959072948990299430891425856471702423386635182054558127001658394193263611075690148370867164851795202181529972818190419875888141221710452358940883810491770861810539171794430550740693690801201933208980867794915889279882004760320122901161849712362911551623558988517527057075974309950611298836686968327686595898923721844241749503360257311663999195334549234563488327312669511355998394222247318681558430200771304643602985625351194261055250101396856219047150557236277676588764577909297239986773803463876466902768866927360560929023490810950534295503813924398621064011352981628673182581773991803428328968281518214705092625058477249510292493078555222295721746247592320727883815941351682022141092561730900133849326374164071727647946805522245021572643876941792553246034242409948990516015612916227375626504543739246558450869459559046055521002081371080796124343773648508720452286673648635762792688803978353619938177819831503451333869140595398328803699432483187356891000308897324091467942583939595450322081599558603248960753704804326193759810094982789451745283085534660327324035899133967660631746967128832337391346075462596711428539407981199590072307736856440996623729828020273798845079381250817037236868000766908222749275269331920698229841450187458092362734556631958774483803944679186022933489302085620625543432453016360103697113527008457180290978966162755173533744714561911215450378491305360057278739984110674057025743869547268804123078978180498478736990573090959818398289396564668082626602809568662495067278224894327160600100109072839581069023343065023053042373053544794791807892835270349817478382189435320250622312953025078832750152085979640748027426116481322123942438005975030660482025555391763262536366423194729798407060970661571435213413391674455615380208747514199261769380687004062859428718193867415914545976249283313616514328077805656866407788813095137056330164442467630860923121765442953495764639407937903943021248223025483601083980673335125662744987743687494337767926044871261019222210913354215098158514913852146067887510933008132455791638212542584262046750264470072751492325275945126762777720036493331436766540629502777048479340826028867146857087487189637660714160226058136550744190113238686558132360310108798167032411882358852880199193962718854525784187087166824605585459693707332475274102053536921205969132483461897558709938448819353269537972255352500393185450919904908464970502286708110806630382054703575023150943129180195588204350487474831651988290473903065727715110244300423404548322630893817932427756817404764133288615699582243240972548513283982268234732152563903484652734878893056360190954877121259524282685827743336512917092004929262733713723397082394448712373318067283767329959799284660539724533051465618215697774586137231346614110380022367057410588951963676633573247410865365740895864492942781510623772798366851157435340529453485397943292656081341277497907235433840948676316059038961457258202102446399766641632442079749338955972477431899434783037893606065607377426087629155634521495859823269877558542672286728199823796333756553755544906383570620619101311954697947917294747298158484026310152799407792995755720804907347101716605182963543347506746220349307804325129870426969092515373433155942628116817638406760609315202201300730256664793254973938328425055574473417735195449216826801423995197541393971891961709337205750969009667198945344325308473728978246108925905169164474656910331481585434505667055651247315148665215160598817454811993097723922443412619857077570567670794640815825606034632496661279560424501673221286762552351947368525814201279396869903846138655760739187109698395240045812373885169755840015078889413486053924832152226035742309518672570355174605889027771330917776831465303170087008702536800157249632114329588915781052054253335554277334439896534059750556474784823593915640523329990890078559148838085449739240346314533174850116784661267579166389579515798752907342933094003338608130073604940368413823015950632866485537867502617993042981452546126205262107945998567603924786761461050189285636561536604869036425215370722303488038776296527116106454004428391204046417914429411905382295323770305771623621610730205178936312752992360484990615373347537939210500106092919500543948913661632948913503009303100980724630101751849438960107242047772656445712527543974094771944928721461282707325753372309572793807945928646989424590188290103137009055269286498456429874433726197815048643049109676251362910760122337301870393756054459054402981420952643510857510592155320421656734594263870281471259338995800843289590094086607478125282045466632040788860518046280003175051746616401600929689084348285259291789421032229905814742220921056380496013597225794385968726815250036450332072792857649403475057678716543294391532819367394195764489284272500119830829538232146239499901040901424725952831262858081852172937929500172611844549491714157835551504519474136058011156787643181561686547756843436902866483558541741897509433985640478325356641895828545348418241081960074301058049220929198365035256562693158171560302823505824594567445843534779744638766619804299454653065266621220979818304300507914859963326182195695108149054488722094845309012608180854417430104802950944631723591045094657874508183911536980405284416952706373490423160297536483665799349229448286563045389832940944554066575030175176957744382674808756590196450880382088393247792348983511756889591066009051496761605590214338475738945926437074274809582401529976436913373120918885378832865127569840256314139495970800107936348721155039048539068523979634291853543726535571518206053794735466734822155682883260652559546691689990839623975831785397489951702468815427617982900530480200730457568253456780700485747043864081150046776586081842007747203969660359327496961083802906186046639899449059817248677218607419406398320317996424218220097056560643784177069934718462377080752069607019233214980427364934981222114962617561681223011476084155312901177249015874044755199696304051806577737928959117576288643803706334292277323688845053289733298520410300082979757232526299292513498145013136830327377301419429610788958624434224220164220076889202151664236193383096573538327720300204789933852704188569153941845984740939220906946075041653664556753913572064357259891584149377408433485122040917339174937097654935195157711216295052084272519585042321063944162709353456955180402542397862049419192560502766967425843483736886493070332509483236957717413393753569025681812693144583654494066988238585350192141534867417540514035162193685217919672187206930934438407544268676466695657827091722092450981579930145996857679937890328569894008305001235719843400060136152901280394700668631287459541884573341261277273180986802077994613205989492223484605341488445326916384792313034251809068989828922270607058957133963255746027192835092024661298754584684314651101274610675134800425286751236461726060459934456777283011939237623790401301134525550573305078140701954049248820570721735735559563560062568068147268362734043119978169355018889530255574210251226829339440224429918240218331001950097170319594935270201237559865763489416974897138870631037651759768800823693429788249793705537615873610968707075797936192925966285443928641774915652637439201214758474429829248476296712347996497678614390381374746067235209507574720130354434312277222443598209606690896378799510135365494949617508093534588887225144040487699978813554179276804679903578654538184779093127489631980645297118726112202905416300905949770970382084339031315186159170187434663034025374105591781237312273044517125256612867977089776189514629028716076742273983263333856821666397197218649295883170900707598640200584937974816166924028491960677995669070375759551166082696987791521692683364630226382651207286356531748632021176972294968381623896132889158260367101263788734154799493567132631379840861056730306095749209544462936927252071977516865480314572566836423997928798750559085396299512570049178496721730554695330472629796638859520597180637779568348519116235498114920007199527888310169061148173389361399910458205467390312915022541936671010515071898085877968035055157286893288374111327951271754706967342875115949992024232685194596160971672893617787414421808201149720992750743642218077567767379835689605283118531733882432475492717265548406861658017968020160267106931516870450072393748184792816403039154941704825337304980474243828581031661221781363173240874815379459325226708518017111351117105413471964601840837342011770267496012212631871882710598888257143463094312391912891924153699634277840681287593236374619071100426589548121622750475784274936351791130947468893891872485182503253977091719552433434945378383005753650203737530953156628970453486904567496335477065865299877429810515849456939655246038921678456410470227915645204967506911846904472598057455247288511867306933320988015921119025190763806642466968694122871874272524321895441752464198677333574599680429723400060434313704309960098238439728789576882606744568524916289645870910230174694150995588575534911974946323929371385738224243656548445984278270918180856880825419949029434453236902721843558891867195239818823247207007436980226647787267947610323860458992134988616880323826888106709144393287274925231466741963989884839895190081475786135890961610176331963506246443283293754096554620187622031508787629056551071909122541419237569005035348373066503075791590747947114497127903939932087685062020579791141100844757988899389453297470573028778286769124950967018062422375270780832972047477534161973704752099687489534428315955629316886395758159441580302731641015861037091960633911315108466822801747003815575745599887875097066659217785409630284390343954558045844416037131998312084687903962702912086942851877972021452997661939689544775729645789833119736513310686223769091995322006916626094669911557152619903720372501093428355219103079059938712671812389904794487478896867192462864140691187096944684387230797715983789288980008728412256173047246611383775862186599473059306939306078839370454836949397395315093270772844932993644719502219720076556349116166508963212577669753552521050339836003174124898245477832661049826674610427365245471008055861004745274339180237181062898019033929159979060959988794641528524761357041038559942884504036222607824191698088144782434012171550644960334185806430505812570293479260627869198967607777437303440138842797491055738221554889531935215428644602009587853745751187503870476272552655740824474710664861315920458600853461617773535870660859690022611785040092453312028218674549846397408713210019441053870966190534967113345582487705959679995056051019142381039719833983769937167133541570534210323968008866155896048230028205369272518997605943778634681702057156251729717914842529950039914602283902287321559985711416481160611206527543598174155410516920877059673723442183615365360142320165275569803187740663961768905321774620636195150889203393050804770298704922807407074250754120637471985289156363379606618934569474784590865018801404159570104839563573362759980880785002222702820354637620426790057448282574042720323439566007372974563142266067034461807800640031625068041588731108069876826255260342613616661878138524722100054410387581069333007123243012010158685154291196728894208975295328903480552790581866519209170319207913910745734670568075269212370172796791286051674377223661918548207515695018880487455767335215970560334178310458973928050996338771752382750221564906558353206014506098397065943926443674278614035377230932116986157470555244055724270286756214254462779432075683906025285550781227505991079851113111763199373508870591657544869423927348982630319551297159603908685052017090007643106313280597325407843907382924679143503368353653837016949860202150954745386393601978881373144983042618431959948450887631615511220467027513082694599271669908428202830675622287456035019054363003201532125090013998946533917830395017660431454125415235496653508395411207915708515333599836620443028393987862698335961946779070316377280670707493644092969308898711934836375859020749211510377929320591640130503233006453583936324240131298938671339350240393666375393687261102984149482109097665318271757665392775913644650074902466890226969592435532543285633523442108609120819609460907295661759981244113686157135156926367763269784642925250392075581780857133806888338107918722043743147266581685997192831785989742270131163654774519932072439202028317519236392498675376543405702505195938691102217292453045661767110519271507394185648719353537286844176813504120103016780702196702354673255038439794683567503850184712225372898513799413393841088955493400244191967959796229526352256183366544146351086269463867715919504227435329511944317822026552974854628353910611986684282694898612400817741166696181868972094001067319363194213696952215486885475490812906069340872498157059044715813882775756121111632513618138530135663836036411884912431731557118667248442135559430599639014323653753950360189717446236004578796082139559206832026436320127269616043350583549386905493118387070450473797100754512595640361822820200736837111516960077368308242597872950341098706589586373101479576738246615058273344657251324424925003296640487142937084394412434008015416938849232892610813529620868341339408273554281944999788494649472954905564066303280271018227932724218356382921751438187922026046850893734229925093355417443927889572716921233371812132492891234552797245346568124803183493466836017297336335845489042754073227904485099097109628799339761336791483263842247157298148832134977818382891684570673011188685126229043246837960930508015931928506370027702109774006724955064520772809208770999170294925917968070436290638054647478562513485142516744891890631286179959861627655268903145234613975987685419127501747448940830720447062760377279025244473318525315513238565091966679210672670703530378887323737589314319357928983383350542207312195017196029580254985125802060650786757507621895613067401718908699981063027002067991819638491651530684471594811482814288158319906861526798618008726907048909361656535702968172931098573766297997923858004592756073457051876601010671694093342405612754474329241544319053592034277328050076847385283567666644003836202964980832578451534913894234119528696699096282176189004971414350838524165945780769933210003875424668790694473801224424659442355160237684194426078202096145673100249242305336153040211528013590872297329038255514554526655325005690953275948327311770465484193175478789627301128810418719881273566679661821925312571507677890294183043329678112232804788840622413465474568888231697825218611460162102586714368633792106410852566728364277079160415679779346135052823325102431541732451988487865936848004645637769092010849276935708477293025601117556047804164112084597958237364809456830254039148985928300712612385326771905695861829230719737777416163099173978196067499396775279827124968117730922038390845451397573175533740801150736489164675443182275577393495527495182632737916667119707874954584689039478959413524783887254779109384822458733846798581001578575292380196911377501766623876917621176359402176392020502844420217370777014481172200977218173385988326430427130310593757823104051348868565403508220690413293894772799187575929301363400907383536473597915168620632315678070701339586493236588559019740002665885253966756133494940265146441291733563147315821636065699696087820807445322360235700961814360518417366667382875694926859723432788443822383111569832898433609724826871160540531187940080635670092364077222990319817314857354662291249162367646441121171448397392116426952297463870974597348669876054085673977246766622941557163903160631872893361222441519036543990676113687751245326433310837703642847656126743601998968020907089206730715624263385491627810831623346038137268729572821357552334877929345905716365432852658446241378663060508939285404528464456421201939962833896691593988162120767031921315840522167024515148210063971131067204445377677333745208879171605555316467640866720892835876576402251550646114147741081168103209068213371561460114034212494203922715079237951945534621107152854081094123793044335460226714730857101227251935312147282272614065982786416886725307151279698022500944591970021293834342676172718062944287377242691667487564658559081527401638653192369945678031580582041091439095930212927306420928706764089951021900771811609832492935268078241733298362355190869472418670988715683936736851365678870076295892661258310194193375994175250220260943038925564149459819695289144567996104648409416669971496533292677073154069411313480485536838049524214196706235668270724010577238805283415145964141173253983357497376034392094876988575462320626931033179886542171215665254331072096640530232593823636767839113940961642338110316190519947742381456501152093433154100867653067906910720538606684012687398645827852467206422345412307404534352302840034763233736424516142656804098986372978484055409674594678193310355705179793955428901853943723593649840072029977086471531552172249994158255812647318994249742559061140330761488167328827958908697323247437664955373915914367000026985059317731577005767944048530739473961467364547102307651982396510293758279171752731101802009810156656193943620251918362708429421775134109920307530754542302992949766595053143464582152217268252947366681675735783235903208857688969534059830013462496621249586164942453090957284167361528989862518733080750154424947016783433716069345042405664384906743933291901157093596385945684474366094631328074674329221526253904392606273324079787766926912496668881363792640342868703295627326928457354940139894399427025310750493114292502320952841027642377387084288488441277831986473056414576893002226442302920177043307975821458888318332247963342270147065410265983579983632070095051481940958024647909172860196492591367252638689185856139903139043322359566062727290072124266478948276599079182993962109179569951964577817859825283534674603990056343133056326154673694736415783742059465778786267931863095126393893417484369271880961398981410544217100046049904622705849101720466346094111110569764084359239450718497106717091029995128437566719794550514430884208336039049909440083101319358676863955040807416569942359084696097270495543774781334406246561655221388841921530270666909718891474431333355370754290863428780083956108712358791061245783796049443542706020142242323374413726971855625164990895360180578762138281721029801060075127593054307449854644459415060584772654429611776232391612220992255812929011929357671785299679729439743291676025886886391278135880109530187091469667798762981810708022588851024189060701610494511814951166693051605527194163614100197547397044138095066901001508725004358197941658044192968182697070417033809585396782405606700130382671799985825974835030144227062894808603210637293938151089911648017166833347067860781547757626581659348002855233219326442367955748037904415848076068892019198019899098578050048403328121397161398150277059928688080812134357031863165383315371900612777289351821319231884603766212155770934121591360752872310674206617543646970611358879539262050192745540310291075576176191247023599970382508098100889990428765318468806127269078628981517667092752260285983049200438078501681588299746288848718851444276091913733993844013855022972906178648436284986400350992780092547899185679403537488213107207997131871444755644685416897704969194426965255416502275531984475492521190622486220916595430706920428506284123031887541558118678617947836380122867219780685864911289029140575579948154596845559443781275228984970608767954486822319214605492648599972582814753988237359348172579104590667863211773774039060995641083497382383247835762936900242317538269155895428297068793581885567018547451172261864286477558161673553608202540792873351997964507545788010494533348865196664937949038709617888323427980151178017168606630580761499716529352559369091986860956172901936059264486201303826133518276990370823748793797147559039465910842188116422905765037232249672323396235213761265407718862710433202346459015946810463142164571248410739829600834510956208826977871733999749755662017229092729044621322342809335199177572329426120071830841897982413629423480324003309547700850996238970945552374006184666143903703657691252578536625148659273046550666077675201761155177937805123769107230497263950086084747794198370360342436628523127926711063214069204434343245681033978360785401189616911312900512389959884959223854155249419946563526343029810807281892986115684063608623546857608993733819698583896359178559289925665510268402673056265870587055776884826310193464914315279506262523544827640037869060231455654921386710637986653357684218581305653462988101695873307846936091435763190252418828841254918021295380009645854704050740943203222515833145016523473801698442391135632191726469935341758635562708396390993157562300709557519959726802745735714626023279897432935558346182528148648655356848859450987500657851274162459834687902000135773742768921983156990218579362105413050080442116964749178710177802450516819448368545831608922299288692491001817385499212748602816735035766724845856014988836540504204280649141596619779182123625749826345708515576942102677020026432156895705990841513315471333018432570380710256619640810703748745321825414122163671326957308768064375718426322354474176873251598773366653346082583961087593007729325531492756589652745585369693177161649481173108644500429202681721528787729376973833900419738250155917337215018237484881481847111804655496355333196324635827023330625701404981032908843355162289341307325095867787212309538778549871566295969185337696338239904136557011614543127356918597493880693282151059584989884841555310861886358488774890352851210598812008889874509908617956804333006575184617386233633896656518149573224317025900510018375845891837030469100588575201986881257955988502376696305403711869183773582696988337126033830820159071251238985037735177398492371323604459750045371013531205041555589111858296799600881907760933866170650055560056887851682360511534669092506447574714085484359032989071392010510422861021939807887331328422795316006998323947444125663494050570681048655032039230748732546865025875814312016291151141919755218071899945733951387996048261194656599723977284411483072210104126906482184478469671660368860929659887115498565089715025853274153358675451599050874223760444590603886595564873893939554226855725743021356711023306720213040778895620046966486103524151606533830206183719196840143449959411259738130968483196497704586696157860892655972474899877074505578831853254006630897947125083254875350865858900025739578528085597424069714391855868922401781020675039765906675355991403288582293528727345260308153458462846085251438931877226209001567781633915375214237926618163864253421663474183567503219861561804308615982050783588216334114607701630978937697110005253333809814795093035205335268015533954796823516763140393992551301936089763423872527326371129817571569938414720923825384255996321862848384078516248671806172486561040669791676525131862868740014736347710953012117373065006552763768004391026602425613761204410138956068253582321106875339600003137950650634916151969455435287823534223606914633165680489898182999949187703710231063671195906829725857274648461018516512896606882681682560052403268873114413925038225292933574462941957481514860831083161101293609768920268653362476201666746039167536372125863947005567867075175505171998823823526069791411948499202249321577413138834491925509418583429271003382566155516735582508861644173520078530189392664744306820732776010350265525407822916887354262603069813513530472323206935994123817331007674671196702861930323356204798445724728528300571961138634779761586862311226280090439724563480462467766562285920075827928039138403842314097644331819058522902673983559671102198463018130116550930919539676323746511562786967852580416150192883838400095914034043155896552393314168728891082533711130851990193127957959164474345539275611865053820784879315696574966973269455767035480486012250935733460036665741999583523329867048569875078398778366362827837775736442703613618050471108536134602516431253196528678302338497038242234625296116731872577848766552334604518146655389500550186658053416520252989277143977125740029855541571474284456038690610634937683838948917572715777734470968518503725421977561245304232499586157332473373623554116786742044987687786382244155683753458370126430221644389310136852370555666096139275295195996944362520902951576151881142238980198157464943418098823998206518877911800024773704973760528294026550024518588341503351510002127695733421044590833521278920902268150818778564805453124855166931171876121197137602466355680014753777033643111363925840927581757491064564152499593322245528267970519754748524604623655446260763010033078981786542686566070053606825419606944428548609817542435384390330757646158648048117826149641524886599266211789860817984738634938166540192746965552843797946334031903109964004331643869142556408054088415706705151259259645112466243163184375920397815833658689997539747107536173571778562154280382768907651852958966173838796811495538942508587764014810553183871182694775901881787544688167737090971269285186623788859046013182090233417011018921752242435103322800618374850641039692777098264426828307185933417341323691933122897158794265456564220458762271847801639197293781782232987623817596365623023372346850395375701921368688015928871347921047049994921748473521601601882169813029056006182126767200549111826738720999695762539290636444375235888051060517373144171837607116431204830232778561858790046301115465726349340516185798916054392006580855023848755443131456011063599018273291287469882443429095284665155539093649117359472736371225010948223044451672401309141847440698438475441054884906969285074180056291756167674028341662134025646572241132310162885083964816332225597579379231656821260648722489798748148057611341309507659183287506359661416361428968202002478037131042788627713631965857274831592360205568249842642815460876547034274808780916640545926953985758634120398776524256784243198176069855370644009633294797395771280564873109706204389707352884427042522308962551125671455355280544502458408516680091616120334181727126071172702194298442868666338597074851104801186374298538107205948505304287699001354832531404518538376194504986871555128483200014390463306976499688951386180983483309120520981969664895868722137548723166599044709042468912182394769113108701380975419906095885701493305126974294254149943271741538681115981492290922589067887666028660558335309984607153444380048020798505478723414679513708539105922909728982855106409054618480214192987382973366911404213142860944809457804563173431896503683152151427728368476454845806116900225252068185086036215597397695176771064133658125981038319885815364208948259196411979836382841719830491009540225928708888062994032681870212185658616778684054532883858452680274528819965517866658283826632114262799696766951373644004998108134177462450896685113339288067693672252032893942582855748510967702095145910640151448980952274683055311222994992321222490256209977368405578132188068935698926834183583749895193657945691315999945796328066885331430702372506989204201728771923945510411835984728785398723080532739859287426269447674994461301657135708554026226574465956476640369497418630556516586247996427053122865215889607645091837731975850300625040713090070755870296515778282646762198895984147446120004445395823101568845942509051433124821546292866370615651403072302371951460896035379408218151904449206407758552269445424084418788835579470927572732639481812582495237910435738149489686925448282953996324659070521687458467724228374604473481573001969873135125392884249740217172513261734354529134573665091645333237552967725845011687858718907961663930268599887145816751005483522742979122441912366367054487412731899923358314041306734811270144883745534378520455297803459655716326062075512048985253197207461926249898664881984526574637484808013190684983867702252086101726754060388522912850628241030897727758087180369375644022393684731539215695176790018594059366669092636210633253529937199351519176304745215557689932364489799065347384598697971678455192262215444320372482310249546203799357718761165066504416059069486094718181800873853314787797418087375495337614231250806210668418147753467912076704313728814441730197874226612985381208961248302853895671605530351556852794147138951507371841365155616497479455983883837798746490307099694231996647075238942241588469827269399551766253828221061203403652472673568356752469468225346979077299873960236538366697995162105287095944444376071543837247482872996045971296059652199270242494999743475958516323732643838949466324055887245467284051356685482829629476758696991666554124777927945375679740572821393482968182433549372103775871263231419421164559409137772136246181418344297884809511173574234616338923140599761038253308599232090566432916371506888021251415422007426727828572122367823979386083775849796770543412732598852749877881549587226475282944626856734397451102456801797183175351674676370165601280911617553058362880777605770693466933523877012326381593245299147030685896251945228744143468739812783627245199813863905877777619820279049659763723986375099258357033547919613398575111761338853227427446588458241552680046613563364011960335501220271999908993882918724488712787032806992953904488711486608871995584973374997163786076603099732297753345800346532128421531253270503329244581923179455578687634122108736052167190913437948066234991950258424404628200545509343261378772086010774885193305539512480355077678813435350511048708420716016353006049625597375454935714086851666197420417980548767764683371179007433343223420059276613236021243203025830438928657962407540604484314009940552989948195424647454772433787203962349514574541787151465042519909105499375734337152521763353051959652543175998567848370644454760080808317043701159157210820296664226876311918674058805838382332815687319309907549159641038605313640065420778020678911629191845187133689078339170858940316523389720096324404504039152653127243575029927503183826835312579308570735437856589353856099438340927941589554750764984558161437175147873506174376196003231449284277384910653693424796577801026874146645729137672858283495537292211072366129570598514314993364400081463658225629204272645759446934493972551547670921335298671611925606966910531082375917343336424497263443854335254538881459676177555119691063453741119655151776813900612148088453532891018421342707739202975972640874650388791471892527346935229321657741633687115114692171194507303928794454127549246508491242236182829656968888536656258163660910223665849625716185787920143118426919510726973303888929343748449983702306196493720571132628265554482714164837809558420352432644842849959563651881944572463783910051101103770197659282254103369299199459844757624394045910915861957035286721455879863085844170546127946590965294946710692535815932969812304953349199624297002022857981189599296124355894810884480639504158587208662310605290602729882700932473815584498136772178094249032270868062660854031984582303904778442052897021295341561523512414996264530785394253841085834484832602019808712624081044520762797983141175679498784159582630706192308860893688248106673962969777836297452946357748103647057490092158942015070119997602476737735933727069671439447052301414526971141834691986303601298012141047611806944947359766442988291770359955933483881745780759746375243621149445096872064579039903268972083103066353752566870962745906732305926841445535930629030732047769547316383723613934739174597979942028449217716409030389175602609418976593190265780117568654999401605589000203421658597316880273562649709697686321641690264288926709423182156611708223598466948006095077079263968157057124589865827559447895279525652914868356990995261056785066061688448289884292858188778986157332884598687364882652704620166462164056448918427179618801027693735706800346619510691741871871742892652660100892188894604974332370087373378062756459198191076127651370862849529011555482306259314024018605875795134753792640130592347547569348873786147539744075200628462893229953651943881440065325943533231396445804558962000601147001510048724890553147488471250145692951907430657973292375717927773006046358316736583649172609255823058535367420175779526512569966631021913150946948841905181748749218488899874561627970116948012557488828402791419946314654478654577491748061161598247208263261192968563869667218478437586921099485015161021721459137108429133720049806871046083395902751228925482889812794964996423646720561207684025247621399005056653604046209219151491433391979751073670252207512750493072851452659410655865970443826490967503090271239405774450668463449385921286395663801092454932607593423910781563030804984595668893905581309884817621261848068665726403838170883218069047040954026975661538518522715304357993741766455987033795730988148314924938753125250878689614117918925882600187369361918622406804388784445969452418023736334052933679249721174730881248631262245747954005868831914805293533822122956647705339115004179898612058856619624761366949587153462509526600244056362369384918649956870350149158277549919027766020595648255197142475184900361861191822700482753056721236232227254768314566475520728500163889209049527185778872780743973722607435290269265703174571810314298087021012571759851194085230099602815069137748007807402862104537213372755135716344886054371732829864801304602139212681470344230047657779207192431609794979378841036084206767443347955277056732664495391748295892117485384949030405184625245765732475201710371994027199756899277415469174832866623724455507734037273232500249412953774327687422159929338773610344098458331431042623038105576557342776909983307228715906198759680834090637268387787208149510309400927425956397026394019728225383183390733647585703904278830818176892115951425778486763525998751673801768923884442868220171071994247332727007585184876046853610760110482643724934931902092267290853740396169577984330848687794836921221917243437476532415170269428930200266254712479459071962061436842327385062799281145296901769952241543709971148581482870399765182480458914396284398551370546361097292761184120591011862344466438920002533075953196127557518462259459480012651256645790095256364135134793391636476614449122780126226262536259657789305497422655986506652556757545592138654778204080696633716583028662158513260059536378079860746589636815634537797204046267083736169199928228588841544836579915374174930625552070658287931052206074124219026995309330398875464866690149070994574357282104854768672875405911384568392872920949659432091400604578663596321370795383727255368360375271394534340183532272716647783182007669992981126263228273991388015695029828159393857150626253868822416105749411600797262083546850619836109760666128150341743851482341960073731907670261113731848338850489072499955531329423814926937647901031057627899925389338260770003369522619352736083818982712261639505709040591102861630992326384413540532234095082387122815977176911135022924500310876270930456530014905659108920404991886982169214364581543773618669529724752194534687483287070687838162092578466597756119119719895029355000200429163805267157447745916651487421978622689703930985024728628908128642616691770258808401809130525824741881540593321932690722921537424232205650597689065604503157257096072007579312828614548972981609507514343260438342667986281731204368467714583797792669661968716999760566637698657633328220210859526505507051746028914384156416733488150016789927492814752601040636377748639236636339819190296775981932897535052387502114396496540528995848219277364528628300404881135546291331617535897246584394370259332459517211003021079655624046063461823976812299138893432984593633995648819923907019788188694499979915089020667457975134538668872361129793350239089882232119920085155962928062972763400138965254913411479955820665233830803611752005890366916421711461117984594651484912017948854149198643370387542472870397648266086277930946954512326226450706194921327048423677093907314327266210944139689557551349697894808493709577640891641366194431415494724916520265788545151695763478497792568687707407261056335359401606280740880365984289813706853546385114478832406034430249551348523435067456401210952525050132087230624768635103854091932846643617298042858498489623180139472406222746482930789235374764514072501804213787283839448651837501399749132471179938825685758455400216234166659110956367109585253924266537419296727176451557133140179241759607071131707808808944074526931780825808371053151430715582653624557942179073658612763998057700893312586046256746760960498789937242094099412924502771735069993793905566654132024520823977619189744202231148703503537404936652810005272644948389724159544488001948916615293466602787986540142240682251001799681731152576423206108730417801416850144182610152822779584504895720022950069075626868761782510256560681265410657371289703663014476779488659049013801228692821864464890476024644336237693924220773393515347698922507794177344899032765234181736184772226981925210611499590489402556760474391336636837216138252520465302722631658310579221024577687044797470649904513480310725538862343481653266670486813386796131018488705985096001299990670969239734879296458331163255751008362647528041032984395485323108318825312740314549824473702680487616996159154063403650140677467293255582639948905036920699052536808833026487806348364921603421834135314441104755368595511813475315141041220082250880443979387289554661103998946302208610170793381266185717849248978942554230433091820749352412123974907893317108008517376823946496707639290389294526901595885714232283019855461899449264699464010269421774669323418917710563264407126876680300151395089108939521916298500454593278634809768282465291325320983130984579700520894155309487311720672495020905269193231300647418047438247143608053026532487133599713352251328313616776915057363120772167109938173646247736965881954078820616356466513192009935320392323965306860116766264670114479796736257741753467333375126528427619158895022413085901081445086164087811502184142629736305638916799282562901182430839461322361163868183886413095454476336168129257388636267125147272125927379455633111718423836253158489997204793994615354718869167743444766247665547861697657921425513536648188146253833438033218321279008510034275797512905022758020280542253583204462931430874965148301988250657453947339416326879761199729525256436137267433558221347142970542268577196549405672383336245893326604347090626489399920502014558568290644118330166457326036395878008595699551892968815707356534171436539281524786592699904628303022118798479957282416722549210965078253890528413062598955581820975628606934987885833772693326493605379433579542149255813118066146182055828947192971909853244183445082900089511389958897882372922513953794211028603429099318198554131735366014494727421391034724710566901229762957463023804239838129411453640762207052480336466953787816071574417574770093474758736258369357409064519681073088046805270847207079659864341182052769344297544157071087570078137522998926447692093584279755056882234257839955536464455192893790436406330645135073396600414811893165522289711012008957884672386783381813268848891518768482330493185902918796577080509345851184652444976402418296197391488340249449714551111505855149707668899336178637854591186286286061145643273899474247325090036265428062305845378020235354430240468285427312481460125594517349452481553542392473365090472308377048516692430993479891956249920673288522683168972725951069499505274148473414236703865840206426476000646025994707795147416571718312825441734149132314538135841923347276669979857119162901185331769518735308002545432085893097511484039978513936800955877938679907784043040898892601451296422543118844572946389996581712218428007006169652855877667930855559416119638858419571136242737417310117954870751988925266098920518181619070802508597856412483795887812506732589731130224187753907831894213371869358923853758240752640630269594568144401096584371949577004280163288281711468443121384275113340595144596697943756712143288748755859601542480606816891739476296071374461050245721168230470127382280934561004406487964583295844542617445242741901797589369943205415316585761136503722276462110765455306378003851480338824849919416637584973040716401121409385150660598380617723043975591520617827814208340448679904848235298681024725104255524240385497373368851749593051944770498982927319400217534976466715025443637284110707784703120688069095900876025663263826713951432291039532832958972425203882293280714099443872795125122727313562328785354754425230217665262276116208987216910409244893509952368525724459142464538323390076424288684529775493636278286983602829261175512914073201697183650026556616286974899920359504723286865956544941044705855403537767460670508432536091837783285916231641714741445008480743542792120596621663515742342238126222036059315172023783083425418047158235091075871372363928985436168955312269420222761531844162661194532989198073336870719650801092043433516440958545431594298269161635694661138379945803432837302773801835019438858944114108707153652362927043255372629308267377886363084148121104193737943077277736440051823642506442799213473106934061946116759617473796652630098310602436067236681740398161737239500174150023670656212508017007280880993101331942181850935241789639224115555004986158859630179876789609878545150488496118183346970547940932116927580607965118006673106635958788952418279186292712538532010359059222652736258351837355371112904453754771526320048865568876644813910382388644382680487987647983643413332548579067097257122839041457675263232920200289604560305419335695675118131863852811781248033373237591349448512670729617497915327392669680669483025466396657560391581323427850775227611873067314400472247936765239395571087808114242009197433118888156248754339614641048992234277622943813731594226602344273800911268633753663685427038053702923826051530912408267158150008483183879945654053944619871851432037925511567788656789852742677468837462237559675018832002146510809901427577497921485298281383042418507024835807745925587323376064952303923186019785130570822475291505826825196169804972218601297332511501824258217007525554684924135323981797085600079077695077937153130357824835296143026122746233741694115057191605393460871728665881802958695912769364956578798937962335981281426885601288973713322429802442760904122259313142399056661839594008781773781520617771761336558678077548584285109127012625975266834870747735785566745684000937043527313552599670302761043706287130628881381745288240772110315201308075561694750929725576505091541208777408520791117885153460091685353943245298991450912819488919311098089328277931121752579141926785426303708252279142257871183673432225860013570509196486725501983834491841220331789783669664361946216642038447085057274653901284342456824287403824365915308146871495627279264922139811500354514243040462249925243442807954940810257246291443534515344341251904753089915321682636598516142285055826972631189946402228525270715112219990655069662813778393143427106537914246678464151020003703269738399246666813991007866589400197231939167593591602706394069174483205052132656484137460623802259627868980581189547015634895299642559112680300767222346169165527879430900244327834632097303819501173992683683283643620142408897280185379518451776378575524169474726096312680518651539786293502473961610777606180414431088806452041085063638757863960457939728284406880610632693040920049990220428294887280563822574369141081863320852863257929092350509405060604983055218009669553432285956640952309541796917211209384598184934757109920014572759397084780174207225364100985119210712193035080208475695572958253535339774804148321420602965638908316977218390118547543541428888596959767839332007312893807011475175964204774857022203601258886829112679354703622341595927307188250075720887694656251731567240486063803395066621905320954599766525234461740957934316841424776300097044004014232261611239368987252889185966005925967973188253718606606944020538495137424870704783746429722029040402658081892621342494674013798631321471498724366030662181194780567633373035110539411505450883613338103013609286199291492670070711445981497434308870767984664898912586005914174581472412911272162336752311817839511291593729704332093015553055932585781471821558811981726066623281018262433122104099292105076723438544109102324725559512029713328734116860588390850812891266495728190570753887865305791739077289021606321295668394926273080314861945044904552975137298640881978331398907671362941363781499156188442605749915092608790893249139707120125074938959146908414465091835807465801764697154221644246878428265226673753963705326132089967723974129772612139517717142172551071993332777745454980452871284548993678723323790164622474765006199057459229872691996925448444001766751038418270725487401703678285597095866187118437584657661220930299823437150506343071792674891750348827209102255362369910947679828040544241695427195178017793763169230940660136690678561234062257550064429903668171025385481066140259939145663769741585494195979528854459603579958487816960848379925112634493656433018192808428736002953064792043041408516554748927756782296438566558633192479399953429932579526653806435992593056405607177117366160282729669985438835484607111455570635712149834570780287401565651835535085260509685238410452909845134034693217669193567981607128934169363888832691770630339300448458744894068634356511147865692203497353005031343365408627340740038903044953411823708170949303996738350472747454629448401947547688860132772631862429793020979422289044591249182732923925750892675009026153613757408590253960463246889682156951268339673618979352978085368316228450856332370312567173995514537957789830985982646878448293640074812251352108623616512598165656610322541357699826085910470021188038351684085078813047860998196834693507007504815866931671996382615822031146390359348585521727858463824077144857955621375465594316298211392413308235335294812242212399608953591652049950544396074512195607454845416929426164255218667794593264289904358411855827277070078829546758780777532114955328760847602678692797075822374962794605053716291207717660971445149686374763557747844945712651281982935473895254985955405420453347086226505171631329200164562621138084350606258409710339074314956220285599464210518551442264580791126084958516704384196726345562548214023434562235083412198944958404166871254911920318415482972538181679184846224291680461426117304075742333757514241616353921472914215229031222498980860363098199860116233310660541823787591297233360710794293280317334517118531914223790944266907297561493904391275939997831757562855427169198684190235638368332210012859989566254159510093312934269167269602390263320367836146523409275676252170393115515411455153809338686297176579017600975821800808993349956107494553906523368435536400593978151664104189270398191899979780282355559207059729247526045191885086440067776978425383003247713580742034867593646469316955471580124790793577407565595153834552321640831919115347334021068401169859551262074758927641287151890362227451337388970217693548132217293098079118885068696401753268436650834063506834894357956088745470117756394370373468133427041315195806510971890320895660053950623395896390480073831950356090784463177301388361268295932156140146760632743300252688951462389452290362265741897841851234444895164236681522526045267015103827884929666875605224611378279623462481905482632121691743484957169905810424505546017543068596921647604816649608933027339621329649265159854468832608953335445889287803677140356802596642533052080860427711496407401240601458197910538383220297851058165942431273640237448473439561536434324530768116852669456182793461713090671447861134424045003554666616641669169830220700100856718613663254966541459518533008258838671302009783038824041640822963672984049318734397222555787663052190720859783022499349888165395552467821981076554176956163545856918037040840278902103882203712110939002545001090785879822188198498857331744256859820321828066370755257533542908178771555449114219151823049433834357647189362776728506575916857277132158747821544017765209275018928372581328528993412804671551957040066940417987258767891920703701602725976168578448698663395163672732775101542238114284553213598622243323932044301248157855779618952047036325652853152693083711168248837543067775818125295836744744777280890968095483550953162926130998553155040045821184414539798792372538712110641726102226958786884660240878144950862243530737487617789986836832202678036645939271962298554097877152656040575098028818273215520210574897859452679107650965086979113756691444719864526989594997061664859866211274379631360209120873994277563049373698961562621494964450642749973244784468032449478986860501161511014725256968611665392720266048397379605592799713780146692899551159264170593444708551260797257464321814679436591915372279253062301504140649518498221250362373642351727435965550715165952207311245895277166950388414119669867934367986337069953399444873286458844466803792043964191713083554413224042138140345927210979126178391725779298380108718290169993057703918055874660573498516537725979338020245489775853289191982674863384422506555812857709754119398883171091380088265967786399612927444112042014216001262451350743951324030188165741558255965516900796939874878104088540678102245229151701348613940572167193264796595756021609989572370261519060329292278778293204196457713091020931032133244722648909287148007861705489947686432860814870940402148532250061445668327320140801200911398565507350681486514996306870814177969577565136376942506504656982675051928317080239849181965046118569378288896816090049806335527572830728545542868242569299782970272083538532609430389696310045264168724881358421288305681463727342609737254856244986144623676407990376279995396228429542477375743133014055593217490404103380349376812081734263072733740539894827505551560586128201212867323830654439567877048286669736378333925644348707461518958561733086660002405074519096852978073780706960455007202425031403973720870484524052718173851580838923465419416867837486879129927597900373856033999487963971938556117189646039270227108567499672592190961371994719078068205293242658649135304866282940080561202777512015348353887508940402132154090468151720598294860438256107776166233946819381223451510829139373702249649983097136202587724803629874649453667147028214189639582523811985336185948575018696322169704360268282974041454337409575400291321624778212466286639821336863514165491613308993348542527212645254666577113926666508752772452052186996123264516873577183290055038618669501874136943327808624389423817093635190130942998668398543449297057100460714487152754971688237103388827254389345808194091488834666954321377151964839861435318795730621630334182328687997974963003969057243832030037922757247434530842792005944207527907165408260271729177109318951946657270616423876963803512654197149090651012408456253738273934904151552183595847034932375730948029920861824290160611608291534187585634014972490385893297726686950317519015725909566565327540108880966199136268070563332603743011250683436717974260133074697769554885122893009087807364987181298967934975870556082305714184280850740439223580683143212629358093768121687565627789966135046401462787140997675029753167198110255645456162691792806146876212426876847630042042617182328514158477528102362332994559197770722504121541330201227199364628496072947094548284001864918713500605859532033452753535249634172311880111648806657291442288070794465883663493245409871303886920063741772401300946301211055717277112125789971096242490075919610429679291626084994789104348632702979835338719023698939498561463852929291414713986294771617160973658299553285087719538695576098368493976225607831242959231628466512573003830456325413584679533813906578901076807566551200767176394340454574584339796231557201792358435621354017225198389169143617867126027255591010962323960276863224219756646591380222726743394029372437409466298859227766567080940605459046800593966986368398534259411749695723532847807592027481831734311700617285116945676386995528455195951562606021704426368692435019288825444196578850055641176959095780244545849696348571479632836364826714832775049689552265139998630760046110474715574798042277273534692744099028583042267882258136258111372889255324450923371105801707510645292026201937372636757673496736078097881655038703792173796943468633177417606981887466696264448647941663391478884925542639371260146828861740181988948120711094201708660347642942716109469622159801578199515720237885642116153545747342929816523644820701196656515621517079038414052474319108100466975342245708647663361848698617805474279678339318111935202281241947282779635059254882194628180203500969903466896094605441759920059573360862522628126616669201724184205468868032461569736877504124561050350877466370492474058388123388514151965133245782207986969777553710009238525567103264046002582690496470964738937897400825214739076439599298342629052889300715048418897940675269963589495413113036503007524208664359375792052869023749045738003748584238774078035565778685559133775691932029349838225883181313441133049317905382659116264454807518238435081889265064724399801534560445182740482640631819636303027237554844418308902657580279402145954811456432744808910558060624565169912061225319021354735825176660550355371788619186623769085888579449197189731054926420418268999918515920371656128816082626331526149375132977814125698330461719160856649742565089021362237480607670085627530052509759288303980668937483159734258988164950278850635840060658999483625720020536295920859211557946076628188400355425945782003494621253428719348495039154006122425879813852007674681423306241170651630922149353534750313862677225101966594862485672710995423954492550621863410653537913894665687936552976214969421462865060212066949608312616503578436125236858226693778289400471371994571752166660244996226435961558490275274393002263478337654974516483835092187727906154874334383564248554747369763870211756271383224994499411654595749724992449862058459950876350581098871209452161752826292153255421931680040478740586557100705314979372505617976002119525055565534666327175145095739954190109935257550516708931204310230950947449503382019664248637170431178027334264539501248790456706503026896312280679051860203736692708429956449963663400633176793782298967803756698475828821469126395028974568614538750576652394983604094295184114783734102084048699749000758029330067535293196070084538645657890503431079958689789069825403082701305290370280508911184514606084005382373410187675336189252727561838505112287887989725172031849575471494087036973415053484589450071110361079453696490816526991990346278335294226670650989058001649284351845474033582506030551791250162810833462079409846637537545064848570129719085226204431500185136810144891745046923498787022213326974226148182226908946254745686553297577129548727535406052079572756217523003262087140902142213310210813512599950592813254935768982032651265777237575226230722359009322464075198334834753519518626658558248628009438553431051003015494945594964340554627536735308401012258162596613338804159829267324298275187340027477375078242600607330420548825900413931301619888722801472454570589417192866974868512554685210989198119934935485001875684887662300052998012468859266366936676136958198741820870723442339015862997585236514164663278542734593702501254153404919585389969700494823654538685890620237448179617882012348172243440464050583292437686191095329323572278716828468535536208026243542891253196302351832161128405158426980227797266538372499380933767013823610810135628615955225145128129838253564846873777147116029037508671357466393303114694469421742696987790199153620319321713591069483442851554380417640843227305805293309747022400794945473569250767164150019888685487938156297683277190338362492579581635297520275244399507056107111359750944457168036676682193747832126199289929079976482446543781627913122632645380057624800070999730387334185695000748597674065519689917747099754093118277703965624564746393658091592931741050762481222357274826543789275790861036551505902781241901083772979388172546497272921041118089895775897827429985465258027155535774099430912177297298510493079846157503315935255931139305360064887417450977579497902784476570948067965898330222152625231821540740469517584565504160995487926551046628461375189712228263055710277918520516618674194187062838786370751372023297801362086613638664337287310001411112005228631452699316820858660648806803738897775466994958073947809201492515682752121516604725810829998698640143544545066218902744878328176998392814567536954364849189529765233186143006608340757538880276761266688328398964813601969885413268372493104733104315113547141966936701636763966720916797450716522580154834543417275625564231912480517670368921560618324910411559190654536668156813110756439986669402597439087870498943625058769358264697852721615564054486642636794236652976438441577785195622817972267665434271078932288524570320561998399688820836357352024470479577687292332941605733640854430209616106655932845960496453987209013323114022324395066507675699781028747030664363511087695217961846229936121217714705467187993179674791485615568242289283231309402862204527083882739943425177587715553956378550831915564711175924330778192074948561786889452254964652898129338887384514539370503392594919152149223729580535288558523105729321454161127864886024520101813927857690545720974688264904890522364628457896720035882483899229111569949713674845604669516121916992362152740420638883542294395456412491671644876932171636452081954990207525657225895453925615995527516068751701137691690236213767819483069643282675509860638432338115530810205374288453194215103974273602690530100514310220449022748375124983020296107161007820043475592120258636541185623218254050383073829446784378471033464757201210307511927792514302853469900109234931191957016166773330556816953428634403908689035595345719904183426450287358176310873181095096637448803809418373489807070101956945980967521465385751917663220927082865463710695743874328199865736546220870540136464691742493412184116184941979899494735702014318944187557555800955501910718214237438653978100170695899068651848598483092982694591470419958833033913720747797958197037523704929230201154334083812319617012717203224310332010779851667925756428030028616917321587474188337180952004642158250293676815909142371444616743609649036911922769079319678699983810051893588410454146966994579129661243494837649744886547555770804760739754429146097155902065819309401998918922094062499913792308408244813522616736898753228257501523930954177990566137350231245917304577787059556736470607642452847312627538081334278743168422393458107683124142813641024010579993270665352653412081049777813475306085268441490935919463696769750803686522547296792055244125084610937987388465210312556960606597616410113691843736850012003331849187670944521799352955642378212923932550087093919420785635672268649253846457355135262591713348519151078153251671847730463964802786098803570853770801632470613412222191749707688821316702971190869040628178793313697750159277297836767641272427009398982661807564483076272757115433004682016242898489215177684545914027502495206789062048253578108840653520450992105787262133181981591734185982411670466877248372330646026096386089362779646901685892587687837783965460524612502969652865436569518696076895621717176306540323725603737378481465758820702920716204235138420348437967628582634433925901457043330962936095520940746066693646593997466660640244752307340067555688440383706562196054422805569551385524100605304027714144989452169634260846424251021480376288479430628169134623700165343770003794357208836268137278100908604434047208193635256189320093741546027768220868938087472907593866413150632734946948366479249150281370278968783179632005042641664528126282939974845421495377917497988628886004943273256161290920377516129913473593744915447721129055589416016519956110148813124857317473152775344798516238653767572781196086945341080790984408247116470262017596688457929397679404220669388260768918073929654789938923743358724383813549796555324094057485385714367293612318687756514394993594863216693788482771415637549149099341333026504759377948831763723510189159392395586981286663700362359945769702627969428465323158646583105798664914222030888654580842837486492350221449040508945878188352820174407212367845887407959943992443611484850456588766806945740970317144875927235374183743049285576524078992861827666004064378619778648471751837813736543758011759295713947384091783451879261413907786592733106349390562137391381254106361059402625908590787321656017482771733267062359298582779486441957577094088427763513347418386770999548417233352031233575390345931567025430165680046298693564927735222027105652771548809983665928820325545777491373646335688676377527370496199945898995357384661051250261879637579892014493361491769441392728765457362524778379622114075670570359612942146648903477045530916367620960756815103966661128386337787777019277802740100046622597262275267423674853743937897098343464412531444515306296798143942159837340918819009466703175108314564259451949713385975515969854455888713473035455271274529983303002225340540931763936457783928174269397695184430239926074631118004263807476365873356486771592181515899016445565616924437322143640361310719681127807040624056864489925119708390304249331896541177783337224694127090254843085114690824135755736003414643280914756231125773249835819755854224743218030244912498773588523484570938800361157364270041574909917363809757697885994651656775966649660459413009269793159243979312750480207528276502342660881646542209917211148456562383404054770321630355522030092357159476336806887999979255539180820910206089993175361117603370316608030040943398661391198061841100977875140152295091381280893160617456996574720401386745886777971091260545915588921084553903853951745696876089667098077947431184523971751256407111952365680547075280668817016818015527528005165702969133609524699320318605850720009530204212065759523795435792130951661758870014870086215154394440104259470040037872607235163471938404101994661501330925951799503041878146220350018890246821633594308825713045217234626925635757260137973725965835987905562965639758737858320775302881705293451652943955600431957977971539410558869645517415667573947271638313121466617555066444627864474395856137152996930135504529164355781744773710828564165485089891169025066171489809460387306126810325452934349652855038953202996175245585288031742911959563219155326785733646205045806433058540852591650443511434134731908011423306147837145929505851764653551208982822104107737067212069241202526405975298651634857846220039720497206836858345342300913082916202254620246421918712720286147657854672811518309055746229524901972082166897228685491627772521824574418554714275521996704855103341193371655847665303993752758775046912758078025164358976208560367280556483866496433883780059851121529310599916349910547028103868734282278138231567956735219355848639348050109287722246604082957172187954413716532280123616844335631888340588638465104393727767212775097215856735169122313319799120019807647723840586744776961132598429060654892935528757684686274297925421228234030787062698350709541598602209038788430592731860878728145545173942783591866000946065091217844952961535940567165534091007926810170903909178983354062547415454257532372209952868439148037878449742617690261698640305469616804058755720483170329828418842338887621260030322798513868652836633891992663530522123475369109714393892781388010982333479666566627601317968786780183240199321288331254769843584595721519105647837160590330349387796670948789495681943951285543420551482495262005991585466747623189884960776503404426163829538743246372032428222834967202444240981475678273627142666277085197222314033053762089495956913951566096290927092513565654499864176595026668041122510780163328536465867318487201271339885610412355361208859504866132414985605825082707801089246488745743081385739478906885396525114747878779100675779512499614183802260861027346794732439035558420530529490325189345456319817451649182492271835264123101289418852237106170992810989715498845981494986992231873991629348329661546034820036457367415048377258544461756826863205726590369535602797073547177641561773150848687378364101699718790344474948642855547019265806528451223989183019614273823714045681128174362568166413050824856834937194836624998897176693480900789732332316607782782571700931181977461485061172468952186399033186334422718462550680174249538586134247724576257788966751432940134858671680651831717993392583212222776207443219438457085974154268282173357109759420436283699164144387181826690292032948444021473912094709955644124587919228411288058835136697343276610214974467850384252913454363076942449269992996830724278178662696451314136463938507478182833399533753981311504563854122528965964586270181780942630513277323094987111903627152006297497428179054590898362835242541509730406420461559653188720822557469907522513059051959658652808258622225417860907498716274158796871647893231939424842874977385148251133331036750706395868235235936435063619430480416754346021031296027867662450692692643893757865945320248368742924979203049014619183920287397307017698372864923652496290981859216039228715758902732822139937410882707815468013280000148130837983268238073667454834600777554154477185572221281537190932463521497864653783115824158863203062509631618604564314324607120590299617196920202879316463101292750042271487192092686876340791020152158909727806439698670064314005622649139038578756328468859234847131241174857079209610845697254235153055870179764729186733923460085647806068705667872830052185304081318204914135443451473974449193041301483782487927337595680108947578523568856145630637694239004834480301959945193277824629157699684038047662449541287870466049046826663325413330650856875026145839098057205266860389743452335400824008521793745718358109601426043056163357611318818362870335329534872925686990421387064490649727550908154840181213965926288796862917790649792210916329190223592898002854652954925694428155911746584127335859261448625618948971582905516728279486694729160481100412748694492924598591955004325358118280777352290837417620820863477800405821951415091303534016789140395407951153378390682541387086975714216888108968596857732169322065963985549151686225597931990078621895612924147494841034948589700532941383362674387495999254639667226914977235198150142063484154045506424559396675824198784364021090689169982305212740804651321173806116870073515486331673574199043380552451791869575754091229781170906614139277683094805688635634119346357166594241728489300812709780272634881517999904530118555559678710734148169730329475932425976287749953807765221144638467862470214786287873363097689213392072511892161930068515844834269603292263854657963842227939720955182251050201327761175381601077563543719152669848914894843824428853639686716419360650016709704905026677668452078847924633422166499348957335707738361368972349089809641177566694223653057804461423233279908324911165885376217182207215328934535767951358071869604958066217534275985713049531830559999630678180014022461453438767361770613439238132000199522218351718065338114924206108420048437939394481090185688664046276551404624785347195202225646657230245502411037038282605366110108718251496008424932693076831411692173017884861530839255588200823918602409706970372716921325281362778324702685331671211591788551665679357307379099338019913063186468613526412524508920331750611417340225601941778134728636619898262051664815031790391014492848676445099320155857025984670629331290603074717618509038717031714566555095749181089234781935433350360134453891390244511859213868684141512535127394233099684854608559701643774458515735004538299825321506892700265004014717068605367612449846726781367587325065087282841327939935111565010520106318400502404806752448081232418017138781847327555901383353767393189421452907058937381687460974720771162027590532828626991243918681574407722234017267097191815324087027079930834899772683087668101969019450841807229548401114418093714695445435139865423807602329640848028235349698079030548210357386735568019324501289802133466185956816364789668643118882187223456143703251194989685288133964272403649227980142314630463631319150650221386510134788864947005800835945086848550857726495919812712338977399862453325487691359037360646799595119294353006882908540765385830404996253131707860125675230252442167730979185584372143625003826458226660582459326210330971972384404820087226196922775136129769673443387513101384169666774740391447471704694707935056298980977193710824764379913347431111852855320855396390541660283584348844159158773642497871715796361916265711228121601274542253108234441591277926189381712598800134489029588736913403901461083552966333362356681934068823147545747767735712635194107045932223840403810293182989838954856573071146968988924637377986043267092293691961366194840703929114672915269170632264605151485059597654236357126801146944303712684627067103069513506113023661118568878405186717228180748735534773068109868436822798673555999238158658577859147866411296235362462764264455216199575324314443155656554349177579000729142071471615329352878823664278083965306918706141480926571071608028519660896183400580991072585332547213702745498165486613167586169339261651660461555894841038060918383324555875372141997746440186812869465666714638429602114449548988762853179873456745985435861418913600211005805106951400794708291376149529961942308617985924075637382194352759506786654897691367732510103961112237124434986730178378882202181597607341913642016470746794188466504958631675592598259016004534394207123593239079804419314936197431191371840807187774082446097652216851057106452941838546694954162975997597098052801546567617177533178209572659064187009177762691102041517404415141421863356663762182313705495729151692365999419965504074157963218519598374792288851515861834511775302575756290693067044150166209873538030835980589086221013667747400656650724860105368119973936795417121522052764268905467925713904242424438147514793534094785000142300110549662289171248222239484167317588026786192985520864673426629207066223207426956083054396114819073487790652359472267699314076471930789122149772042625245466849967319611697615375950109901914212989870084275963097453819510848607899579002392177825234901155448957001621706238981236820686024763797701923286349393682860814710663845588745505345532798490711381748244137616554562819008153616542829404002103272110750846924205172751563473609356695644808551657507638960551435959587085669987871416424026870088357987205942619341550986962503507960088361038831002551261665492945837501162577059698440410811549027262781437630967117057949675129427021712127347570352574940843159439835266929715637203379136520479349192945283554658241945442267236131564146751190740600118470237709742482385815300873343320031217274827903880673627727044423946509995181835335262071022808119835885705248310852932713978674461564018848965639607721671569182377503192503221960669719073108061869748247713616186274959620097540266259118567996441388818427628379563160837543863639204613860871478562017263695552266404647871076530460805448934670535500743024826303535774406010379457947667993180578043410834168588122925954391661593251341610505289993379200881199043365373865532980645376564726788286873365002627424249957582746241451946629080237414783123022799325085758882564519094243596208937385774221012455723844048734380005934907610708183683685176938250952999641102325758087905579456587575023954766955841453112460365989041862730694129163718158183915078795007632781576692552561907352702395352113122111291741503639483747642897099752588233971640391609605452784435435613765566250511584446765352952018648648765726394816000059145847912276831540108636762004065223364466494860564808833261177248480533272669023885038441978240469280846185676560718300755847739018134610606597896618592657749797773124782909475883601052557960703809523429067623827855012988993059861213561250799829831259970987850903718515112860113298166692806941606864728232102529792881064624895193391854597807607054322769741328471908040101045206467269846692195565734942881751513996507127514348341730215188929071368050583292361752907321617408238806169457420204846969838098507401637780626064032511403890030143008704841588493432286372325618574268351297380496870600749982474606299267596058760478746742438095204209585023503999262833226617748023795915414726849197902377506859207189712493150102758416336871401148982260379515369100008184007852288457557353864292257999637629454384153387889802873688668918651538011417351032805471594902310506565731329677965360703694802639856256644511152742945545176372078799849381543174940993742753347541205009493633140586640310518268371356253736175980396215030714840808836035180867025010823173482806845181598432608894112829864412465808790625835562024686813336274518281614244271060925134041186210555414569183486702436529724163782180603057084716018062986099467886767577021539400030065628042013945089642877623203071001019881185503171561519913800273216417744927331731084325924021095769387777496405366011941859123794876559345055042542513706166803680604762110964079238044222970669360503263000225275287722089102200213250888603570739205056104292688885884354545003951448496393274436596363587352637598515948781712037650006100968339426177936494978594189973729978683196441321601677086228989711404473173061720916163979951132303367950601911403147278044834324246040224555845284708409268148222948130241376495851002473024074559530179798720624729482288323745557308374946717152379670369787504183689170017770283348242213647991634807896884894289134077347950321305644049591891563271911062536885451805009702026795798650435224606037011352682066196209323186023921952892661017179011971677794671290587759934885796955657606442126365239698857614517257372912777931363764496189976356714502341355984287325887515104844119148575937789142471788855345762359757422891224907575114252858531886229865780096401471142617353487845789705097129696101147381359448512765921683259232532755768559716108533173807559119740034066864064635239229439754471262626013360219287690167662350691491392774271681975647017657353826884376129814613439722495934611844589909464561075484121102453465722931404894434711215431442832070174195824299022560352743178090576133717693460548016095912064905995726709285642101010240276033460066718566773748614187962277983177088938147951075381794932502448638009921606002924284112395378816447158863445033027921362741598930289510406525573059768950727698894886435846619567378836528625131550407004898393424494103740618970558562972265825215401094609974690373200024359391715861666078918930369125598299937543025286599281790931561824177221992340877062688161815361763041322471601759226936781810049562918769653394080564300822584429178336945089071692506008039706035319222307020116904872865993700120183532762664046284426818780271857654732589851277017232254567697790020959913038772814718667308870427392214520557329284917748113781867638523997356594363421919225424632328403647357813575678307180280117101002077241972838587325438862581770206968792207473315689041219752989205781276646628197978972990991901817813923873158754185564983160184522303294414996966007581335474730405557446798238173416206437845088951478869411949527350215332782363857947785546145823908829265403531977584065534041842223040234709257625048942453522725376549593869000757424838010161351851364212729855720491158085848213455340811401457986962236196807803481746724294510677952945656455778749695291712131812760931302226812089185813121745893818508384853662050549787831672683929079111764906024481747610138089128654765985228879227627951461426438202825973920580093890884848275346622602301991705798716450835434090757773351518433250411645409098197315614583103751615422714925444635294529200712411880546422213309369575864483954989338788682250646242067173220575150659669203706500430183146957636678926383862450646007799011023378593132479971531601094622283745345925529197246251744754028706773402785235239536162372459291526633317583670068729990161378744754985309666395979335687561399478564917010867826700153393068444548932334477859103626392774479031480222445507104511674988816888714650830228062189056262399155785964043988514179718669546326248284634904823202457314343253122274852643911108418754544958450974431790429629983604798853433409950535629845813614144948029243198387348416071201164240932197833441264389380791519123859093957156681013524369058343076578805488508259209703337186686978503786861661666921441161573585423246790797131961298303578886142742866501429478740024111268324974548073036447307535777556595134289821861599221330930318828541775891718867596841491056078368224037532937052749758227349590437579733952424252188422054676725034021015927046542896959549292343536091575578939298047216573410740351968707566363548379057313617535230099894530400205515540838998535769172838504325058263927495510715567105925486583883667269293404785423962111460194970559993116923258904814255212863846429457440872343794213173466406030038215500975259524519110256948367690186632247265241736974236403237736886149186717317305338536945559987122654942370914251033291301419582951326241881598900977991256381054259540829927050118941177097501954707013760108138893004532259396334116078384973947527686166838383480889156651709034277507305744094477633195722928639348538670987367905991654261292941359523376545677347821654368246280894673494205350565028491282177264199438541895070549179475095722810194405522580367782948933303923086755765671653713343518853830920477550664816111322274372814961381983259343756017482801426609458535021408026737984191701946238306630541770162778772029031582645905224059374655569028633838568011887902980341295136459031922451418463687437948131540257705817545589981814715895874779490440046720428720818502141494259492958872238407692534603220443426476692851605136993619728837566251809397670190064571239391148052111501582218061598902683689759503827567315519724725505153391526630326364541301868111706055232486915030180327457956845993928905682152187764102661679458970092982588901648115808432826629348005948543548869332809858138156361023553352111636264191886576279235466691588150628113679788116425725446029666255607257392996057257799129273859580139968880315935485637597135198189095595416318643327481030579064006964114637456817562815136684533749654718864905811505951189977140777414503981752095577733048189702479040627163594533515229261757092053722975501181486306710396306819543527085316971650161021061189996134838911206159875153107651510449066702703979385588730229694725414944156444065928486252169775702408035202820814015461196977747128256455726861130760705768429055514233269184750313352357032053348739555512733083639861232480840879595095585430381095652241174874815916096265406770448709989576174192105943669769188188767016994930910357697249303703009464089107470401164279386509196464822342628860574140695767362808020173118858347909649373661557041528886845687975993830816448006821435797334228641005798836653352790739523156122821918228218191518810425289100026628680759121266703030513641042251704875627889881666769994718465370153700241725124398664280961243009654489004173509727549585901523636979957168882875781150846902623257032261989817647870657775456675065376221676944767738185142791081898663611562768150099317128579398169639555911399388666669961175515366223261033404239695664020077004521514040984523330867539969144645547466178427733406774407479161577676369248664843200996231446535642798410147958295996527353227181253956403665695019712241353046448919050991391106564536604303127595171020202695062599497735039001192652793250631486763932719892225141352754578513272293636194891534913194529410130110841160681311108012882755286680372552176335426676620274583582839157557098477931624788528995761359940413523755445062349240339692446982880133677989551938927664914322946121134210902431894159556255403599647532880047487992821146668651967104118899411838361088441173992383914500564963895534708040404484388874796466992859705621810893937801267077120524905006040576028893050080658454302927687146741600900502995244163439565059168474013275612880451097534981275820261976495428279780039128410179612690771588813632872165151971965295718600502524694928486166982114979531260837858414541511082070511122925532287552256308014837282980196365728714347279811223130526085306537050322878919509665394627513243683765405820644829843338966053841442030343465492622366901159606807711372177170498206244618989337833093597348720884759172088954220759151943160468676840451683660039156307333309227762006516168516695721127328127018117290917056898611351680748793432925200921657857048854753617028833369750771185631950831115222036011857337753168153545872636283857862233839664048793361918559276856680631388186250238670035210946970896787982435779125815270775446582776881634751888210651363482632926894921674524998073005516670131436369832625451774743424984610265244768084569154137678476409369917147878665995631511297154874503095652900625710604009490248240295649962020626224452155432362892285037220589684861727004752859283121236505889144939720223037186516502646359424749623162321131352551851959980948744960245444245124819736143510299019189642774954203006358974919375102986940257610331414107169885156059770310335273203618890572233925391286024439278323382270746572430840087868834707601254940735210648432086236631126399185752093380328961245175110071105793927184574206243492767447787847540055757307752046195604590091598506094150908574860592382422902188949544864453841701564337918625962071201794741969517504582543004047507551893487991207177785497223122036955839488726296786633379818915133754501854397161265747863466575845523255738307358141514243866259488738187140690426294447956338770705866490333352033238237168421047818443376903053274282005704858398317994586228362736723593853093114790782909627162819436415683869363971262325801854323379868044180275878587920495327258240783647776521437464794360427451691811915464185350734587057847756524745762616432036799819539455473546136194674948050904074570808854999861828980357272058684437933322425216190421719426529791638084650163344917737472420530781305253141796476853497249824677963161318717990585763193392292354308751495562603531865679310720112703668665827399356894643547543974005382937633300603283881860805423094564024239849487696518277856664045466084415619083556751974128886253175801609371581832924525135772716787617576570102039234841365648396132214585500687712126129223980119014113117328958820155816244167380813090639936450282985580745144187074176856689147016709829201024801517992566757076166873927616413320000728279409640543607804356480850578862967601844681099301569309875279998822769467434690189084122292355941609234234824405419162583405648671418428153878157715545868406538855025469756074443636872627694328073736210347135091553661236656170213914256550192438413026903476620801450299220102620363531693167229995845845483649604715669704375192947068902101332824529738567860022113852086435920564250962571329920919576022679019508931492502932195937819699714452861558872467242965777149631318584667021302627175212185414697307838504207502250462955372763543444850315015009894913023266871118572208795693779875412774547317302308520514657903085995717876798432256655377627643336207269871680478897553477577271780769286103905141586940109339823282812376559177336455113561464630694265965796253263968694462887186303784346763655891006132356760713571091063693350064220119389417711450595306714209606330723490920809366759811404080147249999405456988460946343725318120678555319943172470304761496861310054324449606653742687683379212748452617904938907775259542378091860033187025553216881604178320088491212207363354164951050117007628209210383500488800902383099624518554393703897456973339349543424363032196883353248324316254221113812785547691763941555400291574544147091019741790355190780541784360781565752209094585512697982403296569399083688103469746598565997316467469454256253525683947400219893596294067543831971222808167269510237925926391309110577616452717911638654142320979546218184051499947793773742907203901409948405921019204351017443712379560157747503867922929675369277567090486132794315636232042024225397678827579542409863335441969319015447370877040453926837896010609487745543836088934899482450472466690540058955899289348194382166315678983081320623795862127300507330780706978874185461398492935027416400834523765683963179435067823675678913385635700850135945059900456813861499712499499242513318157230038478039370556766012069219258462822888138958868826548572578641486877433141187955688258176733811364246757915848984089711223947008749529604817242149913426322030410376469860540575631222430189701297880360395463026375128882090836733204636870265556210523547206046349146101722556002073536443395495156940931618882761925552314343430045254673955428714895379454430662473630975103582888916148505041472059483242450207893010454223839364608689804803367317804671561128913761698015562994392853272735561568210442577822080658966666294618286891407683950130809856748924039151117921116765628740595688420066151162027553743018945141726872987050297005702350767917812816809893672102609591859339368682009603436897207380585850994766356286933722526610947351276907017066511719005791983902169286686693043643111486557651888418341393004718780338907802204928299167840372455527087456890665223047588531541374717180310918255306781536169890754469987687824870551581972044058616604482618504281673386530363226070176296510139106480586662411242398955693483552319222192127955248493727424802442058238432046654500268411066196746325053940549643771334148229161927479920511537329033409967114612011314484195101206838456451790855400930884606140907537031853648957614607726110213303737415625855746897231117803912952007300649281496100417310131459668155479444126698875772842042402770094278701986488199332896176579014447949335913369222937956959444587173012832401588911453241142906172733331756850993661672290085602718559668215705273964598206916366784774660086107288753461608349269705093466181290480832588954356722941187733753710919344955355198710678727783658891356754799931321267100342202982298528306333813296268422219609924447017070798825771251497606283125573873848114128582109510815588520648257689171055630771038100764050205035468731120374253805662973337531046833750202361073366994785383437024073325880487560722653102259141872017662354334781998427016254109619888375866297446304126122360974976112524253591361793930077978688954303287691192100088612950321107603915388252878152618218520299192460784527768822008114856192037546742252770421885732788908123665947630598502632748188251847412549347283340546332029773744552928567505887248146102295965660266976132524406455948964905360103832459137181806130381103241510060138639059154275719249585098906690121689738067239333745563271624301973057068199435074157643589702377054133090202703330078970608245916194593662753537488875585901419513861082391200082909494662504608864835571439557931168404404421915227307455144963948817107343421974428548091732419454077653909061771463195683930551983578197050145406200683663740610304811987251599484871210170861385959985543722054087055368839053325707226431197654431074502240659166057297094191910778314130999877858457777399163458172209741124792280399420400093055496725518071912599376073104610877344262248895085813577462891578964682925995862460360234794472674473346150459569738007324535599497026216256890634635902751408051860710872577351120203782896246638794556354666915864024099371846332604329765263201448524813510496575890663570559477590739077069518169495084242302600163478538831102832583044786806170766292119617468904358450912730665158478405771003596937547631699890638129659086405412733073852772640764683819114066056608866573825519609014989865434337190349032615437335671705776847944728177016908632683617185649323029839706360215168854984732483915734812554717901556283449765864382679817180398431925779071360052428019579251044676021543937379460404591707290549927837742430095896940597935844362955934710100275219056049785464806307125759257125580414358858539324400581757607134334222238123505036175124984633308570907810076999764263290665970570253119327713599754105374709085379299938589160124615004614540782411185253255481405218680473135092659478067755867276204263013303618745159544875450665995378111266426216025333197703445022678014539170436790280675329518735831983212422622968155248929839354315396563836577970247150909166374911238404410720909639238294055362288460819601747902292001786385878664348949815006559185003876651161423795837901633471817120035840928546608883636827839192971164547034713208870597662020924118842054776338971892810830318452766447385728576487198000480603139764700949541743603888266363767632620392516847824999901567362324866898584129003212826355712340489876149074584081483543776333158403404191299390208386858089266348404762532922655256609517851411405657313010618478695276970300872181836616699794315773901980049564518107831997043959089020456682149335813367281630004000313366430794257908934261468009261743617673090339143617726563954959470078204717370125911340875677508304954873841030424937456771831617201361920189607278783719890821718334598054826753481008276250004097434669327095076671361852158389178658595282095040208740714134469987633101386655219304267120520492770578920890035527001391693225842420976153717176283653488024237670252661333962312217810421793522421431385052481776413820244115591225656775894902077906168662199235081437853112598751087222063274116030304467278407638075008074491693600126300152794030360678578337404066682776470610283387851033974654565572534961377619029581649390283127696693914943100390526749618221446995027923250401726521380121092091297956807192348757029555861570858356305616193342254067627782808502778596705061051220528205709700708670933232194597123962211927543842645889286453915096130527894222482302182700721205604208971139688894877128592755602873989108450492478381623934728659273949399452484685775357785933718820315059792818860034588169732884158234720910439307843223851356236566493555936146015928845774432693396798491753639539837173663654361991572561086962834526800900373952798334890930285641660116257518290879883435027188741047933687004098226363096345928934266364535882590550219374918323558757969374851302655296851379861368737379792144234797703717870617202181659172042779875124908807790401204944332184635026725718495843635513360048467726453847126042296975486329949008252744108324675135980378388777824365392702455614255263220103778187826173535709488676631831511206324772678263227071632949260510579389565813695949267887974047731786147486264664040670536098875184863337384579425282569503042372957459084279258741472890092709057313934379845847134439383033857886313431582070124350709184107099684956076422440926562149772329051074681909960572566479746052522033226837731794896559973358420351348625476121981083270800755225462140574026506212025066122643402309268378296541696634245002617932663532990955881690528120345459178142020846975884093317026005697959349030253674281394401106248510055464700958435447785591457716893729352418143552171282827901796195441482633298944115659680038164477361842312749871286120584499915629042777651749748215640372938849400719494559333063975005252677010870012153389730623390412504838961473341468355003227662369554815395103246664510109447152686496500460222690755386052962590852972621442187308281316328781196280971564867168094367812140678395836037142767072128957062318627601328103300617162030817210503350882662466182258507660916344236526612379481879882972126818410007132298225151909652166640933927155689204247057647990127526291534553877831572789350268921533344682531633273072024968580213792269185850139029226930070350171391482354486099512445663687150578621334507415604364797114897401532487718399457406007812125812779371886211605101151317431632115298772872015261949622388510501905750446358409286751679895574142727703433037343594126084517514855109184345756201542729995498146390705107943125912244770862352253519742613768280491584462227259886967994311632623783319047514488172787734013871045281044393053733140727783176330591218005692803435373650514958119940357818904239907529129160598246752191188320650916917107011861120674371714737386242660487947477457257365742579528970014575385770628838104217359941001669868972010519069180471898320545914012468004803363681130391775851755093021924034892773863286035425218772499632405887585952113595854801478198294379109622621987289008775871750983711650899483346216685580622949939797878599929606056102868936090909164824633237831712621221842397000932788400249599922757690084877674076203412104339192334693701470465623142896131036512888755150375545648191632282608663256225164859471178320495603855346101425746060803353184971845816321901576028014164668948678616699259310393081712938123621954900362526836617619113325427108273223479199382514936200804451956555035132111520152529066915423555533882492920320370703582941264389224932148632910352599646516146251814505148865893414749470765150275582335685814859705262760775438822154706939278678954416596282894129696769935796203277178066608656481985917647729319521564984493022904161468878704035831666429248266567382228413942502757803998743214339474530526072048909177034792280992920074837528689380370519291301450456722127950872782293884543853776687137298882298587108512235035934862439747802908537043148437694387595007677350952250563611266671351109863605150114807184728849429885368269606342358109352321589034137789995524193613566499451289426041574682429247893379991444055970046423424541209591056770050075337406933095463011314959003347633832952029229028298979489764223951462528714139459417196883914641358245146369198242903085282236683546416305688353188086586252706208858879738822573095711237218221178059784067395201197798289821715750275798608085770175470635627885843324767907515663245638086448911662884715032253685278659437312502495300647962380920157711882448461941894182429415829487534633802071421186532298362755789647972301481724146881960051477374923713910111623528271064830754023549293759060772279597870135312017864733236560648653182999663859150029307690540913481289572280610382726665205243647594464400746237442025323829761897153123988078368900811601443921541431862917990423972165746929964781181864553617718555988548248958656019056534451683605223453419961722125994973653959849839108612850377536892156278091484893486047885553634647609213505119254491579010621958136889407217417368231625974306871953533696940663882849078864686708112753927096695288741125904755755140810139948900049420539870638630371792605885067535036298163779196664985702438379445242599324247644446346145730471962819900502062133647904980796646994508665161298209462460180571561440836821826569172987883799556017032006594634294275004101027336484909060821744072060352880919216083688296626644588592889790455282416926226907870210806420340853622529631256457995695452501576522393004233106688725336435306173061867914583364891987469760100398535625391361169923065544717103623046544621654444864879201985971669399632495189022063719972595693139867412211151922853441408088157625006957130196160607614801800713232557111576386542239378176892123426694368119979868010706084143511360121484019520116318842950701161993612814532929260149762008797141942255744164806529379121677553486455085935971727369844070322123109776972788104463758078972141420849080047262193259137879512180015748041874525676147423184928958286716589807030663842827356866500351450050036066047922178910060126416369162510420105326951286098443125057963170679697676276985492058109286579986528334814188551487813187590572204369497585481464487018534459118931902144921382500945896289914422906915219932855061340725582213534615232647126839125658120944329913428026154341570113849516369638781482225210190061009676247078314459689778511977432593104311850379264599363898090592085423891171665988704795451151937165268066383545959855830580727665716976169563582877680090493713196362393082090668545575159569576157474231605259748360581280374345302651647890400882835251317478982427199812325006524234063825358541766987838617404260918090683927347734926365012363130762610566457475524219539826221768590093026761105128166160359045679580448969961441552474891739560610451493976097195274618140439076359519059121193107347453849360043644810479731931777431755739455529729522569999770052693984294559132769207563301623380817279509931998183881493559231028521149862186212463380798910559668172868684519990457568525193862254883618719254285855784412106916786884896898854963870101876021395097020382855812277449595942635592239800392003621233497625206030850523761088049560132158347596183369393623464037702445454556885265127758995350835192237934800320112149165600757110615385105028634122367158401575972610267203217416333999462643074408688633147699144897675351076325364025301932343408092368182595584136722193987881796970965187488504018727824483226199171344473911467222672714983749405078375951949177599188643500131289222352724521160239396305069797105915347854031307372102774888901303953377147900801880018820581369461358195086175352408125019972973689155730837036283899156577551088312999413204065623507810279814831431998826602524443782481504378556325763096931956010409318031922078547579437082796015615469285357241448433948359594874780163036630767282901963800708369121177153905959155769087335241149059568491856793477587926731961539753494534650311645347823996994195753310388603805256686174198706656600559109220952819409314842848272321300296469117237861258131145769879859136632203068499659795645918397091408081337602885408203781917587398661512567237007915588444979680729455519980965509706003684458496209118640924643844440410330532515577220274688544511036508225404063574175015731710051797215568021507352488055012746583378925682989533268170373987603085608536540566504725126421482617075727406423622816172031944463887129003348579679523721347051420875025029419525114319589040722889533845813642640264380698867638356158298552254419683625543149306726671074814398614926848642089535236756297692345360050776884549657360032117184583393208626717609618434299954184020849100360172106225070310067414587220871488021123601785315833186449370450842669376349916377714453347838769954156270476927647857091932961435610012984389894418463092019413311973160376479046062431543212909278687898236391055699608092802319717921240304628465423007483160584876616330146585372282909881489853742971057911161004880636338390913688398287746099588687183829703827060473207753511351946754856457956786165773743763447147051582636984904094972210754220729982676502975187612305095952734965443109957397503227883079146676136193368117097381473966973974765074303943060583283862402794009639530791388967195762465219544621608565042722058399262289239349127326384957722972152816392633531612034770935994809164781378630423678247193827528295531685992161970632818327879868713782182056830429146776699343473276996867142939546379852140740380835711209985003425248012268625604597991039970601655458108313288701202513913909192073848180334510229384264456697042418586553157356247703339446079332352917175826656005798637065301847394560609278090704883890368765178169547951338104020911634699084787204593442643855729394494161373196685425093464534517200563257661682562690209942364238360360017581195674110660226684522102019795623202906295459565951354681917865618375756552422257629586197409012247815081744204649159468345510590250095973352708487777387027777879781046153229343198538906184940551817989223425889645908786082568812008877230609925557520804689902269282655328204817994666166737708030566940709490969011703624682165123954914899542106603874725586007362420762717529666061437233415574775548974050149249034626410011175262798998901964642078793426175228753791609022103631035337623171131071905678871101522983869531302464651442345784430724916519325514868442988304106677466537355565774338554051339368097602767776644559230705934148025942144465793745971393127235620392207640979718144574602302441241121825061786083848595417473221654369965983674559497979023436195201461877429048169700306672877236068563109915199274497370648435146425043540109589982697734304435983150323034982480091039456326538604873201240191557579168264448435355569055363549462413534882599009899242046137184849360021148976862574814533721091808215336439934152915645858038305549681108558129790559834822573284512848084126966737497281838119051597613996197963665542156224358225460966629833602793982370230848212068226733937286984462666155866233602491969108320692402194862364139356378403656413568521852662523896941122961397687817035143537404391400085154300741302444433017292349055913072635950898524894039097583557922933812632148119315401947313529374375416776819553020589650981437181864063282807012420593740350684122074876281018400924077516117847515412886100354758109897479334991050030467098098011339506865177336346143259496443438875824368585742044666226168014420766307326684196791669531751073446908560053657584097381142676306367252662080697544247171702916693300331544382131748905214576383314963575946447522244301064400894865759644230496128586187702956093649828290661235015413642513280360384931373762475980010753419951524435133261628391949022063517096559400887889725584931012131419785749710790204971952472945445863636508369552914253596247645601317756567997539530875546917371927500229619374078221279239547330378024015037938849419891512577234696514394459267485214624646981252090595990238419430723573000966150920860591311285572691506712947799930769472415295214304560320628259831239680276891919694099031645523022354317425367793956544082618660861961006782112224457205087408528943255049026773206371330869328955726986987929390770828502649925671751433901666166603465975993932507979108927277331542480379516355371153561581040230383855215840962855505093288508663814701213435550271414109047508516014626835531612276786306692944150248498391751874427060260942071458948152117750024645286433361827689003072181125997952663952758583726777641333475768658655387899541357304206248934231286145313766250893617708542797610487495953866227807445199117663547418044132085938181098257257086266227257587966342825778976011665091556726252398373061575339061958459079254269938599041950792131145648806961352060072966791733691508479464170095306829320587757429330377356425512679522474923454352308858957562014312949810308332981392322151687245470613460796111261315033344772265637206106121587806262872496122515762612459049953081066567357320068745144118854571036365005789524572429275344303337528810289131685821062197504376568133542525500623941478843832105198255203897125126500639757399040646032058245363967580946723638214796872504096676277505090422331050570085482633455238070699541355923761250194854387873300950978346724372683022571861590041891939413179688991251519440122356235694375282189121293997231655275963588527158628171226741520380174059105934518963018380818654468165120223627967514255007811972793923941788978131866846855457806852662231757865927651168667065259499396594007900294321741963046838513949626371525430021852598067563387151024882525221282358666844331033888990467071201289535763117964013330456328572295361992133106494854404423096951602557218438518909516627999094200332864565827388487386831997603278998100692592986637005019963365641873597039462756773269432049244759662350126491578646300684357254876433130808361166863536683911161225402325216779008255435465246619123888235208899081505620403402113382613344897044220895244627722113089042870595401784456584937754836156475182614787588761171108392536431392914219165782871021454770301249764698621410504683967189587023991998989925365727478844858060949627932469655019468950763908006943830471417026115418057886667665114959126742259881616948253516086961515137109592489367805822202370520335086517530193788069646996322116725602967502229200371004473364741629634240994090538431978183288383917445112002525455823499820519224654718427868170431105939551877908627025104112799252302126418928600019697978948683017921541687819385782836205499283192919656930662482476068001260661931320115946118573389331762840532470868564103872911380978970256653036475183070336776688636655335038805561134628311639949988873872573101708188597183633885896395917926999829961944636435518880839287828351676865286684907782340878228298269530286744637836573384971596803770453783236902114648580481618345557420616657395160112483834030913569902273931995722254560396521359575915393453377724329969993425631592043529388035866481751393103733358158788444927972464175748884285189834874247537850337692739435803374068924149332668573154833826705564251078435425384818619904292126546255116661243320040469334522070199759716062958665756550997833664872664526728607637160455959355781936013898004269876835715041598845896184074571500709201202303822849375894603042796388937578316546066022806253251320844496529670794707768585841624705950305040658230093336755783252475552072102959206229696400377087911864031692261054692677140277154751204463474180138350295239685307166422103466085883406607655273438200891664841620832128990386059073349714262165835266360079635417002653038148012785676658631347062709349121178391366929854328500070434978596147618321217703558846420669159951530674464638069347035165365535948067655239608678445298992386769348275167930854475576833325979342930774342918201287008262487829257316439408607633978790610290940519846684386614714729403973337495332955186218050316217229688817579426542133460942352097075558180570129617687223267446950217363819754092824979687927040753005072078559750855461270000836687009738689745504737987699127672881006741551153858918511300917779660399787953181540922194315321039387271774092585781921644467449429632379774714326819448430332970689074485234623851493640299848308096951991602889626730536740478587273150843091926412872724939644554049187601355527164188319939715920460764452570296765004943942081197415236238404765361664832652376236987943751107979991171511977861892290386861285291663275010701975461958129268307591019390936816571664264214728366846144316594756764313590987315713940373866962706075634045514682115473514880692481158881865083073645496967093569963472160603084135969624365431587949761921826536185977118453748892669550217190380638593179919098681848458283245267111598959213522897399545370478034248351572275964157873354864065497708581389268219156691492428449713720353595655858232495364692849237088073315032872789734729354908973429658378637354739667159959800992412678384366127988301629765579451749255418377434371802735348395520533266226082103232384244934903105712964573491890167253467882737686443817188534456944203980300270137708347794919197599497812898722405242949015543754602453286669784038925653199966131276505754410174880472993296906594824964303301288748929348335253200803544130804862808683384072120147890236612333647236358030756861968445343358006372468517923072423396599271277224250935382104939249423058479459726736157154776935565169220465426200135219087083367546417582165073226565667769363758870328657359512208199164480500966175791490141064964382559140931930225446491539049063482238578698122509358115356148056305285867575447281243238859863197005450955329715110651519228237632760726092212992831621228283845912544096208223200220797016875163962558368744046615425787653022082927451076830683740592501682601392330718586777907715062265728134389425808145035310065533845412735726561819116331092506100124220645778965848450091535419618257260232607977134941244342959354788975141454688978189013801431061147897310520321555530257789728110665378482123968022238097662373574691462406411788269523851336682537381255186577786948752954398937441632413261080357916038780092760361332368810451008576226907411095178254933265713678900546806578868420142446755690214285919840353113192146873956611958433582079777159932437026165844971174120879897340313703527339930786688980341588725609156867026462883383069457985099136533099794557548009136828555875474033102782316321566887717657488189060217042647000059376203700205851417443362030932126217482316748107743545809044753075703436377540204119562742181301405188883052301724657926904391788378952907588243059845891582770018554140960508523289394390372824630895827903500730749864144840928540435839897346867929411525698639190596960190702273533217158343805763761308090287805636387503177300405119972582975173754859992032881455219983193862343789256044645777916966966167914203781474494728953381462828626317278600416186205379307412544052041929113345435927076796725327655568992943351169916805708263311681486485901194399288221614618800388717626621358986327477512005153322825883246576704163974266301283004227198204378494819713085638007127970434965332543834787953606030454720802600532064162852193473240827417226075471720016983530302353907982123938966030533041854317379408964695016580686333947106628084440404374642744865259650522202840232363743393476725943975028152985060127941336527806319537374147350647286416075092839741570402788304849597168166859788160356707409921664136597990959952068186716704336131093239769652980415596613946233509595834681261606959778096742991147840692090978569794688588364801080394122490758127991259229146130511207538985678582479988926004736218801315625757914047437571533362415592489282323669071861192276988191308428764209892190739303905803861768306261605133416323610079179121787899842818235722874761314600827634037418115625247358679590671271886785658722723901685887376086685527131549725852378829214915333890390317543774272329660113740173254974796117241909668558912683287233178177022724341914618775799060764244194584021101674243314804586698391460925526507049559788886030279296089690432961076882559560683460499405888031441738008319829760491533918754953697047418808456362647834492136171190605378858776718761086092614215844433070830474616711971930452704867429003363717225757343236315437424427535552694261079943929779156822525222954391933013257225525184369225921856801435889436655924581199265143063375167271692633063795970389192064692295451708775013213295554976170216811051340315161142612398113726699033635525235473444766822702827703962168760890874970413796844549785127386330926059905912699445114617900195951140580310479700154077517153242619621633027977138208219487373690533644097088632744323591521387180161004908535599027236501066204010917870099867575924249142110571823914753607735569274718768813793274114100240640687009266018380981096648125445852257617494438246588031393027272383842418480412208291485500587979998335410735022960735003487429227346882687468304471999564240974433880923085465275224117876889168125890383227413664151816262997321893496565981953449005843135975673631072492492892478959740229212289254236019845364746759004347088746285964641335536771623945693056221306161007515169371589359238960476639714392987583087251406636735241829600709213905879839189380932772531133876914413363099671087303381269374762708429543911923384907291577675821017894979356231271407241306371144437114213070703615743804494716099363026846696437938888423000377566244796558359865632348838455670612176145725996252326223624589296508182783076902266537891522893784833485660923343369828053602560642962703701247271670052445241445341424546182138092043203932309299212804916506411357232900906472728544042868272164206765408418556020135044450279674507205339243109896195233803983032630123821149789219530298914649869161863127460377008424873940083720763464004633021660234723852624620485188754255402962764648416316736400739989974979095891047997438658844791249249297030593173260719027873797444141671171117575130743527668853980657659343486426775771362557239505764970516695390981595788818336301455422944691967883220550027897031751042412135234452302362225051177574681609306508403803501257433396418531592726693502555505981532757600307393208367697345586256963529240937079189307917758623882403430728561398971910718729043136624480127658242190353047178575987601027806476516239796390879982618350323717173138802382288889453442334102596484453703990227923021958701959158181827624004311090219808598186629414136058413093383201065056685022165881146903428370678572624822164460642832497473642945525263867976231305534526397723483745286279198542097290807494175420612654027352609276300567792695811834823099862179463134244253055126083591576465687857045953184103844276077263902993447433371849254460836874885844508784475835843197976481496652323013924781349187856712631996155923477882161433575248890483417003453283256844367882970341858520686929422726260805609262970117385758364263617088655795602017188206525484639844308040300649143953604973878348111765001614590145677957188957020001755376704594819526774990572975935508024958549222559069056295846245011586384330740021049139758297607764724069508466908232701729013887929783679712653807451622143932447031279974202332552096924583567204061268135993636976263873687180241175374182878884272063332907612169629916708234208906785944853024103298655348046603318520721084435018052852805744002534035636172810785370654079396248602905118661489105760942167181633692289555025626772380946696450551928250524162542227566437126242102962322368785401878658166601060142108278044299182145409877729913900565282572187230641621858596833636028270290088514778269969517543394697959323496761049385169810551885424410218438888858299449496927187898654877173327723941026521885379598575977563682020204576601705590957569410718181810584572550635910652074077247781814683789384342292859930872574158719083958016201760614255672410435398216186714656566394379987359524272399625777077412005331094737813164694265893647012729789566614464354541579657520544485257120059676567609384085937539743433306328176858752606360163683150675185652603391237178222633139614816662919194124658938346172583180655090049046590498132293536818718927923589691806384435193716101190626704298220742610637887028158276463614151313146745927308495916641536338850375253205943750495469673682867557953781600951297660394321191690501129511536348845096211407510896798483939586919243641649076550395693794054368208942050265775256726206588258115257907111446210830558011799436391596818803458285696442404015665917663198063397540202210809339589911125140482162963357075065317865675132015486169206339642813551200408459005396088939453876160350878601653977524313360783233876966335958908886281472280687322635858752394454370719475222155426893097405413895284292559737398761017726707541301601916338227500333611537350313822527459239116819820153563152950156091173656666454285242531973057384678166372053318502377378906096186426963698271969626686915108542813733567384950985571663505581342250988019040233256862791388473505516389234536962970754703573163900651258366080298390577161555546648454644992938369661632033979128017038252743756676346626470078492562721043240597047038644621932824003096809575114234568582156425193963179026766525456675386616809052656235769346360034911981756508074535596621050851856426665319452020084437899678429398381082822581875003796616676303332724589970538297709497884758019137754654211755375038271251450839648598721339070718325486960206930244583883445254879527262677388865545766920166152209201437813770523465294306062794782364955402461569272865185411445441025067728283368008654117925912124189876326931106615565572696926304260736946921894264669806188997322846652170535292874835845678791231023241583016324322021602612444719047592018046832495618442301390080432724588369704183088378806013873234288461943311303383385803566578031880046120289576482140561719653715752334329410469744882621498695206313258422029024688432832290035247400701381463637133281153977278184251569846204219478301553912152312643398547913589859421681634964032666377404921966151088036861682818246731664514297627784776236958305875098119828236801292051764568839655737633993219092201792394921728071591023840741712025894311021774920692008078473610554488006047923804710826299791580917260900209670299553568977258102703819526586572289651516359460407360593643482794698206391870111375918017984602382457674750952452619966321502707778756972566140268800295117069710799439442787922479257264714764287207492782873714334408564454017545763340250054573468038444685520250215357781028083309498366607373873613215340459315865877771792652913242373912223231420693926355823954832688922584304142298130195269638272291330574633153529829239376818888175408988131601010559226210585996674258260607467694380015118557255768293003163823811950467156727979035270053198667841398954227834320709105533685549086697730538702158117156552684327744923246168275998680803000167630972213227562450986258571260654004454428685293479964265523068026230030260367985990428978151676662982072209236146168801220118796214778646713241146579360119793706802467614113992462579763551081281703783276968351576319550184843940226377724907037467361409960341833663845285882491849781018073022109731835469067114784351673083191178380045274578167692959869177948639231081381321480811675356407105799089792260227060262623252856009066187426932339689580973125101037219951289183305958324055341405091520084412545008316227137776865780958144216425374535650633229078018711587086780758429412014404926784668676333214029919298890503677058964449017678901529230804585504006887238509307483740558129693648112399161090173670310228709014773052565527038022943572682290685166009872585064752379917401352927711523527997505940624756981488912056893506086744868068482438253097015798119306208712382191346030252796073144487759339798070776756527151428907912963042946040390360832263724804024054170464194325962418374572452286266602375158222550638475333408797659464485828773839635238157167081768305750966541863427725122238590117360036866075724273316183526887637315883906470450218122149854551709068253173163840176658085704390918116161192879591683078178107757747579924055424343624679306874001008304423846611991920358108517093804657470820031928706302479718156887140027036653043252181202846234751538931528298985681278146765812623575133713874026351008033608040606108461411819725768596065338793764066301345573155080831665592921558144616372217561316829700420348670345370317068515691909593491184100663283667316381566248798953626942903360941187453580594176875383687618913291244767961983491653267904461744822554757587390446599343251555108145719717327882552952941086637331640463602383575751050230228665884902652176567588639668595119136131422963494272590379508031281930672609338764939106029981983154625547637786736769150850327695379863278547450506571722318931031095823790775080766092657380470157171345693063183984836882647809353340574169416805123778926205966879692648071506279663257928130904201740634581054393509681291630754711914149771901504794912554327101117076866222829785313737953237936852395553175103223146659403907516409780192306028148612407379646813366719599279200919816913038901347582945625189901547615137851207538019997358018969128180237273450833592178289416486508226540940961214515415116050715717889887237879496497295405956086060458441269231390439618957067209697160313699927355412264855727956086865703994811661432799788001364166730943215754336264057260306058676424816243379770569198635721677042216596526208767702285665112968644947277153511462868916170575141798446294920911546170377811498307033638536234044478436031186366463936579198994569713519687821953875524288274582090023440691850649454150869898767355857977375932922593837588766838786574804173712926785241161112269335022259866596928428444390125569320101855119568634541434515990416550758930714222280836971859572250457510628945995933916689340561554162387283291116920794053191104712105683613769350432250221193291651873174828754287442591031680666655155617589118049405988725433619975484954876869071299939032779760562980592011854149662959300888656363463644086425976612754703127187832518723650415865746850791072995785840243283867072131025067571926383039499840614276084466687259037186246169106975639569863906270868019918472462864070798747195249658670762880967949421094164961002376055604790714315993662998113306089137841709836520640878985558638434057745473014372717730180124601175686252628658146140140725799006894495895847562887292965261814845462200724029363846815142649487527641280261970171702920405946102149346123124603764684198270485365580017549785637524091904455792021018970395790963368593407233155105614091491379991671688405765664193227578583613717308847642882132274022634293391963107662373668683608063755135100518771371177224516610823151726455937720109964379436674065227534273194866407126860388295615883284808286087512977465074673826912256433412563348012350448684201799954204378150962781093303675538084950342232398972257562590846571027195158469878362247768519506803484197607478491906365967296587855099883074402048405657529031000204583149520356190070541876995234667282080085852267168457652960642625151364097138932899037589577020285927910994466614911399083231916315475543732585018215693619408475254377897176233859761951386895508490086014840261711425431950322420556365220029704473777692032225815083332982626969765098443127156286604249396881485096602295130544030783189154664217293726382662356157554744571018175886416291474353639986647966792050182471596931003236429166499163937582037085793409925702078751786018433934294533973860410784143735947838739881790350651916857035488660566463197910207301806697321968041296627643816946039319035304187067633915448365268548667865160078831466695735724779019151097964467556023859983043859118330869104793725989556290948262845239820254685356857881962453333058321573631019626373257585107784546284809079496035705870138506086282944012376056527875404882024338354344997195783145554701346577527269023466248560850410239742463955191940006398465062545240300857037490424013476186054876256899672047574086011576804529303549078148278922730145940474919933660610654024540041410412569115928776065365711128167980460296831185783294714431738854785794757074623952955505624078885988530250066852108717871185566853043878805965164215737541691625963845819142080227677555161367795894907795202624614243605580458556428096517236152276935015579338400939986251187393757979487285210645003168734906517932742785624334492862753170383764140009005474127197242665011067620530252096405182328563273744115192783695979610394298089404059416328469625064297163785817501157714185281354574892124710107731318172243413033055516436585963444753974088000417278641117564637633032208674431646925736586649712206508084298428323364777816429986684344358610730351867976923770652126315848223202746226417778579616405312568432720767491722503229262355585023544330486606361833003538978200291800209832328420227186501058385183969349241475339197375060884864807052860488993602831148752042583804167403282584207953583837794001050447341158222092870431818561625096772574844305562806678389309940599232852031744572901651163620214725592661939601954403085664959881932629502196956820099975965351136457210157000301547791026456865194645079677226360889591280805043042816917316078655207262865014100500901256364021259844882042486164119393664971324853714940077116216723241417576933331590665553079484873715949564167294129058924154643763776374557317744261640051536184780637191031775547430214262290098132554439962389766172617626658958160222163490346939295541998834241792961002128704478601452611383549063472182792862812725153547968003196321733194871012288718968344118826679301673127551742030494224370232760636641100146473864233509072553862973964383712767994110426069759026239441921752802834236374232272274427703853884949729785164796238263585467870782771948197864192873820425352552893289698269366040495308837542311649760978748990292251576930369838954914966215119002359144734576246129405829420653239608569127504226677538211431408101209330901853458077904799873420429578486237528089247378611000204956120565135500645339612502407303900497226382239690442725823325112018956730103846832141050880155804303632861677399386553940460800223290644514757821014374529506141168858989920207867504417074452183887430169443024006935056222272814063457173459250183087327262519856538612532757353924189726908235919532998479719855246089889489599513347058412718391370460647538315600764882948497690775336270460359101153331991177133495280208704801195417020299869326165781214695628295719254551876816386181986612147701411689252514130907937659952475956454277797961875306775494075057263282930293159312214882905390167171245865785115283924655274280569581900265598865798438132312768253646625608723860579600419867621398399012246000030285872827277499199592395729755172302187503061753464177498043650207371120562685206093659364874187863850503552824866856041031713613610736057272704692888298719928996464960415491910102958484129629292043968487323360752854734067628393894407352957520277837815935625357972267475291233290669034888404696788378988094232720769792721171666605929235828148443043327326268582209659679817031390699621221411750037547348761097225989538003492756532261273417144805751945838620092767724125122454829971877255464530518376054904288001524222343131609319726827952935021441372011414414902629607292836422493671212481470063873763524777567122779570175289493463510536542809467881245218494605162706277069825412172485377593993096905095332682484018484587710272810331895882327196405032498120556706224015152798983484546660036672005700510845139937283240888597313924083797936479925199038841193045385351668334655225522774788348430628393112440223289461383739003653132109888161116427836739525364968092845403605030246932107497705974874242117744180042824951084227090327295866498187118734014594655063644698254124364043345858046495321603729658780756703111674731329751233989335972347963453591576363283421963601775945327388052006064872949453016273838929529672230683628780831652226514263393637958270652244085256630510866930309547605800149142631405473477289193676848562250342280834534809648661195583860670107784713321425447399722550145695593727875011600184385141042151847874010149038613698475326442079481082815215490030265844721368106249552776537376905142703382820944746558500346253078961998880829384090097274604976967987361023923880687440067661274420426417917358977694871792407950140313959263518348576233581018662461602977926551947186263078881196445618712446177365607077152705969780440821301973708121474595620524676881629482995553141158970639937195591352998580586145957090217495890227980982953938675317908994649314587193110331170695539763225314861489526914607457277206734394000113398755800124987066880882265259470332131988804967639534443281488576585149213741670342980872077727629878041934102171700609586992575347774750249547419045357138381953646209346494050374036262115503330947053919154658354282919965942911610045549920324289882817204614108829489132195107832541333403368456494856470028979351378748441903345697632385032313456279015553700015447347107940528162160337365426198826028195386213032907542207492728495602905176463023302633578941695342849219106519602285380833735332666042919870381382556627107198302297197333124818068782772930793806670060082941615873384516957687429525110018453147965379901324927016211568986174553676760349064860653867998023168751373235314608096267579714693520618667429064916945192267401255769681117843020638590455979505953591096678037979323967574698369360077871983623127699182616314042282644963806934849879419371765776990641029907362435218041101009558074424896427618991846419464050208079104180059414500997225765140713599589820624677365573627894224714891101777933791632132340815823725444139458346774885529470032302587434950160654118930624455233711434888616599460933258185680104261684249731171147099217702100931212975623947680196288288566300253157749219666142371216374342350702071707765469037993568902770129236399759600260726425292872791289148125998294293922010322220873398675844928724846860108278982427275962902365680281674577554103371532765683353310268400618089107010038810125934955283038621224343910508720478563919894637066116679472107178388300158715488133290204313018659871471058595110238689836841923029887827697993411869187815568099153604709456555910916938921354431771619878158864169889304324866203010660051660500887923701053599038836964902735836065036288655077348196647145508245349734995201477057764804525111702981203386706921975128037544873818353637266810973681194488744179127597919419065503224397160628675104406356449903382172740330157813887802069711689375661399466086544793962039919020751083726206854058300774529323354014656643901908523163778405951353637563998565695589751598896635951818755269500792147619519720717543027260276630732281857538324383558615766083450860376190361943470380023010300754479319457613158985565114519270869461874626811584616021120762144761205251213848195229292482306726161893650366589084093570358611286505813344907926123080941345878387128586651659554291715884878416444885557240839010461352307145221116198189043897321442176382333199822241451953207909463470947645781597296234572739634261265957937427207647909710333128660023471839613487464812029721882376634338684404080224094424825105616081188516992982174140144009274774996767787062085145618842475927642347246936402217245665255051453077119410570049233001033258001476377676372613563882441443963807379172279686345377418529771787723974318041298974735842474074845485382788480263846031545491759151199269729460247960946323727859038798161071116632397609826647000714727164027518393917684913565386307370538496586036301394312262240700539112079463370765275982693546109918482835759570138507887925097398160076065288615043376355386983187047459137860191085534137265558327319285722677238755633547626781043022959639526980900631505062666574011926509363137472403353005372999168028312558219712554677950486168721907207762343984491502292818626617201494810957643299603467222096986039785424122307262592181188908358347970494034294756101694050803623745778326751441592917526912378970461731271231886697013213143524605227789150880247336402975364516174297843527071773162061748429367212069159782652506209100870886176279944152103174505269944991627655340778693405033812735639320525822604825630408064497492143404936830625002008555296227410660037849856320828997797151669274532111811481227551944618393622298837517349416208212697082651863672819925554214041065376281625138788321321327372509941030233250368588110294188169423266272075135737401249605900644374066742156209169374397306187449412862920840944558144089424836981670300015223395893001947668446132654259783040588781338879275501540415897420739290467962446002120631546390130363115464199446833925959926458005371685441714120118313594623704741267088597564818666813774390034817170927141259745852802859045419059967764903011356746977006877547441129949880327326240346868386662484483074978912593526425938613748831584189856802893121762815643576397489764176470135184082680833806795410974304645631990535812408747347310702613215239738682745350141483784060316785696931672491287859781657209313662673550645135051011449478130902906667871357444017279174825428828504566913568013880006043299552269491822867162760267173996666019404768633826417652996849035438357870412144857218232741111150840744593200268385778200169151827008014167816199429012958419632844172013907624501065967014518126009608001409247320968640629342329066353265585933502595449491781566931247532207490891314537868610790561071802608715802334562607450737538114437044180882102688347301812406005975868787314601385470427800378389753852250104615000222361984937491995446365675054603839956984905256933564753952027863008716193562545601724180576677701412772200525751360502640452921757570462847288030060006365314291430637619852092606996916588934371758387446346897621406999156297731427145624528809391299277168423409425691093590534817352238490288528552343820172406491889646352255203318001484726672077123552483215397631286439572769449274007175189751203510247252264082182272078475509424198734343811596099497969691201810261631522820564816891666299964280555799943030260217382255863297473125546696998013725319004196292259580918034287579937463906712057052649653140014700188360957422200981622708479346976344119888890187024913800706881511687592193310783663515840267390139636788124060857044544215181465221673063793445420580591014311431779827687342371581213638432689966314720696595761964034243362574606060414716664417387816090871435816352346460786480507304250874875228143022659886939548589072167102889371859453295262628910800263914175206792003277113866930551729472869495590971147176018227590940192238603158118774224055822454700621184518700493014596132563505484269643294690632519319261732415370573429066611664360936294135275633533346021267918097596640702711893640602112981025737973380004437430047660703372330567518532051212589933982265591641314323412666035079534765525267224763286946264071301799008928446701117114930384609117288217843320651429233430983562020028895976490523653060259770041847656726516169085059560261982617943775845650535104024808851464153917548176303430417022827676457668514051652487279734451075728392030981153200947692041575269494670398768483260792511132661554987115234727827632075718458929144503855760031525762522389268058951270297786324503242812052554075663198471518716790304296180296498219856739625682833073283753671650429675328752073931817034577424975713737760168983120543084432711505875877198670128536072335128068202630201615629124132350951893333569277075293071272267872409769298795545891680317794103994756970788451279210288046705744608099164286269549414166983730484924084785846075207272474803556126785980830413364904883762960333083734027028530471698992566547839078771456878827816304239059982268351259410131255080914655481818252223092240996768534564575457301436218974321937339760730731924198519891939447539313060993785018695921100295614730947301478951119306568543552490770534736947885075193826034703734784888498221836929217837244648410193947442112906956018581138463567022125356997699708316000547130292553707167659701585420176146975831437664084624306840392044932152282870614180209926910401662087748910231830025181527468475433061402307836819861353570094953926146885460126087421911748779348013378412480261579102325680427698319037601185144053443073549669929148946417194274507794527164420906358123277296869677960803387577469276530923819105220648684184922221577852982258188316862810948400722845769840357104832016785304263906317518046209945667900948636503951116715116616187188969540367122789940673695085236892618227456604640804148218726995621091659400287676340817244179052485992111410404044349735910171495398231288143977051601929291234732496703718146402996051000216291660755108972205647432354404702163503788341429253363047377642335571817533572228189580317649802546330089641277512645233144330978983000883686513804416560345086910783761731086311844080845967393805867615544385998312817793702363918690977191211719901434206541858793885665075917788059048434777015167856222093005765242904480480149240854425394478736952816837931023928718214497048960312460797636581986935107364417584951242332664703260618663905399793712849983371512732632246196889739470612357367533368943805692204293180479074941530853786368547458740917633399072929500817078677140181957531634045958125026199635784357572266328867181946990576995583479582836456970646348985061378467403409943348581991180647397304905467179869900095675257804051602100816736663522629040862078757877920066338608946269665104799609540243893760099491541627595907851713380358853538179343382054050359860250117202722272801486765037677217930952031504317527856492817679935903191352547529122886373704952232317195974032186007284988538419449162411707061836395886774308218792114119523943406598876922765719780596026916848960266443018081100889386020456118017411046824291651893008552229120948580112645950049220522025377503616142443517898382451969227294225714124866004307991259767116718685042443421211925200857985396856858258928769970043384376545165402531840894540189640694427188957900000486414049353965756326477968364847721410813798087622657327251460218740585200064794486255839628775601066559979269849823021683125504539584512316250147641565637519593633235890004070203065320174450407781851454908577717334677142316438913054152806044019399596515756936218762479575928335085243316920564736734263768851735331041887369114222355130487841417904480539531135837385332924434190503887007454600178906548492758073330713486516389632724726557437577052916200020212965596779562044539153004225092154087262304919819467224613183813557266391134013110351387682253744478965349995952184775022725938862488348883403383026812139082186534537997082337335353432065168440945783652376328210464174803172535199298399515309613107796256795713422728151126993614627642636974597797778986467668240918796162350819509559674796985601035081041940346891306043894467507467432726920517903590389999584573649032729784662715731263991107689112946464828772749382645918878803569642047504334006690707522113120049140719636248769937434223589009980715370566761999280051025791150721796959715081885998163649193885374947773054395112154305130455349743380554676028150317687731882642782755317485470009998263926723268696112513638622442952716152248843650960977856130623664136254698762520430417100732254692810130836598800534758195261047536843666971876166274502306688592906002469733385016921163348286887517294146296097469706997408004984032409068022150599368013231455489237739282907356883311586925953817079440285063718886344362531197419120608047411444904973319193302519977014122009540411974164814915302245125620605060259849907738047131745561880246865753122435659556291794677544450498228793298466742566687828005195500446507422198375609219358162939741333358646096678018003355279750943968789101647468007802079452518995467543905452438770640173298004353153558590821662215291264436477056210079066120591360342601250984932731263845073662808700624740011858096666399970418774846988986229364886897447480679979778112525656073676126625225907376973932643465557935506650329587675388647397638061272521459786061428961076010398651033418379899314291120206844675917023695726757645541317160746826171639165203912738421054048612758638788943953655073873881618104967087640359375758502140207746874190778084420534145799465899294902636542538709370928957211893663187804538740681097224979734484544992224395673423702336846397025885828027499721503513788407144277134022017982923170679259282263627148022860257513395131148576607875843475112645219720743616165191565472788356111464129513410451726586029211771429630232483890947539325710955441040041460082928767841443442433576551159673696163718384997819338591237255823434096243283253376393492996039596182506575577638082310823258435719610932254345001310598684820765260514678151943423203364425821130844411222514515384906153197772372224871518854459425777848128643696330767158007245141583837775648554158973880284891925436465847558138510432017814409648004012301705826750552969589876887598363047876594462602386031084934548938180604006401377073051770546331842698713374945576382196330995021458860222225692708520411707728023573077346214933381593885769143302981307431144166761275797411785907959533888224696489938033283776747398228432289189939673364622645655252643302100853106527422964019022881927330453566250273985765363021785380655282685452575674180940254438161456833455552094652506301777385165221238032908413598724916830234879763397693348169255180815506373639417539064649056194732106267122364371312413079225345089686221662694766511668367479655114610734976561669580479058440766686317678860748106322047699162919896208749566419968427495406645971492878585465820541209194102691078952363182025352989386455613929387831185569790339633383941398735561330354759479729238534983741438025521427038994042163345317796635186420842113150319289279677937116915194227440953456296017004819929540234022655055637676484621862295220964444678201480919487778166766711927197020888457513941833372739318460219485634121154988465461904741689849530942456442659518760739414884973378946508580975392666490340671758980620716904097798469312136600636808148671055245842017922860528978911409826086287743027308314628238658022483998262129476297652686858720625217986220513459448556199923748760155532976831577096086355800191564292341339484249062927669431795458888320169655516040030633584576114150059187924417334519483636357952544458660167712933335421869628428655212008951169091573428508633292322969864581480538402511950308561541580614410921347051359342400313366249012424114524535273674888713662231438046870096409552638160924916097991790974459064314221867656256943584276632494493041814886710573906959490935999106356216805198676695810965036154342699619609954147570109359159474920433270563689835231396180809972160275492844541421024524727424463465875173060895398351276492113121265227858964250750870233590554623652626344114903534327622818946973597053209554409647084202315048076084243719153077396578515619063079329038241762956202672912621784174610269681135071736403526277012786930932247467228215445760736433466632686936207303571703670949402465340747687649567172989104435372233521503751099150694920780277475017623576960413051338130580619844883610839692514421473466658900045935057529850918828325719764626225497581379129640394209906961027614630957937318573593914570349259778368616240733676316867893407137033560158697087134249829938667536225483299660012004118220640560328196723885905456403900175421582871879754933655621617159919343734358660931138512424764588933063055048029140928036810050630182434731011416171105528957186326145712507165517401208439821361546700607546235287248408436610036627996199178103908814907032438284505506027162641371354113914558423521559274781506892943962042226384713936410333660159266747856316823526068666391392232469463967010326923384959073687337988866839965311227365434031192242894779988457200943814020583430291164115362065784095256539361465875419284263338391271392546434167186050899823203948860839593274855220518981361416927310150811107751971799678576376078844999640841327180719062040689563586470944590115894414139185704595611335763654908329520102915945207413131821661473981645965183345126073587980123931591708133836815742315208149802927267297428411249645509775277448353950673328556305389198985276090494642879341730663882592601268643078601662276932596907810407453432145424479765730522399230183683594356722997758561330018323980358582734596956303083445385002707904944395630509695372589607689170517121977505585709920318562659765068363269353823546682413699577662124966322951628330696876312464322406252643861274211976748731102204029387555276512172983767795116818668997807995134830069942182263816528240786760267735587454345164059997824046327929571571684181842166045060024809150630459710244747922437678350688922220144006571262526816243562705517793620672722153452910661716100057538887906590914909636802348593296105161609642707205481470470695237971244574946450517754729727831760542144976849554416482578480556155769462285986874743584810741587706291949468045377847308855843181382816095762325537389627491663666662025376901322714637144716826057692008651961366928256747477536336809801444470762209965398399583237834228608330702426187413277407122485145534224440653065836507699547849263772996450953129327061397315437774707291908826640499201811986234496936426506407709373226861799858812878697189166841070670995337123976276783214865738642466834940264749899103592922763052123553860035272595464068445813650089742356329085403108270093366410646922966510004613075386788857699117934647966836218855101774204918176536869474226835190409046644558008031044131476501925169795863623897958179679148628801978617655001112906353430917834013411516129112888935482474116752889665716699970856158878844458148695432285423238849983514258887416554278495545449822705447807468431312372998720806876972966928733743779879234923652121097775391165704929620202259493611455055506632762907509410031245786292021740466154251382329743948864567914689717451730281008068792422098304750688491035639718299571815675067143661409052947222033941182249926422985947197628500629221932996822172932335468204958739827729287796205879899921984272048376005944534619607740084467809543192702632011053573513132197346739406848836083931474335194472349891725105166412774201438671647343902442255471446495426428541987367573427741915224036521714100404344934642989844878025035033474080818469589774765028573327497765111589983654435974933725491856840773233930538430369319293820050013866637863109028302005560640929162637675259655167648336432347621404089290601703628085603380548898763929611277094378044085875370901773211091026678424568598796099864834514612204875519086928337089783940873224902395852291278328708145045762094449989178761331779415651144534706315063643196947726242725516758412981522589079594501559038230384519611233720054719270380344828866441045573537922132964465350073485773934814228516133282159698188031517507521020484918159258700632631598259080755564000171856856549059712910787190045709788434383871258973482747111563903279667562930389592889668332540400796536416926961671188909811881336013165835892126018994151981767872092489243182916533379980533198956623008525821692844777889421754220057608197530180691567696836519742396107488406729939538689690170073610980048213087818465809788226838087763753650575151696125110193262508845519103095014533191823731999254619393708853930255729764641939709513956529437005148405066518547487839985912379502864759817190433414921216770853323933907211172382043392059708521146156770720749037582970716309681889805693524305770276687794852531630748227301277292385019110113110276957085200400990684518747456745133401301932125432577762339275710528523434734210499058632429832631845853790896862574723363289103117800158460793954031324378048290237242534564996321275323382194168031247302797459316105636068583980222162309266473830039397681829122547594759858765472178962767913749406932465721664803829311053270471405266569333059999825349379557597583796648085204919461585408416112336978353155898031722041702475043213394501961741410944726846933211466986635098088447202993890549738964851248387661887065717282895127501240153575240501917288377424099092463634472043171628736394771306061640842559192560105714008587416323236757708481297043403348883463950068333189276408229406161142443044379903203903758768983436868305311897419492127926465792879579584376908964761079388984131818802364131853190725169988578207074923050568488722935509168431898599232301702036404922415794511570718682928729442139484901263133505410751850095363655892532329389312650413465800522095659901161079808153455781363589838531389356118310790945139849132795527735679599159098647568541810595207824335981976363283891537579320896397241295230470623686856773080561602613913736212794761811100443377343709577864870237545734448136428558629573904486294359458333708176468728734445868970535925512109485329562756931000272500468101146510873670883417311923622273889870504680672431285302699258570218922963868399341110789347344166936478629909010436032300370168896251717337220183416373844847927705138534177701073963221114284297438586482459548165818072923966958297116937513748998261898324636437515489304535927884821639333486461296032513272740788595019580336152231582371137137572389678076184398169869526896394432675424684388063606199587820838027865467986021302100441143058550792541371664689913887305695938511145490471706862621624742525926338002190562289561378292727682066522058093955420145321855872138700441477408998897711442309528393148151667358191651024098601541676439395060813389056113794278947902777457265018979967459960230464239086052069819372322164418554131457884976355321153967775223951580417920592868315928055062224630681126720768575390117987295543847224412785154403458787071306614461853594530949519812775461301580363264024601881383336851710356009452169065463463914973853314587286169567757713170138906406422992841108058809565759967499880405773670990480328848211710322575952321015218969970712183308524305098218235662557081077127476935154905829644447742164587720175890495248313560634533567167546449601790527040598045871879508143965953551277628727341603893719996964657419555932632504396626429268448354340773073366022413152300784671851740966320346330589556339471464550892267043238375773934573414193219389464390229398839276969723288179266875944180613524157904110334086702507871846916562457881192037226561300260196369711883124494203874249193326805883602509830040884866081190369678661524115447867488658968472995091266040746053326891583330598550986259898935506767168029947558371050691989496674659807287423511452497617012458484753152337223876287925020698044858392207461979528853083590125142288689503218332055064862815971119877764326133271757052022753692285784606195306039107848625207685523136967717678664381242449364882515389259226199037431960192296047290314678232338411946253370193222611860353317791649757341356978318573464094001774299247321538300774991526204567392367124783567816754379060349982190007660918827073082477154893692817234990890094776622864081164952035266536612849781054560435451621174974390747428434819909216542569183809598044900033091845433512329066339781352485295719247280202739453741920429979560401095186860986642747762234673024678327268813055664373169712677370283836755086174206698977638842187172349864818352782248303367628827680826745543027134419935688224845707390162148614972314453612770934798440602143114817039815939008763380964106762051837204914738316296250551194837833473165636751279991854238594631679624434997318756144341721230723550168504711341548860135059840178502585930346860592943078606475534585619074455039567059205557407348108874508996705391338299421880954685661559176118552674982093760543119980894501160566068144248185556967439020241795340118671341625427651114815948770078699533680681653774898706398357144413513496233493700586079434246748388423362273476128656337345522263712665651721615891886152357836681933751246188162528171553741037313920309673818749178359075577671266748342421012790802396639236740557150048216485905590877723165731507832077469818234400160939087133449460616537386994545061968643598532719237470174100266920013832043961460325024793580498249124596198661231437700292388639214031355528771202204064440421646880808654255642822693358540471203198846280670140951040046163804519268206900952719282773686199686496659683120931565969420829935046850020325936052632066069498103755281185692698951724103442066880899389559228192704539173864748226749926915998670627619373223674863119960970686667442352231051194453328086248078960881673116360198121558207587431138408964033641424588916467120565698177723189812321675734997487803138618976727645644765339645278732302516248736783468542444737286880093643627464170923240839297178538200211390142940744853418174362642825686952433867194830941643852217898144727115424265176270439287397824769393193666355814580595939288053495516959236042530180400251291808520890285648159543810201327840541727503359538095846439796829881475426889404217167549653039924681402663711381736352581983578344798849911183021997608900916951562439567682770477727814744823356859778143408024064992015392759017415950964472148025535324799585517932551680257426596107697930493382142072867078166659594793359778827694868627454224181410408752749127110562579551073672162621697561980733025922307337074914171783491725858515550415708656453638949312568039843881656286283420676682209905382371783635439075651058063650387650876044759856492535683811475989247282716590384686102617488550269452337041834282420122023393151514628986258389317577555210984675404145368630907435815122588374432908226748340356926893622629815344271416140883163497513890449633844778088983236169186111722577352644795311397458541300061275673267027868431398705230009427541337855950244744080311165658323525607960202402230215815043226516211591437831141813567797232421284534227765791486764407390978674111113384268697942768683426872622747708217042078653433346094459961533377035886681313559847801450999742695853894723820989613611917820335166558670368608786853792300128484459741008013322493097813283885136113565279441806078609028950322764224730561112135360642698867678804628163599311931260528381974532083611488190489168377142500071883677484063609926000079273022754463807012735668544301799515452882584070703965337303829054186933879168715888064399402007644255538603163967025107287890857374755595404699974567156504470640738821486349232019476015972311449684064018967895595924157271073658138463176162339713164552005109703687012448509838109884963841882785098491160770580642541036891782398001442985580561444728953404648189457994061403186222085384842351604053280603156611082475846289098763135613039740237275922077611138027337503143785358777840510509376992713329460290556448660185659606916202913263693952349287470003897208938603923201863367047568334595805154848406636032309681719067504875846542745618483427123902085716805761589917217132731399894039196673652713563847798803893832818716258066359113172556354798488710780457520648775828480488715105752277964720720335811777423107229238473729815972749297669906272460702817847646903735391148020048814832374243334450977724187467318235626272307375846050169427362271639746528673179214104120769288436995133955023089002466973299146378864169149348261522837582673330049282915969047438304037618565926851067060524657086464507675117193652506586526392408854959450148454523196054517269474481968823844889918323973599332645524537673717909773862524880633358576925017450704588065844088680524248287736052625799812871127632854978945984024851826509285937530218034693674749693609122820408036504696762242136691539846176764374557371246023643296240663739885120522229858303069241068858554026762388760991276578206364234879110005537924364083276838934896623979024863900799177669962770248125809949070180786105514794708777139066519701190362286716536834039292351035727497972000074410181257700833135129272196496207531547121272473908405113190475347420274866391705651053990533482486351903916903550128485422195390042664631328470333655543558510120032589120810748169884800371916398374792266384479019232647061055355093000004015978789844592014625586382144118330670498112278013092807710940714737780809303105384766942153314087482388712663635647964559265162186991494942685670447550669838082792799545631155208930268700296703412041759474862357620806170348439106016267676929357323986379618033345144061011798598721337762811254527920062368563752160965774974224579272495736084789434183724698362817894103041446431589155280914249386163694121754869346436372151218671924206217844875146659545246182268653438797355315638937791768030223935065717943173832515570598396338752885150692634156315638279227249821372744931953932304772326406598082646018263705789882343348983718699776729320026038629290520777464689737412105932421833222921038750767430352359639967897075217868028156743618492866431031852188404888314048097310522315962228236031470967700242339504608817297242490238825279023057137798254492524702358777165646343504559181644843688491600213471355241024923192622921502779215239431719037098194372561044323204414889723243212778052867708193126769101842624904446353933828211003623674581606053556699411753913642531582251529530860336807905623359995663432570048598490386981883539287094593339372625283049004324723547472673640316511501730536035847415742668579127645908082704203853734141219156757415099794334574862803203037196516694043211599409804524063963396076290521658115909568419632142667410151663530219398359197312253298829944102881070084490756898062679725972833009537625005988900922676171406733769350970212854650812202678455019163064493386693674439446450580015616999457592804119032945733654124104286146007620176137274984145624733045219691919000760022533077415852107156375386757190034518647613682513156732725034473764116376077961964676059484929297590719260514206882244842139619774820775923675006723443639964170237253317925865504899277796049182114271513250468271270652529225224277868511434456062574573012539617097921712890942435687020952670731405217628651288961013587945371300289050909588080054888868736955293797685613525661031516230606532158551284999703887465866174158931836154522231231529306254498988422882190291826663462577324478013821746753684539169589665141216267429637920366517413687118297587566365985587930455351122970612429688784471486270539812064118882006778276044769674382596872593373914466738185715856755590184737409997109770010088180904477423948537293065842219710301536827817022832238503817729398647980974791957039073624803223854072310934833949915820107310495885693074811275999168361807735990533070719527138869085431097141278707645636182470984662280862362202359247471878683603710421786345170946761190741357444421976321971129193144952482930980008257357490391823395343753584223720736358022246583942538757464600335230588934282873648530356962568799577022860787345243783530185080926031332802987175274412637553702990501876156635696944534450580545245308080907462836760189466666348908607793408063304019914394631121856942165255125422406650324232362272342938755556594900629792388967792764121649874803319978728500877869961964502600722523029610236524737173991572602709236489272475149531890994693241401402532675734129960576527267194508950187210804008996567157550811771573808948650868863229237955272013118640252196615260983001681341386229319845166165625279110121314213313246906582377186868396253318035339738852881151276715519645455119805346244157759911003001610955524205472652843785167991789401491745892086201298185913084669852668461492604070024423631362132267966714050226147152597710288269271422552159983666315730174163179044474876612913714068661930635161708941776600971642213248688673673634729620452561620478569725569991854553147300912445178466374933188640877887330305292513257715860040524796178218110396244507214092514556483745651527095669254643767171074419321052155270427324394354016984674544261740980741978701813894958172371566805757152334397427554722415859369917944461893210467902101456897109263114188144628658864348772708224961987910058734260816137083744648174201475387764421053156641885109364358997519602761165764365733362859891252913106847174025466983037450071826730797715667371257458023075620729649824683179886227941173904636671154360168696267801427615787537941466616509954403710570451317238930854372315255583382801779306722645934019369883081212941204288016931800283789248297203387073830652638291194390457464892981520074183938099075233430209418166624049804870395634692559217229092974836171490945042156093111552349149779768903087535322160237792954919925016839914622604892695077819169138351661635211774178169960340951335313644555340113659909042661240100644915493147915222332684919507731631818095438781504959906695959234391070824163123307051195300197158305877744869136539847747958346728400520129556728007430080599724174265104928328391335246043274553768161101917326091248822319609315896345628580258508992117566432717540716564343623299816361071562994538908765633441242510477811192447400864969309891768623979922061936936207225979199490816507478340617265581440494128707910327967963998721431189968335221201637262719327313277668998996218722273992021298840143987223854158739785130564749753597970898577773074226706322139850116251256234033519418508582388964315739261547835702235573202934600129286388221656664306220770468014162955943604836121864581489644158617154658468643574873625545422156156999118014406858879772771444904568156176438201149475331578130724804446782716008613299209073824491424257316505337414836730499404346319302539705523723249967852275944944511321482157499289263615246305744649433960436924717512874599571851382222860354273994458083973991115776818159665952479370632175750849904315495721984969381193404345906360845678730594767425616822254375890332859067568083680569194691403412660383743320715072940556005555850751737227457990943372990659555589813764574101761886123687070836775445881335375551695134985717628865544487197544272276617950313888535555682454676998547631024327486902247516035326005101030591314667208076809752479847091222359560437446522405215592694123593682627255649305474942176311685124239142843017778003631675553971351971704343956631498308750680755244853134365726049435681153975434431071280238684285446686097612908884059632611253172184193041261817981516944871629876513865638529928209904314903123040765666770430274520796972035599659610599669855345464843204441338514217020076082258448497994127380582187494348339803834075157512797559948361800154518268894595192659068115541333837614355523891263889519889466297840932124755657515721288362147362089735111264820227962764997557882749743906243187390832745758292826265160302448782597748125260386411509472561083300392459293588408359012440548922394612208442185927346507669705861739594478952691823269703548292487732348853093641635819156202705499194627755089826305219340670364683697780124409809386096509821361376604056811748489678119198002766547845620983941736287533527487915277771761261156035920107828286354689868203389765171150112257674744253927244943603234216940259269928886345765019095188443417756269617728886908794992688995652903354023249792097070761781104384298544837906352773453420231382679363063150294458009949724135553038403168526014091889173261691267650877686011989420461434720645979982348336313142519406725809611096969147993619313103525812494989221710627844136091363859207069903118237132303969573858049427692157611326823600813628470924105043201508919417635962858154663985547457297596422258574027106881691003774278455319280791413476657703337292932495233584963890679797153046257311244119103352772059782677028552492424697761770593775239216557195960455227111756072985386235007826937552686427575672301564416821017674943304223568871191762476376631249958152158700773001772890361882425196857645104826877609264876755095990042932540635987914963217148934821059569318347406928558275171394895490485880164806528648585989592008547632919075745543252047369548978605541318529884688813700247497266617178420548138575271846969658510121642085157857589854987695155532175194716267568565188662530971153801603777292450972468987943666620312146693748602770147897802037973026865674924750685495807248492533469461389786616765905455745303960761939455196580385765830001584534187303788795949293607457968122376026731285897569663215956535396434127456599284419548023417321798319331512563582952550113199211306813755956689322472290255415103425019576876018123564020161548461296613258814751288189256738057064057499954848266214971775129927359944016354684923185079131634224609846244185368101648590008270129611661605773411861594093007613092068941707850650758784574667725101300562537914727395292980055106655291327937211889247110911144459092113599794306552476563262175246928633328512172528892198577337510590698861233490802656130374137007301548486962594637695761318073202996479321805791352148251097572891381675714149086333566176758712543214045058530897739890368457023081700605603828072036293005735235213778225964288256175245125584268426187428334849529133688579957386429044351056331899746087866766429773110450817151680665442029973469465951269282089241437556156179157924626221369425638916768363014535066762294084743906416680338611115006466480547922538260678976551047631321867142817096471596493902679204337848478850203180625924184166785313791174747560392104266843358606162316690653050124913766541790926344367544765850903362180643519974475822196829038597198310562467782543475862833992045095140604559985324022336635120475504885237294190122636373848705137504379580716517544686221610526371089375578933892551370535992083543364798508319438879560019075119405079797339645334712982974282449331839935998092424917471158040525107628903244075060644311802056877614730570030094863836584130225788946049946443557784044860431152515107290204659771260222079487251281494434250512993153013668610519868602456458329131894657555095363946255286655409507622664360568643391313291526016589104885760120638703729297475515668400450525411761273417822662857851332819569252650811936768177449759736701084249135241700790375083632602671216412025188754661375778093141424074743727420843642533730634037471191089681649179415121927978312611496044572883854460121488502126268585550574802644317466086665210968125742353678519042212523591212581812056865037685757560590317473908386895689157296852549744404503552727538941079816859531028876060353789218584981886223175807484834132286515079051420507521658001129595392088569301915660792793815806608901588454856934717671285297901979320715211940243861069891703592151476958256538109585837479027162711555090248946144746472101945951626112496384447926105090316235303478327314725228434279333204226865753141932957256769657786923117570807793598387230024119974395326295114994500786016777021102451927978769319955162537445614121438597057304450052053574929616666581942915100529764993131986229628785381221143706164226147885527317539543212572447541551024339049407147060527767265006241670457574858085472545865144348629106925788552568843524087482048739194649087826035323710894046610244988271773466388074451219078923595663466253408450586586313889910699236410629172511310719877085829320765770496258888644441128356494613222575705202399283545484292908369845759775262890743758225147286194661254973708426703558716794542585287167049350694408175150981711242586867172406009925117669790172202458018291886853880275163339855889696532850472805038902308355107074161834956236381772698481139544154075739171360879155150793210923420408446872385533156089570429661604417356122336697332546093739666921862282026880676452795948532968757248110507472981911664626079175852519411446787473468411960855460591695977079838153673405450066800053124414208053909509052732116057965825077787699855078304577005296585162746055871317014945095152399454485514790308138777559203013660531328153699424935153822262784576270056586558114902743699056940738916572756515682242977667721910577901853897846284331845335282742016592380420272802900626062516781497889636004206265233862360455037929177167372665604352061627292356274131008602244993934836475037208842097494166991022940808528647994747289124882059301012077637230815927643088951054650406711088578022457205282756042560488068570120742199305262198163167885477657005179234149402854710330322805616702683139903449600334686513249674295915137858303235977106328975711092605594192778971537085379967567764320222271420124760395206275037426961376698922840376544271425068721734627538440612186625758669070857448732007458558597417708668849080203225270878612827864982460895548794581352187436055951456863138491073429815732940296043035281095318082088910621494097163282470271250284931972644391448654500617305596816091990649388907348381597694928070524369851188892548146623268577498201583507883274772310530503743523796552981825350771525466800097811874745954683805196661867095154380184292040729751771812542986191785072914447988578037369251216974910280141082482412208765809089363161465820765524368020147617835773724136512377618736197635240527107670995844648044534351731595729513551838883718356498993007937834626902763285268758399680031057885326167546850455272471267750147911167386076178653926656860009419220070042449803772846718916836407341876013191517058204281175197119734326610269301635653437701989035944534980654381708716129420518997181133317203200060580988293307535755910272294371220669990013961062116195603990028700216519514245656108671885111794585671540597717247066885643558897617201638204224138668378338962424407406571886142545622621387325657147167982212522294501105851609941040123464134203909004551189648313721393247398921723147883911097446559980765189838757139793034821302648762021243276164034583187212232244229606880464005982452935023153999089886036020977658450223298362721952947981836915704635568454146498024386427255024841608725482608395530998885381548473924482877156184982182710367373218459973050070418628471164585098176347224039415030950027500468988895021493127251723240142247978212884041289196187902592011804544747420062949179935613052918877234722523218066742805353146669475632946780069139497894053444783900419094252454873118938197987180358297613303122568419681823850550304636687529384707112247865142093894377775787322736398428459275264897303805422795224701586358814550644137070666622421008636197793868408238909454628439612114880653403412830438767664823748423199311682723358348522063986334095077242754741472161401884025674449257637644693093858627234283247621590797533810890259504123083705241912417026079339220889771114133417373441540900033659798363588651025253948245499929057286326326456842485988338770346697341934681167105837088763199398384356699178970566342626419510292397864363934804795008701340992749901207219056937964547626183215932155766789298633400761317164276553822654157181509835711130386372277408716636751257879167326557581507829596219964845255575502766913590556425268531607940121271084341236380662940418968708900358326070503938739236538163168131937367150038076589475810748434876264367993941948518882766131348825748513519772231297342195535165331152776633963358451815793139296470100170284319562857289315089234441803011423863251761688445305182399058726710115476750605181647613930339599789316346126045247423486693931112296778183741552243758317798029732548918516091202308649943309071368991699817654079810341064743099236632448865214735122383205271350116015591806656211550262398468591055112661006166898457245873389659465828496740799068078342616155579671254981987660648991018429954728424770356442521373511657949466903759825910528601800180232712942735811565026350329313595462447029617870355139207046585803247533772642098088527190796000700839046855490090102765833210091715635877520328982536178761146091778792985313441390583191930999755958346959157976109357165790731310376470827532679982003615854237590968120273052647742838817364726126255924880433534321136592594917703293402929157592699454281182427256615486497101200769384219501836282092960387478603378335248087249052612060065764632874167977266973801555082856768165438428883335698027487132701740389664057922511012202834701538423952547971547887463665759060544709025670958604318147922506685039505093300112821339490202721958221083206083914186160882023157778285623367673313195799149421260617329057497264646814294984346987120785418400377483352131911668254855623876090922209295532888611846328392943178670064651467185561038712497867679163330168910366344922076069654391667021095504331892170952356401238864662114531268610806804342273606844094630428294744455574445568787921565413925908377940929969451842836389999299872472787889592178496837005124475076447308821519049473143154654959502283413813788492756542921734431065431641153804027740216519799641542686755068676585685346490299461048674626360453390419930940928227404743646450699848789515109383595520151360566967288739273738525013826456286426444369540541184994250371486188162330747336047835025496391525988295292063403962870927878551584215103258663694784923700630115997677659119636736208911216732887973973583169770119536521273877361755210090431954017652314732293137860693370874598660518708113004034623836428281882960930789159045129319549764213371034778574777704957010485864141558140112681523451176573793499907525628360081924766122615723491015276825270024102168976571731615278766870020234419695155138234197557829406427218588666125234971599013627099845690874583394558138713921978223810324664403066768468742050195820357400511734054918875349973202096012726233938501191635960774343708975133514715484218936253401491560370061172206060245491900020046260052933898144193002952625654670447715966570338141073035611107910717426888690532945811177601291494133522649569224055968738047473937665116386305479659341053885448182483237646978219100829958874991995500092465066502336233246324668196467603615299906397709014309544689528707859059558729928567567742097737229620151968632252929148524377796511874684311162309098001523206118427379988851620894050711177647962920678117677500512126091840694785562169691017422278791335048799527946730697470106155209582956169459702286444356004923912763543825979911173292247088057662903373301576649097431052568468916133707486056353007293695819098396307081819227503821329628110414178613256447520768002590242992088008714731046496790943839584606050055628943312241154222534176329673452105222022504095993920745485531746534166906332080400030402934412543345849337907380555013281152712846640692732098225925606423648835889793348220745867910051699455068818071202605219426738477280988023452661120249601669182563505380909414115166256474329945157328203840436280103998073881817979178874774289811532803830127716680222309854930402709546047417446407740879233488543050088568155472575367722777879731536139380716841434150495013566856950846429707163713782972018276653630763138818395634567952753585786740909169679093675330996687670527565316310448709692562678085392077401221745744650848496143467820634266356814359513521410802484144547947765491182846055312029863079690491058860531756631328798733296157314069016774774586218483003678705822185107452396241775119948383402541909864312549219839250610953065192398717072898299951174868593516998561175326879360698676795939255753747460424219222274826150876566334421830466998153578215392707992725022016267315397056474962264151009951944931871020634319100188376569266685611479265440290807291916574524336452045454987241948596085868806084413436850076075765269481195665387170381431009538040171028735101457201232240837941643462250656056256123319125130523357737292785150491172611839751783462547565970385923832771920729177231094481444148906712008963052963045017915748998008188049953382416655956233881553592987378393925134705210980316931984460849989162861854458757122765597639188785152191437538018716937295568728306645526258656293479113246043747245120557692312388688020056152925516813441808601390664075256733090062679779455438881556687448416637141564171714071685896438232161138371129340986241071164452696150930436362916096157013438731763629156463008294392689829875169007228481333544904099806631855229448688185615031632215025395750962141510928635461945221985744628758548351891496012121000334291435706832904599587914111874481110070446263640344295663190714785265098094026118183970291965459369324510619270579988979272274338625086698733858299593595503444411705815422709231050391344436899921759883417187217584259231425877561047149128640230020413899151477463541628360459111394477059028435505342710076294385028185726499587008827033164490353198405098667074694265715432063911382893845933052923647788790982142138085473244255301365679751144778180279185900006428220160833779837345107886092050611842847771668251360477367029664185191090863551472287531384392877911140545255148132640439767980299527155950318264410926121088042393638240667936642271787029553143077578347405340305931432761686257272566447835358545416182018078818266601318864819126090650881544031799379546836458915400267622166048516617845564282502096859576234083316985656077869105222853967487172098880626810190432380093602425805790080779472809063073938871802881466390321411767251021462049456153646994136816187088678646472371539887340484114811006132854373555293491411351525061249231601275555561113072483619042446671889508147305270841925623599264070889669925372164992323337647952689944114557607866573054697713832163789969754878252634533874284748407305512400251648601428532393454621294367661690134447508743179934606991420204663450152542154945415811155215257490823336914877347767464982743622686127122816403236881850221574619539215795859637992908289045115823380937184861265306546957699198174540595179873734207859536172005960609691285228475558134541087682400482232230610256166881144476718301425303264352167805624539755363426046294554176725718690749230106418296014056207577303164078248665308073755117772478746873875341188850436316294039283890366808872879751614889695015112394212209985642546487237788210363850308602011719671258901591525963236232477417143968981405373609712438398514732680841041358944245036242001177517688388223455255848331516284711505698435474197161345062838609237725246870669704419332404003699549027567685970446564479636783118265864447982008597538641577108862924028035204320126376741767131580218966886752624623531927059440278443490424404991335214501816206963814086966947839284783318441773879664295811824709388717482758041434618182170573280890828932104779880253265272330476762090260923792804517539128481419609755904357147975649987928045324405446570411484292352497873710810904968554741254374300308249949821951277759941112420060245682684359708959165469551338581723777454218268212027807386081078102486430880620307227893836130243739523211405343618432376746063474302552625953876427053648615362036466833874409800793569244123593735537879973649008324832393813362364030101440126524022697635925455390626777008332589376475336393460330967207106713896908189586928792616536229289507189190460306667452045773569654661989187455095020675477273777690992396462218196157839188687747880671801079639307182366292741169543961816372648040010186479495316497151320355723830362535724099345169889890091596458382949189828808099358460781865758811542642736609408988092404382134918824466744932838670530939578893764448665093630285525617370861519363999812262914142603317188416059966571878294837410208333498221294425636062876509093471453920782118467212699001925271308905552704846300299707321243948917049629937354432339264509577024820132355833113555794623581957830889985023553259745218317602871983859923551585018533686385818844159425739974740317091884317638372088221199416771132813171054558715854605757079483322935343384630702545166134511369511358917852697683869524802964215387118489659161305256515339666879560927254239733115614323952854670976360638500808456986351030182511506012428242700175820855692795356851435253457074239363204241292623817197265490654289518883737803303427171126054343308349672427396327990612882698509086365621810316919270793783753915389104640235078450091892519562872819278782863127725899481820097314352765392288034463163745620415118471683843633232564584106592590114692361363155148564230878850889234585418290659161847032558906524724981929974522708664947201326928126648597794172896572750738140041304306279914898998883081072130888192267970176729329947290817014876638148445494836849008042255301096735079720229954435142010115045657007623318395808203658544341335184682998700019954244408566229510590831483318061997911777275650164750044336937628043845870362666554584467188822356604399383271240918498123274862796722121736698724645674786815230960399635585077067180724101840973669389967899411206903619823808724499679843654694650519655571901885536958483752486733119398235879902326619004744759897219637704226833219982090974884710413955558318143046244475085198039060662097263765759928289284458767999952687559032424208608573666934759435545287187622054907022480064722424992366371913449700562877248074379745615103173962453923043445174646502922506848412926061713846016122731439237919112507401870839871511435656104002106934809219984503451224631895638214383085562828555996347055760257963671342235739588102864309939555899268344077274451048709652801529415397560428916821140979919695660479781356491964818623272020904092957647281261943071468397272091851156239771483458101919711128066928673798663050616776226588709470900430295515553773102940668261620332860996212316106312529640005274395879281824737948680622171621078948589812085399084836707557452213718298043161091072564446464613391779976287549998281137485466568191189739585454636403905948224241281528716767328850139923255697220449705912819833353157123050218282162682318612145086295837085013385389665348297115248478709594224296310603341882022418760425224208332622591219101431734616722990602625703201865928836894536126852777037357286117587618567163956363277737842347369202396758318324998177674644638451683161648706148127603972854347000817316498399232624525372722324644626308514455699642761647179417964738002345116360816259113815369590019020736178879256564685738015362464573879352784828061892275699560016792593716933226769154889459887899256795404782686933926626774007937274759847221053926417210924433448033910920111569565649609370393978146208004519726097321727030778356521758743660981380004625621806678727931770022501904366524079156219077922586659015860936927206081757217745044370697999870069480838038148317713263875826183266257597843948636251204676736271516726778458464502136429257626453322497969929539206624888421711855154747338009406062793727610144402103483265184054974474521359672435967124200120349889565884744991025567897651666589782907765142393238530548352399010756975027266572492989953350551345062592920129332319445874281985840903354532998048291881308586755140916196330366497765339541452398625723905132088140458126991687312539089204282116164409591865649054344567466876689693081874727665641492390295561226142501843895722407551816041572585973429237329159159740477445304991854951221870030181426219265773971317195270086913746637422161646954650128419569967441399171137091008693150480721456421847360481294807705653514515199515135325540414421161692167445907696611847486242007396810973560266179946973510260940509754759221563160274192097296242858975188650418507457332928789273724424700894160120410282046254903248328018093948311637619999999724549059477023420106843967728574012335325498319170672669041652149225634173111011228712583313097427924165997919589525649238060959203976579637329800988801014457128611174533595884730052328944701328117123609545949049855390911576466545496302348198399341707413864554803072816604833096409632161535234100727359462695663980987627481968056075019550726418545821850458125772683624131877869353023743249443715221325594790171505955713181673947867276975981396220284008143982409608078234881461211716315219078995874093997951254906337797237143881672127278805324124188906398808491734633171860167962070468122445354003908923489553189665817786490055465357530125302340774463047072414942277938457132824228647467810167215783387874750860952377882985299960983065528532784688933774651786950812659606311699449954450635216564320618385715356840997960561388721994010456006923455844075240812491551925173995898290183864957029792873734688222249662038658713921348078540372845123414267216424247199578375908424625978361959322411468478039686952528582663805218508126263579724094707423326779907208662411346892119517063644044409083332009852441048826016365087585611784387513676296699457676603992501964487507803932558395014604871010341882805536458645084527393856267662919249846492161447580587384147878828405812645306268852958124995338228778871917014039463467416683548007103496276871166104494303448416096643181875130094179377187477400936820804000653137785046637676801392081191370965514124006242816864992017623624871683149110328715965604003795136343592805303857685751824073096760746784905768437700477319053369695915533094839310140107874155009225094430661858698030748732138900525600668999457572754403987242166723434540683591703238909310268392576548546225758660807634186637212690342130757512377249868545675782441876481254280875405116395718036957425117066004846655016834129355771959551837251210070801406661891860967626026761910511130260082031713654758974574282559492662481186590374157788216380843938743845116931072697070666353219888044433776851372172083357248224957115979047899846320666988224405560844006500883506349152683287805573428808827091464728127563088683201856566828911169352067981294641271409875489212232895012280562147808492755269497610200835705199439206532155824767810746399041007046547817385652597564126810897972662066947096181246094949890189092408752653487447658005238116447321701753534867203298154151354441204073153458191140329260150152621924335905414859554757353012050206748362008794764031606357757034475728697223589568004673972820185984612289138854662318461102585933154284687680302163596363300573020889647928874946709500838627807311683814949139653089667220012651222041590127404931279288718265418428880994996689681124558495424408859882361849394946395539223246598576773114221029080782539417404483791303578406741158683672052072588908417772296289307691859875479659505487430930837424895337622350580252148935496389983294546579306273309509154362023653291014251613855029456786776906456397725553048109228770922139554407136240161386007726078954260155068303911155322011242391077117665900466497633986059390316617888241670961521873119899499276811910186393214133165162504877993908073888590770769631247918058263066092739952421614725851299006627601933434709079785429967746552027018903525721069607758299576101066192665893520643102893589771277452062306403584007686223893026566589287752087281822039611726197488995615373796302097078111010242205427266210982843707863873436806687917419276342081947777568536486165357326648411916013525604709042210530744824413165671339410672099563825407060934682217000560439175504577331185356784631067028472205568397534632247853110877634692082541389880505988599446127986682574122065241472881284273663951998623900904280304143055394826675896946536719833969527684007756538239771464058591317195716261542432776821029729112489301384365259835717932661010427768441675716049257516845209357214045653589461875212108296251875258589719804160680565318595525097450637976116092528282619637064128794253674539183189131177749937899897680075427185705370784323236492270229088480848086427100413040900286169275871938155529169832096868341983326265706905470222983605265100940808524859322993707313444891235308330904383383294760857465037408322716607465899580736529293733913298501556528015218119390096737998733548993585901817523539936056826425780828732534765058478262618636268982130933983727247353910921090771192436318955625350425111822527838966899161907440281146013676661429718526166382286055017829154891046296978241726983644462376226461751329133361879427545814153394613503110169201033900883156514085402249870488890754685438997451463231325617238879916454522640047427643797037093394340892483067777324695128930480005995569712295074641734511664389020109177130244143606470591161645731703419982200678582717639871584550634005211157881575029397279174548724022197047170108065991392163599515080379367876584574056959480250642398659016986667756958339965369072555117450789392706455117137798767404699906925205120642267593279268625417911443553805993331833648111570716784631495309653443446564462860719933496292412090941968590301378315877758210055153273091534238725655092191209532593626530024423012457728783899607152805237495619217876388826795157982764195400388169135270413229946318447239408765185914600240526941010927858489599332030595364214399120955886357471660992459437858891034233393050023679759531592944415770712513754290944046651174172850512070274669643684097719074659006524868584542334481032453465630694572600056646977503635890238724007776428994971896146913957997538863229248069857962121394535770935595651420664330514527193888216985347961827864558108955524513059273763856382774212645912540051913714350819326893904321734136864928857440376612409301164783371114560790937489831192858487347624253806639866313903955762997323183459453320312584149862072861649024250669734511017331945602975809625484334095393358624473820128732087246269157893119370651174769488193337325343956816125274624475392570475714760613364425857407483616745625883467179715996396579469748049905781830508362600264623087591356052551556316285214457898607177987976272733572877566736972086939642756018702312658093722400020633384563918064001761267742120256113111008747370369716575379720257158612532519493155525373974273073375922916741736557409667704820599271525315342224597036802073579459391397567599012484400966011416079299791118333688282868639555732983926182345512656576570774522658116995805432203001511243566347157146692090340616165748247780844181263475472417586611747456816808864953733375461270084661060585819173316154334152673278437787291643159059610289364801520608411102390496991524987902215717461182685268628584689460590722387477869419116554696312887582948914142627904974226538313764023417352571761475497178560351406690851651709916386420839228207144411241762331227613487286216244640460076099233191307163596679218457947553822170280976749915415058802768562314332394289744509337163150644870991188503968066475258447081055970098268593315429888786991327579753880199818424960587193776610857058456710119091895028530030596371925858120088386806304518235812890260567805968118788465249897857167073139962747285597242589409104830725020115612124147480799292404864214175277856335042602497638452656595092483648332187457480132122198836576160233580261489917799130808837165864197663351657954689999175087605917728773343091640511000756290720632065156057829201177107242625238375013475334967594386868808141325843205809471119437809650478951511118692439371742278457524380891425053750183844078488852330624824791917788334782304397482544272978833289109678535688761239121290059603850293959883335814013012052485862237941585634762463149275424872368450951290859069197425273399404715689720988043679147913318872979403231880189830890901092929169408153453861790386209558966823503158975371451864452848173782005255037149992312164598563342785969706316094340839686247185384896236721431225570169020533236701697949380777594869230147214129374193136908427627947028472930334849157893970295648835235491436540494526662991742370405570742323254484280950069694551648419473413456882720602172259941542810308558425032928159333018598162739339647567154722578821326192994073331565482741583457323350560767640895235652871558707588874665310309395325764762371882566636523477076841287611144591922824879368071167118211381415137430390669468658144352712254121947601286482793080819090370264707903248156060636762258319511020927297874236247880313575435030383376011511685575680204457140772887840238672345589437096823216536166798786494496937709103592427806620942240449616197537473636148799410165212683781238424018847004640781426688182236352367821650156599803010058083989067679354704636803269744883848890372877175908083758807755917963650098726522778807030606862125538000138160533517716853916157078423354203258130876101006001324791510867171155221764781676670480168585690190837646855020394520849195946982529371428508689239384470611942098872368867916482174535910598184909326394586412941464455309441954564704330145412560619238586357517637703529242339842379754492783059717251128244492977995919678380675238464614518605850996402072257969337420657860021637890098393718723817057131541244187249999189262301641121863476283554947113774942084142552247221094997548880583965514337270482467762552285219782408943936194394099131204566962128915738488724785593313486717427994643329707175267954683659741335235278857911548274300678227319565745685652282871255485468560623312404537029244724505567971307055493279261881669827021601041042338868513582240850701219171967853256659348654168802869202988712787859919940483457819554192595452713977451063100516140544458565130802588022203060522459815919308755470567752182025479915686784395460867281842907622604091650732634893587841013055970027481259116049221746613351106153244413792427892789583758198170182186475300099722698903558417454364796724189818153731981696087715132974988553097371671646344933766513702074795784882933541382052691383104621718812875109000906961032516161992233303172605556006160412151894323780177122457234359425441212573132458697548651333670769839483328884620688922828584835956639122148427963987281417495969532802979074759525301921380834441891143998080874207564117018322881664337271717459774970882218300910909096450563350653798276746989458827334372344362043568968532652998909211627222461122683281435120807119980457829706875152712993272915833559730095383556183678046908727471182671102471395788465472769899006004790594058769523621692652123712747152444509807058100904202110994274978227244295659394692827600092615706672417142687091232433908685195621463483095553226506090352369189779137091314257309179442728253008471108851623116978241942454189672272249431538673232893782990331920982665703739142397462427907457857162695892131632608348208635931643077887960017121778840016465461914700345933977857044079265659857329776815505479692351456433661634479354125193000726600523707111990750271994983293677318358550520566363716063290667518711443857322193331123492423407674009421700300968459771603865083877703064455325103754169157064323675521386014133199216698208199286816090849726394052130366435793508905550983122715665602034086128852225095498286392204179620492302849898590572367821456494820738480559535692986354893015918711758984187020652793523547680355317553487630429478043116558373041196702585712328253708982524864219384351395911397378559033083606714038118593665502089518110776658260664682227450875528441551358016924090918152804336245523391973725351043702087427100436711620462555842778239716678698507528362122819958617547145139952233611743513486969421542047106968951995620160272767078705958262972337173402246069918694642059028317017509557961207146656055632713006626979971644592567230274535775778401763971025514761078086175933118019475271267659229424081443368647699983134131895943676276224085494716301456784821609823497211854725915653187304543314669284262827669320291290878107184833505773691200870803656666980634188193326734023638611799875628404729502708517766221016866732979479351526540775410368668232897479437350356345549623395797190342309394855010611371880770729006499715930308763424659540919612824514979011760025885188417788659688377367513618696336063839850772136274002312511673149213189306372416758619480783439307135846957823124861636978015674243453187077401577418730597556218442145962864983912586929275304120747826212567465217524893388517649219158007065583543692747612011727301765599345942747165408578791233713225795982149564726446683554519021141550040030847089557444608059479518967578615762545606816512212331262475495705474216749838508176413617113806349847257025635052554077136102398178359724782064235049419515901504993357205962240152006731377631278529621465608489563114288216129674224158601467060581599135410866655987624052941606738026880708991929248296946489501707371585773602332416136402814153049753960582256667471589328453210183197037426077787496017344209348240030037421155366511366501207360455459829165089306488740895195930721639536999443880315545571702630915314839520075144663157540444332338354110496060226341461531058037971064693361910065294794161322312738712583210590221291525754095077379053141796795358935612297677629628992302096428613580947573667840300640406762165310416186201319452882223864791613912241556857740004561395183432833356397169152105028523057565387047400220802624745135568685661071616079219858490979053232157429533542755279293764080833467767606136466921130783680990532819846456553539002301096481189382434984539384811198823020377117803622930328248572293558639787900161664519598721819190670952420355308606110330773776780423365626590991437469011608868350020694767551103208682484949084749068734656570115927059318619226985866636553291606588880087836521990996525681123356025753771908420082152253360267061889693367691634430227710693882588670413832708656921898225243397985969954281860700301554368844626741474922683884959480799424075814457571360152353327499758178408192307114181653190425794645308944997119572571549960703754802957183155692583726929360909224909808312719883861687143159986301400852227740047326666875928124447628493134656492581857907632969712345349562828921866816696611309830564000630582053914628639226637945292736005697123514163425586290425886046441010356977208317571381484687773740324987230067429225482221741360700839026472872351105741477117463502034455291464053010980755570985774041459677819721347348829834837114759659192162512178458817861796876011223341551828895856898226118551217862864980757548805152844035540480895920482944149230454798978753376161576918348053804133293032753509877462817580246579607477919798019351410628199377003608779974435792082757142814854513015144476267374755925628070000628492346933730579091716140143207783676039995888256903297905571156177127891242235402507447829431282905950179630896308016065158482331246685409903184484547093692159801237344122616145063078916808533777779660870494177641232589485223786275034083375740134063336697654074357540172989712589115093461230424566442501731919180858747997750915777045690717735692415334804851974678130495376580464690481371057568122446882797014720540592101221558297746073452871544929868407734286315871948811574590217808200903226028206836821555808522365626906148946756683695579469474756663155269237148041195946036370846439979912843958040599855594342913855313702281635918150576328427338337867638840010570995754942916392581872373435548612989930771537247030129351995904661893852006774344083163825223733725988513888593502457182229909446928521578768656809608254881383418076484980062138682452252801858529979462845493115659250569215214045809026112960825585527660314011384800752125615799236061415653198421521210204134874530524598368353152313191849057361218969857759243654805317293777668290073967163220643352309909279728531898890420906691641293726856222925703904990047667179932100523794773342574573204915695075244223219923658188231273478371085556031907774876586784192038691126919884903104967526577971266728509485623649363033752867133946429713691168578609917786667694738866107622218975082307768434455901635080920176928542542352071729889367992872398853022460632491148253741607715775087686725741540311850959435317683980228479353477127733965639136348921138854788917127738594881102799555635466542761221419105099468066557178478456698654376960011099481200886177108675886732753926391812625634273802973092092361609294484189754172504974627765826121351096882752853353927599801823146415256850265474307454239822767073244532377602061349940937629847345826219866952305402826116521956793365707117252213655945030001525384408122921081784110307460361846497001300610254795842050178699909330956330961511631523523318833901073308861081296319875682719506397553512124120090137076493833292138087980300129257319849880537388519147554343863566309431574804491610344460917119604114504687808114842752716130181299579850353581488335981807234608244565442983055343010975695044279977817202768524345963237524278480360839950119104168767120544209146536153847672513368090962254907663014541507155689026153884441709738907064073974127015483728079132272723111430210803379750094731401093886448796762473255175518841285702912581200262111093036395045070855125649513286754974988475090474918223270737334702710945567577003075268627837210912750537703812374016740165526186994858301402608182476217497789117822770326397266529740791431834214593139656560718003478897822258652226217063796903934903193414468077125038855086088570847231695986194314860285727049977311559636088297721438964135158366761290964156007842004393583806793772398605129721897744035940055004128208261901870217779444060747898403097380199450892891907365942257278502985391793339761198167752026837420723868409294770529058597072357717199364721906980383384245930363717806163782364036773684112003220299491135391015178783869602843253658278138124905321204971112193408374085496396019801746583150361900064957220800671746552909594114463743844192066778546782602210393962568889485421115487230875380326756990107961914195638044879817109272936630227816562822476947035212046322610403013020503278654190248671942250438142918604635915637601417078759865339722569445688251480275636475773318037240870396107117873766683075282220495865468344001301495278001284251694522199704415122276344506121847113370793933187615581307947811774606247865627735052894056179023745138705734756324291724639893922236093231500196033926362124569931858938755473504519865019929029812882293457965869200288950606489412352865343007631643059196823188762418624709154588531096453990737768358859753633167620870444633352581824480018672617237273797422287676411003236321068391388665744845627172878331313395704558939798556961157767650972149541891984389647218073424814002702309131296579823621513739300621524492942574389943438668940034936396423932839512646366446319592288201926042173588190508265657031486439567680611659766643546018122444066013458720764598439544791395220889400388736553719270384323335606470101040981744102690660382774878635874379490360076613681091907945286473334558197783237750611659337327348330515138837088412066697778230345133258439729986390876789176194715203210917285646827530587025890377739023867060776815098960760186903506560198110613790602483829000243214223082011786795096363179118630927339670441351811874226401892072962540879450940102287646710219761658877106177855904507279021699857838589197699498600034407096892697953536345194897592206969487543356260915064278731614928442160207443261026547337463960511335360472082473344622252638402684765091563096244239916950621902449341756493720553351087027405950647339761753657936973136974416288443898994937264676193624224315830612430727879842436404260109057728014275948859748370861102095227588744911001847102681423490169544108103180458713516307645122401749528900856280682089721855525922222912796197788695025798260489735813458316461745829774410495974682064156620810392316218193832173466595814467084029724126765157624395537038332569231465841684657290287465985517469045908197830368654566134457346324709244972096648404605509526445853777193289302099524602638343258234258307697303644413991967953972786731178545712910152158683864560560043243411843359797510708295833295550110326129469223917383140524476507827099071305103548917022057471352773586525288418981343279268956345384799676198823363026220262889379970282954485512862946329345872690080824875563547134692417100645311696364285973330526349879246340927516811020835497982216807391013131096356961413457905034382574293954765531715215396281427126770781275519678143738770233922783703594230306831311849240912588985446967330586607665495922691059336455532816307033130801799863099549594312200180336596199413953724614375585303564137017154428763738406503270377731326466187333599065189715872318255808377501854341148728849856496361832665399246572855526180325554894066471138502163937950262720361001248745233523257988080970158610525840033080269536278512660798320958499257481894873020190332007455589791402687060505031336231379368488667825950396998428112497226962826553816680361857952656286271658005001314746334954119610544981322546341472962194642985659501105566467656936559278131452967352664780105488151757725426877342524650302495562447789047098143514581347254316527151224519608309893635953285078712661605713086364243904745602735418322821004552563725684798177017077867467121051852565024397419091494931907893607209069727889240638588021346498620574502763541762957604851530696079875714665710571014477126965406897795779283885591447665077255001947523335975228716120869403124323044656442733948804566502402476662078973361812922642728278256880337615858307301074267774730045809164044619989328255865239947463697148856283205960919131380894322520164275584443094877786112545485964091800064720689942979586532082149527799641113840753340781314102118962746973273110950076027724944810473460530986448788786275287848694965554943730362671415252671790351549768809186090349706368311786485085677778029602862256978289332939807083958903392892324075726807791139374399684519858985878783499846273522226678743859856924210704180219638592080391680668929558917537836298254938040704859656019252050801161523053280308585379385662509868658584886494144052284583442857000007870429005832089332605628044941022862571249367337056726602255985038019141106241912183403483772963756978423028574832425770604954448601423564391399366759927249634904597622334910370569020413451397116386182916882839839356496625968872995051498231588242454531252886696436864268693649873669936284347976621735632685444469144944694694557271628730256512189622134286180864865144633565139375181623991327493398664454642894392562266258136991929719688767596050867755103770482850456982953808477395890262318950961893323306170454435223925894591215425447010882206890700292297220311406075565167913200648254363381853122022475540678835997518006461225271242071210132399491954490262910604693478888456196435355617073378650101456117084170103069544340097363850036388423001578041138644793903356734069856375696402349670780047041808180756117697112829031268752355290930806483513571556847785185319289639591242529623578642300492818215380755882595087151610455601111148575524645039767676138483173972551692015376146108568055662583954595121524717260172892385505767007029293583259065910291399402610847197989886834708198479576779240347231674016347326396191314042030448554614592225883994351939806452201163659144915770083973698445815805474389352840582464021312036823208882473832265455092685461789886196088853657398272375724215638702056437010112889652484873245097103457226956130433081682531409357679546016844649588206114444494992810860717832882940900250867285778131566963144570919529387383174393555009017423360127294881265137982789603821151556899909829896581336042047629072063092489882482769872936054950189901428443514173168887038301364168974362188057709284372356855685221355752780444927324882412840464751548461933128170277992469238629705522282091927799334917860159539754267422660483269868047022704213887787011416347456798200548100449315499474607212722460091635318337113305153296283430607791996043336002676346700575984827003540903955066228714229952339212836203469871980361679117615009839550990622142142743349491244884939961111714784021015193091255579433930562045710196295117425549864346954396235834174914749175625281954906544344765886382352081451432147966564419650281571282250992443253262631518865776283015759279225571645808373554958213779190512059213932162936498560707897061906280259519092344028949276036633861774158566588024052579486343033510684909996735549204843206761044288471367190349189478983074624190105385236572621842244263506942716014197611992969151541894048008584102301006689545611091416791866556929082363610939848772776191859197568858327293995491784368775437467872271762603561974236747983333325003411224200721294753474059152864981659289252756202052724646110242598557668844255976655346967474480865146946131384150140666556589059220966936308083846818501290301189064610587218051885813676070098595777148165655583208854520810412905790644277281710007868566296622174822624232017706834107911007617820166474157383366074674622282360615480098932997115047236135050249078201844406341826325433768269407359178819858307303789862138546978788444012884800477530464155106373175502990869348978714349274126684224521699185843798159883102747987538979074454631290460187723787692557292356232888311493907010520894414519082000971533789314157065274353425801073996243453129959959639636574041237606763895047729279723183882087942762063062235691727305280489951855178559491940445776827007068978941619399588270162630460372327824859131082494335974393235769794881652339949124616386718954220504801219031984420662560097693480987042826757723710371893164858226190417472231409742883504097766392085369232339228502894195219356286400890221154106788456280636805738954024431431699123332621243766766398396964958299366579305405912399596821206488110019601993916070114879114073001300266137080514351611051414344211670553533373740298463529933869114477383112088914910489803878705369377422752494758537463804249604750052125134693470465838593676924268875262083020247253172737028776739825035642298523564058784200776179476546816646568471229943547099463042604651017856150570814845223872545227484267108911263848007730545124803492123832319005022500851762245046530273798662629082547620619461753745933869555530216696398097114166791218785469374169686120400527134382519332511727803771054452616310947973113510174365117103995926194299841092799023239448158550452722841537737057061379127343960779217794857312998188903381379572565314611129062885275869696307581207273229150758354581090827209296931963419122954875514686373556593919563748347122504836040740990118850566259694166807479229494676047133563291629493264526772730571353454098882013132629041695184748213673245640740922370654497521405620487985714140439643126372012150658013919156764354926665690545805396255696328787501347004676756988885538805977016527025760535329543246860506867845342801936145824074715668576776999402825925684315365692922355844762746074652142416593402686697938566062561260138104853944224872778751021916090770119217099746993492807685128355705610517959183521781337785852034036706873374558823391920773131620719787721517699667269192117911373871764342324356829262838639017879829828053072142117126962444892644076732234098888543134802259951956348319168885148686748429113720567429231005816647447610337825310585317482092216981398393250579333468939602943239120289410996156093392212559920538784539508984088887382996478345933280445341260003653160672703507361001097873730355715285483261748262100249426939894540257776657445170451876393983814105786374840736175561555851413351406397360523331790494393501433734180143339340753687256391462391122946966523459419499031154340094339132856298120710743824610955645072587460989738896508822143890908234568802637438941358390977504492029436314661124216515648828036894758134167416470434876511152300584901382356386130325192824366327055732900820523892339456567075210816168411932174050707906315179037803129926371662576447638560996795773113837054361962117035711211850661413302595351851719000217305338328641798250975984432402227559825053630019519619715028519795016673957755723934820197438519145204713213414799256835870588095045463257539578395221837478154012993182020588820099226064929863237974852274461911706160687618541952481276822997249247114492995482616254772186217826651705127057126337612046364476809151060582736817901831517211022877540687519222642082182324119405794493299566518705649835669097889583620398373838703436042620852339916455721914874987196296590694405352430453950574527856455956919681694487504273494763840720156207194538175200309856626651384357066370177114478575966105036428805492040208582788307228510427446551898651520485417592275323282166557711701223761492767022214940557169175772226377893827976699212469753418214858857196970735693603830868328083922374371102924442214683707933124024606273057120511078001319688856221934864161463029140351992884670972686657842631602818441596755585313336318215871067625891517705889702238894131735395965859391365014786083984834068953756748542937581734630101390773216839383000654539216302266876998015996057570817162936968711038165564238946809803775579112556616723379933986080198176897309351433678816573780160398760569430441062875002085513029300417346235077802847224263339382237872799432289189285166172132065286816024872658232447117074445142613834793086536110762329523058691795258008878787659308295627136143322301247993836418980667673569500942769920077575971451828202759304277858641837844258156028330174007380984545700484213729137143266963603989884157240857069850809781865593616561448601990930462735433197677414454877249611833265479019709030663947838525760353643588697591573472350682508747528961266362175426698335064444716360053376388832230666063896221647622166091574131722227140233867291240715832555173195479806383886581612432350552760151317845403621194018372570837044261073854026641695664435610451202701012582471426670354409227574327303890601107215861557263122277698152464828775275414376965846429502703040757185125360098814776359040562771238786492584206470390131288782059092729005573433026414641874072440759383630907799042429667471621756111764975479763626593766417707150530627605318657829337656955210258909303661807672327585804047115369488307444749129215359351290515440825109189949190193750583736089151209701822254699940658198722883198290665710221418004773404866835436497234995434050486895859907104615740519736108633438712305179329470356436029863009378240425877453358311439311290190054064688957642643986361879438548762598963399965752289680220248200789296994496164576025209284700446349454257325965028641376422494309832121553322892559117869457239234321442118196454161036597591053003244673766856041141133159548879535583743291491907194947656790669960682674054004315766129043298440938370350128824278706143560194609190828616477328479758807560915844586362256550997403522512443627120974254498043668653051740579270560210617350965107944868764330250263237706386744978391549088400746685939350580540063812219761860215626410047474588697108244497315547424831943372910407603227613377322560288983192356505070987176916388240529146978877767488846206347088776865036530823193845797004643119449614457729200733434494023034120011115456333515637326435908062608897591211990252479645459989367859380930616577465687234733446704918407255450769026664030313423737429306517667664624446234124313295873277390507204300319400365117762101770007045354508922442995754432269081534902846238148101973965153765716699441310488193618050256715035788863593620051244623699617587904627037912285838757775287507957471828956195002577672247991732413038643645776177538185772037683635292206451631468549422740069961048448963866458236432012704451401807794413443440224042276449182002472633636315901773908040588031565690031997031940013192045349524348018496351842458712828841852290120862721927175113300240755618038286854268237456560503746050868229819392733489437165668482680770011606329293162146823908453788241151250480331345590566796073132501913733049846141129020333658106109107969773668700461985799130452023972735281090368419996677356992211960516560540646065450889399992971430411636717777298324918104712125586530251777519210079984914895865877304565570117479489100499051123024270092884767549130069102416855469163230910404018361024830792371453931034890621129702718099980724817004775766473561931826448633257103929825882719744111890854438064109987017313250153186250353609168034151652593557810402610642633156392326393344512402306996885596892291280820759759799398857772103569214302247985504680438648417109598578588820799895270536932088366793825795978308052494753030060308350590639143729103324902227829391878450576160480483231619777930368162075670040479708785364915301361989891737445424496708164566005432686304688345071287834512610132134071013767553267316462265450045391560405728662958014469012455734435553918003577703608058727832546681951970668040621583230195752983249131954598936835965334191825809186442802587394125386120059859495214246227370114249590009067074316943744408615458260898446612822594974278920672157536743440826503326609475218740257940533643451326354886677255978489216147396478173635364603446986788961293048919718916434955762253886182467126444678646578492012986188044155132426152442302863362747108320271311631326733790884490900942043463992878002856994311388526326369656159120125879627164562713374835186886652146174435831561940442733293269017100695159531150726290215173651646792492617483192379940518925941328086457496749087366120381956118589140154123227215329000086808796436935526618717385733032409971417021549671163982309814802559812365457658225450093920059760136417568640274967291226141909717091313087119400721707688448833528005708486847409359587899193686663412859346356385786493548586593440796695764050559630367459318405220191288409934207562864339806162761611397470509429990757468376421158932043780844002286882320416966945841440322187833173782226015504932029783842301786800470084714770918887986146560141406218153814265010582800953717083623207399305995970967306434321756131383338306313975637935598215470569289397893832252253368783885519313971058680810684906452338384286190586320660649686126890892934666460558823138380454912017583611591027622394350560373062643804096498576216515138603704536206747818480602937659955698673315899885839758860953971167635982973929218373471930902590438142438846652379310851349330238422512140498661544988569956388393307857000433060352433582634092981063473715535882343999943490063267077237500350756040116360633145647072919586550130478608605681687889187022293515387898455075351188646791132650651770171537659410686823362061801722055398027112966733746151842038448957121709213967923158495886538214583028115650965725098187895073439746566619408853489530468997117319944620096793394680556120228053253781205090617715676326118294664553856925394809304899811046063861071647650231657562872050756536941569054795304108626053553511893946292927108162103541125528593284605901991269691096255725311445520789111913868712553871895301280197655301756289475789269772745685235007277136149570823431399957327219723053871818250082619269723968234429759723427692972221159714856380596497369173564593493624323716600174085318124218933614118685333080696103549201987780225984163554290275591252497932855461717659055180755394307009411474406390445247352832722062720809624085263507428386683721334429527121980765864836024511860576035136675698909557554603180159233157268630954250585493474370394088932577245404671398116521155860423488851744891706678336762018380213415077796625250569265169487801623303496398172332345319685578455799265643774151961989350095431040765808887912916393755655047038285790159893241279946940882066836355073343222869891181143616839616700658234704309802952903169244563839240268422124673774306485591731494798158600958337315805758238578104736647599656440891794836431134801617394675731318617772296745758059709529726209292067347581825399866486282188018558757606725122687343045796108993973732243387741684297402779155486423188925288241047343808785852099395575940265898030360728310182647054623875535166626050023439470702310290594529428188528861292094410522685398541244372831275786764518624220255436916318049367314159804364029374667702427434627910128656876961353265122516710882840009072789583798039392585110806715203761904799380021972041436007182790145582149697799525287975109307784537811419656979967683148327241373400921769611724547707631618665420979235177910468583333046959313950983596208283728418515615798761803391891129621085173693703014740905066058557587661180037794199085056052927519593768891285327328585323505781184522324343944716273374510786498690732133121716505836460805176362608210010942491776714214346658495197448018442933049482999504314781167361878833432129205180791001477215902813203832255734147212962376969016426236976353251060982763331086683702805880535735653200866527875521333876237788185773916812141199945526245802323285872957688805502886182810152460908077166984992261704981107884977544906323068537871467491460395623695117658540424656198597718762874642657124961015880222527892209015050783974669352212440305384727117750072419517431160384104600975099187824884787778354536402665783125264865246882293680869940425480013879181971818615838803273660327002383127128952259907025387714972748225736580031109556042247564895276308954692050149484946321761144134970695904227980383126619443210893911682310330697869921210718121336574437345359438845041726316191805859931994202016180617707011729283001628227853391680781920714988733703590680006496293881093771342744261897263715929582670305343642385633817370316286819431892341080041194416034940193012917246305761597737506349535971631585247847272069211061947342326274045784204054794061078436969375792758058291681865498983642732723361618534276437716407476378721979611064255932469456790164009959862299741857841028530321677151398709770917295108687284587247050503167855041447166718379177774869105347881174271280186628381933785973860452025370550982322465926002107946548132068688585594399682615843366422848032973774761090987060559749003548138168597168248916408913687681341113670931492061772632060714204784797492142376926587470210292840968218619521659023814019007801513105358493841846976169509409057744840088469385498685302407819537477588009037820053781562722713379181769522989262140869809115210880145414630061163759510672230583104558337461197736620993118004566369255650710998733158715025570498234759114452782073050927593977293000579880037695393020040209117675235579366856507160990233477663131492437805394946384495183642247468683067865544122168018322890191656988777452618408022528015951450545023624190941257348008337671986388578702306043089364192576986608561607849797198461762915961668376290903311059560022521572806096639713683280445261400397938970359353510571729718139189634663268037065122154911979778543914422391316942392361059497509715260738457868474060999586408846826238333870624805521593379038657627258140247231950364788559544892174420828153172713108892994473114143082009315718698596123928940194461141556284427974364736087155894774688651850532503816644139897798167232271090305775508888453072112177444310956144326527713791656091698805148931723957006089856298459155147462462128558791600627291543796142888298103797062421726243982297125703042790912647171669900879075782416382055286005032923209953218976288450830156714071518372124216173712887165314476951016332532042179124038191188243824626412208611290179580555032899176764779284420629082124827185975299069973322510058869260040968328080477594459355797401557788684511099969523139763354671753646342271587050112656491000173936463897426507355619119871198093608707803391947926472728797603535097824884921343837442945583167409304039225885196536112299067505860665912728765917160118487839791020263164341810003983970607673481300498408899951310334612794193392308965426356685864350185119128956632366134378622919428994177107626205872313696726972859721026487293752185273091394593259362180483483628806798415338331602566336418416291353685397303105067849335894133728403969991797261044640357098207269196551390952879235200328462261858885618411177462104951215639300702040537920461266013592991750863076854991001817079090633366489772981731253610385992978816465752796095338937529046881781906763231358407389231934581370605551066608904321396146639064969772825420127067465721218587700709214592381185388234782083635904876290046261020088417375641582680477514405767216837481991773421833605140648353547057110894209759758786327592352869477521145010519026126025596777921961794289417614021475344870922142271937371356383757779964386948677398353073514844528621686061333390151581214899502035392228118740259682435149509575211312229053259902873795015726247354308591624280479055351674612735191571774864175923507578930416918902539471434280149149801286896295509976659540429962810850299809902414502273460594894342536722527868945731660960585631828663409860227967348172921357136765387988101272904969515887582421936123244630144327714075512964747272546268787842884225658639698170192725643965460117444282060726771843736471564782117615820566403165701443214531666247356080250490148008999343431908420847885243912821990872182525079305897572842201630783122117066504247449651704453376155371312785688825232827842401290056266883840230500111100048799416239693267503742260546889335143079407154886781054665230144220563397227007530964209034228909251791863287869404408880149077241667315822113029330226140728556794171550538631564916034621031808826073456186321791080553174084482802728499481203726493238682298986584627379011875283768053222589138890430699432425347375042322791489758313768730448585190210958252290853847774738241304111135569517903030132371979354358119970692138741215765514401876530549305778989725826603769165053964804738556201028399891622274883135902521049213267566577595080097275288058184320193627119223011460625221423022580581984479891387096134633997900065001320876932192317794528323865092546753429997390533327394672570028830087570881800798083216139383138460104994223135469617483356342581528247600334293263966644008300532867693320889484499409473806270989549514288189860729851281508460807206300731497924152600145032969436110811218143002396650554482537258322298360944117302308645945445373968460990165722314472236450439534207822884779505636054558748383582732847328012470703287564136055113606080298226688985475463364700480722297978487864008742820120382292540495306022284992890432078012692990735404805482808083883973831129156879548678066647951760043959647536797413507171933993923959481131893584098704924603590963368679416884887991512707001784989970410155054914731114457913756882177573813883675133907067959851104420921188470394053064207661455673429231197185965075656001999336799326095943804923756204994349341967947709144726323775629075515139429304587481862534712679789560513926655172937231462577831649783665689199358987533224587224486085126413938394207149346667967331691037249254592729334068430147524214377176060020423849842156793645707350199386337935465040218485813622938455636229567176835914142644696697075104862571862484599204266194406885938580401800240137321227740570485973760035828560646836435268929998490442701023333164704214443957758962127944430960361743504557198045781337973316391569607255308436971080999540285640498100555766663323512605720987105251921462427882649402794608716628912425509766780850215760126078700747330297180118947129239509543464789335125355561660523587962707716338271413749111308721540414946071380006213821655756734988270538538048012241529957721783403055284608385920560150437208640301542165904457578874964819099409563195923973046483229214517462501112263341042515876217819404194282942668043155137747432455545874186670911877148610768755586046960136733440802705875594919387357402314303795713998383098199823995357022589643477096907729776034925923783410360157250503699200068648398526761416502662650368931694907005459510357156429920308050879899704378281874712430406156950545596404148756754941417817655695745107657712111259455571217026218321924050467755747856960628331591437758496763612095728934309671660769638313681732504528207090419992169334354190488180957625607296821598006956351977315504812589810851912743897870830019321616058351095202992299779265059584263903163501459355129068518897715074209420073454327534625327033111408244400239303717969342124808635419192980315627455206657908740997761340443009405051310549547505087706890557752946817927817010786816787969100552324998478641623677997603530222766745897662799988142653490514635642687898653231079415452326423713210624472842953763992909069304247257206429797569536010697328828160074934322239895570542547215760681785249481104259274717799007451956743545098921482207512248874631696790588114429364031196374327393864178932035776116453517598242919363258056447995703278294624951633620540246241404602010297690538298311618577495122525140146518573333739029348656380884128671541596558144266390163484101099836576513522640635091123363368412538543439811828621223024689951906892184404763075070077403997596966051973492550741709541601425892771407178986947081190385060855403356146919698728537520253081635539099573881941390610114278504013288701853718377453655310107571573393669347157147012016738898503295459867503733373655947155849493459746308567487544404238677271525788948069229527312346820099965923304196648432301511096877361029564042254257456900791174072505997721170621049556885984811966645006876261259398796715474947065033413233709744430043813042537382893413709562443959700051120859058080329277784560750086856013245517953716258268623495831749765299543806802378424865375696259201264530921015541490080501101850168521186785156642877284185210511359971812213246043527734472315174520206563607107953989471580808809265954401546808000334834688499220900132446078949686010499166780922366055388023145215738686832611192650783306646207539881628060453690140142909566023431448260606217135519920537242136094095477751489011194204740265622682685085376420534458058568154000262062862842497478460524280217365706386849218409954061487647983916989258101334939305089762577631276313645731679165841012999170252203659522776970382193468049008006519422006962424701721513047006047281861326152787216517440114967155470234642165700537134071245044091565120256399776716896759421207722017357979229256102125706747585452553191565526510578007446069796508332854857117071630552525237909169179051744817622567910389621224808806092510330560623591629837937511122822985420717809302638694307459008210698313758140881185292379137913353591215781097831989275710680225011206476049740695640308943839186445327359289816476115689696513457816964286946515452147999785412923857192511261292415479811203399997435810037400573537165076655728230898358050953897190968342073196365132208606267125189552451905693318497307869152890220113305735320638087685408998909598084325522311133656895210758591154976908957383257698252920637245979924033850173938997364837303489874591167564391168208765868952796101370912149544214379946144068779604150761037223546961639247128259505065711622648159225509085740779128395803090039727252535145010523589379898929760204313357522959562077729100354877593996648158147143289997164956700694423412946710267340697773037951435401533011730761064049024256104379537794599846490994456900086478779966317331948889519214413318149141433915986160667431864366797270669824882391750870110722323994056638810377604014602895949222790906517184677736564729061399596201658610783228859744274621805702700224825648616000760637752922242319944311120279148751721360012505179310634331235074556188369640526419298515215569288893656326418157707658667364952946011383596772341624168585794896527803510145597355085049866935375471676771357611970193382231396456670682675630146944771463472094920426088257367340713245452332730134744805859056910427243281479510361754205092958427293366911015239400460338633155095327112672103709709954566057457419344136009667064187747191086834343020871884933392500354826851750735724250344230342590580496455561306337385121583837295792501587533216076781690776201891728467079862589121211467055182185724100083664448136618123082941205285387394643446979972724926593024294115078336172445978585669580447754123779521056053763002513102889773124936809249001701642097935508374818317198866489460441149554390333831863444072036368797393615516991329612612837809087798206822810432365361171634593413646058181134807693653866179559266278241037035299342932147568803380358190819403544697632791418323107977898687192084351450808925025149156023457369488931273325661650502894937172563726470964187117680991773251650496976561858551166522214973718300486537082905183880651576033693236683588138220163050997600407610123348451374037146917496174808110200342971977608406433230665595881338225661708385464165293898387585924854925642160832322692496505360603250103086414753715986966514577968347285978578787492809510864539567237809865573223292153333031902919179216138254886058272122948340570136741930458260416985561422642306125387786422171107141546065634772063739421146965694418973865000737202052779696446659780688579227296410050232217929897535423928415217232217746049812210831732664682497398575480727300803479575233419632410284403240430013424938398772449408638609628586658145819942613525304472056456633414554921960004594617509781015104980071565748977821226303394412913685208111563463585686005368829414321608312524056891631457765980099761314820106975590578254348970841255233880194821688303812571159356819222968210181241849724025282097279201830301341781250782334580034192596901801280193028023249485506196827817934030373238553006877256701090419256344955143637669706116496161230182374563877522188959844277414160244343474202949777157984427448651156502527920925754876874059743812524342071931159913375903320402752406043556434706661196308724574422096800450894158773119044160145857133991247493361295820098176308158143507755101124888023425047826554260195597092935243849704459901482399085513426376893203025785302426688747936680666937997177141332626193287610361548922412646242237665891759969063491832975516337821297496789033148545904799391329488351605246378877201132701881905038421819954103924408386342478007651341654100356583961857936744152694243040141217661430742729866911898305138852184617528660034652330276170498338306017467338041818582793723022233982219631287561806985446745888695812297526069885301316317194167122775459143565659366782768414949214205415863599290721909173976781046614217663938920047484158110459049138224561612764976945691683895472093088391431414481788179869752037206640163178311858091163203466128714323926164450082744397374962086514250168982371687460452536866248360423536657344572310836382573900671545442263662581149423810219873048166151709207692514818954844651006874304055932370511370229269772765266363827609855206544765693377331329639361624657089529274839077265194449575537434359455464294602356718246843407526287967951500017204283034451157760740679845785796346899131267471433877089800337646111565320462373353003061610376536596418593562723027583883162964019020887802725716149340992250503207594036275146522435055112363122576935687095931853957330927747011904828031692934610829475861057747963652825227465277311756329180395804667384683257210407652661572644404450252253048142082740719735597828659251395774207670944934761761336255529086668353558439418915522020886928028855270199031599785542518758146692629357745131410907516842396251218740786332967870167728818097014096905190193223313936843615062089047196012168134659717173452361342680813678613147472034779620882159283475587459872499519079547929660944215208322979398329470490144325658205811928445291151469508309334623383209034270412588313880273537447149462843981119932051412607068367800307876847891079713465590872325484689288519380957970595913702016773030254513947984248333860348780567374921946811999389258369973697337897726462460209467109052777871229377359017894824227454126210681740517363442506893809984233377180518862106113082084044754645850930026193239342944630159152428831517604517526833272269702622597866830899194221510185970100012784059565538050401407323681578635255665311954565015000184069402020679780720617418557440480863563028309518018094023790917242723485772542913196966219639052863034589759367537523475603797813164204221068699163093246040017468189148458664232959942951707348963478328869797090321664750603218911484145977709943177980474997551010149409118062345554636567782313862882647877684434086725159244018247384132216005177981073862300857397399630215458078454496861725465056821314904422761676162209775243228234284440919522059307410058496456486538227104651770799425331959739024127672898741296557456539313798558184692821898882442275761828659035087475963434833934847678205550645492033803997277108936589518106256332738108825884984684668190242346856320853250076183724070678101311247571132947351863910328984107329406928503950899491258803222173930075634376724521156260115229943709700221873557371864980902079219472047648328744299372294123977071561042585464249836597687676013327841667319855160925562086296862842282404059865796350378005042113895355905810102748435824352400197945401329288893856260351534698939541019178112477482806607284649660833204746270725003517460474887867777131600119933376199446984745304097455163797835993037706173922190359993288229607093074441782903523856955863035077293914437998166595483331520856803980762440768830853677458590944174431185542975228939463097940400870669535142133455607626774331176822190515052220177240653109755741593811646471452342845201997869141543476516397394526729225420566990285038623020555489911002622428234519450857456066270253770868510717778561536351802205288577416722341667070302810383184912160859220923111692988826538224959929141370984345644031992222622332900776656075223564569730645757501025605367623010379144348307821890377297154201656017626687599534363871968389477767815293530816572664651189589400977807274074385338696737143106946619593301238495908229964638043562048159571903627545521418185397268471141705039357120569912043572979916418978833248179629320605605705522803233229188255138564489416480528756028786698139561031477888420188950237797729611727658758907866782936540624250744838177733427656551583446768069077828749181308976895163153677900921265492807919110806580444037121760047477075131535895061414655723155441307574694269240423257303792370448450737150964722818136643462520149063253591257738580926605077904333242923022828780871838586149191958497434033818020075027634685854524871504848338160756509149082581524577195919986251738614717758144425823340600465531297458074420074717134643768021145014337648896427484085827415536107404058847638466743403160066018246091772819942402843933491707865418887127072422874933360176926519174035245221423633765907512070495239092684048012024393353562198106955693659313446630246724256600753622661392315663972508434476334336797607462155159685449203087947997179785672498132914625065767778619570886861249478343988809677733234505367158737276170288743121045068668074583839625378197119929964217479872964439024974960202586851662390647443290250737740841868738716715417626052034597540132642350532055886460497128705003626896555250913150763053756391687402661323693386372813109989651344965015724656876961583706152168463074579627361592050748621094737359137251182935820974072790790046430485739015136029569041499368719078884601736815915651416535404854210495326862541684325489832595849932677099996020327981600654530031463690953730576839943394589869671705063675636365057245839948606284656184155189959848696991297404899817985852030825546810013716452455250952270210852293125588567784179410727975159163945457627063130636159312692935944739471193036002761099723419676428297714908786829057472889911304599574533745049147946283459623676075133801639930915559209786019443298179189865983561496108756492035794119604028407183131334730742624672789163489222592557294211011838914605375742780718610681156820452409896706731069313769462783805735184217961496869555496005654251468650941976473044100475864458751498805852363649490899687769740904255041105301968133698799692851238771005828019657980372014947782530936892212683481569611064659486168833715087725948880608324345457488238818010398640864897200346054024455274312951948031581786988480275558986912102557254115622717248077116276021111620187547792993919299193620726796532465064262875327120622094937190212133849359218954693886158034085975807330468747723583811353059065134551009894000140828566862987282877399773447679158631559251316284139264176891797331765425626575838063908769332650793346804933929743691698394488120342643369105443687831955548980011793145440487398927381134623807698522770786840115342973063902769299654145016573637589286566994414468345661045430453770067126332705060979239604767408083874124153687524151202922167858909607986562100227698231823709374560023553717708824652726899144243679009087634803112928235540679005454937169420561216901870514927203336960658045871477488486904477576356915128283220587806741848406367499373421127747328323037714607414360041255937009267935383387888799392924176049579902800594016669396068081198564384725680500353236748583143266582133630179157625852425954460029098293644599481660121764410835225536188708388406377923953186925127168406674433271203439123430415172905233919632545777599921069242072370729505098587234002825493659260991548725580149487961384770730595975931200274506050499975282689074790044346904309115301852698425831705595537724538556733839680340911634039850703018333564918591745228525811763337600107490222150928432172692840556963127508346140078923825502472673995964601360285437038293353937869282929683140305092605330914426580058759121991964034645209082402210352116730758333451029825007462472839817784967769160596558789661603136025777593858930726936299372534359804149012151210302508420587289065496160824751933282080538926605983786954505339853497729589619932556834031523215781141015436068026662399013246835292533985323021340736060346035421918646590776754137966255730646014633289556976171105599933889760399539638196786926671571759934679669719474785744081570406432022973866805102133068129173926439598127144590442515350609700741443968595585988465704749415636668489892258509751231910703932661081878705268856836234079001319899836000277474397636123645988797833363123406496342034881089362837301114118751589888887516117357076476851666612995570557830082178923230446254388959682369988141548398766151798875363370149901453617855016229229513619287055559457034973600393550948483436207174323321940984019228829235915631062484757041644099406506221401449069547167205430884640951782242776052052835287929988916612319416108608414512648725145820902706349001154910899912161953270340014967644743026518405129870911708049875818847109026175639359567993415245541261507104575414855563436435241462110055966746908902757451311194543638363686491440080305610353361627077526674848992249044432286787580115052333892276285379960683116505792884312420503468630463317082703489402676850541185986273412933045162311893998170790113922326616782051239873147965300630863260836388769109934044640806554604625300180589321075751446364440128128360730307530068291773455742118646405917610543140397596634251771056100781626802261449790298576640777859461590725065824830705403591849774855905754693492959259942625842703713579446314585778094820716566028598821604093440770291945491291704084066520980511558363634266098469563951223783431791883321454042673350594290329218335340253760723922949504542882427696290769984454008628420090494049492265234863624946541380114428030964577333591243413717292413707173623597965623867674165148618781782863218497924793961116847151514238861859884387156162257254239553801057852366945333825571819102449668400253346933327095040891670733459094974870572709571540560559610395764156595395432773448737696201283390986742184754976127395054194036660164122640830486875818535906822073376926549373320376144857901035002034920932216424992517620088656873387391856637878835113321430953215732598546593460594419193103965637452903830176734868393325466535768814646357039323617381030892372205115990979645167226121633369388364347501738484022214662947943705914873425311282559364291236389206212475206704806202075508801480883876898031740724621247474730176122268276127921134939390102981807395841433065795995277493113828158670782945948339870019191772364332627311572627762116780512162324758074946124646378265652424339784856514372008183804064826656643396717833180039471586410545227094552889581165062557097043841172783303006434673736667614806096954466546377262396622499106114781180693126228013235643506167413788997660661694754363758004000119617770507658904805327417514384936820024550114490246456950644974195449572063537038920621915772698687880062410132803377455413761046066631955254099556731830279617819012915017829794476292056682746747176014054263306964481208864530884608444961877001724472646197090833362275157078037521712129635453157606209516035355232220170359425014806709519828024764857593456353492999452476537870203236218049465590631511673447530724731813652537191203679393951597178602477040245022961748597444865678801028860114450005711466288696967542578314675225381569394168849926892585396433788634681697016442527547180224687461839654335928389741993871576958536473197710010824075116678059580698073249098368758481153645853238515995089344909063253149081472272402298507993427933589346707748433074982618584815922560957561843598816437389058716709947993317329386113192867109652570451217799075341374328319921739017015696755577499095234321594623226518710658437220077574389752478411970676296446521186875144117131248151893195840260725286867834635585324625023953156048090481235357913557766381321523017348094064701062697849182372359185756807427729804667625735509997644344736575685542911505741143448498260289835755755754145137783141775908790856858410261034215193068445614692022333512855909309916738506114121903651200164494510331115839490441693407095109279247272499883956096631984847048727711581309558194721608096854523157528077813746548442473103975273862554283984508215510556744545404143057816910664276777798067752373385168964451261927334174816830908420956461269899362576316330836952380249277145881488655729130222126492832897386807021443592549504362412583981443730505812688667692492587205099524031919172189024782981281984900621401937343579223636649205534087013554428114761857292743268957849961457212002537229544557252319626899248251367130914292715618652444988559449748721407797144389184582867323572866192222957575877501539165618479818301640582891971830780089542015906438275641935343313230109618614846028796533712168545927881013248048596952859946929021304129764420601934464732771792730390684722073940317963265253108608870738007376386713103377646583588429772346159954528353412364202508049417722189357526968803640664401190211002026235470566536494639902453063218922736621652523845084343729238564454981407105351872848894734126176902021774186465731785741617159949755180928629587765229811937453186765459082959740193925193575077766249068074346113129181643201434724338821909387496032788201120800292238997225464988434280743380384992863789112365851485641067829989841042473166031469003525327064725528653409870492996236525841480752900740639397964296452326282569681107826147883836371487336122798960918085043970900193883631898851107240760834688942601212595991021402930784731235391796083393369250254896909398474304966477680882426060676121300787425247232693484443448986355193296096363891967631820786051754075785133383806254001087775165409904743345382743597144688783866514458276264927559079211797888622714586382854825847194951949061504449271465860896827872375484328860148114252842496503343337754040190850365850449379593178664283312601470166317773401729163467328596614617503513768580242988461035913963059733989452045746326127561986582548630442823110783498306583740673173457781556283232232723749787310058974554934127392818219602713680993438565703023257090019998423193322782875402779612215369361855546251603831367770421487650989796600705074195803691422920664042614178610897683517753222803000424047199230661954654716396576967446573070553197016894530745641510210579814809356800092360615261706032623345070792930156992980642002811857221110195834399951149288727145519341411465196942178425977649806461212326878664910249058280752229132654411743915658999118041213691414557973876159144938264160914669354034112974852269352989760887711299301707933969041634195668994054707936224823124413335281383663262913921234496183341957485388573570524998440343185289652892558710618454539592714552708332033941082718001432137630423169224404152907783970923814751175590247274016593284251977155074054714496107808383763380349768270528928585647724654505976134475699739480741844722418380195476702578318758445056838803766687368902709795538009345064208921632578003072024207917030530398211488242650764350479140251201468074204149230655546111663517503442815060393973469013141512863127719484320920231364783560811858791736355569803639325456829414129852056028605407966761002110862133242968085516350139090839466546275488364050540002459068737732216994446579650365001476847306877566035223975332876270837623264307032779881063796287904405020443464351066736793678176742850689578201134603558396105147949789258956546288959757257711516062014296879694987239194188813875089770838590229659859938090294303428764497076294125900930564371316157427208515611550756642958611274994812498893447000824652269131632300158629745710020116991461438794783797913993591705886299800924619787498393547837236842335325093530780110857471636091011327686619278910085188209459499562804203228433289972630285596121026150570704641924684578104715364645844782521551352203096508146283189234079406276532606818093733566212935517990399549661179134539320931231138240497432875057858224580486783059170141091263433954346075022160917379986437526356260513883260570529410514511878145909791384289214632471771902552402411294187067686378992617888812936818825407511583344257058839098035510483703124522709778786299829061406605135645216690879041965609065448076530288797503401590842517816853673779020861542977185930585055883587240354654725428873767564661617590874572327494539393692677093521485640353551574451681825147205041141516493013249397361936540875918483474980170417420518434022917718872634244154395115000446746483190660869027931214818880880183597681203409023590180574332283859136098827590940763586446892924995661605248911355676550122809923220670593692648118517850943661367828692374910762147298152271342248939826175921838733350553612475204943432644356312164702670644833070033855833895166417030557955221601398439174733492380762104132570844830340088788205741498103215846087047160469121767538145554310616895137709098110620997242204851657689693960602087782638016176005158961245130102954811108319115054770250342087175103262153766180520081962390076199041932739181798525938429723695119308611197337769727503808846324938729039983240093562321734838635783883357301508438474642311790946120813210971906959715494532861948740933805289352359252892378097299016857989316071572625689053480346851851124326661294982995709207330388309352887188770156569453423655402408116507641038151572696550745689242133639017130602551269804041766771019968295392390419411402074029308614821233366724638030057423763078379442237425140994244168066245279715113673348577079804489196022679469672094208231853751716973959285451957403773194911113689274110334240592703570731986375942309050815516117798590042823865543126341825480247764032439307697702644651090243624945901444089470694582098115624503685723127156688084708998879851437512830953774021847358894003058338766690092533855691181674638435894936078392673833319395338223902526242785533897895765844067939003013882040061150113126962615842813225748875205800378247716127670982916051590863645237829121965140506268504482323818035171632193185286443849505075752498444578823760330555221160258922954554580749369447916468098610147491232398264962233962089778921583273724743702989713648060437445223588975038296298871584838090586526053964000274208418329649849729448914894382246317082908533413262955603550202892309117571062637771472664924575402356826544241029025511507364378620033605843788968457785110088812570723132455907507017336268057462781056209157609617443314414699681868545674224312215244817017146745147722364846504242810769525905237292044164521582735545975858541907270650268168635448838481309364364652657490939830732580275188967906897810179352054343055788925862559601455478791246619492411685949345326855123823949551703072777603330617431293616605274087684943803226103391482664284738558466507427724539910189654422896976638555969043347336079542323958362808961744199357467866811783084008440544930875778649426432809845437623283893821342926441286213920385909706332784132447803381854823024004779775448745344608660014153664498770039370319474099318952908203551133008446461293602021869422898840104309574142524288483201907853721057946451072029810100829045155322918933006875479462489807670857533207172307170626341701095303639059175494492415666151206570823306453768023101841911303654157775454071333837611634822794962235428494358367901814537217123245050530436610056856860555556354816827205293279776183644856698814899194504115319361307291927186351524521068749643248290937501269356109670484408058462573314894339608297514866704558673434857736672529052520482173475974929674741771134325525913750000231391933808689265236173106633677996429224825831852766504390521331269523711167219069171344559569881847419030823066628889564761730202171536675810122017480927519431537616573624651094799684485579827056363708639365060135172450666487688754585209409277099322272196574168389767242367593968470043451577590628621974592079340220463123696234490120679762467710183499819903600833979034019654799821358706350797898133105690245522848721402049854591826098184976927687784800887322544642172827765446102824369296912602375536442584717505920993324527936765628182824182092519207908688041312156934367497444599922469352295529673953848724461250569923321178775551622522678452170249963301931626952849588779486083665388636299127463471997783372107315628281587549904487958437783730865313757139073826366747355522286994816848083152907548570449014764879266255163962697112103067131023046910682615925113588180561078182002573255104857295882362113345831172197414499712921119777453079784985647271072309728986078887392326702745548698778700459076059106410214410445689192177529381153405691858966111271413944845120224766716103386382637795044107223275288004083418568214585009333122134641731969164588849519059980944831995002122805609432295061778883536224684198740037956290869032411693972070609201220070843822677889654476154886605441487359900924637057093598855984151648619104879130713431980628446785597353591902934370988907809551030423521388495143010224247424476424057475850582506352564969178232796729227154381766472488346416970041598285915128766489645512710209536043492131039745130335889032325228706206282212731124448382173865595029268408405782890160988396140271043602270789654497068978358989536630992569658075902248586533804255083398064431660203149174804985028894748350658580255265040643087764432825449243187432280671947903538754262749131267544310009848274713595857729569423863701356059767457211592539632144674909863952290928790628183416352348211972467378698772894578561891407175454010916012315276360136009166544021613726378693172835468809254008806817818228871914103840446906785788068435470825164891171602286942584795511309126500487276201117815113312820294168450632531281759707873848409838362895571335921811809612300234407117340734744091007863521329692371030832469815521194559110936941766347470059056706543586746018182272190952124809800695487746324937925019373230716659805595408887351867419363871319179869052416303120080912483705116397526697838982232260453113476425998733391053927779149758246908040598411942483194246211211636096603504904192126259737483105253184806998156736692439527430796453524702990180914684026936154574387640379652392018880084398368172394288337915050333580302678143790383695372496092736626553115047669629268264034673235958788381235522282980251871681754827300499648952948996463282980743542361200645050573826609305075640335287874101742723322344989530106204805108544367556658349171082350503559169546199554362041972361984797473190500962478984305687247724573677463802274456447885904840098885516580510091864301254853650709612229436210447309621183430947497634468672490128154552621028281754958762631756500858505845772723748344017184054096571343633267366687162004262126652020420300770413479254117891628970201479424976538596752950734929996499603759086110976761171833028726461667899748225864471604419282667166350585257194369988427071607187185150405332614805827511368932355514958276260561249849186100473807731901807684797094968553737361791026248605583097377200815752138979252670942593966622462813549776074919124869095832300328040091729313387820917353053702607643788940018374617486608084057351490216058383430700622088098895428123951691806353161336517369501958508765972870708440303631846730012671334245860793090282725346130757901932533298744252355568996043281758015213491012570817758719141626079905779982056589859584007865023052674822301243461739736597700545979581599639039319729176048484528269566536957076151963777337209468514695292447279811755654201253570445883574196710100935040294931648445780755398304425353372340015929762302622301940487174897873007136635117392029440619565074425142671574239343528682548379176584886621638799634673530573855950118306165305416193981602286725694963421002249603750263080676776720878582183394110757969590132479378827327021040855598477989187300530000929481301018923276902047209237589302251199043360053224975470330091129257129265713344425544223563553292387072299627113301831268831478557445628616360686684758845429183278456393830773045682526008996814001243866709551369306595444291822552038626185601184189450369357058071135003557775077100813004549039900535674584541241983630521210868161257629876362025156748970597402414274462690056638566348708006665585292402158784613522194035798680358821370453435748843094429239674068012327276895122812582656579403784968438642102122732279270236210001345225977572792041474911989376697522878030355985769013277279145434756711156279698542507454158423711235502682808977776340548158706988498034561222849188529187582997703501199044884557877798676732028833827190796653927780660938314967705425409749288137729654662679829225206052612322247052808369020836103049420325120543855951624880384120183054384305111434520541251876061987057729116361565202611568142165482028275053743373025480911630567975905821413554522711033045511682818225776629166233051349615351676551152755791481918197472601280756909232102985071116060380091086608935901797970522071256170738378517439661196002508103589137273044247690975819227347371483815830511517159176248213077684909795743049195683071146279818276625675277720146659557284336193907187616614003344004364522953282074616891620342257030048342698919790995785987329570664317920940403293628229756979393104324675096792162274256856451823065807045590142569702336959621342965794738787562897493078294665649812359145918912053555782584499647105285960116766325127803790032907926421797835229788082071893465938853567051163593886975125214257821481909811255946896562495020072576552401013474660607867243919219693042251150413524355733775150267572252088506534187294748149475615230072742537448120988262779472218047796372118351200290804566909749342378200936134130752172110253688503612578668288932491231975061412229934379834916759319020987975405941894621133073936558111148838105757938057867442374618900996757221937979127044121802811324826824968296444280179161205621969275713455140979730018117668857040226449314177265417422411880697106650943174928681103598693630052478239305407709822349609553727121872159460232493150388923253195935101304390474402753092942022625287113834845440100381623328246814764228693871878862842724493230514567320569234511838792912466392895225001382944951033138446091910661247860359755708988558453186802774028119184173191793534402104339795946547146570685152697408244231197040725118759111711730252459246676785708942155793875608642453987852591489800023807131878217804857546059254158557438762344159935693352971848299196044174036559812247413199418510271207930414218244519885554577589481548647005047033012896590349442032785071025517041856373554548919956543306813161264509477985941053554472487097364474384906833311966041656171452900765365354112367925031923103850435096062884831046010474489186372298103767195086003773912218997745410080493276811220488601411813176843266295668044371813602716698004250414308322179873749438575995097282135577299720372613838954282090493105463417094803904516900500087111585428564406323825528348503363372691629730565917252692903398163779414070320910911913989877622283982337059748774260575621689566174637317807957810800195348490542686061563071031883067718041892064752417994706927328828547748670448952007149048328259071500191939856714240222163544539232442347324087508740629513972444155947448155082893491731736865233983793570245185242665890252025315393387517692749366748458900713522534724261558292996623591049409334141340033057537989191736824446483955818844771237818346661421813055205216033835099321403486156974292207205399511849904562503145643687709706348875632320627547292806630946960678843921689960899793142258396929655831375179421428058547343038406902552712606833879223319673569695996954334302381047857935022518346975104245190511133039342650672186691006056261066789342084257555202181815984595863884805625476467972140080055531578969328097577762899676123388493785342173082647433788730653607024731301913502493352455227257965024236302475213274078652925040139536147358145541874756037663610011906730770174456896346539432429772591628223706949307800151003397868651639402781453522212060053149073723589751311811097370162972731590559923570307031293346943296050472443159200808869603939707726391234594570841491127171093747802089926994258853716606116311568477045161617728955881709649445758135329568414163338371398733587105938712589850950634933310467725869018856788782247846945453760786904882423350278221198952988875538608242884267638914297975973721844526118778096535855919617442933658237114220394073653271807341264234618263307325914971498334904711836032157780942147319830216168052616848816148204632370645331169624080896138191367554460632436861563055904041875732462692169374547550027095159895827750560269713353383028084889916721915962960923005204220755371343315536963437491325792957636884969716236313321072980318998837031609454722943608012086905689469261902472113772308226056319561606255219072387132145779892645157300789791265955534260652815801493147259834680382604203926096064241491120139489966493074492492386931046357092088771498277321585370244257305112904198468862935466185021029784718669118142375811396935974943718636500320310001227938365678681820161254377751838330909192715219012982364731588329272388031652398507046491605635671940718959679312410435894984160875186825195349062065954951443284674138354262082256079176974798193009645448882851180026293234393536341001286146614434884848786924132503294515405345686437540143828415845872420987721811216005898342555506708618504820027325546364336339536895223775193633304673718356176764882765439994762208446812944924518514226519807324318441823448477971514011925771031990563238655792844558373303040927902700367530562777369563131980815898844042101541223520613274936020792440370718906029528741813976441573383761431808196738288088775010369356872786695821421034365942125081333659008252106168831715621520561399186537730201456538986091848201910417115255953582856096512132101758366033089479223556572534365711399476745990695541972387438043072805142891000716590481814255392046898783352010927920499858203579706161065283373567644720505281147975871710734299953582364889997082965775923799633529827139966605960754416026894466987340533098491803336210721510188661148387300370605771229018807447191240892105916036156214452988338975146387013454799795143687084090927917637400017540606935498388269848565065593826318290427016778977584997932649952663985271417930506094850931610899226393903201054090580856738134605102473493627786624357504413943074114357555528243007100551138458000301264776143597039704505774626419616624480494578113711524226132259678591063805575138067621773048951458951290667947036279952579426595121372571352996940326702903582645219942401561227587632005783169036942978965130249855955614706896069481327686958698504129803655470979028096802075114991870347452091040630998110631336773919230524563378064404166759999234430368743002372956113972995302733652357487397134612663483393156212158885262596232172290650356824265339721489401541444870958179983843621946501322512128845440987828749160250830564673575355404005841591038460240990092035645407014131766686540300627696278451700733694486012029987296773785427519082164962839727281852579681333006754472004803290992492227575438892893674248027232170431215390889641741798758254384439264035653256368850231673994614138290667248159253747676675648643651637882003436715897247707186437825914085805810025074594452518082415586264700643940441755383916363268368070503080567101451765405670878542382715804763390503808071999610844921653659073187001173483586938123432273002608977446177805006011782903892485057998144824527625608942733875388969026895102249794096349253839124009561482774195150616957283214512891598450801717983878748225650029099370154527140976398065198420924110759490019890769423854560309170062147072478039492634796725029367833804714861626675556346797906200910914815502704271169642263116123576678234523594849638895282387830626603243912802263216275846188689978229419059189678304165527391270372172042727227705544029459049170720673469075663486681024200487900686701139585214263663849475978164527217744907098416448588078861167758498611000121269662651630048078449870520511751147545322875945459065721210888959445755577192547589451541558760969917043705318525534800927076729421567245573215851094744318116150956793378988624799781369567672063414053299954722373502259298684715700836998922367829985070191779798144083349087431626334472600878652825968987652477937630693657983926349079096155639730621531287765687744867051255964696855010286258036797513499620540444574106144137846179148685013244805154751783497902868048540711066319825694947071788133912224517932809458150969524422881106701868664704697096399475149415318731437824244252444079063466829198176219545368245012894492273024972034178741096634165559813880580131776263855660519064511863420274625403115694563175428905058412540808037795577293104910452178752733944890181604506346531386417875942127253797900725887506793373088110489047738736691011282861244353578898471242246415988261453144561323951804553984231960924794505950634966577105188036055319923047692937968305927767107889370056898547927250064923096626930358745647078701109003171642923483617396263629490803501704323087618113341838435225024965964868601986857644666486132330606653929181872655257516383661991260304508948525978174361173401118409417158118239319531665731062518075137604532992539054151654699087877777367412816979872753385369055974024448695753107537015997338585909072040895762270742720691877418404519725948292511298518138788982496909169043569388911029888266775481418278829762515645871202654766390806926446019858351848137236302035186501822082962896258420737843957728469589970429680726284088480122932156873910027147245088459403177699034823646835933265379984648981693429415631017404668564084633889522581404907223299358351745077648391233028128589644317980201235186750650072795985530780998187065929462202836125453552675630300258004945450709965422112095900301019828170036014143887086339508018146265693069140566456497113776499655035689112788223479297729786357536325440486401900217818822937690719646162699995307662059846533229481867705740956302291221168375289375196942658145277372162345408188861672233646861749846053105722092453733724877333343517104690404752679382567655943741471091814008686436436498205420702145673144811863932253371496276966265263882890876051313586163907854036420195622081053498245336656495103297552080772230354726101621235272625039910296814076685190185959292115617200518778865330606774686750667910903013498025322529963418693690654472730804634771708353272785521877189076364060218354662807368495908107890618341770127553729301492988463311601080957777545541517482073754098055100737906059221748779053726879515844889074969997876190819281973837944880474948882663745906571963717457651241213471688396519836299320151382763209268570124540109389285379971082862740752586650368359406418122690714442073304300894868620789728098088512532281909268128555591769567957735280904414300442153616723080917567656782817727993535774290143507461547650297721727512213367937342175732873914077512348951568104847164320782904397021750891212471978360908173781836010580304145994147585163245627805569518183660037804378822680493414242872492772660817334532363488561046864167921768184827088010561157868447242122746355446352142723803644881188427824592691585859060241554969775558491884180113239513380620057055762488246858588815226488157661749559102716396445172841837888462901838712938699464597374827281658095245192593708377937385051027153236847889974962155272980168781401164907370038830868687553120783447362611585674350098662422235069627519018062964149012526464621840052580764224676941222934167752879265140459519625648181479986817660339005351825863132133441121712284571675338114034944413515562540270932028081760693550546853103722185253062679074404673351334104004380415211563735090880342713867147942629660288533694699011219139769942162826762330455156081895894319424732148255056524903751415693267536382651656784084046970974923512147132099608775002239030788154484970781618734557201521421771714795517832278547629490630151567399342389658276894203452539887177430739222089311186533813804550279648043427305594655168795303211023990079237719929702638474623988158836411776005283537325238837292140639300224347864105280926563933462874506270021414052416831132188803717981500684612436361198063587247063828619567178229785070457607774561871617494051764633623293632446219064749757871266606095850351382464792198254462459238039537953163082909014272149522208378847289693050411647822529637273602217879864188237144029243618186341658852381403999821710123231405888588827511964158802986304598557223787048510255147168790765366789475105375520801233122890498791864747642732555043485425285148098046940926751626846813569959485220084395779692738569937127373536241354611816722803055711853902593355426077929865573508571991388253229329532343479063753438429588902780932905641339168029707580239005567166013284748585573689558302874952501962617934668980953388162928394101217744903506471144561733474423924475214464234788572170909916917425474675059650765994249443065656156292693998042062411997294742666124777632124518459162554060929054871574796538676547352273129102918021648754049793849336045121342416011706440922720726951407975776558669168100011442768215446782492789224078459742850837023827320665575684544481688453891593408419230837693478237798175364531069670339965383768906882031072420924886319268612952927824162961485810865055187262167044610810753144378777159166205890816618231057907694841989038182137332790937792642024931061171564108127830721415761967953093063632724455838534045880662422582840929119809868113550971005119337018799991583561532611041523717816441410158326530559155592919017932520622057934175685271428286029273378410863787812991797210906979234379352095174789512936108217417747443929895867521479417600387525936649525464140098426216113191695489301584196797172308335384838605075560731865997611102440283013881134806224007417695116874432954960193561422088956648067682140142711164465960413143022213057466799526457776381280117751828073183481251368840785639763473080787730319377078481677045137972574730265185428757660192666883780314600375803303834017529720749745822580000304444189551148754977965757727480178423856662578832974216047202638912224879731650575821839053286359404928598607094186343443522399556696352039961165459068458415064337518823752189063006086652791293168871218794775030828712242648457153581588018010473859518709476225720700924152513970459056933609262025806442808011087318290292072039732519724418929227984877174237013908278513416756421542314955065336810504642217891188649715096012550431671067828055228770069259657157700790627701529897120917180468015971465713366247704892433665574671929080427169103823552843498615196518301165263544082971842741079353403780983119292587258522020356453078891977996683925960852331207243507110403797765269878643038477463666307060531931866952753991993193848941083133900158439040199636655537448353566724721899336621272601041771415072735589310580161666201390087814559022020862812977073493084315009812616400082801692098766364372955693152030074135211314189691784904337319269844577769839475318388121456342345748629130171587863106537436059551107268874135019731366149465059632974361316216969974976529156258437613031542381598128411037105456025222964179404522957951907886214603045987407329874806221347358409557533385925636912683791017151887010365398278828575846249560364255491681666885024016430912358250098912274699698754358727432427870641139758648044994241692399130431476283638988551445554010629845213392357601679104514411113942590781853954935249511866139224425429458291926268853470877343064325176623021660016404243038016333973990789989412930942969094916606676700125335573558139914103021527199280533916803030357072579063762657980261241148500004642867231817578538987717618965364506449641529175769645461468172378332540485991519675330163110665518375404252346515617833835407613689095826300223125276973185424629742465649331265263076829122288854771374597129634013623601028519233992673691634202201400162007639803258375189570697297561478138843734505357944090725201480618362874401082104005123270096965777357624705939739938637213401707112057524788843330919468380333501832482955306409226183603930842912247187314457328093496373125990835097657922469313299385504042474100617062219037171844256504857828901630037261894552907125490696335900334623684871499355193640193860535228756761900580605623701636426467837695773839935466003132738898888842478623507134605243064786855301240704993270540573646819755345430611973995996916621816926378002715964744216299462204576560002818450839781710908172157540601137336302557025321749541714733887842872206363581833054482308069300138276676566879898412967951463063157540710660819423028234962361475522575081342104938415537175992286540800881608770986902098807249794275705151030522508741769683752830118754821780671827370667606282340114618026665829290802947266138894460597943858656179475374786059035208871780468950872044001473168450186857163025860499294184120484854529272728021589616423046206485562322538975182738854049058986616344876750630446985238859408034407122035008463321561346791812355455465042723833980471796606949351261561602291103786833386521220198274242662253246574051076833965308670681157716744991964838565366373707364964253028407760488160634696484444212848549482454507623259593437515841534710144376836895502586336826627294592225042350224370869023355351559180720977500285559329646770743098939045042487257598879460978150511763515983534325283683476273902930974883744306030164636008848531927240342344813305523898015967060221948697489867372583275286429344517645046527805509263001802336600911837586050014051212452034436017941431252633513933468531004384444593789689908202530661490127165548016877018892310543499566676999258266551694373805153253660656869819725708996970849841131925624077329262591390565522169773269563028483133168432444896973763083297758171665032484476760625456894099501944517285839696919226668053144800489893423981816960887614985429206116701451190159246112664261642951269555219336458791815900404131675726780066764557037798426273395689593011452110081143583184717034692986294022453897763733942698334928707112298916168958193161286851946652941688843889960210125693557885914809240223727606958230133393290316931553000957725289701376242363548630072143317329000392626504984288004542923875791820738602414975560851536542289234111236795887737683909982333328083659022483576470389909523577540868047197057869417911292201535448511343203759580802285755206728476806790270794612765791730988929550960221546079818512362699140084152435237944625779214499754644318572437300543017519897229360428470969611588260159039447943873369948410514998303166474339833513084900993127259851757898682403190297528258748589620538176851413696076345820418175938593199550159043023684134677250218669840387769111436684621884510296295093484428108477540542889765940564364169980332926919238043073783097150146591027992942853145895097305368191083364119637432642264482457370139913622395041859695789274955020471988107330923322873829869259075733120773653281873592190905607439435905290887627913277589516704615430508542543559381726667081136412057235485801331513328965055506684422995400114140073979662635485197086400549778248738104535136362166065625409232458053490445745600605594900691862718217792454115179563116970529428546837154188509771080037967114214615213828485106267299977535293717030742289809957991734240722459524885614838323986820768954963036383281484994961131086704516570282109574978835912287197504586905444852445290988314730453078241667136916359005797354062219506077164554543595449765090227943063086749608725463989447948914410869134128382251815407466636228425678207241920892005859625647980018194238298716103681454754837756943192043679368350505105344868031745719667779142726026760921368530936167880813709720024374842972136213649671788712414017458155098518425503771987974684113232512446149631081089981187916081356885217277462884063880189578267090450387169201895751014702800613024402571817948364897786439531127773224110855376305356665244768852224653820980925878469559758434284319303290871317820200433016527177819907774463211745185135945494275795671368979346615640485594577152449602923701919335506574599246148151310663669736868999942636830849528979696031621380861995550508252389116032699374237948511096908496664514853320818214734785108364117116992286902021028731957739985065845034444877790548305741885156778844691218044656336318044126120676865842128883354855486005154685696391017569745355906050221776935872250404877597534004092405531417498081493699450295946892367205335156928215141007676610170154045338411041652822386937335512086284572680833652513869953017196506904713097983367825567569146398207670070010553395620598639997689811427879314806893901882885845507232995595933447435821877543268190215036974304927912433165621504720172366572652108339222945637728027936191722301317713130451225023670820156341730215664570870531162617873740067693597661423208163706853314453219933864054049794880368689155592604855017436106958591575501780033096870035007449580673872822545673608333963174156497693258077997304719514185564805865458997264218164575916858555880099654290344892191927960049155430355888188597602509655771829375885124145507840113663083123277199921045963604120904148188187377544435237893132760528493473801074708077840186159289125056307651011616892793160073969473515531630395757910832958312279506294340170116372372875864784191022198411209982713164841418451940923309127264662676445565088882684948578621832950923369822228125941247155495478327553824454119798758707150621325576206138603879331069801828067314022071923664555291899014613482139520009256179379645203906742565187294455343108267652997202596784376978898723853067231666570330544059657558229453326164732696295328595148310860626055746677228817942984484148588525957529799369201541631385691061331333469774753187583904082629106291957557185913389719898036822682452279003604908364064620466711100740050733167544694816202801316255125314011982638566686846128572278301722919365994051292629489001819175289375035074007538661513874423696063069715041210468001926540664933398235073759349289768137992036435956785363978987089893807828220442720766777977597586908893339275629320188727784795658787052047779459717934358791280634701055618686437985222589396241333495998546447093640746318703808288548122198581302523619109584746249871253052062957320631528096015068622651834577936348944859958582711030029494750326431962999809751437513991246792532074610617847939160157757686036640058274979723443365816748044434038863102337839876338717343720600189616956050698646673693407892496397459769049699269508154087527751014698511312771975989237401345091797059275461998334212056914759428456671023125733248689910402279490375876886296347684892686265899061139688961984141252283048589592890325265648102699705315746224696559281311248994592628206267464737387476498523265975413610514996807419559170211635867654601825187423251488327997779820036843808257001559518325983630030739255334880493471928937038454018753428673072296671700108167790810746435535610004477497253201949903442698002865451027942399222471574121178692144743626749320459981784801754030099662088053387348920633669215917760110878116698055659594120085713829275966284576790176603170463013646787094412308838892578503875850287898115778882359337357491966517856662863557248498192704171365752010638692060343630239370039765884675386245635884176309390091122183480068660570273897277430735839438690725287460622442785085208440382877848285440940891618715849263363874154577198029883206579811075677065080368156764285636797831019016763915312882921554195204047779959110463549669663763240557415793698235542412595700256918568525233334772157563690889019620760199088015450162682165355961359637070909410137819666114915081316757847532496455950529991053944268059925281768791021533833832409145883670803743449169824878298923951303092921246352065953392760370821655275333015665220493691787395201052149540146970926501535501559334144624216483187977369025791579415935855091217739993186413778764176153107283793609999414423195292000411879293490619921516590405290390381738881052389821018947977801578457198347135592064181986711448153961642856962033986916874909431810043749760719917662210866016019709168017520115146528625127373768310933811488308778378669705961125930835068780329878029107803395568167476279377296973482461571293622617538446215430027630576859755762266586468803767655893689164151384797599560083508071939633583165726659364231308612544376545919391581757235784686283651871863900543595141377991941153536214761546728423414560934227145249419240252764869684872445201279069505956515352230780434308486357703050293513980298754774461594045285182148528918017673696790771473493074786300997259781415432785926357122705162598637769940101832573279142236909080586053631734382134749878345901269371390935725828067490764291400978919756584625366510108520198929100802848616821759742555911880479797306498814363027564881454114686209291176874972431863057425552288786912230293844848531369362624793146060740555907917880295466268963603043211128052892494887814018394164316425693680423977679492404360217076668009974203762087912104270211135386147687815230890408230637848002715581437743934097583612651202000409316923330480506057645594540760407460763017666394767994564338001152946355023394687369820618648590276661834312769287970186372643639831383059168220781329928852528671456688877536765319594896518496551076373941404122009501015426133519672159856448385019443771961836104906470233997837954720855001778110852726090419498397045177462504601503644893945374233439468219638930610220477204087142062931256526639858062480242237674897687339268666729518155615105054578847490305701988235896703553561966198577404980413575840719805753274114746616544620698240839761943617449830295760733533496745265553471080411906806918722300283758913754500308299191870871072675489284064006013013664566164106965160534315482191462032872186108821957939806095305454407917329994140901446154634935235230934050592700339264846510755226745087611836294246071101204437971042528463042000034199318587404908234804832175142222831977765560115691080996749855557370953548224984524958177053379679642750334454554151199861858986300932034594302099687941210746238985570966142838651835335105259730290088449439063555482214377282950594717200316183154012039317892041070057840816395975509847505919679357212306371358064117616422880768202927558119438859818280505419640292027749465135672121991974906677155815334291421505528522462510474239404674046134954867561188112058031025530839430509976484769559016917334028512855281105861491249954870666139935767266436341386027534548048611439828090158351068334218790733111082901661787344095757703376681909803688103343833150007572259997086588600497330607521737003699714152997444206253298080993785996087791698626981905937430883865571268590111744643809805656827454495514680010584065222416531231253347980782364147195236523952497602802283534268478169544236225741836354105273478573544247365846592054129544630537129981158635188978208715914611686879006508908705863920085353528842962413173838231317217711043319120941296540832467529610708760240197122370814678449827406880642093380269003891700058171631790644539715853745580705718442682075827423191410901977532303029448980832403831015451802992836871648365976975188608074862320189890525355539576086400523666513399309532384832053334235148231680813176530190764507375536462363302884049763069714762966683667925097646565189395628610556276018263035957933448456229592603777382273916215256386942341501513881234484112795161882169329686856735291280853874750105964406977806096219551686332632341052318328311845633417681100201317916925858090728980718242312678791238439323200750210594222838407788893043018775292730495523979087885495277370206831339236088456193158507331560159744021753317280424758741720086851001066037355009338622041315970097257917490412757348698404655996657102905246699569697134781582548665552670720361195868493354847784425316997374293959967347804724257013553564384728762800124682702690612316921030627644947563803762027850037692851593890371389806868307457603523807234283860206913763699165788366122848899071190072535714076347704851439610915003347562310299950575912610352824843471849561026129286251984932792472312398951264910089435413200748896832866529937960187864229800713034735353114666668139524896626922260306564971893305794774797157657590596445457276093517274227028842578020150737228172555891247051837969261128742293203438882448136412082060233252246018611082490684162120222808528149822748049847266156626159664131747849201231209726754692327123585866106858150141926482864352172987502802993704863783343120650117190249581928730534797796207126923718962910824789766425436437364586549271733064062635783092337285450592565650902752647560992278077765878389441553152196253037808786059411907542013442231918460592393149655540726634416881713947023577305138858363653652930914911861421504127824396477174564069449229138455531014081194898137845280074887471241642790465377438984472776164193495458715475645424204265665384555268465204406480677402312617772666612102139648130124212834547816837723702767752953054760236922881067125704487832450835301504572950317585774294140168067274870446171704322471286761412524521241325733966575537945312166477508107405066036817298338624042393365859116543335188120184181651523906684933184686842852721111659784580475019920577887709771648162927868772765562394301812360415019862633132620601311790907029895049774856466555370103424791460729663729550269632494613517739551413807114037544452381357938764742121427871981155163609730812217709270073161077896492749802276062731861163480336642892649556094575472076695194143675918268651060972134088676527771015899459083116513564969421761144349354183678948227825010862914337715363642665525340612817466186133197212663719143836661990310419223227422547051872166182009661500852150040049239062305939906641889658913167758123338172310283000114000227261634724073231354840958236705292627672712579749559293493118023179063670232791937475890777114139610803278403161714457824934686134139398925805816321234570725085788401515715326379646147508011410137001627225845972087408051660349538331169918153588828062105050278422498609365283062967946178329502032423274145147653177559812194761194061652116821773489096140449935971759924147615986451933720837022057132855500228196889637516603150784939212103249843306126764534817809078990961028852787755385872027542839625831440401751354037276147291168206515666512277204233606194288830240492469839811627708144547883818664475862484198493613819222455659887835933913081186657686829238172713012914225961563462867112352773335460657324352189436453748632900542502679733641344992794381066271687857529823589566875409193024946001234433314071602813022731569350057739208047700439238193039183339294639463932449290101784176493447997111529656655951611610406272083301672319068195233752786477838040252704554440509970907746165180288440116088194819247144596486189493127796794213217312479237074953171231089533837931547554616101471887710905745211916360700854222028851849982794990945204425375996491759164116842993568710604871078224676451432774723466565645192304320623439864742429217527246853946341381878082002541322852156873687361565141460811370455371037222973194633122988126419849612611889326981579570380729907762283548391530684140467778056868964543007527287275282759011866191332828955098351507381012247194970575395240039396132315329204209098076626777047067956224302348187865322285864493495809996720937920688716494395719099597782569489457052879159776056102049903809474943329985989826534474763436118723629577123988221959433577608068756764112776987527456582078057019384529066209518380760806517909737136703892489777003968153055677665052758723957987976677948259581855976356600697681518860471114366718486713019645962843480387626835246005429809157638354447827282674966340071537956890670401964351917150801329337676423598461711930904718079491443382941937519063673388464913310450430956607249014084535654392720020714477097528680491819449650906484306364456483684820817107312128497302565493125336174987361577179888585542283008547417092363024135799189268394739817383572146096277639087274921505488032733540654034603292617465196770858392174274621958554480954530982113712429457876401537401092887665370215435800737013090007772264161825510871522229787950996002498031144348223078845997160014786837998060605492203686510574835683231104242386964408343464748162861725883346793102550593343355838215055798230526250301996772424553890934900536322017633234159603504505746646487925348309240218452943755051483517283343185861739869562597739465083763360632288416181675293555155745032095195140253965028164909561002286362941166805503054538464421954689368979981423436401455203630701358110384252393087274087557797873842015251494448405659311308479226819778579779564647878581168738055316484955240710676370885045715407092597943546847164144750854594467061370624978285458378930527918323547458557357848778207768752937994270426476811902872161984022223271023811689687199202637691580201717947766343691836565840673795769698215154133638225134701356172907024711916713957382630958833961919440534038964404419573989158705860645584687358061746433941223706342068616526044742258811172197875246459192957156628698622050171087611901667915073671759962682987649648170413880743695781387547606800584496980227601299771383636258422218829905864119140639923282885823421597977988260537768792318818848171664574474763293733882194224292182225637450289018343030408357397828000164458585618692239168310357450775343663757111345614602712290862342216851668987574734720403571489299863641313831246944422944809580417532490725670005297544085031734500396661453999349591474313830420989624782896526047223939311656535405352922332022795169163857033055214986836696974697404208974082897734138222164802207552694830512813929914939033816570879635946109211385551497832238362409831176780926365995113668556878038157045805559327704343280709038684667400682619778314994398176592311596389744637437937646030520907931591902808252871622565117663979275764669069918549857123089031240687873844568823302515884015229386902903962362424164650053816141758461106062347609898453964219648033251522848292073548041269712135753601154697213746875655917921123010529243105333927246828600509270879570970504702169894489957095573315508009559071497265399343305261719301496792635310890878245470221017767934633997568952523859844114829269392835299102070867870332356754674863359632869560654318143992542702501939137938799396772864323345986438032976445660860894128434049238784875456872970930247910160504305294860242297266221246341343486178727327141990959992524418107675610395176671944078786362904399734395613582696450458323202661265882170431553324567480421055638540750535845514758416053747906838621805698718268475426867994922757330367491815386898060892367726116132780352031304903345352187389261684055774898849136950054920870719741002632780778608994135407328872865005461736783747496205705757496404279866323944999827119170998783541633459533881042544560561749565807526360177518881427242938846100206051345311236517830823832036627325216521511011648172916615844177505532138341234981948572057463968288289891490854835275418525563214333935283439087094076962666136167168719684935325727552757722839742754742311220452129018717309380878098154339753638474083167634414634269929642525180779751631411425083729993864715206952842923500442766612406036927571332355861670240450131912980271868449362592510288235761605940340616318177815690780395344081422187822987570972338459564326829599850075907783808809325909886077258862387854026204323779156722118389181388710912027531651839400331067210689238664940930384944946336222732881954150468984622279166061647185069757096251431949482834095430763554047136872197444035958712270223017027838813895499580691216425026946571404407070274023418813528795841693215629827909485067420914153482392619694455503103478923223618257368088903585601057640406837138556114908107610344313584281938367556853809494822760899832921551316178960290177194684318190096169005855792602897825659880322831409063793317871573174455916865115224585242030559823242788962171730571603432343222215701167167971414761500961615212925330946624650886097715654823141491315341104003336244797699069745547541182247664683138520398877024004319360619167786594919046606205830341262623943231588096298445322778790938942071883786095760720419856233354170003226621930046117881258181216924087203851120696942788026365582947120620979169780419076146752976913546709068233506193994145682495954490684702616833050563489231016116921390135808797382649667515382793124480012123870836733145294179036001326550574119664764640117884341427167148697226026751044659325884955155786672064373700601722736527161588760272849922020079853223967416022489452459004392126892228000626273687877649634287858382207034741479991976411462897926762396206890215887835294460865895170016238989480710236683177731817593364710839015105208489339669878552825270627222765366085110475064222796439552124524375624696917879362739693472804508043618696674828031336416852829330827637555667472097774177602058379347031048272774469971955555008843065908557806267708743183587129376775342557076908332620076389804902252843881252037719954268772832824445076648811715662668082156841656669750799354495754548764177802157013641119315625125867052555856535051445332743121401805595844685174137080039309646617097316368168304507175871987775222410302710470312176535351951404514610404286308031497547649687633821734346138540999585776245704808493815676969361660761704770183032975363554637365792764219046147736179707422642894647110615759695864040074906473523633785087299331959512688608413244595329462181747240640658563004318636730990243074328534973114827045440894289847132924504367031587619705357930137631527860920570393583895729407368195207373470418256815732324205402012129408387743363681334815162848865805217408230500077289447627285132447019805548019866753913370858309249273691731643016863435791298083058708186280140625647309422024448784286981701575876497218202278063043577342418187209021261493860505085830397238891244725171132724209693662410299496071902890628557927336181433456165598188816144448867786070219373856283603422175797654647539101643460320144500787487002277941525699485962065155497088125402672524309328489682200827452341536286508536679308458243182055427741315628428895388642126331448390952170149983460336243140055324548162261924154809232312013107349830708873401226112394043019867552569366117000645945044021853998702435797940924902248989478036212122112221305721175541451819607153391450523817405119829460145223947844508691052561594305866272880413041439884225846709259265422854240416109752890335053553343190699988851656901402067468725258371301491637789296521673690244128433881926567073845585130308008231576024636361651761017404260196172640116056962167664220033725930462857818893906231905480170983307524419028721100559505947561123007979040473288168499279571851438692760721910769313398505983512376237265925232622086574072929855705475440120490941971941169421280802359482027226787065535216694880354668110450321023324174290496798900522879281415683271797381884516557718156844829211636550435475206689005984525759935305144727041336835419803472441842721964365065945552532379102774712702921809404583955069319960003853670110448225765634495973046200362122151346835715364863337998610890281406327273592207708948800305482361426880777643195060449700765395799025172119457600660611700662785110447390057461470550679699375448856840875146558073801450175246117201532901841020997514165109574853212306482349100506043706791551185247541086758857541509952245532449718341822954480728224857708365951707417011198139085853341007215207823961370272623935827744051697898462411441839181164488704192349043764907144823348082486819301588583699794349530050159588379109715340815878544516403127069039783402392079296610771223728324974863503284301374059328278495170669852520819732791737839625004347994650712593272583195901000969237339249648244711480249501893275383013700457242340746667410240266402244565675084043189109281927864072241659448291189315854692019698976164148265171375761113583619134817822007126877571716813674509954268314217513956690311099929145188403610084130426225648400174139005600614972937990943060244581717089058375342913002212523370292636217636905815857095196154851319267798309474920857419975890196678066663617390525647086190899866338177133159072277243845144368359968322814476755735899976088199850020466991401522990326479496816863748913376400435909425009889252600745500023764964513027862959243192562075393707866042499007676813766225106189274376800534833368440087819075005645716975324577958466696830311324731622969227107954940275561909338524478835565558166452883963979128018296354280924063410718027184367728217255909851723131742647464105753508937679879587550938864406259306167335490174951495911729916562511407965030253953200328417754176532974006810523974566880863455503400717490969845078704603494916229134420680665574868180898537707834765997924726888625170275738072735420839155778988185873043429048902966431730832807114943710847508906219748372759864954429326674010685941976812787602426364441687025278630056642271036420331913600117490092982852772009339582286286784664840443345378819107291080914532559285165859560865009164584455053842937475513522839497276503754134352015850995366037617425518334718327449888361245332655498927264506181495487875986379203725174833182320735544779591549946065976894128375946416493004597589381727210238519553531740325220060325292599052083930559439284393669291893564192980758113083756606699604239748940619429149649798588197124562069888111692851823983742707735218157605421909675479782378989531002155121539568940410075608300312076521744987185209956512108945966523834640094539347012168666936553882635310115692630052991117889224901844306233342184945103575135044245025071966409033497860098111152878532243472869811960489706758667692204878989190781674873672623966838258864593255275974684970570948075792358936217085168508646064696012560313199977680177958653375143401800454440853074599700814402070063272549851970780121980616959105514241160662349008270975670227317909061260278229398832958580128704037543380729058670366291500887744838914273104441062934870580405815055731501802872673297846812315972430574752116897883559249338472255862997757231138841520678080225072389286137991231586192519336726042201103321638404495196040576801194972247309368306784512342806231402354233741877370034565677022852695533915035329550301238502523760017689936823503537379323001945301661357756667190972674074321525213796546696686687444703232511529053740228586698977576645261073525980765100414296443121129325789759085327880160623982079689842859596553994001339834721741612310674405327344696399475530559250767644114873124358833747193257780808781656601325671961127448982862999700371561934299104976931346971364982764376486332582617215323590396866558341523630917701910065770339144680211153389508693630534992964659369848805701088030503788581039503323128281382297094718262868012702849611083249247507297634787191012379532139936995615260434622558867855699273818451144049641876837718095589787636380912995912547139321358787947878614166873119427659535715965653237790158939060738905407147390753663030870253859503364671091588906474945221847828797802619853975645421764711872592101603994677639437272565603312947240417547499400084235541637757710898338489320197987815137910200680314972873011547340416268425841526401188468618031004611877103998166053862048036877181377088113727301036483368044280214475169912022227649973986880724930099178107766743389328778789978500882661552727698696703906001092019211450084903923056689916099728417649764612925472802400957808885254411996869068314288092713775058485139559514475094025308875349619641893220830939616660636365446835086351257330583330429686795936073836345812710273821634790086704027365140384237212083628377417358551861134905974246977075539723621337800110685977790340472198866494425543496807968966392057358615639332631903581734049021969237073881823958831454494751322532549100048367568043080241308304104305275467643997786617105621285753647336775165886289536623905109983470806037275059239031807456962104777354606356361655004976003947467708889264667496735224944555743652714470033136801147691169315713133765862584190025848559165964224039538208852105721427816795787915201713537855416027167839810083404658613109312118948461435519298448145583502454007483241235690988359155872128493025971229766057683178511438129102219690409875868946252399741999253376349715689722797719346672795520257933901786359682991380664394340583077889492508096939528851082987650766101180465466952837887598009434159665718721003162987860628578963269132169305957595502542856726798998227262980287312757787451430173112257003600130466957033152605965970470436566875638300288817105175640105448971159444982205413278755760831915552467202148458613656342808108538075365498079108080141093405159332166622477025047575287582314371953882710698214806905329686043711254539947495221918901054858610759125072848864621032790099139233713226457362181568863404106182108889016319821065581557453840372414680679549765874076881176618858139613011266446988015817628214932669842898904696955829160797065099851063664642326509386238861666727374444282081927352363284909415620322401503505880331259310523505860280931235052854299492525864059923004311063962670478704710395239593832126128474116579352373979485050884180157979592550778518151452470525532902465620952452139059292296047469613078668775071459643451837369393713518455246560127232653191386248197420000856088884920315792752554096825845637630054511890003652576206459418165031237632308553608438945911257858127899644045219801370609528076589812265062898571547069021540051929183072345966106358540035344903645440209712442538439368905859287570811784639826530380107543321564229658265416982803615832855486901182679034938368423507546244359342891546666296683262441031510088050569387845987646579646562088158701981536612526497879394185371768036814390342254628220201447190171099344546058044301759367464894487361189745386259659980932015561902618475022210065789874227850670374569791674563638061201353024059455020743244255126293489379037099122041694899315977993455079255974575826471961141016431256714121963865697603941915058807978581693030706163224952786397016487200073999429028684884745248969103855671608005329692913439428068408792941895135667277490321731741988536464291634949307650590908044546787935712459131388598526220510420248476025964364755146115168571592018013298596788222648938660476350016233629480736025050868925675196906494466235418546755552469007354511778871715508654997746793207762224744611056499813936834192610518570101786007466241838942158507603001006434063267086457311534382136532025916887922489309771974903147983694266317452927413369988559253637022798945633445545741482009591456685362806811846462246127044168140499836401699097140655961995033399531129978944565234911543444136358018918461968618709006899681906714616175105139963280692478646342936463869090430231102695308495132795719946477743138744285040647314352966598229441596043975320214227709643387997179860168148729831681608284524610718499642094717189788319573466199658608649869349307629723182861249213534701723957288203957890473005334085861364273362985384337881792242361147534415622029255800458957963949168230374672551794224817975662412387278186309923500755062764421169300804148449692935896755086934207746504485530738320946447855260924321363961151363335273951713399382769632152618414790776348245766933924950476059908543961431041816459392334323231254552563753013346032452540074965272546602733591127917653839374084217519031578028506091923036769911063834587510365264270520145105955917701022675660810984472573089153629343140263837792985324703148964169184257320788057010911131768404712488607046792941062972132983439685808613162428995825823049720921806709259064901927411110815367802361204707480486918687782207015205625093611744249859731097746569324807724230229321560484681894636701321147788070764186434897298466821159377974053622003726265990999274308869095944161482638628853221435083654646997776414459149826307697704994586459661315687594165870957236604648346737497266643735374685204720339868499970146198763647386455102150000037556402249069763782309463118075591606509160959178914003438007141709341810321264260686719823824833336824135011191387072071330091630093273369524542066439504041548020476814477573599740583240665255888983863643192825461597105860330937066664705564146646487102647512400895943113140525517285031050754112924997212113953543570173930640919213933219363210426202287980727862631707514849340456363236512634198884505420217555610515587823734489395401001331939587203791458416823350384721501868831522619701721321830909212955865238440934300093541418520523444127071276909561581586943119624174747834596734358170635689070234229331439441514862434133600266071537994670820352392646328781480551015110812915670293101305505656283363576600813549796238269141365590420026031888339091564618632859876374326934343412780944135295230707317413968932981697249165485304666148285377981928442691397874347102977345207571752990924097244690596427165929617670775890600950555091617872318281831572186902273392234778594767113700769533153139552333526936823717329534951466603148012852796466273333187085337440862384382710025948023568693558983691854759965676417626686534340005601014920966347228210534062153239359084347957951735003717878637551237421694605846311067302653640801237606750015641943426524484950500820708439792567879030900623087170683746784637615119564413107735914007419486963870756903435270061636314801134399162539432854558064390010614228265322820592998237213015606303109035433551654095284994777255069842057062531623370786882636100254895153738768599896259474928136208916629966386352475576019502208078380949382610730370178980353465938753006798550098715195344514379870950984143741792767021805208969188969041148126526952076902953100110157693368032902039503794074835820767331130013813771999683415728783733039211357322885473803898444178138312497107292322104833948031575615788972259987121940744061657104416110069610423241663149776584203630212994743973748850872308934639810232735482092256239112983177983858181403662865419030593242058446031317305913312449653427647162921519211481788604029794718638489982677862690514036296194937784285941326146601647855481753082818551743228379397566582989964164034106185336768130509699649021782411845323103626967457569979028460894647551749791695916266942461449770931069362838060905749225580592447501592984061555869795345202843935905947659909411675841879549137292682754908066851407760317295729002123537295386089824943952165925374563172179626783142093064931917613933572143758609035974208078659144989040530347392957036352797398804525173255513517020007118613478803029333559228037445222417683572486566165968280309744868182218651023205076447386420220669964794885903964284961957895120990976283205199524591394844693687691545816235191411021233923742545951176580884664582612262788040328654969358876718475756984194960515375807442314906206796866723629547922551547547199486307568831639897226260693212057206026334465523413721477845792723388605227421373986372847005376165836292865522507326613460558222382056344125628328370112540313489333660906589155249542478264280278287680229963985006322699688167391545350884817903923388341959727210507962522849598229382978407354610736619467853638302916541295998471945038053712733428439678846661579998441360048765550419900285929987102037698653162155329777142147354747553749166633176927369866189045705493989636113323895711620296080790387428932682979779712265606075677273766021678118452858533563151802863503300213854039785712103606864811833916688815561093701977192468372931997549087554187186672589160006614497880364394007489327457626092995245167758470345611746674486840506401188595049287403070161286927534633782943830555495404958410284656780729907209083544151216927693894089537918417325122413522236495217343087806182278631410730167129889900491667677590895614927478631465127791520861177399676786685252226011275035639137332941137559992734614250367651906828187440194239624141855901209927887617949572036007653823748927202431675223292174644940397015381506787686485773122232704383793940583029473502600593111523662103620835236480153521051269086210866129329583106008792746954377725778958915041134184600732135497552530014715487458264228711908489750436636055678991369439831435673924242981387603486018426977032227944708022576639532857618808938835751667719239315352161190593369143104148222357428718470248778491230866498192988971871366425052540128670234243228610860867061055466464211178789187462397315109938906454864571709013840339791029488703624693942909242913384925315958747347348211804464795394745880870543509867599934286531751399990370376279709767107168791736670260940700003722776214138342630819475284178844792055904262683308634356846286873361039016299827054430460481463914802126721878203236114260957174635413517467965719180131489944153530396480853781954895067910332783532125538571480000103872779548159239130681919811327905890189113809578463483247561975131513034740625049392650228665701190064629555312991473514298275235238191557552029728127148087891245066710205642856386478152366724294110464476848637634795996706051895139025013258623566054779409005854887044090186662405827054706905696700612764474647121389651055856081241893141161444657538833147689386292948947426182533040884360628970285944847864710059240230735143989365758026843821122559624205750142037850464162327918262899168721088315370218785369756490941121807303045338539980959140531463247534487280380913327212159367708086818211478661959843601609004193717151859721735558477812842686116716166435303352573827501976313047274020477522777215530230190335019127775339768843744671708993911441797914581856103519320296142045010468825402543286501911379468240417110996065665572584738448870653941151300029653804249434121973479412012837665528072065087888914101506418949528458045679688669100597053341851292880183787193287209912961696560258421864047226418834949391402170246528043879604802246279516687070426570773712100761189743335135586452808854459811803699771090359604177791247965817442792118485611034199282536002139704818841419663567502167586646388187739424752953847785189430467374529418521683872650709634755415805177153072577781908745008728702148095065512847766314829887452973319855390147445444267098098760895023852881671084634851007438818105274897888992619601946736830085518264958470149154093616070688465367205291080462705353700128858225162326802503989452077412463742488962389664369419403865405581435033064329689675772142599716968329317283685160109169570266671063013700702119152437121792252642477690002290774696502151221326900318425319993753633558528663560337674188954827906726017946140519115160313036565185420133146947235754202938271441971899580693737188301554415090266295552100013421107125605922430154456914794767087027772219161585073147141501333296614810385300121820624959020909503705573358350606074394146042065767431004374744573133469451599413849752027248704679452999536047304724278935979140826997129087696427452340238115322465450048254981723733848913282795176706274600959162148743672702124204833798514153649091729460139602020618951303358737674600433500850570451776070393656750977011472608418712919107474330902835437244745954612311416526507378785996337734010463519230230493622814041700482128247751583289733797343156394256246742888307682075067368392412482759104609032673783150822345138310932818661825066162725028943898247989251850820752801473384611854843122999738680610056843547822850950377415961383324192045512649142486718861275757110209052080921590832412081206741623301519101256547412686277228559636212444141704528329576155664242129181350024048650025014897183826517554499075360701737819940434676733967434871730657406969657907584745903429059686023363402616998909957894443749336621486859613894491426806835156649186948242698776330210140651902807412683670462085313406019342249919503051942451571338113926237489382688853145141097336196168973054874443091680237260065997744975140014875898009579234436402520082048698714825519953730188485672433502769428747190865277448987350320344152702665682265034797468390995652813870118372267280339646625065957396637186904866890268912061611274350439750338060752011182964958229763681487201840980371479256219907556441361820581618064167295438701813683388392529995561381670597536042978647866409113057617456283045369675438626133995174104777191578791051187301162313029080476716868287338507125301940534663708848419567658698384035900552844658419129528817932560132964301798805403931016870962567134025096155654968154648261169834518321120290132317990217762626997647900849813957872669439410136162091827949049249056085674315619434766688095955447885790690029439130013910251542208593057816532020208864742343310602661098731419644904574875279926226448926217042887205768625222380814604077869192769797915591116127132228936693877182830760862698127790608154470624177558544421613762686824641800879187358930544250634265495698538333981438325914733254379134257300084672003967720213847925497044623953030152728065214454197491270889666463139182353872719291465538302337538047713412811387804187843676307035841954589657287805090678171489493906203416627746438209461088166806510952618507155273306173394296735342447122015248499865796639118542569302461289491922019185092008130338906504214719772726489697703933181668639975346104293770383844249521830373310508889157379221554315819750991166681378035660388126752446952126730123781872553892628533490063434791898927454710456435760240773384985459754511148827708860868908389688068258938672491463185096527109499516325318031335002863618943627461622564232840098123987702617940068716578005357769847589259425321174138341321956933444946476002509184106526783631670231808466336585820054338575928394705299300275570296041878199603357101516140136356363206472226567803305099616132398928456057212042325564619034766257764077240584403213698868775498623014385781940474480449173773421228338489376534775684518974424066435080057685462580648801316317278767615713392495709180809978842688445311966732045364238338069651672482533306138401340962152831455525244862734741889900025378999600746549328222544368485530653798630997746714593338981765731679044967750338448521596328601543138705858492339353418423136671655268612177177670011855146971515351625153509289918548179640556595361371743247337750972221550582041013313277951722809845370402674725460296162253084642597670435592069799745200694098990329848191081231652654295432773614141431106414511718161900855861907146452480083234103776168333645681059833763812649450455895898362889746246808949928786555790431849007634795946044815547093123989073758817731134589586099937818959072154977188667720843779446142097415549071746000982768272376449183904605336543782399785672102615165914509820362843943962351662987462963089529957499214453715285649039709515109937022735581432061911795262379896057421187030427433903336607966424524762927767787010675312259277901333831551896627279168075625919471381219875710103815062010125182477949162897924874806083962925532391167822822587772933780077871996946808609288387232772841700349125442952743497021331196288363779355124913082155582545208700675525775817763365078311147821762026273261462996048874876348139708639637194069097656215007945070846623510358468546092051046925860686196887478851532421441024760157160651895174430919917842710978301933972773728996385966752439188263347292166617505930810006454113856265420413736795025886485120493911986548806677145703328828744954503673905121563347206969318508121484041194588228533370435349615554255593814818351397070654369164505976092031275820926376172844179261614092454478987893693519187773950879389696426043432187778957299432154009238955133803515720043928770999480482298477645628177080543161622158143343769636073641590185883709733253893287280139346890290568814603499585622836173681510170903245139316989493108123926566082011682423505975662085464134333663211918480852226306666188690441706775488870161588718997616097422719579038142394557794575187560090956328356761029878085575570240358342531803412141713965737727835378761197828229532830445287378770172460007637017463417983944727796601138023342948239905310450192008996370439740972468547883482766308113799114694189885802145503285625334441305100151714597286452466700737580456048658957234024854259611635770311224575937905576370616339554767991172318218027387583367293838816255635622143238108343468291626837859348355897100255956181029007262229123076051021082298800012432438315732182566172997420812964942907374238478377464137086046779906016790692690637382858467780835235143904946619784309998317701667639327325168570462856846498497798442006019774373348993959907553492939433649619965919398983000816330024005746013800945322141178642620268410926933927184721912615191121443046051454894242370637863227943505191340458227021779882601368725618045075360338113117613941475369209934020171634821939545370709360214387176289289142496287492660343949483714034521786082540538737894648093817381277218563938175918267751628261545798171872334319665870622918350112669351102114577777333554312636032320482356221786879289658167652354638809976915325697506326985693288058196373374491502742557716022496453509063923802459939579036953382595215400614033949019282449451370309435000023314885340577510474982312025189533653532888958373633961632114955518373312990481918253277727723118092224754121209144808396128143404866808343929794594815545486754781396016947969688368223005133075423375490115420831101901699273401543746518035039220348253289768141874808877790038794631275515276385892723343462810154500120000747781547751857207199080531531535496316618087438439287683510519142786584268029257521434648680774856972211543617238906808228178721076101065680067911208848298411525799176130618854689908881855012127842576874077893411202767471457886516367408008971506904956751089707133451996469462760973867025444796919889873824114926184329313090396050829897175994513609616110239260166404550437433311073195997722321402348518478563339187176538365787116489710758386161192016743937691743575439163965869338805401056133475589934235229951949917508395183128166876527593805724442007802505000664671817245918062427405900929520681657629432277645459121848449872225080262368571213025838049093284461827670344784011715877129905652415615475152615745292939383615943187803393688545156737310420690202430165636047161219867028089539443307565990698189923181060719882728694030414906705260345369964454101666861141276899068535498245992699631696390377217683681257610255607632437447928528109614308698639260784133046956436292734738489371032381494231907522325078828767324126869981910861184438265101536419455698804770266885612005779245935086718166875758951231562861414048826461427754553290145311234181673233391110119154542854204221218056534795824013886384824172931764035575635486562501189536018320390689028469816310282867789667694790371690230827339844733183415672493084719095934422409050436603304645717537158207137532909573827258874293419592665170753945433118047266072784007484130842885032703970611558677528736285741157519965266187671888044986106694792725178299455059559320550517786646112235695813551294215325676554430346976141379353836569045804321698021841871050431020003066246200139800857193258111499781245565005194065321127283077411845764921414383085623202556993196801753887298205731029955567511232989903195863496186259824460550982672620962983346362217652481755218827206790631056450123749847339635723931053609442606787371611860692807713412542923504404107245967447083566908311075567137363811753502051895231554586134992912868167643493280783846333919709208134121104123807667478594086726892373031079224695294099842618784611639818156207353527051860662945145961255351080191318505437000535003484032743482579579497864576555600296880627435267588891613051681927739949062473903412169762331333522359623617764489018359594624367405517057826362051531327659766424535108773855776864600076454937892084118236178090746856555647411336612094125001064461133421728498875263561254363909682392628339404061098764986928594742366361085778913070730407479563970034289779810117453649143933665097939886317909227777138452805424878509758607587850094811649701531078730477855099427632473380849860440229155425249401171339289647458778802609830862203775593589614419289587954284813653412918682676064363010943923817022935713067976346733395877169608775666506049820651089304653671679001207221325406716864330511214185966325170124951057409088118476368511320479853878142190812105472151144564139749604339765294571643414858299695631109667120577383990788842863841589906215395261802219712272859172860064473131476745812223890892557769191973603404707745012238386337354060536336484455615408967554204486965060908330192785737325942167815442635652364000907850382860964492500542740563146220118042368698942059127066926998126165524902487211674860157228118857391836545500024539329513244666997922444353112160228520477119292975167702191316443204425364871333514091477594609436917960779838971708143595491904489086349739863603521680433082415411586308224521073344562313990047210478423330684482833047367519701702573247782968902941233123306255577986331896379662556617434075091015154468364498541450322729311754451074409287367668783015784774755280324603469711769293866270276846639183771254608280519693118604367096259975382222583324222707336373148537474181728379935970933102092546841064842062130071940945535268475299365238100602189235021033278297438364099824792563597183579977356900186571908051289222265160054821482676509595715121304360365419388106958934647152506242743567185137410673401342415919385432282113566957743259249826286346941666906840823598295576052667171988775009534749091865602629990818186222655381129161340479590246192190315690711132111701642600502449802816038787189987291043222739408726787069268495483849325498733188008207991571563646815490817035167074878508587725532620294953638936899550943160325173437113991641139912493318889943920239144249883919776127876105794784077041782339851326392281206489887690225027358753781276070994289476631531978542524390139208969314785881016138875338010884699413343758810676837300750107097803646264969084727911308198240476997317319483348250650334553944966974114416255426156418658960373178843900677627309038150072626213879164234752895461010978660750255918069999759771794081256518168319362986993158031023538822137549209284225492637498628849905468515762921154334847132338409913026173884672090596868712849371310067728604307180403628027392272170360371924717577587031776140041517045342350592986841430888382095235971093620967768669707468925841509018254590665497245736712719216352530780352288294871431266173567823232213779900478683175257935933066924380013700848253819698815564326753893969837382803683607990900293677058411451971241983345815196206469229124157504702804369194601101150418326499783907305764361167464222727277890547591265761372519039532492553868317317319686038034245360223917906290042012090996689581356778091884503509345079727900185959196885905840662964892722792405908554361337830356284344894128221656144045339807677779251376116309047773180586866159740654367269058156695656419068315914933889924036236703210759457345253832224488872620897241169000871824382371324445046082780743261765672764941733204211451647333424438389003200898919530756348676636703769929103003188270145299741646811756755015448765356209943784442904292483817509288153190237002704351733751182007800358672997907541102120337143870914994957610236149111315483432296056665383898325072510229085671120692699664237637412898201395403276758884226615155609278412661102923386166117351737442060435721105938661222439378640546563003739600602724760769289877810439078413861660162434100400271873699601822112553231177808026378023150284585785229836399684110268804248181580748861077660065951562415219185997275115956821557334895200061800800514742534969562599721026589733322949261794994008405510025682107442681230516855663374647790177439931588014402248300392354461353566414868939878122765068052287107083837201326261761763059887882793291641694042527026510845330170498681986001520298291332834345080523721868950137094750932860156064172992009987076380168723388622766950502789766764556744981958888992968417663672095386288242436968395663314533783595003870978553812738873029579211718008531952591360871474016155423412990056249248316742412154565516770250189305637945127576381912570075569894538174219495839538454254725621489730026507572548591333029296272990803156659535450660474945529842084897998419895708904562716834021006050549049378281565400814030413697111348386865482715606977669807216831996611935857610874489001303329125341844328596658642920138294569949676818915376000535572613350295851277117910142208918863232817249382257175898385552351597743873409521099979958964555642587858628951379989904730268343890894442221092990158360044748553577317956417901809834888798149537832653206855536130277936405097808744453309845410008863204313370481392368665811926026761709893824832560932744272650768842943585851415422750528774849192112047664871875362117220200155900299883062473105836223945197688311611799173795232364620972875023577190941345726946393236731243598813252860752249029375831830768018619977664663640948846296674620287801891994118305652777765276943084773575427104874266023555602506733591554436429544168519007657202749005826775583373776286269492415989746036683928078913568015518112150705717304825286605674805043395819623955124968331027681239288161815020158975917727753938773946306105905740789012719917959923532549886111980443268279068309895575065259744437513582101234257339147626864417253890655440789966125521767265615447750619747134778895571054765249033076424515451493261887175015786878342989277627271095662836355761343689303028933469169407372895837723411061772995969683146492048154908296494131563027779156704156396535820946928972047141815800777697587813406358080842232049348443551164559597910226256012434359873092607371548078925467638348922771328079846771974477718330867092203328053224012502586495239516014006950302561969810346605991009637679990038613999591628370504158637976825087937486806565759638334571829868302765868767245680549026325110357847983623453635076970248613776600228750409035096469986412036697886932986445489836615041095236934087873179414551198537938882502791263739329060264800606985725222338709737179459681134229276799325249749687909424134580983823188596868922115424725075750126511217589577962166949701735567129851356199554091909057300222735448387877084062052890675273238886859357820178170721137981218616907031185202576966746827611891426072625924944312413584639571930517705718928827215955109983093445504877772062646218481304465948068126692927980618585740952536969964771465230450994518175556610414930589058407972197640178384027851997669041085478110937561627265220711528590051030085073885583238409145755946743608131622371890289010535493334715990391005329613759510050460121720387786513141279953747559339765849270185153576607933911037203750569188749765176539552327249243212737057954423593268410152583704545162089296466761766826006430065837262857428256987940451478689955907923298227318454107089787141089108841485562712716171654210266990669647078129432296999246228733091802369788487850016897863180831716745582978976626416202833706895752009780780369842082525373757717899235578126611180367529834351309409270965829786805706035388966726744206491426969584084917778270298945499594898259946717850328237389296942242288353808500083257948715358016913687718567247331763700378610502094496692706581154517871242886346555169707020839512490810324255107907350660521054652408909425907670319121692152107647290827820457859163237799874458192008461653066387140983888342860670119914633370726972400037650843470137242218428396138552647027539279732133985603988306322283267919847468762927346004098493952031798494885326493595569416823175786454253265033024627637808626618056700629999646576790739968037038862260438412373611939287773260064804157037040774619919922601356772236529628603189558218598853572137839354434213232248651838446393769353632682831993808294696274397257633565102487595884271436669617457068670097884728427316905630911141042824854900100800057192853797813115454195186477519031370898485302008521416178289952743054984740243454294712525502699083433944652399232789171396848387039243784899513866934822436355972726551449604383098959786124349227439931072622307081338702370051051449066692886004854326368891231510714069313000126753351121995004964989296417809677819367610281426416488654573229204076069246933649106699323291020439332417194809605276515486192981547502441824692507355529813880221890310572550675064665567735402542449681182026475046535228434314145360418295189341545563338983909733114863825862541511002424570938684112040925313242648958582919201503225046349370105684027729889095348544212580048122536656820790178863843238720466650572973771040131196751772491179794921343781694602248116646807881709802706619957803323821130136230178543684943694120833626694180872507436501732606816196795287310103916144551152528002778771510601619123899012747202652199888464371922890643575565635487870128039484757847716420102256793523594772331797072981722404542640168689492127010800305006933800482380882826775143485110970508909903918423596712397070216938730861947443248185592128535005724276914689110638228603680393546841085310265067142908369501786543658560650873153810613798368074135031965150099070487659055632333245292910120754510964045673336357919435762933790713925169595968073697418377630413161219832820241132821312074891406974409854078555439369381259139373683112819973645559710664391047599250097846610876204041586552307915863557923515973537371804143973993762348469129481108593034729123663107907360412572789801784271286753483338724347985560412521941211058114099696196843886809412019881597393891047275196862212282360881676190308374593442716556230690048274131176946285660850991466427711271386068819228131427129912435807860195442284049893474677954112278539680365994977929681454429537554635902757925762755002653356721503013839674921272798203460729528419151038653942521372072678170678861670374605230569655193097099826994336899164795335848369377377894856006815400705429457220535907524575036921560327116750269229297170121251890581417641323806974094752013630862584778033590385246224447177476642525695489244688620377923556229212624175401307946376554924327426374414585836877770288376580498084416498099307938682083123007802356093133608629507431464061149288895623458957974189766329731883973032525771981217451470068140132386088470233513861528160566220289502404637299640469486560928065909758307607535373410408674437993029394461332472984451430034508987368591752643808396787914279946116204182553796278466912473242368488010129984965081203622259806339190468093933024252964111801010716989614093383791799728372135074459008502951760073531364175873318825011010616205429199848769100099962141160365595636787195855247829573421918599837245176343064080965465537476127918557240374372713020271281373577345863340466273256351489366176211090704912618235665406174810076895458137518479736010834199052407958053577526454612767559786518030252762947297040170997854191562439040868728108498426292967477568008528154380329185895271344956577584678337583514609131557421704719060197903002571060547662057030663453978801537419640469420453409713697173173110537832326520745320910285857053292943665565540310266124995462592896084436967130951155707047232396838527206752079959375661755053679360733757361242890499013063018450534977146829980117390802654833577525148513837734596910792048181887605970101265398085519333261915818235470821268487053826355576976329804216405939721840912160284112190117750342784147134102784723302168626664982496858170419889433771307412628393367625751676384271302140012101546839089172742992450027909321746091658060263244673739745107863551353517457682392798757168890782324945351974426788266483233047888214686801357565876837957780094941416229315428100090122839818236602707814374482459844509868295137447172073841046970518234706284092423100906485084241065531391672886177526546525446275041037679515066328590647652468338263301026170469666297501727951850902811404735041987476937582714740491173062663666050694572312325912297359342603429813589656721929202890756921752081518843885723167090799468759064096674257736851026037329069944865443843586258647517631209495165409528942981119752568724589371619847070392297486950840365861398935381644565726271186920081744132688226144708183506325171786215633825867307537065656654872371934897476786701027320286841273023133835837396498037069489420059463158559477208479414291646751396393540116207810163468249859713874307470210231712566146575164236308816728475728168546376651605121905525386426359172696263058238767078306065232768741629644241079377163568291209599982403753110861174743216593179771261220504573891485653051493241485164721003532151291278451422693132468970321688733958156725605294075134605240910809265527572684121401379380723345089822718184079935054753002011888999083302358455302468733118257352600265804402382701151666685880595689609981891502853722792944489943479317054316824889819278652212048821400380461422545734383392444095277944278580123971611436342918502846964597642879310069155540777895190543981347326064422715397145394552399313241289414972332008059204924053704963884051602011329033863204486651767803623558706558385193112295232358221216412591893382347112995927129551037091663512571257650973002540458566234378405903053909353378205021769952634166815370901336072706380369280497148609111386945950772126903255527519211386329263589113145775242995137122206415228228569781274766278166116175555675547034096054013921050284435752376385863775424200278855106780653473459944344494888732073592973862438220314435422263675932971290247185110619935668728686157304586126265138450991377513538560225220025084441867518558029229210075936824828885466521124594154337638942921389214978984642744432054669891107328072165780716542722061852705562585226340018451584955247870929325117760512242953853695569846219254966659044421345605545790443474122109339697515297154400184421878116307178507101161291974227369255311810864720130244008891077518917389271914784986376915441812980932020812357161343709507317389197318701193975790088827079278096512253163673770075976937701576227825481154455374669224625273286083430158886110920870945965465160414145586916044645900049134624547740906463144734435195016680667041346724837793574366476841121538471831664901982537805903288624604797549922444260418611082799893108489821827580257446861645208611331102034331423741187905137783172558962936029868682154960194668488340440092733465368697702195509458326217596497448269221372867752480882962354178053716685455968229431000900120806890958506936533541299087144271438937000468455191588870961118685045501598203368742292477342984342841671161465470551281216449603598319100538148322860294703216178309155278170080215469008874100363184513635822642940970878517334929969662238765449671665876536775612969924877752237675495053365306199261096431940609814023268598508293056886697506186398571778865807937415645066724536707455940115801675315549393037712449764114362357218944900644190978855546969203664094194317581867313234751959156799904333823947458802550859986208317122880314225919293283856479166563418115883548898536249913607014374228190007255552666964360238013189168705205661849485272210915818697372656443182055032112298739482159134345464966580309062615556939788555828387287803325910262053912892773231341883765857038179084745809957655063573754737084618337198733399929990796985153664832279128345015849611780904748699704903675473809884571089054142846705825330422608310698102162686185252454710265563138580738652443826115954191357971744994600430332225838752889813753513860483923394775404616052603433564470924442956734058228927809607222207390616172271597966436051107814012350871123216438453574735913654355506812431175997387870909905153340262190963023707276427178630448331332092718334762749245092024217640343091164036562455297156344103835935030473613321096542577609880435338721520738186431056128291840530656425356975095236283497993221152442048746149190378144160002495254965613212883219222253690072754488452613638135673777698004283690944330819270279542459786722716064911914399729153762868130198762244969659852542705581000797841285688150972037655560176003058844751855433764898599221281938228905895389565657274034525197195599670721669430648088321340078944406625107540820832964236400814064823860317829025133221688382074641781731295916752409577710786751575976917500688457894350125008219473901304757530963788472859967687481803999150337686360507990333299421001609702639489829195499388513795543202768135279571510655599514008208924214376074840993930202218942388342063944931169576666308646168096869646307713831008334616466752408812413800697240016572034913493019204123141679174393697294185332121971316509654027559396892000192241224295662568106484473130520146961450349886619558286117093719179415853909804265432702804535107876584461824903367983938608654725040498115295389192725734320688674044959523010534332713353832554550722596111579371971303224009137204356549230418597111912415229924931369610135094152963791901083718869703633235269108598780858736312365142479959958708398222070708448927675692614826440034223801102343734934699949059363402032157660362291127896181389570831706933056137593462208321171479428583744373128877092867775839010142550443415999463987450843946504496709949419665777287589460871929124607355393966797806652057219411718233509690235196988833548382458078114385686071281901627423453700748659623984235232816595709858553812651004988256871466332999376637858616630235563664782420046610135524067732570786832541554621967554968605500192925038127381796600759933063004477634767021440912867288503952140776582577530616171103232132783063713475277564649395118270105889488316246270549481327925058996308576224993854313444070229719491425208576629521605374566938835430344352379832072656224976089033881420703511222175593662079559409292805713472754318099344685556588321534584417474624936898264335324184459068360687183757141065897991165383901974093976723327706271982574995337905062385997351000525704301412011807358410216785287129309849001298049689008384438480279050167515996716267832151360039343254477018122299178239697284265666405522763815472407478307462864821322579382643815201831678550790872634570613051822653175201921712223638339962758766495271178126887170535414626215540664037842825434891774424152168515561178731367610204847475354693807280535667636508885903341525054115632732889706905081215501018243433337707009291833652422175384738752573476907789766152663169314161564624317332557962919932769881123772368456019198278976588732447594150770780176544590899425038099534634648413581607438388789042192861620130033238269268936497332566295277863627854902823100440423078808741655828846354076765851479822993182928444165883486324509257349125720487441849374096428600662783323632060690790700791719288642501676571295453546768211414722617500498982048075674347287151460010283157583426146046796821096757185468310331774054511797892602931823509097458777535850581593306904398385946152387791490183994063482051948211062029006122264291092585563175338183384388126035583002074463924914474265795436258236580327443031950941669986050532426488407224481370675180038238969013933658525749068434178558005908623281027526251720644526565330135659530100718436128145015600233817427903120348358622626167170340882503166795280521914354276874231788145507091162589084354593910685467428864312053089094663030106666604333296375032702692450822044388529773661960186206543671036160726005723595564835237269859899152070609686822490460299955090727357821190494507027201565464059601617505836853288803763595424610278514997936205151312850694155926887180792259269030858963105294382157087050236124190562452796350885354326988351955956827275664166205596114716467619989457683945684310924174148739649627770733022897877817469337816010168777792780516959777160050626008848309329480778368093154833555784299758273490617368949888072855376427584806895127046817233593178115049158999037922988957057551294954467380205879104120428361771053743827398236879942326157136613125311811458877796656147584927222578564440411130495060122406633997176541662225577584780761460143096073516865090938413585944157964974041693461477193294874430549653245088702479549472249786781555262668216056817745808492161260460794447228066856796275920776019368975207351426116270344925324466757756769590252189727042437703655231769206972279064134463079216911929965107266372839901262091765793910249918106764396335694448240978395479506337908360633527024397616946630149842706477294769388190945674513781774285771450427438376771154809671381717208760298524779924558333209085180027740686094579629893549349967992335068785238122530636057397436295972051994621901941478287530077444593092002172727655692372750945181018339528293169670654787797148817778523072338127980598708103906758874794455625344061383200653664439799733476230727032990758641726807492518831154493605674513505790913860037444071395842233176001776813906684314230565635115380321943036497063656076534727086111479743151098492012069877518709234492113057420437094002775718293180547963787879244241932505897006359009371238900203141488967737715511899270865882341178576679002929670390840552722755378530948081085839425244642534264733140486364657912502077046858019158604369553842366878342640561880444361022310667578476145426581281776049799538031277214497246060744309476595640388023586002896277228798200981822031427435281168417330974175199983130672127806331818836602473679573394112396789612902626899606361262368729084570158053620869413662657561365374397588155024669947179786224428263192729965010223928455095342496740867793900995037583893624793068522555477248769145693045111078199943872432807842797966887749110480299687270701692365688691337103655859324061122727823238342101215243440342785407171829084293192743497693588801815719191957386997302655260651312464826998503380713171254010377634744131058539409233326323895141092939257684394361475722120277198403302413963302296794911138500921452511205246301543326628159957901180718474212573741242463501469229856818043203656020880568244606381369193397247527698117614830649583022386938488423400309604826733035644606696657536346530204523022063860315282032442875768808806848339967340869635501885733274471738708283142181338187346693420798968011968452781609607820434547921561497703581012810952785243146127194445711390594385149811145008511419462611356397713089332452989510858473435844832394292113112043250958860102624230102630334477509829002466563420132008214359811882292920678341175721647944130456694694678441304592946565327361938537840416637413588359384555566512780837937341676100684511086597104565852205622406570596350950714758183517033680972886210288936580436568282430598299934207994747973520257974635085094482018218626490924574309876188232452279726251840918795416994946587607039120787900209352876570823730918194878809749352127099522833858879308984049501635875005750569751775803797555349240305914748462324896777332613340244001385821190577223553086612808215802343905260938563471207903679796469248681558156287821465811249905105726014927399992251360651282330170482374923799616706501509275374177902678602675331064499257808810988268440750766136430054676553101796991477089991953138025214181280712779836167519158132003729784210060381349865481369239654644767600561473336358147713141608639113468799228727931721052049997214508943968301014187997607120256438725820997020950181737407101724439841962552281342648899781007505108884439151713584640780020897596408866233087579445049418653510292633602626791064113880816649855775868455194752859813005748422840591790813634914405425793310977467614614657927107252020259046538716499727456392924080181479404234274331805177247426723209368736445750276705227610956223524822926416541611596051505006939047308889770734318683238263974024671678353038056016880434668377044263260464051224614096690367282872224559438122621477228080902430690299282700809234775709187568567656790783767151454711821119076510333402958926436727087864046393244281170631990027222869718827687149610896944390913567381709698188908412748905894186153001592932340086934609923138812002861495389431383225576101488365361413905074039251902160861264971514992220804125584784425145834023997106848828575598323990054433041856002614785266190601786592443512718423124382402594487280984941445805002026019264841144683659687644579271949796362525311577593067983683839536623531055693625270938803446558745314208053412803723501336604663129436598768188247095760086498988880866271375519415268704369342326332430346808585919312838588265661570904648230737601116922815330781652675509984615581189278037997954769599285603096083036504590045513483362921935588922504877191064397343650054782117710226038240552566359595675870146701407159133333230551714586516211039029191369112969561815045736730564368309227222303887052462495582442458162127180692375655964223045663945082929300374632562399308611137839202611028820852823821597282142605042072087239565681452299127945873779341888838249408508773737991213207491187298289210621286702990816081403515044132124999040538504577975692503961919167114154505561559165186018217966273597386631265343453371642969856752735369365829138191587718735216321434614077240574620636328650576683580559386462423874242846098786583240076725458127209921797975819432973879219961541970110119718201062612697833195627990247700475497249467884004971658884565826067020471500194598852786798775192870564599271523211215150841062984848538833914129408483111031256094873471101139555439467165123671425335826694787738462882125757768646562726093519528341318956398737978621140639834046365259643066317178569867969744912589927588262497387222418636634368572694653982561451819066780099511297615818523167347234676329367346476977044053421817932953625956445311931004290079194079117035014490843838834076585420125621657423440868302065121193383891468410056050385714247862806349491426606136912616981228571792268512864420480946082632254301212745301906204696033581755152348528489361236314589200129949982190994100473393258161116803059772627822862123090375677777483742866577890308390408217297294696048201224875401088442241043345552087651168898432418710008560831602809982493423498740146729941281969677482254746526101961065600711197769125716580122598309879516258650441449905107335462089239590330922917981374323848204321511222151624607865188315059118269340302764304940032060449252701994044797454177444994610824228592583780066186842535754959267198138798832725721348547974843142839183590033087138181512974946144180947561531517286157647738779504309067174583420218548316034980318428389438996005779755034683858897324940538222186755501253286098109451723939148811935981919717811495925192526858431974565769891202033566604152929540523495762965194933129386774856602222379361461578929702530561254519044903046400087210012101430516445062874373662033434919620112870670726041942500881207868689356764734580957832286883834715447786946359300134446489180173287009568789507276571491332868525156345377212338387917975312377662595672764401952656903755699549668740618550678493613109609451981399417059137485999898022377237967951076434227221047661816736769424424621442405555015351650340569687969970121245000228801045341154953803303583709473888226599533107618444886738943929381732680100115831743739926048660567535312488098828706309708757662210778034645509976186761854127209242823505426505892265532324448859588391266118365804872347022367886437049423659165020180901246251665817608750919091700562379703395778026431498302565170360826847313658026175166808323364608885704112457843372942885274688655804593533913667571178259910876092422602092877502238056391606120861548559873201129243548186643097107521129181399728177299855511047728253686565927461603076947658392040890262473801205390282530359238499882981026949323129932717245430607732728510875762132555532567092398235630263994668599777334488621124213851271575923782906102565300483714580880108726844101686575831820732238854958143874003855620541477128951605925342099777079568582647800831001977660746257874816386683541870229577252515491557267009605119409962762816837956489355636738833717362628272671842116406776715903859085100626608269306724623663671353776093116874054847723926102702728668582544441470888360632697439568573471684540032309249216517098423798399893079981954894671066725940541321233953998659800634425033986564864430826716676787510783941454643894130810682990237567276346613194687248262315012809410542217514058024485440992108096586959217783433397038176597277283941349983693197913059152101129887916520218111982576193918255059234349670422335335933557515789880933014302131716668284520624724078102778587431015713620430691568860242474148862925525092582971080805600858077919744179973377642155898999098429601283145323615871937723265885748530344310534039783382425154496186759708705094503000939903677662949281023810370102753676189332046191632724435199816475435857900901983886077489849062128268747901539610874714298692629470471981269227285996957402079483761235318029613382694064934637937485632274584217638870857964767434153094063536851034050020130374918311666667101016593917371730905243338589002659147263041588863733097660118178298457479425535411501303335276727156267489457603127470723212104046424354785335056058632605778389063478489683301917855205153877679615261355765371131260126042214982278038569571144829143769616407354451039403116344431076086522362849158311172809278306507575798130696122216059672156480566537078268612318948863996253625695367550087184017882024313279887863788020404502495225356224447643894713583934445309487024263144535497007976372328555311517022380784646731961859404096007824962037688008934959653140320107385414586023187905268198950549198608647006527528419821936089328003537203651610287133692183703066260738485574979768938976880590959958834582285785886395678069519285051658016727478877176047995577862941984764294134974159727235106736953133605513759647388599647604411022420572191497855246515117562851038444542914829305592291930060652751603996092179870777387571895776154635372106872813550243759008987617325954343286518313930506902057238765471042208880971100512807395573607840274956577680759979370527550670929317930465013873864899816205527567067448861183031709829699806896623341953816373231437650299266711387068046366381128627147070275620437591507411526503290878921287578873239245145440468909704072528650851513467828587120971157186640902208128649819565516151963368970617986037095185453672368274726812841748777065187997960703492650751826953462260841934487705955835216544173518665884280145435809385635752669019331017035942986862179724552256353996621414406869251248712194935455975044657574256902943651328486564641870615362730925661954775150190027760769329554423279430310722914794602380798953823069274905105527582534185173671985900867782476787528845692417943665044874741122619833020496282207616177741035411758889529722111221401914318798990008981767006441879447264442871693467256042533412233246491886550351362853775794013478287726022206282752310786573045294241983269670339717696858216193519764453032773853577035493712098832657585424938903858533785859507389825299171581930668448275288643156911523722194901460132598203717466046296652436792997726241740196518540651406922159479671437916605646627155765670735901865987421938922421014391082311201157861884846161086100013458368653180051580956682037764480250623742480021211204104632394849879815262327082744753468396494287400762157920626430728241410474242976276103672927219460744302654489056654270378492837573442757029061336976685788619376374034575453127326210379248058914046148553293601484861550968523021830920301546013645987646788588123430740431510861588054038391275701185216119408467953793938653475301366536878731919588409497231453686120533189874119363359781501891374440384717629981744979274042836232602614787438327123914534217528563684152285451957196860998323458869345264091736947489603303330162283315746859783895836846848061207705023059089968644226631095962208432036478001758249919032491699751074172908211596099557851590162297587855461850618294393993946575778665913244131876354714071822023153596219463212261572059059812743149007799491847252685756703164402731120331558831967562505433953878653682686083532886739683733854871221015954967121916431928594115101245668965531703313265758636471652018160121531805536837439144374683915634819917514701150606171521519937535317031022594043885264053899553196052401716530559751769139963824894770618523464752876032209524957610624170144861891385721299142830486483686082093797059777280824657365707014835182794690348874412811482753730019259666308478202788050103599963821034462112247853778490656003300604252560182759612979621452535280964590179566475790538269912766593645369354787461083013242993590600116064226671870320908540189722964245956508964208313633351147803351453758169900260636909171618846402618925781007294373695867239999555731145225225602505550883288379622687533227916333686564256306726284205113502626628934239727564392836380707892107858544991113265764496694703670695232228402117811314493305803586588940401896129321082068741846536750586467095244656608487512721177728051924074827955933593451336581427307968031130682092507749255784794328684011760325604078103239351141907086301211297500519581926238311005541190700439227874672186898112474151099507195020868867984497340710027636310180362549321332187978977789474986502070830929303444888738273647026322514184838785092175070937223377711429482741329972658016152251153003078887285174173475463917170305221464164495111306999174206199293834304957830074465939126257338599465321092018602096116335262178277418016388018191497997080093750903492535797249875555668156222174953136725285821385034104076696389277297657466979328000006023435084930181352024312048917291564286704659566625127321381229357430241563850436064450067075841852519158645487269595778351831793948785526879282398501450435001990525817923975283165539213685397575537932077402804493637486656927897828398438539444392976677853898707947251435155847728712540758725790664153514980425739817828618433835489442677309078974974357447092781983053495707198815787725023354544760501240382769573734453698398522125527040892960266906751843494402733483959021098404178338548891763737328731085036823216280150315432691988058520102101425734679880244207199609774415223880327926750285914161136386424935063196581583116932767283031091013782522594379035160436685819632268886610226803689367012560093095672974989029678126283962805551745334265397308469582480329766628951350014672608567217078678513678450855116461458019554755168110732052777280349084537813112066657923425239265905430111555764082083681558870473706361951934867945856018166570223792152526673358965447385935463860550902673700135097208174382884658747002712620051169267576627244541922453426138854662038102409180703658607594403955598081213333617456855972601808187677699376656421151240095456616385180164244651742798524564282945947143885305938280316224393642832800484336766675872363864212074827892195807266234489908745685190885223591608324994936315870880022368971510364413011856018616664162331201792006562395341146807066244474285524519325650326486856819848390747169088067730857798884547651672137633643286954927306437053630025059059106189216647697164057107586722190666322502075717393304863830567351781783870036775496543131153002383489361704565259252000326200086908891154661317631636750671861675355527500940270017183024086476991009107369642991075306730629475743464841686074825771231575586507705368867958847504982591318618279177041621879016167645268607665450132971578393740813749378320821190232620809137664209798993487711390734394273757117834266668790826426806236174938828675133280775072565278135666156949402459818032618754967623831767704457504988106228331509609440177726671516490776501799347402666957499612248491252839721027339448355469649436416231134960770207459819956697884473144209457654127150374186319021178715440602330977440716754232755666135250189206467018562040008176299233082851446728566861913822447210168433923491294868789058705548133778708595909872904766915296591713070822154601879742556453950761623831552500662235109452271701788139950319965861777839877392802117904690168015928213932174953264615454557554887824454796689785859234913467163646512486559575801474073376431298060968347482578293110492619832161371792949666550306495990105864180412238278219263810262246201376268357971414335060960247366426752664175383346573460161754751774668473560090585938874458584781711536209212692293649114265205958868445061229048345773141685134778932370552557828086393189954867030303909864653597354206246313410245475226045912926801114205668933788228271683009436259095386193109720605777023311921526661875199449770604915633734845525338385638244545266244472527110645853953031847767500228749454231760066982829198966910236690600486071047588935802730026517752352186988333023498066947828363135259153539341230550272680359989137798704911287444024104386184520803160455042026499629576851687479925334418775265067157159521016666530470260391881264233433622743121433878229239725549305780946687613224455713922784144405121898616241493868416019323495581683658085397522893664613051750668686493208480037145287792577175479073153466328891860147527408240766854815294379038213393396926711675686247170581280978883933746575127265246133877126474105450957704301436867532130036194121269946671790794510266910493469123361944435373336528696635072734412447157978488269224070839123968531070033214938679775746536598252849940809995427917493449400401863529097625699686603819688473065622454814028809126714023665714203288785311709756635115751749763340324970052595990156503264688359150298547086500102675275548953306805055839577362303804658519862382128684582931582495923348849130731138741103501640482678105842543484589917576315747682356190170632399782686268529802652449316763774943783136474480149068574391253783137171928814555779339907077925549420037289105917530999299247472126850975372513218309959703429915178957078591189973968917778786279211738219176312273811161438403023982528570282865207927177094994816926627153079586072845352252822703910375985095184925995547125349655725958530206765457756990374569831263125142535223579136689315272187143484528991077985480043744001637320222608103801289278511322414309500721716937790388691408242982616653900798746276511044917633478172908353214828594774828505278803645082474128257240625745108364475382917206055681535995638297266072741944316612440265396305151580705750415104630578284327504902845074938850793257434758538518068583125066586646387683799867270231150526761466259379727560483898500803194461679522514730130093967129725916002137711952694470549413624797670254205643240152865093372516728199446752192743800044190963273176161467977355091717166082149458312116060827227764874414942509003051341798451548876102761091969329769969338553863375704947823336670593706586801694593077784764513202212700624295972353220588436764605514411086677580925485763164910267675942736590128116861847306452110401227223619964495633704552103058083400236257894224236433959631034756601293184538320489626922076132092806464009769834680715806758048604659706311602247041589938445111904251770426653617652406291187933786212434936009945455652717757368491737349717641809429815179854149973802639621557920366211030013965694047131311832215702192047247451137548673560138465921334491794398994984701374351283725742125085026646196563589727831133154308381398903725185670442755692155897797003725825151368772754155613234139420670369354335083987728534469036567418851241284841982848249071159653901436850272754436446772139832124982848310171940841478938789001766210563866640094390490840798532019962910423303303486292062134711951790876423930802179731061286974059378009257696604379847456145354471082341340064027695320201682031809976402104552045403439403729579380764157433521613352984581027288109953479854724122971630296685171187436400435345174480545364714867065534218438751558304898417515522974691571633762617920670130847132795336608452607831130426471581932245637898384685620465775061912479341839090052191142372672134658849648540289692468401638685286772490672698504840929660986420435166899215333462489005128823316245668611807891643533403787496336175050012162023830484191533774201110308189692910650086009042897064036273363918275673785936305395919286664742024369667126827273248168221990964056764936920713611476684180558163866673826145689438504240692756216783254267267591464988491388028113617422263298199893409219427448611824466936701007967813571387914777558651946086944002952702248549475138725417877159105183960384546950617000493165952132376291520840673838852457298411717980903715267131290355092941735829203699974129588791841627988206777926966653563999074218088489280084646220410704575202785427499921210161771772941934782492428763664679240517192581378167041237689265538504875829932042799260875511079370106690959406849717309046423884073939772907396448134457138075549018720356603600041200979102904911986129594604533626338550819585735038987167798099872308279881902463412929709906995753657956365831875631193642235130434441014268777867208151135482635450964844809269404126332540712635773042500222039366811779792863048585215331891861127576612862907342752161826985872203020754634482262121284631108934461419075137032572028019927874046876417116400636070016086028165999996570397092021556018040647029594895232772375431354101841195372655827703913840267642958652518202323378006945937726882813573780496427638584459642833883818714044696956834118197309992525820510332846068855354377952726328122117843500224692036995917650160956717810208575451792324199619360645423879836198273524818335852810296892713735910926579032792197983864545704428227376397062130052586849297239952947067742318997531170680103200728745990916868108043864975699020539808676763142156852694915083378097244029636236736081585246685143618399706588727331180455496264548390985687192651600975221518342133469435279686569947363052732025625673692149687446743599966203329606717940910303860785402255409484312098928554418731361252983953823476080311431004746935812074218682213146252605715920199384645437550996383647750666797662372414161409888771893969310564595682360211835818688757592732380150891137110288361347758690065415678959398454887904953606745296120725521440819431835644035233751796564454521753471979242784082721039480779551049095913371497652177998964487902108807911073387766824726570462202116047202720583035192458194775268254917610978990639957559679042939216936731378267422371265060894717041453621674863143425326968947338752681973362083003618804324580169778660732455561739100875834839984555415185726640969054125412541261797265058175579542617103946834720170323242590119271201995048208380222012510173286676606943921870433444615201247354139841380020922422926565206233442888790245121622303267121681488898975286553674061145100970727875492996882909288392067478172052703167166122057654135069583603016295180822672934928571958317998497591269146273960425369985142958358474780416262546096964136844254306972136050163734799886931890513768582491775161793413584437122213441333898938932317453246113944206155722485954033133364222665289745888953546289401677889612821559656637710040701595776992882139290091102626336413437988627344595680982847071358970352908694039883703482088652704812696451763331355617537361818091300748522056310311608551901871648013846499375888874424110111312836212894182272059093771648176774450553605600318993061154539256261929426786698112109520467238995949910940231806228165931472705235820757698734710276685498500541831192791240591052150512621922129514830811912734887750635091430043846415962957132895268388477045591221096337586640611267768979561326549235909526728262868528943198659070173687812618617045739788751100240945002535532935171236457922128796147620816051289080460547213737472247591980037061051950410149117176071730861288377327316324258682681733114561536145114068048397512498867675717186116285782521157554078268738168676941171642773142460620010488455714082765948953856486019048309997011664773925611186859125616737442211867851743989904813679784421849474929733427627003505048157270720346431156786755817127250090199285466822639808779280333643859001700165003411317898053180057486177338099034704922815323304324052240005438692576631016793067758117405820410776575790906578849091548965447516775755354019024852324598330354256176608521714666227266077678196209943029115393884378985505551635571361834807880976814440277888867652320541706823105655369763537915051940588756304252505444306870660029994520408096926486763600948269772193032297372651891185352271718486870833599685477361745137033600567227861859738144344107928817814603139877105664409717830884517464011132005452749928172651111793549299391415157600913515759986324668298850296349643590684849702104671090823430937223455363827839768170325234287006619860442314635028261976964212584625578479099446898754593606528306466389824384698907492053410932451279353705532912633310655259957107879113653178146106005816081599368558441667291495114111008393478056169735828091924830688855366203291638073597905407874931074602530187091822917555054002846748713993068234655849058559574499493897322182701994797292556850232286585067213452473816410006449550399794802967401145492581135956731014514435836281304201661580564908793883292258404938285445587299568680959380291199432671663222966270213382162131678883601487816127789210091362274605711843011836450056970628742300991060489066973476304925998645188828736054272365909239951084750009862998439397118887633881858961408468006129344868304885573449735856925913860375317974176327626254726792082846994842705195002488368158341794087782586024777652415587470817061203413143305958862478760422154566990356102676973856690159321377001091771933904577804983064264527426334542829218054578387749282619715649899079741922780399008996291204291288377892520343518378641174730457543026869029335360292396740049538800119080387617916461054146024384055256871256766333786672977093193711947662597542506117810216264371011506696460496664855205644753160192047501575586468584853125024574023041274072525507960613533885409495312143280016519483538601390545959062802576474746682487038448388418271115747807641162184300738364030328402610586413983958437530249535398208004144279188534002155530383591419908857854297168445811239786031112507023614635990380613284191783570202322506315508410877854025928036290385275177975783719743934036443273753610246585152459773557275799070370373110930195737044353995171848868201631107381457009530373439998848670857048363708057814989630356874956569419266789203552771717427796761901639030606963280480677050183797776964689891653363358647463159851705748310617184515525344332339840990194981411738650960846126978009651533703186073181138707654252188842177298997440186851014015811507782929184352723876333583408009207527381680818827379715241633891567526176572385264769914524214932518509857832176031325173547603441195065790442629008336697400945459599380590823896420994049883991380738524748209832004192548929639403361791653569056579040522490165075034306191063705549057361775460966507818521583890524977780593474235805766964850670647160155376130833632003226956681955617130644718746852166579054521359157294554088686532471882830142998502787616991119686089016085132383270863647800492516704475131101716280071757848701611746780948728602964181400497442664243901046600590449855719649149570503903226359277782419044042332878112793644472198709453112945431674562302861077610066268502583993857385384277984190096447850974259622067624593394643961801587497460617661576866226382157638466242892129934650724996847064700214748500036595343674846607169299667120648221035810011663637463066291622336309695522445232873581844524808103527573514665957210627563324851454221055795319751966853229316467543287061646718280354603496862299730205194676254865741819513158847160284426389963526412912477492816221420925804992795341213540239315428621330949547135780681380646872863091826266938525742432812106690832513454682498636179186159468333990673245757349754402224290650005775940030193430477031362392765389425834973236357014541854111917454083245502838197782021859324088408239397105144265904289965658379534715583885502657333034039136700615019468165845144359661073526103895969653407958224039189640284530621850950205298876424607072681344622658342451334604851320577799013757676301332055367822894738891755264825420579434858899425338744493038892133629317016156564207166296353191689878029182309141567721997419866620362779049919376748366888279737228183208823226118725706330075585363650206926461563800339136498145524179037159566837763700652068667594427402487842271866703806656833382733794055455158868088113165210524086368464124554916707897961968386672749340966391853474905012180423827647531874868943793101523494615218991013612056678860548429973808237451209965636060158887481008242683288531371394854586291996376913218033566233850950055978358805503416110451401405487924061870359069706433951752770539049394959389768196487892415791188692139848543418498465878778259522413228942924490393335330454338155223137209307106841445223242039868126144201810254920016740951830989353081464744836445895318498200559113073473429898615651346338178870251122804659248566140245206396968766687334509254363910646864427095889344373910536590679505705636954406588609054898607772709485583109330210869202056640377768268730111849283226337156059233303660581355052598347640926814065984927963379364485520733626475214709091472392199638165305517889323576085107678326491654070899976967987694201299658861010112266359272981821480548378735959816352164976121536455460117159008781192014140753429324898610329305762689877568633345965254892773549770732867509967036009703432393835313047062610720439952215115924416656951144766687361420384479282016902468077752314923659384780582138847104271490435119989368793439656506740882427385478087614124798145509337401014625133666235563424769462360400869765750618237829756280021009371454311678624767390104409127461437918106634092306391240422160681089818240658617122161150237575339285857624046558782574654149104788221258205091608421320857815884227894518455881811160790905147199928995903951486488597213313158822591822733455653746099485002724942254264015999329211203245808562382539271639275793624642147310393539765346783927814065168338505268461713462674124952354900903780706255300289450056431842745905930689881117330209835369090708669258470190221389508778394469587817613335824315480830960476319230739475420497590133293403636193296353218530561163824151005589103004479124754741883144045496083504318271555305631348708152982416108065259142253765719378897474907098666533421544882122645893574630123206099561662828768995359790532870031848668891144714540733967310493477527056288523464378362532530785461095825003369133761127998209483175848820020723234834338584214248052741920636897966344238328007734956930909676223069849584790769501112005112819858328843497756176251444973694187427710412937607774053247226263245395338371350703222617612424826305924884199846966035182028261760167046254017255890247044410163758379238343998988081267009543381539684090060632887054464975122025174138486273162894626112291408031135995786488921243241450817116256275837141734575589653832546485707477620871244679283326527519749122599901273503272856829742119822971172844497032587461799913204894039286801922036147341504368195964902440552005837034891281340885863678619320495255209106415234187018815660072746778260100667845491153937080466658422452066870556883292042895970866392671643864950895681463333773345934510493200212205231504355097642293677577254455347026594598052394423755051643023887223526212557757428614715351404464495936186210533925454140819785608692457902577075051656505553560496836438201129876920257285134972223223790431154128474518504963038559550022393594633012694139176345920895438471956443815246558725835004849999216247840447442277058030332764202299477900541357440199541301215442252252295379336254682817104876749447802668278337494842715640309979285857131792150123092192790497050662380839071909746845877264388499030819602179823169992757115116680716534352363112609795653901598047490486068530472789921726796860845096147191368502367225873626984531731902758413337571223104252550331768111626519432590529710126217012430354111123712156151927516240653300135626399580248159834876095085284809014474816564818310607626244301551005677678385546857081100689180557093886542250409330161365126887077231118608126519942567657242983738900389789837613895947268855443030928019411804297672788709901470061349731575699677481736216311284636414982964629964787885885010097176203948258290738545686773018809775297697096909434547897575499948136684526423041364243893958209753729585184122612842308433235455034814103035119831531605465728454818329722569363569730091716026195881721303753900949960277136083604522660590423383276607165466427199195550966107368031447857883738131356243386531117875084178231734305380832872120914023655485237571304605364044875444965756779576666189940831842382510925489187692434559911436839324357983297494335940915215141303212517077050965315500385681981786616018894173247036289375960831875998802016426756804234130452481580688771068003784566537748194719583259794561077493056196791654644794384108883510865002086677121545970908656193726499289104795004333192583776121793346368819325103715110884077926590930346395705713067062023176007582111099388918211969930795068001935806744032204730173535038331113777200040763636023812478309797237276507077589043772780523373434402863163751198868113406811960532813588063827711456537717135577191173095471883681036201824058398820986351618223401536055268033394177435829649489803887013560301207086741891846017541291040528023797068641863523999482670435543209208925454496641685820522966450789599073287266933509891971256378836703754943128140162753127009386672525632938418738958015659779072918351309039090115393182954081394954259051107704743804531352580290505064847006030797288260966303654139727587878933162951040006526594375799548793685361871607868475886736971065909955195453442824183019823731004135423234383038866635417648615659847764699333617172584100638179415922537341807284525882366783390997692779657910056372743389184827204247561257746229808126013628195816588717073000550738987464859414414823684162535566276922383216738362948618688701596063943438291283522976016757408484564119559573175773145244702072963242251835291139744208485554229110241356933071541351566229530965895873597437624071872037604462930156935907013397398141912757436370261698569397131439561284957449265441899904139034893829210626504845192831645297843305360389302429198621778685448520671430119735733243559786977417920811065776263908425128948321091356903732889780574315834006585102247711463068454747986171501996435945497380036806326884730477433892305663677990436980783031384027793618177711171434264536262967117407636578782245375056399307533634998754516679320173436157957336138391316715558984815442298336608150501001833989023515061981422911297975853929361551299968052949202829039199448751553244301880865213609769939485760296078282602579394974594977863799045185977689447037067925784766843130101237865175587923814569692127256726935347972037018094631638018135356461577982477490271659159224637330403749363206206175947789393240669389323398352203319494038552680402036603831587991083639480310114511087512821592494582627216766820158079968756825320558548574381990944476209691617401770303016272309123040626784333410928196585674765693657890571329054660850445599895841431152630442676044543049733637053513024626722343690153030234839531945306638994711135955383934896724366142123847294244247554695112051820072688087968467179832070684912240714574250490865761839518268217065834665173918430894727319125567674801781559045058997138539805756965829629109490346346995484810171468018171988813887200583967529932605115717929816525703346612609119772010800519950790351038512868656327479923987104231192494134695668298706948253183453650972395772702670547633315594491913440275166583008770962839641581585807867141824471124633883725368532913991207250697355469283273266788661355821789409342354813129734166092937852202481668904441517146505619517092857003577441601226877972183673299592767483726677670470853447471688965830788059167021352865944190450235966288207810197859681128445960931471566403324731018980043325781934838311747593694985806025254478125011727406762881156080603459133475261577991642252735434002514928775037679519007607948152393641041512595761129034548755721360487146492079506705293158963768740844766112827568914596207664895110307480487704099768006483228192893862267890394861024723039202738473789035269010019751197728535571657795381648958036984498886291427600337604355261627300017664017926447212879032277315058905009184570325635192418714318221225484449439048427596592193271913608089670145046815177024703286262079672770140779910996547953112389364120863938245654601538687302949907124707004330819424406922185025432575562489432388510563089779627077982850426454221367476016128249079749320463208777665164148189634531742690505623945446720951580792507769583411208363339602045701677452701914034578517665634803982614059416946316587634492099731589945833071252280646037216397738238861863761550089114809755481011273103735545736172151935179049995889017658398129441677126597573250315571323052299870855810329641567038959964773537569565072409954859792300721013058951239543635915568084345753871132803496442632638733431673075610366610918006260082455548269215969367809640534168080273569683790998545803455215523938933566619472062377210431677582363639882384135797030004413770547449080213013187229653115218626502777519999093232443920879945945923694431175793116718335947162923916043225466686884895708926421336881231068892633527292012948267951209394451082622077782331483337140747107313342585769459283163178839156097911034398196409578943995036181132055291093170170405082712325075252597893776652122527450164058596654287308331020358283929789284864012430112454609014056641028895889034351153442125311678207602921870667021158025324503237922143954758284870508119103176362398605064833856383112009823507811349368230291399458529063560057038133229347355267387061973034607353104803705251927789267140959315824670663685444693459541355604602902693134030649751616605436086020486967026803819727841612021560567022944958313918267757682207061989523686887532048799702221503108975624273712026506446385864358369526668644611630077890017438745871441272495732299061950593602386646534218748504415113545739041404950044432314542208069538369983825803196086444312837704768114810923709062112937917772207242233693782286866392904870637035855514838255548044287116008357558566604425412958191733564071214233047443160641724885006126801035947166689187631112412412297891545766014656388987422432973959602689199187947355057536661061307501102855295783646919003932478213890921557461775396059385075192955259209740408331238416129767340722267838553793471392491082611375650178252454063730729929835467086542822537875987897066422241031016605608344507410942861257764856737278604004836186216168408032640974139868389461421763480801976499747588556245616738265339298477652184199921490377514181288542762427321446912375168627061670153513293351986165060758926771213194498495259904652066654704633454431000357686838019299019202685389835055444040169369509597608105678689415038623935360412886823236494765549771357756537521790267938841650531541222795064913907798415948398512694021180435036072586094360389702660301351949502107309421784464249133272662884618960232103551995933349150535669157559851164253487414845484092747602094530019804034061138363312738992851630463692773728699946371429906145364554903301764186488828384005567967495226259700266945545951996319919939603260736718428108438968128985521603184582779767834148723173188239051154523902653917668819155426546053994716801567098648227327240669727194995412789076563215210441868709633354057076753300164851738545421255587758452562792064982269507151466948061705046309521245882264668616824217620092574525130975540111516897290146124257184032857119994086916578563532798085772108434547257902186267356684066029783269295471068608385220574535724017595325524791646735463273408346363974474215315161122632359613844297951979925920287935867999909763358057827622085372625435198885751923130143447598262699707970955526592474045930265034152711262634326740528692597047292113942894095430457897132384739013900714115500761489570400269578031753101448754454823249252502271200120513475924236985938658206869672227335967385536898145735540508088735714778075968823209278122885092874647690184921479904393466199121971273784031204469558280662997541236718868091120868280361217043717308552802046399072274527300533327385511046575684331452725658350858888979272507771665186649823233232679809371595492580397440444093424588781121286386632777588423307393299011912382658828361737336526082806291601923559784753816772000097897509637818554425399587785122584647242752637772511907045596555681428987189802461150001042205610131599088659756482544063167330373191715267179952153987041891783801160651839081259088261776597067557452877790941291217799274407721491889689388609579260963255040379911271286252204953083055143750103975065123171543426716041233924381233954424609534437268797130227221453467738131857783869152078873893339926000337414839687393052125297092042598730819634679090512119542303193925397714779954778741387445268363529339948396452939127633907859738766296152777381423596073948764271924589094686799924322917164822886173668813521883942369043843159541376935128838307107207872755603958509806399485695023863137792661404592045164460348660538743972400549494431489548507407492966302119087681708436088337392603227668053344325605729019654152288203907817114477495632840456046673684280623175085236686800253418430181899257709608070948188239479366961390714427320806337426645908787805847031999047941196469985633893606514399629480401267441673569927873881119388377255564942568450695115507217744339192797277421804341204831438901126697579121500300780572414946612124701903409383670929093831442939039626227537714309679567352516934487957859803109088530446359784520156028296344543760668512801922139788577341474392403941687019376811677005262917215742484357894486077992740160584437163252080696493574314861584313432995005350286725972276171898179719461452379564770010754330585883282429191496896701228138204896093781797612557061720301536595501116660843056313909943262477049572593619689036009789349244390565356257682811558786892436081893001641982300310030350137252912446533815251296684779417683014082168544626953571853825508333942885567904285936550995330527868895512558645600228173212571993134156082178805334742736929978357179945165055761569990078567599700162234854618541046632395877119681502180567397978239797216799684302561909523511636904533040711241677619290409623462443334477917367547874546230919721754617992871083750252013401366791410133069573587084296102220510907605780525039685474403477881693302902658618644113854887621342865252769379230745934009418174659457397546500571351015163945204281116823236933388610186186903342979926301133505249013127473966596888766047544999046794060842522699773979087317433073563429466396003779960960034209178180008740963806899964165939361176421415722992329082525956410343466258879740987103679513958860561249244980196685725049734950968773341749949809482990315858547899679233451852158739310987627065508826568197793897248401777168787250489413665355708736209757692432827947218765636852374862479333227600977337404796983321951297270209443903269978772941627727737270440305140968346403244067156015769230728888981086835728375133122002064110464852745744691315748528270804257188279213448013573794670676819674784064898647519906949746296064454608652033331859970514497179833357035228969490929988442655699567365756484247996321568154622052434008863692519415113890397146693962508416327121717589009098323349476266696579769735605723716925755722018295109388132522602824453680262496440734507685620427047068159887573949268609948763663809552780221370607405825771123023505994609875286637751450441768543645112299290900314494066758545500513118969782041935344023380877126145592104812826791582781270783469774233126664455204060246387780390602404179920356739219340626149756943042369651209498124963267499548813365401063380567102361944669032370609661329000054902468914332152065444660652291566862215975128911033932843697882086524799359986092798516070732567029000677030690212470533611526061100731161300247629206569434441215319508342445742775746386628195130096477299580870252686388406166514251885912242479596809384809075630542508302552413502095497487374628452218785531408677628553365711108516577911548233772263746652267939541200320379734032468935227772028247023485369203113714034012611889081085820630318716608171634447282431029988854478103708439213387504814880762388358115411496806688345237164624600790390889434599542143212997773039846461333701272439124610462124981887187981410345866732857883832148322215050423992995088484429430822858454450207176403106514310971997076533727716422781148828680747897583917744645801809036207445043828855311232658608846038806079597580466830345554422959960265405651869915080641093167716399987357141692782863033934368713338536403043986660621405508082100993017146987778978002818512252544679893393482521816973780459578501365772401401678532515620548208298005787164901497561584004397775061837074136674348334489291828311515676469144921683895018855839274925078715686719955487744491960265386379548875961854593098499625517372521253891272346243970859725266742228600193354378381389257491198534378446696057962097448659366308135722614653759056508030267608395078609603895292109503675967143639530577294244962672811183068643266932448352928332167419486360830214714360488000973256698871553689618843269926451776275797923368651551315488255575227218228753439274333476569526212967111557702216340881342981753384288251917306948421050934214078848079272556322732142384542698685828389801015900039084774232584438658965487027904160612679419152363791897025432019558633350429016338019286620356596945790258453770191301569758019670083799499499292341475960919969770554422810546609752408431689233090127179832775640449330595039631611184195817810235028339436848511656620763576752697548672119772825826994824129632858221466536800433418800014838554886299795249199998536528296483236104576773154353115140871513547538011926173405644280893343038324412269395743925763321537841877678671908323576094071304885153433683452652090115626425927546313435887229555866531791251958258486506657193459445884962915037457503850960677603869990209863443086260938208377595972932421899008630322344139679539607718446698760345957537536355769093601067937070081788134691067487202686555410532421289450248279315235126731208708937727468073329193327850701506344989808695439425975091420030127295446668537056847371953439958620621617494816712137840250408801512724595668345059371525502784825717936057703255670533665046007081435015039762096211409283070342858576762412802212506118281205365811168344122120589735871425432788360870093766727436748737817358051756814604906741221243419772204075188533966846034649974231442293481856514026520381288724046293677921873578551968200407486539906479284714030253505191625185621655607699135939167291296894811000766347324208405623309748499749456919661117286847625976979254815075604669558725500239534544678035624172932050440936381326050276783202128841582807122681165644731212185854152150750654937379138363364729764330462276058950049906735079816949697712030236083232013189976080210245608719497728711278983027326770255719024031573778363181119524653894439581535354475371337807918595449134614131486163090615886896168004142494923992610060214243899853611384283956011628221166415294293712057122070353776587490196973751485756368802434885200609612661070745254786625797457674130574730435704085941322742046129182412203861763712242646686265921223359001739685394004696349939059413308788570147224135799321093003664089746607629257031872390215511798463783988586254375938946604522328548475583420488523096404297154387102366604411409375934673865034211720938649740610803591086780718091883858985384407433540853360629847327025618783121209545312406850858022234157964365178029690957980423620872749314674470847881085770991241998473807585096227911699289253559539962946353870830184337910844919276169838587540544391827174072947089366377163248108995720635284128632878105665600420294252014183491167183578503090486221104872421900927830568803559040557424666278541586797965236112998711985209462850881555719838993245147718750554438359868992088499345770722513508890206635657091270278028980206121439630972287773968542394941908035495249767832105126302202362762996199556833938865134671951161250330019979800086135899528533730555626868671025593599300317203461147869196166099613227653939308473271696946850848807817608638754004151565328570441659497144079175258611895033135286218178205318176764888069902121586479265122371413564365521137162530367717277828807105442717710617114509456623599241195362122978880051222834978344355389715962166427225026611055321315393392967893323403923131586228106986407732934968655205322249338633951377734627191360425400803891524918041854319052303895501426459215241410630210638142167873214734601901360122748984753305381781371350948824065519937573583752575738678057228030534568654650951637549928229629163165462391931433824084953522525374122372104648471155538786933873614857384140107068994882946103512308966404748691339315965556120382974366813104150153932842291760358711127997273394392440384995561779233658049150522859238610393811103919440092697782186182503514677878143834840539003721110054711267501498240480618202749802785275637819039257971018426383525532453422819225846097228678075382232321566830634759298858888447505640130532208853253396480032078221111690015221647258508029856783173828692451704310981284013579818943186948517528470395608297002679636534413633106680143401097715684682863370069114342475788777270625608447866955256437548571142762676254014785904371641598026714308072036253278004382164917439871313160599777794142379391103650225857693123472090713346478707225607933509499146536045223923745809668697960261648305378971301357646275184849328468944266745480122613541515484653802539778816033711410002132339380864572227373270454639292985587893380163070649834377570912284576192679163980267682388699442853088150184885697940188620135768481439346421987813444532032569448177509774837674430774241580214976805953278316833091615599642608768680154367632188331858196295024109059662429742700834017740317646388723520127680563111267295328225592573985229832553611863763206584225049650688251206827257419502894939569666482326915368950364420340177555307522974595546854387676322355312204758778877460477744060293166642431091964600366434062719354630791358564880174468836956803968205771541856958721370864746699977679140866765166857886214875269058555452497735007176437241807863181546746537489842965415515772806927424679125766943733511580656357562341597405814567466915492995676173445001201627625361859008677481115601095764331875754089826465961171114648974438294700972137952908660309201567867374782250881962676977014477559925837576667952468026412212127601833444088977092267805807489245045655281607639291095992814519251003758771392619449930945743261022945385500939111001221986928833164168056745377674087110213355988190997550862542638389028666815633554145624162894868425649453954794990047790498946436372667158373636863797753584712046236058394461165103372633031622813541141129498564498345116670762899853782678681664531010296122131829162434363348318162039403784274286172159260788109958607110840074166292983682610105756472281316481934005411700975487056941975694703235262052873400115000254462350053461493296330152880789968162874491603159796014519214477937955230089322313339290630288123254362728740988643449980162309139220527104176576201292889600723060687672242176898048635065332101400569874554310078932356269307717531675939793218629643316396746451128911557742657471221428117051610417863938284459219634931467979886864864754547874860437262200063166112914929321925235795926191705332847021845260040273578068661589722732740483678353610612837216705939277681221533039976347167030752940722038266710256672590489152814782297925887076854125766742529540707963927346873024968727641294059076572241489139033478060629574622298659615318966235431226772157858287549463338726717014136662648348843270138258983620920355185811189448957228806215121016557463968300620159928665987217129283176629049081559697826154525784995098451090744175242870636326383415371921685915569094948215312102300315874056888039626599350194196967441943406136512909007393412651203987905516702331434243167308046700471415218406854528594098571930429378002274804403101553701696884421170765686891996862731260888939191280668029553131839316834029529532027791654429144585137886516135693922830066512669505302537556907756056437213737848088856061421983142968952911645345583901559033945438254514592949226381201288076499383273539825441262988682397563956193240863941378438228922966610112151423496997007228795049475375517678369287261117727972246618012871578114625185538371562296844775939274884397669501462489660883453534008543116422162036852695019426708634988001059843750623698788020274247280705367382082328937434866343842885227436416711043807955626211104817306580030454667851028445644183432158181237331588784363280509169634986535725832122161369261381803898174800552708297396616053854268093255147442410019446824053426568647309659221783749868363349992880207174083304705907571877238129007090924655605451934843791056331122127616346248835205210781249528508962741003991939242963011113614350408767998074139150047012897605010849505677870326354670164413373117901446536781825885188345716709578569927421992139409065304080437927017240538925506389492419328837994827176734660602700490972501816961756258731135238565026799457852245565083002475904570551511498376576986972520356913654261369040638215338065687135500367933687277827676316196337463055283056903888706132544394950554136614557916851984937613100297857182296779996308785934450049101338186179844292138264513560307698540081432128565104089142600078774284297812102605282841618031644760715306526754056520495759774864873439522994381235990736922616301946069558879244502285328745259058855987128362113773775683738794958589512190638231053956705919991987439133025576416867633239590019568112913318933012738518504687483770236726600338494625716145968887511195138414813545836205596652643109742444400999038280993364357187411991017421844215275321298533856765973867542778538485506917546235589211191702025293945331728252245812953383244188900013749433445756268854842194621733010169862263786232564367621026336125565827411339812118486465762811218886902454440670392766920423613259433391714912993158875420361585697071323423936425682759743921071621816939511884545479398845329569418282749018792620657669455285386031676774061284722951329290234407855757184516866032051619011222660537573302936081280387465079968311800853693145048252524253271955077005719315772171474024257176980156266743420594897507781090426685925462616346981109507377993561940755051118919619393709873685355137254653825686402899271459548479230876915066535548270171136256087093838703872829083455020673255317599037273392294363207236158308106317977800591579839946455148318730783709218918908555662896616311001553551791252545656703823509067986462020782823065704831584086471319262529291290479144892572405905805138272557818093701828118334508787221675936407173404252522568841791385239218602243440508663773118947506987671473243016735261040749138141825346138433742886093356310816641299855891524863372655404676345994104422049833984303914958174674785454654799155128235122835925211101301287665717245173895831461978029014057977586557985154977216580185074382431900814834813392111019396565297266511133359681163566717224218353200698997904293113232332337056462176330926204250398957977643377126122875563566384831785870349089926527191545989317272819042109413874917926407648489799986753062491005545285559806865725166450486194655036763422736163857482963951885138682451649541509151672326155662421085764580046829494429158550073236913218618153959617064990942541488387161610797457167764004026583460636594357161244556337864679130880053538115706758077323082045480219094331818692113919628837093958625207259829050182563124511618833651413406402602531726582979207504465982009924653905261763438162374134240597146142858017991573870097171162646319997957565836528234743339237285236567868469870353484202213969173624160026488556770548400178114257648631425314644724499488906899126279587170872865714650465395144546146498263357959370023455171034775839872289197459831692293491165958603192984760017216863895326168934207494861541023646078400594193560050419466792296236068484311790400753234970868946910209919717019457804706745864824054895101826067477491223574139844339170474184061590964763365060789142799237326988336495618328610230453031038083336269789485072374818883079043841866388667415664086840457713147640615552210638256068821751257060684821115031617398750321629216929935675613597942385817954584884345099560115060212024494754936567442053558789004773149658713657806861084391226674464856190564548837132327818547909714338943395733835682891589278892950836208688379928022065174274354769398184598785032188642337507879261061765644320250500489442533623993532588060005178342946128595672285830034425478436116257557014466350111764832657159132915412040524127049790931362673788171590874900991190870343618461592418036648646064900198726654178593408541103410560853348313417154350539195473020826460934392627289178728104976555553466539864592013775707124886141579708832558467422713036017829474570203576114856060274883667627027165017191384921916406306309777394887550502291548758155477960601310875557999184219875033659042291564371153710026255076844911544564049401302098632033234206554764674630313004400430022041453656177496017740432777568534218852691826199547724157127154797552190895432175940916839291001399202792222441712122944214951752725316762863479501643044538473656175524679272871360343426824669133227195113709328724388461930493452766155433696589293233818906260020517797219118719729908063579945342656309527839808775662624069776794061241280535668636334943620280715113834426909923989489942249598364389174348530306682919792681610431800914782205343356783558132864842158931452379910384505099148221818810410233839349107688190750063323246612938183620371919681820916945495291835405640708122979207226293123216428485768180444882715686061353356617595774003587777594269994614894807919791116548761326276059815504625009446140939129087873402220985018479018763687461887035495165442004114851145191110312973906888346153639661850711812386290960064141923685225772743146541366769560138553101469970876680346993706426010561739654894326666458009491725809496184640925711349721547777528341210896835360704027112908141424597613267634428220420342499024806109291903823323782285269839970724869063928802383009504298360796624204806826960626696307764410588619069645567436836103409736932418334201504480288555756796750438023548130911022061649832647355743549338139418350844119396166043286079514224254658828050423460803891010275404223709166809241296992172239335760598591947441570049257541302847025432177840466330576139696836110730476880303750456163019168606119811556056347442372961707131639540434635199528598590141059329286230193378547578154355135782084410096462914358086700581473783973573007062908147929287109482321749525591715489882603024544332680024871096759778827350806603332484443927517259714876082091602697581224957968076699261611766035258071782723434095684774167038489860113356802269562328037439421481686426344091509649275565361039820737522048257306267855442070249535910260030266743408946869537873257672401779883594176439478018570163382989099821739600157822776373318617929300685037162500686295005135321252761379708990499825905549492648687711306120340290035366412311661214734037221583466026969558145754190707427074888990119048394593417529116016371273288932122784897828619299225211753249639677190096900691152018426544218212045424709568184578269262937559385182581122324411837515896217160337617709456939598855924829570572550710879790147349705656444642405202530941144877012059380781654829932536255914540867810543781397139098403912269738608454537307137355408750449902891502565724818364333223557309121419946010995320587583149584428221437593129512747543777018195877650914058885889109421640227248299357337586415002523591989782048480801798988407895565666035700346273445631589224584724603713412578294171193773662108727718704473904413984904106631538652182131941340643834274667979896005277841384347924250297870104220002803058387542652616967189400643929786645042192248174740988856298003434949395804310127025151073973868111277960851556295888780477313147275633928948193053657488678629864381977858418896575671023793263053292096584508632189565450465862928659537884998655438231993490099277547412760235324811189317162789410600209099478202506986191196884357785993766990667279640645973948576955529324555544842398668373709285997954737597195143336280355929994426891503313301692221986630748860853530177250592816155230382532920746278129396911073195893710046037070526856056515430731199037744468829827170132893674125879765307355653258031391147454499113342468151731151932971918984540678639307439289831427550717047159303040058255506299311083626848053313459911961479715946470075443923165703430041838271873870785177418528328454982305828861673277869418533492342351263092922176509796089435841861896054603105951247828257373937463319569439270526823939466630695675654616006270566936355151822767307117743773553776515494258372144400817777296880507250074672543519744584065668017416985997059752683149794907453379472885943457623798173933311732632740675486860803267645221238994226168406324221757746578361253868679939819965762050912846152935486114947403446018725298828999335408504623150719187790642742240163448677530957010809301976699663006759585328865080204944031158113585610736544747227479829768643036170380823900124063648870225252587943484553830781325585344149928604151917561456913774819882914913627160182505807191576510017457010344935184318710365489577339752281647150311012253914969549073785569295286453925555228907768560563560796279059615703003599315166021918919075271222859914272801221353086029457942421654653821650208171883708250073798989055288898499346280477005951054962160430069427008208272566368826888861563944783758951820673982513299033832395017108484705409097075936689247573401973133023901730086870748850906875036608522287209641462039232226115629170534789074868409136235732147610494760350177338250728073312176789403240465162055305772150273578426070901842226351946764300347866512894258166581562624244562891401980405886374182458206936154991169428482994777044294958690169521972978920983772759741389518217236763189522031808947928136928825242169837546165829722819235531986431407886600237879034427806316332655538689605980440375013221172552743574668603936298628934602185906771416505604149733928598001289398574820355674728191424593677119538339648620768770360054467551971531347247153295015983272502638662856237390601887313754784347997670423388988324055725111567313900713726480297919778693135410620887205802317074183868300066372308263264094611375556834487712059151149257612942388630664571552096871330352319358427780495955416874705056631775651512518445212022452768990006501667470948763274353547637408692179625008064690067304619532941904243102995808335266057307316098412362622811803442335533331466352064628054924108405830759433417769166157994040030134518045729419152608764311293625171161705756108949959525601654642879407970437144571906924709472524548704942117261384353331783983922512420278919982406473087925818099353044257755000642143644400470575886568359175461879198625813930129876627772482066549324293410989232314541873133467625267765891337810223861678943406390597389747364722403339445750484341778650650539067081055208861279634892785811014901702689469216148011517111246612370656752965124927718556641550901425658802045760774981112027330032434840721145709084806146805257700426916079342177616109477282937168052874178926696875879184719882194704180812023715986981611753814682795386930497650719917829061224587355053967613256097426715403872217120845343953398946794537110362132589376544535499323607130824693233030080885055947775071017529062984179738224994112485898217582863526848992698361372311941381358251359882663231762201072882191543451518818648719539222073949936073224596849503706723552397604860894571115212106928277597362116716303541307501127278479558388121748436620241913355586202826451525858181462105462623474201610524553262492538173024847625957585800152591547825233352481912450493240219083637888628224676259807208578082018763908191203899541927264558238495687550108388820210893975066972084476721025195537789360390365716530870221063656925331937288735833384135676686030445012004302409827993259191955690528478989703561169244646843968718578422304281720365119645629217986166971447798078542742793274553917317255482369459648893479956520282615153223984807089606377574017440946222856490173804347920756994620160559425061880224576819864016674885504528845166231480861809650072298667290761609741352693242324064314768595961679966213486401421886126682120797848400274299380357115291039538330652487426570904247197171440925064596435268796120243511379034062685982189179274621040544176906550053697376979766189757736030024151877926805362163191303616971613835709908608539550881904310905834924970130056374748020459239707825630257302413984621972407036250389120353987123526739955086469413120113616972229862674764576906976835104337215295143332298091702593470844860908949183422535204519366725056648497862735315874971933531058760332816548980699617638149437688508366703673541688347197505456495835718947220995450255913980512890714923517031338281734625411939207035541501132519125979376485944608848522204932874137575936592420990892347513715429461139257549303637623776642879827891732685340658618374620736176086528607611547015110387988185900370970040104921366289312907515303783450861984283801440931271074671043611022635954017487218369528502879917611927378727503999674398941669168565086242214225235749228508298472800984660259190878046543485701918462025454821367236477271326199254709153659814439292454608420500466288369074521699015154881214031891897563558543372128854173007123896120906179213910377909812315865213736764446702927667523093873981482143075107535962636274925355258450901709856824681387196276365741263119375060677791210505522616430091587959435150825671391891306516369104701215143812769970500932197845303225234386239655978424507515774856901057198415164389228954865975265839140376630449952247675813580083740200510140349197346020603975474120166591270938455281662997282328244242690318525147497738994563958228966655458547667070632206925626006187496006146222917833415954812070162827119349833704622266538971618147750093409485848197449946133321209746175434336406290115698354358996465976562691261933976709613470124182415505970476735720233265006985449527526374639454397398456327777122688114602712308778402145840224834969166391966992799590111302049554399709722489261877366480776256102654380697844856535591325258386384385887449500300390309811617944959416583613834986966651897111610453762641104550640380194444766182962042194866874270022551129105385282087253231022591103942892177023096174977536181233303854019636240757142627083509285330447000217956427921041380664213556143598366997116538504097336805795762878843255704312178449003873534931871277512722638022608050355375255263714302949936697859310217892231187973832735376753916760893293374575353588827359686415978643217228022994653525768894507028130234042429086463981349749710783201457144079594660490091982582833433229994673003923726174145210604464971129944813272368008731833882052865694513863300075218120308861560746025385348351779877216459529754029796595457047881158753434453020213481382897042573123403928975285042977880430083096975989218910904593059893824971335811935240425400552818615993819508778683814845280065500432030322296598293968280159687765365493864059591496684915942351323416200347866810061872190311179506403061901315208632674713044139846597430704555997694256844512930933563042975801497340675446592495480759312292710509067620760156727794819397071309811112981722787424176647937976593464020230707465251628749076195119245573522414947900697429392686138635599909718697984470397957031989943426832365188942670388945775332803301764703410626634597703894196552960441309713808000814610729876572332072864330035100369263961066030010348274406552807326023880592774828940723087397985436338448561442195921087630270531348239738635167079072364233712048257314450392225713883724054650168594444798089493755784701121876551036039605476723325232690071746832605348825328753597448317216908745479806118709156530470399699825458034622059550094694042302564383112276842807016600709870592961731893722694844883160190543054319106179534345925622245262757883464613321047215899136342250489070318051144563865533843118637595971352782229788467208347758677069594188263091393784615825538590089780557684604166878820850048524460188869006287382330713426562800472353555792095259627736499350248174104739692851454338941793083265819954909450755331321415191513174973928028842279377662093092907067442427692453657816678232740899271152111272710588785182171512319880034696849076918317244356123748039902313771083381236433902126323703692882954729394106446538361619347598949620638742505179314248982598558156738302336241031210129470706639899543518498458465376045122375857562807913923309944024857888857576334280003109343875917707577953074405630343939974059697701907319855958680220368526993175103387665585067113384415109069172438770747615982374956339614867079043543684571127257726355953614228411666306272207623434038198245457311679418822458483763954898355985468761118787261395924191179315178378523939443421649272990699134785776057402893479369071903674812994589640882695918558013439032473820189802198100741716750157299140171897268207738922722662652933622695424042902547357509145120908885693277822465413955979403829690863619692776137822077059306466808355072440073084576548247354097826839983836197007228331431787985851638865347483483264992960341575895181441767670452755868395505342458761404756994844530964941916603572968319645464590429244800987039529643117787805266889486011632175845398405595478257080965411482671614164186334785561322075277150656126972425523020725739195995834707331280814965016680910392269745644792428828576756644620745851798345097190928580721665826210112722545122929318149011588621292274627545612060117831035821332597174004349163365493505663992360062567352467391974245445095080021197057018243071043726375069219782625152684127966278904105920390849315488462353365215558300589850328955706166852949434571040472190603642992266389286925151068727475467539274354745119159706542369481098449510255744602385622939140328193151592723284850117506010935322478300769301693706164936286292859633995376133536175562449193731515388643218814637862189551679171269776204393635612052253808178070910267524535704112735823215629850759493288495295813166540089439124455627237993921036348126168890030718089658983016942611860698926019359094600039921224869303784891281211251020281726485009825042406722278594409310942889466397657202344865305262129150780074733345060568859491211330997646114217314627312306616918525798303865515871129622627805270500175673281505675231184965518878390960741329078521369552227567546499025879425600496530947633977689561094047700661648787443810378198293112013473827080143511452821533212899456773619826947003327713346067114586898227371172564764527217499600284694564277720156552668062495211307370835177946902091754421295780722985434585195101325037603110562968103606258963685437529302345731364943552991245513251420219135693933351023481212320668358951267080627850727901911029425663148975976188742138835866332704308213885324810233471943299731241545806979881351148900938357967402327503214769711049506481696378603233314241736679002596780569440023330525501405100617568206817281673575773693915392840306638582026028574141705314418965601579969892414290409489805615433686240613148748573982222190918019683835537984389139296962539874339532398681331315083510816130590719017978832613304152720247541681198749542505920664143065351444171965134254107445080189754609833837218958727138805603123482008353752760685794550169082545984223592110546326928096243116122050599440838044307864952338162173045351668272637936589275481684102926086944633481713616701486975698829070979181347548724445090953845451049075440888490216963309220806552424808080323362394591843773941266921362175632808966173045651022498188139035897520425860199724403475476736350231468792562522107758273806604403820709622831612156735981518160449068812336559089573599256028447517554746895361835353906525200451939723360567286369275000587087379438104420382284307440759966654740297609523316954573106456879280137695998842936628104305562923292523951665211099574401351097110581214918388474330891569185077191244047387413024771392763228569685603189055820170041690865646041162254195567104076646378126794752110925295355430506253728259085894016908313736452734365649805238544859889267175327561801079859369631022542113260383556666877620899273609987810023978072070147811680063997480961792181359783847789537453848354381919509577361870758262088550681716506252931025704194573457943149205560746750943886555903971314026899641926787157541908663622526206016615476623431312800328910525051731214229864735341383492507977705363321832339820158720924591606487504628124582219134901196089031428016072759438735013626733628578062748413687398517335605308139000080674737151605489552311047043467953943141646741810244183556413897494606405893852818793117281177848029198409651846745429869282691098700826945839284219990863767405372842810304095371527365979268979848849312054306203210276979838958537006483374844485292241001296500828121839385208748570639235485132889379342604688082956239570252758802798355088279191798120961347636587166177626214272498205683272857760453039601364737122815472291461952745160888079416886651703193594342471135856483026249508597489832135732714601303406866702903995915590962695807086501586290127360140406123326253272773769566732903456051642506388069203312139735759502727875963647580815072652148015051648013190734571373495511156257479357086972864703745923542148969215100344864063782552151119400063316408470483087572508415575051388082968790530719353625481738900189628569143971977193472481433482947113175206969676324725684222155327451365256387718791226299146959986551478340287369394572627992901150484886349673830341542342997739237400830322823772870792185552831184109795343206848425305470377122971523713830119190904405212273452721530851345748774899272108993315451935797625253845587869469600307865501576056253650665854162576722065004351705588359631811652514003735738617501732184719694034832767495949154448058713490226572040615127821899741891462596174059995348163126566587276349455105912402494223221321410303772324975998848282594839054495423596902133080743364051894926952195063663897075204703776381543154187869854565158372695124762697239455425841006209733947072340629776944240147191507042148028538244459964540464600205367902327041682078126020011732187356109665338776493862086916083690671885425411452771864249525171053749449451805479359605425171641007412987217694909058687255530680284651346554485889441768987894003661395604581518879501732187109511988119618841021616815898714985010758616368831036988151050328461006387161572515960438223714899192204233137696059757784477640195987004388694842581777052961844826712337808761429971465387176530108987737495045540289084338467194226741490054851258330048391970291176718316465373132514126810113312444210201748548876079677484931954726568454110042762102930330609822493021280516054091613054945685849426663266431845211666056307776047638414089716442269448137166842794993177513399354760978885131613832369851724894477102643561452212337876705824687698308687422378832202700211014739880871144221510845094279372809279183140627637299423894876507603486944823063006969801554582100242756757379398866967506984282853345346212174656920240824349413514170804695308092382874790950318883182897307812185775723210388080093374931794861866856228133814357131328483351119735700854195829426487796908695943339807180079793195652734291327933354569817602568865297702882809612448157703945963720459316975824786043786626471297474062165546869607751691583485773477412083642529674216131584932266143776882910314910396040747060539358717533413429382481937292481475462866595943402480895909643196357643156725763334416790585565220130824091877331521785163596992606302770267402285863540157970944015495936092264162581305518500045296028704047785743378420423249577972065396595630611405806644418812592586362759312470442766808873371689771761080656725983656575302294740190028940958584104444572217407776658846814535484077113032973370031193791812447994307995199690003611424355715439147514207645716776509698902176323858376998911475195809411637370796899827736791058352471461446840441510257394324461929159187234772968558054292518808692031848822496851856437959056321654472576643631669252067881307682938240529989041018102835207891422194855006188903556575490693899348279328520622960288209872178653229856738504451382283352792105756872818430735576338674316677288203105344631768885841264463566844525633323353742343465870301956851153743410049244060508043001773352130352319549213838147383268687335255248097674600554671106069560670958217965762765841591802847361853753663948320537548045041788771548820942974137435433983847600610766691956906750917791630271055934476749278803191105991171624224101861573052144363046690909534334287937543193203283851116199886956714474455458452992561484662957240952441865445646616809296680915838312533155178584297649053043768314034204949534065325594385891170276065183857202470965550905937107420939294979464524390200749431609818130979296988854833135616962198028477868879151108041659633576992422292575524582950561751839933537340581504910549031524742346439052117376695121342362188494127749249917292097930740184393143333514563843406321881802915390749662214540041227300745240173795616269933223488521198715994695078655128902316594500386601079486298483201832874698599541282487497167357915794486359239217225657505849528917849074648933558656160044792670216856427387139947540009565539781038043096198517505977533101838674474855953152337857394519047041963088721666040833776015505040034559188569905597171346209074813911711234310022100946090594280251350315560739434735978901269323249764861134420046351008778911583745162507995329143163562767941455397653156375277187316176905121289838023593605593912166892414834899471408333715665992514453449612120467438721839660244220227383377861786874734197167448781689134424367807720179101970064593885137397658185080288489253525448806004405693427861288175152052940171778388892009071847467135664926481857869284439387838326846469473087820204008439865920435968710045724844866690166369434048512296068223666143637800199856273396534438447581304737723499334447283153543968139383719287231037956109992053641046786300489966862558277374729234377090615983669643952251433794394112032256657825784508168661724381262901609964261963947222958695177350555669428289724574063912985892438950340972508001606297675199963101659099946452798391242099977950360062254995298963677730132835756036453325354789634433676527036687488214515534489381987555729663667698063033461813518135361810882194993257425056246477380022052044553945101171672836495065348048014695817628121196873990816664513256446313535523144108635063277122607096631818329052530289508073298181379478403776574383380275583740026358156742661307357958521578655791775750319727029475980201463085713316997917755132154362129834794853003365920360617948646402656481266156586272214140163014254159022819407666359900019343253477843480055904142838347289776200174864660493038592045184729169785907241860428749800019350616932813466620664134935574670704575586466896579903862697467540731809812492189776233591035269230850965578082591139165175607083320420675004160868400061961182242621404194840435814478748449784879262471336422086675088332000688819954866363064844536671149792422482954768689448544672631688431490937224552652615053501680281888432985140530547896209550228895408855660812722697758191192533134805895755180152119159037857910489629042198857007354178551003427434268413308788990444086222051762444470909516343482236512445456185458933332252672898248805854618533248049474644075802843800569840570672382028738105496825225444758690332056675229433411796385416890499932092547165141692868733424227226845385124240536358109853577044880077719641023859646612279985756992038053978719957546364986538600765587028777069069449041905245305957051747718208873340671257166325354305075666721006589342284892845328627021723937434733201171249427918949256446667899030336577932202792075473062810302049530268762242636275134236769774827070954295824283662631194532206271030015342318443773568237522384764793676000870284909828276435093421662957099364480963079468675757412002836161852515032297914461311731080960376397657631261189471339954748192263240485397881603734621624217292388114927345840770154020957971863512434219589783148802120709407357983437608838966303742678599226197831463113883520604140901304276461521613081132352042139222990455378414263106732437100702974394825493377800814880272705667797835325626589060642538844170123958784413805978528295527446953577453981343639311578235655266048521020629620281509055019893402876619606740446765646310809582718179397888820421871034254808077519956626989142871618466658792061964954775945116041041849365380539653045143509516455771187009647575400381122935875731134819910532367288741419096213385856548314310156698184832416309793357542117213078678393955442535647864358049331053613407671769359543872391671552524098304932384691404385212713808702327768815600678484041121407540151075432646351183957736137224750128880388570725134993802490544422178656235295404192615516247483587686365627136831490790266648710895140874823630928718303336431342406711751551986779387417893781620511988424884949835938645682463187802283824921342772098958385280373295734999882748179261849662542301818806557961050787873487250991713315845574757773493732319146009114057769362737758701104053779148681886213944889472875272845941693133132622158207727369920089987243543261058426190011704257665611197630947217343792201259115164524077842226303730757361721300889296781606578321942664017617905184810620494574798793523630379047188643187463947273501780079501446931915733907793811736025502346049445873100955910751318359110448974118860792268768559712126064694513530638873671415245547691285797757872829882882362603741672499097383527787037076703807836166502521808464105104476034775696266909460739088358896249927253665819923644089809801197669941373034730049313609789279941089809849290895416777784920889441509502573684259840114047231533518285134336268251278522439808432366840670117946572795395446999867331104671001363664238787766318224401759090536921965450957608219830876945564149100648681698427879719721467199934816984926759583353555114493111565014147951815962206528435722459549769223741158928313670748930447244479634494753660958010177337818086092512417860915153118617984213333502946223194443827470003540616394114257311031818400898429903571273023574372270979677712482942735534497546252655984544975116808585515545337717504318813796594044965355071159390122319087414279566857943349153755139289694191898408167505193835925796744320432298737524302038162965090089108909285648497344552565078844243811220394909065431436844749221089938897293469185273660644521929337068940741236891898705267754326123789274710669806496449807190453874476866580833556747249133455358593495820915455716678830667785863937782970984771241365569222917318244059783864894033399996057192619524176604248729243040445076157671494344128129135802736445243621203288726143567409035694773553783818621690855619367832602758723345604256371412522474910545252188623368203404534834049824814805499143853570842318686138552856981112101592513121260114643673361389541394107244093202389766031045853790456334778707350733605432010732672232975867224543282017414265066433921033161205681923188408956207292943395246112511822204642091433115163317207763910964652878703915440986857545435518346604218599559467064151714328554082883315413154755172134982731308372558951714677450170907526222796705503182228376822600340843672628453231859506510364629570383686505332093718123419539639545452756426847819901593718463837913514191796362637310074545627938232361971600640605673043579487734171783325734228590180045052141178167961697681822826346640916841415543913528879176009394885747416132963809287409531607571975591510037550137496915379603706759623448350601063032094229472268667638659717764014692193294960412670693494613530656125151876278023383427216850460354040107174598031798368894098124514416446988438358173337688752970801940737642390584402183538382207312512963518511734092493528838136314936880170979680887305869955081926324232262718907069681159253999503129028652030809459621787992085883919124733626964905772102473573635538971419903527211160891215690402075472014128973869962235109337344391595606035733853741086805658765991366801215511697153253321330300341905941153741018715028465270605038963681467884352481293169128274244868925880780569294169554268380950767347653317397541319902795516257277755074228144534799166244277880206121766804290889453929497755519330638577207997686195838594844176584180454702112859407534638759571254612667351785999661720147698751652459111744275062564251998175356303056098903163891138976298723527204613490682899171657475746641397560976480353730347241274439749696564982371704138608962415169789695435689658410061435739828669181748079668788875880239076629507870568908538196919863497372188146204053331655649610012672347046897400155729774672660500910816679305571082330263984536548581062434591220300297992881732168953114014912065611278733911506013130656139945148851074301146173387611742233054089755238989152285500447799856497139566679045842516342426224271095377332354766501597240059967696743396277191241136866668664134611920959369983312369621076967723985329154827369462940291050931314930386288456416911891396721326035150306261503283241761896310679524507045365778592239713739409024124867814445294161259151512238325368285681560847721288700824453657883138658471189372541592318881413966135496784438039885354856684591693963623758672166346207556769931763634554316552465246568946636579094340990166309231392008204317091654846893222755826917338185876904895161844490991905628432836199477785847433005629748719690050586914431603723655510389419525570429867121772020800154818012590825757759924604452883155776682959884844609821722764184152339565018570746057642012872066108906013780989700044602211070684660853705707303265242630316164271877981591543095543453239388606765635638075651217809994669189831943215365004264940755619421975145207836233238146115262962294093195935049607537094076309083957391390575806642208899661686954329027266628863488130387153299042229224170011138652110716611238345898575330554640843306979621735053582119584508429387762343294001048060011227171028683296051138103914867838102692878612877760648757862433094148329667400023126743259466242150809019097744060263908167969576648583665843861883647351169742002030739756146879859977200935665624828965710254091390097359543693135889804009031426428108952522079342521887425431562793113499558018007837652217843505096409059945275749007959229806808030871319849094195614620711922713223501796311278538494254255560194992902358641051214353452154541284916616574949211325563767722916227310123406336292895546850789292209817040184531236802348296771290580305672856072599574215280427088055147366764137739585888406305782143366551887119582164133315258156500398552432126821817431812529477986192009606663737060204509178736097876187247067314756555780078355988265930442683341242892243474990169140298706163685289739702644860098385297747628423237273614600194616052249833565108403131885395350543040212220830998982321799696522438312822749538928173418327608383057294671736923070478025683596181604690549085444029408667880366137581577659978516275606723211354024612129728781813950560769347797465015413646188924926490749200414456307995531646629886082592581405872361333782650022350116825723635548232568300549229293323910869023783565895233266930613536239203895715562431163043530331536912722728009455016900619475665233684528881106611190015203927372451822618630027313535549285461016892315603134712349748940365411716679046231593606509011524044406241623969124106113252657151242538222421030862329031388620989393091736388571075491375727983212080087523193827619224371967905760341257369771079507024904290594774102930306656197899552806713941281271568985678395665357570142979996126437282328059745745295268309990776915402746272911529544126484468910266151352291305686823811153038955036752161909167316922977961048930439248345612521033709320561412074527892874529028521066572062238907560339861768321635374679816663915644283931351130376501957587777872682211697403697651976108538090902157656953603563266893157739448477777450259810563590824439711841004356681060018285692781498264421434610470499596655934182256842389735573563357708455078303231494020058082020305268458222618720490053568419617824437064333504057028538770581896992613166844686626522837833147647996901091844204698818102461442255610609411389325237065759518455020046985951429620476635863365618184212411757869666705817408135076832310519056436684958318826148105185632718965043251452213091205032041309463308347697892030397018822825582635519692925786517553557723148546584949465955814307241068634181708373123524532166701036420792533653459790371930199823341454942559718497073606652686730177710653011425016713262783558259779691025531329305903185078504104655310880143486893835290363894513860012341782215391154988278130333167345287240852290407520590733808543725494939368419129275479877584250410808602724481943978898838839300441733513790224709359882333772585250999316074761394091053105778467664018007219349378348526889346931241076542591660281933299323948513093326305719828560859873438885059077438599889387694755222227532902857230103249534912029456305241647598736763766320714171948359049921769464735546047134720034690050357744380366866492946656903663815565783149642916384582215768920146834821228395122011283379337125521377495760129996856310205966186230800146230551455432567423399853070084744840811761596553962517167650635319124064922218356883143069115680113565295903094257959068659424699132368543153856995325346793886277804591729719151711474112537857159439231331264970692810049725207365466829534696194705854556444832345911625141411437973668256516273908160518914328490114349655043941442092593552820943214817563592459415569282786335297544657145110835137032708787015956441684835985401841098198938100469610135460497696485305851469860888987350489352226025647859920773274940519130874516835745243592146303684334573504495283554915816821413432509547185687769490545184872713760172655292529730421711025790265476265706260494613475551210447070321707012946797710521690517997310612811029934486775613884524626288180509372657143710206265918268839356964470152993306307969400058659365836334907988804050833748119347404611776156489418192125278492780047231024097734609886383184718271525321613425960901964124401015402466955880433575172472904501945445833067946341731185533733123927448118081420960434957431987347440934709670836282048173698626954479154441426702540537511854572261620940756952521523448807115470249001408334235490901751359656861785494034917627300317725678775834793923466435159151762319258287835200840713339602335590224131531099138556051273741215468271678694612232839819097543191054129044677390485071521253836870312363973223795642242743426816196229626539711054984138951036858296006560364681928035599288144573455266023946030629282894663078097277505970774359019764816516173097988542548242429215704674490421883939403543823141995340302722027226691658641006190170176008613390495736715108973465632759206560106889531093708914840760443782330343364261451507732539793000194748558944470507818748130358712203864908256426428419783860209550518191475713634614298763343147409971404154138568837840932025931017994573277496945907517420718611818365474711312246845770840872657815933448526004168350169271161487388788014733743517070252515303566311154665389959938165594875654414290743841719791434163745695646031271079137895820714133764669660770968615010430141437978446653125566744915216258894902043270857076006832916797703590878219642783348257354067323254868442223726326979182935150212955568960586600494973371738196334684401314936572644846501521296472576687420419591179202740077330719332218098063541936736555587462771294490609950508116923408342009123454334244978728988563401518887664793085236857811731730556454004694202711893291767702342246780207803367093672719685708500600995149216286068007968654683591108819310544424296103367391913053258338877858598385398331044443239877446740700699845814391239002760946288085009794954117259816748566470906026024305806805735189633850407149500795763664608536162874696201571211167286784941602299218517854038671670684266126757349673746525190395588279209788797701831044984652918138011050218015831368974366884142934094241704731287671637804171771292804388932270869886574442340949232996485830409274563756312034932134467792436746175833975317208349516765832711906192265184978811581102218192390193927454352065733908513229214506530854601953350918750112354990099851281106132675013125276992073447003551470517443267687354716471410457143705744505608062086608610234653681040255198316750915268205517323948153955253091748920763300209253721532518307878902800255472404839395528285153146973355698280676318538228484099284405495859581495370044545828962895981298870435927571612667756326788420807925608146376360908892355881284861150030102276033605151870353728133884902300552766718918032345889059751033776944724646867371685036352855131819432096223675942091299734182973014386972448153649559531332910621806935047325982590486025674657269072911538489622342849035388759089158809935125598900799409301934359424213126935671681836116087901072786820588989636201617789831350849319877594908686838054540469868120319243373798373383659019680906465597596178513312358077399321508598404562233697381560089765435946705151177491727356108265155581512628951459714731546124634745625535662211134282332123110618460674483112776712082694119866988126545062797379086979057292339187478714878024458406579358153782084543596934969151001344048444937990245049494026803374018760359767822773186292680765709904215860748260908018605377107228069205982974762867221357618739270611974394966089983220534871081943725795978625109232485960981914418718281631639524502893075198891011331661546263103742865270538040848514291374901035136037186778875795250438942831330814899417020156944735064510971283318221621435165348900847005484642562254317033684534073318137236888496486868276373989228096598792820834932053064072086590880420535120669772146458821215441420545336874997616186338982512319502412487728056078632732855882002183861051793444367099876850000898366410272373662244408714613265736301881593635775144967932679431116335336277500194533204941254038401694962400993097710128963227641108471824995560989763859184060459052226379055763039477286887522825046566933547235827176300616074713871281391032641121158919312269340931933912420807179752459037966966268897410925237794816510609825474038943771237195353926166553288256423375623528897923970721567997169102681547993737457476418697278805887894583333295537841897869329384638032248799412584294642183715757044232957140426932409885885018879582942449972258613216431740692085638866559475954807800655165696125263474324495841100112300617906678973611993715798552931033201012999796103558985255574045220909323396234838006913834545076170975166010355588445935858141431469284917154312738014494019034706410155989765688214133427863511578463781320698374910871435358067071554314077934223262302289419732760088895731917623536676129486951284740892294422025747844471821664647429777484956136970767429262571098372495037414532636074382391161934121160330111962031335364862261489048566216262412639198036520379631080752844218660432752870163571787965895353815640394339553573185710369413613626631182982433261090654755783989481542791999621154303898286086011958334356351279077517855154236499785444486473183835666324730505371974372792015458744333041664114289661004025169744784456296633818815001850886944269614002287509887053672326508479729920050268180658158215679022811022920387903580537606025455330926832789344867636290124506986185697912765876051572135795017364127100690551964685111670775130210159189145203246711387642250064680659441755953014336367841927623051303107471013056497136859081710738510059213682910981461659637987721460834475818630544979744799649006292948852516951356184967739603891540212762631811277639970521690314211543066751912366409381713180074707654121093886174878314905831865154949181734891542288743430619614926299104267760374609646898043090138530730176149502133751562258147123706331459879139466828849751826832059881980169020697666897346214254086996327602047907280458501850864251201376648917149112506718989948220491359953669076355524048702252356203490684736814768147494061051233656123423284199907242487978062410968289954371498735992685098630238876440912239008140593351518754666021480202170778174982189117496283475218767352674002657204946469950960747159017325545247847885802236063110328080776147644202134987846284963392318285687253955248033941928975841202836698318779998078238896820470446307420513055513295966881148953868929201655771768955900368122598604121062261680658432083895604098137779701481798360923496392790749433914085762279707539541348180407895610265578372811684017405828122669327172066141874462186723121368620963748959990083400743253288296035412620777747007484351780063647738708951184689644879560769612802457118555006449583476963941786324337274704831614332388150906255082822115472511320710736937123879335886393488764913883644867035508691474596555799219147800395938005032336899173202642086680699809038588923002008385712540126068592990838750510341194858867493632044058636450574566040338016299322082344226154888269390446670384049329363339750748667031320942887959938944716362268130780215486728509451784166555859469113156168025849057149643363021245095380541239746000239331451909706040067306302916196300963705990402154989195549250627925444507608009703851326906011622963239465239866430822080550715215421251804777589518203919847475921340516999910465340945464439440669717177660960866165741594078543986683051008279765128939497177263386110979994495463516209157519290541701881074115913402641490093909827469164196584752846045594067514664904757104903986543481638671764298517853580442990086740035990474049909855455767360782881053987742948640971045389489481034892264263404767797001196183132633373601806926602539408404658524619968764546948410232454606801422629293084656070066355041361988896476349207766520224303300398577683907248816985463175108372724146510030436166274698973285258187548019336868354740189221394723245758572191604285815223338019276874726460653556467002432541498961632768198021622881476017011496422679082665869233837489447432060498432096974096415661765326909413983175096861412183126382746213985393100242449294873622619755879818568400389483291322526665780396295332535052014124621126871005505383818895144860727148466993869371786528848831045113203681885048058132367407733761124731145656685002283062685826232234677766760903102155028640224240055478558006632902764067583063031538536133694025141382815778274395065846463672128015250119534543680214199147997700474945403543801195290257311434794529520294351966952343156972929386954110574859748409568836479552280277995763985514118190993045712620961974931353639841226533749321362510884513952684107078848890975352002063993057235421552327791398280593788712531972161193741878826749263228886197723285220098706378192853940146993985020877432753996948394688630102527702699089608799713578577452720952394114489636499341941278122643481385557016561978770227884452002391075506083982699272278452956060322439206380415760186722911315561306790901466281403042366990990719813538941758253173119641208776856828368866469566415292940570764902137464385883608569166625269420737704178617563366711528543324043408079308635028704272590221600739579692924700549956796334488823437826072184830854834834859767605714237314453375464472334650632224154351749227595342157062740230485400528937621389908250067505050019496235917900102560135296467527424949622841220414376164081900814989041496545423302624744913319051954531811651796281832752824562086350991481081396777718569041186347409637181510969638938549725440923256433021086478816591596850619572125727807976904403939705752184422054855751024883592482038612006908512538103713548316904355642161175374281930363926740214443311334781050072146043344872793724522621717790087874101079505929362305317945147054924424150280188995551247397147279764297409063248591523391955163028302411994006006313708243652143802878852083110169405250245811874466175237062653185153294860427611514348072227919691102618365224532257397937192749086445830765648893044212776422811249238915219213797101084644774155766856875726936149554869388706990599674664665202357827888289319429397201642228735602481190805614982257460315934453756131005220156479653664135342303684951289913465341325504083800298872260846754516748928539398750219739617433013097352280011242800249172996726129301134967042631486014281206192643757496386346616526914962925499834565044605197381224993630369790689059547603269135861770448978806259552011614805374248832034603487729105061380014901073086710507161604522261272725237825110991201316578970764101198590560336375117830240187726328271135097500450354737437454282686712710971510341927937389199890865795865789037930252303180959294815107968207721745941354080326929417431320128590501280893582082135154584533290027968410829723703309775662383979538736560438845298756685110866200406449976337542801692406102689561878623880801767672438887824810701318383611790494787180923824538669714291552405183469463924000725989246813678544524394116104928728161911053981381468645531259685371983866314591499379402709944218956999405642602328289736991983389573239384198317733891426700003862499791653443445424091491269704026425255781448349226626544286710626443150899915823741781800550264435917992544247082408942873275035245350415734444064939426014712266030735044809011420671710146180694550157426569884588219083610756047081791123237940690327670897759988070996489677590929723869972239444105038414180833308219804416353951603464521718084701517308939807342185144099723378683161827611893016655982470292882463489924535129455276911365832507403032412828454051408732404142125243578175291973285496796567024776488497262998818812994597639066131527619307466786859046537674164436530664876286876561745945950348949731282803067928103189345921016037383789534132261896780374364264316074028575598661821231702451473663326779964257962387149382623319579808116857957835737756852872913277800232333791025302760899637653506720746525400355626351246219904441156726590654733680891669267156659475068815430883900958230427684088550150953473747552901979254129876911245127443061811123842301518236534668640258292997634395779725315036636930622897303578976901829560506380579619288088533732660376791619067882816209350678178550711479789505618128303592921810493886429915103589897191636088298771532303556150967982889498830768678237131656114180988509216063280250604856790245340418636554736042579745276142836362892555382830414335848640420625184558300212813426648066817346032906629112469412290348522268385940531590774201059351451166526929771035637220692544955139533916053290727657833941744257485752426328056499762662121407511678813446844443635731273855785613564630607160828468674861171221131416036642833499357649091917453290231848977529817562616931649400192782395321522159404634935797316890180983617127390545908040957666343951298717922409452539210210632571933917553620440704449254129360287988547422860709987829217538560373037835735058631283303005258760963144750396533824498109872954470803450730690876966167856257735442103593772161034362442738850737353558579039589159117970269347916673982620957614340793368046059383779039757664185599687843030535626857141099200525645290026743041457308938829009619457429698412367759065954710085983327953271722140349871722297204661998715804561560300792627768306322622173584485919358750310171771654679879541265499633874207032387245387540095509770700281645020542316012332801259604951279462703329049077897802028920246244166873659465946411927982171663368787410467478583923261632354078574632860408311081055230582133743801696558518468442971195069357124529684860898163517909679333422182481021678499833309769460528668185889631814414449021422768359943070504096576211908228624976485111060824131479639442694743697955395568853909181242105101395811891589785151072978893607985052215421705915308730407268614981841592166011340638851402882905042363886875439181515204597889173718147414059311951866262988871948259197873263464569796014580428829006220493790693439912353168555413152651733003723895224902817717870278936064878528523243558828838349016597732762012774896470486451125752006832046732632515056813526678830140157062463270596085397322529649774625870114738305013817386671069943788805635375056667522877401930807617906060696313738869187158156916068280529498081854545873813782625670549379241914896030896173099427366951686275013185599243253311045621299744251973162873523559721242222604049207271815448997957828229057027238872322044870445515570666307570760893095442488155147100371399818629436110529668437599165675364316401009722682256786029174358805871375781064275962259047205166294299405885192639743481879025351238104617673667046265157157965770978683668611524436066931545171096548897337169474564288357876209345257640979901235919873468520687024723619756750420456814952945219940778650922232132931882245033651727688441186542755829147647653723320524314313527485608604713323614472073469255939093265213323320119984654615991738419571712343188424402162807876601450905273584358166808545414987879476982839554996790888115507922150290793652453805852598292099745172492189516934420378516016254662735666739424981279650825566595902085468189906316524584872422394884635718056520757038303406386998457176645552638970619268141120610328112504661197235744604716852527957660010329820903412509805804114511860355977464131504861807344613777851500020268165011736803081067963571156199892633638704406881457879270355369424055467475112066130936454156333656769031865916449256088210304023431676578151374719713081296851611927914691161225907196442042722449643475506306812826358396678075654600340431370746249397282783702267318905715444695753911063303336121955256303604708405907054307660817048418567595156610565420972364933930945474010495886940404634214374285670017293435543920108589639710654104479446066605467891732041594397427765256756439685527889976072746698802708038591263961396293646610661242630407452141528356275255438667043206913552449548502106929762186189403704131015451354657427449410223485507461996233870015893753222467357666931993408553271139501265635417863441147008510309477867612248244778819563890830168992491580108810497614587454584656107339105321811489664950786313701179574111615286541841205897476874715526451403254907813100856627676927229948814053405624866806282011561741591002954801515102649774027651218734795421847358664378537679145133921001010542627609831134843629186262074826756018906458505631392301167008586938387150174305829159869755674066582042050147483013606537382385383603235813691759100431913265742666066811598181152629521166625937845445306989361228871645557459650609647423771667222489670934320543651764148716319744545883675822387955469778436829142173185099013637289410776040339848886146194544780228253621044019810708072180557921077290646493635949524434350090007219080835133437779075928431154871000614734034206982050359861520277084704983587492192938914845650729404065144602696268359740359969163318629834538435283665439027724131582558177733279319015073139002835582542222467924298940032870926433571628705456061044677887419509004674350164431002547565786214162964310119967322468185319236267189715125424005694817571986408234384428506706307277212704283984237974259193717930720838553807389545079856157416809425009116249445118529801337307846342148124746470372431025346746024817615625930530745738838762304681208651497487322112005045244952709185320033397998159691711665858463310169435066486413760601784172906067907304779598411888091366298104377717982295479992443144603167372021028280073707400941071857019842491559668021839710736229929190914807304811441514129899866892635931703170450064953590035241939481900795646149584209071694574976173723352133298763198677143960287755714345659881007818901793272845664285443605525905178396788453494618532015385419871517840459592596384114428531174004920770183742567163521216553347714286150093773021307886395568992876898828039400366222474537259588972850062377296258194605721610090503952627801692155693331292587513284731156752428632011294531568225294009656891679762893306651590662037881713903266641370153663167465093457247054541254932063846165989528326481925541605505930535095998747481494535528876728175593738155668548228585229588727308836651128479748481541005009806902543378466375556244463352178546217069304654344833721003327491864954483386951428239720236679808065381606649311668663374899711068465555235643382695558608465955901662645791604688052064654193792011618066067662888974429742909731804254212779801177414971377790556674117667362470093517748488466068896619764042207317062963836502781655506961956494911336281430033505905628898876384781883515247788917209080758263506275759571715623087937384108281122406249975121567430452189173835230220147966753683297904883321922885580249019316951003626576172618181865275981195636641082154509616794438571110641931452007229372619268138584214763184585195452637812715341714408171954705349561490902474724002958166777258581090939934573817490815078556605734005551176468376074040856379369403702644236524194076138496615827212967020533669888645018686278777267539771413424700523601495463104322742303255972865737671743211126515458503025907247494212578933522806549167295870120645303469206256190830254613026123673435127229444885585377420283095737600849931333515511893284163860598526955689328857728041327665015936804623192190248231296809927338719358313306957016684130209739648592133509520114194336015108880313244792864889444759286065098633334213721622071770340015899119505049278151376954972640203749869039774310477852848360848256588701029992060716539185386224859449630179525333220460179111772221087045004023987821958828467460877427407503330990955843833631167027201076033508862327748632923148952775228426839722077730419880624563677521070568384629970708691539379856681513264036211778615014616696192031942732483776803025026920705566293902974663200373999478418860504278662363129360822756912879594080894387079421753512703429342880928818584068362841440441787141515098736625809939434831100540477628429030505719525638269275230711392231224570328365990205856935925452342337062266875568436692370329060661358179890797075730334869063881249440092557771970385178298535496876692734789387082963065390323615542078476697106907483107295007463575569630937934879252342681006001609642783655990504629876306054680986373385467117602690737837313159154928219059620150280237006049155721524131958969138444417240299019215237582324250766251394304854683436089104701112635916454682468939777513329444187820363558571405263894897968384657761444308576641173576877430593149194149327775903612427352289724456023066336965653452682925954167480639351863600945610418041486357406951823184541864475607181722927326081183986784895019558369985885347087717547545017840323763952812202162137208576034951558595458408114989003772831680209518607871423369502503165698639615485290608379151389715809000786371190182682163925947752569736363514887000285957840734940975467523355488925178721430204358796596159633497325202469522020481110074937475716941656459620600177836617924706073583200589155667740112093659502288524123109117960998630835918515827350653126218342703135008950410071373596080023763252410985038198834776616639475557955912715998059660423660420970066607704121154364131608848049427049009723492478993554919575770760938128554285948975298470464695623827634222170144495810209601545892316797889569496748312862089924766255489388200492072086811435240219785134481441681231692771274208366589021071011453318656904927209304146805451468615398353828906962233396613664099663994376441362215459110553973803666578552338307052554499820389251676193637961685172886937358844978025583526006412748079522274212615637689826116614932032263024658422968719081950923396296062314896455271905657131033368998351637465928107237230094248589425549511352699499840346738596609495998078071392643547432808028354369300365972488107132666282197071437031201211413485826847345214636023521302217451672306742644891503289503907740608457537225160648753909192419383038732184745187918723139109616087878708371247364248376385442343708853078436506985725483504091647693608004191527784389946611233085152122000103883316782161601373927935924510048556545621907675502233878049325800944252313584232339564683705327878524746599168120384849507817511377849578442778812951670079516878961020892940023301634927269143913685346886975768055969188651422451333104617166241321206760197844949362267698838090536168345677286197368582249549631687638809571637028694646364438118210435515447535805853686392375229780143823079597499808221284171120510457571137375480196727234890546759516772294799577627697288431498259564391593589175756191621664151064006983368421925329255046825788022244075731860612442460800152716313295381474673162740292401143030605736247917001229546227256583068110827282955292625870293935012224549822440896001429721763248256575602276905999274301631321931831356157910434888214705266119920385331386717211566278625696295128070479130327195472389298172746256562517410868253579306211705971636868578557475797696686356475153424022584599520440438093123951436640158033170317455785475243356993730407060201599087952113734586700767535242844836843623241069434104659268728885608580648694955145942591217226056559385284140653464546500595726605916136920060364119361157490087531316591477004223695940067727826819815771142419183948660852239380207153738860805020084929017949409880415086810620539569345105003030368916061845262350117246051888324748577952010083753574633427351835335295158849357494367559422878293641761147287822761321799952020308131968962194202520818781946414620157841517473145964915428856845439076941628677483726143948921678835283329582393146958145088885155534867828448789621596355117809247378067181568240802854763942981656202411129455210132862798784962733799341212495825628538736332131583317495126603817034643107722330012632678413252892865268626735854141183391525033740044120808319265274898892083627275074854719043357868844820166833834364241969201672806205617550863928071665979855077955451704368788276339382239199516468959452625887758966456231021958676759123535209225085020063069756409223741486211379778760169922855896424092940434700900148685365773282575143321263405585622563033129955757276111403072140180589011976585383268688288098027035721348036128252898756470365482747650638537828473130580381973377796777874825798290265008518383332657436258447885033442532513011489215339087531465980756287069825895917400639988663879794650454636355452165792052259206118349833929963833283838507075858921785385517638552792239519013274172545587989600923904745386216597238830555823253642392069699852521573516904831567606317694206694684243864992698972185600339418335244165788591412140688768812421026505825377405791546657936085842510196828070929254490080298579529679152244921086343927053294294795641832714033141771510169942396712165829216782001446990394748343618139437729112893667549686658386614944224589443375994073612979080586630862075004387049070431555907953287714055561668285618980731904004862532300357450999026940431288738011532938457970803078489096244999585749774527326412275906897611067548295806852342334199056270524762391123187180360362070788306990068776537418175303459019189845000522981376609921593358221789395641957131451739088940749515875235481395811550929087954144923142635261977057381245533755653257025255854089213577909149732986730611140281982038240726706805957711618065468297276490739899661313248318492469236157380645927534079945126410336777677676696142051852333342094657988774828752529582041233575959297814943563971489035472066559904945975775197482368214914119015006551880530354073136283742595448922876616209508555565075518076619772143554051507029279352672752883360918601480147675379166275950355761631217832896380280885166809380819446493402184345844520867146757470282453808150006864277413073344507678150449800292286802483439147135044331166300102904132848027038203762485495746477189400831927464865381608063937593395657721910601789233882343931232734510913802047016608398136613781960782928765110104277399205933372380150642255214748761227264712258276846564939354349894650231381608724216633299644494078077069782514505649382017860388123089558094738368902861135777375733191291239566896266627857983766129159503938473700583468701019281106507318007962712526642664445184200744215102850978395256411390586900512660743972641289156457994410819952298244188792411438199905299279427514271655740951822407106247103885581202232689187628297169357209919319939478383261136154232173344757865205327456298802078264988567249556225711817237291918324583631641273032341344760071973042472916748939351254696797880801045867976496733547439286323134358191605022485524052477870925815484763440184670440699668584208573230073373878154018142068946947185375658686901966326604568647824215967917995918849583522439688680085544493778554795446058206256794965549989759462166421655842912280175874737530678843473806791197744556823056564215722875377988424123418254356949716908702227250373802205415261698335492520503996146864650923008025594263163542027853663865947629219554857108714838763859774360473938223365048642220764778150928746975670556394890353523416748969948182678251079024175738887161902384109305465802526942340526045821786932747004340158443991871642051380859338269185412656379837244601887421439610393575426272442473904347954616401001155618196216029471069076830455385828377496472896589790542750988523134055362525533679735833924683115534622571233120184045867928443196418488321083293151255796555587551188930697619234601221947526168884549366567272358904875275861887800748133771601543445749413232116154188171201947112860420238643263042598082048114617282176146994966669745432698368241682426106139547632891141767350960551507811731496315761765577428277710484935944500677141971081218846605647331387415421035021124355709583586807104539021288594612234495500121873272600575014380162366999331922532039302069400333528580430279491474688752142028431468366385295497377001926735943776412030490555244657618761242121448207146361821120997435548349744214212890343997470491682470912036872830925602553905664401217676620817530995784567675922794310862318423256135297152867616253129129765182123886984536376760482419102712205801292261466672778565802968187225289071771579096356818390643463550449296218807599150476913978489809149990569211377282359320945885833896668794534269769532773295675031666668217801685562700506979282872775663386699367245808912709280399380065385663182901038140326918454076586810811944128659223048877390818854301737236614447146217577253233347438637856065752619614905807700053238922370911037857832833777872295876129844424180923060003873536360148540187358673940543570070732657395060617423413638852298364235220715809071895711635736596269374625963249440389256688747688922135105463773248451877958082054288100987841720076878881176226159814888366430349951411173864460800223089889523226916168640165974542471951033058207241665037737208541821426710517273038516785099995469092801475135987210613500449338856250805158029358160728442235487099390798337612450119110044512650138916989256025190030636421400479493247194568995760123025500216087885599766225294743238385154860264164601353288267114073445520291792845207566069389705524726714682797948922329383921544237363690226262730926543737421275942013666579664614132484096955532045722072205390731973811607821124974456973907286065565913588429577212922121627398565946784558592273839627210128318332301417501765045081488239323141582303307781472270705222043697293423693406368048971722099991062884893444381723102886588753919499405544380976389130455082245981331707292710583866557627483524646088292937534370981403484772040157563747034774481018567312654357753594378507471646585555517086487372293218564702851530814368685313285719277250198962075308972301063349467945874502047093203020979134890072419546926444116487249290430013195568173449117109640043351008083168530634272275120948888179300431019106276124182731109821940349459782665185100210877370313695291620862707197866887173464795405873731018302826281308550100077694795848025134335835320361661358790317031461829028309347646310939491142384174762014729312605148994233118867046673637387657735994603552194739907387918451183262488826389228603160083764934139568202098420372920692716294120948133482839854422604369197996987424451841829220449094573458238502501384926725805250783595504805109976277452016567764352727799826900210255133402671847032591036770467524400978554417157337735119626033967917276201358054788523456792795832992388921046004400197879570998761923753580098179758845174028506530641768057078604250288366267804144174707207685510678068496619922045527808124471455338545178001891397638299183821685525718345992191880102394774883120611236345026090022841017054478622169852073078033211741735001949017387445884375064388897517312564911533190209762275677539576167525845571790606776244060610063657532561157397858986011742100308781572949877414867861663438853975155001769462679806225699796775077359178992214274970925676733503498779000231239658252026217638202008933704934877827035474189289050658551051501073279160610692914791968955455923814742236789387668774576618204617697321558466738908973287044230895942562666028515413343023269421892482357006382004966924975021008556132711222769731791620315539983078696619817279402704477317053631133506650761053709529102938695444813433842439373961977398977426703734497811144956583696640150426880331876014944401580645342912845094546524300911306636946147152974271032300889072276026854844988771222469942237817967309779080770358734552963734629974690899416312189935196027374528028563663183712400764951548351605334790785018482205477931145370650727640335516915341263256001829819890513893786289396404843310598247294198833165506280002374902289731206085713854781743691142278405480511054892154401281952045264237045410796018538485295743033714354229307373006533502120053339456363663425392141023249466385971433756626071336726573913870610932212239477576962463625754867735940295007590249160462556209780352200434972758138305618077169074182728450512749878060040502177243564299271432650062724363401173413959963487486136986621317733769106316375556854972250148819607944483236898880154854761319980230302671385089132086082574314944868505285823972944292707983037277149297440105322974724946254626386443508845479737829138971185990730207476639512183654891194062831382632852523496842983886966993428434696592872852504601314090964714339771369817552768889479368602013537361222190014227316764237629154938078813523652894407290998548061509380925207951652582904967572385286157440092913260393850036464932174790004597249532091255151462772844203545411561379492751950603562248953675964705547479982403218297637569689167898065962529851159411634172137541512675908592233884674262438488684311276146432133508571032482105517657915430601865253871642356125187717435390269314656018916021851104336688027784864552775689477956946078799025101858407138994188429822335566093214026888860136755529926167854718905865693421317913873927853769877885723997432580132129496408094462483321478723692740048850858830881227269320666547524391206987603969342951638635937127906433371026051423478621616807301778130523446177196038073160583096345225343128365232321414128582390425148983483127994546772564695598552847835404070170593106985105188063068099473464787316322379846225245546260243895751764172282881215486083296406237244973688205061350814967757714188582334710878471130463041863943317929766492442302568302623144622923833303427587245823245766804054007127905669058336114654642693828323080844174641570172998396723241534191939531016496807712950162370848777266267977663864459611347267382114008584289278273691962264225308152430348366169338970793204009279609901373579910005189390683403145562140169155962776421042807603969791393658494674167707656465657483317235478042451289205747815304968192322899837716650768905763760175676556689835922988880878109873285224904126860094417585005114422397869213562376092130795795104331834278915831636684100708843488775737351057207205249890399627864018359911535395262627410577568513919232881676687537236953275354269548364004891075840950139007241569310437474655589472376266758509453401113712663702017318421537791474571242310458518466667925417162398783791839132317074755286088716988356967564843481638755127014999939426066624009848721122059043643021936373931216133636452284554463107306239535445528256510318800996009771111621703535445541716226621697693292002141521735352359147533026697620316002115540527295054403900523890185844647364223830140689115495692455382088139530641740276306666248368272375013898700975200201612884706369620990083347314841619680229870650900936488073383240601080340188604115725450271080462415590275482105422179123828491707142562407345032190874849795782059244427560710707572827992051597322179241002515733496644179492454884154166985459985822378679463754290106382337842440657706780668831980706307993282280015948538738928991227185268641505246077238620145183803444428035641321758720221101233153764365339193306593831116806599026561864827062063658025715305286793218994067406520427408259123605207028378655005867995737823127251417227535727318619630177541411490617772497009736661193409375621807086925438244239541260128375326463241558585840933759763078750926286905625599588223327970770478363816510286328366940755169963606680366412350484554339649924498843636562559072429997858353049141914654343227665276414014596180555704013436731828258264899125578981848459339237971422495539435667830750198555395029109990480194215063705078670280387520975908939013101349244624614308227811472745417638109707851934978981601444203307293238317370449506505697741948389474192712407286859631355057932490571614296674783606503599302180592680961395702273471587052507644279203203640287310966359444338246499122643183294398962664401073689819221860681904944847274926375004009456302748488575720420067707030444563611681595462244701351861969735054286201103907887843009996212927846086865062614554015386640923409051149438718614947807705506368265845082322492071210780067158609406171485443643782157481341686830150053022830032089865555994782219638032754371821234914435529573555157306609087995901822865942226236117539993911490928354123118945105752237336699532509434344718181438639770821432024186013686001244746441493916745712852521758472217982112000638776453194127282977217397431025549572342133339048446407402783869880103749715776149214104951314291689522521418559463644793831471006067319354228447219403145172610301279826424981507654639532439436635032813374224999409609902678024222389487190853607419762144735341137174221342002074489272688142014948137190817179623637660756711368124923194102515887928524245588381518580574216298699596522802853222084200497143775414933618471468638599277756047480429762908603670069693322750151341298129190331339452562533172807313555851018734449267513382688520956332824438111921090170160664771781791104033156874129949200418822404064697381074032922391349409624814978745785146694565171625827836846203866308330862071419734696322797651668339300188292439110972277505447994153930732620538444513944562512461207977903814785325725556196623190519558827918558622966387590407546114443133802673604994368844693980123671493106475397672748380512070999345700427500203054756478023549573891440467802983786109391674634244642156958882787737394175510540573790767162943281561085449094771846049793356283131110021972408724824870901250687897512095812523221678747676292848713095730262986236825551166962932136369203803361299879116624243701943258954561849263263030016353923518226791363493762551375536281231429627264127548221820979306111456497966959967892737593315362578545179855521476620333395187056961936332408268775564100471087277273531668852001999236284490178550739273140868786774976579856704389023770224296960128124492707024000879916317317652319709591970192414398337055551529861741865455094840264029765836393049259972581534904112573381388538526656923837942001786419560010772496694826809047442989958654916892021137589865227418880537781473253857064841282053137500264187473511219145671218693695444887752717422180582848641735686327080892640146967342782552786088798791272848707261157291079343519574229107767194034727968221304327985597104077802551070003240378900738920111236872140757010736209024898230974800045471381104561807623855408922880010800669496075442045879136192694657787086115010193224942648918872670385188120037949502311144721492806017859537603733122418444451051482766864775569609673243525359597144057803764734885372765896492424272081776556846462323036886315742150525759911821036940349133067800625627209686973821291565768427398862067112732712893418983150632517655203761768356306258605122644205590303722483434577246279663978946728403319704065887128570556167975242905285945225274251438009948194294661078753700886927004326035662928804945229940907160365976777017366302927447779166415243597733683094853859279915429102074535735030120072356822250143674230215879231908508485043878982773869947701568559349798255476574849542964532120837085061524234472297815380204841199803555173463901681360091243824070265400036057276610818686889416809401718661846314534452901976640023305959834498761517721608027766112365133387157734589600014777308337734854293122932788114529586175719107613997859539233332653440803605137210620340926976272637029575254093424823801422619213145007476717695322905337570505476854607418006364983676919437744014336702028827906387717329311931171519723189810936833182343954344973807447783777387663958355321356579100550369036923699589176699297963752963478820820357870555247701661114806293627572223129961403025947966120628286300737451982620988760007316921387371647344915675209789782617715252018252309181983882749501333538383827250217671210272405197723982860417969917891141792826516083991511403748532811665817558576007544787078279300601859205472496189618443060916771927174030480056349115636784002858347336370749339875690869419037992692510320697763093431774940659088722969147008059871148384105479667336156539235364480843270780006413241842824530773090741445350684744855635363947837177154877438228769415404362036210518271422347001627821195364445792913831459907671774217134492396972968185523516124242064126321970578382842301903226091280682643375497486544409748533833236024681795018472388386983917123006436477304810865208961500180240079786563498772997637839008459680757686811580563962798645501134295923377737289734251141390966304208221382693595645619861680846271239535167849756484998191102205686204642879154690808617686730648834984559723660859543959920827444540860297929516606087212501345844985485731586657872814740446264051450122160894905533729697938989589603374457903452407811573366756944438470649063274549582328736325542739135735695670178555266466867062701470111666093356537873175342951639772849795536712724138476031235254421020956542696607574970920704373868035027759711364990628795541419692410798490694516636215456057546106780354623799057542870939938851692908709447972134529000922194387271483507919417358958538127201325504820182383096269349357675904821558983730006403285552462191697338361980033459682604863965544774521739509504312041358125583429538041636780177847703923149011877573911037235166069527547216870541515344174431569606329089726557256445361291063673966861231758841428998814517398305217481977896244545700390690814592862819079279615862401675102002945611672659230690266433672981436787855036085962872084771000939914935924801023177634918388923576814553725876465789416344105722026330454320138005474732845212691099941252059540285669723805420142474133872100613557492015558864234349088097467982750676889179152144684967886301655145924571469344861046379431573570587181856483134369839342024996099980874797391984671788496937799055048019143030038867792557045939827860411412832595024234724574053209048201078941857395973480072409796111137067162676719670333670631479237578561076715353572173810924431984956493588874042314275916079728711462756782264861130688559501240385003632551245337362638218820415947646864749311614757575149131705197155490331203304352853864367117469648150975406008532550781692873999995808046091922211658973051789778467541540310958358328162047759546443793191598534847252231436329271365316083502328197875951753288378116548900460252110104927883649153150828514939996760794153162649915336011098602529278925603061783201171954134436487848349758586815524767194543146953158151184418870836110463501363956426371021408862440869225643209538472862113567367805034245275069271622429993395562314796103621374426534698946430468458824632653893399666350180269168658245177242632314158688570918989730899247346815384974731455311674856763280811325870029788547587792192070152269228698544141781317945144788230642743657735413516174878222388719275224753428957552727102694215493742953606585724688756577921542042591172044069976857963296916019772845811287108182276763657336343461162946162974982795826212103908661635722515136907492704838242267062386338705006474403374833565673453230417408401552328733903930191209875068302829206539078761520625951209174648975355938594095745362963466503963420982351572244042942950354107641330607800610559081509397965846951075469805574287833694463381170767916494802279104597800023813176674371696215742519663731165423496194600434705676325025972927997619274540949796974526099844810243934400977979974332573514393884125515846278662151989759993070964677135659029464160273176594611837458355090083875357849725683636758477156142067195041207408372003565231976830635370948682358453361978617156728494504348919622898557234832339797407947693717412773545767952605585114736049870488268266943293049147619842177771962632297526668024960105202837772250868006308480463288808634610101930536021602400627148567355376877614775578081800444123037655943414627949833997848160672751589293262069461013240385663662563699636983409417596462541904746706896093267952880088039190803182568157406168681485325803530019179843471066240904049692032186346614036081875688592475033071631831914542483400791172638300332881999608335723046675920631633293536128592804641998135070897774090870329874148177420421552631633857507182776964226953183809388029232779211669658709967442351505488813481412625500220721182817577351419275279064186328011100734905874935243936762287120177571774525305709454256750610397200324023322953895522194799889471099356822317053376237077044172920040097394147868812737007800732784286149167199075240049665820112365176697906937962335758277170068722453779802603647232403488771308425367584334006251950797120246694481981256192409706288900969986632953411028886528673054941832245667502559872093526274921623001638683976876769532052647473518663175699184898809696073915602654677554334083636050595346494650081039254382063978835373763393741065803703797445873852931851723528261635702240847446847499151772529701589273883352812285865270590380125211428256376650902206662614885128972157213359272747609418444803123331513857005171548052621948968069396379879744464832349461393127868955534432176402348706837037955413916046538316863211100665604312001506221436730098353237909365882138762161673396328202934737091165368881660022673733555613579099123862351413361298966492902885639611951905886491982145884388074247393854654625811371340471064785388389075059772748639872536808897567981121886667223070625655730771425195358209330337797125228916895105580752576906508686349823386161502322367502353208942805445508915545179788365016109783424802298564395428779674853685059945752317126718028878543987510655804971879159619608993875035143802354962569085019561724826934909657278999210686988087681653911704941601037054340395659162852812194659969341383155089966908667883182001899255647783198516289400495365035864091880895364261288804304448715914860455645135514661556830242921848445616682906753647447256255535903883909432591622001160889986526733562467639411082643501200295064575284163578251404226971083747796738575425370092418409202786274554474841573295306007179663236998262149883727077527245674981667077435231513227048973529817894193011861395783890250315408064348283242171945680568619020246614524752474193202406496583846778559373232628031273035809685034735158125617250075711033298117808265543479922288598835107368680761011698193150311157760487986467640207240481141287896877556863167504722546077518208710979450285359960148557916216595146784987550080963077528802516428160121577843745901540533319230922045868797027844849893676148939571099016580501409610477218313290976764317588035558363357234424667821790876187510738241683480952715797120606164395385606908359615801243452496649727111701342932468758902614274121747448845778271426603927793121556931590217243706941693740850452234564868424880519944764245307024088903126651765212920023407960802187385654226697083327565609193359282286480376885737931606991747519448085929748879079803591333199349341485436738468599746449157054272628459621583803562267132894190464995847033586766283440403688882194129927472743173879839138124000270607858114964433606763157480823623308390603351489382929299085460845533069163733754669017241639683489123782765957146710180129300295534660513183214965623447596894149739341780627401889177219681673976743657872696203696316697687029046110543758987280392919175019449034595189120796493440782831417661646786523228426467212515111971802083060329260892785700688108584829211124227987194235142332177680114977685686722989689057019565892210354190711663044683250982311214733435416523782004756537780672469425597096558160986963618439113952986891391500160760995439923558847798866260822523769773358922164151405321976420232153624130795018661903936400654273375930282094329575390748586314054198683595559417075967332885102501402912391951677631917210637104716462869108465147317221936663406967769990080158681564621586770705801868320744256518515237264402052287941378823673093525931012664705149727378893244502795802087517855511721316401537991099772050927672547907169405105221922651972543031109301950692247657525748340779730356913992150673407946060223202681625807658440471191477762536200919316962589516619463669183986781847489341380388098562334120537178593170118031134089485681253358294863988784393662836101397234435499187504538360387637002568274303040569499716981571548075899963527393605055587158209727528436899734594841257520832952283723882681653420636648084957431007969308060015984720677052594268222602282480150590077620091977263247594650694891405977730030650061201585357981154928694639173990367089943824404911468297686429958955690648977724381920059359512742792688296242049444298985015826576044804443042755052488996587026319729081260037684648947100973944146304236765542671199217090067427419127206089902910895256991438089352165670536037594657691751106583943628920995740885325751491401192652089102363488453824514245091190747327683060321219995790263546018763066356449411315819100593255137949373552730864657424949122044474506049924133131655338031371559088516109422105126753470529654014103530423387052830819279774660841582396425937924284694099153404152313669978227110733084125229740488372028143523435954523298934279012752749458142492649720605388938313343728220402981570132418281913326431369168632374918669146168388983536665146728214959233913630380548511304892243365976162539136023468899424766492198395720824981389387670486449857964061591220321238983758144183907327736264320143536379214724565314786119056294963560123641032085049087017614653373244041333342214219844376737540696349934070509139565338030629597170855123467070696317108445026512184770528368394777343445737306720341447456961797011354176324066565771683245674503027127246784602888382074004702809959963198946815253110214906061952259793418451158940268369973511589910849779963883827884712998456721216953841899350584592052187806571267704227300033108161797964049372780529346786989335156155317915672034432269603282968534213615944952935841626666554338752205362755451851318815555717825536629139841177771727849495859760294315725380497860237391468683445136758495202767414504110414557069860228678365062937928968844391196446228800893469183776798543563059908406132484481341922876098938880264399777776975774170569990344355182256779321470947647521118403189935190188364463869753116516084600211862930510718852071895648389301352648256485428146415520837921717562322361105744352688647412438879951713858519614847276289215653515989686649396967975847337800685711088126130528900437442996049758580341143692584992308054892156895989140250015224607461310069077155403734345303113345772584418251790368440271303093402932117772555159113319561943751974782223176733555464007288226082953597332128818272487713501174180251362829158838157257510653048915992890822469752977341088099715867895632959634938589454558210784772280684303569846811786137078906197013055627073459761610613906172396344123113163366512337989215411013989410210724876580815662954828785066745653509326681545963506862693959545953280620800716665764851752933005388214066714582118725353839381313457203391237472876183755121554356225734667422641539222566827992300580919429122579132418660536538337637386771821334077883627678104265823146087666238043976195010507759285012061274712188430063924461952030772350211209069768806425311255323573533082487515628109355984553431636102946682970324186482767431910865391909879561215608749218360410994846109030235972726394558844721886051181977830270889060591299471381662350463704989936895589186383866996078816020460770037306428562362199578135504803594299256740890521444035909530288344120508137629206078617723965736967704753010050927039583494768915788578147112101084631862903308055748928422079170044222236978912557838067683777985528978210139649601449903915483927541019370608412586854882287290683823041264384901695446487034722454835121256009032946413150142650808780244467021530152434227255106596922508126467535912209995673043963808755589735141504251400508117139407699211135056893670224539268430705290326015379727816307161878765433581793120868759140556989789559235972050192713606016152424262878596305147316047586540381345611740154742023878540667836492783092894660103712513758246757542053582866197694311212338167770992031322540030382279162574506846811003918398813159494636077269748768905191705742552496811373078078779290637631300139677688308859683287943268615395059583490361089545745181867447177672358430656684838852065605157448629826472793599054968541374816674938255601869919519874429916820372362078486132896421380498006116731550017475186499225070752490573225860665167941014431813818090279027218528780294828685888839529210802419356301524678144830954796286257869028380273472480536258858085209660836304432885304221587846597436768483330723724885634864436119104991195538692957487975647913684812606951174948906684036930054626967953072311149893170716696851024986304297415856746891435066375356515889435074513006685666799989625015175654066571443199230730284737380927186392306631610098668996180855882470892382457174445223619385902494012901085409172171921808841172967996584109718762453872043282922918032366617703328197624686350588339445106321767016677199496572287702157445301087419053231902655556424891268566586069501716655812904926117120833636387665033829883262402359163895600992137131983071285749298357183309989961377723290616015145125346499706143706631505167236609742433173008623782972657800665041651767841656760471726935402592566656646418153079774656239949170314277439052165450214362814247214650068099361666026497740444739020881618906987062240014934444707452610757858430667518844765403389633411828960531804218494172208047980580597886571055461016553097634277072109236695287887805545197078571024727041337471296897439381168865517054198017834771781644989777206608096325692618186910692247591033400338822636582921581130043567475764174731381303300242265755460907521798935992031384579284410696197541246123786423123924650344768307571025586853867466879000404867663259304421402852268588535029113379435843380730911308144337836584563298248723042677400834382504137256384892138132704631371675156419200927607751166284000572776119645103659585839019497195748108893087652787656387420590703562771765223764236079909598107562646166791486383932400203234616983064297135546091881391196755668588003749401544552145812450681966894992855198918895808802173548276629631124769006622306653497402635445190058086389587894596965320735130568631924203445658583412337175503665033817868477616099909287839550629743428418563179211445679955043981357043757004115476456110389213664603178701975639803478990283178506979949192659998219308562890219164036719431428437753105702924153019566584924500172617046007223061949869111656070964908937385425166750829393431723353828422003243032254904320735153755114767507382370636395873352591048996545987235140305503787238805886182765470749950775925910534543924993044454511851359323090691279641181595930098625911924078969007917043782440401146436568249353540526175083465553519752234363812671588478364060813421893250785024163129959538770407714367601621131062060448165853958896420755290613597087538114039651618539335780619118044773965014076679569022458250856845612107218109421973414574341375940319669476484319914013191212630253907887311815437690448951749712748458811620927862578278680857837328298546178435939821842977869987473646781507097596533837409615987021078595005224915886213738609497216800316950564558079962797639200316458232005432931839326881422621731707350538546132627340834868244037884497435920837985342788610118618900366263334797823657847531343458470829529654900502744806427222011467017333277563471929401822657601744217315153462550295018112857109827526101230351523453068748701945881345880446267283410826106616035221685323609352788013885683365786544697082798750607678359134016207478535669063324826776717035787210569171091826666085331101578415039595203730423519966174018368642974984297647736202942817723446499364009411260110879937922230380350038048538581647339526023816295013707673515774333179625886078442171327970222838105761324774873261384247902777652332688821544033247650570764841682392516324750557968851101742637978685987217116234008920939454551697270223742357562118407631623121551590839225343961658531190222417767705154898108252838221958280440317376452229090433505975638671280194620962644668033612547022479005845931649150513130995641089285113213857941784937339992285007837262028731118086194352675121667162973759483196752679558057587638682566027790714394859291805953014332710851428692478586532767275336443172108465874893699938656737726860323417439253264918138318250104021177628404088509842728658654380150461296540909948675175378607681970722732070764413536370764983783504453538305586548745734410091310871222483837185289287492574011764949723065935032255291030958307630180722598523788956283202130923924937712204978682107533006397694567568875905786440011721361126790450196989537811534072661605592277060626094658557447674314137634613969471779977466318857128306226732552742655559031811153667924182607945968749186800011076967240824375096977272519605376055793542586949913256107338456271015774050694216848885560291392277341535192293349943292665976286088960409777619717788006158957409175737491289331282278742652026033952158179726640025320538525223862179081604422986591388512776758273925478185211941077537825700423372721851065003591638460692336742280040642837947922292138645648386448585422737735993069128106486554080743537821945759886731861402863849741617861825354599360804901244587938358269747090977856514370202477887391373280731275781942867152067683790191762294804468955923488286734047061307907061962956681258428120760812196178486785105029623126821839906864344861644309152644358848856069019737820035616436699314735334703010112572429423069455494264097087969340948498752891113560331511583192871909443114185226798292219525363060219374690351149553775239490915280081776478053942580284205267688565196462202371826337399456442731847588536291580441218354083170474613240834240362397456563221357149346495806702016578539648645558491349993924507758635350715856506306956439148591900579204546678385086121472363044448124181628223071521992542634217768886860160100414216466572568139461761335820594519285695510492609301226188101281760501463057916205710150758418470562352487758553035287093413294449384845822138436082468763694531234416633253326473971324531321976153477325241944202681757094167527662742834952919732338623701866812014429790538864180317395935689421527093285852162441577685674433137687243012748383773392955659760802678531116977571555169328445919761990456955172964884479738000371573450588994288347993814372897916016130718296904333251945257813258383960814457046833380965235677956957047113632077227976875543215859945407734549155369366060415793030749530247734989802210595157683689312939420884947754653174381392628383629099418734136918377208189688443849935665722359592053833809735095990991181191465746223607264053002950562821918965434548949130397194599225323011100978034514422037424842215258828295975500522175637480396888123112094077341315979521451589675244386583100469310931948358747230454697612445006286241527582590396666373168777114629882042413754783513438424805704203437417653756164993185719468772762124170558817999042880379091501838310572425858593204173038125352492864526507007987797234541673780123639092746312927932392009214349768621207540628622832976949345419315969781766292175352699761904444480926103528956147598460977789725937538258268621501143495305459742437497485334627883430331473532380919838849673282878115901534033917009711255263221558582532732436128317203030305919631088053711172529961453996020292679118235025628654497266418801175603398895381912187291719489189528017500232465511767147894535437653374791977143735866975973347298627091672826550694726640305015720113004416843194953248862749618687890084291100355116654876371589014593969941434348635961338815655574411301363047340970708527671448643316329323068364881928891199245753823377121501646574781157360569467813308117969842655247510120043841026708005423034549782301730655787721496094326686897890296638281357248380455353905166391343964726990985998846761743357801636249202877836631955079798247338030905935743412675968760070141448918193980673154601581118421804899540766444350223381207585966555301060320452431804975143789065163402666713089975069415401263243930225413124432265174012136940484952684895146790854086287618306381274617404068897220593454375818181458713307288110110675717178228855006104516127323977909427994466007303426261223905042494342315004131874372792541895269112626555782864954775507309799386061625194137192218922810605281804550702978598622007076776357147872131869522196937815704866097852694124537022823178442117871317208738902208459554766230797694999663641264379258138736543754812938529981079236912817698615127724161507995982396534327108519577520426535018276779594001584321293326437604161740863211492816611408235033189475509058013381714982328960960739993996551444941392837235132549741374252898131571767773993180741225076043991130252973701271280153903275791319587899377651373202426073905400622443469172041799577312413002921948535112683308652390200646482453935181670337922801453053165339123269100233086685898503145004152110479328657201805125757078514765429270169999989235459980868044760617705455505343191993366519884862095756551559876738462965868775559469973553290851383019153339282464315241665630006499807615439159885934097813710824140077657177462764637846627721307325661722321121897822074328034310445048863403631535857010413615606352903871326509492495929144286544250658725793428077768618201324490548284892592410936325662015707205488618281304004514801562987628956598734148465790688529174305006622261349785983179191789223049250832761225246917495639693441817679931281731831485973329852911912110793155121174242774008205758270092468986416041438488374472169654864929690931607360841894578816325490723251082788379161932061604662930734633426109097500209531019832890102061244819711135703975711868200835120960863276506951215813359267664317629848771120397276465044813991019992936632311911604323005705765629654561409544735479419605281769186752216110879314284728510754105403780800859266390176003663132701592658866806245553447572527027638614840276450214014379793975292767163445410242916658387519031606040989562770510728002658838751422834711270534453792725579526490136173999091149987937206464965864705986560267518180105218882451933846482162866233602427355399405787514434468231288310323649244742327733838840240269069465470835094475830824587566955727921552226926531423119351848275017894546191627533489017403316274763993532285496439874150655274096603896924196711553302991834089294105102126954633689132364676442655998354893081507502574665467441655132131359416986411118424964495898867429553475747173241479185275731950140644714655430602099555697894012732119728407023381285714487945547450273336414146520686126948772728627413332167407743341012585592311652721820104016829688948962302096849335837107972947446086321604366685075977719292118129808933675109164391308738361746188951281794856713462560164474046516190017018719993707171133717627280809240641501127951941224531172366669310346050667426094972279324700927116591385129581959077233886582886603540701355691625847660860668009461760024519099278731423372238765045067429296882388586499435497894013798534680552244171636089544636721603338818447466540247666748177933539645797864625381694043605544693684635312782097478905378958827561382910264802994044062748099811753214237190648718198194480835794928682305461696362420152029316170207515165180548923479859466575608023766782990012028767042360001776956163240884139118775509483012489377627143131503338433235977352591811666630516593415010445815311232646626143939851698975043722528387794239460960989952268738522829603646695380053430102464222967923423346901251403431338757248075788238988436445132774803819407790960439316778564577865859730294476785089031338115791331430705452667294660269190498549650506905541713866538618403269909385961108118065840236675102879836657581924741883394710852519860392120529154835766846669720829447613821436093325792275801760965039145688776232962370158105317704260099367769210956908416137863737328627407962927702790488136162041113756299025543781814008334299041704835664433420642147219734233558961306514643950270918339549452454155629262191647802356201535158041733888001578110179243752018325529767448143776459088552686321189630370971688102641018917825318593068510526691275771310847950120342653235210935195484028720709391988195586509746739171081202876243509841885842129383923141450351364088816985972940699483279517549618600517235734546353402656850769290581992883996200514160028534420288858670716539294164070700003878891959662594580774758960529032767322465687613045835849012180805096006146869309891156199395843189091140862822791841781846584052227332617143765008063114243812877220033841941881533846853590158654048705605395488212331565759239445112074384026088766774509899608697081233985704010262701771713813737513752789580771702894829674915340144563248811936367252189986110914200288314644567430943280627472263491279213690064539687102139671705347981907360800467603074658380946957564577891508637087946823535931606939628553821924208628312295173397584981860898917591889974843348983789110261572272820668534242757841120457777298766887742934598313207272770617676466085458697927509643319760379248606792200089100644971330327887678849869164571335302779789813494826246343806787974453511956480482654355644212808983295077819940728333945664344777125052141210314260051049805780119673601042907920955906184917739553580856162015495496188390798663185943117263519807041982427807083294240764258757687729657569095154478806596455655595139173936557010325746224337679447994105184746240284915685332146606325215324099446477248160204969136229343300323915651859434810520368753783564336959290421218082086037854593268682760068636513986738381024826303645917349832331635312707168276489508590007819842703502519430790739772108352875065809668372185710343102491310879594458058108749237712750250473629861296760592066332244040345234570061709620273720730973050634938941048267327533587396126025178380356196555363952802643884362555258383115716888332316978275319910139655535513673982423759929086585789795297536716218254267588558076290453808394133569749920976974041504394585793293816498942454063156686195045028522714546080410507101753890968082277506630986435182140738655127469014435256101556843317472459108846214352312820646124596022558122810806226786724457371564400056686873066956707915281037768851957618038387069479333904025723604994653682940633394660772386726868880997416310597515550591345566705927914416096092513209764511600600585232170301349636635419915568907987232172784621021955699040262359002390574389688367446871305706448423444543359664985505622292376341229473504165438394179026455443523543080455888344527492620566036203946684364799398975602147794282068626670127099739093711253717933201836574857792616746148343157150912497523079610398833480255504738113119356622336582149551785029306709487243881518548490030183276501876324620867775230054704600852769346680875212642886789594008324513921530403213374808370248472899482427431587269795940673496949456451578566817903473281181935955894567911887289677328294547995341378738238791622920401810080432092957988140984779325740621776089610938441847082498041951236566542389095279408981139170303376770626914711362361722881846494742876279147095800465526848094925204212583444263114957739362812450372323128075090831660916894639192417565019347781414441383660190903029700526247861226061577472071424034877521156603849223537622200407002573491694681459101146296810859353187999911755511575678526141802107026476546651094328006962874564086125685902208152512308434315132274088881367014366603515663595839151839986027935538310449052532295040380439033781529905891592050055923717596666344095863038850107022520456808024631409317179748000243673244520721544594950547841709246428495315661359330715737956540378005999072848701370234055487970658902580270399287924582022116725847910856647080707982122677081233858464963241495107972327843798133992723648236530723418124654312125196085282470123269725912323012007077885780142472329857813704052696635117987314011910324813853642039447914431218714221212955079894872736938009632894078796445196184672508257746305920948257990658502875994651326022590922937022362879238230148911188156097146320580898995591943909080804155711295649932132501155622333091676199914430516766706546957291206794171856146710148958142694203688527625044158369253014118993071591388389923655062350798160050658046373801806164905562101241743882739364150371024171432019790953887566919702425648953279405058569692185025956502275564011701525167429032510155613325699795034191190768897179606645194086489963640357079116507945538639072070079800437647121408685966121308314246202027860138371703116774879810589657998499371691073833189823637008341098277548671021308201495470798252604323136900516483762431152887985887682172691436883659463435384414037450514277969021372615791442713809058707352560927194326709081509133681696348721444813888595964360469856642058426537388768590526461993038464757653940774097399260961009900353487421169868174050348645206271666135900640379603803464293820544424246553154136112561349674578462478744251648444892113160430870184361328212118326238566000240795057666890072227682814654115091198761569273520092620257274435438868350927277522294003090148083514417278033001169646248205387190383461184569997796642891616402996017534987145633437920757649265386153059962517084884975275600916678505614908910165879166788154175279309219800249205613379645101952871472008711841895476806408361103137518699801211145743114897753569341216228428675455950494662719755901253247977864288722503942571790500531273475987652460451093411642585619001759542377107643959852037551951336080996404231306496939504596170325138551624043985501931091663174232014154189202208745395963559119584011630195734723142365557483120368797437491702773634752383967376507046797173729922178880738286990897043741584132216658823164774518588429487229930313399027927570264430416022963367134271330796095778704657598655540902110091533877562984638555582467936857407352544644443796388701223144128967354034921690362628927748421811832295400710696327466736777975491470679830967568254314796337927770251382204474209094700080600069445950965868708277815483927059795698944965774270820022207831625578268739742547176573081824502279685117745757067722804173954131752795512932672992894148260195879790545152004969219093613790427393834776099411445900562114296344971574460150596416789710216795289456887669706075592939978604415362826083520771567988330954195948090879659106495138068326613403861232198168349337232673003598696683397354443461643405556484937218959082974580076725265662897513706612048226446916695020999858871057715865624187591863732933749526325637100730023479590671635327259846155551895310743751230694616034457264269794997577748460533838496497065879764113888918155136957818356319044647465843033076710072106377514887734013129182096755867303654118319304819800282605402119165475507306013868924089901480314932376462660752586152019280946215281212869722247952891524397669301394205625080868543209471354316028900248241180396089691456991354946396318385943802562722025112948905743403490252636966019703296427795427379245599166317260705352191798884613789716386764757438607177642157672610657996028042152002521803202153094862282599367204299875267173496641277323747696602672414034788523887548339228157806825793111067242870814408921216312295383199692591887709218077345825264527549087602557567537532138345207844995690755795603947081991929445410167057767635173118016094232233669449753472934051423112133468302538587619854125078761595416552523979877258360287318189763182156570300096667123939659712461335621055910448566294769908333982843223726145064987922675316410412697640922798920260296076548881073858656032450981702837958412136101025169012908747127426567580365160950967827960105881246219506853952249663109572141842885779130243183508143500582834234437956952724946011284289005606534441800567329636763594925084905541967052856782786628441166637192685610574851181536077581332984222686769875066651040515242130538331512981281421245576715343428619228776912393693280212609984430999296889346208378680065598307734744391523899734704491272168859732902207104858787798211592103166642301744555306428943175872935298663121302509731059680101171746995812023539267573000526182904899660311696149051665706418138139078959687160522113081566288574648007834628894426297968109160736866686962706764349583022482136131325826499505932927955212130020013818197098608857450525276445145870077326842274409192606460635672656882246500828861641502828042008288987985855728839860805638829833627229100154249844782219222527824224790450904747529210582084151085963958777975965775315938689776484016501213242588699214853245770446144355863420930014849991613939266716950042025643947216187661875243302701099729834360076749875386992964441454119422284258228083658851891544765576425096367359428082231216275432356227671006653067089098429190827415163925642970272802952325521483466971543028727130470307157278244441128692469573310751050645615341594758325631597537162531525847294203586726618164002833586024708907139747899545109173655869617281432955350573088551811333150114046614367974556649775949746821037090220618174472012338253429534567765824101281901324376346561476918547468946527806237342959252443876590287249330691812244843293950982870754383953573688991666491938796899554715800552708040228109112885633124124847525023783991852412181515825709142477321604057585013948615184267347226850411069995050287038193200539511987278467910351348117671441407452238454033270344482474128495424938372736618752205084095363634102420952089679296311669481824331703959715509091345974350436155502822311575107150347170620146041640507226217468015524724132186324444614659246862879476979385770927818845786220697791924639111534811780435947092726276788131914223631940453688710750307264766487554584687155690454396624384647308689758149341074984344973020385277897853903346842950438110247094413909080283919659738509218197091700430732192868254582387898764524890885008673851464967841517612703284031132082881434072759360954770347550940329942139884342880106201109867356255677793391840897704136304538923413527878567604656750748940795278821222842076567568748699142746906469017494158098681350641133303067759572821423887997547776514037988814074944474488758743371132250392100964715184105266845485275119959566742935119010711948211671589801182084982240728012308577443456425105980630925041668567601389988874093527035270849890269415096324995106559424440028806322176425339749676337347894094588143457800932097505250263096670199481464579802316494621147776963195624149778122087150476467945598982433000478377289080321580632984794961902203395287071261591131916267779800333045891953226588437409001105816392849646963218659845110379385460775698951201527171999999129476385058708082556829529562445404232123422138583381813870936337351254670258579615691041235784392949066495897973204579964259586396684325511299485193837249659966372274851450109683111401447282453786637577888920124372649910360338116314888567978133526724397891262078677776798059386213584733532087568381071532252488209855798910066432861090965943471667771995425933640487898988123526659249133170725850368955493410250599829862112590857842863176446406221763261588736365198185542798373000135126103133300116864921455595620554012376629235813951692447016842944968454695673751204394233475228294116737607408637514143667332601758972572250870744265581059715074930567385933016951719936748498876803056909489398514140453370956525659163980828573394285382906551790709805357699800819181312578577911154210969879684882856056405065752130728888041727342340342677462903357592334108600250637834886044110842986801359031653064111794256482206107924829893053313151475369297944485022745726229098309955591118931121711270408070644159291393966387162467181212597834366845280559449967953729447810073516474046517266303192318286313141031812211620844182412039773719233156540298502135240988356325279622007094450400683628758098164962148715968728334118178184536224961050222364469426816056199517964319793197533504675964352886107170113230864702991956156307535159411584792694695333462227628954446949693250401319521348278034029468471474218790415445026042577523242068007327133108306165903387496706116003996405003095604425987969343640905461189942839684131889531753998448505047171332277721264060698524641418751687930445122127729244254823467920713552680019930843256990552631299652017582846319376330402257038804788784868923032422364519937382086667671390607051990678769842984752032209653881842655705289802509940913422728647225730178324336164448373870861914211202600975507030397530087877272190487661877692355778586427394698729758344647305332685796256370192959784355671358704609135374940565044555452512256374677311724918428982832503650974911660671289183841443781256137178717513749629554662591778260785078036740544428157991259184826134874443188484739568465015924684228450081689981872803423353569327512229985219791370531879078424793308309253367674962380976781142029413004060445933039678609099382647481646467147471854083538704318581810746067787312879420469784193548476928452594066026007703177491026799465430368158174730799015087952283736014234288882370801983250481226432904186259467171757386278982919659557439236190360184847592792353519559388645311470346160568698443526629844346908828425955616389274280927974983939420242982843013200897520945235759488998702158373423408677068611009302610348564655749478656208403332313688194962392425017335387009911177402642066810157312617467129093210203406829252436735674063356282418288959825609039583595514270497364171718801175813707141109195829561563546188527584586600238181044468798734131538245015411093685067031662047497425137561823528687315013659690854182805084928302482752086813199442631897495669925814246130881664437241384725473092732544501194135370993626911979942515959820161751182346847159283229066920258009107779737018020313095552359967545554008291927318617738678720714391728750931871061326720747929622877522355121833531929779695752484070626787559598248530991052784591035740247254781760452106164480441675188201174942775410042646658743340018821129971644806699689199221468726569647363929154362982363499471363098828965713408380463562412008529012070501453059787130692465336536612429426119451875619471281846073829929530165726579596184656851022122645524462298288441597203527755219141917195422000062223130051480469878969603710391362057470452795289833663304889522405961685881940684121063455839827953753440167522753312528689474431010594710753337193602330486133440556543717087771741871211095278243176124947620979209771247367320413761899824299487982345557220900560802224741157372984263367559894020332379566609882313636489403853445408171269654802116988288697300043665764044790463363103909026043311492422324459694432880785020048966417049966355475595396674121796205342632033063596690811774834444844133549447972170881673470680514639310653484656704321004506848957384037249333403476320742792985351143565284067676514345946558284400106324528245406123100877468721830756744782525208128836314775797452547162515416769870253490985427670627289160465051987156984784414830152365018669527849324219907626706953183874286329681111542599214140923558261763060075370721614893830483906762831044926278304630591482755062128464648247693495188409558803340016145579342526239775241322042075101802339018645267272297179236041098400301470102521311588398275105631753595815808262311886745447766042092586095672101953721591649647551573276285089334112999618573114951318272963692904638272556710833119689490894238897228535424138584365680337949224928974612800715473000122566645966330546449015266199867703427136609302020567899683276810960941824212845864298245540196391513134035510280697197442633825811382760693541150563278162210036669340743755728002689271328089088264934093381161453650221996019225272286078494891938009437357218061824220997655445378813004636217305862188533605356291300216844455128996753051727907837458407423835806024587365712958237600297346954829634286062715367827771167017944799109982611994422507409309760692112635586872449228700023589621933980619026097572954529099695947254034342154387282333085945868509948133790037223409859764499514302011707357837253071128483806811849946715121812570546231418220140734995798886767835683015433768680245492241600130254545275019932092320964955450061178497656779131438388907783604555359051326705071629103614874315205376630036114209454886911478097192630719583942561609687837613856026727084342817763921973617899867768702105541750394099174396771993270236141903551966175616115071849438729492540555149335583584185951456945129647790064410271336912406650917810000554400482832144744802426791009139107747210163370629710130257831388037462793517636788492588240946047769553955479457739528346511122697903716820499999892992530163305834304321757687157472022125405295106672703339850244768939150079971390476541223122806211249032022943828493649364386181754537868890905824877700100041345374095570580525746150042323914876205248348891984506981839912093380391339201040402081150931834761369773319766220443261641963228937356737931281605446660138329157753430120631104512578166161468560834983015874540378320707790845665511816555650910361272111461931712458190986679061316651877091292927376167124610142681307545104324323708582464814486826281652116412998680949493540649433806639312415691331864896405909187075089162167298577452037996165386266662952986386789268131038693600884172067081687669846246976564154161563348805899479785871547776167817984348190394930211540776123035274324309208486684917163288722599813127940613073710925242793221999923236659075582019965632069520512508647030104785054431121570752774431079879812133743998580750942423005962819712315023292480252943015563621910736880194632922465784937601985137465751817990575047482601143161460314169635582640495507688247645745068697045717979612176125364607712756721182535122939144860386211893003374635154833924428036418046562739991377752290424654075893155714570569449476270795146996298351390099603989688651934466964976593164084440277058670844868756736815391638932588443905526672425771230822754705021300485097014131551477284384311392904123730213943027512497684421393537039332448592227363382893117951041061005314156748742042913596121677580801104804819085389285990464127987029829737928396943823272005891053035510417232134133523109434506604409854662086551201600604734339717629436650672865170167149128792194557007800942256944470614016540347523808222454045157543818140497369515768852244295135526317805037149449436461126395894961453783527717846454058255403205761378776894525297338427392508523926500332573341864739883484909768061312923824984678316112806372068077266920499261473843030578176392323417585364089161521481509142807327669489297475115733369761739121937244939111118251527622344016710008035513041351312776146560215836154503798229743321033893715755373555371247273604238814334081953521634363620337322575559304776651282799985390507391712734511785525337262044270543269462241490304003100001353787920547453279026733961267166982231640557259873485573806803520571823809628677812199589722243044284210238682806513625866916066352442720865953097723588044891503623906066379728116476407757578448433237714043738573732381233499327816477044035709322255617564245951945774468057318418838935517821853998178254537357464968750510612006515785667998274205971866301508981805350367495533008566333943514686950763343930921163917417595974116457335143667226625655176109716508488438168384099136376887119518379366202442716000366081384004952634790973997507027795729966261427088758296337306850303513769142749667261276333985384576090647910786722595238211266915309434130432110047349095183647270274522709237452694611737290019487816669426893256451099180532543464364772966336503245825237351817778030201570349719937131351330097487300598548251894089995478057624109826675377706736735040657571452205124953446514610387107916077698730450943718504760995875194861953654404039264268053582943913581902381808924708227617548793199975711109414147113816942413428354450466683630223325551311720678610755855748456471297931084825849895286090814787310750755972962495788036465624441419893482355292421491517831229886672132715447583038372627563432948949238672255826754582020008916729299840569933203517933948752616858240240759331981872736256812055615404329898708627214381484307279828574730621021121957137109627821025076856264866715210651872795084607290908328137232045128568806295365201301373618952148045855265923683858914187850118079581930850503355966470103900593939421924895723195458506753533342315244301899072592465574831892671505581250711766227587780903878383590156105253051710553328405453115684063726646008595299994343611625818881806549397158633872410138461394522094857937930006853608249225770709445318083244257682097380487066856449986570934624298467871974150169942338144310719399048633915200180028258054128466058408308192494371586379682304780196510442878308586577886905281619332714270045292069972991490251999450984326634243205298149297986373564110374908092513596687575542882998971759114292665070465815112859182568714086827782308337982179106723242526922943393574052638644779781862477905529725082873853212157151118869848670132440108120186936050635392496260276151908327619784552901266899988927916170635537861946603549861885189779999013694588226861823746205276775895534720542641320938012798276437247191585198366434570505104944084414045199725137246851421219296053696992966748306872277365358296593177032033671750455667253867477709688266697476686801192617397576567266115521820367537284973817441810283219359336033941675178166680929683324810905454617806139160596037076217782679620907750815195959367875643292398213180272256762742980252719957301930525903963918631147064725511258485115790109716553675296937436556083946680821384713670692469545069836462791202974611629382598251379704122741542390132356520284519716209661205584388977025230977144388999005697125708419046286362881017197007898385249314259000763527648325820714146326115386777582675145489403454678612613172638729546313009152533440080624036528497077845622976199846844604543273680876419661357386080010610302153194858729033608152311849013453436097343213228505404708744579405417296826003556551176145508477889459338793913106463304154367445497718838454260551925110476386471990362861622019227095113481209315919875443501200103431778681878500014362917241925565083948829878707398076906773309036081189616259588269700762188376228196829051369048934085473954513362411342989043165918534296051899627517112994338318335140164350811726768401046509493148259381952300604713895182463616345449024671621139642363045793435339715858671857513607448514705220087478940603698879914644885276265430368586804452773069763265842609069074910111704430260429445082182685788317275717958021768578004674599453816147227649182155823530982033436504692515276148074850852750821986989493688081426502940957044730650689910089812383765184361210387301274116519722605839653324618355808926992308654864611169295506082333409670078635230097305828870937896821700259109129926850515423503061529333943402141984858388232329121684053332094130379011080485596008157329856287242587968602131928327135309789584956491321265263017597813187708761473598098730415526102714029926084378536461755775851626892496508982747834654843018163473163563228860269601023517916761282202867548317517545906407491953361536462409753948190352233310541838866298778291854406064929663615342728192663506209546854275606906639021533269520235725919635104534043098482779024075536856519243434804005514451419991710375169935942248148828313522751695964222339581779988642938932186372712701354719631657136344943958809341268368622177478091185226865248823021777406187691154941068306681407484931563016805531291443210106913984067869202488667167805625841943078466189959104364287742866573116105457762384521222677243311300648002207927961317406527346030857316849031931028429856139994619905664431411737706863408578318199156645316380186972701565899738467410964751067284129267509150962014980724368644293916390523895089651293860302514463240330934892853180193160370517598287701346489022364876290011179660233111838465959104498270144087180243367579142135530443293110563295393328903855295602038978244466313381965419865986140910519256643774840044918404877189592303379286869731966399394507140761069091262129647957616803290127827096969680983701105628354643249237584213144339348544517420858344553788680438255668444880135828975369405184994961643983845056090002174275322021515963748694146467172615802184634257576967740049271146834258806493150604834627323704351547561361036506143226304861426612754757753352281079453369465530707697478066005027886788747873095945592189029909304324606949763940648121942951457790760607731212666885625154750494440015238139330932213301988254910342223120298008908279677661451057774205033015247886863528283859866361426593523496910316496961110000535600039760417611770422207141735016755282507531898819669622600156348032099102585670189415934924248613832747756350469334457951872380653597308808599196569087628246651284495947891638540948018774083766511855785247706791859574714321643964452631206154924637321645741249108832674231824202672780672704505390239345184780847530840748523871738079444010844973960521627290702847862082938469732939287750273147481058147602039000134305560270018219758954839607888929895447907363559355629542444059371435551607486320680870795878167736322726930999746769958496345692066342379327630970032050716059839714025964965982832001344068078938023458222029694818336323540700922664871463379255172093169771801852036487970607196585350750380569778137259253258825635433487321252453167719286359781354191892536694774553032560600162672585014390183464755030228821987909560279919502085815848452401958659686594451431801059795826687416710205254287165395550782663273178094312265566430235396784965921311216171273424840455080257967418342610459150686949689798858710763805792746820485399350228685574982531033581441629845838503037914005996112189552199454239305750911138405689082874207210281363053516704159668157933601909344998673565319628923506046361731293300280913549506077159843121527917172587504758153201137337742473040537853728109067863997117462577261033179595187644281313709583460828074098099547631991514297912179456579214210396151318091803258687079657312742158700789654822569548561200186521714044356882146052607452553184615355130639320458531154111704660654715405583390272172283560464486459211449303301577253646467004694501816584630221658124699743492273454103810042587666077033096988989169744461164954425022264523171814534280913163264111381590138281543522638214431772524985714776203249593588613674200214858577884099511996133228852812121535517539526988814617172395917302572655539187990868778689147862155361119852312966373975036149331589073775838734496883501063391223298895055280983781752797366557584924218297944583894932493541297129583984939888673085371476363894911706505279382675646113042790034545684383772850418297667023780506136558793594246739577546605819231670114515589428927559483252645440164469344555118065363530396939406501955292907386150474333947580739557655402679228462172574611470364770723292808773423989290032546554304827174253160804129645717730586271074483164510262952722237345748608481771116247986635968723941311205186557972667965497183665769663498333803949629372203001457411790420643130446614260162757837231385920307582695127185106234563025214014444409497699102430648581801556396118056425743780570463835939873253349341846454612545870396032178941498860058094993328157251084428142882255067947515929875886342339408345046663260124216031626818427898417429276870623910620157779067341800490461653516700992757685193415058888991002265786913406005737335127562651962544951418774341479024812176106951301593636385563612805144704921165781814253446270458665493997942963291534969354918231811472789807832978071968838555911761566867262568200683575429022465293429302410355255503024551041173068532794038772443882006912562085477553869516573939241560830179265027666551336382626702579060905494894240904576278872661050957510911218962633273729556503375498882395601442599904309749207810423274834876529617761816632280568571902006503538851105462196317967335663768809096951372017852189147050869175106568784401353956274117701292145030887510755236903228957661244774966948963983366342577090461057343341540750518628318709450166050780097303186729071748748295673283114203664532182049990611551811031049715715248109459369927718994096765721814308555023845245944956872054025448320839872386125042284151900553404688976204933574842074853085089145086060109162728293062178015061138101488632628360381639471559479858897864386177506069643259944472825299422291087563715668896251991210555278056135381577344143214653471759834028977847864624195225623790250541286577560498817282244799986807091090668343480916867222668180560081385930984081403362371040724000873815571646695671586905236009044859363035103885342895148032786255264386720090526399325325238520690825550259162484696016494632618944802587427934374030709800713421693169382963363188268204648551189493036657929197859120303976449382893388857059759364141700422723673736568097956306531302111842458935830209063410403962999895872627201087421639460544567443638081586884721698055364492700041717042185501354116065123017776102188671231215413499544373080636622553376424799487876864203725309554884947592956662163610285865947406977998339353634322714449239998745290406879415391725334870538384062025475653932692081047912230321505268198438838657008049985211214550680801939817865242834108863588184640501856825765871175415333658293895532358380339696168595548924350442478818912414003165473524314566392450910072679811537402250402861190941633085669397837088565615405397748436959584935109450876437162060503391494830591315172385725846063601029284703876258317959106218695108405318180690408213598409712463318922554744396883397674822670519398137292957459569875287595458495713891058326627164749515040570686809706121347582060595055201082437345126170462247187538261169386868912720875061915936486681414331272412020862789701303461287441449297558620411118973875637091127230833757431615721559356240550358364747345881762406039116803061578768762529229764057790441911844672361518475477661184150520898519825626101110250233011602568599685750929185009805928599704866350111043836428667593194982300123990966286493473180649086022956322593813653931288128264426741286247691466785299145498663193769900354078384893489683211643396857065438427117894683573511961209443737147133102805489840092420661291713037710780603590130595741047055640325686580655234339831144931800779975123296602891425049761770954430494575281326150725303421778895905706785175583325512379891353374133224984215216447909050802437019099444596729866221210919980169892336124209269167338103359622683371877796550428222516885655695411694866860323663302111076476657747801415817963334951924376446346041176123091012377731739462473597852883216332173429449934384540625190701108351006604802487305319650668934934148977026251834872974883737305182229181561956130656693067549998070280625190363654428064346142196058255585211273883603254860909294329817242856174743865255674611576220056820327228623378401826779097504578852283930961613516061898999942415481572329004373251031024318746520351342642033256655583034801424037367037235545077591330836939406941752625374108234336785624060746029589687610474071805673033364695880857844724635420955940088509225685130061432217807283322109907340235768703932280159038361896637233851320955879908171895794298453105995242205486915214248787311320867231296504491215517071868903024034118498506693778063476721186710567843286699778268249942743100529708624618767181694364481968165310235109985871261099268753447684748618683707919327178604412494846032648837903132115334248263099104810575552127247635544743269980518977965670770784528659929673094383638822269923861523723460463687455021382254673761089844646122630122748715233174591175891797645131309387154713924885447098650273272575791137415483716408100236359794952738921829883279827248184278607899476817748263076665740300522693402379172123616034083287722192284727795631619513049444398800357523652596643694098385084059439759526408882542757494093212752790644453912885362283625067320668770933043591370465158623519138482965554764215280210167575625137845529985149869700182555250621471244394509027932715313352150491653614762720119303739338104304883311452450245596043234666314748203251032173620252528728992700067175162658610798892815827475587570025797455669224887553775490936472561667244056236259764723257592223369847817679770484327992303091151991830495339368680598144199147684491848466378780617239001031237104539631043445482943517206898692563200988295394849883836976880782868247738767101066253768246609775961780601413005242437499225359729487049287946159111164908377760585569982709960482484292485027224034078803866471614864027507347095216460081983916749288847458978986792083066620271856903371984310882270280314704199831270435006141289454501551517287933772882780906438025768353680756803699063863116731961755474930270212383164757362306424398673585749540227758647888841722095881770772617370305411105169338453598776011360268528368568036454401678343848701867676300480598037635262602341787935450432728224698109124638057430272120999836366944479761124414928528319565044014295686626149546409114557200860123134988353109768751255326115078181932247708482410110757370204839273601631358711731433080766450869966561478328168183138510278449395320955199696038625880138169139207403182755305534590054135978519464840674953642754987979877287500590004844784418481028593532594893487227417270643105971018835857420909147600678125155569413499807501840675960583760782156040141147278498499491066038278416154322332433191415861739798865851411263851809813252303638349982480630059487827775564705614283916037978728893666582990360509612666148028965190743045065564138795899707443024994017524949332524797098246922983259808116376971962259821619305495349537211082147801368627697781000902956479375731652936450115285587300289944458663019777817639306715875223078170018675282267700742270916946339238544630969977103042480654849440296298525543512855523417613045731455780463621538156221992314920060759379957370405562872025996551031699448766416778693325328933458548351757071548429668714097726955285869804560728774839230048521807403634952031460225727742754454230227108120606170248549692680036488480564046581643101973736468894834644103915773565983857412280037482756364565164682443548078214392057441654636570266896401202459158335772346394875229155512049071729675022779578305218905736253271180974746840784264575870933365491528790241251443352271093715951081440341663487997604319435765515060677521615225282020998323136743703346851180866434972684335088403646918087193256367826162520833388482178253689349874753718549923432966824996008469693422531470287478688149816278423807587995521093884781382902580997378109870300339666721240826965994493230944423940294423811309790146305225494646558121055070212844209203905882588945929002593433836763156830606198395036467284266303407364677556601428510780793525836174243168579455381860689644793472793886808797869917997199511111265458875703833018903374817435065815934147265469199846170229178182519165786461614399951433844775573186658549282465818407716432698403950495880849858692073059380044135749609242678066187058579136515891889474067423398801639570523883259165987015162762987764318829459778431671235706126227636866954656549706726677842202387128615594558693143922818535420838069965595220335375899916990420535094180272213087271104446702489232401175200903408148851395996668667722326755381916928930870078303393696522809331129323415711851263639067780140192814450537946635192672977501081500491019785933421471292395175159394158191885052577517004695767624227465519999944545700160054963819485972993303125358962890984039341463245320283319938457993625081062682703483481103649376908415857473734320561274620019418913420881349580092899043806030041215287760903952111675101867552038988426228871172590902377282950453928910492250036509898301533384731261235349676281384365986838028466624192470016025936407935466216908604295456738252615860255914944744445173802656971323275796547435220808233382203971201805791079176999583848708424567137839918426848972759055635279780161010656196800343257313824390381215350859938214478375219469398662232714630937397329112905244455802961109060424134027829736329349765634459082892834381144862692296441389897419440521102694249228860933793157535013217920091817690190349112535743137017036634039608125880530833172170796625188918872774533766407087658183945399938837072999374575145348684179428098420463389606218781220583191775867359788995288842351771230129845211399916688585912605274559728159360789841387226028886318195634525338337902146317080108430231249147797031647327610051832652943699483494115534896695278587280178598232801181984659478128411997108584626509397303659272491245732859921782729288887578371448360929506093929945189575553136471040287848539300925561414393196249255846525802644996264537594735315309453353167545997644160578285825174629658065987879890061795103221217197854207965746622851415365357415802029666439987549197389512503574513882220822690797551920259452625305145881685005193428919120055936584666433493538741613977667940146404419826742700748185365758100048678348271206486005017558494393501362331005799812860542510480181795794772984865080211620823872738591984092493995433564876354716736872929467234922627966693812162913262554163224715494711852777391067741726973619483614831265503593736562662773621482802531214244121434141380248060507235459837351305535073218908951020958710308327421032545937236804140370966814913642922180312720430580973024063418983120117139125389300847364860507761839219032368440983186504770501513637841373954237627826108936062944768056173787039563718352105960506569311064201343828048832757878188161877294993023962746175197539339201120911268365498747713918709236805306222931135112260005992684058390644053139030356550978354709049258898002105303143556270157546775775172644354228653163928104179843274168006310016385016168864267562343382586785806921872828516648027577225389186636150649873976922319507122948682215576501231936348629189840337659384818320881514682619151498393081766467266505550325751762245294650833595703934969311425972360590654938564814762264042095638144291035687668792759817825211715200884557590270957491435891865483422407979886429977071132311038191389739308849663138314840119093749918971482263533476038015085931775312857562979898926768079265772646606353257751225484444641950414213647390042368881816264522400864638547988152135993439921266640509224642084531477818342744738479790480593272152399492778695314966308761268684056749351142674905944366270807073625189444125285268275244357245860179499127910191857130439941347075594093438477039006232388582840862866295527628593166277799994291228687393530178208635819414714819875809436857376384531131085101013418241293324983007700812512843389231742356904858369357668960681080679666841987735186829939969584490925208835968208407855030473759853033211315688673897349698486275590412858360870894631206274976952072658198794913403571809624711728262227723985644391493127472570981591475400084234521334997783399534814737209078216762724989958321895708208457093977774772420603130945647013635224341047901577070363232046581385737785759284075141923166731345218861729537256689610344844341839925670100018870160740852270507801167352872742308770278230790437510215412232140052807628068456048822621931052121457927752757186427787282636627944177238682737154808238482211168705811262131296081536536345067044644999185201380349723520986162177593495189224116975456752360523866085574315281766489144104865087255855502242023251860274975348887814622764778973034239014697381630225102334679703419560469637613806689483166192709017524589012226890753981072258777450921000387010216845835508090914275309680757365747968534330953264171752572534915376177444586796955852031443302528489511014654636388613523096776049291044054340607325619858016073604884155604795891361985216058449462438733653342736960244438585680786291329302418631597573666507985811551269172026709871082389316887553235233761651910989351009998590415851885666224838921808913241503516778259814846718033273421423221798687599590118112345581196674704755810476338307987889586649958882723241795733202672828365242136177011258549092087772796262146169209157934109126876922226973303966296635076994019057570186413170626765293068595891834300661837818898178598107557060829331304161479553155569365446397563896587299918158010782937590481736680053281698751500150136765031824666575931470926849175724308645066715221577529993687757043123476338767289505783750724125666432702578912170951352903995687249259360747999949114688813611230310623353388313251435963234140104026956676650235540265070435617467576939549866352024150359018609561981922296661248331415856457703752678258783340985002792316904068373398575813952678966923326985006561089409003100479672990135755983882914935989912885993404733865885605747609821796128628677533798402680040409244157469753562436832066082658411286701829365151507738527382594986027992219612846902415510984394567562501442529320436184327537086393835292773247449918428741830536087759874379288806617683616414666875314978312464468754465624373180729184209178229921208788881099490912729330598302887498720524417533677190439500193372586588437915862743417775497022602067348670990151328412861182117998867537396714549889544874915709640807538158928419405480068850318079107747897493513914261443888344537444953727589558289309844065199685966496305822543723203791589240231491294178574508317879132160550927285366083923529923299039320577118866566924308611781032662453913524303513571507869725425163943827771216620253111574018607952850727785853797307990446277381652815881250529136742183414221723058779245495826406873224735338996324512568368635342460847941119908297112945160921610496271798518683849916644733470280687143573102459028937520724113972647970402066465918765312129402182026720559020589623549750189479670886992343003651937881240304710748201390875886374407455852255457209564715049568389100125422287358462074865192455855462854189118809314499556877237388959383095805328244502318087201839663719666643554376574910779411766761335231867909312396880349767785623717389579371823303083202219421038948176305884920440881577668513978647245817462818503831051823691147815386396145657924932445863598041794194951232744269598203412594052300709734698385789389855066378231653560081207446290596347625533692756436989853629353845500372728975727348455969433898441249389166170583193177845938507697688064279489225248387744498441254744351449839626275603508873938852369874456549422794699466135811415079411348793544097548069831492018259006620606164879173718191789401407264751380233875798965330892102508780700307206871317670761424242669723937201177209488011262857938749369428521232361141052738211417086723760700391695514123113970315064040914525235276020423638933851939023239904144484255251616448274790519482529230222993923534194982100483378242402953347299863992357569718535348502815348241420577351084807046354245940621131636701537851440468472418242160649804146407918638073033882255650802081801112536485439538228282078770810259803545479026151440343022549325148173828718496772496350388131736693213767311322242525266765798069751893936049767700105909133641568624030611578877672765261885379966514700539225277701380763380219001239396832654929411868036946146596432091222421561778977378057737733627642702681386251319515868950924850695876946041818686843447461960275161139177973674647697870902802714861513656338019940051140360174562976566917947865721362927604802567004994432079851235226870380366233638224239351714701167985228048625713446801009263042429954130535669393200246475004502635347111040289153010709429360177157521351690124527308989110676687460761311732015611670163249260309229197639611592641020288381435380562847127640448345972448462798016970966934592369521045214018424675375882126980502690526088694901134196459192232713957662444725502567828006245259267941348211136259591385355752685773390036081797028282579118494853141946189032319278298167737284768814139243039588929072468004069250393523106034595749282966020617852300713278701554616820320941487322027222343910117568703659317163097859149906311028493401436564513039106529530246990688187328232618579038708774565090318143729405776740616173329277513024632086636893718972313741558576321378777964844604425156589029952553259829182373293547332458608630834439633552613601268330376997106631460784887333938592588632788073968343284277399651208793708725920978713651397306300708526388315137300829121039979960715134825719252702040672203190749190621376571465598190248546280790501640836441640052278539756880082370034891100454031265720225456540696953506246100255793026801394512890134382231681366269681861840488344823577236239341463423366254759317624440511788449930929459095512339702810151782336613736672346061782141608490635950995289480321726652155882807787127706199583674945633954646633082329097015543190345797882858165846856154541547668228411731015271372466891644773725058364784688678034221754331196591389976419690058508447097016865169313323945889551093792643361563781531681373495320917023447603627573907499105027925799626886713189987850518008256813129543614432612601691018869950833791726836690084375313265914874326080529873838320013825821193983078151566495833540619257414677058235771407474493950642122810200373254194423657928570646602985335758217371875953146090505368395770744273068238382030651893910491728010073185478268719386838841275005865753910164182554162625594875000100366848096076019372546439804080321907212984814600124433866502457250396188720342209898048748876968939130079282787717583550830002498577210136877239191162094473332681935803567285908764177530888842988277369350134595033939583544769597390014058005800193374693757013755301763689633072632330923414846211780155461848055233011368672681505794828069470942657718086641443202377321128607223526169074082595183395968431555727739883119781242173415033478297553225291442691698886721308158786117087791175281987274447727581152402636008307139413120497250791227076810019345835470209305656317784008931710199204900910471217189285027669475269715264646843846371262280912590861489303816149646386616295287387359680116344563696010483710861974407930511478076319963679797416517172569926005007202986347823096643383377678723213377301165546261273721648600002181806531082039464591994651408531836557072279274877792315704828361951710077138390410480011530142460097319629906932673904002409517500441712560475386292894993696666000324860225811530823033267945535708665179548607999798885142039733763385278873138612727785179596451771148941871655643590803199657636135089914963815307169262481955163396684493998091270997506679732192922699677658403966022016550291991652775986372790044010444082355337632341914815561935095589193137894894919278982263033586000698535586285002726771257125682959820528777417934621172749440801108804975459225715460413530416827753530516932279467366872959976533586813638042854312753990987193733542437842087867948443230745103009284437932754501390357066749320253280818519743122491188851569988736023695199294958072335407144286219665494530907863089548361963084373015931374338990884140896835275009630622118731315370626038975465503463120345695963587127170384933136078230493546668327792301160662874501690908553512725385218827954513658895295291897216645818274014696166554268990790156792332701129797494452986411075294070370555220521906842428102473756703890386928142707324166639286867199405905119457776929356694637176861099773319525159942871997388739996398233752933004070385229588072462050382100899993469322174582373546155124522487572248903533448262544417527556478576523946954127636722768403603041895409172058089342120729052844581229888597972116991004318755780763979066337391237483098451902844277688044893942961546098941884434776971139329603540487563452163382937555562655016746193630730682321244366004594532248774232954443120961478591395508005451863510365774261148598636895669158088110554435007444608363590305626197662139384033872532605830313698147830471662177318053362357956221420869206475695159388191829609391740989056634739539495941760952447747735782271442149470128586209081786804389192398591822733398077393421186912639916736672592935980024528585314538590420314741709357736087685458032390769622083658394721939872016794639580326232787738586980790854064918052169304157848409866675622610959388336499123601046497789498621020161690426419967015394923037819157319817184859743078464730946316817621505921151521648810762951127921539504956849925335046281201732839070259572006062760207831833052636810362907478220792596105960268201773979737197474805444936720688935438769948083534584730225891189452701678464479336449860890719130143967462968554930314520013797912364534456524109533527471234897204008975969672069023938691462218526527349357468248446813522145368149886354472599811907978016113279289678553852653801438809808858642523120112694032034541207352491413617423003472856621595579564798459846821820337577729145745839239379716612993771349405328499649840453937877890349564145742015092687691092847327919928548852085757282712007077517293691876919603037031987620578134979187935880107306606744339228379240702925576747551774802867767504079515132131563024437404131069863692824274422732258612259771598045017428986338417841147006436627121978071405034225684042576864575280135353413767209122148840720958532569731479229513057048692399253626763231352431338060301046136932986004178568116664853514600445654602872621200263382955938448251283572207110057672329141324885272009844305023460719640197661920782604803245360578278815340245868499731960425703212664698435764712155660733911963729675222647731442865597836158296858895892271290843359901934761088285337557489120402440770777061528044850923898099566050183889930721698989177987866000120022824794229119559136617992098331342785399189423826089752658957108658502849682500671881016722285873254875332039924521319154060591053715616122545401243998958719464968067952702182004858897881372768579782284164893125836616100658578772452897238212192150962631428222528226863871259007141848490136957457591181522369560636864697540819205200036623744492585549723522311258591265608251447170494815366236255978813056114273332623784800540774079896477163697815941668632214468375355182803538522629497287223958290344272137090559340339207846669372110594562137335217797893332405669671541482059154444107527818503674348456086531939608999329647486162835040427908713668956272220021498966310975200372336860603079387851670187165453876400634863108887494257546014943378487307781683704681356220495395201717931027114446884849443454384538987214384491488870267286430261189498070097753463100842771903018592672956732319995638181864662954752406855722513743878199726253515453143356733255542220665815898360127992294045659116719199379291982461802828503296838056602140139247088976491400092070143383942738788620780446085949086791211503277400973118585522936669059729332326254714247020100874474395221638405305237885067894668544106014371259129091014511661667217360669763989440966618654170902073527656811725645361328317222391376333136647373594803495462199227671225780715598547757478861134241930631488474921843434171056976376544589906429894831735037537845638513364717928212405853772572588515517440990092780376603309121509588024743040814741909286364359168184285688097266602195449529733849450354856761286762337715407301932221704412069221795919037934906138026900294711217501064947139344400145666505405299005456513133313834975631107945275198020889582056064284327703626892963124369498974745777595758090408089024775694196874568535368620968592539493837824309942977405179712637923315286663165468587963888788422755920682327716591793534405382347850952230731372376150421523821597552788851494819313231257915171981931996691310792480057439483500830786056726678371150490018668329935586033757894061872796651514699852604152921822592351025154987486624177790646722128089327415287439839328693209934756599022621736029874389362627894047913346845234245011586790853540943636937686339297756854759939205385406536259093731625075413070992901734221527033371113455255186172633802177165486718145760904206003936121047884978052482612573215920920936456820992937204527275279273463906676882380368186883148955513329204085379824349447211452831645229282447192107688635644903060700555691899588905750145622044774270805305555802969865576042548815428200475547931675371755803487748163178571326186333932271107236972513414138577416547970417869772718990667105902874020090377417042506355331555751312833973836604404814278079451308382841640163838950312216733750513120160982294769208453233897504269408211520787727420546374906693778344593082148969662962711472830155477760280274535227689814891869974781571673090620106883709232470128286242004811334866806971862071677086563406097977553143574812611491688946455067524166959746114364804316811132414152361307772211744913808677593815646539125058018835898085883009095137064446951361990081133387047227235543100122163523477914014684122407146686772993787105789830763404483723612309337750835955273167909405295366372067557817377161721390054593608069132830623420180950000207123102705683073380793037820372531309160906813035100589856532585199473159713815258189767327895953429807509625675097769757067724595994234091337261186460950460734040069670202772200461819919811980142764476419181225881786095226613307559890292332449685317315076937512873779669882046228217674228133055662725913148049185119382111707095016070025980389968779957459634784828245823359757220799153349464117734045145952747752177786443694574397143155727409460197285443317804601058114500933546152238033426712653743982738568288269376542887743226388429515653744261043283839838923850729540013945904559155438435581466089067247172744511562506208451304933947199510901139726968753788342885118062196721991346213063396974958933066897004501156330508988072708013314494649370989181266511230770581193248472554333990056670105163064952998437602244312140064720567329321956705756354770030383609164633676039305356388691612370681170765939401535645137254232191060118364268655189438286127200014988867811186576628889282334446491488263822356047232694356210451188960031577437288062473585857168404448537518011899272415618110953308264279129523176479164521158562755426864703882110284250868851086407081855559248977785195611155758773878360329849367763659824999818959420600874543763298020489365844594518031123370119763745516352490973773634902101377943289840754206210255789985141376788955322782960044903679862972894918568573720495179727217328403877635592066120732105216562806429796663422202430827798786997661334926092741396876597626110498171123282955341105900874627054683325544779058590468471769416240494526372289292919875392647020455768694722767651883599504192843910699871409475245866283375328056701945058588086194732135327322906960271252245968841300082187719901250687285744585695077638238758270858362902906106814629399639065410896793302206473695191372362249943862070651773532896865240017121058929972976049154001560647041673535097777054596419583101083151916667837202756726542370947933364818700409400660944302095180937829075467735639935632571125055935389108488469067464318912122943605984501703072528497972219453938669876709271157715986277409417600870209466478890442382120877182718150358373325605957334603661391773283415274675628731337943338499503169546584753063498196996695507807770917818740222859110268563409789860961073246968262314129156048290896467510219761737512025777361748751102515710912634438698302181143076671145793819726270154947775667379968278579730891867027674368400242198086419190877546208824723847040953345062903401591727062265331558231430674808003724476503349898355470402598051525366122539399165642055651130502680756375477667048476689107752702625401348418501542601840191608978012307932216840464418623432544863774053744907716941674391201680107420733233653109384194048154259084809993254576861376290952192015449870241833276745348115743321884212909766621865356208568826494504245848710129675489244685575795809582574056894332576445524007242782581853064258273418114021714265348063702237666202539324246076761463818450038117215791453769920515617277058740050154698706921080902687454062551063723055686273060405291893171114627934053182020995368757471622215792033791936007442953524533738991331069832662345763825947850785712235593909654435003898269401623717722478229015805024130937421443206157892038746818511814343236390706969861870262731059713188289186602229563149134830362934984038925808455982616527753339530760611024915711337957501812480799060521487851092661269804965010287918397141319372197961236578558144558974092841170111134089621246921844876414640727813659853577153975376536112261480189807427216352831462459589056320366467996999623721315954534935771980808215734379168903631476863628390517173097358625573623160663934110047859457088593144059137285148392678081093469228653587386779033394091540530641201246732452812626688887136522398231899348164440896446062602443475877140179950652232364521649218135069854246633243282784355893888791985969275911372611108638841716138504912824676908031142682350678786130093894711174345241453324185018206098560062824504827235125125252934383308901467562963206500014436908748421235480756648368490903974616577199609749787811355652532232355360202868452542113064971662141217091950606282966559072283891277286365692288183664557735117519510811374746923022454308238075562087133101276503059361794652016008655578143154877266897804140003196452482693497061566990134039737556039136297886830994409704269946232074139484837772620432099055044977722614610044835436300817190558709214455031568908581391337838960221311417812757291587384403533244596150217019296524960411021404457510440698026347884353846977668390390205651193879824937272138491699314766615702737386934910287521552877308384117340256939857624629181602157548259812974406725971731912969036359196848875176867099601308735720906160488769819010202262547308281566213420071070000886946122895629694967854130290473174112482518936973479042680139703557747823251042411143722128228474555270536257390647027866973080089134992652958073273315082548133728632995577633592180280159952532129471471660314116538100206880687752586930952190994251026453859337096599838272350891656105415388213567060043888350100700869428352711637008552837607327250253510249509515963957842875108346279068695328556882650745460788636486619807142682122689419661117238838640995069217314836673160693211348739081879683625444967033291729314764463102124087240202919333852876096614272070191539412143211623175531490202172206410708102835536911211957014452207974099091138277803602637662756014713459825364341397958157522902866328412421858111249372462005744159151135100124217350121035492601185298694778229160598708836723748564381733143254827918911750323753419124096783062083710056681866527909423360834068978335397678858035937407424657982189288054881126436287882829980331721246229534572142857482694648332496818479678585946041365358005837201315123768167175333009194610594024624722746040498481077747588692919630141266448762463648555120683250631970795328862041167742461336276798658304454992485546516210510234731744432939132972887220105448642616877282607674602273511796573210909683760119121735671403253410754013592341074432589024370963944524171904818031997409820350676062523509924983663289312547100840333588936205514183739981027825834945127207816680593113072733380418140814821037090854150592012752145280944229247398208304390424030704259378719306856311431869259501014702315420566574152894846634999330749087431629507468690518935263172312556766928654139813522574841906836831392640416629323227449650663413465009828285018428910169622787826579358587847473831576369679216182671918233449028856620231244130165725799989346404746123148395005467379802095335797659382571242907922830840655780104911474527698580577417627333417420165704701954668703522963808221137379217792836111713899297005976541297315857418425015326109930335770790349826006300933628462901765302461251380054940466121926302874934426586035165250215033789498085477660990829332617533693426587053485720249436924295838772065274268975216162607758284528379241244976272156743427026871672468634778797932689366508092870968821731062563136501766977364333429644739657158657915794271706334405552996064246492918459169734840128724843018806775895816049407474716691080008120509799113511979030147582928851709936390062338107525565913587446405158112357439192753639312690263185600205819234006929318867809746261141263931870225264060441798106564375469476481067340394304230871212112912556296635515320859672122117470417026674538283429339710829695212626138725660391978662850851045171859722381734189170543562669999074822807556770189184458047079690372909676760811980371090263388418959639627768060560145461259022026183395966107646596960819914851931465597249387416792049130897142090483698008340837644669658995185798088703109868479862378193735619992782251324907147554827996878026770769894635582043422377377424558531226836821422396818701830549026592761849724955496550775501627127687093117306089019332592788868375986238549121264244710719836656938101123946977665836010231759474794175246157316340183101161673611790749799934483754942836879755639341161148688546463575346256624876383265081702474935120654609301394193575369190406688373112642994145106209586160060239390545214595033001289297951277124380725646919891986940683879095413255605099216874598995991162500271975665450698776821856535874584389435000808186115588945663269372588422003666891897286693161722343915302921047741398654993223873883828123193849387074877885199399889975386150636407058964501427018317468148768376404267356522317921205743083684151697112453563636159495776908245519806873363067314180418877940429299275054859097217410917733162873190839008091565060161172026129891514263542709704581893300469742882075065265944937716463674924066690226209390863034532132757530220631777149022856689156477321013848757731679649090123911338043589004565260899319520444407246859858196201378981793785395156539008360282984269100532723811884245659861119205171618663715334924009127656589329843003727407048479368228721589299663789025164923960386254100920152828826426708274923977229830030409682359242475594008524013153145369292900545841540756300115354448484752523828037952782136831747117463227136901575437046285519016458779809891062219080720672305920763403096593809892459590259644674082686132211270894527866282504535814089450523255801421378882468571861179009607677431127734748867443925890603770005324441490758709826102785598280907132046193711684100770132193103352691735401465664748991625108112593579416746555513173441787653312917917570967056102396900923549061686422394352331399176769655857033416028084568872930211765127915652760061206508061565659677056114479134889328827654463330642963038500033364423213712535283091391569753514880014865913562438878626020698077336084516141309374146401508447808451215410994746779941318904181487926523250128929342566531627072624711375509453799000372317758140087552422847347985941942116757342933428158772353641287564533644172533677754696748791779613215244268544819398194499105313978887360160879703896220916705175964723315837168824367905238124237536735482459712040158111998344592219885766829331769411408903822443229195708990637925794059509490433208457593338764123218359620654514527208045283349627593145406757025263361381880766992020852226782730279738857083969329006902855631402061695101415951322810830373358762164356021282350605725256448331037515390602781843469523180939266602212241558506399017797121698701440430871948226351771298233791602269348054645411201537079027472363299745873024815502653381984886748993241573248211452858139446159288623053778246845430350887232159413630444623600018501922508635149809677643672940541436353685862421920925558251197046956540113391284895068455200007335595442193965915559607371451801422802106312990977629080743380828480177074966064978877357167824592372022921266910351442511424481582584524887689715399684488288938114721885238894817299499758907656065915908774005679221454735014123477137368859059334697166066145058074603813412427384764814071381476539747479707549859527897164435508361099214304099817287907381428283285925332451307447987410919730433057923450036312800198395966063871752970532071798031766034230869744504663585969037878575289034676992881180081197142073975331094367900953885361890214276127052056877791659102921626527574632796674638305358012297434808952869665492462923632781275207628927640829070756244747929225390745477545139594979409017050244813370301443831131117435467411573561712858085061281565395673899860883243034099272800515659438689769330262225739506924076484438522562935620400288458436046047213319235730068997611337180355914306136981341372348113943621786283742074808399105136059453018325177783924804873246447995632544650617240526219009168177460216397906523443106317071831900204008313044834444804553890198292636131866859513790596089343296271615040392018721522581758902326218745983110271091219087661486917443685403001395320786054200371710846001049266356486798517010689035084478118047760042271989970655056962571188518618883393584945224496814866691126349201524981453619157701629534783698095287890405644858598614602322256783009939101269793278305206335021765881294453019633837903665775120380314449952488841397198370483330851287593601164260130249153915581284019012316327077733845955306476637258565616004637859062949057004346703840513232893153414590425482230508571718973550357722981053124785110072095944267773696330168472996838221813899088370602128453651764973836055463016329709746467618041982732034427811906374008900558576677588893751563115248443641049995454462855820477891322180929400197246838973423345113233363770741291099926757014586697221990022941494606470077540419619199924667015412136646995679852872970736373813185302748859900203078178048175674437957734416166012123653556128109033226862573151612663282367377794194843410229338720659750831185725931163454729457697738274362640235934777340431914801082128159638927186190976107820183767879399066948465147447698084539616063313913916261221141614369775752602700067997480345974601898718780650029946175673058929410508514357777972569179556826146878556034001927283972777216365501419303661180196058362737403003491050429599226392633068946452345309109201862053917730059159245768411877421048357007417905082770682013839702758717521854005192726538022316430306515318291675511185618362353671130277721028910992274031069043014593463073577819509172216299268089561835001895193762759017186720141815644824222505371981214306675366564190542991443236657203036014456927989218098775268410295350699109932166121922998106199197703341877566471917519433379399440725895535232523652284818173111736599893400483911631625911730045886192807635389701531488301734049418990685330572994675077112343919854341112090074485939751858742806795093128780084394871668757533419629396384611069125530865547125059002083554680728552123186258477344046094278473364364015308804543076301162975155442302904978949244437840325620575387300681932497947211607481728863659436015484671080231701904461702577853933939939957525833726795340940962885103836491141698255224599410301969304351996132489195492493580401422657219743255410617706304007429284173971330720329959924192424340484665197688104077993556535694072061343144770738990973732684382602236088960860567157487206381656591628008154926099951477863816125873518401949040140871101449366936225377432431633108046552799532823252206671603619246281331856627377580610005696204039526949008461225810399861689648360804083413406848709736998915089788489502208623427390503449762778151763444506730326768655990778465127452527716822804074844510917819613882510808181739804464534441490350913150055563433436771438881665800744445681906006789714125956620201045936066912058423066053565107643868097677896879339970281991993090358530722896939898747147725767853910395448118561190549987029208139181887783574277845109852552899760879611203054387121811916790426069244920439072870867360208013535613620636004662387432892401137525891682232418381189352795192733035786067740709016577682088838629814204844153610111199360370102377234646634755421363129598512407590105310725267161407668471769927342472401499964927112250578349748478198594292901758677500920087066036665552531361198308880289839852783494900343475977602769725454360141614368522048858058207637986455758170304499326101549102434031090633888231938140622025565295808869220944610364554091765469376766778589933403638038860031124122902775703096133854858243911954069132468828526650157155030820495199639626369379392513755665252097817661526926154109963410518105260788405669165397968668658266678341788513065952169973974911501329193483561696552522987227972986468518395384205537846605870249131786088022062549535588673835913280135722498545865343005185063138976322086080001783281959310698755794243757447276645541959352848205384478010095302065970396265750957551807275687285619293707364722716172624701434007783469028555686261442467931043748048618437993827390204234390523654172694591119396516352591630908072168220176202586099950764403673452507380951017196843626260188088550989327673472816282004662066629586658670401124417330967698422899433703453565840415569571044739476889863251665635128118888206656831803820175819955279035922817816926391464926956288821919979838739386248685423069764347595225045853749819110749011557031935948243872358743010955197743879598344419472522674851041180523071115799110500467766143684330938158444007669865062747879731737867533301904281302787124179698231299211112564314332908622633640881477506526549237817089585087103631218000958330375734564361466093976315668849957143059446207830541663812865015549573163833592942326148328992047665263554117820274060428926511585631937163328213103885623633991011827576849371412228894389565517420955209411060049036822155663182018858259111122240286601694204667803079550176751219464522443991847346191571438385215131879822331630204922907153045553988875070917879729371625985795787433501505907309692669639414805631783243457486513771033469376959180134689609918212699058839040458874602284810319357109128000955334835103421659986303032670196455370803766833670917084973556426784742291592345027951572608786061572143180210169864544762909390060985981693189276487591920993096185593653849506669166649625343114350603308713357712932750231638793772391081198784308374787546542140471352345019887461546845925063053614738049969114120666585412993306479164847704631233828228873137108242511095942911866902645586285159961552415919699190055561932954959416584184675865647429639221138096842111029590264702824999605290378835064722453861216324001147942975181041894926402658133400481408980199934031444912705312655862617100847658777239596449935774688072473373829570048827383597096311408246648277709639292377121508263313488085008383368950384686386201636094574087743492518472969182923066658702979339637892959299637428257627733586599159133021317970819449405191473921449916817290567445061874285170941927519035403199611897960476770280753111463701219218013203507204541608606415451328007397301230220474572166186280627075965550616064497049711603852072215039337308581570844503551688983717712978679314912748542953304956991340746621618119746169186313209117467954738661822470175467539432271924367298729472860945695468000443849500476457013706612369096460515230733989555983721245913218667081988371826814108316822337970141644008870062525177591357874078753295097723540476941772766949138437560433020304061534041503809147252438329296848461886449677986122948469259242446298685347640146818171042398221372272328230662094779824467203852002977771957774705879032169808000193698658022871573215157629034591718823236438348408295852551867475362323790492593108819025381763413873535573597297172629875268679813507899652298821936289143931542774171533837043276067445617756461182638299269602113932755674907637537673471323826189593064805708305088921384221519866243161423363369837997462339830521438344247842683804295785284259263286823389296225512024194221833078868937984750212955852973313610898324729279964821301312324675685730339739488440938324686724198475235267365825592666090743725060066261720094489489307514733842636213468032321159477391843670067565822040639362173898234462282139895557307499369298316398420256983220947556373989159832298389196759847047076973356389265469513132671040124060093103694828675771309703752023417676371733768218167854922059934591105706561911844126716114337398024005000802797575431285938924632312325208264021970099738803345843447509718886394013959066038375860342799017303006911559827662959215927681971023975279182859216411827658953375411628474875544919868785970102096493095256135573285591110050995484805356573525371278524522347861373006222679044884244840692630054180348512934364222500578814965483574998993308927978944925469616905479374989834392807052536505457374744958622570381173515250082640899493156435575558855970156343213735993424460763176494993539310845139835127996021881760362273683955549580159048334765686305317136154615433971435795478410168889559033697169320765791758245283464661169882526540847229307351503500992053175644705951314689665529408403858644155309410946832189875364099921328307068951266119332065338773925124869304208417649700826953904872740484762162539778622023772014714072296012444071914178192225520869297856551376275889158990965953853870644748560724940070795308737828622705927324889697830825647686946941659299822172136024736706705191745997972279803118642026656362250445839749704939862931915569207510045921786016328524609502050470592318499729535452690646785315721606598293598654154179895323148324603752939625720825982523256903722205973044464868718218021041765243030035806514549237968969353923445743817656241059878835438419294094875746078707687491137462158030932984337039574917268603653048965040212374957777205009437057874078039144659753090137978811449467085289968716363995709678617318611879266050133954855769582827666549942624600112625712735713625380392883689439464799820202829001398861876406443420292193410391338186058837699160806533762142836955058672647605360890333438184697375863541778945021773876566005851534900876360248255079543475211365042468452314385770861655728561732676986745393057745819268557282811686738555089384110176821644350236084959711304631210594658626862529108065586189025285271479126541290875222888981917713152961880909801300207790406278310764427720452693050830411673368799087679050087388317144906679041930813434823730052915720433436721646076626872891715335594246333137252989055324124905336820586333093244473445553462032081040130677942372641830165328536000249414602458985376997683587690767066696157491801294320027606199966596599648845905785150256873798224859560094554337851158841223437310437853101807235904109040454526778472275967537891540968680490074189080680956852350467660004385394069756668731963764957614378904117954403128099119470994217344830754853242242003943146156710264418230962392845706992656808681060887333797298619564919192797471604762232728623016643142420072514199765534730529807270700206688561905494708324514332402897786058017906413650468956009698822679946079408748411662686365006954668357497140124614305086768100227116908325146995353252085681752846307232864969177217016199938318193049412421958642412184323334428292251799737609512920341939040264917814453746403256535230189675251111472456372075682686907001647497379260439091213878867200042206002693369099902535738120042394068834117684053827564285664521752345206918909872297552310118762103958035858043853570886440538598157791230221561587139748073876479937193596859301063274218858184253940052759123053259148282803271367221704735913275554721814303600400096418187805977508902323345316973028829212730131018496253127376467890319516763712030282974749707567104930022926901834257349114294443765701049886764470904513630652728376035650426146646934217706624079154493276062955251824637640835805689697351480604797524510541424168875194153127618837706751657880732442465362790612526299290929975348863320641666814262681826581524925466807124043644241162920412655852113890389142362339786896678358921667481167723134722871182410167204936148883889851917611029316398530395974383476230110416850427716919936386312515529912174235208717476934753254224281709314226224818798071498340597292381319992668641650826179648484329467146634043469946245007455221733537408943848597640305878887302965012893786173826722588024857250877113832820135945425949992710512473031728637660894711606557092771465534574896901542517266749918688151455900110279846598355456788052617180555159020709274714790330880144110201940531603832402098411018716784326083062519251872280607651509509681676437598704053744782048292083466736579386078388182003825145598174076258498308046091540552938831322945337740922188405024715748643426291363551412659638846046499482478605834257520147259266769511499537306221585738614952221368389656785067564340203290513335961056662861599230854298792163391342360524687399218995878179967435585726990188096772834653221803079652265382619631010556466341362792036990949504936423668148638894158315740088972747523056464397001225963426436485739762350188386882691017974814559709957380722474766553426128931474607855139053498266636513488620421097429677215434221220666265610146970479236355424585997135704141470219961405866841463993803335449848765689965277006027274678399008618090633740881092179284336701765257394912494401323546020032368108705074902054596407450599262229499453380889356117689109195100830273277460183170278953760337756371616357682300330563232119819243688395388289492110929752275955652547255472954717660091507407408720933206873601875030322140544026148753732623801417716526867607747596301707053971948219093112657380537552784242778679675809755772721026383498947624531065332031961725007994914227287576145873665892617368582990686259296493717693803201767235717392753415968643019089206267866843384277993994522841830176704149031560511867475502145005513788813862967424232234662811057083476327273885605211054939277223785277482574211885166875824243124835838944843045087322610396017424457313755006936870561589092199727042212524613101081561385720912167131305120635332446914370688958835393472174255664602260184932745106283895756165677764797139949513491106210640979847392403657797408864842879701953767792504159094129159397869728033210797089689233930132594074792641712561255345920371925846671645470720431579668056582730309010311284490597998875060916537127168921399025377585737934603802108127430200679372311502473920596823208925510728340042356205973256579305924699476019792247132353395475261832265222800681367887231493037057965393662833113492977556198116048612938177072929851634476455339699118845193956324200155427623148754201543253154941617178071831343604554611576373801782762541671673843753543791328625015105505026453853949722739344593253358339683487200711596038636640932164871804047350503899177104743079152534978939553620032230006253951022262210649236926388860645135420625077410062106318984407459752370560227955412720264153318336487676076873694634971510864799702676946545014546569869524563807503640916291159215180484686171374432147140101128179292667096135843757262505832293395219784394493971274173141986141999072284219136804767140613774831730858173360377250871660654501195123103350277372499469571113406568538137491548670548170056777558546513930584124117390642839916162947682758123593842764922891141345468947106840129158327178657214458858294395579048252661624003896352397227351939617029844497027168078187788792633770944164767029225498473120749028890204135483111153635566874884371496974098554425245372269206223847912581403467544581803962114827101134810317268052489251287980194525093775739634962352906784053809711636493422357643687840931114074791834237478590722640279162137528347738440073157597591928198012997678821942097334077590263981051967080066480408296262684027652863242492924990383619201990964091671393532019994817196930362654527804683547168123869102235907254796015917765567898519827134236856613859385990376158295792978432181883052542070676482562257354615272592722356397674774252700523885853851361275230486560067167704041009646393082377688508726567600473548056880300482137046085576407621883695137190677982800348624446415328123303808023432264302705448924581084232795526330204032775528498101356456500714448797948472092257847457438753988714058062515322002662552275442398577363017103049187785861317187389556044839264542294347113318620462810591049259624578588332725670519524575813893217676524055349373884394225517782792479673884954444670198225068680573004803900017079582095451277729271405375045926685130130720186174494013113980758759530628914285476924015939334280598162424539339956907753654380432159732294593469692874530365654793253915821598965004054528710027998326052690271183000418916762980930518671852860208489033737203259887407776616245954078159510607476596540292924735310513305876819429292381542038348890434035058481892582791386398302259851194053757944002802419439435203937987984588339645185062327784306662373923360923425646608210035382724607746202635592405649517530059062547479669854696640302900029538684362313669950422602387928902590560472638068242238117709440414644314800204039984569111822011820532232016635327009687605126277606671339949111730389735120977665964650669125044788301015883933851919225441926575357604133765250006824192855838731594619167567786698284349572211152035495123822644053180771170727046036105678633962125336843972668299584008063765682628537707324582250242571556805949898494227547267098781103541873267552095277599007268261771882692607026850725255968887480101522889729023094718928720206275922497940485141743068365768612722743220115069005233040503743628216199462995876834734664270458658488875997248574295834488341141778041595585605897274369143033285745475868626758754617780064085391453048605529250747007363007757154727100037921006194264932034843215317130387100825703570216051029758015842754137849312412237779682265263458916320084313831198867955106289173258177453527816691386558670627279875684354384258434366850962551273495802469544716853320993679581885919367834879928529093499125802209358211173135021283468935867899331402072862627391566704546163894786041792782311732839543441683297648233680730183160473416926007608864165405407154534315228590144119148984812905546735768818061086996875440760817507506544619080274390214658602705074409108642676789943567996664954513568867044609781619009684162311658789555828426810960749057185246322896688409155211027055679938296739971855528749765731416433438909694326987293524911871406708370514184296970294499169389968728287223247395159111721444242200112518010188475304963856684125545234177461346063382252044338055460693065009968182535966134003509328442331690962075226340709086814885484210487658760322395384879834787314137921425817565578597184951324641762086679544950948039174639365366863359015173726510322249402753783744158441349600673004317284489483229187306743373301168667731700682023410102282644779330469094739074782423450078307572500250018966765245217211241120206517916122975264048924679794426864762723673302927456555041275213182968206816816174523965985910418020961039287984766447368576249818054427244793729818408218489829029597046034341309064893305049495256342520407507225787245704010474205950407058200013404414779198320972354809855676316621409650498046102103622440608792462914419054261100349204589389862230241176284876086094080110070188318295247740547690649223956826678315222142196952739261304380727978876072878863566853698248013313954101185386445943683098230811725559725488128364334215772991486599297653205688172545972512807207033458443135648918506958685249476168464527084154916978927179893048153556612061596986801193260115861016201508112104647330374361346941632935325829290786456180364059903378050934572948994637582285647197339159422333504879298305129544746441459092651717023344893939137117260856935064997443407394874891206939104479146785813241632908748640580466587357600744187570786496753442058594707713254123834517748944236675578896712327529982057649136894917676019032692512804486624869834437517665046211206530863944961771921401560631118894806254832592744145323695037291324959933061693239550832521427049952925700329385789904490951886115221675683367323282600365725480571435407794423717785229683146125699039438622100596973994217127501173430916998675063766002751188893622250535885578184657818629224942195124389158535913380519175175654701715150612995044997668909104282234871454239441558971833041999871224546842440765824682688802537318832936853325162503088388614778290694062298946096163693968169798327699337468839171483312109838827887273295007727183949363125030246429887423592615717746301193866770938874304111245449163601916023749747439056585682814421033797543579037613063842785645681572340165686938538522645910750868977860414648736371182736777869649795133294343816221029712012862969051287321869586103171928807279726726326705130005995689284164272006303802707798799604858883845884894873761471662388822654458592195447070539219462070317966733725148498850947235720178472795598445178172722583440063813150867535650008476769854167796067659666326403022199519333192875333228033423335498542150602083120537820212673656870484480295399988188999188252759094267051115558331773337434580600856918798336032153254588462498088648029742023367040511660270264191668569909772534133752782735951355646816612996145985205888964269235151256330419247317750877811070655908578318955393313916188752187985324542127822610269144784008068762112651991081943675271546783607878904535536789592223942336797802162812410222779442842290011602128874192072795983832256196915093483001367411353073904681278809627205284050345503042474573250573966660343896121667561193088150549250712388974732878153561115245682793540699058952812281625357351233747271304484117945722228490968058236557400040272414283225719951623886827693478099606409432180911318498081646896734010791324243576884840779571365724265660097779982499268452734314241076939022486595985324483967079692614861206328107551349611812646622868781736639905334465794320966459093130968099950332609032168196127122075979440701199308413101136373987999786649799834473782754391714269286999988310821243142867006780902909255025719071083162250100372498435817018122324644001122689951483668477784305735960512080994424954182565418950598605455814374833768214508755267956605234064038269980760271446162701921457991636346855941184666693565558967240411485318822436046585464760577960410090698046195790054081701128269014348014176926587909507665217837845150507749241774583828976793454631862115565973448695817825875417167610331071448008286351331928762338776924446326767170356170498477603573999164389276413533625089353384509951668183977701514976275770693814068200456239023387117467567373547567087659895704003528328217799099476581104529201586631293840132591563272634262872612558215133660974198996956690344808592718890050948195305559012302893665743418588987787887800996763225725354835632875713263680752203021597132331910148059158603255937855006797016909523834983152608420336752684150936842452470551666572586544486268952512758066163443166894979820266133789838131614252226148331797546711667431412236324234330326353214102849624433014233085455712742937428483903293136725186916007930262706453608986318610673837068644566617087422997582635965284817116242146923573121552194980973968109962496515018162428326423819236037345953600724432346801053420157295552530966490210604744334678053244391953333027569271506171444153532021363557812460697405143812319209279755254823285193107999445795558969344358680523057908256183294013728721642328889789866490532923545276420763355639464182796261559805746772126486544710528777266500520383964191861841347501030899950162396110676090490549008004972747504875802203596228716696265933893303673335429541401342662828741450960507012040760721321295454649232930955928553833456810026222074080236479502904682447608637790229304881869420290737771620880515531992903484471037016217514605573980521242409356746002845672501197010073615905646063677792661135776357822819707303467344367635907125384679141816763988397775167938055400766177170862237865329175505648120905021406775881130250672949474235212426048404394399994732333881765004963087997726730422863157967721273970959008206605251599136286174954834337476073449486958351030325570083829765411625942732861721468878014323726127415620238012702216031208918728248260240154594604372916173262716060048848878317451436457669067985185567024124995601873869388594190369027037772639082520242913201216747648588856893602063620337018499544321560496920107764940698786014460568450970664176772036439185226274665223264715340164845162211690520279456625137456319909271565817558204039912971576687356032509493243594125707113749877958630115840342334502962309170362666203143924118598212885176003000131760281187419787576882097047053547379804391660707613292119748975285552218716524040657044585143371164777067585566152967429834098511574318540223741020264507920512986729091471709212727056195807867563227069926194051899489782175127629917948606326533504082446346839618645972051234848251792859736958645524463174967979420133281048501844590008907171738032250457076070237486564309596000944790943186248080837905931852939553790705049584418516908327464982146203530487385906898077798817516255617976556868008194341540945417279959017116231937161126702893758317527047839042046531246485710068185525631461412833752242052600885767239189920665725631401877254261980520223923233253345617699486951074050172649645965930947287194558234915304625320215342271041355118716055712389036355523480397019813701725166631517270487082460638220175039837593241598454644792551377989731661692657850927978535332859520165782933389186916072353334533856862734686439153122696373808926633100526455382442206446035906496293713067408963089077317601077311364253977003295664831067549333067947929096138661280462321312090926121620421934237182308532060025578443666977019108705500835839522211097443515421682505348637751472018203227501459882158844170040542219034459970883229115513598068315293747004742756814932453582932714756599403501939460595503664254770241796120702202627298173256555225658369086458696821893522740898459267571556292572973958356896265612769750429496352871258635047114729797291176015537337695384936831777667977984682981023573333776285640631811090367028515070152248035689831311784387512953465967763672043336996649562275700128869908881487831842217541622213308744905977694577270831403743587607115818600718791894424443981077655898077426939186850166245168881930777257240656301112399549762442506612599309124199889871029883730344715199986551437301177022771443085273087441476468579258001572122414547033347404628374671099746728882220595434418432542588618564838489558509055289338832393289609471432850491683519366691117767720780943819014834868653155594557585688795622861570895711511948446422662316225931970809842932889540657190902757460082041716172277602225364082056233187690955639837860630604036285849616623921969566577261008755606907142426629692868406173073230126019736243828183899799758147095845099994190448083629810939056460149982496453375701815570035294738422478556011993891968453671603527596521426132039222536591757658070650825984798126285721548802217212205299499486929215083628839612545864745190977203313572892555035548827909136877729388025713689247992796391222525542023882424674190118532988928126166168865016629420224412659689879959969743061392482624018175743822687652413131402158881908967504154957051321364647216752627016478963342650785373292201817641172497294479421372458901507643980321853304710899845002453911913509614878054453319553366056789668019568215754032440555125233014492745450184063762516760884062177292097187361183881951287862075413943007801405369149672844406693395307013611105195003818922530497019723541717942843584458070360790363294797129446532345983603849929967999951525235759850731993342679116985079875484190758004520851746884247728972341603226453712270430058057718177504440754157880277948930125707514312554809018710308489006936411329492913639897757187382894925300193066277355415328949626662190393016163582045084046112486041645300026161256342808547369906994073528508329778246208116389086140502619197423132770600823550968555716366274072507665565594523515762342330536965773436894005482782689519344285531611529297234087225705598290149870706090277999789576910309139414833163337476340624589605425557663147650517813053475139413072046958017125266417133300804053039652252335537227422995935756032860922673771245638859085791330224131641124401387359660928810077221991775266538864453015411222527164492865952560254933531284463473074898886840545345205539473944164166060963521984230364828201476354348800858377892644612490419998859558282989698020622526523528191343251355778959668475491378571201982002313202438097577004390783096621890452712663758231483006766796220567721259790787454553592278510966383712181508401824858156334807786165149576543050428897129677054954727334777996871709343719456987068723074998674465728798666817883908504500717837447043514531680879462982556037536045678456712438113386927906410168484562651191887787633060860540674805336714969544253755449427960248646216231325984669084359066016171333967906802551611939614213424122434960941488585633508182236670036716217292613598065913574799074127353574033256312463127480988824969576519631877458570340463496271314153217735316018432984982876117218842864573322863658566567932881318662920970469439631837435503724653777448702873660901295413137264983629029379088220011217657492924380080944329427661030805208696800302955276984342126157334459515887453714419662221204483183264514904312650102068610984917776583759710670295551685642268265775098565673423901006007770445052894637489430604103940073189937142797012940311554887807770998467676340015073609989382379338277953714309047707657223479586336508459292574224121711198331619478191071262989483517131890966070179520775710086870210311696098420125076499312526167119759188062416410953858362893925982428481456615042835007630846036737475282581231320602963373764209670585817329942164880560034299391416271307799782649480945791980483031947359653148982948301182641026578313010185204621970758909038312148169207864668582642507044625950793443945879563665347978574274284193790347146914219015486836394688927488034498337559286736427526609650539901266720312701458276313629148874569085186919787601241927773960139711741352051242217341813189917512448339373159004741165960578330000376420273642908227136940296438570908806012320096930228376285028708866983904397216791708281708136323931578218388394713870796460755174672940689977692863732498782666241649510597247480025933917364933946522164922213977035821356248255942033077524179671909155963512915372566695343722319292198301846087371000729178949696942053987350529186299794470324630066592129925662203399347874278390464366317726230119510409078361071278760904041722437220484305302641482318651003887311218182207824888299095848822450176069948920447697307073188538342864680592217852578610500128787610442997132892583676763506917182238655765455888373593832067779499356132418460084744144723977941293983848543876685479950936666890638001557723379589684785436218346312939116804199780487591274373255065734897074268911798621177873080385249262718802804241898462192314729812069641138602511730050303304167136100180069429429461488817558444456874239694380155013856555169634387156524837765723777334953941547488503864632327416955622802483131809738568417502107827086846888140430668943349337034746869945954021155156702555595349294223064948943051745474488937180444428834286183077081490620565658475851819678828749512744845703359565133078247546743090849718578125653169663127853076872306962659477743588379239438602756274253341226427115968285839157137943607924303369963605945928852508128542708887172856386896328734300887031275006734752133304799618967807225143325840504872169709800371416977470408430233062909260890111384044001474303836207530404459320702787436209280763984143438427159020669565593233096151320019603767387108528850059645870854822117019269273413158816638827496251813530626913400329181938732830987393973506442020043463009166550928952595738276421540787326652004461726136926707291493576508742674351091171968861588061947749765103883873207947885867167198032902738603370588915343660043593328340116995649906613873570477941215684320618205060211570900077939949316815167023721690544687834024026944503591061861327790702067898718533097274823940583134683168103896214639899272052511629443757145568856610393527241062150514135893507938451841738856736188483178286200872461102617082032582161546905845995288988265618621204197577007625159889298029724459025206330365125032061975302416931345637580792977489331942509145996708803872217582157528425153261040632859774658346948692513573677467820526377026177188702699550917240559956706360938465834724980816269495239114514912103485025462916810518433808151308140535548270985673165627158127952847316648660072643541123401767808433414832761360171758651310535865293292256523941696113377238633048927956832619198354057653557650687927415329076088605690899863156229218533012282726556493334562432576295546841393956507203698277932612692286803267533006902280300744078069066351417991272206443569729368013433724260544795702682234620935115250877405859067955992715655171880215184867560104617970496634083012554871621504286908986321147194699585488399620038931834918183552190249516869574993988084309405354764438848845603603938643420033986547524167071972517108352378614331898213848990137297450912900075327804533517811822468948594724624448195034410390067774087803088240487162266313912441202714930801725529383637682236078177237731017741684658163898184275267416440492831500276175512538495334669762587274670870124176474563299091960912806333070480503421876326083297965623023414952076410934681375404258203425294133581890274483889901381730356654032946321561878857659756440212210941722172726330939046306385809485712667599818991092952463682114442852210441474493420557718599535753579488462644990950046554024476510058522085336293835993778269782007788265367412840126225533135049842227392590441466203085713309912320544433580609231820404676660960984649455086311040374712336768662536681902476352299853456935090850786010636023087570367267149665126508514495965005707040082938131900417444730199465235924277704768285595637088117508650130008749359232344443141657174681388677116450851137445103164742507180136691727942718290172776471698711718946761243087933637382894182095231707131152288831732580157647213006742062720747934235989970962637484318042667336295735300309063773113800470049682330480791501792520485923110945182231955673571780786959794669920449764179469305719607075725531707014713538193073466968094763759603933048323453778039735960356636074353910499795676783508806799294402061093363831325002197068153395521451075832388103907034387328246704838315582933826151376525525982756291778774723061330556464511451359649961290042593350101445887491818044889930341968703897213153407040827827500489638137182005002475731470969798075392711097229226096600380945898421590812260221239269242881241585313664604261036051797689246896709589004130201858510563846970908853781031635450027857634729532218519418576587448603035393697172559798847519848535230353480785453330670315141918401153538091062001461242010357722273123624069935737627688103947979660591330408909933847861613178098119561136205671359838407067066069863910909698360428185230657938967428880192032709157565698405001062912042143140854756881790769404722501091159899892430458566498552473887943447834338315231291644044916222038507087079416082530716696848287248869266219888804647614612344179214235015932751943345201571935231945895321199685033894123763507970597191907404627206695957713211780939025926509408999613335596889733447765090155656000009358675717120147272349407416953446717236003832704583529203273406319129382497173837684488758198408230098781762769223231616379998653408532184086430233194565118106298212961147284713793279811943856888639224036937917630714808781819881150391166397802424926196185229243996637457340724805554922127803278509884803948069869431212292232915156772443529743979275212147487713265479537941566149416946107906496353907328324756750228143504830745285717278048950474120473918519928078063919317720911764829612817637257649444512849014064453222695139063576124070986579005566503719084578577158793300945420902480523528099429727973608019465804748993154950152444269821596430924772002105442801601624872848261929808307526795865288674024472891560065933944417692149383144052698066978054394815958777974053157872580852273653806251944129242978795332977635748599785757680027422356361407799728011476538370371884820932944809137612834001601400057284916314036679392428010082200445602484892282451356762090768421500758833362281167353836062743916088178409126044298383472277830251784178228837542168655049213256119839463767628065173866522556280467977897750013994898345805671409278010896743271230747715026853761658347050250351899761170822232798243451393720935497608005546927337953430636737545501683788108890952439599931321199980625649507583187105043627314129072946256158078920583000593601264954506471987930234921496251095705782551767591871786502375313509840201506030267113018039000508671950262227192894378855630550163822480762528293766457960458967087801005814192125850379013335345936212974943840214840449353822070395796579418714111408529532910452734747824904287201070632865667118344409034382701030722301361056699544358520780920313387108089775742206906215645187315806226287980754102630180396137512131066029158115352467793142651189490227659555544345813572983116500224039754914877985600844171155405717974471941117405904876997548401741516934958155583407486342176613486815232569614153322591767380574967004137015219913698600026939991580382203767390717116253375426783441875835580511218559896411595297246990641818570462737467443250623911698548671505240655928330504014575266890537884688447344002410943082914281006545295674001357726444048421978912131405754734957712569009338598347173029104327125888358802736441953700742448394107083044596608839283900559073908545046352704674442155308430106755840593484296854887096310829465555575687549435733910430101447633636296640445945372469802663158237998049161078946998636790201784286148293279123880559373273558272969875987515772056262126888997544672678040856176065381309133563951130977301328196178898239584604450876332373413348417896312495426089489549340756444579587040949044698566405376420241245702840688237539045864713883591041516430618778087192434937906741931129557304118524629468667957690809518795943052912630459189310926875614990502394445587279468720250414913973701384631439705291816278568796081475189611936479674716968590852787219978948341330306333596123888658585883428274161345140330313230337603481644276711538985987980358986045376558548710133516923151387069026345688338336547148379570008344186127225964441492428419908184984490923122773862066770086892110520377775403686640301225739889886636290661833689118605269611057844174955860376160702785695155441310859995934890150046952061953801776987965004003896474271045683026093307774750820894248259584750518009451148163198213174869464111762112251594245038479644213945589587691144863285974608772431407856953046951372375730347848832909615070958344906515468825332613743477580953741882320929578848986580232444136431489280355843872824801442648060274161624953290739930508900909880127210186981784073195175845570414460075487121502151981567311753881700661112299596954205613226242999950760509748429091515623130679642394749267382375763446052831147665059550732934673199624535062204642591540788105696124542878782732019015791878215376917053051982812692468797651672413462939062511153083869594145141193195950160263457385385652649872201252379749310405648664224357714240860043983576491972534800326776666709012751312698078249589833551043703038433894049635040825612406825118410415939884367680778777220881944681826000353388503077923717822218015622058966757172196937303382795737500483106624736891976025689058531706874437056747496031357937319692377292076726150904906453643918963536783246654015038832800236969288249512246765562087708945214914831883804688045129501751422281552753729455516765764018895015654584767667816488394848399799791135891998960784932236236894719101070468670284372460901551566009508633998850055542571505945613713421848618193670615459208971860634927966388235834455779288292920341885132479263728460305126727238196569369308266743666971626399338930416070533994642904752237918894501788242672253859138932664259639762493993509926129748580055721582366955618464166989873245547687127132983068052822114778860485002515073757764882432199545159148570548756534568706505265547942380891978256617473347881680493114259355537025250891877215621072999671003578673053850259448232746406706823438919224184205987041756984974253926041935792724788626969199276589512013033510912183272647172504647080762461668023523424634173648734077108108627081815196452236069485206493334555507000905476963383036212745828513148316473212101282046626245757077491729109806716528617800179777555955072935465458477973571960990987730022224620174516905298774758236539408199869174235182965707897511211740239062177930101624668745327823265665591767605920052581208617137498054549710584401870990203119633338966764157597255451024598198708884827015110600864739704705644441963778692331115490370955309166918705760875698499690409197534483698059484845920040395622115002705816029674046803053104435121195019151921027671259465662677397486525790408427006802129784519490028106683189680457465899376847732949924466804006137298753738547552784062610719311198689657497394313917581586667784561769155518649760875406882495433855462298404088222237081091263051577824284651390558420364321536745645954463878754566452428878859078760769457342300789338397147486238969655125508084956888800837819470496394214328037629468084113400430798787356794344260681539284649463161920785031794890410276383592282165899038127031368977421795501043953744417749612001013662747229002577131338006931814183552036941746386806426188826183187399012584990150396591832844143538186904223900770721201196003007161702094928641087262474709976125003436393529272715387861785389268087342255799714806660812170038100587033162961601681980338281582357713364197537640024514287702022045589657599002402305873777020412312247200156519347126662578397472279869639042026997286286030815239803499306281792819231776352236283309951846800763915605307703863457216266993313285421671506108346389397829399121637440697430396148113846403715790251088199851332981827381800256028423957738356809909033147650146511890123448318770116685411959090571113688948629924787071536227779601834880577776555832333760325168154345220565538428395067748174823094738126253835154521235549174145542557568259040405264145095657840651338947302744652954445952822007728297896035224902095727136728223346746691902684005639430058866325533730256980038696421738756590985435039941363963430909373497809691105691406087899628600562217910254142630310383220814245225224200460013886015217334194982370932594545344895923964525855544798819798387086276024142084943047696359380020985072528453173450201018992138510612229164837095431943055888640501353452149887138534703472857693209113795062800477456916709199430779568921095192256317452973942830914133469423983247632654449971837929187500805324190974584824541832371007795251640477360640338286729860065686067834369477953750019587457673982173653209294111695502739199508085977577673350328010101697143425585613023108677266592275595115682524516609089721058812522345860772259503180046808381843190763433409255986076717736391631643286931977414869900693959290455690505242391988365025791597999516622372479902499641126946132093677103493902567234630787009471167507218821863139992968004027853164675087392937941656590978220180564377075485287846841167631646856632203550347377583384839136532915711276587636971321868382423728291097839224339390218087058280207805609851336264662346111104586261149246198199044187309180769473988251611928596528228863114404227296655455851539516692202070227219527158689142345860520229980307908488310549918560697576104175841527617560147865085359020027538734547422022939226036106113675198329955037235798739443389871479956210120117035434161112719912734127155941344368021021726536349357025406428816680744284449688254923339705037971732796389135223121453958974311261228468590574502767473947016900593699698026844662625452377035759966937174144588857390983806894829928352450734401625428835521372245755345759864767884322569706126081333527424187083682889413752500580477013009665249015571752964804354720413063111369719941876613760936768453620620589152297649343387241351357852540291838594819733277615543815713121074097483763494183034605734823442738569360312171395889391945602897348277917525153358258981496179609779015620203326740690076415713934353662185788394615392365756389865902083682684589846800508359189172762778875567969674605575942232256122255826728644492167050375967849139367650871865254029402216048722875692690248410396246617171443790171632186411735366094433463736739384529730089952129556253451494857854698559640602253369276103173876563911339799118237055320748787369414577328585247445520691324171305644893521780637149024109972932078175304530530642696639980539062324784423863760086640288061190908823576783835104496511757089911408609505765526795892417773569339467129016968949815667812100338599846887462046020883226041901489640307530784998332154140379430902805945223104468084500254633503210318376636592730295018545295560350193263353096274214591925104326655350979797749147793744229172949374574623952837844997604019737791695831908246112971323209838816872854856722621116083952551258686863952269245791932939027697638491901752603178045191912610581850228633682225431664209058577638275961496638023229292316598885131564519590587929949756917433274271678232984151844362449603639688708964742046717151014182014706138123785925629529117327651759854241738712733300477173867782865067841648015475157736758455366605251585921244055907167276735577274036413091667256430158252046957149781850544708137758942526194125296940967336890416318715526986915946289765772283420127167347636190331019575785275065291387926970775157556364055514413185239090400373043584953158573372158172702175849632149197411286546128509314654601665606317189595207326750320523239496223998679310530807696489057247080943705580112532025297606763510111729998324575550673547770969881947775914519153023598861178731835678591007259635294971211997534038809738339255748373525230217812480375890494950418439180464138688430861047314077473109358860348026232568741409974479433752625874820220664832056008979825536344127174297536386060746567052907386621709479929261624111295619876157693333871869755779541763492286950732809697961262042983157247313828252053772248839035451709306772174273706233777411991869233303670428524880687583030415697772250288238075812415618930616182963287490327535535000723564740501612339377245597213819221191642291042277793421295880595860257482926006181516903644729331154569089428845403009060303622843416073052629690138633296896993197736872272764006845736393706094964382714656528720840596734428742437930486976958079077089489610067035680926647105192547417748438264172376999840825511808809210601478913987386528046099426557346388493343227832823778841893213532528104102135181413885398356680001864576987967886227621449653719814573994116372071424253039920498433061645617741947602514478547893295937057601260509207259223875237599364400705142054415523297340964731664254209547818765419552182616630769202205729784586373299026975054851557890342399662294812776610509610679358331969112715594653042899381453002675871130196946775689978877982548430869858152607748897786147053648063025057905455785829724255265814016164037567864161056003576873748874667163422481116808492026960855044848612714508968676140461186733483213066990114433263569364449470533316283093724489999442690993327494674861959517632381966752999138278773225171799034729432815411029325904310815945994550757402593215378895910245279009747051548300511184387770144568966241638060395988451272468216872779392744631013938193544276453525553985948696938497931079200690058528266423895978163914388388323384439524969134977912354823480694979134380338133540901585896179165244394072846768133274958925887048489718876070649638502827427533730381176040900895682962507317688180605203149324877380127066746346339624176004757802423474915543616185900926254188768946070410688259888340853313503578113017618862471980118376673816374584753877393554435891866754038230531603803769207083899832757208388170717510927971944421447082254741241586651921356587190913885158136981904564369729841051414108950302748226186624315136626295541283207667107893336574235754499781636588951652096909517512850901053550739923197771281439959111927925472013857697930942828718376334462006853452242340859708719073993702610048211319213979328016363311079213001166718172057210152097634450659123282500447550476539271279563401600717777904264806011844827846831382469598111085939500864998698080657814718562872959334365103488032625721257820911357673048775540137022806838567939163711334415145875245573883281072650586752956635836575020814151931457659652936917854430658924558525193741205058908036712018638819904181548238473911626702302185799381703976029711086380355888838376376332355160615256800137308672973260679359142613677590003205700347401735338370760034571435216457003319620233743994891348290823330168622013643558979377020192536040614229098018165593236440642918940331425884947461615118052876032679958873861240343916557524459350264741099937334224648133267386120525952624615739761045524918142219687245913051494565230114455723185590839639116257938604130313238858279019713049665027786462911236486780698136858486689516926499899314506100576287868010194286768665482474427631732056235183755643032128699368510606566883049067279846637541414257748831612489779998427138071083735758753570110456818800752652617019167211613972349885851498249316407089055135963467380181948642064423092988985222336355112185197523549891132649046380008355860271403608443470368191706457203181803838920253845373517160329473903733610414597795988202499477031850909038647315854625548148689207210748018477890071936225851011745826753628505508183331213563739755222785010087622254335387015649351100375752414856341572825698901654135481760024611403557722187737716313631099693517160305049852623835632657147716219924560253508915257085156082915796584085066789919772326227430869195908917424687930344750285783714474495537162793690399609567002896438422310814495966780365844246784832311878246970098128760962445063635534257972160599506839795668921694888577919669426925714974330485755419697828398476045980607077821331769621242906393551628791840216836273886299669848898343956368489063555219771657173704946789397311912144932880139345927536974536351077807965920701919870682013700115510249827965353928641827989230987778630497231243812162127034945800726857188356402983189781178868881810380259645645358519117983681735476698098576462326037880783571716137727583303390999609077281604759588239162323300206027070525032405970315183192849100565543770861963914219781704563408396544433223158514761567812738208500235190466527220887792045571718880188878014177599715546666044751826317132375779597552717930705413420414360027539722593417214912123449020367313166869631510387717821092131217571947769663221534307185386275245768770674800081363414087855681145407911281452484027620951378323864271509291031500805746190924493477814477307047433873310020418282717879991973380767244889039561524644309702679086064581593175125379625396860380559839273207158926523809435210946139144340673082037712262115999762932086087951300284511577881696107671789425265463589910728564051279983578162856653635944493941087491888700227736539957459461379046425990940953476593834245451523631128920856186550761504483428415452677615626620003737609936462335696131843927699526889613286907586152669018520036986854427592418099237646293656688743491617476820925537799353537532248493641278993425246702855827239875518127841403601064290808443895567843088167066965648220902040538486155856768555607983006440634073244623029683931980471948314394132414813456980688099369448686258723460620526387210066704403445448273521026755254956191243966735294497344875075686720183662575548254415971085771453456431539655333504278250982613826083884102326427373036671926750428123509778859522342719306540562806523866332964338546860941024045781146486776876911853753992515786771110535330079619462693208384020332480384502769823940385869762402041821314395387857858255983433347518376822715471014102175213948414674361213999074170581738122330932240349496877838340066564132532839158150754038956794949991287532672821544858104053106749429272867905113724041082701762057912735165809101212266070815558775971269816679024692908760147799963193038646291514570841066364263244250700328917863348130617629248876763652099794150205871768485328140696113583959667060877586859951353515665110049774630916496196404223859172199566654046669641701247922237000742925224285219098462002352232899053572934417305616438959870807334392703666128539534054198155108277144366222682441805670323939786172639851552155227693902424519151580887440796279418669147083309012942024501652296459727338279002458753263309128342017137025275898750558709604434349156262767706598025036343066191367753179445247474091119562653484441392006319461613057107102161350721106030407219838639754205521916711066619129312401151442810501783324881431220086633794284677540277480221593939570201129092917622734760527770087654071445677846040673180006839446335279580348804675778330048848662223906439336380493950526656805264869879196766962023530972565876260435777630237086162945908426362565423548989652791013123614344458426586644660232568365411728236342394163841206397950834123942718099020769598788039219593671406456412285100356379116346665641438682892457887599351052003127547874342493929225645924744017541551110155605906566246525643125913713269016194376895367413148533160864187851845899999092299876357356558110786636974572396748103608089921944118854489721112641271942183699376331491570604768610875789072740038806486569788101813303426301102721992435042973850197729676001072811451477644623290086427858930815102980557361842031221608189627955812715768753453054063553969555574030184954543174427573177744610333713971882503229954986282112745938943410470745368234128405648928630397792406363655770963461682129877126157594084201405146943073475722900148094862349544726640258156169419394643248478671236199886739105968509141239642071278832896309519271281494576400846577033059657963884418298458560352228306000049607447071523448894388414297979497934394426355819301235654123605194157723175366645820650806925500387059173265026586944678659985794422383168791543253359201988691870380317113760783771680734472122371135739445700985504209252626844777614603690854614906094807341126258723179078457517704277306280541798286120999497696926444763677137854147031344546872847382370534436244453940996969573537048877154112106100262049222409460967946198962870072608164936220173185314683074708964063122310570679997629860649558097252860099021952033886435805337797660291339347420563867129715089487852700633647099963131303286206898905181362144311579229852479516904959215774301292654028967139847994308021232437208055236517292885055584846480023506287999966910929182853198995366861432381056018787792966582650359890902019028980478805754448245709139138573850668117759622513427043159902620962050056338512595854194404403128589563656377735313851919065905520469485621689342706767536332784437185586021390653763005609392776974067080482416172422731946736474965546401708725371415133378153947139975368885686977241561699541257771013167971100206996836442184823033504943408133033084333911566858061321398122964625035497500222468654130441720442595786873932640108296714639421695829395673037180431025919294871548745510069959671286268323465151497198434162860610081341466446684859576211984602525114805437727344583746178497333508956495387145679306120787032676629996129387622657154871028096512029180556648219595461307948980888842957381755909882425861405542592710243434650270215837060640845918394034024892290349072218903345703103127383020782363303262326822711746491492954361434365756755515358474082390378163251671517642865823400350225583661314558035086368880594952433706982851322901356468293565827935036246909999543547005244513743960914674811796285366768026780263027423968001026033676515339253116631812578894929958275531150575765432006712764347036680589589775602285973014458011215176016346988199192607054970849552510769226210634623519841478066326079530884043611117428833018252037926132052849872649449096746399182407153038225101900030859548608906570822546194125991998655000509407316025652635259021369337554807634998057475807834727144018135985838748226806767287601934820845868489967081928347254884755856929431879457263540620609917122660657562226784385894732699119043801389193961445558501949334526618611335651046212901012920660200091985813428009330612120786162387977661109116092058130555986126042169584574373575419275508731286677011569550310568961070151916142773567040774086319590964302623579219415053163839432035036464062516096358072291778997968675841585241911026436020536204217379280159829783454107521612469317412006598265611258329366067641017355500626232839589801494506809789228726023770978286610020624508818379065671323137215711588710500497720949119805193615700190597213476154567918104118328357282054578616227423181051765593484927180927839819704655613792155167441771474751415011775727103304292159521160422568393237442219475012100425819700460331419823736100539437805766880496814287363012868738920378069987151324151317403270576843232057531990590887815127976784999023591733774292539654277466527329130849270832297315889453618504023299377714281360437650920521942688613094116810037519319449423697816519121861575417769879970835432856510205815232572502169101486249369291942664659523462417653230815641712835708526773264626754776790141053641958461036409294354919466092076194187426281167965119105078461325807491937240976802151168886150747561732239712360638425435898851957204381093628270610781740397911137262744914522456727839268835040338948190878892470585047719464942940122769347208235274951709520432923600876974974127489474712958761704034213467690271007153080393692002984257153414744946341540187953298597210985345094685602551169923752890575064320410815684548485763680308922815872926242018955631916580772445737647082274667045964377014565258719539064667801247646580373677660285917868466721652041740960680792037922424636992122216740047468781133282530019229686352444232486006371395015011806908231800834487086872642154602252187400175091239954720271658188803806553043781309411221707725295832096667984543711709465612478992633063973947526420559665019925882537597969527116402564978031237698342055219794351128255560783501548549546021837526303017531124254120131151779156964213424845043878407323387697446031183589042472823195389356175452094081550909823078254761033621674305306666571403105260689554077530976316217400985470393031609881288833025380887126032958760273505706709160637128489370338365356633331739999493280714242481900079563475436084054775030065735196828842206159318752899048899172476954293862002905647701861949692537724453032482825811997312904602692625180114772123412560811761972952431712751713839516753873723072292003917063763853780712490576352553976151573913959760266280115167337128527971616039942677255257648806900361430348468207249108608732382866407705842474923957631220794628005955350488066360170903065149596957492224003129520444061529264086271235507788147723170179370815567129437057970718532681558288753202634318376220632424572116120475159982041107455454306113860672231557270784687447056812243236281842912746015611403103506672127134105350581161866812414886486802904274761037530297267605999043587989834274758002071277787875503939134015192257756686023042220504147046190912417544173007964223023750178083372141998030867207138746586537532010054578388011429635192690239055445622835833737822937967874280091350039316348552986031102864522583860958596106842660384481886221479619645292080302908922683915780245773063031571248193814372032296507931209020736059815825081844534868227225209010948347730380870199216560494881611161505804133981702884462326379391014847187685467853749306529340811128805023405232742658211696113629797376796984689378517483406441859327568241762857264234809680209039689200959041160325932775189361172514416239343373543684057255989007089840570482401112353616390326244383829032626495229855307158010085530396270453211242124882317223120241883045620145192159742250530017782351542092777905908668348670008578001833684251645186895395945268954353972224107916669887828554679371304267809713630737704445230473169851279227343715642841651278460582641726527899439440009794244309228776538092262813177484234290168309641635681017381361989263809331329353457756147132057027050689308500796181691974770569807599001856705647959905712455716971644992410161344187793464387168142032703739967144514566504902694826146152419551843420788778914197643119498256304398151110254988473932204160417035684878538724692256848140575993982695431774280492773477505579912022869781895490790679833169951248687015718764986890377430295288886623330945025142366826430942003554552755349749823113129203428363089225528983377628842276542171029113779757053465565877754863772600319583766935018833977856266502718826643733149707189309505455872421733791779012720274736208853450523766732251253178222029966614930652493279144878808976515892145755531294339100833289844082910259299468892646547016348203719068566135055021362766728176275924045097431707882783858032390713043840840280178525881573223545492582184937512132609049957072843743672936147099417284039147911960755311528998596978671905626871172587223026082856319417260581956308827804729261787158526374825575863900941317965720894890699516356662841184683566360627169971037274653970613677541658005873135255210028654844299586442852731282423880164816122863568847577572575100876588116465639578153425553487801520058014159584308217027295121569992542209571033348625641521620076656608411849877919667906147762814058316201025164360552925811392818203571691220304904350979939033188324041060820917331924676368114035408561013210074783656761555550611691014794521121304425345269727885699394797614131209536534126722392350019326762594756756348433912733722290355212550730872858977285889608082674382877475125626909235252629643580541839084046692185960310210188586927718666989420571880915010596087252562734588193349850889734924861152780976151749738970168224045568038920198063079676358237434189832638203563116213392421415870638359982709276592088106515605796006133111729292824567531941696743411198859498086584750392280673059414506636689554112047439147333167012977806557644684480635825532071323001444336986301895086193159566015659546742773044791461913593478522857595225663809647766381341673037215064612646857854085484964670978296831578970218320154972593365921262786529991517249656808391634264534371049955155122062751268314863995148225327167422533491186966057229684251805664604507553645765241121653120206985327850905544496717157112066359745683080691562358581762177045880822442017433509680442170776925142864473809069626073656775476854483716595274679519928780598807123088614547701909564495401908258413347674264048722906354088624702741628159554537251815760961155826756147885266512544324125701389162885545058987268412674530362638597150928407308388985115884358170939677570442529431976705855544312475528441648393285767968114948656041007406500954414408047465331620487695185010233898880727631522424227824368797832526217333027330035514395675277347616364632047801414480367803067924943825223549718944548378737164775029072359088682175105664898907529021802493719153089681852780067784098665658052666922669210368148734786216768850614843726468890354335985565744329314388171152954099451505484574409434520436639055830122148963686062171629121859323807395714093732178345421384346921648813014450142472683375780408663129527772149394825656808509076545580844402030967303785914543786204779413450893589419313509337151612249486258729099499672448789229604454240901801451218843432729994219946764370092872280906684266651398772373275473475235816306125820558436763414709792141119878687110565841851437528777307396316105520554380399082782705562489907283210841872381232447134540201297383678709996835643325621698132402953792032108066482151584997108259974495973947897272695258936625184572564517530325921184430293528345455845882852426904511655334339979423189670768371475065682021028577009633893691144717585816829266419733283948442235032993852557988642197101853193525138357615991887401840097931017764044295141035179106649076457842935308631673568959775106801467202442618996963394313311586184758263106766900999446543609387276086776123614548996392606292420494343264028777309238538202963215854749136259037294475310471969727714948809776473518964324808888866486307941336265480838034504306426195514781817615543340501090589176007095389290333994863010393138611891183248415840201123612682789814137458225203393779523042299387303156298230959745319842152492634781976871126824527875398030927642407042880893146616940450997445804037640778676149394045238564363367953819510760753946845063984658783734509168062391395599073965369470301697689481108700984514682730218633063788295535898250094910701318444297022244066510223010954496140781944320920468949240321973472511901364591556508449813848381836261797197476807782581169317759638110030157402200601733165000473730077491992774418120294133442802164051292172247809433743321668085363679838821027096325672134956707478916288759202056972273227384123532837953933169809653930868098821277077179377213836616228880949534461303724315998825576461094195048071630746317326666731259347558889422192572778198417443607853663484214991590273932538011525012638230941331214730363266179634511389093917793798340843127576342826423547214661810897215306428797062560609800015611193868394420327778817930098768954175341063262499563925889801798598508841689882288596594296248306823647993899493217336618415393411218414523031794985869394930873398667768338053543722979517376459747304059403795915144074480239942936071145646748135349292524110484911352308557972376705709675786913232513810502610507604590089331832766125830523812035139240092420558507352569237739904018040430775888448365213147463687194679140279725660324151098244755094112931066942072633193070547245111335963213560853342023196743555171448434312144310281632582886929872893669398090837529595078915656253053632891347002386351081973081507944442528398317860425283892043448466955463604675650937182681795730156041822549321220034036203696919578405545725812005934255129917697946485239572364857728994584848746417255316082640323694859477559308184385242670708118670422495241829654214686246455186877091756706518120219599033860639854845536208908963031203754339636899232520813161933547879250068902197919085111099539876942455262878891316725423195845466173513293660668186387064814350333759034947773892235277607803475024751003388963152640564017787792520209693155530528047135220447499919329211528352945420200531953146827685878801694888339908042892994563155932868901082972696473303915470998791585263220439160709533181686017685602989749332090408571947688707793929374142516162166558808635939505255500281672955674973597780627331934721843917668591260197157735504811939023810213545559372236501954532929966644609693147678124926836896727205737762627239187881366160930131562299557950743203590031810530984947588145013869681245722506403006430786339176233091486928989395362419233690601949270674821577472677892578173507939996570473050765535035623847323804541708998630745746059800470797185107386014836222772173558143187842223633832211441475223996582636202286058507900116671592924958062813866328863137608627986938441318491353029466478364564996708545582729681424164753057760262050646970355935703071201883194688473550252956724480903902561682205836540283359051937305734589022967212178032773999463951045539046119666090281929429787990056736399202841602992662729893040548177781196846643390571981209921184899090532802573991359260316890258160142728085989153548576278303673862078534283577427605042596475730887983844410744721961695996515997558570058513352243975817420493186116133330210594163678511666880317382015968460222658659432601701846278486073937502260313794718029979319722429998491124151711208666402809873177312881239981212973054467926224367843976262110033627723694147440274309824568032368385853639597594613258730112025378373300055082778309596258690870351208695879757145377687169355730297983094313828699967086712943303608866815907600292951403392800016203600634033097299597528613187715332043021558066848846794056651807186846277275794103759485029655772854133182432798170746360526193985862236169479538745257969948258040565096918362805414848348850740359918871038682205638944446347855779466515030326459017144451600200336849549534358795509300648286388524138967528227393530539581206765074731901499407960189316462481100017497655125323030824783529941595749402447261370246801477790828379252832188809772705620618942764587660686956424363860467940660537473455761694891000406025435412589326973291195850923739075090854009721056837564108595132541059099418899769615089598269927002409808596709403127280037775783380693504385677766328291755711497605450243736354860148662388465067819160962193513427116097432287233500680919050850464746972140272612881021085807494242865434092988737812235444931815996406138014743006287366926625385237745205425892533974556262769296833744626823254952858920288110217120721930450150530454802708669003290349282697194172879824860900010227211139070755588563202058410894848467610211431799637543180177429772167664696305722756182449900780560753790134304043772794865342915645584868730082685315666014428197834469179888118748753261925712132884677610592658755216357500649602845439284978157576809968473805599134326663638590126555338592666726924942889374756268322582963223031754359540570321209300956752724690349749157971221685416799251609421294527947029723067321128229149724235204980027294462374098800483433730219429089501907847947076704002980998255957880673915972718364778163425880961473270948309341483257620843339599809853324342415521171984899629352932697844950911733187715146111734133303620802900012448968969748908987621785579455701977694951670928127462670151890746349668367802272547541508262662859040989193004170472666725755329133444385499716568523238038264035711067036847424215041286644327187849770773150214504149176903411525106900429568848366990427341518356395041183738313992953809970849296577784250029909521837280249435634008764393065581688915218715768560548732866368315029984317294434084143453134105034688956146438649244416222161486238953725256474976304309266080765845081890927428679334690397558951187484128788242150450132506709540621389367344189989225984047304322557803062272815547700925956535097555844651820708966601336429257544773408749111946653274057454269121914740344672870024511376077544021923393299115214789924762566100256719154854886707571959921293500711939896419815348522278138527603155918507510170082126820685217264322531725777495189845528438837866836507884334072665196785737765884920899176849922606073233368815710696505045891600766942065947172598970815930914260397367654273336254233505683829777831463940224282535567948600485383686408160105893009880964653473856293679151641282676573170531348814215548939512203917489635357381741879467957848164426758432182560533606795752611570333069328357375848599647218275549434291591090054287570251554197130187915636736417640208787123376331402391417329361795654813627851659132745613241511535575044849651800269450849935340488587944518639398826393671882933834105132437206964521089546115921234529082593969078321747083461840232013193821363761328480324200426512385311108969966669978075548771553043910983345309138272198762672354895813192323825800480467379460147513678171701269989639831666306652323166565077950698316189814044878903634272329607591880501575560137059388218214218793101588068392834910615574151659980363187535537611194163490485085891494255414065096222447889085651573065623467955601541309293489910287262065732308151633750547369770322303344584514420296280115558663381169617960840149660425842349907906282168251534504695456870379755154236305083695447290251520878550948963752649896672994538336780776459880696980961645259182056663218912370672532435307357093946190718774083926372652345014595708026807089541406934794557886273982296151247589599366884851191620529338878035730085846959630780948229081523568664288640473680265716537541712858747484538567660185843295953022360515007934331418489707270422205775115127542646054803637799955704544330732291682295030543705826954781807220881722863201141462601605966476704114675962695947222634685052844670071399384014048669569257191239711978930728089813597984678017261019390535754730557876094933832676118076464628396604413318051024472508241330525304375972956899734503754987188482538136297376646648451055418720742037217994651600247985737390869926438704233508262507967786244964076766102969999947943332751095254078646096141223290287967848455159618148883161867397661265027323160394407299141886255511253591103939566201240842440177181601273820517047627376535436127316202645469882763283692795055683482832010932284283148471461708474634924267357034674030894331148016066273379597559432194007842491392415945374843965160209099186277668837577536908433679381790960563497276099967277878414710890707865743918867927118414151234074933586064649608298878343521540267130040142381517997102622222167074652152610395030781318549586060130924761369707061857068230898484531577506244422397350691019843252784593376477019047331192271007862010264248247820201208854348417797085118378524538390303901119347145348912894436296970933220450460520457632016013028091210472583021716191151503782453856981431694933022019559800988506958019599243432105016596112799866607075531573957076433915567316638876078850398601120596402194820104110125143861633054090912808671202450272211343922469415379358334005822056582835980869534001229077530977358912218744397440243383614961504049228964720956239788813080809729944681668512184918705109478101952269076184234401289831708525987398078752556278070548782076653637213096072743252373079846317259838627527132331127228292325337561636162654419566175385874019749124722266467631953177561927661213801674746397766404886837153611328201855058835079052873561424853395826996767594692228510159124082251587219158508530650245891035046834715023345442900353951619475526071404689229780892526608278423923895631365517638788062767139831109082214289216097141037297469057234439528856725008737369000257001704754717194790403499414250798820699673679653809176813515328466308407305735898805889730941408806904367842950240337953652934610441858046153484023704635463100129524495144470672801187629256108833789036259936668659576944080455994595081193024922115262622969160611324741154799680468056441415635850155639525299983509057743012956340350483176310260783624465687047140017658964374751650941278773505374327853093793252815154427672956187505419180337953875940458244371223478467100287995906212636444245935762219414428916344576980133806829489139559413540885901368723557306522120776286463964960508727126908240651802940696266755149486717439592458663109881102972343222000902376755305089368218727175241104338246131402811281990714225879435125676164863650473625739979635520982596368913789996005420439749065857137136654699345170949494138704700166776052059684401046221632894979341661463731807320326335848072515172993037858128464775240002803871555883704692581614656949696355500683753125415863554903797990316231670942299695819197183612005263560197846910992209740163154972926473753004253836876201007014732979022906789214702904650874887745631336120921500863705821208953016229269607873136708536221599854379386272318330883449393797397125195177004740066553182611513417488963791968762375434297250718444632247475678013306973120171171013348361208067340378465304416485041598684677980796218462339035675675271992344912619399740942419557958055860659006057321130098015109981468557950455876022110714636645432893010550954889275614579747733312595128785980361243534689229244932025273681855152521670020229867754472696866521435725578123549879549296523042259517863992948666724270604245336582360240779322445932516636468496087039384703878262551445443480577004420437671851372057631894625909589623174118778407408660895285558186849621266286739573033976953623325293450660608602147144672872999685670493736138119086394293161510711138504766284233101931897589392112824039965611689384498608665000158514256087459917078486867011738984257505398612667318409396350627251990180525693083414957229876466172280722138109643090654599859103239331994508453938088111614653282684496550161827336659282282937274125519515574106807438586836774188289838239447300833822248021998535294646602538860142384755884026028068366264354241891439404930975851917148649340013301507956126822010658308207436064988772191163405239361164857087336846535306220318922642305472439684355852880581652900168255928527067243523584683363296858038517997459525330849098588620932681121858736295321714768439070202198629464576102166070005217060314242447333762888460995569502323699034465892572603313641357477660390310168578779527370489604556498136465929961069333988851417990701102014764168153395934083453842209158146299599146250106746603579133546882962996281917237561075182084976535104225508253867075624380439750779674296906769304814776915986907602832493384500013552244848228450758221278914481169720489262634966445161315442650591751519904606358525118768278175714792874081646011081731673941525100201391222477690316516373169137826525062808375950437240219644374979251596603710515157781989291246708354603429043988729994753794054873075774141598058073540737573703856682248354199666076872006072544152065415028736955576809257258056517245730832144526824134830138173667134476240149334680076730342989823082838063047045404184555784113895099341874934536966900325413784077591618463775688543399131784682690802389709037745787539180195377243392032734715507448261628824977670344746476047712694329274446687614710772389748223668451379787471394404260156084029286847515921207223748411021782031991011327262748282983248369792536316453005371148560442646036430262777647616677971224623688848764759293311584263863183661620375147026233335563490009615554847546645480400619214889038380180596798193874061900576746596072939215313089305166239815087135656986327847118089645860819402931671213888006709972474190238705285628969483058399175826535736156433818739272702228352324766120473061279006314125451005868651117980098649825723108308838664407307114630777591817797872801773829494402688920363628869730169760732049472055101877603838825788919747736940018335529249876517887553872857740480490272437816159146845166600640103262512460539897454831108598054945090546552106570174802151512771257742371189290682530113378086036508083366607135347767493319069993578807224372373639385722195343156189758240090694370879012664705403281262603015864981167947163321672521753444489296068777949683117825132399636689597045813512240340652854536990118920258388803977253804409831825152797330770738631227187654738594918451457529701800870161991197174448741590499999943720794048782156182140641533681566139118319133550802318550169934754566286413558109669806248994251689519672535916347939779792080562600203625016848720768223427731539726908238258678860991632535719492795510568127321278885366685820082855896080323837598109265777213382673282050607469118794468972542757229560513685882017079862558469066036059986799753613519318587639684455399937757752132932309551535739558271107378630147399487716336535745329681500564187781787153283930277732878315679558517872042649403125687215568205647282046416085978437410216811005547976576652790762569332232550893286597555398270989957479234574239543111698461005662636795167043406277993842387257011711325878524823495548491684188397121067439749234479468051044942039703955698427293806135989084765749189886193978968929156430244887345040039532791931876005400092754432842838425847178589708134485837895333567829251618805890883074686070434034167952116109198919027614893572086482078940956618191396332075379753895830824062097809071932285762815559413802325390224629974615722912188039952469612148655727617090475011941684441512464302223521899551815825727859308953252802510843090594705080656435517918625866294769219118638279992606463828188975230934634964642181209432347222635015232461228183854246690417677257067670268849655149346718594147916020169538608857949918558479396640800915943024120095970120954493274285161166663537193934668629709583223716014793716883184896198336737779608117134522178634306703779875668095524841217785512412432764992258296974373704111408882545302294235828021655443651413749428731489763788814461661970300507013940009607507450048697907291413420927655609191178944125565611106817056879878775194214502547685546444750282759627249692171950494617442970285674649716814877090987546678973698767657991261773062376006872808854400696140667392739181334252844780412907143474144346476829513205778691464093019479451578825699847077900624118590531991243843199185869817204663686035415561932006985463375712450627003242505659350241622904901881912027762186045063722247032517091658484410050837046636765199760140596311715391870090471545773887975729280884648182782804908313544381811727193102731119649493079957344015339791339904693563903102193963118553019517835124690606419014211263661244407857508632311399159651729621445838253257670654629445991521717286777342365379460780840080225361841902907200399644862830391979658857049020127909873875530272878235989116272340929380796553432916684741786265262328588148394815146692108522113041685433666677058085842908618337537443684995724284838424077937791406280734277248419357117377340432510192799494535815020501353958670033675905236497321745988848635602678781086595289862400791055105762477632753592848822221106162834257107157526818235189110465348534140629533345987065516010289091988503510579151059452406381319676093483060269958805626058987571177426664293029892344707478116082318530169239421252401098407069288201784548315953506366684203058031907138380846084149660536863324384052296221408925276786915326142336359998926840053562733813273740303199607620053405340560622710047640163481468550650420525139906924857192875025337471777294586828777682909475986797420308303645535875640307841160425093040406080951985602816107455479074890925364919310851013706288949893491029711883713923475340986503791708801152389081975105706334944279616344533773683579900291020161430452114026442484351030370558763041406273360105018604617050153575837788239058340355504455728537876446249996071443535275709217720645056033371096333788495541019086006204769796044071685307131386873990502190253726042006078836554954533158619751024634251006508642860995037281659535879391333298825099811805008349665547039645895002282277249938644238037121767214538987146941108329570008996500979063949731916917711154256879485945433228746217054522785027279067599986034423871712315047747599071158655740122417430126120797618917439678131544356153013727549373619510248567182506625026463581427988637984196244826098212490370985972120955638018488585247546819199286096821493138594956630236138272950412151397567711950070700318546924028394336585496343952238726856795618323159018854619074366642900009754553913388155739936445875520722890761703533725469861277920886083960248950755445757730304377957860783685359163252172356519920983810194193032580936273991928635239906209369261745099679465237324368407232461581254584101504890684095133308269219969973429996162971519601875654510355586683939146120586768397180626180289277592322742025612550211076067911713801625420530462813525256859462823137015785930251796467041043509309137863910940627075035687465648112998351954906922857610877510173089340484628608571175268816673652657210258213897119171569835826777643524855593997116156658324685830129476568247301866625873990126176355213597566822826371569168168819356982820605386310257618285205038478587032008598106446753057212060742743360117477340193561202886739118560153090774660229344555397606146587921532851168285810331088266194273911404845816486839411021872565747297274433670211073262593548540402054968253262476291689692535023869635842650262779856318069574131118618130932274194560461222009252325629241043840617169362220240191327576430408765285453237235332589010863481016018896764809901920266445787828326960078594099827752505380119546629648577602720519957295424635351813007037556147896885530615608839685455433425283558201884521664401530120708587968231597862947705431303274101677037164714350545996878734947710908829587250144353976031214205291989644477834784270124252924435131888774902996742444925020397697876797608438299120904582388859657178285622725653625019978075680657523485412445969631495077010580356584108385265311144360676667568814460194833420176347348161581353841628569828781098802045202185340683546062365299702755515685670211464688539342053850223844733839619562726303514143219712905495965996405073580354238760312230764721591507254573784281788413526148779752066265137518114110049863439941938301839012614867878919363930514390427957284230967651315469434094134014027247902324204929571120471993341197482342279237579207291654390512118176929788085617543898443264414244312091390862574029725825762006436117142902155785896913087936342213883312052132894371068379244198444883429355159049124378554791652987164096433247233986337501869113218193595263842678340712290247604415016474954074631518737053387331162216215393528674895931085813872274063373195704169429587214275681426309249389060165725816694614864348561693169243406295757448673029619189706258337051840601450614646042105450538238772028548104944918903682621002774652700257290117307155308485898725390939854544045101275763951996992583902211393579007874511879997581280696085260653383186282386521325922453818470919544267424293585889563436115890601704633234894454362569861186558743883011055257722427062503927100366083132365344158054192451652870958419956177218455191667006821514128362649204863805151416573891802110217315452084094341202739178484300943453177306845083027518871742556682077025509730353555007829829217267252170438638141305974405044158327118968896877519379395176820043040004742805227473637665227310004825293074818611590684566496322690769800323367797283612683452159032570908918644383291497886404277651570066817694802884660018696136789357706997273835420592199591724724253917523686788585516087517836721190740241627891308279242662422129727627953583413713324487171040621952261820272113879145154764595620548491609000400785139397804716696401159424419952321851445137831015673568609590421010784194973100675643720397768504730984309885519949689279433392374991057815160868249008344131932394509125340438033477134920862658543295277623772965921348719822814033518850322290600299310860376428549403699765479734675311021796960571123456452093695465456031499771931162622321248755223019489477030412377158434481649039485277580912366825637518981841178981805423801651377626561164131845691946805041250891944380777302349799254539654072443047279783710793661086846851500087100861878300465871251121541959767726119438383044175269062838075821706927906054776501986921780136059022413446627834784220023255869490500012110147782072274583088466247644090079401750014796505536650198896780057712486537261532293146372066943152357551285955586104849549570399406687001938252389483008053732085078832539883080610720711057507410860484145852045473412993619682769128801423653239921048190546926221007245595967551428644909372578552941957451283439227090084647384816272240756843260974697560613871879354930647355343044605992063012778457782783373363151572135918419685886423974668157483759119009021441921883272894820424420460285172658973942775552937110611669304752069662598366409036904138514591812509450888229100854376187701104873563681662568042247107748127507359341423978913870767598845085431744204751930399917713727774559013515257515060899326010906062356620987449390195810213509565614715804146865490018591988498955554374667186226780363696317319536067311371549996824791895094306815250148905545612960219397276874825990406117991338166013672080203642546681849676276576103962744007944652922677289827242416474464083583039306382330512048076394464647158718174120490759243386317206125600218330420422283050574517128879555938073033980715274850249701603294210146889450983632885024466706696966398127500218348888245876300755879470656816312581178005993263894514330655337199510017759784844905876471979488839189572762854612210816685247436064264454578884281719043746592325023539771135869962685043912024496221942150244787184035178640914907372328168542654972874558706745155981982168546307635109295684219379322754680427044183834231096915730530348251471378067544517935132818557070551599989571904279746443717528900958868056677383574737307769197864109898853276236039372181832941012633284548853355023888944352711857643337921994066347420080739165251438200444622857057419856575837753708477945905761625698917980437333191463947340435631575287077807362327969208331441291447183640922171539558521089878488060838896840153988270432517444284779693212548556919856438087746538334898536194938347994339814731609373458544157276739792818822782556913474699051591216704025456888004616268559219087973558028529113793956047475396592374754737533813855815480975389091723594657667940147280637557773563681877215435474814612804226864066635738351273240433338236995101315845100815009481732549613652178832288275743011053863226076343041344376120968474010876574177815124011321341021746920121133363751115139920027443446739215167548606327868450221736178243533985032613840703240460680418297918979387360160596267309850750617815892438512824515463294453947620913233725383140505571337230472486564613448736478313940613261505251894892349298746423785141997838441640084704398250908159712317049157776205695124202379540440378903163431979285351895265340911582468313247443118621553761284915666500797052598188268678903309169495227002738232044843197758028510793762635915727689043873201225111811273429406771843015463012089215135359427895521847074797675148968896114466945406003222587801197489532970609142963107474155576314681323120301173573019540539847052729458288848543747075615001250770099366988513992470975430543846449765329339282542779421718014947725028886394610457611345052720665917379453811710758819157022057248955801015311021049805323032754655227686440294606662123032136589179475534113874372641435545539465616303466816230236222483123300585830156310597704117047326506799481808277805903370178372857956157831686438660973984595460722936683305756662608431451798805621603893315511004099507289040916731280966947864480846640984795682911094125046180859583069929538190226367883203368850248637848489832083026207783836598875266117935474383341601440669473465517734979871837291549699353938063999037607208086753198197861809617572140121000784062320945122860394411097865858298961970261618241407271985483426857559962719163810979519016611940718764799882520076646733013155071952951298025591858546793268375328065906022803748224603092944810555653978720642347175714632300134264562701917066545951716812523546526307971951466766488811615180544667854610682418368416016650346905942305333610498504884795843067304185930470766128327946217098225715317709676480490326894291803676199800831399891768080124677969479827128341631642365306933667585396744682035423469917586508235414345126373275630181293703356180381856314416007265761630019654878717336362262437436850803881937735599854460247547715338062395479630259018712771255892562210032513040691410010138695737795061347832240706057125572426995172330159191807539508554640620738713826432181262728829864599082038358396597791244452553793631479384875176791919106904479611907826276500460647303032448328443826621404186847473046599864856198836633400838739335141702346467994465819251857460853730542479607876635704595138974180993151916313879319368134639993387336592081836422162092413245562088747292350746179249881798832541897411058824276479752426852831085272572992456090341106412982962600138186870390603698321425169534580568573528494379495997752981202147034919639146826214564607796911504543554635463665319843430607168183596185748229378170643169091707482848260150191678188733947729071821450483695931493669783974618940827646679434264465946070703824325940857983288631817647214313625464475209149867342981026235746115719899716526688713387582038697570500640636172175407480141099848035278349554744123799767378804485950505201146641944161773944629292095014191948109389017869081849258629669039701537319409846245837373380586909764483955293882491210138762652043381838646123888780239904451050946264702727181242549512341961543153446219002570253859161278498864756733407693261045849911362536469024785587022734168910199136638508087492753082353077555454170823947042861120847473010389182397452080105700810161066746930243745253347864252082692283087754370369927252561808905272145291646419988566536987100236759574477713491211915781786750461437740948639097613415637116466474586897634341641859010903371557833163789291514866157753021122709523667176657077827506500224592799293679549833543688855342455898922289223674074354119507436413659005725523372888344468234069393542846371742923943142958384896614395660989608102373638476824439685816836706158102153357756075382341102918297416966929195279562576270568205468493346096397491578020483037012382335678677504129488365210523579172694633056811591192816087461275469838145908325835820926636208896430119766105772542311597369256755438751529277907160840061285096309901845306853903517958674864712935764338470684399520895860297320842277716068324943324163630020122692478771262615035558393659182967723956399276890219035511651454252268989702709082058602256003386799209594010056639408615261054572080024624577034790623544857903101719026005249773444709318117950162469254246926429624801208305857371792378182461346082057874741809857705993885843598316524296195641256116759481324889077973773846129967595074560487260987173502930947654396470875752057269376097598238252236050625769326944856428012587482426428371532566412510313991127909595859805552476953920935225203183872489953702594331345209554227055884804213392274700692923196428917450628756695475587967906102970375477902512526426413559867581648488590734752876110718281774684679882931711089081318135054487134606027508152065646794729105358369423029284847520153096232502007091676997608825440917798675667095136705157962528273884955243889407482270963225286653323991937928484563761058784006767111712265783206897182111210130365081426723347282414311431209665690392481527342430042118922378970271428920815869807381922510095575370882566082707287759773539781092102804491069381283127527695711473512389608765782383160149328103472881579924990751953085501837103705534228354057636101704054321148926799094626572459354361070546391437708560177522930452634101055027400460856180989020491886351272724533127202391645501848848065672268888292005220229932474979593319889244565851010923057973532831191272754050856211250432645968846912735134847846853600683980793870711964540804362209155389097294748998962711715901397884901703921711918650510568834713948002902116080924664376880497072906461091427669629673510122318901355166996854573460786367863289304339120921041929378315500295637582229876810265310070750864711036087942563170085566180933853668169413889968707673416194072708156448611867625653442782964427252451365812520538067353694161100871949619480067546336347263870775263516830026597716947393040608903913703543602502736055552233340493287063200551158311412964326196488575625069945968225128346374598212505473640492729742108671898079078494163112692018395456885533217100657789374014076101091655816107898028887535864218666519378376386783679051946029971108141601974266800512001791734910497161213215850342249150051705620284124128655775024393829180393621849982203492273207114840094857370469658365170921600877133281821582586492596153933893669283227960094618534081588189622945905658688873755886340011149297415527457493165947269676407303389425596038504509191026637853891647528923571586615960728234619499098166412539853606683838151640482076257592970512946850785665280405547565134472904578893435819280338509301498609683576219505980037406961420350504865130173521387995988032430210110784205160174093331250007164204521064555344970942716031804376729975100002262061906845561628069590719856169975049650210434642894724235412342608226995209672440853258783244462548870386598395172939184588571233199042964088508444807374853938987492533261254488327410615377117412124689149341620030325840948210209949157973256542892280430293104615249872105272207551392043776769746794137270190590572755278362889839879436382371128382641567790330074314652259046595539377319158700841545247126884183517664965239416201408405167110554646347942162055239890616253198083520200794671952443005367743367354068582424841159257950854624286986673424085979209329770478560813000635490101227416296045574342185815395888510672814828401709459316914509404630440390822127214829201329198150311691204647318549007928030932498130170423899229325024328565337097795064558930295201184589790484805797453738275471002528481931717302072625244713186218251311149690009833374259577046191355750159220059015335619018259349812370091180447524257767551849719647124780460365889671427682993416765528152470458215560174019505971965729426634721445271344609665590832099518920570514158794494203354990281146667577558153187889535804510381051538292220145220921417470625838381467242622087918893194670381815154275193118175218440440051484758378639417363359053620224396907478264360620180622454752122057520760399769176712450421883062806908460875899083113833967635884693094127927640815581246825740068842251482065092756091849752398592054535149125706663831879123264810941531903313065383883379115518313662862692491230751966395227100532946581075339429131267616525958424189142844350016218919959047661991165995420773274956959338266782384976655200468774250362845340479370989153497270915415278277491654290863080708530418522740502823618777670452321938947686334958946329307513141428738018933536700593766652651832607002750400642196623066017329366793430583781048562157354197200205212420766579530030933763621906980941649484130837513301462782242316812812422323766858988101697133652935705128044802528882671491937556973232608516744204619579748093431114279000304551618009512988029743253515615584842110088024172797622248955769919914402519383174950177002863237361034915691326787068856673501474101119835435460135827080213868375704571793040626572102503306771413691079385100656834153385725596870596484789389811434103537243126463632869833302235784375328575590773423676665800071121976575627643266673750304056264761698325694255250477400440716210471830017663721930812862142208441416626895092525458762269658833866180955276781474229482794859164567669843316063750504525072347771487698922415835078260567434409263013949827848329513629050148285003974531782495137448990900424563970492948932452769706760081737536811831642920704764750154859931924430230179842289721547999531725352120766593697883435105363356991681509065980306670541676920036291507398090437173395384608181354702802066613194615646413635539074604561630314549174338693127517903712550449480237887741842704053366237524498493830893698183253446090346630427528578351183935316076809243189253862743474844190595983777517610901433969219036790661923535711141025103902541037461851209001404110728932373489965533350976594603709977688479938578222575793557202631565833815261476119218793690233143608550173989042501395371650729229734386136544281497972605594840519274486444293352776215078102875174900287391478950689162325644541752392590570406811396254028221112454570429349536800446645752012314039591707304132906555925420272184740364987373157363357310713490370394156022599126217756402293214817948464748145619194663607801444311094774291198115249012506424373867582013725260725150467435705912131169373623544357357985665417668850594807308370054119146566420554279897720795868709773055608694599045932112557985419315034633391536762032956036714539384229222424801939859221223149194130190807371866169645097472608203090898392078843372425750853831439478362892738521601244851010270596402724612988956287133804793982528080248239458621936674267854553136455965264328465055064824201202998635229016776313918983050406148287832416082879233981628595602759430539185951331464430603265564134176492411063235192399635965599315045245502303477690517858633813954166190859243957153718222412144018523875286036017634933099015392252005756821092468761843498408792094660833454360287025240506262207001681529673483063247186482497066883342724077597556017564033569204582404016543820911168732952188412022104025904129097607879798699853137684205425097116151454354536161613337671171794798855283999739636177134127372978359408764934947297584541778969605354397109450043652349036307011585413750771590447934842463249113340546478455329950496406679033795518359497165270984700006165198808219565539425965916902428826289757682056512052393049388240697350233536181251030787694862781350951666486783016570516885368392261348911285844014143301731113394351098603162825031614540137626111613007401502283441204744906642584890895304335039176760284123083537820736167689579095733128946378994168078251726622625814964764430532376855254169886530428452198784924847607033863533144120354559073252864454980635344932856004875708117161937040158846803090643693930565990883864274926524238697028467401658936854204572153650350556462618622073479851660278274454232358219037810753242961948042769393780568005820109875979013663311159079334525792546467813904479347212587352169582813036051420219618489046883553674368251190771583213448873458663715778734573467971261655213255809936379500072513912448157318411421056667748195432293679078036178668692221345082700579059911499388135603576950304077492513470343912186145087027703406895985243885501853382659817905351115243320707418653189476369661308719776579408428480992701964783786428456979869739126071223823729698552416300342636482278301289936985761505508277881279196877929387765556723087961636096236318900403654341887132828251771577255121487728110312119119073128703441392716741655462876283380436527450980993802189901859874887162233661514645471633469549690632369254812871420800741556423674800259539871287559340898690455381270428889725159801149039074825652023513179772854192615246471968067724875926476438343201501117060950177445045871061889919466359171084407955870719789372418254345595460091033918615441931218989932001784247663932832377231972793494453242673900334707150472753723404421944870289916150580630444221441558358514448559909948611979295646352251491711120247030960569187969307796730222359448520322264519645865946409810302411751248298117433808750965065454249822079284829681259212701326234291212302683295668438339657622366684934181985212854351134766082201566461100206903524236489364969084731581623541888915903772825035354603077754024549502069377371488682968564583797362690642341168712298760332436567237352752106657149428518989449512860957142502798810596357942277998496411147328350570467277078646459763476429634842224631641703879900588968821313269001870384222790046226482489094972153573965078360922946764366506481988404106001257284289651389427175961343729132016078906332273650845484047896536195753418207778053527588538702845622172645232201718556808434463656642496308714899466522507259358382324633735830214214045311866299143576042528256249330339658585091606663146812369577987472915244887354822949977404103405299262014584018538593758445625061539702892889232286989168874174919464687900419490709458776375305331988216389645546902163514490716171034112825895020200856518903727934286725121298123345981986696808845911763163885818041794674555891204047333823625934224526865319495726019519587190428159878982915490872230134495345970464513797990156968760647494854393703815861145008397937246524257344397041624535477331956441425369878013811482021771749057881127651818047200663575571108095123276911851570864102212697679161892264394717719770985588232416417230873412486417848823829632416301901184381555172543113936632214296894737055792802138842261052532866544677682226223055781836430170900957495927883064144775696364860935650888606254197062129513574682897297390648681830962031521475117794448043484720598160393858054928381527640833976412486371417245119598622150113157820936802607421952518624943683417092208747455908101410024053531383161515903313115124105161625734989943705801064617028051902416750353372504151377882576446703180193149379501195076713439743491761850365856169743078054351833460615251343536451265774891861255207028538041300111638861908375074292858386520782049766191281898196342668406676452670408174661656567654359527418273433289589708349336040575707005090460976274151311738257199899038382764694893794103058200135337129299498617499050568722174259978399149378450342698012852478801561345120463646390246070518057597061786064361167713647231284255620424737933658062065552235258898816593282823930652996635904266897465049478420142873277627139224590988223432713491993372332071434289135183781005051972824368736091578182320000884993519057323827692126343487763429351663362752500764684310137525903280316334875232511007588604712992251473329184016895646269376879339972073819187818400452821140985875068415676495412899704355726977388086708848048901592591220592528094338426077908579587873586909787384746482505096054436217586979283544742321845825509090378418745078465552363206763065344643719208107183324860431077707319516161137544712335906361390094006137914676493894184528066031525195277092704052531152530477745409490627372924953683786284046201824110048029393131349846430469753694512494732238937066495676133631915020676169131365736278014497154593520886089543522723574502625302685687821536158820885796190596694391860353452294830090053084770102492928666683159565119890186524067469597371956743859820702644361887933505357995902664687927170370615316008449557069633453789310568296544798613712287228818595872241501791021398494994348296874705547846170728861730937186776354139283503547768135023717777314369424158914024230509435986131848385631305797958222849275832930222443166049054911434390883959464562898844870273572504431955677195524415537841419993918692323045323996349495722532079868262594379100266148258838844860515354960166845363369404277828416506835100185430040350623887798051789110314037090680780505306106811675052719068360711869196694264948535506488623507331596996789874425903790756969107888996295999043411645887607615370537616389148442016525792128613962694671425036879404740933198761278035304873980901627167748368887286634711649413663579250775975996490076961246644033405675114831531509862024203891143164558116886152930260173354599197644855226125071857256555906026858710604908926120671241926374405461089739040643382169802325387974420747658860684782334160610993464570475880819398270362550004910268558127854247334785419846248999359422308904993794737458317551498523364746659336661748175465573986904518104803114717683877843875781462195297628925047986914081290706341455352644037966552477901224307189085165266982925163093731541773540854113799683934944266884358857411895854438658314114049306630345454829585007511483495362315297345542969483573083280839041261055270955268083628935088288043145714381686199349836793645528791967674958854430805460227544038609618591811344540212633918550756905243311290989852227972174540883382734766912990121393215895162175241605769221171878683029871347442277326334922995526641853380280281649059095393903844074331552364907076064685096935365391226711337290297568578021101650603027026858230955874541930475027763637406632277349644407425926885630353917150943238714579923155196699499403604504002873295121546544965377255859258872497894054336699622367529345267614596572471074689001000163701936392026586639460697883788631132737492388741630253545600036714355648855697222578999968098002253469686812848929529056198004297996471205950388504792036206498816949321177288479279068832224794770328995007207796805854107049221932104675662400732619516555937805865963589416304848609845256869921092098096217995070993318367987363616931246127982487519623168902008270712328726398259022281426743574500905767574222725963130244584312151522124116461490710484247195850138790409856488548891386383459194729430425786111614283433537950233483874647100854784132726586715156436606938359102082193353547615507616182900488609045602637800847209222355705300503960113561344787965789276506074888569420181636568248858532596833939695458556477626438218635240827236596894738969848953959704025528459602109707959780602714520331468700369118072178643808040983357594404587230037762345367066551454871092575910522499837001911334582313565505079909665381092883065313071890331553112932722622805727409514396400035066365819420569367530308559709381534426821997753333827459962072509777938563155356823715848535297754246861629846854521292538201305320346589322236051571072361506899843330741779057271987854633852156373686551034117267181650119901727869399131770223650325948151896034524804002940524258886636423669412876689857343810839212049075666516800074392530530659251225194618425513670622446198251922664013633021246431885015182459246530273821580513758204282553919401345780696578011818914847508565874750986927226391142849778511278422713227649804141048369306183534722900147535037531697540660645873898386619247847387494670547605390741260310662439726134592399849303601301679406456129843331194668052164680345502810667149335725931983868761079625228685730176857594233187256440357283513343061562328124556108417713491893616866274464483473840627699563167678077617677613808961536862411833228947602137216721022397814630696687232244536385162019661763335960807803185985168205107086310280717685984302599883925104804528126805448161136292191540694626477895704486562393585442250414854462076460446413752286751023017549215859376950295998840702351559099951753611271188310916121795875715594472124830758324968227061067905430666164976728656220499560068409955964583190277367523167863953992181685674565157144375063839021891912416711146033462651129541929005392440744166742983611143028047547936366570877027491195789391230004541204482173029171075275904822055214506620039559637649656512949825022460072924127539404374281650382619067516456834958951579873984590058010761813565498405557750407569416624765193385283479870240613086073023568224927516631447118093360440643582695438480659567825626410893622661822326853917815949369591162287658749349924506341399532652345504196369532740101866148471096121428304432130620681697430106421821178459986923314114685881064882032866742776940008354932089275350608770772404903965729379345144554907309091681153255261519016460054320460389956085622595050045932395609373670877027009482752671971598517935984712511377282657767926225290653690282809317401642471372731793218645061564190047329944548623034079166801543269529438575269809368986300131484243753928972518459471588338521902478293277762441758549975095420675838743394406447891670739309620724063330858956066926599419462972505319812111551436032503313089510553213374014960379257770276300352661440308578486596097889142721419745510520135688409763164862129536797250821257186422196725596212681563944393628765441125954957140429126562428020665296055826615226021884963989641013530395582746472522854849670106769074747425430701966655713656146014505241843420816095532251969370465703809253192234017519455703310768762228237879430565161642212178744708980672502122328944779495039902273956788804918853358377770963991889914259673988016452378648956854470360034983108378379069792465695959572280892085677520212692548394553240744455533339640709939431130536386171672411838092738542732366171666864277956687339329580294291716542114984401418359042081200633367602050250029140748190725644190407468608019936971676857085117506031736482222848094027346181755119683262192101507239011731258879980948665312325555194937153481378301230776862619235665063625382765843600671606349866176818216253098469336117587373049215272054193948287210553982912476493902789144120708159072972410948740592369641083481108394770589746576016720774485452588820691707078746966411942110998403379075220191210999701830011877266711515391187536341630985253529028148977485355682034697994051974259259589238550732302660553092439488315190769737685807752743112829986521990445160213168298224802006018897589569319955999345173249980962508197973840329558907403373602950204470305387441714942764541374199216106788358622930157754619322140950899253902010059606234295799435947669519160558929596574939257187576318286774710932985505083681615177174707197910295501969244818861426732760825159850520209712159505894214041652706813273264476309906572845704928270203597614914809319906449151401399228191554775891648801203285059487080417787586151220588986958164209075563354570660776155221389949490240148064632665222558805517531630775163682432839972584327593946592407130342551524337295572862227453894631071963336141419444682044547266391936558488106053914528638806091786125513688865567874047431791783267104939508223056322534192757915073611319809141833329561470946178766716145591264146290171879194407061118683090539625163682830076123848736854866472488588523331191222488151177150635560669482597122945388412652028534322534728260049685060156492515735930404971034705239891744612744111300858330075504972155356179828608294534640236496096771499565340986933841321444364543173551852282599036947976946935528328246407283865848289107997975061734370056192496185582394799057323795940134781342063039787990234685053775739947812208641452461611636049058868322729722334792223506863789048195191297337396271938221444013426051768453309415416659212270733772704342540120280410020227620885678398080609076890675851310459750569302149160125106955216820249342243455115704613132186222575180528523893611849742512514931256834499602260832712805855012722358793679799081360538350981116909539680069641860577452773687247869760627836168016913439275029600541713956675820718856957489753879683447858969008831675032366507840791604105340596873201609901633064237051448067091993234988250259710607814130221758098708689589131760049925744719575681853941638682375931829730459893691854248068647713887378199828287935255911182204060580425258536403354410987243479716375198542935161072573114782241667022633952642574610216553229610692992821228613821010499759562540401813862279183648024083170025217448229097679157941153654144406143625508332725074166151645445363007731757437287563735687499560733245810706460246514913777256241762803509594612228636095707521267508051871396035968714777312922944505577718553457752204269982295292755906171985030432387941656784222851711648588580731449372909806605361949563942580836897716152126423457371579731521450103435270136077579297784119984229324281441559296063014739321295269586224108287503074997503478542905348449048886680984972356841650684822988326634099792621698070115860980472855825326300825652562834936612407292343504173593082444997896108435892696031656734114920660068668026666006733063396292630380610541371856224702123144482508107624058771694323701773654955516411115713263733507232489160121954157167468541783606861990511853433043878344705923497820692956200469644314588336663008748941838003181198983796505659113252931288248862472177070034838423223323950844913553413994841466575427223335513942245644406862711821495483413552507976494654402820613551298776516437541118722091030992879319559396571325395918291079206540711052491172660058739943331575777389245721812738037783475710827354729217309540435748194434395593234833613789398436614557471340563518575918862109865860285461645064726925955732701136560999391167498502160854518991530769347628770404534010892472230147314074443198044092578258266728965058129256842281797606469282304268697572540071064736143886514660350131911385992373459794134050638912639066360770894906480771629847854370946458300695460211124736219933127958451655337028877637723524774335706447678468237391448610159751602082574510835296197331492805483746662896052337588583893866585019133091999596914067001945662700715220557269628670741815257747788558870138518977746807857681740307059939037198642578120781005756307910354516746935776599886839980297793609150389351993051952052365172729383517482187156886372218342281293552934222472436261317044010145537589306684544452461119426404316525929523341693954517185116363387803068277605786271102449009153570315942896957303349033919855123630758659059861245558296170889679207457178384080485340384339573718907635938214765660880840039149493054700549707910242699158705457793629469740681858072385199266707383733541492854530672072655770594551989240244313135731687123235408792397143297027514044984090941537656827366174915201245580400893309379187634110441805863684372290212310814406332741843104215621719924483982364073024823612816148882251334066507980311167473947229620344380807357658225609750459578527497472585555208379130916684415372623533255456033909412936342421529239664074123314233357248595850941886798949551691968918122964513062887420929097045342664306919480627444113096239849283206562917835149408704487937436258761583613029964162240916389478919307972957422192821659002323396608930727332807995656302064024048470160174396303928614402580925502685796192884146585810923489732638891886388220847398848718483610864900071366865354465981823967710122425896716867936467517551225686614348781747274926769100897077169548168957265933010135662006966294627409244149831839710330978576250348523760272343331781642035678069188264900833169468636847571223650886505382113900903550617508336698642332374644974569660413671953497761009790140471998063669088886327800776440700604305382238346647893643761784545809512025861155540785315280452456192437664921144877516286212802805358275015917727945313861095632097782766714938747971115344617121847119018173976042874102806660156721190242153503964983407432520450904134186757975558027093420986147326673435966181648169833257150690864144746944367819443105737038134053899738122231154718518275303403293213963012803451630732618955641475019453496624426620920194920350637931846871343945736364645429400545352238660381945946940570339060781777351645158976795881735609862266689096245486809926441198380583144074584663600367960805294544313891769407474761758503269931314698719993618746392878882521031411095859328863886360451641236556451104397592518280754636362278327776944568316372817921294213521611914663082262965413274387296268306571363036102310717844127946492361344951693306216240402336196697756673468818510617927296921437925500309224336161344075879451302415653656746282295551093539867910190152047564154567899085678410644908426271701325558675454666727022789768862329281858794204450232607989540956745973807612153631279672579252810696580644307057852902434920817971628837128341834974201614151875816740944641324252988899892757952433053983681229618071175540778463035171195856571720807671957819062979779710366467476058567217560044673090116345878107789776522199025205175128197360869359818195237940458528626827057751430615691024890078288859848045786994234486436699705722475028167935823041005804295677671762079426290922780029627727378361016652570134078527296552725647997450707116032269082482782359517089488504320200244948587684715588810277747856140900120532677110931702068952866517583586293456895566904637497922577790788335882479174699544067678260866178718998989666337369877476256051566441667353123500739503429927476074326710541354043403275845343400674050733559306873710630667053418846147004873181837946506915124133023667544248390538150849699360481892459216314166530931139317988008268444681672536903997633323791904446534409082897448674108315884150350571123875160396867203868273573393320975733755025429555138930548310632870018826466152132848401123158248961372957187631172679840978401340060472904364801732360753755521546697137162992916567508024122374208784416037556800600312089678383573545547524365777455220656522173156707729952020651547121917429892605676356195920942964421664513399615511563801858141843976157099539441079462690950086501585342283118663395369627016818954891541841128265121883268295796781597587208956321358297140506136845342275247603946663275071467071534952897655955257236380407225810952763048447097172980160673605872167595025383742900885337949300365471377353873509468002425882862911667848056622052983661378547539849218859994470660840762589662563783323257423744592671809959631361328762780277567606663947686979193544410915038369510419385792277995266880805727527302364302081447340810111856256547587698691354718886638651469762804090258548956779627364207220487030205126281812669021418934417459455419773061576690720166913661472508561328778736178921751983634728010479532942010393340087582379900787459318338162394734936801153252094039826394405811652940895949580924276821046630980247387301361777234032299314557137557620720913019068791748234994206927220407383862909521005863442208315903012673496519502909786349049718768276832272860239037366302469997280558390377832093159477128919168159167815606941365507629277503425375522728811070383791810910084259883347437210073380862813321931620397065562578366948677220487201015065602022667082045567897267917936338222829800237362102574484012200786763876726460761775686395025677988986799975176904837430535223300737549688246354395784660008669752956054404324089591966250208399732333787941090623862293786182751794973026278921220831020864791095608496580330692031681149376391017488034928419259809260662630511694086011211401524925406096772861626752725596245343263321860446800336311533356606021131906790724735238546615998571197769646394965025443820132622643905842663610559431136942731723234499314929487657042932592203433710477791653805101202278544974684241826795651809549100867402939990052008704299354113545529580754811678567574696699169553737806585549726155248416995747426868266807524249250379522667427353038861597005916307017378440885803242639591179584928517570315359661318706905427765340799572241226800291368799097147317506179095581369515296086056298508753695702805920407176764060101662992866168937852111963532775798797743358098194431284022034438904909126831924825388902792599579664954224013165335679155437053465115719057274408946692688448829406818474905476770201504214860996692281508458440492542543009025632215707188895037054366230358060396770267795581712806337458194770697268549706881061436943270450255648050531351834631834666651016266242540518202009032079927859756618535921707771279966744078730054251091641008785737859976611597051313170465902895769845688607911240647334661174957710125821293325016131250013508446368332993219024716299045166641477586040827607794926269172627198578027014365254491985838259263791195259671147794835894692101625352656273213788765936068493330989591779721361042878345321215042268406012301233432848602848859837540364258138356988028596734938637886900438359995487174692692471091737218688008905233131867764258143054911338907014399982691844188561004567259439917016428988793636488277310527435158630221225256605885560590069264447683061949102715105657969168336972296808961940985944919926315424868105821667550151456347717561637672288803960039330240592267646504254811644238811231699640040799468655419992406734066679949883918696174074709049528948866501216064989048867100832666618117503650069012064508380270117527239647872902700729966629345888090744929670046274637603257946942482035162331270083906776079163208125015847587241349817873852112532973192755098540748694920867469045442880348486691364510552896040339272313466333293073816995215911540097705115786323446265329972093723605620303108705858154897491177902213992336152867426013602937433969412804294104668754016595961781731162813959885553410282845766102503796699187620827112957480630744286350796654402457349071757921714231815113230476679554696715881135582114304280408698696226761184667558148566765754203941061666408714738117185983367283365515846508641156012995070676156188724943784384284601010442811115946698434678520395508687749806748762428436623373926256467861312899879624413896480529491476438479500315542734393379321526679835207240389303078962443278456745692874108452001855065477365079147055423082704098791228217283937768476719193554892116281142691338263926608564528083944786724299816284479644530885582250929940364078114552310544959596777122922877025737297305848487584205346152749191628437952132457593884954392921659541327013859891639647893662741025478969564333689547252849008027900376568094553397896239835374412218922607671058711513253362482796499379438280850837650985591080928424545068478881033232985146397715305730465594668508795528256363889877849559115058848451794968691871632769981200199573990252124213668076405557511798947723242782046536710739235075185006437334053435420480611033120494804502530420294604344475431542990824491015922202235061638104125974149786496174172033030637751340512485490155321666036454156266846706195722256218199898418502809148861729616033769487293446936246887814280370693963938108755920087782380391169322330090415170968314091644433878694432377908939446413732141393535590014789743120336984024982192000148918233216645602271405902781386748586686878831903147140784324367867162172897036912515362514353816282203499347278340412588024179071228187591561924671004981538045370687482854513591704578077662267258971618836820939727453503741271229250983262068970339960161710594705133993134614928827663856677951725004222749806995598673799277149174187012003399872804223947297207666376682770435256723821060780434764069622034241034126585497951366195035766730719381526589565730139608487410548319437273898050013595065692418281090999067895166173363373991354104873737382137275766533896006002811754950539510991712857906818916415701643832113862117179736455145644917347541043515091212139659059380359411934003672647776634033686886580527562282929260653228467574541328614431450282365377701726291144642705200624497226710673375339602112907400879250392332102972439657671438384024698555678458493055579775884278993067666028188425891817900644332549381919158871244477475538663006219975655398585040112706306974001148181969037017045812177917462410201299315661848248635056694973591249403509241195205934129522590264565391598540480579409046941357079238630345962469471230984589404385708682170765024663417228662144445222623340348486435526744589285694406054000944344984650887974938481792932073095269086160448956169340492164190502422702205728274029750506477940532105653436295613621845617272839145685823615692650053539587074041267979353777966780380982372001475126811768223896950695360487155654884540629867622330206505947874183189781040737929274903639699010519952714165392857607895026891782083775493596306551112651248353463531640766427503995282077289981647990586336381072556268651677164193505922980831432010814759458260721040196069511262268466876659059105787870726066132845335461244961585584149875965613594470634598156616164201402916799200111052417233204593197196900455728707671039063488662504030883567312999172826866516675644679123374211293224055455023628573647710660157754115661486269324242812742758076804228529165280339079301615501932202442620273342641923699939052730955771495819906477759439072429727337086013524851021526869604940118474531818396308045598733740834496914726924552861746298456094464617508069833018420601041090173171328052951934165475452592645257070058500008753299498318495814404156812055045169287483945390681589164900050613829075862384220013465419505959873540967252605491221312910535593866121914685678374545296834084389110805000893025381224970832003665223123829752967675810346508878748300264124264905250090044081094414653463034984992170596236237065094030970456831051603816830701078229733528339375903114990227259722812910352195210835722768004628443781311392024454685805256417995315483034738744359406598367251228268777188719097185216540544846059218043061610424147209879697871292432147096464163999847120935910757579467966152784844643734534040140430620932709361151328918479008573342968078147785697056842351149021866805819362338858681688224201008339636627171654611766030992030987943931716701991659092364465460628471092941047045588528734192195223854960692704889062308658381515989261040155060563353058306869508956128607740845105659909257368512757244392875557391292713625637808070368769101577001763668719155360099257810484458320839701991715858743957631479321170670341530694396051886051036088987949803055899064458495977185064145041657884569014147514503272154215941864945774511262796224077445674647262157249600577245690970718301698559136125745245737377885872521149180798613017224477369963917016741798082073738940229790699846953565810404898886589014113806838686473578266646279971008706391431838104208518370115281643136880209048604683653443886963585588266201983892387253332203944818567453738853265432245998747056061876445732294943467105194300520126503812661883350366913913402726509584198047968418480002931594920564151025829937002012813660219806727233140151189914080461742659730826527327414764854486993259675971126539865358156684522482203989775357840043583324316462865435507756322200899970292812877990114226523831737633048817383324215421232319190560236292464653384519261815053372288081739594231062233517312223959865674336326526175052983654937584826079531135955433482159027770164346843775174220154854048158925738647653998403829405228219061435776909824330504499299202470387406120430120079093640865831614197966887484794916279765040877551610665704151032216889687075060492058470783652457508612962207357967437570572802832993954805983984299089371618898556555050086273056299210500608388799076832311240770519598911690807933997979332768431799141475027346704679810885534765833645980336252257852972066380714101689102442427053176429657921879486685975324709413714861378643170550764454878599911730633083602955091926732649365206677623361252718850877197635129730530155699746078400229064586420171010380601531967676148328968331836004592794612490202357601181130858953773983964149666687244752898714491122354887631316237877155841409399758153923772993466558038837886428208531843949083550556331229180814196429827576216209079937306887142451125578663701615965732461869528085967168288719571812907317985099326183850374304706937306832834728898712265408942469309515619505780156759142834999935111466977289228190333735613175895447182900478816955132547255291336516246459731728381702677836158323727797223504800174838232432178176082730937432154367053799911329954027141610976562623119871145572467948579485769446511313093754671694771796261237633899965516209101592437239458173996591510396323991703269434143127980117423646907788733149387756182070400456962239212473792289343835147112956992541157296556165763421745070110488315135239539776188465663764495288195257969772264851548131372175673659144860783843600209504141268002833435673018280984665165035285727938890416633495223136913388809725056863216689528647221423089760173307579148228366383490912029233209335064582257553847813435099233498508767903570486826563447508774367395378481993728044366669908455609533716450811226334195664899105800165311947440741059088545755569333847384451344153786538650306530019730200047025982478204644284299408676840850338743360910539859380306368276091309898445630926226872584061817798161540590659312733384827593301276760979880517021206461900191815968838245475874798969075772270148746301444959685356602796344718779204377098811805990349896355945903640442042334553477063831720777731727057302175687705169186015461071973106886963828089986519342708211874297521228558818207234778793088601173171686176187151325075685507645319466280518662084740081507427129114496928077717133338222448612608330652554874531846914370315801986517116599775843616765702901965350414057304201165803645975324458530600903141211254216204669011060648385206621830823808661053052392876986506970765874510763415385977110771559912074954775431464953562313115360224047119887670941298039988304727366251509420190561594113959426005553506460055994233038686693948472889959831800980215107442795307448614855267390879819194003902332727316804941863862572820701482845182735304001035353667237165708541856090088367476820903980148264956277718664806977266987008237000273537247647222515311629399910246822497177265453619702312792945708450684482388137316259462785300525416363417631151149981816566175041999826728678612700441287401890626068000055519337669496189842912939415575960268264372497455012257160876620864272397173946251197509414901014584661978797312263924731233166059966449885750735565601877208136039733769846584976023009376399230314890310734044226856092109344731304623227666505390255555348907262453139019950752559889303631071857267819773479294997766476882130441417825617671741102045580426081062921594714878456968705196025050451742635582621655247654376988543984297169906080507170450895462537815063706104665515221263692583282134127768264911419769086931985184728078603504784397745542815217880869966009164148003081586132102708519158578803850190197035088483638885356437340789315212512500124637546397066250575291605591402377917557494787231385430294519915029556073772853943214012147968009375388676682864780422066925928445030008196661560279173826088323992738379492580516348133455481701929226881313000592995520624912437133503852374684249349545984200593299706252295051686032465237858220275442450635664655278998078878117629507638152347537316060654848625479767594380193557179422666420969652230594873252866128287510967638500214865233872725267481232604896447506130391685407651847619251918276441061036557908688509737522442848171844303586760003455599731746297968127893663331516353422099115894308602503952773383478323589343054243715945619732711955097543690112913496507843004268484647435949415230917892891867403975968103366819848095118419160222971093505862204352517643234755456094908805240145591783865974567490072743619371420843800695972012197768110207345931130139285660550072215381580941267733534659371006851360484338332555018846496143709768438766026076009463726259727107278103182783330235369269497907027011338139304706935777593634107442043791205091295233268688231331078834066052091995297155693820473159347068210669896188547326296715152327409468740373813475912718738509529984119109849704818763545321524025935324036049980309767185912439272303783071993758758425528276169691867452122885379636592754234621408110976413911612201827628015286263056116601293226054189868232323562272681949192057653161783498901625466333030382709318733972720477269041333176969300926843515199631096929474068682239838720708994334080687275225604964456495181597756825162806623122019309638378206890724178126036290067548881144148581614230901812576550261644363501245772550638467648968917594793808811004941104275920368416036632528073500300073891880140655312377369734535631639515058059877581379832373748373041950509965365481342268701310233778857971345099473940904039639102002170677800039745741294757628774942493823980145044855629517520057154618424376386286784410190915846181148426010370165933232193475453830397197852045155483446648191801006191627712644261240801442671445984058001367658162909052112064067665396188359705736121063846355217035845592058797308642969094019722862588645228405589030103276350350577502585599804179002002160224558012011756475476265680211528832537303995028105531298715987272838062356076112804018042460998496179819999586399023919952939955481212232866076775699499679443097669274451084359571630040284615756776359969989593837731931368156175782055590452032346847856614360045217979563024368918143080229227264097151439392443117715268298002620035297702786331044825431131198082187703103084194362299956271213559832007962300321947678842110486874163880161571497704041510617475928405343311088959729225825127139256550828709574286586172939989696357484195582514974417912467393049143681106116386338244102352223443874804400800215390511626091377194650169293529075153587324209127641367066017773306031522264525401854409595561483397532825900795005567829749804875194959616272610042696924045513511356832955730203437228094011917191145282690242708179253284554660209978331255975574798184116174375803555246206831538387454564265146315980465111025696063603321506494687654217337448210397658569153027206036415931312088903882554811618271376108208575468321264901952466952390385844452994171544434102231935645050738262683999110938012654146160624764245982942707275245368001732246869631013518396021442775888665662870853457201052458326052375069992685767600489833049009663265669939010688817246421779952470933255740074837346168836080649190534314480628188841017255189907702443381492950025656553921101823206734836771565504775038664299042548088338327312312655055337706438744054167923294471862146848915641900818090717663794337905569441209499594692974049554906693477738557205871677889744877459044157824587388924445209829671898154246593422173155386642662093862733724944472231701024042627854711276024675201056495711187912939988509922636880118824916934851975645090794491835604150691428138178205555654869194094856545559820378738854912573842792897922161381986727297479042680562541361303539944721932474121252429817626264681661355540812413894501552695737740406866175150713939919587522211813339891998359201297181045421005747818511906919241146441289410254749089314789543460713907892711164651992920354737657917929583820320744788448797816051069045670044310995590090513314711584530761088638116558250978220490535777139149037669514304896830014063434675048977465840242027466590005948602874262510631089019528447572283494647869507537251885910563468941073296323087636542593986693606495337030256257777780811568027440273175917409036071901685811752184909349862836364816233826413765988202140808142279995837590401615544320867426944932243825904915068842408324974185218089783484297963839531450081295607094483232286617383630140577774899966995057950885363257542606866857823528196847979617155158241942965869219450928823563234099466806477225978004168147645187236973790652673461577641322851673669971525794324694555524570201506708737787456395845054092220643829100692589251427025114750755263279238200332349427599074524673635227955947898915753721249604740063452971602984090074388822198359863019747272912882861399037569204709768842625900615411730489837035920199232755951327759318260986427722683417213247167087095136359903069750283074185424884648334091382828608955185504063458816008136835792685907549978099441449048458201026614390837012315310362188624509409553654340559971006101566725196273809914108151367010888932423695666196416836861257337684516674996559375317347938383217198813372201433783178525505015431459880456011888253558664330839653595956436457157913690049131955953368200405933483680846121479386963388249446437180621886219957878070970272668574703850231052483306341440724594943864073218631804854602398308140379843769270718202753077011219900374080925093416443414931154796300080053386627121474421032238812714059052289224909963888398246326857825050527383264464266782137002087353142227651833467067977809791949695616936319476283723127441625362692888184992127997149114266082057612032142381672294626022971719343092149321918220520552196854047300802726816731588232056677601965447278174279268642622778785977488158032801651687720427101316375274351501977954523751334144564931820450250289340813130971110508652309530526535771792936527818189231256785129425395488505674870161335159770043780832261700928159491161824345855172090521810000295709817475998358955999069251662287480008257062696752635498229194738628250098075612661506247339594306518554904994941741381668567588889233403552482983838312895166615703300928699076839273810490287061717007548547298871012226964942811047919406491486004518805945544078556551620343698005865211751407058484414681093753027846125021665640724182886629155150418738744531997648714055402281319022632653502581264089031457492831520141240805072836666592654712773301943232946897240939866917000686734270482208279833018443112823646571602457654523536390599255472459989023721456430568642381377159823381197422597763070721523138953936546768583006297447724433120964075993480476067360874950035416720740390856041480608571143624705119117056654359363482518372287229134609856629045867790230795145509159544128866756698980992070072022905490003256305304122804973016547365518001649835760937268892325692528182190135684880873972124273529423820578245315026161148865499622681299332541371731070806391227628270434286973087691099685942343348398722853459877426102758125908289521105197279571086305343650513923709564371771536698549037910698420016929530295993934030563097874982833865704024287102342093034194809108916367258829252857328130951384823272239676826857357417170870112557032320488350680662929792233974263357115796656341481051846473200839722280409423446594360994609083177555903137523005505637155328444080139701453770921028073703952315244825377458028546739571406271223059852898791807632203513348260291777018454399282899664449375163651458847442583877408346884172615390785729271681036784069226272853678228426418855630636030218877993955307082592691617868537991449680744517192557600192873449433566299625039875616833837175522115231083208788611634076914563063903161081206829950882278997518433671676203842864218623080105753913570758577425676905623087315328780094954384762460291893613308151137293209213347955604029411208398479528172881407451366977431882494447077138257361424796024468691801938542334541055164517057562286158519317666712388489503006895483815995335939329636420801337342963302003597732235628431179116323779397747726162745538813817284240954641783866110462743768094770814545891729470573888925806389537463037275513502114865756401400490184826237181951930163702832035884181841747254888035745272670298324754195004797324234443849995818931496059322669033033667216244920915004595829815106728230019810899284425951885405516874889119034516823144230197450899842251689694730877580077104349741176523696989089531982072599480171797232844123163165046997691204956547080705800277902267525536214174213566751697240839303636349235775297231459528644124749144037301050412024983670253791980018704864200822063234075434934875984801493798190101826119629850403557699173114797929720760507707793341604978297639621549850352696330172399934896168646494354710524293487636687589315218216261011009475201351246747542549284455532957170047556976150967176270977140658651921277560543495361112256474056702252576400692486665991415119939366117029840924213566808075219462794856552283564058774176465265613742757587188627837627461905477045359532138843866229158168751934359373760460604131856208557432583497210511572736016859595695158553738867152953997865308170067624720136311956793653620699456973208645605491858510124066134209961086844257257794284726822004866900850945988859479313163169786121595452783624728689271974637405048218930055794835211303007192413145405192772513261211513221876695846761203138227058666038394786521221347319250262992623240126949883968419910617836596862277325117489221783718951979049467786349006059011594112344459455813017647977374258666215012423357322359278341805171339407919993861926677527339129072871107942571979883664923599151724096132677241814871316543831003938193988438547834307189294649869517597615461941911636424029343565423121965830371087177728405637831650959221879915840666081622432564813006780892426553447188951297048760237193457449586965493106405318118876296854196757455729435027424953137186039248713071016352537058463321114290091125598822729344634810973543905058778409820750537566934722803078335894330771340291135308218795405413125556361156490191034428390333783447335371692922776289838227628422840291648083248079426833088591076907619104170689607427345020444670752322804254537914300001914419752806604778676659671235107930790565875770611844086159840394193855022641363488195378421681575969403689282729193078551279186686033145610493218934331681854207778211175018454551033985299975068821112124581349770143825313163801302741547305684072587311585158703442296202767948565764062500437868405828788727237549697678130972749932774644410565314833860206939625966222170717678808857759978161566026765497323702181904974896812389972084582462068380472186926368176099961973807265595869179411973068952118450920272153383690115849025041449824300762665104633678038754303450513334346626180592436513876768809212277869408411146792267523940012005933593383533707776581768495938771920520984074104155053641555495025399017486213526087915924217338896778474982644793397938782851278052830152808863221408321933202028096638519023761211927771335599722458223752490877012779146806455048528123055520148183901170923268194165371065692344886475066208011367677542127031681295558531733337365653717471472049857884724734905814497026854583908946373138870013440300493082582865047781697271866567223630415573836389749757504976520906930803315490112882628293578812618997871715346883439463234296084450990469313087973682202454578283861069502621278600067038632055692766351418938282181549228322922140180522028135292629563953069873737419402743482725824163853570175880843221434408241783663058282468704978668257944504527569017168436825854450544554347752616193366561957386403293603277305290716625148085156197823567956744698613364501065681738106316933105552378311376901621508382349442514477082946640563639232368182938090486459519537922158066547133508652481930880183747163513207194140348982297206304402195773450204144234251370053794396560606551301188289089786105260328059305060900670645924429762203843256219662719582679696747268405740661494057230457794780090203158374156074329225733784151959544502817945502972842392854642561941911567365018756320555511021927536865320681926374390026147794827587939293806468223324486498839817243298063233781122722290881032417848914539830859345203838464937136896580058866144955994788223716724065294340775026769068315873016106142580672081364045870506391253897942741712623270290213569029335172466285982895362554084749499347265404890271304258337550626795840553268987607117979523729995903952817309212334575779007837849733894579805541796252969500905591680332411588915235657797011025520171964593146808006475828228376509285535364551522514320758445753447299147767151837470733428566810289619934338910540026531001016602758526683035434872987352522205405591546507779575805457277728699124261788171775188580824950565215366747255445028409026384787450576400749370960737222721084303508732990916832308969330936464353835505129008992989984353370929211983790945822632693686120710283376215278831229099303609592876232155578730983410470990720571709316135606135606562380721512697720655298683091475405050149506308532532341925919871362979291720393404670270727046562619144663264681669561225073869897472050483325781662025417255557722363676062382843910638564257545058066969498532672121980257846931721248225358407936197730315089755275114228881568323903714019016299467214413977183649567643815696983505893450884174502434233953287563378159604085837101056234291517808616606421275414920998716725024390180070394551898155642803886922587429772552775423096753188457815819911391332454829507787454763324095816314597026702479965730791295612324114987394632498344705675465776843857797852556601309927085058212581725444203608289955740410814877273658412007165184143572368491838826238000973333055161305897014422149206235330441930993480251305753808808354227404120728646643240432471264109706240672554154387047734624986242534260330170124824046810275893559633928060443127684828003110777101838244761066037771331398075279964756375973098515243349169893804504664396796747417319374523924943825430260356238840437308417124738057464325007474885084774696041757138652189050977969537799558348129400880712840836363733682785056899600456230727617839155447824503688542348982582242937849767062455590830285452173526011131954252312322171095710493847171580919506149901993585749896827153551643525810657997745400895572582335711512444175575006938780411688799293587333343031853588326666511118618368207459945242534212261884468629742511227948530654002381931106498201338590817478829870155473063967543163959088199213025887900718422342147927165432442411021983129922741684540116308757180053691724895590063405732743819020207550934397752021891064184993442919436738808937740799620124450892808124449757493296260416618594533319098687648503684148945722170553639733308741436006270503426433639265653423254708493960726478365189594838283798621403719470259420483793735444790913834251024597231380293411357620224415494883950429424536953632548550534279785968531260521169486666090589062627660375498564676532608214821066375851075129826938324512101866224090161487463018379469976727631654699887491597424118632742944709747988821138289247911864089918424309998409838231285136887762959488360834912819821837972202991564119813418186845551582674483528034851240334881199049576142315826058010665391313899830504329821178535779725615326863921511277165098813824152881410070148362070532258869963957849481669652466753525551372421738540658935754749435401974146909271362853282538148386283251922394506751233670956131309406621058920522075096242302982667956664694090771962313072768223286793926176740418824352582520530634753659886711717306246561456985598228420157693005896258308991507115595212664988846168254053379689635074281875488121409152622931223149795397160376477260764726287403757348403987562891698001684206265789631341204583730741089721497023026750811345056301576487708109534428275315138540532896856393874740640756783823143795886449689546152025433529611951937030112813634398085729633285776038941625697421288942793107475033415572096517794203772444742857644020713077951635148901078051873328188509022763622573635311852819439985267461350537310452812616322052540011931007186023637092657498019846190420281346748533933626787881351718041556457663001222323884235651854807636593676923054653473367470932146643886416014930157864883612407066570843987151732954515018349391007022900375560797902259769853364327053007074412597050475892265859232445328512589889821730024230483762288308893251554136147965729899936856430366745865239482789224500891050800568096697296208466101817565801921794629677303353316496510978914833391865047700017136860701415312196577648526200469329397655698673602467692000700837983687596151325745706896061715923972610971630720109188130791541297286525195504178459524263339879224442356907514998115205335443203849355717472715380363759583563396826607767126677090797574694859392720342520804968766504014583029518114883998823562891809905061297471675169817662447460178230530596281080112667750766337575760951981195594277231123638703646267814476907500916104087852159247179891338547711864760295611015645215925001285320796352780949679350359420590754100923266079296767233299603368494432159880434596200422497616898047704369953664582268218847708020541658782934986153789451575022138516117526719203363550591368339040272739421809923444891623507930210653768319810335736107590217914283490827426538489286466851462696628123782289189709932303987022155458092138491256775827457419507011386153363496284730290534816137343513391111770269934496130777915666035385565519821548600179026431575636003642523496881909009688693293081129100656728644252494629858011520135518549243415823588039065354643722706374118220588206083377099051449832649399495269567144970542756191050877984790354555341936126725222034372283059004779172467659692005851910282021985225017748536359733724379321837550678177241551511699089179257818321494699975328409187841782535411293199508379326329097233602888281582042967675694191343592254717112463116154070295876200570493247310381255039045382121106050458238807993330240533669992028759268523119529274075409401578178256193505329571344301678022870038496658560877405089022233734872271186053724349213082571596248941463922242947341545987008723244703688115769433683392085107480197610543918580516973730418909889375568150686590755971654917479494096698357361834745540452297804718497046752533032236758046393358372396880953345497408105768917964759945753453429778788710764017680440986391758230439960767630339853405774620389316483257238742091039500027113111166310303426497411015089903168077506625826740777818455639294406376998141801229317567966911134939251072727440675520255838840358594876577040602407960411711496821165235588814785617359922374364722584489595905592106135108079646564739151387950804587564424135343700418090922929446648815846801600573926628414261523530880164961029534423313206689741803516988642872901296163725923026577291267407235572912357587248487012813939285341583029442642837415358045420308636841994991682322350955912066199736611952451668295476528436053637767221655836633554076966978102910391813431523239884404954014621031348002452838306216428927215780266983659994505290420168010123724403949888094676988848577361968983147346192093098229248967101308689098459197766545730801588353550377045767702946639457800327960322227230330705687251205020932178890149189985348695568869928565079697973857193433861588892823965960619762208020243250339516591919391490124075214562932571149896808266725176018393754498873269652198256678829386196123047822096082568281195752485006809683890951169663989042986800007524815337583162308049102349018192578192703020770968498259855600854296586608818934675980788513897798105274394501856751326590451731505298238242082711975545696944543826704110851936607548415109704381662333157221232795755651119333871931642757733446462429614516464075624341658338801579048603661285587103355151296667413379301940489774777502006787839601161404493759732548152276480745852412931230794672388870668284758826371726715745074491317262811282435599941298854905395504842343632464917445616663236832331872532740462240855142334952343110746341254044511960582208993909483861010423814973047557097622005041557276821272250042911018060191772299668934293080350693428247924128055510148498362759478610182808290651197847418808093906175881864725431574289904367643909973572561191316681771635962787137602838456618132004853366380490378939803734581347037489524621218985379831324641328806003828711937197369398067409373123028462816689881184978834612311173342471693942048661192472184276640020945898631074878485349433424846505987044762110254023129614350757042650165027330103674966009486371323124841773663414620073762021016722774370916628321190615035087289938897965330366588580308472663349952725716917851412680040119755762971629062918202376109195563484474721075542597668564776147477261777294282643456957295278031893965783431609156590818981678495930931521256721200663337860515360906199573808777967609554863799628392252908322539623582032714474687076059007453918834465638187156057684406130775639601443743145278103846790976180742785105886423885456879995240406920080784745626832544584643263479725960489954886342982208824764318793371207458867540761165165649122968056394139792271962156085126787363209940323448911916002110438700599359944744140535166205659768730072087825905035869791626960270030446145311803464145750792569940276232251653948752383259915852452937530761594773467307590738264904835273394669836704941827575250177767286515904059201253541562439767940451929874785782495057634828963389762102771337163623446982211587607334132667448013257113431133005569700312592873777515384476464080441601074490633505631083409625559211361908187663532383180781084953389271849483710695998334282475518847131257934691526104138029372392402217635800072599893460015439240733708008000016645550014650482493064828136995346536452541672015949926835593335104022148778097493133038342002580107054285343737186315366829935667131915665493727915774810200895504061081541767337283008251933679736037445037392475250592780550729976467581863601226244935246832035345630420425467986719849055341623494327798307776608959588091865703293258607779687342773443845424169682835374087185414355977378355131649304903483692712674937308300794716228572359921115902867187076837942138384565877576574369735085986300229520058872061358953419718248025394824645726770297492530651430760898225892742240843171103878385004141553275338419850925505600071769043240056325708965260153922647156174700858351575067774716943334370537822314533838827019793528266877350477674937784292826627650129853866435946204098070663635350789957975701125711595724417500704400599378018360738926083642591127277593846804700995153801983637162102794471753133633869923970129784290433432391107853340080376767769666896509268017963002606529641238206934999873135515561287811134776022522736646224698199371973304053827283952138844427043785614931896542297551189613620164071667329824479213648740959946417668732316946888628124308339819419569650602656963699572628836236640403456003909538254727848253771387618422581824404945437016239490296854315828294444869714347383793910325130535566384152985565262955361503964811474979315465485200978981230988573344733081162024796519630030967796166314691762176062254871764486772234958238611420175471319482496973138353885376953843469374665126667875578397356112108096076582152759883640767447959520454720707174537463285193785803424404472019450600643738938469557946272086497196856887233328498282648854414387637797989830840543191865275808137242878277969005264359588134283673927668150345941189248403792851789404539766812139833455002459517328011251719075677755210665655386085141715494794471156560206097418402496455606816865468914732034176489205113331070393285235246555612498333948989147376877761267092259426841557776465630035861035806099124938069569385833415843465599419749768233577255859542091099007563775847454903338406743797370287300647318244193912437997794989089236292896562634666744884078484075253749069161510500719946248928009304726039361791370752334166876164636475293504993949771931454453649558971335458821225247573676768662751501733508720860139651337231700982161043889593373944431410090321800213134627232241800297132890425922758258772034701178065740318162138547255779009825831464439549563423741890717799583288947556416427503657362736071756616710912696107519199840251242461134803135386290270238752920970135692293273941176091262628477383024452848158982380364027572780052829692874912570046012306062664092841565333465452753584518639884619496608883554024214815957542016258113458137088263071735318238696326769908499553809851377309006100872568053727465769240377170194186988796592855354607607514701332413558589629176620341988610744401462296549606126988902778005291911072295244233763694052377426037798845421267265660874092402971076715266649152054630413358163066691636895913412508318150715196184860211595827249919956890110273696053659427549090442113369854746114379735247991399042124556673035551302878119435744213691135187719069578030668904467489088995229724791408216102593792207467355070073025953432736079291380782012819272326396585890891425785622521893044110216133408311847857860636876046361303044841379178361588165674153949990842943084059021259661168716309457634631074181114796275907385615621535322965248086110455240795024220193778439967088161581454169980991215159367038235627523523654712751383308588068967830588644089025363637975561386695684614382359447034484807539138824715109846604799712425836394963854456921602315108311745625733448730560479143095339973124023619340523330074396420078141526876644318381397559499259887947062120655842127720696438575970489958764521403373998814318890703611146623736422908065620569997060939771157854253728545076924661902255839573305393817565821513882376923307791801342613031073248496925043277235305241215987645164084120888871767995101714362625662929271469267436693285236637912067297596029495771098089538832797779239906961500974529836275367548557574947102044274489650451967117472259688747281289161805292260808590342816776811819874544676231694280620345572801016476336480306842132888150092516454689211293861563808263537841083101819817867901709853681408618462135632597716127119465013082260013237093574138272370224256152083019985399613235997670596259297310959970573934445592555326800704172201792563075731653667623574323522734642413203067662582083237598119386937526462267346520720261237457201135136599033104388336123346258714652298719227488414246342522321129901504747661713775839426182928744083204887843596463565388544002737116102340181571343747198325507779127329130852189901066122568048386434522784211689726954972674831370250665201835197424761799576132624595171692667685814574811427866488518928541070156845800267206054578492879572898786772212662045587571470133338266275931784131116895184400531265417361757947707592466929071297338285527334013449665893964627456476370662321535270889249210326418151537781377970938952855749380401267831849335205585593397544003793254666443705192603548950773876945415634830174021315605303030744817148315488407481162733518635691485980777940163930760858644294358079835564683700526087487356559766661679992107548434772578506010940641158862947879947046381575696369217668479956669487226591994520608408081329183511669691687026907702337168868704288273555893800151685413961617586726886184433190417529999603057827187401643207163214167743312011826552563771941455017005485598711261768957621867415814559296575599912178365150634491720540840000929379332837676534289965780953102444346253431910908637016779183831214065484469405258059111121997677916923079649173252260427635916204886631654271061075704753867243140812154093008027963911084784935114112781056585609114419879398540556315551458358444229712404139680862742417133907499926341675053129996646860791254530118411450410252495210554604947059475684462719939944863361249823366535747765378112853506321609077860357379281185827723313848618597467545925288530064078223662410671284207867537605716826420069450980174367141588716192353530865071665157573030033263923926239409866782914038134946348464317987821219991944762309732543395885747061674542504281780085704403278074372499703474867470110583322363775258883087319557946310763720670279285139553928947560278994636006144257903585298939069864437498483414352502463628082828000390208514599203121789628530619829347826126152353454996057670835567205774384842716977668112195204623429385815270396986703068509983792363587016097533601863052121101856531241779970901733715951260582728121598233946895098364392657359705430696843298052380860071527811408115490734099582398994554939717892091626269870237231015962578761742778191132815159848033417908772814841595481166555929221913635770851816346659982253175828239130264787776123397602284797420824378927025721775697790502054349677360356607819925140557355746776587036032164896689498479844548786255518033085378259725492175360214803759883943906053820001007713497820266827446122856357569374298129043846245673574724205453489103076951250721122103261052880119914076384440612276879865772922141079475194049307790176238148262512082052304158137845548932994333863000743791994120900849016331726475650568012661229692653380048222236077068637183061592384405338654143638603734970565516344229710202420244850244472776220954114967245277749619886766062529008719596322969501108549172909167601438519723347682537450196519854561508399754136239061461247392513704800609814858690668692861866800557479542295665541150367456377867243948830781893058885182638147958093349347532307208610140364071156222088598794962655705428630921749495179307127887378950100585323448502196511554682483358454863604798072561389687768305960752612595566650279692245893973623232830297495686200867327119653500148831492242904963293521946719210011180618377440201159016892169456593137427548394033603271778664292951037918156821259072272605001085665987919852705736897038704478932567426896714347248286462017667337425527399939943269446611994185413317702287638238488970577094357488778545779490860617208306214703712447169401354008822453894788230832403231010025067805185602507948203889575552210564239381133844083390638467508658231750430690868208401864466171184934063144666124482092844138808716207336710484500272423359742975077861089871828381806648417142700090411622601751510884941629660528112611335808009889791448599255633364492987229348151140489185019646275386940095650774812514711941439467245980074528580281074201542484991590969663935141310696037060330654808975678092793318675808514248405752232291774194717366421836803266064884963409544786834253789574122684491990869898533290336977949972945497401479415048647887629050975967161616638568017686912864944926407817408371029682293180114199818284481010320935724060158359486136077527316071017548368985680047925643002614954591538975488834604152992033006083758976050160243822981199782668627030407530389948688178115956433281965972054323042978825387572318880591657493269932126761070151895519823999386732853234419686481873579345320123472865096920128957655007782223294197326158109219362424105928921360785656402731056252674482309498509706112695556657216527900090176829384832962549358223248256554290429529825686202932409580348485186349470887333187337621920529753698368701755746684406279289452034053183755343227743134769840983751628961984292195392590228250131131479929087673614788691227220944520106514300689311591334723252042130316704302033425344714784212501783212062626555933130463413982406229099167090487877161990482435158262866524251226819120822924251958104976058350368812616955163570561576425710047415874386163329296621543298936405079328552034572513691428573914723882602494737549964006016095313514327742187687180774636168365596123362373695614892753483446635146471377676551751019377885622808313049088137440123031030776215662953353657560133815524278091796069887774915726269434007916839067236863070825577759528134574582474944546328235367119656733367471483689504512181916199066130665434442171003700292184499869574428550441329432289751626216915515728839311905564783035248973883367432400874665332493067729040624696002491607149780802099856957467823298019997095515401460764007609109678834256132655863922555059304562186985018672911014615298040619615251647207461364845848792198920746859923765660939442307450894212060883611693710213911095294821095612346633504542838583977579492660428943579914007720042838735484775793378428355608842657206867180431928300800001310716498711991774572464670825332453020175565539130744419272637839418903808696805372269980473143004417158039752592302081713624728866630867811632479107093764605809052266059734671783876900194610157124320999892666139164295375884348397459797521479294604345221005150410754443076839574459987798371692327930011546709795282838739101532534049357659005073769002156297502625702127618707404332219502815360730999491141886110327377598490599091194866823607599874110439631189233470015175156455980962392417889725065318124741312965423196991550955525614642543103738483378765683269907098842429935457067879964533457107664481570329418464941106875406019339008639305861139089368567439871411478592895896928769932059704483010158390671326184233371321922000009998555093560838658226653688499515247108925010751616161496705660304645572136344250667872274646922819131798874275234517521296842024897048583922275596409678261274956899133866941641205671543159296378773646003086124598813784251576678821270598571573021852397992885526749873112461097176401321859386523336707283503431946907124488393611870665570159742706414426825682958715038261886074018567696816485330669580969686111668969635517299880465705532730954269281386711052129253934640787931052904099391106667501672247463196123515362056310919007852636147832929948417042445297377386260688956057401752439746276651729297277534970970939973488297668632132147356739317057588219143323487768143739968655065720127179209750378361116907900167796477023079089997253472246596186743902012979211671793233933944963859839593798878379937713488980588041230888757667359554066391872436376586513931831378335916492746423397747686314855309707887526409384421978597528819600816059294683438306270306044243801189262959839938282678577536907584225985615382807332790407985029142448671297448542582012961538437254619109621573170527981799179329051171986930842915178250008230326613595609473636901668426448880535741611806221386790766859668769606098458830888389777032425376876919642530555614709048959412320964775954270551291942091565317864524421172707406155857837945877221164830318526088825868230689091393178591257712357244982530287547233282295644092898146424400277268996120982274320200163878219776094342251117048139776333575789277111237026866645921476080165438161299878431173331561534137105138970535540461552120676533712169691624900286037945654684461488677290507968800894254394926740936267524864556413547625510027784285326804212325510907627514814104931047274292264558260322272775199330599610404858083462633031590296148825291858263472336193188480897181319836934952101590810394498477032089589307876216529097213399501325884745757839446287519034662495422773434139439166625628601519029816970973229474356232509646667854201358644516169932887762052679273036176469854669131233735873824373897493850516256220973682424596077344327079104030066468491507143893499253771304839153403378860378756433595961343223927010060007302859823558128682816173734801862667209662014936582007486097863948955614267766969189597940446767422585229049012373691907140215105815846719034891821270886515353028524187699274769857840300055861519518995375722912694938553701365754585610537769797010581827571260860721156178611374491868308465894217728302886812604752804673962368682357771894251215978726483101601089310389531967800118171212998045238597137312227659448089789085858996661276838717817984082572203982599126737194314475489321432204715403848730434707201289888747041108503987801801672059420557119693153289938185074983558258463928665999803409614819965374787749776771726000922866391017627039577960700322363783115116439541904585703916869046124356328395793423455498112494880206346902986390548702826173701003545181663914146043864093121103092449046549938974208914174120906253918618755686810476090733159936238940533460554445279302074626668519735003833769495096180272520031792194088554949941068512540968663636455964640813347134358314724702276386859587528836549904941097239941384306037960613293603906359696040807715746365827683062397300103453576855610362265074928109425308296463382508474818429338182116187731917484329829401523793689738807325154711420966389048780343809207982819172751862027780889729305043696729545862798657490541175010177186248107518238402434162784062615960117317311456049926242679376955736343261803067451345935182455319292205590165334949482595187122481689256243338765339180572061988462267123143961820038724017959820270172899576816549345218377788787390659692536478756275467584006707120855305616647407873573269869613063757011123228267937780646241582448691050851453517008995939824766023216069705971170959371805165801582440371916470699676535308190818692910621879667857312730834868106802301512608199360819001662805590807689983362155447021879292038999231832607141582209163425070373847114496619192253716170662317578363243852293416461374978312363481165089973783959554083404672303525752292899237660996985746958960630658162418238542856258109654633721555462225768260184880552333808419833620012085988494325168834944072113371817436526997520218448301819232579981986099329121203765101187689976419729976302127353064256593701802501754503500225081833654611529487412328446844370452606947266250119731181368871076586936028994666194695882348829375299815860702041133509315965822984081081717885648987636754126829993669958819870409177806465400737835261940862071900282500726489884609409854823021820600557818066170118333960541687290606911993291387889352311425847620949941548084172450614092742073243189875235335415813143600115156688524661117312310526171832404457550042799049804795978908484574468288511809651588882706067953922155992211094383823554400665698359719382839947319931868967513673695692739522776328810428799387794765586031734604250160456083003762701558911290563233409100450466698452184720799169488503590352635091984339963158042048904094536067742422311327027142566863788753247971508979364390200375658101800234687033709872826151435285972220634445433333826548305103628666814496373080510540319924038337955225984052831220837984597070913954793613371958908672405607918345011551809313251926165646511733247490455413466796355946331761463055581047066906920244057319470112487761709573270743522997569484781587018060768558724569035201856367931703236783483333788748401304253121807727672504723163495061046579846042645650340129344781518893011499716895593845470892846170828144466209163127703361482386136701797087247040975206882074621251520956631513816004899824276652938110287583952731703240694908183926206771118115197058526578810685014193088269983633957395650823621925968437400733630592024412523697108471858049870279413064084087370347217690135498567071153013165156020984015821582207068401041019947391663502253243140504134526085415010067276162280094296788117703042551683822449771068586852644132665547499288090262251591781995238257936799612545214543313509697996838751667694956775914449685174042555176562384282773418225882575243113356668175755618934682219483084279740074673038585588938222686524011086867233044399523044590188616628126204946102316654496847128632613815800343513300903584947972972106199730312498466968866793319201790470298539576466633841070834097031424379130070213818698676580411790620112648075838343192680332680034064963522693259031417709931339608695219612970419328132585364956861423401850662297976978443137814922490357749539967197917459705676824831941103793610961068407290066152096988947800630445187630631383870869800998499695296735845444845782173867541109373114828241051962485969415973398289438883444125197189922942125414635948066347207306864992903630337780186091912763563351818746241739329752476506444881572446816635652377852390282802466446749054096110201972078593680743075634223196842352981575724685809348237843004911593447650084431452762668532832345590001538405113275975105123665608902786060106936119367369525169850200790192076350067451366736661735334524699067697893416773322353021223169363366694157257720183331400451238042736987414653978110463833464894568122330529856975899114311766390613953746818855875341846235173051458622735030956594237212000103377824668762092395685345033731322442956166848857456322884420854822538573994465304516998611689917384943074169549045288183613770201030624430205815216128622479395434861785290102541200044451580135853690846224927308935219566009628553491825475158005026637076637724221390838592780890863964584903522643268428962726800705589804668185779608676734905069304933839735580205727299573956730769926164025136440003771267808440768532022166666470728243039283297623869749738328161633417877264999281421113194974197681143445467203733029021230253148288048634015068808114606386707993979865248348694508775161290600668911603156131046070854419392479410626683994418220594176853486631236661964979950841202028585533250844989285048900028308461368137204458533568048144470428135108506473011442144117595503957154410028260788316565765531120137515111480773576600377326009133236658608930003288021901269090751496908252668089899958140421781010554016423803688111545342857470931966696622614244214613069921169698011930591634037659797945904050260085121786084611608500286078510811026973237260742158705098258112279232809992735717116453027869285771206132599790079917554976723092826193723990841297126028986782223482146873066342112895214987825936748650043599959486749996907373619867925406487817904091377402158560727730485138089287018794918358223028894915070069195515853263403309534940005187594802657072556636326777925439985094032110774368093298943714132478462917775945884115710892130859245054982186689123473654357198460969405950704198957741937281482347503432583499174528427861466098540235588443061181778205559509527816615184622293284480067772331636122762214637157528004784977110381296972640496237277933633755806601953091490398120692589717623808122579673804117052027614411849089190806841175424095076065842117182469626970422213193284009123893799582436174141200741505188750667153177140270122561345255961073867572304149448956253736929234179229868376948279678727657456398048171597216387392949016560186257124026084168029731606809332946919628050555057971375383056488208791212745546445767315799736653290472165031059553392923658822552784048051725788110445876058672323448271320016245711284682365273397550404871903348457181440337574671951335979482891552326864086323484772591021256694793823579892913165258393359665607712997636987821763878838929907559590474634051361254071561579630386175241475974148288257375258952638840738115519882114187369868471311725516650508387663971133527488581909023228484644566104173774686607647845889604953258975421559823417978164526218198226533150445604418795918924253087175075142312286692612198141886497951930379247037731940726049259523366552832736798459871111152102211900022683762578912711080585627742497125037812953440337599803593198193197238029551962266081133077144951127244787629746372653234503605030868544788892325221260446574042770826263906542017462777207737503483668482089884223577573887364221737470511108777159591365610411341286484150058249777612994303530988255357113780255210891399447210620691641341538475358054879913001087121800078402663822653937004295794449120861171801218081003395490900044048443374881560005563317493938229759401363891777503659196892274772611127868618917940969165767443295006731354539061549003872028044576710863378120117403088856718351225575010796124314237080985334455403086328331444901125671868101145732538113714176520939701333073407847649582264602792424124860603325006899249708294497612429213474346321562915075707606454898595015722434610882557618234313305152877848055131600052726558505896389721941637031744764778317984979781580854650910626041142194657968768784963991787970146385995161787982556444478993720627391178817885943827669050369594030436945741637921802100398787141821663356898790402172426845127128074226750356265968854441712583183987391509796366379695725432295216840018336168842264145822955035744838026773116520894621458732710336568469864654171987108992561017108638890012542686522738129314092028462494745980695099211918033036170673668492028018601984925394073111686950130494450888550447438794653711345713922081261371491153330568409412203470600686108466062143788935418549042901919016024544675294435672824577720063977447790612948362049055644160820634652546754460459654210742807181960020604345517160036412967145664185426117508257183043833896383628035251612549605910982590892265780346368494419153024977783696552353630766023272624312799634279651663287557464140662304514331717347508588477086455474356142210041077259052814202775754025699478562211272209442478648238493203138130860474468876954783524068811008739939173182291909078503897046228143560620946407373780903073077906767476634317787148482221293542728141477484781178253498522072393937475098339954614923581800207129290220438514240097656929882817653663879370512435995860179904646578245251815999897953754132163324984705455679122398457032666034826252198347685181383172437591964946445062591264135085644925100259115725742907856555163691533892727992161800586061902782695925396629027892491017157543112716198087519344571131567547571275840363454223531961029669291637145317761639992592727909009796392286266209960205048120038000879908078871363639106261279869581256378322405650469678820158278855375014806664962328679219920269964853853047493830921381614997195991699456303306935343717590772781321044417404566413356152090718921677810044939677536741018592944849757334507305265526518815383575772994877386987189264466842733320250193813283837665722463529399346836266482347946472658299855551394757807446527813145159539186550044922577459870912951006322359938100596750563749677102384652666446698481949349659631614995673310581928050354231007540410775733034229169985553024247443000339151883161507186295825683232954826056233845515601873393028513432390224098480621394464772892264751555251124844704110582135087995037676059737341388582283554818164689442927336275822104524879970139962075586642120672591019881888343311949895030434515245777420563035038547333926738072761684117899345025100326617190289462614268357272717240087590670025608230203764868579057759593367554461740772438292387479735588872344670394073107931706016962808465812504285763324904709647704383301620624035643578980088650061315733095386492531306136600790578258801457447223011904539545855693964332625206604445112788702357946098652724576811147889458927677716259916229102314421780878743334447870822508240601690373510150529895277400849301658513135780589392439229096038523974126906628943711340501067071729883241864403678682452360415174436041569988647668091359406324093345388011393372726086169884013019005695649567639098548211829673412382044521062091218880042647715678743131010433916997197937067358190458477863623819897549791830845923048973550691701635730794084047319990477669524412807743141074739940352619715597899455295985431745008988660141660852908776679085565895340856977414329291459141034365411163935429883104645920102910065704766754080404327437656470120367265182039150979634659363766884451131172502268199925223755706914885645829752333416458318833404455180619979844453068947527025181968621653301597328176270322203917882098099998399276223966170465036057354185986419845148607797168535996815335907508122181772685316259869561284001613915555004319534339324026752243412672798083588581711786611317477630583919969181036623750218858368785781089529985426095609321647964694071874460138005381867535604272490884989266373184821589247966574746983189224062963378744821967480802166312302152444108369466045800683255935106002595022812150808236623427407005012130652031690528538715889086428385070593660252106146303509524558976019804560912347490237585491264496994902397773458278071956790515731529685092858465100691019502425489646875952254322586124569168623970754028553989841208674281969477841057101203665095112624168030319881838033698093667629924636678772321182605757643720310941072470569328098750457562315634115769879737271267946227912062485213611234150018426925428312926806658991797879682647885283603804666299478827722972068118329781337015171522467518747040224781745088995187165231334333941375807866704712864072885731462223759104403467222261610167626284246063306591734453225147663411946154249499205024744339374412354456025049284984542459646748913365574654796880331720676756787173969452097621308293466143250481865528386231227198276223242604623831511852904103822018012573525111493484043028046294822491993311574861814116878140918635610937982725003871217892235558803242405400379526957561669118214673165089153091337737682355885313129049806563047956296184496272297558730929209998854148840942404439432525080220835307227937856884876618269433251736137996516660622882959553162414648834493665411973307298417442595886153504441177627747326508625458839167648056549934299674291738750511191034355731118345855457251550844639389996490755120785566339899812669031493177917876773658838054668041371092372348808188143675202721037366934688343253127201662306563916970015043312302799843333957289677080885694474037847955594040131475452566508636222383199348576228356552563158028248336863681689430312171486352975361390811996789486680953434665783037933515569144762491383743456609792582762564619778965012445049597080223912188267123910302690365146584036231707631943973709331101419964631442407149705022334507168808197036461590445667315547284223437505392835295461437945423979396411642463343869674984840494961728846877470030343254534985172514631611726267664467871038832816443300371021336220963363805054113747608118702960296366917171843804257642230738203282928235823735337268763753854433942513228418801225101139980029838129055334617812109870006188425697871256759211662161987762906530536193011056672033737283546424111310380494949723766173753009630248251948741528582839419000733080862620489468676614177871760959293027696479143075937908767519913655845656557400716414796774543148639096694751870727672765840842926519833913645374102326979848016696434995256780661435573392555548924181151468093203879400399238062467229980917013444543494535447725849115453095019457979207996472294073166089735099076348851178000663222067308325690965459501859016922070193532338903982413344557533464071240303046141987321955888397026758661533292936629146886356333233478987024898675098578893348740954016252538219537701107550733336743738442704751566799471004299508733327027653521556863219301498682712312896976506911408532409379817009679747516083839688482493425822990973211064835152323919503970425078664282708037279397135537997802058253407789342103981810096539277200293180272658563901574996924728917842686467436346133336538878750206751424953722260167174962949276412819379739099900885688104033546518579311334688341502511069474317108973839657577514536152910279017269908926531366659462946093705874665501897741339825737015903246299834696903534918088455137274271212321975996787572235229646193012254499734089656678111077555478654497541975773842714377777893495163477253265871760836586007415094209454075567340473089535477393414810404237806908103237091550966144137229481380171886847121337437420231211325683494597763474192098733994150567680387149819879019091282392774183969025550759886275166721547101414545625459475516659067833198580950454769617952680426077633144951279739212338843553739421640567745834604968555273755969234043158644257013075474173014458444209644642029467246342767797987704406978648570587178472415205005201200799827091564680852173595386758275609250411900219861687188968347295387379596136318446222242709702749803508539726385868665313635056909730448452399377743379036910582149502590082350365366668310457271715538633907446002279205293928398046110340303947610153393047937384267184029433969945999806721517276865068988593349742418788058188339556390500281458697459387433125425665978008205094258456938278060846248080883646204310678192348743614396880408285979315803436723426334173343897942597538271030677313404328444873881260074635808479889442997910430686099807268042741608831639707130354849562993322060456824000339979448573142035511262722327083431527329227684731493999585794128336705844682366259418039461103574671028750326850816366126206920935370422038970729971125355093072641402835318822477535748942134264222288413633190346212283805305185730901894710279649003984457875757933279809071424022937215187661496844467496196543798622963848406786085597240851848574035490046017451786981328290968170691146064912700890587544556418209475916839583094957815771409560702095879819289724489958187321269782318524965737333515483877729296849414020545239882673626537913884877316514737608491951295505683574213619954591329119063321624835491734722683545747362970130968508716503465476917395571508918028443820393966274369280269370219839449257319142746216448562470318174859955371105949381334307068509203797230691150278447999994486387601567453673575722352096053861860571115606925367052556495611105350073202011630448518177456643152671948666058734428109147373157953292122816461648667028840081708396319624673091032751226887440372495381534710981884211098521237599997105553970074747462452163145893348414357179377655284924933752593859830368087672601345949429965147130138467746997022992872652952045973312201551376646198356852767035333797657520228501731007645573184528638433135791379774446249359232325263310267453138915212747083057885555079730376506161950236185881239105216509337993123908420253961729840043338371541837855508978451539808424323568672981150011004161213185546506636673612097797187770549782242954887133823453708515664795735253691462603736587017487774560268303983651364948438404484485901150484254937003948891148437775613900970691197898539091982024941245779052011507248598460215083544135161970944085978756598877480664895660742731559537090835051258311780428288589745337028921729631501423279683902388289328791394455604112054846854690119062259192685123087166035010824995480889467874712282436702026772594755772367825862330190936508672503389341607647673276494702666929992191378050406124861802173683631553023572259865798364931138211826999071904319930673021324243492224869426302881134626088445896863112254891465400625810655813818312281522627554045440856138485686248901529227161196520905903247356615049600477751951867757309745958004841523046450667372745706712623444067025700369164526615325298917493401621608718130661327562954072006769577459121110374720344322881566426729319708182830027240204415868087037135629293888700481491848301512247662480538016136576390738090738667759304421803144073871571617854802920855869101266613830163608221588108772346596094631036495996265855735943384527203466608410296267419705401371192923926135580945286604577095875480532864238055674336732536063639140339708636740238242316575291984528593750545455731798855995723540169915216496491129552978502841848818444849431158680375398966061257938686474690597968684206120051080546835295158287964772947074507395137791890546426978123128395845455831064941420047058769935826822091039295088686742048342852459279209625763710581577354437211623301655601968848423896340324558743313261029289369777681118922398929724742418494450216887352101242390493368677019044589899101852801566797171653577241026342886530487393295051161647133151245394251808646665506345465298351487419926628167198865185144818262573570985370178619394998754025321883120076484893474528806184509021115611436503605803025783497643028866015314024298697761305327304308605495033813798617153620497717216215375131330397324156356742853300622724603337391400139297667819619188536373739236104709908665204152334208740143419318408530503987281302026537258545850595924436518722991511932357992296114850228382046984816466591291919259957957368999886239337142629251267220843041092102951927211983398941967640900507261193335962939173852921582197408135987204923713454705554971719265103352770356134582315934883277457549846131175017724721107700909057700620156859224868304835063592074549777900782143748052817648960607848754982315330465449995867846689280922427571893388311910855534871982729552795895259264267333624416902264808658815269091026989889464159392480455162943598773212276508987263336360620969511090376882899531790026772580686515186480733932508671136810526672956319262117505541083032729402776855464034436257188019673473762763453617898068947448786986078253931064710449863650243581495863284438226170392654855543022130191766549254007438594488511922337549102243819750614445837439086937832665228151629474383833106463079112999034499753161767686997644826527201574299514174347973462143111058490304491134032501368712156799192208985836265464828776422465556239472406536865427144620729721762531930851663687902993585975061409671792150525868287327309247207896387233317170310451166786077463627965072500767568329916160998122160303335002762244774258775038048969821483902820475531041737922882305307869271464083889180560858815599114349883608639122762215082610981237955583296680597776388824736247731967126757431819327115961451057934008842758440063064368475127880656710791045509277735897246130834682098997168390911768544128186817848113869605376945722218581515129187752839833666437873800799774663655145528683956474742472777513244282299935522204718495651999895867705553110150099334406731907357917765231942500522853710554490644330762600909874761666960390281856816572992228017078105982132415993901418497248165343704269400328088862881784824914580051964462128762191867929185274673097138942149398524708591652171151344079216869621938459679776379060846761242007254761411532375361080995143226358837100237167205963019313091358895750986817498983634434063342844934641235857542098287897256320144221435320619461487890941801552424057298012361030191185207074037850844143714974034767395089024076558125815888113013974453032369414968931438644190594899546588382114102769344505868152188300712836858714581620758349988268670504640517921246654935160331776107717221910870591248576538861446248107773454084988568171133229729078344251473837648232088309121948553876489319136809232589439458534200364246631430458774548461838393209790570132534647182810779136599259125846838741849261575868758355914613678574577790605898710174911458750527142900880157152636797024620255564361319513128921782128291088123609347859998933289865363188933395365310777768749319643435840689117378941653645482556433181563534686827584704611780047940020025964337680149480530791323515489983989698167551128333475899668645785969115066357333505196497809512992098298741671865565786522231292491785508845300770679946292280001545978533562972335776479556173335733523910148914375949769988038354132622069653167843863810198936059127275114025185430447947216316749143305159160908991950785329146644985668563781576010272139666481815400606126967477908989513102178189063554888470138523738835201646777631599601207589380073809438328751352740866413611121389738546745792090570401448678558933569846981849888876829446794035488602224133886378784616665320773435011906594082023622114381951921252284726002407798764895538284328978092539793821578886146844040629106968111847074830249178208888735931761684682240421792886308392496394217435064706250146366414540021691067717016629768998182325823633051120867577908743759276175523814547864099284258417237260718211075235496666528597275108218580122851050791271270045075018989928545381751026530929251677245207492463811912960212838650809655986450987434313608109444820815800092704460254410266160080700550011874868825544118619921772616385744133661027957238787019028671309526824142341520401409790094123365223338359879432159058517788348238177865096221159361628428803694191065974789488466979798628428903795024482367479899092368724459198126708773902966211722218092023224588444953812408018414436475312713788332339923961197423754877111061157629756267296392169969314050525996829656002254957982117947975986593148558854670232310217489636886813878643592512148991077741145889538767970891300635855627994947451316159896668785147456791813116186267641487460981110843759803029380365724365958192525298063635466881502954488444107392359473023661953634569833342499890270528523164033390944595090850712903560294277492460754853972535774222444799155420915691975976226172569010156234414953796531724541742531312085013493939138921711554284707279844911013110720360212486861826914837020124001694992093365026851446716878189817301224507334510074086479543426466656782978219416123484304729766511721702567524157269583472169533296658404691825081588821656358253604761440638722239957889404419999047976808323620174777758346560329210669961692552766875271325371798432300478101300086917927115990414739238725485092087961737788143652107765207122759249950446332662584019628640984467001821613097883972523592025083880720443754812026591785151424380110032748475751105044710046941710867556168484537198326730135457336428120424881401580610122543244062717807100334878954318991124341252584341463936628731155789368724016963658810094359145967026231651884676936360029873433597715184866192360676410776264415037605802378214288277411883392060268283265436349921190237619171400199922776559153522646864140642601414415053767668050193435937043273325972842359407096684827292131040139458308636291872540798192010103264572461114933129526794807699291857144848542323489366978564882196072649308535953019408588489097834578165119414563447067622866935994785825768573966693597114625622571957278650550420492110363700646072929367655280225637074279983822207200756457344194689120938025739541718209173423855546068618871811789654132891061758735692672635751719450205697070493671557034304197014036503392174736114566556591476202730311229864047820668939489937097663178795656916997455228611563822545682569055682608266625315146972031507792061207296262072774716017088516654449427858792801305355784413402970219206558290232655538871150041013403386934580490390028313932846415725739328734043877171949469422369209266236174098200957916797376262754756116110322320810885258922780614284700721212180305580433511959997063549291844743270434741027662229695604673651925020521662150507010752293365973914898030314452962936911391318527159120805430469282186872647066959873757181512965087303206707739665035978594978671773236248762897599462261518522175420524670457195238312795282406073021912397975019708064599185693389958279537964178615801550345740724409574385072584818443477121945775512051925152575315022013021673394995916126223949414067249665871703387320962867314205944686482336609942008527671000733918880489523068723560727621745354065720381010982402304411569962202391903024901836230638211921405962285423348964790847391239996711695174906676784370680389340030654780982633900919249253883610931086555316629114488050336246167624878930246385734212684709523927632288045607985853158020490098986730694565868673735764934510764752064641560975040268909293579348680688015062052386644117247521939824084954594218038213381040737552687481533420338297455378868082310260465101080234767646664381763972888019105518882060882271061613712294479127356942196903734942695388868182181956385774134901278480258057669859494592837620696591231693992875838971951026540881565657329051953767994488665791209567889834510870303132911531169018937877939348623566869139022056549824085070253995546943190585766328096956016083004894670460755342948758154812698823781770876299303040735090255654690070981092843854258730424622112355380834614898419870783724322673292732108570030329284965501039398050555757368662191688817330732862655201492437669554905474954014294842627141338438884838350670113544075343837695297740704811721052704433573737338284275935161147117337875753779426172422056055393529597683512642067000494064431807350411167619062668018847180195830372249215791208653456810715975059994159492002520018538552102814072200395174839944964427652640080984408648339882112367023261047667401125066319376886138043123685652029606372651399031757097873904862183076719290263996425335879222680479900245575036157750007996460990053989239011010181849516684155385507059116958234041569072504298102986279508001050828652431148964996382641069708937551369854157252594343547618664388416079824110721715429137932008640237853210525422621047386635905589514661857235149358713825327631731739562323967555058891426563629119576721950406936563554667697828854503151324478447177548080286553652856316662256055028717691012911511396484238414741525360312975878076454408005470967022412530879476851430973399009893423381623183189497818463107882375767573042145547013365034524726262948045029217461686220496374065276653117783905377388019275339691452523789703511994071813375338452221862981512541218483089343981033529048906527557974064161422316897911584621963186122912961770862270947595037674740005859925542134720219351061682173829903453226760462306796445066015553077696956673546783808887884597364389286367073771664191065811662408341628068001682899509896783539226856482272220694442449920315268004022282157454477477426297501011364757839650428359898390383343601304536296971649434135755765843586344725002262681486329603754621041177540939684834922525883834168827961713706393188778457365876328548613346204753182336799895363355367612993369494595175531944008557769920763648201528945488546956778165952810967055958283025859107696090072008129512319672228218782433798604034752028179673929117365048010605567964962888338685674411149378355947645837426775524071654062580127974341307080196770254719490407424753599532889407712468695591585066629667360797473830573657600635238178765898681180969086383801822898994828988380478554042151218224866384103099255518771672213513865144990834227558415557542381521105020987325514617902508455175260695569213168852200688600867962325210470605020834849308804156365220156392082906435983772396566596429505981525846875677534068967599166934946705396357362619478360004710884479719969125444087649399099515024188230728261037533833802835741006737488530558981455708466206078634192189401903381990418220072343300015752928786067425609557881942131171872009516714367309349503488946794320718159284079381708133074388123519816296008753123847447913555474709009717852273244144653946159227477320292230538093109814042158933179944755935615545070845096984591566212265195238941410885119420463671540513746629694035739457569115754150098912705044831224724000035794218652162923483295605565835744709159469744243927594113626709854831251087943864859390245823339294013558574651479652222977301917013081017820565340669081867130443175535909601699277490601856340347002380614890456836534318358535312006501432568180664823118926883636055082596475661449752555305645901217107227373597472220616870883414612855689560610945130558904087215414861688243313612734810852465593302994200867321674817656681941323692450458572901167958365913904816983965443709060142452778801635501519724437184855248173564937036268504744699599192258604740819906812489007653093539188662800677984038847998029866968381792688302200102651428311953991596524438878445012799990594240403926554597665681571412341934456002661356755413719386856846837862567812072846843972898870574088284483512237700135632554104486714956061277097891277843880577361422756536238735247357950903181218657993856712838868506003623830395518282139403860101275984800485057688692725497174151932225234771090724543161992189061086305211682686601483229084770010877547681360341938191914527457576471371790015436649586429799350087152835090797331406144038776313021732104150407815612278004603964318690492813050775519002856428080416111527945617585395637070933807303063444355498909214121351254742961968310055183997678087034211179883267422527061940878823516376486067587841205271119351343526228339180709299556724575634331852822975521570485594627873865707736532350898247927659604931199919364021457766345945342140262954447160923398474985580282298939358156407134690438715046658993762878454009335809871363854127492201771025439327613285116192206613176465213228411955341924976193070687860315223130959538084333126734148106625290914784335387195315856024600186840201827650604369764286767106907780672479895437807140823868935431326421344595297923018516970829906158874068324777399133664459948897717944376657231199311505975386904850004355001417697416638709947295672449137477227387894541975616136262946486427619850731136362630227995964291456326457303046743084327168801259730158501607734751541193649675113611397103988007488792912018452941812994161825303875969949172532528550880180120121356437555439818522936682217826770525087663123344173518097809234333059919609787042203932616019702046012949666397775564958543049820996970608324402144489457348329940464459235034562907476646407679760136974831482248811490888058675304540066238421198546812136640185405133758142443703486162732560530925754195944675447140075199822302795112284431481168429083018708700985470042820474933440928735279254665200436989647481972496282816324133056646478747081024099566069594042359393079075151538059307710455026941969439295619449103904897275844796954287909145649517284108989124582418923137831807075956371464660882501906093895088327248855633001779638806018412076648064210403490925474565310775068337839960543400794581702215998374562336955176166811113134859480704622799863758476584945543363414379778366340256596362187101090272007080464505066308649163418279072861090029390568497253238975195606240084228716886910446284654959333789696699021886133147005976303658830368631748644040885572751934794738801214593799261240990954592102197687763000696517111725888162890082874845220074264493882363534930927564695011633913992875435503851434258136545344943946970568569998226710797088662229225877995238028291638174607708602969138314069780980584020272299143984966822558103757374046775754504643937269191042581342799401783056317209532279320733768521544618361428078584862916059568450136510595864664705884710015542095106536384729102013529239044686039053727936969495525899386959622529185730794471627323687614618144064696800928276505064751778150567930598788392983918588787421227076647997964666730849889508133222645304157949284981362513928487484562949209623873545629808689461440631268125999051398024468335491050510336257128934737471343396545678910780256288273796940349472003962735580538233428202841046566541061663699640832718181406479193569319900356942211016372576667477070476303097372388663087569129899531297103045467270334701418222598755343008954025160104217630442291823963038504074274239849560339021740557662551281757872790715207821933436378615742295603418735945148872684975078622935226754036286237263866625828004450678934513975784183366707897663133621237757598872602120173218887214168160098084690619342177177346422042451339271032973752907948749372430647845628840117800114397280761254725569139696036488995452030331201811255494093960826644910189158528590896954679610892912446490102484077831073912902918066192940512646681926712217009187806354271054833340707317078175950184559082558337102965824213383547937095267252542008485472282143970684600059436524643771440679871374599636718828876050823255681400432893005332169804303939821833065277020453001457403632764339675647057861326263117817252270669989047377255663688487931049660361696614112158739280515896236161564984487085702089930043199632454070858531880654520456113487232056407685920326981387453341611918157974151344507706955417282512297784270527687640735063539283443175527132307488228165436431757247296146003133547091324324985771498941563676148615458711802489132263433989384084055412883882160765602742797602548465589538334100285141984644016296991572754953945935665634246740291529562700636219931724953493174767867402062520820563511690979692648852782463470599715103841062814796056339099646532121076724854062629377101947520034566297349522287651145355279085781158264045850974609473493434860555824320412384147386478014939350330629402037876891140877517485086554398371589430108867691375554356888171110592003753711860261456683871904897606116842488381948862359129551516756876590864076522021917963204876667603615033975048875725487204137028267851239113013818185949482894732229050141382232748662853878282561017845052726244655300483199311182362333486108434801798760350909741800788086829941711018426143540814305018136599448455259467884070575445600514647087709162235129526286193634793578862956993174280622749684871527445496261531945327407686324054942485192652406151495181160061000062182996994727772889583246701622225959149380411511487124017702935484305431835291301243602009364969781747743384913267382594522135656809966841796586736990779410885678437135130158476391078894422606914726355650382073071648274770439464282116225742930516718478377866105873475059547482805928927507718395955363260562658726469301730518072037310224783332272458725109709175849714202875613649108633834113653188831512495239610187828888037959047311378902040810037725176560760671523071549326132818771889171250582845079313735335748045481427667121963642124947428462864453737967912649400664193552076028306088603469571301462609177175237539977529097306357304437707772604567275076024821520084067766964437089104216217700887408325224081563731457156047938320088861261659397575353415278263824906267249909395339662821003501381397051904917395802225136663595164027514581594487141137317709213783885278043273172975452025400311488446013684461959817912760557053614785938467015860152083177269087122110521417406100686865539797914337625723704553555935242700862924601019196745203191872101154654783271091989794938164691870395731910616022792968929729654393493658173067249576120840120859926271818798775813914724706306366949203591845103159389117576945476587084659770629156812052253185645301422089985380551506100983107091349907584163033644072271054171808670772064237397177420121557207822535685184069460299309034982275792970474304461374518408438471094973854299344984957078473826555984349464935499216620905201473558337556766540594237545082904074219412287379946834653664568707238483881830016306911596479238383973994791388846009467213626034702889664418147009446486674190740540405406485541635117558163971522727168275662070378520398452375054389344961499152202319348204300214145926405256304537985245618007262273977390812231351597248448011573029458761807945669460079998443860994405137441389305639579248563058466997017939819709339263208326346548941839940940490128781732950874515958669341534647095652329990718915479072533211804736664434663481985287133029387120021448255573688311191700487843872954792502017852663261186387028725302804054225213792789347974948479225403144677190618180388561104370181919454407789779829822038905711129151929922163452226441885518469132155503548395886133068462306806654183995093370111886399794792355220637865894689751090336099843387866891589808012403189094159895735106619917019113829334289731051289844959849151632342601079728228326738789256148066756675603485864518467287307382308913370796996133706576390531473118315519840377643827645319237678920183122747610770763218495967949176829900136121699978155135489433926717768714627778809867268137042812990179886889482790397629147488805680596474222058303319556473655060998882702074155892543675415987706838055166866784681829742672147078223850869953162185967306300301544722799203019598289263967508152087441291200780523524326962238175445929425858411792281121065485227018708171530658190592349883198815871600599577234915006942865329952457563969149835890130865408076990637518915106192043359260946576332690014911887495778819644202062040780549161531978808272857641876581127654586024531946991201692545318202974219896193908670295643605696499971973925748710085918534460064096178728011116917882462006307174463731757275717100664577943173700368825282431398812506189916952316776345665123358233084780273378661792344749369875385675240651558626473798492794173275712232505272240207266947986173971631801630594610617168813685908795134807092475005516277025097500739117269526317681790780866872087030068671229637824189867483449350710232363397116737248204362460705301320590757852768465541675074756041075528430260564497012628134405008025141211094574652491186164299504565974669592275531463994831521550473148801044556702806021903252517031110692773009427674804781458318729471164886858447627575983749100727407931216932595649322440957946074641647379237580728371351435512954272154602644121996777646781598850967240435896089938880712914792972027601878901443770500875117294981988102139184976719156410140744140997505119619774367175989535730281346396546778656514843990526680789789137396567599248007930430267804939297409205631631729473612200816908216266091168061075482788086516832307813463689561668927024713565662424863124127305015531780269968596244602201785382894632407469645409458313780344463342917855712437392520305657098767499784225722602630811724824208437192015469286395427670363555078827287510440434585061624779882261351537364773747185128649115470795146642638755394455031209066238803033299185916927925294135720383401353043686470627249787097950253287490933552241095063508975278799092947628739694646495138177732343105918728145195336090444608851776190727110915067836130147421892518108417944391978499378699143897254104056218242961689283950440816797078917475525879188105807899579540000641621382290358993415943482453843128843884855025700231914508576365706175277260259200953017151217075785988874235824360845198725553876421940475540794520771368339282593423005032514973561037454269179175381585696845626961574782412978110924282106453783778838571101057870366868765665545479618604549855513410020391843781895651710586602821866448983003918979391842315909806551007956182647939082846848959703011533284427990117734053145625321210077499978271931889713128120067803814632322424821146969377701470159462058128974907227140871464498955386034728418570971076444716353270040540776704040798639777886270886228710303819827344443553930863835558963057260333118520652471597245762528603661767610670955082201454849422739407606821974066445818562761875704282364584557322793948682986540630575992430918873697363271224487094320942851373558525314972614395213076921869496749916071992549931271745057210133432225619442715421886730384800205215268977511231891805143991583773412788809532488672959021928924794597527295479576108509244586046135970794818260401180662593539547509661875093118873499790984657104497033921065468699854148828291398933977234881344615238143063609918032880503117228715507459926579170589365800826744313759006595869909908469377616306674977670694376194524346916046648200102703150852326070289065549308634892068042946527500937292147238262005307836163237191738459459084424011655438344981225837387489835950150027053302278573704860521669754221642484411544633315891193872215553545510949800854233670760456913917313820384963724644926964310055549174321616080657474079630364075048697266413163791356732745156787696940563631139738953317112867988034179007196697488393396428232615124003132548227673899372267657019371520391988221778189785474236945387992449476338919598712318203984399502357716673927710317188624340450102563843446519339918173748702740276797844275130542616950389125442623163640363735125090579244513405202569102378494672061752641103109065708406246674139063009472315173460523553243451441512047460169241972055387046579885833976226532768690532208632415217319345795795511343280236190067984488342306933592465773737117431133546738658117671459296149439179726948324701726703049304506901956839767605482963675123921494479756920815839347928214352224468340098946158111435575225186650759576882580471165568233228801166079625297863904902839657570256763701323725103938631567073146399695367964005301787742148853812941950802369605645737915349704198564579403706615230712040430838115444594573916882796963346616307285815508493667116355225792281429009071560707557630510278728386913378074653950245531872130473382576511397694557957272352122946198688030186896293831315793151612870293560200682807040761348079417443272658423629097783112108112161220593671177908176857653915643159200886154305363947147048872953139408834581217417644351682053820550527916401529473184876271905867774594408413369842878377628857736902595105537237092166094558061311020706004849166890652557672912532965614776112277446085581230212608146162896505145973714923069771600908169285218107692420772587343021874798646869497221576816378347750643935844972905599180756822564461205173119742882192626937770702088655508798384451841042841616587859747736330472565944655100433858524423508367731216347139680981367174384949109985208328938413395772937639867645777100426266872428740924227084468167667484935594569152468255707418274408597163369020682917919128883142413133406564761869818517959258956460552335132999677799819703842512560540226252258964715678166842397301034322476370530598802916325450924796553051488508915461955900604749894510978719458408016174448421035129152117874766577975749143594876342522736220953806888138408350272396464367840141796557374978404066548131821641843312751834695733085226005161683845357847801030041889466311813974653244041209366696796563686241532845489789097266135969046551013843371906926624362687942071897996920095411961259189061174365861204815723539169691004056168687037179410342496919341067813137157374153407107488620875544501191902523958941805469632842282358723655290364965298894982268674055594563683214772015350758820100493530021327509863021095633253854995318928106412185586325148267145615194200932293192228404286686169307830476987396759469050653285254213137441924581088030798037089608965472067970012290953784102611535181652029234106176658429219745476888132089093674035620662655003387924246993270018737086413900881928601459225007129212940529244624119927104466020209312489463434532617795015291266390964054713141321951612418176475896854309058165571335204656324311124966766346023954012675660988160838479465516713787577942268029127850210392627460355283908454087447068402959006781479127538587798152036284334359639946899209233817060772327087247434694493613606961130802128550476582073864134994867055395834117454577052160049321939338667955635833249348582753408784328256587058969466894088397306958508144322298884294933877279929214371247034783327996274099326908657657170710258128685893130999399869987655867203003756032867173645715683005241321735119976231536363140760049742159967796371826182885528682554299040445707213341700885585347618561201448135478883829028938710829023430882037303778290658332250273427869517224014177239366156029982008892613243482845285170555095627449896432230767816594244020767446158503556607957409145407782606332888915600446497309581668906636515375481949140301170303591775723325067676768320649210910227358915320609022137693149185373612271425437102112164401137415545823931330528957969056785949104799948062257822785512695410052441646524047423590553435580961194335944584069212704662723084961370318347468664328021113698447518707401587650281454203675625585778175542279321283386972318055374445538009926726772357639459266765019100708921242582502163314304005432052708567332491883054599513206601442662340119140035379577880297443153792770216920619494832462479784309633822480942605449372928574899366761575937707439885640819150285277880296140102291259499471650305693309768994249242409027511310618469609536551510793567703295120248425330747050260192965141287091802778144687731893004134639991159992966509352654246695823601004402474288302697848978375586009556679950863042998415528427762583138137695101062466541833199995347528005352436158494371197182692755720010294754748845831331590688515032381695916630942672935705506888527930369344816823344576308210541147942943551377937986465801500373747849456560404464783305603507779298712902054766727869298801205809242271306644752358642373578514449499143537633936173974346496448594458950931702863272229667819212547454377946258380109167260331634746028990718911026061611894064571795678028927877119670459915679486726823489284589139692943771694699049994295586597455642742785361949437820938915283234679178504363324181638441775092436189044154890049725074153414726951107448357291942582984572145233697953366449632164687383558769916161889276104231078104416252508391519331679368499737675396048762346768876414414728912104325521030273518587952833170203974131481883297512919802736162151908957877384781936255810188208371030306445173831051346273388163860984486462891934792927955573268311128987368082394155106380815858450243215784356661725541636025522546103118148162409122662334610223663088286008553379354032843322553336201909926858111372402449863247530394574993523849254804317510596005840815806005901968328070965363294587883236197011792692474392120922689003879949857850527417076832736064910900149290457597684219259661862975328091430472317494415214609757327157222797856667748857528580827600581237872391515009040560556280959020721853345485409206588721105431049753137780645358898073346093104765764849273195696227318868993558889816860253243818986836222053995125248292002281633436180096404723590499742883598065612419032828535977566447507322091574020992086799402934247693781549936376752249895526727058384324061302331036477748845276920832111171500693839213953045499663515626561775871249648284090872043500352718772560494736805607142251837981378001305827462073324158573017354852376506623616780827217212981131499029156535048678374410098584748066845444453472266734894132204834739125605794776093441085908838617060018114634711283557348962576386719962884949490258674070386115929003242781113395404608116064202748206276787628969810180667748434860688557270626618418673130914145192265326723111782678272489406057958916999564135767390302351378181640642717821601316451841268571815766384224089792661362836693642316049220303163655840633454791346085874047096940087821267050950608653504068406363445859161681169208769412778865272619499669159697489022141807370291100357543173097052595175742545030155185127423706467873383241639787475691467455012199377526459588500565156507216209614415432324835837289577807452204839911062430380177682131938288047661712511033035780868335727538751570384070717470304194302425462627933185182896426174935922487563194138146810055475311124329930722481416267541377376663997975519905205761435690192176831671293026275397580171199335703310958282112205160821371686205123009410261675208819714882469220600414999304559998007185878694980078402310194087377265451471389733813301864842369822488481267128907946833157773109679932251690628053718494188356760995515940925409337575407662830221078287379873031560954991060553572610229599667935110929270562531694715148008791214031468063951799317225391939805063357106877858271168882795604179664946219599537899061299186735037843635651833270843285916402725613309221015186810432227354593374035057451628352763073878718497047316951279015049947517990214844366589841970940905175890750160944977898356218494883795813169007906310250981898121396469800949156035622924568005144600991171765567289754640126915085267056134549868156765035795632044228357489516943640311086073266867072449338621186418878374739620567178666814912996985417070773699937611284316798758573180882990637175995129055440379875931733962357960228209114163627566911434871024406225262035327274726492221585607330355162115302491941022660272127058688304371573583398791602549325768729404342658836754483439111845797170101423032505808374935027469792193205036438254483110277136182237985137944774127291189740916012361704285078551708451180840036762138045988691233064844656381579077132780573543340059358720960535698637592449097346985922619673752674418808013801279540066900141495079246891386052515788614143154391156617832228496647426390843263912922399354200476046153677153901729822396366147836008679105842774091399131581710014064346062616314365471849870283355472327611595944424402758259265821048243558707074640487959342895866406691552847860278160556597970596192945686822880000925883502533105908905327182583847038559046384540017076516376119752965753621757885037550411342007505653936236183123813740996175442931948734744799817560611055787561304434916099392372916164872367361189004108622647944857504082051006836888283224907523078813052893539010888550735751043444560156331386700175804748604330656419091863973582174394184428972684808911078995573069888532608151126054187749438739415899784540361964544077246737119270136609112992798648255152580864430749109196640162384017875705404598862695319933943537570092694051453525644030017965758097977698885267223779322624055146615381418741333662995225092235754111619134423765911245869913368135977481743376521950383576692950475408979135516144033024482743599481279300035165966650508850820387253456648261435342512012195820264881845984575666353752647636615131797050819985739796922014033478572967671605783861556378934930803365731610121803103383165971895151659306263652998077832826202552215870551772954438809538751953112490876107818944957111561815147605765273621468526323571090520814286025048422746793531139779093845459605952042095546235281242132041753920553492441476321165095419991312649649663753988206243180820345802783697892834034868254118503644829253749174818340721280122827344896146810118767549394120611770245115529329214343947249328558674064904236268831886094586167795443692655452377732897603579172993140666597970638074976603417761429486660165322530279184975727594822552011273822612373395094021915137366776409872019726002821088078128825534116418793948193638194386076671943051146812580410621897948664429352871149260790312125177967478585795177994606513699421592304706903471347737609478392362403142064939496947688217401344426580068177725392474495646401121704347620627131151798602944535267412783955586605165851206165141908475307224971209669225582659772044197573380834178450969825212226390897263065664239508589824724782046833717880985882244744488247890158269546988812250752351473696017639311982103977361192600563440415210120893504693601431292185862746817914027245970559253503874710876409460218500032821962895546871502888971679387676925348427968208114805066784312195477506603579636256127369428274073205326427439331753205681823264830175242826838181745797234010194503475643445566689955653067048546823078504482122445601945985373808446202289479767267348981339739780690272140202419981165831416267730259767135889558239552282791525377088085929084315337164044652323110919666677193255488052491414357340082396720145585095614678219647565369558025776502706095820790635285006716048438092989626327558440078993622600367327727828464253942591097020941544718781110198680210262641852149695428405980416142760763472316797894849229886636387585369996293714220373212449713325983641668553868238800367985787720808853778028239295347091848212666026903037638338092184061018042142546313826710097389919585953777001506490530032437593808565893375783806134859392809428336068434980570888892762872387488411270747651542858563275698159543588942954170297642208142992424919989654627247040613960703176134348794543131765036106082184426108349353784414451602483221876653011120371498240815281217229663155983167089598735069690144348209448197939640212054186953944878034475887169599769128720779753753418868275789053238759053681109505530232453013916611728467225686505825514811879526905007846419915815565992589822575538474779766879611854322249185772405259868490483516033090181967436033396263028408879773275310559522783490310748380438738421413681494003405813546824531211095162113748785821622372427790263764405755805681918081282595043389957780209003372085068527237665172982699746582738433916865890267802566313949540627524182656786104915176529350670317908444017384457307834480665350535542110560401132766862773688709897995601487605489043821778711196517291865394380922836467062012872324968136511002488593672555890152590942934899401884472220216895263151912918773911165389468700279899022857599773674240880160208022145512913890125900327089974288356374506475242549031610753197424629518734658604106479712529260334097588072196693287573311924645163901838932873641107159767356911756935317319120892407575493280662572328064989537277657232556313879752675994058472411938288956964101601762751689671609753565856096187084549856272593451455778823405285422380360052081609383239973335497714115034442624670432382688592154647051675752948284037485626291540732716440224358714187912630601451830930448175033961847186789029936138334880429428342220032519107095381512363643521857456153964817098390229132181079883656506608559960621874281071844323508432196270638101934635501159934106461055882491284928456395367950297870857580010280571146451954092064118620301047514544146437348227265647927038784805332373405920840613008490950970427596992268756947697355768820229735975595551334552253465448792497222436708859304117004753113525907151846276200049915183955359849153017631113101652830134547370091424730448514654330280663335919646712957335869066694387064349561263061010823400864020914629958001550300135320529791121469676065530138289583990802416110411736986775770962370386985609132004490294261242171935430720697175609711551791864558576397578565353271869864522255629764552127907071232777252522849240455657762834026349310396747074753270372093093227162888447827764410038358340806245257952908477607099579620050161777260762054822826268331693926072403573978651329885921351287342546879625002103750250307856420785944466263897089027940674907742280276337721821088394221579537829435967011522400422152433194438102716967941537406345448100601339739657940195107453339528727080764872923035708196431698240369818100920119810281116549218788068987785527922715635755018655969907309878248698156361966654560630407277786917193670921228645711623061370359573805794614146786362869401030942952548249383889588847488634868789338920809524334802472021410232514227008898773929825927749044713276596018053243605694550103392344083928144241782867081955168832613254761036276872067087691198269891346558139674070749876117955245432383326534556108115569588146455145413102804764805178894395354305808052371271671811554938383884604188989879765480141998474381243269742120344681394703930572848737665146954834185146033670331289022768704777015923691764899750114168323536789780027993969107962776653617326939629958558358503752578314841580485152776238289118942294749361381287720841287081894883036397505599202982107869162892130357175304083134670597217596056192737981295001359144522308427063722148151156852653230192690041127902752337015968577750023255801135307757407825849205121993492670063162777275422307573822238453701972077709072029790611041780302015770382867463348606775422726714063668255112409512099494147120787974460966834696512928100857234733823694338453060363250081118639875703742313734855361435637492110059684036919112742946707036246243253188653756808773214987886217586255485980677781381843359008997026373463701706129121249949613784499470599563254991439873070033526576828405528012569831012214205836385984576042355649847255129774109493398164369123979246623915043254803958207064116190259129757448215670046567334835087720148543587352461736694799507505750702934219937829055410056014951359313458013917416256312196051237605990702626147249430497591565280201505671590732568284911374274750142452646200272095332981551110726921161478369343346665369749202685421881778003430349913357824088238547149688182378363548595837677929791440076725581566175518634573236591689507244048062066402333119215598719725837054466149838578742319795010325690884945050938686737183443555107653692459063871053331202236673245381572566402707780583475669463522102935574723442015560276034086183597673706365683307817674409704907338444211585112198158628650235664053824847832903672610217873820340470413017764600193324045625988102811890769509667198146519906098174664003454138947408652330296780096072247462986938033263755903273650734206438364347571115682809253768269782681172616667278987427553984941623045960928591375687165980145333177474652667454851020026088837078719948344824049611396954102900925346441983445539128944478806011171326852170658855297161750292114636477970850230440190335265428085186895675497037951489399511069090577421436696177860485337786883556877098303423124479052270535575052222637959819444995939546081926160291006773559471543130941985400865660631194504785018795951628403567224895835102362533693679566436539389909052661415973120000968650816503545230601811985861616445693438831004254896820615481883366863079035626883536948782520350241569272410489143594508176071304273698334610906828243333097453729280435043662721896719125207132015094265570823797409547192964498427753003668993247109764500057685766525153140506428671058809811377838166759675168279954969306045437966298916659473141760552013080803971640651163024006540277661136155952417364142178606129425887466616627927609890097940696988783772662635107168487238411389658811313913433884013494817849769432946088030804130217467285275702584971204788566516300826549374601880315836146175094600361131690524369615367927640782553357910034314028322011301881189041196427505853715155442093816988736615285076867221639436587098375518619239070091725811843331052588819039534474833513622469815530550158020666930760839499513542746636510695439339467517450820731668860619062268020627980822314172786288441772970067978912927120646175765245801604149054275348072632419692053415497177715591728608049699162393824770821096747287682873050215046316786070352839117031298479177416274128633675371457433885877834789873317088068957958491978527170439151807237201284934837736720623328174529267867814460683851410841742331097237906136565765357355910756779499965163366454316561036368064369404385401517216903618761567399164799665491713180265768979508990828786291488282448746106484927251423455050136300297116414274460607685729982041744388441484711043595214671796507326293013788311681726092192160521701641824641334982834620742947479638967407746027366063758665274363179690060067217284442838276233893900460323878343160333496510125188255497645383134218226138104391802082145932579638241690536061551134386576518919036622248991350831130469136625423612251812303223435190052154538253213854050587675226751336780600119623187984573360372764800818795623422980356391576070864552768832128753371549808246104041243238642089643014926103704086733018825909746011399533754240927824077721313951362241336312851995468862135203574124731585803241714859560396764216338678890535745094799215616709065125941045664400925157874584036723083455070150023235831842163506933035386001082469192335798930773244204690610827076319698327213183193482936845119780681825626484013749308574675809318761974914057713033720499997565998050998389047296767597226002424013382990441237040573978818363600533225904145877938505739664474629041263664461821981188747954136393769313194615772410374676963114807541327087779609866129508912400095424375740506553062585563731873960934709982158494187591864998280418914862932507284952328006779609359789462104330042604698915482144230387390514951138059295124465887830289563749556628426930984760819919879302762328215497081830831322204365679374216839218858381795925049865694584974085732828170020927990319924425620825258609210810137624983134335993278083064229096468540730197944132918372885048940810824915883731546114822594096355649181086065668917968265495788749427569933723368709795322305608028501215231137150121738764677609511254628511549951749920303725044668764937992570915259741503515331648896101609408052071710838186100108343841232554780168643565778635867255595922602187360786858856825654425199636738516470273448044460648779691836378902745765118938721757860138284015500874445377925444360962281510406688189206115805447488597344165341770213823003177895375440823502815280013269859807454552499797531785240441837334275460472609560982163457075632179233895575522279226283349002497492815135738002031511447747747390336035819309672047345354083707442345897691890549485116340258001272017202526800661217991686154767861493312551111342007232770556336342081944452260731055333180550756145334124076888067973207016860943373538687334165762903455770869576630266080706139294698451712577746717241122383065818920070518593334296565311515524542755460904585140723163356956165867116039019658754914675810512670480778875773404055710088001751649939504043577904120110318655732146434197784890105840900143458811411442496059785798329586011959551298668878005898135703528361096235553826200962478934238253251226336181838044358002451366017711513477999773026562135185152774727009100916150277409972459222719998616165205461544270978878695597253794372987369556856749197847894488711562902150445798736136649468522807489305048557456002953605279355016215333566336643925588858471825142164612982993085244543714794628844680525900460080054225578077068546902249138775836394092041547053788924195087413228720879527931102568025516581067477667595149699061550897664241300054228531842801269815434193413359647918569746971197551102030208398516516926416702843057072196506633745303610709944478594128236992512048928201700108025195344618929281719190013501044964071493194169710243716185573224444422439095347729772760793552383467323217143830345915031996903416040124425031117274960967390666732826846364358544058700680218274341270975720610322976747081403327712663347000095720310567723876085606511113378602181531657848862505300118739521610796385900548160085855552815832963798233431871317890918681211817662901298876230463185256934130618787272752418789158964595753855194056609303201026396038567742572645799403193019427197597214705401600693067171178337980676616025968602079265704521072901763843704893911089634049472025907998043223661507925230487872168344264787877998643297071047170610649777034966622265739622298475880793167399266837410368536476199536876410298626951497875193988248786141220494149705901200963805743878322417658513361170182166232574571352752369952800294172719351415329461352440720108637586429614554142755398917048718040022763884004722757746776795972327937330156188824315402777919772131834344295482864438059728030687111039590894643852158895544001900111878560071250234051738818249485602719009429358447881519783699685209156270253123950209188933806464384340995656113856269157904196090055530768452753309505591631852162606435964661852736505712943181889708870476470807523622143927336777299493269621531260685924712282521819529337533095393277127650953172830151195211105250024370887202298245411539882207550348531027920295149066226517610749502041791337157610549656991514307453853007884328952144718210844167779382317437774980633497212779198038104080432055655425249949109985639209279065566632385398617183338581531879661410524086949003513618719990526436407058573826568750318619903699744312931725661293222945622472359299359764555774268769199279657662270490012221738648293374725984986222277386454730860907262956242157774792984297975318413905230012485571066107306338017937820756507605250644130783507517823960559921985275639458133666586590217231160065317643732909435573929883549941597687364085783254581624525565385739519604907960348183613341652532599177017126467105567295515237655055433501908937896397779112618110282609791480083087792725054832285702409459527674297252208406590629338926947652538739465324224887139453513318358620916417204897406894738662460295107417673179980350670922489741714766424389093429924741512236789548403154109262610137497736605926486890666983935103449125112035971995748096008953422290278999136337636899371752578859810473674624856977191106327040845158366970229948952191822738733426844714636497675089150947436905459737989624608927774212190053580545019900321409341293866607837385257700637251059012706868169408267389968259807496959437248649079514742446767546773152612044907942003184788983467819205246009622445991786163183722752304634325956999733451739156283610758216898374875506127293048265564152289722308794632532003335964112514694767823363799171147252220601748071242649659415374027550523149582340460502353898867021638330979418286523465235243884232997510794748437186499171781177179209386792482247900908842488230195094895650899826155352178808450739046163139979326478164960294415613366474128563352356400669025473590925801626164541833293328727380008133360208053073500942532317901393858105854832196844740067829258629526977549347227555397991511717792839293461875924310268080894279230088345069186066029933110418026309842448879117729312979235680284607317606983041422009576229321913292930874376039020108538290343927616654535044969679987000867522329000807380523958195581821265437062571429654981874871237981671731564967810665587905572373149184659166174309497850608431918286992141084331763312029763260623486252225554606924911902719789316494497563816064656233136460938594583970900768698395928592761091052134269295349190493078704402074957679783495503171225422392988068471598541123131458523278593087787572312318009300886557324241678407864240063357057398123851334128670833995924336135525784656191689966521674716225197232791533860578178460939571980694228234326789268272935381537160771810364591787437993816976517134294232837506850599380529257300079745825479000451853134253203093557259148703234197706837148588902014922469505716161262098624810663277945721122080481404966163635288965405467952525717606164669904060721299467367685888710461470832402897886639444516643281269456097149942237428956703083125329817430509008568909460620489628872904913593493211275183325038577290412652114172338792716081547329327585617479840461053819302592670881334303426317961827154739800794049557994403924328676350111383478580257286921190684577647485089348115876376374528798123699617988166559658235508870043494558475113681394033122276079423521272821366259449690497673918648940232460459995222019939369567757392000288299203046540978056327095872050040393226727046439056789217829647287192224649531172115037303248962708380509500598660087641538693954146117142089990832422011148933166845327366485028576413710975030557826859417835182346270605862478063850115894555806046614982853554047711601587554103160220955595033629604312663299675691375366650021628380525001710963720718559562254137557254525839187736163334575973557479753740335843974836431209497928839198146709822533986978247829056620149422504970478241513439585868477932339277416984887092000825106415664837505330657363246372940641169634691083797747077562915701595700561504418055470631482736178188092808851652633429282744989404172002083633850610533211317858935179717081618610706618052899910857832853554574312229983855045578186004637924574999386170434401948763925218321811578483678030459034090098464657958593727516090567142730014967259760715482012646434542690599241842411726390916558486348633103754576414655236323036365093071229587661507752905864996941431776150363694870862201774815339409103002316343708978093996169778429719329500067461914404076910207942613889557694760410077898945073953003207605114697251380391916072289162020138921660568697703300485411636418771088810403277040253743044148649611589490642329427710471491868490775008164564556496811295885064602735546594096118926264646918072863878255561956187539685053670404732909267580195776424053238001749794892204451881878913043448837413212406321947225404799820367342216081075155287544215128903654432900672340940123856045815641219187452325885023442384966455017531645446924240598611320729185693265996775131568717971199281671837380638897845954807520229586494585980798797108995112921115517044945447201759236926564039317711851298365043564479131856740122360355757701400378438473297540692752059727893947642272907297185314818595069673404588864390568810060039960161703553871506842070879904947453453622274982556416061642221908661851197250447738113261265523052335053130430680666465664942935455252754396516984907865736066263175665275875885072633970373180091205108740712892993395917790847741692630486215369185422207239668077132169799559924745110991497474466778650274466442995166966688491767152943214692052244452469123064912452697283652792109333273802395941862194352736348907811155883786230542050824782941324079319001990823708927875988009890564201689840573572061269649297665505595013252292223269383383847236223685976308576993847336276171263960834899826163749635461076807532049581218036367606258273066475380690818604558222390877389742014405747833203974358135718674738564573594761301118608149946132477995302021268363268807208084569712068061894370735036537561259948810580380024324676560025776267665009090938533964885197144557016206533997583270690105811024772598304865033949736862546418890158389993698182209088952371981893005739200761025862230049659735742849539430486575492231419040107047825494489862328082386518454952778828934590581473860565667220289603619897392419516083330501948886036177139745930688951430269381222674186601771609430238490410293733889447131565335482144398302643962335296106567269510577907436721173043542092374269114917161894190206079692384595396473341272089587598393986937713441374084087844495095450231419530837988263161958302033083235117239493411818436745038325126378073452637980654147370590261741944796499096588351519581881351188393765134044069803727578596572427488950510356814414004994528797386722700357083231653842561225484904000029137975329716318158643997323903423685975320436122179389821434988407648292258049193715473455358479556298950289037866773688655429750965221614781996709201827520088707892966408002258732495842819745782924671283471296838599907098243197979875131125586591347623677688223754476326749552427196698808787546496547994358109735213017769739018293322022943364061880934021923175133074029706557756126767056239845029682589633249647979201404103971533498673375909306665456593023303553235284593932322160076241099978995175634735382660088332640441128247543459223089964845081235573327443173089345418932250964932797107624373035564273256970792134458452213382435361204345361482886058871410381147373204531721870886728298907479106402510921534513438256399598549958319960446957794126843269795827258255320175971625039842819008028706887601699809217911926818249042323107271049257781050616848830033463700450038304215445959875506684021616109098407110670735300823932610415743711124254778061739278292299362446980028111434810008533465329759901484951407861007555775831744192903059855463439834626248542138487602075103656815953597309464870709583725072540457219536968575140142716522478640415887604354099980091018358447761840161163530655973384111792516828083803077359403064815199113917392873464715860976566444493908179412189799439178373660585146908149508659653266551361800098871841561904128813723689384406005303920436943251613776495221845392912945711036584217132472048193179748813229357269474720356269260164370990934628076237790981174361529849745648298978098822569596841998917851873315917218166728332390804753218293802756020358555016712770941889247434358981279355443146215533944404862333500498161033761338193168570358299777698097585114657988945484626181005437484075698792083167503412262969470712011446207238111198696076929820674930104048950940730857283706102696105099949603463553998229832748854640350380634583844842124875155588366616917395168243141595935933965456459025488869116512087526001127044917861267814427555498015110954366203210930919092679004005492348677075309089395688957866311878807554623429650536828536053367651842960308576721303364191606887114954936142348258767668833850875753895204245784039367549663384895054331869695850923914348731686002536131788424534271632827131186725640169839218306309219293025506816577624255867452295173924434962339975552054334635762110091103469200350640824161343386276124939853278132865166930050606904491121487150556940489059066962320340184396574811349875167910665955228339293898218777782341872284345534562170402754827239935751701968304712570892349297646804874958296019974013103997657209790894809510377255944497870190873421121228443589239706928859527906554105345260582363906007665223088488679801611876248521584699991472744332313564869468361684067148149327208386005037722590547713501171101832003194091658290924135993033451034850727186406649308434362734881571149873717373602570209377566212412851262928921590919817545217136935707116109361569590757893219933218876846034106116573395888387940239504929481457439846410799763618595094612708010889365060973762878501975350619112769803753682353601463889795974164381321823382076821104088857968749719952364277691462223872438698220426105165284070354204349139750655546792916721893439715951155112592167759497560363556133809572126396726350011687376112597850955045519091587947413691882436594471721121861589224263465893647365989787243100274858703121922629502772102053958586198184018777773982423874019185877678452840269660671865449012383492900719598746445605986902317378941539152405174043921571488469876181663423483797586287552713298014951424309742341194934791573652879159665851527535485946099285772393782920814377742830930834131451065149483132269626225307234638828326399577814265878821441015811596557115254685800783825881304933470210054098707856288474444633597117545602032896013015459377526626345337638325813965050543181231104480656388850708054836457847225197497572919407243908564102347581191321813621199201516743402313936733380107829746418175269548064766165926511510958283458925200625701249892258308478043900648512396478432112353211524332120329320566862214354738893461393471943599922232114425554591827977211350074300965310521975506350862527261337027029672098620329093767617370770267557024368293757435743634322458927635589840374747050835052291855642729777158290538274410100349767977363311127855203600684784662650512275036844198035133286546171747990589838748770286409574648265134623637455880142698146525078392912756571525965866638107923415916164421609104715423649388062575695412922061095151931789067845891584642425934145549121526212641200307504868933172232498361309812049683115072123828157944639908176913725533644288566150632092023496905997990913903336527861199921399985976317648781088848289504542876976590432845286254475746705736242395177857075799492875865083843454070034899862430639076720914128838992111600302577353072013635038917120824049145268628576315099729319339759874073464958343946236586511704212677720938305466549581095248318444269046295645383789472223774206420542721388882817818256457765777744827910690337496207638291681739264961800609107718470590991832199683213277334048907481663077152414872004844209849607897868242242805023787041128322056976479894767157859412521434320389491224594870307734295562992183113706829477631766857527735144511948018685922891746103298278324044000672880327037045526329070149586885932547025786593651212164360376251530831078008654656322691697748073486498522935922094793031152045933478270746700084419519907461099051882931739621673645891154554014494049143747305968501784795847534894679640770712891223116437514561905326365199696068923306033096743209136460288304850686590808014554393552190922577177800967365333269067819196402720268702827236632517065571421992221975041690870061309266856249780771289691663266264785678158544214202834840538488826830696262032963014960348585803279583558852183532977983028031644589481734846294506992251147486393058902486403750323842957551523739770426396610956056215521072530650985939888673409257242497550572349246229591592628036943402993162303423950496184171090806081108601702037722811765234439109818735031890215878769964927604350520663100955127713225898588599980589623386904711848507495179341602471256955151688816793205450286221079066293246527587322555625485984220528735077305980890371469725948908594881146935227190776828036595557308767829541143100401663557805762625447868465955514167250274664143625987999388950624678771162974471781236940125780635186210555774268890830163931312175352396616246713709942413359360278175499072633033464248790230878257344473737223747365233395357635677595974227544387407692649899356572972768898272761630703975539358863776631799086424132420878409790245817699377618193555776581302269724160155600542747124768232084363940217731769423040598074069159700457724106938571622803231945668402416580935943981895501267840993419847195446947648897770421182088956937046769541571746292039554814369453134160153388480551889866588160374893276785305228459037237568710661964502911280796365467823994052097260964912310256657067000139461619326701627154218961127371711016482687915569136834425460795128364626922064571025394152536010749121154332301304668121204078153945386117008999611318198410010449424377281340910773577673300985078335108385148588266701538257237599143196351548998414811485916245968405614032365668897587972198735597253281679674560649579016395004811208628783742413298254004954969871379069205012772571495202380806959455492328109205597777527294424113968941828699605994735310453367308689316646815792760646441271054100839586528925608061656674100307588510687435637501114827610624449599670221206286772539115795487968297193444137279724860165383918602296845509547603414164868732275238043761386977279779656513172936695133199377464411423798925518032915880306554528855452249289245839204812961087838111548484246603791184717184124218674109605748802759083310932811948676158608356655865117483988802755520131642864290969140220593163220518041895262514437132953454255956857689504473459891387691435084602637301544840884727453270027949335150569774394843934385767438266140752544541808709009812626787704284413254304224128822541105736645240040968810663914951414921090940691018624149964040574861755928333034363875206946126790662375991747445538848258192192530144623726864072160624593226021883618749851896087448648392155772860942676016382616585040784432084936103155353485061447687245212584791231038246515433347257769009066966052144999994923423334841270322700865204942641351334406582512981257191732275249003147639013117203049032000661686115514317115789032723662056076811504913386031439049103975496454948592920981363866460121763932048812217577700274273848003805601979852932362538543544911771000083481186944576469737460367861369677901627785922388596282170713626935306435825991410121168511840519842266577221610286129442042796739177038886009763140229641984804372751536289507836255452496526616237924516449619654527940937824386201946322088448233661717694400278453053920673966756641839282947579209602356033909507950391596312257263092022165255393691835349034649581389634994993607095046939752974942712057905207534698012714008368733829738282059724342520532229142817638860286867021170639070947981183793972328631075630057465116575027715019077618224887553992028245962617774355848772679136349288982938396578753413742029329321769756224724917741809059574366629800881309342129191458546573558585249856423752264829274762972952871686376018374643304600022659727589112345988078197362308515266451827888934873111414516277913153895782362351357772087921953176900278412684608106930006544875399945171285293910825018448035572028514405142060468141379250427751719402186659397325821315845609860804575655671520668505152180211665528474644251079515538934043807780277083719814288679639850681075028825377146641403763195537511228160793374396460537332603218165907732437326173188123552854555600353732936640254754655538655483998707929572297735025945199457308542998951165547148083973549384288144076706364360872251074470136091991992924881903899025710823855810632558610541986262147630908586245250906074792258649399488108894424348147739910732449638514297798906164041662436875085674403135811155247412968226967037345244962950198096998333128690711325782434689042868921920564274408619956508321806106616571809716197159728702557760016204443326493143918648104475947700014629695447815207617993225422717097197575788526650419436413360148378051001918042296687182603404972846358183337756175139724899889688452537334999997126160378282775048603883356224860238209076824928988644890463435624580229764573675826372599872523200810400245008529359227699192174734050507721525891338951768380373117871070943748377724881878914272081048525475470362042565037548262409503092670486886245530958335305626203647551426479873906920562434241881682916817609589461777389382637324863639961198326338953892558852695211204872624926211698826792513339212975015063212695918529764662952784729651545533250413898104687460693968268807461305462011675447654868212750420325528023459068841438019786787550569310936360292541589508378352296023541219433268763406629279593061554089085539467304595240418246716020511435922733684556568006758712714401935939724338308316046073632048537316625430435128532169177986820538520728744312257250450389121251003198882431510416773516936909046096439508111508894015979735948713848648602801160437590464829026640617404359062443604836705539474593339452132582139919342027073069799446972370881710056580373480898951430355456282333149889763112391766815683566904779809685864130215267687177640825102223726969400981216005777766551822311051535300338312338671840710408541277993847388558196599589389930532198984551686310261585962234271776277355398101142054857328659219340076439389573573787275951371636560855759843537170226186305178290534524701336658825749188715355042717828921339169915140588575573685200045527137210346365423637311070068352852853919491523813741088369459767239548048956040202311244943105223075393920846942022401418549094015950855563406183160640163876683048413960045119122020347861283850400143983739011709214644205188656170814494289590536645413253978983557702518581719222886989339589716063003364154271817503545130044336529723316198585198465785064667915076404802045351917047922256141488046265165859346083365834330108030026495884758252745888080906999000611549158429161431553309017324491850365349665598359758587664070724551423760770544718592036419010161765764495846109133842971572115109112705534982785547546710087626434522962943430986103535749743946481714696307394984769278104217883674717761614633184093300677823448597452088651397310725143883957714293347549837472728331687221375190725401136276771225147811801918632543314590509151149722229980819268619021567243746475121682262645362380542239740705328681894141891672598644057580053890115891173234841902367607154593533047755808029953318253704737683542597649739473843521642732931009817220211136183109366204263856531872312690440999480958409798297487789601311346841499419439742494497307335593851243523663150206739732077197849576488985553069101948186251157118667332654166382303015882033854301170479607256365238645455602079014853517498029260057797553053478711182405286821184570314762213747896922540848405891793887844644227836101295608325887119027046597309433167941718007486919414686478513887328908500746975336243246889292945271392075907339963408361391338320329547470779835675378153618989774418251364866552148635156977968450817038008025640766680252958500597818522185284605276306294990361358532171825251688511135457330013218845652253543881754935732415343358945731769425840197200616583701511303618933652609250798532220191265664126071017411458903858411506067079677873332809947753117134457984197655475571349871917584958630692180379240148964883328217146559557810009187928915028598141076947180085340365831346064444975224113251230770688844077570701899669961032743949529009204148693400600910513060187462521647501096372275794498199054309982383916537199266898088008497632110898557114952054794561665552934412390695500252255946581342366082237510644005100167635688231837430588460089198282731932444978014745478420253550046867134016271151789189951263850479293654197433297420199648076426428863093379113813157443661663644612036032608908493664008807575438352445630382190170069468450163667174683686477131026892939952766698133311070945483917638282964497665274387031636243438610674451568824890960057056513004019300961240201181615861529814785480674853976504513133825293870752103483068781879556560563850819230423725551654506780686255086295341389581098517515913103119550752468447233942423428111247002281471160105081859155188949559059540885453289725009123759975548419993954970801972583036268551376940943877646087791020178846850410352850350008746952297754513070936507398928355792800610173253243185699318338527812215841064003559633213181262782391333576185343250644750405006528053384451259883867906032203844436300013323802517527287838429806757445040909794690069900127194363000710274207618867254687652356327953783334538267112199794300558165927226880834141723051087675831853579353982412717331901764092156512436880875264361845832244719786776295764041852492309452370592026403631537385306403179358752798629726718892623649843448252938398791371011600724697272372853544065723172715415077524723799830305473327369600878768224180897553907005836514924346599738033130936724316869844566697075077790304716582888247918061941974395725285161357140577042221089669860044673219885242133277707182419012196004339687514247167794670683887374624342342419098770677859329725475403277875756272004269071567598626224122211927214781397943717559420677733395254125754919911969862073648607070289317553728660347232928035811176979252167827584689976206974996908846242925128839872565277008487952057984645314758911253749895696087824325076526906726100570065749485256277438431445990138019269164635495616890154989859496031520222345928573376577786559306816102013521472305994806973737653654809128389442211955910838919041965822119837961572593198013844743917857805828849448972375573416602768133151365012420964781684081441024205529299689097759930433533101963304239412979781214004873554448967129803179180493289162923594377264426407385690643362301225070013764385946985049502079401760409219614975706391690868752828239425364390762700373184041806426195548249658005889059722183670261193279670374651498216130623774686940691055343589959711281091642123036166664968642049623926703326785681144356572735716932877791098211737516482503364455227035101282676639217966243173505562749453774886548471778743449207545148700892080873271765056164001459995072939128882395100712455068414126532720296553681765884833817115137463496180647993682963319047064798843805059320184593635922259007833403857422300261225887654201867849845543185418114526149175840835882431736416467606398388266896424062495848446284322169085680349420689305755933582553248972614738541890466601039093897613788699194684754380917363262588899981495726988637232047994375507895636882352540163786029692642652626774039856685288666032363060374228666786001853302848561284306135332298859742870173458892090178763723800089636540325217508686312834188257939421959737539063917975639008620504353157710319171348937182607262645389485864129203106382704913590089557331041174829303321681792306759457402282623461449619886155511834653588214889316549164502111628708398951883735097433993862205596583834604141773505598429298145637274820632413303827087387088612191339642865678057469527458205577226311523297332300965966273501017354140892052131765187276922460774837681338876457294392394157838863312224475301840946684962123460807086195013007371033865709192124978160376588046430369091354316991431057869303952209306893198406967549916803936668938244875675828981594267817465307876258442348639105904767580552150071150715169175894186798989870354001365156490043250292939792514412736481992045476524835283282952122335330840902249206838414984709768625204976734106440268803005680927128393312989248212878921363764412092224351535838568826030856436638605695720442981001356303098598980578284431546296854745024180937517249107075782003299710572031689001344628696582400696948543626386351846294406586045068070002400517769676543956249993264082857521432882613418703307870421427164126692408392141543536640179347174410610988190589778025149636496662103813294634738897314721656384796028082467776535328443201704684205640336058220172356084794763544113197535200737821662329614291294088831069436528161980730769250769447497049493025873757357608587849526581068559061560421562450194478078564134151410829611253311379424470152165802099112283706824390528084500673789603426112402394389532875301351316287666812856918612648285155776001573259245637446390459764389157611179207141492136751193951791121225996051058132278375714904859087630757836491986999367595078402634392001854335688800311454875779432381207404047513016201219992796133633628449791419280493887547071813284553178966269575969781186854081444795901233310634102095958266084734081426382452404421659510252571320808113119558964941725800008878184335355294940181459505661456860534947057884005169222659594541846303979069167350075897675207440492512513788063581130861627514220394787597342329811122103695662410302831293189259183208236534072523327639813027669902210293461828877269899266199314890260775898863372256621250056326630096856095464488743692953336085691271781757308742292853264424470276244686379637491712977574845264983576951223463031733696239149971548661648886748410247537374468675855261035897455103494455653695365078204305646452899377127910105913661095385707133524146493247876803562437041652984285336745750007802557002711161177878441485603524102009342250549480570623094733706462596332086414662658557773096134924652383406674530602000084031736309830315122236264690878395081104995319064896644366794107672109111677469424304470601695404100199956429424894328475805077985484485733220512483219731380976448451331925060011717488816308534079852336910347933812711535828657146516204625073180813646327722308644385125314605501655267774396067803798325298499747453122406785681688118208947075599578077644646782125219734808162317229194225058038811193207258233163010369762996933455670729878117104569284437673997380672281855653112971722163598709406976641984011139588867808415788959433820976253027310795152885843142414594806557090960622437144530321332034406596515286343125074475847456296212790286854478946073108313669408534998826627777734016984158174310335062257406509402720232735175534596673041505742992358752540175783962263575786945138213067804268614954309827795806786760684421177661170095827874741237688580554553733613492191579353390053187053415197729590018690170094914915082699248047694807340629235780625747578137813525305193142764679065246229829227085474031897584439842640047492523574099630621535011181738294256901626005115867352919828244668480105497963854717450179600921876014940557923284280844726165761752829558271987226632578555790805724248949122775995174291412590151892735894726922023338942522955518712609108933700470845154053348094272605591904861364948117836702683578338152726971447173470769864741934589943256924402877908843517096911126822510635599060427130499262249987603635004410657264881400871040945363931306172339043508370997971124612625832840905008412301128435560234269878211580659470853573388564028309687961143840970109398091679402409418398210394271057449476161043168634896784396040602459009627893599863534670254512467565322022260158198981354125114430420542313445267493246153499402361403359556834950950485208864438577150741317093524234255240879419248053008618871058517928096947780595160857196566664089462812912835140925353429832906587372497497941241477352408820123933537382011384741336764858039097654947946410546039660278997693810482222348822249792690726746555861457871394707689062649760079972850186855125883206314134149833502027946116350859614624732370703264539636807866916703069994389192983921110803644772070476757565212316271167692125975328850852964266563662941744409003291879490299396429034121317225602538650029756464088054981767044047673683951435215481862269996294696093516765058241738122759261213831391816049607941025235030774815927211629331305895134066349506694237296951717807850406015284360318471845256177882322026450879261179396572105068756251268834860455157658499871573462168998900817265838218116927527605017407400397982190376295465184378518468383141364485948564875188566497569968240308308688447681080576082059554858290928992878897002479766057214090706038770947477442836368456386942113727388426018054195004982900540423371476737221258651888293001438659207688865933318746557633275088383493177028668605674713679637167483002750459866235424465673833666266765565219174078847785329277720076858945205475157348935867021270166101188670535914447193347743681960647547411217563177263773192376181717891263243865278218920284148161713358165105655043298454541310840057123236487305221946913744008105235198728630279610882040532137429862820847553118594607038371274877166254274162240334993768744327508973603912246562838763755463701524147433464034496789724795077425002222885530871079691995608755529223297714149499120824578896476246630572209739675841719718871366267710890466107528772219322111811183933071031155969662657472565304397305864052412843809211626530749560743659879959704820103945994397887955332265685681243575898895419057100603689915636254235211890715674257112172357811745947355623687470712781260498083233559407305818958625872434550221851520774185720561619536561467278514771016733353234749303488087266433792075310055310957508245619893578111743829509679941488590326929539137527373497299885255744594962585619093156653613725939702829629329289843283843423029449785520647807133111060063181486215315443689344482420515828519216953944560905435799157099943036119313605839166222980951372599921811198209175537405870091575611530732932984288550920719972039468175545167350266401250637818659295260193302217489817916465391601790340058478376735969060483525406848191353757601989517774429895385271561223357327458981081578050757141960685987012731157171596439539957458787529108740141787165671870575718281967734200331060991874278995247027042632335385171970452541973090422445871180565425335586648855306057310262441769134763751394040515537773551250414438831326639816091536654251581958161455446239209779146303517896107645366161223849073365497379734456596328893639058702111217766940361823911491544775586815514214366286160980411157235895941964434030111548764677194386538955879552557628692850972629275476122695520219981656120850481140181976327781670028083323748742666111848775067664675911539290933774068685543019113681271149701275438074831071466894103010368895031110110254277747988102550417167949093181130264889592461735215116851738024927201859371742975088383057032403224103892622280747166860642089762015647973070618742068210072238053164027149228670102997701418554168669015865664532043974047321424534002601294492700129578853599168491689199058154178473623066691570246098206803338938767995453909324601142937682364221338715744898678689487260230503362954708883096234060601399526508107879813897014703386231235031529555080530114720005317952739814753582200499996033530677212298962304423125570416738892957334880604708199415402841527248389655745942911477334835890760074275262827952307528719643183033920808155880181659440048297334878408951730205127498646191422567123904735886535320775640659340311041671059988768422267520933085529969919273791549536637697596163695847351925467303527815402654644283868544664245006920130245889744249418663930345214677420611875772369974318344550648606312283790991314302474639000982348225566236901174583996596665598262999861300676015429512407472462262922285838561006062565181369233956298006206785541795694447647734657833352971510405551642660658439345774392892567905635946293140952067698860266968062547888640188103748733373680573678385780836952429894488261568739760071624047375718180700169014372738801742626131677724406786340137448819099909321488399670676555176391896585473077225664703495097171288371452208731757295688592219188971043134748866230536807778092234531491948090948416191606955525669279481021673892345573595936776288245381151226774515044003178529169696472706882404209605075056612635127021729638554484876875455730545334917385643241449280533349538497918025240232736043762933985150366392692145706110645449247758261745724634818348257572021065412902816898885326558044822696461668791602606812595163907471836581826685865007078636808696055344694719644049729238944887076319481640662595396187803971488553444999054084709756583369904898509908312776090264513020981395693069363631364757291462895558211666054873808235764933480895244891042282629310528826857000804891146638412281231603684104309350606239427748502487033256131374138576732415748041795194216733783293396443460216429703147599464903358591132928734558709793250096030938236319246309598801870766090509666709437571511473283269717012196792170444924480758118225886846558923641098180781583541997524416737538739466954478606552315778216060683096503979716827687119323795101363266374991859491896496427888004431146317818241219397227967469181747737525821226273965529479049250392017590314812023714606328724193570414596272458594656665053701883141654302283589274082369021006077999468640251135033953396002754069976219105791441473670682246514130492109257855987719955254444633692813524908557286696999588129694512047194162696730463426480458267058347057878279808817518357669466917941271953763674564691107544964001027538033774785080905898301129423045144093967120773029470783797634275787639899697307381803695887149555717008558175180088013515413067599257982292873625373820370473882956975813285145397432884775898199680297382350688017932209462592007033712543086832999297940102747333550522863379973313391722818465234996723074877466918679747027890054570482777619538092870809268821110783925115643690331683580279780602161240149502045444259791659396575689903587566090831131694211645871675171036197222628742250829930534169885668576612444769286198662304146127780655022683704073897325509292456326948592067002346225890086167107143381628407547658357984140320151026955363107835778232058362032743255953957399999287051648741622590093193051667589500159477518598685028075045918961538614767467878313137500408620697891126852854661821129440596312856747556619358615410137678554223488515427963199472079903585391263929125179284250135655615779857024268679725124980332644375266361202246587711938796212584924143600302357001142980867388140973401137616266178938435679316723400206970995596812674534705673245741656405677754426258617660692478226846869081651495827208933835344755799424230416517476969484945185763602403458258119828301843658107219047392866921040480328137869469738709498574347012893180978497085186841478244430237138981506707973345810288440455203913111658163510567329137806157301433869445924809224539792221732143987545643237536509329563257637858405338971806180348244751297098456254963888775060168400631834965174193046688298729606461489705718936143383315966308326315805116865760734626294309233197049926104423427039049462696422072233651880516490462916656138654932953718914303298616121905459083898459701007139439980206023510981494753406794485887455167569175542881710185882942388422697442664554330764629038873708017733958867952997844279821795141236299383314432911944271092429358694322978651629551022146411285698475725558889412894173691910103143695338707660714041455319890797309616818744260265198152820283064688881356281052553616885719597127491696585660168180515029227664632935651692803697098088794145137705973113814523570777860370582365778884980518772425949031063854363473842210450144157344980678531339876920636159080819749416627718394168812166409511134673866412975955966277197028678346321226182903158947462518158447104647993895129506391437704369714134195084147358715368550561129491162932771518900641768415770553039880699435252883062837021967825027215666942884814401859121747013673458386815743618157229548840827297794816321682902403264243563931030416328291844056579525700935302901152171468865454065179094958234713986089141536360551646898969302854598658863575512069732069643381604195809538132360050927912743984852474284839727374751558876627100291188207043086827645966365788108891867216230798094280610629824335812700124982408220087567670207633354788851720703104711466593847031941201032760455558503213246338697326134503180434645336554446589397520219393217796448700085003443978769823278817176563729118477407781288393539158297517136875116460782801362176229640860301873565774659623410253465370635817948589880244255343518230167988811948059142785886206317057470832538982260873460754484820702173580951815130739085593289843271024439564554001726201374723729949862704292865846948571859927345934506105163279692508937469764792455636289046042246588606394140827546682495946575988835035183703633440175867230182479608614666253104019623442552176788635068381487106949612098881183523162316755582208658167679894801614820064527784945593427446067455113950630173441246201596059604448435993729435413990857113165950130815436172545134924132406428382815328746563106207702325022309199505674408775739859654171243001548810906509903395428591912618729826270293727299020873883027494592634797279613035543593595448870516368447630664415745891360487911484885041775759758949649448782310089470357601548866033453258081771712779322314073307350089965664908837690005927474810805838364830487854269249654315188349223934010649247686334537603953291854905972847857484050094809788119723511379229042335944940977114901258318426522339037255278222089968196559616096025658829903034059657162842913329331771795835778375445903771308337833909310376041948821896706912726977009894440811351748116497294972109081186429456608168032582850303848361751515635531527544482217066360578042118399540531544553227292676397205768563614942194545375027885652043394215242622683047866084685753455022172989158774376029387429567509452550567314266112933836094627916959289932253873655057842381939835579533363750909633056153212337124149410988039090694091963024151535385774585171729500612755442788226432924524708746084353141984920791149884135658073131109936233663239710578448787793652166947758844354412473930707105732110353990630949470690603749059273381702948756698703480878552798133131841357729187446557899292145974896397327268993362873675178641846915353836451198153744472616709206252761640271966407949789038512805481504864859995396202104249544729693242218982187515848985066050512325167118261936460725416990599023274778218349541310662125736320985126748771962557695043931211857212949923082873454640066097344006462617388260499524199483945110811431741406612975998385754672561599849761632829821226675372952361319174224739334283657328296077704539894887848463378284128605617153358165055655024140003378673437757425597804704394899259810459962887246035764759515953602155422215195216783678237433152585500601430561850153172247208156528789819226560875840995661125568762941156088850792985045155684207813976651894107104722646418501373123788193209660613144354602900936117801833406007100010189641816750155248241043477954524869420355108715390885378200027003156577232293458334761143183012755703002561053376573088627468046002865559934071383600282263226474633907107772611115803751259259909078307943498932232739300180027274464562124530483867337079458455457667307663489020621109374627250932465696345263098499257547578544442608326077796025758498399602425756585895456466383474143628881661525054487056327272855934257510199880081085972269473505133691333061760262233297303581054370039264748053410467510420988876194832701420211645315725174134250854044432091000996984741184154752991996303965565899262856837983397759466016487047504640269348782871618330685266518754434882647103657670382732444556445599152339801564535976004052077886157180943664504007581352740294024454562136823744647728084538593896726596874541030051213664627695619838395804675260883828308775678704946780077051560648265247105541308763772047281506299076112898732597354952178418369078695839374011057485629630289580879358221360950596761494117826602626286723499976761105924732846555094314831768613355712900887307361899456331133175920426763053600773370671799189850505874133555014825749614808055928279599262250578985769007309396257813044567679686111020671293949715813440791269945276130312075817366569281700169510286894427305841961211415141490580152822033207808331325084369901576956951739330868027930027586887452550419088669426065877785744800108610425934493805214367549261038902666487791597766239148408667511072883843576744002890769738132149090523151009736597617111031469231103337252280608654516495809840612348032208239219010201472934705512273148929572253118810106583728047652199117755559024699554814629379891675819737258610493886230878999501713142430723257888587967659000680041433504545285559513496287927836926846141769339875307934604286222602463877603312707751821255778382751084640842277960772110848477523214003036429119819462536311123178852362969595259653499350887058968100649035472026986476640030516313505291024092892289956581081279098574492734195954042566040119719957522048934409642653948122270795140632565508305076683947765989561657260683307632911896563159152867875215656687321623545609486006772165292876917574947188051566956183037493284927865317752345680929694800459701362181854835318279625534045911617885699629093796932201589319676677503280256526534255339867819682966572377484235860238160442320092069633248707049201731424761197987016602741587094318722546766998510642837436544080409791419814986860964656556887982944103590335047562761554276231670493612839845564695937921907116066901587308114612503731143347896250840757518775421811644153050056997914968089367429991538866757334241784199568235612509315694450556794174306776069021968609625996752320343657858298027718895023495298252135798366237225080198706184043838823908329744504230160044649832491622459933183019191696134839934283277968113945025245890373694887171256778975002044994697587257915954591968182374369060436377793633243914921825554013564257557862449794539965284942233691092154253682151616584581002394303487573119478002602875604533554152386207733446477305014821237859336446219148711041433157053327273538227156569207109237320727555250308321388601601653092730143418166006122928111705331002212759280822669593095195968447643838973597488538085787171806562835546444821702655107032088906259070351614860921413119358393532423275727003782589979837627906948968627415458585554846191106162839430334325151831809610135139244728214712324296225999496067283169451411456869764158559397085093863895687403277407404662204206104091964276656423033216332409886901400927265523803550717137006951680050231422354824852271251408500246390888848879792404901064850106812990599558378106824728660384312345758155117010617961746050866492580881966075661322997780113975202843660213546656719961314971089409126032193723981767927194137694502140443998253888038728452116197403581590163571315984537507901862474107916805585186027813229340555917590833769835749868642081237541605873132751600552830197825374838749121783236686994794617459397679946816988726108010848203196982534351355884968124790923503096473199568221572809130946020494821912852703865013971040463393404948428556290658794603658188252946287057838953969232605065983751692151571710260274853256397441673905214072517819046274793216680260877906043539128642939535066785419459436208982160450631880535944594128940744380214105750922402328222846707339574485319032511740178090557193579010334001400262735031248140852429077462916877555879633577573163061378655310947700718837722427836909866980086414683351134240046898889282454270875065909872263745270077548410364828485378902432812197933410865569004546946353131695455929709297270324089012441504262297705455512905701502916088901727429066471942760806563286379641648641448495457520928799925441592072070929833638707054027443133496188892087277132320934820698959847676152129685402612361273925845908959867337068209962008259696730960085128087199940422080856037356315652141869635323421676455674603572206518295512049249855679750490934924488976074631518702864975776359268965111952328742055297238506988773208999496128379609350563851145381023745815066674271310439950528535351835798548434673971169863923816413959932199114532508720588165380589957819018010136104586482073003354550057979364369079267981395102356928894610116386192507544951938236499207597144043875303364485779373894078486195261919192767835980811323522099994903456723738814233681114442219666170158797251689820265789591031821154060816411035028042991164222097672619328565459072976486936383747448970629768176145553059361709628182274688501159276666236886411747060636460464801603129713673945353137761469047580659108275811809593035355246660495528170793385284736906794478162253316945496733393783964899421491341369564778605886033604850295226619349144876700570892743496175894439518655427623514977662850359928180765709756412101530558562905465241303865498970352264509494783223347168908425400844768279797265571336025484595673982975072176004337162166830998599994875575799406738171974042083679307820960528103503342969820697332787862826224096081147526383845997719990236764276219903431958869421725118922144322430619947310326873131323434775416486803410658396038546718711846206933488548223186540260459923139167255483126945200688937472714976420426626447925444934707129579495413169419685131630258205503104781642183359309234599684062795485861448828736378688346188899729932020046194077352086386491286515967215088515173142789013956201387741443640473000575550472619094005905417840857056572219219245119848269758081178692766514340884161015197330649956020654665350657222375279765530710801507679468991817900558765181346555183419690446413548181945282175993639217489428578427851688762897761630264740526344193006354531868608991587031526650393119970661299596318218342413197627123686834936383748788952745404152983943114160423606458477829071958629131734633020611130631322739886501426036432168357568826950539307312302081179384325980971274016249805696967330800827400089919809915140498993440241573356255665714193348929889214083766272501766214895818182240514765898518465686928466950822944937648976438044869713695252180457411866772509604033327201628115608723973383872713702718124100003104948287290011425622978947668880015151630079334611990143813826604235992118221719661012420703898241705724718021426116291165203136776776398833047157599921803441986284060607594287830729184476091116972737569756536207355589326388970365268694441867861689506118109442275191276010774281640994126357307759227788884381664355366378706395297526037785260312652211635942884853346594247610181840791194244333253367666022484373786723735192651413023076998454362490786212879251938269152936762115423514968937636292666202075252497431751732920234109478628780841872667790685858982548042676039121579804637662165702186488187284470134466377237090144607906762749238045328201956614582228857893174360288059008882931204553812734240978333118822575086441273014100702989210370209380562845718646391266492947411284651259284904183593282312890016925683562167204215431897296456108590148822461432484758384608176267559732624854252455938781058213660560683121641678202059142554226803205191334437125409443248656421457463819082806868368099352468860909311679895093574995322255830433929755397242101840150336009896308555632637122308671398146589548101802311417584744196549716465036662739765611140138893691805606576684621376132113317544349040402762877843243920535918306560265342913932288369939372355522910692477528983191815072026108316209798229618687570600403905085499231997980233766593207350210639620300287343403521202822989150982824190006399449487388226742654485762118346486338187891871251037891038528966561353385635354892661000970563333492912685261830686080128175890837777180157711794047388895178081531278537224267904574009746740947041991956911557516140060458190132964010139778138681596513729987155668896901944553681400767973293541104278276366470336195694069738826762395213793053858120462112247943028466655118481091973348846146807461284848472294982872720881099406980976588248349668836577289640323131550177969859582538370680434180853463119392022733379001509031802420417922299585610858588080160558708199692349444964236609114692730465626670962838560388071183032025541693780397577044614467048974042474896325535490441248290722595327615482710349396117912489704927953870131679403137075966096949649179361042014713398026815582347399868971291925652146625388121113044193801402895336606149621138730428364623413850478970119431756290300335181684614743518879224992716011872352292075266419334906156187316615460449236775203629716428715122269365125602421822952247418405612925373556035473409917177768479043339200891295155781495493719398557070194755160987018931107976672382650659698908096698440165810188335715142490179633639787746031373371368531262784086992854676584051121228851338760838623874659361673292521748312320387833655413517983801975043986684648383432853572875934206638532251725644023982690242390651004332069045921311299381993012820961396226418627005912708862545565813063478406624726271377014790790374943624151767213443575474111751668068734180447559033570338894338290082682089370707777511227691564412810915819128569974149117780982355929385451264820030407156337268818855177470072216652824251988202614921741200517037965475679360275441827470289292542919881298310170432798429946516338160421835227903989553492776122908425185950692282179967540271412118628067919047939501596221042343028243334817691546130012314786109737876445923862187829583584126145659155002975092665702718516380668250277016795649719610769794747569545807155570277039667534637901318012057922546140812471181981093127045264425913582439938046472140913348966516970854682439421622218274346301337278390394112797000638077978460926229839505692631817759567383348311982602637708838829903641751458839505158233978743917270617048336398870061780824812168191138242122840779005567740359331927246199415925430507246584353994191855456391129677772447800089940391037343914411991593252785700058146419729421000335770818227115259017745913030125548748169875923733736337770455251008753122485461064208944582995358113467760040357901744379049324463296637334978304107963748825650049591163154988316846493314612761617018310632939054814839720404200540058945004750851581707076620366726090998298086370693010528864136547471567077064037500776460582011906127971557677765198813053698151582629717499826205598795149346192138232200653568731803396978491544777148052943562761867217197063750932182401185704843352583770549608166575500604764025707684109838417914966995518928619373767210790339876302400291324674250598597040073953558564347649335797790093628675629499775416641431326870274298157816435166871023786359468668698703359139394420586487799257037098164813827050078556628980346314729015359184064657736779254032257482606743280897735784396258832563090320511016896521362306511230601438843322351231249664674383203830947647249140229967103095810624195688358363686601677461399723289445613529845602950790959011584427366420961929241565812780994434673144168369748768949575869157055894790758576154857868539010187855955562679618568184598617259415761695939074793010616352967462856531495364687407248068883107722476444011496769786154948309791108767826760246824220211773688946676991298291351023617201899868531845638453585226207757762214984854692536746855009803422304641277536947468075278395555012328183893250786832286906403202038715479646784172877212650564067611244472313295645777277720000542115483344219710842121530509313157768256346361052168768981711632590234985414508345228870817442405028062579481956380780991198265298079305063325639686470228851720008594704862609755400799340543825407956393871818951759943110736017242292390977914681890006822352530761978146361117513548557846066804105681763442089466219563308983187926097736727611399026924325491015893773937175493508230281951313392078043300486274669636368231430064670781170528742797788903003070826622739562841147111026616223961698391587930400060014453738012140669348764365098948511811113599942043653561414508261252865156284284496814204101892206588584326574974338057580259662355171353258733486525084461154282849149596958848635941018500295819720516373032629054785870340742930693461397802173226666810895849876544984293758540727874572727625495655511392221715230011765011581607934222100214650362427803511177211037645994233685279776651260553406223947160833866090694479619236453264303241605085447411461682096528862573505100273551159779279866743992433830811215461462490001401060338396134615378093707525854567600924748061827405814978067259123968155468319700239009534352813734894737627711766567366351314844774164299295733491764686331158415703843756361978706732964506050067226725169930877801634339670592194967346161228163081404699814413778843906537082492667369204118134955667673306809630808385723880684996687836032590227218392190268614538352068689461434269940914820320822020154096017521042593891091166456670783800346238801225846924678305191299047953161041926514014691699288891955462667338938101742211269467748326935402338052461054236204294651565857695580174381406948241472772004624627568607773670534800132280424963179227223406625864924971348521551238974033771471536046036427511803515872176795323478866789814827949623562559111339743796390463658661075383235180977086328948010929759810633314374875949498877498314706981137763497629771945874278942997966563871468132017538268132037884503986429919221840888474848918461572805226123692763668943077678807458415619921564826741686815617427117419281929626750166261394037881787214534222372855134156750986801484515633131871228312618427459355166343962216781714225873099002193087162042286276657989024085667455970266831023660263969720641914710972583347636066548789464267174101553448438990487571407179114075660819227546043330643250303069002781650956800426608650545166745654628003755739304899573455784915831642323634356952390471539794968334412662455160765364021585579631636760740112715862782753703846854753642844589673269335174840319159386899020894083891393662941153792158882440859186472547054188268587983627864687101231365896954843326236449476035271473347435146334339599140724381304346901194370116531934417417375164006326303587687683640305521636657718800610837803744234455662879167256445514951897628233834093841143672380724476809234769848585175264360204253734177468757857669447973469275000444609386958521014190295441753288850461612416511849520935987246646031563837758258559264751686345519017723251996608622587550164696645550305205192154589842556198514482242970155950545542752119091755381021853675790137794134083085605711509581804624705407477900945232797495974789089934652980526765427487217170570731507517052756998740210943805542224135424402476146581741220795785036555442018070101704014450173524274876666873948041975838418193421489352573744375189923507167460139687458738415029896465026614851496146333403287939930223417192807621963456584306423835858135359898521385681062449274553185965804373701619778909205456410617007389443394864674764963308340362481492018916408073783499186081830725375519087269037975755724884716173791814035480150598872264858661951115196843143766071041711392303937477993785050790298878981253377753902410921957148935258517459452055344565998727913179698505266138024359042106864271009672181600117235112517503732243309619185748744996444612443985912047982333327242946881030451980153087336339656850578999492224017107393243192684546241873085176384668214361967910887858834034722282480362861556814956816711898445204115271260243504314031974034542523593543519346230571736740595934435297544927404586683652991028666954165509803461123718819718619309786830107320779826054687684507088108287393474487306690833245481106521293685949671524089584191347740416326454849681918932276918282453468979325934052138076270479712409298963167264992910829671826738983001877283601360614463197464918221536665370716782023620784949880059990353272902195383449413518654933698171156255387478018641196328208936376596602692647179896808345384900978981326228336428698150691384120348360935649854790119334472047041934898575595682369025251221395145330776684488405539416207022522135866778680761646330536468890584479490479036868567674153636757526370009833245064663213584343275305306527122269790107390440910501920044671963458951054427213363026160197267007868461427322679899301033159467993907318056426494064529829860310078451015823927629133511908479877895972736540267630179981918709271028802917922007332761532334601909772190835525709386180659366525667697540420681844103960492581821837615280525483450774784110062770114204973469299918405098358207711336938035853778130054894132134244449196174991914476592622942060759889333620374393045744275733738110720489498547492882820843182296013565163262375993388409835571671032252994151242205054884453640622009587861821024898149342405185597337200317342036015145836999855812662634837154748857901270374701837820952048286319243754109063605448506345063243633954497683935825426223731779520414280563110222960853423130078265000730517517780090500817977338571502725678571108211098320306274037089796578270238445571712480020286402771214195910761865691182140143261834265275526561719866086095538431273669499562243449652602553697874535948448417987629457370774761828076089368441900009646153538790708091831899008970425579539096370048891715939759673099648033205262302300289765922755225085381198484625752741676509389601307584917185837382271412616359523438328073803171379843929651822362591606954883685728421804492255670921412716084204028892823930693151178326465288749464955595644380636917050023695538525080198754589347506255447429415724131664510090229346653611840477546424893983308081037531771910837724951348253649593324984248561769571856231307754478788428032284143732537225097979651423297956369864851175543937925557060876405454375581183617675574089262468393249029699715986055457783480781393383955880910739608002490068654564756782994357064167271685172467375945398517646730387841549021381066969727915583067680169417417616388290081485529092683901881067225968777357367722112243373811382511559826695867097887167447956098621114385738474628946389256251421465625972209634257448201419874986958408244221932518648296632153222886511122268711857608179300118893401544101381361882542281195544120146441757685248179482403688790540455721632716168638825554949799890201539434917205154450810297272923381257786557407432151422155177188997714516284165137551323431592058843330522665222278463720670233104094429748778555272700069713198576807814677754620751329739754963943858380113432925468151823004037532135436364745701854332882912799658109501730734736254807259517043094929499580635111442369869295513335144414010432175450939745979100930667039671961196344383328854805065824771247073631435802306152040474756648482578319479844799033072086731783127075857269651702815449627953007031279340602540104794731707001253754896933929533083759523009994990644259443397491874151087238411719083772170349058839041761819366720172177021791128827071639170947363190760574909005782802593841234812731056265336319465037724315523502616717425847584022840799676028799266028587327577604183535690048206317306153968016173444599491931822007148965678537711022290491438847388696266462132189167102692070145263696464317789400954509378087966690398451152529176281985529023849017532674510166286678944685322259634451615366553121599376648952914854440390064775872259294589786329478077429170917668109311917823285522499424840193075123245124001784764936080250750336565435765765860839510476960508018045919578647720659738801854111119611347839737755880354174299639461810462401489382944835458993976678930895260121246407269452828589579272278787092153884214691474057195297596189457855600787074285111040602171428944981905574637392249227908673336658988855509376269194227831618505360200757275753756194570448881317954837292931512597283747282499711537423648741428683314155554341800978640262745311304343925742678160540510115236436330051810234584547941870003190180486902261727352913056452245343320567434964871539996950311724650023410610011856161945840105603053283586933867225905759293504430270988695284219124663407473595298868518408691162813124257228296430674146694857333678197236762246642573742631599077885297412026915678516549567850164621620417564259066250708867625702549336146448587111592325791412601943847328566816201301101781699731583111329842550137011561912081576191595037056873561884231301527230337256827053398386877893212601700372224002166322873551855216213552390667196783009887885424416543984672245780832740631494879200528818782686410763359151333877258028033429670541573535386609206177624218656031943407651133978973508258934228810617904295182270762873106525112049946174171170315991441756208771549162706131092288896915427738695930477156046950459928992712407975726621070593728685962557203824456674931469873652695848513619926800875763395887592753947343913818241404637539336459144641938959264578934497979324966634833493976752436391910679651918701134787338002175340847206002551823964103516349957475045048442390114080225736031709139312644916702037909393769706213250348320071424773807798776640186760720462643651407758791096753902567395661276687112908817080172726651745042932900158223765434083494496856376446034094623201911391250215141876490837991974046983432325687958744708357713475375235796928950779469744504198460630434600409064872988113437559756612423453172926397888687311174368454991367136697607584099232771417920804509636367647472425680160025392967972476629925688612747609478730220739881107422631050822223493697463945212921198955542515446576918718157482274986886458568269831516528613273612139331758984960537745249186124449660321940224086428098539304813473285819994144233286118511769082194889770724148344268378657216305805647495134581404103910791922493777615108954258596394002457012853154371577965841895602127862685851056512642770533531712075504442898745980344783984462050355225556528370377470165610946177615291471576925660986916016872299097591007352070144252424583281971290731734882688348868995846758042421856673951107492214939639788512370641759976534583888567120314948979701961077268291595768433147985567444783593855795846025711218022511223861651803893578081104018375074675318946115936582224338017817668769860745235734745785266992294579770305496724245761818144889606720423418816590558086533032214028007121766374431214874221552434740404383492175024184683908762719606794610731528112256085105372102176938297818499199495278363856054869208816174455287932241789889124141003183855903526676737835311287033315808755409430541853341905768860011298074468155227620187611993060267424416059830637559159711384943890703849632516108983197532361667927850079714041035767116890443979024683814333777117119567496880289534771476101514110836799654701463889417738727820039522901064640362387554517043278527535959801050001622687699523667670668119644109720517569666727053421215277557005837514702362580333043805109017220774766936447559708411162668158717800685589657698516962725024503456305551737940481748993542488827591613252815662869863354883014413386344190524577739687379619435346295975039638813592321439825265998429047785428116355738568103428479481449525237084634000735652797523079183794759441194350946524970790165232028610236706182547624325406516667083882686894222331485114060243519014180205612677807474531852492393528193294272887340510676097877044449007796412014422871370845966133767051809276059762597712449265965045549741822479713120264434083108355907383371148764335614905075839707102436031973788206184058472600655643155293937858403151547441776583481449007829509333423313356933798002845710213369292207990300584785694917990922078305959043302598525225738891695162055523958222738053499823354041233495612142198785527329889705839885238071152742930993540344921324391170627013100214293564770787535335502124473663553177002266449003893970622726195882267036582492244675563450512537708676461194757457136589031679331456433448042353067659906999243271144273467895235949962047552858119169131342046106307940140668869973947006887670831728513685416340498600228332758609041178743864639614361545343388713031646242709146450258269870140556985243737740588629765082633295736490858424170760695469089500565667738081104973152798933778651209154581223978964519273465378967311197550141638688172556639873623827929947383234171723025222679290963345406296773064216398072360539029400779603579780547473412614554332742473756810962657466844686279019413044897235507912896733843873627687593877935104478360278888757059830075885854777013803065846663832860053370999177338485149502842928807771090084456089000240631057934591714107418501012498130922712696058578799826212998842818461862147550547825909497144533792486971054069129103295704481813573610403033338349091464642705701081534538087075777437644282475065887211124301998222564091920167763338408697505451785895501419902360556747159926771871934323016492836464487351225473853874918489772585993675966253685578082617843556401532377817769346394060736936133992308174724391515234914729297858797369222050078028345193504796856253808554171040095741439776735252357487699569261662869572497363754121635865675629967369095503242063357430295787919127170139243371742357113500141888428701540821131771647347191083994106456603543980180236256782257921903979344082964126109666102742874401483586878523530915571487870826661366391220800307135865532523575161444754460673866965435938463254128539521873397081535160138430735676451860066848814366049739315629756357101733214105109774762104523495134257218734144468448655943120003363733360079339691953862191996498376014960922247907508480864796589003616347977772014968866617895920914035628022498058312903033664089374819042249295770533300747809992533985669374012241836613295008524562587327589712443316960680279916310128800173278271868192797033525921599238192219069766367149216730499268810841038546322510638026331293036291424811307113613944308453510344548028142201370366629995737995155797763425319557121302853022052379861401441956351012837978083053527692115732614596482439642086023111343344772902487374476592437010964007076058069778043608880260140399952048066528141053139698036055113957603047303637634938944735039026745591943191177322095322651296752859864693249133588932766270878593486093048953578680909988274498947396847211207042294800790899694695714944699642244603424685519404658308594759107976903835663689366249560023190241020159104944322573504442512817794119104984485182039935467445557600319134596798940089464538373809296858373512590513350523330379921426701594931555829585571524736385022329365006781786428180648084835821853723852365815933755652542350553633942429666532662188065232472029395533277025420695268683779621441614595045543615345486568190001681506553677616899510189816275883484575978886969843856665946248895867829047773574165552492779326385147761666518570107682100817707125276207250175828379292243803093979679316149104609176175475593098593067911520251293604058849210411361354219352239252006791834709749960121235983685013112883695185782916677062744904247355566925938128568696851605370870216671499739008123774642069037275277050887434072666311730798296213215000102992289452102170486042321336573521818839111460684812302376911013675141618815820017175891169488883120954261139573785632661736411159509459837956429059835183657180441062780798307901552679827026031531199148467224799326399661250837921693924189290174742095726745617650777460950740839830584147214811277326349542759905525418759065176237117414164794735613436476967495745492993682402076768659305746851546010746207217681109908302854766284219281100009176238708773471383917152359690449442463932854731070131657094725681394696119539288877052054520229836688345379026433285116558040302470265352838423459886747598946769365058418786009754382496577729704393250342288335279181702344136611760827293909184928281861546917342298685817950667186270740657296233785414396871398430145114817168922965289188378918856439145761172236787778291170645786711829275133711380877419834962584072654854876025691024510951489644388160930672081509614209148297414404102482568211450674809761599340824933524484513642221725625269761070060640898054563620316158741539011947991717960047951372687158765083400306966869783515563518768980910727863329365474097318748419330232489802276535293628442033256720440283680140074265161292073020429937958547534755431278186962092845388709978578448288442580219250179155820441598507892274661163397535589950420214703680963147498888469788920665863230369939087300065494995809178958248622344696542555642595003666745832710788739992464522037478562223616674358786189607684095173025864056866517164709962406588431398574019111013636900800126227335348062560579266837777215270971851767333654810564265554271141960443059077765888344402218029578875231901148496436590259454397974278231460998264368751132078459556735888320070545042824494044191702022314952827229195558899681977147228866363479317133167466836148423081374479816800958984557666308875130534404996827734587458361696642559829995492662940896258215281198137233614703443032727716563148108179201840853058759565514994743743705137105749374922766033328025683119444299071234673065377828454909901220601815595796423028211066457758474889298786557913323371127629697246789554623132227991102679282697526102028151343229561386517840392087285122098939798857418110542498263064439812685591259121471459617476998664915837554605388596917829774964913988444392936690765828654842725041437430416209676665136914286903835491955989659526622327250098334028569937675533576504335233506455033656281038150455250337094322500467486203292403636898374048461886643477502809331932535041882589579108766081907889067336644861154498322283747016263736111025727759446962720811889884445882542503123588783522881112777383788786072504772478198856620495861532946652769489078901589558295690143646101314632552828136845961601198455589107835946520726699201011604207704077820636631745235315788056759150842492971858985123769647872187039953088717158585375155598173624435016449762642933034847071503619180344225160213080337487296547412392528965980681672232500995780501507926686042798104051418084015038802387168599528240506097975885101838758438912833995096720712794604896063494671946662614030213397037194462527412371487202701750029830639754649242490561796217143915569211552083411880898962059634326870039520926134224810663329363641085910500700042112730688306173096982742613193287261966174128014763300305851041553297907043709544853597556601476891042228312117450396331387538801747227664545043496676857065259038904687423347313623203177471021184560683175496441477474391277486386133196170048631900797000711686965920483613882459082564008151941696978163936785551353084235415104433554507209455870630188040748637042548880630490985472483286550645305055154858992260617668350023719317209638682678573399441323412671793123175485401507345508507273634222825188071091578744484154510425066616814763592936437206013171909358900312857233496390633074667980875426526348409850450970190922015970945160976414945704798220206183496153992958824706696308098115538999623233781256150776403352925262708180418318801876012769267280909104667051288722971783802443496378674510811821491700074587600394673735972798827218381398208435908767438678235804324380036329399145893569651196552712725909239440033661477601292761682035866538165796759475573710770616796912620292058610482785820316547555017532336501336578824333473022134177655277136984863106167164065403039172693509487243959420978780833964965625317601560133142383943948090760087021375785260337970682641041162298664441665806388061737606520400933123126578119260850489296764625807164015937599860146574860049878753283949628379506542109338318347074734666531568821302508164666814165929207223975291033556856497128961197505781693734785500298242656624141131765579218306280719707873105721225470803556745984676986093388942630203132488833892566057231131656979382792329016113866423977569805796584692234895466905853181792165895310733928558717726524625138412145551153416278299533191005400448960459293289243967034599623038753350991056393562080086716052111467834720969129818624185308619892243787969278768210997131533688587584283093222936973392164367611732962657167663363369042727572067132508213645315953215418521039598491125180224010456141901848683689751626475257084208898501989053022545235440818957956501780360989132197232233639909347820264726728763018386459896903206500775832710693958922954183264508630728987406680154550929005408975924095713223121188298223266340067418031256409910932347985916796435780219764737189140262745619768805327006819562094245882973386997770050090902332241458130648788288318929839479104718174411739889975640707916824256651804226260754269765965859802493092835917723699787051248886933798102389006289058087662547183395405002878299883967268108274621644515319748886703119395773146103418621560776830564352004675531619141016591060548422909749208080880727254000768418958243935956123646308409004128838426290308623858441185577235269948063391329171854947177965578823833144609910513769642481711799757851109510569108850473797581144062863657915171082823766013764014924311871384094381113999069225423595130778378378687842405573896744005983737649153185574097851820368716648615076458948011930031832337321753650461367404821994472132374871106194528333682058769083413675289794985099879025168200263079184618886287946678117519386260396940508595231213932051486324843321377378976503397683998744049859920698433176844716653538709188765439217236478020091758045769804611292468151589240347843508177007295604579053140067776684131921362067075669907155322134013228248244531294773594823354490413373869381519875568248544348655349884957022606726310587705726773180228265365968962728437789174257876442691235130752136761937199719839480705398092023664024501181079071029065817870069217243791066202067669316125328607050535264104451616779282593973640054834865734754237939370292373875550444963355017221253163717473339674036885923365022046805402227247411550826402709360385834802460759508569145576952664841729729840009194191291463851640714320243899618357906971042635256201094015940432700163029712915405247862348254882607140931445924723898459425321586944201661338035920230592605092767503091022372976618502972185856450328555355720442829266838610613364805874451970186093003077234231154125145952203929462013124290004825069007154450199463333486968196776096073277029242152681992950638268196294557240381726277553808502761634411614590459176101552610680114592991421161240544179806454019103988126402258132345159012275949604566504205955728840300378345161557264800590128292447517754740740796383070984608918945651780097537496617733196284201677581537213998419469898799487691157326029274936067884346526661790713207501052190365884875556521080498396812410065032503951112635286588514792600138059837159439707808030925428351608813289408300096480558549855230869878787139197544854491988292431034134876827710650701262821150558331577559325257249952719013091112896470595625380611269766224838512905655363005959990370240741210939218470619976879439703650839309645721639786766016116079912573801629934359722406842004697336620240756749263805863894370589287275344010305414955542266670673958899016520091152568741472372484585585678611260852481652748468981902528900388979161899772050905325045229417151416010477092814194477509890306625631235654593491124796880685061831546364061347981940860127001526115979846112518531376038914111441343438313105468421937374232158567433469574135949897223689871416863090660852596377265768184805761953933054055252405686001583993845397014631303923008736209768012501822666086124754641925862767969874938201992584168973065982385770512235286491111100978507670076642682444940321751735429575483751576503129133042299554597561294924934553640870564913138333645463323964756421745974238183243185079073822767130034245181089338717282294094206072843339371029518496886722995434574172234199551032622866899389435644220444146522016963563485079286614120941758148823555018114790638525236143793785283058824106738491206648603775278846786533096815623434780304410414975754290797827974520141933609675426323458713216218132259273668143522847353598189430237127735482542262144384342651983249368522524927402518551893864204427275652082142487289831934245181330658490435966478065212183066502620887661017652016693787700345060527105867738589439672187128469571798512137781688918174084242690919548375520719737069762197282646125792264798146918306075875361627159694373448811694752954521093296907534744523174349221026225626775415666118831866398736233866549079660145415938319093568802042630526970684126025719602358540749911271408764943047388580263410761490680432960246350992827847011800768592530335697529902998868570167555881948567332414454880551510533817858725298280765261144970522962588721411780314158014513383490797877731295026735756780413883176004573401001917833321746562370156083334397497279329367693633255216514563739775557379327071242914214484298204130030079945352559202987120906933883558820759245434431249329820608488178233587903728917803728266710789416806383852781550614350342806817983235208249015628844658161546058869463996905488759472817876574103917099723694185613026474945697639819330287928943524101224527487793888279838682801587508762486214093210394615144165236107730364105491137172017350817912536805492829520225715107269087648259993496345733160013560808971274323470372520726742953150297012526792434048237032062128675195035948011783155872174541781185342030544436735237750655799495444508921654116981775845437542947500080144587465864507993586678900938241061020127561616764707163045725498733701445641346748663042156713151339356644973965861646517570189211472841655512116535988456650211847587071226874009925184244495775649520481991876023270376491393286421286006034876806414218314498207604226764896569540493118662901667885650814714955026950389303635394655944643391251510116315822988583641861070045813670950305995293889443241372534746168234456290901375424525912119020500694383542773952931720463664276366585439277973712905746434823431931115050996641922440102874162360043595389587207668870390051728520710305691091948934245776262558844006180695462043516559025019094696432015770419065962861095987918910205149135236218555276865285849157739809423552897999087504725639394313090014924780712414612858090408794436840694244267962061001774456903123831174078089481117197337515822705589052451095999458309490676295730472638278186687790900642662597683348799498470767048411697847232642801493112678088608466263550603535371043804685774014620525703291632163356567287471995813843962651980927465374481878136556114588715824949744744835950217528609534547455743166293315559714541872812753444296025459283819604451100532325523854813287079766931037568105666311796722903144602358407102487245834472669494217161889641255852370898875447616810229443146599110908520166254783100493999299477603765432377577997250568776981264506627547755041668157900880678870092868570850310381058214926706070073968763645219931184533172880839391453552031763144956427052031473323656373507244504529916065149727328797440006055204085816816389538687937367309626848108823223067018681510072959548917157567398570168310154068193931378354378841061376038815415969288879175468250361834055194187931418138070903912536307294411705348362991442479409242503097213973880385715608888627522425683380182470521823588680219903630056449550679926019926715667458310541074305046998968279086633029797130267234731361646887458447471967291891851521050866659464559788752838323141786378962848934329283103212053333229139170953340568507960223031850283168024140949291410999966695994391119729378443092427131586740198768426571649604960842193545129760068549420023783566260178712096202157997863825963785669418982875530495771672475967697012869656357198461769480120938372989242272969203585413093523616171891446731224141282058396115905655539942316529964586980198073349820469834563440899229726873008021647116303875635333657584672774113756075599778765703172093248135510057434801864474447225442293337643383501123441912706557987269887702853227424819001386261004555442308375188449905891177750208586237744250530904055165914759212215237110448254466651265295276480742280397084553832275627283547077187536915273753714641563327232353947046772454069752246098977850539062851285394277865502755648240347837645766396103904030133640236079038440589865886183998043640938804241387517018461820045710657978524787342488262023670400755877066937686125022712405651878577107283876170317778658786667203002529064060269938549810887405983289048048800223474938735107937180140568608592815278086170480010622778982186163949356618056006576710526843468847795830452450374502590666110412071999903130875375152228607406788184694769822118998499495620665416525478662670987918117424905935726530973617765195571686195309847103703711719057895957053672439392420559611383000376819702673888619926948415275236145974411400753706601390884198117763445815993037369083483365621735882842027329014403337641492592022768153308199101527539459235132996338469697020032068179566350388731175709877616180591087966315605635052582716076820966049139794496521071161311271179752597475178748765484844641807574380210450029209076846660642063394265300736201992395766133025891973497305706739715732354419662963031118132784136248213999544921263848301633748425249471738715749640317096301404553467044501300533458435047834301736317055852507484692251407196615601130561916417360106552262844777514288455739018064319087621732620836085167443773400861948809497760301832339826477144030473839413212947487158335941702013441267132048367491334881822725887628723093771989537455415546390825600621727743029014677291770341770556061921950347025617506328126006815090976512713928133441679213805536653104663952810552344565962061590233539669798877507354851571525547755588106889427818462703831827923441758861087536805837939725306612004736388057835971173605853396648732889452387917454489869211454426093361126787085209885311556063866873945049731112154348310905421413006302908537521758545455854183169923659531362620880071146124012561204033074787435371223452786500583142807608742155280720394071548754723607235462722705129690512051546017479764027182551610389355441316967947780125678090695429116407639856877629657315327735486185561178635147592205455462902447111793453585259652623641256138620651038800931799186185251492228356646823964156562884971800438041930145870912591094948214110648415201785174682051042678234186918443140980143511203073458332805090179757175807463514728351529084293226519801659256848875822574678487758919752381372683070241217635207740206841742974744817997911331501268855715987275653556694288652492791478423010918939319317013941663561222645914205629232165171287592509372059724412586353690743037789615176239784358280746865368816010942138917676518604097209725776657193270913487298708617131051925643487666132734781960055539870221831071021083010048665790058714522301463555796570961831788809262237811178991663765374351426733760020542950631528357269947205460179185377389885466932937908279242687138421749383410857211893767402438884941781700877019705073651869313004340025467207742070784582468157702597001246824766379036886201849853415572416323879750232139438705145643960053992222358399508500261898984858193145485343411835767752660718064965451032286500549290853212923862826491048289500108611844386305492072264027911099628571550609032918781609882496264834566378626290615144996644028144518843403749131377291517949604666968694946499188996037342351172250730339464502686833624729748524843969999624687055285118657182136317456934722612553529968394511652840655884185609975831434337412482440515410789176575661779287947476769494105404384429685091958047483273081909727213571778257055078297506349698379892418018640436185345866699771729884566215966725220044559004665168719143937602981919480974988838903926142128605955369266951509460247786405295515562882986048136711681625172527278338037727640806212976412192237483655414831421807402943696935949509875489805446004564798161385765757756924943786806432554751362753387084993221295994024656172976834722075143048150037024817184921797123101622322696506394948223871963271723079708853147346450164741194819703707854074932551164519425568628579192156812084312721671874788633115680018948818618308004523116461341252825148976047058588685065543009348358601285863817268182731359127162690742085883337202907812491877557017674190043715996453926236811272247643079167686484349833895974273841653406669182357418852071745642337539617880578109252253261231005491181634522598574671433720428246142035421566846690201655329201071719705243996116275546945447097723889043305590052025754203725785884322755510730894454322563491651896282727170405706149773478222608253889875402047491907301329495003251385249343246267250245057948093314446564396448911039319503779007920803087898898147802555533860344203617872677663100645591451218740661115042371887199416100751913315093600719170249744222060315153190058728052184843502111868588799513148017916338194609865402324747964867789531497113188940975452084157810330001391209368743901923606052194910396623073453959240691364868844148871964665537593886572843694358939225452705695016752011747302451338234937261361244641772355390951762060981505467627974689248123038412693679668547257927144983541984871615988081657562030767742763894493788547864978919426538649283414865004544357704433975821014187049686739898765229125040470532777335635557651152720867258404967941064360103007312335688340637432314053802626309072246824114444140330527543537812674956532921977329615814052127708112423593636825733312432224038530181609712825742828062826961473512328572733235552178080313761608203094867039046314236744555080343805830096418847391239127495347927113015269344960016785686193334425180299771644702303648207973083142732737001664343344310560936338150834852934537479791275825389090185673303783093134930697499774635748144401455982844994552557462208344918374007636890717365752800817950047091659405014477109501880839939670087743397411786908987154897381290228686955654461346665828218828449154672572282870429705159294008402048620923782661602578957790462153613969772053445937120190342225859252778343988977835824715658597488983253566950197516862166221559806522329134692070663452901939886455055377599301606837682043732836713592576164130713658198082302036856550777942584735655394143706736000369779601754372505916712568191857523885415714496639041107621358894556442483883314846423104677970850278868993938800366215820408649375307848133203254356277259497487228942919992231455564110047822025659818680448294483718472113663924314277465824646432225164684117054270966521133421300062828617100855523837642518387070139182696428652710590724694375321424726041994563442477809282783462656093482145982875904903491540362185690488261268517130832634188588260541404599315837939178692784692891079777508135812163107813813046588065787611292915584830020234061810775130251858853223683321243224511628945614386405422452383725491881716242915536941681497917988207549366777036365942317224647185161493626036392569148395587685481680945293476197343368395462171492306941061639398808026705869776211054051652970310071361522011161722967385039582097303759356866653770337525075086108685533674910920015547706327232667688322819105925596147810734932134083924060729370649985573561472288060050958960739896913774595014957263611436122435298943533673609002368019746701461730733020702211312714391556406047257913914303211744028383765093729766852824748352438399468199397051523049745304506547557593404966584253287608826088788393382669275441028431049332736508634330612987732766137737379933332442649133121762509277963758375146767699859939749633469049267195288472413537434203565323825782148138670155079155143795666599909521270933066800238599209797841689746142761993067840793875688290078684097195407805814408808553053223329134039067733370201683976773911423141772074494296457673179001433736448208951241650388927233823768597719389292108741996546680056091762965784649942475995538611476147092375276697000927368044683492468802188075643514163387665324511725281047945198493945926012573740980643076171948859970936829364577888511055990194243377884769173181616747402066361603864048042900877503875180504640098413583394943084952444611317173012337670919227629283105073257044111842817675188980162770170045567859092827221612308895086666062096125012334168974763439989010251310178911725474232342270753971808255579693630242660458027085199129391585844785116003887424226537514197192944670917134165157038537541880569515214450076974597300152468936815287564548267433499279220824169730761328999095377773240407201188714379895029582274819023194347668849610378713378403364375572275308540302224065551140048622367397927301637055976984532583413291998807216218470120481532242720771423640781719015585152173270760690773305934431294551767044620050105924137025859649877273073386728754333786421330800185091529910510896464328772573128720600520738040853340754279095604633866508780245754853314455579051010632241843393978539782525776397058884587112553263034932164757762102006736998535833250723278125884983079998338258668552141873965803091930576947158888268033967826343812953756177670875566092604499402056339105174526591057000113888192326288888412042691735078692179934973309397357937907799366596823784523244998549207114040467790660617280842194029476519399011084653325305456361245783850007116347497745939534421046395992925099680171385653356676265499491374682836400600221100873126367919226517074712100713793490271857612325921677619059992953709503956163892262902117229016766674146190076248991366348351872223416594297697309967641764344367958246932189340849416035889081318405229138124972630682251861380776944182557902503867803928161008033909698644439279513605357806063047742854616768814052875453125854612473201718251323894844982245882985597902358348803679974114174442816122514504553565846105449987070586013168276666607126528835710574062328582391299937318825783522769240432229704024781789350972345302718860801530572181549920176117921933339250369928193293868863489609385325961830243930224253411413906442525662858191235432019385875369406050592795544296789613984542533532989705116279625541414649262737617133800605519701015152289522393022006846318660609940851512423484773692407468935856338638440637764221093051644264896341554917907416372259534996077861881153665493054017098313653965316961410807746192627562960920929877154180177600121531710181894200073293473385825206904281070464252764710101426783659675698352968854427063583106702663576241986673407310268638693494784428628753326658740384820907559394999148924733962105058739721063354930386728155031908099859460618323303684140226734978712500323320376841283510605453097100486605154842511386051189298024524880204233180420065638967268691230798347807940892075290689117974294942396418459163261619216284013570405425973469278992171407212352835004149739507534395252068208972512378499875692146488520130052403589098642974905573022960088772545672168036285872504237662913882478408940689493610210662836691012814442943083971533700751494886177445347028056607423256323685874054981443951036888875991345696068108939492686498904162612570920545697654920826791063042913304780659415851528142620725973763643394410838404246625784345484892210746142798521744630225465562914051457001538728461528015112577615781844768733861289581686239423077307404193597536261101242479095237609417832147731643985717807924211103988196765397694744924815112948253161614081427114434026989002312650442291828429978776516539848639837229254309009287845204949698721200820343054832527612720447699329718099775543196550165193301949087064223832854148539939034628750306696922040893510085931234560851023866925827807962516939732275832926618485443415897418271519683680566844450771845024604652108344884716582464698593050044447557563397132390752163628210433854618641023419874926867891239908768486039733559963653881046611109646730195656498222951942265686484381702464737153069271625695262729402126229053441938393238164054547357495922076891122476711598913132947469311754772521686448090037674878464008702848905020797571390966161282487117659485616553749374639687278197099025976675990957371056612357413152192860875671627173979158478881961927817184911648284793437198729639048277967744902897861034548036143546800589181819171727944651016707237208579566363064239533325722065237652234250909667384387723345048894452496775697310282473490914675708535490914267541487375247794119320749456384062598898436875286518083215381224799970560510489684745975865570822623778261640847941824058707478433955192288634480848312117429458176171214305550821548482279207524734353575306420303320667191373091548455074328190332066122762735029300971957260636873581461621768911654805202243703953699145533283953512569122915360271049851384505060390148582207036393683816332458392997030303909022559643634627201035667326495806505175765515027340518614817784647112768050626104162052384623609565850398964487457971656730955569464647275426495990263202766862640426013924925967565924316030822371855402094469434241684337000672665641065949498575550397818448063646160062721996369043419745023782407511231974651374905111724203561879205624047659465150529041515218525136619484166918639945359921556633592418272526817397475352988815936130725898703552637097889968572440864143166163200118192119604372496549431418472252421668938646989023490768644219428017067394337671457453037785506270024782671092685205265438255748654447195376062498344028490785758336820940224129864800524100587591800074619396035905611059701769020363589773502800762058825299224641106987574488225583989556888149759149501636136440741536724786984318985757064365466901628216251451190754808660098232068017284810441482515751707201494475238636279892804012009221112662737542893162345176143065768571695397161648432041534436451332627438009706628065532758340863446439877680319987457021141408003574247274334810387032168948750658869119003163125582559114203730875630822538925925557775700313921546362287819963132283013125625221914700955098337063025159112720065841569448442668375842196368554478204935302755864624208376149957840313246105091284506688227923414899247138786915513715220949716922344829232582057493612612466702247736141534628966054799595620744349555266843874373546920443405594662275013020698638179977022332000904004189181615586574762448177849149054800142269350296571428823041010111271924921459301725618598115992406913607621596054909990283172348793217038712868451762496410936252754386788201796579142795399880623605389199770101596754590877923626901962547961916826590356343978555888623536486557540374931414833819874857857047610306936030015992389546342925211194290129949274048263343481734640570643430103219092616583332441447895218576097889692847301341541344830610461230286355710014507243911646408719493480952833038791739615456217769269600492709446679156098127015787121996907574108428238694320562789853015963152896110703466402079976143685735273319969181968994258437822488353167937854496237036410792730185289179759858866824180540478954103146065525971471471249081462072282568844004961909369215505441746609872903703590790635519078161631851941970915857556596252115450359943535956511219308932733288189161507267768325708905511829557279106930084230002155769789788717314501979354525842134210130526187191288056679560406747053227759781694414540133194404937402500759117713128247442422144997137368105703608246975552190903242594743968835631921949313645803626528914349640437778369063678917343867022131387352305788351294061648186924338413333156995304336019474394484318026671406291715360422974318873987168602567113237711328688798677216806820837881385645070342111227543494843209092725023435594194188886660396802193287539470854828105636788029104422488910899500610018905986084614661953045721105867524434254992714945755384792282427995887641253183691813319716933297855425179302370996930202527509882332557821588516225796659237910694428442621620274954548825122067831064759312141406665098505945026629732494787554611408711311702324819446653667282037332790925986733711324024330663838430918890403486968841304243978293499493142558173572954929838468511171984070006410097840155839324038113942917627423334724300684458550836155198194480455122010571833254150503192738307966193607910446616727780702306353247516754331110231517440767546515076264364185528177806592660101545625349850688870866254851166378956006361124224758092176204416099829682951309473537993582383560779227271915981657029428581528673417721231262842382124826757775461669141118848789370326017629004183601367178048993762281628662740069104652888340372936842214907074448646753321015535253225511812720259429228292728798084537990577525710322906389500465919370483775050051429944531627894465132080829137567753858258139184617095664379186566014338255718586711272215370117216187694017321490864867041568178078064542855033211158533140320546458099841768030738866531856994439832816136655481084015571007602647312506434769601291288197615978633490340485756135376781796457532414558100568564680462999850574730653290322473213330565303470301242785733648685545500860128992141955767489139400103143422051325424024498053223178467283316814085989635845945643220967663524596875843535111182883713560576449630442884172702020834698020982150109065110895037105417036805837034112908912760252250636484680417777375124368987155220895855945049642029662766376396359211523009023224237301939534922994635025938783999686110269147246878617940495681317522331863970432277834559274443015220726721222248244314829729224614740109819769091256274541303099998800328461297016989599690494396027548705781423405643852498474604019217092253310287231171955481289705640526095306564298558279191983625655404948736932479493011780020209200240307068771313362051553321683977524552584925704227262352361913366102442003179830559884208854198054924953918064029975595586485298152165207692686767517451794189122499300714244188115779862326034495563564399426351270310329190140021477255460746824669075188986128846027494264980227162951216819379837278532441535723243687695488871460683667341169044886238439587724269004912929352694148270528546345361158567143971590228860201756321425038365517693836926133252035089974533088151607286620658309912693925491286124684183128998772565564920371895509251744176112143462655023350541991763989145149935840288858912271274694983347125939290061298698165156622748510899943233986420522289612258893073282679576717061645440847511865892536482394879685317915236208758628526270834591601692363131531741862221687844150164739861911779189827695031561525172809634862736463459910948575074633943816123753206409264571094146222349028374819424236914901542731104154300698315973371085159947361346646811590786145284272385661346036342979272656492871634598329350022916907654758951217369690443324875610347545571946046554059881176367481932217693923937531704944844812172339200802862778400697330893560893975994897860133714768493892068429024282944901018143337176279838245578821773395796056437092228925762469491690189793295922301042845536722006664207168051570752996105206104887816699044819645634631331780511143683152113377636028931577432218213376941188538687319057901667413394607447332352190024218987183534009154532423589308463498496684071734284077939313426525318157687530975401173951466345216656021970398316182554688105058948637089605562141151513821828086746326513193859567282489982012528179619267445454114666196258228413980277921436403517097677945614491478350213592415708755102583778304688937657124615294212953526982134956275080918724891971527643314285648692151178528011804494398665999438294060440912435448122116096846118220766864522309579521596740198891931352648887927676846025187574141244392608996098267971988435582039799538027076824995976799859198707564854746722887711066103493656712988552393741747577789859320664037539551923834895899809680408445973548789670932654896882677260305506173208631412569298925937861095509207197137725509992211448086377839148763696393443508877957927019052795738098005289203867946580531996055279564439464938744360689212496209467034477698596357729353333258367822897257236110815865019860236934730310912882984799435468460536525625638092523668077459366489424576474935612734627202245183180667945977343142415409999432533105337522685139301314226034986958726668334632543532110466056082313679410589525668555546785221175326104109243462720705762438994031034693386320270124562206291165155787411112918516339837297725107893146804999605091306141584290403105121110148760947309445369598612682061413990768181640582359407827416069838997328913521694368396633603649941798592813535452587353110363222437820729719766086706992509003817086555463244935135078711649813714991614572553961648177311496076247829603822900410626532128978013073137323581439354750176199955800295548614781358163897096788099914945288940484235463052891673211289682550013133456826048079748542877445871238039982492461937545990102243311071153229343287904597285343008615632124063617077107223468513981110388553385529674578750123424894956198158459170497092738326717993309324244812032584865743104598866232275544247843303157071355348608379859253642767919693747636873695708525775123143284711953038384439355488405611811653124457696601208300178572067976180804753964511046028917956159884747359502061609246798791949824200017007518241535790773905253276644508292631460469039899605600422542046107224759981333603056902078801846895369623058657971186994718140067375072295419907041923408783477754374493068512698821046868179107273504819505583851830101805265380744109870258921239482245439107763482499289970747256338697576437566367502744975353489636242599824211559287799006574000303775812629736063681618464428083215410895844245229009241004876709514948732588220102216125552063755829298008458468272847319037411725585610809437165305289988137939908118463214476759871261253097126799277396101025074244510168397255360641522979735878450131638244994783497583384908574386473618322883463701366466874827711452668225515512252680707223825759628270055980160844849334260350919240419489614886746813618657042886696609582498032644023284370001724147655746688403016132446607604596552735748008021341233336560733320694664444754841097588976975199821567833663676863627257450028945866420871254327802540757660131532219431355038845985909348255961928367029804592116314387351237870607350710166176484422530494308328545096434179953640995460841908215821741110075852177423668857161630536745522752587862646230700960876623138072864636177671452632289730944654088405293224508845396244565516469153223795678960739880824762261930225873961111468090270112433744669492952259873907327522920861264082367762727218989555226988171777811481460559374913744137126511636966246662050172631917166449920885064332798407094614928897077350874923397863218577851869843147561412681114835613364496965308628458630347858187876880553366125736377157617465224699963534385541066839343732617043341228476166769364839769096748207732826741908812890560252207316359277328746735417538499073638431613455364332302440284041186930746535459018484961129101908854790837452652215767425703115508138790028501032396979884806198422434780367425280923705457462463712293738987774811761160528525809155372441594972340304036308755148269969394697251983535314563619851230317315548403795804563518171487641064425611199454132182525962803926892963153764700542404991313505659840082852780350698100103287082730015631682984257298545513668899155180043449571328593276601341532620121563647252915674281499447163649261919291826973020784991607316144000635082227142098618624716349578844342446081376084213335885860742158845926472523706034400736580313981607421183098048982613957968578753472556684636311302375410673582032445826666246207891394061318856293927313400563810810146684252537689075413168700718771117166257653298290988800171506360150613103662291022427127243438326906809613265558660628866716466756583624463074942134286810530094047613376985706180687295838419118304316814015668666398709837355800222516509807162835909351051958462513933870603548388288645889813076719349859350088052064864845220892058874914541237440297929179965642184202866308951655774127279916838667669541896472036173709962229959879394711030057569124702208265099606802770897493591241138630825467203554879043389133455511736464631092046328058257263805468444709092851726510312731577883774870850139646798159140769943881974274520608460146416262804386666614365117770056514016745704869085762359369327837218528857948428819500086243966396897687578369949884398537075989717499760552056682918449935966791457665978964257630746170052660996446308122484921465502283771895151234207731639711723815294705276480167224670812154965058286527294917300802753949405376722804285585741616050360762767637600660017071747924294817496562864276986209965696782192638014799745558567338923071188330750687054100213251838599860387688210748111957444784834939522526577225168013932738385514126681063213238119184456032643534278048190428944970175973164336934252114941495568776548297698708038753757317596998076136472955854264467576756164289063136604575415572978826312905478542509386621677113009231877467550485867316166113649711039959447285010359901452048020791427211781236917552811356804886001060537055187496591159037454709898077193917435637057001896467517833431817705592372405318441249434794594284615550570588686066278380143713112964729215769652984415721206006801142650311249653470840466847057503101975095771926960020010007242907405545910905287271063290881513553990113321164474313042112045894068519726688279209920315886116475717657137330448063323128806137214403866175099632162205632015937157004999095969287172238552240893176832351629518555161185864048716530318783661246933985047619411121330235682710205843142654554296608244259963303734824867978483871389089590294380968306745457686834107722517096241328243867303314182195121576469797079599150689080518994433380393746803246696592219270094772568028870218004133717544825140417534261789607255329844749704046785701542401262826222251349561981525107036384104308595672782310035149605544506647544165303311730415695167923022756598706432818399429384551526552834517604732903763585921500038739700018973100456915228619855956153287413378299381878718322584554966446106995029044157200163968007958080567352722545227473213217565986137802760256062721806174548593594827272711868597907003628782988120875736236421084353279346538915541549346486438943315770632557545918034276462455476186749129243178488724957257977145882834335215667152669764977255199860170726376689863975791124409665534841059733071423708638084309944277150351223243076009940105250078914640394757464442556139066911727630763495917050321731891937373948231455906844185209107815512295248468116355413931160378551660255196453535636233887820329141830870075390315645670445446736966682353697123406511828522911970247739873457194469151782944689029990798551633748315517318520034424249657579091834770027846809639142181100864555788118618806801461742488547651696706915501406402098729201486568391750956390223534852221825159937364956557344910111156206772149457795532269792746613454502623905728566281653885316710314611331164746368966313392765486675004710445683430940248577317921243062743096624242203151814360266464406258263279800096690058222516331861334510494002267029596830316321747766014189102446654911941968024636217237915956124835320787206304784222685545068652021185378330151822411585281424496323917629917598483467798266906067628509902027340229797569191876631562043436970911494867488765308824157253451044829308650931645278505172344652651268371358075059624832233654748652758841931740484972071550806275982761825521935855749234774564617361463055294864033666405381829836843970853363874902126635151507840821589446968330599348500836706729124977513153253054287433766806183579556400125769841997852528131184462465620686559316246412644707036000211602298765577970529720929575771632469969073566282719052282531396617763732280397581360366112050454282406820308785677879295449960367352418871446486046444941410991556099748490232056343897886135878307625364542627119145033930042855310081292252359977422035201158623067124704285014323857376409542245443868988339419400169565015031574982690057236163572564545367060564485700752990888350731935369753302190441269848088776166423139549269470307480071255731293034093555546278523008666894848153043631252794741010100995737557138867576127323823159060808558468851290086671145002079814637314835326926523084819224452512166065931146096062324016717185354290015019661972757332634025200949732826934409673651042893997321953480877141768616154966910899517689169587621170138924593660802444950885592994092158119275090730218337882309294909425100361682215621858517033657099798138395537927643059217342687983968821143780527320528849246681247650265623195345349857989529251058747203362193444114616660439961640604630764861874237694804607843115190926835437330332053118352567603825418580702331241689029810551109069306182403666381869925173135107208226194070199870945370086945468865082418382676331912842100595026078255277977762752587400890790137131686614500688198128782360930607852041003754026849403617994061037815897506696324230465549283007075065309448376750396573776123050155401504748267919530674170091037858884917538799612024799367161963335389146099363204797129609325045386975730182356823291152943711243706180170060389076886585721105830909280952673507548923066447883237783739097907157752088583577386667802505804388820214446495673677343311344273742810996067542970606834448050057540685676026417346937128645069295235580923563399054651021384456180580758938345882247877778653372166164910412241732715316255575281631620664997912440833549187616428108650625038592398243751879689828033697729430966324402781426421701790011069550430739848226214835832371677177307811317080725706500137643614820362368182968654798299566916724226708118467761404671043578138364351616684575947271841677079602644133633094634875226482444251069108694382727185889137895618583351997297806385247481243346553738097712068989075353762344780209558217039327361283460897673083715953010693679150915657233507047211872172721384432761027036322997795898370727687272952176008957542392278998106192072851781933974927811134028776084573426352374674007627198508941156231202327526057425357786255815523758579241727179853972440943038567965948048448865528363964746388699967278985292237694151153640640650682826333782515469467415614695670795924419562882810854293889038323029761062384925582218782798320609791245581791839485431275846776249215381454644701715375976491600513828227971577419026898566240726945725006637573238418145066146321587237458423788808987565617916891901795598161164998018322629664948194104239141428137753799639215112587891644514251787434078737417096584729032730723711241114252650773767369007558427900891859743702728437160027236500289056963322522455588892915592409230752133066930506239482820909180752425212796679663579504775133061510694731707994734337059454333145738523283358742001068032494441020234627574345476960030769477554685206275013526570542030263528674810480139125019257565200590451411627487226789483190199656506391701648867662960988647205701736821211127413765170278536207742070322210011554754988471156936806128772729758593185968316987227243840255343482018292016459823137817490302207906114196791052289338450019979329104853284221867770344508216673517507159946058141199541662347786225424254075756512173703816709314676515392138632473582627359069180876290255176472455975077702861268859295954613988390522667379581873058405049070016190695915328071460649138314912558378828036953783643416022485323309691619282745847516267422703027030079233004416588111542498556344066027723509314271021524309240231665221026281064834701228552400202387821895748402856501871658092757372638660926075013753125579403917665116013117334718313933477251515990071205765843361949114462312777747796703009087720588751734357871961638915706067365391892491581735070705588032561656528722953283695798129740002878947815857652718614975998538804735175552902213363135776198410457278936230321517581942511830392520111523421694741126274606356392890976153909485185416581367791715022995408028212607340811240171885903567253548697834112786523824784148840208938488056105922011733682150534702828724579116374087220520183194603567185645674439021048601385949538760836682646976186139523806810813642684434686940140966076911920399537342846689984125424100936045741855950728529530121442453797981080957987066539530837366345618036780212746561986087392813522253080689270626914120599583327963241122813584496713157204386217873735593602122467914237588581930080784186611891862516771816647474565502712592997522448611934705814824754019072382621147679437476128542850775311675137383319995458589522193927193136116851855168822480156750110834606711985851061437954332709921335213820159096969644672749799328094064609773080949467994875567271511927978235879307779138411379934432300619980491689257596662047178538092606989510169578902799088890127428146501094327320066405524080632407092244211014167177114609741534104070680425117641577889206330811664951666035016790687309070019810194600149098533351192047293806473569748645450616959674024474679852943700556093343732620832570448774373305451653860415279306781718922124411881858108820268395239619937278535881796673408165898368607758579952852671596616389715946614939192033560779009577512827919092261897378842551670551333709595580396067404586123665603488600572381603013051700630416388907917989572708957606098336392812371817182801575769373153021592571891503161598815297532765132915886951533505975741290063115019467596245525334815025845940386889947214056093357135529468854069600742231723847305623080542764708983195054645306104942182873552672095539389525369734815818652822164398547039278900570583129379839974641959248874451201983973727024982250649488997340709524980076732291763797309094543614340698390418556774560337597684502721280001820621631839181402704091905427891588712290227054523123345107375723693162293554388127612930252882264316019943393330294939399137666921549937419202425324564839977408616348763332688134090907361702306151349307885032095729824792925727066913577494986061956595793375073501496944348830746552119503078526756560705235188285062963279905346921355029885671608392855841284543799210404535019898509956886484524131444158389941050401209481346455157423644410856227338133094235924929665428899464168505766637616081171905346554538307581312134130254398830867009472782554622656416986081663057937055576395405494349933806455997039302073823819085517055582476139690509519244053181740137855815409954142429159009743495151645571236046196110083999784536605694587007402468125054469971159357256640496823281699112028176698522833062151215925074042884829069179275750039529439819610692088920042002252236443279606127914189917280877590004549452124765438982162163746675965529906854668207530758977300721183998442443624965420225361904879932028591831356692000077281153004686231802194696723505373138297527261422263862632794093585652205599555392195346176070449773287095536817914328649945426557931342967701123592794270951493654946565624967322698762783769252354827000422807730183438169409644904943011394445473180944316990036387975378369863779663782843583162098472357920573214172078351240014327337041034234059999242512949842912223395055681942118395955933391143749925505445118323478825478312694898721856154445529987098659270852749505594820206072385685336474259713885331944072344865096844039322287784639659734507786333991764722777339032350353212047641054747138794719170181825883148221627505114368452207480082477983193649887359623864962923360234294924041098561582905657304269077562368007261001105132897401028317939120622564826148424677039966158202961401248973387380132647429454072733197382195876364988425810086707008140464778966323166039313919071123099252444602171457424677999675407065036604345777609252140485042872391837357774251406613716434926440382761641499413042291235597128837408596930466463395844966130393683888177792221333410271260057861411076940589185987087378165178877340080539465283278525692597629388961699008896150431456273725847372051666400432984787166381768548407439288908164309773818838121683989187787323255888748508900072483478521023239197539063684989137961549076736050433582523687683242685498805563920954615772878242780157568105358856908841338023250817975778130927916715132928481170293073392946837618877017357911762845026051770869280776930574766600603184845518842245184094077660126646082399903837452885746961226851563166511139243876758498894737524135792502551292916623127154608588582674300520179032372623931244879351086465095925995971078669323171185056468433977314609570196556385880441694911442909443420987521719356799875999449539651342551084661457814711505650105694169834568172072401790204265165325240220582314746667112424533913739341037213956671697113806482354520637516870336350051126184271340031080770981141205207983159071709198056631945994621043503685532444770486674256515326343818522444530588763201060845544565490584029768468321902505852817725332302191526283754363327972775992139524833331275710858039478350950813781469294506635287887346957176701651301107968971220224882263027363871924529929893854061315131950628137973830406905563111610239630710545397620045141547950980713009527166941656596427689597488786055186660425261436538176394668286994607177487482944846342863503687197017279972330425846127534335108766405430499213574816286394971205745682824093254590616220112306541475505188182400648300408339462061432079100007530650501223124850005107351654204315585879627076018274312534672871199252255341004077400663198160827912677710212519775993886926375137306486243864070155271040418783381596150027003225796349935333374156203935987690675885700685021384346659900534418053430887992376120565791048146467012688621396010787431909623098930229346226656782897508582021066789360123811019784194420371615838062176773939519350477342318110740221351107702072129532905737777856768793038439965500125715780388662727973447557241881488128354310977689647426480095533717260890812622585391554592861767877526129974424136909949752415967730854544771120425075880128382959618876595205725933965072297526468632052953565558244805811736044797287523731809611665098988200636727066011024807139017235632245616269778358557718926922107865047726693933132182284605624580873701175375420155824495977169687777904652556718353138721988484276470528077027184724813637878301545526521002408927930495821063956779224200067540652346511538616771558258778619004365921598744654919481273394996986459739224966842130975313536683571665119458946188387252653076844684988501232762855702885029833233985322097616195774093931398459446403629960149091957882688079661178430885726322003327155631260074363597785530648732575809222875487434498984989900100323424162105035944679129371136071747813186974508299645452892730435501994128079922297172842143437553096415567529504784367271010282379064042862513697911250264495870861731314321550367447599944397234905614696644106244839303431623549318960281444706628770245068735434043852618176349273075558182573009279078894306229767442033241361584444109999211881589069938593152447820241240833356578392078500536485547051929578155733540626387742414096038642777945726623928553118790707582245585659989035689586291613396015803195065346400136175607036322852218654899477946600876391831938951802278517224480065606813198598793630966733860930724512074967412412827318411337887598580858159400514745106075891068055305711338465053013993897495085540990467423625771731550341377604366877487721569651152097707931489872980252640934270151764902696918774220880215568256376941087649957085902004147932051743395767887057769498834365975561374921012073587573836981973725959977112881505203351887482445137091593082841876405674016661768190383236707469744265893408966906822350648614016833106139784713400277766376447222510487891597787293133620761772365188504924956875719807746917086568954383818392107570084700913776757988531010912242640495763839428979598127371326310181281716844733702794735747850632564388873958160246566398370878708385137836447967215661587977455766806978400428588658863973118816210332756416853778408173428878618272862990349823159858450533734100581605535993240336379977563934134443247463879995801793173347945594137903159842074306757316038755411108665661107565224967261651134462466454236799682075037333679482807115652418136796342973402555522995178691347999621310990074974308428350048035174605659281869128844884695763721893250702907539401816680756807130680735215093609624041680981775183740191670426334842227576225743527533875433548064279164244724024491746788181179746478116101041196542022973363076135012013035132872017982685732198490879861472733251787214217790755877465307041793469453582359165703598998689750367052079631787294202891732494540759584247533367355908492252291385117510830548065278500667131931824557665916507499803871326605188506165540101247623620822656046464486543885125409970791067143646208274725426625414158406579298719569022352090780689321379693073876415655210830073422118944340275067626358957361272316260117207574498003374293872562594844499850923726465655618980665706390399616741818235819593898860781619607517269837182789279312692688671480911323511527485169958592299796806196972617266437345629360660761707433800671816068039889577513546462097638673127032257730632104140416190037202169570124919243459395248264075960549488515741209640113179175981697880856446440869794404311300862818129743399880476329303992395779886713604320839224959164958643940579344257335711618488758538655615889640709788837041253865617027875057580830394738229750818374893043270535582559450807494863020239516732466662472912826454394379465204177013554221030012601083081604779562950950743973411925932977368721697619281700836238355925063777460612969410991884701932881626072001009004384568572510340603525084185495745596343041767625755605358738643276570708396788884765018062352779124518009278341150083775801180653678957430090168633705384960189897034768921338231591766874344379855336514420730473136074905786898435345969952076856006184282795255902878063443257773022119738500318266282766792931565952251884687257955983889024687441955483154804908882648295818535804884824652506217468212217024325151974694561212573491129907570044055124045856773431187813954405195513470011760719669225862774297218235452435938348584835848988026879404380769785292939658742141208264382041640580513981194496956288717114726545675182900117412391398899326861561488133016612294148919009843594911799378761746970880853557253376794542300703616605582522948890074559612421719980096531141183850414090518562743906395162137557938452698489266992939698868284793991032290482539916265545322639720525529174098659434960134591111405230687531113278264558698083926528263689345437817944712296185811644360610471266026187137705534939446388262919212801997346686640161869022617448357826235142177994415387890656162967130174608376929912854659563362472077234086895043423492145095617989537049368259337245737741589892774295362648043447564244419575329834988195734804439951114984144305552367258582958667919040985860681286431483658350726294389661792803369412243157669620078698356337627556986539326794269579554402138371392684496723675239280363550862655152632293347679271574714854840600061031031233434738051510539412293027928424476446170944907447724096876033119361215860623633152738965670939695534591309949838553166514630828946159146083318557093766092655925031832675391162458311179516618375683998121345252712996609136203588332775343192182980538522898151877034556223683359688258011348767252126620880220402824826479394462985670299676946375933795033721223122286254308910424272179985701550926831839440825335872725383780606651629278642890923645685146313109326550707408006621070603665274922434369182843061629366676584859823948411295883606169898230609113106387740641827899568252564394233571697399240263266145490615063727560229989533470390271616019523932569621453856398851261704560881262699404490836146714176799645467769943088441711104776494896674378434260306227801621024044444281175295739543842802374782295165794456903860229115506444032725654495866512229011925893642505730190232286734992225790536874557737929258570899624071016107215481829562793756198624933186780575713291772785491637566714191477043031640435354839537699843576763862944213765324773703470986252793594412583933610630075276324600995698264490406248930039760996382790260837013416534140161464203649439119208864745121662477446432108500196529949286248170496390203900375393145245565906436548704550639251314457651754599286904835875162089262012843532482127374694150294478751767995653560090701578490329715198855848047240656860714336454484378068635857525188279959524058309256533308929450881144001399005721848717786012750460504690511724769948541179542997245327367227906274047063818727857468652978029921306423826443856450765608479262738794691901485051291543146629951891753973872521618901807939605284599914911348322587103459992023837235207866006105307519993283056202394767636431323089211051506249775318035342717653436658380732550067538998406440035442588792440765202323110948892430055416816104194273344497577885189946592319030471708813046979187528332647287892576637010596476803787102289077414581777029336323423623608838538978395335811350739810768797741258082911385873047027371708554903227223494062433859404445257101812076286410573435258084122481805594231090076455048284358819345798464957775785806154647360975242408334489769482094685839180252997618110995350096025769207095650196573833663964122989928258794357393109713663642572678098089984268587085712452525812750459243323759632676361335990516966643981213563508897420747496360100019956253525421044623441132533066445556216209761935022443684638646239233784278076157949339469022313195480077473982309384589195682539826415718164858480893141904970173589677598736459428026172546387800821700431526866179085524435391258028066394038092314334710151084137205144762587162378357702546671403832506180086994257975919088919686713399237558921899932556040661908784002024056614182366904604428983234561001536433717268009974374138176571517939891290579065080247541829160980603743757855563203871068091645502851303371483556265646841468022146637719975257907505692078989320380130885130148238251980160675238220256656563036446468520043743103955723961562476760486763264713200737740890324637225429410362880188816440067505923642381465214509767487001028345430634129388178241777605308785115915660676048728704943318421567171109000441745473062487970331576762839066590046511120601346487628227415035730070382763680278063211212848466726363864638605431346532003750971053919398324798517395072276431914237193641558398729229983567993327046426525764312529040040726679181094854379861575847783719715741400026582379348023456129842206641524891348095008990783475634127125510158041310325717497441659418029104675817430010440306080649104893266064471781444327429449436499655696136061441175073374299076171000315574155629771561313569670919788430013399276631216512634590402469803047903551932432437823732887357566395819274490560609795906917550502308152241857337224068377256553406799885779706581613261930241389267403572297056764903457938829965138980688885123170971066296230942257622145499796549344876161759145773513598396513782040614351564530454410112272590111373617989266661847664715276269297529971124371491999400950438374561503146784751151795483138343279525437531865270622233615195165644956121575410487453301123640530811375980686845929046853381838226330368858438183040956644652655156601826720229398096227138674485401462575874763975630530362034424762139656253460697367360410544479431465346214080110527846124310814527268387498200065145916138003483664263170347511753056790922320617551197771573960657492135306041494715862741183760551839747087672302657625374468154191011302870165565917050156462942534537748803727910159779806495319477943680198364508807216522657951376833210334563233927144436494529425255879008200522652095287375659475775619324338415272450437542832692820951872313867652562463345675391114366538967643496992731567604722840182579827133362781355997452873932757093432660606827215281184905895582941679693644772762986703624541846324383930983010281270076199031233308625849994445621419957703949161928963846698566566135434393800112834849567073303131811054977176618770680958001962850952983130774262060216620352373401610248961342564226159838160557044743450285828862497872399425417875384942000025459862715886320863686787701010400404166515383606429575642154244808552144883582335438614097455699612475888623787078916954632523152430047548913746650969614727862986342223314843773327062211398329614882908132064210942174087622842648989363156088192418590774478522828529578253718923716696304332816502498858056116928452939721409431879156324124220746310374916915745180896816745718978846949127156851097630047246452658958842523064423149554295303757642469614951076457220805513389248597508389636220713576580438193660610652558626049121811580596795894589115528110901531555053051909330710758609701058658980684066873484984049609729557409347797049445320841020527209598189573770023061243058417417257298221976460415219435675299152695759524060872601512006989330873849279106179622218013116610522646418274377920124914039738428598019679516055601589305245508542290319799893353332557466199607015457258429804880873243329022278337008558855597505919027917932103178734848844520660883096694772745089936901825703568279556873247116093960663925006084318886340820094024686750009598708837827224365173255672219117907397801082348822340892919435730271713247120979142683965622161041095878266133469991234896739219165551185827065928490572760043312012743062954099499992042788878867527569690578529424033909303372963419281552552252006596911122642961216996061267239168599411628817805926511359801180982404649055609278138041294362741438317071506713203431510449022807057632201201363896843648573460208126586925041219582400800168803128915209834329202580481970255173982287874339092126113978224178082493637160688159530580792911157809168071936773842240491310642662721844500633153813211324502773588218952548424734836071105725947967907909913408112337387043871462729841816443584561318941936271966063104067966323435889009484391658338963049182226564481482345594557266948244242828889186721866373135510288694430888896261634909674050880565356251152465732235901199108324753563369732358898175292992929771395576828494251654975633162516047299883188852694587444661606674677222282287613172482877725316228619133266156449419126439835090378341704545763838904454585314589149141997755865742813744767811396733659516552147936260106170099990196302161280548133476685091419534129459422292304354430453527626859362457197095906174991484440711854924461429445255414843172693386841395763611113884131761668330889443808374992881027005432747006105637015010413984306794362885365791831825003156179274905714853761395632484413748927079972360646210327857342676911403286999836879453859078257469122873925838508706237629467252408462660250740975379596508754221078832722182246412527661741347453603919751668236812033846017116203142825653721023516155644386495960253524262005036791689220974122214884607079051317498508677664110609182089872314822520698666809924515569738747433413883069172594365393192365803391684722960199120089547007356099048144914122591041926515203244655597570304769091900732349997421274247721850677665073462900597101066444003552381044381541093504212632612878569149654197694649426192312115692423828076487315730585316285855552479284633971771383928630590944007980292731811010153569021398678203335709963022591769334865823521245927270479450809988775007716634160551760357268048721692857309278847376352822369133958768014323965182085532170352798029984129430868750585866366000408058593114317506722229418668001871777181601806604467744596171903841631953621417521059432287951824743630309694371762026428012175974738253730708777476863550169004437600189393127855264946933760698806758701263238319354541923388911152576048755429686721478066543293403133191036378326207948078057937725253368479574083171482663811313010246975327010156629632533458260995620632962085601769996780455308731547597444209838532218735033821633851668440244846991125715145200636692726553029179252910636405931920517690022424785954391651650164184769192563819515083919525782476555850427793662783840745333695237466510425694341239360559842758209457878385772429716756467059631651067405363746276719489115638207585409041152224769342783820702169610031795015856052948487759294457879076590414285991316078044681997798698886648789699516350079705806259368927607821808978611562735054499804635519416486146169940910834670976496558834405895340775563693987813387634904556507821845285589548503046039982848078279468721333292797562297946801645334735118709199210754224480206083307543946187716834173733547067741518281397007255944614159049401777039924653156249689853484084898092794765277490857393489849822214342846207444426798304264082896415745674848838237678608071524192043397475093839484404166020201705627629232269034529170926633213986378360850501724781419663425334114743451209319531603279609818194164611477261212567430953897270274218391964336478997337872220775562219579323478572173910770962927735777436751444456727212654680329720733779505177692919106658522698870518472661521373676660414050115562110234043633751598209995791745417583575357910810809917434277345999377451973111621223930878557192450155597874851734567263795181056428852778282225505372161403984615067641245009109220303533941096381592544957089002532255718316935890219024236206602370751568706215797414799920490906790762304036568376848978802894554765565000176131450263465907007935693822259913130672090082323280759646230440266223768019530169852360774876373806776781305507212868910774058833417837864106489186718141176597250772541698690454157804909661375315435126662955176051243438354332283844010133526546138348373549841830548942591770567919418097848181712753123992341048250158790590754648179693591035939300926012736334052010016295396331006713339733123292049713375546101305568122691295445926320280011313178367523069975947844302291238101942642517974790572944207735997889268118724134894111877487827687993294010289205937326232975189939550873241565821380231377465724143927836299472758674445860993724716342057808290008236714428529592361218580700662046097517053382833922524149936426051178021297025977716493340742204655200753361645876151930426579719725276848020668598740806317377242982677991472913505248487143541489775291028911675524496348083623337054974605627006893532100330114073881724325848076154018247354979217418053565563400240476227408347053683057009542222009604355056750310303451680775321433053629302292748287185019546120245604589706033538057560211990827424089153028164366398970885441776650876721424624284262810739940576360578478156940411783119606683479142538562584248367947267976398953835340685626946952786529061164536663409634941425442978337965416276635359606034975763914814070306690573995921530550695553410227823545909913608761178140067434787366630610473468916438876997468946169284529631708394369101759310843765451293495950459543594250628484661021406686322750350412696170854599839142033615613587083990010735195104226065522616477919096701278129839011899936528201374874656419194737085788951407075836001673175974617231002503503621605355793980777477849666269980632803229371901840883296502161409289191984956994668572912772405970334982831325475497847995371971861789526133041069877829725551464482713345666227703296042393582439616971924133893602600708041657921551712753879938415489289794341526089152551463600314366499439400481364975492224802821519085871247399810069795198314351261236359987616523727535052812005960792231351633465846495347053820453875119037424125693154145023726898787884277287269323136837000519326011459102889303422415349841096333070150784711576990549564952125956311553975827711963252586345861121053433952836893129009103906082969876906283124943980267769791829736464655055665811798599805629599776805521591052258052960258396608593968402164283155616768495169410150507271252152209114051505536843558120806729287556170592649129296904963238571745387770604023895268133220886072172783264208654450007645932780056265470085898618255576076862378281368802035701706633728445839377643300359983894742071995586091812323693674860828045054817412526807945886403873135924648928737023874420933309720604780960943151338665838210748508962881678126538708376391014613099460978056223128624769034636953897789307222074825406332537268084198071736661485240902969315612329570871817394748574003456069094064061245364952463534402970351691284824514485017628890604362647947167866928465958940674334773999572094089778939571372168252530510669422515166294851736758409909807767380168999296896975991956737908135766355073736714739888425844004684457020520184052276089642518712402214026366461080633431757622742542634139969974971429765538071776454299793751468104985118307803878187707912030945268023525683829041927831291567328126679509961366328836464166611515445211952444576052791034138028576649624448991301657243068719105276039207638101001449003959780720624250166988400114190536589386813018182530867230080568019771176052356445347971895737255456402261075541561829521381974482481791078488925675174283494758633287242326721317969725886543204616080253973388758316088623960459057954655558322275649206117689854379620378954673198115241946472994821683948709108198143026411112145688234268223859203650969767421959179218650826069445107522861667301873770831711199703949302301855069053180300706338520980733618745775664413747563052528454597635115913584303872667467555385807023871199889787872202054996816852920860212664782290635022665418547473702690734632377396849691486279048501553596981000753958655204236527255342487595899825972262093521853486796305517413085363206402990631560558440047955066238024744647148038006324192788328813123764810487796119510424749618023411970746222037984786296042341656221628639586763267897108826709052643311657747132951499973708520395044540602519375952088425023272670454853489071943570404760271205167375678117520034170501801914573852332388434495134343634670085314534668139948983476757744185153504684794474634930611085997887259604703786448639911252132615422214913769980214822088395149307221168040731771885982748878450477206017281128502521526298058963112218060793130353700416259394743489362066640202479252187158086037877802056788103592864800949438576662348512995167347259981534379001320442907659081379092313183428339819817541768722544100467087459467508256236693453660695328174105363139028691140278855032233920079510333698213977843275640937746384294900815716050818049359979560803334452925410827834624835233111595009389334884299096313164139702474428578311319046065766645014558329598220369318781026623697019375849411083834914134951793954353952944310414950739426470275379112633274527218336150662466750065621927063787799585107387139589220784629609744428520617372669265479719003035774541321300350570378319104751626439665110105864910959337246878300662445077803338936454415428254901644279066127165316548927559507863965820312694335784950133048805895741695987688227621026926712504835817731373622709891092821888874780628531456982640436397503658067484313400299630701511106391203966255140440762320554990698074678240092524562455011627778059366102799192574570742880310136167641982596831743532157724504067598532380528762898861623520893739850540860014652351451383136343271888504284534672062361178429562911841232654483293420918187860613071496314284027013285175273635429539271246903106688478263739771402298650157632013880341286965697984130370506255161548490481506052907695124823328921702247040105193397263011427326588862918021837670184791295735716480706577460242679039604494266072203731482067874283960638372332217958355947429868839363388368161401326770800875558755543881916913034608803791340786072551041200191647519073480203102177102541261354799012655731628421550481011699954824421902678311640166857060943263150421584807237945159823811529317398471256001494411781892289229915916322042151508546637565859701490090812487467496591769506825378511424631286715124284143697681147205165139677317613160962310989524825124548143206983475480584899054371231809826022668945817626471452950104764941531637537306542276169105522445726596884759233498586010924374528244159794073485948872191583866766287557755445619436390881510899786821931133099212917954805345812234875288085209979612307803008464472435920140181122000270255983523084951723527763216158368866153353166150807124825400031807762799983299671445535996761337754495721022409851304543851980972013667991470493154795085209303855161268719048273796827923758950205929967459842625988178592112703111507412127913415601130824431245670856171181177433985248247317346587363340429610311777716785159919668127378252720248858859774233567844550544913284163323051607508679569456050882899322615098985218952216394139988598598935965366521730641674219405184230192833940798854901708558743285765278572884951192270562033814597571675185271605989968784920481895424341950946216004081890946964428626526952161535798733116780723603592012939280185118245085713069431551175807677454421633300822842528101663115634472756504427910733162204770725175347350509967962415338116336701674017890494016532394667496387707162110941808513983715676100236355047796544984668866273816133043890528968678491965097134069148959722884900299578819876419291120353130143615146854835775017556432397545125753030993987377608131763016692935152802613273251245366344423861654538851044334291982633623570166349429204965158112882052744892057717232922160941409810970683989322319426455557446585505059111799648763602781104744455427409868398859208889901576528808057385744261286660709608319431287817040003591229855040311690144083593078962082406376691440248111031637529645578229035260955066137258915326333989156121318922485879778812705627914378558072883575714417901409824157253925815161390478183127940879070387739343112025315167648344665175104912062632777724227510312592526948242729963059521732963594130272585273897538920701722537963666097387751908402065129702512542945797233424686229180466335396510720025298504999396409619976195905434957362888516754371273124945314985041824724354655603532097996746643182054888966616775113841144421137919912096617405352667587435943628067927872834918967299821168445945376330716848408647141966186424162439496076692555848021083198995443375107499647442154371189185004158337038311707222460516443484100164419086668401867549290139584060116881688962676228921618276318015082612472709533626486338931340599683952203180853875508772044943498916587345861646988815190652673033526391733872767480818081688981363597495492850219466211834356851241909053482124376686132256475907537396560220659714185293229147237182165705136009875554568397832151229084654951330368117713146011535782425825509019092159348605420560107765546844708746303184690515407425430834872965436642010100063260299824229494154046777250195704346601437722252205607087710951126155159542965482362533666821725635246445015164893858512488301083927915321161145298243955788405194406869070903337370205983677484983224767264460144965059660404184750295742390013361751204003031690260289423498262667946976051821011512002516913661066991737573868910033355792634678047189242587689964870775181404906373188493116863345824084577352768462493697532792987258693770420856682223327396337937827213386292309491559523240839751118624064899359372397087295657194221245148773890990803991807924870636999587859377513970270737234893821668839634354113039101263086983981021731138269859629260890903269408667107865032832409474870737845224115358497562527597828604620946542829768375858623016973569122138168316634493826007940613592554617999867278973324407872805638967443498060339973594146689214997902363985078665458158803322306913055054787186407897042666134503534955052896275964797197774424878954412979967951420277824733014768734387726589634085162281042396355037051865918140725437997846282862359016429653735612262590450586365707552160244934992893632563233539266718097823017911819297547134877935580647652408030943113009544542399280595351165868077110471314383234763287088277303371373481743864294600632155318258457721861681426600756186057468355842746899743089398304076187980390275470338257055291515234333257528807947819342578440837671493132664422387070096681559367605485411795919683994234343799333702567091951534012954026979834798045520171526448213132070845673970635317830574907704683066923319020423295913784903838973451395319785254920492558815523326737172233699492995619240306469876744567027372901464318534102257110606013209805879467179960103683952879728770952309605280876593300904312479783748829518862459911354240835755678679702068782987154876844451740738071561714075352583910659888406378669232852425245407833270245173253573742090593409550632479691029707272703729534041395392970646283356348223085107714137821017994920848783908780562009159730840327759903369242488330023721470068801062927007274806312378949540437115425233577556124978633062499188889278657907899566340954689207853234516696610787914041816653148296884586497990813984540163056327457823803638004947513218068697431816240294956185036991574524685892028332646731817790584069690565272909733497619030754585057049739688242271576948550112227482678168792279353384416830669475043167855895357440691311346308515779861001475001123688850365838860088044227460217436282371103238342141187970908997491226693086742291708714054391237993530765806823069490821628113827168907110432990690634660867175750232473541196070194297093976908591787842821577918473593511957340432621637182592367866738895579882038156462913366503870141500546611676588218968438465863070094536829739103021572071337905268322840096427108922877101190522076864477905466446839068438621444934504915172448424170480335889846247814371941098295713976296999879540107310477622446362509428368656084907801361581748431080342182565153528045109908658789664023291285041609139922580939298918118081233050969315883740213351130210675482076679837307846494181745404781940883110828689423821565910050618504712321783687755225309621445429097529182412863227330984299155072341221012783067684150719720508776861060776088521864066786217123993378098054263849438907989192420416476604894903159863536984877400332956052971815768388784943369971833584601650443043403908124811908996405654799034154375018602378689152120376760179276499096777655811923372068857610385957869172161463480338565107933651004498697228342670727166918138291668046318896468046150843506791220185698442475604449542389837361362300560927376870064757295903758146139935695013517367165161424473329953691245088885231197148470477484787413804564109759883863263997013634837054086519713759995115213756271579373152174338289230822142203094715232510618739736988382298318017270173136454250171490832175638100432607464161334536248190663387791834453323765980037779267446341050103325658216467769998070823369145125022207647070892211501435498622997284781577630716844700779651396529499945735327217518814696496571535388987302821998567746525553906021264106532407102851394318669894457875562638711183114141422459378361617885478670420665851445452856946388330369180833603106656986481326184816995024847363530085575972054027641270599246120917566506458688128282127266555149127468587533675580622764259889852197871541585687124169926780194012678704476799918226322886728411455856258577976594990344055532151989474685893272339211648929184983956294890608709377854144528495954264547384618783168144973355938076892279235618200742405845435403729992339005884574643114482802121284707968251053051446874502527849310862090181975426200672890889116889482502599664968444017411801804615352596949854758306723278264858159821440411058420458525425744974737228901453470453916861960870900981462978106145263609565690583298982696433569666839670860657703767109099060881201236878552540875686766076056526045178469257572853441544179624634721335025946555724135703648842199042397159410449682265894820058292019786789951742167476727638495466856833192499497522123785358691039703508249161028629280428034141881562961379941961701245215653663183205640142604481394269078342577403769645028078996563187656393528445744303235969295995768725143459221617088656782151941769651104036411836175522472994570043252151255247884684222389690990424880632067104739460938359961594646729860102947799572660051839310723313770747652471252537599068667401057906409321559260653758641525965516672991459323351066981817715290187433450167601395961462823891005332652773679755884368328524383250903993352078203971336651582856672904803983207507169820207200791883570108153908529631590225772048981991631685211395233997117464762752263586982168506072035157609638657094067138941578356963208795625563332775586534578375623642736662642990910547722859098218205474534387745185768332151837159632179789376990110917784422139857380180545769083950252419930691063342475491068728096211649057743840512711358327696467516142543143144502116594788319356507434964814468840505568323483038379140513711284727312143307009956446479001041280539503323026710889449472402640882606856211525890227170648445984329751914158850474662509315584453160080475795182954424865564125073180326922249508840609275841705027368229533041975873290030153090910843284721679151181142027840462753379747234742139829009269656243407548632424821050638180854954472036791781266003501384242002197062319168513986085287161161063967236126327439871572224934523713088364972529222046522188335617442171606012287957585877419988285668919830036446805678473069410298541048237778084017261279451630523669982195983547721008926881941255398838011649416496042796754735589717513613208599745986366082977453926651121258170719653953605121517184566580030482818699219071003341496369015922481924437379086730130804269847380898025968804636695956990466848012606143979079241411054905737993587154600472894131881381757529463535150930884823893395275907316950281052240933256807816023065765451625216405240419320442746465768399352473370735225925462122289285385518277792956756126946823542226936792224981622194162926658492953552253913127972108890837670292793070093646569620367086459044736570738242028837536550005428604667582445705704165995198989596824063927248858627346887414637258772945250933917938600371499887873683435395349636563157193296550661484432295949365619906319199890998842457992267939142122662112823121465370841865545496104435040971481288569191735294557490220411299414928132162965967438634853138845515566262586979126450969744127276059763137988181406299616546521876248636135962285650971977752027157799680275249873268532768849404905692258866483246744726541822583184016052756156617677999712264603600137218424611790796650356645402158853725690145445459520706025101346906845059622035702620399359881505167840651879352062880794513867779230346327233753385822866921749789248480798944301249315735986263021585275763992968931125443582897054042583167322322132889723465445492558740609372677933047114718412730279232926072713835635015979028140330648410832707815185430520304683245762233524751779936852128869017475919217419040282976800504652987341955038462013317450819380017040395271614850661319938579285387106461079355336916158631199738632773301819178247699983016085745735283430455466393273942187166515337928492323393533493675784025326104042001901571790709775183520104191419804101889609968076714325699590558736761744620601678524207133528632307653589992692044502904268015898901469875846861441930903064972147211884481159291622709652011096094818104775904964230527835655663749851981890402235623788757646275211657575965289028304664343646743517120947448146418019014975634707329695806846966105516707884838040425493067874044511019184457560517985602084013795518011800611917749121991095886904699496629392987072508183041731093582698011938526164745069757793870582394164027659574793612673522161048056386878499835990948764339026255430332892908801031680218150788722520046976577526154091430715779103316677430373316915293368298827623066245110726903889415830850140527585318484556237599914987146569804411963954708967454248409136735474835326384711389892573422936440148637481214332138575453343401808325323369350503746398507255917313931724090950330310553767675326082207570158714560945289402664596302476306715077254076065653471808284541357508046099178905828753077243078586264044997766666983200479792523521415118607217586679389948553098492321908652083077512903359516378281589291296284730770545154622079825120381867539109601102900144581949660456301002651450555651650105031746386846073953615131960705475988276978070794278492255003172040894394120496540487876111224834098690498117943173753867472751791903959009400901330226983684198515719507549453146759725954642279579966559445905983292744065848248499177737509356553224032228612010207405924598911253136401366552854273260373201057230276228948275087201913001980708944267555500262950225713729247963820339519308659444543124994066550581336225095198991303401808943553981427867453039876392112744812910474692658054589188643401173252138130691007566887583509540346740334739703805364127830060786053277681126439101572849694517282423013951690463059533789520462604849599391677370238454463972439928785157768900392597807806483786549911299229598214753983130732005739509083562967343046315563060576915462041994586605959406064769775138855802389284261589980343517404760602255277133492974179894151139216917895673517109829187024678169006426096727391728003865608611247188947696169430740878901465849955271440784239799924579316783642509938608205750815450942399895055390786597130891470268269616616336119052781123205850545526606963321576371576283429510311290805435821303012772867233263237448802001933031969324193138957209693232609325809162726804522593769760894182484957122463327049175185615570844610668577102056078792278397856077414918383431833998008990894609839621902758554248939277294486187268501082152428300406879179841239792615927343563942537057781961185637147052970038633461900352724187585490284872777157807326384619625372255441908216863141108477043895809260811304264646716477199061369753085809022036149023324704192275457335881925666259047057787171274364386528797446760612227234214824213870013990625602997392394257908454287343823681924490071001047008712472720808734584924019877420540797971452840715632742287789642692687286317109584910913980337000871640038243956719976685238278050421835989448583690212283331760155545944556899709025229587505948870008103049034390418640230005844294913495196381542978700330329802637821605576635116946393670214330955075363228100976475248589665239681727584565848243668698707529692175003441681455433718002345844417837278735074952462429801093393245586382626728039388922641495318006650403996019338729022636649224620972266662015037114357606287273105714786494583256199832361977518187845133653459781602677317119381733924037538039713652445369169277638331960582487258253003064662705720169835558409399115087322999919022937623746838208773124749838877411093587873590217279343065833245951881277943778083807843162518467429028953279459499807115670912700199040225876051791723455070416076171666169834621930751810050576205325174104590933082785407010824268298983899466406598736331118742731506041589420058541933421584686849995316038400458763501366570029176898939120226855306052578370943338485567681855031564496109640161893020473042038276332523864556928733645398994642775742316549305138286217446932620009634499697633571218377227850105728639457321373974828051267908242940632395755812003496508222642625946920637270345138638656080663321365764268325892747270273078273204660804176012046798305520908853098348353762005131101118901272647185200855433190827828692686640497338434802856665538841145532727209659352073432597995723158316242710870956767786629388475047345271889602443885167958563001851571647712963911246997754548785191749269069927133929718095341923103434495061862499862526132087163312893539909557849132071654122756540726348978750992990098361712510151849450965946931670931781293556225744737754008308194623893974298103450743956803849213524286598129217588015698572398877397817752849430778105466698013915533633285115952284852694162241490662865891285017489765652773723358852052771590514342222699252374553269892739381430821455842803452822541599901836316480929915863393757544282451623628743526923785756522384773158796320684429541421402202428655234383120667278494956099663009855065015542192763591100887242714614489321297098605456025998921515137546048082414371247646731804315267341968686051172487314688069774416632492558435419019156822890931400046351327369163161079125878899845790252187028896593131773308541442944673249588038239666020570854672014208759447403697551221853958838836196975958646036016144493583506945669996051617431264420555201535987875119228613415926225822864840384376400936117738154438904807152733188684469816032958646774317977569331060856056415996139366590268942816290056890926152120888390015430528155128318966042415137571213342683908510977365610793248007948804457419367134316165602517808154451818958340861768063021113544584118604377441567886926163588408427539814644061177217885407947349980318003058845947148765024818695611593786477430530256062586087108672675839919541633661610021354025436737732964777752248348274170011783733983841495917699353037424845769805315891965342726661685656296442992293284949510241789000118098784666264401016545860888724194495274048039887644759092888673557250500582281023798477338385726787311328851183866932078075522152590251604016526781633508884569390283292179343976179560551346544848152691546306948191049770288869179767667076141134119548448369126097981734108256700787331366870170896353655268201192667660333219895155883758254113373779513039868415659031681626095694923532543565281815075689796540693207530686932904797770118287233490213914020803150946991252372539040079694232079551370689578002364557054092368865540189256392330855253137884601814378251852358187919729107286684992813412128889963862513452464163987371110325130318603459325537497189480989729696309537250496110314663536171275885787516314606575678953874336438527830668616840915737748912440293619137788574145030034476915810395096185690592892052589119074802802303362055610677457054109104535514477722247462204902893338980583542244638500966560485182487565135232369462184160055835799256051149922830564495978703388946406183033181231324738067825745793652834037737798753589707859876721125525326661113483102121101763747313793533519661814977753861995710469486274696122395334226175150721999474046107619576966983830762797086955065262657965102031180433150833454296353762484689840247206065235651571630164074875570983312470960444919651690900262408690351650697810261322147494193383776767325409831283281538030708048956477236833399076200334776578611179027543324483480293391537669379152659691132094609733838372459210911306669799074971386271337621176001554795501995737881362535964747980134391820935015157461453113135998507392621230724566606030324336654937549927915971572030636014500984778570613933146625849457135205419297366573117757008681559436220331471986161872426509901040275433844234784883418924200152932204013746970800651211408711241863637563417657494109624810164630827448351514647819671902397122672184773302309706258304301247539704519595722324714231880907035775029615164008817376379389285984084529148146689698145268609067772830377989140714080252906175537516756334923231594190708372013232331612765932450186216932608220352321633985015574775558633467181393767829146021932083850143104390532051589715395308545750355714223002620398884824940797145512167524390267609029881913540987760895608836671065360907330580430508246262450349327372854072091407669867960830392811448239635462123185653723436778749893690398330360782037685713999842671504719462820901227126210023563774522856368447727219403499065669807836130556636853490944317243813692885628473964467138944199716206441328991448895799765924439918885715286651404104848185834493583418827361403538771363699103070450788456433913099188190674895338720572808873523098069881175655514922679607584531083179018137534549059821723643732494024258089004219570626536021261457198976932147991911306074932123646270961357743408886734991553299260822820541275363698657365610667693894109638665592632300239581943444889889841260361539322948112218967619856647570839542840319894106658745007629977280876535022112317283626230603475509598882746085127800551539434866140670768635057696862615399387198959866249451841222058077706757711387114797052839158272395706283475762718375656675934474886041273781120557319591713684668096660436637856017352432011193602644385812060619692641662330664950713081573947163021997714976880745534622396309548531452853809532459769584028680498304654150675444863286140433480529052429947742720695325903628659019608977978514018253269984738351127443358134371235214888843535318252665370196334337889072611104125165221028411598287025462908043716506535943594653165527231807624727076976602086421319998574850452583095306926688017549406889598979723832452842154085508378824220581538610145982231146254514444904561184183985495943375107134108279531556806924085519813354884407867462857665336250424915588645662129744367443527176647594761586355148279082878493539639945979375318720885792445613388760553146365931069818918619110340298155111537547002466411614474264916111997011461542283819011827781855760549385010174722361130800207514394391189284437815798012035394207538648431205714998822127805798943828194305910391860892128566517551368343077049916785444413802458263924445987657224640340414113661297818174625628836835096830069088068574419153310921151926176882722976287233019746416383488227945256660310249224059974385907641850458678940231825075674492686150517342790966243520817665632808441917852527622250978381101300420980284481472647949262159090733009459304590769708179358544930852422112712773470541816785493524152875112972655501389166641750704386179776070446990829377900132032897406761581380725942664851358369938137307335941520226540870103320743745994640103137075538659583346701787023813351717059909110040806957949311699743620366442970497480758777406599894682997824736493674591410166481971847564915271836652102748333414256127509302039779416073849656494520501504986257206403458091466221079130940798102088707486705949749842012484538550550163348945335851878017696067885995484216593594442965200093022296856551675702575620596447457157453789790088545777502706409812610710878572059682942421747021117373073162218136431730715353153468549081974000449473863951825082177428035509488470473627332774422710679038328327584793073136917012986169651241073234250256249355059069582936652344339056060355610206993670801578799788747352168560483320110668554774062893069276724319388147311468097668391261782729543028345507617815600609586827404619059122348831836210128024772631300672132380933912162613162866393527774058205308522813236199870762338997651218576005258208131152504131843414493061335563092263454016910759208784078264938141189492620139811089683189593020672837005930677862006983029752597298304524516481601447835206369761974447494129033950818410487094548460895341950586818682032511824551317999349006923427002489932537127186425461701682174781399304654431618435712078893423938236297649107014919635368530670041865272676902702517861356050893748600878361200412433110767279232979978392306828999879701456728519862178669238426921720766407770547417319849253566724354657676032061241337566721783951553026649339763413788353562761731675274419058953782214936477469290820535456320742475807966588712441145326217386861606838067223095232522726145430208261975991962225331165546485290990286096795970237520225540248119126690123024413275755505116940298285961564462202480209181577241650971221127811268096096192020481470644650255754967649710069018717605927398782566971770280651435270560561668943797583345526961860250149878771740077798839996233050374563734674146994693524169560106975606922749705933626085589883748740494147881855692092570114629323105614110909633945756452179356428693435250003565832444509932276916817360518598290929515431409315725477116985327737866370718949530695203892796220746218245296153650477028916537702509285089282478810812912832589118966520520781586547794772682246264930670654723106883774755097325966832810540315649584316978447866967723454258648719708259347409233881523306784282076468469321660536556568314126055148494952201753116298305369922644756481263134153084536535882762451406897336106241503188443070631101747506326048276246312909488587162035356678528373097463266320738108710099840811335714041814257170787476745243667863276455711297388255240031920660920115333191837016844348452229085329978556896437350695208266293087934243414967485329104680572945467817553784720768194237717951357769440659284463032625965785890004943402920565279619313264280675372291231902752450509072513132191430147965147009671338252140158495749141972264566326131786176615213006628042012041907830658289974721154864140982376823979224557528063288189747203986159038904418983479286138913820355512238043950658528379211508447015279353415362828413969232903121619603387209713971495167038510040457468097056102461889371601025693045683149585877917018034357557370630722350336452180070362813677871654145840117119480679329629219529774470362599751667512718301226483442342540345178296028628397147516846934000121028202005633185387906738037251444874207639980991566837062508695016018340879903308527981484658647278163295196385165648907573124816977293318530635745150458051717515386756167603658540483193536964906072529853988953601274164454372803994155498826821373574840296907959063413533307924953624707605713732947221632965361264505345554104269602232575317288722192319132496198670159316449740193610193117939424317825643718542918328392678048408715783774931251112384862043186175842491591291510163436715819266525318814978246297537253838938401191233694867644613241651563265230656973615806952880468791970079222014374187071867298427351320903569210949614417846346652671566960274298086410798533550831451570379266193082816312970633930873644910302176190982560840247465139548725448597018974571454607913870155206878618684187741833672282056032207119559536681704758415068046760858143430878734952536222790282911063732738889225975965109671116848869051297647157874908382818160861941810381029122130966361340691567180925451490590707504729503402730081326417280925363366654300781024840358161230897151827122444311946871132144520370880269295987100901604694309871740993637084166249879884939075484552469476015769903675503134446525804750565145578747811092808051384852471249610841582700598255277188379292254634741278399390089139297517452523438293883832490257707337793074435654696153691976278434969726745758815261303409695376086977860005101065354655041209046062705610289909770220081091380931230657520828408440526169810949335027500530835188615836106705766410943308285279589448306515624978236511715981910584528545254013291527811708558955664599613101787516268860577270397936056102848679359729169083822668899425228357349849996813282565031150872119674682415570119111231462942712670992006875253979786848184789362123998895518624396361469720588673748892009109734012083328889443151064012941544749422391422524237036742666884731008852219181091654216893181222247126801598567957307792786851427125170223940832977936532164423767071470146278092017036479623415194824507582875733948314055585899641067079504933689736127725048750845744761403926468517209784129427660390588004956385378378346126140709003118115246636272709084818413169091079267899611951905683028571417575930528480868066072023473197249682674449471011969760397010098418679538744837924621122816503057920302442021857000596296974394205326489024933232565022545864102565159163877349783115112761318376080891524827106461231031261985286460337617216518991795285476136057220362173039161755355488670207731408349552470702047429682209720852765053902609242525684818332086707671491034533396888787310642696168584327483096924876522114219108005056250220592233468448532565884647095918159312396975812323088013434640057454564930527759240140384572579266976531820161016137509794506245515222439138414695528841229327758454325125859798987178197157511302320960343286743582043072533929324020596322358495958677169534859163510438277237856444663561233204215670508715094580838512817883283369808238298730081161359253513205027982129934889894847710216926371426246164743463904861804011109069162159838565587476318104548628887338962220090801420895503130134263580488083315261470042536860273314071342679088148848665957613489635756723111472659945854900644815259852282160554747544342190313218764038301413232879439740270667913828830336672807120932978587160342050855539675956321360831394367143359212611683921775823146838383039437087162296897853096661355439392715390563061393552820322846126639508880922990636633723851066975208009002825647759112022969475255126278090122688296927726097109291338587656486368409396115280241104257497947323971688092662303151782275563172074290437525145149684059029229628491877099106240763994233130403165412464663321813268497760965701060026443559787192121262675083037074291932138380903824592624575580549595946317565559298412773247324037192756291946895750610693275627906713800386432359805422760042660722315534749986261820457608532184966644301272772191357400858658892032654187706649521492969160709048409575610558450936948927536464942171130319813403423053378155063861328122646498277863612103163345077731692458620442267302055306028803500946150621943949088557415279183625705862381900534460190466629381180292751142322402831207521970349783802919510679622874377283348579328213080744890911109054149255413808649600771435147223246118754848600315743086433370714664250476343950141618371065160961530524276501575425486604845233294584579812744580389154866765983501262794066390004185343227555443567601231840967952335994503184791181261650479330098756495212396489822505416160433947576914669586189670668405156742436311413382820108027775531984843919890161128262901989372895707594012069272165868819354169429144542046636978689552391191026989023649736378797497031481046840193467695243143059318812432958997130389955103850357506963911148810004199141235482230138452149415471547128233118388765372725856432794410778115948848645095565106765917535358076550390289508673682319195777120564409123776659001556555142446125283942422259117975576936145168592179602490887143907225363852980857175949825911347448527215355687143544386019676710593540874860520505287389492789844334515434780596243307853638321282132564339191354856494306976617106851312877635670499370686700020659123925445553252102291520083615113327552413022373402148989425396939860222109246417538166520067710915948756742992100077558796850456944669425973618321135087390255024703404565074258463321423493880025901197337539149378995976926345057611951837799814110875793060398105853520483416374835512715295073385554727759491295260946626745735962961837511620233355670769398076583072140238410507723014231422953597834986568711970117175973815894499673323503687089636431011426551014392008585409846646696748400635546825274539318519051974628138185245769933170865012938213647137713661383312336611181968877490209226740405521739179547609837348196456712113198186342272248777945963384684024390365461797245306122581875873552921540755927097525656012638548650802127688316154074611782541897086433130780632832148257858830292847815239751670501673328344930334245962006970088385811419263805543172281061957772688444897770991566179348929581856609362686384371119186467614650633024794823470858948043481243868585291180733164130142980458766936875981940422806602991704256699664945812781451268873641975712714557445696489836209287224556692348737869397170530395462678675362539133982103287117643163404846026091720934491769988725447040539475629877663169118198685196625870500056775574849592807348891952801117693121818686590735282714396017537192126302927960952277176997312908548333267803391149790274327639567879267314172174419145530909405775551147906381597015707718920313282694535234482131822530376378445010745773493129596019959201529121262762312082372279589138036973985788271745218276978753004745519959660564103409077832531416715173045845414743500988267423013783576534272118629169769237455232263372816131314688883523686522488632178077804574527899974474118837025262774277175914377010701150318769819192299281148915044704669911753934396957081280621850217509738977999343474973216833837269893799671142358936224374535136172345745039937110267221837389126833385345729440708899921965913151509904141241330660319804112771120763815027229800847679180169299386414065643408214117424315584406142308786548173444717006428524952269999229559965579198385086855155746643318644781255036191016279542494788718037187918667271144728285528334249181979056399282252169164312998782940599931439795238439058334019435431606484329794621918449985961173583697359882016052634871385058768867614428591935639584755894803644847449647489809103181685740731731005133381676413864663243515566388619581561111718540931112744512444494779523435994894532672412509997959697699904477864143465618327595303343767996970778581647824554215003328887277347669889317009287322290499698957292592759723917842060844530178980956563067417496692943440594992372605760243625187288213155058506872036573253659568254772094125672184283185458872071571257545845941952470401198727749368460193164933621814322347096623674498809409206740335722668432552953170501548343249603747767267033505698952353057481430992371478156007888744659569331828651557263070155761150298854420112638412735965550855744153961042598935675971063663230277543391689995196240811501783240673131465968332496997151958691440995042269636475475696408717391557044770236583606152544925415055058153858865011724600871767690556956348541589645150505350594283067335762731073593547804985282375035238334964722060248158048604288619576518193363247324614271630681225860885792314210528973497351744655244201683783495331970696911571843837686292702785575697350805623336414060961784780172920119829886118293717218487387121656726531035074463464972581692865293739717581813475896292742631357448870918375024643831364599152947162511853600382498398957377413361110875443827812183840232691952311615325453888070310236982648867588398234092048152893628665135847469331248899406200363668726844923847014700872406796330385562278011314207302066724313852941858771990631948401267439909109715727684058127797063934441384101345970475046477081965820392565927380931494297540056925224197765938705304520458597178087109172623395193467573091601962540649951202733307973233866237125722904109755075064988492821623432431060465440991579120069170062944406655250255076870004624215179238649581696231343068975060282638302627078237599054186422187912951145152180318300142556430265588443466145846111946983343442247818395055735590047366476784683249470688066460621492749911312023914373767322285880025716587287569181283747606153264638492036694376650757767378799003286984385360901886799800718655728310662715558678820774633047736128270783468045240176917235593620217399682741709862189221525282086725519271704819780597949874364875362152064318857482887951087202241782211631297332605873167794700588199921845106351269208449285515962961370961377424271738705292093786987517289926983867195617271700573049995067410225146623628959910175986653895632078100713001052526234534987452133688278268779582322452978330721336080956724107698854945024741040946306338385315888576329176730855153979262794106414176494253333349366087197331535268913847454372865834471128918171683825703370990792547922624193151343092092816531836481268031362447837296158165411329447985695675918345224464725113243493379269067539677321738650979115624389183848543912963765062107150394562892016503558034529615205368164390178435929589226242967947352859329168042006908567431148372029095071112657234138754697094859717168334600371888762806007958079925919295184032813645121928240960400598925235380214143827189174257388718416213562965372592836192991628706759094508420686049257870270976314701919308503720452824245846208110296889660272411120650303586685215166530161281405059274688148141849652340643671502638680077251640857671903175610114373009751908395816470862599378027618024730640055555461644460392299631965723121096171075390076746602698747530048664375531515426436047204639611285625427441168903570045530072679544514759624830349756354888235767930228594147540217311853862274909060726764738866686507693859341808680533655701851655175101749280559177463030199471346268740100125467519299400289931317231826289712006975607211744356290396804190717710961613211372305751022516233326263023220719997778658533995400847485313047024862680734122155051638847495522697418595877206408370539879288483497229996961199091537146004434900649412576710654811759126140701159097340120627818658890883928194297681986329850819809548779722629671058712163078322414726690395172056219909142245348264215648297788488540547568221844541617622023718786535534315073264584551014609779727449208660336136471969285227777634511243526718796546524119470815622693874469968255676800200758902412293120163769224451228055206963012621116379441054368060669262607447726021340945056570406218022389040715511552809805165322178373018344641410736125318559272722001148328373469198401199261635451957135489968853512491164220852840027946997585312960452286280788358107478334236957256917659040611356062675266811153866348766596958010542843629148865159264596318126881541995429029586725196837958972831598942617480861716990521809360059081708454399741141797641350359582317490950374731164096457373179803394607288741452760934498910457142304189621369713738825103494161624869335481261236024997153816381600695562496105941505009437935182657950811918571010719725667418237835980270106016469354949421055484897966535384806832058617892971848771242624555237896384627468250268153475671218692598466139588384190517351251797774887521043393913776143290821036744576338955444147739058724129865754460294175690083826901828958252367950186749249917418010666938301007490484961152607706455434946307143870189222908060476707095254838146909242955731487610064013971735325612722960282390921509203429772970812363434893383367862979533221322541284375729142615337944633675130908749794860908627858969690386532614646235228503638880346309216394453766451959117727255287690938560737047977609143271072512651799534318368595398135090179985493077678044504182459491461179537718287390683029216639696209567440673406414853051847525178296379448761057847119887617833989039865639338794452706823341018302820741983891838879372319056894456678810348007041119891386782940079633580366481713266221955527407905991341003319517956908001933588131464501138964523891415922424667546322014429890072942140807547455693839843438112482820817226561390369187697068719129542350341096947400257906881754767873718753517401462240183061197473818466045208321279525788071794723400464048610230616967935604183972496548860174301986709032975766530383401683916900096425063588033558457046248358088811958338599543842504601186377006713745214264151145355558823638015215318986133706038134368416515214041075180541896928380709320127199004484563678148765236364693392155955240753972784360427053702708900655179689273015088353448297543980562748243968811819422482143370651548677701156256205459194410838410209200868558041003164819884495497404563087681038251014626415579826066221445858209279541851990069116892891954807564105173393445551902817895597925840738069417122397098963515419272805030491866248795580622064958854247664903015104986277185001101920138359261406216041862544302141115648348117334228446667660053375874140390624561630774343092977031862204387122900716120855913624485586370828648983386037184338382196557301421553560390052446536761360309369136805288978483180586755681048820565494470574054989292336111950006950552235134770326512748910935472953728520114552793141121956231711060486043988769907569305106479028854133698168773745289908030950955893728433438610462184392550013176372909414060647352684816423237012639582799346167590690438072698117806718440481509774071104544088694522310181663751228191322177684670196031371812138208282823688199075226986749751356588616375610265942333470626829869794326453376874150545959211746549232006633473357839585598908825971538794718603294057063650100954552538029415272462943751926974746029710118668972159775046176211177432012582125239285276930694710480757149726843243537845431728393292137619958524702139144659726626222186099149865521431881343424863269609860056314366129948485376159422700845929832897926846374536240771749915873926028232656335879315956969635496633329171898622811681523895646545110066726921015619246410788000359455509294204225075175997225311367042346391043046772518059333726739716936958537051882401203191821244192951069523640009745719430189413029436395299090863177135181907446014949124023235551107858285271105801409600316897471572364304108427094603671102026666110635509232281289272546410397218833768650656428196793396588537299513393814909448956820142718521675503854976602035782651658028422258832498192132982267117016762880184255157750975154856806114432870490850233058075178106235124132664260730393729740454371623524487133450902554627468559616410488213593002295051366287761666811053185202752364766577831780167605301892406378815102227097404863373447727973932213081596845885367304243886450487909698035541528870873678023013350973566782168050937295864106251182632504516906158192903087988514678025958155121908665874858308842018786475614188522736077860382815241204458015191064585175709566379944471632173975611295824867665953745733387865457223283930600644237017186584000495048508953584047264840954372338074501502855105576154371341158222255460557181444243413848501172284715146189246137785550915277959826700677262976755536542637237637578308466961517320586322530736994884212107358121693284460019916401925947091317951929499113335362305245107384470462662319084632396724815391298103782647195538504653194989302422936991941345169720766064515744671461408426864561039973546227739758323985889795029773123869977260859733763550402253131264125402897023746263291539908221006140527548179482466916190312585546459465768657830846520821019799028977859821984901239571256763918211012572380406482710288624438794996880522838438430395671449701989007698416957706462986772276492458904746929156629401733761500760424733637719777508204951525724901380566759473664727760675520925085164682196697652505999164577810320198668211974307054975176232869751759270044256700683225657203248627942671632423660813230198807641345187758193241572270726815220789219528945178943337085505484637483485281679112068861482997677162089686313310546970135284253435559083297980230850654538508829772564119432196818918368261402273467738408040659994637349787570549078586888812745365952853580311937346355207442923714965885458871089123186292131003642852380662999926218258334830436133404446548290648822220039265063680593790379141060132231927462422753347739391781805535246054338220344921003917381847708417357421863954115466153370284945145081313430763912368311164635712128053491596892347221369565931204777554267476662117916606754933966310228399770574127215742173864839717274831903393131502737384167764881506211359691192678338244018983169101064030496202376837610548915897919395897526115380152388135286332923208217860835900018914659985417552037661046976939222317476020825037999105874457106955522727850229520296344503790847215430089523204646309577688218070805558454933977702002566778024539363177334117053788463231848246996051207897715418279905401915578131219496079855600941549082316986052413551464081516534214877977295180703724933659397006946771877917302960526115152498243573174000764865542538856192525584520215968150350298373907430008970289437613778651327389400902293626941968015020741200109702942747361417969510872878891381352846533141186938907713810325804269603367656640175891997755075183225763937234532426749515938645805221391453817320817564953193032402814644084808799865521161717075406286017194623360120855905080544134526669212157552337493269700004677111574315507911892575283303479087691946818166981319565589581991051792365286179376173246621582275960315073978446911009446195791968333579163890507046006472292981589449425000738581678868633367844536120125792049570742978010054891575130236357297787762084345109930435642163518767507714207228112693110224407334964279701076459544944302263686110105828371402492387412562823611781180926252954776648118267234059495007541177479302448158989991859202059523538000451321378465936846544185710861141619341685687674626026323677246187847446056628499694702722848898336914015045521373636703694559158178815082976740985339871165344236220814984959068732838803831477671207680281600835996463474529225784323158438978667752733671646477958569671268290007852527097216779888254466317295883860486135181872857307729377102061199883689763458663536985060717033265049162795355570861921382854343922460015468578735963763281362014731552284055077018903101221251397674364420980664422320977795839669855248431289469497368334576016846113081839277931518275376014313218265918547379608130152410243615678190824000164489972937844700395299653391441902424916984015132710998211724519365375241253777116189145051217294469134850481403842697380519642661900186939579003527779226360420309498904769374332060518935269014230214225980246766187363938748183428240958790295890822136842891023113622103712331754848531145707731336248915010867913384554487413029610442260767241956131475223265043310924130360108692142453828978816351967048383165685451695694929542796833666804139670808023837555507461080644881555567959018724520350962321316387116515613251344378288843157392257461808494221773928597999935094092503464269340352812655321596801088600625860668101263004002944852157211156660848421347630841474481466774189042794860363310659659028154665800025362072752730637368089286174947400859754678852013820823127456799669873220530074357774398929268639831313829407473319404499175481337121650510212549575675741070712023222248601087906817282876886892586491610432494993610442713411015352702515590341525528614892415773968319401840091586907830433186258632725583655149555274593545830187492776138017019937592637735382291813707946261219418163230274818382863564108287066919955626119790523754274651616074727551424515533540864977398943311459700219067584680342318486427708792484396390533969944274138998716463878072233416506120166829165233637110512968448376023261385885683162155390702195720579628686618426248142355454662928093545283065165854942640820354591420972019506072376013720569493484012145774427084274000428201249397301658789174110102505650892140525676421240711119166746790359336807705759878854499653758165426894213141727615580453969920155118320179748003369255502853146821254108512017091163230392114346201799422110926793864544472595015113621941651956068791112400438158731617776287140296946435420701267806502174236487113318594966230652824176526990639959760753716656461817530615199795564302052118822045459083594178426267520528683176457440624587136043715103592190370590463432675548433063124218369831382910624714609211395371245097361982644858576478883021851612977088582401775593339527942732328358330172913339694967918596709751099310993271842144654214697275604562338241461831104185533437930459393219020796973108794718551499299255781554049580000430288425989141466263028987421401624425520670628428578941395201155774638738210261557674026522352425267031458036317046397572258003525370215476637529640394006389734254499516818779358006877964161497348956163943387812872013234775388116807269169630987302818248750003614315045464332392814125231479443328278188413432468726196199256839961061860600333088537369624070166181889996391723653133522485603812906708788895543886100630932089134083513400553636711315859699313667806026885699126557960491414796235036744908327903732757658704024549758549172787507825489109956795567839750265468868928407957610233007440292838845654195936992192901407697840869302142976628683799174473387286533153723108459657413499994490305728151138393248818502603859254764724138548327005687707405134417853416072871603819522115301120037120726653423216255569458841342990078647713108617987784378973727631807795027408778668879219360805879624615092616811749542315254762439120881140761614350541845934491308935715000562410164111648814805385047366597218744522223649506088962285502681095424927229039882667302178321954796378565958337194645019171384020550792339597082606489175499119070633415751677003077202437050356719260167415145145380096686673927380490863086862728990804771975328838498415422186144032263635834805038003841695657791269696553526063568734087459342119947797881322791085203149639703279567658642682893763894387705857973702823528011807654087044953852282784168776370730185632333582318516108739351101544646951589119764454099624145149115487016519850304822674216750499957096842464690321098589712800757060062032579405935561286742286583721251778461225256002594635249887848557775438736338946647854204656010292134714589238391359201335538864916178531453198376008919491959561981641453670082682970518110308748534201954729159516433655609087428144782515120414747677716670749214256993822209904012567418990576432334012967309464063978847666393874749678355983613021120627929310883555605287057994553029727894308712058306323198487595430573562086838755791863115293625279502452222302205765704072874386783602277000559830270832966568333144812297935618419033076285241072618478882572440561455797266815774146091714830407988099428723901230779402187858500203146312877736667865893507225647580465608577986331036318794013697986496747054572132932349907623928972838769144378321453172469025880177603307173343330053008194134191946144888670777479495559454252151680658671292421449246169190910188178273485857464863701628758532264323413940213418598851493261367515887544626009150367645998270670025137819222575153890673827306889998035544340293293839934683170230192749272231682989146607766168975345340335281823991127982562276453149830680136419015767869254992818841590388574577566842691637339250068603257329434294387516821956831767432373316695015571929896264034124486233355652305444064574308607858287694800502047004148491514739592813544250886979573345170926339713536197680127005437502907621173171619576147768687768745351470765606798642496978209449087195611474882863265052687265757638663866304769925738621721601218427602033729611249811152509583388006879068214240801596227225063569766990193134422533747025232317698543984660868462172592069962944387422453781339501665683359435973848863566558946164434248244815627683994737262114822085870110856554172147266974773951664785919869633761741161592636586075475924267296233301070013463426418017665016630079261001152093072321542709139596258645162274451124915600495306196112623925148265523027810719887076738834040185947193846062708062110925993287090738676710445675162560258908754064937206638234286908226553574868485903205290405085894564428178499491668978007243282486425033003721565751100245869629301631147783910724147772604544672904875685583235269994391342165466075721820720499120667596497518261242931601411112458605758777443322840965368209683580759642874888499179478605056476532970333483935445714486884623006497639679415410488389118884650974740331353903337422168593681398783952161925312555763138346418468082799524849672053000521458979440595647937369779720946288242244625908115018049690750615648203390443438054087333471206762539257650534268300974873942606829104522660131134360837905449959508395838702791558657146529039621125832886704895965487185894964022977915683975291329154598921324809972924216553420196921953749376740531434354173650825365545648755356086949202855367424997145403583432129684191081807746155987071449176519142762235038272466151263376074081460536110834513551234242129444210888811119239251481398994519612116191156406971709578625200577296980175779682063172966582109156766651247809635153797928460777943410146062351781038505325280086382077123317006065321816695574263544022714258858061322191315803966307005264151261917610963718990126574936819542304370378174760736456387975634578087967746105313561324676357938621023168577528184663880138150177543849762015675343693354405662073170300354404644381631799416365600386930021900551925425085993840516134931307797620512975789210229814492828468014257005983932227033073492341958920078959350594601916782957593689235708479927156484099682287454535222161322859077026780252122784755759561222153570894450510379996332328196100722889435408572478989318056835303527118463085977546265844939897417515088886493618903213841765750580361166220437089032387013642018337508551786682080173797037539587386948370296524492960159925615450698018357339688763306286415990361498853568880869837925505785088669484463549657530292191424680841727339722626332361073672618719253970507954313001278988521359600697705134069847454786834882598265933951941679872818591446539768955679713915465019537623000361795780601172097227985403021614389563631579182405699811995289342596616298592067872093366865969126497761615198982002704978496448197289206436155099869360795243499436281678503693592906762466647208819418920878587639844206425205018966620614295015535480011756827054901369055268427815906769971856806200597364133699895762611328686669170793471144784906925364240824375608602752170204437510513588272353378724346705244004623538826847564218223590638650844482015768494731870307066551481209574074665463738060960074634816155887038093910085614111576137794830560382152101998295686335384985473704954507099622203643834435505773915574338089784363299243337303232838977317956097241152176234666793217656556010865307569285850705211782360378036697211897274427218427370095187708285472728649386912364580844294436604057982688314759455433149476161660996969274250374677930809984180170927304390728164009641397444670696883976406913435825648351250487886441391480814157808796633105667078277747285051324772682601961570354647932590879861266728766068012548396355958564157291639359262026807184860730778157293646427484730353222030830022817409829687662478330800961205782036020101133598030072775094688202196416168169030469071394625642192224086305685692737816433784963207011271196386417792973435168299354676182452952569357235507495925564047485504388383543152284888283557127951941617043154963659785929702514848172214793300515319589900558464247827553588215534863354920377246073210875387646056061497316991408119299270047054812051450530792066567101718628752316575163017925734808089741421282766712117308522858409646785197568597580745594696154376119435663269487160481282490920155306238872249183013948752721756128849738807199310172698632370683860042144954042353444921768128851938526587229563242645779394175876414372181691490779760462349739364362910072242877208262737553673354959360572612622147617020927274374237923210611415110813785811341957886326732666527864181014071529735171164292809764364489420270094656782090564500182713310297820825832712713959136185496845450779417212068734236284748554031841496281468710701160055378577294036973413756690020505068281236808498479906927385614872052197717019340879611782389576660955763276590306961446991114331253925061875355386244768113947369629260566294403700838456678858797719198325132282056439702624739841570111432238558061951742640228620968350181866926488532537825858506282018384937382274293830412165744953048430950548004079067220828377102229255202773535776115108763853365805298995161427892163644543809878485454224462268501741842073889731146502349656215287826947566079089614290387930181667905279864182392666434057393851324455845842560822793129769683487434610938316525700740406369438223607347486889316567202228598055643389539807728672939564704931999097973736137580044608041733068737863039074447346475775315807665833120220892972922418066419133344619023192837673580234096445754364114224759880303192395052344500651453240872089680231362246882187101893999022276952852999112146535309334012476777052231253840666533368408994384219433556940461075649681215233454485224766087676452966865559220619938569450730403980016951659740793889105129192231217584929588692354671892625086269664184242468562527556421681643987785672950290300904708611695253273658404514078077867798133606951104297538486903309899887944725105617327078733912217471264773648426362364862396020793512424523073099499917826139430621213620268164389978036715174351578556249730015785881182308014489049188432087200548065886606094043457753840959371309369889454413322314948772986296484587149781238050165034313762089798314910428410998052204436517465061583168587431866599902211907492436377965818022128445404596550283125557477201622057390825354308688102034043830315703112919379496196043946270850614261527847236463291053351531628862456404211663016443525196475887978063309593556143736564832628446855916833073760583468450845935084737373417188573531233049381266365425019046822052288042453892274545783491315498549691966040660375494190629498538282821000044080145551723031585425396550959592857987784222237234202348613336670407290491180775170475694091367625190812089814704867573530197887717314340171472128244638503368990429531945974813549827928154896052050596049192540383637590724650327789552316283142330605721193552604909351590088284926493145481308217791006275768518822934742528551777250848837501880518196213488882013456230250211862711632333208946432625814587408050865446157764324509804153915821007109934406378547928816171508725369361679510233874281886845773688248559249556510698071124001895839311605161216929071508222803451656638876166806089303701357506473254953700494307541950341635590801524302097777593450381486764874875469258023680471789567335272581920485128128863258210145062767963249091985138657279498678900597945626682106368881010333420591696157960979727639963622438530508848574198956083092175538582522703070447609475779233514092068000635776232258678224972456741731111753845675926541109614812804454442695186382913585440704874567311499752984998347316070611006810596293676553372651344615186716065848144346177287367223599173397731350795210555135141634649778272798232989131234512763019447651493816806378159957001576097133917320444215279112255593198762492305408217355866381967889208184621553798883810746721852240106402291498182115164255324282165720740176342537132627263393985595068198568255491941970155821716482355426524354902702817861621322454580210346089396322863902858979201393079988824603732208286592572072957513511234742438792947402791332989180104341079387153426354832928619381403987097205400912407667080366268121786444024154216647324986233971409208956287171239968659781087642634494339981089146203992593750458309721578750232540957559473901177839937895728718702906955195960561550302623430291027990745506044466979091578740476799771479287825455763583093053981317988664989869502142834933372617808238854582189496059996489310330896250368537368653039021714882575432984674715413247518673959952945537606956931595208716898788210756522057501167165968914810602183560468430235871891552076067038076783924456976580139677861519344148534111002621224232020349078005658500933941815846922952240583344081547897579597165871716962540750709324264370603476013464764783400964830941493247960290639342082409984727802758517638365619960889233388312888821734362389426779118471075716809348777731671156509395316323803640682777674307014524619082047077359419356734558298064704168861381045156015671115016842385727107628152935915948970671531848693888586215786890721099442103606212730271832412105240421130118610406554488444556757935831079845870586915347470392547287210988936769893115382327165774409466613350610268108047027177494678683231614925508420180091461997984976767471139867153097634854239454779382281768667712367847012679737321643500471896218563787304766457679444095035324313137100804740415247493751867035909483769278354015986372172002672660478141734904467543581929303111629082405013358924822636804848852198374392236367432131884003934386782005538115553454453435469521953830703529852205504253895968470893584536932153330976363333714131072698531503995352962023209616893907928826670998235576513665292118110086343900974705185797116430014114118169206115003433432353618648335948693997482927186497733693597365558063351812829346041552180391170393289756968126892483283581258309223201675606691864058072944286669779563742500111210151102390917186759701210532823911136329550756468544226012796109073551562692842025816658528700876152856740548103024087965631552036552799308589133628107180610747471327722514475181931279965971249619264833098759309691177575072901269799421446834990631733561963504330282331890094651844111120366288414052805314448409570712772311073761150818777966519540839058534921740116725416349636352193678179706571134779994804053094109615393194312000989428005031940139697562073525354247200628558961024643691709399421324381161961674042559140931085726016678011972596380285278728966788035143722842055067585414797305047753134347103890334352595239493633671020680372506159086261592158477150219586611078537290098598826777239779425062501972687462833150536654951087081379767047578625125305123906439269591210179090557183368232483389577353255327610242684617118081470076335792433581516864621830840955086623138780721364109162983561125800623639550914104554161875946658146906813892572235991590822204601941367246228550818480027194740692083060690142067351815638086567541309878369700499100550508811664434061846295001493680648270801509598051895498675478750751648379763807771532893539792815685542268625401518032913161363036813431748051383009391021797724957050303370389955999058541441297618761788250447106425226158850366245372273725461016471301908409823030504712410629164915612844990858598876450658361766146288127249935755847820715295347615108294611430572289958658792199921890829862980745485324094214198120425687359626378866320877568697132463794636767950223976499778386461200910321334948800652564063262324216918541329709966035134827892861028840327973236473659968993453701253416994022419827919878726026580868069324179967716948456937756469319366615916319854883598730193311630290318031049296958535162129514623154704616973080915078399038752991671677786617869666652160609273468280315177047869604331015560086693850037213133229008879716103373273996336767406341445074728489849254928271923149761503725125462936479326337617875291452908926756917459832422451853503991098647363106822662113617364294175655106897121222723947364503264566703265548103586588911200276847778534871852143751491266944092130681710969449832610189951507728589499849324442648080068700618705210952412123111116403733811761986399237161622301906546092651501832441230448391672325949789658537132800295865638733891419774477060493258462162257735231760511344449739134998283397175130449266503071953682109418384180978835659731148037243803080548709966510990044850506646042229222203594441633660253448776865138066283978104154661157038258389652533477481740961737757387798651499868341550162986922319677799509166822190210519558412277805615926462150441191658618113899776654325727398696714970427075900092094902584690322043300105674293274900315272015984685879301280307573907250075381543261277191100742033804348867827541705780488740181672838158791041946476975640982879983915901169659794435903809907330538770177378191247657421645794689140754032193640615935005461877077977092700721592629190414206048662807516082651929995172116676709622130419301844871954154914367588211882443200186083935243169539857175092765927239651630267707547860453141377723023055621019762991913788150856332911088774544961427581214598958478800781235569974327068117810228443713627673231553994528938983303822012710877856583654610220391230373758083513396248800409087904529297611636445033757733985936698295361883710786132480587735811293738932501535445898135608467535397357212031058393587424593776235303427213874518042566676912168232976297487950343676182805515206973643788666937772179517509786322400085910612439810039674032422596077732414259928918509933254956403621539634755278643551494868668636073086537082851170307075904340784020183688244853580429719544052887611921616496042128561631305734734198851148549213491387093616491284958020081160137196880310968873864502852128886537963930329497968786265035617516306239548511790849133173243210857504649639514193176640163585197808951879477534866096076860830548575783171823352104730890675451566176286787489180767644704539387131402981642406174297069624492545331604584554738231973034353346099401784530599714182103934815026358686491786246992145535375033494628276303448460772989972725225008229146926892798861562504655298918493736492407293941335270498688179702835589652765069633215189708346485970347803553395205833265713248451882518440095940243617492698389545910373105031704127610743183903376072724614069567101389838364616639600472152317114851218392338888523095747102651078898169573533027797626264100918763897588584723648110399512941220065534807080699704710884749482136554090292087440820202989751065777872140354483006562692675275593369779455190112255263960194550111907486873547766920831456287487105364059824204204201155634605784836433483048440208602867250844892120926152346798303705871591346488141011016821110093292729846112424306699062708468765643184190008186674384843483837104853370881239394752168328294644142074786241488720632534595616358539725173654294377287884573565897108207128272700588214783329169402720411401124406213789745221788691692781767279403299199756519372266510290998353342840441087666318987026438067169409040308287931937544057932587254486838064457973721261045680150043553199074145220526775767502831553262099630789805888349441447044292705267415860912694626846213036588451234092791133612663109018512592489203482654823889695414946166207080338210062751965629214715787931976578459239868596931320260591342192262378823461355055050363184019329189856711906933151606425966729509038212366280033697143959159946822066170229698023204818999049904110883996490456301144044273534597960418631908546931286509298226733087467257920264704082601082517539881891769327953289277091660942164918260860565011307347331866415639594522519616151594741805061065708589916366349058858629296568613411940723857652554479658787464185234003536782367549634432598114624329509575956311232664929391486724589727734694924577041566164031889399482382315896855607563526863493736147949856125091500645096710539961439154147096963895268417059933603679944135999533893747073794926245190445840639785756483795913343376731446991019065906488225820569198935371419362506677947359667750088802983874185175426801910970565423603824509622482201595933010440093264118710712539303819998385122299222670038467606678380472232388803091612975079461137800837129391238731734224940065138272445231732488219989898025988561109442039532790140874647485727805259128162425977121153861283370144394972878662059340795592641019991932649725132563351965935531849656675382247089232563111587737460353216048483313795502313558433795973956893548779579935865976677896732667160356273564726737397011412619730868746969960260668450958041255485917197036731583817314186417268719089227036892678153864802008419224718369596211753508068073295029606187452397203987012779247577905952951754358993999087020829788250989356790331154050094036045770697857174196279743244923248489994708355764758865033129809834469779315294753397440350076590567589372622195539920380406089281716326432661843066699523171994920150476246193103247019923554060130154997993016954765110246024736663492157004973199902924682563198605965508929635352473135383046489424797128272042478084546443089466930006421101362364863123312666588326106349164293950791245439893724915161664720966465412120105467686759216362213974906363928610748104438668724857174016609867764127966056139423581952468523740892415219140970250635957594551982344182952617947990357593997811668945514551590337700527527609158739425546340807507973917293480381031498155598701751590866306784207748280810059999432300127595404909426515443569313787272495186288302285495599405154274793057987667236514732998861314012103363689822122582645220415070878729264908702384710237913243506130792586935116630988288677379179889390729254695876341910953540536051281304107198105805182630360717856865511098757782788188985536492864272909778990580915287418322055660113073788383317986450812096972465535178712283935366732540318244264859750864450241637869888993297777931933898050160289978143233368905265677422003330941750226623980597205888413274782598217078918989235023650922802954118576095699440838030642744227683820361170788185399289155296409758813005330936871474796008496406680349994703993110936753632624553468303058718116297114139852984039183873515803061594256677136589344157357175195153711395746365906371469422289223865907051724866585421981682173987001782149183435431550147364747728039738995656285708871740200324044136347096632689450460483082813312133748736945769558944508549438869104526916966883896372184651701071409503723853279356911936575327117848801220913524025638302999080604794727111096573966614413372622931248700963691354918793024819502365068976842493194796686792851641779046159536093869994234606687446521879885861716090821916023920541633326178767313365340695867341017065319785459027422541896166511771488756953084524093913424835202997632739687114614348002041352102686780274987116263810422888012884862479062076069264890911665642042022647905921806924603019699496942308361938670120457871309294615111561837253528010196096153652819190197447859751169880051757395668427632422326655458201078749120414348319945263364080806603039577967014807726404644469583545196055571508540792761041095868451299094160342572401097745056522183032927365416412341960749134163414094996640867526967978397192909749253805614693506553599443749369024671761211461972953663957290058579591347044669526207095000287370632133020294152091808747924716094718087587528932966530679363285883265140845797899333928005046469050115112590797132594704139528951937994892477731526586556499022297787355900978994732676432245386135057756804132883405806733506311741146700562681679147069394882310681436881395197499987956022152842244137664835644819547423100777271924113639788913258082132729331398028697490362861516180108095052966689107768461139289884159344087164535856106460956048554497277531097187368028570773288141357949872167378562867893834962973009694671843936490267132830779999324945301137103565069876043015201754563373965095281128595105213154288230592296074989993041858263636061519078496840099740472381637574243366381334266073695156479590977989117473824315262484026531776674757610663976943499768863062465293427536608145878856817505123932118415967688600105789240786069858216747953515459244387876432950870781671386992603014375033981653463934780076455810207353758837925335863208554706807101118745014397398390449437022543858531369589172793845811995582767269771024903081563105052730588111728789318145248506440623236683410803606806547269545978871539469249353826059328151609394635807906489605531582311271440263194801384711145287944467973997709260461016331866203405985001352449924305147187449138396268536386796458577240223126462216784602746131981223014462869686009078477761705008052104404041409162075922064867362301254830053523453122967836603026136615475902501284667520195126998208717967358140039287007927511270322214041114609182501814002213767099215078155779865620083346584251056374803051091441670400837400772987417543020890097656345939783851201753936943831891831583212331878292538673090724341518805779961059343548022113488933117651794937336320008979879975105430454900857958032275966376007059948710400253339379773587439020888203934015646173381589217407451605727744048851663055540368584114084089085617898376293846704672337747053611047471669011210051799340687290880737318101719530700709029175140151087152062769069493489138071336567646062879988359729426309735007569263796455367861320116027747397374133735437593740906508264413210706668089560389210747810683756272915615279634807071776029108530735798700399005242518900468546007203115348416190905088924479513272526062290658673910039130485185227941540063093360811841535435940521760083686647397954991462529550074046174379781545555322849875154198016947933036237634416412840870141666440878209474268721507112662645483537527402131224459787004601200425741558486583017293210352234750956611751435571714983382728327394325313225477525235539014735618060916741252073549991304225918663103416018961010079687604575676487955222569221006379439513219446988876761352283681714847874082330013786462648243791348893129731369909525625984432766435072752242674456067643028714669917529821976855524981767864092972058932206274359959295252687526051480674439374101810555829358059966613356580977607858691900319291459458328348800363878566939270879682945175980583656292137744345097365841376942382062592257033693216878592329119874844563419573147653241555231942282000804830876105363544250458820708830570605264882771585081537581006422657311549632072454583386871510824608056070142825291421026911143682102432092791869475006501109601448746117566779309782081150296403649363609424868547095997407627635197031541653566222476105978347528928376617386598139365748076150217332933971140001460984589414248905254341168535928693636955468040023464391750010004079436616772879434261025445766739211021097645796160611396338844990419513657566784738400246224120063074092984870437768829441741840107506480636764259144731759541871758864400333942416387578893113350955964545510560046670105469630462782622979034081126335343403836521169326661181696756365725366876649530017064060324557328199936061329967463173908816089817237542133656210315880959718708416106189516640934153781907622915237453503407581396816062431024291620435849115406097115497454624082488152631894431671992933523753897711999554091908828669836843397503498943881697553403584557998788138897423956262581080793103769835997576191907916331919835805732982210631497832779692627486719700239471849038312762299174046108079058393513217460958421151240411879378802489008782875592413279265824108821841223324212352835544574389651393839175597060286749116074745100610471055184347827313815128618123474606161386465544473344980157914241413896853586521755840912845742855510538380077598015170053001060396711680926379400541882811414265364259666779665930409513290318148063602647338693082307111777845080019038571606219953329406539622484074318642137091639998472439833619070579503453358470897990355339569860490068687433918514365665742899857161462004279617804686654202067128255937656835454593809421686336396500384307107394958329392203454013779780292235253964308640885427723032335024448772053607990147370386859339861333264176651760066721396335674122317521916743841692867313536614138055784937963037394138497505058979943271439856863125968755617674130717408788503024045994106733873915383201237230299837357456257001502200643978362530543065081642959057393227503014691281937402672496697351755364974988950251398781122804980624744704861082511652159387686090212994975359022093850312454072211463821616504419314457192333739981232946986675744167435313323680183000878142033117624848486563834532425463792471705646314970938338494402480319486653786396851811682186138385389126923258899645688470824343249690951473140988467660645697391863279221672503091619400741210595978879713567528014483585609734393419616858239549014415920586210664912593920997246790783541841091044743623259809245631704668549642717225644138124674569133417972559008134291101894564668853690636653491270466324178887235683854834302166202932896993328870617546595989766396487557531761144378176384451897336572098212003680463340061652606938840704755334150058290203981301824066583535387758229221402809096317261732819139625953434130032027973769132149554964484900569833615183099603143165746206502617335636266847922104651372092714744376255233421232412671733088775678998638904709815052983156230927987929864392659759049090621821074201141148184718862408906697092862849198351375664064364506847961505393057022869494600185861740219339462370346369158062190095916757106474233256285963717791810967403035447401886666668741515092074957410709434389044705447954360957828004680473636069988863990476152865314540861623232058581686770846109790319345452492696810828641445776520710779358767634337024079751449964088698150521328161486967537407433975499621144727630514762870147666775298990181002660146416014557298686610144364232079473446424037397918288504437152457288997113942277894055934943264304907974225344224619822371084593505168714280449054894078725191282915103403389712479044785532109015140472985084404023908810805991747255461605480209290720237766841387312994579810947411228369605528012414699219278694194014247510484483026849970085594376168749346325003366796861598059437389579675557665720804219775960033662096193799001716882385444643891651100023302081036804467729532307314072636557264478799573094264763975299564057141022469129188182565336225815010975009482650966494894941141243550334293842407563541501476778099888706383440108567657436131089028692435914464484168015414800803436587490965369745339706932943023338033986257233649615177096275524351249186080190236478171888897117548819235175864801043607228963954963940040508879447596207467082265774813912115853681643542882253656460155976930706225911249846526812306525830647259452319456053678964333151233854737127548817728073210017775620125147087987982449394640387292033646197106943778841210993714862888889094923261686367417829928305654667161137827956537504107889203793238715890739809513783626185952880194566211829692958397466092931242614127393783356325939505541258318434707396892194421341376218283361771763291578052834747157581718243457112316963351373919900349049310645944605078976004097952840161375677508145943865499039759384553406134553109068532152697828709463837199414988434687582031749931709416723130735820755029754725753446358712096418330050543082326849818424378339241304889119935601061701648032899065373573704351054297956577629424430798067321574468194611450472063405489261274936330964287581430764072501625938998888826687646443764637643495600921294019410099616895508470268208123186505130420620262907060375535242522855249940930065411049619957135946383788420759765599440470819109150235072189528563969289736387961201761126683697991685842604288760743094562774604457777195426678295776023986781241744133807739029214778713498376573077063614665463581862204162069720970609501467471151357619408858535933482373914497582270478360629303720176787666339956447716167802752564360648505735138700223610450601373989301863077578962452660618468471345815168507129656612717450782942816057928800601296942738697825976062987240692307670174877408113607366162207745051037265274461641669653826045865193158291150667762837751751700625005238718420424411073882665702629630755202523346310137880434844655123206348266489669541865794872005466437464298838008599308890207617949153557919158822903498176732891387482286259990199524776169191283634988672087177805835611427710490871808100875525180283414667913814580959490662361069288585600165161290650853572298939405202731420636672209949113438316445738214518696187803316953530604786621898085521859671415398572816391086379755870646081246043843067075460756397619879581170494427362684588289602281236439216804061566852299655975479692412374968121174318502231449206746186896065725215202137650727810400928968539444890459484584211493418240533656334790079884355444400262896046998808642402838423198092223198109001139806913342118492750467502800983738026162597929760224023823922918097629706452271698258195715750637258754141661056984393080209487314179994592428100629935916023436955350278144445548133319375974003772680317103015405668125115268259507192460841144987862973183748553168457493799635470551835065279253084729111258376612894874118703781700590674798524280436662800705085492476920588046194458537009772973820722310273560699211200365734656081971284474279727976866352978130704340780109436330887940957315072836897031587711008812476640116057950406049897068411314757014369466200111457803154298459853560859885766452281819624894984705456669741768087123936498658041286241856557030659749579986300559505820784332611318867289764037923922332193578812437047581123576427198003790881195404102534028973831086224950569832091334768802849178239129060106731817703870065955636050088103203453849425251691730264429163357421631054508328658849946904972500411170709254505760263944069026538012970666259431181260756234654135329521459989555275896674432789098770175004450785576921397934766450991114928904765219450891272974827272588157546225823637739901914619243813920951283063692938108660027617781047493706846969265876321238474965588799672192571598487569980950586504048900348367694550087591226736503988762982129611671170721735624558583518562419911348611755804363533092814976776313279730371049907618263362508943622893042460731704307419390913386970535932161868455872964704232812622551753914005867171623350242245434586624050688720143021924468329808031568843556655444822437428738224279868708655427612480002102917311450901103202798609659809454678680722304131304638676097368232035882273223787377973792291547357412717334093180145022249756260101180100976465045548640691957011983343926863443828987039114058168370423975401674874962043864959357620021367949440725267866116836182146670763205920680311482835622347474884799372096787009699225666268106794326875094186663850104260293199705592424585851938795446892699382741779998172220706685191600574803564404955618868490379003659294799787563868463210041196379396020559689267393600159027134878332963063123880830355905199023818684386008272583906531726419702463830039947958051156071019580181631420426512911995256534958027974239985345061995119708314470088726415874818089554334846498862697966459501544768019779593891690943424262078507635593358243762337033190076085088410372138266945394861956827102261741289700630697858256486292792987274216038648703355454604511722852485095553029068166258092096649945400247089213783620500294987960377957730586062271126530690193187783256363984883788749630401317354013491049971392357450686419233075630107295421580145919500571998155010910781530496284045450710582540218818373962851227321415895959545191731678884077188455727313443570858381021616883660902020455982531032548491384697426253730334765185147860605380541248505845391482395485038223076813908227077537103688971869948739211605289785764158688455467276285895420799361714864468577181004957545768001336555731681712264687082036963281785432458983918525704782853106265908841090547951136845723084996787931236744446892343960603370065242926870420174657476126660895035329986233695664218668455700800867231544568509148808649075143764556685271381870593427607291056867352941247289626191016853589657865779292571764203930028810005885678787715635720985232533835798155974018459745993712549682053980454978031107650531078749344335695992386770265644836751830926888866794476788211718499342934002404686992221497186643587501179552485807954605813525852120702714502735706371288755572595065551403082543360520194807990334117564053883210790596530642163862651681121928740431250619489903110771045980906601451654205199393938534037260332569783583810343715270528195373939764552089280364712380700880448065105973596669637013660522180553494015347125218408509483492542009961032041315930615644458342428147298751747049805743187247893491358476942031686472987301424684965521662748231346167878023585563520547805182199170547973385980342531066371260488163007773960139655797630051311935429851957280945617360652294471982047122356903395851629566932665146584066844209544840126535427332027586885551336449938874621386217822721057415097420411826970955039737097154994565617412564314197043569141605830529160364984845697978108358837457316035111633381941633959845578537071069882767631216435828554596232660131240612706526497652178664401100397274615317372303476666328531902437067102231548668117579294307373475540888145914318504741840109490542304435976434310702196466827722351917122142976982960039960852197440937614418470752979086484416673504535121105245591484807520217000428266012360217266281023532595746750172281502031017847891082549661569217226365735777683842105979856730380659589474797365047390483484450533269279934030776828295772431262480903786590030608621988903539127397945899285623715348267471042649862116847235744143110155586698983856264790448062306644187369467691545186306467522672103993179749544757568029922250378367930050182467957550840305412078555665663391076474122014432288499638633144397187802540148055427865432204832723182512445352944921504214674720131565608556435927230929412820673629314238905130839213249121347566568864807476966710301458516809658194043295125781156426754882727549370599202799309401692960004523502060733905627849287991864888780578696723636120238359142676096458844489886855478444598293131539824947614584696860065751359336467118901556436395793737733331045580018693830325232030309749673573332198438347050880083008731867929724499815502291205847359340780325786278748442129658346987410565735291091857512497700737296963698273571349149610771978349178630070711836435306732044132972126504089090030207305350881322149481278157241308218668863194453612114079509713804753445160560608301907992803491173515594996122016417905453265993763097191871755748395203097062374180532131059224997951729435933819527862202654453079656221909329307840198925946896790664640904651102394038358849402427814930860388765272860732201503203974462271841794377295913147046455739815038919771513930137603677730431853163605189803359112105099722634366464853984777104646147979684736342161403075881335103080604639281167994229043804932917766477096039104686797042553128635310256216088013814822158043298218430043615836974227712232703165567040670277791889262842846267169066256072771713994868908526499374461548967927696268561407854083480659309508872126511668324853175170551016266608897369436155954796469404730407757918114240462743821462049185996336849023638697808780559364504628374564406774368491301030294121529845472061912236277942164976741231593242058025392953374542933779856222397990836774179256886325652323180052460366039765509701679308623696233498326424313156346503146248971690043179806590160714854742756459725703578732150608074018565081908218926320083490831005103545028552129459169036586137321818737532785529605817206512092370604624807462471539333267869713327038748526639914049987032824610209433577612648018450220273382669238207346604853296960448324579608874649725528380196363387448178488257409423825720288604477508835105162072116271911385497390095558958951937202781781926199316543909010045798507574824367858564318557837370570694662081790130676347827304550056659915915908406957693493466846054210534448623115536433467828386502280716480935380183201547632073580972376107164287070294929471883461020178278613136185790151677767237843183274100736842087708185474148883459481407982152801047595554606973373383858414675929397445758306864495982908200807294199987639770971995311637652971365439360876967877932487850516199570629061830784806843080376217636477331282520030287868021021589078033414440015955180924422839933015513418850679588078652415846191306099749877644589519456406172846375529082078967269539235430451552945721758706168025243360440194528848321739716066114358293737685326904565202390009031753344417226030336792450834419671582909270145242200916556391086224717563368490370282744862962475277386500088636406855399181536526280039545967439676422164539525551263614787000208965145995526170603783943258648191273258761611186499797233513455605216077874092241142986455368893282120507197770463242854268567445477025887165010359503847598010230161632569777292917211563320119952130305840518099318113205560840527362072585242200436942097446861679571440166957679510490780817353681710536733038686882062564486841901468521212364847096296712539875499028534928282814987046099956283121926248731228092007153693092956911653329392139521407780518714875192554081502519805061038259684926920184743858661045816260657394837294345621881758353071527038538338980284946683893111271474676467312328771460022147641211809314385105219713191569287064442425614480996955097145628502636236463399016089854873312628162063583621273776374937757404206871569242110242177145897802749269305075863766456032850732612679711736423797993493403171370961462892390771642953770997826301703080493402137349985984173029111151137891818817935006444630784247086216102073327937754051410699293108110381164195668134447465663346365412485500808546116522168485825198101041325184082979126792153138718354338783605731500076262423751195103397979956215177736399886261403295298701154007295190348884005921649012807733425948911167534833916512000637219137236347457355890584290246216236850320346086410460700551256350799302430924438219159784755086153995434755288581511728456577284406623579858141626130028388414209550541622906226728826952860174573011719148107405811200786631148608253827988864475581646373766876590169848562632087024938031381415387674031831560770226687689666890979589526954667450055225810080313439081700991692151257300770783560280664335468877084288464951295852978251126728224222198927484302488685927721775189249929677010958059572002303061224383087948879151040127354648325834377497980155015144630195865358740289065059000295167965141382818027024321956077472484281073349755846133189576940818654090296546482173028772768961383556675105365804689942281953047852428094023267896101604672236043249327929942753241562180514156057401568061469403560437812321617663149508523784058657772527330688998989807187938263593543360939060346517213273583608949031486865999289932000946427738119902958895761126635331207189130089012783847225942003985975477478633637335162732098082972606132106530854529470390220032695728387656300032141182466781904818049575283482979530653024735162720911984179744939842938658297726519742484293227284662612443509172675738595204208990890451612799509847167282417620846743557022389564597943552419661458438612676993181947184034966798967530439145991165761668882956668340554176566803276372939873438792548683362628154046397778087841284698803540198327833796902403247782997779212642475236639091021184216976531163369870375269470531001695613265191846937961616076074518832650569829843913728128950757733454001850584573657794973793589336306491705410442392042018723091590995460366424349151309622641111818728831729727011292699910487607808575090586147120398986934864304206751312040535381808761619336766570573451020623469915475205044325736373119090651311384187115130506381509677755195357508341333978839482116355562589272076491544992666416414582013750283471312052957129506502396918999647273161642943590142622505956501140829670598829224262811995646926298825943175485585893783653616023485885469887152593873552242049665348939073765219391365521734931861961149890328002942776015608605702058628447264059244385926429605323302064379752856169230632182310688654764956599900452924448729505078475332014466506027200517225039105673478886453203869623049437170428912707041408499456233330743840880844693070399437789905157061259057329637642807189992531619493241369791032016810759692122569148819031056247454752894470948862468405237717708855244104245735799778093267447189093199781515887504892318557310468864898210841760994134939280750144154382038489310398989780525455183183391977695093653884713950453513980194400333158144811142520950405626896492592131541838734111301701059587514604586615408362617549957419697072742241457546786184772586982849287004994292388738212274394105002555223073728917316511108624479929545629118613075058756012198651591976250144648901994429977558232840825429100995518438257537577091420208276406412723557660848576560554893642238793384942420117320814652917675517880180493927290701856567970381004548459715696739392687916968642039013629122566092931684471702273234672712372574385667455244704176966346605957872589187283236283073357372500880825516148113209994028521111751312983550794818222671139341000995673789134026468518442028349322546365340948751980614649792168681028440268765110433199587981403739570573457947090665625529686144790315849791412436375651977644367763508995995505394026869402663917904014248936863074123010134631808017442179776818311596728575815300007610088278937571952428628684111181976253826382729302796018395997396180188604947672753658512848769084836376290862529715911224036594786965115498805387047860726443259186226245131354107706659047041680239068701131173416664998970997666221222416940486053501991651271139088209602912894471888481961322140303929368204849225497732312685558721643912732378955359829531650585132717138850556391147314820114976120146634044519554743429264484002542702022754150232300762886554953418847870581118213066661873360337155833821205197313302122090825031105350398593110920996005630214286238304182143613141335615657173071874951192945456402242403851809179411053552332520737816429858635377613916396897961528730459279089076892059097554206145387887523778112668170160164849056594900376610426938565546009705523684085113082311712037566944479159831450789759228159264660807872861561987841386328688874130752837751264653685209316392821663032077791758951991742624015092999079811598190430885961396228779764374146659188854928772517877990804055934212770603132175446949891661418161035513107916883355590731584037543765006692997844043269237845048948221107714534942083362745164605975583842244156751970901092233297224413764629672600223217334155789710049235763869767709583705065643433007775433019282248390191937540934438162193757299841040187546251879200028409434911613634695456531884178206560611088984653589378239217974475176063700969994752714580855550329781208294011307336235077640534821982422971913474293992714330590537082207186950149125994887496232660249020336275536766879827019563246512644157757372956396984398825218832230874582403125832599347696713857805049250423146553858992838249187417817035621696061368629996598105113570733935327250073104340192860611695171043839555982688990560693166048603766807092041322947421908795221643984082656436899942172509898431041834457172730506034304989089819324850977963262650142853533859921836980749341598478696617039302192532649765569864698182385435725463536802087007019330129054045440305044947754914586409840748972621483681850140587096808763195127274156016836922865313266151764832235790658457927245321435723124423598999554243173458041867939238925386964916953863680938749659327500142490048451688953605085550535392590008813930811086301598563274231656666629022774647693372149240809204219096121064401213549243071105286317937481161701831393659124211581593791681138008394263982865450825917242605082045247183231769200963561198368857364365568977807738599301062722569903989037314714548860626987926570958889964583019443292309497410005170279855371169799476060278621322637515933292037757479458927731970661383784693534125002117593804635452601008889122601910264814113120590979228908838429387460824158296396074057132050899577750157943168543181395623203427192625269914971254509374658564993037435619362560388063649961178471569161617590110473528846170405978765117259022442484527369321035044323082516002759586303555856563174993966768541807924278205795918886878281977528913112384383641346731255296580840632981798679137358880698924798449773371928485502472767952054396448791337591002464718037445214372258536286806146783576649047505821168487472112014086406183973154554538268965793823680895087332768143434149162914408961758004627888123084593331893833856783081294436895119833696590044679976386584677832493635186332308956472122281024329897813829196177982163393695237140150546410282038865392978651451662849131674948702036812603955724815070545098965042752992064602494433302477597413933787732405599445627497799430751893983714911996216080628580273985817223549872042586188230012738165542754864843791769529735592134063200256140501308312848652409464432079731103091365974864822314578622388796732719465220294840538040606401085453088913627805315734820537008843490070981892054655752129987704494040019865465917771986754928385635340532747596198325231613880628707396990606131205265685459296962151805584224988082756942029269537743420800662801524998719050800084630894935096269882632414901898068797222392951263124691105739062709586854941756659385721163252241079558948851307513620432094983678948485251854946793426649141552998426250200852083181576323420107721101554794391869989377704994947232010311280234649395840065368380333275165528998521901581320236666834489772778660489420489226352666856665304690127570352049123738261736536862403667334900557939190277772298549606915731694502111993642798389823999596412074979542696760664365429703506168418614146390977405581107373255782612019833441648596445685643420175819611064144301913250484813844654972735746680115162435004693213275695031407004616929677763037829167585853600339663757681322756675671688913452989901469076873496727890025166491384921958219958933135255624155868591836830587811127380387251412376735809112034914667040028314859408068628491977609980548118634411927399225001487517863767922341225310757186171138071267746463351633690053673624738359705058795402815287683009661792796160960014702043604228331418271096305405615746181331710572879158120021723168779482511543412512755616234982293369248405102776053999315207828534856996199756460775956511337423446419529611229198054838550617418826586950270836431532899093809578404425720902859801350384534703002371408816034144054697062016357275029560451284456984810199802830283485354833291885029888875066655450897703695948322048717975763260805433113713832859571832688866064807068801210222465518793234407391240444452961259989758864160838867873056587075133284858088352441262437129662058986881613839856189731666919906304398029864678229639098385679209011924406880331550857030234285335176162975208514123082167138384517287369834005711624802803967217622409374850286545289122168192997504158581999261591351694113921984364061037169458249274545571287591474907574787124762405982602713993705333043174950717386015933597716381910136183190813393745327040945118171067340952892890539576350409701760203112728730068327753869768285750625698169693970628938247548936335526147137878604975329004042819425787691745962172364866376091368209784607627220404719241094005702406273752364441814028595126050129296410370871020631777831569846279495245136302512976320357857344589051056108908092588971900533938810732237329494931068638223431552900035636978324752170541543200409731235013569973330534831101660186334984976846209658075108521989580721106492455986680101956529424348757348988902377141071712379719959450412702506265712181364242859998632489752699116238657961297839478728184838365850709461688107588947623728989228629141868431695156625972778731888574433410250451658865034492811927958758122668186058813392709185694952377771930582376110765916797265494052069359567483417740587265518706164418111318164678262685364569511044209559664422573024941559119394633350823472996781225460329607333284499603807239205608094711679322134972207581205392475679813273324907878239581877746235170834578433555127208156239684436318274906107710110694620067316052093848397821881503747037357758883815629156816046914148787809947145340834482315377470065493884122978407859049913771013528331020581329597757339520144070248792506243302678668970799981938685486610661274024709927293537901186726590812902008186434204060653068920167411253235185823770941621828442913250093747709641467829244184639563911963259729528846601320361365844230156521083995785449276239354220968102303789433188831391373887926717692017582034845126627801830041944263914324259465879589748419153559485520414302254325264633542776229722522057857341382370501875807317329722053059666710642681286146740101128491345527518779508696619048456803121331190548083375452089012794445525421524066648294186964736277907677197747153334461923092138758778882610869357474216011268771328796158386372941973934779645346780891570675500530802975364821069191106336564314273147721377769149497381048235366800112154404610702242613263484353508527997513173733007853601707204075323913220271508323537221029451445287620744291243422304559930239089743675904443879193897206611648693515331850601114006747214119311732378751218037658067822480220981892911706498305505733915795098411622480130857321837242096595850288432547941111064045477860947494183167265468617819953618770227575874976354155432642216228710947271363765601605788824114173698992167149549062296668385916176963777219895398227291155753019886284821833882817588863087479553056433675604894888066817510383097384874263550263012243210206017102620894152099701294787151778306642613570008356034815329334916089370936328607794631090363676088066202414273224068915176494422376019955056774395658911278518198851038603423598024189156848730257303226260332029699534482113095158837778647415481394935701878043401022534282629788767501974349191610195611344349543610667142463191434926487233557531102388110118173911656510524049828165516344948005514661583007180774992549542585751611293815153819949378477353758553505535438915738654933146065550846221560626787210161570865496354715106789494567855606037097633597729220602549667425597339766199283559027509825227760812020376509048992369306747179880746244899885805564597894027433694694799996435474037329989588261433119408290166646839725662987550805564572823766685716075652040655991916938182252916428015361385629224611906206716149180915166583451955249097909997439406648123483700025668689752568252623325914619710599567557137693760805166194331241129825343909482074378456250016523353040605514978019571033702227193382544313912273270575325446080014978207076274880210823467216352633873527644399840891221186333054272753911529420711731240144967283411440121343272752509742584892753967647472524185758626959182555504730388261831528358050877103350437426727924186888399733991868008569784949541709701896641895946136133212110033400866561233295198522189159671816949981237609277393172862451494691202014154749158085830701006709231324830072775549556036937553747504409825328941918399232566808831846414078111955578046002086983466754841934025995611415616154980627932389143403025532389221847530889749505095474264586973927326668967195829775883041766812090171282503085972037393170121661728667782579844984769176792536273739739276447697150160869955309801861386305873020562064546850089615126153371055905905067150210985633501234475761860262498445059687543344606546277005453401909636188408271707952875242085590344728631685273472177533194763777950542010753949544776194679109452563858321161850286372649009855060000193912450196236871403695519629259528442934915514668494425560392051987311441934894420220865166445433938307381508325542401266723971404694500931614958047239057963391002478566431917925825024339946971290122273605775420588470084104638147180532461077433228166013040221137079743397265222708049926830083188126315613122398017828985536556664400753411981543598895067624439301359674104525198071419252043179818778377038081451684557261925746837736098448159738540671576028209052229109780150694472335410536148268699240535876439672440115805929985252541798232694907638837180134453181436735177968696256374696259222404663529056403639071668788594144208932837250516764338788743945064654826364512446777734869212626546986363377146516618057420910475993997911822361206434740587254345506811031654786526451644768961064466339353543420398951463479311065166197328062137669825547755739750152148667983622900798407422206079719234999985123665176437344936245908054820332025451993386867004724527156306375990349586876474274433534976397870548439487695826045389815390334402659591108882211263900469919039427102793357717654129589516097684095510533332911188884292623650430584158884314052503601133262321498994763693167676183852116152266252340618970201334187600646289982612498539619238357461596497873899212968893396006688832619355705849692504224091170815363442070672168548719910959066389893893276360496493444890722271817418015417391062157591694508836495030575980250750792947750236507799536656885170624210020683428728040149618471001104185010980887606882062299440348370361702700091032371671768467545923594034430110772688926626391992263418628971127108234645465125364334752702525590191922743891913023189471745263859472523576869757337671329095529700910202684304750851474684068426819006453212927846224377493449049301271862036566603331500340626337698947011448986728128390602090233798383587734062056388687937239780677054294253865753735701098201603647213743044189843427581258044899859704273228942583513514944244326884795393320313711883757575860400323422133646018882542283168710185156609319708152041497586919290032049845801370952029873676553249313025562056313296446310290345601706168284249421795074122761148245521629586214928963430428278099618476856470997901004370742379182432321203720601819713793703356619796647382955899996290235720319639635967939059079492047899288116951085848740141735375389818079134160596620017945766343118060208962857393569296553118511434648263360304435801848391169378760995781793186572528202334309602343637739567164940223647344432204957365600588884015262547661631040840872205003942050542617067296580769689803508203268679930586643528459841167694577802345987328471766327281715048450930154162673408685690847621751857689506407829434810019237047311921909798225674755570990684152873876855308438181444554411830133776910318903309516791860736463851998624763310625029134210440389522597828462196514378876649137724645281395506471406610773242348272210264471978724385247843708706996027717404440739659208109630006616198096428974131192072155902902321969639092329708437984037901076444843007496773788890351887572520628239177137124573652135303684363623431439485410518692938509191852036576781523484949949628331080155549874007034459211757640744436722441615044034336088548024691410869613512336895759741301394572657022710803102059357202381995676901553342485387470473832597044179276376337645374201163783928100855691239352567557469086780046765357550293454212343737348501486505654491098252164891669965413669404744985450240064407078404672946908081321786884518695856535130428108027151656079664841061590604002371696416026511175580600960300869070747577957458563491469469196880435529300684425541342545707640139434344085753427377496816171630237333239238771425991943354017251584505363410104695038043196607005662471847067318852627850677299749464641353166965270243208827988341466366164783267785036620458445972701467352900500939771612789432303147254489849288840281387643663148036563081548836249904193048099118566427334450989602521073739852834305597530639948086548855288199450436965209944320783039070155940668697226154637897562942599512876532789695394914549634372406097028540476516055073918460698551878238473438645323041028204077955557477667373714058259126212082810556566755569652211374403620550160852566285366860260435511169928376449242305228888389681157510973864801105870915294475032325726332663696198158444905161236447596040732049144665118513847843856985298093993881134038802208696679382823909028338911098400529121687933692774626549862826279999353626609175381415330249888835345510171809278062346000618620853057783308634720427145058352854354117073829065463080438009481318474675234803145750153386122198759714396744431640345634187266621513984093984259238813682620631266819743930413366677361435703922253173218210987421596651258392892187287031210747272694605930071098204731072101078712300028749246563193381261752969589481572450102392352224676484708823032175636874824082283212732453467811160012528390829942015524649607738558440837917853160783186338556978280824308834227470670835742115489867965505536210810807397202722123102275888883952476477514098874902617536478389200943656526104631268026318156677229358903761145254104728526594827977850431100292257849568199535552855223257780636004235335338995328828726111423045739995616538867672657655050890592282201738435011747400437922885861750345981871265854761570935351423090374570941982404894347649272243378752933156487474146688704593863079391333475145401439469440245399014474386396295498293727907642075392536158236142624726021385506785276898577783329023490279442573675805202018540194657711570226916267770007293025093402901670078126859841157764602153495899632084224404889354162208678031020499973869500047081492026069279474002180449648876838693951598636107149019526363595760573887381173490381461011162342510873559185204873578351665084842253982976112129489097144904697462283081649577434519721384718094206191516682879856437121363187111964470569904272142592267329475006224459717041314720282946357456732505344912707971399405088108817588072498031300307592334029488872926701513085668249010500693893934187222847169138882323092076473443744723807236362689381631972122536989573679325432326097482158644923952110486663668331630882597314572103150705436870340162214185080562354783395878319494729560982091884725370575087759286045858083120664233681496081536200487574372870638383465787446936704640897355233188794742045156668380477088318396974752642803934693320800270121877180189421125922980287811458265937772710224551558471713423992558401682637503793205396746379198456247020158256930184525553970760249392569055140778810123911212803450037467706273098571740497268441706717055995447189128098746719685830445704023206831947800170494625743427911278331702713308071767677655960303723929224325549014804506448218020794358542937795609583148576596360132000678387535102349417072415317253262755683307611156257417690044390366495743321527386607268837735105899296565077166414381929553621918760482709053634019305106389848915553925853492754560694946492961974689395182739278570828611556585835456383984684663853572414262582537366327914436582908263577335996882117789252995289489584342848271162605832346391442006319762452099581708290907098059991260380541764755811118812476486731579219148490342257818096980185029257174647277646585339252014305599587098947728896903257069464604383284237695394669191235562079785400389263212696789152167266840381656021994438011715344961991943025312503857559361357842648254928095883733762754730607663303220141934086931663465934562386035958911206929452531299115388086310892666828609258160677870411054295687625150673973719975064177653586579316918538941150541177571453841419793300097634227447413654401133456737643777390482955308759651416647550953593421933954686199293100054381560746575276558593825256543020930221379916076157841931466694606280647798896409245504960366392254836138334704700862963331532630389074551619293667642783836628099327418495712880800741720290389821210265853222491030756530542364319790877701446463009949145377192583405935435650792942506614438525623715529442381487656370066318980707769323634936626689517508914650896908320464537147771032111848081047800414426933297391225231622061350272180843358782243512161356871013046788522242776442618292038985702465306889552029145205146819903266382294068661510769654088104684830001943560900761239727925841544400394019901934501758982914716577208969885567050398208471359009112011197382977798907292777899872391805964764943742221024677755795493160951273596522872967794866593174234019907602495830591927712484751060578740533345715410916540172883817746117424825868968325968766473155207679031145630024572370771733248522640518986233903856156587292361409450720518949133764103500983858418087095030155938636698284465434199633585517876126490046685788054978359226525226521951879130186136950196098070626172224350341756799727224919158822971482165094733751821157958395944269508845631630158037896572555225273134665199470777796209669598569815349815738379922856845311222611659378044564377568416542675889746763520596856399106915510969531729520268007005353446425128938515653221500869853928379234194868653414044649105741928730738954372901789109792921821314540282928933330873607963885189563570161907148480416340183397639801094060826590988682930934345242612140928335676416080337566279154144850538179739934970153746125615732559327266371694555459104791844546087676549800751774288123666411621908748303861135247615296081212061511778271258755141607630557389215810547380825586955964529096092801346312301955521424627080790272812313438458930416568801761336619702490161591775097025136586244898728068471530101117920476272485378963069230543602395417870983318964525203689306647798531808026358569012626071816625401607995175028210975280872899433843707314820524300703102968671114858921868710195266858998358011689712098585984225842422365021968235781035365855169401545407368166798010167139764142308953534567039937042485972460453814403080620505952963811722057064793517560082044628958427610969617252145866530402742801317523376404634500523810535702296217179083933335391754527797950542765614194141949293823025967787757294093166583821714526088903096888797727718398752389983758798392249305174989478335167609307700925949443699045477050766226351938005558700995401879938280445756859217628043242004043124330313215595253525778739157657750609200146981603740560809388326837098177708530819171444986283016056199414368689898660649651110879106901246676197681506495978280759888332344199445227553291737254733267600603272296346148188693199738680354576028464670299879976186496414605902225016468442076068150197533498539424073750633656245853571748561417646869349967826090500533746195952470082328104709024062178134481321460112573110267426174022960969894588827073369350375443783845293790471628990750225438418860646130868930171594856792499238114052771850510782948220865965894016949736824536072295983003200988159397230646584138133817045668230940129106805604414612320004894764728004625445205994875548823262714103848685329972997072518794162976156648082771398324476870342405615092602536029295804116761782580419202890479243675310580742286805008402704768977018010983208059224507739110413447918263246236721643703790980457871995247710540900040559558054285152491391750069112456534174314535205074280512216257593973302273621447799134078706980970488097940095521650661618045477846926118375314310792523013763460909102094805412342481077003634538537873227758581901049460008145538953221131360045145139096374263388327627305491859032687092983241085463571719701659161902444094889577292018783470467330833458817510727862169939359540507397057911124717712509989398764177701366842780754054336182485271378871791186097501993193750361199483688547756495305124365189691869951335409117691102316570573430920983529487174586730754799492181385794961866862363620076780567778847577633216134772328713951576511720807316192150071720507551273125088652962726632529021158872298063927713124036356894551097177982956195375139533642734193219817405123057855300769159262674217810477640602183986825094244512571842063615969852922846066218287894456174397225052815602796566050947501463315564499633819302050583406907726113474762576982436749319497336438371691349738324754313802277671699176615813029861613047934955879216162067487301857702474203195529632032018121435009997390853085396985166749687453137139805605847234606598430491315987559074956479954964513185782442290780068443158164222793232363081714987363500481071786339194648878222712944816432185007037841129581688816852957116581256141920464448150350342635350754956817969546194089290453099596416334605870660589425470438318353543798328310667360910852578980109550500180483921353589023654351122312628921196127300603094712966633216675342551442191626202320722897774147745800124597774928997867738138733394831225633715838127197193339251803961252140277858817652847981329044967162470845121648321593124398357614766637174741783975698518868267515988851090646343305791604647560270938670840876363283390949871265967726403485978560706648891714987790095648856273893885236156911576328168202033924129854977699105694320230870607437177124221501887629111853231821407298792162628791637910165931157771276276988389534394534511876404624647021068650764871403767836835117571809092787455517019418503424932147552881052542020982150067317754223396379462526084317086607599788143719695966651976398660955052621559750199442058559586183613465451589126871830606427828887622732680293830137141927295067430229609225111527818221791714321504286698611315560434683318078305090560109193712362758173025267595565587807060879009236996187603544356369055173668815270772042385194254726784685101764233550272374479346202446070483077443723280696721943736457379839912406293346861157261470137846948851571197545665724095379084590208587688508571654897905548230786319031488611773728716014434132018355454187418121291310623127233579422408501896851476614538655380589837114071070223338896434600871622380826503083739371862560129662070522804520680904219211554587174582231284986190692359592933357552855996005186711340834845463712103036670401836669123566886142637091264829313045522299699801669998392860745806346376330152893543147516139728820000842901517019535224710068018084060202237235047357460417494836997695566984351301928658411875805309586066218534860781895748619467893926904176673694288989877775406900385415028345123600965121160424385787394387314238529439729265893273674757521421887850113078728914582090352954697757755003669060881635659973397793161148464564982187909070090948670787025432598742602641386812589420293317357367344367357969616712457173183704417622875015308389732811773100363356841990162684302401630994578740161599255294452979790067366605807312088454907554336527380661103209082568465703759652906179123441941739439760282554805209337278351464290166053812651294337923333330294988481618073835442499427742529433848449715065457128388066437641863093766991214911764488487018297263546873111095937460143149248893219475791592016084514678810142835941010334855605328219389532188148422937778119678837017575876749996587092176388927087827980442548126823713216351660247500814726620352471519397501159047234485016120737870384212964379727454019280951480505490011420385314889135695483305253478005325660949573265167735455211034562386292334283899019745171423991352532248759793702563188012632709834166224636396664345027013994208438271805006170681159900598925369620270027093258317909720769623956610236114444413895681243906508521398218505702784361348370566693966202598173176125105603449514721046638939034697203315098438546857268244324175358512691510633020568311515203377741163041379421580739338742698634484011868335072337543866459951173980408737820006102236128615736577763590566847176660933630255129350104827271440701617408787366702691558432149943969010782286088900524693966496235493910919800915275208049178944460841041913185905425253897077299627961095900268066809760727682537724807276349898926501415382116820066079375981777433562374443019755873074069930382144609194294588359217692914477100184165572860806159485812685995345342394495130427917556969734018171055699890708822132156586880125220593728699028402353962143211803266075980991206705781848640304982390122389146530228467977013276723142559555602314493530723725714508811359730332489457347620271824443205400883926776618924889380633168200254298021418272171701572745635573082718579050048623930890810299977245146949928903504744864472398665240333289022834134392695798807026643602541130759222016084998716895923612910930176070534323194231930128690033108703327083261138698066848023546503611914429069097738886851392614309893291075715367704300596911720299921125280088653773307563262452990876914462654859663175711531994434042318022809165968693236444417017845511528433036127403633940027197230161237273030044142029997669470349671044442212719036771429537799683529065746636395839841203282246699705325644875737400519437004318442297936161604949028414863932440058849300438350393125946902338050931723174141703196532572081931623961919574581770953703333673379822673419119955057644923438276422314695987310865867292453737572752870262867229514797985239532828837960973323309754745362285354496630103752724304343145039839331620965463302587387074470973953282436063969745702771583123461457532164050003782106353473550521948747828858995139481450535065782435086223573278153967633614903414917215577354813017474832181239993869867859071887733020585700194830154170931566485886192736172510434349808918372556561231658554664614277606917253097326493614732983715551154072605138938658366671956737195559001608337538837062769817054794697735673989608937297224212623463174062561372742655531350813884745281147840068357038257934589555808069136038164466411216937113152205689991973274797646502674382125617819850190606098651880627682175515540894419260251484758986499053373150368816325229658381434894152338566070131223881097549760496820957278997371873363129619346194978717542384140639687713223582166854626915154190851457133755772232028294748442827772919876241997291477553573072262389879893224721418851498482947270355239537455737706842109157660446987351315629216214737294223675232228011560005835155796776799083524550449924727586489336337359246138132515837811121782787453677853443311601637167613859394610142812332167758788545597365072799695135405586291203339655586946766353592439570431993536978349822685225332049192253612752912404140610534311421151135215023378705015217149351546200355269561484846846238067079019318176298360995658708686099306008340286423403506976661991551599558560041121756190597413649239020458801636978415593965042875550813448301584092511887012920138737167795417572572745515015033522304226248880072183116593142700663056119268451831930236375513753428040351044566954067221789002858898092244006375144778188993272358269024911669568998622836192059517825859338735266189343809794509039778674283010296563838741527533466775193491987457920522499370119573803062454029193766751981791759484694163753660634562609265207336411781869952109408020824092603296315454737785243137289902987697731157502041565237741681691430442450684859398866256114847370381245251455889164473425749880309638517961423068951767232988391701422573123409380973352964469731014664251109092834621741292168600613641030406592250825381445686381416383662320987740340465076956294977354565014884231652043999102797262558274089683600318832583574441473757015593845350775630751230645890791811972669105273321479059342961881345481650107195292161940254363958870564433682319162729417085583920148961506326120468276105336909528828219888693971606656760958628799703485607191205090356040604726344787359431698046216210611172177068871071548435947634002759327514511663302250594478141222522019402022290553812126873675177400317616778189483165648458801462879258040345013334608192180009016581928524737880817073080737099291843194451731751192569645132375405744569203114829239351611325108242493503238976803961786847541688792262274543052460495318364394616873267473405093443364575671667283572000216612151334231410948851707925279764044931073834011538606572405110950054454163474330090412477163104885751908276507260638761492739605450622342979311734191470504144357507793641038144116301361885489522578222802728770764260953554877606687461034869090512757614765960134174001369337084875263579599692534564964231320421456264522588888015109555468310827661747108896109431091916880953082125768903101241981910526207942981391083454126814632012716394575033174730499306680267663584072618041057865038338732443726867340564594779651613005587549184646522948099743120839814232510283434058527639901003641942587772207925007994241526398037928962414178283512424114624961947265052492319480113616472858232411720332426941024355018251918243376239584161033173766318686435591116541915100333834490868708612805473358583553770350352964941760081622150383382670257502340113224837997805257466352010071337442035241086378117959313829948243141724012974765761760432538759320934073998786058867422644296007332867231894523386478250058933672803734170388708997741978161545954268991893204183572411232166745382740539501990226869680346634912434515401868565480721197198979509026394163879568328552024110998548000872333623781086430954070875328127678340774529747785222121957330561273018593211976113824355108926075307681210588273170612034365520046077631821986907930730610865516111143868723721409245648997805128428015375746143388224089821605634004071358766966662773844905670728629430514615049424627106776898104707921824210216486154087036396908664737170102341895415477355180518718100971673676719147541738225693709808076233401775915618563936192643190699641722161211127670492582434214550437507326911900317823591181053579905241221018108288407868290608555633439418497720948455549947401797862022542687678472256446649877093833361443628322139263490487111651849758624397604869281937665255608785870756743708180134186182245756455982716354330257086221107952382846043735685152257541010346280150118258320061356119757338018745929108453872860297938725829369670509785746771272506261680724173250865287740600708074707463901546645620769841459044297336987580788050109540478932600139816768917314676238268405828706513962959767121274547101555144890503087733929159085477085458257854346094089463577230985296884878009393401227779248883584412232054981904517463194081018920012690609794904316235705322681914052069427556865711106421478008833885470131029978638180092032280745273973105395023146019542503936686780598328843504011803646489662703778310490291777225091758946832726312808041850105828069871415878748685734444918107396302780723707719314500364410589139311257295055120565725616718712317760455774743974914466257613648591806749933118580641103534066125167266212293407221152569135841924436805447033860585498249190404305999574524593355383224961759618300510009384822548654552586573925603133462639647948045160249876185408832902347635098025869251397812739713874594235795034835300192315994755734285025135745451053977953107870831806909654552143276730457152222145219142386452202872412086510718265087473999285276767725712394587069327703576026761627921998992497556915676645802173951888677929493020300563617237381590847789389002369589102772581393686701164183082744682405387951398084153082676797245768638294369078044767139746427642154575152823561412934039519368702792694565962721877984415104905042714452258763277874304604818865159629612697191466659837606177376891631551221955439341657749220324362369451034351534824217677908230395792643369534610234178241196468967288954448574319984875779865957930624621471715987894629711666737088411430974560369326012517951639431200728459831905499819558179152490366940379485784867026570480135983791308279479294739773491534013271969178252794968484175951857880493048940059971923812059762732426996916114272048638154985616160056481399740617165630479083946191478393450733795150791703904559496025922236554328614960873704053344653264905500282821445799849010835177906170746629010995636730128282270897696302026514969051590315240356537196183081832775796973296773440920786364464408600956759143967177715252334368719246120652970590961266079460362390793992497365293181397724807727947227350177202955935328727982520450146732129662384647553235140531275158407145284818009987405132000436228407974486214066502004612559195420018138510437332220240230049974506466751127150635341002311417489882158156448933239929212305686070760729699565070335498372988660191480752110059721195657446096392895874126767470462259966554210540271168394624877244712146124477222203187530786178515421815541317293959554008330761337790675253457446321728553499112018196088166656250698210149001117818567246080832333333509490085715224664229513935885757319916538208185424748903337955367020951824299504091180326830478162809990732902229839950726479794978359302500831746861587399095952714489580816073492431664576148492149055361944218547345511505646419144236056417374313999891565734538689643834737634870736776275253859578738737553059738047956158941803319343986267172511339614115990339084539185430594652257955773742394423265565611742661623751713994199889336072870441698140434811013802324681213598389567003534578396178008972609533443743250047386291700122003309472047207295183946610789730970992031357765658324786954742756975225172911309103084998764913677991079012912911255174354767816241744528591604812934128302363486856945826555209800307856971526918168160505696653391019645070157746324991861321561454436619412292914105234443153700397710406542907595615162863822034814157172438093105408367406426008315690682485165208692970756998288578197474587489815764604674549850446443062602518308212945048369710399910629785555358508873350230407085358894524859852740949056509560646159223820724478661058440627768826733028172174705748811559500618319422390445071987730015796865423048576365734367298857838376688292550562884506842181313773952568617868905489379385047001796661528321940933107254864459745852488245375863449301086107849594104553068130132830714871959077821627528050752537336623033787166454615347528387174483621352655726706326408383703034978488146200607069302087251598731612192532013631588747106747937609443158682212536612973982365320834328826968884886947780335930388046357258685213195534330063418192609054136507646633047610665551096995192822105617391243283755979173492221985606067701854565083346422040797438817098136135723342975116764248029646485355797088246838015308816826799199465345227338338394870076476269132755693458632887555606360288751067458130289649254723044241821361553138136091529962429632936679134837615990105169142442633937452840258301423790798005804457917135784064766773536530619822443224283856492714602609890676115699461418642423638184336700194371633467912123096955879239419163203119432473031362531114935568612471784071054585156236792185417119896043822924017494991874015410687701178365162639012540826872453082971129074425916939157744177369358910401413802156856987568004827883859545394466823424049984941308286943406484578033579189419562957895460162249138249842950617684568790857228828817801789410503316619073670564510048645292660064113884191520772891873815685041704428698562734273937314562581443906573494620206133639614188413521808872702558150242900993897869014832673272728629960337043607054097665907199626626259268388953707575629466377253544716097219802555084506135655706378742862618402262690564397762663878315815638089178350733599672521259596983901853192793432542291535310183462437125583223850575799944463958844648698641512012905586318204447525702723599842502329787669791604708475709977797622248815420704439872976574501586195674078557329183454489663598388353370801116174846311038676847781104670605241002602854775874551544844695968694460334211213404836665721871673208808356735567869191419312075812955384567006806367221107895370883392224395974537666711894907567943505455740507424334820559084124451282755053772594594054296617767446243656801749620978234560358672316570961385368918098080107890408381835482313071356000350087611600832916546596562612007985765146535599393148943454474666687751117920864139497189656632622356011315028920041257242450093928889600071644136735197724036177208547102320262385712443104744205028753432886502992978678198636209256149445248412742080422598124601961066294945031771628517582959363936991723511270185641365864697676668071608212944777781872829315536445954825317590805160192676895453843950088540834300419737121304827689024972503496236834955514300708659870871156772105297337769693146668171232518756861633971663599529429365046601348270891903516271661377958491778780920821594820198965052224898752957664265460151711134475428886150641695597670969960997256484773642128990967055850426209032699904657101359320915916614984590178705720770407259022100372352256550736146345516472401135619170138521037984233458409673682075868690692169114216776249470112631953134703365455903340195154478257591756300156437123229597410041043119366224995015467545414749499697676450299157467359132513965457852466952998332023760143389281761467694333442420112991165682332692631529819198419606435613916062629178636814298623999830227354955022146116155900109543906209451972207729342189437964567795013257020967752510907630271365882838852385243679094034336597915348891328435805996193833338881443012349734083020420977959568655713766434100074215502173680116539305097735218039037701794881879223854537074361671706150317020731293757753205824220567851654891922041986435995063502028547283945092391570289587116154765638143993558101693101624598441746604493932300597850211415032871394031066107518229229410951239796057880766302442519289706550273126404825003155683318863080558608795534239078847759730573637716670060719183591223749970152953394914215395163280324428583555026593142671349271522877986106779902710178667618558355652289392603136332742847248853389781402497141085013806361852458341275160777458689471503882567642250606664445404267398539181579933626383891963768371945167057772515152412789586695080328115122994533249249141951853015416027737993856635394394961943382810374626311451813897780878635378193064275093131518367475757836224586943551029843731925724029261425252094068608720289725001019543671190156846466303294296169553578569909441003723878617630270517319574702064203574645720702419114414739356705730150230282759878925513736461988209186582640747740203691960136377048087564946123640357049863009096769885447278459739184121886175088379865160235081655454787871181913132752685566725487338427372736847020151431023100428858174177928399365779770370373284769062011970632495430454467300337359631049950808584499405447296222134414929587128709195328077097816263414222055123664193134384350520695282998070956918578309829608964513844948910208241664275121906709886066206955797101698241669005153638051740475078293699714742774474248641329795005574129355823066819979869115130473302142013746192002765527037931855640416221907563305773622871339878910743894517518278353474255642373657860674539250450932648278608379070177134131238825015717316448419629137479291922770899874399931266312040082729125969304113069133771812135273922838632288248388438415174840086047841145970980644913342081861426475685264899767318328166656042435380251896010535607838710400964096992077745550538695495941241616898027964287678192198988675427544546093953895429734222466716490914924808496114996036075632673271264799103325602049209355278169020410568498240657528369371941205407031422782877319097803476439024693384044273915812854769054816496424121875462044257529501812537471058012176283694927391085413090684622662706387138856534561160045937393116129211570959902586494326266801434470657685247420303778408800714000019925002075056357231159656458682715434895984080349885861058598334353596997712634575751670785271113110370939129362671993589571739515398874895228015749316882436766651709997153949904451988436898968469134794882804418717555518705918313528154701607756471966748758645375371834139647459915530135098749093713265355534914173214852727502631377390158632006644790495697940711121126758229196002865824619381016890986972911370932278963272038417407787980856566258349827820754272137883692024808962742288070396638834706462674562476441576635235224135593811508704467661900440547503852124363941552387882524377999266343954733853398508823935607437210799858790977468021945794136375620291072785019125844762142437074387375792229356769141439053726486483877961600207307358507077022216233135978930122446853143382002014393887063972230997913092985022851298749755157354540967733111702123831150854016036904941991758902912145948681253427423386015617249470900124301368521497779977867864249182335951234618080226727898827257380499364989182429094505815288114960312626642953510672294967601354398771778041175693034566424956272662372113667042965533178602928229536781233316508036391766403537627133662981924072661248197283085829205717637486130638239916068916883906305326765658692335460368778988620849715578076843161020518225809308239326672934889589480246348464864735967621763049880407186118303930675136860712465972521888114491597524114991839005965578709331352363384313817078224721369285647719383976928945089041839643928902505310273383231956631377886847923507267949165098923476561628686350366909227288866470603607730482091800049095104223837303748886685691051740125862188306404318212215600247012511869553832080282205478769511310688258158173981756177880392698219537254684753153571765577503829624538972547023194048554639696295683075975366124206048596359805561769109927725715911634610818444800824191489991977433637177083060513590026041486175000440193533413967005762461301721874798301754014765423836187396937994728341427670533328290338143751781467165574942847292444832776935871411210404244953529113359312968919151481156502694796502432591040506362206119915040483896372341767554265207389468992936244312074521774720712135069825413677525225688214663185427871116990239305586507125073309674536868513327563440911639263259633235648400351567938339315325728798608438630003216941496282843341979118563622638818555312342357859689644842014479634209617704799343063610939846376143456192319684506057723542919558542907391446123005039528122913931960944672315286890052008509963959608110026281183144097250097098364562279275472356448953826711973988980853635528588373781711770351452589180908798570392057103372946288586647666657495114101984487203581874894640484069389639952606146205475060056452776385534492670718696629646000196450683069069247195080310651979945346575377988785465520176101442461782797477521849402092978225387431979971513858037298626848629254130857177157389562148477384029809070538435017475209725815468273401482715448420843723842959921595087739512443687878846117974140416477749771406771934876338463950593956161656954982927861964585986444803296716420599214442475932907034730184816020741379927624085578364289455032106860223041473682110753714858323988159257382864703008258942377242193230652258468540838507140946112721656150737026581668637855946128755856366415530598490276329340471897114923300623198684240772617832655592746092320027016095562552284192812501997077643166359022569546993740320335087241072662371854827830124542982392176309615157459077021723052137481154309655182673286562554478754641001981541519172251452459189382628251469877481575118945285586041458020315276892529919325216397850689306875029503307394773339210692023256823619145121546925004858653753435390896086268117414258189713438430939062000069045490218239583155877200163316162668663384894533299457010471359256488850295908504821015159463413316867760440352416937932955389681970394546526638443504269155257252101596629683411101080533377118253493620048875825219873637330996960169576138775071122079688741366512324386045064098355249369082632136393374082313670761518154053866190027509171924487461646521292940896781882856040491887967313062319193222515615119470381940127775803841280351171957707187172734404589475656111643817619617411446578627418536564032711541819138970124017760226668040879903994542605848873741579860269274892230543485290404002011851174152454518190163670629321520354832659631142223664137246262669190810700238017411956767884621555145267389016098252179994797836416678320172299575179678212090824874407565399250884622634188923321172866341983984195222956972263036912654027410132515011805501632597475691092935866411716312759412142075286750476786653771891772650142298166989255559136360713331222983064764230437467304035505850383370116327368479252254215913042706777663230935456967811455110629435443206962826512801170452505588156694498171863455309654714934872772251106228622036066341999335761808843062068590394400669756928919059616613709341731452604832825463061396577476990479563231604636242721871495349829864111193999976280726600558565485087636117974082439832092836853659425399176292286794154573513348734916355699832598814440512163680940867830000681139197575180786558741500543128600088639187709854789280371685791430428021819731498154351963611976033746149158695129577535086479693151524884893281177441664999371895124969692339237792533975589042516728528108813422386458639382369818400471558022916154136553349234523486954383245743261021957784123004633444786279610388317705743115710495130342274137050922336738395369721773779962683098824021202345421177676469250759724501522641036612483355920401425655694769133381402619865988034849713856588103605283625665008864788560392627586552628630572559780493069826033799180228279380210015506576346961447626712788733318015256403914871655138283524072566521939192247143944448751255277782740332258494543449644926739498201832543809811363551841368456667150151337273443105801199720805359090517166616030915821907645733081173104606996221457302589484040966123020642648490680553267373151681837307525630392580899301492176858959775739743187658778540438132243133280690876976930975640179176320881203890252212027843895651238621102321007196364178770941797843271266924871715005976554633126841491532462331256142023592870465624143256249411485242922170873253973333569266983676912503807825683034284883179013951607403184199446206317420647208034961477562512728163220364004695349301948296690315419179847760971253113736255072289217076998186581260538229965885287455659768777707921195879861284371527418588132218062352417094805555816079782003828141553612834187786800513349645936023984877464002524449400482858153146793084636912328362982528394203320381227404978530440774910309072786610382887634478435153347129058793770746813109372911783815692930767782964422230955634819748349658054281156625992288882772427200179347608124626109808650339552484118453649082109079237309605516949150694143617347062863198215262739723502790045350231873153159454647135834744628954883052665032815313253960506839647848440251021548340941319624766432033220277602169630635363589760767639982730850818004030891931957025893625011711981020610948654415035059426537081717185309838999766815984634101391285507561115813399463485436614336923277198344668221375288719833967588751277877394453340798888760531347942023456895642579097607626788988959323675457072520420153343146411609834524366122591715554890157617003317038803573035427725598654144751221363307135761026832130631859536854050595189123687464063036263475445855618741163196587663253854486876870569660178917105070043515183602975940118335987373951682023433352953954420120152277287541299472764591091637932893286631791352169905091448656047598755985078670409605827085827298874256510510963570509392298892212817155533184707349472902102135352316209375147274687173611861869340294900847299832943167063127591108143412390030675962948361496049498352682966959712361734374218578074210559758738994779985798583642951928317810006925111604215069892419730827587999570589336159998522599031564308218366337018937715870844119255708503096156192330108988031385506881083601103703356041877168067837366558474173767261923615039481943306038040989287798918379131176788917443553792244826804353013123326822043669876699589822395308485461340819580729063116575822668646187762970943728644828984372313001356993468993106578122528116229567119176403769777028137152219973095773772695958459053713972017265201356843766572275738412111438040984146522813077634083107585097051868575177521968799093739994932550712810608267273391988065355470161556410756532779162204024011693273741324243847221486480403348366435338227153293849640764745672206747403692680169049111023397822777807105659640197793313747695926240927253800244357516283359594972319718122384877294215523595484503339578158285672937049124166680328647543939366685423913047111235985238734998634983041624231746573270080866829981155804476690897607890189619849993405690125910101587803379142260385779365913533026590499016811858247666254411364424571116351819801293162456510792778949131404828679842500115768153619865292284763144942701253643385159721688212899854780688631258325295750557655587610078529006235746322392541010235327374389945648824891383623595311937765647751631731146683686601847782863566890995806901160715523098185670458185361578294621350548898685322341206304140871261966206521112977852970701199468726070556061198454062486848009224967027954335827162009270461882818217833334146436345382755146965545264558404394853301050346794522669846227125613839740930495820797072038915350122607876425554465988659845629920468235444354433907885651376184250898714918788755272419536309910265689452930591799466150448986702090283830958868328251202967594689744106026600551461125012454976229213781476892795556574940168975322723957203549118735226641795159488970778787310461638058740465588066049444881839123034088249967996026529435453758506590718255716749899979744634182413526724339853004746287987928488237926283701597417791423945262979594554218685182893407640432173741461892198166509946660325563088094161549872292339053082641923638072337986027944934256223037245672255277669418925453953897610578772778826909439112776127988083444952280647376246989334300356061971632049338445063207133934510016911868346843282521282586935714435739099492461729877107834213013057418201464195721027851930796645272391862605214683393489880657258258089467853162326983227863918468321293012895987961005512627645132205587457511132363947551416778705569896325924305762615169980156266045130470159772701873241199492105135916388079302298779247468373365086911209652937032895731816701256987033710945657286751013239102653600036102979262179256472821632205431138699186200939257939378678248876005104889205929590212914389306661183770540225416346988309794793862170575609563979993510949091594017038384109181486446379596879164649597412021862118771154102573972942765292657747452161068362209243883237023793064640284238430812821250548317546154985308257196305971930586960163624326750177636306497310262829991285327218554811383591925966880839082517870432142929240396146114320872574208346878526072950277034349859096493564704412351273305708239083285574137925803602070765190545620622232992410345117721648561290884537740892728783982989893035567803964393693456107611690803912676535952886018322714723063560338106005804892048884978304873912923553088514173667184080294235507614621217462482243910318853292790400224366730724674525990123238175346848076638081534988752192384662993434912643954918519904564356232380641491654713574068268668073980728898766191961207766723046663537299599856058051684895314483023852111765354579721842651803582893625312723456740781877296005989609521080381915936801303723219593423854945708784174217298959140877050698461642133399531495425069235836968996135554938414594209706961816045584412882409806126813330410572088233678544807559426778246759479797381330028856701632601059556477515544599412493897116977686409095096104628680325157319796620419487483546364143517350768685339620600732720257416377007077953934927226673018996583507989880163233964255049092765357119521720080239380181184762335016316243596492614786590396529091657997947613054603807391714145269638095073463588891740892387320692620660677937093481800384780552262291982814540665669065789767282327970915406627417002883389256747089426766251798201485930952680609702467755093700817231636908008258440005139581846795809781503063332520421521129996385015920744253975388067471980978235604279240067423763872162357338761710521012876509306382689529459676539847166585873722376473514105847015185371473668027480309916218143674509561243194200413340395122402152507512300648465174398638853637864679327919893204842040842075500299376630899054534794484405336408352759816946023769758413647899365527288994512337292697790965592470080110523532415764139960416753971926858417140438561686063490943317349278400552398166307399726353137543816202739414580486443758803210464165704526258028811935717275157282769343710507611338146921738343473149367949917773795429683526108650096802264049453498574476895340256201581724309533352582890246718448918532626230493579119282272790246993905239853488317697011970466421901819114909635957142084018587128869454257137821761814685232183229738367755837380329258364261484446302297001197192263504814415564994274883959013057288334540114470233621508686784568779589956674057444317436052963329913400233434348805245243549357782685713976422369197725918696714064491015739584649445907803162894561569559415969356052074254322747049522168944794269100035288120681100702831777198397715475470123636899274239761516750626329009496376916403931163840315250059557954350723583029623131275578575872326205469848677321509783557900658127527279442333517756816233149799938395462943919664373194920214565936863931672449759211838988839757712416958671847725690352035489215098409667767188530910565286739660606590819239170180188453942901360748715254736280350520178855497482464937075529441302600095910319780262586236469307129318645780575820764778702436666051026255481094860639182551536039179001030572794291535508934669002628279518780661601830960033173862829390062428884686688761638258213102612158917605413380475920866394939907590852976319352072843022233172403726335418069767055625566444199682440796843589495458549183573358233307300138936286879297302704065584139991559516465539884888515778964459482385001094259119694531008029274796918822598315537289858242007080809469003497286047318094680003687110549734497222753997295878087053432002165939254349707082378875600078232953365711830357371588079211089801026350908701748779315322167446638341387143858745185931298942383811087449028594788749512252877398107858219324241811127452200061496201406747016233952802147753075812915246928657908736202458533437388841721532797178789628823968438942514804801134405091269376340354667353855042071307886692735984199411398929810887434454990472717033179976507634986055284500310921859961759914633514796527427600920926798421217733180759468955785991087006642758078693106402873114036154650026437409099583841736589385340882048328272638635469712955555038254932806738473976097049702300011716312688903351849621632007418084442211786239755601524400716495550395719483178082837957589134002696467710871840408017774462770999630849554459175142966200707560265269524734007735037438994579810331047007096696831477664418365964832696345362757070747983989916800122972708226039582929651179785503177155841548357155689844404476833039826656047353566502335840486184301932489807646600750068639757403415365512422984065841007000132010118801190618563571162998670398602755056801172403946251376378258192703874769251100299567199465937147181811275650260548898348149447554506566070507469200845978203417994964076302501139915213650949550590923856310653149267294246550115759429032055007940837268001689040951768457155884509236796963867911219041682563312370732580380641401462633616256605514772103023145262626409381928247670180911325442934928639432038875142292141564005318520407581180536127002769621757488619864854076543467098221438968765228834687567285495747047806708320393149552338418576966785997255867485674570468202706377429764653945970577485354914965744651280731648224436982299562396229115647619245797236706215092830808381059335016215793419405283866590460413458449991577557321681816866854646800502072810368222431210053423492544259878896973819992585414781949763312425359555117613697848249315395305610941972499560909586498065964772917533837540662631737557743875892450166380302553172106244777986684633954866228989918821584253606624169683701136018263956024574673316286658726129512849729593266026602138156664986811695662692087817256557589888697524372327528696652483622610049254543303032773326774782625671873186229015866368956328480330201027361445652427739094055730530066276559028786613106410089904334938067602991599994067141114020393034194590458793792691725854126781990408062625364490280865519894273866422409172961986391617059850193724337466339572028029757351058864085083202864634342525858025384858727281437257959578991140876630377852236321171103044169697118492288711458428298762560224952377534897029291533355895163650632047373089294031332356176250193823052026093428913731247375827651398994779012058999575792221240266040661728270544889472908332278616592709158925217749599415790375729961153061143747349699609025149782123283833512055079474016985564254565191298654752599275718141217460595531281903664867742821685936270734300469917542586666662028554315166669816855980407059192522306593921493388319924889242783658345013739049311515667815361277316906082315828743647789347670354990660816446448717817562493756265511733373320841945332648466535994723981766168773190875510300751961783082232803292974463887611005790162361092462182818109985951882523786814583503575467249699429865392926528725722997925447292023949402630815682247346629973831982593736839640046079822648848910080825447370620918704858470746277474219257869453016345465675805578133821683626405796706217974276563580510991941358572166805071447831857082818546277270273520624568960590961171871349293340073400150574442897169844874590601494502660326537176688678486335482395068066221348464904778490728446753824564014852209474184605672980904285784139104249193549736804844608335357657676761842794420062122716350262074955093538485754148897722165694831373840807893712682204537723430430255982808658801972447238928325610831138142079730124906748050140024719165785005740681237827637880304833869178650456006088119475572270573992174412664900216335345324811812427223934722085401978204876791452159698002015441255042816342352441303771383288226365571597850025731313215568648663039704607489509742016345435812551706138617555266779895278130075273967778469338153542191964120727619353251706683484670040188411965908288407508273882213788196480370896487681625369551835377043605577214197357678067676082228628285711669852992556057047825024347847181330242835600322830081586206322021612202205854293081411552344754582976193594037405705215389743746224934731550908662748596820772140084388148636866926660333116415040961852840807548215653273114190826174514998374135242983503593695232310551407629177495359178961188045720290030998379294245843441218252074420177342708256814645359376394998093612275325207390447054969869409768217877286334241273209265536452853976113706133798020696904706692413542296986449938509381247545292828569774968282282951932007835318828965523150894494024074320657952921323905565825588796170937198628319931431321158266643138200597413738269018413161850826106171091226165409717872278689494448553259698777452597927655480300585754825690424285786674550166705714648735580687191977823734760346107271124776017146595009991103224367394982309027963972882929297456102236615316032449845158905236733986180995231035620846168019271717117226569351645655447493867462673695873442304738222695756230044463864569187935062359763333120306007474734254996977379119595584931228053779640829433709547397236177541730141121455110484803069333309434308863209179140095723898805305586100368859169189772929254988274227205567093813463852475447739552373187694852816864997023899662927044166514779193695480035617741691775753867650455275022223278302593391723725627756432050549445843356377686022813323027854344804212042219304146554804816584641638237495396155912910712218256779436804588269799749768346233071947069146482331469427724755329776623375771537620494232859999690020506850201077888286166405114400677513246361216912576950911229654112180300680525383085956040530862809635358150902566105154682174660767736770569083772758662035791521687540567284506047458119516793064874051139772163173724107733865630756692951494154988677561295076184318873085053932030350929716847960175091760675077820038990649929404837348604924961688731328844888819097492052315799927000105508001059456776124541706934711268294620391965448978674337309305565476567729299789130756058281347165732130843010913197725264850145440064485274031393388925021562170797404579585789778615715126522500619976730783662111426425962988658235912007676200078358499058080488987446474049318784324641766430643817016159061614186325472688306881173109627067995676513090470923146058865710874144244542943424998287434138628499890933946161703804419585152539179533875985275320176702183934508504898213214653018052599160532191852483498033091072474726578129595463196492435200159221901505692723894795072475218028844000260502798178482767633487530980258373567933244561535609851915956960205770545303077007353135182726095955352549313077316026403911551690184831567024082409330505090802197616986033279182909634508270272942757013720617086179607428268671074926778636525042937884728031444975586561585078389821417031987581554424493175774617248646527277452455598884570818405402192936377314679045896491941906711945964086373934352165948140722594704473943283551848337766926735536571693548151490017604340148531507672819671155431414164602662370253567628057695383835394770360874963409987084848845433588642066752527617369351077137445897714263514038633612717510426708528255712906321960828992962263806097272173045589657919481496319911215197140505474781259563861290516958123979050369180027667819566080153331275244567688494865669212821104982916357821137482252100859148574461899147994384768633242620823286086618214283378329137743238605519504937337612527371598077048812147675507166373749374675528853383312873121453877116936298272069158019070150796173213934896528751228381797315237981029536194646178310591116437443507252404294960438329732747908841350503125678087061952147687938569892394665853283803357205954368282881287640105272738586903071828921345167197381319753783187015806798171438976392002035166113424792086792767503766942118746735064906860108772336387605327596273899554054246419550147363403872885849949875344624219309612711692976482060861069815939351972358170090747474988256990093642663848715835312381482289753021062165489752973230605429129959746197592641695550441390746442633432026667955219929605147233565471457331198487874667045798400918507759720383289935832445239674825597639525662304423872806444817666995444136245877631929188183801761945823890468938622506396819175459115627301920797942518567038808410978858867055907021384507771169581207701740556717646699302441241783688423215224643428980687577579353591241379093381084417113854500227233278773010125721973866352262487975391447008225059799588012473418614965908966831033897854336747447908914987590911983560101336734902363523077649797356150580733874529752611828913868651403445190991419873619289706211980278339764688407402967363034415388259609400667754024172574246184837970825772579449395036964293510409673765937836571241852903606811893228287597480829972684919788901667757470316118831692356228851811952328621287920419119920677064045104290618750616432148335704388759089372375706467919816994243687697586478690951353501136818559590017654173676128047821562788367132266977729401267046943829800414097442708978644999413671063584887850833587842272861195957614559426691051118430226227848964436232805255435509639023990504869090764394935227646885657901126501090185588253951736466987783516251900935408114350981118606209860328355341688216130181880122195469526870501546335837063142755028414343705069599782563842528135440217452682198517714148477178894372903966703324966789761920037462629243419147579235033120083002516986644739083964167947548763541995236953009484870173359767938521518585227644082821868114081805410356620801644614546647857548799455170203537542227231010643254013062154521019308625385447218239633024147174792846511607246860209216760444947383481576736590825260062432995950689597487942960269918593458170240474336231969657514378883097983450988353549269095324807606793339020745699633137297996107723465275309700045268589643813492291784070283707799782299071970753918802258791339235620772323106460591051267502678069411767312740231667158496013552561679152806830127762015541480121984531146497014473469668405705943002308592799260320355801603408998557883291560964730433615078328015489681642553259883791048122900532829880541030439361071487057376997282687698175887155856718489580854213054556823894309718238217963807389607190514767454224723567420647552939018008247428481362037941234169875133819511703307889043357811680443936138655421223742812863817822701900579248135282333548118575868431269524960390664769243244737846529502973502216840695344937788183818585322898080175467895235440638090972245471166484502823502589940597017413186077157264877514752047924632484549914205847275311470227632034879153394174321532838961011491011932950085160271956369441728853623228134709538197860804705878997984329079682051365974189381852560502035557004428641358867330959314273708478325691950076815836183594717311277895245286000405537216077127490249156511654294972503281473348370293918226742812097560983803656420417039764313078221419533343426962196304269064075910016220529910443305553691364155278323700733380019087205193425730989912399226058343909108743411806172589505181184178719440344560925582932457152065518327825489653379310458335248211825644915070208324660472521955495428748569723516240116771750236484248600906565265102966115377743395994312685929973992962414374721469471086411565365071739682651196687709501485543950816859096004075806025635575073828547466373277476146647489344705446276762427376775910850735778426668646082387412303402875148018048873742668013124117748048035233228361197112939683652098071279476622578937520598078614920414223256146995796111746431861403085445691174321325284366085400003072564096058132749220975712428334580439921164843128202711731029603641772003604917409785802258812124887218881546009912573174345773503137744231125981596677100970097913309080904601941249680029892126586236564276562007132623135196911305253999675174836095362456285049780364550100492209452307864571588875477648845063160608740142704429102708926538193476781027127093424588489218016624290113413544292914943826988733627494486496102400292556358534027743152646405157117046030137893196414720306706876226217552281429439259560344132232748286719857620437996270546418037335249528512254689765675585966900327112527678856555318416513674763318119310930940974400795430293712159378805939399580517066079553601862732347815660321805072464980147813232287111339158896610473020238717825664313410062995640129762005045349842016353330691195001774581607752137837117989691819504032176924973883155696173325463099827565219890514176766302716980772383616893538482723334020838446010176040034557249354132449575530398005728392486017798990278926681888034122974463923500960877477186948120419336319647094519478248434526793773442483053614307964873143759409311444983768171134208991778092573037899952971003541130999200531689866859367013209614776925358595629748871574345576148641108605629613497692240173401852131687688657894793397425278469637640718378550559500343012198287556821642548352462457699476775693840220070707982391536996002022360628626842463205407167273370047438531453979808317091258038207847621263931143679310778542170712349143462428538657499144564145618242568750750490781182583585704262793865433567056914014261627973954686797473890228348139789151790112977806598861828063174631602116611847681287749027695836501695705172709390773039482872305269037999759531519233328482043106421634995303428292847554129833190459517886510317107641849984395854953763678431282565182900767378208376407637515649550096440270562423943466838186081100431912246462566176168531694525478043145563551980976909333828956220579948021410421545439313184732988903762165644491087988327775504037703617097738127544075831551638327419863678705272949645313403230135933809280521482552951110954230506462414464100764413590795399433620734206418718842572542695492834838441075693033035035464300925413024122797943196657038397395446825453361308049569974970346958649748296523512376869764515627581151069448154143279526485889343572524251837014523711763968676308526023740755636607327337340155284814618714001876074721921939424653684428031221673274373226058382013302757278612168331284107329323686469950541579093804661609474036073202034214392081434404085350587723770943021050844718511683393951908997568369858092102790991704466210245913305793403298886113192190895352036988570643173286712572246007793589888921401478245491815996935390725859377685581765031725468922898624901178276010227284601002524227731775267367716901707173637703924140177890325704335826342384928608763856270047096517814337629717523033602989683748022682491473005108558117772680687732224724399972031583045135227569583349598358203913238084417216363321660399741642263781747860338763004017353284696426432408267591314055348926810857584078736620957572142131389568140075836741237748434817473108610338411954866407810797226859846983185825891442821475562012791548012011711053124045403491756248482988301212453450874029548118702440981366322290667590329166783868145415680009675470939129976555171091233559029122526048642427562554320585054523462710799060777372016445344908800634575438676025523866815214058078348807476787771963475827211108747779703932785091076150997868907083381005043191324873763388441336586445073557555108273650286332757440734018729249570683818986894714303213129584924131717740483254239797335021411137136092069990844338469408318789752391672113604703188408445483511373556429607487903590323229206088737035699504848827904979858399140438521212156490869688981909352193278681704887218348818451933875908087519006433358147349763357427091357592932378395474742460962366410499291884275940879409870571201424386714120106092933492394853254726438250816310289373719396626170990968214128668178086172808223011673491072833691821339958861196155991178412427289204577260148179039918057997232466374462638159419942608112849838903654950670148875926003011001499250184505801549222408760572022203380699022550351352390499574417120650374980802582828076780042435377152280640898875231792952410624399673565022772650228673082698945599256934283135905508409009618168342116645529691890346320009670708054027139911482832575223695703372170067233582393301938280226380184087474185711563271180076294878708920691306139871302815862757482959034105776423178083153409710103329121196137317266862258892314733672758991315618238553794012606292859278564329805184084321833604634461692086373336615098926248089523080740277027935468016498174252064858719365352911696696277377913609885532365109278099110375259051388947129078059095705854691464138236253635072627637477101361072734381561323247742897717607132060004026904808294957625099582351935836451695383855580082693624654402204997591999382182702931547876327102935822665226516607822405003049730487530548066763403968709326074866660968357414770421640483265609142732887042787332404387243867408101281195291569248539555894542506699338083569861544422700108606105457359406299524502992887542501092290313870233288457412345053591181304389556505119540456628439536053969723988493110462569057467294830349798332923301037897400198391704995044919968091951874335693054139186173749951229353682349910059702210782899001183239307741076300562616898065500770881856115306507388501437746017947380212241544139083296819608352861565756317842938913288289197413828822210370039139914933051279377270025596644687820915763744921158168549518495039624289329484022209355202106202441637689284248453832229930003228932725235740321111318700507756868160183482377135051706537450308746667926450207503367260761371925200486771177098599770961420556269278199779885365734184942735832277307132439973740037465670381306425892847708451671575562691671614759175413432476271066357566234705395302608875755469431719579622954394677653748970494664783103101289072291769931155050935763176423680986226229487030280247221648703234702939457661847944879473546683013294750635034769181209568672949750571998394991585811434405533765250565540240030460702700817164459621989306270365383637484442424240283153105982357341427045646453509056350711775528959933557224632417367475425798308771717353787139061642093787958643344106337505991901391382320884863109692935819743483906023290576177098191960814409553582618870407640421767749205743254270110052234310854177373162854525531834385914339293924650283319001253041253606328178410228804982115696743294237762867957572048742086784725737366836706958210371520684261320647514184560948618094134016875004882564164695761169344904531819341743107463155965595602894739307284874512791870596011418131175584025981260508336710301474885058624665501952373696351184531653143100298186914267937904051120344439107889331183377922802986186921520326468805679112072591550458359514153179739706717409737548762259908714886256504143749586734041213514363199524181760035030205496663615978806306001271117471840758093852709903755453581390062723036633795843551544624026691922654376867663287031593908135203992812355725870600657863081735214163524408919872673787201504646582557855286308154564290954722218479337507768332601595884991362683077907741740266783844376905476211921004479089106403606317913597922064571549101712703165219400015122311553252981794941514801410936962793393767565577608705730173716346896232800031457251842427818597743135047608477411019237297969287194692315299152127948104698172382315910192587177006167126420698422923222479495177984253226629193044355790488430808914971420718351103194206732729248861655495150533643045909568534302950771455467340533482940129615133267169679573431983997397644966641715152352031412959830659897219297282333592876754209626272664939526941367375164331373797954118417764862434363397258022091205102920332878238389449487490477038948805659572588830852719009077240741279339779338781651896600105290167829170395869616322434208785331695669899787875611678717869647465773537598379671871950883469214371561520807941183219774822162354589897815129193516729784415558412778514168331499126759360562383901433562397263988555068677464999446131334388460825131857539326339827893740451522533692796878489592865537900393423683037073443756563472722595893382179480061983053390464985450044852196076266376020247612186559171833000625761468349452063973796493808741454312370725930030617957110990215971721924305658146199177014413746327525786382391798692097456274972196981477625079459538513371438068066203852820459426382034733603589045586206924871126417598659128943887098659128643453251756541084598134560484649712198982465815362732189453594330319692558356166811700036322097221291703342624105410397312301195979163989076793535413687729214294043960860449415289726725870915737251289224581311439386551402911588174074183062008618107481951457626343648198437261383493309299110830361682802822173580468293150136929794180507390134665968123393325540132310064663200392821229937836805650534517951508182802859769844458292743121003302463126354261957038228450993514860270972099762115232174405344455679170324831381341740609357694551721103642308005377225037519790600793748434017075031963271631570462218385029009473101653321754726680961840009978212336189456540923209619831558072022383156823272081343010715456372019622251157445668037806443296815625737282232406495472877589598471126332387885626275064867095328791912021461132271475328501149592031309181590526884526255966536250974720186104876598812638847110704232628494785414093053727788596960299087278966509165009838114818094463166410829970560023513060892363522241637107246397175989029083687078618434186343589223021112536852770176425550026868222350364430202784660112924211192350140551653196957505022303203295644875734939993898558750130489907175738509155147299698633488744424789823355535034941957929762191682387325383365070946863465933411201519276561387338019212043939928269276103270885745026676557867679413876744635928797826782077362507725147666826426788164253130836073636594216187819624341053381399764480827852645702148136996122193875736653584710654981218563374173937071243546982083900425364226873332665369944664324233953453646871595582524408743867483531027692058802862879406050526421547467544767827187916930335331561895039952920558183173281159773551528987851370428391686653036882220447308127566007552078787404153016014323469810237795134142865800551634038526496991832299414230807345614649403397154798922428972109645367469649296069131733830118677728678269523550524271747841053248859201543606781013122383341166505509755700103842314057233265311518446987614844973784675450179322266973099964577000368273935273278540658885288845508128684014405871228420320543163376732686546221710664523687484267090342341199525050856666687924248188565214126940801257679491560605162099999501205281960644862366472862728394989892896365321314714087541765486936090800213161504632388058266817105552379965628476423722281606445383197434210705678829857809351443755763515666833900629171238530419335504024818252482373006562447307619344818771880004374283584356493988114880167784503422088945522345897929438090378880912914376435203641101768851093765806610846413239199737272437680732598038202932037510493456117796678651838915807790047976034182367377330189788391061947469291319874554253343501796240127932278042171101935201289671935172539602357071364061318063192570334664296027457138792595941872947354604147114900435625083144030834286047842279044459991708302608099299095239915499882453999801573275370822807060273147176561363213789550476466189192132501208913955619953760306533508955554922356476875621607663976148374234826411808858048253927285732427455371231894839817127141642190244552771105649475132909932126608957729005022782118768799115994572556803898933309502932845530472865580488628299870756731210562674667981669311575746697876524212018106454723640821185761691570351337342942856024827911362004669224849044735262040657318236166613233845985685950398307200205820271445646038385901755785394476397858584176829113623095138819353384993097311364710456170364276777540023027687385708090851368978161730433594100237910377475998315996191914408889128862986390839764419104968386298025255824973078244940849345707866180480422309571244566928028901774523896307617104064394928895081668387876673765595093037601954713453291392349727121780232049262225646038851369495118091572316667153075678926428446782588582874964355535255694929867202977957656186223649740915359872536212016435415041070137918788778442220084811786573147702095183729204075679116846016568917343684635361023407816426259329196813493013008412451507168840762090817673430948559908186785304217301477730611181699292371108395871212453360460089346295007266479982089092963264972845577048548056110485622167719454419105951222124780842616645605022538982848273470413275859888948987714566820301039573917439606232533289439576587218169596323201752134281155898204933523341328521345539412741897823994362794137916610726573654229353046140545770257250823553265250018321247219551651108401420442628747005126397072276996208933986448249295840616082669095449604356572571691825173819649090295011999164080397085503399452961026182315117615885372062982986155873736657154869500525663925755516866945630207040329069287507816242065071274500359192385141789701408606509334004919535560411677301764689159573859862357218584117086711191471314910237080654531659942696881025504816867458766652792870026743158434563454517491541599540318450646004186533408015346256627419100203171241935936873884787673030058944317254017906598668615253675767048921945376494137199381756903507046541649457625796492989434097998033318886393612359217808117736459504986941178500678249381988536151338891004050730391782434961167159826716590176709547991811770294141373430754595540796600454426246971289276135906370282499910059173372514826475724394016405288163220932093389412386765876094795078197758107266922056449196688384682320469590919904440938198434704982613640347481276131283576027490809896843444507816498828025297503384443710001647627750303989092916573590847396890423107290318604609870956288534006180630000338814297361516092657658120185583991799613422069982776056214203376380556017981709221300210804490693025128096449666012446313570545757547940555986799558638171287043692610457666824858828275429513218017165442360067893974655809402834949766277710432293728380524917868992786000904096469933521052901180597470892610249345726814454864469532855213479484456033841701540999564538597313621612046665091605057889333528763479054368514651008559959586164341055423485826501869790495300931444760785692837760318513535303359461639238965724054795440988236067915487266321045957487135837614965885280100631381632214731018890497573278824780570732898417268293846615707159761095527249191698219896704027777887149831239620710766114942335453563172980412248437127027926859395297354144758800244810361764925827519865351664135581231450068179236305086652426666820443634584638873181222061224613018668683043613659001215992923329054024298728105955996232424902375931064964534372325229318209901018754989941186800377800945361600920890715451448064136958771778079186647120474136544951265193172050361301647888492732819779849328088943327029103056732018946866997949726468762426383213048995275286834043243422331377506019937794805266199120625936080278731621841404518169553922678771527408824074421282100104524487634807132181496515281243980969747782621988229484295833597725137659225735582659230732639386633614993585075401193331856252520445235585389020961959439603472516468311888742635441857044522286676317853707513205722032633343849113224472805452956349100566911088395859207983246405352824635381615795456984275298871039871342310494762662895709959090475437666322567399500313706598921828817203072390004478355445396036700235620535834432900205122858860145885750550476671060083589581915305226399985779256584453586839762465346936123091721699592347312866137368911003042708323191528124835174881070850875225961289953116159939556661954333903779368669063334253351598101567403778133266084986661808862071530906279830598520941085073337436027772879374542337338430676686887421004086793743950635860682402417837512416367109355495605724920429188564184442604908318941469446203055591671299408033887343754293690047958985840519411334656407154945559165785152452782454985697113156635058114313796439518900036106786987957874820333711904488034005929018768498275543208375608428565086772871756149464390291154388974994258027107501166999680273114163039485914093228723428076787865634280073352982945274056489283816714955962509713627752888450433929287351891940559176449785318106959714066234874921713525097520325776366381985060873587969384870725685010949503441995306394876564189456398942439763172060379602844415391433447847278093212414907380122632044343238494462331992918516639710299021798796104437268195756056272872182983956768133394186910594410884209889410231451853239752128976823475055174634059827540754545783336407997800700472224907156064888458489167101030022413233002390987586085940561725056018735340796538843707412348169866716264086928784191660720584711072550578705275622114923638002829638535636700485953990697280391575363623186916013103360562460103775098361448799624685559489346751566329982372658410788895978660784176154636450615153319584884581790156926651584540204252702402799302048092588263796010423099112365176998075427888538275824175633701093326251970316139641803985863799434090741521129618873292093631010348739724065425325933313321281598440593700007012435950788713759406497171629979137932048344498337271191369573698020285419073175478114090463338609832684122314405366395769580659570879292826065897798120155950123906527487388129832552342683884933920947328376679821430338012109757903864073235316337855742493092516688702231334641908514726955390610241368002781996269773814688642113194184523557944094862146516868198471457633160395193845534577695325888190561919047999879662014131445522740093922034783296696081816101636440975879511920826232840262184691849276302226286191852096911402283862375351232032451681685323286678375543031548782786102030052246791313248222392926545987264524137891726007836793102961814650955820671024727436176324365082125331417499903275704064692094258791445695732629538976062608970230789087966902590802604843673665806675307687368952495240386082381694322067194243127530886505551886306710694679367834832845072291080417102525311839704382341516568534341656706121961704720933797787437483992849695280167962304701732842976959685398945480792937693507768810536801213791039781013798285962167460003852570331495031895863546810635008242705317556142395078198934343161762405379086529570863917957806961812594646912687135860730378455010783937621720903714977058480451804260886977322236316375527439637694596077748676108648447446622221895080631667291360473139376672634894721885271904279456881457374838263274709813342394655725368993578317927634544989320344139034502881770726100607131445593451112151230161558514146632956410640811609906806547305174007261507346439456307724787301517369250434687244984625096361363418995601786049063641443626851251366196734056443559516692517614097479697528397723982960209881001843969468692751273613901699525353924171467267043231651989075907842232718791012847741057646869745203172404676139905247824927785220730285723169222147689173755366918692664876641144409482377294080226879128451743688457046792124768582750895908727604500761005514729519902882084553806056938211534670764270254901428469505650724912624085745404786268478953778443372548756831928832739288854555081624372679719236151361187927207495356003601813998031522105381463479907594204257055686822119793357546759870736038993393447402079231054755978825840241581847859041091948015841307867648045226281290328400670633572204855760778202596778087265211905267145345340183507833162318587257749086625580920173748724924363173455110317194173771595435149470247022906496399290186129735864235667614921970430533007592274866163427836586800592395288431696844146162540561607841535965455777565866613874827863752778249375900409792186548134276189341078045842323765255025717872538945998578702369118135402823536285120308457001330468086132693240477635856120412906582176637382102000060793629667904735389308517440784021796366494599615005836754234136585992288816306903650869113729882252339659112316429136526692766748884405485577544056451100141484152500213962230349000215133935035247581877341254870533395461412662389243748699176396482248159963102607211018151517915301174183506448773953659030648990505355570911984028795627114980957503423589572527014676553861149602525779836801022175991427867474578902660440302575659358955576714264747006022248071664428559628715988531508074150770405581467754098735210517091518259500290287119739824705109787968118880993048620241141708525749461412180736118196665906501869571717127180578486076235590648667308917831066035066934010725590489408151687271878265588892290957239993039350275613912843856822912800569555824875734042676198310646508201911791002324746303069881070174907385228633455035247045004348681951985273575296805840320199995770016514078682909802198159519849229025017350637763841200600590770596746907008927326935227712153300027884652413827670073360627140532658295454166805427146947892911104325154991941927736848554654263787795125346043014652176111662498594288014220988704929651328557106361227825191733280569568193552411271557388486652666947051770553003547625395810424389221359251330542324720960050301913556397069918376215881142456180632896735858433175432565147388285040737089673139670391835200560036528984102012604572045647907091359889657604861066587398602882681362837450426115576093820524058657376934836940237850218899979845821286314653676919808306685086221111184272539967390520061859938081271533789820643994009475924316412499077883312932677774210829428663963031454950582821073305194215913719129882666005399682165729244534823507803675363265941783412827518750326098186272356872217433725316711525730198927245477210505740909680184897710264094746479012636606059347521425561118493726524754804690326714152649863814664386853878929038966910199972593178994733833834120565074482476446850748768275124668402979650065809671932884384991205205962399243387399886016020994571681601130652084609924940979231884019778113970379774136345297141872110107905072260232568106452077987991301991856959144295777304785788822595110446622816528173615802226098903548115397892805264797299730799626931079302435031319594943382531943384018066750693248442500007418023033960220116847476385589592323286634985365687967690776101779307244710336346046025219854962326116242669068894922255846053253822392341941267427853744932920317123273835388541912360997327656035011772627485235237349367483943191511423029011522282600425088469777790282339258804347020657899151824033183847974994272539816726103437448193731048538038384027623697308549051674388864147513100652029129599323342995782763521365066640989418333975317296378454238781285390067451464128185853035785306725775815529304870138271195632271167200175243803476063732465210261942010322583357168359464981811310574465120805979549877305922165119839286630856442753032703037562041062356294999384697095528150150793747759557361838830612288251245766846465463658198184758432473513568951108583251897580151545159045570841744990007465775401306978992056945104828802339524350174373050733731029858789072309429544154231605847366908725588543078423069767803487876753051285546372275264232629973656786712895323043589383299113575772146552822208622363815741799507819502444121350624018886441505011945477849674876273138604528546504739297099707988687809884334123571262434556962765378676898971340059715523646324602668599091613826479313191791668473500163036521555719272346513048222448835100542822248819247568336219354361429608308954670323428022646900784999515747177945981312775277538091108434096445602424186162919052270300091406702282865248269897069989268548289936686278019262105391601542388255353100665094986234026890489664813354058809288430614953780973345564574983214372623489363433463497454267835431180084494944046043669179335282292256004672128220835581168332761123086102321688944775789042156502841986575995683144670698204933786389521642209984214312366726305266972895654848519914522218689549664817780197706982182994482077305266340646028232014391427896964937367910855710291892625078854659447320722691486940545404431438032157359287289159032191209923073392619358193513175400005297195105529189388878219293620000127345294000197626005971090315289186830498109342804401268320670140068921914970331648793573204042984640629272139303272443948200409593393809583684377293793669933632460655383902187159559951907491223921104513957701307993317845192551138423620671287819446657219969089872164706836556765119780968568630651044876335270068015732331322128352808967421987796110145295400100983601227868529400276719147562171370563061983837755594707054770992609163317824574042814127130756325045742428830442577186313919196989063971917704883353812081161994935504722940561217701663551682771842787973991611806488393578697352852333855627558917934576148624784580115036869757787524240994935408017199390962390625345444522135666162320068115084122091663922465853092908353722425020648284219198646045943526618288754076012607029151793598148291763102919136478143593039362120278733143124879423701084719411590949575196066974821663597947603064128604079935998191401525592540505748841194549547225045289325528828763512543115671341315617633616096410642343991908360646012846263284527044163275520946831509437084921013588259338378047409646250617925213188753512372917338697638698496418899664822470446658693972664990459631255769679264640870760878871119023231862810645784898296049976823693475195258206029956919506420389397044354820208497888894553798999489144458215191796205595903624465486576246895408225063515497948183122008153972261831864002016027562964223630377207167814712128667961562353095056205224025952368277345785070338149907552843027660049960183288798915235851176320613787746336672154930061053230626340830445681832875874397683397042769310508616782211500626655700554059280536891509113958014213944495472641009935383384827513369561400039557673496028255543190293302710339254379280835758503901394067638057816050406443695176281097068473295592921220449486220186519093498546249179833074977727189660275242449227084624048222924339373523803966197453737607067656805996481195917251122346758162599561286555129509283516552150798991230469157939723486742890533714858134165399820685727932121202088789859200088375760846389140165099321738710129063962983420404224940912216472735996861094499067088410748644206178683657048185138138415803074956644343787160085293305778186421492034050234380098825145853036055488226488546106458389428723978039777855606344423626524791915185301441458631432712051926753954989280851511991865553316858451398825158611353196443032791469042658384231500001087322793494265751732235917466451146143482498464170552125153720062191093245180120956630190732580786573884770099119218434699724133754213132898972675938616196962041826159429808263491785528002726780901572499075646538793962081892409859342301315520781163890711024779754812581931330369308556719241043812581116365391332082056899205190381058100089204618743858984028875659642560667133307072583959519397814019931162261262967214612856959294508931624177931109539684355834564292326511070732858047945939705203407473197008841341610821191954017436922235144380987031237563359087309567307737083139902967173788235237638857526172341043705027682733728743569941434512948752928551318488262722495688379421897026815487597741712533352326769815155489819415666101266105312684017002683684583920758877186454437665909677664008261679856443902290618361418939322611522722233191611838771085749740252274606215812658379612182915682842187836556031253344446989402304430630250169636479122592317573540922350083710103767571501337053673400681444876202806678902806269218099236969612280258124716047404460265530573600459774413579718625750944638994488853415686045805595762556880092506533375444496924033947000888721779634531136437461555795089496365938225974358923934895289137138090570282874799589226687107500183665628881192519358166928282114086168184516824938361431230448898409736408017044524285384262311077757350067103217373134815664867112859847741081381502786063075525927627034586429165857028248427374784084159865189795484851672202098297389916669995121277426121141540278813282643856753821937349999670615061298338859967874540622361522654479698575660977835767328667616158350497933911162255489734634746846751892178813328413269287995386660771209693886868466762185622218842688544399939596140906582867163233798840779150888359851055720895662517731493784668416304300351467115719181624854475030626974377313113505653871598652169519554235894497316329094086016599978661952197008035982301588950148384309496748787318055799205515359900993948283623790587963130272231185581005558481719115371767646560034904013448178608797226336374826647382497568773276568584984993958853376623155874381302793032305867571536979308931648580610397615646911919464821306559529051622306086507599273197678420115391881830390264294444890541118855999031760897796959242742365667978407979029015495943842753936300151314318943800267855324079320566260297273342179499702238207353480763834363020544177044226942059594698316061692577278459254734882800898413217367184043620256156559669960433311864435707820379069539746971154751327735384782375933768150029092031145420165770157107879875626842200260105677760053337281196486608949997411321500128508634774194107537139879492575414183530961305648871538267713161454960751152473664718143544262325303944786171090266200127689659753572799663119667049631116276584749414416019727075454916828784102631232899168697133013337173019239375559366249933764747037190491503186313900119535181192143821337275933482522875139484183086658780304818641854755913071589884724534123123210816847563573313099171762839974328007277792778228318188325895180259199129982621276544657416070754832194856492004246003712003652560601705423729102817684944170131760286420375732039789658829938314569889337410223894376498067844202664658874877129721534854643949103423010148706920275174268074595474292691450830075142902527411156569364986978115727655793145805434771409847672943187898336453175154693492363226939965776238546934100252350882425648147320451395720723641313505640932616476742794943242090076313150931267384595058170592251300191366184404302533902825554619051403963006943137289661568693400255443705000704528273648553229939820830735828221890066618202044579607794908041432109177103331345717843670361935269819257438527562890168922610386407391298675598331309413455574074730977120017215686186150860479747888881352539084935954026388490819790146785979767508467216233548417180604621551569686320289674649796607675326307519720011131983175155294045478803599056318182955598460576288814898150472228333924862657466189993733719898524175580787498896872686108380290138273280846310393714365243421762326929179856794004493336093063071823341299386945438854328151384049438484325555795083525574093248763832504028929429857590021654618628263736059945710986597132595309060143169606423652123876363799881723291679167275864154671600502699405126997956110006393056840494522771159258154319961898881944605052032059599243580837939149812441365358225061394718663369781529479690467395225316690407422791035076557539635906787861375973205820107852008528091974618119821387595563014817951997169283985642928124405400486652864515458557507543993541622374251340918904630560938087200617084011605271215805370303154183804992151002196001634328079319849508872502716289062898466966861546966013255718901075572017332230097390299117991166392883818619151665516186440236480661858327788600926406564233707992318230491053806305996971973908292632434798404527310109884400966272934437648311823055903351444050838361539420707958984082653531887655156246018015375866578400041803836800304630101259141367787297807167458702840779863219762757797710241093104034099931274719252294731535594067988559176000786805939462578932334421712329762648026811650054946729865237689449021561041205881918578139701368385025741343804151720053083751010995823624780888898425453194352100373864154883127808966142627917941291628131868359078145352764131984683129812971934285057756120945031530490551328158845962869720047090094996490085509098038599804640860749748789059950173219985681108530627669118974514188347429115267917918769750086810142021273060111496876849639303956035915680552178655702283919238240002156826242435696745994876326015796467282091192733404219354581430502762336678647479678104723316308054183445310986141720682294815713935359011024260235149126383253422923108140294273515328572139166972448684417419124812354225557529489005570108759617003758641650438788922868082440198660874906842294406846355157343986641990870251848879795044391344694783223046207148054602685491545227223808729643608850848224690274312157448586460203658101994508398309581041821376593560899916550763563837980966716559558412310693671539591764420955426558474754157860852790450709381940210985693729479486719497469130468307448788476133458514905554918520299817048493393728676792017317599538024245522062914846302838905953291498714625707402322122353461672213097863372842836537924008825156395033698166000501431054638160794046850212513957779883462841456148379532117409141896271508132110874182097765978978592016023549461286923413619261477203138052171978676024316425146804295743472423638852785057179594766023610310758231247858851346446259238274001744644907037220960195396414409482922463782982949784354946294326367940254140924860278367480414250787839024468536887977399565773777019097566809666738863588781004844562258606435163460824065274791187961824676302278875564313546744585419810135111447923492513384440160099508098818724862749428967520823067160200773559596033609674692643349040698225071409995911385095069421705734374656007771257433079684829556682713557874686630890423682567038612654762648410184352862957083924777361045018111552178735554535732349656267023355956268076557681533554235530373844436291889979375863094492050469153336761768806050724529174107118612599821523888606657630312894957820902713685129554751668778242480462826825910004997291165245839394937063453631365234372465760695608259967363870353891658401549432363598123210765654645309034007627824572125147428170331037082774969723335746653225618172427365415158995736719182380618878621587713598637241257481765885387510568914382687142331926014071404351910614451849638464441200825571298870999759680369566919466807281528799056334788683410410798025020779878858299611383724509200435157759144370914058744672630918297281420983845506622679796858062809705192701391561228442817754824692440764025094851260011648156111192337105787874794870416275554109575191355785047196484983988058151400699844163685457776121686024161834544702240386318156995122519808974020000054845602447807041245620463528753253310173478421501473876600921519272415306256170303378274140886187748421833449625561074534085361454749050252760000119345591741875223669884760992626275125671952916061626317714526112212910163204687834710442359181275070065152628220293264358412589900270760615955230458224459856038418723082603922348292902039200641929404089585355737470974164879515205092734975591145393789470935579605366232963326594568548347715700471087126904231351566344757755623209623137062181399464005626925452724781734421871472834087970277074236959740485063943311586383807798492805215885107570796053028018775425327731619503286734261391451095582588986330942655159114639114754599798034315357309470068075380687955796349937430277656896938750901081767960525631127898491985040678657848192746096538819760419309425421093861809431574222142628085790245058489082999276107554182203189162135736524137953483150369670016364104384780573701211162114481390144599855819128144758735572056717879828959476265635605268592597036345747780300800148185212601656969064846023847989796133289038684064974428021768362434161860283403554972817367670758678704597199007018039803670673341816428097368078375131999756463214765793755311573492143224124230765181571280801308466117970508534507918580494622543022488620946957273515455884261696748419832529291869960514889763369521040393254919070500051765041759149578275708614517683454146881886245844999143175506362492819949013230309800616585643088387893601916177107036353728456146448006277612896471392485824517445822132635636980413970751115664976787374458048859926453336125557477736016841341551291469575992686856487928195489054251613089365476185486885795810432951887735115759932460014348986179279201835215625346107093528089007925836257364829881392161627348515727096268727440198747189830663162909624325480281280820060436771752519559639347083222303490588815096387567176877648973265953405725774882952197064382376330489102508310493704522455563101672789204753697621226317618914612989923311160454768216018621239217250389293840858704650856212424253183508300532708209021954898039235829224180880633477523527244498376473093610115750253130360654987880915477100045157267950703286423678481274680553633020918071706595029609620459638861121473750917837723978701085953135018475242603116266963120186667199008287913640590666654465143271605957744969019728314725204224668335194308911467135840636728828914877699570871333003294091186957518764496595417403412106429711895350764926984913081115342837740716659882616751885077926676365735271001212245712815008582447341924717220286251242204346379752397905901323733918363702259537264049469225248639907607278131343380490040800956711458079268160097161589673455945576628300108807579970522394665141761081159956539557611900638972990521158179293541985532721633440614635961294230381950147874090189554260297646940452040795931188298875201092857886100577174676458928562842677109149438677666200319916032528645087291026591744638524705722380268979216646743590833515750171305324264269255061807292925827145276120172916680868332216844459479578616929440790312799987947670976340237647334961082694758859650974888188555266326475924990664622620998145171007800870997641916565368014836985755570482344181970313651640777594647274359767331532505375810135249742337572771547127966516025848691454764461186740140547188912017946453293473799206590017800704062855493718767204356919020461232967169902171335116863061144599540708428425312368709621501129172361691598173577719096238966685535516886217574167054079313524584812880249655454760955876790649628632062526072184587108645914343675791408159493020296014382819285759665662637234800065377865196409860654866189902100808087748734713650221504882136598192808763201689873765574188747155143034355867766292951953798001887593210347357265521467785284301728414110719156480322617689156844682085860815775706456643094733843314763473798304328911927373849429258930897287211692807506035322459514357590724825365377156317331781326222109550866982665774680224177202195526986982157001641133212905071367522255844812110379052337083177220410222237791196389836999114270944443215566967338173970282285703918691832320276844701773833317782470465424224841493537565289095881013925038276852262908998596789640357104994062114266115671756082415201828099740974359717700127648361417277935505819719181222272026653650663609199737230490552204913003089980330016963382270769147323446238444830337598059474189916755100009110610053920611253816754373605670706745701027091480405747572626356889448891529247666639469949885068760896082487445089451937909152995768042533802532055613989652603817657900467453800610940465411498171255393972358955834349882133843559296441472412797711083938966938041659623064195086293915344055348761830313367876728676759419842946425538378905103426768322207276728367276897254678505306365572280801467330877014414961235371643030607308606383258290857107132848539369205998420140399701237557906596078121555026504672336980102460357839708416705682330668355489380154708472755753419362129234277928687006669411996705279181761807303002139387042167452873312004008748918030948552163864354674664190418802245725379377743895329975724884417554109089267040190344393026064246736682656560616186290804718157829484439416019356670471512752655377282907025403495135292816404940086838750399951722058264872742802583795512438938724683262386479713470706928127960838502285238905467604735171537320267657620252727169351109582596972459298628944253898886757344503524242230345470258409104721498070309261601297531341012568778721615182328370686116067228062870602702100960669793521134435561207013915140262606593774631314553761468812422069469689110383512655657057611683469367629703321396123708965777334518044618248275891826431722782490168118130886546446915382509104802890601483497877772536695671826088485578501671199081188912056609592907022913195429505906805768285312238812707664580276254876702728516808158660513501605843841592536478980218778838521364486114746103268249778761875812192748395376027536134973675194410064880744313077409268979769187650677793536796043625502157853529640048196072575586442170981079477598105415841931711755194303670413507134266167883868456124852231974481524898080013794329703018427578657906771552534113630051370614269855086454800531230182019178950863634555531273717508598456862986281383380552086590724650625090221714580678809415562432257474867025394057240644511376326293248429041964618612544421402275005592439544119802166055119173602351547510701749090102598320091043386578966394217329023437821001282242355255779060960566757556529407253461226464884734755291600674665450637651440368283908409067961867112639599813430461491313356150047354275955289389604131664711859212653859720946101109585781396577087071668526135739049385890490888446345565913971833969861415432128626221661033046033819259127282716758873749000991835204145310371694891785268755518119806272239227196969621200236292946478970124124750724815226214334226460079077969776117670603208074517913378301802696819507987366557511254376413229216314073781880310954996283821043883537527461738528003281516045616096385371131569591142830107752876100591577558781618312323067206331492623506075544486544811638105131779652590086521935663681182023518395257205314148774504216035733927397069903401769395172141715579987012972342102209683969395500849322443177576330394436915831732349023431765562561510639404667310622069933096546841329030461759216527757789431462385639066113221230600039812484615571849709959530672628789473840536160043695286992904385531277909617462656058000863191172933053215037247798263832335966517852450397183712157759212118776367041410746591664627915240251057845230909558824932394297669755679084029272298498161416267587789510013490538831714507488547755296014024655559356787107372385113377781839512513322285778211536146285949724484079201216991884610169405698303953989027934863366086680332632656037168414564732349863724766397353945927097030197508361743229102743663607080055357456462188430807615900954359651534629273127322098301874391978636327237593550140026016425673597827346689887301551448743450732930236310153541711232032916672941645625695279144048082032040170951600512924569630683286127061648477463393507088611989283252192104996470458234100784924746634815744620356157218883127776986111614446422371395738144361846315392192330828715394341188463583738522568990026918988195299785280291367638707572575645592394785819299388032419748482141857508196058534058480043718091913857864991657451605202442979950085180128110597634660265884290824844390617932530143119289295819331114409882518614188144032072228465665314282327434629554423277619027367581137417029673576473831696666258917742298748685824932223202479175937116825323144709300839483321186650741092886225145728758956715695633528390527496819782314604204133055988237073773354790661358753769210294887271621885242196612100141432238747682708399122293985453985261343878480215880314424094863231970381927360120707719649604235362726650060888016866270050595240857804830911334202131153026236318430831440516573148902069837108919290072961750385898533937464395392521518855285814776114184993968704476375693617367931637400327092483725130065626258006229731683787490618461918623939056911628929223646565458886916105657884763623846960355649350686841416190329967759693283042463012421364763511668606195679501517234061252765225603030722210763349133912824446373305834743787523236303593861390731960277646235846790598617609590122807500707597218514527596169475013593783595848207294934768343891895064121769860054918878533555955210885242405578448017375478912966520792793986836945760239296394526918914334342464538686099120925007018544655432293617039839759509442440459440432479775039092248408323614536859489303462767735391781667500946809270828244247193043372791298516529487681216059894650712420666789121562989847706786155809235583625872003708350063680474768765302995919401627893341110017573085834956260595458518566176064648075807966587051292193205260335183589761898030598770025698247069066070302066789478416693810334244077197360248936324057542624185672561772524421823317557850594696176690876038065881222674522118287093428843379479064893311765601128872953383926143219882995123177407349550851785311587971791099581926763413795944271042524308875661774236845636276709151037008628596536657211518299812024934965411237869455258948187388994708030491053222327936137635993082912200501405555198622459883919620201029496561900275744439914320382268963288103662565272697649873026848849999589446526182789429499307534577220679658226846067583817154151334578764641371788911781538827101114279105216428163318563101867224499333901819176367436462667258329297578342459484419559011324151532863354127950272597178906235750342656281802830933915939141086541888892997507821586319867998090661288936061959968725234712850266638379963388484031222070191065492865742991655628271658143028897875729652466624930874182427182406979556106792441425669868570168003712183096482908940937495540662787626318367296778171301636742791944918746038747170925439502017824521012314481530323143319296353847046742697830731034979078775352300630174578152306817026655471846760863556412714043975454379432035381232237729754278709970829946464827175562673384832439212593644274876488777463143785315486620661927329652037448604610404078901459748003049367039319424771757855883857186233288063853306236959585026806115122796249016351176494023191224607825846386700850193220036071212149100155700015891501663241405799330409992128999060004125224293301591263819474571845192834491181144425944592166682136698915697334130942099491687170113246164262352528890912189119760906692508460830947010961407574309432959969767031500410772761364854779855005576284409973456360848889311768658859829498796606898985716669791622763804691685829235009950008833078973534313622934881483548426336209414877608218126351420643055252807107730548159324862113030013760742700217103897981902209158102474925380899377920673551985380899723940344542963969946256958757068928117421680137070821773729486719144355551170252264601991677602541335374085916035482782703263965753633622232742916164010661054610836029649096575150009862544186083295055656711980462211980436327533485142170708343783667099092682613557853361444641930909167652003891591803996191576495408959572525613493996078022601849972625481053015408322650057604613206539198219936453893136089437246075270986665545657606701587117786135318234417523785054214016939181752099471981785521094265818013753071289833390776382595420583183516758726597931968923126426762260468551863953031760821674174493168603516491817684585333848132754550495414229817614997641941616074674185415689032575692969727991699897184576408824777609825685324609946730283670495301537008526460171727404660873488804676172718650240031372782721686175982014540336155746358399153216991539392886622455216871532353370249887783914550972901737992633287557935527437114500436233149261943887342059460752729219582996495662441749435724816638102697432000082233534596407015503199098002569408379659755694000271627972819696632086929554741430319001024746699304546215004858714770574936841810679702359738936975970173088755917931322343832651650087533982676564526403294674532725103430352557459067810836992344472421687547810630373749145513863046273621656631047010720765791938413080203864409475179858627171695296422611273056696866176125089561732459313236262038175767995844308513889035137061967805591482816869316445391852262268106379667080445374311866673390157039018596017475613474046060007023333862115839328518377569958056748489663474855241529078826441224101095266280229606879516383905866629783437346296161186148241555372768426644315585661889646933559590984890967848074788138458722307918865097822325406167868796536558548772472708816957455265419618161779332871152295147638287828687353268940007763985054848739907220600848253924704204482134076623181397363378069914757968978551555820208838233197199294511567388487714785756832620016696310524892480193243701875824089638838070834983021987300484997460315191078145274863926459655520570293866890819190303345878963595414477647459438594089467596720989944088962748657410190234479370092904729289608742861004558571592164376046758004962141003078172461351593316668148024604926104247203102595670538501802930381706071489900520488794827733888673866758538235317263098398914409613756108453534001718712017360238801881599024346290881418301016143355646722475494199726267028280607645942945626352268471233180048705722342208513105130585658704938080669401165376238183593263497891765490797696991910594796330822216576568226755132312724426165275462015874283097363560491860984549455285260055553464471369269722234538188756471641728452271565705745451665063912487792310333847287940520040828220438605118502329195987367501243356349531540496107914922595967295048019417395163160878159009069170891293077812376744198689061595698688956903085602986595031156454018243188006208584277726805811382031753284775092516287206747109789908707278976819667934674083024648328569589187370372115353797134060273321768237279479936827240370490902976260247378741477393752089534299229970553910100177969169350381049959175834273849272523942540896478106189018700477673886341853297059725998148569770340454512821363001025484170884282791868880744957119543540972950064759820312822771314685932755256993023553441446104585605811079582197159671537955502452128530299773593495684966370410302342263259651339197308233990817027437902518076588455612802209039728265023580980652176199158666692711766352672871150808455725506489456390233086370085379864052466954320573241903563557300426056484105803418236727522813933062591554202152284973605283644593047385557570840537543190854590705992508621912540413729618879683493744240301962587632044248063957565756981777632323216676278274362539893828066284433712449818682974009011569993316973313906848750077240648044411743617701491216125384966691224459942835176833619768044789271211999384801331945942555945593297810228616811634253582188066897155672718245897110558676072371231004672874043835252666786440883758214308894102383069805873425825270885324235373438992706137164980206370078893552460413931623066390609037759062465638735970827366428020156515507425162808480278540948990381585977202856098314512233474867348484888763294938597769828005702736296793292417451833233676046372995789814569482070273092546568076084845894412493542178401096838088622678151340502639388173400750772057281938470994894723045425591517276087623572677840154918049359129609173542971533847917304765442594835743961425571901790101022106047438016219442141095381452250738522346099026518438849890276754471727689923461647993750378367182052042208945822474286924814134720226594139062589287375811235006092418739013831130407786592153648452584841023494748668007645301451148335325471908805536560069905485327590844764900533580929694258266018775611310653978199623728291572070767125950254541171155233608735818401268448687414175045841187306707212358956964399220571958501762262513420866398024879615175863085569840500206398197908357817985082817036795093373688030415606883129833442765059051327968910464398393293607189125907016491109758452919479665785238479319108875952590678298156138511618943647841735349299962625039916846652458336357542899856585519305888320847125307683550421217499481762083298273529757580498472924862614771345878690289855388462799044161980437655929340021172336919156180549112781976427268867716371672706416860256408910005420914789084100996411686088370037302278674156604034649782808011611304789429227752025770477603077492679180377720952199415405419439336563451409448834390521269121060918695792043096611391473110813073336540735883858378263995414479279756129283340361478597947306376491265485983875122371296470609896778233681706897094190783853199656224150747233682726873500981891580470590574615002989486390563650321600106567542328509578380567713689587515783065642083097530279384505568553353295013086097204668096372849038035588405080081947889382831942809064343895894377433591003960729366577141486849151670401304354426772281850636731679230206997198697212861589237679963247312585821891282819780852521692508984116778044938257506173436913229291157852910187172973390716233757702698480133202086064509622893008112463129544628530679783632432400368068761312795937553954074279424117199079061196318738155408772044138359670457223785976077642635578466962404098859876598013047652047908100504162991881572657508104518201803567846642318515603973300357368865926059656632983879801626705732307638656304089423400830871182550606553670742837849205457584519828880044001381509203770794169153415231153369296308921901850881337069467491468409274325725747273792894127750762857028398730243206111398513063449446297333599923563808026791072735720587652915000684727258618042602614171640531602506729349120386696984833201115739165129220651336878519990895635142471905919345046507166073901412913367882696765414517997670427326375829152542479569187579840030519962149571004539885619583347943593863539699083192360427303868190330442688595750199714096621922929078566156357478559446597113807163930593414925667626994523856773933188202996041159747967363238088401821696632383903662474553846062596896512072120864878481393781840838918655996435083350023754534140049414538478633608445898578005327267605545667691240728758632512257284370481107680159509641645446571926599869707361696064347229994908559574606020074041148449292719440280982797253121003621608196808235344508098905633476869759577994372656969651722997114122936205064936934230436872275132857869653524411818667752015574154361982101093474059617927465901407782605796682778990947352664699570527221516115318813301617817368828351349992469078831160344866150591438024880232554305606240225136053306060193437844549417353091378194382469967528466097350828912206023265558569062515316970730489201667563080399636645782890011986996863811471546753539938751275257347055365188794322426187458394171162632679187301874802568620627668796444496829263619757994563887625873335088885919626782323358339226617110172824437006759652086449568385841254195396873512218065494292088825728013370783165804304099105409828458300069725228853641358725422239254500464705937942863819323161874315803505571309767849830264818379786588154058948241490959150356224621925554341986616787473164170376327471835746253138125213104413124540231728176408476891183290459408184337408236580121548645520153186700680727127964550144347862721843711053269268363867287593303738508942327335582868586321200246295134461190505611695288325551157233602543934009335708580168933459291201233615265927921943537566151768466826910138166628547043042349751906785112250696477091929847375472849950878258505765820242037608714228521452369505874000263196998905120392848410095380575265664552609883260852439818556261557819957381404988817834432390266297314022712722261110032576489689752614348326945969115461315400355488950605174697253743242455710625041272141870949302953519733089567716063915458393294705684419501107306822682227589028958732023147255418690047155718598795507221762454204146002758010770636349809413162890768043994505267717927067087599228788903110912908600738759731040700385789118439142534774706112765889872810429280968103090564038193141272406912599100296483917187048271894878360482130576405045522801065194841088629256342814877464574431209389706133797754776803187408863746010015926670704281960177200797757641887831506911324249073042273519779952595886981923492168230638212317648142359898035402435003478835560258136443741530767715631732098953124689767956381018425086036372625826597395839050501353536686324798579568494809529329039770720064812685867888547406331837360638813941128890271829981584333538391612091758795170282748258202809806676824617049807429916888785259424336589728291053021345816521713114112393793124713781282061570079715913407069407828378140263621954745330416561225690597338297041988092773594360686473174958539130733696235575752359729873029588256033704492255080139326820446507773409313192288364796223450401708863661138186547528698040916665682900567713369260186496869665666013089351108415366401484620365349196395205308630308802029078377183126275466220875879955634112615860323524684569362281020207651294784619000312596255362305761596182047844748683632586325278507558034526375269193991067115171874751552452817229031709429661482415792005288153854244603491796611773495564470544001975885730884653038036880849975554247931330206081343839131079195867173746994217035320765647088268929131591503705598815644560151122851868827495210320657310748728956910083143422695820003810648434553946990106531531631009330603017489148957302072723804671580295761287020073409120460614019130945536471428940877303319494133554684704892123017580968002853239735777886267759574399854152143013084309227361022319043953650045559306133801816779878299777643319076921712183703567796622614011711910226238896925244541158970792350704718773439049439693300334873498303360847975818327073149104695549122270318168690701575463146434230359308083549555541201319179470925763514365248226277544536251208839755495402682252417036862793618515065412715664291239811241292771191665804249415300425191589723339850701213829427554873685395924783087516854134235212651096141146182166621853376048102884552431532468308484566850856730713326331939516715768314784199539208453087336905489952593125400027417333186628741710609969283509040487662112335742728001136142902137350135612081836653253266610921209463497608271347969387110509693827125472815377891461218692014325111494484069599319227825563354777006259368345227951360992623671315593437077059068478074898191249982355316400264656959947200935434596973861502629682785592052502401765415919539593485985447014315428212732166233760593676730155167134079892480930460793401319143971652371730518159468593305279184491429260641897547112835590670400117243561022530630238217638332553762413089243896979319843129863419824930507993230824575324010990931660604537022162328347617833898281129930158866346080706444985296435721831731928300619519395394887163930854045707931206109847362069797451050888982399346886582475853880612066921274893166018112355649253610730540614925444843200224948833735160522009756143112744498266941721686865016228125309688475240082467486717158583815674443113036154147597334909601691569844230736326035121377920059278012850750566918796998040989565068249256001476286049549564734420090471204658749879017041530052165089858082662541474540915675849889177220495623350209634491664357611384362040664972601714741393513315402375623170964596875915853440260619058534713337272891636758772974513711676422216081884089202864462918505411160936776351430913522670392015538776405307603078325600178962324814410070382840027798118261448768099710605801874097080322229111246529169466360991494816961714208546152287337468194042038514484626734448992329868557520029086076629330994084116763489370309026856850452340311974435572077591272550444024781454210269677709656732160664503108354259917693451220348297194737875936606588776645318651713245134589961078695616867459460525313629621568005747105459485655179775946712624482248592665726158264100019422855706480308574772048483960292062067929838612579174635178308906414169511265409813114275483289035141096021165997119284044575045183640782451809999762964319951526894494874270290188391139416935404975422499375935076928754396051676061188994647893928652606575544702217596438806774153732029288209651498270825292390886246895894332717112843495653471768833205548593132479965906272984341100561417226188861959842433323685996994988783038668730461598080972711913220833738337727986970439195874616726051308346057290413547777187765038768014934647487696588704927563818763391840612253831789664182661513962130413045106159819960571381311000025117869613462657270742949530457569341553700526845903917943163331961146345464394513402109048292669444441257795565756382153904575350575912099497524397438199731652401151933098068499401061033720768770382180701439029106779027165444246152640761390618259324437055596319706033468920608502036909961506436290157847087023516608048391791042846503426858741178848025196019660788442127423768536197622384251808539617916462446262795345776090934054304897904992276044735935038086499043289882594222753173209157908012800066364498253794663868792212782651152183549457327994311009938884906011277168204076288427313597773041671426288358439187765111373187552582568167420949857889910392460611422442108176494792911667844016451614076767496449053439506386438387403829398256170086448529157819355385748915463929937871901335802416811058016517101896597462453567742905527242277704953304910861189757673489162538925920943161946803451167867668590314825281465771653439642684786387353712499231968076534709752648312832004916868383116183215175709050312867169554291942142954421201161750419934068349134539232632697963255458655475027007304491454541958767241735736554063505234847052227321306553392180020953669642442380954659987101600748459249018842081631010077409892970895019847892870904477567325049638617294547305502832724693049067584758569070106554724032162589752229357928541622415877412722193459096112656086369925292033298602245551995263917336075094414785986167880762584940845990830061627247854687301718213639510330352613663461808432622160893849161469393629950188201163889151439744855129704655087196665971293020707043978422378255208887827224374098250319213820527832063158063041597130424557781058751782329489122246025066450375779108723956881483575254454888323491368303725382894085053940599000281435779824111338202498753050691197775287908652732658120426206774527597024833192610292305675443718690598129367061166225879695462583397318824704139021436820621766796122608007758714267637462014745264604777545366958139910742965085152914870843636423499867351246365050357693658313040772056304943281667276086606024990369730504809271973575358023462196043644248535343598322751838952641023315887221975322755337825661052508148941968943395646405715475275054376915973149476570421534581654744678815448295202762844923922477020911510930968074658523430100719905940331867811968187777697772587791532392262550074060445702338166597240848934094783711498509941230010840859889703030726750669773766277495700316442973498020537152606071973451276547274592277731501434041661213980837314436468790549527371041486445415974075546674937132555873471374449053902314433104024766096043645028685179691927172796116057032416895332400311959488053391537027682407697199022167283381592925949715159413995998636183198273363790650725805276852964291856374979603201900842860195699310663795854668727577840541165602499751408400730002440645372332731997714100562891566958932507366191122343965708151905559571679320783929354821432188152844490970465459356472241209212195967924344985228242225109264259834533215571615590097665294407838344572438360620651394782365959314899530305386590096823794803955071957565171569424568170595405756907567482772216839333984355594773404634651942077038860469534790695182326543820704253043577591436174190721721444039085438174293360774368624459392727629082348807793470249450146944477094418049524974841113304192988975894900962389938019264746568933574797741804710446325323037087023165595529638029840750109550003630070677064047082916274140866481855140231605331092502539102034280522390414002300793166188894443467905526963796935157066377678078167289736834739303157606765790510546198284971954108649455881266917964154004486835336677945565172226693574513033913507087569364727948452733423179285254985101841504413196302370077106866153923368767261054620661358805327385617730683151601481070872330505696507736819140723915995072725870986532511550594217621390879375691656426021619989753822752371566310051152868468741187454171449745069904531259657373934909588464558027110722489663305429084490229115067841224066354388293531033888322785696329289732664051077732104481280858400279720469736536681034499956244830837951280212097968043570159061779606425921162478882840746812406047730594066381130699812428605529953854995223245128574148526620036289976482769168998758052898489672525869493279559683084525963324452924984431531956861695366943612955525434991390183673933869933979070768861970385596364921824015927679858571478693058972829701538334661028504241419021823121273067516227608075104990421331423025871758850075346628888667844956742639293292115803785437201055633990197163876709773985188321467103432388651839449935232577220732976052453445094524893489283469704963328628197028148799736428786404448370969329789877356343889644387318357208759586674233476577689381425324041710603985762861868095538861744943190937071669245001773996528775210680204417106075677480471461560258937174691245090530023063093333240316854396833720925422300152029262350889503313780046149047302995481299925213712698288139286116322898334853199517891633544985702529862075912597704918306459635977576813259519619097988263251612373187086269414166327256272780986256017423073429255395757082709601694332542439431395546415659058150188675459725786415083241402871726913997808690985656805741624388063738714043433277215306628588961833600610643172673865021370692129988339746893838864411284736826465619814044190287554852612775927813957895662631694126755935761569008967834429807311775228230287568963042922889834175413202606842556025494480246285438765523025382584640804957244392266367122951942713302608176009882079898594337153018184176000277260813918366047609378519779096888331611360683042072462153373552354925110358183373180724013183368106119760774476041006412133912685652894189346133451605336687136904941230456037975604165519881102774603493260746598246652038036062837559983046404453670364926380683668350678872488096776523204848876382886101986056652627287370302869221452112368459149922921810065195332626669492394292030577621345625121776413435970746917488573394417542295388884686446653198307718422279295344603032634932286550838754138555409609741046934159442993521209862910084166322725243567277906951695214454404064020250843045845512803422370446754594975530054940875543358827864852559118125042194973251048192098872951232261855638050395245807529673723377821370726757788752797591685061926684089774354012606031654001746875560162423845298998869764832583680606289695788009342951559112502738651647259563886628763034625549751543453470826971814957105636714224161882982712025029019573213349725063337440967021940760549154197052079414732775220744287367037115358421912695507684024476151577228872646030890218554538149248794772411878992545470959609783189338709607050453879136418261185148936237779778390086203159200353533925334052222778265692684057178137899153717883963463540535112440512021767537004808485425695369516993251792553644734915234285460654054536150646325355963188814423772889145746612340097131863983165872719411776780894172337034304339005082297529908008155090610189267421698518869166281475861617769656521762833884285875085223526466035803084501537831006133113070549745563137176422782362622830687826846834660808276623120375267809723074233822724414580413901968370694731325290983820694798444846934304411611423999108272397269248505311154920797045863240594384848473930854764163781817387546232118169673886615847902195161785616616201170721088387449558615913166654916132135470688558030460769950617717567927663446654638602556855425713874839576274731171280286406376939320816749419108913110351230009708218928255165828873893506779123795226928119570195289112778267897701410897288561026661283175803061493968104523669771021021970822230806436870788530838478363386667236410822414439115184701575355916047996844247925545683198783122420971937986979437095424141289011247642760877749217486760956435330692891993255222932541817327808522627959004979259388161672870392288345142333947027451985877588246792375115899879918676567592350557553638724763757276504638976031197722391573752127414061154710431490220080637448414216159964618650076779701027760233014764137113145766218029502823346117585807170361134391957611828158980796211624338760149224918259591520420560877083529549961197619141489893841003415211537715476257758714102997054889069134261806641403319421920902948376760395173735620962586721946639321160378287410752112591954697730960331388900050795511114172197373718243253517049825623258289184000627054867626152044142167295179638953947107183310138686439853212200442346649551610201136792466548995466263767411482274342218868251707354963218411388074425512487331213493303513343720151474128685149243080966984933534016035435803472998432560464859094390246903305026701520715111032579918251776210461650624041269842405414637214858681750712174420800176025548901497634646781009984848667075411241984907307512226951380906967128839943302564458403889116129579305491107756638939741238530184755797652297462180335910503359848620098293419422828865637414382897445587170739124681671414940771023635533554134336118731480288666646666776047565995908827895066328392466693186816759563812989802817377542920876921002864649221484252657813169919221566869364943089910261652204150066762336388435367824770102390096155403505661154517544054498480991062020814072892710122865328357519342929410969816684462303459579619137799749383009427801394519614679173400884145735747601744683018301923676481499458472206937168653512716998720859444032930715950962358284685980344375353053129642465386785115702707483839400570938429111712185280086799384769370534751907385724400867646977184137318933285126663231264811546138471975798919174282860557864044493186957869930416707307917955274673968825434811308977010342885326909362200817412919554143240342168995038978184076875234037308861989162654280893019685588055892200982549377548008948042408654872359922711658112587081285850406596232928859983043675754376317891530025529056217014953232232675813359192031477375705528197412226250970880824066425857999168325792856698612612281573617985820105999594720281361231723209535082500880548618834361084698983866056584553219536001896914818540243618136057776274015556339466054537321734383688370340897222769578172952735193790862114521658177763362864114471199469887101810045115016397028089413482721852497491342080169720471293075240521080332205863920612714532871315492859427166982812987798289515901080277534410382523403142333569242717517702170257327138353628839508298605978246600159889047778267080836106196726851256134782324412734818486820277676314578657194094289521320702483944852367939653783477542096390963345621319572210334408286570476154194710723493425537649819661999680884994977483634946911558764814465409871888643694540705618223019273440325585606683244825955359938916938065286071610645070305477088656753247001197057309618872007953407673996221910414361367319261873979034245430396134096448660921916078490765310437763810826676045208798816854130524477852086765990876503811665824211267119951920178846041038545842620575930396261665699150919740280124971570543210738886306132968622191133860397698972426374920100554699958702409489087589630246918803845809958206865732842817611359385115140686611939879038344986063150914165937586604735137305525385886636155962064826575607680142627119184824202749035473470918125584595686752337093600785774862423414765670880845035538953035404964112611078328399460196597523433172268599777001557055649749413836721845910883360390754549036323010788104127369319423608272030587644236028009182935422956342121462371329593684702505172103455809410485931627895056470965293407687067531858291397809740201945165248688547213725036352269629082001952038228210392930111929133564179360106038073613644067019961374369354683178085917213455165861906935647938660444884564982938185770680527580795006995575617045117772282158313705550783953751232861725944253743995005917630308655744560247307022328352304861163456176421925093748824985856820882216417565180681421702628756496964851023616997144372895426779349179571586082711524651357033641347596460308135131491421368728425432781437871709846017431313412345412587614412779680395197719193827797886730836601001905985970746517647123208214382391828040796185476163142878835715566506012002317876411880966593766592301833693624334012248936771814308396014885405902162116116956383696705829744704727391869461052931526160732090327826599841437518374014918027584909911576815026084461927463308675536929468428738169002138393420071817630076402532470710491659156098255611073548516442313391352110529746731849041303049807735780728368488342638043194632256299215671074641855877522906188983148702493495075846427981967395363721430173073915246035986890240636918883762824954406833344219464744960625133145612607309806432722087660357141545441335956059403491120823264029708945838561240290649854802206937758885441295052434524258384015456378329080227077827588667551443612375686550824668620783993963607096007637754985914861675579837004035399151005507677270924331446606564613276237298862435346169543333187524943583902714899328254031724067660144379436606751862015645414595259585044947775943923801624769273584815390229892114253069899874660849437329388397571068041122662587426205270418405948214458431606778357724518009684985645015188380675832058905683615498334520328666375924801005803611107297804130994419734190157530130222146148189204282100423407409006971369779427714684569470998738286530691357455747275274217879331705036119139526663533830202578525582460906766030772761428527856703449218155759019824115399691996028737502996124117201369043454884459776131848721148131993945838643549624677377391155809454801157656512224832299817969711418867083988649015882669415147905718873117316081182468038814708499431095557444001470458237677213738023018123706259451731821296158772653626031673911290318366725892537547588142979290317631628346140605274305858856133360895402083356233596060640446915601057166990839573085687444030288317936130035304330008751951883726067758946834038886262660895175226587602796932075179100834797597192885574229487452438730354375658829656868458580912438400627009980285219334627332977415987698785866434533809197694244206420261302294878292530872117395211879441495909463377191672674269303587313742213765349569782548493892044199629956461334131939566455442532070264518942593385367360589261530451130272688037034613656027404592983004767273454006307430959105908042405111003501884217707232748578329579135332057318008467609989960651189887267881936082441251794008462018982634405104030496449516562512974426961584104428828582250022235077065309082285723084429906133898243251794163580180920732165422463303296933056773152256551226406266009993202747545559982831762154681777354086595694084409975920904743430019503426381929277663164390098554624959559608347134026552264687048909997008593422533555822707235736549891907990121519279617090299810607941815337934997001941381806732358007238864284896694023318516177077300812513796451471783186986351054039057391422588245853608585881362687274231984105161084411763140298254785811756012914995494759888241511817244274511494177749021256514727951657087471402636351423346826490154455429359009223362128852102492763536263090382891632191674042628241456921941162225074466382756284486484837495174324312343026220903401930868854248035219394067470742797825690892331167479728629025700291330331705466048719362466719066712289155030299157069359981991456453139802713911459423164309639107126562973151008607113097570699455119197400793524818126835555760753776315591500575029302431192989987739550295368868028608350614844276990945345188819630098458729501891997993101147703249959827775734671644365831775364738675373708106482101560383804050758158922785939123059558639239639349657266847618706619326555636848035030468124339329134195333220764278953138678052775394976792520314468936832318245392484086084171201852601116824861483465814152939844853027117510400873852115758248067529380370071969256478565834259840076538310740867560146781828920874908400285971174251743954034681504008570183935568569177436769526565187945321063254842689067240553863047599003262225591313790679920409825508274205032294943281509662870639935102485992956101139208246290800898282634434098997086400598497716104141895543708511191708534814047242294926241426664701420104270631801247148244510505514712010982280394523786401361455113071102483309158880223523540623528899766225329767293619020627192937812817391431999541739522699654589149477127257094815573922365998063118178839088691298526694175951446383590719493525339619876536168529904279487576544063808648392651792299336356709536099259864467085577527905888787832243960174290450446858739532207679464838602502547171302942231113491027008371047508705467920489923282199627911978237722429638275128172235806965973451813666543791506315651246761523571803285998093845234320208089296118225757882170940795874876181380654049295829116992376081514455632684176408479450091819047801054314228472003773072685107130704092555978318023866101094503394300089959890772582845020144313675843110401643149615494377759066560194167217968318186803762729580029230093226538347387992570976939568539612634522683453801711091286924030937839590623185720432812180499381888066274960746631990160522584572721489451853366316174469288326021994548490574564411083243586913878560242793198514137116840000778227222369879118697036047769087890514983203499109015616130486591241436528695279190536841929206565024087487513608213987625534961614492880875920384008754647001444341673929870069480470713692877197314011266848545699233731078652642632261284098322821469217891815348059975639704560858486341944910434135236953542322308632688599854008682776440771109170427021660957641911168135185599213891490034287751418182651687665121693399513452384292979454746553864392825427108923071539171084219693274877256836394369764333581281119996236645699661733973034928936859055203625115832380622988350649994624440892468294147699618154735343014037008004202966794199286672355386297397219066315458539573125917839342376619920707386284176577084269641264130138560961324564792590390464550096546283119375360153809474325526498780055057427576735602813406167428877025818113770755761631844257443694781928562488263456286991412400336280451735237396457837120125298747812717620030802549054389368736819545159730476525556108262916815562380751264453536158299029583660041512640708836509681829764129131899651911547621448300205976884282379416835446840565451660244258156580743945688871753486510094629480213198976926819005613025491817529751808166685291851267517731120134767734910802187844446201068347380926143100260033305056805523811626295376995161663007392338920638825491391850519895891263177903843748396318201865539831248452380533802170565349457301504527501526693334320206206954125349400385712163886805750837087966109745765987143121197766553262367566837112556210939628723569357902903639536644469596917165092989657625321987957573633642655868604752196505499333395809685382553338601358688625959400446156480824749465863790417610987902383124319834761669562088442622966121863989930134007366229637235705417091939966909345994808405244013974180820660134309024259766068424517387298782474667771549111285312864353367121070483886164823205483184367073660910184585337609795652130293813278823103698487511151454563549626455357056394035048056512772480486447176145014802715279514303124106842228737998519560123916373588415596316017881186884520339231545829492512420751025289579913578272445499900204163939112282750010945796400113068654298260483311866621051034550751968051739005167946355275861597775507416488431353673384813164479612465820428563281339210683794743920469909668568859416877655492743056675255337416439148289600691231401945915596150834594610411205030464754656086616062177440390777529525004511205364512948363603237272124115010897122833856322539792252921918288482195315922592037151301566263938314193087002730798744597115771754988013490870044141921870864723296834403147532934430075937718288087622097631816673200115915205495819762707462690649411921810841152431177918104268286226026864215681146377908525194578314044646617596535979944156224745978270409065762396082606137089666544054119301062844139692327812063058836187191589240272313864125012802396779302365491731765112130918510497616218328642482362863475476370944264422490239528521022835348671586853375430515472584148780193651748182975874935727893566753497408556781857379781706487383532644118050620117312936350049597242814509181856915789425193181528447719048977970948592720513270722956362295992994541520458545245903760933312460645565299279689853740123463357379383210268913444586386930387126305577006998497836340493686725416585331366948752663329025943663017592829941742494402733204239909007786990775313841463429650505192041529283456733427213191440389226308113128498327519315389631219613389464092461711529760712863622545196263941813220490329665751206414185702404955425022375757173680721181147647470234645414727600103515498663260924795446191010697394369229082919926245734619786268484628586749261984239301052217857722935122255093409295011375980252571822567283634556620903025786666710419361047754732501442075389931195107809952843414589572674769648667250741352811936461051516822677256989651271585081341656369548332688746785123065058976021358372717591223844120512669709868845687414631071657108589245282079099910223732785021099726883042948019416807370463325443694847739533278110089389959469912290971212791787962831197298686362785493160108359037009046905079053153833062096300027121845186333255981677121248206265464118133906729763694011466215166466270809098675450019715642847888388866783418590337227911234009500107108794561583013878411059649860821731793807053389180025769148919461870795105699913275210482461954379800503459961990498555908113708721167608540586762316596122547375314077343259172916331677893613690842253040799811775258212115377658735896353558956164613854022217158451022043499386770935697872284942603478351671549393349150536471820061646025401531719278287065476166548851990962507770893557355465803048879922106945919051419589857737603447040471115561044280949290839773199428144100165664571885221467376466289979269603054867969269153567919836341086254881537842140859456367090278185227304792146629498368769888126218641565718732649970049986914711642549591000829454135642846436266499087649537701339955297215617623703877650538527157541336857642942472729552670692612822235085026561083452510450737282472907345401368636493608588843825528896681014394019459567012736888950223539944543719464313104958368232440620354809528471948766713978180423868116301914906105207338980127445963270067562788609689656682440417669174061120383029428234504155819819084448496669747414344246239789342116747895214310731184447825526932619204113830968656717676718664983579157141100349328269634836543459584041313146543533018617374159220712979891399930416786908530756866233567160299378099525440017831771384470977322184412952779117783056471593365787739414523383655517389281022618213189021369166565103514558692499114233700301025132446035931720301787933560702649157254171033481936951809381031887921262502828696796183891454208103310999207493168648497890318949919423798720063281626519594697278924500596349802176482722332841246379334107925767389545958047303871926072130147176627998453675431296909444601470894724025573908344847661193502543448271590813827186178703133106433652895233032357889173000022416040314281452444520148698907982340597334413610803046606795193870420129286315442243138065218299095557518863610392647840296923686235657580760192214432975410521111339458667760970016620472047997606461819248075322516345681441201667591611892611343664189838959730598280802172026645154778852270292174126185571280917104455154278889567079971279871616020104274442118747941969138295203810708849735609838213977957419824383034807311255223565270528325737715812602429844285164636883825975485168078789444880664371158411488062019830414469905373275223738048257679452248823378916355009835367561247408027451604672560653625145692671776983377405973162307227535435708398098889958282703921429060444588227608891919888441767048842175876850845016958018393745141791127835111542159495746013146395194755415246956866357904363641143332731650358668966807692467648679837832176129459586087113454954122059988003279482464762942046527479214262202002380198004511377171917376643177221024307836592806245676980785714619041344147189316537330307729745738936544030113610399061480828523747116884333514456573822392896261050134053571338759613056967491036518117813913653875889105759950154605189368568680703086330386015751831412270443214557507141672654372722849169601362925849563152400812134194267641032435750572175874618158877395914687681978968864895719209999592742914891238814073714928788322983648815751607125080273933917117301386675779383085793080127168425336871204350407085839098993597030990510282184736688774447405120553136861858707431154411268539613034659466508156596657745429885482619796618692638626611434868600667248732527092691984192629450219447568411113256138936974813167487264274213748433825889036237921518628193049427366525544435500618747768922982247080268710967634901597587021192967935778908037843612024427807293013046274335788924539721404163527168503001775591225257607580300794614322557286519211186748359759811409734304971621529602535092121648850776994924265379998062591152893231514230350619295551628694021865514037460724237810629689626802719485850576878382631563609211283623181858508773201524735414005791051948184035740963455282185202262818060533944609369445512744928269337503649902593291453780283893918648212078930637483377347041542255518166319180425349456198731378754779399535182450251824731807758977843868071471024981431053389052585131001614505618012327445671834070378930409982932371116800568134384559389753738456873677233782937612125246476718291686889203706995662480364191873028044291470413852298078034439514700968873555979586477834014134359227963269673573941694260085097772296560270784872540352284241735103254193936063571847629162260268658853115995698579010928557510872869732285474086136159082650840714565862741259001751311150359443902386345713325489077703871842692818935930187798853745170627793786281573531186829039699700618258206575164759842166739893018914063560411015518144489979449841658548320746101894193105702290028383853640761768740739681524527803935113679979321181648980276964514770396988624040032129005002272187772484439135950881025752192563958190725978988227048954083088617162415857713245875522686198669254257157346184044883759220410784901076209987347099599022185038378306058111547651146865875280725264689947598131623469852763417825201295090242776449246257480631008474683756840938597399829205766165553323173634947764159898729373176269918859135605080263700857571489004067166990174433571644010663295024058380230349465115612393413564641294388743896779521680980489647684971296322128251907199738140065168818717921638774068469788226070392668012930250455347536397260601458302711494469040752022429051440788048581022730428165880179305247042970323683550089071234024959018780707850594093428995232602265697849353665464709560067243488371419393300062784427783564684516681811431569164236056307036791616699326967088416115117953660352982291223925696573421811160525459675085386061601269182804793865640974476432124029881380075184804038652164867895089835160424292133749775191802298513263990321259067566366045998920028467707130386866168812528452337069765517127934838076755719297960771869135182563251494234117959132801375737261738083909716725598412174486351701574894997331671049197062806483492196399453268786365076987686104253728966170250798257689152466113516711600074167129224955330842619568706276277932654245385333901845329690129906599187039562161926770529036735237316546237011450618200959936709367293717862225050422270696237689549631343497621329896038575895653279822099965950068219845579895203950616273063753103874209345199948541392418582069888351589867957224789917332675893002902271083111055324035161930824957953117450459323458349169261390193773342504806987593146066810552547114871114124533856591953496198721801909316367872178204040669264510580866768383662324919450462236767407043216386352425593074758234848111731239377364472211751058963131077003635280592385873573267797116648973546925125513270471793756657121429060196501516048030922589348557474778931010131529908632298324496683383142617351285146127128895620341604912860981086037531173741670219617571043351158537036713480982168050048267076403616152064311561993425594804814134467444952257763757183483249387132467654994491725118768656412346212626554433310940458683897279960684262756222013653608127540259570904093157587425806767412846335596082396958485615779322107455848904296583057526662521143978526853029736975913266819546382537502146151444646141337755757415086964384705471680958596648357383983073352350698043755599613698082845755702947965934186212429091802835340526365853192761691961438459989319716898229226941257455766760916435150769078295977359494354640614274705439587307667707549898445916121387988306930112379966760955791971112620223209805489006725818656314451333429908365281368632846106850950054013091479053613039670116240727768692740806236347437972590763846198650638355276003695298050556695612391980910812258685903506475309605335203032115308990497616465245311857234181468413516235677308180417445139465599767298371199280353024507276123351347685440155811130804734064678882202013709970406911458246037032880568037855491540999394083698459502077014080753481444769874327137025559488231832664211119998345237215454819656215579999745004832041022262224060708525697624002479406815215531641798736016516582442594752374287182362058641316847378717472643383310593921526248546129804485986379712355222218800893659565670415596514191679646392311475008120789845256076094893530581235706345630293575322214452596789097139008000104465438410575472640251564330237044507423840236647663863620864287741411164685327273208743034731142996423926459776921607281217794816468754050654356544883306599619578882527998769369129194912032743543441677869957982365191643070415335777783706801834586709168932466785543525138630103290692299868099886096068870997687633515901114444812793253119716114745952952921003001218859534029797706270728344057982598376676203460275070694337413561170375306198244156389437484100350911888682574768445216817454042334717462944120336425194507515488831945038980412432894909793039336668243702973116784671355811094150781707186884553864814984297851187425838801970685950855195756148506230757659261157678440067742099761911849571199352249356995431420904628978588509146866625308682549386059118382930646256623382534338829157268601789214681388246909218056436314640731691257179011876895561545570230604463643244778075156629698908182232413104133376445803712257508658713315334377367372898086433664017573567214471346627900123499624882074222858305133825661298855039082235294616804553668008813982267125972892436734701387707817088288848397025685083145169730290804540274027896758974295333678871892659512889833136936107712594104004734293152287468948730658675638762669315911263587674242328317100146325172660198682248657087008052424639469152823365714881916531800819090131157477151918159771643998931791078356753084954679053430488709185390166300726044427891323856452677571806531506332959417853608590752443112538161463924314912413383979790296333251196618684357564076174121102744433184464670779932265037458183158187881605542838130403926502215495372888379237117111397386632262939588695925371213380871923649048396411526388580200250772432994377268790629140066551371332857524571509478256083369064351156736793035578738087490642639214433522901249394156644871563103691910152492446274148013760963318932237830413921157143311719836600562250912543848664623768181846966661596006811439791490406406463708377271087317265423778825206393600921625714963863851147141971292590701248580893374324473719235053980146018121363334312547567355691913421709351670244412007495732204237101261934027472553180006682274214534896706256273220078178780046263593011442070220370617825355738440330897307073291923257839211887815490683745823886988690333639009100329284721684303168025303139718617908297931305126179402477703092020532674471031577299225801555310392470490491608308044121618914394277188494728922030403433359379558901790126242181850629744899692873379957007613076309146392923415879939179928128306727613847520876628355918538420794180082502789411326949112200194506555122386322374223890382239157213532543458914937382301047448364283819361894221302703518359709946056120476754878870973066433101752134384431194826326988416065637273581260806085732071501973258318821734385611737536724157385621276484422356531560749533909958235313062321748044549893142220002173418022097413241305883376708590318370902713441998297242448227852245014218588790923967125843297068709591239431850007680007523690785918773129369209714239367546969281763631140299832102917498348379590141935015268602555702945727313377443144925233003410369262868760398076279573755080624636152716458271973966115762695812819715253385836508322793468751322566764816794329851518929002853029667972645749028051458825115998450101687294977654505767060707736247798175370964451964469759219794359729789724803339654362890414695640161760887775997849274389041203895697361338446563454584091652533122459025985701129480529278635091108569578380924008254917037632742782623392827729207008721156157043221415523488934522176697859510183223845725195660755391992872915139088733372089858174651643609570681992132943691898355687192435708386425672349436157546209521996397405923567957650729190921208782700011618960795843436398128467312830830053484905128373191017757719814050657641332140461899679181882328974371728145731290021885173197347888251637540865743734493527550661015380263378249062905572101222565945755800505676997784007881800507803753012083920863141453800679080920427944033332734982011809130800386880052767857930064204545800276597105071247078387695368828124651897402419218762087594949433983195464817851357901004583435152414046170281084091413502180704179571798864930388738009644612848139961822435621069444521411469455168368542521409996659576571530392876450710090740717683909292587800244844224274670625395337499411397444429224927088006254510615625148412860654664127548345292565756500943419684911492422778961360330414429766560822965488443304727487191819308338048147638570061237182245476724622900421252999338760648168726120346778584825846363131902425795817614466822312919088117048598170439069065782550746074290870455825710452278570697826214745684907039185889826507584834881944821562088586157246452553375864616085840695308538023836515452536285903773433745232417853274654652658856780311488113228425241582468491671572945715805518470458059777730754310512589301598726940733777775870114405881280072424671051684546921562994165738131085709273143819223672378863006845671395717684629294740011058882224966713489367565917275636342336580848269490122397040298409651650693774886013341618393814335279620230785081287528200539581131073588394634857426785359707562076169857562323426762315277076534771841026158143843736113137669940131052292920632999436958856127540333124827351940944327902701994450077618081549719638540272049047161938314815333309963115272681756291686442692949931677711509716204642019895200738824698927593790874297337499825294908545754710158946585825945615417489552276377956634962144199226170611945665476729065705906279338152357970204456543678829850783046995983783029718937174124506329947373231634568214173503368206282811536538777160202658778880989900114334108943669825353295935888876531240615486161889488445810523638314606406868895844260547295483162590668069852538935415864421560948158053533924162023280555208024626982400024666793556630254959793222410740419904896840422931128923549412026854893828865871717905517480343898881552524471430295926388593622078281657137977517812254082466178654870814084875285337851728256477021591225754743173074557998681695209549459421898025680121153870992563871170134719009194443827745172698249908751781502877280194989978215938541353411699204556440423444730374091893643692029100081285044344010581143738028148453864818096899353093916671287455745214006948311944057256419227083753905732484586669054258522478821244177221506625798935792609826762250698089853053968828951702244258989338202579609067308551771304794525423311053611358507818780178666201819047029422304371072198431624525905879721153153421892533701941075349097840484351363809613806666051519117511159870377938316702189673220567468044348739007302003768507134967872642120349594851801418791706256581759519382399535942994562495708601219931536897684290023080396215715880614508952709339095543323511969153077382441213869352011611525366062615993169655336608870177194442657616083357806681565601301364966766604054070941566422932717522823273293183851800229503545024177779483075486216622738916203851023294995206957982241387508656374562702233361010049990826478484508705749032952176476335712241106699639113070983068583076267222064117730257837310753422573426221224732760791701750479801227582897184725952782111474755075626174279494316093546530383710252298941150365863307048498624408834820740824423364139146104008827934128662464059479812586127408051638718594983068014093798057125581938305703375298852864017033273381402972858467414278647476338273965983616845640228987302757896144142567542860056657621496271552970709829668440677285158066793081861415863433768809893788799949180197762919615679916837424447094402871469231844563514989729362721541642632199542787426155322162640761953937184448602384612535850989062131566237899157201515320950026867924038951431154964728063505858515519108228137607680799801547022721015040428772374043824947917474449404322405112049307273122709744840217527964523480411333258946430496505899068264133906916050481435976759671484797733200397354293089030150233751678620513044933070957729149390564723205915967398914294764456057770512536095397077221880122009380650056647455740374619919661946164841921683548871524976366061098546428341133121840498883125244868685743278005853578681222794661635064361432013705681459720204355496923921418007371362546117593643032477855132129464376967896206885701571819277337483916993847215873943924911307196678805608963286603348902478386436489427385303172626937982746447966564088006779475223504899516898012062068866011870788434981953389500302748469726233004927827241070697167924688676741977136093349655546056133046861466153971096311301807988844810708703330524951590315213092423396992652745668409390695970954768706969258674479512822245237486030133750503727987864655837518935086279204444035445871191326574114178870248891994866228554672523442359958397718025345881661270384309430963277570331620547345946096180603715859314976984022387532811461218497372968830939056406350071625425636844270812354025450786037035169000237663398859416624861316917328018045889746631743432975469863718850446398812604034705714515478471257789654022629833146003145119756087013483655361111534226011387909342562897859656268879975566993353157253467363194607741205262955035670815424367212458822868193616020219121473555604298549621585163781881844131973389455130861184283909062771297392151173477184504332439828432961833143143427552521593098724762017258107058817417728704433137237337206051911642424138477666118856177465902785780514540498342278123992436303918544466735115355072545885311533939128536356233066993256514598133865699105519636775319041479864223590873611795269813885556121325782550840597442966470796518941554079805161938506391549567017780779855372831695134011208147509038360550590733786807122167265114080721837884603772073549344357980258380274575153746645580978441100022464834301549863750635097103727580789108782401796504041320282710310210700306039740403244384955628934648403293031398528233888517535645384648641182364674301078013386828714129000655369668227413930713542898537932700560430676112909153550327335085060758064779802228160204201002253779779233597997058890733722229721818671310188491537029806843879915760989361501313195587324187734239184804524046697133177006877701676294630065505896008311396363729465995257890114021237771772541814665229438721610973175112937305407427585991804513090311362269063301052506197336249748988268824478873201775066308645472447532745219782057703537684383596965310366346362225563788590163434624726234206792208508070269561597845684013560034732402560790573552216586643158461872556201259422397858567611752406005100575660920973579720590630817710693260570001091994156733605589119522529872723662475077309012124665029290789145247064539876573929277059144230803401920569601075404176075426681193727775272829868866147123551030547929661268837605284567499019605526084814433817175397789805872443377196815896338521403875709476373411291724217622786764528283842290095262121144114131793868295348038841815162808693321725322774705776941096251273427263945596190045790635780084306429013877634211493168138457209244101312595603676777844369424304008005157059098238584806460469097203692816581677447330654110680396998359910932448796256618089194481680898704080693311571966996394524044330586924188574939741272018101936055195134680954169183359090118953977265072958273561279397277196485780615707641085295294076246286336437016635558073893333880101291814283253425469028590768837956955549874071961506466595903398386406762790992678799422840100034878854780360510218268310571145422382730346499947792554207800545787659174095882706820617515192292741093887267724905894513162359358501628756576116698728547640377044058673709206797327398483071005097716118032149529218990471142060039112990812585157342813537678665616862459397823367976750384317276119109497525024864578949223657662885594304689970329211832989189125910559450843897534926530441337673840464338081659417101041765435278715101766624149185519659074899040909009905505847478640589410057093740799511290657575717570315236428079413713336809757808692087514182958274567057878161024236062869135289151212043372916888511470702593428360402841534187400085804821265872774191398458060296385966153312116936150743209637406173681699005942296907033710419641301542107463921037434265582641559704528596087252665234818927120205627209187859239342929978668705368188264127069936957602495955369238466779475893362801871665306501024902691910213596563746746086230589210769765536319299659587739724237277953652059953485731533590358723509817626927783625715953472395391695533344815054438449033672181644425056107677866008495145348639742182478117499249938936532151595417641477877072046342087781060784322298564419217234855026927755778107451940542038499390959942228654095736616911321659944995501840934280095603068395425865971491010753227963915776134925894725426371487451057403053832914371257528674011143710390174815419220723900327781293769662249989845476430915206946464921471320266905326076110474573361044926262299453043712208303025025866694793582797023587919042849558674181248603111223694791769599403809000683818119295579111248331355506781585050335208786979817030964874553051800639956513107741520620058930233873730939085082532866211752570006103410857736023934443003587174211853709630272771300925711856620502103832813949328976504237990576147348857782309282575679778320123932049418944621702755427120387020888272899950927256716215062177132039500962453589005560288334448330585041948472479378705916602608229245205750289950200956386807964733709108862265601473384637129288726365133316348116293298488847757058534714262534315717583277815379473408952086851456054490496952833642293848341031675400006676372645370900940690534821665998129784106063715438869808567981731908476080004920314562343837265128482155361305003539033346480975958742790923917079641827116428891745584025151708901820708843679865250654744763099827194318670768405130453130891460946568194514940986203172842142516105908028695911070545086734054962138729737187011179007473435756351844070136655382370980187191307628422792942369491156605017251362040964344096731667473025090816768923692842478131859973538817517090259648654302601572459085703871846746237482700859622628015296616972377281606030740097045507225478451989240000452903026506053882127099886553403556360340780213555570922154057668870678740286376367080104665377440436684038388751350351136730878156265278353005164851953325551098132762663463354928772712036749603491633249515753997783298011577495822577130113219775516105156016113690097009657156958414684192577097701708492871062163731431663377211764108660682364345785437853189172121416404622192318645126791339465479040522382764600544212573250233371118330553620165241347798896742013680448849344064169823559864952585545493242581338776434893578907447880826326774754013744466993245154038850326612041753367305248134176757549007540307523401605308977796672802921906128209497042316703504823977068830514320131041320158811077352557465653234864013816895069554831381914300823183638589620156701997038926601464154934670342256393873003340244399492938360051387746012433586151487270332088659112343718681522670768815439762370896520319794089442830636901838666623293738349695703193711738050652141314538496434637367133122290148436480266121474822011397867476597652128469843994708690046102171464928562770218186539446564774013979403100723770464206015970855885873595723479194730391209489164274913251506087933220769741109971763679160991648343857241786272678450623123916862169523751543585345869278025420675115690093035848352069592685674950636690350912364211618758227237716990853525930053229060484623205960115934218355898728738277781794903536130433635007887161625936714227835875427889452496740763099966527171929995019572419170854304438550901558710085581253487367410480999788046748350652178370105784506701314276959622962777028688235369610977257388586174667130294964407516170968610859269892045065353146171369379167990407659086153243468184213063977355235152228550503178400157303989186311710698911488912867049094709993158387050491244928981583261346843074367153468348936137826303132070140121569375509284600891878971194442601966897805843387248724182473511424660569911494932096426480753717676076510635430801812366309202293555081718971492505514685467199230084273882894213806617740195806330688808842186273345135781079356190431590992434005134763624939165761630462064490473938947863868514104230759172051664088628754990172837887054933028625883127440114355862702734594293496842513232274926848687783851338765407250429623104186585030886826185649973196563159725331316570425519458369710965497848081114847802500429981685826966672252018817448911001131976491501024867812056390324284606366412609119054297375861326778687089217052228123487073044221261141806423092339115436534906126560309636517019197032589632134887077991892762824077164505670578842550204463548643877230142493787372081136708196801256852049628199117318991781148712865353996824474663915797820084099725014626796790620999526739056884717593502546141867766887521218930538456103363866870067989114931387129780291600399316708609978581044469401344780482675277167916460868565880697803241461828051868288908278480677085720182237311545662916397140141908891774506013194009190940894732554996958783046270428963020513697113596902213201590127651711633392231587224896141439896951414866155632731159065122439391457807775351238877261740248320712770517534800546816919922930617725488064852256039069899829258225696394898361153774440121212290723593864332153063877328212932479768100048343302759444305859694344495062346273078765009641361995346486301603709512993978618834347987611822959025246674148692230939078522388642972325542272224930896500674542946850354752655618006673505351330564417592316980915598586798757015051049104310845029517783997570523138540171039712374707650407618043147664942508459602187232651127648760390250305045981227590088652655459174998708487789807014255061329594587957386268923219691601676570462797431625008461828483888692476479803817038592564263136531996658943100859278447556188003744223256967151925516697457232567658924350742309075503967448291403237153209362539980094207451688032252663407893886415913167089382478571349546836997647646476444671049529841870754765384450726188700047540743530159678528184231907232414409123276921614838019577010835466492523495392823234335781608712339253403532584203006346745563671238568464254412586701008902241482041012726511900797965951200709320176733647746294981010197906407254644931832700105353987778876669506657040218610171445016955426406198048850307306721771239625882871833643770259550416275387927429768634303971120489273480713993092450628549341145911921043137502230510326358044426211077853678285021484657591975283312839371153427603929318234008390475061767678044276505186113539947602526517671278609558249274731121091936932332537299054639157655715378909730552581311189535913421745070366194979813482638488031068222919438090238740683028315239005361903699128483943792569393111992423218272475107008110380841393202464936642007820199573864499267397606913618323433604665710664713512883045055318547958167086883968998005306331606287853477240944467941223395219103853609545912531750603932576892500224605614084681600369828327224806618870267819007912237616244552324712829636696793241119034048538007466028656353367984354172330731535212475834076261072871076275235569564102731269221831833196009544315210068917948520606165535081898650290116603347141132842131524540656802945258403260675336089623210140544727691647339436795021399223807044566656390082469116697883959600306982117466192489790458274200047827558605642035668849214348149709780234451706695483761985200040562511967076471343441232368822137408164142238474540180902208457650614071404751118906939439525209094494842270134460400470785605544703372746324325968127924745936474550072088646611127602251718584066968013095271478134992317404259879531705397870587710419216526740223896177989934044207104008726565820169243687019641962615614421053311241085299817905351531058284289394501554656406231002476584719055622290898777067886736256569946182566946372009785337681152589791280997462613201009351708069175059142108236077775767034501462223353712117755211469889794997384385076599617175452562608234766823872417118269772729266537363586854188530196553820567390278479595085666667620770555402503425123044994182699989963683162439950166408328675777574339463879571745398911965479162752546497205293501176512956339160408899315729915908777471881649964560757521965243756206480082120505152130206430886915976183221677852017932737999318542079492194443132404991713325947487405351573121910898201339272165470446985307697332777309945759387574057364271421195569669590866838380004376257122462390625050065320495632358424632569543011376185128573903239391165370597546555249866880032758655191655581381599329799465023823421859986066907882645041962684345011333856568109204794399266873230684030275529987724468049677390695096227687203615408182605417498217327204057815306953755521545032334514906704068771938020324336916177913935099827373526042758517485618879264818782846520298793972271201658200071692128150186028968454105735015361703095040065280226869477548222794720727252232309508984345136720370431574768003066082012216013080254462213554678033267482422761699753590685172460474119431312244122677802285434360911386460198573836272846577506645990274519216122154206342498117984924553027397844882736182914678531319253573389500164868034408682977456027918614474004045785192093658945019813792407536492906782035323948724903907048253788200744758121668035650268285395952702393254683853006910154747794620642169123932421451218838027092751243491270004256658280890888604206345219099961499274840170675642716977156175439871362960635680092844726212981876709211004890478418763174893792163246466926630222684064346828453103033266825161362950700010598389391334674195443237617714238258746641105804553187826071703873976923609781499349406029158169480002789695560079398173074245384028270767128629757552681288821824274081971468251297862413304617359268004075575834970273215630150558929658210753623812846409553415087091317523363664443473079128769521415040226827028602900199380398490988816189044751903758536235995067018518614035111210188920434652906796759785166413135208002243679025837428838162073261235331468955073531988474838839367526535813466241602460819986495781318466607500694152667648718731528490332441155686684062848515503682438863329408899612197522207499487769058354741078363309298880677918347310378907741403170764958411390561662667905611123542335386267194796533874408052742666597859305640501054043885458061539628299029983317293765827081000548954140449362571157508618299261005942971509785921876336435696211125206878370492106323644722902404196234558739715720089029179800411091200062142769325408427944160465876736229348326686538026418616929077866126699777468192737619815702481578472085441268203906728236347916698789730411373355058869881423470286204930685015604856553103997404631768729970217551364238699316875148985614469789720981235292157995229784018231068325748612426759001126866856712788978751124553084907544270566840065900701644358551658215311825256507135113324194186274975222703866766743941024088966019135318247106467561725290223184355000437241242317652781501771810734324006986840642553902771914261448155604118665034046101254988469837703070315585709192970946077372886785243487714278094533106534539448073348902748756024677557645343479120630682733968039719953563673477237979890511563065318703794526420861426084648980972850364628596202333864361021707144553916385324180331284266650970605819122051742181524844833998020509035007909657255511874687040725852653925841614744553577356694865076469555193011971697980914906119562236913979936777137555024989919493170169494395880357650794507828916171176673382569456541110951612253280462720150464009112220607355563337136568283753118238641906390010779756413253367978554296575239679353206073041366544770431686946858448177263589654188486884546766252839694690138252951151853504328537633561627264046794788267321523655203892932403873221430573508855792125408267266454238517792576851548592155096900025425429602517183208319380353216689663109548239791577636826143238354821863981061736367667642056281130836901094224044021739165796771358792352181830649208229884714742818360771435681838114999048620074397106354729607814154504764131246825452440376374862192297471196130007377997681626581714141667264757855315717236034717227244298058280021933484291923497554567086238598933175267795572840467821807358924902380416772890195474801912102825861594891760732655944771894435610180454463110484237826969504364166987201894502963915201093406322947501667194211389709551197806015400149871174107027671313835450102108071568574742994499638903978213418598053321895482932172615430664855878996247399460058742417854437276851334919403051859871798048989821204057661258123620918728499051355913708063287709868065894315782605562659501674777330470577821446428066277015103339992500817253862002241574752733694639855953090107228261810159435304746428884791335276746795075041174691850090123773760115118955208573277231160895268718057383761996054443150747816911114576054692963257815515680034038565863679628978973711100597431789575483846993748099718101169960687273278216088656721024175038944604873555587759363854708898975930064291855504880948757870742815640011157441181898821781593274031966138527961073325551652391592333978077671131508369275861874724026402387648305370842134957421838633795180325967308084542069160401677600696223312405753833490755930666298251078678414718008460599153180484210717192473105377964654028578939755683420076061400831217512706146591134782292811529787103594494003604209530625681228171754504945371982465841274637826626685117375596781864147932035620845168015998799712630847716284235390695338197688728787017331677261094653857819570518459386089881438453968538086109307539434440917873337683598515152100401333363586918078600775617077432011541820130772133846960102882917577216144500137047405201288013931610949974149437256847615047592944350765239965084266712464065919899362533619174520549566368402767578325044398126385335491313155881234692701491566244087960865912089261702719321675875732926221535823645410511429060221862493103959985061569237462467911188863688161023807124897518202947580491390314610061807257943587454792591871388377908986558659690889713171271132525854625188460185647675714966268845822349685265327551328899531964404028915121368916353895695840619891834896456461588366560723636628113710507422530235168176448892122489543405316330358180652393991981302857707386979558226917536135279875313130441394240078717827056219887632390869290427723634502985817399440533544214478350092471160486902112792308828498480017175641264145271472436567553643701794134952874704322054858836661866932616305776145747411604726787297073766038887181570423689671140498199466680945230661918649518216300377598521149490625643669241859101927308060626792761845577228163642810926932251134629819272027728667874177619336456842224397323500466611162689371153859339985306923274677873712990305361976327318472311415487994019078037750974257438402798478574384356050310068232840588714108359842674974820421605721006631342225816494208813554278988145701566621989617169324791586404370149067052008461066992515654797172238546993441859985751685930692426937447814789330566408167402660916180580315137319510715592407303269261184780817598465104710611668873303134529031255914355809304158188608879605728123704700991533905079686890925774222520604841675246331130175417547498048453458333344104295805008032792221285741397729867730790904429357413334766996282152373102836899505947196011830548477588948327400366876272746611292489490589040709590811478510612254104579259143729422432400744903956683616608599492182884480830353865751771126665517343380314923997599603670896892506043473409538255251342662044574533523581853980437954890198233110888944643041086200430216504196567442051905403583255896879012932532743947576464965757498293357366718361144237604584475820687115457520832059336913307979292010618084795364760696969534581750115239624273239846876269640089763684564369186007589950903310019386614181839007781111051042689523254401391968353490590261496551931844011995566988864670852840014679258907274997819940698531846953716623447810759538223064771359649831118993887942291626269012485466116919337709871285088107788149826830612098299714118486140816646364363315993954096915942860900613814225639357945735546354515738281289047379662459720402241835504584692217291904284377388435814084751348868054512728128280506472490972216216587380627458574170956844469445514214037989467275455943041061387531423293592708077732427540304345188315159548716196132427767099072184443517863370649812993719333249257838854521318973519505489128671467281827163660813006473078994501207330377963940440132144853823670464095137248226195855742326930855593454666312099820792434664469665325356524518279991481419275033942299031027308325269135827778166787283096453157792843068544955135665038226017702989198313614043387844985810362754114976227576729296962553809726323635658447536433888113787137905457445240005987200727338794591968499385876507355423653804303488247893723180514279059361074690666207052829694963123181486848650408553652510468008438025859044899511815789182596821355802290436889843050452170144965388597744712619080122410062496379543330778591920527813208736086737581206283195689327752476657417831049344740207709011755554696871513494139764112097508799578488638599484771401331606155903761347303629964241459229978322605025421150328546141618530637013633223576203884572159757160237624165071011005918626512413129864321678612239872168395463050175889479968915937786189353887009293031790566722975986831470995412967209673488332748738012036745382679211871977777104542261901178288465320010306029098988703015348251155946174923570097582502200951816205574092318953937234199239797504338079647817077304307575625267065417915300381128722138409507658540796088186105886277513628625391447598583341810416438404294324441875501227074002878805832566811979033182055565259456397078369708116450243848359323005542788905526022929968546652860415218754665498277943436132171393762703330927972330619814952586766392384214022773716168899477145203575311534039946076901610474530559474582966298928066354604372450247589061546250182418012763433426955391255626159453550918702536422928110465789381301288873584721761532004444343011384183783410993284249535607758023506901138316654393704304581158558677415810829349325033590005393467591362501265394616933294922063165630865442520255673303284682147390423501461078415364303583903271211322467681440666189998946842654060137255011740970458105137576698302589400290074969602964014376117904767769094590838367507329795604119958166688900609097205954076561742740431404258538872503949783891321781501901673143131750008527147278524113049420244447159449677769338778802618474586060910142342872205872254827234093242109627923204435941985245141961900447397431968543840490349114506667065620437734297929947722645368276443588003529514037968563782778132157658785531856255356200676962101926740832195579173715333478276642365076636479843188089454421963262267544816150842363351036480358117126680780815863764595035573049703232775170011446879259496112455059792880486547025090541324760149820855223529648940294933180993825458002349725030699229190767912458615938902076804281388085492469581601170895042766554992121298587579293116564604890172185496030826474459028113529685943423387871686670539395932992486228864153758804503767344686278281166934318343887104341982648679443443248358505107063570212810583639222810262626410278064787592946035464927514415930384990249825627505645500746741857557203942198743171824849555957769936514157912179513732336353698966722413481528128562156365862708100231822585224011171660680300796019141410771587814259130694877242768589445648473011344904394798422953804387028311981710179034902789951976591220661779084615716859803628055818904964568957768144128479257756222533353904452172465277383299468876604189942769264348303011388263900489463771577196072231213579951655369188947578542993657518466830793847870386433686427100985715669877489325927975007495794868647990647818233169983245518871267513264330911326725442886310615439959802916862033117402132170086939904663425519482876096193412945583857939001341525697204230708650221057445783053543600253786399917915977999493794778490017738603290732999342487650844306844252925948699781743699577143899068584841293649620092085499219732718687777573791163563036821386703624534788543024338519047299398719372609195919315182329200119406950999239849502733658516863710038859595135921161443023241490955155323483816128747734681811092870728813654986564573739182352579747832040201049193990232966475883548780114894803821341991286453305153246456415902237699639966163645383950366669083075034309812102805216286502672832032669109404173762251399802024528489097316344100288567049471513253582810324079825307594214211067277983569141179497786287873903195263668700872127507297642109789968481486387746152712356777310385174095268419847651003972842420775709204741593687385515509384455714597775609755413619833875800775276105543803761221569234127582291613903923786723435985052479358531413186021910014549425413629886383730571043564759242270168982618559462244252903614296726625167772141480603962176504108870392685859754095064428474841679631026394042124112942279844589616835132160557870523488081082159511463085795029920473501348835966950969908560054004101517512275692627124757640174511490566761938987571796433129929507234206464413466885223560674007390555787051303559530635212419065111092423055116113346363441210103575940556439614958019804878213596832936132514411846943870902100613983948065912535897191357684067849557757478456872140070199401062056030029776901214266385709772430850054093880063767858853021519164329120298690898375426363174566098137435145598651783554435007218344412605826428752222668272364097868935743066957071352786712682072595849164243646972026128413396643852197862715041022238779621557321271156645135444102768950748010682683323010519362385706754674873978373112131006839708008522047888981787211940376472600951713239601116850979325582923216346650168101881160107598204303762076517829843389144885682823208406080875134772734121356502793128449133157938715994527064001590957269727302026141332103657928195359471951757930245361850703833386295563841336145536117128670344217583995871482805327058644676354799408836149517233061002145290448895947102743431559994491139521655102871178553090799338577634577353317586576931724229334066008496423590209475052708235264020536529740844845927466668352430708992800300263148673300445924252630443563143740126913894306086201289471654403747555339239254217308561627040223704457399022980235496858120326410252320384713412569416725214357925709756278439989398464194344417705704693733198190094896150382966640513429364974648976278797472517723729243140770771207529956959036764876093127150492334619688336926345934524747805054761711583071313631565159384115733807293163709702034127420254297356265417445047921723760226745956044586814924771660250714069589586636703218762242252310083079198138080368011536502779301201089942689252249581417383836494049204684541353993806957006683960431285056805893933107505922441713424600435895951714145325542501401935325736973527880909344512698916116529220878462191019763801644676124893503756776760089099918366353383658479046900774136490692939151300625576979115013925290197755021975405076211209634942663995671296747072040521563731727333326648252187430085999090289980547051852162399624276973888565468298350783935368094108084649370264314280588354859590761087117118372234930517127997259006316819334385574651879832425140140219064607878362261313773794208006466248329335683141148211272764625872042499746788402240740367574650486578501760889455936731589352500062817989935982806502917850811777785075229129787255882279498719145804553879794810014638744768995293428989083094910576570157399209142452922739265363318542819143848782629689544897522324724894909667124600694938161134312880526776038071566406961443256935062142186972005260348233589607296359307024854439124186371414899382263702008540307258568301489340778990633576348130320856023454117810003263279632242196403895810960835086770452813482979748716461983780955397049131406113868824687856578308470898601709788783221363687345323386856677202970767649739430255232331942353037078331765814118201210961112087723184710395234290321934828366896132057789117731482895645694194501360893356680803338975901154097716619311935167533222166887985070042809051117841988385443683231997747331812577705056182197538234464336719808027922053222072617723399071269507751375726694749674542273685747793448726339905274875895449218385010723008349921371599302992486867419384181981044424350626373124527204146961319766765219805466113836558673769762047150554451711095179112653544463014073598925654989591789436131187384093470311329628357823212359243799819692429729823159197869682574650216244817723569487194495587350026643711420392345607600673810681418435158309004978596770723115776273632307634407092467471351741479691821656607230583498018741711882609530485522143337647907451304661909021245741826711913857464496345917570164938671341835993419320803676783360917817014164799396588089439310526933883231090898623753476015198758082340222545893881735587276316422746039449254271975554114145293736594200269923747759795297996182764864099841483265774712003233191619678833781834955352097395613253166321359301926852090951608169247931570380648596229553504467406377522140835175861543755275378486802825845458577355476365332521277480604498822666592654884067139388580392801696099437135675011114869952856659672635800561294840994700745932973460264977557568608619236918382175643651242310616961469247555631587479208158283827255259284503238466661368332409568489163424723081234411838816711220350374859035665064117972729153996415606069113927572119998844949086916192209432560564886345860272014174459655777563612486835613430065835306289968260506699979849070414529772992872013496547876082479261873666651838214045511055361132889055790667626129156882139695772191019093913412410411949700578297431034081326446363292924619580538591486913348621832182578870131447901290014594846659334747595651631599817993168688424954028988229743438430719128417401416798358968862404046011446445647834779669961905223437583863613912475229293249093447807826895225984925952920604109366968731234559069082698194557245596488263068461085824491126302161791292322227726357136664233022401030283527931605102784710800988474084915275323488362266200367293582592746244824943134345710057636506070123547472653139443215161108127227700041994355565115667469391264999044239931060412975432819534372782638426954028507031710732779923482119100793206481516709086445706577925070369169784449034121030929799275835681530280549303617682371092550658087262925477442780406288149265949919531948522706455667162215725688631575003153296887074900763882756783793156944964123993051436597494924817087430964182210318962815913551882622724365363121339715380752212111489913027392669015750004906740603984268736738298975660065840558977959454748041127818129484900000076953870549403825957148983174562256548826955209114061487678055071690407731888223609790958963549554461538179426473007379880377850771289167304635756099907199253002711924205335668331932659369253734656346744609254516008057104370977646311382224901943377073520575656070246154598780449773990169787613298817288326476461812738113356511462383807384577916835589195809384076509604241284413774386981798007658079229046660662887457164245251581967341997373269664272295599372491491860111721903876103797903643498321569465457022970275888135771150672568414778660669835792366752594885702986904802437132690616810151513083642315288123529947424251459228765643130890837641929845784434453980040206190625213257517930849982434150055567428169948263907459636942190791805288353090120477593473940342995016673183836396204703144323722931253437286988373519898606313440244922509171601642045198790191656324523337942037080227634514848991434796586098408866560872245035273167824076022543029098374129846108037545896275115301431492405763246506908188078773316669887079863201059469998233016644564125011018349527490539575103959220243107289124241824068138915261156132799077774264412541942150412873068902586619956944203767188698191416395551727165189710518932653611304202161809387125095111598705073356031907892909398590805623797133459483144190048031391644418544336503224459727506285928572369298643946370271630968337675700434434376967153738992348545682272356645848887496957472378546570215016075774451173395017534747352484084111544352708566328202727459352476016287493374060434058478833962559009274236950620046109269693944898952754024851844441800537102670536832301454506538813118552878063779113587469226820953304742866603888723968870963275593745570122487167212837153737473100196993963714712147841138458071154090717556259432037028237179989054982632179548730320373336735267804770212724551025198138204425846134785942070808920572181969854318537128275100311939642379908262712284761370970966206477830795887169184875119962417959507175992088083704686637183649337520933668452558744208280711654810460444814150627415150329416049337303020225047321291774884691262774733334557101887121319246408125031262456572275268717792275140865353050978135121249625062739234064132530708043341631908166342821236653207705640636397322025901090360199861615850099193819925116034847483639484331164096246487227705926889653622177772238084918174368708420597888936584817098062335743110840224506086747409840586153983027184407006870585891432071193466303684124061661174916487557485779408258173757130540907080694673102956040610065228056896002754409543129237539564188241071925416763307594786627351125200842282261760675611130722322436695401345736140306696249176727085934419320188035368483508114023340418855651760012483184832740931317963391508270669853829473706831697575568852734395617231700195413362821859578313111686840382965643817223420823719544419117687894728899965043756209922614562649158401188529880885039344120188748559745598789822757851951498912555996762474795519363058752819998343025855851757848299332927058738745516321710906319679732134310552434213814876093459475636299358858976427576808352538444999852812177688788917640848619931069332521900712878958818813720919599405617594546399006027842978241840428281165181727188914568934366908341515028704826213332577257091330649733751744615367961535870443361177352153416020025468727403759235915227058910980855754198867452581182345708925504286900046574264815071716911299252100136232175335019311070772937497115497613668061217236923544032388744891598893444060397953703458776566601543650943553421787430142954820170671129020277222479781748229797929283860712499920664996995315337290568213817907550976106968243366632670019485759847328722738097602957904300961726242457571567888986543739737735068961906205424096356519434770587213821034905056415130921305608159700193735384848658493722503347947533236235508350036879386203292063314316705558248526922314829128822306105932758391553625729705972057189394423291698020722672424383687776195784131579712651480538937076942248209066650348858188424136802489739717272405032801487279951775419998767995182021620007964137637941092097446876464413648691181528022836517680310848747606525356026622102323711883234185075610104327749824692436038474644543062733375144813413545387843683427272075359812539881288199461760387281195402168421895971672642299913341964954457106364822585943845653472135618071885021752603089925997077282278989651644405019249735770365624997257666001301545530616104098895804047021463797924655607673141393141501661826602739807091650704386197059865474520066167393476881601183165933659088925589280663103555360686502518950176472529109522636242546351520884683193740337311555429583551653567958333886821940634421080307743203667665038575166557957674071831038494958305843418029995222101664341047545777138980556444816680325630142941963275107441019592742016021400609441460013395722970728647798521697461792834225537862767054752463579011795779521700050561383894978457984740833089225935989836146378956446117451618031542684189400099672698518623705392489235888665501753036065506788716479918188362505254036968301688226023164276302382084670060434934543861282980567837562854094545011338811773089085489415515954709287476447326198250519099117846033520523348554932724543875067501417976436897412672915643183781497484682269614324390279791645350205692544655793281728461497627867526357599170934848672672481117454836523609032633402588744594485507199726649815260123291333045399603703876072426853826160952573907732428364628714767342495113416486698319671383923795073653590633112557439217655538585249303499343761782984903930523846588395429326043871292295223601993164199164037432120487043655251317631062950595069268250305011886990818340809765513190056571142039170175547704466270664646212249914134314454814716385438981560455354354768567547470064323206617987462436104787946012258228092532126850484984626012925400749025794561840119630448158237569893445676942039719924909074059979461609220984050512624463360460525045742427585876182811303639168262003166314317789140515934712551193288150678503062958156038756913308076362876208212147197045546746735535554590825478528448966628038079080486731240924136241249387012789856495844389084068698820846459354139916064168249940622845576619098425324835928243481385097823337652341501169678638048846926440863413552899870886148531275415366814578896400432580881429808720611470434776049809124407809901407463361242428510752878991139145771771870272858100241330527606392610169708995211795050502950634476775842015707845623416948536090221561557739139299606768860002534716407729445310135877387372677590126700825292798571684819943170185088089700394407544821763265605689214968484901329856186028101726068426602063770711741201348273400531373146551678082257948705092217315181721803961293070965951610298821512070149874334703860212786633497364146545789023316475501838867521312928109758526573612753821397212817449989258666250753520201194224622811541264839220029138360503183251891505510950729394741971042268331160696710194960531905317529412438702098694758175087988017798101850831208156383290205428772043428976021972668551514760894197452200344361645713101202353541888035274275055720742104421608785514013539577590097754650081496544949612659471599594196977247610400853569372234051751712331021722050118246201974780200780782837043514561394953638122685096475400228910895914679907833561112854405507921982904275799393107270231822742615497138118190452152315255907992853499127365140506020843475614066859785924936334737816087991023303712585802665080416185049694552146508592501749051491151507745247398464543497555164721278595258039040791142787607891070656919041955786810324567857734529914154267067145885215135240009785357769933771125730579065201643807078433200616910736690201076509400064826539026189194867879265099156247984534987172583393391316569390667717772666987675446792198108127279544001906286304229024805095635893779148144270883586298929742485251690276835321761631646686059318825687091622648529012817179277965060609074245947071161974885041748879924794715471844065952068026359856357940164516800016527889740251699976720229349801925651075078183696416666437366257111380555621153334540027257563696672480829581286248214945360053113336992449197643363190448328643300919708327543702978310332410578033845040730672850036592691653705030100605516734350326720515518356742847166082448416640170546469266899591912478578667321093588793536982450200475506894021227179724468369524330232498985380513767077779693414777845133154396833660399020790393936992461542501849172758655168920520017873893203223540974257677326366651923276190084220417378094385903334720311695162196495760559355785835436691181183459566167533888656047426682604431699479694935510574316223743941090581360825676223364794908001549376700920225695718172910581384503853030264649371966105481780468539325971822132555979223985180805616607903103172782520476512335447039807827009934760880949107811814134639606121876561903248895911203070303171176789189580964730505437195714584948112585674407717960477541186066901108456986789498741777250667348875826733321044095721973483866675553102130312510392701310720209455272235204934850782174813389259560766195767161061797696413379704813174589133267072024327808322526807318863372575272980361061055391935388623834952921782730497735686313440286115748284623987523038790163773251949849378653596144776874758827626115221328701841936118237379123264050772491362598499479293487478804699165549613825772611123719922079155097401374272961936310037475291077341355866748371498661675350598671348320463970239604322870483144343450273120976818400183528895275836280147730328053182674509501637949418869567884059105291154077243167551651144615614092208029604254300931388303776545775937332884061863943163000529289796219896300261800269012831614655926113137013701331150880156806170256859707409208411018660410044347755439258039288724404791167747899622736143082864077233981476469873826098168486206405833128291064228835706947687333148050227838041395474699627199854836644712449503130309140272397567255304564460271899167960449726151608232414749490765483576675764957651519327232815802818616259999257478164839705831166136364269287836176185460842418485829053500609199674418278583455705012990856475168836995048863975859888144562640092658880396687887291753584022394756971475255403239162890823105632496168463199974667376652236146500297218623375675148755693982886969388992306864754539966321321759596649716617163589373343222812791753388860065532993854447856548778105110102361809206396030426605453761161237347366790961881475089178978482471869887768626819293316667408182221411895507448150161073670032418035106910487945577045258225879387910897566523368583697199265999461330438405544307157729156917569960884399486814911079062052910001109707705649062069018646200526362934016587686640325588570547478731172965783009630275124022600033404103335769120679558167270698514353587090830995349021729769968176672007709401568847247664990596489616707199365545704825702989963947372965225928966475697646670764680504579057913535466660990170643339701620315335876387042309244122833585094928941516865555360260701328835366726256059185026373926011065462229712273602326387253193592290937024610900571267199021350389870311858902197084065923281848481222140694474632039535078133762588655294242003996336257579951169051964508551038404985140499648623880353263385149883686858210367615174061080141759005632041341552638537176603561468436418361378108443787901726468886930700925141644039325018524587052566661500583673529449028911876291965590377372482837788015515881868756651603146773958967866970864927630156949376461619295136221252014900860535101062733854699438692195310123194307677892410584330752817136777147652663241467099350163114642482420674986266212521757074944644101594671412024298531129329667625986435423319312337297352334834326074302327374397445333584965183498672123692008559623179798071092444587588781461664072078991008083098169107800064708285348305968842865635837391405735296699861847565652010452912921685978328152425865608298888655711047701041753693059294056305013769867817000626994854171445649870697105150107247838033703411948358658966834018899086443531802692190464644094679723868148881724967517043075656050873145238384409996751739136012229290547086061084200418307526486831279753222569592149039613532779382513075933262244621322258272709311565603880388416901420958004178009787023185777281290462221705565306865000164063200477529287078175635255874210776551882761287605414034107491221444044026203478029109723756742614895460055688802961215383858813721776908811669472564263676204626632854485119109862815357628634317428988962446216089929033197348430182021154272664578429007610217960840750498772954397779737025939848816459196064483641078500533874993435930433831655608823013478399813795833349244171357103145321706445341740296459681316440951638560365923875725777337599440054501403681801662215451835073249953586528637872795171892510356811051981684730586362894962674552897965148685405821607155687672878671238811550626476430570130330297964711273356867779932437601012804234455040834000460281959559349833929457195475475766314834731225348898017286455448377034864754423301534220318512612951693667416354316189519312236862335972810305296583102838924202356709286155921482847282069878048305383073519879455728935807246803133116483231275974997248610173981407654771136979519776344386194130270438475044728849498725454227965808014227931392006505714626952853701961782521111618458528330418504686450238853402846449212340503300077755425060638232907045641886637111920141390792126533632019721473837838295320596875117438230474216185367218766914333292204682520093290867885225767311608481867596891903786197347899082792804516937000697795376849906821922385105406633302043102335496189440134206883611315162752958372491310196217294996629230750351928695609187342721844023725750901242239258606623954288974909053839425201213533786241734099482946267514887044162508561222986791466713067410781280971718993994469693412928268188217011917921733966507337560852737637812693852069061947476270775564472459271567143785553254373265619263123172689857829697600144175146148274521424444846065996485122848602675203321447976350556878896821925432538393946737622333348238519768510325924968078365233660925488688919989714448233588022174007848911791757159743726495749577945503129272830258002367577373478278218128268809452263609879224080007420423901189718526501972674087523282766709938557577195643472696503389887348459338247849175652232803096622557142950101435191692608442785302401580532669169352873436914711782322988364334429486823270232716726338135854030322595134156894229919262533404656668921695759392050589076047704108435511444118391236996393223274542906440688265360272562915504864251196530836103317981252984410100980376103964338492991841709666573835640825239179282337979439131358514435196712033821137851019792206694893178889538453051779722873889324820701424459859428247637167384470654416586299254950046205362993979734673519663584578246883942269525877920207453579859978055422538643099277809025490748704990695162259034491170318078855612487524038565691347783395529347643264605408842748468196292841435941242966655144556657798370279360550465619073248284977626268208979027558105937292188243306028326134786068726106507225878394933961750018993060727487047538314690386903968152382452781267084255683091808139519758331742526113513933959313385104586401005208888757688034613427364574880285118127209455210304270084343148854715280636773337615475990286465593883479597216526711075773425400549895722764208840824636567967363217980459641891407081134596984528928025706682836437544044358584431055578482754883372095665953555909020247169312247027950229860283110036493649740144449922999810795484818531834218106678651953552635908367088207102898284460169794394201504201932134201949472791760186156727068468016981723076564499761697104587491451376130706544358371227386553382968125095567482211498350222717517295584860566942974427912575857672093549432697796223579817795319956669531285065520121096258287917607731714091660245268632761113917815918403503619785285853800467224923941110060818386160975270164435288869457742236563322620661970257022320118395163426819157633202855646608209994951050517997418983812129191204227762876663259930298950101520285156978199112560825473491771941072908769099524991422519654724332829126664917993956778191899581625476279006891656397240692573791333626692316890748824291471361136274115839129722752744098493414953150211262216659135697720960945675448172230522419525702229381912607137865018134860507620301946082253066357204788387642035207173635764753553848211297967935112685049673152791415794494300163743039387942982222878309178592715592995940553765528880548266760788180854461189097292329678096226972568965676751527146796715527172078900670823694824932722533430651882489994099248894231031241580965564926029350632346723807089320421165404514293967421139056324032910963095807078914904151289553190037735192593647563652258013530090216729516541484082210071336485026211121755327125499865921150092445251846215238082392783793735803154963737727546580920113329322754818098377889355230703121915626385977885027496792437250301449416479633040056983581001267716464522990608956189566253463787947815412436569831254019930175666484846041295707427305439226396299772029768571735314733368246866022323122513989465308172552549587785017439527010404566192272010350578795813805823763070005709561641514449641817896718929433057774278242130151937355817977736668364330296605161527820670323137409789040234505731787123158245694268163386678985722956624468274367915720657514750416498531522803513486293903401363125912070805276264080354818804287867777584021438850038454342712503754479094740191216143428569264554008692775960636333711896201889468243756666439274303592617464167898702548678767834900405135190766911342580579605630821877333292968425634875839000069686410264489510270537460091840058698485938398769738955321849590437541990382077002286268712476915186107249016099940104709581849518246236896993225349460562029837024963122122520226695446367757442321783016750040893571866953098873973074045368370633084770981167101475743065955341948683620739151802093554043227316748313689296134090762114031120085503132420868346603292135518021008786432110410328448551502004638778965100416767632466780019074391700887051702663845047177779089052409473029238914712517719425480335381603609554620428932280230892716714412560334466588228311438303952737729780456646288471584385516886941850864004039982083515869590105054991415618078098996880487264853131634846934586891016950206809395536398114963522640728865776215995547029681078903567337385367916594631930156515594506346196499433953519260427906155770637834867478317055921086166084230745771401757460727001633654598450140389746961957643418954853775995603863074913908752586702669934928775038299049571464120470640229808585140925099592615928459733038271139501065518334150342979979753134959093131015385037105283421546805867254955996374112569561977948028261289210494029599102927540464917421189709252391858835863677869333620322443022456222831279441561050864635130021813881200986434008146271262245568064328950666242395513971872216592709362899206970288261352918513552023464571355346804589996295782082318529129347614645094204990785888717034452792918028106360209407392304993684246771482918793372274093942705736619132803232862630341861172705287223266028392724932596818936736198821539820682122357971550840156011493692125511069513057109570920239378508843218054570980310563726716369486363637927536530162853121251264083892303788630023331404904717606544912412856962545409885864645315612369748200637036238091300872250199984941503542919279497100295074843794413821986462301258450361612821268987289224441205996036175594658063580266341928467910890772752754527843832810053565558065913296589575669401988749268533905503617507442310600361888156744737391204232218521067520449308891553982955589705531633921812894657776584679736381128802942524223732937406853180290219106871587542741854540331600316005216301329015307535857902154849611022865567760023849225951612464034465155727667723477718829895425194166579090586893539715644030531315013973291762056843240410801837014975814506408743768230752525922321645736803964540417552637958878644814207098850313787300064255654043458260658244960565711143032639970849579169767593092985104025449144843775807772946464652937744917145631953304193536384653675053052381074510296815270612729432200279554904813867206722779543171328024309798942828708895067946885019802220534369520217146246964049703691664758030575116880032104884511152756374046494651980389008289116428789527431376869379550972225566909005675700193016831685494642575167012599236469805245050752404635197439843834628466602302146328521894875024832924771609339465869009965157179633212968597890404202998176499035161919382622699922087498976564332510539887907778998681552325539249536591213975225271798678003318430647543466790261693849322055410065915238314872650374809338143853074898825125805152203827993537169226944249129714690251480648163862793919483936658592964524425406595159852564655832047970525414891813128600802023586577458943418941784307021085685494169164610011055462815725009895028085547089808560234268204339369230954247553221921803892260713679356468665934209271631794075049433550360407945171711962717660886426377513448911352683308416491664391151962209751283722104168173419388702455501103762830507774820230081478111542352206550932507593153861460233058857623886707000437046188082564015468861235149136660268844144008698608637075191378742256746439498868745689937298620249942310905266618837363294043842278786255790837885373360591297845895145936984541830157615562210193779279432620167777496420319001503263487022510324703836778592899827344129325522113127316493455297842288646774144820067109527496714792127232400079934957125792144893010398000404488034072157233420800532618224719850855899654987914114264872594521563276031610467822422176732915205658766358076052991187497508350261834764170236435494209652501129228041234495853409243908307668938973528774817346483683330224047076435397489153801447401812543438121339004143304996577048842941845060132619380824671832673275790538146823205143851188020533006130979563362608613983740355580692126912649470935811542497592903440033427310497499276885137223070690945460901210666313202949491148216994940461581851699589154976903893629679237807069446380316980545906070279270327929167139053331660065612180746177662392811024145368639618264156736279772105321845261757617295436703301919351498732025288521394343680895652213442370621546743492066792272000100805514130447568600289520474981535197256418724649418450433875940499737793157317154213658969491875532287815961320310976432716214022483649249690995640173091294259708846098199591887312185113815455374946220075773421981763466425056722966110020312025614161166056409578913618635594769064632780844373913608161848844627295289593725409565146417831528259600588872024124480477255596296663976836504462798322751680742778448133893560427964093702553667079372970748488760081730465151552092457180228584469249898263265433355909490601495173192098095142913662077765545667122993797154935407625373235505142258623663092255684012285053529915046438153175212935129134845428884762755177250018692509208762701875166113739577043400610331427786053285958554762464970677368280859874489760593461077458361758353068390837121705827001205509655537376860521569298426369483775685534802012916384147549978644531518842752677353962886334422224772669323391024221677263712335335544369762154283954255775555101772725207468770778065569508926493996112290559366057272800849462532105650438233753606616664442045526988801544366759000050772785916707514158745983552856514275514050602231283254307885288274848189918067693055543166624941303544403908468817986963486920008363554315628640318073676110030736938347081625685126318163747992757548098416190678061665758619101844398855608146975096654936820634430752236243861574260146580968932254614060864818675960106489351855954410850553923585067209833565122661903868193211878990302911394975043477372175113059701240227007337331044290241123100055849247170248812838083823204249069316865538638231677902359518654654789371365285142159493627077540437250000762757979063980100113138741901740078713039132133326249760499555820213274406067181122193304445127877946773829537048276092351333828638520496954067123309056793182615164511590783772744666132498631981142179329737765034760534132864691425093793530587216567430402028349765269223101490504373714325476199178111539469594661101242747470930307021363778732314436962992932224027500765571207225237861240768210356684795677632983035377405126573012354310870884456951387279435963487732747157384083425929884989210860832127436685493314624184905157125306589057626723986935667440858163950134025187356529695743047414474222542361029574993391516724806524087111069887662536405190073275124219936884605764769326370052627392162077239801428029132922371302786424502242680027911933408081016749280520862072803427471566396579251078640258606906452838216931461557035537935402853095869869346896177868648179960378140846011020769933502053346963884301285359698522214580542325883345150946907873466824289017383328375565485838386911069109690483086721483299606899091229194431205266815800800521743373084971822209974729435839445040181333643734505228708343056908773302093257480966158016377891996625771027611834970292780699029756303590437491463164449461844274416105019500900695402506092248691633797379962490184080103101477846926377795948504342334150960443385566316843660363853471036000029579586766971550882544054394150856676479543634393383189311857252435792059710805124982657470084633466747499910437812046476467874508312834507909749434034804344948778346285598018904190213576558674556844912761690272958943080181940981117509484887821681508262045175370864728714712885528102203926187645011866923189702400178808469718918931805182109287690104146367343460839078402873914082054280866069598888769789434374517551605178676849421384403320773805181525170331755866287482258866146130235334509715110159299719199866393245649223281737063820671041464976062237139864370896278464961681459920924584379888868567894372011975218987469468335070480732446757586584117605896396763353290714355688363443988936840057578059746817526379829376001583087804457522752110021054003750625209156794852667917251515765658420369706838811477327527752518933522761671012171931310476685519365252277365212383667077522564052921438308831681104005824998383015615664096307847696771499217371540884983329159412954729423415833205881610402723876089335412857346955934660289485889772314627765246339756704958497933534036647747305499021377638820178298692411725516987986969744470363515679915433197891297869802515522131672500761572354365301904003756276837705106527687949952593301194751597674474110030881416652639587484022262874941064943052707389116236160073860502678608543347279054461022751414963558774931417299033958954765732715820492484176252519670206075058716977193527239639100763288134239085239533971165110248326055352098662915075700434312282603847683559469295126130839748382253916341858464590258588058093819088093517240109267108267274609463668393320441877244784820438071725862210233781301499733810350420942711593740337154484113698195760200350017106007878085566217839389786864382938303930738468000631932616694973602877859787121751889045039869510070053149569724457354760558982402058251115032166906910251189020517348309594152622623090247015689660316705175137651705739428372389640931256957051231120485552212848930478591463361676144183033795825097231517223544681550979176149353052836426592558550073462145605363263895431419114229038603930482589067348985600788169487479679426545849740879561078667936314586928569910714608568404291424762494703530008693512910933066905546020766779968421565402293060958163568112065522398548324379274779114505351462517415524259758189325982654449763977442868914503996765954426094234369951564349421034961739610011706766224552389070342703936727859229470912768106492389941056517588385928222783859590762718239186927487772130156181007785612522364956208780177036459726674041204921692056725776963870961763918262710596251143659180930077070631856383548829123190464733259758392127752708766174617520175248134687794296883567451625871369138618248882686749942110575866308478962553202029852791888556870580089997845736488693408217705672650001383885832175552548617223903871327323025603535114549620022456456170028334455674514473277954584215424570634894065946066631549698569166908502224198233066244738048862726474013716164077734952342669843784927690365190534368839678126658069143007983580328764522686440003060890983337271353679293471403107969989181626528422945682695849109374987557234928140178484164018497227134306366989288588647575564034637459357880511699203966027671064097552593473701654957206522362776441814122873661604208427206404287246143394432001729067705659145790382121880425665720507853836803610995129232408031034450609096615478978804775998896606009485620006588954080403661862149984852945405081637007336667861358622357351933728288781978939375587196873184855408285568086647492806486379229379590360102433704268445597650901529587740220980720659344069716188600823476989478629034175837524226079621706957643241780485819718228917558050453386613392624837651094091684649548525875366141344535098721520132571941087819951403491736412491895343391620549967997875443447565659060646690087063893589721338798207542826569701344934181043311203969702145756666265231649477109533756139138151536554343900359189527537016736866623480396887701628060137829628435491629259269924161461198435980994850537159873436205829688446103981567703580421329318059740111016115123167060460922318350294094347052514963187473733248803012135015326314972673611870855473331012418891007057290399318242688091052676134284159507927517845104889127742764867714239682347417442611580397270839113496015272954947197699388956963069936845637406701832108733838783987068226779583481703211311345652665381189188423305933097016283993157393827282559727884855342020228557386296819566711256170669680313028391207445271532931806292256034470157712636184183491930769381910076398478908335967657867900937273473560630618822513304239790436915808019186836971971427720637794103024768448235229486223489170990723708040049304080690571714584894465894256544328510826062957223178854727048468413426859805131637630890079634034250912739801858333153123126882114778111897133545456093360873629665136150750572884636671930015044471519942791375154181260105966638362457864784769055242661546517433887989570964173778210264022156575880610382965112331084943041506026444705119696886370340590539555714894807876894725631947593623792523567828466366778481731552740053191404343205757327408499456771894836732176436140414579892324106629322689436712555283050584691305787706262231403858639224600215428650941796904122844494567670580721323012652099212271929394890329242543412914845307237090806797319512369183420335805583969450601861389172172332713505041434947882181508104032172225518369732186547473972402449258497080284921384913795689088512996447655489573056332252988961675146866392649419740959605513789013657335877597646294065938630441552593977569131242698236736427507742504984417312305003464927315918944113340344327997332222624837786665589241869580142251099601059237913240413675679656327953176534708102473231197595963384047411684417222566748549755732371409824376046803199095445280289118010468739173395248244378072416907830115405042063866812041488120467529473755560928091660041120054177004862758701377652062764954406402780187486330589910024795767446566679799100943268656353764131230499511268116613972678010069833240763103655262353492201709595967378268641123132439017517989480154154772688544572679151242839145254326404916156190905875275901499921463550840634764965999642862483743019536190786061516051318561196697288220908720571369714135696868952014193229967642161768122417932415983161467423494119567343608348182051390849985735759395131932007057457102633663052847063349084469244395842259643202940626319351433324106940700521102328079788808529470756596871453616579792180055985593194613035572386580351412214177593591656587743151464511828413446031814764300295436156284242370601130573964122786589747067354202917273406381252994362830648658803485050780742756941815678219309463114834735943533645878747183618020811971711444104592074951840892426000850030638035669362680370733520948173000176138943058623837366488527205648332906550633829535795393029612420697233613263576886401969419190767379933224531419207623833297607501618007677246620060417419994387436782123046221712942025136261383357537097970221040209508267766270349354792951787631608094747572500248456017838572246325613023249716960668544383743828200396612695646861818693334406771682824859813845380650665579809521166132179273119979888293947277193488530208460435401742361064339889580582642293881680648220858088485221293867440451758850873807874249350040548066295795698054266105503814234712870237718980943737539529499564496815735703854909610090417027324863401375556928689373177476527752141644153515465644027560703185777714658969060265430323861010146396571054706483069721736275753665931097827565801363845877928389031144375254546215854235450378549953498101550221793883666965304524120953567153109268844111383570461185478952438389060948374515963054817439889921626998983190155560977120517708819990416034184825125828317739737289854478853046429841491484930669369654414279569403434671733411654381553565309523292114249804184912999127964958152926622295119186345060938369202908557779697751553866369680813146842979975369711100703855882107493537129202816078981308871773850860684453839275089165909643076053414196821716438119620960586113297821187557964005074565634491428946965240031304657973992028669907082020053879837424159984493978307951592898161893131774135203948486467126176322021411350550245099589253861480085005012491628690427472104343261640541685978450377454109647801529176820479904641523373292145173938643373690399158076271639174646171314048456149948725829063712765764062099239723014563818031564421365528513292094782271012112320090283810259979124315283652148141096084135062241153464306083772615277196506666254842738674134799575540547821895424029792556305993542154902123855732281900756227206570677353990894985592923750434883075600803106508410430822595156640960506670688691464606175104725198625065809181539131425014332794804887853282496901313830757187608641026333112078862256481205180227570157823361629338175699965055336408386481017687372501737293826225059896835746844162224421173929912520008279644214505393210212584323438728813861195622084920017039389202103399358732900366363931035705789320822312116776111271911245745423013955502078576833890545456234539622768960584206834150688497600264756075997602001711438545404487862150386792495311073133698742295794037268319513603060314405923585098142004457983313422063576234832472638047796680954748990780806322177295630516083203387367254226677287094600735668038244339614295676728721921244455251098555353729375546299122030679080795321661313186931714533445209990247516133930667649554263054450439283577783328095086408420062863371257478427853872997689443405580373630108240788212413801529367756729442587946246619083969180322860416240002218120670323487300501180355166667250817355007179472494867083239527217911024273411423724242171272227404848050691259770375687146317528725687686556667280546630073177365898783742341367751446884574248446811860246199140687615877274111005423508701894267250990068895261665818684110939699380910618767537024513747890058776500364225014019553399013443248631554416307108910524561910497237313117711083635185838558692595641783783147832015838379013022997269277784385371568700085238801674415948995151461618891828839547705826376283452355059832134290209015494718223213264352196240155655223938759974891873011184828685661691868704323557467545371021625124901344372289363910351681692853113458275204321477141649764054023563088129906158875247907118401944135294351317301384069056962728579077219779177346443690261452638944977205394316701039207894002928944046101163321420639043616994906977278760477600362638409542662808422664309248898829493885981726124026446567437761326180579412573097906960144336312669384771010812217775853153850526659596100292876268882725646072615460827542736453773160346034320581209020333999135813701430023968356853055963891548155417416061172524997341559300156994232890178941804587096125961072176212528705023596484989285715714587406272150463361159896268198798051531761520570157486594153454678979290421982253335029547130396438487978640982160105820233502346249089352279332363207816172487993957477401394928938427349965676002161932541219943752900478907190747448935256457315154604947692744649565420332077035823181328781293492924862076578146839922625633224305431745124431085020342079174841439681278029910817788755070727566801328612747628593255160249878113168689012438797927683555707850681768762079889721940596053046669031180323041035002487493364064624447151129397542676005790179756545586130584921125671698163626503406969306230789683338076602983582265243603081997973751474632535084611351644369082705597789170119648024796265019493815118609966914139255994788450583814766703990597754889083611187564593992066978683130148559500557808934592317931507378310295348953603918649933540169126811197450830150324783654758099784846539063713617744366863759446971600991508804004645637802351096453550445753560493565054565515200016252381163275073204899032201843018812266691381042294563297397505110975813631428078405194184248386261800829565982977837973377943791567987681024758860599730764842886576952290575349710953203672756502884306673811004720796308750448162698100745904651806380946738144295817013834237790033199213861980362768951756015106163928464910099538771719523044812600468051270582907201201497425946608466538998593943993802620771088527113422039082184128115576337458263937625888280203522358939338610317097298433998085780598096253372100336464042368385757205561195846608545580330449950771134154490445385068168167401527835297803759552944286699096413500455585111874036205887715058798609615295503216352453811585383147961278278062737858379252100551573396818621038795525054822104073853783512840435733549936168889127666077297070130181968597079886880762240249420338281673487075634842629180804415376886328456376955933980655353891563348414636956877398106866486256429928573316490359030378470193949456459493862980068328154223451400994478761491233220386506827632924916605792840898967890585730583134700492444653279489703061591721423836673273334830463929898339025974130444611704196880169212708916855239229001723929653304909998265484975553957517382151467120270350929434024587653663192936243588103304022256668250510170113423183719786494041094945993219608521358619284102083671499084805695603295675053831781793186916143058481108385684476887319720413246962716832611088433533369749704747599107779408087816477865031700729924783904282618123850457690395268052436818744809947447170156368185312113970086680248243434465347199877996039236240361891004637218685318527597410079375107008401433715200170890190239991385915698030028917246411199739395855942614123725875398233700469957156610402099434673962399538905528787587966583192582763607607671277459053933868241863762724205365878191394884671867291559770007545112117031722873359813965773467845898080542908879095000439728411054837436304007221759676494990669090014281389584453201721323829767626063833919459558772767073694000935908310478611574001321182093069961368295836425780846604189953151343895910579890271727573578502638012452894282967495103894993615932574125538687848356292404066181378425170331458418712279292657212126267476312054791127255617374799122775738465806697229408834221471020630232996321344779528792229682169714458831299242043104648404805088368410273658743141220275622402690440013034423987759319892218202257683798410704849341065820775047161313441845760016397618962508923072885278164903597468954814780503945640243643110842519340475265042162285099277114675655206802222849281032822595184179369467030559129989278079132860414529889052944727516518634158383989480564028459667979292371063543044448530843879246956336336775536059860741761710653525080180488958097210624419881407313627571762927402020834281654424643168500889336541122724626664239084984020870427141474047691377454323776071291799212299765394520239675706583944121882222781649668655971833956302745598620693081005976655065583280145963039825988564562496776239732700670871580167798251238406068749154431339564251786691137550470357753172171209543132036923480702599720265493469565910001928436277938805215396194956018046770425551820331452470568470810517285639777792705734244901439497217055902718820101695479545655676373059847417884180425379451314521221581355230012430511089983462305301071564229689999440013032758373830289070337719261610335111806199685948079251147502521117972999397602549487878733250316009466561981121254300169411456375139131795311675533577380498162742394954227448133764965705996078263977922598680689927617880336523049155044230666862659247897150200281848739062090065718461087638721605244755134995724130309400907227825938761442279156034834425632750733466942543091884195074003575027264338363796925023922799614311026369687545620682955523550116150197356830991413273346307024278608136230527800751957073679875436907274909438228372878836986757208075375225971790401761681537977866194757815487693955127127075568886098494823534322005133177139214387536892581284993244430056127686744629848315810985770412326813734103494348420708511394647697491210380249942834288500493394935043098609432933801733804348618214252048704820673342754017960818169103751104955711834494244088738795425736264427439148461286384746916740490782983289877985550819491188791394991210873177414407619409507310663635231220012585420135147541113377238009949079526292787251641244512004796112604197221439925714736987104946113738525610131531126058677165340590976373076614168239541976571618694728910770548791700317752037495136111426299364522550950860005676439573804554565803128147804949256509998007078671687953980627726663589034652446958831125480965450255017915072505870121902580842291191486652315953345741406215127050203397811846606536622666350609102215062945616771271284878118245794047090816877177537119135471087981073505158836423364269973532125602383894853714523625333559639072526825564210682166911166812831197535227753529119930476837288774341842196338836006972971500622337158411051318917674195659449194539890514212624571028523525537201376680382834191314736432321743066259954943425750139773828249676488195819136360681364064192799620512704392536768982806360495270169132960095001748730201805076011479721602829355327562876802883882820615077031654306333332440144286103839815205788899521450800349258320184814034533031608375370506301389541804415267725089629384173431040467699939325015254469380783983616203620585931010994916469794337071521973869103997660585767604033753546710932040529769864432665283015562917243502733292416785492218684833267027990325202543461157588544888289709554267047803435784781453713481444142338698627550529896088207102125915653159703139262968355129275956962850504817636635177146160277150141749328300646675195233267671030153184001297695058987130660407669169436356035266969916686855265379433349392032957167828141128268527363974829066861487155614052693397810942093203500178237863624589548589194406669829102232120072454739201581390092373614717679756473215436758770597550218753851514772383353859233189381242856383750525228872069839245243070435623017104166853619597923963954742076549703737593275859730052427582668300867451884535239246881359839705221590145185172558562470823233783275236759286521134319818400733299945272050606588215484510502186310729505843258964246682664427536477554186809348612567696113306319317517660767289054257615172613116844228068996372638974426403032633608262453579588095274944330930661766927232828178270209868471351851827476593152901491372768343510707856632966676014167088158761370994081725251710246371513147223074581284082965514729855846632315808619537873912568353284818530789211403618781225973351419429413645425086418649215253463286297297993993708296830802435929438748669399842727964833215223306122693491062306579768444932823841730129288777215234119559363968356943090167076616164052557661912941476971892610143975659864578464925510737009114150400795662387022508165028871600500993679843188279312579529754626067914074567174699796348700293566344264440504837419136541684785803547651972554639055390505328133093408117998991627404867371484233143402013230840779021933794946452167150693028867368319159065568234828494330410823811885956221449504588790264080935077800932996423541318426261618336670809240755435642956289656250674661393654429617997241281768298661585411268818866872763012738669539799500621626362479683343692972009249007196589609030715013792138270659333203396531566584119547052505415042361308747280288015754243119558079764320201504979197477905929382596306008961592228070297205850784056487132485386338808332917447842426041619658558198930311200099188714705064726064013267809117707191109453914026079950644379896944351520925847994021253200310636762837731661235335090676531318929079322620749821338219092588306800818795996033278285669173557993209950932945230729245282997965198003286406806731087514561879262943907104038300908997205842300629263089617147637753811198021706244922401518855262973832953472592562036223693670627821037585964412368970928073427471301044993692731647706496955539612334899779329212410009468500043057630947370858985048776676660124939348359155112938921644484021370484103365867246012260208268703737708527917028782431849050105474503259938988936346687696381483079036211986667043353088381600931192160399266108547547413576590570290493812901760644169697224054761177527029187630336617682282383511304830615446016698996849092015530226781288540687565768541788544989593257686579701768611350729645484093860193490436635732358632080819123132880973470565249542964961023084377040671118069704119602935374413610441033846770504038749390341340585966700999666645442801679985294510134259924886250841091096630581665308817810826485733777879054641030737643235549310887988795355846037100027861219292706296890952662792985424422315764568694439101180797952449735667825669896820670843052879848149386399485868814181039145464471628223485123192540903630421168479084084985177179684850359960807899389560574822366020837490300333512265461707113337580121824794800259128618335166233021193087810479172164414018372876722218184925463152244632638836106841130488934802761778653256749575204394426962261070093063269377518916866716401678971027694247353908217479011916655510864461856020399843889623911029236573017768626001483702095122423167753773092732543550617124887492592206127116914766924743999392909270309776434534422116012660297494288943957437246170779306018056821154648734465972035885366090560034817441306744588257454201229092360910965474849943039057621753392978498432637011585968321282285583105944624011488289767588180431745869786743805730142591736092105466422461275747540747746043848308288611555280604814892516776395412030689053232697112192466721485737037119559323650806975009117712829434601394023292744242709610159474398738993513031465157150359297012447588275596373042879069587151035282236486912271127884050025283651467679132773457691262393555847349631191418537409282883173427321987897246269294204675815794235719793951725864597666562798574625375247776837144185555680592432626340810261877318276932729283845508163513560702281800282591798616168855197907001848811848924805261378568827684004409586437180480184603886450291467273024464747547161038884956994928327640709568462797753027076447247442708821260535050232508722005766214704497836235668523346412449616718687882555665418857305310433282900515408556607470283664885468662585301988500457411308543277552082871973882816782000465333449843493853245737678528878000209974612677068222320864479643329224335858283176346152704057815063704521551080367491446411279025558538592235568597210851179337316744835495479027504276865839618938813974842314455955235697953961292510307845853300715168888776962155072547233082901838622611611986258367825500273375804219427316759430970689973741124733143460862321110158443051222607207054784010701033033981688815616625735335815743421519820463822473500989129532487604898299010689308618773197817837847758747405826577555314287689773949699451802054268491542221269378010673657740173271308581043551423032141605335802821215824376329664648528856796235042183191042927456343882724078152250425318126434580236681861058006018379438237353884844513436899594039419487116924316479394600379139870959420319177528632594960911037890855485685392079289914199676234086848675287784909523140460574757842795033319668644094842076823192682519242379663796480286153999585217892997764853855970400399978396252143869038373763988961985258916292866123408972353145556880190007050419204832469618911155301379814695200564980371647176391520957843508703033139708956661700098600676643295457248210594857657196247666176779886041627350231013389511971085173081241601682790758049212506437024619448480402607765783545187350360553043079073301727287204373222228518991877358835544318639126365292169762089144148531506277478623403181195722809276425406332351014552555000489180076511504572179812571170508755543925669907433758786776889195398465295136777381309324085569157028676854977950066637870550376516234703949155381418221035055960927883147703822565056296262357864010561606371117185574337025321222403316885367408142347211034087697404310790184343812288467762651550236222581177495672006789836966633729138019816677308370605859416075866481234517270589734298336264937024353025069993617019554129435338372959838810995169486845864469812238331651929361849156429634803106843704059270574084398521680533534270388997782851789929148906341780481473805275660854145829215040711377706153714904359455612242494682280055454593460510188328018513269483570271798858852273123625780396293970406026108026119071912129707775464194285721752111092815158108013425342419620006851518150829474159005163997277048827890751903854620734868602652173546319817233545051144015696308474782454881946553423848550607588756014453203394354805092735509033673745617373131901081564772081425158626842186563109916281820706752698909250126073574474572309629196257464077580620199226763497103738956430752128498894012375702671013236856944514120641430904731904973038781541750273578030484926311773326360806304448250060688098466866949095402662469751537421558456929128670757538285614388054712754195661406546205842614491576582523289095765358312737068362989473068067335849460288931329702141043010981058617703314992856047282857123848893320271028332587927691303668686287414922725477299931033495802626499117266154233764707711337059469791530368160510311245662501337650379166394808708795771438369020445517086844619979645512549217202550375067821345628750450849940498925962333328393507572810059918249177478936214855514191256302220287849827961021467271865717995292348938065403431199748833817550047041149961028460051223666632668180621842451056616548375721982502257355456925255528013308781716505315337858433914286737352663886801903379816815642843503681893249117727473482965629613265577312512324987432392063958031735041079903176345983974900483316212504580016824272173700387844338059925061506579461128667869451935492465229824368885513037457699967725351205909612972097768266954961395257664268457880722330152222493803180182706373173992300336680527884212925289463104052217108129450576577974549346338732778845022699322676629081246082244982255016390972567556825656408154558697922215210942610071198431241729377279346324080885754317066243908180999012902247690489442319959345038282136288357482335194873653742442964175504804149235453538492098221507475819136920820650902957257896657351122839334902115149038675174929009872241679690648122190840411549578561560088114618303089223874271006824842482460108739979686867345408009580396125317563638188104461924968818638867368236771253039557576595247425367251789666180399209993699564182255424993401157853563288055893451581664899223408752628613588919862047876337797840408335691930791770852760787140851452172137895979368236488898657296439217541451751065651723655803866684261499528177114630261046971377068867823812069533996034980479946228380385128784583499463759339379937570927099691557816044230598295652863987637938293355616791612965170670456863502250763609447317573943985185246285311700541027392771175458252781605313388786154194533839431356630416253302188514136347357018769355325673583708011663055686658287382117653792421125856529926940448604590906552688873269157273552103246590945205931004136605876413487178170161220609512225004889226204917556371516596142593399536833268461050078324339006004912266867041679132543971838886208623612837069943812598270301591721504246072218838147851750556678058322358331019839428851167788186386136258901425615698258700109117102432100148568843649982216247291906848633555743382938122618731712136197464714052749275071051788489320623347562312190902708458878635844355396160584548695228757377461659842780764215634657872816489978681714735931737161393152223720913825861710667162497187959469534557065508381695535380277150193142121377937191864377155188557571880714637700603194300169019281272171061701518266852533387960710285494259080751779502620268430227182627503712980732750477937564013757687908001652719610347283390259734399213886489243879427038235690383151210930591388925595035154759508284999262433457183865449885533826561236376746388110850859655559617087795184217013968684385569687116275075016273135184712135804111830151731000783788746142863330991168060780615467544616606547243251438065850833703583324687325850309153740979057502318285297528152397128533964711685880318339134882597305510274414067030688749907150764771827252643371276466253640253079975911588103914451037791041763754628923593725656460957040400772606153619153782952778895544322615529202279806374226333386368175901700896034803827746976502538361298181003444386847806526934055170447596774654890593548668925323094157747576162397722733478463727910985260615371580661322182753652183232220240113939520185403758574524449932433635266448921254102186495491464600510006349106922493900284529069815776730140625205751178217618021581562394260408302112286295260617185074951832778393334553724118241304667831372584184725973533806671389475052595548874455982171676761513236699026442966599614437523734578636101518356529314157129487105503673548139195728888216108872377417503830957073381218606327793998076411685378010999863189567673509006063396364121687665581222842794761318717525400382991122166741745156543470270680874973572821745701313940128414672069995286821137773540079058579574115860597856013852746880527149780247782832984788899743816275612249583747831529634334200198564126482440714925339759015084972121689528744388736184035708806071671859987473980288048343910565456683052461543820280742763922273446489616034288391496281603543238435960257271753323105091306834473106143662397082443678655253156058606789411029704620224737975642358870414047251753563305635261540008104716465530413327895995281935817742093124605064761629865720712551465486427207339117824657706284313121146583981462820836203771827794659231088658654940985178031233722643570846719671236888871335481080369323487520957375817174461560856875259753904375182839385958205363431836774989939055904195209984392412636541847505119860972073573727644346482011638897329322687061951390525762395235753230483776790571449357505693407022212153852376494782798777814185539419204906522784392413395931150306456731358965645074693153101405213127382629981272424166132253136530293948230412527140179851287117470584059189166723166177185672065027664461938096285778037104391043361609117015077080188832922429873969357497415963756774455340974349591392122135326252648182530537146389638996178851468968153221007770580351349091986304528140453678085577661013934493880923903418716241171970731322843390721729311596045698521687290792622429059557183036457923886010463752057717876168941649338273348906828796377799762111618639434328734657719019999213368716164852042518079117638101034483983272146503316138500610626342250896199269583661696054343020048667585203728419292049733881112905570232871995340336693826838724259759322380921732442324897496930103135254810005456464319338239688750799266650101474373166441629796603543736759003255890609361768861149641521509833383625418752064705529383413499252285346550617769354888755739794771314440135890466857196042497311794881163853453987729739074044758397421531539531643057366376258420758675789995731968631252966809515517528213688722860413746367514830019654465065589760639857695451100920119528541069860278537873973079002625155254194222650659680816809763855852844876145282760740933173416134512427810508738034345478813913277063488683762528651035370678732298700651034734180347617079474711143075504304855711292430531269364220217721493741674199887257290202451973045536942563337140187478399672382649766152503537845564114334590377888217866400839475797423624774578622216856034608889615210956032139122932457450107315732075765258981281143338505207225648138629196534353903721298546179949718863135483209868526260687706216740287377579183714687965695975716585813964203875555996371511637906972538897276657198985172844748523838730094324962994750624533522674991282963627727519639408831100752650437550914351641109898008594182091033819205149766997660149404167601967688760615081869789414506569135003801369330361724888237965854327752507528541530084790407037450216112213678560588091548894841736666866426452045284126408842351661109540349561635690506798646156958371866938171495940681655188774990535832999586618218348332597596940258394929175952374117499122374868090521961644132035572958761345711379815032975502337123634468581039425252309441161114110698122177373918061960921099486767602830597441685495311874621044614340954906996120944886661409789804340170886154099752723952053008999746811959723647159922262681164143974358974118175021830459883429808822570300063767382207362599285722000548318790702627394850252296801534288932680160391752160353610427420519747446270117587950159947374831998894615319106164162752767841236393196945454716272264385031799267790391359260214681874330553612188160157987604315527814404542426452073047811515972522999171113837069947829797071958464589277735316059744323130392854441188308866191158566940157023084629711424741455109902159860138874518067791911402331639723645421841175601884483801576571761839615507461183097880080339963451317965662608732354397956115041377805069782922398921700716245162168126212943024430277917859800985582287224703371418589024296249656119081105399202291757653979308130094305425322540719285988440994151611497919150170834273250957626192532069425108304528633747161178041861228178727918334890966336572825946158129066175160488800908435159746696985988282930443068605413948032186413379902532303865595026006663515254220576569293436974042345120517000381048305081727229576184731732968513380709933919487569317621598145782218639096740241279761091979407456266736719157794407988566207699422246092847634571615265606333603156017613786716843345572503289819941172338674842505740196661060991973743812135357580586528905138365323814159734890717599695701740614583259837727817732291410788695719110159531133715728425439055107856980820905961934243108685558408793206365178126525707872062414793318073742931910261397812913200875590296851342133939895220048019735009719665427588283139686015185656706520533343893557714336800591032260818030681974448851700886781146977392359599671817721839347017525917433829948008497831104695473483396315122931326108613382682293772950020296741219092786643503821999011065521986571495535093375876151576268592157441325259539409798302004764299378416273067375350342408860323588680909072963306221478990583355746326213586942217451722390291274491056965919192641081236179053368177198698443663207532416822944800363496130636068655521613216598454545554246266433040062529686416864399420936207523740777471794097456420242867461187886692317005993050077022381433314534981240307420873026488197968480106904393205227621826113388337743388570839521366444896279785122280549769778477532665055895640649063881911149205653364628671958596946513971774309356171754281395168251319936425423004887986216334901287514926301682035231713766987725676808519534751127353445541267045833881255742943633398188277488533725259918745717694887681918410310891618068015066954404077128712386710145472711570572603392019457483617838704933902575110490834476187955513441468926775595015886143904237313483343000256511191795536434131257141902646225684775084769871655716876299898607734907863710242027352226482726898006706365989938674972237769155505197717673780078954605709273333533718822251079318593479209866316238337997158990799465789333880024852382482766251877322637399929380317458041561968139149090295308850877144217981794336465825758866765438378370289661132557181258413373216445155557111443324853380315888278170667737404993577327426736707026575442172202753596884724234712151880179347655350911914273959699918896875664948770921050889610062734595220772497899897071659387615393785435278628469114676216773551835041946724667727941639964596650614386604376353273073039318365513330820572003435544228996539039968341484889738610377949197863286969843030599161145755754216622185055853678002998288632584558324083012736274140346346890858795305889812974304904668210541875855162701236940366020949859890666991969438022139021646992378647075743224158574368559542656656983049951775322827497703938251393321752770143316944274795455139902733443441509472970684331675489133466184974570797437204832173663166796033799474237759473851190049686192871824451170880603252963211203327197157483673928355668585272582688692657579224936427138316770321994477806361574252630819073654609218592552326023967019864721663925392223740077309311234361964739541123524770925198780361431147345987405537801148608581019281608403172959655376013086172714742623848916748057990281403949202250753372510684437111370562183917097738312925846284305220771276296431401104450501714479879440087645731268517382731912463185635966909740219124468238641095456027835411408524016215718563495373984327384063198579222947621695495071284023104920485706498616407305596829729232249490941892147979863712779367607495552047809033629827712536936434244646222907671064379912563172269685300946631472423771873563802997769416656647238069724696408748374187559917373487187032030605648077126698739409538551571585505337437406719109267864957353134713703733840537745544804189050457181779520305740120758032903363410002533740847744616937350675783527194941625005248294219572163099602908980997668995674579301507250005281387603854201478931326580672204723950726941214002677322715054194747158252086168368740557534249366764691602515244874333186556581222527166046174000884852162788660417141708913676112720794469634504812411140516267304427558677776542002794884507296847655211514561074720474180319759881350760301067916644797997127576145546301184900853112320708064627566302289946570509372775878690638149020391843305142505717603862455554895206575730227779032842389298051468653736555220317519727817255151703471043107016474907475596356418835026030801977360512278937467730779628386350381866309344373680002817220413869806443672861536759261726437651565780387499776365462694221393138806329783061187254352361660035277620584072466193313112004994100381762651053667389267736633767843607601623972783010170692669829898930559738797245155529108043337460300249519043692751127251964449441601503257158941750323642097203944060506520542765120593453629443089594333662316704492669174916584183760069965750203068839150689975244664120493326607921749676526322080586572514839514147592798592516812735217293704246083501304401329558364097212659888112074342457330557975951181876646407349225833445825911833265826877863997568099958869089298950826565945380074296005899131595873251315552851510067312455333605510497783139045808545133594594013509421040392501679551353147612168491475461918592316614259360993339832618656286237926304699852391549875846012196121647525737710877388031274062737340554202053419368773172049709968976959886572427336420574530671299136534015451178043377824911807628788896980015853381259296540615439891261695483012473772699589622927372191054744619551402811479783216626300970598057895251872275423943245921561578659987519126082849104580365207173679593338566008651799620357716442765015970322528826300311602863911530913846221505322212149349829717346023221911747283558917748142258758044655343075238869444720645942511522786204643117179755221161894604453762563676670655320759574439319986250503994859522641572308061265594178773487852799098135942764211947531909673754399263539703804181304333011794470283142649303955067309517862273149274784658293190640896235639951286368001944440633640967759837260637848468424101226277575449927008550507303169365384175992465542610375348103183120705015967821600859627564735183933399562943150184005778970467718713822524211636950822256001003525318172088743916184833819294757038274702393447006996325303428366625052105825211993933152903814770855917883206035178044657098310803017615821275470549219859766952647190440545360896740854466634115599538032190315289375429003054747080002963512387637392302988529092863873887627233784130600108101971035143235981480720153588974986475497122206666746658958118513211422516513293708872795355736266258523951417328500154096607291653125159385385089469630779529857389069252433051881850083671430692515556165123865013482663766467997046769836211972603181628836201856439537148752057729244043691787868021286311284049885223764865550478252154352937778814936388735035076278493108009524533436625308008037027452474687237284822731161927132582173458067075203521374224833261811160632810511037529077808611067386367413879415793713500464346853887207312980405304586745507281823184974073227653119287205338716060126578267261681311739219253473183011988006820224876055785295931718938556446008237760704707509922958126048412739627773956786517617765541382734104197411056399089415295209049391103962880842152423062370113510293212552613342836466977182235287705037912240419667409040015974436537171191424308831743331302037635684728673836218818529060795502735629862953779677768439712056740146151759355855183862691731302970429341298092515174536690586452166076638557368156635018682482340287317662896525131539270802990552752667297600188415592292478506538105442156580667338957788268422397482338548300449988639376079329489378699981302965945790556276414545648777518399582740525428842464439225271049069765723602088260425419189662427978268372854814215599695600449577003247766265488166291857836223377116840281166061790731782653739703300959493907606087544134367703892619183772052181063063049695092616450320893561963750197986679942556111821261962646423282800936983653803639167267605366799527335854664619595948211526566209984821752902714552821598767197983061172931026663398812927066183609672722343311090793717191533896734622879659142163972363639440266651856351382896781359166560363368013755025370756143071910164650395489045391845635464776896190261944218836645480456387335354945654295409395630369770200738890330486984620727995688024475372451352556305650452499413650658286330133808616132901057176677856833993596946920211385459030501284571786309649251071791033995350588484335428048449494951963396681099623661617882766251566881114897076215562739141298953476864251823815672520647028367571043093890414389581607001911921213811026866338590278894907349714226605555859672119258013621359463670630451647319808049087837492923081959488777385464864232559695339463279277207131189649189909728176922648420681960257045643694467326536918585675857384576844427714622318852193977761037313570747903101720861868914703049283316713088648994307423884225165407798946006025237640323665991539850397126431492566970631724393384035143137344964229195915647803634683598675749813197779503181070937865028206659442127872863870923692710963511588246052255023456335054670019972622569982728544810529071913988838527611839515188355734239378744675276130913703874526772264914557474696630294233916195503932482936994169866786492643450969882941530334046596232359663808359242468587702351201954336508686514553996339924780707119224941725896784668714043853166266755534603945501462660918092993768968075890873046210308874755285088807041187180003330851497758365444337157574871471470078854495592196754183573482940160594467081318324780904840533261646432959748736197312340179833469347556112001802817623518371872548273666548400748323310452076756808307102661141671109185346817197503487227040722437928951097587531407048584478905849578108016742546809246202903641411489044161565871673606508321495356324560917707239321383219707011068935650236590938564311960078641447596492797484805699359521195079130883881447665371409102620445852472650470174058743018881226793552832774724459234207568403893422035368772744415743065480993211027615205378661293387042945777347970485152816665869838454110702316865848700507839453288276129696437536185358726002098132347985716322174212308646049787770512374304984730843191811279880865632304281807839562130592038968179814051778851851978172699380122416192003061095128148835563818793122480808683656288416111913684818693047313807899814049261513227724433741181981973256762780737777232155128394297148441048821620902928685771049929111343125128409482021383149583806725743579462753273941528502270695725011092497829185014240104653616115273725563675407052719470853739597330428451701795815505561141531330886280468960271883454351167798454895616115728751304396988270121335764752981542763304519323687583955031001336939788619033213331700602431390690561272469651543715792130137921769767109530213929985406481510500467131654077757768260065971213465899219397665823523766107823548896408172742248502430682026914327913802548911179704338599003116079887710030780965484878119205411885459732731684103833352120201156593837161171933994342705480300037247795781189948243202430321528570732356427497453996366572190764074951757413776929618499014458461122717137672517731799511051267012523172212277332413408956441253654243090607112887926727777698393658654318509138450923804176170392640693855742312423773645831294072358385196619394693680266332821668817152618548609140682079599860809284234196954081300678522684827121535078489289882720700837278858226976619310447304154176455175517947942802371532270094576358619530607295534173088065522142414250629387719113129721320946803156087833622690961898775022722986963449698258414569990613966700079751880960021524140537200178998895765850302856282151822399356766207160458072090188011392613402024468599221551498540514809366409989811660572157670078273630848905079975205541419029725232343684038098314906308891725719541965984265975170886784298279634824185490338735462221322595159341385796284100278475066460232173634867181457410855982598388288743850140761047772686654994569540218731567363944677062909796241249114706412521683060973429904104003679852498624709315557259556182827121337555162667459086605615601731286208735833122137676431283020499542631637938717569583660727002391391405915054439970575005064485115562699059384943509754547621227797347350118832190095643647022230755621202109277247792648669323118866846543013650643858703314820522741469773689867519734398587537844929764729904966178150709379896651258186516863522925140967815058436513342001650717688778806830167894743338055408737883101951003782266430663286504897997501495102378143000804716509786417247509755243999459272099272557576729171824409444839131378544940228281202060340231084410072915513608274205519355155692809004617958330010860964438075700849504670215354589044505146695795607646600502092164683597908312520658187191073610339205809820531172269844131594488023171637749923952677085443440429965645446672461973657335167716752137168986375376430631447114346913079559222282529226280487471231123926890273455229740658571557996691964177640355578170769132508611685817887865111910007662220094132648678145847812207207769521910853786678053745733085455881087732033804480683819877240063590033274221398171023097121428344439888082703540528848043574718284786693007143038592578637845585262129146833916848893158641227383036641247019696733702389933308438477314366473072423072907504996008078426257892097845463513475492786052745808835836830171499924614046956971789523658382878875036321987505470786341402950638334020451277367889735380036291482766180677705845967318686475823941323342200330201516392989023133343591181485392956725199630754302423313066208820270160829437347144464035324129104184305452036294018671044741911517095334073354325764138005550100572047387993348834349603839686537480895389942636873020324507482769927623701449538739855599951219345124435813052420438979693689057669982861882633849088185824035066877770864014897169561381344868215490187760427177447269928981397881754780958128633421292284510112451529325122602803335889447127032308208367121373962747830451901156795657879426014592124414715019818865900645759614883839353271595836575323602611753249586698490656789402608309682660000203954466140829682456914733244074468739701800486085688600292029100005339713048360161935852159080520697571672353096828941006442815297552748229023249928429571891478760355055745196288832671153658227710349278168168569537367227746494206462549502806886525859949266861345320953478962476473093991680574976695658685263491714604847118325150484720020370562125290680130225887386912114237640466705012446912163812049574946087366716090605388113391933844584081743375324367581135546723244750912403870363787799286839984845851337510374846174978416350606657551992852604051905966600665820154653749561655476313064744339026325396714157842182141773471144319853396760454407515646454717515224118729862197636287266534290909638479089255252112192158973533709093158040385453141538132790182096003313905293329961484005216165903636926416789588572429516658786494286184646754417957029756788341604714286529515439122749137361643391865373558844883223662078716331340093225902390034220627436566521108797315797218769362570166279227581140287110189165214994279614557427649909422411143358809888228336964878338148011191246222690696319476355892163904703597017555803707119102269253912064771127142921222499953123715311832747281114083663774452109499802573158910831239675364683161124983403571270720736487873271348232870525159265974610037188418339480393663090277557848477075429535786330834184307818125292830894429197585642023858636564626598586248189743840550678275150793874077510003892023817017284161925167781962195075503053655123784115032637468648963327472883105138146630256111196421052553538962949806707561841947857854272710611260652541550158616853364764537462331595870768085432852374503311142184472195161923713618954190794436065713191704679808527623032547071513977212976710464598702960805190216226621034459274772241300585002882245528517522199029888783886051326792370832109124966864243337513076622481055312869113536922668329185832997626657386458413142700314089131781239989676136032111319462606881186230412495259147678353544747451365789906729710241558736325590382439624622473755237765355911902527173321954388443723440044177186332489273059013996254305290053689196736226026062882772309102362165311812154927138670417573165205055778047113862204003000292320659871698465374530143864866802261540307739040196253547506873475293202299386414387265483423574930493077033204334220781690615674808788171460151771909980576655126846252550705305493060873011095041677104267541279006999139330232705105151062130706717843112808462165133221271951014383245828045092172257301124799645712168519946929704226700369098993747587142178522725784841450201855441576703384014284106717952394374747019791281195866338500235367411420562863270721108506943477327491210427716847860069703020814924678469777369031361079430229536619716134052085242815587257879473820671193370274899011968228459029299159723821534217535034021099573540175616704508177420225296803698605143478787369737880053891812060224803930918152146207661372734013475199568303450874916029090333612509005641630189634222296099762577481456271758487428657885963245121009272258611438747217864154493911636377344930943119580630259014140645254547488786746274939536834653585811222461896827250169283308150921254553445423475117409480622966239523792660452357657729266196600777024885277415748583313420373420984681671718004871500988024350506795802935419680537671961045326299427221207580554672153786475653764223482778198696605492529317072283547306103683407191488023059736116891335744376707734032927058708595586969586178969108125642746224794814139452294209368166567203672330727579689228232630186795734646399141956317446015731978017501321778532443477007476792807298510850976206793978583637315479716482229623819683435475404425976798822534239195946878242681461269316106351493128091049265911764281133385823601928497645632571579192712544445164926087675708863496851266467660206240860035932968009560016177919454868110467883608547452332133986601651484220693694130652198735748154370900746996071178355092298890457531085668735149616466604596703648633472235622735617585087693069203021076941500730884090853632623783321012976632813856308217284919832700473302922127756836201546265060955658554217611588731895953830800704808419398314412613422580449852671029916261157642752419092680420616783725564426133419305401500694171741223218188629988554482324545878673685042696518825180902144035195685498173242220149821468844438950626447510065232599855013970627704802257688187535061339806015158119030147891588440548748117846841012676573937572225661373804526849061897964761497352090605644693237293850734328002980669268304597636091413317295017661134698590251597592235442773413156888595605043322623907900259455289165216195754170536821276981993007786576894889525552836764805128872543186524018031334063624127630847021384572081594538470261993768534892685417297324502383846085954031022667723573436330218942120888377242155760608117714351609054108002202943305509914100739849125451584562157058347160138376678584269121505942778318578898292903958032299328897261559137496533699965045675094630687535348014306265700303355411822849657284514364181601207021011202982298889671203790043120605969044796419935767771790857969916090538616524381172632697929420785119400694702008013196798160420317565292306546002010436898012819773477844397557920603144879730705248652082341585631777178111047769050148415437377850145116505078259762696248918264345400258007035666125636598746191333250158009923302044852172498665727108066489750860883709384319730986281451731060569771232054152156976443917873528616223183983137147592227390964297929124523376827284310859652820028383603056977804707362389426425892323574920039221115091346347380642994808935388323767091237248513994495696323446892491061537233417639012801812025441192152273748496800176632183215243369879539495617595826199438157155237938606868158932287368729875029177073867344903463744255599250242011040173103331666060586995161314563186105126667715541873488389642988930393418166357269716451795002239068690018269690450851165784194469752829020631363421947639615882158310544626356978951041407185618313553017628226548487375793991956878411480948927331838741134529328287406579809131585029408813633741792402290347910940279413615751449104124666328204867255631574753751071522249069344020858498080161477329780188876053421321530662512118223671684408974746924826045377273294609275926510774155604674359564385410169935522181349061780145380792989632637297836105919108538219465446132028277178006036955777723520480220633729016055045449459064562421808694214179992847691805574032841311253162497102621054761243447376838446969490212579259006696281977016320195289945429106893810268773382760095990827176820708075511857982955446386463620902239622021348635521914245492334818605613664290918220377288553758612456510562878430425620892090683945643748756099672480577335868599666759064459977152193504451743688125793414238464065380290913783592066106381068432306230947856524364422179151849949602081541697587259793102819042970877906222131933179478802202091967800911517275725590533885187283204731671731667048248043821134998260704380931154898742394844861516243698740171972759031895907224665409935069410605824337710878839879459255549809264776358602406796277950077937965833761901412532601740935869393283402557341325426442417946433358045653975910252844221163894550085103609091081833349000138182574636355195321855874308588494130083667876641701759988215303345632922232696019283464244312036298014856766934632063897954858713054062956404812383437602994348453858103998911867276436867791802624172360938716072551015403406577423396405471523646696846466780554874204186193281963400952702528253538437944526702563714966247603638349272672046537423807133587085045888116065298953291362894651926493101668694890304438876514906102878766739075228756402733174155326784912390300140988733254735624091609032422791745266085316081361580056796386310739190241116967324715552839494089452005190275376803417059863545755641424946030047189828174716880725290238015554803006114736351149428660318061747136791809674719888845837602400343489881629997352227120303578212723975044975141374330754055032720525001461308087390699296459359040864384953586526935107037563242160711819673484331188732551026862829252847630497233408615646895816492775092762357531052883399198067657097139575799042817351888018838086721247341359826530622616620435404888782591602719864605302085521165110353989436367912550531919145455698606315246292724190910220467013215089403961302678290221516468200925012941688747530692689363446113111077773916139749509795848310109179910226892673649800414406257378422164861353581762063142493559927225795019757362523084454010325406849357478071500003304952760196309216190460219460842121360465852494726203818761450942232153681709776725434507886811051779731096707462789683593264626314662034559375548923328302241329549254567763330424481131918660325796938920255470278434179774946525034159082759410804034801190905740382336921338698933414887898601860116769972594084245792520226394870360447648005127775839296498319983116800372661841521259783059786510871649097736174352075203571779912435707022416613593259588024171611558240196010483417513062654437418160596278000797240708120731501438914596345340517084484532243620532166420028645919700218276018395993881971934477565783872146164915809175983629066091722846461961822992789034214834813249912128811272831990630476647741560884681955353779781060290508967252028786407358353881074326668192871639675472156638300934263266903006965415659358468842900594138690311879139149963998049656041075820806435927627929854235505229298055825740041886286620182550540400138849859390044291544037395585228409718134474650056000576244875302976762785731690237858153092416067055997061674265912309754027178140088414207243355024535414103948926538651493644329509928469426408483196469747940006558683862573039285151102435752297984818790617789696364904723586639569800861580153942886080952972742671205015568817241499725874475139860046208729266948395842956345776298055645892782022387038933163268367515067208537518441553540641625459496318391745593698301190566415470436819914610846362713607998396685254953518370486657575966771544316753938021278429057998164592468296357544851897741561685646221966425361174927997468363547448974861628185880989362452262437026721762972528819172922595920696108047310313122263355611963911470213584815871950096379209961524347407387941749879560680137130523672974093374023822614977062497347639400550132082535764169619063726246668455792676208648035645811548441603767496012981551802984064658065359052810482414260976163817939659445524251295459874102752114548240303443613530936716931737238815090380739445914606948291960840335229224932677291462350475081123317311404341470226482380965369613482280121615206996728422891328733700416263369206720552814384826676911206619589806752791565616641234839725741605219448398074269767565414172598821227002842945400196759434827734874719290773995558578458379417528070543272753514196648688564643651855326523063387814002723932889272136260475123975454001514123339038875551352299138338423301585592919783913817697521721610679697055571041124932085452442288379895051269325267880096293761022475954406229356345113197868079316940967053961820677593862025253218514226187742887268240325356788309376198528530254804243249915991020593655522522754649010094334875877958746381453479294195432517823788788391846770354735877431990892045370122700870966985003365227759579503808864313961397140583854967368452296127281308964339005103223877789370534212919957198444072069293402734797802558843729063434598500315541443199107706989088168417230040829110235029350411506139642033801035311999538068282506550346028319313648340329375007454718050353695937454349889361399266734600955134067476995008261163960866903139240449045699086136983722673830269981310855776165479091666299658209748565002867976293277582784053645783171013931519607179952946575306367537962209886536528125571175480354893596288238951618320803031306441987600070095741837473061045697200675829155894554366915201990016238289178167602219529156775559492861866855376173150435789347344695050864592283168716916030652513613251362463606778359777721226098781330406585319954689988511928056329542706745149682595409196613607639921517296379063556804042188291761054490369605955693667066521376779663012943203329444271980601494125508439861496315280973986321716130894164144103232596265825376627045161033944049313751135678023611650781609536337804338392614141741710446874100997581233209006376724247600205451654052258794065761641866505168617007308061438431570619069619811549514721854585182585976494876297860737422715650893967079066814268238774977240982955855310408075271679160512891761349566201710255676317393234314868354465542651624149915778434926767942199129347322694787890185014631291871987974693198228946469191454478560901018319267306920949990006120147167403950098758222652538797926038210761874388226611597894844174783490748234246299905740959944066515982116475802631951804811649769687214942431901033446969529550871714033582361191774693166405918402866951921835207847613052589243073110764291986500787564290262546674782901164426192948070603068626127584930197184396881030719808546848336649185651538732006402205502282364909228892117220282657754343459805308914098403413027319155494426422543187047316541366691067554810736324722993053450512983357536448401464971443688103203555174462107555862885935004743883413247621879674959871129362125184230341217921915250283227391790525881089878671844773399745082335495225131674020372407553381512634606290330345800102641734250703421128356513442278806552434934365120167453617786281207359179778662032338060180502515139095997528904480227167637004956639566174647407132898028076570622700913854851690492528996920142952732721374873718196793269926575859484350286193163646540916893500099777874900862169184491220141463997427961038251094836300999736638955966134046936204685997525636800645075414758885467981030078131438724509689682267608618020510317646934378367510919810004723503383384553409514439818786021670820642417487847172345800383549170226861051773709252638148543005885273962106272919118693059575287846611483111814278472469366762500161105746888892424407553593191263472731557779376355684064110574145782853912609650578165565586230827699095639395500025940770798770683174552370937047533595523202327211063419085134831406355482544342935946683640951309225437017416570009408396070296487176878387926744877635136320540164495400393096504420333765181774485349581016807919383511225814476642608016911612555280961759115564973336188163475118076008937807881674732821190332421719600584801788646884652163153416990026421906753213477612268490707366782089513224430225170665936649227454321821672001782538863409063363447094565438173563708090233318361127096567817832795180423590591399296841229499823755681373456652110779015972496824217691660666869794953488456440059520252629869756451915372413076240313589702260309680953728638275814552253759677666025308011340699575644167621727234072230768477947288626436986902658229903117588890938852978304275480656835416355640627054080491458400316537155336883707548613515933165990582519372086428991644887697672359860417067325930824220020421792805362869532595426119460257438380094785564476874562721644479035270942393613762991987970090832862337994831981286543512960206399939995485824967237458870835810362340626223152177240411973973483518042634499306013482757297946485208386797473005207791843878874628199377638110815521007360954705374278994094572214192854768924854762052443776680555521369351832752883554291467372258424084945984141585422608972980128992697893683139810304446135805023548741780725779035916781636272106319288463109335501572895522502052560338484068693103928972162727804569807978702953665995779349161569811193773360596163813398845958655494046274241297353762145848498825393751542412824096981314810648058422229015433411783156007739419624406334429808443321677800512529032483869565416731905409497002714646123586909022594784146315160523411477302073946729709797499244634617499008685338046254761592807755272729196588338157170924778828723440529331509575047276233903571802308244690542535732832426493434151897291985774207261926479209403021290933663043434032740830269563369989374743860931296933526183792411766023106876956123923959446841088992641169989695241726018534817284488605271185769009027408560636083674319030605685210699204246160784075799552911370696772039552993072743226891488464680710638403031499578129003118487099250850296457246896994733462990050740409379664834208773442636469890924886774049352027023512465495586393616811286607311527038250184165465042231939223685826816480493585070538399605106418772303965042959429126811745546520663606365682294352375770088205646273956334267435478872470351711230265982392806578848871646300087918007715151670261469715524159820935945220009600394232590241456986814211776614546829354876227042421194479538982984586929893077732064300845559493776054550076473392018652679055330632686116426925922869280018587708681036204661335701506710864599034682804862882006238969606561374431096666187536475440650885254377217030631989205801989016740050553644710382777683058972990993793676735478464354801540533836927083564759670736344400707951033890432103810482118151651636341034521705025462853407144483216315783246252372168216341722749410014125962945077540955040341517862377759995073708171024616214633637544112381263463789387548565514962700385703136606994513490743447170257230353823695792815851385419123347633850822217795035957303355698613540187847756858337176246888245454879550701504486930734054350358242361524737543234270641482389024056365535647053618093215553743938730269306919746960114795044501903342733597405621318598643058480108664054841371155898408523048332276994902104960978890497025337438814274170349229267187824219987294708681923042349979342776724016908255533161104089214316912310373353981352104274561641904031442526878093208125863277526010056484670211271237671654572579315578545898958838455810447707106571586698750573632210445628339152417175679095116994670998876021910209508284236248913177410060640505753782762227751711673488338339297362792388900959013490461489826107588159463673301006883142426232075522785572443339512006874880560574889914053968908878306277061925312355727294680882262332394258022448975339143058510824026416698835677325162473626063363730185552658423497882626624541990264783286850624181301942780708631702208256104020020354674561895402315374832920236232472095677507112588777776667072270721211599223818673822589045175543875058406411631208630755536462221247319387236620965988758971224930848966082829565345516442247157725000585204285895374357062748764078472079636553047458950706096898258484803815840493883595954224175688277218324931184153578389243486703710507303804867819855239634981371293073569441292278402446171120222596679683436417990247830858774419093864428052325362132842747168450631115654341586913749149149571825335053888421518615221184957785964001376058451744567251219337460205285365317145460822249668860454426569748732766792822355128949417205922998226943514515321419343455797172687191398791058084191452124263020330875054331527797085162189910734572612520541409730925944512713098809265211769153341013003988718670065419761136717464681382524765650306801563902055021681499427012901294890454336530245460894636991178711084991788958132001075863931848246959787303652247969614781535622807847463289242266486807310036969403284467877663820162023553678947512548690778580097483578404423147312046061907986358911548059578033938113361200639597525098318929246791310228375287916683078977085736003503884605242638426810068802883307843540262209028946057493397733100031307307051801451568542742549085266650732667340432614176639951133543821833341314317615152940515948673943259762932877519595149851022734883434940174594210040061958071039868286531913835292243369980185522735635500284977609238520984270544951775126087860930939838362833151298171095771396169043722571546060268579446765541572597438396382515638798616891323144632123925354946786440829134896055168433044958280721794459847668065319292000247303756718665335737926608380937706399673132061658244981078372433655448075391163132384482145479577775461807766827919658846185938977474835923520967719853924131126455484877444192306200001240680809694574984833561806215538860229574213066488238425632340798915678182877983571424025364085021383669845685437407453887671748979821646338741750994245760292504057722276044136871091327413229857221654916997520490740035426220899057265636903192063018793433115944225808931156778747079258453357788802050998234492033415238851247556445801008347786994353958537729055366855070217344514490572962820019649093630716748636581948199136967675932782444919995738984255369123752836584113995029888871816438567137591967053753301804379933164480221056828392196083132345760017807672666863231559351971346733692197281354454267639381348979451447164306473851611423531796487797443506508251389497167513472365719373423109700843157354673269902669046007228594357734303599038527646821899733338076784458110424840807043849349155096863580775768616502012606171626546071356190338842685717491934958075785572325743606968851327046628776982092046983786141270199884262533956016398780997988295065980239464554021964238581274365571246385363738094420400798173117114951766820511512078744677374436543979980098949591794298541697298610656558709141092267280800296948719301886520120282758918369882464445150408567792311879850529528477961146004253740260262524494741718455568487550231277710338261709536866569366335402272606248987297053570287002309040105249679265360650421163431219178430296300342263769155717472518038709007631966557378277239805593804038812640699766847647929398944731911390345210294187645607049961885382656766671542887582491471186851216382154034539595941640163844752315607225512926335172294431290708270714553275376636881720920984935805166172997058019267155799817448298510123325398294627583151520318173821805671495417641736317691103804189302595148580100538441661106784885937324535001029566515135877171042430410607273739153550587110800935765603057332857128310927089090872208194915804981968229875190412591574694952981227330458569922831218265362880545696892490924621041757230658721132312139278540036579152559079967002646089010401214088922470655398192259717576835049481562321749553398610498886270437926582729276301928146411952669778995542314769476633695153843865502168661835466535725614808095836572806853947920094573697606761380108008624877911386619288842192618583633008508501961371001545660441589138530362720545576633175859565539807912664086727904626616677472732733502840805709454077158084470260903724995991673437453031513915696792429432273888654904378515836479978549862675557360691080434975160306074302942229366032230080744012271093516819969290835849904061923558846613205954593509703003735582455489604039454034151963858538158639570519140287617573218167046505009803469903164395220701731805522586057715504810476017690998744925402068849075710829263410548402023710316458978914518583629735260252605679475294193159086119259599327313929282192047646434866861452665890057474013755257628955677571904802472759855385426849373261539553187756285383174709984408945655846694261766247052230647775908088799721763873565662209679856854365595995682357930964573075330800759405184064993064274690146103987207672790686547146057867365500268748465259127905486452623819817449972768788273625024586988514305897713201388313180953923182225888626580402139889633075205899353283400519233769169460536821546160049148462679138490707051461047821520802014513747330245414857839407631636331250883907933739222615233330825205464465783249636039276267156823314516280014017984900581760998708824961770576733348970566756986415667953339081326834868407884473652764513805021527829304166140994429750185697554447521866275303103706335093912863047171422827950421539583850747112956693307994991669581078244098876678954992276223876033809169195600378934203181540754785876277348704673941328308766617155522739293302509235627796913164520685595452721508867230238738034966327203534091427165628240490690654619450027461072739715341429082551241374516423123271398033766127871189249197055544703580470200420870493788455871975264939004365426717915223369605611344019945551557350274482238594125633604604258362350866100621964200089089921759562379979823180520693682741129885382880766741018351943536785852847584498802349078796376240907263158290724365274848957692306102325001472070025109056866248830951984852439975849600342860785434918124096215389370977994758236840803185533675253509073263480387886856492803115570933733417055522717161846729448785582029760890436756386597547133376604036142474089701930621930719705921154066401911780034076243616652467573182980936166019697126719751428873877334688964965711288851047633703211154547689389136768041488728915671481505054395982748350569683928954917941541014189165131567341981174681936076602507271349183708244105068612354246282108102021965127226367125193354907397240056857198269269978807337408038878371706649347093122890455765959007489371718253729429723856642563881143804260500838416667814364203076547643232570742123492310079189404406760885878513973005339889708426992789261415922338898560628183737156542309368524937915780550538929990812284627022273233711418963935526205071822767019621926079364019124949463809267236844569470947224327422968940872444423684769334041724940981830957081280361853266530891786507776642308820838622840428323076363510144586158135039144318518255626399325236938775403689524721973639237940636142414167049276439973084858395043878098230561000638035090001723169677862064474108033412120162498160356646016382976743729507198063680798004500190780253683767804422818282108235731490020109783079096899442243451633102113982608935177147318300163681787150670898957204551496750863895110751963553194226716282981340189135415066137755545586913518547211360009115149998113837998254924352792159090735697055621495727493819389017725410595629226778610309864220848117218511734093980036552356963349274735599637078794359391158048437355004285758986930744083315179619245415782354432959996556366672914015294856127101653738916112145314055983166625659455693488419296937001745346115193583606835784146092553538226968084023107060598629887638580051090167849133017458943690222543483745226426271941540726975088786135574852825918351629721699549568736753951673249843112067746680137003484224426365028852262473138085724577628434401204382369584552245394739674663584276703448225346416999118954414186587642252736694372799580452240382910419321410576170021041506474237618400579528823536980231300428185654082434671776177715500796925811798141727436580178044006319477150398487962633982539187011360330162789529795862714890958761787931741293247477553770937607061096862287843301013093852046582205508688095174716198891314075239605821174604971402691038800154474560133177305416140407576811833037814467223700741062196929760128344090753957162578863081736307814003521590697377130343707626385063154965035622487488227595959524383373319370437573743119205428268390212358869416799744466330633156499643787316591766136298826706562482524341364085108336935981705889297947166813089872043564821316394848480138227968609681825539877205864706135837716999742356069546080320923031646564227889141749255272408632684493143033428349879452354959506733986979715620386329246103859189060888367746116245554778259978569581257898589645511840575498739106198388071360692078623123692329135985889772180355720835363098813970598539909368428088120409773166932793908077642540917413371004465231700046578232196700160642904627724074279516827525735961073551158055053156835475956874308586091687080669238903919559492692533450356621678313007764833709937062590471385059471798667423941097189988088837383950570077392336652459558187956658929131706993472000894164509066956231655155205040181552830429645846545326066054894891095261316215729447991971661234234018760155411110506452686349515989879568256321567333582357333298402529177463121436441363014312927525665480926330008099819076662735983737103479730729031219505876716317880586341915271675354331067388252558391451688181251805562531422103398384616868812505038169445221448344129384410910725120761454796483426166689063905640445232236289696199722277045587024207694402908640587926130865426038804780499539533397967722620036528279548897379655997361760902938428243115064658828249881987064988139015754718287344885925426170450363622861613674886078921093178675767670118093284508975593700126059233960495997426943283122952282961357068982853045045138883978941446021474080988299114551901912540217575390651440965735536965259184323153232818795835107152134164492848010751520697910156303269513044800124759973104143904296310149681728875125428259585110691483138673815160255429706220375861705993000723693199966572487894539336780941780027358837190377790538654503398004078624792007727972783675763867516865838249583590443291615333308611911614070816354842603523091926175937941832780924364806444878495723118218636968801258033082198392549730053722629069540197244030931626394248885448283914973071106943988488676175574082121377285614431672206240087504533225247710294539660605753305908394490857870049541233413533949206439095115502164976090697204003151690913254713655553987457067373514585469148220166138158258312606986454818988718167780651027696609496818662653324614874253464760007813371568071977786165565115164840348607198107528607792977420607072913889553505889472534828885022884946938537723945507580349044088652280320826701642924521298275002514586313487555996338742535606222924788553361636143968710447661682862867409586412117730556964985482125116131123193039118666194693975048455389987987947795912897806260476688859370537132344843314791470798883586222866609071272624810473347140721886536333099565008883996378699799327376436371885712159914173610165377907091800893468963632904651899477019508205637995717947432895504572983866624463687063034042833449737936497367874536012075966547387862189925112356431311577070577326280104844608848904693445812857196615804435391665727143533963347927727908295026752759753066996309081048378361467938082628871700818709158702574233559700197173625763258776335194610543642010818780354226038862963858739682045344669109210132272610297911913285112921447013076598500041362665118275134779349279098004347693359564054481054628643221858987129367229673661549670502430618862705345673827823578421042374514940505721734727101814621522840946707313236240319213379579825846481114309653348076632192870202526810292533161570426581546540541967015165308443276625760695088596584023355994210435948922655689737116189242459018586567679555271925698986649771616373274646723617392535724142842111410484047593555371933270452756408002556535097195351060276977062985025156576129224304984512949344205175248467096326344184203240242694035035416967843718745462051181896809737101540424664392716587003455582143662926603454184667070435526910862805332663387681050278970093521510669058580628043610312183255042964419541970388089339791510585568520088367091722645712974526536816481164218827941585457556586763826513228674149471571101142070070187325935803167678119831488202936667302233978852956410758893773034156127597990662829115181842015953244625526341758621356895248858686435268223052981624495810016799505183343441788598773489080240501190792617996021281510301295828540432834964042367713147878209414203339751044680448607083954804473871794116632251330505516033647091529276493438932709153502582803811779467093349132390685252214842406607064814218793132702060272007294517760444977411071705789002983539401373038830737905880854104121730180945860028176314856900444692162268957281131269176214363308290463419891129260893280947403688712375722910215291752299293656940577044660436334307137817404085428752749549398879781855528610112456763092787700269586965821325736913006269260128607529215412546505825436627381541724966244973302053943115719359590091821264768014067308011537436467159807132645275389013532214202719362073175266792786317956606972113393793065609597987280605879997798442233337918029627835192966484220584379936140506912779995160659373386567880089851660947532179987167139122960567353600801010581486501179691377573120536451295325105203610182146558101613916566966798244627370456002810468353283119077068495115015667290479555812947389802582319044801511360505560922675936451491567255277601422695419153021062205865719602545113971257202940562680504607021265912074088164758729447344076271180347236105270234102603866897023881238190965407275555613899134786275111453888929166515865648412708017681784779697898542581550857508875684609781818867192160441420380315604537158840855388576645717394543780119721322484967335423242045775816656176090805446069897544276617560538092993078034139464387663847026936723249134114781970027675566537748014393864317113376835813825255757635761083524849644405402409523036508369522345587083182396406940916626523581815451746753465819675185789592586913023377488631432471504868676062670956903802847210592674261332790524383521178653022279208033185613003049644511170569510204530050970793539876119991272385016894389031170830784995579466624148036888739981598803052093621089140921608130722011205974797385919892477858518144159283494699689204960455156630845786099538667507287487148096070516003623239705634880722955931247130363089450727309498810570614473551114158565475392943673031779121329131515541490080946586036830532024015811316918640475646283677137526522633560818039507554182446472657727339240270524978540206464532820004458513149602699889679107062956838365884301514749030301973031034973224609326607303378805208650799338330814202830138385774679381248765621304439218666937668408592551724011510049450393552572358745118887566969585691155139429480206037030214114029410677180778140767142521364958662916465063307649301876010635553192352350983575817616828402773586728171540629861871648989831343588252994392137324596029893955491316199688385760616104792038729791073245263555714171321543360918583338202742790473060381901288779222265234904982749959560177240032493488004600279887115948825704216391360878155330468839446483606316947820798529068326570977267444433663034527679361887833091863742215016247787916655438221518198520243357933227043818392077675490142074096226264688692819473359315569708983658061208562344620740998886568801967053806630672196493579354584732722106707815318771074090283933989331454018597155487166607749044895572631828319544661000074527334180980869347445558626372196343797109841865771793606351359877163785204561903741853267150752296870095366148317734381283648165504395627397606035557333861125861761436060151541382191826300939643798146038948849033671443084274725497890167864806377883139740665563710038443356702806857499535060539646642411239899250030648080397681876650174645565628804650666952207068341990088755778061586460258562739957781779269283392147912273565706061648471239581758776348201290579866223822109980173730195661018095053558879445970334104528738341047873876975218000140326658962316239512047808636722451981750343839436232924929846516940496872896513683900284160643037659774196614991558176939937374375099290266962484457895961030362415019637331942168043240059689321760397593822016096697599683547099062372459127569247192133844692122187677979330000478674953007845629174731286658652225108189225009513371010903160546597279553643343053057005954792374586442401545400197036494525966361903700524261261209033263342507299250122056486160362466590004005282388156238400606697065291120361246390870249400267142450548185855300143246286811279829708066894214040543048611653598181569069828457269960255820553771071047100715433707144530052269917294625071615702022441919758031748708343177968174650741040898622387921469486722955485497314073568462053760026446271764602448030556736840711367660236452615098926963529388686620318798051888657280684139829108792260686212456030592888325031320900558859899022382780922495545982733534991403034026277136314793654384646255497099591039088308764544267687378277602325451102305012969009014017691997656922906781316324383588876421415480928512269829429825507573153092020225524131418209239604594536459301805868162523507446912952994998313896007490158030689435582495365561877029996592036848608991420705506640243017230929605760046338985252803820694398258866992876788336947078590954174418275088136919308742249836344522131863904778602703530152387602018729599241010987135142358579351372786542848790212202087722086596193282743488915523011762783566772965297929418383994053297005552016769904988531710117560170092966926063215868194259962076605530051513947087050065628094662852498388460244983862081687064870859141724762636291476555013903370920658965094808177115327963627021483346529606718859097086406833352724287806725296458730824996832871861015142794226708635299469916906334997968565848807068797397279450380282305533711747268933078300416492167409358794790731480658246273586661926225586434202690174284733466822164722132314500435506287349324854682768086863490169839877166618082703894651193911262353577503854433324816262210502451039536143205570724290896841063781388141624076835658134889901362935860733964938761922630713804851277638935003524714891649476866478210948250574997415806474256393279513139510585236796397707514593674814416431826876571833718777321791152890271635750213267211744798456214758162964450563995851435477819342394957416418537645396503046308696254108775878622217223099725952139359232077649818242701241876921096442192662826267896137754070561298132455161025874331649782163164712810977375960135542344603113294200583230507909525288084939928244692649335075189201165247262548410891414730079861858602992624393508706517602780135542446669261954901759994099363263960872798889754556759226770265836447559054833682050629082410399849319498506971465449152987719795516522551447826096613869153745726161170885822488164224556459924000701956773503694737489975870644670843218058498719445838697884412348353003939069080044122451507773800526318862064155298695904644699281444633166203927272972287047743334094844662529537823273926664069294242840217846418835947652716120814860176151797888066239830934875262214255704618145867611968669285573832254573082114755914134658609788000179175780984217920440555900788095469476364659272284342350312701831339291994952094071016570976774773888982176618524984274357819128875282996732021173064831702289655681449214994653164784163084559102219266979931574844987135509909209051299371611356175302120911506209363879118479833661322064391665864217402563649390984247776468717325943282804936451581885232526365257400443923125793993954870563137811072926771435758055392461583223966982373506112335926883082881899324994680098464957631050297361466627385266604462794781858253435819205097918544021566952733717121989137824678019221443741855404465047774875368548397951548199583906223650197749621457541622624263070724891122942003292466827802756972307666886006353320320603279135650170167553264281101505684394373083602077025617215565732412030727714061241542376841694843581553092072395240341418655257927526294815229502347802430662964553581322954232742747103641639763981227390448894456454210196910226519391585449926134014302854245162828898500925280668324762970864250622382733549844125237018270084616168080627313215471908312217776200875519187501205317744505474485350874962524453481713729227253628612017084907683534802956204186028569943344796865768739405035494985080839111373379206891532467368238428335565538874146601065477115649425551433169667213350105837407630279659407705415096063080986724109613716874219614401347963930439585928402475861502140115238541539950073765755391763810227532801304835538053327429882100546494720863055449998063574342213881532893753328935569629836898712076392220576917293640897431703875806981341668654132785820407823734889284339543759967573875488281678569469951436452278301082201813871948266436397528468044788547830020268716020425588863476586774325261197932116350762180498889545692504233481531033914134352585919783596077330665089891284777157071364107939778210368837883075741539378377359466212762913861523772551524675363116059252182742808123966481726674758507971871988759608479844442255837463659990392769764431801260726908354503947630265948870413948435314399182752640312529145576806254808060486119599254498534356416434664987871022925118486392158801519331534864841772138316175480929563577897865897398542787955681176052175613187157926452551745526716566596849317393367979722564842526269049424432945528526138673279667468335087552690862102911599539475046489225653468743482255551245019909341831755990393636541968374163121311991264046869758593308517539406833585285061744699399407635693898039248921817190516934554145553242384327961474297937450485988985543666581190861890052402715870175268123682714254903684971357474839752878263634290766929990776093552474460947491880548919714676649282991070406997059005924300000903566107665226034864442163514546226286525870564169971019493390686856819227914272181765006872701276852600114916281950053278393842950041383565189015167431793151961334559231132455771819933604839160564619378870091070033246072093940074996329909427679390537866617053992162692896586547403129157826945453642315410152580345255939378853036798380609829289089029931139386740090623844551264416254775822918554030940601408453690463018678250073867359551802844675169697935160143230648800851715378304536999359256662929318592199286065092425969560274370272593148814259668626423426136398457494029061613715324367697730487200415704067385180156252159523333595628582935047310892463379486412146692665802547044765258665131050346041996271539575952830186226981720520260919235970911750820624991509152082345137593245843257951524785483659877484921206582389038798331509675696726052725078933682939933233718900990901145729123641445536038585549586604327231771697061222352510951012146404842898756898692609220909009983726400429123656331468048060192333222493262143314036456095472999012984519063999163639625333531961252797847194981198371141466899455607282187799809617488553240079353475160606818490613298546638578931625591762641865741155457446336217660278467587348848819021244564682139222072813470475249388709507021872838353297376171610035124123172047746093299926346637268751064560151749442976756379344705615927959371398846771611477605022164108838341545925588383933082308416321957426399342367545476284236268305283513015262102108983216327689560215013365741569094170333529081439560529334039705824584156115987111385768841670424653131048939127483496689018196127981447349944572630912396604794272755583488537112762976468276308908260573087562377400353222043757264863284791185199955386465728232169232135247685100827566813556310554942891043483763017428479294968125457553193183774078861480822478677373753996432391543876338676903177410921884736711893946551589870058347954154291649072756204228263800717493304049465180305266421892054255443558247354713555363946759876665268232853324815586856136829441292152674906010706188445819796690935338594797713265095795620667556613919766270871489872952671448100700780500635376005080650516423103025153289720361115269126048818111161139038209898915605035128601262249920415897267451572725026829361805540634386402082865676197672777402226066169194046977503200361660085100180526132321515809057075365713679523647207988073330324783592875641650392335179409607534440605191117301169046760020636381873979353362968934567515196651212744627136883747675536145892846496934039876615979452721887811414182106337481157304745368825122704958164080627380183629999357551106967115430906971233448311889322174962498368661822048645262434316617002335857651000539034125212599103205038520758068464114864998554639658182575290345485242491520499019173917560082186582209873749740500060814962367651028843679566365723714323610316520152072746555335447671110302593778639570689797905242146409039432784020375787792368308268875505598703091462254702504191840204079825198086633869552512334272753657093170527270478993109763060374980019115278420442635122682766532661486187803685827805204932425860548598807907952850582903279311485545282812046961806823150385402167082830485685747634574380263523082647681024431829451139836633445758492979727710485025607193091214602329451556453066821425856201367806073135733874102068240957423943098269823835498934529025872752713664981887943307766144735038796153658828558861976596796435656535019625548383870773303255505702772682054554139008877138094421173685880219705838121280921399671638329463096958916899874254803364798323963709126116720309680858501897058691136363307076615551964695964493972871013116073042321606277442580620813413237589852521771025463443155928915104330580334863043073785944445655139381679414487755951991128090677066391667240264752352618531484619000631706728631982939556168788339666244859938628224615892942819835498742382057120516861567219608867027690078794080660551974484679263784869242753321274845087827309749401876139483107565901996851003388071829987914205420512343193856490391145551428855113792991193333936743028628914050248998291975356292299780492263271913104692030866677333537302929862909311582977590554506949386366521216582737209004524907962401803159526198085058398749019359968718159432973543859939862282484703643798396668861831961044543270199237126895529795211646725543988352113539458330355276275897024326015557336090008810515860414743721965431776921538096330938539192932231774633443368358639827928455131534808332555495633398786806767832772188815029785359089552776461030546901157797140303130057002483375257618352203159709851512426062260674595304946987880593948040950071070166493664134039294488524430252816834686347519957391586986207945007776099399320649843089811697111296061487846608059794048711860858452348121361958379458648166682951249765334963889600578196027403959822955597285330233889137059548507251335611849878359324396265626427977106062247977062656837575989295960715655821504762962310990813849483355813677823894870244334637520121581621190227658455453271623979517013862748302768415977082349610607989564283435444318965282264606820361607358366904147964537904602917993597231320381985160927630852626211063276250689577208761526957237766899656504001746643996333221529430549468437520751111178107208527799702129243829233851117336702389402750957676913650244169426592233187526949287057817462914333825411926175573864934333605580309583251258526534541839294589138111256565380934627587730499757779590456368014155820606660341810292633054224916317664947281290749204893281402353849342679053877196201668154281459804039252541104933894337242433489096041002030683346392123020318467553183655309334873331342023237157117047660179097399257000723343704873177163074724617884629588237640673348265619250986848614898570021958815848929877052202608813878503215582189990367552082593091565569907366308629777201060786079683191698113581548436337060513212692676824253047922330578125169919447032900451481388586883175151237653505903594794842911937192980237086428080028790648859163455146135608271659862382854997904224911742381328453451859734454109222250730191114595958080436104780911588366810797511017386037457506019810780670522574675642602806144898219900662829468007188195801428835339176629986165526830724574430358009894038928793712733069790179825651973334053546826273921321603826210184501382211647049108581305803586472292446438611760511192414387818173296342032690939256974665420448752306055571622967204760495766151032903704351048478663733694051599394283315348271425730856652601326010897167760906901352611838746283404485812098431650246756547352369197973620870806831249160409044973439742009702911258490743450679661270718633288253842024787601690838971716428428634761144642193172413609730726268654668616471071263293030740118018850266752605720440000227908795254275685008375180799384060254499307963195402798479759085782071615134260424018885409329134833080209161475948259762326533858290731033609754944457580177775645213812506030389366155203899948815220681357418603200113581325345098454838396507762268168719104642295099154887962673832649694329606574240636838867034284328055004844186812161126864425361618525134050153290210937583670982021544433874698236681524804776340166511157755235207879463729200379326019398358953810124245610971046138896272851053764169553459902247641385138480975151817276588450106448856503725671539290503207619061971292007085912629663729384817118737627218807240731450255071452463589450950089521814206307524379308858172668414486250075215409224434970017841179609322583451711449592429700989862003481968636241500114279031944028642179553491356755311424332168595860884098348744140532236993444893614665845470525214039890447857127881467301617638111924518458692410283585080890201528565398122559528834950507921253191119775861142217096616776756500266759191233419699689064414687556564880328626299390489989279122621718097092368236302107112753927918475115125986105033802419467427613757230128116801461737920018202034397435032452185523352173296352450576250115874295135893544153780259242221656177093742169925819825352179494549863490371642829438671470957000985662977506584358060813395016950610699094475764486827166696325422919744593398308344062074048828612380311168367065287106351348337523647217879918345484764355460758734797793137977738489757296889999394775807692389040608293254275719918113984403880122056850810944605485696601133552363557338201837409652409658735551168276351187084877914124159347589541463340073269648165680222458922210373939212489409662817779995192226101396148446858819407111752195612410299353381411744305899867171622561895085342666925022162838604676657076474851241171742614851761101416064209083813984667315082603515498017441364359705639181115079332846927333752918556201742082164431779160793280731951154424099525877056672961127203218667682611246675810512684493164125808566517210479147534311858851691218691783902424365892295752283529222561232410544559864903929004703428777335745795809220518303097700049097052521231653428363236124199720769339827850821847032041335581099802660147702502573849618574288932726765953622171103040408928307199704634214071986927170447789954941536799092618417462426090700823573228069831327266605220727986014465005780342032102659790668924513918260177669068527835160035396378989431963862095987105545653404482334029310801945164413678121406223966324573784556890113564146669555661220267362506075270480219685307612429788399221618172185057210786499939162952311557441648622779615066783814436579379339404495249411551817714675256106384540067374661346897456618144307228424012424589908911634383445270803905980049558676904259341639071677637324141188470993854015667310030271315721069250156747636599681053892274816861441236384434193749245104816609093494014137878550706562821904810829907347783683288597672302443576132357554396272474657616007299276226819936180405980233164909751349198681461190255512700935300532278066354213415652235662484952173423372801432282593687757479580333086172375397934282965604692484113751769113983709011573356216602185217036249680728821468554536472670470950328419057818591985052747054024185292975439851353119926550415642164003164874087230155492992588268366564152842606810322683283241223294744486421933563924400523056172773091809579620835732204893958304983791225854490940166009732501216580786008592323936736784126447824788876834288440891130560838042031982810058668601870824903329576262974533848591740749155341808132097483020079399780133595346696797354784499743404982416163466074632551752874272342727869891845013204674262107111809947818038563476195295032109150102061404725313902273680594115792634611976951705920547982141962688267584781811977214463954529755825696564167311784503499171092463027798133744093221309339201314448598789793213670111252068579849656717703099704173885444197595192904650256628948409654478900333876990748110622292322815889742010028575242947396819280724943935881795884186166310741897486237729053382612678100009104498646221465508536849427771471777344687313256088666496360624580340942169215417318806587144796368715783003733500482080786232356436984813957261942553564263680590433196129564314641801612119840424833131395034286371976410954515416644573171194129167362515828283139934812422754139048293911438946828833335320851739477919472890519637309860726805779709693426744963945145726208624263718151039221238574384994516624376598314399164870311940013573063269584243169612945268222286259788693905013623996938786955997903845251708034646897956199587875945423046259446239825887950511763011391926470340030289343452179113979182711818260249651718941061924656407799845921415567437683551606039121840481072782815286212806653692619859728171949979152344409540626254563054946809163432994343656736822125375220006622467809955218755567987215905334480260002675833268062922267263155780981688587974693674341238742203305564183309616353083521822216698319817114125311509721843479003143031864095723667677928707726076192444511942565713947658428816986637321692649644997436330905918738462530692234364005560243953463160371981524018888473417197801732673433018822202147583214977575849606881555330632140165438285062757244248623848942295452471334194662805769460982890896190722267839602778963340960056822916577958968818103809665004107502098909625743616315737894541190089745621406337583296992939398415463136260588827224714650212617928896085913651243590943883514006692139530546141125798023046372130470244268292331579059262463055828524729072751812340873608897170317174406262293409299457577726519725862871577710849840887844840868155539023768514658427841134848732436238245745707604660655758607580549541921661127480203513342751744581453298946015168322378333962289031538664251374435803974241018437761292574601779337421874266899772964606746451432638128548445332630844649883900741817374227511734855113943302027425834626225411158206849193907243251369292000716538447876707546027915745304588397636018982336263578254766544010664450793716596242652008799232597057045651982455775751932417677814766619009081829690028300855640403503182172874428710994072234298105129430422166718967066389748624343475501918933421956633473274482499081578248725017217071812510454107557958414638710579453155926836643820002842092277206491466242594583162135282225029581219381482223503067826800230438337473143043701303797161871858657697614885695381622366357016048123330644746115431247939026800931828377007090064448503700626286400525392071740753420483758625835094352347636594305313364859793763735418775844371711170545300044328984318755271325757000348236742721791598346428746734479152832502896345013684610285875369671703848532137867087309878672958019024201996844455825060335903847558011186503408072716954671140582226435069053773755557848924311405990502159320424046369514217074568662662570167798540155809094256209416957247051864102902309069598882034756151672975703092814957308713982297893689553723837223692674645668659936030039039537467052940903779314141009151540699563526876317535068823761973665955534350830404454953197602571244444738535383650916228170340521144113896306465380494599446098664261294411035034153467221509785479106296011132355683441609682927472796484431971422209495252651131986079605576842511043518905017460898682606490061832327947912410691890618096923830568686898005844651799779422563869153160864115869943147749869840733234340618503840406063337895203554129710304510951313608490580999738074516736733019478270141209076400724663683851135437972187366898343650693941090765986691198507257424676867600260275630986526922224538638049464288014345226677578941108668073769788903130243351212875831099009707580611177994311380487428872765416319057922782938955904791106775291143608708728479951565386235128737615489625710316514638930027235998940556141351627911160262830314248967061153750217906267020056819364767634895001374971444255147648739938347222541366399031035046021767680399203545253154245870261284099846530815626991941820375728398201263206868294348005917974946778675543975537789184977572250864631134697765545163588371695652520955245492700862872089008957938223510539105304296603347937953182504465385164516778487784082309276312929523604642838358439548880073655042799115267544009152275527645902681141202986727179080438145106777779475268487316061747434795282215080216304486688766155144255625894049618193482928394501920614129633462107076062295638654636946634472043615287694772713967670772561864304928679880200277943147292013982874793215305370221655878913592509349365795881330332068137175923325547067958135801033148701485304924570136145917716497469218608219082268577075198701328946039843175169798151322734030886996783446244415173935491902135511335185950863786006175259707016638390366041767169087304168481330469521313506824656141703158018338610860876037254269767139766599493650035824708225006877087607684955682022777497845598265093350960042906195394848850365245808106120705864597924518990718707472331640509546147901161940046585833340000689626968655935441848223171476312687565839720673736645991541334612382110073018535664089063893481308042497613533610308994707270360778089509576293567414611957796283909257596323128145817446701389945109295665497837236597259180191860228978718357533084235810887585237414899820750120222762270295822610461755287335997259724297042525999270142672721012480741437013092628328755277967199387510919454967210132760898698147428963508852319986480834749953792941883926622362985443111094068566617434644020758434431982353222646709757737407769103222799574808665417123471430350075067953031043754953849248004066225530397142978151470145362462257673574822318619639426273824765451376237828048672327119214919422967310594634208677010617345366186413358628944340478069324465570101348044256096818037390914024867536607509800913723330236743904380872560415739243450571521823220883481770854502591562876690363770312787372243547157691358817839740353174828590402495541519112673449221932345327994364030894430710639511042138634213055615716504424335286593647312408107809446999287112563089803716176691924701542514552265628267661492799059805282187351341512941191485527230892735355906249156273311492083916347324376480334834845068764268087263581292897000527423078625988804381608587999579175045441373127425554141505122920163085598949284940931981622687017012863341514777867282231289617413173975919238976621749078294129180498255802874144715189125669272368592956536482980274735344172784656584720973077405980662862690287396100096428895442680798383132374634370933566510193934793384929792515058806735768129465527640908440006252803714007654781153172290260987324319188066254446921443914794513381284195141862071357339954798269810613688844157446929598173151637317835676811954515886776460793173841805816898915129198656551213987133857270937825077261907935979229766983904818357485519258328111562013814616698677066756022959996887899037158296003349123637746365166002089568410167963689324098816471275816634965035180799178544828056535191986141258116305812442505878978424615064307237306197496051132489809852827033688072518766276112726615343934383706466473529945251758958860173102026454778194588475021107553306084587873943134944927245984415183922136164040941420505074345120517299503815659779655374146347508987174590310120289006947060653757557516774300505184609312255600548511164819917169715250651893459700359088468425193235755513936045965274678140658041679719079860915064889959317424018124447230888857290264403390655610190194416568410967415302456556047639413018762251372506149295315397691175405464793548574523647015662026732631315265514687248969775967283406734346757286111588233922418979552986647451047115374026998588849376894801100686867928180581567012720346790539627716177314158840480302044686626422631319034944065824947403908933584192485559287419845879650641303665561040801127253301997970625458980544126877031354507931656143309859835470999872029490185789132353041208183380536354064073766151913825636166095603864979120315212946409086786154303854133090999409675469113559599218905264019846804996080788782746686438135123161005761711041073093622506859831368730873574015759049769098306041262793763158144972993965108800486040419933323442920918301257513246540136281432885103594209048121367176674582683760272871754554742198514270526210682902523744079685107511019881724036022663134602972036975358456842616638855714125378515046591830068316220917041004788905285322323090663354289400800512568160636663828474150128001472026690455776663193929921501329212233777174426115932839477276056818713663471574786763946173165773188830599367739144355956689931900614371254651324487064371090522653048390611911724788569479144524998225261556201307862104455174291285351233006808636135142262596118954502726926429262577545183382077303391496353171899102859083515389374938448630196978131611467008364736579867705605713401946886237794852063414067752678272348170256471780771992300696317926734827224028228766819482058986315659704485387508533423460704131918937736526238406822726101470399399945579339291602290774694963256114714846185590195834307581152990799923440537998136563398041814857204508762343490536946297210799335585513740946412557574865629576302087921524165142110210921359674612650613177885470048779014235148546838978026178043776472864613793839452258044323631221872349030309362935122216705491135291801565761980634600277229856956490750356554486587520308063854317002285141825229509902782858172066603698315026484095554434356191739821416244378813417745728309454607506706088158553128781805314766867575983652995236605264900161110967412645980311958442395472653823478753439598127620424456269788300534549377752967377807458200516373507168275424491127282837693371155356217878713929102225031485630400269739832179150773293947932872969015288272616351339374076282384176336331220519592045334692969268739605206228312203320916739352195984958881772061280634259700539819181050256709809223037911414343865336157980809909044209198310661903831904170247953193470717774103078001509457507496585538815843016958054134309091999527798553902290225751183783528899818873515310759415548956469522395464441830907317435294354724288703013748481076717685963782015984212380943346937174451370655402914534343445376705626450785981953897975496207537635201115111910148989282123733919176695266933382543348026850360661741954889753064259601828190049934206781271241463195313368333658170166387752410863166956105127570854638358418991835177469230953651679726883053219872213430457294900460588600271463800107352210472808400800562354889660074865658550076345733556486544032551470485916654141501451129517066540063879697383101936922614885534708934137666278391002466457356464425496309948151472223502261815107161188458728123110943446106675188469106073885460803723146363698555006973512484818886516167089586517100925459265743110600713184844212262656037462445901161040749516090726232854315442437154831705460453608038208620166839404522802241087638335017968305133585597144162148806657619583339899522716653541068340241641897624188620688175273788696708690090526204721853528098762113539253976977214496528432806803081237316001402551342364372371137789701556944399883591665667631814940869423069119747741521843472292342319561952403287884289692928071216861224860976759271002588062056261354673868806878854442000444892006202039638400769380596429129957194016782312307240228509168836488134653061489703941919117349189322194418570175987550912902683844803122865985130619918258902667881794087126635883011383087541913106146676365753526393723886010637429827922670558511881994984182193999453104491159132182405614332826675089476193446242962903541199362632062259241280114535143058857257744707711087867630489452923398874139997841888017485520542201447272673125345645139171747378439114788990639520704130052574216599529221515305258636473540457198532393453225453392512957654546163833703128898058762645527727885674669656242719382487428548646294797142881938139276243530592687481467936746411561847384238599294439291709864801600103595562370880916929020664337665774416751781038554182553330064287449145827509679641141928866371322133454369840459298454426592355599983138074871271563986973839702387154635810909524585461058174266792994662171234049338642357427654231888481977413355050472968271881223190310458213110519644788609943023592999756467591357503009062464986686176057558610427434421481083812234453710383646837753655956842038870210782057796226897153710791507306890623437664166934134236887415764980563904842702664654868261896859913569035579087822420455057949795064470112694593644359934926776986782116737964820118876203140462671242534622749531973671532539198827281552339856131425857836458656944591495285897709753799681274454399765166196574895417152836643580354238756537832391715304640827404855712829977071272821173658740556346910423197659770170964022117184717984433389421980680275964002122242709820878011191844939567017856215319310285917129067619177216500906765179507328921590857133451350280402457134243249331307722296870611793949213022256462410176021035542253717986365406972695042277604808454066500146555158443202264041659424702248925076234984021167912963979304434197345547870887312134033960272373237681103400718955050909888173747617363955551211033176800994950291808532341633055651996695827918126143897702540519305843695305364373663731041158751376528067195086336448670619386816392081406456786659632243284627554130294485774864415366188583523810000293225871264026375888585570452745880632446251065969517656476340846983736656833777943336776413068524640654209623615606465475356948324053858896125912633291712323715212175728794503012487487022533636080811136993734578914517124960095946203175178031544651344904267829572478913344969132920483790093337473449928043963872120757902288821331065796342788613348735540731278768107478836368964360806050113527149982598082003973062020202195833953514178147216057536958651576831811035164551922061265850431391477130552399850782051569798400432493350952648493434983704518636216807267391102427131995751734720923123298620649681835692752698100067994710591306512549255844161964185176864311170528178398858432188513637932239713842767071014617266976545620848101458823767051334199415927639522632347749515218591485508851120237679578790687640748586820628093994681180834701790355507773119213012429175769042154284430878130654032917487795681992383347189920212973958426331927165412117778923879178836276286856140193122851449890228195201435183756154157608708996995305485565725463533030111906548400549252019400095060178756631736587204729197741968365548734161169327801129848972957601005195385550913279479050675574154874175452778294485499264224505129631274876640188330790945108537446888605092477420666108513344604331041856324237521677607285372725878353427793160228801209130151949091232417811531383556569232847047676902549662346513942674680020655246067231165773995125315472600529032555978249561660923391463406792368159130528254242940860769874255624504624882740878738145896701980956674232813079568775169656986053259887875348772047512970474110583154605096493594145713880339217033440567225680438744949831241223383765822789032582859193078200829322705364268680943979440946757889533110624049218252868707732770653584282370462288184060081615488836722117155197415156458116949189280765353654969959376010154811612596012027452965814916083357606163281888918198938108133818573891272171477802775581950078336481558251395700779710073197203537881211351165505886083136881579080792426019909984192033766323326127778918579152581449890915950879126211777624113466723501005817612435880759661444636293340931547341324190901703061161816659178376136638587143324803995994717615022418242790819351915326887120511837564462778143398849294805085331676490005810580768181059590405805866530555102089405614091393283579977413695873940236008732087235574819753230544462734418207705748184631601827773175345089959582528072384696345516054892179385294635603755941717647067628856477521237992823143011161185899470861923965661321547280509602893776197703720964693290737695767416952380918495469948488752149687126206577885881465472399663330760610001519242424372894642513594813308611850696600838410497331125511314742817195031012731407442057484667168621882460523272058688494441283487205069627484164234826689064983770485897989441917042166135152867291989473285885224169206644999866146102999868907491602414622727467522749695824887640753351526329823096904908592441619239384361856934602901194983590455847915118272430931771709540173346137091733372548381941265310970965927806173775149442815269371356510465934919048979366108127722771297625097763922188326141362317760227531134011890716529595767839583316867672975334827536704741353126284071519648431964885027402191834335284097625441882559013132106065817080161930936464827105694943714897730018720105916206241256936717719209948327357269410042158574276867119775274817071483542134266275066853674305518686500361516240455777353538591838435093324087031854186462844277144767968084428883541413160657158797962229513357992024005756310510953729143184245427859307334565155210409461018081402238469154100351291655256768806160497656486051112329626021368123409210499247965188122511749505123672628629494937700965466220145134255929514555615597954740616012852655343291312213943609494677218202160704612082346519457166706787983871881165562717749218106600650944508109138771220578276030343118851039534029609939874580257127507300112463153674978112503524599016122488789649715247218680430760602162931494054368320452470738145795509070616564905645850169426406564993796999352274346814029217439480239599369453651954374551063747881444687820566090372215604821965622163993037162192617145358858661576927053508515591475709622080324986149155091181952875142265626645497950862810498652633167553570404894722004268526682634989461379406211419475104712793913167031566978793828859286624385839270201909013324895018144590699176856980073522370977591692688294205040852033718489080907092080774571190992112475634438484233765354645920607588313746164530818136000638478280998187456005969630888911190411599658862074704334428419932266559265043362652907607959527884344831816951543315124509921033655788958650137675244099955534651547251599323653149154298374871605349783520303146430182999659189670866828535903158780220935280771320929828710488652411676723744195082723392368311328841915666000151041513505695128407802085261326556571538278608183345798427570934972233077278620480207546467611250600811652811918041684406037640389506998315018029920448427931437084178169190174353936267834669285916673903650765876437101847488432279382300887746456784482999912297422974144510425509007739617275936255916613449023418085555321575703274603054481114944382143057830686891127314452936597536445304251474089807168299657465736675032332509515685005757005010731807971664659195903355311806640317792913093049072258760493753045875321363846604365285236421677540061296862073497190652226908617011649689388422886841314729791886180428874640327793448539143974007280435813645297210448464012028026599191674281309498578478436610757833467611477777425953347360679634511857568472985492488702233836254117096042213429088289403355164291070457174202400832744116322799782615537443451464955344233588197563372430509611827009595104383039165100346767728797582658479869474394968928631132568658268506410295720185423996609902400233803091943104432015710980193817353921963459749343555587082978253061944944561625465787158932542211713978262884630865270887940133045276801200369535194182052893648670814331672899600132890950087406928692926058012024057896944215718267255176964828924963896924586425564719620850837980559694924246216477721801331849373035374661616358261439716389971631560339512895043497604702058418440118879765734381435647529062047073363915042401365756334662999241161914645058847701851799556222332454120130912315623073630737681666428158567342730521296527500021309827705444035215752369158652844599383816342350430569584551993884598632416760577158669153492436821028828177435504036373573617699116969717032673953511982922959490460625955611267272395208420915372142715499430804489840659136907804594999619594685632968314347202769046220597945476541893202371361763902615131453618455605908863229328455291165734958439681065140345224466945569694415875253723683104152733810461751981491791062081526729628525210199148120568093894594478707734869860319742465087646388200173606236549737632696293658726749055969386778845981416634671401329683735920915298102745291658859101515703754277388769982851388125775086871749648904057502688064332893992832346909934791684074798552569784872405996024213168727882434297010098304247448350109713546474779297708216913785584512453416886749630023338824986580115441338950703432636528077294601336124755990805531048398608630535092672278849743545281472084013781022086671093915385633595195843358427025748661656717510767576182745470796227799920648714361220630872163229639375201182966757776616384437664941808773300805196749384405206479316112371450871946731432462415412062316462073097817604630493817343912467611922001291963591254745193911062525933980563406648257778602383703232625773273506934528632994756731206670983734757759033089774782186244810805288356478795991272468663749510955770673544709943027645359297798799112112708274535281751955327857000316378141817839680544170576898509507618381558719339877079363656563754763913639466879278750639381164871297768232308971170327187913911821172646131952956606988232601867752016298928879379165927589648012565174199804495192563086232730310076016472368099436905743406026333085993474934309475886497339425610709881909002191095238040084851695665567812816832519304964762625919510668518401836289893350577741017020390432269251603035824474543045157456334460820880188350977563807283540273935891853442612245625634082243343610449455408263488532113619236737388503882118433685408199431126711205487809211363760035125050139359331189465512947741759249849403299590890630816495827714641480170324449278912018948145476717434815575648644696568838229018310497938337293348927180157924449464864016339009567665839506620734592952731901705609063290767762836943694692075105454712866785490149926920466292982709564030821394331715530989267841610417597683579529908490458666256021934731079019495187028245903295941510103402271338280837335098853903566721733992062646112082259790399076699224592744879928216745677158777144089262474360990944956115831540953408024722404796158752531769115521987476746175565478594939204005002089069741024081232117302807394972444055848645442627487835026666996192245155014875041544358647214748237381732341369064680987036996793936140765752724895067985833395340324081470253390534989041278821295230437532289894820079057508079916134458454686109025441631682180337697223740621773433957309540788255054585225026294125536934091862609466071096162194501659319122509492276781532123993242833713300963200609750245010584094069409726821270118019546011442903333195089795493157266777250555603407133171825305319322601269758047864687331069243316032159099704108194998190874713060369525236908225066168157080032804755096283504341129522797186640066207369162578291595880114221760267590912784139780459348129528061204959235907391533712109598057505210725150735833813165349058877826009109600113241033752157260735596687502147243495980244809746818295113422704260216383402380050878072482662008488018732358085436706260158014166031859925089362476652052105450966722425150154313049399013461846301762239036399419838436435745697391886263936543544341565807302862624928097572089187048782848794626017292061869248083057256596842289565758173999210624867964024307525436762775311900858657409424979060496171067868020753343491110415692064611179854649771858420856081352093726065824658796547086035308528598711444942665227001162137090337013410282696147208673560972986156597806927454391669164330494843786275885383433638233869772242118490373400904472217710125987959663212941523101017343466481102641419941877483937741592157916541459389080598022634729675878950235638942921781451568098455229573555576987813532085331846536306285580674991166802420050218653743149556182510134066201549029523684008744128410287220523185612737147861518984101850484540279039652118438778085112922924852977392133065953864137054438047367006875877940568029072957171786356231840537164244632512095247949801217298161126504257300488514732157836631248161353754024229853981804996985810319732184809723482533645210367982925788623377338654436695044669292359224063466353222411761724990538380304541638928140432598406347866512871395740056187043011898639180122652105806577325141263561469253816812593676708818663444996191822492249002032350980746526882773563725058753385328152590727064067037967148858666123632910136344409829205134309249869909617395451782210339903112360784799586885750758880097258618255602965177220471582215739446495051393746774712381462602147083665378966714535799520526295156302417784045835347817265211088350586493435200878991665277698392185816110674006882237332022971671355107446534663214387476418738643126928872396436396733308454960674019612878103977430164136929126500212056032402003222851529793953956534750737232434498507275123659109910439833603750208427249377465479143925257512105066356195165678794077709857434226590222012705579076571882445623856683224153929460526683548630265237807666550311315478873435991345511783189088087108376043314367354595010656266966917684096387466722869732308089607952129781831263356207356841520806308759240734405617779845860534701647750331394660860974850437038505078137934427602459428753977446794069927129960091661903756795416821405300610591678232029923962403382520301393011550086317482761037442247454368525371748202847436332446903763009227020768339250465025114062780935150960330532723304384078872768636239442158473482107169575135255633033074506916026058392310715912469230217702454792548656503550729618423378884784170242013636456548734961818109623033200662978216029076643921188510543591192794933888912129560128007649680598686519924625052361563687294655259794080578513858047628296705398268792141739966412869193214038013648048584750519724190621943520154891223372444908359228546257853941789077758394462997697231738188223824866425348783587099396099614661331271768716014793675461531258069149847759864445820599131002236045740445504567109843797008843176319099712569468205562150244208964905327855535467661848606491587802855127545339505633244124528661863385034586986552313706016876141587551108844976859367645117698436500248822220146866872195327409050884704954558550888117776220749865938607934481528037647383364556199579481949467496566149909237227866943472014079751113375255339925405981025804667543089905448722171081804896364118526859321933402132942909119395890000210766316952279933809077490136102931897784500146810678821731523801075735825502992116418799712550359079477011325751391724208062585158364304285585560847037081030900695470347197499741345190027507188567589810589428690287445927715371204687203813855389242039347490394775538497041609924671299452649489833781476563720016402134913185980145366806646949426967283063896564308334758492891512100253080770877022570844426919471189307198899271724991550140619063445544233476301611034765476250457615043161599419352733435247141322309534643178706323682644543677763850491282315370678171710625076573475104462585672857646063995979386330030800983276694931803997783936601651004455857527039040877968334655439982725123720167091815774796020743241643185578023363526023320010219232119780051120416919766298239803939435065088789012846559755579164748263784298371074064977774954503214859956315411813694338046336753573489206029865073035310059276728391317742191635929270649551638400345183866502211363689950087559745589706912344233745467603607771403239025417901027666964611683947075638728581130054718638134562536697802825257688135399977586624002794850665275057931683700071817031987246934836835874771286735111309645556560451154882180798397024616829285054580119728016471391982690662314317988194662327773011919639560237090709868451487671853335806365190533193266991400017818219554239518703345171620175367537741327658568123276835255182684067120490720276913209522004103623267263158127822379955173740192049863235691560873052129691035406766923677312108483838031378090003069769867538970773317057482241546014390317539834688082976377892317078889921075692509757155860591841545358423920131118570933631152400242770815647575832724482622865744797346988895093210005837760168907068985191565236993998509463450803577747032481512544317084495016187780809640432283319378796837954014338698717667177336010303395986066924429352972196927807868004499060150857845020899245659732480910654714406640564584247423798345133498087853143079727157876737862149643427716025412784759321492275968232122871597695357518250825933720823126055776306035624987406000871461041831841062815939674642751976941340041747621886286989383635371028810346389130206751768067035902375441216607557711765445397403257212638972417922571330197916228906275597206358069010813299928982550417223395783512681059437925083898251130718625600149807334111220638992721400141286159425828163575532124219585111802036583871008546591927081726229012663171660081461508940314215478481819907254145615997017327386968589239008605134426920188765334351499211979297020005187117656839450605075561073963452857102670990396245605624867772505850799799627381023366324583830860491914086785732400788003130207059624636994936807914337169123086809942519783923533290918350846872332137512302149822786649307237337888031984740300658343068154635032640646033006439951177917051422413714825895555818330783099144328778186063160712493375578620751705975983179082363760054810641227924943737628003105000351485098415230228645330553481591009845365092837972226099984658364804710905091344478936475627951090013523747591821718211875775613346003103744641118528954779135048407962571356879626195299673913104138628506353652194017521135266215065974966489255031975492776958230737724736501783561261464671831108762036223957015535858724959982752779680046705593399949722743342494710462373123829239161828879395929830135044098330802458822849886237005078574617604394930431950526338060740501230190928274276042239914453861744411615079241669744888143132105679196474399557652833529518920456790353328175315514164895009584366058130356188322871251243100259935863370156999275473199184530666371290315662767458077389098475799337428413320301290182798919497216527438110143166823451216153380582870261965046480894867095411096109122746700246509339694311393813799937658659810681002774408048920018152586209726455260818284369565567881382343675006065625811688446272908896580205294733286819922596757670049017552374590941814241149528981405797571134091103634739185994757796082722052208092672328980629783060389745231924369429223736259667168266023464841183625559068662685265293955669957913105962491676917362560131527861596622363938358013428553964208453168536006061993154230051745522930385299015654684720981005370173960721885360432664610603230254788449987517497487468393708028388239366822372986262019549322081145505869286948459298768157281913080543648002303486119104971697175132271726013155598349510303482690884290007297575362892724407699913635270346100562648899974557238427569046400030259783520883893061598124911631117010843882622212560071262829776463325680998067899878435606838548992776116046640070190697680357970894982137362847068365463600315725518422774243140396534208423174529587055991960649115496569748626410465182999130026872321919049783253699731137607511269533472300832016878361948667181112670605296095329970712289235333674721130286376516997696725270972811421518306251388559327881629034142602409280778136953249653593989486818209045898878401317644712797557861326336452796138565897832512126966748630657989835579058197233564009018195588008145893505160902187852497526509002624963043593175801947136703221581999874974282047659939502298777151504036614272887431811703278489881966356482416954378071634058638861536246737650581082311115462722779741189622495183361612547482679361793726926255758607701478267110076747392543073658031719944066786990571566580624285050337933376316333399826528254647128651410002710617217098088671964786208885726406004959662053237014253755206980557862796042614010650510305762966143708763325825033685869856262983011134177187592111900240633320835217305808948755574154077753088359322558049257308309198815836176049528869226362007790978460528545363567070305341141173715795332909470637226779453723238380706650678307843779035972442495938951575082073509989662275347669826119344297559588003520957377613465114007416278715463396747674769855292575243180308045370657663045479142721121621330405830236044838011816818816161087556512819139669277865400307210839526076869330764192445082760578644927278715528708667511900527114739492696251148609029667633219512946831656534337417677465940601762011367646810828521751405048707268366642730571720866743654232983524904507157033773590244132143210948842347853527714304224635851630286823427205503671409276625018431467358182521455408114503464468218322865629787823954952904357457037902709652311686702603702487064211152230262534904001935733783679849932245539223001744652404785693379523667369158693533378611179187823359206304741264628125949804436498358477113279696889088360661683205399196574665295168112628615981947388216191328555094615415015835922854602907788484420983938669680445707158772544292668969579646018475269637068651264667621148388744714438682761973247471793539333697729033196341344557897956894464640625044045589220553112721536840932004145492492610569222234008386707130991292718870062111536845534276638545741873740565895424674169514084501076227433140942620281701645301458953563238168305463272924107805971636388638691640555360322968247251462999696364453651406843174490148219321388196969932451867110304068035946440339141558166987448284610378983098712387557603680171006463321885622954202084444310866179261437749570205437492700419057343071951262866710675217987532854458443556405114090505736925278604115648544655747550053562206829458229642658151717732609994057533856430857052782601574954932891578014127552778590183117115905807500737500891542144686483958440949687095773673120015865532344760746503099231916639720328228178834974644883209883421377250056819764976360636461304123283608133884234664407803401967337089122395140668016895575509843656404471373583161225385277238208840222920338329922285724470620787148380796089456848726107198942581929528060296305304193058346385987277975121472963269275372452070262243949179148824144302187529014071623802351920671743511438535845193736279151132868131020702473468787581897812189989802738961382300628078588975160936689222909998207976805749300118733630673953291529620706007594376775997268453098790195731331333174578321393792760421822379924843682459169418508141511135507531719229375063823784706832737603070368356405556263231323330367710436345095081986625354897944731709588581745757794696102537267846783241714164009855000890960070433788320437111329643003584426633036353531686163879018224708407098130235082356171530064691121873810184307512469688907751013862238352665892545287383575169975368564520291444316547815325941961396985021460409279987311778900561290425852613605995819581530272735492667106360786544282948236961876487023354544320379924134658107042985729029445107676737279874275497992083274557968121976135758750376817685988501318470284757377798430960490464174602912715581902958609634819091003173710331808617983131790628512926281140685116940213190472666207545225071472763721416726978530945982022002962054424889957068982647846341003955131033652763338515633150075136488186276136337232373070643190998812032182410055109401447234856664792934642003320764502959149251056175195111406079345737261640495557028882007967429663981265149854122187319051710041340003476171533067520490611412311337585532824629437779829307304090667580493656965086310121021536745693291282746127186060273858708756156525941208124820492137822740540633971440527280235893485885520114718710318402367581867354267262023774680516004829622963594620347410865989759673678561206067543142803814871736223995186195043803914346901857896597406524085850562089761316132936314488115034964701801690963007746423284284331326659956919066398193491041857029565532626409381682034809192001573515001788568500227321201039884742964613067949084790847273376344062228144450629195285547641667603663234128729290774361691938081755430684223433368555019266692590601739022809488654944965192047816192604796998179165929228612176442270416620459160056242832736699986667412921673212789570780730723450627756934169189564455462748897412229179445984596816592149932670223041085024855072343673485770489992721996165501661899374750503327120435539599991755950889228929153223714825674913777174058151763888862948146949106928020210456350369380165804347387070507975616587494738435678854197988335890614797246358096846229885603942322724565508367977311709050585083236914904359804453986488999303067313819946147761897096966263535406055710183839014665291865846016776997452183190925239628770027280171242453228469096752664376501687921870104554409164307411850689983562581708127019814225592144106062913722260786655679994183677298267560303875946808959572686226086149949060549464460501707810000169223947419476878810166472055953340146057804930129908978438134959536591226710022443272570269530716585417557459290017193819717958200109418061217529236645482207719761731743922967834344660287012000563250814854146504502100270972814044015836069237750025725899449376908309313606019367220998312168094397270087852890894053059172266419811619095257146231551776178312580427260378790844057812741363717603491406817130609876164507530299144784143174244361438003411295308007751985125947267875469508100008600542356812981878827126090411558562620952247474830838694199862765603288160046833683293794715872951930758814292131746978628650507062865859843065355191980131778141473341527610247073060485116601748838258190421897507890529898795897783527056533540719910560218656222533261883761493400359395005369783836352925748115228321929785264752373625792299326168853709588008483187721970836269063384938279915606436437475321431088412488850701021064388821062369824548874466076893813764905891566607194043471259669298995439192110372620463610502563069242549766468757815505328198638953856852242159479501578646546422819634108577027967548078000284141269274890441537777728680442992548887470065759467780493453281714329097310591283848064044814793297984252348502366568578018926532842215755184364566891966177137141410597370571782206791583210882548406209510227821223883794303234780325737048418895902571534654334287143237561571209201391333388508645967342200222330344543268783101705062738091561266424570484810485661636742160910459954923956523133414255144644144031890452379304594279115110654584691097707513494594715891761212460753577755115817368956581525150408588099023341705798975993068365313865414263235811456642095181962220102624692586956440799198204428699503329571182399047182734141828978510145360001438425308063242702712820719843667425973679910136053499773373095528598433778354994712170013852455056977755450209474578823754410297532199905830220904956279352370917018581079133390724570028458876718034901365734263893787380884078664171782780081290375295054576265943743847437918002821927840962928126416756914377519870080971538773180638835865718261095648387513058838978083857159894958648619938862649740661505486650859906547741168034313019217035522677582899229656229731989338837145244065219290872556521680756655881860091185224988732138148782381657959306014697034365067495443228116438370001407208795425735070350649204432965608385497376497646072576916835415707963993608717450345079947511765487067129301834938906468463864519081987956315664662606039942252915693691751801072164348877845082150116833507116392025694593519752952227069341804521791852872195227845771750456515895831032057481626984654392038578549010351657478271808714163665460582601127414036711006909409298930237151957786553220944376942535054687265252147395060328004916853618078235653955537031059385591459988138480626229581725269303956166719796562973577924302358769800565383038651728497813075191496940178935107759168378953813214833991535696043902340813421515540584708246799540537337297150764243522678903106942389579347631394827508453486374320616651144435469328197080940798382025792434407554504214838274874746260963120327081436609512152658474532947984985240410694938815707651979257683131868734658862478354899000398201149119528030422512423808721232217220441130626968171852932383556808062197474420791098082346855702772634343182740777939097800390397038028880874404697474870732283052103215633520937856623087797454341089672159221667659746558036628755181509441220738977985474418843552944537605421261220243315536563399203067484925632956854999650313788705754548440609099079925761916016596424543056815246412267620106842271003005507222973000743564307347679040463910031552037775823737335462425123217637112899252629675676105286674582160271570494195407718120158950957281881508382229637614360321286337997088134830999126820244116423393553114754945274729590061729354954074722655280752068513227427478388782962608513965464184203191619232650957579353888361320394740541380861440901176936746306313023210862259184105154952777308720002356108976179590788209953058345409144564931407722358280922331238392231577243943519842688034606827386483563066223368820457032390390647302776668459132236758131956126360995831911131793464816477826930853463606446395385290672853188120674722895908364975826764220132883065136922789939066065293470639952496463414067345906560095968619002000289701199756764398519858775486083010021211782005585710271647456030859162809590196524602686755959818528593046039904847170975292918308014324235402159533492346389300365570575152120543380254299510462723331868462282555583573293082405109832207339784336096164082516538895205265976636097564591590842079292569798969266271653089567592658916644205670243349586877701058836116946184519568180825563626642162540894578318597647987426732179947410506115904620765119628540021647022630492165655017033477571068890886662128017381646799544099034428579094117989318852418578430569080351227992942932607267957512798992116831283691845899665882378417289955646277710778075607465497962677458187987998048991922218739301303429027093895073090934077243947465450995304240825544536211013022695244121043745365640700284332607991516564671658024090064748946131913349203093096483933928045976371976227245458542456110144996278642162549003162015418269470845987453571781480360274901264522426132246549031544856844882499346984582671999898055121855031294320448360364901178101513849145510635909428458688653945313566152034456136556790646054040242862725001977805533478685376033489453126089444990144018798988798617079681841417545628456457645173869882340623444487458747616427466022948982423693335903901218743990690902439036037341519195498783771748771567471111241490137872956837923040045314512969495044258887763865450433068748194296618389255348697431894294075199468354154524217174216562338734178502794104058479625109484517667589922222741574829204380329279830449547035056746790750295734224932060686191698172786027190812966132635880417322229744636450356278950886773984481461534339212412850910519255965870550735144713676702311564361255920796594938793382268664054400203716828493862862345776119606270352896053113098741075909901923101982571721481111008036245963181904824029162568636087410884161716174169039264217824142148648008140059334526018783380205725799336192419764695634562217674067978723373206812347990542895155212993998237306792824359691272158101570035293156280922179630073277411924109402496825992634918090550567972801236194480975291871252386329543874990063925831106815672983242461848145191600985344401531476960498613788269336008466365923886941939660085598012913762050988124554747026172927202628425953060721526931362126232839401646229536518171997316471280038486575644114905039184720473807248752571408604616661445769218252481384772316724218250059416123722990395615460475428214683303409686549811214585986978400718806334427402476860605223817603812326882293100746116075542200324181176080816643006876573506716250649841563503498060286606227429633711329486726193410480576406931734943150587209447286557747981049866652081539945691103717397762167546318416687066907773587507302309832078537236304212112045979942204864055076046162503429537750047471709956660854322381559634997728496033527131429423429105100351979502074169288909453612250955713726409102437181686895895722661219939151572988566338955630450377736095917397652483347651905233355553756212077859713226201643951121831789578163933481061772109443950485020143611494707542239165905815763610351415697015914270020595588855533737936241615863298922283805398079510745323631595097929698062103543117715413969006352903751204256529589515128670074568223902350241817313524666949171079796795107163470006729353729777058462548652576462783055704380872588565412649993217212426971220029552266609450990326669319289102731072870763405956675060461513876473833223390548728991342268214067606268865969479774008935277565332490502841577658172721323861667948477094206767728776928285774702999985467450606116570461407950442220230866119738277826564213953934326439064999991415288654272505358644632691916460665036308984035190498239660098608469987704917650746383902589463127176300127151172089493762237146906995188819208321197141902816511257151592766930984493719957205119386426867503649065840378736632175263646589998617858145419682571521982722534375989561684831680227297818374816594323182592536110766128462021175211653608907625325461926232878230976953755328542929294316867585156319143428015344111145571896984749092230162496574922366482804508030244478319986581924565870419492350616181163204530946446880167902996600116715878946465271169821994821228317398136093655241745736862500406997344162634017086608726081015974697093206883457028405591998048197498217845512158408857622742571551791406862411978983998035928908822462720705584228250455122411276879241048586469179994006766388030615692471416071647778183786940709375100289646370180710068747674492860463283828554757880933803452027814534056682378266253046116425452314529472851384670621789089678156733937934809892903397463106672912277004560451543703446886131169921747024532983492640505120384386569044760644958768760416284512746646832779862713938520620225775977984306620412031837772635587752635384653713020861160415995393350267151126859694789390685108054214662183268490111320775867427650102910332036379004834763676339371810675075654417586677014736118249324533782525134233626571783472678531795471756810642357230710494145240797033958706745903692380269975702755663561536877579951175654079533711533286733216452516790257014598151704016011855525177850316452085100803390474404529322870215881768006351963480558311478078823728917155021036321376390803990573945294561750383522500282513316520634880655107134281464423650045340035826625123473709985472875815670274081169345662501263068372042201615599060906598940197531136745165752691915988718539737644598874467103849548219724757903195932334585415899782573135631620067172613688578050650551483933711290687685503367334391332572782525331553755264428472160909453411301340888443180905405972528365949435476573888400349245485893492102136908068929987529803406510845147525701763002820766131708139056450065168031723103748024209978580043342608775947293669359658939053762990262034312249324863718208246392358324791352758550929845231376265733609411976643560919962163670484182758467294877283356199029415523779633433866687198259622492942354108016794105199453392437360834314328109684717135678989338137368913039248782098718397195286569128528169072637654692090475347880272637707430700397326408840822809327036119508841732683045888825500598933715591902420090496520775390288653891010872010912681915308647104125039562030333774644649072350554482021364000508218515711777515082437461064342508986116489197699763694054292818823717151660190918923843508458745821852367198273858459311400450813791133281670767400492532809462002375201339030031001017988982487787941617636665319117862996438042454237363330797945045867489363364515174860070509188033649910202882032309817868950371194459590386526373183195493347666968633886124655671321610675375807565144689194157031328059217163967843028998106610081248440134656756987730961482959420958607508838509238512300637584120289161258545281917352285316554107909953567729126368112511816278262245440682820973268699251832448535072328233863877696986988244659849010645903459665926005574824458168895628363301940796676065531157824663787777512818371063550810062437422485755166929655891675612247113166050522565851589763765214522056019845804073570642557586886600148017430934007742533739802703771167316750039431163354786527939799085866939869492786014138794394171970842932549748042990616660840007230124665462477193682559888453016368251299868409502650790859621358406143615585485115357374312008031164872979246106387991075993467305384953948193245253463988517425411763246871973549833529292428187249661778994871719180455230166232389945652313218192214580966815036326587920443522070282987771765186494816717033166428083383068134258392713343757176978037259940491064682339317901382462196262300990638166783861625313066143458282285087004223836356003792856208288751702410745743397126306451638258079208720829367932808729421880757255152749034974856708431432480967972392995489642128896952465565423075352376231195068314046468533212840732804071320161348849848160279895106582968271110174896863923206999042692257897288871210035297905926368472976583454129952729529415740457486566303196653739199889628844385499146119333828787269469277144703924601366626357732973676010393284254605818884662514118011070504679347060881535961638646699106061453403057766739816099521114967868166227837760812517775715602791524581744502048506195224311549772124153005862508456376656594761913305859073984126779113744694071339714180226943367177058031779185237183332727714963400555254686459372346396000864214038323293432484404061257499174004510769742985761503746303140437635019463749093473067391193887464647844965801155353299030261152913391279732218631834508039395511704347610229432129015906600375134024105369964112271126649348149736261477944493393480130686565554254367037930841302806170577622145453027181842136955927295745946601457175890836976580264624750046781255108597895895379351375904059522260497366214591879092623772407298933996636096878869364770576130315403820542415249447539333277400992643655274149980037131936186291838216101582589506584134305101134817496087310629049735369781852456409865310424074295619204237622277061316733597948689743085761313398582390619513229846586087042336521557743357931972125967614290885033240956471277668094083761969435454455094068487728169360835427234295832847613851733197213029202299195949853461762842267243914378702120261815612566951070011991171782634411086815774504408686463026596092695958376069520835535759246181607755127598977722552671922273838391176663931765023016536687824027671394406668071392427754412205400882877553481859460635800519008781468852711713450458248334447805802760666821724518272776665498095288290113368986373361842074446500129624465488725739975376674188458202641730197161852867790806567919327478769845291827706682824680119019662749784390540077318413834449177348193863939750964590759385715828958014888066655618081112673214273533259498822456883303604520807610027939504120701295853491072871063302378338553696164531607171949506846287933461966329396960798629083486960307009314344337832065364711341069887910275863085683826808099160050056810182160391184742055752723941404143329344618774346466668953396779370853872636126836328487169731467911832088628002151804450343360758280402804074948639892736727657985176636887909691545963638464851953134727331976813831551527315374750971200111738595814311431460108790735333565281232374601955553691441186484732232186086835794664008756450984344036307508958634012624713382920372228333920538149649500440929711127852908146119770624541139118797166219539948558377298554556026135456110339735509456637220282514744558389785997223971172080108846060666540246204683570924453971414209719068184530933666489105072624759494406243403232911308925015403330765934910311317687742556624034974232186658886540679444042701717977017703693884722272815950631277421556105540447305542837196787556881201145343668384029406086524951372692191943710728731725022898552144788316634976692180197197283649772906078238383173864076573442943215882580055160179279467199831897157528535567703115869368660558895890857168206925502701327095316661587150691222145882535304656192531414530188557249811610964279433581030870176008695439515195914719454018870118752780247424752472447418383679434094386148708949322624159810000720227134268357175764662719860428388198492337857674838488850550537473517288151490768427002266058019934308637476373179946428010683644797816143693536676523943462237551250135720297447866867329800163629279977615404120539601417063172363618616349464194214587820726280568455571504620746562751448622209516689122247775265565326032698355336527684017318671310211774791353351863269709341003097636640469562213868099490537092098606817275336277284880102321204800314868346204847026074069586346580013274825917493451856077854743925481530562215060879715911951094353424633804309307299067211615832382732202998245961415516577923537570468308755728589460025062716990210728955241161822917344974799076099169786783770354245668137427746426331932891280928406037956430312600552235125380622583893739559655008702396868413197579470618941888166441290124280411679094440562487009859988091704990475084935558305905410827529053567454369964175885615412693860917658993044648818897371781624452858859188677618818180164566667184327151281150115188307713430913476033398613209603595402056129838366316148305027876365780514751568090090996363688022617265550301989346587281470768114095961502094013851013538932520791298017003581098207558050178402946680538052269821251417259222526734975447567018821628935121271194172304188764464347428094347909795114499525974940387202354877519950992228308732718958313959390327264009254672131896626509389340863307015711176143608880678486085466408295756570683385595859447597511323929111016961081131054434334941516762667599639564493745814613217845205137665951445096129758074907478715662840687938332784269075026247399132971553966675452817002525750109111805005369739925153868070545394068459415961434355244140227742915572538094347750753001408810896461843829185855664900619807380691999694469149218712233862319061437760806086616598371090681518789880728368068441759805087966604070108060506441222992896309680872855831493056730881593663989149619967316166308342546948676942215131670926778385096886255310922663056029873233118554838051163950601507024995469563973423697744643089148213759498089448331827018192446134601892790460709350670845826673995332893747861882111097948360115667658198124789451147845029218984999602543673782404641938694532968797183416214810053906996632910394354712693570815200233713233334233538067853702852651484342908102465302234261213000360157666761989058907683246219450959292235069137488300044874065286631926378820001460339745743650684724329205984114656244681488883432444471471020120735422234902646560321421577909973792230068741229316771490130647377913576908186003162857265607816315841868570913462952405651439585027488861307937912299796127115883182773501898632927055744303955897544555178198185547908316575455486894281582515513644212655146811454785177175789561247320759780262764117570678851588508613672357091861274002684739339255971727512239636946035533187976801930427687426518665820506700904687979237416089466727764198813734450514773680722141667533967667455673277275569004930472584415352201291901524060969336769428211370620434967995653219781739548836961473373115748788787774037334718905357345022058836665064003331568212119628298962380318845641233392040300313204282843891815337901291046323208831499928212478899574701674808226744151432075734591044081891857656598163118691742523836868167355005370629335939418067227000730631630351742443508490454801875355249391157886032610480157480186249846204193169539450495683105520120665450144854074475720999133840111923888528259441769172748209640353855318725514794416176455923014840316494189373433944899585675717779711629351259364732931408209405021816054295709474418351679777875619563106169872045579854201040935737593057036094013273702641478188051253038088409251479510776070529136494836959107861548261629843775332239488464434653570529852929582657739602981213386933510634110180135358947634541372589758745565860715471218959976222134997712828813596583700066637398444995418481483795576672144119953973347244401238161115847054019355636504155470093350929358854126397887974913499156443659527280368160672754895573464073663880796368151416759213943408653859146551138773156561869137801850556502220745864411828499246225945424296913726404423590781326141766415465630066682707067851302602332653313286368672841931866642696843740619225988207483842548827948722160282162563768467480387657456888567495087397807178369983053874006432038150209399162828967982314181977305652657334177333864423515787687801188207779410215490800703603439984129448170177316264092001882085025658414432241335709754494398342257855485942500549947522253205406549266703704704609641495727761989754773525060654091195198802900307489784470488301816150781830368977307637252848536102178982750921088359201274538945219094623260284583272841562758223196928920279484550085674231121939248402034223582551588597609207351533877187231046017601518794987239325449030732307473556460695056503490901115391336431410550055962510993222111861051857368521519042822618047556838092980828538037241215146975616926786245575657249309001863292484954108173196124998230740043171841568048581281911821494417859351433507585202342776011946002644969846541331451897071177388478215664629553025697974497244702351916786964930110905763020534726580621043764374254320549701736632600735291812321308000626565329924669022848159039907665972697656383370396734050697791581845573964820763102104377069526576892446934128800567589746862993686384739573078323592233997135528626530477521503587117729834727175309878249111228076561940763044364809369206209063478156812024916611906448428387677720326487173194723340290547591910577169291187026945378264586447438871851971860570842307381392465705532024541207968493596700726832186481682680367869880528091612237868567795658293096254449300630652650207288274452494855588825911453722145015494971594559216362911572008732205243004208886138781303997881079103804955091810084301072917933604041396854157253223016690180938647849287937357093974926632844568941458313110847263232056651379897532730299747140354628997756814093866810787904103185848882474620569178073961437796899622311914421458756616691869183085795261902705281911878020913047434817675177582937810568503037702199977486250555460253266037232141008966737171090816815601455046440530235802052556758895227559739993412093333651034490149896977353514520311087877317972532242899895296056946231101315986543854327791437720465693493045798887066595913569370759588184962778771209644672955632151373126000363811412744543574194939384423026495138055669374857762135135262047049188983229147980467872805930726713694195687350008053535430973313499271714053559750052409431798581038708723080540333248651530766634304293723736961859953703934632778892629244953729780686013931860834946736671492492061946879892427516371037278912285230561931168167062933420355268325730550975951515181561726293565538471781312721084493370526544602170356446653560879215030879377945590927217826872784531090325961619554702695154974152680800547697592762814405485279560264398999049501271197665408125955362651770294835520151364736222253981656893939822834348755829224492079331633850889302606478257721914208588297246760425164419171548939905038922649412711388613293531151793002211071350374920852514246563291124363756346087674233098978661053568718821140970847957825376306843684998187586826898348401759621233850146847111708891830677899912613195090089529911770877571249479168880983623143416907622855447224092662635908714948410996379081123082400686101052750669803295446109821993894722479480331810576228184411192627170142208399864601381220955170733633115255415761988627404297008274336848018528988497074160888017892522905506419152642049660997930434021017315767899235719536220980213809080079021155213664953854783728368857038641818100461290924489382034173449159475093303217293904072765579281284427318421491626636777324318873291105539826896231391985439116443054685645245010627622697072984336953003156578049500391760773858437357643480503475273292633419960576296889366347594370345697123495971709870139084769339054130272622022768436878170674089431296316631308406899605089259634516791118926364701109251146888127413694409489855100516921316013093028076165119258979408733095640211893066354148641681133907845615079616166066561178899015266831235018603119604550731115290769131629110596818742279353600194742699087084768702603925538593240576116072011915133373668908564701033142977592541390456406076442419505590012009409200056364345071188618299769949967973651347559231570372332150449936063897121582726916496175039868400465785813041307438287347684450230384223619637274934349845735600521929055866688577768261852564933935194670006763584402784805555753793688305237870727651757679289490465202079773252840833866678930144358377136852657932190335030297554768391335430536409484171937379307007476311019958087334918301469393772154565031951743174380912180292930475432891995148117274933179173624765254682672499504937948051986759664239541764426479933623018419212284130222035447583553975631046363570823141080462653872385286822599986508200390987872703125663217004321381080936316106943653920532852258915854029993233599637210118702338327078207221030244024874007305112986824344248019068758361506478949361432053864514701394912030756045348741274635044181349116611332807004021890692509552627584052817730243145027668825090815906443633842837907609778163920836060438353268239835665808037474121313501803983328382197109600230501068595447352461500713188777198616652124170229349975566735736641443694497925004745259728051045576608209867045699351162640313581954525634322806485126266525379587405596157001304340916208642428324764910553585655536078020716866191003415285539218093561839527344659292188121215752511506082257154263187553495089295455235008451691794310200354478756313806154812077367711184099505286149119650426902499957215995319825118809882329901198789938812559129860201759724570796859299284363515720696844103925066659531539070936232768550500906725029138514921452423501217048133437323403422399423229495278849017802471293087225373146389225942924824092206389148930110247953406610606217158326326317705141129182828161081730355782939806528868505509454221067702992479752988230921744799492095586154349716854460161313669181748709928933853308958886635517865464214433931605087554234400980765933326903982795923853400287460996959521557873382392775372492577549293720008139080450604750428561476946158749558654336810733163168992406470076038118046693464872734258899994245070495161926909389257445755227071148492142653695347238052230805748608209036134360455011727522313446399453407954619022827970350053446911975193628601342448298978377412200440347873208639682062935530521360957903945397974798739032406456464847220346396788422708749006746782076701972822061553734534378769592283457800188257485226119652972280815348896245153996154589597188095064110365973537629036146576824065580779079105787776736684162589284563077749375306358983605913212290547021670069300226842003087362742196375114550569486863106958817461181119063475371577622323150031067682386237671294311844420132572359430982197425911035551261330745049804555127548836877329691185216886432695014416854706456886968915451361989049490129316687815138163905498894129092617810777395909965849112502318271920793318621540226974753428322614577268861819258244671573144083111997216761860624217657914099409905623698619197073618773950038124175744860144607949470631330156967329525309883249296905425565041422124098727152512200831536814605019864194299001164759091185202640978211577081413223035914854538680749961276176266715723094247067183539821488385453597969460988832094922974384681247832085244553623780700060580375145416341079677872419803564784235459580353779510305909892967904210785764594773338613882626383447181576520898314817155432995500667883137572249257755544328067902709428754493660707843224999627345403227358414201231096978836852829737368438221273951136449158829820542190571763867284446005270587807847406402477420366461881234701321934649918460031908971695999543784343518099279086731912426431936746063450036483487181374400785739168395047186383842443565313013150097328617435144352081723977810056315188864108556442314439134414565522744819074413519628660639479175966838095439316171947026407820136618567240368257800232962955496658360105887761849924157608970552082247058412626158555277790075152173543140785679821748791717710770113759634523016085610374987408060816069266928178026813837506784379579173807742719862933883376083489460367674466438815236840681182749324978485228025389437847430538754671709098523226774681992675144954120851581533576859689571644820958821431476405836051518046346876472165196603106088518414626065536796429836664654468117160273121179152196986197985131887979352694186253934265931134883455431958265956920662700191764632289300575724128563492394596756888703260481858300172151497267295746512126670898177637474530239999527356414565035730052696897047843523596567612654084840459837824430599269807394643340695635411901239018154196262657228490531617074111051604912903941724107430713544442745723220969352796095795723861130060107948763929057107972533946257161200194600323243385587418771799796542114824552313392341921934223167553337952022932300843889248357806942760540771374658220934305577955031311018739378554801873175409980352598053925807561288336860273527541277481156376068174076718977435418841970229173474817953875011639436276351621737357459678322277398250649488524572482551903619713133136770790930154589614653689303979571073965597942084258417297096837732406350726159828817689760592201344747487046106594816491327917303566268075699645760841071092693198718552392070340522578505292969310180579449050809904996437175936004421019004975420272170034675326425764823904471426780877380631631862096835907224265975274007618114884438430905465806280447439286601961235868177430922806404212153838379509740576030575076728778059201206054695987025140692161860854517039773822823836893459663145193186522545135527747025711147850113668429665923280095075927607364239844519506728421536776617213991483744062165445493440091876266694449407259558002984896831854589128060110842491027986736734041261746040366076442759561976796362002556023443677253528989146919948198185693771847661829955817023200293368826929161773983724067355648834554981185955015972310409531603039833183191869823405462701809939363133016419578577917901592209150655890746964025530834358687080590082354928876764433728942509444405009548339411891925194104094573971119682561430661781716588413873089351147722775532943164421414374398057311115817869630101874255426863058048810969930720847837430817608270711426403719030175435874130600756004343962083174513192600061020658286207092374120476775124132289933513843664234355783211991168393703390981914844517161381403540514043043062035691494168121591753120759887490920055492292609427214550481588255151014947223339155990937108490490430065232034733118945349756458076593491212126230014072625308665096655913980210874991367648146896727302159081539690293271657635544848086288786436271072165237459385607935031602046188207960508686520673519654059823951632421911793514550999423545274768244977246669393596148078241763750185611197023604378516705699590731857187328867733719111467447091991208413886484894379115250521939495060218659065567321903422595052133714179281239203228995722572712025720682046229147289045414366987510318300543991046609413878190004612958351466804804581784961463404255816955646633587848247403044000166582901699713964218974496240484393099611308788113651971419366582099934151530178550728956302451215650993976348003395386750706453547128341659052431734802322330550491177911412163320342844860796339994232180459085824825910159432858755930385478669761170112413831059474967804105888719324128628995799325077422458861463460782927384492501640207626452165885621337630519622633630458500980233310254449576449935760101815364254803913913698899313317684893996175975004908954618915490406818481982110777933290129797939615458231398329437170272655014557449008115360469900252791321921366814574194388590077535381118323771872741193794145774015913780901602506584454505785169192174814009457332353088388073312070756808020432433618662683818839141716884886724228146923876962497347892276285804918858522923602448250586668957258482179297249288084726997206003008630780557273526530140026313227219465970666196427144022276402661332140407204560436726051530244526891052825322529359778068099176332471556671511542604251129903076927259789542135404880801199691511928402807927106801284471768943887885113387033574038594244925367766854046982092197240830074754580860821426135133794177599612182937211143736839353317038844570377435839353537006790013740270953884723217043144217488790600305920181608797961194457803969932095237170754667437395725591827715222040113043806048790869841509402542889539467048555209148660236083642491514875651554578017676972187253707010657752340426556460452558851602205300045221266978538298415940622858816267288077557258164966503715313124222771725625894035272510010766161845216635896476318957753770248526340348009075465692773881830080671725680510914480795792199555118840154250895009702678609231172062437021325369911484852527767816728855878664251128106073113744482714277159365619376618596296221216704524934876838716999591833098192210251851115638492382480659406764453476450731507014503273395137114214586415784167673441658604976515111816877922608252271451169069331377515666271025754471616603117955997996355445997777930154178674461448901949898530265432519598718022141600791131351214629268976260112758112547999091230583841026213308388369480999830405467503051182244600357826605839959373677611554262966352035526628606416330025409947577667786720080909423154520661366613644475223126080149577393534909038455119256173676571697128821181774751880347358428530758164069601618908421233596782838588141843425017255480984575906090502821415540020848087915888986243403024722742172153048693640353758309945456245488647485847104557136320931437754473506611589283622762713943068581331761950603041083922077827029486571080091594206191557142454374946278632529402300601362531031484462550205391187592647518758745189521641368297269245287059376364873837474225577532256198796982019690123988253235210701189413023950537376767243147353201286408253096520161361298260453278799220768919773604721778070312629828077913150943260505104408306844749150281667632796419756567210775224952605537967000058391246228513445850821634948254738472770066929917729313485288576787981646872749237758438529703562699035531436075275053498893769720358721909310992563314077248928159581873338396641501273533823815829530224843544774914719322909685220400440897943633025200623077821487430386087328488801583001651983982209630561835045056384974016942165876153650034381045131877999507674656258298493399438468192302779078557713685791077194750725850998898554054236185547011932034480993160460628703222783936961819370898186035478747888941625094996492901737679871336004332621503284687237841978479875787634108861058295659400707259205668284164906246062724163203360308584755842912306751048355251359365432809614488993485086725508551862627528471281653178844666791351236167933431529934742878189807471011465635460450135255696368378096711530255998853905936904018275992300824270116977739598037723691279769524039059393265261882696360331410819716714429853675640279947327829816856918236076993700123070622532823312902958625044378502008143281045219973228004417379851404001116802200482309822390618924533169533094457797922792107526748284639931687851728707682265177276922150747602423991527309180162213794660592389114544671501838595874011475121675818751466417004215215408748661389998329876977629641756813651613524682950127464795431849180589205867347172142236514253116606493977658482852282385228140123035110026419486847047674224371464657319831256603803730559498613947099098719410670881171377890767382206644280595536660111956295743990769122850763107920045368240116798027603744697837733135240836136106022194592966269956079513693285920569238344281595296899539750111951421297446644974604804079285845672201935245366910238877499320349013621378208097208205290018207123319844366666732143220094603989653141914698401449109913312313142190743073665869525197613752001000430915863330838891075055677958137113805554746416195548590867112824071672949975985777927227087949604465237003913635482867896038109012080680806469862513558090950942915412968087941643175453306654914493484290228778929043527196373922867788172255665155193563902077843932872717664902065996577012061258276855547871670629221805025799360992142972439732657925009053131706435681273365903590886655452191184765162005197808553128262852344697587237788069877026487862412570692015113504969967463404099335749954919196661350293108705239652528281634631063877605434923756418479004462871775680925176719483617963567468745122304758487633622530597543629467421996998575272983793744485349594555878613251377261058366106444086181424034493675147942216891884531046512106145727031163324196972481146936248956304103810745667352861382815626184804986090498592939633315916692351934178763679796819221038622263916994456807264913867926479748240129227868634346272602102290062701425467097098865677459744386367830134350431505345750039522430088604935604824850040963267463948430375947935611858490688060600403880871970510145808564103477109409605463400009020079078238400014629272104339952596610235428824309174676741637757099997733423877731654409167456427839968237207951863758323280963014588373471733539826244170358080672651269531439163353489850559689844387094147228854297541130079682239328350189709072515602355618385646069870491947359043901745021417844696527323611900973146084602120442845776884221743822089388683242890867718650938564227363159535053152930063866982958628532977547042427780553627906030494123870835346112875021843978662587159479860144599954357804781336797433575744111782188395397577820682109823078993688406304555568865711468736630986491057901667352419718778895905199896097547645013211608353342115478632542509011823004487333572212797590846536724013548900690429655750415512213909495767034867069481638974657497240135853987523288303689787517177886274917220255226652668810580472527753997461474185724486396644326778467084480484043735032153328941943342579777925505616329928943220269386047936182772545734220767264195423944999795292663090159255316801867889053164302086991181478100638205257623523586055977516605890889896833884656461582060698661135431514786507043566531871124642939874489530819926945653885758519009614540080481642412329685268648086547110237229358199293613139009938685466536886381857251696139456705730323877626439782738404504121741492870043006914767003238045640606594557687809593272128366569814430302613415619280892165370171323781535157088078948461864639310965805566943680234967249237062246986035949277662784391477999403773689922850913993662879016189442230158609039633846525249601644428011981939159260100026285253386951317832653490561466548804195609043426151639462809586748599130827058258122784730893359497592738295944671286891564180574762687413151601364828410403475179883118970990560796542010354082317324913329543662315345546039254404905922857400462055607852910210726585650696003502198991775566230369547352768748796854744244055160644108401880758955149415241675467473569219717177249805409461729863985913674841165546856501617376330698603655100073178882562338837471015259041095918343684278685910495928796224106147051823050284611455710698229976201577698607318026994492840571996370834469738416701543156516841739518552225265437699729874283073453859903553693865719654607968221282993360746510061922168777663782356125948583376791443630061377097398683025493633312748269747055466803969498262428814895757826185616881779296355848120380777696338661788767172892317795545365387550682610126326859613260328806027177431678208663446299432548147548296983128270736263699669154077311747764163475304682994779733725243059562877228403213314229715279992749530723973566363036466364147307005445933743945758873650297563857916445066497146265182508607027654859563120260082291655992058540352012789753776148897358861516552968842523685093615023830988529941167153132478856274913768896859311993782091809321868549330189942911048047701122603978161164470319509035900956529035239833560839442856226975581088376427574011021219846229141494868027306080204085821333782089734763865963512095469883663243234033723289771475208840214479008658093232386905257376556421142351892015486660524395597499312331616594888230785871929923846079192065461579422277547668240396757633007333228202353532078658274140658731590255088297356557370596329472749395062722386220497642143370185724732870719109686735370892915285179802913348827063230683912217033779068544498508759022648821197750392374256460726670338179136754251880836475633955229728763156844977718148485464688015942206170281773123856100004519437408677126915057307755655127978927516913068359028337590483040890282902214952647408432786474188702355125176038331694558138728030138024696311608127351432319005772531166403180026170656198693741462790612423241433748318188362155115138289743921739613769838229557485101607959399164201036277542410830271084293053605210355176455236131921971739415790647996902263092220046434199039307362498052861032606987742404742243500659911457315408689638625775706135606640411179580149564501779888782475330988096917611476207688448983275457549918708234349789043568541073060793499912782481293512755578559362785948612213258290215745696050830010540908130341225004000322396389929185958842334477791822481719936944046957576751351880985036467561392513767709424138461508776504446711220617583296130001077330147299478688813667817819139067245324855018069235998004478107931706014951084846881365835746239006457485640362830025669588697145126047454133654061396877082367161818795187757594585362780204622812422954932409036929711896662223430164054105196481022209046592870398953022797960719138763829107969322959493186552143511327891219574593125028521036431589192377809686718213105670691411619751051399703701130320521203636283427656711633847515952653980790892720091805236129139666021236266242070113739668420341548672126949343322319036920465633337506787540266483275658954434766223945927808293792554614763886333015314705179230472570183462942644117394831670434991144370853721729513617055577221752530824157121471358976524279026228071837673026132116855040746756318370833045686037006689753001005076822163074518420257911580284740378286751678116738115607505963575287079383427132698141956817834979672208744222463059657120067924964681689083669414573316592756797447269175655404145500161386209015838010049166081816727774426591891783349729782612678223131198981408117989355292238694324715879306572914900008237231423022436423842092014353942852793199527574765772945003234245928847581458232912377403983138184108151956426955052616679838045680364076068140949812900370303062167496719391441907238799374705998911346827608691528108737136257379801357773943971499179441576202487335126372499367200479537568530677407500981231504426504772740801752309563276549944286842815825173472472997148675168631616769128584601532083124618923824952417790828004303369448634803815867394732780403411762818841447109354646515177443303065416207669430186297601656015163010828964166254699369149244198524247238459912613633161890329685159940985240651420173042771536532636668857482246958518750563438697601164970495754218795077121871138681538096371704806206258072936532666859494052151449023981812077808068501239744983293286478811777493281107983823912446707794933402170943779994812837649738014379783395126545911375402587226359638223634811330924676680514000095316922039160092154523402265114341949202440487448739030444627610795776045093801209306611555281839055478417959930664986613483596947980634785427901488652875402676024633716398376094790016084768877365423630411124124761606456330671798924409589522690383820642654145477419073140427771101964540061775466913079524798287422650286258390846156982676960910048080227007943908610341751880098434282054087295253952840727470406979308654219149263230085324124770707255058354883346017432547139430028413146367294194114725569811061385286572598002595290712634557704591638046620577315181844659181053439597468081321195614583698024682302326417679806892729487711344400939692370031152168448338428168076673769298056646480257537045442612166819383136664434453269869110657167630906612013709758224361575132826136017978873680257427329119619145648860543227135661336256583111716131170267939156137315635806347390248806745502659198153136995672245569423851141944488105333617532496941225474956748630356692523479088812384001825800720519747370234037729400113561030173009529697407169101112812691355052402010211022534879738397099446411670446986457615768904178371606342156248978904422695933743066930975295329156048147599787705043974190968633507218353899180656295447036283345482020745316808221462535029929462088044140513725421108911874068853293244280827055186310855538523052786084315598673288741303555248041183409425196165136718297607791283942503360091816234448725183666400823875372804324618143039847797300304350976205904400021895682188276756392209322765774626509158719179547076824364200771167117715568612796496566233471185553744142567007416544781276093486997112621166746093313247477187191835682654991492780064936532534438325900227198834511035828685675627455570967649769365134922593968435592630906017857856587229228055457442887168103383053459786898606870775470214061459142981838466746254932490999969402235501043946008317018401233615358979333362161812630491749708446842903415153137592492332203023813589036325253893813260446366971308607093835651077043350177509196018444524218934561081901891530429882070236434654519638299708231701188790285941052119507376433610867829188012282350333292925780731285027644443100074729803389359831844637943192103290423634196509680848060676275767591226572324029715585822843627129687344251283019327080104097462534617198066906999026236303873370744014368436251995228007796865288263358236517453044207167071199291350221611979324080715503421888233449161729039532851290060746916499912492947208231979973601362358726848428559133796121587940884645468598763418029775845647495348497450225424098796134032164062612502417251829825536935466035194256153348284717794088397561014501420364075879930560891636563947258405710136495792170102463390289822777883161163078433950806793515081774780354341314352883485430909418087395112981064823455088020354649411857846727988049304233534828587007123021459944448329314982525364804518454600883350251720705909271490450580136944093223964974002138229306959896681773606634984814940317896189291921945878620566141134936642170740420185462471051613350977647014826884902719983806747197253443715545313468370047569050475640262936444713927481613222948025294571220132763143341155179317530920296769169857418856670083987155866393744061931464691475618365212300267912820010202290452202296189884806059896772716172416198040107822057701863741823224995584096592616360309463947921664155857079495959360482744497417804663995216024867023536642276416580632791352833525440385410591886908554122690360441864910436101267381823129048830710851491738908947073501881599396805633437684782399363471541772555483906754114843832318779054543651410131221108681277001910851989322049168883944140878713852274866175019276090976462040494403219713598008121232987762834788845619584168953031209102256817320993833715639818315242757334969165595113693978737231323241762727908367364647565915220791548259228097551312697167141986931952026287303056389351861775657521665343250929097455246891132081126605146036373980526344651489551045745723952836156651349980992066443163562634159240705923323067567239116862426684595054275278970528270933339270674315421865040308262630613338541353392027029924035251315973243633678777154185438076399358780306468749020458820552835458597902475946448141992157115194411579079121360102610363557574669494205359307309002534952091219428443577182552827525656253786707664987305437952625830534238479692309595054406603440553183508255420817312189801305233895206003925490030327841437540776000313083250079656857617092884282722400779277975782022579925698904466102446962425771833654897752846928196024851778391001450331342899786020632925614289153582341057285868184091564266081975254463729737730902917183634351722482422398729230879461700249805883854924976457662102614446453079695572720615147792276356676504747090278957120688267372435418443769519684714721519951781180621325311709357422856242807105681574951961869427738428252173206021114860119992757031082324241100564692081243851506762843861622189237541498063484513622041183732828259742793681988466389275203087493051602989868317048481246119183592009363291142505387842373018810113675944572033938918377743263154497229684858280905131404076769388708385586622698473914582206348904382080384449593767320726070260263603507846104070692188879336415027598839240906801871516055766750651281813327875356870416847257559653012787738342130614625413951198942659729018525779876886162866496308741818419135052106195550376613654109226219682057102486897180442065592821767207404409617877006321825628112392284907448723896951521654868438791571533289123811680203228946512807865744892668942043639538248886135980596667312761216439803583648779404166266517088868322959833491207186381706244335449890289878575994216086848226233445313282282276888945287972453425330926958143756358180394884496672587912832472402269220482074712258894407012237333506526939282419569335459866171036663044319868482009950250911365436499858638179918695841158140848738155565938256174509971700410390994294512453641634230726279117816079563568888627657588879681661305514029877986598285733046393936153166871230173946404627625822361163163189202928459822021296451400261139260958897049877059184496898093997722044445816110381477273063738842309356694022605874285930222906793879699396440653996788868157111897672751833923589668760449429612370751740533978260477045206961286635762589350453335599238921411166427658876051339155670961570758816128518945824639319631273834672123214586912685421522796708188988113124772116198435675781611736125332307699662734359873580768687813339019150197738256220521058886402383106276548369099921730646047334151655553417743851723408796900871279756102231655328259717135129440590675934725584020030748745766778238588773472444596472646629348907286296581508526520896840487181273421818752056999672129519608124674384034879315914634145357163402681554519288621199821176844157520296404903922730213957434802758594318268444070014618536662419263395427895152397874712566403313885065388514808145671936449983664475157507621262917750122688270536353843601170118820744299559462334078937764599224130438112190069856965857853757899413764579973124146201747459768561067076799279441472321401035865278120747184551702338003374782883401172036246022239554117011442660527342935497183702366798642922085321709044785645563046573130290821750065914560505182699666986058861174646370012423645191513347155928393167691881334999661148976853714974359168620210116068205803528438552460730889589285367502091647834910897212378362409567475780748294161012354886061937760626343885136166969129545642584886886670369057663462885083322503350560504060336167366301985929284888355881036104216292074867579728425996755970089340635424709373307132611560588091720223649343009895334768889477321522889879310212644523526934738753324862988481629506644534583977742628298489274990937619219605235602765763623282019312671238646917039543441819961005930846944404024165750713331013316050830006309153288609301968993841675181836515184157905010704170765602358457283206567652661121114974427976120370223333268091567764520063459473222726359967215881950845306897850099073560629317030027061375251856197245142521738129234483022698731495409413668533606838652798366405363180799416827197062945016464170475237825267059233168575655918146903686125394427705804803044938316748181019797385642353277095133671721201891501551963798970472607601858394383210191999899264673271254076033829011303458767401167978218535069905844750787825857840740365330543288021916156553165491832625086217874852570336229692193231903021846648909452987877576345151614240926855062072840269837424670938844769434300888505337205502022096620977839390083350572276606552123643754999341012048531926847428065998373161504066177461204132155841834093946336089846758479927369238905976110551678012977782765704232331661802059748187709424887463206625101565222932355304982574345428488667371815701165254791678466853390449492999342835713487493240833992914416441283125192557328531572000933543659901496634469567811354499592627954773531460871071707197330970552113001043585114517861433643452657051131346569008307810526643107816223350266323334939888056112416414536494976749178461634785593984659044280392790336572411597816413568733006443026172141226685083053951074343581064902661933688918652189834021934872276312493560057941418145784725533866809152234908757361143798652521974638485870006304817586660685668233999880977312472822866191075212517143279902403433771763353024469019287009614776320404342701251887240174365602762537638114550156304151997273506114187409274647372350796270081337836218736704452714096986990485471855672950271492078873625723531748987020838270975034194948215473765733256722672956999895925250246694262831096291064494735406648060096306885523925276044491525499150234009943157543484611079110125022749732927850153571234290514544889560381181854056915432228865347023000343242206842168952786823583896979319806017134086192550139496862803891648294219319867100086048744380143566934613267214268881331565169135167020414123048696343654553261754352707198769295415782673440177195250110986876258277198729770267239834973894669048227338785883199183156012651363661730988399525303249451732073072866675970325390211298991761625866948058893122723416776404553318482705820344593229951357625325000316678718658065138777471268363247752611416816168939008883335802104272165412128853376402423738773342355701433461107102259512742256228545485961520363841980546886917452041175433735687341991599961925212718658378550233408178816134377237107565486269399043158580661780506187360259293667429325256855980387448018688490129751029326056512157780562090220594093444999497531261203672481500533593902448931095913730979147992015859709314563042210808312011310086286659845903107882862272687704837485635538870981859976392886254314644526886538823133623891545400362391799635171403710594520802316112953286468572971186305295597566149301825050727681468823469332655137735539112242375906413653072571331728680611300797555702954537719480771078992993078562911421738801135940412967116532446151090791047345417789060496474417967150277733736034435698353045903537748548220102020473430941407849907583330622572804005473066587041830873599309932976817117189344873368206065128857986605951234033770415842070537891534710322797594931959863819581337660730107303384087096410168348361419724188778287601298357554233998050398841686935821666311272327088206277529042391347188097135468499884015526957366966354771554920148035781713846800501286135006827786235920204996251501066080459073337248387152243670113913399197036667228062869115274096285588049485584859453949838203959360989343682780883799589857079299862844653202791914291198608849924372156539823058243066044659683777381299920303615102981909656899630655779580261825533830363887245992002139831956410222725284745324660091325360482149041420643103232085552168968461576028014600469832892450390701978148463584373469972214158257898750955012059052748743927725445935278576539157250596486308973408131280468234217213044235077535847098630508544637007860871977653917229463556751730709098385530982059788045016649362582941057705295086986018996678273429824139788303717104854322834540688948508201349026575024147050634201555547604467883775703202472026731828888732603171054610453944141755565286021098384382573571719402925407914296967436056708322897591093509915957939557666650928234499316530359930499819221403930601108096979546856866624520181306150456340102317199298814293934802305809016940171436017119925325015669658231916614295966366312171641624143694206153156274506511551764555577769857878513461080393707052908296521792360514139760643883691817266010522864780354412483439593952162881859190490160089131800506561778290651908924468408635018356105598465642998341749705130680195479562411554009533666179744262985991807886329825226195219169808177629213016880992502870250447880411534961680953188676996640833314493516955181908207092167119227777341358094206488275776492332798189135159932229472656052135121417971060172469392877729939341070458675120990342382029926489576687077200840665676612053387350145320850074324838417746614905640768541127177702051919866501859054901044042002304606860793252577044956873931815808986094574864123589355840681376844561114453440193693382234351563488425381725728729681364063759705945081262103832180010617752188391110061294426137334136119332390635333178327353111575499954941537825125122696717777043164932809261875517073902654456891968150419451008762896603890717989156331768940916222715335140404186114032834243513613356299509124750125321323900480769730124984121676058932115908851984745164494769725394033805059685816443623314655945943238221338425897100611615358720610914400654257400060314482217916646051438845896322469860985094293243354692250501875281631660132618539638623856105375188022310997134371458896897696014315747050673223757405806441801832991685448146622761575913873622739728412025157208354740245623907525279645100765768069265736183536793744677331379959036313959677868821449659267620505491531626352785924073982787825693554618348448049100093249344717272992641373041762091239849817628863293946242467736677946726644459669824712976225872333035507735562016113440778858857246404375632513367547836449718109354364178433208942938571889768747345362854654835874420055582798458457521750605672350398577393494065802735507263032738319210482893270496805517282260480311698760767682307149039712313110045026252361633010761718421570986433990207921571463634692652645362103774718238588054305242757807368124468585630891160446656024304836941275223810267480109322052504610492929335911837674100964816790901682685418658372955329705135121121666378671898388643870590224219789321206773525982550699253762728409939099791131220304267801978258636742227486301544001152561023266150958668580044631844288931283699838176352342774052724075243578606273861095681981804308194132249405132797241717815884645267222611211844526676251644252430566083943491174756531106321380639359029862228351432833440453980402899015680052317688637682425664634612966529219610829845687506250332743277160085763605869668651437250862545116922560285076772181283408412131784503170638891770391983004049270981598909612434812350391131473115553752328289159472700477183682294496112277285312413947026525252126613878435451989871650866514775440853943318856357047462461831710388731401168120811294045480988320322333713190769413611554074094290533992383756389740395820018193465857286197972710857580456514118769932669782155328948890664079470416506488889596524030930727413776192283089756482162855299413871669445268854136400992829064181830268424170419800808864019316697511286723351749477443966163730694850888828750477883983942568157315722684696273894799290204003524677804060494949081178845655298361329825169484327832766370577836356948968049725669260014416064524726328070754218688827953344415898930129913354571756400272501977376097458328503076488486081116174507166895099941048298884505491957991212271449914348860287624480673810110347549093007513265143070598929221975894437825966935324530684990043040833397464292293667301324080769319634896466066355758204704113250148988495161715964972773447041834611654901166900941509531704879181004508741163231133936625269248986953917164135308559023064878435691165493692431389705157456971347286641691728112639168794976115770720290040509298110917488789817729033794382888941137738213349085346009054821178783167024857856640786725741627650203069385731107304204253481505877096421595815382780153420867938638377707624113817950447959968876302748579742092572945786130758348633644222392289306014563151616476988854858118069219494749089759235570521158377224425259162757124136303080599493881764107937625517108805264120965291203332411725713539625721808209476441282166868371796301454935330023573902251078407772258158791947835404489952348286219491536288062814266969176267386890857953173018217172051210424069269887645217804746019081872984878718381967370989118052050229078720613121117776338985082505113806880159793220188526357265650996528783120803910298895783406582032131670569773881801030225762818340036898251147881234012068942089714005826272769241901804768171744228217900400314096066642342372638305939116229293044972044071495358193668975685015053607741773965191555844297259518702124322905289844364552886471688361627623712287325496596906193266665325976290562148228626086547802726737637698790397255311523145824769043997068908709587426605293733164597941204704298167536130279617453975649475484236542178882432162013993199374782623416991727886622847592914164259361361289976853926536399370121745403834343505937455691807269192061180176885362344268895769669931932224797748709369406249143105539706068468669347977632134500221635453948976888287008076306205011764781291924688349889913366553324080886884892131233430764621661401178141886002908108073608721337098274437635684398791824304359427803214632607775073159905959823457407447430822541019273955086999381039871310513542671987467944929938197044756514547435076080462873597155665718508090039458353650803487996933068384330345060225417332035855061877769713985456649667037379896757246451224402460993170477773170017499759430123624871462343890641325052623230581462843245713162395741531348781158339215982253319422566580458791031623018909493627244313621723156981697828744958279017148586914677936438138622029959204405667854628221989672976116767402611111746441182516941875538938379107539437588697566838835110737760579851983175890523821431923812967988808817770000592382842915740045666710093682182043611656938957795935496685868294713161297461475776299513868072712282840864151571004933458576346930478284246613504156523147612462512931697990910415639993004463126654952990203463012071517291332635825265637181198265720558279091819044615471948515724496173030552873513308515556615183542346075590318129092106332255833872775224377138787501013489987215271249248760807975792293504278084710693762986001194412298084210512024414947108272265984779976124383989555039066914127131586162737241496856044436348189636996254348026648499122559165610375053407271444550846689806375401754037521291228649440246430984668919177454414138221869584934678542367480821466283551721148322976244913385561890432433149700376726348645086377581542885316362298194892684564692736865134394498676156877498281669594331358040174338590571865622688086056891965800418731128648449683797853497331826819052749913980338159577588285845735214708371803328354018285697453922681492065488499164689279338099413294382193744531895315721918904042239010031883467231406699886353808048357459130651321237191050259695134702464523716750138714611762103785762983256442018129657478286933695982483846621189619510325332370170441994482262540088086025911333428610803226106564533133533190230974897030126088170914792770933378829254758255203153959312561187917881668013795836941546885362603874465235447209712091903738909090471366160848270594557859560438925160234515035190082583873273463927291452509539877767248309745127378494536358242240646423504923662719012626048427847354196776708938289939816505224152357614551600191976793922653118268621102028756619858518120032829211419544888633018128391546624567296789970384019218278836029829692551094402691746937215585000803368867310825940111004014449992780155124576658602739197526569665024702742636792435678337634911128611523597988438110537769115865174811206699259944927878950006600970161376542693536484199288147562736799153954375070288773339827511163497337163464773478709274724857426713351491368857925227150819913865378481773318038878786245772942750945798589395941336219788832254152595759007013020046324793719236410665699513102991881868918448067806040647587181891978474992926814179633912312045153610747038794003981272196278481943849610941495186938578851217232175567979657671972384201114515759794009730592074897623345174870899493675383075091371911644830648462062743809820807382860681906408750972726418437096677791421904744121383289554269332986542258128026860095443673816962529969807070431431240238174242394593848903279644382801091186425916785972530495709220316001836797178447054907995475977501075915372992928486472324291923233888499080017844356078583396701010327259472149329015412242270763738254033165488523125272890548480047028334432744861192109833316062938333697877491921691118638674631524367552821802464038662259756602927465254597859654211519743327189809956270268216151527067242468823731577874258228961108048016323158555714218952152781145476908623750436498049540841632508770734563563764938770043067620684840051715254205128485216452252306540268588014409789667934300981157714229248795027131300309084392650595133403956950365309121814074697698168141144961193533290991578104462123977070601693663049927898294714392888837805899938727324962466658706496775934704134059775930613451724450272253332874286327329328209765560595936015669404023083083301217646253424587362451743118492089579505186660469095321951536326547488292431088461506710134659429919272056402845868508293591410428740801017859898074643125262572493979555475144960490861938338936874436956651481737149786594565163592171840028203535170886553352506710386390334419827175599186999751537098096396919875804233631181352668564260607039560491487256990975240017798303654697735751754367727846280798919764397647644306175054739244293337577952065599710734938398705297654148777982219889903923810155108090251962951375952620324239135105768376123690442568476179717303869657736955613068708410858500091157241016375929718299296327240295913518726227488260611471282222621546495842166029247946562432557387810935572594113985663919858043721538399357002987224736175480258245384553029577095988577705732290705935909708727537738586652108921899922602261827823381242486421115142412637662532784655834140115769404747500913940150589485561050251247812854138583469471982075087455383991319991197233937691995715804342897491355426855189262840605409823195930462098936114418801715098810037619948691678344644970405426923975435287578559400743683209679478767149057864016482906521018067989291240483008949643353105273107761115117991844499091252089079665225786380341787165305186243149285954389789898658822040615990832763169802534543245109547705276417934940872172472244978967518190685354392033776156861387378134723823354102395610564104513324394216477439941011778870648090134495514083040755470635888503513144219275721886032716120973914642850224570175312112383924642702778016543541503979067558360307296063207391882148697285066141950432113624634955450176207404034667888402454879899565908392005031254536846361663050800449810207542513437438757508967829794158732664318464358476485690200070826597186330085111887458241797603416250047980614060605259142783802465016235004665338458026988179898704538778113302263153444937929205977045086547219851093902196641827543785295987195238528647176074979123183102774124916386561458003178982524325669196703974933598569335532523711374880258186469451669355454794561724710604026343177315970699576326651820754822627634582297075080106524664236828002534866524233285680911178605450743794609603302836010910588124983887581648231035689177276303377748306227381635217780688037583385957604559276412837928212500427023384268529466545270002504424004477285703206250042365035460966065497850740569350239907621308746397035447498691006374821893314119160009742149957449965672112602207785366394725840773041402521802938542480265285479963502710537633271626840579759916200874368043473231798130878831896078357295048106538134373130082990979245535155966597330716730377834302571647507172745540902766969493583679209553344629325069246992063919981225535681250939413475459671744513675653482504941737517757645124069191860401720961014704483182163694612896466244549912975016203979581068053117711833784556168333405954632969598591428049129805541568549315879451027611573793252277895117707660312553379883980890974934672808166664688519947399875323847949328268701602449287980487726187107079348502225147747911492860138817059644028470253712659460012753827712554841537033304345514825906248887335732347528107902941380822522436022063457463309096143434724973805557890538130195336569345045551292568035236194829893512220421805980294989461982414303033720196205748675154960623637822596298662744646706207143967450113242470795965936654042753149520131985630819332006835423014396966663351855910660284204251795485792433425263494102615810819984884711313737520276089733839234619439305118262556442693997087480945359562286704492082812253295284406026384849387872947181463959802545874562667171816348790303807548991776990725453550505834123352685877563736917178991541567230109472753857689780163453811885823599575588401137847827226766023915896906391662406451538876886176236780461349598079390101624348895772172569229938160032131296710466066206558470558291285232619876458626639825213583365746226381669077594320913550048944632451816395165087462410767402460997727807800154777506756371564322943265900738203598055255789314467126830735089090538090287482723798152946896523481834748544747332604296241790390451096060628625422249008127449901245234213819422571407890869999037389330979176062287892765605503366779918530406860434993454380627842865443885128082543673680499237126111236232324698804955039968093734778398675793319726761204630388371127346751999868041548657672158646151145939926515197104231846193926203488245962867472249199187638800148690863511257791542390710701752765826503616670365725964585977365079238539542231786108491869612690580899389853308562375614730693585506210518901112071178345631527537584359834318323492019653073896605932171813381024294142443720878639991326939849309301070403566050725304982082255707505904803002410134663098876078543378952597844086039720587406606608557081422575245673266811035008165919967613239862711279738055945930059558991249610194532389853675126294664793403639182862601464688891305161261748744155098127014340163719082208730404117413422053867086939403853881637732811744674501604084274384558041858622614295735816866626071827149827933283968631863869480755310291710871231355128557367689691139314405358644624418327759668129907949515557786976160153036134109287499558929008755539043293775384123782898488737602336060396511912637139652332880722793285294156416300589252910619190191946099437928236556873689829541470593292686880010062449346649362795508002710187046399551898767245492935651230374743692029102106940324739455650740858893231300770571704896039844407855307042930803862316889243031694946681796359516833506961462913480167558433374014354495493342740862195565900615844861129649924852313436162574379125645719853179114360355025374065392255709985187229249562650323179117429910448986069493542169679516325227607775495516709057763674652436622459240247287439928431220005037058786404899116737488087668221220494459800547776370178457855009885965043467125941125330835598815501919828706666278261218616867479189302064343102878773430122386910302035320719509083960953764220444278059420572321820452729967444965608755659230841172173299630842260957952187217908479440653613732641513814256867254665196333821481503166466697681565021020400132167320579640648826133322121796868635429578492072175483568236767468246860976520752181660603927140568538158752484041424483317946530793595286477350416711023749680423962247558693947180890428501959214462783522496734038361676662682406885068093512532952728882673163618482705310119418245783526890160229813220798571195062196394425445077627671767976240507611081713443548412686102913284634686804195036050039876261810689092367917833402827624373034231997990400538491060004550412562777474086465332063772686485310167881265602025929398645097918477034572527821406803323233005395597248596052946043296122364820036077904373044178978365091390283106004198309269408434375573717809482746127706977026146196526671848980118751877192287621537022603574224846002798357082566683565109547808749376279948866268701776059398221307261871193216802448022555709101315689881404424393774330946445534034929928857302747900539760645903798990604306982057574902754299779180120234206805352030254491498040154846958835482869770244221860620265702266268131964379405037741939733937286909290500734827541280951834060842834983628332024920996053926640488038198525766822989025239962113224442601900337635309414017303513384657515658195522434871884218639805157636542386060250140272400251365912571565256786112361667634066678199057287227551093278461661285748546795777327888014452787964779680993550793731832671139879195620641716478140008388492058298822034673571310791134087949780075690144733674128093143533205568525642609922736034658356346670675899843639600733666085112930415981794043958401152452401608173708886058187737890668584674523662094396804866401506986373327347877761272028567139295327759850112969558109530090819369792972363675745529845557148592214610749517844235417689225688541720168645667003322243596766891495449335663126549353767619788070400563015632484183183686832141823572392645782549172165212824746457409405213500364442172010823437038853858084453920566925620268645169762843832702253492659587553880668351175885934388325155666622869785423512081189797350729886553361797521560337945648012909573539885638703727436264798736865802703645284456005439534249775734468802762439085396683810420145806658051461581693020111125449645764557529748856494724443077770179042632338623538031559403261259783162038373188396777311507206684303808574845956003243084594290722389187302922216184539367408698175590473032292614648861561525500476462592955320015125235077778822125317221096977483940542583636582419522426945015950567809335794702767418371698652699191125824170841906893170599746919958624245940635394464338523084784096298800328122284164561849968205145458918251953502701329119560784481542693241953967785393416220762280526543766742165054436608491491880957863935294103821418797049882480070742381135785485015901472927023456221493127591299187546860939513701825407419036188783687453161013144952681173181452757955522281362614191186234737617835052959390617221515461925882385561618800357439887163644080782026920297698083319029258589672226501942391354346069296016353839717485171421280734629408955970307475017827696426702571767467786915506011697538300291283488815002898373501825465652241827879106023827105200337028910338554306595043949264573229679942625398948386657309866147820727023543375299407153764463572106036548544701048453299709111930948507494039287649111514077963688439052018571065855079215542734703755844086621303486294928987258154401606642080245717896261035385914816430668298580756208756140011910805970180485225068500341454707404057365132270802330240173030157262392239748904960901027607173013643073102435566187982657063767641660125522529084831720326736163544483853082734661436570703810530227002098759401559512506036571951130353547945657269773521474619170528108122432195281203895030893025327477883953037408325504499763259997194499502921924231850848042019568349455886981878463438223141248121519542678082063191202660922597213877401229171747597656773210501595898722037177430954561233805731769277941166732047887654684978904671614898052305625642166072048140210061620267469695083228110289852168778094024062824114839047736282115741981749379908269145281840985261886030470442083835897907399489460805610569881153385775235488919314740281141386615366994102416755340468231459749589121200400681911870403097188560289712016899167233032415933123926040679931569717899133242796515627254546882789705152592338110236716653006516459001420205349006194740808937661229757438370429484313586647647021950981102773955174385296618999174953329043375573052675577606634288793015910753913390592366437592222572472493852856200984657354076194719077789609934187338352738249510663743184043735346231547980127052432094359370691349539739073315963234127395154722281506648425418087801212785831985455841224555060472530752481892804822941877688008279308858595806790948485689067176563451970862034649581151368401721158376895574553012720306779517861096502663701615388188521241716919380631634820378730531010076064615976611795115305387355711388619096737640198168909890948403794957749235939858109231579046036231632646671293284008781345714737252358671289934808793667489839002453876966700539144475834795355445587152465873444319796901019395121536759812567708560800615908221428302016122317874341751371643261618887861050049871316103168362650779729646605565823646994706150042716400966843033891129609107156860120352946487949298965714077373013849272982306097289443886281988787345562874570688206277566372659332268482554204214240214710037430696180594867568709741969501238907380374505557527145232586763480628363866971731200639119441502350625503216671991827908493694662314114645801710526937866028886635942279241700860619210289057010016419829989966333490914347385123257867381147631765159194174991834548038086096115636758855703494451089195014798899074695001959932718365092428945454233866770096235267474850251214303455207494035818982426361994129421366632972456023412868077126454462090370765197380058827248748953336511422678254794973096513384580862314341650188604702172115079896426686126823085124606724784792162822452184194439432566280655847502939845448849327867536574644408983548134563355329370819102346723888580872998402903188741076832987995770823157708521476702689413816355687083060790590103820329685554654945216537357097315225950142983591286400362876734884735573613303721568017368725710114020639608791090066048735804739295217511586887534345293158766539760877717307653940519027886633098560777010194475450166355976156470648132439220188935174876527256731852678204394237802107609077017671163853601450281644188322234351605839062113412560279486778151828473604933154404185685554005009373260775151049040035670592225808977598301930505295626430723850543818304303153055715887500042938693809746716200683546829757738076572758514873984425662949582570602943918240061841056613156728288750920054679552705881446587325535116859348401034629293629072394660435903401068778690274119122714738830784682156361453046080128143113411842053388211170765081950471966122408834193570073470707140840060800870442971231291276184390452157028680956296495555647403171048035640071318378080818753939409487776488861070857372836468664457756695133986411777258621753206977916142244330675179224565149268224537625510138195164057950180186950685007048219408627371262021795248369326384747827510303986675104171999187249386957352625380857111377034463226872878794319553852067762072342251884620556714500214737631724123379374993334401692028143144228438586647708368162009230323411816142815284186637016380557653154818686893112048354809245425424121055781043867382765478759412746226893173223886876846369535876935509511598100455696220080433744405110624302151852213634769632844466919680330904984636543620668197865232901941486664509003619791152849407891990119780927498589263390078198574498283763014043842715824606382703442686464077788385816822469994935617963165497420266514728817080859066071573607115908081429804783195389044912419624233587651405709214741938368309484665269088835548270243910056243005491574926045197024212015415731242765762397544497120466203758036741139875617244222488768880633201655938449559575020255617535033644908141151232629227440853749489972535857979471921513408286563910005247126824711505484807405492885315370197053186610224633310474524551683138814448603226725351411739494865065633113613687682621382156698097072195930940569343239443487957611797599391609186795488118827658275591747619846459602280929659372781133183242411017377355870838727011040560844462856639032086606415576831576104098873182528139917404315630494518172625035566566376687681517503572459340956238621816803485717313221494735232112312614002241082409139618034603700245653509062985383020321242690671181947375182673748282336010516703454738577439423908534597496860033575780676256115093253351470825906759302456182656741875289656279764832939940863750619241072931684062099217493567352074081915554126550785827788543532638194975243940160075673819493017324637277787410064186586633601251370195491601650690639174000847116661502607081735472638866487325382622315909201690310185755227444018888789413673775632548991460364406038308118021564375552409267384240303952834787359620831445851540358977942026923334808348867699252569080824304934423887540651910114382862482215096818602397453141935763931306036068765396923245018408876952770041443406190144595368336579310288871007756963228783533872780549034323099574456273186864670820116521253550645549006665935257721195868618250552002532988463384874723707067049099648250092308816432236837974430361856488300526093882673377632318994498356657206110559719468417654274602280388934415734706596384164746064635668792555044531606551972493951864974037127905194211748922181382469269387415912123427421964158896323964684251082667473758692907193027691839784652907892738920229321267662135328750236397814782130704514949159805877376208867369219457813020663415502104764703302387058527763398030335490015864641828536254187070890731118238780536735970617174747901442000986200750234573874115944509343869422602837014106713341127801564062067780147542604957856260495904805973376756081894896653075814378130071045150293647729246028707790561440821005322002761001823262048511212542498941162070932596520021627019572497290686754673582864090125704562753467983882551229907686972913163133425322941814021029262217605068048344724831198257283896746158395956260126761198143042043697090581592458762563730762974498606196349674531714385187620713326670350440389500611429380248336000923419508111334085221718043547928193472599780200661465267885028640062128835041956893077092499861521092522659187027088586755872464297455613582518148027646897563850613743910227190009734416115194483872355994295233279224800385190785784320383578916636900429969657676562883326050303347541351302949932674641338550242684620313695233819126841148001293298913256349989830579359529096178309079329555329013846971085497910558984788296255301427908522311916790845204211200702422032905555546510189944812567678215870947836457994767577016896028095492090308020400038709149076021910064618732817419322404889402744386704723272336313426300307598582575061342478786950944589834214248566651128805575171917972322816584659979754827810958880037919231588600810183558583406688329812759585520695585914196974086915223730767715550226892147955242285782972722595394746216026116457260609186144805164058770670760897245334112228258164825658764090041895380382705549246392589665513731753294993640330146332007870748658513556793053189482233129578917483847675359367407446725834361133398587660923342423265363947780311523623957729761975079817476954263724551065349132816123899081445740964069768862598922065470223021657721655159110193019261120982397746883174871165150895881005387804704611952503206202390057092023675942996446071437746526360023464322033753838739602815458676857102108780282485741078296166827406847728813159761250442390607393053855606323081467452762359738557442884418579801032769907559849693875822635743119130825780400969184792081114524396924100930653326679104002226517812139664262302281893132526103320439790795323329819021028323091916674628060504466835015423135195722545695897289478159437539056560874202689283324964002686415293634517534006139630375217319771835139380617220489706273601543534337233821821996013268167802375988858782247103127264206018727224769577764030941785832931885277368659857124606260974917830604744093171999195575850728633440686142426876548282359095398783038974681578405185829638442396395657825902539063931893699724350836644466802078701317253066738796657216141353007591998828840179784597477817155330961084059135275998150349298650117846639688318077241621907870086890592567538036367391328186160532486679714281031987277727120704379449230287286332776432569600673453251361628066066186617726038237868372042116815953203865778579347074433191002091354132419253659170284463889799117766490126302468910256435472587002638293037795161225188472893481250319382080220110080991519334967136490276449293062515199568560856636031730201758029689586905799873551946112654123403868388661960540679772151990929749003484140554881804035059617583348917484627644732017542090130857179653159159177971630387756367235867908333983889358091842326341426657667512216050731205829191649289854204818571449113506907278533596751195221989996548017830287969356990712441475256278719128261596111450184267396011281133169811612060141746156813155754437365198008739542810086900268000185797621969362081042192452928356503372609265475525200331718421976217262050163291859179999593054650481320243154448528606867304689774005160086280582722206099271758658070290157267117725083226107356038097307611677689372103037398601094165032027566644047932811865818878600978982502819782688334038811693664055831232577611355771600839788262951220172579637029560589340725637426158975707981296527829474296868834137907528687889629978382603625048743150110517690310165736014512080302584018419550148816108672685188408902384993793536642821135767815075096689719547000401008497386399704627384770395371084639711826628850090931307963591091515735305560791131795617332421491736019909440313408930533091421570796878603217770090790719879025471677644717645033795139464435521010255380714825187315051205264651939933656786828151322927216135062370379428231824629034196140707028560071816592406516435363960119658622867791174937772010320157716780366183377739949206094160453847979883762620447212841591756566288008621695151193412922229763316548884185119558562792980839788943785691913758608858447140756391446978241501051823323567733319954136091482061010324088719159364743780800774537735622852498534671044747949931562920476941161557004938376741345042006685213162331446774047361665547822875795778974449610267761436079632484718520963755962569476861283334797933387122142655254248317978477477703576485178564484068784397502150678226033260193044986055780046719114302840042564162244802068725338272155530927168566569044448775949734142031236696841500974794042546218289836560679227110316194969991211305196095210254721698930058634724776161162224442952379518914612640436070027743864691475719073300532114278588723044595719458557056897582709644524076336543655995389030286179600560326671645797113821377519052143207727906200770486412030038240505443657811931581588579964172326450688967230661496940930249547302276353635970515653135674502986458079720996337980862651705423177793668752810181636221770529317999029636853071512884541790786987688259808941609336531455488769943985713542577941235001077251308986597764241735995785410917595298079573772670380785034892793949073699181078771074270140123087076613006765369464276994077674675438688131860368387001569555973083757449961037178280486688076003450423975502235098844888120200383436201332099501395974232964166018564943087492357422705028809963441783280565815417154702195056047138861089925733804881692633237617331023564873106800257883205092720826559874246984393691356473630202422054560488430903749589659383282533059701369378880717226440455077067431248700544992088888475033751398463188786482632570763881506934489447942672236494152840653824287831208374237721592840271560615385557010692495149914429904790601394511152230178246622190565972727855399894173105078794464652529985854566285125144433505868382800347737751246089890272197169852242237520309463882019111130021695711986263648819009781167172373758787876872936500766556489902899841435294232760417872944979131297181443986945403237557866524784762349531182121309851139782778757940333407327784589369522800388951495148408040804007356995892481933825171902580226048364788902467353197063961074346742829269575818871552898069474417747543778914738488064439215509879312901887589368010941862285724646249855511101516066354308164525652267248573667616622488119019542365466208753412850765561355406619058157923465881181236729877362865222323711643990027174921645445605056317047364392859562634194520946062347931240080230700254135613668225687372941818056766554217985085156039336106057179201312613865951257018231911794216811135024964582808233118585832712824349760595527564536951838930469621385722571567444614951723300244724291170596638952417893040246736314852964883728488213848690718461108136919343649005543028694125515347786739284760350192292804338850724394787083484087515456449530824664267728278229429705299767734555810850394753303137153366612546912191669390323019821463226339305977440305829743067148736186195540270698418968535240584001563182676005672085517044333411339572899428702329270160163290318564466258640804386170769761579083608449676005985456835285183817688449516321518557558673464524988445945246235598804572787218135776999165409271491838317021352731780180732315158903406799262095883546745545791840746812760350005791236039359633300820805106162596239033036150187053397018548766393916639888050249479609946881988490701334661394809489834087848576133670804747593730973900436605998511840786769982730210174890581862895291780766169038069710098704426612046905764767594536687784194351540639759496539129512386025070911224076488353749362789643941389518809999836635181840914537421281485425416809905488411276752913870022355335933743554247608067018918801362641790860370023444380575707879293942891454806639451941875103293101526398318222845336765624835809052759831177985651656800016778698867784668657418410013415818703918046303110039255736130923538073536069043671603192982057388905134326521668234713346922186619431931818111673337211736470574431763930357562979611871550594563899382131032030797948578979103595793670819970105164393278536548380798497761051964402074379367442133352715671599505232882692334856562077874037069543038179313346526898665324566702426640885268758753925967886196027526483577064824069958795553388916161203512302575347683234141609830688972297692935937230560570225831337249928459452260231351013340226696916058901011787630731013581244804080471563537011134554096276097405670369844875874283347810821144267617466781236451851532621289774515649731014377260996370299712424106773739857007286570273373020408662414796118831469476370786284386574366610230350254524797439494117413788235439505077600272485716144239986721191957060073907777320512983748819311486663036083156491852898363993800636262603239556551287742719041996397121587082519464079345330252611984143504530118094779490973075724984449064241476971169540129671310377723953706423150792914296763978865006098364877740614048305389393726539220901392293871214954046084934704495032147305658121505346130980171090125158259093022729266168077173080318226953598477951164878511397163316729476157627231056990369950131529377069174178327063503225734411085485260722087714810019934242051338027774509819390773200855125362791286333026958479544127670862627760018887135913866155394292345081774523625732535594860098869570505092708550564867258298037088875339114754356517937903242417712580758504597291295316151840680641980949607294560980321243027375523967151632943738023191319943561315215305274643218913812690505097157848626959551506385728927318976406383793457498836120806738501041558508754039468156017509783981107500084829250999486036382097324066226528380984816304192596664537074494884724743854988858184436209886832406481260725146583148903072976296875098725864186224343064314053455575403200395887492124519872329402682753816858690222806636458008685624042534123328550433269140668949714484141716323060071236588268597745690595949721188419417523801840138933569429632047039095686190661692694486870649654684964327362031583613662035182497815952131933499636469555142841312963180570184510592366684925880919036655903202038928040763623852860236706368396433407511581279940871607290777368776932690479048322948109550326342589565780992428485970421913167394206721295667803429691642808038486622776808795082098278312125763863296416584571225516812598643761059034427367346330565964099418036583135857130610077420460713867522921589907966404257759271533078019583441485706807698938512011611348493822728183008114894346891430010491532194322460729235930220776032394730776160221080206879627085519415603295709897061508606251586865721284576788222323392350196640942002124320281283596267705311530780642740002507543323450778613088481181168957504503053578143637554861391763185284566322480998402781146033026666625550399895383228457927805768278419660056400274734688051853896492313878504827583331097270305746964553987098361201960958242656642473537291091985739497116267438171506200850810746156118316434749022842257015060123377413308655692364255755341374876092954348456625658823834480178423556005325292886504138528118105198485740871930031411274193068588136211162351390907301239004672806975983849755681111728639872780162121862898973763845906155852789247879258317785366364303933183093184581108023600045045334718282703202089104767603264461332448188303916319373063118740733111933371203433452456155523867786589967909033916122389567006712421273162436573202991276059774776171482043655454647250897150902134108708445477444121379461351949706100077546570009493041971797893868235881092471062322051133706392956290730506307318508360425563975299542807717793752888225819275334530354679955419494527009250756778004079069538729319409314594832509619313741453076961550586482525926821304325664555255580444400879720475117945611959707555996099201356013185686688740083435682305595635018764189674159800055696121892758637070274662313133620036421325046867233206994634028041086916137057197919061811631909041930428375535443535522478403197534633133791183633719583991655770548103042612696879139516778996560686113828507001791217876347581278400902562564170367869144337146027403535645147428463549421019091773989566367393821408648763984009122705700650729516927665336104800561954735771929201333620663724975983883821602350461083609362757597761115870021176017596231561357444814252111187446127450210939538266460956492726597843386631422948608470655534157425631258754962973193430456070548913933270908264736311775656075881063724552245550812722610359515096378573740500329559085491199169649856553521494145435434898994649312747566359052977109030694541931090441680972411649314893767239598703122459848295065666743295628357426038965266185222717210464984837764486926934136838668244071184579422933866447312201671301305928497133558409293440960409246435204777840876668619921663738156930428902881473307729851615844709550579740945801588872425339905285139133924935861592846640791867262259227738351996697671004138283259543223766307170432617084110353425390093076908050742963694494572096273880192160211281513732918748485261364487404666395322835469390982744274946297849332361533663560955550483251197579289185095634612658262539426667515073784200261071381966868524329024191758079591981721561492358135471124116525457577589546648592236080136952789360686082204836513203207570933972358064869402650963461769231634380419986633521603916206293476232078172659739842126150983019343160096501735973046385542866295553694256529739793666643776950953218196097484139990852723153181668450476862028893914001860464085614768701159446706568888101691116712868779122814808127553143457467476191538388638713490741417100433373644089858348098621176242801145758527311382832198844767590133968039967007504882181736794118458866263325583181131502822220180947628483347962043783177489132805394083106306229861256810026497501698068148574757550108106023647279335980169695300113574897775384082516824904966590401328807606415317638295809453448482157343461058438632274030869158609170299414217988492250825267441507014147313372139206857114990845653399454519056728108405199540701238896343291803703466831507561535901934725067952989652896243120784830562722786823610235860110386430331319674128680069106550403834691211423201558356924362386749757632273273687572919941615518337703167650692945191919268981253361491001562391776007923468894045123730417318388170346378295342206460517923878491556373439132876350255032862077347138112851821020441036160578145535874434723812632563366205739531812034697614422894601275473752044460334567614816020505756920224535567447890804437755653830103146064689823150284665529679340869102385682363626463067419480585640051356681774946220009218673179329727805262358352036532803288388902911663676804741118818156772741802078263109190726595320390777539232206602220860499653597276303815943059939875468154942592683533127134334741724681303715499731515645229613343646948406207076241482768910922591292154216940524176878690333950156432998335512826920305846915018207465059938565679633605451277783650677497840320751676980719370521754822197632975795842418879020129491328139014782827790015781212735916543981780500316551269859235683459580851494928773733397333349009507373293429732032657655400603430281651618358826419019330943941615241773991864905912337840503765890760311287932109486807422986710182961002830352428299440285518328986691637824007247818395728148773499325430321340240486175342659759189578882997907285777233425181647983965805057809241867207418129728311452043875591728428779262325160256680461061874731685878880837426998345650727065459636455308897772045130257481826563292921915063266575076833075552631263575689441362281568772240887561029035261061668990652311239251586776049756728285410123743286102834605794239383494248232332191398159778287464328445496355053731823885300452606230185420807360488739810328936822991928287271647211559467503776183039445632478921665101079516439150425057987189238203424844222816250934975905045787942809090914983811077656302961471022336553988487104168054605664337817563909975052519306275749869881503155351287621659016749685279429348447350054604907469982870554412541290480965288002330568445994858436336031450258860446342307605586514604507411212538428418820099212713932291492507250132201740096292956648912059434039203441829826607074296006470399036494975472195885734128147886133672692275388989294054242395091661173185474747090864720725817625271418309512277820501988414494382671932611600332575393122053729972497218007209507445557657404742692343739190126705822576616633762900477527909349059379714991102066307052095772345607924220278235529971312881023865477205688825108632667029754209386461571165966248661005022344512611354701984355880067292870978153905607232626959827634838352453379561387151839098551186382002387478568547744796257021724577876895553508567515051336158647200744897817048968087912378534251100522295407222765529345907590742254706028368968407039634655122456620733178203549967046946013069699259611570137060685300781480439317204482198993527631336291394805300514379420395384686759362577691770311551431969546264743101712917734494094461601533098991580702635056210489860995405775851275008957347384274883210757861124209736360237137812610508330641518884127364807589978551295458556026799845738187421613913506470390128509641159618772468145037856571565531591482440123865207001542554508408138304352813017389193245883057971877809043637752451332629681376922384975213122929191772642816188899374612306738929964228628122143227245706095558587476876434796242396757235693815648139057683673103021657663916162165648025739297225059391413093517333706405361769552418505835277617293319811380793674145726967375507582181706345638218705667409707166947436719945882580162763550428350507725376339575814543274710460939402791797505647366894955164444582092044498428055431572011916337378013381333584837068316429331645863196414844602016913334765698242892285759298767836732567061975809353336551891102064172538643910501695544746476599484480243359387116909258036657442499594239280656188520563278010345143634559799969497333880988496167121136890493124681655287628268125574662483190349005362058937391117571316289533330575515379581994851090855018259214555319970917684837540062592828065081028257654311680214368762255685031379341726429048189385669100751143464747849325971436512953935977234132592320577832071119040199668039776126953391812959651193282759968024159478146040591860031448348311428164462352447372288378584090983585133544654243303249904898070398715782981282843196460000621684092387336672148821289641659060218502587201559995176379018242581276334927254668370588441957605693978782973715119437262132971810508960624029857178749894423589101777391591125475294465107901494785701848362575591639473493538147479081617118538988156683875696364012852861195324035425248073344262094464076205121587595817433894080029479527468478850288363049974964678506179177588876200182681632867024551732098514899220612310907278280666564323932058205604868962547736234289886558113034849203235053580806530439254334502503497258271697062304697295367551582344915601327537529631443650609873747512652823031440017737211780975466237219250107392044158705512336309817172608867471540862248552319897837397505188988226200391606568411558873476689993905604143898263683573903505130265743217446069691589970078127047425079068230123652145072212898527232888559303894187520553343747072487251834723466570990301255091415642542148902383288765419987670356541408586977067522776982923752464524266602522324751920345321221185847324999419478099393862142604234016407577443736625662508338139254709245610287490346541366237066851939051109956542518470497115188195572235171123930516822695531520351822591944162410388118024917462274338276050476958690653587487504559471069428164731526943229708580907795608654640170719555718193295779836462017212965984668682110908723299846717872045700894218224506102242353417803644256579858952730494911724479840802158106129894408064670375984269397692181423851510897067448401334206233763811472719089575638715785198235324570114422340829496498072031092672249721221825464415393172040195948605738425719662589544881669249777405723625440744418109528170483349276620731403169386927793735554598421310654646225723812640384561714652939837862287187712324854723604367927423736607479166921580272474478188922676618417457199968408619480811866762885473330127963299375894992896230464555025827453311619831553503233746480883858617467488976535994664390762165858365096995716163908332422644541582452463370828784675795939756772483535423888473297338525307087049124168719838482135377281588897639331164123234914325907378530155919612260389077085190303685536820288678285086247048786820200803403321462625414615049336902784209900409992426267268543359440910016115250681162974930185235333135864871150799298046509104137868420550406242139601685736670866679876489362152419495227591832751161966985666498596417281839081438505045639024369957730232622736566878981484274700773085809650204585690632921744929616406818556293003334860631795152381231426656837491017242497929671761337917994756810166686863904014928846837217721928499000013519115506471519314522137370459549602712930973622704673738684796307222382456572918063190695229509621634735937968960655289899734742613383759339180951925858970349174668787257140451417222733615791429108507248948601673719819894707759235158600190779428120083332686398523777340625642105817755918058351387194628284789391805390046412928610209171221597270023559213288623370481958890873631626745443296047417329570806873812209966166052590855975262320419034800009991900291258948834600408757000286629206667091006642098276234894110892656076256572962639170584587237925303263313078846757247954744651254395636155614123662485351301462592706732403183798071495178965065048627633575071850947076870996455329937773137097183154194344115390080992586807240147903716172074939963931095129497326366873513943979183958585973521817235942335720591642371092005728650468086439025362229900745996335754717042946320471146329391487067042817004521422026071222413711417795852734852009517231843169316739901566312980421297399113998162213168678758247850619059403689118323249227605761975096767400173977656754383089925380622078652686400717732339856736140863655037989132898872962820554687680682972309482257700997089485613188118461092978263030310655026480133751035459593253980466955048217449078443775692026928825724764057995292292383092984530498445104952636187848288080326161490390720782016013405898046826574206923852042311698080361272106800007187339893406392950956820302139550412176642266697808930925466760894331166853952458708717445210015211205782558333521548948525770999595605720195879137660527818019792428829294025007289985759185406546505548782764566510860590789051119445985794722463628292083872826128550911857599148188911738739464679677666567942761808383491563524104538279452368074806650665580075720359053534236374816550147490442071878577141553844893718717706512102264668812494422378842597972610678242100295102561926585211014244132858611303310679230017161256775309413403843775031756811817349894319997795987666730221399112682198030896024714617180801433070144105044134948923838053927488328516034015961063473592692043132109904344159058258732539960764573016328935989056803224690265127078304563642978713017429666242927363811778884487624549299716932241828251894390563336493645199021411872884816510876332996489520248736429238689507496769523763526868633927703913292949576627463732106944920893209283656083258998766770714899193219062350164425224289839098254598398429856155136614299444630412830389737322184096392961319415084801843385078519785956404725757667015267431272840172838229917399754514958242269247143725339381208051164110522558900378343462826945785034102272295239613949250338774793233947560518642785134014596630517494678721832770369531308100510765765050580958700443751456466192461938874326212117473168670196778741979103022238188845839231744890200017345408970602321858841987852123370007968125795245004006952933096512251880191041711163688809124159610673315784394524988488643949793380274943498476526967484150944764090780824075053906559015824816906263512625608282668049233385116252487879698769839463507202159790679327375384060091675757356990508039805307731143393006143955088177758085916662472127550808764875851472678387669912666145552348588171309724848247937911622448429177701451174596378678828851531615652809711734140050929489892769882279461779540976332479236529830883134604227038845447060939815450936853543929074966490287000879274741916193220113303186741238118148584391848491094611892334359633746818608819464050757969116806837659545063467003649095758672643200950491385959516449216608194310694366236483343407082118614940428953424829698307750532608392684458940156875326777501693332681479478175843945348777758919149838320125191722060645712331010024990822666864881895407702129306798196313211859768461796413920930176756934642673705773310129514437363297363182684217335159776950265409351391024835231939307951592987481682667210949413217914168927327589781215369672429158421622555876666470073875438223491613004783496666605189394753058172080055861094598967149212368610569477601880069342109249576879880590821680627271335387707169929947067691971318514830954689153034927859033958171650163572915285994665909996025491741623846292481168808076160089429887871771988366852097709151175571366119851615906490009284995711373070981150652161534734598814464706483010537572852443287430636003240352943491106522255658414091105808210630758697817193608992685222422515899599394949628934167728030696151849629790765859416841273995453624517628849361033624971168946470868019307859323212789905763423913747704443163505133123393352970251228278584638617496876470430458311896841163447235924140430764531474880577576248285384101430479081458131914733380171305516782150917900598856888694446534887695245625752236657822588136543282129104511129936211659692515831507619300765173014176253686244932293143561660052941872598450285749569753610639605138909537847924128832431264290606643934364181664260328763248856904750137290048154526883573658698959307256721740833583951237838174833552538762601321959614255995149937763140408499664351727013538830210747211319823736846690903983717320757830008914001080486760020136493577953075957426860717747278724426063558255801060293717939311401623044903502811070749419656158502227716882168766539398128089579483420299795195270657817730517162081954596374962603307593486720806578690547409769483608995514050250548356815946014598173049481614274267255486699818260968230612942606575387039385024884605211391039188303996583838431618874770289973321957321470967602464897410138817296789237714557690859631662604339724490804557747471786182240560362870339890341994316272619332856479937359873089235918489763058681928780074876608667269989697812436611132887711454554052752625182213476918992549503295301646078742191282808847881543072689934105218240468183568345750070691609428579527800415658962648371102986783690321195336236261958042061583648261922715065828209132736792077974803472148163439583026658732172942239293369384828608847055009146284019320343961093351587340269902853011464398634945100140174683320513315861987847825581580304955083150188065720536284767200773609731936135403303656751873162951312547864623390840127018212401978456042335062389863339872732436822186232297455331774845506483515152228015201141495198124500100844273180484172938869685415032187927227680558053502727459896144868953708986429376756376143881322943135098483217489433942577335079813936585645727807205933018967927917446170691615782434172067915913832431995626686116486675388970822146584262841537761328011799008545543172214491984344070964660657454607001548869129037234665895141351991039901534944766995489268763204228459087031576560443940210063016297058995183643449188185740180346781793149265793128954389787833438013005673058446457473676969527112803120182097520269815334104557834937883104144034642154641147183867353693103721747627008719670669734506505302656677287207438217614024237670878228042688018642924096102913048416238659621831063806061004528828631148085497240496557166764808168428076202883793360078571815765610505094073832725507779351597661195559278437725147786074246973231619527289476490276592993464586583290728213464909405296171685692949924860575132532713770588609461352742093570138014928115357440362991900220182041438932206937256140514819893538816234259887764693967695437353859362116634761407108416187100397312397306345726200391638162574193967560547247179210796943540563274160376072662325197275011283495404479689611422893817831936247341737774055500734683343860524856919514113868823058520385674119268863090548094969477446575067973717293581307409751431155968836665317618936678395972130057902457834521465515872080562199662604278340403266993769255308803209149790087053962382594562908072678053196619181555871572972618776715522069827360747376913889889147923028581237938233480596469198249128400522832729416613269190267020052296805560800188990887695704534426139275768569701984481738679188993329400758891818584376267637785316108108411524225980949029808017133231378182404450682025145321540167905224435727267588703891600843101476180470177957121422887586238924846604030910083651481242996388316013833103330768640144365685777058090169016106406106288423870116834051249151721729906415002586022805134558412640430287302140248812886215747698940832497425334427594104102375977978529726217358664377340409407263044613946284370328470960542493908365378101494658727375232315055389622744719396833535413182919708007416023683358771926441555627288751867341519309208635450559389525647123560376224647111149131389332443898384060924952725828797607803552185586633686447151911649154685950485193090589261179037938855999018810498068220013845107037320010634733091278438821362673758271327530488794732749819253545607917423977187158449492102407678837575866288676019775572393142985105820665015712503534364350279839648740255183234950050363773057347556744388623697993882326189532607546545486615076631920877167182637600996640411930542372077256973234395531056902962739397505906399655277924885605027993219366510694212667691740834080274743695003141356100007882331040254952118102867431603008817866528451559816561196028150500504150855705892088038141601876053676288064732636818025784135577847419477128134115857920994290912303472862830637352559462322414492850232395141417076194802383388807207102234446411474198978510849066163238224271999824722398670333809038627138822354387981196732105799019801242177226560767223633581358263510181231490557817364267790365640140588181953426141318982717586044925197795485389164742103744012344421221526343226517383503148539193008282247179394191824127537797091935733445819488497799295377291691759258445326433793718458527412785767912565125152783288040957061949331486793379663803573394251836391833408430384138473691019547885881370941678000508587378647652051136718352288799393522448190984568421665395965415798455177226024181067765556593884108092010355221906365261252497025029099772514220808630719054736563386648702515092367192136634081189730223674291104626596106200607148165642057009228787587895615890071337297563103534229354961831930185062059943145985898224104549006818694852099575564318039027573839568393291092987208998148768698719946849720838141984584556353021562865678890885189956708665021433734457718891179612217633630859899797094943621806490979175673698896603939651900545786570236897880900891981997418838434634114604209406702672420971345077636113733158863141789818983227455641171316031948744443812630900023958699366592973612741460144411300426854931791701661081173926717822628674629121870219547486417753120536999814604130393770718223628999578728674839923905483446554283515464043983491379898829979707563933711613208886609352397588142818695858887673866258293130710246251589797646303907891182955801219453903321836442600461049791881568849946548127631457644264923688537761991444861978527554025489898379350280729935565619200855902264228288702789969225952607405183262136967842399693077201385789413923998102161740716443410352380349518047235673717653907373880471502553254715989904836355656025816463391446370237783676705639529330170535836734389950295552949235880354852149752168697235051545554834024206597633348703881328386204903410590490919563059160631425467835963069856944505820574993515863166073573729007354789871873933668466500014445986254264964079100673911612954585479821132554501610116303191914874283024192507923619642120981031244783963257753747026072665675975395650894357929871537022806703427828380026344365300347873552406976483941925553668585883672761942957233423196655705306977749156121954473114775363446339461310186374173366690959068158656276902709631895755811925079506685919273715075809867885259156723708448527796458244483304422489690272032465417855935633257347607248001544522089613671608592794137475463953506631982477422880648799828475039506099877190122397341241216106551234357211783940912050111472123919612849871000380198512740294585246126588535527482249218312495872157358026489602891049950377056001253887653237318915997793465761468582754371324340367831030969059522111377490677206940810674193515428879948918169823378916990551992027445869210099355832959271305016490438147045450943990019194759438105591414771607781288924677623656308316555649799495298560770375944668184255835912138769387676418879951776661432169416618205108260042847481610290640279560723910352145617902652078729718669092527981229775553839535523054860474282843967694447296805699323895328011755608781824292469165829999914878542127379754679133599762825733244622135360442948701323478641955793455973487825408649576729857118189784296608330187257487564025950921744779339196566887951067457055691999466795238948299389640320665055995885698033895412320748010515929378075892132544481731290054427816676974619754853241272545975971108397129740932504609458487927201863869426756572717614299922227427796036873315215185237966122267851821454656309121028283448142121204187423603423818686243704233755729654074394627646707098226255041260846241658674765221103283982671002427022193578807791931314073042757999765095854015670368760888231390663789821443859892249627964241510441344374415463514922655647551037780750615728615564964660794656707111688977481775191771127723225698350274907131945054875471015218645583362913878572527873106241033892884540110885248810552722995031561021093958044359544985904724391711293162806489945489470040242564257202498611720777392855166106492044960246417770109372251013414376683189632809760610210738788198774082093480649528086775341470211767111513997523272131374647672284158792900450608576356519137216898008746027595735167038311293601358726032019137645294080505603327362362266693007594635694629469055611664460620786779550233947774373924298789829943672401568542906840156676892044105418117942618811284639298910714241512434450759975099055981448874344461175958108619646154465114848380083058022064835938600392859805221074091831169948343725170802163596811411640976572915500200508039292386783376925568805256160104730792177380861198073979441145444792751922770923196028927576547656300248940506782139620165018662469368373276619812086467870094847620873830474058742683580811529369484520196786467657203486597935792117137331967182308485638153447593870128002792487280924663872888912559457358653454905116960786780677324354155623695468377155879455387081196780059316513277721938491191123130385069048954250357765605156459546506782662188445860619782767621908591181453610314065894624048385347369752610989932729482836904133556929748682488495438850036564261718818525019554861421676817899413474381435957931832594507469063749687658405804164028247628256926703286339782917484904408830623879154731297904126123407486154300216027253570772942924611854123023954769383899341914198835527225932227487604522991503092267384953570436634937056367279643948497561058768648156246095783266698963453176321570242915836035496276008257201661503049434773894795267011629376106992876658758683502900491651165228867929945899843094909819393676684454211883785007808720215261179073579011062327814981890205567402995850626558930692885106356494242131574186916065913322748064237695683704443781689732687082361940143899131711675837342951881267142554162692455040341542642925264722610693658479593479424881784279859360851654115823247064227010360903540806266599783189414032684948558851691153197055129910672959519284619155560555478507200873152947684397562553149370360090694696246020964652696871250644648801294528063836638961321001152331801897041049184117761163793235358851218774160750470033929847852023137543627115959987526274212860496854873114513822843832066901444768564281756402438970137966915694179484184931318697794149071720686952692256507165742644665953605537469252603748876997100498261451578612889702646137796420054411256262659172498069038204493489019255314020459591855399293679705283963535627391970726920857865221676416969382978237989012892196459435531111047319617153450082368763498924260072733541227270836940410750835229060380383759427753363432746400483221119903188517950647929141756071109947961148320499125255144207643967544446344898894271154126649806396107102239308939276408744948406166154198919307125565258727172704635747609510615688659275786578788038251216449828621802075863475499708695573990721219995460833195779373755441107325855850743473181372696325954396083256117294872279511957979418163760100052184814001220790048351129228711364007694883852712150060304538588968843854197663401599682844797265482552932971436320760705199411408737456994849228111492128928262157785892896533983302246505082266474922692769643581377721234300281494545313004078895040194717646235539551200585824927892198820292098601822372306148121187336590055528672896616476227070009691812295646014573641893287298301580562239779703358765640676253092253183287284877022665945071334675697566834742031280014910145833209602064744598349948921858457373275012010752106310476321992493144760110487759385181356135225623539129522727118142047669663876562604461526359462096480541017603006552171954960329757484379265993654536727770275734019005023776807850781168352893581436627353042734304051278800497829349059544054516210733338412366377688003347986726637670911071729779716619866743670728812509506094785897190790656826414988152748234859703798696150513820126531635461005707167621701454484245625794257659329977441721233054797123901688840743468526489392465557532439226589176559416696574054642036838038715519525898159329155619108603288121442219993465811076052970213823589908527004424714205105499744388452213971294851563052609776253456857128813378951339994955221577274749438714547839596921804259697695845655958188964007887078106293406611660815368141666181463612064017681430625014772733639794757984730075880774904056171711134912708872272171407166730714009278123676707012375503273268499886815676259831149947108840366952708010845898859628183292538458865457321105744433692555624985625119599895097360923668546886632217640896961803685335271163521621626852660606706143554550784129384403975884348883633975335010026599816055706719881907995068391430517674166979299069840399060332341105879124607839840237093763812398716310792027989153337720175397518685489662736281977235500787890262066838674706056782122364914367066340018279281890144473391436483260165085645591642564373370393104770643156290709884966844781429863929392965033462504443854636829714859335504846752691753854907907079152962189732908056659437198313890801165930591415863740941030640711441097864022323332743495685837420995729138915049515005134570453001501118479796027288451949787981811406402941471930960083391332620631070008912233968629762232406521011588498476019082344706539509867988221698998042243250670348530638224654292903093653078642707263815447263413201873242425149049431909277972703549377838340773346487590133706111417841459217574284362723674373809642029317925036242058586783290870216234616368639069379857235848617044605998428020260102977635290101046084118283490581470746019681156157618242525422422617759644716373840276394239109439552358471531623218326637521947585788900702189293212681764960167116664020062577498247746096328296714137963071020749397481137168396964117173423614222211598539107622228883445000330257593312298305340653377467452968323930426787378219555914300667639513022159278975665290922000797800058922334212615576966610685430814157134545097958872205007595993510961261048381038673844203806606186931542497004110899689664102395459169343395828872796757519191009826258907815064191925931943699241052222388562500025250142421782910699335376254619716261575124441760671980677430108531715025537433709011343776279263704877551507626652921151520370179034871803653756882081405944089709456510878573778957909755827518021171107145686667094095717032451267852622754567129762718188207639042382745319878980259031288020546779987908029994878119909109105419663570303314683521384762125307428623819094394898251102456655979494765409362262034278687703687466960193764755660837206065504595590344765200490294827650314152640011647082236497684514297980967692724278861360099223824804485761581918167042188181731471475379088076535504458827026054719540958330706471873311803732990714329618707296740612743026319200939568702926561765232914912780813845205699825851101361647500083136156219541341852720162193162382768027046585976198817641957457503202585303089477198762730197575202682959568317573558589970172526916703005933820094134219305161321393761505496896587995666601015049755453843205345151934734673479779745896588241393616461201626219105569988709748439236332510682018469703155731829308853545944286147270891504810948477306675934118710780366924674715176158849049410703315505439185722459584487848458188752113477469100720292302199640093542673912701459362748998178148023414068026651226471836460340749636985154884982387812937509117367185745378123273419623980141667740898340180449607559649673688962057666741594242868331522827429984495292694398767162557400966384655273480451273610954964831664965439162662098696162534936242692334609705330176625645615596703187810802397333719767693889995288728526261448506638848718495028295276273582737766010171741169277777823861683009909782445466976076443696203801643256579083670138711559552093365341566075663680662652097350603840260002704510350798520777740625595640711202600002360886573888889339925892018207745865828020122143344666796071313590525682714277921294887857319204854897131762108032560086351043555391455763302237553836760480317005336977514675848999198803493499487656924683674649064665404603835088705179173415755959009853669446213779205158926971047690970041484008514506526499734461709729450031062053189272649293553341292639259461251834116267662431553921311423299696006119680989506460975792633495570946740017137713563291712453410120741996773481893592546394801383143628955426621815879862509923203069380329012921092987242681134809282071692342747255720289740866680903444331945046512119217689646864674126002860515524530635586904124677672000760082807760746148924881107489099553236113747040794141378599417557078338570810967978994257784221279415178566417005686873992213217013143268472841561248189837574231382789147993389175085758106126033924238521134888924879769178670430743802759906252610331246830126464055619337212515066096916878823131310921124649853703921549628447776881668688776664544125595644064182678227276451196524077885892022397610549923511706369499721135018667014973520277549355597525539929039471147634170426181469837596302138797035872063020407581405500833391990910812397026438072378249945210443602418716306973448097672788588681098397870586924706123161148072077915475281370914725062294410103905026164413077616422066711679470283559838418093984688442868605661835609966144246731721121199029025382391059054404027687772380158372794577216939583002351336952590566507168360000890792863457173015697132953927918781639806970699739760367949463788568851187035980544990332225647152662828853521684547991196653895433069025212104022905837263634012625218685525303169052880909947925929207344224816520685544191029466599524123970766088070630286271731981875282630312887148838279105909950959724625348158890980902202728173627366461819492609254899945746807253804127221051371789651193214621117036604659780700829257144973539034302199025511986443864913166157314407606356324213114193651772707335482281512987026684772374572004956848219578217732732416118206613666899745847530364105274847068347676781512011051134897629083297307620176372944677744033317642236646133296789815932913836275509501040299249505161859699645275360155197956129603775552017429543302569801659118884066563444658069404519157745004656630552961525689921111106944982567574991802059499161629516280821746603656048491324802922249353130491378138845164662754818818330656056949562351643472574387379439431168452788225550988071953135166967611276111524967267117561844153910369387452751497397394641214611462283449977713228062090734834486198032309436121941675390277401877851967654984042078714993340380460172817644638427924322386285525797116895866920245599606567291979765196810786961252081730519849922531913730909165438120573715829101339031574156516815661227385926344296279800022590568433932895982876623032209078557401575874472908577259280695400468820951495760224273489432822437560473782478836603078783876753912451875170547600669526638249764405638347681743217211001324639624465942242718458141673892527450383247902574145970913740161033357254868933275866259303013273136199642059843782196059130790322573527439177844674913393229947368227231333639163125498733213317625615023719845071826161893635808304671980117826705589865746783246676984954133022599441182773322224001505179484568032299698455794914879925724825600795559954802901343196009262931333829565703458240833177776150440414008676070605538120539059879182011457155300888945329800438104921178380836405688445403448400296826619850418608729043306945140862090014480979333988558575294275455448296045320266410686562696140759700483382920986016462398426802344480611136917050932359505093555677569512978184563386424621906976487152929215085005964556052462627602030886373680784159983729935347994807000634126595103921396281488607965390967203901951031533206637425308750298607652387293893746072226183678121615767287220594196784899971171221051977427598827630995309757244085995346635258215140972361292341338649529243504813314911742794967545598967466721612106491075857248993412315336711832058542938528121616247870897978531566894966522425809428730980320382431026435397445054828130880103647182362446679504727368677165783341622474871699463006259522598073629957546804115119176742421610847023069298596049412774450120703051638755252918524214246525744175277610667162195194028764591838399113173946734574211067768239104322294326538956643532309419191674565256237838062203661541094222218924223694272086786727904491641426781583437846470216583622464747800253942016894706288190863991868581546991329119957600822591559200170373180764705841685731455561482763719520334714366448322746131525023637289224719678572422871448834980506178312375430989947430953363646949186470030290608693172930925087109845278051434473949094882316056011820269585225310674621083604333530870168756330445347592184161404360413615083744571286328422184950872530086408874728841031052364541797053457306028489247805824109990342804600613837459121444181344218378739567978988168000656251656668021869078394945663545094172950641276531814210950119163636610993459727141195322696105733790188543984144506899497855773880020529594975207972524194635924698336569370323943381256223716222765374698732732809600989282519888642613709090253253482711803846685152237952485678137247387384046825324692298801297807168642674867052337777184197512814701379027048208969904894737808898745022568112412084359013358894763147306645740781752961846062503014129106890089791601494093830574420539889527061532806552679256207020305808963185361476874234594732229890163520960185311898223495710870146712572425697986047334900313639995390134309321189909991912061168003030317910451445284805821341519183195776727313254410229073060384279887521799399191418930563555571987281054425783986185468390618331419776624142218696975427196809368204092466615822511888784745987636643513829248806700984404087501564541139635052296315529944698237339872784936278920569424039912785505396066145451591966043810067391319709910456898697222252567325635121438838236805184390387993374946576915189665013257818852117517439518307611044297887649040050532983130663423151416940708159672442726740200847712983897612859664602050337319378375398820282360590568157743449365044072989997229943169047989179987107102110524853981095221699982567348795008961078093107097866208610042317545277534662114024695790661107764777548481126662393345062834754677845814263455784957477359333001989866133989545889111322437238440460788287958740724710070115839219599253884331532869444992133075647601757751272596491024243169763975164359607358250183733521577471563425010568890215142815440564095643242995420154248921961582403286047302667556887657025297279758360776402102528186139849956641774770477828174160729404870964442020252004010796452998410976497718998270612421385557404097541788673441668346780270534072171699687188048212665583437035157145032819397618124039126674152800240815093931225985124583278383217124395765169622237699759117049237859120677761251976196881873938143147627307972172216029182392037023777160670966879195105156788072033957643187395199350770381478440225009824967129960828543757116543450039675965777137103949560267311599648107999741285262750420656664835762750775917424830861829636837474911597473166559647478382895505648944803503415647047688553419340939796949560094524029700234058260483772973612486186945925191779125719614013567320347430169398519779529457318379412632587153069847279558351846878808122719172548535281223344132141016900767631008337861159938953397791179101329012462126526266116561970923154833763489109455600420833709266387996728628781208379395193069586985238804481076383568658566908175065696496531995888612327847598385459526244143225862421224071633316551726875832229506764127470809332762427348885581513614598024950661576139282095751996313035132747529071631069543462079464038519218216135202265474533596102551459738567032043476415207602365173614713982071878715570568250858212166916873342880797003597455667844789965469495567970932784702549028128637300049143625184344390704893356535719200093435134185987316673414455781543496815406196617859080800966140166829883518441520214437553374416673697881361936258446054520635133208155844947278824287567345381904166429030359608989132209496686193115012780466173117665348088066564900677704928609088783783567286298696146641708974287186419305299871491054880327893549518880019839715473105653652532865457484854736525816306969923350617368870466732273653631484210936036476393340056944852438470931783597044568103233580550121540937502312693846030086481284647485914452334214888970296822814454605096287560996069290365833344452862199212791509870917319507829060233743004524907754397435576178553993905698817624570524478761025051255530063945646311092335611139671659880674625287577641487147940463935969968692919497324089668523343342566464166817449756780745412686362665883763407573562729244102660713172079392248387331626898873042261587577435017378478758850259743727523198922014975195207927752102182353085195736372638235108036416546313611622387523219692194289094081381405598416502468925791859500964004902654007933705776383097224261202738502604140428137519107184914371037536378168209041562611478225191018520906542505666686691275463648463718771963601376867980236249858066684998487005821456343429143069412662072528694514071732767355381819055283239066661972695540887783584303514617127228243747625787788644036378292660980681541719448286301084889613027112681090698796424017910771705552860037737744287858253949609742267772770871365168098117767614210679026346056104209447822056796219403093462643517605822038164888793197644602353304352699597481551380361193053420069334269185597379719505806634913272564797401010676582985951564975821787871899569305101822953495953523429472614606828584934994378813098858254676759610007102175981793104323771873338322617327616327652733580667011946389510669832113063134998421479885931876824360597844801265882289185244459789373599254941911093594144464865319719147638804342165432801149319377841347209956757027127614136659675781942552461762175462690439084544486372662218873022090765432651753718455195087645924840643504061013227156562120356981427371224421290817821868172775347621630879999528480220208965564026195120735221025208788374351023255394073217619094064051696946722106688239724418311416695015124524408359261849826690417038663835068475633916692088307383812033335584748502264729736586409402668770596257720660950545125479774914369856059828323991456785757899218995103025023195782175229056567140700586515756366174302051064038442320147797456029967531745683476865668931704474885961399744840342040107249450619287393524177710727641124881185561709040288198437896670592660295940702541837284682880651186596921064395336324115695638440498921312374045324833599863209408787661402848103698899181903373842259880831463625205412339202279508624245508178072487093793961683687461518163798234368337210539972661146485869151769864497230206538667814400258165874525340442283445014976684469563590245963462461652662821931193236200214634890689354179938280352406050743685924087572131954332837870444923687433222304886995138600288573036247068381255950442661961760814305894745274336930895538509023665938263592481143234566663320796979821244817200823282657209655305277106492969092441482516400166557189197861289984156498891162933539294922085595718118776869324461085324703468227976205900093803175894285582230730904234732054271135223040181502086986251606946213048175288369022354824843695704451996121542550614362023469962468245767108932752921459510125132347062348356233289615366521200142842450949963167864704041807121251764354383737484471453475542810821701291154863577910156661220011544428102477379840730778468738868289136376394414053499878530002291736301869812076656664916497276201879950079949740830327717451745198780830102414536088545217643309657156851897298513989595562921746642710310642665805999663422113776934300736750201342302290920291389848063457185860519341065029086455446658057655278233284437170333168595569963469972579227165253528871568187105112831614661381978261040254539975668875650258988036763465822172133737114442966236216432501105291404366134644616476961569951897714346584829089538563010001433290581070099781212793274978596026032340569398106033049485692423137351419439219562697468964092325503826099341008291431136208367172848255648644794922093770881200295456270213247332713464252420012604882496266155960130769116950387313043712600607631168841357616126404080132127024979532742229442760366587905752952906244466264820432450808906720195990837556531731405222730921129106215036896401497937158776111155907917470723242472715684243538161809180370097885156065858951014298813707879078454357510015851614617867432182996317436666319330333393210402203360031652331513378180237553305534056890488380622294170983673171221595572071015308197168349901521991038918116306168737780772366101758050754872144191216680695379500983147459334117057310025876233926227694306225720477526163239018006841547311278413220874941308449622107308302510836240306960203409923712102933982420679464186851282618221835879293350684549185588833192461381316669961194182377112649315959535471725119494532790973749985653024947461742477977275481564700762696726294316250856072861142998617239031045426803034477505101904612542328929188388583411321734123408231186075330960696242270481083077135394634400557516549823014938367592974703186615649256185478874608642671066929500691445949716685121979504148588144922323796183242361641824425903668629491966626747532317502151751010773118077449708848494624015295172270429925276753668972659211908027089961635678646118313586148590597571145875686342872909648870290122772704252802474153755692805624316605496343650463338131498121771776396010479811398047243420893721915785703569170299774314029599260888860673630281038312514720834921992756484866525525315038930512441656024791098606238821045234656062509037757262709465709366034539485805937680564209508706494002919935513554401076749718011116426380989772630075828067447609683997694990033057183193415316100923267636962319169781299500254812883922171483131117559433414320208740451302179833101492863102656889964136913770118118466159299839904077428715462251089741114250743562631443105933733577875938101415814459170897395442281197907295182704880284850600381162342173603004853378934415101969349640381504841525304370603798541056343266298324896394753239420806863445913122512636790172219153952825406716635077235632755125112436888806375758521922750607391769228203758906798920029460990381675766711522349145402363345699479364178402975276603291457726557844501351658942164255613522585303778152595779036127609351231368404361631156155257287751366653935364325952180953945570300302688088842527758268299701311777071092825869723446543375013958752738741088771474267490082464352351265702471760782222035437773587163480347084329115025136944204911428442335663963260701744735073659148417766759346518523048684444046398324347969186035740047558561483179831344708213304223644903076465038802703607068433460952209145661339613582924082049053047409840122480611786533848204468784175498270905255958786839412698795832930749744124161469627113725541247385637823408574418072576970155413615462558813799534897611395571138195500271098586929423917274451107021305192513647228465044176486157498571942307755931355999243404116402093935731265888385563416881676496378602678214623167278974222249312058531711668948162603875559412220949609747478156631585049737976123471976925027813869003324869638075098336011623052071830659997378136245228083268908577823991461261197501206044405831408207356794185922454598561030140957461026300251252493744450848776565947703651620633536487721316290768367029676525229441916267664042062083165754270359009587301113155441213104201705081238117202126137300395052721317145704200284010870137714869449624988278733590688846224583441706408993147936082904967307615543181276618020174180033247573085717099693875428634789277892929021489848753252627292356890084163498949172991087684073810067144003991323895781268843122821448275055153987904580458247390022493143364494407035099271468434395565106068926843067093022263183000402595270251545293289379323958830169202939164140392410476750089199026319119494123156072319087086545203673038626610169159957355143208753837398539826995932999279339594750482798221824966313195651495513677523667430179100981961133953012230068361419050671796116780587078084592912685093729465504152165942827151642903699750674695348068014856900735297501641317152420689691171410290366242427008457043042392938160517330191605199507279260910644249058760762141622391210628603365273761983918267431908730500644826618504074260161990338068037195747307264520862313832527473506379347764861991576127667955641592877841496859278195920798636778643388620243357031367276603609224011037110356497044523188688292811885911670225111554097629124576002415405485311902717853706940573563199959856593417636195955538375785689487787828071371053684329558034158593929842141174973312190852032137165531982720096991555163012751313770019374269442038870590998936639827174430466210879225900151277972734845563062375858673865870453418694641270352956746796207622949661804775482189339234991337787566304761827745682835271543597990640681477923810905677274342440256918107151863361874397558244825763031912313622169729678606521251538795991016338338966349245749043312698796489292519607357864915280025095107143125736262558509562199787622071644679404506139211679920797989727082154049896278815341226390305549285828332255959514776989016181465300206236155112931823967550980339522425239681476786272625573744687818822216639033490159579884110478765887328588001102578154367832282085295096668739817130589965940672368595559327330075679585726272679150284442434173903267624587943832975883177162903689292985946483223297061515655599112365028079863376242512248971848499213990586294986732944862472419465761808834129027146348629647361221672989069666945511079254974846690576567616165976953471063395696170294094554256968951078220844750932320146066468857892880407787598851721582473042109832898558313803894503547754640080347766630034281959115215379074741730901069563542691750687759605609091302617935352278893221769147406006311282225560546110089975602437550082663344613254354986876367167757366656806873419426244263085197605123842360376086390769482774987509138731135586452931274529180135650249925769472966162545225022097037840052720167548711229484970434113050911337707912345963403907358663811946312317986217848638310907648385454958066669586335372357002527300660366746344622678453193278415301600712766884618850502497454739389549289460501937938736475070698048370637985316590505551160393409499301768232651835080164128928220087242947128599874823397473984757280666634421412524501355044654347777960280383460445180900933340515654837446411475419448856660364175455181315102879262189401345311467421945429993975825072157791897969706347513301964634536973104110591870820175451219733305255442771686147536086218581183310983878732537020859420872065806645442078977659214980387197222703329411321110495706500190557319463849291071992457569796856142717162532980141226461098897075461729668325418826020622990025465055138686120958263911891807429838880100243356202064881809291006819159805924023501415074083646726185185096160077942821261830436721819478647106100619849563983830797094099678248207762053098159581707021597014314334073997430799858120926555805345330901257779722369418162787160098329116933064446323551696643596247703028338068337427104542255460693295314057077230376995915539599717046483599646309726269994810193603731972096790228865733275331597233591730689498825167215708879606205713391623161648844521780575297177429028793905309627820770195474247684542089003650154058972993747750892556050554168887633266933458092714039224009282814489165648640342820830852072444980841230362231411391061843535843705632964357764182344683505754763529278668187439708760685326296960841834051396320607393516130131751502602272338859446618892985151980826434950637925162065835910796955516731829102058747807739731846987647819844355442995056417350445337417433459694032041221019734608842520700905649623789332349321858696043833538526744887278307142884576226714081403296105270304825224211108498921722655469327937717500689924663561694894873429901346933539491615831897165649477256266727521260542072465364859669471627711812692446575000861675034048506462175514871392650827529258060674828179181541921821389911652896372975316812506470786477314575060097401546587880911742565465384986089377383463774720123550200016350060488689070048327997156035828454976426649359025997435049494293009902972971208126256076382180873544674958692897133560094451130183396139787070943379735280875545738765446646827260557517734372214314608062782983589777752004340699989924587845004928241843140133471851878826266772336238232009305652532354202040453501109291618312779311336211394722001175615866501132665031094812400251660083749816938877988048103990727367306158922100497661670224854268095464387772838882749935874329187474242940002052598131691001942190161894462069513556453981497000015467910668886872703941730074897595051030787961169935689165696440890722268490628089651948747479612329914948751764078274897736033454695140302675620674123145588894987412210978842201151265138418842261647262258087706347257808206648899951388481794875728803009838506358384877251282276019579870101913176790887919489991817524128660004529718399490117455798621856868195461980845686812354030598874166657677397308197445843315615054101021396795140937915401372173734974446932144733688485422321204768115878574991281556888900792852232850492371077500739999892489753499104862766653965680848945821990641468579418253799775227718878260563120269225852545411614372691265789409386443700082209457614212566238342219921382635824851136878118695878440710733727182695935101742658967879060436006411237304017548310003976673985380853186189604204107664184320775578630427109819624278247809072092195187031880213611139953550264807573160817974217264619003047926336650386517722932936273832101857516479340084079207890671175306395450477104337553814992192055731386636435513984237539092913246744712903965621387585413357608792822447449980962897952410832757039316865793276180325717917328012621397461156215600155322569109960958256513267733928258205041280637406401028857954968545419078739242644930423846372118669889397746178668705061710074977390802538216650875109639591427131630938413313729273888029708343665368071517507760432046305579208165233550195395049414714994135694547525009354946075306407223520924654783512488477076022792861273416661341281624603040326884071192031692732935752717914590685009694529607525514724284359636715998133296271172295483848262981357396987763873711757983900929899444136570872929172385834252023532934195815129955561468218955549308962780940857852109456053551906315190028872898042340891181002974142447092641970492071923517352800902886708602330912374318674046749295051096201635247883002418678839484555275377382611804133621575809722205718148166671224020585975208691864506788550287744520761492431955899165333803462937275618212302465240248062896162013153200932935240253736077826413594089025164684905784567528998472521399679210180948116717738300490367637717254355553149257448622521840763771346541088004084523880887267353600631198654656415541652772943476083842609666908314454260262366376630663899048864669521952435234802672096786213470553582884850794584895978598539536328835873762177179201498789726665941066488382861997549566737855221289359277822474271960569914368290388342345017306851187885543542081893913954428450793161766355395166615055094260776871435561180433112348986975065193568998420837409726961126625681157576044088722889661791460419728255870271167425177453147173957346512801382224533119980523432028388530151309036729480310415859364955414470346616386328385746593353520089381447001266483536461311088140107991546236921117829830803928141180346281527345073934202104963152526234467304384485916317017108239082537463976586696651757248423418866377580357951949580604025757665279824650699454532878464699486903032231712037442670823826114467194026696393110238474375992242088974239883736263449942119572267856736269548334985046981143992391833861722189058644113599245942697137761365699235638798710849374925667701080186263078623740051865385353784450977998186277886694832569327708031745646522977531899489325125378472629620138063334910947496754854362545939252154443362069986304900613335223405456289774570672299588186636058331369876128491810031488009746520308303793255600722499637090546910636889188732831193934476067930745594558049640418863197817029825225728191948727182336199871279783150375803394959730425689437243501054686327398643691028134788812900638331369298769621411886141770234436797005449967821624359645511690261571355913411090081249552659333661600818154225214847380469528549574135416392498080202710712478837851043065491876695563688982570827034263371163768624943894971230391924290416069562021252067408733536461527816661221619217509605957614180958534623487042713378398930189780697936759214672473092722028446087634806966763413453256632409714394506136367668394408731806781944571443013327556303159106516051152690285943687369213161453816339904475899291339261409509917396583131049977630251327390047053086964968514771704569576946632144639334920806478206868991649673868339544991910399877458301866540480832262831991204805650803411739574112101341289289159629471394554190832618216650369879169649395819830916950907293902165396877467891049235678620468390648981289655060819115129753280901008181199031452387667548970530580451950498199748746085293227802370884608418920206731220004781288732977119258099213719169577526283947586290496364820698897833791552469913495804137853014302618598021830911590060412855202236550075277644223919510856574346165722564660216023018638233274518879557482549647657787102894057795776144194189039073526077097446843136234556604977169660135711288432366961476963771821486611191007763962491832572320882500626272788410260069201076398702061079161456002549461556690459549106199353205300231018728085326224712267381006945193818431292966778443842658020464959727499541825857342815015605484950043170651126539117309720385333588295316386751076072641169815471306238646712485440400144871830656366970370985045438555235829343163759885726495584070112141461828809615037764596560078899320390520262809235940677503478370703364060355783317667636658617456751666207312956517610663993217879534610399111958681340716719159889316764059490574249993354547303674475028077725718764271340046032268346612957268463222448206157533838227766978278611856689597510593850046173715991996094908276465513630971662181485909667715668456162648462599713420299616768456261522503443334911275652750482225990730428931291270942026499182187765366729900630844120669695012203872288555268244819865951816626227195209702224097563767010679518804069167527673311368233545201768277155335415007965097863881506160360749787983827294003646522784882163561722316868680044179298020942206212874398986249441140461495139558254282053339752255155565836295147652217565020478667982826106608711805630223022588247498380154590553264921886583480218933266975863593388150429660272018733786269759169545554837621492385191289238035677260578294501475366332249023441629864628892926190589722274830249437239817948282239928254588868723978145086786009949761422290363499186139459388274539144823352381234092494262696020362281069450402514817035437554638137293617995995135466423990886012848823595133646549326696278962779248092478302563341226851687257456130580170818547385878340897168124998562816214311911764327584539673050861467532353119660661608764003806147267495316360554790368446202203787852426880071125254867382196742333089501284667944353354889594715855642235654144222316183946350734304252621763926769013558635444706543905396792091667559269697864100773988579923526978649405530937521731704386384165333791972454205583780510389758872575899701740255500070907785022143467786237732075885892957760609294377171651728344217420449132583313748908414360924616970870566899235269852959532053208395090473054577953452023800714169409809135052776813482501865731569066769916669596379271594186895804212428829215170888993179115284693833861218258419162357912287183167561982463459448580833352013915748279196960382077179591104232561810407479239631559089891703823181373686307100201354394797469983038725348055265299539947297666955122917747530488412777801390109661821101335652161819058794255708264047388671782051067325513992559446529755602817947982052738716162261539577045493579220825739709052813457137522806314649992141966992147832210872370957460089378569568881402304174825298327583175679525306745205388988413698593257243372165120187299175772668853694542570216301035823977424822860617307488054904856998806580830571239094980425361445995508890050633855865395411629468593561326294281713128679505784456790786933735325278274765471532229447744363690399196828035730604320456111926551336785584314312366878983973997326630001537886704297882899864223292247615579350889027024503610179969886850295651477251089835620198282873515815180560703412968624592806601524801872314561685634064648186672751580866418709906861850495288205400604442926505987474788075443861886777289533177546417364066845325526879197212095743901637185418123748078660030757079668087928970301774520713128919047422025665472051004602406755484209373763829063925988359560476074155386050662518173771843628896289446519813275257752154986626969684667999053336094638878085243644714329957620091190054581276838787985519293664429637303780545216316938504957415751442768975853930533630556277270843724820605211810912797208485542050697684300958968059601906348995279227693675136861071228253034810457273463361573626003323251788242523836869226313104062710641397482066744456771193206225472507567833855439938974798979889185175331650186862678528404066950207854856241134139846090598832842043544467337124259972953185044307536362103591779962433953432681884276873122340038834844085397573506369287971018028269159921392558472251628285056071106316432825235210349071938364310924673876102707830759776919918174625320725504671241474807157902104887335702080402316890411065725526901381758774061004834934139608351457428425521206337821363429912543441657249431783459949231800043161327866480215254784061536552818583131263350702761223252108369917596635679399080381518011077101335392764138324871339181025693113804990970238003211830430887815121739002371376533000600260991014269951933376753590034007349970972207556216488684478923430710847608129647299161996945589956590222672129291623630883675495696667421047351066977159546914293914423134680052500574143569784219232466163580611026337311905338001087751342092884639121023977852910538453450459610933943641330857044106037446579017060058387856587024616573847612105463547109711851205736357495167194430308580039576011863537209296604369554391755984186142466037549054144436097052667092227380545124822541911168722749897714022766984287591488930542542891015892034275194061927481086265981458665964580697709867556991356437099885327187405988898592583039919303235519704822799274561174709220980770509818109724704383911493655710613214322542559668461934673057482956963723393120837573263515242286360063505990577524146197320586025233677242147376567711797401661944307011259862188757548146105548325444509872929563422236250164729886898460623853290660611008790093616310133066887650790106758146045738197772201818487804448355471298024819152167284284542150371769866688313574146031417462200699164255900649778399207519179753379199320140709891965428279130180077475860764341183846911290251160733482172725013369334813121996414756486445893480149195152843003616173478680097102087504230093180530871603960931543941191252492708741159192852466468310037781800220673794187113815998651527484193533888173036628143260110137510529143482580740420446316471493967075965994943482505834139283696676262582696421372737466670753653412746531861503335702055048486043327729311229688261268994823583460569456157129133394531011157852754726358393942332964526755680945478798326567999720839116841039668785404735764032533937337581288451297269760496200706114523218094885330430344659525869076457806865658751472286627748655069510423383839440850583105854548296712056884631805485935727789550862686137165402335714092527566392163758390218167991813228920816677134115691371211424627236304254310332010397062376612400820412715316151299178309324565159877572916832906811393833712162433033401309528583235739430710431433488793743994200680148972286538245828841872751201412715165864515916801952993297292823542264759792743468535809078163196461288564845560684268468542604806994542999992378818980867792991876043728489886394200586792362905574054051683487846221238523927950457605757200597038124973634214899487029804641162790467473797593196363761916668686882555571167470040085771271240768884103731814665944708786796631706748866183505350801364473611106395552453749717999423202340369423682871772568144371957140610210068366358975223664037499917586275292317824869472979338376838912326416429249998556598580239809302464046478243466223449771573714684985668883064719907438701607246292241374376144368511832009607408048539181061560112523896889890246276780880147788370678370981469917226083981682453097341919583002823644428212365851943520002592400886191919807091359898073815837152430272737522497285491791727755758766836667305021231285446883302479885261907010123020516328908870777687982451035999553769384465651401254083832931786707465736939878522782201819454711335999825618773643774874452617177953592046147956875628715200317117807926080263760082675605278740538215471079853166407986906315722234418938394269885010665643405746861414377162607999515619937786813056071827672005613158270497145564860911244975781997145045837467362900881448226386857678667860357117123035380189036410654624710551665280794956492737345368646766787544458875028802448860150216092093626229666057930686379141619234844283589225431281592502996023535924802083897845896035045237028598324999471992653788505706930561585208679888938164478173837945649294437593838419880265288837252577158741892890710843686539682892259744370190973358649152587019392905220411194200949852890044812970443162514128599250339143742238297766297948933576765325851061216305734617245600724799910062245091201895955178070967733801292099090671027881089177179616050600563473568852224177191271083621869716693452524005661170532677234661378895749823755154260854631615187518907558354355852702133616255673716638639328937764082399863160230152029069029985297715453331370095460271498927076960010266870631848229573529745032787537212162108098071366379279018875727394016440374313128230869805605807512793864549634052369155650558444223732714524807500787814323220894561476741769278567492407570622093512068167595756798063875848925595355175059428342245052803705784526402128650908485068801679538564889206979580813688712125635130275719820683230670659731841308158780001798979444800505660950463459908722897661264611626914834356116750645459358325614402013373248322983913754554038600217800002510899816233821234694003387258041304643716120985790480757761860531192066970934644637361465393247338869708739437733348198912472556186432739004195336721928862043771843554018829190189156823768153251783922642252891281116663855966774857861470300698334638394187711327887206414215296759647212356474286125957876529889519591939838257962667732170790218078054287976187818485774346804186697034929392000841386423910772748218476709873719011204317197768912255657373619969644281822167325370862171210980236213127794326459896397708754811525800665125267970186720180179961914948372707729611604452810544998882711472213631335761492519337013097299681478283003421559815462855050835669852986436544642397294378051023274834669954088585375794923800992077428356795693326715044147142841168881033447149695547570885693529752422183618393913843906899526434594878165133376054676754523184795562679880060875191508193027097477998421732625987156425821048429783049463495721713617484734815351578288359807249416169635112432216144097600088016200739720931344534129095127877076065235795228154921843089336712339704372272055275544854900474804579928226316681192355739628818574015844406961854539091377628422506627901058141923399655668481427473108477876565396812850707013029583969694767146685122201627235640841727290991386602949165475903476781874690947268906002524436399403226037833636180150510059462148202807030915179475522636218782845581366248770056621753323093941963065323358435114321050847388044698187094465646144030700917338193317957083169747553374134120183286503086687427751996213828005463890563731424639063912288581472110571767312917192147190087824875927580006738848411025419060748363294587376465921184861664825373313037325362246103582808815180932413622700847375532621804714178171714675240676723377352894427943978584734231773160834241356212666580874326621560275709349946314988104765464223809778181836873042491996710210817387073534209951634008971419828982974056865115918991633019553248837353247600513901195411193291002415113054462778105992710502089334779487547072827113378750398186001607337504252416155165859676297856623961366863198692198242192727122069696035643111159289908900760621094969392197556677200199316328669080541321254306342955838290160140835630927172035475232414558017327149113379457731642149992311322187982004218644614256916366255520431862445857920206879780803443604432111912444578561770003716152126547095905005744599657255065904055062064961448683602267196495998367959273065520864564710146380574788765941521695809994564412448578022063201616947393307548426574776576690141664561981849510809791987576298473010545362691160163252860898104987570304754322153001501955510317214744137962711844227421787857698276953233342858879569887856350375258076796069534902551094884943307141807046007250152383840912097718113716779023909788817006071833889093398849325260304025836927950511296174315459037505756633391211922968757579419585288482636923689350985187901689982240115244194811256511237648882330702394872371389641567608036146711340681769087334397587891201262792388124938444487515864290884518271865167182935057953241214245313186712723261535415820248745252304312793315568551147059813297840453676380382011695190374994666578465379139631277773566915932141129138781273054890173481249401968879859185268898181319300231747722692767647119473720370872917538943388642999968501929744580388568230530227791745406347580123131217423989414013656048216106430519783000439583219001800798120662214610951660476741739828747042438926842848618876440814985578648904047596582351616729772682701944024796867567617834777027381754702800266876365122724725868038251947324242545170382652138784341986128030723227034115915617437922581211537627339275332517107075326491436671588081494172029267999911663122703909845499467321614563157867294191580153807677647850695361218838719200754630930485260974692056571718775572643540496365800004514165163888644528129227255118611709834800933105291940884748659837353722431601322085288895356719828857779706209396199609084215742451356665564683169979699053548287065552155593403221354373527690576614698093764262864568328049190363991195550398688484758057691097008602688435532320767427448866089975045778632544036715639710929711379798136834931919254084675883644518496581304715752848913970848365076402417782327790644707044969225705303899236444928340104259199522818812625470866390202939914165147857763634988246468112366240347223756202301266299162102755912039040867266990144794806284714801748091768678861184410955985547951341497365636613097596589081237610881875039357144792958636215284416123824915730285389955816053167991248454416526961379916129708976811963255379996117913880230079811649223673362251874447871030185257472232113922298296910711610485671811100670495463874905616594704215625280241784935089833232647269282270017479279504274811809524131191018611607295032037706046044940656904377098566207928190689580572506017494365236042835716696744172617685215139387274458481908441654524397432431475437607208386132953453312198003631468070314340163291783785485436315050605459967308216339951931630114864170350307361864127754527546856531301474398645360431231622708949075654097173178201517964625248576094989729877419496785236080756806530363526378270849037357634684735134770328185537443001004315368882306843277570833099846848542663208963816167129503604970073201400566152797002197707084804477332375277743856270008428569983566001432365233804985866082454115852177510202079183667825575754347438841002629159733129054751840640757330314045500179962467164430976178657936723989500130804456005118353933746342189588709385739924484178259029101874515518860573850892931746952899706564985239182391136984589540846591833852966978491359235709777670718760737663657767730686236096108413646578692105634834178928327835092796902205699893727820290364303743309232586194081547007726362095426511999296410295166613808847856909686790914248178436942337310499843979106600196284727831215549716573581126676412941853211365682849562942319600077038484811068083504045740318888668684498744396034203471165443912776799608311682409878460756377135672777082906161430803926055323737333626572708660363618204966457727144206720027395576291784222248302374473265847735814269716700489217997366310900394723777738117623253108999686162008808268046524961270604992921184726792647652571241241034957893053697657787651391484238354226155031028767140079066934635882187289867758880283340353005022430517589351769447291853523952137511430936529765439153038891286123468704652168160200444035520053118906820073334677340672763368118464342668333327082426889525741377831427553737534124273259595107211127539593527231911251606503782264488571720294550160093240014938705417818468579769184478793501538397016745748283102810134635611740502255108809610547058452150993231225569806338983757707750269249110810708061996009005200361957342559754755131550586223382575169218073563096027302922981709144304356690952268710249661379684743087471599358901956426846308212796100882015789259327729510140492447946430753778427284151231427215133117093592994500428830805159385347462940219649609640788721284042121373934592194366181807386995097717036540540851229300767454760101624469424708355073846038164415029182236434224536406055156732023904078415611632690196013673552446039244452536885359856838559295095515208432714713477111174303292214687663079121338012129420029735203191857345406643575004690712148814211291259497776366549180290093336989063025248433304810388995896995881560983039098023636623691305667189529567532006238408653685946341137165599263018627619867709193829382729713556078193410991521145238683129361433580506581908198092486222714006979921667683684596601184199849905622772298668105751153569102920282713945859909447396340496278495260279515456899205044811179538188689172983398092844258433228142422113449726684593245786533085916201211642468703169445083104503616249945729312450024972641965006126601508048060391237494499791626927917318346590521319430981267346606656303168245987987452717907115351383361987870391980143735404295942037906520360668157894583749912564501508509342688064947212178715201318716209054758114823139829508817602499232303819719404160364507642275623273456228421876953092511668729225971631243139135485348086793516523235250242425979450561004976335352005283776932294322844022432476671189579290109626923775149718344336174301415486089524564915155056644225758550979858681150318176379210919988086606204590458162343859628226190568710829263780682654233560923183830993916454373095329273255998220479678945075635478920922617629455511688851118205795057843066823614769405257293805390012178584668523386593915238281859869258305515398937738493451929726600699909069580901976613447482573074304784596928540196374269777461343355341371684010586229196979524557499127894545273849780399091251344913148662631631560787014690027648216894188250187710358813512951617947781434216308902183181686487349517364014667165321127818507496715123223605192984866898041595107692011065860323389986465728462444945288535346421807964582225370793651278084473180424063654717684912161996002776916009811794862357248617054747883030935289751638606966479077325595707962868336256798357842919851896908110789286809727264659055435165736239932308956369126718778702762525710099291895835393019315859055234547622116687069744145343809681634903029777710014557719150435297191774210015472378400431477516015846848166964966775345114793877894738135528470904855955068020391447860196601300537592058194618815735374169749495692896678171153578044037233719972212779388512930112596886271562466538812637503997372250514128109803866819385707126884554517880422755733501324156813283251597820265587282556743714099733219977723055413851058958586113650314351999858726241333623742815985507178512400554805229721908707639710713165864897502372772458925520003658683200461097573448171684552787740636326923743804044369132366795131715025589634699257440033660272553342877156387737919398958792064685447153337140640912090437980300090045769655460700399080197950773123465785458013106316145893516861197703213751349196105903126966239299876239665332151988134661001850823940163474516148572245351621897821266774457537028855622451258895427837319064364492961592250182993228421841891664885653805592441484136945581122768443058580623347583443072705483116529294717862324803663985178734464392511849466409828881469133064332565521975067952367037198490432229578750198475128697758747963252510804484448059831947806263778164311196869166131204255007321026582958714651569444249862288472735990415542095340746105285758671691808058843831318985514862424666065706804307143035217517121948253326711069830586509455614413977741390823356596704796781901735900478233829541769299648802561381299668645969216110167362494298720992774587990623036003304631556457105266464400067562367511367358526769397800849812195304359243806094982675699674690952376376918577428296946339690889568046915164193281274820042042588717669006913317826021738343466677401293263441743962920877487726155554488506508594087838631260549499637527590026176615366497423080908519874629175710966202328530984222989519494639607837255612832649315249322430096021764228227434928654286005694162481811221672004697876141684979759055231679891077798761565229873981527817748173422117338984838999218599729335322529926045648223025232192215823007251936426078370104074815211596281015076651067714664609031228173100565073754017507855666859689004698449987625943947643457362310170028994619098176570031443606489281706935060053848093220009655980528360474294850588261137697391324964918295003533470589200691450756972775958894158958335068724856063334536317907178102425787188023910109543819452979252945305808318762637037592729271147798729169436683798582799431418069702949581721503055951648497495549469970565504082418561393463160084372029013458945409955529078406292324922715628190912334501423034322534229558691272689069510168105593683673314208146532617830273303108640420154390731450557610415889430036072596604755602950258697555033113734254094889897126434699262910759471555050425846735491688452615869722806586967677633204942261125338723272942716577367025235963321399367656647249696094473947754711343545209342860258157384394914588403301715833738803299120540229451960674246292000259409950666329620231094157158135213201604588506021407494188250278304207279298422788888487738984199613365449992389102531411754881199298976209176988139993611859273037975570628275525913512213878641207890816281401243724187902671071755983596691273521476826900912958239455467935043031997749640574085363666436497517004944376604204218136062049866332784892909853549303655955042635102494445321527827290703358746749337107568341051729227154146741830480827976787259708345260434009652911946884909961483482649530844671803931238703644166185716681111175948050425424271552139890937020412281703846129474480478709809351928208963480404372453180502821818105168613835116691358741338589534737201652832728632088589844091484695961475303473149171635436268050593486986985542414684587836278930390824196563783178218450126646087825829253994762109367652914992076973073058168038494816366681108389862629540183614546427487463321046993447989269573206608254614280772768397994539852814551326092007566458208381437532993762184363282179283046831475884079630396635711870694078455099667784197933619843545569221886729353669344760711249333329911952753782536983290250268986460215037918408771984531699989426947572837811801776251915063033389714781274643439702414961598959457771647651470726125953818858423693560395972615250846356827669132442331041267705589169262401884856524326816524809309511589925543078410579073821247233942189024304196879712450186443648873927478070927790339055904964134258774692278724030792327586101818808386599458983122031028538986803198781072498259461365428170386675283319053421719047123970728872979540623006727755801328322529064975218904690407658113742045783363405695811837854263956299734728421963890338661726284714943135383360760730676922967733367672667570382809464776635756932609973761065965997634607562589692702727727896889463176557485130021310292648301427566890291258252974485732874337922938131408698967433209554456002042445049088953540436117412173083018550044271776586423748886380484303022913791345769380100809747645609524812283997157342993800780553853418922451770800216857162807912881372058603717427765193327930989250774460646701198751088751883396669500463288334441057874761588201746283828464235607689116243521352428020258062634411476523866009703026075696798234234745352916879746672527622546195758623384013697316270192134508404451580444687562457445724513637812615190227136376466443685553017743175210388909395069621629099671854905826228113671070943749208894589350487894387786564110743663843630746665802012824237864431434601972133336248112088324045438165331844457377277563742711793628672233276705109937926414823539009715050274558195628800047105054881088232734047464818313131013935860165303291783376902245885640805967527132398367196279184889644494624219182155412682055525225635198447497921591471033092429661410928349308889008895527073347190638967845295470934687774916561806051077587033618663874128586279115550408685976132852388643403041416809617958470008745010758697651176215381584816331325039883420252963104220447189403314846902983783347154809612230436006470375661660477582475998366414438827374046955756433835266226792034631335542804174422416028421584911839380321105341999105076338827627570184310064120270814927129832819601424951156453773841625444281639160456654048463939741213143614223245879482009783133949324264571600918513785297002802441768000813792327278445914071192133777836529152614822656821567165259805622376929848671259648602903787106632243252765507813719479563592593264993931987640921914814463750200821504640238745140415517329441852647660091358001238375915278388550583839102391957028033281898085097526688908211432550220964329883034321288439769182728942912592381404055481049921906124721975599577414935759586038330833705013895087539008096016000990216240239186630783093478418468217929833587792237926320496568063950937993073064114507300933947013546722737242580215167046931300702585250161177165681759494576860403899543196191519874528396299787817526961637744539307033179376648493183215461576773497094864623671321863971475228088479929308774832822360423106625441537102125819322209567938864719581966893515513756084410006514511439472534175174978094307566531847479797712259589193468581332868242925890717089554574898632122645561825555050297244919855723573880953717300640522634923496091604416277402702164660037212879914910723661392374638755782183218249056857490272730102737546662640892609506438373483397594523114273804330315710275526043494431215533171493886714588770984631814591637893661145580804939143833208972942831832638833202569038753891611518602434566450917220105594860706954608692083940072303474428110353208180627830037216528332984438748274678270363226204241611664057783315863516549689644147469375999028472084570323684501386823618723645555515893625573083371620150309044372761479721128533600886002010170027896285091851329069064994734928834895070386760761563191567353229950616854116041116815024920898439241365573289955983640171836366232397628300667227943646763785143288095095367908228006421449948244122177892537565344197065433269821008298342652955537203893814047724277796277684616500394124111224654553639291244467238090677428179354485728594021126966057666626125353137595870090593197615797008946572332618156182951498655637758895895567027258628548338935514250569313920764720675475609674017221486989997279475642368347217066243233235874897519729541383578923267508176234944889176055276441093337459629343819574433249566153318882433910313738715551074481151633925147250065952040600110136665481859038994442109800936105827921105172529298413832490784520025499644886635563913799055785832543684226238049512397921515477920030240568839835853575800082768013674042600501214582227091988978732897754187451325013770961856602318205025703317712070837402890363298702277864300101952889703418036561645216929616065316811241911587430419806697809088085613760421016856153211851410988914561641022272386639311249941533721293054227670254838088558517357345034000007804216135748493529450362914607590436314059383119651620856917735966953013450449680151996648554737252641645760788385307191516441021276685096172000810955314850918918851983870264653053961716531542992952681764210194619988073402250122209847170879175320878199174135260874489565208942415023665129447014385040607542375228193886297058180778014420210519314197038653356757531872456455628918010205142666694738001064443292313812600181393995578081432910024302392747936742709702784285347231436545932091806194582385889107695179116596234745609353290075024068489896124048219730147610135698498962114757641226150311374834392037756097764347961726678941017728047477280935278192803630718724811561592064319028877254571396818287628295727068873542676540093995289182955315880776056023015947675302936517960476950653797745442317802377571461481450996602823677456087239643750917532303986120777855680954201795329266991877500778386105808809250645216818252699343316845440119035981393636252455195238293613364347575960905674776634056428821435113068265969649153218188615413238538545155674632565610121720625028297363648606846998870099191183013109182671798158816241869964499838771652146036890589673700871591099937259434601857353700661686776153457859239066719591981133306627132696072074593957960978860213247637703181045019609151741545514467289033440061048659515020220763690402121289546061813730652313714001805585450082613609425881148634501435187189666313424988241226727834030914640961845334363254914433066431825195045475268377894092310470677291298314667753847240450347361878812414567200392445773890741642910242749732869685098099536958929903737980512857008842032774074520416610852263751406916709054106228167813113117859992049385357304112067901472607981031473724989712198825344095626299008220576907183773869663911063226670677837642144501172956776868686512099931932608735175341680486241773714695705289205908247448026669546621402148097836971198202205250889707822494784692371290605106305427396368742287544634332320184100367527748822651931878333551824582852783250353374330431150551083199490374194768789015848034887286885330733497136260096470491246157674032366746682319584287419079340552252679099519356292692617723718561224148565456912218589424075879395091265963867315240811501030549890956620639412866724480188284896264418654601836523178355945036690907287108452068106692140027522340125694137203397963101369000978787922784384180046482189681204459134524979176476779090351788611363224844441965135650870744929875090562132520539195480184814646136572237130491371765179739371487097955384109647945786341779063688550017231891062252564000845295654198926210412989963188772472173379032914151577341601828455661018510564592742226190150195554568560391053516483052476185547441223086297684875131010005866294177160208875368164795344739085225411582830932080905084304163244996117033415932117369545184232060116442296558807573612572687856734570686676319563413509596006008031324792386588258616745616711949336870335408084280451822897808178799889898375077577659966390576723590391334032546463426578329522658556432129857273369611557644301678892557188861090857417196489519773790080614319234128823963472485378224548296508119566078061714880545821439899134682497623517028043434792800783091563479689628456335708799461583731908472438849338796157660522144206913095486951588949483361267875656598221556850318448951073755861038937868952068643264320679697114889729053293778946390726848453862539602268253701817280782442655519336910361857988483923991391285108968707032376718676363769613461650414092573891907263645314009218035720999935335019876773977008262226063237924760837367461558681336259654922209450859488551898875562297511104719572952246562668387762193410084221112756456804901817426094878656829770612075321117103068760844126522934438428253057055107253489266767937759293668207756989720442250854342925721741910795739711336111353543414873556705779506912864514425282626248913797381733182309320921279606194529577754209018661037790852100292346614279062038283004120398755660619455509590437451096007592133893168159860400251120065439648691771393197310630892574643987344635486112676236155069073114230305704243093132852565052602116120302548813322393019471798143074459524913355163937289119735570210467706183998999273040645196718964689764934297345418012407596189520747593018732728438563718826460307792108155350811605566461833798195503194056870361218530125826053393907652511297266069759530354211007126544816345032298561861010349648920983036444883361774714965047971912203700706020265247060220106344679054543914235181206881567763055994735413786449738278265688743628361127900804357771065044104023986057094225552176218243284790505812586936335064966444713261226911242782099806113020410683898102246627293644783536835400460119752977235102719094589696897079393418319028331456748260748724507815220510625147896949039145376252566464228083047960062222002724505661690562266775982186302892424617209306907835853728958486203572952166230494190616218855393952289217891287591344004694230835584819054188213658974303597032102247897916817204027130740368478081059544937549371841657420909450226509567326334180773341014825644863026370651438127247686316106978035289658715708777391384976731182253887572293478952611874653199030780734774904280598471084553503326701095787781527894786441169294609109248199145637990864427346706236256456285586798510251860139953817380771421285226855832530407941759609690138865283609390518844348020888614414350924871098817508696021513499365712168350889113298580623086917766583874532574059231833547445509349456822336151223716365467207945805385723344595575729515859283905506534160015334168624713505118659585994674933449648735844391660616377011149944564795283991605133723973885255931976858452135892773512707492405969133035972994170012533084340582598645268421934630288230502438693225039598149805008141968388309396993877775140916564630107706580418856611346354666910356699667871174329619417833123177750716809839343354064923968301481175844791495037609982929017235217655781313766399271857986356225896320410614572498846691858976037322484362632225271930560955580434911797353278518536597820828009328282995058696724344030520228712667805539640351535286095627243232123751774533838579878413883219506275737961353709254285886867189962856747238734655613068099156444199023909520489857404764775038683847124479083414641172216105777069256494778658809863093834218232529618318623259927503303089652661653033274320592659905596523089752708821549464520057891652966382272995575643361940361751072565058633001977994838893077561553226493824076621265371106281606016038750820737451535660142371426346289305975967356693333600427550292365950042663519269006377598894994149812195383911285533721048048820655256505903728754535314437507041532334432490373214982777839972307036323353048048453426937841283099367618161643656666603566955601713169189848467838069338795964643705378289602090356111254499650788345641904551208620337619313183566451622917454959110083237490967995646675309007459859197006886073132274490670890478179858263150828786768025834390389419999563952687994917685044802332281108800783141940448009345102934447151452624408975566210585678839708093934759989272289210654449233195913974554349743699390454439317238732338735759741560875382159126151014304734422010460750096641390008075345449200130604058476977739090264918938985786597853505028589799796008328877481270182989030544613086591663501685995890404545716061201220132351245514768471235369614845259632529393297628702757668797483358353489930022549808532735206887896808992389644537370583191931770992678687362983137553968540498347484864554925369441754842676801705548740964446820353446543107460120742906400157402694960905628709970719882701654224163017887427832522822571294967845724232352796129191405738440896650817551294778942907779170899644492929566337835868001770847945062200434509046788797217736280085730449294254898106363105712660952273408383106694391665949743989476566453628627480258114186529323532585627394297921358501587768084157175041040501618818980115496430318875176435245249895998752691097678946575906338300627462969061933326112669005657992317837137499645445360750753539798005545119862345695305838734222660150887625243770832075103996099579178905397197065032087312894836222565523583372245692019639734521920492875907144886403865383552133932931000927804821352111774960861077103533443380401283984387186830418891092503496413112601816314074125139999042927905505759964393486591578293365016929839050968850389200997909211649507333058091749930846057507152989620144058357624294479682755583778903040578120221144899483457975458744973099374276107181881581161678024993913245355793228871357248839732440884151665200420701889305537847016773140602493764856300691862402908925692685497479433870977010138805020998306615924823650673308185689683772445390994211854861989082629555868365022942958728812998260595897096128388860509420190050906911120218804062802480773198781985297690086143117491437640992127126004993509997742536274754994645259508060634283897132728215224228764673880494569984934250974599358904495426596020556839636872435448104501897844458255602191589379949245810143711547956071543050592008734450987249629696354336962271077216825129380944952191720280476700716117632113091584138015175085835993170329239391254058588781492073676980416544980416753332370235975163288660728928877238328278451814937390070305040966380930866467386035671484946018912779656701228546101533708323833557542747584926711606602875827047061624852491985599713124711157807869984983191460611534016167052864532862835924571957836857761906346121860165653870888702129092979616655703586672324690596197775006169547805581493411200357116998498951395439899217060068078925833711651764832865317641953125425939344834514926376559874666958275876684156589138971845597269575979096990825185687197638032500642640522526689619453424324405839450712586404278612558005944530865054539547483029990556246736707330704248496076942361664870443987540078101829772090212669413597330432157376951170996122197117654315751305205332525890828144691563593464972624538945756353506654083605366129774076014644031191780730436340538886837332288341890060567114614431471948424952894134865513407719586737203230506175093706059070787092881971695336101563879945478049513307027778244450861473975778788165800406558803454070943995409977780717569527666395594935016829578963625352704962684617495319156756483441420898733714392286189825073745512336920657756014893064927713443401832843389082300562185550076708950602535534992829851397814628391088562907329771592626500679462047162832750229437092674316308861256446820254855985327486862481965872949221508835233150609747912500231597708729824250203514063883974483131983994473083503342726968407829885896423933557191899726836656794080317454653944565856824797808547066712368485845078081682063238132997933896561289232885408752017970664642367916681922054495522435886718712704288062365669269455370523571568284901591108884846278505537337282852215226503996568249125517149890667153174589412294627261840383890785003652666612149326490431061119790534458033283107773357897659173471843436138731123279168641995832852283628581791715860171557044515375821389785431350174120265094627591462035674601110690571978044874594286083137793377334541576466136131705470036278185859934830538206161639678337116613995956843164336731244585826106106438094553515627058501465548831784962054085705243329185424654774520124242431859318758012792261122645156096886440328375824176979626172583044296075300534740549204339888519937922457534653455516900929606416282348792298785513726942279326793903382531343651713841421202738011851833912182900455475899895202482362043001324204196749427623253658510131187766842629233107833883527086217139931138502137027381822283735414600538930469626697163667204611804233196441795197625217319609531182174261838688602510979141955842842503425476593742649013124032356494060888828078195947194304844175061302145412966640130555407183209566165204273656501643379699497443636849396179485954885769095056036575940243690535208411146178487703544319858055674604302070311802053480211792707261447945992636028331188345316530541232725700858250577896265900551310059481875046351851329433536572468751147932987551624828584516760612728250104552904123754644395631317330043402611024255824328511505101139825089754448856983739188584212501850208082398422285821661553354174193248334849754336010748301207497421420514759204506737682669090201766691856237027098885025781690015327834242001331404450976558002638431916351830396122342933093265760009531317957401300587705389042159074860134555470641814093879591542192451947301646589473578273207265130614183245278900743540049301511180448154988837917195312060816035042980307997453889619447054600350776879925522441952864213847565516011327273354769062644903499098069218719966111365017444046973939974371990755041673014692058810924740233117561524190328706778398335743178526377132950586764487548535972887784381893099173125855359791086355135738224561895074933417544158476070528099950348320000105497165301516901693436012434658395035572810694379982507647067135261557034438975516008481015624699637818866060684046698006305807089196439351227903550943199571469391254273363350807488067341252508346346894871334184853119573788972357270958926167038798392363767791615623992559473198086104315664704349093508845695895820722144015145593584716692443697586477955825948064443757842956862785820239424089280017005013580316831638139997190869773716128407339656866450321915546086787988890635305085322477017224544686047028506551218311778194174029034072582347765503893911742370340352870890361099698111593839227589991764774718564021114826368639396152270863271878364007773991305606635066550282723414678006341865071255847421248396067527425538808767865403967216903246601414181175002068490018151052104582364588744782417593578764846305120278334877710850401041436220854564231526875632423298833958380144139284015128053056302200722297485501964609956152713916443803590471934471720040479199412236506520189991285025636789315452062956007571638875038554899178975536488446995748460417747545826578925533823902523497952624746885832151175872029060710675595856792784972109170039430069184740405718649215687680849902743808450432267165763793789058164873894811154614761820213948983482680616010898884709054352546588358997557313335624781674622907579061315924600367094904867294717151431848063066522135618133951936103069548009279613227034723684249369375289118816237056305641803790519552649010732580662686934589313893654311319227706428614502081285335845277978361563038165297026077269963364231496146211655905251156149341381664086708206664677869467854100427687898991711831455822629238220691181452581512937652845926452442818868945455607668041881844944579245796571462964879966265253523725316736975438094445394695659193081972497196021427805442458759781412620198872879335351150238094770814174708516036132164150815851343627226100037325330475033572228830907157961302028357438875356256247036242653009373919977564255435286353844141551498670797039994004839422381801395074928588769142049823629413725685740853629684954907986074661827964015213630525749141207069132199126287130387460123405243523365706490154128281760772770714693273131909879436083761856915542366769731424646616460653609192053432127004598277205606446088867564858956674964877478038077168506721152869952585544291664222060588387507906782584489506370760335965103145190969687066578967516909947934903157292624560014921583417827385301026441770141844491727694802159510843348464879955400228562991474505751232042352270639469865557849176261293671617464054670196569185107031771422934446067741885843335966488868816447293927187845307006110558264156141404129338250209616973957259894850847560036710749315487961925846080330949844696978391884645901270123841615332311782212890503692204103750952404260803693668666182361523312778981673255123553011773974871082852188770753635147119021642770467150289808356612739904526381070980091583190085126650872962038159400154635723731413944448087633159734670433846082897122372907694320145479420455784712463233970001967009613400648381477061698191643721114248282631992210382181661358867568660972591553242821631263111620231862538502468367946159884109313286149156028940891967682011772956162880474145473843666384131604091861899369311052143974532090246495230085841537027844721314658451210440139913311867597446900895850464312612502802472512859732929846756114780398535384716357340857731661687570631414196786103465243066222478306660854511260488651991157416079680886677277981101354138576193434336745538333926912743278585555120929725458977533398397639401860659338278352953449152817079785116080414760764776230912914856213368831629256602169393345924637892871049890950398465421361899408159734465749489755542394553084296669490970264206480355309373285948519530910622706975850383028737076004413875226112002664455777173152247208881236719318999664069010576571864898925489917100670312369660806491234918816808366395595828842419265064052896286511796677555394627280934648625195901417610680186079877237867542269327462264301232708087292545386671824344740472887289988283381954338052468984100062849853994522644292475496317292552164947621566077974316675493948893637303728029497793190380566610590257798178452799761514232923876661472197227559596315638124467622722826725765650023909560300684324538092117985753653880672592948068578027399124240045963663454419629816784785175754593807420584745364226462127121602074767200876647901373132258359975068613858481590988432243731611278571624716648527391611632543714102099205491967997512313370553466270550382067293694147723003823742363037164555613077246627056945276501649706999390692860960468069178167315372570398802445897907731264204916065081544706650925306326865912992338563514856433320911572225176201441040517969440926536086519629765817840060168333170949908197034939918961144624624961470146094710548194810724240648028605097087608843316807424569645543625297270806209999038039392649647818872088963558651868032872876938824553787290723604816542837343854529728031615679711007845610141572299136335667045692153752426455987434782749778275846560010721500994965064357371642872146535673251126412826420136008065414433435463101187865812029495407249656465562896245737201547372768496484991597022346753823983991835249510556362036751186825493448011114705534081130294577965425103140796569672946926026850284755425869747614985931053437808769025600215730257858961138708459495331238353514405653502068409820530066519205510770918684979763590798337997040576256630861005274332367961139082627016892354773833220354763842184580662088569844509076159261040960855286154054933863693524091073379598292044340725470131257410443570218179624671709133163573882075946356924818769840184710233221270725185601481321976124132800652104959211997945659522027970933204013863216899505448577612470330302311434259903435574576208904977234426753334949387803817340643601925775895421578507909009563701091221708912850705562167457385148181839757241235471440919175092298288843263056731408389304430936040961930089123755923289175896527357925796472802477040107918058992167281198487951593684595981234445967253236193158533510021890268456831408511903174644655141232894338574214779352983636173570336466887779940357064669471955196643766910782779314881295059036820721369797233333549358843455560332362011086554219644116184234675068305865719309334213891976880988830332736225451836647855467525276207270141644797644897457175443487538189330530705005843854954904554709075443748647925836402850646835459461843119304755693973703612221847839189429191297332892291350462754526993784829069901812703700667594940509719412035972793803772962946997791226988123731371206976574596067702178189318714712953711724538349044997814464675287723572111422246239057408496941775081360690178197359958152069468898213480725946145941368609935198233473318461291471875781332588573002902956042943603793256832557643654202935810464713496463392685483246832344379058190490658449800379277499338563562212000023342067334289935176655399562975168337755190736260968891098621922348674398398240824158795775637192116555069713432848207950485931007016799265176990750707552588076399764526614578650587124594632088954209088130817625758626961938961375754316081820112558796213142545716315584958671113097490917735635536123191610825745206252777611858616982135453072454592830510369242922744095385284894313147785631707837044617766289636316116493942096696189379770067986640824640148022749160260340706942611066214212933136502547115342078658655961171885852289293996882128126121365231020154224914296359436275907267647573611640885727906061232123705413835968309960627055484380486102462003818676817701274098161465917507280224531323759695451137505391903290206892032617285938981716104965642298889761335128596514468652389979620604175307977407643928484426051141645748868088172821088587989141641006420195844010990686922355125300420728456674104563034104144578242130975248633668554801808194263986834386867544619732047603574644994228983687035013560411499516224787910011844909526321687171356950744229089958801469770840019969273744365752790158548004007398374088428267628725236487202035155834973106861291889854662558376479624448746858155744285124414856827988718988802281076439644157199405422366416690040828284622228970851586978175449099252348081450461259268751241960428745911581640471658669559566486721080001795762750916222240132984441256617852511237651519194210231953812022827157811488630771791464238892618812684509146401370754480665200547550721658378537046469382101057838512921170993681455058557716861999524303612623686541297946248300425487961221365890573139319302910079234698929015526524090271641417701361726745221288268253174959947430932516708461214134570393358142630179348525249947933902721679341704111761745098752880573408017979346976013455230527781205570935861875125618233696490708499942814927758062997622794828250109804021609844949298615158268810933589563777215244135757851194350628155482404882509437555681443244169717867410290036286090839628042300089421704388451152293654435936626610561775621609851945751479011750987789044233120996495504364954771877238610939418500165667634405787057247819869235280228897141171956856162647758084064978749819533590608696365699124051611145882706254306621313969733864222942785437225494930686193514690424361369985266579947464452309560459530736614545730565194659583449751816376827097003883761889801826260786904091755131415996461427359098826498808333074959237384024808249315830977949289006781821807555744095223972951059098490715425473807147182068255469578355514671946703188511440641397326069300812809945510512723404721456366351560337854874108930669665942611330279349753018859874901665016307661400212916951773763365252398364135851832723603769533360406064572079309835853652992337017097466170099398042283422228160879940035646126904282753309494708899238566590670251743485470099308229269709383075254034896310253739365814173512504153699324882657099884903088707909135777133425287532925451703722340642751836147409758007737660196947369919107084666010830059773249931926747989321229590877067415601066539866373076570761862387930821653436734770496907035556596254283932119834070603266565304575450780683383424229689438845061487896461003561066263324908928064627310066121415052624462992102095614464486456453409999776976927600074793207229661417455930961827809837920908711644523891446763612450483274615393792190800533830882507541580386280527707838881889316757670921269252935336079275132247091850805296581638196090671476069284692328584342099560650104856563936960678383568453660681593090901036964184141410510483221214448130316216957703609138715185460614773172704509578050657870058331887919875142189140808598638867521475489867227838779100729474588990289741547865401129754310265866417208695099007925187238805666332531771264591329535743940625899049158226338956708297424666207736854710363116522938605568556002476961852692521264840323151777339674682218577891277713495656920879133659154669710307305749979441067114801605556311289694144815375367761189719342477764398590050530128479098190406460814462732340351090391699199122706977465248136395958742037655634147978800130904761699426194176466490172927392996822925023287578027302985433858333675844751124737106338034288356859469579644090230396569855073219140497430222394274167567841525248947649535535316278449333272522219127731806756125471510658526387818256412191632594213007688239606935886566746272827850102037626040387110738736410372088462101219672957638991519939098209264429878508927765646086675175448064578359393346242133521798112891589047743687920776617401914052547525721829381964684033769099269104730952142182990127014300044978482619419238691390359259359193544557784479804204618261908925031659109876362556582718684291887375666410526800974571859866049675642477346603522904856913691463592610860915280666740531826198286264034688508372308490500332622834498765250113908389371384512172118021810874533575645225009255317601598125166818596073726894518954580189892029177414501764642572482270889800343895413516489987564482642093940702325885668851586191216271535544480374307317344816334161804084994765540144119591379056639854469160097210923722961736312117766944032290266241212774867913269333419669143752544805748846545002594116532132375088353225924724944320918814237487605915010790463383320224035894016522169472803619586861894565794150391699612134271231738649183415557325030781724399764722643464000235786630278375543551277706321101219236524123015062116564667996845857633166376116870308858742141713024104809073736162505345714987927066087210632574066757497773112861713587382115213398436593791434408497145760820867596159648857586985425622310300943706067277195999455795887909342493460075934807676600230565887223714303035122329924944090408190342799673674621397877229586162902037895335985299124918623468994532156109459386324379771941785831483926915464088964525584408359065781274416115894585430265732189589916098195723237440504787062824051419427856424482967681497967460014028250453906702465197483759126820562843228511950247169604859069900972395150591222142669999293279495682518358665433904855078638657579409709925363131165181701722115325805284353858194027139680697383532210558128491288185263235278632505303203860714520541140212780915169257606345408091602931891918526165256409527628345071905609077270455252187081026638330404348003517918201161040847639353295804918471767242119261828223358079111889680837304932320339423071260817225835726054390575236240402807698036633782122832730246295655772357470851110154765654016191938348459130356496151410349503676974853624970534994883801249094066305344225197381291337366285550111234896743510241281976188763557288976161742537028651683026538773448214236666029435379804964606022347429784154912278381715229744207118223089777473315653165776197237980727497971849987755732146059712829619325824622897281454428429271643479253969783274153961934823729298381899056112232760929627580966579704945565950011104351385216741573478285401155860089189628968073465703260294846994637357918910916306200450906454573808103613994220432498222295674583280927922410285449156600649090428734136056595145027980476044872451172549367783565537096716968567508258288609547992482824019083730652777768879020120481763707602358400064933771255561829233230102756995961979251282681157053643757967825624498834103459031909283664699946729884918722359959664497101182283239301085647619579035690062529902527120434281315576016189345349940828348728742562644137777942603202947728895265400308554265115744203368477301375181387091245581432112494365260730285252344935088810740166057821709610229639229982671163858591575733470482003614504199378154604628327363316518079455211886810045989058797013519131210573531170209451328266552172127939575790501687128815890563142302829639885404329080802961422041313600084896887479729800447149485487034140958965899471244953145035212514345568279939311444929361089257189948486059561278087951566633277680836358597226117401667859822143694543999813154283325483067637954579361935869578695898995003145549454133993090094725059018446058649149875190182760038170763298991639130995306729669914984332344412815315886655121331784846158855789388289803883304402141245560416023924855417704517410505316970420429160386608724265604698481162828777620205767254702861912017855834769985555618100641706680083910217378882292651905941187465747118182012426824142623029678272664479872784515318953768220896747880360502329610607695345905215996791206618559113506202374299876542347695004383111302421872914170345725511489402246734550530566955027043541576867931016235471781804590845769886427455976582653494357837236576779008646022169736747651540185693822921699077368110210062584950035138402653206813423860723415609555644482741069245501209687273437790409665180705846023620109496508535980399150397081219338352009925073093497807065360193180088670861814052400379008015376329968179135807325948956109110429978354927748408801217988075870307974802668721462792326534205697934094615078162025156730152682984928941759651241587252915489896386532712607144323387409671026745737597903596599372084735314256933030659596861039957476036631371040075713156426157570098487783742985585196811461980156302527694165400737916183965890416410870673578878501101151740155346792926823365204180685830575516551486507294924834237981007846949611126655628533870862352074079522627531087053062553317675949600111175509096128160636263774823341709895244175788671113194187526446374975799323950703695259194449845242508719356465565097993544895171821659702778294715663464846244852926594205566202361545935084107604678176489411548751121842876363616318198857779189299227105863064301748781067480667916092637282674965016591485863325613754649309644969124041077497353334325028184307155427517237838171326178279948119279784182708305822741219441047490993332664039233387606207216812256957984002086261247567418942671680596040639412252815613712061493356057068813187998406505540541409959215378725032903667014685629746675275944373081039444697999997904823507125799707127753304964741423544223510521336773705597779605070677798064187678924235155305413966613507257295455707663681928481639565462087126433168467473850856864490156324024594256812976581563138046453902125854554704223755319498121521554010639232906691234566980000084516115803899671405434742412916549742927755849096632826821644736453485094112437814941097297625531053756514061281697508757850679454844992175961505893906937659458800953016422153519526008689399433275420281942889874547001928354157628014708710432216260332769389403578450085051825182993877439626169408651143780438308608718041420206478699277254135128977514908423093278433934236559577685691414301366299747834759960727224176507307660777938378978232031749380168239179754581440069838759400804434270353654785895125437695567157060668330063721324427350073359877694496712792727713048901612498356855105515368516677247603571115476334410588152689475821615763490272309019167096514496292236811462986855882313000772177033170076769604230512799074404930900523500683172786184692622505601202864301757584603409201432939148976690264440831398156311404861594746111738287498291401409079302042840232862738312473250520289410496074808622760667175502680769233567894027716873508064343184100059269639142358140695537778174961039938249574201730108746360557068202403242846617007570949909250863224496888096162826584607601540213971488996431161600371095996823109750348573477204269902327091540855771743636401899804066992215405396440025047791787064815171014844793927867968457049368066687265740563227646069775109535268621337116159900513262725706803104054066234922406841605159579612942740109133864159801228524241251991687240777894862058682934839313802349788275073016798482821163694322141884202837950867942815682437282547212076960023126189355477295155980308475198401744341995506316525567751759055385418995716219404724521329092801257527712122434969516069093476363278183815763101163502272958457665621843839987601807450943544142511084481604114393613992110652721941470088057537012564106925323596301740708678571745964789445544965071025007727198201848534726796711501836760751943756695514331461457941282453462052378288885853317004295999768928345005809618827479814868464754148956595108593283350736215520978911862549222588514174507396173287674436890759979469767314658228309087102306111096565442857579924291280514495797656472981878787309813586196696625324163845659618443233224824807481625524464293426054266761722592481267639816583889292341203177618083190735472238177147294549914188826256290526382897902258485042467810340240525706781107480211096493889986068718117657163461865538167301157052816061890104605901159129074101418516769177557866040134286648931045737754302187749538448996888956011319196770975249979486380646751521447993792730410071581541333348837110633486075004242725028807933300849158435529482823027288020470760160103294504271140760239424346328750013598604195689477820387322530874253845666509267908503129318401304117817896506453267445955006823521636151576421162912396517303022370597975453635238871268796627870074412227117564905426233037192245072498067374971592436328429948398227237786784898436327294615628351551915152412301977313259398676993680832699440316151632569491594680769428421214222224265301110292771245457534637449175010779915216959011219554098772076646213688352314620255043622339681077572297013803807529015523850965320238373205248123560296891093335425270137927599034320742031729138140359342134435852757641044947963902805308683809115993953011545832573408207210199521586052550430134304407964184912085641065955741756385148392561683613581105904957561901455011391877451726952966662448357225061905503436162639874408114761089839463545096054765552029013308729493249994913574457458322331899918736023563781694443761534652278129531501082163787533039218712881285537087513706035921099021054227411027965775732076893482728286596339824683688063416553209319693096519332181269089753168394958331183075940639412530787838788568171477619925642926743646146014521294797153257222179459499006300614228004110811952072628195047571835847371162441861474538941254786386682095217840430267699802601812587996013075412644190920376963080623264163261211353728396319737122440107126724908294203061157799716261996741063273834856636822140111353968383168503992674154241011754375338462139113549856979638913084252904044071198314720457953478174319090839567438934418453904848535928753135911757503114836011734557330146923216115700688511517884377453038782689662474926809516531723252369928450910592905695586116201405721715917278809780531511250825353796950196667974816404075212517393852722141102021776682100590322759344975427230535077630959076313867351089605145375663392221503692516755467074124859121498941461953471387479627282223354187715160885283525512897842929804615535712784965376236595909844920971445442137279581562436913236511125584549252348086372484324651663610330645578098809549623890887548873456373920509097458112005522654003870962317632044419353361824935962156759160872032615726805237853677415044284287754885642746821817511660188576579119119774835988450988426525859454522414671697990722756565963204624077292642050759896617728138339655686582872032982759491076609036229690006260361542812096815439505502117727302384605888338203267102828261475361761897447352857004584945108546999550219888510825303817573894825401100597457002059394899725819386369116270053889526329016486367550330772919393975013879324489146852925469773524611191154281806195579816912061938395931425105072408527636230713537497502763157439398498589833026087101912601158937911765994369864320200956474802573500033392371050331541821046525961212449939665994858382964517881794055880337369730890122032410450911025702692004876492919286090312258793360019350770561702348580629107647469113521105961215025851600595964284354096930191668402803377266107868362922877051778327138061208707867344118032024002353819914991925057960061127974974334528265220390840662498466915175297158545021326909005372735464106063295200012483941413772572461828248573058905430833081605010189048000385432973740108581223116113794295614561865205840943303734624232771768880677088651404367103601313310204382115735931081183247964082637529911161479988596445383875413237618045705105146019362998144765978869530519989997153447350968827576801415450513556317037157841312933840279770592003131134902834353158978181128337975199107000970677870733028111111623505682234950550957709328472013875869683228292574741404910159720459299294079672982566736244712453364487777798594775131426035861761223781266527155706346829275655317067130956026498192546764071385251101276793158518133776208347978544858655182165196662679873415196438545100558561493132893873155744405157097286098110670981851793056877815776638957113303111209700929735905825494743724631833361231966617354903133323172556961449215223494869115003684435321051059926276355121467677801554180997733826596535941409928599408188033928353721971914488745848433223344891641373028212238306219501588873163938055382844300035869669331914220305989900493377104982686520039354635523790586629695415872779630105052612285345350065689865606756675730409418704416600847067662008912763605715862300578783645370962201061331978493434237107064883587532360739838184293543993206385903747977863654280016129836728835143443462880453057148170850242070689119778388103747046196626547093649381276164447838154239207833441197442489359830418968098499342123074342096608829712606675760191174771545941925451785911963327141066170624931653673780218625942988761510600815457651216251875799954376203034755512653343475798827286341311160963081101336896208219035919775325229960481320315124301855118450159063384662343924838325445722748416565393371280078402029108508689265019703256416689858321033300506235026303326507133710281301183358063040724314640220540465062382449376337330641046438941424541388819564381704383449019175506042588436743410912777366587958329455896265055505979408322230646659169629371857388151331072681285025852366382087087900682524816308434448692666131069624547000596293292955830206028309925220113302160659384178935884042514530259629226347503051546638115323751109059095831051212879485697079696206679900370360294911476276900419536101305347858146086139912670205609500577330010922885935157918650910335629224318418901933527187442134427670222469018673849991495879696576136822767079918450755327210852615881907134495703551038737741204402387701142058102498219514355112470182503261438579384239770862831031211898551227753316009490423809610615464038885032289017028121747198194045996461940351938409157695020008132552940956600185924761070107804477484871523984054344316433523106523723950989352335921208844196642677274039325126135532443173301970680113862907737150522682878027311343179156476409657357314671121749581194398545436798813905598266194156824517160046968866037321320849831478303083375162370286379744754965358240907389217663711672058299520433784353615317207187234399857950207005638944546005061566181466847563816870183063153779966209268679278614987654529771273700267934100467607813959792062775717538744546605835760417415137821121600461326582602023281491673069388472655303628504581650835302905680449979115439791412567882166166425639689464004821012336041081896424648425782611521042043079969855728597047700878395160818391578011794724083771021394978067410784985564099781251306154969543603305210526122636404238584274945761068863502167733478726870532093389595303044000673217157633402955666549561630554209595514097360935497592586190990980999612623038259270473621523919761303836633250104871129731676791173256596702124406204995819645685944935764144246972652234217164406360231749278606530294098657043498851585318898455863775194183990489205428663519683230809324703560118547949958593808927529563206169729536768870562911803721668877268946999307042042904339953939385197097911970631292288451046635746023680420829434340980564108013010888570254590823401999027755436221529224029282861283622301231009201621745519619723592826021720365779132916735803175483616758080982378502522664254204546693199324832694378959216704180516291919576137172707624737988769571093376048846905800408480840806337782888203103204254636107883431387870594980660848613793856737990856894512327450642569901540482498788445033249958229102193131779915123867703765152934680536622310820423027331207349174908109398881869673381645770343454156914493184627150606609196165659041235285850197369124853911183051879518699438775572003391474950106443711005242737892791504322841197636265771514893606442260076958362967193116457852982295481106462458180281358668532671640272049025075793403231061254355173168416544832598836582973981734090301794614287689124817351368982684270907716740860576798633726969813993867934823205691891147037659687869313927659639732030325448659043722694000868200873601147399276707101833503914223136075004155954073992331880842888277806598384427240273445758219399326593659488902576101510496526816845810806871866604986704893965903820909119073037901395895139738890991257270594565154928678297270356158937920521310971722263489415230990567286027551752895763574081082753519950063540047179024558535874963507405330702376260666171764610296452787394536834341184629344293709194844665176975683043017783546024659385029745149867667737983274490911281964520221560756229015482262847953074850137721447220839343143409007459010184543187080031442416219368186288140217067333519576218818864787498638823153806892325986507941950167437293634186350127357480915856327482022809478089801282335467927355824408504689954241323578267512871669992117370046910151437388308967492513231196810679178769204435513906971816757115783403820762689280253878882973503910391810366972681765774921618930690280531838171195456213897737682780013022854195622291891255027605464797364095741679213066147181378669093501966265620853614983926064603414501773296402905977105447999712990229256763908002974276905119100244843892885481655988636601598896502306788963096281452615197469207397209140920859900270887544783148792210971915282365042151478256633502410248546016454418956638569658268185774907617801509127815085981938674190374024863823360354153055712721768642558313172873214566955126326615859205703293124591384752708466869477186196016335769231117614432754864118603806659485018843201286402973464828230209001259417609824316986244176755975958278780861080790571366274481094612107970131318054059095819007318679960516861707194880063590934066635151399713261974831736880801123382493494175591734900561773885071119216875850869363234226492546978114690773898089327201125466111315529974524548469510343001022670864558345938041409638085741202402636737369663024037864281867493680436520951920925088018365416451956607014465034679627310133181022951083363982767705203467325446652722853296605760027736219381600969401817602389762939907220795725532661882923423116433067202616435964102095004206288149372437981025973488544129769899578499647547926896613963509664209353178099268746233252694613134253253107770897089161506785026368867252868560563304753643496032504659467506816852484033125583021898038071559703733991008368447628466805208819740941733690239118179749303350731527995321450554528367871592651376492976847233132007857371216016860226479674633799884997247120195964025138211260296028999261870239412018530610283202815071482888889261470814045110965451387775305229127334169939561239724899163837375767171118211739061146696709947175296733140611380096752213543056510623684391623244904153551456701321880061503028251531301574638484659258123882354880776482414217892522557181015477479862788969239291577831800986624492991830222124051034774605389677740786545488850209057661006480983511061600047979662882703540476294592459446698714223380688496384901303221439118984854376587821241077854047150035015404589931328465283076411329510074270536160129162593542114744184637582344879436636090989280243219647935800081923139763972275559374356066046836577968439505909267130386690571912220088553124892617749401784667410249838827756151721006442423677007248180263780189575709886411173430449148145897039016275384474622203885566297392756324077231639643888950956299320830596726578552688628554847752796772766802750307290432187229170192853559322071683248257687519615300535238368381774395785875025280889179241309898131705352715301860113517661992293081918605744811315466358205429197665465110602656179308035034161990251409027498060455589115695208431143498372070371173143268283382551963115007177136451353397520608385282301875775842014522227008524900739339512988718712227325971145496936757724062528424354438452762087448658667407078559891193262283682889736835216937710180289309196375511023873350387381924734384857686927018396559813274129129389758898169106277383727767572512698963340280151003401159753575148969680641757083550708906104395082559604869252639038685957901872481966666990586059447222517152913367904051407061263084293315561856015273491310695251740904554174435166969378024288760938073091704449998122789019512656424619738819380933027215472592291326486690605881305751544200462923825859398888423622519447148356633542463669832209103620819382685015623843245052533548920895017975459961204661000997411907171922294153474242810627491210761014436591857002900215984268669143657828058538745891282690878489027376530985531712271953011744222552949496685548446793812839908139895914600757356906839094081363112704919872415425932681459159190354629470510300307236207906046589613464665609937527813190774605679531944071098595684641281472907361839372587067174553448898289579454551336149466414738887171633714918346575154562076563448006410968244578381670055887641928822499722114824427626726412046856890035759980555672962708768716996207857332343198549164040702381729559504239266277985048442105481221611702330813495663847702760182839029330230111972245905607938244395825914337388163033397508695134860357342908052910951500719095826334931289406048969300738380488496808999038004948307490844346644923126846600142468633633320323955747874377880726664218344709255628888172007900103629303666877584622830936374750691103863818796104316604659985947276445063664614153278440105180454024427838964207947487830845167817968508442914464130292280111769103547338624527804910994228110922152705798332780409622370932718447706075740290340239755208849724620827744971437185312118864031526220121853323763239149132379483456122013480662411940033002531257482412505375287493663597626111037212185494696319928486931376563175108960887238899494890856686483285217235245102647253891518791383118425044323443534911980915011047722332615381297158953232286181269811849051382098056187820912939011610486290725212616851066796882060971750183590255300696413270961394643516658649771487929887721073970014836810988710093557600312498982407880526693819602421413263546692154193954761844625486757069827384510439688136210555134268299577424651002896314437726183864557071059179865901124406443129155528838441337040421493242236618975534095895360153523243689584688878852012976517423370396771222882170152245933657306249256037659463693898948875223498248620091733160904993429288850487916636204773387225483359429234719650963418624114292563369352490076515575707694484079347738290168947625400176781576870911119032569575785036440883086224761900336477998564791451804785095028617152083015514902137238512552313646559143720043549910605474571500167170050292455749619917047205870447254434746991665052882670289594327151443960925537370207856527161423252663581914706385585319718240333580470572850493081397695660512710609137579440962277822953185232115457330324492816347341268726454106316599571459237048934367559756587402258137401180728710391077416091414095788349553771977313492577230200597259988344228852345482068495637808488859384242596202603240480015639812297263332192220879806031768519721739756248941277666617816776535344855587835288642006480814284597699340655447032767227789266059782925061677803747247189564598168490244436750339413056753186496909203564421984133782203658673250646151618541952020410128763183172385179978934528131584049059045340430340939626712230944290809751212541359160530706681657021921872990997953042398279866965966944874434493129653654380849297592123060980180609294426968323864049392342384644161523776091231169395956058575057247043998736580251455208151203852479802073691287849722374895324398671766130894542588894338518718385768093325079816505969288736141674459988575355714401780583335076485060996817526753749853435724911918524366137986295193685588716549769089872224067027404193227940474624236515371215634962407328557580604322613859760646878975057700782971913198418004573296859088916834404600980373128154283432230655448112801305142089234990856300050192255827789951316435515779067513119147025278664982038868273788688953440810437349063369026408192998803444712599554691970665808502300241041442370768879491837891865282858171150798822283071041723718215046635362725822037398583896239251454779652440047512707932052955426475025977911951105381887505036751406268754125238493701454743273103737735897455082172065742900187727314768515618857997357229919680560300251057326769658500726255891768262174197479474234504203645705973760930764480746835152964659537759693308458340618060217477363626313867643428054486782538532809885634937955229929495712670251667242335151774906526069891777388693981032020916396622542741355250167372941873885221828457135261705585953310656498764102793598716464959313530435824846440301393280340736957090372856148658859596215297216735780728303021601416619416828199434970187399558804424653043684257789284514454265549885374792593420795185281934845621665683945773292115042074920826387912833211082189736115567940974724173842821786291490142476467123773170998830834372766998624857375557067333877114698864970589373826301069820411228574423819037586863847398208977775541290213688347583653267836635900776058640920196201064441311508661818683517895151663859109953585536036427420851219471717955840954614247725108493363690861602148384990732745795510085736444358985657150370079765825974233098023005473171428233149112775019541578236396614301169625319675523854114004041494893943702236846910894653287939579636600261662449800071998787746037785068636858655815692053681530414858306623092515100451798295489577275134643368541604245397628739072792576838460539200153134455285584792620200254589860935801110446271289129006130905218816466081437803219627339912688801987772485581518444978789688255317175220502612579172613086661866131333751032342201628142120907127203672762513654416636692265645987458209895354183444527090037434715849334111843809145529623227630842633452394744558427276975896755975583910692480903712716524915473268612886842847941034172112027545546160202618247099579984659758211900493662011725908389120702381484127926982083393828962222185336277535723258474654080505044071614598873408475164924517773093468432562574593732897571344727789839435699004843505779337114255967631995195452456187843575033514322233166606540322151373964806855249845411047451388767922824719112321647525781455500181639144679620904007378981617622712101867136134758141807603977265982771648781919570502291103941539159696094761000791364201840915831985390790635448782244089140769905652127396799651124819732977195289930288338239807234054535256622467745706109188056180601956160523404708776815258984751562142397136205115861204197582955304458804959969024986077132226360886703490028318321025698382797856484435288994163022373772056784392594754035820021291928625014832405579123235421889748451166761031326309806869046970961161976989118167992924759345644873989433390325555308632955043050520941586476803428559446318007249612861172750659005634736581599473516889154422600026508327432615399717131833558384409558368810142907972410335551847982276344511266675632685020839539634322479615429620914691906733647724729913808354705929813854915519841734418570364165685333031782781753344169992705422468229588396707737620128619299279718809118628054225245463771341684713899009370972246026947855394759953840923543810080381240119864790005387907879663713544218832028519801148923095874670058218666967876180830096082223915718546466351994872581079286909934903922553831312087850060463163110199952235390872359841309638601912673040858480350817850729994272533703324332896475450518263531354913048246444279756505960046177503711711039124027896484525946258527424913944243865140968826308327288326209269900677393205911687643205744080365850597818704105045740251283872524963849554016736345087664016273636475346689347804560645615227671044752901198083904494293367177729733203673283582927231474193951451920533315654295453880505078169969481485347573566452553688405324128190906937870400759351275338992797231237621796460414084400375924336265778267324866220932956213679230329565729988305457298429833944874474384591245323139733543711057688930611862418488674197163883727605564080685489941843817502480887429766540066411627126287745284895634186258156407436274492402072504761027688892589420577517657891505235201772615477614281044174312069312022062407404541550004151333238428949993153698425135507778242715272800579750075087770673136507738562766257294687944391572908734358270847992621401593341093579362351560626261669804581842343103706319312470315933849500857793724813401482364066072753964203817047590944461446368876570600536402766116893943681089487546088421060007396855314638618567624976644087038414022586658490320110282794631856106070634883949984190712306099252423868280651635224936667372052963283737064914535776337669623488656175597015349590078511995686887193965807933494209156642978597907105005003596219654026620846265914858589066859407182772614543739318488090612174932922110925794139013152520638552860040975776536551764716899110086220524541920127930225256679162424555558135168536421500930833228962018105024948593279844980519648928195374613087589139997900270975424086213502471523425861732907184821183993709559413518762240596843501007989755077634445372047134885557556399881629643851776839533891050164598432756117297878097623653306156078634035484785405265280367948306471781319825974349644891943047486210729458093440401212910120386910636958283727711745420977441036250664557977416573804922356970543456031438121526717861440500774557846088240216277494978134307106719422417489418564596210999512895823739866830424675004604388954128727289970965654187661374596556585797263597698093839251651055826913456943401395887644070222964589052759671291190690338335097785989718864510055000681596404315142085188842312944086528051716348492929718460793329928550420426208099270748352322205459939133391444620236194973385315543391908634890377336642852501673073276670100284296710309206377709879850528860378291967685170662976922127123410993888093322803116631203590418071795291235203425598621949502775154961619609164355298745838483975495104422045565403723174429582496617390765304146348453034394309406904535676568772269749010259274602649025256530689497470985408234098016765660127691901411515670253766316886752217168192982250513905247563757437225591642532309713365087567074202827591270133648362518718357629645167741670114271495885223624920488985464724153405994206667975873375682368968435769361220750955022728445759018442943119109956067504397021976791488459117355257003748919816222722493764645810084742978350417925112658069405151735247169134036367965546482274924274159464816892035476891328404775800001928030275983004978851782146620261005040486576940003199114254588757064637051000020976155813788991856087868085627731028916585484434346359672767362231884042239064967189200491166587563224130331374395847529730495856733109751929020040666915390738476055964382396739662079198288919182639541005783461479473277554537688324715251948303535533619607533545049464685603346239242289390165457443209856734550664806933579876957871810245428802009897592618938724791537059097543693481430309218486337344034892442800978495825255753796325324961874596336949537184765505831472518052736201890830052548326721262032434114150400239341973370327703120634030901017120725753405835590635419905088522194273465876224860909782727223140725833179494235769237006197997547904418088951767998709548179503117847342742447018144570407779166912122785966435953409466351435282451873731101051394415334589810937183692376107977194543239923673457755121235315584184187946885157190061942699481756212226151252589851433131451987067155594186766817448690967700072820947909707480257647207565672905528196873248101447088383428687801603963309754773924978913083987314065189396936870822198899557316660458168052894519058964200307779331509718645447664260571439451241321625840048332370014834096889929966332036105921974898980896569839854508813667594978886169027933855412405223858940345714538911984512841518011531000164123717210278187064030600261199572880432911340500735614767998168662840656719467032878862178951994832885749521722056782180286977057180023860821445896906603982473743627840781716209761022447661535450041218468131005157005856754618843577972089533350465866477973321222130786665499570147281459869693315900169379774083536201086913411779762303243669363753031043953684116072114999936288418448672346151823059363185493622062387948210589334401470281136040162768539283560537478578521805225381724004457478790616276040479542247701787850346847755475944180440955274267461785056759396962561434479610219001982193060936395924372254576952001224889694925895913541125352590486610745265182716879732394278591989939962677328244112081535472879249091377342748750732371763463607051419812777506602546319720789942045955868188348914201894654317142647855783352775126367518931199773318670139752385302480742818398665523261279713818328946072357310639248198424682199880505637120835058710553609655763361823671287823022870715742724012203048642742919304822596271323846506272084497783064177173424989571649141910763181155415723442212639662379861815286970246063706567789482537011492460533845575691597238576635000339783761258109813521482183004670250760186853284672353539454539416357913448762475396728065046378560977262822169292729225995557839838964607715319929375105836170702566656815876896941377519847949360544519917955259085212672651923695969622014494104999885517636680198152529905863091010496868164910167913335397246251507063957932897377252362384422372592392338568197225360012145764182911550102929994637891930800013703135411076419512252131063861204309335051547744825541152687826433837843789954857584204482800663254485204054364766720547078474836699659205004616322930893969755774253367327320443054153289452921993744090233166755273546459599902558403157727496334289314237320071434808041223986012112115895049358281969369056221812856722520222739698096725596121607453197704948774125530965191194454997731018771290711963664329418258612026570260950785146451299120886144812716236763481522176780174678452176706772012204137822223450063909658570295834677832901647446492397092012166122942690102886397896165535528984475642991201231988231320887768960533898320420499621430892086948056472475030845051134231057083063270423330984306120556677560565194693859806689734471454787782615052172465787205502531933698601083216233694872275570794031797839988928071911974998977496387167152049938957522720775446771158243165558112067808762598017697260260133834821887177783204997695253282124097812416867448632456599007885360738817733428359541818810507560548439346086714019360829808194398357898934104652807135033836707026276521846871857884808245542334647866973424804461085072793242856635997604518776299858513279989076645025073548015877788671274381294067215012974186172144101264251347825717226562822682683768425760014747032281450540799564197775531043079829080142567376310084765247662140298142296201098732185201424897388473463936703172156095880569162864835456789964058971044533673977917942558393388425605070291898798475772524748442218880728003552358319365050060978108947210982570804631561689813758489245003972745853167106300883438488772252595256996451690377360631187341434472637159018776922419787907824264003890314169896550497839176454962924535617896413001760192255745674838242937095615194734107081545342854799195973910442888402240059157936162366399454804316804737064667689237374644816766164508964517096016419627498847810754185092927798406991443715141071591056150777673026312387589711146732595387650012380185159138896499172240923032222967453228447775257051175138678788711694100373892889685772873565967213369962828960962699115349376955826041690842721534332044856167776467992434921114983374311772453369885343595673805483633675910974086848423253353298575363780550218640541067478223006289491317309411999230792855212105261309654145064574469533712274785904065780449986819752908833139001216931090139433715201062464559973340338828627137346346723017024058616380090396533939992148857363546776670682401183279207582056940773144037410844771466952105813180932341833884876016535157786583905917335722649336159617309234166412838851704233397633990855756347744942199151582842380191894856520577418036594171323877875428300848810279460003963758698402016612129186947925432155423086635284186873531138020791752340347969756474977257802964105377446476934448080542490208585802628908974162028564135953698911869644715849609766952931365236247170880061641723747460498675727958111255965959136472993023305098293374554409218786443493174160759160621100361429764799646829831878631929704875656494545149365354584535735564211808832158464739299039066307717890771124269619417701922958142520854422013545064150877561672899305926676438192720824552039382221583654022992087718217270352186045928703514960857317898048199308483381601151453382720696676160937717147514516876392343238894289493918602678637781652134623563025868331661774064456826958145370079605885705773818723177479886721379701854938946670240541286221471840897653123462311180842100317732209384332435379549203320685324770175898200039753891210438289121297031378548314355616704756866814089757261159969560378555909797276100619310301180678495365863773055656314991163241954502012730433905467631464102552068639928869262281177523587710977315184813700590119915365181290797810780774868333901285130309850328494566340927828049556741177633403087604399406609730918102586942864546211965557397060120366467090836444799317795326007244427302790571861599115349893451588799238482695617335115301920280721428020748871156776834210692340751187335139597066098794881462902973159703454142709154476868835185916638691947910281704918975442703624683597325165243991563334320540909333795622042898294044665458647021447702208299085781185167043412535221360981732261644095355112721037926626176121956496221730296554837790049680332621493313688277717227393837441992134175610540990131887323302978921399139972183133453772830898347584941156726167913610318350716446136330687885247851296773983129058019633401417835282675264487648369941841652800661830025933437587797492321696717262256918795655309030086869492804099381516637646752302544867884890436078409008178582209400242531180649318649527521834702447962531481089222532649561722183913746181804022281121116105071961781549769636285995565133265542754398301147506729377740683713365517774842382601512807085973354577991520937464603921023988630217536900062599122015235821464136539907178150168833742176823895775506348907297972381666892281955617516390930759937793896519940264099883297920915444209971522591777228787268669026481009896267832453145618332107461670269782026060046699867486582429126638314984087929131867473736846645303619461041548596865934267688597340836582632821771085561253839689084756397739299031258066672790201574834480801952012253734946331534881599867362771356860824754263670027171439568451547263092962590451044278286249270089864312893532411068365457680382812596647299122344432205323692716996388399503117257562102076619761588251832068220871274442857051452382525163836247483525594773350058722021198343062965407385986078463491543730307922568329129902240259580844453178671965920070361195789392230892385606340036684810162383807880771221072192364270245235740847546801522001780949100646984127633578599496272300060279408450834545445308391842065247615985572404494735028372572051957675041289458313159345187351988842879014918735834652895896321819590075036779343809459757982940537369125919331225615172466982860513494971279721802707170015398586442082198058024280466999770712862824930496448665398807025587967084264509389393113901739269422699902722461931127665122379549356478111277569692129147970675727892925698450774303248806866008487159539212314011389372165173800430873250963700754912510049468791276392078576498715049713417372103051840088141911110014395163477252978970016946336858820176014883658313269056729166778692628566731416766385036573826300970259467787435674676383810451608021795682702577258685636724306529796340229206249120213232297555214773724005770677198667569471406369314510520996822805251862403886274787113537284431118587396973222710153287373419621600038322710333809496550220532689119509943358910981928462492454005614492135918900009910661774108948852656735544837471819826020922325879365076683051234552210752854944462184443338310071044182012256058064203687327133046792070661120376909391183337389595567380032000075956950161876955124614799556173867002634979106008687031479449606291996580711586671162422447569327152458727484503513800404123262547337667111258396365794719414350623239264689963674891739422949036424477676494407644185900338710068360991465063760453864534432675063240511865019391247610994077206897732950093637045274027223901494845645490846944990560065517989792598975432747632263695916895113751283644126864512785148717215911415391972031450385869359123060985348350905627327486610110166648856434019380859070204054802680599094360678886369793217913484567783031878179164325446370754431667397163684711641683567584532776445654873996251865541857440955997929733253826600554910037485044253674198636428644880090013002619738474769413419800963143093793042319616209396011364565719200939275604566873417927065303859802054138277477460878582163572363194722376679486099081924134608233170934243134948597532572197909327110118901499216232915014257314219561459203109851426018874953005305205152499536998795448695040906128074852853258432938311072878860171840258510952219087824200706816556357128054389162205015932488596716759263342308356241839765108286971573279231588083444871943422003225524883808432850683156035285060548359891467318394952870863183908204085469878106122354210007132344378667058071937340981007716783714564536298362398677667379719367324895751480407875252398861505825851789476812460199266901268205299266490169628064693091750824634048625769155978671976500276612964271569587513027651873491810904861311626618633978042717405175571665995337801578607719694660990374787615207896744809508394559977411252103373807988284005761665521192756367951516027101533307332701354186874644554530099672696282080164227835985704840826059512915646140489697467814226953466957629709570160453175094100610739794578480415831288381241566946496776410531773234527804619773710136739328276351168726144230913860761487088779353948708610155244433787958300731430931077254185481566099964397819195742106697037459102572673774534183052275877617948951438805949928629655862251998467327268149208121096752180071639624598006485139245015411316719550091408466039174857941889089622172509203087751777843652483406799298152954310186412916622765773965191431516694105162067286902566355137116032023142262283853575271785897932925742142011864472362420432220597408549883381874424881318304930954241018678812204172344251903871911242543262173201718012948857017974591482624880880301624704106961452700187260357283691920990879882448967720642266130922721949354879364352155914790743948675754567277869812220479428088463604570331420747463382273817166444799559766809592504533350564943463027387127479599659893216629547591736792889972146073563180561661187593707349137088756560946781028949478070349416584326498163894312096769293828128607666625519445064838919122368703996526132661616804509666784045601626153162641764973172681716658092040269596922040040769335029815626031594040038562720517869749569049181170714774599086343982892101008301040621357634482025953796006734764547000159380569209533418531156295393100594911404874577929948912382687461138193581996494071319616833420474972585102915385927039022332389623899740924098687612653801104496735586820094069571108944966680160995599322850715539258540460865537738078672245685312443795711251486218542046779276444111807106478973010554901856922572873386937638073741175599865464014595895014589082642535010363776149926551966536647152686194362281309454302101587549332254935722600718824572314298080434784524841774810583076122767805534611744029692649596088915201308538062675644742881664265008070518982166475625941427213815688989814098645245311204298498793774661919867202202053962510556382499440543455203933611171031090782842508321065647291091512327314421117063274714688056028755415641754654986715040456281645106808787407920431980673928583661565242726601644937595141519792197051396698714210362163112326298743157080922492985169729891492388957721418828429666670953620245835530415987599492524034328327695023976939002830940087246717235121407739676453648410686631490508788630381013755795365844476397566358775468339380545441041077767028570372036573110699504832317133916811156795008302789394573594181484807391708078690239370172417158896360598976906473093082970530552601743918260479198990339811941626399438307822821309170218313295225348860547956341625846581533325962606426414056197703011918938441740660306279036715863258627831627596440959341437241591009277646331257095333309169921675214460080061394839318432350970719346022773551984146437643613802877622553457508030578351566361985030750859978730093923932491653719703804943543979076920184726422318443339574295920982634201723678004241677187814030249257074421910802261531726357189617669441014944888770761375702112230501494304404024899882339934994792034256447935249354750200489990436566028780034107222276465908709680015359921010333352818699592632471270451363479681874901517658036741249445420717840335893920800527908208484168638958775702663613240592311059990911836376032777293624325851590194913753790711769531584507217227271296818510154221180635515384552663423831228725209171007375672566471924814089932815148266485250894148174193078085778382456725723713845797287442080354319391454716890250318543542716912564454395740809436362379335252507138238362325766305693122622025594036803195368308382722426146517369435994580538341983695910794710481336127850208207326428505869507909357137799943322779229438785551213243091959425563011829560119764112656545912156608802216609672586099121197661416884892130541929179071485668650231537973150120426803009342573441097970741930974511247669343423073551775762508545647214786696335116687809561239023486950759789586021341868802298643804161427697819397748252921221159590288303411087290581699564149064460319083142371424780519109561322719851937578708139323826592499190357653358286491759896806222270946836085640130346059495597259782590071306858961612470185814540724041874016507440144374660699450416154522797541263579584912762968481101116815589753913365955860537952058496318794199320490972984710513015200717029421733698222668514792309496578832285362658449892030318289538777116379441454865112927244418405668639738431773904652907715013819738436542143400579360866385172537408175083318925900537452502870275049655579641753355368713917165492189502481194265243278800096489263142691078763453123429159606853617299347742192950003822098463378201186982751356270866294298687431175334071144380697041149235503665071233648068913552029441624222058495174559140372855986849360435778486060792779948009252979294244290546579749236281562966126827175779317933906873934187324067510564964567075647547175909373406393470381979880957740585875612543081966650890129688522464996656832082020175842670027736828227592304449727323714048427389513011144817905309989066352431217886827579300219793613980863547975387171552334841815866434430782375562453387433689735378789479913557379019988485098281244602289481543760787677903035486236643542412828292558023823240451034257789185750838677468423986795270818231334940139473510263121445728041126019331735147663728103960605053846682242989058614529945145345351090922942650721114630860303466146309514220584222567210382573193005454498290373126759442576395507484830680313191499897386299379835480759061230746436092991996855983138066075061164064432909110263302886832037564512544494264024655447596376077124631118854929593851843713477983896529832634240283489610847730694832216944059714003811615134754236180847051559818058939588298103080043833874013034600781613395098805402627586717166423900430707004080257520238839009035123761509352527828835241759347334488355108409820767120430196967154913359175660394332778838643560467138177193751417549036708768588273759379124462943703595726235077377871737305828370638050700370655715773328810845472909829811907666850224256624223565276888129582976119697189120759747096275232825000942561602725144497762909954387680027077794977710646063944174448387002875622072194888624855257112885420629996194911753471291597193108492496123446118296930440946293527506370577377395307625415058036718111485560403705876223226970603524401220776192763231018613016973519721058387689341291839387799113744223188568684898743137751964248998597609391301787975607836357065070663679025784282853260290892813330848873971639622825666989244357940319150657500961890328631456041919429051575620170137130296342595261953287079170396965855649854043896548230792636790646347324535712856302910193448272942557839307837824413281841955068029131497114725817518783080565060572348383337544427885675503084572565598161134154830040189765553845742137721229724170685976476261298721708953753721313324816416583480572606936592986768726441804821813584124665572249965327090736870145850937738784995529492056762275188810591767792397758676176696866770498762154974049390336604836095526313846877708511425648096051256272609145253756249396310891871890941207743597777700908245829717383472182470395669874528710820652299901459591326174419664405827881336905258843157535519191349477834491023117046382910382196308483451904905092240377452071979150609527867307667915627885020351785834055743926839067506055231518175372453161165482420071288738815078756225379502226860476726788408488465957306212057813372865635946482948942201081426182783255905601581524627825082080057832756086925836322212607051689612901421901631212074438203016742368627746547301188320436387624430494766500103808502986886156192238547540072712035613985859115277323377134505275941487890601330951169936027602039135548524085069014302841521066551175417531517040342096258659349882335214518757835009184282895685055203863241318987247029265734412248236780525216191918658138629030704922568929468604127957753662961436946524209800996173736603048816758651000061780643836595448560458248201431136792155343723543360616248431459696715702125212275327680469794011460754154138196584123690601118445012555712575210563706672875412533715299291550473371098593190932402701387836616279596278328061906501953792592810566118974554646552610239511349574966380355611664489287369186011785648656357836313318986855210745786109182901149183678967925156719444995965671132073953907457292243241724058196855982300525887468005573563118543571723338616362212549988840550668148720549105597986518342176160168161546829224761906113698741691239289032183664301166521270750784287750666786396130935288024663671934410352673022123659358224834825959352621878126685221770172262501941917692756169777083178573955460195813640405945543596259480172096722471064160191149192195071168302791702501089525821554759106667641803852894148284814483958325200296745926333022722163466777126500085748776915644149495492689840976133200890286833145173965071199899735020767097861584158215833593720836214534656208644065260261671827107168855469064130088624233777411342430540837940690408259467715913826156701891355900317308831453980791086304354397982196453793679087453595721758310845995029471483767311752634487211574271638716778624567480363337255902048085633205952075139404355290157838830846248796265909207346309287640201720627701313760065769010517798611206674072708696324598169758472137074725445234759812067595599666632155309136636994314340100747587128940056449022409802124196508740985651736504050981995924748513667607778089196306782609018509666243491150530665801846467929854286495531089265458683473910576633298079401012732958607567255877891531000828309868137489252978916138025101258816751755741954730073489865333035592326272009688028055555526945637475053405154945938426177771845742478884717459364663844091953387108844889041828028421841956561294886726842083604588365138912243713084314939615835184362051081239993839735941535470306905980172036852364714031129919183748614662173949178192831959639423094201497635847021251014107322665200057273167332918408097095724202717522652159995890406043881151313076892223636004399017987338482564568886432601103551660328153861037141323450536068458299654256053202424065524845309802246117941793872760814865127938885201519332310789174183644259867182581964102295980446473617984771048515484096586056026702989204635464891634027868065298905777712219225051608106100911958292040083317730762970921536213978655527617962701491511299049748487720741095060448362111692785760866215431007320516081496452036657666207103802180338116810955071930684039535292930582908929056987445352829411299247031441890868485420599261915823314444854810823419208452890017639400390161303534118636802826224031606654447595542859692729642059867903868906165543773780605518854347544446230254589900847389097554834695571367752530633259578613936395471933638986496182653516144244898633510163676744892433195559034436009163299744563836807668394588943130843874362112084273070890093499351037204506850116611088228525724508477516595931629595681315983335412884007461154349971020327411587384994977339432705977840280004317592846967338974396059435169562065541487797242012657229623552184929878731062879675077424651874508704478402494817564797847833106438449939690122001519499655098301171843212983222997023841860098369195525916945870373017359758012761483914946706504331841352682822207573680107861543969286902257693958776060173006519919119212409499848536154201031729928004874544260831433916800829229917539457156292386111649880705344883874879264335898753301459199165320713684956155993937658475944488424734177422232354302351992538839260371559636852342403357642801247611790114133111391744528515282988195341330501747099279206310800057795024939916347540850285628538214605535816270896867799397312195187935004269385340082900590486793087723015445821012688525624705386195672934655990435865268449345531504660916763923370507608456679110275324069438673454606122996502580511503313333700165874820041474009938895103867113693219984839533913150568825913331421270318277828646293066033569199422039464633035992527158521551560578686328534065845150969070318041041916447306669120280115843969425757048706407965133353499024820828483752004763461960686512901989298445992579980463121394443014114964746149565332191554224112452051013852005941078017277936512740666767926927749948027408012898916807788526080211121750919709537961515031453687390856496261209617447472689615956411582734735402028478130291173124489647857793401984398546095971960540805528881116346795107250696621924036237576991662919487394959976152861601892520308428039244013201608196503090111799649412057924323494591376007675981965588548336715340568714929877869659013323094364959880260741338522717983877940471971665808338558868996872826191601451269885867519657204134959259340348569430207363644162703661837642472780845169172596985775237201898592648825243881233395133178339086099951454098022272957738959891238230853427326457547219371679544609754086150948733876278633430751712551929467480650572526622305957837545491216665095324898430558756617399013651283327389214627083398569673476101558122385824167354478977719177478565062711331719229094564976325687666110985428278686796938642395576964555276864012840556284763386356301486769634830323690099862497182447015826762945810465387922481257948794975394981343446045489447688058758844849703296136803069198970944973262997455044622396608844107149556072156600825254992795671021322229819700185514229765122309750519309099362729772529625464612701806990849791817565581757208649091275837744345472719028839025095311424808912723025920985087137635322609982682723194672636195829023030628682011402944680109552818140157665780710804509370488365250687685966257842002384119580885861521272657459427914778900253897906297785433451489390860417542535338576595947823431295170297184891408784301005438267065896522294675806091588755185430572521310042320918681127572267002399311177464684258881222275675284379276757557626316635146706287782766200093679904296141416211974149991143498256125258249522023468845902636528526829277823975802760172736255665369902551310073025463772286476662392783050387567888842093215168851299903061834854122837741785763057100628476328148250408504542739572542146892574402252255828193082165990012308571580976498418451292903088952275441175496819787822934196270633114200790658110732280661343720442355393984005006590895642886579625551148903770557702645846488282302658682572855650902614473348904478824871508771140644642783073392079648784723310668318237515260074485824423276090405730978969660424566916150281937421375783737961404864346938744924773903082078332904330537239789068672442649915478873526420556257164608042699504266310839389949061918219709586133626169210559388855704884768670526443348384899169791182283927809893144973478861392035827704899519279870185735461047047700526855673719975324208326358153042815004904907186002068733760000977651359042807934940802263417541012509082520557591606638184451056628742523165430828959820404276948462087664117565385365728443156346283887571456883902528836673906781340683131373901461857485537377793981984411805931847613409125735867202822112713620151217669182657035144969225162660905710461152361705589809804984991647217537301652691852720158885907104300472796837546685909860519413265898776061475159167501604525028211624891390822122283691493075438381369714594804198948998081479449691240854321472871122491478246741748789816201267720968639947857594445939237514217065384719394536010204376534027863890944124549215580665831261804956465129486336419321279977082370685288203709610498671845272818706358449518907809857358017982746137339347766182913189230196873825905282171350189876348921150089356569360132279981141329525974693476553532809597555970002061927325551771640281001378475446979722576992458797157494576924105789843337790779035886395946304038107045482710460079453500804014176408375965198121650211285465441946936219647610598935885063830996213803000885330807052500444228958662324284186434339921046448952184272358824014795492143154343439254247133397138414132689387278607205949297600168764474935251286363941888290825396151490193793955435390675918180025886099031686137409629970839161264694541993029507441793468700204184878531136328203133326031060997163629596449943232355723274912151331861130330760318601033468133028716414656462516853798755409270714560062958176538260188179764217645306619683982674695103844251156389002793391153108473405577062608006900320075799321477619677068797669379468667408688991520187124826393153153455839692836138642770490485098933694523738303355263854856580035070308602691361776505078506396599090421980647337320736168959874550969902794599284996702381359835663497347159731659584163224757716289089008088873030680984557934908240349846755545319436907882864562652966407016367788343266467306810048586585460168405467588421367208280155843602188007630705473243451552306650505539118161866677573295818721625133653561499817337747197283852486778746416580796178642359462618477780230722477902077291415578722581177883133528874775507115562244721078559313564862695504824310708597844383220395369269307621431489616276766699045776966991745249329058260327232806674256794101009480401743883561194319603645450626184984874812990482686342534041883289282619543703381998896964773841288288404423163983681499825206402707444180105926009244901995120076000188801208054646509087462555778763350593471480998406639880109807731939426285414964506088078306499878877527360968483846272821131193828321631082107601731598111253031332966410715250879434170986576504943931179193030754407352782199269019321781608254197055982169545115780291396683537636128338927724604048689780797534122844239919819105207975845433818870577670620852877521655124525896213901631893294262482777996145704377986962259892839130268620519757546133164599944655759363934759122736490501470425844610311859067674353759208980711987496570022440030697921766565732504171170248581691197706266661135040300135569037919658624853447582631397792667067880896370781550003651125646855257799385044128828563108330033171852161318705169132636783327933927191974130376361623711156108969118640146758415699202145235690301090694720856911045875138787434299428451402422510034157810166441131352346591732246672480177122064708652567160742484714774163369628351476167765121506855943258806099220707445444931529947015697820300646394369326474076902240604307521798931056302575324718092592528216458337512612538634230955997006749019702400758268682974007970515206076087184110160029153631680791423723823428246314592524748223591758885168035773399697243515099619287386590696279420728599868031619269665747601932233125208562113286230746362341075162316262241228295248932048630794567869670270078949990244554591117056530184168313578154785294998486818434775061182307849981615889790991094188902227793687391099919121897349711551900586007167552278450585850391144265621128067085760133745108541203782207511636840882260103476601334734675607914406688360591495654836032996131408204309708907683921566268081120143375762912661829724176709715582906339932745221068235784477679732958776820155043240747572599979531066066852864022785262312941843323167529594809827864688119601739901316374539135042381095172988594721877164298347801761410804216796485100183608981892322388240950409817729877569753189113103841358154410223442727616204665910146345289800352693230139936913942190193802953500919470620941047831505160626704876817716911425074194089782140489020269989234768037066899259416661954117356127580020878383389994193618637580333732338160521751843387468075654075532997261969539047215275288936829788414260633378146942068803050866184175351767381924943698957042900171056762624934411964406120410080803471883016423558198357180122022350597551375927987349125035990356531685440516509514489738995810642863797232423969867666529945308333161683199382191376045397572542084795507610961795823187336672594097776963405142360219470531896453571371808368087689368968785284958753438335847340397915117349960735262108778761774059558571391313253209850634182714471385754420255187350732733345325526551190077430409644752789394420641453300955650495258725524191999920234989079944957248931137080585089287722270204658431577298007859869962893283375602770786372096495559708010710494926977047759904892741606947404068822460943203938397714482496244980852968313512321319815010726493554691531253295108127962704587759535001627944169016679797531605839987251090029187474224121563179698914191981940893564358814206870911593746472480736327401197605039812973718958359885607893758522005377660505665876203615876429650996911096058056625843291655207894324967978037330793204974203443338213254359955707178236412444399886547057715178792026244394067526166681608605276091169916579726104403402781340863156439977858531343269056786114764643676226328509902454108670735577063354556921302814926058077500277849264596413417102144555641231007585978998578231790668675385576769166488761320735165757326055001700172779457347764082943002751750579459715243498661641205385032441183499570331353033101093214714178854992800757876816883667259101585702951871448153799272319427505112549536076965559619559448772046928045815813621086027195664315967320276849200189427358142254528914208118496349190683435807090695767252094416396191893768539379788739800569383004046295925330561520244873198850309504914943417588408123883619884085764642004575985093895865334605320504753773995147118105618729353398202179301421374946415259761543625035146159660915641884274030109740660977922047079668873766736746640476485866407372398982955160772267440280538661734413627681947143793921283660145147419164313097497641302315675586892046772934233059694640474137863840689835757609898149472406899242181576399512038317294207884681015977373133486159031465845307067676837006674558259023142255236566025662527861830763443744952776388724082014351261055964824006881620132699876438723699264197452033746490137054561836264770350686870891587578846768765598839451851478147624755671915708798327097212256684996060581849730004642054755624648004776307417542601440020013532551437291398848091529134673440785303437398769128431201908674693323580176715010634807191257393265999062636535901720643320183067566560257354425816888981861398148353039235595381140998963346308682607655732612413594371192227662355468296383060568465196341365274796091083911969302523997128526551409466140989035506821968850840394384160008448700222158600845751073510098127504526134732498775943320660493146630550684216818599112253942836112191704077773209424289671873683041183556364208379823867000257550243133373491986838922955626600254708754925861067270695926085609112156315857864975053172800107206893397940342521370283767598322878140346303334611864352341480612883873657061919780072028176872725067213612043275125836178062092361417755592639923990974385570417364500029265595776264427906377418371006198297132862686291896546887491128951301135499739136906967435771959690320594980212663680660292256439660349616812443853030380218230002824033516195953609415522030896961770832817262363001517226275478164898089319339486007859585818697193495776743523280457677782508510427022506356953623325553838072831809044227688315411201058202639386273581712369944864174718430126242651658382880790886484430234962600731852584954147681493689673618313366565676385075862495571995572061118817176424308617970165531756286020407722254282123252924184214323191753257581458343248431720870282223384749423907261433347812443242926916842433977566419797473051795719009062778025347522559254184238943347002095527504837343806053030844994463489707709694893766936316261319383558283738604644129644215603857749965646253508409228767694616096744997613233842234292945117796219390273656625343828828187923062569369279772944288159159855516239233959589601043006387464110898070464425422491718034792096558548957688818025775904515347014647881206267049139665797073122883545052998748711766161500679347254463836596529638856284327942454040803958763296750480761770549321337159480006355035456128180349048944070488148187888140679060971991713068414925464332865293788483472752619054762570541497149986049588222874568207469875032470756172360004356937921616932039307160636985411084524656591190085591350551932255936340095477549683843527085355486579163725001969130134744805852809427153138960683427241080798020995113547138322092897102095130578866975377615946556080882965020507045037359481578646191653013228352938740891989244559545310185986335305222559051602975362649223846446738390884647244388152117608588833969508451334170781932567776252029816136239772287324990875047260433008502182186383168117067549914034507989472347918398303627756724293149525109338939918145528663944686981125217117856363586104563847010655974300866199835676728659584560862437293473914449373258781657147443526334289643450846156090245785930157144519265691217407306155589219841483528181836153395124032889177519556250609653147743056632776862776404341180000609009045512484535205349034682913862209169478253303075950619377396784308444449093615347002782855995469738925786668058055219282398782521337975518601304595697214514690197829844744007411625088483104994141881657694268305365726846341355524892571980016424918094413668250712211841102914242405804979183171689185365481566548887822290470620473021333665470094966162709390285562504196476803814023381340912433515404522154663848301571702537159481236472754849147004532615336584668088895674947387516405705560701727088316379308131087696879264824622514784245598498750713197185867513640999192799501769757703209739195007546439370351423177955309874655669570943720881600678215936865288001904609453286890995613852839466649303743616570449248555970277300530764685401042165957175970612523048873096436812933630484854833818366394159309788836721935339143038295596733526563627777523842478856870809760242213237663311385733775675496055642052699313975960881119778259329216707854752751881452892018788051527504458168663341080280706317279073052750258930215639603861417647948402134776399908367184808197070082088875062529884955442412908241701176691492711530177891069666823902561533653288776993245992265651748119401098136653974855897974449508116735525004184132620651616466581979481243868346942083235133207707887718266127599080175615731908690678163099822057602915920669092580451360679571483998053875858319241613890808914381042451810747777710430413396889680782039493911677343363476845945959842684068368259476980550028482868041537289817094324928335418418478795214092947305451575474722275721645706677942224981187675756371295203683114109823823768722414794104461564588021901745888583485098194664157333276357577808963448478847500243508609739254384861757579623845915633645991841579441835418266675222501543518282159959748177857172622291560236624603945168817111195034122336461696549797337757166677306315977024757140639882231786412031391397246599708876588557094721121268479931618816749422697341397193294057236163657778327938296522609036017895492055307413573541323253559430037280975195733829080094720496567998619576742132240726067729677786958601851522769580339520299784407220488867846533060448116898895026356638025742120224273333279784175702530669102595490139721510228921998785855309545215236132446540368858369251090249607051753143701305589396502803907817713248343173841548224332450413061298738502799268264203160316655065139280115441373126137942495092961969557105229481251723596595880542850138321872012245295318164350250589935061853106993229986585170406489086092124893021892794237987001196935946968450364283654653163206572903865657777048194670682971641233122123799701345081360955112359226151551657753277668228506840363179547630547655828408558977254060257333687096014045826090961814511483996261153418367964048696121368855799439035505910344692971719307263808245728260366709147161159791219272308899058856501797278562540164002320330383885698721868436328249372607626729643497592482099490438026781787129827663188919599608252595011106380484963676190271434313951781786204989215924043835792439910112325234779885659073460673069984138200941300182846268001274141398936881246131477427495348244581032939584333158017432691234294151739451246830184914805537513598905930110333639883446400594060188275721874065299880345584725734443401634606858360072784788084809189823501311713613885536768919286777932899521170174704344316191385291208287343662375518890403826638652144252868561107809736073801028789066592976698580183446227827828503674401948176243078480080008419761419648451901889422193280817260807670647999931453821156843840186383990781959679952377140640644936290902204250486101694070421577849565727342454719780415413557074876420043915453102895324959881252316154793027718668156303489635440474959649279274817605900928641104781753493509099904961863904794558396043814381748768132312905868815484432439704520800915317046615128537544576214769849762991618144125734439325027980869312205782724713510025632982368894292316476953196107301983665590301126433782929827153098803468404960277652929901848592993651583681010136124310646869820701238287392231002976269139829621710881036038896660109515551296143383051141233598261480772922376019019931222622546978772179259993970568110196663297093080651770358683176267672366507478809285321849937012266964244355174567475794652737759593672247364617811955096862859017249914786637059282579753899593831766990913803764479955005525448378562090203966585040988193692309298292435612316424028885842801640348959889765021676341633403792869344306435904271793289577104777676741290904958628740324553433900607208306355155907238064136682992161797799727775996191885449328480249925636145179289199209913253299138720391473807756187224663711443171451483780902616046960446089246868855492672460206631129795579734363391324805176244873264684116770118171953174816415954928262761674464600930543804054020120629258071645709646753906501838947528209394449461049290331202821216425496592772014036775782161543182677851523218381335121652634858367525336651675828214579056350445326977838023177707916808702720455473872141195083252211053136971116378543620306908938512587527295703753167421269310115655427170327942565177347407676066178458044874008529348319470640575191182062673223226291631005138085566006348321540986537516971939601906585928148308688795719743975037198713554629809508559715379857681964562559023716407765646136967498401852443731786001844635109865914787967915124360342920399503039512738604560755583363337831170146649128010130410393083238448283947618361484292117570837028735756557443947138787561463879378488360127904552863713599677407513152777209184349300512499792519784161294721496306297076795372678146547165595748254548038553191877424247762546426162469329757484463564578288939449781415470083782666771928057547806476271322117231557251665190167064995364969289781150817049276856507730182285169945303164571656530437610099936764773015290801997675883805250785579579531720136964636383006586173616896947735099900250843150041338974936895424996087962951947506348154829360535636706917622680910534705404521014574148988196351763314157693284170907367151568144400785338210015800416960920762396776357770422536634889004658909830766008389320397629554004033675549216982062792958109720693600279053416870349425149970588932051491368760548283449585752257436204364681325806665180999632508546192237635713856325476436050397679937671743004726815877065931495096427861364785353808501738974596621945008251320942422043858939443036972060833195438194948530732566395662655631832534857987909090797251761881652214189848326987888090493076430497384508406522201563257230991737533723738956333379405954523966401611410531906700755915631167728239677152410230847869352456981717695808046142148875783849861677757753791638206197083927218788585593334125513651457119216014903479052235003687370612184015131958406477210545574705179515473626297493580508050127938630282348944643160291199362391296536786943659511906402368711742556423377600654822400313783233094302863372439929206970898282188533189332945758434874372114394259056223461778308970125108486868650145708951224028275819819147853564365504377995929672543785310211397141822757593274065938689984932343654715781636244466907930711987493512129093926325741355263704542677999169069689138584120279239950040304877520945416566806400904271487406502097175214863544452723619750751116201599831212428756117811212480963436242586428556739232285454352444144298547570100252184251805846828141515602152428077574348447058360651622587376079588499414818690642527529207017443324770780327189615082536925275804226946616271595138765687520589815767854190714457425370168957549872318348855623478773891812940281024690864520914516205592136255873072971443015397757354627886526656822338000466738680265491227366034643367086645440618521401216127321000732573960032180694100191558784974160136714891594122936243084634736055891949196788617598489644892094738336124202810660142554758184911644881553592137643474915184531876055636936763301254564078896669874864862566859420225220700798417722931904286689712971867887125766899760253021851271659447741379081068159710299193156058218672148584064489758718864674483988298631933527730630346199355808180556045719332613371510136420960490927556392115392864739508008775256717536345050228662024358630822058394154345264831802766160628895025759850906348766756084559511354636318031841588781503388595881760634560022841840908751848242215308857996046374832082736544765280152701592685675467807171968837371658370412670964190957652698222713368425844195174551006464277979099588413942727193322047640231104549042003416225366035932661064719421433980919013368871769005463863752722104382886794998518909102136875304532111865460364501040303035384864483065925934902621039296195594527165682905869330386667454164817696044499315420172884900611564275242189577264178005152377603341221376860809552181835067470146109682478146824564387362157266394991006709366283365106674387501164377635698457198110693560158627420518154928618680203407170674363593224576988908914939177908000975858361551289494374685496292442205222604655024581519035511650416118003801438278636011889084716691549426798830108508147018342709186959928513466140550940269608309783484999583125930601568940414850685113956022755987349210737702629442677141032325699304579791693019686364356351109337432274064111926775363737909209162127579713610647093844000238452644766142228180112581482095312207438915390647732506638918624676595036514788655080335823193098199552379432562969617864036653414597066346103249167277731351399789747346477472167275320050597470557405683763905670839683051387885904871374899958468211850539993923665378801826083780610133336509031713144888633790494599874661615966581354107114450003711902466926885972320997877726619388824066192623666578528651455129234798146269806739572613027145557224903032171519181959554605181688221415933708316424741389955890896791092400377679735894108102077225260081914850450289740230438856307110340986962560122249176926782417159356330048756790861845513863121595955639569452510528218163417697564318263926889798185918101954961281031464830549370800421890649764917531663822879168216329715897744073662899519770890644362030669191168532755291750779857044294302115547361574029361629668464962733101690836964402412380348969904034597226036739005314021183277624415313497794846867912485870270010679544263739772983411643888453232645490136902641005715730825856528062077568183089529157490469348999753028475513023317676180960818962311361914017100988406210131238587776265530059920834473754394219456441612886521674928453510238519421164440352473901951936216647506898671917798690024016149266800270442022653596841981252604668043361996413936415846799437529053302287735289111144393474329500866123104138441522119284529656779276834527622639052994177039116617976158766442926156494439925426188746776585943417304845199485067435329476263159867889253331237384852438126452089810778880531603236910359738521617078825631411668658596573416511599892923791351118929999750170762461507915429330309188970406450632655914464451932713165713905512640884646965736908403738489443124433249347253891707161219514221859759181279454217791993401677658744639930664871060503398883034075250019465118345400182114692971507652909039213861071853253706213856387954796541168924647195811238538669607336374135456048463413436920277816872754122412085800728678981065583040875441192090367909093824161749031167559445838578076070328528867485437989939793666636274969833822194417370337125460346176811767622785688087567081519379333152729444804530012566432314456326348006078612251627640170302713138984455153186813432964832835419017065317348003093451966359464950956660956606361114243389226194078090945953413600318364986668108406584203769927309846848864944447410280042510210279870636312940371963051440723011102975668678421462176970404293358616918461102732777316248184901024286033339606261923692415043182806407500756151248291033953398230989331750967873294413579204251791743708824339884447834390887568030642644896534543667311502601694198120545428156612478727220581912403373672131452799283575187346942197153176145409988813581517461727586684877935348737302712072529213848205265333210770759401154714292365219878300084585069959522777273318131075204545887128231196282513260727910499835993210397438435287967902382712102017526432831559064447533920028638341878116782697646380153995929733599203410263228454898165992442806568388881646620015947411589014324589220194047873065700596859971873851287997028985293875532392077440958326149031996116277390845247227599655066277228928023415074292942066659206354582455027447928276594049530200051347983515393568112862664994006080427035228274378642517355186969546910655085319923854430125515414488650278342609670705469157836071616267369086170123155438985114029558207598255252750071520349354100813712789693508745971901037625885872487451917144715365597935458838818715322489669341613030710960330741628175101173272368793540857894007368057512017938446131497396247695011568861718586142631330812185509657201187409740807442617774177968615893975124369027046543918489846799011557630866544957440213407177027719102989168556813897898026141192102308518835522984742836638655268782503052311162704079416154964664997460513173533894912577168632455798516662999678060775181744318414783915070173927747462974405055787449436592558196891909548148700176921274246884227254671974385481778232783167283169322649154083782458222651583529353845272487900732358559489335294065967275227327799294660329325539889666102806839822171870844515244478783376456848030263155651173592205543172664402209984994159061463561804512747159060398434245338148950754354359378545298843182820859643768609139236021074317988176559171910493703045781459789879201508114461148426534200612635904508348527964740163791940222836650565505847980238127705588925949981840217125827483293392677512915355624872408718886420983956873150465536912421970207023830324682643950529722419992599265108669984348275251974534966741919144390791840992020235942495515286624075430202110095204384364035530548738461670468098028690653759199995283748941415443530728119133490140330679744344170352267292486516717738009325778768797597979455965154682773922336775261151828149562072356555856736890941024969207576200509294666008899253251823359898708009662210776483916279568293318531023538836041248728555033180785535249148453798474913689919811896589671194902933431510348307411255813377061555748033204015785964097474210924836251829865579547759632325875605634575293343383556446253291837830395907815304784960662493900629797937333385224899213078619082930086601360333231380630121611754380100926788427294836309635386352867107648464209165653181437833583699590558862459174540007193261038586893545592063376859107626065641730516118265369784729525538369829206302060495472245851108599061527160660675020963984537588987128382129341725701040718475088248679280503075689891099061911049536845980576767635076915039293123283509849703786428573573249551208039908985457419735160070044735824479782006410292418039879817389057670221839622598309215644373057356849823657753183312495752325025466136474852121573166172936901776960370510017402033127450922240564673814135398037257402666703162843070264935238985024805458661898974981315858739136489256671928442656575327840191772592517886149051029600481168824641473838963236462198765805913972419243185934292755111467136458210456359327787972765193194287844094410620957756956456680916419917230602131582878759560320974470719420755221685546676217800717436715859524778741482534412561278856089844983163408406384535011925844120859493336955559694913924645458503606393899663782489822634717602722535523154483869241002587596315378858279269666914773481018559813900909706899537237950575245682638984787177783230050489407399865945531099091544251972802399754534535534632114566845654088133907413576129502256146702598561319469881183518293373803432221949430013453362061734643623467096081417874483878784825352302442081062165184858540878180402831033819561617413683251401309341469303984031996266480403113261449133585289657947744852740079656263532891195937842231065870735329463199207420657074135704777742679869830560883639773301169584121144561425510132995546429551009253753786536552315655321723477401109276270710877736699874432056564042807086402476393605089378669988906347589393060464188594553619164973120539439857870070662407556290602718952195135581854977828515683933201230946734411185000414459795282472950141282536596965216692928939800660029194059680611777003052321677211271560853025446194920874475826018134074213088971056714209178577855298674631843938828207013785255210005484982355046074828075221829666778765979803777296112736397337995056369925776909838726331690567349253706063943965693913481177074380702613199275406711655348331294931608860730947036969649345442664502206041927257829197184203748245894120620666200103384704692128841535168764837668344156441777372262657935089738912122343672664662743590317131999269832912235272125792915055588498030027841827268779922509243399543151480902069914583327978390014411827316391424841525485642846867590471082764927712703107598974036098593729407019199111538085159013917063743332456296645454782650202640139163864591785797331018429141372479876762323883679372431124778871103725535457925217027246290010743424471446637521419533797348370682246617554035009962101901791735620263607182970177200634324756418887356387888347040866376358858071087199024205172012977590296441879863040115333995714403135136677328632840881953136515857801826684459796962662963267822173655769620997633877906373596192145741431655927059576089127511254576970234549637662201258500010371423675249822314601000874790705978590640847761609085775008928299662099454645310868335938331204619620057576998833244703488889885065116526196157743750834909106922788521348783604194598381033476679039253446140768331320725498906986588846213864746439949101928804773014986890118274748225750086632557643652181005656281841021758054899280939601345303880902861136342890773172642593144977198504169303882911088955252740899545890549346789590783271488191401182018854308570882736980721373581708746635289333226029049588547267060045745823508102051334938121777528520449338819531389791065668160455932970687372197617577646246535228419674629146049807210721190154152982592920949102558624422128476187746575079258266723334309742247396897583435889843573058290771498662053231806809584908061313579581337674391964252513148913379657058173153030428022886640827789731609552225256022019460669033217116672415377103097324173429947186217749110374350867890841378485251342730978465423805902815944193630853321843333946542971257756599991390253225715338356421940830963010262799453238223590216410927873837399823838608800216376267611972083209988076623152831280439207918505583209474952222749337730789842964220748111859861102339183609334480011279894521357599270715734037421610470919508932430663397756571355719617121852340401921941026620908101046514369352944429892452691667341191421611794895185260307182194679083087742188456456890619677999968513127454828610579445554321584459593758062474772852078770616961389547121676082281543011143500379295257040945587859670623146829756892794266157695534084870090584480900311554203672935429027036789114304705690074185067998484279102659878960348709504494019508924708023071651362167756167200735520325688260696658860288898638736879089680260098894952700168925651131365318187087299754600090505060880920765446983375129856253837108081689941414535085775221870424840000754121399587739394632130132659959093100094526854167420056460850594503375541055730228824315092222717272782549670692835736086460939999253500670839169384664340491885521707793995545262949525388902545970699554696882362555667125125503418023053046653942214611068406880579424329365936241309961919858075164437851548066297081359721519647899057837611373404481688994960573263474959705477198611379354654505439778286685273083774661837386994035429359225952017792136806441520377417553054612093826955685575172807898029302475753621280127300501052163299933149653988468190524501475562288497691900445389295132683818401079000982044867628096086321763610487846259489436655693820588675150781875004233859771251352030525312321206888923784846765219794356153396253390240620111429844466901567498261783555029753504460069973390933500333596528124690355693949891326129321590881688333914262952870128163689527902656855782871756383418115902859845617969456496865991035980531996543463998832062744499877406784935390212881307680467498487634255290989522107074545767311677904625044935694856410998418192733616082470886275591192513537569689665440749604399687355665387450405538102999063003877954776087023029754441352265472542849633730172109856928707638035885320728984927479001688271228908273404847857213984184130849985292135159730234571946920145085725466089629739206491267708689862783508747129898410329298404416550211043981795946847284915584333841721950428386752814175139431908903217816393951502881981483020143754795247354985339398348354697761212569179595333555414687872772425905456684876038652369501975744859377183763184231256965981221084217606859006525019538436095109334645408192502336672846137182786860891298433091660537992625679735380130871578138988820411019143663713779273928171525951696971005946704697090819558023432616897280680507940051908418613229647764954455327343845291147884603038821882417599403301243164188184886358307046706489245746647294750487932263981568949988087429846375657345529434227509030998585106956008930007203505643189871511674454299759037067753544810305092270033306986464670577501752311021597919708241912878993011897831880255499934847012448394854474933007845169152986533057263588453825493858002495668849132166271551319315273086602283504261990262586174772849496380474597758557920606655350795284207703611934900628890119363581882649970294996201513495972182394149122996305657568765760849943264393408308804037962936690704054784904754665794377882080969651818657262109555650761274477305472495420624059250738751667721026595747396198072817559988481738443914190811242143307131572496052096077945140380374571991958473992043043796492604617151293887742317281112959587515567854947091816796374518882149226910484371136491925974365082449016875590214715195683318763768282430127230381368800519408284009566692884376803851601919807732295543546788411403842155687489488639140201269964736329450715136631201717452078090419901227128146907106464783195479551921893418879119405941035856363223808114619070042176446859869618203911412828759192185810311035985292885517620549460999943559209193457597147845975704880376263201648360062890121496808141336129809610626750671523367779574955700665373266735828320519651455591921188390656438031178643445743424199850014719794428050768995803409143471184030451235721638001409573186212486204407588426176455653445448692587709437620608440163477405835719504798559896607410813319460892185126572559708860797476425205822948893305315408236985126269438199035809623385482004935457092493156756010816698403925665412945799270210354640320405382583689158858557526381417248169320397969483076638771175983096240302671203740862835861438363329106361412045850632035207809424421514905410933833467006944435905975424608042074136424811644736283293663965386670486229350667109229754464108011281890523657133449172974632938339686244199831513686429606239296949631269794529204040076067225586162279010453771634572079764003214299149952332640906733322509545170570278413024615200544502874013346508020896972635941707089683621574952289858568543194885124374380886939591607759379260777942092770537728153543610305985155548721382973168938525406336311724057491141433855037189837145125078162275523878624646138488306623984211175931743416893144681205493566444630073988471449094722665244298281158109203551917719999067840778118067879370358201256356404938168250064389290505562012242911905156981778162692046022830016695458346542741917590879677206505533573772347478644391370742596730296033172322848956266982225793272233273069674844772958213946519053682790590073735264646140913375754987669160054587721258560207227591210870817042434020262209117713318789384498791767202074241942546553333295291356110933820398100821515681915393265239060918640000525814176443485062068195589675123161077645420540941153702702327930231383901110149874759533512284836977266283541669856644645234712785633412742989938426034965665996936492389471982335386771549109277767408242573883507883750129118854995735293104084556628809779643852461304523717101183727946939988892877161327755654330948471055563479952792664906847694114833932814256973222504386008885798316154323889568145730763355496156641669367035276485636453161138875289505476558455100561849310798594023833367822869586260021239126456559992903698277338313167931003192988907991921897696344072116302553051472380156756598485250541501508235168091493873259937139843976770836349351592874725162005004705232627252609336189025459434970746606361408353718802649357611230145400054371199494009369915783615836768684138598359086054712946275743582494670060353547048707097949423957645495618648819489264132579694597760250881996020358475398067410868740663788730676303527024210713228537570997650028955141679898643763986306699217006802089673143206721461380359906896430909461401595213256573540725362509036256652515958526779956110262848090065869833994953961877043472876349753661016407497370025373678108246878484355934959876196057756618980437435702272718398877369610433484521822235024429030611085349864135758247648344622707300531568772057678696076352438345290361572449818580831569869532249369076977799939083183676227178849380439306337091787621405328703754737844033245932751442088230630642796584489254212217927996780132363560732374467948545713309162009032105410542923068071145829960573562075538821987771501949976065765522544753564402057793727672565322472846080511131942489409463431988173518459885681294014744021067830489143333120937816170122518771516138165568976157288237047312862054605169871193175497108148682713184034229198086163175117650479207059228490349135900931135151104884991793445800325161413278953397503731471050449477814778810893437123264249215390248100491403272255137025646904061950350607359833677811537771570992328535202947724997183643932337929850502617995410268385483788061006861739400462076149618893968025500014324210058913649275555887141133273512184396177916197801692363808892715573836450305085556198564620156671982099053457333157170617083683655147256747436825233520490120342222613387801355328356570593171420599100691477992923831865160760809397943936779472510656819923152531404993909957160950890780653896219024853203146564017469701463198625098327414296021985473615777141342777959758961810613554650287603477594845239065512153414757043287811784765952881623737464188196035620920788110634120706048928637212731475567801880174752650757037177852029532687426666158896490246351509504174586647969174837286733764033543605831541059847279265994386975124832926913697923506280264597381448966072330352990727642246452110263237159560949626422101868015012724910066846064629806371146327760753627799933623030334492043656628872026588398997871555562590443943987606150312608917603419957242428998307804369233345068892045089044194843813697601929643506369753420546064219128614886897039669019825376573053142658043822537935018788458858928212003633017829223488796406483434613513749968175640290367621196991098282801940717140842306660916547852942710005041651558711623607175738443362378963027004936173164640757697183905226776894619011962205339426783061012594502733574743831331945866339986792916123202243405134164935305188081706236798395617444264052731485186358467483460748906516131446028600082474887464615177857443127982256175473261252891564255398434131852275642856752362736972567243623833913038673629933927851242798950148259920064747399608397046631402979179644846380004513009879574148388434833574351551848873713220558568781984306922041769428173457192261074801023731914404435278695872784121452920977126273375166066327370996054928057137955339743508897666295558781603893154497026613407928687934138358978023938446748685726290893772362580254500494446034865633815726639142824931444748167027253896486201195324108571216355756316287645729218007070804230030886616970259178198144909811764447669459193060075645511458522251648584876320794633755328618279989242714244313694208831548219847571559316117981346297307909650368751891561954469651713315527222403112125235421802889794275010845470129756079841532900273232268518672276684192542490264962214501425866736041872353098751811773082886053089998751944308155567081437296878855980484124373961641129844846530855710157997059734297224480929390500980923024812461558290301000990299525614811297138401712683128849299911144105820885105107199737323592986058739330476193497419811699632855817597217146740515333163132765673703191553078367731160813165207533768796723334697546371983440082146205918361969394369073022770766747274147283916871491683054945603209919201262776494955778676925617333384272739095528000588874589549451767329615056882344472681290336802732046834529937624750141572256435085287967582418064849387704255130294891048501717310219137003080907000656337061759744889592589195295321680409996126525439154102697135979903326612254370177109781320513942449620351157090770493421121264663831704321250688313333934462309031483886978200283719093612809766614680528894206243895165131797566760792447103362917089313766568014049660065474429082737100835946631672563447590278950322249755635696282206816861689891561833288738600810911934646987719533909381579442214734751864970242948593894445227790504098483400567708742698506206758439096153835467596520038627588524213084377670964318147779854463144732687351534107666099190722591266627635346975616475360620939754941836453765786079855661765556689496472347803206510167972376105165819774329692458762526021183640123166889857892322163719898981318194464127175827258535700350586679122601459000481905793588361480745520464749919455098425198783333678420201702186385759822253358017129775729343627722426217598385570708136758903412904481228782269080570884418156572283436657242685322660128697298833390148341428410818514393133022628189218031822259327382491243362987797209894891206799354913262622823465438026235520918466705717805170854915469210760066439894744154735129714012388961664636890578045571227717593996992043320356823099947647060737842775233077505971626778125485996325256962644943061741785279048411999670292009205535249804201482946318452115618397130345929131111781023140047023023894921937796425151659491004641236724374046006945921343944076284836686664339279067478004994781916486106256740165174150911356425918250580060136030583070212480867222796650137891181091711118885854766052593433664772007516974690822280543184042573900669355289806709155873674731419644675235280990662015544303001292995044942608338715047778850330990570707295245553740726441467964466441607035742567836536818422132186973571756106004843854114968532329952545645321667674822740641543796229743868896778237494691978450305657130987525470765142437831880386583715037013153320550055733305290792689738062769718978368271692398828315725472220509007540650787555902513620923527044096067831052827044026572624889875656602809223986488246259722159607049667488189109420438623455510405816633386019032268632907671184824121682846739942168302590648209530658979498497526834639006742247746445323841314433051451877911159449628438161234928832280216441298964730710052544445154272803453409051968315907228939530557332230348561210478838316141749582888207712515749195602418730507074795265199491142084391731489200969171722233419793396457255705990394447051547221330656596631468494612470005371673760516808613762334794564776751672693888162644291449987026924273256750496593311561989804796724700282971619290137961712460355832566379856250546329510984324847820359284415830809310918432219331864210851767481566469868181931954610896153913555939541961733607387283044037082185419072664882155098712414442023689385952254673970956799146897565700812232462556624800048875040293592897075596151938645998859544962076760459873866857196999558024478729429812015735121624137429425188118554457156648386792811691335232034777999804512298524393862483590955985775101691548318320203587721475714366009413496096654660844854921694320899665798012095051942454983762521970939722042485438269310628466833985182998514246878328484219149024461360765479540512982292028172414773497703435523441274695767335893901140598578151548950142709246682793803314506021376207191039918514327965063833785650811363982662757286738302865945524994012392835443322361299836931940298878823650577856062813143739586827890736655486908259404831187651924027375903514098060588286266020784668908944800204109713632726157920813057571043829873250535308539340678762668492186461148213440884848473297364723166641107032530587265242362693494189006792692427515801072752882214370220906068656533126585702687873880313023402555563993422769217578857972817212149749683909644658374155089974975013227166737576921073932060055045840694472628665510840515985713814276706068602659860273413016235220157908005556295108727757729031110066167116283667563290881309590839739119672042403777054955183504247677592143614192255889688908070444063102333657375093626738578507468182671668072919369537453338546708574075725995707982191587586282923375970670412526416289502913694531387008921204106591507267956502223934657924845657826779025638421321179227217308840796916258366544979872967087061996228516038696055026576052062483281919634394620049138390878681858755771349515142140868119474865198372151740485553782783349958605182523827248282660566431068623817322514776131737226434836837115826338498314872298783335793957230825609860510588926773972771693097683555345763429909087599667708981373390505444381985427134572416300683964271104929260587058270397332488952172404228273382675260174039987636108611010503493355208383710362855170222622327155078517166320935749334538097458167821863851418987343811231209817095288407748115845584718372700240541386146134323111479374860430034173926089453604542794459156261917577425781112585217941360881236831194464402579277482585294605797716309324588910980919875016978726104571735087938330001413164597029193003586888427142813373983489809908675334239339719678864605028553496069647464431429682791905697647313104122242131726824657147458340794189563828089300514860702649290766109341513661577579461699515332452671521740984710643942205031902577721053267511088976090221146795856522057577655063489972172198305576179261535868873579889473791252956752081407146951875388285205141865123855067295001361177313854769388795625270395871710703408340563487118545712735917984916000349266007866398296228453113929540419447260141729186038508234806637632737608825064944181267796837811418148167432354338537329741777586543767244707820409159316111930911378014536561098448934455997639788119335381011231015121387360104203219694501035727905330484963329411426827286311349215701988110340429118451794297824698444507770894290247232214512291584094305508897736212868243991110653668704846586082430793013206681444047205162336137911327175783582678806422064335557577217030899938761254104668668695593535510231575455086757670139087430068888487221077168022927546634892817488657679678646811452607336111319687787662494918827485093207331542787828283996687040413750876317255078300189051394004365613206980169563314014693616868009440744132176462655052663360422237148484787023028140707078215001044596454115783394011711416999442391548870837572649032500022629772274668220662964494804607196835936964024301761475933128130083519601460628220169601409139048946711723166191662942257249127852611619824689709361935952019841806500992903020416692536959366456675893519458235706928416053602684850961770823970342330208481999549145374767741410501127598466869452578804771774983447998426931598044030217538787833168469401816952341667120366073087521567952674064313116971999625914662460313170578573066157084543817429365370715125906317121014231479727119559394610627113674925495743258567065096058621764570531256299040226173021655988157860705422542522382166963840081052300898785774843739407244885028091229033052486451216386771377486322835114846226725293806628132938179915884467215338118413824527149857311987458885044380247929289579382466329559050921264709601734702205211659518052734126277051264575249818804520204992417988828775595115195042686430234080232390197256826594798637982799155072073847508247963334665635745769920442538920036114455918899554847446985441430937838405709377839794474436970250870090422613858248539396841241624161885877621554832419146111921467352135320420311593263407627294136989422877968113151727669399477501710135791958018989775623859888376884501667192608236928382634207944112221652463701001509852484923613235711534999160769104064926364421178573009410640629659678028013932822178203719311617639449071448951761671752040448821062537073053218486398153258823704666279501820944811994844386476146931383675427790494752609226410079064192861774476268913978540369672021817051198965059363362235962344033557116302606492837282077383264952970712609767530159049903429407055384658456252744722137846527787359397385987906646290821390067017158063331169573428732456639897597922968834143627260709824791784317252184795275331504182452407158966754557691675487620070398489062381867836721740337831154570160629344243256860797300160338103084671282868736734485307769056461535157517277233958659733862250492609604861684159186796498115653508362496481849425957449408982916327317766711833606111590260607327408162175265432775233598925040598646066993889760739200914636370098718845417834376745726511197451591613594107043921319844754713067264433132475287984278927316812219644909024108621314930526921585848657099166036836163186992566589849033844749421775982615780669134490340495435163111364122196788433334342355850063280871653921199314206057342676310929978934793524605888880210747945544619920127113669552411901662041808273199713800870085156644148955565119575302379358093622057806720421088122209826708937003626385230939639783593869797403854159341649220169318590038501493860507693263573368712809197309523765740422776605723986526209071621377230805340807113415150096929372831081120265929676160411323296055209815640122214349677316855511429422291319609988718096427386702794559458468262203804481564200658710938517652252179782378329100403774550449509008516257207737377603986836852335067362094344294945987798785332035586658619249230243486014959819303863589749033151511605279690148149272472500190560240186096726880061717148111495705768739040000801396041526376399448500510085740657297592087107230989775743998855805163064828647001814184508807431875410264039806939836409535990406360677139947255051647140483006707023535694137947864066222180695778495592893408505284076724561357814373732044843889753006304238810628109318881635322435017193350944558483821674172368324325149950560450926476488338090536747392253452636613302051977729653323244947728196532003096131761178392590271984508896472055031433868952882692855107415561915509020702841834123512260744129454368438479211506290199632883422211091052564785376334998770271951873274827441835403222978871137679382719530185837755226882789380978577375548406081844951886942750573641431317767875071625345529957009427050082662348553735289458240975359615821762899826966382140755967294525142672926827250075843861943518537278138932625078493910697722115640809230194134507557726713011821123449254465290604073142629955515558643394445872742088912089600526478513693719886965622345748274030418650259270424768280421906739769314205467808142452602833268842370093913670189715484646581717679127908051310525884895009283385437297679058603067332646402833321559932086742956116575767651598426071588165085009982704795792043249171977013982755382317944867423887329268314824193019147049902299161751071690819606878692518709802306570872689633568328780703379098344887562388529422022680269749668801248431350306440381231588370972417330697322327279061224206236371139461933748679426141736867852858563878611409280370255409725465572525171488505362687385046583383821973716912511621814334713999164294181284498251892680380928721157788347079676427262781838642264143704045823899229467278123119642435208970443607073880154045639979613363449467790732233014871805615007091615637520002865535747903039161741074290792733335251564143975250580592176149909386114077157254265436402628990054669658353875051560929764889553932582889063613968728358331877481620075024143102205451263569398894192789892330856622218686734360548374423889614840731318537939748712920808189489503617958240626523195748369016223586484998284285912208173857376089684801929016457861780797658578215545606244303230346631364241465553698410719588305958944450407960721051166971645070476474966552912771059427495968228055957745812688248002461522584060430072922185688770741276418897310330635974829771284517287106924955433985175513023782003344150910956342367188419484036561720155061765368679719889179763836168090565522866313326218113103226135338455395748976776060376612812209078479940561947500520406867030360077289655531820702748206302759881740747191401770410492827284068911843548398553365017524847592267431019414474859386067345508908135241467115119321047698161276613080097988750032916274291058057143949910459411814024358032578564182556378338236521718478467585510503277619295170423348878926027237179976349227716798542945455654229260589237038547044266434802575916520829829401426184114635751516303515653432171985882169127804590141812160490534246040988051263934487490183850494658623161005012136448460254044150807085597787786418225248360597538156453926576952474870108986833135795835935470689754919089746142389905898553481087605710439278494507160602731921045895572444485578918293568708649718688589817432902326772544676871285559613728847151486333049237330730770383266699482752174680091768845263581197433793198559165356215039723328498539917133405495817182589599858233386317783222655852927912244189581603943366196191006296354432216382895674378886916618693356563500653660236265357760557871942659711145809312788416129689522664896323820247177979121131092892566056116149805818401474903007175472277252329811659958544848325698846303980672081297380712444903323138022821205306550659027995843219802119052166718545144287427739708164486186721774539944318241157071816569995559376104680361909677695875597633982712739933917238234680706206626021694452388477108978817191311050176561662503823221030078299940296889410759750419527297869272756579734843179313858996790160014830631503929028323279146279331644853145421888221724296375393397303168197696201017475208651220528236099184922000002174624616885146059360246716508938689755318461224008245152201802237486500591599898268374563970418273119378787424111132342526940445305486947179502112193849251480103361073950409370640207121368572076322972611578346464752828185541157426327222607322355233131045666507480782376187349033307755846658837145407260382967764015423660308851604478896617783458893847676506592338350701586831852654761715079062197449449924750455575371488504625637246296354579951176711023149768355184104718386442341302034150755421688711938986870239916125540884358342517962230053635883165989445341794984297912837847379749328244439209144704367618830904973863336761212101225032731414811600771829799110989030879247267715517794604295472650863044383138311848699345436000512346501770173269981568316492432200888359384624959168987095403804861584648154876291766854588142478029451888781046548896825308380356231938883026349475380153688411580197035007114919626036406476369079150834712460738784985282808415001513924986414659218837222332276623093863101221190000277775713585193057552692479427681683156415963304096480132284544923999386864812709310385211820868665262835987340078389541884330026083191779446772878676828786377558406526756441989417754756806698227726888023742372003626815531403501167057872468638326051655588844238613886471468663200841503122429875722441159253221348290457433604811731642509550050928952512092465921328895684921403552852283316520557956123662528494890121767006024865513581610994458898632708116494939235487831089548617937539855825823892877593745506143543128454960517128788722489649746466209072363589988104351527332730857250585822841351511200994323157310134318701030660991980478814499228164232929491940971100320705975355625938925252855669617256814669240148508421145645613682881175870764766901474578381924765495946289960107453124439306379793051376034930218129703096525770252023836178831473473137966898632774068601418882635651672018772390504878821396475150344298880402397693910706038290116455435500152307715706238848040278591340135220708666134597920974447026967538003784307431843547251707291157099707388192995863785206192236786831445470324106418336232493287770113442448324496798755238526907218379774832230923833259079357723949065996874500674752039245782753319386286610560868681678775356492426928144462455132924899822697689877681046115272899072370019082035078331671307251598917870719875996536696658489623754831085062002018976263934648920912886284672524478674538025112495692494781098371804653238757840809174955655085038347911347877043224034488163133045804288956421265648653156810406643800714059828176097105920575493204840829813280253651370754189980152494051033068615599904673658045705983443762118310940763089238675643056884153103640972114830236497687230642454917903457506880500317449940218332949125553613782804840616486514282242527018381901615060993743481487305105259617847492310182518967877844046083344365910999584193395343606463386075585672743492863419150657950884207621641203810361578681012329563899434331225593591966281358786478106537722143517032695579967951731949825659447868795082039834052135688389337689675309639024652841970892248845856904588212304135540121173244082700071446077059169584924221238609172673525172779618109704446570734857924587631266903240712343405354222804022229367631020885857278671278458095562485834606744724443448795089856731873962554328061510607009405493110688925959628391195235434921000025966311520990703590360651235445251169477672575692051596977661797787908952232751459208604954668462124658931836566970464534939578702117354316816277901468474879342725068144020625743083781662543513554761128011631974338296639828292154919294526910350869907246919799603639199698245340181974707675386063646999926452519141384270910276108292635636395716180640156545892700920595567973397059507896759816613139279715107080711747768935357360639668841087737666359250457178586707869681514834834000442703920209274636875692708331397716744049315913011598073790139624999229580425675634281750062039868419997732904431505524112256456950929328482499336732392374927620797462543246732401745659736121744669788919899644519583071609898411138579071839050406596970439036097446363619685958824823668802823615194114790295722269419619820659069699235804339602642072841416232148046628277672690158285330456595025515069154967762919136627824439973706472815464167607652292255454168255582016430474102942000327416277875024065516928097215388755015878295588741007163678284307618191888017723976068830478142507536804001616038029666476859261946413340511939813026910714838393071626631408552123256362949788538356840449393988443056076019046079224434506262894437263030941638216021814098913182055770317978609122768026716255480492632432390051230471124832206840343194355542961166987583158064458068499802720494168245874525717021463066279884425610285566934860990747722866523274350357749368025699257704309714170586201440508059791234430197180499601054404390896908095810279180047747219209385042980415499641360872281089527941907845758640679834147849250187947272944143795307817061894550198643037902869137657218181000447308704862792026338623292933924380028478760552605909410563931611129418717070570178491331579771653964749344098371986943136102810979196528091503246819920336644836476087119149007498858566596104379186500639167512675927380601482370921273340367000080757988712476394617162700721704550434386303199485235888760964045504128973938947023381292381390827374366213897810170744088473497733805225581741264868002200365113827407361447512503701050656872671328336575042194603594856166849615582338320915173936954489721499362040765906752301623094643380151576296716689742788408621457477824771176716036758911172659377295245929905139455616294895380767903027309501532806376546293676429853617891578923524853417591903448904292091265408358429783341045166066558998765041706005313768155268993078696574232276494844051516629019154063882026527095977180308046476377913504876502477480956805892442980392943629703844555557648328597737505221925949761238001841403608120872415131069127115710472615519755387061604853134175155165061575935451741345385864441322930780269259479171803833980365675665124954263306748809012708043286560341515835783209690166089302628853245792941741635993360885485710747053601669792221830276446548868384158072308796158674006257383523383498004122016523053170376579358549261167915546643138560268179106997953071445398886041246714866969696173842315248714087094510695985116172740867607772279888261365192078695499506760668724470706526114463401452413583964661964021821584057853209431920818908073236347099346287633342366785091495929809396895359706603684361951801768050248826603038327321349186649057739495022778873162500361698993378516076861205543711372454496628035473276269615013332221676218388384235529588372771520172748933392178749329273068685966813201146189964527392287757658452563435137585526184570440925278315808459228745852560491122936442536237976566190175982879469112545162584983508528141654960857129810970713890971643272873938906042031542904067452324919483761138189615649296776760521681554884884194473541274983560713997770153056689893277857285270158948775204462432428142007027561523149035534423160776766280318124932839163824651797122082455634343250928003614086602850236675288418375802595093141465096614719424488898918953988298659270926056106751161655878122772715435262334459653280350434766785270644780699327577881431836822075659856448554347327686469724826256661069527274237637802978709711545166375334270595573921544640880031293290638902766667520218744090834980694894511696024445961342586328018384077487589008981246745567431222716573987056628893044059037865847947200681007176242159051965615315250556525119639687736808235523549628347164503185311051115484299688717405763569371863494582630438893782843221388531234829475961884113886675249016505974319969281605063994538978970700008912598601076821741825925829418079075522427961260994900028019768934686307087441659920058880308348166359737370004058772851225717624773569853854520703473739734171505253320296699594999022770339177005041341125905381184607242366340283911741777631766219434704635646004258698037636970908289286140938172971815389933439525908949081486779853383790390056753968829438037989597483160093560676494501672479116119952506691659657767697774052198494016049993440625713090583093333301396960997392074381294613559524007058963516184631457502872255290074852394742948673415557400197185471954624283004603853383836113301639590385396034207529192527227838019713843489744883825667166633666575078492414437497057155885326089934841423658963747988249312861391276748639001666574772358705869120940476135644203959280104860179929574535641246214289433256388559199980244548031431501706678733007265445055757567619278398659068487217372744892453680058535100981481225632730299314386127048592695117941864298060856520488117595147810050779198489618105596577543914072497031805964836915898036769679734315041127914023926972005601723685436237850494518448044500076832170608108992927824147092209409538304342107465977167230884645746594564581748393323683382659666736322763066936745873584518113965562581483388266087233589189760755494244742980064964504612188066183624523709524062923088019380846053552553101057692538318313287657751860065541332464592648638246307579346126349080601861382715838392801351792654016814062267560754742198152624711654625854058743588701211957610363570880633602528948753528393255508433873527557662707321302077000175841478430968927938121243527581511308402961668470579860058913097481014956741290656586613920156651667945671133284041400256992187394042433994921663975321741319589470315729784223122233707884982042221518572859912795143106635849745190699695105651997168458571720398242258009481704676699478281301302149662560103178399061522821558091216875033950275333882640723292566452198971149361279934880653135220213009813497729413304003088028784399562277851300820385490053608845496527283483637259128084591230533684386148562875520886660545334983037505398341953624071049201536691360157603697385366751616883775083303797281800209165724997100645240835460536126807811821833727377431491024087678867609553600370791628272240646919885089856747397016568254271262373646165577130295704039374482680934536599967317524375276014939805589057498648746314451280383152052260231190959748816008879735460426970642810039624947916879020659118628787104028350910737455453333512306911694794818323878117271635042114561845219449253493557568934545666164041252992069399086700332785205575379906185415142715832949889323616421460762860440260327650505429153941333970738126340060879204395274479980231103624708011159600660065719868582634025658781325982708191226075242389497056683952331868571616725071446023802750840382579612688913116471399761754580991530106781831118768516092546931231349805910608830868365924464709730288013323961357202715637625484821851929929055813893997196152708086585161805133913329853393209127239553433046327607858422224561358927043283763164627889030845832887955034924404918041472028273897390436041024867722119794607546621553758257381981044810654998327634428026658935434865529473605108386751412773271228668725343010630944885758159295374394535606859676239672684025203807109444699933964718940885381830070476379455253886104875844345506633217257040029286898736275584445310226806688688790423432341402294547882983942874482887872538124975115195707270255731813219740187141817609501217541396666513026026830256894547240003120986639321782397435223226741142385639625865119077749301846279694038372079111305122626621409719218757956908717369196751422366384559899031699274858142033585076501020344299840133901474389225373313661791030809796898523917062683991794937603207797900966167573092210628849638773734754568526397997450560672299477042581688537667597003403377688196512960591641062195646383439702539470506080901091204910004485608871876657273174903607569296716813675704101985869296689047398455198707019322364872450527877025274460181086680432459665862231587707820421242851812771337900961768663470314210238574316810969114164731140347523208180952044495605401049167483793765249009170133831563972572370193049692758765073873761613729889095712155610126685549795259949276835621302138686715759931362288523277702826900085271701035565134361036288392756996643006409925692596608112195694137764308301932469159376433180796857704492813089032476482947724106751381316274105605049871928845717160834782735250161074614091612385250497996962130152145332304116435266319104062080235162444914975222703971164950517568776841718098106551075434762832001838543600381788482223580379793316582768316370767461924338003169070035192785281211689261397017732334029214421854248326328990008263668276021945363013215855383626876835595605931905495351149416282961511429036614867239969890132082761969664242188629960433677086490992943032324907630001164711362263492441435274865273089968844156281877949108720719113353092326598352625805228771352874787216857976622265792195778909674509983556399447769211230881447257287864708412005522067892626095893215477968090499212714282930804103676678961628085720830109164645818112078025594962766520051966050627289399862559098390326455900212938625973815767983746199328940661099913320010156715318563585599974753621762292835646525757249994273813618139896027718810233550010896168088471358315470695416664714307284544520816869898486198534899852066619304147427035811946096625092567596828847966703918154936331190385319461601904683860784774756659282934340948668635262791185359878788847316916662036671554466324150974510359907633794265789417042221630725611938604381111093060510328285640705075596461885597517457851430451141082527535106638246893807091054788924098023058176028669509597549775464125426861796342020506120185332363041370367010054348030413597211397137232153479850933482353949234803770231556552463822702984283279576984380551561596214278971010971388221762287099372763080890209177867263678620668341436179281558178057319201206806443497334959925696724895690654347520758324335084254606612427556856147402170351231822806418201520515979664612235633120065863595822459196121024801412436108837797428262468396490992943837802515157933475492055637999899210941387787480628537729208019941485256670969255252960696179270890371928757388135069612052535225594348578184672893941319620440429708827912936220520883033341957487745900928072301978122179260670111193918689671264098286497517853816396732149326417771451152466325101123303292604988887761051560173512684594726245758605260743418190753839701987225845801771647600397686736929798985304154400511450579911001969406347125808378520159063400121473254224531246888954400801513346622193085405751031638265694952752376040417122967933902842557884866717452001803900869713591824263380796227703673311777258966506028743361537461570281281351957435279398207748753187356988280299004117777508673687986768212615273812998437475969346371135966062807603050984068559648928745369909632813409669961640219832910073814643882693930565753329539400049487728453953390664992536459264124695221364555701497574672540490529539745030634558572365133498853756204701656524893549609093013776362316850697134159508870961779566232006632745725673157171609941061994561008807690644438179329675642367517258264860301395333445966024006380802969348311662202303159164990955294498500413502611868195318000812606715805050694471953171937968435250867520979182618719901735405781036903213652620030691327421245977985241269955968445588449565532647089445927024457991096151162858671668909615803929638379350352039839824165375924953745541242477719957527644747715845516367222844539114444492913523916140247059752058780504665237463379501164125870779548869318020887295316079545444216242744170915673603587304432473892072547156916832249961075597186698592305046571928462486942927400591091649589990061153907883182000214617648110605630908801923642845487124908705903346168221881204333645559402215608627739293383405362540790994787362868370299545964871442128763552469841456647284205961742500039479933807060490584830935587699759146773204722170553638422422072874753724969738545022812741918051965362438441933865501815712406544110059694772798817431653491855141997656622757185953103348877115375200529972063805742413202489203956376905374057506423315433858529651101878341217491681420997250511751120487258258134293172506745180429023705177778503678942956486347632348231378237668351385253336437277133726012068472219663649591105321531692348079398673606587934690841739677201289326155663023615699047234465955012496177012558920552046194752828789865526317194552498926712410203466376624374594246676366935370363624206181595847440294296094594540477087549517108264038387610045541452619460691062187979603164916627347676121458751229638004970087026022835124712633623910553909296559250941698682899297726225243618221661749968475409291829624470866872685857322945934317198952118980110668119865586153853614666232688964011776694748539675950027329178497588909766608295558781675308977210562196672470939354496010088627144694623558711042438598141070496194473674126834293347164932544017120058882456374502558125286750537949821772475270058089425729095206209528324412670525487974421400122150724357907492554737569585558036476225975212533884323491476216307038437451620838998922513987025592400138192542010707498761605807258912404463370509705880501433582099460976932962594908587668478950321005367364152396855877470772104415531785104879169140972829179649451478569886759169093566586570062791644610837140632344327897515852813824991414564889918895081722949172446485646262013652448437463402468032136369437523556329532763059925862570501256066745652770335783531172247453010258673036745050331338390488706751228989659046824804256472546556397185699052899533810038505065754181189434685861508133658068760993107373763760910990019751558160967002380141260665693545621015850026557467448443164559939946579956928900156320078017054957643650646653390634554662142796623294142083717959619223494311010711056590364881285750225499206032456438814440111812089195579034423426012931379976169432980358391312232666819080873106960818281020844536956690013676814457327818587739362392966104079223760808070694272186946373653920030099233823850933722853663771687125616994072221435580949579938744720978394221407359587014074909764185346779607032748892567864394426640743044175866178981483920424689926667188765929606676335121255812962713703930346693075629464025174258621130467335003625570822102395517134229320652802481220447875940756525758349530029548315914230192429518032464470349812168730434086732198482661889876096891651021388419518202377383248786779144492178685154613473768541828121266969011635366579398227770291342711121985610327366022334052152480782587047230488082290142399781306142370310698142877642502717346558448832279643593437327205874584589210586488907343965879451676554883346915079075890401082280248117853510758452520334261142974047017200975129725751185623026910250036246479090156161668325817133985714129927900672037799100162315615426009529592096917478481359110276827108075891960097389569878306390432053043290308733108888890653346868463827682256888797078043451721261671857171307786363579694082081049454485975069190150622351795998299779094066234292834268463197611555574635336844138618484551838997979566324141714207593611159072442297711530012871063047950326891381178024595405638442332891415656157753217953444445407639023094182414675643627309016825361300053595582112916916925371442384333042508544213031753741110259462997077969882035055981477737803730061140569269890817966049196208289350605028347159983081333739699360121569050392734402151476998345445834921300485353968490468145929253555453184374936110794560134288294579732457113471551518855919606655041626328256737585363290878927456737562706072596462618857986060749868450189756314096768391084349908792626076537653001974239456722354480783767163792705607072413068324955740704454090639188891829235961482291413038252391390880822174807651297811238754189847372669648634514717783233742789550126183966086605295333065293527588699248758673822803412678885529072742862604052099817796726478094449166151437694033657974081044587955598563868168978298994618308844539452406263912447726946917035785913228413327896463467631420834840444216802211644712617568050438637096828191179448932729082118375678995562879845756056001988565125831459887497724111976813687409131527463587573090628278538477727605171731321294531059303422780965047944917147924874823263283785403896422824415047775944270800208193746045497811093741102662540200447819852007333192457855071337687966627487289000390129852242019810579035279893399281675817859086280522918169638559461571038730266697341596591586727306174617377000049938169456705506941049682588836696309734049135760389184046293706443313652217450101246940380373304748807209950237997342902134358917463309548031578202732515308698205283895558787670708470776118909205033755355350326979534605241481659683460931005008457491264173833054637421354005655465705795929099874333653118983477546993861760190195775867722264356303558429410803008446733094662221490195003671146267661589287696066454111068864837953323791203102246018951859089913981714192555266744745710971256550806106876899574807655718125196249480339348024571410933899046137101905521350116331363115712177623499361908491592301560187494231484294006623985237081176524697624069637455094701617048515851969461530115881256153830316857737069869343993179841217275075862636052191350006010271547953577495735591615581186249418455389096575473013371536961021721383544616896983742042301526993897731594113960510013785386227382173243282510476578880162352583833625717543765218332516706125857358105017927112750208613391408495934714892469502634725675927103485198075648480359129347530385083375511809930450968397382749635296525965317068482727454589057201649839298094428996656272806037449138943347548526431161154517132378059075668954287982044194570477147724341950472957289260709221421988892062795284711361102954465536263494638910568017721358525536752670689481333541697797977658299045580084471444615747861765155342720894625591547690200014658424972743330796719056037515045074380009979560152727648321679717572128805757123387423311243794218214560586355879158801269424152125964639365567923368828062828887431403363365773924888874005541317911848085561690450127311614947228684146169703889022985029815744935612742574107213674077434822247621102407196850711225969699162968728959358978066346679243038124297606015914101280486655206841541547139677689029635542882304742789425067200357820272763383095041042033622660457716959927347714033914314493581944190372446839522607915460160966138109826714745051308046488803711788685030034504438662253898037661627567150732360025674258012237469469956229505207210849279095666367579999098287022001147839163689787982941384157936665379839493359001462950570208972972049705456159894572940215764787790094223905249691701969760012552769984332633625170735209423824428215169539068272610316550751800726082374549086393436077951413516087539523827153642630083192541407419781230425990734547321638561372496687459173517287060526654380652061660322508953737287332857987257955881269408298968254056452022028009676327289091927493361977771561110805154113363642195992598639028235672345770055533291944804807756991603641954715303553846026004804591823734205680067428597659319057722185440342651751678508109201178292335038077150690829333247179705327378571134749347269208956651125260962396412572459337323242921214211502030307774119694617967913195799407916398656168338216775334906006939325531426793540254019960193481385473295842773468242144065828395623791044056316907644201835613261442639549955834053466048558694106711939497478620699821999752231062627157888919863097889241469956465838814568242839172304254291880480165002606738504883726553600808694536789629258747390122398415567491473255879228936103508406826034736727682349549022875401189791282443876688458505181696516079612673270677649553684222842884086555088214191373017921246747337287985483679985768476178606312834202110627369775543016107849404375711510100144277175740049975973496454536387380968937767083606570745799949273972863251152711853104038805755837265123154612230663836292747999000528545320885447394784966701478187151681306025743258779735523632325253684761934299658364927736953184220082707533839922371217231418061704885527089053765943160287441415121568339938315567759135336398904557069745798472742139628900355555430521116292989445506135388405991719733704464851341764155012838879998792497419998149227924668788677566957399220769917171532123993496343266031060590923906772787806641269891607502026055199518643796409352143094608177260391201608092328942820078731138375741155676301259240667949096316588015510473959499458030032291316828623216414323472849100685943658516005481922880017864017696237700122999810388710064903212864617160080259276777465900313661919110739873832175252625976337963423320349805878715911046453300771300092074074687472978568691229619377503773079006779776937716462257273112604630406143465374957281082029388815927643212470061696219561899503095764081315026591951631674055165102455290732209908281799543718849768418702080680716171209697682426921223669618073343555189888362872947314906185286605211631958836482598745177327094342721372017471608875156325602199912978882873108119853769789712619963829304952587498032186341172097229400724019993600977865700997566433548362610699454006306460404922875389086216806280413748070801418735739301984160953038045736936525873733263622410221071225979126894151772387875922879386821108554457001717785023515619990187216921115475351347307136981056093123567171688843255130563788832253421971968200295018340624508798992658205393088084226898087542984452829101965297187822823642907215626866303676419116354759080813111444995930406661475312389293883290890288493607922317594957555932505415589931857747761373647316939355270925280344075993836706804684491033243375621899393546002351005293842237062915452725098831756513067949716526927780015201330853280533028016621527283119251978170372267505197660129939626522226319473513136312695498036896554690666454734807383872314533878723023070565457238110660354224586628531052569728339770217970414042465853981514370850635188552335130878090505189848727026243662094824789480263851930833437069178955060536763882500949039820025078096711293054750303491680206581528815426595130363262780035557104150542133398748132588871660688850026537998701154207955776466794607030312975670610730604991208399480835632062772787410453942455323661339813182125553889739712321459645235368033024523220433698688576850747987894770366746566618986360736196664777466875582032387216998508713734274195137909984237885843847951057260623275864177429279681936425390949104183533732469822545250100772206826982587179996199976012386816407908605211662553416547912607545850818351298793527740345937912441308273136574314389139519541668517423018323982239501234880175965208154258207772550755360830605221970146149494112749861966319724278358561641134113742019528421859457062338078576833373978643342829710638020682707526000223283566470996841902954850537591855435606734265249190542236844700417094862373535754983413121454783313261982367614404509990517004015042855803880210032153769633636250966943766951342525530342499752039065838915089827522597691434269197067611640955164621558549851120575413857061789647614499860719504692359476115812936978219084057553075729387411212797358799251267523694484666454523516498029621538384391380864346516009538123651188748361393671779002979814105660543722959624908416121219809475256446272190221323787401796294056803969734126689832936827509334376575549596219926796310912903515234265896432566592166618771968975827420229436427030382165933944408598292385566563157469362350545254123687734378997202548129258639252444757254501912493075470363058380428230337482268331063561145114377652014427295706788335062717250788829970312389201005087688495893750493460915330493919952769469015498258537834358248776671993587957540434902772430406931308315457056656632379420224086674623743966532060975659226604231989035069467201581166282917299139250942365563874899948471601369743770286445878376137464114860033838214263443551357541741746599263986154051966298410026730219300397958417112360060560658338171745325571604971799404005179035159494430952247140375201588267982860300267893598391795834265519274065848908477825038768303049734982644760156922786363948547556963523513653284304331985572572828061829451880141032787899710136614204708287419288919613622242588275797991484902851629391425424353002406570171853257397551553859349781252441737428750638632081262153128129604406446720339363279192058772617866951641478796186876296764734550300260411950404253490204652150023445378886107757231568320029843122942517721203207522674919671270483456851719220946044483865060985980278777871354098029267344632039963207251110999381599011668019535553249823467950648128159697328019214201448165760296726988108676218639447019571492266105441933697259590357919250697477610614736757339085037019172530625230709927847344605618973656439901712534920839401195672459458836070542468800856195766245852193992527965180906588632203300577061777074758511739719736209468932819313830452924424033749773927090553287591007293393563424243745064275107873568729670065042853910174204728953557139339206511432094192415087554205550748663220234095965470447276227505939183795015285210550087372017355012493691858604887307541956713507238397924431440378671107465775091798309687537480842435271320343424445211740373731124608289865516725779830236546311302989785175044689246530356073936696188945523566270119755631204579274022939088702418476689276161603317626703507771808188108653599964907537582939481236827195550190881167374482049477113288214365147529388837188594097014812083555117653887144464125420554605999640742979925395426547997060151824612647141012390909204743165281187453553370696876944400979456594483247716529088328810054668434548249460089077724325085675945917168913114012095749045543790981689932639745018870373241780317834424309798072475751591761910724646620796835743980605451643208564930873527408417031208212323878491527256668838583018319185878159239479494967251496798194529749499961175320742247542067154951209851608538978286980286671900081901469762496109609184061708309312151971854926216565771931190186602122913587268691490128962216432247513271034686667658736897101099411625134914567507930512426953056340624163068501639249070221995014992645373097550945515451008409005800670199840989721852962935904560352974277789490459235682545692514564142508822141175187683481309071448594653456777323968926351493466639823266086190960717079777209900673071327464667555598433998413527259759018909366187204161748361180926880528855588899757860698945702758236681116909812537241231301805324285731274174439952496864634659246248317357852653888693044596865772558532862786724149140684681205313191194740695360402743339511976330972090162836807889097609671421824762344865877395186608169044729005096872919165921003976351936946477313947330444376298312387827782214530838642772322945511098949119815281536226776348844059256928269047387939064184051047093511226299033692405418272924636081552759247772436443158528734201818091852103744881318583420069872146483251109156260833448421255865529973160173237776781882874766519499362405477412949242705379675523656432334945067863776602655044376368498708820953407845173854972290330418583279200821712692579785330983810435279083659878118451876318693306486255394020111684136535519666308004085605593881035429343259094774022715198648994712599470322645882084635429024106482436884377902173871752636209283025285070105920155669418554932329623863102822816526251055323061717723698645247480473135616728277388192459591987151752292879333771851600003913520725311989279218646841873122941162098117674461734817716138114266153966714938723077235920260140623587663970182345200190740025528754157739007687835099985017847348888764431161200583479196847431299174822569509140885383081089751516504147942851000423260727256458250390983035263556022053059333988436076932454927698299553974196702250859408857679918216018775520701542139125995228195053360372027644856999709058761080972031151839295569697988245447449757503038116319902123135831127348915914020418205305609657357526170646990360550017070071376540775988762650470730434926807992841702214235647455260795664480229363585925338930934290751808780177211087061167852988699287612061542281277203151203194212710590724353951521473341830583498974199116366831547516628423893708905186876993840205188777602193741836722728303276351272683475178963399402996209235112952328091506087009714962002379973830872433673793421602342189726202214048095224332358139930261108296190131457962362851220468367486296886810171424097940067852138233121802512843104163220666499484529842117587496549132875733812138030758702345480286901574643197173450506690109681730369318157046182290876863788157250103509771715347189764360919287719175002198573058423747960158831667532485768142446838403262323408784237549223252914813461061200016210506973313239304113890976790430817305869109300674645599440810244070123832134979953903630361816632493756830498871911193398230061674505626303590137026180892218456930613539399865738921444580347768830618975099391917983155999255183826025626236042414653824349486709651850082632733507401333078129763058573731124015043648363462308342589188912697297259530622824498806867380224630930674471877718532260329637323814142480778508098922782589460116107852067685690290769419933369556014783766056005591351043841617102435110385451169596849664423530324754962340783783559628928680327476012148338512506131879608740665028793299977796971262073993823575081915406060250081476124739655144370252852870699495807612482810592879470960645634574529505901301699756096984813091134729723079777390064395699426307556216236458142054977049361970304681001553323877856439105748686764741418483997697734880031975166354077982031260851317936628122151155467507825435097268298392381518970559204591426023211021006182731155766934872622681953244581134599070577913036983183667998019237323677803617146803935117568124248646920279807433293974971316899721553759602245839125249994090258417100848971176479479677561844524300899271313545776563991590604895062365210711692683382779632350119409375285463858497676507033348310984854774292211655750786476124221060640969308858930949197571116406955960932075370047531735067680035838358492901733775893731586473047636585369794970224375636744031111223027106787214333211698271620741751198950381779677507402380336263179645147229003259052146183830455634731322597270557944464513978904246255362139155288804725611554762195076234703217721275590379537988261779871071992686201205815141029622266128114578024241075758403881396885703740290961196155140323431058291210123992127772843732487137036278047004877721155422975981495383928775408319592256982571843396499846648269522713608941400576058047757142120796653591021491554191566680856099961131327372389270856480564385079374753977944596036646957723701312406721313950854474465779582203609001175944324763851124088578208252822610093935854108663363491934472427957122066381055408739802355825307840794097019525233364956821011188572644577822265388213331353889390613626448725754096094113379230222690359098190744984933562362686386628318226976091224052409271531679206272945278057873001538149019729420836308921194275386135097038550289541090288375068507296443717612241189247542292598332205503379711833803311782993561147002848009624449526939073761527099272218339360918214832142480162018909248688271877039178135144632963793161716015017440582991848962222446484440382656867584805599100295041598179270485235049847310717630459488200685152071475976694746381824192359487131148530699077743260975882728821008269211552057858776207074650702817482668361685198988703110650660401820352547239699372356483906311319602681108405021108766129854657029429145285997143137475213821177214310903839828867900204827094815426518749044832664851267238251410170357345672463985980406766148144501565688529301399539362146589216349025970633008553601945735369345488352478934362475503688895420475485905370968221844772841896563902983480372492340325076048011018479336511359956434178044248445378311027030689491851686724629248256405626735284702389481814097613461461584472945381449542015295584488715743930700730563621707064230961917897629291990258515920781602309237369113535874658207454966461907343396310307496903740010439433051933270104373826424243431836222578739699559773741531032310413954423846896779602763446909454071602343389496189457812475497691094397720004452095633615113305641030464555886658712053353398069152455929069464380274275702706975690352988138228673257248146962671271059985921354780523540707412415220680237626634996038564286897231307066722718997633951043927679198383972401355003186717720319079847509261165272527122307132802501570646194720825374791663991695444998143916991091196975995603290247085076267415765165740440949969861255167772917581587233930154941058037383868063109595798550560566570198146485976096763404131494617011777051211605069792205009846549602698178177749263008105228887147277268670949545784143726253626875200897728166719559462860437877918101594530064887373851279614529302504086257666662189458755406076088017824929953617374565877778144363426599975018691135338619822243246363339920249294278792672173992333262579288765844663502310428198383444019912847163740111389971753527572919353768364013136787988680070711490553219422638392956574140586330170434651021762383216845873237321367580329045655818275755849992823977225613829097722041475147587528586719573714568432840111804543979974947211694489282547579548886233375172445355431768181675566784792430828983669752579394257690803858408600734774132900496499696480154841445237156211659414450084224927522665356574862239346209447727953372946591738568564466149898380493759667385441904963960917674473752953258445851208258345323574753559659998194764716650856424096903812417378701415671766362483842727361404905414038550873253804277369557154534554670451083138893318839241000348520847399133559942397869653303095858702070472686520672400747657184333021948422460313817102931640597780570637295016183724370443753320046284189437605976802550945595067469038727077244520052295839363737843313320654839152482671566964019525614646355574435066508611534685396665922366979189744581116757923147121090124888714866095646593375622240083506829394558837302208946940280396661625988805769857040111158092662175664517397789513354470157557234097444544518629302440299605487755546896473030255724368004644886671991161325308651097272244298342084376760703466623768671413664107850001614931324333756370093742729093451330681582725689807014393067067711510649459517875709419769541316583072592157872085063178410117845435393838560084342656850306072454420017971545847225490761312532106842694133116569203050768858009060563934373505503287144377509996065312413950679707775760848678089341154360514483201276256501989808280998267860148538899812560322081857236693689445521141853863005164516331535606343255751320974009954716726839159450200478778918320407655493339448604982199457294318611659877291501673906592084611141097313444744666111516676833027899870670870849885661822750239555446737228395384363028854597932401802458780494620239059437967309393114239018422537251409985186442010467437155933801363806099589875522976956465689931771270813371391824097806528211343688608861900497926537860665272233588950204671883350630311657036424738622634545749204978677992479040350403930992571616247301300224162632279821835508009499475398525255352633910843775403470273228783453791726966867565457208178772651643746323354685918597427869429781974495423183794971294866538629709557464983650382062715827668605014238855577762834025955062558961674265262893231800743917661406345848295287173898568869401860461580504968639417825974010076385354952406381347334737655591876886701706519028158932199525966849110322468793935078640816222003298189905074406496488695375187645332959916112971416827754417559129100550506016897578785061494526437777298493622079196834522669705337785967936142997062294836092849300279385529986225051804240594282179165640001289028818907403250690004552763257469391694084893921779793964136592645619230914715913934453110859371157711412465492327596852185539220752481027270669328779288971562897812376920767806549328335347555992423116470712632108113409910367265684930405419185463134735169726363411752712712669170566534458660370923494037520669457789781460351163974685797426540773692338055892889782919776501107380185908600580896658937152923451414260682697108074069376820046720622318802755191083695717237664873105089181599270436636428988498806267862895039107719670575904845028828799604972638858583893275356191774835753301671537507836581601011715284301259426945637718396767920274885802598560648580969441062191715131843882647614787869530156600770076226950252976077421836661247482059665131117794710274986227611087751986339465183531762023740161033254648117102723530547442176068716012574312861905405619464993666088913849873010982786738971374412109172362913497867618882733615866836093865983559179260023795899683296615985999829397067154224677725788956693402594153978810559585739879606424297925681412603159684054136472659174709862777493557912330419236927656313370036331729773505957456766864963520486686032988759021225407283638714780904963308503726946812623433841741447857187309622526306889890338560083923893347154470996456725952817745612657936026957100895366580929979759531520386379005451392656680257279265056549941184579454813278817254308075762037171172913247462497624463742337194618767906374805340835979108716545534442449999504743780242578823448314826567498140647228299831265339317774460483038272464595017117609408897120539742287542580014990901849706555291206513290115005417933963403788139509792120212235918716662374915079884823419861669229215911350850060205306820177963570740790275685881766460072878408742441306427730131330976608206875973840941601421551698169561355659974906013486621132933847918172582860993504758872174910519195092754219032173737333585568064473844990851089043500005569522962188425024307986574421836620201439914756720962654047128729580786043382656113487384314278195886583767006568895045155788335360030716578824402554886611326733799010389982570982370167799168964437476130780574803962855799987437893628653250440450209794888381313773439991422085626067242251221824898266537356072510052814873318046329200758352958988288251484199936445072971645955434386730834274447374101392897592713630650791533720267742167586289981488771305051078952947891386533093676508500678976266634993441911515393385114517876842594184125960739888564547344978242221628212268149579663981760175070963874459210434529669089311544316049463784597147546005935854772216345929518650619076571634730814598272913589238587961443811996200606098783742446838237382346354018261115178538446689089381157090634089964967467899465538444807914232606436110978370269506134807222940031562629520876843574174167643293969561693582886921715242256933515153411243690289758150972079484334878932739569257033577408884321503381387704611220534733701942478668731388189522676252915614750838095831800721856795147064555585623925917486560282951303042068127944316501658171194510025335846668444636028066703914209868337753891123290699964097947728864415658786858269539341195554877338623652243720912695495459408178675327360170666317329205915426580896295371899726131968903371641402725695449171958335492462773509892175523003174277442748161848051540698037240234731373589430979754741022706823047581191496214065960095855580870165711741844414988058615788510385699757172036866654433474243593524184267005002698297060492930990445036327416120760777890285037319457972287416620653395000189850202545497422423351541487966245176938711261394687515743065312645113953217890856228555502866231480020342613104177684623831438173598813769510464033121281272662122086331937411749426591739403239171868690176343097277647187667619466383079470831179257865281248144427384685720745504534987811171667619996698527059717176695335144903209718488090084874723508581344975482486954682852074975075656639310611829085804879538903518402077796424252568504569346695424490214526310134279377777276558955269226190851033502017523690958208897592351949167175820208177799617238029706692651748506317870459168658388198892550426688926966972154135221712145637955507844602894401789767058397820147880181049874341436916940970159193617660869238568869628156041968502403526624022908243025410290961871187245652598923995029538913686177898529435547167955550524938222884027521221346264210792331257912096199794971655314182990363654810562100776352405108027657066440540226165777790118567543568355586831115583616223593455116735576097432313751206650638787607267334354941429908207322379913985185328778310485043963544747014984760410251923115678881378813652379121605257928816396368155849451246745351420682437152357315600815454513069607467468682223660996412693182889467946081564349277194274468513786585918295586361451480829454091162176293217263435883305791345005210108729338414819143699606495702191917431112986279036028254233978401488250957451894276460087924955066992730959297106862142015440023270747436451907096777996153545249691427676935249489700169661435463830333305627279458702862393409123485134546031730324748554104067759106987384454164948609042106946568280811360116995081391858736657011023039307814473744768648439397152745360677125065212822259207920098142965016522194859670368097468848502149684801347789375763741300751548240498825772588481341507760970773778123387554804839404568156154485495708408310708978246905774252048217495377831411985619136795782943947981991069391230912971463322672178625416779665320932402293982695775867470906716507349719958550163778026436021362991490073238997245326089117899878594119574262523594275022136874432654985875679453504533347047624527652483330691376895521850371339849351172310831052191813917827824432574896813041630943751862042039948174232215769262786752395073324595082948385383622230681606010479139930742925313753294792558158158106051744522381685857314926835399777157013115061111603336628836795576838046068626380826873263771066737575015721176977158090007291825760966962276862586644103519690319252109077284034733329684453630235944967976094210112805850711513114405474663407203258147390588836166660783006941223754234737349633415366566194923607919141981963220951389769505327047576624875527417484261553921984977891616176886916665666503140750102359018489823462443800694955660069913918382050594313290599770804394874147259386530307386875465483616565536355062321613263204079994434672920371946698612371977574142437546610285444832196821636286926850864844428057261979795760474514200220201705092113662421045578290635883349139383070452564714123948598908488187838607970194398338530541779812369702376287165323088994757145830237682527079325642104185686196097511427061261280403238379000501301018724973529929316164822030478535501871815341983531819481929115009795124641684410232186243826236410166220127295973670564487432346513041182972247501594467869047853945699079578466845510876534252306969959336628841969964963833501922600444345651373663353797357386575654761697563571934941214520036706892628072656411776771541880848604240005095251036480332066157374063080735246454653133624643289083516036853492843663192229579807702272252080850833850143469130902126583651662257097430349826989599575866746709883520272281403719388196338016650626384529598774430440498594551179205516831915453619734072903033875068753228935292178252800416375285816901778547725517660053734420899697148321029155108722879289922357924622664219018491882856877529711668415936512359347530754248917570472722798603512549571976857172595460641800471998847175435099753523769218956252977513098986702393691855857626785076216290640328431642054326649728286416696089249299542151425889520618622562920923753993537206577076714901153231919392254328857614870230472330068901785450964384046685216271560455546098223988200318927980973475443135301987498755827106130315846914202203402591994098244677364833221438608694517945959657460952936563090411043496012260868349315131922991485462676940967864206590155920377916867019511039186000127802984242892441356653726487769520659454260005100484340422807271391719002138121190682050603985828744688954258346898624496413148795046546830922977894429952354937141808561124898259490220164645194532446207821171295902162001783229680407929397779309051477376975190057641434210244913394164690224955481930133769925573471494849806251675572567281059222470113621809414975032423804706052716954624850374067698457711682552020964079364299919855552884062332076586258671731760106468796823190247119773144069480180919509248469654775695675197243129409129808059799474026174740397952501871106312197878436061621079907288851477776585868251304676465515476359580493179413878617891414271945923593711228612389219543755982731731423413650681110421304449534295782663212305473659689572610930769097983151368490014144116197393730458388117951953546405082869557337362357804732323883090644916381905269072411327596472632684448707073912635310689315247517277373141936189425488093046504442448385777664573517188407651221586288556485134847343155283801654048305107423578713501068115638730211879961598268423054557385931962854446543588685221231635130655503180224911413810345799929513347946378582120718093911343159770882482708963290134386529302402538310564742184162291310815919467630518655676730799035366780242851960890420590989499614425919384194487417225518569055120309863893348200809600365484293077742837618638592909102255212363945487222003627252587873268523544737645879908014366140702167683423266399777076163640568460057746691589906920679721600903296652661903002158100032932080333040306586114326619076548178396259397144173611916062816065072902840460124042008475077183883462723909842430463825214380310475594859572280422329532229789673097670712565692386268482983880188834474245736748616191203295499488521595438684702331182724164305253562942045819902269830462117818714990362938179008488446061911180177361726781101188873191239954339344404609947323947789440319743128377021914337964460081913874338114072803309303970205216472403424115256257641753328995450649603549613203732827444639090042937526552481224993110147082468495759395541371570733961994108423919392266455586568597477012278600220373928283968384154240695314494829456875474674426381818597971478583768982697244401063114497776898025784069248224662559719361083345505626919567118052430812144345020851225443680669175059860405345198325074483305957639716252774684650005409158246157917792634258828005259873680449720649121321012232974390968886523504546204575982836749077723457575747950738926581346354732707947922183187254047069172263758657290550583932513602835335788343163325659868525869408453923477266548555984252311372842796204329365088411595741959927222012502300692629737828089940199170711827269123319851224656981995467731827296810596154889198847209240075091377992502472144752795775790811941717739359081815622403458239613346093456930540635706243310180305649529865049842026802956344789219265313433414082882813200111112572170095305190315971774676370075514940111500236941403424468326807888019245993837383894321126367664154601613259815847458601487499474140266026792406620899522111991894358579458623442275311253831523180887950528780082474849486531330020855240082536146849072584244486936981046137856755597637893065905511604639368128762795575670361579223916512508484866193943615636416966698481136596404266639548332381007139513001013663455854422618331465213897055910096333976988395816210371135409522513095976491036874886673427196062749893856718631831016008475478844203419536402060176336473307545767154077995516159972772715197972554901041724276621832259981853853809259429428892939848398521369980943471390495909617903172590399165501898812164270654771188969719585146819221672918805701843266007011402664766008164736000253321337070784732390725128193266743366876154990834155635845499017853653887296685283291339468028404367124743015887827968690051439411871692078145669797875223635469404655044806696347031764034558535715925365108766852788557470223366632693812250235361149490650665292442083202812166316720112616226841018722147662144064098783996669628300244870751893822082517238722865701781106277195199406419067927516885536883008853958491773475815489922849248770072706590098706512233368692270957262485189714526072216194353364626215458287558887199164724677902862750731215510189098534632488684387912328832955261573101240673403531796184246218671931965520580272863571168870188654510799963418284379668135584288290358162437119848825291732695320530805262357310503808232262452907381663597322959112823351107382745324999451453266702096397327255703656043914586598423844713030476620431949086623352885366358550755951831333935732574726879623103165248014343573323165730985135659290986647621803651483120706096922348145315380898494456193453911090052724357969389568544192538213546794172507586745818025877457842155101232929671141644609962806382054969482722269365557067078405635196293246783701032250649417376866977657297626827499939910713456595160134976923458926797983901706865387009080394411520385970178358947746923121941099266297891551657567419379683679132372410022239381251016104013742317200743435433542088322626249143549772875565650141684374283679698935894444174182403844722565772834919403464979028105259582378874558626598505386113784277860487531147060864530541220786965242273523937381317509443285504025493182678583967156962336045713034959698987310840513947977108256661697845355876806236688461816388268779041492082896048525366251927155792496890174090054434729553121412599817766198489525328654497984428230834420956166197937770009961912134881588471302322317958848847481192913369156900950330535642114996258962978311616576838653130609035920530825972285243547314764833404527654368526727373301038885811315536770848835805432800758121509123334338983122974925364944354232171023550814338496243305580458087905840758208634652383498758386985775201689292758614452679837270783617338874894653945524780117476328579389010113328011727001144228710901825650827096319943907995599006605242961294129386786860952104329219596751344411608299061423104893473236991792356643977213822765471281148487277458857134756784293567728697165366905098894114229788234542039575947766866441768891191147812425221116482330525675221728563609022088813824769783867078351818461411147873782514151998042623864263889380181748018850957363574193276417247400692621572423168822424209917396559505783776167635961395263462309175164660255548866781740041216933921849531710422987320466000116755367473444891002964576275138210712949485989895351521561033384254352641255275107575845780609551199588270147477401432111387773226832309444579698490296792830276121307979021864867023415402460266320182641702329043794378119260408738341716362726860730686616626657654090331958329444636949931559360179805669073049576345675998450183305406385018639514850736316234719519618798532466437117062850978910947856165103941688869898376096501319657377177076213054558375714593671745325200026191723561031926002935012081364789283128954144565034184374945376295067714342458844710176253655762270153649842971909797634445859549127056673944443731395189135021111369569150780906533530180533238294695579320943015409138780454693477568182163394119789106090354067871947502191923687193446313144021477452243415094585415179515243936911859948602315522028975767604528249659814441361650906287132740346440294107076444047770926840986840890091096353945473816613219427954429078286997428568122043754637826720504757742300951365912458955009800361897148261307672885333256407494208113679902246465271807097238201638362975730318145999606478128357175218031863837922927396965660275565509397030322552458235255199891040343845748032801331696848150594414994443861441289516717873692319355242713514266499924454593067753071958204931095177748435900681055962849759031881686192743239950025151974064171559609401356127586096760334887196969726931879118386242848944023827066585575273723742345955211147236608236829293142655700089161655610151017748780373052091717028247344372441570507756719018557346542252186492245290632277471869057634718744472569804192766754069852891990494037833367475271818405980946629513843403852963578748350043163259168438520402170450165032457994929091694643188163867334995741228616022473765959398543070880029562567725143547757282334524026395083840796224108067668201014156205875312023539621030638263184982628368371884175600042599185124580273506236956349052895394416945749357309297464376588224478982480159372534099725542075906818310276177569806552464104302315924916552852517556819231309314305319620665729255610664251076910083340774424954448025704611805260568660894820103682708158650860444335024486897187362357521506912774528637343620809241855911044828336184869541241370573108147695480788005719088189367409944800066660490739195040462954955499800210639931934332724862886128227104988204404566834415356052914381861057692943572238424669784499280858224463009059384428725801622991857075004915619207003383222740357915101845300921277936677044940705314506409224257359868267627594820248749686786614175686601793800943025686671191309111874166112339618066866617846857030248247322465667342366323402711918765778132652229024772375519055183463758763865570520581252330527260814232578408393524034988819811062018558122016092735036229834577817341901272989735120160909757461815400561962288052715590510727035884583819434541951762298243214264023450792895363465236966185079173085286129081939464405747444338818575928695735413550741907808506294273805599264967897107086221420409956405288411374913751109653565753907474750719779244999539287769126017146776035918108449897805831245264588689468092687211766692820119357555464851441977492037111438744358742727027451274213831884766122999208096183237141275566796082219126992320661140127286421307357108670026328801730331403287558415102995392338085085551987432433196604435368623527814691365200982098267782854022037261641742782453643594706489561228698059913827458499755793773935610670812215941425499983810427857711520826641973504041405262744102902459639551232803348269443655751987142113389554216794168190751430098864422695545475447772934620306495993661547694351085940572105552996095813587158998980533486680386787488576747464583164810450488232397933294329674320754838020717218273060448778078713792242563868505662169746978011152904739118125379484176069163781172809233017892711933777209479313117453937609907090694004994598870365282635192870159647592467555192891449725566244503147450218619560855763745053194751429591803273658794980257751323272731357160735903684520294322289698949771724835820268995114475256549223040079620699136899744863512149206612457154073650723863216865588496049306492577383081740350886368872838669843495332484239689818409255697982541864081896344623021831649416568553530331811237285767589085916424908734836965308141721631804900777818058174948091000430939853943949859995945070838032255116484517947560570735413868401702338623671593579884879579400343040038074954616695774512353498905843964332486656511347600187281523242345624230213487554991971492574243005884542777876163454216959633283233416641084778030138298009037329730143691467026288451407152657538071306079797615095805889365084399365583638590825008010673651442359464767587322392540067525439235837397687571949050249654909446182702834831612821061145159429621813906462085782082784195732112659628892985002697537421963650313035684570101743894167663982324234463570935205525499537247405462998607651625568938123555265803636502990279323884075304050517236718486570235165600578326899948254274839698139061935211691613950623727517747032782676982025903315431693767641384188852623734315753664647314087421217989853598966010801507670123191550398981893980637642815929915020625767491653049669068478342958004799684137883708421737048353935201383510266848137523329165611215867002228329452540467780679386985149703989316254138326970666849219596927318794233069119809848408242329924966593667849798003770039753167171812717528715448432369132290404591624648936251480561874785988049082537832074155120690614202631915222428264464337438857458607630998233316707191959762358168323945892799052848821979956143772554216664835808140701779611780401063533897571688574568099067194343082077366188211893646648334626552381517812648357558759440112826042566776482697487415349499164879310965509440072953741262843085130568432719579291511641683291185040984148428721815935668182582379400526045570214040279918808384481096151451627392201002459614978611879814120639275038911740506961913017796606818202546700967813509572062630684158359364450846316431039645625888866707074696181908379388791072047533967223303092937681342972214234309724366708750990419315621262173436847670155341373888188866241604260376654973841050064910352564658160078831013565995057799643799513548184141928183844270193584908918171007787055824873996179878941247608900194038175799711034892730654765482048908111205978547755297518742905196183414978417533420536890542513551887868355448394133833086758188738181540306274493722376702820863052134250803993936075226288810748397666491105665445157151243768675503823107653089344068640620716935990812082922553715741276709307785877540974504771806464578199731180032683592072043192121681536695515892294009192566466989527918673347846190264570089742568155251370864135771683121455107997959085364843359035970382886936888935725691083445920805551289932857620563416603923365287434452663667405465458690123737853486711350393679533422249185150389978773357492739484964783574340457643181957524951750598401074319834810898876914246760325477159691126903586576989383150676928511995312040832043199030145031057257745374526235181188209398770490481794487795578985477428623132812662297277408337646417632336314395319524565820746204958113017405075579166705213114790910182153422383147302726646962055563789307323654750681431348590849205008001620559850810900911960107215679344214257162393492698601637326143091359229620157479832321251262072973746526498568501069581627109083629710797507734304912137930029852753514225726577123246646261895424336763661628749045557402396017599710592149589561213082923499511120027288534039762825659978518826694658733047162393826461743236986790161728419587137270273926030169425889785547432826197051362783225327638549078628818369734721864151397990907367786031855860198753584430882425655751855895759253213202516760672946889943512373602158223925306385815765905774699509697012085569872028087345861845227862474695430755873317383468518912552796255634013204965108209540665447741292655669044793815782530678049046075108294085547433497420519261366634892393728930016443358356301845406235594236891672489094037802119337736320434124251752697659804677965148836921389992645240110440527161875616255069983675832387328034195252215286087516280243697002271368367251690486403174918426871288463286203401635198369971385384145176342153889339161784931053017096218431454072444516729588295274083491831443526143988163718992450579482367517911243110328616405853243764615629685777259500516614081626337627870976006989295365395690666438391211720008801058415308754586928026164642165356955668476317744829044965713950175904405619216800613727590438057697714402311553735935923391029056752420171979881809971349625179367615075543988935757868446761328767654307940794082680143219111507887424941606094604483125346420724423825479354635724919495851987469930312425718648674909359867789617129460404121798223167763962255759031695199703541331833493542339355767418909420950866912904846015765622229112663446064008035623725955521017848357641384707386813820040394371659067180692257220390332524017122723476751010256931567640164663887940866497161052736699247742238727883789643254096689228905235857102293606326793359864937322554101639532107985347085985948900837984157717802370199408798120584183632559712060435229636066098664290318431582824758973134876389798859729991518029125415657540875039686148448388749242581223777839416351113626872269720167964006907422119249855406132830105085939227607563441682298446718806584361185055755193484560337540013713409833307265588684080676088938462134480622869027791870909830847260053139096512143783521956839515086737991068056667070833950187867035427207176602760209838611145803081941946421322611372110478954104335324258014247184816999301133424938177092469150363331041619902378818985454709588856715382458420203045286591000602903308874321686274431364382845468305201664046663019654133453346802145612649574135647110868753777072290778374459925757427718487014148032901451031991173013565656033436803077026842724210847151064435750231282761445413852050510257551597219312499077283077151089196489939722422496867648422301125862095019215120728839725962232534177624192727747197026266573328111829438700336300507004706010388190946516212223178378800459794964326672403340852813801316951169970530869030819581871169200836076139218849653492014010885685641469431904227407469910171959125015055293043806388386805094759239740427854075398586830995710944480011196983335469735558156875160427711332855894260705780365554908012044765291196708433356640944014616758058300125184609659064151599560466234644358877837818922165865324388586328209592022087856375717535658531677785023799978305047169258943065062572694393685511283149163021881854339009480124077211850936629791938608842937270081104404039133110249854099577378263692711739380128961462677897827690565325950267921745035772582649302156380882979495299444197263686148574965340065042994991765937536325719524837304875581737804206945860067478581947144057084473521230243924595788032087501482169414260872398902219494907404689769436214886754860650617412542706947072585537203409551694413447307889089609651809640254454879964832497094404642023877902455183565857077442771173436872669639409709166972942465467421223473699205225237952781106652055730649088060382440588501899946494946871224526024177914171482128123545395678168317939347126697684292502014312542283016771153123761101153960964999637042587012639327441014777186728627510690058463357874183367497573555991543175071163436601815025380330532236714171245208693738201090213373644378162969516519429789106624990694055622533866895917592770760933007407492092667317015034457737356472867971250501569185480237402276387822731402591705066751512653559469855488433005152134758387035236986119567510050456948769611865246179529262994391760887417982562123119358986801627697273782511930433631939275450896677548836419053468179923821327363061855028235789842410394410897599167002355175726341823801267437433273586082512728685800529985967877855716535080927163343453844043897207155927628397733433076009262334550172803424737772818204408614281941100917430871335926919222591387285016185484869766293957807415413494102514754304661704852467174949758316513164496325453453124932080978813790418484241244147880993122640877989770672507012161611592552276245900149441712254056094460019637039214544752499844773326830487477752693600021735121839638465285377772559337185584904179399682910544127121824389891783772292025039087280611393437079002738191658104271515236382641882609577536373151470894427461548981456829441072088643103105057027182553292445784435959442135325726731010296224753000053189737020640862159402541558408412193980815214410409099183288145220637227245117890438523397477543097649892777050696552520124975494415035608805219869661997890582102162704640020974939704089187443063996569859228698697948931738793844271797850794513693363052639490077215915656175836416992932621939351234344751135311848093973828013134614506897000891786147403490728476472928369137579141206787478795280673247258226058680209816168797490442681756554797133919414883023355826798383370215995168838172274268418299796068989676854381294229886780497140338281902900128957604833051363907200217832022467042462894186353460269994764127226606789453260691468489159929463002667531155533905794561996855387464375209503383355706245875178855139651201207923562660426311085113336959508317752050462292779734078221596734487261524683458726233491171322713338399375212600207764289245213448747234901401603375114734112544744503941805044365854096042741197490354594131440075233904676820698911963847281422135091256177456935405060021042674959776734126683919138357105321427112678577796571199269591750638831002645879689076625652077119065925227912753629120107847161585791363673259291821393928661145319564573015764260224635382762222130513665884013970109894313556966186287857817191645070039573126782413023086530763609293576707170145995627434937093496518340375568905881421151693520608433172546502488088697917027261795575171702769416802616814069400968350067916019320668789144226684617899085258597848873141613869388933767864823243703533123291204654909351099363784611427225001849094116474142184490645491430511069182399450787964621375991638176484509904191221412146683038081340614666021702757860439944109095878956240659686838817582957827838435275158521698146108254915434004459161992668021088578020621181863891876811105264145207036898974659486810534849413097413292410971993673287057477935291432608005239915557843333678237149775147220819555897071637340163545432101879626561155225007555622841168540965770304874677639258072547287736815566636892066302775045545853034845132771702690342126106993491870755905325917563197515187929181149456794323845152256426732037460992814675973842065328235730365531795013385814376239320100510791355898235426453099393608841216924844722944107354416764146351098251030375735142353111556425402657064471567547048853941413909015411947626496712624650130603791496325819363441252127274932407437256853741052048567625644324659382917695366785330356055337863191462560875188020979541932724598950354787175547726340702404755087181500518355145335688665856930722116551691794472761773253659652571476559717755099806309123241010106397337636445524184212024687580052862603088979579911657247327326500616614115107073666352347137931747309855608624987093632530836315564670637952560045234441434242715632355189761520344756357980314355635510009665232292477583050303379184363649829909296601180299533989451617510939713418528449900532595781355249504731086804836507185288444075168744448393027172231950975731253338222395812617281046618747919197304743547396816972119513496053797716029450883593378214738706489998770997040061388797559604003728892722271380549268613061322650394538981813720717797639111457899843071919105668844311367212976438098381293019001481785589584678664529078291471020732338149091032192795627163313087736429714609872355365557530642878139596095761429560024733565407307423405230323378933879064727853907975746653215150902932606333574404774303634271274883916472211062973043904182835384146224837530921878479927368844465765893784215475655591833437959594425560166144934278874532744947699105917267568445504951455203851196332470565089070979769391641874798375673964307130787095219477532457174188420783327610132972549442842164400008711578674939611248420370453425964132078461872186795036418743090904446147745183077926782740540418615040256159825597736674928686632948873076446810210048048147125324364288025516557758497313047782194655867760812678358033387910054176682468130312735844734079553292442891703205105569349433556759835630648112097113228774173884797932681314098051995204298652771703569267331740455287508245367218959050388443338078583845820720298732172952654852540634496417200037615999459411773589066931736646809940533457968394985976237880332881601861156358620820593485513886675225292991808501094843720868787245275167343425927207820650780291898296496430936644763054735631522204912729965639879950524492938425414755415782747350263158984884195171177184827663265190162829734999185068416141619638385390588374628608812493486000355240726428914557442518360262421692286573245614364392410053380533810960037684369042246326204521088216069830743051963195779964215297861760225827038411852654637662911645965740398219667795410164811216612886458941169946259358395360052235123403520968689758265796358610609206572419585488777029105529125827348574713345131261172131942986202086723500173488114113204583988007157807022326910687398190505682951944623002370384008561147243100094936232732064395439809660824365505639643919171952891422369735564578190581015414029116108288529236462287648498708222813993111377187732836092267593137236648548520395288763083680102041065446667097324939949029391881659447699652539128555893809466337433659510761551325202031914937175254479864361750515413485636423510424827439499167835771603023865420693436256927622047885099970219896893323111444697066076806011631127705811517844622120866639377575865983166463197365383318451278738714310472039646187263722019738599864278376413368898182964300009343879387697827095783309926424127176293624376020171292903282166378825439171944834609339630548008510070193527115048188999965285176786143143820905466704412030694454657873299851563595067672270295912726529106560097302093336925597233721979371423532075754795286164761747357856343770340588299949708589789949867171319229631769240960918992783876186195470188352874008599627480005614805741904570681376533787023319185671609414758984725169508173940268992343827641313202788479504046848499079473999055249063216595281226695874798442729995378813007764053451161019414981576848610272096206392640093077136395481083208745419480418387786820183443926807897028164246070767172448070594716590169936833423771392581325278620115088095642393015126677990193320280992782359805999629621051303683093656278014552797145151391948552194622338106591302923517971495227003123557428341161495726692806578287767705212716766428202481045085016939729831965656959443309024075611220680511028093918406885259647915921037509071420800562795045531335520361144875216231284735468724863847315772073798661336433489215398644170632166901375664066957827132106269784675164124518982713096076990650227741402956554425706765605419731617511144183477558472830461527921391196872601151321277537417304977431417316782496256432666076009298100027742161253095524887133057356985918345794237014130187030976465779515678183796080416585943066910000161656497826502679175625610035790924603660685377896913875963632713272570932171006438910058531061025318462559367262007594732423720667773526338546202174470614479576949957971291337073912208172120352509862102368026296965325107251990374728145769466920751176839924025498661072181786437833326397497899436020231868686029545913018091408318437598178045333324310278633686967819779227580500781951112410933019206155165949108139131636183377841579973161837225842722676493117893975355976736427866955153082448249952669899599044296823635905433999373822697282146748215136555223411442946290556680772361707348447675355148641234467936050057820903802465883344588298462956058907080887619437371803658875276135424157360100823035748788151993162479947177948477389089771219235771684247490018356976387243765012548931189816261024857311446363473340790022055345408211779230051771677197591721090853921336262585508515146738984767796359047017390243011610261712304696763269953213194090708727217465843411211719404811628405378493974944538264121010753310513856085672302094775977825403039786748331998452423271441481592884170110508271006159493490476105116800917379453909968163555009957631173002034752702161200081034240934402760800185246092831176407850969191770489036585849260208117751004998281507641983833793497001576014515306670197016134850654192069304623528776822940678482153072740918784538648948185644831652002511216882734528291143985431769396342550084430804601358894297895891004451802687328426725094795802325257350738703874085228601653101256416761054488441984424623655607846737211287709095996214927694710256648075223271583577464872885763326366364951887535639152473949393668688023314106131928537959809869573947397339420930317676349613192423121784091635642749590690619529166825660840291271316928324223218846693006035353550058168422848258516241271794261239300356738457765919816252583060649562358947740569757633015600236490721795077123476441870444133080852431902803255145117912951562872884918621345474018167913430556026431200255069071004149530802683111550043776101525120450796303680965400101811634326770215729471601001539341839292367689593281031413976857873763033393844985018486122515515268805582295711758049368310520634299016292779124729312207233628382848876030551952571248795239876494256820261383914420924013370684285079960656230982979054646673789167170191248189929663878291408418504329274143412041100776682974590113399701857626236711843150638392672107632454961497679850627555360684450554889906261637722248712939383377319957836517508539903644241884855092749485572511291297882082827878195076568423695966794337230443303374761105714499611495661037210265882102854731854944019906298911819953562580893186195827323143250323226796839197542009934041446817769907399580699396566295084425496697355746998166446115116764683054447774765414931349617553044492265743690343660035326475335429457659588456422277984727604692439163243673236616011342992246758050059813930326411075137659926730144480295581467274948022360362598030046372343209244060983659593372074063497530485119246373152715236318127538666836927206623931814387403004767641546181968996934118870602051310120211839365899055133574606064254496861433559452289597799945416039462088611869420503653912441877670540517465739256149165021708617555243850520540356684052968126587870163355905677327490385926144670806207367156086897399653178537010404404778069292073454858236883913435917091334819745018057827077616311904482669084247060002176148188706316740091709536128653331701881039174873932536582982853104705032289463127694706730165897704342640770471983249247673065846812947325536795701385247598338582548183493960520412200148902457734151764345498210105027275808190830610676061501096521410261513329037642044168355056176200754191481697187977374760818420258783268550602827814366689090436078470340512058009854953442726550031535951166489943112445816133525668277423671123157173533090755249629145619986011681945052803924692130785982572251058478459435672061830299602029961514898197759160052008232049812038222854582472151585137083145829377207670821047886717224738608654922622915849873769162106805271295654806064624980304334646545136515866442017044194410685854106761747664370306770223312584783508270413921580324173482864174230182231007872708341603920131096203152070643682739129941616277325404458680887386010497035587392806537256211195896755883768362891366974247515309569451796255721296500290040424313862077870571968584485743222981146692143954615265356220769955404455012568204162093236054669587538338602986561535919906828285017741011411149507163567650015763529734102480564223715670291378841935429164678739256715579898158235923666372198067806540968454436888632805780073565327321531095669964002013883153448345194885580645263435698723760493288297288973092561406413523380240627908972417226055788498668865752601780200249336322797140126358272301776812518563333023702710683026432540154207578683044854649659545157151376072911341898267275531322648910899099045375792391252738217146444823872298136353253465577640548673177852059548114710178596547592350300094943157238843003347911341437283280553232222042391967163747089191448984746309535729096605083689772253263072198315333017798402482397541356959455662141437184071953135117412735937057611738613345989707366939272456174810364993519372381085930674026033132714660755588984010747109855368564695481137327734396699093660204343098347981393603911314934448820011760582616197495682506609891811429334462064931330409784392552412109910825990534674795671111757957448090438245622131930259127881634151241688612911194620288630258059722893172611181712986627487264877098165912011697334015972742572130536416096828728068057730150663356992345111502197696551478615483826755131044499389896388580783986193925228590224752245943794968374502055148706743898830502700831171607697462357276846208093267428115575473285882169954520839632006947515322216881670236698225461255378029229846371889119394459626713656825711513222202440367772327750803546657514846039053431994123424138294242695455926297743499719622088245484190084903606961698462884592809226388159056817401252283753771447524461990589639357370029738800839586589331988168674151475917264601651018329875804943759862878591832595548637767076981995379251652099640064292750391782304906553651927510149627591334123040358541690134249233819644822854737471727786200571295307969626073225376912548105743022016117294166561569407572042266311169827706526335220496960489829162659668081573132842238169786590455455995978734914315375016000446321688927182685357358978455484502183606130936739013630205859294312086608885404283171334633113203596122387421027269483215581946970515074523776520677582974543971441943198780317554239310464123372000822956615990435800534501706472931425714765807597890727739432256372246975598139884633543090207612635105713727639921429152128369624643736669445879521348475619171090089633747255901311357953039646336030260331738209779208109894595427770070965020244638324419997323240945578239859492224339651272363701828335913567365412023334811061572490691300739348146467451500687752603055428927540080871428463025120415791544861678381457145328288959914630748070992371549878357434432926222906036791167863203401338366367818013428599105736760070764981114056124884012710927843048875982935038414522906941357445258450232327327601846060972099954592321623541878017083993237727829765000581982289541688818851931241977015975309090584554262853939888246299627409096887708707451473702396930480396716460869244367250913272804067693023187555546842703334333057716284176538462010158744369774760931343334963698956006239359312028449466493019114905577694272410386961240381666044049667238351865294189087242946627640725637615057957373413923834620938853950231938880771572979608081112933470340365797660559925516719986535756933025295127932186548673910070874301118106933971925103720391180624587564004262741358228619522887959378590529601910176356977631065623222921312542884649006092201130011507946577421686980832379797435981857413891985044644938637816104955468779922511686914258207040155748239019052075273286453848936991296005527039932404938822446384330030375685888981896386500168116794201127764906659748234208664009408124403439160606627538625563263860761538409827714303371158121095476633361694324595574789359313416928233896047602884532947077138689826614360118733709115919899036671317719659957325616932176589689641680293654848192796879332152847748127600506072516469193948716742513788452082204061636994125057149277643995502107890907536003744901626807898981010358190418334479996700746893799355252476740716648758600881262952726137716965889455928861493999392874306927957618654882676874574644766994418680054626472008423439324508219636896728574731762238810373294435723529274491492984494273614021264018077322101610051995078041407558724933684731468827614747290544962584577483434288765599827802801914506141256071208265202079487375696999416109617094731032076770632460299728926153978549003580154064232672252565015816907590727332278644024171247518394493426035890246568221162476910326592948368533365229425049822679258490482952789711682794996758310341706911939066075717735899905940495034383849309739799011707152245662745467650709785815241909507116489239849022085411468029402000957803816541023343372305757867216701283336702280277796115677122520272254083155067466168569704860145743098123281701636377244248465842560092556141926775210787659345180175378873927175703488768991166505280104026255296439118483509785482406474537921951321082956663328992372866517038108274447069064161237382767612140676963471869147556943895826030145760366538096150791072401023002354274023135601521297557232979018838211705290123305935932533368201106107125945652936117826125250174335578475466301230764311310311003320223689333080399633600753615816629303298443102109764916608840450971556061146625341815080060763181368682851170458072875245710882544862427227077862703472667967241608702014646853044634709350335012260480888096855840220907861370291498871583921981680010502827207929041387619282969085100954512424739337816447541192162255904579944659264204849656784776044123218835630978109503499557407413722918061939926219742331098625184789983398295671061210188792940395340187943208667509542653116311679619008307263220320703111080986791617702625490175191579648327639499338957327790759821307569529795935859786556517770514170106520442526913563221957021020922316404241121244309965566161946061515557254009820291192439657446932142060099750245596534302638024810039944982794981671310805232180972833506408920914183152903626898908583117246094260744194438057657975885102672073867332390771260577752249263736992601853525287607871461157780185406101588718780517047723541441282353650512048429572675955435263716945624347395979060620044851006089064980229289397349563944782907071446042812025401265097446190122058227358374870493256214249860848357676703141304187074240235842382014291189614031069366690512807798815849614451365199991937130904470287352438772906105758408497749326543957799225416319329035956621142777882933017797896312428787807682970727623637337095890377749433805690873414268041761381806857081973707152150873520144175235505595277509621662873366443321422843330319189412801969207542636056721739552738175108821539124324031722866996945389472999721590743775433180732864140661363298317807273808473792741976280398802226325069350876288489702472783809573795045224639269189555731894160769889696732591909425124403139461940290243995512299775229406149933936859140483734591825001476917213655765100641026583077430338084802437592511470718385329505732152934125780075055132293009583660628197844290696459295006890315801376049361038766534723759489274929665132744265190541689934169182386830473524029420147369067698346409789857373271539782429356380883179320260771615128815521313902299296067793601539690389895779124019930444256969132657976533690812208640873546900593500044610001318128549848288008172538566965698895239598493678888513571024588934572030201867042601708719553214031470448448482675371158350291618427701535221216036717766995584826277038783217466272240077828056269703122928164639823620301761629479907626727272616681557105497480171583552129726871519630445537934411436901602844535487327374000817620871298176119725571545764630068751307983604383385915820722631085595607106798060080756767615471463447565313224190563244503442370119117525382421544503268741698060265191670740166438599131795242845177390671612040948530733694043283523448510447659590900793506781572735518744462186267406442848249301268753199857790083894298682772553574985134266617773491006927769724414906057713874088011148090134356623050814428533600392592004460925576546965881024342946419782783893960318829093698020934781439960515374024113980476295939693022097435754417148761669574247534034240544575622113765354560284325384518983091324594598032523586893145180101704444513593502082008710771966323153574841358393433837455118262337327305151294845780719945300389637192996538480716223696390668938155029969596402460555736332982138066218253204631204735235936806708785797543455093776688815262943558068767587529199523781641626077431883313276681534978220387937767397486739723775371664632592856167003604246768710897421476569351352823844583953634715690168528167283601422928968160748289494533183390950688654188932441922567412744859659440006813711521307912915689828271705132726244115210568858639651223672705993321424685654316726947533919744670867424873911584997074551679895497900924150762776194325611174222720907869614752239636528905288967393021403094198230999459658956381692565275007338884910555217518441650285204911365973454721257781259863300327319413949865531605494692186249765748566517474234861416163126808236323285291727445870881375278132516907769214375915950819522120806404957192649988070556464207849469658670891372069637638003890746211782504736884331821858509122427186629509464986233269919146571253721912128696103915497567943444959237508275943240842388611793139577808379831116398831576060723658907444382812686985459102415640753041142911663313789696825710221295455166842205966525665962838286194973824708855745449782415434270157855553290925946280834068122555945556565594368721624715322352193162511904795169385457849449324256657991110470534204327474316549886719846520142242465432048999558973430493258529206418752628660046762427774868983205102876115999419514460657662555733863642415537900820612580672093913770064392744169680681172553530085609025327269198057705537600526534562869940251714372653769111824434827225845882753359596881556130351723222582294061570599403045003235364119372483490604675151321185799116922801584104168218976329345467044906916881836909161452666001192657323328313542654654903710741062553550300927506341449725245344263706615077914123747871357776850659791680588948060574687048104374184221124770716311327070826745404916755687340421367166908818628994153359833585456013328731377216673463021848655162403147149947079925049834764990038401601664079551793490510039445003344408251468713773254253576476754351711752681398908865998989082774768520653672855591748426171070914112783100585152856538552622104820767367408599820071485968989947174106260193904288610453088776619928026612284104889328145159672258837422342719451535645616303643336593481037372543145817453815732405217622139927425843090062332962441953668790029852028748379127383966999773476775237739261223995303786533690913644405574425018820268273217606346772191292642593600259884492119047959637950165636414717388114978654945699451036512093145625299801911014442833285000713767782909664951851011344230375031122702160394491400078146631120444213877893722869615927973373486293227114183798608556654326988351313669217118012683100109391946251189783633453840040404399838039051034554382369924271357709060663537851085889051494130833885859633383944773426251758649535485800407535356813946305712658652056312175770241566215707537965346456082835963789322882348882524278210909375880632440887433228610903370614437094380134181449862148517566800750538306901515645198786261002756499525610248457964381273375303287315579313295731837275034914880103356729166052088669008205332782321219771415317640986278210666105743810342878808754099856899119509912538776466387437949809049767879683981624285693851586926402052520882622056344447979189403031733320305861503826554952374694359924066203392667313646278781151721732104900228315880724153267584390301490896450204539446203975024603740915988657335473947724124985269900881174553103824107574369376847935121972474444686765319574362684866484775018461909043514423636934815218694452381679127911545590419188661046182333040667213194990961872930791068816690387983698105905789735966916153657538134445487130191720524552253287366817953117849570988885383149731907803757648035084257804422801424877249125981839782943032937341321710498557921177511505482942880105753845744161607611933530850727584633581286751338040151286509055687386043953298558835882001564534055928088757854097075412517600064714834798582548646861067581596468543807003675679274613018541831973662734456223169631506040722340436386503734667639833770633931953329025283512312752665008958968351016084103551036166999520884114547159514739054765821128005628459927709560500006542483371042064155446960924436651617511825285842099927849826828463092684015461933836157523051401020302712847625167298194230187789529115082073990993859831073873294967481378591986894564585228532958298464891753970258566886756390750229989529600427515467890857210282048745366434060973242285235512739217819820110515030310679010791716967968894993989987508376134433453598425745732916374931587208168159992130778925590652997554945163311362132244295242249181852409492704185686455186820325818910273230940228885962370419019538277671597239099257375567222432201907381174497833913762543013047418436729825303327056323382698633044404047220256498613223826464241183746220058544783891200798561667856148453466198205314378846617710162627186687716499020114234288541136990312724391923190743504891709289657540417163349497736573042852769259082080061604897957972425894668777935340430643366491987482302922365847031009273588287934376932226962708821384897272607278778897052451879107537026756366851232262234889412903560239927502227495532689979137779113479923763662901386223590699398115596522736224225718007772474898945017712156063637196070094007671173243556812571452067474985351460724272173567000048914881303492062259597104962904535492532862523125833366334366704199173216200943747028258645158672709101709785312966215644615920689783992413626628136234495885613851699161678290002709847198219514045067730074426827564826354952688505551522231778331781844981335770788584575423614449834004217684042977097898534028155331275732599865621660284723767921815556982228049039173433610118444133718783355990611428406283065187530239023234883016863992711459261533738813146120528560707780549839093121357533543489967833070317222483579443791312950122276751977651748030366635405996423671833838045574598963976488635668556079043404240816115297408559448375501521356775615910737739701633289313158417814533104297922113425808776387372975793841081301081014630410925763865694179478372645237984565727014773521417814997213830465715475939679716798237343355993056147089547697523492087482150787874992446786409240331240659136112990451942381112990191482001612533089843282459458722937940963235754532938160277758357814904577926834219132948835245257087869846364586481287268718979431365351764708438043299901212016220448117547675310606400866392525739461115074275499839008061656822752417970893372291821406056581759352547282424015344529189704214421233077336232102187692579560354991551683064248819795219006276752968788695557073759089640408067973743989294909300152511368171636041479469674846754715033286932820915398727984130713624235555197422318569417165508875862610186141620037886922118193804612467115068707639090275990969749536839078948619669517303700392387822231093385188729935776876913193714532303351855226425444538053463696172726767180393850765596947612238616368493658903068863672731847259547091497670516907711433555401130813535500964928463743634039477437606332526102669675750540749383857374436652645644183963573544828941425674963901752839939960869883143835301855618576630480397930547592574614423697778713879150095159435243850478998529289609328700742748558122279784911207945306537093351819657820648789671241822680641377428225111419870284754317916788558468366596245969487289322119956702306982111792432070928851250728677072378356873418487664858002265226287542784575708908958650760725331449974817178463520733393987191133090685167072511224551951824390864687514077226694640343112337676536193818390565439317014835679497125721253899983389357645691686300670653774710744857545623746777592355251464068737944377947939554721442386990710221739824496809305770242611694656441245371106073541302430141506435589737639990878817513612666460829218260787495973356273153182999888336086875284704875800423971388056463443988721788076462061479751722814380785138933085523146010806556265346812798244522868431485392501995923547980251312345530727391599009775318028752071972353770488997332882591484079789535457741416904078561854653277255813146376329915946446459953575994287341403981058168372707159850055545726074598646179553727528643292055487566835382403716985776096809848931988803868720351685725025512875115422544706299332203894311734771523651816792956380935980714882243335615338523123975893964820497175331434742847629884457732426254023623976164244283716855746642586827250323005443380386970469405883423013796067918617850557800326070058720996628672663753610957247362849227140892805973625078799943156710951222151972656966813275276901149195239285353700198188006505819471867949185869930687274646463128164229372436088443773732335147324461268918807388772140553150440259972984242978270698371266075372702754262575787865104336850183383151683528020614248082307757479221542881010734914879311783596224217683257687328039087219182322037006635681134626261275879090471979831393004654086920312064392661393364984978156862210807699305525415003137825866489016850124537139544308101125159787721222988108941328642179272094024160510305633212802223221753697531506581289980142299323191758764468179675225800272858093619971462306901511301338621184145984994246775608422110717941813020258405246844565254005296226018983610504488252449458282657785118375668614913183251442002715458010108488816944731915199775482483561204240006343515035500874902851901905137906590239393696660039076623043449223679387270564556157894288445481047253177343833366676470461425091780505598047865691324200042003907640127980160189280928114620190399345032936066244672282062570625321322857268012168709142622287388960566759802758688035105991323184110862821152362735767564703559922632721513498526240947268736963593140064366279556348130282544571746509600040899556466518268415128347738373292644832206137347613717097358239627588520181592317131163970073302326864636804048808610937816903601267018942119184022013348303409410913834556190660376215121459060252294290535449598314585873868353091754411377842174167553107779500032415477191613234592151231252106059381165858098241860379947534319966584828313235930598795224573790238270791310466966729520169079926630067523398408561753081219265320636949959425314491124505371023711355167236225996135952691916403792553068264187409199414121569474404798992560784918116277987249385143835615198510498797570468550890605629765817197574668513266782654450416322363705754158150386992596751117534405515415867511083086261092801946609616476116746702866702098298440169033411723998014241913019100718737739399297105597262591959784093736445335194146066532859083171369078546173337791555590307455327095287228655111906645034105142721645513076160906838977458595250639190329299075399579098441585974389170478577515358114737693180228079217846126779046840155002195507269332986022416942995109698853320951374017383166134726242079606949906738816760917349911914875202391621361850600575919756021760635030166073571036571523929000735256663909729966917444166141150871155471545451343918775754691982239270100257540555858713592922531791209436744023853499491356907529418706916871427284131300272834558102245137013095502701804341924554869237477305935333957996877280181716421716605285881800155927571379377417471416563056062709971205630081319329523455412966950523288067977264752244489043906817907157246315314918718208463070405866249814982154202159089226033637205336586380621027884417716984125320935172248426181882970641346557410328841852405988746671850014328083464751187360784092423918355555876543690186074030238254832825822316571766569023306600269172064757188903650899257521114122635791492301828128098336286592621272491141570487118108141439161281048228584393710102500954458094463977981079457531322801343975239367739233623934696978922090579762645064426898555998019779654338807411543147307649256652823095577163283065935082969706674709131803122201389399347347616146761615987044240069494640581247053530033785493216606348648761380734766893453178932998853496430278642160494677057628039447654772683264441413450092058956853056257555303178968154315773945290263050790716064960449244756711812119411769705613764844089616118700736830659042547369330360038295476859617243998646275251826892808628480160824415253796408892624837655772524891172346354939940695647949280022053843587743045526434272797330176539509935768099370120118547424938217174039294881269218382091570754705056951089221904875772918188294702288986211115733414772346816712360198488547952457183717324883497815053056115117194654040974918104171520876885196864737110004571392535355795944592183969074437617846742349548843963194987611838372855429527069603611564123689502361422530015332639072900087425787531018111169096743372763593657844296953421594268854050368159650679578641013170835048871777172898366477921420900678424444695912306103863080363102512218312465169533580392678449605274999932551571352575681712916743237979272360167074341023130970649232630850756629299040887525782913372893866778916800781243793108386574100511534044963434378515024093153043668024642048432276905838548275794673787153227277356267459284233647911561075512091498512353005728538749415208999503373693736527157114986186813571450348766296754746373826160642722375991795967329484707880024216465992008393277988058866366327776059724622254502560681631048348124932799481148132479534552250347578007585902220131805635242717893175329408192858287775825398070695544681065043283592889457109533830049300169564631951550464016974483457922354062201638743308910302987438002149361934720064059054170102038017506592605707672387588197947912408807835405016045000333640333763581142139502373444820386861665629764154781483349154238304799175832480087268408530195797441489129529477402173230121102390331270176914640549875001197493633988619151975739301738359714977787917792238890428818524239547336057637649393836399719293089717863045865979698696389421261412504282131228689336050485816100459679242044367632158405357269308707770932503049888601957860620158700828470957421288310565630499009961731380008471792143064554740478993972159705324098919078223361899024206984548173354889388569353457404334529580696559301519647098557742096833177540550336335170885813217924548279213688832518039834068163233928137294108806042848342314298942458335632937376752279879350809224575579066889959894076762467916399881421404209188405638843541475109639335241002300778841046758920988044063109757742920946291588702403796439652434382167469801831445201241295200654596869155545684542074549907492779090852312796601685957407387167731382902293000609922443099387462200766292477117669861273705906109409883597210983079209434471005448561815777176928206595732647995538031090969546386119334396911833577532011871557216391660426594469730147110820913809876196766399825818208879703621901757248516174022170367804776418954539068658351871843314417543569772892837358887468170521214314416660793192728214247566998922001549415342876529819766579722189273264672383907169217778482668350553560580837111525505686887523053151952443159091973221244212393987359009171240879342380666396423537116049994117324890654220257936838405565750571818420153047978168321836816485845931768505241478634895975694688588827748598318839954284265858078612563867876019308609752549904509484690352420170870730888238717530300045026543094630245076566591775044514325544067486094527010902549825915197260131635683487345707233909759768934758628697108724151155235718128987816735831206595332699187570646782176519812002466705357371209641928278276599106042904282549844710102593846154300007980392094969098269531118645676259120123843391352890720551287995304989025877542022595707223847427311538217396234912975554181477899669624962006858387331338589679318146154054766643216478216206298460308762142216502917465472314546271163527994320141206468046565040469530604037905523603748415679594758549377546740921315844124586357357785679211005229419948614015493827295818404112340796267635020450694249671492571020638940486426607305908503989545604122153990458391908369991004008558510043052229796644764182447046332727132356805157432926097187000005060496654657117098249155844977272689675600991804356007855208212432564872123137099902393134455545231811601835635537491392282355769828734384550070603892968240265939264975618321864849624766845986864293812909430279624800525725374716323447792017035178945562731514266694823771322309426114066034897222738459665055193619839086883720980512140082688204928130624466579442007537372287950416156872334839513347113362805065224487403715947277787346521859663060179929187389417566073386128817166169187616014435901442023947017421031927620408125250991357385964310949772994865539554957555462548101800711220823331978702319912024561245161821294971501118625806939433133751942429245333203200038326087200800598008434120590188357180392629141800658900558339100881325798648287098422050673440445179151384858515610633688533342214882493644284279972136082774009946390438910278640896893376540205067640526092206411935366502157712865887099012950800473979480269338455568245883424561480218784505689601020049732259483437397877732359169653455582627566070428013859446726426916188400840018000650051518437020193234071418783776682679185246412905372360073958336690469401902264311213303129609934323450040332885540789306729377802832849746171227083681236065640924078983838933129419986773671867795072745452630167430144279097996002173668338484322239149275433721345401575686374009401707299957246900101079045688544685551359096775862344085919362848825278702941892743558073200587672355784666324222777686884017073811088942703267738180773989107563167096218939267214071908021426054095399775051247187879802907989873458738754977154590858488925327495514384741648440922749690190113407772615569305405273787056516987818482391378771438641644116751093458405389700715781845545936810576926098801686159077078527722691180078100182194619001036432652354872664071115124600009505174453329853013237553805788472974441430300603475098684437399600176409110302991413906058849012372367904763409304468643150139602141483177098988203937988028022581404182459147775296837557070175893874404386064904007378413121888618099112453648723388950501549835679187379893024967067146774113400279607534194199913977783937972684402955481234111971225376924036908409434675994225012212934334798539003164349535300661725498626416884334118887133500093163012672594501078239810792873254084977589968756082318194514320497044614250175024577759924292325739242021718976679913769649057717607811509875496107284001144540322073422891268502384552099521839133643044653063933384999940871339987010042119675146922907660431821536243129062407820494811051201630059876813556628698562160448577270198843718027917699304438288121168099713533160481506479593338467211485496439991830504329801648616101552561807316905866297561062304242781558399359908151654981613463965681236601640099910637449809018808796479985134297874834626240853886856789507993216637005269574006253554179930845265890147345384637997422184790936164868533048876849869506390312021530239065903086585643930384417856814214039755969028456528613701255201886776776813717713610550003978846448608015649008866556615386306431008355523295196195431048200705133920224028234968405725576361140749246607662917124848326086874000643515249379786898861166019440070429294833260280287311943460930884907412344534269858385569948864746179255663097982503495978269840661564500219446987293245298590327212796449759773754589202335656609352845112239694298418012950927254415581543104627669956166302668716361534954478184102332755298783798954925755799974369291756577515607052733267959641528776059358634109748128062017968263126546265614939050509937241693872359256267028616648256428487895728353770370541857944422543946765993495658230157938546614096659858883057521459813085277508593328036823677075414414083367910229490397915269380492918242430599515897020309057109377718388022293273603884548918387083728261720140172159587263718345053409547227728235193406379795555630300361970573302423728761766224138249592813025821653381817673371114802488700345424589129950823469212681950685646434110506561839828690684874044670362984201101348458087326711616091502069729896499073696033398883124573548397907601477518966126355203409124908118950077755937385077016657642944087914408524587414690135706246620141782094984608026981388725972183748494961587562933187996414327508335992243245881476955851625947775553169557214826600719616734113303361189939758696114487579202717531156144654565162473183733766343702537941638548630698421076464595570469062545690388294138774818304946133367754499221472931502079144843088931830716603619295560819704767642591923305423490927097246449921385057084717506977428997392424319755419220973837605948985310025258934875932653443991692375895039685141964135745663871263929487090294014254660495905796439415443307702302864308560542221131847706549086648689852077749079820087405516528785652829344056319337571170259439571109816553180797310379658246869557218521823898086144402899130845126371760374252895898662627518728944466591328302106842334253790480865488921790104444218992029431719042087298704255232162710130023262124226427845313726380631917968845282109218698692775760947712407719868322241763666107893979341637538291500422841303205159584918884335098662206588517195174006843596886407117960715317032907663176695715833241972597508774815456511151955061666772047906176740496913413346928101011118914988619446095431361106358818583714911347682170288581661712410269863352978693362748249756606700476372023707040312150388701441812221560037381753634594250113585704290410170619868604281860570443665005185794738743185703327240190634627588045485831200823139155447398698728785137879107264507139301459169328113165228387840338217895716106632128428390615776653429161289941226579158636154688527363044071429768948214198431629246689221500687491763795135643473312359352842127612929547187764882688737597598867100859042473909446706957059674212415742140971058739446193516737004796756118680136930907519210142233589259921913188800178083846379498718920072593553061934104704742260540332074543454521273219567889915319923133632607313616320669287669647583597946699341614830085037830850446925997083391054150672928851266633886223965942904179952628222643569809506211018597131983061802362826206419004010959765828615035737015007153796866776505195151160839189030481748893707234644832731598708951923610565427290603181793681992068590187034805255437110810691631127743831992796016342098754914874077091837659604473631078555308462653183246603762148274479900448360807564865004039619194649578541089319207667350498800881351764335444803182966000872784782135549322725841366191901008908273621629645456670632424012937742489228813457173000546032533557989184262586014865275530053554616604031989900967489319990757890109384816840228685635724434321273655972411407405531929803908373897817184448096967031671308738908213763926652308736277328574059962272629441233309220877417750913233222856707946276088705602054160256780707961852109465100115048675525105271371892769064292928912458821422844473043459888982234935012539207011185419831375072014914193089956177531530844802107448100014339915059779095417074596888054692790716455432454576148279676438170397072877060386946246111778816043789769796672978740718854979418696101247786756860675526915525924361787651255075962471177886515513983961558218159030153353769417146828240718577988092461315254025287628498545121807407002266568768554934153934736848031247380606297530893509523607257421349842592461049096102194916524260254662395207787449574440829275040669949228013092518608329086659595438770304571438950632054861157218941621450217207385780790279362416612305597893209669358272961363601109373834685013727558998874036154028630519011089303569113562140383149405388247068044977162014347890846134404582375612339900624315063805491641424566965076696600627606072706957769695373208251337642622358901641083942385818277623593180392886631881173375615918117522039072632753999599108852257560945995423242445363116017809668945336987731309639099407633199746848447314612387641905310477586075048687912237208558868338068184293245414881012312742445255675936726658136138137131967059322761940522456567206653955848527536350772870114840834400392515490223901206576518804455782482418925578612857116115764585570997326666098838157129190012145297542175135848818219163459921410031928534538671859212717873854362936685747447565510784588762246781038538371267061439705852683386922175589346337866665177633098682089133997988660028611231301953009351663621239685325974019173737064926324515814046576043978163173246027841193108572867968266213555386346106198071642025281121165797787153275397945622406295565485569014922735958103655851799302956687085973964882768869591862734811383919884671522000933101437573308966560547099725002665197571209918395804005135782246597862508997146061239331497036243941240354230071697399172952942722583107557315872753803651471517841363051827640869839718047157745199241865675924723947894629849244982091262710130647360136286780893551039680950925646390097903390021745329158848153659366840017075141492582345087815780093352376351744868517309387704980507114826703376935701563323331090124731937382917991239070122009579920817105702332023553926272936753581800582954173693865993098886781062181993995532017681288975318262738806441134060306537017315026494394564988412994583970390314628150801469174486268309104121264471581335633952119290116818066834678143580851519365055793961513326299299636472055105313810667943827719619815595679882670970959722044433891282617616303482228934546079639686831396568197173620369880220013446923572469063385195890912049513978192245201109989838026269805476314496098615502616113275401453225499216752422507958276706323106679770103386923297738814280236337688816970691695256552739688772977132539249731486925957571022545066577201746609244992228950112545895214631445367566226488867605049951471700228190839505315127614318614151313752462823247145664906829042342049878400629675959750568638726761960126945053811671540340072301967400713325517114805483726769663486574014592603898573373292948170634537580523265791982638878450297049862200361012929456377988891929418366679368966174171355652311576337104494301283178925266885406009172415113316477307726256404292686888503917760710300657740154832151440888732800267282702145509011862043940457330159172224111609092840906247294810305117492870755928260135918015509366892213421115531262992925054767573468296695714070684995695385054012036724039629366882707097749401563397467419991013158768293340023837259756618119892603796721960438926811856854885946814762283076072984983289588380905744770185866619345087989351946652397937410797768032269447405904663491993652211432983872468066848039137024877464000571700759325861898579146780387591791230195954657792187118529506248624761215902031350880901411108423830672972360087721523432505623958585625220212457787521750235319018555871934464842685817345195448125206057971259470005390680634561306910531172926579175164217591230283397810626431999309598992899091813059770237055125198337307922485043977417492474988216194775918804880150400766299072066504978289218407289691388149085245779856305667638219275652207874259711246802174350871214657064258781425343127057383472034197026855911620381129194048404458850762386112172423231277693190636998856275548851547025132440472029583534842531827879354421676370152915677654193745352762223182076455592663205675123479273532782116317135242673909013106197453185871196894639464336381795164026312860332668466636797520015208856712429461381922358683688972330699684742682003307347547339289304377721430933474364409904289492871436959281892476148653695440617383016049785171202487629549811703100711938903523935497052851779799785241884514273980413280008880021270117435288523808543688867436701870247214610041067814359492724609902550242962514924449146330759982346925765008014187695612091071245990096410887787076921607119801259580042615635068601687080467228037997525360058719415830402271475247884917281749469070488543511679103695652892224275291788710523219791141542993841075511293255280871932683866164115826703947653447857704586555895335615205110681936142111445539429234237180185609743462943792974127759793420382107066185090845606603259149071464621585579215898370790264292834569993495349152817044812123593992195675986102689933676061953845491943817565776838230412423256033617372698823431127813230372843279867862791352934856702451816753319808337811669821674823118863195246442642036122997769967449096868361011781187648435262376324749884492037230530278287279834664749084850844524286347117914587045257263992731857933598690934137332645552110166478218019961820576740836447973255301285754674083877224594364163424124833299118007264834544039008284863889280637131124077267709769533083241302083567512304523236998259257884451538806711748040473688080741184847101971357605634526840291452979264657880023182412109548967319102182520770481230304455960596104021265225937110556037604780232390672153027327920932194734096959618957039337568127291013444429772356110749705716994571527869518455924296273357628251247119817914920494109185597797484996445780085749931484265345309474717449924065040797501289940385771653755428810919042902383966314193662360718167143262500952870861371098648513373104472470302123628559818263695458412409587515754047199036318207098295776689390466730571316886687337604077587005039245530700985177845813327453604155276184715663295361070337553434628572196653063364765329102297379545421128924586178250178846359399403800731747821610055115148516554535539439049248003241694036203041165051701375289974246303487709405597785180419406170578565401113127277324481136683387752328257210757730543322017532092995688219907397913153025572260124708766329165245856464688113174341281720964470001700039626549889790577541101024633523284001135485827780783359386508758927839645049285972721789988061256632086418688559487526519166032686182679553375191432821275379779045004750938695194865663959327905065157617656593918897516039508820005127727380101187506425752087322993245445162390086899531787988750819275143844964564088927191330849791419174640210711566960551321165768394979297160044519443832389933612856815564901652173828987924948728245614837856447851438407399549602643999667534616450589755876595855790362380506320692368839795413127271638116592967246362232103882906598476145277148643613844745274633804079147101835045667632749672317382863264405485468985220541542556926727149742437061475721187174997214751676561471043035113117190143394053940709037589095772053205714867925026358980923492959542737842106228838250755460044052920146149168061711930930714760314513284080760291134686166906137056819593717355415471945671545659712924874787142530195787757887702386656246135134846451970616502395387425487968070783223933357992004858156291468457594359269132271305825791144659596601741076970164231492776469849484595162588899138123526333368225195730911489923101319383337271151589803053413830526358101163441989573268682125512471181825743782043035429202686692701855751863831531304257686513823318925271859571971588290995779978697958075831388541981931315646173910103073477324172789551208134770584257510089398562804462858346709341189889018002490565795364719524906236398661492386137478448918253943309825794477186017586024609094769868433693500298592308661493581294797751745550579827747438098642579248843545440622041441219298179650999751126446439268925347183013608332698033203397448296078121362975579128697829596696039376527443069487631634606830009884012924979151994802539582317048226944110598080055021903011755501541911851464102959500353278221157685934457996156262136559540351518141102147826142948677663520467227602276026812401828739310035189460948673012442779815113366715639273435078477782609324436608728974744022354834343127651190827269014274833280145276131814122989858546703255844281859307579218967526874621567855991797136255571194250358203078765849750281611892565497378365710791460623183203883047831836374918872005451523497699463593311178435239057456673658922540109415726895867337542003850895665924470986084294379513236475307958192245334152091588426013380923547632356730366751360029979658919865937366083203490814505958695546236154892912145216694575965980599046137457610338271009771782612423174701767008285448221251934804326761274267245317905624044873697682955880363216914616161149227768599591579042247275976609325252412514448704719230903414079174779487111930088180146529870917212726432449130539118007637906810751332528672990084769976463845653170827482464757276675668153084764799183919533299434577318417283370672731297844061940429943137326405786572226449884363573527667116491209649418182857294681000341917213256242628556958983239427212873381388227309549030594757610453684273446286074473188633727940380185298361674165633126530034246453591497376033379919294748452263524252978223959841704654484558791268879619595294492454279481949308859175871202732414000589420971373555002940564500255254574174036912888657865206910322092759232386155446180694649852608806329244855974354385266412741134536850298169913344134498590767606703529618747036757404849058402909555040745192702248803454022640378465536780177213230854492632559417548864200443307832790516164010089374995245054560294072014889409043820167898904306753400114669413888275655910434963054810533694027445019602067042820647363928275650374663509596195794142619488454601425116735809824533325593187774688350362020359652747398495628721613722791294681975870431038382032556213751596743285232851419338761179446245936362061251808429271160739489302428289273374556408441460971379211535022317046955200946708968505741061916422260868448258411209766682670074859292376874500892663346547518359717334812843390601679304187870511114861453064314803005206922721794014185615864492330552810023317781114417026571571655137314200492261083853783187077873552309194860764380644615558675227124907729255472258505472046812037925663397467897041355827627301290206043841947186941166478673498636642342095317540918923710445525558877226302727106072058075964114912256458853973849588455500232111796047407881561851929852253962468512563591392821209214409048236589206142677902680587117425908602767444565527728795436553068255853394598348818327658900029001109908679664156868173835032392304222864412935955820519854061917501198423512774859282832365780561971981103877270325468558870037521480546430395309519259573308469950343763108549218729584334517782333666328360540381936090752248675798145930742879898946256591580585178886650076496352209043764077172800994124500653561611936952553803089470160691673005007811827748463249709734904754146823602755663196202497522539671466103914003325352666974963101886866039587414701947209594480528287065316436581912838129336668381813538565215461319451465017133296894916003589170301375347893954439324013783804024466420362044804035753655156597676689082433247619164848812407711453793962204918464155820292813151395299740972087034856358954795172491883102013202409343898832238081473466529181068317239273139345054702688196070734331287069862589822335966442726534268581493124954833314567464921482345908684691349456596790273805457177274749109327857660856457050599928147027284887349584294980733718586697251240024169639861060147748138003171591958171958503063983035738720003898048674042478005612992822602099375959120429274243451064601099310219590933407991385353609576300194608870880420769770326295445145900388404178749870554876780203129166275056453911405079099850351048777679991659295425549729090566036544807023347102386796236313681331985705427511270433518127971858303602617890535327339616654704958037952745547874034189423924119230629948217147393393067455518014112108957349499541559746678489414493116969434239598272835477240161181808171514647685744802106852663417837791095391431567234791853430028842704554234084857076329203639107079865724520576158625626343123854272215330571413327782375798094757480243932577097118306057383410844427078174410710150700721568355539254826805892983452891786976908449174454285042279472855492526954173404385895072600022620835555387690861091094306062543738312500077289696602966529201246085021601582208351832229150964987714866096104015242265488402440542060157612154873125337529354117305667286187963724584628286319109842366206608398394234118858587748633492558257600498400587179783679298593296357577365079026748711342624639511149149308663831236890013942024519442434956667649263687401386012356324578859607232193236210965836569316815394428614361183714105485530733365593521735206903919742696325888962809055968749988614950882519705470485251968478466926749882046720069095210898627291642585855914160287125254898509672182984775947483932054655089616079458058414264237587994830436003867818653907640448632371522964731485096932917197780447383521938080745312963987708326607622427016641247178930748070922143584624198670247135538786395539035868288640165294536261292835201737264357650555392251602492041088180001961231235287631552123876397526397114072421671888209107869173389448935531727509025650601360768800010012662838055115335028437982371825287253800067915406039099269986004364794363699140653451268843702099253251653297756387656517875956248463206990595065535429819516512114327053060183442829910181557547305558229533355831816415573112641321314075544373854350026097581926774449240896695247038551486507158067081105981939324741779476879596198979686507549096228628181157860702674397969478121611276663136326096020151197467207793458079066312090322680373536889191167517186609442597194984384773178045371525450957182404624848409282815069347466688076378741555213528074653745864559273699274957288739839440529086076261367074487311638588189786041981706458150240061109063392612140683252163113789142984489441064578257626763676250105688290229135955112467278591612268000274815748969346402132396609904819463913852177583678171515365597960379417533643162423787640364781682976197214181430264141780479895629250904077265404103006148036458131459878486543763924950422473104229321895289722257406568482212669901499018934979470252641772470323109784093688219686918054817283058731435145957657757623098745753643614773358466163090044422652096239727616104804013148343229218807540790813034301236890130428606816395258324830100802147176130511361886225760056514594287755810487439506300101169587291089717061555265458803642013097204729841849543717443387435971230101972535744740934742801047652148276747533812700214151119301976291982745919543440677976039056899745038951139285271706335406041543975642248038769249262271393191955749431106627465142494725843314357505228700921184177244694078682476534957247129469166207009400151907453633343268770703995587670579640275165066245894029858096921941178061915374396155443657923654303095240301327757083251370143399635112736904993124760966095195580024847501213477608804603162098026128518504602818990234358428092148009798851050042175858023949294163807455994246770847926769136583939963458803100450150963309700365032498419278107765051146399120427030124460379716395818090286035977396018420163235105708110980791576779800590382481711682952224642689281990116123046397877804702767786152068647397754641586531732547201214019318082538053525130010358944389276161021525652377497218914331016682308607968774367016441168108308063276685884242705643732427806097716401657447657027476175349102226201560226401649026050728432645467053352096251970794557078764069703922577427076665191837845956219492834683521243492159831526882365839221100717302608274652437298421716047592687760974188202762953420325132469065593084074536525118657429260201871102161815411122867193281590619455558173277875690826121247399926137574683032861526201840229883496279235347171425200902214902752655105929322053310510927291898865668503712822549545880299347179241444389478588377982269304444567195449232258744586798360054733432185305731317531151852540538243290447724003470793249773211057086677871514042181130902513235552779984195852011553176058404001095836414042653250326747022970371173035226499437990560617256077093877831828452941508973393796084446236801043135487980218217407195333103998134507140112028637165159207515073601350333348090777497743394532695793771658165945646788064542600532720142741256178891679205243840381236923405332126847968261106633367218418121283675262574994707910438600968993483226213486187872384244062740187987567775458196793411676457189488596153947092731082900342861986422842333510738580841231346188258644866986158503917621608276508835077531702232950853196955383044236693331123656179778024767026547175636103723326695218571396286827711460229904857145704625653888768676738360363327538957340678247671994822088110834529091188227211669035853048688805648435735480134889946676070080543485335731322101686079482625887846567808212083136608647050363428464133866805900049923138962974424322598169801977153703798650125846366550267822194061491924805178749115611769925751255988358168670420953656195291562784240393722863153956410095013415850231262738450933586951124967282244669440043017636282965438114542884866189941883621433221911847231111067815103054939840930388576595012762631993777732415202911472307951071993797305376973739635942936170816943962600694209721461095543598377697740691539999572300473134933679128577998954410749032475666988682944442426794993030660548670772521187252456495843328657472167059041910301205394009116749019845866909796896167107315894388066183396258007357940008978976316219100847892458692336966271899664707701402512527414392109980783977805781295435382296862858819024150307235528602206063857860977286839962557514642144047618209294753065898911761304589075591772268307858935259183397473728236900057678004705218615828915827687569006863161365414128054867842026510962166065828903314071233880005515821465454975395240978721115289398682283231720121015037212158625717083054942538310967668925209064515555982148381909201422934015902199595727823240200989379481484163595127334924495724843467497501860662870662338739406505871159389831048871942933229071725957788608814860514929607075195813609355523905911517948875417146110017902744120803467231980952595085800253194099873972320948241625529796562355592930151110388729289789102579638123866574849404323299881546136440265955078185734310544433399455222200066073546563354059584503140581762759639867313708192550261288735735604351368375377869347539795360395844206897234464180735794733797049594339787547020597072321468142900659951508838577326053946078298702735934609832875695494182680272080399908203633402802188621806947450787226710410508717772658467527115653886580489446570426343803494062319716682163203376709369320237410433998840402988837179494769439792523484989691517240886930607971235237949805302944651020961104117859459921533621514880455011788762746928674102095143867839672050899169879950361167308919258315383253166688796296872134830554108531300336329100137510459719470135280384254343730471157220358490148382706772093951356350446532000695302455349897842009762901051955828756005098830816732722314757234867428687992866091479522942414458462618176156553485653353907524344950085332304968729912127736650064970536360914506771018862625599727981443961705333013203373134210408215423737031460217436556509493646635807659379306650994779420752661081785933154998192393942203467947183928789155115278233588015762006309910234979916394829763514167889450780700217623166791593093533452177065338391861001125362700836811805438529761900362945400052849449551515093955133598118497084215083548845959615886451221171745242860984556679782327521067234039626055926671688099844402212323696450647509625423666725833396259836234265923573283832643357715135849283362903171058458931288424287823763062086708447368720058397907074487066862289978637201923561359235373811941814294495317611425844601300680100643757158955903164906031488748331340761318640885208957877643459039238048979100049996431760611239687794557381106817244158411215903310300190992732368150952322762769967510807011569162258607339365275183153754734215149212513058916288126549231855354530904873941889366675984148904368608805970018801261753416519229048805878911336333429638123405875512004998290928426119602355860583362605038106777922037303646558729127359508690864897860739871991692268791221700308568128273627959082591904404761595334694234338969399547999348375646796311481056979390722541532308539663428457673038142114584266562780271696278480534119791675602398986724448776899452964074384713646620042309520357357005807062491572995090213798876818594030794381967064705069714600996086264786912692556225257614782272217393331724702424910519153052688623361754617549675387590531277101376258582024846026437378131584137536450966200555116509189530286723671841318748346858263194013585079634436400954189070918046181411669498807451345105018457709542283252955652759824195667082254436554884771850318522347602027624917198843503068751172400133191989915583511255833932684942451390127902709277191969297572249615490722963479537342861311843990581785811748995219745908702465406925382771141784444305975133186478775312829696806569471748119745584786879123603817516958797720398515160600702643022349395958764439330343440807482010552554829327195518045726700892316314539218463363966852414439284444877537325786658090907674721048097704762484908960318196862165324393913387820032349217986116983642559583383795080917692737851533076514850449889711017094597333314145562304944797315943319308224490355845807717661500192456782408329455185783853306453146727926319021761004140177849649194307941723092979219450636924183008829618725137892909655302011727505552428898635796847640952316734828029826829638454133360475543950694567899789771698968426972667287380668520023929194729122461943706249757352646149685618867871487160990085838945890569635067609383453496583988522165260384797120471328631827297705838743699184583180690873473677554844027078535011934831410692577662906737975672616665181639771029253990241132436354658000569338845331402061167488803204772459141108016912862096790517861603421976487658180312031066344197627081293059684740579340513944090428671763560461625552646023289493148306955619032794799232552306507866060212284661195955987556521722270473057411916855458490840878631420880375884038487568521152160172975836550936062595368319025879787558242587171311617523800338822218861429915742379573382698357708995978581144085316022390665479276577922952967356604400317745098304780426760248911248111352989288871835130800917375687044864937361955694122924226914277584823328766286626535431383946434128855054218402972214279959723017050739371195314824710147620430884799998653048166143161834573097094372750410917159822990221610586569445354364567244289438774931626334879659147148990050732074656763363172850436453406439260587996395307305344506268124157990112859647679828503528462595867505156675604865551829885604861185801099420237808265961052824997359339045479445411645307630169342556293972853829277132689320357752209011018571474109078354797846200046106534027304713937320276781616507806991265690750263118494307154099051173658493135475808999538334949538249384126387650164261788602311966774652117402541428716906346746637357020832190424656856451129233658723702589879351551058166502500058238349814848587736591519288347657188828133966408166950316429101231779449626642655167946366213673826091431238190061767966863895117626257367590812034040226949436344644826917463985731355659595105310735815479617911327625842047395482266592731934123238929465942432904997825945721475957960241307268640672893612853294452272530575978360529094160471214765029404250584494628103781928902902085563710545633398132242096461837790975481781475934121140783223788106785503889934408939741399363944772790005644268818631544338954640270347602279198334604161115848864367900177349873277051739295073974734217094248803437917242513087704512162479929331053797440874194861033536524864643889036394719126338532821024181931318631513973001921841011146485138689274525711821455017939363985014621847666078490864609906259556119452950589951612496732077190332343857784120199720714548955870363590720414440083827200330107610389617727025241548229665013226370988020517819419272004210155354357634882259218064551457769523462404714217479598845728518101757244410170855772389685783555686131577448153889786360207488867970749786608435274591815108338915417437299980062976880466545528099860829720924104122372273244815077940786103444587771054800458474447734741279568451574722864232033284551252240220561356381103016267969769791875395024081119734915011051159184843614894267235267395067925673215073515928877433906823233997301155485833894758035050609473379956144577821755602272490866203463657975608073618514081845974625229157577795007963660612339541843789376121878586713266611668941194032178690037722731486723986284255196222534259738400119725643857754352168869318534024314918973759881914037815096366876200061549817788943070979785537765539655362432944358758077234744447289273348244842218083662490144031330974442996133850047986731562935912469964219332901952987133994231634514927107063422639273548168102052124675374926638520946691639717758931726439430459089693460399709465805134836048222822067559030877588891941040732420874893277907917160270195786570981968096175001614115954699733847921494579951661436984817767351625348801307314815214454832286354919721486170373443061096947207947080127297540445695782118700601477811862505332529967381646167598375987131083841873909759076304451727124428438575003458914526865374448704555217570880751543985880685625438872084958063080974793922797661672516751559342206348808568967267339354760735257574811692597734700408073968885987089394870204680742409426395976619409587227165049790263489191043318537303917665149292995457196447836269866724891745997243419925845831286419162499908071395662021548035760956542272475667143527144432333736104474051131089726420202281900790580610424783830950555115469906857264596035165698050953897565088760212957891703142924589087378502224897949299790838828790538020786307506829970822184880114618051182394846444373279109553809232964823209431012070953231675475337953691175571923731876221808522117407068924761006911012741724837240523767563884204276204137420954760965680872782713715987119652459461097857762764966020664905877379547196594323149737506703848096937854205070020301489248120085548170078045484420205678330865711508950821447494094231826079120140913708490987208300239699963370049868689466388368415884055002711954769632228890076328125099922044604478171663249764537407933797332689849944266933421783159188076290046749557450555232326773354937499064812186891439292390841113927160129379176680958208811417314959857352298279908995937397458524291745307269821955874377239576649994836962846863655645136815858190047801343458223453353008347380347701281162977735712870093439680658497035444593749096490241778652121187409077970623928321207656169452343744738417777184769119615582713553924297362494308657810717455957298172581728769024041316114811910787921031481104333683518194914381750878028984293810436852175640445076370229485082582346670078860986729138344147719546384654603034762908218886587296060455889281688136301786025414255122637977053061177837127881452438774669565648303660456956779487352030574917490992126457374138315516055234816840555628228795662108970780430927774378201001834039933089765905243432577105215130788012178822412537839254179963618821667681724926250432390743139664917960618292642782231397380673148901506888393834493111781088517809670595385538398544778822139351903705329805299118284484755677052112982195460764030073343107234405810781120548135774598818125757532219435910506508896847630413728317661657142888327220213455914904021485369296743128254109353029860659974786449554763406055992631506638971170112415949319068577023333048093839821445627438471333878464827349035024810201001557161004981790599406670779471960579878145050906257129312049614751227399215872180717762831476450789545583990672187858800105005989702930170189166366489346459589175783001258892022388543377606367008066375035828926315000886164968918261050395003082458800367991226861725859206790066438412080930046669362860717968055570068706260240335941561425108764543519426363179104657321510165339124143364916252517089251250190910981144085707025376646647435526035238977763031089736621868100405603748054866489244299658328670127056497195357993011860212156985578122528514289801457947147350472593763651259241587004121628812229364269286113060253683177892994440543698607876133616810499792030109545043409859169751213660718474313804284560833357325150038288236035874795764345865038406406598647748711107329498632169325620321385830294975614275844229503370191633289316747789508604857474495222320456162738829252591091417323962726231974531057409719479896825118810766987077204938671806120950862589231039780154857404378796389808109137537093434601024945964320402961350884383485826208887666332782537047095053636157098943774851201658460437342959467244690220520136626096783182119182428885328069425380703421015158226985665941043831127496956244670037627778065094994788305049020196089066546384443549223044853119445718904333798811097322419515699720164530672805777181679142760255761950839711410640006549314325825562134038735294306472752550848842256991421434475101663123270993895813367031271282901957041488467214712482490000142681714446166787828789865812292285927572317851478873484454764928320093228626889917393803421883863622969393453409306603809150368727857086371105746717241298785477819201240187305417040629355889798495356325979398047686198143501154576205419223142197575255032221459319262288167517846927561766156062052851764492549018137656826768588417464558466577708788571389328333084125797205071833634883570230967855125621901845715337721234873470595380358538908108672516392382129112023894396704499368517362111227534686982233529762078987166911600890418395223974987180919928438892975851981894861017243651543207946877725225558878713058437209999379070882107314511400848596133772970689537344301539866289518103063390121155872767233306057712852398712596918583810945433589276174590317188975520573626178668571287683691682170744600508405847782639680754508166703221017398665119196158744738408429342252384047595076291449725551082856044274158766209015446505393997322528807836371445125350337870323697508672292125035789160684227674004544493843551804708528515032864931807012213991641033215093176700153079229468959829928475256138277498652085991687992908819161977150311260845752165719052362630755987728302901758933311178408069877607470363384724206798517763746631507914262876262260468427306388252864203365202100387607745777881805906889382839961543332736040799838379053779434223800935155371325323329631561675271621792694638140415191297623996476722638569817377300622744239683266659004666133435547772527802296691675099946946723467005803134759487619232166801797498151226692503268574507288803642084869447727808135177003814071881759138198244720595001472224909132842687811137359507427455508373851818657122907809452196983840702502050032040453743350023594485759277407344577130734326288129923498767034576072384104355870200700089233526514526382592903167629079485490764019071106671628118255692973266938622560577071429965857588185415369546964748221465876214241541825736306164916140241052166817647478711971355967367319153201232729056903738433090979922422940335331806997894506225415747779080205836441916418514745121297818396176514760423659197845158138391985929706285173697270933843982362542387445728924711937339699500514936723268640853507220096753281833923559867900672136165480007445224423437387085762791603238780757388671179590104355593914945443564235542117358014805260290803811998521141186988033291483036514853136761423843318825108885684740710165126447768761867111667842425155394136796972611557883218682212265607857610381107097561742921871436754521890623765158984266659764976222988414683118385663366586567724989799501321139637998969511006550667445263896771632734206238382941273585911429505128625607277492092749864444070193300448305790339200783134575243554064799689919258235097409877352031238926199346340604067039129716661975870171437230189118252560158051914728249352784301161028244800203314796534339976134673645823813918302089731811368925157673941245216140235596133444442196730408357861804643113075305333406468704774188202312114906932371503972653043387342773213311728490894885054806826516418499885426402613820731896239565389391274285344823352613728471718047229255227669251343420162431376247192720137313281700509313215579285867765098536811308101096425551300413607873531425114492989928744133775144347306649612118737272075538433842447803167426364596092929761096482296567371880579205366902228988455874248505670899837641866893137271030498592215032825966081948899030909524537457197098141246941315234677629481539256398988279017691459853100317812437519089346208118556422368228629615557881619089047157615905920682553762872286980530357772054796587501544188879704309268764333361375067149075720904736145874548910601777522173338079258912253560921072640347173640014201391593814353497162719238840229270730788108910012550406972282977250166369003472836543876056361105035080895410255727035448725751282369748281481873658162823451765831056820268087669565402034182204985658057896873206930752673171015078958590477085867810748965401317764572702447411708581841432626506963765432448862892543757314920323922671367086079191955395056237803954832786322327740201460951161323680762114448245049855261671547059574437194959193160418453715035265670866819625343995418290299439867370108587279086023758769283702558666180725551455096494451844506041560257713955515960810356624330630314413880624062663557303555948695408633523126359666109076251890460994230051977016527006126785551751102148383192730667216126310514965978522659906824753477265656580877332199257954045506190617764699725572725277987852848133846172427682453480329913315655328846696316193706989489453650458832635377203245712463574975970277996397559809218120154485294927214568638430792523963487517697504467247403957274382997408429143853863895361270050666792298218819111118440623085180193445266374264827558076795852238983552818197292515735943965915081564277381842286948915403562855310583696995688865820860623099482419212612972428860019383893397564687847239633205353614709559878846663199796033181274690720481782573812767067906237419152117828280537352182044204575117874102347285534579951890160576211912369193034842589789357865706962077708183639566503726972468935297344678540170137117859810704369300669171657728545710634518237399132178116052822224019822078555886373646260985928401238058309061067886856646483895402383008754573288374365911145898780861397142527912592560646630440071912803759005930586395541800169765410444550069037188923040708044360282415269016132066772622794208195870073434361552838366794975591209654905584029729789709178812883606832459602305722275812584376012044218991842808445414066651116787762902919472672350749431736713209791350526726027810289403338755602996782239406021888091027944972321097824971234408129525137333499644230003766682384389635072106905639096959692896113737957583145925244668728007390973943264874762243158449500090371137423675032094924765730328116159211474841131551735622013388575223670056254691810371342842971323816542301510999514060733454604703974233474119500747768893092603387531983217963082241966387606845764774472320169951037981300804568743020556936002178142117326890733977419431424403395118221126197484059732146850051284482575274817684413541857526265222229466429236439052186055001902782325416559483996681260379018370069960912295189091402442982351026565293376832726151165601297990295403842379696319501779879861890955691424753324659258651452838680979758407283537462580467578640555615806600009962250892795998543620590518636949943785320808284468474138072195114092184874767976434105223797210737909969591198962935136451690821728966610049054245945528146267254884196143004023712154218259119669103843476664347522993267295926652791153423791718605592641651120891000090862852450878249864119029859012697052989049453514838410377314674353603795412330738930162767908862334398576697559795853478750650350759195802691474211590832577012858686265436157571706753922835048925367522435258995155316460035340440012924372150244600629897745522030219579884531221272733879648923705838170521826089300608056100887435063807352623673299310117479813935436270554593374757988271245998126035817044065049594454523379815273942535546909035986453058742720055061353984124969786872849929770945137684620537790993143657765247825781454330745558818520016550961939329754693380164388984902668995131646570396039983608704308279822108997631272844192517129192493033085292608574508079126934287807804508119856169135400301877998438140561376927611896993357389632570444621358346958285125826546068273947450701454093013056216602319472923834654049305845117184112121425369671134389942954374850712808094847883135247746638253768858045907517068828612797053250085082701605968585739776021852920527811497688345499316512121680185242813307754124587354855456015735539348511378013027859965230072415809257325401909688081724329742507075645670137921681424812352917719924030463258451989413378166228814246452295470220731306498913637620202031401119267826048095507918663677985529304919682087692462708524484540607227838182684546553205029073141902891538330393917590147304252202882359330347284515528067804052843079384694251916171395451134831509887948832216365497936750873779959361964410914503674708178460810951569133073671302018169919880551105171752288049232523882545508993047565721121351486104880558319294150640495060096599213209835582621273406913311395119094503422494133124827842895330575179013500934736011404180052431531362836924433066899432074782604586998060432707582066671058750775964045677465021200541383374085120566592423636962301340472815371733297407803814621566334881309916100503515284880953941112511741675981211217606749819193537271319802540184127990022968753696654042108608068749877112017698766678417833455263396672360147800661374922336737131144257088387730978169290674078868800577269658543117954859560010122336002698145921377904659845677838506432132139333491910733391608080830874301650377368039768494193855980725662257335214528272651746118671732157608894647831866426436785119899779052979164268113678328267147609404183276818217520155081537949470253463177791643631645844410752650243205009311530754183309015130174017618039043514954279459833295308257888015215033275988347952717674798399461252465119630652168344351568583291747082912741600380582076669675492550866046800459743538413684176728032920658894100687491430112793553908707579283545864567371422324830493765676798245820380559061712631628870499331811933420523882490725109461835885010164607724833681939578953875799937390288604425314529296196901676214907292651718726212130940864154125595423564451079779066965222374661684733010201113127570392574369670858408322302097505610563408072147303105347044015791110536944606706264119103434224419996370336300357898450263682904350247307114412140860298903791712638224390862686619015104686525507468459120330104917662896901851555940257904220588838292592754759950057506606568595956783080477407883085237021178908527751736552983635855673703226626376015412176367791955632462569027789214214932328239258883863919701139671159458733383015911594182019596515936234739777812487116898665233840365150524394675705329054687443088730435446935250781074808866303748924785980578801755000200600234902784101393745062196713076234933358924767200613893430984939912795251604156656423958132189933955053530753332551475784668174181818759921047521134094189498540165197933173560619636742183756127700844592131382309611437889167424188145804815028436470110692934661467626689033126237124648965663153277572038697294098640493400849005106793879919346156699523522558143236875258518500469391939620817977576188968556631658517971515881791516587809273543891692320794645134593536504593476360115716005396028697791337371028868977255591332160815642065958942211338561189663640755596491556326263642641287580572493204929823104963244330180388415382047252326334894450277100887280045747629114805995338002238045886479597698514581250999483990793107054052827210495738577008841978789322797194906099516113132959269998998047524812304788402261870534593552059037284835750799845824002012195791406445043320266559283165820003651761669795641960769219448283666825869569437149816284050161721181108788970343640117315582020033193111022759626179747875193029774179288381544397227368310466908816798936648514307667303510962116494845431913402595208390797697806266504522879076894799063594630755922244218055998206591421872321537846910566454824330156250778960322027433313455780155021350150699881297236500348170485581820908138665133441959631838090663470959196327328293973111678187716053452926070604883954610439296422231727887174598282231088678877463006480893838887899042431041738028955671399511309467189762021739482899873303448647570826632432255037957481717247162123788725302706764041538329267467436398555805339785057014707098160983877103842452760638143015805935111052191095216634126022807828328286980684705274092075262034455600194438880643165035022804910801628817883525437510652784176238432682047656713380749222359468774350070942096874211039175595241198995260963588636372396404984523630327282857395432261830662981698888533892818015127342036694846346660196018873202607369384764561669029274510932995185854689101592528399375246906915019359152831972576900804215430728092617704773481875355145195105161322310952006857009086077784149162295244699909702300761181948364622735859725451536917209218016221332024776928149812913643514630591696605884549264793204818077020093778161619508414527070458843543160130684896809112152714240974110812076330418980922954834683825867869332652388719403269639355571819931852926347401295089159532132918153349067190223640332273192166856639764068432763588146016902727629709955890975286171137572793935959085222296024812931928985672525019272080163780374160444407321298623957576166995508654822170112190543608470535804950158957430705984628083885475128217820916416775684282348179260595613561426014384578672038318948898344432923343323280776667614691749352623949041442384971057737410921473877159705039361799691954354809427203063423169269850895009791685561417168080428468497196049214069454407890590370463623399299842539513253320326001777291658424203675925704731901545130614088593308409280470106350112509129693053436549928764351864469947407879324125737493098851112409109358558111467172211164112470566872443384834815839811469763527135929295049871374462195160401034006082361110447233154318392102709325971191970068474023919618916549269802612538468296181952631846013714292312133896412105699143437296738954431478007201470851710147317235621466829563312297291522011025588461561800965369629133670768256208010521336635257003901271496279478923574568246081152935386635437613142428119025153062650837980964922502407070696881301566806904768749064538413509570086565479760067628215587260125673192235425434980818571996661727452024850867600219905062229679148187954239584260141417965095522886209695941312473632305048713295684516442782709285728316160921243325676527148512006715109585306254036987157750749882156783392164417414561145897563144027679048298070228551380054649860350749482389727094877842068161509335862389571027683345375592259537910360594078755217835111899787660066684658475326702636803687131002467617950848516049326683440419331793388441479394259267846134447102575325923261039628446108388227639213920940543352454019869533368789118683673573577789221730285823495730002379550124380559881257752843832459676524907034748562182388092406414600409851457964444943613868288264203343735798107605930435790049949247612465798634612363798658976980190661596602933372059031323876876314329757727646518448259775631527540301629565657192418431829762068045397196875516980513218015032337706247934590777329573281981417782536681330803695376389671211540939408264167225301347458803628707955998358790796480267068657470503367579395091346112232212687526756381516903714376836528355821009283945912937652999239451347190783923820546938614032522873861059908606974044901207458667460858286965641841689666328835453610375529573594170663776471086519800072480548513055346378027504020813494657170623262913222990906693342584910831019097332680808452055685120116767102616782359421823605541136175284765698221146104812004242036477138287016525539802204268228753098430454316970617437712353606584302988985122421087726309584202028842938873155098521532672285236535848322381754016356618154861051241582706504623424246430419995538262007049712492931093495658683264303473508734204021110055139749336994744065658454157469758732609021741229135672392620979530589988485049513543757314869153913403519733084869063481173147277419867486779619055381363488081603890991203376119779913510445288867845460029285071724723513832573110976670672568450125459009647427353231700006717790650598927230735663791768335283399673734519841779455927358559956076025705553319792450406900483589669467573147970826993652773708171280233491430157924930750272512378408879241999606481204374502285089563421245113747321105514847773907001053586250198134871836436249206227501672078209883819910387320928005786706306288395226590086579156682459882279911194488139879694001221711758418213666786334383144838496946172197417202567851194197280228910831283725499413322273009310089315908334618706912653070781249874577727464999987452672058691365904939202602304019743111459180478396221942089745883480157989808900527510539590036205007830615874268096649478670896251954029680067345329712222361645023567279868382392368647631977989750361137040717541640631488123235409279326293760697170762098033670752676731683536362290028519216404499070391799398310687221831495347453665109193595765996264734469227987141240624237752387676972907674931435869994487673838929939577890982717265823293466591214882273729778132838238841057361438071106147760581835435950031780334013244986805115998453275810004578122380600522328567349174156795753840217716228195254264043298076453078207602044817117396376611107484726254293389414447506962256628921325790109703331190985726846278338311376826535137404368898681519264134703036051441912402957336546234096571426125504715565266612604890055536264250232384946578028491840877552646779578289274891623070925047463848303107148059121966363013520388029479712172750753402553979959837186473472541156929462407452495515870962408203599471365774824218067680942959267625225102948075163487399667327566191373267902908794998473424778518533547840182775919795421941248294975961795681865034374263181395174863577428107381179394901263074514281530974359985910953838245914529556935364728875895937888496109718563076457137437307601272605770919998716944215443566256726317126990572518809934584978356938221650540029681350107003082625967625392683379026347468298200517093683386643263597022495598578553303056199271020861806567760681224996737448652367075120645080449408702643983735822050156268086837605693486428761474697116784705666956861192797881743278083561029703860891039611309341783669937016130370736991969921614496512365865597678178865557528040043237755209940920648795848097289358380425168470249947514330082266997701750952780606044706476017742061410899683935391617662482186420736282763676588998010394551278227191802960527432237926350991491807605920235136537747381356443867431460979763586660014702041171235935212992198403152071956571549735507890268111502812620957929819051045024002780801042122334596568281092286303392178539478204746587258924594516048930354148959151642865438060553149405390121260163242460445165114777357319402631153983268472347369539500636443815402261913848413108601729157596382939456710898595338903374200449865979744812430162308573684619274793675741348125772179097715675755162619574481860045896405678895630896151344429954527473364025351326157226883297467140864434698309104632557242324965704403174530888537331908990638880231013996230754531650638495453615871125116583420885459703690515532599439762481691064040199995455269931495621650787635842065708370416565482516258330455487728689888109100468699360143441678869940892315538065364585858330489813284658435443746094927451253528223805061732032663109338741052775750037574659021373731958707274126342438717156032597829325409573278926707283317317691887502732558286081422937584799522954367687620486815990772498051685840507107284626944699999010929633511344290613089204457664231580617801230307557691942134889448923033256685763877207588664786097115921962506444402851770529193454063904435604665357154142752190833012201299665744296488985952936230235028677984315650469898601189833136368471698015360101657158304100531042935277619132102944955989644371882360981459386442845106482763762816244221048076320709926979127491153237449619726073349816225827142746551604179099304130041190816375312442972867156797760826542455875413496800073931278647715024034001135717828198181306939921775150352251945274073523893586575648890443602522966175689874751738144128025580656655326532759091419032463285567691262418031332922823185843298881320048799006219752848478289656526158926143234294792253063273920370294780676800354813824474485118826147047368925023713827500294089648085663131120666666488897586661867035084141667299168840477824792724256198324751894423279517436061726664366836427133429060641360793572707803400196333607421352565740814481052935320820216273625661087878928247211225759723957907563933240891190584012447992879514092641011965116037421598141227013888170538466909041536916285282428695754944883876860167835683426836216654702447114756194220839769024735712496331416010431776081291368847196480677889678037969501846243339586829042030246943507599219572575951189132907406954982224264643938309053295096331208375665587634896536328589646342746440430570418476002389925219515802165164482703896767492133055372940721192883041318549633932059984010617820238519314124158583759254679804748060404943457117217650357985245945375163470771919430817877972271148425189970825886464754664541315152381743159652786354148946498691931122600754812987793058761629108726816611303208472888307975943856830848165706803484677178969066454572096947821069753977544328192478925969004613308951308107276099775919689086946033605962302021498678905409582761650168828340109525511740531771577550898048575526562376953938118972529034556284339766923357184887083602105098003238628485730938741277643660890700996776385735874322045148620243794501316287920691052667587393802339686771047690382070045625726920427010952158965258018408851081024732342554696745196014192775259628756233585133542159752341901741816087275930147683697322627444462683950839492512057767114026335720455284867371116587900449252069038663527708896330772329052634084762347454547866104579500164220777758651502435491433128477303998260509512157683225609771129250807195416646571715739318770174774873365847260423867194817264985403547065292591236941392264288666296662977335027812372921809880745025576938241675801170574106499861419324079976028956035716972959734141547367438872852254625140687899209291885179811980570143839123471222247411086794301866746560140297595666112256907511086260672170282874136109733346925875312865101308449228723026342193981693391392059569491543925522688868399756813253896742123318119527361115173660775728350082415137418208786962719112275551178482343506010997874916355190207533682377838161013887046812568607793348776582108765662045191316942314916524850364809964201636566728881430277572448668895160619457695843033335241200478232606452974913801657246835078294284374546406329597657322619847216780988990469806887817653961487082529456819236941749823946080056255162507191981358778454017836558613239545146253169239859494879237244789823694045051371975462602448971271819563350371926438831189238907697739821657531300033727041485382624642242726070146133648240954922088569665567488061821717015327426207486242933689338298393162001122629046612589270399448584555031718857713228167868789276347308433547125015189902703771069737542485223254687882840172210211497482555762675341715920533867770128700412373910938144972851179792965711204789284674778462100766242663464405420210821325473744792553101335245628451775001919527287346116199926017981591162719561326052531947299675108909017606293846771542673356783566668854038300948567136347361608641980487718648800728913152804818899950485666960035443799985417638228428403995964178915896852872745414061325823911885979220111106921703807589403069451533811974776817679909096409319925476176569850773351184932163402420710405899774531558334641759144352710261603018500718793237098698947017844848598040736589995407932118712291998896439219908343826521676480203324965211384165161513631308060842776945030336535012069278523857897023640280356708786764439298984581876109986319508378584081159659445554384185212955701599587420719765437158808101313769047680000366536391698869337750365953006878269932035379240590711539544131434688934940714314068293021517152701985486445459263294371197174125900669512546237728052835414630828282510461919720812759485398496167716676816438384555935552854561414129596527530438735708326627042276088345733076558152364329466913965628144235162619385708286929359302927347430008702262152574304353820681787632366639151645329602705262283513173405451811783245869573523786591633280959067653904923694274288027096582666536451392698072090284542735327105251738872839740188214494754849386050099360085867287899835390431335382598794887727744165970487654803686880227220571189893448737600754218979608659988895625294327535851746383928739419912993530515863693020104335782789509764685529611085168250487095603333821984744836134803796265933812235525562173423329708083913660911220039059536097171444181472840331140203867974260447653117744130746331352279319691168449914040972563039987167181030511456517181928084782774481757734294012761152009487079683487370135499072636370713790991161067658716415042971084308640790540634407844448707939337733219384013188266963216873631425547464510849313940684919020070732277799224583376611515048860952546387378243877060517506141837943740396723114226883723306092754190154228184042260432966085305362098755943910150541183109115767268399025898216383769116489456568582203751165769056495328162784061550474095193764999464642037462246859268221326682445562608861560723178493799338655230120350358191848405844129202726326073340701027482509302349846907519855147334227405389805563860238329193844529911217674010305020031440145457905007775238766721009836921428843121562455630947915446326972151913498041084198261607877942134595979549904663082801715417972779487603538976531602969963101667443650842997898690427469521488552303267651814330171184209109822233475857565711441917849733594081296244538443220340440165184836273717125398458900858504046855658155032943442598429458787906394913570352841573301456084860162884893503164671972695651011503003344319685843215728397533750482336905429292901255862765649333827125381781083968914358327689348213309486217759228349733135374683505953051416687359028288297809590028774394005515541242417667757218819357502988713561874993704588155135175719840951636693347573237560753228397758772369106087869574035877698739472772183184469119521484791571216609876632913704044415507318494537645921964833757910833341615092806560979343011192493103071193717608926665872945107341973086502461163063776421898955623624714350414843377112543345988022965221646447200007080253081841015372242535375834114793194752037119674266206695196186203976305723720351390214787758732964553572766492373108030634920004420178273591735778359726167368808901129959657113712202056309253916129258889282137010762043376365387705317265439176036154167523311281016588752932520912941617116987696073354745024286489102070131533069592397299570190777761593007379268734128316455926894506255237150440468853887205295849143498767085171332636775599922266622963491787120849427467421147534027266401438523287574523132667734490423071209266033035197810531353677525609380592629690690313532596389191652867825762598112019134779640430747221757427583693455420151457266416196981190541799041356196050203612093999412885683659459824888966497205804666973309660921463991230341838271604536046881926762882023960605614223778794231308706697679197396810902040603580229808070657731600371056652531922987671685264461051116320477067539260704180891703843320826245221352590474005955642846562778758224499493666036412339211698856253839188644786403280528227514121176916686174491160208616551445427376325073592680185616049970230318234013958665831721539940901971322029776517675437753126560560189636248349162911115599456120128000044508597172050747723660291750697040579210207842715638393194415731013122098530376952959679205997565715494096324912224422031187571733960442336995130797866541339128638385720081535227736315592390306534655851268435731191949719618007600924895319509403681218829348218705080279137198666081791071854136570038443148204229880911856218400810280842946492342093624593207809631130771437547661040867008606460588402102840278303400548389180207051412526816818384716846201809682761849188523057255312104179049759665435087796165853989607081875489204983958280226201203404290950598238009845622098200905195238296921117499748939737428394806309354516266127849493443547735588790634369588327049638541194869658919340438653309102900712413699187909587916018713276009711435617733691089137266305193668456963571405328433714320674216438173898467020703808257474736179804611603310243854710526384599274073443504848627796571452086884582518571692836473227578219052999044293440534043163762750194838037431998996269018141361262264266496031834665045655661619072302461946765415907318817547945180098640020039888779053445050335525693191045135700924844848547306458131142774845400484135572490348275239728426651765849235236662000337381824244701418113680257148252996549883642061931517082307930537249504119843840423561302981937130194634160308319863966617439023512244585017414821741673617279817806372650539819631830491083775390270118477587185272123470037519265424687813538556948829667775270271207824470477850394454459743231406636261652043497574446520445782781771277772638757006254484660126876285741959070441975584064579545968886804132324241619324269135884742406759152952960135392696574759059595283932393586587785459965691077736422007640782503642630979993114929363248590524667512586510164996746776292420967263746271183015938240400990640220398563071598612656520840722072069260754521390814647476076230711332761510368029401681186286021954847434990984151943905764534152626548989491913126803305649673547587453452109837760109402249257509893074831112719475664137216598207621803430157010302100631757518779053560085565735451566961805043001413161789859581845415131778843340800221850489898404642946534506758327161330490245623029437311046419700356406705050792643473653739879912714051544426002199079264704215181155850969976286647693750617261768588603760169068667572535572812608583911773734169663244775527450362127273343593324749020976517468040527699585330635540112025402177767972416804885369847829781574045479665673936660772617025865323214617266733124369137901772499049135267065499065757295817165743768434156963902924778964616506441365813349235962442176112512966932206488273168325654615946984595022300182169575084785466108631987249779250858668518358590415530629348040724639305224978471043246179999100341124276203258281903372165136647802685788481601593660731804682878744401082058888867996502739909221706953750295832707590014883132453681917181382369133743381565758708111792675433109664195509172011096911818879007567511884692563426351300948550715180154592613724346572300660678494066979386674643396274289477925328139101394762895271346764548626252243898236832788288273682350162439739877291658343469441525130074590897344480742240753741167643106222202404475946698579134157197594754105922260587311081564461567670229383808571854065659189205099013195226173306627599842238773223208027251383474406787599837246691740458502434275419606732462807801076054525734028190644169785866044181680283041959881837668520726961281762396166127955221756296939460010048017297274895083373459541233765424957718429410424358148836957879449863713975933400041862856470902835138020737843909150911511500140660034485297492012464880159684858908664728420156021025405215276640478956303855344940852099010239339655962743978607085024066198126384992690738884285616412800322404801098342673782744613948412063065985539396916896216798742671970536578767795942395414959676840782595301572976799556592477421390223686347932864168974666807544012549368029124954897054960976913417235953310072181321507148730533674972883234543970528119469930435998046924236054258974146671162126005792449453236508869999962703223423941930890651731980072126133519239469396285510013265327410610795279579740129874526684872406190451603654384093030758309839686884047515869132640082215417098730502808610532484675716327412410914412622483908055307895364991456575097314749308054556159315043255159665765822720406236659530430639650723158995163353614120752547179251137878611764834766379708385397298448066276740398512720912231045636772526197714192725610439358420636276135315920772760153754034513853003307802133759731985132437622930596957335232436609152023647330829185722879295180332895896076736550765929586436889567880774160927099449003396671071188175888463630907857461964900557995659296478476430501963951441878951581515056909765134196950385765569279634105314601135717410593907940794182152397009992956952992603515771923047230053436643213603871785718135677050749023755196414038432355153958311731918245852699062899343193276554219635473702239778900115936744783703088697719188514833536237490625008642744158740471834016303846057733985766518045284123780177054353505283568444479657103983117650494542178429840387867955989514255449732508641087568722966285205424399322525799993481924151229711802480878243891347384167257735672974371521323122787727335269238665216621693905338652124207444117028678395167903070789110498661005530410849053370627275018165526639963251816303005290075453891729934497338773134808169146641877411025938816585230895799494298917901900656585887433859570097573469779906758914245616875002305595381143403331413888556558984270602113800637797747254003509925006097878637482130675749929874864916092103879424873770617064905294011424258538023672997816528317930708722394183650949889418206695244049262270043354242245205480893423524330586328082159798618021452970101250926360649441903203420048884484821555408791995036012182124711847382804146149606586495432689012437530491537777167714304901137020753330769779665561620408944892758613103671745415263873683352578246534770523324476933820794720395465161774293912285471190476412971345900412844019802493250597455193635644701703480037853254708276027813557159459471331853084496962784010717484448765264161514293970488130602551640965127268094025720509870717242075220959892973221194791074833909803393966363255883367785151262804278949010061051375583183056300556875909105634041761441926892239160641608212661124652032324720800555854878761430119050794112699012256026780216580039145182014723056619975120676720104992330231289712255954706384164039762233772294823525194843114791959377879842670030403050455256324787417246659253863254220915344486138997163183994330883618230432250543866539173075584421880688815377102402564542300593031654832921261451570872833039420996823885519213429914159809418465958220930987206625030047341902275829372289822004830842283785554647774998284324808155705042478406272626501483732353266710834195798445585170493594217125995215383909745687069224844289060705641488202929823871436781585034450182572908735554709986823550106769056574249722884310576112500117686107123068600604549994312908981423886449661334392715554826359426951053265436044206164274003530419807919655389805648041523629287935196038380691062109835300834078868033845112769323352016407960017538481922711210162861057140452546427623906799798021388958180819527377670566492882334001534542486115211968467289872928757254088684284509865680509260301372640541698897436405772903771074417904883570101038160348473357601547668901005129659284803716163910895534163963303309100517089232525005183077647482171221489826963637528556248251852572531993212031424715872699963708287052995359448396112361766642133265489287040660523377195395034645161557022351806039311339177145696798504886642772238933005104973041103119846841034790739687044022290689867125223231135598288348490447639466498702522634991391026076545484452931756114954970710646308850742270351350805186099968590935414221986490197250840705652695219779867367777231464686742746890636770198325798025121422765858059638037371439280150711231900229197516664052638280446825132805173688274904903534713223417069374731813024419261416552339719141562409535663383099697999630767723201999919347642638279626623070249978198004943793324707141044789743262554516896120411854978387464726100304167731634251821425787001433461943574814807887781120055825218075512140806356677963034255824068920644609082293702444055061829515313880822516513479317880849874199460662679129752247037118234430436448675121995207840354120656469298418675495219490714343709755912729273991662916137484708472879139437150044989290095379262906917752727692352033577480120711389632088359489682390378768311708998568008283693080144662946376255244296579246772690200813133306365452436688307154981340217685226211102458254879525452079560171651428081644693595106332553251528583650709869878586364279924496559481870519251375124932515809946007987154199964477510271412678319109707744325148189410412910087817865648816679492144102296343704092499711856623347480278558361840332280645602826424401555916156225588387906622612013164056922587608808627554915937315909649051292857973394843334525601386523701626699926593484234269925883858637833955016616842128202638096406633564832035358870266875762425345235168565107348963449227769295991917664000655472885703718897804119886994391449453266817859951994462451117842392047476509677431722210757608843632806955530693519653641489545649280425077837576961670239022464778160775500184084116169143157168209204741940041656585064815798211041111041521788787468366108372818036416448392685647569514994139342934812726651246273804736600227522074001705932350246605940591846128374325954826938901365655303248738078885087181370501930368876155977175165825430419789922919074867471274065954529675033652198854245944305901761530182266125236110354608499841744396641109267697874003352764808487526459632749333489728829993911948642417997693296870632475409469016845734877133684961634376214466823608346326193089221536052877623031294047565333849741413262336392719336011853345810745986304592206044937000439379545896551782936669643269029670950641023286847831335124473349006067344098074912449257013794209693336440722837120215372317240325818451703215100552874621652627267355938322918144754107986117096370632449706602981754999642222498890937016474443713777613156214854737777685834070580054060133744811615613236476165419497801214251557958356169797905884325615499365435195537879231099210052423926617937969354289523277395274144677053222166081377105986410259660456471458709275452972779641572730756607387369642042099055316767119187811993692525427764054342516841529516339365070571086886721138457904163536940419245405089424320597328861341379283998438550861860997704931886280314114398199679195222908924315923037094388739365942615738774330824905275325173628161516487916012788434950101333107193493501374748317169817367976375750043704931368689828705883904941818420532744460395389106453046370827903613227182106528283370874494675861270323890531638525873783164859874933760544371250133484193698626902842982320364654104972589033196484454180067159227259058414532215856614489058811176321803994592123186644521022148101414615152066734609002997568820965071685226250642705903591409716148764589479405091726721100091590094950496304914287482618929496886788160679973202018246995043129324878193395354620372060325459441046425892015827862996281934677415206902259093853654317767361621151734114954144134537573386737072327048972562723752362594326466260419972422784876250848638254721983750732152726835940326764735427704410673469155065496050837812883245554905609661786091044634927639109888276899515411243243342366584335460306316560770342522839333730027386502853148296741340721210358820189478610968577694291239525220568191304253505032482601818926089203926808120389835449130637801056124625753125253224512718964471034335178631832650530145907471352328665144950827430528488989896648830688118409084728900711536546526883517087093172054364415965759543311653858308716313585789690737989990283460858093574564532724779781680772474130757241048002655285470826157603897979742714152104571395023272698497461306376051496239460056872677002515030868082223148586333807949692639257377252388184986106692292409333075988505510431768905613674455762881608121151214811088418911247764473246928154707239222484797232934565829916037261862574343302661436978749683772977925413478077783583168457693647787829512374083642771611762321117759219301041722479056443844289910713639893628072445504831171066355218848078056148769793187248468240826093828779138671942069923883138942130809724057915064715258576428295537036662908285546878161428400658958462810613098693894912119501983368222967122735526652038866844236048405875875137257020873725889892363061684951913329823405803630741059899704548645532440703770056596015379159019904006256493710752819815094430465370304170841938560288494364774834500730849420747983202348684771274427302187479110944671374096283432245562920503273175242088090104520492244221887536296174347075947297814132855163915415076840649973506171129318692318816295586393075113272807172890192042235999314518769016172590920839798032178783453218347318220818221469286278281452074275694520144874794316565443226129166877519168180632777828636159391185978439109627017270474059248034348863103884448209979469007319339798820321230730404154130433359580343981755024259408404638770993080036304628390548445779465910619166030306529499211660481600700207594257635079307637939195440304768565251353924611455103686562936128362594447022918896246385288179620144926582546015243753594154795405444554938361961053881206886665937777481095087487859762808591329570958642541244802491245609078918245769713180101390705691110375392164720793002349604167306322548417128441623114930328428978355712462064888860133967002112665417684057827847864232023710706245241010176093968714614228695871699778539319760110075929563389655091479373995363352903645907252641630155138868914501084334916153593006827019796689531266280259444897360905327971121563227729326641995165289293982839769103871110617131290146195419955446879866483836850136343495358680337091378057523041723134810098783077032832969102993254832313739096001635880444841827863188356882421083761222967642317046209369569007502586223116629480569886869932552224931296244437124326335123195518384569963241581578855058038233148723940469096576210822602905776386367287644863888248201686398152110162070763448594953100553564263589813972336902441844007053280941848487103688595825166717718472772838694389928520787612028107879680657111775730732479532882295237515049482049491216143653981372219864659793165701351166170656167052998776868226023569049923499629275610983344716527536811699114408070788866825718726929978097081894240261092464781329021533548529054017571445891093344264921794353618368022262042891133837054445815197104670477952423156005752850637277493587718240988065668289102442787970242349473204090711018394418733554915642583085785832247781986874062983843265953263845506510976534705252396998756222929523788319444839583274103326954062371277843912908307517482896808195240137306496046665713934777809099911856226344374524855441935135832485451675231157769601313653716583346301574341802018828363435961303313622356823408504481809493608333273659058766533502178787450216602589052133650391382671821542219373473383106720290675697260608718201015409939409404007830526031132122415890579671984445151679124560325352827781193076932456173998820185726536346638363538505430011010748689694805358772751987567421928713993908317740525630655124543271638163667385633295879093043315285362906470009586132390718462613950401576958087203139903434019386985181652402026215373672660926894270758855879292416677074941874890921939522062157429913595329591312631630455318578005246142684930656006810839900065967653500557564701032033155122587785611899786337167408572861830440945047909230201585499361335149654469498337888436343756153432328059738176445845938495800088945950827321640729629382509833998667248870787335409985586941143740339272924047541424906333378611088856590292361665487628031216497948219865284214788648219076304039488519089967968632884383372664288659700269295052152701912058073406882683840110610351809624204793943724569804624228530642334289511836520650978019368995650530986286135419597207820837287222095664404524500592900767435243735797956155951465781396421450159448574252953853465516411258343047085345103500466484316335773834549798318441983106173077526705528335942206765240861254578340610384983872730587427499821073668295475939227854895369398093164157376090102580185903272552666189820408750636509379601028918414897675875520662879941872018850283399827953769910131555857847149866131167930667946830605304451810671929231546522927463524348561248869995396436921364911408108283036721757417749374909934932999371402375793776136915790269624391282315584848265066756173260411745956579031921366472716470939163483459880274892981353976428555429149289929195002128000357461697031137426265859081609875204948403915522912397722303816890547474140427089270783958101618586183612091423633907062571593761887888928055074762626459650570854882773008478178761448762923091429520911001763969312313205653189796156476792965314494030363760512214594995177824830607932606045211082655840670664625396223282954551761231629155951233136088074424719075540894046721653709253679149829904068288659630652537495204915436949734563166003428691615390784149016132256884333878853809892290038054384835065838543311513255758826485859610337227918671337839237320782247844219343088869294117278251159295535590027382302337036127915693940050388261806530522634493921103022314030249035404092579092959250138506296625385104321705691030998424963581902259988898501844837273411984004232534701123969818887981351299763314989186740025974678948051758162547112796026185342580987283285546574701239497175584330827777874424693029506965868515920207119101589328573921274627376454374759329145650462200365286992095569186326391345292974893347736175842824845001437609236676540739903162362021363730109238013134031504971654594962331638780778043335568367060228109127650495986290555364578127796426136129946464372696566930861742524160509121256560866079544472514908270786917504577316876546766043491228954338844693552294789471193710395233981480051692639224699645383790864409304420690123602446308032843498253273285452353802771330846501438543715786504357627549543708493982910956823989832887436175914614689669093833320770708536302767157275533269506035942262704379637632742601094346023355767448362785200303297242821518310042067769944161756930599113404207882084147246445658037613866709362444980185288188142445629341881599278998363304989832016293846685846592664860782883935539692608437274549377485649911869951426139251115824772322202444269427832783152205717705231815953959287839774289034891271167385281207480106350318552395076819706495472167993571542652187576862394451719719722364074254439733253448941947962184608283456362872144293545679823701767811446390549030127252526011958852768583783461787783781698011915944263466344477185934236763955387304700729853243168579381538182195709775922435577249847978951465589768830557832866865562161702198945701330188127078734132587806733526206126633136670911760341624814311379537066783727237196715375772163538083692637738286555481134071540344861416432117536297174786730764734026424960520595964688281822073982360543662683105679192688630074717132251228877375224089833358240223986533941705066618463572894920630292397694251186526607095795177123983044295954086174103380519805463399529633011154364379521049520731279927893557317221762782191003270104489827788921959528458128203314152016418972548483929656154288545760094839134119785526343548899125108644347697738867904815820945913627281104275320814707523142028099002708326356989089577416544645501791561074112116051046391275775309238928395382577638303685665086273428601972662336082776062214400411949412970987899212301666219349200639187724085665491081710074516969816465705853976905881210700699850075420695753878227731949100528689463751551863626959219625746820990372652790359172327268021560980114729423185761302057296550984346540571536986796397127153132773747157118546031749486921489524882563438922917687146557806107332525178938132193713542303096749717115754328605061382100136661385106668417796863230506059226193304084420416461365884973483623869179908002522082144061155780593832664957476859645313708582649650602802903260613899087216301068670388932130701418111381243988743138186870701324171228251205978514149712664823671690509581577202691096900978632281349284762362451586217869766664321469507845194170348537466846645635178800803818679833967602176020325316766226598954579654357695027268462151368947508774042347695549913899046187793687623348518009777696257547032137887465634979147898096990557236854003726592341636400333263426542980242164776757047319330424440328513712429884347701962685009854128855174033446581807531568933704669566282296988417567772728010889629041388567169674172169274036938160051892544807868177957086426595281254011722212014067192704746596794090007533497318521595026958912580245521808447284618005232833264283690207418966014283163032913765724122851422165045939314374017208265015982550730344812961103765483781657912194154626885572962508847587822780565513249053413422702249418269663213517198856035387345661855010164641929589675131880750264115215756838388839224941076089386156964213127864246659569644556892147149215757786369871004337321734815439352053780003982943332165748170155253825391097214183071358196250652242771622329730287408370301033103983564646321760559979109509446442080025438593843399315539905341110755472469093039092083625426820984173850299572267362106053416521477727637311144655174182760832395238578340710109581916586770411724616238204693293279993997844952111710503990438657463157759481249733885451511375073608324494575665894129263605623278295997899111079174488156734659510160722764711001122616704698992054962137058874041223807810465297132440633349777757464593103327865491010123885997582560835897300028701275088248237435866888065791466182947841003003068980389890772888939117308331503949529365376679840301558251593930456808067809944996730767318375636411488837293208459537810507489937063300119264575458293259013587633178707140342157281880045250445845991393372128475669615051676536081236725932208430516707925108206522914434722455485406124198900684202095593635264690793833740611964011510862852565410519377796686767706423857623473389197203556322512570405922151809665484049173511606824527856643214270314117424256065223554547626605782293588685917870499448272409948581887435604781872348867644824844703449578924057178321514958617020485139059688777668765656098011453881967422994821351966560878168752041037853869612435691621276231654997243914192336823558299657842220941661442991413735152063523193123356240562970908816987322153660395718241252717092149447879761015893561807942489539352439911198349008575126645043963559696538960812900846288809788565241096470170411443715140921992476251329632409027102545869973047018240147733707784831710644790732021739033734726731404197227819537404355565042691805836091998084177575311876405947297183434104842138177419200091365889235124224449484402053171379983815775150724676347297318551663109269906174193257416040329387302786208076044131391363997727387204680174374547997249079803740283459170525087661020794817195246266519233724719736639660997832969511990876001082411797663208410303478633355275481249292626451755886772811452756856142341273693646612580373385156587793483888920456758674390130830018918346704060042335552103318915127812882842506246471613216281048438200363094450525837620947399725014724405636862428288511361073170928222288199948660591015355689880314920961700674132847248699806976891989398861638596905979728376925655519566398093644250535681419972523009822259442536920712245384088175808436502183261510837435136864271924278893066954423420563288366757658191022467928504553594325584984926214214444591581484342141784885427243510495596568963723660958612145884067008917974455767039620404221060736457263373360716916056540338317603276291408768821637357709732477037039750752954998049694441691379259833754041620907849441548890311541888730583893697763535850861856212399112503345735871535085937186531965440463600986386082149495953541826554904501534711786176613903045565068130011783118031984307742127848642959074853806996103692440616921181402214716610866173519706347067979779798241799834670190309801098648621629756585699010419129116521799455004612707262546408973423465011872799983220579233921520449230746703285234439391891717403288667378170371170745271234779361790073471884445961266841419971359984986809068938597533443679363713122730690503912144908028124224778626887329728540589953099380189723681353128640788841318718205760401941449011632530418260838630696104997765093688178373161298956253147179458206223549515348479519140275186794655427578057463325627108082671461400683441069455637035001185934070983753833955109927343125591447794999267508089988799444782928979701437959515654497697192235187821618219012909418096457195963395449540270707489018216467309834114951178375754888060683470829827680911556452647594386368018566425375309888442528139048874842638210930891630100801501921938297148740774919199927962021963804012007578291185838029424682155071010147976377914992376600259300219893521206682032355714244958290223600452849800298063391627931433651714621526819143111528649346247859142254913329966253569600834599931790214432863223197140807538763386035354676306082890546670897018312450413706532479994570119709826380902521232439176168687143413614156688359500143207904101116314252943429619462920370148585872642791098680082234117094013106569280002666186127509443392123260263267420096279153643662706673083761735015707771061339903441982121780335783457733332212795519410166746579834851290291961566840846988703849055436314641294715767734470773738688551968780453870093569426586642921537247024384047902400144151967689977981313327322101847002663146988795076421915532017181531209746882527506913163670936820363068015766196411651560274175639172890366196690617766392261320484929275773304845571749444510858835863498401807702631611187124865861511987548325740859199012947475268085302672524815691189087773758812135849275015986197064802583912076552300389304236085784211045882925297948530964703458870749315156798998062995624551786911167476871757879486589386719142340447382704035636456610996444109117829168899237778467091482647675112841582380990557651306315065217530012836453369321436950426342150595210718734201651067903653347402458532720599657973625689149074835322316205334860423539555043503167735973357439861505935596455411210081836618830029773044987164664516511464170004963929306192731129347766172274879580212840258693428046426026391202601724158362467820491382720284596747602201185254340798764854386243224760151248158304140788750559487807920237110158530947147322103157325666573048243672213388506321705710820618524003670425570938993515091281527521644034984708528726086195822818259180150823316319846174603657230814770036888630142755668560630935560824454072131658438122918383300127010174116687180477292629264407985867808391866516969747584722599189110735715730411625031872678578073058335024152043563230064013065240931142414323470532226173631881177851057157132503015390240575015174830936894498903956350935265454069193478400824000834904894151801527164611181720572546520823704810047837143950459393604479120649270228442089661564103633966203813969971237282453037066657494828972225548160513135979307709739961705587676808840506019427766111886304081327979980156434768582946617479076862295803208828060169911360365285002601247876743944984037362164062909589914997763365659243435247058334010177259342632568495620045203025679225188180077980078971380342927615935861854087530220948132324263475663021388555408836024701119557391856085430338591212468173469870631181794184972819778354053664575595548222239786347170708208178735970256518615020553159816506410813392080121219072928184081695652419500503394805754323572978286411164354616646265909064627097595913806455412739845227420451940614220525627052170891758750390858402894909668482390226199526413090311658409171385854273682512152071501961308823363851945986898319645378890292053208689020006885140193579085655651776111295996390931861528480478060427089246160954507726883453636784550799557385597513025044874157929754861375463312168643822517111490037032140452964093987833843923348528246600370124795141328676809934713177602655600792169350697363230881238346110874372651267476011440252346533180051100630549888969643563697988910830436873094724203014988120368303429070678127054492420843964109479882949656065970049080394181503914828253650524986758432628131872299434879181548359051613391912032884516218997383027856334062644549608070994046176682289565401324109243304608132312307832662533558361040063539271782367313561147910988775272064811862769074057761388837223841720093203381125792086628826167864865056596685781624198896264426999350547163067448424468301564814668138489213559232799969434800600877765004110462456517879596733093098205854785955873864213792432776482519297632799978060777751750883384976224552619422806102381878881492783099104566456056850480829289962206791769679345298297315920259297174990937222375430472973041424906528452332681789555559483880244171362685462793835020228817567417935414457221328536415351152197807186230572988020871283122244752485870228524490022081886237617006188392952763203128686164053000021230226143788388430166166879057474474825903443200570536935610930025826832559135340507324956176344762955820809507377567744374510270329266795576234225716208822606617631646437786952881535652642606421162546843377915992463165405815887473030896975353318758053738197097218810219348978338364693036048862048351058544128708713818625170572208426945027462173540237575105052858706471017788965414934550277749622170027665316364606311691086616165475725713217519416482904108783324218575121986875986215321476239413983723657271694359694431747505309250012097595066526968577470421653922446525522028992896205392486522811527348245402381971974542899827917926006766521281641825475948142337200074193553061230972737229939727395107119119573711882570141764576132394430206756456046268579113446829805464253527868310480339977513141989222404164977084006290109667519422338166982408623886500252751583670518272291343449716125781661744477626851503027460028073501379001009773952905955903308450919934812629733559859292633068915008164104807977091278868172822163209596612232943103409037719835878797312221669360276858627320103954284518442936476572588289629186119977653443432818626833261842316283370759148769373279557788543785172935133067049015647879672678400874557713314401602512354858346215048876171649962686948464948870918544429356342121218240142023228605377105632608625899785081540265428608654966720332249927593034839445774467508081213387987384634586205702652341493260188019324700400721975245755997641454806149119043027466418804136971597344185203173541127043261127684964840428492296037462777592409793636903925844201023404950869787610628117654488127920835474076636532618130612037655306369933373154516765051757477998304139433233350443604384217441538713787398572717134504973911183414168446694855923866616825849671312080437648091050879502304089142377214446371007720074736543952498046938360750656519933710808498708799782658378849432483746299667348674769055575594106038368352172512549939365972749297087182116153044701831119568609350718479083035686219127191444040467696371512585600457172983653220215583205960990102952887640880593742864942922797970754569332623909970344653265050741854394709511512711983658830959826815519928855507236465820828987374037169993871110329513434693921140653196007957900580480329816326464480896371684707309214171414209199874551944370210281970259008494330908560949692455023761744173179860578436002363002646105294184081319452310960345134094220437565533072706957168853832298488154873387897001552815220251688605176933830927125049643319721011443926437467371254628018472243585182289044796188502778523087921495523758313025049168298970692511489761334339063736857751266417739039888950245508607580024583669810295981219352226308668606810990695652286739552107220559090361149951507576732336325004666642332813809559253182464427132996762802825231894399312634367293332680011095068532568331013760545668568765961920710620248190268022047128854489962075811284877353154585357158940891099851807623476648068052064349836766848735450850286621604610680730612950196670799232559391051704708046048785857617591998263769837337751566982284717855115015141282691605112848170848307903516455167687574462166258339204995435211971035685577393552586492770831420943906358196361740757839447827367442697636100562066986677534054829192023276241836106269795606129537758501177415385989789434983688801616532972522002760432146122061046369784946535693815352693978850210974830573053121703095639490129839955278108059654375226005560301442397226578304502009324600401459934512667213505385106199570887604362471551752621978363283320150470501892907470278310920619426389992288165250339503008267597485883892471900516412420963364507429004737601718355887338530634144799766692452945403262874765349385363728211215777338563530450329706281063080747836345580767024584237381933036340835203008682357044412213235082319853663152340785923561798096797532377608293727261507162534250658033687175502486414392835053198875864596645629067545415458830034033912967316220112962326689446047249975110396440876698087486791410896430800493600349895354760393625418361433642476235641289139925501383825207674606930027093182883815090738092403945267000291837599595055070247499516901203198517332862508994835497061339833578900782454168045682632992043614276485580403528214205635708284239178917240258434058241970043885495491856211261181321980837535148285079694145562768161892780089018505366699393944120536726715462627585822731091839867913360055046229252753270027540384293916921004085890254629288103517743181881011958926008208645505247336366462059252266765754025227281891179818884563732130388940800983047786189687732378708119252475970292125732986549866271160686811457926243620196932946941756218383736126378908362919094570989400687523980200244411521980411793253510671148094928920464021416502675252200941931784295717591994410408129086204728877333693142772046347286185266373348750648130457533847402343728740525384664725567297086389735252153448351766691657712942304319875109370731355000170085860021213391335887323633497450897105177116086140053028836334721913319428550601997573062988342025261218415683446434170193724028619898893873613392352873585049593234377352984037500429192516458839987183245737302532344276476476356645298954302512716571920265759385232266881532833549066777248641480184909395521204849077492124079579764905878419362450845991340443301536882538850994424232404676077183890886670308294515144884207515122894777782747849234585309465915437623386271255000125999358872049340228112219885281995522497990129658847304718068418379667952151611688238129374741275331915427763917230094628443058701137893123111690608498880391262432846378651788143206812734777910769902368685830590680584527234565090520859973745462242704178129034039853231306324471646795536310174771472232701990220666519446428714708524941176341570009320458031048849315181953107032521808758353961957900959790821678955889746782510153717352495531326393979295191959918182559760472015043411094537142381775387358598249167920421833118975571364389343975286102992496454661335196182825744649240211245301438533996734309310764616680561844926488144489344587221194927514634777147842621603752379292986471409311852959704289555712851373625143690767829314273197898414124680130418475989229906098195594656948349367887860577211131753801924727391926519158906478269119752334147281041044266297937711554007138156402363246948877800124329434083946561417530799122132338531999442414182801996484069274593723337053636468256759863020668240580615003102615798991598225657558176298588566366961246766386800008456694541058563228875375877104432481930273277437671877220754944325912846314330158946966155913065351943554346829815184267793107158055744971297445478104330135606094535245009911859722209588591248398872562750836696402991045858049315024060445508372182772890881544004172448419376910930290588743920283888611827351704287200498823345814926721442134232470978805779967041679809150805670032865494957560086106151147561792082594134568048299376417645470397625861126651685621711658627258728982184417492775755238573332989244027500140180839901480687261358480387492691670991109122093869102589897770914514662246471921297522365618157874398150570516048695005565594063462372185822483442658642368492980668918764553375452477385588349650447364818057830442606346657251136501907950281023731377964866849551012681602203123962042385552921033032812110745997107013486916737142313884475468097518195523229179894591561886730130040246588706083924814179724353927037406541038514324353336473522923638372104030437928280392443833305727019522670872058232225106557518728222916557387196012686744011580001150295892068626342108831464135680241356056062927115980686743031710781967688244967858236280588695075428817393793529986242339740158432860137369646334256071039995262307570678619560154611277913515882884967013374705459731125446180322081633718816051549314431226918718824073894318460254951451010914415602709380632843754563289155583259556040843242181321951748115984607630907138488307564685708623751663022598156479866905568310263404178611646640604974261861958721809758740919595746890569869965846189327264549204121447929658504692874951055075817505310452497220937862320992029238450108673790913845899766960805178079587759900547665050777281941350935142318413259922675410749045861414353581958820909716874377738965176647051721418021587385017453705652410925990263951908890559829940300554371062980164657777925152078524940327327363317619295028293646343201039842803602709613839712295933151311161041980416203738115918410121501030022384395766642511224101032671896421661902931366453014274029836233126654518027570420953801080769748252806908115740242940072375514289142099620962267817968652799718775677115726851164193361249392793068164726755915692502523466969888798871976185034641510670659512213598099711766651530687201318061397796575352101237632922632013508388308607792470577584959381484969519429124340421798349460658852716827287801256770490733039195250682762730553689639886914611705820076148355146116903238532390616320754731308324903276194730049483224512498112989785203077016728375428341194644372249220277418048738643807539180485168081892743385312424440212294308826226415478389049723149000518244148003327000871800402772505497537455999152613731994834616039851266718472836553001815306690100035650249506996393136773498765281872516749480543796699260726535363868816867881231460041642882995904529258388631062969115326618447010263123854951252201882888198932886547597649385390321956137741816716600519619140085658065368407210385302814226743328898915768707849984005020338854108192938425884187648709805439442485314715551759590998639975691631036784961444270120384381895969513479271057578334434419531160838624461914454521933948607821798052121558144298468217046950491427518445518235974467871308870816990109619061621269647731465978945816632787724596995253692088679042827700516986090807585596829437287249044945969347410641662996860005741030801657374911220686307638260453701658854807730244516806058768821212071078802764832039990619084302717102080768474642087851868548947621577863941826926822461896582833833386925206438013929349675426493018684176599687108826583196697791971781962966788622014349164030157426645116261883812513708368844131766545969937626647364499892814115310349730211333912012114342515561889664193285906681572184733970255420481984929829682716069658888214653814127755151848339921765582196157487602241657807936621095503688540661297374379913177207396424170488667864385095106372128135142236744962678316978230265096086837405886537570903781693518725093737050417762362005096120178186514224756425539103452808536446473969515835866209429360193576775544971411468811194682487139378543762567906414216236398821966844151006793983977419297069492980632638034257022353534053618717247870346667684229024981150824836022976127866026362445170294461903674703531053698011569711379582928957953250351691547000418851404028225115747447967757119192583161158514034265173088236936508067194321177204492871490909064997026567236861369945385761450970549355107753668663115874174889548771453752897294122158671655549349442201502760329081974132347711144415367903897548823262362707461179191604284080391107727228845835752375238716476992669101619406980590473126409604591570588488836993776381911499174747312397179183423326375326892574794641560747139510122243579975535616282046588177103988447033959940033363481649949119322902650747873851734570610839775241267285630169575320585823272717558355333805724922741248434801202041182599940090097301501642852941032049226087240250437134677448205730586535899950526041047881612070328903238275120338726142021447932933944250688252937522009205032953433436890796223973642836087358437316482602211227510344766960890456533218790749819572306106008389491040011096179012782198288146217820443679212148624592109264272813857305133685041220221263522850745326746820905482725100983532728724017305410220803558591908861095897000567494359025706104683797745357974696610138000958615979738101847866995986657928458418284636211894359870147995359115445424848584471294475757190824468011397400013596413899273582115111216361802301014178823507698496063122265314814545335840616982737199317052662252138259837539234517697296779510456449257720772495192572153265644528507019910230541589815500222321679279401936386111824257112605988243491180073098523260378180183151307857066964892548223974617395530516846012383035138636242884375665870633971973121648819027497845806661310138862050730836174821391458518741363106030279103089412403854290189122001754462932157786979797830624781314709939320557307239384577951952521483427311590655029383472635649090667230226678818605256499507984688540839178130746281293835605786413128760909387765580552909586609123518723252659883307797091744357822437195328256279933956272439179744946815370509854560625041285689583331067433716099673357629361658581453021334308598136380801326129886109206544660672558579171601834146900137122328489794047597729131244046691274368612251036071977794505512165703513254787140620304037288026812411635465976137523900799930948920111011833050261702317304397615134648767278084282634733554711465918603291692841196166867237017093092421027357897507605972265862743701260111903254264514591446201251264934343107052248024011566480936533392655036506128710547192935822426845281916866208680375479894323421414109381128897797720643349669095701926534718606549086675861376273671456428174121694300161351722989140459488571320828070602261080790370596235096236618289290613501917620176566292550126893102255515211074079161133846087887899738837769406147079686322361174635482108507860916273500966013998400802400461682694475261569251228190438914955951729729466797057460597980543937884739224070407584026630097063909766571728880115113183637427221962137170796257493780257507034123205584934502640839176294395718148703671445068506039606610785710690957691868702436817153414636696450044272582128069921356929721281972821273912104498920372819025964630627792789698179113533705118378862658853008219061763960398643562695034154774938504559032408858479597126617394884858857935576546928407078506151124783602961254214824396446125776495463879311616833667666967060120385937592054584195192936096729669099990262431387193488078431859796163994816513788102985978090414934001162277931935614301517755023751438935166870329760523563763622472043074466247161928061744140352839074217464994252622727069995960161408359140857305991005601635737261422279465742940352147433612004689248468396929516775879807262971348396490967679754281059626908532364474917618941996956339242366290691038236722888836193986531150497888574849774332632646677585186918704597858371337132234839971186594931049386076345354600508869287075917946514054410080523103893263601071531113501113869802903670232935724810410514979941972090337258967127825465430478646128413434659183839997477424959912591588470680117682142139137905768844968549735955409600213551358358712961095045667062377924015335694439526648069050446381055950105509866245019720951019793362977644761520848325542296536741169597504457246547228220874500216406753654779419234907849345465850107381556247414401102286291671185287848329473891223476122530458440676035474151681621710952531567498498334295888297748074067810235698507875724974911319427908631004284421203783125435367185552010207829269474294788801681056829747800196639154914147372853084512217363386018311128686681471892213929565180710425052499419949258486117877040011305740307477495289692409468414874077137062854023184950489268872915200086957092376030563786484910158525219763590537386688412764102183591525834157898299525884242002686063427357938544298375714530282589564244277986522216551789668282690784206833780915442121625252187426033390185314745121253237417427505328389317945880263186215815490734727960735573216885992714996196763437610127173380688082215372076797805740081822739149818460934247336531765045597242831008888749265661633612079382315212728656856438463547131767225754381571835518071525798688773462756462587135911578115520441897225078874520504517672445897465780675546823312167616189526933487074106491074834064846487566139568658444978324072449717493963902187083094771683779641026660708473410358428582062346234751148750878364406342605806921523047129399835787741964010745386137250435583903877654269573049567853475621490830202881188470152539444300917269203802986919512446700069204905252492336854632915246722496089736680250203431248057155303820878247295198475555474465161160037839029503064335619742703248304267657045592631973284310782953433048291326398581811882856370027213781549887398823292695053905067758894620907970918022913368453029477469054362381105107092813429346173452138613081232644616325905565334950037074510483171900714011626089082697547345372336207514466489126571526643933386791434256077469453270987862882928710890507291949195064961733496889106158540719402273829443867333269105866666199882893728267165366912271956800875046045343747567884233836296576707048974422153864639309466438581396513628477267736722733264757924493289013482407097909247121651409032754043686910198170122118362415392578721828715004165567075513778697451764420144758067781354766670103266641601328045964876418623921594006585937099615263912118766226281969923173571200236110134877716164654057889401602979125821615039763139356826295703098503155167582443460920925329869735252507406977686765881411670960374430681244431823975705123582657177089045286407509300915475243553477901526436005069213974375996505732520600121938482330645435226091029657802792595668745354858928081941867408837738212876513182771872617310507167490377711793097269629859045226310856226393951061672433984355730933883168387141694242361308950665308607517867726015220209399682954924531113899649195116659860063253433858558243719945667399684048907431762672448929214443330327838615487475019527900022740519023958596902305530578538995740308343578141562118931541513843700040362537630174471724937896103454064137944468297994630071303758084009155481889939552846127834910880020668287361274169298814260617914351063592920051641185659985081233850306528783555808372947435358210598283408676819475048963783471052364534679258265064811983352779923078850807422710522652633418319621062105179494707416982942617642117434807781967931035670645764693365303126737802306556108473933125651089012227319590361428489736274049145663007069504833848932180574198658624772275012095661062273069797100652734668947023470259484671872154081884747133281070826265222818816713497543175919790782312383811335886661414028757955496219374841867568563447469320294470102312212428543370577712368735138150006914999203431823387654636277746085097819398386424464945955085420517887709288214118381646002842081384629276293992608439109060960195013792472657658344513450497811132985047995801354331112818719771634608974314134929066607432090055177954189398816881683612828389270430197964006451927591074355658186198369855744679541211650603216523635185316592865899049662220238019187869635989970369856463111715637024726327136479262622520514369033053111145569074744919025538197585494718850304001213331793862936558520810539725889249811331684747847152947332853299375770102181838084956194300994925638264980086131722942896417404374019442914660039793127771564192722058796771166407613542395650491330148564747515096474782680670829356080466824441756622006675021253535622909516620941793988767316915404140165883715607485433626079475500781986599375364736329675540559959823772086354820744491384241369029560020864339545749319414205848453711918329676549162435265575346890356465817906777370741488352304219428510880926212461797494808309168184598415220743543134093418484049739380731095375151150380777457737770039058704579635840312282391725468877768458331491283341096388987399852566506065773166067489744193142348604002612480044336618855531164611016035947868831124243206678914305326324723837503123746141974902544277485423223154547151140113954180256892535279645646758539609829133864112699090786312934008789344924230836106620312570575711767421913250109551394224534258707661683691480671743459563544959699009647004970176680339258524970145387389856928457356999243204793014114793072503089411060674581738876075223994031977637362721188131950704391698593389814602549246658861355803863726652532751020605085925785183252714595076107715216854607041490445223144849905416881420744459199506334200438578900685567847458567051617929339597860102286611117836536913247503189424767323236745613694518925676016881640619258797839589452312523130494478344077370083705931956849499891815585356734596517680188850003180143202344368589372293701647148555642968070364784006643519794154347755007867172772115489692276940153006146219824861642040405932703564295822542397931915218953770095087783324105989762371149571052270143539641692262376692010897627931545851099124276775634993793432705234181137136327215252592760003843674547521501615215890364241401120077731370022736334265633601153874576102607438652616597533154602578697942585452724964062261090928057699875813435030721113304735342447593451598209086174514336946137742187432655550134122176445987910148624318938279941771140715234313826206248933614178712986235488058909125329355839253863564634773538183569059002436938588900499575876891204926716229256526243804515987764471788860140379523818124512735249196076241266064527656603101827075824323300765739633224267744761098227272447598494654689762573539675110094634394096086586646845277952732499020633087618541042383856797745926295628121882972090101987055913181750066882472476530650407788840887184064155630057387886625811465370785122273338124587693067364123809448616145820273870357951064553715368045870138202833421324619996671375990846974997126660676323431942902117816908002092626003081647763584660077571835360465514350754377676105614049787416070657835464393481356628859600392435412776772826404986241742964715542373149311400557639518051760072759828614930069010058781128733195386830660392416301309938217055714410354943723248213713147189637985431129100746984280451634989587636325448565195266070363044711508185015883509894626475798586058862840989148620911521215256165110110655948237166590688989146720619362381169352930454095991688563478366061756400671895480520919835092058782450152367056869609984697672898083737575964853571176480576203478107692207470568845486711543117064568230599316258862943726926659960087723868151418027488949613129547911555368699646244489854202029811821460187151914006048273869962990252141642127120691069176014017343396512615016768106345540677437842179133814209032284074296645209868636324681106580971695308571291238317091638184265251523672908645337734246382055165134057827970291280684812530804670661646991813710121976888582418493078795802983522473445443291304245816030587107859171996952851151239148678178090447646733726253681075689752341768826457337074186599732398278425977955625333446039281315866118953922705952545237875605647856684132747694318901895662456430415052450172813890494518754434540969291517211086096747472733700212201115448509922537786255084985458809651074572750657243581927810382298577448685186048421348862754127795296539641994374787022664943662348074933314574494687280229787443403474037692280129096212649415097161557617049073037411382608073152838783619800777920416984157110291710887262128075280044003145921289358308237379884001150582332619739937470754975820839204362699901108117699785430008850725131542349409622189337742788590972954794259015736704593655371003752627711184425216439127549642144706314425956928569510856899102963190554997527605473602397285724559464031733279324181219750476949139173385445940924379948607508560282180361026888856282653937336877814259432407234083779249467857034939730287089943073971517850545290514815451088144778893605081356241902808716127915869512416770726544298745256619952223125107500574909708684150374103112350851631613039689444717121719964331138443334478225212535346117778072593874204375098374239640965903086455776566629966902788696354583350411461302795039915264410361026290128914640610302076934766338862173762175393223291151896289898129291548020944245866425813077779681304354399086574730175930495952382130630207765185081919382677972745860884201571066524916398099114192920890898608527516128255653963468067811693961931609134183916942508094940544989302766955747430374982676545066391062874297675381681853948235092401995358771936381375130798005415125732517214356543416086488589043946123945924680584999458009855503510085812644444330292776926945930917925844843896375018644776802862302386991293428913171285782909260633667972907597071687587810646253045951114801868243991796750894291656882443378977777909612585396576387168718482270547513119478186657123264213851532099640199572926693482981453206896333905550367839611892607423007074523327597196576020251435320436621912066356727183699981161804138676364062622330543495998268027730663681146426756052152246255969610796986370279340268178294397076104325638504525653011815894105802412771417744614307955386053401835097192965935187296407666564251726709142953474680858533440689144577921976679921040752166767743921380944291848347148275870118182778349686199139036565455217059289244031396997638111550726322384319892724859446358819935676742057917336941192950130293038831885247208320722549812728065501877630283025321079078968495783996625947559375132573983573941641623301005182259541536505505882244727991198465778989273285953610250582962065467515571459652985875756631686589533631580529026343056585320685258480183358482946786530012805301801822249686485102826511702835515054588274775322449373801112387636969640325978682928550658275298912867389878550663211646261625225770154005002627063262446435297824724405424707930515265493288284446803014065624976688774816924374273363268660591043732740756470846964557650027928791007061976283628237907782626033929575053510582680683248582967660233914105138088234393711510123622904715344101470503006003795582031862848929708533050839183747821668832547187153312415843144577961083298404764412025023853957305210598422230078715014713388888819766398060698522490358846502325458954023966196033948573403577952806525667820578445544579917356480157819348337494319862183563695181630540656168018728200959746734309433917413554020066181359262392632071656714616091207603983166854575139446059940981573733279235715775763479633784670580531036733308166475561517095787054525454081267648779033945339434604252215688464415771128252499080316878492777784513308252938423455902333168412062405893620689419258923835566931249476484953672021214312391467697408862921383723868091968300633134821177466097529868077661601276945176425008417194154819085612995832142604870528467539853976478206182686526701562909399970714146783628156287074443527710465836824244935701621687823052713599054366387962254917981359778432185630440151786957666070042600577186097778813891439679295731027989698653512050718297477015084309244770089760211562251874416851753433555575605969038921577232712130483732608703085803646129348667085085169815623000639395984761054395381494804693527844804528805596345949219350870817104358785073703685819105010956250691624878513165071186343044506574396495468067189237768211772532949915187670214060267111499885945591797305589511851678800574003198857346322920818674125997778261079545564002974799968962093522481662962244135764537878138823739443541696467345603166486474114971930953773523057302103589854872642370741722942066414396395284056283212955754669335637159388953391784648607168228929035187630322088980838334182647553306436297160432933397212067570303706037837464305344805900196380832750708120647509400939575506204914737722723902801432102402493276462907780009104297067773726053844437387214075498379419065161470325803553397104359943370357323274839026764156244916438245910223298384297891875954814299387373075694420672200722816003662420263176597054138336128994526569290441983749843266055541391750723856451168806844649695544294340503650496287490194444104167797645097812375165818825064223492903132227447854394560294550877144005673949150674491805402800910530531621722389163510128610507730056137359066354441505823710077315268846861161966331711337785567286597201108619996139679544437006627315116450132001958082803455639438053110975461818549549193919849211691957056722790563952018884359183796113560462699521819502275478012606259640706509804638547670892734696216731928535995283479233040081799054133754249220721915810496770437674278805173210271498310538988237370758435733403076810982811794426539199526142793621064489318712191516184437388651884438920625138675461954570266724076761086853581358405946512234528520675819453703443421817196456404096559712366936560487079159775544504972090778376678684458716266402869082396178744954145592836165172937083323263532282329148138022635311765603193877910103635651561492730842983857051892684680440182563525951366149283542683712233236938067536838793953458329385689886823898245686212405673229179508644190289896504093488984730477445624593452232964244084443890061319190646595885395662514969195784835211047187889631114194684655342839549099300346115415077417477758554502802128340413156801688451251622936267651131198291429492864597910567120384036877183338919155574379944858094584210924747729908511363786065425906098810373949594534257830550590124776296782827858550789169509062929676208244664074342854012121026788319111529827206420542300976507396754585198294643013626440386593554262921551176935993596997579597311554551984631491542858029343944848117354185919400055011050882200946697101713440919034889152470743818886927060545984684843314629546939528883873976338905724424934595034838637177610570211965010492904402693961591222870552495741548435654618818876748113165234010463890454469411677433539085750822049759833641867323049453930346650463080788940149372540747209555324655343824046956562917770289301259627331510216681290349280203228605599283236634926513723482501476181723626360189767461671618766321173218096205923798011569853556391454863209294486820220326089293298981205578762451571459731139916970752100414396605810859643969403496891214231142519322643617031070252324351217978319783667865282890066945046442857673951247125162796379704776573426612439953469677822793044481382335235565784258703604277047697856181480085684090129220846758911196797482725203587813589873359769789035907900765036102075673507193994761607808789875041630076882243735595606703466096017208816527329656467317774524322748713387917144391332921222828519508072872072094474003863405297801133934907194158521168277468044806301327725721504662401334269675739030335841035092630426122887879930457414494204627643521349646321516298314271427599820274805768043143630926548580029708081826855556800287614692787880599352576837127544418497720896818135907474749031524258553826645560944384434748977134920447232297266184258544789102186631241821136756036249703761564916506416974658059326077148118350856127461206591298773816316063418477173602938284957514260646077536672480376776754028519733471592979636958019340258656736991222881028183023883754476713059982566573277677212568492957765422488064948726092033043421876777176976081761248789641214911877762718327619229835017050028132073490234290438898337169632311333845809968350303592308457558973597924394586585230512834704644571939918592873977168691625322894122927663379276240127239634236821666074445031838110616035818035286985007988718339371298150570251722972150143291633906350673674865602129524441675590026276385461229038269662492133654970972002041637805404928387688982356538926411020725525382034649320688921600787785305676059538482592402260244977422729871486385842002236694926588252633075127403345015592894712175805641151437599544401657539588964055635696087737471432340580232801395207751445592476953902813173218420317008538378480334593519714841925307873579479381048114052624082387784520809946612299214410680558808460385734522282765274751038648775095399715083340472913546402782661733781393551371899401683696521734968097165691601876810667869743910009218577132961629223026087967284467204104393074679389859012901710413340211472119411528408922786316220429395212866633871139405537674355292385478815766723618890683864371526723565194065527316224524260896575392903303764831868575515549380511568939484787554379507951640812301758891427918569787515138442863712392243700332301965774335843459258651769842071140255957835392028382911883062967472044499726104055623731027603816601829583768922201385179208942281849651448339994726719877491416504190953387478222715120222872737533213530351795337884997301567700217087325156616938760091433411495100164287766886384307235128404462940335421128623538742375117427733261437665226222072749714378196573868718495039065731215788288320116773703831232722400728424811466610214313065462186224405684156919318449248334284716782367449930430588848268552791023449929061949995145918428320370500681238362426944788859067364070373076787395416555525605761569006306939452803835279658564808667722543846618559247171181743982224060604634223765984571078251606745803942765138422908751457560368599893891689339168095959702281813567137435817582840417821476921630509076965648495799933556565739958850938160796412182948944633574874225061452672603626180937122039570093448757224799949775655116936976260194802999815504700014311903200601350194393654811031403219193288201768324742662288690326001681648758370249054836941740354967387883467086939198108258579283220443899531309696848453024839044454159559346223617523727928640611294960916456412597585730965879916390675711072527537246089831342017228849855014607253127052803414962032392789385127333173578009536033657136681609376281086912753619357422713531829887268904325074533950105100015253023867026548567712147726295443721441980910662987506327570774302547645871245192495346399254853944186599678082407037801842142946369926538828688386781479978707029661898214584580801455913417933070590694006746266641007993620102673313287264895358879509203011269158824275689326762603739857920550473053358169262593004659517726677029832653885161430638126058099384525214323128565843076155202880877599543081485771351949235713042883473232240913739282847156997016317118676331418120082230787537341087346823754433968121196908841716073971792731991999931769960347895652288550105051306112317210572084688852202431648169024050606167454749923073843739807567852493754624040210518554951824887972054853587157478385618694584885528879911816284531506536805816400527011675937439963111168422963013675054681760274424529781476525573922771942045916837515992829683512810317624078746180867295030510635218108728580802509354678043845207571100390722172457445349461549477614406546774328105736454407719650521746883824970319440453495206594970632899613568310468962846185581166102448286209811405200619369078877893468696036248770162483590550739458534771740964735479236662627185431289034096135294491008396736218288805526198112876051199625363410155775001208714836901340350748477798215532864193213937349689142322287258051928938348139949123145287117118662667376068934023315053548691382855417062807096082299909541262213495989392971694292358835275326399382865525034640952726330681143720935859898609389593272973538242268398222392450536578352494259782513245965359743918667968525121524417557568935964311450658172286476748333709869461920892041334528068701512482127018972003201673015839931111916889813373313548870212960138854233472760711733822177955949077363599191154087637390141259407241537349674010529079206990673966378511280358204499474872800354785140452863126791563265819519106574594865709717301233744091567874965403454665509760267340754364066647849434985046437015088570605995284970882346620235440786345036287302350557629480699215808574274541856360688543567413257784113084173583402846204441342560402195321008499843062291464207213393423776136295824677649487228646321361821153281498147304665178965091268587981039096408887799186346158501360538178690382834468482735505202856737492918969719101011344794638401102452209288201622715245264404620322377529449541209809786739573687186646087075990086243412173874009307836837518542890514496100242254888840302186478595364553260740358589862599894628118219552389820136018999224211047218836613481513223319087825699374943914826235435078527786327422913528909991618678159494846398809078914735434484064597261609864391357952035015530843740587643183930818680568978259939297699456844021174941302727640729758582159766504386834062720167016069013602696919732384123964579503216912762647891708164908094870928944380776382643080949254962965568945933657809018811785785283693315186293701163446154551859242413816622011765797567067152062501783310729774657619981947193649721087544959254546255914428995640276150019970693520537906889271735942075233026957149421532128815158736000768966640744858359593137381190865700807607621638100324104483384286994418516909093278952196531824283420611297391379533150391249726684273225812688319587844950972382241647453690113322969289472291776713627524087009075160767352867214655231164297371062479303978583625476519056993331650315518176907455073937730180951493928194945091451416817671045800497509336098493279409712959613437941279729904530383043777739742100124399528272929809038445737657856308217770258172865573535291461377984965334089974027095510007237713202514675395448671931720797940147815818927227812997257742172917394485979063135712940364822901035190373257718955512683505205641341487823850551532887007274546950727370283567229355555484182120631620707630058300691841489783896088793761618497792171220300961212581767141576553621696153602200959427044221534678334775838949345879695005927623064044603210820753339173756300259153461521743417284354449912510544182580682134444748285685009739470480760197298155584833690858284293175398722879622103553401574360934166202595912652817496421973130189102699484599208322383389748362366135619271879280841710927151691357965141117487869637746719868384055437811466836739798163650996419068730622328530582894548537730542730058565563829893455091710890159266869985810768140539038388067943066040205317129300817964577917294417736961026637316678097740988108319889234887023228574699649106626712028538771703406596836642567286538603362597494443104427110055228470418378716253926252596720043000033591520248010482788323053903609211017737188075139053467579397185624727063708354733124937177181876522194681917970019346790480207137409195880259800394943712321773313054788272494785786852167908119058126464429653781253349805573999324650717315313165985997249090560723909037933638961973783020522172819715757706429747902002828397718621166793069189550651352345492369951203983354958223920856911086875015054031111413759360670786756846761760284589897343874778729021226790965102304338925706721045726430739159243493514886227094846126775563900620754362673351573668820313100219180303563786160115610868353239089060663056698141361250868562229750921052075734463553683901670015355901654728889649744241186885278253559078208107914763780578015860721395117480446212234671238305171740256000734461995618909216869362882419904518076969294021216748581515867840754076809490544658722985114156870358240832397830098096312828439886101116821123359314617955243004305534647499779562124463610885820988692683322506033265617849830691412701536655253628656026614774971484941617092498474410013551005000376018418585614460163880295355688784085696462275265445823957411051397587376017522787317460186221282403560743433479472672439301727414708920703625670768932879013821225752861569042497466362101246638635251696311730436023464115754923514699163860216663083849029566414656884534038900231469692735120969221518148490792415014570054505757085305473433215838373321088355538547776843890569340950403086831488595813826475339825715968352621763491667380657865527467278463406809989370898803476184964383163363105106667522546886184845424770475959562861331095905653660110231955816530164696468276084495986472335827418766938818862637178664337735611195070999730112818701804336250679438418069731693336541320687235613144634877765910277612963549885602508011825452026065483191580039298023748146679094391867716755179714203446142277603280242360388243991572447552627667424714338573805462143959689904912460979150832368573191340419829208963859259809668192697857299369928854320289208604897567076097006989762100537926899870729706097893200329901678108547370902456943926928273155045717052104762803873434152846077301038974129594358067679422382863945421846530076168536059005670105449246417177457710590369766090629117078018698820159395997902318342245926689955318023964157064080549964184367270231716515258047508912586506132138113959283467099926685888765615311606705848279522994992037675732368302138660568590311588098286572950555847334932608275904828458137997637575179163960045717694577806255044266131559109480584459098560918582586141995499383523718304746594711731919385245791418693437155300751572589566768765081777509559809795469547131101811752035765980285565804942116275241684367581338566624234338653073984767219769683880556118868910679951681583714428460482022379558008381124749804805565147297814290862047168080598363449349385119558415767961838301592751825565599943719369289758536587017820978520047265779418836486508950755988054695763873183385181958653583331145456164239447337755952309836395107041091531060753730878131432483746119912339783432723189522128362283752500588327759029510092988335444872648882463300636306159779198384739560438725050456083924101310512620476910743508286969129733232941026293033579127405614288231405223261113745684859943180806199304001349370422716772506348278138465361355073738193911816645962465589125512317063707142496572114862445002505954254517588883160155868332900457737191740499952064556408600203759644838554926099486747473020486239707739944275816915249321150003162823604069492022670503072695110853671916188438140465625833120167300466418947463650692679564925268244645336677965035751023705978837160103543093013544971314593142578078626397703129827075702419696029884941604615029088711719013816171194897466155434702357888036707987763325450692362306347421096834354412468874483512075762292412703797407743789747202556909718690737911627619825420164847422641870835239400418262436459266765911780713083179231242138898771130776002899051796434324533236159524492232250678746995887480827786859396618085349934702413720129269911169124928569423633898421486495139794617301310981714291324834586654997698135298586613282801810851658771577487135344290440496033922551560100233239677290335797219014638983718000049675129639154617152093853882198780224362927956902983262007385268011532357136676757392262056400848288584549301134028124135050798476723496444862995765969396406439626150270704135905379547900884967674238767276328741104372277982829258049770645031714351939703811247019246719538839090201761547757915696809115231020339759742089759118280991808909504356225018752409751275703612791877818272220178954755113863775505086665055232717973056128302885908524161851535303235196014944885123743973096163033358189791402904283073916013585727632960449495024567662353317970050416139212353419312358935682847542496724916663964178740314297827038043123159590471988080612198773423161729413583308086206094192191132311641601070169600529930506411391006791784335511574783989729680827191562280968260230160655422402574977100768693617714152204391343015548713320765573281187622151443991232122603113803393787153741054147083044304326946666579439734822731020961485975379008222434813451189389536422828810354554308355836282532029858823542510229793399482173099011077481006646166027285668582110398137986959815961898722956383556946608771538080778708723557200834724700877762112134217665403090211246677126122653004193828407496023718637200639181981680998818143175363817651936814971825252704965365423323468778247586114096272461584579980043420712810330839390388876934344102858286595341161692417623917186457938374387590664558094062519413201933255325850801584801125110702720972787383806143351943196420594307679192264495816036857514954984247988512306683701863078504537054017190500482084538927542678355367662865594450318890533815135547442789883228942539940984690252236908397948795301550313374498937081591233426551098602497993900967176756776930881482357786432845521218335179127655862658900412169330244027963782068976995587562864275658190691492229512520783070954108305215967152133070190955275529287114025424322777199633796407588930757507040735805729947972810841056900415328615230799830010625536397266356089797469296526654242116159222625547662651858142482748648616719227901576696162065123608823637839295720303546820808406269096555147338309359506519917477521065124201109424708884344103224992128407955478294973679463844373864185765341649734608608363337840151056395944037235545784664950068374024428629806115927542115454511302732431296683035792539683107220590898510082205306926249530731454624304545332410286705469396505374743414843992008988520694402656224508755828752175915484435979675094681742301914289321225488482188194540460697236067130661416837344988083440253976651055751398428050976814629903533313255518739999888087735276452486443158787852044235409543344708788530707737345808410792042231639989349221300531066989337629776032259290726164726325754496982325092663622520140867564649383389912157841000465512010296883428988873211422932589530595671394865634110219752868083553162660628183795119316421875589699761037833334325740576103016517341857894757630659042384582509232559194975873942688948494439730818802258424313616513012072271329305095162356997646558372229513418902569007645449151806512101475166289574445018841288478462925336520085069767640350879017820526870514694140630420526171915094882526215024211509292434309123761430542418122798818571807132373203587189813664132880274023766433274801971002326526625358386587092845115627835300094545808629944101960468397126184543086791705110418961164453914333070274771968076428615178334768875968938208798456010642822505895554878290579257878580635814167142194305404212842917372075641862495187157554695374052369397387281454152253417769510948022012867298756263886317420247767496439662704201769996282773231881011079701254298788346613913620118950947928091343680002245761231074886153405921112850869866566489335658987936216629190349226609586504333345204268539039575913827742660866059008132481759028329349998086420051671858214938693648978191055761313394264812504802041362978235900135326311025620371185111167596415132643184173251046550995395381107624249974815618628139915913214249097394484807106943975013423735150089625917544264822857974766465996535617935118712447492101003529404802971063549914171770410246739596141273847341727755352001446047951010803755703133230000274889336307176208265704680977306882789991451198522360213359929463959029702064449020068488912948225832958255615914587537600918234116244318980423038548653560032902460418692840588015929148399522354887980565808933073962436845584426755263983666885747933298068444839382667794482995640089276606613720994638612568449300032879199699764458249787444524476998663254886482770022103470844242513687653682853080258514103783555460486899170940849931742355296917038261632346913221999336180023799997404923248840845521725284845803976823573853400023486683209114991120454453139264016618228866806913970120137454847007362676298718933176718583924104581657638523637025878827806645986676870104606135887389943197863359794406222237311971763783742207925179648842849140045391301552775193108822545509145313671923422940363561649184723623261346173296524627317385057130139032673213733801276637655721395051381269567788194716163699386203781595244699239441562031277307328857039259718209481244995052772913574249026109752198789925904163857453816799004623173300952696181046992786017405436384538336021867827160650670389577408214386983924876153050384206949746570195434366255685977485383196704475412736284718477548721405842406041645985501016689087532723375551454454859544569531885612677950890176920776650947930715166109680170123783882151973206387544228885782042596674157548639335915091900434189031565689148383936291778509163126521785147583943313214644039893830988761302160273237711966158205166949012579906407002167879695410918804522296837219242460176640023831722968819062732524657200784646646242364413762567256022567427478418425741657676644892016351375351729273905623394323464535911520426009101737560869076360185300372515122295132689458865726068659490626733320554199011682688898725051204685812784505590324521875927079259864332758618762700438560072673868524417227561860893667172624165597052961349780732265244845117297710185613565283961649864348188896582865393195207413846175716258697061645805202966129189280179044255332195861659792157372668995864220518145338756725887623945635256606005801094275111556888684681513846534818511320168986091978164985896631705554522406240594470352038554489771788768135160859051751882097284605492193471475282995700442773833055201035487472655892383901431407893948515249807437364494980361314907443298774365498316363254729654449605310122689662086734037835168486697940565728358744597674981050121432360997311308672519301931383441931087605759622830245612550669730334086736803477839110411697481719204695516102233305900238620013274727324262453575092726780234783165098704419511189194480634972666488137510638458618013591098474563969059779178901305157060435999532193871318345344963871075999529905481825880003625524572706626350184139453195717588040572104043014881588136028944495580863590972780937118743420370588218459445647804496309890958399324245552075132234314909254328755751886589113812146190982289336445048169319965777214187925581741159409808166394919931937120327776407558177751863116902132240762014332820153985845182555738841384133794044345248803414885182512535890047725928225752250567427261045800739388535819457519036203247324725972455867207507806073020550643506378938307289549789917707711795095488546738581515711692565742943279924928002413108010738705131638841745449060172622135740968068591663925221919749460708693163301391591049346445493381003841938891492354028821002842606540861364987609309515803747710396379392477692279569475796322946418792908816750583187175202923554425482226982324135610829511513596376867658555611456540853344168648309171183450822182650690050965759974022387182266607798503102580659515382034317514823579497321638226031386019714215599269683748136287217875430285019605526074588728832389213878335508807646359135123429004379023351940358544372495752122383410254434903361672822317256981110183623408183584364381544842898041594838376991324117349646396653479984308652224573500797994243022638243324939912705013491384058916060991208241288764014956668395255195794180849192431471750010527402165661933073145312704386406240253545627453745809044025980899344705630085619411895259053879768977269193995927813251228923698171656446126343673866725320328533921284635029458665290382592350026530121533211346289905921285720953525421458826650932878509628731445912067168356920479290681896203791876326727472562018690275176984106659258145010955594112583353534032612697878566761727611106965536015821184432884368413110167579962479655248507684968762301960571629581584282356877548751046551297037218056182716932913791817243258675417794145648091330188535261401304441732562138365634220057165930473605114520912277991483522609168051983469504433141439861151214633948013126611557045742529887255981477712482207447696816333698841006374532303362083413599816871116750441111248081012224320694699193173600223480485881689248482367621818273475656014093126481467876015701691403223370724941701659212092379541200110077647300066395644051954054202817838655086345555935447289004311652949346042492185058495760469921325748419586337394725700196425868150492902706583022063962541225662240120917477638141409134557161565805866697897219594976497717525984692305033560904449967366610282576915730863183586435921860581234422304579642202825594149532577321375257969493158882401080240863563456523652558552365557149072568607441294323051947500218336992242012461059545916545439618777145783335307108882825432925773878460020338036983420116401693591927303960210169339996680097627109477903451106331281893287993180226078641897718230260136627549891107732303895538872477775462546504944668602282359536417978032814106038308967724216253097368143035292102739479935258037140099795925101181485937282709996775766935871825598518523747199940454084991130347631326676646762765466390357890382954484319555464346574509548220082675798617726748094003973459698877413884922235297508276693203844838433117763255247227037852881637009082142894749901399185123902962407796579156909201734316131224311002364290571282120149377696455771828482778550719262436125868814660399703641682289124529420796932062774958963873642175132252206051837953100480073413222278082815187219423801591025124644645399103124329137162743529623953240084673020255609952690067500347783021924551431418403562316667143246522824337630956924180552563391669923645898053990734010284560466938401256143792759568727154711129657912566133002733181420418748916276884599216688792169610052641696425923561092872259114710603415024143966687929105315863997081395271729062426957560221635589971912263876797599926557800729599919744284311951240857514372515985855992823244738114216452364082813338415841885314629131732937472932610532053687205290111014284317694215956797794141605425864085822545610189421163827031416870177966913422412996364567302785597888567288869412882425544683941085865568167464421729490740507163838271059502340837884914781195922660456950922809928280052631602276439218817226567501041973078016862619775507234117176762042024419733389358567792659578846059766799424834109962896306739620490093631407768110635044315575220672429511914524138327317956332238277636815272652703525799153136987870160339269132984312384429664964556714787472016642429385444145419044773616740647042285159505311463232134282878346349825679368995472642814499249405500222403376899876758274944440563865965029858386574242594047841328646743146556136234167106822645590749106986792954777285076576211250715291590328576664874090459047066878358744326625520291350802813703230109329347733235152334759368843167296203316169955859457593459039506665043295690291446705971889630294047615695427637808049151914208388282023998898710337064353665142650915073227700165193383903014154332788080498895482829669592292125959487102076064373916514055376071563070534973208964680914116197060411062003133152424154895483739928142423680337017230209032370872959100518869378549343928204707430474586227170103086649472599572231643967772800221898299804558999561403202996608950419995967634251733701326404416116662225783148749427566524608935121559589817853183362836902390243053774437619400907396368390406153831667463891311937914729392588591331068238617622194485827670789892452160038891423924444470523967142770586483317304594495194449762824537967425534796725969922231079151713090215154279606945874576803845758457604050329595660066033526265405756442337943288773333281110283679151196809871457392894393894112006382719970401078402619011126150537145169742083471566152575458677019475986898050030915510883219465518433092019494204713965866412776695770274534507485813049460500317938111657685903692941133484930625338486390700917008317143862845413217606447047541908174778551625431717058679316435545698483735754956513623553042795893536186196158183071138213001399977158475998752805853396675228689165664822225056782054799331608097230071460542035634281433849296536230675223515288660863140118446980562112425554117598350552916447376095443056577652822007195836436927636122442925848873342768765606775603954516129469314203457971871598347572371760944252968706445963967970578934731041656158679161347528933716231264515634125109444881534182297554032477197287499650445821114059241806610068557212451301662693254721747163054906097076168408028777495841444643387619067392262199292818350354544520328550328127086872649617647486906135883120411966578383090287597298196337861969504440881323883531977449503900074887277363233943473778172173820085412427612651210061932040056752592253634118011996023715815433109492063450081645079688610091057372372898734589442213926327731434035365617112103239138494744793637785949425486435124250006329301223596385900968767177315752547469666623090975018183419872564298636483333620047202437516907485281027132073563121988949832578314433833103826814056879351190748469390517865364384067570795293187231067815619538250372894602619513226489823232043529491764665583753588741364664738241653825203890122852904883029299117231157429774906073885465599587237519938057448827284621554751838640306672190408678923728300600298986230793671324263918992232695557008955708770833060400636754819722476904264791654942849452627732826461815467287881170786811404408796851330193276086501439661022310147118525868779930775450404019343595030112543734972343428988013249887037205964419615059040916560384553658148699130934595603686377612431676632581297787226470050057851281897288894616213294749287448837352267788757078755995660248793173114932080626911658378672297559656335754349985530694565492813375942264172289458691412442333411486730122065789202256266710724342248379710177744558320904663855056328232090493885493951973680758094453887538321085703974442944828535135956421329157562417774488792268404638804106789511370770879787040719035289254600512029416004245600320797774964384019544964538841395864077743243598356163234868928881191035684314874572565115436701769760474250458861480942390835776606582276085957492132327553242371338310397757172222603965640874071292413627747191023724992318781494514864965831961804355938618330660283572315347131179298564260430704823841797028484923497555280714686524268330740134081494562818018949159306871093142350260164365064988500007161512775619336321994732256952167244646352343287563962507545165822337297070947153046785999045441484215404360817270487916881143732738666697335969502638991583827439745022120746294316126472118614283886953474622792366358695809116178916563429960000267102127717875068534072447167127732312967196585704123789250429608067278313344466291700235311969844449092121101632359237255725716609877317148202838189623655923438105766459296030148762863612176686415567693292232608609006351781162911277760234940913938626163078285789981289545405556549799655337760313972475823224013068423649135507791701428688363274358124807716044775331950015211236720524055270330246482907305461008483275540758446920936246869275756247384225519413666418708387486196950433193252766872096742035233804078802304143698320220855421422525743914981278150205175267637239283731527888268457499668951153705991554239886710255417766836395147026345445208165834038474197889160852487336712764856774290418333668114870903978348283286862716209235248281255892081824529794934423767879735390898039374053851893479815338671351189814088697255672366295303651843729081055198504625064475063347384859414854096376390391728624006054030054357801960929587043759039549759255884134445663762054066335093807964996812896878749246724031635122091863467040273754505507251365213109846428418648134092920276537562790678001794708340416594901275993311195386355579985043030279426514638219438257312333967962132179801706132133844249140488006545599202162469351635876262004089944659726016999167565582105411441075094521136571393248527415818276300113096127529174286404066303883436577613244442867098279578776381382430464050044190328794122393069385636667640063103823587126929279667175323492434726980262339033329055043228347534582291176210008003628112216804134139397661236968719270076454872203414956569398186067635513143360526494295545996527425506995981863277005857545253929348045121952944097357385678148142046432742150548315270370899047376066635964596461144924524084515569066906916615523683070666765507114035666807560801553798372674871396183215128968949793009510831146183895784270461939080965771833931342181683095252818598830547615356026244717173881084707803641543843571596983492879785919104277934289437923882281584128109948030480701961690145415497483177021568834231063394149875402957256827746727408275442049090212181392849006625360321888648695649104319003849036473804872908358830267956774947746583237482072088599260205722575987865040178962167582812164854137350216101843768378602021567657545517597643301245997241225951992189829249034793071948716793066601693049751622969166240029852150831420394761121371086491288597251845739312689125910825881312763523430443451263319955763586484949730634789847064645990931446219118378761861657280701085595055361808786678577368766094591892924021332879836643773853309057915736972568672031814070474254391972388853363497507980205141672980928997477719015368145661459089859540560970118313169900802074508226650711909043190899423749786269622692193990646852969509668377601072429987658150205261117935731138292844403497239706037475051259828353191952535229802290829565736707544369243631509400304311706517295694802690551157777047693662049834133118033965323894641182388306901782487688852741034310170529254852918732223421348520193256301921133765369573215504111992308307931089638023202463849431452970735332635872113817318567365741853267762358945745040537937328138475490953431648282218681747134420582612406196536948585066335491194866507906127455148967637820981592526520171151752268930145337407358667102485165715509801435505818839128720596951204989691221782769439758311177436865554152571353025469376817619665576908887696651367920004119079505474242898121868467509992220393348166266668915754575761140908855880852149254608646783268500286159287168123729710656596591852918857808220723113224958385509546474157574451170369986848288432674670800493543171839755264948726515030811430041303591833550649644501530573140893208540172442636960192737030500157367118672479245492925349095144362546453904392962767025060952601281925738842264612167753738015307928236947826676676246949359652078906423450491292685273899470498596674827995460215346124495463944581896485449446796081575885598237804643596206919719358601188647362516192922469732264455543306907262821422061974449323908243437957108962579878880665870917704701678175444534015213215693328941014588375676658503749723900229203196993135714446723294866619352684549145769985405043465486439314977649843269048651135074656198982670753484571083990886647149724025480045555731526437149250551666228612357421804947578799196763891740888779819560188290676924994462789827647715873148221361611348354473427866838554990854761490476593227308960728404105013000971676810185157216514407704054310059524334678373695718668908938611742706998538997514474953928922026075008885926799096780232726398348161426224208553917512127602362296852998138520577290585960677703263359399857760825318867212101849848993131080545105057606721416299306524704342756874134458971206622250970914865458949212200644951751104019782751761088412081115701759048979194622506922673178869111875456720129758655960998145533466481920829297160628044849633834838216633003611881910814006009618973649929242348519235466355917415138874278615014333108824334484753415557489878769965058918296479019036751781803382880145321007127089340629409644252679753984858481774436815122805019350651270336652494719670811957455255875691853448763388175444845385290722225165784453795779094294047961374410550119674824955388137913619192746586029854446703866030170324458449536783594049338860673644885895901709574133979638600842047680331277059615525999542172065295274069097215712319108692603172233306057261385474109445503218821439964406906119495989949349633581739596719965060624094434650142518810041188578433059142500788481327932784267182603646136966665121061148803616609873843026512881864142904563095039882286122035924386345102229636905806600328879826733590592842844233707675034316778651693049210569394216771231799258414012904437687014372363077738122571533847693173073569258180240835095206908566621305953698654003621010833367107855948200949680656729056344153074016520785673102273338523466575204593850762784278456172223276372616346363990181225739370095289667024716898268627202879559983228025805034510469494005602897307040528100471427016445219989881738629161344354130616982058820756067044349887285401512457864884545100657501516929381800377666294639908593167313646952440958597384970894661214427090548955711090670038457438203637241834190327574520860381531975030185269114475314831908987856213409520181390845450689730751113581200797289703937379721483913104644947718072027956537341778143212129789635031435440298510698328756443541906077908665358446271518574450565526975642997203548502899570421941452217073492145665696227476793226621467471942186543227326841015811111413799367500882142415161997053607489446770072795131109259754972781246675055612909103186077515110500692854648822045560280408123504982769304691996861563360205040850871377664022256757575415963056456495741224803702331696986338811904111268263112931826877123732350729083247136574846818264730270839079862225943293620140636213838342906265404378746042974122635971357057918036490409859650831872734061668111966929744106760511660478056415832763641151814388225079409718740980818415762112943815175516242890434134666051628715777145546844827054267210220432844220432601703474172243848504592848102548895674161190022316978092109023963668326322974769052602384978556639648604499288137483494597106423040480755192686572379398180894245811018398546554997035586268009039808324239139741034514706753099095146203070765343328966265053602924271038738325863557826767641823608870827992981364508443134141292321362304956265511942063506573206973267219685611227257467429144772655537392191943767162769153343040305304529825508672581004481141584749707556061491474072384098162327320736783979219563255764522974149990007081128086357560540828396753328466411706484928127841800456671987472713443958723139101643841527615021644161946712032225098109514746485452565368508924124892450371400166562522249406054995151975482665668087444588041512609665102629514754270642012635257728287586746230791188393901217645695781021597340897390769752687067365832931873602932714550755754635490319835749432743891786009572830780184239391179792995884080953597771884870893848848170127897107281213112386393646046146119898739526634530223606959005250571570210796531115281240932294218309796900569741732924736137759886019918413164918151886626548703292708999335465515519463025289055174960034817561943441267833435708463497764778995493212720186090895518183662663145044066856866943853316316276772360430144742919705968735687480461841480812182155487260724379207604104797516646428815147431497397289690496923993450776438718108765175035754541313598152208846815634908053876802573886265596004516928176671320526530816769346963097211763784989685816150130145070916686939114506747607513617546479736778929427800220808274775140974707054474787479052593239136683743716042382683893994653663528134687066920057736566693648891090036927044431083158955278671124448588945561017660222461989104818456497489465284149153323914825544842093570011999811900899516756026636616817891233114736512554542269697228486876893310757249984539276002712070039758294837352599518870112961102809625991365686841015801315742260894051698886809411428970043198818361147424735951501780320278408368038958743090345843484422752324422912001817271196954623881457487809237556689744892952716199644059125323464943207074894220864061814144256111393680962724083626203275743839984829836578077535463543962705757233927254498787961516182444009015569726350854904878874009360525445334495731518924276096305293610844727580767181565392715517873083465973482321369010581625819426242619704131847978193663592793337865688208751077377817199264039113246305476095843595809048689944586896654750199595585153243149774031863760069289825787507986229498675465453088203013371483687230637718204304905704548749478345373655943008663437337612383042288253735684639436082163397868946296150917315654012334678968176061876471148082315931466608159915555028842416121355596502787919656385557077018721020317391264216527899516326812915719153878233613148519090338392120392707991853408649520499083599612337405041147603723591781695348482723421300471642259597790025892384593516973804520986330907659780562374668831651959727157232958957699261295764447762852793061134266544258088563775027662255236966124078093610146826184050987317871778416836960250642651681157247265452514507126947623850293128494120812316494836540950834074388785611693390642726249301975222097467633315436779935245837248234248410687455004200914608033188302099242046235481180249196318429989887315983162133100127775902859711690777689181159145303004866464658344375544085363152253011863111765027252264438351832358608141896703651290233236776732537866986101081093228370584489986362195849727181986464759400821891507282073946873830185298519753823503060054103595302174441534554368376400363308646291115397437371748397946247968425523751829606513547644772896698352146794595190431359835154528030748062837310741949989879768234835257566809048019832151087228502831207820262304992262910414257037675628162049608052133032478587487340413410568069933149345393996382903922113729124803016671123152964538829780479523854781189375492691638418898862882741426275004038261312057186961228420289818056660476320964841911472672883142000568534886558493477376753781579134041336163385299122671703499971684387580004751205055196838293936123134600297693221887066061884677681895536771542678114354519809543753015393118560623989350919733714468918192787331229607340119117314106228006060885086065451105117340830888536731434289365723169594176990791969962079624178420306219195549508398557135901825076434483533138680190766287991760213556743297779362440920206685215584575501017313541850933540042410319831616820297524824945821120613532689408924008106838108361200273161136497819243416084184186871587397607290876209489453227517911644017267420214043736757700601445049607444720551159307522372146144875240505570376134542409550296155015562292624893932812093062140469244611664746638015603203970672908381355717968598164807763147994001372993927246614945229534306447891346550453047682789950996814370154774967295034310420778402624468100114572089828445800924345629946003973207455630263785199571869490235194757430162533050657478134128411895563703350132765430259852285725663306473207596441087576346519224469492656577453883395123740820747676034413263244624208913499415343544591966890599954497775305948896233592539506675096743360809230277729785015013439910646347680497348026013886368092185683541850917869670592599943156014682573704217861196928802814692722636551594615904736294548630973218439843115469247504325890824467041056506672399136443871103206509751762017857437127755868507294005638181147102086748350371315832476998823986128545038550187537425767741454384464179299507225395921351022542550527158499077773556973906993363014135869125279278515782271415062279533887570848563416077617003772021532372239186968625595267227715562993555730830463857984660792648052308773114115048081014585485083245472054468189594656935251179511509349722082787341671387252642679887015061567443114492697251413244747027540548339640106369909111152309563877377356188154122334189755265540744060446340185362717652995313331055227452127502825346620246214429670040135011557595823850205434474128139097746873024533245598292311635794323854697016109326724132241103063612581162102929456184970228228182393200364642438688789509520238363198861829640365533348738050623718913676866244012044655121525188505605185224350671792461246849183973468791440660074049396250843630628833483718333954764487385057757639907816179328159761565554271630415939766153911186055972430389438112816639703111556655873721953080929026833046362616371079258008381339114972338550431148328976527336602108356278536867404153147748168154914738232815723001518668679453996785404675356044487744072009344631641965698482841591146772892977372954429484497757294832623775384583418387298393678119657973841986417825439371487577959887316270739637548384806191928202205438809440632336018892876764705298484099472571032352980627349196621976863344633640063644310438118573959625386193316485126586392414831144875056241161282287221262003005116785904441499530198676642969046425867685237271408275911482933490406774340040649978458697238816138815550621173158440618424313064308299704681675418631826187094921429597327501866487204440566832528757852596004040174505244145433610446746636719118439955762190140601700069054339427022790093474193137973252337013276973909143299014756273440447621853626367003128596397906302027655901048966469205062909181042833737876611219773837248062182417131710752796273493133600831644667831024253056506138392968670043380083397544404070720470029789547996977246111557676720878771636944895052636238036427360161713853680802268851005081220486919082886582044179109145350448131438871927543404008510081690665018716089889148923219674799490063812242947314683406821782394241156908059105909483870633283178531718018520796642659262781675697818697470045092887764565819412385445225748628666765187433682646765421140840803297118657960498468646170275547823934030884169038175424195931909473981303649340958948765997416668787667838853185093022527435657825203299643259137518356544999962159394489090456695197976443966445026534746403635322741049694842033520652295891635208083959229113788947212070458121666541042089142943525176789533348052111178630671092131912751508335897919656544364773471433527838492409398890062461625417530326168391576952265834520569764554453605176206011347611905519463374892635530267732227782900728137837656259257408306918944696894514079244468495063091178013021744793470480239283669675767097385947969979476881910786466770695871799184894920957332435226403714194479098384590959363435060649122435339347028001129095109171288395700685820886312047780112032053247338571599481517233466422562359755082420094852676586648646309975636471624434403588701550733203871520095436923385973362891866094533694356389396251910074929605544462150707362922805606217506507146352976419895882776070409392810059002131705772246077840716006396419506211527465125211087037982748777018897895980677753316560315696619419533319794881064968316361828050099655253257880662874981459584514084770610912153279453218880244265422091692499349750580747373079893873287133828952728314870153708731311139707488356318164143004341128941535115952382230378077955772505712957679198039558289633603005222515484247253820287177404205444615706238607030665318686232086466114574989347477582989768586996306986512591159121660771027491855041039655652884375543698454062820087942671352439976116924724467473698073164095443458318146577669102857663031646978421086082600698827334204753930844494186050476510718786973730363244710876390347713423237658838758070581630073330037810390719810543876232162757833618449435144568883477626504491659257423085952156136150818349948390305244505957490632907186066161757515081683339499412354097541398948796883611371527274683590014429215901945055393541553569687769698749709011747092091799711357198201706549594686893119804080925487219109942768823229210457920104419387624715209564902814208227785373686061337876094761420384380182133104505451403995528237472265122425889849126848748780661595460004230174359139193472545789004271888583704191421119237903196593065311030887553321455041604410919399384700214649962276819376977506563152133967749122726759248055058685793804755342328400649948989601402906534101405228300568625994564258908626196524675979031256772083950322291537722051312917693230516507450123879467331232294027185260548381112136210970729187561444244811015619407024658116618555973340071495611545027620725174680884598459726553518884726454508620964763084509256892242168047862439721322529621020062599617990809553134928572631665911812142100614132122952226137361922842308304979700598278118519666502314388177862170494979332030317426803755815911844904783271025879174935770087591465176050514037450987849482361653886709885942880492728501067080523258086199320224037955012664440472962762149638244897377326200958334094983832055560358852092123146118893404194835231876624896490332212293188416865454662693466385159921506051160590806057518506544778442011523356161070848872580319726409252878305266156079580612207584554973918495832280469039700097591543033524973699071753277814635584288614929545453293717383455791864222729739703394747493273098547691134175631942196564641169285676734881756897038657536815360305789968419753733292124040466721024961740171777977075053203589790246284758548217015296581082146550218863338593626149694912761958952204095412285980914861550547012973008752909359889608296695785964535085061691514303034981671733840405810195993335704329933628326579092151128968753062491687935045609752091058990841248144189905366892721226676816901001220734154900371220857609519823098019948611132683897825386312930571072564042771354430272687521192276621403140375791125911316676238276671271500516316891581210497334718670043242518013220570482762086511350005586939286315721586801676774448944352137388247272413628578484401442362066835911809189008536317297942887475170184641887365026798886536363880798236404057344831573618909567347004042665922702314058569716223848113636125008548555014848988008025309262931696660682540114363540661731166428755886718072466453153304094359229369768569298436406821334145923380974899142806094704438044451109559396718073514915076580735855486111015208740450194296003120856997561729687482040821566250522815291464472249838816409764399268295060717962954687356362640954688650033042981151000659737875585204919586149804605292529980003139725288392026113053093308900675181784805900093649462002354734109613659385673743572998142183485392532102268888637388090873243614246364857099019864767601713390558183023642739558879357309422864814003560573368978769469297171877757499404564868412113853496539937609160121542145632411228289013266630870733431711909907460245149211006041666840106621450079113625416530866869852891358962776921579622681120169345617924662117187050482475938956286557636052303548287499605748973794556324959598150055445783734149041410085806001822600762802622638302458638570843273079018028649508511046672106896422660980900068734597839521763996065051249328680370979975031955179212381949756924730671167713064691996854986040327658946900118209576197781116520046609517893536528941971011513399724242292496520404394684584745004997984634980258634455227637445604404661401558911364015888867726505722653815279847565180043653055875656848891972789347977696896684880093530333931283948153336602919368434473306946233342040881199809372085954223878233565966550563789070909115441063558311724390311895460901412036604377725789294818577022863533182019763082287712645574998240204011527043397589433711282487216054579655885484778376972256202456136241237653030198024995188743236289776850697202232955579044435671227487907154130313962309055573856074811440759083626300929878798768493343918850400915324425568956603613155935817196604539707593394683305280011936371525205374352407709396915054103941951072782746492885543480514977132617243986918372726244448070866126190704367574447758254381942691673270961688917487631697327365010038683337868181548889566794488030501187227511095669345293049922556897092621013323370221542839759848612866875453424067534131814550038939218787569228103699052357399143736170266645002223616476437092567969933591156359011144454471738885960177747966136043159132676453313550730535102123588551299403853484756473672741922664104473239340293958677747162974826458552793518394556389626244838290102909874729266925168141759079854884830910931609859889672367202112542104600300272098865410229307661971471175715127261599093359019882738190448039567720070276558538193122694485901359669563307812726477928767244468477030595843872047087826304720186674176182649297993774768824018666707511092588424309680017912426012917793929379461269242880107923085509655335436415363550086137409438347121337962569212876901365691580924758999913431626400822213229516167878300550672072605814812598480976334915972837925498864424075014253698756053637876812144502201315433973196263644927020432541238288470948869909145223333154759423828527153119481505431837221490671191955044345148888714866725793172492366230476268137346942665537683451413278735837475562323838190601918711815097318802011921366210443623710793314207715362683170621357831623174408840134079342061068912111527296933048860412694595556004167663791223854522033442757413849748050502229864290706692062826474143699787247630419622919928494050856628976748798488148822406580840786575487448131226774604038099010527153678705098727377916953293989406846321058327126754169780183032533102685204690430024315973855946715542362347323470020405709961811200036013653147343031901127160596557043145214951627727823401790106237362717817816320428802352028369153386421408216648219651664304043667014445782516993716643027876800250818602093795567138297942599548723877096064425278764578080099629215929281937000245873046385722057696102715959393239117786744826404745566715752912442823529073953081376575976231645726986103629584075505045835392425817098281582437680560573478371803086089511297682588769729551099910780289807681548341334538878820054369250812085842897262218433603780896073090750328278491516199861513927369737874949535908761116636723182387316486178345955583195130757787853675259765290556666637932622725274974530266110960379332148274144810731883282607248551136673533625945784382217578824056146904037817562177360520068370828086330406603072259704099071767811375275192311010598598802989894644096923630320404885298783745271494194829876305623204378068117605167721867051330957443055455050775710209664709578708291436206907638176810987465095113692515256662121640934504718404700018291732248030649342813009169004141315560374204104219770642936459819047895900379036412203954884278197165088522808820837483691721819595486642958245866116004302783966393455466180864105501795712619092899720968379836773344649223135220767708485818736112703735357868163497014776140190794828695172185972698861913660799728857474697113578782891433262471113533194219689471221521606098335490940408699757587394490996079962156297165146277482902305281189182966347938404122329526222617906595215467069182487907598648332752495537180487792005361358838931895693773329338162770447512927854132516516404336536602545277053679100512881773196530400467081427141549798395109289627033799394120851095530781723458605568945026155982566357891747872882867246455858667456169968390735590855806041654889570078199246852309413400498663901775897672548818798582552335462241106107341244925222134116612315418630757104267969507924150926374587051344220044875905372068736853231844717046354844525830689998406623521753045863968357994279359844017770889719853994321009213379115439123613178809942019552897538147732883643148853068624047854642717809850731957505476689444341183016169452455318910566135474690540531708383023204088802726824306383562218245767413908527050379287573014296243731417435856109671922318393312123325708548397782063268188788516896887116624699041741558610083850849637656666024535320024443938398858352917355353439809028925972557465474887242641141575484039087270488183218629730248850027248529289867123712826627057900457093911551121761844087022632113464510578311296694430745120961052607206432961409542232847745194623991490335078953843550760332322819551716064741183929481339551525143440371211584310514004189898820976207433342013598421428237285986338689762564614431643349350831876683394916082527641388011925884856150285273115468998507399817606275718473250343925998319649665600039063684852545308134863499671429686691768457696045460543893458875034460687562045075816376450985630437889075614567389097314364790530353699100446986144920514158338445169032553639787882861520540006960299729539582852698867214200424593729690807435168218435737233123546586767821653837724504696041739587497404914940033855046143404618647722436577547344374188382925990462031048789651321870102876790710203850936280785745308481503610046581476803841807022235784319641256209860970546135570606320281508490462923713046985934055555406540714785582713315641235031339251282663037967078172435357122314002650144096508384346630888541207251793953087819354038158782778832215307606162930144042703585074872117773871943841534187056174558052844658548061345987595482729817985916300114913432530729064954229636923363602228701207126239599880061983550731188096967937941898113779520716506434128853255682543197366244708270196293147125264643115580795143702735868852268409231005480222565614254543013936288171660391563666365719499332531560250759652029674794020228380405595141640665461605855468552004809001521282751194463604349951058846209751023099513442549559724303588443643705204514738427825099991491796699110672641558534653928619586949130082726325632519436044962919646648976674666310362603074586875727201541094304761216195011965267630781679745320619803656779994040226975840744495439775405156321943866255734797889659030377106164162383353777529476226064047853640188636378153489866552762305133835325199823426955350953431477720031952971732273753704758140983373187292775447488815837864497526293564795868049118362421059066290501260119894909347308216101156691961504696246792062371496561717789775992371310186009083203813096428411187135318840717887058250009410689124790851791688710536717151374366881894835596166627080733069421973576814300804536572087232981479507739904621268304032776359336510234293506305749463643707472207109987441156061521435420867794006578368402443693412356150302764098071222979305147049930527762958565179038007937149311735503364620868561459538824528607346071693894931612719346607012536408923676635321712292269924450428977223779589294570940999020696583510443606859099579266077995403718676759995318285899577346737163091371413636044921475787696338641732956850816245907189502158444883818936060722450138100998898046176187685387311268551864455217406220262190297570545547494729356788277865738945775308191017112000463673825469772842949094606391561253173132665305116320071222341451212557548449690444759366256356890602594433407658304152372935249050320789349051839536778709357487151006123563974860642852936964521064607043225617553490004576373868587924715113465209315072737765286755413526578660325303524240453701892967816465564203446012060265816580117693915001603184508532983222241371347480384603378133721603618625886710430512279642307936924341954088507444359551810454584108537396251010349186120438575789948685777951256958758784135363880707182783659544590042783652396663043611273936449005727519767161093944590797561172356525156201435135622767951681224297237539516937001098777050622299571097363697810350933298212833838980494061810362866459520147660589553235228550265656758105653049314815478101323824693113578215170381730674085526796415376777989393236959723276016437205986858421796816168630745646673519148015702778303675454030759836391038214173277603914731325048594972810043229384068472300105464496827913517220232880905259172053488690658449557095860406457523699398991351162658187032989559910052320888291588201399778874798593089239359947219818826891383850750312964934117668686504626094501430756921919099891693266377368470386340039335624825017652922854145932315974372482030419369308600114777056354795826503719136590492769203033172489929754137931254039838945128545806453295183010860128116666516642794295598155172856917656329416387322675183090201135054334042247757339370586293924189169769261603055189689870008771806213330110512201994832331570197057368407016165395644383536771437741906216397149288440168381502468265470731787879602361087385879506238330038121833399016588061212526698559997217766496217573854023233258918461021550510525889986815385572959312482976764599472389077175424671092239890845780928869243787425994856828742131924988954115132609239168837080306987210440039542682214827130846553109813595068880699490005056189629943893049652239527746753995748137237960080565915700315175136975528840401744321683692395859188319624840160027016023621501432946894325831024640573361299079513156796531691624023269589734749811874775224118398184816232164082783016660189259411023724955428665421584879938756795117892895326011430292032093366234425696010713389671982487991075673247709233923913673688136351508574741637730176381994279147011723494436008706513604570173053287328645965571795298883773586109135444492973236519803629969388201432557792327766241983549774784490419387766356113876066112162640971380754617310748111117111239926646789228174528755401974378024866083429579831367859185508904952779132187212968885733043685781340819823228892780414628919440182968777356072553451531746706334527579793393176420128223366960940558515787720912801619397058456947531168873184704835060056250207753540340604069265155385473248818832586746471447582577059931687133535492894695474508896504007367801663516210447786592293925476302178638392857162350529247993230877936719935742809183310683669890231640566276207925066861852848945172846210580707375663477502759133196626222159913389548691957979187275998124850179060674090902337911320967536939706306272060427171835126839027777046625175463924961930476672988454849454024757418581631637552853886342555919346286430733034056951535618110195665627146880044920465271555488785071555990276240483621635927554173352299441723744853015478587815443304375856918943171607553261696420755005270580942002579268797139696779403943818610256682005553451651811041554153434694136461687505014451996595820533951650962722325533186336262615516667376420704535398635661105714282741979408335951072075088697108865807038798143900900587190561697317242513362604438825670140576560502165144676990523052866038807083931259043501468731352057161395078319552475507140139853385841563966851859532643396396368433055791627229654474775109528633993675011902938864883156251091592332932934954121891925888151429555189803700890150938027311094231345886156000814602663662980584729992528580908402465214660580493728241057807311563254451887218166777825301702685058874033216081610602355305495521548917184307033401674359381951845218627203601236889855279813949312889205068890705967043199828035554435159363650514485084190049206148375278661948909952393338619315040309845121283200038658357958982291216950396521576252358674534921083515359555162432241762069597152052035811003961862479281203757519707557703888792507678890542471576458057880862271041313981545410251121170934333108484763832732911411983869617041092712866728044023564673924915654073980351556003245421912176262086083581078286210008477602218563998545259626760850850621151607663847559043763642236378021453319827158739109694309285693895461809625041673341217294280834686841690801656128071150762227141469314136305414219489699896472280143646646434619271967486138123526287378097838488080504693967272342400088349693930693121049889222012264341623666572279973959428030556576230535185367270930924394747341623219818583208601080564625461683019944013320088482254330543165361206124200843533691425904491111647432200059978399836725266496713582178890476882994796479328088784088556337002614981586982858286501856712851974304491015099139111397761334395813449658003799929618400550302921800396876794314467876634095230125656723614091939542793759653832793312373342604976970329059315971746969541241888086535779510889230151715451914900560396380099353201962868677527602384419639332596831944571118487277057253573329555943327302550874261793622849461361801138051667066059599486355167484785642596898550854150242078208697357493904592463257130918748949482276861861127123287465873415081766290079814151739847337716904740203843707347625915722630606489526571972823949862446161847494307672530142565398068242761911608817289376963225796997386072233188824842122137720443736684551296054773550848038970487171862155413383203827556453495595182224772602347532870390117302111333368494048117517580409263318255272723058772188974809892914858886563954104890211052665138201676994508283560215480023976805086071415969467411775598823322171121989797660126193490560867256043613772109018813543630562632158108506372657588731833834784866766492176310315355005926794781607190102996787532748361417321922331196347816281290430645828413769626011020980543941689576375469148237717110085813812008583527269014980053780360922275051262509766191946784971439116834790934272728165106712024515934532757715314278736284498962114362326156834260138261549011837376501881761477196794360376618376800698961129934191330108530256864703904182367102473069142517228221390032430736612860898294093351649341759388167424510998637485332963205361924491014649686812756100139564348933464179138043008590594033443717250629726532399271972814752090319754315188558504718171370336772884647205610483319390832827081993483600395256591944091127127349597827182395361666195680320042878118770233191154857470972174417306656575943697573476027527060426597024328900015291016076913898017059200957696754029839508867113796680703833802812106894920661031374718736532061823578272520796324122953369245221028308046340067013543190246205326082885603194556888563892459764054767370381168118898705009864768018847625959694285654808296215043822641121251593887041784149334733789173325044242146706822735476289016579956051818327054078013880946855016614434313037648645537747704508855810356761944667746365296434203442520198974076973464069691339442511846528330505053082634944802550198326947830025770223380163246548211157752781510051169582239116660989755484511628522850675357559659184244536421607591006374886208335944843765288477852063266724753271519281891765525982401336512830549603521758623850416243556549189295446088006506351717845229092141768475571591839985393008799390404993598337181377758136715262723161305903759763751493024101444976880694159074099519357088732120907682055441090817883753825782121073863800322451902428445203903566406169657113565206568315759806829056910286531641984755055873536857400811653210107327899732936863781306796209440490737873425370503962404641866713994433398704499847729268320722273285598611352107512896948751570298505175652425276113766245645847723972978221607762427706547085252880562493502432327852814812358562815999542489777505107794789874844346652189990725689678732914111372964285336698173186479269081379272522280038068069197736950581347035506671236987962192809338681377710658629074112154431380202775608069190784594477730212797959382556806823654065160248008729120083827197813884661966237429567156055008640453007103152726680720417434625336939145897976996462317119080811238233812414191757562808588701222711034031664691745854069800013533053196014743506726636336081986538245376440605729676194633535038590576069062129609928339910532205441503146246486762423043352073655649976310282428267439816561850501378511778075910719419485233019491845802977123964849544845864345818344364077343190863297456051607838019711887172749831917062258507184828748847504296041108704527453734022506282747024266765582550502620545894828104795670425873272603239393972479883252013883829481229817151202865383798970432298939769926828214000396359932738648625762192347657786179649144492363184730848033356133690076224430010727155708021639109489223181830012236422459297884736205484089377597359358238963472300258952576959442463118169264965446004478989216049533100079504893582801935028942230048707942940736985543185649205265611113357080589060363940628471032458172201612187351478488160557676589086875342058971296394141677401877081206289809109401047735759032048577174032556425104703304274363457468670449054343426229419312374008014931883759570907240301117649324980285471891739775336427073408038195118142442795810005558337507879557548232662712910136813441003026949497142362509943437803224097959094608380484433645372495535033729097177390450851328740074275276861453463940876534692625790902138466994142356991839491838151219623823872100588713143586667644749105228029978625421108530317754654605650086823149923949361084352462818434162368137705757098407217693460096072504701625622803305762927486510674758951141058194328193252517494648900447721079399255154926383791450403003601968393986037685725370591020077219894934728129478677082208096332735240852001024267514042759073082969160667290496907741442167507231604764670525654173022061780740515341849207993370687044250825343367744264154938047456863485967109998084852691768689994611985530158748164425489398385443933202262834637621422194217988375364529680699530050198366157789514328940297131882716560331313476239887325360746182976679230134043115900442543372548629528360204596471081695833761739208690374610338040056592552351153333805643958123344720962456345865103114708734490798160843716077715192888434471963621595954747551772512722804432462823982811907728126278931418659745364264050675228848553054605378917536767251875530121220270426711448980904614741680405140030532168928514399340572395001640962634419204780748536739759631903965184954652833382883245064340967374476811566521719058638974314212523063282010090072773580594631621310620396476152441241640876701548111318072627035880249342507645322104305591349605962111215460954627665188117016222644689287058453858945225010459302191169764923215311402038199340099983843864298754230605782831355604930131734006836227620050634224119391981828274859292551999429519418763214756445166978223351528424867090706749165819925010618258514496521554841773033024894198351318110459675748554212332587262173703099542222426951931079021124435359118125594736367546034635668720884414329616077685940795948821270279689976390120602816314700808230578770757342575992706319775363340351461047855407212384141172735958947771514462040325551517275333976482226403463351926009458249140183558799543560929943300347681294265322186899187110186786089076750301663719434362833527087348989501029630602621939084030237950910096602964072312459511284910052652437902230075191454456101990398772987681827308831555578262271269479662617083909918980923423378398852306059875963293915633334507820966183652515780190902431312898174136306007396038548587596530635983982169860399107914918822840637147013611732873754062623160386988975309246489193968216468838283011783964557772339713626791282985113550958748276283536818216951385444244422195293904328272220810477104063706717471549417277170747223270214549328765197399720516163419917760385075154271196443380412884653834349131821503548178985157501464591158039819167301004676524332467379545605742106371097243621903829483981346690724641446211800779490208013393348568299367501210595987303345751245827880473701451051787138742538605111496168268953939092723416059877833460524606764771471079961587617255202341170690492082419367114224382412912578038901769632611302853270573299525747555264760410771117187901889053148395156770552735548346740955148048499371135521642153282246597386925711378616294587242843759765815396446332891678863593516920755564411410386806934856072479464929805691802280048030865585874366995264423369764501294310482668635290698761777858709658848473531069149439211386332634424758402925528569136971625060639583105523055414164168291999785682550352761066651805801880118399426967141398160753547905180215905786444096742447652673475923217055545036072896222127790109354011720492268809312587783973459477621950503870413769424714187490351481758092356525765266587244586523712103988022387909038961024161531602772688476250419910202674389267523260178733779896382387990329338564370819438644438834585997000464389568705645456652201644405515741449490852662853698360001809208486300212480010218777603948852032381797362162888095486772910400331509670259449591910548242718823527307716815314693490157267613792136722875905754530653685233121496394749643280919241585176409403194706595736983034312225810603776953081364406698369234528132306279816425788080704269575389943977564727501169892763923888937892157960886871571238107967833387019143030749552885997465267786734490533104038641931338803137922180912097700208503873065564536518773626975508232668395803799357988497473999192763410741653976740866831094890125922005523740806206093887782431518168854148052888521147484354117673419483234379387882972618542059315971592003767400617576172306845419896058984627561293369446013481847314330612165991596745630848557580946926987946325523537128026868416879076499334633284909038205735506204819710469863457683983958088767784071913668166766487461097591004884055825864733800919289388961674171955852117398083724438480195745290553518915297574669907064761665688230664175514885437759303516724372510270176109252817040367523027800262950436200635733002653601324385470446866042306533709703931227137435679650967810488233756770957182969075271352221530784289004185415595803156478265972582312001055598104831467386743807242472544993368924521999878321838384679973671212331798701757301637613130349142092420546224359961086368979111179066028837133013205233798343807959436886812771278355027610078263846152178275954813894759759603860657948539923329285809666871870543380189931903542111823343449404352940574446971870115105675246103696539619088200731047155076664494544455569713050227920598767948407946707633136734973956516889860204285506591681364995447708836683706946727295913151970475482915918022117226641159466590009719951149095029403876315191373676298282441341804132747353445871021646776638992356880221049915390734211741169334960004769796462623818795270588224715956349918622370267439236450625411266324089013913399780950798841113117295322998446897798826537285552208214785652515858000305272726236533169074954737681479699845488390932831203108821603729254995303486049504688880448091605729686912495832527584106609087377669927721606143433309401327661107434278435371349771926913867616957035186519888075555542591539748995543313705323496013281084493769004930609514827986995294550417545798425169202997660031941362337965186466422713890793030954379398744738322387792011035901523044601482016450264971253055816477754103129442837834213151864218870057808956806303367207636546364818806779580819995185188051698313278445128410905068870506204582190275055819244166100749030400143254096699087368260048355435300212874059200179277285294564871424501243603824636856954087213872189669568880474720080042329095412271603394356796208595046031352653983264005005804745168635458580976106399683535264660451469258633343716898299434663642489424126282808847585162210188228811085544111289284534025901391014610384582267375126325396074263146079007351795100226099088738302759005250214235298033662681793054754581062403577790874232618427741435199707722207638974890504353007935073476528556917084598967754460827179421936905592458459570536123363741380761000482437558914119799941407629244584605790729941032959743186740057348012907150473424660840787782636162636754625474933584467621799779053581022410135475666687167568717723505080907152058204015627618848762957082665395776127484925506669786711393405808354633649381794818943720955948221589475852518278150446973180939067022832272975833725469443581848755179465718603881847031112476223393539673266138565875988894521946100690270163942584309958357802044622227183524504848911927790561481745713091862859161443777239219641847159734192608424593321111343340093589732827626462767516027810524892064315392507445614892209313363530633163756445237131294345793924311968730951785607339341014586979187622623834562413150528564029554607655823099934405206315065342480465145725341940539271250881428366190838479893400015569924332037538424970763508266385266129633837338820803452351291188785513102221633300741138423603845523615449918647319586987856716549255223845876100802099062445853630871461008134411765360705425039381133257575972071227929925881018819928943303432409644395421843582799311839668895327102684414718906825476259820657132676285513163174878858107504244881360040240388111764321470028594791192022627670572826731369823252605176868831606091758536388055690284225765750682903381682865865203530992372376909787493861915861722635261438106863643196194218903484722463277680998872946124161542815549378342139730019462764598915756658413808506525780601537928676919645092009609948636651968697550190503457220605302866138545591765730757162387216792622906655339778768037853126517128290212159000510132126003009829947747062237381350350025878494194256717126668082565663471452876321679059085670908639386911917846110042127054981126929078432972610287415439537600719284470225881047415551223087095050253898515534000956784600978665166524535515310942728226834477023886767919263115170841419338961581881680787799121155482429924728514299749012001993583805464165141308426112435983813962990669857946748626874694453109718877489469162736224333820679764998494590642622519744689507659759658594215089049252655647607385968526114004642390761915212984250730848314158871776230870197447915445277693313324499508657511170935984483962423678681515822738014892753708700441393015997265604907394925112967945712799014205825849065316664247562775280493725449805887596032789323711131143152458746102720743083862534420920592048407734851574141966941322627055316303254819943777266355742562097251007124323837254551409055151412754241626878628253542839969444873329384791488363600747013786719063822849773789254781668906637247486166856591133083848977271052693259682904595841952070250841940045998670944606973101630407502591957238846255614267443237011478150400929776529789906743213374503527996615044491366461679421378860945389659265082812367039972891504038087085980811461772067434473482028668486095626272084133001936568969639595091974482629957801064175873003156276938208400613163158912144500813168808950564509997984834803613182274433790777227276304510622467726019282981790535252872767687908525255466059896582782496182589127708046003580370001026121115195439852618123092295525994188509033576984883697174592437639840368357714483326345802794425028831607909602406497850852221951891406576708785081316100666338575090371342214183146334696563024335057651586052677491198385932445361275535716868805940602137019803863450070424874200366998786068235858884101686613882893121945430157680401442699183886985698605683051403425561361240588612183099489633000893532733660108750013488569590985747985173488061076652904878183731527888422500208639399906632911199398829736321996328992014330766071904676036208226584125764820644729736743838007068351221595085388070409749631133807170177119592524451233114238658117508131406794768198195991328606556035660795195119464931543096555398190620057706486969452217388252707220188774226711765088840514563905067860469633319076490748588957914811277448571291034082155238133145331767290723276999144532648145133983535898871506429345756246165766990601570240111292127318766779845665217894219493925011452013878899176124882412570151103967784440949391644542182940994491413320060257479297264894308948904128241185018242886591866824453443603330688077710830614108279265671850258813834143944272988506480050338659863639322438039893969382310949980188481202407014959456666028138844560889332852958352718266582478759519277163314967225603791090676227539861022905731268052351867337139609149282805480929602095630030259249567811441141046033590191100453444860748638805713110366680202688715865418205343068232398339782452964130556692121688123212413541980488917899358233688000257571090087168978195365146207532840543115652994993496352606101370565928470107018274792702368546509682279852370018305755548458664434933592680756471139863379194043335735756490521467466431233564624273080018951372185986822715030793459413446396041045470850493179702058326678468684410431173962840097978226975821291658195494743854303679466007029229859114438815565386256371811556703531064768034757876428287395899216221917684777396608076279122258587502931887204911592964326094678316390814983058840725399140431418304446422480995601394053383312820645977429888086718605397063198704849014968545674527449201305871822882016289925733721786440551000499054893551422019905768864756417044070422113399377325305328332674145623588048933581388246636776724058746681629527819327170300284858622110560311231222394623360822548598377066761157022235625914511332891931423709937116873442603934409224227402363416313972663815895686673877686923217895532372222606636669753626952262891168243509179895339185205062902726463188675904621010552212827433071276534622648748066966910437100789405901621036492418886526440735632429704026365103051355581985458398133018535460586462877344975789270855845864425855357602166527111280089083114149285802699418576849559108695475074285293035760234335862007260308821742922685808991300491338561381466342941738088168922905180775619819037576000918454833883527462141264752842236054089643470150541117442872909886583708440391349797362576468699839135240687035624055046084118512717101911916112223077234366910411934817784247990413398063427376271094383270437845702560658035060830664080095736918088963913995920187770715480622044905470749297637106154912955800888695226850564665432512562244098160085109167159354553978135359240766905912192288564067278195206825682528152996315546982681002060265905661829135355498932957747953653778106184507953859945483987505100675278788467888540123558590628493576616188031378098305316465345241932797052163370004953989453618960721721910936709970800338161425859305661331218687623342076321903558865833052603370935251165661229549499780842191504741205916814512821017081201521076168950853939840275498209478329920452005951019889057467971288169673083764396946070552915719522634059732240429624858992592693428990427106784903178352283174007558169703538541036430034564253123302835815036036134995770761349549153200015480954931096023877041839733221097301722636627045271820645923182717159549097204975560950856931778763431237812155898285596535658790244983859061444548361246914916606931605817133663099723625466615587916306029708151531875524247529541123466965179031017588635346533000028980229814247634884646817233834804646560361471129273694642177999408499050964511007013251915821808209873858665202091735043374381869247650944395856575576987969029937077556208740359802999097598735992876197561573003089210514869527274324159385501184303542850384277333739348916152956165403004609897368168698383155117355396743747186621915345719476952967495810403673230658320865276297363230617096216045030576286383403419760324021002185974723272959051137381448323771244639952439046116575551938768138069000501743564348574946774870956128909862272939430872335921914974364295562616142562505478754424286391479101817273921759363281982406284042570920876915407481415540257683026810907012751775176583194290044574333936765067561701535554378846390593354515772969833090502255805219627443594465831677769015080418900880955188546969430654362294903079989631169289114581775795979556593240736991873656070061858653861713584160435484241690391546213732656701783926092507057562750722164058060686909088010823325248534442736741438471224296815188533686297599492121866925221424023354798302530431989193528947301214254938452301821591610355160210156748753262017333353380422085202608177935506911493336163964896091743827919224184518840937810208459291300514963943851288326387445055997747861614349460898423818563068062949106758139673818920017712529299936687503205840242803743569878397530662055477375198460165122042236155918358823641498922640163286462534814285379125247496564000753849695733684102990852963322740868720987177815592037210584996900103802293348983592619840625994278687620441279358132981515615451192678369333829006347205468861181030232644363735887431769654592792572462271264197832282330505778627378429924128853188818805171427888082175919445071375877779238587479644402459811605692894210482752290964264067567214229520472046748234577305096813562761461361526197766013536420620433226964596458473963038295185698086517395450910682940825155517309754353030065308535903985999310269602146519444086573768028776837297039226555563099149033947375300922207889594923364960575474454050182140582013906588730919858625018115795433339362722585529894419096826164533534501863492362119982283999022079477313990289279416202010784685146847259440853848036375625216834228372114250529246786297840660637899563561066406868834153824221615923322417066001209086909850524644102698017084609821245330304410857086880109707898926199774372048231450354450525019611928387013596457138219038066592317505280103699929651069657263913760518013369566943499453865083935483146572917107576358509884049297684110373017349470867556967603775245849055760319363260117377843041492378293238642588167018119948687981547215125533624028731030265250740650539014691498782469958320594247118158552480765805840691402445971335956710114543127197390663910790607824905262484712194786343738831127749170026315655497475248420683517246061737070459289265744538506025534215770495255920714344281422880656698054500423196157797680506698898858365064014210152292078685110093942447280057175149151426909856404118600299209433093878753045180937629843953464262338141631575197147234788959802617555493102738677143238160347917572971866847053135452868518578534479682579330925977893732855290812966526136857748235768816980189852838398436523889131090871125369949578818843067427580070871288663182705915266244686002277002052767002589599296015823883910821734624123444177078909475008245425572782875050142164713413679677074067238316470478347214949672750756399961623338567887418586206645025826924441295533232555556635661141101919096833522912469090022217313228023105312140360209752127859195576609544362811124767082432814769330131465332246603372840556057255417368281752811286189451139036536580852070577258422825881634434534134933446205103445098910230862478430647950353564995344214322025170089082578313582550855770490507862206792140122366211871161416293770902998740507054311660509747396820808360130471637316730756577020605290144741266546826042064151415907314023999130376773210312444035643336619007134415483982546207274322259957391019421736601165520254354868742381874334050204931115679906816304565488486676119547777821452793006916153319788062628305926454380443136671747926915274865177701489023266213364107529445481093191347976848188623105784207707719353357202630404437316591418541642292374734834262460257500478937589221164329324342759516538494383454657417905896508886322143365069452785585740835190465301854921480081514633644623983474365804823978091677396134044900349136041489362990361159994229253021442760610454793030420473969328903493911099485287623538101548372398756601805545308492672740772676319288873560520152846518271509528431663944500820821696292186209048727347565050289757827149069674391549850875656954221664415154225423940732577107106959651572113758828368263970806557103631375283747959842569878985999755917341611427883135406434078346066953381414427830152304002157204110547261402937961124179116070773540773078529015819452653967118837267077329388218347127044966416862763281759871833561396558634008726392635559351957419617693396953184158345276649255140186484361709799089023900117092455015522371750288438248674681739196182140691611858038035076975979870411303151029177096059206725445751735424352978543649417321095129086389340595387069261150217755905032564346107917276754154809438452920131787845423334076313268344546679759277914473324554909972324853299707522450917171973111096945764666556519461629563940632378988064146141034615177850572938570456308138594171100452395272022762762782021020287021359938475988998729575043693904881196221782751169817078073466736837184171166755470589402475926145732711476543366378567532513207520505387242505625633505527320154340826847175394596032054827563304907904343677122079615978701121232379427175525034654326923103283128880774799188770969919934553227438660747190171286783579860102793815384689863423451134169329658181143922500651099545537060758372285234138846890348681421004419836120331157265947938260809548113637789821091877896500877461604788310889014149265273684798237592458586633158861521489992902144267449543400566164383261767106178740081605103683066687296949034110397013890267412082662557962284890483804410046489445663319150155811591175784608714392890973555999473418019758554634016745798756083013266937256380043967184631501243399363124427930051720999790250521566631625859721424613088655598103973080758475777455205811442369937301090039902453805424868531439469507801183067171588044037184971820512277106077375207978489173932890249174386382502272778436768511516495729503787486541865800394136769189670896394713710294747922310351635366734789255034159472243360496392319353777931094826037572646289174649213766309825011430638702494490624161107317949917452299863291986115733296278233753607233413645547004711967766099029656660232348472524801497633579495757855255521906976466857401135512201883537075731971686199387466579249087742545516466857036687474452998870878076561292206298111992494269922027426644515513053925850203084186320886484112950522800723695373285514805337615898964598801365337603563145753655537707800663003022573841621741181164809335206463087871262564024312053535892737212648780676128397907187445137842023143173651310472330349666806629523734851664484203679572149592724489274999896795112573624224097015620584210578259796203643176088209318698789945710827807116716425726231180414476458707729271086490061787325749345322907313954008060291759960429929937302554222860082847353980475616428948665074058570895269142798463019896281577193542933948947271503733859737229244317166138421373537983579625685281064957176065138522338497099927071504007745057719521500265257704593728719092602756339360707591806081263609557711175912953329372514135074973651128282365938672332132782785701222127577576684361463512944514769435598496181930387686781827969888210524959244572387772468624824626903308159565329151626623731474608349202176098332436047988000618166058594442899708384472131800647640365887936796214301850989890044767830560146846544620576941267017633711345978129846461138850312407764061908910668436587391100223322100379235881769824585112756342553035108189863361819697662513504924376379603141991951850318481631398775095767926708783687205623629874785056303630917066123719046880195864636462658029709841220130178751496136588397172963013730439243152798977338091714705441300833486833757894565331368669300754841755252180421185603667299208102698854111373017654770075627775736277047683430666874685055758913263581172263621091748430992157328659097521260732756133190489864794112009010448068905456796054789394803941634383153225144281877314998493451845629748582264682964761421836992043663581875378790353513372588687583818243007077838023877322761538401503809278117022317080076404051377045388731299813754906910499243388427287344226622716247976576492900846420186724218847434904225206404968906432984853027008237737081388319120503305426431106501644115478548920215020223205073573368801364633132148893956343220652843229538894919055414337100564091791056187500571943455369304519587398733018345559320698568940420593366578035814165758071582583767597069872756873032157898309659039739962043453354344662028363330226358432658403545439251514309624722919682075046341398512444931604127691194850788061416697512439031668738796733625526649827948171036780356578119820563298313863201660504224422975064990567976327070154413047215482680366170044894346962948555823298656553756476291698765766851258871464336611738785482487257886132584265078348078700421133773288500972114620796497735903102631002795275070329950141071896834009931144766345919359356109626039862218925184536903139380285105702217617358532717195654381770049387105132810386371499955448678052484375394734945854027661902069433826189667458986187839989549451455220021440463119568016874019908907513127316742391145449169580510056219777764838665005011288432402517665037764883983857277122930832305420209615111865687888476938513716741249484638958552542878746947769445168141336776926680537593315932421236169344453098904191590508837792808794271261325916778632972741591804511145856104750347926174328931217466112512912171018189017353523293303369787359515912424806368479399795152533168690004941955171586785072964638289357045557082008990730421322688567731225320202252867926568308229550109148271961437370756145897991404849326818674062314397539245278974138928685203937100538408564190046286914845834057094054888738096686795845767188091682424586089941828312544666564167413806782064748955187819416085013411961297075224396483671588360519700225859512486709597376796344725850898213802208552271037756778993664324669847814383540757777638060676026080954634740957362037378512773453670232829743277699950553924188002894367243394644752968693492948540145585516823501196468500328923052153694016712746295055938786153272546174838943811034684244149476415526063067277805829678268320850935993909803875346441369928652221480046618269828055797960981773096130304910633286616965451281843908914177757773193247179557994081857676355424167514351960257882311605202633363710678184105118036872127840272552915881006082316686626799884759227953684021782765320606567399195633944661178192084625056042452344656669269094720121368767833563619703624274263836271553860669013694806169013334654140505218704119252071608416549546485802686071947238777644014657451123402247112828802751189401182115943169340613444772780530378767307791665824654739552418726402707572573479252517087988409346559051881672741748248909756437793454859001090772458495954576756945563392834987019366121590801920879176270608417564510800885260262824899922941558374078108636184264120680873293389198007043643638234748078074328373974745167400394859515486046852013552159039294336368097340891554234775908016868046326050298555133647540666555268814291543672743489454929206013439724339253359156180231561114448730130019293136605907988800582420744395961646219930371874693179946251314429953132231759594299357844228695327764098543093145133488570956456670652169585525889386141384712395405632805604467799501805544331579857877315645215613071967523828760774951127173545794646324799083009871675747843991101879491168831996560001034972466779323502484978223453951472460324448368594120155422502694283951223374804170682951329379077407839275332649468167453749817627004221799755130787434719196560375094677606465945022526483866471731177433672994880006018450483002060392112586575376393521804224426278807982412742796949133203996841357408607916835676931288750921156059337958701336970186913398208921953791146499074321403753552942324236103670444487368242094467122887773190077099745338036442359254720604411688744136332461334486848097653437399577886053203583808146399190636913458257827157954012828289535877392701047274731083541803104068640551480509189518760697968942571615213410385156927298135015290253569155717538080357535567348873982217449619233060172210321582370840359139805638488684005080931295582735575813663509669666654160419193160972639608357766603621464828201274068460361479020188999360438742063284229839106514252082382290267978729510274793745195129907938329892306730150684720405708119312512158601141652382827991426789097844599717082190909628842596693465573773568358426442676719360081753767439019455576251562630381450743709139508370862289548764171961729877926962019990366012440240352630373785518959253761333972041660410423211663190685816672350216512883478760916732693401630428676723600234418281888083142254410651405687274591169598673125952854364393381488619782810045954632839386001894188729530746812728491066590396761287131572380139869407506026501834002176225356427395996424981311895166332566555463048942203189442612553227369484225841083327949126015843090435236448113440174869375487118929948839049671826710257864272835093443260710161832930632022746067009014740718455011498492456299976971063284687007075222336870438221739706628042276450503788945785207866311940977501212731182833886967119904960726373539253684880563496831971436968144049399284308425030754826547762147452099904989485773919980001011848124072440128272794077111603867680261765148152849245738611119013090750217536991869517315849350462030388419652033726289873589714607331050858578174347772582613542735688440320484231449329736254091521115214909387321276413324372767011042082005627787383087428741246432734351559617860105182719980985051999157605476812696398489702416654732033036737873704723315583111680569241888264674439349337967950174614819328034487995807427190302619525685865537257934982168955898827884789390165205498656668441553670979112699320791559700635488043514555886289317964619030221659966804149489650170375829023174068918780518859821203692142441087544213907478121224747764942921142019133336725363246318728024926693092722139188380986296763468290079540302050411903334303440390033486050787383409102707141535304364892464907124585840095547726424272022004763389243044457044791176233590426231040639265279833099168623239177870336097036899031827271625417307975684207815382042496099514267868471336465705448382343888283378846387206150394067688041146337988922376109757312891351789527464536331156065079458701983733217578879856154325170256852535480951642240646430571755299388519643196293101500995223495727388955461486944304505246212469700730212200966067079277914342668959854564151049475251636497034938346293122103239227254041020792326931941407996075565833436647844244121682208281641319430495963562289758026800860307442984211570737391569741291458403859345131259462615402284628396016128665658385411985452709048495177511268556489601837027112589773959365252738665386044800365207410839663861968094662203846246241770013680940193285483510527930478347889680581335944798674111006043976000778495455204057694840924472715061596814081007267175131562920594478805629040971225721392888888591777528338915549501308722821300959965032620565201461699419044039903238403603105245396657969501931004452947476354983469853887857374394042991950118780005135846474623587657804920497954633621200491360995822351644708509812443170194523117733101494570067376886536703410152274867917598836607503404236426453143433053392940686109715180645426615682821266795279153621624436326551427312072366787649640477510183112263518831686341869366182930221859967071255769159375747142433669417437553116940148447665208642624495610742761887484759868473649475876905475942629029152641931692879229136745244430654911690283099954307437796738074655713460463321743757251395236949697681523872695075126018359823851855919274159024092790915657348267523339129607468784070248665922871778505825949564927291331551727864762368785474961859292686423371892541882527541719636307633579342029882989385909950491067778340574590980036822223981970348331250942376112050724955882685883274812033313241106240571213684242929747568962728769772628494216467893614581767337579219156584326696002613245285383385518958100130037588750376575020078933865620196496376023618791286423727635502001329986392532508374965322443129203518493964440456024282117390409391335579682185042000745848587181535553959714608715849370620025085458912562555569128567378520098094897824796626997759007634342009214264274528900005423549342590747211769669605898086309178230190890621164903841210849702956617783307347519038236638136792457805961210129569121363610832255419790746255097939282261189796072020693148758806438889707576974919223783497885373982706827585320679724511984759923068784388898079023441692415253605165835645786032257631525590769365537412774557034992497060004256013566968484797152718644847122437007916744299456777583265138347599564161850799665946179450765850391378635156917037065700356882843952344652096850902252349331656174977868447412165753513554837683299205169232532745976583739782286951380203526374488816245472143333283917488698878376229010332917356566773298914943719784847007628212600790080613111360002408418591829557300197297767026100647762218090336749273277947940552597107673322504608475495964628697017200758763918943871440171003092434576336638364536263711807024419717334293544273084848789528295113807523191294119998604217245536313105940035021376925502012876828873383653206198967386393406188872709675279076511655259257041367403386039971678699579832562516204114589463050401630162594273163540494239018235219196436262195555878597238194835358673140063466203023382624593404330962162932015822217778109866676103397039811241765757071490591696608930219631366172134710332892509113653653105193476519151374346842139931143470133700849984143268108589028685420387455278729844844040069376790534658348774898605064252840989936855649541434391486425133435887557502633232609828262361502713009227434880455091611206136311552366747844576162812233659177052348704306126156290428399751711905260113269600910353596261686239472479563929807333750619828296868820488514161690880529849556177821072246365606859653904652013232300307372633888241716648459574824607081535985533327613231521949594815538148890311420445385121159227877133271111650752484564723330031805923817945153914589188171985745763416944544739177872627282521628953198563122115188213893580065205998311164053961208361155197121732947859213072915579249939155141672605767055296007356232527076113449033953317387824042278823790671530635254797071792293709876023255200423952361083365334111369219048600300519673505175491435655703718116596135902162985949716012371678092993979441013890454909068158894225630233443686793484133110727179199880821136880972814641639523340536737732680716356441276344144077166032297237336158687637432406299053468519612315367737199158735573143366317567377819513857887923348811447407255627191640187588408676764627177394233760362251019801811575031081328671258761314158795271499921052957699579343008649371374637147936540434499574212699801559668507324613200164428857941859726436907877055429166802631031255286965298605228779264805059351792092455998388529661657709621962118757544916513013069890215927243414388334350572998347944067507667312375776606221430795576837960250046794827640780394495428462932408818819391722547828245464693671429262745917026252556256364231217864072251832563725726279103459157009025593544077090316827811245520873362016788707999884321397487207830322837166740120153578836439468915335125977079256236705647172182842559979829093600859679128010480711416927512951954512112604461666217105966802457401999352446529524863735890579402935838712793885603954487829135251211444858584120579913284684081978953584851608481647153787968217052955552548128319456574725938510504605785891310168846392062362352562397706147836449538781255827589584168116317615684794863400669781390738453179773494443770405904508029899920652132256720015799422469436640545346544204027385178445433030317181147948163059041437084896177750573985154732461986231025537056426569445286204304326660978106678868882240305506796455990144224551612196379977060474669226660168812027743134459817027333592166355792541383134281948517618648876902884791135583998160555047550987813909877248736296195298352811385518153647723770862513617912473967548561033254404119048130315569681947075324171508755762992079441910314845568054989856082773776288906568276468391655388476334697961919130030235395990610476068784988669494769676471387494576471336597131642686951303361873390229478248293249954364368106071974647818979709314897427921619699584872606960866532147665503120894576688751054534421653456418580036997486747710956409596624013841244468506063251649432783060558318963421891617731177957832924412410852892343989642682239869213179186842461519048056233497094903417403057501666801498062244312682007870816982581164082849819533473505788092097024977722065025712335364380878117649739599414105275738782686918672170701380157983906618707874516312052661988172955222716977594255514527588319709574137880421130588930308109627463354828784440913765803092406167334747840497607317821601437030005639715690197202794447630878541232008075978124668366376630863069352901312421210691438088900349583592873297067475162193084802102194236607952780561938035307077672783507904166674400394781780973770187044846956993416679935639958625367416587330535180749502091101659358598464103513673574571034578558519687650102009560603004046315698389793042264223840277226956629911958583763011983074441958761488689032983414837204455326825813169518195409902821917072141864032941324060814467395728638044435543652137662534436139952089040230572831612186790154776826306348251266678966958408868116997440476911074633754835579729938944058165141046582302346850288284354925714517925927840836113562564075947492334008625557096249007331172342744417875112665647037411084630105358045266394370400466069049603172671398433556825357680952728339582115339486102256867435037933314994824238251248044028739756618210725468002797083487578530579488005172677208646080593896869458542488256945505361941678149927318039417119371469034755029952769018561274102672837529365399494957109578461723967325906396292234289521061187633705447603568808502759135809914693123281675129927175003927364610901633450569904962368707739048667158565310409118738775474527627359573181063484356695931702640919813003485444064746084317577429524930637981632873531418402065273163774266077573542100217220429337230257343096287017207330201357944874781672607612449662894736805027339231710634727616915366422297269518496419982675549230384716677899861303546776268262102109021372815877102211114771629560028615514767898732470370499920555684929579427961534320054911002701262685810969216430127410936407048608458480229017781944083025690843433127110572602666330256587686316948590856412792145505379967771588828214282235970600291098033791689000774470864159665201799263980246514227326294685998467377872414421962721910844910408908265461231898651563727932293244638255644827474111789468109743139531395490102864661612277858773423317168109438304740873825823851621799250959230565555447828956624400438597712814287841634782663347888709351599803188988473040605881211291051984677210172707383216459381176520693233671699543539987259991141232042506324415093871267204285750604119200660983990313966427418701873868823634691655742952624099792934463548270271090847475934746091458446820686410364661428252964901119373440983781442791112718094386818269908845695132975596706182418371283106460629897310827603355391818214532672233439052618518433364792221949934638985949541125135924849104761259121908643338674004252407286483253867995764331848168404043352517577964412810854623223546404581295124015137819372343037524132443831459232471802540462222064621320845767644067859724046414997679084321170468025849972531198955633510380485333467056991601737319182304651695452242104493491830173319234639363569978758930181122103658313085587446190144503700338632180290896167313512490417098985545526426200002619171275773769137277225070459051589104717428449076070691900108085340309471706052154253233280996639723692885630551411040671499457397292737973565760844816568310260913553224733833395681426106143978094996671848567652552994894695007361652392635313961584555717563845215126623375837084202702362412927936048671351986335789763490973351130811118346135636557903460112945869929549157400338245702550668253765447991036953568872155097962062227839484732786330455743901829798404184029594122890046505043148814726528879975986375811061246616316316807657431899957091703990674866370495875742589541818625106899681178857480804670223427074160378263527326764931539547949184469962291327027752090558222159576613997956568116848909959807438454873479847152950121253476184007028346735063577246518627807135696798780605808093690597037482414750815470166399075080546473683461285007937860236156575374461124728170652089829435223902801284512944854071407977591086446727826477912234671268954339686850227397951184322844076638234875008107232888450722012980949525372962688004258457833164245876285172006557750666680433709536578233298700889626701476005563660176754389765814625516775091747238340613746250669568288234401318540688336611672783765085788302875298436616528183484716555838342130719511519921224146150811996601180125446969865189246599938215272046906005944130309145777382928611444751656185961015410186433094449125394901816355513242287446777275208648918660370995419004619898073103478591402928960466325864747163499776313079283129610727077035092735123032346916247897594304099177441148008414517848831744305809298432306172734750975406211991410193835589216090288727100041410987762268653657694285435918597226095572444928575021315564775088166368888581983448303312888056838115762710146871717765880009985151150148589791696884132774444368032887399874024688908983072582934873221008738057612327113561709184022297174202904053588462866150673184245605217665891887807291091029169723737600803354497277911404622277634799033745364289291027838290727141591253377803310106902988283767318072124746063852475081080642824465071854058241675697378966863009549038509426179191030011347258531517780094962800676700654650111229498394977775250136068690489111373695348914386878005808116925664854378119182077962861619972450960662430302971163879049533206591754883295998172707038379719849250268029844290445669692160839745410911733092579941204455976693656359236828165297694057612424663446692007414784270328697587307731485377042237612580660947260252014102103105600632933274023506260876766319880607416777266394953359846556237363706382878608932567652524814500819987185788115430567727467481698915149925472525089242655360458622770805454614479574527358085111031877023177662902737866322504822056435427552164777877538190434346542186756355777072411512420093081770865999205046237954313336678245890064019265469462257758176407925022083081742488047261224269745236695010634257196219710319334263442292600877505426562581744771354300345950554643266747323882460818916011751548117601257602995733221561108755816069312884452300531025103283526695024595310481083125352574288454271354639387712347294064182995619981462427580659373447213682108383595207036008377942273893168283638375952096603042978460233545219021196448582350975135983491459286317312478821609975031180101102505870781450103415976690712597351768615811973001994810650613403336533238125612757889484997582474816219828045888133526183080293934240014102558075305380142011970910778647402344000807383011699277853885396274516615356184249584992126464289528712818531860943307843617675280662699197510075209056507443642849991554823016811906100976069206904094958260340354117811507216075629638906808440987116653824200593890399679644747044886368683973664444528389384377406137539680027877205480047165302818415719622358765361619333015203704122640740460514641028897017958939179851081802762936665388144370015533429823196589424236922412230499241842236712999604660447319703087416312992079804020912376986252907864499590619123886883410527802998729652978061125185373126448476452494195998650211574410827551370674088663496103868402803622529637152342037146101179794827905163223124782496227340649395325161250804781386742426988830541278881875051269956959329185870011864278195853415135857429061483068263368408592893009047926503481987099817280414998910438771014068760066526964904256270501540403683837100931307627902628666202212415165688574038458441489681988912521529739488074123006711740685587256338590978364235709909528144801485939001649689074566791829422400289906510363739582659152205251719491861476147692883908137922706152757674663709676674806869162619396389716080136016117724064012046559635737071904439009814801428899788569110372792143446989034212977573676816028720211251016164522447540390517278161460947177148416044375695233863357576613135862421327655512209483526218929098524978442186553694718714498893195325929493876994680195731659301953792727434067459186661769496519924996038841531702256225088414021628617260131722793927302708223855376810788939598195658306665219438491931270513904454718714962942096467277596409548877086691935858284706635195975903936624531348274161649092491633951141884259494638943031445165807868651278260880350919225329341050677896146545525681777050140647697682156299948818420081584072431902604062019304595251119666624118697085091254741192077192568343674236761326290623974773460684135670527859192330095113181385168396323789402396358062260931140511108544766227273687083997620519864142187532496269168016966031218774665843497718425764914668963310536437925142859425800022994860797179581535196028819366168293385445872312488492251962735125214508677618919030944325855789039408382582567479819916010668846002203245485703430429016896375703447313883370119075148947458456676937654203522154176195812688404781621945267512023094242621266152385377849425281643341043657598581125992701035574232385840947860644504938002464701044993437967476783592576252117455661231311737051289684477838642813455881833009836363976041381066983025833522732167834973858934752321082934542317192883556220963089347216157471132297689151423802774235815983503461540358172603996640780835194702770836681220234101865463448825833548250410883041965361824432581577102233398094783966382730235944647027992612059814749325237161793134871324612732937655925360873961118631515230887989000541392373357009466721913163877781681599725568385588639247255381061934987873734449129405957100087531269877661656230999364125726190886850771758416252655645363205045881260915942208208314359635996064448428311161314590879881747638861886082011517732275426982432225437495001440610376435304099676284499126680379091796862829413946191825137813595520448317974480725663448378481469168137795299824099987133489793264701054546723159899133172392713442515423030599337705724020961235273217989262126684941352591813228434131806946787818133459761615487136335402395530334541610708942374310180462103648407798169064030595781732835969027657303091860026321088446899674606366473763656954805188503012119213921606178909643774698960572351516310004475252970379667527154243867763727315073633247049322694396479899827102688545490752416475788670407591780504648269416919648724276361658936962880058287569967143261375287207853311331097100452728945515410705189123741035806680102576176880521311598911212725964403867420642239162145204660865525916090093827409141231241536366294232952975006951024330801450139990832017564271554695371950539815148923309137869795503783948646209327649611469956440861833440848572002035534363460358506107400498939541296317566032788652726057436106355633880708022783720670237504197393177512360293463199204659803189261817135513418937681249774374059451716712327366335395278692119809408266528473273714170972579969408061988073357386377683213172727644952086049154260913389025920087002976968740214315540361683405728058007797607582349357721683711241917922777265367089898792875447893895402698764769957915446644848320865242061585849720923381593642047427794399160927616862877839521744754197564011013852289106176347534870066610609962091647965071455639502490440032605200070908482564899305526004634456265774050113381965791559617515528076489404584821159549920092100968849683498242898722127542882051493385889559465088211677456852522406288542646884481318467320738015541812772803003630402898675495221494764549525478313008847474312534010766135871991793833532804652840357573466799200682751835238278794369126831811645654649587859747794981450939524772890741861787894038461916523013344195653520779396504279259648052591881220746591266757121702184217306962048446055641858127768965292264929482319228251500801179757075015352724666746806173466411951423808716771205766944569404087300896808296980220333407285582814027276873786728289748058965094498828310571314670371639867309130852434725811809907053980954885020511753765344556122547518709964462988319870367985575848615093454045672730066955178922966397830376050869609807182428876352720714200078041331877369451402446019538473312879759521074501068577192665766500417685484186956472697259265901665911173948105669217256433828597347513552280777423560012362172817340859103599968017767981391186105816683898859842939673119960836408593869675929391806001899912616087426859406918278032160214752677744630455442391891175909461491003059493586174774544478151841991722106978205994105605238921477813939789583396915115566737888871771824855973849352178008120428198806685571265319416729063993668255875439797286945024812379552978834972648650013787384854422327915360887548402734086989397557735090786850351094398334523461857148240534022321269945474669049577015096774185120585505075297126905701444837155784417321110885091160168449666879784697501426697301121533908737485603548330724076818567102400912340832354059971594892236025513641410329911983680992575243283000341816011048931077390926934346470774769568792399054376759092913223144409296116771306051149861601315184392566195188693524566239702805886762446087515847508112921023275225377099841981265130882755042485956025395126306040302251313884776590707679511587472063833142925843716686226275230391912422029568390344779061231210374644069969525854243509898052227264648701574720785375403824937962241833086516986387580792777592641147098256506535593258728225245998303492835961824535342186561504166854659405882868121948531183750256104246481434046084935412689109423965309734002829848435379705274804531391161519412706031354202436006606017870755854649270480437755410767648658825037090300704495457513977776788078552797175349424811875672687543165878963150813436847989253739523353364264610909069070604908343994977442463237337891302381075165343515731562479411349218374604131510925855860093973916052691621870866483368380257416639222332674434845987075548417851334807754104167415251952918314011900610066956870735694547071028986110831259400180028617987082674505775581432208225366741952213120066490635615754798328314217510255294747003010046315668634948299630701629273538936191632704610086639663097382078262517523532897091586866665370979956131954643811949399013631767041350403538261026622436590285320885697131752038841712074934003081297890221323254885898205488908014726645561150312023048932250025436899571552969600853315693914871306205647052655368212316390402317871926412648003016592197989871812880515531041024935735861172584812243001879137565643371094483398026780395436409954902552773899939741293140714373237464081326441673891792062860200111832380389480158378796255191151662438976203573980143094956507490061091413871603299193612137779848961827995258756087916446779935682887644700993157376010270366474999413090997623781061392331761825174070829274689947195266889857596208573948519007358186422001078322867131451995776033689642686386584659112292826755859640227714857674431181525585482475151617400846522124478878012944781231930361531031050461500626482770024130864788172818015893552983551484570315198501792807554418027329031141639291917208828659602593660435316016589524756430658904535467626317367993044336467809819111754240452547846390655666827094645182523195522247395900985322306621694210784362065271211329922498146245376780199297062750737834346221441226640901545212831762988170124465290725324709312391817533242725391352945131568457756245937708729848078630129998031489148223808540167305894381977892380014532564154967779513962718527689446255180009416201420075221965523040130476651068927499323937842293353387696981004928130296578497635247904123632341159828503225263684726727720042974084540691556936094765309813559053525044542885137437880757124494260506029090407313785885390457904548192681894279344545117795070093157992893599714607173701841697252690880872398641261239326584872710663992982793830986943327931589115687069989629284943950141734607895472604265222055504673529392953546104178782670306392015187807880690059552663002369243099673573399924840306091702129835131315051993953583883564115087594329083834869204290530419740419888221929417155543744929188150907361357626359699747708571308146979342667424831435452204463030421171869809416205382907675573922123956818852122985863246848260430656444967490222287706852421567397830070063778028464499876143059022655504715859830150369660927371998027084464695848393322196170398447203372002126729221042356749943479803961107348729731821153465412240615056292194908169225499719162599629205645679851457137483365414289248897047625556170580475582361709000270774375650718446012090737769856305659022896157716117215611703142460929508800655054753300894071550789756242338660730669439671509980671333983492988726824528788527915819153578150586109484390402551850878629951753413667156653780855817364943052394478386033877055585861984699519519247750087072991819219063457077926942513206378391474677758120018938059354864025218972434538014668824453457282723824827118500954396999468763433854779635272050548377314782585580048083336601385923494660378051362787449254272308159453725646934439247002486889315502963544187924851042211569545948459004208050232844244950981495985089214527714708271403219574856958061158511322864509401204008822565471912889633752336125303016097168539995506967318389695827302638504712453951952890279292968436701406546104623597918811679342209460258822524066527895678528897836211184727825946590770458856188793503462755267504972270002874199972951004067100639876037816024569126796617485047023076084151244129129969423162549124033384070372315472548205066839534806341458879037562381000111398843894739425311140245399294257945393925072955073712429760946041495291037821555069861327563532748607617347679504820595472275257559673808733665382486783804805826109438695515049065862374664207496699807061753895281968015380790419384396665734788065070479657035375897860000284749802134267724159232755642214938393477260581146030067008342306853196511500467351644531735747942873750817991193489106188592348295956750671961349865610352631682057483907125281870858115894114171608022684937491413295490830506027792817946979885499702824355952903944013569234585508236305698740291958848267979457186373433856829756834148275270825611328532033268049369425830386018975511912789817217451038106449763060578543520135144538414601567815486911981209247146843589442278642222801965647536549389140506656406224736917632635229625880917874098590517808232998460408431345977484018799703141756974788056540167422925116273210840407186814123657124561260990971319248080498459046909895896252950086349644822232865865875180711006601886780244165699991287538166656140091968104929777114953146105090236101602004995206944254603958762283997293238763115317586446997287932054854211517791880699583710713019091611059104723460632482321023920758638126230163861917508618043428617314390216233296394886689152507425519429164984097779257395547799163444080559357703596935598176492652991046450310863657275410221791775576272286897400757900585466561585103062018527171206949516601060633048056071212962816115916656039960021547045219237912447921402932697491360605176593598269603402801195068308569610588141675319434361127561470568696753358809723584401268056458942475705753957962122931978160694870405445652249807062089341815104503646939131657296696960601829978726995447036861607904339091680077310148660576765508548433367235267752075207020616746365263619804044431967596436021620902918386414795356767723574431795253539501107954279527594540060256842585993588209282586564269736597842925934676414411541258890576557771503837499024595551613413751410271793189485708146497652758449387298940658798698765139655299321672025035389715611631599825202745600786349753919076318546896389553821264294754477016832153749097735940678664859533796778693443679262378684505587470780578735615685804628750808432186222370592612619814900731558971286180989491422994586861662993323235575885491075809560803848494088095416916522896809040005846520225338623314649863013869540038959589687094287045899256916084176596314457198146254777677223218339573544024118991840472293540279042024823944592398816101276559095503602093073005713636842440738270188327400212932119865613281180736615201516470706576475195640287642611799395705037750204516488767603612602741606595566175425602442230609192182952123566666757132335614572915920634452847939954465464067253110447362532539401753779006303232025076050096780017287665412096062208602478828524085656166565421467109490570188328547208432763854629932738894174411813983522280247830887672849391139067604649840044639192573169423479240214637653578120506645842857453374996177856332961365967451934142828519462071156636828424369062550483105523503641637489096830291488510791021931066255176231209726033573549312855721059392239717560419072529005802189540519485024586042391501169879530318592257572280921091572050364119834003266677460768174827816944237820417485567897216467469716828613070559691525983315536670599800259930592053543478413166528271529866226990022131575489385774646005817980378661717967582677192821732742362987546157974289333888415044134553698657383061626503630797986590571077872700564998736838540062231470888913599627645781566307129051982089247198340127249438178222667044707876116120522740631556810586330814534667229060464428238071220467859049038577715842698549943822549683485395123684054818228636580208765244338365145837308343481870194191980824568130403950697892945368729615784528284067366467519617565326462579898196039714050438009565584107073757938628431713128395316556771800081935779085711358005177982258731343153928425367027271534153813758020077751243037625430642034183216342977376753541566522336722657728842165789609836844600845941832682263190190306154290968865773189539724322871525795403720973282960587591004266782668956225395315575415320378883345172500076084855781829491717728063574937000404001628444911639495816473261529247326881489973525990621246520268431250962566639059594275521579091474827549987127575840192761167148896955465754435302195040626984984455440328059150109181102576124376746108699042134253535947534889946824045683122066383515961580793438171934908831214053726597567433174961909200876390008507145305153314436417585316318379963646264318555605303650741928975330009790614633132562398115088757585510584952662848251971237384694715681627800318309833344060032625574933495184084023822941883708338913055236550519897979133957279680385078947943792022685309432519341839905553342178556085815124464450240781786031358888267943939203198257585243661290169700386924259857292282457204110156170940143667018692866505814492481032587005399741870459818911015855954128252071248069974421887297554177352764946950771209425920232565477897018837789848438444622285384347169775981279648965724514546072408180019136825408371563038874704686304124514328521165311340388475253626405564722781258347607738374705743985661769488396549902278769091982022671576591530494325832433979511273670357150975070083833012678422080605067335159328414283737309896112421791767322845014809361807282832198636246370258950947456156301325865451672928395679670892870341866565717146521130101484839186869844363733791115793277020443305488100179113679366208831846521023941987706074310020816769729421641769163300089131450143325624465429391483184454179000558852541264142405089507704754947128233210483915725083980066265990075356893423497360763085326295284090511660001053791822256851783797909632302496200197072719676667357702460371321875359193252987761745491028040022785416529897518851049210823184761499083453341249250643779776552253558107224941499026162559611481911071388150057397764959293001113276590079786749767216735444342228956620440778575982936788080628505795872266035855687373431831053180365841013832998971024161801984061503095432301035498038447289465026721662432917927297430451293897430245408393748028987615445942017535446226483285623577607925876414459591373434847162801809385250914789668730739508867497662314028729516179372733011303063070201411979327206102033077029150962843971643104329566288434612549344747491616785931441856220775305574219400514678990785638169564322863356979202016694073451076783496594260154899602821614406153244823282369612366357922396994955812083872709283102670865015695314507937892508265232821676089652806239809684194152191403518731437210780683048786233411959321815227985589535907658961450747977578514285403465458234387736786434139524056563980341164479721216334282659681171821769799650212070174783141128825486381861295482482793675242450122451255135308935167555992294122675418336534042972730345974228058686649863076349782474056173364166751300174775014802943360433463518948812246163394069374712818601701970357552891267378691821574324785269991041834974726302085867298553872400929824481769952252959735405177671068390396500616654592507945398698584797870464408666425993793493194490236909445939651970367799421343992510565018849072350653992803893332250715043340005969410112321618370314395442681247602694116338308443399572457329064809467103243996077518486063853773344983319190366671610758074734011634739174916552692453525949921030886427136864085785397239507388877393060858111288921259895621354000254120824536292864227335034719291482027870833058827208289621620578916456674732972596912531268830758309208952805530227426131355991504981765040939511774142326216734080124409020382752479224194665644582111344949580586381888441498584175034664099071513093289380377421789324409737222144108343193644287225322969757832966075565059391754324079420944480959544147410491043570711943203689797191152049211795146495406259536120100215507377441702562850950601578254283808779955364071416303511004018866361218918959286470111940330070078149081037785169872219650610297904985379285527956174952228609063240655313589593030417251824759793697597780436666498788828295694643840591230729684159917717134920460871215225152385016174375472411455128087693929319561996095854202824318397990170118851757157174283476044068608213861768095840940678754225390805218306667504697195502618406959988851618906585422932199153233768456773828486133770773577339471099366361286210741770141315558106574955769711524053758339204608351129393209442040737996034585177207287825241715108673055155868074974887760286962374228531374488443665667304068726120566220782003402227531631701798472073483681023415100324430566699329046115369498900276980127919643357887660982029338100572552333259579087475670265117229124198307613134892143708350302625006493618460856357081026464376242572136398060496144580846425889919986013135325879170252849209959319744082947292716400729719087729494144993757752672992819197205948973925668202576249408920326823026154882473097062056237856032209350099387372116276278718855852169692090468857020097108941118820759512743897551391170810106377451758811813098833331837119817759049803898502064059038418689110574916550382386593449415804649330997048699800591800608170814263748730538372224852551430704358743405457644997734959667483735352406532062555493186288275924162288589106272799355023564518532741446236058893167717662324914584058625000742341695524642860611677663857985893227873089739472761411321935165998196293446320752464851564481690181631535639490268800830731456165783094572750468025719453376979330867152087880853137364367838921088148630647398574580039195636585308142706099802046953751802429748625577017928612564807009897957580986924355624423081092943037555078688797923613486929683743824429514241795496605453721800512228875173681350066418685979400089289757884166531808661971669139455172538670659336654210199642490844377352452085058112486842646308560387025390951360540557320966292179533422434255577037275847756179500999358392594376323139080251057559241405530624167066093802146967645338524768559943734323464662133931447835283385911103056529792606700752383540861276502133607402371209546340859991560864792126614059486105848826080307019199654950879920339155312417162073232485222557172656005045450895108347111036514317242842667373883601259616117845268478441203542940892897250251898348290855863443261408952609541492198246313987918178846899984644226958176710297521450356747079234475051968174412603224206463458150308373106251711013435592094275972865790913495614140713518138111422922556880653319445694605325307486603766959021433241451011986452021582600930457784710803221339745891351358132216195083243959968581338200182134413652449764698126802602035304858740468963731998270086831288454410080182261396742791987188146477187142095664720352224827042703014012438854901621899758923112411233339619795348668231890797829249476384084161732622731691446333135253114891486611365188559480031049014954990340342211081000535445286326015766475299842612155855030888204433668870673061952323189145164204064935505558905883585003316889551324463441178897910722452424929776331936975959520898847966885868714580770243013005042924366841553220269009487925673672806620039613220489730630600792138676303181275334517972659372813464512856382211238006664116913677840668835555721072881729626256994299575869153891932795141392556982659383059078399115927840057531720867799041791524666680872772683733830727917298591896326158534175528103542269347016071194844150063416492838832606532429824895819667990980882388877309032097378271342626439188182677897083011842274470852511301552812941899564948436757213400617981835281379352705573099295562582400521781089721715973838905523561551937681730494229729177560974469735531396921236756737955882793297732415308068021275980214673979283498002381938711344792710540693294690179019685606031999199388864770154287656099735545704230917056141285221444820990907618997471439693250579362134128271887826110204526405162230608730777539639663738202862336917377308099340174388681992349926500271930995399578316184976748349050420666238531296128074653053925088060075674218892390395360004892952618043237780433230439739671639059118327219536235616614256783594418573648221317208903573437131436585531709338306102825418781034650945077210359481872768180041815754172817810016313750728485966672430917322098133131489899100168528064878460617333992523835433547196782384545148704548954785374375947456342129350960193411792140484013057377015726705024252709416063685417735342065765002460694189033093654518989193266766263020346395609641365323481039585972149692925755080782000696560416389389900338561683022317947475338706249161315114644953408912694633405501560423300203477183664223762003900748322254874318607599675848670437986897598482273211495790511711576780572008047237556031040073980473309592561572804930191247246688881215566591897517952163263000346780440901137148501506558395032661174096976342361337705780622997500893261829695280035294001261587727071394100806464821836374720733224301615836489925282917129962079766872279320532114111958981833568319481955383234925465881400365903458819729999202466589006959434184549173607165601160143439352699207173861790222788659248659903997173538706110010083454288390703426890120029523621071653937320452557574803421032264829664165580287539321986331927179247755893919456379239292954241307537931933099095268412991612186166749773196088991404086087867191322590316883698490755465419082995723197890241694558970224164694124337447771328735874931828743167798232938716699747255249428538012865548936719037995126830986144879701611543958112868319079703904221926204307075871651114117197382074226581827150389504311677600720152540546476131205701979094173868425632710762033759258508045603885947608424235021004166308030045005445084946561297397808345590083071574731943231341449074994130470372974923672744763299550015147798189451099889741030215052000261787747876342422034424356194443872152943728186692305880607755924468120662553252676297433972162985765907345960567541706416691083996884717920031340535178617291697427804602675217781260409503475174837294512948641753751175358617732581948665975361638338101086634781509335241118310244111020916568635304531556138322133034421780655096618931141887570909462520218718804725721141065811340127824672898218761422897049081041899138998040955242019027772384883418080709704232042813451578060512805902053556190157748708985012581053674865347264200698293185571983130713682655808024768966602989280397413478479201087479042081315083819746773561867818114953899474533306624114934180929248961362546506578746138975395838700482345032526866675755617645531578018667025631371024429338554798921900495803892906103613455469653674148879236132544899270608586514842007548098116568876411224870426198398465672556805866566693672744338754322022255141878057795762309939764833947937706498408224944256991559901590561465066606954491754406752122644242171823077330816771792560554435331533223258938744559523427229356078627170240686166639610269753983544794421817668680287190243302366488319095209973258041974278178933462409243018546828607457846254180402660717864177957406080538531901933613646303150774713301045253173054176060018964095671013314585162260021761002588917820015897218629280021482229577104557176725611327987167622009946584835323470615145898357354724372517556324636511998956946707363448716038070018783818786201275549025520644932248775926683691353408709193477658879674432040337205541411219046766749893449115123733922452364355388796161911994741593625535960915636851645848942918830736356920871745880768700768977512518542864043349416857668299239311333584630876482837978251672181366719381610847265303268239763832704807899677411156691139274196708754042945521728507964687645620089022106350581335356118992718230841910400951787982820663940800334797191868751537966635723479179288176040918989062678624819573204915251476298503985615886182838433953209018730853510023958477703566893483583753110603097016563291705808003141033675126851244067080709782890503103112612580911770445182613742101243892333323648545700047641502407262830624771563279229162190201762972813070734930059480540624575258338336332455597960501584340941012643612139952075255992530730532596514710560270391172148616493686577596152074535330420246081980599851258846129273221931270012526543062661601648588202176343006615399249730691197751716749893406157555085883552706721419064437585414148879777855648536576759091476622088518063902363433646843307214572765153067586353938305774246993355174653367641442896189179551907303457291095426526909021897552304276233009126225019663460532765459331829189290671669236414159786423463219179410283950293417103353780718662771937782521694871021588729358874800040126758750516567209174188421400291797371795997959957111696611379118044630797368329009380597321427813546527098013950040755602955731800229611171951556893117355875379452454390750120215829110813272467484425269364928911384754878465474858101111257032599054355908086143273437944693421957951078765956558300072799097545966803989037064908280052271160478699698318420041798987908795326095750546900130190438425447210067315217450667157202963482060775400162505283895866745429692859468080174962078132965679458081795406997655134004520485316122973049290981783511371564984836529406244915939718728649349363849744044022886566613903107475473703815035082980434450042433182655956003844181761397404326483748964293825436450392394593260880809485752139293506218320393507303498132734397845676115808538680878080127756862227959359824381527726515584738908017593830247754726093945214225682190074087140948413368395781938803485054665191056634682111546104755810368435674488800984531963826267195249234272762883915064848087750283218441735502166756853190850948775087262008220886174139560192368285545872474864155639345036668251473083016795515514048883511638168731778463287287301918707661620362604827254742433900912467180240672847631705751473354505635256678790808052438989942259378601188824114482578374729575859073434224366666548919162787034713710783405469170009951078431891035763431593368001191143568605310178700098072865238035019328460642619344286197155579727327141059308167482456065918286035264368391190964783905425968873912299304913425613077336841468769177407555098601380376672083606745540345542401592668243602371261891818845862192997038303185384748933136145471782303519737213372091535212639838750346668659053506018978256123319488142819414268466767150513229910197414641171464836350507181701174872930659393851457612470596589726349122208188541394882676426256186415854793004974329579265177517165717600390650336845942216428859038388763955828349733057875158490084189972250529143792831441778484231097578433573580774747721111477266877336807278694963777704518452726091819032541154498445884823265425094096240224506855698036714134928685108597821566487856082229595562177025582415019246603567921580388112352856185274268203473817285608081886856924656643427897445406262915943349432715183357206930347205646753073389186652211692958841691033845103492792708463105774213687411971208763151051428735389207427179111002856275225323717156401348954808699944517586792539472082184157660610522672015501843113959243496032983554211712796470748676792082113260203433075819248411242597015374568486248551800261820873273548759015508354157897060002165944422580529792669142752671969267043218703816967059518679792520601898335927984711516223978569635671693930597480484745668295892716111126390543501271292785106097957356786143551185321928629786946904783192906756247638026567168508371064577346554692884351020472797228138264926549846497344603994389885304284707242780401814404061228018666443150920610048319295602472296520862847578998750279396531776558153684293152324825359975125916562902389541766051093569776600101620318312432274627696765584882149440730530459117080588342477237356359227643020934828094263673346485972878355271922343630601478010196590581238083834349973290768687297246527562077106968467044759771279669851215086838048160361649108325233555875101985193405267629328001000440658347090017714343319164331404563895202493258512808079809395023288734123164504446665487449547038191972377848687194414972483051685016249256718048746479886849914330402455253151810156075558521888456072218011874469905055337514445853372046907876659689651353363924559162897483438308131426084727635520477599485499981503705087083996535344395646799783863524884864680404779631227059203386910095060802055650689970063843651783097972641762746384682499495053438209666899726722485257239289739469739172552722599949894447723794327334647475542878369387293174113876248648148022658023169202751432923096258795473863849657061349941536442576666776838917387999233131097741555668046255016915996086634619603994983416622329080774586186792062955286606207656846662114998848145803961386072000617575814182078208266805952777373564438895780128384481565128465287008976431294241276196521610625310548685327308017391771362609153879701443560166336378591241739113671226529871589660025987514005399913180312348348395227575495048818980957310047644412499638265420205129094452617711053316437584301612569568585432873269683449293049419881893072482496460974431155345457662569549797621412527729546010660113088615785464433219182906668860682614622876035268528710904123961768402479592382548149061916623818888407583111336152183370970396724227826062441341359593946707750473093830621021308472286498844157817906458794534201072204756567367329606471104967871880949145311032209360563216937380237648538518551055816235188890595430872992606425455070806423406601525573702565447262690646047461141883620384188242379344575324372739039913788397594066545498196200127025918903628678128633533746254158271446768513510369443959995059409662285739277397907889892460708192208095565046483547308808894930175740966507225900618824441115210052758360656375622119463139636326889654742533793868231055750501588999752969735554751265600746363354720708739942169595630660405733377834956662139468014093211948000447087345287152511191052950421400553275681666324418846386101816711113981552043948540971185696737907231690575914645304452596690890645353033646453439735505106493626912011809677458285104104117401113735908250687216878110661583727194895182357528474388211481113774547532287285131643866004343998863210985423445926342251512414519865988697821022819716688877643786311545622513115177503798430369285697448728548369571980845048998627761237451500225257121313089906803243662291333397666487468281273441681239034657054587724110729187291927886020173084780217529293055442973450674973270348715337286448735714956620354510830779078751855583354479371651529690342010929539809195123550600030638982320793379565646534960698182533247891255077612190905262449676267599164374665871376598011401081791737548937900979939728251195581698787818026716064495017165317858371424905194363170700991247666802541553320066119962177641817231179007969482243393977441055644762805869459005714620595103825884621836356621147363937418988484889332070129849550073318407795678034732889510640965643372568167739917071719536338243583245255175662916494863337386163332172638523350333601902926231103601174825484833689273928213048019149144672806829317827297954551307746547789316035610658047722051784765919502268773015032938172836640191512715152435920010921772435478399261961516523889822663047602354749489883603774943480147047599886344462884380935754234060110837827264983808069307274997528107884190418096253184412526728213021353550912658913183501475241017194113098527474951417738552770551616421379114257231046183079671303189265179848809755703205874254548380798035324637109355741039254294091637765803829759711180368121618604379503951865703759269987526840881199843440777169575009659620341294753063262016356277056521125731707382563641213937371896534535054243780724501953568321856053901122951042317532518015723195487064544457630850870739384460668975542858045043601188276643796232155375351708409829257553048884517460355879552637438265239997983040190983415507523029521775351986272636771129329834836960556000829070771901226314934065362786395811292601010050215524396197187305043921400275326413113006077227098110867670802292482621409358388059161245422271770692848801566463724016623632526625187245317799924722176970883595559617060747542492932794939980193322285445579370614660206053990841665360454313109820703426049122036804985029453737737908983363056150879766542629586675988024153973052595197382521446421949162797590461000254361380280807004320625562090140369401063722018827588711960293071086188237998774052345399447893626563170993472425875728689564254253373739358507440545252217549931249495344081958966697309664437740868469630335173255104429981443398957141314179496215086185169410765491944486762491429289941873781749110784607476870539807449203776861992393972437898992514578778280786582141769369093726191709787242659917867794813320111448486830740975052633437301359208113048816449598442076473825696350265357029205513491370903059406837795789283142999721767170459377311474484544351379036535541617521498982346325323405927910923344409366241906458543657377828505584430981016910727455096955496573322203379274613193769815189909647096039298131572008123447263310569913280223170797391207160413476766147734196308065362341580103200381003763830391897617097971853143431325914069620627710831453884619008527869451964543532638698175577351384207702076777236214541528669323939512420875979675615769011076939614402805959783722490935433656375443076350636389240972253096761545328520472335995668615268609232488666149124450913068380019315849845990395097016336023701613667231518807144754233644924445135459461801484263111881468662497064223614260963134855204219828446190964606795474215835825502952753023065490486818815267649322656203823565749577688931185674922763703192724741873784792208070680362198856851812051048046893654234873121869227540666294885153095031444266747299378177000370028192969887564891421330277165712704300431886886507599861746728864143874482957826459753940915656290350221870079242233449504963492641330550661503636917834301168501890019933680774435990275853778004446789127901175841076267722410015937819002419871841263823592661143581127750451091638619012779983818815484520610326367275019836173709178910995232300229239629988128751896458396874125620194965134537052483536015610214584559501488645521234565533597548565139498435267551906920776810976004883066722391201368139507766714798472511271232362956477493099487291299546067790064402532849589785582385626502862890538668400887173530708735803126254509338764653641484551309863526136305306062860790451822817679183053298806223972062155063090933733668216961456262802509378140160030101568655157245563456750932812225753447300389675374868584138640977126068965103999987665759566253623092800183668925539279312317102940987280489022499154615306205306771319168924843140922511938410752513150958151056372405586025851397548364653653044680854363269555014364528867520147862966827197682113358768262153191943859059948307886501258753053270898588763175679126635423541578531700949160305345425636075535403184376828809218080405260540745620423344050235597714660854155789480964612693547217313442473431093612662049277630282831293803479979370906528212582496613091240168226878506695657453607382919888135583180654751487844764250263033482589567098803215269588514122628422547028315796693190120761311983553430752220971989282333729474884692570605791163897246578181904934807462262622885025894906343172459012802993010933341811455706667952325258596431571285242483575970012788178101442421754997752373366656769986664201150965571112628003662433380032125729359730243392896009042308853277418799336199893976297172857513225713274886323714615677133035020352070068790955660070412385781495510300647260414287963620060448493495957426710096484195121310757458165860075657711911051472084715243783205282739071421201738978879822643206336774958755576042117517047181807362751169317302195156874194257714174430090810432729106403184394666467358492205207241763056720070121411980002332037289279447925092722812204645323116966170862930508935921910991247546698082379168138627770043298154039079444728867596760846367465986009102670557834270709174159334003405281353316337672291346349452720802155129095205657210273920278054287572712458359905490110294920290985374745319677197671467498849939231623733499626197182495853854091017773611186583107289463971057752423803678143643838822619270944495465821518482860897405851372785378986781567368428700167327855222089771501699140823923139805728584111753797275601609861693775964200410037767897259046929151912675701009075671297798833626716170691399793222653194355239532570520277845169177655630182347348587836560838059637336466937457672575315033977324393945947061322287044385120290797596184701405036469224999440880716095429525270813426983300035066621596429098656954448054909226179818716458912247856974627260216215650729134277651523275676483590462864249564168024810368417192151414623639808012145929723858622675209678626280522888710932819043361666058329558393194321352174718397578794999806831806968620425183129431122983736001312609457207080911436377234012717183964302119388119860290917158765340201546592601761458976688125309336719441975665362225917642266627858916875787100640107765073441270105962821252688503843337559370538187036828223602391469735853842244649281762699798305116534499088670560142179803769347046730511551169004247594743634117902796224691153878397354813539155777064596016063656457010976992031955371669324446367596682363954046626137668349908186966353281671525482873606518980649889555013637211679367325382140973996873976414092905749965777649629519892854874115247306488959054969014244714697493958309595240064797054073304339175039238231432639178429617558260235635853451834685684476369583163317150509988364196645753424709403136869543707823145838852482525224216222093957398702416747700468601692226727256020664051548639664340806017046158557900034365387202110739978717411215456978474769578692558407454955032981891918988905560484966652686249258335625432155537782880384691965168499901291490681361224672207461333993840219483193834616454743200753089203285767390834914270932840827769744283102151373257561509978462769919575674446936020513836178392335452212677380807939898013616747791213235322447268629119927230324582425338459573016897669452348183560822825508259653552220415628983604473199237691440066346469286649181165870704711283244227961612718114492103879733792670927053725006301232011735913796672254255031435041914937032249666661707846980212368957293482379715442052493252023231918937894495556830122278233241538565897982238927828431196271871657113609673367287339910056706788799059793813467441859181705647314799774159419273289909511719415135584097275329832596078275720077994961582631273190640541587276831831843949584385871937029325457787454035045877545381914802199111555577656885638038330069713590493495946971227235627613875289843970720230809629774210693910226023422871523599095325647796347112403161975541630314635292409728237030402256835832760492629944061481049234234206759539867068386212106877453606947076518643145835698419549104585738078038787456671642961916064483838294732057080910556193643993385946956773214836764502816958477706449382678847298614142977444723277932509006062179337918152951706951796409416965187543363846057815053674573531032553561307115530058658401931324130139429723329636770428095221801558761691033980094214628356627458117438448325674842198541656124105597150449328669678028780445606718651707353584693744574903197836120148963535811715071592429312752802742261086638846181656433390158392246522079616377339566395881552020537905164519364726154870365966244800485157138110172539149218475563423900416394807146003343603476897996938730323249523162895612323567805841064477015936007893775764904502709257372494788625029239847200446285735590798611812686353310251657273129308116351193881096633045854249121899940721250771524211972900069198491380884166499216589912283489258109050891430158714048723656812554416840889858639445330062306073623903116726362991915210899158503008162084539189180645636291233101611511035545851423698709709968614691784217672649309671403819115329457935775648592957344063783790882688441989204287682654164496103176951340055206351209808512342817564538795509479404284959125640240537512255346512206073635786964798894955956258919310169992232734741507203600188764515043267919599324087553209223521417577011260020240587701290628570508262843605168920489580418492722081300531912651045745081884625568689073511932527846163724803646876961364061505837462406033934811038096108538863148473640921745949589655335170984265371789642427639501054966331536049003019898083175607599506513209030899283879685093386528257377863909091770420896770918590828908545648754136113416658548171297814784564370117270014217720438341896479051683798621704719566331580159748693674854932438592890314749507409852383013814436019638621425204401832253732909568741619025021636633473490812620823382236044862553120031965868561143247271720441653577639539791192613719288680618162581921502484489381949261524638494339698065532845155181275047972282081735495355004380003164187848977738356853040174632943145378913953178225947555088308773781034971293614719566399985228471129288014202444810961567202877511782359191111444282561536062617205358458220599835283575060342976499741206636983926003324781839759955075219810176964017753758717437389486706133484221192274162600586462038261207490260646582431032370089011358593577245774339042493865812984913091985965298489042517955567043819045323062262562331280242640630120222036584749986364791848335805716759823432629116743576405136866070100793831623447512133679636012436560749511913781257799684822925896111292972371426789341327220198438491152848228212699265527185832971767273062401644443324957068402080462708003306963739602677324163673194223000785596674344739181430183242947209578122438724904615234422073794572913019575790218413924355621585338346192101437744224209954469064973314037437992112728447673234103400335444017837024078551890948955331520663400749727504783258287770137050972114758187811935492628047765291767184331304417191368596769206910201560610706415262429160351616153045599325518701511797047385069437629581663654845572894359697126983533108320712986397837656970067967069627415924516425088623864790881055281787328035336194166895821347228394176991830462819394917621204731912664530735402827835010692295978621428706846246775002575827305345547885523320585958557881370562059864430938085493358338882972850726096840182267147679156082076523766202573739118311685027207760869145326144823340749017528337844203443628131023986753544456781967843241711887627986934509530068524080967188716621602122409651275386362259975558542190274259129048134829840759745694378053722292183737254592207239980904584152688517446696726948216485736569989158960782377830651551391898315053962492952598144713180492779608518761337237804862711455055120733997285775559286991816176845891859125751629919119434398927004063842970762453286705655173140058241753053743176095546431968819375959180978788870242976655824121396476196907721865874001256395675506883609522098999673010254083316903138085451034226027115418599148210290880808980062713559657252693616786963330957247130260803746018718752983034234888974767865039679663514849182780897732052263739572657957773793249168067111568047752573832105838260334603643060098084263592861421928471882769251463564712885358439656270030565335588141171592526003581056836130520988482439929177698517903514581957669431272377669138307749119483241684457743657665282936609525564382843564326221394456658671679581187340158629151809995916435244254838847276785574931839688751518253885268953450144807164718884667065757220414229982717518987230675659570356380100963026556514608057346605642480957945283044516816653120995859680479898722039985296529175558572316298329864620218011175193981720404523540584390421948552218278868660733816783789134301558308420677985070179647374326294234224633064640958540659837910284394167264234600493661356891889540908694191457896074572908146029558519173012072992285347487436744974734549340029142913357911337301331359739098522674793631618150161449341728485692165291929217118118261066668901725726865505930502715506641567357389113795690658446642854930134420034198661561780249570242338633002404347211882552478710901002523996482025116239954078548133559118406587761745155984006511926585647859822189983152262380027888237630730613795324588261416913471450624568539923042874230371907778893248681466331644615537067240946598553201957292406967791351892506334030334321674856495822969155669697306425079641218960549172762371971085814139210430599712537432317816237336412716672377490515829187723038044477682047856998003083155549387333567638120759591058247575383001378726431135327869790411175337217090170282583481787808489785394772041133456224303337213694242101764086081898228397029908421819937450351013721080407537512664326912493159178016983879798694004587478043050879932454562755979275294488404633506398139347989963876264235039961051904307362727711836757625595422354169437425070927191917838142396900495701019838347010631359774556514994977849047364718467951197479110118383897676257069434113044068459112262937231149081306172025578804886819228785362022602738477788547348565759002932330119408135740072994955065570689970378387168183826770441836342782693349148460673043925509413796523720384792056403802182338629117129503091270515305723105442660440007132901879288734434226208186831413623623252953093365475508600916638890698080137634290325979798664262797022269993960969459965679062857616118020671858065957483132498933971852860247550901343898862017220215486551114417224849799169472059577024845763587407814206927720609579515839782062559376043069200878151553990185301742616721602045878437351102604174499424856325224690615910294014381126730681581555719700586791459343593385942694934121633840784032074274405074164642909342701729682494253891240352724550831916639631080738511474942256344029962331254413556798181262719612462836858793774795117309648756004222665479491690731458965114986724891598035640853621562548095966852271434392189143603261054237275735910151681697749190984438794428818760334656850129819725439511809984561322083845965636648979625949828489966649206996118356746188156644903121466744766012511791935548960751386407177736113541907311584493995931938550449783364677977586085849313147458832019905601444979775329909294262590935224301855648097385334347598405921584511895739550879991938905690296383281637776948230380003390333454531900446997784203039537379225908026729135198979389817863250847892055242890660011747911271771918529468197622567501393616296199121198292851916006837504397712904072014041177933653189126525492627500494634535869212203684860320370199288587928526702082581578441274650204093236731607244779089492507242281231707557272802879974173886051152604934518769704639270561277986456615311960722012508766937541407368658707701781602670503697375046381433318241548093937723063831398803951384854526080785663191884923559325959552721527559387813889732980983052029906134156787927953953390222843868750055836312954704415736706304117808588664494401422865172497152609268887738738221453321638741797026482263932287923001652618077257371108491444477170242289060773881475737264896122016928118316786176943049903964258517909575683762579735848159559971257636520994708116719223565496522926983333472328252772495929709800300505898464785118392232808000716588510724646570138849335408954816395695116581890628407138201686932460120642141309592578888532460708566063754339120318691905126499714270618214305821713065034699951545962916754913457746404882422407562005698078040543903477915160152480788823962916143929970970847306157215171428784980903274404110034939004667726583552424936906688094487417419431379683374822675396189269215838305829255008422433630214226582537497872931575392327386084337800800458325718135455181158204160713136011150580045813211065134723558862249919705013520992428062558446998282367459673600371423491399014976535365939738024059989194410923970808284793712427347205326635617189367874787132823296600564974661606006254595518371478985000661940926192689022787984695134998506837339981859768670874535036870291744652030927052435652828376973962068513215317669097026163335376024976903288520775937233977047673684893612923221419227762349806990143171286718863691234655375227388028212138417885485818575450914143803529976425219241757820858760994942678744316709603208123130658083597319765469585113659907009224415839596132112777067935556184454458798082152117454206430104151512364535690771276894963312789550701769104656352468083587717463147356355942743964830582808838837675921812336118793366014228822281283246644809098010711900216053537522997212571055662552307903494617830483189980058338659778044857207928770008300691109998431877139960262733714371460846985912380994994689049821083248806497413018694569289742625119020405112209817719210516208629070787416307339539238253869924063260412797372709993948858704860237776705689181501601566177817771026353557222193665352228760834704649680038687884092719222444977624122170186247907140579500550981741772703366832348121255855924049903612227961416821410538076239780117576838788245154898992599562120263125122444062614737551506658674081646250766384823225077577219455671821552007636932681853488335703044212792788452310207941244628599399403656462024236079470656873308402576221627240489815014427754825198730521695019001654186745751441302347162483177676141929471082636946825658983453551336841740928130972258156814975291733253920826594023085675558765651984076486379428769094937484314485140012485921364593143327016865106369205956439649518394471468966676368689994258718494011769392631182455848185058921768800469469696443492667492331476329345757194746073562061117356595426747277520154354350773933430477810935480545149781943172796749175021223669359395164951064671226157303970305271029225004507235903894796479351250988331510069911039201864360812967917961682777923302369326344967293380712252986312597345297177141292452406533012633163751626777995758059244466413425168806105837085837189981705063900494205719276718660835500415764323724650546955796571740481885319684179209009446916906091529519271901139450132568500662636959831834430163475733314378237950685952784536579495287391586341311897009765166592357125176833740288653569415432005032702509096012813510267783908829463701790651911883116487456687693615246731141080787817772285354442283408287215862795445236298093593862618884575883343826049874081984687292608505247822959276605304375607321572947587282345953926616078634844552901879718314984383246740873390207893453484214531041199104321808708549701923042763654739567147751918124687337522382914410888317419624788672680343175881246387286264152545329569058667189480926132790834696730167430554614571874700643644045176010684831317597131337096059744020650921098807489026015799747631159592816575807151983978108304732261346906031538359313638730482738889943468218344208333504763391368181629998681702934341731637207100107840689569060847854753804979459005519868643575964041373712254012368121398743013015627819706263690250006497133986086576792179904122726046975774029495824014476280495894070247060268831303894862757716080969402407284078047971056508725924043657020440117610960610040142241154504291746157101933183302208173937229477149487542538203954980681202751847181595226383201374173808456350201687000265409276428724740643382508291207486150683761199069883299375798832084400107947879628868536135777506246184902530838387485328451553465776077005874950229838921023920890691516626477823417853362093081825032062184339076329952412450990561437329423580623860196531838469665558597707122074450351282179731454821584491818256635898504595692656710714746649038747511175915971533206837757737055145621983976832166470965961059520094999924690518271785316042774242484326877674199799383441101735576015894724492152712003912184328558185001060309428068409404004004500573182668897741977534991399582966585541808795379805167856013844399533286957483242898942786191254732711934922275190472080199106431469704870602893238357979932241529486560113374264781742591587194488652507086929121663565559540051002119746381468729938159363096355241778041655573578854226165512022008758769979446894654159582858605827549515660045245930515301582441582940309167485838057528001223159266889686122918843384054744924366747050311560863829443240753631171024150813762103877354818746759984329115573380064537360578964990051897552239168555288856366636043013781503023052788063788504249117031583851435732674287528705392612282033678796524695235866504565535666942083045860627541274718431157321531799359271237547459216631268105708888759437353999711951815265884987447716142710017957783852544215322233357537576800431710512603959768808126345648979578620173606890837094484087139724314700559892408007069698813145757346979245533578248028267256672436369124578139328954662537644401892792459735518918685228739183352835661652977843781280635608642069051092412533205195784054204532801137823040705798016387021933833538622762744839678246126355548858024115891501980114333173181733763527506970387065807334922361975862805352220269608538102475366656357934905383670998520957007273270827916575941475728573661148208158806935197513339041994280431027020744665405772798080325003664358226769545910723154345040055367727906762346146917828289822751975787514923132803068524061182613487420502164767567952228994597281502856321492443418243936881968099009836259011844201361485820884375176291376529949992547712161949156592667762010579968091845461190155633781559306499812364252911331325433032171302097909273516260196799699180964442363262620117969941513586079111207410297444435133543999047393641129353638392287666309091063878164168350928761568543876627148748576920147455822310944929703237352015132381338132983129906145037627526842563218276664774435033015146183325411029855003758318692592163156491074320679291140738550919208253395138004499961457938439377434477499322405032200859561764111016441873231549336892967275981333068082744086040965385882497718797877016567223202931417565829343804992397892970212594127999901303967148822721615246173182914644473959284043998091481471188391082804032801407725232646605688669529755116804333359638268994653276903406216533844156464025518342223419830801950176700083030917470868273129491222511569882627807612901872632030854681772901166703851871301484117611958550176943648684856307976055850156582135188354313983401583629570201033956366367344675945487226916954019215916796253681519334775966358145991288888317317587109015999106287963144997297722328682847093552943268655618353144806475603846357966378491528492736937924096578516083802729933954902701587021500106668596306747477637516091066000784852502550404061639921672681726427755268428197161577998605575101490884611065283672438220122664971788024923024877059195827963592368182898233765836239457469856231026662424831274340885340159803503840393142458324905922497788910419141065762434642277570022963311088037878728444096112146259292435513459589501139778577891571241912776015201243776523463217469984376898526379671384356173093491550025498548639717080755238674634084718106267615912447830163412954802002952448677729453774132307699550245399310703316359788392204758579030492391970069046549738551650600662597950245824501397224525776499909238448790621574959317336075587996707213919376942393140891913390162322490210274060466251088482632862912830736224180606050479293105407908451724282705664884051408731303751467461026670155559122326140335015535780786107608978400839848462294131290812550028923552717712197338183225051722342543070292968058789371694538419968274431805968364160060494070537951971744521226572564753818416712137189526174186660951199535284845556990407501155742660197766235384195549718692663111434580525653487538295929145735692032493746033567495418878111620616731785786758882026166501003631418418309708258003569093136820246562992275915897536287765290506432345468298988108853955033870279229277951182746828302020002944677641012587517548275766073541014250188232800079832772762766773754833046060761701271359460711526490761864448551905560459898989566655801244689735045945993475894005066798220916084106443248223527972345608771016882747209770007701917694294852105257979282849915896567802551992154904764589005330940977082660499579403556604844783986648220820851011385073219119851281206558606406226406005298653349158882899757146247609454101023587194153071116056107192247534984080229086279601349752067718065883700809801358720094846831675029742273655913230681862157038016797578431829729791668901681898819761558363576474363519455842781376651145503925866016415556565443324646744972847774635496837946473477629561864887045810329028826185079337417136264046565705905714094529265366312558739787015969677175009133166615523501019554724700683236076285234890757433929846421804541665355794233615434864324429081038337173543523547571783901012554055680688177638870606278914238760816979015267709689429054798138774017655714981201185460826231814443904159064490664090814424121363173535075355103396706359143071876603590254603848149544785990916536338219437013021155709606423402264732083618921544615075378190966656841448207078938220700325608768515032792990842589779290279133842170154505687796640190898206863060947068899168924480599747766811041743606539115317124938655887322311583055421185554733358012089258333148186741115343166539648971346102967049842030124800806237019022704949319482735397853026372384524202986884643059704306938177749960123361023170256155806206060873764819865188339951164445777560781128773508586792256685295072481863837286976312370350529566311322219168963994922057825772088830765134923949878201247861871118581260948879788550005930852035964042853658138450748466453656978885576029003995542109800720817359735620346515486362150995708383091778812358982924687336662343379298867609723946673799498713330670130287853250639045874701505425852600820624725067649551654900525397607088118482101646794764260100225813478479706492279770382501097873243954595238578499296097461365904123033344573645522342922445997817669593488935233567359301125482740268826415562892180627554972294360224795139977314038577644342050728949978250024075877634297543615303426234769920668750543878366265204977656937725733057771508564807323180346543540076025044080145267828045335942963917405685255667106022246604451988815561058663396154229519579423806240820216525860617289403723019862846804207113601407542739830223457044540848403796639219970453494705149187764997993847233073995981367200498559899463489285493218218847905683476567626704120211410281817242426130441536278873194639173508788535692257314022363280106161515757364419602211611064981672707211661776468963889131887085734256623455073274213725088043521695952369737744372768761359606472725619656213250476977054097985673519782322640099290938044676950111468706035177880485984323471177889278467740634645985227932651119501059245010006716154401866776022247154399749972492814888806540484638106525081131978798465433942051898425134086442031925929737738484362313432093097698481536341891951674768456254054796306386144778058771419537543885382189939193256152229407027315157248688485004126048784746796249960560761139013927620240484132364157447242267570341708720398029776793308006208163728886426477406570595331710245856665367762932297835475740293212318018221448530708049734652215019875164497127584943903484622425627948374115221534760181227817221364118072112979717031751931284150254050018762971580782144687896800093969917136858525429054668204004941529923327719388696585488970336257927100268927838013222241232132992299577756644832732405833472125658570731820406194064491286809571213607795596941282656319126672269085722360174442398231545491251928141893652407678453193855859061746340132827153326541361017436148746146264676243668259237457702573145703704234353893875872637785944643787158470232817393163181536446916112280890229135187394237398125213210843837445572983576218058609602431290869778675652177343745104225977976616261524984763661825606315676578952818248357952203930730894716513850129403365694121037190377862326299847224159048858372680030842285824054845140997492016690928384724526953018659646270902624593743488496286051257723458434692109460207336075604449724673061754196421622861918343462915402671145355588128257461947722852255419173899723487240072061041125623698156252920677387385214042086326558284294998490348725006362186007283428658292462799707700539063372165762039619353653125314646555568001720194179744495405918186859620512260410777749457908363634998496388079067257081966218270074712758499971864031837406793116258211211187376116825733580078957346339019294876227024522188195647605387827147685872121364703526348593064711660023051458666588209345832796940945454470041011880380755139249295249574858071998969179539352491296720453301396198725067731280396538160430650583021274139740179903147154522855853364865269709244774718193572837398240031062829455917646375568915836233505167344294076222488697282845349107192726987700215008492047664826048217493932876828286556311699919486801569789100645611149515646576801374012994781400618947523931679903380765905514211017123035619739696508188381255673257054495319621879777189275960128157939408421375196852684096226466791247692089276225573850779547599606375950864291626301940422758169697171833936401575132454207827230018775975363700725457294506008951079148938557262633937871069312610320903637769209214346350628764162424378825896051604330113809863702062639026701822528889369245584196470415969105924865016554210378795955768220722667959579829353803075541480020505399821563197818779882060910436094634464656677209813946508841200612299000637934145623535267361538155010357377098785018314134873945224846923377673392063600660665339320252935821579185079146836035817484489625444521634252458911333782806473797244588869596183303031090395359994493960278247177794483945544971064610304024983935357902428403691114643881620388283341711513638585945188228726608884765289087917586780669967063443549929986237456844512295607245175161517972697273860570782508493066621620041091608015931495277161994158025952355981049812299513244001926623575365261483471879549737386994809005021949660687208937554421420701462623015518314050826760798574177616254476067756161793894483467606368065195876641862491403372252456999452686356714611641933130414438207856612578824604218855946396325500172401338293983744892558349820293559640596386580818283445519322055870142590125082501332977667131145278143578553312059735461704099809768749122417513010445245922640354134759073923128088519467924931311475922812679594366844680621216285574120236019444741794506063614482462763632329993745396905446763660643511032423000830192844693684726273671673233769988697825992092503251367373505245939625013259994404247346077597680412855764771666586184942364156539204399377153669358065531513309390358491908310321197290495915358122921188756593652790484530714579412041527924379406022748674669861917045882775401386938583214108452174293815684821623192046609530286115071431632908650710364326867374914393252083847308187645703141345385664333777542799522987333150932075205771665318331143532700069187822147033026837850410654985197301194266103237788761083808114596521100430686524994380563167424887196542872065634175836162827405905089553957395588489271040087153759991421653815642983745393172541921341223149317942130119227617073680075596453606629738107487064428233042478995274715521532860164809836657173545671618694046706890660235778862486514412999425624167149074589288447188681807318130414203144208144796293671285809765792855900568676507359482543282474532745836828167717981242480622278440668802166260594116679273067694563388442072852475880475340491573175430910135230995386851381248955855966153824547481252298199404133524131863567177705832381897955433396090125599955412135527446562728478526180751555614770110727439054687721214263139917240478276120866765973976316798712760357940348899530558587216334715136440468943065341699292475909621337008534089011395316880148719647172043308914982609601195399038121227421698930502731295318845905244132046936626375726661403740829178989031964075247938876455083982900465950661361850400567780966540203392733547804224729453340377292783540837213532523962400353540179205998426948423537373510059556472821705444651782182727058487662779251431139416559121884720937269964737085177482627945193077852880789000463244951560840905375399831612653549552092444716687784633552998429474824830959567276653291333698277021766417455756233114515650602279037013729300500605779300421148693894796480411508926134781132024006126161847738694670280356417781189406209352791011984668664351815636852134777506555464121287362812467513626075239647522072764070159080774982796891140068864360282325356610086464092455871222909896678825662246943213128762919111971166792499353639053877436421032086632335906690474781079399662527557213524646458378472050342769026678989224016718425832470447459208059666838393094428625975830833798713476031695961494063188187545262736182330578366177474399026885980253303224456367837454892803217457974523421499483571340751345932490142882274661974543315754851831939602981267332666980340097641056591171209154728665381717786507846513409227544544070819813991178041226137521230281673002969377842052215474276684331415992483325319247985525243579746960048200354246670619415294611084814741661024636635238506639722175883732247384747143820783998152856975036330516253632906388807286404716954900872793800803197252420621366025771271781123301594082877732069008298145889798203875100856893714275871276798699700008277383820025585103576749506624727351230624997492676656815387287311485298495567670450182022091381426571635707649001148313974726763314572162204783278109998010583518628940950561779038475925490129355085938354723748354279845483927671941534716879385715404885305757511250123045611394470534863037977165483878368233431609370547891012119118077980060705103938997806867913004326973786167339053862490778618213858584149231363451877915717575631139579680797327591143831652554471018624465758509354788055637931558812593497786112587429373794298633601463749452070006502061605270055506080083868675142248343460903429395895862029772099633089214906412101431452697065689395914514015725115572585627924640211802553303644461239919450326007810405738920287375621729735762785255309308793385946243420138858126297625393618132545072612725133090937119139282409397305333382687428932814459694059378305010292333778973482446260420752626835888134213515701472156987204306243672420352381744048794413663452471434894020651736764933151179871341596194093036899464794423974604986254892587065530238236656326058449690367671773358448794102663343545051126560742644455070786555110562619349107479405777060690321520636662762760013188511221825455358996819433871705911163314220907440623427031179417704797812522000265450158679139609303949021042576077883707310208197003284563532757667299347034223504100172771578788440552816401100413664786320527099784885525679168039127843620915698889727631604410724493492338491582753577333247808631634624902388562413016411216959221416602745125134384183823196222494556285768846381068084764252219193974492956599699096038206526787703530433021170970221725966267626138512929237230645128365002562530199100408371835999665847861087355716679249594453062081769507569618805913085703306552493812970306670256037309149733502724993463100596909441106659979928279334614743960201448175314203634743371658796386377971441309732503709683686554080230011569864466188643302388649883314297355959214393986446167362167489854363173225459731286488118274978792027392052187906709236124135769208969372067646850143455651542823106170073056958928833651384867295380591432497346479472572199983778576129497203727074371425916554866157760931680134952307807863124615082142428527619894855396795536358783603409732954400808442986162100587817879867079558955371293714513115431040868582169768717246970287339472052162372267784001531871124568633272548326010249091832130691634465491454146476819145427301958577363384161918556073502358892688985210312593316377576952913358510925496348473266638497626597011089802044172989688640458170326467014693320763783456398285601525641123180025666202238505335446143864396777450947189573536103535213347869963802810662075752069624458938226852251713081857469104372644467955609088158865612952253197540545047994171339522290005883436327602844001126653664356931914450644641533917183759540108792448718511912524735984007207562037472849580273511445225847481258965415001689793440684660105907585391734653683375733191783428828161387330695059802079257906885283146356473942068464805996498403876167907873924458025836481855300132200814985654275853217279795939673481464636917015647539485093516136815442121573712789480637636028847995846782524158787311710003985299916399921721134509051223524606374286284943687362472383405706881695418898399780959146313608415092184043501415262490826217226674132637508613104384046483111606818806208666321962974393005848494630868468780436432003311916345708929969502501619867199088873926008464042407895812754897686811709106377013111970233043815365473931524117385771445051258940339706348576114082281193290587497584669374458239601274664258595289485291965647306677563444209330369870450992045600813015182529968286357487603445719776071436410596107039861273704065622912080469512349001293893304811525728856881101688992916546425694621950855220204128126978304601223831242959174797314233555244003409641920707675409596991469939840102074909882554864858438895094974601440926700631354922957685024512952626269075472245743776975780658018379993073035890602092711801792733456786308265386829008208795266820760208922372477279990123823932643644464988281673429092885039134358928257976377672935539647066763895839727804995451859009252562085525332801309020169735461129336674263700653166211197723339088193573104490939817330061126198169495942766773436579704426618270937072219454946695332836260912059598125159053055500251819560745533246013660275481770347670468468916900431950090651855645995994200757521909448964644447167428513234177649787149388713581888677885137249370032593425863907134923243010651875257240018171901502020193199846411365008785579699155287181723418982494524266322197981666140075947857447262746992520511425764046151934664718371309193662134506467680949095162329535490951827982803004828755611289803737930040661242994787948195857221866849766618772714319830684298388872090051249962007140067055557206728270863309014702552623238093006047739454218259921642126202804716814873572178510012850021415228877732333203339098819173432178280137975530403146898649332235694629300810596154463998608871690228921776826594679163418852383487255083385150139927208350134152070673439738739044318762701158579898476289890158530951082876557946120326026407541763738723379078784491507277150170744908097676571552220480943308152517734423059773966250031214518273209386494145146884095822394075485835761628519105741378657606316490995914523223079811690093963313642562812447438466410314779362049811649912238497757061456739899135871867045426103971061114284699125670899590404195756079804394116945733353069237396588731484754931469920016151292348098473439353965387992182330549116177300442084721944092486867986700951640442996578714358236821961895768126651054848476227922063339652701867976353597561083677175013058355097586708310051713382095870161680035362594113618094495992430463454785780440260943998760459310838786592622957238996863366130116038863826829766861218833777913136248756148103767712799603694645588035163768061583589195948120642989002746350405902720414195543149450685886059398152652048044700392820640137342361966872184753103870825451752393683058185370035485615177681565178658174922314679925973672393478393447783555580969718551628303412068669062826717993883890217757854505155145641303211561813918081470202492802452810936081079535389738319183720107991386031470006851397612487356401689462406558234665789735333678930173855155497343795126167467193604065744204631949828488706899817102792181484688016325484091358405134906366841516360700764899360161270150784044166710020297906255065511230419884180930713126827027461128629007503418626095953351651089526841354477876011308680922606094784930812952312241707854772947410907561684310986682065506683658419055697695248884496670529361155519178806246697211432501505943548565148412234124153069049285912653636563186089504606459764960245432970773689847343961520578897609208040986553563246585904416032862063358483216971013616556403392060599591073184323794070897862473248520623713248006036857029547918764074057749838280972905011359135063235874160486606326025437881718282178767657633047087163802915369990921546571290212816741693201494947739962303125948386685111403343960786490266200795934388938782992569807180586088024317620718622517697972235215513504370225607688744542389135347540198500417342583329538624051011758579880183923015245530093936199328895218412500633019188823632618545139501870349853513919311794433941906796709823651734300677911187655291493279526349836001167346692887205760787505415118315297606998759229867760112546329862731005511958658842421939540202606354975741145506108941744626196494916565893305142542550900398182264116474711592749445222953010630132182546011295793893582130828930724045428026528661990162469239413459182697728023241114161493437273558413791836080858435944808993690360791338899395407863740985036621738957360317162897769171135947796548314824835768146830103282213284506276147676955865814756866101921314887377805615742443805924860834149542315025642376396201260387882780141077840628139472460920993106373915114350366418770464336285778945471689059887247663796757795150078283037447954486085660745343466746708564154046940662592020419683471834384042312798258661377872661558988407273579379188958236845843819786058755305081875127829811289052846092632795003065876542043339273226545366762002942194510138469451721520165312325488067812450700431937334769430174236179379221313798665897983740858128260417306388946756988092262028603478237764418593387313869815419285715577702818183174012189479674792998137238965480980937454300418810108435596847058643418095588696486934588135375086548689827706715518627413454695580528509269636243964780043249864213635969969141110600554151197083261219309162881537306660870347001149080693640977383741327561783094297613245321299190059752807762813988107133119851831885929972627342830145545807273600253743162860856012994604218160869272147920602033043966914166067482313786027907557967661355433963215988426445794492408357097295644809963290387832447097292255227044500780395976519263557286795891109635206834669077097754630805494601035330701605500645109757890881319584399691655620694106411883719965057260589106459706253738387096334870670986865267755189695789299541191340542096574761091134372063018137335830569383616144965880417980977071967432024510206873088088444708840326581100489609594522054126521171286256042719648135104096104508750087274934250523639079763436373380506287891255193612135659170238952667974084840430476593506497189617542321894737232241011081095020271488046312688858129174602397081870520891793644321172701703144165930057556591598650537415793234706323519562513092734758883435318684369196196218275690538215753722495412257947467182677652033651315367396282971153760436722316939495042365164605792540060817325698240181004146045056154933527829928798013848139492721599644052211303828922498001306550492666841795364212377135456510583841105861826628923003375283693757244786449518603890988409798619537643434006204879777393503156790579879398005666372903713102981338472372201782988955058347954175948871200555565833148780677146926230124708428244602986822893452279756765596217689884419970345210455674989919018633528303089795670064392486765509642048551596973666299128032448287376293227915228044888033349944907642760805167482846197421541375603385763151680596663890689231250465839677578429115324508796489671218272364501149518950509125063665713675434728994161514276170090797923800372483553400544339058015167404299574072134405046515994031220186790175201278495636275220006960986768775659814502691504769472134937098948918669958127409310114973908999171207391770276632882353349887921373120829448347124403946988488618271059719054847935338088456861318125730538383566234859354554622992837766621420009645566626111471689041714374455897701940157694586931349291604244338402788298034646852889805863503826874333473518562057395521164512312759712543480337032587138523453293289422411900319000665306317898694887412503905367969050667160285166330124226237889079066252496023263457734106735271143552411343130942611588347600197391093332128371175909210685134025994847464412339400981566648985639145631689743330705438601155039223899998695673103558196065328775563933942366533832039891167195560102146403014602216786907831134057741024070848307122185847384828569893224687031847513285013636171428146526905245940519387030266966003368004080975292369356903516538072440514215840569392312739415527586345710515503693443835261911116161862521746911617721556705612283584054958550263648344968859865032878211575891212116600836429095582131919511061148567109016802734500008919373227852017876353112641262476342797851883429234072749353373738552638600213511069996708319510560618559940653880845884833886533021357897238030263876189077015077069187902480981113143792923452316154921023123378259900250871237443892089903239188256294063308702839808078670090511459828910035849873364549130017059534973420866064915556521543102314987062630023068692139959422985170928794699594552805996357464836000914132558698120134120088295015711735957468537851092856225027809383856819589548062164739029895572531346054397211991851188804883158559153839507923828169488732399888848235267409486142818784516071220582051221975163325161891900517573304444940451378013659595874593572514396210815783489654210573903424378846604954246305044668792157005617626735137068250747573666816184191191266142487413609832021173213935465745505303556903953599945967527348896216253367537856404608812955020064384815205976331306958988684174586246322160086766333014326100996565940957444147798696946554978513171557556286722870149497493804950045917377084708026064100809376206679188889285341250312536880146952194357669861244732690139775485522411260621653063121121656314956646209461470528293054405462905766886060841714259840879427014066394969812598394802328941689483571992069822002773843305346209354134527971448688746692519660454656480950653158196249916452723679580255645582295126498159182426805555613589938457074676586710652619779437825398826887557670119967149120073079667064890821408853963191976461076873852745954855543503081125495684491818567997646310660625999035326386827242536352904382705573162290235670277442936754089926008484926331642340665680376969904418698059192045214997059100030862979876343281270564911590577477646726391673685832357509909921452957641413705531686440688695476328519262945907506394415674978975784752068455310303957868276698671520311079971355473647623895950770559663480508952195857907220184559810195762340929676891024309539053900270907608925346634518554509686769625005007763086196184770302575607320183778454506189726455256410219639752229972379212310123631410655974951883342856298667087142782082104234048225497433184490702074032975262136736702017435007006470725723889295025497661389827328624769308567034782578588320772845681253670133731232505900445973286532262247780876768899623538978314780134174942614834839388989234991090321770355985372055974328380406549266177658445145363511170753528162032122291097814041377123893108543859942047877772078718195992787689456014204065657038657566920606111372424522531806599522676906399922255624815388343437921219715819556380347914439034286643811844358775163591720733697757789904979226408990779629010314782361545053476639432609110047752404120134828999259316018230894913360631238903431786592110280281083079048002374324383667241572792590772047875279353104366479291601015941708897220883809915726463931536192814300760193339190100431778109541066914544827090448025082557558300485208367756618313790412361937571165385872847964214199267553314307353883114421298125454015441548217320059958257249000890642566935857166776649122432080601550731470634153902445308966301836292275689840777063468282730987212235441657063573415683151952888972203094161424284476271419803339042167627352838056280286538648970464623621081699841185612262950985479627599139629338133902341742371223627626946127053739552111345082609651830632225566011986223273535274401735567720165488138732388013422826566213525728994742392305436964234038226159698632526464272938789365948290701280035253313582931295923033470830920965410602706423907051859308769337946854164323143124352119395015751721508333099765709541158774679711057188368365796748408427759996019767383884203104785416015016460387118807940870147101980446079828476492325704423109408364643331135738075188255232872372038618124023169910239684319794360185333290274578454197972402121110206755287846291034237026906074308466616890875282477114933275733317931248420462963656929802109636130712803432874184469210822031270731889496606285043878261854989545401078865389826888311745760694469944857822383929680099867631026398642717092035056397965400221238757243043897843824159143225561281448423795045971783200572195146667856662378859886339000984768924374868777658622214362043352957068509542889718329462576294982799202228383261160096446700381283821364445934318881038788330783216977989583086015850373296533388043433604295332249248762356531851691455878536864581471550321225481481116732555070467733005804411438013345234552155813564219873216911514871387181327331856800307119403399055567440835326142139961581842156543372477998826085026273431739645626011645504941217526640884447098665087521625800996911867328114184841579050162795820328007284858645955027220443087138813303555410843607530076357916538323481175599195412350547381774321299477815510062213910144864341978413531579749468445022533723188715932043686614740671880552193576482239933703777132833367346064808908254952292486664464587977560134795357411553570952552439120658257835332058642784439188583853645576607130452430067697355261360579730637392604331737715333448473697965147612603296143273235743729703168612516449775783196587851778102348037041929994100407635555772285827800469356572881503439577106766686448443298996660336273485002504659367409803090840972065506246701771470468490973910299125099576065322842236701642491019170729453396419902571058115299529182415108090291828132513670902381413665786776986500237557415958128261769299519822294600224506785366268784882311997774387084575499312553107504711174311964372563436428396206521855312617653173531398945985499615936205686966757870577569684466651040494902349139894233913298966464068191904231189243124616477869211238367192659572901881973004206937543106159341915303991680004289718923313554724861111539092897301450564955680424790151806240359554387352136157099457226709656761514867047068961116875273328713857289948204005407205729441048664265993023098732039872657335776709701770035269479547715103824042555283889459384854984300227096318322886293916854453340176460449810803067911316082557570082043509530474456655988375449139301119618896935626879145022450713191040018439162447133928026654582480434857020851989757864970001008809864237546883013369081771433486669450749084929305596590760077981664697441751541696691642197008909433150692736694799196998275700822459759103211214062338531208953335278742297183403754328170911552148715385613906252950883169034215982267261396376509988603431064870278387956091558246296796665194639501641823723102275710794125853841342763569957402646643160815931741022212096404291028599673444543591706450072931684984782139897371533666581839038672896528693709264798416140548935784416675350036911864903050187115339382153962246437119403167398176602441096574269965938724374800484070938211001226260656281402008952275529646350418993169923902758523706769379110993503154403964929893527180143407433289633425511653049116844451249534207319366487515018753129229110466412922599745221253654249795180705700033741139180846836152404121708804955247214450556183523541727206309933561252561190941285173710368652057985629748328077526221790529227098930356159626964469378504750401633643163769610216537708982467670385665390303326825377127440017556642665312243149139471429300367391635870027647548918247663292072204074293371356684048876904717695916867582454067638535785962998751555739036643560163249120810366793945058239583791943536078875406118116175424052463727290197105459048127169985878462356815296778274444963443346767241948640555743382461257834480443794462374090401591067018973705722921491554478321511133429611107411286028897714747636490308778082534474067795737100400272100017695598903574481903942314734086038332324968809994515639053529093797507098676700503470193713750561959647808963589888998121494825037199192795496480478963953365417575838470573240641650248872847552301173686223930527693548220722036283299579277703187207674287919067157530132978809492108067897578186784246615271714329994074311559803187780892319369040522594520472463410110865387372099946731147980276348757949866821038816288855393172798610686391874847228890446714268123946348612984263146300004601201844906182145388370136570363092938236006914618108655007783374579886285889449470098824297037325716778230700737585025217432169355350542554933970181379090742667290299906221858799054768115736950977623420895353137644826467850829199750631819182328215510796141841435543421164733051888654227702988137042240262651559594055374962521450731589316027096987283143492106380682004409676288217935303107979226779562333759161899513001253384221407085868003077267649098433926719558835318793979040691560882544561959030801810991470847390736672092385821940728130588256722324696924451426847323256871711761755779807661388073251708745332351361614486890979497648798374177779192188661531734852274011888379206746826646720111070687967577087415989702000096710281277609371183003714924593004806597061750291420278776453642453378642393173739136141804362645560190170966082340656393479868814698539539128614337014328101537234645540352223656957070106029557596278826215965133578363376703569956352790516191905136716408631123715275191346015259621090440604004007731630163454938605642636493386945849252962542288559747599964549273325967028894799634439085871826649152670050233610203799801792846282128282195053061252893564714362298765922947530046797073282658738043555475819816950328833372170387441672928392110887837421407112297840995269455809429502037725296410812925358568075513546250143166339719943003320259611738154595010225212862731398074790279944788307706139372136691528650465396421053345143118618256410919827181024624063107557575940703617436490179926923925784365645730328233424516492475565639693382743387090219940739581321834602921798941313876952774980620649332911562921025957749166079382327105583401596441032354346268962954128462057431950978596015325691004195128358673927026820326535772928126160032854624662347427405999432817983479094798372823144875637267583473561055612857981063041731254141948418496408752382191232977755396907496399797821853567820709770114526323138649041952846889938701496420349768601501208324847319642114935438093935775728824603569443241327780427380647817033359029583144727899739878643849620391634829108544643756275070564002694941729462340142136907490756605338377351137109009785747565377217134236458611826794983582257282307060616883656706357069984991288926753875310000272702529606970466591291189893001964624837644374429163334401155257893663468666857817087036939719147093557418459057843480023779815857778639107704339211524943410812927892674082042751495136162997778857310261724412966420310276290100468260525327785143976844880643058054272336733306281662315624942982438389945357936987033655276414309683408479095149576469548012653225523364804905211065051766759988069642750113624387313395451462743287609979899687672966853128555767860769330614858633629790992178713487581879208980721594523034176130113017406377086089912328971636844095769861784361263239946901881246222590037496843768330764372743681615197929383140799269969609815898010099662773262895911872392938859427602038286192788007593054734847135155825223843384177175376721694096297626242466623111876089075030527663580273014462474258664594933998862420495719189236998953849452439347846969119725789578186382589317608845405925682741107618523762835286341915364307429837688151743388455871348817889268516456671808893912342675568962561176067884175113613185726771376738551634962518808774095999286162088412220738165727841620254528162882434320563987339668513332499879002113881783449826703296820211449098748518788552013689148071932498355896577132809925763040421880941601795512803212794096430909180342745609183819251455350405685929289128151829781760915349480355294750018285868476303186466059348834074960160205168481625327229518646314662657196138225532764347773412971250303620696148944475186418953166038815875448734856754263807910954632480216422291213111339379624701490866241970379944721153029602269161419861668273895954819280001088836966939008426874613716225697787349647551834899172349193610425118280119210948265961132176175573118902108062119019739166413219165307136166268243949366045523482272173812464713501262883590817932308472874597818141054140517777377427737370018882973669883355951705145332887446052335401332535758722508683014610414985737374217779884112005612092447975724084970864816165465427359513972640778631554324137505649098480910396305896971826787045835977471322487912262539709220401324303114924818759690241854944198059206382610891477382388542003840882048641202417242183967427458021277071953972616606534688942286610221203945375179790860245448986529533259732689056892200663252923454120482693924494517041819419370324553896771108985324770850302300179314898926356184732264692578310999507455310391500136753659341165428327182269211875607037150448411505148234663794307445116948768223412961186800200281197310297190080530385889270502128799700846564105355753250813792222085041699235819213216168933675758163924290329037434786834624919683055817832460907541576637334405762162167067991627020115898660308167094047030511345882011157801853300497336322497158159638191189059085622319072036907999299319333372575828850637882879375643984882135541151082122774301309302493733576922102158578053935937397516828085286340084207341222978502975908892944052584700857936512129256643475974376381254464015231514309931553192486705072702288799012562918400053756335022046378723065044018491200187092625142307296350170307661902034775831252109441270673377715399490529667477857521669370992944984707849217641259122363304366543266337783429553236317912125994096195577354653027219852259762377978123936271745245048194819952584746511676806538967032159928259910446237676100814975443628690197200697108642012232402414355668808571628902804635218952824263892358876458810513518313612544770931924204138741891864644732334131689928985518481458130623600636222279450082120860250374078387097964983687270307287718424258215962364577939572141039174462051071899462649702279161247991782875441156825483922905158856180416285386334135431758159212846957797528349952641723756626094671832184239969231480142136421875764441375849420444397607203729999825509522468556643168832585350489421070701171717279586400978236210980556322815714360839710889253506074687162492130764617028072651093196212233672416509694293812170992604853228605216919864551155029794523400636943764239898641219762798310360184203899300335725352639183291095326474114902531730811692273943269704528257021819895056289184702464563614422414859068714802690362594738210799748704110327348517389915571243863237682014734854934112577110733983301960199661274916657201448006922317713852581956531203338150239490793990457690315653009265410924788940767292614093278983435011544962199682132522688618841983520221889224647369792544976215823153962405914774977532309567928489102487842059196724706009257403905806219354866864099139508255325288168258965641819604828197134369483241529658171850262772718230138766121481553313775879796284394114226708666271411187601500359315366649735522486632839708012189904020061243037770026610705359262894086257372725325765110490483724655840293738953926989923472184840258821311921875585703402548491865087603479690699643021365769503189850331495017605518529904323176138694693691288012516514218326026438059154166207849707479784002147329790809328578805793198761327953666936621399189141580443013213654481267661514806256954795457753534216013372373909028881689745951054739688216919688264409899351594154067000589188123913313236079279535699124588103217542455955601120083736926379421219059917626964229478877985880963963715572304219934014741273685949313415868460681878261684430897253653464995738322272256482366783554434458495882029022898307627130388200088217272634736134177506047144779130140884894082992868232735692709047188720819582719595158976440300865413509313012069171650495050936820797892355649921208111350109024329952593745402662030483512115946977106186201367995199088668664160085306216264028114661118825059228589869658439628681106884980324532291492515760630912090271154422070675966027686781451183280583264835489194400148865648371439057217157915039786539795523130671313580437697062845333986028234677926368851114300422408388227568289658414537422464960946704640127724148492884073564910901761739641405049517194197393377927142960964054804455838046710825886517184797991118284614715903707343489892731199339862505618934910864651830420628762121472442623981467514035967760840474505704054015793381028650219823541234220114414766570755483278770260119843082301397783394127710426729722465607391299442378069555964591529781253985701175550727528924603994832958050222546186422722987712339913496945667220242689096450923828443358183785953806288421071792481995811955739277005391930826555473659765249093553733418677536022878016163522652836927290447019145409367496845761604909514120575618206924405938027935515058676316530452468474949291456730505700252946486794899206500997446153629413750938718333258869335029086815015827572078714711008064390028258464976197041580470436863244315159880246487973626604575243047195588765088899009782718054340151058197821317013008689246920541135391711754408282835162817231391522620761749240419542237417150972827657976507568930207609863991341586181857921521613968082126592710191119657998989370332897318867515739491654144386108844569385191991209163957957418467087177433962283214552913470019789549959712461858774164526862782151014468657191055112332213406181626097459598264067612406754789806368007343603383751034392536335240919640382046106770341438175429435660276501142392641693481097213919021451785013178131274871303933960184886708422364079183233777935483632537170237399118499803779662655301497177330646439733086220808069147243702949197797830609116468005901067668215556167691455204439743318508982318839061679161084165905100167922356098447562741951330179095567627393935969244702164996875865005542862433778562560282624109813686276056834248997590418893997342013116894741332335880619110811383850824180325783789994158381188375964034676902382859760285514806975936107242358967780027135514528849630016063328561571374081755924691285349571017163469024056739897812315081948734252193997087229884614870685879927463165334741476090678861158738697854467531544350602161009229223958018041567798835786325736704929437242729202427574376631777784827258496323012010177130190493063467084035259489033529348810858721321211717830032985033500822604492419944144514820303952361449939768843495828880181054756622223736377708906757165364997720023067715502497412489210480251817687944867489167163611003919383030142801503900599294449152979727544786884270430699798050401169571283103419935921958670805909875701472738835666570792876492760235278279404393331312261666495941554948587318319624639115556743236066052690588537298815712097153208481723083463869748002414988812169790197622991249635109287869468257266367962248139342194347101980105589385750304599283415307923968419145310697400172693684164585765881111244303686935335710898741984810635754442600589457305839853886858196991885738983198293020881317831331435531383005044522171931298273883776574765431965976831147382891008571976652233448812933479319632383059287178578295471736506127920240428788239354094765749996900268569927048908808729001193714651299835642832264106652002755752585046407669631593282741244161030939507539468450783453876297120217466554309800375331440152544194796345380531855527196878024475572570982993616736293165484472085595655386119968906949633977971267810826612843967111243998133833862381913786797732956928276543169835918099620422479690640888181112689581260629942378827075721282615936138702954030089056872249375616316691740544048630041871757324894983231783239974124798646249593907543327880614761838926422902949242495849202113898747721132273043752961237883398484841697467444698213058198929772550384496393600904645921863100527409023331732313900911692470926832418509177830480502480192019068443361589151004979667277489444982980109149780784089024339007493895496447265671065804964510222556580117283425366096443276859410860816299307861096074589245175794797488089556752427432255981532698292407766817093955087671112528058367728532547929345978966328786214929764739539615763512247472686478237663119987471173127683592001606467894216130480762601000632744652640695932141266251915493563279094086748651545268638007800426633155339361023704791051352937069274934178197399159132661393186343867478202167317663498193198856364305084755898875720738568948624500643547832143612514165042733315511708272942021960911348193181412196604541568035310577469780282618779261109856905256409066152962074096702513601506875800842202527043590518930727181517966996383363825877075043027703028309523344165602239168942978296130400004980420831182408863881094059311731039245813986737269602220326609869968517648828318303091036203262626656924584995961192626198476223997691532442455216448940360496825760550192998367167767185635629440415645100029574128559423947583028510404399674479123293568701751118079670684346857613840613766501777461845521824692368050439903013070564680819271308151401451211905609578299053049773974800172297565061394016589922109944483474605485247951570002827077723458311103905161377600222678495783020729061606727044101469961109840120082629657982594893550622969166252698035966493818659800346663303735004464053594568591955356887575834247520211819327716717995817647412784334754287923044564018733888911990293168038856249891181385144170376237678662829343932725595895323800689941085640772952814931001128648652438233982654566876549446671608532619678872483709287604431970230140236370667208973611052081032755435178750747522864266212678692055972872487013459167110216415286405090171994374867997649880296520718031194911286883044764095251626023920346817500063322145976231903575634598815595008702337617389306411714241218469297414311751287810660312703175990807430974517715258366244903479781639947587637127999557771277744001396680909155099811336623011465479064871417632220018657533569925314311307321821285531695488785097564750072766040792543857343894480481755784655093468774166556213002732362844822091530138279129807274843643322979086804699639968872331190473249138463658745996002942865630786677412632663935114615834200271541161143792259453060962176344274500050584526542385213626722678356236204608953376136672439963577041429030359443022044727565680220435635790497291484026767747413628265352032988636803381655239442244625166286237303186302430379195251191062900594956853760444510322458724099899248177660707383142357873485474631073313819071877703136696665237924860346440908935939214235985416634357366091621242912778297074766894460300818562909921768146243652385777485796913975462799281070376107931133362038302029368113007147767247998944656723693174661141131957810451499124598334859161932729892642825441834657869887732446667987222191056535142725888862077162283458542337783961215536735092879289973675346886099841621067129760882857258960567660847038568637795095865768688869057707284965046321125834402918916463351222875138618759624268103394814208364611875156187768390224726340808128910172041983286140462451730729629245826175169529570361016688374868661006785442035531094213866476003786869622324793524320933968412452257629077646257628241032897037222481887381609033285133872026630369564725376655062383448200907642834430845769424684954961834928780157296882947363155149299860801655259341976365025747879960582700201448819219156023711356766152119935370822683673498658003879427066167245525603081027764895167677278959660693442370248953862943145097375607445156225389094899599429932551406755417608208526639617958187259515218837715193716358864515622870828077616613529222411083169267170126783897729062764043030857192024697504414913496859023788665018161334372502537829605879181520463333046759726131966442201903249569514255321411908530918691555952185262937627584234158741968186882825489279559200086305829890882755054953185545499364320280360242297627859783425166136242898325084750012403276722827828459735461927108735918223451241253680753594930516045199116183955389851245564844061062989439321334605411279056052028782806229233426998615690823194666681216576998704854943414490150082000712264035129044325721689124181914763176838010565966995986835040135780965494925970774397112105351601229650768320829790244381140613987621148891529382277662401008556289816380894014505775278361882052517860325879519975366456429803995276065962032577924415114376831796198598302814241402733152994302137738754143369561784351639765343508935711812148832722949784827542279933873298078513110416167951405941520036788844463895786445436004917407435448795927551657173532177528573424330030428866619370310436345654696684376391147163249607009985430644507217163813019092091497859355850294065555820491978073074525231940365401617855371504289282865119737397733395767445006165176524830094747381064504630110612891342616850529459233471253911040455656265245877922844175022494891441406846238290037208948425084227653622633520167647441759151664149510076225523369043757450655783786384026317454930262017260727459058083931399047404681260290832363374076694178570431197460899449541131017665143002063692122295881570404273242842934601066355160800750470064373224380991276122660504305147771977589844057853038101960121829824026765771215208799362580436886704570067370647398322207974259505578111932978406588606399745888541598729427336382090731475409927616635341404802404627574309389860821999822998011974992774646698971563395411757179015791846430249514300716026688269057289005230820394230389275874934560570949745566770237684571335893373727665009342931425591432919765460896621437226167429598485752908497274299976566548471003076042401678335961174949194103278445011302831704353514179912441679479241130411000704767737606107366159068101558458431018795228511718622079783054147640692286754636694764418706957945298505252723772068778450772349119034290859195307188314735702341606774886815469404882722781039988635465195970864569365422648334622959751219338584161236646545882176813836526837786274010961474730962421257678589350575812343869735245073530217935378183118140902426509064934160149884190116225224347247932064716709591687098632277768132347498789297789441501385333217272375598836888339108571565299596150066406377594360964547321303374788906659079669235645529113156680462877571949545837209192581271828639810862532990679778906442517215356035233086694770861679064745854763406753294836219707663709290553384449765813624164760727136184820535671438368522212322590497670782743903735164131879177958009254064332133847613375167043634786796548913466070871600561354674970681495988339845456064368772072537741510532698785292656614592879686087533580153441933029104611157789585709859375507107534945644188685721349783684446566507711362192547939007710035135952913553520036102395935481995306926618674308192880148879247140477886687407155099358093166414745052740147112313580062468906751696785862453558260638164148363003852508245241485022466063753473308028699287051574759038469777686425736515833697821355311305521841019560722745737780485304708735059546497774396153192222892133056656588463020612513496084411517284997643969507432361362138504825762854327273542664792459108290640625695671255837091184004033118908378826487254138632318011384471178912220506774707946737100234027112056117854592929945694113862741354556523552880646430065245351243835900240876341567305325307233645820162627474850629673793251536838570278115086635108243212186370655827249100408973775318540802942729730965311017259269380777404352388344014413880459119126267621699227536340079162307209267574345126828214998340278196752105016821475266727328605519948963190867224736140697647469316047407710416694689408437958683740600738268282092808145353648896965936287189914117900055101853490481834510797430431421898303799251642931073287750341217926831993939288833082668992015529060646198428939147788957147038100384535875121044895341392975563442886289199511983771454696758026892775487402921482985225529919995105321493006274790782318354656633805035806271067726331440432031323982606230088655830070565040325824740104631302958266661970850901803380983799249357704446702663844405903377269204326026574449878961941162443856250537836451825247538696368328910983822788912179077326478128704436721869622366711912376000615576313003508107491641606802174555859981578716704101489764889431246797956173664305102538991469964613321364748007847964261495292615363906710858863661520734908354206865066131147248400770042703351465843267694836888885180170081135165036249523187789189093621183175526112019586153108476189016912312781344115369565814148668124612011774516609823301987462772329929678250879486149183550463393120546276773350554591838510748159528263971252273677411078047362948801823687875116376764679197774362451863267875657431835193169476163332571408248645137914579611621593810849919499868729254278508249954054955613837999775319459554823991820023936391556732064410810764555091462417928473597234020121147736199003823182223793471936644786779026473375529422154449940025664311972792227653752299067735344863256329455098383449817558463945744984629411876050740796139169525158406613833255393321597800921269516832993561303414509195874217313785694941287200432909215827985400686049812585130729781265931029958624484986328538541654232296281340119183371759301208849950148952860294800065998711336897914749084905244993900243125730655552447905101612318507500042666960853045556891018674475469509902915768113981962131052687642464114404636459355912770147735636748396198960479413012652504627290470097696998891529220728867873049807025275174252721862613088489918662230727882084226362875329993416081626400056004548725726645591466534321805179985499665819497200891653293712799383649039732351230438955817249288982830320622085385025464767231962398067326446926593560677130642274169419869717046508939707228733496334583549715879350444126822716504925479101108880531868173836665118244159899505035072016903137547513358263628202228151041727320504954209557268798202122436878291901705660292861452098683369687971592115441862962337502217498635110332394314260252321739306768203544241602395723279590522062698324204521544812654121017648932538142810057882927405021158019104837964171933643171377883463345819314699507804471725678795548875186777635534309936792463088497854821235429053026699196800027201082783977102702559817060070321730934490067930071841822529645112093724967877438729633083477087185972563588544354584871649584342916897503396351827640665284174335597767396926960398375184268655679840365164627053806845967974343279341320774362555680740390695380202574216441516921218401686111961503398163888783860885476717038247887233299139508440107244687037204455204270376023364389445614494436625172792649938056431762425035542712172609196152819476340023149381527844598776729881916120730397653874728914759988924127578016083540196368844174948154616989671620194318050998223691739706660212027640372555506955201688161014098644813559363291133150429054549798297699701401272697752806192289633883203335164448126350979941659477167241353572759046650772997416537259920128019940420837814841034603687159793913805029192442913751031761833936659331216724708670368865556668282141375282163192081158485994486949135997814238320788831607782187996634463630316300789719397673112273989281750621081469538159719615059783349923354954078207804395389969912016238122467607307929032973025375811617187625304688966203235849639098851074009584584315699455008974863175959346400585198553178717112200307708122478370472197916194133560524510041128358048686474991088224992659069115471081439764737900488415983839063213102340274846855394996759962273127323315422978917035099668072936505404882194075095112547995622774200898968445477875316755554968244057113555097751268831485480543028729634377768829011681944648162253131237293177831585204667136415815142039616765385302750929942959402324625301001571779015472320870965489638085948067617710743506353519648913357240912638297529302113068723755318858554245273763650576893469299917534140280353302653269599129512576840650667387278114900606260093320977932215970320696049770348814457095233017335517273472439878811895896009807533691618166272526386350707427322519206664636060886309927758835867643279532274774978246303309536321651644398476081502288517938351788407904644967403009887342775563621559106210652679763407039392086804682203709776319159163779735461561105268887712942719805846016918535185703046047067267498368709955092626593823838455220935750246977363847138221514558051099604905125748546606439690732674294850500693091196208832595970095849514758857543640089572748781618061771356193616252178925537326353952637823179295294225403951170494866826258711044678904503350992210323217222589593070199287066371273531511098970523688523960717766868893926683063072567704276379375770922790477364078289700904359756540273903584700146086556704153051771124237457407141173412815753124156421898622323915933894123326362509931525991657593653661561991316305768866352487714203771852488661817967711583643365690186667722992361470469751218218337249442079426504135883818955024304427751803083805322218499745415754132744415224277489136219770485215457859651024075812061807680503876072368016580544617335129386025675319656939710454710917001731792819672911000066323874105746105888678682268583377037602698174443603816007946692624694944415653130242069454576261437914483223175684533329613752609307187690120825180680262741707405462344991942237216465547482102848606850922900141024538706466868301274275058067181340340660525320782197091134928328902378237377434375642984160237954122666290331056326731396350033166444031857272488515941100824052049240519196509061467936545399360701638971025756197206660836390589777307696819832274482332337031700299914099968332724395675611253324655854191047358290718380110157249519043160935398459166104880555734430428217836279686080873723456187242656892783109706365271985147698075815623654919534050460806839881767667583792849020949044102553401241547716090545751591879022086606218183197457347738020293042571896632274170719894207242247925361184461954360823731964293758923436772063024889201162702645775530073555019570045435889584904468805155186910761105163026419112986225617200044967884999771027506847205891687025020442272442134539908363417667581606449850515405118933581088192017862991255446533287393947904112442871992701084308153929186112595854335368497904156665519881403382544252168981007717432185835315377732143694127331895978276483027105362790513011064306262112960931473372036326448575482607178714363683309039827553669578632853365059187869574215246414584368880376030531987905293978635644847315589906975961550718610699039092056284932550613724507871810072618021817577253574627365605303688038469293032637212426663425714776053648861180893026834641032794438822102084330957364471308852011042036759384002645370120979224778123033566517044708693900210800502857643255711651526437875640638444141898725827538503055200268897057064764204730179293979557135232582088988504172970718370014125003932512172759769442004084931376185437500556589752225114884922639634965316301139773982800619790028544875867204321487027800967804598443006565775397310144735893058751153619991005760832500332103149752231060946782557576942375094439057189298860620650984844764622205779022433670479019313756113233146731730602414211279807135970877394278034004865269656543014950805976966037105520953256463808918941331936269198745464249492427212594657140158583146889400438413941430275153439990968677212788835155284284798211630238334483861859467288244748320700868486120983396586487123832788590536545879523752859514022677861629445191012714019203521871012462778763204346530350907979967145327290053497807831519383188236417998428355530508746994071017005809518517994132468905936549393874034375373488530079352488597404078989474710536961204111829866433675872198518764316945701718947792440860796085569614420531837362579599268311342586496696138250664292465276895039886093516830031886730029127716474716754218881109139461210494523529117571517007415923787146181261717344797845323082182364786635945804594218978708279901554215902936647558019511253483936735980569068316799377768243667056539770136803892639676296230529614793598955752231553496016701174627874033522414386711019403019747440813579479450827158380906107544607152858463436692848391747818279428895329183438413507749613077229121798229902089831872587238670944227817129185848909100224403794418373420776293387942307720518636749677950235530453115087968501102233185910448611990462575328468623899968203488891903531943399859448106087567835164024995587545845377609288867972493993847401705701144305425663434619966999728568030851838672512294043002979970688173401304890483562605344378616214771769139032565900194520539719485127303576225471517389049167284241707203694549808089981762540018743917023393478822967269748488777976783640714392386341805900135911511998934188428964433417271095208044659409412225835926026345057588344828087690542151731825232796400213370146272884709005972919758490380687188922976700683649149770487989889325587618699499882464062870673281633380638079914212818368602148397578575149666686070190969134642561394534238413954364617189534208023734827091562270951209682257177706787961024182513603285330971610593552555752812817447305442798022542811811877072446418077816932428981687679770732764117525567041949440283664168559059521761175652639126015701470532384211879805243063635821251868627048252716005633218919735866225692093856005451099672193867089952484377741884765795574709585322835139662499492227930234866436862768129215743981559119324866099482989791816926077783645364246883377108612485538396937993877841870525208504643813787601692384846334331897499325505478008544630057555683842921673662750137885241440996072207668684176308188742178700707189104259895847914890957592253322120173272388383719340985245637519833723984887468147374338070637337449641930135600214892118904512234077592709774184504374252738511483642269114762842401744117288700758658812946488601237161713704753148417207555886309178140263247691536733411324510330931302249779671955616084180283781713478145883852214430817229576009257856743102809152773912423007678899969500637932065268358820341410384503085253683793606930005260289696772455919524519281521792208092269417609342003337357659892460420563060131656652903182216401657289583826767092152755300717778572378067368223754922068624029936396334211003724270535772210399672916655016939240536033349693814358266105217167294532565812219986968887501264186665602715427957537561301273412109101065436435312033723000758782151235726143205852706451941638929088046954651260128568948719738374287320237081695896688535727260754160748276265831401515141360180613122153657017597932796367925857795588519912379292950134216572215275468608061957717113104596058936955295501918357775365670557271511000902320010569711217926658536338056217407890293636904478967579207965510304813007993222707290544712225928269237067777547416082701262736324690316481338634704301977780418495935743978207490283805891683717315503435152934320601812862582429268791680539396542288121163847719171796956775511847624512647551937200632426254246320807600526512205888019470895790147275981121609169959273714764572431238467550996836003311992222095094963232870734918398427127488121749766367690050751882229423052368258780098679455491842272944862133692342956163129593573548004872118975471352593576642301214582600446005666751154309295446020862958513141899470002252724980936027922291761757174669491118077578039259324896737523759826421800532828594246389654732804757748414150177262540237354884366798655703579306703998457708016905191006777692400522155436715487442478879325130375801703947972685780844516060267833449598972511190632599911634896853723950995629943475740725491481294363983111034403051791543649041085245187306579874338572772998400787800560037987487772721309004767943360281335304060580947855841629658045394669996090171408772285784002291884510785066403890193964291627638922210476890780570773929398323839006223803892433722841395044110594530194048729385205286942431847864247182667530607582409487096631769089480987103385542287625548849558172119720186056681639060750872754153734380685087085231195877376842606002974499800840700423675668125718637209635371350763041958027908184974437785236519568933433048872757049128681985340948387592327700441942336205902374116776940205841140350520826348481760506010123819090283067998370698518100692224973602644040369579067292990131258296714611688391438624181136966288509365935829975856793830418705690708741159468042148763656001756824410345437040215688909624205636293704331183459759257497030665094448113764291844290850610859307311617827443560221796500077905877819799810033352277134319003839869006389041570402153271627175996238058026581927666292554401910935252052087036312447214153911613998011106578326129767694991934547054800831404492962699706649743711747305730451092606465420098051900786241390976527710581727391415503548093129850894508918901763976284018772128866146785286533744461206536631091494275325929076532175101519099114377042970223881009374306690838186663650065184105032613741593188428831284520664662042622277183899424220801559492396960534915588788294133903856752461063490605678009662189030206424874107519266394034378928095220883794598672409514510399067724994104117685068127956297800042331433147340068307531796975447240600628208184383181399335051706310653519781384251633392440501788624229819096721882644498182592440832849315551258565404983744403866496184159032117417888036083623637129353969356782128649759827674535746134123098373370053508148402996188623137019298411668512930671099231292617858534950836301149041563006644586402983204548570972781731289113080834035791833387554462989936204533119981456373541523483543215356900794187309867219220873841897041314070987493384864537620360515672329712708030104637910253690282022530546094317335592523327422798887422112174379500006329888922219535775839916780561833447224614498237747897980210494239303097777180019472097428708473641870049459812144608196283293754755253587354195731903272462425944679177217568782709204889452991557274247397598123977870981943808640602521918825674319085042177928829438136557928314238367286939640991210701948420840507809643005524008230642493726981786829333204030311984933969971833278986323474141276438788901561515322411020157363109456421090904608512017181499936466383600995102575193411961404861107572746047769869569631737699753787919472251574027883753838513698230566902858932701633096071644376728246851265075925965469622713066135617718562788283470721796568789167415242683799351042735897467535203695501395523352292460370070054709832213380829159593559800485474518342016970233778577885392971379529080799453322714857583048958061814401991338072067183116157710937964733979645830193052423929816238532904137877203432997015607059422975939222984572218180921761815465518560227798778785801497472599486140074683821062181685183179409566922828681907453013652716546297476957428576413856904896404599492331701982361376140783772984365658267277243848955607245490013903311822813107353991354899819139933345553389555643714039459368542454758462390807610607547298722127823260611314583769435675648519966358278347149744287790968875576157758965334028295413449318015964265197942330133504780867825289592716044565862138584914976927400478849299956440056119260112579034530407296368738241286665722813110968866409228820697095275317226640366749105563663368470614099214996535939817123519229270030233049552522014113482371156002971963416591245577360132685755630491061343794563821958930603051818419527265276413350377839016652168780750308801808951969168739862859980001981066589033865058344905725980762215823812969504227159222653975798826449920785206895573931501916602822862055702292607558025606426668001348311092821032823862370419409140810630632506918125622608235084229579487808049955427781714084498132674190600870361313905953078481614195363261032706694747812428362952499902452588034486568995300324760706139167737789583267292232832566530452003638679775674556666646712399046960501817219818523394350138815850299658633690400032112136476923338556287334330702752471522261667054234615972196940423663501928948901064735125641861449673048804041713211730795496955785055274290253180371023713154262810913973862619189416724451964460995047694458286421486222525348513610797206307288833920064217088278475092152046829427981557093328448024041104737359603490144840274069350028308015306838284001935117231791816029313680324217229611013445377248446477295997094099223659010284108059939822149745578256522635346778564073262875187361822450776470319976435009427996650778767795808205882688532290613963307067711926237927758065572247368398778290281878253980337729106685751664800153378681550468320169346951851389349999180416042624586794417268718271851251642099399170848114131186194989160955070373826718742655744746625149258460099888033628178696680406115789344733197384673202326251603677896788981446576789547792714644792914029698609116901022288722853847606733339505486982097144407426516104385227020398343859828965873577023980635118000560514726019751695415447725046218697550476729288245138844449518424426897081859246145399732584725181583505249578798486817350983380132322999798292098279038883557179478058613163927046668252356387688022016351049075859183773825102890439435129227853195584118341291993063862278014754858962026270724961665397099363576601340154219451588266547911700238010347817517705184470516675407454007215279572399079271997031836469041889298908132871801816331521444183076895595103960759980550649002048839925233908512433884343108878555902130239412760857948127355937484850840915419992337030394634746834627513104265848784003598858820439802213348778753597212582623233430348861016441874765798626781957533395992050470410729159178859440579865278439297018517708854327751895742092321151873473383235681637077732599497554848985043439632129845780129498813115445721343357323447395407637008537803462590377434776475698976013626205587109228887354861235239875490726254559111105721525190845268134300145460353290536911087353356741544029775834260414126931694653511438303136452228015851685490217153366821133460223580360953377565441651715572923592471981195106811679038581767044995568954307659859768190990009559411672253017401640708317284757762177978050489588714662424888202746405894605144708522542179835810777225633597878362541573579374096966576002121915992541369694604163173655122218803201537481775108845138673196989022184356081704057455344024494533472028246885212576796860311237086940082834043240558915166664295441936062023870853046173672227303319532039558273154847336876704032651237430554041408015525452661744240025661885758448283106823612825720410105034958087961871842260531814531867196223593165014278459071964416883832940147019766531633328227340714738858323216889256567603191345664050937186573104361912569086047917032579885946369753793105258181922090727288177702348194986882683665228242688821727396695126257656504191787611788268939974098193853676094643380846985215141640067945834818214495487105304198608582399201561251654865803591583257125433910055463186736846459853519726496522132301944329989460557095387004088930539853392266028525823990482139962616230952818549392306376976985185494379548092667559538439094268420810562124398330834132701359188196859564419709128940102887813065936175043227737794532847984057146470177714031025302861778669689486325170921087302137935853141820152345939632328404607415538470600853627867569422921627218065872656242973591052569142996833461422087303646670172848377937702820203521714932956668224656388562280984610366842666732103946293097633979787804476603280872428308620434246732935909711564897712004855575813304570119579779485402243051274064908576971916406473065320948131691256115557538190658735756837349486893587242803768665980643439231878097346594415111151765292668502207223471326600766916629789531083196921642306262614494900911047791049707251450896927566935355464568285406830173487984408010107124225188063620127052593472294664347626852021803484273078295187883851623213556564984908179542053285085614585128705829766602984718556407016316952250696314178558000521601813607336525792123245642212924795492744950319298705879725252307387159471195968323885293268601963017426543122361134036465795077879200932688382327683499848668849912777621490177771487892830508912288884751074237829235616116977228211049540591485543234209249421784933130308260918171024846680182335538781554423137781899516298120799046180463527245685360450306712238647647578588143652571764581998481928529701815045248852067058878653810216558288864069714401120748749034177910003952779541751332009070689732117070564572412857103100994267249056088401080923961025998428291853660482731630631674014841427154239544043570254107855578767035624858965029968029150989166454430271642121004783708189165064244248970073211960184846507928238055478051567942460380018505684028436482685295292247836714274091601724809796019689128589480165513819362446939580437698121276491024534291438616482808323020764779417222847122990699418255316016555115534509339521277183509808977187553620043038845247588662118692661632223557573264815460757167595000869787231944693447318268214772151242661140613403285445283260887162005855354410786958472579335506251022549461356665004912213361685482371756125627165168250624278572679975465375611943040394104835522917502027934414626287103175421000114808635854557061467588356892934785719316678412417242515814669070123765441693560908548587238509446527799664524316120515746233967748551143480873018028010352055482187182566184995685343339611277387420192194266320369307672397191573841951809194045438500107949554020751411480746651511703654190473544055785746698004354618901343135164481796026120200703140298930829833314882017948152053111350224305346511137023405926180981023397664407375063553710156798904281001794541547543947073374037885703953659271752145998792133859643189898659991003188201488942686168646509293784288782267618285763921785461282701837049606886625608234872885236438993062140174508007452498145992651162061096839571976219035426284978424172005500285305030973545100874877157535302652994354095150062603132906900825760187877189717119180081732448220013382847297890764587439193975248948003903539639436037958187750340868304773208356421987941869314320085817003736321624291229868171818790383873179186509458399176266983583424178614768905055828298262437153518400611380682552371218960787727404999117778181824894017070213135885667336401416451443153582401413287195008671520163345262117370720989670670839343002246453942184870231536950349745615282819359963773585823983359990400286700267381651391753210202721170757993168125879040917884297404324347332685075471829182643906007226609520078380788880122207878947808366570944890983310282035379369232550469779809450358499501223162691088284958222230716982024191014779937646874744602278677748785961185277566195580209384125361095586928051435977992672530913152155538296256741641292360256815994009090517569600869758874643885140131687481872923404816725407109066015822512976009757288583758434690749117388514288831210675150175103227181302601213249927277966805422437141841332865255064336715379825284854543219175325596294866381576496113822967304770642842795123381150735394060260325126547241388202990939629216778061782595956961988562197265459008134818142950047971832894193693005109407057675076143936040702898485438580637548185184475761922627496283822384130643205677663175219736386160148927672054580619824371737292448880787086377410187959129508029539710023545730975419612222993153147478588661603371577918150774343058238698998199779278534306344170883112479781599881012065091592932142861060670423730427907326317428524461309495257345094043494708558918778128986489553221994120076445541270328072713577586846545206790591489097216768264825112925659555336508160983861119641731495862378629474232717085286000519899792484047147124731799615476299827659647296945390947125655304673499299101322391509902763776830671619024662229318221883826990243558047216998717551272941589916830972563713319809855704142925551894145920487768965712557380468473482989825817804124838159150110078024263606223995067543724727007919458223715472762301237674094668455055943955403321603189061100551952396321103578435587592351447294069363814418057984096086614396108210363462059623786272111243624056387095175689487885050438546030210670504033830723834453191619041132852716387149768776209530639693932025811393104476862344838673070737166561198048230117264135567584436174650183788735141189708032739942991582573761905932120720263266516585402784379019816386212189253940503574225110276588013583554909913272710047531738785408826227133711665229011707875372895230474711270046768693505026670867471052883806978330275286695369905963467883720294672777574377906594870354496036076770190845279205476318134058564634579159181696175371498223410682544935257724728356326152395490152677096710298705858334655706268703382411381639700837129090647324780938980767982216883227174429296802747347310484442919176968956691499489296233558028191643504154998229837766232363461124677245736958542572107675643768101146993925959018640434844179876675528844021103980922759916372233004492675868173312662169200813952783025935441108323028616180085734848700987977005200764888128749186014672683248637586617541945821144578641105245525832659671199404505275461634893186010138181664603616786322489902807697784443786061755017958325169400678055583455721287654162641845813419704431824759534877348311017524141417804488391238578563504553161299516266219704247716175000982682994655194277662692946320489126653137899630058291928730759028805618646686491361446227512315603417866186816513283472975794861049541665212977869578544125082473157661918051570069329944608396051695012320901275846912517967758956729269434729478200135692329780066072875606087473393300928557113145561456400614584865637844561849168372380378505044917948459923941183136711009946191408685909595898232460212820967679741487371098235521275154436430624913208457640159031432116142264545834189402886493195367756577244636514407308503332803681310918115990074522572528368896791431441362746183533693565936639249748303633118874149620137366882713183108222155048206922365934340990434563614309965773218310984514584503270816630134961359331902904401545342435442470192797868808060768653295463576783510890780148637045073564799683158140767510932368717575968455313727630652671166379956027282964792862052733370916377473336779818411447915191809461578269292471003317175231895651304231529863260189128021012143571680601731212666581415980614523910563879899818236536267180577977155950955945026144828233061475584762327372198695979944093010410752013775677016917119475742538418435390138480617075947478329198821621293596256740018383809858177993723422199676452140988668167387563026862629482553515393617976033088015496843998131552595570747867263144835720495253677113346942489261838990871330154514543592100379452669835563437657874255911985318066785914049492652918036592707415341984891937868742056796026548255130923194516036987596629732195195219766530002887083410813239476298283854238668165021844706224671152953740445568076712531732131570416223069075245490458177173072479619650761602023641521881703247484696622492888366779685176361867944302253367683979201495593373731905340948036171785338706030556535393918405737424773274320015822078037313942210547410297277941503236924897999553588412545977504795819703743103334045092513544246945234901486548792626982061004511428082361102281708489837893317976826157910526724323454673874038459385064158436456808498773305117481294387591086019123736457139403726596806494347916228851474413938298507070718638160892422744437677106269648069398097490192099814433135655785832822840904737338676295326271193818219102348829574217808833665854413381754851924742095272962132512998044657603305265598480258527661781256819062076984886516060878336978660811927957530213338147858696155985499349008762580254698539609545389904023962129628026250472513679271927629258666184377391532072274037762236857831083175431802486670366917240500414038945895658818320070258641885796584024929680669584059819859112079433459107538188848655622668978565114956924680372709182198630544947956831860263046595139807423950966131496766231522696424432648400077047902566564564913094479084350149766581778825531180775730405408769125993464029981323859304724850413088000790941663243293174767689072446759987497840609402405463290289243928943789024845194480854563389973988647840597825395558498104275406381019676052217781191864827734395339781096978387012473147754344389993821103391959130952230457376840654653249997082652849829405722600228423894099411052376887914931748671002840226750796563266441919979198052001405333426137592276363756599277623058464987828080559925666347759588479003078477318755173432306871446741679637500184133590797240371020895840212285017276050212471800974396652745659859225775700319682909272961532968648397292749109624533197477438731216346357820499043643497978504789675183435555692270635011353669057570697003250153945802928125766319017928872349568752780232222270938093335713671070888441327122812016123321944317317875794114561272064630022460757806748869518406382494753731455934347296159755146721702614789099825089625897742615447831538432943650623692794675532866340987486047938300362518688428974600153288985490627219477560685608700694934781231738262092467975179013114536314216842106100503374382104016496078943645492060767804190895265264738108572577771403644325218732694526180608905125693230054212372552140547740821416534370849871493365327602372555988127069691722833110764448774421076139063744796062045765179378255959674938665362992400786884231053489599593548105418534217389728729366219902346618037291734058448765100307962590875423490938903611211836117150032017304393388977868461815092030127355984874226626980227223863354686716507404865624993059789386341471645517635192982884598125042059332810933064013050148548246362795294974049515830199890373500287540863524067050183943719653570464153223320209768906053251179132894418491392419244501679271872951575470433238604354927925249221125159647556367472391788193817164647147218226030051990806162571398141992759729861504788136198753328934700427111563118517160856846650446864957829577790123706930318629192381218547056124996711568560751823393824041879586485227486374965177006500707900108904439817317972648682955531156426307087612102750433313552438341641157986088309978741967663747040947867536196788458100582030727382692051304054408728891855400831290001418999283571089459082843780521275979661789059836565890356961135242252715423242207586213545170831606293346684345379408489290397250266909999939426522792647452370367142487240453819231304500528346117216399301278326487307627703958339425268471774461969889319924951146770358713005823189683850755600334117998466695241486933030463775638063557826687015418884027051723996205088521391218471817818258372927427080444720764279543008052320476247776461798109658397225469965683981787754412330220102975819185349751947823876993559245108516153634318343784836507870345080795464822557494218732894772287214188391720738858440008043729330235140613956815384549277247246880187426381551966828972114864038947793082058693573423741199257576941056470337901651357646875963334411825874347025384003129241619279823357173859352415631486146581022187269086828890373588167110528123923010275531322985864042967547849611204979714268905647184613316460773845603924879411108510161678429199476891978085862306998352676638465951991554337684334694084431897358618068098172703506556428183998613372507021516957642292797485903289052115370170371153707064059558235359605685871052933392761855632113039685096707667621421760877817055849159707947375650199644535360302983396498339093092517885801716840210885134006107791552208165829025699842468617618111084853008690692479176376694847667258007041111502170404149949373596213086137372141237116635161501734041836643362545637061087179134689722319062547746766005773239249761358764013782754632102895350171048460481221856613028036172574342640727660468294350863824844325629603557455294253050276454135626323000736055014080817517288727973824952230629976856741902770744739698788077567682528526628483606378492224780133919848469920632853701001256865970513029951899561096376630199115289544428155434579948953014876270394721147423521252830656310975133239121503057712597094992686583076643484828241349194853479034241364942331999587293668796809516944960314782795617838674521567389018555164834920390290087053543662323686666207676237401181165555041379959585848543874403783850154105803366948585006055136238575369762405958895689177894744180464016306214604603066425651116074639486711318622503610988315556981194666906738228878228313140192166726613667179608476291548295016295542306807206686069246451379661321477095438399543726637321754652775930758377423878195291276739149683402104278833797339398573711034733052629971368497890182133075373217675045747194723264208734485848453076956791197647161126761663721863350052136984813200012654739457712833549336416943504899457841792842724071403714097205164014371107431419040611989718645844871377502654586440329723093508085492689441015716397252457957362177727117669883205723515595023225087206263056881632229992595907894199467752222352553331686535802656740508927785903492580081801424206343946987043407984203954509859186187100087755002188264770170229259657182203349534924944044467089333637719517413289716763207756039351297641244405049214366340914740138689993873937523305177810048075129865064445634104384191398775345727102256279939863099827061899221076481203674080746454313601731604368175141154892952791650818502678991936080371421020590861397057663606815214749038704011702660533103255608558331582524056439230612831918187445379397392206169322218687114166795713348577763497834224510467294749019689162764984664704932105685430663235324393551315726375885534433649056498811316456229040440510835150708861129521715685089373513541356222034575509654301888487998563177665626815266871627548014989741510622313009968296418460006743044296203009241483780940883014753787240553713991114423303713440520352060053657901747547242680134687536478678713566268418048747756457401736264666365824481759628038813414757150449738732951684247249139085718413803648597639949955181499251084248928975434241012208285836643963704511434292391887013503012043626214259059689923553210319178299386534794929571867751194422816785765585611037477433715236514772956323584074960756086053781447569775397007626639293070549527024469025714416051619217001030397124204505771399231729864039744878925726979964894753153917624430681558179734778221454887630299724940427805064127814828849008661293600119437910204723761875140524884280389267366515118020440247434698609376640556136471215010980196143298025526890260636452643896927810266793237390474042221269368505620465789149540984117832154360986423300839606969236170505418399536432390332958538188096337568253327426183781315765241211523436025976718355980312917359934736863572207454562123416330986743110757276368966695256773327570350774208936449904065366258779570579261823440107902147237049659785460859576802762319742524565124893572695785145111708476153084524029471725228179827563710751403570020462483465901498131752035066930640741905297602044679235393982947146527205992021416957413151163157211550267964020944746417779053551158280686001114661690735266949089095274531570050073137497372110577860542595659040398653431038367749501076982175687621187928578360955667211280842140548633033509183304558883890682376448561339557142704958838678340836705865366414636998771089556513810295951682577920433381838002480859725812230196154327805137137073609213159520720364369843722393791697577088480742225363343831795358323795884513105864221768397951547766556659460288395555559092247283982167685212849500796512048918119106347448775852811716720573741177226400310069546938158280014106740356535020144506431494451463335629815192619211214788793849389729619304263541314957808850841839245487823907136767420636806873268812817570798044072134713654998485237434099048860439325626754110695434317965139568746128162801045795250195061910792258386823025809282160035263154669219173829044803367210439345264373483825900118346332180441912521553874482042139627465756131602441518478068935216684428420993931675552758041611860343271699815594891507869486398471198057823950066501935793726686892530270509139288429639646551371357041203608392513776903735285963879722644709484846842234974106724932984506093370607483555858097041832390626971520251973289622512338022352734320099614530936115302050959926196469045237827320135057221258275548842007547969715894958980024599273064950637334844037349042823747726181041374254341607279926792493314976618174603070119476222770342595958825051815643359379962422152608717057347147310136044621889742389929952642509646705417767354139331616104595305770570627580323435965468338751133525586207383791253748580905654524079925205390193363190297701131891649024236991385396778961392743361030394647196512385598439994963265518581499976955929041930546344902243553544038668603586175724241140069625967037936908828831967520959104347359192039905496884735794014134025630273832454457307691389125002019119314314927950302210512874355738773668947512847320115666738896195464645352428387692703791073617355472053708080311331910596557189156511886406392522811961890981610021789603188524758392608168669003732993910274841066793554228139971716247634248939408237214893159035574680165490233413445800958237046814760203639626650774457168047220843869789379637976074783694316377774864482665653694302001743599773164152216896241547183951788599354919155401838789310313350567151022598446160358560615244339864564748961394889308544878392161653710993786330644881018963313969932598957846120786625613957745785480623711801925661707647399506926928024196960902134012429885089569520660585602267844917867026659750833142997883186234386315369583430235947140371444575711666440081752140321276739281385707486906059655115034128583511204458991538314016054218622855144834851014671798582352263590685179579068465671737927754979592730792912487263321728655240721744557985856189989767073623692199054034822741977278235378427066782358595205190835373829482538785634938866148335739631468050860549584646553120430310970043482661134709875655501964641366490229443930657727093221724083609261674353572870749391794811780898573776678138906444211240990152703307272413442702843333937449323790606606617091788253771510898368183427765932583823698621821775385768782333968395322382593542001450334504040437995473280606965052325047720447103758648679588334057214232341357229116726401297512935083696379959292486012174721823144102867313995833128329576949578013118238789999654577935628159152048760511058032018668347432092496948315495714045331684851450413862211676939229813686365587259135622423443249716789948103479971349519018930407615273703364838012873457882842518330910089156734466845664789750539002309081772907896166375028001215146009045783549714717790275884007129134880872463544266095530965478863843358407830979541100414060523399707845743160362039401522974363352918948668393260115649256864932925890082953862351446815813872713563484296945131165104503485796041456819406600880385840700295417180713289988944389200770642895601298031969997380897443240344704783965584840468090881603468724709332091940772596998202583736219983076902039866349991392352837900958273636774677468416347440694880174766983749408704639845072609189251648294996838685114718388650696859550446091328578500530270678445415790769521768431999951279348591023563061242303667384167023161645695498360892666512167519379970009442971186236666606699009876914431116632139996786335177260147213620243446975404044827577724265053148841107535597614488091044088145926465231102526864920820872478703340259688116852617306333527448031620704056849517737713139780627817637095641299808482008252596538684740727026631735036824268811114625891042211047276975715059277233415917166504633672663692433962507517414338738190859232764780596879111337391544452245077969122480373861474313247188522956443966235811353353654121969212082410347176035323388831338700615043304642807806750709944638852286146687590800095397053151438810422109715016438191886893243409840100697578919981219992033140533554831866561468716898945379018851806058294641636599476269221957292714083925943217792496215264652829144673111589839509389295520888188401682648501178050146324324834042536915664156569224273842221172653510557043828449027676353602657640821331965458684195524455187995380113075321487436459093498829968643264052950122453979037172264410464657773701343528882201300240431401210148894634039967323675371259891576007593223882536657870494878690898147016987764382453905367438027759312491846288859720286969976039251306143940975901733457087629251121652514448969322722826615046159472204538540478389317287926012854761913218903549085555551051345779167801688170092733706384276174004134836742500403638111882909262369949860001354105093879091682095013772452559530505515111779194038571165863009121312042832781011054231850016552934193158756581460230142546728851249119579986434534660077432900419982768848709479699157814390782783341394730754306324294883248976292352191837918398208631999196634271790654479116077370521735428537486901514416463579817043703932869287049692957941014466528656999963847752189365455557662307418613914985439064697993163519879465296071952216105364249640199353635270327944939977523957623519285054497770582363748528992441016647355918539278427340736541095037099677535942313629282589356285768142743508969547885887999141799541449317458474533262031116925724193117793301948878185194141933675081614921466657037654086860394749280994600831858362230337972385496174603387399782393954135779166420118552219160202241278038432769457834159092085723823015098724689518206081639519123068733703496384232395827256785932818312144214421006682443851968580985874806521587230238875426379977766358659927506273520104374939984446697174541302342844529611450676621858448496765173344492555197928020099302622218160109965052649677748409920228756493122416031185959820477261184777235880247706201715547447881266573581202717864340343122812077313510226984931314083057371722852438109449638151584004204628045057068733544577511941385306138907690008966699657775917596610573314045250992568171353182332403182179869369458982343821482845508299043434829341183444736296748431612961976807010221978208377101251628265450109161562473386934580856402934780625154979771641582651974372803645442760851463799397000570692345382509590658941695860746893880951313656319744013936878527308835263693681139831942909890253923872954131903989124289881237902011149879528497319882118435313122004976123178120279131525853771451349391945395506461849455494661090496666502934648763119173756871121711390966806279281498146492518000886613747853343915853037165518413437269799770282010209538934700308412764611481026992614627909832045146660009528595995829605358985112563817293749981528533527299194961846539990023601109666646999807546947819507459728689254545396475731001770938339304303823565216938850011676370252854664776424575126992801050650695060952055356550205724063722159645111750476973762826517736657263847557926406007983660055169836232279783795411984766962809187487261400665570393654310420909975712821288364291010718533583211235754191996968459053696199996653618779833700155055618309332170179889542897326116934858225202486515341259727136691201428967820311816381605663762064257176388305588915074806312441164697881560171449305622293576070936870215655800759312875342367370898565880943765298830817894619817689148774707478518731915787907295073827595085001626033035470486364131633882741777291005064915036693695046004399638514955818672537739281552768590281991203318462241707321545116188364551992863826991828989581933726984135027845032522834814177320533825826104279180903026496286927121671408207924059260798447592619971694522208370851138412933684482325874191343918655046669562051072679577631003776120428555205397868441389381211918944151078621875735028093618718883644964256614934633246079820474717013333962627323092866419317973857728055537387278867214837263525080576329609830335822510511396385517292245666028658676952704715815107287591774817838067063217407023088296975684455210566738676269539944553234047928123347732496250638226237252687213951603287273711798838575592364992472230636046138754220133494945766338915577794018525537468875185638083157841530394862593387701462142683794068560724129649683861670079659527826291847840847493052506265617398971462499513738829911991489487104406508410787913889394067527292051394826446807267848070128689859571663441255429678757552871914554664181369740629388468813548199669691257534567515344016201588576190882404360682379161659253765736866457491168545351267946151303834135134207872477602136058767398431749402505281033188228448561582971428282034444617279254963817767896509104464231643970328828423826006544280704560896451840756345566120996322542522348115091571774248379040011096967535629802198799401175354749268018198666597736839779577869294758509949294569437382288089425057034400224531011827105509093267005382753959023604798894586054400600464735533459307038190860381180872503792193147194978207532306390135797259035627086797652877402898639546523894051208677718273693844280811683626279802213796201941574517960454846421621271182157827254010445797724009039657632309500757643376413532409560757608955186374458402755996890630505026413059408566740023495432635262486898514807764671212481066680722632461368536938504430450038876358569835658388468767082591048629051861741517433180777873225398836891442804987001999598263445528066334566343254304224461058906469788941862928115697234970894390730598150928096324779424126528690785379583771389783699765030963157400212525521742164006111694611238779037526466179855486463385917540091019482118904567875846815931200476587388500489342182589614920826322621096726580484187094614256124322807297122512144898642349321164335848821345200893081424711884088264162040238167877710938786679321582143982808853689613192552074852557035878827506488999439819896703304925697784483210356832653110810863431779773339551405551036131230104768864727638746625415967293404509286161901685117774364501363004012396231031537904500817194508190841079624900257344350827845413750857220764684393000331820184614098379898251776979938709178356227356568233287651823804538109673447435170137312385086977952761951831195417520721233122773306129622716876520885851461551253744630553699166319821822857705640374436366920763487410956626388361535968852519313627810876893451611950557081615589026079432347995214376186847963558028369290441577033622228473014130605832022169177330915597025000129062634433243452228285754237275885379747266016969155561170654482775636311966248854613188351678028190966271174567312347022205907235748580698240858455325081682315268219646415573202956690824758647648545083187662741639142740250457286690750292606381272726360239658920626091842321987863775696009029925324935986423142041278364765384868755607240328370576718693303235527799458065155060850484517123569734623180054444438273092979747520604178840110573722280586260917316985629573872535920468662077970754057858073945635517448221930638897683397512821429495882617882468205081905421763848355778222570199892073911282161063342405153801465385652233675110910322353266951307450772700548761738221763304688487362532612778058987493341124948414077914017342259636448493781503454038146925979546535521612187624896759530184206053080872709686535430132066702915653007895950635079162854387740175865752603048197502650818909145533224349382141011570213774620085308188645831646910547094429791698859077607579036884293259768911777499498861216821476872558531559894509720505336811243916563778173314757177540786020530796580845219621131573909003803682987157442295886430988869872093300192062803030535368593582568537110147249072161379206929520452973535811260030150514534419066999761197372527157312776765768956092158118150658891611830257836291478755413604301176273268158567775185641027538367047731100918495088066721418671672820247081905185671635089449099257284981140478915001077203468492927110142212034454440369907512934186314980516356553476311339691921863858931918975882925657356345135782777544354151731191946064407560290654130582935457623437977645278539431532127846470135468815178415385015485305637314813379456132151444602460679964776023179733555071595857264569275100040877102882747688756355120658485381505886955788821279298483436126305270884175997628050464498115058571640961779469715350488788275250299183478632949529105283343048683830834419889677309219809268191909353816021056734330648536583496556855716476665078652790185932531933725868652883579177103637715450600895484675910043290386145213663453938992869217437750377280602706906204945919058512443617224274003299209871681800443920993332085173277759698883593789438355886816676198940624677515187634196653671901840780517592643020136869388750135370843079165678560172270362738621861535553061134931772341359071956640074726205474001034229855580576969849692433727789095377128344346711704778309986332305518545980448207661931584903258528045645121523096564098934099463339573267460679863277097437724606503779518076568567722062448881089804764389599430957089873645454382882844955810863130947162408680118063998234920878148766896949361226991710723036053743744456832745084984048767034659745347366136673074941710753411989689956039915701152833742550009983435229212903043677456947870260752625583556534502209493390067799193144216795000605828820596132088981536973494829729943883745285608250760619221011323141723335425708235344621170959340319571262119204006439726081687678707949619942026480100421594860284212340092170404418143196904210136234958537389240499835499113245079082784077281302593441891291675056386671501848446912198853329273055687555974282145951169348713843151262871601135346704753280497227748830701095104181937116150147100779762653728335217027313333426035565670422975118908572982844816517978652136438847367870755324810737537847959933943208978781602885296983902956291324858022501084972306218150890453224307963350114013016912284447629917569239378666088235425939171099855228091838458941816380166723361725841802595633841713654523677121934125309795198924794673011238019757516005630221050852654521564973219395844732139401294661507037805629685509177929932956161068357320981670082943371956941555987134140418150283217169509413831593088846373890691386792843012773662079734549458091309508031971396073988824403153431762216243803222097873186515156285892032881442225554484448407147391348609806245762887857970945066187611207604508228183041587706673423582852146597780291739979420995135007616532973392561224087586087114589066783055212622201943305578275012614203823454790222474523512570765952121165168590200156465661494455256379481519052615080513560524044832230083309263351640612152984661917530231892383983542463990203666032033661613976499819894503178235520191566599416888672653940634336726404910947086580795542383350808017680601679601145511936651007824147294329622709647276965811895185749242414443766227157645279023695980366789050871482719106356147385404105309004171087937422317509386292628820609585951786808207998278660543793946630633211037634617260733402777270140331303152398727353566642791218399519793134365869806570876446009580296456313656728098111680167891925740819273591941827581257365313535783787957002883760071276254390763559701630249658053335158360361732287907872651573685541309509829952498349820357667419017609540142139412950575710086596874884918127913279767664096802435077848152372790398666103338253242731684298841856284358288656011037172060032214760737988891605133978687361297204357482491922179663786449613997223075164616221133478591459844268918155700680775759488633370366715290883419817511706888795252191915939101481901388246017615952911126451655888972905666134271006328769124497564406074405606572011287558107306860405474195345512671077909700115750435635223739895009969843073240671527494831843812375811845756066453929781368938562283283203785295053363551715300991973226861757322234441874307770174534412523198608165919815798239229384537482222083369418062523599249437666140071615481104153946068602859792278237924757197919098221785943546729096849074672216172134256749471439752842549320333438884199388855304457448759299226197058291765777403577356077980517089448370291606376775753782356524830130841339306159035893431239552754563675912126997141364178374060259699803006530917419857953189966568889101710476750390004645194994121002782324483716414374141019597709346035118739732086748425784321625101385974936523059937713915208523458961014537159806957236246694300612950574313721639127022881413489384973245243337495250804439477173125982590484024999467115098212229800143425586933484881346946961671143171237726157903975264132232676074450119463269809737249732346712532359263146088436528671240414186616886347686976185362086214925761767646655150503740754918606607528936095939255125535641543382784668923673512471959359897285860084712326723716317368456065138112834039529376423639486566297999269941538021108950500129639321186213547251877694188250423869580417623496812918911142586036129985752393838606705660174650400830114558342743746851792416684077156555443574000043430245530125973355278109046470294299843682304369728159749016571571682872121851809783417106342685884333628007980841385270851498029556421721617296252538234568053672974978530141933641131837531624641623513104924941488496210378154455660121646576992692047241216045746047699310013523445498618624058091816619001856810347313000284200795405154981456971778079068774973394415299032989883540794297464622924362115610837512276609898065310900035136812655966918900706450162125628710166517831462592788576885666206226893456826931374957023673709888194134968630998798076153062911393891455445163096055938843947439479683421116198700542994161567143415023246586795756142268631140728387989373441879332060705525362619299990186125245399421527380786787290324149517564437138340873819948071641669513535402437772759198473689345928882500970105763046638258461285917622334358834683838123860138542534048187918544062876699252992347377902829111058785746564536524372324804028821662119127485658822278906008855784975101515498316788098921223419616692250556071214049457107714519691778596747099011292504759538670615733986781271292610858028728457779039294631596833390488438350891618772669980346752770583195458025921497125291174225231295224465660533055559172053052383930703015843308394808630047835021812019425176156606318840235974469550982519828502291767771544715855061411758478003901577853295966303314619815333081452974046313468609217383732106330954738703907132441371410208245806515999666714973141401847826811263000692337567060343665541394373741387352345126472493530453099015735044326887561233027287594673789804206878926846590701496474779872169921133278521888890987621235409563743082218546203825130794879901769129247048036709967408261187052375776113752155690185242259371636639931748199618984244421231756881844994537163854443219190446749769506204698972061941675198396915914790004064154512703790386104761969606545054834789691022755191663716911374074263386018353616875863318286367908247633835710929424241553328299560170603696749033834740263530109782393073963543701293318946767401975839347822508257046858619222244601892102291940466440851892250199303405312412034302793754980605042714183444903391187915325039155001617649666729872995067170730865598069425428281168953130637602620292516095804520555621611570483779603397110399886718565745426989266997927548280343376828616714123683824382916852490090335603470075433252583768645984487766059444037488048789300952454347634838876677665152150966372072117595019128896831296482694466859033085823677517387844690031298768830658797099227718107485145675666342733908770640222512833312144934224666087146857018053636232605108342267106120275704120627975377272662555395439324461629857083393437750412545300565892534978878252798635011464427509822829710476730199167287379322132270625976159915259776640490538408973475218995549375057235686256510895678718242855214014613051838830175048847993786707840624190797790325744024929495664254725602142848906305825867738162171248554925691536669180930336821659272064743592564681302941761999161148896878642947829464922538065254508968534395261722358265095847821099540125685131203450336708722154196769590251398834378507302189557650898345139459800763021917496988797556242320245571161604036494471752955206294284142928002322916345085201550809035053137712475918289172952845326351508073551508739077646397764908338435679693679490161541704044795448654465040089666995227698115995553974115249434953005332537628665537112683869139981795663577120614381863129758439262840969181953222051203498806425535884083445551025297054974083932524836282968194220273705695392401403854995208969292536870310043296924717741704751834453854938287073246523866833501969562467202422034481956172769952290163441406234458080973937977268432792660035291913510868551798378938702079872620961114269945030327840770872668632283852422184842020124129186036837312636385000190452961165861951746685968106604002370976191549607811931213139892374414830269430597920213938159185449671466041594415435543406517303855518853893394303235794276040217121731910131833929955372298354472023907746032926887570059578600469218911327377959670891196165565928098178557683241608557475762818219340211120855302393650893640849751157129157070345541257937973124528214021012080620310640908099081746344274218447641870753243834074436827034224631272595486907893026977495384331444158823477433982687410218598798381148502676536885693239968998803047236325687687127183905088470017278468765724308800231748153348485603041258360465983809761486889581777739651048132548468106237383783661807183198363878787056595849582185810176528653582487357598321487181145451317826212812487565189221609166833724541705235811841562891629906840687273862042986049455804037171950693539499562724930691022725975323094280560074499236779461170617570449499372978759660632155611251178649600737147582801885940308104704619269380763884908810421407341731156650566439787274963397907411155462727781664701715315917841619750468718249278980462622576392270801081303332649245356368982487254466397237401111349092115800594426697787419660505340838308828801772070655235196410985898624064523388283966560511383671617352939762239472495839776852133120100816231874281146424066691836042268258403559166167622973252503080306548902370576666160030801380338207237436531521228405710127271718497194038068976507969014275613713022449598853511495964009748699198582280461745919797603174215366757490749071757692125614451278078375069746006825300080953610062011790856657516416402145312310054715775919966029599152855304792177920680270677291589144002304002714730801705892311427970950115896782776180499053950798891690141797894446760580775220626826073737171848555404419403629998882672388492208153651988232877102107763002198279698525937107918438520703628995407318752657417620763078127908803628943424301147701713955129117928887945733390577564227165904638480757583690617405862684118129679593133918730838183543313286683633377088617989241077471279471280845221211638496227888008422203740363549277560485486501917213154723789345286892489063057114757523083766028993261706501160503870809294898572984826394654067877169330152887589429884004935968186800655597411415512316850154498350334084526485679145104274488189969056252676039079826983604772011812792053959412778191708736614268286431002209262489144997687720894483989584970831249294710749417596268916666077057763464119564700058829709629707917426962515341187178022184918645820063429835210957027620752059783423277431177690768007608227196457794042731395454591523352733349875409616431844896211834808205446572270999036804507018011950520167901383260427630973747546653273509271958773734362496932140425016522504198495755342534242427094531136326737498449189732487806040269981711058564868070814134783568112696754611365678298315776040156445122506446343281365828880262456052728577134016259572431709745167032991115361311660869503900693494726591366952043318906782118315748220085353066288930260251162212791505596443338402440863847517248658648365085087195953673001757474293809207211171964386978860016851859788513725967753547512424476633088182034611149558999534662383464209752653848140593807439613534338261274828794419394276276410678144204072184516667089082080788231827789366169219564209407488638607350239418221673207321206159080192637369625570391232997541104484162194163516301504206504858162438118174257035607872960990882369210151730190032143653215551541380011477777735915314249728941376522058792660502079500176153093997679013885855820298458475801392368693276268666565736195379716927062193259277765257943574718165992766474198068938061905199623372795779818784712293988179508857677165489534214622699283220134846886633735653197831895581526256272874550464623708960120672983527212283424178393521334779476156288330258132527522759961811429490369817867632059789935359159689709416194020566949127784445082498772967961908034434937379182616531613778262528618132442037568962541901244691277845448276341546621391845486299020803282956388258607516691645117209572004361967081660856941807613120727095730557378205862689756126847839228474400760593249491918398400338635594398507631855941813792625503913546494368652850767903520300383829680488824271666712754863198373062013833851475694701032453818455674471970443385890848893896518482504493932022715869624580519599121409802398907616654867013305372076240564435079505974862241432726915626422580161422302764954502181392125682682927661208775874623418382093206851876184582638936281070052419864675469219996480383673346074253871078213846739399698125097218970688921299535091898258868931904712495543810240455876481962022094443152187331858659858180498492832292149804245787912269498864397330311760456705696292451217168459931140133129800882778344917953211723513185648822436084996328857431817294418361751023750986175822000772713589990285527690152965660301599509640143158619026417980388024619727047937647657760066253351096317104562795225057851686106206101427060350068027860054208151638666688350404320788123161061667904235959184248509003018929694964761039656416540554674748448615312365818467397496817392055623284834801423699669444586426739754638308844048389778237292984375684416947596722555475629031645215797567106933727799773429616094534840523317511798421209208326521064596793134103133040430835141139190061658718502796184056175089294025054618112828318057707933523439096541354375526366365231958279185824293159739245228680872557844620191317618751631032235464929837022853458833688152336341864428520903275842047420454426613002955609127125400773535577528180050815884271431787712175418632949130405314485488493123334552561410975075231252113188871387562297778447588109041506955415234317483590046557553720785744776768488379200970235168476192911811481249328120835085696031506439949142280884888398588412503120306207927552240000982776411302546945884120539357391166962411389755631992430525588970216575136650783625276674435223198532227708139825757995731755172851888079684759225019850803438231502633228149893579472438509084585936716306556446513795836730320392183360776196959747063287086671389065530009117477041283497783506514103203524873256955871491561159650821223256855862179419206932803428008977773181736454452234028140371058946790132421975110461587023743833892620116917936620647755604684832132954495447222149711131019006908554335223511995062169929616317170692123909750873639728293389145698860872465794056417708501828181783145832812023393880839237294219042759758889739724165771878627836672204250386671821624157783950893473075779185074576523776242618903977585266010807082611539808032977410731663930096920641294194689624858987766352042130489238848978779860678455134323042033675365647726856819595181318256205695983908909021885602525760662659157416245661750316067840925099445432724672011115420784574549388703015724347871542193906519183820893280634072092857413473460504659934686411276735189319750647887638415726853725296672500930975363245752488363036426007663626720795743810819563031187502845288626835399574911061563399477203877986748550984004610741249169311507741295363284180789521054371071475371621917442241026726026331870466976665650871645683736175583868566360653451605267045177947467358393518220572859089632164017994098696643510699496482413609482055725330971390068479194078440165624362165792656391445943442498501142516718854568833019864867795630311241356567784254977023849552855640989956304801286720968406371065073852816565464530971532214507515498867190436108222243778941844380280944337489683194279417016876940548075620112257472027341744107900099522911521895091602997418358704505204593822192419137198585269044962093705020561002084472112710663550500022766756348732465428411915686578534783432325384293869294470101535855471716295722149871386398909117110363350727718276920868416540844201385483367693600733482944580747810026662051649748008232291894433790989149295397770643047422697748261787193830475540662493775460920267444730533124462339798217230479989056589165405696068847029041632696711062434234860950682791620206493496464814300695446706279705600310990125436627818642914022220578964873301696402936253801334237007148561292006253564406106744601911004115957844173612531443810428975167432682405231328023021027456491052606160756692771851767724412239160337190814708117884006882074747096322727034323067600584197046100246219426178471974038663446755832688570072523723272878516508911712291374078637241126567044673981979961709282607945728171978554764591625580071507370604821244625762455655642312184887794787117722111911250098151318389162293438442593925951297498740077432966080408945093408633645922949703665987336054598700263557801421328483505267316678798767395657704564759135664994474673473879475699171249286575471248897281928612146792729370707579329741152566892203812556584909788726398039865511377647213867661421050483319336849809229542444847655577128163356778471003192110850324117818386401520365285019323681919000783094591742802376939909873090668853860095117090084920769533439365978850812911480152803184452788538944236190609816412303616756471241234513662825370199372717997285813066292934189007114785476450279038312033782082769573519306284632178394219211371726955460305611282584629402480746471241544696210697365699434685088607739005415818902577152446886315153429364292603253392319688303235344069945099372384236043445427108028406173967506014272449894318687369067691978928237415620711798584230290981094849468179589940368012857748760451954258460984982468996473915267565376592517325940138658056694275495388690739356382567645241194181780362324686387021732440924638003424115577081015581394669175003802562633210464102609439824367596093021671855580423744123336563162772376065605644559071042369863169684184494090319699872689250937351014038959517407742147178476246469494945750793319240236730307757803417147578755907765206742254144376573261218590796938210112709141127536409848658430349011413774587497606314229081926624190502071812864917400062220297773997695419641959169482838627159031717218854708786778560334863992700977361260673853645317974973545650925978674523597991931372039175702536600660160000451021269476993095301041537947597411638081126752467577773895427919893672678170245501724561833139799951444549975734093711457803008817199304252481606377337768307827528469582860921226261861648561716835617800832423256401956246506839165455725468155764381065461022166196914361674862856285044161321278329096104309199575897864963550717941212749345748502841603549478114546665599448596671260698099878777821581465811495610270002625420388708661268918672115406822219654536854077040353079939085008392983615112999474683762117326954934142180441102567962548784376006483198471999443792703816678801859188641949531141135627497496314371770610637413309363983092649770630461619218276255997766609086841423862894707987116231171365441607641617968670282775823623101156495120196279247166478526141122396266405261074528958381640621458348101976842038624702812960352799871121895324192337793745514538528301050278379373162031234026988191613560140703006815739073239670101709364113510110758537440669326006027288093436993885303940847464839950184291174739001342384500459595715894922913404791753198730287605271058875980463504593775009645301929240521893314094521993105374355220973491497726104652336644812302765053869791105518668977124525641073514671405487443758945827743911761313310097217712646338185771117292598651465391416486863198959032146834736395898701334512744184554100597233433366005752173218196271361121238815139192934162631412157132519478193525338286025665427697215794191581395064705970402266140327075308297635467412485989553733276682653040076461495777510083646519503941412034612376107569388989910732015818662152396015738994713862386494500249207274005893132388551131939134555132467308840440983212027414495983228967417331031717446602082926134691999620735281621961353664848108595988715724936481191129101525822453583277163539224489242154104916481543749213589773781639897290434229300299166367388331479966008325481911661140364725543857550602243387149199569103506091849084780732344357435960838507125451365977388110922608849738682916376897464480632222573274379163475197067415777615506103694735608688601188369529293247800431008786087984347273597126292223689429092055914438162523179665787786734975887493424187516524073971038036055821830091600158354734766182562031164301771838224646003750505795181533784362819823760791612803731727338273864084482984806914793063010109342346544484873210681742099887457883201575359823277184220568955163884839394584305480723944052297788174055923059685733249097716168171442498093605213429288962688373776347535861839155291982491023933456125824445154239101378354316704213592561108074710083585777306596955841586506950587928578156230676838172007518725924094651230743700026787831893389818668013319981983192442601778238877944028181568584859384307430556214696031901116732427475122848797164606900151447036853045948091785452194453895536409457446123701518265379277651328538775049481657937538651880206031718074326564770093726600852861785919498813145348911762884342271315199213681321195969245286557202797819888710466175594443907586748836285441305749745615576739946233813154089184084678324188340374585279085330852805816815937083212147347597673747265452508678953992421428236527690428606593343335988128373807781200577207276177887807883885827776684321340396466346270828175599378546044438743850202592011171289778868617046278601374379642094719082926179423907540624860023851462139549378891624930520125934032158218694556360438540229227389658944579778660290866120450423860451731773137794420613212530677400958174075215970257784506580590139820438426687014717992336112852597267304250123946588923813502581420932206075007389494820127332257312724262169313020178701303236068263098866921122081481311655304342763467826374493181217820804102729285343655094990730371088670685526675746117776091446649209106660491144802418997626806980649720554436347912889220468993027588958609180029326590823948817953158561857318253995017520191402039561236332541056860075661711360417774814746766781156326958294104281024018779158583875156932006715247244191874082388012108564868959107169327737763097543567484705276891830815139202899826831109575640764152760359426780857469023915130574740837520324229107692399702867924691510671392876909353562675985368934902103402150955321980041253315787183284128949118363561265900235156418189295776963676760319297703022245252940849607045008854599626830178829615987479475081743355630373086905491629430973299695981101337377584597830751537408378929118617390877724791243275805641890628361950869708680568803927386998567361923723431490073379113847608192772327339929302225782184738937714319952465344997386979649515301418093888080807309093346493911025557274480127447337903534427882600346711049237465824123527606307966823663954524391851892317470513213312903547887338786424645835466111093182101015679788796614742366370748297437792118662168677773158703426701404709254387012793332656317391522639813981531762991046228176201704786196452356249738685452792048382832399816510318692012992386650895789190970738288868074468514272183627575608808009643101510635219062061975573579758216367344150313806833950424630346166094402834592601149465208384374596109412058588623207029720881759351113645552523307297918014592879806760400345090274604626186021053975320123616617890809675156281807084781890676314859824021213830557656856516438303481913578064168689655216723650527931292497498579445098346253897065115531578607115374096682075774291740202491613825603295607033639263295809332500135487127931232463480226158658518799549614644070572748993420984850883554711969866931893407658374870448079341664164152886024723612151533726737225830008950325597746975924639937954426896424657993519456017168952064682692860662535076378124819829308120247796739534532947426346851595575264308412290005467509674637879883740034182974490151374564702482043005191957720442876444029634300350849821090850534808394677958911124183425815486652096803782988982680367229362028831732516146489074776460967732480523555628699032448105655274070447942917205837539746276530507185300807320510210670261568475526808158513979065327597059500181260819655061071565474389521643109285670191789046721473021531063715464486994964682321186371784686187451661058111829010852769623222356094304688882668955265223413736179489162315667328059482001518326632227955146178653769285707377773991950325424034277841997425164841573894554264577336632767269361091717772207712585967968613305337526099243198256158926131095308624900460881792875832059730741623531831003072211521543570849524256709350367297521043961717659488735603237361866728220511501693028943073677550467302685130252990088728103966552742341871448695342795615812706064622654360958201610289012563797530417345620948251005841958988875986940950943820790385836313680062836868414405503253278195019637630700675639395545308339997144809622117914133263235617044372378787223997066769045351033630181921502924540229221671462173357083669273646154562655712284605229328330846269283723014530630513738275048003644040832913654492686366560525862769959023908227981538706269448440844130531828557513817687302450107667912224001558520569729400372181037769448166070469619489725040431177815871832446457756195589338109248053106074231461444259234913391984328946089063995334234719209114222502130046410368910536734235381352157890343420948247549287540704045063938753093827400629456108134466458337144755100936008081326434371661417281025529450663811732427154673024354145904447548652930977009516390957205881699965142272352154421330253633013587030368486921412185831415522254774036728963048870317509494850255394522604386430727854355408855255781902763471784269524086073340492065009846375220492865542972385206288248251833646884687748328288670127225200277119171364200252601272959044946720697059028286977387418100798275153129055907428448199860313206946552166986701497858210472647791538495008168615818150414532594496887556949582081304006363262615076071149184492506778635605558000173649311764741931915332526287236251277640550096861554781887249059265051575684530440756434805576586774358231078925812107367506205827188877114486026002635092870004141762585192700896996001306000391817612650334758532312796792651194151777786102712624331581771664262998193544809371022867287541291077565808211783892069380602586574757413673616096107501631276597117633399063597502087031386581362298209306804072376746210841459179398768202311739808869251732795740755405092211139672695544841048821027145907523013646795883078806503323520043151895689822862254170495830066636226724911364995911262446418078387057358741192984575431881282890176228328045302007953577186704166055455525012566821018507405055884383598766414846992068664423536348677297200348484290870527887320214888751055507030090326575936018937678402940082995200802834418722247889187758182493372279942365667132221392907914219780936847700448560059599452997375326368686981395382355599322701758305795733918998948705715619472052555171673419927482206799614771057568379346649519803944657547909172685850418753114292811343126957325355924324922496078429397815204488350319712457847266511742515342432149006532505313219313135516663844430491637852397549227812018650006247068625200232087480956286646775061857432736441220544498418382267796262561909501293676223372684517447602598413492107082046854604164985756476696759475780022033227202825598257315226828900564285763647879676454187824538399177188898081758721229763112495645965242201182981829246876508421474673964074724879450302919759221522653811972824014237600890857204795386752702515969975550477663539852295797582787152224898815520024512269912369378718229932745979305321878484265913536022527047905679038963883905948749370601613786361249870598583433641519368576596681749317271034099895727544712372443587803214967264856681659574663933685982887636612906121031713186749137383754814401455256333986503495893343225248865811143104341017345108277054439526763321034797302356022273147693996650568178320246146688834539504209865523398558308920025784305034778954917040410641501526962732419379579285082943118619266042207617225344748429289998519121826646041526645697574645522302287596028964671519327179875371601368872545614973715007645704074207076953758960269650652009476011479086696739669527080296457377826409845681659258794521115103438426647812986767125175255104797487555244775461925971772086272637766839616443396274923451108206501503168030723961349311198903805902251807268385732288616892221851331012963890077564543618437143787650272523099530163098393422995881520583370168910236381925845408833766899446448954699684732580062259178437795779303693382708739934581888413340363616652927694963447650975201737654875029513827053151374140357041997818119250946163670685769579337408862416685800566528391481322201820406284001911604770791507549415969083735428109369248976464752207312184552977465562592313358896935526101661869596541880337140117532872571188505274340545460372037827892300341813145263299724145573721320040948181284790099411646746900684491495948917420202259774482797464683246304272114978423091651623234238167000803616012243429371113641770523308455516806716652831195286316746115329553339119058516349221836219934288560096866165070327281724991359414445786416106932453998289687293390632015849599213311682218942709971702548541163279212649445429831325260595740891231426685612759879697436058669011546201004151141362575592553736710300364918791651047912483161600511907451149318249620362944033832189274676757927269136677584827889343230503697971109205218596650478786886076212227932857207448496104103719502483207427645829352099202111890578882157014397115112622843215347811850294363154008568028356347213688044817428708383531587259487413557612265305884438499682424609204877084367184123376086594481337308588496700549568632496887566641348988858208503632358294894028565099645957802767756789096224510536516325725858530132249118791862883480497998707030472756203684590950777899329556247993238869259551113011845697340062807278325031539242317462294246759458786953127744200833078864667022297076239501382130653027427438178383452216151599298791131871393272110163396296480616926647953731514893036052887472641538240773206032866822196578017736042458859053494664586564781987198668783474884728273373386300910251857047243384988099663892724413209257020061129892205341352254569059823097852778770492688047186297697761924563911892817440314652363608186178688831148011600376898533344484133285470005398946677106873308406539977785420312297961847816283212488426581285699229681591110323863143169300303923615501493963249782128198309290471945375598742771989964676162188987558390997426954127336312557959689705560657114511164562631661108152220282606792718003481184508301114783296206703234864183463496814247020016191083904876057107908989087261381370867507808758522493663827278528097877828882831657426101167751813440008838805523016984952949586330343032518733885504726678960773053536188830163440819526646852133418850891026489577024171953052254040579189704951431155777509963365791779091472786594489587599742228604197452814065336378570693109072840472242020243210472745593517079574080331136047257738069981205559416211055832986388406744455798476378055830554114275910669476381289867325808475616011055620213959133173226834529755396386289724616139148381299156980162054755782946402664849189849645935865276467133262045179663617934185795430099864625279595896061505451455481924468359792359657682998628691217802746085307162465122796187197099882105406069348987603450704001185829657965812103098063550044747718351791739820633017662335973442133304081049275255148378341421163980410917680418292338212779967447324559336097591149657611847458977295356143916097292970627047390725066384489913132808906091485247462963395866253384460413259021119813509984725511268021138610305166173409080429144445100124918245688212845331566940741591794653947729226912546156084376017036923138443512707437788100947151367915984190295173620862202149395983656561617461444687268165349511898305459189627760822282222462118052086189438653764500480627344552588574460432975571115734085830221661459263962383256152469800298442328957286438009620842168273401957995478349093037545230604204038796769657871888560875014311398315990503167558049482035894824226808181035258370542128603289575495241558441091378968795619701268353259459406558789921808269822595755714366521325190733861367884156892275477565495082610706051042113973890168323345802483175122611391869635293063439287989179010539300892138080782553323904848383116740207610730418214520309183568760876880192120703036799264040931474305717935856852293035720989422122931991735865241633889978293605260961779155655330475399065949177950179737117511745482180081021922293814889490049955837071484470928214960315436297757320747585682477669020041656375355674192265467610627831225853765363500164351184360862093725118100505694593435399960589380455173510718492963634392768368792831965537229013965139986839876931853762808144348070675211749992427773354899410568056341864251329896435114628643892558925314930749395852854607179147650346052228809142808432439099622776074828255077318880937221225070491144308638662186421159509969799441835037102830629585661475095643517205873114644919355624918835508627289777773265823648218793330787636472218208143279346464348635911260532399052653655313946483026992578475141097683040795693066717479901478702754287802896671516721990905251937948187066597841909476212845943146716910862478487781354557155068376761581632079334568726707530178864541242092333655864771707697706966897334730158031441651553735011731715381497991058664354792449651840984335319334103933266471536345886754073119009095912572631370283678617278639387269342298110608117023351929530068555713389440192428269254695370911833675636478306479857814394558395320330649478345116880075724840682586319404825085027594761208772096167917879983692126150146390642317340741960167156350764838486006828984662447052848880594879096020127261055166510341063775451797233028133241445380422195478191228694618630215231509236784463446456108204613273543219656471361874789238357024662325786647148889413156210902608829486880676089174343930499641659267572300249237929519302371708647334921954618989619650567968170246766815544590313443746135084693982216896445042127603141711801216441660164730211671315541184209328882957283552909514726822464306881177731946563649449182649991449384483744835203100919631236179243916246498309937746068603721595369852215881979122398578379482656859004389540004094802055010233758642198960421581695521106427884246488593661285462615730342488057352876568110922375714433850358755007380724253460348969321755255400485788615695346284109217161396899382506333253189954163777641580838617325652614611438400576757724681751109084122078414569842126172292191592678166286569778971556489678156738721169901544749797658785843284562530386750032824574834546380618833754607244366424501899475432534809687623660363509738951820652633697509167225506071632322707645016372124262596008357534113800140588073525653998672211377581792349831329153694457555049110355571728263293950035372748531315773987217064346282242392616504383875330743838232692052971955592473224858273902977228601490036822218323469193104954027232207137405378681270269249118631095037985705141560915359346244797322862527091170260506843928375663380582977431718152987899116882489271399085199501379649427882895337410399502646581398641435330669254253975383942429544953705300412107071963070310495885869392763146730360669478354939784074992775458478868581606843867439947912469817653883947983203335918299577994546935391691576694700065700642531585319468247385113285192295293784556655866880308124305218705750675705596078524059352087405099023005779825590033968834621920530403430954736082549374559113287705467442144186067490556681225534887417664830424271449002206634281493483515812192630434431011966753872793066668394700676872457903163771944057405573632603763475045530614341935554468530080066508765112173163192318070267147533135090583622904164858987460454518492564117286386835774198212809919344791045554218650408775450647274391196089739287723629266666025555727100131498647250815305838843960192250881123337248020199579566669505095408848689475413416726298988419701976599608262454754483833339695634554287306431571617211278827598248054369468092984213272908460517783610395418709053537925317313502080734661739855786514549983022766859850650433846377018789182597822766240444615473673275624735157028656903759233847067036514275841737726005332483912458898012101684311986765096016526496074418309785603741220440712151217968236463103412233470955722783511497451932838023054736966848387002055092079470449311031003795318636143423557435217702688205759908282310647387909315301276556166751240191002249033467387818249080435402305150970975347667155298968218352161552444907587457173656900543251600830822651223897139840810056968761952937347507628368793164191761890414500885724318236668951454770926485587513323943599004662646007301813998306683148819787449420134027384259502959134252973473085538167655846937408765727590380052006119960776819125830350938407305569895030088687166435514820679837028314677113028018107333057628012058111789198899455028335329205995917654380093260489101516422883266539396983716220418300627676899717731766871364498238413335190108464683204343356650286507248744714840068549350401123598010411285541702481481321264384934449016418145896482505948295486439602896488426599358044760466369629553896689622908380255935117471812716767650353179982900065720862245277195637304996755661167155153812708937350688106132219602187941691957406217091674794670481592237449366430117197865940307852697793408992542541078943082464353771646336373542941451663809167431121893095441593453682595494275434681288622578673165525456357678017209718716498002605221010272958134424167561655375510825417439945048989183612940629792205428037582102043936245958855217694294619905535527918908690244860131246484798633448184053041856049615787966847519089198489973884151740764547119624149763637660432480693743650647066805645143668783893168692053021532869357677416824463850400213476046882760187437966781187581493923639248411076764768032054638454238952161203750860584799645710548592911630789299074229513110584774100392006702719311473961266607752586525636991143350552423686452035329516212436462860349520853693051509468284472922516130215372905482020809330185142016093119691419154575033865905970021033642595701729374504850394422703862731468419538738339591832576868897136885037378046888550216818903924559420561960803364060886526697678793525688436990200653440633807693932546837880463802629110265424808110107397086664752107391943838939775853813366398406310894529834445121177685729828326471897462963257371007037208335401364502400686704166553084618164990845462486765524446213798080363275402300405227816687198641457733630179071434826476088332450660158615432471165833329683592407271680560745098338079627280791656172041100957937691838193905725139414013587027437458785598064583893040564668756958755848501072746665729647728891369294155563386673623034697859613288909738234467708296526622854160545512672986816882424854828136826168900066257108768511038366492226121716671754616017906198672302511984691550817672729832192949834670959681647358409631197666988471988709023713893165735026646469477140117646108931651076602524278649117562472357926782696454100648779541830624823964326511616193596178540952739272728500176655701604805501309077477337666045034376317038124746201842694427847032914132443238211268910286501995075042411270457451198081479592013986369248093351996542011358642036005682491305797012313027398284105238522904621479427668621354996432984874216487065384866734059824328943878408665561722409732623286612489558443885849786619547045669956921570584245335052495981283524995374944443377907453933242842560884300432218744106549500625246620988026538116615218669595867976321273282416289792610083070200418928906731868548308751562050619376045825442230786454359020100010088992773094490095559017447857524146502723008704045354487125081788862054804158849228654626175690888514963022461331351377684213083114972826768802812912312453180704267566730523259550268869404321949982051025859987557725859505385207380216251265106050353717157390541500951864845788590468823061787332981680802941019812947193957967429175086061832447337726765440650287354239389755537258289401768142587082568208946784074661728251505772799361206349881998970779686624829634456602056226359730968911463812745833184705783323253171070775192790683564023269653702998719672575198781498553571849639283373334179987848761771070457627428264939204696480531436923024857321499995516572888049511943103622264042881953123843660475762366797579193705889061535446116731447156052114654515116694023465265585266588966025170130129282560241137985460333872965567372816894535695119753284655237182055912992783875115640313689577074943458490907519312356227067115769304193434198592406091153701850949122320309678805071913037684716519220397006248607714740927496428357563052383005013117279184728649754476484669854658841149091075369109487594870970304633898057976811125185446259092716179052386193579367855491802183714829297252521915147888704558696798008455371181232803653390218397416502943649905488576543920645013526324896769508945025493596066104549759173548664587312790381406780641382804133283058015128689249418769708702722712720349951213712548451990480385657384143978782253592806012635779054304963482901416680540966849861677719915582495410861918320168557697569184810353182994822031166360654836794906358580235161465734361454822590392882915670434951258584224689810797328370611608334818567850635283143108409436161685220542608690567023465358210663880248809939677221927840866502597337995597759950881849597989281176704528256425686141207513942898811639102004579114776366081004888295972185182968409690970970820704710637484004093607682298872344138014129634633907981128253643384559623426805386245419237196098805427936053839521165575885862422893938688117192158383466778691892473064135118982322724783997790793784517258260724551800846957504098534172090169267569632126841799899493688819923683011117374397693205149698552624498605010322647415894777051874715302857029061635840170989540254391967950784188055237000436818045329002452237350655911936396384606901617780819216828936891355971923415125102750653539740442872485525403908499357508812539080601205361100982538260294787627859480515326887610679875823203999892289257423731752805101280959927569016615102605385326225479078639437770101978539454705902742718859694445339645311942063577966214709735395227646816451968777932529920087057925568496315585866840721641814192941177645901643757427084432018566534011519768059264593986111433085676430166176626161163794775397903138199887726795163732539697854895299896531511279138358712539685470440759917682138318016590465619163101790679685228402182404752995434689317174546669407890930417501899813956451518854184516620964430143393005926716087563392757437063741827393346209926398572906290019729764090566910925426978145250017200536950190154445214150441969547237323699801013763115265419209073078107084298635256374824176411363245331698254101084410459408266513322007415207020898055929131797295609359463626835253111784647710018960888977450114738303055997129459788909318860262374046789379783177070993146143641910997036623877385805017929407123370034635096564670848856511067869455612405130862870542908994811370901315506947954310159532154989143732137674468022039006068747534490840095846189620373705052152134344018514341753628423138671617774560253154109565412866560213592028629401313203435653288816430885578053186013180192937465217498590196472218192003157147907203782392918638934080676644584158219866520610640195018371691681934505885999897296237616825846200038740873525363810023690788097511434979576465460649213031096364736285964776232561925860667653855757503643677184407367827634768035459763187259215264675374049569070730241691883288123342062462039562766380297133481728461864967577230574218158343158291120542082138699492690311401200418026300074802764680216669220976477204095701315333105902754507236340950975686445952560464534753288502676602886580325801783149390797722400485408598680847669861714083771347526783796767352270270169578519974899687506829293125887870647664407091522446162580788737105185985395143010172952110633112661340519762472719980423484604537168360043499695900803114920619831931408503225746840855581234076657297490982524090686077603741140860403222735846159887238938727814553540530316883218837274769293760271938994239841970913206285859179412368623746766436069431261135280383616553193413749465114175309019277291732634859479461380296232458274098400204446028810276434137892710213231526941578106414690843374483615990818324675971718791973709568550164013278683336230888114766407370583670307598865232459545519697797993309073304041724816192170169124414077981311054612504062831682870026345547919455575970944943544235948039940150982519130996754040890812482320041657801337005862919430818782553377742339927608662020801695423959710127420331370705644904808265741006437422666060253504332187658936288234116648371321523535254610817297464194061968949998925586836268404189642574715006831091670009096393141066058069201155193659792269199810742684929546166989121515990594930077673753563778476396878669838130898309234750906551188279840733952491449834693615982757675639391481087927745502065912012213805072005273551546106029589043741614702433771396843176866884263884830350972401686438967592070930259011875289357176970901362336068588891146079137905551629423473381998281917573763154237795292485938806917464183823778771280338308883869134378944390310941841739366041178474861238979689594020044615623409600247339502460940444767120744503429328048484502408028520027025852844182471972888601589024351858993512434411176999068012061232209453626320561031005563478301834884664003200045818262181690628377978540784953729537163897396951880525330476698597774626273550863802256461602981560602647865250058636555416228661881513943058605119648712479315517845300752564899909779521783855079976354383180807873484880741753213451346867778357355239098415119842203085474361029755818257115649594011679193679501564803087706513037248401884938479612641481442577721377970799027498873947359477490121407415999305353730483919931521203062690232465831002158773771481835772002944115222128808614486453781224728457310672599663112931435532983812843029765995388005215427357352225908679535498271551103340933088088317128245398020807268719032599466956878383874512327582957954583235373799148807903576224170378182132243075830541157525252757030289200210948998591846727086987646982473426806274085650793970728578528052211355987720318179165250439327063751889667669003465927036225610214316294550155857679556490744532274920148171953872573540590550281274870660544641330771032050627189593985059680581114323043108152968401842473796034126094466576330768518482354393043018158979842583284618459639599610345654502901391990044125351535443067312607386819660538130304854659858500846976926173242815113299621527679981401510273420234607643254091536925698345668683885018526363414182550734666710617481191629250727379254449056463467868107224684436739508582746834559347344567935612791944133610248791895149591714177528204550930239208572236216599653161630762425545765103824765861814161958767877139238170948491181686790552927240458965852860705559394632660085459110607252198771619336839907975329135699755615913621133828496335050051534320063240173878656301089380068652560087631879756865302496521379402571951592707213499132579613892902797732446658140329337511911730703560170204218630120245531739617599500642577966537039539963783479325593303422781163599089661183496955884215777530260431839576940453870590759963929325712477225307901192578750253529021622924178348919369151669322460883332468571362599317649294910165847314807825526803034155695582417294998901153540259637258084511076775000305243717593174122584801862724876457880536247453558315905751563464917806556811840011381729047052087981175091577477751059652878457670262475384402078781380631519659520678611934503058666311758825609781637819628903549507917547721823342784830500782121178723138834691819277194433383076305032033975392981700639759585603742414434949655670979013866096206434127199374586556700579936587720978269976911449158757499738956147155378104102739000920262588274732014527161328989974637692244235577693919824055015518839255865453101133303087335475952240419732915404328860812849466207814349815677967251233802530953959613892257657370793977487360239189694161216904918671766926191516039546943952712046283035382291713795330855835116023694013920742127555420040988639415529264387253433465241928033467338232663429816949230951716612752137512950276290145945372916621384094876811167045904403014378885233033011543248820673195378583032341652800725432326151052101453303442235555345778123222336023157296562263344192150751926759381513551567888890224486140615634354736423499877497415152125878423174266432017057589918573443609546304536022105315389141319824551454889133027028293617220320458840414193557267074784847851624364351095722127412433796480737305597025084361671144005874167762841623587774156913666871768692538603841028539358162662642717941126596874503128214349649827964912099351123597408980445252135508418591044537944608759132116378401212831675383810151094540710280152420321150202247971614244026447604641392007124832790265098499460830688293573924745548453052358847854921183405551769013057506777345618305437639860893003603377434651493736024596854897585701292534545533085251284865908925819750635327087621649489165732750931968089037563548283696966833555253865870435421902099364072658193482313277386071716318458369245125683410364904548074472658532712723349048666371964298179184535212795169245372453788465749900129714150195306570160935692224893184298827819733616977929246520605219675283794011564850838114072486468622946116648901491630748577842251705078588920879144728190731938333113458399570723297728265260207378530519987139648075083685805512875597465031178004843271824601254564606854568352109850660937605710376606807132455163981653322124745949427920231844144016654297540674674464335470800252498934653790488850571914294501953119880922259314372530244284971618872032154881715945481964888349372676397206937748992442800888391566370395277930786267555680827965556759496240262959930392271244317520906283050364573098607467696371277158578593542235970812932378722281272616987212628239275859718391296386637494677506040576015466040574301568800194155753625899745286064268062934086179973554973175563511104924701213144309910559532497177902486905492725497194585485283115044546974197410905650589535739602566507831684142232122815268553359494160219958887037267856174931804468578434923568312515345412987248531786532636953880008245922416489151732064539882303935222612771625283777732388125170225702832138065944534268575129834913256789997237567044318342035169033011908789784460484188773752712424035265566604250019151438592518815934032953408378269171684515677828294083701630718921822234798973069741789891195178069006470758379126989079940018570274803833481809771082418351655552155310768534993560333117803712138075190559662678465999317142297656016093576717385108323230445589599347749865087458129687789639597872354226924158816308822806143394331435770699336123416800690769387995770133147578007875654181511161138005708334317959737946468629296023287431554403125825225556049101412748408452427330235344937740200095062714459282701098335771863931494106090347553696187330831757142463808705908463609715198545337443640764918629589589479947522674282451250441555202576899530962452921953508315940319288956920581170985671427574779002880522098343229652861829177870987103381305045068322924688998056049012703161869669024098409274202884250768971945342673077054588401029753610674625064251622617837304608566745645200436617169291328221734286419122850506145885096822605344857184056941566034486323649990341831409704074320126262408618826621704750393069950832980145112181849138841883412245504781939794240275303223381702318045227151280957829039587677038855896835338559139419024460471919341934184618847378588527040706523315147463998459391970167038586376295147918032460128681753163793830938979675443958871581769731040046780109828744382204134255710135944106120129022938335844816171782089543615731583028830730512755745909541377616488628423441119944986837260430805527092795660041436329914769393461818395700223255260468689536115320174477247812225012900878731868785605390916615934016491690475629812858703303020821797703263593517745955722736245765957154913545550178063758697417296137961638033772525074449865674879852543758883214299169690431169500504733600412031968706885382104629221639472352038979645886384358175685214191629766161701086100822385361809513119493591227025859718010807226080863778693074300060811667824844688532781421725986951862079331848709448851754573261161178908138430248268017969784896062926800702863821017860859405086073927848862084857195777315819377933638721357013314081788299397808137197406774214731203572280952482836397710661173176292843428265965055614258270517228178285920111044090659974282157701061812342376980257744669056020427765131311557465844546673766628836622207066813678194968286347419969306045856030852024518596141940267652666433252226076987530064196851087334287565355848073644363573116113279813668114501131305226607127531787609088537384863035866731972891939908672728121378363899529742094660150498438512761266341799618155110175091314188302242159864518588723473349673582582305458470131095645021583811068293619336693050357262519567775239952299459536970066104518144324429647137800540661046382714594674616575780474768793302656761789847081010713788439219441257793312003086537785199149696216255888916235451434866253087844984965167360259344730564481535646424395905862622705812927846650810950074380077002028697634189555425776586236559504350297672184115645918850898656133908292772540145272504403897244667302900521793788966286389052766850864518288531343025102589146613442320413212968943657071572002184323996923759050238022166722292805974918155819531148432355936933011052830173018974504587820738804177280286795822783315190193804200578397680885708386694439921781834443586404073305227145139117912343480543058364871789468316044382267924737710133584116973338561298641706923952648925837237849764610264975785942247986147925154701452921480423985990168899026404316466871710323388248866890459323905970253471344102423940651924263665778343962747284154173918850599080063197476395090404067808159270302726843401728984290774175182554667505291426852385480400649322615622447843701413734333013529450255722858296654874637869725170360807515176410876804089454571815979866300292599470935168867991967918601420479268667545836438955576985454175164336569319663754582928537929382433481391551106685278197135896233430451603163358912434451432107681154488400866585852469150020369973934398150505761291837448777716989971048121385791508054126646182349726142645990633196419892613415390380625985683157910924844969860545250775861971449866999811448913801744730444621933694064682966143861298278715882269117324791092823060284984353053981192516325069511724136155491121504099156822751638213837759005723773551994551471085640909730087440501858155623190893689451781620477062521500821778762563586266875351896458495282167709043213175178362598632033753914848947120300465290536788814557647584232682667667113364265049016908586041048612591251889830889609060961805130015953969845481603783105168177473610211969822733604325928752120418116783985508160084869006536027427209802419312751475385412812174703081184996676990492970267135171012488296304092595087376347158330497866834177271866431149437106063641519641265774161708408394012898958166056462417418811139030497041128197157500322413941985003585587228794286820124259820113431115623836401506886281887882779435567104831607604654354609196542665351108109881964915585236676806851177168920917487806098319699580386642390875761078751438771622960026501864622529387910811162456141992564325256028316455547742602365568798789769044806055615289136128897104360578334274237508569876853522771775873080337426652875490534746388086289801047449133884632249355168278816464524089393630356369813508656665827811553840695857652671166216857637278638353093875656974562630731910919354657468333214445293848682618444162879452272960319920666285973711333802402689461221762815674177602434410286314676817057735846342541250677936872080376024823800717373754151847736062915081532450906899422693245386968996790273607787458013747451239983508104063944971456094208096473999532399724854479465742432256243950830102399233983715962999891098461359844091072144421089870449222622334976359620732312807889970639677868770584324054703326040505201806331630052484481060494897602229760578577325069180449758030848082512687627806499670877399157425109390893359014333383406459483745778356350592594113568381227536435607612337654932856581283888470543121509999816612113378291790629489216356121127829467346665194711730837148741725608221102134122431614190743295624795236780536522250137773821665789309572838826177704314493990236554282251969142017587509522685962230183843517870519017433033448825324777461011321327075490119761751382761236490106363732854325017833397201107485927285331547540625747387291980325631450449331429379334147910826390992089805145970361391877119396713609008945237364219558841747885041959697092504332807429977219127245546417504222143658026866472218982161600479945191640589883113859183879529863373669014149194406797762190223089483197292747298618804837922249074113468251897744782574289000524432084123714588375528352756590341025595510914130640923013296746168999974334025901697625294322580499928202157713990475282457211689590736610079194311800052543617587079873877591498655122446008818446560122841559614118652708072266401064438747747557031488675235233498312905242784407128652650914499637528264330336030892873814805926478091998328948984749514444980175971033803962063193213958871476940902167070764928657171149536182211831723919029206947257491600915202943869338545693160367586757614540907850115017512158321545284078432784944766455101883598396245464108956729428516540708931268595236226506819701269574419776580862665807942356891401474120928954799315299225638015741517551069825296740417259878421601392787391224020182956415240526734944982571394658958525110526241591586584338414633131927359305057813485289024010615882832544278692383550904818995094773268827577147071160925802155177182572992379133933536846813371472460926984968348467597526097175393315280677624776392138099110263210929615812780818144851116666314643059696429271573732937552699122061197968684548644963926350824404836833981929311203297490220105418594757572229342294255971305050162420192378183452385439446172284861037894447646432385487903059673172022461424040063525837053146463936357010717048446810136161836477584861605415228488978273115314568970838266632805730525842728302840209631529059105565191229313288746482495125650079999430934654555755793549467614228493927938775970917431936905150107304769156318272337322602088733932177460962866241159812913211175136937481397362952991766910598230577394906531657117650127691950007097201180442838726718659719945583300850514632380302345063248700086009885680080993739830532552124206064828573284575940777964328340824305705971162397430622552680801088555552059551630317024287380210778119136377400000511734346478621621126036447517227737105580841992327903343356431619620174858299246869082974617807182019340100939178640974143860410957208001383905283729574138966529583302492220478968970724429855535214925311510510611513646824735325199258524251097957316075102029734754526038189402793033718970824276907939093151514077177998060174131608745426827238052923545972517137330556859504870271069822993307891566076799570301636217588591774976727682881500963736807253150420006411248342218952939927272691437061399584213178412398525891630685644935018808526518461308156712705633560599498747741482903961837402677061489279094622914641216345627744010954382683303560417578338165655781610604108808873182938259258058196064507903961816042581399949002835731285414345332012925815215094866004932790475238249276831572230923766400190968156163019917251163216723883399975194528731719576287270864904351418227205130835517569992799366985429561388942726856704707781995441764706437036450443960533565039681420337279393451441747201153488693181086961803269659237573107763940567457174989039464969116223063048808461403965878992725123050355157932084869854780219213265389031801165221902791498056691417732648880926540682680542184569677139885658913569204320386483444950632342891459292026098536832030402453496170857959661049883706683401055848754248886238737373797344971948550974094293397330883620561676853833119602006438105288813661417879954282983119635972658130520834986323561457986519194756088261325816518707401385634592905219622919839267713950084639570045846022221731605843676833913971762307676383121302202767647594071605938471830769409260533003125833213728081061796609505842210527757113391141374496077251889060718590452185223160201926818506397417088320012376049037182314197607785775010179921780733331098798852303709145458086279414415025172403809538580087463980044728917815079820893684706241716890895228916676253491685422778225197777049677539794290698835797740457712309799137164421040444947392477467788431299042616850970104148737379004359430791273822514216834743451768953358609501827473944852088003987932333061707105401224048459655507601161390228989963532734338319096447445646441321667373362527171858906721094085332929842950621159400327901267151677695498948158142565065923385066246883323091120455832391700707432015350353797721824434235385571462781916039753293518307970598288581959246104113044629988294601692759203163375781871774128182496227612118470771975207710871774196640849522799177401803964022734822778459897812315889563958436257732277821348067034776063083300973664297510734782040415188660875454574319486645426431303844744150450106967045338805223645816131768606677255451712578022094407014946125302636780576853700252882117520538425738965931916310109630732176418900063090619624825379126449113255153311525556864478529110122298435426198695371671358721114234605390534340437073146117042704636715592009236921955892490855274877106136567321464626104218143393302389431778085791765566569315773084853171978854579106921327774838978669797827929103421423569484264074520391941105997657743548526584743953447790710816325990695115409342837862708247851296041301721174966491221804608759247528580029198853618800782751003925215589194081137666259589425244064723044699941426138303465100873282184048934886229104025277027399809360901398795355563593931620382345599464237623212953954770427990694906392747599256554521708146324016265486388973988205986754726470397410516360461071950719611052677318694962483456777492284120660993269473054565531366668820015746743880531507357406697597363843687656685927126426557470383390897982842309119071663906316691595795858133100689406978675745294937903791367496726204025897430993047068665319694844250035318566310736003671758089464191826273056890339243362166460423675006004658819785949887192126045449750822766926559377330606317375143107471149170463065897224363001415588603250253299278807154219352376061289220707686712725626295567530518124950088975599199693975128789103736648418996658053609077858889050155447094790356033613560557443435724074621226131151809334050357621238982563278960725802675728679470610177777645872909571818883666410058258821048582886032348019519762045478211689509916226792798283105794987697061452991380457128158651814388374310701966755866534410217323238669158131310550880599660445222196722925904843999765121528793563506511569265991093024637417709531275986910467570161446006409577879368709732254939527392709539022957884234076019387689678262871866853915740373027769853333679140151174135857049655828163274445934009153778355403380951022513752030463559960297591072218918641573655337510185790938597427348608976714836744263144472445552125110913538374641546650309423164426905164242831012267761919525687897674556258107300551045867013194996527640529143714738121629322527817764201659196969020656097380270597094409259561356039856569694135801293698219082774127701797244583474896074188942498430063281843265653565781908773096874464837741932746850383192190363283357714480304008337566487674250676122776835559780958496448808216613371494605697018567305935562784782558394995137884778727139496364727570847408302658430226328134443861945795155882028704096477290595345712107211965374110384936535965858487257724420806098226117925749616376883450665878307533752419760455938257684372763501570774870879610915314898601968221098546638852225581457109465628288769583668577632200510503819542954180296174283973147944265102092899864785844046915830981049185823792819501776454257339345789855798791734717768234707991558981177097500414382618238380517783291413811376423602514028453001998786559784170587671907896566707757670355687136221453676664264111258200832296485379862536520056727535044409664226301928183698826738399879166126464293892608284323197033270990849203703948097146083397842364535214740761117733181441965569908775954640396948834678890004138851643173958991131381470496050276469758503852002807873000295968145832280307872331093715283682482655460201537614049190986957163471760799445375134423951577003837232406742085894682932532187036827435332469123639580654761384447189525664538276690800641695772906728773216597951541151710235289527950008303637603508287991624500063575697910628108590585103904607234755723769329476174925263024805016718683978362839370840580064585975306326817128541209994429801555199770908366593636415745675954871947728319373259477848838573430643905915184529063026533722929621023347009911714221127810917150556317793824835122171967073107663097355867916279995459659699374545976006380195763966812950541307731560871887748016897870881057082470069373993831572499520949370935218691238741515132880577699690499571555395728941775877622794446008687777476772776966026276366732365652865727695987809932597066690515783585965532852351039277195509166935006116136003598830046805410770697497505161090673709566916478086292166536564331687093768444082140024562819237311997873839127448631249802263597946481344778841743819179820058231196379452558629895451906190143405236082031195115225437910989864242728431047631373130755876790417211538520989363867053979766556194362128270981905317444430042873573280603752794030859646785572106023079775195166873310806963399341461140798358130487457313016208193738639520292964655913457416615983017572405648020330676064551633202730536158350313310395579588121609337578806126484264224990194236349386870283193013926038568824605185156609459596655576236983414206604171474975393634112823435936683184424482363078788115386024772456517727848713667578467566130899170860453883170094522290022247378193104145339708590862194376657766625960968039788601837959303174154429677605894445385222350929829608475041072384216923823600249273924271717865485310301292469295910164125592597166745579201909961701331706220595012969239426931562892740271951756393306128164558322277656617110107553050937810833950816041789449332050509643134789141723512624437946790218831137410059013049080679170479719261099363266742953936532443696334383024448407509054233187937640964941143425229807557372922855660479218329436956751685659488273425048133718455465529713875693172283325939521275518809583456436917818208263770451105005735597170672575991409905514771989299158212473126617681787253380521663009765729572897386292173844404523302452557373362605222329850674246357714807462084084602694186524990201695362790277569422252042462291871436143072115821488652998187555177581417684040669834596672890060336956705386582755914172835307291890307629022764222690762298226799165828939007111546082239201556334020764693200108163674186395118351293174687092260716856417151100044245275558857012759758579593580768483898022725760909233309498393147394010227769682499001368894738089194246819953363202656645770977505690374767366388183347307368721005468630544450232886209145212811294501446017077990410217784774626054119973441687995318977173682697863685809892619542115064207615856537910286388238213021227765135135140712026036208276545949613810124405158982940263014733778355774723030277314450891647154600582587022658965807263250788577046276686059536210106728428875862286725475993748764211444337150892039340193417062631322048389258995353226907169026000953075742264111713396510493619502558143557758614897835227221686852795141679140973881012239515056153759681322933413932312970996192323404448011325871585099337616720932071022125767694442037910672895202175848152362350138604159120485664759069402666934566724569240158812416212225473944142697051898684028780886065686923380119271627773592230370268844227484515542362632121794837669904286343102840582598044740414779743053776534816093779264247684113264326756894419741062870759335354011987756761220094250453949759256925125561187436957056066170789909909036747506579254563094291099775400940866320597116434824265511114851681410697094060455635345080600684978786878456595342860992814377846330085034214493488889476558879089772788862266602954416658199016423066598808150687457922677809630153894631242756045934315300492462770025513678578801511353907470147521171529882565696379726750486349471397060431622111668084841090039149481047657431755912439223386163667105285552884470552224173739468031101652412861840304042193472888675877213130893051327120306901094563016339185533945356380922782315552897861108882548749774474981943940113846452864263223302461916681274396268963648904589956131374328974894857263488215386117236134194075508302418942442127000496929569459250849825524200650629017214463517971054343567657372256231670548038411979173172068986279333430685120374187898591859196332437457065409790730763683524303565470189675135385447222432172936001084482333177732456600263189170860322425624914109927602828343578597519307501742221476672178220540996094610442902407187097704412716865860375014184463901977401604456037921910657556367019037608239124646455461812701811742186498370124221523859353515825169943897555499017772407069080117666904943339245310692792481947401200853130078745831630042807705195193222486959487383158476691684827689984068098545943424191394906342102782244691738669042327216241364857320182130686735844548379531182331171224471451517442855116669405278196350467460234131981524673689287951722094273884865649936177580827025715498277683439068678030678920546025325000540725369846365745771136862655821674818148467259209539805139947193897153460108866985173324041498164684956610842769309914911437618756859445915326694160348039542700249813735478043110019134939849523658017830831228969362662280051790935535799719719360394708079494639668382070221176599659107219262364200199813171091784233047599239718852524359561628922561759107747186009432290427306080982575873718685708885805929752782573470291231887302728636107412999727302097594331955382112777769773229115175810759888495206962354956415828951874653927554487417910871015054431464305952761007593967671980441149540355751938497141987286714042544257335258939976914264124188440829227287686537642519593250235801857057350793792670535926481598071305593345147710304570648652249330029033388480081302429805190433148568945026581047549722776431595637768471472152377109167260085851201463060202653997203191903377240567496253774713397707326669888862343794173136420730635324885351191127783210482993920120181713371431415578023052561712478727211937336639662245964739676027106877495567523731713230170591415038293164760995385737415824514836321169779601636717112071314576618321443607076583095007810616247951820639960858684016107910459959002409676343059451201193281445965536347131783334600016520637390465297913329534338312228560578477430087515541574466137883364480638191286620573623684200703860190207770216033324731432696956365301546424290286611710218126443649859871354690847228049235409574686126128265272906852271209565847744628114926187792469286991697452245236084996494573328944791972337636787253376541301839811540921894371298080377654968836423334432590560663826125933066555940768419002193270537869264111235971605319841358373934749266825087901297723966641390604203599023935172802838546835261816236059687024994579795315758217297358098311598319006711420761933746702565120841154612145231713163745365298333255768577269296606734520930700656682190606052754923287092765702073496114067476745435585912887128753439183083209835145050545966029196261239311255668944773710733894579744341354935377203455581043860084112942641501277916850346780521164311786253023983367977897135365673378147235876988713742031751920565087355184603600222367899621649880046800632032955700409665677753495928687600109110292211976644320163658057522171179474838501909901151001883567420065445578223497854249852884830715839450311371287570590166390739642581140504883092551986817931747106605660548568180779695282967730995833151675131894232838307332895622220290285853832495432956529556789498421726736535649188400072004903328825450749458756567522321975194230822928913495854511358918752602894020295855498673243523316187247284839012607018603947778883266693644804826492359691392551970987744402276443724052407382512503323186931896240470322918221079247098717140611617139049456868858485586452874295786546551410127310313870553944411546970095260574559029665939235616493415325825337566815957428363075844608910061078877614432276272836386624507355594401546036022009183684118111518876471461345816223544723334745453466919043278943854050433476772727128008668982975673380476186984247764887322010806000040564026881454502075605564040482637201271323823184090956527026569612851691096178697115954449523828526945417595646478742485887324600518329253820293270186519934210443163342175023993824528160813481938770951588140764155144043020252028779421578960890439696910538530484133959845128407520690685237507002402204720650268222604140127289430498984717179775956382391839563911928398163139947687361708342961130828351387339581126340103569430144453231173614099304322136755662776358701274171037818104249052352220307740016106502064216825438647459136308476317306984513249117685076004735505607439862702511731076699924708248944563946478957622951275268768301684399690977290960712199273282493661147233609343272784986084989749994349723938233587935655621772168790044873632789382575495358033279042629393582094174681118365201432202152176304550670422392263127119249730928777290298074930128818259814859508247168684731348909859429680619890399929439225953170571120947906352727409283974346360301267389651285017820003687557757517199261357627579911295424696733601977844802532482121116002604525407822990853677973673067792732531620060957578195939409848209026975205282180253016529998195031964043303235641594626602276087670560614318793580099020234394805764017254649786722915665526048955356235818975908654600149085870375301522430945326593729440479382390304054771283432409284425221891092288319757738694459958879641824620343831624931312254602047260049617693484866876442311108828999190181744691296880788956603158089460013284712121648973167660631510331143185865766012166312351930688140393350395019937965775442890311437151692377139636439412436289642288558550280656105034007332155747183793398614886051246740969116067790544348139454638620270335149955298591533515999471027573332260059370410974567758009771417347143823286726604255723537956670631567363449612039296308388135188236891589595336415153514876825723615492697423669044187302547283551551444970571428684419783430828316703067327207866013712722494589648142596725453756327200604174267360765343464375261940026882879839239694078264240235146114414403568142745803926031318951545053228727131425006795890818716605495861992306800819872726250797131884345274493252143828229796313097238085563715907670669010721089384032293297242144563729384331371805725294200249294186303156386739756424539953560379867072886560464193336981493813176513461261460941859959593584000036535734357966263135235735367393775605437049589839349672327600401143209708635383159539308535166341429807080666798803681535553013490332340468147216517007011488813709250671974125018023970311813726951317961061114229678343162269870620575595934471234988368770906542323609122906833416404542873279215066805251586592941590591585163629135833625210835742934899894240832710283442111816915687578868001854051577922121893439389372489398626191653615079163198554659422732126626184489501675721829407191367497911988481528572700906858840643940400871158250619413311519429484119706113480366893036393422937387841869297732060009951476439878594321829765428301947505962526018104114237153849111615341035497588219853724514335244651365739589727652768594488241847450013797855661999456869013378004319975573623474883473593486872668238427067363849149026217282968691548030806924624071331419700834147551012200053828012846194249795226177787336247954859063898421404633923144395810247153539748712054175316358704826818139095597508971726110961343184346203170148351304573697876131666682039405882949897834421745196818911823056908417004618637918965574051966067365783543997858800889218424495150043134417968402284384570125438195261310396076909373261532526828166478835322717989450710773303171560410691868699471851480163637459202198204050604995537131615157858706030897272624754537054718425852280586987435381853278218920704486840474685221102111042571997098796852329901450592950265957051893948788113299644737143986070082140958989258360103102941064779905159589051796994461715751878027639306128188744034612224561763053411255126495354529977590320652882124102436261725070109871581161213194113664542368478297736690172339052337395427616103513007380381636888209577806174062793263911607538192530441124724749601782759884719317919906490075865694410866454291701600036374759112455320093721175553221334375733583901923401177472416104925932101778916400635835826678900264920838795235999510422027387957451063516510967236007041239264698807815309720383781471900847720933467390000249492961691520046041642462982774235458210680074519362882100290327150605804839785516611142016299687149923826719623762344077619304803333428290083641223800643140928510077872994098070955311900469007781610596168717361674583862222401697362711590878663218312870113042885255748146051911769581717157293921119504456995759779538681694596879246745928067958210521713680454211472536957777020319765459479382585701331366899589412101610001389243057020468271358873366374740278382066272950244774434197014405077999612195130848509353717429005287678025587536541401051039560947069060009158371908212694786231698328497745749705782191093623563592702269909263836995375175766012313670568268527275607801286066655020453438657324054909814378864921446778322457475785841012688812387319237550737514673033486154876302439565369195332999725197906306650730264517250201749904186282855055170291785875920142165895401182131495263866700659667485917639895284443333101778038818473698589787424241704943477633904667033289840761325805813827628018281371445401241536432393334002957303772231775554166492882576659187943692173715068029153316166685120700518180495132091829674380857891847926705411698925361924238374146356675039298185868713784093149175980007961748801643101858315916413155354214499022779091770228453905583248048013699504674807100984040683220857128294272352300548504217523877564086835469443320854906739062003695373520155891480627109416079203462217820450526422527690981398592127983285419620534904039124376882522935895006424708344607199454218195523241162007689109984756294269413224710155867778011352296409791278922338641207832507980687806402054380152740419232461744591639503264134042677460383483206529379770880207986371229177896591206243273812902639801961938787112806852872742751532119703465481725187784961638268868723482849045704871778180515790789046305365974494911487146357236644559502081414257171583976310785074425486593272613935367050131763332134921286347265841936060084189296452375063164717869263519498411502050907522498810821827434961703041446580388562750871138031473450865312643955480929302402232187139158089860458111020385372975218719014955608152579676146578832283431612203561219491465613751302923206494028365406268989761315059046605028040430901184271952672017716034150856049829030638813738885438644932746808714747065153720007217272957182547347698746671388237979079957696581981321486466143874381158581302837476763713361598399912082491226359405888787514433595903909749353063734546042838240942627272510723631272477242459406781039827470800414234362923950210384130565809693487253093148504072344349298525472940700341734626676053660907960270137593845844377141332082262491866684267733049633955985981075052687204402638702197674841183625352088458253753257656089751505224949446568395485131685689981268088087066980570918711421414768161256820972094918665079411855317092541180929932400722604614449056697118796402072435344783920338760512462569763016411071585394353863220612619687618626335636217845060738471402899980237311725280855011412900132352994453780999696493778297057284717787354384493442242226701530531613174471550800968736681520958865318330685899969287995881503560189229507054650679084562098621886754995431461260235952415531502296810707182113119355063454431409039707894471051884927952807769261170509321290769170117615128332681904629894109940730993417024452891967813740611390684224209672107518834085462180413308377300620024300077282830324965625595800744611490166001558269543526896625475909421845090934141964696089556594017503186871489252291142726153928184055182997049665902138722839878521399017467029038764096983115996421767224615568107807095113701700889517415165985648186987894668730335365338738589452168944251891098618817307965948286419642604152196205885955362841056338339279121771277058893984022413613552795253115558084666642054604251478678353665586160815936366699008976083600265994127805042258524389034331833336179829277252378843735086626667481848892980333936119140624699105197212672483877398646850970705148728312460782522467143775533475225351426609552120076913607200664283498477046341424380341035207297648099674995685637401606881045694980004612493069374319725737570753287776248234329943705045655109782681284113762568258623608433284768139078908179522972784782440106722121082812912741992662353760818052289225160816948651537315971274171553542559566751985688122644179856382930391734009756698348984261124172668568865607680292658804058529840541792363764873635771549777307538628570346137491252660953291130757659048905192533003312983080288794650659509044320301519371117163008968547484571565612362357602878995132278198793575307761362930859757533154954955790813807318652215979360335457444860166859310421142262869598343634447945633895335409882669514732271844019682321631827850548816720798611890233655085949925534463339579417797868632846026381316413638137998759625447805543018077766078618636353179654325199468272486007801438758285645823237667745446908065994258581673635805463641903356120689623288884911632929442740183624844529282781856919300495327906639900807134005443491935532294234647031739495172529616952606837410683248229824435745130061636005898942253147508463918026571184965987844192523079569403364868334728172690216265781392415756011356507430910327254701122713230131690474048646869783255583644851491887897474088632786500758134911656626172555886361938156302295460653072686327497552088685798800478009685088021389237415379541167242987735377625252882333580543038869406000673631267283431389219716078614925041065537666395028351044774156098725310387308027566057681600601750995195220553833981701560201149642962353636701199923718858297451476478896079080950293873966953228840689314569028454809647527435691317765778257841641151097214168303303959414407020271561566238922793033609599238324995546612630353776466777783173177122233032955328558539169876411190382065112752400479237471912284829688557202663593909269843882764956314270585017295266342297097416141319165971677143376684702254435562263472587027215539710062345087768139167599316659406001621140293558507433084223039744908496430233390909259897144253148889749221110382081986542274770044149436873799443898354451963679249613500463167187208070495510895767833337944253501374747010693102517944284381169290609481320765020465362839965689124364066673306349447036518392061351221382138475205132018437735144918191702008249421656468985339689769483337634594714107874413254375053105697197634725836087681196436195463451242621335282511874285686267726164801135454533452539489766477544462594842971358331882281246802143904579480883189515921624890885458739150970344030886504599510160489123388678045932188382714233859482830019337039497476645324140503110112207558005856535522352810622191115342094326514835651158418288681829936220252997760558840549989065654412058534001620289675851602999414703965306696332871631031044674294607794286278988845074366567686879930048895793116349184843989421860987712519174770395210273762202752422949831902149550962161931543763247527371257275143285862087409512014991499531208711464901673201577918992082010589112873284945015737060803421011741658945929682132950969717843870888342657209572468668936605641550393383445130595544773885373223550395190301146096576037106053641089241514352114360726727031462956665753852089877959520356997633712438924643634702679006552310444695488065585539304972705192250441736477781880733815504994771130515630030697603021088390353377651170687812979986830858347858444343933073511276615524277089668786961863085467154721457518743348132045630436129131626548177890501412059417545742888763707266280731266825375205664995325176836714075017439020914945874057003654176266144636097248484657067440459469824670764034356848094210739195389829275099804605696137615802065872305812985613308060833342929716315611573794050764145436292850616198563371214878967183762959884654117182807818313628044689892038937582264635358823912554181439631500712705676838445215764050830142470163454744084528966638684108860661418807376559683628143964815302453772402042698423837625111836164489953296356670723400444124382820301976736432633503819856978702869662337599465491354537492172100562499051826447493341993127264665707650188729907213189237470339690536956332602962025496387452965352655369556556389002996270580242821175933832026174135177930481535478250428353252148418045015447026966688638992573162839890021124487474788169782843963006834628737626883240718722822436841941524947041617231292942675168234041572962848174371685751401773873246505171940990803147727013545305670896340790224295530708432916908606764947843189968403549758665523350037589186415562138849206906360075060139179152381727901482948526663550757464995774414002401645104229408499230356710458873987544724647911603922497816762629707137184598188722500798875396501909972470754009172220041119371022223938697998360219290365076354790486502534500912819820079663266293336931734538752447512757762152333748184770604836874022299986895090717394960346682423459055462715491988650902879302526830188371495663230779003441156150583841341393012319313959247567211374159713752784493128135195545624111720903727824954172529418559153558845551874124141598957326957639299900219371940216925966443529622475232156743373390083540235440791416627852002487470519623461599645128613878758438023400988277410784252895317192334248555403397881851176876122019034250827943343773635210814470741137451276379348891070085946521166551944416180079970105652806192846848869448376217532859044973270664867623775609091975394758854039518944349248909040948925999312370038422906331851825373638088673062400612942578432944753785731481257605694494289397501697885592315214556435590264546000921412775262423125881400365507284846687064223137418425111169469889123819086963562477604309495890609156484159387497559010730250313287376692699407033213273885793109017201677134255834209365668538372104987732720763843284112289786960911767358315794997059251543621840956130922505638943636427928046986926198824080713269482168591939324546478141588362820082053504303627788574573607823431070977737916767275298550645994325221671319211402808178648098593037091540665853659333293004407618783036145144424227729029038148578598829227078293895786205441037121769862478927420349617509671077484512619845472899512678030375479113249326923196849543111339492894761668697254862566721668398289257244724061756073169911698051273616551601704647925214563247147787364667391798475264163740561108623355034877617144193167146897151213262156037624181843198935321514204428255253770686115612041630295625807771661431734222534853662370199232500933121022843766878690390226776339722481890813447424813073792065112239995680910239931304153418411567468080224872985148071050074790290300810087877642710671077050051851415580769649014670042904364892295493192881335702206894372150600722694875753271020321566278056696652472078863565715346118346045511119264181524478973617138115943269940018086180489814585146318728292632759495871232374990549029325525696673952385795832880625405274226045192841562360485220377899795923764399664473288679349173885706667471185705948911938210916249837709116741966676803395863081846620703600956561633285898535386027121068373678488041164682565348231516254210874690946555587119953737422109423100952207943480821574387198114640534525075410723692779907341724037988134148149988313944146589814207710862031805118875636021788184268777465057184130750686760578918048697777947248990014482526228271169588920844268418748227620865606354866759629858978240712056276631419955208103173906056515099234218018978568299565559820130044845386505376705522979309018200739027468278245601397783278084957748012454200363272553944836756147500887179158692594386943695577989210812726917607832124010829355692880644764439550880439969475631198475862417971625212108353199099506196655587516420097298067303358589918577925383232558989893712608107297396984815029890648392911324245253426833633284832096820090537528728515116004804964303851720277836741914347090175735930422287311997735749589157728907021644179473693719583896678192747399190028723795146998509366613762726124812613925870568510221733626812977365932132740972302957562802955529718614434201942273562527112915650416630207194628619700028624782646402744313771744049897731334118206882877525584182424486323342351525117483653013665622751882508015288660692696586449208417064914588482868387712202479539525732358111225265559134932454137221433013974780125130814939356709954156917933480143299165883455177474310064467010222120393979714970090040819202044347673641794307879304467562827062410209856755196445040606301185471904748854338807705716045678847443166385513131774618309870389629667421175183966727816580172066011166154914937245571569010050224477831915149990342785012528038420873491032723854740375518682062818380584547838191648408533619716586797211094241568004725874086627603289379244619402031681655429092078928966173883016461801403355671662806636371523528651704575642391253281475628261815820259261338232212231346721743764711709602560129436178541819103803616257348159452389864952740144765236606707754637559774595425909032697156194059997407950434074579011733492616515197141125238526477783333757754023709831743433108993708378833613612914569340488461082163414470664224648962971946187306798913508178202439015137758655280610680235780433510690569617607032667413692196562151202718947122864627703881757667219293456535609778227798060918489143280027864008605356853928271128717909180109206981161760580648397514280239631162154372352517676373705716488357767958944182862577553891290470273660811015633281769599709690158526157539380560525406189671089546567943463318043072188166730796933954322832210351398801989733745167184697276308975141510736738675821537736950294467198059559360633719474736863938029577175821135032562522052573168149342480070374347361850876198310648376088721689885781387214185915406500622726855380373493100459537157907854325739669646128120994952743426670755488428698176234457404526607527448258848891328473281727657861630047330608194280288081894406036445208522281840595538937086593329570843372356163239186214786957809531712044618956437312376618389463027942886144487108203944492456072544252563253411408283186322346616529874832513771852729713515446714031300322956008657908981390537699114098130344718937045499204812792560535591745914790071560167004080864582186995744144134787857872685960357491788175614558875054475292645236853059716175203303861588983672497517416334066595411421152279548804048579608568491770840056851102335171532641089255025888078752217425004426000565621192676403372163652003504813107029023975711902362330161943185488229651783219785174536685038764123951817237292853029047328242221058412113682745204274487850376624609552681357495679462733937083897122932687469089084931461037066403583816759461191038347229805582233676752291181319890025964849637748479308089259798671929178479015527154034592538537676820902818166949828954231932128280881640916773570430471594511164803939329293767461982506662981043094910719014917281549932954028436918329707135653291345389688159372789160598976544779218305462648057600624568388796212823729504743529310190392279284742625331785176599112501920195200396623416222851507333920391824627266688900093082591314839372892956126745559374916464323032641593451309920853929043849524837926716611742910291781921393421154145202966637930814257486785082606245404871917066291056856237761797534989523230556003894697740067244776297792330012590561379499491787159894535819066268010203883499947704778571498350143770867277561891799215390614430761035668348799259180178272846207811698411965720460343103158921475205459887094650501939310930877205724202642948677894446703014239530960516622887623215068685994357005269200782765235727025075092340019092105621018558439644205311788440655155358366327969131087525383204436009052618162984113154245706797675671613565514459612965567461776582099394753687178367313889953354126864712161154513411621096677931615547083505113134116133968049457036738173609292623690109454671510713955082585859046303921919731930932007521580707101919456932719855248833093183379659677775045437510040702327916542164221912634246324559524400700417677164655626692319804584337729837327799642777587353124982161260470120361014274150485861004177373197565682493189688184602960428839701335530914827775155933159479383981807117946331278710209260100941744171716273209273046021911062752102777427482506048694648873546318285414217029742809422981389750756712105986773003759061885634399901199264911087452607046452559077537446049552023029846507812693020404056081743539070339675152865175014982839081581801545896011726663165509875000960338188854956211804215712342501315016747425806092471879117887678984393585747368926655767443485586968589268185616806597710349466739328931534161919455490199132833377077159020130897239464098159893320806139451916029295745778725713927177551436209537098072902133823332703393068406860719578663283083698442045331301959857940822149949115402800643413278913015086437642733145398978037889214219694260220664211357702745385283734234601265586190001215706462870018576306832033698392007577626921910610777045216116341888608621577898350735889455980980527970677609785897857933435821675487410271646379355386369387010797296142766873880092842976142910337107644954390745334992669472007796206974376359977028097234723623439480620147112625991536775427443524675638280064826924303449928466925072475292070819846619743297461517300242179212081833352122201651621839741316024167478102213826714212370339626227140632719077614734878338363356258476423826228020363239759679971471318599649496090705410739017108957502486671482523503307207424847354283980288084565882525035804147521963865235564132270207930522297218951448857748916708078226401899264568083938104749979710416889271114963148522937893434174399156318245262437089949803985420958048317004380954706839744334173302638875575707327121080595874753252288983421829652041000117493631991053867171930106271351120393819149812915230399497873378378146100817483975578385649729382420384167274918220802025426979204414681393976182885435161885631208401193070767439499157727973617451748218410371184693890879326718993945551080307266239827154285939723037508556256760661050793296874705773129989592301943640208296262135831155484594663219986510557094186434215999761803037564824729389212718104378011863714318397251391260945203656919301220345441292354383610485018497435982406512792594476712002060196841933534284716267879969669898939337512662087546063513405480229965288557997093051333321924927430545044234037327284368499555331181114351127635019595827265947915132788534524063511527205951300792504742059186206328083354406885157828728389194500039710064627718807288544941825120945378002543015147901608583107608000656303300615444071383320810527417315862731833723683599384592141740303932400512821024037210926905474604344384165738565828206039874591953277713346623219636316969859627214175638512189818435417106242569684309391677575090532382384159340830741910956743015349000615023820687003851692669361800840284698147100292086852701457008693966460931488747969545243452837487689581679631234536649728953620932210291138419730060236916045952875097426308819295179410317648736885545442244705140164613152603579497967715801229962334210440538518655021047334725697852450430218439980977114678464345017991947459703653905511695699791837603284164331576210398480854347112535473640748697724186467915896862738755443286421653636252016748030404056082387660515858161211896009199315694521147176428253912571208126721511524313777856153222129553297528508109439095827233535722251536579164364784638822202098125684941413806388314567364822848103592670426706121858992179304303911676392113802240171121011110861485283392315944064982950570688195837225024395583700689544892405166513204147308586613547610914495229663207445257753037237377516237456278484450347669415501937998558523962039055351052823595093298655382227861029816354344638934492101602054561698738944840991796202899434793074976541064844810713027008501228658473465300109751373319295334482879980032811199187810409247320972395146297294000065378548506167132947998640373541956210031542701454740614821571030098888766492527801863643347687989878693614364334657006788374122474863402659329132583604805410137900789713467243101144284214079154293349918864346550495058320112109557376850364689365798300023111623780485374601400444174332048399709046238638898142007828041162462551845717731138032110177569877802110524360955491559464284150723589458539995611376776673737909338951298833051319463580246783875814046276102662947655767794853050238224630504024265324107474309190122634495120384247424153541162661578332471849234703411900074378703025175678320444100696051825953740767930405563204868866851593328992017198838906319766070836288208564207449851668119685129685903094618336022278532521670806469314892716535058380170391450542653229706593089024666749452452152489981001139740246061132293429931514500246203495614278656250572537314758081558035228535458759127718938733487600097841485370701474320886321899302111915162598114539162225162716388750051565221983462753469807191024566007572404366330746649988823398085774260475573148582699450840218939577915645918273462262196947871166312887242373413496882304993548962038548301842683701505120425094452114096424806983408518584645438784740614243850004098148837839640940992835956217910411809217098815069211498763467832006155165473958888278817419115814025522909365205763678807007199416225234874882261583672117667655373045133146710145962075924214336323158988711635830241452785066604856719233101529016282282011260044404648922112928456417983092045991232204564319405091964255042646630133020799275745732662516979783148292412978457488547469575622352786761720508695987332365663291661057385068962754906733927275888447567963345496738076492439472924133469015204938773682407400418273131325692933098045183930321886208619797083755610749489029893787858329763520285846384006486077434952666432937334330473400434427258742827327175988303398440701872846808686711039104972172276027818711945378939887565858283800979699462696791085889338355283882444924741618408285945655660212216022518355708117136993820903107446690059812534869886840563613589082331361687229879127061942817438090007867475650599859537913903811622426503104528905468940725318126114681615396670695758634629949152762280047948140996020332999939739758273074299682313175785703593544428032535049511567319831066544716765354907230784022338282361871136042016723247802092592823692891107524704575991280403541766440898686879086401893887884379119315681440347748049336295133163782676778587300512357897258266203795873693544418467880657237896619198037367498095175005534643220032471433762259796553886630594926430980219186275280633281834123061508002020875650006252787828031249261243934855627978222205434829926110226180500095449838528657507373975454822171575908604154975811783155690587854889178526400267187431306232553700211382974670675035033973401374620314899294691464955425783608065218678632378840969657923066641943282609471678192363146535160030794505479171119261810613945121023475867785861027461316055869420248199676415057109938080216960527135069072420195689134352196985765155082583824008123558548884757138363678885458654096010512189208085839324126931747988176484654076491110259067484133069077201790800013141826640133498496612022293759318481246264107309103237181635800906552526148529876528805567677533840615993010457710682042702738561442960526269749017297227882204887350277816286333652983020263737351554082996582839170191950578378631536860763458335426389196843865352040370956134719027512190287911140766677188076476479539563216328909168897716080384401032426085353364699392584823575758168070002147973295696639535892372660033187938104249763576772943919140635948372957599346397776619646032961476453843173936164769299554240943132244733981823119360140674712636233186919527336417539352829394639965110476885800809080458261814986945189039688489425709700125564849398515782581867155617278388698232315738281941466588051563569091198458396320640096850403016184681350097970931408104462140231682061054622585831332962246480130401151136726296263991257584855404617775196089166420542162936528745244459919299465651771309590238028483676785299191619280401137791182167233652431488415519724209155239456278467372735481437972151807343167785257732871847619402894844631454450550575898807517914409883854416378022199089140516884745547770483441687915531276762110241791526183616005194846663060918674170905025487406170973713359350601514268147700307545059308235024271829486662212523437668778456075295851619475856426260062572240067319713363873804206468145406286921435543852525171428974240351561898253419014726548935247276026941571365258418701881241910445909936809794755426949361697196493432227575779636111484868232445523493332252881224589539266040187373814739657084789043836550629597199164966830875682240886360216833815135064331023579840957432301331624085094577291007860952706618884347299537834698250585125566888977415556220948744016105583611727783212625200279832961604033108578855628043816524886397182637460332323874151656835075509751680306509739855568040287040705942477071151874488165062614571237411954650618205601379059231612837829618534290274771686146732785890160848351526344605512339321937719412811418468219052880634511702981357789304705008551149507166808932657078218349754887258497524623445132752805779861426009866872707929499527579421424164000580603977692063704641466155154860620775757543896902127134766236698324312654765542823723862309112767628867691626598213262509843276677288107621323006306671086613765660299894925431167841341251692941725811844571184853877996371015524558268891488823827607402060843285970535650508661536754946769817309185047148495407592186954592155626711499267586006976947066938042011872719439841381434722322242124175817226344359708673222524757562119935223351576217572811575201050945310344722134851392087346960201375516868731006471033762049573581002774942161286390921827437249754068975071382892010714506580981787529254736513527522032464688551068069961159983650368493570517690491648919159006450677686246246467167546318891517561026666696245961750678684776763797076192464362207815785404985438890676140759574604420410832246789569968978396201472607067218111644321920133750871356561855805824723695661600313400289678518622473977968594438012319803810986801755940107358804366540188731106806927075987036271600829166350780045447211478270718493205801221991518382732835606870329185380426027916745233790892363342401560439163941825316280101186431272239446007156974230076924423645056386715255159247791194704211426231130954581427275170379925626214532452073628769286710186111309398166675427241158979685498154803791685805074338311273718408195078483685218783305242176844254283468304582978843447271237464774922493368315176665937082103702708530106837899480708281904952336524379757739728823881799625556145399367425247137080800673438684642797071986612089487049046993395900950689734347586742645297899822325705318461067215747100771488902840979329490557069764472807345077152027168978325462267927976693359690952055083644411912704407525828695181466263789718846037069312311872342567825379443726056779195096485524812367443456272062838342859017847037971575748370481077250256070742233458836349791167101928261867367743655761344051416836863605552065553401963974569397312874030694930988027415525378766290698948727090055344656177525943083360922019552594262577496980772686818963676868439961235718951994858154239363255594069606967090345079726094833641532990138870004063481497077702575765440268822323825924514477234308854277688496374421416031178708629266036617221461629043885743799040896826393995778730340709833117344744467374469457895197570305865966573692736434108375150636372165951071728766157379372884913414960646292723544891857116654463511592932159155730709635188787124017161381676080368109024858281347815060233917937180371913907316113536323732946994490887404308329542490654511810443344524058532613815346843159920135127625514563245082100896942937303907145262034831066484267936637396777604632581097910841163553680182967373119013443052992937953743508998478021987176524646851478616696196741530967593579958259220175978700325409819879732907853010188932921380333361472428780688896038026856342404332345675990120081354984095266614949433167744709156752824887002679388287574732302189137651996443965569228062129043559543181544812256178323571469286944722709212826548817792820910186390882310369147164764509665839065237411139629515849601695458119459535064663536019464117546514025266466381464191016988084124263196304016982817893644135737955358811735670516656152112679050535015505898985533835163945024235250571407103955761663776246100065462141033346183690359363236619225011134680190200853505771170593861222047220965716241973022469951384095346974477148702226736058954760263469677165966407692798459198811805060434660603402306305717614931214814295473121178643322898662703175082847000127355348727394552905771874839908438782855543799849880792499266297677064637416887456094267071434875278512239539552840921035529289743805824837401193711274097272904752352031578014606008065673623918172695483175237876150132174294475476801510378205682310891804577791362182395017512883606269292864575759854238399249590736464766727810260308834146116405589436386526094470163590318265240849433933216281573519008757888974266017230502933296007669820808474169572500723866726784144649284902384685206030960277668480961175358794869391742037875774778229425173081243071229680445550550989218573267715650757140156780774379603630078193891298989613297228924833199715094574369255740842542451106596807702835949284750692441985718965614972792190772587597339231319170131476751090852902852547484812552339990229973588741687773525928905350947766579977859049546605961943177067501508146137437472594544788817834411553765086515295063589849574303211664966210090888203245493221725388542703199601568710936132262819263572352727433025000886824640422189091281143774945185074032916222139006986376875956723731571531737709699623238737470631467931191892939102541784371999866925594697821372159324022586383360767845982426521101329358026842004839794026733449464083078850117392798020382121688623622576802090614137586803487547023742027088991352645624592099644174296207778951881884141770296494280775312166996143624987045212095877025278496649703433062643970398828223376646088412672074084577767401675430810637363171050683800086257881451872220698734778904864740816065197355788782230972085608928669115784098418470693215086888790136992057023078013013616129290163754523411560000303789004560927457569616684175267528558559732212896270817754026755248097937784377379800486782237819533318944267669200244793885351436278150107218066352728943649649417538466580806830340728948577237543378960998137255993900183261298553156990649539350372508758095551433269924281036679521998529145957400783391798181525129702746014844553902369334010034353195875803671364234191557863296869148899928980657390689709247112487540162966711636237003337000598860338922615909724537873456584800620440240472741926099825800637622091650523865027324083049224223839346332604713007481080848059320014401953097707004881756170793273673373680380860584411319390144013377194749373649223018283387568658063702681637755582927401405411429421816838393655844729705021866615926229895642593465551191341947066674679195928887876205656427834768352734257530148001275071044127174165243854161187883968465858528558859467460368739591972248619931045978931576783708064749981672686660278728593774227420381532049453406070797920976266587830596381500467517069330879697093126148873076681243058321830365193591868567430683466083784304813710826905654884947295216912523773910778219407060277997833602036853203857820186586728023956581887268302715219930620243629287112536575507633339032223857692916790243123683576664905915828930101117546246929425118585500850259989455091108822491577033232877651434101353271937428243844630379042933169403666872163642557530023132932249207554001634821167210789452393544973817413525172495348896257161392888827507453904307239446632467536223027494256864603179688932004084327520414108207312035704948285099031962880628871592570380528620583268066674348871070638375206600963516630275333586025880169985193840032090955464478584936352846671432749005078965580265361710045687937142388977926003379691759768302200986965953506944065795925554360532600212638034082810756871857379491585942901330340264338017305844797954253086501443194234352894757857740250403459697594758364558790790649532161594239827774543242101872801009637254119262635505501865803821595725978465240131871676479582758762968546419674991360516615434771419465048581553033894736052530035944596308635353207884564296774130000138595870534359475883646761151908782065678125838545291132068345631801924296326951955372602463804320144562718347515148869408045162778055472660013860557196302787659195211958721807755008349220156749959417167078711637003485282176369158347575230589911680512036105267514108953464897158194564892617852074311039988636682503845679228616983994262444185789029451351422818745291351850645038672052351116661688938310710286252983372700797131627656029319603603036872675066565996538592402733259144254937237190025406516538536817429963748539280459372053838144204654351812865010546424219183694784933928265892243731658144337126010694356284637092134549509493003600059455399188026352094176998390693169329312004787551907504849621451057916607389083453252221617020626653459855045414763420692862686293666531079344283554400759462741842438672718070476876959121181846799662863063608608219744025440377485448196299078495794625983722663641536829110019390716138819818419245957268522027977251985302808517511296619853459440069787802262089339517809966690807358554928167598352570349637322677268853362944023081713643780936707196316401124733969796320625736113208148233310770018840496822494998354237926577016899902266032425909054091462963852736261918683259510537398268423609072047313357124974585341873986098537111979105527880941795398503308414496919955131060689679238188811063963951056230263590123593171624123554587597371870925885084411907801205911032262053016778421906101635114792241742933384564725831470237862619909956394991130707891073516085474158786745588364736969283614544145372994785174494670697152357440901066266253775296196967782350140765487526068993696234889571851396780867651356591556853189931313804598762255150743382929354367194725999069620245843582556513609220935694098203078344631339420498734530256964801475471262030499288146509612777424445466987979086376045759814786279986130273574587487314207534282406201596981043353479316389904959680889455732444916659662330995704871619132511644096262626750028254445980270557839750082773209518848507955650245855533845270421990659865538932407503911120568876820800067893736609351395201204949651721186569013700778045671273798168580257020060543528091025971363838056412565839633610739501000304727504036096293382546264260987971355451626602872084559954939367794959971749678169107656715358855045963689550756098829995821218593412376555284719603080001603469731126734670177713072332774351524697916647407542451242720540905015603993049354733578817013531206291533239843108343814443513108152787591110988102454579976427381044661871031284268150986424454591686214392029820811167892348293701808491623135865914411815264033919627899757270167063570285346631608381162996371761438489679763044942764104569019648127307306033675095910903803485347212977974926989670632609496501568089766811939683859377253285777707944688821795650311216381641346829236887009605947692051153657269575806367568230028815284625606303809688800637994838823456356764851184455041730618158426496931013619463222104206408514059649182033344968464945867759151227433560583002874777444622789771308773649977188403317854403160710141076951984768334904880610371920409286907047080452767971357387077579966873072799143886486385904474993158802779137566006231690504823413747062780058319560343258867919464065673817643959997502555942478396067398136165451153413985444652407511449756705016306521311544164586236451808193832570662880719041840572808556003565883825696671136878308699995704450944317887527414726225227303397550155743090654955604091047304918184229807342536886800090915222676257932843881063234214831334625651505392105391687340531959976663617229433772060140534267374663410971609434093964190609417809469784945831457955668671525089943521531836135590977532319336835634362318571752507351615138243507523513998353561211623770266249551828455821470346973540689814679204684861918793163979708279987822682367295681219958742386434467490512875053701094132363405929004493110109787075212876976227877395520587706315927519876915172251368841390008551353460222472936672695177532412814016982092150919059721737207851220455727920190026596852503781637150055942296437952737663601747154517917102174556965288500754641797614965628848603855028358215671304703241733410019419659475191583823155890108972174433689991932045999879778657907309867313231485742175147992337156326089151509068917439253277846128895471673905549416871840042916788860631818446721821479923171374839018186449228703856512820536752426296740465129824886670823876103073199496633011775337517018620759681532718930814402673999366523519372309123530225657591096727524808729670832415955946015028340030963220364065248132880985470932992230200571213097546224676771426911622158481942989526685627919523271493881731417938801709284471595081375817376325778000463388808111098095436430641680791833768346651904670499124938486026045645646121653899452637512605706432258901119079494133155425175644616743991679423794564381867829285331565147079461577547138482818765196810439175987928593461794813397333835532430985747599787333800200724588574193072577286529807023300165573528010290023232944621163894462094118637299125058971595003122886824519898077045500292933401799980653986838850562965314466207400142764241879399344772003825166631956423884224806547926607736634406567131173776954907908435144799148192034069375199139507014213280236586288244237428798894467178121902902295556326909822206649154624053327425103709774651425701017354825136247514365215664345012606286629727663133765041137346069143429734234558159582072861096380764172931596680851874731460335708680725149819011116023644273435501140594510895390353389088124584829189240509070703788669807473747059330772917291275007412780710068992707394612374769759957733386544226517822320922169568115711918644461322434705217240590107105616882702152692411385298642856185450560872392270556708435540443715699791747073912275967276842940995642986232909467052753998618086489562280310300793491874505668386143769500804001879636777243705920090765848405742560804665083698963823421171947245902377307700301410292077725948101505934598845985533806025044099608326514226103029876744871414403853792110421276729569086591552350125417252509625992670546931266491679958774808936024584250655210344434738251362071774935499471407372715520426270051359149445313886294866572987580167480624325005396102895622247860280853014742402366538858362289427811380344373845705352738117903450830028623120531192597077382924680084899331788606055325566755252167432161505927092415536998536528795215218256791234679839263885223989376700874571510676519857306281041784552437626621248627244925623186965097463371031131606273737311676770709791031735150306941102718102378149635626604869346318731764426300684360636497976146415433958811859767117016526754511958471915293371551747507017275344128426422163929910490967713659079877626135778885066896664931234469183969153598634173646720218199236233952340657305928033128639083413846906308734356796415181386403065231571051108067522977835492845539798168791128636602717670315996521303728002472287489928709565425716593150090256543351858224135331825267557662822941214665397269901285975123349708707450485648896938167721058263316599183459765187509980129709774326071461518113558840884428892441763596669832209746326388096514248469076844172325323251666786714011902424465072465564756106435024207652355335382309111332253139488603367848479161999820569799979634366938743333884858971019489661001297467592850475703539606603896473383930690020468966502633889229606733555766938341109498654924242323565519428948432639309017902195564226065607080038480738533512000072836949634051015901321748644013035229158320804230280043225386465097944767915335924720829290061774426685096857809255662163619511350510766999740939638539477413612971305283202179357547802615706675380542937612137808206073405468276861207607125382457840779036977293208978455407087894911282255968694352594388989286763338502149707548929733298370723133426087977873014723218179249144169733327892273231664411526977122804475222257920518160894210699006069628800963092794975368181959302069411655766986782850825409287942402233608232572575195135816550725258048080392081938044270960782434483235357901791576140887800780012645205184768702581398826647208989736235496340062326932765750870117301536148864714780547209881223152843724918556154032024914505255057099559859211194224306251758417652768757336215632923968652028965160683723986650581009529040145820571298932628152964538069160877995760084080295056454066354213467782637754039996407635672210383323761539264775696098158261864367486218906411235807259801351271942705849363593937626727613712625960738925748713335651895398312571900615948318472337935975355060610573776133463880636864181790703839320972332043223796969188477377933408274662611854461788645567709989643833459029605920230286638054043474687754104914799914902691681454704771220040143416770998781074202799386282572491134355882503753119006058944347283384170040760070693355180683249191178035040449999982683239222214668604269099329140041681298442211038942357055331916199037970736009060932822095983468823433409091343856506100361481354524920282498250065710721044041810338256758167537384843339684690423802942315372704203270764956099697997874878409885303141130160312153912127528993898018208577665563338370501536385100353093424355825619206182767559226764190582970965193109669890688707172584549015641572832472476157819872809472902301750948817193240152502969445806426823585589105597830885694380294078197757617095462624854244861581695281433060213611449118086080036791299545528900467780611851258979882402084196061840472213090333074221865913362038487770470452395684360159535288936986441580712915599451671258733672975304828139604654833138189963610009090222911382872921093083088315604448666094800050152540670579843328276170561239944804437231672202438124927817406811335416104203305478480029964909136419595637866610638166521039676829917667375251808270291814289831340260213208023556315062655736765294247797659394008077305159394566387020982264516915848796962181747777979915538738853429294572557941338969194133890048018562035739156067022097670309317303265436850874876278530304048160076218710247433709681028217693781872508873879924826926366645986663308620665247459286253899382418808310837114137100812213714778307105967510278797798807611890256505242243391848082273370224306132852875192347986102155526230410026619182020984860774539252022827550136871156822872638811553954236379488989981136386897853154871285811721699644156323236886600353398674741176304931073611477379429811393141404996816401959144015382901171669437751742038388258944923430973257229552918128952770816264344926134114910127157990281060336478902288030578235639695831653182990347034410650902067945245262180016564204311811286504398056430604526279502850652536221951704574118790585646459467117039322330312595194384806234779975138663166816929701461089204353052434197950962544584731677730552930416129667343798306530092040335083983168837663393052599443715764611428282331341649113771183774502157762246795801241376969169267116980464328376016763837403692647059757933266616053680766510903333089965967822078036433765993193257914283030139636901942892172193099621999557701128924128267139644230007387604464200405955110179968196845193757289626687123569814431101959647979225650806589147509993411206104317271349292260366897703066677216417661535975101213948793542555457370959946555621645880615776144437916527650192543794793432616561815019714550296026602860894226972948569353267521616530175970923505705529600997419322161086398226467173039676827437952644128289777607697355135126495528762567072782738598980744215088004776374274516169990464553254432190621747193345482931033110454283418745617918000013778283126962667334795936263718152121075292436095261635903103212318898101696211504452302943299366345855806550846788904387230940697172527369550192344820576298994701586610882507767469858571360525939581161613743423602035399257076333165883735313591714859603594822003598854479844209563525958832790751356516580405506237801439773003508967429167993038853041299733920146215708124839262010359387022900144235524958844032958098197538457844756286204437819466600956898764912721957249653119890215047646342052506610000086099525141776345672014241716909230773775182754735328745883454000917167037609865754891040341198927606336381879107282911983886700548470452155725320481847233525823989811816449369023666705705883162239509032450524957271055984675586607230896800895311980196399440710632208047655554934452012308325862605773348324889912966215218057442458132887209942262905508885174711764149246092276044105116987319419826802911718007730295493633839984487400410036234921297543658101522276352636716633637091045334993723858635966950996901407266568313138408369983699731770606441899385407171187120620723771610662414383302257523985314852953615745604125728309846351274082555086926921088768424224882036132358180692710866510909293789807094091333237454766631060000880537511958262772378693636924637277707236889174756890723022554539885164704841505515838428632924773004920627486995221978592010598581171620032586992560641773965764656426888379535612170493620903418714460739674537400126813195173721855647687894456682624751512936207959136017730969169969080290167286317344734984233167948232127945425732694259844765474390493452785137614919461972365137750408062756070797608283547456182525878208694399318061718192780772959930887709256589661057194095918950045024242006458527769317257674290656254799581557478948281586605178369336034522302122740870413744654321349294238661482954542579444517517998009006521370700249245237304979342262725647059160319795670171936623705040869683376372250332389166939255047612665839473518645409442398303182330859328325195736940685191975185110413157591881677546351789630365481013718778602167712849761342382624048922268613242078555841591548994078755861183350918865513084687448052387011705373920413189663377861656507496010554168587181535888752880228467552663489983536158937575817189505269965956757710394919986520535103974445040479310911332728264355370876409063353462377100289235725016191082286992913197366102841011246888788569284440422525400017574192091567410756537194456015328656231453471775575059705316625482656622760368943607479316148590487889463771927764760971483041823919668600959006491763867634002135617393792992064812991515359755040162083748159828553666042887105907890571399362738796589629756144952268654926437360344185127180834788209640872249896012889252162242037804113834665296901626404693028882135960714540565997539453541971098850400244209809924749469011516751378456820076996670745934908789390938507232236685161545195475773632263868552378990034505527591444228829328003741509929014506690667014185013712988520667868227563551557947559060621393936406663564087102404964146661479961949822682532079425382331131076829938909023767194527953911027165111419056907652124325807580661171430046437176645648099555758333780780824038738473800628284040965465509353186198636643272204709216614443078355832599086304007806930848368747983159816575928975112821939221099186938027731923107603473494250329780343367851436401442825044064669593134474965367155258985636150259941791270868418443464168172234140119188728528729650559931792069270087425018032684640079750073869097927550258273997614423153898439707143294051643471872039526384784525789824420618562320377421600781347592104477181573427414616847879017099603003267581926379261838823168673634817883546201502994221062131949111670341922704592678419074575589470075066422713135301364450833311600730971396730089416160358521232292019325540759624450813897483199949123803374837220302909720595511373190433220360391513366837760669448109083714326666783322245761989453968153774617358831202093212393188852436033279324168803858323187453935554923538231398978853007405403990238170269156847122803623125707885358846426771202927317529921501394457280164723800781174387247743906710995972349402584650347635813176720057999074265464738249142917389339305259257821851107847198389151899194659049352576255258652076902063085046082378502641057686103033746980844534264563945665163066626977846927011535841410109024375668621319762520246888710309778147678088657481248496113446893043462301002447242942139088553005960370311168927639055271007408785358455504363613890563438124483594887138737445970294471750383586430925392548285902667747443983906642230709300790062602362770826037624195208686017155181866868203641618315934558267482762736527272261261463036910773097276248943568085339478092210162168731843730293987814253982448481664596062503101012205742964813752870561813054294756185588287369077520070617387023318369797910956947042046819624611157473592697607994584350389762693214731283614686317156026061905246323486714964614786568552369533594560450244260868422333966578668809456505611328031709718113804814097749465851901672699534259487108879031482871186273261393666521775434286410453645141140305025489960388291741843300530757804335954756925214688472201611780251701718338795806289198551010299910375277606389613516977693500148757953148815979087970943533184966793196293297697146601719439778484749371049727936009234773028640925606564366521490075573813479481773917172620066338642435323527617382688591176552290304303965104398121896030504042279545261554517604883067239884232735389761835301486951782413112698953737938926191666131295224791022013096669354188683244988227563111696844080225321713014006353512505415409572383764082393506187834385527322135272693375073200296609692973031912739213731455618875163129882052034743232475165304910687736331488997097455408013232490968739907297431278780216712839893314183973747554301462248797068909831178513719466978933802083756687170519284460910457447639201817779902275999496064746742208338956244849874218100963846904005359138899561921030781951945166269947320448409606905905333232659139133401961341985867489342297401503881472286615833820270960256444341192084629670966121844337396979226313990336962370993144506635466589172714517828223130365257111233327538802123626122385903332589267272618529959897564661876509175951981997226609397421984154286485956327388240889137393279090400359818081760739413646329644427905423580135453025508220319196525535409048163442827174055954721845379397662060647675613836889786371644402404659090606317360758891173042013822758591673753066352558983096176569681186106118336563313201658872017991805518676646568386333809759507766739653729680780345099731760613812431304123365859808301280966061749953698806535819557037012778656299194957822548608756934505699199453998764277284314136454718777416900857191160792863375743933142840758021039057570928178479400037027559179571178049652987238363718369848369050163030496751860320387758544146134778863678866177584273438419903184877804195187534626581780269899412765337396862643591052366999761723175488582771950095832458372274261039875632687719740340902639920723133040993918988872255410747436532896048593156631388094483635917593766191496550026673305477120650026168453481521249379437725971397558753642694438199463856879185724272524019945664667746693657177799650948433157642892160992635914594838524512876157170912190262101191557856390063780883931259044634518990858338477871224012848352657552035062390014112222931178930624907381974200082499608553380753284234405923458593706640177753675243469531462892374238479860711974264792481386498554632546229591457674593323537012613910101930362665421458547996945476555212155683540442021538975832885832023800394826735845021401257051526878639768932183593357508152034172731915177152156003802045102337829249119334541617575834289413774467942373663909170299238887587847195874308487594013515382923187003975012374735139067634437543127948147219354381426699321516504951076661254578344832553540633358450405028634311302432380150287033888981516810151610694480327746572504276097307810070031787058884365969909954574546637506097029509151640687070579704336413799310088600252247134510172421022675113139704753948519947409994905390811774398377387155286314320200841397384233785416412854986094244837444758187641684104578713004980241917914357696957775694219852722327543640526453429300485683161947428836674965710484628134053077073497697389926080536992229664664473625580757608037003104094384650399325824258997578223192583281172938897194712664882990977820144751316947266234837769868182000039838836956765047523961489385022730686231799280268573191677327622687485311165043444838243758206934953373599598906509244483609244564202109458016059976858333694310608821059397773119502929964376611058503816169840723993183068642785147839949287918377935499893556903826559100395631540800452028327263519872116033477253667021928740489685533137892474724067881035802897381085670344177029052266789970611816933213083838718681050080581836274307674318451761143433848188529279758958748900758436878343246270968710722912587321395187103644118726111905160101984247670057173233214734654851435359113512211790396727249956246895311812458847788917800710857954138322408558681458762601927694968916378152062303210325157739272574765724255358644016122223675108848429769557027895316921412044602228821581332594350826537322145480853771244680890388039170023675915972706194243719362741492209556524017041332259181212120223319585578508382572711473778448467797269098761716583040205461923563403523583383548938210645154295535785532466012923406387255613645200660989592752880138649118803688971984583882613285861383999250307637535319707723392719663842563906606107676540589681042648945380335413520388830572826730454450512527203078223076229774726991834412074892698080657755570393228737298308962281441568304633454578622252472812134246138984082501856260010160261708400445859703599216281444369155996833525128494696648655983731329574178260509853487539606259237012480517850280327688729270632505799344182481116529851422189906164618219086164289364268991915991229631256293168277815552847833921628266331932511824058787558035483900067447946358159789755704325374153699820531049125062167728314020828072504228385148168767183216614405200708840657260916670627146297126472094392750316645807817620909030046454304485680029775565859486224810886300937142156173217412270845697581987623360608499359904409307151576478707501876861658253746663299992266554065016744189591237152348978156144714815316727788425944215634227967988118376185570649714925013275943115488478284597674107123296078636266954246269998984728450434669302387215312461959855050082108866235519089389790379178388594149185139723128776924575836784705299955304617738087703649152125084550131514284041267704155250776454805945281885320300913712269771116365402785820095023669455060162839599780137912222957725271674889559298155716733930294484994921076236832857117353366736109732730131518315486229243001541896023882428459931375586957753127368354856616376785792293525933788299875633092538303807940100492422797951060871608004202781908444370570844621980135785966606695062876083255655260873000172509690938757093118080032848485566724608849142425483739203000874380052723393865314229985576955918689607845416761725617195319039281794985590910637738023254081727485779970792251960277210838269218127549048049487959209874596379209603781661738940853463083964426627618731345199439353811547211201489913729086343984302662123887603199186865819294493995045104787904248723145609486467274383363520084807980337270405788654296162369400618874739791824985624811589817487210439036412792437466360470292981413885132309746366232761334284171389237408176890925087283003365382864226524490745236003643806671607582162096795528629320154276603295235434768780167888018292334466573575643989275690606021485251863577690963377062023649198657212453196866532623736201379025738408292076404710089543466139840765893694491921841738293603321747733523165774630262588555597318301469365633657788907214521556480124020104477261106352019225849327833488195834043400414858753420054350147065446618822724135908252407527887192266458924623464579010517295077562059307711435180083233132064693536696081874675083822551068077653776044204859742892088973666032357044291556649900370031569385634624472106358088162585359677585049874088055050395655731461783679753773408337886571883406670388898138941926481829656014369300275095297050224663840347596368430379161256225075594535945134698286243080760539540892152260197069468085407098875678395820276277286496502218452117316942133701315180908380632872364228062067031400733895772060518449815081899728125843244442348634808263132275521631628661235129145612387900966283277251430108432136049106034091655753709677897491530338512181657666140648776413233043470810366851759589830767199381280239584723973286284403546576555815344928525796087427489923097352410068517411910968128497313085730200569884603856332760425725789933192774068382289437169861727629124763010676223678367295601855662065288877602374398511737576722220737672105743682557068876579276257098632416424781492072522793476939864480649778906793130284109745880594637558740297679425096575583913924768479642658654327838417133622513790357223889617340190428072386649164746248444696224098647737522415836746753417315340443181498308209884097081011451512289731611846191151185988514769037718174772428681391913466884263685557605912595586090064700935634799883181963622666185197725709944221534676506448133856563979655411754276862235424635939647579140992282269752804820783889140312280344053650334789861700179613118532632461249832983739031447254047509026683427572329760946575400821528003490450629144164643761793238863551663190818220621581964695685797227773206163142653157080077871723270378434306179449003209400308740814037462850902414573353577918416498024963066439217320490852896315514328161104143593062698704058487429708468310435234006093043984703116549680606357707303334586021411504647486190702506741025847121601694341820588013218824912778471589542307275769835969690257924337322851009790780261410499532894231414126313287594171003076645347209272100232707040325667981337211367368704726497476683073969854894981549277390708666032655605850182216556814692093398772627947990006762215326836601011183826009005324947978297171507152413778515479594148553693123934566733543588135617693823651311130043025730125993457017860043214740836813802286407045429988039242114989300025282508388612772044084694680804476545724103282490826660471891134384580797728444186315800285059935217320777799446192800989188569864859335955262559456364156202680035550008754070798896430853393714754055656943767722366979479424481542898465739014722764662219995816580452988189740877872716941929710103439828006360660711751779464139370689026123460900878857515551089604069668174949950886570403185155005445820138331570764923914900116673196088030258674741670398020345523037695700458641432290419249208999450746773308186104163676698055358416691964061113282158656855998491360477040011203399982377317633543483975682504537297107722983883812137300298696291070681001187882735610850633963302251204550156552695505980393166857126962389703380288608028352600337841127883105922040612807188527537346072286078765580685639584949987061588044207903811211940684119113277163836049462762765892936084712787580548439242541501604473355498236164946174814613929386912336552784159895697254976811795548919047077595999635703957408132180771655904986726443235067420195175415747605708722258968933888703958838077689048432520499969492582275260033438125798726151752916032844170085204278911220907330726332170513814836265876480299027119457248109163778756874236423935872727919116521830326190578639234388005807471851794031873760960185329688165446700555978873944630244347149920095081565066491670466913598507701076062381921493056556503724559484603757974790699854058341627075717111517788127285075756874399070470497213296682984978271827676571598213981540573062167513890017361361856761917426517670471114402372621635695057589895062122780399662335884544978975462635841992164308265608966229159543184647473876078572257212343779471690304834254516305579436983554574250037159587506734600949377462369713061591539421213601730037952694140853190014071457524582581157663514601980501889710247753993320642696787678100198822745669577614935905637742177453224548132863997959955237515982667887299601492913737268298434115196378671498001581598472959171651202940054973944201121891533766795740599423813239260768655101394424030430909829388105156991675522888400745919323596453798761214149637160357314943490164724018985060109527051364640445502795515296881105268128705815466565899306742041628245100041960330708300268454454499193942463163195337276559932195417663901408133119049295976284751260990270201331667882697136541536538633678307409755081879688938721143595028642127469923557871852405221507604071817800208246974114226914143520328555158090202373959127997712083043829893074269561412447984312856697822313256002638266701296958022492584680002683271890514528421035600950804716443288472279276234590750875907927231748664643986813830836621393579672646157590973272611793494534505582209186479903101397149097846088946554462036150529963777509826251414811108002048853379490818434803598752807130840681430981739117655766589490777186995882438767033666304806057242004398921703339338579790996442895465306531587756825852711665759710578462345621467247421801911072035017514420049708159049082540502441367021785196985355113966829466757797460936450204238131573947839224951570437192036785457392028268819422679501276723201471630208183135124433789335669620096276891789910284931081159695848118802699382863610879531618013815683926817976428945801608607470714532032305842606474066080252838432620138695436802077296104186049209397285110640407742041177687520556257287219997214141067915856337420134225145576041210688751977801263055216949293542301684729217144707573719191009315741499356052867965052609775663921467124191058636550160845900128054507439583336147481956208725655060180200647671317420495349527945766826178664364223531603726480354798209568804251082856757580807517638889186573362276338440327949576250538313368434590239587308256611536310973359332134681919533950785361138317519655575494031643867314498204730414355584063280980073182451854606576796764871099276484213357717268228859014813209957884477612357985981859698883243191795561346254997566320163487113141751640010144846682875690094070875452383561328763104302153755809377794582412369558187910453956073499929675008098940083256361654539757893244472084075492346569586871781807990363009135176127688513252796299977634463479951250963058874016139990491219011078041803919140593728838622473084100972644559615881080306187328304225666154851200196848871000542461431820518984154422576167716245231583903906428751352087765814259557109527788222771841312115216270631749789561574729036298793730910269493105282987526967268463509864233481947148716443980283756173991776863678157993300041192181192886199643492273133706628845571543434224366245565959145659715497790439521126563655665625384834113249051081284634997293009559472060563653009186088708497307597378251718554864834887525261276970120059261066247649699903612593895265293875696960795352076205156482363165909155052246477935293646483764860719206022298311715839930687060163431711479842221316391310958813023235825428647084078259475201941861411428003998409762872353930512136945206987742680472561444086861313449882717077654407630992368094769088425762643880571793719279880172051561821433293613604222155616383316750328850048133587768126638247541711929527172266249026291277022106982697013808343561955139488423180785362391854562102477301552613097123402215036927012212479925261458300689280697892883105156524184126056212248780086635167490101981576896242487078258607551202260672036834139673131780868349107209723843242183601481805109635934342912921254254301949873888189616063942696802969139878931146840182437965132837377374719675199712592356173444652287296957336023386416900396747333218332416241840011474975922925884348150006275138819775401478691790913526905217118223275357893682896394667826806538956110060946199642481319318326943553512045703209163857794283739886143202583930969466499374402755034020426283740974076061444594838374881841881315307272762503393946754940988100904111168631068061006654273775858755810805346664450154428512829763187383197553187713726090953297041152236486523833734023120461408918022982195054974275319455666605608386712971851194590978203917321210999186033302413604602103580393459558796862518399673401436991460683471481582026688906022588791150924452370108786521577462688504437199537746536767563796984140521134153923915179460694657304992346391288595064520670897902328444106915659479453617878561661623181036781786884631737896789189185272067124265107428925491092388696542822239538359076455164526423629003856198900548373648955086433522375143244529929724583111503995543546858973723074237150260388572871100319051467501637367403260737128931276749414267583225875329668914376060064796517196852520125046085299378787695197919306807489283050062191699102045321875629068368777508961877441380793968833291048283223835108499358833668495002414783339370956787718428051056071070691460007492697767389371770392188437050861175672516646082925296356572676213307169822695914640458030605559970284093461795115097705863478181871704037731918266190269363942976174819802156489911019446564323042083054993122871564414538657887536489294457516298745841404944142913933860381401753778210981695443187188235920497747881810136420003530167986324651146807525087761634447158318212631135657343615046778813093711690979779885068561341295770326801823820732899088630360191778223933217210286919152867114638291419532864371027590109935419319571884871081065609056645819080817986716108428014679142938419185415794132039569072373340301905771589368689720922917742925868430037674530765820188624999196083935663813494313538015556428647453970627288263182519820703436712678173044886334129017585737861446941624674457302834777634094217830062150912626771296840562087640588356186998474716586005546345985837551387512311548057575100239916290942504590740419392865964212890409667264428322056713855047823816077336515184372747086866850290736589616166904978119745122834327456136879760353829399658080552291199913717918580762150887612141536511833768446280351264537530738788200569679298799065075217347783785145020297629100379931900736686785861672720201038498259863491198501039570752814554136840003938187694019747396712813507525945684147734810979853485654454900578262213654821115332998979353532491855286682248872302519496350570730186321950473651846105948929984238961365836574172236512862407287510208736983303810763996309575614598709873665927317639888133724928507964484297425219582607428771027607165097570285419643268764175237393438007003111765711067651739114338585694698741035511280103846772671354172771993148892963702656834920069499512998320479086761784941032315520162310153438918052326118362294119195809564661661655417001428230069197153540180116436775753232961757177277085553087533507353169564722979175717913626917371229507024767449017683096771738866190765472663088308758730143367086036165493426900810541869301343907028701850096999658697654954222659718558500502367088574631751685740450863632060265044766430879690986961349282576898212809153747815680929477956396368411519814231914977472764430429560797897653257816918264964319756471440050899775323807110506911722592403938417091599863952873600174617340493089051519218803399436474123370089700763595803676592490528762951660760923922612169913434989496609686457851662741222494303684537150130111929651507901066480591169299620047926422637027830006633386134858062770361886185774190804199830318184181154016934354986692881520349440109644362819045307009346311588395126742394834778248923705752675733712629327678437196100724543531375756585354419701746432609709275033151495141379519121356092767089505262688652069405023416097617500895992721063031986654159995863498276115659227438772613793841281940538735781272781860377105039398961798529784191179143006803736301510685913501334621503037456402358670884541535063658108628633641887563643681105520931915329579067333943715166620137661023472316579252650811174239611279640302353129771314111481872638405852777846085482370616092601906853448204661986862800538337417107205314037369089018491485627394805817961618357966424755492084436465935961815537988247363107656340089825248977176625003384299259682018726450833069937905416912676690947297029966729571982808345059026704395364703538426510568514987277493897271955377053546090387064011542684114488036378811942814117664294843057957012066811181162675176240951783672707329582596251507963267989713563939098724340617979922925260081606026729025909247670344545351484578531052612926530000203334071809239527552558333107613256592477229827668593656101801693860489684564663597095969686541835315948501077585547139230580622016822128764341711284980869970704549075463025447751859811477943221513050906873560047218906455372135122479459707521232126400517523428529485541203573702443888723259722493735059373977415994048783913295972529381137944788595647690528546312094417793928811381990109206191622575858237406869584833090475859108483037043289079526356481304183343676172967738646737612899430879329624629598853199143045408256198558125644586647808354452675715844489343505715611290829248404944880662522274543327050578331414500842443544483380779684856715104067151209569597081285269876908015824743818654407820564088879637285494185717493975570703405453366790628189926487081217085898936335032906672764823676393242283027995568101045349225640528405309820238787054626368180480508740396461372608879315012899365926539017268018596412211019752056683124451246351368257566433150620646608433144755266117895304442607650970767485644169801717131260561925889001766369674492107833754722690453707568331571308545358109108152970451885051988476402537156946198341952039418340430122150561491133948645318720818553294372022640376385205546931108692041603902327505663370323318288099764423420971312965998119479902165549619389652517328128011561300674505741129284155524631109806689171234829092188512431573482774742836711520741728083392479937012020783524744846318119469290868158740198660250378298697175088969194495180202487096769101356627602918761067588918711603014596223818477181920216220144798879802649195932976395707352117698656263117641976186953428182282574508234816413372074107604084972655294224922215728754084403902857738251854321604726743185788309717430482981663621868316833468242394407220129812896969582863568206224819703472474081721796075735631921851932228071972638830864499254960097789390862540403260213130303553099211979546775063343524448746447785594261523656322012757093292529927983169577313117752498170033340396674689905315351700287729242638354218241402114011320145961132755770362137755754034622752540165825239316948483165592842611677031031144285156202021311486604676562006482769463007668722309612090199924802628180031768067272018667713427887130676195105454135322869592346827916355886227016778020711588504636556976193630659899296900939538281420773486811101207250335762538360529931516323988872789303896692169354526035724036491556223645769084066438743775209972519509993285396649494093826165098887191836621157778351761427498992414407371927366264686207863230569970617834234077505381306228907548210936464964664270901859695255700239503382043226094299170504189707226211230993803956262420280331570671590314231038436222734577072969545013696658545758992263084401269046175380703020697066206827653914294815520471399302209152293654336913263576563035531622053085550282620282153012012877462158160954254178144115991641536863243984188151356300351883718448388877002685969979470306021438534626025559036465553466452751184905781271054848024132588683638912498678293354622976869819773734432839239239218610674397431875073041187836607955605681257477540272199819592955850395312128811629157108213469542252256072704576150149892196611189621136947705662964759765671555142871139229577677756731522788680860925037083534829168188145434985462451789674448089170929531904856438917532661536763609198599119558137161471241946113642804085337786900242772536565142008647483998595752061287214191663609791970958881217198265343247524903609132127226091267453670961553913533861161691690970481040265296484508752677275620997489846285123635960351840410297795898438440568904897550930989861019212326499024052549290049462468640264608346161392145367689246389276363976960406055946643790232735145597754909350245730425609359811417501206630510958748842898412865815765960060596459780915046918546705671737161343555462468939047286741022439472318607403483993992130704856385894901209527091486600278649567717774715730437000187972997677173505614124634690008218608337067932064929537181495619219289903116864370739245229440563434884104470820765396738055532953269154173654759042513047269571962908342086193754507776072629921854940665305542137100231331331982890415936667627523738907568615728742744767106938164804424806745531688793580549193223344864471885603266634356084524237227201532743109470098458432496627321905389401024599615920420193598937877874351492815263933489099753334370775917584570118639181785492106931807265775299181253136194912537250836925095538202860277963373244541229934899498977875034043439049460952076045435569935554958629312607066611909480188803490219289359876356507521200118942879131776181357550151717308527683924024492559769822433290432331228898270180764372220562370899973523294505719335972965680263658744781475988593581842032127355396803661319779624105605418856542143243478138231832112929755878332495213712027889692130893071475906528452718070984950284890471083253852673968870096563691745864800123323310816998561447934642317543556284321402700849421657123845096827332191883567426613650751880940412044072625283019192965041317213118675299188192922058230828760143260751533170409654752582276464512773342083567734380607902991675388221425946753739869455357607880059187131909270680175481485723284210252711963882441803449307620821418554528557889788199537158284133672892350825093266323595969021781270691049606329729615573719401239970142082162105634441233917347825040851852483526042892642131922755518358500047399634361968938484150010389897624070264666672025393650914397581301330583630353165341532665154613334857290575378764262282193902129226945037863593821503023556280669684983615335055929655043316889710935202901918316066359826180822927526126170637654348035459691144675467022868887459596420633170779728533602219001036878300817375878747477548255666923916239013874827127780364718887492857702190926787471631734154347372727792470285799401916345756435325512241053257233419041516933214148589450283123352118495790534907123382327482030429395504617772705762360667779183348064822333955276296732521026155544232258245084675692815118204128598751237325307608801638522129027304699507588636705367022454273802396936756245662187378431740849862939376250025223649939585988140936327124135284274403918552012877755262196439667168248979984996060478655833835261250680739240960496466457655584339258802423066034072331464757876114569541276415392931216896895938905994642977398603296850800714484768660618387193216347468071809994146428019674202659513036917571490855700116091523655036223183484190190194813431311081385330674328440863405295120410333951516503372467046764046667086236064447974931350924508520340956093054243441185470543901775700673050607695898232489946403121693527410042440749876639539253328477140925516262221686307454694918018124132241170245068869380735640247129393231329681518884647806717150564313996092011874219079198320236004958453215111896127284538938971117213003339289253684118660014647133024623791017990175784951481500501657014601000326801386780659883185900064681375962600784279478731358563854622556129217755974285509361567628657895420138042758889418825575533856232739350740686646803323908186292901342245026117527266470216724783293088168459147340772832254115843818503385963259186895575901022366679251065078919252435931802505698037787030030719532441492940538796901022089669553438566354602424186310625818492244371635768112150176427656311241231101143873457576013046775712410331577089244625278314585230300249109022021005749377351886052040952293264270353690021711290305724989399225760226045797997134130930779300925667880202349889844862371855160842350333667209214257262148626138818290602006089824473552874864904522369808779924695554817431068828234997797448869686631082989698901423740955188041899295771491660440427978352554948047281261232986414377851117445943672833581117146459479222306887265772009105592388120675536736596742007691298403674173852711946553777705870780494856263294022963811305266582522243572556673292293212704442827194475613696697098698544515668900849914670633653592036269237379063702235751866944920736531319440962085022544804089538255485093454458436502691029003532520529631211150249506298540671945184194016489663122649338017493064587502969304022177516632196446331489920812420999780357596220788169522771255380460845956431354172815197988056928282942016829490052124644767692523854995235102355483297038253176802173284418361808577861218007267771200395828898720390531802414983404238964484856975764607630252139816938554344555503481921953608259131084283113199605026789345252693305485908000132296897658830239459640709387170347770074335573461832448149324874069200191569733702685810770729314124128702957248161623931256597961444835498259979173898327954390316630320537985073253011997548070524390172701990440166932531963702251030775880986257737434971782620033345005795101587946635276935940267644435101717520760654779884940926836647499706951716996684264224757058780497318815846945005555998171450040938414519292932886901198478402327137323655782627985980666897118450069044583774057849056824323649237593552231209002940894227566434233790157029679483335623911595118175757456172186247773148084919379475675013443027546546634974812339140835031539755794677050556459390123962253571686896915385442177233583165634547434978938939436394458527849359812129609091160036988680217079591178873046217189989631851069723738022845226167417193797779941204325442538686015371624147876298284250354446063012505696104247333872292040551098287613309735837697035831696889093572498558086681364940560379517919245556201808725545123104092801926120476974784443388871323590941856822103992523487510737034945496423946074699383387240145596796992120581386871735520292414484954276719751796250126527748649182765893999715317834892875293595420030263118054811407550195138760217046992279186931922340926894155887862075808865788370418409684999948689980564266058344134861759709853413207371242359218750341903315756521846750268736494688708625875538967319615163635902750701859816334195814219140771303468194770023144926345489402312620087122704037126504999272167241059520752998549258141832901472813969203835929411618395626010557763342835820367658522355364344189814235157334132356835090807046004412062382551463634481089635906311570732949899846136944395243649616053227480391159538705427231949708992131782462914584680669232327103560621069875188867715968930757036214671168102225959300914893417782135145909887988298322322817776233119199554236468423532991394194876735272224815775037575726789437227662985577396784025707703047940010301638787325207230692065657246665356601652833332921328413556840906181598140067980984584648090805198659203461528239018963169166126162882758915444221285798480084043420910331605347902922515438760589401319442692800217304902744297416449694605663173294204993718797597540929716699496824660058074198522029083167939621022756071686643792667896231107580457354367697466967034532383446756816118511659498171424171519787198551702944464274155946214771437307456233558888210552482518534521633355702430895732649828675657962960697165619363098950016918050859566322182448833277498198237889873967522895853326358823270097942403870083867261276028466285592634471655448367541623862337351629679839726014277120800317089484909026160464936217575660349902259497483488633804345664302192559010024176406584364331221646882868892742314620125890787431329836512850783415401096524891728445548795196351637672173032672351597502462709139990828584184406635727243718880790212902815597896847549304337895961484354335593976906335715953398228400881390640547115622292276657603096529814656678740305631201641348625664667886326674839085668178573718316081661837687624296526229165064798705831039611676346128644049471108287950243288459347465224513131157811323342320436781850939535395110671646853829445246953734300230211560910162958817624037528927730022641620303177183915782032624781155826547923070378938372001453278040835931137634382354703230862462510079344215052710772085245634521967784297531215472354274669436745295721606828955623773121780228253520973194066151201822226985072390637011716320035254072121090708782075433713352990087530822877495999117383261217722440651711466217188183005016920521007400069931990309392093426190183129853796602336311518656932684962324546260742505068910497110788908673408455223169842053818811651553915835977150290899704335441315968484334835929984831687460492114395118402994237516433670285216547403612366252910947544307525256964712006235300736659454606158954780875424785073145172000668894479287774639566620064273481864831127476535208160872498412670403537552189096916018551310829713121844830601713911194528071531546715846220831021998319229664747813676801140454367080904061076767147433188010419583908632426240668590212044653708030335807268149112081473492447975461339124939655903962220723099887727906189826544016887822043396841518347249953217092163469481074627124468036576443531687766626096300795179623161727938935899244731977394988800732958267721398655239636550746790976587437509589749229041002187388467047141804588990664278900570561151503604834318668240161172073216911867737103526076164484503610258457185708602058852852003769303840210698689355639505954271360760777247975852787029608476999194795161738691358107506835989677832791971467187368768311911543395141557609020018384159789816963126095388270312812998550903591358695542087712471523836160178110190122586487570819717520072202388328880565005929030109748072304807761605561112541629862961268725628168519565043958888480929354753509649600513569967904727062854036646063510013534018444394272300759672048586947761126428827790652795954104739680248225845087474908231460649982104087459301646330368555808074417729965145407440455287362812402985135838315142775144533712316782346639524956417789211440537990474834976954225201114340151918543449980452105298624862024209110313481956416385954628384848318765721329685682487174054059203105201806617160994528247425274760346852789171883512512822752219589752578479393246345045223145471724993148676973614701442008367960511925400559795652780877405072647661426715548120322191826890419105527279087077282979703877124306593095002074160037269473174666223547609867823536533108565919649016992715231662930664460087671674668041743784752304215755519240978164705067589509021349573367253741372433697260868572762530525452303807823261351272132752506413790612655621920309318055496452287281111680360215779310483246028339450458033009499567014874988487497964072841942935888907516353990906181389041732005410570881438201664895535921764166632826325130253538610967431839185925411498059225363662656368503754240793720270143795760631809426860041863206887546252482720252925089917903801865878257147249208273538915309204120601299542365253891034433059236215986347342677516288381632610412379968902012736760036460247988820166281525616645387683389514847393887344752479332906185198070468142446469664871249337548765313691899556245915399143328961569284038322598305043339750392158266102431055875603073724782062276536127559191942897445590226769685306979702428220815675241927682417316761044141448469975204953470894908110632210534582983295239499931179916781295508792400597868941190881778019892931475778334441091172491514026758360219755903205734392742780574287471746761908209244154129710674039841633455659257518682802269740011297313498218130751733291025207117376529875240972156610226336844011895318439808237513595483338100510878975025749622169085293423099050132578628186994572940500970412186139405949855183116294414825948191031593139708092203335375217597996716280588762672583156446583661624581737174797709129143594486549399404570581050167549848576107689676328646591862192902369259679860330590990064275584634819379919098873104396014803190358379702060251391031193093628639585782738538463215622814358065998773189101613523944243758382026504780884515181329507805869851501191191860864692419771466567024381145615682468435833736686518613292348660281961730399682520379002797306746884684330463644273155043784943140018192446666046224002366348374857912029002120675632671915020697330560172327886671075024473537365180696027632063219135913518815795609719393794633910823750376204483151672516351813583235010506598911350377815062604335441189488911228964065981572866729290485373129195418005329257543646009317298373407798449848311732927241190112313333479808202984745651991733819902298334917335752158134838489520089657448579445061683183006661380891148407062008444788116318078065861034442824583495267187404544117742228875873008596480191376896785871263770521931569872296068634380763604452221785787999108689456848865507767896343135482664543292242266887562229793644652243154478740529223720787741908894062565264714677662274065756507455406179845765024315385821803884807813675600841383672748109489709129315507377543734763182153125518019621056243810839385120532860802254086299616132470193397195806320346442024113681207394567656947216102981924320835946489250951945070579075818706686027795252965623767384037352257526901731599750728520584835858314433129516776791763262134727420825622567218094522542539225128481582527419097580980531559300870244838701322108367359204140679979079269554969766049463335925899197763915367621985615543856766257322714763037175235200125053571631697644192457874563336529115507810073960949254314010249991110813290496942020565634451013358276041208203772226639071172922660649084830376656480808624588889778844251882999999712455080264653092957026874095002717128008671536032158425047011137967061667251489558020928755964827386453340334594142621000370807955678400578433136327396006381152963064307524100911587804688833891084594991371394311423873472953599571931528976828700900631242105914133366693735645118751980496812388642197885031156090335484087802359548593108467296048125936428092104455260091913545499901485208907582793007744456607455470092217984798916526203564316266251121707773883857635988726988276510852928788269378265456257899982686689065599176755789604382550116167571525022214186490854233567815882077965980856980623384857470549017311831718023012203542783107083636914576129676046339760795455370016308989170993666875934660287394914151190206035671603203981108100373893630203072527806213583035991386533416113217751258511005368787965448914949554346997211823328625018657733749359355901652261521837640445786751053509448911115681708023974028476603670750689930906174958252914265851456013820883252680824332292549824800698817121270877483766161674916543636683863189129091758071316097042223480130733842558577196911183325356435455272673706829150784227864003097655145966107465057430465180883243629999194832533300111439795185988561785611554769436488944527953476882064934670319887035452858858339632622232510236294463078118459243772382246189414070603696052241766758103022323626150071475466103116046761967819479916136509496731551389541945270518697139830097486424161677338136461428100872183092332394692169239120501601011279362356246197120265111750951636128340810017075068756649515770498690589084214864354547832175904321562003053359825436916420052231224809945177560369352480145784520157635131273916152519503875526507170075038755872574402212845475119201135424542375426637802178407028487344616114307566109817436049263702690262598693511694365054152862844792178928019004969792324242605744244779119869501794369394692989706882226888274786919565438987621348001323709262157089859432738210770505090803567336498187351316241964728195437983613600011068921915403317416906345523181913362298222425531268412514662871070332493282436424698834097166101591052949315619544364573513194715102249495596215168952568355783727843665701828091143793196099228376635082470937210606710518558102622069917629656139079012033761400853894205552524117262838631055320229002178399304289835266696408720540930112110438320105941939507906176181381785684839495454192908142480182225312854307926786975665494247106109538974882524453207870863941567507325131628451054985472669619500178230975050486618346810888986477075672500964421879320285936725178888972196177807446788896356318714460518976481903175528035981972214666025453489044138289295281983891088483592734897156709804800625263949811334469185316096368688896690340700999281878764625287372010837662166141418439132244287900816959235229351501343368892026978229061430123880619587447048640638506513064712008163392861784116446563420517128302536347405075161975583260321509144489828707996636291930489925327687355531889421415899526341303813986636814953814191264532076839858580967269630566961146425880085924167968055115222782572858815309805762573764221871462250023859078239099463729709094844377733446111308502130837355396649747203709746740589426488118857427634287253393804239178412667460627210580015090057830263559751241902218559163128655498976180257573889080690883281759146205377048048239774162063063141702570545725214091102793954577794961454910733420553048072531308373395164206255153336163694249376537406150062067854003647356962806704826475440804868079756043646528576760549827764576519261182016022628438302945335266831625039572771219177810673855698162401808167352170211242399338670225675463212889315312109543020473501764000893377119223461514870451777472613635252891206505800227761637668604552116768942251010990254789488057704232729071581996381417287610763193685835304255360953145748152994873226050685423962505974262458874180292425080633598061125957429643882357185990522819345568944682509717687830236553916353173524725295459067848118003425799737875949854889124011447656853361283090325142951654370744020168387279868500701246704409292675205099061364246386110728011292223258982186054675334677323037224512619709836365759402873711924294942819544985939826641039430812851572297550540259676500616523652291914611842458287488738616147079346067391701528690255938694286278722701205051167418965281825701802798786001691723985194045722111750692024890951155101198217493185714816073527010310208488027234570495367218865163189851805584193843716598374100340472853299970272788111436747142013626129403800867711492334181151607841465289318343505545781591566360995394918595414717322378673997002995949823659043210252049728539773261991690921001395562039052650857786076487651323795814377735578280536067168835421159287469523363051401357226547397524524609774172731070257212298078460952653458022019327155431202763872668755081513005101100053579484039693372390180463354956711677623743496827769418713581705739805613076621159439894034979825950376234059349981159282732328779032374837731233249339333434451868596938371401312449899771955071623614542108154257487756030463129583621796480287198597878625511522563611062518002293556058294211475340336633481278417904913365501806362580421161014085206959252074365531828849190338577487120829670405066259430570939251575182083857720058518435085071309692578065760886969455993695269845968462240477842629203747283033910790750935173937421225478590262313279436191329365790652194498640761483828847248974444011112330952475293932701281382484962377991373220354260852463808733491485754345476092602378239224556555356978404973072659510874319611468222274667555646877995969938327634585492785882807979308665661213384190420991988103115371564856649017764245691388074657045089376161302966246543435103879161490419368059733290925320705763913452646849292892321515110418467390464647794881241608671418069790658160577458596088946708672445759308219638162149180481640781326403051799621344244210216130643350297152665529751501305229120497398544459643143888290694169256049533981324855972866595332674096376651358231108783898366532562175617368829289843218645401981931148883809047979340566708917545544611740930509533427991166114119052304375262035971050250581826898520948022320273862972144383159522297592852343042629798694061675492983518101618123696629151997024435628356828947964150524478472178984896404173489601156888351205432028874293991693458591476660298748778626926884130995596265640935600223078647177707145639372738774985752676834336320221551472677743963501272678197865527874226148792010740647755514856718262562817674314448282965253269744419035054945959742479315567983750322770697749695549129632283688549510376996523305149186505507580786775378145243944863255872553872970714033500036735696823541983571541157450059438274752373165278845753259001258319738912225356119967002314265372049103851986249477261648023571023991245623975471177215598789217754723525728837910383634337055119613306903281098584979890519298398833767940981973180153667063398437271162929375452810601659093132630069805010751061222545112200109900586338700753728261730837663087095916351770002655758875272675618119536294778465678307025162507342876675638343476130705943688535023125990417318153714611953227558804013150435529593773269058948777434587815030701477877242331371461945751145091245871075175173823169052556580376829076201333944696595052079977812817654697195819629665099094349743788989391759458288854803020693879628210077500291826801136324707376742661738570060902664762839869924388837848422885853822691759366608855457923618812682251032257951906586219851500881793606251644236728693983070216347769389208336126740231616201660344232250277752453568628200598707934911120252710367545582911760666907426333426904980924159351557839462423635141238625500410372367839716541706991238498289933052043305918015062777515518664998139517026228152523017069497937447267164392787129723772187165325440027197188380582606594487952238367440837957160610902714824148665259350286420144398337727679367581654351014548160105379255904703278066723261074612614597878655583396926223238804195479974026764824756735826532232893956634023327181717659062946452633977889837179458291365455461582257795941608863669165271680126475741750493179553127610247885071120160453247791574176937459931714121910822444718079170090775346806060440354265373402413602160399944625678762727826832325088050891953053738559179730372699327549535859043474483942547348110226599546062464541656397335184870818133715890720387062772808608601636609442661499974154917150551133444436091141568700005799214810396342609325240585230242757674600111677647455061302049774059172568327546553168808605157758100310897263455948555033625512569570404990602123609862385934327246220437982063649538611632881661896875633035579046074636138254256318652144986861300368871580420419672545113720033396233590369215857936514362101654947431701445119647147132305388139470748631242615137591778950648805360888773226957225972102479642714705884054942781383762547428521716826196283086898132126892893371482394067410206380402876288111541430894952314152329071248713875232702393744616099334261435729967107520106540370324977477089982527561220772805959874707059656250508179194116921135210106307241729150686208102302027150803954649675677226336496549857363609650618808289402415145694636082627490148796417357988617170779449252806351967645640112474859054445910682566524656856986323641558361617426260419448885114305228541045720307494839671017107576571919329019561022075073810964332608683086556322526786813742427286494398070667381014052522026381387043831324126804635710016210760802557432514086545651573167542263693359953847578627621826674619869007343172976260768122649617116058345717658245332000318427636779285959112805000516072951248752581476593473173882176955962847738271875645429769632486752539140144909154893052140996128877865963465971510954011855482831998949191619891621123646891188664944892192886694109529554377032765484677859982594111957875911444844663559096163053441830520538493107000824289259214595132577548683860809867893298646418915472559748194836923526798679099082177101552416737932910275561014230590368506462101291768426416289018646605388901128576200879566510157791762606865360133628351489615536314334047745098977211239136037385520816934324631671575252155914022505953820658033898893905113403493718805100183307157472334555532642544173792573333165014393706292344182680223222600611834050331850318592270540815688067562609202470708492367188183569562234004710423012652761781007509547123581824335457581890671239474221099498003335201103546677534414979682867546995866192618365461186174625487063728570211088829579638513072634212639922097019912855216452201633127971185394614182253039255229550599493314365898076316069400794057163181191578769143107618055153604143707055590114173578321991408892462701844074565326990188487386101548857170428956578196078097068987138564859903302353952188833630860713736064546809335511902236872835635373562315091432350568029109889972261765952908457362474690410993095278771173243536091817398248718925051061255976362719709434104120646956557438519707497925683081908229700266967172232566620887840702259691161815461367277788099929152827997497456992679890951239041128308396237692704734479982071798669052642741534265377776286204419984551174447101905502832780498539253746264648525220580266368739175224659838528566162880738887434060052739555645549360414765531883465702599619202120013382927536650175178528704379262441176756236623481336295928567200779142923238049873295105484912226099628593624178991572481459058404549849087817853400697953494031621478109015692629224363385178833677993086057267206425368186314951780466778552788484353525404895235181792539957616370965860074430883384562277242999879609464913321698177820524301369415409652806325753299275264357812096204346263668511520649401660971262860158322980094562517882971054025555089406172140039858518052827215770222821690759193021029020986743777378975420987573495648578951998649409563640478657810818536504105462309169295464785087871331379659991634570396046633271570682993834372124015128145753126225308987910540122579630533658758919009699943031848352217220251361844635966466495368382358314723683479696290456650442609869708643618697749259430341584080255744670590807925736193550097556301573911251063672452522361664460180810364258770236680323043625516211889174637562843807048435987226647479271053898217516250875269415133413791976758907900899151850221200951529775320809423029344694156658554633777294903552804280497168902515027136317243087741200636852452704137086630371227199483893755545625887507753567957263699332060800917386438377967491628893248581351826438214330696807949860511142527959999273142852524378616444005479431678780358301615288092611390320681281086184246759706104246127177947653324712661827763217364879197322186793164718125919372176896783165377130683536573252824974749711814087432741822693773816406061915768150077382048897191615080339725602137110607543698029158350999910271300150483178516585278676414072903784993024295462219547103669318842453600130553846743870960917463749556880747637925934084952864137843149138254009619742957894706099000210312855703425849823308171528768502452181385835402772985842113287838846435190292759956029653517727570309954731122300893107754778660574304821188116833765554108168950979197286810831156916028076570307093838314163193390749312618913292049522982877457520919910028197017869143553587080885259153916676462892857251658463770908428395579338070791601355597725280590812991204231933754010699643766325392116898604957582148208444323936031819202264972333797987035664306851057724485637101693715099364077756144214492572502292956758781060255670339537326780920623755849310068613251493338463252619646449569328523494575371293850955570889659521954211553730627202250084417565959693965517057254602154598287583447348786984535808527017223439548186915803996360796473913692183316274873135184911905814227420454910167515169025712744291917078227076751724420861962748688363936323390242880401285187698000476422380963265980659896538577635610862182206336438833907167038752618543402729031514917906436536985938691217788882857383289916777672268210064263394535333537198381869587301236298504616530078998250487475786590423896344385361529553121297289896813808893908248461965858462063856497856850931028972991624811323169118025985316030998989360200758510585205455200302853882226305083594479452868816971990096339090340985645064257727945416972810726762639734528807348843786286973542496535488760059065959069158704858382054983801472368438202816262627322203526279641308134404784661440640762799011628987209961991857439536067678522948087136166834034459787743123390500125119854579711122917797047246157461270594502102552524549239290733074782968524010155970449832586417432559829641393957467075539288748377332887874520898193005374929454944126613356054038061581931178596904153516012672447716860240430161314954094000930508643158793721791079847596577499287542003556354549806472478627068555772860135382437627001322390511408626382260980227544017543640560683680545760425836812018729966443197725416550335126069946121915110804971596499849639980277760324786905921408923007523680346228160777423452589554753679549311607656736919626480681385257599587414024829936673739352680440412962238742969605834431035558198633040939374727459616498419648078449029944969825807040550956254201748575298457847212588231940325837921108961434597842290119353955423457000156320571998733639207042887859473569326574160385718697142425090149205959624483791501562173826299864981920503775057250185890345828184037638953318464590445933368559226203152852560724914159173327333112437177270983922809512560860531721669230463192887124144072015941901136878101150927066707498609696177038009910687609023935056926150575340923236980463634664054872734044699137577406750376297384281759378984230884141082066680223322452862959687336022765598720475016493277664250787837916687350995753156417240303220292781192548739535102702065179958869040292649526899400177867994286301892797814699465384346488138741267736640819057081453015482067976719325008682923578773630975092283407302118714962773659960249174598643890214954145783608623094641475353709760272970410801989375620039364545559259237364608076209344193169155027464857819487414775487560435504168165276708054483169907944404711971560733579718485465695456201434874450287341628077294461251858732707473488670092465463959526217764326472828058075954367730513994050071799845287229293604939118948529598202686966085708435070161221668137708361188386747841603296578787818699509011115440190535673423725239509488011782933896028480846442569753425374762846951960007146447484936129766555393629994029039608059626537573867429507827071465649532376126720017668101913955245635799116353403106237629299456837479596863717908278941107648175348192266795581684530461230672471697290121394307094724807597866447719474446313678566689292629422617755924487966079142470634982381923404658626818911816002339730984761094044226123614647393240415408268856349433455842876730039437974408042079975446886376334379551511697575160495817725175069602939358427147058000726822392004351766034392084454992730802590769768119036234060728355162633233908006386423964659356186194604396312449523431426382964426283708161839777843382515931542155601338821997214419772035278659583168948783469009495574692668897852242769884819997965710963328339233166510400854136933435565616313272042802509712889107016894556250946623493889213962819653696907819533598575525648706457632727122741912475546410648146597055428067060762778171764024202127963238889497252423129256667208818051060866202646523203975555990653040553214200833898357552439569357436331778366215073908706079941264332674477593352337321933426194796692669598425489242532369266951137650204588650420204699622407241804910440952601293274319141059234142431922133463264403210974295549986766973426364393901498085597977483646508464679849220936604232698663827451875261705603165214396449627975155546642070804912212809993018037484745882963349783576968783113075846842971282045473225556908387875334459218276448447180057535172281954772626997016824798195238915837467812653221708220788592718772054947064687670340159674970001294849075410105741868523194684894810251073078182855488847594383550743044142205567667090269559494839732191114814891053266645919161605123803071914568857540951793712371610309110774100538519768841496900664089029225161285005952630319557347952915706445404925016558798007733844265867140558195183887032728432445313728830855249553179116022296104026418389961636634194236723562494205065079582362116318062503314347563782855996126851864629212278765360073106694561134147631971187729986984022191552604072640861969628979475101931397705769026898150273220759995790328249484057557752527149573281495954887448091034600255803998523082195711213784484432356583205181537611323314484281744673771158919742467156252846259860155014737577893675758354326196455255560623507935477546546998809163608973832942734041438128986220831410601979775031732640030038645657895147642982988185310350403037665149938432483548054777004000673218142649743129244633138740289961118679295711392399008069936513923241436126005515344599198192423946091368465948622785344853198284747329203891169324931214831420380561646551532534666538463137746006193442214774012883789735011503387727427240261875097601718320534976171565007346942805105575330466019593152358724297617989925235794596134498207682156007442621125852366691603878184717917518463096659630627059048602992067438913830707079696888860411145137877975743620315101351934834549273433536819473067908324773013952992311934241093847312734380081962829051216515260779357949167378457596684747890654680437915990509872875571897834369337950662145899988850482390451242900224438922669114334085469785623851906041528480013443685954844890168712528034280681480277088326730532476579402993595937689329732318192740345622065783267210617931157530263691390726771904574443072731363873869233654890643135508283137421342058323024395417158727879449523433921159461279031934605746260456300235307427273994121449709472083191477146243872511507811176112984870242066530761923648094269274059424745107494250456051357849614712834479077177485711975359675190434995500022781772348856815572150169568053540246520911593629731605728731518310069867093079514436047320423367351320577296132604024153865146866439465129203938952648397970953459329375113475582357493509412679908780382306987455646098084167420375413747236320764984129005945368557460654407255373808589839636638628299862131615534087362214616085400873742220343223897803893283374486091430841891368555947191532885969731013476657936766947946951816771664971643002872911210831729598409058052591835507441215133397346131957888808941096589426595546141587718661811328934011555324493729476504752795850649284671846275931497476103751726314656767401601820453657944749534345127260209134343561208847972014245224585295548521091219853156773345846916542298434746022870598654228955249314891115315662460733522048194682397533474682994407355236156866186689319765562995974618450912972255386080554794648062530499621565131993418176363378892317083000905164967839324278681765554855437436863602483372838661389555848071490359641334299511142412301330607142270220896495194766419683796157531619535035296685653874252998185205529159619881881328363853378199828148963860108037218511884128263505612463272380855966632456988788545739785566247824168505437952110112551909793634604892378825600842213087547802649184709318056294957563492854369343968192506168367964823424341605498310503436620947611673403140304284184133177818806393155897117778685601073608506197236516054371047168452850898146224585365951913423915189832136410988734550752976484487713257952482104521914576856067657877598031600821813876410372647409927035759195498953953454826520124306283653525310455512336515624799909568763550117403202530300920732488694894106545871396167922439217577164663892255915550270161638203013951911597511434470728323066390172470106010451670182256712726453624988485810538192965802461061190846225902353642376849177068164273663783914836944516297616114258329500323862173423347472257899856176741159906438242533133572394151445710201252242064095055642656404555537684179991779429835893522572488072051825824949478061814100581100071271539561586248067653451718669726359956252864544044361840193064789887820512154854863900786672612044410771454674006568822327193861741475588860235602361179707486317082463045811915552790604089888164841476295889229907184836214348025415812139981816537921360129814797431321903630919784113276065740249353509182434146265626530026483066087447644825911115633405120605321710031033324526208529284385102626465485472987224179914078194645206284252805726697115544017920253850890524900979480251981239802300187314520930981681711714645367635057470839772673539115859415861559060280548140357555189068547725816832553910422358663580306515315193587056535211843146949650824955100047283269059813439170859319302011197951345293579784793682559565769628010075243405072999081606097043851875687766597278463497476723494900167560819656763215305011717312609668435398867731485357645579281050913166893110723526242671327035707107698754864036314403151270075887297997969606731037036259158062163046951297471147178560591367345145644674877648572549129113638376811791615579704448980440400740491662982519389530792626745159842784688802121755673569023852806230228438776350458549675542580564344261205327006580215502982880839613189921537896377295796158159016023578955317546946242588805801060170840233148614376079337353861259674678387736259266497363031817116239160684799634281025203520454231489041508461149231158055489055164875599390061630935383167033580617994528147270006995956949504396264359955863937847777852185003309880719153407102861382799420656020082825231398482328278263520294384512897909877285849077435883668003301776211287200210627363166897064396928814285228804349256538606903900939120750652838913617814375817225360661445664507165515639565355514974333890530661377904272302057303571617466585812254838668356070617423460469139724179195168779248129671797519998625078088985069185338994235477069954380273140064068480055646151055407278724681690630783364223295571936705471016355363235140799236882001466690490880778339503975128699557994632434115100209376447348786251044395037783493436302081080083428226336850583880864046856272009106877533963420218871051174627427727479441872048164247422337602336865452463625441503274950517827334149925287007795444190710672334457976959568423993422114138724371483261911933070928703391444428966891173008928672175579262001400823895798241132420032267780992386820649013665150761965020900909339882612294954571836410272584432828296578393587102878548862900118136329859402259500053576019605666011120412418165035865442130711740082663054014360166324617126429565230376695138941729415514760874314825560360019553455626977016383155157745099117624612032123519249899714201455220772902249764419387934385703722179100808412249750176173632788402213478605852617999257714531454628852779636818997579766583298987809571345569453979690955761137939807160078922707427196242708481489812863984678276671204153609309304917120471130400855833793800549723895581078169902465503200173776959478032999118270874111725557116320699398841089525331520232593099550928584590806009705032709001987376680345338683484971953168487179802097031772727519521608396874081378886891687462866414530459066514173443568362173388532842211371872504248449944665173889450552002933241025977751867275165813252156829046253814943343982940366332536087766268296979246065367361804634366380495492900948448514905585771036100112667813072152901314700429061723631586099542384606755860463831353771571871894016002827642250692233979966393701532905423829496015551114899080626421113217705513684488657580080829251687283971277248245686106166703386840892670259305007580381282296926833580918057814496899041726830865254387378262495426870262200529651846476317867841931675331099462722443129639002332210929991934050376855675009433182998657429636558138789342408044261736008441019718902097503128896820134191203590504159900735891836005130387265224491309936989433789179156290507197270239846252852110526368111217175737892255867848039022933866676844611899544961613671304286366839394797547696296139859485239009251720407617288138845995925471525143356732333780680798519315215673347326384108808001882375537150908894791520044465706935883303949310311540997376221581848905798516615696660551389797397655493836633444286801029640895644659936303349440177640631131111934784154345063883914522966523550560326442273621160500598100478714937798397714614788163435699497357697581412565679201193657181293835103891255603512587098401177660777254882634211412042384263901403333622925758346947567921413895819817640322915395956207897725747905167781215659050340550578824342355405395781751152495919494485431125101497509707853849123871104503981485932900840210725154680071980702929188575596298258559937524255008254533227429138733224375820961349689946300234857513591323255237232018609681907709367368418472462219936036038053505295849526992501480664074347182356107932268629684240688992692826406118785055979592677147387076661178176867000308793743575558600179919860828922978505656974862321515088623967555926858388124372163224324888605047611733786346840676089539453592848306382342321377946015265157773224839898852143811944274315761238861161818266212676306988935772933208163634090286006047077501107622672982144048223739365616307260354682383380331654132442880460678458478677510664543112109393720678865402607435721902147021599329517887431101447571978430809355442608410298459120443725440607896006521282969226885900097261307096753794733555170034159688855753019522872556687121323100089977204228286385151933075712412198203898619700054198577377486565857467759484417212873091646529372492446590036562733169944804215541700157968974062872749778640873930879165183379093939235981350251201777869450567543757487005635503972630710946847571935706419902262588958975724435510003592825718148277594296635975606736313548687619674760294266139676935338491501049993679768646162746933445308272897575685745354171295655172984055974054981729579407552440293362081102170113280649738606036303641009828260958528029146204349669822772176278584944148576547495907384113358804256605028093273498630680638459967861901704844100465458402221514369397758110252755407092772214710934359420237605307618010408010804546771459714214086776248590712351091683193379521151267544394252743672014835166512482152045234256898948553321858998629972616381635181787453524404261500864370462405433779244430899885041532451213230008855986377225176677820964541159401184372336779978701550464349379399362499063859902415250745757829549756399481346006815453683479398517613459618788059169707747975766531188460976335254897395500352724571130388198314401915738962575890938799716420777353427014175910520121527085021026557296777377675437090961868988832922843445953848182875451383397819711871592023875116367963468071151404857780945601374895967813953964759202006400426739206579742916796134339426137627205631557518785232983063450302056915055203079861904282210750446957192504080569032590191676574882971640262114870260770974390436158109218347545048267365023561809043937141263141488280875441050875908988410706505734039683666664108773224605378642220924836350884255435145327590089544285495199620181942129736970765103513103815236966918925294378162476484916811958613597094612952636167691601547338642869251592725732375221793861830133530238120447426975795409134002504242010972028745389792025325381936647844396018728020328166939362315291462808887879201584375221911643007907680985072878398476717571644795453545515434592733125758115273806701199158937515422782835360064968631736187821724799290879555404295966225106644440133152665551339153385398864960601028700997124482302733589359327427343803570095298425174475893664926797977018388456435379570839160942695231631316757405742555320783709367804179856904060776141508156384435153768073018712827035978804857116966445739201128267190580169566818348146403493908095166816890125046500653001561788241668448187185405320278277978140103842826501996406021111148704978732757021944982241057604982681350176013588268352158492634975304445494620517683953037707902182018519126215706698830057562383057327253457344397623685367598537849389765988622073269226055026816421761758416689257805962995173291714236518948528352039577648154565696242223434124487428021734582283144221873700305294768112968019911854710914226877276701185123550406020013936771115058041110167567791391337608146627524473020965303183959411510713094913234645101505668342443937837682930673205595864621055915846078513348367883698902836559154800393377453470539256186746757866861877775831893847141494775605826132014699446001636743665974501072719564659483371140629809927285873676739408592137150876785591385813991212268749447619815662485228646273847627116186752666868086623991484630317960729354483906410510426432860771351317510933796301524122698959297890258165541229278523180911434554193507436065432924649854894679170364144763932359019020997180817901246926063107563268138782805002259844792749801169272038592465339492252131073355629894881706544277908711099942371844938488498725591822918115872727985603298307645716978978719220133201628677351491072221675049941014145900134291318212504720646372330223330698277641750194001246354526088804839640079416818797599698676885539847400155825511221185543186444128297155128788559906480316326720371383462982689525753897049460205192405547318559043338476332245492508825661092948521554683571325469287086931670683121764615790866534955187488654877524652641568139980490572878711483542922168390314064253921566586088465346786303976021301056820409863825728857033882890560039740094103468982390066802352206858809367947059798976556362127373491398605773551677152711649450821401374340023096704031148967907202273789068318952114738555324026525640766472880304863704105066237450023229582133952196797698544655449666606173342418683401187362920129878364910286881947840620339707000886948419843665612802764266416746994224081405034257163084283127397301966666388862585921285426449713803202685585815235854962415176706921028104702274577314777952293225808200693065343311411133881891755660992616258743349404944005082527713229258598820805752065636555771039057603894503175618740566092224079087750417200047963275507317759747752599337466305095877719070675924488999996920716969146170662137404115696350530696942912224626439286421212688851284586830655883566128726631945884423218129994185915910592547266392850176475412310560015377207432520676112839816344751635916193005004306901483645287566540565489483591561885563390915426520896245900153262163107878060363679755016136805457477049630325423910478227923618153798747477368938671954563235489522607453267426468722580400170002097467872944771217476718758251250095493632839499085448425851772457252424504662659363047182685468133435813216059886876606277388080897822662913253872887779147843852915718352218233332954075130438809007735192056213131012480722405355518853204480378584318889347629591698154758776608733800601884482619219316728499069908150093014267149414399775950166588691570643670561002090692800809088074811096859088236709384298106096327283049879065596963660351538003067456611438875174573501719617734965346138998881788368647458170606633866316685476895940089739080777759844554734832085086714799196854796136666743621811538122792804325593456792065319898923263102874689798233743102627982654267669952897733311675766812138426481464220445480918213014855398368403999110305492239044128297750984849859792879498354244283298961175794056013742119109600261639903669855856410160383665315644580820708969161177244505098386813779701765926728372961176550177614638578804025740917646204406686569283702761065602017528021195138619211036315093705970577294453095874047336273684209019518596923172605726413089955284255816638892498360308333002620066285639310327323954290995765010269082342413056298765223629508018098315064240542070135886327671266815942862954400335820049918874678591914056680103228089639556773620422118274958603820199149252797806746830299854755963227863287345518796766077707116781330843711370126825071459493565243195616296391903693938719717697326323479654230993472022872198395604338137989807522162246471815012160388280410642805928234997909858388618329047693151120753808768911256487440184388031877143969289330079169581894987871778396856384781417348873740207740018157471851998863712858284591590788729374060318062320419951509455486864833811617985703325045414369151594219777018610216911650271192770326645052232340005765712220626066188232962595173810812521987202477212675202648132333415934806739854392679093737454524376366123196290767597794084319312808062773590416523345310632767630480074212390104168691236999086916381090316422589976152069901612852098039625141251342108819886688546029944248724301349418539525464967901992705819764560437754745219170901387562613973526317238563331080194744485869203430222187469442774779730882347935304992992640518987010384020132316986585506275726654623123785286885655974008331302505232551966147932928330843663898164606768785415511649674674082263644885415137221391715968227880055221525421537028952107391144158225057927231220295285966845347058262888190776484678370220817884623417111062086868027443444333794751750627688319947310645782556018899466326689388328470664101128678772044790885673723637504685140464273925131013452081404668812638674605341834132011669201893199423631497927871213135392701535087740741051485462912839912274500862889449163130570055326202997309032612446539617076244770753736827817509971988153208270267880866912498932776148055087268176093095174715276079811758776658475833453798949824889194342944889645640844620036665769332168283885785759774940266018142614719144609841158120626286668922210290004918621327667385111463565258479365505691524366604042371380761749925390556536518776484196243743898787696976114814749516183326525195731316709723845902195217235041189975134644295856528868763918451168970817049829560573515901117162254913087914381872161637488232627784703907391021536921390797253487634830125865189476921165511151772764878008373382525299115583538823993587677721353202238440160051146353650030971113877804147138820069115192984548909295738360238301577605447428871818174439237683336352452136764352303314553132219444872915361282936014821270632061977400372645916599065735331447008025079874993476366823037167863013290117133641521480039167650449869619621936554521119703685140328090038186870099990453270619240649760380348997221278537300406269945459444346055110635247281803250683510832681193664922545568284467948965530733138342396889233800508443998618708675396243436467726705228814244197950004396116855219478295905659096896341073120774519717668398097060615354057723103392417938891969724390320481760259327945008062220524208401831372750840957960453017043016209898072913866899106004841976237154456672123861648299894766016025506102076367796587341097895662176855681342882547581599484032562956721459954233238834410599385149358084554361341597681037876760705653230690188512071590348191299460659125795076342762914362578856305971973347030900071369575535790325329057695777201322362654258184687300884130070686586810073455979771644473525026510420422150210775680698684153720931558421249890965013747096580468393132642449167860072097150883224307840455417215621450776394236069471625335216208781959986870864533593344255981901029926235789270392100495577581548700975998045796171082682081129730181911403943228383512972925835320393700274171939550953292681484447736922209534441935676106001133160422856164811733932165735759416013746579468478388410076297249803109116939689789395787120726733027620752378955628029617254012819988829005171443703336680369040899877634313427535856845119855960524733483070469233382238664896709232281963203067787911117061215320626646596511501584172956058520102523718228539286411829892705562093876640409260405793415432582482233974734212188128564397174680679023993233236453584219601772764878979178110036938242352182654881352230197600465611025104860060289115220389124768290373633854538868657400761834583910376331946904059872491760395526959627587383098906499024385341013420135546900661282503604974167319542984231311911866097478737140909775590080712060157853785621731757259470871921844827068055857710567426161164899698483208183056581632266184368525829196082211923396786832236066275810154296933869724019491164870777315695080442773547397203506412485951142818300306441194122271341479343257311930108952812415523257575242204600165439253366305682776441422443388376669314576240919439861988753754788990256377673310148853078951509049292957627123270091223424935184467035673745049522031806899266146357409289029130981056394533919013035583689901402058872240562843017225166608052350306493145150051123896768710825519002788088039592853894365781602203470189962781283564107838243411522492958715653336128856641371040096233153074423405929144498510166746507830528407935723949394350041723335542390538808388350068180065884549858323247118263456372404238524249749321216082078567676296467309281276698869736693276430296207776299210648582405094767495490074102599631388898136565600538651926280721541462955318815636123525838526723262663712087546068758852331624577966644411063821841223445083777202233486623479054316388151906202189936417937967156797502469465503600692311445527739412389667350771305180978512246216302972761800535104120342305212972326129199519720190924529130966571979921931937878293459711805250479915176344336488506770721006750437624477647628019584978184656606000359593455766975608017527535994195927427933630220098588556127365947431529817821699305487868888091502404353483376305201776588210912454028729230982925782274583210231237353199804796062046925056767776444223591364288925625747191131404777215913122056847239065913611162793861736972098638137398690444017965989278004874689042319462328142629874716307009739178542912931649766280992243968324692183186669257474570142201816910465838284211071241792969788741443570462281405682213976513833240409806973352094749778192534382615071030655350455056988959889797503692912154058513075407604252539666424325380620356846125760399428676570558835651339258768489572799548741957866163299677777286760174037177301253010195990174841677314346595322580492498506425366822334382672537573241751470527737884386934099465434403525559955243834150738805860216164449145414381538116796399133176892525549613968139125491464311183116077078708678125651590511202777745366537388118650825421277946336706249639039789418263112955203938532471563051643451837234944891096817179000995933278360966666302479520373236316806587226293594388341362898056353968951388212451156110512274724208860137449287118485726740479203229199341004213980148475749621022308454153126486951212312195106341980385640716664372167702217226804941632436342146253390775884010901994195988001728327749785567950034448362341001612141936404127672645224383470376321820024105613473071604628840953189998557024358068218892984543314423764553591161911557055422742714081963623148678790444080738593008655902987424481975810062454769894998971248605537706624918493845650561562217224984462019642467227333280350497801076363351966657947925708683261204229681989687627932762489667381762867601648494589778949199798969863591028508463583254453581919371819951312625133927397019391498371428949556573547688430446815051061309916956028317292015657378726424399525057815186376952803826141266250229928433877956542057815585576309716588480669206342795072355454922807887611867692992986808871059310190477157055423486528622428606572233248050103587329242604149667518104451638640890257789553503181749450715148551473519886341327806808928905765680278832544694224928705001190387852456775220681599156806459925887320045798166705223548360520741675709245721934070857777787517201991077077469301185920806930813174947994057719327181447007142250073353013264819226558337419502773225093388753788443353663470527388855592058351889221203236691875327863819052993201337613547145212298079300015057511234576131655468062539723267900962596674982735540724481075796937884441163569389169666901081513377013636342643668249793207336108926426375969758180975815832194374181250317642336280813825503259829359656559380597503425864185692978154521442014193477606844212231000820727147486592967438902184062405735700842323048104737897705066436452342805839838839492309080385120171239116980444602457436607681756529344580164782760129878560218037189468581538966834676190139838318820984131983006827659055775677034277647479700825619099927983649411634706529791016365587817677191677315974033632932178486510519867055032342383719348544101338366925222156586584687357665648265311826884400153048559931151183001694879553671804786669515653804791241857631437391646156805002700441982157851835925452239975701765834842618716146320814891450210555980379408263850449513932930463592315281176862695381419062201676625321200217313430268399945979823606673813264242192963785045099715363906131398917402918004217592182060951223872804631144084925530847843071319756205183979806727845979658352986625153222510375936472726056012369100230123919658582342872580175029425994144214792233931422774668824608823957763031261476867385367113030405017361394635988535237744055038596879983057374546120641598757687186468145532286329271215844616466731975318713140810971284067701803890718816232337128741005018332337558369523624719027070511528246094722512678773224396294002280142041349137711713518639104858714027679485170009604566957164096296033522489413075426768065288119904832293594058421948283156628442072586670339895431585832802655737352787554134171876492886655373512420856293082825135560068925410596437681443866420873759195149003772604957242313272304810363380917722731879910048464082672926771473915984454220884817408599351339088724408213953881256064321077619934215908542142815018798939618502786827842183715963674628636396817188458215894098920659719401194751392960411072200471259079697491139375314579056807318046503804749587576587615043166058667215397679614553258603654520151443638768589893756574932320159193777329311841350123074281976092334645155766617722396982538044862958143369068460613707781685590969776052366006710300277030181865166466618461459970358095111042023460423923569909715512857959628501370744252028488158534168394395284663887818085164663721846578460276342430729002368890949331637435281859989335762095966442958936471188147294131141756190687728177621511036971936023852343853880681938955574962057447847529250684037843756496831998127078006198004207209066763736897022593501341428605977618698938256715384665771029811895883123983068144717988038672479035460772274288862086774121889350072829640720272551527420606414259616838778604067338313304971282603824601130723126505318088498410233506574272857820347123281216303702652314522709659294043707281775053600390807329043131149390936287144754529503055915771802540841014378306237198440635554314887752222317065367192202646767228815191050179675681990343049418881925281820626972330600071562293711938745665747493422878307850424768362114413809660443935918301292080886020780746634237912979045361464112767401104530749176196118476229010590993743086342706601153269474081683044662769745235742031949734346165897694700910018912975963736923175640039381751692248674378919249585582269213390600541254014535760080866116591672355307824804441459469669495573066086495904903096024117501056364811184677376544225281954586801548124008557432329922730020596306977485935915410783170273163181189581678386108183051317229809774466000078927127328605275407283750533363464981535303712436093010168407747949421266657917799388669846992693037693255910741356070236785141908544343868748044023017633789249333476137871442500902897184963105188015703834533689649539564927586740919576254942602104360474653285498395729318832112963798182896204897249364326297084886663786568491161112808380094792333817647747929381144522632395715727159954647887745607583278187857351353546135436283468492961540396485589110141432509476913908932614559094948940447516205274014936356234987338855385813368178199959558620935299365577727765503897660396306729586261798944370646874418429722425596294509390139014368175311188962582379865192466039779782050623667423482644682141537081306195844645926726882296539076313804955785130733363382959321191691981350277697442106566840265975646482263574450623953434298957665923841331180083688502347983626138200484701772414477533829564993239556652364024234548457010041992753734306304252338909149947043476831948520990507164027820455843742818919322829850219050062522990325451921879836988894670918826103223594625852315265960588717487007012463500759303133214962589733150667474666452541976576349622530558388670310336415954908291134434843508590311347184695827763038669333229997248038862355468410489600991246790185762412062284098849632396184663493593333201627884490738651470760373435315450342485486819921799209738666242345945442504255987857939240482619347527589120577852945405835758214233011021357689217289294343279207968902586197579354742623415658631927803588362090005931398732528082809967899759235005049531727564674732562969384669300605383142151432417401979245846527138993205269000913003908258434861900505046501669714169681922772639678970527952168874232927614169073833363597133184193695550051366311061579507870912456176967954029029383296153439225701752146382531326281400387446534084998873959418503610605609496941171599781054947127134437691122098336785951291100066027319293316279492554565935709759357579745365500197971378984969811801487997870872008745813555808914184291412723386673394599847187376427518701121991659404725746433658614585647320375072697580896621407727155029640210619157769828175679147429270573193156996871165606425009590799022780754570784776026135122614609184519486193490648419690880278053908141513606112473934449320897652650560500775202609225571388037455993907429456815180319843886290948373387527740858809254421791548150246214209787595188150298688936574279261820260430495252630258018224500814751548909745774476464584672532774500791444483258650176326837597672424925990200804653569646381548208626189487128977367961948711646159860935977776009783666672580043417075442610526623352233017744793869247335628737597183724211974513133091815747060821523603412747407934781740483183215975198117398270796043788922802163155132525997554786350464791919818835508233216665349956045817797125847889386392745740386932513381862216603520316500189615811067164632290129680322939320666626239943645138426268867395919219389049235787470524961090303722243795637638927686739589476995879076282911676513243717438748433197376682507059151111853845146419962197465683556772580301600467615328490204456786406893536231596893823967176104923478775769428020757510912308840491548696335080834851971671967103098335030623612309427725886810405235043995354603013426409831244426467943881077305280844219319425985966274791135254759510039924502451082493415771724164098013330508394867935111412620714936036758867877793643111005213598158216473824816085236899057030911916874676485812508460611076079909736600033419265399734288061622586628996148818664959757001196144236644672955171166783463124059107194930511651088689516582046122431847157377422673661584410025949846033141650546162031881504353265686054345959326735593259172972866221763365763286493858827904489365751060000116681624615644112977016285692617069359786364672922716480987835047474154027781744247210879907607153022056567721917056712911440037986128317998864484734240262835346848550952506618459629786224243368926510305533153168257445874178851567934576185101669184719018312141358740533722882924886455306988385886094867406104347862564591760321724237234060340580598487819127311954588697660394366524560530347830697457489539119761076528456343140196075014580876453538830188547865873873949904282719492961451487020652447106359499487593449755210752907846340459737523466495277978892825032285711859254551143544627663366116350757212508444099486522883468115336230009599660274854303505110029665163538520597511245653611904166177222157624478293680917533638111146271640692047328825785519618902209831977130360774934069740806630320390438940077538987499724675313046090769653819614242452860077853287548116050308378754994540693896597219941285914726467132693348197622715794816922271344905698624555351895073700857133089140257377513442989013663795842427628579664620851405203666790397028060389297832915678133288854247807124219405351151516188953617762843842887166426716116347351937835934517461588859846261232804601429529578430439013697570930191527821610453475048436252623711172994892971997862674735503850756816553240012031347054541066134097664620650544727754218175456282171707748543151473275741534351268084944691798374864375530929128485024389689993219203148656613160592472138435412595198920722115089768855616957562596788289224128674907039856357108466573336131409867073955937885167827501350003215313577351444462910518919261619552003073799686687344306088263958271705020011379744150303115111690042537604477345522069178858458524123335649133278967540323170895702111506657270432829645710015457697812315423312298152074836761812761381530914359819643985209101894821704048794300039113546478316846104902749629164580012961344437068029150523870566902970214784340702521215072268312308847163553965689262886514513823211765083424708480529300808738263451356331702728542707469138961785518186036482342209782723877277968090882557770220594368622668192155358741157579426502332338747135061706442671905437454721860436247927768622777338750243048265963758343377372583761869822999309415084753441790929786295018538162177388579820116800323361322619409073204609931970168176005533475045862258804477861921781828992185690636611556154080326638937514331088264040609923031240953545895627817220630870751813407912892597638902901381975390125865923454806733133584096283550515688155350295205786247526793426688769214440144172971454686039450825840386094017157770339164412852541435432485585220138877524620059282257416811050850087787268719071717286711857938742075226760265853302041259829504777837957527753045597198805847364127856871795297601820727876396787018762829588340350653693155175639070022509064717484625193217000132840896311174377675798253525464561350560577763730835300032544779083107010034676732921786061401731661585551797290802313803645207651357535574640658001045556076751036261937686314384479704957776469606293999198413642762946905010692070025902483275925940882498038526767719681469506576346626171914913032640396374003020195248516441411679086961056483014969923467050186081910884385147837367612242741408810633096175807820844715148601544945393732620626867941842200839461230118413144726417521822768306501564619952970278750698107817094138463351939405603222869622209018961269674831025134349652964538715828979704736976292046996855656037094535090663103844158258992030391153327376161144097423768715050820426446089112785297492808143726882750930905300138157275947331151320481524418951272705231864266164278998128879618491701231996728725156690297629387418866129628074095477899736656700668828553985270787081400797904292587294893997834142343716171931230803381228880310183202129989408242119769733553754502948923288677054805889715749025270567651810941681657948739217248002231647474181320805847407568284003322941063535640085668576218223115153987126397362988300681351753540489707978866116557777051150448124201867867048173984786691434643730223803469558471269709576041118879513467115933617978218598715050518867091397715949687809609583375949828795159324353327209939795032780310933440895230211628149567276717052972932017505342481936000985875334491136006572205773809562531358672886171473121934424615702632685804125671559835470357628716935563822019497906462873424059027019980490369328178458959193945527698326109506604998127588939830177768417799868363409752256918620172972413213522206487057474351919243984081903726626554464273578930328774120026297263578140735130857181791133050904855138881411594985732190834141104231260058750690979428548431528752986816738303454919585109280122962822170847797896314905569054603959737788709580856519305606943762199491326438529595724256509335986670834931845316401480949319205720151681249695183652344256202219458845605969245084756828789134585751785136474144174327913681009205309982978104503897573215616695738741799226988404591197058261276429551892815750449280694306513002335375407521226877218571824707595237487906180015504231204345793652673563311886801452218641167014534808443931897336365932298373082276814738292609113751825396351113547311937595704903787681052888592213206945338554661522922722455893349863211006796047732260384017391211842048065750219186090327269576503337881790998993242457973561689252442377102635198599380226881663825031070578434562536600394351632288695371017745304833618932161800982610936307194075312337407556797199403833031598733788140577259489236649560311666005519283956629129873028712691306177287314783447059275688334294613450042149265058052824636101771901124992861394937071026881867143443938899190068110467311789431718825179646230807438215008151013911383655799532958412709137335628136747006183952343056486704614099014406210511448656221022627033525133891150767450110221810349629557497330473694687635085611086589317464645557147625559254365357599075736656762265213533695112043404508189132105336199792169517827215773616126698785976150067073084793115687774532027128767118788797654350087044566379927229360897507507584314938883979659901381653633640734093751104615010319361578390887799411722448585331532975011408403970079245371763620502961162981038548944889975808497452644400074028933788013128558061831856830074570248790731346325281985683693171054378425029630643701490366983095127357881190506140345737357409193055669983756706200173172359642812355977777327753678180435779094074786629774373385113071183024383234893104507684535632060827552757535718026707938254432171901306208232169258257438886546199821106576586481997291632067717363526538947261130204256993665622321623552869212871054538735130944145933031035620319604201818855855080712143816941332752344373045311119838415779983134144018678971330560563082232281724117953967611586918812267159305831042772057388117605616950735034818018465203897437428887121249331376015002272699522831244328563135216770181195962583591929779722707669967127461981119312841747535338526454095424540124608067603989396950237646985193550201598378368528071425790906716581182829975729407976445076824603975873577532233082532799027586779222371597351324305931775388442666260467555224532668166321363583263245182677378914822600322045184586036926682216280483755033426730978370349750503695504314741293134916957903634199142513653166675262533525529046614752787291071141132899949271620038045777100716268230792008279263930234119293892950385550054378902699880676046502227608983568170170245654687432864805034943563331485831037943141329163832767391416869569708010127194187699508378879849729307536552938468331418434709482726866767721463076150264875498704696464589741515907945602850630435532525425608148140788628392408955154108182372960281710688750538002051202929727569053492232387822469276428141952361337555639061877587980316271600989305917085257265751762124132358665973597266753579629017807688073230158548972042502853323303252764793541848159322282922334978968766824871325151578523616439476373917602539791149916877193207574230426384444124460366241591522047802584756818390004188154535455912069164228566338040598567302565539104227853274808342121228445215319770962457226370779760512278573649237883069534082580134213612347162555254853135017591698220793437311675036892513025132255152660839477155112845588082729973014427754298932921913780306570452409120883399905549721630176274231579353948003808132755668838628505994022921496793895680894708193022777975350015822478815933504375846490872652465553203636360170569171683495930857267565235085166407030378979337626098533029983140928564654728086574650595363935823859451476487387093076730954317016784747855916363073827836436821977434871240556724525628266186740876029837091152907224950763228581428386215181623618988949975803061502329086770533866109749500244769751049242103412210129777523782326811567590672355839223928176304199197806001931445294488934573355887178970854859161120008660218094568707458866857861380298086244354120571059922859847767651548281809142977193445167830586686855884746218489763748236733538122487575113667493739420396861763928741799394207493535704123812372833675221712534744802068280172726384317118933819222809118728363506160307251090671320934182444849263523991402896555524633306554193456664546863729391381239009432787053052539839366992683741769555934901701946608160866711781796061496343182214988241179521515846396816661225160366688484818667731933320940812061239722449802166419798232072377925954361783116310876237396252472339553104373118878681798585520138877090124751030296614202099935269330986196119216901794746564026445704416291032475993406786031552437411511504072191608876947757715958820585236783059215245391718891436090875086282007648736187762620091752454272683542472863807680402601166459222595482883532673184740575048135317831811204494167066550859123348010134439762064470035839718535365372930105872850037182150733736277662873038673276558892147813824174992616413955751932146889980985459340762457343771100238816830008104929474756878272185487657381193802084857401075836309665377913233877005402548412601376054481326254441451954407452631647564869857474415447434892775490227940041290567417285098274636545335607449566095968661300702147114835198489282388923613570112586637876479776482390992934356121003886354834028895816193388471361650079808787668765015986626688977288721517282313760214640649169970664790584328589416891645562600358161647050264272728858334310339572874374857685032805379466478444662250315554867647565105156389981661263938231598147237818540938362999041411431548267268304046015426229871081860139950507937259784564609561316466474749320471818623849658982681377030500309355982559806474007720081579568762225094625511903443472948252167572754153120181939960079884378521334659230546118580281304312679443332581033504771340118429192630316900304683979776403990392467775545605196322854206644909871855648986809816296250506570961119168774889210561630388097606116465877685887078916708548637044958811136240154768025881835976802565844945548281965560147862719106393635235504061138350731749195297940884273551561746633235980715447824700830355724907296013746525567728213203883892435977017054328458399804094915283362690532091463192348651972454218515680661934618365433527587191345584393013491665271794660939368876597782198065677797223710798516405510704750022659472312272771636999708394004626122748852008786345932865059473087441980322985677620190190360119731183732917270251777560300807349643708032758229988193956361025498438657729488655076583955570906747493448167528211075820064775034792277165442593280843651464566535456778175213703493056798950453339201592483610960339923913181588029184069220232760355847499919872501253208415881015578439714627662661348226564051506803717803718653109658030964560940586571315116305197145546282910289815172365007731606544446094330834316965698160928632766954197763893080894601217272337768042228031762923895093685995522607450159064132521835954622132026860244020434770680473681317372491701922257000293996835683522023870686215886772102831453232555253964382975218900616035991539837644812174859016617898687419518545354564311570544725623325546798239028177167630013002487911839519268670206048817418296961875220402984544458310209839106124775740902646756307209679113761309244276682946364764994404255883684248356633689765651368025504552850724338528131328569524695257376991075937919201710332053617066587006669072807752746620977404349398456989557460326663625201904572411266101729095410398898627870251068602790918164581085869704871481740729168121583899918855703893637561997537255059734017787034543393813613139269125406588046071888755777842993853184554891194047208642163021868206303540239777237379091475429609892137551085257929434960719007779989145510327474515268038931094053111422743706662070480047324612054077665229613033673065019167836416135435199502800068564349393619021895770108893638233431300335963705651934583685591223202987813718817521681274752166547860473851406213658851184425959112521954465563099010900239572247385549056030226673317172450813079586577352663714456214715133003050982813129479393174959686819013273331843762241897943067127270915133802715790773848153795878675488267069506616559042931897883436313842687840890941054868921448712641881572359831473609483901914088033134634416532474054499312962786065128075372177460941843402901870149506348444874739750902986216417757372030633287422062662115897832760966603946714415422876454499493040899392725636299029770559778797470965285593625969887300376049905996031013394003444379801271233584128131683651281277086236756942854621554173436452550539661741018634128059434349128512908587670220864977028923044707557275342257497191100190353636165539654935346141549698817155019081563067488610672276256722321738783109938039840984763932917760596601098035279790221516671295095400482992993663848190198703993336143296983577961589796707021760597088653123249779759915487845902583971668303975606433243530170035839739151242038981807348426590098746960144869813721493307461875350277026113634442824937130746428814169319356389793053367908172463053292368200672277333145578030340804649282693925786396088636397666571740305715528506202884201176897496444229127984809561894235691560763237672101401572991082244225128337455089491592330358111032958899146303646178145582189445154778378233748865712643649937258853395174012713404706605170766270035031755229470295559090913288444032683978907212681511374005588346831809150171318693592698396757335913634217671609802093756621815871331183568184784628853810970006248110465682508210816232568195388127784826525113946501348081234764000508317011319616329986873404047500730010842265511772198116981273514668792536643152274930330914449011647922931033126824275067653417678874324926666327526873366617771665898746481285250483434852607073587561281521019417879254577448643479706025270438335284487423780749437489581298426141872753602389624188723851361811989643849591375434419587116764917657258420217638320944348762861311045643838312904770183242366052048789730413658322623673393932496402354806485082003261951881649258286099349776456075334770136185409847850831852229601345507437548872685868346439303150601970122777197887250457894099314663391915170648991858449515096948754904817802037062619330348495632249216904757266879115472123126364547037882877890966151244695124928220313609611610658757416358225608630494287930689467151826225545960632168054877121300015918820251653828824348829438942794594363813105612698489052844757366742913672571005825418387928031230448162997790794444333776430714017925949158315629849236002479279849946771632307710115182061860366726094927479203134547566128994104094701452707438361316316751509275486075074872672125446003140847760633375050814652135187359045329562446321152019811714643823071389199256699008686511736831140354545557349579199965860615536271579078974247165350960531895466691822739522958744587597436749501933684264297909561039451075499524273579715529087420489929669271356047409303378341737296050770583224104341977201722626106330868687807334135617503742214583296194863412267170645843767642387707755310313914844129360160098743291483020788422382310703957095648457185060848227074502987741109608837433597986054406990117978810019472348245395825179885765438503947083192877504233078130635224333839392774902885311732339783810620420459159521747468690434994516873215979489553939225878407128053686988989962780977179895862627148944537650573376871250099295736634025967247294281703162091962241752419421268940127953198132589912809108926930190567420026679580056468149907906123480315729361029080927098457623318351726942488724862508962238560178127659512016611181111692959408133281611740648552622603135324338211321987109134827190648300996527255635376731590363309396118705327649138151922250327204715119508501071560001500472453987153295467351261675926202269756214221541269916206269061420605043282569033323651326581174824266672851081414058392453152860145959689131351937423633170145797076366867791369446626398435639300305010623709377935092624711732662083420389455700114794598292993846428769174319912721861064846023006574705604384850314325876685545299103910619537692821273007893115293530500761370862391395087216849859421185021299463607929998563655873623109421152830061194679039002530780848989410624327795572645110113696172611377438931829892380201906359190005366946263274572232759105533813006111317966563745587234864233097729258784263574369149484866544903490334960278888497056624838679301962309320984040106133893414140923748721816302086664473237949618245576768927656286086512108040357146441193074609364198612410812012907654996657059681059473924097698003694431592919633900614779950827120859521255440135500299895625976085142908324262093264991139420048834880902761481106708177388561390207266451293894787172835873739470399650492078210965887009415120430798815096366402849333306725334154437607058274635856517973782713330745941963823906741092073150766613608554201617958719495037611651007537264498256283871747334906261878102647609437921270352586588580915516463027036400013196907493371263950426497514803181202552530418591066860724504072357223250008685336454763873747586788413328378303681828710425065898633951942515125681596756629356014590782454892765539957907903790572804218202436493052757528525882295292811424506422833895069399705910482430269053753163116590320218328891860660191974018358285557597173484375947625028892724064889767571435421633512323310627323039573472873205482514313199799323950297580623475535378096736543256642488779425165903008194446731726604066212537767223776208582264539376302700400008590951088399765972359102991308184711073518555078853362254757560541968919204900230051673778961226970036443572926352660574977039719394270850181582657383324357291357625488623969626957174533445078235096099557357396812231822778321110095912495612439523278874219747991789810901039334651227554608277915424227369585270761470434538132337598633238492061240469107492907951797362992064617148182858042957684126677302347678093351945200519291070563920508612754206886788277501963617217396680889314929682645902930362506302733208461969778486455139553375054724742925642871465507557151771778107812870084623940692417385926327838238041126093577684141632235849095850540537219917921607089370775122179139384723770658946349121197080051080419677610226402259245099367583986335764245080056543709745998042477588205132830286965007926477202596277460168476571210914708373717460156373147962145743905723003610637441952666051500845093984966164985937343545581709091036814220157205268984015045599250362827594143287521766354181872266578750108948509992922964774278181775479272838504129816450174742977228459624916620324450653460979306874568285120651465616735178126863669740114934594797407229048254517159412094337977242176995180082090579835182091473141354111011076022535178356585533291808055882988709891378374004378050946755684402120785996368175748606304186032680367039730244716917599991246316535329586100923192871153538374504868304279886021038547847293023593496047729486368620032721939141237136685192279030451268240561128730832529182241870738130750886472630007248968625373016967644733901264071110561155076669785984316246702161873862704075116944936677187586168402134350407546140993776730893609188036592047630010107220402244528993658252840497057261263366867452425622348827629495672125024402834678148355845374827636314720946159535620016760941357143149750791061674879792627315014394719836089574739875184844783944561258913021686060703516245789482574058207755344290814520420954847451223052428003123414147115885965523915432180916895365015760257006911791477613805297869876886863027266831079411799925305250922862163552802636845319727107852679302192677490196336186667813070406637444596803300004046902484100686624934381329171790976987316017686757480155617638934788890931672821973108572102076082108602432684519277036259810052298350705156328396346577346882318781395328343760238561400343936366374889312968670971668271477383617059261860110189620918854618643586326098737188259574676375044688811172718115474040490571237437799836701959309905039351410309669501642039339707862801353491992087466958887246450234035371702538243358902209710993282595308632496509222602125014843223071504435522101481459581983510180439007125034635971777824121575254618404929807958481768365524234509771565378530899054576380175145945932246087615258161816982456399303509907971700423566411129581080292687195230593186755934099480429680895139375667549758161903632962019082463071535062891889261929323670642379885543201655616022212433801066411602668741689135496225384879618843129912708580463759411829720281051159108758596557406455657882020065515029110342776060529652277254332040341538021021055498904430336468472047345877018515292523577301961382953783121816704319408627515442396090781515454894823242291538363669619048524890422281430223752524416393201967706812759865161888474569121852861873517213867499400230354960628454327248904539087586225730665263022737335375445409050036988225055747788753817261634966597586215216157061429254547457678608539699506340974255665431433259427536689426193846736993609757277591825677761161042130081651495100639607076654455975507587294110388734264290054824420678852442497485644973599920498031299640347632116828491945327374617993579195191393564051476082230336826577122457671545693047972783782605607300970843410957961706159788994954660808631124499190283396289720350005166045445309877093653630166234718698108150906275917901500900045816436408212072808693811790471668097971361561496214908800690927308363329850738592228526005214473130193507912842943906692075608401524500080554334811415470139876292997069363292263455662759456221669552584716435816855190377222810037185074462637221612730995607212534419519515899617758032218277270464019423082656960305292817052541043880379853112950101812294592287777769116857133443418464048453396412631982696821235778420991103143238827037933550296540663014141931723754749367098801656575579018815155684276886505533343599471730128642434648463989888488167854189407887416328898790235143621375948106179453664912171849189795157536121941884383017958050560865721423292960614681413510089901573571350073522100026936653074259919065210698318138065092265686717051547791454881439704852941236537541800964988461160885665062986033526240621718219409004554802634446767938063518220344670845442548978648141343608158373963461526353517756411223498669218757508283373595265384802646575684785440906754768046036727983434661012074045120864879274764114178779342402518592820405276274742573242404147181842517094926349606330166746362413861976929217102923104897752358439850584644763986965565195255403598418751910302348629351111163874230413012044730509586537386724507866676970407771393250783615675428050820000578882877854750077699643627938361163983460253664473297035244305330393706826196346860838764837202082044493338522388753673819076593152136987192229828768452933245333169083156745631736973972654396576386686288493750882476185727985485919879514268001719339728867766126033009890950402066090308953148810700605101331416746103077423230292298502746365726295977081121879423263774693740887525756844737448950919382139174571219347524439257896857752492449937202291287908667774702878899507044369325183745267267429011011345846008335175028552622511768917239836441966086802706647782890159176724391675194237624945358494161411313906932359866300959882613631373595637676179729042298515975101586460048973860665877033286292961782378675756088456770259750307186660239343538954422865335521447550232568496723479772600248003363081901930600217783559476604632727527648029896579610281914389120818967293802153172494187487134362200898002729912895420160716971063934965550823527492773384292881169595591004946676076214664895375791384603096638853040065349491009443716926379706302843193015788364298819183620464032454905011217626832385287798703853132909182171500712436714327476632643021271735683107071224508024415493438138762859454552174543253611798224936219534648699123012760016865257707241441377213926050644751349429622642520987842405745999534791915229654077862321583594976631450558313577970609303097411521519433878249259994105346059404143286388892351327758819461894300910364446750419493238818445129837387311362758558585119704733565945306858387304187082118236261610044023324304780740803354111900854847224981234942024626244494241074892751262376820409450080207206262276907430018051930344926327799253977184565776643170804117602656335544481215310358393234856715875565165261013300460987679272115493062994577212783123290946306766264043822137747337023378405549206337077813712047590425156460938432096195676621905205164629933709457122065896753199334454988683273062632456732090185847411969873730161390896027934610273823695463341821375603309343579605935982358020175917618781164439302904297122007236537645674541120338827046934202680118194186410807765337329795024101910307435519345858860296777874198839885952974172950294544498553106050903933128722645441727742066405531118885545249452712582341754324756495772710212420772378266491327079240057462182822430196345054687631199777987470342300158636318491722241993920598693528510547308754985416386123264703929209287864075353900885573838863838764939965178236281500450654932593173911599434030515193467410127595632561071060815497358226490179365909922186880345118441105859844966847011548669953783360189468831620000766374226011048584488896979224158184920751103044228777164729492460442235548719416821534420594940125927406142450382661797112839783595963659820983822166755450270042272999223209402206601929075442921122961873394411879260425994176963234247972285331268575572673513006754266398317794025280583108076669900354138730870916561436944100326928230450896658895814105559501702328502540364353972999568498952628613839159229785372778382895295384138800600392109174219479949253869105134885173353935869725288635664321805996037794356950495300395788464583127987541730156302989139513128372748830605503038291494585457995834445301430981425989612179407922753144717069383792628611571608893545932089158108872806213150271726586407055160687926885964534629599211027825308211291792765463157107873977499902229801109578285340493538184374628117039552819993761077626277318511697001761877015983974250506525178842176648271171368677058247906580394976197320956568723569610015035978648360461589922917323805868080900289348606168550394017805970885374558456302501464712990699914628954142475621886025993851611330875664191473141083160603394965410317897871716986073737629191685964902239784133787476713600335138721453567009253505290635864351542847570573711083141363592598312900125936055275141087822039548571282015996596276263672400325520096006076819921750921124095179675268412322140973389362615857971775321257082657716911860355304777709456084762112709708050039700001625089837470176536125866767987643347922839388790690299993710499602738867301240827612619395330112296840357433598020492315188021288217833271033859026938898988187356121215099874645637677316888436474652867842547763923228895827143048209588434329401904288223851143445090790990209456590068460076962952255500628702752672048793258246904202256419682833738580633963585078703986738388024834635441868476023149481146314580990327189889976486615879869236628901138783450431301566009874403240245422553431860412179050686113272711278751513974915478666089382384610591233676369161918378612025663350206400654857616729710884996776221089162953928740917878501199377896910759280850211424216303049903812589091833499906233817392679099695768344792248209664281379544220595563267805918991395476341644490499449432620617137574738412105406927402039223332102552865788615041443952856145757818428135080417854541231016305614276926185943814034607192647469550966548076548993121891382863483482838802109289235740448194292794166103991850265896956449550847510240889668431649571868556236742949611458857726152235758410376580930267430752337286281636738410108606946697618461096553189319477348867839170754848000798597404983411458206811641490240902809366748983348498779989308873490534871386756488385881681526446540321760446216989518057385034246152523471465549627022461000134598086984994724892903743728690764419598087284595541223855738081995949216141391160746178343425644679273915495850996402115513114018371124766198124379850121314379177253015601659879638928085141803972130168878764431331509544557501609428825104341196021967761729352815163743824686800279883508644580665748231310167567954244765286048056930117014048820784191905711011960472196327479424389983497830161927432593670728873347918347184938747588187939845565610118727036356918756617995268982940162266509146371207006980856693710530918765214166654147947988665520351506248069795166841876314283207117241429506424090206096133297807489713871186576666731377715099822359195796150373573727951374373629985077692205856727573566943439335704471398267186696239808898460371764446527788209129466706420922824781830723246512205802110080513124990326160545049922275072754171691853081291434857861037110857149524327345064560528311743412784432161939820772190158383735118127202936569067896498162684730855096369402360529920691144941365261858236430094548017772428442439910010219157064783077654288749844650133314093284671033385869228153940617357358045977789208160932441654186453128889238211343256299704146118808384461164667633244643147918590898724234345943647981632784128662015057918582747615647599619177164018566040834686451060376940099562114849586400173235707159274014199618259469628824625881299238714744002204364927976503624563010825711478017965702179302722867065268121325377935167736472891070108521985519567401750968403186304394664391106365592121176298037077324372905448648019163165120639788311758007539021264601144083387197615066309749146472599169273590624810088351825522410718795402557650489809827397840448474047542684722740246312667723471365385117446433509615096109745847468452191665293540550969058526185063899696536622952126409633205787678879005950530154774031049996837904180157331995487384767326537074216114466701317339660009819208282248385531938340682278119021209378198513260711463185517679850441140748627623766688759230729930883167932418322184377386518762839237793050965755488508957585605249327136918614221599184356592440302505463771412647656808488887029855873670958974751700082944058675460194451172859324631156590223238272419632028508540139255215054822382798100368100809931861261146405202047294588217726933522841417391281857179453291412939870035207373592999127758601192302481662641080471106174677317682028941281922087166311481255380509554168934516244899753395879644153601685478947623884015433475995692570339331105987007181125730386995684256612736613104956146406101743376043531291189551089626323739949554974453600760122294006619118811944041994113718262389356743438808121605537823394499208354017166194243023575580132016568686093369183317209419293104262356028238745593577282446658518734932937751722264060136899431258362285934324459625864977609054397702004616217910282071936508762992455642281827511694753200807797907153298931727507460602440283881255673253621234589223862027056177144210189770210674256238405202816684063445210706845532674806731360193015016496958884622863208508598142086971402995809240759507257028016760823249350850369505373200929116214091552516199713989292803009173368576220868574006887368691610003935661388065958972289342489179956429395950006735818908853472258121483916288897605355998693875209648598289979963099041252944885178565378715143116992015723854331449082616641187808612608196163975566284736765448816525245546135336995863263812420699238484387334905893237223668679989562339461713636313204208214462304784005715092236079288875813917618454701771260585376962019718610183497891150317424073087794973024179210904116600377457168001434445362676636198214467242136516328316144739213960547548264377528976759759885461742224472972757830977188933404819725850488892740295264497976936750153309375705935526384144313207899229740558268544150362541606969494294202456727156304612144858425173595991951336004490218423227614748868756310921827715360597682873177735850517358729290344651058937349544689782833153392947372320289603222850915486781950222033333412361258800301530454803649620300514286956336017699342765417169741437443987309637776655660535021847774369266783099021515280990804941953538702916732150106857129634347708274175569832905187443509623565521745458476497499294987068732814782478953366423505006386135824720405384609670740779047214848175497069770856771399787603681026277718965944717702473574010093143006645623177704578862324321727576705165560433375612535329707860349706252430606958944459310295933660988736042720794647901500296795218730304154857037045530095454243211221704301574562549412390131580401707377823711905292712215452854110282973769219921118804775208164719049854862183971092222033772302259847896620122227103415418746904776856841477408453605044577982809213455796954602945310362137737186111687594651190169548931940168932683819708726462009504824837455234082159068288492733098643335122698043559276377139720952292047512058359614278149823442421312938464529378537276716865065169407697807618192972097642409244764208801875191477664343811311144382002945707473525551423791355644134128698147698048190356308720234822203217554806363400849743476581284900921770397563468910006233374742066157742304573235917590233462365400280597395643184609443984122645524164096930885348413374302942633806991280946971186280610404446908886991702827908633539309187775957675821585767100021298308914904975198180010371218093974050385618351344875039328321301364620668280660094875299886767344156640282667050362888439876552710616510058908151244365886031416816712084531610017750421634485836407776196896218988580120000001176466279718370296226634951495017804747482549582556133625120504565358206820608332429594214103807808304494568624669043172790346536137086495331576702895188804832424357625714947159100443154400302666802839669868839090583109052673243186052064926781634082102647564786987026863871618759234684846486350992692303310334664915080817266130702701236738000792342895130134866586076346214578848333070851256059217469840749108284233499184145404396456924943665195364700994574727899207415857487398371879160472664820834868095813955887877797072111381240967396080431872846461389690255705960145835400683800659170519501842349137924654500726349727308891073554391855519978285492725638583575383842757561717569175695773343981631012687959407792360902380927368496380451068924287188518192712723329779194505960692304264137723646960594677946061664097827418553183297177572558593072458612556825222276540255723622106997251569675414067450936230836958573618125971762255737654973951809641197567745149892104511306370083758419958778518432169245854962892917191686217279467374389016260514921978230916055410317482850840387891760902226132268831205735507050565617269685244209601237358317706269091574448487354809424917084807141543757664159231155089668758880713333691308658651517153447933926444300317858545746976289298389476488279757045377758728388020640258006741403622546859470667091733008178021519840199980070639422488291706622940828279416926616315267827622640021395989840851134046872394455592526134554286269791151473275537156123894019195979182970555874212145245732683524924958905795936807827900507050293230455769094793268741805781491569552547120254006399532920150369579983897364594396139965569763941997603250868541274431291316611817325558125411556908648621310415264199270124576150857756547930197544283438144159324960877525775421641564450625828533753216062065695431976846904949148023953429092702888302740555445859845472246774772803147786021746133114659046856750258927001782640964687554508139709952096349177374934505555329070781315582631951305991569496801026706679983800258562293458874126947058848016103980963107018198826084124100301006856127293308610001057604310646323248570356824491912031128850333685310264546423646951245483445128877235345145049286754823354915924528223016250824097685302764657074046977336216444504941181512433727502035262121032046519249084257188730593684121695911401404404472422156476428285274312395226393783736791550931275796319930245602310566283439421452781603217733288184029557634335362696253957598759085649157353104903476867541440654779243591435242338391660701212656439717919231497267198079849186869131743889533611237135227232619910629431004104928076238366174384498156237602976718205144165152961374284188340524519867510550862474417096189625184499695297958503420260620129286118753231583033097150723341112738246528370021535367269301837229259881636622492532974532858657179265157500258932498614692274938369175617738491161203466153102318277869774347964795014607512480833233850959441659450629811034632266562494772655540122983280987013772423786909488698455613935159616987156407660740309964986999538739109222089755191391027312038127520974905920881739958492854955015647782881305501179767104195928411260315600604311872803154561752554933709117886504720754092680099354131419856745740257148924952782212134605981511659067815234773458228268396909197635422859971442849919087483177789769266150700554718228584486175812998378389010807103850901338764924265414540017380692585832635528803639286146761615855686061248796712766864716346974310818332094399181776948552687151763716614786044585196523979707585898404327353525426487943494445756604643701460643775073287644204111511510191948722763145305839408802191642678240168884822129909933438411168071765366053962882368729949012731378612484685103230644509880489264402025749838310350501716261693399893091421302420777657434754350467275953728771651381952750908288594009336369047666524288450882969188726185564460327860268669373790769973983639624933169180115678196208272928532657237923292814255213297084800898774342371909711427187395602213184190289900246730913268650169830285703583755041891010228660848829731848177247022081139608436114332814319688114571977751750429872557499412643373994760487868873163358606759871888915852788927705437288920863816602520502899344892696661609017266761184973328369704497766466763622184844494510453963931921736491124025245524582796095216548015582772232094869560600962870810122730628955644780870945725845192979069482941235433077191550793796565282832898420087959104802150872873527022197653771094498560127506784960374364734226330793214024698971072680798434649618565090794341405310789125233379491168024765040871104360692728213810764142591672528280256223036974358415839735700614441508099396718604978359341766553925279809478868951661641852866218481543025561724511632610084565320208523376705716301916927661009037471399671008388336233763996541056895364541046902472818544541869123538519501173782416559548355852036679438648434959429856461921436697298286489810923431045069969988714390986282111663871409939080863396133113746660464841022413229216782063284370705310444545319105360959391156912734901225305068256468689790560152337185459098656961698535493176956921489166657841920184741830493174801160985942594916906674598112339362666348748788046470903696275422866744909664226899924065552934838500966698650410175050396691412227637842216804812137994931253152950622353809901729719579550150097622710381305154653557178976520483067544822176776894686949037150144266799378844246329723731185704919706093779466445690546357486327252229421055101749572816320703570779488234966282886446572369817003447292082477963223321516498199954376770999214345794854938903763936141746117233053015387159789039277778608295796513940891345659042474236196341879657686959761550577784708580562360536515741128340879184089560652882003481957179052750906498857937297757468105117496700259722479742306556429022135245017330608906515851359819383786421133897746082711890105783739185569280860837760410479254052244556819909983231463015309967351226734645774357257292948911464106691394699308578335413618084116647968327799629874141818818709384323470753814345572104492318806908772362377986031189928497143264939054394694697648429329380744953399044574796392375308592572482331245669504871310391039457126212542429453131846564147873430913665747669436208331645683582784886378392368072953247143742262569230263145904401406833906758999609022752757140820719356440494635068283748176575489352930403885706411573701795209448794293828201477497875120851177755358133023226252080473865722433530522787678567283336570731794163830568433927606179090169730406186531200618106357101960671022819473228372580573846296913584419991624168161754052534019203043504847277855477518396731223766621677806987548044754896269004993798368620788208913981741474018498073907887364400890198649955898777649244080493028139937236456833502734849415259168067732626826507892860869838258917482439442129312500752366127291591925132452019483454286722528555676837286287367302292519856425740632376556380859478217217648980382982410470290413395367389909628281260169631302653917019305605501086128808237755110380977655477153394935181233661425843306399629373602775203476341761003305787254829569696886024386309005919681397372601793816219928583621010786590854357144297448676757423241546395748288716747352264296004984766776953145242655959589985325774812826467714541706506742677242204382433342347998300000575398676982933152599604707446538608707098416863591926035433375431009336091675038122453323444764430244432266875099210546718485018128982192028466158206680286306645763415761600523763756188740018564467231058104990996969240220995212347379686216537891150148747547311462720309372926519581051802585530964729944380543690363615764343295644336329050422066475901198479292451202070495858891048325887233981051600249095709619421178580047305318560043782461046248802556208005171503947708196419973685409059670403197889239980619062573641706549984894554567263114988122372846004769433437174223543342950451435504821397574325521492539164548680672411012480594075346495357887041421394109374908482297583999431066436943010787974935651592580155278979356946374986202605848401007665101260503423206461852753869785923153693599373385092552694884819674908470932678246223060315182860031105454573487613103873133454139637492801778546679621230204082451779264917192741340717292163454395416259849580456069053346832403051141295296290309884696559368858857748636855137640143267302358888747497666426355178490836268815945534001052262969084579053113891932457098462213478308664809220438814810689046877431954533263251263663579498499042105815378424192191635846119876125909511176935128199223985231536955065554077051767706155901292492580490587704884011831854878716033452481633429234620921804550697672600822835485992628561680936921738268920462162815003143450305523741371743931619063803556923938558630640870093125386102576271833084582847594024467805113900890242103830713412174969414518492477117564141459173935485510253660774171861146089326645239596537951450233856910863311434730872237000982134723175962303258018123105608712874273203456475023307579222779770228252632264532851985441410102593230413778496471492877503308400514325128479348322892942363715642514661424341813051020455518245832404713564992808651197196613252805311750296626026158693462828734947708410226366958738857858406394672099296241579611546459968474631196951574328798356409079311785151118736667669269111366962351645987674378836159434858926632364816813212478528116183620851058100288343590848900137146536415010562410310893542554330748217532908986500774538859267223374285385732716408555580986245908840825626366242218943359930742924512004118076732884788333282026132077056805904410315024947264515454860652689787517580530818466634414606097572744595209247757572483676099345045574020237774750159805430271565851041737915964654033584594336546842850615484555620250051237978306066286704783487577819013066394312076232086222118196532544495732373474332199941816206773787016126076354530430106532801351248870211900907092204260821121815531642046761595388219812082841010844515164762387884329439621129599214192665853759476112183640445265142993840152086030852131011563988924732419205660845355805713008332063355517447116773726678140434360557003431531722201434704134546374101955673711167028218864773270454430893438417202251576300786107231959289879511580514930527656639941379981840152556484475284913993509619876052335608211868446519291340508766537875268401225833308031073633747158655227875946206902286251633489332159850490515602199208326950740201800823541194052393949042696886142244423222101229009130807559171213574402347483896875735050207005406413341379810585662754127510636840502826076229063605225702035078866523617223953426505127647497717481548600372472800533883478150895395951263425097150820799572243175977620816535346082549186930839327041581546989555962970530962977001809006154194044160488899538551949922704097792888189086455802214059307976620580887729987553707536421604096567774147080174993461887789385424850282066766709420254431871508621107919609128612568113627924359071803240977657241374610170018937228100685937879079979650404012238825756370289346575280468771567308260636444452244132922264413850123691655716031201611053362613571049916249083560855081415218734397956663319655625535579739220949323073166803729015136420340896684231111244442288131779253466251657297574875070534554813174403925917507403323867498118617602990511037705672730247643161846498834831375500586428184621528241937823336598693111071405909475696072792122999178251366849305814970698940277614997478286679181173414619637713227176416043517243369500011606968260517742462291787469819022495915534972625018117921569970854468785789267237939192193037672669454646519583920154702337103659775156753052614544772259219711828582072496730351714754400351399346711445167504021314797568089963619619176170153242441412463352222041794652086263903812167658709276994616580269968917962061999354738011296572569734035551107584638270424356203284390770117440609088392969416640856435171575830892498256841003080005277895571801808375292887938964692720199650062536547860342981711562819968835572483827274038607244297321089122199108671821407986833108137281238043179332476705798755817862547170272378222804994365653185275784212500774837030821945325540837947906488528466183214754990262886857385469561920787320757957815146471140572070431233819782976147537992952704196719543731460281913899065251120534003378353155626528931676460480972494973055812641844352676205029893403743610014964113260375183916178109175709727339544470480021404829360339680560118549983169628711890070079831945822018489132197491371020964879053393496005495420665913505906284106846900116172243303925163274756116959396205439225301066056846531472044845799457970533419439198359950868804133886271693578819769828906130509974787404874027078031300908656277256907517880629099130932300499726577238647213156848833574745992767804391929802965702834237510901663030054764113211807133143402354538396906579832665778359144266766349951768082777018006599009055794991000019693619607126780005778747720261221767753044387996357427054012735481994770027692463511695415065349411291628710480991131926018745719048528719607687232898092177746722163741034521862386782878447137853224742454018000069089558681532309468491454632490976456100108566715337174617663128415482450810594267125831887563703211552813992626294761876196492220494341753689077822487121124041186940813955023898098964478244455426151359833447552022428025750971801252642798672084027451372706478439011561711371760860480022068976710451115991094150940650823788997874942681273386573205569599073805955857341207928977657333593426475879607809722054696136473116909943863948218034162844767638367720236625103878346271994460510979543207206688695415231584903383931034343738964753034786457879189178377890371673669116198622696359306756082313039971612886620378465380704060587928541327292142677975489187176535932897530550540739416923857775773720742916690483003651917287340396986975800365877277970892866420044563787186974618012000812821737273173877214628958394467552640703648277239417264253329642056696395413420830084477976439741100912763905895482630445433599024904475497972311630484982131829040462622251027083818871356701804442897701211762911272152877251222412009136276473330661976003218555806150658371822602498089794856219630981620821117719811972485633177444763659841536309192476944314230944896684304093514763525616758111808073921734264995227707605072839881398748653080643917384713538963056653068210649904049602154520817635013676112738089027317604093720444450200674834402047759821404546734531699178423900705410438591196325271952292326441677468640681991745538887141381540275961435591485748656310708432963714424438518649885608618494995636546699095549969161716271251151310527094429268964000109027138355079599998568688885763193106918639572790946737282864689375458919839416670367407735687688067673265532186663645624813069469453418179757704534810257676738453569350223762124341233734755559740425624739595813227087686301085788131418689722435011944973238828926114565824119747958686874166101763488888572576167749532286710239448490900336206220454882050595839612422270521411232119254215615335141256905208147277375561970555530329615078806601442062213331035305945479616545830217767028802375356063285946425614173487376629527437634872911052783962109419572445378518056281196399472230292884726352690807391322680709908868068442413018846516538679697440371241898211778696596782996176735086443752988351763477599863443343530361143758742378012862174656866661589658380403972161993144907544291568439369710785037777363339432016468985963672075255605887337927655321270474116823796853446553837452468651674576988613009259467963376761100162970738854344944558675037257430314013858756723400867645332372509248711287800060527860601889090388623171112784397125299716446510260317407555527371053003481695893057359966925658501208423975587511990285131490016275080108941421023297903443606113322104326629319235706208043554582497575031636915645761048538169610895450339026211204846425569807426456859649334556113525418123425099802577023501569642145262341271746800196170735146173977812192753353173149191155035695598145219896250496380111475237574636442137908467510541333188519240579064875818618408681313241529081008171711752146985194827967938333349152669937437622508124124268417618105332624263505934718505328675769783616753326480963731568209746061396737203140746506785759123027291245910655931943192915783947460960602667444179508476808192366413664107413882717846299050029054126617356203344133482129518573187314309208595157485893320300189951261021033961473798017908535219385698304540529916709330997722449556451674539754494949124364663660414665561306632162671848054118971236054302859145954685707955162808087225988792141755338758484641121178445785908989202270783443849610311676248128830647668660865441247360239950315514149979883853422727546391226189588350047360396849711891071911642699117843319310766295482036992125492790853417572737130500887442916389217881462877194915067032295111697523150766647663510962879574318167627707283388271242624536353611706252272811290265895250035489787610013805377401756975054116978453587036681830428379139635153974908464254580560845937309698036317843132244872691992552175425632379843698459836380331898299108684428060217875035035933276110075840692860964952054226870271256929641800860581342366729692505859628188613622535112435541142554495567432911678340059961052756008278981466427410765609996319807221924865706291571573199758372640988344159174540232427993603765517978779153462663188579600563058428020773269345237728447172449891852275710729701297312756544756288252700659104423474192365821555213576022793590415333298894026193437640518436996710415015686676493709198383621130427080595106238191995402494359765771117809273772343680335196738489809568987846555084310689616127203783073565353575196762199320299473075568863951734483194177775000215791869782687508516926264309048873359712410414844900035324957641726966429771428576437969379580988147066527496112834721664432442406752654395618714910597046273673773830811359195856334190497410954879913734015416201861019025300251245887155342205185726023914591512011482284940323733674584032520052948825064247423731564561522327514370441826257632629713626077551623697181381442395701641971438279123218701701174253842932275353681320616645259357767005649836892707492256286606805698533885688820246949873092717583011073750923212574162465904167689474275327607611773797465742865125512047027377353470307370379715852564075386439050616271265357816209804941676090317010219744486904479840467129221026095736569669949167260803867560738477495948013312851467766368420819131407935893351082774045643989447949047019355204927812125384068872482732693775536323351586064159896221735946375681278135252373192714824280993855184828887296740481762093268604547203691165251409486010848389212028611969146067651971001115008894442197724004263547392834994457867229823549219973453643421156175482255323861797350536033589599571352838303358948838899615400759882584382916215525479845368204804008490521224182481357790783955323660454385079287464355385544336870668795319523139740240897537204764776831374452522721589320243146740025442090657377579254371085054306175915142618073694820630452603405063939496055078527493290783973007036701603648276627268723942815989087287591427978056294089846556218070403749647788884581726194324397266484959135538711048825999891565506665028506695272790419231871993798703304183124106046654854725189819493761519426597531308171914110374457170367664418275757794055399802793154991742657083243520769023748101036058899120959208853705808911281643359805122529003202298842471807726660195121645666813584045614338381772975487588231749016556681304595136389605917610867723570695415420866271315636216815306134035797040623027166515132304530440882352477669334995885172754946104908346114317276291097885700256093869532493217299954853896998132139626120845081862103941658697080786368798646161736114862604416109756915766756372883632076666643315220747408342341644127047181278293935179184629775355584771842468929618865567558704632257920613440163423939615335417017593369069836188141024066645558754237070236305872621221718933443178635534326107410642337849491508414189837581649232431535580895862598506054190419304275002461531289277015816867958920231332839595685566760578936927998722858140568465052864549546870186671247170612358626510137434562686370391421445047632040615106532402104787448134442747332694319696435195745082142229759175166783934579978283258333304194553301811337300848394560239487310649455806706205295752698018591956507718935602907097393451177718383282902897738602024858768124616090340457146172703940577188245106707084581989952567910607055804189607486172761803083946514698284271170425974074750873668366060854151800764019400629997016321415803446401609216557086105492688811666384109795937375152832529285199417599982125713443185650069244745337069364409884536941268326927542039739257939130567247486529042163725190915199788691366355673829905860879677090907816623733468557541845284258576989010805484403896925650976554993369624747636257354114694922365170331337010715515449160906395330820304867159108919979265744749800218789614099739312793327027571574473853853492236953989914956431622951597228411492650187600113284147788386398174334130858658617633454294640817003887240061943815563576471024557390849719088880088372171679804699023176350652990257586000180642574718727012728994554529961033321646604348301126988667563987670477865716839755991962099627833888848253027124371033051891457409408721024443092432357479988781240751158971592832895965910363494930011270871439620278456822213525807230229750405792139821236109228372217169075379316773137997131815790487492844437779542616735565522951576276384214798772652658611951074504471851519241227326896546517508669469451845913779435262411712708292463218195050232179244220155186633717693693364379331189808874262285604787466023968387159009663277409563133938727110736275460324165382138720117504826900950263946183643049740284713461149827373370603133350796198375396304948356085753948352863367406755904924211161278699518461290897352827399036586601692487530012553039065018748961284378725632314774779215056049770197550642795497237415120302873361554431348986501922149790545302749291987921992697658235172699760388852180565173723628255918355195048304528272637838285379029113699662802886485492133071496490940797972328815913797280880787494561212382995051873665051683752924080224676824360268478051061398165795206195118776223108750560584032724898677882532663166956657174426642114117489603004041125040540209683736685440056535463522159960042553777618720751973372415873283681579277856589375000058626753538624511765547820664949748733562390793267618116737146563326842104032086666912117538802328178017114066107391306900992251366928328387925914732778303937657657519328822486855855347154929100763797970064917054807315059721682976165582594383015807835813287295438194675326036503519302520703968381775360477387038396733892322836089779573419317771459147539255463338987727035371204546975372149464843672454851630432134642091811702009172814345546559935133008364524742560400092444667887632441728022092950422325263343985656623118726332696760137858454377932551308761188301600367718483255769759074621054668720131206280428195121738435380725322027478052439326408957496790341953033556785977402952255113816829412369565027952566605521281360296026886738156883062919374678043109538255485020363699084193791013676511966270281734409605667220896184638869500187840254381585285983924880716320664676175273361430520589599290702371012602482641479738615808591143473615854303937913569870885045740500253256252127975800032840267492989943535973456562329541608521671027561661924823735803663614978658518411976647563743525144836106710939215250426914979707454966999661937530708343728657339892806478789550666232733038726837782894770264533026241375906496410582581694543458439649713960075013447462289477149097578172424306457835762887500622103148791414527800341695885231030884895990845583121848924986554102697918096635974067755129778802094748840127390115350324898829501077799143757763095173810761466324823274845809255555160691450634688571589617562023866955613934759743244907169167640329119852720149027531921739638898539505535015505440695899464563230905541836280963979074962741961604542291184454374702350693079268087216657830872269906233574570174815763094872234086364004552071469442199320192525076263330170073952050189748031194851332241772140542152597507589676232985429321728728459606142530989910881861738803411557351359807751044241812292085826790278690648652707704339652705613701780393677949050318200274300023047842658070458259137631117340493127711795981864022877309525780143454354712632406203292066165617333983850168270106541324198587723498652802445368657355403962050538820983299283418918754547512377749640120365872074019798303077292452414348496073516092184814496957941665656980392875934350028742050574012741121471362547544325482686804850438091421291712050739633692609399105131526227231953188151785329411087585444536113407203593396741669481682334487665832968453768625451357409128809228947433566542256457094041430774384369595098384017820434350665077091858510507850683480776862615141625372706527349263454701704427418207828688125677217936856016142051346938577078686459647158998333018485337593807974450247551511094706201324278204584721818685134510104586367649480128469874436341691009782796212250581140012305696090776644744698324967330689212673545480766387446909566243442365644741714680495584523275547217181274506770422031427524543235553865252642081267330744361310026714345536650313023008345978273347664550101778926499078225601191479420106784785877264248875823489717356520828312913605743189686055336205479541998782933715121412731734608793546761557570916559658873713597538152137937363545860173382260666171591203343950549653635998397828095919492316290592043712324255142968746868605382069912452836545476871546257693795871888723273003166238498373010919357225895963451835167752280401575734380395721398570628978352208727659570592932622017656992010633705793540353903870921142674358097840709616459981013965286267472215610192558375574352458490364985946894970837519766729117762366052883008542527024424160478821756331378063866640816002073674600925427390806166686539414435608780405461610742470492202564251805252670181197697561695020806971488525352384882644735688290298797486414765604537597887384433687374383508024493966474759505140959449096980639248367229406526558374544550283430523052020012837201423301600344205980058573797230111432225297836192680500650919808136644172472833383965510733328043011349748635863309620212199733328179543958212990446634256515935313079144379800546430933487771344690082860285333282323905018325346296000476876311633809584146488542242308605964162967729230386633997372862464321481285020757116912328102135964688431107094102635035217294299402330663321895291319343536621292751947521895943977762143438177924211848795217819337957071154863035324245841367468362487025554938427101087569738646837368259901269192231439362411811920980211675985545626900690421962726159216533725135986718868338277676339563438150190929324307304964622947760165402180817735916372555025491930405589099642942132434285967253755557672486697629344405619991798891398277129109983457921321514635620216392108046850854074877284655311918391925805181657602388771708078040896265619639669913518675418947184552690253635959554863194354606740529197971737554374645812646313579970591027653225059398151664992013854732474267478547997306595598859209485406744806036124708150061081523264213722338396057606737193246520598936783846467027494760596521246952559658055370177055465095824800619241880766919503934615449279389872840562977697617820758917938168368982968406958695690980872280332159978211443037553270888807956256975790032772088478515220534956408491071831626942306814971575965992918893280401665236986676498879356023698176941803558545905143155360000185518192634469978405559956871987245596119645153129863297852958901468817364141551272982411426004731690226117376429170064289170905667148793193124115103731925890779649405071282891658019890507356839311809847114384697716893241392169200993200454133103148428209931404302897751453837434016706010688640654564966801206734828386370812801718659372903963109298749540560975779957883807633200639053120725586506358952857153315368356515741603014301277785107122096280874157386612543903039009347012511412314293031301330034123113255278617994393160766698410418288006577668243299117689228071137199933764672858563939687878249929203765439419367539891932616098713817697586480887530583142319470429244825833598886367488378707927484759652392712147556751586659325211856322719928642107484919624511968519726630273683556649906854854299488440714017616994811464992098387979636370053217869677674439951784142501753280585015843875737163716130371207311096663931930316426216280475049413734717811372396156598908794504673722230043893383726881498761524984358446427119322440012917393634984480261193082914434232355740928771998251081585326794687862770085876968383951086386191797521519045224555734651936833797326261975082450734915230137573072624522640108375531974297279086824749364291407457238753145463663390639090406701712788695990059555439645730570436412664206190312292182770859189413886305406573764816287069292088206272446776173389825536193951906966668850305005868896441768791928222125326745966077547384771588211913656267896020219447282143157212754459617332609136616810105040417303413345648757361525917330671955620215326268566202159196069136634070312429483743229060134920197544939739369082274503215620412507142916351502951164300616802681637444415926685378610572943650954107308029366012737287540745405325078894397452960877146719132484842782547129960876931509908689547612013622467910543730088703916531934202995894557450135603783482887881565956016465564990400582927903072897744557168642726195851773353997023192912842303792875825824859102184693042482073436954948459574972909812504810275848355630210810481880869684864232714148746073671369613800616203854715050872189549141974590469538269134986117337513732354964600500644773407180790860493190288975683124705700575531541072107076320686269988896755760180567670778536319693571491713063569597620181984930480003005415452831670683159114194728128212443009846009338924164620462406877323050642924827519478379060105864534309706429294925377783630152177983872655996633756894049235711263456321893412074020971426128337907864277682564295940189644348656341049430266056333692917973459345108084115850640341306340437392530403639084527122912402093843762051597591107168604774401461889727521783207383416944940370899413331201114415597406922106218310929640509966573624799472286994282255520540855145550013426524013901305411701755040660315654885569894912193325527741308264755878846671895463812343192848974691031163906991292851968950508132523628583466599368498418165157573023483991699079794458213919825791117075840091469126744924847224090939169179049789622000673049097579050200546919360822404662464418988307151573827244281079426666494429145458460764852547770369605255496049764187300032963587278393721350372572774133354617593831898540813630330562220009015108036924008803578208477810606780241097681660614419432414305962438214198032391062399258664348054961170201372591050540619106179288944502273568509688772809924361306821799934747544361599288473613136990476134982919942904091585037933450803025667618633542259674648708087440029922737824333732036655803989249019558126238052523135676277018637989911858442196465469626816740058277320886934237305292338259455178225488515151532626724900924887518829716024391516136747214167700284844756893621311035104717942973273345532872764898374448662995856984615678752990080136921399848436787925578680118750753727729705833893917303583363689864058965877466568180502569378082125389680965976309499647220517788011669096758127325023471037887257741203706442856776975748838626422020651668450662526702425673877297401114440624092766642053638598280559731938757106583170898798946034845547378686258351580461887688573679538331997461130392089963823273959846788356859016557107525759393884803075983007727495444466096906009034815808041074058785928989271900295729600516204746188038422771435670485745380167905545803502634916111595443503872618378110863841135354595457054398478814072209751984917867844375288206669963583228562627252197734960005271904803001586630129618791244768457614566467394239901643402275562474811897850947394010598912727325037735459193705805030877209926679026389385280304381229433902136872851003588024687996426464579393187405764772499711732273573846847224408817888212540969470579520545288267439812898229870963205606525075902270382300113521508054472492583122973304871628047746841144644932305655590070645968954948121845147556842208039467006227868052011949734877665563392924400370520647638655015059632201181156414285808847642121105566874169027614975887648851999359691099615773415475590000240108213251485825008092949436945440964344127052614017904002048914737993022444677071979657032743787460789423632421408401166780129063532140457671229029396420581187495840840935032308592580126028483882493860440026034777775038905971638919585136998546620271929547991977135322789730938039998433160428662241904237366460197100806057337074110756092094843890231760087168414481656751772856365881978387908262384632460678644362938041805602140397059799384825019522413911805349962949279654539802187928500054191033491844494062892368490916346956076401463378202729938632614982207467907498097899634078173735570850522561536967925250458126473327081759581118560434822772788632955079055682958113743629006366854720909402469224341496739079029449731372221476517839076917176377552101068512633666054287810331899062240937986302264484358378841315570412738812350457376822681704211914358873441366102514444797011044455492613946484419226586866864248172707839749919972273208362191002793020752769559011928420013371269536552235785671037324335865104074896474737704093980621109981323987640591682666435506415213319665369576693108521191523324063931704632970712836018234505850477513416968572301078312082213194336862218069555621524411880506573904505612747115190496242363858799259470586491024545103336569391455525632652243919023975562877594537799211582881244844707180633933738452712745030787657088306805145894040258712093604627207462153465160288339624421155186588250573708026588703618269863490005886521102255835442953465357988980348579827760853517075472251211572509631088673412265026975576915171303901451198815934488653758756580573730655969766929682719583106595428057293811423814519514093871235577361914704490121798724098260440833315537075402176311191782931119409337554566588839953104849611972773446376368647431764193364040393499889056570323974833769911198965890627368642541333992030552398843098846139329392273521214472999607657120780770898120801119684353642501808410259008422756975558605836878559870939533471306214888029305271561392138915306823496511049408616495467561063010749967017659517426895277383798331131970589504028326072681399806748351695366334950522928012280127459345912316211115274866941928510497123700354940078769989070450438331344584898788052285079625355361373554130084993864461860284032028303684528699211864354887470313276750071763447722055398397330167488264374667345388807575765729653354582530772710026073966920677615088028312636930236127709706542052375685526666975249786006269370412521000030966951225352753532130677463875630023613473348474304627555654020529348099952320373619309052069102109505196803162763369007731182325382116620241550340395266745803064973423383202401575446442274805830629365449128532064945953010933555599515632442879576581282283475073117349923632162943720460828301262731668679051706304171540709661231161796317102495849441938355888468180846790130258840226140620028821133097771832525895647440346862797766599467866179012676267239580398314871726309573478314484913829308751450849233618579820224141779128751176078355690835710378445139122151933156489474209684353382909553965038123397617584382285361317761455969964450109351956898898028355458086879340420716028188610184421148260394847568987482429760470779433373374724238085310350959173609986529857287466186603913360329974472714871286465013581369681572806746365623701178037047135577255941970777649752687430442165819180020285995621545950744540486720177083286860981966700250206559795736434177094457604044466622529079701476574186892065102026269448240418163695483553061698934410577929874426683464074607698076917439958433500580597138571463609394222457532428024606896665685000122294832191652698248980332062459293640006935308175502755139531104900291234992263458810310770299593451496440102647003007628248179424388491265414381078873792934171342323741429420249462921126585540209716449590859734210006468974732140026183770000492986624890010781245939508527621594941749140273694789662121944651220076950040685331843841103219156532499835280964342347556287459587694106726657909273437657313818064077453982195443322619232876645472481764964439707526823872729644511055728438608445316095161994626263386516162262446841774216612636123367264762770384986533569362056670120376876001803458493093870691898692396531588855206462668673081570804501889163562970685437812905642097784165952083770823058890701304589363615092962624370885533844724809117936063226147104550785981890167615752255442777733293728838347352724024416694235029291336858409956452243057473271366741411202776054814741956810082349852512795192796870713974705222110250229054142308535938528212733235953151607475092818855957502973493128071218200768659451915296381192348320522986415094047532988279322847725592665140707362291685039855515530195820172399723129758499832998884122441440561550371077489390724965983419816262136918629740261134151337135816159065878151576756640730262642488946188627533336856410712424960310314094960309101762186853231792127214322777925271526856794293796722036075576138076955181546226310705484865747550787589045797436437364754665110223760549244752868942786518805112203213040348136562673434347314019392928090951779631635410270971836700540342803061289174377411923117086969796477677233088342016424535235650269198605981803698082883737287158560168685160823369015701699916946688298090198888691375975901174015631123134248517249823233222594080718911790766158089459795458192417190216899075291914881023474965986354244501788152238787827959563370821328767496820642271281391540634853315844884341678828575538480390827811208492299737543534755391955368565875626019826074419817661450987735664132124706019488363426909963305615751085115319356521783544131826520748722568374229489996206787832894454367255512043689008081853481766746448064838842502310581133095858665658507205752054272604881872150437551977973533952840803061677933581686034657656330127843106082411249786910035158294277398530035058637969972674007938015038154385410087505377525992354955512015717738100150297303212980050448678376559073013480468387081792360009568206395417555668774965764210624906653610164923367058662586510609315080391850606085581927917860351342638648404575730525412968791666110109428161899777094914393595194556298462067044299896976145268622214605567191340913915384836490399034931054827060810604155666016152773339287378052104875818587786718423584614013867846979379803111784022902509286528419632201037657618877866374045805725333741075715439549637025746233718139205609317682129432250378220423210261351816053730368437711571507025490428373357702359478213781303679507467830330036223265041094170767905065607361942126682899408150024335289815808855244991830250348315786173868524047512041809268585413534974912795726723816128431637291722871636535275364333981515454303096189027888122226329802348521700495304185636258329719879381707534595624953145140904268747996688842338012500406619301299366055365909958657452677020179082794974271350192936145838975847788398703271634331080322123618829371844374260469489819073294179816422095370908401827201084303124221175678597662780660590161130686411302139966236622420959290567059426690484744632270449285827734425633436306602043063061172992442810345696854847042141160978030649862474892297768706669091036009385756812441911403399810661075898525001465278246927574209634276609799508265857543500665875239693986172959124706991507039908735939682534411922639678752165660684635802456164644030380776127443472817160017434637867111329465000033272537459685526835359010858204146074512323364350596997238775767544711643690259464736544591018407396532432080315737596951863685474919521354861850771929934782943957613470385310099097678417808678843813387784936195162155473685705931428331267379019205879714214469533472986683404775427600802407875996570781555616770791943860423703076491125453380578115581630635274355883461529390050588536312760221621871577072648207116397711784971835399739484084050623849332838187560433282262987705488427896381718129914437158509836072658757715855238358500894313171511769951068466827386502255881061169560868968163843088494985167108481765661087090444248271934814291177851272367710420160075485503416900979051303589309755352471818790937099582000059546923976573627565195331464781424444292258947363550629176568637521963586063514297592888668491676808506589088247198769251729085222804686580246576656810090351547591958579564144579694235348801018452206652641877471298985300116109325581614333833565449192133907491184532851982112921096497471278443322186303297962880350138480680109650267132220770753868426146068429828383483490185900677178212857747564615926377490449646204317344978862273008956221944872961265776666122818043811397311898305649529028046380600219670752838432907198650533407177824229712106620326595223428125461260207316008861071894901086734359901270672798821374671866721165271515755008999921795181635698721740319697383044026043586435499945912431842491404403126915150751114281448682793554009872749775358405258332111338507149537742448073168980621828226848740904905484333597942410440086544065193088127058487277622729682657300232017623817335690318234825478099224353641088323831005374764808717816711810077501290309454087647880369607657450576218983750768700396715851713695601866622732751883566152178842826559520287621318652250337627677301319876140242610343903618810918633720272188151580765647576035174803402864540139783828035452863097466642955963499523213036981581907316403028475962826035499676218776257130105521425532957809348562711385525776089820609519321682847555580585655491273073705574335411015370204024346388849670363148247566772450375992190944561010702155037777227134520793940429743273381307856816647508931364164356198138954933344984544632998701176315916641724951795085573870150667671319085666776030789560915656715848597632269577709105638388146256918561415770393973327550312768122972443203885429559479587223985063727581649839436211866351148137590091251788178354570337693007501868491701649183333070615935330092794829656285330905526616658194613213759674815100892438297516610753795117433693319348961652535201374686438119386752442613009297862704469926562530448407221247906838062193957834143170605742318609681825404482112966317366581301959871502940159194025961267879347769019675041775945696142532373053942745010201628135975580163177841808678641303690504773205091573108327029614680997176875623031058163075415218504637812978542664278396378428417761367409846426773539188255352457207343033634149979597681512992831448518959621017027724597963789882432851767706798288089817793014521639676245023993129342385807292459470587750899245700423074625433899811809016826001661997338864296434390928836590514897380291926853376135784671517765827421783599263713403089011716885346470810691717727837086381618488055624932148127819157478044402163620213761007636445654715192698984427559545566338509223805336239510452977088156763534101818518136461411786253714360836632126423354449674355101453977124347795338725706708439010575952425364473148185599291031365076370556478571805727050632624540691380967251654557113343623393611452919864827139375444319887704132185486114606947133059774879771161664486563040189640551352510034941385747655647365169185220678264454047606776825163037771979324123375596761553735149521597556370688056477364240094621790837452584079260185211638862143561726887292937406865043737065500912587519320679520970857752514166791990040464332468352830220558335180012501979436174484202774854688742579706568219073419769694956912845621112983275507344469532917123162429142796966457557795860828581821143943931510540398807832204890814724282035476460244115802247292023770431271874098451858559625278758608974953929832716032267531795428214755369109113901925661083043596339392668550243889247391116028842932401298673652085730549953833200277677951793912317385938175183958601745927330733729673492287462416437310398407383312624650344721042081480590740520011753175337897263903074679695924382038988869729346570876934966992431670706103678750672216238768975659205805074498369974051864284261168797339869502703336317964198976843047398809246097698275652765134162744737862831248950776934064384389724361494576938566456853483218193631111728915481858710481523945465817161209497649325456200534034565949697468234426152404382128875501878757552239541638291991103791251275157125308206615840649817668160493989023336890818351684418554327927678700612575429244226655492978135375074377652830975481952508693340873360010879625426399326873424889467331543263195867947574641097939573881435680524009900948598247675409996125077619241867127873483769780561504833784210788969396910824967972924858620417765459614666452562161740735870192783763668039193118484965293444771591868293134127744426107401936591570035065323044507159542075658461941235460591824402369899382675603189444125132064960676747025968422087866013024091595775475981189415529256716458405000149213420190577308875778441140403365799296970144996157249464787502042649097439076906012230129119402476728871814600359686295530929167502276680544951559814703373927918386338517152778879996749052459518451727303841128259967658081417566681157653940869555408517404886464082015453828293548685974989935455944556980751607066280529856517948819533690187424920275820964012420413167117697591505725587199925725577873356976972166461412192754956496454388783428374019210665786866924336703618695281900530726471080404359673112012568343997680970759035974140927947841804676174321245425476447542759996007198348684415124167017475999000869571006103169871704622297537526597655627827013765132783777341057090310177530402597336695177295572306166049559812878783782082858440567903806814426899876765526979103263517717872910545888212953901651608693844628800369083388804223484710324282178295414304383061486765384793532924847634612296547599210034740458952577312898373096174624459041205474573815521801461788073408621153194638099632484190323176172300641397316653171350836444891308303113419666765949103836651809875652507558678850104364890053803139236844589772932279366287198593336951853888211238426253604711660564392707726457948851891317677456889057210021646589830842035222660240080544398142007028289527939564506521588761490680050949597665717289054734293908695131936887400776808887596716910122789159034204688680756496040902719484978263780487560338171412862699071104858185038593076687361188501771328415172872650897806695170949655167315253492369287320408589636731493509722073255265087234323726858567859425513773740132786811763012812133066090591974315199185473642305635215904827917851414322370478161292194305995210907478853650099615768719540366885758730035250201113941918072270164301606389345380156224476996158691343813202395666241928328959729921366487130100404536827115949728469852476686792002508387435150112468943426649248798290254242321636722937138430188348928099378441908816481543560705421644101725440227330808073725881387347411923220179810549217450411241931815918717548795889111239795010067659509158595955777905309521142097121151075013898894749351843840525989536618961194049795536706178288723218573312401209444875957877613535542582910578108166287773847662192496272499288627274664754695858424961604591394496242208275940995800886366106569849691378791036235624073198777085063272392167078818860193863152953369809760830450904738980705631544307193937619710774044002211525369589329125766924799012343853421459102877802166198759054582975528427616404436859431410424008073409975093984481403251575134955802337221640221757111378065760712026479334798772343803135676735680067666616317091394890979630556096434399475099125752101760927384100075097504543408996703113447643229316729658370598645802506485159220701410128141016588740605998421153065990275477369807485487759713552823705000580076802566531361653984402344010952483435306448289467861056179386561245565401428618052255441350046319529510826821688453037136031705943000204577013788823160520479643542705621292914665735645220413732503714493991448698162546540292350724246917800021482701814003298797675191355204566646100048212140241361716295155238049568560475961217736552777176900435728693086094422789626327537989441371859540540100813594180195215605836549769921282361474056778792788801973400174337953035977710686175054024025097141141011729290886245768652066319629141097479671563962126272454232571245307281602712312433725146229596102861354660978013346838114846461540392274627934722819504614321734706513857021348521903375209900641660479442298623387251035196605160487448508175608343537342795910626250325710203697301523454904586635360001630420288546350532036012109648425513071074802837798999200988360200563546086606436571184134849979687927239578136620895696095844817240627042849196938104525606919854854651957297171072727816308118364010573413810389640603549219601019347895955627966669195258036242093054368496624336028170455772249751541385038864093937937667735299413620830065547018056569256884654234402333626383172030431346977838802145616597559702620173998404472951018109172093545672470444611260886112598059037534515777992558724201083223195409005801415532288435399281742254632665000853767023742513712493487261038198047183704012904032993015928937983177245036852076355076409266486179860773287151110260128606007732767873054365653318718637701591999376951148603098895724645799186024216858630761523912586095880851200305986642098749264187941826701395465703469427838547681332652630985555858804771383593164701721812020896470961729751521030122336777677385788481502184822023602583635209733678120949761779423862865984736257017591887302763036640763548778951916474399474462270357309607630976131358426754292403843499797455549755393015481840645917230362864676774184407172237602671460036325203163926856511013479037207666854205799334235063783711029873308563560956032690821046891263739785456825604328191912678173602418426789636202891537294067434650625613970753506773928649107921176424594339191186226396503928492584447180924489647312519310501380067913047901995347593632955050358867794965249706878523489456115284805095293763771387963908010281600866513873682802914679703480871254402040106791511368645595113411528391057364493016942409331435740842961546400581209205756537704567421206331860399095195416905371462172840729170730924500006137715266359527173337089482847706330935033344194229008521618747317720384177832575377311046463554992212948721954681198597093614602242588443589026870940126006349348110771511865157637212980055939219326583044777068447702015599293719495901084879122678306618800671815915631022830053420059589314143135244125100233847110433738849873222163246503619302696958875535856129445774968036270259446365839774379180855121134803405375233535058224095582203783493767971789266342471677836873421443719380381401291269778902470164647916811018960269507058768135388641516449858523793087683068213076253400057138019344398488969242743768156448895472680796472679532647976253908307455596091605099871021759317750828049846505677046406877691440287311785569291364874147733345981518459879492039689163197731480635564633011840589951874511967573923275573921508369078858055395535377008229571376661049906408669482994362659197613415832854160133797868817676581818012912530187538775333908719745248128996413257293196340221973439629845277791258388688757782854782505236034498500254950434505087889444905676828757174408655447912061006581382689107347833271663448715942037804149176899515388456908386243249596836961714127230159081541344808244469582016970735473046467512072328553313839453543140424841610003733601051510225797271549384549997888853905571844536947561541110838032044947216156903894633085902103662954044515801184504764879716833748903751220973929438095201523348811217062016282393819337419197529588080621552536588954740574083505820719540793761163761521536526077076374905090576337251386067956763710771132560675867078720312153343688449519795705073905457178155422999213768716939706454266739614225342446406268274882239766793556957304633981041729412845291236892722683116587541323726056309078661132365993277905228584581188922548259463105562396016610069260891749978817983220528202543194302757956187772329903847656066337996849739792790855339114013307166724992084902693758723536593273272249169145162565489465363815649776496261240499161574908743103158782061070058416735845313665943681232174629317870494138171653631335587726450176267023604407881654052485537039807291234544097013956071703696851060152691968365624943288004037080175412727597550957085124815056962594152981369488619453332588646865199817957407155378173540084876022769284318234098975207954804805650348767419598152581826009994799056418762730771590262847264280997239497140332388317363195634816818709566244781493083508681851041028671586773358668025050169791583253639261792250575840296434565801534130470618790997206328156603214584638400504420350173589445096339718751567944584968464163813833637247187858143704295781197662592623734276068991834585009838072570015477081831786058092224201995145699498849281615137937072855471129492196644606648866896087974617322845104941967248254770937516474784138545115471429734077920245083175381860010239070129237165568227800197152592087786318697488947748104582460718219860703610060706315842743385142211266319107354865789430810644417475329376165222985937651253948771165890919641756464060041735243016163088412955813816425052584042673721054256736332131051827489221626998486176532415723841333096368037052283730507444695379058608837034346397779672968974555618513513393781803356570295422722486901880891973361326668888582310891695500501337971756045816634172338269099474275639196739200157253948562276629300043876381727921892718859808488364224196292225017542120927588924229292167741731102539598017788037055891254389249743706868611771578076263745832654772702134466919857616148309736756144544776457506236864958407905692612749172270330988488182128945821072279342427210472312481788111249180906310701328520659045820981907673785559397594201679831408324353419917009431762976247592981249726738903595972466982384749007261260413343435683074391976028089328815670687074340946766643046014181030198841372421743943137546623071119008512704471438205092402069250544249914299669625902021579600463269051357073081589816519494786225084763267898190625147483707174280561537098340090332287287574383735876768066073595595668935842669122187837949547939436720712624329002158518691440742955942354415370634868089334697266350674846160722879230451286370828732731737704406892486638402821791983626242289034021990652873965559849386031897337179984980835677210993863991341649541116637821245636213170465084026506805290546550843856896498160848643929459524608663419924481580725268546889827367949413159815001988061356176209000816671146494485209450971368729924531648854125159588292742709160079322558440105819686028613010277599538777154275751033526548516872457339231594080026979812164473043658529764885478607053382913325268072158757321411588713220888126535040690600607705980940473400785907908251495908779881261291393803009787618227201116446256761462544712926443267102084268579246109707428526846120132574500157505378964431827949656520716400461046863979829476817499604885088403153124131159053508622058340662470311481628977644389490845268885150009799910070064202952784974504325608884596148266845911847700422653377870763368274144851835631120412956471998240011213125670335626540842223931738302765923985142699243590130250953447692312945617241501118166989838303063977720902964040885641460067439966905369939551812690246263181617072797198747462781840590675951334572188979568488440035516996765424563648145401788421943696854131268277954053705894697479172947294666418335967811816531531899933270646845739869251659316912410246278060369974555847714816175709217846840699090433984652287022454640191795391261667574562434099142148092975151531813792583825764218744116444008891859564657546254553678682800159725584688353702514455048076014084516614047594016347614833469158728190060710546067106107069210634832646636054433654764098485817525729057902075393925670401914363652378166127179406870781574480201240762225383168523876630080841529895107896756749056268865082671280574677304243482924551121132268560581438476916802694686395531430905316237531305707879276776275806057686823960080511239152052065445284123232670035673652085470432641253380447279517515374032788151316244518568333326939359970727191357982673420046175734280435615463333022130768977889650333085093663069205944621100963684260323938834264986215081632364776671321202543524690086906754836484418266661550949819458130170092412017422738495297180267221923247425683529335188903072775205308469964379186583354553732334527847173705767149443439087922614750995562028217520370275324835105523815730107356931162014963950169785209638232306120729571388167909279809922239334536861314941298535031047863646028194516518739538778472168349345863826724276843609262342428255223761560651989982749347927532038760708470182213989875153536802826020561429486087466185616718335909685612314721702264068805742719036979222268548860084993686152064009468264175735121347794787943320532063706684666744158602801655373848346112462185385314944330557747424549987861987569464564323448839515224648832196664040996776681081542148611343137439847944369376104653966707416779759703921098548215560541337829717367694123174475047216189257010193360247720316535339005708791512211417853523316640517512687127901290585062746740370736397269802995829836954109268497040911132163786572612120916352366919959025677585633924069226028429045640869657226668699664641109454707732235422331242015297257968957896861205516005583810896571750383370082720536949666662236861398920948374316151857373069266097885625443559701223813683911252508810551537768008152143205344329530103639426069371405696523263987535686658207728285822767009072641208883064586648604232268016246696609131302298966249155166317475136276652853934281028748868971078860748157272171574919394896302093100186256677401083922124616873096288407767039806995834243049465585461588387296064496150653945357294236569742165477179541939103185503735172658482184070857927269425466043817920960960743266761547851835869042382564077668563189676264744761632126829163845137807925544136130740730574952395871091069619346863695763463139510432622342947444540717466973681828607150698260485575453206358034540534597537864610401345975878392108847945033300002176045112469081999663904617304304434362267718853614029491295855202293347309473653193457470024501422223960745890809254369724251758466250373411208676723531046769439615652499434937083878676642671489237487771926712463091923078758682564133949009391328619158367929912333413668562159415228778634954681355828582214632198583357038323372081559939323006123644857753072096218848071635970452743018892321521845280717074390444037954345738387532314982217300205654767412967579386463795677764546655363391831465265842285325394633972570787311405736989173563525366669877238734805989528860534351863798242515586421055811365155852609228906373366461118094012365899652968636765282759716221264033970822219818755192078119234915324093368274019819574728093238611495127389076484283836799807612398683274169644786726472638621023181986903201170984121727829474622519189719131183051500935407574559218776020762909014170638279122584345344689776601853205529496068474910735644914466320620205944598966420054431255437631780812876076506602846753974063072609868635828273327515870203786497296756140029351966287633186123984364671048578888943863731756667326195786994605474301090714994725129419665152249000953307176557269626329645616038060731428115818804937307930354359320481829866276138081060299514325358468704602377790605314950292195341933017848017374672501009814359306970309533853323352235190508197892480164675539796485893720257060299215944425835055804198407728775553742557183118496467086095211949551896548045198772828999654881350886842614072730864279236936821837055892938368227760218825408192342617944779985565498892475429626850962185113076415832675309597717626340960696319935503043538891622908375472011998162233772477545344690338256140968554254165058962459822641045870322908184768104662259241339890412703697055782261864845652091271984383207906286959201667352405301065018535896233496053294218699857748308412102958205964233114803149910822216070655684875909767609872117969977343239330625972677966542309434997094946332492639947484611975654637568837638056246881333013430221239169459069611737589651903711172052734614134638764290801676141353785018664494812180361415323464091924958972067847479650916102046233953975802268527293751256596859757777195993207482571106852052418769753528703280253139139649877335218763960567699609443926898905177670986229812534066353600485713031120939945143840370415808263446818024883703024619771002899414340051844977777366444766842282460574569595166757898448377214899595740697643612572084819811295690871408662402147651178865008011795245729343743907170456430406103545623372488300729475848266651115930579137168789449536208227542168917083076794647775204934750829526106430326958221134332789726328705893316494532256201889394843480533681416411687205429549595707022781618125386992943375064684549237036356933294283327503792157810953985735895120124947440741961822053236571174662555617387655862565365133529742658083039405897017393410225163662814335972055735278142694173056864778458579552988652261756139239335232987232297364036630558423911588397438242694100549628038670450882189647283603942439662028212753685807849790745736509807656028744123577835722656715303424786199117009506720125509423068485924372626381081394315968109817384617950135183387470105045609572017926092839842440688127866477040498962347313837045076915475044135096204111493015943613860287537615760879923684447799831223124140300483915963662058356488920289805846205409226842871829084374762761406449917481721131686959217518411519570991734759773840248015342098118070796631542395145825560806592271176106732029354284158053651519859802797370336220115765665447336677796955751870120410026362240826529962853590881022346205670673539671881779401801481100869326005699967727590029344536344989010927060207665635450119550802571436953245003648097846919669921134103141565316567442202199709426087638211900214910642351113420284467719932697517997462236382684018371344851028789823831906565183107481140307652417642782485828002801165487002224255765463758147686339715463207356271962051182276240900489304733524493713502066276254647516430591625390278564039173477622165738832396691151179409962310523386489121832543908186601464437577479897071773361650441529871127271933324028894274708723510922501687777720874002477704746791368810506514364998933085005129889310733511819266656758187550826444729565624545643170410278924735124662993162906615279385885151462057821866899778127338005606500537993453454766565439085812376798642253860019383588257530662267860691444114017890302155664442620792834387841542943015823903243341770182211225151843862249716811833776668851793926969151811986089412364243561954469929107621883704484547772800742572140891281984611941571618465886781743019545897549623173090475235398508255833315866022062544413682701593668953718548310252781855752334328624638823809265022711408166616851052013726023604728735366765381085187423727595248787060322492272891513142047009672796283681278683541907937609279162112961105415068907698836917289453302132602767112654222268543927135592020038049135809889155619545367959697407328894239884943615302077133500917591301504066050548167930841712011553694705170416953916651257528050199937557122032468861782800391156459079291844924050774052640029295721066176728882989516804044445576384951647463895343031768511356435774502635703336467411860616051086215291654996523403637951734923748006822919970950191314533325818231036624954441371719128164628436676974156907546757231453222602624063964899740461532272235580457259789437125223813600834012393792403846772882443383217716232859874544620110107199407680360556711593294572728649452289850911621903604757015857146812374706629544231540882398704689834096197512839068333853006471603293651945516147967425784584307088451198305676857044354526761560867468239932491105944873430498316811557004177592666799728867912656163711919547525333170622932810530631465035720206903518676272220869252423327280783124060710585022967605607036479563735669690743783015074804496974900596347650103187604637079779802233427266135180359741355030495461454037279344294912353472019733409878677503613194114003809238924382821828334236076539099982780439229363949790707810512398545083360389461135248557300857591723753729798425595530919721235667621733321558909902796745705199898595566974304658172905668212531300441830591463115021507962039738578394564428091544691249659437437218480978970187151788385087641614871765168040116678634824799448952549533135021408842190872095207422190039099301773389895442345917279095044112962282959692170360344782196891668809884373342310204452255861079770113646902208496126839032317459240497424962948358091279764407175141717202955860850606762822942050048755234694025951697032976925244108330181316525216219270342436443778780576868379428063885263241176483613956280386269007199694297224677207493390964038448762783352087549850468954958453965963293694937087651245992506638068819404067580782885463310061608245651180476685194543337764997495937415436043008723892205778003460217640032546836076214655022996332126487837864123349859208741665622665259921563087456883285065871674078135062171461219691648695741794775299438681056862840109231237319836109025421905348496327091055153577156436948711129655870311825376351768210200850819785731853059576340678794031735480341783922611876922587260401030489330568789146189319115905130943690252049790041845595338342447187523991662186801339315815196042980920071450934584263588844268073745762677601449946797226400788864497086691130233029581931998769339754323780677994074453286626622974939993022488033555575917854788850711857901536468704895839765436847506522934418864627028731725962400735700269433665257049795996834268860079720724426103072368413903981759357725882439452151085542590674447203711087138934466078784700750784134073431302269015475437645884938907808122332492106939577918797280442029993174371909888654957312870025931694065094850629136193265604827536793330883923372241532815469588657233799771930921363965604232604995220752906078871425451478349739689017689151144967439476172099798415438150011275240119508057031153136866210992126739639294368428658168101204950857607723913303135114293496005824569358078333928954781237312717770354953751096415146177668482464733557527793026489987268508947507307424531252742271022342776217320386592747514277858894648244104399191480339004719187710383977306636828026117206974228372848410078979270779620673391366245924024829382953614200147330338525516249174901768513716244048089054149433410901993712350638781613467745247324669282987590888594671780323756223308499312197960170838490129091284492934204297889424848691802928922916735620500468164465890501296922109223657214113934106726160918473385316644303616474730824482658921068066720858815056821125940365456737339937241656567447765881983835016189927166799747743845119622557034100578206833089739589917735528240840931332420134693038181172886939664162664502809616355159696616818660359393545785260439207012869805666862526091257806323006780517118334422377938919103425990345288003832527465575941625227494468168406551207312369860115694773465201254438189339894047181183779346537644192842405379787384235836109168454617261026215590444940428411635531173815373491033775507534727062189881290123139425284883444969372255266692500714804508720358502149108124149986822213776180309382083152141715381007939451467809078032962971998319574049617565509300335217114747547542806677855444275050320062564075363078712763550379614315280154893389121831942778899618059186642323807838764936486239970723787694585750687035801911579039023333001154392213607352799502634130089385611876449598672082837906131010525076306203373869659243389368062853523212575750070420795581365238626893107886429655042348927072709210156760966161878322340738008378678446768396745347322389132407849176939736514686587689893592250626949232797792038064650657731421624417530571241423688396294871284071598908492798341390496505877967450098425506599297901580041643787475541562025976101355199303796942035910147317910849875819480433266295707944207002738175490300079242252062177919422079872657032700532403818234002231898174648895051298336062646916824394028259670392102615364500532119185749092181732622184345544697789767169176933826336184623818345357456873893336061158316096264256310703210657230487519559540190272979014438450861855521592232728047933552762537470441184720406512137750152719127947674776295429595204748467708558465837702894813764644122881198933827033020710319174273417656549089061757647273598496162876001161930148819909967478046480498774596370573303730337521605266075457918959376950200037650607721966300009817108301645206586892573636146120177487793441913348048485616655622372332688790027609095191793215086727636835456871167715349941715012092390024392439645959587471043464247533263942745692483209701307008623105994593905162780514322575070523819253214225912084444413318692114950470746086951965897565832052056623338383838649963967783944529662861388512723212971494723791287412442828554648225108391799322509167682728580027247550226658855496891879716344682789219509597687919035377989525531232665187399988383228418244505067655782528002306380767046228746386362865705342968830222174009133580443247140934952601096154907479506700450002067749674786896094175353201108959574820195092156193997032076772187509389488657173113740671776579613260219436220595145509189654789827168719377965282595832300986217232189538159025675074134395964056656189333168870801035371322657314212337674110897045712123655261467473076587835759749578842397928532028770273045640683532169702048151981345935635317163677582916945110944188629247023342331733039216509771296213441143539605258319069540453852378001565695834598361107312854295209463024114653861577533862646259276596137733080520718819510890827815628727679092187444772645738805440799148664829490302912070663162569254288887364479534457886739116324637568754300769158923607546487219343800429784913375513300940211429565107203051819649089680959402300974906844342467390731655871021531994827322319784489542336909509106087740963420045293868234497460789080032782161663464103053561357538748247324989381083096798623881643045796798257371794411583246327199153552057537328660897383887192311081893164452985874797177600779202202929638721516700447867679730607176093017935458015900511709078148604810957971789160258440125542596331539695430813596254859099154291789816464378464061864151475656553144772713793210477182928484445975324486668132965184351394471247596458254045605456432690158326180055665891740454599827933966145236724737838829151450034408723785614212996125917670628210246136970618457355878533121692257286843328910484535199642434312271551929956145770632499053327166834695886390783093555128723796523087783983769779670265162060988960297730841618579298849512620741119585804450542324395852155202520320191577075204641111072688981854658205287166999573437569902583356853493416538385896769458805512189610028415861387301842879000189804642117509090190718246746107083862496225549204139952779902655266600410186522740975932395237883283152129594457486201809942835316110754393462394993195061027640708060812501569816415067532011470168425049056721315531319779386278361689950540663082925527304076199623610678657376270538406096197037038248502669774947386597914412020733175135687441827668305467568545910339324875584470184618490519641336036061329876889361116235511041639704536351508403090300984868713042325212770089775204090914691092512111284248399568815012877739370113182979305755977761713867122837163732712359428434193592275917551548865052785670587008812467752062669644832695613176932412381918907212757370721977917094509480860874768068176741718405240994594000455246241217093088417993972465530478807391981781937334093420957690140432521180664337823388776900295510200959898656394010322727863044498327281926908145713475808538831227070514850534345856309814521339708785195266225082667725067634378737164970838490406179958742938188796109118076363448421777510730757607051610873169484717874115106726003423121183203000952472098868796729531585113287882331083797267042682591091405193795619795220532754370897500728234719503182573329882731241270137646325257164868418541094298765635806326707429179017457409117127356885148613825591901852238447798239220138811418668213399926033390869462251202621655597037114293945240889565481662253573237206038540042497590951806771661987236454834668865251788597278125044587939150806293627506034599371626038698526007181756957878106578853975396692114913107083314176065974086951523394281267656707882873955200970235501283080753069833298945035482397185502466439200611278714733917537116627743177720342977573226808608497104266043294574537815184934799073368240312023028091114795622934715006595945993328301729578290581854049000354067033190843326658657632714556690663611075797120205538244250934580846072997948200458313990027912322937306024649486004966361500063610278533040676395465881992981098701129863127895481431306549110731184967855207950271812443214750656953151312663896939424874179550500727799660136562022840494620513636024862157025185987693991089919385973272523240130354243112359526596386556941711101122258405365952123476942626288690081590067550014717384725022875030000419353553915768156436183739163353658154452582981032186208590607381587969701047157445378639429126441867465114362620058492671998664470696881709277030989952426943543104564346612481746371268510001705696078879596691842944995543464007287594403024900522302185348410027807293601647506767109213435205476000149683748170398161751770737670386739474284216256615582437719653451174466040907268737280127943331438199939339822300968997495624277774855809599342501852145981646118979763706212304553069843798086743590027694291007644992181705687779684189846391479775708467383476645659965760674273289047093854171945215613389831774946313860887945826018881068648924816893660142080538332647105732047013997519861707443400113291266366857624853427777589501860808080288094402132553654320144795450396363962141172024882270947008310279089069926229747698739333704229219803803661682077945535896327090389722597475964865780386748501890478413613502081730588115539938529584232366538594354616056691630397469438517109500513566988344854429205287683011235068496573546631112666104254792425980338859468752782937950116524483067486501458752660492265782370324653376146624730487021369624884094782304013133106316292994184216009448186105819123879313701341103796982240795828848129113444169140535863547411466621672879169310780847097394936966157492310432780082895906223037525828202531939667107858591772708201557142684686236192704070747381503091229593145132206704308642446526539229719976515362967152243304879865783955354115726208559970167383824453542309382236810714977634967598231079866139498250127236769740488764295360753071381614932960194081991195456387860163118570460241073783242667807928255407073483650999750802986515690651768453158036911493496965942142183679554949386671324231303919138366891879518011839802154302568876691771640552338800348369615840826387781176295979194964678545173560890222334494239824070505924224833036738452359815066178283982202318822348213333425969108425179943652102297445114129819186240863159622277891877234546929776798130906616743787856576756733511676884948680610427644628153422919411494241039812043786891514571306224848090962854226207267025958472105835710534042893098999865498632826813859629086916541943407165529148641093284813131888276154152144872778271568828791046194008313903710373728938102183020426232581083910990053833034087866065497671347053101057142920896252353521793228727276997070715830684403949214875806960117731459444610228292854742028816290066064287444120438392562705936497454738328130820042842379287902676487616528112357542040002272837999988577026928577607409048852041234576172863209717244455447163765184319050449234829827665116104680204403462623071004843474636192884629182901486796289865275203848360240671029567327640693078502226746859695847907779699789316813130406957304059870107430208468549231530252010110996667106203513426273959295629161253588441993223271611168547759165033121738330774166414718302280338966318769655447678619969564509242107787948973247074681521951278290389329415243365968676518291380824469725978106864583655802916725721499036008169162516021601419572646444572395637064143203712248708349755241647537402257167155552696954942130847394661756067566847576279598653053088978735501650260070744011257505865431259593551162899044629088665023326876076226358034492989667572955335015623960996562629295832780662556241016192987655570396028268809318153444646630486359945186194629759492739626660152199323435777583989955343547003406129282926615182588839000845379124085143069878019675296431928342965273182254005391793976629337244787458434181184425323751008586908716901710129405146534406045765155521541094880126971807014264772864175707587601554896897013420103678344891853709323056670736214546741393816528708060991316845334109871046007648690939491716569093482986718749161609025230252633562605252086058112118541277914938996173870497244369854506512750819240391220536788238483072102871478971803638795222586969924168420416434899943534050657016142366041126169493865614415585011598696471153626512300359967368869214920328814396615241031505330067317206685008987980060054575025520777188347884231880573026893845021341374785971089779767091385340773436631450926063005334526552757796712148957127643537476491876689292746851479917980445872062766323932499494099328264773640037178966114381547288583894260654633962871558878123791466344577344028813487230763526843227985631095919565954704706379709848958383491261940663736886884030590187989031675611550428049908124619851552172030574579428649249564092752145057746040752066774321767345354516267797578544472605958020642220318114146837096952630365322348795634500986007676262296249469502817446527105389148186836298873490253498042745662788284795180813087218959718759969137612937720954422512874794986103161648416622576791234400128902929113312582807216862559219408746509150227516831293747343111823314309795181515884903851623926790423440734328840967308945508700698709544589322967443474795493523183386740198150610431885389244018003529673103891766696905975623526705363398798813153849720079114509688052663015720528810848815982497861542562624809829230197105412756485887483554991967935538713791634650341577703106955547936744217700003830486295649461684119758353466712366185153620607375086098258383774380123147495141425290925979582142394358989017896994709099039666130573056965596018521318574452105818663795501139387676276303058066351428819141808631260232655196162278517891032539944007108990678382150359023984638479875136172691372571018947761988870735247801434607333037546088137965559798504537178921939406403395760783984229955738932131650221771529622642608714484195162637955506115094301747820585607036420589975209887547640394149196735383341581649226560062820200213458958518172175677157201335529355853750129242869557395539760845629625741674964888029370236131172452751922916221247648277364639846137127724788463784874232471977936936063318328387228897900585787211701686878255896637668531332684146396897912876763961181052470171649239892384637699951769221535281374415570217098484025049389715837971919105228313568791264303092215771037200455640712887629585581930845835222404521560607957097140811658723781803121172365798276329222056172133411277039362991856922527726759308525631159807118953849228069104867896197920120478223879204232644125941017354363152594870589149560522433645983221604419027264852516215065897801333227148353988595129042875655992378556067043331112070692675431314130720631672175270750847753394510921566550819280518387287045733269398369835829489215631474824680657516015032417085451998077000668348077321297519651487571704601054360027794949725703988183369778665745144827990037267528898364593746418648741101979900383205578151352119371693930315312638550077328328386494650230291343044882491397920569200856328934685996334006074834138816339697330262326354401872247093039920180595497561528528617270193953631962829388473790831617738852638246824502924136527220432278766256590831107313033723972589688487958013785057777644857026023262205121798169466418275911605102907719232862148838548627777713508138227188403655021204214497953120187204386967859305057979598705454678616362970281313689071436955520392566442551196250060677823022125306394780299784028715682632988619366992059580581072756610061233723257101018325017594509536973000873320494750724847050900614047982208446316753679308191428122239779556977042729464532804326098205843610128039717139832407335216011851993957756256436470442428559126016400635115974771433969433615519613347474321828620544412738195075500396629216793072186855937834323194473054313286247401108753790637591228868188316827429214498728368059257672786931291487851076010295852392530057679367434107732665180017633366999642788924575914022932934758545507673478912904901803108761800793858680734824898808009249267917824891987065600936475384125753021036412019843206599982029512014932142174664713075080158530193532410894283943426649231712536575453632043506848820303397773448747595778099538718500752121438457937645862705558174687988554522140425453150172728896752499272776981430758158789172315525077676613136398541509055577379842985363418774042837878807397864185952063005961645128691782210962044024084363379886289930344718422601099315073584650489823170686778430345620636239539655627563377346862572133091187503830315753411912434686433962103098256120416987292146114053464566049290090900564526152754588116672509136152173879015609959497174550447180238990307604433993352015655457103117212452941049667406473129895827560034445925334874178642107688968484896506566728692020929963418805262172476364722616163486331664411880854055946766147772694805760404953660600231837324878139411284404678745191997668697469009159200234942290182486627773779801714461177064699495477115813911830756954761891587392806654911686202875801252447670406789179596945021447194002031702919516867903123329505904315693008885772002290221900089216999562567954206354345679819431533409243990622900419244129832249999116294305617455137474187555115989967676350612565080655971058181772060079050225178319730114773399254308815186056279321765819152033334803136945002845769532283745332096508418692119629742345923583797618358173998748418387853008658302371400963637813294820967985919747118655660185290770716003630715414606543769909970625776309103383303137070955616114125820038578347306280024472594085092291907388761463912178639005451068041427016905012964812286414956719558924055538146560616201918906454486507848711178446398984969244033223803251681484109171487109542108566281724750695034110254695585543417231143069676813328469334730419279877735773830337794014866981393194039731594008154681557971824049125789245081357035422634661668135353238364681645805179456325828178500600599225624870127504827146038502412880387920349013505291926180775192229151658933003545661333054605535263633092435593770532500681054680462691962189092865498675516725330764927344637084614164442581027472020534157959738437668991938393530312871330436097119171215647750020634979161635698383558656773778033936930846909448810500843001379238391050300179451634884395112547020038122649704244373468089527129800893662234632672839183610257510322815095672627433879081624616859822097317199825003451874929765015124638336875524261416258276406988993174797778642794080830849812263159923856892965670879431711832933898635476862863326110957714958467123932939750570844932239733515549757306848712225116562650191403146744374032406236229697508196890384782924290583531758895539551844058137276086587759747226253859374171467531092600436060489146549691345751408132590519516601633802736352549045848642190770619537146102276375830446932819047249750321176112848174517239171537865296444330443936888945945822083867879434822599617864408695519058436135595586536337616134946112167185311375549311994735371901039765185809728134579640583511800455041307972508860066589700245651637116502289536105612686778095625367426436342683898371148142088319087551217180403811614865928071088573810382210795297030762992089654540949124804335173799604032192478829429295031369264847797523724915454011723643605113098301739275622233993825490506396819243091349801878657959197643424051134284982997774681781254004087555027802234041973748957710836377688770097750492136127154721303269180515846750094840474062920708552498675687120453566185202282870453438451601344490230273000895317894877271654784832899837863611502379236784625927644245465364822509595509293849153605776027097139497622614831357806987398021114409514914568000271889941176051295437836515463980092187561083416256346504521192004625884475478809379421543802284986559228157212060939706685488705284590075026440561086602925225672404245306581457861149505339077299365339643769047465316120269056228075681956470281447572550000070490623370814621691122800802586758818521579649802207231169831394826690549361396789543129212873289484645330166466913758583178070991587566132322533051884366272453292911148882917364907472105275318882903478432979545481179827579718651589525522823233619425641004721538884127775022002347868483221264368479666275832175412170825088901912500082163421770817461786924118741678159993313140395476407746580062805466676883827168824828143583981081338570334478096927285311721284696536201309615772286142498841573665787208302104378713051257050633337823642361872435283984101110794728426149130608298830464982785538733895050776326690436249815220141507399484440942105052130146243181012438593516362057516848246135299986886122784277592423677311450449381559955673278374954833469254451114928049624271404185729264984551187912237363094300725937231016138677685939383758412303710297484829478217608369365764777224989119103821692798307999577137582199891426542797037915530188122405726574775987393377264209682722854271156732540591428177590486259050070393074763616093652944673777959614386903909203807022323351581978365127825793087369252989349012081340484591740065746682723301630780414179916349757474654855295547412681888015757180995082961250899842685250096499482810648432049535523254765395380841967102177412484939524043076499110454011811320884570096619024148243522750629070850527181507669120501109633912291728775227754121861400409624969982075307174444048886010774060794890510174395527085932571030735437105779377879415883706011278113887369475573034559399432643313227820488528207060805902145689265378880397555504063856423210497892897715759507216449969752358062227376867821987611162045632147795772235913470994144236353711123916088921561631621985175128242996155649303951213812339376674547838525291861614494434927567883101976664952174440427867899739152880933686530392323044363120678306571270236845739727473062716857655934076222816257021576952364936815419643761013540751066594476066277334427847261855203005691332794736979681878952766071534709926257835953522278032642142785359147392934343742811421043142314129305759044829731355878805784023470633164896740648923185076473405724157806223716606656242576906482526955350367024409539883114438720286886136978869525920015012491050852373575619978338702640909063097846068574751377263273507770589705095696099277738843441458947240065746148652715625448123154375481742912300204826219880149149653465701432390831887547495114665433683258057297904700195431315315475875898915697694760409715822823614496108730930822782282849772825651715822612573426370250909035141304125595250445223663729960942174425834809773360703155319808581412078715139561437258010765973559533327707922485201133445291565661719348518841153561318413268337524531782439598210227573137093939435072879208514206550679925463722947649097233352279007056516909625004425092760739415843057815985525689096034855533652788543330875606826679942408128816608626457396878896655858024874117676671749075592419611891325581198053522145585541204172988148400813378470062116667466107881408320646540675485140890882715863018615001850044432662179265411152273535214285464975500374220082078939557373117307422244904582589469482034845406003850159448988914059097300836835777389102003123820180821526970677403076896497372375580764829858051426887560244558491972071409612210616895194947449580669496984492466432425153330113375089950666829765218484770264652112439493737172261105374640720077747164097585883518149376543631002967258002034095369784409805627380598403933509463869577011502136160759451050105509897026595197569074359684914120674942742256809347594122868854747543745802863702874011999139041058927996401482024797837362721455488803886076180863262481172773808261614155825659886929597326861551866872131212508580544537619126992526322697758162092154696697237990597424820869806204102984920442166360287546007358728722613228245681765840154567848520740592372123164983691020329802212336767250416901248159913332754122258199305952673599536561659472599047753041691293341593621708462018323484303405888478766865882916107755572619389047624491230130272911162380938524684493721567372223199133777233021838762479026778536411636513289548288239597743521366744247024005304874944509901027769785417485471769975669438295793616828323944710014973702754613337774231189850217216307299921171069003235446908297094106575104110600912531140507196357807122367540882463456374078078991798070225774025020788924482777000408933451895198141174163160998269837167584032328546851314689513256373937616053007243407284993256216160240274229518622624315951080194677133424069936571807801998654186459148222652252675948725061020749253706751048458486808211845851631664468062163656790778720597131675811898094198175917145586293208381679143790165052969575226106004316128770287557460339715487275818973808118399689175955097905516487666655546417500123546130585787343162374523824825669609847442413678887854056713573056659090518330303117111004063013536318251716045182350320080203859006687498533927552690989844474772025552731147729746647989601934112188286137946833849912186150845147611773141767932398978656395686349124471544795175885722578013977329298939475259161214960547788273132090288091071130121343565290047810031795696803740277391356079699979616804301551283583636949115532272630805383231258230217777934024844699450727632891729864787297005199551098335874054445753208315428404801603539747434262946385168892112035196245695397747885242147195490080031124564431765269542602606191374369247770965580240715668235813596939700420210485779857143595654229393851054202051087428568302096508506410259671666284195494977550762490527052235966140762369191925742403397146851381479072695223841375643746382914106979729737776701137731689350107624704249494375370987925877692215270568427799678902202379715207372585202900422538813588880352370835238569523325494203220349202021132706481533553751739332350072660326021321539684248406738304103384448180989517600889259826509566646841216890333275661986534751145879125888596462175765298032012601251247266175436845358837696087401611556117103857357345859716539811471782994029044863341366936365545096232838260556618140192783000904396329362011779224453892033653949261190379119351085781917793211046527802005026401765668441587470677244155893691528736347745189829203867090695814903014799549827032550764511445827076320025547451341052746432388334695541136776140369638197800732600411504237464917357123348590446774041170942222457960925125169662297605906339855208625046604810142014404217106121596499487868313319804533005159958845203512380220657864953046657440234617490948859957512115975386737060998822215838253222945813880763637521486343344106390195864978402372025277289186622722578653051244340338583144539866370719095662374306742362850615522774882691390919594038218243621770988762944551341606000730964760541242350695244961487116696583970503568268024902295575592083748824600439969863405034354124191179439059246890714915912496379601753686792760526520316480732370695495551796214500396135352612764597898147691228603567508179907688645379249857374700771927604826216503095111001738837960933137096999415458361682601073155772016635585203136520843997582677728490183546826044224473904586388945414180995051586962489634913988368761824256078362279371181787037019155330335726232455049584534496379883732249617854109517610115415414032179433526750250427914937409590314173303291946754030197058442469460716653825652080744575359259773319819121887586404292311591090486295910825535751022218773204482106913261177595645449193115031188955247267859171596794584127205781876873731475647372933011891518463861394981322890783193790565080148804675823982043878763243627680330811621554735230252671945140308954680978888848767612730657171144869904427265448351705830439613178875973621905179703015941534137832488647059279424735394275948519269899652987055470625271728368720210145510507575908255675232889300636040886231078011712123153008468068125492294038763766310821805100939893288715938019892491330343049859616649605470189563137131995959734397438639334338372566025982354199657860774980953746632786196110558573579023015262548783429695478785946694977580328871046370301657004872806654002087318506211938203213505703307616054473159318494777938854619588028575604710555637452628225460830466611058977627555619275439921920150712031922507616621083253648632484323067323398784166105743386990727931730157790212878378084657124646065954706748764314648501716971113846314240104608569452737814467799288500116047299211910399756473405030722201241345866132265584466421296001780059453404859948540690859588043635332790112817337489610274933673413467509394999978421428148870645460014534918089677298488614833167878416242256420604123020459826173192969522969890046724203398288442798570078420785041987806316634208972290383390559300799802995791094350309639374850332639313950483965062179429410919152549775233403380305139248185200351132703695822963604060192676839397308818715681249192972832547249889493949148095766420302246113863855743177749344318909727017203352692258097210549970072590011286432728256930485531782117895613028665252380655948656021659979697653942896078371729651279669152034481096970796528665831740141563766007816930532642383941264843581584747028577642681354912187171361618905251382072517567501342540780657118387839893460734066569847026009318730370707263445053334249001020054463790362703862717270169799101983504940816229448461147125066559208658028030866935791473251241559221743429695219456965241968551560471464964194384816690202621300720072992126159615070673576924734542021104452903082590850532843768508411643918859596567575581678318849687938017799361588009241856700072022021045168088766673231870293447527784921339764305083570940384279733358850901348685997805241879378485834082612252729498954887763018489730879988953699724211785746986639498107552370173151830711734081311853467293940921697408451211002560793017871026893034021862380047828198870090258243043920384922193118303438432556477747521770598116365673331296567348752116244999360056592243638317362928417483010990935150942093226781618904447632115988343801493387069462261088432042736845837152828981097579076013849044597352288245087435971311052052625059226274041527598059687789701374576595618745124095271766176218014792740658517470417708059973086404696120377896784936549777919066750653707608207397701294885958641958433627126882570848607477249698488044070283175654317804290359680306297374368154701038095467562010980012427201081993823346506558915072048223875936756472892751357855597183606081686461332590708428891603623384315918402075607828822092257457566314324107942937642148392803861159776737308720003172248035851507877126822636366879881272412581157217380704346043181114792341489045885907086401457174645027962734800624712592413147569522737538764534029793284816679297993897134367347204734348741522681278640509212520797509413221852683898678915121485380262763616041224352959151572416844682015795188885673086099017997506646401713052543655017560128422339225220276424435081387274217110065521036105918105271066398772796391368940031474888835795446165264349812586793058963023044921634841386394819453197930940349127262287721558097828246578064520229841975820393888706522040818320639454726605284570686414480075057043414260483497701711008548710952412900421778541238825084897143291735334488891614229193731428434115755353201398151431927745853365008670431724475284726925486556799678224736682159725788943566836549607858871867246337659093306101985590832028580544443909819901288006160926703389240640561898616158268006489615231487544027122862506699850465539532036332157654405587672725131276692601158820511472131322575106442146921274300956498973290509063906632650691951964032631845515661913141927336914649922775046226792655711939542200235530974944327192373680933526314925974517843449508577379737175423725029896495760041120359506898153196545173877210366667616592745733622747794623364958475851176548490881974389165582533771084581465876624488177643950769489525566345243993878658526978649132655397258380617016854285230618711243287671261241037875460681250786697773933313645365408568404127530824051033433047042441231478994674056330273896972420817896961485052117086992467458423537077109785126045190975503315442678936716727683922868098485356433595964825840647174504410602639918972725411865047195995364767593826533397963024819210792845026652262088088480077756853771523840830905535891501740296010070043286455525491855995421702794846867993557992363604049974032203969411320609336555496886655605341774835397053891476252089025811141166593367496895248052375736560350391472164315550392099813160265058776735704515625711553389800050126955249186703436854050124259734477238528796734126144139414243079709231564537755662022432609986439773605896250722194375874818921753296987691362141104273784963336328523898003274949627855853111517969027313375271759612506866454465068541879362011543975866745591587210787694555013414420029221361790995679110385773015920896235283450237803225424450666598175816783081981336282435535692271450638386089947086317340093150030956835253764887552678061728070509312875303890128511036191451730977567949090228587000111233626119944097884308753921620408955537700557345011746153865689917493774591564493760632469025665013423424357820507807981542869383873134044464984522843238810787623831509453904755162249392431349971343415885686155772068328048111432932523901702693252157647407509220915681699920269446759231005971302077795193822006358909346061981408502462412055975212035697194733245219149626206376174626035425420479517567998964909075824989688477909781361003145841235795944712077779864160253296585773507596531004412552443092323521504281970892664303465936390018930039998415709836198148273219102156123242783708589075517078275407935724605023328715557004307772935960706303610900807680823080748573049145576085663434903962868981369778103581044895833119531298149247874691640667922381456811952899107949188069896684658803276701669916331648710975109759027044554145877996104663175106538754111465736497670577365762852846459522154093235240353781181757522561930679681187613660676022688849096420782369001289605251382810825355320060573779487057080165127928971511305231920168648607362037611159762232255251388385158903570662279147090803385432407979475372492637678043085016008893052726654090446137901762467459256839334508151931484255196440593447382357391754614833661751525490510832708198084356664484662441844894506649311054560246705184466204564024830553558029001490499310456441094181760213450440468519306701413060923985315450442029509335466664233946484355952097226561630637812668051933024888861461479247893189662824911215691532854410737797702627739065473027045401866783833205180139502887583654111443861502473911631348271985005468188991725796954789291501366441884022518104700641397159588963408074523268736622245816444192484436744504940660098229975459687844119952613961010917790781873918451243628338272879996040880416717128652131690541235802479173363019942783833921872250326676356269862906623483921557272908396305633273651266592203365341388127618269478335846448896650448029268842362634671432439469905895859158850304982024336809726779605046353585115714651920208750621895239414454974590481099308336827322590170867857532778034310092640865962528549580730729731436663022167552090222371767490001702224607303220918683514519418879656678815300648127446572038249096062284721445835870358317649519802546675507841552838538838059098145893555468250324067786951982616004244189057270101865003395148846109619907469049967028268238118514692654751825445207623686110924744477826148258763796090621902124860528820225752070220356389113146869295867358994590406660731195988159108626435033902275001246337512548083386884011945004244328839341851130442992292859901685776606293562393985509120231850608159975722658058481794258608660406956713655274254356013963512522617382602471297174530015693928119450909243231494346073069983819453071000284889160404112676913400501335008081517861199994468820994106734126490792126983531069509210057071343086846579598177530190281656023693169033546397935057675882101748349207349676286884356828114296438119527709082674938469644563291485176967182939628155509634320064065813563823228791820386958780597130686372765442780574015007346431391022935212273871208734547854002843496320623607944100278398059555036750150482257201438865477017326774586707215519003770406273957681899230187531633831555843365959112384302089583661555881395737928103539718591882973416569880456824614365631312101793792030028066225383892646385730633367909905636442318285784564813052236024668369085498395223448845909448173873168407081694020790379356232093506947449152795548241382226918933733626218364411857526592222515049196774273649536137082751314642735847469135613641777948630057414535893889613429097788221527901445379102367640105994199538014421221344241158720135341909964482524588131703043056327941374834664301059852683066652466902041169462762127676547962016600950831955774103992089591738546370106635850833922901845871354764970419581260629790816054313471159828016906905875208959930384146002097959294673351942770193560520703829299661812563281296715261552511708471926563779024326625533462688802907961726955430261916773526734498418806317262699818005698401261314618534302462146273031328152092370015172817505826855027984841750692223919324457502341928478082968252366207713271797819191726422382363359646884694555211034662080517837588751244197929935171549601516263314283141843012919041672878600061840222524395635548182709863871051477695934361295090741549718890113661673116188267125546497970029158765208855835467977127971305807199876133671950249571980109241760121283594352063125340857386123016663968571262643601988792732472858165583817969007023239535362531926490715472185925202279160568487796413117907569076568496470384895079818425837023995481291457704434309367786721851486066911367529429787295835513504310863085911736297312893076773766904618288143502714652504941701393060723107982283032478934398233921662786494129620281077423814010718028898487910926448100329565978927126750759782611542305757215187676496822976159041856381333862120517330238498235910269397510817202759520405859739733505434784798686911915452740456709234014984491996445418447930733642894345375524083717279258216677388712390305458391381580791454689693339769993310208347757482735811524244530654561862003638850186361597112412615723118131118523753070153373475156171516463976324319472657840931748477709320278944778957344172262941128615131423948865953509643076206165583307615311445594690721245459189003550635943855644781921740713058716241265733586260410458508397644139526230033101226361456970350294041802419495631521044784696989461691723377610703863875164369434727930640499936721198572917313993000264123991802695632145393111794700135916143218499611078849457949349675540461848218307314168479303510719479138347457177297436574931270077862027800732291925587157780222716444812189444110966729030212419833983084702209435625563337549534167902510807573788635922455623886024696389608512111672061312294842378049111842466361146274873939683884995268725763128467927818778225800556747743020994404257171116476875779963366920640124693752418214382523754040902548944442745623501325728443085445829392420769928809856068473491101964567525142310716453991007932805667240409616309598347199153012827514385485061486553803532598991342682652260321772529444734020244581953563388916456811280289054426502382249705150314055452043798180002522088269009209633835998354816409380495411951380788958587239674837715796591383368080001220458859211019566460231922586757616081726600978199673524529409693037977978568465784139186507463276975799757359263418816031177609896872388218035221476979801942221087090058366094862396650059257720111235023892084770493302730202142706088565182076771120427533270094984093143228474098537709201399862987563468220046535931952777331515538794193557795149445323036528178766885499539602954458233211444995014167053214096228851378253552633293572067691622071326682960971382376526018238601555331278190662957160675744578585024515057249256260949461131783808727007228845591651299479535800511544262381030580417388328870592344463446212916528184627268365310115389794478850378822932142287046629633477610731367300344481070420139401341634814630168659164118186011443312094973732699170644108065190823128665936257461398555433474233882885930614761535601997090967796531969286303322038413035255237229356792645474529972940245262509396134060182091465200288780534774702553133415210029777996117868438084591615268213170468259623904324112306732073667939606550138763366352382418067375050156898679163958441415364670337596080758668910830363851803246131848515994975666571421012227867079000321520971545919873440047521600704638701651009192874505938681963434167121743566131552704370603145815142858437601021837163198018595385534311575184711593527457063994993974586487555085869239894113283661667894539988460519791843532525738687513200690657858618555973110184433333193346995607035865490041230942596249730800270107322698176377990302840017165783027078017134847956972701245718756994929472527394688391660659288001979920119447592169783241140689544957507815367558826090668570620150265113408816164028155119832441161093917150458405459589525002360968316857896752565471507576664423971149882747010704128480529310017604555924366542165111113949019858730184810206828173569994678216167367147149037905049765628626036082214922251262854976441096382976999093414769299307562525841340855617169238265875220673611216231061557249013874107857782173854093437022949686986542482054723109528502328297359081485502400993152334159016991430044009773503791301692910400083780737426861021394541790821224029847726116821729668311548757411270552476618496765898312430850153274618458634340203476320146596913487654164339849951776844577857955261130752651084459139259018999456579983719753047204248731456618681549940382723839067431735124529278712860294453919075613875394322512363492815268640130486483766799588308673166902292961626225756383839686429342511882584651874079765271989141518262515865760803069899125705004139957813855522993731269670510304350239377050230758159417448255391259296601814163952276280304507202849517199379337004974666780165946019876095889190948060866839213366281700064940329352029539813738868668123744759864499644249434825225160908460498692808426315981080583356270952967182624828254983191351949898870791236371735014969014965717275789353525738428354499076083898023633141360836167646078902957799809108033653480988835192551956400005116122766486385170574596169874474171323238471298556124630079422302737148716171188072156950063274060763065721844028484993986571210660745378757707115479377171148221803299989213820371318178194110277377195689047733395621872507786850614751755872116105689158675763010674197076446598741821413741279003165037560240779266030528743837887812807662183647415395991050836714643016765761421399318827277938551381926560336770718418839511456214501127699474655211981383913179521958065355007913566565035152834308211420269600185656402884641639467388012181714207738942238132860176384659234747562374211960298793207484446706524291637907553769782960384832563494642663850825700318445620074013222131729173590564489808515176485361992485654575703364202415672663080900712229098176618147900276266826837837875961582762867943506627626948144056690316030754501993647595489960084924914906385047427129902875906995586832312089725800981087622526642773492204256542174850850278244556584591230651318997000243256305994927005799221142576703519687972977206134280264328492112284345249921308047459152635151471238629532711148434524494496359976020008009074597320733351255245358050258542781138827602835199184507476604674080294635635484502654175421977594941839340135035663477176211294362460742282016163222870591228011249159280447119648759922567771149764108388371396833046400942830935029427816289031549514745585585357688490030314826265284652355051442571759673622987220731763333006972550485745070790009600157004191555542392134178303005774478685416045695686847642991084216859664452923734536125356561286167098134223513797435692284003129909453940887035525829577759087028151260200064378359436475213915565294707025612321691844837988629819381225088702512746192747131080330769376130279413983863240166632373406602536090581926630693995634812037897780639757494785209264883480176034831249110475858767946286437964239239859895491510555809377964886996249448523986728561938073254963401421511927398863813451285309266026957879427200409501303562678769464521271358745124357262861884239356855286338145965908779194283862619849774831515911205730199998676400676720077903536296525257519083934917922272896530928600869940845965906030778747865214848097880620192994417067444076735998797178800957109561873789339356476423516330784620377229007057562818924726555030830081516378777605381431331263023547163031558438599379993870018855501274907059084362733800144328060403228221346409953202629745224615115914521766026226620069966832301187925477590799731263168117792578427868084888519096328758675423691108805926352741609952069839510436654848793098367068565041936213826112116717457693121817150730666408833036189657258832434888708333498673067173048099743309568213718464166707245151474608026508055371942194391828503117410663817731963104473152418650309829964070004148229612961982169469633217087588810042198739939010047791960971079220462553140544253110511405780110798253791089987296519209504454336504910963269348316534401104227570600841496774077154813619830022679240859597680357224778854699504316092502086077276865474343409323267367000849752992899660786293094720320994093340051207363338571675257769406995179170046110025113085221939633166500679626345984645624709890561864132691923510754231681814871919498692564463594316691314813868685047187541284138543616295337343297358051358145952039972856631585558247035374842908139266511631789567473972351698471879822714503091690798726778666567495645324307269628090355940823979160294666080416786067263078219433432073948194674212097521177067450899083456349771328327280554398886574683472742768121937768388802291443131054069997882302137087387602448804103805151427607807152337768921644541743288111927356434621569257302315934201341142817310759336685444166112436255905365856344683802537177952527353746114778476041539832312480079584441842633814900706296160075794388763965802282670164555352538595030397440934452530726199273402634899216663080803464209960629430461528979449371549651957423718540539912369488848552443930715958170199062941955280030140115360968436316059226126708815146116005480265905021502945490380910191394570936520529152208590186553369344260498088805543070588192696534423308050272142468353423129695270526267237838245266406801249213199056390540180209761802790440616429070918781474837816244331291388776971868150889220528291202412056613022630083115528119741668778068580581411801207673758269068058292918321289648467131326204478376648946099873086967311577582559590365065529666685582603032989799514234229523934434768060879612935661189378150191252372629058105857624025866883883183450973920001865051779212415755018508395686937616659340359109908975723145975099845914765031126621100452089908993897751302375259297753125173622486274233722948194430761039226151197268307668960444136060987910953774768976518126148194714389824938226278504152823355653905505180485499324811541909662939901509896514387450813806745729233674060016187973489407877598727328928261771320940857926528198418279185237968072426962815291335377021237882168012989470937789541537664996977440263996998991198621095193894684042149312428235846179707990666299801864162665194287096842736696538101665651039946923855363256752043664325477728580514621685041324768516775986465119003242183321921958815328793262566304415453550196139881667819875644740674898058149439766977982680862909053625092134693938401290266723922562667471185240764934036633498330567501695576362007999638288602636518947013304001681473295107103878799789696154809847300052800245162722888238349201567845613797857621685315009578141969117235724059346179636276849272416047841773286145902409173511244231493089800349764776617421668797902600752679682289860105380242320815284594949056080956723465418720333361652493781319723674229894573678691324455689751503766602794669045417799143969133692716969513561981626628141175975676325976436887515763866735348385349488470338371424227511716065198976591734651379630837194508966335390690585989277017462363768593120377746566819542891774332042662444710920458329787617726688103612027387923535434167534944111353232709624418614727224827456943065500334992490729591922515456203843158411061527848525887194424444267560356410625516446466651800036712223304213738368304522750026019903099786011716481143557843313613017241370832697743536754932969838249946274678777225174186306357106238433689918059290774118999674110501367556977968372977694311150065992986574282429488078824902247643797188681452961532191760715315783876732565880094869192595150135564277291173366830164970200606177522101876872125732125600196394889097048719918711773234473964518435010391640201137779303609157703888795776701729531770452686211661643738171252131353717669265757632601222746028505936111057841418684143922197056628731842732048513276025504352974728949330870204317289455783674965999446176360552872177361060413678438773414386317169616739341294717429658417942023536976166994741040020227583653585837836505503884045604495797618543978235736302677248260438464898010954703893037264491288651242632055510164194107692920872800139385594073372351106253487477380095066872744503425698160196098428721732281711414830989414888569580395481349080914748676161493747977383484399557008930593089518273430059212238628071560088286481092600849111710189136784672438650918104026524285379293949204072745405545463492232271134462436021492588469785632873741531044638911309909057438696441516259203869963821696392549772819026940022196108262724223713194544893852278273308437061992562651182143006845513547744361418563409589247880180372328113554970169603863479454853189779008453823316656962379807395338933595042381523853903954549559349960723277901246317114644188715356453152085854853556090768066204942779024457090321016036838524266596262764867838753698924569461955883542448499156128997575864640026280388733065925578240956563333704060629768899048963943362415052006267355030614435026792882997992876164260354956177538989001324413264741009040813783303056441164404870092529585821315289655630061761377210748662213417904007020415596304458435994049266517051172957948262198140927662567313029127862607947158272056313377341598221205137154445034321733243665770666837174034798528452712491463714788241540021246114064964887179081948866879191356161150300678601233347010852944186607300697801634675361735703655278068929219551692418006666047425943947809332994524995532124767087941353798213668933678531778668586838550065164936956175037683659469022001750507357861675867459089935755866210611604026962582680315633040056339636652557825156427857944838353051115475999047646699241752700759674263647815686852627527500694955364786894235083117406731619973384535075081118445696224403919902383461410462379410118370347594820316763019937579387292385013697139250500020786675719982950275775710078528463954519216004555981004981419742906172731100700298343120355376793925925810601009988819336032506800533535748015273784874614107105874278409896493057138725818132602071434486343394496814362785200839171896864558595322013845990422463878675033057838264945088535990802250590060697438746036168235762792030364616349510854932474366940837307027805077036687837141865021394683439337799342274613816688665302804666264029351790131036766058837420565910500733332711900222409125193263653559702285697099130483713733290249937294835600885300207901384361458377318028978268425919761873714225836167149054059048190429535753741480654365213807881987113341967722960938314179315794684146511500251993508754246435758615997157036586067578766774566655240627936473500037455936301221311511137070055114736565659071938228815050941794004935991885449168201325561505309610184012060423814380468651222150746538018902899640342769765714213021494736328937758736208821031376506370926669539882906051145419279734358922233254006737411150767690795725885619775500606323623439985739524264191955118852454981930342163062184373780248930422100217790787195436504710096436771225390429340710325323163638555642349109977481908316583642157926745527573934161014716273509319087371235721487815500683424210609999902181775351807786234896880332197327145145413487232001304177281582607780422408860734797111546483199696526139239956069478642281489334192121626645913747804620223304101370653531760109685767962892691792694436921885973354091288846979790772387468555537903151705674100369857937381607186469680282089181135563011620283414517548754271570734445020391865278575159588409547846421065915821683801639458776123500329197673722825703403945991879942174828081841475792319522699859806367404737874864460978435829057025118956958441152402551985850276768662540092215877078055144806683814310122321407571953676946969150364710998255775389307885630844872286329939434555669004257311338918016383062990068077837762532181192027675017664750384713297815860783197206867124189871644458276969359175696343424301733632691897334657030452469389005539344962413036507293264623965926515947587925153680828986160037186140564844583422577124097014097010770193369835488202836856357951155771139922042282941413165784214588651853903018251600659932230074572794953368016906311386719916583711367409264526905190150483802731600341785437372175743982652443114059148042371520981118831993739431074124873036307435167829997965159206585224740139941100935973429733760991096343290113941805631786583722513730437047624319266276024247977182453011816041821888613641994487249008503771034265115086511380820076344114798828706151068674123235793792035417593457421258811440769198259341378037055180601157961381053251617259426210351240868027732761096659008067233699469425848787074798331948029453843733229217321883513196171963462350413200352049173072362455982771064541849509359137466007175653052748890998787558290682521180801887046901375222603414322529113508003235599614834614080639336913918477497257692940688123284721356070695571689594654654617840271348223755711435205844644695799996446206904723773977620469786342173201961851474626127255847488933829972816891117414657378922661120163792310306440256668753538599090802526053368247297659616645098464909987992238611925181810513586184467894431738063858955491339161649524017383001668108301891856848288598334616342542561109231508303754279399166303849103307865405987250550732263644181382585584585061688705842871266546270025269618449551994902760423141716484452717175208420648232551116327241900504113967158499029323062492486314157977143293165274755227512524618468221643086259852811215296024922415572334193863494571883947143837645010033542422197682079192807882006660356354956944027629499754090428211998605205997260416486430539760341551793727917316156672660437204038730674822680833420803217340441033381363182442921108580230843375130477865211324140878687032057984659968375801008281314614292436489918902042104562237769287254325917448085478508833396829480746328227166005328056299028526268734503533599851661796865377790312218798272546284185221398560184675933904131028159031511952570254049782676071603826835997903995302361089406231504587893249045793355055202364289649845141035463257240019942450106889177160520896366129567280597280196432122658494489895586582231007375287924716598360908266306227386719274067157544213732333694447858096603537549750216018599806862380481224862357385553924958827063577717168393821028906221397503275996471535486551996100458458584488982494671865461214623526086935118757307261288714797172093274337258292832685748317856839197405623718937493412394942248571058637549700323517907670452021320984489980302170906236807228434690541939725378907930966175021636977900533521496367755785974399204751993200217040909185931797063149411864700646352267814050624025695130631188367737911947677239401839949651646195735105368874777189284781585479692935124610867336420757730321390191867124227703745578431129950845019539948258900815059062013808583642478538333348787224742478438884587973359364741771928558922240466055939835193328964132923645343403097365133670229865176862169322165968548631525902177388520098198418075023444462983752862990281607065562664164602454801924831694934331789786795204791414135596859916820416945967147729382686532016984562534447503920131775806702399637100837686739580773585907608317918923171961013409895362912815887349611539363368527028308474420375682192942311344925292826529578218585010344503564452264304237505961431719676676279872324549585792818881993106688917511893449384887425389444458695594078604202535583481120223709873103057414007916737878774276283669086008867305228367707410930979914444442502488122678127293425130151560150887120435247661700007001844183922402224651658795320964427693244961909894437331063884622729920574513041826311808424828283919423958950981279551347090100106968024592402897182538590746253529256690552022838912543480352259179292341220805373863764547098916639270711512814632294504513408101513725115284350905264739938032038379834394560900204763918469222365885614257653259134364427872100402932575406561819938122588476312551340414290874674627345487824563339476710785346471731397288097652123064053813449564400469867129623634548604415398590928441162314157323804540164647160893340670044301505520689751747737085599872304074772733298534256531222652890728693187574527078977183118514357056357580583890681418041227246564722129518312711611972698938084803987797862471132545410427337268788959008223920976636355677447335815532492648598394341928951906897828205739744222975410048051297262141099845609014280146258446168814259111909638493526283057748462039067315668057458744538992365374774841522071522912019171131016139676488787390835004954758978489823439774713499909175715040136381673623013924946441372779402592517107297417047870162002906982752687229903422965961342566557795284923607551061665509771095595868422007069272351716469804683400616827012326032813819698910972475982761997856591124069443325185602088120498984019940769562666219593067467487277546198806413405530196056020748380202814767993890598238168468926726837181336311772445655593766876329272110307551937597526893837425158655456564116788749595231183002778768294600915634194061174735703183738115039087122336924802021482445582379648341963893917185404854740777979479336091230191314584203455426305867845001936748765918265141790844034416571905046865060959503652085976643110699315806935512930454926411983126665267079810357872561312906321218147021760592509904508708922154792844408408682943901363991455123715351805863774757090229255978274218350159383351326686857425516318026745153419300131194739436998995117952221737486554380418842581655291266436647171142437548862035522730926673532527900957025063949494248409430068103446345288080359900923060578387012789821684474605856885014856389805399351677978554704542076130724782818185038967498454363912151668455827986410814215227382313781275334059968279687667621168773088343930504369405672622995436325994005589617031272437675516866765451149104508128559824395840493381978851853741891284495935701412357696523961350564679397917578396309779923518740147873129947133678880553656321090610322377136458688299966854065193346404392058583164460025087593631914820462318364911586376676504917272018022851830689576249219437100755636823446084179256462694786535298448353082245696003032000988814109680968393580102438830545290710474708031553152841611728691179104042424493143347902238518272237451899658435723178913196792425026582450359924894395628608652558942931919652925401176834337024002886867931528134843243248002102150085485935494826107456436473265805430748505511623774626207940292747708316615339442924775850214544505496295314501788502368664059958469991758630029815054359891238034693768836844461702386856456962218763044364346946931540001621678305491940665416344426049521052563012856966476467839700437791840490228860050045965055265834468916808201093489074150243093349675797953038120978121639135275873103457232320158403705353651752215639713827554657743948395944490449849908608824128790295013461494310887718833470987977893452823986631420768235397845432650509482650408902844847672947695798150237946751872843504321842591725836038515592034718235082142065588013166921650487038684308417766820296921164668858784773208190062628589784211302898307016906475228695004418257399974637189521522484360627781558950359348580497194838715995196048714325000950482801275516302871021051725156339739312976362537689966919795957015715369338966209262774143651640164359565472122601484822151394320855224741533899783630501560521678408492520872027073795174772942681151247196202152997320086906730069879597749332187329893851372773078098460510352191826825358494836534394924402983290636274632154034193617173288356010738467651234777093587043397289476209243739796860923715155462662442894300032885348174151281716719091753466968484656407154552724134268198359259759593044917267986961118301602918337054178859448123976688805633845955363437875164371986569568463526426895847645058604147205204942734531533670785605921739635441506428784621121713646054002978247533043310965526573874496577098370282757656585726252156987239679819241262537042216493615689783090294779278515466422349221017435007923372125852133819983913783306847454345086612503922448879154956104102835835387961417964313701829116557614016621709199113681788763519902276713515000200735408612990001817413910282992515461103089070216322325832327880537437411604914496426314374754139495705415579668003719984010331035575096597789967407918711102437326013459624946369537018186154168098057116397090271483707680960982586134510907674630579498479252003665591957774669868718846779187142125209901753664654608657805397518268459577391474639391129160695772458060132865418323371931054752382264071771586360532754771585542694310695492048046008470891690140550537431060069902767960317316027880228753746428244128528263769403634381761928057770192798557272424341530130137933955512843413676286282112852205281464754487439094082602224396150056422625664746899565612063045092793088309261866133976717175287977171838025027463295046534213415224491531861442477671452549229286521413739361345168453636674945915176213835102260156799444830431495284148577703710377625187743298640522457994127979335263747437824246231916206669610477331577238121890784005064993733255635799438292417914829675087356094733608808611824447332102190529849715059610213669814378534030353874515416364846786990128574752022379321636534456690282862476066241974661022230012125257159103439490504291063601840539581056679513192187077895798264521705254915636345669859056590311525307461933611038837081031481040743526326062546369420317682424585269058045362775153446800803505609454869991914649405080893228458556729882988070112151304008310431120603965223524990676199191339839467350893331745444498525547970260380416012609011289321332031491071963820759499922228318258024000176119718315600869014511318429524110901383538732478804049402701771704045394949113594009737005554005230052030642171783163305630946176851404945066042872326997610482241052104253906147294976212778461804308266835159606683122605698184857621167804203257334756179734956349713598537585177670406523698581477470305951090707742991538664794773815825569213761671085779537713157473295365181374753936533266926175559581181230994486875831376405032030229297888525480180056762202743845485204738125545260578343554186799085512871089692528356788111928954082788538611537127416345448179780473988414380630626699004830671474050069948221298009089525125096960944976316427148036750038017522261225322666084407853468002383406336060900015528604154644719375934627760044905598077605643952295949686768563541549610827985600623481719184695947779271771636769999258626751769764189282789537705329363535959255739636230526074709625522142452399377419630206734541807347340591452927140920488593759359480115351530409541925678073822799539798921850962913412081315513306633733658532670609842109551614967561097141640460031930184821627293730256565821461011889092058762220063337306608310001211421641899180313581048949842028525646994829508027137559337496797095044891725483942956784758502330728813040325388790199346890426793003823862533744302331117255500806002554645642555106176944744991229140403226501954794410369821443113918559787634881538598729246270333781579868523062893492392072936362454110000370352671882240500311983957900965174966933799458913801164816506302658907537006120133003012320349386319201529820109613319438262169380201862654813487232668818393552752347045280385628579782885429174607704163972113424207912706712768171968372277834614487081225325165619958974931617548032115869824300386541723108860612806847496531499847167737982456235453855601241267463644721493549174145538356316850541552389080811969438016195916930231105507764030149653716009376801644274446506865838877060276205398615729459556269434739133926813267601207335907615755376694422808950038061591880611541103518329527038560428274102405578130856332431473852172401016601537912312777801744395895520601671503662290032491149475701993545026278168766706164563315536117256642550211860068356322528787648683999019945973183544704548610844253284126454309909179589996097635490530028011216225053280499679709781259074088283804528777324407998917906514971455205741402783707770047277361890840764560692996224968477075197001821760987513033024203418801878318244259040000218449793525680164402338837705526680562163139885758972165500994092956123644103582480115800698209111607355755552653697981153104690658246074977503758809127743662623962532851832283284864237126541523991942392430386803652468904236662753889715527982318086372845786389558969377323075662812791838436903862428310195734566627507956530115296300737675310890098380930533988669389063483089685494532903415918189698260075049933767966112575516324045697406697666148181328214072071121800374190088784641465556690115485385117963523970032380304059679608173217016710570874991785815334823501242165830949333131427039376884997714126039669747993653791769205086875977207727755497149975641661645857867962460647667799924847217836050523163224802113255780816449374897012806109606231528051999556580924004928270889890344772839319117468538387264867632323262997859120120374687509819875871561947802227708847103830424237687421623131882524591021101857276630908995976132800879023925681804542687290578777925509267830096619143690665061794132111509557581707324728845564488758707672242176750552741245907643113937298799392518859683529662621551616172972921393483591665414328644290988112612804395557976740560884862322586398833341543174696900236501246394275990867248458318390078012987027679924251880592762361141952861497088188583485950347898082119412019333014789411287600032255314902953493636455832817380585976683576721211804599149369629282338586823941746961054637817904917539711767109766923463079353577801107875882996551828486631447941712104088154500192495108898728293843734488467185705179766072404797360910483070711460388107832619923377881388428097888210191297943942934547038253692663295274560456806146295398658618570621224696752016157921474750157741827618276539127546248742300849975154943648488250485389092907364520770809395199197810879924127246439980546862929747368495629351665704796578441607382423128132899306537586359138812070730330645933233437388013985827366073545980214485835206825401560265954472535622661795436472794676599170777799742940938201874463990481005350912337603441996785034203379607076977206770570917260805358868587868868750250285370864336911424552277331440458609671083767108869851998676818785923311110957961293432776693847530288413393528019761486945325262540312464333764342583117077796157822321777819937637289898160042004750326269742911011953444814225498179863978107164847738156708611956630090404315434743769337597864247200312754678135420705449018918016977394004563513908496115329327407925864886731627375150723156277658208354695552430409034230470013974609300210070404109324499194039697542019484350009295668224174830525409240274382497923343896765212222987545434263270689518907143247281615206049557665266862043026415850849654593296625974152251444863318563065229892513858105346165655416103095995019018562553121144330217956475190046131178159236153646740015170738392738023666806523484720989231245715692742205631253554924886968061423741053488566339315996807535958104213916447101609749265234990843732310942936720264349879887085354917378573663698306252463140211002232430710382635625073178133040565449514031520513086483811607461647789247304210946505599057216580509399216283134012325698358613205467081055253233986632537364400185685154808393230337621468195093759346234367289096558633781217335258801081133826426097422912686658366873011394838706753690984333829305514248000351481343971726531149970889659728897135773477090785092162602548830127484532381970446902807030231489315775012038107020348455608394071933232119860693907490665220955244499449767491278282244558830533511948672561861586084338736775484189661527219198076013209398690115388006082148598092141546786006201070526519380027345553317467954981622620700648184286553150094308405178188719009367004175133757001767822742828441042642618384932558743822691073817501218331521686486935364952908776422494820256590663489006351567839665772745335511922111540898241581571868119679534267531221753301021043280397384612412622749296080583762359681620181121106134864928275932987276241294795510379646551316023160196698839329964847032423671848012427609448271847187946775666240069412340339654412187989201563973897601613970738510468511557141517101229552885758368308987827955633481625646027170175592596543836288977918989321118804019289863725812260128087281134027164071606086710055094094165037518458950111101445411221057048828476783511501603120023431117049269939769019296440417249365954437191965498637321404988979082659189577030455440129291756949222182315104752016861866879628141631868078455778612248580430576752027817462444958284163497290137532147786685483240010690166184146447977266763044535093887602537432038860215796485627884519366332233128611425119576155382406732858023675099974982307801266461251627837214668422862454955168527247880965005809072273687290302355495953882915079729666131948716461401113614932702318469671951750272783702722763563182474377214930786830996185724740684740914824900357981937746845327315496899822176963317852177726894061154419843165551292362052591105848602633115554827635853533469144840566943193504933112664310330268911283658386815792491906299742064362375609420532065169213124884585732353157463401709256690659052604157822337628381186783563885235224447371490317492652170609581604753713341310734571750122679083942281987884870794321223184780894493315112902318085506523911740117575529400494602074899230175143810625935690499973189423142169964418330365220617742229860648954220485436050419544422561499629650876224809204957364339667784781190688829532789567139574588416392028602509081866448813858555461330278947167230797281461508542061600628327563748535273183352237503095441664071968089287179703516275016934106585112657597113172798295454183810600639693607635355928282599295793961479786501485376334668279243926695082721428395400541368717754081349196658011251499054323002463070875410352020984596327368224535886900999846062070064471457009979966106335115077475072128617267857398709298179584372660135733364696226157685962793853849128515195947693102000312886280364199012805076011547465449207634980039734419630714390212429614731892793358505953916433650280156006309051666906114486900430135653733813539700147785378703027116332228248780977590403849169759748982977999695748978551189912333344866636802780698461009165475289333064535078991936407639298975127225225554765585197700451606615388376496368961378096420458098537058544286085253394248928245750758730422895768578537855395569436753172552128774339659343816618537705124356729654311052897145167899097195264662609616684404277878290336880544241549121027035965312328728190790115957322444505021457978254171557700122689324194912443893419350977961511694055635723421516593321952360967867317992872159707613662884876072520918582306438243919858400061317248852560157251221830867765074031622408580316889534428065791590652300839175170280670210076602494374557112855204864968899911358153207193672743571107222994202906320922495015626341655080454450023205836264502010926880895684290480225141997967255126284843992103979959213616235385321566030318363126790356770875721437193181761757014244624869925277801263546475459064803985549687176909097845953481234587659844480275577177910675575893164822655761014928928330161390539667011262865706740153586029228384294340765483214465797239981199741254214881503472632533533741040094717847003315639530492197394990301945551503749254449914696877723230515931751869039666366822770400280760801121262280317820356445658601500235016907315679816309769188246126789787072804358707528216187602967078738966306714207647911465824137405314286665098613095030986225748929830760760970320479965229147185594907783626278260167293651859599372192208451251835641004282954877961084528378884232734022901214381682899131437650791520847872626461023561122042051187919259329142466236556590380643057157044619165589446970410717411970386471001463850858880362036092699827409703925779093068936354462537731038378593919623363430429252921330083607734284960541696556407166622302128361190331137866458757107675313600416748180239404970876568484421952710836239958301583581066040787969388697973248438603652714194577056913463326039482331854786353265434574886775319991916177412788450343123153075350911007068926608059396333704384888879799330547011624127719350799090217431711917664270474640335475136172090683168001008209241435741141597551404558998171164755220190291642394807644677820330948364928579585334935452257278718377344819333782155790461164384202261810609609045168694773277977322545211988893240002659782239300321262629923478209971623313807734332080517501396443114256592478217252893506346976340912466579493528650534879301996503428995395577602998546899198098160898560194934131099096775184452147586949969853301981831078301361824313337269015719071220863457263690603221644016876326872416068613743869091874071865474629342931547971610883225402333432949762720907459275266835299085725682004315659640099845196639857745932303204924439914008691978302526246763564108389783464026774924690847296885356245440918241631263732403179837368871327768645145627881867998193733912834237057889788719931014886585985313618907050554271814558123831094316368443277155873370250409950325446475116401516485017788706981991589396359926340362282413378276107984498763623883389823746899981177024006985235429118175044602735413751429514953382327943529877454825970976728914194515558428924237350761093515540491991803176809604599668438703939995287063752726686989654150945067500462249255275787756138930873622340884904236456070608675426042854329540348756835867443860391537514108882519592416163622366902528585302511018821088554006002199597503306832603233982989675417084344229956564985038792843799917375896524649572155842146970219601799776688679468312365114601864045892343747051344888949577151486891699759520329492897103827437916586341036059692074116116029140174770912545121427157550887406493163907852815472934753185472907801477925123191409476096419249746016351584222473883398605675005401601245292179602422124222534924425209206167966972360562913780295726105663738816263063042736697450947816477815575851797336298177258022030845297774283541174374830226016917223507200735305465879882098884974084986110786246517423095218165581072824686524198697305437566179285030446050411616010516555689987519144384595616084452884332160915155512677286026712306944639986325932599264664035343899166728446667767689104649002420309286437459271327328473921662619587991011770007130317020915803864434498587164239190224884543318075962869774327531388628647976965965599829061822443254136385696164326124366651599816813297555660714033039606632872600345511615581663265746795706151723285468546907786106257184356972302223831102588546091426249054542492496226226065017203800747390479097183530228001675465931471483331595116452628181533520866324587446846080248983751093173940016464384861138114192096173190148729910339743979533769926485414893513025570305449343490517973225435937210508708614540699116636369177970206882284764543509646565064205059033175729502749142597194567357632543697604335718966152226277637843259380004529941793779006788688361119236226982829107390998927442199159229372107889734161338688931923648916027668016298413823664541144170385583058484407170402640834678856471491667181859817996445843429799419049665004145234365696677196673506079588440897051991954445284455287879633040929497622965822323504474814963174370911209284637525887781497987059835569092382154823199197246697659108460229226067167181497093719734193859962392161564980946119880287517615262861503505051493980705601454865705566849411954315610660714268923167411401199356283130306128705044602595252900969103904652011641554297592187164103540379197461259867806377206184466756036131704732582741099867022719809681028796077259878216355949199778152989124093965525099562382501947985831829507287411482064744991216250024859367457368625736768100871860073753775771675555733200652150394165262538803445788578980573314701787212471374446724677712550056492963949634937150114165763599539679669169207893563164427196018975498740050331447878111340445129010917900773230741122467804127912373212877635295833627053578499289457423934355916435744974290960307375767007152879174707478355023211472751148518139837103597973541695062213843662643969630997274874903440738900832025015885569649091900536788091017132314530893153153962771067082755162667179580408731801077887167023911547880979565070411196022989000184639302019193187475827343016598945396728179330065881366931887182583509687102454760954824969273482171788968024870338220114523948601722377633655868919886991975182930136064141073772546340954905212074795776220839722366948750351139501872923016422838399164989152706436203802149355282088600662635822024315993659888936923192485823697960395021674377312010661526122412719990809337424455499868553761962174365045147995398105828121939855661128800764714320875230004734048772382432652462911436206723810324747280775544756357677267008943708946756932506872813374783830756151818771237300495828785989894448039472043592441818159777021761754594071876822298043628005210091447894415817146152711126273868303086249632472261819616181957501396891312873954236092419418753051655121038840392013744864544652971720050200566564386344418615677592099888554842135984693632388338422078286998297673302856485501073280723881261280234983957796677195004603503668573486979580452278544064290891191339125443381399124133852045800313450656550607011541382154370896109945805317310949274282971982371505773634224950083846129171676920072404526674958545411209430215582915055048771675168663234708777106716519997437172397217517176103326100266253944998997734837307799991030690971378115711842408028250593060130622313327836612718076589166902579054385171773422849374979650110535764662021906907092465196319916136671739360966419813168527871551634505610354771185852286236396929621951223009638219270613352816559700081761528087293742624807123372923548166617369357780936097736920568589402819366334771033908722115744374316926160059007315782265589947901442511869697540694388597355289202436381765951010546760277895459458108181398542945872362338868038084156968488261704705104634420441541229820454323218031130576415991276908911805780783343175654031560966607522640595250512342324145301769870473257304196390584033758201523075987150276478861636202963658018844585531777326444480355109312394828125885198006179692090229416205163838373750576466306969976077774463167379555835549405009554997187172129254149641435681017510826404464612190189255026289944608928339141291581150046347278582109130062202835591750664966250236981630162679951974517186814706543135822491779091724808149510688743786162949066237148166295810977625694614138865108881930173515031876101055524743787761345300895362991041005385114688381219680801578370397702615354083711770431062953949211700245617479187307519180843655149753235126243549356423341699714363145299180722465977708856890041619785182355119421979525374773814052834707200322535977732862315442464499978650181979315032799167000698624037081629742128278274843105055022347176284507552007678424546985021150690340109861812570544039344453208793319906743664558305858086918377979838577465457023346423264103121135368757981948114939459972397688638211352501359636504319559063341602925263184235877274399913107204606628224280344792532129508433652022637890081910062945072203681404041815779462968415794487261532938002150501580918381388727550972852207238465135057613212718884582265254600522474685946293552077538779468660835912703764845524976517228614979965882005629674405901220843088780219210711343916371121425915766678960279834035942814736568842297188072006812491344027420270768521834513394199281381785890816441280700619030041524171691136253731108876066746215362036031050220607080253083323799020576208389531936905398572473799092242943976864480148118251022140281701361509418855217144742574463708133945433684245718545332912579029554902429505932520641488567581908519630009456255355328914361042345924111829709783670955912268111765270354848911886759376850642865648911500783251794268702675680425978957816396266510373272166732860571418519109466716846416939964681058312890393686687270435254424108852739000894445862934556227455069702424181360026438792436434682783002736671863898296788101474790239855918047658360141209597818351150931030365429788743531447789584235081995582812528696138628803746669025524142789430876522950757380261931225213838677763921242153988967398348024362635348155034767614186835443683795902907937316961983227662239013234636712416895195135626682223859298037693805446937807478242004234477186979714245157030033296791483525231783506747453114621763313054443178442693377067852145707199504386865689046556126782196549450095852914703473647993633380136044569366281782344693269730661811303014771270261312542230230280013430109984800135318386942900187431686815681553111613763151086458097819521717438169634791747427348283749637369162225573892480541446257357564231107974940534919671887431082923469583970337845338886517304629663842836734920855586454753287596315300370560519701983708814965564097549960832969942282395240516482275112000010460229795581973827598405789499840288165494822880366020955948301194833067906151377763550149590363832674833781047312925929855785089339309065031106543492882689368958064800981868314981670985095574398811623291012293450941937867757866258758848173366427126550484544151794718117721961431503773826450163076425285608894675787444115263546872962906045645145956514758605524321463713520951820448736253871281431459199443801125534352522472269351211718546268209455908858041628894578637444073091390027774539070200773616662721958802895321358180660299814481608526151947661461886090828428787490888565029039713470287384436726208404168465860554292740493696514805495894480610705396327188311595754239667827479438840758540782355200365545335923566192405678513445831505012755709820254644518522988487523698736036794946752715160370906692588549289528975462700099610113504096459438792057462985784344920539655101318938494230349660041515037650141957000489788403536975561518467782960256322566981639252786575420382372335332165691091126851744477226212464051708773991263848771706132524009937212408099894436733675553260194361232398904002040424062992419204258407909613401708204025695903132873049590835490705091654461622751802007909775503971800212683658679793916344002963829576296948734935320775678836746258787588652792198295054055236317526875334286821864798188241474220104859528512430608462205892174877254678564553560759868560548222835715147549800635102940259955881894819515774994358975655664613066849412084416280028996095959209127433188262189468878550106908230104498540944239953703592563053673129774629910868154488654412073822255341484247682991685372077250137655710818822491563780048676454252761481530983961613232965626516496057905520880286365849765613258163563744426658194080163759741365494326445308083055421294548106472131743197619792362647872507468503068690782638388820353393204750254412281620445119197884347142980389860254076122081033375015351551834553616916288369422927639943632885796961376590632188208164362997884220070703109671316372140527057458880686528761740297684245786446452940431770487255402738621228374148719702580912791765950104530457858734393499579267338742916593117744407863710928726349042528035423353781281803044132231922160596077589629217463677862239924405240078073952391296622067495675001496523820829872312563339504174368044698094409583033530466426476274430830996771329713500978572886495856954409383602104954666832091647408393739877976370737483847162768761357893925927087805598779427697806496502526359252156775856908320467364987248818646209583139798741839120624299445392973079433534396397303645879133071168455830300013635271642948881377628918915483101285232061211029814171294383127143923799175328541776590112805663094948656231793782351114106230116536441825383394691283938660801517914992983976744607248939928644967419305195443739784629582770121983377833297334956875616403893240036846326420471433757040486153725256840735873446068967222778821100040726917222237856465302136001403650666351915272812556323991512176962221644763580420517212102883783335881094456632606036008742827846311752763814679211108924336461949083386133366767930070931987017145848246490334170457051349371186525348913148468278360133861384832109230696684020068769902882674537492535193079769204765283242249920671331012508950877366969666582244911429526640687109239862767963939090075246949593868080093595199937560160991991434752909103766728312624493304102829262692038170683716544588422140198604850236612719852228549784940601815452322464241429859464291101738699100356922214880086838442702895365320484456486979182749999553489998639524129848507700761310671651892126081811372615914465981963358664803153199040896044821461262473383887539048098383918152307259851712505787230807141387896833111908791565983511564428258696353482792619365733921747292819010399292612269809591104553734291842432911903625608281287368565819970355257112802540462341581354956310183321046766123656665089175119737256922491041526459565853535078622731682988972653474207453939980284989164515506129670271230702187885171631773088353993310634133173525725141858938188276949991478078647121061418628720594024201866268185234446915988237153345302775604952633595660178830128798238117664913665893824677024333365594139283146688653219597664576677368933285574544352227140662871199095337074211327008026462375879381732497387749534282266732481737423702508366339757235160883645894687791065601770945807205867873339058005103295421135924805926913115174272982820683734896698582246586275388575422684399743151021538205779458378656957355113150976232328024264929184596521017377605519759089133991438489899374064853437052525173970090268486641428354178201950078768002430098398380241342817671744131748375983883809103736465504438698183123229908160812785093326277330992631635746457389603411790634207915232529037842948380234099233329893665851731292717595886283861981186523438156694644158282527091840076810700079349574563476468659758680505504524958353066691105464671117081597706808396568407957371280610625461437278113432417036165753212308831713261128367612104531761006304267080724619051844449795265589474522916632779495833803060358985178922336944662021143631086075455510048024962180905222251367635738179299462133064396487064161729884865473747735975227838195194001069418417669363494946703561231932325495396030190379534490477951343521119261581242207832305669947178695461012837593211142027965501668897777629916848398034902891337872187550677240257606507071102042741921513793635474111371457879533810336729598177633050438573203477190220066657781534385242317685048729461541122109323908051647648738610916791498557494835617622848325616746528427234513254802282502879819174255276500118415277821985741523804250610061948520439654389214813133225383232129594034478476195589644345421674615471189138822822976107697877243609378042702960784531062311925518703856968192337335702902141677790918197880166359554890021159158860843643565739471019297843058406655997360106327239774818997943502816451501611203066449287772480912015420401782457406542196520303441055807239511964637045158262108730146992125252274488569730667488107127123512791332415322789770108912452461236888249507878337121471904665105538443675448675496021348608935656305086727746564368220831339155543308619789815524945389973944763027945361117388679123704481756712548801716140483754698580908380352065350554618541197489504034242209497860031723895541290178747220684619558613755363727948102520188250613748412616345261913235933557612920706512289677343288799881121949015736953371319589056163113997057947712516789752596993461647972667694241323955026771355340918886247652984451321359486291901638048585967386908994168421729533818446945540241076693642863320964708427511281686132128682290554910369456223731127126258114891513560076821127804237643011900279904998498173074565199329531721777311565347130700453116123851334239737559013864423487429546212206279514741204194934061655230482571156233710405809107357874528802508474598287388557241457903450296126391040365578211750476117859697109832798509901850786311139211404938459517751953307028274988509197433085144654244770483579676116312882474418739891820667622783914610562465232800302676693310034068711580532453815335568285588005334579474407357437203221694044446033890375051130425847658904122749005651366223967726470789540714295951800879457153462821028230856566360071417749003827125637123384870034235508673466655023482457579839752564249797985032114879438732279062137100466707709596201835709626250446089564363827333010083912810817490078177759768206476888292208495085557001781647273776880971952032022414306013307303495985514768560723094366160065394448436187234896626468628419538330966884617977289055110690182992468003919846104530504362640235264272860980554367692356984111856791641189920867282591168239730923884629179870124910103061354637807213996653190230849467393582384374998039091182400220781756512212369085026320971529930173844895592202466511970447058292664923714072009989970347113403905095072917543654546729376086889479459557330282815341915795528446484046027703068436853018585932870375639261937133768131091084774634731804371041351700218274008301236237766334855091691032150236577794247164282124169018276893816898465639806474276760241030033992579974428738873735258654572105013854010667709634859216464735204767813420589472615788451926330538943120793333231667474111585606902256680244129873728509721566941892967631521133555613492295812411012731024207559491955880103551048535520031757239479938284101831415565490957731807617754140351570832434160249768675809045198699607549674814812569728326711101640874754064485243019187867899365049284348990170842641408051952855056462898871510802823911404436751986024644160018881753841834785619476308986799965520653896646791101026718455519689895435579746974656620223473035090933729681388579640609058220205863863353670932761034146966609055106720896987487015354290480779638148926624280686021246697328304907803349243003915869366487811260517706320210161982002353440784894936963258172731388636254186814754531573505729795074440941193442091350602958499190648978940695245964949603650423839033436597164653656884217404995360388246108415867803730297854881301436360862296206252141590614488257256478605705059416150634920121019344378419638367026055179198777141925869728461972963869791501518533112780102830860148071472598302867950416791135136562287914138903254411706663389560107229814976340488978687091153370667700130031331817047713670428214402175469052356755652823126415495210558072095318421248532968413331104876332674229931871881423015810898455785861945935317663719292286762513476518479592149719818225478397672488168503166909331588936814958839984303838695337633184112367851803450039477273399557241637211271843405369445344932146531421147166759048130373417276469632911577308912485745999146606518222936737799888766980743348275296124144915314792248643202892229428242693445811699760102707975509950969321436078521648688532992781308054589002696082782014497552664053749640735996092504714553515507176802787174914360817105780661593926082465679377418077042943416793644405128189140875486821153083515129481820155448170785247000229906598847416457733566063476113131275379762089325125753976225340118709304078832465660437250764109158328072656386843845045518695973774864732882876179262250205423560729398732243172561489243565386746091457656071113890204065553210232346036288774279263867262056699916926985641606491368848113112277091415351959583909544081135571510880137687303159573290985969029979489114600445491875423998987190878452122313832833973353994034550989897300472023841403733801472980092395779405133002778151521452720920140862345225061053066253549340440245488258347106366694806810097066601003645053199790540199650150907582148701131383851102773468671336879514575792915347691077126056495921192319945981251415539589104575460386744714906401945868784358582161807569273826505246178859462917475727984389252636426848470861074789512582457077070684126535030230983255291102874532513609481159127570502217985151740872045332404456813106251911937856375518227789578866315750544351889546958048794214771363474520035757416992727008064403489490834507843317537255482115861971003068885391121534557667125849839178485382099523888058170287852526350701307784584673446467402333655397828897084069554613643801529751010909963244755326966262178581376131689738621677087181813258805292198014048208263350962152043610229725518626942591563532593369892798345197207802541974965332800439899419556871128064873434634592245175641231748297342250914802939598907250916982406014963390662296797292378584277479502433518505843415687077530046204099001856095773152562587276646731952784572902326871120184276023109037806939169136741400284519130404668912021344916634564971872628371086755913871741648277279897870038045923474344955663472120933693530702327444984576381383628006495879350129694477194612581719747833422668111147657523618839833406263757677110390965111559959728218071043207127271820747704742083470712300627818878354972092397194883449414249484881172696166142344559359078654734479002592573659176294313630336247003898287557115660369038470861399847664436963310288647867742321871241726607372720512411342517237367531003546049704524269391818174527026156158897969757470598521508901194799939995013583447442982286235190443908132974227320784360815918343299344804812494206425216357784361098343362398573601553836007684881032369841312421820503106153134507103171442347992429694787435135608452802843543606295744784321337239645711335296433126323952781984668939879408950044517923994948288687614365366247665020311966340653836833965887726685048092817738447852897994505292714204137904261283030461613236482456482122520879765095797361251592482966873723192231877533420808966183953591512835316650939836145704207130505602585683285045398246798620698897076905191655085026375779184869211066259028906069676004536768049414720958473591391326754340092542534910401027644027615138904375857744987953164956009715299660940720008619297455007286738408530254854777994621759106007543812108440271843099603420087978648557206847473514220091312089120554438857911609292496488366537919490121807583429465278944377745218799427164508765788019542802486840571268067702791318207419675035180745102000466544498408735077041867694039618026802159527850957805304633572575216199121225196737316581432555161306506375878836420947800509864894002702325267699306093478720111403086277912659803134121838149538433290146315791010493437126187398006844962446011718929327409488853963251783882958206244758609393240004154593347025476147566177058137217546036087485403390023029078462150005518919985944914132205346078618783016151017705605023879314039764468270633570916873821736586795804210423384011453745598613264664080413246719656657960796869032335150965831698413789942535034819125467112206819734564035557234718153897624736021008315557392563747243979185386563271458371594549111387002302976460695881878675073700691088181963347832733274720595897290037194255954193292661745139698574467217446556310292076126682350251807042856982659861673991183228951272263920328259729623730598937858126423507510603875498399274393944764701258833515014345337088521623709963498898965049716253422164652296028472530208933357165592254029576054360946335768490760244611586488001100114421292559059414874499469437802904954836016073276506605068471841791992368067242808786804496221187542476982288834069301349383674447151604491747962570382474946007150954163663086610283906548617023845647073144226606186361562733355740949376830660344456423043511563990305271750383967840223079960850093750311589511702587852999528429814809528101317216884215548123528690298045825406403625470974700521947441831542556310008088149156056172887301781236419565396898573925486867911378771021441087167368091340461379757082063093611628446481435067187507584154183077220956975892824088166182865416278079344244573329239430892191248573583528071104374546195311930426116738260435455516691374379464276481098792655045133956358748749425738958192402405904240358624606346011398040585461747943661624474283193669309634923802198509009827851654051533534381791208410298514179871732508621881339995750826475510885898840483485512759861938886947079160651710329925453125900945340555054433031437595447218546747876113493815801315864132296741340056187696725938105002944295770047641684218765515102590624761202106661981983319982930081964401169814781277685504918261611381969588965962731112740317691168192456296123002087925742049150923127023911175766364083046547971188489884786595296433957226329353661741296333449167867144457182227376191990249246585306951075329620093040423379536488394824625478646255738979116010649352296320888872272565255248838507054620676854386870764709782564269920972561736868477329815408598698603884824223502740345212311343772954820278566244436825977136282661147834222264772240126157356551675829457161494307253630462620274628096940508898470072787973893557021386646026315020567325599563906845706563792834660017226275784745212563635511157600888257479260391879449228384160320260487706694602835454661131980132174468535082548421488770838249453644336386498012293497906427329414936381658250740847520044438693049125809368565774059014128996153462180926436342466523094559157724265337780260949293022250888201734046881100865609387441313553524488200902314692565833108553242161315344791587116158990808700946428895764192384811329267173903352750914095137208820307983282262765541246109216138257665953394165714578485527388458903531908313718397322925376381131895538475517906718161877783301582853869396018189437185760149091743716171777378621645275742192319536673803261736288155068520532388206844483596102608433965906810387076424817933665861236880818566041236040645804652778786742442156768055716784053338019757387698694795215199345597957139203402158658050929107501651064183458061672284809900235586425740204213845211855743821238322729512132500131157509009877838441693350404580056021223563699802246433777505700347475738628836400862099569494111990911142656143166490868905742379961965711685781066505858473706995278477618836432328484042440333502148820597480454529435584527643920187572899519725982517520202881619212836175084854984491161368318163497093500199658207979502262913642435483554080168781422903553352458535496551063328436124886998025676239249220523933068908246807192850316504632058977375918927219444985875963625261784406952670850654488915510404928550520061342227709509002597788499142434744831638797318774927734688104088532556772748172862931720304374108977402606638698472951704064129002170370746691546780738207766273806053257096368548772600241582543037021096051601760794041344955144052528711016505160733453586044200363251142352325762508576939527924827440901295717544285486955284592181676702869508168739495693317978547680057218040768739172964848900826794132320257901366506726821610625310608553262545839846457680951140896066737534625064413156513049940100818168210205481051648968317857256918188015139165048737154061020855824973609510851610386242694008247609192409509141046015392710547851413047978855796458345085454319361387466262635272605029714359602181144672106175295628263699263812869660199688030905194467201863027678800405129852242134779431792910256653688252555336938871121436318158927566898935745663399384980457479535595136476392397692463100136117964503492159693269118742165653369153271197313635371111316513942865569623473447144740172874239374887078442504470595911774824347015914745221876067121002201352550815282187665147918798031835659914760246970200531707850243806773972156468359187914565764886138922047349502613937984515315379674006717320867396234735726581772333072246845185216186424784180486083950440984450847685821271410383387894330162015051712077547652232985037303012289976122630520288197440615114703173646061950844948533989659334025252999662414336776621179331169796398091774533643993269701721028331743867592014827754773168161654758489068388697898172213396855485420976501723493717691711923714710737825551572760798869392028548975053798009150098517582364496595099239334450746052230212989314657755614655913108351478239680264973806085534257981857490199638885683565901363434644730245089740838914201664421916338012370983785829961061336820152235498704060578035758663243528656228005294962666491405956687030431633311437217519254062756347416480959862793399476811941078873284883598231941995509964620697751114916147732986925408637547042165010516386500900930894943784120577466206969330545722957187600686933327809058544437890216740423569431849390536753941104798169298140779787673735066534252274943351864032379581581475269037084598619517371454455737216979644501679465464763533221659246330227521572277267399784204610880196825176028901392672034303699753675232000477452723226366536170339325157720580035525524330559658046348461567810526904925802403032545966381100490748687360406516592153226818155463849112703503445074209645744730009590447023365057764969859179964400171708835569380055534683352841401765432189781360170434836628266679791455436441573659519402959322862851026112485569238835721869389968095596966305298896194375622829144085424633258516853411782281054911486692084880750002351398471795809236084216313017342813598055105441559692319170305951846953703704177497448823379395721436476812820767349566197237308909516216897792440842459905785354350146892375800996812434892051753723041091859985080853773803568696254608132149561260754745973884770416210445600794618794405608935231206142491274762830205609357416749606855609188758339047263123670134522221866308220412340573369295924715807414297021292655615346810299039027612218900516443075295892110013356787976861728334639232480986713326909050306014613206968028892936932120003172746081489502963139421593134667252833216804863665711591814216334508809001857883685917029608390475790882374434896732862134904284405407308326244005669394444770332391291729079843320225561174294623930933734514986769348621432559322756372924948982187791598649417911702099785545039582677881895740216909902955230934066567818327413508094560649287012901523823360008603380630328177192506325826440465330295846711211899352894106271366421693791346449709544553345892197620661334292971273089994843684810984737769504829130590887146225593176017978398075069839125727072840151230030461604231684987659271003695121419199280225147087981363983308665255066787531872546415556575263159284222173812872651302111204465242450552518652526288054786647785668789407495810373554998666685336642280004746364249019254283264682785767791973828590177364588996828784980220857962382143396802699279675812790450332872492693245550224985831169243108869013339961722423578253352109133856710644656914350773232070454824726392619179907541425097454056855953098340455133399723628888703391387991428471712438847194468402310217118502879740102514780708288675993196095415693824630438439124472218336460817202181392989827468522189201235216692198959204621048875474610510113028588774812050771853631976060554635662802025561844277323366718934617808179764889662068469337856725304390293441962453006034784557492331462708116100576071850199151974905682140556135642421122622173193181262366968270703341318201214453485226057859309047791219230060431186694406661895689453354346771847749798380658392053093190888586340553083445528378949398229297769079289986978330050424082740256478861968767639032943983147052447858211083164897158703947113079838155624330764108970574571682090249181671396485488373045035813612532917591825608586523840212764093282639599998379917532374507930815345015517026081419420951536668022880219952513944553046918167491679089301869084676452634674709219522814521860046669187459393829712991412636666948989937025211754856321418204484386009006927054773411725754174578590304943355944315246254349541599554502712874330939181837697737823799287162655797515309990543925021938366066948446484997587151693308387577484817271039353810416642717592282311374048177709211506966392907260943211640431657295938225029692759243400708966767484355188137025147414822897204293973102029822304723047243731391965685673508692315641024205619327759297066402659236474779174694903958585989699048563222256987342346840720866741627154766366344890284791660245468549015673206996736463092024219694200119025839490455543508563287406754781666922897014831518061319193007693085385997490752557502750265935264827184884442287737899116722359008297947393203785671958212546005098481630458758428072054168617023005442187233791346927125944628387791054261634260062351444880924017623126148634757685896161125350406271372570091510257456860399065718143836687581523607385911342948255814254416074249075627699620310587740735699369377397031734760262956177772681905404877919495248312353353165438606988555935379434597627079890362915640894355858586411813257833828590035860224277100983124075377369648604929718290927279665996221595847520949259646920001929325666434926562547685067158542036693616675610150435451084769605979687042471361587647340385746145648740701994103681178380194986045643208041635470495043932247514501935227994341753045397911132700492425929298897193016855075917948349739232804472368230159515162557901148271073432915644442076173457356571603338663623644124544483257134922316455716860504784928548660899182428975296256923848026118256909989941543326626459834466932261534389809834398223017488002307728080746575386118783103432103813081954340680965318531111040543599886809866773015969378514484921730020867425568931930160028027141367352946070903394643246990982001888975246524438758961744628455850158096544864691407741173469258212347738886684189771089885369711889630539466343079243354049503108309466418638023245458647137769977509607902885872238258583898450098426915023615447844559360312988240664530278144271467088252668279590114593453232492156856760545179115689220470765353307835006680205826622745140622980704771996176105864079204472801423654060099628622714485185688997997849193985995312559058240608217501269688464943576211050797506447213430302301113425203468592074509142840940103228175087886095926668467341626526879042893277269161380415710396448050516490562485701142688156340423667990311304075916040471561190068456410749995510175203535780272864810214512368125942000006279862239239925393976199803755956519029342984140010664794704442129626846712568722369903324755142277636435585396753577459009665964089437338526494925954619407700909590137687356039777245388015861949666506861640942887295352596853305451281165634288585027501226750965229503245293401075342617532450366158641508899286289706652265460835459859750184500269661618263242289131382403809341024204720091161877849687506296975420395144363026351494674292052831576707635933310679373681760775109630897694939290871061618745712526707157454067329384674530844280185644585145608123317448296075219155184354210590705899623350520385734114164600191014570215841228754817562834750714302659827259893951735921827348892928142184991359783993295092857211217741108341273251162329606771834239258593038831926537100732746942148751485286076498124571390055371382871666500009885496338197534702096063626496208044097412091448183026840426780870472659795604812314230011467743125915423700318079015450903340042621144851273378591238046933403370873518386684936593784253307718888737792041422536438105405030090641667736188373217683242564532930082159185829587829421973621962001991450811943047339506000244197180032127852737040355239840141486026786657620780280077963924844727025219027924489645664325101520319046111036992179109499099752370789249297399337761967861141524007927526384491067950490445062898977450463257576798838972065461206128132330221308072460401900934651746351211110273691099411509403572487319464334100396248954228895477386981022662876015783405492404548300587739005081969814833222998729521873110120940669608648017002181008500412324580775687117112313775668743370835105455233636356569321235665298668392773093193544988457881819441232402646367748920425799745191302518572772036279124785862778348359497434977570070339988552669102220648485575983954721512018661547994730378226006891897359219844104681881769222222913497304452767230881306119397192429828781799189094758833789243979960312806221508921403458358047232916938199930144925124883302653462491420877561502214400410847564603386918218326361607936230624693333935520767820285288218911988922636449882461016130320917516409602943058427265802105345071467300748339236042473999251326704480364112061853257306738696514358294631514705309929566297889081629529515282344176134170093726419785751796350049244860956155710067541199073180778380444211687949612617236162490768724432038699721157060466068495142128821213032665015944965850501514665098236507547306920290181173214574926625566364882645147091963986459815775605896778108504280705972916131788182067466578680705375372808900393137831738526150293603816299918893280736697895511703131507012059006784472140441348463952936063388774056664170392019283779819244151684909876374135268228108520583233785752352216834050987661482705794970189138793556105653918114780088241791671823551553562717714493063416247730284200178177133637653508766118282254652614277878242813933132306932703824986069278362625769704870806358190020311345577954443483074858131347476652812884788906074636580257999322542420196154965757093566129175818997478674352908990984707154208509297237122834636976318170572378250077997624673959357750955912075742434261759318937437919049538913940510811669735662596241181128636645954438889886752762828330389836333167477187242003117371108341300993738516588441811266869294158364875288630812969066603009252384642456068068970377518844983232069815594519267187482644509532244014569225643178766651948104256233981249445122306618975364680091066895558574783175285440204066560788276317982453848705734899997378576431821369259343622977288165249284663011290492057162819265372961597964231826993289241290628268678640177130701422948090734250466219528852735467351772391410751229104644604157051366364030992984792774918360053052299118839053447779528104641019334607440592675370811557323324868326105255832094442757046862688048934822099849996119691585722528971074180597639816110147560660973354232139518638138611203750170957180646220041135038766356230492352532755229743199851479993731925174672907271462662530725484762532540185464030946310318836223638243350897807804011736484723019742839550792032476227905085263117615352904583737656794419679432240499075191963033031364836355744698391908906325271985481281816141485826680683073628586711082508052709906140011477345268137622676179721972203781144988035149445435350058329304383286806075919988756432692379524399948404753952722955022218943897402192782681281655278543236864843801660858374064755060610029539687975251034128528310637833536636048985856541292973664959690004962297594708156093356056185586192056651888152337258673970644833087795339612430551928842288379906035049474556654264571236682908565322183337618542136359563234545449812141283296679145968478942228141180326369575073297804852804458633891960287033156654936769256987690825250146430010520516452173167799940372718252205559762240410384230544793294904617806959430611871919236256452309028825158737084779603940243826281409643917827124743674689278532793005823044633594484867670746498090881005063992933683124467578551243440179932593917491412698503582590500688293754544717985728476831019342071857740169186518746536100464641843826352611156839036162865816494078245762563379945003784095752958764445297492047579672205366979543144712412142229979607942585298819831251585674350492413540262589273371640056625887318167275647057936821570439469374455636595544580540243391282935352811665170685989361665936073934804081763382458276371823457312594085764179829377784654896146045804718189020704613383273832759290204635445879072541781045231139744783115065823617728361169701722578412593524860050384140156588913228345371153209559312529456169671201329999732901618255744755293148413100144997500025597272525587206401845671786457732536169790181800123271666985923383090115182104196220991171193962567377016430948260829130244649040195332224415279480156768097840450717054489793130877113114892107791793328212261633019571282033198840534610504512537112258225862739083801805186635554913290376267281087165955639156660106886951214676763424804105314906402952263020435265890153708744506898872146044873638079077180692799579479094588151942709985371438834920075747965631375420275292402693216313361399266175824127304286378268303677826330140232440371761116840471072169260599958206212127684988380040483846041835737352612570968880280826408592946779030471306159614181743393825999242537374809294911929769827765351247178990181445577252455396110461978646552935027627944951161141027882089747005155617040055681156310199598964240548201169902834812460468363999240671751286065337857745660333644482572212073202731259873714260214661426167526540627188291878820768749757946539218387439763200978112530746020077076228599313513915077363777900885110078481904543806890743391561608412819684510001807452050108422688003579554534207764716773016922532568858711054120754293164273363910743282694169650310278985970084927361189327305417474596078349841173104480149792351168894446010493397421650731034316811569159571206370505217347853164526447746925666325957822621177271971071153876482829164651201961091917516599687960896366939629581188452303962372458174784518019525769402773621197498287455158889197830608156349693857123887255868286077452059469330530197159405304780741171345130175436316121276605253840994421084203971128301297361484858476495088986210292517561087054392965245592640554542553562507055816688117059860871295790719185401395842799308830469292467076776408968598133057850901483181772974671494320538755516680434129070498374592876912152172954492848619198611710043495556913081012880700792731339459555409119953919517288921568677265448636248871737661718127561682473332135261867885461710637320439989994360448603217418245220129098116513998993146305409514827805913851078259205854502611009856101344932802678870141549087318777176421977510459807701700267661547722285244169720968140196186622147620361257882985173679753056038906426750468512087697445080605625824644722467169818999486699738592005697916027648506646474012862617458031100748956367207088300292923076112531099407382127751706233062613349974666110591991848036979588311271174078335189784741306285286670991124026151855748649513046543384866511391521637089889124526108035014777586189592761919783821013897254042166644126718011789733756450813638584620008437033809399189428363361747524536294127071794494160387729012706100402607754769009249452793766091237775207687288289131014586139161093730452658201352448273992958354589019517051198812045246307466420960479953865989856246824090437515120946194143293623358611389599419939452069764856125634068854229454876292697084958278586302861814317112953174955270345327599095824588322607422068561384813772582158640129161302723405225025507049929225146231480728815834900591879318771821021402472009574694452405235646445530343907075565275875869027856921627580090680216904664523949948021926796995322033836601836255398942656813597382927860440761664142588412155549145733553007883695725038805211266805433645916914401856865886297470692008204506543039101576578689151870699394072727593188812411456483508152641671125412066566783094094724164868633702883426796064646642513817094982009044509808582369103805900324271588727011836228809190436472706744063735916204811726834390715671127100432536778891560845732813107160579796648227404512917073082900894793197785230960150029386580193656420706732841997511764870738079000505281359260939427294160160881803358859428042278680115806083187615011732075157401212058686875502276843881677436770454244114241796300857549003890612944062440231882355840400951252748671449337423703395013782399893691661371949688400220790324108601326876651788664111252089016091490711948155787499483824937975129785711927589958599988412665328726187117940103958113427744867764083840782926535756638664304557148797242390424680904805359497088035842294500083081936514003004007689341428139598123449464500142390235259664322628646601770143115846248356209707031311337166235573072414921467265401094719911124897101043867001699373877010808970684272611143696451986992876843764591132614914911536662643783652268753323967761473547276571096734714795334877420985583634118642455940177558414678956887559654019782877125198945454308583469137151726587501580629383687047942051929312070372606470234994843126738539674607638985247650806741125731273007985404717951261902626569536584291339783378719102571837046278135134795089285703826555892231799254489538037186002648554088737590363354417776215273345020315213931029044702584767861521599227572198905025563968066767548660937193959935873209404850441232218129368237172417739648011464018264598598813400943757466617358675190832351840746342158789151740676028302688399343648501805408500706287822118099117762215886500907405398961157373181876230425265236985745128627668212946969352414978801862264592221191413628772008338422012605982451522702676712353533263980485841515068588736547320272751243083211331353378742741155519675292481931040401710119617918277870093278970674075757005768382071287324066120619887348599416456767683671017815491106942810968114969838471457864012988551649557180010673151737304228560738235332401841591695440720736082368147035795919270561154157563991152676162704301394723730588555374353651448155580887158744029271635532938385225600974076005021843943990278641407689769129887089155394888390426449161824398347204386500779693478622956045585426372949411020531941522337968651930438691982459529202210180311934562586491273080440846454844630227920125706152010823328115794163522965670513739090722927997496571716242215029246183449245771253932035609307981395228782255138726274648172460676271000172032900111997195664493081430136160198029673795841173334731615514749938643670642344110045979664773640098761856265136794828219435264549758123556753185902458936345651094837661225714167251245614671945071869075258328499814673233665733470518583173771968063453697079966229730534894131623926365307326862658523344020393990467245083633031921464608851340529898554961299354444217660536955971109548288906449334605876488702922278955104930816471605856039251058861974220186831392476799745157654282563972827181634866151091886094236907363220798680988502897725677024071042204892359444259291735513398487182919616637226519171224108880833799837109405872739873324294841413854586693468424775700469600225195335571212843641011530492088397120666000024392319328480386526134264673790741662133816994793854921900490894961295267286212398975303516023890810425738139238325487026615433716041344821742665104618940119473495552533331780851009954903168401895927172423089179968927885086147377747184277715857504011501533440877634736771794874693343843535696313109866636431084424498152370258247555781969296379667280557048473385526746658349423916160490675368526647057539643207721844480955424947000465034133780832917517091689912802899409407177984633024481764236926975010870435605444912393193409732333167342776188819489287533991475065865411179903949659922976819210616341402752443491269486798067582518155544601046178333199415357272311367940108458901924250539963424912261201594336145919906030968713053358244869626035090512129607363553005716663165454624591242508625306175057539567740206010010012394411706300144197786131739715665904940391725283507235612219574731047571760184913467252246858772968837744145613781461120643021750165710005841038774893000317172771006909610191396044654013383270025495135860379516646720542452268777079162112256122780882233799453569980917551572298937518422310953393111352869327323364675344327658283625235847669359465980724571649860550860897215287939491996082191063763651192619150291844696963378588102197178604108200678930743360040304601825810942131811175273822867052051968737738678776120868145021764652771183903004986075072582242810825616352682279447300293610540041695554900558058508664020867887004914215603928177839486516030044284495698995429964530306884867264327078590324977778221751757845258207287594777316394512926814389023772334609088478749196396430038926922869160345190905896556578607840777993394243988417918317930389871381250869475288941927139876538164232783797435176923721854185919146397824945113282354400051138487870539067384054734161406581180456255314670151744676977531320018193926175322027968229820926123220213088508566014548261985671328037032598541142404599843876398011424729587087858977318911090720387527395665110771929765948885388639917972139429294739621686747142871655166669022776962244157202311413541335080831718163390163107742110480711387153204874582764088515189465901328886694747098344681925670812679951924290397133346711700267314032013162187073867866000389825443862482264003362643495290538007505882987458325689700544609547505013263539810536696137361738917652412461981888336250931399712879193948830644512771234588682827280506337665610467465916502057057530197328809541445126971772062050918421420934856505448859258209498841587252551036320938203539207107768709966105131402108737368473571720729036801685141678342599723584478703533525329113266087943989491607496045982254760483535947144025441563798121756495091990609290338410806840926996307804703430562488868538551812897044898737282861886458207003719115239336864638279440635196236500269885692663667625091924439807997855770951132903127545525035611761827226444324720299574833746760947663250606351116253173292130472836864021651383607647613355839611680322289457148595210191338224640852077567574813437583391577136995134451988079618160527362481063233844628409577661142995535704758275410960806799196372361559243159493823329701255693549563209208481194424624865012488512615490776896228600684088212635450227789216136816817277820547880003938732433331900278635678151308066774345688837765534855552186770124307149012339869329868526587694235634129865615405414144128135640064732085755580783884061357566741952457432247330147606201910685764266756745288310933961979003933343243724614653301985796547001927246146690469093877535766530906785910765473774349369461099398013287140879114700923859843882912362951470578472624334207966237683321408531769636259909804085817950616890494789650482581902419105990025125937082218017779521708597912521877598850803686496374306372970711650137226863302503769731967403237794184562418770450683280588320582732652680986201746719569319443880051153332911922387017856726573194924032598285784607580013678616751426176780888957937470430517408232908072053221434164960647334010878305424300579658021142368837437898694199299686971687835510614192991186956705729152940094827224111576162801240254274787836249570036720784502858748686476247343746257837131861214709625193314977331669835875059087762463086086518521716796735637192540655568391948814476520433626698033120323025254908009599838233868649883224460329037396612346348983914305346134748763945120572859998703744185191245465621679435759472439066407088368234453193047010909804632142974949700581405096050864865860882011400979768257166303302105226484539476126964800248990328888551674094020763877345492470662526200348004569402565239436477300296407764231869467501562918982098014666173141762182120646616215620840693815628413270518267220894087195861365241722065260534992006470177169172155760997909460189132660380650684077658922430321210782364248650076936147833546551255500246325650681940189879044413786328376426205164035554114586685416567816623979635099867727180606256904127351169342124442554909175511475456630642061028146201711470636993613069144902031426326376219333200335246351699915961894072646391963942037259846080141376829433925730050343108836302682192718063397595347698876915036378543288518591946395482353880721539838374270042045310461448932499821883421141099317520242185845864324089785936923271206375205076047144710153665395297913160577079161478482725519741225822547644400305275728808571281125473873408735422488366470426531033399101977749126969429298447088740610809236802902333512138511549611550113028093126771598385935784642068995893376220823282868637762454801054580196988557694707570443953362253211188259879808794002561267236906979346728966685936767920359038042752053668505063533238081577425421794491986723738051066112342744465630764606096318334368876776352824380440046196513542485702441415755784089632693290951917989826263219234598605390959608005347492255357826955363106509693169243736861032499342765337558082363388962913118061421515659898085668732613467739747542480192622307918099904564232450526262240117763564873182986603379976591860661712928226457429435112366734220296892161296405797144959002309148965889455782871621943063217361844546342585688078848426470929317672326137067267646180219178317114734459579451037282746656445589596331595111836373479072943480023241774896824518874089384903880452173923034337210667259034278994430369947937321970101136568523624321800740064769111388648646612724147976990419760708268597411415717908479427865509378609145395362219882802248094171827356645109875785503862453714472655203311825905535957217012285602656907043827751088468698018740931592181187518024948728774043859362526247861109772267672141811416965357705144909420739006472983452523792717652367573137836343339443711085576892463548230383608314006151209874903643058473691352667289061221574887937609095823206279704196868468126423362209440924961323082534902455455474422692695571304582222263175177822819592789663901056336562770095957942144744744186217295034708173381726260855020659524193949201318425544607210904905097893207766926501391638538506314431262244079007464345933592262883990497850285038231190923312149028005930409260999994387413782185874768132609308498255746386418467194867983699295622193779043363272466114345957485827441411203322450465081396543447446755904564413081964672906450491834198763315170875509819032883096102198289794712932165878546565740390244020987906790264730631129565641025555541748218161484198849020088723819167011127426876610640408397191052002773383970684538429818825184443741946119121449449264509667877226209335796842092431712523538613328579279032953305035730170202468233263033689263498454766082865972926463490262632015108577705984044685070251322609039647400052466377273652179926590933895798485776204020156447976259279604227425115199378080217073763956546653802235728694637643460171201808854652176477356643447959897891160393904993836820020999654358548304122970766698816431294445154548258058966231729951067764865070467096195165385392284223191004256930492074384890463298898165786498840424225580302670283942070915628516902462070181573184850824047346392344839915765277986231627044602478893127067619067653595704988903084850587579249801496358560486804322595695184637613035860722685036824200202629460873910496608859383695100436434496484049039560082208410959757038073477487030807251770144826990703022974812573185971695106404769639870272159722030022017863193867801330986258826340217456293563175791772920148029219244407596388566995490925814967095484547497642550329186463870068394003818000537974687574429589795254924344825874748411817101488770376451523967959841811812969055976972560995714332292658992884012446472031530753179377315852129372737700741032775659281511990680847162730030903774963138311271876885404604539388628996054582081480942221962549880843405198076660834135513210556369457748418593482338989341889971221428986421058054794725322117861972530756022479154309473228035082105860924156477266971915893005311746114134894966857182622092062376074351471335994446191659568129253973973060090788394608318569504268268455349523378415737960481233043450023502445504791132781786693623583829579033029044473870494312811647733412225205464255124299512580063292333526220421135369513210590954646906978684984917874986667527450663426997441986420779585901015818316278336914563460849327563228933681291600308495557295682196907764763168497237611872906268681175179951840103092898149963673713076990457380885789725252829361584586984515947541002315043263794119053828144539082441995423060924540479122649033155019333094403446260243298725773475687392566567527566747695378907911028847304687836629939237395056176881348307157941213781980728200541721822055831837140002644720938923711945343661617442712021155499309099235985196541304422059230973783272069501018328598671392283195694609752338845948775165378603772680198912070376523062686658187182570084473084422002951353638415401041328652575654832926181663222261080355133451042794456005615198917101890938163627013327998996571758395655445188017542542670442568678035847143106178242900503197126258874850048515585117178975108781904088734773044380760135970231376194055898940762834122679635071604286278920514780297218604242136266885420461217377613490007063719994978783695984621967541386770409198337247522217268703555796967204498306616655786209185309860189498324410377433988036984359154260530127617952812046774791803989331344277397367931474579828352105983418577964388228234824118582513084813411317449824057836613642397497360329871136866369044930131942133435003301491219896700565592848523332688164770488362238420086975422422595606846033054227934385070728555850078354609810937021362239918625927713455584063641926037820723977982306521311434033451959849251477169695591619857341899263298840648213065190605983619842660623907717718094362367473614488147498901970447888384699455553263617257903307945836243827864819225958076177884523038536670096442245757283052675639639078185935306016373908851463405550084072752092583943350877801626351779393680360309533849214698175886103055703315633950378389584640052584513638929525283228453269509829699926716013567421906484623951258461717100208725583502809106283929817072178367913723854990975851408835808229725689064478409589165227109461956039621192484985803153830892818986942349761944486687641044642639872378431334915355166498276942896357700808312050563500666224245248036936521618961939815564779827391073848218351997486349341376423008713949421806563373466412280774498506683352132697660918621333555850574088628065220282097134345153827064979977276653737177621166666665283452190851010368010328182761781326202710684515191142412788619220733649998869654777705073147008088965054494343501900615603121504453197114368180819516313010533236763132464379327721107036991489013443125736190493267718144470061722615870626997945600489357830010932472225380769578489837941342856294805746223370960549063150053478276828756734760847457955522864322670648475080545633842850939907928104995290042725066676362661608942076321354220545589840117037480353599588976757075087774174910754772945127540094411995738156043816165628032390930616133926604650681728981707441014350780340987900438229349808740202928943531488854168738121444313554309891777367167637408852208169953307146736681908768426629016787028131749739595482935578730175495160394353912037196410054985667067824714737250274225080101613821584916446634228992165558305935029042564031320973196105709405420553464440429331637773957333704362088362924184830965457162544020258701681780449890822788556052612764175085248985618282505470012651788928569291978406467295433498089469888712411977307639593110569832785081565638974134124470167110187466235783781200381880307875699739621056143200818617113596801722795590466116500470677876507522273986797110636574070398436334115650420802842282971920072661742694310375516840233255585082615547555367054794180910443468408695158457740423589380721006161535954682552874635661306819273976847196511395171794816343732538945695019628444345951615497174580550866449824493682857867605556991161954636281268352292294706967206289305369457277186721340997447584423597904604440647263599178027190341259737791068599863829482813570535575944161151658548002995241905502750964124312522170885045201364339799814179957627392343603667123026481358149380724765155702656206721603378606457848380445819913442004216845991596278957190570532943716894878673585444159040845817703200134661233920144391568661880214326274645858323263913726826480287087410169021062108475420384287812416507119330375502001681204303304229554492433630836588782172935728968825223013939668269153835342168419835966667690997195066628139392399020073776466557641909711197616402409695242913298501916398360551977612454662238829384616215264756679378408168540233401983214255966265465237062725280708073433067636014612865167111014241378960038124318515305465958808495174108702627895469071378815899088306696976153974101411326202382571698996147437448444295831609880901974963387758121217696208778887331718228995522590085386186137719414720490097425437381942664870641287474180161151661376138093365949003191570904107797158495914790399685621859016538528704903160838340749804262089810014655417435627013704625794223275150151764336952040132735067193117519187003228897534204750893715143393281594243672749759367664712859427727197474053576984174455899889768458136983625592263601406269614405303839156970243135464032081554236510616364904932015988794275413863329405728436646516243913467590930108074946521330775310148632778088786615129551065778729478763392576847828475544959764686863920041200803971165734577018252840741907228907375132143732394149715632455670077891188350551726563642160392663291016933308431285628390977280959640183869875242989786472213944185981421551021495626857717053684113524230028639169265975844253744390684044282315745573218616554058426355956803708239365172485338178799719928586431133083213227500926813166777007980439650921634984978746345030696253322315888539944584822207266585213379169384532139972212164610956391039172219932432407523241379335153042592934470016748378385924695573074801692862627121558645479782660807352663115236806412668197243749979071157825616608373117032312098830167895204542808029487730599343100809417809078811987505940099939083422639575957529281298612622784205528399021461654796466966803035124747416620776509694143136343753879218102836499246206647533936731267362198479956904006840238527538077250017960659422759752022529410719801772490027514122765674263300732004129990932468279667540289896499118835499514536780966440845292640609267687278501912085759121192818943552895416825378499548295296496741197812047427459032314178024798074068799402534260663812286290368291055573884629551875016620693138596732025665993229067189296694604757893054152886341764664441344090772651084346011252714596380668721412755216327918025510879395422761927749507080822108654312100755656484593362510532553714404220806796539987851728697044738301032070461187806218936789147516867877520829528604235930276270530287305857928056392957819673077749689840256301010242897231509717844517068750548904099903562224969337141735121071724287564987971301889873336020021645446783866690969263949085223279428427700579952516957405910004277321985583379908067379056951600111371064641595480165069737130932700939958402488996739505925573417883799082231553714824189240365951898559364796175754626785485952267510687712459730438309304891343369611773328540449700902235420305485800360278695371323489701162194048128003226602651226430483466016026826649605774734992774528406149276223814719742755777068494525000529937038982679116681388402901603351295788086737941504689785424670716199807879358849030600327016069218449910241515468792138925017752730629338813627507605573162816044504776498754891014653285907857317064521922004663425817577858565921085661896062015647833240792586579310777696964514105143710773320290693413278514580383430409821554427009466899778248805496458313537960661424217451888337926015567636694241852087203846420318833134114535702521683005718907062050462738649057192455088210493121886419462283615514276160290965453339500889103940160778315110379452788953901248918952151420864571989859567319712973835724537322951033378643946206666615208239449336573903085504714825905725183756168419470234489896856255897782208051855622219654935422912792460394080607714417591035792751335518795051673273712371800758611826297203061018823800389820816630306410515588922339943015839219848449289469941335912817366758526327834804798806248890182247960146413697521676043146140209434424038445635344715881311263428782856221200810337125839657311107474856702364552666470453311945859015298378570317705160924540751717404086914112437484345386718524038204875996718553101412248404140636082083121885991710398878969447531295637928773437902031454577289555023393428204085756499409872835624614596335375184750988857867011828585793036445683954067690332103657533782287694027989676897924613933582672131560398043405537439416785200221522043502034790072184680373544876270986698698893715613016082251144226727730065536341266847043619436855456617624655126003565663090584223825100240752952634711460459734376781753661013387909479808776980759659951650972014944252146530312231246540387307359723801964483356514956271083123867904068867879659349841914274800224295737913364696959756566432374085769713762686062477440765661388864767226203851724985811325786448469414539180604037053857294235903764058724224360577456983373502797509029598248078852950835351627001465532102841135927021404467171017139127445609027137774940500792755251948860434310613493659641392712023045210418944944439270866657335678539396035144157628125144708020006485308098735923332736704667671038812154104276900551020285072447203972824225412027971285582090280579842689628888320451559567051107553649549538816443018631185967893436621367251528309664681767833328699663330667443207722161690709165747884028993465748358811219362762354298416398290170257957084736391389292770664959903939398989864752338794497911376483223006920191677245906515322281421150983192833395343976237435131630043771496433583587460918476028376181684580307761215163930330263045276472610042882161183978269882936310487124523735234548791940926769920913625144259784227789045618439797850960270494402537096156308489281881925787263598843124864248931444195002216051664665949103702236100507737319228907326444150388892324494493239217016687013140308287775320519794364889565553613505172289107113548636484844722182409520127790290555232538692718836232297001927899120896665705016597020718079284229427535280869504374157519096026156593998632161378807546453843327544339595652049333102185483379468671508130077012983176433481501554051497344270792000790008666325118564149963962817675357963908773210375383971659573008339673952877314252292704161878943749816248908771495159225595081421262147046242835067538303691806517031727221152550372567173142194590759872081328488502750485203184760596106652713860494899372582071884785633434419656879504065790504389422633806932757587248336501668423083763667938668305122369293779459241886625226157201601721622273101965208700244871346351961335729148447148065673477644237782929669726395646889901213183561801229275867313616781210836606236860368025680961576656540492917688202503795381904035549015906177733102606623110763238553988220026125575921861557139326145209378275067990076135765340981112183820743997610344325613509884346954871940190605230459823550168649833504014857820636702217082640445778533991409361009849630429914686479238621490856600820131873385892636001921079042848607037409581254574386214490305221979971049275275002630342814510350869904381073439775585808382409172471758434566606507892702448514149381085308530080250025520870335600553356230193805980643690503401511757941046856203690111168228866685788780584912876813163499062352817842539407298633726939394228296509013439855688573904070555528304756903634888468434170461002587846138753630775083003432084960484238478675039524469062112236522437059881830021768812970472397399269948892578679290660754034762024053242737127131550308699977095394399819042434119004581347816138664038129683033021608985080785017981700685712309458273334705194345274145730531200757511156284233741328966162852047359997372260495857720156123431871076265304972424684000556372442598414572729371468578052103680069811725271600784997842069689247943581488019283468031493557409609752051166280403504762921499174780275886245875970181349817283239690039762628039559646116065472764073750413844548535210424781423594747884314794307639088180191467445022470398356596195769901784320778253015275397941742965396537058688531565053743068418866490087571641794494795691521527313238533144942193723459171964853855529468194729831378815940453073237250272406760495643407808400513321967809401011736830023889142191085220856759270089061965346432869327533680531700102256121642091026828877643973028607148922074530462891185609668169174017165013806087152766183106044690325760224189772249658518791663602559257988781563096108703826708485074814952986364658112980771588773496376164413859425365926549095907766862600998573012226070062794552377137785991052307927496217187915038198016484712791574203182655931094320535881825546586703983442051474436308201975578857672392157396112148127272620441445312053356272055755501227793606164352526277942762464068883463317745590022954397495943741043007376933437630819710220947817612237798063926260851420445823313776563193635610890912214766803495159236885788170993902606974792232036114291178174098518045220758659490662210883821715046007567507241822322959971743148986017511966075617587029317233376189957257595070546824586721577908725349528638579520958240125857056937558436635245910841967374575565639244606287582222889664762239241018718115731104371211908362305209111695862588672864582653722693754962979727947327486664421747456412132619001011043608265542622868558091947209924400041122764630943139915284426449625927187258011504908228355733632585764700980134840193328968688658764403138768644284797220648409543259698590443293595063040826943678177781809686095599862733418844764766305670785867590421562998951024356405974076130323246728599715258632837932520418948773143403043759866411529992842923323118677173544214792004270183514501355411338883197808499059349606849041040019991457488485433674856021670204717218911983022844860785683404435304573999776569167059306931544984317604905575450637423457255210004298411917824744154406337848247450699039211342606086161035540598545318891958906550251426569006780815782265509047848034178276958323364357634382729430791730104496100590888711876398632598612521614020563833157374321300312544354985374604885707729133312895797563590996492451386231456720310026952391304358894748819295802211120071122948226007564478409588006320091963561116015081853466384241544137097472671764431776885027391986975196094584026695932875956948564711980147887491894790883572595227313949021927566538608416702263951987339839316599498087005335865153798593458500297090838312521443494572584209840808403354538799525808429922208654492680150324573765451853742282547284729470241881639055770291741306321346897955785135773896185581766018565507251202275611818386089510818441128740898967943011892038800368809108688581650960346230542361423605031948815950359389952174302158356905373009610589604040821017176991092673509696833602034050279264014163165320964633295198074670281732518381251512934986628857280067049788329833950982994313499979760065530404378720464596089046378166026747926898847158678766921384297798367698801257430267853061077472646056275292562136134205571584758761543792762984202023828484734990271435892327499890679762023408239262197243455124427369899941247493106919126134752991625506891656564156755446502473054279609758182210916654656619607385596296499911316284557221045500252224419410470148644912641437711295759298792145068219617353150702999236452415158164637382228740810358146066346286739930859489880905008828066721486183857674410619027569645971336557910712250234778113046561855785933896588605084631772399038004960281569176575987077975493697892427882416468792885523582008920991296228471552852146990051048449396712885213606750182775414429454397822652634804684899479164646540525494670075856178526478218765903502833668639362712348390996555997192555694176792007162353761559520307855261202689807196918625430229452068893773107963926262517038784178795081822747970190754157304615318198147560752685038808444164197768230079373319080976456072395912696406639360527322177418969209423748819149598167019305270288383591604012348729774603740938805101392980810540279214330094975889112838622802767020833565827423155565173770319485354528425429699791823977736530913546594653471693567379506163200828388027878878334038531234043544856019933062061448247586179841001953871789328468364276364060358474803026805384993537410235428603698995367679653377163510582377830351021740541627756017976211374773863867921540250666697009161739489752799208271021788560089989447458634510600966241319087958746892282945164466521724118066420950564328411730462153001896560460977731944006664431270116638025854224590362144183950742315415778600219636699976261620203511742114558408609676725807557168316492277020641930364043006082797610909486547729699372314982909901923542699949836128173414326291469445295039172288716337793996161844755500805731759100011563494291705212256247203712832914853682202231715733017773787408931837444756826182624686878298478931354037649405451701408786217902059506892616396434440396884961275561937988246152031052062868690011141422446190521050693438991887033426666181815194790136178229586698168834556923332630705573251866706321769323242971780252603744734431794344639594595631616747002955386057914754262586187032908390030684540041745721437760464885243444052051171521898669930212706640813365371028061377805135516924877336608728740975563343234342697179745328174029595439163501506739937212940254668680174273062066676349796408951810372177267563964500330741050126685596738927110820150343148234664221933933954062887242687070189135637640252031821839120957265797400202263623803447389224257358152763960912919979536075826727380926006392494357722513576257715820351499919715910946546047582809181261409437674555281380783396966841287434402718029392360468118438750129919001153073091164603624109670605111817379820197555028306837770561480148690352155778779593807447602029425026607477865094612995806085715833400432629323310195634425622455625796874332415150215767093410097801452486135580981720735491660101987544776314323524726669647625501086372979401398302127807383049192881192415005184977712793890651627581062705310433265861995872445786655503548124192010379903818178397827664083253115512680522584732648485164087688527312390896374288748738356175406667504850146066764591863635956652542447411206637996813717570163733614125375290930337265296942393968109577412460490748106995813280436624138973630251572755277238466065912556112134724247712406526354532718916730722694923032856101740829807513523907376893473321510057508329237392142726110646077254080488582311238274643894096393187077169194984044102317582845635291576841505977828903727440475323719569107262583977804651920291426692312068037230355169112359076709915252486983233760529196439242485561347118128491818744290178068095973858715206920036274331829469572850283480870778767003424780796032046207763873264063405190266202277398056887356679398903453057551500748277764429162517669004506751058575233598240062362649661046340210204240837376731205275037622558730667364513968337453225540323999601249288564056395901342372611815700361968486584600570953859898960174988256688388561941085199696541603324365030731970120816020581339363892924530480175037393110993138474958119752479914803595349199812137589939559411637693993951816808791808007009596074459093923790043252776190050219006003371163450221603241185568165996182738483083744746369483348008824991758976504019728742880737538295618479072443854822099544204327845955585335292530568568803630438586986798301871501861761678239862493669786499662177433749541481006814285925819047189561027937426295448863999078594468698163368304460336242391592109374649011076522762490402338338308506823872887715881967573413206809774659203091827709789743270073747024171186279282017438545949352579703490205720023641496188537883131676044016100427695066517457650070140167367183219022125770933999020632091608414469036159312380872494773636978240376868473194311097874179997975487138605931348102565231507579726285266387113260664494549981402768472079506685000805869053895775528350609671855792027625529822683000458873458554752980320246623816658114169724789425197442217473163424383363415913020148240675195715702048984851538444970206694152604972919941162135522696425222392084800177146138290311351835836005221692690024190720916059319288912406422332506849584095789720718061954885651805303743770212194366171739051892102196132058526736041857011027502926236033128717996188106163963177112329949409075474276816514832971673480654198027178265393639995149587262961698951906525083685154502163087046328054139848497952555001773138655027595024529173953692864593846737495265161998623637315689130293036212449971115225823834281103785083898397724097962866401539681602769198739631046999751784280927287915450817712130246461994015979065494641333077014663669434918831745582832395234840667562117075762821842639589071206992431546246920516121094562121436002440966407383683963164165470883447475045863407433860067240290850159655366456041285505162371082767737530043706299961128045065563960352456075583638787710126071409808144428016144745132583479213889002562091674288818683067526742142961854325923163752326449132863490303450461413553561691384852312532601546919609298241212329954616617344916614251034634888054633357363451879845094775739349766198253327219081448398928732384427963974542531718459165913334973481561700549413656377056059676425902904215393134445818783347066791312849087867168161797522421498036020450626571991433447014282229043368533092027952795898462975428628637493830615206081153460964439292045779851172649652241255233191643503678949757495559096361651459540424218531192170794627269178809528847551029089457925838711118930436479961108707490500668802015055979612419781629659649520265364691519147354085393909051240267474880637068547832991624083363233940372543590532013314621343901883611986879581511200262230565260907891656124759602960678279624345882639140697049654211952150312274757430387136420357382456136451205262764833271325233385038538414393297016176838111390031734865991048077161861019982133976039488487967770821057916310673614346490341122097588625756988301373730368701662578971703485909963970612417673869157558315073095519754249358147095637769549530403179481589299113942064697324842317123733082510306380285690542478345413030393505373056915971936918817175977560891152472625474180546116712963089504900124059391080741576242531630164995084992397995911229474974261593154997090338884323555014932774703856948951940264170718091371340867626105040801929497568129685003885508988184817713197450123602259844355874219812375697199848743138712413770450099461792014788569571940836405013805291283111595381646400241816083648442195180958653928346836259783599479658770264390727758124735190349908117216308136172879569700813756361376007398630920834044363804825536326000497096038833551555256969578862832352939308360818975969575894318185037073673504986258999559972175565713740194769787994303070095132346538105467242916435848488209709480699981892583856135743787606260611846785937339119349870818747113347120994815780406586012493093111952356514150370416055604437088674205623459869445539166953630790559964957008023837992918101362981704124266435857685356935014073490179709071359590727105328537757252560710657984389912665417201726991943208693291328767703825287493282926645407839607969573419788205619003054977771440676015997457548574439128755595425052708068189901034735869201243373356757924399217859158350807732342015314926092620745942185276991087061480795077789340845461422252968306912782806853273511457447817389818992837005794096442215278525147833884930356779711730497145433693226553248167752666401018675406127444029567567179161693338920612339908426567691846870032603272964415475039352196183681195265806044570293535798862564509049574100839152961456635846316103605539025765426106718962150117785662582006124741650941953519825359299919250214898397887191885466236404860696949022568692848408343660486571822851959378816442312405341039873426266935070385045259953323204661370981049487484122038374035544610697591482688303057286725590945378237604982916199753285274889874473972742846889204267521290834269693463416366317445316788798787653668831518570041608155321474035155275519953071988884851482899041513041782453586620700395275726609026591602667057424938346767450792485774428059908961230896776829264039911670350124952494332921796274558304520350441823879059314391967959229203266198483904358658519534638712120577880047194923365230462533947001801518616306134084682168050801105388490783590435939002950823638007486537413369403605275566888492803856637202878509914411606470059100439407575346599587554855438808986884946075490434782622389200587432542885874321722745579003114017919423790761557773147669178620987290144001728533733617012420902598686082005792300324100038243143603796226872679756580272645429846772383653787316933065962042677252328914291933511514277674321547419942735967662835283205127632385753294864260095425273664260051306450691736297567310702030307327726226673220309926073886184087125973495720884382043030995821537985655413704997612286072788979219517118707157581989006865304060187619167145490742867978040312276032918515219346813617697584856853018761978669388354225451933270695367049712764856334911183656353666377542418902277123277649090216304923981261142115727109814927638447087388845963262574636086574769623235592465567848938264531546570422675954677672307087610752827257116884855222476261893832873531901444098348146224739757844483642585938408334301117258266658124698022470151898731490825744639511944275925747192741114549978155926966415154712284582425557956173527434733249565918871821001886831151696570346587921814125906161503849999165197475907023700894851398583609659659502582124084090040612397587566381854471527205228633041879493068510294652202409130852367885625349842051657194039205470771610774725556783359226644631629780016188435448337097808567892823902335410314458891401958195915795460035259623615631125589349343375857870720851152920157511858695136150599197905466934981294470764417814041230391774107662562684099070304427519434458978413154484439956232586395978359032125495018520227307314128335154169948235298741305350644169472619595757698007862268926701752916130901247294008114807817634790399047158390191825081846806742090069208278344627043384757351998927526857172547621995291661266753461045407198843651567701177102505182846817876723022422726803092600378158511343131094254476234384119952015013697782828143976253419281974682241947542493272647485125883470944488296368155760097826120350074130354940823850658578129286944096978718884417120477322628741138696815082851017232353088348866482272488096465957991754351657680130784928601463168818566295624474246593086075275737780167172068092211806351713399052118861667947191548327286498003587145574657561680637061716611651933636854934479675981085654978661066184437189680895544696824154309902693196472065666793146444322952184462599656902658259261364864259967686805093453142909580252453738847405451934551315880031150396103166315213547228494256380409364327399500190739513560676988003553306997551658984858844829196711505142231027414021048766373126156189510896621541048933132870709327576524671222815466425790286429131795259832039847988729582718356268984258528710121420075707823462520981396112122651722624244229434111140656731510193296171395545499846055184316616857240825203012576250237322571632504820490381684059889704478125714650627246315455093256120438390890897654665653155024188926897200967637720594296187537255706017765006624382860430151387109833027407768500850908366850632812279510826215480560656874968927188549822102912347933221085455433712437794189123808030954167468145373529970678447139732837750203378263985201546600674752735681974525730283915448744858946571645018537406606822979220288894777194982267569693801489825094811311890996976939716367044466165801126362100138284964064702435831285147307048208130285037566421135048356683964824418536862355972216982024991385880252872338283435261887803861838344533985995033695300428896807183117050907526371862308940599652943306064922543922153925298661649186661590597418599312900118226591106763109073876738493426538586283646895514495154268779060099701480150971329209598836932480302170290900167053800532801511986250930059189194331739211027579958725880691524701215333946556558586622767773717862969204228715011209001259499141679454597124450962920406340330635030435117783618807091195827219166600025319136006849062724300790689158164496684607654500920310447866470857546167334034819485663422163164221672721019591629273237776917237445604760492662770015811552354118555612903595531442011116434348034043359910120620827487671048680507495142702839698124749138282714032790991735778418970038586868068404523815198296604466403482113637723867558982159956625307952103577609281717865586176188694564632627815584224369151447975516211929046442979422378872431924423398859546979953571214643558178789023625550984551657369209498264852079401148948587060343534397214319404443879003365578882611579455714749724695047985715522117814835185819421338901794468576828243353050899145119841106085019951240108276752936099280538136058685459253978529741292914259825774488896519895692400743835242977025898077663576569550735282444375933054547784778917044026202318063672068467095401007587009394991926193917050994661659048646973150999573700659161842274807559904294366274768099183501868901130103542136703419738633307242856798543910941197715085341999930150541127432304441318982662497270496258932540074186591614937727300851464194194998350044856723875871410089089382205430338265009514854166679278745702555361680771359984216303513834928921500283802788253338685699723166871837427449909139392510027602111350265585374927556333230985143246599132581492692444249890606942702678166272330814407893146684938770022058580157147130756068777698479110069113995959545683817264486040529420163079849897274045135095894217016502947879677517293453337918797202909939067815580421626080342112867833784694636967817686345446210864824177007109969165855578405485317782312367501521165800450836876423924710907679287443561887625712602909052780272464024714938898548974136250273202514783610287683045287266575110857925393116779545891333479462829613540334862963953040513959364458179800703918959691313334420203165127630064814270198306105787262209716822019937775188234636502841426123805433413736436412718853549855633270663402630586413392029365514611865805181068593343233400478432964149016461154503160987389052437466740923134971335791192576876123056073703343669777812592965191517746781989965948768726458290756599387805187728815943873368761044269672616847237519539395020684890977929348590606210781971842265157160676564429476113282663566399310421582100681729787980454755543080571768893390635649759806659572432995057387848240415137487602344353029532233610398522058392004350896178297631110580582257098049532676745903569092264499363645983739273534560762971001556216060986835919411641437110202522745364040743591236646586043595820249821037730656618443539445656135656679879687146770184920710726572640002815765329708892230703857386215255169041491913840386611643369776490607910662958367939196536240671021862933034011621589122062371363330043844277257696484537342547980546381599756436545258156856085321315093101115824884014733829794952647713293100841670757011273916293839110614835632746142603543891465394741170551456088029437123591175355276960720407445675789782541373064556499827194550682570176611421655234714781311243017976989111466484380644321236922030704224640050676856131663384848510120579915568390815158775436183114641278897625453066704350821387127260391449948887426796747529091277924083870576659419051378826788843447027146448734154629657548939192358814074322525665093900225054319635646259069380848367963906550089737660416039510127305478554013116999145599211453479849621536664536697408486440812367681470895987252683688571914603925644134575339120213060066907053133945087265353237424447974966546394512276319021155000393150283088393104778667890026830669264555147389997934351765929520671045405619005339326242494680582430139073951676226871643702257650334656987921048320640091973942284277839825449745826373926740350134400204179770137664569915024381950987300467257270240167191158940352919057107720432906334044753310400061428192079030262145907338508417525726969184434852914946087487794769800876798513636216179305602304924019317793394663205304140680188531083074576699631251796685782931365310420403507721701989985089115574451754851083032470488052356770521569881331331862304055553867289214635987224173495219265974158281227564637809314729281549755128318554360685723436752897676241423520892956349353629722988649168653041323737595996310362642341757018482200804885389305332760905951797042013708932403884067450895262855405686676652672413012367351783298962153897864051800115872747253293414048855855084367836478411375215708713002147416934428610458176851585492369094681601902792096360238032350089586778395957227975030776779247557241064947465199576514179105919621831906306716048513544767924575504761288194758447286870857088887282940411384598221098751332622510836002807275285994928167910142815882691418542983005252792394981516541797968459587659901187905814993911557755854045202303116449866111191659632793534673961375157495187381953574997249223104909082728143564342657313379731377522343262310664573178179406699564860436395475065500909836229853230197406733607038595091772477386120956130251462345381851279410152625147081884149496787580915371326712907887287605003319977474449034431950749927929116178082826784219373587909307289417081740427914618657816263698376798749304970708109501216450903553525706670904142591859469568621167480748751948789078606112889927026325252087511042613379330711930295331369211160670689752582524952220412729172790437760984658378217306692141754500427501980626967380212489436275720402354493184592644629412734789582431410969780982849136761095581802627133787052956659353124436044151591843199154582498130755762621073886353353453625892261953381892771906706947355435217844891916626652313415042837129195711786624215921312656858478426116011927802247816692908008109357229123516320129258025854851109575616362202678831324421114125824667190082807715323765843485498394573220112513623372126183030481488161092919343532627135059353018206562728980467222058281187914066431972727284874018637936836618592869464036283013388878376331217121024331875436210224037666606355124339728893112157625225836723531114014686657831632945947802965458700211663792817651916289398578741453681926055491238655472828129821459503819517103312379842065577611128153738445715872539691745969556853615543592781188140526745011739061354617129154259331023683383516826121413371357572649552861227554806726815384151595892558595557225992797181511218925316263823815626418845249033855376902227788011417108549021466820163964051647722968683704238390597778801990147047364126692629609149026042514617698323244456437596638628505057459003805835713801663807182468754345081109475731013339155876056923034474854759149249974782213645648821778130950375212203726817997509701850166890069586206558655331205514121260268005590043605761784681980916896493814777380188437924970552559067674868198681295195452197017821941878582141215976812298628483811296232281595539894843726666315182022660325051928882225896036708231699318879437027131666433996121955183193346823613841398974191138426611803463000606904931961411453871004447243006628097866076267344950052814257873997895851764099819902608724379235022030971081429003810627581574643709190132663564981447886592845275773228819562718318163947532489470341501770323180936593815817092616993192931623976036077398132538661778277174232059153231693310792861248845088088108607369248870724012151850354652850219284700346003758872652730655670168514352370738238082284630769809931388669200628918959987128869797304224048194610384014502071604458082897176511164146999586954551092418898645484069376998746827693538310234072821976824131874556573330159147550616385192951370210578710667505356096408399915116965585206945288373551993898229860791132950641519517167703820021012068679300729011428283282921035841159622006678212488629458558345147518114944703780300631117500638320523109410069744599288305105049717082544189145964102465403054573298946670668169003524727184813639867827069802261853905823608624501047016610071546264423359349671736278129931672947939561664073422768502247899378990434571554779323635175589639166802492159140725243432578858087285316906497777893699455701861579551841600807366775395370178254109024994600683688092035441185198729585444418620888180378038769631587119990340823164980362775965828524622329637491172959504510252952137306060060916765625787642203212387045609052679682607348279358903704109492958653019068998400771726132795344530653532030811504616881814174033536363092090077990488815009336637299096686432461157726000828820559034333875446980560160063996818775534079012064700108799059605446032828487940718130733147768186583051076081476062841535927301988287438591020617498597274713818508358995188424050424085081102273954217281170461708838234457434652715529095902015595334148206317748696887190241567722868793781635466201309973604607416968915512860643751003871485433166763783796885386203668333012221029662075448780406350466051978463396498511305760049032560977954974327287124047260558622500128899761360877087198486381080070625676082648583570898481143961152075310438474814344392751617230604859410739863285899198700198703267796975012453166510363177158015340392162525079259212337573687217268016843615017290821849784146202422686397124906755472464820921668284270096044157768326289957871946097048955058159252797457746482804231150819399469356327888403663077837589490868803931886572822276123066758134104620008914656694666214488384573993562248304407052932806165586711091631954171480028307229575059182965300426234866767124431504244760065891806593288064494176337608538413801391795886776970535132211358605124923097397015727893965855822193103959956687176502473853454722803592775802463274040210684097148756643083881658261527789400837595848223735740385558342825335391912825316653710106034331005697546965015921280072418049037075449097530276664111259245609239705649777297584887419937591639275399602942475578570006028003021937717901137614572621971205067949284762096444431465030607531774398548898976873445177992284864957191464978700822893844116262720049301172269302409797951824384844472504387925192662788814700074371568216462910092376770478933553482849013779576256931603844668583327059976775850727569039363540441281708565693900848621597516884226650319885768322543914683793778124505675179689694487618263216365428000762138524732768053006052004420585520617320305717048185267049517408261699581761785257812977270048040332366176480178069130772111700612683118624322584762531555445931483959195593805727312655905684534004616125882972760244137047417388842898627605779783852419993217355559942677198384202777373985288865196244523114668056468132105620066853584723356992022700084532134092114357083102743835257226187795519215034780536807315850392248074908610129686340322783294795064747831632016513966586334459645848127613126711336560071887297380791151125154914159283803021585310294043362849907097149912444356631149135137325526305257275352553612328852845072037564344588593957730429531195469123280622222144496995524453568536816419691154689577083416216076382845992724875524146384032271646420583451586745318061255920307792753226294206958875416681339006398490687295817079899869109140860765769712106234683676782302435120747151067305793008478323577695295311686436609894268646096490826205967960463897333811189558585838926485789003144930018253975580122308041243201600973327029975745309267103571063265648600925174400002202423348168834974854206404128222227402744766360042144572658832545172036106370392418667409439848834087438002478685439845296027705285732370711809424607867174087045460647570311351542097526798486057981330377128756370886943809208444774402863296523165342625499215153324446537332039088525519918634604497402859033458419245542642011071921549185700047061414764743768395042424872340300497152609963993294433454518001154102850321744130215141749664960823466950693718586107368287968931875932432953881473991790014722475981099917594039510299109256475573904343269022130616661429253351421718056833540853639274072513138007302300310016582859121905905597044429467040732448703316284150201210029728538552469469121122073939287053675058747807612251660350964299382895043197412366937253679367797197513643285206387285671618809968097015780420185264933429853311223465925126922063752694647975907071960005401291569030470213118378979708711931494855801897798727032617611019268473971632557410329776663910720387879441792005110985548518072691389680026314377874555789440742133731271738734932352829767736021800203518289742646646455749573296702985932321281916925526550013998742822361471113102841266498430014803556094758636939938650250564512145810747791924153099414806640101743236098075844069040272240990219240976930653157551552866772502412996807949922984477896967103598784913809981004054483642445228456071477516179504275372554595360988917959469952518265916289934734871137275807932119012866748205139435164428412241888947494928951150760854939933113157722971563870133985686483586341180276270721032301555501880226930606113414085147517566200793588071698187915052823504951290937154105613795902829006825341329573849858337827653618687908119283876785969323095389570560884820674251212276560901091743736831500780876408876149661429715489272337269471146136012639608298888957871492438190151759668392483546228991375711666006129759395588839096911820836796109906782653735590355807203781432299611581437516514488460811215233225817514968867680300179823935397063740004537695769829329933718381275824548850329713038233353376005830898178633022578605338705469549595178986747816047415985746277160440153804497471500801821572323836854191470629164582469958186105078760153234002090613646349360610531137324393452902902187339581550892205600587710516173709145676766660172240000046872805776722811304757352641485847155694733964086677021269020657876057723539612547831809358694628397027153162830691585612124039889116596456347700858636701717337083979455243531583637413861519469383914181804404977996418380779825221386835086285791142935260801042963140510079105990175145480355538412358281907851735237937995037808518158698333226778839639309044157566744072837776942326676877424197771002758091109952432517233000370219202773867818908554501741823801882687849552979021901337760808076733325691745101280079183948547721661504922075248792688050961738555578486077943021576272887986854977813344426874993493036371449659931923192422843887768344690600769960664122109862978395051666354350862041314192915848454879266897695834199964393273728719974533119719234760996559975728502857184771433073426904201888966059643510825920535025800331699691373861240456727286797219121027624054137447616334877203802388215390745608681939935592484735143820251788844009800435057725841150191681257603323549075965204552383452034317639098120732880290205997788379631320574649627439517210606930036601092035711384660417385411106114055326556557363173297465463493289799640561788325005368749435340097306588281251494417870668720792839743598568179269093399354147870943723037054070144569963937471842015094412214212214474223450339931509991503415702478850401638731812202254964018949587327854850354843537683633103330568721696629746082706149181470108257948321406992071350489215060533096410859895415422582181615798856048594687020720656645588289344527543482983942949596215337329979161966048700671405074655447485881323227429456411392661127683732215859103862934594784458890643586829088739346526283507110807257797254983122982837519819124803045966848029380486959007171723895099446409970833788391101674405814695177411284623662008635041288466963005977263495540586723833560097326354184854885107765197820806805885442740074921727547794587898362438147264356705203896730724654671517599829589903104089133386099390440708832207159531212165084765144450950154945616759461814752498253153029807742263127189750828627929798261619679355548902098149455196551592252085636040925534115048304877133196924736638906572831298090533936337318829612062015609217998181222744574011388510380256901800422572842001255661101843577803949977800629630155762446044317856820467103402518993069934619630080642413101821190285548385300919271691728854651147879809830577733013479089006190784773705407702342123868779911165052345962473872886061043973720066372601553026408027455577173486421652891146510808329331883528519102682062425550281432032803406272481010939599043837952269435728040973704760746839618372184025663869824977354254098075321632751762240059527951631589061746264004647101486991584025258768247224736987310147575300691032578386886237949141682748091949929356028417345437091556672476998233114274647189983525889242076020666290379079631392625587655679263798847825127826980856014708087266914536787933248135126401861166640367118928916761177296711619954330935166670792339367381396568607245991698438582208777336885193988253825037669898515919128964801280273037953435985237346837904413724408698188405950769535342085136541395388763875377041755328091802540877063914549997216035030406939262447039655823706921137697804298396525759668238731317597227634843252034371283373042785518687642435652365526258415630671489945822814647234260806918010353560857226505126038289837894270851362283975170163002679864400026508682449414687752334603618169795747390638674880846166098243051800910973883670347758555071357915443967762106632587815009820530420326782606519744157244115842494635959358843986813154864933277648385888510768221623264517549708949410072643910941138156653666404765062068350133161174921715352020240979527649215030160812744116330659248464195520454829906399666772695584297160727010120462750300785442831736594904363711888380695616181541744977802333994437693249431764033642703958399348028047720154729963448603062418421273327605770736552555512939313308958926572794771305437833965179311581545976510783567819909059313887583058856753343563745256575054704973403001941103639410636941983106587745874411376975474561380455710318316607553488967818042148110767537708795110078323451333783069321793203953091540662815244134960382193956419019137328362293693257141777393347533188037339698234316847809680926241970055638855795703878448532340197790249995052173763392652477278760578856214181767653985209006021033007264009175897123502749883543208437014783720703333916423065101549132679173187089218210616146594250010360077659904388961310211814220229249942245298092042710691319248040774756727383997102040556852021470078604139066900500258529971226998063165881362678397747192429628546281713714338183895913962622033150806620930663364215717165795854888779242627200090071454468002485668807469885014737021708133358867811289257621651247094854351812251308231724138615042944952341585853548996965674279492350199108314714344428894899306371817527169334439096107348645167934814428431743376468657297768107480608505631591741877616821131195294482102645350059242282463300554821922276645950603991948422246698990104124226355152969330132245009011885737325595619878806437531819536165970491808127844216187746315051795491104591048557965048833059793028556352516929445278858066163092051778037120199844843061429663368569786420801276068669843443687374952107414330970099053985246163103181149071033769312972314496100473735004391782724812581068612383771925627499464297075741440507193144462013223577218284666668045594764818616950365797534898177081365461867900904023341197609144347310435049438927748731576973692929084139580535947959294243830420247148841410919737986025895078961754709634147378266603445751059824750830559578916909304371596145574086512641065553209968395720182348603507502367708490014060216617843643269246524526317150460384622113108058751507496863982153011236831180452426822272301412284214209765449385620538554434834088150800128551493388593007231293815995966358968322306832335748063130391596596051569333639384667708415162708266625565834721412683161760846473928781326653830446526790629691540973389134216767234361216496004609547871188179177783908630336331928923096312137726811046485580611669782296222876774516280445547831285208796059425203190570411509711780983338562759618750906965110026657666322283763114839956718529882158811957113237803909331464248882888313384447750891924181683568595758223452287689518812992842890568229111085353314869454764958588172082711784428131622860487726680244501424641941857089210289739191029127165480513266225043950772452720151731331196126903944713399938018493244858074268465865246380347391244800445884718243864818923731282648207499276453334912258348198772122025315919019307543334352301488688861360829800251826887304623090574082216001543084729393576080897483584426495139361723878291386744911253876933096418193929313387138132516019795254361896131863342196136545984743816388448334177445874433671696617254709350570531356794396582141467315967769019554361733055460006750418797645307664129945244970165658463037469192593687940449911204620037978506025951422052472528592248074920302823889286880315852284569879201934869847665275202969805306905456095535846135489935889051356339300585943904467357190660009080908426123086534340508249019695539435794102747252009344492858204539556476738503706834347811931005499065626743549635124694917168189331107806003195610418825709454825825401943235184041282507443970892086939478007512192663209223411362275625540305411028329825914781374365185426268931647445847229386254208961915420037888053023689850072696881955972983898489918442283257221656718238377537338036994041049683324041488964840980588204790152141123376959807740619818067198816054114736666818080087725435117207429407825779012319826206268821235157740046420917948022406515247102264672693683199173274340352283782581648178545150815595370084845617854459118671987413701874498407865309188672375331303137055662792492703923059403660968639118677076723549201447574136868942403693988496712205989774859339333082367901370609533086805992759480391458018130190968057646158775690561930648261911062457736022672702573119856558466775775399582845443626839485405483943330397000944961940271205105492121367436779475150619487314423456524992387492094233390136321617675237912545793122332648683381952253967894314061765974887402236843394693212293878443365915590926830614158309970807166574916339777257419522597799439305828439101783816703018360997220564196099909905384368206719231480119998924892686638310776789781050689595710423730353002779250767665729230546232532392911841316660629060922941658628574919526672078963545672250308861689193314452615943626701105336016154222803827640498923419354855543151966151491269245698879288499029931513549210593621546589158390635658468035349836915311763404708657344477126367189858827612946889107484276945550119236777378028226210836485320356365412610695792311698280758742607489949034925005720536806989034590416919895418658198247691924686119687310788067210124091689072190739406330879442983466941952272017783701007018452370953942135351359377937259480504202305589314817337597283756966946768507464285352363466293622947187542150017238501256826674652377167221898843492771951366570269267119447208287460089151199094778854972108913352452429195740372530558166453948741778640705030109639591022660037505005220680786470180785994442393291270232524091067623122247137860122747184507868753978650511415654540251739399364860445729104086123806677870550192934259471830115562274154604853395507462600360938038515134241264345993476795676171060704204538717849319060916127126957032989542849533448769253688052694136463137709064235488101680908181204354452542329166132415589628885459882733814516738228819196687601394534206026657014046238081635127615982537408209358236698731997360515020899136374123952352984566915554463010122219984636773666012634973532761170105640669972751905639453215444087310890809395419200612700606811601656126089973368927694915548946198342851455073562797229974719056359891570660686382877534563922079202697367376300574925867056073265857959677032515536994887496875671007121399559127342446179955349463780266443252629340353750572608036876928680322372906591826184542006639774665117496661359022832110556387121216348401655259965727576310356872421274547560326702559021784597057127066084763636243992436912800165484158769108172511801597055131098273147801771700809005105836880239636128290389634854597414906967138957122961900623102338050386753461009042971019050380287192110621284522237757755211716277164767855066615438911777967469100194341775305900617676255827569953355959649245139173643464113904273149276939926890582858444204357681399693448352124046902572890827790217749668878436838121644082797066616195698559322486566839674673746031454852986291472807238395313470294384009435021408667305137379071168103283143245997722553698008009916642840287585155185360405370651303977437028077373051152494667452889856902945326530240850004007930183830283423934231406860284617816536562798354406650029002593774126388522650314421683274454238601564144674637388871101120964034755832571068416627285950371170250611519891888623121107904256427503198121687016723921305817513513633541799594759569453129534554252002974401554176404377207625660437583709454421119992387811434186777627571437892006694291647298050360104391870448045243460467357386775420833471161061900725036501741456104967610437331503444752510045234972491532894898224833956176079971475948795725863764574500678214261010763027862894987642218257080694711324910253233736239306002666844903027466636822329432319544138187312718141267395162790605448166548427322648165283630513604987654795215755799917182219502574165687922816037149747913883232846919024801511299126340146980941327842214466153852705580837182427973452247442894480960822183136882690391007470677677078629732339997410746839183081411480154610694567887498623484604755199600088049750284700944239986957135423314952005926658468756651718786186226078338060546432095159969922625674330433329768015887119946640943685433131324138795158561702699502182092619871600433626337615212512259501341119107137692906668183888518301799822818070204022285736282958916581070580636896036765564628575422967860291050615104253494691039507871274086133423079606672805087942238140673124880921615106763085463199496329037091510702656967612291689714620276707824237130330363484633831102804289416092282028858254337263431714819193996452082159151702858281856132126876951787503694281285503766503807852382500293814072041425118163243296908950770160608435183322379019882140623590411014803062273577992641633803862363424816873325252915295143953099248559426417423197794457297217777333737382730765566286594466401693840213920722165749996390547270605747292386810125661551180742576139503507421452701617320844329397435470770998487838178547418738732636255464574829258362032120494254531770816725678335215549414982932253716028119357963171846207169360753318888871801437310191229254656434226350222423170804287305761852959203099582165398739882689422916189166979570828946156631794547033669794390737838926508456594990495862983865035346261685491654290710188879968300548135988200333419990424067488955076069783823762016626636515467155109355158896544158200004047629578973475679989150658681076465627630215092364224820848925907149686198635569186117022580286239987696921319664241831703797518400049603166333350065421670225890154324223784991340011050973353943884978948396382237662254943406964330667637520653399249952967220438756772216397320659028978957356290291429208275647670111134554578408558983198613032029175394191520076971270307237604842884530393049688800151732449952244349682199265916997200986480421423612341123657798098442384890379557558385349994260264490885617021212856515930141409644327732082243007890015762462648322728468620328517857379639331903849587850246175079197020224307127598068516099817175883513809898215383435528065879066069026354359324950951091886350043218552801842466021489396504417738873912282308662382283319253953626780542967488107496490530686475122196015524338104340790071896423582842701941251376039073869100441415932817213978056625418612986642777014310867670434990665432838863313088880486935854822736109856089246391435416834534072756450870239829035824137581358914967947157744604417171442011051176866437224390504921033191865954202181300965748820617455504418626464700837759259371233020853353525921127499148335240502092431848506539304877523284698554774976266796603474324220910670453978157596613887422215264404822711479570506783693628516173376312668220222063219172256146350091742713712024045545813710184711817311887042838445249515788309999818503495599932551260185733548318498630932953201152524212061994259136406450968937613698639988832661907920062914934794660135880458870184243133565836640851592007202048495888368058020634325595742621841076589812122873860247762424960160110040727503278070676486923806322195075314752871824476452345702833413070469829476788476704632734270402531596778417933485076333795920604324971805834420402621392067834606888570898135217851775026970267465808610674348467926975303641785107785721019162655188223876042959727073834877208434442452081376388393309061553335666186327586339449035737272517998283216706025324572617947827452174838352336751265471579395251463343724508864039591442186530970001073636440396661310800518284466430685373038241718365942374644495366461835868314587738441078751353575802004309496562085985932618916368844217536926851867389571532021291969910408809608254773004598342184727502801510396789058568149501108708997765332252096071351963410428727652034248156188986100495618834187109231556788368733404210986111927123960466803150750535271416020027525607147744938114514590009307639130628141561425993568554602705417818546089098393753626547714830734667292542470160544373567385888155083708425122706592007774716037921230254949141106395930490329435608626532244735692743917701990224038635714328408257197655904142368270133003350107431056557535487388035319616913089746175502832516024748181561481697320750696517297869313680021258188940119024000144609157539123774791636869081451935351264450977145775934064401618004035501336132755717561494511552250703744325315914318144862356700894140325071633701892992055284397784419255792707035379449112689927987038623025284949887660667159751297880333982019964889976174063429758965981399368790448037323557614328498401363819696901620955970026017526945916107183347411506543847832256913045187731054771451917665144417872752610027080547050926370553604645530255539474351774249868227047542012672408705542571915858349418453907122570476618656808303078954863486549394268972249078141804023703329897128036544967407166661782190032856908246889552108242352562822176662927386473977570827066988629070603969761927334891509569120256340055232244681567775984778804611236675443607115477036133583600047719232871556262118560636436126768612167781813397219910100941155249756563331840203642628453938383519260848743001619692941536933872257010935049893202937855824184876057731089073019820236437698730654210135044485009972263659750350262080776738866650196122416166839852194630080781750660877405852777563344589448141150586371113401832182221164974880128928352716166489492326057318955251799361731904308539424753791412539666888343420522197327521080701237409727985781433132258029745450636594106559270315558428101318361220878140265994560907460390122847368051625098955111734472100650166953034762054497466441745404409343444991494997139910495658846347775798837266685285255946660079885321071315701357376037777580332304455709498133102168775882710980416990709030004949621815163557707681313237123516071727550111700318016734850123860984568863065753665717316260611423303108674519632126993004087304550377740541014814747497130649243062691988262358030014022667509883695679921027808838971909221328481008716115677082048169022640594505409194736111955886989981034787512742148648776087788406504133839921664266481845551345470317749148602717082432660760798008884152745653214559030659039696424474235527548767268363880936760585468436651125477608468740537108474951225218874862390707735628043684789860150671219824321732880100270272819623323291914577178061940328469044095759994221911751383054506325554899422148844154189147028226801563057402780422448603325594786943074648606858748412240164611613596509778560836379875703032011259378829923713293048306456309712115299790062319864407360479132634307184113291169617196939304708073742088542431211875658821076981997224750251838862803610196754580999217649647717648014099885973437390366554274162446474399091389475670204197994816810968208272160053665546941586959900398225785629352264676551144758751623575250183493786806851043813883683768791375058394289784426122885468513414603772243100758377297203922552956700706400415887278690531592078332659711200030398054620347485915691771671261775751404231169750637229361648184101999465316906020841250585039771859398363865292449155867343170618859774015584912556966637752096546385675891590713656173360317623709727197439080969746691819979758134673791016580032776563056164885879113535486310253845663812210305633104481500393219400854081386001462150849355201372272648728190649163278017316456927481693395412518676595403889987004193501874319809436091886384616047718981127698805935488128911512618470482229995329980683972220291507494969325566046261974834584260151833367089108064966359638762648221244345812980295837080524668630534458127792920872612652587470789646864375743029992385067177149955729459732157294907214151489073110940398104001619472621192508495146981952189762330188490892289588310212440893032884262724530478393220295524780518641038749874556341121702211970198200379311731917307149010947334426971546578410790231598455963700572374631928354978359533428795970976867952165657255883094047130360170932530117978864120073553304412986984306288326189911975741733149382852480677896806184422155146853348149094779927416164959944790559325973470804149168735650880885659938986809830325744054543099445314607310206935040050812128656164525070850673995447705869657102070214900564285489589599527439441290129223928655330782453841874522943550798060070464804189596351830661842240743833326556454830632522112350288076304354857790176230299818519112572090278177895019153420527042789896486371743566908709012817711680649076169807049388986762511393064008451557309655312318735802588077366878568130450090964210687688515225249864006117340728156321797055325284973975403363760036618473616186058756658821203336444417876989009655227978701462864514388750027431430685364517591906031175931005212361685514166808266971912705412260429174293223419070841780371881931310632809693460563809212179609434720790673354850375273658642598011280535256342076287490769828326882983356312964787515000464895384153430139968340978015396821306169211462913573960737426881368987592936779371503698372839472351267312666316196056461415225636543072806103453720948399637438672055450218951322239842485164423616850571994674261043783815616596400730371078747699748668936853605773124970937404998390206365118396417920605035359439201871883972537673004204356062058147610040421841377348401080224811728343695256754668003848193612939974068979930612411133263383313701953797196746379032172267817020397837101972846404942898863315004135438900852197368775687305009945537660727001432130170246246074782172658634761300017484211221031714115703340886723716782600937865103186412406180300002731601507903890273088198140794111446568393650148748073414115936587822263480150918138349707810524152033863620801893587345788452123105228780931388041087557667840029672499268466755159241305839414302904987160573064293473036232156632107028500699642902529880656842369852569976643857367350168296163364997541360994375801820427986121040845326358695027331361427054560702853539943609775643081843177640805163331911624182191480668210744127429708162030185293332526514348653181200346344559903891712702491724754000490763967956872780657515480936289904637262693145109563480090710159318921915718713767875928772029578075030759086710825375774532603603993742870958441091959573064900189295058800956897492390397330485673129827232826164648292690775935430672764997899742832509039171480693067336705686959099400678296819341279904986486678163170813603364391112684720765340476157395965529836009975848459159088126303509818268698215384126924724508456425787057803449286786602052736889604115455830506967073366869319768866429315272196119605219377742765764697985999833344811181834988559642118216889162578277107147768978513374021227218982278683120619640837035490834758045455898195402672585046411829370370345804492016114245986017538194568868605859748963972355459792744813958737281327105998908698461430737805895799671468648128352734234483781358983046920157491109355893846149130581200675087610658811051456765331117851879663963510793698660587044234813728632907674059743704716859534204015983712629209453303125017749667949487024794063967590421359948411856857410553933737843534068011400432674668946373054014740297620982715494545252738883634978562051838208215111449632648560993653126262077544860198803433761046423188847929368843508460545419388811406947658870443371865224465442812120806745642129468040813442491557291915817415519279075733885162182322828326980930834058609279760468357461705558948735046608538482098875944725230615839439257541454790393861058549167942993471485678557223120168475496647621009451729683120247851608403943071438602984823283326367677595188054760641179692356950306019045720299131824685942489112225458899295286044751607309785531305508228089642456947047838524995306446741556113683075828684370082248453952987268689792834153917772996948106680532754821993519470893996575403188461273375002589063974743147372457260106208395952704955268650611277163759024371859953765022914476081009969825101863316328480709452456611517481862038653162240955947033124804991013513565354359297095310795897716830426466336542005735737470406406525890760757833693457205047239366781461784094617348345048299018264567449839290169384011636303719509663756171871023344890515794246630691332802970141108563421014207030198039150968585572513436912662573648093895640396856026107989770589353900856865906250679456045797631450695284284731046975775424851770416743938955680160802776584809713510838556577390170792910298170268425563922910992518696734502855354569031708196885737360826006554320227758111703263310362158959634977592437329618623550965803190976718980605043383836899080554051073248088890112860166027893332386127836504835086742335410210662776060863608419978915689305723665099031802264065959600611747933908789221310120248466423381915794933007633903380543862791336495355544426586439147201478351339521900339561920568865780794935694393401683176616408997608537734212887541522246217459936317457158366062246301524167883819905098669021777160340222971359737945760878933304707556260725083708385008880615575179255167658972841295877932020941849743571511074161701170138873363990030201456562569330740653106918509568421181901976756117273522041081553950809660270343244631466758042750753619277321425535370893748601250080941406368090403320612949792425979188021639734445707098479110509052009169310030464418920119502246866274241612566784264697725472371345170047352158590369672100576658258028467385905023378588572276015292146678804063532625583894667278977626313763046190192694409064388463999340327066689120103570869057688929948328771553961198354804621116406986607823457620385816002805385570424472109042195308816830055832090382688718001761530199573571386645959000794528526076486279637662563720511659582219211600706411614582760823443984070151211855887128069384254035428597483167129188911908743053848136451654396277689727004015277892235100325421104039617749315760109457234314660184800040561790181774447840210987686314060872742769102405108661456467722148955398568861543083555175230957932848748579622153901463096940995365470905777591848758766522052303890551357825782684263684794637887934405429179243332227657836504084665942954352833607266046648012941160701566291255673095986423294200903752934093141400422252700705059465399616932099011808251225909878567979493571916723338931519924603420004284834606217487294522414792054377555566368958166488618691441206576969111346282614910490467350481231741675093355849243223230771264637903875333449645297955878106700706216037211051372705930363908296393050501228504053896544982043753022328210944999412355184791645024411188954586189272421916467375162874657519957134558803042173867891863344739692137413767442145115076659953645601052316951755174387985907832837305215095135154717713675673326061865478490453233796752090040433630866632686931467738064681724483421011159061798045324750297915936062730899120957402516081027149884169972908233514299728653556018520045158644476691473056983996114097370471244715505933071476452577335579678311628881318586331323090322000936714278806498501661132130561546085506567907755867703464695488193248727678642924284229619255148474026112764726367037263058852413424419334932379010844091504499863205393102278889131983771378538629559216565379493048938950791535930539712279858420555702511671437631603673554091718948762921992792543145129452533895540349570902193938046521033217374550602723847183059953689964935387139933770454141342032476661646415290863074715066106846876701692979731524217135504565973792800165641585154950426650393533353110435637073202975479496812869774783841099801367059357969883490241681486396812778247059287198777794360822916016709544366774643011719313457549089837386840787697448036548839734577152300133284194522336672048340119837674162922835342323055445755886787483137824093590795497657142165191841598706348276242251384759242978301759916509665938695664344983016232243910514078525198024375202196730943494706419859382834142979275086098296716012544224594759539494995507080471660413796197875715869997766884090201746838788447999231190394640058464390323495936185375956437168887894408836248086328620517210648530026259293811817595461825477626381852284442721382307332397223864054968967383686826714980237058518773620805307149203851102661492981790715443905279067712216436303044324726273758473846498015077424949486102354750001970217273341745207712282951210582909045360936093523116775851069926765015159882550502522908337892975085680997368484202762422558621720339842175836857846544690110476628500478909780751836554695385177156678048520241846589324031471014944839234260980119109474323263517138340680618652917749291300703976711323753996355316215663556307752527701994493049448416806104067375923514928770290944871268066091592477171843080794084671124443294972803453512518359086034923441147302875158592105051861123367389406269138902905507562350007658241976832212612393344218396038162533347743083064384573635392058705722744800180494113498539943399187956988751045361441588496880040295874370753578551818680712578035333606910732009915446055766662309438598219426860705307715744198950284940461537700147282623053605618054344951942090210568673239905779122088518064442336106091428286647136574554300073098814357200050565740163307817595362009843428539812672847366630274326824117276700580533812280850241995030927792560912482194999867008971601306972484359386324028176323349332952399298973971383678917125793865789713813375578243105461748834752294998778204813687371716464925530219399713207879521401348582253934401823964973448502737284208372042970630955743280284610526168407242016852104891464959215123361578714736685658671367693777612273378065296149966395687102930771559031638982146422788362489974685669487582746342869800084980624343671676526106189608928853166803219544674661277033092859327883024947471100200837744348266345528176106413967888534898075665202061845581226992940333022122879947178387835892579885269780787857624598296119269037834902258708028747846994622462879261685624250429646979530777866578398337409176200724048618633440772164429691862802005213701913383622439275436822793050528168292353450848299562381178816983701442812211450468596502812716110529987253121110948325876930591060723029672428171423451228700156333519135239225562496669991663656430027185594404645656865986392816087616661038874871570606796755526789796646801353802429103357087195298809724609756403774252503941233553204163996908308494277000822267664340234727151917146239856044982737361637362666836444672204388633708522960397446757083524824412064384141045254630575183870663219140419061605817185189723672377404645202175254016756026700660109013562979660549576834530819828938075616137602953325897214843629788725219602600470011800374527134768594012624142239511251321694962376860379566612883078952619101911134055340983029465922925379363782702264678841793791143648941876340478973822356131525140988185929377833781269613077082062277119518918767232244707652303853129166486222171539570366960958382309171637216586715866181300770697651532427411118747637863083296658664716911650586376280271919552216911107404271717314759473091199498716830146201542142567201834802683585229007715323679625359416313354798685473144081656068077152061983703365628329615045211980480353850118134178290630223520463639798422802473945426723426910376158860811438910005810335635145020717694700812501219973234008826794754471470653334293093679226997992514418564356309711345488517266910555448467007873273817917003409975104719665974122380180368236546680830286659639305127211568068670425941273732297601380338882751148655194836059847906018930241784672101190744850995874931466695152045927112614260878516309840875181652596646937384295882430614132678093890933064605322990772274496347498775267703846783545955335485660498264012140150818886110424540342180141563252711391206506688433278314295132984045918063142877363296576877454987688902811997999260370358079592650854405574615708887575874519214338067040370883981396537479505198533465297908435321677132027781924431738504517909484695311088830424670567557932788743019431629687019159568749360574931340389433022105645400627452550060162964834811060294144777428488764755990182612063688944708371242588127370091566025832796496489093233623482320532157473354996118885731129524831494215365412779922388180534921136885757442873429463202413754320941141858025778428886187031552021005094698964785704673125192129227567124100236398014767889471065230191842720934236844631882785019405724526607669812839066763960119241470993147648852554400173016224312510380112316543723912715606566229676208981918038010576815392562428903383003519127042391981773753929362840945478824936426819501405586608500640215106965640340589391779468311437775477706825170040548575381301677602190881391352703445107679601010255641957229130007061817031112471172856793764981501700956158627264913788483064904970507482142450983272545649815470139917864564502342073736294701107206296782228774007768605927685109395645260747046551188907776922955319910211296187657122703457084780674580045237356326142778933070525382661170516926614135768909534453582770014402173592629229525647582777456042871749720065430539699026629802187704253188059886211672138292833018883667864105594638214791688567724669547133582313711233748594318594907690920721631288538982493370579055630853291352759330544725294206356735601869037670763859458139204179919772187331784325612970794732737632848326397677420572944026786174837487679564879900624600012306280946496536807728808354874280887566512425052736821759243746526039292643039793058981346525078384767215623821887037785798627222908593834272510586170652849164698529002409317031629353807933413323639466262726661548611118722946800996615443582759587830171192757678628010809565255186994009138001880200264177102534784681441110835501221437534479668548092831705379889564763194238252291197123551649748962302354676441371517679080534894008767587466908693112933188078658985260893629031736420886158253880296802378335373922701033426607542085818074707440719656427026936264566258697722550292851396752913977848172577772007410684233702876116678916815769851141071293894815453329918950486417484727874118366626007893099793368556707633295692787047006645884314141507307459221973986699126067727623009672555862310135096495117596722928877170155646620641108365616456800340359264749956799184469483849126672058154309206494968415748669738200200684493048553061480148139971153611106887890750497400296733211955496377738226208334751267664972899536017867624946931856904471980818566439184571280893570711197827714996350859720574328237953833312690773044484483802120349664131777893228760859613237616850096439492961967223356241105454675878928371559357027331052947952443173331780062659354250379110436155629929223901133804578845857531753291697929792648561676129211122355498472871267202446174039754807392636578989829565622755810269605155209133970633840504598722272870239207067015051395771296125662286132490992104994849161465978010944329431727858578049557034227691287807197524808459534718626903603969751767348475086295478359658386601480510791320722088338726595558232351847235791180765880566340485382362311983082311497730888962227780605850040646526767331203426084480760134055364951575978924032953176236136688578811251425291708623936448870485755469906664420776747204142995045848878623762001909429944625159421883389570266012083471695668081920162163643925212834019825665436577314674042125430503457663380187113073717183470248568815378789303170540432188204655059519529028530913087576085041748962757205971065085635073566374188257416252006654314158764388159631389112096984400716385069844306102562392944248900581501107656749679505754006612873650681391853798880662086215889422851353586354763210916961912349716609493752925878688103296850306426786442531493211729692144567880505322000658946329782421695553394482214035168095372953598210543829811498130086785334003782500265629250396905416010460852629601567903755633191360951923003417654270659674854703249140171105393796057211212971017506172022186126192596458857999982627532637354910048331181662589728576014808749750153572890197123256833800551055761336173641038681317837844067114286177369479413917534954749185416757891892033535137789730546949999607367506145192925949236404336561499251750343356158825409205062920831359717598700887956920921200490896193175770576780116719795232976933644243138642055100612706885664350195850967636983859869981731774927667406112167459963511084098002628586137745701807013255702200466578970440883980515992437115752385930366998657484446453506246630050036318606392992237896351897574764639351598083929327996676867278511769119363590943377287230460231435059002386820794271493751252163362394903857791470001934437083248760283644210776508347983902764796453166671577332079877562825672847388715975294826187252747533473772981382982931736511587254939378101550595752541022302503707117215704827547066848145694685721750718688287379800407956619059743656559411626236619398865382460138356211552035117190029019278158372944051625334217760775556379300747421137351570203665347549587217442486824843789798080073080177719374361868470988063038788524124339666556969959241514096975549862714910271168484866677647305923400413403840959973371891799711014365066633866240594132019760201488841257958997175286437936431221240865927583565981711289934667496296392945047028915442774677315200952304798405699543397190360286116473529498802458838552701805394974558201721613674852689686070303910497992590829698447872502134701257541146894380628549776272504580076443745629116397997147438680707039368163714429442766871123393497071715469429312717823749164215581341428146423697341935414377100355889710681702012536126374687110519553313914141590439168132231822441015671101665768288607151446880525468089235585825283448882971520506642197678889253312522132466745871363701795588897384193990959438990311099222412416979830192657442302246011218975260355744378185157066886112466619601928502259556502168190296529358583695942673974973141078058256686728222497070309327964169604929118173973900244125513194845283886926288549909474816645212537345481666264098848517785994614873910383426409793698208271388665676109637426578115020069227054299484196899110877775652925399626474405965120440325895884365241520666674230278591799781240916317788794121731067848933516252526585707610143493201331442934165874159324571142903205062931645318981512307682268308778928366279231743039502888121897338505541213848131483091424366285190717006238524420087227663060496103343341008378717284665279274465089794082943495358004212713857371490729373301526155507254962834137640306118795507913901836847449000477140265085422554032363683976279201463372163142686545829920108214522475118508987552165851340843906892703007959940867363762043604763919908517256065008278584151682475730876910029995295399705353655613077692646143338931985748673182085030167730263830111685077371959004048369304520034153396941960843709872451734947067554170994468232739444247305728095770187578345347702281275845385355476718325924124007957416638825578723511598037551603121362666065109318818047664658172360115964175981189711275507655316453800688329026293463865902012844480104073113889529616615471523382742911425046100833552926279609177909812357120167313540815630563227586795515551339618570536224908050581969006425402007049021714092246817933971150869939905661871351038874431718112573783779443322202787757440231349641726875414213886830014747227474704613981769770437035524732809697598771218875328857195323304879357217832774728553164850380543518213090911264253857337437755489674733408181234791556253230398173134315533630950797481901293139327987726827916195763985319785172668183898780235822503883796141719187888750671059030520390144936013222567723309758901977586276127115617995759451975920251048994152259350713264319932395347238213166836800097048340955566720282037501236502646315483740128602468843673619134600673790761330679025039419068276908740235888017342248616365086925134127762468892248815026823827956083143832400899256075262921463245790511687133548951916250997131513463151048114929313770506879820266494981506604548539722823786174741935802639618335719017374098032979591952452644715514652295079454080523694348296567373387622216664547207686586714141451628835561025174125706780225016265900741508689563904115555064254385396131274674760173111407801250835542645864172915485661580415682101344647571674723706286267923631064789208452253924223085668672118808857956722196843912055283076040011132034970673874395292249848804639996704130489387525304763299768084873228687190522385080228700327972280444934139594743627569543461697818431310727075468182753099655353557806100486837412667845220541118424841022391291580100980054265450512112583520573248157272728501991121601221877966324902846300212572921761459764014357530355765976340190734096991474672896617922147089987447377170785453963693557056729643518586737227329979914433794044009466925721031775215050679016081395631570806327501843690217824399865933654186514140536393880988221459002668970298852787221078521552705582705654054508331278815559111992198940038150557239209638601564877002017715140243042668857177141304572948238960838568675442532133986887741857271609802448339107551260343176688160502306273608508333782298245499643552034585014487590864615237248678913114399607884453117342402577839325016061227663334600021411278025303158242785815476607385325769607201094056667976520291001490421116360309173480977065962321688782044545335325803697798952720266227971353364023013772730280747072045803544366802020912247277499209099904696050881470020190911579212488043287990583243031043326866280284299520778083529097464966299130002915451684062366109241153713363234155676720121161379029588903029324199664372546552988357073477448694282442195806974827742198774537335030875029842160530704359539274941166033402934795328181357954013752791581987600621700763792067514618672482784955998398523602286382090005284410217051517426836119301075095634553375734856438610239044054856514485592834605784927082548657070329880125337319519076796379943540711152547722063581895112732917736630894880642133979768268088251351177962130791789945632538472657489492177865026543217381111151293740783884488888917165993763040758023153166183967812230164357600065083941129612090764809188010016793440912563240087902375242497102315338805085126758096074118002665791465908346199646869814498514300923697206423794475531227901941224523177210518310804029514159434442295623496726141394172641036805150532020495218151469307137216792265220126164193682662187479551706363577229771614815387148922425800150984911829256902456709961830800241141216746998034139964636057852139846258485144682265442804922895056232924401963194030238402286088754719156976145103581471214771894325945491481042007281957656819610640241462966260335866818389220827948067138163966036797061283684972109275404225939664654402729997261327841992914882825204409288828811706037075447595140825263566148860274732946563037134011013719339825855937686198106842717387125906942626241522149693841552322024870170727259200328233993938368844764268798480477569416905084569974252160244798554856189057553860894223244791969557142952610452160573722973073857870340134371172275040702038253924050057168282355332288845193248251158229088470745702815171102437725996067619393037727514184410910587099894871392113370439493363405413646859755916298077111814062958428993243632783219104873980042018993113798102663634720125500349347545026113688565614760457939629331491387628206451176128641695636368846891403537799324768695730759039470374632766327309512452081162891980248379064077737114629674813714578080752746886194427693036645200169397340774251660502559430898423508561011121536999460905083934116662172990841288204004162682684132497645346623880325730187353157142651860636447284737159065451115313541783517909938952913392505350681326028939797809648623669125777684544647396846344068192336654325197680363895169102468554727200219612007535632641546381552081365218931284233644261112489474424487276377683460048041616515567747195070496994936800089464648894857677850291915867904413385371432644051283568134486235467211950826616622713537269524620171554540048751145765344751288964616140647135868147008345360017031103404850497971616986976434703477415038735997563033732608374552796713547838635132572644146533235882753131931715450364817294442243167339976476453018462078030768963289008936012895637851076971496768345352961458274913438048236543351152469558891178501443322178283266930496545955655732039871003997107427517081696290851946937666807500658838732597667205679541917496910560557370006346900200734238783231461673896821392358094083703200243056010568957733295482218266920372303960960679208669845040706565342232261276209952841958615261278201443569425922111315614857231499228622720348308744247106315300978143980521004291360842595430137706989857493947513559981622956598099168821447933411334029185449377395817872522370100962864428773434374205619399005260517372936644510557024609503502520466638174512326252481939417246428955761030488869256074149053986340289119051399176487924643430222301962697577544993077211280215031153486207731433342427096984261946318469334144394179286754645129754906343269431488154678567460033284747835699100725259249233137619210852526977502298486335619285209818665094400748006533180738741283504208339790028529782195191109713610699176469466811827397288780053539698573274913411373075766685048323781914604997540635199855737485404427383891582392756074869922268604574764126694620863092313221858952627077760583709172363991577731134817336398693264293769154985243983499029762374974788103029752343058424313669255542749270456086020723087049070054502503556621635169672671966612083075592960804811579939523485049876797784816404787229226428211003566447450573597830767878206164054682465483874389651388603120547135997500412689797272482840469071162918994431985886159353899932663930822389912095093275076789124178768802448962006919486201049022437029920666942133479020048009029326678181379641206564575702746709404704695487343951269405362215075355846585266762030429073348586153864771244319167128937874687686558585645910244819941913747440582597793345381701697960083534122772949184593409062557472718087769653672775292312001973541818425873946925751297303572113641850473991361720753907408053162901448835468059577902659123027791031517963491271757326742370905807483944414156473440702861617753811225097155533886287972537689013062957357345150187489890073234559747315630228015771111977080957031312427935324570789927648388814184464419105988641392584656290803422814669695202624400782579703799590389204579305799901369528382175658887281018748280670039564302454634017357199384016360925045165731878422389049444574553797463400489805138517492298524783520655786407414461946008302143873553087039479809897809893724880335438889232701788106424621843456221126511344331809967758388220337322781754758604277487031011274377750613215915508441974889659206285571223024457635646947378611883293976405366240453241568594559963979497462322156899695280480966965323492749609474999217541826654251801924790522381249277009025422473524405922479722298081752775427844357547414953585035705103960989982972145184551157938967990645411084930366465769354487289939215187456508842315233132063416675174586400085943463507210905591652921322108034544635451165456776659545086905727621024109328397712895541295798689158803416809361416587212158116319448936988863834042251794402504516124946229471887566790653098932919264397994478416844982761564752732539586073449224432960317410152043437402159824492615800853694780688018400967981063602755227166852380113754411122640521806818349277102756536168339991953512885240948818694970950135603587246986888051044730908618971850411794866162964973975005071266820467805187324111695110543346291883675984180860675247703616325171506611982140535552094428027773979367362642069073254886802299085765290714569923205156121398011523971743360671633689972971975723593408780271142836751112942716118957644568174695008044965626804096857649087149500994760786073482967958840749771804447409528129455172011067758389269361613741321930915297745638102725529746496191600236408315659781787612706938914936125096584799647072648159677244907113786866708947326915690587435160444955776850226266573181753598325815625625680194247170453358721462957373382133503643703780821700823349202562408701035090501419853806442860960377910370694410462144729797018930983025727785482893029153777198629613276160120646008409321947471394450692382376041017666593550569506837448618718328314457496478891432384330960753668529313541601904780593067789023187838852085436118358368056786883238507511084144456131440679664048676744436510448150135118810343937637828006377927862055981711947955478160893535699370749904683798307627598711245179047853169891379636492174129893320690331088551906938273917143239791133920861493560716902589684268869472376501392559037303781687184534721594856953074086237241109978861155095428167913102504096156614574040014441858145253792930788636784849097417593970547906870868887033548011876076450442218505822081592591498979685892264592034144741199456642461102306828209233615614005362802322386818792810667661839066908901183369773331508440267223615124240302715270708830608001541245793191357075784260141007155558499245941849833686342327873155640826345705309383909831590078931885284948869745738843410557790665320243539608492187554390851772642239303117762859443652721791337938550916331023001423912372266724951536071247402987337060891488969370252450699424685339067318042843242286861531300948933959229608778421292668896632568596957913360588150771372375800557261481128808181800094915124020400740151755179899249684079618359923401580287056150091052349063984581858029433147326353046660897796346820478050061520219309312304664362567906100672619857911737723028388754967214020831968760667171383947753369487447815088915711108626631369286179467248925542677983183524590398990715350562086880298517112031727432301354902620383310875848532273953199568988303709972454842711524032298516752115302940370283603335484683645422129385308588943104820307114346786514077806727819347875050351462739951101316325696702813873474027072698333830138442888047877826823666837942360077443459336449635370207653108681008734317992897939321270510222486785970043581112405429602863759050737565640495164401604974359533439271171429117752176842998653192389696086987419643153878355385151418561182036647314197335270121551565222821359777701559122010797071600259339498732559706471703122127864760555675969664253297382715541349684581993540292174102546499948319374321512055598609683876572369427279165408906697208067141748711252201192479848060893864440019867807404783558256964816382170647654977675003708842385275414846308546547719502191931764238124257024312736992977075304176945888802166793317095981623229116936174685097033408877602752013892562488805264688641270554899444793179562759128601755605968163526994035685677136842187130642760391881048871735535394192875634674489182779387772731592777256806309247534130276153801334624724801541764123147111845646337767762202103042526169645022888663455095301903083845704255487739073393427615372659841441007542494958617846247002169962946947234837520887066875282842960029170950256829495365597778462921301161221141311196234906683562746998810176755794673227066097534340523575971252448245577997269789568805359812667993064867175935020036307686329909267630330543672952406325864341272130712477021764955169008094761345933200362319028334072840809381184188644066636883281774822075605888199745255911875518830565365046185194028549657680876781404329474241411087739138853333159337735913286143874132473771866011645247865759298824316369066548078998895374322658050184673904599090860438684029694378965189331994947082072618393441985897439672844507900929680980517900317383140050766901221160542328124482403453134448415784591706259573753285530604370904298498769053363308324430126080824292564416649381820077151319838340024070945963897327689291672017419367325058876505600942383159464192460520864201529430464409428240615123421453251711296282862102671780783181333156548002421777536286364794267587838985483280407642349723163185165546741985459302606055238278406758838932896751031379042452272348197691347130688017669941178953806734007482368585429881269576924646284281726314609201312311917392836613374138979305095890167898673663461120179222597336634111507783374644842866566255632598691928976106890527532620428333697994773307981381763762741622174806241378445975909715379444765764186056603333735277533185632229264771150016921542995024898342068591988949861639568440570250302852008146203462656149262205626598817023577573070036526810743332385827247586257693640696184852819194929239408262151984077631839795899261539614190668807391468081317048037247917260335716191707421963202711337295068785085988606837664615101119054751096318164752739778378488700718026437149491432595922708715435849278843341029622667965870782653049433028336909514401874195955955728005372897832938476009159216302608198326045755199296068994326939177426902600295025219763231520048374310242926958177970344263128972048163718042249598251680974730482915493722102205448344767111875023429025422666532555565919961743241768826802825383126385168796890312216119281256212965560469612172137045490026502958621895199316971695198910799519374970979658309208957348403290112764037200915708102168177464385533569821063399471580460732833401589050066686324726839358097598319462077970721974114611423070666626379805367153671750979329015315595246243923127199930950273461043764938882024532344706150257482034050246259240905252644223102616682443500324824008021166504392247843877887164439166719479509826412363263938892765559159325904322302400254085450309790287443593609053447328859394060340971450701084359832774774627135092812811952549478260644507513577961740362285752697822915032398914334920508250661348050408553376046330222643176977077952276224920161355984826085357275613424530374381826700900198667931269731813810293503865639011820606075173413125049974250472620911491319387726138846084709719056049408940462189453628951284196116633426875728278422761359866771493659043908978175740468453308067404248437810385094594004348352643701398338990288358493599882559907582027210030089804288390730159873509820931548764348524897747327974456462232900773849820899231590526664698769770529462855414815820811658157310151875199961906866631951774893501976457521947443519457278314585018079752436635410327918915533632505471262838077445725813688931546696525845875868981489606939338632071797172888517796570357688155368639420411909600406401178580500411399744274578549352383183410345938678018568193500239813991117984246369726269019488787360598447006456790494323422759684475231437008884084949973986259142913448564101160174325712075730757900440077673110243822607702076662883493245120699346832435331568514742020741242920042046026781598916643520219577035977999747082865292354290330579032141008267509016617842793445966554993208157970379949579053368689374545754709896291855839849085195172619249666760811928779034643321617093881498124328840332490739391490739719902136037104072179576096555584545920158279502236713554210227382683759934117292524520173782800090322746257684100813581578703119791382623278966397348834719733245879118176492677275921454409465465669020527226478318642823490838152947208515636962020407818348466096667921653146099461724492634635462879575240046074986232243338780079494903888681185017273563361079533062377641455552501464896438414804645636893548267963122705462699189241742320123158251367703468433601826951229846667974950979484267621130926063327180729866517278058057004318657241167228440981898888593783094945278496161493823910738391453530121851226488506967928123004321021712808831246581707401697140212607955089957526992623690971640546189979955128737195080520832702072415822811602859328904622952074296019623597736869826693840775289365612368645744051464227286603847732166232853444040845504589400093048806450526686967863844641665658689008779265609306768584853807232771335084366656483528041416635957774188217706185249089973660802912990198982046625423445615259601959369190101833708648217899204355832977422849789451313008190798837405487731091660865679019640579452634637765932358616136798341642845363184970953274660648439589851367483794887943040486135504994607364122859467649263080110378127706093323414816478361675512536010235607143955793656137409200690123954846717251710972472590878707491054195086424520226210221824516814892776156087539993014556148350357134523444101058348384034085263187943015182070042256495871848421150306350731268769144640112139373378842777715787734175054224076414072715138699160289640645030219506759932331709972156350102869455839007665213349351426009693097565934484558086486783126022748853473502640364130348011774008940220823678680591526043157090125571657901056818807230575230557645180696769908364830293134596756482228363604244139709478322739821560449042440606524570474816260880248175389936393278767217648727597431070395086009995922351596461849710497439195202498745743202408954534909060846356637288273932073862072183279463956587810435045532938475598206548701728245239470745448443610376432881005577038927963982642396554405647026665652754390042790567202233759337474121222967118111117778108942794132107495678293838051183846319847061912137420699317702698913410614387583751743978838764530458026160517590546261615699986269274533172662320968651963626265775446968963891153013074484506885031036215873626855871501317458623909403243579690681685964611988199824043429521838546061878647844747232218372705136416636021764297799567494837466356509037712115541112761193617302690695224172529285998468822911998678655250911194165735058420200015777527350944436140097549393404608548125234812614467466751241631280845940307800554071603415801357802209203563409592449598196694384741792023503292650733502677688556018267494840253558178904405927171794231001265281291434723999612932578641893719366989046965372553335619111522984099655806873782605741101877671945811838629536689961463462516017826708050614460878209676245845545715200324616109957612277124561383917836119528626321769544643899910816818541744050640859639948101396398901194644333857769362090183643101949491996041180165032687940711743865383220014608430284472294844371438375861993271064780412142994347600795597042682826671814821249397667420663081830528238595527197426818641983025548279925690467167973301377671561301708864286872151710395456638958442006908457589741565742519951884443568213872625334274181351366451210348215627520840179476007550235573942779445573194527950962775483843173356088500029113103877837317250566540779907162165253564453402154863057683183418040398252987154061469730900810704118151594368740066403067943071066291156610568223940433752716254892176380450104977441419852929827193265623131505452369021539213788159463398292604289315150988419292809823893940900243746123645363248311258378209978702879316459666499747031213265577694108070973803172680714790385102914040906534792165458837835388710138241498426412943785472090408299372823824884659088443534294190905491905299544262214195885395404301637303417959322915511219567137626396023465643268415305629169321631185521663901412330238225376496312055827525199431813098648505810141028391572153442419299816710229334035964354268246780164425086569385374670552617121928766151086390699468981109462766770817958706424455147519241898180387514383151969479868143662529024257891812167577854124622992108712522697543220845650700318259642513524717207892915287608115915677186875617476575947870320041651195915523943592154686327461777770855327078011740840493831043149918386074391026539097674692264322283151415486554737130632217625327840168462401987718200297099943349786912633112800383716223086417231390446479585567665226417007772192604735608419491647825241141229922710666972957722983377500666784865172031269001571742463468377787466816752150032191596439225127081590745075744528614338186049259253888413679942626342173456113956571382375726898852782443500683134327036752360085875856910284918042073446284490788639790348667166937874494947913711872509489816578740045127491076970423837564639626590104405376402506989468935521150042279280781514402012619670502845100427140471330356826663559616788824207833847435828811992342164771546884213997720937913462519962680240275509682198586447840573598883039099658107201414230670772618710350446826419193081035635821248625774289686433802280761974721688658322097742212731927462683049508626791619492588390226452395547535383965555594499665036928640266048010647958894934131771932924611092906596613312939798064204304004589823188917051384860749666602710652801868246177983623334142873702354113690040063699418823566047598034432765732312190434098156226402695698369812224522382009445800620366283784200869416532770968698737558808143628317289684755792363377605324769005453072608286493511818948619257330545432379063345431783210101710546758038764114253033191637969608666807365756717750187708440515797242829602919150944325687848496362790980885342465969691071662807999905117908561827449394647721548606864213686396551735893796191877378544320929492179694770867593811208242229814259091167844159218003250041578192744159548359334647887407852942539955662706725347842803919056621348001483852349943204443191635885462212848617939953044469914126189367637405452210677978394962898654481413265030722324892676847173460250177148782187439126713253544656555399997606291664685671024301406783494377066152746297612072288175206909916816193142038475446540380026500617926874231799609099730719737650230770397443230677897915336992976968308130973639705171556259444538310835318690210655165478578998403431252780077572508313360056125821782241335370260144664444177640156239429524535513188401273894847506880755047898203581403961677102492640268392112360258174981516276276304855415196993134310883784741351836024693171995761417008794075992452068362235079677336615320468059047700711549401255380296846836557033345002835598271266983098424550042486929438524693690913872424601089818750915334539019264321112298900407081628682005693032649537974957931577061453551883737891438685917566256484226337254921937649192855027788962166838304703341415077116698800525424151634797486523395596624062462412225932293584870895075766737878924289629251875078607763570152478647027618375672461949820538813247995368960968239557952083134934489515867866064591856368476816328424964291193323073486043982289709575528529509091165938722589832469013827978076831675247982971806698430265622386279301013410840517982682573245615847026491051919781373547219354805024001291233812922049205792726583376130866210606908327274616889389826715349533320118076740618495826061249427325001442784705662457465553320754986462444251205350548589019423239788130423264350339794020738136959884314837894637173129949850754192121553216865795376237798509373508218666055098787302012269330526719471362538843365627704755314418783778786861055737401397703535649513543255203479349332700898137588877558308835805540188835730033861703851223263013808895075660889663968635978498393362987709372011432349280849734192791273812152616026202651154546737585270391321575827554891056388511552465407957023259352306895939861895811697462643168443744740109936796839209034588445590350636881611602789463671525215809575568518560544365971434360870019814883192030058728141159676974394450206964729958980630001829585025043215183548598978717715959258053830620677542468538133757820576633593107802209568116067050984687580533641951154749080224543521444535346464777638478506134875957510708001917584900518551674504054211409616901664836408417738815424691633856853724626165187971727577753839168089518715254409274638534179917732055506642342049624328457172161209627729760538647203187983401503616422044651528260710622065713062719169566783322399310918831770719879028755533276822153567566620790737606541032030803159675807796061345509942364357052849191964588968536511703045792727832256517805529003406550099072504380431874810586839543256417001700104270075316054872464173220235206136340794109507988643376196646656713511892090339775247780787128361157946190844423438343650662912918893261038670504229116236132582893112715813985438812210639152476642813217528566454010211153981953697520646281240563572097427272509903930988110504718192864478941021595301420604516359432024207157636169059124723660852617683314133237865268018950557664155309316329297619580207644447527910402293515949968194502978478033931311036552161638071031202483528414561708541822253726186538866835283340041394335544035689118893036029277111216664374781589366440470337152329239444057745798336297314960779879587891107028476965285558209030673221111398611298159011192258197783505615531018420291276702865733581268866878906748821544140442825358866874105477324315131061068250326584876194523455644978384951266109764560531229261019736816382559038099567427097766973314247989964677253388102293495743553137842120918590823208949558770242183956120286094589203829240514095622965538871169692528362463103533790267498185483645476517988093378671487273747846581883518526502539868594369391777279544925653827246862533444653435232161829650295835535824578593694986781114429893016904550380316888489532738134078948780448031377114743179957908516182140852817525579148076576966328009119843081665645749802604576066389628862183406871062113388255880397567895597809280833521658826832712752808655885904268866488327935896178727521549042859833718544361521550363154601805650841925652965157602593506427276910264535945587680663681346630404777196502724884351015042734347204645833517848775608223996453760165836273677076482296446955097837203682602928107106534641088851480967594050890024299287366670320038359258439035956863845681420843826534563552252436475230537806076141721849193871256245770652177639303467979344825967017389545148248140933133368584265513002916002430571870325797400691794072454696428552969459907785819865364643630364693330598182395508526333055847813348316694567418495375937284591506768712453652774426727750330765202072441002246554949776427846106530483689859056337226857109753299715930713884739172540222140760273586760090102095869137632269262333768380461081454073854559843846490779242496476077757977999189831594661037356701744080948758846753518964393174424432552425335318576309530218499940789644252915661537020702551271249864983787261375122430983270854838712378392556231928915647045803046252611742627390318701932747064479767803784541766341287519548277831672369025856047098450271895494532783861629969564196543417549056153269711531532887453665393636000959780179757186159928588667126898812559392374628908447098371241297522898322038256181797392801196144688667597039339008723126780326707198365037908017678128538256488406307879870718050382716512115483006100722727224286344544369934816122587791437577635765588031360623516537657399614554310565314409197994307909709298789863758951270988912670451306778275042355543897369406031640589253532510176689664477423586457191825643509788195478835494846364547954282103630212655914438699939199675161331627329099469048042259064362581138736805830313887804219611915229372010372514870871425954512941327876811796736450209760878571249718503033654815687775526381319053250677787556614924101473318669088190702724531536899618090481926124631775103582036919069902042351900787691018487343850825048380923351386504230038469949118107123914406299029856042497227465681425513668531039065045829539016138079006757937174740584747109733378066772481172545744462566079574590208706643907817653282209068726959758150337336290037519584276783447356448952083419123992162244539671095005098721253217411748674299112629821308169729779692535215683529736900921957640329872885320084625906951045177563915684027271747686313783288271455738863982330935857669376284557314086275952141762147731620149505903816990052775570300614894506784884506795573630325250507566513670665598177941950710490133300717269893451068358169298303450697784265763738224741286344060229051049737680810704443555085835730678345289254531449239582078010516412435689195825987985964009119550680056884935567133933304269565929250863956058734557373701096541343414421552447306649046120081625296567452837515226579460069715491484862749056145335344585992148084031940645703814209596007655464284145123758608177844091297808629836881455381871412519588001446889809080104668819611429247694585857074533767638813847551176960812556395686766327792310749780282752059045959085900469715810945967824344594986373105330143296730892582978931959257720701349358694196047559066547955457882876110053805611174826923154527767875289453860563006249423166405455444327075482790747842600835230407606472427098362910433998508069243918080992298499870825378783468461608574941403063280633931522188285923258886397794118040539241041062095853363570984068881125422703652989916921857269896725581210401726183167680984775540380446306869504771097488581231839133894152007540124384486658643337402150567225823607407524687809726344378009446074862735573411442999234296904039137518296974042949730279428473921700779390097560851241504911222708752949655999274980189011332326780488804415380802781382048045125750694147341101874216390023580805388945860398135920700427742083556734531932650290077993293016946361305993023077467243285848625609480078617109562014678608744953506545270911936212079754313308000748844079821266253671136088843163771960434840829264636916419263633976551931641697217256608716971646875216137607673040573204324403000974987975426857233028701872544877380313691701796922341267313603366933112120472468447099734372455766592852826197051815552488967963817487968399207393479386109963094474179763971800532807344568290377098626156321457343026321759716871081509913581354480324247744297262559807785878678229155303093726732190313188585810395042748295376650925194353352987045111259271066501823199751293958956685783840123347432530456393949725372282631356439652973159524979408466341121731718855015229697795554681004375569714308697404626063816772544387944753961333966485452146392333738640026323795111859747790930227546643065299802126653065479010762015237606855549039565289339128275478019750339842112244432181879886210748680311854645093484321160041737028306458276687606256281602226274968990788103502535296792688683704084800180826307767433154035283431717086869351779584319501123290011856577974661304482358640079976868252152990029326137171067914913225775788442127313605349800150706697370076891312582149416777013767066466355440751946618096197110106471984365356007475215154725812294411321765423177905185121248876561052668648213493464833881938833661817997356471058825054038999090271244047404423498638529286009127831728847125365813850883083721198593835345552583687996398249308804402172464505260511491292890940169392206282372342491397102944107810128397718762754798110354525290442877319498506124753737628788522508032372133857023003660827554109445149325330277992046316659181094259693641327189792876490572305523790925962155531713785748148703856302872342069401399064512329862594624182822508019918539653571680836487063398338372785567590928641581906306089394613979229027089041812810494715323926065321130357833971196973470585680412794068227110672712150399783929100216214751986762868974547826653167663957851506267848141908338804222820485233301785573542969232075581241269625443917277378959561204028602879539354160789184849647793016986564772220881635218142252437938147833819784575970055174665550627444562424640151473086813350793234194162940196510340925095687572597970984195035003859135517651536662507237556180042735226187366210586064175622338678516010147853185687508410219324397589899159332805453854644050974674956716051788447382539891674855680350742397679799225419367393501334594829249399083291527843309434612718299579014648053800569488845016595412167990015117447971037446318308610790598707580975079079666799672563032087887646152240104472731866023842667035743234487790147952551915726813285029454904296107119398062370161547624239950277425544366263393456534059534504176174939235070581964626580404806574368653923537544605132158548510850022585861492267638625734134274079521589082066410421201078732383128854545403287487014738659226823998302892564273406602989712979104479612689690388165140939422434077384688261157207906519543043091131204425440737833340621165568958355085149936130265507303391746202258343161521016454642738729533786671906422888909543489547294303184845162322827157731172676997181975946825768944700741110981370032525703026366052698975665160466516217975765981992052905215467069014388264182965593640162205784912308552861367513334506734770633375473115278054744310897023350756378447519953752229066315428936011209307128998203632668239131680536584279524718288463599848774026544225665932816310059937007981940997446420388592995133375560728154839270108249025884527125404157927000261506614750838662339823987964858917353254567620558221003029309460838466282674989595387561015806589934104146723770587216206297044453499261401186516097922253609609673856494692521320582901083925888967302887483765103715785322884957788205790667277187281029622051834710249843734017682228348265431502760667970714240625499714973228517264073765967916386647049464752971885537258810903039167793796519845460326521391578151481985813141221808695581683770342004403430804778084105121499858613855531320445690644311199410251259754265187040075992415562065090316078411894811225194113116499042968600267496634714906395504195216244284305348616460403346593707813455400549378793440339469681513818090415851290871900657712926998647976501149243052119824870561545655481217643151002692503445985756621811778103026550490338792497306624527900592059855050661602892451352734233675438111954500257308206150850459640613928846625324308518222989837101785302372888486591881328682550527589332439656244313974474724215947535110207234014280734730076171820574725862076611738801769163860327744731914475143193361956175457765932220559932464919819203752610799568581498336280544587704501376436530121838546352079740400009876467825925929382704946926613037375043749730634819691867949832767667728635743522205373602048211375213669547641578588716012097318576843241591301926439329914471219919895301746865821779665588776046835595492130712135719176330277498820388518488327985829107841831293028445045001208641979038559349495007812211969620496695930141863055598049730482455822197647401071434116602571196474979966132672769307286743283648690709549640985527499599130755669484563831313531655628905755716260400784724769414352338092802259466719220955018519017806844075030719037414714030339169080968969699400403992582306356813174874236756172102341021349650111729786136106815678859218612030506828151950111962733862790297813671446841354955523620841820226800022778643438646408100860968336673120312127784791321436736397065527351197697360999014843025633057843043643977695280517461937354017551761579310495064412045000817973680303104329485152487122174169167759229098202661239060995300964341407750583361585396680703356874097894213610369524746709157711252822571794873922093720522495495753775447895276768204098953421242944525217799705361220870100379876562410934689038585573805221798104183019063330514344409695400671844760733690043298610579309280994553443031697247118338475305457645420107977838559601241012221304302337599767412956623549216727528965560622334541314831811441573300606856782490367116648403602381857434020273961046310292658206251713962865061795313733679996452910132821060742015316284819118173255833085605304902069501533722805268303483331975837029807313197774085046328095080959524540270515827428517646216323442949528271902873787269125587744299409280251468586462187705851256851010069225356731194050586070413372690434755926810972630764575752933810679916664468193609668685071831113250087149968923856351120962894426456570573875539382205364548452141541146848749029981792993075715392338991137429845283728360768482247074808929005340191405085474872158748830620370026191578890539477245176259006417186598353158195401405021574532818259009558719498141334461338192611514325207960520253064849753604022472453757640715485837812829223223419221555510185301992459598453474337782064701546691493185226655037809098305611535169505742837235803978328021569120019803382781254133980618967566347198560777087107997115118268612561172813653285721927583184832788655136550581283063463365350329480770606663843046726196416944413155236543490397737693880567376275798785821761839067951022933696924110558999535478121297595160729036886857487194644664443494893390102356685216692500345072634494773941102284158907199306638789633637226067563284574760719651342108612195631576096120089718967408524162569633011968774444961206929719203308568421862535790617404471809398142990494916093010803895520460591476990800871465622087315713118747773603798576051147054876971024947324596385669240085536060974285605152201377344683617213179897716276009984641313967557095102101878859324388649577622477888434035022509567731715673620029489233564214101304849257301090597547763663528187757489444395690031738505232028584282110712226423275472784463029145981210989619189323703854149104130358530168033730726249379697415260242018792342153215024433466354823186553545740943077746463672963969846204277955290396487859459737367303810319065884798115831516115396597401036058736626914577141742147454095863490179267505442484341343745546635396512666668931143757667537667076354006065765433641602839108707366566712472909505470314712841365216828574971517299842112506376867507790354651713671335774322404666398069908539647703509999074770500882577411246667152468688277838481075950269064211129197830039520933635161944247526396030281267963097712550653077053010660865866454402458192226706143435926105015294093430324398908666393520140438789790773038033934632821677954721859159217666634502131496625806663120297332826058269720346282355345066618440716676346261865106769657911852019969853329830821034553208670525690053418455211946376273740263046557760327329418643782913495808153065002890304105967090475429863831510440735611009207582873825128777059420505132011968268274487508763526125713756531825435880842950936929694111390813122601092900952707498770412646239516435206165233120267189302216598841759694701811348395868145459922468010087294808544386782898036682279791823819230800809937681610591619385171620592312520282112585408813095155385121552330637232544548289028669612280467260331865027116527154928498027989822556093697222950367631858933322493322094976500284859351898378749505618986673245212138797595313574031710612807546586787839624272177038809764075694136479603508741713883873022333510332254415908919817483753313141734222522931341570299520351082005435442218901547372415852142488004880692891093789682208287840632546810080779923614840248920223702516204280685050227380542558963880600707762940031052877332067905556167375478068677588343804532300473860799373409959974889833990495132670872844372927174419583965851040426570858833559897631002307962244169242002044262558581251704143720927114424466469312768876128397413990671571534974337867977786158157144687735573141577320261393550645267299368626666655805189807522729206323398721560540267910206688651312918912992520968230925834986187908544533883817748244421077739666448300624729652417876015246491636485297874812991541767589889895779079915454284402787528824671335680292591415784609198439539338987815794885911305126016839417917178094543358868699502011857561341756583351678184147987138319317165715745849279862097207073514738665290496442434377489236256562720165443234567380700788430828380760780717282308219509663123371324440525372628684018478943475951604419269127496917142521715222035303041379565826483115924319384427041400536974176197917104771324912943929847485219577102171302982660130823963784657373068388068056522870651491002532115047001311885383820041605309000276144623178247041145958971337001034644795027867213917554898132604645731737864686302910585753893151253141381258711890442319155163993010032092075426743027311601879699057082422241114752017954163673042721201698005357263066405968864813382547459005497582622998324984910975541908906121449277792370554922186515872673510060401136250497536612228155590538873290431110608199236560124251381774260421099508599348016980618636743521689641349497641602993180228372639832054337067724284257809859934959035462965890804929481534469681770877408776093378690088751430691100373657607189878370946206820257977468116968587204656962715507373891678637619623540630070150163958460277747115018058747300873693140218755604814277268670893796776273091275937334625964636413069172741093764140772619317376422812217574603846159130537850124790549003430064230594643775891595016613980377190040460044687724233191775562512155762639018505141729709079783161203687035690733338122265796470324287808484812151601765781239335859360193567957957129311860892504978067032007916907183188203991513262250237649351149396699151233378319239400336953906503957480771991470104576927336089046419443590345348694979260472265496736931649904491193662150351817801619310217881231915994471596711343650141703531708033563255854721568333817019150795719710563446461998848651608907917154440190033703860243544620164809352171572146130608095075814853609483087769444941700821844645708358677116351741900578354249039556333584407683959260117144597210506937263374882393502936845552436139359518101137825764278727923503853998193563653321102795326198511432096196053881912540269646321893210607451250781734117715838288924137018153040125980963662827285153276700180182648948098822727147348382999002620616965507043686236041728970194196664283384564472452204979269569469408956638127536355853446934713418334495916357035238426691993260311494236330539765345099997019850270184155217654782114098598642192418527300027955392926809496282831970682860628828540705857444411126366286674777296001374606448482054327029398836326478442577575825158928156037672553054641608622055694001188506027026024180100779742378941706170126615617310618138458610506650925658057849855121984399887328326208275605252617638581380311285528286863835121704325959466483962531076511831094773870027830913986546869301450720645467367758581626893872882059587729035002189061031742832085598954989229215498160826435392323047762106682317502184842031459470026176807978635719907754307770630933350493897102169013998447119954693634305682931300036674369974172084426486467816865373028121208556086182046637469722773648634190035232278983020438842620973629192801512052284662085615145247146978922284084732678063042996865320411322757995392601042465671248432273113565768819669691325857658606021480025992191132460936207176292707429888353774979182523379015642703176324739395702659723357531276776775850402739821387242150916703319111056456095823022789010850948706872633429997052543437216307907501444098816634902312278371274055959354068134138023274944874753388541263485072883923690482427219944610204099990278484246300495663941471963269632021494833664414917302312455615678454049445557252213818668499935301028510214372991201819829226946078616328517436011906571543091986132059566294983498950203375309416078763193263305819253564488210603841743406651152406066132673003556189364666888560090072509590273638185725152639033411470749196896316774074928259927772374141378938814608161945436689996491837640566627915910619688795422994201339701875388736477838229239203963135424517216374654488763570231105581777618830789688558662825260691351760558807898205434742460541641069184324985658877352534607620876264459104993999854476937984241139704944802120932922540918652621759486654633274630069699402156078276847286576092726874374009541753741456967283751367884800121086723639566313487124131472303240165015472494666473309449522474794526196603565392896623138684388491397487080815087280642913828808267549158490129468398298986592169785951830879422406892315611881343812553742040677212360939720340157287765649758964837528362581618987263646968663755345020803765783711231288904714994659431175653162683937450937430448456568398716773679417967060960913523171044147657851702268870259214112855600467762831003015094542151589507994258572104050091714094306026184923718986561921011798583882392729060286140212752044023573762446939399792094294630780030045682216533591750370601268890004515679061448321498796890694262675488006297617624790381740601714278188411231757226124438294608782524673849248929655088509820414873362660280908208771138511487347741382237768382645911165575408028614432868611470859866717549493798344181637256960756360807499915347472184074664490603514272142457311419030327917230435669957950113256276309566843993052904858660929200017338326043735239462142682674725599750491652919308738898952714716155817230962328114642264586742047106955461062064753795205431639929427188413352722818114027390694204034036177420992650180726487718422728890978288233630700284751969067249604883066550519218629016751275976034583309307067865784535304487382965472073246751895385714987270140873892957998611049648096366415216644788286339338801283434867643745246378250867290932860676657813543239172284557540553787066047402417670155974999185561897458972953056531526215475944511826745756705783880463874891519688107407390200952775805166074243833777925880701745636412387694797166196001497623932970644144867939147427929471748619865224151085256519343209675288576908995399644129409858045008178384290375506246917918580083284644567865197630436693198545208787035073177868671076332356659750913863531873170864213024830553848429947706771729122194717756679157989772323435104620111791428752628061852912108994274493280183445220727813156564417532941358577056615503659109365080037469297333985056810183480941707959153842992290923043870195862745268048399349890697828377983178071044064811597476998739536290272795768951097361976901287159579016101522964741228090584862489679386734010119841572522119852047777238179979620469883314266103647126340892311197491754814868087992612507529429492159177480573999875498531163426262040515034416072926853979165172049957928717864259035685263723674027546792349051712277317662828191045356676044837132040477828849744243163370747478139474103799698933553172731843061575086972745607009374536103333663103244590397466992101443447820533951562845664562160778206338662970702147305724782260955608089752986288338777042035927748696895990068455184386629687507492863639629499370070239613492926572310816899899823890444159531139786649848682030106022989314652555759869818378640916950642613472024045764608614559122549693167686428350758624118907692453521560819924976808656539829622044908349287661888310038455474902019432192310476395535868918126799525007359592100288806948223542038484094270716436746869095176724389928094569078558094395070370523085092891278864052617378601291310758979680312950650176848107241849071499548091164634771375577421217781499913511165951109082231024147021718912707240179713283445311337574358748600582983860562068588213878063048453723979037432439451935179542193792689548791721675631173822329973836582522646984618043716780523444971716070580877205160243795667172665975160467566702944990197150583731881731082048741123580210187049763422222725587438893118927794344289309978591925380892450624535997715231529456044587298593089647603730484719649768861326826775142465385883397973387508908302506639976379032465717928333742409333571009230722470020150146872568770593628580204398988366619202824343323059711748434022981154125210955601617841261150011192956954278615130222989862207177083853675788517301802112899141777932832404489037947953890714048238882865549299807441152686508098073465009602104375781025324396580048392457757742974990054862846143639414670373108671221476859868683754839711968790943751665315361497998029727457640286653553961453352245792442561118519687937777210376684499256407286836086097035630169804054876444365135501031894326801550104291860874058182454859913942117914458155976823009039065241799241526225672885125217984461711776603169678684921542843059088746518099427197619735987289326132188094993815812935925932293088752701123164594293557188115448974211812643140934174650553306468855550351276737220886488568858148264538300872239046377207160555656284196206076128442932097939727084217137799130347815067875565283370380975589454944302147427592226893398350686804848812700342038546781283895549608370150763491760276796452876622291789602541534876132901439456918860179868684547581079934255276241820732571159996870008419729800666516615140708476921072418806909405494176961003478743737446384204217841242616103342210473806309184441746675033319666542817393512232378568063666731209880409592037398968248991314769743415920263064555241811997669083203505522329501380974516963596609117219009062074447382338463710657635891413576814184740588009578978439512155212639265638735840612795127602127414785047280209002426313412062844890592287782471454732907785731686480647227492059662704143489122025344504489882475293337949048281574188569715109961418931153627037434643239564349990976811905782409973501895190992616613365610798085695944635501001732110064167600442324381637793758858639182817673090750439084169740599075187188226223153657121722986709063248598292458240977499373328812317785652734517816140944589359820850282284210410157488809488058090474790214440755830954716417889925896533294685962082426161620090760825058452528516941367941223127474456089024540590140210572757827961204441144041382870997558257685153492666895009762016717289371554855074170435337262477956393342392635159815293320380041170176953342701091827251445082199448074728990124542936712098898537890654104401995476706105482673314116134736690442648058209403108309460481726805910627370560470589582194530071048476866518500552300654322262033115682413127910193135152283744077457176009923342900518335645008840819537598843286310450007893128059622033170195327499493790975077399127270686711441975147448457832553022129168464027413657513012314610989496069455136782788016702569413351733216381655372026040448338396077163762002525241363574502945545150693321390472249411310994415585615351171947167057917898122376810930068360105836002960893187770822063182598812527844184042973572389093517723852990315852532205627669345207660994108209189082413207562457100489349029051883408609474488628564911507825597020820239634253468551622541652080755280589922250410597733096137342999071546382922037363605187585812333229054426370060045304302309624817451081782378144614988847706566676237751683010665857417493631143750737017307972879524709702127500188892169575256734505377871139301424942060970829621877264168925173304174938923796778820740789041311822370701178788233241275929893410002228303761784719125135681156363833260586375174770144551530903390173343390022371433718416583026513480087331341887000758456058064819178750691983892448672694513963231333900960216563777866546446345521614392907420698613542608648797398637761878455216468074830895424398866117997827650170765118767517665681019302473764388384938850181670833776654355347180424878533444856931089853132315543795778270952087751474395626411244656615988680416782192917561711064542607808575564263767977717571712997303851659277686882305559521061273721542488897500102131233552314413893724613083613576288781966924078056248366968888466006421094072141817619344986047246153209399601810757876265281918799087199448502712297723049666642389227251687250454405467989383672782475940950214284978307159187024108607802554192326214131893477455379552010040300486042370283408864476131812928416918205044073924325470355356740369657869109422355061221720345315131004580982554355944457785177476663526723351702664717353064185259066050322746908980248033385775583368803902637541141573875990121933620726596830745770187276454919657857195168027592246533069957770455382269126115299160931779069361029847899655306101076149327457277064864371576974182333489509423761187248861844648893729146063243686646146589630265616615271186648960182635198344662096004312094046159275793416289588927187481230480968205627548966402831482152786268437475923330084523004324726243820333472047707350772203288590207862603438153484524240718413605556784528218643702959047249993218905749774247579871201658273533014020091882398838096132387579879907835684115930179216796407616202291361108560254704913777149866737641321087837890396717045662935769123811062407401613536337823224862567376738493409231232332744610065615731216061312953829619193061779164066778565369047485489651984778469514863147937424198726241176859376690726803919992023515951867829260923138262694443861355922077959705170123386644243458997803378955128457378119900147474547907789286602995415350739761659006815051250405470483683845615418703424539361994352884622182724194713094012139968292037993808420673654438270165451330655521110359686239454558274487550554504463806135110853816406516751241326981666414575410180834086495575942168989665906767058467354139484688383530832890426281923807574348095338216952530661786559355326472667411269327837649794706070785446620787084236971848468422711007754555547804890103774022720533803827048569373584460749939030521569968337248437488165466463728677185484299580702106114193457662329394664764194636563560880223435579088601292383828922630080117620102677227056799475825205180496393793129446212066425442776618880621182773426101561808118835579274027330458970047191025881981370840607401516658697496470428857963406888603593908397665697847756755337869617290653765881280861670165390480626412939646665619295176012993497643174860217446006049589700246594486535105083215649427553683270866214358916802987661383672306956745246371218484274035234076775682538922940117182275601698823619579957975111390379384641739520344288326285863279373379877104803506476042507721633869794887032837514285546908041580481970738236349247018446326573431934071247195187520592799197253371984619326610550115109910103048970758017526671824520714422282991700002897888001886460793015669853118213388642693926293402465739111348332225876692045345723004062569037985359614256992607613008516003256502240685340355920809029317161318945756087456550501477965633124813652676179671891784021747361430383324294876864525906117480658642244743944890232744788379346390993688952978749785278546569015505840896024173337093905891368560306243438842239891218956071384257921083058041931793247512203511181974143815883597864171612898754623430817265878000627065749429027757838145699821832868159785160112976024181526209016250819471584422668974960449999440459050338596204055968942406563946880735384199237471035296683755784507294151670864967254115182085122543533227819821245328757510590827073253102757945063199267870522051881169501846273275189216537541900913131611095101259740117011698190262771298326220419634707950455539735287996652385674961400425740886159425328327645128078733427096393999500992507176566731228374733325996931378869215666597842570090752289239977342516242574639437244894601536110618601543074667139836770506949058626132987905239299444640053030086087506963310856713859083779008525733799193189161129769139714440536994968562614526878279772063942328921002352115369440736481068561688673486145023835963471685221463144098134660032618559587387785871712842588901653202484816339364860859063430232064379935423719725646111933865804791872481895756545774165792144931195580478897744472899215687770793515171596112526957826791333734424160075500136062139458512132428457537681308951800663539824088832131853945566035050120161336910760255979028146343520437407946124402988628765614769318312925193389589927183860232624061319547172953016582230324693377812932407375960068531173422921500648604396423341492995842320897282706091751382116422257893863161778749672380770469332302566715758374710710248537713925032539312145829287726757116723322112133268789924457666955577819181744974437283896638272589859051466139469924473313660886518797741369804514420048336192015904227486169413585133599696152671720777340422619727396149118381990069509776526528743542851078981991508219754127928519889673265991557778309894292335728063883445343150194223682658601742295191537145511947843323738279967679004755591673972698349693905776354868245316091623272924494817289033939357167893870174328742706149214567425287557027001255188535114179481828935149465671501976910478077741061935607868447058718763521017974895346692802734514514887469875226010462033992862400965678331204649419580892758840531410846276074843575970365655334554826095423645155273971183120432313222176109575231385058959810802638493695933099898661907004685718174785418602283434635998179478758245407380326631821612905390409318803361172717228661281029291159439090029899958363332711186966967637774843561927242519506320287092156085780675796129430921449082017247290430666640979265762585521297605470242472553346419389914648146209872887332890798767179968179120308726724782515828583393840234188767293164622147837241658694524177368630249443060459537403560753994388235002865081635355683943527388849554041273680420544587834313514653943567487564827389697996330867478161501277076188917486894096619837616035915769900938254476936120852461708933718493508415197125830698137154457735136627761386875353520621875248585331968675513045053244260304947039161126765563719501780023012310446720655634149941692697064951930465501009828465879530925442929997182971851900284463119177254978678723314600322318253683569512336651098972497115232466057738517148526133461626018236408072344274446274025601622725738467600123522064102757818548430253413638692634916359208298717581611008289879615246509280686390824575790474533229018024914789921938655837879904042308121561862905212342429867707735437017907382906142441384609030601184037009483128321130439819857387531297341700848871469907430927191477712961528469632920197356286685947359581148656145893841994523096055996552244155300107536136632065219337518234871059108161912766707984334869615742125983262818111518232266655283161793902685914279603973158022381837351811314564369076060797950410537366392449313661893260757734586027911204259020359918733255347873844856516281217231801755646868521582918606674127386501070705038043886921713692779834327961246298841633894120960044228306987528916390225457848878552603080777244054175283977606630883909838927729756998912207228500973713456401929938065226131389750141716540479530978569243781461373621013283592130595650211766405445857372050346023063011032341967933434465031152723598052823135794099886747029612260038773824703309980527888133911595235805720582543838357471156390348055821697675368670390976650374512418465655615070650009153835043995384066846551765509956754957679599427665013156021736650483597101244255258498404608928275832403181951543036655100586580589770770732233032160995747930843715235374125219621534689249082385253883923306045851361724685140190203179848314755401826072661020162123932105952777334511153718382810798690519826840224864445979297175941529091598680927642256463699743731846080984847375510364682960274463687133842400414755146455195135725715516416798859885284021549039398910796609417878276872269030449841578869350227270168055460275386797906948041277945674619320681148507038193247917744332182895031783906798766510577977210900575601258511003161243943994520203671213426363823101318262057076028274681326226673067885626569062347367698160260210670952437437026022867335848473715889978098125147824836238275296495258756370998609909817388567310747254121167457004503055099968473541245532708087249177510460665021030589559678564236052791312714512357255885565786407694477959212281003152899059028539608793018270334089869735011115683851434295892136829564048349464104588767507206719841568035946420794016450285635721462608562547946162703938487121626470156806891470089183438132520492954514099232570249509784937030339180409884262714468356898234234905323958462234136814872948217057741476989498799770886283341917261951919998518457859952827359705740569528762149081605573936179677357645740659491873216364755115469588705740255290706255230412065819422084914081333425304855495452625284753337933928379689286750104768114387990387423190729332598866742114515978232440249197139290292273192552462506072677971619266904539484802283787029518385987970126181383144952958154361323434948491985805463396604921306064894300137519034991520536515257935190422632541249618269326858418996649060669381102980002718271180483886193806666083515812563493216005931259636620183936152365089819993906997570899833453671775905150082094535331563182752311955122955568236028692381667058231162967461558162140406881577594735128587788618774455775141924483791122391968761622600543140122421451627300777528959254829304343962369637036472588439319559563024875489446678050771501881919830948051940073268331162259502406633694714472993256899182334125497919617610178176994192069423271447171164253295181463692805649364260349595319846313899177580256185299962940402161730829511019136738307696950215256258159243672932048767816792228481999489474675141440799194339254418427345163658943106530782626194405115029017291071352092928244547270882029141434583117860710239684380236336768274048706310806991786765774990122843424244349697822434135960485709623226854741041079802309183147035999846917878678913802987842557678097837377085760091283244406393122542897542994380483944570339267198050845078371598698494399091758430652661908165425253451308765591320101966769502476289678504414851315391852243806330288858078082177423077357526980436792302428130091860249051764597835074779302689079628079116648155925948863663418916675119908832528775823556679886150011253972570033838829973874824435479770694236605608389420914523277237905024171672491486051844794242879886495309032027964614671992672223136726664985915179768496748722274757972814087472572920551886040672914225483609802493501486746002531911628696057100160782648932256854676643437910511249206609076216716768380015783985398590590245840072302555633241843371686973137104624676777084065235105637341105345165516133584479517085349183608834001984965522435307618551449978294382324719229397811415676849196675864918165353781567680507985258143814052999767800911970828776317046957483869758749787667109948435846245449387518422017144753283239273896385211290445844021998454148764916437400353838922407681898150552739212767461735664635372019488622781556195383077472208760696708400007888598811062078705644867233673883872024062739129492304485923517691541894863807678571932830553908200911006655531492191710369510943759251235062609579791045019788374568963925972741533631278878121647629935743073245303186331379191763187341128062696715616282930272014290999175837893549336199964485313417401308098396968061531075362367256154722291656407566792700890431472461544228494561677650428483874017090482927565936076635222619693064738130885099764308475244786840814231739823941975815226249488036372589105644947187180643419535990161270640351086621578761753871245425938721008719114608081110159509010840543574176277395060504898548076660823754308697325938785130705808094080590232585356589335420627227262993261983949235591463342992452928673234114893601585499774943856316086314343033398722102873267186811244531168797496373968405923637459362184622405174697137598127946619148935517632511022437387829305700090093443231951440922599051988243391748843662211114856245935822942372361091125687261083892150198075721789962917229035518612749012312496620522560971330782611337436138534560943136101575651342341109526947497820382363118464932941846923809593346720269079087630384870655824517714370457366823673150286920981590338915029869069708704843649072911574639108518665493341297601826408666081949757083410586193001340336265039916103861791239196752209456629666721305587006646876895203779117575193336936925082023437745953883366154730899487853944348133252948078121737173731790259399250918679722453145124715153204589356690847839661268263219616475104498973058172694737163616878172519383864715008117905743727639751757010435161834442534423901974734980768135368211928246414158132758484692693262684584838722519054844113275230255590047231107214373465038720886006724608739127825447557357738282089553036256125099965818725580057778358260600795191813292417477902204953528156605245220930012116796563756376689507531062392972892668773685320430993095146392901753976525019277254060718403608775133612567357473722065315160029654901279455732696996701884625488959082083473267899538638033799588795050243268323682894368851738599005205854413805806326394874625450301480953288239041653024686263122943824009839453066794301830705836144852911285006229150997114518717705184603018782640232931414131084001610666597301677503138955825116908735496903999390937641653792640440431330200157651440497975159510998763475817251638140283792495826641727013443091685847310220670821602750598172979475305667089256184553737956794068046186613404596667439292115435815395059977907537809932666437308854939340304497919050955820756524537829971391267098958342501904870491199878138056265993430918908494231448859247972929349080171333940906701336879286676869243290133145327611134967421497887337968468790191826342146354537623595893657783958050219315290004870332670348923007063404299633518507514956431681054952173088899819169280056133188624296039708397362742936242629874765808180274779021575828264595713187783946647697110737614127233970264251438543231677405555127455897250754656278315872596286918946817522718568437331082945475811684580299287697864914064571742399305749114958965444336453471452776949214928106406916481408351223560500177922709225525710722907498644925058577146081965416900233820332667691859482173120696347805401967211918226559580039312836114173080648569347205445662930812356901071063534787605469500124513384303662147191877490907209141682709358856690728870296482972978909751089987649687450126602227170647574335460634949230989382508150318205506162736423266230538489928043497364038072875361808014395118489657140093129049169225101185238556779372973155920269572020538971023004838669220727942900056314293977096565852661956220404836411394099629249099956612075649630758558042046484095638979174700645304692043549454350903897822309558056161893093048085390053030240123931845862809007298192829926411290399169698601827201864077674028736064889240403315687515165555226593404779473577528518026899000495884450848614362958552794712329936599558238451608094241849409082987503483423610280894563790369388384359770316582668314591384870357391453178800345018621735645148528101813658011584164914518692213924297275805555280035554346768179956364789192834281790502297747115299581080382960664407972972983331032173796360543266232486751948643998375484561128375757088219334364304667113311454238111927493745350871646204418549977615685650284730526527199865874106731777812708362652551271813411705007722507349217251683792214830994261799405038755781678033855379096245714761141239526529996700997560786155436307929568533048552850636113623711008398825767220041024088342912034473437996105819189136080598179430755600668966023463434628363914889070178486103436344744586053414134209911575870494470386907265127424338423886873015085832652919357567612477510163058137715884950528091421468719395872819215118472826268948240293496972856525591743236607500087827042471700235551743611541927237407404783182226813129081183335703805390684325643464112140338752757033146725897818687589678200708926046592169185606981585638728395678252615822606699039052428433777937079978666067183422468909852521387234712995841036420708082679816973593623891880548694924745361103431912784091316001182852350448625016988035883384691245013141697528735723167116581538094841280365231791384242620176789697078151153166280306023260370433842804643508414111842594872420893010726291495904157203064262685920919707867362947755426828166545028665278103509833969006620180588743737794909647973430434554098178963884461370032118222143578089571333254788627177036694657123910848688920213994759910271524757714771081830134762015251385021276121547172353500775282412046188582266405829977552130854350995628704308289843854987454618436272715750332686331068871975647113189376300519172282427229836519829216918325426494663813268385098208285577543910086430057718046518415368606694797915123701464500657553161401463935922862117654451221813856601849274020539069600074684873929794471207771820208653395989131049065396015574689203357240803772726044534273008846367356740632678096529331010257464251328081654068881061401223923442276237041693456838994695964125254876329933880942259663448385108192763976661717414814161548286330676606846113919803215776483060111305906170670887846732651124727243268465469660430553177547821013576198850044215121751433015031711407526495259255647523207069535423684651715526993768272071068140771708297621670810798470808799739215385795934274127235924496668493368469721576747880398172829322171700193962072460473162392075668211860711041334447251262608375477601415881697464095986596720944841460560781287329919663931980460141494156713219661599589347523737890707063436687717748763671618689950561918704433559388905700880555946723296440841841154827075718202308539518105471851144411490457173449882352733719745754664207015471213046854216569454342143859189606721202704681325050922053993730342067838123863615009124301353852965964328800043716769244528993497001266524939402634977303773660782539170983461986488172003206162956980498680604435443160451925352840399031290777600907647577662079229250291578938624504591304752387580359278430467800245152825288742674675049761721646891124006921348868154154594038423414540193109443824888422238090803748720762988377605031742669053894340179831550616593305005092526212432497827324416014617855088291322825176222980559860869700958539642718210941506122907926762256048642200245606150752979319870944934818773025039034405362843925965147530991531725297391546498377627030835768137062658958297237238507454674684732502017060076191189481167886910236505956522382643634862467860381648660263150135744598788282790672026925260852945240249326483443151094750169428588484838523291446791260770052990892187407595371469086069370416164920489261093659179036210129436425495388493903006495476101206943440747592043016255803785896314870335183684114746025171052743758188793197316201658414865618408211663801720434834544521532062251497797778547974823298164008834325460062116249714036538193561296079701897458443803821495905391456345669273261991505774182384428140633876753545136430958954874136670208353633370728708741333505943267775157219136201920541999107763425951619140549764887618630887306297937545860367037695060965752640016298565650921044637559976435999494476097951549674107670054694843122027673603636335469691651545144460379451147116779338407418818676635117769867609561288996572095525870765983182542053725198530214012728937187514843101650366164665688257114060504181445932986436443324507345944562785240048297040069773778023231954070259841899307194332186245372156562341634915869485746678361519139726307424553944694737683834809624352072092170854110489967908504614004096512783078691335868476000524367430259834609080057631213953558576991534863576354343788263114294772270078006729378414195410674300063576550568173178697670309158972864930142108341381571662455483706754975025178815383179364158483812680175519655294758583259284209558327706317028783141943476165199642715135136257265546398009573115511125695806234085789090132890556113478820243174651341557975095943929725732034323187729434657186277024361128860220695240130629430654503559975624815801898022505970009163487961301389869770671429451222800106497846896175113910077325374239076015589293299877326773671778119326328770012018990001746999794153751996554571402892801748763330360446609617819647650900220799579438651150643476949244177046834164941967134124075374485747715641097247087135981184906988216764646943171684586218390031139307186574318226943190598937041514482277774609133265007717241892295555192081911453647456913151653496276603231885777507996821235927117393762434878081986474253197876404090486140748310923722335598368036869482663527674290175158975483311031408926579599247048342305135204566043598488682256469834810148843585302972018925305139713946414851617355493579836218309795070443502439623874717134312500717508431522214273583846688150591829882627623509094576403749965816008954312773759204669828934070402459252848201850458870399427160520078463620771828121892804268635527640359177430004612382295878793338836918906266188196779014729891813464192633145907639438894781764048874770198889848447682226628465164573983726647937374137766596912733443008084888011582913692451850435424310077893392421335459678291800735653065908891629890012188102180065068341905001231722111440935149579589473360012864233711128378299876871108776193992249209105154405382872537956048550681874861446279859354537821084007917328569322268810373628453114301573078812107034412611112822424798461951937605387414787209063301261007434349572678763091832913133016377149850018227181909710664891511490910066857759098601773113101141685715207786390826860930266612432880740604839043864368106762896796567570773141762284369383238972608564142747124902125397414022700468357688455435613082143293556998304420725288312381234497936815593428394124169530929484964264634165065594842743655175300560997660879045157742518841783437316892382736159641804178618589283078307659553144338665322078891802418573353641344291105847054875855700381848646698228265880959642169618047026006358679918256065534335478489476443474039623515093540259938434015533091195048035478157922394765462700079309246532147834532800070351212689283241076705344200723664099991322498731881235555822377406497805235320732820724624895390055397582668354469510682633131975158576588640309187165738660585815810050508756596472007555549582420611804511731848890226460255809728546135109976851383402087607907524851327641027503742762689620360448673102986387971305189303629705533620590961834663578823837041076334321310882758403854965503433731912667574327113372972358597681997163210596955094349523981812863200419492754333169509006588821215461080007347834287245230396876876659558711649196394295298347688283301992523826638402441873818606591560944818001861421755987678520564403740257395972924706569469253426735254102039532751410021686389219176482648741662585627122208569804804099398482418456320287423085121607349910350929036433468834183972629161496236797754875906085219114442249491093087572409328929798280033229573186838575067172671404313450153603274424507192412091244043788934581006285432507019885304802924779811137420731681141876122407096104911118670112511217601777505556584698663638254886893001435102624849760346627510437534483456554000662090211079859532005752944557685134563148830495247312708032789350750180997584216490546809006788454210903027099226023677463944309877913416183465425174079548829120231456569378836753831575151226219308828307718195170794298020903118587204882094432030890258692812356064338268553583676261107473074497275232756796682078358963696633420967143799044011518435295392306638212178433369607766182906830652355372921654135999449036453547072120167196830701413517363731246931560810869467329698948382972340132928647810928932693746092639458581627889023038911548330980614436435529018181812281925116040328329574343820081634685895145736188472579405599643423841740511688051483579887755407573603192178832350919801925676440822784730268990164338218841519525032815769643023056888660333873145068533113225995828485085803219008539366222735466832475875529592307563653667267009532284207193727633304770825210208917362914467117188589314861375497725193877666529210352334917037068528254954573586680974564945762226929771550664062534330381045141561745293131267348827616934573142788138217701162834182678250762245949745936806784339799953783662811169777682418966579158669550706964109890374809890130581898765602580946258669580559679779181138517683456771716493249741482654385628171769665344118112942604119119838446604341455096068236091115357744970773317316250403843215235720044992999515973136631093487442412221441583780014610605860917935224969542517241682288975301029585057207708197325897917792998259993747051381937637544726925690719088002731932688197835642517935649350440582015091302285270644577640944109013034998092449607774178522137861435098537187443198925219137409347534991284167286398971931858600499643685091693235041899554380806355726471093681042001571419018699873061185661209284845924343117355206257256195588280790264774489802227040712392188481350054033954206993324879872783754119236032982539845164321606599144651982391106740147626808054890122855875015234259701802445803430925368829225332987615541710473295643639121999184235212341596653034217314370397739031837530581950755459075770215157364678138268647973639382498472177336011537290062989761901727187365723543023303240993179789721500213662562232166330958791535093967360191380251768348871257033375235741189916731891416857719902622409309235975634166899774960039503371115729416602914016719103299999372520407568785475125969366552827914059982054944680093620932702009700696895859910461924654469322985820026228051695395853547402044877460279877391483292428783464503894568797140764069575723188565263659898329465401982299199964667498606149028667932351255320044403550395944633735820141475278819972505896997089119191976664918361395597818765475966304470112176950930778940160455540519389899472635202511575831706965911282938298198377496261721389831993405480121753911068512724285394843153846513937761754188918945095581091076909655845873750768279717306839749650625794481695038841278695931349217501635535024092601875706072880974657186345328853059674332801889093471697180725852263785645090186137576320572119738529512265891296516949241275299922635108656383681697906325712962887833471328618581267072862821677478695838314836661064424490940197488426746224970873522583660142802112936606109251027338499346828248748748275490476694980231473846838449809929370029916015102348123279303543927843443335531232256076051434323901491048984874874068717239586011683238793542081258408908521203354089973403192918479616513613911224936271968500774912808780709479745313359505038063826055945254293773279684946218633119424540125115994613223058772834940559116855942807771147374398712211088588730977396102380582845640697002677800105440462162545261797382770847244560093012515535636981056305567610591544874253247121174674155435655278057923305947583163607057637478214832695503906336836112045670539233629533482224752018455722698845876062987547576455351704628253391672429258138495879923014251439938129924320489782744870803156155401098756561741522541123903667054729486675104552351818785021306881417925368575970742596285437800242947882757526985403591006473387170890934016552305316186543232437489449344908388853679785385145381284404937037796084324235479109271589346538680628099961816191954569760934920325004337127792735262879715823964213450738628392181640713976493551078124510400304565223975521530625248059545398888443958054045686611513543242409510137828764761558862442486031731363502765717397168123227659580606331449705228664025316152028096492655339133969559418457020241388918491702024334749443267462880424371624334517548677905534041298716684297317048251907243423028358161005073993235054476172141341823248388276221041495787751702045960329857842954995777412622195857208492582915071588492338502354180563242014038103138516981553617339400048348417653140417240406740670341362582480630270412516378112168142074886073866192391117953290406853293375045268647924438130188211420814860579267983171355569199907839123782308671980708493629527563606409232532651417823356980311162181643809712163193795846777244124334657114549175838597471354349139291600294620378193147742608191778201352228671506204278318641529792435278085980809510518532123517056929377623091417648418985307215864477447182728989703774089837216950080991641097670086135883745621788748870271819856236763313715940398661047522745186256632263672818776039797357458228104427504611720575141211583805277736349591049574097352725403997605632588528812366319049630105759455106508294618938780402333272481573392137065060961058377240702831100801114248925517905754819543723992468710538316571219105779954889370634473809423535209113272536096483251409625908588725702829395798515661561305007819580555336930460856783706630204646424489241907306865982017370204831997354872241439654183467049001667883582052857846458490496454634316270401337470289438081470098485240890330397335988275159986364164978450273376757490779574418708804560454514994603375969975397551737735412971944995924774549761404195114253867485644684591132759328211622437683839426787571726928617513392003812937757510413453109319406688763177125486780918785160559020621681862670911587561153653317095219737894796424299217106020693060379904508260225715627616018835859036884149881141815226282848170865443753394001911321167391684312290792528763169624027833510905202415259123351153936253032236671265278937953855159038208121554742147820445593026106180544649801116169782758258651385746352630745559038055611254164771362979247518060905223763052935412735210091619414482435856147392946139281519000627691549314290713569075925126519984788378334501876502670276647550431651107346702010185024296393252579562190236830450173086064913655847458276318710301018549001769071456652394590711195061899643823240562993556477573177334001235169711592574285565500113642161152566336688163756428909305491913018981650665006549064929844414426920185899861545454480313216398264463127578852867162883598297711630048104425720770045587931417537037981528833073301214069029787525792712448061905514749939265224146576560494360095372361956586047517792508427754966662157396744038650715321763393856685078211786059392106674991494042938539542979925055592888990522767608465693908156335050509062146679386356102039891583137219374079343395973357835114229874059804946398243813020075120787571774326745153900460329031690870202904887396070845361819967537876374266768463560498885241631792787727098600719711626822100501384569343471670882040739984780641233283026428740724832555698708590104209545297690845579014799987408154622440598508144310120578362574248609991052471829526739683862328076003399017579469103019907521804490918606935749433896198706691898707696017662074478238404491532671095002794340496331361175687520716845621960729272537817921171296182207489414847326720097218893892937529389238842571650920345187468166923884313323219607614804403120911299264450085362256833329026165576953313367200564237363372910439233491535080563081323542160852219625888742694171146932383161210640205393562927124696705799563123720787393117263040999034555336054488816902154212759182409787352674491179655201587898424194953075313158262808922497285261090856225515292493492817330791881157764131584566447744520430537469665120514878855818672296689436849643010373342687112109924886529318430983093176889442833432169987380740730569961469907008720348725027896811417739130875784423152226849932551320160310319160975915040974568618281665302407774754704797945781187160023745772812633968294800672796728789381312601067595236332070500934677469876918421894925396195805278073364981133267112411283188569686534190162177636645815424789353290706673374466153530849795079895599636609881448355967393620511417007447659680184483244367710893270160112976197879981646050559096942811286785984191542074586579758970379078600395752821005469029260908534545048638684715136938599056340988200582003146394072047475128309693298375730652954949505073811664515496152408727897299849662763538869286864231500981631350867706873954397671495520395165559941291664346508820342179260198336408487183827045472456366269363913032225332441194655891422896638701752217988452803439190949128047403141068262200678314209973282042127860317653321904192201615431332797855836948728666148645836025268210664549991824760711486433704069406273048645621410083916930674064757063978774928304705092923275262071024542355435819678110802810394639431626056526440121107477323868093937073125241960263426807452918742342933094504919352281247182605504531782827032811214369635746179366271521141976536984260233899929625757133476358729392800895444988384005798707939236677502133240396317777913077886603097346640012473906673723451239911165444050797795164288693970689708901085095360708084669021933765267890819443342450498021451325868905150367429209674640241466226749007785577611658262424912690698541527086029904194065658313768374846504938127070040064610868272992352740906984953421155462173031073943128058808597431545401265912243308921235484712354425052332448119361882259416770741466881954841900974615956060635766140931522528200505619863344058331216120250350110980438302876705711177974060490887233064777398237916158678349835521268776219341434210828722723982775146947618374814435501362934399425934683025441753516817038208371793984346462456665302217567714234505866465074208812780766195177241098935479166711314272730913389717940340702366770314554480856198515700709427792723222483075195889588438704025243444202634989452654813845742374089072987004722758916792691918656065159954078152008079212569595423661411282712608108488094743575430910571731467789954677672343277523019434039079067312511891703016905715024601411834733614904240632982842930806665636708386635726789045534869579392057555163642141235399525233090845032389124700682145656692153745537972519971619493226829452379105283675961937657968121786257963155805319630477205412174654249922259584997289728030493420183596861396133747869470408737783397064639137162022063307688299086265066296701494891671882641150558849392885989760437487023610307292673690152517236635415265931610882883727474263356340154261735545417190179568981317093122120848843533509268150471248088524667870387114066516322494665169585393232225579842894346700568700355850150618910282795636379856835680290460421369197892258933278297167132722247484015010664473974166912179364407593699048329945418349876116542919628838699992782499511497886319595327095954925438256085849889930192769252159148037455265302576845484362523907607805177244684596404315840195171405286570763994102604200442880669443097489916075336263922701404988221673462805952534251717526490702891629284981922366970759014708894268308509978588756508504218619844997508766510014492871298501447253820339094771642295252062850662900374154263809447277995655249869875719873325154721052474529792425157773522921526204628613307940656299376012677606609594875164610257800789395280044228397450009500029852108313124265210027897253503470439817395816106005312182961522278010295882265245880963844072894298747155732934331628701783030428370514156533034843357370234919511739520103259791020036439175140661855096051351869875827140752978265279148207417041192100550375926458350610696532421690167693113618821820568411415896157173286043276334181893438100101500461281583073947971429033684459118207274918116595668776242812867270915560427722759869355043115110986270477529948387512710313632636470347977808245069864508870930027393014785734845138107405102932601737441433857462295918676718082891810162613772265979601759072564186730888915730238918501539734815090641743830540334774972113884580358187852070011117758514006893090307754641574036214696309108996067331255671296224472873060541457215202892943921719865137428054373788130282321206695604133589488163718909617061742516539725607298894386861973349786115142924780562592679707087799115673452200308318776494784134737362609249138330580821060392355119499017849786634316323022175656690436644809815227990420185402081221204445042496783306383358963808900572423959173022140203089096966442486503763059307367540359060103811856519297196430410112752637896203498877683687308949152726534428277874869496516179055642220169710382873931967159813100194285598827444756554070320359543921750761253061269070702447851509232770792510397301773071140141417186338370095442533778448677235516816555186203350987636800527293795343148244198113024035438079248045100598720166178248583429836292334838684241433985089325747867455152894517749183947245662616063908071709195573513171008922089396850984648664589835467632828699277803425402120208466629032119116351815294447896395164547624474594062028500301224765569352665852337247038829875796469578168861981057582166298040294619624499838082506809148029469520155906735040974448811202210882500620899277897467305987791780076736025028106179936416308744517397464601314326615770940939964863821718992944804777489111107964947692963724128483991115034862115157927174319389009059295509151406060655506434162127598303868675920479539599626743112385688717664783441520032328034440339424123040102128029877093689979139777754940604204745630023294011453342893158021964502941947460974042487966152586604659408122190252936730710459974992189741242991837959039584364939422966132754539311671187843273509807520877486547635995826549961766444225764414769344223138730253054832856049620513246938938522159751373646728256985367405510865776940157442489817696055353660149082250376004024851846670285804308887590917275364557513451929640914372160330152487060968293104314285994049008469958634650313970166359725325906946858656082776495030188485401442577149784881857674097354952003008018080284243200417883159618934814053766894072075969370479451875294794752289467341533468923676923860662390856906513842265145173309006368888230835389837127890105711987241125250314891176360297702550878769439516260214943655929774699184105829781867825773643825252911646904765374883514133917141725637096023980046178150946217263816997612273779364816481808094895268142110831991349711450645080582825177281833207007781287922346509683506757311283089722666749866961898388094841381002636230297757807781791208172561282197217830302173580267778901149108328345169179232949342855040170937354513531936179267444794469459181003046789304804856709431893426446333952877614126550010204551701778150534932610567631561076419041239504515473072684716422446130647513080145177849200809508269127267620630074057818998379843364777305099758338197333462299667335006694333196801897327604951461943089663458015354743683591792639537822118043011168087257893489655016953492194305454641775425667408903464891648356391012418736823231591579931156919142891512370442570120007522354361941009935275081525864977241712158701324925708031671429769649141808742380836339427771679225341767138134149306921246472187562885669231661066567109245124162932000220732115155157690891903971039040754473106977309376134101063217688551105734225715427617137117618796532245901784766227434376871567069046800946084460332185192194455254605895591850814469659124714866752148631322645006680648815176175020345177931097390839474562001129873641616811302737406635958225262755844622239574928292856666789463870128504197505492138933380634638715519572066570151887062846727685602604409832305630891789687484023585797416055088262052923437902686266323600163273782787097783387860975976130483927024277429115653132265346197028853614829597375137310060177350721776208515247264938236117944690337240158159037500560664834802740620283043624910110772129961809808984428650452991372318933212840443060661351099252443839441368143326483189328311470385212144464887887710894417313312617028922608864094695235062314615319203171247593069298334153602374197560245482001907322192429774718841106404218708258491462137929670627874607093959930146358785857222761631952936394496605970983574105805624002698041897047920509765675290137906059272783459100634507548028869767963333927981755147817199297178221742991069414721319766586576426780620404345080128646531156879342802094494506269479315454078432105489812877832106541698028515643943580909970660879209906689137511803988260322023195026267876629300305321396124759989866008292109285763393213496560047197137465220247566042083126436066563525571783287217116795429302000226129441525227105130568901531878355178848593224497115567276890029192111776074194776251650870184843249197471578584320954952577987693807457096370146932979540842118664361491761990991008266736400117764372415696937727367779912641089976521188220612412231114263535841473701812096970147751546698800117922534437935918860563228787667263669450551129969354563898714876694854047882464811655441339839534307399374872551709605550391066056408910444932805615245078577508922254948434924174701290780433851690191872461259653575017266682036204394755489666811124578890627379481904230706756273134852683633694960597886537614181103114591956970930215381240820851028287662300521386169769161582376956307753481627099052174130358681117943690794947496371156297023656761931326315692674139987221432159746750270978990375524153100868561968652525047315922358628043259522375622512507630524128627817239016270518305050796016624537504113054190251568775244913178622881200865373719440806229844273763115221762176708319988725632787489852421142987362133144439180669689629005474994897352006263553654141582971965090008951973339842997233585936765482546547063294014256426032623730841663906095920984140937786130274787324007890382823421509040310662323271019694659150291345441966227660747584511730807589160140270415871245334654100529211177055040285109663294064520616034559755168741657458613767229082646077447772522091346944769637421525490551947892737580101703267989478505358479184647391972896677633569219716347601690695643421838093215452472471849940118633408819039045762222494488997226410353494284273707912438266973289483595358700545940008210781341934596200807331622119554846842652858237521048578097802436020052769814783620288105559793477257253740568202042016898898363322799077105307654651060873550430763073637311266592199902841005686032270335935877843418915448372844249430759761033447526705973381364795002561729833590173777086439566702846541483452242254355942565442340772615926685306100377834810465377285300513581709179539665538992400433165141190720871182839844219740150907430808279115016445034561755538879827868662169683562997179191254720433313538335063444251008245903075428968365222235352767740126944002166606904122922862702739694408003571626367007465597900104537874315537875075893703579166054820599926382510165533188964893666204103775430344401358902445808478975892366675699665870603194335370204967719429558016009358899744258939172807346064383590242273720130043083657687852968884240685776864855348014388769770692542883997424946976633523504220667503170911429627718118526200884637367267383283853465078381967579245996078738763980602866345228549122763291957896098723411485374601341755771744163607572981618629101267006787675764698726768130420292322029820390382877913574201811112463680811319578084486947929595519139496338534952096367096654047502703012211265832466467957796964087728264846710276511203851412013198781762736365212699266411419126533388741287420396637824994680257602858200154138478681190279364438195225950538252384221050186624797727048009927830342581242486806343283225325281017314876759681309574792975734033074000972511007709646836273535051499351529371119369922396522202203673223265248939820284681702761848232664660419889337850318053981876239016399324648220908005394159575702400233950066833942452442812821003099985416549371204365320510441772446834684023596211344872520080376727277066561700074104075197475572608380694439529776866932499036770897806865453573351553099108491429302036778313645824603800080760854833941516456937528382980351715827430972201655862557735511482632647954905055497531659630062766777962294205512011569793429341840829334861377226057334935615047091059015399311975677749650224406902683552365073241516069665181231403193179198162772545023585046593375617321663568830907030006443252725538459684877159127614591322959240907669113937325591402085023581513956541979678239544505554489188331687223677876988566354963679430618101212931702940925366152346671906308394574433184222264545445421965943756297161100785063253724965593481116006087588376736514961769695311562865821261434958364041336551139664956050530638473941737382663302593940626327338797060751634016201411581933203705339389816100207364872718974296815393657578200698421343993570061664775068890927896980039677162865272042507134810708273228553982632531724827852108933746264688667781952114426762745975487947504225866967139136705863109501742995489025602911356833470777255534625957843996154265964835410051628071593238231029348288245298552519357829033005377495781626655805500792161877320149602975452732107194500774987867558216982318830669208948366432567407518398563731893589546354936371838778220380628576257959113396075035848555891953424063970797384930062097778821499169171361491258693517634991134325286438227416349793244395427250281432282111147618390864273378319944119563053162638313111377674533092854624962358723310132782873319585091858748796325890023706400113532888008933117140300607125234416642496591899949050932367583506273236901230700457402479162184792011615260303324339656137954220833885673296312494188879522585562845443074923137982933763539467266375886252343726385743961871032812260172587082229293226039139025586673167101962813392104794628693599044834562233591740702707873463701117975154711736952336081607067640457527028248820907555593211182146345956906295776452408511370416291015031002438065982744040303212509707865293624692269598993239870318926229912245487618134891090319737238334694796065530860265608373561353660824596912706709831109731929856162620815598392993106788506881106094680813367249723408062427403054134977393466617053109301954800617688416977264518902371138995631378424608177905632031888712263721792997347982203188719321133544116509999031163400223836593197195091244151098073893778063768692973664420406116541763171193778350816684176199848081189823281340923725940755696974701718333123273791443317055839178127688713019923032662802831480292708378476762348394598538285288937830785964238785560322946292830713249234949472444930188364221631582424601311442185772095603214465758704605140780970960040413061162834124712358472042580357573919541802140350716031050751091950243470077854191777284200871263516980174084155226674819645569173666888931357509211218609108170232528890926634047089733979299207193265257225010933393635532956853780141258405797905379633246634112181138371606468816784629982860080734144899277680736986343029097332891209652411240336770615792902395989452838548270148825920403147898328877705063780247507772962269684376441032188272474262715800585925429053489442530314534188391455462392974795446444666443631703821366944164265571766163856552555444481690683320248761340628110886568703202193056633938492214995582645061881728772125869472918823159457251666727269800786294002495384189525672310013823493871410634464942222400246943926886829349098106356338541705669112851249971192467931463522277445819474851754221940854376922331518428166029697355502331690497510738292012569540203596253499326085566248145047448231688852512777935434780324274625574490868938493222015528873290525564252976649512167831967348315995375581778740974580067171604207567903772402405991350350972359212302211153769014616905080955242467051126379641171881329202788647448457497814696582366876721299243070988377591446733037605177244083803166183941344703698972005011986350661773958549042902613169786406238730573614231391386995220324369338461949672923804888954655715120612564019390662162827604049099497703010750802772481865667454139496841212965028701519283823188271902128629028148202913787057805559521550285153085085378709242156215079992071119628588047215919228691634380731902624625638922076479407996797146694669291428439117315145705184123225977809539169040138640048844609464665925514237052037719942400106577989723161583195121338804174145634892441411725046353892016828323192190643971222698556450803109326080677799821982091126082443303549159159442989464954270321386031871741348090944271519520462195289061538056280879104013543277743291100026595229864492278514842997613146912188942424106036756063343624975322749100293604360170874388201661048139306182508434791500019107613430760653007431430606056087044267692376564128051050219901059948161336302720003525601415665068209209719338952961558776420924763934005846370465358301792872267785408546274801897824496387222477694373124767404715848326239013739401366809589679816587403818284988642974064422365446914249325697575856888246999128476411529617859350505346804743094847806004510086107511484949479976233705677037127466764881500569545979676568203031525535598071813238670221317477022100976139059004725602730179534834497357640278174399788058514157026567617701475045306237416089232420819328754973336145177249319366839424913040673968471764003277401960296923182829397227411249796594627790394120326990250122019936329914431047257906796521226363822260838411070275895917457601082748101828154368498499758133300160911575979149361413119484990088219379292414549091430855071481993025165633913808827134408091943816584279801521963298831441700014397015945882186194430735705164224645421301079210230195058085119410874376548807837801455334157329072526220442333191888214177150692235919091400115425312628545878632633209924894073404388099468034253159305676688984002644948280528998182382188939690319635869875517914480701721176092719299428800427904340699803854361504990790837034152662875945617119402358344896972105147464630165808499255591173296012084106368603525629496865755307619980587235503504529776122226804194768598678509609988602536320165114137111660350727015083012140169342020864173309655856353321546996528089017939820937010746187584475766857853731081536916858908449724911861086099683980222751914505334429598897234463639000096432711030224364929321788402044177861437999503851278752600900067230611972679285475562223036542117112595614884341694900331409087973480293018185973455716928558433861879560159652414825343187291965987432313657025097921384695386746849004258580104837789683610326926829727207618954397965428384059955175514945651538281777336246793920167323611673574282218573695345956563475888830521896032785673838165761004497067597048913337504110009268433699513030650173662988485356305763423211298011459234495152323648830460006500577177134940329617781336115997785180826888288888376964192712838685884863785619883799439484224632745632809638302530903035417690641461165895458617469175957095139599743601754932909712700066172187215636033436008695753797402654810686449106143552263355665930683506042715104102958652558776751794391718877087371809068954653464908648902587517414405332499921585408809956772653775878890558026959309959287253620959518260367401190711620791388384502144040633611768676941519375247614755126895202969308093537388963394848121937378050767966550740417172584487834552390464018210002565066820394785559352104391984500170867612699118773110262899140885776556731070658813669178110988797184089712834223637139586173413004257173524842404595751953557013130635227987715594697062148180777657720924429067691756639265517387526168969371938444301643627941251482028206338437197071126301873751810728931353928858336164883014815340302590673179723701282228835724572466869785335534529632302147288631273006426304619393043489157826947849358169609754739310798219270161589908867925907752831537535086494027842152583787350776351907150809747485191142487978814039582774669589441120340906448835070126582407479161908320241396818499924380841644726313072244225112227177094324043702600393628488749641204979398512996618991779462074061442643422062479505528638055225879138912662963784298831335731183597389635624992310446769760939197722225630903589405878431290765138509942783168001568854920440015228040111222003113703863425992693373608994727871083468108884054577325364171137752003854443890145956944945618197966951646907410999240376943829941164100274097289980346599568046681090685396984014050921060121308239878151531461404857204804061510417233446165237218716700346542086234235686244330924776447579963411500015368421094534866497402733056515628133137241412501628695189887401411455015151547404527386514064395391586021282880453966140812538840952058724731726086166414302985265087245774836373259637224083136400765209408096926635213590913233107030007760280725980511054081033182656562164064492647410717361935813756563993371407036083690622251090784663401237964675857992434915868610814711637520908840176709079984855370132592976721501358614226353717752996360727588470919867357408156717754728021120579594342724954204892804070438305283029818656063817144110288462221153504790169598275576923906734577606078648119050004049467284235631324220413960013921689290769450753916682507681778099466296013063763136233566950859647677288505556758180442813099488657613265219785795595348810027454948225133923911677564998204653416393816390966852477344139405540178905934410060682685101117997201010010571884835088195256135878419630638284540110923537275762999133213481388657310040579342863107712524756867838910527291683849964230980489797251160450375128094084264426314240535861071421307626091205993853535950087624842384774636755189413587124291329687668189181959394136916487351771484131660592259413933002192996363668007294092199684973341615473839830291177751901907968508818717030599881189212132679670450596078334240698393373641953069751977470654009012119632250314051602670950616187190947950364296753653792072705858854574006842466623388169693761702927623151128730968252150641253003415969038092738629374067622466993494800780493010338589700307716518820862695164637764329210026806837387136313620906478835587541927046393949626419823275953903192605189618183694580646242391028270586727912955994888057925928235118585598889656295382629835592980896000198400145365344956588256701725472557484765028258190175955782773715279414582853770018549017403332901604159108303207628607270812060588450030620707047602651959831951477882119408634096465733627410847569412190019789473730887458836045061569129102881858372285037548242968914555464795086864662021005391859316729119741031311072793511576185045697131590785039240857405951985559205857413050956681112535078558353786628801809244815330448280914054205578136751815486980579424449163886550227077122464836828152424369914678585288785408968140000825386658200380848190643762486781640241817324417735443766260533245983862792364548184748280630128338814832764506865725107557817562992070102866104581448191184082318988774971223833472886548932351015560629667272356069631906525412434347073892227454950069060838562381222137456698498879295388056443561019147418996287018495095413816812844149081922443381165104494448564585864916965326852497556540410404449622750268048781005829857459759121572531134090718759177623334562172797116446948957728245503323484987521649375054722878324562236060616243079099473200954009608374949110017998067877515294885204543207323733230828126899072177286852105319321499149178432735629970466765723107144947953482361159582900633200521631269927275411441349809130615043938069269414978334872241619094898932234442177402933450030078014808947925177428505991077115592734901036622923464476361091598707409585564403141940457098326618984375469822331593818912772125302272321823341687954127726933978457087051536358694946336847265774112588079182995391389415330858976400651514493190106478084750375852297577480739595063983711755108519245046308601977186875494583976839575219989440569686799945554315980315188969855651010304135669691867381108570323620891120759823782535978219314365255752885413160624078030430708181285771495682259932750550964478616670461793780551464841150744695256486339447837045790650202492442330808683095141342686775436817977359020545913543122617985665127753707770331114999557360327738147321051650271211716388434842900506940651973408452428003097535313234804026943434802028584307971850977322702769846942136474312501884884008711965011198835961740629241113656542612254163643545002529793725435491522070412049650981422069309935879050192245536436254372365840901425706124367624149419739755189248666688459123337838438896390680899196387283022017309085867894019987855812564233973915310854043453572458519970985054676804323589696915224931864303596974048263371244871841840894898083572768799013011927634165311963084263446339226044444845375673601731427608413775215427313478585700347826172402406585092520907383693910741837722708183759954841146935051478351209162907013704740921045271153699359125310142713024963045828514920156197215400092530504744338145120286057004335613453210389064799324089520355068173670316285453960666027229124992489472101303045176583985956202650981421248759354815622160711308102063057195187188968904292977812885906544555137511083920203268703153406730716210487491468100322664664585454233289005734393948358239795452792601361990863784611767724339410443046760436859162313489086261305374255346475313921343193294102653615798319697108406219722240399699659710016964437560539880443325519900686523349855066852692532011089207019089607934289111363131229918865116310565087984740839601864664968710453952283033749228469573861339725688218919742585153131240132005279339189116340226940583429316777473636925819670446686147160942282334894490632386895795253962879734229202819903740009743784062123553543588056453845266596607958935708939622297875675902463397763147441356681273016568223582724217174824182354775592570825190481883821810222666527276887429340511969724544219017476198208260119633177267348658330766634298350160383403928828158077100981735882021468357831602478975043363201518313285518069831116251476892848352296529135511939009408026295774003457510837067070556866690708064432017409002643244432463604579824101523739892750382611599739847848496703341209470892084564575072657202255440919002941834278515385398459681614009342632505152559730111201689879606565622613647530321885878980636669406490541443304505470731693137186731115159725207555005771331366013196571570348501957232911728321718437978123985099999045438486711019059753248087647394636956578138053682577405239631026737835264725739495398107652130189877537904830768571243183470054146543381699870708700329717296135855680209549635041098672578833544508852068135272193958466333070208993136164335292039018915017433774236332901175121146102026593107335156951786872240790189096506257971996677882125315188201314726965146717282645164946438969564534704780592120343815365867768647784408701630078806155143503943132415922078630120674266571424793590456327313811381361453539827493363822136558009313537908984717150135357025245758537670527935958710737980088740190383675584578974326353238551760989487655796462536853363347347593237269688711597515290232263676150970555869892434059918698070386580287012411002069838758560592432931773782226794871131268640958178051250215681403875068343134096532584291327012616129265584066771606491934356203570499859681586805797971389790929370291370843498432827278054195312703277321248710046917891840378903987341662996536814346321738193041441325474661563486295569596246745234424199728119023359469819685639957662029757362688995839476296207159990759723810736406714188459224600749600079340887751582911875750403231053861366438503289830310807397912101696026131490675585670660932351650483481042834373223031167521170173950633465234372533040810529555413613017272437786709076223647340994887255340290293043436177492783717434326032119258267530117521603988364557236013961652505101018138209775085730991438425917725679622487374335309444636538711720592330935534278051099783897028350626603258491918644172812701538806187899889467552788532390270364377098498779164980723896662628267399997569456330544553887095886361971011682981042650532992054258590289818870866733983815997759499204712898279224808484014356237634615594879304566185801738219166585206843406715329751469052834260290523814237529105759352351319246906385633520295989647534533963016631425675412293875822711927724112412611499216849195711062539225434956825707413759535035161560125646357227215307031921867052161964074430555145534260440133224192042024438497113174423076180741779041531791333931028430180567851408282418216115488017356734595361612462175733692109186661556482916164887740822371020325746377164149652253607405757340532271919537827300753277219831252875919869185023892680930424652358452356328157577593157713522550962054267262594315714065573169635873513192281895012918796160661258159107387126027375886072057590524457178713152138018300526692573111071597411907012463896763623055631636174036422752943117382694784604073137474648800502678779694395603852511914273215206547012902747620191237779349223712332686580469881932683346765636832885240239523245723460338156992139431956664753415480833972469739958959314531505897712475069631238255004114994865336307745752942044131665596255473314329032393808455902516713714176540950330636089314296469319212427624331389498856711955709264276918531014420917701761453290761651997933239242241778481274068671762521619416852280887895177764083965659147061685424011048459681869677786099536006120086677374467409764148541482387425005853037264969700246873418612569417145571002890639612165344875369846361617116497240559726583810924486126712774237077073522619013401928969548302674977349670801571102793359939923784400968022737186911116459877172217204250415603689273299387937253043896704695886016543913660192827735358988672052020847479838371971522299062808176503393969052217842048707443037703943574203765736564496084336988861434744077494113037584244034331172058966765736742543862354746187021916026216687459762687287802925657810997106005699202988056918828291822141018672263912973240658287608574384457813972984193116271565620157230104264500664770893231400278195683159157466197468737283481216468672933641325914809850510059630924992803549738991016899590367695588450300229598343998776692147680803896516957508674704832025264097667815673323254083147754075284976680051336722013676793876660037209156072912558936770877770376834182155139689431121347821488162003347508813918259367236241660255481293300263370667811453600613482149120383860908911331255461710304563925574403552158400440053026519399444783149371073745628268483316666985636653379611048585371671043788160827343129742448478460939224244789170081993856781561721587025989163959879500547325427646402987603477531360380134250529363744215667485479471549401626929927189404875430689715244490769191320382884614936675315852707729781297007927235842623306630321439863150221335348244262869513172566235099519735886818750413731670418431450060454740963063518375018666755034703212710191083677133309348050505669895793430875527668092713383828286672767391088029679592828735420415878663504616875912641536970039823921040916519365666340746271623725691441715560406350720906778934768451432661854073332650087889571499362787930413172235960368155738155176054369998108954532264508221227741652775326608505015229849922340407633368099604315671321656466659764066441313827380935563375116863372602763736487923663604688558815891870724538120893636891995905210004145687029664613430935515010007706994879671803527816473668736424960414438763173325952310275905748663742001620716833856851510817739527318933904396357625783144882205536042312138971038859238173580759468006079214809146136066820421611453103529184138649386091678176108443506999360061771359846325904966928035605732903890475493045470399561896493416678429229944170485625993718996133042257811827533696254574889546451667441215451157010024576298949190539584274730733721481483698807902003177388069500799686461650103329956405908301021491930608115812492964426145359301255245418816970107662337218160163388011370242333272285359295736624835486067128757196639024890396048161084367973550799510928641312042314930169530584804402105633414767165115391649544129503594725263171236106588527564822244843761667255951333472557302552037523524416447737259139581886765963564334778599744216809191807165084779614620974643052842703708808302413245906246238068937645633795169929612141652307855271177629759536706978857154424887466920376790128810252702864091463931406483413901288257227268094587029994206107429593030055370116865055322100116014630530224100125997970577415634864971130005501755748676652936001527671215100784848168789236155966021890574664231751801292104729065976651225191808724352161738715284478241654884870205720255074264200850070523697983434634194438097416225248467314900208708655580965790414534195458649782879774504301697823934629689810460002579455504486364557620718651676076182726675758623807515771471960714711796075849905718141788529469436421910130677151774010605972674540359276463980545947648122366543324597457610817675573367750625473234730210985620165564991413988004773819393611564753256381135778868884439515026723777410913598690801185065657271693415353648077310261596127901982155689956668823100874717836957901809662105514343173835917220313338047217369435207548132590778874834220734396414998017655776661496946773189470889893848531189135697390208380161403038123856676518384355336484375826078478300198703443147878024659614082384657333555930504626102463931139165031540128307934159671962885389878947800811568475058018012496629434085654943770112338573192584089215123699833142535996315207607283046741856150497285289192714058011334697106682053864048281132875661616421882661553479787662121640610140508886459977991090143444867519917954652911586437310352607956206794827013338081054949550400544625298655922819645011344622495888888003658809978935305949444618243578358277447888756153289173383889330041430772825998892892038352044209257945061046868298931914698524157897771755185859504585572814745639027246412934106922884819959024820532988982551608456020211992720365370969029855072530297423045876146271504839345899746330230264891000857400852717726869572223414675887655954250765656860588862535753073141750852098088667390394986851368851559159586186990416464091046940851578076172603184778425969900366992510732793555271828456989455530783148108112428008755913772158579470348339903341508835615700863318449340099119005183513957229323653435486076952743711903580745295723510287634970730802117167827612398419553300899515359056738330526746956717446109690113123876217207884630910477423894902182011271072238953403308319311131511653093912630008711878001320832193814658348307613192767832261096555486094255562354962077423641779404566225761057699897970540202218497457222802232209350623083935764043052033421536203702314123876744805703360959671528292774816767403940871474807394111514053039390118276893001700705871798956391440596982105262743025199889402393973172274737906212813318347649966620000828605409413215339816650435085228490604309720454549786134588101876216317713224503536921580301092297638704862134634351771932036568809392282117018453115213154439069807698495794484836677676863042772288737535917735302373161171511341422778425517800177664859289310778815442911234647857381413149759960700024529990180313623482167245649301051444127967183663136654735235825528366369805183712914909948078408885644767358140361910934079402046753017964600096876400093677385231283513517775106421594618834970701524030063486791115381782081987736556247129526477371620266593895198017156618061085542173737554386834725981961645161490582553102994853915300832392373732885001405130570591830206745969544646638482937338852373613232894933743953345269879546248412152416167385441297484477596129554371719496377758622865626041931044282858537058201062047780608759401261333074490472853834924714476378157719919452162764895629188626796865932488190780046034501269186065656509773437751997225515007917098571337164787425469991801982988124727446583096763163614507045614844621468337328581069086807317202390620514094536112143223643057930665860431517362372798194312518989682161080064894782979388190495866513877680590579299723962407687881204812916331180120899187304529276868893966187545262580602869145099698685303156986032254740416769929191977968615224708918160587341776078668635971671465215126951682739084630141770029099168052846683841640376863954241622288305077552645949520017645146859081481900167560020472045934064398946200045320619803792948797483749118042839645297959266736261626462792156647602379733762628786942465850678564848860316319369199263414731489225830713810752947064677998677481650098238002751089320657245413286184312875177947917822578195571866676229114200947814056238128003412745942351668334567856450356491838785288574723952503189702524931946776356725982879551764624504128961561575296371937873297403614991563337256289569523617395095630264457810141809846251867587224675613896591664623308838935944138424721200727656227010964620301143523875153940654073818128270900105113201608404837077044677792877781075350609103250517448565751962966407919279834558197405222524275702822234904401576297502982786325563537316083957726607661166473578177246160004848758193530400655715576095633963561612544023788857006686158371613246816425664679540748577693074881555452617178767833892493542117535691115345194155379804799621925890668985823308859317034147242012085859150916139624550229658916730552174757717487401757330103104217305504975806005244051070383793506516343485490749172354987145430509253154510679052597786941652591226647370551798793711967054721058694888133837403434744391245476774829651836367940212047553061475067453157227787217964010122708462942966879708907457476809662764477036765825701041962801786838250373846944881097143484617250018758360121582814566720776157528648706708251720183881901957835535293478015596143450718040473410131690463891047903134333160336779639292288973286987249092492136675148509603081655717054251940039921724395725180551764823460449310622518083578483989122628619738180724572175474809045739576388799583071054331933616618595321661204594666832118385738161789149063656551351523184698572188582824230030788727874294246329084884182876611406898523612090373259686771494085748666868024863687260946966683239568875919198442360199128048601360081626927247770862233974625882035276620303466011619772192203894006773165537272871831410282108086444345170938230169690080089231216518140584628939862778733525947948890863014764970746354206443902324370626409661142662439476918589238301495694983579242898382554908960838506104218202091225226617698495128784452441026084735938366516639365833609951163147237834710460023456545312051579608092458847815687615612313100128628102568097214718772794115056800816780977124270726587102879010414325759951514588662988154352731100203359168482058980753129404046983228523482256637909535420965485433369342849587609777488197154360321185639247764664781784611821037256905633864681960537551133548860035039788195959811444906091569415625517427186576460404092305036294200947602490793867334091098796668389106817212332385555664751786591720523728418213065202839339972775266518334201118824979832493242209335326386726357857932944589796828705586237466904522624297343041913018697173430052913222237290686838944666620713940763851404049691770172461100374433086205392773570934716350195336031787483736354733000969265717456086366948062564196268055214256977132545612009949332062620320745823743916133774093708504535308208556765800898824926653682907304485601442278745072534769305168674262547938754767293490819179684456355439273674318536396494481066984610069873111616320484298882342529398125643409476634176880048233662438752709662259479668710659990359478219391152831737772024170187898218428239407533531078981770443077258515350722358637849964314650716991646826883477014657953745079443284296917073032289687968616343624776228338613428355601615601663845554992117639780027219461825488763471115371559050823512654779657571189885555334059568491147566874186698951268805039085305016954632031983557374817992875653510888238579194875924629377769275215256220121416289316642784619940606134639420193732864930297322293942370124343898058252861205891063041622225469518597074627530510625344922162668579682642694072374449237008644671061660668211361834959692729958852260797155484699645379989310993163200175796240751495004685190286249795510973820246571040626701425701798430744898180563702945715979506467695699182786277933296164594872594603637963301684665595264338440968063785438346639436918832283189996981122246533394109464894171856613086813476685065433661014071755615338996093586612334766541046736562181131149668970311123418374636563979735469322998930972576911361701570976197344771527289111772345816972552482743314977699336432940785294964159056365683453545266213895632029496665100524637136819998853298400188949781965772264066211459813318583586060084882558747538958987178926947825942111170517061984929467990681560928341390251565951537579561448182793901289194957100563019031180792789055289271357407155050009945814970756143768590610174665917197419773952449456876852196581131584813852167568727480427408022127230621545650080242890677463043284160838131294016827145571837818220876556913058752495001428230381128745623596182354430007889119367714062793597451004693604224356852785916914475268934591673517106584338249709659477260133848308174377122239599059465953991141240902324970704277656947719250028697752000022678223969249794980603224637077220081041405958249655222956386152671076440379278020834469325061524472193448859265139312214108957109644502135153883754286571639439765448684858646292228017877478241119042412472916578585202926871121608097320579448926430233431874026517601311105454390564046725040596325448670925879676137527791532092368622756003996535522934833237652512027501810262731740575753236919559695094348205592848094303048669942874537179588019678016936969120440236956874315020718678475630553973532961890526878345457433636770446312940716635746390207837551258090308518764545816436895177190927307353301753727378976266307120628734079782927426761643918674723211420513163168733333337810653582232348725958427613890604589369979495231465059947815789979041223629492829369922084905589083672063380143326849692385449726941650899841259480276191376221294600897803489675755752934836094238842197398421344356135599100810382522698939535252649338481281393342315255126515769138703270221842850534752920016622003162077961481974976923797234705603707457533784310580742978492490108401341802295584471622413644278912179417409798548241027930260571253496757740838332390054801121042323960565420547493793523946749576026880671876667729920320472530882839050834068383683783656923772294880482772079286703435594639229949326314486235680382933707533839021960014655959201743787467168907234498956249031528710479251450984116837298204393505635535031639602448181062284591707481016033186800344911046941848526678642283199993949231247997640028738313216693492845060610294259964996529562227329526880059887840726051212036952850140835437935194674434697380935786675466437407277234511601142819963772398391878276845617555871578873560771640840343191920548574773139587029809857904896125145992671553603429255037385277829258871040838293098791757521746392400542707834488793508717740024995396944258682080553594171914452528029717854647821292352105476011228081867522561056523695190791381337945309103917393888456554660307812572949115566000662883778551566525358998526554542869582194648448713021974843738516778431811581837015705618551182799149165475596951432570656060056123015923080093730879442140368941845021278080481058296396574466150115150296784774910122361765457745549622453664624646164340273288064261590510667875426836461372234387766596206937011767977193113751047469367376835173272694770095426405829796325679767989622190839351418313660031908697707739088209751392543744685574134813964403827975667264817920598500101008933936176185709406769134347182499105034222962221299529017613045767159202172113493672794213930419251248887434996299840143494073473729650922338555219990138036734111801306062939705454454221546618787348724395775533185224432562525947493271168083712022275802637253645904578622561427552519000868616849409103050126908825127602254398143114363595246535635750955626056748179805967258666490959415070495806387941463877674283316519425529352447765553835334000310412937938101202103875596553058771806524553623586623442547571505758659290119315646304759405268213805014178666179504412858925208936371532020151551767040045361795811224511064740144167331580162072953344959161851709915468957812696029698313875151362790698829536574482514788878793722705193112281180656906230058111745162150534596129798931262935716518193100642442025547634152626178522696430542049975497459649324621649564132641579755560915783071720792993952711964207547914753547750320440821423093276682980112446552564695048007161985252685053306357641083291752205077748975769847493757822602078805524179690388348834788789611949555058771789589663383493822010953087902716458966867164235169019684347593573822695073189709196353998773362014139441531077737309473610656190224742655599199589847739990606634199700670565506534436537468201614013223189632254109840758427578533997620836152726257034276350424862479727892643790332832689085713237824156784955897788364464835604456737183559634116259108636302641382362430905501200439249899556033551903728652703636521384087780774192686326074945595345912295556297542716153692332107999845810641611272338750859653735730005255541654740964619315226719344866139087225626155210801666635189746626270055742835055363556172469720290705148832976003769009545161952522811176059820366045508516427985379266177914241851157970125702748066977214565604061201019317460353504426480510608466098404609689362386773628182427799320395693941832416999323673628583656070909096056104094748203240814869718788164369071933778978525259727189622955894051870691924855363165872963961635706155352741860107589746285395066694453948966160537944598140870120879991619186455256424871967188308525762786909207217739743953905564830855130272722116104617577554938944627898007011647888606179265100051377403477844846614836763835582010175348711875484705320665496448345754898683026243449994369405408383842223232202057124575137122022735972737006496585539435618623955026994142342568900614985986871133651237108512995924137869167533861010684366250352105086493487665214951470119452747070098186763521317783664373810792421723149790220389761915980000965676926697819434860751421238525558813249730243139211056887909579499409266880887471346076093733609835660924610514125278417970919333740683195127958641932961694748985418385755430682666644275988721009916818427015029320026021745681664271773438847414718390497014223014071630682018733705308480295137788271383202468743663045449775903371693858476342934109419094135671700771575798978209943386849139957103834250630898524272440270960928679608596736243955924998399317530291952353414761974990201119086565917053057648599963221131489806009385032222209077375511794804026551421757114544154485384358085447688996214898417166082845266360997555177427331595880064856570624519703172379630327776006501265267939722303827275790430735473254251280415089267693698539048930678245207293223535906333854576013137881288623699332044277145270569153037218592309591120244910706705679199594889227252972632846416018086965316629724720802388330173035442213121642722289585453797435194982730570215082082166515562981420871780800354869639426659997782806164424734583158635324341752336852132825719032662691161145925334250670956462243163397556326844505369140622489498159901407674553585269388130208857958395019001111430022681622864254608455721319565864725720779163453442306646489636457259165927424620303156404282665211361712111346527171218308174119085329830926252261669721761224611544832275096210038947681301541089690716372362333831571446357361544292748291582992452626481139089258127030381147825872868769337163229351013560029279910397900684284214039182081378744257855496349937094227172541478408507105295773005361916665911665539302793773018959538673199289217098534430608545962639119291459003454266743473351641445415806265708441386132056103568315383112178335843796873007929042372015905651783147914323959328888898405192480795096152275313722135490757127747236029513192876588470238748162941241635036623566255581890285499813170478636603663079906798309428343196224957560021430985102815568879520516772113333552909250117642949335842387303211789181663491490685365889560153841987180620427991355594861217101523081736725200224781121534617951913165875355754629661267992978822232662003181551854826169005880714511548544877930935658125377247054417564472277101219486157728395501257996806480255702025775139808764452347397337300144814788649784816768809312017684440684719561317359220682235888920244076782242740265159032464784264760704392461777236418646069251193324245413686726515422323914073299812842181578586186136870022206833925516346879523724681447898414145042176410443287062658793391412049410588475811563488191483571010742536083721700554144513769944764733243045134538762449210979349969031882040761259034037697607137329483441108957475630524917358727615582542017536614366882938768348322961639593472414597933648940314230800930668497315008420946432270117423148876566614327322808929340845589283738394140490861862875343811914941826782701783456970581470341884961164847978147459588113818400408619411206630146162753120497109937874242447206390290642138755548075127043722610618159232218330912792098571060320927490043424810909616828264085913111141333261724900004225769856884334534037172357692847780402418365482260817578234210579196310585600301170189941142446792942191701765867183070723739696711704170856584630608754343083480871674722011758605580656248735753141393523537471978410032513569959878661693420818754229794622363860972348034603507652053013923168785550872207096991293080434079325915888715753776764552898767293132280808209819430056662422659317633531402321303362777939746383382507113505044130827127202342812834446492794327003798024270144742495388822518409619755452121065568124579830305010901960676919969359435254084868450595971187743562362869379200196132497026814480618481752210267329535664299151892694893113398107285381981798494365878278066253361929291785711923443574339774419159201767301449950095708934918676292775288533049425265886910665061584164439674024867574518307678707436849689320130490293198887512310423239422282647619662258175475600578574969733192461520509961870055606108584664845318065172169511257400392784265630969091929482705175859567591131427889010358826580327876685396678289074475802300247495363597041489821808699532445463323268351094336518904525265610596938276385434871638735690361922106421328882441617060320380612376153198989493876745154985522805626363230176759300558807966694556491689266145727393868281689444932123996547704725003633886978869767437722180285418424219150727440471424070896682761804855531629253106827756650822894491828476537291473000753419744152538103599161498970872909085034162019184932981413374758816254708010470562845898555359230398528656193341269794266717331711822674053139827120475737255587487872869680638519563843816223143378794164117459611080858062393438298281017161539454047633432865007853167621262762703375511506969829285865097606575806263206063805134610316702247499963072730150812012311172968918943765398805600375684386926353345050102882798515837697450401838773341371231533117320038258531764002785996209478653638581292597611734766260365556622427701523111916221164468421570350113455496964620858767008271846848608618321234352345425268828955897598757412525488464599543579554919505001674450742112623173604806306189907966239489996588645231107546060927277969914505251083682018629707996635631613488973321432936843761960342838440367173561746010275217105488663037102966056244959260236269222931933997250353242315428121962654341045781074457679642843048082261251610121480535241117406673430675299542448560833965419037610157245051549135086634521107495545580849882107417199442385236241618216822106152793905375396984910147346635065082982509349611372943755080276159319602914359676877073349327564547203082092359279320658802916984972743765949533902069354582859265413388473286996179066737875421040054272718221127075196334017526932816347021445663915190761383382683287351525879925696350002199421381178890769658959986347457561215170679459879121574207973593961910952079077597043419716145142192499754127463694534541469750087880696853870481796944710127505804966225545755638320516112595727259583178285347154703394588827815655730528514176773458256231916021603114073032185772121514092712803081885390651219813761681158708462096613924675497957296091824045640630938045992891330629101335411877816609038751612901367782839438935772155721926334668053457998092650087226451933168648550756212503294985389301584940550248510523971827377446293824480860167705939480850559971167443615839621396876242420722579096687159469925103982066509196938954165054819013803171576824555283380725756029499392338693402907364558838948807587730043889231774866839490264717621482923545935930325489981450211808293311417005175365350408967877529832255412884832131759239081644548998611094165621811050001967726883254281890806594786046343464699564654874989818823797703321895415229963989526154796162402120260155349351629321722864767272467464251622262353591283682074414930270915498889515567677123260129386834682707221902006161649093958920871591033142181715830872724705255214145643825323756976674288718765176664888053051916521791969198963158586115389216556564158856925906739181128018022582664013926056428096526451466452174292499128932140246115471382859386537312984918472321570213003318205424592954974341133821972250391598135574553624218468148571662625898130527823797422418252750159062013463160092803301008590872403589606726898677228948422103616418945045236936720369392453124828694522373542867429946773015991373222125899787635794123074357883803765783055375445464779537770998823775685364385651988020851999522350668839455664242086532119587619131062944251799548100861801860475897502058442116377783235695224528569199770220832532116857145264384020031731041401884131383818119167931162544057856449586389220636323588365603660566962620074024970103855101425724956859087141671916902832917479716953841574886684488554580251523577503805731157714662892494133614160171855212130481525160675482086929029604427908977984665174372875767503504991840963191269248483655399515638784433115451254982176923096753870831379383567868774896186800068026938192813457054901839284122946470567063592868521499707967400731931591914185482286965708225084916288651576948122948891431567675716499146676585224566777418182686352116196952122305116751848786695258248946487882508069351959330320163888557955321595539167453148014904741572045268048600686106198132880482289919086134289973816312514104635853757658835502501814333899259016774697049289419508313492667788998211946328093085586461667591597571556488376763214893451437684554342264390510322505583293584828377708692088500425202348265665815940862744183631143097545183645785819990278803702949959414426423169306386740453873606125848637557490262538291600621659477280321795130330072884651978246614835280326841154619832751713592492424780883468393365803717363436794364973971620268905109434166670856270754608856795622669064763023359344396228292185354919023673321768759507144516830848407287187618367103825330344266589688789732811217622745814072657115245338634917471102389654127727113280927807478401382773422470932580012732459948045195978718255273833560868794341161135040327506450007883805678152463540263442023862144877906653742218776941234045526093066041450405005663265056296563298757793652708736655025422085530414313770587451100328296034373358633048821604631684835596515683393446996562099167175139229649412214297421805052980702242098197422790639997787189383166689714630523413808969903817835491915720835398307252332493475107696613515675055348706815081579406025037304213469671155061603952640795217885538428644717116205640273972252492720477337103534918384549452510233196103225103146575558899261602502007523156884830396380019572956256897076992580868622364487957296551390537621820626848340526271963964733132893611060435775089967504169924823538005961312112239112893928676256293370167969860694399086544658495222572916527208201319065268435019691047356592959688197866522170920427304267458686400591181410689463290299265100488770853355253857029297822782659239596338558156470841749757762522203808080413507292326543585194734874663674519070494992513177023638882008545562864005627122128779958248005173252987809494342286050590124144563473874811330021510616899454721014986448830089386136819618326613942509471484460226972122653779698587131367604165461196594362578065477255794975641977067925572625234642852590743655486075123455305835570061381340953909511242673576701518964373269125736977130621279314940248233452838078838395565644381669298167100861449629561380482522951031065864954005074026117018150602802668919824939804931175996244225074698634041919306807037072836563501267066868912111457434262913151714777971216980007100920052950949840351948826365801153546890241693892279734895115972395049417184332542127529826309648209003893148488757729877629501611441403500098933239315552600562476367026415558818024894512947717616273218954130532476381294690364622346435100583068232202417527130655626831998116137361318450525890714919096053370856415739665296689772372974319783508436572615969041375373055343203012130617911758623456841610439077792247564360880031354280376292486850612060444663814361422852710921367316988886600745380430018173884945801504117014069247883996585359094330925856851623165224500828696930691124214443828770482898708747393990700946423326870010663016761756685616514765636770795557745232765801749961937542682107266350655768962777528150642235730819505968128723876524569062061000370431185184849655162419706455280033303811702641812190632664206583805446095422423029309815563798257712077365510172366087633803558708069456099861980500690050000576000108765665416058250910024608914480485384799690124321699778489950585585137524520981952609591268898496801394950900288003251483171852997694806925367970126875166471587343197962540312374624483780422437551504252996451601288942932122744212034612737487682220976200945919167136216007242566311992476568285279748549153354267432661219683946013218580803938927605937257040035101825582549441147188101318312016002337227824462259971112318640855708333097335898038870398382984454117475783637344542745727868721261664787691150012964492445680800744199990444671754219074139239675566052245362314597223784889678766883585506219217140652687298291542055248113047987514548381305594098394189881795599479446435072148791234399819865272292050339705053325690814444223795366896526180056272971991273686282948560960291646427335445169355074201516938888342169421932704643232227060993811404036021315049925710331272940349508074391996859055682308171660936460881079624967799007394518225356105288443320072908379441016640917076288589740248724535468121616856595882304476865461234481632224564355676444076599661422155688794692858811361948815967417914429427026882250926352481801133567369888427001508793158736578505422774645222988739955986455603322216615855885856203120356575187810597837748801947423917553571338192911097371471213872526128254670608809461938739736859165470473014020557976218212494966084974766244471260841403077154191137353973494659490310216891403372055055594301761674612457125655131133613553952707552889330622721703004569906684091928046910534431117094312024812336159660682917629523298577438015664886119691188345382750380073484007439769560661662925078293288575046407799178807875733594460795549651168083044307575202334202150403914149268301844175549899483782952415619320052602141721150035000667859637352568563599360414145582917730030071679272137511943199291909759092042312361588224151613215640217464498352281467087964363860693120498422940426795699637334340604460847811124135815807085703639945732054806099377944384823289496001455423113833977790646622246339971568909585847759407728296853997736920506927103228485444515770622053982204168332533676319220278461740789587281364164575708536628720345308278059595751936529261494416451278786500271352805646614810408288979816523770410098345381718081208144290270149769055229666352462926847410710257876458309732788057006333807434210022367804517231662328781240611477172692155059753724614116268586249372679255747324528092643480739638948037330533133907762147972794872967503719804713211903074170281690598578271125840901740644277537822872917097108924470615096366239061996836134238195616437346192350927788569638029325958724635822419367670303789149634751191689221752325193885614237465427836030546720457137265086792792554652354906857270591688932500581845401326717043241527945416299221303630658565186234791556492897147316862681831841769612921676351598995564120468903328467625277899113284084845128841361792133643937974697845932801173557212665764727527237229719535264645164494751009093395044484797461873220248286710944166460510275343517040345658144628479129727672081102098971838885914917801846566029546703522222781749108129850357493879566614442694860244598899059558947461997421912444399837731632753561481552940142193999233507205265340820297905270525563387746299013329816087274192721831440545580562788507928026722737660281287185714928374176884843997123305455410357228602373111056720737654009986409254545296096305431412638868629251883145621431148248592739809791441695210633921457066280196422644123312528838858339971749280169519980034353925533116403451019707175852313460375066599808935710838038187748864170610954355611534718617544368769281459613140244757550121626286440047116646323360971204916571014788952758912884365805999851256163584663231019631695671347379073611369551234405619334257444028575839941473998633847714083630996847332281086887695062980134034562025332712663019045413053041668400455201576171226317123166085089350102015389901094807600019017047138676763259462508283423532543052923297790267429859830070470167211839104631269007383510297950503188596084704029560249372055366967459848736530924429477289735329587606230084985121635519044389764376241149733116061290069822499044221905891514745909813247227826358232425028585455604678871314041383069074950489666857323812682658410963134470525001287654483338757332375416982525096345747205400889141164827754277096880709068568208574870262915370735216942846460546329361042184869029806612667349219858431189813571567137647556124713274489961934839428096726469919858214538168663725691541479706554630219994223009927736258173296984050854888828252447863228298331359049953071124708827477303509294882661804022461421495790057473008597830533439791387633560246156679127961263730302567094432240950174396466726090002400157716513071773732319627810907750589599145958950010307986005797797439066142213766581065026466453759505800721445680155877372707616235719954297895529852600823703630787775561233951930772376898821578955188663746303016918861826087922361972740812492050459838973014024829424081627088005924506929714865250888768681512872282427054519955869258636930728657157063726053150193700300623844452926256814882431977732156708612500123282706655849285834860765355453240282224967549160965012337950069099308596732752788671583302454182833535579694294492423549609116131087112788418693920514928336226252578736095432259695880756841522803033171079367135799034256082507745701812829870866633859241977821541228447805013972361239192901632162273992503589542208503588347015604328300979179182070719319292146668703029501957288681260121373746927984494116083073987946274108675247946337963240498339802348520073567953547227281818043270657237526663672155713775453874016064046024895377456256930013552498751000156726533530151829691853643882521483280193386666059344860308276514173722679653088851038228680143684434355628144297931245236374675514002350177830514268832783516506929011603124169969486738504103081511172109202610442646941192816139449569147491095227177889641473591292136880369064789838558238862364179690142915883845523928507894793684408234355271717329563593026392408345365317970544813638675216739794049547376119606425440227335317421173263265616243181797380939284434444732934218804079389235839037817348015777234350195266449783368947870268463888263691502992405239412580886688232837599090682115293037242976918030693783846300578385689752135071109399568904157902660684462064370881954621085835726713979382466430834013425047117852216697062838395171015997942163300533447677651183266238736910417771849078887714308947722257296677512810495038618037863954562683777482325882256318894324463172803037553384801587983211207353335156990729852510260560864852958806950433651198645063217379222186419444037987581601575053273178329287106898675795681615613205394861905702494649291116791813654867885015516903228627761405005173997796523165241799974861142747223857630835473964610791112594363905553371541654913165038969208628548609869863396443843870721424004212680821042078401098110760796372756311296944724473405642565056519259755478349718303248386645821738357540188777652652120485071844929715986741253998863962342128965855103027544947481576953387754605006085784955789734737270427317178962149726431736507614594711411643292253634511425776429896833781132733673713381607961361569114400751054589716273052633509333027549104145676026519117914393211274123255203595910474956169685656728291243876522115135766368763024841509439438302519444316207210060164550985724397043500033660650810508929080825038886104193226211763482679937355496493933983658939329808859506331213694478907037422217254002718037839621872527765145015509001601154325831649703422812439733755879999282109867163697475489950667376071674012887818604877031751098301257251997138398447806701381361686227065091549064934721773985639538192934729840548003366071125806576516279389899181138067626459376393942465535920453346186259047936381035619691911231068650236279440978570646983921309552322588868274027920563266608731926585647117986322790413223338713352648366951952095561792983936643086786684140344858996427185887792629186163410662577710132720042817427568591972737473442538341313610295224441272425055899382214403186928488751972964279507360088938619434696916296774583455485413859639905310218342040742838797448334844408378223291751719567406841105270898587353676789593980622760645725053245277459276667931368328856371483126330829407149415888632202610890807732003915973318096498094617803486403260806868178852736654113248051697289266579766789769665440633497053174631274766274726284134757154446611492877595591167040519444956050178520047609994452821745094619122959456899895304913093248214668774792759665897705796370618750141315401688766262744813477232204959677477056583093024608216152819487975830055381182088162443643104368656481128241566511511856287678002367578661927676214560561557096351592351357208216493493395872439935688976152887226979887332878735306197606270735509073206834337604561917107321317959279661749879869739317584878742993172352213048429194344128839750901580811771915790810748379300863645029059016147993964786207759534986426772304475042166996332627200725041644365800856705437371330069422361733639710038107509164887915039288646998662524066502474894722142471044751983962593085088742857181996357526706353845366003423739917175461559821150777594723760761847395228711784665624674270890473350393149844425241888922118572054038174812620830779740614228606092781699406969868104990937315698778348103346975395411519458204083409493168058568123847303290760040815521536355025696432497095589436962649685897510618097389967943809019077158805094782893282893928727555815402206185948626196627364414103419950082651790994139001067300150584621846619967134040976375369501120188375850270562064181568180934793005397497068529373742881633000563416623518830213978044236384395695044516880888423447206130481111836577072320889596110357070803960935420411037464217575119607796406707856317686440855555975101140864500490609021836664176617099634628054405167632041462992315890067977717133014673694980946660762812927562824865367505567827673552930358332995508014290681412293487920558621618506506234216684041065400305989502209720128980996601280942218461208356872825687326329509340212080096866374591254860958247591638848292066890117102954004801964009937079811924495502829997981629485374550423893566550687219997512026892799733619254206355835282289911961282388098288422139870869113128677317858012575894521298671354180589932816386320928076135909163918226051490488677725301212270301882309198431745763456414344108562773053298233397577057986592330114105524663756181893096815616410138382698623221680143606767490447467666540627624294518015890630658964932084126830122496068451182555224590901545446704118329724734901912830112058999083111845990625945096426689238759587635064971450984188440180424084162529622351589918322521625943494038558537204951907524541465845575913854366671921862450644852064576048015700347778592235187517301846425060875155165205563983205854285324319710983523121965963890699406836268608912445972656646334032368020465322830673700769512632066256487501007948633944260475472955170115619888762180142845427740270936327191071860813271365303036590582659307298084582546853549034587317594379725777804531852576853715318325822748499889904763315068718925431232315154737978113917312022816541361173975791449425909595485265122038682278884152402302281800943361099650467162431815564753654767387266804979344084029150743069563343977405144162063757519324011367082509307199781226745881644254459584127083726258482641262471843235456282406572105344892526390754965448278097262044424119669577546002350871620207296037093524228166312027996244326026730265733986817843428948381606109141022779633617732294571351908603436810024290226483762247458271980208024642066902803651863889862730881552804601892311805250532410259125466238585409327267655998333237432193468108697776397184465487075233646976319340066070750633833863730935128557249964261911654704684887850169130739352770423485236853139984517343385184402594879860778054234906565289507205206139494946750493017279522874200401202080720937912091971967004719088279544465939022076291522744957711434712099715024078714114138029723746500877195088109037781143525111646572888194342560416933524466648010713587973478112031146553453251337352214860442885611728322097664475449885234617111200869489712373255565289363043670684333765582134262368354894607719976129150261210371938734208226655344177409015540166453855889624354201343400811595515889962615287060939026043190252447142958587175687024234046847549054332156833693657383534458011123065436479074745132088923388946125267979177377477129758973460810912804795914016374585428408886386126196965936437374611767901666464367736899365522752721191400538502343694755863364964527275979928381418893126389888117316996892360430783982197289737455182678448114721977599263720589399064487174555849387480574486699888135928816218509657573509971399235278382122240196251261058644987059345702636928431223043881374491011020243414133029831942151193673368891279283567942999747532529287266107185315964288235667470318455702982341527873678435000959607460897482517513196458576644110028786893463497194443504938805221038637315545398284856651387808742383287942326317275790219276633140707453949984344878310384955858869401907700497630187240612202130131221506797258004945044132335648313083125270590165179272198160030523438254486429181538695429509511351730290178424770097421688145279971283223771359067726076297341775125988374506662081648326559033781460962163893921965037710147518956711669063464711476178179335954731009779457346883702850419555411579248223608358093581195756356340262815222544595576947969801021109138510425724085872881121918409862021187956161443754604855951694710176472300122200999379055801762267687960253812317872940520936632903838248551821857199434023823080466187129408927347591771601459156223820959667470886430867032836943893689442802532775277995700976912100707290511236267255894272224391387313521829843643866209109525006436322446687042768734895558718108190763668100377848310619647655241722643406405992120887685586266314111666541390553695674339136158008184176926344113095786094401945611553089182104991624220451818726075528228459473832509556729246157643044763881278533918254365580708952014271103806825290499782092209310579979561594444796481465133637455584981082596470697767709003768169910880111964469061576747162170006089220845391623160764449084334671685796144124314242749890449055309944117602508009384241320317767655814915835748147284514592476110833257716525953521781849686201084077012699075598120114825735083619336247602175273428234785068752216632383487148604706253466915886811324893488454977101491324141642538689632437379228709442653785781689622165361856974192426535543927826412503388355226963904029768717937540988817925078469077583067316005226736172632668054749510542464752909610680762826733972517428260865945504488026925141261706688046550802160820657682708631382284411828791135797096072723136698127179713850176478662852335545348857259135123050746836864516206251879436912689757504356982769821123555382593471034116997783504511800453686326198963669837361147314207054051851969321349422185848079966456649852879151386155062968294571908644913243888284434920052178919707490053779212063470813468954343484535244056730928066751305557196103211488971655063638918893815662067170817411492652118425579172407909581327143414133334716680642496215530755279242444060011671778393738483630419267816086112635889793290056685525504815033160138877304056318071039672490468208575574630092106859409512638376428988196971261436668897568619188306444197897558125800151024064192055434109767403150879789568410343575984003958517542334253743270063671615117755428940168137976246280273972593970080323529206808504272926234046076202806114247608330077194931457258419046875631585291715422304541413966263444332924023691365816327760036580213942637262177685346770227304074332977423088668304284868297442377231482065600164964722483003027402610684718839197925708295616701186904475279099361443601345598066736752074646546862164674646337648507842032355643443679721043277412585262451488018222121870807166030039784672872199228643066702279878035862740200744935774078014493838554391582207888944582153843165761113243571323043253451998438646490615591712305733461609749619467969555366671068138777296403582448389486713222410423329017944794677122697623953132395358882222472671219680475910813284669911488023254880125748635736036425690674236901931455833591881296084637658858725436922892338254722852117041578982085629301593209160847099144228300250139267397633755689313530536664307609272853957751901596525849073567563964599188866464388652342429223386023995016092794730288747791009026329792748215111400985862979149975268118195655934339455355923272891413021243317522248513215460391718345424412258705500533095783293094304914738970446919905666162417407580550139700737893821635012433170042207664433147797768399617615065924055948460781204304722899908586335091250513848401114282599806160080426594326906447429265989840104459551616078780985008628531364847386270681404308256583109271550476453066737676133871498252597181089886169085400228163797069682782422432522709851422565609163377060038329824472797825928279457399287246634980493954405437817731356224008192000481973886937779007760867921469043419761741434217730854795752476202690778791010300988695986903056664226333708084688295926198972371740170402127833232970735950306535061056336163044959574389054093640030936399786816914641641906293534401039560357207754828923744354167329831807524850151850417080127768140188439142801365473495546715910222623834560920843006425436850352754694415050032482385588100209000659861074095368279509814222614704993248162534091732289832806592779585770604812297359576278093140408018087909790158583677231354190111540819543125005336361427869641337266979953308262792970931823137998187002483639582469483159872055827863971641275818662892083189565694771798665773004075133937454226649570139450593537574835909961007044611175411791309206896922488338391737898447553318772048699317735719848801480389162380407030433433287381886379382344442096876763890938818076844095494763335524464937542758201233821519824982840624057863259137542411914320680572026567585881008231776885576100670732747908847466787846859780057660367314724777510541756670694208788729817788419454714285134790618723763263514681161478881163219060563355992429746945162873053439008679036357848284740873605273945623964402087574770323461370266158015881430827816988369797455882949257765138447978466438581903879646732374443131399178519694088529068622305542690356147503586156098268395288408082281255217539805924685073368388205464270474386867328247062762617636200746863645580869025623131672059731549311321529157194989668593148258077588371277686034102488098656089249183980267048032127956514988151903268579872120768928320696231314854951246942385216516767704883534990347989365185812522822713120204403417617207581131103722245034342111125604582032581010054410561919640624910419602097267133712820631929762533662270684757942960340332099384984729534141110863116062427847978998190687681328107046891997150471206867914391555022301578910716868331111117201880675628846600016345168086317127219509965919591276807211749940994167757031160389915111218529104861695632078274312987360117631132615362172836830620786047941746479472388482271725241538796901057681810885227634178524744089742420479274591152360598969950109268119564800854915737352857839043602444900465226819814213750776253589764097100287418206078792150021367300574621580959998832241994896229000417020926802268211129411322722207628445115007901229954438762191418845861546656756125983734817004969042442295071341615274749612573422580218652781025129239450648593755942846777316521423485793698965659021440670372172528971847788182568427976207764522192353140352909354871156874743926477855962618362024914036341078058166591304745222415864611505927939934058516609025702549017703258326574618151519222362435414837392560839431666108368564334062187144542042746158924345584323043835476806086760879650320562808019514099996493686166053791865284241748197658732320729474208744342354210550670940757284024146670237778584167824142506390487254463737909093945152407066218145578359262926836006780896873290767166918640850702115002412213802322684446471378650389867095672076151399161106152130233558326482960564482027277754933914273425345601929527160508706540504515306197950528420256283634994038118286586208107094859991760337086337334804634149991807249094807022496133410493545843666805914801446320399120635574042607447586545210034180978292129361747816858198385696332274735307314290613204783625763418080796181660812419812357206598364400577173692013835679065976219171910423152695225624946316106108565509015150747883819654491132486870002716086682836578483637998325649875762707296698653313490717370613243920124006038099724366390419387981628759680645345727657555779968074294805041022299840238608256166698576706564589919627771857141295748317461731689082563407820897677925811420490076034499516772832627826058737750158829187450999628755570292605357180024655071370051240143805251808135329590963539409393685835599873019056029534032443270951683146998293850053659015186138596975655886888913398531318567421809136947809133090862543441714758562102352463302180573744349644699556438359623432718041836486767583916416172892080373621870816887821523499182247744424139813935202268339708582174967873094524434801574774894427362836518875176976044449399899943339039824599682144834380694887981351736738567450201440758368700914857318846603316118720297179717675575416262902707040923581278086281705606088094665883572838021495534796932714930443659827321594114436369095450671241598711641295955664466094891721772823660612869405787631156022302553551015711743356155768147237668415933515898234898245010946942979691377748407247308359052023003347490145339504655549092734218747280305578850783250114430153970445253505818782546673769463165325979264827011404934800709771353101800789097481170445069470572943184592805899579645739761259225130385829373806098901734808249205043808323217149889606005656775469370115346444502928083857053597625876940904643574784827888472992594443669249273180939509865086782507537738570185332525703930311100983081487676444261217340899359655459412150505157771335831940037811863749463347757645621230640012662226646790731390222032985395559291932982011701575645135629884810602255725552499288299337894889097633068632460492452735987133323501708504280495257024489035682678005210230120639056344626292320157978347873619647306767521679385223581156465269819163049937490146099534617017080002844604987671627890068043528147409494643066319875152746122955298200959188865122722849032205372991549069909108087033657786858215737263331474769694909918986184110211140267759487599482392144315798786645592547042465844870340049467275412185801992700187806244326115725970127427282778785123839176720037583433745132183180393013894617682759829682684189708923096218536753166265013184606640219052916267694274050348858157774528665977436930470710328824823126078569892567888709261506703922530691769396038290575231781545071488590332498827876783547251753167704913106295036179146170566835746151351718368433598529423542682235816921662298039851335556463900402231981376431270417304037723983390542174786673955333194937910537368589693562313528904902361287703459700381587664624185320131692925077335334044287448502141413943080825212389449363565196497278236060004878192666862889117147876288300591410040152645829502057285671737656576708484194152900508686341869520783203425900619407032967223848480544590422619870091095470244965891857869121897383453024035141414221352241483153812000109717412385501523947290424800735227418185989924676423712940092410195022808766646662480338781183698882969333969635005530807037752308521966680033811621616412209263459334001687786875338506461865190053961382862885626774054433972372016312585640026303727092849223505166433705720801717755895630614193160276180681865694913429230539278101187732680340606237327813324972922394791045728283054567134997037691742659944786300649036104249994927228903082178021337204094572995553662526562011847460614970630207169264005523829282992975128389843979525667321648890652144146091654699511897119710493975269373774879287397937534677687706576221573662713944863725417712865486547340779581941535226672841557574306626257391286705172366291759644072774609184378861232844944856247243401029518841758181956466054822637821164361867125191476022018962119953004327077923524793700928423519192999332505293620926890904616820170438841776362116221441506609669959485738338020573132525998950210753521564345337480052156938796071633910525144264642407531371238658995882051101322658299615239127326817312688607295181403007907812272019537332844239017840215866234509863606449096716898403073600634756259858385432953437061242128159941044752862121992712750903125727576826054112687603748480628931962818574046533049546722978058533836970002038274078482525359106564447218362239353634208739236039141003707899338516743926755812362626602613165951426906900604108875202497787617328271674120355611547755002731133183710383101716078530290693842402088088721871756736914041653828872874701621743671524528349200021416885213059581632262983313163633165211418336274743725423003560237346730620766409391108552215682741637925307897581285026547409435802445745199884040250203953211087843283022343711174988405852770437667944160879474555182815155644962732715770836104527452880761443983428211565193314964658966222312538139094657318947459727941733129543438086906744939504060660240335405727838696686274398071225230348344784146188162097465294846113994631527961301214518552658306719273894732293899702321774346781776214452482179817921694286915833124555573186341224448636190652030734683818502691124254271110898383174705214052837072964147089273985020142430765760187174027179651074640658406315397098627287387312316786793762567108611123088996478216100924028090048258791037482532476484231464121535790342752440498100264254691896973611163715402046657735682951240712116460478265141669009051130300876423907083489371618274247158414006818072235789037454138923920618960985328937799402389437175740805120478894193329514543463114221773057899653751527871216712958710466967954332335738784777106985743956181014967713259222902556588978875985203366133352776037870318503613700240021165968486365055665883780513655361903862046660100223311594449270343264289598715253458565533241577069756425640070184790526031140677286612931825907735593183132019150887061479314845547274525290946204006911580940386723101852798904362934463953146760726699578465443578057521093302825199784960656022995227528659027433674014780116834962245956947262231900928150938522719899728432374539221970952620646596875147804524621571904103951839983014157400701996123698783852191179485008189680402162567532254974244852997621591932840833885553542641374057749290926565694737912862520348028204854748013512775103682787603999541447813344109079019381718735907665355383574684310376053660672724581241091814082297150713313887666533038899151051472832838520146212635149078376051589452689879247028400973778007237705616049817633823676599542772456322045589100556242117631564580764451642166683849534604930956305491666082800966549159721359577217731486767989889490169302933352211096309263314761010192730919795849699473797704282130787982388769956146875632248305962118016561666672500377017588759623467602705656807981240510921922563765710108897298939219404988413376704052442110300574602348242750044627476462228183077102838111061558089911801865423973557790273131181379823639756527155391016295270589604613490350326179087669051071194323682292804551693093847696935681085771572499173653336890107130048060819083668350658379906535339970930167941644010731614031055229310479445381557911617242465258383030737697944676887486849699805168035320774130159678201951506011652743473002750991872087216988692644411281130237232123584622484907073104254082591835633912466180753726928723321375905123475750186724945274439497814903151634978866386800475703233746944289733938134223706762017478181746092308261631767461126009436240224347583193380431470921917963182568785162357877930791087967614888764648213823812151357327312925497829501819573103965030344911748316164403266832638201787367777021223161795227829901060692426770129185817737862170750578177188579066508344183387679350929568454795310156393591021075262716385538641230656075404921458278561704080883772419549436274202733293606301893320390287440575511299713433378940963938282836600165342929988347070536182464365916266342961872550781354966216569977546314997832073732730932920983274283173151499535936714059458451975439337388320568409328086588681299973294661016815531518306237880551255837326942815026352046661599610192297085093732167166222629215334423621946500309368501717249136103276322451030017383909080853470733872966130284684803473076214478673459920617360493456942569232509970930241965399705477861379720512700821810009482347563058150855688069845893236176685022820147228336379516827407516982425290305508300649435184696006617811682914113939127553749989249392929087697380826208014563431466598052797440341779841173904773971565608742029049608436996777192130237065769309667011397349110519006935833898448714235667998515070177904681940460138999929444738426439263506288972784864621393667350213051519650998366317181359018726733744909977416903726290081624554936186866401417496673107732859169297878344752393562791541546037256231301079229597692327355184301959089571525982745617781225808984442370575252652855011084626256371938944343046215397372947313646384110653288570978752197158210153509044663845920032651171875441454381052126761316226093253233775501921883672804515668880546802617473866941242855708057293466733349523512612350720236550419556646997600654630396045726818735125591347254758239534643413570500600485925974220022713427716107249239163359861727829236649161328477653547329759349038840178004648493834934562041434132659352840842030135564452370083408232383842320188597351625791958211889698282542825127159329006197918105572136188265698871120952414125377267863428738930377912199971452951774978799201161076412944751144642262019538201377878119906359875490701269695501043722864464662994573047312451412790660427126888442879788789695451836734564494100237911370048174399312194376766438054171313859395731337678736623822568043139071725986685725245381849170869398600094898967815850583970128124005538098859125344527463096565262403416784774486031934542282555229614421439071636120416523464273948785506040046179837247301758763014541491587149991074295460623931975419033948275113781713810904232979408389277713991112876195509186661833470054095135520138815548577850176596171505347951929077076672754708874993878611252640061851900230941424765417775038416532284326308050978268149260037165219462262198775665813807840787470834808284375014975489426094048019714379086449321626151289052037965363204027213511038409914853643245189153389240997918755561082512767698942749862319127365532688556544577909977901546254725633347564789308841851101405035774339320430132964378724343300825252163295056672091515640065043795309128145098476606960633389070348117931478654121293749196497465236903087294415931749837813440271910759830864582042392752118576481189820854333283028106484677249993388962279890684165058449724049201286801055106810054205610323869851347456184684583716620566224213143175255108078972831457910168637156821481188132479394802563133904191077156490299196963012713811914830467432569355516075869533303828549345960471608692843982585601225962792317075305794254763083689221672854066430794437843955680339197590854855333378292973527471424406663434587922101359224108714203273594495070441272597202301142772415860661672546966633424214975455506333479700156748605338412664686700591936785942554083374477146097616627721301040555533173070961485241661343548081587123702366565289241434581291499929310437679957906331405009780093043404826077331528682902655578354792159335728839754898052822140929950367192325417083625086516793260528278094557417061823620914099843757731620484203209543892425805282463847381619503547809517839366300594828133417790912091383121069678993483498949033906822076399196458248146720840766811909274780629889138215414773058890019327575274591116662188653494176966239532854849107454314001659074022383669553568597618155062773118119321689420034767493297680599675114674899014712988825717200084535196238004185577976995630760428794748860808118601195817121534535184035180558450190916043796907205330308501019947356998905915622808074048502409603141528215802868011947845983134923689600982774742208223087192292510375765989682994523869397517664022814334604383341384715222223035089181215838079998171038841804148872819658553495429063385471892196454140149092731506674564494153229079838576946934959079957472992527060284880944963736002348431911047789719481536487278083024538608434552761322529269852942231738657394129794677576052556866922797222671965786207665135703025902572887991396092491218118007391773797659707868956401079483079030732604349001345510802271767134408511749175563025407488394522304513882900428137955339034929937461033484355914829564677164799562964812482759512607277348993514158743446807434972130001171236965331211646752147316005501138527674655356471465146108989921094205095506865311103731591139282115498122882414391443881437499992212741383694386995931455736074526791877946695465318728087777785822215096129556909107549681768851311807041934779907187453779583749343929827460748867117577793517663414062940333943266043624855563827761553036297497657212451767811427400248247229600052401186912180519493972167007547238655319627670142547443603950095795986087008593920022609878675545306858698198550646681514551989890339499821637407081973358856334774836431702911898788228428941962228183531822532633381017838886955821726843547980666790189874938952403732921379854818789585867505743589855719867470624857466917237252476855568582398744995310516247577674120695707980617741144780609040620586226425894278367805736020905649519952142947324221369729196832226052084655308576188467175969463854564431454846168090107796324084632310427903288638244707876701591270963968264693414796771904844268855728492549305271425337150802670814616688731257750404623548438399297797044322046875104069866565374662822302611427042512350893288412940729626465454834859903774222795747289298978798510769493920773384662824686721364067386814928448806593899822750087402657884780619244270541969969718530896409143503800332862872646300442382535450728163746807393153340768150269342131878842162460174747096340527992280193020458833391818450939623196267974000713770794634083962121320120649505118279028248063651499146803700458577047424749534615430794853972958820693367351247229232599942375970827607401234017171995525396968647693008978083326639131326171593535904402792477987345496262066198620366139182741711816130494561104181001381615811629385305585627472932939530677694770088805135119227704795271734005372809538235462548417707744166636701311749196844337753559791760445013647486784376001383456146044037555631655837693628800896341599994759318389623383281937623059263344990334344990450691670723744117222481917583723452234655798893770954613308689037933266878042336875648808079446933137796301440852953945339652562107797984151491591389724153319668757351163473996640162800936427881163434823135931980110966072826570046800868350574901092060255483267403767760675419479582477658087585743169499706680935030183278887541664949234248065061859098173608454156740791761949060996004336875901835675823334987308783631936281530383817026786805105222018296087557063205758516597601633870522936334791990404752561946397175368078863490557804340325300320068175568612772533724491242315118185219163778133131355378858820073564834448478026791699723002935509113346358163671352136986712589462633948669474046543530347136401997367841055967669373343254611485757834172685764261032623603166447738017739215938791368962303529126743521708990437736183235076816704201298218147721975091586371885699010494011178304861168601442142928163113858394058933171047517148657568624737338705072571223772455179863964854742187259524304099541341581429894431889076539268090595916710233868085953189850025601348772158502084860759107588446376752049426305920736747425881628485095625738370130756804674013234555138200121576902976532946719132752016147774452260750726960068996767200954405576362993219708055241928309867320288162033582779713983669757207880725887038321783557294038010098485731769483314987610161345603701039578408280547646326053909878534178779690775963232324964385387290227501767823940982452029471655889344012652973845330847641574392855523044510670578674755734416285505019954433123775817486092630405840357371094628667290591367053903496572524221181188081203465660705337480374314965641712826285707326950877849624697704740037160044100807600722519435658452420581087375960903251223122456097584732100188237378349311895291625891160150102321565450476292034599717465832042173920525292260814963874950967425667719831688057039252956172015562898261585430157040852920481912767025766268710815921792651526811314080629155333798083061760560377581504200946372537951451513431296232381957612987979091852200958445419044976865562261128349217066937237223900007180646382110250805999032762340672890302695757527389955115853291733250347791800358096501972550666830744085818443641430908480652021394075948676049057886515679642194501139981502707576878487070775602985206229285712488795847227697670967684561568406590718761959009190148627471579661920325373107004085168869320195634339544846801546288508636245685132144559247881084276540833546810086459657421955783712172798080974879135654491294804634368182025739874109901588031084276357076651231848681281182464714285884350207793058521005468067086119920920005151960602904013736286085519327195392286830302220390511762822978271125468637649288539948755818544826582460918099856290319186377671559923405180607355100478551090602266987126984390049008684831702279284683711941290623671232960910554983030287810450691060522961272725705930695317527314991201601038631339242402389497283255047772142170608486882006365243513903476215328835807125776667183521421143674497011309873794478425008986653704387995676283208578729487083731437300779231496411702857187869582516783279391408586725875116847037430668182117408433632657375344989601141032106047464806221774624661598713873856832473148281477893201772352098825238795278386498060981586276506671916038786417704669267880862044293743386125831726843503090050711302157383003577486506455756053676864433878833875657971015618309116808859852850762844147294194480551650000925885119292066641378210494985324348011420478628942913753847398247418252947513722500733282619533607251845953278551767605849006894535223456970562719526567103025922840421163045499294017036294221449382647936278664424793473277328429282665492693530517959703280923418360019381901106707217778198771987196482949891242262287963309969196306716518169513800386927168952149043828134449155411849344572385270497058159159494518825333003134917100653521131728454505350025414346589609617325614727131439315886723889775692268988085404904000951994167981989190481474782578523650295840289808705346621181743469990438569029094045457567268315667349974747840187756359367744283445285375945928707925772267641683391563983848044113751732806811965444910579584466412246208520422867588208998344018909234277834611772230786890298460164612325908026101234356893491029010037824742829394301350607193550637614749845819575726074344313142737830909472669723025566213940444809151407046863341255367591925716418759303624109969814767820998340293108922768417499577617427668336839960734397204357173709776422138144435915197959374011848864664632498059159540330653655038511579480972704494859944644321472693597838017848059395858806833357169478084610721530681970965737422568179868368389028019469714981093729363454473921501302300466466593681989719666514590982362881824812204042971850784879765112290896799147011911872150866375943986268939264601361278310455538732209452620225196127469584292769696810472023671068219496674591197031915351471927796399100254337857550451325713000477371165367194113679124516460967692789086746463265785561920235230870063606526318926220671016736569894873098686626947033579035416679462448490391764811687456329250456002904498913777162718249326905517744671622677231591221066777001705244485312334674176624808445501619190496022850091417094075409333712183902865482200501223564899351098366880156079189862583716684653434588320634578422312346988507833999285277372340016962456549920437128866185899275219132730399589240595532214046406387231339743124152547175362795181345548012119363028224589896955896178801093030149145483488667944790854968833312641399960948657045587939580146166403838657548961522047368910510167753489530802415101996969976877578609710051216478440991477758877736911299006713713125960614551076637906497063798138147265339571267707890951754808954345974925478110987413101247944987438328658125346819525986621445113078991524440835103396323259606694837439872790611003666068496048928623474145977369325976783057766558111368151833345940990505762176480532574045446151511907237535835944625682510172207015122837580281185573216896609140211778425678621439726790202658568144545245175720184484432688433120600249134136033766393513077519151525927625434526068239177011091066963181882894917670666196455643665511680207985931654026486987273552260216697854315176787736119394236708918278139874556581105682715234120840643724829702686006024019288281155494632614054654787900424192189864261878094475108039857076526449838932749232535737649110639938919336052509969805283190964872576463879711799075835779700020076826141741000673424138239008467688637615365112609813821026137865699868298661041485880067955112533021306206731681156714069727761348020101991648005838330596855591408702600853189278358765267913019574338795682078945435421680472374838223313896599894121308656452282953622021456811734520792181085718270892725369410931113536767276350160660897363809961874993447806844118983239997397300621502352449129321369990585662328335479182105960182393710115004621626277150340718875349806205150983535581006230750334454129608878950393421560407417995397743216861600763212797129172532148433429615693800030468476008927536858307859781037956278800347351189074352574352634841411432715775194326265068698417545530257546112632885416102091714535219360930554344391872881365219292882207528533356795612406385942185581168776661989767098779522323234971320150183039783644014287942252952911597261747620820311529735918139400434598071087970711872687930031220131504722053210488496941101554602520818453647689411607435120388174549301980492665956147677288743153736520029214635363647569990806041998744251818798569062459373581683370490437432512234109500783168954942980610949329712924957914910349821936445901204836949603113367586748833441789008694313434862377856906128860031385038110878522000975359958516003192287508540336131938320959694463799000160065872361467571837046834567468879577182050182706773026583039238671043974702139173148212731646276985338220606595650091311824493858663069173308642228255057590102879843981726134128217550890478854495093322922682570746651720710382979507917993928918818200424593161453542681375789749382833341911473117926561743360842333150809374304594434200724339965007873743704647792604973498151328777365825748768683660227685393462616224458792357316682715563553934134394711297400880861455201471489962758297338454422260910270860247168586358500721129550614789500839843935573466954725437694750013026075002474307624714378254434441050650000875548670179599007566243014671801238531561699524611738085650763875364093948872477607739648143091098822594112096768579192255851766262518957413119357821589109724908989102327136094958612225181610130664469808791702651930268577099612812028861772876112623652689822988039981787971289767065787132772695657210009849621914424399238286019269010050122257238343084229470565664378645188822827915178320247131357989428601851852187554287602860259045780988663228038918866176880322020176559070289896776736078830970219115138129840866401498799550162495157037440721608928544781435755865287672622685366090326179922379288485497345660632655714043439033232543780121809762053533099469254961068051614299399318939359764462039743715453344677500356049774529798541588173862522252708658400159743007131629241833874616827172358228062721556633108221399317943990490193284526779403755558013333286837088471122901634327034757655040727103236677800775427844048792228171768682778142015713958025993020798885005964209843374747361624444991157744740740556805218343276504129336493530143451404027539259049377830737117561549754092420019602118702496864980476619608051295593103800309603480822471152391889284236806589004841564392839355335441085956552966253703067023874782594630183825457082680518739779810174978275393747090600247777329343538537299105366405876854700243226802232757463662244024250835895489323676409193602634891392430662292836263566780237754349777339685949357226756006350230390394354924002601359946417986004373305707300810531424930237681882455834602089804576619841942614905548982391806346114362127810448153579519929770870057076433520324777962614204222736400309586662963993633064246777157741661875436489643522081928925371370013527981908557395557898373504499785234273276176583282207280739337400190309532715900564631484426051917253482010097845162992617958184390008912469956129443446024148346852224386052555902442954168296358077258209954129602052069785652253898062956116464399370800539733769850255437394724357549119109111016601410299310292465006301826721670857068295128702048445562977004050415636104620052614200646507298182873388851608452328199462743527423500833957940711395198050339149387693176986878213521184549004308284865226913115105163469075439387666276260698225629169473162349267112167390311829771733675798799466707672954494171414201550566168240806626365870043820620491063481521665881341443875701044272199921603694661151729655241733749518278252772270682296386379041434252229837569445378577630177530766750924271109035143834524255739178439330087351682629190102490271349255979874148728053258037488803907199608621677492934700954274765713120753234763011547374675769205157176152371450751110975477941332455186408880284477899318243674352375024378144161269954702233651559190397495974638280696306139007203621839461725500331141169522365426985877042924075752236056869555932620346991639596764265335496087024821785548341632590171866715734332772001491862389153207813789343868185950401985499187135900176829967415775618644258723022289910765652235643682438602562783419210707213666524907489435214816066861079070582192866014017674142759259625336169741850739406711229266590716958153548182673937863347489038597584615252297950098245926911395620828933787614277025694429496090745932914025105845265013894650196210576644765332194176753236186625601549085617502630344952623453524586933618499722846960979999826073704405203207890663727481917032905441677609751071929020439880127544768103034729157835327148718773769540267088001414087056847975448080993558666983957579062876850454466987381550137752494978436955207406205231034808848326314562076554681598738254855567883271658728695507850796756026892721140799321406307922562612725613830056987858561030190768591575884041342770758137070106986644293748771638266536678250455013625346061785618336478520434686968130560504167677805066320252820035714082491379229396458706275591206552850310192652900278253739939729061891055608025866633282740004153199302165193424959484106444656642549669099675586252012733175525014641823734352773236471491865176221990182563188175969211896078509353050560172584018800498267154298561288613572337306579161442671837608008022620594219333102385215134320872933714889801414740255832203804627612785476701570336969617594458391591925016454191797288629336068258076144931872634142334278188254478862820594154128418026838209698739756761761521900439192678838437238333052892276303807112434499847697584524324788779331596410056087152316900249344172944564793532185056844471404104214558300512047911242876124827270936960186785625335423896239178647898495600117492625507499228362094211624788930560466005670420870804407098380661490719153181013348100498417042508357617718107137257552913351894263850905737101298514977510812250534764284270173590947785483698017657479917993319809595316857139984725437952601101637840650177464788463271933511272253924291540004753738502805478205026527870042142613860784361303281284752548825974853974447285336686768791660163785782587648956147969246441829157553419200937308078391188062916512361654337752805977716892979832629772205683986508507427576912800404310408015701585684535691323252057003059717876314848752664006233399229210469812092260883857259539781886976499267431374790904800106671081424993351006644379622235883096037763965155537427333660201394633929463897771438753362513892844874403831169707126716409370384723180859691401055119682048927255865512091125878849420717196108010779480608063437846922078299231889300484023528838223101857898431403094150958959718317475987097369501967700450053722328872813030758500215784615342377650880623491590089726317249742929950473311473689213069877104755061653183864170600785584438372460789285866031373642914331575159192353586859552985304401332757827575691172887665183181013550161953862332739324962295596583809907193708783278853477391792586427188832570139836165481163270280618936728696399508524276465840197418790589772261617217552424043871661492071205205145511399998295437646206998092337472861873470229356950505452239181261763918245337762309855026405834528733448220808113646265012999693948511218532040459002777943302044370978537893193323078103041975814957399472703872374698848828061931567669568053535291553920463643436905313735223794683427205086054010506762976312297057283930024842437415004494216282027163569163530076786350637574824752842116708451572794071845568029226012616150641017251297341734307289512446854086114536976502951346044890366700151479240602197735385055509419439918646819213952573963871525166429619128757019945112267805498548290809528561441410074066143614159033470354100262955045830169538582201219176372024165372750230694044251886836036281865192611248570728527904065481802760425505920252864936803601744273787705247675762760262460007197902754128014186250611823260823367301239902742581346956782264395734951433930874120416707728775739199403304490408323991268639256793242227650533629051014285538404701141836378566119891393761716676022008669590901562523346642474841745734256023349288602584017185506350459690164430305468762651998138564117013056333853222655561932676061783752346730331389189252023924461861648234522645338725616542377250198124579598672951700753279492036185525562166800555231864933138296423445794117522270750651841211862879642188733866304300740371161925118561147505516804787521430963161140049197434675688487843498720997293052387607294015287136176433219669971365975351661203840773322715885486233847271778892235190924288749492452992256446163264514084777017615147041637061087505508303425667873339697807986068937682289174107044111161925072010097405540348992179151754444493395314879946403808457177149231680299788918704430531098244937574459324454051585528327364233078108486681743936596218932057156962807038542175969342538745868816876198848889298529260288421689785618065635633642474037103350249396156180707387082370800122312043141786098590669760025406730297195952040277839845014985748956432916923106292664778844346456208630392807009461532701889399293434705879463341580713121634510751302001708458557010066222041104198039770427851958992661774881328124145219027273680682703377387230793522777071781358441744920850614101993311722454509328648221171358119371830958564308558490492622333603899621967522155059526994903115726601161804644806407442337182745226597761344691547662329581709768903696187095029450164411164514514259777548047128860113161637026378457154090727877370026597950950338489543851479106022918631752296731783608474889334415172143191181377943599286731986504896041533139938489267818640878661107662573178267711386938839267668233081993960100243823446991019117398945006442595987855840556027065715494902965556709638110866336095259096204520683704819944546475511867568056965736164077130602368637712514790069150766115581131274923255093575925881995958024423278189570396012467683233976272302850838326636024625269968603852441084087477813864257022678208131743958016508072279874579166002090666478706581684764162451691802732148437920752177197878221757981278282864519399553070102483078798493533444679328494128497188963172481057253496608724532790689238156212672301853381122844219043080113797744327111678878114178411394760533885568052543834294572830204152128718494122765488734768879078788423019078240460473658660861911115156083953296266425475867943980630423064278985137995831285684743549821833937337526116249558912666484068945749900865835915772142539681444128124132564579130515687570416229120787911712267323269000118059463773001812928158775643451215881829775684702950880121751669290266197980821557096995686912700841534620497478506074482498582887145040832551399891408429742877086100003827534190814364042578314766128508430421174101820201889822624484608261772002967483156569525536795602124981223919553564488610127864444236591857779670181179521553323733649441262235816307448406085847368456435069625885038377544383074588816521066468399626423169617726687795465216097931139561303034495318219449930920927739235720342515557134721472553609996460658296602912399974009632031516838059651075463587637329304624766796091410089198261213752110473064990754178243453886463920374501502088353586206668487992986298905904693174950119561317557338960745199285251971744396159976952030132334102448881086476451914105678745975341154079852783235432265111479474262782671815155160013635241113868470180351906382005306955703308386997162418768972903381911413276412038814726275386947091363872437344936706097733802696963151069189699511357820450907844213465551002433857987508005736260444624191040196099422995091059789235703924819418242124358933053491983803664973320705142622181679506368608716541239478212120666493427966426471921494001333695495918186789002270128819861496786770137459705877809562370065191528797155700891996995168138978004938384872251860326984447245291007200447503500066797805468346035126520153503044427458941624097193564314843708324883309172329235051689792570280486922611641894467945240188311411672616330775683614845996540077706791001170155057228566747892575350143155112283854880528046160790076708428925664661506744770591626160255789491112406104859115154897479744499932276853128966362109707743781557418102071898146526772139116494825661842245630979329269989071698081142766471230173998736883186215562015226709826430754148248109885487654711543489501141340215511070569261541969360573270753002562229348786539449430441903066799719690460081528555602110226867662725467029667943089952332904356806567590925337847324022483862085570463786457843698451678035012441162640034813929030173088701605294013096924360182485068628721583576760521723603935009758087872839786920133197507528568959431345432004434578605113654660498600062564060784129775293542482646188075104191650054259858127538224310842615163768843443276176616797539197666824178165363543707869610696455151376594458802744428497482416288639893477212866564538280390458616550144974219998750872466634619181543059166678140863873815173003969382891728048704097716325735784991135745382823474099095489528183789130734339866643720165289572187545949818253094072697299526865045785514591990660588292796772235931028862164093007415569629046918817461534660237188253643644702635100369820537794984402532405125070732406965737350635827965910186241737934484358888938980080317015985693114701184904281146197571606034890271659835405422010284224431436247727896292641735028712757437044291838886186455675394649543268771744060812466368142168401840323443196338007635912031543194632524015723824788643968735381160553070844843686773934959567871953136821224440644402937456495920549675822823837201277551561037381057189183559127085991610613253669329813681499772583149354984587085558560949849798958029698335856305902051998914060317292825495748476666094063122544773555346021574552287637733307244957429044252838949742847722571296418914185554734400444104628593560131551352649582010711124876362484429957771254825887774478912067959969651802928458802435473166677833848901471466500401271729584625400196415872385676621391538723829133991854895907760541853531883032237412023210770013567927915655927529965522055349792208028078223027569808520466208055057843778848955371378836344177385681953104327980643775807862535566835958522244803896911601316522313695126506025566969867248038463098581288324291199736611589649906794401625497286630844847967310457345158599155611624756777588694533032720397008470722416317461444228629026269968427238924952125073348348007036533947602774851787108145720329059570707051451616317600993062563792335683786923799783301656750539074623771758748608705737360431590705383296004887842362831325992590325670590840841919530209257665132806182801405532342604941085652006442118338025843611140392057755880210976634574269607153162729429733903834014891964276826581934557596135788004000443703955398353864099620502270595319070324989194076133832479012501595546915248120942460054101497901112596567779406850364513579660263867494178816673221258997574425913565134945077169245178279366535395071456513841749049323114493716489027072526618091412971993766651230209449747471056453576393209261254305534915412068172283999268040855045774940836226027373533330781795090454423083252553687626384866060508751956314826372886207155078909364288377944097240961122722282563324901176074917174378861251574702227451976832022589957481732609207259108462699019340576710896912937744721702946751003281510259732787447866390698716436101701766936440666056321166570331156476596613660221285686668723196974915996216036805089531906552950299990519274234227460438741196065017087534221248821290042876255975224349652947747082205340134608325641270420825035995358399747192971405727532671220952674765203424799721131015783550024440939003302701680181901271970014533848917351787474439584585773458615682319498058242770025760190453959493947771568408859189335151694980915480518229729825454499374643080707654969385157340275923539096816575554646017129571848942473948329239772048290359990080259276471010577684381495365423150668108640769472040785415678247397054088155177344996273190616016621057994735559687237865041788705049744759938554852119064698883360268853479924529565628452746782137723412949934367158053787805072982228699692197786529347178600623605413362166059501409663858174427221412588795161475233385772904634298286127711174129542430849984059957094514382878818636860577705422771195958165784000988492461816038702714818277448184333368850436464281377053067103476562786864712362642772809131947463836763486613712253682948116905664230836578386931162830016098153259753144749056665937259975428645594617603067569607615069219506017791055751652420096100648354667108335708392640078541656744341417841640070877395081271010264479937380048120893671536310296387680558134626962643091230795642843213108627391961572744521048893082620894210102899898254678895835228525587488859548646721066317607270008160775461201048063755733870288368044202402736091478070807098818244212644274283263176418710691253738117528368366724298193637503899374588642564268302765622271912066048072273563506948483820857920418453015319212305989367078121673678468814546417210717751688829125573825364345956477066407052444082350520717397637550730701078879266269257398423432153924776796536582100190859258341576962708013708793370276193765369539914217538465523917915863937770427990525349527220036236968017604676975313871889107868571472549633173115268175784091822022471987470603797177161772269516167000897873480295428549060869597986244329382841935738237830542249249248782450514190478226989181899041056405469083211332057126510205519023449514042846310090934287977174732411163143475767277642168304527969443424440966866209715285458914573793249677790437882403386517521987070667294386399875515126044102350543265205627146727315261312640892401544218961287809129848246386014083615001124810544654621025989307312287054989606301743238532956451746866618752189037904340563882683446340113499336654738276853431849832462041739570328660389574691613136497038688685792800264650611219465938299071646557900744976171862128223611601315179498897396893241237688202076534674950780541697308906021194797412495601724319855209289870576629290373895194572367567525228153042536984197208986020568515306637005220178697956043203302703456224395172553200889836942206124766885746404805776278152803904892429045273339890393329337360261825237843061765395374430711281224206546003512402025109728215592686388084006929818329757595204838380466517503760926455735641627050400997053126397406952834617940184162132754779865929941968955876651084435523690321046978703918438674944373101216326443824414715010043226809777649893591729445724975004335837389750300606153452677554949877533013518353882363987615885016164034765474831125873766892763413024000289452046479755202065375796088624657124100385195412081033197211135393705797536403186676081093096720417524209266318224036358829562903430415818033533525150141721136583140784289751989599929339807133661652399444971327372635028793848013072759509927493688459964088195615381183173857682253522421556115176755975640832592221635789097454252521848530940253775424391050046639259765651927289904296716710206751024339504381545864401217501609690597430685518506606449637707678163896281888992425961987439961345572440133074335179615582319549503045712734640198546749043240706189865781868415782311086137537963127326523688843616405538972410732539297850685401465196347846527958277738959479483198239891236963734990118670687352553110417141025701612388606481183551126885302377317741323944991682262343336688247189882836625785355929978805454632620397243176279194151145829023291589073216218935095527675062876458909626876431812753144821832664331462645012346919891304841388502572171741103399539256706213397499379282851713647716320858349550854373671685914987857785307709427644172819060510451915170894042585180285012964653323408354285182111668677024172124056887004679300848013593577966491098522732695093784913215807731336809642669292860352268705071306649097427743387186927244340358308325171978962372812027240452587999651655596633725158554696591669205468256496916938723105482582732053318447749277439531471217898873466395481693374647731167549530813010067733038888644880491068839042932515299930586425296274528053124117429498599104954841199462691454416236680006494494362535077512515325890058649871243106139616352823495568911860223787465889594312517972561270284799989356844396993047977670621769440853665241105863529418952167541424026917238069287033140416325752089513069922594569622224753667934647881409129771439927962182116665772376508466545294677146388629830292467837615833374476826078683778269417739804140698638198853039560505504889802664306144237142376062220193139323289909115569051729056594371134345613035918414142943709107039844294853888242673213650521419662427521662120296246954949295798025887034164496105256332038323885132105206908394464459733857296711747028216989080153066166120105016803401942330477971605540373722075763462079388323562613829718962928843755901717134081814722897899641268551167605078890366619843375686485183330644271227874364288145148009349573062258184815312620317405398373904599424434310384407365229705456614651838706108911879788806663812973972415804289390697219071814981952143702139218713773045432551536768954769161623753969384562405414234131498485519707295723809160336778439441458837238904031731075258882803690784140953158619044903024569644947446344622279897963102490178332478245172622099327485779855580703810528556455754998877143560068495368237512867024328166177527274790559622422361438724070227418443773160686178634497612562084853792648062694587367559847720544510262042034911297832920951200600320846544002847186827729383040792917135678301535146386705742253158827331697642224863939628703211724546741099869620802947556182213798744705842946051768302690105668728601071354694607972929348023747057847831174088857629838016136959131760503501509251694073952910587832305921241726780698328628743646822214348888814807650722524248927295288914478968855459732393638215232333337896178763674948534740078420613125971376406409621822417356832164507296708768902778787917037120068104217697387756188834979191645948604403274161123035161388554594299999764817007694918884937675129499352437787636488777554856042308957965197681630793290433825582630879398250943247839333757745530358154540848495461125541401068832090915155153072797269795223118125614106992119545248699815528124092438104699868588594448647659674401221964622956615380129340054764558748758177563678694968259920290096701349359665501040406127581562429111914503691292073528375954274746792747741847219159165238346737938961536225533436541443962808285678174714527356721540924192571075654041099617091289900019624314327039980806225358150754792916099973594876232628597676208232522735636372750260530833873406713742756541959132508437780928130333662964232955582734018898723378925992955094611709213043606859492974463540050579220005264890639717975722110023439048154490988495850232560571196584394129175524895661492948751229035980183451474490490661307839933698998119553418382216303657109468866787540319527825130223989340238825516417192486513462351342535836699577474012979873162803279861820086439947804348202236354327255654381065893005496674469155832090107563772873993276753792889024473837481644996134337198585109262106032227888615815020427336680416472492424591175241904849157213066987069782308987669344040310935182351408256091678561497299231092623532677592601910554296777656366982339655111867336864448508392513986753507531567763571065788968619287846657392082658970987880720347437155952575298068820253334835077115430134321607776239288104458146570050984743361693678129599671243844136557244970612501382081825182474664821262658736955020978579562083895582162818886151249144441593012414971822765115158285807482729113170779906914450866932030101166192640968390094515077639069174528472836815727850024425873125806414898243327381171875446838848470825207108986137461650358549164895860683990673808885027052024659074961313432083077750213251968929926854923587862746249031275270375920146523750762803851711182665727626564918465707732988779065766096473417489024795187749614127471352251161150365638844657107260041831443692268790157546684271487932177803093711543565933114102628051544860652440199458359293828033252173510017594237987717039374561896596216953546685419573676394932204600837217174382841493550069725194970494524961042055504372594002287422319740915735449378513516079901700005404045215358398629828991829987373404356802663587856182720168306585798058276335199327470716012039861887573354676257613415401775590028912123226163137126510355088384313090878428964980041973641699625773588715860857396211821403256188746668369529956335214078177830714158314059994121207522614309100827466685954967102355711397730927705146558289117981852879820192721006187459455253013721903233848056928267907643389133597619782611937568033640583744371212574283145762566820195126122688564256685243256584482535725480611279366842025807585655546316832040797762928669256830185100078810011248878130710095811884527204703231060600858093474313742976412647411842737743580640014066982778073241618731674504345199045228582627956553076583620347314368976537397107262786119158753204331198690316071730549152332743392433545438956737298205404279226075222537030892936935200245666179195765079379158947341278584675871018757571204966498784817003346386728721952926067763966521907025575515900112733868370891478505039407687720750306952027825497779567499634543200170046778716442000866947662347435226566237458785336050702632103453807001641433967062384455281942071804038068336547278634505354460582410129391436757784620916734152687869205734511615092865946077070362281469565726197067935002852856210218082032342938290528150633717875699529392175017515003237528860562586875419370128311406750774121431551089288559032658312727816265208732093893819272351465213497367943195514330930497222342459396691713073601112978479198452178274357583819641786045042273727774716928565453939409415097477719877251778613005975754597109144087958845686345850889130045660362638805672568094553729750849941686520699317649873317143341281261588631223494618564683806642015473518722710974590634475982496119607930618562346673450327752425551898590709583896907971713418824049693969195355438758433281642703872282912874866866746637794404344254172222107041982504165709183861402232320386921684779149004073582165268152375369848714819172460892276578528790053424575006053947115237073074111948092614200879375436662072376175831590585594009045995119255068355110209490200876201087250143035944834060509616459407254507779336862680660184405594072629187613273301926585944268042140261240490772887853124827935157760047881444556717249019785926992471255227602797225256669125784929889473596610093814101067164635654591150223214048212683354840314820044998141131707515887152823242088218682502183213044066368899557276709684169115792755317888950342336077891263598254840111723398465050929877914823337557371023387877456681227811089462345927965278683292592359852314181696034687826082623034016960079838327316882343394395979928051519325953716309713623648270858591761222868695002995039682620323087721811169608063063388773474505181932882025416388870214752527053082707844826987768413976367601063889578217325283063279939033546994867249112606322683949316758044683258776015446010715551784310219305427297741518484508944396419551399391242783984380879377268155755602919918405880514381066639177124370039683686651567464213705299448251116223299027775175623623905239687738298300928595255975595778480728161048183438161715086464621722645701396743185130810042294029792634633687148131738355814310058515970202906150402263025133442964702399967278013850269813535420856739831110949840697924942082057583950015080539282155924765526809061484439912346472350282179775192486769253719873683824190194081734756586244893812824708316087366331192315799461116993526771080664738921234516664773197708505220587687197098902464619960630483073720828897582850840930065565784325341838949858796527863452922739067740155759219313716960580084751351408036151495057643581805398468916005453234180967322794565159066381434247075332340129648049550563944583928540163796842760919581983152795507737296355334438205549226439005801153396314906895973734178087359951179550742778526490946045022885025996030122032898844557624411199797854727803456130155040920889649012155939794638366553636591587127143967958722714127874041493151236900387878308479017554588740363001710541593682509533480473107374337212089756164775836997586234340656025157416020351449476453553573818814201961373581342263106026835443509125816823092783074932708671238809065406049629925530816892746846320190242549349613320739854946747042746518819868818274609971166356275885848665416489446405801623671218469878199339077709055246121585878609396890425709878025960501887440337100986885772731908871961137641081157131143821648587939052646191112743463726174421763594718418899954680354058643724576112117658559914753588265349670345201107592339614560303735852328560855446041024763866368484961689147759528455834524880175759437028174908176270698640617232525287607413485613672160724137756158924972358855525542207262226448665460312476052131069862092172805601969264572755564589201059229692698482610707596010443217400683474000822248463745814550464043383363270053524768041353614436728712829976237530973293647943552492795658488806814190442637397244863338114888421193752933586767644369854648889666084519130671907708528074404304569966654327186484534091347129966163741725634416177787100599446743413051506606666210369505916367294294609544612772991608695090916874228568181674928177402017320837590272971141344711105237220800562614938816745693928057933855155758097421006005418726855914721437543579003758367405531242336251829229646246954870837096524575096373377265720536796486387378786753135647976023553311857037340171387653858605411050966354283872834975451677274798087359791718812850872913005925836907753670542772774835850897880289271871625751571850974765636727793750840790567156227147805651564909289711569660737874982257029313103169792542908130406408288242606940099840695136958922042456850503023277804450990608699924983184479201684081112152235725930640582353563812259904443432112020842332587932123773744296566546812917776393980736657238547344308352884789811492999332572654718878027080577600921171486473255013685911234030077272701678739824207715704417233734669683205784415048564227896292148893647617635903232508559307476689655317052657362550460212627271746610473245787954145065397499938879730449469599894743149041018980981420018732465431161122187756851706965699024155776909106172057772606603963270418153233555168789266180046698541435233062990961059478153062367043005750748945763208900108453933202971986575064289149180221011126962224706159888695125297732059551676587776163551893334253873547886263792487671047079681959492872029990478131231161653416207384404321170075140697093687142777554460063325231893009190597790647099565993216549685799386028405541614978842813177205565427906659381489440435708328003601130757703197532298568790382622352346641424520346124504958294938682149706504545406681861526446706962669928554718582778584575246431159127321082275250647726427288341453813896104492099343815797510828428462061611828745074059689597327359735451476761054176292204926443803957922914871945741192714414346527219120245865231478683892067914566227816425511862217842056946087617082186036176318236581903628549023206577659978517125254175059599063316883724150819134782343418032395298013420402233820120806913638038834855498404567590222827103314877825498795082556663152590691108163445804740921955834222659233635119379622981368108610885334757386948010532761913461615392979465443927445196014719635074402093482250504724493126144887221055124442052676995603573493861929709255615557470177715672685642584828401991008815221074706207096686063226085186321248888148366562610826581928970781883754054804281571902072795056984910058035392281824635005788323824622387010375141452697069338309672691969836353225309670330090182888463032882586719863663101521237001708765920151881078246473262463896777615506785673073229512342702714834905259740605461106924576547431832207298464650144252637878630945671517068080177866719644647195996482971068037952800226131466014013520653153844004292744444123399698834449319230414319050489116907650567266832575626572707525557085273593066092602602531579664468600882455846334491451617711672913138489733387033062135692387614042768289304957775992775176432284530077430630862076278506710440763539882471030446454262231742128630415578964589412070700590286677651097697199376550020399798998165696676846070140955335534807110881745419614081031479592981120291873834096623478343762529965722164068801361219339518470723204478121189161765391730249741727042872899646981894270248469985110210337135259682904113054456694243428030732082685356406444614984989940183264676618673629307954823879756692079473526864568941204430656749464175593516955625899724030054504995264680804552776021510182478218884874592796071015292924925551832309329091050346637121394874705421000389069530782109327759244857027033724726471762574787941677287463331493317683769904946664284874085040420471452602088774606688779820482564934203373756629554162410948572998256909012562777201874976423405614531092760965009615521565180542702404191514769533719458589606729533073376736821505860317663769427115026290946272380565267688503033241674799729692621516442923871355949855596000813184523599098284207751625650782312022492549176169980551050105862827659435895678186402914449232775356667430776033893571150217095524028038278289937944340060879857530552062010640501394905822035914248467026378280475711491539511340674649139784870349506676730537106871758402104346538719120600699227328645142728474739807813132049457088629239429807811733153186993278814958742323216180769188490122316070702434427102171537886128303802585758131349110534320235378741207072290908288989740997321356068322116456606955845613164545016113329199559167190674084228570734231239739098059914514748730315685406589981377349427822535909849213668239355286109623633627953510214783035151321688374024014247394980484729075571962810948472577971512618928354685762627040018002097120984868576009691763751799022170986465217134575588720138788270009808448613493916956081514347648878937330851439627177929039123121573056819309909279513434932189450891409535828064314631284100469929057894821872576103806125808277716718243506020071218561513046852731908371626850843390295977940488812862173308830507296129149279108674891269929175782279170336595550226485585586492914430775216002340905674333314053752089349958931981958060180235213664474053449636678106118079199339395680573752101010291565087868287418896218650735574515823939234205977379363570975688450791719803592546915812694815039455329143979110773488035969571256314633792729306105960510383128915445726759913834163851081901856504274846854371768031997510314137269356444232603806477932783633574765413676823624438977203994936558604919995804347393551195886679942173083111768719271005790766106497065168917726817658829279218973663217480146495452596659670361231592351403549883668721809052950523859634695920764418902887640407884589643157321241666334507836183641698031762895737794679102370023462028446244068087456144417404661982405281313411242951954309805057138178682781273818556151205326312212435386535433401901598145632707390190530905669202922631348577860881038150081921455431626468762728970427582890923772366032607629132333467072792306946052165941674361312901349217155165591238048794652725919425849858895825596349222169803100915478213474174318140318946995430153862434697101899521940621596840961271396146436013342029132680668939826603143188865202486656158361273879209020606930026333140302721081036152518471229002184247489920596623680971426912202344100984664318965360241509897766583062440213179670887586957915683769011135387989947859064717727333463799727272672838461366466952138371685194998557864254317396510582452228859794830207345407170687655359639883078373448478708520727603874707642648255198539993998384337311637876074709229473872397206951207980787783567550492746301939020664165805131835519779213114321431117037978053679087882327001582040115346031667007750868423717582221972682046552228917494705998779443112407847036606603548882055009195664901633563257727052217266321037322171373048678939772388825167201639742042707589190806477534868511207296079334481670579703953907404286593827203955853283592575743968237826746739627822257516345165466022285740252484840052803931434632578831948056846645247023330523110429448645366261252166049562311219668727144427523181628097870268494968662883058497518724255676263609713567332439309860740260674921941808866392779482530620760290328869100728433510784607455694328502761868947980807736048963505353914534381515380486013461313513588600683224241380251482915274095902016907979044165402395678200230615320954571271249027944939018514906239211959967889590156581876503412200725849139426717960661031346829102536348879447090481578253400974657780661101330521132638941367601913228448890350326148429128675567620156555859475846111963893041976787269464270254616962125509883960090798453849199667907445340973795122798286130278879145954380591951384780749331252673358255266946310874463089552787322826518226080658527526265045036319226118360643542790517296345219751036375418872434153630000113798238386629936051691523782128753995972200284683556524470804855641847180669711069820990756307535682943516824186867085102037752711204259898596272319331622508486047468475860742206758818075603381182960594994585440184915016064388207973845793947321819446610405675561172714052505696004577381161487748053144608697454284681375327572220720681860885424144594417983180422820606121890166910419754290824468026999575994843290574677913504816240001107514860501886100820847224057110548432374194652656811983548168738535675719916159257031276954452427320557664494835423215478345682020200012532002274233118235622998558297762400635815937153243216374980253940410545945245258325028741414826860849423103641541319829983415155666201361819622640308736974734414719977167085135914846389727158049376236472275925792927580645118601881946484453073689941026498940905299077664605727855370302821573399203283327309511323804509555857647850273834199759705151344103520550472305899535365617519688436568146517567640434057338070948675514072636254753181077999830420821520987270276202683556550793418396629873439559388447627262339631142311306347494337543795324975859176728449887697299722508001812889509312818058112559815404625838949323806578557988872346343858368605381314551514153180023654807595070811603270767545653901907961034993368257968601862550585570676964274738797913910894096663844117748384068930728634953718777069592314076258067000897233219129283757852838035244807250349256346037535136197237435334689649755764771112141029417608798056290626606233171451456523792439348509184308271314062829698637942497721959448699090354777413401647769170373362303669505462062544108591746366598900451806195769557821123530407505056108825857646534572158504488552170542922636666833242288638915134738957301391305097233803483639512325168435158011796184008519378451044518530582407779416498980946975299452339888611983500449567215217379773600497079081564900457746917003534434316172132758743316064365437012508573613247179373199705926840259776201999006962555612648632512760036005594387659345860414887308954435522898547334868584010897014500279658436464063695940342972512517705954192679769939575004554875144919422719503051599790579564380492748254828585971101537395988110420907498316155281572700034524786679846798923054149405283378494342830703503323682199463409598441261897192957770990318966086101991964360863921948300555411628455164130437600516351447258229081236563105470283571516631690506839106522126836677902740524540686492893958823088185226971263801482473076485372177790903260856061602228158302282253212204103341608706913740316435155602863457595571475671269654029886184641648972331471015464177480365664481579111499165849440714066480163506356546549620801591385889807192385416619045424542943760148031253261745749161581576442734375003312784233893095769520869498938399416116286778972215276787289682006648962611946627147603414192992506237999650996800994655025504146788616659023622902144008505634942468238897549275614815276272403485815257917526043375047322472989106542539319989200832516222412873049156537662416417704640400522939893640313386409730513176878793644603636412039957689512760625467018625146382923873061857711917103738853460118656536000997696760669787434665561472427630934274237473546442872219906949772667276972454619843202120164802375315242121355261202005188650768083486548697734358966833701759488034517618379068167558591551268409003014071046538710438168819063349385920536189277389958314224427358673959671609756284899019897805591680101061811445945710992876014577689507771050891130890425274021473001451897745610378887360998626962018680929725554261245993514441537399519061900594421506873151593450711112170612487421905352517907043422091869940423144743949150943135308222538948493418183600382417872911536179002360675219878418189067024803222646889555965270706445622895840166430131910966060634160392906965822641343633223455126974087051524970975630066956312087968605288880702749781721273492521666300399778586058700189550157828711392705683702326176719854539279861362911211679910696548860038488378300242044789056609573542213616874537382480099659996124323261368831874736517534808028099210168135033090108262506818223777017782155859739288143121830405946383691615842031739030151728110105442987819393000347452102484216114625482857133341193070323058098655340284172541123537818344013429543163476477185462489841980000203688851147950921618669239845174982753535047698396574964258743924876627894145495584241151060676072962640350814705190326050648162713403504763741346781906099849143451763352702008668898742857269925912238539768896620480421274829274247438381331882132076158349101367418488813673731097597411176723525127753255474254576923868273807817904346883100778332034388786982314851307525102221189811646440777747707428799176260909625337311242623357285033345017049021193695560004642020813553241720644331186491718076630155724569782223569510036821506744244178092090768362412433237021815032212442238096283258956683098846900683196837008862034041446843582678621490030501023391727230404068239047901499972480900564342356445108815673254299721782154075958802264340938727778710630279350354226670619459661566952787031619360774248464765583228110188993455460493006888568462946993259204345712032261616243169343207996891473192835972264171226158735850391114861865631220011042198201705649745251319658528536211236291834015778074540914194044399665144769201597931639568757273219912129331646985455690520349612948376047329671511037245800974566141171555313549856107409050335692595482065874525498343007726681790753481173389881358163654995618002969594932860956980865573029681204394599897507917276832916506543372784321302496885565012830642301569844799866430641634075922159865027718570110635436589406994598488112129806053222971755764566580343976548028482333330082345099844978227128943874902210004282482753917900198408849523341854557367648207844664828950010725684759569662404352342749441340420420099324376313939759013117395104558514947377263683801218955112399455287697581651619230717919875511751184312932449908855404957665352226902498864271106939498543816749827884361484985304199015458693265257957131931378122411925551428249039029132790452249321398786565413131896549789232905379801038875462623929600862638275714816152005552248160747054985261321955485361347998960517070716976158157231699749112695109041543579533941624906120972849090206772197223671571242906869864985213068793080800150757557399182725546953256906181889477582772604747736419477585376557169726341870118951737694804610008939874261156667668482078412833873799947416101224475299076934696619375948472122615880959633361096599856015349759427197428194134611555876451674097555024976864007371784889612692211410482153309343177486994125430447340553749200896608348572620076689932512800868196854767456766770734730347040588355775001963754465752998129412347673111175547227611057006602902523282068975047048527697570798659253944503796330066665418768201496980285859325505354114813585218271564936088838100911073032210492980313505463738643111653848617018424900335723110459766688719488648745083381683804178770426439631866789837302135788628075244823150527605583565865035994736153358759898163979645869817090291775202276684254416803031528929119895128662738404725478926330446874819796342043557573424204972870826464430191649762215904302685395927330421212930210212580418948749714425815651085266024028984841376270397837570343938335621078043472790747987404635505956353198649849784173019503070483982991809162491223093719541435596664105258945568659365722863060968126404699573356926567688168977100454746015347520891860641443614223312724854236223379093533716460922988014715674893015717068508028518409036327032385991623076578199431461223283856819312651865423445384664799483078844180501384328288170109059407162745247062207283964835235335350624938244009368679169896641558737701951990492203233232049332577637121012216237364356152410940569921552895452757943284505749915677349159270074211146057668128125143823409793824664063642019228384928382147222569082521705685210235113995285461502063300751255373981903692433537003111011745205405403196807624528318942513976481379822830966256761998901583697596905907038387346285280749951034238665724787942158691389506227915736286454604577294946322542366085490110271721008994960935395778821900236090837066811987310161590818229067001960846201352359201750260837420118997160136164900801217801995255323082803028403037946005492838152361591173995899069492393999022130238951817008629725046699145136046565901444307589248475831879023178195386366573436008893494287968472212553859753223236830698239476610814249771564237675669743138570359248936208825490972231146158997150309175576485349831873160648941060507222787872662510361550643276696142474398492043581176816740563385514672954654279208597945870200284912907993835850726087050057686465446209850136979062772006385344787395879750176654107322977478618508500393737779355074171615596731693486092521506337621359523406217251237263968011463550368523560483520983148182080620384650829158618539666612946126898395628898959453887554788948765391853166836333015198495487149766285959826469244686152200888962189167209717576586202971918120008285982581985951381001580171198759239084128777744924101842136924555707814012523234030091065002163061680489934378783238978287800310672444173499091066110241116987214835091066027335840462609982907368641958122999737239934005274506765244989306598746983714487335827354112552642552215636459469383954959076092107965165693827172829473506630270581033486743851231023808720913423372566269324266314104663471206362433689642085646489234920273391149738591257015822893311199851876159644289074673930820960620718857955036988882454463215613081034269478180362382871317389226243055117560147246128536798581721211967920061649730835088156117287450264822897988090328166508806993635344203602554062260096003845589212480296114031798107960745897151052336259568843531167284425006239661092529512532901992416671930020228197879751138237510439482130414944358449495587229497994442805898241593760552846929345804584591120442870320996847479422133271556804448251870346169372291221405905326477953700216214393988228879498132076932985587439712133288388877386643805982177520098756954701651383853058744438446730366088987126182996891311781270637247988089187225434536964923102439374367825198037575015327961483408425521116606384565827808734028042418095840052241044160313001270607228394815248909085811248190894039181194478098416144443711211364261035547445250204606475707442196578479432904629896295810915322875168859137567393046689271727883346823584519543320576400325061362331287914124412893067173498973766625194426857377403788830399430104434632687561058233794873412269980727520470069958402388565840986815595962135431387784007741861422424702964055661815829236250206869448723451418485054656626916227543621881721057647240257866100647463202326267633957034596061924538887642913150113691068813229791695417392360224198375018060913401912471150486188698815375683773218068207745768147715348457637072789596968823867880573219337518835097997169281691876070548464818757086257302688445703535430830979483072676123908636471203033692960191691541887407965022489190115798249734243660512357870404629867599971140678331282834994245198030441086946521814423557563964025646823109536861726629046564477163398452887406100413383081904659029498194136426684282239304583299733953205102634176101768042237085465397226871891423326786686328570074273021902939688671863330152751787556945216295214718131751909701233216007113742973290037027261558795889503512417569094656056294154192802838523372251384416309487682788932035939736667785361576219592687730615645973428114746932370676304896004273331467742159587580932196421656215767517288535444865435312435938355791671682117250611097106631315068678685868964176957051882284816623608799007273956895092992127581739268159401149333096883411817395734790743181874382532890313724515917940267937704392530749653077318970009882242670680163261553828655048741242940914857859490805156034840987674762027275848012769556728997266438045597655120301738486279282613041255780571626013881927841069128276618569350886218564489599045011846260739754653359769997411954418070559614099955418912374778423822098088453197023233306532987692477332491117138036070002341211097472204788529792092674491599872136493364211477807038394629845938306656846895903769756691201765026562025675283218284746882757110320308607892116206728944887914796869972158556655961079975674473764458485665348628083919246338677677446997891986090113100585636659291786019668277125410919631982164371243013050487457002356514678757509426788253014849177931182749398688536349311713443777189168495677524340019390862986199327510498459951170819249270777333294357323006826877964503629365115960978746452450560324698394164357290647505337819256660314818952323683999249301936014867502052519711938704499541176366076593697970384043223561955664261887924570549101800338490654641678594733070209341795116863040665083611068368831176211768876143982747132239463700672438952934476165986458587381051043848257327664810598134067884180300331062330872992390992650071283095127703855621241316668072830243001580488779748413187677832094794374776085404608491537121824696089456734056504590285503107333698057075575548593569860868184245352663574873028828952737051853659341273535886639590908241238528019446451957745023705968613688462772635038571368950974351588233082399733440699281153946023673016949605747565575035184649271761436489778040824098778768319254458448158604445729792319155474706368628485967489098295966168801643134767806377298893420613542279476968383460581862506552788831649381807428655553735080333407797017887091605017540069355764519954315455202335366339129157443706058764532568145084125052022278435725969901003115722040299570032236566341118297756301976983872742265809253898427958209201534096115258274873069663235535159670253405702306882574819502496367904125216921371172178564256869737427279470796055788989235453883480046073631072247529476140405410635061443348074959627374082582160215940946747181905136439817774215831800965800942176375561868631763278687199227124716423079384763243984499873309550008311284185519216604675970859668207537393845858826691628015465656082641926927609016409210160926931794955848917519773910241583260985911205622596963778035875281888552802945070236975201035528874639599936029162556000849474198805336479134826474374984594996298399743316953240503332887702177566224798629927486918864938422036381165113311691786740950477722740266616044700026945036959126612815416430007904159181130318903002379287851618021441949703597737398399545239473415332729265207755322195109461658750707465019043231765762487482669543408639652698246150835450140541196077175803988507760315114002545383585766361815809456101006899363626207220507261242749172941787533220701882311930284590566851234821633058186255888584923938324522921388573043553788971856494629040940622415653843119559570116743168034832760023083148545478403674212799689600543482085209263825500439910176421207046470351732985539080091882569899623461136018083109541054476848807703336046853375241654377015919784836491165899772982074255292814069106044709573181939266894597451302857205232545289622919956310635806257431673626228949587863183424950255268932233230802656196292063259777930997906986204086351087590252918834443114215551182109697650629894755383606836404501882775790011491573437577719815899333141290012285862420267582768796741576634242292446230020999364422826877182839119113449331906432924563211743387793859203485828910645298088848216344204238459091564928074932618798569339559207716443454415467487724127509652592975422326415702259263797399577326135061308595560276711057529744103663403783650284528813760730264463570309402526488060570067759811438858646015188087955542641181860039842774211092203850749807685357498484900993921855544322706631505281730507124070361669007069069769500902418791735166736014821681145444314571324635987444308020972593111731424128778063411653653606408063124351864992817221494849853486928234753250420079437805685522566424020438164361711903828814087846291974263558411595226200403733670837534132590877060329680995067133169216008287964875907303092015930502604633658884180659509187686402592633323271907306160784013724439577349200862853822447380194687503726402741189609795321762082054919502929030263547594973968680331833640852612051999039083321781263586260703769734503552681135997490591273761656607533419495126099402958037999203934021054099659670779206180372748215526349587440645917247314351061438959895788985182768177870756486269444050806332973146517996212211870507729047543134132006263080896908811322792363725142739115234128386740043427718408776747953430819581159364384721932739980486206745374126228484150465010411022889792491288315082457919176582295401233123827619903321222601951942061394150672374322929914193314156300386890023737903197840916964805454840526181343587663089586904118835720784138004241504991672771448996776273533583344866699672958178828802700753214874644839543389865557248451646008308136349681329766994365343259994573052696291652671077742881379078852322921558331632435371424131986488727234896508874568422909364514045660992326955492708731763704812639791587659249926998541729894893882606666045484517566851080868794305468443899440335399497008574046270277874701769678020548858749760543072710305610313196688268750630247521105593287836413661448406762780390849299833453596583446834336447671058642545037779936661512958599118457377175732088841251219090470669307128439949079895234099264646241900305245073139684428476288585131603485645561982078266219788743069984328654835105547478209324902936783377573989992905086401553411466807286160019495190054591443952299719358687001487339426067362897831633509302277089386621652436009960332151884768339619871522468268380611493499912239200456976319088591352669923501317389139687168812758034216241799496251482738331628783417228609777064613960486225245586583254942906701126026185633327410050727097712675374693515257007429855007888542801730724204137426182682408198019140238568166738332806192749109603923540401548077665177145597214644133563589003454342020823357371229859046816687739453233681362290907048377024080208336934615667944334039510830120106245676773851713140183954265081408511324106603105642497462226618044799520039396524146994116701002340890829999472602007340212408234960574038067540142197087748682309033167893632149362126365200965850579177682739431439443639278094948799231318291902974182830715883195897843303912881286182138452986778881222433642424675139737814295896424937214604145848792035651610224304344471836671359881917015377494171893809583076530300623435998395637953650511687293492323426460369338876096724485046694132440373164846689719847784927868461576585739989746657123305889486490301229639396160919262753329518792444299738724626106178761620801650026432461812240935253649513567839994044053871271524689723366411685295489023830527217695882570986956292421000160724353054762758782492877035787395886868269899773824540484167497944381312540184269486370723075642231379923656448435164174121216163082853784822257414597817767381905639975501605443649507369320686601965071661717720588782625009400617634514797215144922810429545143923508508743827580126334720196802606649909884304726030775705989594212141760713616592024067263111382651637411019101864177730741903523198401781757608221698801201169428149722428529300994922397943747299401041490908092594449240370115860046654986624773553164443666816223209231381732114178518434295464331578195696347124533000419680475363907912158696520674632826868300189054135845103351637269091213656823669685423991301725081060634793769985113397397103133775897574007629939341807247360201874206916651413812494873647578271582634840614971920969423814921194240168514705798999477106805485706000056684997405131609821198469879405622061983568650473020950359704269927745498954396209171695328551416908958130483375477106082520525981931184219480450011271632929800190757444722642545196171263164490535239482018650771348554844573459102748332420413866615025357907617405672966817303870766667492191710239827106970559898171995637139258956166561215825589887192871844784642107234945372562898422408748867288081455008964114131725524839173078078536177778688525949977280651498528150132783408835804849407567593072992117738742221599181485167011328597985415869963497811312532763839903337425053068165724101932729977043376276684949066920312613029043582973467659930656750288302478691505164462657336893181442981819993638696989653470129428641721692292581073686150999772413157314190668308911663256661995006588476062029298810877142812968948492734750377475665271886623987076410218707580963832157357676801171219834120482402370656330440558915949403034788388308145639626228121814981648571757295845854114966366213028592534949021643929711933854667997586817858043352673319986400386524876363376510070892082841781072227747976714465286016014736089028609122589929691920091868477151761323238560959464181787707400463089925783386354712894066643132820702075688749754666598251735598041396388124440492974247667152304036430859840104009865006947909173804490197748179099356734684475316085340801149111753013815719414834068928220335987392514777033213061808781972054004545862418203463468265566835827166933538164556963694821185316268897712802095848987701274927081011494846792129675540791049038358511948225351240050492930457438642209730815728115064044095831206943544007891837730161483943883005478246197347312171484381073943539518983910490967366959553192481311859792225533623108744404405262933937395447231927696405980171319477102867682569178754339659020266739009144821966713677743348961937662366116972735001514612647453954326255363931087030051910103434548913923307357126253411939246659022692993666366585680344537104848702572021041842893812408090286919272923124174536968885560724987138584629965771596141953606131541876860363368863885861851167226806833642236213795051008113286740503401051779998689822201568008939454927114114886267520918502694547869639501338949898913844917294328242028199481613456315450906733998209304742676899129538740993876034399000112425973470569031867630768307555536436333707841650351783698268701170648790059152479027472477367509715356786800066650114215346680423715465992658314180546311101155023771893334000866966639900597788302761116881618782259189534768089765365443139871061293966433764046918534697057244822856265689861952296857563649793524327338263390104229611238617096334227353072824287229800075572540303194996309171604903200876100003639826037973298161761467678088280773753363724741186743412181606565929277848780625070820905397293657153051733170561482308282532164058796164887024474824397090786780241343032772443289728234291212853698596371175154612496661770191979628021963478438846161206803467684072342117826918132450574570254567767177130895444231976198160986313945296412157991072288246348331661715534421751234774276277568216270603401828690775994256154885170377889100452886769249230158350222078159724874182350795069888475970131912376773480663973106753264866815592131161727803850984072359744901833957494087170341708378443875735302545496629711715509122299945753631600842251995578762056372399271951187386443887956266798516831801479546090384607729639363884620090723842713534496569884523117523290203774743610507506273321929037590003746331125389593881918950847868349629267026629997932510280869316513998832702193928277945628555637005483938507691655397887972390260840301751178203624571616252009065068228582200593306808019462975226808682541960633943846434648769375688355991653544438297955424403710616197655297842188803854558455702915247734781144759676067770120307210620894922579719078175963917547424003929224858100696335912521075895359519354599341346698119537475846349104145308407888533630722128627548271311972328752332102977468540177953662366679292726816597633173388555364065514045370169752328727160260430864930058535750102044484597144813355045389854840784220398679166276537540751709102731954090036295861157863526994838779756447463107375451557750397614231735523203485257965338393780934292329800237840482752599248875063420931451644431206672961527030895504634379395481603986148100870516130601379720038690093339848263592726743378273085888122296437864508565067790891061788100337717283662039152947394276499912528672112134620863738720664398187922961634710195558030512829440348630248273030012794261159976844324559846123390539834453005274434006380767706013627084438149699856119631410857698912501518117283578069657676495524545444392468360103529039000844873558250108482915975019461890447147371018796004305336861875905193113279027200061379203655010381247339216881456107037156218926820374400845607391923098803325110009029511393934187410790130526227637595844943537402858603300425626257617803093648569495058776408697678098146421636229843174714669938774466097154856506940463788795739730063473430094420707226053293242861370023794963679610706409391914457684534141461956603949758057384196071695396977052111470351580094354246315283166618303207018918006726938439037949445946157354162236870675102471297043023980191792292919047214829845535125508372058303601872802127776253894027463065655519614693888006410537620440111600427568493120868407882621334086557946836575347773477476993045933969157800999010840561688489168851402299364567268780692958651810681040573642025033961773183624194695210617699162564115593394544593327985528429077123715443828817157998712956873136842709191894241639637338985230388919992776459447906541912019482806880713769110986222901879272269947372214126400522684941066796275751513104837379314403204047775002236806173307045290247342070969943846621433287104241957815692116652275499230683581834993242766857369785727258938096283092371852139521938977995302289976687093269347209805608439915808301303190082088272704049825243139084845225924426014621743608979715739245274587330496501758536480851558659922002559844257216563698827683526875151835704458298142720553804152938633787445394255830510722898827616687281591942127977079769069341536392468981366836252697284482168969085542987490602727216999314283608029217109817071102225692527946453340173918976925692657580869670669263333466335858197651917216837641508479791801263659803319594196436597523071802414769247730736771630513832466302735184287842689978977298152994161033180394652028341304283450362927763481787140877796570041014531592996684936987318944804542408354905531331191649892469313409480822374191524763853810294357370190108791162629178109228071164526663660119876163109752849333496482040185354782778320932393251153735149708824105941511971953568097574549476651110537962218959501162140368785388660689139066698891169866635019026769921904017697919541803071183895042555519934242811468566200629549161446651041392999095526464260303499072560580895683441680123571223997278529799758853122854980002647018412816956737262348678325673001334415801433546582334062597262733694863792384705378583561724525497348327373318992566716773979634153466612482589673819178290901198860766798599317057431288608614245021780975827916023831332694080906731800437696064615908592419405890302477519418368611574002800884656398028276535308783676024081349162294966985470836880726734681016207673427678592638550238610405142209747875648331174817846779847041907406895279442825323965833254712789128219293647699350633753829240580677323773682464908014944379933550549993585892150813001645106548618526197144066663216589344843073112381942742753935986535591358508658966017635264028587071715406962778424746947358272849291197260468848577409900084488108487592561990436366091123059487540677527270786098906793609168142671349792383270258067251971844271952186220327460343757170277063344781059533273848131011165234354533959054456139448567667205976702739598186804131534745900899178458764324482695065537913457558156986540426469965275519100525745319683053397512721438791803216555560986658337644676582466228042827367596273934950641302787975086712034518334154487180828352662687373880446187792264285367843978436082680643034590101517810062960432595744970136195280942506475232236120990902144258556610084328527349344004343118530098936011034254732333768915804863330316502094306413915104475139057154536580532271939775504655263012818905777725702418888902921086771039886468490141769892953170696551434041104009595332339199654813344637728021864803801691453423157040925320058880238217684452837618673127198026143021393539064984036659815256532830707887028361892671499898554055717581113648455048884969726632328191030443158270837919583881889575774275839034196346118975202428945610412226546385428785208227547793052163389764461679540519472647264692356771087319433571617097494492470505673221751493845659111344599664066099407905166900005744927784019024856832587047849089632142202078237709251582827090523402210758968491465963984510925363487681786100375447387443061588219772777500769097635455780899953314642736959909916291750620061817548237283016259431993791670091797719490051539974735375536425952185751320047893517754232745223895500572138825041255951891832755651443778337068934848833989286544765316662161222315981349900554794759521659096710430167549441923422629714320512849594150363030782404236960425767410032191563841044505824012965083773965091377456930381528396534718791106129053356090850344447456409960195166092911669064457780807354112913579488903157513490199961254018589273697251506729840789484657244167990147645729181299009140295685988040563609100092341467147831513645975787313343646343751548644277885337522117262359359987314803133229445605738505988714285896659821013501645497962766345830293649369280006491385963867570506539990020787684659069635700139058511611077668699336084940396902025350544498845915191772347270172062599278618217714052097552720604754146174376973224997620433752753670113247825230378561050941805014064752506102418000510095045056254572442051628767525729787275103613215179441062511174443845025263769733078350132558239660493588793565395986935808062899808962238744377302422512451682505641790057860166663276213478522328436725324450184071147928294188139133042521934817224418088908556779618096666802641378299389403504260319532504377946918829440135801634765935590846496114641514804059239318760553502706242679731022626873088553197350942136383697467363136911380913178850399652109617504418805403442234606267330017794846922158654076501150385417490691066175106710828418755602930820871179869741078131139855279827274235025286916016862539101197612041812126296359009246383515123233293429785958959672413562825237240409490682376539002462349542461015787224740906437304585738109292375382435422964326650892854866530761764359845978758981337442926425141555873817421355536499600588861783462565307048557260320676923758480749488565158863930043273471517132028136517231144093697905168187392248855352963471297514776717243033354570847253620831789578382586534385253128314747191730338427529297892599178213961776086381194118872063021850881634961407440514744499969574261960028547850646372548409158901617011810845379811016919877461070945349738714429655898055925508988464783084522716307268975845369062988501759929708535244580867183903876585389786726506932587148739208253554703887249777022012740033300499498020822672326619196894848572320485854462644107682717292374658582905609503358496581552541628974334017667887206540027194878968772360085275708397571817901232537715958781797368323696486919405081544967862839053674516630631656166537765340326519933879904507887381328074934309119873124241083524378793375416524568090239635296413830678654247552480805178450537836927088080138105421391726632546967863182455321164032296713520710311562563351535973063676901523859593515637337021778125674205789592191217478289844009149420537331362516120282628102461524416017586436677475190445217415957952784423922039163086722977793160306170349919828809176535179124124582322734117901548112152659378433703282043473724412762881935080617638989296127849150236110790580653059174566066984180297788356675950067737609602986542393092249337758226237149688218088563827525751009526558663762379984736236602950377910415463508567381755835246453796353499973591761485822079260113729738908513494870737703341081190234503061293029033203900201619863699051198055881879119173680406145658137285656609266850648303093260369176786545578781397707129485818437073801117844284120105642438603333013345372943996381004222991206494678325596113477057202126672352463476105239946004710629663499532119042471324782667963870595554989014519726846982153005510786413889704827108522306003352319207440364876401694161502637219327818613052455067432675883405332440357083830562224890773922048270957281535105276617857725237524075611833325111859750073976306806426935158081787686584433985207652922675925337089542738512816881620306310227635473218715737026726747304401432182852188320346709204146136486303385944803823431411656864122806111773670459930193605181621656206028132400015999402846361034813452804741943495942441405089193274437038103532634176069591493029461339523878179395765544974105204104633160319842984993575691829014887436327647795992670344213137316147021137361634028431232437792638355970861775996332372579836120538832825649051835245313010894998331078292815178313321821683966417993383908031408034726595590437679310116104535446508533043306739947301520885954125805486686799627435232531195715666472649314385236343553317199615499698062985503501089705417225666948897191762073627876728325154998310347646744298192967428162441118621119090733193771707580778064646968871449093224035560502015717261125049794703486548929514809785170332776161455466477078723970430306998965931637807138653864115057994271985748261421514107495712296390678653260817136951430734123451971480137131720077640657442965626170527906685741532086767537960094018068761341435450058115749779657048510678294973694282991276086114981001938762857630721021603133116008533886933386866611337821535730495175859179980534715173790910823743706643402092941724211258331207100536766879106450031559225574933191528986955175878870862571696399645882268066356334324979467299567701439350695109043980826120909493912664694551319613845041623808215447606753882666506096527428202402279024554201227672601178820244291959227290810864857182483945535028883689714228997475754340724343274085760808314741176767048902684206881675035505555495582084146662410314579185303887697284981822448330832806994839867412466737112778340778508890078305803170240624419017043765535205690376128596880382169356175693516324544318366014477788016848468954945487132234839173715542357450017083623472066674879263780588689380668745285635001260583720886639288730658139087211968961972778404262628905605889757290533006511105800603206952102880591304085049252140297371161267235671786635309750583752953112483376715809335383640608551134542004995326266101422602605957424435627157376754248138083591832108263825236544748436333823607951059680080296308111302584679480476200658329492992274106712105752468644659071398378843688145895460682124227863072471966445941448603878148226060103252306102259748585353488548776716611772463775517734292714323090446885231647694578220810755315301020468860620391919547149707404023581382784399138114898493169197795968282299234140979646361333527703915500005601643775564867080730106469519054208771238952241590898990576669455223183777937693672894086932570534218002351668736885021111931203283681146693064778862646905682940635408343762282175244434695345868833447311861415290840974446851749787250125585076245197145024549916473334509430203910851045956244089642911764335544349155525650247585978717858678543086360934663977706363386037582735553598982934097198316973357057051969644032085200538516066922260157264860476582157656844438732856625700323376992513221294412030908194169699476689220987691652469177002983046931424086803271757342737575002754198026438703104225709125554466494393313711152182686383340526761785692300091546874215116971701843064479550590079054454819335203421281686959358638537665938229609753010832128673569298066330124172494893810841905500563264461292309367897855215500091450325911901347656284438592625580623197977040239390183430776395115808391567589248685093230543684340285101406859488012296302944559668894758632388098268430994038306481371668676306754348949496582822039545897191505049355761707797875260112853719303530357596376703911448259039582769058059650992845802065005369310014317521095207021851321756619917512981534894497358724577432406067257312463193957220287822012182089644525194431328655505904025001248801302423892146977486950150851094547452724208918881680347124880566130114249188502648065606423402272268265333773331924375211607168398658188601368590877237666228692309402717278236355006073668777334888115389107133833120911127030331802860834366997371596730471094232523190406514730006666573849432517455635973636372846778314560789589031642240650527823114217738809928035377304683241697394265382848386376173344239986969585383239790065918924683987477922237908367534511723272696914774460550657781223042392418151989708415478667627087103707748543461983990305473163667233501884853531798421840970081151102905614188884342086977697262276926753478121105434338255468467576410582939607541613098874694907913043850847884267891516502417172385545259810941714548449867469979528662510853198684266521862154668600394477865211192706153910351087624362267693957828016238130710578972905599774209814613542855173023846832997969699762667049974528236193664022238870844789717245012774236388267944738657031939434140482670655397213958105961024102331791943778243141229071163841385408843599546475945954481670375584368416257863498245299659057783243014224981198419934385218870580156048161797634508372216506656723443025861322575343883248407346020223956460383597035565876319748799460703892431041565293011196653530337179668541858372873282828540813050813076744019026946579738957437349148092901504650586420038732340682315110789361900890222356361772929958118634744801167662391889710349696596592658144005117738052922741181708315500300713450126324237190158513234338338235541561872604858814468198531521906439394068374655196553858046934016081646906375127923957602267905708477991986595958239518484090657457392291772904126171882615515580563155099346501212728054287102022496408747101084786755137754712971668764072740120893767667059230245257951978598576501791857462527645151535772243805897111228890946575529496640788243402399505738655599279388376159834110776290046404883517264269116852280960748101537944979207783509613497191952062185803919982900816152976259343260329229356948387399202094891108234239042509308314786671235843556638799587355104742258602592199033615339318682013924396104881347239211158700879199307859945258002997889442688610665549235913611715607307180011062496068026044718320605115707686632160806238369999505425742799723459319924803952751672451414752304437971548096903469500778699174263215856750257158086658534838169060726502444466991105945599393865451282208607034125887424886631812619355789354388546612365319558217224223950283515457634450758807056106784594324004068136821614500202582089078812723307188818988606054465453240885855767881964400070485310354618358846130505152476257738261978758506159236530798209602913073741452166266269616333637635071969019572831807069621912765872076160997914670595015749060286081922999552868774750857238478774957603230383981576970760980386153688164975976462252737884130409096874562771992078589959808755901141633843627718078651966202551406770163370514461625894384957611217444715504201387306279120160612067632179906114033529395448200637239281621952584007538585555767196000757026938314022671973075659627582773375519512720694521028300485131213004858897404331798347081230997614397164854918979055761486190115285570730146362616844699391797042003787297161105684771474062944285526089865561479669323335244861151620302823468560614838503492929242180056196985606926178363419389809018388588202064684275039470141599884224025533460393476299258035001678602933018043874291702074227738688041885026607104933004695860095677612968986082934807807209515181410831041893560729891612824483157155048540038163770252282621564137552607184131324558732867599036810462676557048540977918268845604448860981847078330650367015951930380411287491695752998845249740897098394867854740375459532118252848097996135156708544798449117890742979741612030942705906710360746548499226205272864745354800738336955878160566152281765014711647738107161962009815403821344947036680691958876801520291749901362649363905071097730055545601599912191468577272190743077273504769121589583333916923678029621001528149148252039411345334759262787762642117935853984573803918873695603641801932152327665164282632723941472155807242635828509658860677185191633835442661036195352295382179246433268543553685807673365123910624372879616970385245392033603604170053109488739253827438648235584456825646749956423079349249346364638769129887397770713406427579946391531097855432718586400227418913837570227622854777152366199642113415919405942482590058730198722398951937661167797235409201163713821815778644606674654223269210539895389404460949447785367314653804482291926949116847313235169325363186279269611272550862538697962226399954701729023604979760939585503095546186149685840729259534290799934469771092549797810947328799362952769388366119034984454953725511953425804510825090024496532365759679243013694138631232022030505477859264620577236776053831081191816310958032032500447193179499297862063148462447013290016020543218467206950029604073269363004476792158024056446214830641425711496811450463268701274661925712109454330183979586025515351027968547251466234700504263862798657152602405181019557838225942844448355737940624327632336975166442583677399475231012893320050683660072986608532419428007642527068388766495605463867100057968533786554224615860597518916462637934994917270776211308653751793959987985292447846037627126157321846581649074513422491424516069287962549852895221797289091933691933861762678612846741610914801792479775710697307374426049296093148580917130020391524633421217149918913805211100140498872147608995353503002045021754599023581928576638370268402194572945683563020842996993611487511628471745429106423850374309250417904625227126081539541645466341371754900319041517291400777958468447967858263703309257328714189692039267751275945518985043747970458019959724917749210094508735443911553004157598376434852322018455382887901387982750088888345973359877960595108621877084670063260695440199314122851247296331411385195292170858285694248495216031791480822998571959507068721012517699232725500228450881515373929867029676262613905517150606247891438301420748645618869385211725977914839752527486556463656119687377473663068678217851800393754461504970946285127911916811491425715211428224095971275396992335881332057386117073115075654304152868813736218177413535537352468488718327635924550707755169508635559432504810240284447757017583173323776942894335068998155536755527331714510076199570273277091196878352702654366377924296873702949633717500266224850580272585378422117516159048762083448876940985540360509578084155215084621741520670616728204752991534240049434158917163007740694855615867818569196783998713607602272640812171810548009437484654378741901595368044754619215586517806064100369943821626488775535170437943296085427663676607821735857185570164214453061593436091230081837938374648865946644815311976346744195309004795625034850040255672363507181575950938906915925783573371997191907950286264387025297734209984122805800681317343312436745538745587886340859666395729940695676377180754735870200292590806546665018201086352668676357834195417837344596125207897166773039383458086573933673894572988998240471815195641437373210428477526071545411183662709784483530700316173375969749526773043560819603167879361782703937944195768869323370576301330496050432432674946580430431882111823382212678320194923929089569905101802662641691887011225923436146456714554054551160239707325985620164099948366469099879327285566177617052570426784495336852993933308473117599574789401633957959597953930981947829629116741830584808782327705653894904248718658033902019080140969345606003305527483549856521854465206004931341432109834805692400534730506307571519091344208935890446970475208901602640924811100731085252025649847683033545019780455977799321648252658742793398555550326046887425163244007703023257378559542742419993441441136909770960784838183492619682608740732341907132712641460922494417627853408805617776578181647795141633536941323334746065923449889691946475083198490596608154376986551524870039868464854947666519220804595635965569750309531642697545705590989240654792677104296801467645986139538723096390479760812828048614456929418004573116095051885753521328516349275875840940976429646997120152524387293142157121332535615186762332798595949388453409526566321246162764048829427959609650524682056824076505897754823062257012684053260746575460177893883846059378075330772160815993619805316174806345562960436327324124341260075037244077562593669093207901982823256615614297408760894466290639895340504099894205443055069437555894599289192749364642011866344377633491374335338027829219861259967879265628623527324037455665179886056229825990486565337805510079708900860525135095401010198998019383050919307363221777699633740609866407571325814469574565917259744616939549825107022385109784329040734642888652905540975914934508336899329864590416577238930400752395695402292882519723490535523751660850639649390001400571485746523115336804496856587402282393281002380934316533037069765648478443974148353979394851613320238657277238914257797547057052172334213062891075507724428161192670209877662268715471667384599358997619925780043825924153494414957929627123008012801008317955290676720544263066643716298156938144351939153044368170207924801867988944811773645243150365661297299155477313604622328863088013319358523924273845683592327179134510320266553405307579415601483621610616186735938179060640216836639198406832179450439505555242605584899579945211486069781606274643149412824095000457011493112776917739058634354138069910527449828758504450946199716199525342624262540903198391353671746138046548125270268077637460777554027815828906932546876055037867382454184360990100808777341955873059897728210691817488682981309097357632452994061250559588275370147636716893751090955972919026175362226970438670365426414813200424543612575505885154432250216842179247649164048963910298341152997775522948349098464187149197786989732475708505713616935500706282469399496241735120251516246205369950555353660282998577039314556334717781583020512094316326476938730792170521363274311400128720155506183695168673182838105805425877231148573772673699184514001634842710690693261071605756853365352894255572091727018340436420166923929812463539865333834956409601161201744316446041243144874105283967404651909952765723958719660047051688962675721202717798998145136102576380243362311646054812874544641247796451793307796946259359146126713930067395693697591681897944224499063707955761409033357406170002802467305369489207095030561451870606044005867029805596254022029169460949890940127870745012644379767751110827276954555458809062000353675039612552871084136058081378056800580376241142528709555689353527087445048860156997586850941190529392910708053086666293651378296984922751486383715682485278646179793728086530223626386585207203608028228222591560441010248076614293174019438385822999349337527971020500300170382905908472380996457427414795268490842498146899746490939721738384069899910864148777411629811155947046050759574625530808013886229189003950324226497562766086871178992314280841393303009722262899586147960589204528227017371282410409347256472678105077664512029041009567340247061532410340795926410461623053827392636882445971359258937132700447940380921681108496130024211527911980638844599555687235833358045453065017142448341157001095708568520608665484042785007672415606175605751042174494575741762712067819004249364174989622078856692862675589977072860240723085604134916101515915491754545909987373313789001844081186358485674555467189403707639440149120852491844394094229620754187937564363666007801429561472987193247938203279918237619234353696297329295839932754614555822594783102482513953860226024135151253065579287526180320319880828166660945232475752304514032178886404416679319517651368042239523716747202567418370354125969827033384810810732747701921852936962413733660409018348260191002633238254434823988020297345218284672284049484201555102316745733402361834935408897243906950117636806438693482227297604439526773525397503959339842261659895692137059799496026176944486479814677994214053841337917271954674141309836400924400401323843531603465690848727407037482780373267168107753231257143803450541157286935390675098479670898206830953739298552915268404696725411971027269942290178740079125718810157785962809457600124917281328386547028357548135027238008138891111414858937342192961639945475278075047002161120653283967328569837931335703548160483495867770216939903635272762777583910811942263172483545448980609753601186647836701080191802655799624482549942501720124646097262766499134316654024652074608113795317643432179625349489747572257094249373233402452621485986455845068505167695247280213680968940017968815283448400796998790532280085374081527398653447561916516378467559275707583177716923796523586932362848843924052618759970441924499531695453008370677842835154985694162133895115674327142248939996141164444008977897901984211613045126136720130558565470582374363541392077130223122389031840108015835165876857260330516597895280735680740029246025129909751562472261300708349055603170790616285161515119825119360412357681021084167825054551058699900981905045027456557985220855962102091554076908503556530389206578948333238243346842777790295340054657484733989523129974888742571287282164758086426838206717872601331178879548647058959051692665750309286800178090402089883144398778999380115148027717617326593394925720684924513605871754227344485347857005347184586092304119825648017406897598224149341140699010493724246513838609375420878696535743937581656535605603357879510996234363634564489095900670010672659598506936455482448895671425086032740792162863378514884179955634499640491881352124957012488193265204997309138432280076924040701501295492201107479057294101657031178071107984248341930757406402888894835344888383918603202296337233508543701896005280049854827113958218257143025980235331581939495725488462637752522969940499808191943765660815219404335673013443377333130535874948707898375556913690951702432627532511182273556011941665943734662716828745969350944914362446256497918453350491530248988459574712569427188796817674494827411540294078700779088423029416450708172003793413346700879189387841905354011262249488806889332478546705014166820391238070668266757393105336972553169364961135180554872143430015621083472465235176340144968522024226505911633388275059940174461186635888710861608721032421471353341158137759841615888839918395956591488482525908163436730050504341224155558705938713929041381894795126933674023938562538350902130097954990297633528625881659819754460963326283873696204455707742234198210284716956217683476941107745145801053511810782700286807566670465255546053524088159765307135355933609755314538077540835110598572806511257500950521038995896775885070045495733100041997853072982204030389345066081606250363806619596677244683060147780404181331625015260292903057397235951165990114491998464877311365682719944470891777989870019367931379152012802494402848214789683823813561096198672171829443855952936946318575455049085725485320582542693985984729145789552009891913501882558678733353587552679787796580866961993597110238471261117270919307585255136479634034637764275281618418143971787573421115507953641587642458872628425461622890072131658574856521101498602512348224991693006429427401887900808209837796391512722410682155833644628852294259447629227111909878509087967257815790162761456007031906378742463993592585558780195940118896513111402163023784309924590682464516262108580160254489782222157958777792919754809698547614538068166565535064292964122251982288501998942601296724121583469137424065109423058767421248945698658410872010760626599704180973740076500996211007671189852109656775681311234115058964115816820296582513157945119511426901525508514730734260166078272464254476347584020829660539704827422123326980920239047793674010989292793722940718452413215396504257238489517772600402061624425204992592446030971126039214677585970626357094060835590794989275125430201665534596120955365586398451906331582867987938210286821674480500772653968800114523678969562867394998095820564464663129156656255203040108017235464698976855603625290066369133235265675955558032920063882219909570161261153506706267220018966897252109730219983721582852286529666684612145550565722413763567657413362581611941603667276001648568189151773086925215972242977230015229965307072158639772752290058944546963320456496968363443931674096690626657062572615537514312827610265962682625487201754581022284713079496273757491756198288218905365849388450447513019049757707611023260452998729889880488998353672110724484578759260906609703060789810147711043359462528326956236199227206518606331693199409159704269155805346130727431067450402981371407334473015140386345964175292598736582826508538611247061041605069393248161448247223720908694338557235696782670237499928581189738340574170808685956015766159890488173677263779223979995136474705425329850703958800677413117819920869335831060583572071978345946783879930698004661855302632372582138827333194648976276505961067614544695856140442509618848194110703733244615024772986078884087901053396584120453888061060789160668208550975300506211044684783019175369516532215382398398372797678791883225100206642784212258528842121056353401205516740778130559335859817517893922600692711713923193097320847122111574059155101886121543241487552655360732727072470521365315933089449822164864989102821659767156210536064885034306525072707485287207101916461330985894875463886489061951221272260945498504883168223250353081582217826379172227725049737473172971589587191207850905378086181763403918294745403492031907022822703979664036050698322428416736554478188582911047930441672281379428934866311527333104486553148103818212309965996626161909412938016840383099249449552479593272410367018526610958903797784961561370120423343274936491399791781630597176672831253146846310542551107625890189441680890159586059782416187897177687652770166471202356312608022242038623857700202700369911693742317255206190137011205881575316813679270552329174931351558951214347033923798948167210637559793350402776200100489727290939381544513455628715713511440172372435045906371370108290245293466579343924008853714073539097904793114140859602891711096553409884404131525260453364166437689747111128370951341639414844800729728083055127663691809786637481918895131667895565219511657697251726643505772315716117416560958488017157747033211550044350317511374089407580453713852367916322159237915970631801023027638019043541635589574921224749890734337683668786503573078998049189540537397800338021077643551079274239826432227064255082676146691121731022234381491356226828377567312857552659170331482150483622752989409145290404972060939456320201468649066118369115610148218790587482014559530064770137889303917633893683242947262344612112557569754875772372368714023852089354631898975252991705293856426177049382975574203820668054218981848803612024299128791210046561672581466579883762393163874962730321427014674997418800342077756200718191575338598351205819485463418905262625191750557158291404781078251517777960516121300972182187173814591926748236333839296757408329226913856392200785598379145863396846722740319907069907652735792121077380398471566536877093113039395405624715545019564965045553298115825555619876809599447006907620632350136699609446052373697003148797845849536710522851134069368839825458908910646623114349377939616108048677622444083119498482019935272807041327257136090853122665513361262652433478886928596956286494111382537852281823033618622182145738626953758337990778063575929450949741086589412863787566034132857945682465912724567045862635013697895444415262216356517083050311812711785730873252031758019878953202820312557232802189396038397476642347961518062527983091215652226586333956008502940082131467067460913235330699772440443308971006341037536658965768005754203825304739986690686871862604419444114533331448504647088739351785671239749607355370090030231960452668619716066807854522424899599345173733573189795848461126487550601641348719710294941405587914859240715531847214611044084008496305530522714944848010156870693359501449510177808537163796049196398029295385707253091906381589832349139995452473883096380030451489734508972096403326260070328774284321034254851501870420216022247205908293490746980454067575659862002950443020889652614303320480681127441850234811137008573268330353857277366432330209040875229033981421980048137554173525695845505146103361523773756518456540316689549484977194481157449509825500142382953885986948980330947657596886627271374743523670073745425194638100447934903910793261147385453413958103251260922381233128659629375641553787430970606820862364875955124535424483509649569825545163939927359572040109307972036497537771387115274164267168393335577199873062240789576943518934248038627347006530118906136936964654777710133309054157564646895093626523546570613513447700378207701019307708616570775265944242549879166600727275332596412815258108116887614287085333276470997501483814758286628736607615458807229264575295285980054908197219027379380881824825461112234686279985068911046043217733940697755032826318248341538851992915926021954191781362815687320702745777902316468965096086125685836012458430470600212273711354128178229880557039416402452035837775452956276091270251945560567027774250309041999504303541470260033796938649247036250908985705921285251253066766325797175253928175191276253496030008297444978284775699970372633306325508982115754415022563248480259059247421095894892213682695984168434269870768929373221879578934694590076395736947251131787152367945523661479890977932405785499889922823564417588253323044062080124401322662879428899687718121747529300141684490431978908358572348082229934376428889070211864176382359087835637302304085684130015871834567375106574869497803715872733111414843534140994882178787975820227782782015004237503112772645187508332369188726628885069966770656501991530279687255629888579369587570670989367952132226887259066005139560790119997119982569393635084968308190278863592415756451464832997230495882661684815680380085046980869401689335226753955729185400394084368716418013151599825229154605315933436647975946285409495282386196237719583611075351206578110998036048616357218591576970219890517245303343354884462637864636016100159034371289549136672223963982597061826482311852966187252346916831804560339987244070939479565032703439908660900269774939375682166800636426224660351223857935711179310188961269474472246919786781358670657176538859436541865870541960442197475562209283334281645784659858449892565073276244842902838998898451864390115115976148193112754242478770808342717873229813084113739644602030453972375735945908863356881948059820833005157559915023986096471860283647016208378778533021666294011037682810722715661729427584826989340995018931807645398743064591290215910582640230758389185828127948540768126272860573968995213262628020884850045229209970604928842625592169286454681227760137843147786201793490653568569644195606945427659949181252221054928944366517049134104368817161150889587160701585554621057573477838081940397285168942374946212839541145112145713218477471181811205392713106315601503997538026048585695256292465680350408915980404292161876426926645518028426641617353860906096565509323753861254886200734250511019134627253981652796742665307992672795305800302606481060709827438790212534869010763944062427178240344380920572146440323830906750209063343269583120061909527236306795810708980034931143455016411034702606424962171575698169586771780083130627311528165540630626759927035675354098970091144581470925042914688456611594870524826606609975491553549485910107438925256451858239679077880696640805097109124747657577034775342744108131571478591853944735557238686853955773401622982381718884511514482910502142323385489970079084654809440530627045680410172741151424496895030565911995153668291608384062410260949344401406945963742216481243576807029413927937605089323416978496957380723371397765876309701018506480117933325376457255983974091576970714182185860275224699564382087209470319939576978614681012253789943721340836247447096663358061671938486818388794045037420159359297393548442578747634757664400128074399428016600505557955716462751689494653552768680699158716017263558417120996271700852046749081070875426660150365738843631452514492220041076526355413394774458272689461150639177160786022289767775112338995081048127969479386945845391091267067031561446392970255131083170756346770262737074982602583954323841620459390764397145368837072255745164486072586147216956014521848379991044480580014408948808719860462824663692482600310619339849318324065085775758283151047327598957896162257383234963924460189307010355918061604506394795942878213109433365999967591442126933033669095905041175520375365005109196726198190370331390984791382069035749658980471336671931175113705555587471321855705967447577415179610558144461403815198039641382864667181731795511188517158651775685980802081522282789047303695517555617475059839720524225441873735703209966828012833593155807868749562163306925599978724640060166174963244152917607384144945708853882325590686019766067504555125019621763260356809629616502296192191363211932270258960994523451747289527496630057346011874370018035616521563523798954579720511483116080823759411932381664450704323023829804353895672495808535942689687354521541728978832130748536674924363213610926324906779226480759358004587802970173377541385554803867181468644879039575933031409648333958239610686623359240668353366307776330138914939030536103239177773845108245695828922634023176972003667954724468591699700364436544775065789304007604691520492434867100875976071729881859918871673656523291272169886956701184267380729680711968135247112590392930230935338416757420886313778863971748497959612771255686789356280139614563028676039094354210015744257695469490580167714124609307524165514778844496809320584241158992289379617308798670789291290880158030548515338180107669663645031896866640981914675392261183783678844869843274700921785606655064085268701461698887559162756856578611618023318328836940592024617806164188597155310855345725530312393318428660774137883666181152576663709687892551380314871303366926648710568593828631430617301413923404649480290835666886092758479257012935454371906971961700761284292443948030715001673369189157600779824668056496147311775526793701071923561338326084017459808049548663233513145573508362237118437515222948459320884926008723525467094818023424129139197686319981194948156014382388672086176816351281540949997276932505471103391937261572591983879321922740924227985002990281660664116422066779297427412342305272968985342960006603012913289602180490692534221619727042284510739539801654186798215903824728935826557073498667910261876425711544161559689612010803952198201648793909798962841910225279705861125439465128000995075452377941080146511099460928988059851613269092877949844732607949118769828026820147777693641133647754724637091848005060779930842685344019535630267561880385135963889247144235618200068452188357699844484629168831614541537672838694971686801880606925821192375449171685879773964445953329170302259904425959273474305952095091716233860073193609270410224368503973194601533665527654946373739523199714586169453502738541369314277352812076607876776666158870411813374126614416343503840391573465842508336121392315247843355538890419009959245950237244762004026638385473753531119596063849295315036796911638897065213871474034075219930813652663969502842693116927187893435601414030226494142412468054771864667388507432986599590962388260123812273653182810242508917810691379718533552863785452505686752454072270557172689857358365683450966968998722449806344420908189733618847257844468871086009444987977698206929906536572324007595423084048659887697825121660470491426836024738393637705539483043035030717172937461653268774266657640948866349948449322831371862722380300252135375897472320438904940809482861070051430752837335986520060926619152037345792967845511572543027971906999949219217428645952355167309750401526646584228822476929195341010099005620425833583001811359797722565585756894081268556182992849901021817919333888638025100465051184609363900618629540849369246536982928251980875767030676192582787604607909118929031793929572546565127376501655303582727456715292597080314186487985291533767472060937029515260859863927776188406526311033147856629570887992098489226763169548795847530495569901848684055117343807136349149392037996766660162228569590915442412575297363659153075754103403389175461490472686344013940547272116521547507274648529307823441723531435469554176022588230698614399919366010107801730121775784867203134858410882976858975525613101611936223807884973594831043039203847367541633413988080341053439821803532698419338508576034355175911893222728514809526238968732830756782972281934377451364365324662828023031306226228392912480068290786925112784864526978683203569509004538529711474973076246740052418462918555781978167801121521162492192534972771505923484148438674002357681611959038767615821369637490519133898436479520101157862362178525965124228926823953370164959734456405271449321945527231179678329163716160520923391966284479248562464794820716541643158476366196752155058251373765252681143342560214974736733936902160461343763453131177589188950446218849984469411053294673565090838162662277837524667839017361824989731017815933701782130300738464853977068810417137118962456847087160077903533596958450406935109390093043986746450399375023377443061143476610089525711496242574766828827828009036282279238063756624902233889673255332426575149644569034577837804274742069564846527817045790055533840487982612620724222227509491641875933322044002571455128836595918078396090395111259138898969562517355936389943511522523604655098973615059760677060527964993110259710361230276097100384006690503431049661647468692048941391758303179395946606487101664614378740867454525692905150347212402817758229741195603381288326611433483636110914575030942466173451230418429632263825999710042841533971319263511350723199546837182669871437210636509119515038172645871108457345619816626487973319821629767699382707322667541685939410340392481165478713040082628882796677951742915341382544662438320024974972433967288398656671293642655178515553672188587751054508605062341550728152512277426144983204354919461890608122731674191481300886447107734268542322339875299163073820344944094436326181093766959029075676211131564641929073891203559042918203804770432234520233744470983303703078824021706080871055817454307224268414229879673912618454357803974900057559779721125076120666047909882682063038588365079194029625443752245539113302785424759157923125962785266113029735385920947593010823107568197997277743131034276060922945184553418329674581548710798791970460454140159451001433057604325609114782510512241519624605119783046001594605630098318131218306953297908212599065932771232390337014535825976537124842165211437146655796614439597691477359007886594704236928427658775532910825440693520739666593405963064263832847302378142071689821471142151506375412334563901031963959720848762690661916931799060892266893731586827928953120973564950652647219384891364574989214583471900131784221454040127742167221483464647642486115874248378824519453645045968674137429011840229006546375742572628390033810906874548347397054675181396704428957311219636296800156179533549134409350336311847771090964041373049171173890372707211326161992573849583637521225355037812524901166716999653300122450278596727604496871297313076165103378346667478856470880042404075373301778311124595708847442864585922653079377147121883265683702792148775463965656262699597652446880808238596794171239758914244379662536843946957598606729675238494320241967579557789420928583031359528026870620874957243005197405316329605076906517466909273963545377779148184644305091331221616390660175322599201718273993693545952374220283599266477116766594734522473305815608779735114834947639071453417402516481279757034270491306376397491203283197868416292722508632072341745799457262876887978784456894657167869229003645234657956039539842514621301018182802797168012547510812744460937290284756275996503519305966463394473745180728789666016984399287899348938869898166616085061408959045183041385685650522873320843963321866991905362867350383780291080368392831671964149974506940710546648398951107014470372192853720897027671447147469911583863357052329154056093649800601271168064523233491370925895637233352284207711689642362646840474972869194471184531964269934395929828349707773138989243252603426794070411034587837254879401689508754488087634350717101488782420890276219271690858987260884790419727775956120990895486145128069597376821644452697998420654929760293894949575117169633919137209469659474096569462526346791187465744334211038676945714672677321586404329255247721761758578752690391892891648326276396566511877166156291376068809942518129848283788582077282339217239411936506157566919473667610726961541322936119336656961402095055649849838189347042403573299136341083680174048820697833880488930975039825475321328403338052672589816133294961830626933965562193818965629577876999058472237106344629300337090159289595905269370168131255412877861717127462292347921821891355388874087929031381957876534056455187762003101909742159813062790725901556771411636548545374455953341314990534309124984587572716372365222824600042424308255078949714174801459650446629644592435127749985500325583999180701384101701544863661721523497702673073178921265358372594302558543152894955233091684348158423569470498841835969650292620338831555861673630057313325664459414976671227208357147702836160834986047847713651501110427515795008257005536724653482302732616769162724820103200320204583328025559286071321542403997100171306143080261861389391484498461201731995546685475269455307001807843709596433617488018390664645961293344528532717410776449748967242519483965223336930531360782055700785646540501801861653697447224242587598599914995342551371646093145868540453437151569867129398509194371292975928967574097015028662381467974748632010741272523602974182713811530210852512733063544388680801088037040851141443295449148173264874091133973329633538743696870686623911397050402556931559104219750774484880284746691428680250753926962656400285072487323860290160170736964454339064894442471730062642557616564583913526393141305757528834761531136079818360589686165315481384808659813573527635984887885003562686628138939671219581256761357570460810457902292366584506475023679802898028256768049361846889930382931285414986852246497682646271560570279588813057409988832883461198040190618844368798159597048337058490180738566249826535883592310389095274957756180987299978519723594318851901940365650820400035769362685352949398754412588084772946235611265814939285773386530149824826852112870853297823321084494834155729399425664957569372808149079167887896849399980787671360512420548456669582097110116810826402776155923642310974738162042863701456880617954228033188542851257509176936083818481351418286241869515504123593122568879378514088748717548282680788159465488899367359174796702161771152689927055712524887245133570392320208411240243452767618602663212418078275905580191085192731818791838347716054788035347755795542819192812515648499737638696896602274786292922813259847920754064597495378088874151102605115893801418551096379234719552662775838107986970807969834945692534104886403698219038401185064798110772055298941834515387856541186105428141363612471822303528142040976445146874015069313707794783653825628116330143881154706672051267856778144838869060677743940447856809890922543455291273863020282314956028873069210081613497525325251482263397263927417573298517428490707501408976253247965137830017431962888354970274575784794834282421401253666056625487092915480837506255913105003310205955573187047620159893415039895507246858849600863037536076071773149416781599478267515272703882169868616938625639326100817240508883570222161561194894435129993840575866742980867566738774015158283206433525037327967519344232794575363841412253971972250628411322673752281595035492048147661563585711852056194015459260370350992291258958674401380215332208822302541259407835584845731417834226702429403838036220318297927149421629757768679180965092109509430220121039970472380777814546006753948747933659317710459216026668069736271024667651518294172764073190594031216417307626475287486780522610904147272939614083414376369324295891804920692316926405118294404007962028968457773939738870397851006607741826620248375222891343836374173399939427598526648206347114563843740646655509961970665680102013303539035273901811819842682688821813283227735552742779454068372756661942711588349768940028062278126535275428191877316168564419391911639954983520275152972626095831458438644243247389315438257563674429067328696102239077085955098471763478066741996055838351773080016504582685677766182741378127155647764707910714798124545406141471211746801205581236133015646175550979216767532656032746463591201719715217233346337838466541893729282381516753667423996874146037203858833067245218072110038447244626563901426858003149705215450132511731490551837980257079542797095690193482732065710168418209565711155507831340527905385943357394669055363890621655970494344699544576405110900462249046148316044248164524527839186303972336073929909974802288221172424257122141570059291736892691963263377706498056700503637841904549220216148651411586029940184768103405781468447709096851813867424868094200072864262138750649564841756177563083706516045703192520963382237594338232258338103641656513432317282431831767501877754457202593895355095462015790552721370411195938064276635562653730940887332639695317682309008213015286473757966474494035139656456882395690371279036852185263296059876106476528045367600474366830589884212372567011887501794849543042890933890807360794663724710294949735350288247419520708178055803628350730621347735159483720037418135517772066677066109004249059398152269923201470665839477639251184604385096633372508073431440591845939146557812204204247404823650352874151208912429301739738929854748609354174072459322160803109588098491785909377273933039989182819523738382143718035022351819461496217023934352245492364965824587387868990834945006558898011785389701976707035015138499031197171140111354192979025649302931083100447695486512946784801994845411193289223847359359043830378027027393338917596582070110480204556294381832678007178791343122927831344486534601117272224252808870579706283039927204211967695727004537976932755889807998255677385165168200920557317954618862105351514098652477194928171040809300882806858290067920507959459354679265432587581853246789173366545213062893367504318466393531618677264100829152850405860171666308806026246705074544850774803608836385586676630183533773080078233989396234656284741975234924211851805538241310728424209149447900607980118570025362339980661920648854658453945589475003318693946758542253249546669052520043578825739532354764989408554528754591114260545075593720826638264124858678364733662385269994351966101543706507715328501506239085627028982963659970160929670142839371041554610260734717567009468495043098194138232461660734437759232503210372532774420607443523212958787178234062355241176407729661188007757752471973269183899596333716755839860749516443938863242481787813299382851790664256513197553057661618318119713426381269854326373467682612421846328808862517930263841390044530492124036533536705377995520604099835952217945701937586551603905654320273676687387943441085177646452445486612721861903260724725178130306981690482267994859196167951870508168855327885810690302871504137445597839870443225531437151029884823287690036247164433705863653684366862072419866947065767385082126771917140776540828165502691324921364224724585288706400773405127157852389203384507555799927171033978405952479058535897155546652479970099927482867386762011759501723615267930285509986410287955326045476782258463541980977719009915758935792530913850289254226091752973755590462929029717809711594483711954666034442674846569322356644391596437301875813831762618162965451374183025329032656411726615645415083246567398468627881301868367763204914718238095068365596947595769551028458340166363941592359474641044681559341598312976389291743086836495694173242918507036510194192968839217536768303604886106360287522976703857369058144071671406516703206633356569160928217155782414225857416155602525249502865560993814716830978252364946645226865970558950602897414710424915036124325017801235331958133558124650484747132110857265311390763090871725251854373181907840934356096976971035106435947277227384561563015619157875319065012324056833883404979911405279265277985622063540429063135984689234209753967906577251085372712906516862191190373964071926304417047243996180949684799966874788119189046693232730615091596452260833704403536380282585489296067078720231581707782281299563173124998009508236309628472169984415338902425379969557363766452502244395640356202639583416609081953738870921270955151683585834011968014778494532824939992889273803691783853759657392630857224372474850037079234347606807338136345627317630904152582936906723150581657938591709714876322308975319167399284934073392620026881404599647181160336011834059444610193643284322653401272290183071296125398453628251232727971980698605391349776985622326917495855157071351739557324615971253553001409155203578157997177746567993513989259608721446196087342644223948051321893692007163642660217225795073927580476555229679269198349608297371231099023609152329704744552058929020056248482231839239686074228256050327194546022447246416413144675819168544627154997161557495898984425535725950525513121143713023778406728320005065661142454502490461823455230149009260217947932366234555413997201161476160534638982477792365701128636852084777554497606092237934457411453306406666502133252433389070723812665302998015828276141141765401989066919288878807222403591651731947737085514546325881538525776593796927150487882461614913995964421671780656958348171273620686943922329949926819714298404413122370050094620919192916881112970443024409119777213529996334208965156339882217278230873778598099914300212945803024322922596802207346014171609299697496249470605845269588667280821736132103862319546829091752580924994661095657954514980747462809538625053396731610859649798184518686229341151418212475165576936597307617910340917713233650569711484159850383229709800952627395392986088352672643700186769433717581261834715542578227762007863209043348099818508590359434726795625489479853951249696897785242429453343459281503342221767772253887474885440354119611835707604182359628897717353716534304914802755540432085578292527434311361515911796271186221912539267049927787473930470413085440410617299259914850386067192783567997210303171026838917900041825079753686029487764926824074275014616151395891933123000137175573553592292754810396636085568760163616800746865749399213294029725859003824561057097508124871708763205087122006237812142602138096245859136924360368730095050512630592719937467168064206402368394716472754076516789186830593069202152970331466685734806291607845034774778205040946582686964204991835312886091744389598671502322312166132900849956605772603595379962243328173150466736714996066637521633758140606777605877864049972847709833235915484968251666926496818888041234175456516829129717213669074265079552722731469829673943058321788083253861559450146388163216032320868244821118540816737221202324887727997390199856492986041598235003907050487949677173755270835865163207083624740023431924492167603886972112445579975248333633205759015647830807540269184049556816673782161419978711203795504358516408721956609743686163739581254722486993125353968377714829095928939607459480762539445172367300202627169770683098720252774020291096142852061004353912468189260807917443611970317279656787730613741051839412277821640442820351042891331780931029591436320622066006319449571424022045075467295081087416818806756444724103543450106258075472611608606583343331532881923876610867813262470047812676039218375428920501569024184573039990784166594484110051643355381785580882442323435094036110841984357204734074791347318250364728347541180951735462741158305968072047833661602111192964581741022296115683869879611414092841141458367187156627089904011808886829496048251198995550115779926038742442956136551799032317337535944084415949679263088580711255892763138632845234551424178019429468921438379790700821947390122470870630934058124923709719481003643586285431598107875369258655419116053071386718154627218746303475529038211622286434212836608725288005737884921045199613245792157965383323746865296405438703062738471112170504696886698255977798083417130651911891295126164437622055840834803078965589091471555662750979409425622652742165583234570480588911198454610413777241687176533689927939546849926506956833703887638717721298111261168779489524343067941635401008820412584036941487751434106118392710678843605822147179838466073610911267707131347075510756932710268886214497421136796744844099893484058714483236657057634627627071834806158855036570111518264957689275156002031150082058418220574261580118965379349521199742418554860784497802801902452250859050277630096872292994962768836523090403547876024586863828626306900621874515778800585264667143232148136777684194344392487645852670835519727594458955617777662998519656391271265046646544607133542883651336240600829295749885250201968155843796021317724990287041811466676019439233468715736625391932414922980632326269664652576693168651292315946993552520688513068517614537786922142923030829233318140949817823488070281022627218475033380941231372851799569725955688145575270034808134710737333019871409273324179039819834203333656548328766148729572683595091982006888068337399115336347475489020102036732865994944466424829817547755340251404636910440164891393078093527204580422531510348440158247624638273859402264347276995725479700359296409211697477594238559800095873103911010893566411549173583402695143135645715376797618945019287291944104048450931500252110035266414943253483116655808899736944781515791249984537403315807777102644175474973949093300547337881547936805868108641186080610938367091289997657573790052447345418345048158675104432617087207573605627479224859242058255945622728446473746791880351541858901645329043064706887532278862402448791051141114417474422036583540985773445812022425387763648108426792762438875472231397313427540937962925143193224497230277357774863392341190086126075411551381130207516038970452246112765769772342714710033127740843180746347959752032229233968282475931647506647949784336102927682067202863362508630957291597973487524916899374727445570993969961645884432103998212904800729869573690438027067120403721557399872765977370449381108300822317060675600270686200271012129748277664306896318664582439937455582545029192387518999456652665766854461572484578769167165234679664176629717570491260388189044805032529742339732570887444829729731834157153939587258092775146920258125127102464788106030650989435258632388981946105438015163057254112396014372038657437317974778750111197978023994979918543625687953503174727123173083320580794349316670928147233730359097273334586540441074127115289706324518602112146994233050267152900525046406853867955937393051947982881794907084105060005439753016263692949900811105799452296721866933818319976367395757523844276424686206838463231544283104195706478087085434920221850665244112130377208090731753386138908161352553439338123414942182542668425649469361233879008013057695599933542674997982213944386836896093936250348413716465553195151587668950168172575942869720296727046508686835819039232580372530301591128024456361371603767077432800592000243085104856894173141419487240751947628440629932745173742237324723995519760726513580041547947986443256602582860323848595446933551621663612753588844364707404863590942910359003095020818448598023057805710540214859423827227731755902004433752767414509496172282649214841850915094019744328617742784200313039217722042361017819224895697360240675006828171585486327232864449669547605974082863662375643594171147484208180375890000134301552054702738721580699098448957348800412554271233393979886530334724252415325289344232617191441578396586766376993001802481712613310028960531186240445048214510211970119314319307246019421396157659131463399154120879552485017991741745296056832551596304502796941685209661120409793700438151329780942909752324681958235937573838427710933470568175570028679553143371380894715926411314668689627752831157503891208735899393742307601680145821510838993972550825067786687537763790419072841358367674011239559876568142222128457405888374896968449950946861189265893220517378751362818055279629882612335884427590514140767516639820033506844990992996246458143366413064119179250181488618864821071095488765234818543535030730723196788365832579079838351645480562587670946717995797368881233266693542049046157966023296341293646833399411708051481110612312095227351686356340621253382679884829791044493903257625491726426754865206868058498503047019010799195442715063817527854476882841666619396153812095920066718928517490011381120725316267531860973748801343153350618899496269148957805383051740958592127501294839076104054394281689331504165397353724144296745629300368605265016363041739651638278593541077972409796710650149336699812581378831355052748510132702629833253933653437584919300098968514723534227925138219386509305637834751490839328866439901274335385399914749219726173679506757183354528365577314479643047167358458021902477378972710622270291018864425983417408272922374299436303676875208530863550938514149771427518854737531333837265184095606403397457042024400396008385709220616471111338395700624842981818167973657693336924118410949871631042861190611657798044774701060960697807869716115430137888346828782551008319113524590827420125279313982721017230709184586302738328139910344748859185004071800869723111103250198467512842540938392742420677648503651092753584462631756477371336857380234744181314198010937437889581892616815634032175134239771356816377526179358249128017882427202943199731212525734625013709602222004358661002411923435667415599359390754316759916643543681419073686792414061120572247550803377239665373927136538542134807440662198981258399162413945691887737347479830418324267074831724077448638028977141842255274605444337891379559873541535998144944799862474978571330324894277401803840612405510428797682719849937339326529542713698993077656210695222375809974995254081004208177395465753508636627688310684314120488568264518572600388827709453414602325309616068433400482654447088751443925100760947573994602521373740422867565011959883437198914467099812671446578366668452796835686752378393491510160984284595929426557241381180443133815692846969820687999466607939879493885000705297381662284878631425388104475300889175260127713703591777403445437740407350507776387014941721004066066403796262479082667275656901102105970872716559651521705347991781125736740151352563513330694542425901742916571037197138942818610362165728832417775575562128133499265191603902928971397693123646503738724011226083788324110139018738942469551049793612123068075650183794422367617934427117419512778184151565563162035340047857487772272384429025350081435715891751440756239580490693917348311469222432765648365119121703191044289966534298671493051774808813232416732938988438690090808709865854903111897242584083105771599502594842646955853192493093637836344659712319879499295687894602829682763367914369307193043622760001924177092107226133063830631308223239795688244282474234220094457720547370268696351397961853436906051204416764664837727820040276613574162734481308706925820250006107106831987971590321288737321085677407068390916762083334414003237833054510247182719797420444928858383667535022471983185243148346707271224493563105598290391853185687603855886155358277521181235476595280814493601342034411312891421472058990408485781654379488306910586441050538876284205742040176563628893445747257586028615654654094395841453441942108513758515319032944248466329075416030877899357075269799453522329002320589156077475554945788619294406007193103872175982197459901401494295054924211229278966516342331469932561729335292893696869757225992355760501695598703834183692336330578310254087846936275472146682636923124372381033398673834425581810803040312974687183769139792411237726067917330009606772844652095027231467037292646051338556468753180175901606243520836922801116046402421272811530185688656048293756931777763300752133811449609209340061093747067905548391264430617811671427274202772885431228643231702678015145206478571167134302156441247052353512773349035637673288851710942219048563909105373014867818244642734471431846585339061706080618845496332290045923558450700240637009224648011243163847618843328454658788608113295206789548540199263226796196511152687029186249881478504472596012795750311454987352084376820865138367261746906114307640586042061184012839838969088370270520956660921222367550429566221393081393008819931320358455537812050853882042083230613375035787029311225169877206163125193081930017139354569933602610503609867504326711001605734657411651782770003378839024084550003073192740875102630488338017938638611414404707526915009240151924185473256633928592502008014391786879926042400794966419034014433385774762282464539107256330360630508347736130906794818242151700693481000737831605830451783283780310524968249867061793694444301873292913322365515071901704547830967728737526214565082613734529855432683122895624783647329207628707151369382599686454704171043057717274462790840927619564035774436591530253013829273272685624806028233045390216405693690639264875630191005239178092380585121074829445687238441690970929565268952320416116644852843034017816353826753630765962824332257377723389863395513381207848795146106836995285334140432744186905542552722721283311991206614495736421504036139057806108496987093696368027412270878436486015466340535643339066639405796570040738910658199237661454522796703003338473616022416376813775689833481760868132202387623746219745298126300087620099725396578066214913275921543073518278671180416396389241246724074980864149222668669162004774485022903108555727931617536104078291780645573889291670419154368764909641458124513784118052716046273574430393763036841663073609857140074656634914896536563250079938066976367670560055032665885697864239587489341231292291399456444116359771668957528020284981626148978053353819293461907941385926561919228200577263634340331839036087241521786397842099261057030428335163395921544578189116828847455602734859076712964592183955786231125763277753140986066603870626595671442853615680332379186005451089892422438886275666971052909763711350194773974003917717638030407150568274649746629376003658484432934007684470603255296815840449185273101857918383602697892836325497864004883372101721209577752923254467606622472075093302559094955393235412412844603452269362816823831021588014263227737003297744113569451092615122836342520159641671793476667376019545943509116711003923601734295213261636840582612241144333680648148232141757211411897080095125840971371997227912476271180409239993263742009170049388144488648350540930877654009112211313410824598912563162285236505664719121712979875762634048636359361335834012113982917701905093108966651991349085965449122049093539607537602685474328361782828621720428157074588976899729110223368712204766310861555399591276025947342918237195477467355899503494185317513737760703826597911253970554322195055181404020871852090006083760005647084357260330119561794697608881349201735477777176950078492673139999579795086009418965558971496468564080507243691057633402639221623734148223513430090809966008091490919288645594108994783296550521001102971372123858712210044258510440911236645347149513173201190128148582436619592756406625766800613765333417356772187699441059162970520541604559135010992086313328000823585346207264723286205293238832153969704034116254475237963976605183334372854781147375413242500639455163935739052458822735115559258370489861611543883629016131763987857792689421018691270418988553845302390655862978621230086872730540937816419155439667971079726394917633379552291043329692966182650862037994417635312217529806442665809613906807924715613362391770178050814639647560940421570518950036283736925178339191550566767653385774470856165509922547042652828768975292751555827438767406220678823266247024736974956262036853811516214484892824869810364581616938280914434573740825387270004852575062150412731968507148238177098366153585587149599265697931482649463408536166398149839147215516640470366841786849376587988873062105566738838382206314880415507892171274409176106195539884440201037078761065717698583024769722404485698203485741532127525729937646377727060369659855329111203987301236321532043329290044553409149416222960087536261485497965289812045795962482667808334982595885102846655438702963024980494165446938023463374123439758961760053669271555517256786312171437120918726524322628220523351053312918965334464976950825903274680657006927632677270830670473937325118051423987043604238325382346358357839943173359355794692153960200134840707808410488451137839576804612426181888118523189030972206604060004364003215217598495585273399247872639878425216637018430502716863640449902766704269906358755556974178445732223316961089438851035417247860896685426595451161989693493443754047156608663357979095118806345442849027862819539822792937491092650533436610750198258118558377313373894492259123954690761256144282490586117097512947671392121209826681805631394489237807806527179126213748102782413271931654075689660214538605986576336270874483475152654459283382912147991778481256335239856150263750187448951280641348427710906731523998136290837128819846421666713572261132373941934894820849619312899285905725875759723125725591220629030387725434143784932651577189162269463568850719180721774429503588035326850191217932724151872825637838016707859988871165182418207733296639178175595250987288904748215008841791036354961027213014464284039764558899524402901570629756674726447263472078023056484664823296090384752688837533059288395468239057660291606096184021583679391642015354921690226081176084787642798627639252540945465842119735613847474244581299585374206458822150344644847801314402816610222521171145892425767274776858927907767559761682915922720369321883316050273160270168350073008297672639560389365041802213112750401974261867143675720213473573005600970881418358723106891647217968792851656097761078841692366721623873321461328081002905448709065102957223470679686789277935428330019336303516128773478321929023194400062720967418893768359709083872546341028942155633359606802502138105910073480200979730528240671604096968865798151628092853923284615956342285012513661058827962816688162261366392393336713578037363981568688091995684512121010806645658615795133907908009704675989917112086863359588167980658512027724560735700286980389602925461671617748816816449573286543563414200570340025206544868343086220114024283265981097213620628567970497276125537895381102533004119625671282895410033113531625431471401890872347107031251538313461415896339485401769825414677444508207016237668709206413600053288000380430992803324152951146688128626289644902004791875426240366601789144779730366911880871461807032063129156452623331870722260032527241455204523056108952312556158253194404167233227773843829682103771528193190866921741816632895899084704315434802693768036814634074564085960102444897469113404610153777476196293706660377316571513705532618415173926256449218472669502654876898543560616739892400625817557079329881443568752588570873337655916346412223077306177270571203857819776505268402850379097495155688373661311603412738793753121040295834122237064589727068235651250768098491336929947094806112670107252564303071924489256725698372924549021781160060699930151693614835796564963251964349402196144993374998634007444189277703797142332097786524214892052170004707957420632211432059250998399191277564327903496326233933529893879922756158326811228807451551681340318430921332828077942435483216513557136772194563308669306922198323810820268115768672022720699828632785556151043649699977597138315930583596785131486695754440372730814647635917846989086729815741929263081341538035033901750958647610881063981937856549465708737526979250742557247089026134344797544181364608437316538690682120596819060205125358537676406420693211247656239302481200198986897010800242826847914133865437749505113558972184670892674832293456764585470772931518975298934737403556128130053309237068361335577972525447695629225144406189814959289312493236425233453952788725621732680002281513164282474008042938103546086339449807879480888293302874243325181278347067424734169785952107130577467861582809225121081736353870481611085567020796762740589620577309713801182601565062368521339061490871427337618628109997138121864998069741328125240213923713865078900787588794470128801861216741294502997613597992767939470187167648123668196972104971358046287576077110868511077692150241914361696651808570658834689631026541915629917566929359657756557120844113408689929752709554314665601278648620773181916668541933674929149759753489884637717496342132317430391947986717773606136120321244946377664463284086984751055818897319820443265440509282004876602305215980680055380817261727497682920018132668549036190292667563790184357851205735216156451863327843921603377081288520427747033942862958084255301444963132441659624836134954486718671341719841424202566895753862364209287101213271924555175533376679968894120689507495331376623823022476660011999922655327764528513157191977043503735531974370316317876843719230075991699536702760532275250068916494405111483747054011428045433954131032380902096074827440623972160715550727737540110745378929405890505358598959489812651677873254785881795259828918583732251630519150919916070564357661832286638390470126989813900969932640350682687038520350762397894242606666983322058708498339014234521636238814496981069471247223505074577690048382476446500917422055801056268997067383248557887421421679693159663499120387794248262898079114583047004849433409389165556412487180725651127516484009903595363187917127767631730661779890765682398985707292095344677076737056966775350939643216633767713274110808334688071736238787721221080278823653243510925236523334653585863348465704612977432183342661838808162080841567659470080508504374739444184778061101087215667825130530302791600762467736445857105493578211303256635503588356813180249100049493476274897660673380770432241533628369624494814757435345689624531850971222975006973600667647007965301450133743048245213356538961434032406019871562377346651490506065717930413845328941600309828784747468971024998242981453321552365033380592492977758545347843071442970464745717652908249512643061037799813691235494109445844659918034344424317207863842049923762114304498210531017166028447191531607826718253822392298219232195314405651242911536676884523619227306198564700695183237903129324937658822351037193068251428359918058798995614955673722145524347128024688816440902605828391575277964329559450226674278060018019480434131282339313889148266627556168549207144648255066789021064324066351300406851881027542898096598102066312212946360030401589425139533037011345418178445197502459534587971786289550522674594946930083290615169601838845481767895111285562961822912186824192366303593035222195683618924343974282971144774566119196268591590004998824421687644808961092481304565527011230068159514954092244679044326136636326584893832607438736575146115582650987290916182887887860902288908028873121274582698881530214775771048369494041778247460545188264922791962100622864463445229730448412254868750594895330986983867091838192171023091036348107721425742624727298658894961614517868690718626051662585178142128598147019643856667049958369563618590475187647002094833097664125019262049431629906122693899781128876813887035795463990337523186989211449601497506458842744435263958126469673871838886853812188411249316269747616206681189418512331463395899921219186640670077265433330593699152277270195826789464944809375848678436758524441499043805539968879274493345563814917960065934957182228696630379915912583531433699057616193145475795003793676882729476421781147152034613616634077927652956929989420330864186496577106458772912883768167376835954799475226903431223043662423240593496617455070216297206579709112567646995719941477292607760652843925957020348993846610839992562379447151241920745562390109255686805773137291687333713000811626614405235312823700677215882233588046626328970824497674242502648751088071529726521477842006208220608556646211203558609245101599564893898443952252348290920093792089630329913332101719320401937664678401480370008577563749125287824837686188657219803158742058752729791697183165187961968210472911674032135491130321521533221901453269087588077489756304775466842829552394241879329877813439568489887844541629643832471309269618796699124684705282692262511088558389127369434419648288163452630359680298697159323758731448276236924266574777138195354334191721034528000149341642353342716532710307860818601800344972668330777183268629094601982425728901394885244117024447872954625631174539001664840254751539301417376342252664632899618597104392164016223193568187254423390581553192183675526524400877307742644223216185919024272802578768264068210959200541636151051240353877603579707224097340075136058768255433040035744235320787681316062454068352444094883399446816967975426422586120552930471246393914263619637902903265791449689117742341644207209512776344655848145319201790687719614272997452215768367490260647135111550998001833768772505449865116015086818512333184970456875933603433451474241906373069606221131041407845821471276651365366388930156554877072163888366142919834148107349951319986110904694343642958063172807565375335931575730199150318409261259834729065651097566028140546144727590671432686786141844271555547916359042975772843205693726123099014540637413130645497957101675493741576270337635585997488478237208625901403529879662185476316367684199997989112245493256955455875139721236925802539066904075539752177110499330697674147291060074947579926422081451819821004671329883699664983228139376200754785531132936713258925108307721927232028503315610682690949353141933154124477109719234634057079618029546564024027206475466610715242660630600615184859889611824416453756745830084467528323146073831470971405490657722277150908441303638657665095544995164805179457081740125950702720365126380899847568327822396190158631335300170380247590136148982840096228010230511995819568364135475569953298707476482436464123024423546369628615125161541118169416475446185014331241080941952653051421146026448020107170220159695728737080893341873920689955423903109648898175215902847339869142250003499365444685926532180953552908700486526032206904539320220769210970456215470634154589973144623923521315872949201589822161170495976916942445295851197935841181952133666549246038393716161795470774325119672090439016671243321263265613480024655800524479270898283302920685442599835983155703766139403490492479922754431527867234538968530540509775689659543406331108666688124457676969701639172285500826909386570037658953937901078916243041974319602898217950979731987821898506317140094379179695428098124144716954658051080160839468014964640784268397711120713265721010715007224079835704050203510916688378430914425649165194577111265982590737231573046241895477656244244579459465650415054832977672594847845715432022236452295257558649592413804926741724045357995918086992531070056028721639390140222899820418005137008092001750052288392882932836615589526282690761895589722163287383417351379455217360147180271118624493971380236704918262077912658862623050664952109219964300972696274827245009939681390712173878167143501452842938338173161246877138817233124384555323710120982832981572414043634514312864643367663029095241946099450245226798194552288025159118646030519072258013405881204756456475470544346714130375835372222329066156484856492086230726097432509281672417091760445736923482698755530837631955143383510281935148163007592208143174793194605957517391712299346134107852977767686575949491080769778675891047899267016304418573018985570343560599221386452866589270677898097622098868842525892831702456123097325506680985737105369096569188810221863978826712795845731958061531202371380935387968696137791755551031134126343468316149103814238235158797422091244755868806417540457868110376199927115134573090273147193549170769224117156695807232910665042500288282895046774478098588895921614447983060881421120867486348911064202346691941096531476710459411840357977487049734448025425569833494569920319428263533984676249512323746698484870365278932918567418823456919456469467103021837730251607879816794104804272625523311721956563649987526804986123205851934739847866611937541294281687631862045290867829354425204950491721519096196815747411524196254799846027139483177234862473575014246153861469145329920433578174695573372444662032377821379177888030949424420576248591040429423544108544789351736712552356392254618151983257818856967853657043775641825361485615510411686829021305959761820585872669895774819477773003821130022410403575512861104553685235044254713917384389650905573706047522208649294730606075818752928066476699166868053519900302987516353202111623367062850726321909864256688986978619566459266760178427531395669565001039091464367825660473144828493363289842538997277711866239573053580917077210457542635346728715033790724531848209087827044593686683031658466039744243491627385225986279771087740501516952911000228078938058891395694916751000723117300006280508233920654784249748715377419571156114136341862871247396343321494832364764502321858857579972941275940191530162717860349886011936633012520434324072468009183816161569146008773465073980048136060795072019873707008712490322695166641499302985136302528030788851780113067255765088432394281592117279958333698666657185335689553262457174878683816608178120505216292040001688315976133649686453650419326594657219633131521753509750632999022936526144537993809469766038298998759352081092169183987850518986128074615254787085950508220820374218942837451211188307257398968130150832401094294827377817969248081886059008755983686832803342149207108039515812126378617523954487285379397546905077635298389717833750332238309914815891772290759239499101534735925769281601161428951122541231083930789476909764110961922451852605682009626011931284823942201356134353075639046814989812584608506449427436273142984675243353826711695989084661763747457173401126663321712637991653695537046647959202417537563464939346319074375097611694800674255812446711210384079588972230315297442148005715317071307662822672734237013911349651509591078769867799863274691784304271601326463917079801147897485487794382196035736281198891604105049034276417737114281955407134525607182128951543752905533178469512899940168905732491576172252125490136589099290352053605755095043715349986123219906085842812376113597982915150905276863705059796140262815876257171908592354556404981280192525067782472141160894310110118725334044016052698328157640763332234020739975533836006107111658718139115413574497844261860350679167824136840797398324302253272270513720118661315121854652615881913794969136755984126188041463012403853262091173596979334977462256279099069423301210998125551596953254423419148339335994764718801207256283134392734907508481389747397205289929110629706700421251326630442597138651275630136806005925897310390741577537561947568474035025322352487639457546557962234108370127904488138879079056846265108233588787261412057892683222120691984585518682250213120958081429190387116037789808156306857322385276299223154596811470985063203618418526467269364203471119177548808438124299718798481961614422836059289914164247203125491097683906544280809862836484118538049040165033639812024398015866180594823820585351624869517840436544203757960330801326434759142670678599968720465904100345088697071245480611586753156763649276957914620822297972396337036626619562573028032316258403234284592814295560045687806597255309480232288513688882667583608185743620788439477990317406648957667212978659791753548846554264295675029417193616238094479326430858818472789223810003751104927991358781312764592120886219340458588353392982425916192203209707840204779019835671870477016971519932574731463407483523154180437103169157443381970058876278325887437215769210992472395503114109665735620902009877174803433579170579114520449655763138367145996217246369930496338599012522664711191395312880141503502305693678432993845155152292697616602898195325613723850358697815193636350881225388018086162900455520080684940527462959693833502790272466595324357381481707316752566234041030073534715977602864375258750118174372348450696376829672872323632129306437418099318169770137777851403674951286542911874992928669681542617991391530388290503073789397780567501369903240346581405549240436591862508037883281001549099390908202474775758017483470813105086925477053919354999294676499804839370954678177986199004431477889381516609576356121031339366961491289388853442218855503132999969359410293303404854920943986531546496649700837862845417348877008587172666292270093150291927030566279291342023514150258281124632886726788166794120225470742451638606649325149546182306649547821676278961642833554940726305782793822944403701313230703995640288858381160472069485993617562675534245984986692679392605777860477826390503291672267450155696987314606183881591305028023260541105307079620570692281396920606409484243575920415623687769835192748163643626477490136258387994411513646882697619618884095349735939389040820992005600528046013485904409576831943096445408949914751888501642293136339688626892343913690399236683686319304923161939315202481683017116972997784609180993001692535865625640223810815744445411903344449310977935882084061623336647628863735405427735014707062862711985652307327689873175851256288588456427545482718808245435667490786931265002820541993877674959482651834606306111222895531259545471963425413015825170769835000135658958692330489532820718977945088676439847098906528001287930349661233803460186882051559111937647149919317257857146473751360674826752305671228880188244742445450148741009185149010637398322429116335223577178866472168480224072464831334033815856155565709025314286513471574599063174518745657712181650718406234464854797787806780037292692249050599127998863007984888057489086175234729324948545781595021220913183033742391057169009459268430796182735495252639637805231553601044397453442342901578322216094028510062923929030888017939417773281815321350032720444270310794161175470831886311528198500505489481812704317583938223474440664384470449091698890452480586488576910946443019979880723782808658253818468426409280896771489524644479467837854004566743590526094117816529780919278772016460846080759267431499169032961257459229302279185988299034910151315626815069286341476007219693447322200400215341725323848906125345626478213978983222722674452182613812383892216036326473077897904208749724215352830859817875389527034588213412393061861004388368400899337280035291065734129594433898848442138638089947726266060547737530856108307675070128413723248758500737130305269541936437720865198406843758870750148744594280250522414208667589160404710754235736831601810897874802537237892034446263856915429924965410587611618515010939647622847306383289829132460686409866676696436360281764112518626827189988040958298328403343480243908354804838022986900630945514408410990184053316764155468360287513667739867251429797804815536747646776763049510005068657693704690967440207225511342138456514167929672125986699141769749133663046008361345168716646996263229296077943226828186531497908445018153237818985833999430078479989951081579526614619123779432600221716687591400586070685982258799383206554831746465809845961121075940246253187023434307314205132315715208694533205797090865974651098676999829027881570886373599799380494643697346763403398765624230890849586153827189273732048831121524638934696770458970141493501512633359768412741768992679046642482070683746666185942502786106372116916274341254544920108445921553398177395432548574286976177561729619398365954546042418964057221158011451991970072201131939721247807777483034529795670984495193305340133467939895399462012422025343730184946935790106197079027274260993985164717583686737236230675131202918166656237260499269141913061948195537393287215956961720343120985512286631131553862818559493149049402933174414091036466643486507683202065685820688935552224297230324768573666198950602264565913815309504691208184010044503792067130408987678022499461431345348019366208083880504054982330533268030642535256023172649281214340358565447722236341120213251727334181995835934105722333947194434430007117005585032033518258100222487377679338249742550673703161263969198300267164781884265818390465114181286842575577846907760087855203784423083395041732302654374449429203535680665804734949118719335094226768937125597280449199953606653555310421091217210850742778145797768214400560166506450619708585791277886956935667834786063967356475442279521982841082573204542053598813398813438811673220906528282417409023384145777546206818615378000111142511220091540429474084637337125779518458161868882513847769244182218831211545930211418479602337924201360991767929515782890660109353235469679514802229221520971001575537321753530137542640995804637217017943858528233481825779626590854121021645164137226424120999020442221534118472180964987900492929830315018311697722163916991364063361413251401482859945810405062594352829886809782131879113004104221164596421456358655814234218961671072664797735902702737755238986223969211059688479329919100136171022749227684450430234838731711810412753211107212948924316726696100075996482675524917288731729779139077447845588897102180865505615029347446026832188431002573702431217830965859105109790398521128198840703039716257068195372720702672674713108743620704283553910287420012509903210313406688611209236880417304368394488145018399382496123925602909596504360652735465970031840681132656261231099309657468306807601875886966154316531573354292783074476057661513074634410361167942487929037151283343673201977999301086255283483821769974564631288057566282405759863080136882648247814219342816064424363842096829026271840767137283560762560293596862330163977760227225291466575528429631770438065395696895147779775998356704879704550500751822480463697140535061073222842813695617316536609081411110199422574423652106441425804986166972973499684789711157087543745370868681846214709939858285026372524396745991109404272835828976726987904809468776515402741304523454915167469008751877616563227988795525210292504508845055108631978163035288960610894382549289410412208276598735561165858698182441416020579657918077841003082535635309688198661692803864477773143027528534490155948093810611495530511747676317765773694174817691678308569636009639170942746478178460769070980204028276124989697203009895029554392422176643104423001350655544323800186643291796893487870444253056474184957613968922064745485551743827979268217160542087756646138640345563748693481963250075955890435360873048144731626540723266442885038063318636373421164244765171918668206040892232236062215514797256052245453570169016790002302381177476608117766305709812762952486579147953257176460401502083649838706687043626058338840129681509285610965687537867566349419783826510196424452101990673163291017107874285115169175288763028198830707118256389596653986721436087118269137266827479447907166098799859140842811223322799042650411725939852116686307601534570615154124191596952057754756957510944599078234105815839020671642772799179348175722800467520597601106797900261329526080424680527822403902819411794298017616757459946640396283086581938967633052622724537742929351486111575614288978947418267989226592989227179177081931442207094376843472052606396675853231212525569376325454369999132341515882237746334683286639888766662113051336842075293289624490716293533761246458621092608527838070413374163821968972884891210259113142285137703385856806269227428302335241519944105478594002127010016749767401178319417910674502240694330136268924186412345933027928066129835287710629572809055118588365529102646541590654710940128897658245257254317706878469332257821318318120348411095975547298374633390875468339854474997411221832507671610751222480012344266966195368299131970421931957518228391495749079638416683860928524102286803205000815341959223229989523644760906374376624800404325112554795797506873933083635023814806496079694070066704606316170422628600523278168761785314640848363358412308332459196888473006187541826295078068025351994443827486987541395485191455694326685992724961292324620033786785885049684013255510734327276177252413848481730290574516910720957837037140204540698463346820457280873839217322516308627573449963350803188087008546061352357454156903195985931055146453214277017284775887837305341879092140936879868380412467049563210897045665488025407349074314700381009732522812118017276027642821493853227160546228090874443749211801303658436877754956803107013343554827113936259545138288642213962383737216389547454068620991251274199409121744955139244740745592495383746170928348355619184007761410934643491132887623435071384320785636618662077261400981470127735830422502941048402269975217967274552800003820365271114641001452594789245527653078153543986640470292865572381040882389870168119114428334122853486409067700200153636137970992052666045458252964265027102210580016988851903711271896359770980726743572474840106714664348153151281546182596160394370915395405495711038057840348122670583299784105300414892300475625325174861019948211493982850676010344053124584184529723345980149717212545843677877332303505471593153412430052115490483494505375620715295563997490405167727382186711897401214888156969175172339448602828180296009349966499976613020281495508392485172913901664210103308689948154613863918035796027592260954969924820994021774737087001646138630353188748115696698854562697839284738047311918752188723917157895934267015867166797630665522360850951908451612850127270046545483950550116059466402840949647141771998252953541162972907855246909785046728386923997428071230481609013787161730953296007060199068853231366444748571314395928075797503876407219774686102315564839404896905670678564628500810048781766310759099910228275215638322290157877574623185806601760805787821894969737848221539103700282962630870138413698704808475307781574943447419884392162701468092560862346586465669823006808087763267944011907139675516120666899502142100595925093235380183646786220125231219065710001363029760310463448212339479238408811165484858767535107628734583107847606064284359109787766613089322406167952593338031683222248814674371707547402623500318424161817740060529768673642991645799667820452702163514063740607706129138205953849390966497793426433945738217688957289200111103964335694227974613386419504205982148373387522888535214156913405226596331455192753339299309147027943199344930277550307724643109354605967136208745240933623040221578613065455917097361513645553438633175415875315317339933427642560141171629710372687441394745361311716377173270736368466347226590401320150090818450600204239604357899156127281586065203983228840447100136144488767767249163974018660422447198314783554589765508591972626818797089859827808217642496351599386177650140616221561107822294419242919272782189284098812818228746309949864986674205812086224816649617810652132193834210461079592063024971533232607072282892160834028290734630572981459086187989767787327858210651006814287839179047034129981310943848826225091194686050877825341787107446889004433747563454234064738749480730649735382686479271439755708709478253532250803303261031090582171806674069883967564134095055091678190772442725588004501696851701276528945534917594101995014808804347270590941455529844144997512535584793723736500781850755703147982128714821830671022604955627199459084256798936520471929821241553991288165975054260326440054850715555159359322041655847477773993157973571389720456309742515379872853966154268232340820057953349086736856148475853398826626179934531903427502916900194375736610782742409129548784079247747163732389822829051147506320562771093026250991420601235813250887288029595181992728530647633918716255284812509606774596390931872632556336387831960170656128261663840353098039461481614263008908095143711959027173871378922641023260923527854690864514303714183052962171763823497610050554920846541835170313884784017173010644428836099186629329631941218080842284050088319996957107871397461428115487145735746337743892666154049936959164602053715862475054944896590173997859837434852635572945615039783872708667412725189848551492809558201917580722215045810071723005836224804507793606186475502021418773928626711758519335628875596301204654854744782201922125067883872353991166453795009864661231348406270617344049356867778401554158433775388757355789096857412960518247685206032615994857675405415414030876841469470793819354298847945336478757654423384320332170015950477985866591156834181268035664672895135912676971124742659425095856443137791438607141719653413861268371530447239629792671461581435275004322222161159839754648774664492273983627293497666584031217116919071631646660801744545370032478559019329041699844243580942832333944466261830017314986191415570155563439769505423807030442511247630447000391940079486801672880960264976043556944187876244325037174137288434198277909768878142193477942769843366080690883510967162002741771609537774556929920696434019132198171800201243219443010240493667351353655069582538761217694689238089984245563804451623769532685114112072186098040565995924682039512882087181252679610610228609933163270073652727412020853491424934457817577213072731610662561233456528864200349675740298975229585792751717243812125962560084398390399911947984928547642055951109457766304126988790519230421637081861960223647040916121360614139814166573944353746923344530393259434670382029719205668055443233351326928247648964645008636699738241984719540051484353014043571896201334614083629978684802553465588025553469734000219330161003962580609448852974157044096992698079621988038085820541932426241474262720126973047601627620942682973335210611406813339768562747019684067597953181517708094998453227499016496677292106052137154560630670397459367325379066950216745632595129642422743783726732091207338947274679748626739119146131183668807070301132508187688103848173639739124111402084992263739036276035979730917265538524236600867245396501067500288318418256116329565536946126931124412683069332213412304209064099849608408611268039283056446781271883465644745178468767916588460641825679494242821207482507697216285557272500721564140951580932646710297013241550081182357694767785091058075495063946822163539723971481877517735509201102878863023146482766781779061906593722810403332957196669797077449273516468004279328948343660566295276043063626672944893456609425984731134807323425192756792416586378627654649803601297273790487339153487252903567141023589041816964742800155643686584418469674942823055532958811746055801908068314156707450855824144892858103832376222619027195402280115283943870144728295398535203996051211768026645969299485951340999480301383710249619083909540683335259011476245021628764774900221817457381434355364495066363034939090218480471131320015095604257205276827842042235994251959250982665124830790383141318824742815189708609335153385388127260111991714288814719271112139768954304526581515959394337014820550614636813768424844155393131164386032549370056535296473910492052133927480830872025641658367673466679701583278161698501922366467053100723124469318690382122892363676618189115589919145092150933864005872450737574868307810297983003109372176436897378599620776060019699370109548246829579185885376724884944103327117593865813114835005091985140811594579490892081074436123357592676042608671532231500023408649335897550028818929325266447815089380892277103882359609575044472097788128267994869701376082350792894058964963038302346344791639373771759892711202152854699551104526731789795640226340425489016271656136540179855935857470033441935074196997071442850461839243740659354975997764849218286962963303536239084784889706944388013181695912948844373230276002572164405196354730510108176332519997899476057584352663779053557177745298508665653361675383684102831322951554756396919824030185353813267922340621272784389303297255419098272564252693048270008922158888988228014202864215803135455549908107646071791562689359427659307822931808673112455564170259903149023555215635335846261165281154363480400402937981351425073681633705686110939794953465345966058910345224197633122462029324321084521510440291593056460784374353630069728983295741655621160463631471452953385694103342642226519924577400499892852701120563275822829317337766009891517511911491951302373284506762903083640185336227261696401869179237817532552481485112711951314029980902285939512024515733144240236459718146210975392442941532969157811505832287428785372074100990375574366138151601199279987091032773615380345269243949964781639165078762649488112063363958800072738177037735743550037191663474429668656375892120645400457464167152448740484932317528268028643290820196912374020284156413832526724768743437828555437815310388205864458112306274364770931748007736110820022836455223170371089992821237280222034035188103710770642297174372261523678228550926600546061041718094709856652614581660907193240898179188923024573389134912432153149855802137334063730189256474367632350972133365949102898521890517460475589058780439580408299686220902663444352551666572589701930569917425419802466598751061446627871231170573028581107257184253026454646243988253341409913980107058507910144682723186631192394710074239219617641781031781073553985473984608468216015169046163430672379172709949011322993308663716588229156018792750053657238419011813845323205653402604948353718732579012118254441621715719544794112188438467438119368271050567988452090062431521749656447666727605504441443319089830065866343889519957268789617015949402399128331122203428438816182659915693220722938060701302511678792061206948704588467112202055549764858091425172374113233477452920629452084677097259829512621446765752723317777222969535558226831593630566058495872088442542641087003575686383051539504567072242926170920318699921592825457313198495303568624892813527670209584404713609050583607186180807568858991895307867379098918914944446747042620150701083281484721341369448343507813676666068886562215759702940342540281669213467872607024967532753910011430078886612306392469453301373145220279189665956776663363468013219942435475270842956290322038383423430794052698881412860434111595876601621446154135613927342031257328744587944631427695721262111981653185657613615602405742065154343764047589994397186298915934818146811988901414386742765764635251003708178262649725503054974941096700195395921446289092633236253654729749945769392759990457306942156155053624083605395028366977940057108542246512731399779542150030641203972517712623496741951833569687038802636491072225744529373655766221317459832981511053057468518516706972118724418126715454750599524525078263003996617891781968275834944256292509148392572981964420243696522545400363719733686869660904574874166734040341071481493992363841826943355433020225638672502567845829629067264525345858877681984219444116245801214663940853813029625550231256919877469580683401921606253200716092395861585706078387619415499976245823833208239694398970563057100219998823263688018201923152745259684760290500646949940063704979532978031519797336131113928542929001939118204122272996482211598666078214758784648557622722662333084903113447833746703056015381796481225285471617930976510934903419746525393096527340341255519374710334219563832104157106133489830769809727986298259731976199015288956199773381611802156974345791023944472436517455008237459714864960390963057070678535519928078876349705103166504863303173333284902422360145043330513386489511517987349936788903459871103652309386632833835754561354556426059553092143517388550193500245615319589724091207693830409865566920887527431003381424240840951058177311136495064956632165205738933212416496113034800366374272080545273015995621351112103299799716876380055727134715583636115272274127211567089860146758644141000040949408472833203321349280800179736124767591042637656125327398324046737794086295737656128728424923711900083963030235389481419623890482906837839195931667071842917282442818433215479007193392621260373518490013445259014864556151126468924581244840505041682707117583079575738611648778577253876147875209941336167973156081983678875543228572045423616620133130942715991787630181493467084080593512011863752175632854529381958702500708739096423098735988114767509261438384935491626024224184728719769501593280018714857478253149925706695125387511487719814091831344319625142857094639806131812401746106440776267387954935412796678855213541892345647018308714096858980485486570690559631960134639437766028016540281093412846646094514041350114717934733679006382907615975671093953530502560696249291601004648277593875097903182069065687808547491967933110876898741004607034064403721690923031586629932516185207820738027359916801476987569873920767118342342826904074115487486784964016348378878093110862248057713286762483276828583316733559305131366975914467525137831976835695413242316227614259112695179485061044786298703053245419139694558007567181518264979890443937621476609559334303002688788888990577295716255746422668921120557206575596835196272903687520144267992990998534575211025407460989897206554734697463200892119673344256079146201713386230942805430145471783386433681161915678948000420301935739976939162922833723420687708317813311726693532692501948011980160022185641601637398626757470619446652107926817212599470602216772414336855713846138107837913449914047123620822645417817805280205673484783741363654690359881872842484582739456399401162405374911640180549657556277211367087085939089997433013293431674367301270173612218384168050897185936943066816283925987895175897605850887461069943386484117206683634113188260983254817226065236913240576542960897192247415591251319429692290454239619414142697145316370360845191757263063017067956787046366161070342839341045864951798597116310433164285008717982964972633483511067711870936799724425360341679172931499864295959192208332866162287100076278161209643835845122243469884263654311553362686573978080772196566442606399433399003779325360682637866824431282115427548248502182800293616086043615163802728249962606005310053965563166653056604027478906160803415011877302053220815717129134179587034694133835373605048717351455361831800428614069823515213910385839051769761351921805305007949126499737610735417011706105508279163746847237005424578887794132114069211034751999038366505287452881636912807963114516926941612966321844931609761540311197457282349775830583275475355825742848779612829636160904965672632295094667912119851553916401202487476208830641711149843117351315390635055978151046469781462432676981898687105172964695556853618026841800316125974831506778275199656528257643021500906584554675568025329561181871023961337285621518833482686767047670031072876204155899343712546468812615956342592282423030079723042053612184710890872746911159506457876937850156164729173734525845645800885430334075879166002475614094825372513866032805054294815993642519605255942649051264716723708908277689289095076007355597757480614107664438074491127069828708685695118117546650833239881526746511278052432073272648140430789549583171679211044524749563689667739663550180437578049078095898586111868805413769520424498471486875602401312211504787072598402095556047204337397702331690542253051668765121151086561510292803078343767409763923656534657947579492942588915956885230444583151752677019953675198535808326011433404675479041770500099544818252105224990667559557580588558960761294284485208444822251750174214465399761003525198486695705052110287310531655790967962034276169683109099329003094273446907002400026293523881596949835509273590203668269154757866190769731875415407013411224622041075865284530012532214110315909374536630752966137888353927368985070872507023230502431092573935549145069034790292212972286557398171624077662206916461615232950543350374219673131894180713268971674215616658689146469175479003690150119772095857117477048541169800855152154560739724694570072132611127492469651293741547981345151049540472974296102828136252517681587946579254419518808985736939582144831270559000898428914201101046649511827640767339861010735956241850278047232872764266255637387264463788484778221660582531189525804217447650829561566990508697541843111369684484751816338218735708106177517769671527492687269157995477156370956313619250456397420962359459804134811080933617517541646233422982942175111481188657858599397494944632750211635961464251697683778951677486828102633254207340658630910604538884829401970869603116437641439590430880547271993711677709051525553688493281298193796017362484297793984249167654893128923005935642027129438481821699218665963890347690127828239206898248833987969921982659274687371057779880503750502650694237178900816234610870227642230807454762361562047020011185057636843485476920671464232987882701699078035961905886979120868813049773665958947173607968519829052580915559318523048854766882789365990750296713279559405374926588955741670772379448670506676559909396588675966707293212618145716681532204763828327275543472767003449737272537609865803904029458292856151691513135069759667617781539389805861417636598725144927663064639966840898947047616032556423671155467533569572153413337732047339950411908665343591121661966510297478153030742574349505482305357707836006294444397923021908469877034819329600015865020155987791980786269871176818483290744910602291622413089450569217852096271159450026177919462828336035572866269077301320666240254301129400872372557101569494640889277668202249095049590994750149751264618289472263706802635619141262174095758970488012417365307725154009297183607430836361599528322555189804103181721356154899415794134564712108189552866013332515285451802883924481294691178281852708073703864960609193592641197276349630132308492936215236077709056435966779310890901792664203272129810168349216322338231373450107774264283502123005306260150089282936995408647029422420347483483269866279454695213329894946471831531162714855594049500777065383076229505042536217059704241906118783654870434606668669202178665450154620304006935157125521171364319537826651324151373879157844547978195369381342833804681791228269683484666085082608247654350816628157883680409722048664781737349907828790774068148342007409838411098557285934020990198342281858181160708736877924128643365347054314991978739414095115745017876536366631766930509812572284797883752186743403625066194010500151685989681230971524803021965703898959956267386100078573592806676962203550711439110617256254761194361557209720095007549495610330306392581924233596314868230559766168244868586566690900874619593261644546174941226421521841041016047029701263098346203200817122840177957888800129525247613973700223992545369033393277838668414815039546142925761425032461417179593337588433716171889048875362265393610761941622254356672688129897587398650798689785706033342721052485797673550155990556945306017629606174293801189160421412595289174292495525946610691740566146466539464278524352555740952693467425965768979017022042921484298591999027848521477578640870885411562392343461467062184248871727370249485347433430743565129855967792827861852093131190425467699363806869053828779347404895570688353421199401590893923463767602367536750834574342965674865501285840923844637817394276570230190964265800879294635679190752957227231938673894174715396476370317032722749286117436482206973066395285668593982399244251404042328863858377531275163732833676058840200968450308042918670722429464378203169338367609745387497682483519882761225223791405320350824590112841366981133368108133330661915291857053045633820744718932435101331676724326275857389135698911621419650891090015035301007129140053052890767398066084549926831530468702386776162108599720027868560454629739430283825670619991829365200431801390325333528603036171580000251338012734401605400565780585799255323080516787539909910617899782806217274318032595618537792385227323708804315049892472894852310196829587513365006733839923776223026204474342174454123558051585394579934509227344015574530682379757661960609926279915194308607244925273842502402204186980472600769852227117122430048936844362203717739316565848330249193096894221871458554095583033918989376242111996052007130619737371244321299378594250785156407544265428721575974497325675058254787513437500687436399788825624995940403512921309629916857934596188827468764579237353890642881467955094937832916992618377760189400795036827596407190129686046152077266180407672240161388919499637988287649623033882627436024319140239231347835756990780913575935542776553608025622674542536487283920657126655062285393934350999798759565600440738466289222625621829381498980916412115089550935131542407464675876574455543392326743207563109612322660797235587804030431387313208137978080747516016820846192386800153349888475741456760051905661621509424870401348968428527032117246215735632155074169479924770838446011592270180832023097839842097143263228481099233434854450092472517881436008240232393717762360483685786441020531259988185160070981361181806465343436518952058051104044556480639619923008948103146786218500563109358268774060035905809853091749990158452217693077600826837637299838701411671446887135377857723186493887256872296456748004787239161867081941296416563430170403476794841929626498506073552912768237658561525521554084753735492373265671745439459968708727770301947093264853886843736329261309158317346672000909279119971022870981882384473026195676068858307017520762019133356300501372359978497487217799647577614361640519825421364504367280220710609052564740065712266155552327774820568109882240962558728078453475972119816452800107446515965240906569841863630101653078684806126768632342500802615215091753985702188745982352241432605883321063384722573839982474784387455281914191446740639706740676898805589216581646279332448535146215660228670904296170212915230335532421213342218076941122537947128681174989990764544717140608220197354492578460566590983968943696139749213467596733073730314578680776436530089762959734435895930294878229900836151175055160199632197770305409302130416217808559195521630857943897788065833426382533638641949871640209771646351218268921430076566468638731365329353992249352942525229015104483562056906641154497319570356010246689704721221353515432118791225883272596112743198848972338754380512601581682348296680923518883950577950243404791177877760444092989105126266991380451250867871149284274070778388946090114439130689153648148423278765304915290121420035170411291238815602860045914916423125867753636522249742882918762250305900561733772405771121915795560002299373267595820534254412589592715307772097894285490324174667219317161669812245620553752449555332916738252108605547893803867744384259364611563493113503187238043779178719496052423263772091006028463195764276743825089635546515070336542403615038993922461445948591945461737474928295182923958526649769730629950619574083300863946161240462906279089826874275209197755476392733392604080415742536363406746993281624616700055439872592160710158175354875201545712993829531942431664445526392976070149836509843427669848386255848463848334880747584108983526522330877420013076479752643788865759879316569480768817536525387504558630264083855110475386407028921173282385675287842596732791478845119176825714056000207955066618715105922154313814995898588296049671902452404586388965013132745949995222845193960786573874050777841149932206342008819921876348811335259069488243972772375400747032107960041179590766565938495206774658234414479856656001536872640331305654436690403695625777425295330391473094068200142187318708333973522109248131858846987981757094240812171596513113049934499769552267232373935454249464147698203178053854520352382040804223499229818078642255039430430432823430820486108299633851813658599996083103421818600810109167460352697266600670527372574637165822381622000476068413984675731322933429302726067451937609186741346779779634677515206441675367870362078292325295475277708736231008341939813049897200264869565020365283545803652059394107057567119394567441632704719663241151331789826324392056107529405344493546301068478191749678539253518031287218598316399709048925636631114501364356081752245019767020277876473823565142497070483200229790681145144454756031666459371256868556354600876322169524369458190726045759280214220927505406690018346069373533359474366379025235360668178525169129570310054751847910892859915013917492184932152937278575971186348105498732372872704106347142188477895217126123526865947433773991545372307096082572825993000334722708786174260503113872181774694493706974753566277515921932232380794366027955293567308901158181290250457013484577465116108875534715136409274703658568014090691987117171283132289577812061441368444899660322505641284644677196903508527976328891692299828785333760702887491911918135743495429071367907673671060879598681270233661081512935417933885161786156049240591305469424890254480616701022628239849616985902663695148681876936564974907872199593093209689483974576865763362444975251177916764669443102459241116988038055453071053700161716543962934248263821779803780665066885997296275651478705549545503129366949447166448729836668161811379456023086774944074509719408163112704723053192482885536237470985145979984173202330101488868989462459889422775259982752012024092601929585891661361985127462663298852786825880198320526812820206259438682913647593359299204689357119156968267616704370290556790799062884756870705440183220343544561069842490133894036560932264954389984724668342506726351635724938096849438642159777691578000630617543663199837452975359060450235397439327244669635267377637354697987537538583784827407872499839517944641902705188435702847556872305738528493759084579269378438183923252634279947837583058880711125459860293072184079731873118629363787315763281638078307593411033503261216789135034101146435937877249695615539965141041754122651296496878044045165785354211840076234143274822183434695411826341643218884386801909606823955550247344715165399170631625491364667998919012261111523253195443058230951432103730141334342168730859678285516234936755442331365743027942777906307747347064153668181692067747082779171787854713189145995417781537563839731418472855244650954385645053847631195224483281226739310436702367138071526917439081410779054242626300199598465795322026746899021240444734338184647234955500876830163906897609061953938055309189833219079437015932583572826724391848185393063329092644406570840090671341383140099462610688879113631741529629420153820622009515508248646939366226570393771929985802452823705047817144704663019045773048120150953162948962123631581215242084326851675276721069088732660575116449671484830364351884458570035216827465280795631244382408910997924618223861499976570842597985503628544371269458065500000739051403089922402077725109178574027028192913217449818642418033053050523786602060455517452653367241321692064569536881510792590986689996883253037660868969591988695239576792465545209357302500376596611199007895094117855179680566875765568840297995001757793968823540673552347322848499512202599898065977924337073697223693924912337179571909278206743009657968311457139752902279351080110634393843899552294831957840887084797317669303832903318572360421885945767204235635978121297921984160769486828606669135887539286996461964706488322006031001000131621110373762426861006795625764304741487713759881823366403854544561118476892617138252903860888522573841582400527420201167949897886530112832224245452616968541115472121443053980280329164763102255690533174058506518198611881429304937676079181624887950482811642327320471494909066539945390331433497708289809921180086144502354712735127946680121434178230302628715675092182433797769520937034482145542076439044223557287619006908023624640690949315657186897643238115223263295267456123430949166041841168921806977713140827651829841144596405065001412653674462459852862798239589813681427797122497503180579851685990690252098903977657549644561902975210883013178779483610277279548843284960932803189520025788177391074375668548284831059943854086010329978001015085156801264167380200858128792420580625777095040999237845803028817345034485105455256714132663790033345403669205601021668716034744544851630037866980948876407208585477770052371353019178855130354970482441672955638178778505792286851853044325398726927283839302294243658657667920589737268544170804660503171778160455683718038484435152070089750871618027409993739566890840422982382117917924943776268765106071529348918945601413244433042517449690458849724937401180156341371504112016505466759224710891566952123473830897795136738786369820170090942149338571801929888552807325173604632079732239263799388099738118019269959770649002122828099019212693267930428163221869363128121072530766539671095574885466841320895615954607196417806014648844416820034680124582720305642051283984190722891493218888664492901892810678541101645847386594487440067785381523725143451745467062544854742357217698511021935554013089331753937810468263110303790222527593803795535102519712147406495070843054377528710296678458302077953677842934383723937587195235873436865125837980599821971949541319259474543116066728361781214415150627131280203773327618191326148187719690701164913024424748203172764364663751419372734046415898797518994986597812652627121865330947215929768240496871568418148519319022854624300620915643597036159762904101027113814297442710578668460578746110550873602503480496330103767606325841009235117606516268127610773439218118219891848486429134972746100293707529059587710925429734142824545557737060006336336228280824519128054905570152321826291730557991661297470733426464804657412047106652061681986773714350278880065125554391480053899638276748702240729707988261424891743346787560290417921731799106640068289671803500989409365928247569814509947620415382708337968429782726195339457280276796259585331299374655493525333474309192039881093174737816429932781123333158948491885167719130114833405762990762040748655250178298082393365352511201502109607414297035511542113714873475339347637183484223345468923631086367518520519661149394048867878174681153315897220531938998179624934160207959850748246190099568733136822965161619881148866754117701681099448161115711272809402102542626498396591544779821151157707127392503104124321033084419308389133010057289849433130490693799107234684285608428187186351842360127608572668451374646415620345050017155983801338002810589778207603113256932716298298043864060976328914147293296768872007552575652570020497802132073881017910893450022637858619886800155995820357199498221903806470513898603847112337319668628869648958855544527278945389635127007751738425524984068486562358409293418579190573169068757570849104933093232861499953187995835223288421144012830887225338558842359288625485044420882029471326406633941909598027819388895493030488295210406993257306838684166135948701027381911590546154749877532849442061737146595055294715932076675817223633687196033237145218880966149750997443838384203669714619896825669724913946920077535141108870127787008159183399164609095597512745365524071530289213480692922646542067100579675828929124090816427472295057174931954965427555392383496644819016702024925219762189929732505655224388526384723253031914915661140025587073437906815784410855766925711720876688108048210495041578640414160435966998400110554452623365972631897444290394512641048095069417977073092594861679869995150830558702164658072966645226800381274933535997718158044374860978896854846033272784120030227080179451076461269612584437405289555616201764441348611741370828803492534141185308604063548055898291994094696558492968497518796137959026232973810485811440516493683641192292469658656861959071767405155858067410428240413775713287630316953634281520797744359928509366387643251148060176828169899481636329242205089322355176033340049898256492195269294249103367796973914290350859085319408876714426459403592507003970583174118764821952679275651189253662782310073015211689245131440884040681029976983718190643180570272599291167802774715955109262381396570931487777115938252034504467833669170619441523438216285150122107498244350712010202573206262846507091396151894633242980295890215236474134848814204508646942519945814016559748605438815778106058917407567262248321686325054869815611862060809449434036859782220593757803130512697322845128330712759828591869033823413298184972955873313277694613303611878799439550728873177229104609618650328133472697884458395140853656395780129589478173684010352569473727280774501990632202331944398040399035496686346421625174381057641981842169006136760267760552778614995306927019230199161550469341682869707209242312107013269250552573479792955964888261082377633200640962387197716953287236162848418136525842041248846820647183458625413020576608059212250146903592465566396091475457483121568135756970419487195245302480725451249205362099474881481066353618969465008450976283121091722270802224453131879070566165065883334347180728092311771304688718260562947034601265352005795184084352224336649271532779000287671241149116767267360399126722156310815574028725305188912583279769756703426616941855345415832146656942196738928608592625943438836606320994090593716351937515565749440152519579535574646185133178605100855772363803858620153641632348929286612363993106599823591448933852558630335311717627055527853753921544093458532963418994554894619089868818231076452286256932457003540238708892339898012526811860952104770535213021201207204552291316579789401502921999800366111310296942198714318798070756714174753282993636667418933881037269299558944192340702055535717515331504491072097937587744134168139131394225896304505949418563912550406716806975859366654186110367983934061204407006497586269776612381318817722279737730506887968144691763795992315425323131265632076668060497909787205184089769807053916837764076399038338612958429127709998871779011033495591139604829347517412437303034039887819224094974941325014808102633367335206102331704866360175845073199886785756150604762968278594956300518309090948829946995145548200124001876575657984955026979968673545193555296624183097290597915089474088935449454130503653465229888463135338750151167180701918904173890886474072352913283292289547748108886252794919182998554518599773787467066557007417619746055526023828572074530537520975051411534552074360602595940913032432159262360187714145674816533324733540900688067058073572403683329388225765592798709367026327234053670546248991865432806510242424356054522466939874202967011633946088498633252189330695923352701041696830288319770732570993822316012754573932510754206414827208230912332723962272780951039148706449069199612764386355830457084634368738359204452165088802802681750094772366451819668473528028168356655653289373599162823828874874741703421219153577008820889701166904273695630920155160422845816109570865422862283705818174790233262421644049185575593825243060142472134216999685779206000944146866290285991827462332379474900590126947793223569585896978636213292240918697860426403240825359887190523118846424501021231138112170239488775854181200797620296413780540368958469075272155610805240272014446497363209979954347073705111716678146739669289654879199241764310358380414846962842405465936644300381012281109543008741558843614636308430254706244515753748128409567998600876196181925009285653047051423538463431845765109817533122700687451125522706245368184560040628659829816114445568766585940579534338095399851245086243991626159995581218371848024234463157517339174194311587704061471451002573229199845806337794153648729690160873751440496811657395351669598075960699406404973267669636090092598910554809921179667360133713131705187467485850313139375522921201189428310586431884672466319750260004439905375599177009828602095115269748318496549067068690790529942918690484104960661844353392887764017841264011467739244489989101967275771873507866909396263583824821148220745968088268423847435602050775049975974706677605595778305996701232796108506247379556642615638861139448636133306266427254240183244209483277701868968859178289695982827008055502310169164846305902424381219379657353233526691191285678434140900164157786903422493582990280976928746309399387644895728195956551924828934460678128137870166537806911981459688818046270876808739251320368703767479160433191438433865448471167738595014060498071870544409457065035520296697504745617750891504477664918376661731397671658711373654313520222876653877814144108966316490225935563940075809603140548352090504949703978856109456382683341754650812476915853238423692120315945490873874371148456924742202396704088740329042734699717934309275302670968743185434880241176461357211727567682833579670485823432285260887837260008692876614655726800831004169055544077319476200808472882423770294139987350592711972434334380776845773050312326428820083745595050924107241159723579390875997495340740818307908297636643411647973583463682989527233310914983340348599198205489871189816802687641245406247865087379701898223070191353454610157858936943621667362903117642016788938650583363039126468528440477648353938385921526357796732999050404045582931652523340325672255212899100820855714308414097674595014206953510335664328363043293769770683703558789485856334125286968184041576032548580395711774042263951505369681876840946720552493146075556095068900379437906955076742391628323520366771820873817764977129302123131016400591602828427600222390033334090360575968476825200153623277848272149589274045376253833552612312163820788354321976060488902438916458747849676181436564712547958485841677260540369568448805229198559418274335162373948230792703916195809655217180338487071358156770409433872211710383936005400234784915331260964234434322243988269933974959989586059292147751593531092546568502055853195985567036895904026603318055145914408140965754785339056725227926970209027004341294964165331913224219135159536090121882871820257583194914044994467573874264804399855060578170242673973349084019585429601185394052325020024835361095344125492532681123600513819639008287018531985959930467980942888667351465555075014090914520229416685903518770377506160011701962314553197841402369917893063107078267998154394360495595355738484191079293507292369413869978757504895560287024780661455089132052036922717230039306232368998636308823762135456682374111914591792398035777843482611982289736742371560482969852490514904429104280037666209417714003623747865008125946268507891045284398790026950201470696030729809367294009884221932816498049571317139605433271769949864193950087332249682014146655754892835085729924104359543056306339067615244060900060714058239231680130604298348130424815093550028983772725046542607675744966864198621910037250309012134781403424795382307084615352236116610703650130254522234828549767613926307690869999615411201590655126808428382093265440741568465234599130164652675291262370099190029565963989750654912521885671181442641006042268394782903796969564045202215998356744821604315920283879822053913618533014901185437052461073923204361340944871926101286888649245593170573237433139815714729299986685093597069391519658449197099076744983059020833838283064356952003137657229205889987947949023818389802270585543956007524553368359627558115371801113370128012221349716189037795495407214563920870652352979809306023715732566430243421619594284600370426163664329094012964450158958908073958656129476974089409311824322247572895340047186141407891803556653373347806471642671715391200491700894254716399530060889281720040359768576236654330329711374442554500826481579301864880414053925480283785279880359617643362380187170024304720935747520101063506292953444931923379450263131166075268298659151450645459356055146926103648885383455465146409789520474613618851303240090998672830556684910520771045282334470525460361296876145759055618552720586824619027201763354661264147954793077627493182974531762421714301881036889367452687035088581150825269193228074298239142344486001969541829409060662481077263208254578049249130515108479423296251951505131998293548800534326418489007962466872077492801304937851798891118163901604832566929282248008704273861828730606896271245967905512364117825515290841294815573848069521754676104307375217742841830196112026756632674128335220792927701834463318901415436972133723119265193570878439946252979244946946114874484201371450740150390612423976324544397817634123591692824217471295398405201476992125710906980896854407324230143262378376426524345152656939554323261927077830327067329604750449656453105474538973225175090062017336342316503141744867589005017070685419434070700793341077515369749905859832955228857587900248821421942901724451101518632098012683964038669386840420898458827361754942658358128610119767033695224272406681827794408746272283365888661783518278869218662032885749672997694382023595941281671622901792161309666021797221092432866481239840886456653662382507536421959485140595902630989058666625257747175951517021623220327418054718962841793817822689342744952419311574785918538564413444511602406816526235493996354028580493397424416960959500403639607936796257993055891327836666245013153776293755684916239220727386136861912137240961482827519106340324979280011834921106442753125062115504291533136274493749001476575301412250270828420164084794739518609029083063638007268733840286796380937001018982359380165894801485195982488045251946573056729267381044215182340192349348418282661224087525467695754381392728113663339293128599895382958640359550371856321896978940228470079929494843685472691929724543328880599217430031652028118395286983362437075876306952059990121306421894498907938237737742877807419040304316057475386292947245190204567015599502915413469131459240965952564473681123143936651386704799938613699366867709163361838463612682951425525512135037358861742074738778922872373329576365948011089624319678841680996942430739936662392595925737765264423689004539138018432799786029877528438667939428361901663799663144054847161147049958020302006488898985710869838742242620912296295035671714610590961093314466914468928621088399858473950297165927700071009972881012817121207395222038987403933091689872245523277389582027780300050907178357196849956270272424962853296909597516737236447334299466644608476817580044877643030360237269192231857298113387583635652304844282809821903973193090512634349076197598415994710472661473616799640357367721782236589759960117491237264893150028694281802391767983544687229223135036314065570626506929313873219777122656032955802684849837709000421280158895214275386817391917846328136888861080667593135619723069619990661556988208777283990612648925802694661260883622827364317634068956106385651109035543963666112688978783801340925086189066573113409597797517761078637142844761938718217054934598512148498894477133749324797144899439369185857314226719200916530410621072862742672407023321390925154994431762523936130352814116710300193720928758657997617516248391927174399028467643580731257333308525378408093780282071393174874819547835015572259770016040451927635860201468660669121620783299080126781372829598957183068771798821910212960286071573677932512388936467985528166984611142820203750990433175106245922379293060389745108911751117982285673235836341221164838079785989689267144046908655302417072546294831797437438506173246004013944302062438466185605904346931027169961310843587390609845685819603941858730636285337343944745877574322267361834338166289609206202417728034354187884746898697633053659418603396818165074637124193805304437750778957153636036988713011592876576985544652144199402094701976568194007169456315964479949004377876248813550641079358575547228560679114655447989588822531455333191503005567396002222449793401422730141089684838812069218967012351366710486086302964318614557167624660579538580823356221686788472144137540019446260719803477386568402694580186841948232609312577145245103918079024468915549101808666762854756421121148773384943693038645118345241187720669108154953554853098374868163066951572467145316048240359054560133473173348621869638351099693950148410019948257764118915933816549245731901505494109450947071200875901924741518107857209419748571676826503173498275948962513030943161772820488898942376718885107821628819941769062309183419483407771885955768517883684502122598069896307637879438325330873232055642459397965532388432839011137540836990336078584128532139250222067724100037359727074616693423535365345700825690133351722976615767289427180879423124933108598337992602300866018783457056705265759056065386584384138828107592466353478524422142648267337188426255152569288696661246847462696116493514927144620837299841413085431331172329022986163096870096489677741190681518117863066676531616588595150232024426103404938117377730809520541071390851441078561719429927466549050063097150735249027085447322166613898909438495952316987290694917481445221562188428981564773097159346969896689363600519405394470577030007247447121780345108615152496043909752541496925714462630172965554276209160086064565409594994935204502424337226136860069686227020083163093629139287261268645312280926641545603245322353649897061390420334468696747531234950352812341997470874728232100495051030758993489366232048958115860854251010981978925870516458605285617417291332054336191212114852805404805041727606794733230017855834796964531073198421402313845986533333849744211349447677091600362053268366219225893638767367442895055992543066907636720117061958291683117359388766645558450026550219516400141040930387188230779578935865603747671783762113894609059732849746073590253317837173122541497234705505292617051374996675113795825372468854362573616054676264808417553459819701812239728872045341276488421184999651205067285894584176338974913662621360068157421437899159468246501179717155736544997949318895479382150382332280506667694149777343386897895393844632298453978258315298086024508399852341004621447333833801631216447098606626354517304326135200496335507707059542263617405508623209156644730332135574333472804061284277961859725306457388453055214510840168345708758422651620266117258648404782631271112672254068581789250750904146223463653958742050922183176020464730272795087822039495433344116498575662505721816949386905291489010731420867755103589619164075708302519222622768649119124606057995323037587287866091615424747375675538644816484338511871551979343768477790680885178245346346887870485897078992644251561073975011035807405032265328794905679881037277389002342480691908533878691418276307524158428720905357976072574545896645701590526674970564725204562105669155489127849361109223079286795757473025175407089775081674680145713319963235165706093469912891236328885942577472179537119673369558039735694649505707925719249943386185964117688130976086145912819849114118295471531953729759838392466654031136981411798263624472698711107415683046110550764157280456263045219749484561692599589021964039381210157124268827729525110798838090833643992362256205287736952101551814549505149406994331454634074234585495551774046148617822674483281750346477596028984183404426564085328302609734061026462701671378209307770294192700797973936244321724811550181913948545758480103399953058592789757209026933716790389996840762077808708055697795375555201689659773079215871025985653747614324287643127250785631351251470422336554015152754989430095065571436061565115608033943737701912732317596548090899822476145789995745170197698479251766303342860048765965098213176158881764996004202462932432386298214977798952683403421656892705696572896800560040928049978218038075313558994321434193035072072309043289348442973556841980948931433830032738899105362179518673321041743932741806895721267906963041961738146552450497905728028840565179032688338816605820246222594362312925936375381400926695807536364161413778710138054316032707811049483962390937446103970864124003484290916505372759351529437824416887623088895785980480497505910229542868905201277581883222873419442649861644265026849278320311474072563316763781755026226838026504587275760739183275869543719911826051813725040863571232257778410902681513636723863202326027296171475790075704564256785919911897567691117836300441283512849888261192972009010706961531381014792122071755765139741172856971250575820028548886756245061349090180355121098038577057284121259725161353344147511422558410152970392287441854388602154053551209538302750055434463487491046894760195024823362166032459668001588534376636621385164951952118074027106133412379529785310688283469407402820080085677907701836959505064122460738521821748719907533423544007605966520605868672258193264236678707078597981091872956528988085865228931283552707759801034134289500539806162451286736599328300238218822329976611618921850672701634872108885555122097183631748123449279687271568897333185566403126148659267128451188972093702466808285994280396486112595829209567484393682108397012167157214166976913858343082043585574953609959589319956131355035519895795748927848587482816825046877144737880912014849459281817576044412295235267412855049861436716477011821456638532455944830333015674713938370942564955220905790510506433574760616956685847868212136585050771488401191495636699490031781416386358045397506408243561414563127554403414840212241369949303358322731205296733578087685184441304276133503666354667821050991219767134240634942342130333678824834753731920484176113720148337310363493548082394988247824125461153064991904061151969855723636947646747410536912541660543242350934657379574492595885349562771158041296177687733040508592488377385490126887473412999634428149527159976038654478964516272395236675242316766558495468066152391451629115397953067861712957029488439852919670952798173070079984697254003740109343597950267049721226422123585087217350651139228756629257963657950794237974979195097185690417885405343623406102992664338303030467072758255496926643739408125913198522447839441595507228141365001154889754089724193926677645840159751238352491054640235691534551872781146194120184457600447546700135386955424209066268671198704454048751384886887699545061495473581197588078448384438526188849807021210021520565768942281158458216928417219152538999276194428022440726147681399958226721465955519045388365526436783313597826641196058132529500368576575608099833471494194524361650768193103056641228101368433978523535955668926903189668631262894914721519737166919719112732325761114364300739212844257959554139860772697869199496460204329921309984193378440792787598722437985426588723011192328577941885032060694517753950285690710999220627127712097893982228871969983367179934321040665346436635795472998090901909811345988692615753767699705615464655406562902273345996785154957723081726091453609983582332605150879839808895295247043769393119367711264595647868991379415566312985124145383041968421548339386896244865087416640856901268560998737534589654315624872328730237822716586902037333632144580100931681597208365198116951989987829221652618747349970024133769050475813033254220523811715586472089117282890478954007753884261054934339558279146226286428977966533656683282287871693048165505922069933723806132854380724203284060959692570649058963503601492437193438761808620721831703143689621931808160910815795022783480422705175198436186947521389230995548357259226337378638185755971658413681100957724157936151780646752866614790210154125471298780718353957821384089610939695538769363102092014261348340221417661679870468669890544277452578518353717746717408419835301029866812700065366772325603283394567034965962559257611461387045225960512026241159400547494159110494325436301261033218855197202275901203267191320516142224748705758722983553889036973075018782449761430990572895221219929917879488848705258886080060780815757968970591777726889084823495660857379817918987420272825131503159795292123265002155008050456793345284037190379837453119135074327817265266186935160531551645357294717269316209286228194880040162168242327459223484439655850611787990804501820812062671658901502996028895939999168448314263497189334155375642417276096704132606950233774902668823558836221477982880849943744297588245595756906322590583494045095450858876918933376618357836691914845717382152990087437314804497642767184363144742725266710452285413504884671257737573892134146178100137970168312895283302436475778969263255745645247555192934023940673066556396484941100739735395377423506238844700181562476664634117125074915731863978607796184129155648913453416046670838005158636889106186366038838620850531805569713139750437490427927787399755604677098780543179109480677661789314275338553081752649700739519435416864432212513507844084162382363872762611769693654540089392006263870674428963289493550473047882800939243815661761640212131160236189561260504562164067442260961713978421750240324210412140768527135251678437336104794439030674297520284239318293416075488198378095337700430933036691456604206481263602546233742881682926022841219776414587188509672451369886127172442008829519486931510048008825195727624644551528430702805771896738089289267099047806176010860130856693292101510212473425269533048025104124945988228945529500143088789991014997204220316923031573697684309159924484789440162734216400457766199813189256393221101939698529477267992918713257640413813992916016459889170196902098249557373532452317056320713511836627734482817337869040670075851992704600125160566165244495885019861673141670289918413341826514323516820521825293487471898357878235944706976260075087429050094585907368690401715152350404175153672687660174760077992466920207199216403634629086262185017605344761264680313577667922547872146069529927375877321817250094915098860535360413358602121517385398296886182488965462820719556826610831165722455405734739467422913483263069787456347489996158108136943143186684359931541266677306741720820132751030588728222366411070115837128398979644336206501991068683556469358581251416940587729675580278125246757996069202912639473804057924697850139611204783174085602936730032839287799372700281918785742722523319526396578184132359944671733454262228490608611107001244444109316730015011540357698561815922872978146988094662785057800613908542468290606057264325231906316020227087903148656090115576798664450772440645031868210807445633645363158770103563943962607645308519478612627046241332205501476942560754050518437745245085699601570650597670195404056010489283265601017958173291060027793803708735523318544553330349658521566614765103367041072808681815781198617542397298871506727996907256193238114020094101314608058468019286067490106068625593327352451127359896919335811819876332518882086047658314138231398643482938173621067927677138705183414701062935707675096053324059950182346115275672441918019583030732192113742855308413372875516452201792371757160583107389507135026010473215550488779038236882407791173913845248621614192251247009467241064965659003705277362636425260685077373733431309008162802505515904927379151613277725540949586977332789649701194807835546638101826015177305491080186237998972118290773590707574771130688431882598370186899272021275343033705042216428062488798329167822611357665922895688983872982814351936715109622946475628756088936291069591236861991129163025193410674052693993630805009956708275611660736020982651991800175160791578296922751232653010161109483700291766721689949612409381420894560618182442116531868235884025192265296588587898726471998754905172560368403684683086086915890064398977991315395634874970620623651575343170494181916219476095651527834193402741891734957938640287107835586916707415142844206282558639898053469002973815745832673099606287600095673570030944324304458551430978413775484408557297116868913358367303665410762129175554481372759331837968408205579690476680317221941732762368838604401673057221537341095496351902815664279356137148914893630225219477156615260184779018078271148579001496953528059785024106719237299400337745345854735093901488830699242461855760952225502808082565257203929909485833975195608418089365933369418577842423160772450573666293880870298020736824179197370981994921831309188013526505299312672278055720112099538343533510122241326810957836460468953597821537660253076188252210259665560182428438834785064705668659674721652235174590296017205101091382616227653976625783866940124875240223924381924216988528203161487286106395371333328609341847294313589991893309009444455261663362547230246630290221666205292312759119636133870687777429184658519923835986112968761154239154713753953861217643174560589404104060098282940526661546139581497042676823913567284545870582433218311232412500344010134356558574720433564955721183588585185020321033452031817816133415262830573439907603330934329762948933525744520765300970600659433698864550311803786170218634679760274516383597178194546288245973125853000657571684612688194560505445194101407817091104334504034592240216245533704842355654197061632058215578627665990628210840432597402483084783017135044784028259792865262463095266319263815050397344579049693312526343402560358132045733887833913507118742706807958960097266667194596865818093397046358343627211109812806408263145311431007482626028776380902111009001532996018755673191914373586522642653533160377330331813503356646542087521937270400132209526214534492409148093990048032472614987652780266568874125163536729168697208049052949610751998454655903020437297837700768326229816140264331549545600753080056145369663101172355084602728250190508815263788657299037606989923489307606862970157124715595996070507232742777542535526896465421869971621227256508844939871724280624124195667751314353033063518063395506409938227151688949414938234674466098195843056277795324902692812405056414676574343429501006869602861453910331454277183301965973189975654369231816628398122484253269257558421349254237178478674897929040071627002697528977069811722875805112954489934241278893521629857214225202591996210392758106557108351734208171405066616436418464793320310343417515612965799821694141374938630575161674760891731430265962874641388571647933783047079620363838333264626148374776405352555599741789385636840877825467738168254143870948223946520096013035749437025614508866879980518763688549630252498300735105518072132024527867501035218736680080607631784714214021345318361511143257300868589029720457841025770510526719646290021375151733204129130721237907281537979038685885365579540635887735407411545978403807139738322290229489161135798232888265159164786367856015126223966937620189470332463518199340485091057877815743218987979643996159120202632041519646288744031651408910841562259206687272942535098876371413329652671751391472072011742235933810626606619055019097186098521535318277510624028318927147530192706380843799309609753133251524166162696442503139290658313723960290752773229698745576467205647106379998557809925107118500227056274724748646781359069949602826817654305279480456997518096119526451687753165199740756400184445274172554102715512891117582087553676345326883695614022976158686325060107828141025850729910693934903956705077146223615737857126373287160003407171612133996652658961703875941879239145239190613546232148999039196483291932640776838639889864703849297292985178511134571146353182033591853767687112322566819330991180629191050754977705660488556382651935595743622727434095665195079655038424228241425819850419510223460217951550833908226470954991171148814333407910139314173377979400364786140772370917568090799923665910815140578615548966076235293498807082251980386694574072789243599709164476348385229705093693273000818195122664795829706120939395787502197129429525505021186933748083637982150015265062409317165189721500155249033637514538756011043799559398194524758843168924338843727979090992951176342318386153170725326197012424270205096719271556672412888515656222147565165104119141367321838692409581320685001285417866593916907631880464858809514332286090092866138817971480926198746040329497267548667510418818096001909706332964765847858425427226280143624218043538603529675254923493996231899237186838673169573765102047647130688680360930665889264506279187738107183030105791046832719995896332119958314108268163138972187019221274202457431349319779192255601010972607571685982577811615527428778999594035962380613679016650165871159684953121683332890642747804067198386313010566276204381165559880463096725932470617898014947370344451216352958145505349508197500795027624589569069910163008089885304083290486240963509944682494885024288567180693568735134827596201983940394991006308225224386147415977956382941613277585012055414746752349713729499718231661381493783948650939620450868162385939024786999749178550103611509649805371165024540564906874452342707026547977751009625149036643564600792905655021107845670750992706562399035206600287201920621198311535959926276875791079687396343421256613819881544782164743072805073544126508941907055423264800331238902885992816745212958038138738337663009859110142698162944977482081288811578519119427583468068755514527076230264610361946234316492396490316395249372686320867560370702265335407914611622341412071645582358376803038412695961023373465029345746718470058962988289803234188645516640811788627445184014994226100406026860789523958669577877303032486895457395100237873888503955374375510989232231983671747493866731678955992434538166743968656591283005738506297242996482303851311005301815159238092988536067964612728652019940024583752374764965820633640485615446038502727080465768322806384290240393513479391248027666553180418010034993326275228942278061793528730188058762731735613389403230724022256163468193704750710049439070106862139129537608468890645380183805006602717969598047287599557311416977558279461598040720036094996149660198223860067699287672946819898909943505752671054720397858703610002513676647223847457353795909017232174004413973869896990805280296033907495783541351665034411167419201502020507733477129532254338559583885841513698206331676726981064074755640729564664162602018033115101592662234122314637764373569153326235245384242083874227403812995500672633414410112001634768771319244786045551862234945040475618822792685546673272380289737242247511384147132470452366822105209941735002696351533853164194270698749231636628984138218682586258267989596226720446119536554322490647067257753559055598984242644246347348699683410892605025755061749523244426822772786866035154986247315801898637060008887885967729317294137454968637496424708231733774580214071146546215756762428521647834316531002915413387373131075451329568228208262832228278714750143557311045547754367149924380190532028506522073627000867224806720072376865990089426799640396724430802480491974670520257235193616095951443279699697959232918449667646722179329067836014673563836411771857236194148643455603233651075167622133846869827040857734715879803449128064753570997645206407764922036220922014162936626597119011248726167801955258046225542872624750941430071207652267784702475871084782783490733674803570800355424074802903870005000983743855812975576749246940871211696365661451717030761904779849466568359820250819082130499874321553771108933702263156444622633202356077002883080874679972554152249293871004804159500081208257617792883001714150908086259933218765350604095394649348596118570446903060851978820754221483320602748281955211309581770997869669855165679230325135145023723308242347440782056998965194329417172419336017760606212039027088072286561686585727649783219415490043498475554694011134582003356412106715124652241869565575400362595401471024851060157268417585129150420874502165430339681139869782922875263099857370891841262173166085249314287329802251985731970356636810588428897774707669199180983320470064857520634704518595064912836545589508049686781074210321141548754701003764861720731882587578245061620720404075141706440020898843684785844567209365310480179278893599299467372881486704209159496333637077575309927467393603874885319909639611088188778763049878030956139268366761690403331507541210998071020590580298428428568023414406693660441443662559102903160059054637550996704954404523520234712531636551783173366941225297088596060040700292581708741659222215760652176075147102043845900571844608757455496601603132419284764155333568252765868250324861279894748058651137361414761619082672530254770293887728610271674985549356478173343169434836902590727147525719981037856259375834075248439519764209795900238103624208481781695824506382260904086728308844973517042861244452321322414914444593458516416976638315307700432184765205000031667299625735540197905842752127988784355918327495234459812180230147678389680451244648510148387387935900227122090895734859924280340589330962717584237349645566617983188427282247333134994955097258683827925707960661308462259572121863286734583927853557697417913716680424077070361670982884213067091714963890003568810341157428472141592425103374980672723931879641392877454196745202037392275300943899297246852318578837307143173793999307616878314969890631215652677137395242046421574648653614256280602888884269441269809002061093672776323277839379048270769880185124491692058171840740460243604766187759002696950184877162904577889903152623531499736834386731495202776347334488872543981367474192310033258202510883247967509100527493869574218170293983277426121763750126180426715211458321582723172619208170962004897483647160162453371752150742314185139488507425553383795057624762634667443808369875860402356704587319818552693216328451340114873000611254272697742445468502821066729178967790886773708252891047206493190720526763438876926367771508414315902343406879201173897940199775745003827392920850915395219968068312837484569767982171640756507107840703066150914864486042946901371528280166769482089448540583420540132584065182378972218579812055812856529427663527974422332701767295768734763837460444589392411643357899830578680977718736040926042437983987259419701294461870522161439735597034622768571440555614859592385987660886316753916860221169151020490873982077324760732466765718830186685645642527840332138946588327015524681515256465639538976406834986588420992327132433702647755278480984537572547089954089518229565219040534973683944942590428433947594570557272799071960012299059394553243016436164768183419463417836630756840869241864592832064378819843955107241403743747475174816537762496191135376308882149387314213672529360021874980317426972431991544649511060169114296304589925829641724649280113122909915782220169566109638257117740257053843018913044626611585942224502329371547935854412161455927731380020485385134082708296306896468379735136313951842011851211129710542665926204135934463427410220263140556031280958791031883667547314422809986365563630691206293046847303257685484927790503362410275651117737606493808875525139813444656710868435632121196850961478048810285590745672174856443444450292419034003227920682562476901150902522614438303741132289943722403464650428481580443578302723988080114037534654095609114581583261845187706165519010333782104491300964175930386431302601243102698026035893041575142458240444195061145361060285188720797872385426887994631186504622498380675080496031368257161391740507417686425336032017443311729028112246029948924338087472202380267999969659597946194556767425528507841321519301513717104348346323592669813231975947041889206986980321778015992876431911626786260553330107351130910808760330876000179714629051263851894594002977649920937578523519953788677960462073610301859479551780628605606154428923145802056405158646456531183247506103089773642595823218749927936780173499805707999079957734672212596491092899827437156016853190761775883710516538891787664839511318297537213127326665653631395229750769135061441084012226484345754032934209848518148434818645142310733013668158430395454255142535214176940742488451705452734750306371328439200475645989752323615816542415405691437269261604753103219041467020649063438035678144273294157839457241471485090281509283190740367494429784389248181859260837683097780659819580610434241691443786731551926097653352488727935200636963224136665818883922726774745437211893721124643666276770823514802592532085420498006520052229084970497130077095762207359149699155411862504020034003014545660193229238414136832600873631864009659436750625017468389370897438634775055814166670711200836803252322887101411257228579698182834488584734518370537196839249567580937330287296116560385729851971639791939978687121936637082601422795315741684222902449523597138012294407106357407707279156091228546492525827206089890606651259384596830652418045760263864408540388052104792858495982995050765915585147841264633032783800535500525825417869566914816520197683024141195735312857629405905591597436886818453807640982792347192106966080896292299049601464168195234625082367496416232022267422996142200640404979990376139398558337350925734871668283834890540616881263339628514700089949596005616124039944673893895789441419275453983929548475070801054423922072497545645197495885111980962088444126146482663655467110028759935188294053023808980848094648821142669313117009226573141725289444134830861535573657232094725458282798911278678717810545030440342184508040750773826898043046860671590330332402828069867141293177381589786972828141251924562405598561196610197873541741372518690746566441017831663328482821944970452426652344459444328038783857684078300740468159752944004255766867413111035529746922833018938254732052915872260864358934420617714782811683641229475403308541989274028093020493490740781606737153352361551480047433520849708592647899679800953921151756046437964678809399068980294462500424068958753515907501128649736380887930173535581909628777575241246758950076707731550537331383350460761519117035787633899195209202948467281723379771562770125151387711526636289280048298710909857489406771654285721675341535988575151854453501446548322903121195038438862635943366745055516913609682519767217165324122629724490484450180564080447520333471795789840940538184029920314779485892241838296271447016386096120094473948970909967450266378979793612369816243984877195727679586499327830830673159040560467968412465360605796230596652694158569713914743994989474035367431451826797036380177270372618740242333324917475632617834980240988089256031086059840414198507021893568228544219444746188413428696654620905683983574077170428873509283171284249537005257108325564788415771226192346458728241857172009849126666725328098975156408235192586068847395220774312895624543282162199377359012146456237562481029007645452764499092295578653792419094353931533875974849494906674066273583931369354746177798532686276508085067487779392828427287071114023500284715363971762476593163149210807752472541141760325845730082026572727610967280907338341533820618132225654051194845076130506823700144282526197004183464794888583861183399905201985835397850363330408609536887793101464710402151051209931027999271257649411703831448780021847382479933910668516049999488714423211206960059314136395522738448038119939191713120174462775759909654171615948368933330080319482084538624745822481146062228620742820633269486988920547188595308723853214106642874677956054905674049029167095853026240145764239011151232197326822101769339454731852655491182960583628946751864520322110617636736526720664531325185688052428816942358417466057142781197327461262086539008016034661660285759388334484268720162995884585094793399043133096545903180727076348727037196345781494700877237020293036795155867787447494525865197784341553785141538475103321266465376106851245620028794136233277056775517675306145551259283079143584777068731727205510659487858679551744389581416043674680997545986962862289894819437901432034616311603842151075772398658061899500357505687654545407140207234280378418093978250401210757132685692218643571917662775511819722695763515368779433743156635823934806455768227217677891498753436101779210288454289278395531680096031558175448168022365919746527293159720181841468872457666975929548389768086955196034776153223631175849800460513543782902071843488492662346050524435798884114883603435560696064111894674536194912081217837555426863079248178348256661984110799544697604124880912896704970695276318441372885932348153673207589383287614102396294090418712487026205227251677811371239093496237916582274933399592090885009853804798152548484542822377332797366832297002095072999080282823439913232174992129249029430058674074558790375642995171359501017407636293177919018634718189898725945164495185091592595026515913861231952027631224668950800931076101749493040026345607476854070874385022260029750150014830846359808088908147441312339397976873153977314549283185238636404524516108213835780451653283753181354356111801877004776792315705093159798942476494289657060184697133970013441202987950895117340756200076046291705821312911527420752195333998723677389841360228504245320666616815847713151277294834940623048473437959739282884904749054677512569987469490688490970753907740300120992496353905625598586208608292608488748888164998219367682683961473650763081986762655784314413734628461541401249747523140901961179865621479284584817906007310856850474109688472829566026581680895993840325406285048940522926732015168324507011498077439446285586186515643201247997142799203150481590020209126349929804234336691104895008920680037293733278510375840571405022456083213921035833919436204298971341256717543920991408698416879524718370518413648898314469062119845895972775796050007259207870792750497076838061002896906223019950121983577111376018459090549672708207156484397738575581522643243758239173526194833838058439416700985384545073784010620051618820910855579911287783468509349877286857066318379792712476586431424785592423791681320453798521415000381137442660150526791465358286583587302165604448651176539481298408158859691959510231365863550087150574007546278263743428250776788302124129066312558119447961834504596678329072159262563550287772556862053366002323637014615271956991601334736669496156973659503089385256943894435516472687755984729210624251018008534704243014773675839531742146055029840305320241210350946290093697250372227421400188699383450668249960473162933468048669828914931927777590256314192069272082379732113422851254050536653722924158270208123849136711736786970686822526707657828148606575401567061723191498313343372370857618070619900432079720904163688040102644111930310306522421121703424675357230378217117801790253228505578542464190473664952606202083859022748319201564085407352682084563263679704926190981563509500315852330085599260165642209938159478109235535964763596629850464655294901118191558134381589570816275827332695160708434869409943512503209946908073514870602435942523972830753504444516481948935665862096640466658083178903456113942218784354533694611986774814880392507914126124101820455938316490086641644494886747383616873746809620262636492936895864245363889866853222939428844449777779172164207951027978037508614902444653981447005779058601486538590903630832318319968616391447044254925542190388537822941256444777825043655701829894268741598945663724171623732961483527887775779756283580553312982777420566798770372942041352443251724854644582697568348859502278560112984928961196913399293751135199242583652259735075522970741892893066549911995845619976571365130379774232462143167445031472955579406175033967677092275924125083550400541080373621143040955973319588764708006634964417680822674540983764905636419495318846972919497087931893389950271715608683122230383326659680209539017437230165726335767534432195724404203646795783844379500627975208469177312782874510765734288249681850300583724312934487478584160854884315970799429431502338068817496560201292564060336496116099817044285102750496944557413495670041116159233382460199917840346833245508095833236218856609978511942822929782153022941133613449112644548114090419726060782493410464051363769412740180631915862956167009849685326245925668623215539321919609237741848758564883209063434602558583781305274935189297849111183131262959666609317424462834788988553948128558002643177452591911885021697649717564463232228758513207819939568382103241133044620444378173187390603071816866781631638882689740611473697244602266309110227912189567455146150078570695091188837481791683617154180392997358006784215360966885998827909910226964548452808000354135441712890157494041117242364830270952221898714135071854967400867771871408046104459592120147607481487858749225611107599496802411032041832675646486674648311848869528178939298261994205400902191156842707826240090560202865094574785497053108709755639426343291517780346250259579270740855545200853085948792722119780294818579196288736679114314127732734891871902353653253911115956232352762879387734818254315593539376255336621454898416699721519470457940960167094454422452232882805130266121142272835053478258271479707992724842887871639652084608192219882189538241162648493443623655614811232577054361611897605166216269045779953393116410334918544536557539089073031804506351601543479503268279867471402674316208855589087777853536868692487648482757365644142942403380532458289204486853485321079976093857680521131400056478881326751144829301844974584130967240499261203391546951122500326009597583269430358222958568714829075603784046523664693882368203868227207303788441034074532481263022562628780448996290603053124153326411082613339617886032840228392460381387543943033721712828102480015709687193361159826505926155776309267234821862749237883605784849938408613123465397221011181502221943092022536133426346434330000589022029695498441112231662714673295402889938352780641975347660387260461496337194904892851323877822617375145724571154370918559562456868063462600546121818675419339121922548447140348375476624708988983525153404220502924654163807030544650566609748712715673261106428288874762648071332908481850099436744920739047908301634429604241151809160573080704045502270630531179521825990553710920855712517997324786234007767609798395516763537417288940335736039896493531890796918473058803734881592450110627867682129969652018802539248150279770473334222997413723588900353810262422048973037249488554489145474924596634908846042783780234437069330311176871525689119309671159388232421953029406453115974341994097677899811015045601106808984322735212241980443772734398824680669545646382161218792208431673777163430389945755589193544956280200454646317754094551947503542749073218574172724432828375852635025628010872203065186274421945461100794172166237756218372323565746302952629984507130977491400787029023663819458394195031945551905578431881479862369232419820633532497460499353444845812484808702844914315558208171514038014550811380959252186966523873799654890170707085672778144833271108371820963249282938714363815488840495519421185648409943010230864181735630078890458247874287792510033166025899563016854428482502597115371719958101765531676875618056120964435168302055850452908237346604278382144601465089997844670017351070428011027889456204486296046480575731129884180677659607620942077966994100857817540514082969894551090636711280154713441705637070795570241465589227943649109206174950600476729188748495676848087575399238881004236822409510266660447601407536596594028697335101579989820371396251265230247220421732502437368007146743510268289956070065107650240659403077323664423605406567435062569018261120578675446210509094348372208422632116231600582940895884364844216675066407895525684661440083483670912353931248122926094977580363141055023763674180004109969978038704447739851063807976749385132832094293446882761441917615027537619290055858331797633976525313019429398963010321236807664168770310279564715943251254180854871204424081106237018537084875194983306162126688420733754550580401528078963352224935927092020661587004292295311939161936716933442141168841638881772273658848938065195951798378035716888486210311310369732077291844991862781854523867930535331077395645207536975834878193332784115651519292605367063370593610423282568116637475264218143433252996323984950255551464971277772892211570574634154058448597529437517668523810496254399227756498867668819337128556835481382515062887269975950082567739676493946214365393921699920941858771982072490510270861251499991981192028842951530477687724355903228711273181973013741503009666799848363959087466819769051267026524104919257542641884277273471007597958106468583386677702739509067173393360921750676463975434686536106751257028182027683191535673514937408931114949430410734980191676666495443811341292192410869660194498501947729366125722262171757054497533849601925358780299722321190329641817351931866103147482135848892627189008232341643129074955615757353473048370269103224451792508005180035437775707586817077916301844098529339539098784010269878826796293491573480952188169797158180724033142305966751051175134932118762351246125446772206078456445228001706934637320036820172960967063889303124014493186907911854601340877467502683840357991302971887454473517865943615889292669407876024618755655813021182273445289339253696242169145297756020648740055444135655406572905305267364801636183025791687466409795978676150153656665686887562929576026760547372087437593192101768357601225582727253028056597722947300749098307867867566747525603165105562257162631627168859981157282755311073081726680545925402497328765019972446824708500906546581573869603149383299274968790144174710012268514938487516264927062719165807069876339851059205006187874969912018295306028435336764325138896724327806127196169206132120970916263347461851578726249212271820954134467529721134846193255571015323306353469733910488153731547710294892635566408242644106373080529350143672563989335547900226776171345796673237476361991702790538200480684149615125411684084875183199042720424965902983048782411216989871588212919109778310589373807322501148980084178246946486269921270684107390186386895897902535136791589155573386101179124088207011314955278800881163633037575559444582446852973017245131561747251201478117329556556661061195352727242685739844891555890633083418122944731783270364549538456217511983692651079947373692747024360316172082133936270029570759404438867384425539725438012884051396751433178159838132874896558572606789258587975179243505764496683224919924198368824832140564446776791524830358283459506485048625843019445762870234403573695271246228083277825414317993036924102596847840262338283384476519711860591432196342860383947673445408896957537225321017726318593537687756808222282458503605953530472600322418904909359346661489571504081587717101088647848132995962996217233105162310685450375187585910566390960716816142061582441922840252357363234148131377600938916838083974198941688332345935415888237835323996594825069386138109084300115182828213269493006550666461794466026159837394309251690796341122290190618778570260860912366758285088891778141743810316427226869404343940987244786479965703653893655626540818180400085231677667114836203116528153912080593289288688484924349627488255739259981824752572630965866397306236326562498042786023167499873005889445927558486512298055178637709921293223058411868026426180275946079185153008176184513235733411918793909281956684088124302753080284446050811245766089806960909685404801757749084611196770252383967333888935959641584839601079744364877928932512868997213537506249726113597547939306047643095134958071463351066217708926517913945497835957529467581519558984813370862284504837860214896862748760406980846922717547636127531106423827720207901851602263695995237742718746525909749430290230616201388434042963832157555769033169748146099714772987765822063714438406136530640246224904668168790882622793580790544561125618636079599240163352771009995827245752800926020861701354245478000751830446832377549789602737662785902609177717015041964441718994450475830229657249700240003416547793588889889648800441622469951747872958505569745792952985273477113421708746137435536520103984044383137917738081067079728346179229854906175848490262006375140917472766038630920252076543799778559405550394747801926556497491998691813432204878425716743965000525415574794291387190926437983167804877800889928171363448597127335706261058640459133806610860384599279994705161822612547891704431251996655500745202212469782586751426854410928708061633544013508042453877235530375324949116295873935841875957900580461573594032402478280694199394622109815691770817521574115269082734497083167760879958479052286763471726503760277116059752220267994436958810858118219002896269670394270297965753468302395125022363916476162947685461938853387813150307913404701944420467846036522049405907172073229580716998231715407941888295808698017722148327870415260768028249998201641676902563325747270328429229407613618254133839979827407679419615963813308391508416605614531081724736582493861759291729773261481051811669529575184051679708054185151313109174836895432365091749495075125103795036450508574048131207923531932040164891403814052858544917024388669616598948774742066466485525161416029491329587266688213205573327341446041735442870193546400811999192490387547614915579979396508368869203124145534887682829036377525845877462141348508125842162191768560900595808353871215180374648492237474809900067138327461864668024377506406487538095143940174196371646364378299005176214121958353288162897557232792292297136795727215858510485184005702663340809358653112111632184947458687236498173971248335547408102297652902325591495636380947166201011766829438038953731048761208551490638268072974161105805258029084833754362231258319062030289168787429572846575377599934682408867702319273955864179412581463396035762619988895274222129961713300951706470585759556851447560007477113522655999078212977796180134860141651816982674755142943186931445752928802715756168394225405066061757703163478335928113867840122157525682644246218249690721967391246420806051626001596442774359080390066140157698015398111773812007570771211179830314282626613695118045047054464955376439603797345120353545282526819982258281830054808913039663994137524877232067283625650768745429719763303570612276718307006352733164842249822176374717152449024075268499415770554435137503579178289293747184410330436342129534655899173255646495923600106902382205651068822026364346914415354734188293759339641622957492061525510733204241634404566217144294892226021299518169505450504107972305691485200171113863429660069453025081507001004311465685341389046453929732054446212443631959496731407016280825772971128734268269701064591409661712883347576994211762279824316643512387571240729390767506949766067366565543526187480840553783271075548025032728420601415320143524005505391673013161123483911728939942638367947983369066135422297966823726543764042100292506718611134330751960200181894649533472329418044101917637464226806159258399630576397567066477502997511750789223307108121105798207471761690662672623870381665937589253290699815566513131803512772354273392893595887364399099921500531690418870366371013105579502484475122786613492193537854856106453013971921207080578161017493027482320100820698240845237020723404198444333700842702991783110276452098168626950056449359638800804720953059865949966624123250653234007465313591066580270262227338243826413333140301191455511351295933344125629818937247417581131546972365734348371535921360247063405839052567399935814622619970853339259622901674805772544699004552356186205228895309292577242031288920994406298860457946983966389179882259100976355095918438667104483813163773043372845743612823811001353438586221289121984490861791457154212495357055246712717285745731442428660859244574287953190174497737211849124019017186088017702909431114232703934754254741590568744073508418120556172667399532994116477466384646393782393215369876482066732339182506066841526377477823886194552689268014129271764745688924011370454932708651123833473847353581339447439626327539869875495842463324413158489425795967260639859633067282899421356817235129644527374985216037995672169098112643396721251890108148207908753774705385653107209894287142609625974453461276558155580171717051940022749167398082784626460683895134683912571383605199879936742069787132712339201805510778571916319496082906919357530837391257219643067229169685367526242502043270058735384712022585124034672602278745189083050327496253324136827650114749797882315843209048774754623752707911672172704221530913385097750164584424964341206922584748899452697160570093583132964104592445863363585789619779441323863587832971975426572319473326225631851000919161300368041645292917806926174989830974119515892714056608354747988034696762214326579658645246309211490683345607761949256242969650458215143884875912864055086299143178138832162572806788513719469815778743532798468006936138148804430420246854887861344792944422031262902503400791503267939499640778706214313066240187100457194387268000643762729272816511970210136590214678701292811819272184284435375147148046088100164982957526367614408044340341198431961676099146628819147918669293657389011108928593056810813040088536463050481834335170875780220110686917847645630001678791826338439726987144972035316883784339161301512093983402329307346173485291116652689529530695139218976005610535536681408130468029131356950562434431559718895676824762582476284765120796761270171432070197594552655667523219974198061811054298405489731367411953489761722023351566686268251469015211870358257374281377938070157695911643908953250200439276761081483392668131886285365647771539998179723496966891839009180716468651541491256628554484352137890377166778232119426148326766924193712996317664974176511702629097133053343874229182825353799182173392704806407537757179344039386831779602587448260014589379149045456990889038697044454376426150146437150973154598284763859383965359469349598283648561191352223394472004876209849879381833237715943958711758293110786453233045658407734247929457092433700348623919185018371727455356540688674912922990608315207007824297014187874981338995748070935870205699590533410774970547836927600633769848796515311319291106789310962658248875171814576253561647119695124428780431520716741004742409280709911214410412567047057568382835428343658639446871612900460037652563247701955769160280189974021613311734520067683244926385741687995199934827877841312180432220528440163939089458750427166365154064062444817601129874549759364999152748198860614615376633755145039460994431053998624488388607265785814678456425516983921447319957636967406307164815009244724182331284717935749415718508417505180154550765075903514410087440092647210199516338707451017061255343212794927043681146191520214645807400673001083472286997248088037755508799194461411517581854686513586005039262748521636609079695184214308367344797124522045046152966111572544889251160348827414831280693322349657052749688475687240762697520436744430362173236260213701374587768664121096974521199566469128561659463004399284936333756553124229148142902219605391821203082884745395135836404312333406019257977311798236751871143998844565955242827356941445833098261119485070915282871095266325031988737617200895691563191100039204258433590255900744118227834161224502138758663374014539114176482442259988246261390464829060126500011010556569296977920612488843472144687992911407972556279797487062008398899246692336417848757897952613019778684961492060584905499211752935484133960523504001560790789888504567877032300478472293685484769477358130163542170967639018184412735651660311020794033287097590595860832504014234630722121048163116645413793960845196764927655914359770705835977185052454661737505083677363246302327904000278158190173294722827673243963917286148011993625233731347572627928132821845299420979548595245899597452607487911287958841076824119628480616226399597614503904530338871265176776303090721872552536421379633769405157769713120137850762622387348325383521264391942167075726762966677617122506043409006676422890167484346133038743669910126724011240721922000288852200223160108612644589612261603636549572680776823775368502780028128164500724051357000962067677623743334822427454027174423053329789494833916420579374002198888161591261491524558033828725484421909247634520139173642962535123956767480463411537440247214726223479323009545844607752122902092012589916770003944877151947642499239231466007202699781522420161654141742975105005813865292209322303940094135199545202768282263227119819366296022273764605439094701736838461942426902812742025313293111521183074869643547472038751205517275075113923703244693935041970832539971810366050766954095825107766398833389050641871626587556712554619756681686841875911548092778549314461905469374967319585982307570163702705746150386238661528164406646580891006564882479491670544829187336523046791012916656713446605502252494506684009456470736876104827744770311507832746853818873965407578089972486847929023616286055418428050838063266432767232179695932220354171100270560141927899355885517238176439295692553261881099137168374034116788809017370978648682552389749465823266501630623898296486189391312604995370997799096120211017262238442204058397134058168797905367492334503697564075015776484577201597000843506114499922651387038899689453770924672807051983982065501047466711680373303432260302062277958377688016988373630375590409164282319623804220345078742862937639352744683081126505270303565277725350438155785721662597717732357499663334624087635008952653426071710524008324751756083766795474839348891574807699559687909720075139618122928365963957583868731203276547216213777106749746041319371308764003338029293970947362819388160309114093929313912476445542287046419706883712278140311761937322574119036914932231815273157368912663505559586615583441442540561471176198917999553795507400479470597658626031760762189539667432941423437362739674562716628774551783490807950231249839659904583077079931642396183152608036947658151667573852016968007051579856776091371810569755609656121360251545810126132945441707825362903772223622574645261720416369127553779134521761023896645494463635669983883809236417220903686144076299961989628795810582533856462857989514055319144500525826266573518394634313548005108774936329807257825217330876754234286904393166119705139619723371446599162443120148129431863279380011549030634104359996166259456669493862966533654438936934795912597064425821342055165965509716545687195582786351738631074495814811273994166706244286630445506063270506884746891888041354584892685442477264976175985659818503982728888742527972394138696656694691829524187912968646144791048093581800367588335834600115125253948228000098898758494016734407218325624813903722529882796771517460972221730174122388420747266908939808842835562970545307429869222944121793447808377420056296617599442134118330477300487279810824734601220729381817055751493165256911160029326424414354418973235756841863699847487531089909143363109835726439187876734318988269793838514327312757350495016880431452010567222890662143113549546488685726570696305986871104916050577288145444570438939294015927876581229648048595996446966904313368546958555394993357601146623897316445947187848009950635015863817439249850670406432971483956518163926917671375410528900159183480111122567058597979330615626582398937639931052541276175417703069899460536927097797726161581452038011826031022363953082188420518742550173430156165788536581796272976806338411112308260957439721019310493808553591521336711338277080551137546330789736590067200172317789539482476621230502846813023060250677971797967508278387228893886718210214276895305158506033835335035380352140719559204462686651317835237487380181747032220351781726014659112631658528201457897658266817612333345992084549825572414926142319639033992581569872201026309403132505191037519365849428293798342019662023208001531979247899309028381343642582608706393512313851554493153001885859614230536741555802685876425876807203057944115026552879759006557257968671050284793851980491005748489363871234307097989126288961998783403583470657084881196218602871457034163574702920131580859602323681919312782806244842886897183477211325672579791164844021926200476256939432469912877000535067778161054210432674621499168246259608553711367809035844794787924524504019181438826097520791505474300035356169417170835158756417799153859011763979638221775474918615979855191907928064113106558091042846784729361155863544889894403139929829172648379772859658431053564738652302839214010919309815762935357442066141453266377162828727948674938264184868853277136974663249224826237925086455806307621695018625596907823671423480069378104807651905540113011606322725535072711243511274956050501110294008449231627488905580680868712616566211544614521232259987947505689257327500322034582422081907581265246285683324595929288359067888557812354073788041324299569949291971996670092572012989239880587873788480291418802395287515705794677465616128184522903953962884198147117085435177228758155663035452059495611173394372724861835725807560865965298938578108553920260929676681281671884039604229156915392515298058139384984080649765439114525342852054025987733287932304129516611026115283830350182018108131176435421752985749104316857492457008329486978467562862635129422177368985511274021194582975511594736772631662570340824996252741545588198478911251554279421737185860442130136724551639581052398929013318903961775835814923780512021658427344460534139257433153992350090849455716355782536293800703418621088721094647771190020053692659305847576415716519611720611529888386789703743323430315623977128818773487579128993581339835482319529064781351446585578107577503551201406570630709235251531827221483279643796883249414373954868565682922076006552086637748056214019423575013190138425423473105917537203312727090438000439303139323756029856790054279386944442143920911392218377712669260312792845291492298443736274209142814254707538438359325735584114049441463327337362440552892379542971472618704911098395949365835311589400039871533634300095014586253418266541838763607634277457476974307693141517713496955347836777044100090369504965221340301654166897877135717821258805830302086702403082217716869862024998424992002542207347044017039411367028574089660561964155919788268073551642016277838178425673850666932332326783172798689778386578741453524580699826012263156614273929234978680992530509102539167122828223106421116946751496097141644557804196839757633720104823973785461669270396141634924936224517260077912121775042244456804507134983142991645931874728001184727492453128077825596231871801327607785369799070874639124873907811800794165467948902774555224980180134091165879572577355928943618766753722873056921149262138427790432553425453366244976203507750438789450899750537411619056141992585623867658336262078366141822079342030658768972432659122968108921017020204779168808113870767238722519916843767474829477120849470467001858027857476346357929920141213074056732899392724301527252639434409951341324042692942131524586031909856453214494043652065737399746669908442777459338406825462850567203720869064832123044809096245951004771651540568243036914452885516734680197438688015015260871025505677330254578244296415661698242125453909120830250740389382619527379790180430054184722006982010996458443848253257923446721754619723323504903342414418270683661943680299119846109288146067545332118971135335511241740020435166573566908298988884195758425522803709117498189642949538959845727130410291510718587649279146949431637563479469557644437331952755962086855948835081843860378216308887755817705583938078892624114911982573856805670955944952368368713045538621946811574871980944852329369687873596103768955820142814086830302459072089802855595655865703472188810034728571397607163569372224431860470094263944551195354701722231849040716352315740849688234526441339975896682858949786304935229037806398290209435917883851820840243119275898794237536692518892781681236569198220595722480272905069747724446902052941163191794776509225671125360458660283154432038563086361511028492502243791038311304132355413315358690748594468495862305160028441543412219413713511357984298641153773089565685776692117169388558221507807630604976784950619398388686173101276715104110336393973549210859961820290359550743952026762751079106610984606182706268720302977547332817856067821552013134546717628492974614720860642103606515798212075721734079723175403048762596804365910981817976811510657052242596119007778350841364051859405995488895528874776546181907377468526068355775974328298563602108624654199829883915672360814480810826953535436782812343063815633694081530377182585743228634551434294226913700197997771045895457291961558685219032180367549280150592117183723835974636144199718569012726751289586616420251484183198158677572087033725310582789695646276983211007425973555124908081569968409663344708481484948001601161172517248010292261451049447282875160286411265449469716059450357135361404350809208420316697208204390879740834824463682835532043389638699484398285345700169172966630208938760579816112508704294374396654179809263926297723686120823436995000360752242823906651099756672446296272689437828425479718037227205423952370990188689451707215910237315258654406767602141794270076771227804619752091465203682718856416915481216386188960371207605362133371417559212278481888378468205141274370413604760494667902851937677669757524350914631248128945432737152110760676087655174947191573525909919451498734461042162302141785461018567762606050050651015407982548959279772927192744124021143175593720266575287124176774092011997676328756439172870798605240698552363032229355636562858266592083518370235839209410641607472672093620437992077083478286749702716596940578036969052782278404965286225676282913199192527293509885929065432298061460864742768584353246984018786752307782800952782936573625331584288892669929102481199539888955180824860439498258686739611995730053265779261991796684011085294653037644395743769392228520765895689738680928121761857713642694571002497921547837689291873243019496662895192542246314827002190008576296413340038587776112100582815669142220439130911588285810615831487371520581303169185365664624361248604049567984354270836730522208328484386575287214234514538163839383382341247103449369969445454578491079395214610259685741095366435042277894197321837766697761022750567074328279705925982734070094534802154676598298833952536633163778068348504312574524936321835399801965199353246766942495702629127752380946842454297664519136605538324712389248042645030377522398821408856560740274253345057762220272807512100076400275371376340622004837670505232959694505614245428096001138138875175779913229087893510531999252278517432443602815033042474101500227584302118195918286490839655975550699851368750043987242886190832289819701104431991340243886032474522780455625082787838837755150141281946000498044774891135763217924396766009603600893339900485220161076858847402543731690689746927957731846120260669324449701904146361199536517151740085280541180643959643555377749184677604206611909309410460957397595640393098607999425202978587905939684374312926462864941345845960042455423262668798102098296455338069444887949927884001119009890041619322140280482746212781719980015660393367168952807054041133177643893674762730773498812091930779245360609359646472121768008758287207796027370981107588562636321243909068613491591320592878695371269815915006537251904499303131474851032425768003530372269303313901432760520725843647456754919136270630817747506577872707597709879856155974985468997304068780127485847079900984340714842953152881083974467621801374704312897541567542355663111014239196092537211774387166102286521105832213555240298358660936674231910232456899093128830946037168590694909307734633560089049339961030710955138411945502052714500967197770916935790864618537324325544149385761283120238698716108372093326923694332771292450621468619220028702715849946755010334655289246855719460561080668995416310351704378100556823588140930774592399950126253547276923248589089952649918686017900048129311475737967425233105330140270501556211548208674190847332151680300561663157479266712926752921565241210970123204947774625486859172866255705282072624514195281480130622484998536302221304757790113581546697977301015978261387316423558750632285706091843427453268793771537370018292687076484966990637959203911471549966977919188709955796716019868157624143068475886864805155971164543877581283234730151301877225497059815067134928015981360786617854671442481609804788811514428160478507985083240128211020379666273141392140916658845440752658638911721104366660040270254126330805606345416063579936103271212219402769430465399683558386107382847808889845000362313226016783789171013672901795863575556710662186221713526236650825804719888867915267373275427396314696997964753995684591267583803977489926374379561437690245006172418960635059776539273834670250751647043994144000886078102113278117521092146000867789220422174219181237423836984378396345954083720260714143184211642520957547491156675955704287666085817737510895109393340220224638098783557076611116307172911558301646206994088428338718973332930417444122026127922496860184421602690914281658647616648178026684093629184491680505554038550365321288004755881861721514095778476602961015216108234760796415707549810239081951673533886130467389842481275661625617854253112049010882360299570876963821267500045472348226844388055234613123141204197757214318813355923813102578358919432106649463056922876360469551376570091196277690537391375961819172225856099072359502814420639179229635916450988901093076491726870308664611959094159138555802426633242223109376456367748793424640970631901659468171611408021259394300209017199046299669011993768220676999271680980399099593239039383456841567984764304617184977375467727082436589009208471028515940528172799673596937915530414416835914253584234680553435597057674184005898579834943811297973965942251198753715405153005933135848526482959464272834973580615385275063284374572732994031266914459953248489293311806615966470823602970759918749943485210659133855057140228922628700551967720826610495158040415834535944357195199615459341003319022954747546357085684782245781851735896241736849600195662714980875940690753464592724461188524371436773972441103754418613347676243738245350627605034972534433753119397437863121735525786279134611604941877239379737309587826200370232828788092927587472319612281022573575929893767264013028245987125028030919438114907608698284059522174154555102893670778301268653719879508470428379430965160560207895256807852844893144506058241776782689464806883859787487389351913424012437294795828549117570071659800936426980842033595005085338576765315194073627822411155285199599846839846938232704463726392945686744393621676358740332827120066772276912498718221644862765204215472050906145668392597366672433093055024253580165153329799626513612639519836561295611838954730533590733724875481507680030579607837558259631609382218145274987376251238299886376832324433277478772659017862809962862162630309929114329923167806413506904778202425041307606814102963698913493641279086954911040353755840852455167238191659786977119605679603232248819426622569185600305280506051637287764710570545438446666960745293526152462944554109279605651747008608426612199505131022867745568716661363424954017781030469146311158951042889555141024260103909071738386879293190145152003316405458555882306916212802573062514200061349299602273633579362291298893976905205114698106767557042446274301809576666656504482234887811287964292215078018361337049526029681036157526041874194805152238577296697090333394868571737302269510650158049647636308287148645610325044545133708166333818206129444486991865542907407788644158661362982774383918617339861109933755338681024691412769885916717451342720554900859325354478977912815775442510082773186818175934283818358067134629485432209825026791256923710209586709588014372576506508907440651337872811208820870347567138526124935709890624389639501483681040108681858426545842950033761797337748389367879029103021755044211808957547559064581258556689459417050485376873054081609268287215844088051829958262654674342566042400860743297430599711040634663777827835117464375291331846785869881490643116121092578075109674741580150123405737778165856682363144494446563835997847189762774079273376875281137110085872245946901572745640386056134146586085832849002481226014303676265580518202629468413830269017509020557821433322310913873266353037766926591755117853624455694806007316578509263894304702115823573067886487344890671984638977224943881887327162617926553173039189650914288672744397523797956482698304683487980945397446185932352436449658600738653331166787505009034271158584992479669494555446580561975972689188184329137080302246116372222473727248305073384568384025176904496905395557586052356077289808868723113490482411510355598809662368696163979667954574403094608373992507103018955780714017447683725868674580723115320753005533604333684296473891658307936810302282750850959420893481104423599415812974606205960257529087344841375699066296360112784453277269720080482997789685448051362949585644047661526665206302199077443170649272142102867494761355399857529580986654342335787938291925989577727978841430365277168281092121758280819231489601173303842744323095319970270126476981025326131656552975041768324867576236829913068024161321874941143352180632536808533773926399835010431083972705867315285126955289419187758101506191547542715504878967120004024267253796865499277903201042266401426418141412652071551882740024831417886030392757803546852185779121237941903925793254833488525066510178326916266062453879866502193200683321536839958527562496935190134053792621402079084093862123498233009746635415266600005603065435985961768963094537665653545848012181466488728069697010621273058478874552478349972986604013633905170315235993975384520439841048641008701113530188329768385966088131084846776861262988588068609979683513080126672500201111175922527950773241654025615747907275746930549839952778449891258499694223376667662913396516090186861517875390228741318575862151424450088628276823292117851889820825550086447783396882862866657167060677967129388132554192090579337923342457217296399463505665624130692188709228526017746973756492329484082035522573172895425347953259219111039816539403101905270548479218362157962417845566137148692319529835051566394828435168142225719701395680853724261859778399348206067514734906585554627307151151244745491495477950323757608852349350474744585880261596679387687101353739703378915689698970091666763113172455721196600752396647801289207280591998577520740598832340415602581856368393424858855500737996219535861812544685606867155617652847955059728550681112976691199723149053124451662386293124684146964842357885389540712579481936718011677929259853745322844962052006274289823881447774895097798763539232970725400052525541776195439248907635968529470342132484321809546692986427336910344537896077480755731443872114144837316196140701253123882867088724811838028042036739839171081506856813120135095279096542950355018031187291980555454437862807200333689058454765513903676882287000631732586120749118479062742388032809725629768613454678272836328736448376166935074584039981517816715600172799902921109898651965090553181861769025498810659999895616866806995821504010501203808586909856307438982735562894448395848555400889673284005672204447040909834112259883888692631305835013981280451790930282876994750179608241013442542143225399831446312733528558617502386685368227684417560627850495236361810024625240707165145019084572952571563695461566045463330300164671156333902908100283078945731740768083758596880548150242010090783181800571888948126003811071055602706344026858504407593471000676147472517483106036344578250308261689835644160525821239477166613240408370047359314364730065885362193406633652337120472022801054495314595856460625724056935552212130257615543902435091956903765406636960401671488090121541745715892487817975271517210667776160701272362273824054311692039855643432124698803209523770328400060160892200251528528471068672026899845228304233331817708629928796757453898588127614885701172810852881038309475171783882082093364716106730070949499465749476193573859106341226785059621956572458491459689273508672339948432080908376558721723110222961666769133360585921373388714911126975635752044763953646053575982070998407544016124547385614479323930796622667601333866150865653995899021592385858135963042491021803865210514459265103382789042111383132017383816706073582890432522351227991253590758643671987396507315811576188040823890364865762793882467374856469602071974727860767427980267049050469269195948900630312280259223482120379675008185034455144533999654947685199984057607459701225669622427069426397547141194829782174428488064889650094136173514785174937302438608897335046877662957379389343074298076130484612962817123306195310221611136930319685229056097490228824876239287885106361794640351785153765764579435903290807923040472508522863436573182105072542866140431153063400255772785725372899607615383975237931746490210863424009844409410796004212327964167992099998076540497424308560743720332568197808283254521322306622598873386309371768288809590991039095248602700246132891954261069806807273335571054684390348465330575934426209863718021831057137098656837122535634826464883100484653976153669847450143259368845259358055012180032821300671140100506988565810436668379762693095755841017916438477093195081646208081294826034621763023226384770133951040966774852331841131125962702854968742533963885067716589826608100832385549419561168588112634836657959203680431184799209898948166560242896265376771766984096484441466209619908131992367974607118794880637997410689851217056772200312833055391344931999048283404036944941578849372680989923667460480730899395455919565666295059278025267131208019569873601786292489006059746801529039466415504929177004311962986622893424984383079379684751716684304515032825184638039365469986117839133071656448923017854850742294136756544017257936287290844252338428218662690724286415686304251442916363934170340586093503249324091112032732653375602394884314887371198966809705152384588617737664063873050338234374487229034301603855156315551733474771103253254209401573816925556486822823936425545978737187198719130880472015598244991866844110266725536753265250265608585247883532632166297105013996140778073084144234554187390163997704857220962923524249172631512304538123785042907775873128182361924189097205656204482426963545155500194285171601892594219426058674579931606987334076441749039142780579627599697160902866993494791833549943430688073734159975108353971626103176018174789605108709089282705400624821458340736146461939082646249882645550135146537141987885463367937702652154148469271325813794935335797881592717043264258984320176993608115157998816594621268242356611129316780679017463393427770004543261060492595534349434439463096316094069091533818347012070430910182812923977858086382441952127196299891688093062226706732384529980912732490701468410291578254210602643075849457767463562998363880883008821181241316627822233830692708385119778576817712643302947139238451304941256448368576638062198402395914255615495456876528195764822349812096104698143689174206057905047041687466736478640072083792230407506196983073418822263749927221207576729207928538066187739304939906188590379868726170660421821781329914044256044024225935504579040071368308491688755185765895111142647557865173021706057779573652302364718829481489862075690412275912409810828621162632435405297159458811730138889669928799300643986007989000944948714043529793328701005411041994747996038115458298680082276602523251297291210552039502819023076356570994880302220651707647949893997641682469140799333412208913883453849587697260647200238885150198997135803180303801862784111507675438656547474769424975408092004719631203855874949067182857519899874742053277351573008403655014457240440075375666190068764418445524475227459956737817229774480554140137988609972815919938359013217361480291721803905542951757931771076343428161700381114864771860092236204834859815861076388890664617501246687414292430433169732988621127887566518495506063927037038053041693410904389661550005775435913197337056938519112833601041261803626210748127930660740042798194740528315572455052560851714226380774512111714146044792291549580019306969582019036235214528192412122843260515409510461292469487449354376022687969865450253667249606861519240703587222878260784641106523331574316050322011921848889505885645441337136894397827934249811256622945046931717868742492747856394953076271505041304764657197136638094784403408462576581175684995213211153029091416501069783763265544902940617081121988199959926713192465627459185411555941485895832083421008588815830036026892277100482958985313696570621428223157416062722879728208875044776104988336521526148932710269137563840968884977943777016940238679968672599901820100254852107558829334761141983650512879012536279567071791055533258728328548794183209522962411611934848038396755078572470327296815021432681813448104704224138061623542317252287644860047098505704198641520404110969098397131478556455153716315240858576234970181455659284056483723434339062190225431639030234226028054100243649928546203576151317725495855433622961878868223417518032126627851455558435731124781696187650148428277527544067876636206208117078809441356413515647188595072774477080530710295622510510401849639790192062694878072932768144672803155793609136412620088103936645883214578394682209700107899369903982703982337976005188208677092110104631165004139304605879562881363055176886018834570492983874166692740268287303128329372020489909520370724423729685563383552095470613672211001785281612274068254064386864033899592337921454750573410372805938464616183735728242002086497574285365952675631520795603752511169276724889521239025096440042369007158377231678691579549438270533585551254216611633682421228674692788956940480426965412390051457551386350633734451229462534259222614659562101711644259875647888165602448913530695304142997870891111089343858729354879720155969193047965350769240511054053558691650350939960965434773245136956941164586164872278163925776357786568662647630712471093066354316103180647199272107900668583581425360617769446560039645876156572454413603484657727508716258854515608806299405708355841654984828367163422927685887154801976412058291968441910051652002755529055436548257646165850825714129049044276325275817107130386007295604828005394991938128018017952080474141582064944815198783039860633756370235857300024583052520577690396600270723351127827184976181672043658576586739522709427440445896355991096457916394755809891600093163355531156903967466252101004081842185003615832195807433993528785552715613279813709388118070728804369115720536574200906337467842414803866387304356676019383784256646293372682731935726155141877039527687177128497439161533745132164796720390644175082317539154239953840940600849514464674462798600597293900870560047771461851453001000012556515601249498319427780994214207904975454684383707400359966005291765429716489011312589173218932471677117607059254874104998597972898475050691850745791731597377627881259947427315197001239291240572615455348806919624369573552879268586051874514386724190377007143448182953886948680269363961571027495263074612541543362200441691337573839850607854286267135853732454419426461694690927001873356591768894896928328093404220046971756585072804014844094519346422326875835510521137884955136237558507151981763510934577869852050734173024647268330263956103787684183699702008537477335679522448424655681487268403752821664944395732154961779612121417241702159011260049803895728558557634938766419738310104134547491799712434151992309906720138279791759980002695125575328863607416047297691482676553906298058163781817372984458670962175737434367263184894659698736188348510115669434797427507471199071579225023922242306236885825216824170022260772253829088322132955442043600929855531304682954527318969436405196172969467844020402869642398294408990729783986550023999983660990790594940301796877398925099163409152445749757368802583784812902518657605961848261574588459280635058060037301796335993517964384965550059412063797520085889395112976993115801208845891344491486491210905963055687828610060434502323537222710367872393514295567578717836399956173482778285646245729302322126043610784834042428779703837728792774089350342057694977084464286456455139256025865707088407532628982421996066118679710990626530364859301504857577448711670222339744304002930822495231852580878381096857959092067508940380989080877815641926925184470539879693075452458668433181311453969237453735438740673529801162205793768540572980106512355786273874276418481285077202021111397644989363788459012463243942759457832388800735411129677191512386035839272242480628338536818171928537217073630294794032214579753629314135362703489368546207268395679094971154897524357441707610316117513591850750363796126911578826929194320796285523737093038658738767519164703778050458219204817669760613553247563979551262044185253569252895701049749846407604950999708117987176338512773051298206219244556527784168280538449101963434495335745926665009501711876390033992547241420787800808344807228971455727541912703379080005706856697293952353675740704442662875135936952638129586803984098520177391529432767081269280264629443810843224125739089066684097066408653091938645417780697900420847944004541894212630343524149717372257835339927459559283523396768221388172259285112494825212131870334577821503312513088783366651039156977815820682888000579533484390866434805647196238275599524059673617347138249296549436608540258129640847443185355945745801181900344331333961295211501983162107075413952579010639941834369666879600682866692396445599637440742255964761633131538040682797626345072766314847252703270868886800277377804211896845232754323390638293967718310315066259615717173347303284143185074629773111064855587731806523321079871766734389052355560149488628167769580078632529423343387360447641975353860619525646473366701719565377853052999868506928299629142376314802774990356200316853386239564314471696529151438920043136988756967984263559016585182427539394002801684558469464328466436198905522585624132868544456661565142706707133246249615005833232803507648561082479682273836781322586075666436133088422597106047832491642213701853262084903914909289812285667643817652122535403343506829352936312373332907042065768699760640334963842833265195076755600642036205854744093623566685687614620895805187794909633569634611926950538964217335830666828415980157149498653213679485790927446638672959099212966486463049843443849473751033271773407482145013626736187597856686959232342226688636032143108118645931849736899798032828218147749815512360700234714130161791433546288673427083650884732019503352720328831012221341652363879967055844898663792529331712647871042161612190950148478985708398498935828156523541732126066409703457665041954058807104717906531725932402962515134128153420467908895234499585751862219072458506273761008753374964915837025074430775698223095022132775984115214219095622093844303887211189401370335435210511355040026848551778221263211428148210605804518542521302188147637219358947631661683312806533665837284179318614448006862596912725044145372925839163873927895154457854766279588116907441694616543480755048366259979190739479823821485173002467171834321368069314113774953818675084997802123147480452202443267422730314184701437765957452201119682283598244724838548511300344374225209740652456372423540478502852815843007635316001016800140308930808666885762217922940193415191567260638367751783069782639839515634350083664166731183530205562384813235816886461409282250314399040643484796536675808713576701176254090077553540238120058348916476058789842150785967606240235921656728304841493690387929011991343437017535088255984969464731701699370919460048968199431141502144395195017986462618539841982714810274229831257430527993815614626311668714734498766171439541466634470484122955155857942592024694620127296298819398000178910430325844712731496118752289898555270307602768189621732873999489668568202348343284483005138465484252714251372622464076399804001136994600277040461617687388604527919217368601991604190971370081645633387427658270440509883486354214593340592863830142665564892615500406624589421390264460308249216237777177819827300062521498208518039886262882827068295343954859669831131124915531924179601205739420404585490211057635685505414494778894359124299486178810456218140214490887101520033553314127380630099149911614216408162009214190067813979209665867933589089762726227150955835789884859233145967329997298323014575108468493322267578876329043571831247030950768989197870537894634075443511345783918342264199548796698594320459711999961712648408520503569135247270223053968523983769542657500926751581450102439856577210575463312696592084206735791402885024170423137730034033429251769756468036274835982323064340091621291951680885944891181016685644349225003156002697060187412213463830982330780746700158157378441430927098174753126817633537078907577695887372938573107019202049037762356473372331109237907877859244151268948412566390352050457821410034299748829708584468153165766469837996111377891181603511027981227512431336578970170533583949107987790742055237591634236031875084535274120674834646924727763897233081112844405374375049334858525495246993237225346195179506774970605426755216322290785934160618789807152906802160389207886436618952129214530347655006417966633289680513030260356274774778897650533583943389003670197484629476834964981695467755479586392241552298239299348009888504328336205442574273329712165098427795385696349716906732179157889328139151224925906392047015321058073711694225322491692738282751830156116871342584724903227681021857656455452562023389584508157021235491068697825067390408148759145248430075474301947888126241576222763572830829630513586948194093830937581494767090367631377173314979803527852527554681083311804162921382753505940993656230334962888191241839699846146708414201878863022825561595846577617945534794954538096704601288718861050222974638880970951823780608944816689054364123731199187880464193072704290914653411994621150577740664156793112947544793086669576099824462748955424452364382095405567676459144371902875073626006429035234060013669387229461418709964544193982057136827189717769966561454818931298076142106445442482096143805053957305269344867828108453836911331168674171052795916768018138963565939405777043187426447410784833411576219626079055218083825947131107842810655168784550810415973032518775342787683136240890372301045210887304226285991543132806619129913164632580844647231528518196501592974393905324879304076283884197102135390213372425743720535292994565367411563034641702328687557261278419839228954145270168981414205756207281562146751226936769235507785588006192186611009792614218734136639564669899173079011820120116661010673480110839193291104605624172432317415804479309478347348671257285909923534961029853073004797723308705056203973332533520888560715244719679777726697723443336495124444768862613039155202187351046103656182040976073126082914629608746577425188054880197248185151191736604172514398234529011427188443510922333378938523195909537126856867631907562717042262368554758038502869293690295720963517149453069589897868280787730563257872032969766148523098289807716702398319376854183479886331759148176767242174374794752380229947468843805772536690653000650194258108803243612814570474655747605236088130193769794804914041125524287742206115788523452714822603455833379370985291341168884704279145430150442741269887586173968176743000133198890671388604294088679686351037313631352691421784471819387435618379973789364888479589779331203505372485885317751130929323429782304462702876310229927268487497864331849190560227873291434101347709230380047270800496825960736049305917993319649802069693143488785172794259937896225643527904111900231041003051031684738178587933082261862316615840126882967564068585096699883073164162264330379573717067029059496840642968614893129546451963542099640095500163226234815991134055721597695971662405729431292857027760484285261878149560969710172323528525361110090034638076696540500882345755485231721144538005544563461445495008584396825597595196568475146239130452808765312824726857124366183553682914864622831181883137974111039997068774504937891828016616655889138981368556133562686994748760147285128242785504761105768213350163712215094477016094016992470369067885281304088144096248021652797168229436062517648428779044043260317379736295407534113359069345346272496861202159362627470823600296678836965937432398703528778445408637809701278782063207002785668337099920057209417516526313503339164389792076584557977285676936973270082791991579637577242899133237415269148083586611423581222770973291160541495758520772619513069798569011480078095860900740952647043371239089680680504412570171438864013663508534876813326087263411934549832365211829680035858307177909885282801806431570941163991841138889771604705439780219333683061617610250592725680663472251385922156500226460351855654600704252411114606924728399836841836024774717961841686075412313933557273073144230608089251287169566106492712179135345256416680917382536408785351945671220650689805818533381670316137606110408744059607522843758341115572279627470628838546646176185147375174366234334858857277557183414687479741963839030644727881668899930324950898597443410722730485408889107639218309007707374159895860287931362351254907244823530454521525153865722430552719499138313434963999224874687267741886022295426198947761596879750024129836328158212472714289027627900638051683560736247990645244572652215412376252144825917312682321559688948519338457226146786751668403781414973614712509209171151234245206020621844090884251774535667605491799458560610073629963528911383735669351131801909526150981565802227568016855991591818400069033065481899714850859203433590898985577995088595387800045958206178773302292191454076222773112962153117386880353801407907862435120677369461319539180233088322256661258979122302809405339156160675362167221462487270150519735924468098196248158451522139343722741177402305295982563184250393236540377223222520738933815007981549764829312800781658986038868363750588436967586665589601236465781923360241970602328473777423753112039041824590034791629008119875561542804599552840396765439275157235796826371673636014134277114506632745133917993028229479260980254765250013897259168595293865101216997066862795911937219475305667304115305256480294739610104345133106245674798448368922764996387103877663006966766274464783354411102293196103557330304450724978531788727243454428406049255562753267416881243724528219218760509065441591144182078976274685831795965508012041505868980900191078782894967828075790680849402063950354114583620007314774479132736541591685751161587368807929792405626051465880407365741063846132098568980899099271720166379239274707439150337283985887257440180850700121595905216606115858519806885650022554947233729512418631685127520888089211261409112732864663639536383086953593095349842904076122354162340728397647337969440207411939511492870109112790122743214659501882519879412154388571333474683626813904060411116916326994655475549305759109082515230192748505706633563990472336608242307301695786081790174435147751567887706079272611947999733771753290379701839445329037994818758249466300798440458994375754644161710265126370475877679038769262490839632510235852438827591808331026236851050161936253907196760666865057443837451300538154878582850406717740669688806187891030634141243278569676466981116550370670329826026115511220153562923091709983176776417455917037882109963505836144034320605681894038990612314106280110553842764486853419381307823070058630015352820750993975446006950616476455670095558175085588557094146933935635082870167290290272101175212057860656189337477805205715113400349274213917184096305703459031763508714936328083555251703390863545406541819946645034474222540500388447539984137951078645793265906913615652983377657095614600259311891338801385403316723149004454218651057589773798611487918408280310731270808557168986214550320347903338640414694998881808060757067124566781086654318911561644951383509515191901764288040506009601730405373398139762082724522738488304645018162962793514876846771418942778466739616711973234042120823458668289573692130753511559140064339042898215573656029431472649200798070820281432237448925544807009118600071805285765621345337435784515894959476736305047593361433310384849154268975871082018571730716578893920778066773239243077411925336578723454853513340352774920173870266687545138943648200620209899962857864292635898347445259059100393813785305568421779035727073742011602871309678389209580365226685663995566519187918219157127814987792596882856635582387940425376839899035906281199961821445478941789115755029942102839255569004401017441902660926553512100711081034946138806501809590927452365168015974496685532422940937724739003292543791748100213381106444030593954445023375108790042185499173165892212807232602066716741543708425757628542543916192591776487666972616390423386579396776218335627652626142622617220458645764045077340083489259371687295438246227572642256193157996029019541095665789574175053799823660372832848890704450035479375647075127242317282852438366511714618419468520389703864792923083431168575482913901101161735635966505203697525954275328216148130246429869726365791931233330212660161795533278558302770960600665551579503389258518476111818516417932559672922371783054602811752915647011227548963156073926732887489734811773885232836430985735116686856377792772875814809696062396363997879953862510236344406483967739534631578524499614636769552147747946071267483872774198672185813308648129227088396459740451346108790241398952835943742682127733653554967881363630298584429133947776745359535432770373815176777710362353706981232716744055430715402678664950013062279452665822637001940173688954152676846350778625760097028446344604575669045743933201574770253444276401030371700234900229962649627031205861342854741443231334681055617228932120581909799314120421264221445581728353678544554626746353433965473449461389000013609652907287003517666626496161387473700331729590194346798777455655158462988325234292309453681619258099197830800805212729794430463929372121096828584433586538984449952956663528608450851616330614984763237163475106425463612702022611566708240633934789764741175733229778856434780521307747865530756119049162875670072020437536501353915106771110672570029533440032072392099425759328868715268763272414971763801111470474923504374900727273874747889321509825717526568609542148224019313908117202574599288578196541405737582563601339078453874194228593692669403786368547513951620848845647685438339154187448744959979921404060602300574952215846092252305172682277385502939407197672214284617831080495864611919496705408585869893917269744958692924429523751233750153828377959514999997182148639625277353844011317144223539169635601942810247483730709118519151341425126630861174886044230644718129669039275130916836644806170381363745659648105159520911262214843769029408340702385060113892399592763440622444865349254229686407730267014082512064440392226270150342241009949453548636212292594775545792751829702688861539537864127465540944148357099168493695257422851923719186023013679829751537146065455184121636701394668474504497206961598634138189058766210865186357524118873115387881299893422262612624328051434951725136217017750797834561698305778084285313115022538224098520139663070593655476644057516979364904003664716523099194302322197905299178934244017588327475808606440094328783902151219373308628694059459332218377217014108486380409189543923268494725008422823857304961452671814698771253931266480243873335947139752819969545372409060872147580825757064137347371603875441772695575487173055428750183317500784026847582832645869144183582834020989033258138931853296117678276633372480642860964492726051913098615929911117075647448243822211099189479420937510254913783278009859110408831374705562286989962700980414011715894183133818644253266453774165775545618158339988522111091826115509184410040408722425316520444925284910985111736820435036995923866458173120599792895381538224712478645350388627286634123227757453273667232724542072199420064956428346579612146889538891413127325594447687634160021752905107532242116015141810240977283053630703239030201570452746790403019248934530943480688345956174237179883269793202778279529720543245021801972622128492792043475252335054756108794251985067593837781524709575997793118919049398384937501921471147344532124323448440903818231619909827899258230863601237060087796331795798092122233871096144128260324033596086952917452310178734440392847110253372375224242101177310776214596724186412364324372228350919436566722169505003489537969904838109165897718340952971806858262566431082022376610241455020140175249478453569992978542536410413405843198782456169365901132948821236898330278075234209816211744359202602946267367531793279404676201080051670530287474652024171172593726390568686863212697529583794935283557437153768413372672988134511117818305720778282036552961431064797673734500883639908567144642079850431979175707379579364663939901606849698887773878734021886212909178986448215276691032823512551446723239439696285591400097351654527733679290071954272297588300071808523101900672598367879424081894893838221615610426535173594431648581053838595180102018265175614810352687379893670117703304130111452416533295301707385551841050335161108152963870915673189388626546462778632836034385807383738872720229592157727702595957527820751242107016201521844873614551480547024039763564150145730302817018802325249794262872047394039842691405674066600334231425276958067101560759104717435471103883509893062751267425189698918530056372846639854533403818752063533043957505467067400779301702274198222461085383429034132876954356340261539778616072168132367423667785915155618696170413547529075900634725278371113241065856903227884226888984013772845060140421611654482855234402689027473209370725876816591063766732899433364071321420261343827708611473339872902420161719548565774713050475135588475696015058920384822912520193481173481207971528474579425734560479929298960256344886607665293767563847423035662792660889972731862356533831814107092763373971217907567124771990743435774953225556538127104144138237881379234540601408061478152696978872807466734262666154028422923388822693133405902151722741477653718171804340144151837576133441319813664998972304910809183466923236532388684122212531392586891638188593462490974408144683801480897995129319979202213138489924601835395096698818991400035084556096860456704552152127677163407069895545651371632217071868740936858947092284745686755710664776260447820770548118730636852606747236336214861948578102053394832497677816887603229122825944967583560579828079572584078292129888565325426145804838864157090000412994580448461547987635643563685179036219524672047965302116246597638331022285153857532671300681848002953376299333768293208831078251423423107369529194571849459657853831930980086358880185114423870132805166497303236670503873216322147274669714280327364133823177062749395657807067473554258902611351858977704939152216781237803455165237381645084524908274860967203513775535742905210710290916180568619003060870797299684934739251534918497386576633298593134280020169909631200859739187565196244254808583006410771421843414678410605968016560666124604678299799033975610229137756329812024499587093819422408884674013498700110912618049034887628928081982415466392679430063758860368716791314507149803718977183615642646349382091754652312568489612678317632441809701496760850886220668906931151614143037117153567062867634495375054691304349857812948250807526887513917752816773461045125653867569653800790563357182711939825082340447648716595035552990313034755109839762676353274992405222663552855091812777872044835301374989191793435495943712766385960741299902786014321411281413878320212729982383102424710625476365585246930306254318919630595956660732735192313636269652216479336378939888366283260827170061509323946610550559155892216938716051767427366768905811830071124510329375038444082551842729260176634243140691378564352092683354204401507116731859650331730800494537375383017678547307223686396825413063871705683836854649169509171008093801615620003427059642684090465425936671050382145954546505296307364860853683314720042155640121848674201782092886280454514641314280329738691142276613533371087851281700099363830662973423276977468170530738638468940878972177054477023027653740790279439995448418577798626504613145898220574534724200196359110918767487683469083259155197765117261149768432033430658699521059389647137065990339378402372302095831055832567848876222091743902248130437404505044960430162828082158772327204753875832848852975226094855984915298622830372805452471691977033644379021679383045037215714328704197023836806185051223026785547873803114802654993434842981754966514630747757077036500875993346177849462052471827656244355779816409218141482950088765495575874380791587560667071860570100099301512554846722132085398191022558966166871257941703769008939005516372712979547796002960259979430014486938540161214944329340787596666792338466109016941978294871313328132897400237906694373476534172262009521614178591271410596793509656103863486416793916720997455332981049861942886053395090836725930331459816773087405925714928056592522636217021208481749198665154556159137748384561724322749144671742364407323976385867182841796277022879246420987225076877866400386362620942523335503626138917302581188153325750140328512823617149729372638593614083851362487508917646193342422660650768360615938532864582828884599204394990727870029806496920436385723350381065190887228793816748627070147618040673229418859765823464331330582063535274056055850752445951871702804330384408349931671541679251796928858496078736139218328669663522309031225495644506400643790885948618483436125133971075097167557960438176199653732087199086837607870658217599170034073786527406389700488796411277232862564562954016291677850706715507141881110192450861934214311039849311572197212807589939956605239417910391707312259763980434493037976432379484410869123319789274579368171121137064166662997474369130266447698201660449680819585366606087791159052207602502292772226873577633872356890362119381794148333281760103579695970841446911155063205868441759456576866575447194531873148170668880010461587123893163479857798186762416957791379921747962370879529023327346794169121057791432485382501867659710047132411660810633687380023313800860140481978002167747233386539610292125669168838597848530396590792456120254413572214509676722420999505374928425584926558846375487912072282174823090639251269817575181689104806421173202940419844647761929349987853050621577761950973783979283031708450200371746398128055555946180134157111910055978920799279546718426253451433050041313218839221136215615265469354710845185769082197588888641127749294967714785272652153596404089686590406828512759417973966321357867678294375854498652688856724671606724257133514078616136003781904090244691515985259064752757323444683330641603901130122807874336541914103214918848397843130738168634022531820548760076094687946318357587560150352220422189537446466027701152974462259941413497217637505492104016085655524218271451676906368487208025140698643225919778427869753986361896435736276589782639267645603086835056267916663238971346768633947404705501651818497192752019593972317000877877890791247451602523390793485232092362996552827448716100032559478434700176210057016722410425583199283950399141683428306214075887986617395243499070802359458259920117817572689446978468836403867971701325820846807522951881053038886075803358031324113116516279842703242427833730951492568841745741627921800707062747892225834779089140998543418129176760539205598775010151045810233533360302842678105340862699502118515528461879482226275414715313036395346950997815804892915593098656956897642270939878027070092367128596604605015025865181802123303284247921280096657998357550824263603167967537279762694567752469195138259287601506956803033605873426306301724490829199375471045403870568464236553157354794478414582954549266901621156989752696172894775926818876600066650236694663299805046000050118962974021865159660046608877454871613042393538098989321283857210975123431727703736776318564287219314922656026397644499722834357250592016441161889939561015277265666589688802512559891614534209597230412385947512366584609410563374190875752780420530268169661014229074690044711928640568220880606859023845117706427540657114615594560649877131102759467101591134412999572484819929906032678469523747719572481985448723797859723764695042638411178296169158073965995235111650574130887874164005754999728243136041464298124070604451553502723114306408790445329030667259501339318563236613186944848890824966724279662252889771042864336679551526522579117568199612806193511908176121190010249012713239867193724176393804965495898432820702592170677883229093386888766661472972334357497916780291284801136105255178529344125914111757059107713575073877082973592299848315354547315539583309858067163345347850916662768807847164952596673089805133718749307163043908573372363811040690504722776692189321971578778686823473026690362165323681299612364359055297969454478398339334235600902387609747515328216790424793479476626226203910630923465371119759195376695834783366362579963337829311476143120507805907109079218056936481006475588894060496345141505716759232957677265392258878755856190408916871161558502167605665374399200769225189374698818747832868929808608741475943174611751181028924434307970444388815471525465709675446959862945425768287388869841189542790336038780694107816623038467313776245503962713532329488151088741523568935346567116957841129552976594440360790647211273385437187715108874928272124915425224207456312994757620921677760021563163639110043664137983225262187942373520199111800923635144828579985591397610704649162262790323014587462457934228927033570013348049696248798048854569504561713262268067701896199896466836957049658936640080234270306221788787475316680459823943413702848510178442052591781418256203305080518089301715505439855299065851511343751379623742950668277362649430693204011465720534854852058935914899853907533597325958596457790483895925169536618225117670320525203447060646340894860209583348301193266196720945992109081567890866530709263090141544670158160124273189477230844144063058488951163951214559946244084256213260941662526447108727513868325763197701855358088143181263461869740762033009737665741411589160445337584957926191476956630412134428640269001730731621537722829439718006064957718035786644794334900494794182691311486026226312559964825765568626521667050827029207476306240620774828980033234624096109000239150599668765426945374838058808217599606664053286722689214061924615157932935508079907867405761773539429902779936757755936398895504754450752198268739578878610272125864708928531636728124137918257557395322681052194736885498835842132697229480403362886812244171996507714491549338589999736609721376574382642230650907542996212773656194180036870927486490556779974772925348105943009577640513893406526271548068059805092153092723349147328823047163640629902006728752451934839963346943768505828443318346389084049207920233848062085808856306695604262920449235745107686505411847110459287779044239390115972980961982940887783948133428544578886944258271036341165917699793374016847158435035334010932272964572191817882768378647291211495215010494863218385262906643671359675519702118090743728826944153734927131294836870904328110122089185783096148387813671150276767014036474958315828123488132891001108372138695446373411271617095304471985517089677903716463169887617773014788823386890194628008655270009341890075241758065677228155845319987819931076208701992868647348980220221279651291664162982157474498646292921842175925692528465353990645148154873609492384685431751995692031121119245790546812002824896875553646382215589193869006721996089890241469289428113981900053460139985338967109088617043671576284208262412579904528848837703778726081861628040181984301065929757732558407376319945113968682140570931869089315915185330739515223274542428557076159930508568219461478645256281400096917713916918973292799998077517932183731502350972994099793226707258900226626655614174736439546905519478376218594936962145868123131799194543963874826952077670150192304920727773927759878072705507913885832803017734313483055786731883453829664434166405685985058903884323113831418999876890331106812762388961235192355356841985927573478464888923770958947268330199340958758197465895041667216773702214740074629335895512524651408366717413236505037220698836564702886725459383976433651860865073901398303497584709594831296389415006469729664497026108700436658701203919582318890413823553353520099246407657167082989497585588763173358263320709385099477606255439707069947884768846487043997875196559842768499446564518575036409635011937396341211890872771363012473944434212062777925417573409733025619887675704343602241869623847400294547963070161013161884622024243252461892035527104636492690433523383613218896407695509224776775928187973617113876408438939242800966683940669356565901267072906480490797836887000769035993304478282328013321364183654228190539889219496630021387140203280623900772287283511566770525269492659087041108440856097703676001644225217529680583252665307516187645295018017302666095356757882811577672866941439560022573890129842833845138912502444083976847585155552221936470878575953440808649127883385279445192322855902988653414155520679937699504355246723310217924849862382143733885956132391247474201487232273648121144810562411023829300592669332622109434244996481106750685261617469250232599500944263218777004965922474278859987546518353464352454357525032051909027941664617887904512540896559700876237371415780975240889043625787613666584132792001429953357486513418411862397040957934785908914253855142458929544646140234220288850466072153265958898702253413354520591379045466908149916769787379228274994229036769172474046061297009767915405594269023158479152778233234622840131715530164009007471279088971404028791142369410247306823556340443532953087228952678573426448390294565933335228410651886782551078506782710421704676650294543077560528506851475376275925206259209304315953544943327979952123843759142202516562797189434026470151851059558538986742889828462701573702727574092044794811536171808928370073883752281340414393019842691012242992484515501817500894876209616850087871491798862259655884535202035023068436299175210816292479365248652062952297394315713412559633223489525855277322152511086918922710900806656845173472148017545926162704585049852659492953707728120907198934463825063876633770805286919663347779660125920404959814816658579197403583946896773772454680659892823766422455813202887573800318713389297034878047162847080583929975995895057238060971378954344960662492071565947417873388392476656826946415401906846285869913210997610683555586750818717062530293523082005897671692169135292958947872358314359175170748527793922503915279131255433307387692666532508848476210767643061972140766689642752374909627651970206325963479414103189163061964278263686411507717566782357626518354657629017441691504427811030913825829688805905666311621031099557177561152150516398296901459527860323681094367542096280678657581619832699082871203120261666704098116470787748159527968964656973483343395175523698256305549591213028308018200382589591582139475570689753016054694290208028300150252826756296570302254072258222520457863065502024854592211382373928396885407478345103547999040920351251614338159090910567660711587368074295029591217799963426661215491666816302917785170205763298928984798834505879260776414138751339412624599822355208697291233412387172567973417236267207790615193507494796373215195132868199043888983398475402102238092224621943423276343418037803311322748555430754213358194270622099086682314251737212246462908523970389217090658214353898839487352219031594056591946693049090774216954812955670445075130756055833250955680524560433159340198832778883664645740280234814407604709917561610617580051990587619108194557055308198931100000912002625414657124739112370681083432304045313898992836262237482071383121732998555879773477656137960741818031823455414945779608553255632681856351626163360696356336532546320684713960989225227681674254391207506097368484923798343919564710525403784625916268627159562668755136134801727456626899278424830905163867520942557876519489315470535912648693473382358595207402952156955171796889636370205549998448125460124053769802462244569288138021905927715915183449689291346825095582559388113449259961121687810729458346781057387454720338521353576379518542627057123311283363853378372606247305089822491736817938302211001716334014840734040793773847461028896115559068028706071951707609884004188408535325111298991220398619832269477855577545163335502087819310823629945736357750762688818083171937615519130070163778112465708143116544267933514666652594107112592896092508674180967015887585265840064568132410940254801109537412458463631760015406061890069401108967429979104760387538589728441280675660959690394554705131269831939100092956077446758368787675592779434122664926155332064262044540482367277225197886815256191077923193564453180752782713062022308882795583552580692155899619028403256350530577875034335831478983969051353698859472223679655176141658927998782088804584148253460090456705779225547038598475596268883630730380773514687235570348712958513664751839131663176315728134497855762753195392249529195813154984415854954830999095282513532190528517602028815836807700151818324167269960677900597588727241007696313355811501507546668568707039773757962243329202950088453830983511267887292517375422712785527558696492060061877993886161659530144490737813326793077907696788844020484295174277006905745401389137934190464519080530391034966709234950698716929680189255353426107154908862419327675934054848990780500826237625219817763084147603742712645533783183025748607464125724820302926207102792140185822552080796555134886725641027365700464944388816882644878171356627578334986779156532097511484819870550411758088017745872581100989589397759782934948026952606453244997168330837759432377952096086505561858847507698035004102443533111366776907153481049961154972401874134517281187362761784405611146609445637805524449367575901578492210401346635556207972008457369564707093459012222854980455119612845839078722960217499684751818862517774364070063287469376405486855683024703498103542434321700701137373700349701772214077186685630897893217101350888511009129222051367008133775361043808250489251726494040789431409070434962272633222738415153442900899420568754143443052911479951890180995274811491304657227330807782201881493775865859161337871857761031964132588161178134064430267849527070962428588040112674685546324528526968904837212510267597577710095499662053664836817406314909623662178062533130509716073664698601690689160157877610541190568610363920448936713463586214770886321585127033623524321629000563084138644007017244399420496702981652536797331809728238066875856433714028315479586879869967715442838651694302504750474801379660091982371668734526436930799518028549105174471339644765459548291624110517284111227606934835110114389664549295620453509898637349612148178179894469221003119701231585567397490748355663560840552485477426926554742548509928737417679722234406890681159834679778819076474172032075740154358471658340658526153157204966173650894988916951375694667717409338872681084921547319448634222408585984496669753096461713900753977990421559832860095516737024876087108755624345977194867931288023039322946969312055769495161288065526590725475619248524591522135432319048116457676221755440146225032193739084197086219184773049657711162296460754152211909819540628518797076228583502148354485168693296175054594282792410050846701948159228324938562613603915132118631981495380016222517606222135581856493014395504950318634665429333081049806008954279258308157319687006506023254201230639047481886882911726946583981724831704306520134747345262132096546665891817357534998511512520095918160930300378794124341932365251952043771115798462386618451051877027560249718114782183297615387790676239459120148138395304124522328397571758464658280628358843865714922151367529915135650955585551187828239720279395850682987569261535066680358678956937264369434651047454520962829026220243965609119377220949406032484504423531583534188611805115002473975674790251989690877308738186532566267015761274772453297045901644564715722969069418099227586394153878923401131478957117528066242234635426392145292627185381665468312544138590383280183231456447524659997094038156126611085208606087260463420936201258831953055850711060011011333734471554961013972372693534508412465896402167024228315028694137029420145525440372014450317770609374808939177257913130361245166204443167299452046313827316351363386337468057370364187719728267482701533966995930692141214501772186437144492028410592239057365405900770989609894755872912432559015331528440329857552441825079421622899473228459554826272171986912286218196994841057686205305041734902944116977576933702256528847129763733864317256928283641790482954743995595237537628915872146828262189334170698026839205708892599272535744162100344550450013517059494429860509775780455747193487897801991059531351659865007978194661290408941729627270602817989252808235234455113751245030479250944392978805729122568908408103039078332551693397372387599763985613409665289488650039967572354697475699918687301877843792149580543316153791880690278868441908945817046758448100448000193356619609042638800009323119311564725816179269822905651616864589935897602789270568559269459407889661542850410051999560412917684636706717343147092952461353827757818770064987646043549084581188481745850408038680722253853269489941423613399953104617409591834663276522935778553653232860855949866941192705246398470333306925663140030001351215884358547846854726712821902610479249572989826910311835139562881293696122395853769820735578906920788558568838045239283474848555975190249075747410763622494118453353710174418514757766270017027364082110115083870299223297950455151946821892986243130495519391687597910564960587726261300273997332248066302322170951653282669182847755812161231569987845055635278407678586445883165343632706426062013597970422550212530079822514837505238076097244749802719534517752245782367730592878378043750878959684617257651138385900966972172012397411275765730310212619619081745420221529159725237052155617164637792385414176364619524929747358373598289199598268430818567320844281351684419165658693371881877778409949524495425127405768917894380409700222578483719071699953336397191010541849586697387235254194688040237609988756400609044009750389534404713845128979287886544588888447765672595106913762812874333571659036984260955532198877545037546384231841085800927109110525667402152567167802331883571156357376199460592306877460742834082540423102977873597394780953445782251479311044371919353763697444308405856715947438644620032851408716070369512505895326541375613264675249397855698762757969368489942591566263300871480272228375816107133730225462175648286462641857618510129895350339406739486257648312945438802489894924254456269345553756164874860919911159309756257548031987080968424726610664421291995859832464699237861587289451736671765415601691407949525565037268454334342172566782417178698322503126053961027183077777582202282183279734189652854852461329798820114251320873289146896303198391572470362274613285891185712567158858006913426523303384954215581469517716300481180014378117993658445124760015406169475815716794437477164160372884005703201828159328658497443340232056765025165170038939013242694103708280498895205369613333548136656053546379850195160710264780953722721887535280790134282202647334125921412764813213783860406413788199086689039473882566080575567545317377649240242793898846814398615164216169336714388262512396213754279078980639763417804639482958874440276777427309049330523797849335198290713136118782829042636637172285672328440339807901061643434001059739706668014155920524487264909917998652975411847455533913391863067525492315488291588522609280575585898582529864475323116821400263270703616191841768466654500979289370503096534116944821051286421177541971028623962747766996153948703696709635229899218627617747004177398294360234742620354999405293494435347334742590972411678349994126082725154692506906487936087947274943030480872133362210604758597329603994576611053063536179563827474363388048960635829984643143049054294095775018808892371934780942255008203377231544903891751266632794033237048085166448004494188307824285830282960480468348895485455808734097745358514585770854836485408637755128016332490991152069360747754300301794651225374197605795065915331267196425465001252837721022268260427472800290944321047758411575636490123964013877081938352734600507456764087314889956996737148639100666438119389758226521045219602128813389691934153061079448527765613285114309466560239095710217826905933169925401986349918796906755318565053983437756406064911467323367225898213517931534411591314155622524020255823371386992135479066357491916078903428373340894541361855785367653654604175922393184818460068566277866136564389868061089896012682332126730350197846665079936532652717811380171455122745428151725325877320913785493598126306847794051681434762716802380489754195667553640354974746372665859818162766801024168808598891031888413970778858405441248755621754456679821613701469903085334926683979594325301498777976726649909994744287930923242802084173778364971615532338764378107458336923583511675738318763790530208432623441295948860180898031725847583404771669386888111723352036070167534699541457119998681444621767752058004119009676308041331728845780664543897928142855157837134337195839116450355846687580702994753568415168251610654002563002525631186387447678583375516231386113654944652805217043684774775255992415758990589413676294454686941552735282703686798588703762210343538633531540029634439958569977126369357259542279703828612073813777103297022927458917545189149106200863321696490958022248561114651443366358752815858318783233068806563106717548346223693029134507938968553014680255827988324911043218463358778036114574387568491388104227581877011877291152326424932223333148998121613934467809204834624841303045527204385649342697874324088463591037388562272621814382949450307055217862925138198665311316692371207298313931453122036772441708713618842837641295004137273965545068065507719853325264456654180449819095144091198881172193403376329300349361947606132598946565509731347496781489579945035007374055843874165171604319823208195181359479061165574347654699452010687968135374485639456117311939175344895660756935317655315269341131916931395352902021177303107403933986851663642779693051454132172457770768645231550801632977166230190440597846574628356910257404696802643263077824232730043547769243288315962202366287440504705092361760348169240890835377185196787078137711576696282806905203138008121756914891912533481749446229164183106581515164353976183246941678537415415829778165425989086758028759218267307237858927958233333316883412976801980089349763760160687156488567756941111851931059781402929890282104846434714811514631981683496958046524725381827081561110551797406382830280471584275385589104855422961955578268107216039002661569438487301128301839336109131578977861740577520649701625569152721125173745939399133011291223473809796927336040146193338276617162458642369573488339095429744204002781361397188393325217664166138008874506594916414738197194227374670097054578888211126621384575931010482353964975998293596596251029055186952148810523213372157520404635335096812486577481059932960153993801225264196246934553700740933822734560573705384458261939978432088445838056058508010219211693724449257936102873939799794400619440580121678414314937374366387774093464305307045533092056200689010483950328571931231872187593097904179004863666218434883772993651569380175176637647609632868423545414295915566597596911316413470353486616911731174043060355194980837780050548236400918243150888702119475471613722493530355540489492005206719103667767755562818545906702842535280628184343790434320295916236748170528801224829328561870844922378868905059108306622033840518137922915472046905847850045156843870345275555055614269728599349881838764130686156253906786027297826990496930457987747173119947116147818615745714507086869221412517300920747636319600138015670312842004110362454013451365270626253760408865068171884515441721728253461616068759152031969047836339813868302063195860588610166147040845107513183112455396813789673194783851061279252058770394901021330687141337843231867868909845073146675098343706573860201640137715736998137555125561376226222614788440466210039667749069300772823929388117168378242897066902637361274757357922957202060855804013067330437154377738647698255515445979115410461996277021102323495163248605661547775264058060147160740071985723204425552033016454370475648352819556772900791204927958424081460005790374843783884317126665083323009590021857029332742853012823055961470598947495840852056955261227574401781678402631080144559579110271223627288058385707311838406404036977068427604650763796941188919511798215936665684620551720464051868546009251262291896849304202578344716389069212431292677707948695268123669093581668346459882973520439445484011204873434236982336374568508202836218936738474805176123629621936980697801572192379976775522140424109031458773810008533653281991618954887965048316540351461267362612315837475585105965737567487215738003083203700775661819522652122933538534912709191132160046929977112038903219591585025196416491149420066685688623082858136509327042117418710624647128183371007184204734719466075376446504762178283744065224552495451692206941172621036608964959110270963024059981306214852845332319193509561412035528699424784919158873883421770206842207624059606219295283787832385119057748082376644867105321551862488756990258329077321755520690533461819634742766556892090661249095766321415900053386625813459665190011990762752538277012209669996498673563227375899368363833486201256179223557265637034805063820322395516856536086281329634519966564080142930354219418597379457048511639983379697081999814325005652566738605155370929476598510055810941710874474253908175350124964343858238757509037457997218982984390011829446770947041835389425188512345202405035757565746862558462503913959434111743822558441977368490869156598222038998486113382536299666538698811532054636187943528230376861724467081726322746435487035239839063489648927329303884193392097594917997892651658658610473702995446591384493470044356874802294308141372620568633698403407706988888946599172500964299794385422542200231103061962416614370671838432144738208731309781760711008957330738618297176325203270846656264816154112184307503728837022091900875318893315890634820244670449634772783017408648387715955263826697304924554571007642422871042232649230149837370524068250040118588976061006933689166293623950958339239666734793601468898192166728281646323619031196421513740115623654946545817989770276608641574016132437346913868746870770223223330665578897283812501955994783159577272019576739805937327410960573030366084299067434731916135270280544968199534858213152913961580349271692280239310713101797859163637492957270200962256538087328159731311462232815290977476574421303929684862306496827946109405152927303603539297755017688000945452216159853301200730287255313913125286194551217895845540044333868195876305259472205253827756667731480463685111385048252657602296005476011642729632104641978887249498087043492931067445695375987237825474534311323947422122950775257960321218641185165872105909985700054000182880524049488582346652678828439446761764656068483525584266385339696183269860035150556273835017572780649898617331015389139638725631310959669763420250973097817508842521799585638285660585438554474444682114762896017412136650400928575187438934767519022357857817735798105380219586861505071153555734336511401403212413195782768723250185137732083823818902884486950629043109851709956848393768684039071320095006962484668874067214400592682570264126713183175925637874458430184387058012280459796978404802438711691223699256570670086665302483603836224775002569835217170817494202272140151148841323121717718189043469704806770054900681352561865567794162595936732660233821347498311344524707029732220170717740955069934579946873859428587994295140795391294163889698399863355539473461429402211926158056412283657953623422717789917439132566597127674034682163973686127172063666323284799521105784588661554111112088945455379223226281231074644813378754191473071772568070626049457700003123329450474578070504539478638134049186760482804810229316812334125754202982894339607015224236104381320851051604213938640893172857183039005407685871821280242432853300647295949838597566855835244644754034394268559523889488420448064906433377351386510618622966283104177837421319305481897308474018514840144164627139846564661118568878736120650663810001942963873384682627443166143714304159795850599827619865290490983504574594455097541980788695868426337752203408601407871069670695329383576899020198612358142384601010408838177715816869465190915523731618430197430065426812428688426634807324926273715031603793560987419721958906381857545406555127272139348444868605596531838004008074518092484469289137668699757855995818161921824267744662650693868061328092772783126670785597604020904164219214302930383468499374805478320550410306465488696847220134667369198082168883964839484292531741774501039709888159969438641113776396591096921853205098849463614349138523645636639707327497862288446967596888233431114010214009360307266006396170365984031200256095099066561409792026325324580072519164986058117349402446421580159296294013958829681794385826259988080271054796459594823651955698546747222860502307019726286597673541388618766823233854344191076809753366802466612811634688876243971758964141964122894103606848988165622161905134206780827325053441098490814065618051596008677970563114353386102427787646908829312782914698829432192836391842953903863681603309300809464705940633669471466567181271061997995299245709362169553146227316470957527922169411546600949159792186266968851958570604443222635290943065013809843650180337695352826228509526462395045798094294421899449310766004692639755228430016760183231355293424712148504356592176656277248051444438791987052944146219297461050108590334278836370794832618341568202405387496236217155677991947899359481552465180431176167574662445459741866043257432241536583723744904835902799270081300793891214169895716551990893332119120939876590860184866440428788855392979268263861423346119824123860064698566815377221016315125804420713966142996682107525011816312737003691804761388210156750505567901366072469215814899432113151592934883577358073895121681366414418048594899577997252524740283419519583665499254571393162461221756168471934933046404249486664922732513677481859002504194932051433442917106586598502925306315062495884243901725424054533697507303033288998604317721076165774365200259475259085502596764451782110509608500662870824788093469861761724015973459317506472548124874298285910344472187521939528799185162352424315252019289325489109672439066404185280430801937701951675601394353817650541744210022142589362460715279979991019589939167155355347569047474515650099064359443637901183261663247504784450815648398757305636801621451182751998214904874090280337313017308569479040543250522921311767680527988104251360180711391983842134000548028875416113163536128502254182154037871174359605972511042933608877630570507961941255497257936809460393308891566692963533054763737920781969697970340609651151515671194308766901605035988433724979441655466371038875554340343480688025981999906826923152260669025503966733248468655252524998474652680596400159152064455047686774508941483396007963365566324186799573404039547296963468295074623593177243238670718326073636580067045087914764375036455106038041122064680112537554563787183057566935012317641934027438476878384712137699085728364236643340014844913281898006115398534062152944967144722413894866564731801477202234769875357973401072365779029449229550331076806989728016832818739773675321519873628006502755584921729748294697401316495735963068163755841860503828903412093993221018267062477225598476219908058906852433549196915629191751289949399184031421822808649677046825200630783796838815447502583371459295789497041840549769669468017920465874113898369002771807778112223878001404722958735926182659094168759723802468111271077182213844969552998600724358859317636883199044373758907568970939060878235757150669077697530056859298541014380428548430341116032753579123078092951424373647396632260854524947751163037681465342287571706556292413742715277415696954854411355446312315288198830343071426047532401912831231626960274966134675623529284609460637286564186015306848253803565372606400568210641174956802091893652977129588699994322484697634042789458882421623449349912519529403139550697828603516548475188829988832422185630266617553005048965969907906251436952977215668086091401398391157294331537921129532406508419857337147209444437165714655749353479782021714298885330989038672996375766675904283727408369127628969144132459844767292171907638560892176557855258949229020374868200872804352544274491695231302379592132891813933919703607981693717542702986698090510021457162429326210477242434960166369330021342851673376773084139784499844100360456929359860331782145985464071537866036493609143161571764641107968011609716983296297802062839177233845167004079149159096868390864831660506928132634416285887085004031907981050838108286363152511839742907605835359485050543913990581826676282506097488812667672791864471759300531614068025346614139655310923348633370091647996493864321447315327303030767502748244276168237631336429675672745025320467008551000683811583447211077871741176160012909577617406055699926016161390110981274419952641090115483492990694759520089740210051685880307540534651349364873806508854616131375229776798460814507254918611436184082874740602033707808907729952789489589587892574856949066489251164976448114833593479243196068878833901335223118136666043138735997497114378459775523198498409555180542932515423426200574531220505805365061310398032232048038233712662001434266107351143778392247924969860311910588874756611756452702864005483537600079533648879068994242882225789130332786165685627482574656212354968072608195426574230337191142565975671328050013437431183025676736870786346941407916134541979014225680231501512361990759927308876113117941156634408928045819175113862239103585806285897879096973548256863319927856723935431344524063300607989575958152029479848197827538813382282748836029531234952384805812813514882992376116356719560499460781320027854479771351320990103207139894130327242746856179975790868746770092705709856032256340264070887400079055090378647718336701393594087131267120581224606923668843900455746503101789212213305246002542046380718822084372702913816476521240404794472080109504583376215587081919910928183453511264077880717092473091374197827164767446686894189398666763170783457711112766388604431857892311200380503737033608549177895155982117723984642869338176279573735415498974720276356981713651487509456656086836036545843104220112147134101037897130296343774220311906498320512685538474350665981822623336389319136894330081391082639012672683708854235170528153868581471393689030632544755628962553312730696585034509235331966580285252565747542828518286015621599448530192942605463678099189641521870821731838837942583694987880065608246303454525788224456710687496188798749857898441272152650791942907975751924107091203949816692716758935679501139407709059231425622150350811588071695537994841166476833391892611262037428974047717431654210990070915251861673622300801289271871015613997778091837363806273399462388691574309039299759098616412889577476688527399547632640762215286010110596852128004032542573379976867883153339549013442161436147929425648567055822133051986669022495592904848792600855580096934259535286431007860512240079433702224674537579993264677057803590118367383783464249194386357725652751614909712252297122658414775914230282554723185679938677973920419541583190056462530723737253842448232784431805343559514540454993790778147532345978168477901472791506779167562045521885303736083326590883983176760820594938371040017294869788756182330736422550225030331290557474413110406834729773081164341748623485301334924781122380479703675597499768534788481794959253550400158894919074714807425434427130908567975854072002557190444994668279789878655464112457200318048113447413114267104624998898383831736587029342741162807091855418590265690909676161931750866120155466019690727030277172287678583865245814069794318437929367814327137416135378336279920419498540584208220452402036672066806074591342804190308830269481064379358533153925782714869502444960444864270697393926364961146969867736281490672703515616045180590741896405946884922237085250880475876266651441047925922101485512632083656432745197209460265300346381955391223686465848781644242152184828029477090172529079462660946943468679820477035222920508680889492310644551478149322509460041337118989098072878014276197957844217620739065671770987221859761450735392179906545050695949408890985859939280972461942681541212691667892916883754509542448730498966280706470845088261650308136260562706428723427332180494254033537891371478789581027113546983417635841471412403059655667242300180648306721484620183915467714185031248629447911654158602578796837748840153384896955686594693318514253871747960533103869589585725561632171238455209281841927104308901722893140486848508205776865487470593492344211877041275758467315193419001816769324523727871586578545821540044628915905322252998458215133510105729125652094863964519064780094960122965575664106172018947287940808635433277097601344314883730432843317483195297940775981797930266805457128284210511124741239453774184779536250424833863858326023546989653310918014619798906899342530692944352327789338723854591899611957516351326320810342391343008182442076381551008382693074689789490562488031891585921442862903684472005424728341608200603954981840480581925026479721822245694307428784317624644052590277389786695476624223795589322541554279132156957249803830907533075661853927803944698721167511101724648742163701122684105052819046537207371658364991681922236188506494390503662592959056434942340003942327506404814197918801318222948256514015099217156947360697705358506579882711199973455885204006478747904416249375103260766470192235364655963904148373849957986360053304797520756675160156670553569219327414035373177998843293558339425938432948575713023289665718881651276645211817371075693176434951752715527383439833402542034347862692554157292559079560921656301556880242159861158397675021329220173310153887530074487490761655524067197270374842435633158549333742843556373428755910379284061546714476282094415484016977361691357546111458852933035441500170700837435178357155624085435905178983763207740318464950648527896559830673668250036670868178374740948644490763756015052537724433055300115791167224634453626596016999602258875299890600700185440908166236747305723009532612440936775166908519903269787416252874020104531993067688354015125162782170549840534117517627811446613257036473809340570425515522788349977896574077162646569906431120180879409867040539347155929606334553474142570662260363581028692615563347678861667363805379875298192416256063567649278330262113934847800630058817822971417959417025100364024143485598663183201669756061715453525587396483228386736287494668550036989831272944107540046968032652200092619506177311150675631752176694629895968248119887605120332761797219686597849393258563846389221800865803665474180166537878373963452895190686045673600916918608718886725981473592052985151662740382176704132129424687728750792962622801438626309068850104799872026402876574176488892096902571580906687322592319073441847208142282090046701498570636077842261283710224340319587248112885793288178880867617410129108874566278065203225148402182076008631167748961873751517518140933819840655198119058276491416275978169037433206111608420516522662777915058884087341918843987733376776484803308264355599206148904672596062061089533645454184669726116591898516560505823865270321050834574964949711406131704346931931439519303177175054779633914563882367402167071901360338884162071808840807302030403210057073360325888588345331316461646860664208350739481308430973702382236142493845513119789620424227053665858092887032876287056810042161199199934701304254948143154495868564078697259552717800371324824106946020326750094429981937863591868291132561859401112530532248045467246959680049398339131177844171409161623900968000790187814887906752617860790313664767106637683694399851651559991322035696254894131400714526482293753952604048667635246493206588872796927406032732942480622120458107588544046313601378867052018140078647477415686032820055121233541724566314912566430768946252565204463571402413664648328006192404179401403034400925059013779019167731889424454887147512411561169925006691542493160954071201698461680501216051633079367635292013337072726965195008986718469532624549569824615742147066471270736923405318591331158319885609533915908503301957368719332070552363731637588240058926798168228202043683442084332290154717209278888362629363677455280389433464276599051052079216223230034267287806119160950945772641111794584869040870985087534954710589405620053978373422179576670234901413926695627151890112538235147276096134932729923329553978834960007679145845001784829223017805522328672143053666245298505446116069679868858306753041960378767809623826700510104603323993061320487394164458442685932684181308570618881430602207979541520644709011400353582458589536678469931592685766190936148049566561197569277284071695252137941398160068183011544995019604641366136985842922040979629271871721569324438400429438403199628213128859707869335466261823398951497114762585925708129525171857270763078729454027548070388865963541821421102228385567618689509439475235514271283372207802748252226196377708026582896785531844380156724690583828148373648584049413534602791907539728251560532856457772799462064417402898377561486182050007805626322590346017118742157674520865781619699721907442495806874102332591504786538341090786298299122245462348676246915183985673839571747255662613450205638575750835197853913734819000203487045045342296343549151242436520389438543529501162786778169913082163683168827458152473932602923586235091542810060781186882725623192367462544196410470319226393234213186429943255609691976159003041912880594706690945508760534317060264108476602405467257065694336537140758703744870820336656968034607946862403497186031422386237309588359363582718212389340643421969968862748179081899526557751944324098990089817380196940858112984412226445728630038509129466373410463990946305984364808599733352507177817399944405131942963143060109804284314150349009047895710223943513606556008585872829097670232076833902644490941066646073443409455370525007493922624274183344110797520878903241999894399897978914937220290530448941070406639460665455151588606099913730133823554078665559516963349006683962484897107893044320494616226314418211753431233068966385851392931250413427600507554333756591521865649096251287974178411485009532967078368236709397910989296683660761489775139366437790282615398985244229771271228259580893647927477881156629639980251026796925838465575675649307802713368135951484354865650949794930166061889773156005503236972048011727131017315786524504829697722944492699249209188611670247802792028115834552996331306972722292572032691520015774613128199551875509714538032996921137626743475225915202441485152666415454356159720883558345840967785813373990892253583601011167015807217664082394199483643943837146895359435797943346297169001572330568617517117088139828005000672515799230496695670249902828739660568368753218880360917313890588188568692669642571157996688726405142061693130733954776945178074670529701277987868455199631194907036928772411082111792380342856643706145033803685901958342078960956571909892109231892052425073041650029557961155490161459241061515365152636312173895304548879484624904217269055103123862309973210113920199905713088730554179701984230423484984371934697186149692346589085877684851411502474493917941839909947995282748977261482425151353272238127400565578301531504243326034854199041530291685456013550541407597779550061371767968669036707026766891619866664699003773468470383132885040493557781727658964199813561138095309981399133323760104842125278050630578774492168433763171629887776162211009694676547196326021295370440465366541975826594896897385575807380690630757590222905331417558419171565237413368091712842960291600678387070043406378975523191363275143698715257068049853379348201035382421979192618298406396641719987970853573599558989037581397543111998554366410558578089236853612452145838157794241148441303026758063825243774184315877508954826561690490929055867470952930369867240612161613963396677694314675811552778418108187903199063867654986971244251471820400051325478388188712013412967802394575329121399365276836786410214150464493654993507761105335784677381389750865592157255421584686239897299761195999864338321955316694752593546039520893354697161495839361251791916187255897391686277374369316152472057928477241332346577308183094295626792805588963580164941394498928790564856576067073479675304348204005113293173390679706441428243753083343055087593679960833040998105689311530620663534787564745070960624368774406722302952282685402185021186815035168802009414495909483393702377045540811122057040452605794343647001468789521214729694984019395655768527471950790697024982585311278360671516253047398727450117532864851594587948052952915109811016208671051267624397037202397924545452232232612376053693383444158684194928718836246038193203257316162690297885525568621459147531167474701045092282441726281841739061109146329011232889530153544681753259136628727403134937613753534314480729813084572547738017205535601345155737954356917692330324129342790905387811409651239246187146466863568721814417321851679541040058697671856996728075846416067503449577371957754792367851093155235163713849268509773749669973980532596331713847445255129077100997898583905854070410104389365516993921117351636515833062349446482227067170676699019249518818845929010856102568540421597601003622598583179581006037537658799863569604509829358702298625470542871809814021435242227020281595528686517106877909378657816313925320245785300156961543942760389350949963598443621268194774226695153263636032336316054442209824635806584547519013181963645181054844842823149992165367540433392101249732048517783817807083514108993997816477161498341362733382297663892518164472271162265779119476355892938880255128434196038274729095801278064969191119187079030694386304853001616848915024875131853705938801818126198844990787724667297560195147877006261362622793134649587017635275038980714056353584224873691278348849966501320434050231963445065874085922173558153881049472030960340892888688659127130861382545571425148925383286498366803051376380267065277745564554190698582789450555656512707273542105260300243510108086303687034119680402056769517241567259063773494443249552331439338647627297265847663625358363251464649383773789013264480101386702238643345197441726051408406758240671341923466794022598530965411321485690265841585733936342476024710201579234156941963646986079047464174231872217293106049483199390245447287629669040487910332208783299218207225046506691290200986744583801416591231870860976611648166624156727387760568517505410139800103563377263799589421760109420699617384297766248806321940152614855636347077856779903395553319836007015629933978534557147385325228305659208496730702940963328335629124784834526006927266065635706427999356924165339573762671083647949129994163551486791150026822010571289981338442461359165732073358141842879115965626191780788185056906108941732739449307852232238077931483709275995478328768477603816276055611347608673427072379780328400206549101074692998223686469664200926151216539034505944374663915888955387825987549811541422824445762118787153347447905617826109050312041534567180271765335461673302849196076173337194948181281220786771708649538167185762926610388646830283832941145520271287114944754871365433037112718348859659283349995638800634474978585142649453848303681032225362065575624767079363158561357879522968036387908552898527728000358591101769123866322898143730713950337595440581628210114986754956187451974680830222142549221701296468726642732296548418756020371877177110883861417480876637258511262918382874155806311616928101832370301527876214521561966797383933875743300826680485243787222202071955016849981986105204808423764564749969345440968648362827834382810917585667470891903469441407191441336896282618566854452438533409948278509319711421081724884239791161497967722954283943336210588577805408298318072669564373506142461185169451799623861838330981075187038734935397761135431563309342224479835403621065360243686572113598892461538035002844088812708821996327210350735770666559807916620651786740253173759167406017355299422016926375474645262504896806330960134208865914950463273469076991346390949020527291805099847793685583123649307429038300721554485936382558097795152900341253566077806032311290891954111327537841050861440439859748346975098338500830723856816006783792014136274858044845876705003355634559234729401225501599796754165363243783903524292604462107352416601839601221298271639209070787170153839371665922896755564286279111278937514289833721435417532139632366504567849531208157762897314871170554889471945957429259391812221744561324527246183686853062625690943122238874762382062684725688252616204272274997184203430798464475335415320199756100553552762079066461309674406824266002430113049761686383485007997109905751838417322055055226264164297242405261098139899111179921391361972644031165503772780744039029186813700635203172027750001037524749245308180070255214134877048494976522645661157210891919463052668726738786554561366748258271461927075737454606033369855726671515036943199238137160189765049906452580761938516106436121730891519339673213425115981900302930836698694003180740261644257079129536421331340548628523491699301514462809702017643008854178015736265569320901250105056614597032650568941041435267397569767266934597191936632984334364140812390354964813462385958316526519103095118776676979634563549808918303371351462029603137570913283970017730838428247848640889838215084777059869390095981040490610647522057069036802503622660191433045981507586664346521710303957312010409230695450350460541203324969166050942833273837290673006777545517316219598309437117549246301939457324450860379956801845377387000932219716130819236206803669378255661640255749530742660581168360406005294131727863205028814123584848537149590717014591383019656877135735693214380804481997285170235562614713100764261759011813600125860587961894251531869971007044133829841147000777802907801617946327865904842828620725720960274729982550864091828014991294474029340050575306679991187602808140815152933871279309769882053383086785663009935204006016182831297780493239270875267284173235546132879078671931565029183293220368738210201953100699531733527932804568258232525431457165816209588730339177199815060932419632372328747951769579385006403226202560928529150639360861973822586871246200131675183490058477734078363943682924776631397908921399004463602878711914171380751565790479541878883175253161701890333639567531599281462158645874788798600754257492506086127688763718446708760858450993596064681746182201887945726300701672689093150490769708052522484741474328493237529204221890368907887811137659558672827756940328941130280936379953006545547759442672555563415168418137139344460928012609576891198870293535058344433475665602782530000419714393418166095786407808270221654244532086568330051395082538890261942932372469565409779348196240234246860201143617583939246598607416957606134213755096009534460442460233330062888245279345892935285123849049331095054722488168556928900957467077439679627180641435300690487757819579021887753170003692772763401465450235557692586469588068409316669205386667487132954808630451670782542026582942075232532975987511116872981101768622131104391310223032109451863246426469140683728468583619514668708512300802064717058647608886276277686783606242581605331824287646880305026421682995231649303158096141918915512462152858909170584733903996922379295889222316120183929544569567412692072856439896928454000299491348858170664073338907265353457630826894132550525850406727940902074311477984777921266905270183325413840578942516484835231157075868350271689930571284429869775895111692180570057274400598344634034289203658161058166195593082973073312713999327138511760794860752386116915275988040690417148684476679777008848212484427836677326956268509370535137179169105988180047711206978577857759460984030554528480283944763616452023208744080308110491138448668867807035329664660765475185299466959280866924762317052255800100236905884548112793398119669109571416618663805854295976295083083655061226372216921237116937619960512631331897453017984905260412169575365386480312826121147778247611292114101057937036882688260882819149269295801501387327504388507125287269023868019903099308207652002606324658767146775988341738945591023481418067530160318101573310459725310241173018729298343853560357965726549398971144818896521788787821272034745835001969726574616773794315809023039831734290424882977062208928195661701468476085538838973903369434212358626606221638770582316968266022816368171572105343924629932346672011483359443303794785924889513417927286998347013423370451252610260022102349982069598305128894927543937618867210704346669799908400550713428621882030908735835074015825787908698661317855573450489880993848937255982657001033372064597424856517855621468762817513010013801641705020384979325385940605409183639276649997634413768529066652212299932734159403359824024451832283653639298291557627341423573574237902669724730545228648398482730217042907601133878226850166176452658857813095619872812096229359791683831350425274950519657507341041756536899332498649677926021193352059314360249228908237578800014735477553567903851168060436876465336384790133982769229012235095784201090825161841594893236289830659160994393702108518775909782768340136030098213947227226884179600186815284277926134729311642575827756215017553946186763769303825263886801140613638488107697068339812990914652968301986613570123345946586648165412621447381096473748878604346287567479585970226365221675004959196560488221041788430758351875501278511718445054229074928611403219982727090632571189019360859589110577492824855713845018190133938244886213735393528861342431242078553673187798581873399380164735010769713411053659688990806528715773605372534308569686272039156259892974313250667280272268233748432755065395898967869374234136735882474253819685253977295220885380435026696186650262366552917827931937497805195903418736277577351941468778452040249860548524830943723090243593175708064691223768840204746154833457999125664471521106257965223672012371799433884078736540951531927234844534653549420652368729404207571423477760852714318758808574959836291492285039969783562995974393439231219075269160038892262424884540251978268812635214333753777958861558754850188434351811293280033693861004472460743054791079799443033749493659754356214121711278200060386957989746039230781166813085271115140754766911837917860021626760301542594805254433875304794252285382189842862552356300929089315737678303031080721497139410908840783500330262947945798050736437675649064171477392642512489350439827368585380781124254416617969753812273197900922288318798996014165642116596947155115198832891249665992656699416712763646534580050302744829825427450900252783247459057881862961701147427400466307150885437269105017097924424218502761717775059419754915109775309202631383300852521327314426587607101185566425939768821178808261249336730395508818147747774726999325259430237681965224499530606954001638440562024902830427990833429758059828874929201295955179450750329746565033700560720950219026116065488241149962807507385197949735130980435456160048099479838833878204266726071318732794405460783098261556788640995834985620876983125418925711136705508347312147012813633847888205530287476741435393765476575324902835100090424176319723535729233256825778823068621518040837717020519901197425950992414148128687476427860694683595864460370570072880381582154248280896682360725998812812920852188392836045160767983372789259683479878101361387056646061236238589532453702063506939896914138451447878432872522318582546708439641184541589856419027769401833176493763198800361832853464865070169581117107060594694705210003323457695163828902451053248999614589634838323424715912777740685923705803213558947628685021092498271715142538445227117065828392852850330781494759361912154061532025178756240062532676165303998273223365865111643642647460651059496670733370415464223753971321070163980531206919348482923545934358960629523925629087378703128361976681742572632135942185943937248771409291624295092478052901612605829915638689135195309930877653000776771107145653268695999502543791986017225117235777884724082129592951257120118904302206511184547235302791271256555053491838033821594590318731011985580116859021068021241643096347417881211378578964043925340157932867529549002528416984034073215370503323651387868048066039968366235739814435032432877846413782053584072176504532365419659195585827714878177917776209393422665450485089258424163543997463487630181689108582738381531311726002868271517453919905683098915149988787853963016578395814995187385660940982162526284099145891156711834446872458670139725756906534412300968742070559280845136603833999524301621005252325520348459781214098025068800089609183729592595269384002514980056703794667780039798229466608504397679193243244460181414629389312813870613888749323113929838601563470118599175471469279353830216443347695760895516446437367451451213998413344777191006424214201216318162061168451355811051359649864250061225938769181537795885138469441326827031761981306255108946193292566534404426896402933104096074223216999904396826465228891572012343426612794865723439251969002286295915052219455311293013181007796087153207281699062844310325267932335846827974252926217565226977909231145229320747476239007218179945252196665737270800029597958815973191856870962824168386644830994674679898121140054070162400140971809793594955451888324502844393133665845940102123647859026488185340962589137213520832088244647810619844304856719351366303076818547233616229776234230477713004826837888701140113636902052198259711126084654306094009156911797688458347824385802983514507157662381767793542356839097752182132289993293985480195143775508480004169575975793736407362092318510632639130737578740435137638786797222710170631847015638130097202037268792359475292573432061558573596189576164378842676767750184134311047046657848154080144647049855103121855461798922413719822355255481263645753486739787983540191247671707144722234006261756164551345952918610820033777403479063691386773148004464695408706622657069633903245440273427492321849745556510126330532963704610651014405323701924538899941096494415559446740794525485192725120196946205010379614932996251225702515989367833700299322975531759883055702822038358611450670513322628479532739402106539814661147150863980583716403704292886693687108624049229478097206991577725688721947795931625149145904568551805266482539377066015734559055026174168122097279030791321255233111732086483839289112204390628502653903975604423147674704056699518234845252657781108079866613758100940648451607561359136090839841323446203645585970455251342747868428985994700459251029154798405277379371879386731080979381579240929464051973004817175924255699922829763166496397966031362988212430349723805175840927651008059633764393512984589006180045604348581296264055646527331149917566873768169244427289087705953107777062975077650603420397415102426887102009020349127173242062903148242853475046696236457225972020852975709512193059019657411586417316227986397996487766587482245478246869095848308462129881233634220798813850897349044280619106612332955620978006007999976966363687843278011645749925798347324012990581817599469118193433555624935349373337654514851988045417830600093424723835744356266643516722128728701848765273824704919809578665302551511258449125627678420783575425375104209479487065458469442312697207529659849931952424161883669736539149047904911752826205556351615517998953124780916169351523616940701142705368936337369051616498390503344606201230475839408943626987909320288123891200380479576342663810785053351296339053227939634285207748115927795442547781352442262320144191303880591693161033149493268977658297131284650879000610787843947381224424532313816134203881024937470436941814716920398918465192856132847134918528824369259820688601180045628169741030516998330314876916921605474089099833046040446141726364856105714081042779581744635997262713837103598333761760607308249987657991941412312461626993601548149691426999449975169052993691773986423733413122851900969555522265744110546777656756230746006915426036342995995403432711335370579395179357006606289396423390158276459934092814367727039588722549609403422806686879781648585752513480318419725976600964910732756929819724732516027521902936279333433452039582627901590663142778849982970740916309320254540157520546204792427714841241297340717343426998781632540130353037717688450944207050463471236262784914685460603568306524156677040942194674140085218302490510163933547435013100344160813716135957468315079558599861835758371712390578581913753962108154845423651283829615430200226910676605213820969061150696965207072910149722332302756520762448940787352157913701704990333157038738680014645457846664005077900714423539576852820038004789242810550735254616373243023426774579656064613595232106167416233199239922746745881002464155516721360724032805254193703232344242786603860920126654454524051742708100021638852916369905912722708166334079963993398144075672239477025433239268078356879301385989769075884438125694339464033921470053548638082471701986313411767274435724151616826782966937759874547932763786152360152186755733879274801330468796913743379846935064286394190137104935872291683780647814526143930407789146294636911857316929876581583837924293302674053994908454631182123619405673682565584303752625893974291398954417478364664897597518294507825535017925814352969687887998030198997980275913598910995083656434136598262507529120409999325466476168560072227060403100695552806183891345249547210081332263547069162227182404756692715443363891894407716646473918563746347378292073826995740204812974091650220957977996405230856782237045151695313117318379530357867599499953425995284503998659147548647604335967636660908474658921575306963354138228560117257660318041221076712004460038270358775103457461422603987666661096867647559665854157916843295795989413969738149109765523090296927490395687229268055037503400099750281821478224922234407035545948463032572027977642928688784189501168165618756237572278629154456356107612801585727034488161628360265609512064252619032383873127177243809672255294346020256132266671804763628912920348263789910223296917952811418250074795655253167751464482980053862196933704836387359035481468712660668706261951038248796836506023962489348821599771464821012573705146712780787214337371698120885626378600698664324375572685420546080947440097615571121755106986738592760462484726583517148356115264423553327613533751195255403919421209041732177325115661935034867609925612795317519669085825089126472249551630478422547289408812757475360034290626757952855073987767742109573541201367072573128661316258347827496714051992975906781477540250215652528626086487614732278169513378093901851966760023562310891420379822108347714341902447964437454717643177834469493051397103562990367159248308734363738780101257814776608941384796705900320430528150448275458711253030917492842466663548066412520817401979920639259318529314995740692824504672766987146661112763951529870631537354102191558334050873063253497430357143502433919344461991528900302639213399737149439759796978686395385408985569608073563799141670276123657985813396423482543012014383052539581448153292236183652275727130602599786411814112230957318967992046606576048381160310699191094541456858734149536462624926831932649011933941032764252980898855347098878863109337875359838950276158722419774038194148639239259153290034130974550027396866659790388434385845722725668474908978300398227136709440310154154368608402130638067423633624466464586281339220396717297991710604020393428948175592537913806719306116352001074324906085400057550935807461055197757628623427605658443902986446424654177902147551979897296461163160172708323799026156432481046968028803240256019801764957283349655073230002121846296423723719159889929950019388736512835772377577475609607652898971657487898653700445590847077438302765162095064314118092530877165952526178203456731755974587819335080422276393470757435003349587706309842603609064419009152727832952976184597388153121860124482858267762476538133339373793356874580927030789753118358446710189964796005869587507367081598944869903548742659227675944167800662987847901850955707211743077722713248896935051755492983624171610075926066890793605661606200115761332888141489895327947537871512238476030028349664561063724446661352017759349879041345006999541803695811557478938255806843807379404512467189698089271237909916375847048083609422328691510843292934846417227230546649139765395223930510913908275513858584323958906801392119550778078502079904436607115984397529407719571990865700242797090904663461010357614131920911134629492608543760274299386155697311504791821552328787015911730610115466118288717666178347954579340589635538248815332232571452136703357594100612716496415182787087015965511210755938395452483310954410416130147661147398535502415851645464894131430083558406803682391894091560626109006628298957713375051836418636030814783379114034285419558317488207347133367596022833170329445848284846264097841757305147178994247238788123188980160270312435249396437646064133284801060803563899306497025540555755693209129243734183211977775419007195117390332794167583365280710249151468609986448054257029345303787747098803970505172181859286402311770176337359151732904633252107558902802058620050761044056780653041461130565646216020288816792695954141492737292271199881901889781476705974851201277322274653105802237358345058726908271004848036993046023335134688626322381968368942459168922214557386788224653423092856500927452690830857068920632410245254050376473249526968569866730041848362454498299619815025215755525143269368119797503672253844358411605406845677719762560798142733869977640815643543893207679163536216341943374597086524988229202858275949886009145545746319278180051272697810615466677064696153054704332345972916072278764119466866860323331572538640667745774191429330633279567570606665926481989030334426295331881657928470999508909920832234441675271457466876035834236552272142608002881957894845237153560009410948051263080769820417085812174263097365432527570019748246817316946147179430071531863988746478034579030301555494713513353769238406341019501694202633391527628406171626801533584881688121731600576928795200388074598945955198898901391029673420934387107235984460847466473204435033356115100852259442067227614930740032277094140839772633886494024149830809765432789487623390680263380743762193705297313090628394498488691011196403381783617671802029031968457040176278872060991529251403386436980066749958352577845608306690260740662733684092534085541239112898356089278741151589317170229599727272516501438441693108588389874500427381626872422602043399801253340909932661591433282425027705974197265345718911654809385527477944121513018654452312108363844538462561581440169828021920556628777246796555461449056456323122595816804071531563218212049482727301311001781762902052257806091934575310315075181734108117976123600564164075874437917304969243558949041007447004013253197950659290519154645548762574805862999976962486439889460684868635252358982887805174854193459130390386504746094046939745276191443749151674440659670139076212140499701699790830750575528690161449185740329379582680648450817025015522356773562419599966690562000829707017236970897773048174853667501332528264606977990376724691829457583330686593542052165981135430698226339170830573522116634023377842954290564744930518779323923698978517152007298704068440267862948339774325946936967465999027761285659350116940604132652085457575045287680988595765200388406313236922488594540020584076693480904468764384111292903704010085957173392613820031613229739433122947822255388374502201226072937720624004350005898409781181630076459956249771332282969558076221587206306480669430492911287029313292890732341706891514219246493674431221087171869367050765440138217640145742479585562231209859318841080544644155110450113870269293691231138156272205300152556756858349219674489249264800231008259888962436108321316090461272505075528594663031846660107368333310215357818341926671302534342576770284201610872729291153613859946744502554939098678252571787092315903821642448510722322724141920976868143716962629373173933513760543006410390896275771372394880707658169542925194227117924285268683968974963303883108322622735569121867556554322716639351399201876920780796663649444657701158569773935116608128951200950002649363081692497849886500688448834046206565349602758759459864991158088448760401363062621439561890320642751321223418252617936168583351085637688551266333451233698078141388836352873661356575229827716858634496003066940873897894230308782244854654641160053544869276881188411825877377178614386628435974563658955660680462496999427605008595532142012890377872106475269851583934234942507334666387566482852983361132172279914145932917290297247833422202216816434210901035118379535008751847853453877684478397280838929504424179599154205006725896740668803727356600003818645891280226432536556578491857079079440465439790510694251948609020119621398714206668878404106524003642506936633233849196368148072190766142623750218364623455237670853551792804455255950066271868337743261360898045291006839692470134045895406603201402554227214118135672400491938674469789837902016331981313861886558412286289027540298902416273452288627847602638372223658062429839375445118711322825295211754489456127772663422426911916120651025545058035908853764757426705864360186814053003388226926950054376400123262581878903767497248092428932896725869961008130911102856277432194329560494308833747728854621899059782283305818886273626209697443855561428035253320187748063524215136334517704821994391691129288214004503922266942059991844463412830683888129163214241437284953387634923582884806752346202916665657978360436319986295347555113595216291323595395111311759056535538319708677586629153159644982318566449207158889732187447358763998288907160546736398302654469730864286606387232065423375325637372029192372046717548047461904269223634622481291303281084261392523849556853548502765673153212964711171369290704239528286502012983578135213752171528485055611357170901471748210698978603133886833079477087059011604541467495489820273896522479171800289799861399976982338143110008793400495678351867508406970698695726901068823327825959122376239502041987949670733936952679830400830560119884807687614963498937299558427537681286552332930874243896179794631742822538832365125014896235449737786521479948168011147257583474048978917524296612765279779379125419756622593801296040403332428123595377731550495555432665914199008278270704766466804651428743743066890689897124116845346464716099168061233583743281370816646683171283432451770645481830804733125263614379091986392996680422565037357344787609672226607933758561651697083629435931910874211619964151516283892837466846540579403054683196468656170269213109885637647764387855245051712966001412050432806209300399049896859946618028878465158384650081358900439231847718610051051334939715457062762683453050356670900449336271233634738084594251097839696172635164446675496938419655560748564168205019265956672128201838958487091750048924295195168565313732301689502350567669744580264506949513526053468811541676263463733545061496431753856882486438462728140838411461942443633160538366578623523620621713577949473361385050791435273886412861054405916765648598216130412720289710909543911211195295963045055647777508773854985677009735648590315633774388398020817739414052121490889785907953837308994966248759702728769090924629172158238682769044896138232865359441132142913071595139533615554593422362521563232760742225675460205696001227432474757397153093897235934322300398231544116548865516306339373810030063589263391938443473168608344831682094451166377088150776372650238331802540035853453937183279728578154542243576013579808342876464277727179334908779337707292761253527308506732149544055779913193311773781322269209568732505534220655992636170824732525526632558633883021830410419344275865796718922642206434635055528498428420683308864475046273244611396989523128053256739657439190456361938830651586870126123371819907585584881157278756282198453694604261267625531201168184764712600214991733063116012316717174055199088643275966414121012744275900204073192718951199287569127344316444004166935308615395026525033716132384808340678838781005273750591868260627590088016107501977132342956581550833312414391607338572953622137018294345411732440878318495427421035967100899899872641560684836572046330107782485559374172412774990268857591387983317158958136740588205974209580442585023655001613863137983633021729910584791675503616279693347350686411851127766457936734783445387775293300946008942457303524198039544240894663346545856201995518690562350517052203137695582661632635895445141970651055490338963293144899450863733000949706391852001229795453867045879474030179727982889515343538400125389182149626484029955899543038403964081206221269390815321178064877295771670576739701559921169365710724866231464169382712585711720241406852200564137498745879189210134840810689315457136161739213910883537378842999337708385132638646612391931107490013346252650221774231135314285990965709132305793167880190776920102089464762549332329950311586509105618080129929447279244676128721379059448695380983614597110053929840345293859269299024204849584320358278475964563407803383592217255020457436414183418827039239256422223007559964067226650609808417226747982577668355148722703448051280274729089804575394607971240802565127627286567816907161053232733269851521805419195948672793808243284016028839256673952555668715170010850251374374199397901975987740141188551561492350401181817876773135070130461449857771015513609359631479393749015363520448901408722776957546503829938888216504452386960949409253416456528713059839734603917638857110740710068036650497062459783796476382078435935104852912366056677571119003402714996164704330108733807536202031660684855090726863454070507166172953236252633957423737434010799380361559094836265404992082554440553294771974520081415609055449233936825271940594175473744737578581887685561307495737731563423737535123824307473629860162742384197611906553704388421775103412313524094931371735275130887468967231657968491795143830151199349190341369567903168792311524927968390382702729070357338447062393275716568059474826979311366453060225314181000067377879731696219611578112333513567453860647850011541601621927528691643178005953265457243653041689064308305680070920161415677434023593431048696831104870349294168237418785127212079261582401432234455432454173695263645420456011656629293195596449674951346720530624766944331549851330235356838272235970940911609991850483344363910671431785872151600503356659270403151598982107327148010022354067544592151459692561902879892369484108293674645617258007896434423986118150537087576021754014960611864909949019869679695011042487432868771994466794728037752718154848780521643842365308935410197069270152074862060126234676958596364298350852637047994203950487228155200852111553309880254312981922717655994336312484580653649900822253124669548137029628000223526442904955922739637314476431610276184866738013384664744731180855966180346887394559752124324026484150278297119975148722519943265115061005999096425323499913073515845397086423239770563562613493762762592038089957150967512054667916985465323280333396542849890145424872541534488216647803625346055093339147426725768055873541948524089326785456988201257772434440323500136346914984226907045144589309885790654600498994192129977820748613454892201717358867560784281657785253462020759424562133560526561162843202878837820941703873634967564912962047717465071706411901534296324402904920227365777354574015916768646365809821555836606455782673404210171668517214299562057591832086316835101338436935767159697786394045635328315834359765464553840031548398223455613185482963279098804919577917465048800901702770347601110759135183603338167853243673928630345225495223041554368945204403673940127672291046001672307657905200571168380987536767405650477237815173640226841302038470893528337799711478459823965154952195832573737963879959908076165646513513242511827650984079632806976433813048415310408081404792651679010693624729851221963859565222732390096375682172463317856498556394055726293307432924854438419653042030598377150991370354662572659149959584536595450948887114844690581047380807773747682045364821410104473018558519571827453803606494292826476554147988932388224188200781550905317535740713574991724950274758791930928650501905015982836209049366752933052295946775522938077692302095176662463610099244636550175834124296441081025416277972208145916679035138413647848324976513730144414068691116984158180745349356754963377469113900399021863335690145651628055096204827189736294428228562195363295713213253265078790897789578186953215519706550441024370061566243039124684776584942046023975497660629222405495728709319433333906312006557167631292735866912704907660448358429275988704374971578888244085126600383406188398779882457450370210401637363206698745284846093205573311811511854388100740756046241080894830789544457620843991085023349826141455718319495261879967694366795535853469402668097316751600484290052501904843366689907938135016559447899553894053607998250703704837392114599403755255344004734028806402474134077008972840720073283899639038176757308585773659094076189111685173149551428844739107001427134269868703607004094558783791171758421544774928004367702367627702680817843847507296820324146733830656428356322664763398994986797917950955563640002984405172419925445751212977327398364594076074257264835868756940040706469154362093307526203144233327357839010614673488545152144711436183477820052074972790175749575081578672975180471626389906635097126409810133548823266765782321117361841022243889627098003199622029775554644972100104669696696163548923725511419455795613194462984707091240278308076127680889742794083996380094839673355520235036275904725653677542509358263367241084201712808557072495832582169160828085859264516513809721506536338273881754592761872257412130410957483177675306849914613609819871388710544727585229350761403372854007618067009853426028942035225223062802042277911843721635569680790388276641573163573241807920696406581502662411257074016648439381164604027359882677833503215980635161314202929882110324523786065863165186984955057465790684013820884891547723450210146562384723646835980059896304875966977129654357382750567905475734076988944858972233547152736303554985794840795777918614114126498219413892033699761438729863825373490147830091398821100453295470632132521473769077861072860188025371206969661018236222285108743075521845574945891091549354285798697678559339751733591859496188743492528644428527552023102065867415045835578042237396290210042566188555490349747999612634033586943479303650455981436606928131927154170115121512082327834502791090817753397523817811614162367806998206373489326857685548932310325439393555577944930631676307088816728371634711899756180081590873801998036874064356142674089391039439874516824132754305083486680137296528072796706315392786861216100674712856910289453432521589760920920247640333898751567798104905885835116366220209001847650672896142898207210546694750243384555732669701365989186661062138072824317117303837122918521323583183358117417471245062747731507648954880769500612700813097601409780306549738191001262187845100568198119914981803268760176264581902209032968815404548033842668435147744489791887545526917872047701232945333769197736613301947050962944840615682248073327924311324233306585848222182804337147042226117526320636313685459989588319094523227534580573120056954436796832259570872472491524301548730452968490332341286181584365268106267283575140857341399151542372284751144445210486354637218096565225362679661750729513955256502424749661369415201984758318560392268851438883454600986304826332728660098285345190800807864888423801562448478985259596386657422355759584412648220872413190052097416887503967526796958692816111807035900885251571252054327056809768427233292889901842037687052501067183580285108011497165142538915749855463800919021148774310437951459181351814772858264244631583496966124715515525542331303293484859079981656951875751652497537519288694700171259727261315632360263740068790627578922168652008377587840835691920790674807960357189056669993876117884936449605897770792908304112187118893216114906125756731737334368198372666073856788378426335556677511493173231422254519785806463715225172249938289631356557855710329139113031667011505337170557573273156432629556151243601453019450648268955207900433861565486599691650996222679625878358045599844338407674541057576625546270211669937047144588436389110390747085737332134559606304715362369046509417636573286400809181015571181707175563006025994748565571873285479157815289600011637049422316439575062191142491265721530597230852768076128044031819497077069982111920594753120594201479330303254492484479053172808517906304196637127531582726299583083808082763324946755467274600718869002052502018770696834125804074420420848777541182215827698783931413184526041129960412819024942036537563129038804184513114724678878795658598423933126562136680616192340959966018533846040059406386179833738008991744376579260234069789501199737000209576051856778437424929891658205403816801099755370566917052565171676115404736703818536037704473123080212091379253309366194834172788302009580615840110357964121373205789086934644274888109423670995682622058221718149690878014771153178260822697312020328393035528873456792602215350477973027757942990298417679976444027769362912811369365852103308955318568121286635681110202521415323647693566362397366616815592771479235597154085009157067288232667563659321503527990925914714474232851762266785586604495858991348416200256843634859863620978423378807895364765321002091954186844550974040759906769009744923779489955343659429559958809288006527534462903020697032376479717503336474178742434174921795715798832422735559735847094716306858629948999951662667270865407851301064280483216169320606660617981905951394445323628789039821717767918837610038867064062103841011136832525477258046346723462459505600523196869025553866101765110235579904739935306531231127604436360425994355494923853702946069665222777469488387187888028402822107480188339974618800306671118726012275520517006034771553264145878213494434599554827498798144236024301228469159602972380796590935294918875371422085832185383373987742242734142345183364962292914407181737546728179980165736599681556087124971239172315700447666288376845711052230304861618699651165901588462160572044694158988518156148646338589705946466472663522810990368465854784201880446683989250349042535985068323111152581579749428863866480504003173479589393825786373775309376274546727684177914084366958474621163009294487632355536474521784760324456445233845005306216512163026163202361586403667712292278333497426859935130214168685130733822456215209821702292860965794244985081414969966084358233274718553157411767504203322578920410163656829725489599992128727309302482980289693613545591142190655139566224530474974653897409180831616642474658682855218959834240445232853616072776780260941854633221756782005375751480783176261928882026627472957663436158124416015308029280214970952254156359574433694065752136632992867106252592195477656336804052220971094406594054835939271147333350627856743674479177016614197617079771212596870578162532439173883628074325958022539589503477658396435950086833559220038489356362538393258621662876065269220758383073092404005108589756791699724686142016663504878235522593431859748275651946977544175395167101062532172044021710644540027324618262573014905913509134688229861557220559537113756501380595628567850458071861840119630673695222971576792731232920595573666853367683040004796560613110632088413286333912300277681954522923741727258943010374224244897699468996804790281351370507622008038767855240717762904364292321433123167677495018200839368313649045786667823587743460520013814481038602941486763526736573793379095823671259707547094858381355101682913873658619641952249445831599229113324604458550330402418742764820293827034679028317464409366754496357076011212142893740674546784205338962380879379759805686666920157030184239767869965069276489275523259749063403519996115933743928256107125083413857438686275841125686053446330248515136129189496457042902852278226029227649239879610276138055738255451294358787968281217470959171204914749694139377837863231019644350410669825342941335193595865060089512804596908049890159904331658446052782992703603852356932430576194052999663672294033874621726373208939375721764094443277600784477820174027805286494850274400803679069966299574618856291858799972673985112804645958071737252844165417240243065402703567609880138351964758001861226850738413623365857390549895533876565277587213976771324984202728982447722305100140552059924026955693716634583909011006121738410964850197985810111752458895453000336998927881958129447032504595091614312611796540035013684068854565760907114376054474043158961984606298550989795261089640892491967255445040237574940126888242256438697654622287609978869175627265294067709902380359307095876103854350306307460632253876459749153410806234389044131671324885157188528408121943233639240508032043833248745558329987056456999937058812889763251304754043739814148318102051986172737043398444407868660518286536205790420676428855414777852048143387904827379104548132557732719779558737142505723770156603578723728350808025171918831006912457996274253030572544335522278976430474983036580643294382896632474772003154083811033431445382872753444966174595124245107221446380170917839689310982253032268851609744519763952576311961993439157139936416842373151340055534391100164609545958395238605600620622136347245544718925433809397653904138379470298864412860025785748943388868889037186919547277556817834458101671841647441431268393951427797216409485954597529576119747640628018417263620373165580758587465574419414155485611256092250823222714989489206619615124596816826511946106008384118443684977189754078020189028610219598365536870581497064763110160217654342880068106451358535903764194589610810799386954498340867863794583204388969774935851539200567599602624773279254889954125992109882499476467747258596498174312251783928225208358154544578213087232311477861647508611950883141345515574216654905979949024431533149925819660066456151653786040680555647670913277769439884776899019958696632660492129203820640976576584544261682741538938367315885833673354280640297067672084867971573433447488939366644534724614755162687104167581586889677294812756764520904031082095741393530886528714471593676238363489920321197367198903155775268289748599684676073089292662027804038976266200859032961218967761806499615451622831102927185801369614847688672258010383359498352651404549690183360902863482792272840018937162699939271272165890020933118514417133426787684130462697111578167107668638410620727546429421005206684272748392547657334642171017473391376618078050001189576585206576739253562353997850202690565138437341444372498233451072835909006782063518436771680247863972386245719651348494881329896439588112438443534829981651848064841847121751503940037696690525923322229068670021455311835330578805459138922793897033239334004556216542535741363791424760603359927191585350802973819561283967014928138412327083352024694603421579789391313832365038850707966243898024639043650032663087151887730391773656929920786198078432037484312169135149313796974376659306274317233887063070545439646965385853114491040768056420137531263784187526918719414440668721939279240253472457126815117380658096679722078915289775780694114802426282372012927722000071639653989178672602115374070648772212450108578141581319583563409775063015040400481254688505895707603565227973178581592228477688377385595419159037231441705517404753907937869238436719472262826116852405395082029131485034936122466014636343544470135750620186594687643426738467652336928500288108923902938985132403622582583566737788345757153914484308716534277446627231841371271382974136791592729295984213529494139830390112366219936315217889796375501100689906217009462676104527596233477642922063922055271000440915561808030287526569593556075403115023731235162297547336094453115869940669802161969399889386247307735066290343551778361165690613149776098819186150165957683973788708055470675722871383985092660384948898934722046529775906240889953078807636215207097491672110917770011352109826395164073953843019768278848248724235911228176031624897982083919843128491164779915143071206454395791554361353080244392160571855105008397178752584251812670682317420981244999117606598311014283063462784756349196415207027142778743413521905741562308386057107912473083217395340895225129454976328121883914890917880293883678283602311614922999555697137824527617247469370699112888955764895253189237358688678828164966231763087190279137364975236038723303215431653437190138601603964641124619988388765541941675206461992862662411133000944459121966643189056081998102886131709311417869743643641694045428994551781402137285185412346270448208562572384755380294129241623375985484443392278153496750073864677840733648109137947264568301139580378779011316619460147480326527337185868614847177356415149334839108699024428172427369188859653764066045357557171491751019659274817135342614055328522306672971010432140932828221298831910510993318107790654692359466749217963674291425857112353729861445246332876090390792507491232939456987645672683809052700718346724506440954275810673475885013426351004310905944862955404442184140673004493383927788350540030287273293943703757475134291316045060910299320218261653414474092094756962044925097831522871847594086377145579658893800532766681436605984689276919941630198574020087026618378261582889944828618174702256623134585204692213337972086205332686191525269138062378772719699623112147570887980057623812041775093383332666362615139973123670618228717205755086447722050336199058386552835704088194186615644748307125819855832036306993798004179458595505515818756225009617680324422425930034224794468468258615578402079700121260422313337733160068692320425879272078702208559524464971324835039466624861371442257673241566781750486473106635030043571792994199348598768493685748143505984840666932128967798870537664087881434170864998486601718330492852222603838516565718700677461707489076981978055004276035568597041030239451142388142312122074482719732823391068733619663571679740853731146557829880517541419646747326271576811751329659906135075295909023282988866112820044608706042629249928023381932326237376548373824513226789146874851498836939542495481599277652160361472082568371908086826420184979561979108664655189550395544257631460199091728136303533675508958776460089672645306155198014074814581298538806546771531251883104062201116736741726767792408951749341088680542391483065234810531102920317460094904787783538286513327314355136900110381949351918872817619992496229607145102217808354699948890056941191238171128583721514850502840965561682462886254032584322167772409534904586676854361356812335223864432720561922017395170670872517491204975218842375519420182127850857074760194662540367338692624748276279603037375446223984281567001246791890235729163747905726244910365280789914110137802508937143999371098400162207542386279340039038929488666842413171570262659033044264617474107797181075337923123002756378030831435079442374145914632271921400994989608756290260784609234821748899940843755806504564122187288034294113676029345776152882703661384605322244148689255612147055562457582093079988821358738628902321864182844128788715266307300232105698091457601620951273007671162186616738988144822448805760859557880478034309493982782096266820496129491202633129523079664059187225900814922400903228459110270863200559050894331395694014078051827116499643554394106786296388360242774499288778987692595825234989793547466795155659832519624516477045564995708372141168261415908154797688857815304149842706860776393728544542532831722903368347325346182515582595286043575598740395794645503304877066142963041706440477124671869478322244671412803729655130832628689257426424430087238688986225149298615500158985672279534115304862630994922687819642808263417348935590599233056640273940753537842478810283945603213306273838302644564859081187958203344165416736150778334100787280258962318903914325588570158362431748271221010689284261190909670460216220770433411215564296876663775187873164912592504782484271746081726086518756377922041220306793412928400684005281689300467301660005284103311489276323226116277053428915724936398606277202353637376621303250391982452442386488627004872008061123468165045765275856076813291790835376470311186238728126957016496549503791355000975846790296899864514287653791505644333411533879854329859734570213080807999603045672329232964934406484679092217303930298311489296014028101174649478819832329635146327771012256747459931095096282554770808999284327961135848226662266304557140758984436288859198908699632572000363420799151036151720500372270493147212453980224398125325444480829758976306893375393470919757277646408156112239752372437850100581041387339698492856190496798609414627969732437376887393841168184650515900749142945044520597704164657662424594691976611703543348447209028868856716680488186111121184385679953773890216938894287736127391484569326967559770725002137420076529916478161659951144131182751883168332151661432033754809017121939700079342611997134052108389162135903633025765040594002150602474770151148319201976409213835944739472824701641451051246329437532692811734278051828308956556644319603836217451668948987098850822136792450878396597365749149110074109371589232966633083679678782651913234487931858260219303524255761483878155009743861220213545414375586031122000057020774989876612058745297637109360702965451425462270520180782447604271798345307863728915528715005373647549538771636450814540899387127481979166049819890801797087857477641691914604822528963599362412953756907268837981274642367439148480136738502418101724142372985676719472727996130337929346008866604541952123689994382602381234172636084904335730830895622846237667575445214148253321754862089625527110729747195471375824628417681776607928602977407917127285745337092007689470443232682042997657748308351998366443612615965209000843738393625911689451691112966400096524742453717028969840804039491335351675848893970093352860274474582741711130984013713425250990661259262216454579032890318659185563744378067748187519065551393092856264923626370570522056590820511533144716969422950073192276690605561758139368419578942043926863056084634221800410512830836653249567538779067363587729902962826039687414461031322736602033546069050963466814233248608616799906007011384513446773975337776529506076755625445972741862598656617122809454032167152681011156121317057000476883755319867931145125976570325907970737006043833599855197374719646654473638128902357566479138804035359276536514892573598743390578292365661588165290810569274969829154658821684924935864443434451521360359372195766960821609014120164038502842731893075124230817093368492149952126180211070388888127832210096234150178905004966819569693611553123540229311466622614664246741831835075068782789624419900316103220388835239109700249390699105502035511303487645676310591991782921953733017539307383338136188415269874230663991100661974711081498807966195996644654276594617673038552206380638162667989564513989694096857880964130882135689392971490684088970906907928121081740833462858079166486324432460291629725961880100989554921760555979670289835272348718119951918975261254289171336714259985950922818686574609085273251071237849069393579494338279971851217400676091403326207429349717178831593702095033394853767755050803652072036426860253905511545529811277646049328415558897067309596670839981106203783251579828319366740103494893031283264524198733398376902993795522964350908364451682185151998883261978613018687750024136695805150650978590180590111818194700836957542077960632327249875400610608135607600880921834360784933949113615182256298696750612572362267941560007239524315833114270364508576294738339133300887786106773259099853325409148708047602613838028454490936374476711519843959750647438193832938850724307275149624540750199318886621043391970482307114341132073668664374825468816982400766657043623292231737463038516222010333532606513180005450203871366977040855575501727881493785725670572515426680612510797321614917150618105885989208325916528170423322168546970980400084059077974801248845998941251766517406658681235811639968933923502121439429258631157266831743171448748461918138120008144528273098136736410139374833040954301895147718584583686726279148435466768218085873115961585497380299628296626126375170463878286239313920778350082421661643294482232054511529278138030346086355935405391478296920734652722661896261805153230220519182452172209418245052819659206309458397304498392584094389865696518998367898249225229928908489821889687750516377815012401408609085854130076063614542521016373620983098584319242208040466034177075936036471677895434860418204285169290882268440646364210409132712505566724149815027678030402875369966251537952568868748500354460001109318397125919568150813941846047309696099176643626759941958390780684780002359990333509930080864111666398298366847521327749523075302591923844312151337685795830763805209783831412986122417222856820979203284146388288636929763038052634952194183863742973736585111006586770149033159506609794359776020943273763163469354199682667159364278128077788860317376728392759056337892256220262399440235337699652103868910982070160562969970137649020749455206489095648201726308099946516180576521717664877236546706709049315429242406714819700931192185120739617113487113730175013749712690482176475952860937955479067391839375048536111234655963776241874785466041552530913687073843396199529248476007733872968659874028223088188485584294296359092998843446628385195331490502311252178621748933537838489184374657695630993637906923108360728728504583947983707946193151129028827494008588309685958789037811257779971528173356669771917306392306424052409486294698990263280626602150473182965422904224006910364507007733111310676090944032003569877861809658932244339077515275002937222732649946797484304479506419560913911211411985009002526123267709494781390355754580071115407334051792316723962507790661662731299805332388155335851800693994760623011400084130277805180006912638481245980312689677304006475692200034873355838825604913151917519122260752986649584478937975972833201719913609372191551282593149776624210768789293772933264987892156799406541912351517471667048986250775893432515083344262831404003923374010082051065959795311946495901892374881229758917562074782572696557736417398855697528594864400086705353537160868811636013162400149829899995281560464482660084236556376865631679569796891968681730028539734654547322671722478762100171115145470903424217085098040277554266722614501464057143538002081949976841958097136629951529660424200992361996880743725990673452869689147679015388958601551503561600366968719201925992226101360391365100776445988854655320004033717994721728453995794932531718581537105750708926636756209018546973506040689686030127718141468003584861136405116345989265417207266036230886802663271418716737566042142688272225078494338805765210549023637022110910464279543094855508288948275458657887844350264398515699493755131114146587316236495127488974020527694391372707634311489903811423888546376334951626117213531714360892185885047137135943290952093978328703444032666633013589327131814186953868194994953451384491282116215271878415202464369640328326361129702717464688893275161216070690234781651906140141117637317269846725976832932549432340669719897910957095233402930845279229604797039254925920302661653584901389094025051906079064363187811451133828091668120639787991090302477371364465967936566614705292276208726985235426352067039311061977900402593141686523646033466233161158305421724567083391317214902635288766553681568162735261827353452359741981902962957634662820894506110908802792125098885132609362774808216223321839331539874982739873303239972619202778127115104036742576420539957829136086015253244623095872885547166739602274421832056661463959136134360161747369772574430453306367959536201153270303301774625731514230732057962715122889059555435355921899212274317555046154803026447325563836242603596402634157020218687454258620051821708679613952856547644589266555137728092192525612805225238970626969044509469733363126879656766666135365488793648692740429781462541067345071648598710811461040596424452522724123153416864147843311889004455510954187485374520293238270898804483485347474338707077882464272293205031194357413466803807784680599071473080860647362948822280400461829893852260471215157004749602001301266884838314300368026967302062993491464620702890030755148656948272166362872678739782315438389407484799718504795362336554046516437908718637932185954115001821464716764965661292385919158429191164051839192803522113682717077438738336078048832306328290920557110715469307683797615644841106985333708934649899104049761623710386758711274656838257132632375085631480264995205240261590852426595054612812270363280877476197273458730075564975895348040826742365267909519578115160641793715402459321729069147171350788849000371848360012257711907509209788257936195168111006420251381043952350792303929334160636091334485112255207550117941524586699041799696337931134418963715947742300207640399822810348622824916550111440550280823416099328994867419325902629402824758084467033052959323324451405629498878990931514545866315666163397692476705257603576819757939211542005397305496258062319732413276284008397919269616818664485300254598963163767993750481844051670664919409740550238398917279283273364377246747672627432653129593531547313388821879207800175108461002943202132785809371642150107540819665300835452857259531051868653516474801478878213990712237132349983087244256109974088441524313230104582876246064622539950638616400219574852315845327405728192163692756883063874858550124733943409258199035085084824499174563158238745346967728196845176607637024748842020338068932247688582077531977381577601183683186702394565032879748157421294875271495524509877524901289513933826986703465128563342471207371008004841965150664116641357696416257825214669608956565819921826928696428182320543938192638616276400818226526565110022591549085501088130023721213360453863309830453960867877194550208619400524111346738946800653026176495195515330866154075565419794847271020749465634157795346781678011441891590521901808957450416993590249242861110736496201886467738795278399085090682862764395947587563070586721037411381983454198136331674165658833136546194738402993118575835800464887160251288959621301586988008011647330673809455525953613227179383572373214333214915676527162976541228910134396545119347871945513889888971001355091910428541721266245879646368448851349376236578743273623016549880624445613160945671375451742749009479658405237117136613804361020336942760258462603675367401370070248404779467388409212534995974235287617157596494545254166221235536702523593726272306723557891456839611895297913069410082753938518437710628220634509149788477564603189910473556818344121444205814442352789442378563039221111605532192244803838017571382118747716222951899811045310522644816469968039576224217461535846343297534050940201338518403993085459475154334214101513202313656031169370788936562708332887706274309169013395909988051456589974302782381101069398169321647928670335698718170081374456642197727508739960346584419126960446126888227234781168174755744981339154972764928372961709254493079864762670001144798590871709972920333787361615436927970760297907963289203698385832556086913049579965907778074927395685711005145718612669828525030846860349891189965691819260815995587190794968219147639601026031626927106038920590107546300099489214538206704573902257694173870276863037055023689561005292688699553636685882686472357555677323143212180899934735033999528615776623355494404771233824074323907600331966892237334235790084080239637443569943771977709317703308098251530190675659092385386354706812468718739356696467481126503066981826005883421713493243928947214884272217016377358133370837439423064288726113725452221320264641210232319074252309877798724680660362087931852726514915419519234489822522767218053484483416339467086540311393763830841986314107897779727963453241283612482542429000960503722681389581331071495860634717860000367281146869908465824761225097188556412507765179720828895551460779117674381824345018594720441360635737798663208075519491503133712233667273757335649734273334206409668267733636992416000784766774262110325611733278926936733691044931270567522957184002201509585239369816695053342515654018745880615515957684116172206614941832429397482136783617792418089486250673715973275037865921290895794382193047415682755461454127819441676498095922130296952330188231679161616008447920854585854195207707671840270822315676806537787195564531943853511974921318098585524520845633826186437617362107732126337392010943006397239129205115624696435687448585416476539481335193572516285949885844556971752816552106762013403847041318465676393253206471180375000884585634915870845361785248754195201396258510241809553039576092034711855894966690238899502041109779936689634042224397213962143118635521836473782109310297184770703225004179609867670141178741790722685789823300503443662740591299769784207984766467640137505196435581480888972874802247717775258463175280033293328784427876928412268823354709635299370896975099247799982857627835042277665934002506192907121898913526542734723596758096578347044569382626460300067313040846824017877385049009723445825236681379325747706505260421879536309518417763206612018635038539349510774802296259047026902943841966014179534609015095714620264614287797336914392091468521439705798139757326613423369938478167646974372754333994589779620293389347773376865082243773703884741851504818896063004880599120760130927619739575510450975759902455783530685753054033104308068570212661515558161149833857764595699138587389630856598243516059782682977851854758591361346629333798201237154827631561561575607395114794180237462102408425271755175708937153695456840466040639344026716547203611211305536726713455563640375523690982863420652343376681366799254844958638885777573474920355981099742316989386205746348232354381874105195440355037799348273325961513042959750412419926357307318332549873127278516405328109566870149580234554169102621958760295722453341980408617332505768990339242969993759312108721916573006420801836435536426657658492046825186609884555263085052642249324742431795377371958309992752012248975085777751216192932447242423584885646353445952037411233190319262432849398227816227697927367731439392308660972068656593477316073321935437819435423131016090708145249404202550855517066749908793407197342084818890817869798143263107651148667719942171358916349908556756185874252553095490710024133935334931386587223941271055700364338403920566191572892632690981629079411863835862015674868666962696988383735362376626583245180614726486707410631269249033597445785879130060062401345332745015024508606466233938984124306791400391481709159456659879166528354780777409735751361228414959508698281714494934754893272980925386014559434343869359267507095129149940353205376667420614434322715330320698861706514214007366498472253788425379711182910069528516805776903061974521922564903046288574102771613222649850188212504175106429210748873219885420499514109076874938526088595465018624768344537841663114683530767607967911584418929143001711588673740031251488513120186997705759749987281145346395062049017213441625999651691572754871387367252439127391155831608547024232984793028754871785458349963740519618682829400288493908115120198497449266967234502636373853021155681493703201412781206032480572707082043898759416344877862114471533430471621147546272221631465913616746917284530248971250460683578672927875480127994333388998953485359482449792586226697763301924664074340760249495862747388351606249962031616910635109270430372062896119782148207435468849506529220895590715404101260059262398109915282721881211826280969096780432119217929394160852933725306772305963340421241810263818733250745032214387152595222007724846557166907416046150847367707213937092649551250002515638987259477231704707151164792111075610051784052757801145258160364574137180361312298952402035258640239047454164528825766316698098223024596861352639677526667760339218378036326457768059142303424061685188117421387802722731488635727070586980513211516883208055620315604008922418986583064282445469861021423541283905565392521372774575763597361675902957396142557913677518903495951868301660628426230407111545464192112637596927143409422772425835280678778105228856229240126274993428732657728185436359237352101632842353096643050552178362802750975091918716854309264033930866157675207573522288345685563451692452367918142351167883803415723134533192134912168659253053444505752767852558187077045607239194157585611782637553007651401261618774635311112833758341935658219524530385632488738416486249918187389710686079396191869791997436078358721522008213464898750040207089403882206867268292172096025365053925006648130015353776301044096248854290583431749072629526468896427524159455689967650372883356349950048562512188529691505857965623914455412561614904442025226180197976239404046788186432209814947465826777752729250975489865471734062206384992072323524961605010727236325088967721780148136270512534239105349709497048867085367405083852943089449039150712380355842414208545701616465369090501705400338507233360329000282735337680053421670739990945201282485863930978485612051450902643790560574004287966206889730760717572946549446221604911591676747951874309111930193706549629616813740181460967767598504701332631768243707687146736335175672076443531324638822245549208379626357286039227034751504026033765643642268015454336123932275628739526341331183751223981982962405985559947467984552053550423657298194270863340068973597052806184825700173156535740873320898588731246145576306405001162578647192781711558187522754308657770723591117070117666514288011084919577809791408318837486419905216789673718467584379632975239696206397219637373692748779218848395767464762099210862461012615902193316601933401977037111660544985567706834523826727534571356739935326588628096625765115146583248695973742455197257465512864367081246903394525870246607400839084746887815615920474957965434988442373461595479855380352968622663692438302898983843278648364856034481576329553085143499647752218264784320844729281671334140787743293200563315133391362079451142377516811844697716043440310651000298558303324427432584243482277410844607302129073487636327165227345291508809292470353222933117925348776932021449544132164889418821446164230043377524402063110137229933338310720912246172956209661464942268682755739269450696981181065538490996938582609029867737415001762915721904940911726358750533677871845684157576003730484412491361047698791620310077463898985665811857517699893127845527657752531219210338672032091561932916422222353295822948467828777530261140301355985470671149506011270377939003887911129462007103022932954285013619919491632773104794847163833997947456692756447867064883162006960144479061202214999801165261273727160564090470047419196305767838129801272432255640360182243749358612848686981480566570934370671154055098845815804524817246584154473550266204856906667736701503157419583976499329931229650745897298263829632450994474906460240365522286284627181438559300143994079534110791004391578362047599488294843329142926502070404627097601280660125031024011845693355035196410734658119943472914371129351692950847670971491822701524160797244919569341829713453319918607470641880392335563552463937755065734002506824310471975435859595824203961690251476346486464313375228003432590566474869723775143310306067696707392952200498326042979501352530661198222075445770757150518922895474410620974006682601457103020677092692055210306650045642846339229260182065688325416974404071890357399833816565287911269563398191020650756103728231229202310299221908632986997245437842083071036124175776763451710456266354808077048027332430773671561254280576885702596340761395805274628546373308161167400552543511047195707151026912725933782568929997820948326415282787799183653814536273865232482644237310281553300270132715722306200743799609631368762564303472990404206658292420099903665687180116171391806109196063260006432312599761619784885396182992878293507898547608843380064271037890645791142663407349588943108194631025385658334848989379877521343073351357904858386813205247141007312249300168912761433769074446330296956457353338542716068382156893764836006434203996561363844031219851653718268862578842051460566647622850875909476531765553814061575498432227985641989631935556226369169988439901287449116427839847595639102564840752500238950739829848981222287909939268658056726502181934549046175604949507253025732319537126503478201260766521657589345049835333164409262737512211629568644515270778294706438232826706913777263458856662317073017947975611524982505994342119574568389210981597581552088698414873026535292441420123790870313822367392585001774049161131680232324409866170854877854465963353129123040791428144680918309262827105016928524974228464002573664929281915329687275426193648426298530197716468953772315500862974967527503674473090521818916269730388436004187815529726666282138992728614533681071426111909520082829104805371776482798696639148256381623572990698220706209180408222772119396441108355536581364210748369081699524175474415537241101831457405208419502442556235740698703856304627918602652322565672820716923014275482102964707920523747575243825793384722493920852490777765360082893439330228639271539488895135750672736886692334520501230624603046120034750859813731837008480562078297671049166983212713067551635017655967662659400096630993317236344499320880856036114857013604333267393558299480514889665238931673121980770685690094871653194661489268842448658895025025936333565464136602759122074634184323829374150577385170053440074195952993561062889098535621138009717475916281556005835279651247910836312182548687424341940052883862183613224317323044865650008697499957743848811336600118679796712337286235720417253530215835173902750601260032286511467928262640354788453089749474936889927980811134033877671697612707135586604977408538109232946473893685834945970931390257518317355884500770910791490341585519061643316657960028287948692625131113823815360664093122142907566433974987876606886444280702244963700628780411229507630249079272149207812216864990701154422847065730925642094500208159597942336286726962577001275977800152773853775502451922582605819265958363229129027286589169630422690594674773891274233806195046276954490605953885480010167448837110566511932560902959334455430552441067865667487592390435452244113761125322894154871184287968704168066782995594030896037055397303898428433879300333469400482519844495882431434476115782700779307600859361029409263118425414979812684551523053597996248837381343273038719623182534638637532661993334006492689004737620444502755591750669616694994468546003131336299160070219145707150225507582942858812233522495514111156072527860316531062169403143884922141894549500155117532363405559572503765246333050235067397620829530915409969313894515628691738863026985926687137905280304138158884975974131714416869220799163793955690366677134132520235293408555565905548882137893760739941885255734543112220333180577231571210076128142685062341409593833245817065375478269008234609105974623354996679709937820296667536473910334915665569225054171371232576447707496533553334474394778985987150950599806104509746683200980001419652821063609847094648303194655250718691607908569330452758132710015478789797809753293425670509706613255489541875696962987139016164386677185527349444849645053205350367022993768322122644349442775817932694765245036175868502905898721650769302610283831197515196746245493461950174306370814891922812371098755201500973984323779219957526294239919901179951196749886287600076732484122040454559179170715010008667671473407297853090364094885447184303029525422815754532837954661566516438480909726029871139009382012448309043568052090319061958698028882736079929623516961092322822896582257055479263727097671099433605570264985724985886611375177409176201133682258767848578654786609308531261011266332068811920992648260890822872619162217001630444911912188144967879500132122099352513035909393017300595547915395426437097922713165608639280502426307552538126443509297368092601328909880597874809668422878961585804381224390828007990254001117866764556200369235761209667132332193879242495177876775676025429638226623072197411810095873403890132756585625981128946275195454220579483427036166203574839197889285002976632615568911211817530049663657983665941212878179015928125029174129838579501651005001540795601132554176352075971020214214131202305453766541655043495165538765625048976667439719547011306638276547090045908765350863836440422618221751634677927190912766888828875652490500266535195567492410097229281489317684396678660979483790948313047628393370003477735477113113711304973601518824165234085572579798207222406380376838878164426438374078481472136780032061299826032419769853423867793831048451242431689987780174860062640830711705579280978285654455919288746486712445975606068596961424246313902502108243839234190377189614179454649613608166242838456459768383816242111490375714762161674870509655158121295999176095314445409646965555967775671301658187273939021492906773664176918263337995089249041979750876853334205218374983086944870822104378485311933208762858770000453977489065807635521571115356881512872096114506438984534965396341097671061067072936092377293792034588737260223796144901014812007841812922818474767721176121140219189982890293776571672830110494170913401791776661431177919504405879610546279784396681210493488493696040154323836279761635467236479308664289868100659107123083432142183748632821428965764242080644675199336382602446090678280822115913868224013715426399226740583621486626421458733358958526919403839643466690170492121097709230155814818108656450433891125426514807581506433533914852211826997724505349847892962921044652562825178227141034499791188516100420962727673371312452526649846142299244274977051386328670401268431535385728103911365372637005184677818095264845776793706837452441010308212962544402534096807660086209609268497716694728869837485237326920728254883071502562279309257527728162553250974522796941138209171758420854736582512425486304841270752608002031723345776254841177132584819405465231586638036104521351927546264279473154334927782499391376608936811328275822210996201245265935178122754735969648706315442790063583355620336624704024315048182361333252220620047964251515194141008741563923148757244949358575978567415362232023323293759370393694894893116372653280295506709528454902046651046693337434669678469110797492643747364712327114180916751766967553913777185699702428760174192113709157223665036649353483283684113519450219251310958607380532595221673555812633491391300567122447788172318128480543058424245982261824550458724287353140386833246450776210258068336611853468561617289071209639106984117354002121546150513731966923126223003868319800229619397318864971100635247458663831125230005942996069872478948504140625177913806947656583505307696595714389882821529953165592411067150642787183805024316222265236546323387765556955244748646603809036365300464786919705823617395636320589011571248371498667522492432995066871411265872397352533586019112695825933738156002612816369587015636247375017160002396678298302335435533059136917504832255743070362510109839805044331957933243436819049249874069219763535389917992229731162320674573693862305360814019161019642328612086011344812076030862130464915811352366991454094817063786252626815809098601622390507951174683902772850139447519677657419606095397968169661168537235560395690600097434028098240660959009848538952474982793966398655876188386435130649266475716143017929193543636359861803577763168608114352892105466728581139262730802912166115217608515429739590522248367369054332170580285054902268360581100143329807153249066900199263130113751986521946631814044009297769972313757788641865386090760258797750132698186447804295517841810604391051579360426289309855276458626877216107253912748817722799706175554415486367123610439424986620402300197971440206400243752617912913466121925585304192463834299719872868710048050470264820286765926779948693149772382436671626458532077933764235679320707077440167850874189016894608753848452436338839790921853423406424725549154218243192534036888212994719066675115148860835782109982104278798462448081858259526716098460470023566751084716538230639867316554002492300060731623897452697159608519725611286377840285347193818685749039832615641456904580581077573694629153725320316660016837392058500066531120431577782576728942970301210584217710576124305312008048528191428368782161834099874525210705368201045705852770614158707830933810896353098727797805052248483049318938050785331063461287273465468746140678734422397464412816750335211067487318497200805709127670120488549703356700675689326759011592057127150087794786076162708990105285487716527211525864093007153736784727359738785765755048633737251252750929559475668827258317934827167786060371460356898619594837347805944649004992457165795291739949941603763184002902319706101245582318193825956820568294365679890571070309050286966227924180218398716675216572093777994878513265301993939815983860575212828225671849880076877603764861860131221005848359791268512254835647895116027115071509259064024990234814988246478096543629636305513140661531553960464456155787497798378509466711491928260887728347408009260873107297733331488232306716650270937118333687217393752773630296727124356255626690077457989695528009972319330015211459202837772574490529776897914184735502862581029739743268780488725753848865159701237986070211206775955943624174356816742480629890294577586675706555810641528496613275106157131526212780328242705256428797678728326584676723930930529449923727270706888339681505932123945904039180123150632245887620968558313739925564972671544091837226440993074560324288439032564051695052994504197605536834846559858819505869232172703788429212742668171843569054622899357098810551668052712579655320388967633064497458037395251573810146734676114747552310459837013942630635105255625276393033522070193915017240617988742213082384502615834393478624449684117187478971498407188608511174198303184167285345987194095022885557141456705960400481055121998731725559006673011398098296951424453998855708073964069705284143154632976859779627505130000871843229052921647237750514432116318077529613195967456997249707139878917460486994512043718953720691062844945831956007342366967629795522836904381582648123703942690581975573325902219403792311131246902583635077089264767472165654709966090797174390428512828586416830018967555392551859663657308653599898723867842826605890162486149862839280850337008312425936996610711047489674738522268054382763548403616938384361392402447995351840902064991498552295879272755739468113118085669307669047600895680816372532757101948895273362380239176275748620777509806929373228095094034949276669416311801652604467696205004718875419585950430291736515775135927674931729459972136981546088553125634285520502270778073232749918777810538809840687520211789887022504365350773752876396986157426637262207227028538258782935492229073376238267798269374535480386517472342550119947086880978963697581966206009471176089384619390160145330255613493468577108493422653863771921207437181989769189061948247319610412964838748874673017580538031298191064759609749103977687224761301348476727415544472631826937633330468006715591794659773794380402512625561305948675487848312450656077529175130031650277169345978317613329665270632529562260736378362294697174060697746360091042095703679998441072651510825395118947892470745393486175200638436686496451470889090598720237635560621844590939002039334142270962665102529527790705261095495765279269308726282735112608874244269375249504370612432243082687611994418250009917877222380717702870952346319173812070903572747142967464252119024193819094545361639277151271718470239502025479690495552041033659963310466071025785034249831902261547786685300845195527930217131941795893937196607099903434184940741737580717854087242882766282894323157553879972713588530574256569816738185023779453826633349210245702680541525219645149998640267979560619483873990415158258162905473199042117809802938906368737406288336178423295957829658911514447439683223019549110892750513190487630841764966321237840384901337493515734901610101211619640213417330189388222168696966711627184928861855434242553675049182836851680469096924183168564199440253304398924298228561792328948667333101531625535201792883864009909849149790753055358622328768806384020195493211129026484872004258136462278487046340629856742199677043295624172100321683482024091066344252056522572905109882572360413397894258326249638691117009108249959276502756332798030131031568498719094626866948488262042450280937029722010935649942144889907930257674900097894521603581853866931693703845583924501813625895628669186573551665635720708761240656533156617241744910469834615111754860764552980032943666723806604170328932436856047529065256775803523373909981091781117207951935280551643349962018935753363765046553377044889420857021230120295166742667804333153515763748277671914391694649052334938295890507216118427243999561015046102319963539358270409183877032184146667024636737098563682625329479327365728860741780416893973483550553287766415683855834962892370362018754776809145705170346716720359698638780172336388115829168552234753021271609833201434994211691309151422816290415588927099779440939898162749868049506324875253765911557324082921709522419108772739216311986861544837303259987038821447798590990517577848081463312185841555430572016277400991583217085996473700608069067334292401476694570817178144593004924632557677912328465000853826141921133322820261771283628246046785871470561410588651978555258253979361096042551453604083154019900095113514845736134518297129722387287574528232859532664331696269656754907816262280885989276245456321830526236104111961336522789205519844122437864535489379876723637622131658488991357664723647286700392014326348421123657570857755339648501440510120732942584086472909378148644167247229730637135095816744652027060128605241599404563102254357845750816820857472726719627281479536995095386416302606844368510677661108650921634438208410032722855593291771942144061650104811581484123442104476883014591773022787007635803100903501340825222063084143806142529367540855463122696665291693202763856682550445619789266973074445745608152624049525471309466359044237936243009383315026027887726799455264643450856615982277887755348244570207513804924046246457488057002870845584810394855127182338904141960853189367910994769197293617804320539420919938047494816926009287231904784846701117723370808033948633927640864043048282161670522491068692950097896054079583364679607161911654260065724440006383807855953124637629562349624994607303205691565747592047874188002635280121989830560851460891401694622094083205751488537652003268839645258628445918827067810839885921486105250595381674816750054323316783318628481742593752745187954151873145862424473718679424287905406509377930726945278145879094851134361621158738736697898341085799302670299231909178495802828968430183429799812704481469641495373806584356362249722233396834048945045579716908050999624757287040070172922058223892819946479797451276171297134044545360728189141906661667327182241856488604125253100941319027406699647275813491211573676541917353890717848989002722168402328639937306327705170194929105400675241300377894398543811829293196942396497047007110266373154816531167044571710002811297772391517383536794701905390461231517447524002904554074737911699522746183841275346070358367616061983547855709860686652296432788693126065794971815355233622615589023387965379689716289058514138834930459019141515116630997399875099138114375179582201680892790425610889327961395672179274784417978160008454437957750358005882601426014683582336226237223652717113876094050481145806254904152852575040375673153829994125974347874235507497104162824214143714571991123547504974434222730827804068769861473157735400107212038861993012966451185248949226806736289289736847330997269346854083132316788900893711008238653908697331349742437424092490824914098725099753069872448529746304757543458596563208650021735433108595845711401772211659593016059230031135890127272707494695672419542877562515803541633513225973865195908141140806542114602118152313505093230296478729467785505490711243497206118398718722663148049027398258191268204274409650832534166539163809112413200869404458654647232486790728608202966555897369268051487156270382027736468003265122099849822492128380293707170223276475918152467242073642958284562741400533906007572686966857853711259473653785215677203605570744404850687559209507461339864315757110483603668477060266538817246333479899008670293604952840451211941291629246855180341684429808839645643039407652042502227875735229982770327347203785348625219024688341418269352679986978851446643793719546618261849257485370326066726740921286957263092160894432851687679131368671625820986026162393301427370732632512910841881734326658449093584810609073561210401564201625044320247210434309520138952091268141591188014522479474290697824080399118091737290183284649370553933841875839900286150328287005034089056868724378184751021726047178871121797765541072647535453593136359288719468072637674878438272658796940792341727467643515811868335860441047591481502318175308658491826417234146815881855957660186912315027249746658092279597835380524564372974730054568432183338384076148602675525982031817674047200403288406132648221603351209181960945984466261821946943194610649198606183253495687272258374013166768155438586065582135287010349267171371176817762366066301922675303270778895885078949703034430311645889155980164277623302514322151922479373000943299268862568853108012197468023333093350376258190857363107650379855369662540697563933537827074763250691469931090666584832182225605867014627688159762978037231066804000060099280388212193691920475754155616886868105517427638324908234489495037227820992662319751171605145906187210566814631021869696825618866696111459369224287718063804515902653419844641631388806180832227411884407559661127621987010353419660736974274988576296615876517944653475750857890219139151684468364797629939707975087608802455507780212984560547014591387327911567763403505250502595629460409329942636061529593696298937747707971453292807477585098714433255645694029616800994168565795437334574191333099908378368368302894847910483491080407957355179504294694042612975655858660482147886414083941973050380309398480771030772961571463394462693581993646667564424636828115170201469576279666307865430214925628874205428472547108045966313209354557590118436161617161234629307008261963286437258366080631553998497939432219735624276969843240963932973163300914603011876588494226892053309752607374569961871104976524794153245890253007973149450814077824882310711459736829624088687110242695166707186339258958253565523783110355226636958710174234029256098864622463199741284542032370056703040938401584962198371864563702301655516982701475176205898704506051376388437211842948981429944126836298661552978719676442496205852384925792381754205369907741809569627352389758528639863459348678437715182371637826823455540665457851624740333998744496403648353037731803137620304675105145175815585484110827109002332625709660889620081332914514228900741894296537673410361722066048384886200159163161804932857569011062549294438798548092731185324021431159339655277417310278032099805738185759646972864054607661483768648862665301289453710004685534274860721278285351919595362334368830424972863775093237826748769540215737958669604535850876632963545339992398052422292501506933848765027523500765289344488140434867248650480014573838271111454605319123808731473526894826612088651052980053285749409022981579119508067681929627103548485273707915561219631020279842283617586030140206454026213321647373561594705969362605989953611847018502461385189396665034661004178255756091191181429929782611948636928222853760100096364326979039939584414874607864551846452266931166251402604051843440733330952832062566317657667699964978603367339874848499271966587095822982444997308249213330395052798006477113059173822540430565587416828977672805981431842375757835128429947400736325821184513593384958129714094413246252942700027712251954810225991575806702042030692240541801461519713540186115602684199668304297839762149637644211247947331872656444987979047817603192967998779838092184871420553780942449340020353766068391579964606282907467602550068249131947894998930282486860547104709976339613432260514373119864433655886042642077523875291204216089550540894416448386508530247787843555806255403817638234041759083139739799827766706054044554845875370397145319539710395980773812810638410420086570439203005484349206653320445987559519717303182991985420581686903818661839469577897853087901398925666112593609884135081071898064350569320554853374869294422686126224709820297686887385361169191676057628813572100232464501162197245461240522835266302049962492628785045473238538919640241475382412180578974253283744995070228786189742006485429103122794418187165083896769110896689628812157411482676189107820329122576203648705141752134537618230491795417157976853503732840709243469826583862736703232156841151834411460047240307609066830667931434695320581541269427229240492819139204282818025151904450820718757268733051529988971828015631926725250231365221494601858065641067509851905443742427116074558794411142388394879032731877611031132446049471169933690015998077546724208388274379671181163007276146903830284375584750304868983067795177803154667132285284318956355705199942793876053269386737587388126787382337962156993984634654446677952754488804835039422281200248520586261124569412711021101462354005992723084528984600532096807078431078632409906491152994236158633741924529458913576288828021011329090154690696884919698733494882610404745633927549386891471011591562620479509398517397259024972830550517148638452445959739529815069847353625217539256924976487416106317563243301266470512643487870838892778029562490140450657430406594309576759853427266322641239778315870234177790415686158808260896482053038871542740590238015120007360460142538800356887355590648366671363503631575107673903476930631438735820788182073084092919102922095361209140922702532162355303474071382000402938895588935834119553240453644892554556160424572958978012456272708924964598445025775263157653941231842157557417378074478035236755995884585884306034855922574730828619663941659669969825208964309988446048196341795071919778751036785780463059799872201012930349757428770952749737476465994954487106998571635811747853592357217591804999532256877885912815492886187287065190009076099456217474386542175069014728232803808963369121317248257697211584282815620587635840096314471253303641111174246212059033310958549077857045480462592732989355995212616323094844651905399592114023375884220266661135714673517939390790989521116614571049057705380628734805169041300629508497217188603607496020595836783269662390762908873933502180053424462086333494620139877824489035736415653004181336087755250054148529241545816944775121403374024743693691474112967516143370502324732804612548858913988570074352520421506228166894903565032475511434923865765824890466920101913481778231970676439283648664479165258149452752731811945095678789499788029264962853254182149413902273312432521987309138005244130992746101217413742444567531947382324097460554862097724655694020715699637125506912882180360106902360711824213618286188601377530543435692239315208612017272459931419824401972119099627887021967506339653198215070237680311992471926309950684030793540120546639963149104451550668941477443756867098921273131477245851236260787741719014849632371216468209963922494309469152989660637690454507165539368643021008789735360166106669270764614254393011704719649595359458711401690107842484674868744361271511857790678203134540684912821268670048592759704710361596754919118490099667226661589001354769509678437744684749624991133909397670444462334795958017486448929084551762808913697946248401545460570288108290993813968496475111956231717827098036698468622167207778661565904379536953302532730290284110096953741300410966888325136883928700132358948247001220988673519054900077429152652431313121500246305988095685987944832078187532714245078507317745151994947487647183186152057161749300001033875113364279233023000688891564207447117681378423366578331931390620721680754444299981208025220663441984950917607234957435509451371357694071949638586308147490667746991340833700255097568186648813310556741272873700051095974577704021435507946574817109839383114993740701041458396857495622931025197429387852179104777662608476710210172702807270632753100901920241056619522479416934936435946574066826844755156929528833807519144507554292632484690843533146531221919508477426274897423684321339378074195469347038089481973677454083609873640633206186641387539138409752666254152058716535489733374119118028386639825287353950048313344266014107073097225763422860878785602362541170365292509918549705784572026473633975662449775436556756825972588838500454329968272153920480334015220538297275857931121268572565000750183902118572578990294666958814687259621906006741807501807144912439618584704036615056999146756559523023705282073670493259300960892933684119966745392933255968702515123763535482571485109624634883754663775341460614971448823527443749599081422652765503437826122111872159622451400492904424078015183078205540353261326202102765658331864507689432054759745206066258707228218532047809670829234846315035942039218476990562950629637532140260271798972617848397443771851037439801179434232958122005216927754486547289721907949652353539227372320164215760595164372019544887282968960061092343870783750703127624938576094405083921557741299173199499143276144122167736938285755166036779713150798396482131439869257969592559793239488744708333159087152912490408704828768222045599115062073928682333879737632753415362225144072300236050420395785529231371089555915131376485137820972181513902348817890753509792593107839418539157932842375197902911473808006125503008192842654649094778837812068847066864061097890812882798200995798178892157610708085044399840264401695977884963544655267736629606942069984834863263028148746481594889772085771040643526632385390847780506497178769829298908294270730190659986583334733175064622985693041308372480199280642617338139763565740465098345122892794670914009016883585300202548951666847848222590529644208130259060785816672767051719067127622236190483143301153882817742426195805480456169446800645815150202252846778804225632771029503260872775195480226230763891175241818709185798127094123958727755896124510078773001988225612044588990854775267089189654402482809044892883556682092892019025119543838586033475501891473389699762299473073038088248341257573846883058003746593100958056570312384308182903251851105642120950305722435794141769390765183808609451766363353729926033839203890428363490691070745351688948327632674624275789411038530750987567685273872201874179663811075226115164301916859521579046270730953851345130962599252012909898700988554688199921147952390391458409099312074437408774100870649515947827490235930776225601193791621400576607631762796247520143360515220215450169063841786159178555246987820072300263870375996746639668912836151458571340047936379415891005990567869743377283385033699090473097672699213072061179750338134250332623374405185760831315233811123085870567667043228701216571318337974092207175644741328971066325091112892208401680156474771529629572041406252116115293618277888186241856440578509202180032835634539937994161123218995428389244528334531368721708555853664393911010226492640958978600465709637336939561917501973918665456883909034615343924789552675324311099353653394730406928350114661396778662313384830045967745856184973400734826794836198980856593305092033051898642559840620342116877109603512630425126872509118013376007442415825176763351506987978231616059210529324765299154103266893311977544828681994242739363315178653929768865703864892390762771303512923929978334737545101254649494326725950127076010677395090923577358127565189676971514068666108991833164895172389357907286042006184391591891255742407591270865703953553724597296286713099934362868248603085926128502187138359803260573171696646582398568430760068509298641874280877062405025741590294960451537953735166952192438121038957374918438850764669822789172063068251297886987020058404465905400771338796174081442338972024192658027632352398835664344482994318646223887426424725267274333613219105346354149510148690929359316731991517808033552649331268697966679427935746037982276748923713070951549986608429204575610799698801806495239287706063713614205993262351821059165584744616254145453851112297911963452710411630043149056338894450883519887851167798020786822868251300667181927525579211122016302806472742923279047781171472457257648996273953548120329801682705624948988564004341014943181236253830107482865700002886232040246992659682337627398435346254700574312489341116714958629071195627682129963573918163009777154381832115692713842310822692698449326199439775396938880490474697209752878360607920760278904344563128416969749118651531859584506670348451890216899398474394573872515824007761236073226711659886578175808214955874371034844114441014657540760259986783524573619242474466346148903311685952761529778863941977927533013423151492753833583057843856129966327232716378281795098880411999337945556659712101422706165520824804865868944612957035961033354983676802642692260615549803472448831957895734803661514898622192941754078686678236460314219753770966951120562905369695328614145050449887866213890309968719561425994760552925750310207250420434301857338125298330249552226285837471190795420091122079535078061523144748026117946795395910739407511543210553495900737615738685465738049907256834088440678037219786210327505977276509167343609691430673531029334264528369108347059828256063523385802632692288230001988420334145674932499392609352535815596099256932304540490214663194797589511672812125812410631929490382294379308869090582834896774431953622395430202825845406205429282157906657749486325125691731555695794712807870709323671161470116754805808673573901231260133516753123018723391668518615131504889963834855237102835111084274801334378106124047726015657897098510062568107429971688168665124658135697749865251013661338615137636025191093642741032828983174200609229682937748575509848979041472339007287551920474135277351030710167867154231278254383358506069615210894715781633652749901737450731478013178689766217056966575956247802482914280531076566473560368044754371883322547457221509659162255053238644269501029253420942323328896287490433110546379352433008262572505974703111292988330437706418348177477332479505142574601157338880177490882594739725654146710760517166981606380576024911806271310250182182711301240429392060027581934777455327929572411198072358644094732800371842470550228521420481482373683211913458626756367893932018500313763543609631346915848875776331596410524514282623752462419585278070680053706011337627579115070127438914680778939141324362268722071040854560980577718353239644329021389600790612050602397249575096121929181414258161618178851385225880949900495340062857811001799484317749273552979663011442823302392590973680840814945071694559741298355785838361493201084837966643757063537588848941382105303674155822661578534579090993152446161487617845780349214491016095038121647498494926117214068630119157790761361809470884974361704914193782549941416570475940790141825177393111971893974481578334043851294347247311793327455418382295514967065777620879352426338362436649039584838364422563684602746131605274562453379606676678468210741811355860258680485796469733371302279029719149493772044530017557006208927953580375928144893778130474787721025666410555329430474846514283879379076896520544799798187234542760791439831052169929481755618595316338005395665679007025736262540254772115421290803361939332229871350564122971260623704636359415735035375397272233922845120338995800475369220311678152010648183755079788535054208042978387293077045890918043488543568388739112626586465260118596944313415186467077024603670927743623506610908007860849058201628052980124581284112053925373265173512598375420230170298640041907110097272590751551595818051954579221855159772047785283732425312183565026795126046377944767364482794423378236966901505263346181844941057960677162145519659754045733084520439071095295932262945869012497988301154978750431299082582109523003127978319311376671024325826506518958067076366595336652360528923969348578095738800724884699656827422897774035713915220269151910394917741066221256662698558287851915972948026397010460404537021218355841621625703097834461414953547367101573132996921243004386356048704550652140154638453205862484132234954345298026802291661505380176024204422959901758319620946552133774458708923432367790406415188280455036067555314612446157877623372283304980257765148445388578388299242866226413551472634375063977353126820011731532302968008402242128470317695934610884913834151068823885384558098454278913901162770076800602523867880884690443997226312055183865172035432303627747437270511869645598905155773733796000516574085154001001106188236850040769305229827219200199344407562488935892223753895491379490153479097517319109088252692910178320571409482407067782935275198229674578178663078280658264018371763226207377141372263763450156044850550742304786221289010681551215992516524632136934841862194150692617366623955372671564944316197478366020137039799038021244197827021657148300503090416638275029147146324681463932595458348013643300450089891594778058797164628641866358872105879377107316540377986724350072539642785412908230304879966063733449072261588711848104128394586638133165273127560178496024671845476602808530732456934038993524492369900008469788309073877692935985188686761040049082330225696891016212039231037184991120831047676728020913149260197534317051794588275953917264256775055722882351468275338043137829737629069251160310052174529404973059005488566595486365715023244988061775216674767774755568707532862990231110240930858437200197531241223378898855503502273184245280465397118847934572229479383629321284473678158661442598971045237659791729495773590637520716977747796408578086134965136650881115563616243411226722154354927803929627845593227913787681833166184231171028952113318181172873066227554339382320993843939461690505330819826786628187043123781104199794633289450310491585137906598823080954639597383534065355983642666938829406920324003900345642414201664470779138267465909822221832745993350457897005594833952393047229670615754749905627606805609375942111495336557990377102243330950866051793493450823656325028927292420182289747266898037396525585438838950554753175684658833250041658286847286807066317555179876045416822018772713486174366840759346887705247491977836361005216872982141808862520724783774627265726825614700685716438905856651719756640592612720339292268485738282211673823870280871631243528652921551436876192662275975249225303736179861535686740234850615955498976986645213836858824422901137175748437352641978013231122659140885911124517010341041955289767933784057970862250124371863769423200177603732770942643630069215301533502392878805329917375952206027058851410629855818699722251059368780456922802935663033016837240841264946892668676224764731256439950403003769504475296753937077524253024197646852264019603420229354374967366513125379230364801788947015107709762580517553520724267135565314775595980776449264076034732288605897187689651362059483265962977291560673179497378490702986432113615669624076126903804379527692000853473167557070252579938676143372315512508034781327352878932573819887496583645122304467081153632135309851818955409142198108702073645275724767354436936168231716593710429633419999221415145818059707666888940058813437000166108821244500073141514813224285497512625471106476726619700265955749991320429715564515366893072105393796293712371864503628053107126810900176864986880962096496369450445043237144183226128242005270387285777203420974581841474838425097466752211241400645180568238363907951623848340073596037995480999135490724408370263462780736825323530093161539100784308998805493794607243691284081193749162298997497017250724324864470729551102633740444699185934310447372820240296164630896622838651985129790073650885370076456613814570873260471476678550787318365875404726941638760771661671838625233182733364542784488409709217010134807259593251255794753241093765183758105150966353716111612410851468459076585600589072314410020164653347169003516129638396985788464845895530651123826861932226557389879095467153935927155021490636531401230304963417280800142726701265835449678538277677039652238551989317433172711985960889751679404496387129700630818077601479870043179452860675793163232080779120232499499123574753656215772733648240634684767982297523956020907859240006813191301230330817568111994587130536926237704977622273250398806058485969680359460936518525755408691001439340279871419924745104491608236489641056648403161829567030076074264506276162105727889792245142280970469629071642474031802766022990464916375989584638542063283414255812525385483443296765004363944895154971538483249523898567521048410784480482878498275683109210700211765113773891901779466860833291143412849507433607080256297313972152213040329842849997134579301675499083997875707168905898882880206738919914695995534035640068116661532422027529815623190890049037188922840193217150935096472736899805308704120345148603964083825525824111250043538985994601790574784377852301107796793188683741261305528698668804606341870292868096314206484740300665136311637095510103889392486065442097917110059995027209841238489271901304821753514140636631929693388410686802503516985405232595781173604832726252483757403155642442995800495454196805332130881833505822709387859559639060553865184800326166915931529128161624047781949048611930696067652327260529308153430107806418031263377326514603976335028050052903145924099282565266341324688981039923657991983950301225089771105235095689110619168999739936637538775183131255318237172001875139407597865163650979637898833035058245674569962045496753600273383761806516544479533999988787203817660347541721813061743747906744317112908237749169979376106997674474345002276819130335604680496681715414063815951624690301065067155758505391290460352879456789791904094790832759402489739203824567276345029480466511724365332645622589220727551986411361265772571019226232194285881259332868131217262554552150141317602927675357531334537306607009131592431193468029735196077231377441037537023471439212259584254842638108764281919210115595297709439826968349712009841135640346121620473433675176871283744445544227104794407678663283964092719574236053497684872343024700170829284604771165536717345818183715486931748845924526056965863615073342622232851378589141396332449935695046937903344399793535531072575088603383101224299021366062727922712344106723068156364107814451285675430411098020126429140630241442946414642605846336120627749197840408331111115485837508443940528439470131390332453895819935854953030808933327159292634655912531793791847444241047591418450850895973350835494898420220297841020464572212892276748177249234022992161517800311865145514752935687129754123258896842133089477710766765829628298776693895072617022902523205939826709239285600664855141170003479734138712818939574845793440874045865733567506661776104762204592052645566527704287246665071566826271894937662355989214548355465143550180392224481567991985193734736896534932334004786678886448945900900436503680711595775965890468249062113890369730300406704894161606103120310246256959894922012274601896661855011985101614620985145881555984773416264760187082358284588413588926310056213977187109797860417977675378877721172657648963494634784248709939855331956754342389263590181951601158381799257701749180887539887703891285307020513110243314183076269856176973525881529080614925278921943776661627245700666835512574686165299657179192591746028129234119146218797698588028522044698376675574241231406005182288062690179602588776925227931492360243663202014907919142665573145033501234343969239551123671658439749269935880626664112516284780594218294318360374209933096124698636088760471712454231554009416641645755308239098268267970369344037563590730246570733346294182530361378320742724283680115562723901974717279052306293579087493358758787031194596725246988592188255527768324090785297324746044494636331303831979640601944248070538367717419716155250178510827432999841358991355459616885337370776609817915449630768269592344620772155603260958383963433796600636734283817423745472854389333192326840540149633172480713254057324858553594017349391898215365867697666066784008782672020885508102131010313148905445727843338503773466879091238221212773197667440639800657706416445694208168987473174802942455968456385076296508649441931098667247852429460802731801428370877862276649368510965155694036136328354053851714963137105023101538950783375058922740135757407312043171700583797967059625614863123498692042735516613161590451844192700958158914062380750731515427224934500217274860490101430296920365420902033929783573214082456209006171468124076475059686030988963143451641935288845721111465893991880178695179707469137550907099942537089508240548022582874420193606961224096374357355296798132569768377613137464125014620649577482268260298229530861181035955145063690372975766531602711045315438740133607755485079329672856622051225461586407251431356705731522505598547639193362108844321008496211809232204152077646982606911478915554419791716552385013474751639942254097850939115869453085376967195984433925538098800757900858156545707701390851232100491762325849954544161649864843335742790967502008786687815255561722641862787124355325656315478982844029901328197712568296804102007445255293972255134884239492000350852444801924734099214309021402606778827409569786689078469226932348811639564643826411682462201397168660367292192277094708617346326744976670487339803875248550549403369025692032252346005005572567516820456722586196763027558708156204361826062196839728097029007380918884037046466228841278912162777068315112480111024193461296204461039356427569553072265991189969566327830307838669949870682440467387644895520491924147519145377426902075784660623573578850128537672079196413122651101070256278998129525784690639769156086912201628019021794266562650161572186538104437909901042173887413343773845788226452667234422767833239321723154936911606704681761839755971691969536844946676949721122942319591691870559034774880810122985610150418149957111251285809958197981169111798239316214451006339996169870905795416792917527452766632677919769366980651812965202302607958764241346839132931894138089778843864718964591194729125655866159700272970617013469804035770842666367763169734361206459159007490250442655809829236425491773629881022153294701959773068544944745469389272248541875850847033026642686841083128867419050626678273621780815094728983499134217783413379790744441029171854423757199268084649744083501494476461072546164393535223468757541311082403476918441877927635254326720530663684339375517372745659240597581865741862770303211015830770797269568738480461321026573103071481036518939372838800523774644039229625010036161485370760206287383376352945037120520295565020456094485427583681261275429704001662906966974518122047750700833188038902296065611620422900657522181582779549532741850264369430080118957525393512079990320328460667377609109028060584294381933635602896068998879055825272355463807680891650648570611848527672600619190643463365281388453703034321839137930779839307369454694330214266364778857834574634786582434758906730102992674629813676572635015976430312161804154165833481041863190318893563839333599415405539407237533112121325086407315199704663998909055636203503938793984875394123893729849031619735115361825016090930555749648771041745117294957117135176175934279654530306013601138926221639405913298351975346288554873244192612143738588029955257929550224246003458953784289606769282336734767675221510051568082602258347851846749719175106077646319017946599410685351718030444690887541411074416004643578578821385402832013183329853063606492395011334376373418118250226813746475699878785900532647289093583760850796662897701262678513835585675694318925223653364720397698526804978717657633910127477852004133445788892949113454266755699894113768673566837651928142005007494050308579379555686515092012568160613628177038403300249161242764620991519489035522409510400625932459023131791730682046101554968576033025399435854068589606918623737721465764901563427171077036837997542327970109703726724364115145705825595976499682297845788951567250528101237251034967908479062929410078942844612159967394222156851188712034819848696993846618724458773857591520207101013601305931554454827006413826273452708568057652111091426308289087710939828143391514020692938654221846170398039476979847870916645870063144049403688509766663141928518155660472431910054821752883295332685512201796263760316120968526879512326044725028329313165768030387075601266689182034448708956822239985511282869481057818655078031077320950244753288622763846927540720894848287314503006959584118984681467289957651176873826609055230538340030780900534213807485978139248812385845118071236612652395938362766333014310347292985359290563814499303432763736643820808809448952267757306666485443755733759162262233099433000315608701172516299628752680178751253225271277310759285634711009796230427180066290446495942458619959228945066987002885639236856847148458991827554188154435096824580495404566818926754821345595144428228596067170765492729381445201028785868517444358993203380076624412056200915901497770466273714197849325635267205912214329828425345355184844922203724611384466008918702351760719276919953885020131676883088692325874049731188076292519583181247958915718715185744262356142826500551355925932014754814098544209481829909507979356764520973876745123356422148617340543845622917407304351455451560780389474129774351774522853599904196716872257935096036722068630515996607303265811747953339819788512234715527558450935157819224222580875127977902412251473772161585072690454002676376168192828920311784256742654657598399777552754579806022338147317451602803367130660365417611070224256970667064009431303712659599049085532735414695019534969852866831547366282669456143880728134519013313824053774270916046123473681469644741565849523560417572248371367927300736283028733709075667667418868702877104437976594271666273993690426845620818760735098191740620724001270993225597013770921489880966145821703563655030839751324421672017366505404436395467253484428182826774619490852334334654053085248268175981696007982747046794719726246420289567178885018435141352822668712711807341847628975724604582303620636609774077496989556718430551174528772411063787541425521574579851236724313059851062809733392014626555030191329984692766485702348389439272689561435080314855380603107985137827378558704054126414311021744263532048391903929290575896490146700653112939706405260400616937864956242951322750388773500303093660858302890597611252960935830064053170994298848301091521682850173394214023641321664162357221691305158479357274957460867961659545594075730277691334529257126267571337540333847658339431815253658403863416349795344203583944897447576466321190839554829184229639627355977798170735894205410622176725376550889352127533671031930261895398805732835912092802883605419538695325996654484326700368118449472679246340670068932911036608806007771404163566639522031215612935971304283125781805941888665682179019590870739818034682397293902981425625662214208010942401489098431164281645168621986298956518170140714914078888833145396197978684877586444529958717933480420339514964293363017668748235503113347188296625411635162936885751770374320192377153910194040733818142628280273349418274527925174191491426409568451535081415912708138357847941462214892349606064889224467101214516898711898198722146765426724039501810933741364777933381380193611321215601775911089168528670878676789372210412026347969078331983734412349181681910909878567714468917371504643757513188353199927393336125363839377799243846081291206926080813361589598690848082896914786835125706066056953955918151258555665357192916500921699513869806027539038086787979278922249611095228407918593065645108755942825061405565001260165052439499164588725105172311925035497399926761887862929132163795570806032561715870223575119759808641051338823907520034774504322186475747706787553771582375532116825598589177207133003843500514427277527858863688610080309536538149634781426603490039611161159356510848595257841293556650083483696259820739306562054253538767825012890278303795780300236056555971074647755025025269822882591947508235577250101581992032114559904474206311631166190725998139583127309627036032965267020017155222162199273424515305891273967108454821072377436671939421247720972577164097242155432176302123249570459603403394772632098464963365141907248769741713670292071702064430244395072306867249424333010407406523586734367416132574455815840356246383914803276932624931464986599264029689557518519883775567688893387145118700917048118038567581814584425463030145613734793694614791730604357413757948410636961231273371407402396759956990650747279165787270046208970224504214448001358820577690367086561537287582734468183950846460179579266447365071034659713478272077263168895784467407909060914216493428170695987094730304018357024106795053499467224571292228528391598165120753775462436068677435358578897455276375336893736160510214192856831973574942737357261702204639480336001418020948280330177903357484073785250560344035278488109510662749059947968896965560969128507524688238173216999769390502971913939249170171021828203670650776706128373315862388665679999377530435569045621588035952574573963201052288797713613810326075016223694647421048087916693153667526328627207981606142482542695540683266189115484377761106685706338471942816311373333181389229537333745644756103300790684404373161379506623943759507224271925317194382899254242786656545319621556864002990891021996456551370116011416760244531156817297743846306850938695709637904447841644423389283457938312178317004809677913617421300454814432892108807069199227894288540832852677965739252100320866678942944199839180053007280543877608637706342386714083844675295320509558803962614308034353177074845984740376660382273147107834055478205369999991171928577763714111671246680359817591176031929422777286565812047599952617289563534239755314943286986398771296977362086092738677661617165004497270885166468705331089344067865306051924349955070797646749971810602801396987122253217949661199449646478758196407261459549491159861722140025214863651120737691977682816281521031189763493951428772153913155893493360112129810071704682090139836132215191514067614843958280804077728244578449172354537636738708770251606617150649076841837986146738478649207874237357115632822938912505772708588335790170736465556906625235033972900065448149085304544460515995758632345067092768503072419373926218664949357456293923954815926551861263853516957095549142678306090541374763998148017108590073097439771648413603291893646080265577172776730006300598726086949265472130046936204856243470693025941487173601711783525337608018532670273254638351639316840757193609350454931639959876098120073482840488499396255900961625700423527189266208585993566454174939049759227544162345616331759001377912168941121971958647239937277087658728139304233229498002533418722428456506377905321572544452093246596405587280397333735223408124748605962310151956109022158585367127992530625168990375134763019718693138152796827154543849305742144522934076906636222895013260713718268606748430028333985992937794163323538034596843789633856561040059508950936609953627469409248362041125639106413460520423958829812726529122365611039005292811040501361657801284138300342728635517116373580802622626157004034245311158044685787324905398590302631245884971805941965858598361237916972831232087226388460320849750915900715639746890010401900685172118417471284948651137677034886625180432243632401269218380581790581999666651831926146091675996489660350379469923862171223124930698871554502453344129367534794962561281775435043384451892979549838820676717504505424083902300545504311338625838360931569377545356091180242232818666326383291311541805772006454715644988860577224885618150102078322387610593672516535494672489407048047025611919849936405987151097021055913629781876678403966630087625532388134886211751255024062348041928037396082561211059714439358283949844239948379173140674044304654362996196806033903862927986729161458277127141594226063688914352566512998329875660681444589176462263738978239667168734941020184304334874934304625434848218832361330240696543328315175547181432061224828265832705065830743549784772076203521932559508984443315189234979682794486283489104881103584602383048732464391731334117615431678707327223191451322598522126963200235548586112286689558383220903230883394112559956353942428583329280404286835138712166518868587453780242296182846857070997748300580582320928524670577945145529162085248485000004515230524539236056687037046837862830114853568503353911128686908938782185980503556451960215317399720633033179154465646558829882904544521312342456695576538171359736044216706860466134570728242107451015795024814715097975670494796495747796719863991999526302763835046845330508280748589953230819421962645740328869061818662595184487764079800149301902570586462604249488159259071887168665416547808798962968576482078177268125606079740430132089785563794079898120738942762649264864095339682488434267756184800651250355261151723014659681731250857226954853952628014056307257100833671132729056758791237606091378301687895903054124570702846465554301112567183616718554657472434171815085604210446763314873416669180480037186003333948790761107920804205814588971854042021711808473285034839092713622827487570993921664887367296605671352244191943031005877988385058847300840423559501595287799677190854517894379622981732473503196748132151651501785200761252949220410266051129329965497044031126642175815403219296715837447428590780102224551433856332603938865786818311761710887874850206285361275061647988012369838666839769732766836994351643071023699891360633976703144090213116637358261515718058520428044956796187811651230994611259491023236862754001681849600086343056585234524779115259321290740295469767014980830839139318304241026001872794814444269385186419232113567925460734678894146669627277756650085883767175699217282138380902507380610125232199465979892937960746247844801345977397014518929637958571967227597735251493975340624055762134833253508847037499356563886028734709857353277247186864985816317010167971012614811069672223504431249497507189686175809675369585833847911458282575865997912154120403294584586256667076061020283439608168254783361849147362788372782613080152766852415046707799024393568638920257891201768838230349527413508544387392805839335670263284998461666413808154749942826831875932338598100909810560332177562439363411592530266792235240915500166387449076006387995554843421309944315051639000323243402255962503486990583732394765367413939810265780599185211917744986746808880240601139434282867298948593831132453568648011530593414568158560473892769628469085855346600079071046258573149888910088407764268064103143573953840203602154385744576217361582728673772709461827523448146377420129841188694590763746995289654757587087790321234617269204387810359416149809223515064751806044802127877454919073572598230612867550463137915785835873782612220824576694336201255860216353058998583879152707491057612514889685908773708725193539881676905386784316653227130075233408602367513364683758760924827859113932848664448925847016266402075637638939870354677409722133282144583768612138537213547863987601373952103955709573018729541089963405714255959082733011520535859428903226990350016187286076068265498905477136163629673415179166673948993579036965202463728507994882594308446786600408736745379292902125682931304765592381519737952097221547310903651243689639812823269510828257908699902603503938503134057850821211968364880962381131660817383942630888352376031266249996699473701492833391947057126041861660673349097962880954710931211927694238811524273701989092019417378673774677778089744842283854566546844650109037201436203667799310877066396112676066027329167827630566667697139580283975361311918337735658609592475077227332237610058329565585082582117838990749835910214000671602289687779303493115826082108615305981964349471913055579110115447988278042776549980293917191078681946587205618525825634939550886737887238128622879225365944202242091723060097555931353844990238533699813616267516009842412447480756748240109236985754026901128741333097133072473813733196082800131508980809560840216534768044134254291727493504390889153167046778048545946172033893982284070584569332897759591118855848355226797305786612435981944266146536979320118090070767219341188626085519376590341318692526538998631177199422795065687064869654724260296723572316718296989922978259999619475940318458033669217996941564254101001955473474351003492087638259157191675690020658846226812442676049127827502071866129621456115614652005330952847729359307810655574024257438372114775607510147851768571324909396704586491785900906633544613592746831258121999712341233993339539403139338747933454591378874641978519127904877311966055859792313968062661947733561228252850154620140969811297284252734570282764795045026524606483012954091508690297934051563423274845337935085251851299059569917308352105846711519234613242631504790048569992338297412196100531587660555132297459065166020918051667214316565594610174181032221410408820652184551575913051573347284659109328381359300142677826869187693634426851623653544497228934043330863313453117901827653994308235942249152287343224646504797890097209322739179192723731084904760545973693917613707143404492315920813326522781941113640878314826078807782536116400916336912371782289188353365097568314670866042671365699207026340193988095337420710239317223201963437842549808491909802072237898083330294117997850154999735805498312116476811312651821047251903473392767071703111034281482768310719626381355602537916885078332194584797767256483682200137423826064081519828874054136398935405725459465716577258323657306109184025768906152219459043511852591237214190587011891369131872382815989697046699718966522930171421704788076276137448465543408257019057362837363335601186596651667599760793816744135399494851103392605054982517119342268440232733101710284106344304701863333512855044640734295094223692361283043575457939503068301967537655902025187142733100611504157493577683469092454702390273017966384444875397169645365111332901406067381262214417088732498770832930538316123192701844055467224782880005043196920382970840904415402405666518756811024867392641141110821452427465574068672483570169306250307113097126844861251161277212258889752367226696238927802427435026056091080884301054997341856707627763855998338710527809128731793183489050564126310447421521642489810868606579875128048585448648250535015842964281923412408246685492632916086789664662145392304095218887277640821294079044166527154130887266872874455160260544846125934049171768391156495539899342824731004341679912959596932462111561888822479748428573209196674363712348765255132771914599483388994972898565459185243512643706897587203837828934494211322966008786878494363006878218923177506053292256852404713111687244142124130924620432255987636436211352143256154125886123385147319054606057781570201455023045503680922922770449593207786982878579614713168559851699757093109054858561966632239599626098693010894769974406089616194896584865667173637271926930619327646073486800640769361358062740400032965625307835926919007412380756875282859801567434532459944989136864910212432913006913791653704568441603031557464683343280814862915507629837749676754274140393067132595316459712640150235968406691301254324720824032241411290724410933645686449041314100745234155736630835887710424633846943778944282309035535879001410356017813371378521230316960033636747553565333763646365861334951735523863788639657070276518479776756760201176564402270731737640237869246172392970800743826979451408643778192867929735649475027852405081239815749630440024659645308769456134974061729501587419012713840320846187647600038423407416650822455985731858009098603924232396694723585198530777184960167157503324201120577488239967135653499502694761769360474351761434878647330085573436441211627830473556394216281412775601468049267622223749607329304779750997791097219177514478924624958088283341447108873282920592325995382111360292728315282964193914111214523894274065204348165956074884275368111253015162555012437822655481822244479364690964514731001928104810984387651186323890929749956605650046177903600133045940156270528566997503325684338802848287828138506241950743865092593383071980580130612637804595626561243785085961893716664498988649960678664765775595918239813836766623744489999803367584794963701543849535061977226467139712920510713225519396818012856818286769221846517911880664166464046981324116959101374289800190542377130444360603995441712341753562814753939501816161207905469080696236376830876622636805346456160445295770736571414290503567459773843313161494549190586734913025705461267879528186350974378962938887739127466317117979788307273877918062611192799440480244236362087744825448398815126726112783401566690348858990861864990387930592187770787013601985483337939412016751990039778971403011872874828594369334561974808899975725738972840752833905494714039261616991012019036575716980459159938769516738104069174546602625854210198411478995949212272642887919377713897567017922449062274591092917410062896375940403371267493895801497789675947097803197333702140319311473510997613873352914788640153508152546881691166535491704551385853042177733793618353181207438928262614210178812783145968272132549627777836523922011615734703096270352218494192103192415223966734886442178456557750528118388087494192286603097852731894333468617239613775434352693445794648779915258235062855860899701332541167549271136609960334166540997494577821908151116745579161699931561330307662677536947643902981031010096778300689289624983232784815098007509933301057074369178666193653994686445581814469537771972581378538875481923966131051418773649774790072950513916675215829244160733892724621900983298857053500921783236845080640446288315115899695640483360459145254796593012314257413008291116710179601318889655844330454936391456143217490378042081813717631660588438352297011972856166168220342787824469615749865811872900157094561945162996679001664636181749110621521381750471082771783711182429568165403556042020422198335521666407233675662759422108049865098381806313242739949190592014840811074668728448127511884697143376328128364957410941330699540582521994378567497952857124548591815382815855414702250999915550012396233787119067148812469749042322737230774848087882264767319838016346716511376742118372817425199406224534509288211830614847337519336292396637269888267190695821930474560969750207500515620334828123955897502839791269759205266937535579465512627934855994299217534245605529767225016284627769367228663105251528573544629241143724164450100871349527547186091107093947864469985442290575497471580204924577959530321535776967726589324024075294026427713808358843330747306806317580864592217771246966325828371602861095199826350911100390476988477368503067451958073145218757219741439578331770479025659323268910449822663137290828536093519059773630645737840866114719768938577598773475997584817367194527924858036057146613055979355312107067765517460381967695536733126791119558935146162272972929539051190868833012317219470051399608393033953644099043605919443480886329558324272267562263456074199984462253631939880800111079644544751130000365712785657624816981262363301430915835157832210550048951893341047635834547888884598067953178788391317259422480635387011581841362000139045089965240276936117757977066404051288676897286369797070963090453368859119200471675815901985030080132916736404221176913993799557648545840024248377859083994778342463226520766952225878708956279524847106976002953668727312758682116591197285283351000318008245963882897865678798417968859821809275719649504071093569012455681074745238882220013876483335305128115232615997248084664445431238974544667029149641454389786774645664870949573320905892824495495562268533799648291974122577805575725047906558735301694854839781045793726565159563946836365606045077846553868546830785858850927972967874493535197070993282187214292408892263184399506206287189722846018780401974947094317076639598624393374231414102726744434087707716879338134298892535727573375076911228265371093385506830606162583567754493720131458839838934839739798646923789882793744007269457164568549593271154264662363685870876801500677234770255325120884944511202020792805551926420168939719668123935690756165032488824011912349191682374195884936910706530740343878155141150708564529505760756937857670528735178813676638590651303641785923004927580127521863663891036180547079864325394204370472775579616461818493058119432548118992965534197359248748713155023551162476912663412180749578633155452303331041404455969643477706764284551936319650848824410218144160617910742900464360836492101139596617506825945433598767647609377408275759550399433487071811902255497498393242224065694186014626835078477338907284869818580229465472938443243414375752577514482581327656564013539201152130021262984754103221477657343738242526553787045372105890479034305708763973801046363503932267859238706094069509496942472286165951748593905324103166904812555871072320396274598971231185742468382860020752074849076614496237494466608720709643682843450353211002962139843972667588331564710131673083316189007809643986597654525997986383281995185914043494229973893956657121602655128252764886910427771878581098873802662181304178678580984947835769692039039951922853530577512522621383764972672821693599817470850619865017838845964773471435571885679287210598380788755008438600585754509265609459895186618237220318762477510752084330412567812812123450914583519891402255502860936744897853283268401238993540675145828429192778778921140044183165428249028207681536011611582394076877995959038415807048499284860916456273896448447649161311988830543605179810619238949796841387178196069344859730356848714267728822324752192686775860672632677648984603832092743336950899514535231240605638951811974742184382408135061968080944487246752309752820957598009184750612170055813389317577039581704454210860628807215480033876046926002878549525957328353081498180157102937814210583929981008141960907827492650494230622164933927057099223302674856558535657240624226284274480953336023950892767295632234897584186911719016222783207666047374379171581388908921885649015441728961592389523016294082657266784912450768598851581856324573430442343408961456132755621585261320257097307064702108034480459626255122429385040840562921520303334324983556140005958677592052679551984858127012309947992384342342890757166354876353561228792221388581571208863791091880537737240732236057426355456866403136565216261620315717399364735272046144132690999254778228185809161261823722504145881961907957416315065749178768605558855198406341387037858849659487159966310548339658462598391646964635808263140940406251282977771584338893519583407883074397911994870792942930315221948246199214975925870594553465723910862640088809094562979519167192358774772862056582216116750044372554149279400843485344158230346205977854387328606634876334867037950739260314995286062388671402312705065661087615788923568909058912310206794702806974810273836302228989634976202874261554413419450498466534258360146391594153464903061109090305296012451095116071724094284348030691245216719692542110576447372996283974215893753301217411633434233223785201003259336592486877942257845406332693886770111382558673741372801363181801500344139289321732932320959772632291401293859281770313026387654337535513181421434718855128627023712826340907048093430301258408913217117538336692180365082830184165543856352724277738915851216080998264271178615482182731884433852829979966988640663275763183969660945820356956379070489388298154583294816868320897460475857973271418265716571136968600433199865222067560560128233655129303847298615475610027038419566563717729676981899674273793206169356780784317731025788663082465816932606058537148507073507235089351052829661754579517762760962269266433336730998884311300121152486992546840026354798177717311744687000050315072174266655072342620479344566562680925079939445303363478071190168173690083333162771423766216602572951364772576433739331072605435469119773722860456789621140750149360205841018443562155799037960834758852740735677143172501029547512059005935131775816130101748701357865370621396240674912920400297675996606654112726747337341953175387967374378822693721279063717419254809493973825474820673602291349769586360568275091588976492331131695849616432097283462302451266181835134521482627582757032747055246900078114267537298363441956848780404136465913685985860670809238722872422006249019914624487377978750289744384587725026692960704982341407755038852789368305894100147200845801123098113154069133613978167630285431240277625695508848122524669461770405252908141550734071135700175245928831163110203207446344132869408692033016032989007611080943643875962802630076927110634912573566867058377099522631546243223961033451873220926605392244993569769083119408602927292883397063945016739237876728723187392880943041691686906067624288627938534238732410436726822016178102307723358147216825993191077332363344442164489918517925604624776504678749030218650413875790905396214300083751845049553715888248818842640473322161244604036352584323015056269994867487570897310241945440880664094086342038624392115353564718383589512135241618042275658746413093769510719925745385550840405933796487349817678041302088062635332216937835742572751504950101646869730570740322757259241898430149437033534807789749391331722865126086311918505584441292931650360691966387439075722782606999857373547862115935819822550538543037768814897107942630041445621070671759441146265584871058356596618733198913939071116668808462854757725774984361404059370786179658916368689107886666150871622640476599887292939805474453248192103053625639383850834280087743049200846040833451890526944607890016808039204231766145212441699780989193280918678093878588087438662855033562629842872261122782746287410100823509399855550205672884155534822647538987583811848071874244496378444289991803030194984915833324185356928652028074023227993539764108739915523571280478279828245940582538470505784027455004296020601915868654624686320440931835422178304257096990219021419672622711012908002216811585265366966880297351299791085148433121474792009692067200123762710133273385553662178790921788349033716873762585668906921064895272315467417240997755548770081464315286776890664209553585680362960755761929607581990868625091852340873940992135204716409360866817353669930746281142504301245190327708219451501134032296979309516904785533923957645039676338046661377657740435904620732612712435764274026401236608014736993183564125014048538986289254729767583115396088782445291757864966522461655025346657516476366712039834659500246389637697786955214479309927480078599022111970360507381952699522195264479961857983383241910427984294591935032177499047365299072672029260806285462265748469241371814949891785512536841636184071680770845235887014339800358272781133494909406357734987204419805200724817683664565268438061713373244220161237049438413706261693313143141011504937162758718220122484264966049700006985082251336956582280776393518373820469869334355149695708956508593172796374060089646565437413132602473790503964697388537450809182680216803333195695090364101078466940833995241789015032760272297235529249848894993670167086784156076140657218462537918617948046629039443667321475617929684317645481806466573866272259683495845531225098655723279243443522514458771049674175584774909011614300418688424673100808979708384157642098312263878593354426871713631157961487158567494550289578479036515660147549530753358449478400028667503627550051871566886883565437982802564860637977909365618347319227688233062794447413744142917897920378633502298636775343274570603975292737999636200040863827534235827482895391827041658458447790950919600188273366401103278179512482145541119900327739662542354843980763145686167141138989443912626228087511317729569055049277242595718083107506668392067088457076676726125938694345961297421156982332890449453642753133060616581703701897591800022321500759910918116663721877957164989267588368992695188618242982586943180647136594027533914771158708215826494655929437283026063506808421611836041157480035520346067892533834794076173157475757110219824182341312640276665429779547278547361388508401982922059043227796865013496636842086211336696846313417137494295104654866808351498988566443404920125396262627895683743504924889143684734315136881735849591625442706018931078602326200129228803783865974669154851350998852649855439836219116488636193815587296553227085140268188155245105927933546747277968430838741362307319905624580717912804553618793719286674092786836333049990092976919560314760587902576111800165815988536873871101076421156440477242279431375370798195960348602934261332780380598854485833264211155100607062088880374890181427492494760183665655115536835224057254288238814431088371924308558189699228113188481020221911537211972108439451156859020422964365341497359143123051704933867924620428154969517751709869698907852135181122166401542345167407527663884409667709254550609179081686574594261519783414818206406370219226002431287106378906758514800644742839630026578905723380758229937039884895915785441708781530808742435185973792767125522516824857356237496051990022697747750716014009964270775720213157143785336356937832292431149022612810864692524682890035657641211407955158825394561611391068910619817288426304783446059440558636444410805362080974519161898165865542178366467245142594889396844667235617080827631794814296994609507184295406937087104534692460130136755810720842884821637566946766821993653761608385905444627831890165292916657488701752427642085637447660530502769014683847070114869416921216917290660928499215446376107856463860447183432483621740176510303990907016059117567793914310971474961499867620132443528873748010726447794045368546597857657493519609292074672622916441349590884117628949323809300081897619495044765503954376098092149582534657280357953008445953240862224292097286145376072516606026512561675495269056979850651873204714708018973574710687259061944650585260740681202992133757139879743569686623441464279325887255578478484122180048455940768920556558241817903810245987865256696400992327349118501407300005500355830147621978326665278441066607477447198899135363738327779006424932384391895662854186425819048335547691259098374239785563216004207379919036170487062334457927428096385306352931044303383579143899718525511853957866903608934077037458218151886032443082570808095656576677268216684603023046072710022201557634952910585346064853814319815478139680403406160826290245536463870882815678687830016661918074674761215578757834320564267538987887538256388555837516525749703345622296715058757756829318965750591787861642254323068720714200296652625143245246012939367854350875965379470847713594473121055417893931614896322471128730325555324906735723236901608559467436716357546519298342141580057635793352001885780182152127778388154907355030639905271537908773329598473713086584161562363828037772097463640557763110668985228787529681688160178188011638771405072553704741209290896271014835070395559352020876401020806318832157396456924924359344723526048784832115644815672265267535696763756676202174229353152881926422841865955307672642828709810969246521432369896614100901066749448638715631344461561313243853296457226067725482532895890290022099828382946266631962804407584834898173041852027446869106466818441735489482668056548902838055229618845476975597068297193936057133180358926372822646574354265655875944671941072423658348628207846050132186284777622054555891720512906845213580255597908246839719652625248658087162438371771753269386457375564057451308297683229853121632377819078070023707996409410613307124059979341567574331859114798382786713395714573999292239733383024438006076275186809337152507973623993530023583046681818296454178582947653114796178745456484643904213650264968154506545869777104239602572033013075973472984232587820078329809585275004292590523357154154018162753383290828534819369614149096702216889534005630131370176992770389294462996190191691808288815465633074217825333104989090622683070321047684241301553668957527409470653353566447142226510018540468014910915951556234081789324812777248373842817125123412733523853202297771403563347885301090421305717665007343984038170720700912280639418353506169795530319427630432617954384004559262013158511212464961970698702622654803421836652581148582797199982671936055304025879244811759152402745436689671183265483007303165663014946819811636595703947910383258223604309480553186302344246961513085776191915946888656223105546057368290403196203285957476174122449212978694579310727622802845898118556777745238931010696932924443868648904415434589041454321951486974771989262804401330474878412696275071791552931312417220425565582054051153026543200565878069545732474076755383013389528050961388453960711512853023716744839570583782549460848435037221095467976304667776326696968714049581425028618881321715456154416649952307413652520016067947503811258600288495900853349162565319589503637780028556146403760604570610811460767715235615802269074727715345580133979131039078084504006551962220657848375850435095640398058004140071557001261125416968690501319343733772803940116732082541071716171478963763136741089678188439014223723470798362148376471025166657868419435713593328595238213529718670413576010312067945847655958356150055963950473536587229675633686006773031638564953787217535990533437516845142324391084076615480594861838302360902059324310952901380468400121818450235018809549189969203600793765965569593776239259329175148994053387115848744835890647903551066294113752064357044813480621906768050440661737177217809217436538707912915854354419209990756869319660506292345967174671530503939431176389707509351355115740246001462833065750255050234239288330863323956127715470114259889716414686227768217217470316201271869312577711999741000163628513944856725187756457140490594262666729945085033895243387465375308889597483869109181050790568778762983952674862009106192999062789347000973877023406279199237181387473226658394527080449817480520287477438071480443135441135295040560233219151971539619319377085515034074683857522855848469184472526586837692471537320042158971225595275312497214682780518948896663326202130948143055577662901590454244868190805439862191214825374463084977298583931099812990808325011045300628726017031759910929354583779601263004826243688324511444452133144606597311296812566786779134487003198522610961206785885758934872869142902713498890291256743037933737784894117636694838121261331107274658273013568718579849885838101527061460627037604975747267484361071959615537169705826806232920144464343948471521505384221081754823514881014045355489005924768629524601353997929560911029953216950012342494071976677086906456183464892844206185887246867022289460938081102656430924406360550962212203759794270399355418745408818083488606873075947595621906217770987477761127508334587356129912049249866400676912969230051454052565856477881698227864515930294653658323970872383278790600338558156521270172746859235260576672326964643947878925575344953356498800582247923714956266849917744136549067449820800464977806491451387829249858453005923947013439858803591540361708360925686355885633548783733042674679071037399916912315178992242285751840338837960962389726225492392841413092951169291605459518712242365502340530813922195163042205069212143470865416472621133484138028045028637675596067526206570056857376621661204349242249747423413561017977271510405203087071400734727008745553819513336841121433350301053199408668729760475507839241145825563695523804609196987578154507106458542409888105410778924270858092592200596057349025099003281259468765240276762442356490130351474872083193780644584346756081840769382732982393136949048590550771384715131456173016750406916705728503858147051059925798105938577486292795546470520736354992195316043970889012572600179803740603053321638818910493734386559179902344464860749201486404528555579319829677316052022963486188420603484090128176977607915074365434012586343800029756542577159609903532720576241697709310893029043388900417414148267922758554157243708192121053645838101995784284039869704821052641627785061154682117816187770584988046469485294845248315946927971399936057979778190205101827685666858254569327232424645134062145835515566365682707775001534685451797350860582490074198441279087675650944124967695457579677924098590875956296749131800606390395219977020675312832312833443257408535156592902759355990309115315823602624466881747478102367737073169780920681415653532210602538048952612401247816418710055627971231293028183453794041077053301108052815053487816436992860145599061328100530399041780718717980869173945595292841476808409455151382878766730229871433075481757758114606878033904543631525103121233967544784249697627982151728038478636420342358191479218708694750554501825272786860844120626038289193592413521796538470995591428518359381890707819655015998989259148790719388917435482284363123032051594758776176783443934646732920120915110897127543396756794718261040137385147686254514837920408027271382338906401826304670431779760927924119960441028047557323810193927542692094844866071146918925726571812046556863107330618531331247182781566132817663721721906866432401446767219693867451382355855401513649404678088321557752723216478934561821832284211642288293783618522719269352618856725118288085361789983037795843833640748826062892612002423277868483318814108119485310039015826914870932137316075687460647889691382491656695188583200147573145896794062174485475562742555022162501463774524479413142141934581124965929654582777560535966441211616195964926545383883112347894057071593974116539874571242358665542110621267795368977569281958914181804918013762034574375507112174147084019593955006882869789821736523393651887026912773487619299599112726079085066034695768107028814930251365654484286626259628504825965246780131861724003408404018139219496284882254927584445132579292633311186684981105231814907626832452853018015656609244536467631127835670335529815321217993212206832590183893580799157461551103937695399086783234586057950966115879407449750961723483569617871508227765045626110040600125159602311872407588024726819909853719797319462795802973555299329316358651146831149596457247979985533488321121946139284897094202106909141812184851492331319908735742059465933083060745366390876672307898439651883385485102695509517033879929761386574451208792930595466210758897161545783686783825313290377319134528929056187870275770041875981624756195251942282410647293531742286623103928717678571708325239309140021299340461416949362454845622741329923292639315183083531258522537470285095003050758119436861868502418253659299595851537783961673728938620468398489186428797100367340540160781158598070941455707863522374197942687014925455964476379821957112146736801666856552732258748658491426804906431791920252423247901854336136750093808640753391020490239657942892107210967462298291265660767171373126728834804624477765063809065442176472695091319228339713912401503160299718885556842703871717113677793853258367961367161656479687941215173525422272851003646376185748424234292982619676840172216361088902499029467202094756826150784368546218671197924934426700929870758183196066858439370180678927755737018466225291216738105770494739311720985131166900126054500591638719324069947283544861713878630104253833696665475442484641298196953824720445196627486179073370921070237853716799113747970597181092360877929404535233090497497821070858891428956036039464896279849092637528178454929358682833788923153114825207048304228733629732868446969422036017246247565642915179329873095146982911705678919976109624850279142370024971486081921302674743116390561348265124182814560522827588909291727636838925044565705288867990225667869411613165675698683307067619609446671747829767820497520383257658719848081640142439290844341399252703257780582251312593640057205048469561706863836090105515320454837975267888626598417122844049117941021496439759836939657091637757524960102364720201915013851741753206465452958495898673417538968822253593934922679811685764275678935491888438171590472890784914410859902333745389587939136119447932600317443417224156699350230276715629047906386378254246835684579748980138467165806130920458651038444253613351659195009561741870236605090602763254746576714758241189308019610991577034663283354087424638555306890422981845365111077822283021841651007365694915010215595042017009934190568151375165087717640776317093203740536556127451727610765777650116920464815057725646379161040385833850337647236065243206352729123772754838811818252454025986862539072388619090164761327990155033386984760339154383081017586020364643228900512671888315271055603203976757382354510188101887618209599541589252364600110610779251588593212271471620312215064588949594669642423220310524428860232589359057047787947651164589061203980705378194113356544989419890520656993238913289046042125690689653088360504370771173217444648367094340926841751765084246053235388149036408390272787527991256488747257710114347929715933357209599597330617901421968507025613129381663204355615861921691491803191760080112361013159656174934002443681517715316565263805008285567521324301455712408080845534576275848964817297303154695899089708869057316521332827730881826655714188230035096265664044242849913799131126498033374858021423010641774397072329605597463093408915289630870697766647504135850795010265319134820948236380529419607935745431177566359299348981078718701351776240016382945145003570201732434622349904278153679454580006371040412948995507604271730739801081129514049503795121668645860276655367118832102845694645510566437640291590941369055322528104072233327057433856311086539379506977076941320880052767789016340301245095731067457907364125061006435532869741541797172737870793299524007594518813761561023813825975584433909325523270590499700704322866836502955405550399636128584177606996234005758442014439596263388504698960433268709019287888068913212574915245026250461759775119302923339316970695793837528968184378768420452841285554240941911688603937639728618145570447909724092846671128441201785477569312490808642741830141704954381911776395512874480195396844389461918219098368802878972583405098753587936225223487875119469818959330564391317249457070859184325490987243811053211881469045611892474731046702904675389108718488202696653081464818585797660842542860454709431691070816973930461503956975133291179186339897474378334523817761570532992765493846272953581853941530154239329381691081186275084029588182853757520502469551126015839805069071473121980813441824619434327553823740903009430190353573587774577549515627364426937639323018590033525737064748660256354583988638987820817883813920185043867405523203833172387432145664459788179355236451036723625821886053387757689465043478358182991350592266113413032342079811748893151851301422199993575138092234570501965144170102147309414792312245636901834552907756783087701114660262262136607764032417616110422429367365233274781398734794205671868897968147021148445568996315751797445546480764495061686234480755121579837041274618857321983980738961273853005528696787697950559981803679913616271332033660684166238519334844066811871383300498104237620142399181401421267156344979404426587944916652331981557022015939957470876585417047204295742815735135754947338064986590485153189262308176934048738151083956482731654192329273155588783649016088227278546700260674966942760249203391171463525313795183275943476162413965713651093025442802609580450301516374436917316222597987812811682122672561663305634068324523810541746362269061488571569802303744450761728418844140703797864825901297302429829507651493495653361237571428251309085923255439255785701326611853728867271822674036495395691513381449061026111586672659667334207567761182036431651102491123356433073256874503559700476894292813335415554282648307616855255417057725401236220001320276815974636661745118531758848670995155371785773185811034260290898048731436855636394953602536738003420457176182844257546521496312325297352224720057069693008575286856690106479728906071311620929345545550857535058755806698752112589372385446307305377548091556438497033067625127566034574699136344290818948197446616133154945494938804185317141699686525857117960065473763905736790147196936965182815280317617577678107419928091834637569683174347477190415174226348106807254665354990953457946222143814070673180784817333632996164814044994997295739074551113010639880157853447788168832257118061609585796485899640401188064638237124484200463725020388690919654097930713060784772730973850722598886474974908624679502206280255438084741163909902507951243485607916953867890841816857880493754592858537865881581553209530318782354304934750905094723222767024369019515342848411141039198431005543251521407232020706848614586417861324209505811213394313366511123765526599052339176493455762776927719710689322344515052501414121923006388489535507608524183058365538967092600221067729312051217538581651166015504999372697220281445067369790889164660415874595812539997953338847593129009900473660073915127359766702936464388292063076735196248620803503274474036563607056989019315993446421655442133379544529297486233816981015676078910122975177080840260756484369627787366548665351026795290626679631597564227081469502944795613495886651318238617378495433055644460587061478172249551859558604689589527835970568761823398935305377526775459597929713721620074607684043663094037680521945962273336312784206883303410808981043929476600290889005131287448271830432911174307162177963248145250470352500045474577986738791294260112455102286495819331920880360949158261013240400962825929322008630306766853854613975290403014962400707847106836233334521962695933506098788704212129962300811696764948826870336249771354757670528683686951247827751084328133529095521117389944513705987951119217334853798740771660694174197947872117324103735545372997282049212731449991024210236468322057023697223575115602180305719219039158861568946572643986531276892038948441588820923584908254426774186620106456763645595801109427719029862870541014628120472562219661378579996138347402657435683732420097224212579365071785467663082904336500224086450721824682541767011345363793989116862527968158792717004072820275309018596352935110710683543648267017750378877470389545452549208452188019079795613287032507483828114415969051441691189890178914972875387313156136144124298327283428130906912060564753052411674123645673858844386718239841135700938415544402607397793488422744608051293002884347378090756347375059125074094987791524121407132810174389058817381608131604940557073243303829106439598647706809791858506341003640901631402182111297827530846996752655453108547604185299477601946806447780351180809247327340090429478640370353596985806693460806750220339134265385457542919987067799871166453998528550676895719803703422450110309892299880152753534301449331689482448869631067415530684905348924753084429809529919450495072527200511164300003814514230730550049880837051859464638667044432318261496410674838678186048970265554628481994157504566294327413197243291023416166435474369284799446463948127537772257182426988193065021545089659666614706057647514375399733201544181398711106244212491293654320484770132244990527505570459630774972103884588008680272771577296621228498407954776568110481832868455620983188084078842874851044141362902608046329027398941362870878071010490462385707362646754789399089864701981844609614199011841241866215654368869299965926367334903453734128218242049354619371882331801532133364513431286905592329829049737911082630202416185381167211367567781632084993097090940317995828785373859060956925958220896477048152727119445303770644547510159031193759599034286510001288341245128927466338360522743070632281707475081056039230132669440642827414245405762073073644371893695453598334287526633230423809434205787110849865665972594815376988083548131885418341703301448939289520862875809371081285117340025492291633339338868881169016805280849695146098493177474821190454805753783903865604223626540471121631110864726594000022771451933487948380639999684633106082940379999682651334966381342723450770242049664644071011250321187807072264802944659551150421374998785051546826301610527161617069915243586798720135961563230876291292958999127386250937659480796151760524758866649893840501536276284168050263412175701556071402027667989188771730445423802995889605448800309695069481788854471971460609773313590040253989643000349010343902241300717508068135010229300116290597938450548180243933420533259108066617810040863587377849472040011562187109862788915917251933075898531771380643985903512388182249547614193407776933067045851745261860202699196552619317950853745062135440786454109598456084721018927669346272545815564134592085482421685576605006135344898255347180886048259258913103319810685650866452158260004230825463739232733792135689283353395973583227928388909383887448974460930820937051405055679065876488497108912452845150519336926205747602340544955101721097503012854981901116152592986134438133196525124420930536625826121006218717715247897408384713976044598476622901157438352247981815006953108944782616154024014663915881021958332889939197900196701895032763616618685817590059688143359857358871804319156610932162474508234550051708401469840406525116265421783477184811063572932059278714467952152231325427238498682691179196482822306470749508545735474985543412045941205448606882433305062660046047304001629932918101072838678200430481910789980769432334163797117139261440346543027581842422059771443712660422731941479111389549422031824319740118342913632449635070770147609961926468759950424849495959860199914986808041038193057438579903620386599990698522903558477088595195639688686231641916406757066089674081319351066590226216500290292248421588719462871847057895869451744557744975288477435308672168928682018425583599152593912215115047359307682984732462824365286679956815167275303198571773998043924688571478591904040457698049499441418659835489948967952551580691568677002511839024373873684629546444096142970086624386476660817778902181952420905681437301724552023088681585539311861182201918622435357592795327765416412123594225287852061408714965625068097213753203228387083143358610402542964819941326113251763093027168446291336299575190334396801252534056317874508807155354756584134748619670355266076724257680778703262746236012430382820939894175599206392701297568915698940926246085214548720171157246942373746625283003114931797473150248687247435796655335790833639740498091570482517106048771184286661847704803101035312446454368016673586055391499744828524377224398774105766400449849619080752248872211369916869328259550345247987312481993177554997291493294577126029396001260300552719750668445127637984673752212612490016525080565667724613195428950881124668391153989119041378101077129035774354004124885045343563260356490365655010247409344070102327022591395413759135695901937198391900765499192815758909786342357694504007405945076111156439001559527229422614133216255861404860792104345552006229273495907056535022049187810795407306112923165800123476626767547364735440765812240438207240217611875814148317393995330305710663715587968410547339356618744809904900156411172848546840725494677834114267013896369971806701550008671657018148229861422970313325190611073522088735072251109878739027440927906243912402020474608520758739796629026156170632660243381568815415516262071221165072984063677329345181096759059858467995946179741103518712856206900660259536794511475308492277744257628075112348420677190824526164122539395819459149647266232210205515886711020619711694240496444109102419562870756656080416960326219750656632075879380398852280544408909370322588039883542689327125376451884434955180862326394310508496527184895661478573242464479128744451328981401758070758126988732162816355282239954915127306295051680224770929933096229815305714162670868844073264329436337850912828696159051067324113793598229008061251953570145757769292416726752410780130597097207420475015443168649030955159046866230310880248353442922122458769791823000946583577562779397881796966136492729667092656020890516477729948097526397947756765184707006502350726213704429686741897602770136105367513851888124063262494804229943551119696973593860671045793907526184336283392214595867399433813477492237138982345048313949522921903455533083254658780130495955967342612146190775386918940389856173868319223379852859383003468081762009761388744034951887508786402665263414366042057690083982252961717849437370133857464511877772737707628319544230859999844099573854952760984308117579734989037681941700838422416770213105923838885794547118292442390596206029345233221574495351577080350236003935551770754154597600877949861321624074254363752468495619587502374241198602252837369951999308490659837886290438729222261696545698895727881798769192611927066296290868311086617310167234999896236289621282759607673628325282143065175180711452143744190513850944432288930611341709372754574602498583398030905805495227665370574380044651367331826718781848425533920695119550564802715000601502505361282412146063837626957003798181960562787907023845629581257749189181314467067206867505990768332396452364284199388539855332294319166782018609545931467543252422512772702196924787364155220909340821626483559997980087840454692517347410820473944395899690975461328547192908286607465899137824083669048187687326483618265376962673377124566092616849883717775642607027215204296026815887301986070315301253733132277007277161725870112009708977960777541420198763463695275470457022898350406346716275450264446388758053584769053465781956393978731754637454421085318879071011296311167119686495734550391828675297150389325497479088891508223265077096553270997988197423238355749489682990004658589463433981399517491986215560210574231824811542641725188188785299226501763923506459560822782432754541887567178498068477043256066208200692800775763313355935926142021621906516821229807967087597908706003259706892358256351878885789702501593925361420258197483635343320567062227396646446252717827743317006656665184391158131137148777270655995151469592205376464623036504664829333532253545197217207523955220855087130776260639378485396506883810791644576452781794258615139382484814884132069100151094005272972453885269942975356668819818451887940878923354230912191661510983208233940382934140593207901526781260625049377447902075598833327348005254159687040472075797622307386674511356703528482569517192261781750924601678221539450297552788655184748205463578719017087555938146842551240541936650411172575457013958728565584015659949787468731075072827616057285856728748931428647319223732935309835044998913670915860963789947636193461861625384069847245726953746697071948454105709435592579635384967548868293965007745671638456239922867525113700496832422449313704294521193554693680478727733165351180820790804816960595715244252295256103646054520551685320973453793759113507423013165736148894592105466052684141470372661145941717744426123225567747495364534374875696352522085174782511209988087908496468475783555954601062056188728266954482126943195117168761522350720152887954218294630537271160312472789433626237996359603887878933583091312253762061508666458826069813289113727582858472853093490651502793304948414115965486110671654113838519310378531843932780514885405951774860932428383992734042627527769827810984963378519108932459334871783320279215938546343352550543751007394656744380136490630608820758942056591905361834543916170114424343598325385314018031668936073289065036429840971846685550536919349802045990017815504538450882946417782098311835147846553821478564563848575281502784570668988145389408446407255188662162410434149546578358438185872583019666042232335323953066648265104587303351397605281602854909922503412049756966995901606430515625463155757047589969713162224034971541317640457964869908233040182006350460118478929167740891334258644903237703977084269838461433418699600077294457445265085145313614815431057879554135789743083341806205281544810801810691070623168783236260638013643137958756596930334505424628138129859575397366197446306174384215750418260822283767028311604037878715565831576732816542465709663714455220361958281058728839672937392504765910311788065758511526856677988926990646419369190548467662239721013240450132973341493183109477520179261899777903427538761584093440125381198626261210336433480995169616592734073695066427866879488567192731683329394621601741164924950132854002824515102101311852645183091296172466632355104928791680186264609741284762010103530583786818424402455874996562414279579368740187057642295814550116229792227908242984688847161896941648355400424869173295631608631410288489608587241497369128061163996141145779911828242615570517940825078449588266939475744011494585968277211123194904249283854681993581280695590753825437061638460475537364550056040000142268946160257681949857330685035677465301207999695594384761072320890346700017192936511421817377684353177834354315116246127262441967466586011396835878530360068929952820843664692715815546886086065492716997934182891689430714793492608236291965311539074131938845281285170875358260680019821188810142490296293654018019409131105989020589315928859973859767330872595907247464302074307345117196006607077112246561263052324579953104830163529446909897231329906603864581492703234478787619649858276240997478774320884366536307601112289622649457635262378513746555448474284005412358624543035645997769605373784700311159259695857571873238270089787987709299337835289610334375148355354411192062992700819129607097893442832256918392953509257158528354476805385364464906763123384689848008272762664290576759448581232536995909636859917239058537551908401358360651452451082660079006020774772383961923782558448648187764292242533032884365551903555669618051761316090915701506448472015044833694248572398685153013496724268485121476561822094033755570274947853994579667423120636084732171401054356291669364041315118572198658020162918289747319686572575424436333465995349185122408426823444446801929036272310222086443577487375226139426439526958796899117803658527682875322574055769071692770388717892675578952538220946052710062908711308651837961172071284637757279881709258470449983597354873817723838239998362201549953781776298616310639214828578555665087067408209090334904063224056097828002372201318626240817162546556397303320536496386081237486701930598374958632483172944241766642877259130274912638767995188110512817405503913140850322880091601427174151299255779738630761283095799109188487254620493149481554319636025226748834517439452653273943044353490609641285630384688449244552102131898099320811061110000847704894640460376188046971920807182090483095914346835934146945970610826085905127933909066049462074043222711609579497600769966275013871957906257630136246993120058745420908702041807384603580389155640625455923352950346348667845555339450663656331973061668446604719063900832025756904569535697586361290381457753164062730591534692432578459013204282570798031268120082906984471780673326343079841255664589489671793342798427404661897245244209514199217460116600174157392869218769818090724331665404038500164001343183142443073844818445376670180805347732644935076378752146361962517780657295987511384015671469322822871207300761104869258861668541945583545430776050525017396800873726395698371168143722636085042733327329655913780653285129175105485335247940471925718284236866101421526777744880143636037410026960221493789498042352140791646092241683060704800147933307822380753357800295343689427398496229214702204553096301182285728581524336062467150295108219340300319012371659415234839212081233728084756852007292398105764748323770687734079073206326538074466186878572115258273095147805757385939144594191576600642958205822086234628620861236439383829444121892974726673071041555730917993788152266261323326422227389965916972499987436003527849435206360586558709413497795734310408984659537460151537228187769027504078266513773949016447576498011696897237309170415878701071943271056135246486959982492393532647410225134879618876851077999171657699940841071152035419199465733572313326379637775945763086278546421537391048855974701098135634029018493087187211022491838109422383513866761804732695918709662069548961476352881058495433392875080316007671514304405614287090481100162022790147709290941598449995306621378793224793412110245771297358389107549970583452266575970308491265386901257022212928439960009891938466995718442502004610637225579693086791473140731904188097064534268277532311494154582616349973265771353518583215626985237296445412788106219458230190134742917582389757831975573155930605952502053899633471524357461120241636470174540326857406555522877039227634583243102300615800935154397620388406278452246314515960295269333416171554425882163321334750839752693254475056179143107267288652991458909532566873417479787498404383233116727768664976765596551896895946157319096595667522053578814876091166336161768844508267961429171691473582022323598714972119536894886537071198941928435008203745865748551454422112381570137921931457734796206988485455552918684659226890170170714986086894625598289359595585828072309191161009683870122119941745190120522247547491993053593582559885366972443229551409425720860761537254928660490612799259767129406003962352449861960598556631018022802762617869258774515808618776155554649861954997461972618828933246900361782395423335179581584013004644794238725700728479666103662529693970687579472186205086790281452851854337095416664620344323283870948897901362853006082469607617710422626754547482581190457963358635394518579699794723559715928810295181292346309366317112738164539828875363989306036911984929292740152303747048867963962887825985967473710302693423289998933166813606931981566151064415657687792238061184946263415304181298686033788584299364143635550925637569239875693560901702700920724601722816517345537210910759394108332274842088396261099176073757340216900841764568867181169335326937938629777625792932943638800455068027536260422424866120486567571498622267712348250283177995395350021469332197516301990686513461864231409622187965822339430787989300897745027562112902337105631300769755721474296907647122372526796300139795721681588638373912948099195080273022520735649795419284033076505727583029086337246704715299426557025297209547632113425140033277209271662639067176020424218785382456237436262630365402746542780817314850195587954013343991160189201272837905292100630943825470325018773957928792526350019650469297663691747173252102540701843188514144890239217333355593627842178611554524392313598314849981889530891895781485305982145147144324712136238135809888541775222509698547606364029404785551737158528559145343431076706938372301154407529124017851637098406803317326989844744419024736300092045102246933220297753903604047925153802888448560925527638994021541954732677742195939496400736566629243894218617013003615564472774258214277992160003029812227614989462554928660995227490895425410451893663867353039853675258701062248632245636886135757954813582673270325823942037018976136704045049645735922085361977931840739619876622403209581993713612418850275124954244159732051126804590629246298882746865658036368510638152053388481731306262215387912441294225473544222730087486609637813532650781694178863069417590771592367619314498195792200487018130147918863773883453714747976765178983785966877355687117888126768346321585887828157147253843698461287573947949085801314131463376026761062697763753469700070552121363746313460071607486563429077997075331232394973285004321780642662602114696879927192561881711799982866089944860109834718336987443229964352874147269977539718095030961011387891352274653782058599252358028636762508812887109255763751005876290594661447383273405687275662476986423178135483109001299560178078815414200367168969774396488841317714551938013424138516369269602787489434828584378816696548182718697093541333580846593507814092234602064546531443679148998933624751471112521943408056964817482252350955728012995790577113768874006394478203616862152907561632052176090803977559725059567830493363616899224848683059444591992995486971164260524851121683313173928606496775086083416888972995542035607109994771019217331529348174069245463121657959060547317340479168038093909872874836553802942732224061619157845601385304873729628666322305381606279516561476178788566667783335044283423819384046754085975138542436994122111685572703355582375067760315009687812789800444443066483190073320102984661070393500744202941228833883335671597969557302590071261102996882236373491353237808330857976985886663168067770943427142292428367014435145406485468602049899467894422414379129610610836943127136324555528454921665488746918339568364823707171068291761630531343574457032151225740911907425633724018951001783296324727435253003515794694484208927265957275963661636405895451972549550175647330883523985498400495007716344048269230870365792296512374064285471657522993805938488321230138072398717722009296934535923393526345536108855846787960611362986708990589846725034122652060890903465940779642543627498336666424250611668929851880088083508415850767793241585873641576864032091077359347490475524892375416098035827418350973402561087013991825106597039226806659672573279566326191989467451138588543939586451442217272977581821200629717338176307802446916923865917371868359701801987640783828281418937393110780947816558837483947058599888782315634160483342471638629472137904166395693188364568287035743990021288238563286777864408131582111645459523518939001982405386559089565159294617890652613457222207412291827736093734500644864579883991626346026580448132734824605054365165229692666152130547848481606288643458830570021569655386156371164427259492829064722107669413600939264372688405719769549242783808089996259198252879940067067416583943156867804041724018221668428358731745924526352302466944700160737103845625119364440395753051932965256862919332332041477110143159845673241623178799798134767366813059596519048283987299928967291459975585226965636940906807036679829046740687857135544026024898797325241471265630041271435489447864098765336167337542700025411473780398183216406224596583022653524505247092230625487160940022233968960064546447592527288742133518877845014520438005521568429813690279323319095005496831318100971613396737549261699427425952004895778312026752507079673951258663577215929675045646917036797681392684218439671733986116617416356971204114480309652824164546624197920897758960620543853825278632571267618963552677499780784842801962495138245830036860200941174692860947544860320662605300360436045654375998983319131052450012896125596589558764823890142455808322141059569320678481416426981681431170292774159616069811134581834646866902130344661566936007298549277623561230119539304585437925891499703568111650802233322559081957665536125858942678128489110342097602814545475030602474460260250961636090642588632279859679187216814518810161898358770425119486273009187071778359588557698501894717931177762850201493143104946772558373375287948492999025057999471864112827399220139782166560625959219041645685898181576664292998898402516308565912740558735248869132921584458915545791793439550228722159849966306393920005478126257165226375350417946220313598377833037759239175054023936505624391152758812175746041529635935100833067666264916595901325531382110517113733448444742988367137220281878194835484981968241463339369347534559519831052401801923186823320230513461276045387752028497994418120415388901753464148329639879939548848398945521312265545743185292038865744030280162756239095006546402265608806578353385165457863084194324890972912852388464904244332806025407298067362436878086800354755476092553230346290499823960256557423608878605235921568633954216431299821892002310423649998388386570569050116858351146073148471297239427754487398004755341301423779748793079439324366920216835475715684749794544779726073755943988528770513120118683228002415221540434232912731958867731371881888999193118691079263473808291508600848851983769033433934667057985704724204308860287760152124006892210087207001605801477034923069231716446164175399747679797270393884891342177771818824293101707011212961438552049008869176839483281377132244014337061872590336738140489681944741186954856616299374726290816298358692614239196355837949470002937675000138208744910010092203000823100632519230666647516431260272566276302175211186629359784877906091823159473329381408284201205613743653153766501310026537669246328804800445612253317722219286340291021443316418274718097794506628708300991180168681949360629644038818044004582731979512392981859472284853951092127333916717681113666076282096255916537486265013792236085016973253387254679422298897735168273298197249204253530593528784949224874013231820657365410190284896250818836068476631536521128697515611430475912676535323996926321441656687799191678328595112620734768219161260448391917827155732624424520614380636695817329391925810732387153550739312195728601297797150265494221798462885012244900033007558330524996887230310538520756473316733964475152366967038354110628289647716555486860819217840883696963602852708414946663576113111770112857096383632024090578252804376158449401979467363766723744596504113349743577392877130281080366371979170685229591084941708796665719764374519354688749508938636859409728694767641101001888728116419553522728780158559122726710075934003934249628240916224293681350595962027974501565554469715738934323329084283402998030859838008247175578721462403969330504650220764016937304707794661489111543791556471574595834506306213958195724383730889857187823277543413302199266541300575294233505792439475226925233532040368293163656835946049433553916367682943695532077038523000495448638165753637140134150278304220360946286424197173403365723642276124079974265489428361610800396700124082074572513174235338360469954791607783032869511001674465945772763467680396554253423275025458131063622953705094247519879426368494282910229444781046975994117512345491002737143021377893818821524451671861772938095427451437400281347779885677551218831014981685051165257893198111662465165363891698650995151031056475034385638779066995825516510939983141909025209562120161149973407194689336194167709131964312404386057979301467200951283384498265951568510059838659887834459924464075759955013111216706138206252977379824561346084851437198572712776805873505263020964676290676553071086025023313517622720436560369589166930197925025020786078113732650214642255242438952981493284878132237779567450966229130361504961697173267615305731227719486968991904476196819038103372232876530067117755408138730240713252091496040911962773431757030398342157690282517326233819372142616834862471403810104624664045750622192137534666250602076372063109906253865772431008406215683110552638704295836459510466482394235132321577416185711297800275454037869483135593692775610427155542971352714563820266390663679910289457456519354488923943582862418314889372870678556183707427349148045141625995508805252135970363097318628619883146892285970607264400779261875291670562037345504482283475333375686179657323115008581997252162413230565937224606256255672401826398925368541016545112125847619396546545728816393877904131888736157555487692952687947254727027273501034464293329509198592047674110587125827112179088208951594150375578459146901747084250591536042108457721309225849450813544407961248522496704263066656150544257978546218006318740280896735652946833154968084589168784664269258438247261699557733858783229810610907535239401473524364842425048618070232207911977676719146809277481989369544019529498828713877468876340600682734853225146415190987768616558684989872034759992561975817439261021207690009733877906469185255619370678256668284165041935793557841341784786732645285823787552126288307169227533243296767681763972914018363329871364380883107630532732696427432218608500749862518949850290201894562052661117864338559816281053269334746660301985334282895138850275161185182876625954792881107340919477692066314082156006515241019050823694948740428245200855399752384216563496389963099330499776234268873485398528209239946794466903685865272363255900254316688297476386652708395576327876688628090403760397515612166213598830563812096759178555991517100634364628796499936780298930032228900035347957418661589386041923629221006767008469572578079132241583629162740895873444732553382767613063651541290859797190846629969207271711569250567089694336035426266425671398281910889646929017434318086527087013735946969172374308394103102410383680755746300623260869491646864082905793927043753195208713516938327643497501643553976591469632182345696170719495861294666063332359353469136692514814052731374281970482991102797861314831823040745180291361982808807237457231507851333949599714643797785569348830092374734142416084868574015562008629503928305548766236093086705477205544882656587423927227823148412285185861280147343475508599701431390351543197085283494658317971770886481582813764627953758130547502168584332796255145574545917912811990786187000999801389423488680048942073334040317520701910545657876440487530192761839221655232472286872848007814703093631306670510383884278013441822168508189486878830645612892611035900635801903708630498774548634217583400149186479779572709312601733068280679497551894197818317586912721008593510867638212121830194820659985053596577542160590232494590534941188214705069173375836260965744766939790789632672498448987612462676722945605802291714995185985892188845905881343241095789765980392529650861673489599405575900061310798213025135555576853578337246923261923099724994218616630245641638013887292223398756160203692263468456866961071846634666341658460157394727209324726172743057655421668482547150209902263881023991864650525418486540744418450751777651823695370480577693308623887156251444831724585554476921886959495580115725291017716516255902558207174774278231478628774874821052435116333986853777804419717474250654630936714268246085474781700186002013659223726550707991090113972295849468526160053549625346697773934746158503043963331309204126020219862002049024238528305826723378903271444870215327690541780486241152605113225000493351874861728608977924286109655626974233591609933356856580112713055596920486151014741990975674527270718215609399574471070472087980828631494724328313486000035061824385545323037800389756844420983518160249650914636691266417281272619394450243903892660238156051917742364914601009698260788397168209951783978773717491193484494839862129421014775426290868581257100689426772899328996582313368958776115161105933055875266551389351369620703072031636924688531307605662115943894035441487970327112174377673629754453501471228071910970533831439563547361928537101354748844208101166025122616866834432972645556761863204680658692698941287580071405338277481459350842100528947637251018493762273964681567331152881573113001811358337245002234341989608214921251526554674015646777167539450091565296073011527730218597416837706402581645858285369264348497082509703683652779194233915926352908792637506635086847101610497790050489301784349444555302173514622585222697627722920052749922930746275445263518355571883249311361584855476583671063928374720587923524253842874551857848756230009024270457931082620083914303656793251589494560338211989663903451900839940237395604960099967057629446725120688990605927300054484811302420056345664996549607212732726329539014769003782340450642305443800273822140751540194880595170316590207864623715355378151274416282292693847942066754071229729271001612521811715739717300281592517633809284084307150001572359251845832547035884526034266454976377890511755987084602448662999895298180898608093505216183081691400558501397155871927329745673860924085694012115345825231945248593315895607936684622313308835250636913180610353681524993181344511987027758163314124709816892258111923669744977623202593415685704567608495146775288938155417012078411696069572918792968957352808272344449688071966181263101087410077078073368153326497906226452822620449111778878654510673172991660000132014199241630202319439214134764587514749883335432157318567841861558502645909658548932691986313903198698758704384422308730155066886522253391094611379849990278784974504422188721031445254314924939388293952406015338657514904693420948202288599993442362403435957364002517456231485129076803056789301827878115424876711863585248716256612801208276395088302144605745987923379997923261463459267826460561747295671366543400012367913112822409881326907672729969055067016312335557761627475667333309985306709608223068813412248639168944745861068816289911050302232499951381081374048008520651822681312054318266785523380252993521050300796764608719043460996260089075881075607080611267113508564137437951879640271691689154833009208219360458076247753826870010121543840022062979792483419979251378356176612717891525804087889361738870170062433279393584447232510397424764213731386352733469253333894276830420479890610982129930612042824710029127989623362548224587631081338239119471958643140554939383559833758981603536492283125387240142864626832830342156861373015018933150613344784860022467530738906796839333779767590656340104429139811541544614817607478996260823087190515826552652346151453568250966507035367137545649393246616378005725022739551320863908611668908783957521191243296151463756477712013584246043922880688311548647373743136828595903048916615886300748367822181710129346385875641540734297726963737666735509104254876401662628293768749987462653999635887749376105651603452581731591060395344160328339459730999225019146894249886447895314153744965210975064361763685729510331312043535335457231655663224117623022396745485094653771983929516035895246406030051085621785333562729453636397385071116068777391076752057844759987376750494430288264688869240752319529338024483037261612959070989135001147191697781933683107218608615283242458623503343245616285102773333741781538918205481272664036868476524508886472333069732150795094915952398729878711288766278296939632462853033560931706566885010952482400343495722911821123894572728446871241770452177928596559028418496174623811006092544254367334222660775409019369851126372317053846618803319789867332257318819313264653503035092177983891903737807277431512360762398988519029596824348155470635978900232749000713680660973609962131832980564225504544279896060706945477723455392981870322022605517386102502451747891095013637687182627012239004692808841280235077488849758346502737037160374488778791977556214719391273498937076067088550479917287912543748557981111113831563916285646592159868323397029296982238596364504189441683865655332193569612830838606460726952431374383770358818266529983652110560601943559608243776778168758735846111948190661934932634132913801266012886614584093954784137803298227334551254448885241630004463391378701560245008999980905655561268693256561460755527797685627202368083209005936864505064066008092096039271526649699749262753614757545978324568767715876813616074993083154181691865395016933826868520563222908053701280159657339023596851261348625616280225835789971156845254012041637267845956824525390693465728897564536046198507946489743366247175430021407572212148433181991367876241661308356817720537365550939369927135665939094749986434617930499454733097884017233677272985312693799233583980205384887413374020030832269817190622999842182794429459144076366510245149022802540376529873297176110510879785427695085711224411545666531920732563467310607601842573675824543781890267449299967662624890537642601458346257748689579659205495855050506492493177226833563266946514360605573359563759921830220353196893186473952676634383021539086885137624893037923814723239015980292258243070129130482441322087935183054730031399557019287064173544626817225951171370337694052548990858252557141023769066469405960355110108180301203971474235260485705724126236078206928419185047201830009395115887730651626588646810390591162823021404032889059125832593792633166215131482311161999133394120729788309959053824662323099801393220638433913425941153479724395307885699031110911828088342118928116317485162510868637583749310229282396683425256040501139693802349933149577185578472056346007086132289441137813662880807973481891426006563839584082674212035605566306200992598528415850745780034321872978214825714079828429178323135870766217868351260932272300729658004450929071459102045909238073122108094128739289334101349139030375118771971984324017310162113252587910964100742561479585351625704479783036489228310699579947984023425319921319965836248481954203354761225543093904219565667243722275335183709886171820011550883011069319925610489247562231344447824368845914514205942899340410087536062598341211213592175926068378703089248524313502267488227902023257655333480176745074305277697081424330682372642402171970724054630639099671588161820462526311311609060506648701012222017154265714816274772072638690421065976701821025365605164305728258449922476748459586991654814915545542644521472612263898952180181882152130587901651775444434951637870057897310459205358455435860490665026762308199799093999947614490471916366342851759430273252500779557292491813865039009993587657501221726813019024444785186564564962326891160649643039132474065668615205810884045997185066466864599554978777688343720572550845134053328849180445273045350261699275054353134952625391981918384521890649926937582447954592474027008210755713605741626636031245240806145609005963416013953479492897001885870850096957575043738959672379665666211770866529043646007802854811027699252885375068369627755925703771108006169292260818616942870341769752092755507601204564933684378243973828418905147688568668413348358295296186307939957077454495187390367741482797491711297882958861380321185820245980106432921833440914962444552028134016387162463892606414170182536000043876468741685996411464848531601665650925687761597811337420417699088306056797511740101460972869717891601838875291742363029504114713199757212868819195457802438844547738045446359810556766378778660490664554679503288116073768701082198235354804724133100769578446763766133073041061237538339946534257062441390756515948030842087380546682231677554476602868327003844536665956552566448254191401697028959699003681344404332354930428519840671019436140525908343826880291840828578897518673709753685913559616892633242704822192527663063656292286247151757107833594587360742149356328793534320701434748390343651323089687574846361634176419744524262253932754025712320758689272249173845768782619423991429541137184279870894079326362254715575590983678009747868186627904642137873417091588229602188074302766539978740370447134519253628809852521942126702281999978085263397452275543868290625901967612375915780014200429385174698578982467257354769612005792904735139020473022319803815424848967845638756896649636105288490653164211209480235423174527858735363255189666306897498314401685206676696178611630888705763307085300670735436910692992502717147257549657635854406522839627451797943135466549207098777804360969266668626177663488062108994338688977979652871917150914830108334551871958764954143492510903984357118318961033498978037277103261518837567995028169999028459240531567132496914855196389559899094791881595178566902637897887443334985932498314375548939755013815734658897513935712592797361600461602024711699812834248708957880593742259792472881646557448903008335042027452876259488115699792491191644399427432275521797356576049799281609213297972935748783815944449172399278695749658199732241536121938639432391672471877312777360788314700242779827849824089573382860499349789710761781020685649435276240417824220798523871533203138277646002616765281024449119997232529652152549428969449842356677046791395532219032698716630760712693620233519691812961074221476648791627197937653086140262272824501435423093485629705328074024641032431877092423161186578382878754665924581921230370945148314972875008275238732598987859436483892828596689906493544381398288834699051262078288061544336232084369681692285554347298915147771437149787741839970089162328182441780235940425729797350956563726605334991919250040320573440088283271993867156617233704623686260115270052191738496323292815811108697894716654692669897516660245059801041436338929890689974902495479009771812343072711151294010783439155057983825444687159827235098583225767266705649496537700910376208886740690628429772358138855215366014170857641930488418114715799142078188518062107676214994339653230592701891924584575304903494468765396386663431314186727840551488070829399888810441568570030084762252805556944911129227764440673833384747731852192953831583896432513766443235663469127162624130857694798429137095440348615767362072206629871387051159747547320425085816579609683643832703794244474077855118560770173265991889308074139581466780804682533636088106274432457572711844561899717312003009566094213397559046985427632192423756151022475414198636735281700140022088996600789377206472753772049539749394661033218926120165016411385238781512303822371222352927902591685119641069965254234993487352896707541265012682311796511982041207930021823782684274235022477762402302238166205810870172029522432298936403463631352754993689491656299620550012033068526544479099800931415184132405996326998375657099129564525344551793378065280657149605692126122769044927748319245956088476665206070364786425548231996004408812444516463243307372336419961750677196212242920897405767132475354602284381659863832765572859861743775191562474707958703243757120763291107877455685874314590772677210300183020881788466504420309867290816131849155640496515627444284417225032517479790954693204392971491510833073165803251503364888067319235688113157824555953842092213386800154071513369217560725519092480116736906348121200987710400085319955792282249568007882218480000989980486855696520433638892926403059753562503732550253528559781192656363709516790851707953817021652608861272291694369858643808990389758403678330731345346449201730213441229277371683231054877575164439718280598712684743759715014392364227230444530866186015095241010399929934835509017057505335019578503241800394999951410534213422594672823106822913175432063528041366090694673467273284114408178642399580474957561593351046308107328542943383006397098157102266589632602058590211230095856315126743856376359795054817537116368762678036058776112273653375998613524299003759166168122246234162528541438276589162774989371579632771447529232625010976004327328120304375056125666594182222060611120351790046609317630351165571243284157466576277383782459880376414964982198483832224805046145343607909952460443847436670846275786192388250604082807565128596765075703162223400865121571034841892210113311750198523214400853434471902694557738639655528493366177728715738375046635025372399255785214379471558673914115418502484975705719310027556789932442070869035898197390347097931095562066112071374045154794385395009446139628674962607521831331741237634919997086954500804587605588965966502069421504842777947396254862962027433512230578899914076442312522204576307299771048861287459768589281260463296703075317883869157489461223328990576497717229032260033241144645781568412528876558090125895556033565498356765467286046728402349248560851690194258219403921324463942423711582657600015555270583033807431977340465340775400039349690050693658777529953638789643795365453241441451342988288023028165440895782069717798767940565195571300952635113834067698488532071574713008857283618490563371307219513950721285770406370986547877704282304797045868614635222013937461014996196474550110606573810817796133398297676381706006223214334140296922522835737806218135880856419484347405959416252311812095859784192659586052190230987668879734492780947047419762995654226830204358691763624594243430729830643212251616333096489226693981679725653478957216760340655936683708926101568035410353628701188681029102085252414985072175667949546205616840584437444492313795122004243959507951018514258572525480092010696979124169087365278580970167021804818413534724533461948387926540881989952647275682284515045398248817794672462534681701491586611859644347543979283429922069361800303978922576304562355313906969741757246994636849737655646522067721963645257668838188400250029919394148576926043303094122566704695587210864881925242876375955699208666974238806247683677729704402444108095881382992168054640232607416842185958458322608173699626423944960192581645169115524699439592901888441888768445711986201720772875632529803669814313617569251482977714854645385695380107070826037217159183141175255056284944512974374965569041009475388016791931806048105942399621544953060904856108777629299508135052058779317642371517509010438252160814907623547424449178226389475110157740309469898580155139130966074750170876257386988267429085791701560128164624145331911515033972200562524308143251723842419278898742969160325580958163941080101707129986492388619053622641253692925053736693071825613100742599552892189762506830454004960781205716689297106855234045038127682506442768235680965128614139403214802279534853128105073942947938742191197924441951149415356561757919981640376460995179904312773085847891821470586852903333439573332086079015408712067468438165089112739501174650374029812708429277649218464997134118375635444567380125654230547600109116483447549611252592396997478097812136885928326457595382429347683959036898220088545262896292014896738729554469085849133574962476622709297437022664427606275350585788959754542547483036086969323429604745353402045863112056393080908557421626021697296261259715886376086414389379377614519911259015512580260113082276392147507430871303012515530719549196013664493884780240647906679146759124053616064451352903380951646250634102285218713656022846901338192936207180487519181820631639746810978385571166013145188880133934271430340898485949385260026189279340634593531965313705929696052295023082342100882879850476409124814159072907604461767207123151047863397446663634356927722964854849346710442225818768855776500391366221789844786833116422160359682960363249865924052074112042792775211754982433921779979275619387541902289878168102702368291925218079542419313218257590329949417344584304596518639211349157704317983863619128033387388276852486658454298208503508423971194254797818008781583526636357583443334949952337302486808439792070358807059172300979548121432957965104399756726619887804334720913777710920835661489825718461633593212214018862568722622081215792550603084430045039678737831357497142453200616171283733799377193137537699156007343030852810915784281966248811866506854557540460361368650543269165187185636754925682299363021477573556917211052912324059211380120508485369318678018640069953687493632523100999975584357251472281787182367919306663752414410235619979601804691979341657112098124208749224694764119303637327058016408338199486162444251582280547862258332898534724681198465381254788441980172111370451185249618605830565391021121278964728085556303204374650324867417078869019884291164134525873149945357634980865629078102150705774521130494725950697392098005620921840188045719363536509600705504656408834812067978478481400877764049238220259102197517364630562427469917725121443004497852114392486673099239365991323017403444444736035363616590907626031906405661699179683396040770384657729030006676202367726055937622062160931640100357232205606849015977030225743544665315155602538140761843885996833975588607622052235758822571742992725465015625140168691652046112588328479267223250490728457045386220913403687105681238227198242088714840882856968949245370991895247312316341082107186170578658799182254345100929428797354671403687664045461880889408493558021545922773281566523421651746361580239153726212477972231846392688975258481874560300914227025311214966463850816220637048882509363533107754874878477882831882856566498658521758066736457073299862875137088105488670003429187856401632046836819207456697740625209600953520332549205405956268505750572690496191389717766434060017388748712480679917376546826783783765610479204660996967166394640090536202466545079358653629133646658931969554083200354427690616023840188102293385691876565611769952192527045044345422982383235086540006132559587442915756706748221389405791235454584475162591358072488465594923884627719217906025038357325275977784775796341403136400135709103016876098535500261678793796895562290890699771611118830597554280629872000779998684289933846921574852326149127531904678918413161213430394847747752674553877416045086449788702438858614071330870932526411370324068383656803771756513138586686432545237252006932280399587703094996934269676361025542541782059843616855567124662329053960826472085862771045945117511517016304840992875476728236735968834400775488397617451544846963143142071064216624538061717798284834356029641237166329850386631044827111117856100416325392502171485456834226824368438096876779699029333956726025672167658062000296805802901503575691647955244423587317660948374010310850793398342545884114635978680230914408200939956162392484917407128189201705782050394707597206058995276653158269510221869410338976475243631249900698468074610471618098144774861008174927044149998818850673614126361418167626970975187636640114794373456300423817872352378032961738656009626651138828799762759411446900258571780749549340543129420111142680637208426070165162356650620227191544630385143854625575376139463488725272608122587136057540765332986647948600020724033148959562970810614286545038588657660376728546132420585599563490633924472807039680672618408155538780705467906990766305130669712128611823389395603854495987273585538367342028842303404361213467390682733217638515282439467223995255133133510817042712703627120132925183406217715904918765597035200725889419466622293858741160899158097390415446338819736807044595500041570863427743309820999976897229939665927166602024675695390758477273943250041525364713413260463342999013910430283759723907464942419005605029339129279041313133182594803405883102003509498596678974211415631082837983681191278582359471542517219362511612586908903465921726706190853002295530025533476813021520712687770157743696842861644210317521769741288092704977568184725858478552814405613575211467843794492986950447212698081416781848859450870803318600661811253390617977509758342685226212686159326876664371371061045298111206079022373552839912533295291390289670258263998305169478748950150663292640357246991219671627331702272782654506117242524133037842996543425124618254363304203416301989806483380618354517836837833683912752660538345890467201243200942185808952691165660279001195581281501687248387053889766613011023703153998675937691649096679598637360360081437295620411546067432550315848095345023131825482334150832303216671936099249973765274594722507371227126047429735001562157383751614509517540572032227136582253366308060950487297703162226704521685431638455992956967987237071739104605210400192346989453589744915102612824690816265821727246993963043481475961705547200163360779311662884650653049513403818070160210966702900275635613844224841434978133722199614534156821599832964907982944685799212415539033146875894220290663846105886805097576777110156402654938411454781136960209392399721661331003585031173854111829228281728978123679023813198293103810624208661487307319598234871323035749984255735268216689148710679839311775670526195362916158433575531453801979241696705497223942451271187215753189976865690617197423391343849566080850527503753265247490172024194711387191464144553620604697248137287520115587693548676525730354112138011143022278930551215400689424430272788097382818754878112913056300491923492380564215051112441670463167130264887477971964901370074904407624871992124009697869392401060640652096484780573536062619974317148281319623105578820187767477828725593657274990883860612835672123464870076045098160461340966784618456965552926327003801122466516141810315466427789676858523113548651846266070342051339390988133258555950130895475924027681154791979741120553664242677644145479073571683250402058958061101946691298369476042664621999124711958572510234852090066264765747912977139635208001174410656718041461754750348917610115916249618199972694463163577345929584012514158844990864643624629895007527819375305174211881092739958545012422099975205256578683963496096983680689936464541418814753804078399500544769307804355077439773101552792620075200756904008408612240129569978505353068797606851705764612002439232901691672702336135585829502433556336457105359558741903997646472444386574061483936015477722096307362785552221530266657024850544261378788165452653175147846278628406553157159621978626089757202712393046571142484213338279165087356712102175383680528851351811312661852004813404385762695327190766052125540298026993313974629775019521898534873849730141359051609432831659390921782802140850804558759287923532316461000694718079599141514995768309511983533601026033596315577358686523452684954594515259970898459168550796250743330405013070387512877598468867118722652400302716983866700768928869984986245106106491379638309200199723991201037262456248506091135402787414473742422247381137133694709708962689017612123093444946299236099685317471206243853238952857387074072267098570549405365447604101510968494421515174066529800042782572694325382968657419580889447454448251064385080730539570792795084973290993925039108768474975721497673542198576650664715341095106271229816921400848501083247558375011561240177440625614304382912199485978396000489921520693212175815012736667352749263283086408184150830972076045307253348068313421010951168786957539138744239365326186626994458046672619666984442357827905477508791521595048868554746508911887156872951093987029854626003733730356507846064176431745388634316759072125728082281946763027643407684198647556562406056215672229318057644337151609313376826440474145680116285110689379820914451129919301769651584158609375370270065564684301683348943155719857152874340693580094834376307659508091294200120387985676473154643919430565992728342760724309060258767446168604027422582538278403343663775824392888823489713165701758873503219268666926505008502283128792638726662467827195557582517574212587384602977031053964114566483806583541983566479516892762714260977116822867816506685129902539870612430450047527462886704249855796709129408839439991695251617185281099900063086499505122848118833906309661749603918058018959835381548208629559975820226938976679154065476967156665741247590087826418338723285121182061426790942545435770299256878248173865599480325199517174136936856195291017817444456770572880171973466286026324789904468761145411096567124863350693327200207332417746578189029953630489299129427966579850737737129251920924329132568834299430020449987554203056963835257505291807851371045599193493396297642510238660249713346414455339096355847059874082004838692158881456983749889317624154228248905378510342999830941491788578166487390375031931440809082695282654565616582429411151020392070786371402040637169747548498829995285556456763232798193918030118530272149270047802446916633943006252753062253286139918742043957345448018735775111050962699356026851963808634104097875830735596888489189250854844375125693993219618851480936128126905299274996901814692125222351504125076915722114745977194453394351721634928545037253098531724263245713043923199107313931435927525024745336487877445805991871472000137741887500528020403704821002811385272575029529366972866047910900075457871309812179733143789587621522821717910221206015073592034695657890350947454605548902140085998973333182458692160771848660190674955459816828604373171423634496013896127589550718541971917306731070424341316017051334859039671995733332251143697028609543950218881823719726998029762450940901040485904889643448382246686519757604428770284859416829307493135611722202812134294705103367563535009039558842552166384094384153337923016151603809359830951827149272292424238137192316001689023192932275255240806274276356660396513598914911280733119422623586634071140230282514500262424622043218779772981083082715314829407954314431606518114071491251684885153785364607692219744228773911701187418583214324321520309988258905504736716579168456609475377953801431202406771802873153996197257442382824278291752111299826551157176979010515252631940047630824239961070448132022742512413735507756067005019842829461205579166871837480190298910631105495819066192477520351301915683466733637376059362589741575088543128843369006765730393136749141894239655809724209218543522974737656941547633741956444758165269771548866247000946633067684181597616655914802738361883436975249931662762348469004033345168108431716631654854849400361012198496379690334021766140430210460903672078071283174079795687326481108015418135499817348205204190227307165480629740248117270975328240226332194309713200201482416842169432901635091252244095377026400377651018131123831766428301972024636206935806972402126814779411169143651682319966588777913844506352108435725279975053216500722602551964439380185405218378495022527582317948834028733894728974957251409799837761103424687044733326043778134537685195676296448498474900177982366699398004370669964227928665635257338366107965437536899607579551916819881969425376809581967515628942693713259931601950699115756050713555508495647421901746865518795869081547875916773347360005018378800943230555914647554069632059446282807425650935022394932907120972316327461748940498847305257392443774608282391109838976780328026778785226037485688894098299222489101138095613414381514576691982722116077467593473040281833222189909676294602164896893731597387395846441503305468164374146011353183234860757719085452618880893103945874242787593577424763097735414881708044800059667450931137224530922822416798964040411205327484928650853293449470454025045091687745622754208418517313258116751570968459261844556348240925208412885116246892284316227097146097518519125006891080322748828137985073519961207139224756423014976743310888696402076711865944216044551635532260015051150465598188849799373206400146461267199749659877905559231701564271799739329344801908682454454784441836446575515663044294365884545686575221679487103474066566387187016153814696230399758450986852877101080261069405367565599770292937752983546302795912313237236393292832195746639647140042708855010151497258266639706484108451935742710354266492511303138747323797658652309733359703180194775472596729825214270692915924878043321249647192596605079939914026648267900328512616631421876800328046969000908508735756977457410914284396142996519749603925486309407083326096095745902218357309658458474592291398844850204386547811789803304546452163465748190494578033468327552907254409847127715017340626746533998161388838881960169627538643179056933039830982462791949870755703145793150509364747906128304753280454831555641232818298746612550051135227747224466814498046234594849324250678728732263366947020167925777832424631792722417682542758064770224976462558997026326515644199182707979698869285999675967852266546878827896376719685747830004222235212024971502186614892935071575142413481489044804295739708137561394492763061334179956387576208421427749149667928025015302053996193878345821922016101283947007815390537488717385787407698705910551842836777616978458313576578511536962819977197488659896813647233148399592586910445067981118356229731946957748964128531162962331618628124240572201039057674965243340699211350515376724744236168257375881637743172349405229891886235970643074898535725293098901943792834438593282638960623372202433217461144835975449026040243289365375232265797907661469766295130081358458080295453025625209600416022604391057053476455474548119613591248791861592321975591222859700055322762461477958638687610932747780823093094811430129780386536572797841626803930566519053929207310927207168851775679737027125133290773940352763124682809383946147509028628992516261790576078847631680199686995288409024248971192121501123548667796765731445935658512829976171453099926031150699447952240331634032955547806968882924461966153542512871381979018640669107993867057986247103066895710693594364764328403637144929301043773530239474824360262279515455404947974491836233638620089571767026067404323458652058171213308942173052280597031759204553745277953444853898905326086219613136244762622335028463803997788278911546895555256543638760733912180370042625756499867491037466108300920748422606844857536420606414411307347175966623066376680435755236699287030223377893487463866846270354321549035984918089761279944534821906818927888632729830888227350534646187666289176427947730752762318069092436244986281063440225185200389516179830622374674187517554981809480571650793866307207453165360930636297335698301529201250380422515920543186406246875861577071956911773361775943750402321840249558358275082377701702844690180186197664428527199194985449881548525685299769762366041591861433406485279755514431955808701180511033639431220060958349542672109664159215394509819299818821893768136771835002097867319837332623550369370118135383645758660096968808179494516982537291016037874733157633430827675144178890741989874513697229448822872962485980206674956049018157824751760481594352869922732039982022198682195701440901442438202917636086801285959876407996117929472262329558336516087980179083823366830421885735258133284040667137429823664413901959083731025817084662929336125253651582866635335594440402593186346459703995925637213299811381220114027435623069679781963751516478270824035755066602692153636044459494596448197656102163719445927037124894852238194127530619625884703841520935421655374674382481893779161353862473939207375458687762648679510541875195109893500697391883087207355022311499219216720405622933054657963833119340810992884340377064083844745216749232701309342334405867008983710084241397654402318090550026108616609928812953904491120603326458454920598655562801265362906313129309104472863928113909938460080540168311613017590527021281957475409629241123079770512304096076617897418331198290268779613721670958385864283817977069955978942212998084743854663163384363527681618949282071282034434363720679228909760254288594725849233026768055641200120185944667367190979582433108842133368109797354614057155135348692977717102895917521375239441577311184553672512190224790619474294295405823791736658583479681575761821338740413712568348551553352728402898744625329601046263256599277323137922101327365461342953714029848542273798552925977823543701211567886526142022392437749530609142978147339972048897020675024936124241043494285196024991871195354550282794642055187407847533114066539215711874142295042657477761156680781197609351141747584531740586468586458407170204565914836364537893100204403226376194025394559821585123538440600563563243530442358493325132101271512594775603748594657246856664368265622560558113423464616896405035865285425395956832664536952888266517181237783727389085903070998660889228586474917496535940847560419943120519381225029152566111801543960913941967789036562340528565693913950979105402086693243861388615644185322982055308098927208868226508112076115467862597743630212353646461612583317966468070557930600570615882074505588617949679160416022157488158035215945798822808057202119669160920661555821046318194252069384799240833546408401452593642404927689623327776755314048480507477071072729727337096950942553987028187983271872121536839268044369756482796003877709889305902869204790481387576376651054712537498176981535205580289112589332595530891928934868189925469804672571909018962233488387727103618252458200113011365884106657245734198048656649403445023564637447675637634024393862264607404177313101892520335532435614044836066959035122398509694885892872820296805375902456925285735731192567444328246389604557030550801234798814391659904528804267070427249605357488275171773698237583873539960137578946203091492610353086596177859142279538081359685566252596709644173064489613438322588599801172533952914353110375136885080981698957848931944157561785182878842850139515181783453037930610801520091321037623552538411644330415019381301042506651654613514319382572542608054849838179663282167084090567003112083069238647242096799132245551886020761043706595567700858372227356087186223653186531122792660710711701710131909459289155826254563309960631020399099568072738220451842458231622286605201322650137299658824380673073789598209286119982388993348811403191638032781259023374866799024467454578863483054757059216807513133730722007765364536702018190388743438961928594806846564025126500306830269367522633397991437210078328431598140724072517955213941375560025495130939405075891110551542051275494130361923739633416792956623064040870774293879799098325151226758705005615741624666450196694458988806778239924639931603903888573338615273430815703154575576362737837608259600015818786964399610097154756912666463970292063991407636087858189013345976767809622278146528937730691400744689921456739342483033119133730778496960401003708158133210706178304254976504921186019361740746896188575030534647860751401128050767269185741090565598799464141209375290486751217217248901457437273869497380809372532139172459942367239281591229934210087911767025832771495058837172043110333762415810463779991181177420467593241780106803033954202488456175524945373584296768356799500216371462049749523545625663113187572077938222685199760920156262969334880331910215260762950736672957899227738122288711414229184705578137186702348961461598591094375006467898281142111836372997320189690786961651281997222885933190031310310519768379454075542713573445204114880638479277432530639242418790538660869591276016182085495964737873472626854993340005209480166775105016710240985401960430858796791933351399003254626762623121566171694539907977405786089263985972088732921681469506820068062825146303112484972952738717539260070236616416280613962314708961383532344479714994055366474180158941803184047827328120876950402666120689550126036671528029360871301856837344926541066862368579675574602585851413234867172218395783217545843931723931134761177904102387355561590730287882648102769908157691611725182614427665214328763076081045995777283965208596238715135138135546582653287247597971683727648397804541045032698774576923431770144807930843159198833414134978068542418289429672057090457902169928291931227507000289434334456193792094000445978056752902303534670947948375233838781859591531741265055114758177674843152938999766812353969260599813922837664798903426710190359889849033540612744161042027129267232363905569531827157155174467200766837289770835335319670365404872500690755694826375458073941555560245998929922596111776196681126597309200295946284774412021772743892492680493386777256165865979034674416045971911912688936880864598059111082807088170934280344877500881297539067444081157684995950559794144542835529431232183674138828011434033127634060121497601371677295782626651272187282790409504939376049353439668372015793375390123184133751337359692052881755177398939215403156301328363770217190404767772267418438954113574628669029902432846269397811611802451200906456179444269526624969460666784486431588493431376438930904333607913867874288923336594116045578670560464394737820716184517561668182577835173423292356437789941012870782450393539834702575837220649268100445687952884779368714572293251905617770236419839630948505977779783141408474727839453583172008697613922997050740393672771063326274231262897683482679364657064575374652962394656724593875965527569702995062863270093326607127681176605284669755853940144629808699309264687749877252396001265702058621265531195727500159517785750942477106446462401822661756364730444472458970834943226714811858376377337463107121199692270809520151873306559886280531258459317795442823953428735555882636145407641728479409555590461392370825571431895153193174786013143405239719945361194438226704403659765089697339341119315009185250496953215530220467931647169437985836689246845936227408168298946290354325853758953062187110314578433957591032140591346887578726585182372809452395873292285447310367206455176878705634276273834765419407035620242926482940583721997290753632514709059038678440241361795761607972500036714018329170354190800553867953960928460776395000837330795980952834298600761705779821581252495752186218760548925981733155795551723115708134458423782222930515664745594281995565675721026465222661134176417733302127136515004641139285533006080604248666593307577790285029386297821271834506300666912824221241269430839118246422724142710971480918228726335023975746840435713184819279805451268437955822512037697727868606694558273275389823289102203845945860829111196489480712527826338823920179004516397662659516853838151198253515133765123979259754910709869308998438561611987091860553422190596736116139759407274361860995201707898673280500506115314633962279457384910476741411097403212844971471859781055153154484198822275723879978659524737984500341200914274919307556209776236352377376684872035146563547199540705151192125059106218569599315044260316702474882305806763166076426313502164186120120982242584218887226536311188422794798481229387836104080227909841531400132190909061846349726546038882834626996820296683777970881157000666640764527273328790308318178982516685545337504253010116438722120987558032150176838607448069998986965369882511720851598659223885609771781630602260916355219136621055507663191912017852871652280854645284872565173243335941947539527494842210257421917665008145835676535944866572537169747621980532051662480093838599608374628089077247183304331124913623578392911583363596221857525011365293770069713718250502550474393055674541741300171529701936388018884278105282277983493668565130784441801213298991420877910784677594485969956595598752425596366999063102047722747998673059739476511489858812714722968339081725472803204395149906307700147325933616891164520519515395514156592452264734783565915004387980754709071860814894367647721338411509560519483361737315931370380822524911316701352828979919958861815650930168126331502475014946563670338440453113990882896946127064357324160357948592211423855707522958898716198396371695582346036434585202009095861072784219998704713348107342463791952122306103368500172426200977907794191937573327072853526119048141407961651086764907464718912019601481973840838062421917863235810608723602002212462350178312609550507212637781345326409607120086735174355018060842640901590998821737300653291278704302195668847568912713670218818064509320510065726880100135252542761725607379290561767635565269327329663919595630339401173277721755419253855776008723986585239667841817855022850083306627751399810609333250749670155129052239456019818410765458231558847187563899297716647861260693077735213711827153172497474367950672763362853128076745723780394478757664755734471025763700432773325774878988702009355135987412448763405191165700207045644329206613910768158434521726958687074331584817353461381275570158307874807147038709084095436584807465739809839167804694603751327682908606740558274308009897638500766727902166249947710222865170366878596384010961139481263766876144475489665701934579827248425151073004204538092814440444462643862301941907589494857079851056979867714153463077072645308630766167195396814704986524952540663882872173883865001743227098377221924618916146458517696359625492325157133189758111814032510171584064135655721212328872268828952886248620213748022344718298563581703416250082054558702878397405263109835313399898064827954405284080971340076438510765374910063361508104097450167649168911553518631354688987052824575189218707260454756805148882213100168946233616651413751259333746851023962917527562494754417318245677875270419551999996655443959913662607934291827177817007073106269586540600817060454400988187539042486246962151754907231927666720353348817063580385328179397167491081180462517405203036587559420456514790922074969702039136630714951214364589740838685307437503252928011618385113292395576667962366625340520473520248695611483514383483162602907848543478402962982374755689005053212933733963325285825077026316869302263754214998795254389910016268377476760100189579365150028662327170241918019305651342068959057958998626191527726825610650005174789842610138157501296895230160072811332384147930027287923372984140350045692049785056515826472667590441172164989940276072547271509910092131576186183084161154275274583310429058644058803313505868429930779128325992683219192462898731960119193070037720949246643387593048175378332156561653963057577537528274777689808529120647080210508656013513429505934505035566346045939230803370267529662204870617295527104752487968954241204845112171603588748385390840670067867183476065513332341602438123568386181982006875248951763950195230481394762877252687785303533711625066614725025106639153939058215495978073946218230052704409764876418290684813165312058096391906796463587844158654652184505368735113882297414527755940604488987975147946102069822183366431198821646438720480504955502674363906822343933745844170920018366649758352162969171087246943776787966358663519256317194145569356753433939844707949213257433950724466668071682237264996068303709083554053815275299486346704177943014390098804693762877984035913592033022055670931223157292742070774813851485520254829069631508756679198558427807540319080196075622221124704739416047604748883754371729721178801502976278164526648042704704338123692038232629158514798389379415939492414926301341649593627943621105202603958945041433207369949633073519795915048573232309242315067108578404156416531010867111829410482735295494213903876297959441927153224156429552933104333588306608290943391861670781277321654536345211642145441279828294533187244718562763580889561031228321481352050944297750025169554550288831305520027737975135998782619645302699209101280486322024000548046640485874131438844048829836021258642504985982455637656982291483049398464236368015957457547741897007669357259396778975961193783373459850414071482050356806535580451919747012939341289297340710991338359000144007774256259037968103909613860424448810038016689840803977863113619870629038663091409990273079024194990349965632521284141459562529870478257658723837813424990162379888586628363019451096688747264124257630306043291658251064673430226906164504450439071464090951434187733656241051498167429301305002763333626209886479554782889799592811837215361315764167987099756853277428737815006505427048081336925858450240639719572514305096774222406507605517529346003136396994731691887254117809514112449613378094749016803572383648600061443354932963649688647934373609855305061805960598608030750493036494882178494539569633561406076864725789967703730316241842770915150939626244907193264218116745415536999888761392175514619574353792924178837746826961412832355470071127202580652302286044338422006571547102173589554245903645883835557225173267815498426874592673395761034490520870756470870814215766567091475991292304836666155255088986606223329092547878491497843304127534646367851030187113012234971895054991945367220714966046341919585145330533616035203585271916331987740863432987248440318731814770808977893013670431205282429711786865960038313546854464661113174888042945484701293483070430389718654502117370085617719906123886389916643227162307388407504091664427418476577934496767309004914074778057486324171640336592719736840984313433074819349036200684499917811217464460348748790937548122875133022999497129833733304067974414658351541281104524749522261216039132238742771408957105575559330768240316662749279641327793326628113894818883270775481013936358746702635508748500963037078899384752631028269804559130544028043443873275462553946527982291537106554239161326607800852127145530042436304637979606448548682036717837365681566899733644649920029134324333945007829216711554295535992566280792676819049586567270184674285308099005334768721232322950406816294350579917448997644801926716891125406784433140241583440349568407532636782302295468418806202682823296772686460812307392461472341402902880952584451699747610419750675378798205638194904027601626049046407235686653744406370031498304085157889037057952513084080507304243561385820263720052117965809918663471027163676631519709399414992114938815849542700367751185779549076986893731986507652747040790171518118895709642508016210122196785373988865924617001367883885351627818197003507258059319497137405357750892189338282455457347578244559174544512187718989007326177039684242528318923925424310368024888504979327010368472023695969469800634097989910369679483451329896063129627681574448303329735005361414902965702699956581874273674601783328006469688568582573070966249887798801854819952929507807984488162144905751465546011159201838774217729998177502136686136894612973827480668462434955695909984116532992713464085081407171162574253420485313340388453933567889424497162136381666727412447371562496681383139340278505265615204429395985254522506089385609518875087422719339278189108504343643590894177331674288018971550141735014462993241252481910619728760459341205834107069161221161712795546001948610804401938769196932625096660514053991926335502051854060910968230625922280358537574937393575673831821724502128414714291353872938029016220710858521291456044849713144296626767581639642456411812349077634196143345216737715215942896563883022686242355067757443533903195027176726034573626956639932082534629159820993422870826751665523834474209269778921391942676203531282707810272600857824310638260146388899609741752707888674767721752093837333492355526505878281068033149128016985282141812687712035301235863647553819802169878698532394985962806322375334125849735851256751600762837908559294596592060545009390939622111022052143284901534854670245240108500325388431411269989586525461645815024868826942659420135116478113888209376953207816221749096915134471907315684770700606694531335664976833825646412455532118768948065593920132278355802837489607475873263642580325855111804892219969240468928906280751854461013980137684059795274951821504263463203433441023024678385522448560608450606736536072983412393266890642726835363696610447074582492439316739418807482441325213688528907370474617309956833271397136646784854206827217046666323023142802655418971504828197202711007099172621104648152186431863459901472049805326377233508212897220374414102536585086272151370575093090436905668319686173838522531881663582236023121627067440686037777475540343979739295369991137201911389791656111819836909009991544573442775826834336254743157405377796883405805554405108404546512116091717209084074399969694254780572047213251910341364817412349508147435732880589952004835183274111088715664157137924798287917145725947398714126531271865920183829355577871887968962037911108909832582836461094720613793625444824835345838828780344060282389541268017844389802199215244213247957453837523377154238546482372944599906258109127590213227362859831595873544886821171687601746484096796656864568720418592628417982690154243773920382729488759388702873642148224652804995284003241817103773270645686052122046700087987118417766379614327001667155588060552003378738657528180640760743685284907885686735110559407387259705003940966066954281907037738308847707526256129049949616880327238373509979419371706328764891778580057436294094214085874772868156349646840066395887152466196829186862081468309020487507199112337664189680226274642973106598393120739604429132889702740581188710909042878772475891412814881928028569036467063066081910520429704051267931256566990686462025510237970153216447351018705305978497411549213102501593005098633138803015458338823881439743942396871965305366268769164801103269352402011820837370172226154726934584932705624443975868473183540066190511701902036642603995973297044519067818369483370407133469207561859184082167102165272474224956641684734581815693055369059367656656554488257749204206386199597699804767718286171570885684096628221517074348296735880536125082358892688914258982367831914378635209440614194555918806805343031049665028106437020181089627927956163546184736339841644102631186158725696031861625859585866147177017415450973984607250447100903043800224931706563940905121556988522840391922084155931381902214333279894327558695632499032628933548439780175628245039608422124598592725875428412795038609361820304169244565028646867476190552421448231506931141214765424284210267254418109587563541106879226181701890565204572509615865215450610603537425144831201382485159890764179138704236128387608955921286660093241169718194157991714844716902245587830307501185029745343556897644425536902077792395867974796540514434931373614386374993294094310412008553581432219178325552387615399869742024503515983431372104186401555440825639573466356437734845788496193153543642418098841382229170785094868015509445785192425175599539328379381654529661178278965524523222067626903071513606057360106065889375256517014601339937495377123866347969877494202342302553907008325656081484027232625751888172868429303231167309178212577203146660733071265875251997144743636926808299873817336939521413184626357397660317296016944779568764181255980447774548020893769722235819163929284824765176226300127993436460709963423064523161336363455236545416434596100638303834265195012613928150732290055895896685674422114130333990999381768641173505303454378395249827836653562000150809079020291304134819527279603223166043028763842970976888393717383494233703041431539058566863621901575802218178947854514334445792390850285491046647623430003465553901038834558283832718722356595605812544057127044860466324030659543652551802255797583671753139562715150003438005164339789656338654398087360328530252564726083516256872804811668705157470722771547619048890889404026514892221013133020397643237865471367341877341940607251294748400190946103340702000221928945311616845658229380085505086448731478293809808444664547028600475238345618631275785415660058520931785606566703434838981579052354848926159459895229417675475626745619968021969367817442024987749854522810791590863324427975096226103589602835962376235814195870869047116164341508708244825508982753625783954542228464370329062102346289979951947551197615609157836490894518925031868163661727375213302810683535809058656958808684425431515999760147160442845689245093451168299391343009333354279304885694738426259373431017109469393583635277273643228473042149357194733674977328379347600578246080180154941719124717694109615496028726376761806193494879595338591433266416291352193012257485304839283824253555091461687995205660121834943700343531253147738272413118467270084750539109716614911093954071246598026756778505603748740072285423451496726448146274122632745166893449864613696011574931049622208340859133314662616960369571168548436335588147801431386063357674469644175166347157616846276179732934935498672382730628254995917050541577424697090324777459031512781947396837376407667414870098550397482817571720616898570797826172044112731405129924060675035863362675112119591694695277485159939297626113226945654153826184456597073561516657619411042781906529883183420848637666689147873534363751107954595313178796254394275386430531133328675601233125157631532632494805174068326022056055479639389231755150766014921591956253146355307692744924072239721455676619852505769392672874372571900967718125687793170193427721245717183065779334479724812259389682339404557010236229786570631602242577519540124561378831422566742219049492598514795949077501630292070034148957812436556350531483053509817129842351743313923137064473652102331370277576111092310371008792009172770488434306603260303909219476122512941266944288473255486509462224731545234839649566540109508505342229789895579114016423895868805555879558997288663622618581598818131974518793052649728732860971259376726582842716483912208270106998539241102384907147885695623045110512075667036861028992293610960339782419011821531056435397089426321567443368258399369455114341048581169310524847624328578874132135150591432414048527718834643762636351304017938911368446375989572711392477336872063591096425504857834746690114383627677570644268559011590612169012191114852853145040943013501660025019657975086012203013298865378653166178341146822512362649103993028035016917780799830914883066043874371722436386981087219740127242744377327668830580705501389945936288198133679149915704573751276319963373066647581061856136377891469807203908830497785050120814403746874142304814411350112256237278089640473762574544045109826884087313600718693673473444287477492026527132448397955443213926674842143465900808629287717817603925728322088643280462602098944898827337984884217111432716788909514071773669359290638518967139039010778217457491816924630915112859929782575303805769988394060544622083783772305917282594071813958427547438711167445860176987183152990378183561386719396864231520877953319995387461182919993333703933794179060306184811184559163244922621529932734492535464266957955641601416905839505087764400983528720879284070882997318290990543945936538311333096184201489218364680622380813434325534101479366994756197235915143933157222655333266889354226537492119546782558949759961507670636692550335612797921744423348142278169221625955957739618028033518924965263031127748240016317235769922277812132354652963477025879392251992482490673341828958930537199776167059467958318858414659456759919452257990387814429603205694826402916522997327919131044360502148273541819804952708621345719092875961727734032540196508494890665584598035679708914763141695029124484915204246437289429146774813993005154404283564084463354385958107389731333867900939055515778115163735447144960497534791080324995833328474613700080698031153434533444699349431548569433383094240760491308217821547646381591284345405413156406754501585388582423021969660609920757632943319383423391947462336543711784074256386522115704491937776757213950090554005666463955048398060411823904239296164587613040249525721652492898566722153205132379030352169758566666182750766306282293021234210240155865081531964456565635155528661383455385384300846506606189605624994263654287073575374755890817841893395199467608024963131676767401236777383425170906865588460506450834567316567783220915500851325668097785620449902593068379942083650209380058417841771591338249075663862202480664365907452308887103455882926388235266130591485893261743174989489664762256011414071648788547407375826451218962106793771983859227793174224193578327615926919023882998992386509977360963424883001917233807452507341369871045927543113387585944279180948542626666934834121439797341773832695081043640419040660934226048896062986185848829576592065124463966707000055804717043657567016084681151551717602342328833805583833205606984138207575464832421004837151210350380890786328553584377355175909665738172779331908307871593727583106236142698429436559708988740720172527880145114338044709978222875832994082370326307729102294506928412995443463301331581126124240927196928975677772328726750457387165282067539785323830798631501153227097957586145012501376061302478043488610057593765644271502208528638136001785362911348425819366547961480233328286332074640039046410439826174614617094110762521720085112126260470608007905073802886489816235227422165802706965013996251502810234275471888991999517772184589340662569746742683190905980035657978699877805260806568706509540832777657813042823286040807112942009573614088688102618182619799642372845505604623609364851930301517495193900835442397696556878921335638579273577277702716005451629222519140866657426146891079577769502665734921589496301327817219389844435277685290089999459021178288406741892360240393722626331753620523187048887617909298636333278165706142598561209204036327393353177788937179736242788591647633192150300348069382382515942962289947508281335039533516036280096989176132097984830611356533366258923762876585116376564487033780660016129933574958127624117992369655151599225502834935175305894708981158661064317202009761854950627394862029935956087909025308555140155413827592785516481769654799727043955119996095480761158974230062280732269626154183377829758603417803055467456335596548747125935846019942545337686375897814555301108573478684760604836699158069686537411541213815374590207828800788683203739313369269585571180543534954276607773232329986705078910661000570181585071703870970614852331830575648168524367721873018700427059272555487167496198766988926254712863415733309404712220568667937675058708588009683017225571163053929376183567537147215220964577910923724068993846314193921332656769434914615095254146791982565238636099327229978395170149565406281729906151039761954267825980755415185884201627358568902741308158617914005338003019458889675142435408495227529795320117008845392819860746157875708802399889753698904930498206642933483060420050558652497031766433264952113598497232144882066699414964093627942735049555155141213791446274236715339031585685259240538513082589830359248283860149794038816072790582114971654815217449912495106937940374179317140572665117669960146035446481704806314196768786343021762474385156353284134453997736444069507292737490285055933922941357080006088417463495073555643541285137513870624927073338094428023811293077644067055702977886528586582029421209378151037707870572023312663841192988606787053603897779001980350517771546851616619528855891154646948969023027845317524132571083815631507034837702144800113397971921930012057267158466028398798698671933374538640387458024281000451013386227377970836810934148375174432867326678229484044506087493741570727054588082130659628975933735005385853988680847141812913573902105103259108611411924537394591170285015069768649915380216221134140157744162643922539295027502572259400425675858162095978685176927070652145014663523952449424344576021930555395059461955187644553981919597495180296421081155845816457366524761642281341518030628613500180597293540730670678140344199068317785687202460632260507378831928416126414595378928043244982994091468281333361340066115147126414574697783100745261568046062612141112286451011603070868827268911060819775236550230154242866560677202639500418903406672964947234885551543696674320471219740725026617799398819515756016077083251771911282257477227606226705562179866835376115295370684535660036999906746962820611330650577745398754730731973123940149150298796335616150594828366524366225094071101734780666229581230902432334043127588807230235162569573123867880490075953340834838956976898937553384377680875691456733707549461047560594239261846304432250654548180940032894766121823474067201818377277759267368197424285517891901030681733650994542389369458357111244801995074383373681061748219736142535439111877456127370124388748148322546365738124864466864292353169033235468562405276875334792943689924726370338611594185136139481711744053887880787203356045247569186911355319645033961358830318739076026351527350936617795885208570565689008875398711244787411438541248029924157205178943803676518819316857844365907665338013459865535970427288245408242024937675029335363833077863967152203987633048526107489545992244054543983018225572100836982008342100756967778473447503511888916244070358047631732775527413268818047093595059408162990336442987035111395471934952390374849971273442876438376080979787873491369140917199673917329328558515138241414207422423086694935275934646554473712914412442901757903657275833421518232847393458820681705069520979858736567562104574730619913667899269379805136745661967756004043052554640223960243921205606969178721301363859885555561869599253139937741568762221337242455847312765706417256337783813860393585840749225318985575319388407395649023201097492559646147681967717902324681986735620717820733042362596633746458223532163814543233861048051192710393125623351795186080751364603721183689424943223196427998578077814667845403011798362069850276906651720122875074621954284156129346029855820818698330006818119513469861149091635979845848547787728171098418906106292423772292128745501622367656241979569219236588929845444808808458976299498137420646890814494512674242929759978330237535146776121762988376562465990753698938978584338302990786521515459188749872444338335025052126939660468164792786533505267201782313206216336225836549513700763492932067578478665366053118130449103967543284785619486230235361710720434325677600869216090736982242005060573821887622829921615931884761501800452465877998744542743414809729284378724385587066150130076534978707074012614133322374785496883595293467329434074271830836692280785533721985392050527473992668826611534513863066246940044871933486595170281568712876531732554541746215929674021993359134480310145066078927777105598280615787950546729304264369615677980450933391571087269787680263127023706740848799544152913575183999219271721996789708900720666045070256902930623365294605013832402086471723970360579542167573808505153541856188946235180841125318317907257743756279274271618546959811301644703951318699153405117114894193222014761821888892521649580082346763981075977471677160694276010643131679401842399491947136711019004038883356417457155002679981111783130039295803718749119729524982458769530692502532395927562202510255122579333291431590485707860788391051873994675428974328127021496674201167088710272081868637959918550134073588636528221696010901018407117850071454081353925398771384896823141192854244389501817321970226388268298423194856083661857997814343968618496617223850176472586979486684360121841680602796757668267010051751795014193972130955666834987333665157166401224414059739162640783253859944966839350877258894383283199901445747284548622731928664587162047232512539953227269940450895443598180952838154631162372534533868382941113443861892455641969552625004773009792434395015427921203304476859631416106425504324478916343313113662052756529224723978373671397787099233037564437785274369968216566470798801619040397091649214700534022734420232744230974319283819982869993979485571542082467052808578661122560613760272470145116484096269684379158735116572581956953919315199924547440674653339314388720614001858727307552948242003168748955940752349735387517864640697515821319458813893954477703366370270309511186594913449196604221968981322033956703493601261711843687479643060524536583437479915731275753339450944489543106449127853281333783953335790716976825510181804933085671989139678988114218901070991298990120274951346467318576838761318883535092369545188515823636881639398656147859183104479335935542935119221369909566882224628310552283677764186867859965268570284742317519292449943570018161084456304096672255199187552762622997366884814917974980261295140723908257510956825931239224724230050802498781915045895373346350818930568418514083548482260634697858485587679525430533120997350335081820868385255602097502462566693126760416226346448539727150992043239884861489010817038768101157238615892066057235975346931364524038600941084695523485529298920145270583780945934440549776090470008128748931529524153804436394648032304782162286986111803368239910448243643380546325155967210667607200360590112329826260606905960839995408051987771559597198006185787208039085745195105181994402959975552624688540072181597364247015789139450644701542650125766810847937102456600750057957275916013333876425899729825875846958257693701711048316934521612374980881211737411542259365298626220570651604109449752730651339018644229870081760769950872318877480419294017799224397893979642803834850620321421207069183455560754765155832285673128697254076734626967008340265476885548099526183362814512036311995876060569013100777230084576335742079737927199442105677036248201308472475656566707385200323700431176557682745842295425924868017993380772266902356278128854633834700247863212588018206367967395053274361790665233782482011404696779853348870687209818297626932275404519725720014759507546255976763847751528053834429321879126585357035857696330765019934423208119710364548858419305706343463474034259723905135621108594731156018357363542050254015041888744678556260462605580609190713040070027699494774003179203852001913939063885741288459299419874290357645825221255559287650393757869036679540174966791446792137977215850865699826020469889697599290393343998377941676783188163662062252524184299891141534927968450774269902162958471278714797075209535242538228492703114869276182541716748364929465917470243865490596298062501309835234042639430067686404519854448917639085476033632558756514465705522182075189190192917914784968136453702257373094519235108149789524338225124282291242249965143904256145434041839594993986790689434337629339772297040798312799714317677078405643863916624801304123540618173327040015895503267881141683480717744536242339510074655394600559498444087979386794824119876908177382279682138424694483301188146324492341822392960693994629916599287694579571606199113935760438939027963799517973390054857980216162318390862895333090474349253111174468223012116249777582201542430250101154935388262284378076299909986574462695162762026650881443775085191674946087572915746794520166234656256184921710997651322679129561988537123829486149975871867155357061373637394256828273312481097614810166923249119049434546086251735507817548110037597244704976987433823587669518404870643947370017670952943597657775116150198706992312251310247508184999527148005629590928457396440190801660296083871644411470418061228143738512199118963239711041147699060164755211203946050685875048875117515950420849031400039422598236432060160755426782386655526723553429557014943168941598230719408347474377646292666641726392990227565595070251171255475273048875068056148984843966007054994825324413535670819927035989993643401163775001756747473706042416705985563518168187789599133318446175594447055680951385041618334832725760923329629912726982161312397862518076951011265607779081574617045056945249827793057837633878051868095820962833984923621298575666880849214912789157581537921272376221269159202748064446060366882149364486415606628556853733808378066689960950074240111547518495008281234749999257673691863367841443516644615177533838768239701327524366344534610315508312778307769269276321642427423983563419062674230575795434443424855234880617745405129598364043079264328761226526808949215311462912638508464448548692455587867792170733280216029203835563561891410443141808618218014677493195093071587375516448922482628146714442001810150609875238207895574315102572695259246239467057787077304252049392453640390428123515843478995589049002000620165223528334438175548841848862388306786022275122754617770786775631906590458777626990793814695474883025331020371956421879221425181049918277858785457125712951909376126108087924881785441011494266615651847617621846873691906090770162845966958111037455911225432601013344193636810720432452953478425816454453100034953454989165172209782994611846554649532289026639487700022522291615401640138240400010405402268696367954154233959717259955830341117918521887460293525925780068261913593677186852304240383254919548314342523845806010379907170737546981064395107594517757079532311851721326522924816847756507376705377828225522565589947229901339674798349197630183705715869751971697133827069458533064272231115877418463500301487179871513677758716373834859298023690267712428173656474575432594485471090031302065668839424637699159411809090368428113689977835768212592907165518139999686092804950996170302604452343652983542474203526283955992531338723108010780827394551022674570354414724616483588192691811642692479288812589664705306688863508817409743223678815640514970599715206617602004613042336457635495492120173306160041073584521011427195042379689089774866408127418936469541127288227301378143178781354702926126263639069583443328045595566231483923108323051320765232351623170104738806863189626882992197197244556146454223400900845750180257064056408156918685381940820385718790953754149827734362551617492413512651135098971516204011328251584736081549469368558288887444687695894901482707248753018743141681803158264013439785090703669634379123619861469707926646006157200827394030519600580143890882872237458277456340901588761639722486063176838518558256119013072650086976392938312968717747034293248797908267973579951340522629584386750957100582201950685665735014609415674314922374355517472801283443167155603953252754334767014298857998437845197715545125939819861409186577468028232675426154356970264459046764792788655894842979651036444850459795196879037867123291198905468642416917406479086604452677266973024805663392073643275206472458925817368480601762863072832153466919175274357989693837455250774591369364768249453590206564829593537903418931953605046578815547989367007007993641064628962553826816050718458529682600673386981002712178681438116556213440179297630552958816789861795538611948750251520604387821710448480779237697793832097038966630837527900148291269070706098684190498913519852421016533625401186527189887031021260964174879971059218011213196813565063145429776790400943587935295556423732173148919835315536391175211399343591947804861427112807653984465405758931822691419958010931793560183672449176647641960775075600395553160048388659844146829414378599301667672849411030938485818036141076767985602741708298808688779387240608237291119083241910499349552307993983827276381213390578634355937203218018471104913249394018758820066639543252513789990399054383070324505118186030687790204009208668509394657039826354156045558457446266134050576233603487918775706310128543635585015261003446864810496959761037840803825498474118162525356183790105758409777474996395200418216646358298367899425919074204168104019480810880229006848404227805079803455570055863443092383446876339481827904117772448445057266188677872140937881872099385361172503831802318475575097547786881413223963508061073784602126562292486892287154311072236214718510624877632500129691722191211265085239510289610931968619995677149985912737945655081689374815578732843207199283834869599201956158738388390582419617134773640785758127255462107414295927069002189850744808583988860305830559550509813394074566550223085033549323955056365382377947297637906001638844965924442786673909109387259034506544855092918073354376779043560808970700533155102300472695785740970503777284853128098736737069795273610235196254700177143560812307850388260241965516266540032816379490422506646986009542629928784350245587915331532741420599786854393004721708097605463852253816098768914839470985274745255049727582888295842788060779543438829459924544033256280827175218371141403425236544184550349466732401924186151102759147002058665180047906931317979107342557272114200695633225200573829570275250878108816332534334555838948083047401269088915571822819995667286048484991451740264939723651213447366481807496653779385347414783459751348827728434342608867769398334581183728551935227900088810938352164033182958641568078567897329106719309555000047903294182400642983391193583477324027601767874968653475624817597951423025439214040543742598467199154080649089132874702249112017855502558363356140080020825494851661129816140568882405595267378161535419882680637199731699012416291690182633390970677413185575588307670326066400505866029926304836624291686428642459213056393858075133915232885693790655028387443036675095366782313385782587497624612232418125262332070686070925222067191778070596902683397475027554089121396437335698719715044840946749895898763359414698872268540969716339452053574141726574723110395156941428701833212075876046421699849148368910072428266330902534403785862112575898623306223487288824817316502710165083375480123922905044225437419757186260999342034990984377740276852886122490354785223396680542756171879570064335518302633141471216382328999033749610181106249402833727586084676102201687037257719049999271418758234408072799972784167266699146360120443789582823874136773235659170608507624480509183801001770282866714918195334609916266441511914486840498426188756308094726269396339699493889010400978226462175826346297902814058705699359995502969612439118142121856762604002627115012178645746290614744519310387091313879956608550944712401775951070757441389397843869496323859510357493901466630458924055382829831814420148753670902689800878921484630909225965483935597947705344446289622744643443424362821603663459648700495041938729613300726840696822308992761312047630264002989615251995167489717982537987309905529994287522931323294527965759420458959869079265280800630540402735177060324203500310866250471622468575282422853251898904444647709355149192752218083649402378917720167665008928739717356274635371555647561244343703115384758207024087928040204242368061415819819905524477238795672052795017521536094282982927785416777793726238831442993478562947635286990936808818215945643512142556815984076499524379585500308400419068713107187974391086606621539634544025962437162738834819250914719136018565592681840066506369023797766887151359667192900005283501612630491815837140889503829907824007484288560616272800359878258846738096510874179165117247501390029596298920289791216749754594474461666888126434545489340000235144259684919866556822177135687001819689935274955284486043434219267436560498243275537772970815999347901078449557209621703649104994195021887619207718997139890232033982231054848676333697348057969396836079584316471228740182864339912968390554844045256289317528623475050872488785129664081553577213237876216102875112481961982041303272380871107365999182488153901573922372672354877663140663672032354681074749477875881811414412484260916165363255144822954730997453061534453740608191732276469844625588474391303792750042962264116070579889139389907127060558450296254379667683923195949517334753174368129823102688887116790117960693887484634323665394114293065597675723449628497449627935938996865592864906760687554305584548619221670685309629765263834039238720323329530111728356655629994500030303350655587136036986006655305865974415654360345302428502554084243353221090741221404785480047964055358186696272608422089802441788452898372555858404935872079100781593896649058222963931871488041201258839394519744477405241103774540047247982238731589591558933140206854026437639353915442563939074807880308454582707404744475024820812913528141504112067168770142928253955424916725122691880186207462850349867931408070769308219805611762472727593510497729272594299013297618984677630283524454759288661939663913118306373274063865390712249372558974458808295231063399474743075381213979725952574519395464121786631289748894514351344947319197234018832110166266306403379274347087639098508621110233348368677036428633178836809256588884253834050571415941646774791101187213316770897037496398025377779548249237066109576316581036221222203566572480899600096523738791346306776681738123247757862449271979284290479108684790399679950904555815406609454140203151077368741033085153096406599244230231760309295172091704924009284397606653810232039714069638115020240154346889574766113219770150036146762081933439080102541445820851517068344150774353502984926818344852293387237815343353691016159518541878043985011206699067588832950479449152375873930430622349613505327922956170897841298895721529159401567464429915881810184732265831140743962137242242226689079023421583078833181905127315048540880047682711132840645790320441779779822056115686560871409382328647491607243068127105010273038969108431874774228439826904370010095144855631972329273689314772098512900971481198466271995288060766066255920567567278524833157269130490719719771644282893368587061006512307678155071669988148141695222818952483839626879119036078713935749378828249363113398929108508440494546136559403308334968448609239748819785098947387873513101106912241904132207726696593854039508519516788355026407872833342338853927139601182918485537282807483737823256416707811208790490969353742095208799435193068917118664704564072493934348995042457267423676250351664897679859796889725601020924853298192802271793719618847198092177329732585905588992444795941017481010280458618171099419027043948564897237985484191532044799844838196217350200049528705428561277009939524818347412702290004539004122479648428551193876578846318955886291630893548770085436345256958752275192527262681815276844746459449088072870090624299278660981680783728073719729659371378397263457137593160295887240739656531900308793627736730873161923036887361312397774937247824620878688204432744071667984867216562420242447591019421186357076099081433725340749840556558419626612054303923768016678126950743529415178852439291626776194393101631626746873369233088733875940799824678263383334897418506090551372473882828067048093166867996609015515121833265827241721453365232995334951479390424751554230172669249489281213393975947878106840530101533102254704707793752987683499893277800132760386804184058848064615859977483319451949915616938218757891206783681770482101554516324217465003817074865756427779867815446027388083946121095410111362975073191983986542576041696637542498887140771452086742997884797893619601260934125768453887791422446282716425138843677687617288673122212518687807141052870794376694625154342000710564080181776372749962463615483159856177487370417005416213601679485341260504981808357508642972311487361181705054990840647403010313768787744683855301476094521087537144561465277581007880977516182199596158405276823953402376216610491780588976773683123155102150242477016653369901910910463236076801230352441716298043508388532877211569102320527778465317904002898271834638453086065832859444257551251986392518989048813246384531758688426204087789766054134488051001622982314141512935201915435191011456987961747423915497548354864843728021146590999253884562173108503526915894765149475981793527199320049902005103288256079280996428220776236047241583663557297781810162150267472221327360800370629370861398594343199148769150255431014315690105039449215350546993701202329225210829665862904247808213358965684506536807805430271095773323464804163971454555205592022678856590871058432601568065008742321909510386035913090633407397220192513648067832536159147409409441362765942240407627193422970468856829997198128726233269102181454623904932699597215110997513253734145856325232541405024988540900081818570657429676696369469951145889340287514625707974635004044034003427408218075012696311127676556504433343609916546046126884840583469343852642965527536655679956942608403128350811057060690676681560585910863298919704659179954290179252673976337382398374130099292159317025787773516841014139013268798159036666844423256201065473428535361760203431110405933954354252702651638659663390192619882696028603608070892271325270689294804253152385124849579374810177412776496200303434672257395548013707963878817774312461611339192818814557981869985744624936097661438203274452265357253862507147548638717605467170724230127140851179568352459373541975455884182942255399794863712900927305000603187672371282428710987561207386577833254598736075369735903740149835509035947936536265483562743622138565087707443712614566007870378593358901733099420767281775651325780673412573726823952174932187690292910436610821492277316058437241593419032980552378124493784998610591506342925097335447378979346204229805887157681366087840855851143552676424760193525140411725911537240236551038204365269737670661150943153903984107541440278755973805599059685186039990727017991535614095592781660214722479819147675574907722125042741176586904437843911265493395297085271100798290488787763877777929308622718698364602425620806530351870989214648577145586431090573004949353947009056795879976883208195140308619019638653172944007583159491467451919595544677245182255320796207771941226764450907520341982292352402154886867247887243344531733919509460620043595434817374831603798432773235816110625864808196869801054726409506492317435190566717996552280509348319727196704322758371870973345696976836477892439020520418060571280065265961384186305866741522583310976076299576685797673307976886020872110669697468558295386618361396715582561261555649331275673588267948560234123323015167880004679733936497321980579442902873956389914433399298326004460487588212776911173084287079302083096540021652323799547512276582719831786007420842442547223274819389455795076001362354868988897425855990038383309381937389281308081458079516150596897005279430195986108123217884353010826717164087099195826292704984380715068046335222951615484621752485165598954921517105793155349188216670251307055216632134630678332316134090120908093478810817173660056931002728283867318448328939723414133437296349532670770006120375726545076745909266402397376945655947744833830661951705689012272055305441370504042046470800161732835262531758874901892271284279404881158704415091431560878332452851532833159963553450948045500711177445607128163914496298907750399684572010288726927959400327788467547518281330621141466724006432514924405621451787307764338279507563336153469699609666468544269985415054737007101706641475553862102154557823616754521136342331969583234152142103741018288913192976251443380171388224886548940447114362942150061331528595956442788220828714150926935496898141017512974869995630062127541854701398019298418506165023059665668836717656908496131139915869046258473746278975269595561410183443544168595345382892949005502673176962621416629683410472113002649551299856872352094656219041829914049611974840581385763520702462694831350891751189467224917129151864729891613908687834502461089941095968270270348628487927689303227203353779674206742913711098779458367329562256793541457925108442931481232234266954089229723466414820907101988982405775126805178770333958415813963836466824965714273510220581848319126699525110246904915160966462692859569080946736047633522348418649901687065795433284223510736804196508269172286493090190046280612807499243397251968773003753160530511300319659326707438303926381954440036098446496940688511894011765864778438130082200434758713841413511651031464853206681958938375303651489794878453006722560238925068524970449103499652486425678087053790685672321550927510410262819018039319831275703774978183843531589115283320533476510902581512285449627975298545855340843600199319958548188149973103107495974157845375217084066016923549772715371700005888676205802532362145914405837442902232363250666870117587994131706265911798829311702383932769204574716265946868350506626286759162583153838049120018759220439881930780783105322654920669142131536802239813307751277717849093204558469541023129528367806831747585022786773907290804722846076559775669702850757822110647687821841701491218695544987748336515973499216441313038357313242617132158470556537348152776298507652107048268041510623934961287262573799672441041499204045444768450829477951106232858074281967195966451532852576002431987290949760522806167262476394825472460059206784102893553952249616747904429750954047705651345964575288127508474347666339426305003439373996675731084809492470613047082529279713191643122970645842212710873048767992772376152000015435249219195314574118671836531467268216788757027284132591284140472305842187277151258211724939563367883704306641044916362577725372423225567994935437487894569328568160533255600402199646652578476215357856045466725171202074018635515079180237561459839216162989850751570626213250316986209115219746475176454129001833628086490398664516480178447148638407419015034568521825852056910186196160958923705456722354604426927602269669290008669418875020497979029625021920447167487564428427178641757579823629842834577772642144225393704797510931249776369076507668983932684389909002725764727145088032921092925717470549604021979587410360593795103643144650200775195697299460026609888068966812133491823403007416525404313923652787679503941639899548185069809644343949961624210687277156078467436177604670919993534235616081814530359679611328723981373915635084503611154089714851900045842799855372555320736969623422707429891515825702965710052358053723419012288423597845666959867963917448777687288355338549669864995524102145335711777946169318592826620769314784165237763618563215032391529212029364000249276847031200603130358533260421265776188696412252988741878379546814487318013629784987220926173791271545255466593510055240673532239727571554307911086513095579681875283448494153958535611113997539004251993498507528451885732810630445651794655065579828569237654591862823326404406858940369947017762002057009257580995854275213655908076682843363599216933466297419344192476498475843335556496399678831464521501497550687716096763199218803524294064866625158827689100309283445394220313102580479030578497772925213480115058560987691074503053847175769762834739826858478611554590253184992537960772605533231433399644634424877343506172208453875157022168994422830105494288343179675057507815936016768809902192744926881783527085703225167914780108415259114159087949755160723130080691918401637254632815632657584021630389988367847000528181788995852441761313994689696711591345391716835289287384414504585665495878678330759271826660250152371247310544527228679374487014421201794987114668043644934425255389903199739130340371877520786717191204209195545329167148047910018072893398725517791395555299518425418439453642094401155521895362855293632704913918153042647044275470184913872297765523858025742555382131943223606699258966922789036416249522206155208137040500478791125831674387168626027601164329958117317951330072511728981019023000021683860499392825353096521294817621347409831143696337192713975813574362215347903030132385274893128049258017347717540481664231354561394623234226127305480739588852923821951630850010632060129152452204877435182122497619695434490828658513774249781117110259404524069637953982964905184384497536722187457692760194670325190125752340891105369053638822776475022357837012711136593909029845326126749205905109576317172137672134542707640334121881764942761146964756114799125728666954582393302254588908206647363946346809129768259613425505357828878602082890851021518095418290224796595978286003964408319845855639380283795046589304566020982072918424325982277424305924964458057708760876870091223085403670664225033366994890461774876521689600050301740813328733039218867197285336006002673400177373459800572993645038826297011757504274814562064383979732152880425525928071182212203682718859675521167596945383026116758424050926901663616324268264374340902100126322223098931941859438356421648573451654027123601378950639595481603374538509459257448513449341457565988552913537980552902623612278202658902789892906852934676678602889196387362694408974171356946679755293644548448510570506586522622308307246509981979588445393993920184331083928697602720871894053113891520441428999265272578107433565215859202523904798016564748012771642153728357312386732505136465118830795092767106493063387407694932803386849343803155320371639788051961659021987582187076496260258271612381804185139570155162508834766638074474774520979487324240984288676860440696788606975088757292614001694830252294819160153787573810484543897743461676585640820250817017956616141571625661337072430351302997387400551899306664920872549054904632810851915722610441263312000797669770093748016826617013955344645805399595576497336312675166681824091660971196050364917841980243926418336815900706514614089039172137114893126918786953576601029962316013477879086438511828844740311962308942965792748096662359169970067367718049615906141817108300907917581828626703627556644972020859730232742684599412595855950108312883169313617333566690801702351514467832937330756398411794220421729822519747264439942778456981147023772673067404214691191754711193573825497132389961966574248959702296037114538795811850835018613149887864641898669842058762869655644642934777274348184628875593061970370240413407067703823043037698525067944576463239383301161953951657593987902567963816429957787848762668514067101042764592214222558256683172984540387863241468884262698144163636344764033233732361715814501103936153698674895132102910896079433643169906753943347905693064135381795380824620745983714874096642187826698800306924969702861729350579777307930302401223929716904765096172411568350592117431926486320184108195403711651520674900885906378412500088917744694081356697728642194434275516954432471962228028884317496273271964664719799263079641546964294011556278215693932478131054176938612928341168114602441380615566033346670729359317846411992050156814862439575556211228181231754587176282647384615792091980111458923855005684818874388907592011867136489325694045253378897288124517053225355718057630899028980690955174488048583132816756951361826978036750352738296727949510143988328035616552020290910107948779204614052591818879881465655187373336726613567464317696070412389854741347539956978440082377145041515056080757813819301842225642417186214606888504580916281235487217355071103255141527159153505231375902710646214442575479225145508694470120377785837951890848199554697536080775174591479201603295614562018307404921883245345669188135155645852460719476015690184715100981763267055358471336773474532045673839684917772364382296663909458183089520465699128376745911026269588429116088139521059961703070619824230797171245103407207043116507869187608127792603616379864464889443356584080621248093334688366980393122118909848262559121704084824733807180851759329482411464394523307575282766029396816605435163802495658432296343325620844466114115104154029899777806387730232986389699636566033157753298477402353506868350145640100130331568048900914608255380703851418923613835186700269393883615883947232659685710768545259439207100561161003664469153710858406756509087895881609481285614872455947794544805584998062848807947010358164616462553600232015682415163011688690970113948457423614858426285495822086003864928695843532476311394879840790706788156255725661547378710637227577344282789999889989597175581686802053316399815926307728487178567699442274146523839903146371226204451795755710761277504040003746192098049834193437552695081352525950613705400427413232887201451743338971265754851736241520751065883411571890542567898194403043650321988300743250389328649753704403199904907264899196831397624613984253086799319733877170852039390458396504200462627763894534490317659056801732795526488696086276245142720093633285335285975203941889723431349759986498042157686667083880620659020016270135192906165062446407174563327393801231361945720722615921389905932934308566871438522431893033146911926508212823886656862975245771925676423240782644285875520221751449993491219095107284316875570964516784011764615236396562060706776829677154432203581679276466960714555905427789227794107852344287167607233021863399660579382042657928735074859841245539985022812332126508036588550365578815989573703915504015975868394181809170393865873831925655445219977356115938099620429568828962680675932515632503684516714849945934278385596879803617415144538487021870661469905890756771674703875194641959548696042783187735681244493774913134777579689449242429512474360432175477276856731086774967304853520084530788971511715878125638304894289681674222018221763987545798822211654624171440567430590759066788744367078405731206687661433726081462901130446104028677660289342220925815985058626794345354214363049600103957975413473104757425015092153804884696953320693402968105590456323434542651142309680592432093258864891246909821821631536220841505018023630629339525804515358942703479615156529699565132216786758505722923719875511352378734079135006037129183778521292269914530298985199035701144322345460838167502149140696036566262152855043602608569376472646240004873331880828320377978378767385835675780903978166042180158046170502496682417740696879559159019686642048339669802858484832197636545650771144747351206972671079545424825368069492579077561222285938552055119413044130521414878559458770537757393603978540534015367969581894351245846227029825801610362528777092515290110022693377947304820993236163922201850365975660041860142982891511363541523473951703350102853647204469869648055085224824965327947160107926202133661272246707700117678194323321258534663158289276568486591834649969024167957312621406294869848089942019363843362181000783720925779998655378633751352781684610021288776707423122837880227408427521950369702288473168386028280090351169618168568774791091926892109645519109897834441026964842398150416547435943771325428509026176763147768695187405026299674923050252131034065071301695070270419063638600600858667814316554252396269154254574946484811044443454835959972705954826826692839168974281550149967354590690380677551711047381454806910490090155369813811343028567314696223301628743211880219163647353580302856229814452094071825865778463812695214343603372642731043602968885145499403504027312427844200931369201303241504822362914383235950422020723243308066764248966604399086007509659478433634635204728770562388336392787256131196999830590714033393799895193519783947254538025872612339294164689334546195397945155706891081419240987184189483495688269890643240115373309677257551068469836062193683725784236429435553440750402979805853738938340398756033847624757097620244371491859880593716702029541215810852700219907390587576797732646137046043889616392219191864862852650595531329958049973420454279709527826699903403368242183474508534737732795486749211916786329336743368896361048201600366807450366624706323656323986675865682560999883863882242598347800438349214786821194525989758220321213039781370235787622287122027669445836013441242046630515969488523919227408845290856131688213885785303715103456369390294130521061463417472847291606397596829838153661387827785044051014107659444223633879954786119411227301673133147256750280967011879040890257552361779665059440822799706124325275035782669321519607749453187349319678499640154925295046195441668863056024944490817632772410241816547748923117107783155681408002573931238465909161720053526254096284625366100188708549174830418190168170959616267446933011281076699022682084745024180757415012036369239451944597241137225796944473595777265775397417684600246686716963856319804211948246087274384359273685762379795671576009219298356746935573598231130093375737756321484630798901145575730313446364325681368846091618460996059099540345071461817038209474705968243113274041435012841368412539241762578340852312191828045971489392129102923222509515936377656993774724769796410869918704247412052394834767466150445735023817894208933655351964216153728373485610602223631247118934258953044490252445154529870485462048987296581653942810251165620034193756433331617314757039193265109127596987973373819134015804163393164474729745723764777311145640830148090472049543401008086100396879216832930162590424000720184557822852397010833701952029944886611566170524258562362763167311452765546580854256400229772634951583743167469409499955585320054657417641849047486118369801183514142410901615942408576540090189499367995951805159112267165517325364740461087530853359658592670934561565727065639025371529221931737331353972625241600607221721864578607435075510297011596375943635702988690645714132545323776979868245015051349976055711302713726645007806799095262332967404343421357116176463246431631003410451310606275738815587500438372818096787559711570565469179493786211251071490621781529587906204083490363793092845830720927846513840939891801502214653845468681083741697154780631803599021610666138541315756927680728638629095976944589396084694985766520815500443574095513248214279736560493264669731290965004646882728198146459325927594159313318046405340224742815725083058440981702729885458905517437972719862267660192095721495451355191349587112411000395320887704924208563095685594588044980851038877290214794538180207096563827955452064368664565951063440513757523200257695238219222098458515860304673889590317985049592051035004694394812678031134606015300206251348275829993724667025644372177900302895059781563643163204576725107891848773286507857088715413815832132350233709255834321386391256206178722574569059025958860164578117121587241042382344260039156334929132523141370259010252521488667467306901294173129768497163580493121859506832175115747381951667394977793024503460120794778140777656546955771990829839912721520906620719849494519491648975824967240535671898814146748046720013398323982370185070829020726301322325409096684123528635294468046018739525426301545975827256438308272197152036229324962992754790527720748794714315432917050470772564920843427653984673077453260724421247846620305384432711081441320591106648231526159282405253170577329344391200828634401984385754040339716166757412124649297984492338801300923311938909345321054650739606946420261982246140411853498785570880637679426170236256418029093914740364288142301867223499425133035780098777698361823628567862351794229398707282295462631644737328829819660777806536157565284593508977723487720950651088973034714635355463492915588222072298619942242370647965037307992167214622596131669917783126456296780673707418443816639531227922479728038912342862145933089593541897677725642985897139280783694609573608740152643633055814008988687236744358559291484032415682235307236029726422283247955725616853634609220260133525240920285126811440786441504198982895579054512624697714371880237007731428522771736711907448380358541079549157584336254019650394542704233513734493096746272444674378390962369785013784978437333391831638738064872579207206191311006090994262798721535226349519146454786273341785418148875124738247754245990939261177100137284428615512522875608643174875288248857542437726743234267140975164189358410555061624325391575654370315622386151126070027402509145235805223477195038767132017649993367326318031437634921779467809233337319583875446246397102161387028602708612715570599303195516198496277313513559690264034412997301279885770049128359330328063947238303927892672142732743189441974384620972371292638196294971989494994445976523747363923834994967264916049696421390169930073190437433424034029029432915776274501237976879900900093082330586178986554324141263937404796109333233945965363028465612551478294459755307027441275704076867898694611378228571314943725574881728503774473521590449297401606585206565857073721105644033556513339883667564906820519876629217778140471634614628690240136840968572583968967477473049708214898525750181655834533406440834749864540053418452541856125408787923384919226148423575868257148390168900965175101199890367954428836327593865640025060411613677878485707448538007654136190101057467239455002719913825423279132236502600303708679126337156829531365216157839158100364406976146822382685196219221795086617293763548906077191025567684019248183458377983999405930935882663423794853020458965620590817443981078925163703762834216561899008119773695666489197246714429965376550834761452577785296992868143774912041467230995859114903434416798361604809437383879677652239392994630789442618928574345643331730863810155655125497897783346296459105163268205120723239371091283122660387050680893748325074430387479143376926225628838391967999249632222060087993117155814597081971918301013043223261844313647326036930996049028975406859217468835724266882300109844262779669936868427409552733501476553103679376819413419624981121257649665394567496964365516330144551960657287493833302908446288506070793132197520341627017116292808203701455675139602932372578874110853443446712500730405011478232756423276687795118029914627634795055988725735801971083967991941100304866213817225491861756745309877259581912546700403678330328333381756975132178672911603766997446320530695189379211733546295879620037108080110995129360206610885389372917489965061911561498340674900137252527739181834477479065499752944140078813517191395330516651613510898700777817366555098556466684572289836244269647110060574452992406586173621575675822916039263729856346576243259956519230821029624614537218107685266789796320813722883784739938579149802927394446889063702809254905147911242694753467139279689252272569199231759891870094382538462970057496231677785805846326503843646805250639509599771360770305123093106581932066267956233548058527087535098734525401834884471161701494521171738683728138972231368558021475304571074447511581848508524121617821742087718129536381598346986284735487125148749273714858294749308442590727219730455373061169096926210340617434470316815877548055075388215446033754724475136792627817654519945674592790063166004125014445641402278061229398551327984773783974251068666246511208072353735322710438365958938281814729067856783706699871947020980752151381555957936465746753553771281421982937500272136036683370509377329847898924128674269800001449087468167376343342906520895186522992977009195015711149987995049736225407347732598354017454564990177209519301891729796676609956457205458031626514160867191386541916569039280736826372786350352640431740745496074797697774049164411703174285263365866171853720522852835545087800811803424291882760847919025591427457313421242994001959967734905600422262530599042450779566829055845929552216322245369555175469698104560969244948544248466156273434059682336235786687482348894657750936987221568898730224367285729170702656682671548567998540253100596210951708761457178328796138994971200953676732792428606130191376967946258101720630736860445835256473291261553179631134619229654651483711136830341320167350410983774435597840570968582663437068175259382359997438423505065912719112201378630921510220118915893877650708749797699940157828255660280086118286929974852992023133847660679020984004281464873005405359056405114517236760496476167057631654441400827982231369597224899740407003297061972034479262033049457727275077291007350026350932696263748732050718903578396031615600845699050124528263184772773616057940444223298537319107187427373129206794807176467683493581512780610099507978787382178617314143618382049646683548463732923775216600338047650990526529956648256523270656120990965756255161060044234275167530973435592984512710276059552327017154930016021538637246063548861392638941264574486458003310907706053818435345287692297789165954168512519613448768648993319495947673940662854347942163215410570239362807454788856752474352230769369816663886531036015576621686863520650705936176695389933151346936377390858443981763125904434479279760878523372029753138635412222819970273747878999060328222753390883285656730085724284855351021164971808271633393388521813817929971815679300269137144325351936450410092959291018369394342671401144065205413471171157038058956693131776057698717181999813894596674767183494335814408661985491726423080565267194557311122394690315038266024914612442684171558088058737892034815986695870462770052763718721743690907875197695849898940071322406588225174487599938621266253785910329139844171570837329491708021942625569080777429476874738176799165482907795574662736309894288230190007222696028932518909586960125325198419804235534301130699566081159293390713511361578115103438979815659512750659184166840796451607210442011188455180669405756276028074577597773920098430002501992604863277631673609659303023196631071206916555009607051704362003191568917508872812178978154319044326746516408309158921931851302238376015767135362950228292408663259329678796907346262281384900583872197083372674827290521796232185655517915896656598615484844024190339120927093882724723555548258691816981755019805213048631930910136577467999765688165732845172801129562922723286918509694816045374181513278710573111215491279380746954486138599362704202235704058883817551699024443807971158854250488304018292433872797362697889170284856944445678612698968155083469450807539265686914798239382592733008893726194705764350038329624212409705912118481297032443408259738606603456443221743577261006618370265685044230728715204057940871583067897206691537015266077919057821760174372629378638916792869837216483452842066591246070466981720032300833632998940548859497624445506218785154452339801067654137788427718614699408211891730003658077558593972395753484148898133886067143519246019385161385017556633149418114358696006809388317888182498403234136307590609626533766007355009092666550005702747218208537729134073650878323963435662466187779544516802240805649744237439033893586882107409281409222600494805444737843488005448708861405287227864412352185099441406168291440402667698585451521998029989551397966379867929364181253133507464883290123325194452461691987688918686386212024025901564750994265290661266395353029867417891138830659368536708213686584046936968397994828901907404986004023501985050365500941591620912898190255295717609667868596023601139054139101406881875730963728124040677766373965359601825616356009596540444577066061007565359337676985947692154899366932566055001081317830455113109064497926956061035969406474480644832020193504251991528714540415434481740936701635118096953685741080843951232936149129478437383516777922229917384386496650450254742796010314883570549137169250672215437258452187226249664377333070343930617722552920335088047971044638131149449982738664254961474976508946486585826857983397180142857347429824625748118338683661089094695424851310325510816087315744842244344709123587653087467805600182001458993138631245046144475195308755511592814554959086061490785418991651290859589570485805030602368855343817599907564318264010400371396794699080840121194750923544130292984358905812369628129120307295391896757163019686677147370462551140106297263643610280522666799681411483815317185833302551453448183524702285419476781143107494518116759614196388553391952745439827733903478028031027240051918567022107381885796408601713395921548311251758715913310452385658995850484969026224470010584790636366553131531648771684773142146191099680635784279514527387590532773619940876142871439470960705931734698995194255047151901518660931680520327784336673959552334828535282445778313029306997986576459924114551126834132562994224543641949682576346012364916427358621304485199246461584776608158865068692271432610979047507669427907594945586147611516732310494095495040096512139888758777115136169616518117514964921163252635597161157777529575563397396592547983092497382440622728543503587798871249868427073706530476515668057272291215755637309752803639758284144936204680647811115510292873102749207593976312131161362080066117164269082037103386292074099861099808121026938747957630236246280842238375733303321686550823347544871644526152603952718884323460479961728929476552839480389348680599535618065753319942501168243449048250331936028491276797988705089083550668649675239686760824330845514565995958218937469763733167862613034741613906553402931840361566781951486494781170090914655999164053765535568556360592389490091920927775520914329111236621469012275871886520046128707335180568528599693608867161121346614579840274603652998115533456577789406600745186601312322243777317199194391148267554870018651207064123163937820746472490511311302243761125940823580830782898778827189038440022143303156504565822694853461599976271197512684062906617656826244379038182300590286675551274943626952129236718686865386904946432198691005984627948771585107569780693066432353432261356302954706689756894444421614038705920656226578476473989640041776008432365958712804830652292385017769501536421464160011532313218265271058228034989673995431539968000107499438118944896850443506187920528428870867064617672980315024483471115423439286198439050094160449570044246382158946346353498081413835656455373780866366103064686535236656727161637635166575436281162574580049707160362860785674132960214609663549245177664591340370608660024990908783797084058200385205380111026422598376329754933672592389248691326908936275629105656539778106716392977408772920874326014811417817549032916098657152999290088548662978154416722903648426184577717452233475148586375768446392546592932265341698772920084132635957660847925422007912422061408638885455473757565984738709462808070656715768084764245142331477399993616602064973432897417166333177224085059905806006353288587092599107619791116716653582407840826051445177639303607141338286686342216603101571506238147660520293369379917729330135716004520845902624499353597168689852194426680063361787646270645719407271610629774647031732826331900044702330591104433861605549412772790119867388948749092487978624732490730465371717687526813331288122104310667842466967628763475154223915929101524102029795721514899121013417766540200223706886374136981929035454657229976564365540485522852016988650956618886771821233801241723922917865882026759696772177492617887857804568866304826241646844294499646123324828224351779093165784547946871558788813805867830323117100490208147328619360169175606764389979714743980183412467966614343120658400966006583360070866766671041186005554032600431211545674810171226338407416820993260176865903710482656919204054109425889524326179091890382384128353273269714152642738866509296873418562042330174863081543575805150305316451022029895021321615904517765142219063998611487082373983779120524794802124854576794754410922635188669162925637451753132742262343142475501960797734984078941291075438356268633833526368343351760831219758775714671557838155415607559298406891269004945640520958684624624517108120157353251777393501040596307932078796216460444091077480749326921420923301239687515684073499292472336622809482488491572483453941383919500354852159606739166914581150985455941693217499940551164111450320480753236989275565167231079700644399990179699281905564145217365776277378830882608806360243226167519011378397056589064895733434663595013188684427813853333192326498199017452475921242800250797735077371568888863960397502281672189065359225741912269813790942913375557827956446264674483049740929492704475597939665215035481026563000408183285956354116340922951287436424100268075622623277407700731582915949252303050393873997363014276661287373455403127587197958013206396488609339961228411384931258961225551293908571406265073474141921435850293506790096889314922329527684019974142957032922662128046359533937234948900459359361537525671557519484692791720571371156575345620867870628308814158315902833756060264622875968574912994648113739384986549022097937838646171055040412421820570534720863397152895587985012824532753993881989618057536841113599058965793904019892839011389858366267932438846174060197623954593689028756917016413370913008008947382429980522089111454828034228408922397398081121491586688118491065268082090738789469237621440690815044739500134417505752282297803933487704278206643054121327122667363760924734467967469750065895738594626975518363514756981664319832400759044314389761029377920058102364638134737534809729721473493731050791945759246970458151337131454619836718627593631688186186889538721965790421968608682316368264590645472159515419210836773636237881310690324927968506669797804197788732951438925547677961735739030965440483367120157147901940466547819345006014231543103594743816127958708426306965392147775721921009931070063384710595738783157312508246678901105255962217510835960154081196133633230444601076270893852212893492196493201325926913009502223711994028911554523758030100167047068918882724025430832938389588418215930165003131241543072973323159972960117944473134411321697660334007592901335963055039466088896814839293124109848278250900058134120374586612817646292536019420241848290954040429879424757745202421404223704509891594600749421700797705901147821461892373977796897278291510030243018066344878052386565784747432834422252747148802672429216623159870441680925906929513541843561401528276111880785533521585105867288684908001176849156887931098776694865515304428515009601667578901471867273912056648536545406393375614197526307409308801176492544512236400514261943381740523577669708793232734222877567731960552512775532365521941037103131331700780568487782814978359964993510068362792207423580281264337069468602390675013107205722256270728998318920761593892062083820307633535707779993781812571321958553240892244778023991249107501182066922231728493635799522224484743879385172774352292915948744796427411577484753398291273377567959202737124612796891372762914534989770965401109775654049064921492694829119107233988724686796916564029568749486383325609508465466016254206592243275873944543077332485638646115455246401240025882045471964135870097447319005791705798405168928822173770283697085315166292445819581253910964228238338151515439414054136811536957379678376104704320360535778589142576950525940696662077243412205929771048491794358000295654515212943427839956553311242635136025020175209091520533387383827384378791769050999014299978047544406835856847892153943125769298618225987405402414974537643956542728261146655069014085831134714785788610873705177353044189926151357263668581659079279212297794670332967709793829171516086054885091457203050914358043392108493600587542083345155189897713110156060709261419382083381397348070477135491875913401498949012583728201675186733286307371703511413988032796630777181414557278640280126523079441515073258787789302736629532942910565856451748576256884132527749391290394012688937859684584025786724361581161446705078572195698450073399387295832193732276113357081220116353167791988892812757660425066073284964345674298536203914187304225972930699545441934287525340921686587316957538981493231127429249575219923149056357681482552474486243135508173778479495154717293244080049126956423515133235971735791379535392767762785964799714024757022671333801839426101676870779616047828819459788942544169745271877053233764527138395254457583973076462190184719408520471824879621163700758903590800039705001032610121398429681483670477809618517143243545423042460701678930501754124395846087190704578301851427315735309511819823324314201568451974647487773416891806442716964020433470098110430204393287225097476806758905450894208646066926686951489527700113802171275520554122388596864349466251213984605059557413790670444906206341262797642588740515040482858083715473445862415280668083726182022733953469814888991805825983031443503722602776411262505080476603068704501096736377135743431633040545802969851179057691157770203411139619756971961431761467277103685805276145699952464470849716264609418612547227664511610919448347081560416385872102813995188461402645456647562658226780043840424430869742658738957676261373918753483834654422006790963460663487185017244847078704978220403359862242714146329428335935105188230735321017428908491994463155803075559169179375940981638001516097509272478446717712814840609549224899190022427588955725979645601412858608761561767857360683019312635633536050812300241610987664392507420424743227937275543808390689642922136445647318914684072166830511152037721136907678999370871406555275462533812541196597197491493511455827958585563126271427599322404847254893141676177825598913980721638731553268432875384296152390027685931751515247105291844903327464874207818937525098862327949997615749677495150441731884514413824166116300882710669173327281708332999594435006036961639075232013774532829303488737128862863686589877033091767781797350625014086592643069036043601735628497452945120839322540670949830625800277310464813775834846306155233131181991995044472808090314437268910107462440861840789418573939989010170700257973396743029247205533160485546531399528620406451748481044525902673441655958223319916629824837619360262006757253801805625966799680535848168556843800103969672215954391333775865519025932746262650609055040665028232207387732877152445140836271433695814426494398778915212868090068535635804751042978404126526575076440141970599250595984877874698926533020732811221327688730683755360291317372433670409048598361236999340008842155837573028440465710635906589579352982766368598628321519268276323181731762037226399314883053556533515185233489582972004283692889827115937030757219795423982761813096196473754705272825374538554573180177430284552714415883897786756190070820259359356525923690068905489153024609467773594161553658430415075148842499394052173844252379424579853189685372108984282235067403999201774373459840236515372203199255546003027476272559761799835700650101091398750894596884693513071563932926179734547253304978012910633029140892410445138078667194298213607435326188955240649703054502381363785416705430846257241098039678832614985024673816127304051768976808992335189264472548523702176693422257836207445887185113639207964753627683854148978336142712542778380551632926711108794131083352210437862254981559853683617275713829895748085228691504317881390444167968424158020715901215046156089552311604949354409826557610511495874176009215120791272039392395520512542991382175277907882205974502217634753736769773934412856779523579158878398478893154683986452408074871049096483973349629623097793504454297996443568787415476468995939263952780955030589821318989561816485109358810192144425686770082285429037728496580884567213536695300345887994912825750121150780205469384080921801322356843890836044986099431117196206203251577005746008359536282659790076064152267147479748664442797037273923244163313689940862017616823970425782967073024370012026056702002080158477483793078145603210307957516133373657876623907262679925112864967003419195285138746652019853348401109990845522455708606009629668615118316877189943250488581956379034906019684179143500112541467275756980028057600860450035633752828228718216545671545303318620549325604491832942702210083404481736942186005254199626462506896271462075515953940397870191385156259021359767785264920369982051616888368876809917822226562628973365160682561243766169717228322823109665084703264257777559670898583812123641090705696784309038502853414059412519964480472019750455078006002242370755085909543410753298832609878294308221204574466177573183952155993917633344573097853080994794609087913129459565527092779769510121855849103091772870633142226275688409719491027609807945234277346972741434258523608449598201444395563756033685209406883665389870424641482724867271485540702266172847675382996344675354185112248154000163130448989427024484211519347073557954252630306931471568014847381053450420784818419254606308496149358381033002550171145352958011892723529002747978470267743902416119630789095852051350347720944278545891917446663966893815560671412302153764806721017505589784470580316884924687288089549596803984300729976659742364029225590475257569378091224688482851622681330571648280216644499165913301680408044499385725740332902601930786933168710931425025374608049589584650499479053099266762772942956524486829164292493416339335729357862274169422567524373867097596429554669663659880890946287684066530698820134312205899563979792829186292361991795135231618959150376187819547054948396858583649052472539462094059822955248063712411302716299169613919677202636687554907376154951276314823956169558292624256660765953471236292055094069626581904018464257378495105540004649879150776541954498704344352774671504992897846897526383750427555225306720294360802915606007997436238445433903783169878455485711442327724828653229021347348390153534069215028825866474237332310213069460292437287585968480775488249538898687285538160502845739575443670814416767234920847599160291459961161416198421246063135204341824928528832747079675811129385816933502005446895019005356616175900092776503999197547247538635038502835370913315651704520395729629498277074917621311331717905886971934699624226574198679026991543345545957913297509911187436265055151790074008840676310301830005669912653060000759441402793534216354570641370029876259427310348007695342005329321748291368096657655619212671150776195912093000208935940815193064650634150693709065668433279633269988659791922170252370614492474059756591856961859435618825435528734144558638428428253777889687832735697014798133528773093635205264454769712731598447172065410077025306273615626509965154351397701920095549402651749411569516847785801123616867303739747913077334745573615431284254561292007243546597990130034511568652764019756641409456481851011983377618300120681165474272805291168485243422326850157202068971541147228346597203005530401799596399838221221053133614223766015876099104615234190532734400943890027961465776749620569895793870387617964971870785301346300967062920903529210972001227307101006629756577678665125589802430432702611094480485242988292580475771585237105141653112369084528112515125122967376256511402772160509800445674356698580251588613076475334564015784694391331801396316646429373428724917756479428342400588130576498009702192300400558434202530821009423224025050521285196469237345648357693769903771442765016647516585767700698171669460200653985670232476831670744557779760401618863008701774854813801872277860884403203013559077826905511007071943750562176429610658590553754920427231462223621648733843132907397989143451852027820143193841310911739115312867740403112501776301592541853480089740814240403019773984553210877440483712651909324294837378768812210624976161399989680547705608792627207324229541378451166316596093082959292712875901001704881509246483036661311083080541772277605210833715882492227343370772515249951761196962907455834433387284853226966114779900993115313702462068419087866859587724317327970750407850054045638688061904088075293905815989891827506305530627494368693138508615277917277904488305664015018245232346672563244275579086284596646303368950132230166091272557448901468425264654564401584852343349710919035724631556123208069079720391388043586316238370306679213356861472340627221464527947945298801605708049063607906276706939777595870070036662977591202786726334904433758334518267558552064763079916100352113003278007247911470992009374018181503304672504379860501630538948743772810119131810511690540592414119384170063611264816565778100088539263981276915398043742099372463071298791261430783534441988470642297059774773651966198476224198716519856280440705065171874299785799769543063550738996709590177977010060215586950007339782485337618137535810061955715281621143440567412911060352226495198739871011431221858972650322467130619211031402691806791800422079013651803823396540510551896025843347735153307393107752758702514508056036579750421532520737838347974005867119721221584814800089057822970770656330090796435674085508915290103584723994970293324958506581240930317502522213646640484969707818253466501438503514294479772358727526823960974366651409759887555816020631925052495457682983519135352604262846210712455263014787044022387096135249669268223272543559057120696810482408572691828265053018159932131221346620460462291919714930721735467725473875209488900946200652133349284720994778633467355229201786189383810451375442567939643459711581414537242722021159689551394027506707922711226096153135355432977584383692054741938444772318289553149394605178482671418783835927490977589562788765860883988187913796295147000236385024016488361810648108326532893283313082793765779753729345902876651248034650477528699151254222829698226780420700625335063850386108646760032832842068143585021876217090146222974923221780987959655853698065926879781158589393126616078478811236483582710211254457907088368507522505840431348258003960452014482178403575829073287326590389447980345371611740618776219863109081812995344384993300775919401139539799934262069572992979306995592068416581402836047134587897767284581651070491599336634961599432737675432858031450614940365440382854811453225754993104769235010951029144356324676513575564828521741188761928215891474032413129929729640164514616579438812402284043155535482362514676683581139881404288183640886207731128615208512698814163033234887783655821177608167438199244281586429973569125505615849203546806020771216485966305748182603893655115305541825443247051949821980476965639163744586941824969678832533234878439056080385535675561007905146514725148136786263393791723066551086693737056337842966751396599445148102160844308628204980504489914418933082089875312693432220583087240970472607688875736974358054556213290963896053646113300265409294178456260517827630901035437685445026437672630785113429898413638269755274445613586734039515586734059662482117303666453474453692392330482717423048378975012633333287446996663727337523717936213398010124224524590101691787638150809289635047948602977309946532316327856467293566708755863074457523663305669503064766066450314736578998192132959453887342229552659277362730011615725275367812218079904381761161627571207703178924251774324080229489424116579352047711733358075970865960240121896001766844807245268251846056536629738608814143333346622307127254638207325047187604843264190501391600864771885218271255569905474870536132309280202103130973402402588415887067702792074197887109155922985688527944660804774962966550781288216906876547788120665482569604328996222595821466988600769439419967675472558548866038353117554997524534318655375552776365689426932756958547898279556234365508692336045515144426919891833175987572679971370864263012919451136255330583444059513791585951350592828702922647291782563154858318991647120645665227684477824839598457108058742411769268132303785120510246393656137385000583920502465727215701950844380297747708778077865314377902008817432886077814990828415479403308833718574510166396378399025639733692895267139534981178579265133953322908021807707793029107376304789207135231208558504888320746293911472680982915356758241595054224147634498032648942147403551561229961936599891462438061955902207882738409776380468981784885143233401797833560576921331887610385189721366857835572812913601953029923209326789078792845519095423601197314130824082015770053166317187991595338408723383405402853047390756616602927619210415911819999915859707843466728211364272542292523502945241708040402914181934200952217502693692140478605040055278267114255627942452098418012679587597704761849287184196384474406251641723049565359031168919975738930502493706697272092505134711531391289726547091546888604542417313609213402669646589231931839453998880310098569896256832180966669830988451564695694566282208714010773169554158514297737873024397059130350725009447597038726642721332100654410186216837729818501083420322863179612942948614453975993172832821214197563396314680817831024427648318004458044476560047539221619506040917059645353718798804038611336641794166757212025303434389527731480967586206847320896473875860142928492858914216811543073730432488427460497307333474415178180642692672535911219499727317483559547455715464926405546550783566381265984869816335229121277900448524256584016520429030824213143194338611392233715497399921925835650428720368946907376223621885371520987925864080291342468103851057628674980612717023292939166435793345840885532647559125329477976002235835326015938739767315726890229094644631063840686169151536601932787303017353508803739994930842270383011271840617455727606040312544786556902434956690470967961884364225856995200944678967441618515189622259672860401494724400303096155487401528520585318220266556637007107587026219860837430851245829773329827866372479858531298577006756557616920669897696539965840533587070965160537826074029767707082356891832138397863968518317581564681912155686352743214059169278496385807883857729836970387284903615276581514978725930940990389038719558631132931130762830945993016576388184443871919352335486029723574528673479828775592521993449151390617990733958602132818096113890728823964032432530320194442603517153239955767019694192416043855150947798731748045338664229038744030110741491954156177586914068972245155613319424448880644277248491238069116488333999409862709795147218990203494737594853096564584915935989140862350424431491593033701366832185947477758995555205854826204573435341871268851555767371075629177452280109686785689081492336694458849346019635407605387612323871759803829582602851657081333507669710330491029143342498458197604496182537753971478074021751002828129359099483904647482925266011054768302168831886067815693756672511035726144361831505937487827358343640159822246997757580821448679975944765893095371685975125745758908938286769148444998555075864040197360894068007185030157702766594929832664845664305376824826325115633157334981694360701343063196670283658703487894475332607386138786939245948188269020569418188597668040605756826348662303490475238981267312629661698283654733240261919535210203920995864931142924902128199762638107697303734984302139654077091505816955460343734652325704772737779683488912630064360759753153385274534352401335015852923677151000026423778333882001966411106263572629159094239033131264169963287852942533315033846945353174809482393074315959630923401404022129919528939775268875839561963771859447810918414545086906530053774530582479634324472965251399773584134634941240879059547786508148275604379687424370582957090536580521748890289063849756715868633296551184517437666744518494393195288413881864660594281286411308078975000389836028111080461998570847100736660545000293056901974891379556999474331050244672357884815997860251783091998315955988312132644584305032544749988173756572102788044488243479600585526187560458752965415584493999591171270682121821357076926470316749093314468352795942308638843672484730522156327443227552708437312488462811976132656033484001659245176640952740803944889199000050188407728871439495959678622830475316816684452407168541439079507294179668581866521010004836849406512162424853438657259780000436453278738371507110680688813973512971258960723646675055674191581600859062583149853783205421938343503674800082932122537172267349741301334963907420224184080072038605697240850024832394416422159538555855801207548045061425489207412049970696263875544694708320855336209655348691412272835730521953906735073783727661800984801376567445208925301456693488055479202432586682784227997811102299403389017681764454682488828679595066140034014456059325662692262611985173878617410293806878024310718851241629096082549252498331170270048931462113142687406139867070709072896372808636508380629396689021275652824768305265133584502547591866004079061202906591636572941618343761002643853101293501736024571056861511873281756867411239877134439309228160011398558957570131119037154995190545781200424738015294204385866139407312879632273196380758208498058524972427483687497778991896500369066277148543072731177896955448254338621364047301303961560702309042913886872694375209920277118113830176563708128054966061574567336609325137737503258305500579883147436804751370076515609374271425148027947964447666424597085928663676630943021873708630790535946318003580589695963270978803456782206001066433261810022726266867017392723049159445687014217263710164193836676163088120772234727885903890316204877784554245173760071700869787323039704803210193086592153099552891577659950829031244701140389964606963013753142823342467070330468665700612816882241973103952111066620519310061058297341170032539753003500491294967671340224119778893948120360792027831957783913874648455394599440145606235356007198161547283615457154317793750375496480410355617719835751659383063593466791241610069681220226692176978824947905187420107614837365002946174906805429347167552766767720145886811847192939744864756139020622224846470700296271657033256376712657926361675221849173080921063727129814575542292207787321688624098788264481140216301577241690662755220131412273044805317790601365015485562379678282600420472027966152186266754035041413742492030076246942077944372586305885449345698755765784301923593920204158602933510292071652164586394012916285946858315091648888234698270485381631474960838403153826672564676217333588095147557271245501027357199389643625574344623820095848502018837218160669063531080194327311006621466237066918484339049238502878054844008754895358882072069322094610905947745718162564895191726097679033214726227854179769760995713445659546085361106865830376851365083893870792680911708222887312672999263686156284324888536289301800713142492365847993453004171447464163554937282375802082298444881350700048392794530891624871704663822250198262993106524513171351903428248204789593461566622526302093820000685448786895492949526747427448999471350549461473082077171314937550289469752113061285317807673042127530221955856505063403869063362234819785199247255417644315524765285088007684260060085465762309057625874499154152091693554725861977532515825431741094527321777136365220639024133853685527087763895212646448330960892624738024684528528485110598260746597131204604295706645329037802507953558403809309393648407363189446386819613617701437484944491421614891008998672183372218258394221581368829006884684567303632583975609356710418966672901459347583346601334632007693587687415871825923337200604414484503333546213278196234258199593002784923784470750084525872615366027143217732774456218569539114955510907535639107150443670864657699198710930425305556469267431166037265177546047288152294930505056697574504904969238509347855627954606480340229470645342652716738888043351783214671399847016304109054242833992116080142380250510034080150000999457487205043816470331591603674949790070651005311319333841110429298685373038346551173473738402509804504865466890331237214526163137751775473472718682998649625181612929964222492989437832090096412785982379033736510726109176527039903506033336918990435672857219224070127152663305095641226628145808840017734509401159075294690252910338440586727255645988651969771967887930006202871600113246741035023848802318781330833921888517141194949914104602227135478677670932272120818047725493437734202703872633592950532935423262096572748126389331136093579387199637422920706208866588776119944488685407804354386703780674782599752103107152545241110254151380615254607108364582029806381377957881507878948657886812610338756924508964624268626946916966624115217202227012739186946297379083506209195614591379139251101912903130268543068034109799489469089430918480688350227614822425087764823985627902881629638128398937529391932246099460315149438026602323147221176842132876969238409199639000237503880424500215351919527810587784888685215538418944278773302099374494450410817084468096137036344063985658876430495707444988638759318439720610135403321507864429810084553164077800776129927137139655830521676284830636648284247193720461010045434947664501479935831452517341150336494249402013221928787523728760130268118848761516172922608308861057158531083028011805044567022959740253182403914096622538834697573219029678434858774596339042566364324635811314871850018895802336527516561590743839244616717804312925818477982361025491700659829237891918020284837903224583439047816228158890938761769061476228535450345907868601888936373622166522313973885399790475890702503301645084954610995475657291319672906854232506540265972394089606711095337510218703601582393627850932351677187666656962792504309300146772609427903644474951892186440167843212782012795319939721600759001179830148227160009792191081890974809923319432750073462643046192216459712895239225662741770647080038226808857419943601189667407667189452570586929214219697284942069276524505375183935718618595538895731662182379780837148335879606960075868045414332509050519239446703098043287974849573962942485085380066480635742012030856135129554335930911258272962185665284412144260200124101178507423555575885806019888545483025467689841299951764162585164308688032835351345290257654285228502759205789661978902185662905533426401221181278891610089637724507364453180798818660998240413644126123092341942308821597409917896789346954590067082493001297392342562309599418780915320376547110935214456239142677315591748406485492950594757345256489397857371907574284485260356129237681967912862721942559276818888408028509901161113334887549604416284970597605928551023933505544188032465432416034119763363321788963044103014353974883581527914419638834456460604619740359547999035329878446413675158537903320416345454585569039781294958053868107696516552389609413343560233862314683251335821372606111638966541569474902103013443629783709820664356110797275485300577353184403588399304215531176722019549044560767971705092389101340441002996241883171149233373621655782495831740717099836884728803878592598449173224477573589668699359084693501362622257766927827899784540162692213220104775957451503858543712751101988340325586812493897916812124409255165671571555255987396079026441862310919391020226299450403748080170324580051893512684450714723649900661036646614546324961561248999849672781331284398785380516477815355681968476622445035810066842716415250528420079698488055866008414038769815949959786299070653149300947634877300709597261111065560727490837118962572934847128974346081079138658793321694046990903433347945135260235675562167751764817086435933327707778685798038374232627183962442158002499507012278476469715430901830902205709859108418536316735456055910157927678749353025843551166028692766748306832964225443890549214696553840441471212331897951268283507439410261641715005779934966675415245803880294546221972437815993184906239597866487491498779214345540593704234100082532008017267486576806271013217240561775790930365533856692374817860874419450621588992573897709011262082652643314176258798134000290288478340121852348818026515213417774501157730997341858266440880801298510438164273451852379483940720329742078631216121613695408961407960285424592203615351368322433109703076823026606835868920835415213791803579687638354838295315960675979645775388028936015407036443980175072280158400296968592106365384393276111883044293543720520950587662343482013419021212571711069926557890942157460457959853517388492061735461774661351949843992329126626979238242147789939335453243003635815881469193778631432182878090683055968092613768079392057592657166280235344121938758446519392634997041633758500782293349927881136314894719113878803675808704796364574707640750025880689727140790476125585084225200844122552167757707132281049943204321623542123212943122451306434541971848917037293848527910470376628913900036987538125283887094560577142464709272175752032575791401386441371974395615441635278428752571661149367198494077660919138388193491271386997764300889094609321702956170953722054444405700749868253955792223268494702537143117172953412698984054583513682565390501007157785757006018891087170597182783693117487337748114810567478744449442370331122984554893839570900004652214789474201470908769417552690368144360283362004874653878423668408246479604889800126681758090017006040690095072071082860645692171636723397585303774628056334162519663250704614054246335827337173527821324578943766973100350805521014103143797170477853025889989184831061756862888634964917734335778169985377237226353401549072193079282382489445715236997149778951488276428690876449363964335269778327374724639938985194945760304126668784161132544378482432975628789787087492517723838672078097273939481198821935419772645542084121904182984652253282323880396745889048619015230934401017680347464514581064073160922949729834978279529076355884733781547271946683495998650518873397587658945710543307411786651254280176554653981437211939287712806459530328947021574027717366778397267476190969321904216762281711191064968353892177106651364035222519780151466801442063591659050878995284202952578039336065813377224753187645033225528923013099046593778056358700926493736437236544336543640873044501735985125736321815922466686547554618409060953953927328259887085495365789287987225518119629873449590511512780866957980572527930229019727221049701481161981874556213440878534920423979330147882850109120346675392317408512470440995354501419917144779880497481689487774243392674839018883863161466315729172708101437164560006374622860782410472162414194505166920792788725659667387059757794448397554083988813922192889466013590497611429005762933515085099107112057194769502821806724992420509472451495925304592785006087219397841596353332705020841658391557614609136527164860712423839228725997490052101224809369177337292508939554244267686613596116356373540749728362804681217780483363424483766238562931723779125513852242824242400066110520719016878863499062522665628082980971254735299463776663773187942825771618342528071096051729901510600496372787736356454967067346430138605417372796853120869096548497673870581215075207644250191239596262689235739083598635224089656592200117047114339875015783024083656432710485674635024458845585817847332139798075736242352734307876015221492509428870310697437148337455882843341213572701987405841599686952806339243315242351530048256596778276970523445658463041335406932624951039548455378973562781540773771387833184525592825183275413550522361900911313791229625516658851758439016013015858012420582776491853981658693651623693887335140588898492252612125669088784012160761062772005442766831247896347198807818605240615420282374435856833907596667374297302298598784449684812230531633243658244811763227704511868398689644900383121349942246777360435417059239304734958605173292230626613062623708930675301393337179931678077870324407423764402563803290056725282116555521514548994151387503371927462950008366469203352975388181185045677449969053130438483824099671463064409264827908917016722316583321622208416996980260027174607614192025306889334511090039991024597082766612088931725240617134681280582940891766080361530769539376471767771245813702151264315625256129432206726018960426669101537346762376260680723554737568032122908769030684663227088874265146817712344887824269632081161884939282088425778355236845365225448993066256747132269342520901102123555449369242014044864673265472990254771804819953733770980243442806969873551408879161298418667464100115922191870496640174399641264726561060544589583423364961411657110668980173803922289271739450598797590878201922902025731812102618578325437780301303065682117351182688214026603018927978547726108617844805119434353482331156585757262010368077141888662776545671754376471421053359329555357671500463686746111462961476117968167674195489541416229860461318435393107202481405556867974573536773151264562794615566352361168611258188440849690361805079074642293232522099522340925331911664379641317691945547465645175357283554972610422234735482085277923667671536332180742283306272827969644674582252914623699107181349419273304135557663205396885395681396925963470028912436441366787027346018472272858159009196405061596258944246819546438144031564949058272139321725612083795942275749089068200063417970108421802861060272841767071377510011878553835519546047583683978054151601171237416616788168315833304953672480917466469539171636358274365981030160251190643743426528725335530512340612041812405517296128131596095449289114382092623520588736387614320533662306286633099191282895640062001696320827831390498036736435901722044403114874367314230095564456164715240431866372597188830494176968421692121842875545290661459616765776494072564659468915885485189373832683736965638141024938021442032678613573537459900551470017254303404370098005162735166314936654927795368880394294652287662683949366404427113907387518338781533560309946434844496555341046712135473494317831498189005040528549763694818194101274885934965997391459046093499974698646944188022708813347602837894967645948717724362987874984915836009179546179455583159225343558919870010901899815842032484866644696637090811410635682346611505245506128267805194365098633727420667987906641811989337406810982117438496751995769361963383448966039221488079235819162922176150346497972801465977232578622155286616659912538135051486106833979405341570312848838791443252162288993018729162772372809618226623955346853600413099584916656984757576661997846253189251822838930949780724679380278005741427156677010212410684751145381239366623301397348334404763673084801217294336189457113552810236039134660107829737922786257831132751580674952648491890879061418307921298098432095263101529001369288771736994546259156643566100765022335144561462491588663398164058250005802840717210085201180539171731087489973929467938210080278854302068160807435542927688884377727699701387023704186448943605717461708775581958209413709931267165825309582135852416695290978992409251718620251096285773108813639554429455633586349075505757146480069407931841664402730895352310496862617574423423001469162777969462524417667846651088315505658547951180169643160308011824614339216582350512498025910531752713461517618625276581558798687261040725972155129029247562290129356954983738051071918526882443687169107619164644374514921889645803252423596686389454511218697506076474498814899904269135881244241129798337799034263632797308093787278587866302996532640024591283957122514248251835857326607090480164457556902343236490793844623372399077787901302983558787682392048313190449888833091182468467368929410340881490171086261278861934620209932256128216881779655337917884384966663945623176368212520901326119241440023093441832595711711641596537835435411999775076616176480019689189377506809788087851566358054403529077318724528746369014823342005121533400905648473917676359172802265477780793910393194744354888991957278718678198502347891697684270558851025337052361322369592830669992750152282257115259451469094511107252483511902518898061501187099121388504003787542803811069418667594615381665472825402947599545391985438361818714277937175695718665968397451344881540198527981755485030180725843572316215797586915165866054371785526764668300156826835387702112563159081744814669597488576184935700554675325648212309919845758480824570933127835833709123899170093314961533260014507622944678862108153798362862812523161205659199016405118961884505634347119437972262026146274306571028897318046000262497736990909146595042252497385890468613699393888620795828204840928145247403079183387486240142159319225724854669572761977948179782807965096653336117403893546624396239504839583892752631636150886867543113336448898279933440225021906304384149566330848879516993415703203811273612838701177794517299052703371537425893564702255377086122022327918715285400440428014472212171102314952739705258185026748896042051875153869693559173750130233102148267169269554184101862448420801148494903636226552504349315860821168621779133067101152081259438832728222265176105472731858765813580426731386370043129083265351423078566968579119122527399156099963613637616063343929078726674343376909151259037540492843618800776505904936674668797204023322756873380747117163310575938786514276197890943787869220849889810260869989718290097702816496063714251631218170580149879904238179870869412488577173562517465100254416284397524756756854935752061578443454929430352777959024316967723642428667630265263450169910364655899512049267537350891816798194673741483010057721523363928121467949343197655349805229219896634201208004092292263334095469907433313842379360918066293296153525302118381433457769032256608696361884392169190565523518629266498284338386936931290940830075356882345932622285534832293513564863397652683576635444147906536536345147694564440144090443793514570785440457148984257742869245049430378447086081931416394380438886540999320180502029036595276969142744342704448465163926749440296271072195739400126321319130743739720945728751406270515915150444378984187368466717653259814568998191340293882073861609791797063173459223763093958160077769001735226019629498718328599444916245559652424705305001647001077249807073625272094691904583949685687972813716554107952008552252824973874883984418530667220908325633920117507067650891556280191861999823945319866852950684467556597571536838632324714122208185970656810471469030499676901296150352986181784340767142800839155522541706590465419639857173561031678404253986835117429040656132209900561793707234318821745076511078170267201302056327611893241997044826067037462171831460592721993365774989656350730045856130338463499362085738398560940132825700073945031624856010605194047822086461907332827090577550977364056629188732094077283856299685148482847392780744131339711225028405300888598632809409315166161167257974103667760934850147985472422937503051842691702534745900222317621010425666895217261812305828228439830538139451008619078354550765588466931235454797794600369845145842574947628021395063966206698125210182919777447771711732352980765323783224015337266696925431863204416200488597331335810397486668541586862895608409204361829254356733744334556721110719759684773576120261474927581436376036399134970662490304774446774636337545245292496745401533738371723314797194889354208005912644227314624061472226694045302810690273520205033060118684220065484756338702982848615259945763408007435810318766889379938192252577689319905798596726544917988514578487347211032785490950383174784339171932120213418087113960339174623074938852021733250380747164603327249687394052154832411868505017634578521872077631932006858231498075865867492637798367146281742242550667964431420189385388573480358292591949308000861265387773650629596255048241117877203857064424880506591843728910234119333554228371065603794485678096272470382965839291100193655703970051061460629613053541820865295503504729977564240431110364480319641399744349845738994332704440638377097941977084098760456140165110465782842263098655325454510732533363442140357741441028441027389752354513181760201831992652169683172600257304744834887613457002455132249684970947976184541910810637528954616374894200015380796734550411803404614436948255369900980994893405202739836064199026875331984875596898119378953209748596077045803020216449929588803366956990993807389233410550705333518041020518767183055764281537491157367466150065072621920083947051368096073625570858750615858809110380042807605083517920229230606856348909756549132265919395496320306862142101141682369985979976028118381608801753771606897310337926952065505066397477181185931207440213786948507219167252567378314440065349227230106284284895856173825370659173852350097764650154590581739292242940543964122029095396659393888900364153071313369351107644111367936705149553144840164639986375671039907580809314488551284393498743483834903562518530807798895451736082527570284972391261704333044952487706167442677440170171686112558654242312136885911264247483341521520936248850495445514070902659435843399745526318019365134286027773876943875634953245644196438405709820143735457890861361564214902655153373200536333404966279555901408231249460990963284060153328334216492189744571059321188142639498264438163036374536417940828308142506077677158417610678717741572887888555421134532627005334926880441351553928284593482059880002444960649104704799124961382139660630033717202893676963984758400059345090718113034039040909165893636335062965527910640821314462597606219413544521708387173310271565202573892118448026861124688020353188783008291298790590493502415263398488131028847860690428982769139399604631344013582122413307775252030364266315196803737627472635424547898267423785492553182277760681956077731742787672588226345376384138406900615190738232192272560179815506694597676658341570240034696342243169240025341140000556390142639903142026038953243186922388246653113371425958559256381566159897248851816715375987348617308165653716501755779677136236811228036002800821118774779229543979955916429177809989544521023503496312899419941261783033774062398676739139487054212339089952813093219703039644140371819796817405347861258640900360697644818790239281962159060782576470681026868252532508400467444614756461041593172173746555178802735046889680753624737862212916076206423919919688998613232148408770921409070678684217313817400612848067668023831404613844597259755995507906107095428445830893494144464349248578943942649319769388283633071988113357682324893040918358080414339387863513915568703434802570376608286376911539819365837741928949268755508217102201648362261106699064588092689695537411525573126715274371400220547084635483322743560351635097751226078315466181499518312972518414324948207820580232398284850188237507937668459082109617441076032093643952648360733767034254358305363105889567454019706897921136068940810263238937626863943581777112181582983778570505487818423479802701596142514875057973949762792178123586369665282441672583820440607340370327122773271292590143704091337224812062231500482352130953839380248013178009355877219338610831694943301656757696169075704405821872468467702327155800431281949001253760743834094626213179526687273064062399901895717713717689286703236979572471694635692431529057973421944929666824569654063254859550418207821328183177403801720389934279197004621567061142618238216126995273916733870757536904291989714914589879019215580139923013348279431213737676826501852987377095529335025422704808073039362820596935989574900163127101498298343149071463885945506308245602340822939121603120702530904087468430312780692485527685166937885610504225171207546092094259045612892419047052261836821656375156322380090611768337256195328677337737437190155554933218268275849374981392374290813318733897919181109893582968235342280765065713575170070253755145497432052211747154305359813331535300083025208714928475577794508023168304730087510727608782004450951895587769866163434948225192008936545736621064559561466052325121746841542036105384986615405540664132097729433053351776037892183589390766038407783556089516708881740331057719222444039693037919538096891881501050709492834808907929777589800489987235959087934182873153954006213608988470238687561241781266038436788030348135037624164576107211971227030068319083552364715200171296934742311556339045596764577299704351580880361696718027414186865279217487293765628187944966811245681655431296895376325305031982839338795697255127084232049451852243201258827655870209370928351775518108728811569484591837647259189608385705396277158818572301639003514763142707787563750998155401888985703900166374939875940519882135668465614263949698762558744651292595301886926554590518459948024598609390099415594543001740090486566308695684189906075817380744803762103345785185021398682308362796790014448464398349246853656334419433145514587489932644001886099442229254501094801267392060551108733295270482799433889965758658775694295447208382522942169662261182568898948704393824146457820657593999096761337900894804816423393176098784547645414275802339664585689365199510880118218896999630651494741040803464040642536582307579536608405426209919384039858308976250606496609433165097591390169555978089680504619308362245491339839199119576720435074151860156718139658280763844438597495133324940499130431324893926445335638880979008499267344326855395707829029795724840068345043794627222103587782157680190541040945856648867209873133975393838758858968856593073068938293402111537575530484086172134996570237033053947697325173801647788215306962651861500823804405484060171593699671485832801148765227080318200922202967736899447477603472527062396836593016661273212393824844061213011008990756644895402055289630935765054685349336608945606074143582133387490057910791758164809243814803845448013270637649082541232005675519806679522515439481692066720991285651271110033023898841046522583622014671810479082429887956177922097546138585727577295903818752634593713039293289381635264910607258728669658188138708205394265792943318846470228441897436757852892394211702602560763390052233705354055879866047681335548646029781209493523026840750374976959354392235264042549918069535778073858497199236804555573679948470866270456825130150178471592665863204898465426559584339424124264320084834491794125706629480779827014494104696270642362295835700860126403422742365893355573405541050727025610842538032468877666740139939648780346466590897405944009579426720735222425115110536085297403668314236563086574719759251219481023371740576922713632151965720487373448143560291717932849305289189724639974789246599864832317455082330370255581183403940058452384586196605206934473167919759689523092608128797299298717426819068329103343124169541246002808564204602925917240268709990549311246954257410500386156352387116780007411498997535411794573401445724041815883627725058525085474609646826743165963823823099842787075193205128391148943354798950603809560500594883969882331404155464580691345944298890578235529320141646860412361229463290348127953111248600767827953296049213163705646811683462518409166635764705532262606072509210222806603923383093781707934818365335322519086131878854509921004489363663554412775869594610573461863740464210197744622631379720626919088570312320506454926414796406006118919050768319208235914380643727439140373347629463767612194265678710428020773825906321818388030030555522070645883255269293501739830317050826915941907247200031670385469987852557778540656682922809273634701777208895480678979277349711960927011459785091429211564591318389871043835349359248829791611680226912708549870714665526923740381697516863665725686551681401601831460827550532065182469417486801855664391107514831571674475227657380968481559010627159813213370525500644602491554516743331057149330100065949360726802848504881451527669829542126364475172180276551422831364888185116225271103012228302707618800126172983658079086545006804101840933537271521062115768216689102806515017619402572364764620921539624559548332606190865566028262662270293412624610046469823208774574073010338722399717233203164941623558062315324825241473675264193338230421855077256662000997461927276588359575674332826407054117154625193304017444441701350179589206043918785298125888618644534590398552579735162695839765541421496676472513466314239204662499965043224433767943770133350451653903090761202074150738071928813510462243667742052707490739170389632621338276320575970609764051613989606938351505254566479159398714741739633651863649198838560588194650318879783401520367350840937960840256977828433357440475320794108638608070400264752116831686780929959305185698360473043943070474634944304640288352341322458069339534823279864735429201909600071182600332944797923962179874633826570775007042500040151765114224978577836597638146333703415158654408454105149919682596600006898818080217167583726622687156324955998973967533588218972064750896176865522116577097515591295124005655878110106962992205735355446357555822697055690263127938397339645658929698849697193761103471623134125548456747804897111705041099216599641749725141595890365974800025513399698308013689458450661267286463466057670744324215633542283233236179799936718309070720116151732888211558054979609957301140224020393086102981482400421575007594441091860615235920772117698902421453813675441608176805847540112471322017129361069137749786553590310304023412678512553074268252452856670078863800448809725984649559837023608827462830932159663118164383705865213481145528251436935883961632562564076205880629281506102345627430397849601343540785135119590311153898360834439366740384695187343153532717791965445850982655062015690061767380347494047255078560622487448240934346011988293198978026598018997271829079544875695691695972501914315990109851919594229651312334802733836989438239293402631406116911104516263505927557836969694673574942231837208967760274924705580986932478024641234880821636244063487737651723316217732584961240513296177367109120003777855926377628125262274782797145449785346755704623975807699354746520745985634453904995730722474992910650785806825947178817806209757883122651570143164396937953582273333892758790970850172572662012221841106628059899022120399462109662820779289407559450906210955846984464100698262618468312959368861363201403803743456182492792979390075050821046926727420858742259852852312700909619308053666915620030848329179878381247964438640859002904333335335770464404025379075698611047560389934969783119450235550150884497862837999862181739315589141689629656641265377684972838836117583180441924388674852338773324213450628888649980068984844588908817412444497010259218448580144518034030561005388031813871496763669806894670741540471930185633506257828262892172758207197223257416041964956817419567289948463555446287721030531744893976564559598633314206000679725865739377050145144087392905585023386990835155838750870758281716567221330902930410510446288216984939140458081708733469824652883237492425997936670964814823133800677670829119014717656949624025459626917462429235743618634222777660222097002109042977757042096137118681550907066663472909953696485775842445077467059627295643686052307360170218065969349741542064886663492622809479159097118557570289738169126660168122913736132773482127476541139090857548293747702984702307667067471987488588294889294856455570205350595898910478708850087164568998608670069995080916518525513574799068293063475682993762642952131926557815603087618032778921369319881015598890916811564387877878448768556666461033643092379682834133488868672100639261201687967767831508872870732940950951089233335915393832269647748790789832290071193360297391725074213719879541558150968319265560693627639722246466564199823249275694014730990226921445640090325068729619227581827178524183560025598424761514447896878334411264492658384806608640685038990007048735106789640568430034951300560746731805839623687648642575119227555071226200517782938824199425230858073400843244588883415352889961849412338055904971548467649668192310626664377317422955831438595945783561847983576253895901389152364399954300659890115020927386307666621263462761283724129595700838627806788855976726723066385719830024494828644963722684163332782096679702885650341536334701457528720312806482297715570892845525333826157678895843968997426147605945054805511202713896393554722646877261103730271423259264893810056314241048158675936278907896968252425144983865459924336209227708511529687112766731323525001464150581961392026612931549569587969089762128270151522040906733390532714032206894967369419576544409221617193335863455693037414848734498226181681214863002996204223285370179457908504119783436407352041627559705164356341233614253551474124710959583566036378293328090688420093248877732285813240135112627639355288891492976976095126984985457187024292861473508308684681911548699249366563119750744914577285708137106846156080669016241473939058280966021474031312238462979831786790318073793796230605286011729230639456631748252184845969235725502814463355423442207624512679718538691861573046375046620857502825097797795820750980362758213860880887850522113360805826789835028670757951369125784131252026533294139077067192802924880572616780888940450236605564747265593919259516621671548341467350378676922651372070371791558875408119963726863201856504880486864402877902406576029612459836022871603162526739555243243145518023351796359849347128678304037513060328866115385335901409046419949418613946602915047269322452689986220404694431430605479474351407760774101357570907452444967724448847576807989185646040388757124903051413611767629302039503587838137479951699105666123809145131882890991644312563420549578750475199895715156983685615765801449825182050751319133903966945500089246782731380629256629838960673721678677372190617615609271031952224216821919671054757359799370436424696533425361269798330455071595500726439868322523352508878855474191454232476166916271614061662581945304671226939221271726953485844204459209553289143339988624534747903454382984792644794874799962779429159912080550801686549027851953453600486697539463916513930955891930083001330234065208388789016351062642530520567699753099232011093099935421281199503650646010904250216856359994559654906629425094857061978249819786488041846426787769124010417886473960016873077031701089446607891234870764257481928445968499717656410068537891956252368626528781735390771859981764905429184789376433744029683144028762131231330932658542554560507502279217658104986574233992254645611636472424186660127035287918037335656991808247127668357566213880865258787207356188165784427712482868144918563966573415905137188066383035945214047309703207757296175200852479258734792299698299666882935745875450010647022873564950568013103242851248607595156920285842230106133632384562116917326455266500583787139552955674162265538269479781717606018300791504954117510965073617301189376687774802782956599315056536697067446263165071855019056931137093296472101021067254154234547068769998804223036951914959191901662933184202008244594093471150319229768455526704574067613721115795087464071713125988765980331945345809129301451695417945030900700139151149050800394335098929475680374275947707578583635102399534521615513025150509660929247017331791365061928382306106629209709779242967788691582565617972734600196960036834108788746653171448966421905154383466260585341399213214594919444212344163028773230580839452875407144118210943904034836106103572918438139881438717222088105951539242486661452316256487238162333763089876392261543146933580038963828742799955313942825347784649101613022526083875034601157478953461046836692755936448425448913578229407463731409264343322414900028909828047920417839689736578575545505181481987425234334386270135494720748060952293781608454944525760843194204172367936101595177800502711905952134381180306183251276336705750142895330629779829512682728040993474785565291016078809188086943396653920683230978615648905969576597975862567992452002896454548517012529387396100811052405716746244184654714448220892901587316406390782794408973832696137425346476707014026367499196192075563642133169289510960576561809980489053472477623294121042814418297194950471905408173347856175204726397271072250990774700180242643823117966985239217142013788774964960282387510034764479827636178902271782529662002315563044080133857644171857726386765056185437700986401053729167387445962425917700804601575767459153917826001517824813367389524410349018020715102404115384053072801531268164791417883448061907423625108073884626330975796729764142426546827474051541415091282367775642817978065413960625497925004304251960158906581294593436854617123220562935522126253595620560484321972967974704958909452969028560576216406240178947028589344960362474393678025225173996001632233383838167213462733328766299270768282797622905577732481429827755951448544273503195145727400151066244433299334884837604758954574737245358881142641217300804027088304398737954325667821292993764203131562862107274166123471574507366639868664400628772960986893049062653463503300965365322442077354534629766228715925262696286670212130798164210387230903174855441022983055618676338356111565337726961249730538853345283541198399386708845734758016036450080414136771022000762251203526584953759016952602553808778933423369680345716753558416398681244176957665051304387139110063110171514040553543034423755072424069693352691715482305639777864541421513612400152514954257400347395217058705229262878242967293008092613646366717567081993076266688849134849142934372550262489839488669067953434273375166588936831125814704250121537420620999253247282217781584281822577509088918270329489479677016237434622340395430172658762313454338680371998609967640157423225659860941754635404516339036143932560970303527519394083213728605033097170101844852329478087345725338025780205148115163882560875641015139422316908300210731576105997919568745946210575086362738170980958785025085958238217929238483713520242016190626765162693698514428208446700846840954148421964587661938866393874223179282961485293005982488962781557201717742408534221425464777871758569226227670674870828980735575561161354256577351127253130317182051818162641653595652630311960666977365037288598492505569548027252645791442703639984360573651690063800026367665980895761619383852368595078463159883617314229841337203321782291000932692141243758088261072212986024120725132501768399724705733882679295043211053912445147536700943430781017334139856057698702740550405274573772156576912156628504932761093099844073240180658038758449022570921741328123120188888863548361235066127305380050284430873196397358392025610562253107163231773140649411441633107712771168148488195853025360945311023459641543195487447631270743695059324462653587623996279867397298075791158751450871767041537661543171629111148797224978331974704064220142141918097668410926030008600835274462414856915051500387934561901172653701392704151988966548019177795309341929667327575152481370944054448053389947008538036409965703187727793287271836221925721814079947642966544073478903901980635288785364435815470005724429589141445986830806896908027844084941506296688550262653825856228166840689665974572011438780712942903187974440969123986198982601843501327508503412079174725248063277416493275061312675187875319005093022491494536569321805263607953932235467585022692754458428781650360276357491093947222668027227089432861714104483145802389997431897326542364634522246311711614283320378082737747378043882736001484325194944627410175086587106542222861201779890651326444072051326735644180043147277445094239021130348806422001006882237220368201506243396231662682636576642081973992643278919922387918986700616827869944077632028786969364731321550166995699875490740598678022612147869254970581965379284820678556037574277469525847167887965252309461512431932053292300861141784823618440048872191734415476419098556113268231009463761059289082163146538335740884352680140514958485807464145503230187131116319290694572475185491208398147666205108957581195067828172264460401234573958042634197047563492114738506949715076774022388888739343791130969290617370524864382230294536330440977822678393748966665628795946701054106259964886154658151127510796711764951989043145589820538537623473949933262772338271089227087928688548897638464998755860117084546756903182491328786624484816512964237289209979401132313714829843143335295991327887912570409076819998560498133913028388282407971669425622721278064531152592209557363669802320746931572307930712297254211711117260213454864455049995034646178105776543864705814544785490746332705911786594605964084820942196872028828087778227277502121289628509140130307724239327881841962075736199577921009413563704090397240533942026586479247191037485434960151782140823786600897679499989990374266875408853175597100564720204744910550422255782951210106084887747453918777998486861715507597259389234189823297502525003568036182951850206637234152184968781628945715924943102523070155870577610608909571570711986431662704656579915245775097837369036034559154953955606506628750058964710245421487814606304930495442819537165361634428069731765072731759148692114820230862878791301005222829775912559573911968801418831823488646090244263613519410600359635004133998839251722250804164460666408495275375982401926697943868111907322621525098586367193238364183285266161544245107763391449539428183153845837549373469916220836898974017713139487632528130234817860055855398053795207911804922059764085287613936526874621869486955519231690200521080262396139283514414090766939894942801117818143740059737385211256101180587945437101718337084556441038181362582288486395014346417794149226599016966457378431875835605958655688417662674416075407846774589475907254048570812841998643798806041671789521214486873894665434402701222859621176269914755401624683732302508374778215142822098360183346732919261110397548167828924210442169497599689656305402932938313257382892896431645020059130104479079124371742405744734824444915110362389473592004626681526164926619338862900626652652480991190532643047557950874646548854761941343304951976067538952407019903923288914325072274145499251107607116971260137343616117457627912956138041833354858702313688122454081525719052282259874153460496595740854877955556931089916037426354282126630685219800431279011739671997729217306254959764448535062532692053614914539940073676770927057078097746032569065459578924832165411262448658166714761652387375723405930776375313999290578448392960062074034295745457069492958217883369564452261824052186547840588729987922728370929492703205051223782619428462170236133834262536196840030092582965084256047349716423619911671121182222260559476628921996119291564323867115693542667683893678155924406529414335604802416638292997637600673530244573293598278653519687240510773449466032571304887486964263325689038554088654469356402809748015591791282751513663946292769296522551348498771259832822262220098763679185761436386281601674049478241814741226681167258796126515422479978854041237897144870027795030240136236977686520577541169466713973067820956942404139579889415362069373599977569502606112197975960821946392679266614329605133754894216648964685433315664949791836632916488440747095672766867772938791675175475004085344841869103475159313842869719201938712300309699125706714794177142951816778962968982364060747703758656185735847415886955712210188060177300237126166317323460970292860526770423113621811543981841605559243146247412988406840506789931859938521611500915524729641706993055882689349417781885210098889624311817238536609025616472648169330923861761108582041115376808623653598897173919210355278375637602980472515957894819855347579638885820766970467506205914334057783660493450040896399982154244107984562194948832094103403428280905520967717323197814927256948850524743516817198775744198714161504141017921371311144868553008846332125636820147169084633195607200912560852296928951652326333851403812920421653912251716651684500237883066676819648177744491444387420967912539991515800295132018803689909394699200056956537291293640729639032665491491984904757082823746490384831271916168839029715425478786522475669781779398611450827547699486969774154774052504796309030905178503044611896194696550538736301849010949531355496500001753481359856551248669938383979430547659879098106562003095549049808291036430838588770870032465822166480931485394429556561480854692496294869455840867766160107790740551790240410046477400559215238245566071247745081948481046796138828094695121387217257385013276819276561603244364327481651025700895623411061786814168902975933675301068531343404181746691814686814402062542371618018846172820679242509379731103886202069244231461258860915326543175296893169999626633387927246564913569999437714619648132374618524249416710617745776331309105743224097548907616537630732401215071434526353841533999514373783792921872557708802680515037016507448354270582112340923838857465352016046306798635896866146005329273336683934071422187158043737139527010404202116072976270211304401270739632922890683099118203620745624288679741855112136720804440573122139717030899276428008078781895066329915632570098674746163308695138465015262711935004442638948583076466249458415952064561537163670792156042866840581449913357953009351912520562103154814515776096352012151046712213816592720657920381617739297561850423609357975863295168025599743223311185613616705206506891411191364449786953153489811824735001483156157294366804804709764432481598766550096737361563656280838995635759410955459816079706534383033469806030625113582107123204575065416794119748849642483430763969445029466372092700634220403437832881172192152931548913461395515049753970569379689088572966208155607520365511358668547460945249560004426758856608003290260462976609280395581983439486637788357717795089436842690537247920394503806862927652369624667999720461032656039950485857687462598157266615629485343278111907837399434250567371409803086806993986688394886712124624070315055533074098362159090452014728046190509807251349455008645004356944884715778404428978159990474947361180548182534168362724180393367954182773761708924577559441590048393506737666088033228426912954836715968014219667315340517848960289716495924524547428571996340426118385655888053016171214585956788956129997083032947396236131215847677397350074242522792553912096179410562741340639639910909965294780344436507242490751902387603288921300797620869440261100407067394945415735386846996682769544942108212388350732029966151567972292280842431544969572049616555849156850085123227780367526400676838090025170199009821073048892045198458141917646223891292309346072501721198814624002138887377402163164584667725955656651347416375849181063478551953199283080912324164098105899474959650729699480016451717904403593433122060276959743427431959695541949994251201777126081302570977405278269096138154884578230435297002738678852855585487693054242452314574242401444518383325827032158076624367076356823340973753531703908995646498915780431109613761584150172817071770400180801701592888378773401980748420738464798002357835586524291922012780975761101872886072653937230265960957513834251108214116574997652626499421867824851800517663062196171194869913672168547966604807918684055783655768093098842010514133411898294763965893175179941334187346854880208231339445402136762988920274338266788607217709630218174243978839186181197520513585546314060445866546129664591590555771141135674437046712977238457797158007114326297046809481482976187159264648721538493121136364997961484874441665686893105104598329167166381034998715100611640268607623273280809817126854640286777127911882187291705097853035690747530155525049419713962591464949522191689726616059916765138300611690584953081930669470494098319459769794142315089674743939277160433571705785116784186577725249099258274898584992258284286546079481046500521113987905587764754429686552493577415006414888880460484003900208976703513988215231672345022323762934416798997691773942433465151708039345693470343335683895377593184616021275281658622869473743341506824310747051482776517218098460581578652023084153686743083102279902124445367275673586132014294621734183374522565530711860257149485980816828186207951499938180253503765990808960151680499249679427100297880486251482404736190323621951444563411986993695154540358296979688821293499725153872245859594226294567628883951624301945588349028162995956642939521873250867080524052213489015898370935978187144268600813233530898628939995145554560849118703935123397873521809995312032809059530016203397241449616654880458507165783220870639729335591173177140868351633654897962687930416339968245607517237526952549099145261066080179785121983620906613612484858169998700080528352931455379542559535629558285913282514225225403190577180201477807907788483738287290626321506974708470108210009472547133358205935176539667802860716579105512840499069806449098903033515338633608004672970358493596800062406752050070063299877341926120625725456075624921757820803459175908936107797269511135917138130753720334218020908643490905507062414548359263864035511688612263052505137591581929948915894503035746418034642770193225113944616977809904876902839806750141540138901599814215517646188634322327760786028020534334436479088659201020084266041880544137678344481688917724874925513571901310762599807291891347105294715300923958547429881929652547758144231455216449131392897704392728604756710001329850052278375563047674332726990422899321240031373886355572647235690663674203648964902956410575904727786753255421354644497083837175568442146178957266614381148671913875594828385953783680961157889239103395532005452986499280419414963518660797986439998278306149750671709070930936773168508985498944819643297807992617146098561259330813879287952023581633050841014964028073569685708209209145455440140331548759364058335202013182156509749254548683515068122951447056463666518918458531951084528040302438334503166015694667552112289791943835749282752656356937957241424253752036746853706740094561026155622308585984071084577012530306072729612173513834861378985652984646028849626749780859120632694210408078941258566446757678032896980509858576433466077435687013786889637036301676222158183429460134321613704709163916556859891012675117597362139318295748769696853808542819255364782419760039070949028265324545732023062757529849048489760038038470806404069040077677611856862944240820692078068977917001717724432987572505564315134322532306894642112580583925152258201065236142168674907221269668364736804011985539091778840901198338961235886403997273584748233076104413061292444221818246889409481733619662846141213929442748454857108856437276264429936485112510483369462141615887559049986527433340304805826230848809368178059205904072333044717432252634732960813576848144660758364723507261500557480568326241298508205448982067754965742342137236586745661043919659130292693783902827013640407306300832351619511296599707703331042236917344134938485207666718098958447148642809227594504616496561958415360146442287280428616822916307800620929065249180327701408794306959865882045405427588933601900440726595157739555333708859683591123403561903586108108659355194954656002996553138051799094588375411928867451905292519127759745871695254276776992487052413281751718427398460883878038257326889235503136860485458454681096490424066939032028980167092784525811572369879835666032842622440089091188198454251506331664560127990673818289570065805408608963233630073057595805504328230838383551411890646763092535315219776608497723470699162101503194991815278666584837003769405484012199526102298865243561129149779800802156970553416679435834955057586791305446256098615658404664429365349768361156942590410927389454731289868264687155140219993618805887223184054912039155793546002636273652803917224353362033952184798395092532441258762324896442238380688471418461192294278568739160564621288609668141883133706720356024301131880029072156569142745189607031401230448571221760844262177048948329501610755817495150816446807883947624897917194637359394414324760685037059715194273851177590024042600388055850170008719565688821464558040509731559217916333566424924102251222965557786419274446525295659819263282074617906849016854998374388964335468111362861340498878230130116449916648560325862117450401248364936039607201182394351861333084775726628596036411890786845370702794908076588419145910485162789780114663563305730113057802284678899617683742298155978785580793201378119445483278064493800975879305544278949777688406437110508438429359039669059575151800204142809432719325489072948167931992711377455998133993996248203448757657981849413439958903782939572042180858235724963836901495441998948196255638701765403583104945474169889577203096303838662352060944415227707766694481514537089838971957822087030868128206563785853940383986763765304018757158825146731807900640789707065296013928419358019858468235224771215371981261182381892601323213820806633792342247011936440204338515961011307225710912003467004305325962298413423957201065433174688584155242945739859724546449429600931087984843508804705498579814278761827213204544795445222668095838039804270086426229468348756623355073109704321721217174896244931748067020517581963804484836169725003571323083326345153659617878884184752060943139388559010642043582856251467238128925256647819966055390910938892389041486099557946145554419659559938504709753663848916674378049215365638732189765841993638478608598741597968098783626245719278131199065875217066440789584180757124868496137357972565207842575358592302847105318357673207615973784719762307459108422296859321350394511417869201508229251247207369802974660879094846365108486881368513424182799309277200257474351012059101589799768333940943009967980869410273284470590584315758528763905687496763791000061228791268010845895295919031803547516962057170504531071145499347913452271669173781448344886603612937042238945815178655423634287398247947666548612899244190649785003511215905648981331623697258829958096933731281271276443819334766193786109036289418425624303778884215656651161283854317372021534079385332149916173915682036766920814677948280516591116794492303612845491767367859118232076464171566830517329987714472951245473277463497139529318508534848241357190962648675172377044187857142262249318881231863322885119689938577464510252277497180554112843563565828822822900879895959493583427598365838325652062075225393801154062018173420095105456477907995668841618809686206939208699664586560830818555209572721700854942408453532955606280927760511499392869572733259160971301969866539533440226793377875808214467354454530271492699833890928762587729570465458849199781757168717884118896028743746995727400072643429779938768643229276818127540797065572482187519968301231687221829615383233265607392359346062876516403874130190261065256649975397312463002853160970578489710696276677556213612926034043862115992381494256273360740439472377172712819884977761874220086189660328996842478098411916970330309953808773188045584183666084400596034429789481090700084776052330233730056910711521350520825844541476800322213718124967227716430339162900818034399785896577314128254737734784334370255779722044920002057862548440539402071832905153584938291678125383311700369033204851555842323549210782484398390937734780294778334168781536196516806871251059211381462946123787150118226996033052826440637003185438237539990039683618056771851806081592602482390437575667129090079934454394133517470087724845283091345695586044837734237979044144141935948575035147220609500430081470139936670783396343310899544415943396032134786938846206348941140849566960062291726568065728310649099411902003143908552386787744466300365617276585248353540902819313385054450064299655169236302122466481886961384494266596433608328557072362672645678404302865216890843039202948508160497913616966744642981762171835524224536083228263485683876987445302481615789644234355593455628676566415159629317582738556457640541483266721585881745390441517536912505941184105842722850728193112493277432486871361067662019353496199957952871178604425834405981813873747651693143163820052866759893177977938954113827427607591228212015764076830576400166970762154858600435419821763946817137142955984642495104185814379552347028615008725380514198156360454656445559904809345003581899429451435381720011187739006638482883215471694754684097821324050015425640711878753514229472703157417122833863509114430761147961725573662101972330942863822107901336144367103285250432936061595515023773954325764758022571954376286271002966017435520921905834950545412245790415704575280181179246959569993012644350601786472854545157602716783146003596410241793258339674122289176496099979589413926086685490356205137447851097298843946397624267383719291203253178051824470587977705957886128146454962267933473916227829333453849278770377847017917216177931957272168635639892189853436620968220598369910645910523572335711846908903168574037504900997423620885742711300071559297452414752791011448635422994769811197036710234312735900122229686232457095145273229277363017293301433926970321034546831464819935339152145103438774812755773792526003386923417631905548148191934544358107469352274066596090816337143410753840864206158681110487753196117415104602058126765248308607896129620838399887798053898968719678779278138004186584609952837178157842554070012748076718057642926143631840318123718210537205467368641027652296344329589535616942627658507504357863993830885280751839435715165983237134049136226437576102316590879718089161219502332985194279134230898421022353219191632622826098822953741425300981463631578202866777477185045251012875331114613281386310889887329228725529832397525275275723085646333691447510864402417827546740670341816483820257646133840785217387864362274436542470116834245163774994987778587784988593366313638121081046795808466601099145962597333074991376446250805365554586185319191918626949693452961275033530462672527943623977595425870117679320626532865241452006269483512553491806849333200126160765372066491509526637845818103135278995632907418422500653572992059440857031789915213551812788851492579437054994987309508768131538538184356620073444294689257604034933019523152771028438690450393279380432236219237633087998562823912625796250501653250119422463919241549827059795623880009065131457406682218448298223081876277832768608331900036190763636624088787011360409909087435123909004608096420900324233848255827832412686107922526241528808266620991942193932354431684825894716425326752783586271413289747058064307658988449576438934139093718072541432191585389412533710762830705624899231589171652346863029964029164448098813974185015553184146329571650723388373724791423233892559543439982329918068991972410158635466686538601779632984550632391122511357905456238567394768417038003705499132652138018174188709916655724377063913229096198855393395826360437898581407923056882459244397195326186264179941683816258731324663771428855346917595460898769107229474546402610357606423660840049272744534628143492490526856882893605488648657386809268212186776247927372293015172363226424259661020525301369864703254744095035618228860967744319307937082815390086382097943364481205754246407724388257917270295569924829873324378851416723801938748455014964497852754165489195713513723668605476842455468620613381436114489107123909083832568723530110120875062008832043107468240064465146928042378022392428094835960390495428479991418406180112527958699041643747736126181511792461089254107732919464018151633141168293269808360928087600270217743592400469128429739445872588532857295271769393831699515980213133890251607307851025073732206449738526896465122127444412790347570663531079434952389204558354295010545279814046852786483284378201600293507959908037702781006344739266370199781896636903468079927459595538202514407522031453176455334253655104976479010496304927636550263718997474608633124308196460238955661772580484804950635077578880489598675899842404867082463704444741088889042881621064950854322632182506765773798954746813915683265453406069746401887841740010574654206691918842022419689512013232848982583556795288268801439266147477262878321050628068110820008276006690678393371559332914900972078136257431210468339596753159022869091977784438642723592165767579918472381894299480855295123445008065048939010061125675883352695129012533982361159564752428725436913033376778115574428536405735087062553090920131332044031407706808421761881911693659241559015394376876362964211579808325986174041043308667623286048790518666048551744003054203241909363711930232766611487470477607438377059280216824231551435022772559551019885868549568073925966667263212012025223775272121517930779970215399539162867136210877595767239476485187548080038547259335654888233429110531466371764861908255938119225056994707722543861401730080519943466437273326110803689500804814867204089612458203538564280865506711808637915986784046129798441183628734121267658666846996385104554845600657620609631762476040889399534611300739270268407502353401337876155052232089199534297958924995440756454723113476574811902025779632081304097475894479008851938766196479398659120549405692790706536535255527758452263948805852142259778528543624713004998369004372292092702057839827968694296146548355460682696090430297986994752381806522984497888404387791386241485690717333230431024292536230910433065755190623865347396586989361513262559565358854206959333193885471641128215974840582971113625973605080538988437104944153842721867479542872023744233085924772922652801523251472069115472467835758909741981071533981871407485759242041557421996300351944301748932231395145510765879072949704624706786837741822581560820200405332238493492656670399138214663456180797688276821077940733520046927421853969658144201060984132660127923927745285498498518197610221847136754627440440225018613101709842108967072779983033104833369838322567682585038295458192443717489188420097356997722013665347467022976670507653357752029375901261554476791142871647622515127870722609805273506613800848456532370211986703526027522864524693632896155322307774288579402725547818146276125544702070757180908201240215204668925905030835004774177470356297393862619328584900484540652626254554913568650641173403882791916600927720914724912199198500802112202641522328214447971696343546426003101352678718585952901844981585100215944244237920936119702900629946603909066155531515606112187057303892010266158909270225389162268396543519155643071129637570778648428824550093321020590876980522528501216657262189580471334505928556789432172696696967612122384172696468451637599503102698878899782632956796332269926520175235323460122856232778308630272910126826775715114150237966907858240241169543481983796074700474442938276614289379935924352065940394972756196714517216475607835354582926981580564859751987147830820899878384700254721707389784908552705730114566107941836396901524870882640258147753574887825713725775604908311189415259417123962213102587937454336283768460859063452309649843839041515997045857379284020967448762444568662235571896395447367848015213202074633000991670696542600517524022633001043039276455573279464619585489375796417435094936412620689940860182043546778192635011326377119227137452020751097240228010498623909994789163980518957902733664131755644905391011656772412992282125915500041867993288516320663407834061460588753842676656777062911565568664023621435563605857542581612836272962843062625632713342500349408632091350142402608943775135010353266089789074540464567700121828060686505414440616861795706756108415094441413223631265419355955792657522406903992782484515834358256973678233568762393378858410479527179964674133617699447375983916308468395868248455733551671463645068926567569065906466817089963822651359938003254638338731507261875050549032063779839027594650808862645947941104018011338648327642399943733072497228029368466462724043235984799547241455049564560768073093030603624696177731009535787395772333305604300451325892992742008438420703746089032351023695033069767595899556930168687512148677727506632839714389405275399580832537743348777250232391551182206648577956768474398699257477796997684630637451507785935461853624690407803887981027450444738083367570356518822225277491245490290644368610841923990748197681202195675232167971869445760435362923878178740885982852475033376234608608420021319219949232547413567356099248311373751573429117687415707838368285704879394175442766850060873632922479797740300267017318317691464263060656365672675879941361336496540742899796706324206455356012982168821502373333429390156224478658397704027609867119951152078213127739471096515860602010087287924669423384305063029481173428688261182978598153630379529326913368352823544761270546866597498386503671393712281106545209066006825041917717306652695023787194366325773874114432668637819965045865406651752492933690786723483427237399665334588796819035291166506009796610320552151254316037465411413954214292798450110527841079048194042012147569225662390397483438562292846130115968032267220210441596889933643698981418082728114226231837499110175626003751000983778514302958934367247774652504438580195541280840761330730366267756753427710574714635017578646503454319305997928712975296750482192996905310321340268004444641540358330974921918739022581901460213277807826664288729896747794910816814541644934360062914024942816874082401183116105453998431596801685085189958980756676660287509237899467358658073424965162885249463381914452310160369012528706350306952071687233194888326819911219554294579543945248000778483660818239137709133414588710031238800094039794702534826652914551491658367487674554324392192644207807892988835195342218737907737755481656795286399184577891755908761736727341930932191328281432749105489739315141381957760854857537707537852939533532330207907260226593942906673089866173278407359305647814744331791236914877717193605953723992422505372296259729225425186933144452226727031793295782922500096509492742222816099212480189258256406759482097049411291625997954437158293913735883725550454893495015810708538734948197664277237783687794186207223827294498731241706831077526706437400270099070562580230108231648075910817275421974515121859275626236453221253324030034244990958685901879518946376585778689432105414162516168763980607997980550033112580475110439644463395507167739742140355635220702656041984642525298722712746530411946714831717326327797337420199412447701819705705887044158071218227938749894442576251163864879980270141842560265631092436796146453640183223236453836969762539799111909673460936272887600697300937673927027799994347852569918107557362492467726446173332769908102475262331914292309453297453030572058249570555209514473489282782863662409162989525982940504718213633869064102803377269296843822508332431971891108873777547055322255932833688146018620114367283442028226068270459365765638965822021987191429529605030514008866377950026316319911745538983489001889450643260910537362990602385192290673610570217618982293319125164485629268661197322658443779183736887328746932222319183364695698286158792163974576653223916601934509578851234397798682064772344245508911031457393790000736448337012104850781913418972356569647529963006804797128358903181743759218005762167089069582377388759113782253538321793594656212574647622543437338078121586561875410539236737771397836027773101382903316043086254192595513450360693190859155155859434217698526916503187380455280692504728876041585463830343488489859212741411687287891188250976080265235384828546246936047601970558634238243111673242460412200914697746517689698747795719311442587264864476332082281248590410620969581424475749109383438869006244820754659326164211923823807756193393570429540081938220930173291074585828289391387180948098794264054877672042649837478940706306238697814827067345634261333056794440654573645197578965957885667174387504955227997074883032468123993791555303016086733811532716606777922061222920815022067248427096274309881473339259048005833236075005803012260379467554162198339094247707663018603421217268469274339390041674833064629420975184161015263834566894476074468466719868222232444712960160881348444500852330975582038079343363585768410620170229724131182076196174622769135171741869877993717918292761373104595397484074453544594826398979665829192597929765541156325540035251282414530886228640305086114740405082919534052166642665815288540270925228197615445324156592379436329294494817615023539251898354097802154816272322838676182370235466850020619213515723298455616622877840891381737162906660859247975645302485558805120013597001052777936995266063793961107405369464877940087526707926321272219641968896660852431586263439431721707406652823348448020950127767941445672331220326106041127590453285238765070441053534161298083041386318452928929206843499581015827196452943641717957455246686949698384459578098850303161004721110087705842728384050098637911807014842803184932841698587228254307799689918408590825430156667266805635041196345936661134957420298494128152357186056038089302365523082344880735893076420740325082636744270775165326590730878935047225578435282953687845567666702277840362772776204100626467759935693537216780769094120439171159596753761958449933704438776179095073890055245748429116465533329321532735892319308679225162997988051926779570464068735069306391337299021421270335976406135878545231082009768753082611044155750249511446061374464914320401809843004489282211820410458565908255756173434494017285496662272470283178084221472520324078508553083926131134129682001915172752740967139093459438737980306251148405172149839231705458803925351334839607473160048506417728965164323765792033384633589371107451789496069611234378325964109464813672720653911571369665869012549045186518788121662941384745617892489215525314226490978532936331450134409704672983398795181639285407491027199453959571499785329577746900971973810377293716750701860262359662793524158939162319579723230059993540211226161412498019851001065052173409881077375313468838561957689911170650187932334783527293123150909958435081179376619173988343278868626230054852187586603799433396242394528094045338072868531757309247696768055301236770918385192790694415345189074725845989637904344184205700372174913112994841153523446809269639603057804078470739363064511437094751518800121498443476926093837716057207066718788990876025385049827314263956981892444140334092774816151883302049978087381366872604662797350100895385588780714426952116734963696733144055075531342526897823222453345668074597916703959071479619135811095530674689918052187554361632558309606422842913570233329373918731180631928914804061732645258100175008730329564599405853973400636336540877363944470208612006678249216085074833889536643699233683236638544872111156743740166289611960064337985869042665474528582072962540940314560601906031370006424183188215841257662540960002903965788405432088051248063985368666652453179678075772177353407286853363519921072574063290352542193514932281341402551308702286015263590916099422221387559256325758843894497136457400823439128422504887549989686779536891311658335283225755231117876136884232657769151276648602137280273891893270265569817963712078587507623164484041036015623781102066341757402682101184568501480758553855103317937877458725428975679280003346159774458155646618693050419720918507262990800830429340686578792661653551839604466407023831663166004673197199609468517070631578341208619344270147643117289681425545436833380140646619651862371759323542356542858131083983614133235503716194559491623676529783658771287397377703109809344011663977157956907894493797227306963965507820555252749778725108598359595359967524029820115512765246121735814986879555061312712039824688704218110759702879686046723628686020945371086788067339055232591956305928520326888662122160703978290652175145382643066101631579824165943751829530655636800970237583339242855031474434527874850239107935348685293977810628549862122149967852405375439218121668767933879973576933493777782594930611025162909985896790380369937713854978384216367351014490508984355474300726904213123677576130015623080302142220734851480928330338335396116163853221423394154473341558965708748164908664777636812065116068830118710671249381564374973892026362433893221157805512473122703027330513606968234507859780805263497798832096582897115149835383385686225774180384932602906549760583793631615269227745196724921939908054580669092662784764032604304496024686898470070547076598638744794116974053951004116129451668116865072606668847393611149282590678494647129096981484365680881663828696618165161103912368537355187856581154539997436109187768186659050384228710962382727069842063434369068371448621141783650895443573814927334833447179932817928346095050301155389633071363786711722504487673654273971007136423536853497673662712058472410746948438254627406828379700839469613887024114097001975224942900617656436500038243638246332030595468135337846824845527672652477363445828260923341184250608225862770277607810871004960971489403665158456680967331958061977931590633016013652953742101506858052269216475688680672072632042913607170632098908127406682276598851729501747832436216755738148322939450333926156576432192805814705678265140878806384763354715012958258499585522473766672928039265104833163991181098612631493142621862594374575927450710705750311048904622433790734888543576262392567591664213902869127197154476339969989209664431689190699912559369180236650554936907796155022923562897467428523926995260649299782279602711041755796281268090164626688780415393230593420185475483011967015531516136459538783760614183741539331200671512953487216985501982483991761396216303331555020445452346161939556928425587681355062458429700348141035024211983836577642840696698364736610123676099323397866773206787379667066520082089854106950572055194859134142446726572545009045341400003053764990223083243601553323769281871239315603302541332360747198852942929051199104093811382445181789166850933161425842989411758073818749427765232367552213706880907377943431615941023058287728167799519646273357521972196989451994210582332959366349819472162892105815042780355958280039463365327563244946266300823982692738981716300306892999256294363842644548997746714900200419920736691196900999591213482078415069003294879468584982646788210635893137578082263182296008736250088452667502163611784298812723942552324682071817079035457328059848802932602457197647583113566404083922676447279610582335270471837208300821829541086918363667614948121961736325861553400355936096509018633675084630846828673422632960324237303184952571460156754056314478148059154136458084693312325378980541519085123844647932010866543140205725317163477244913357655024500919192080982836347719671553716488399345775504749852304156220534110684136903197276704170280016731842389304414479727112596683423094967444637041448059372634368781794271611634377748272644096780175260066765425437407497407637162275461305344079104675786661468253679179953541088491179365233100368340286753847145550801835051185671430269069466127079179961829782441109976380274738515265319965742163266687167198141931362371602804927258512191443094682512467381272186539895143302941968594717978664436356815785928325442396763747087311212977564573632835531032561168056134657252331589347885434992429638046129206755834157796208974842850566339856695682881216974710300712486486280169335363675354108590483065347392543490670406791028789032420225361808766676926168135032726706762680316460366027481959020051036037059572559886510207446004595261657081302300881665085458245956772892156327282744902509001506929393908651167416907882154975446479235627848419216866515660723955710734813756467462845846077064415215202309895349961616912997677419091308449988272139481725109084546925875450797382811416921845828019575385789130330958155721850899673431191407771721700729308824836381305752051762935656970465495866968939357671650520893508753770956516380135528432737672240579864679917344006930616476508169107534710008567485701291325184982758083724731391451355277072628853005160913603457770719614113888705179552322463919524330443224665729686738871297326374172350586440295199220316471435559543286886190334015087342409673125517774659535265504794485048113272151379795746883332582140705702976468212321009367485849574155851543666421816071212066970656324078271941618000324059355440313157876678527823993662503390910089598036990262419946722856613392373013970030319856647540837919390905197011618950575705633761517400003487806089447049859591279460100219574432837237422434101485284094987544639392783188043777054958969835226352069060973206405257976471441859352659348409207747740988534367920686579680525766377733021515777991504507012775897133797074813798879285531303375508747679864656559747559615502382967835978653725943278115157027968714331617136390377760741325458850039717009286728475701564860266549280175659055479739528265937494488409644642383064233580232737754591103851542239936772941760727368084995378095848842511359025935413853209958459577209987917588741195155270031166755327114434383719538715600535667798791660966263029339234673531670809554513338921701019165512346698674517373157290852145951015022616475047295969538041080351472918275932167453815831620375495839796772013469279291649802853419135367324884634807311673239434890126993167580682138601737747905631891450776078674154324613855517519912842373536612808515372450823577078555772204047285234504314899344701404689614055521038432778996912083738141394615311366815714164438488868121433586116625866531613008130611131019406966762770976651852259235468204064039044519329001495318500833894654166854594945175670240590704208899523090235788559294656621180609365427014501516427247008620160436626948394561468896610359460947127208973943321651325625359758417410578826442947691811606773800814423058338440220096947266967345493636232380315689582778185289354734839096791803685156479903871916386032507650656061326403817721049703722931302989979492625882073715635790641458852336492832127301200670173033994923703722762346829424950772801350523529206850701287945476573400593591502763978368763614140671914426143205603875344625044477784075846842024923695969589844089849103326387202360155221078871580511029877623048901349993270338904815648180802800276585808465874969267316501678803169259243085005242471834449281858805019568913598943536957821556135323036976403936352531653773826616450024450778582883430536112107164741447767455319167987930609564602888201378867281327158628708094113032848781058008359578606565099445917370176898397761227070330266326257384425034414769615166630236753373777334427795529984209197263786907103131998503566503366644550084877253551476075345640162574022628180122187606134655871839036245398893498208025546754063678065904448939195527932815829831672334445988176274054567347036055413369654531273749741298681128772580128262066569042258449014245104366906061279445756462034321868639560907566727695845944790781178480000969060823498060392993582011567816842223616910104608904121130785843972675458494842985143502833879908617623263982988986924391421821686027636469297750214022599766402101347506907769076438817530967845198777197541722905534087372170989093821625316286724010814284884268201220982148705817860728525367438273825548493333492882361997121350664387239070605140452071082211872696352603346700512445544510287172955118945844121104614237445524678538335819177377662713941460124769940585285737686958643123345230743987390445477640784603762185112866391087926008618343032542999440246722821686002135399172935167648699367941495125076472349600147787938179809241713446709821528768867756881551493311299896837050668078687482034779723838887185312526878580496044688351708893388619715174052119993212619008937892052724952465569718911991623982535010180194333939305987438086607474525674031145040547045714863965761474728872326279258893758541850035433246304853683812279927464023485004032403525059320284543669672002816589062466747222160204822701181578768356540065942640201731831037104040054793501727999301299840965963948777172511991005387363197600940071438267583092500072759875268522435135771358061179902009086396522835915430940478746308971532323170166876125255643849740147328766902137406021721820974736150525734113145347848375171109570420001018816661404801366695987912639044084004055440992100936932411860291185080815995138114571384225742194557873697022206527129869639150547931072387707658904886395463030494034000263885953157571939707462045569662024878828220389724604603025195777941515794664480142288804361779566407724139557411971324129004271243472536624625618153808016897739376208965961726521244963890080557142181971125581461770285411630304267340530896327697108436736489202800534856694151911502515734106293908792917603345041149515462421322441330611567520567314967921216483004627211991694149186823138343475102103287000752006752800447558000002728551845035664734138523261356605669177139687528924043366641484307994508945364217965480116194230415952362105432014086480293044469500489820504671456430311584764821172925213041062031006313038161304187766048383690227748082263741793853022642171378209143926362028834701703220251592331813612961686963650744590766873107021867634681766844069709486470613977663309889908888402320067364179482558462479061811078079525383918363288829182155638543826851469117573150950293127556208329087861853951664738332160786971250006200023219928643514420494589793128271615453070084138797791914872079623675232784682987458497927529466267482719393239075716388808820122040301704341589305305508495181619982552185536604419795433626343095317236312386314634996684457402633617072866647639537970961024069762223867586804048111934251008663821592624925119001841265836745150241523007705565928353540354126984519598564218197456984233374910207977279899556723862081249360775946988475837901116890159421901176572637122174010941419485917579229853298762780813565931430708442770388525245227135061653914594130897265559450600728222628968912841566720188444381898879826397516884288509358608103938488780123691140070135056188790474291547172119187601236885324092195494236295182260344794698604750005925357622258970254120076772707624891181268880584144807288558612099167442490683385669187002033318172663526088989186529895633560560502034518868105054261631423165331124307323622185665386824319433520331326872764944374392025638313878869493779215657069421392699440844966984284880524802619337537493210390717215451650418122005067869208128353106129820825057469195830447881330728370383515842666889509969603214422077714725171173735650535429753972906978741933657634759205522203530363955741946066015722852390788373928172144971156563771361531798205085727163162529600918845197237009549294504092921369946858280557813702287581745067416617689104332739024772139013132791005146674603706702635167283833550667317833875058216409447626707807151015383883001034534955288511415975941886576959433713637392445508211133132740933349645918010515919985981297070473622386332723966350888632920571279595542852090991841389656949366921901288304502247528375274410293906106766209741384191082593285871625005566923084316728853677496551912380814637477896925920297311988813290487161282359501774927547405862554022304896977794055065498616775973518088917324683602180976533941254716711697677129819739528677478177084459484761057662787759288281589987183467519497446734177242280013428950706681154726138939699211016699714373900557588441326412857769831388899661802920676465815913264175534484525095756505645987285258454751504149814245765281570795443090690954470143891600728762170301963599516168504497842185696295582561070104619366917152725632160677153541871345639201768318378775390110652882321046616401886886331679028829262079472663040369023291692102997269543861106258353949641020669835125700962020494656832905967933492559412430969980559078067790332823026348153403642142142296740332901153894973440733205446414940889242092551681022077602630087403495240205182151087559177152128583278271990687847109421789712168086312905377162076238441663222710108215400160069573199230852424944732943319926538314636369659694935678809423733120000075092174190006937076908987604474938048579208132907132763169810967027688435858686031422282024806764307892863475599392500770720877611367974217127010275826153185790861534157358370767064371951179797169677104665562118827450957901962609982430689441248542648491378403083547604382315571423491477907651179630760251143812976980753466359753424266285172043413672100427761583214819174531564441237155927093996476432367404126530470859729758149864115752449148766230557153070231546183434671631262294399905897636469674580622881558698017644814549187854301235217695953851884757957828721429082348186460550237128718161972392084456298635329695578892449822665088262615078879487994167360795890630502246071362388028683880051363425114115534402946056740606384738386286393845254308586346726427968142921265291594492005725161711924140282786461218275760102365447566084680019919057226447522345960865301560544451148056074211134668053100151620712942334750727313503340585800361653606354521859471168294559351662575863510076998702986394772039087437278253510259699673712720406301361754052148333001260041422958870985400534741304116193092723968059282566368792736145721151614705664564088303170805380425729200625386157899784066233582777284187599345128691444899556111805329801898614424875009961599590605329486880194765786988196124437612017105838779652023287381534760859137080813044349071591807232334865141163328497750998228282065853161166983353182118867518826957645465097648854974652570237747561682160030403211714017296322454971458079752469077075887333112109294108543030084101205026917924829545055091684828565279926614465157645133002699754668385619124945080017391995593604775555009275309799381311773471930980199743893145766023257300873344643216127873379196766515598475876956659800362406861423754133124270069787676956035794775576232034043158411814469981692740101484762633628785754686753230666964346853523709539360440563050563279356250204657622317864362610407556386166122709117968911941014823857329809612116419405055170507698742209123464114855484150304937432640173018186551562001174758300010860979774591037414672343903723021855075149912806638176010400652473967941653634711647535483941280869293312073016706500450745019170246303508947297529769743267598500389145593152252702064716705252614715076046749025446429989280099704562418708170795364972177129204559566644109784035952711910341437273439000341896310083829725627700680700485311008137816084065870730034479330332181240605422201123504624923751722808197350123112132686242300650894528617314210033330851262355215345950411355703841899055205025530359892665729301060897470011588813729129703188541394630025115518270153756734774960026844799834762241209527812324564622884407958560916047872935173453823998365775392658778133101408410098790881244907611952628940366300302756719314800783799331483983822389110026543443432515855104146397225650249087636183124428425213601274250130350849740456732944632686460431066259204653518764870692693596284362760492362107037147758662605984567785564856242512612465864066959063757949077025626758346767534055175787721838581675646307873763527743176015599165769907521101156350110946481484475039798505141004254776616398600303836379859324985945742676307674092768770132319347838248145839785195918569703930954748526904095180023027309939629512048899275659586478631537498277289303120218304100373595509481474015287121732518933440198171648991669553314203808196638619494949725595956640791821530892341400402256533823991568026724536217510647913155564440690257251960154041976857463472302783623600765008348717499061169143920948446220760694582330806094015739493013585457937656914186639229880430104076681033487002610828876716393460007208026288769464917440960878964330359874615440599369972035567927071240015330889881865184775439795284730593429587082413622283657470597232931015908888936800805911023857686129545659512721979920419226479646844791822077624008269930727748114258798066377445117442486423448789202573793119157067960548228765965493312219436531343954327833567870589237101275831578810783829186557423691055749194924013226780084008073440615930679892951981141087355346759218958292226003708783572247046490650532317977034564838900258682862164508587941064720156993326733393803030668963062948425285405091337177715547728093500289239180764909752967790098583031105787257978236891283929259374066675640644458133521527388810390779219420548363291307655518084717373177627302420494446275312798270763218701312695560948105078175880008109206753586437252365100464173846135249017974317804983543041841236324346719417997087328174717518716165953399527824252210794025032555332994869883110413774864313891700327161160972442770834341026495482389402760240145599235550162751295292122439476157833368907949443201244028569389651441266963391940196987344601923284099090039891065761083261482872272974404854465383421127379452599324095604811078408941546859912016568530567062287062845611404928117009605142693155257887470002428281102936962146283864486726453057266394471558028857336750521446474444371810960138080304041628056999223853934912322041302966919439029513828330553724885688632302244812528025208223384038531321892900300829316534754809457232945480384148811974741823910027404418657259949896639286047693047655055155691901805301944073383273042521862911289089140950493698477363524300352533417237988384127887883250707238806856986748401270400747472423086537801878316225593707045369154210162695593584160423023214059331333412802133872132503045917121945913868541784763217338185203795905808055399870267733164141988877011320935289437101190017601590767285712494433782545485027373114188241599442766776912815559132104190867455437660424890351928518794315522689946764798721771693956137440307579147206306333491686137294346306127940457596843800328776879263663587265236583353005046548254375090122129237551793094909711715522450761884241411455523259102127744971670552105340394218176684830716723123760227526292088874241252128457016404596478882079270260080663776025680404811613634835283807549430316506554146372439537986885789120839834481688582594612449117753616250013694475546153382535721243440998070239016092738273198409955430662876446943999285186338463617808874043676036574300438356307809395367369996257393076600472693777543578302992590675150967018420251322974289770473268236746956422044248249468715485835292495241555180004092450235550822850556884490431566386540986979389892744654694321513661504332773635604637048809122778011555353498919484209158734648573685691127930509812730820995457781245436591122728284660481980114174920293901838210302890411518133878034543925864567552270326899696842377485856345543888255960854070631473700173433036890338320881736319472980275204758343669767974932542941378480361240781878794277192090809167663388895496033341543045375337889213534542491669484030426380366369110045946590773887323629217711920092574142345825006494673898388760054473620665118003092876223422801702624055261535683967937984383573245461287710634756573522701450560083796276284006323744053642573143344468165647888168270142159488306215177965844692358365172053410860808797132297169324188732973905758465416750875949956088816710865245737763722134676571037774517849851086207189985963454926062425296202643306185251212491429697707296668134502384443435346214612307206157497501128462345538993533886177797739297600755844761283580824665685386879658378002885071126169784892726748704736531782439789742002611048772864788179075854508429100786066144876134172203452347575458397480040137477820701639936272210299952358864101349441886509880652172151636571770154246494716519819701849863208058535897258934756262700118041573994722239214059560250681191139607785069427847569607280761947661184027805043587862461372102045140098451536298394364972612471974239162610404395153578179187553069980533056614027106226853970944431496963492020420372864908599186894578310695184157277704450977018039524194730968920897777042387513542541540765927682720793299058128754884646927229925480154721748833255166787737766893499333466024784162449351912844033322835570969978159546291455171180547781681009103720801356795205454249698075803931713908092510160808582911176355291915934994072716843213673565153305835344392575073648010317482513404700490402965669461454480667606831145232834981083729038831214426390283082244874225378822675025153401786517572557788112667027337344951991689890051612931645112212842607707689945567445024665558088489812947772698013297959776673474795249279647165524085713977879956760010948110053398436480945706343825241184449644447230964678572974382742411636690299817023183294677200021806265899285163765037607681808612407783943826946669097887406396708385871596818586878375506959481758660063494349681823328151264034885343872763301324205759334266540143132861331778492689966532097944012668799523119626436338485603237017894151048394162145222943839851793622561978814619835123304039871971888212136521615558243978993800758311992009081440625874226524704558407167399053634515728575071226673257830575140382816668656303796845690403283475760181550840643098940301258393304575504649349277445394361298172947913631810327968720678647598880785781621085459116306116591407257600116150110572208343506217183837269970516529936159844127918368363374259965864633973284882465435197015174719826432588725676595617939774423508492608608132515803265697994416344992742056845243664454216050621050379477260102216993265063850784349699538455459024178995855150502695672901157038808649054324495756772194110605883525636785715770921044370057607312385921663571255980676842282280545949288476590575709601977848420582691093715829177416883773166644319230405053789558858337619044893617984822436664984345509555575979391683993689599548351091782584822354551391447866171110541813143288144848262116416613156220864396553777141443283938660524062427173237268745119528666480091824527613966569209361374561015365000656597215601622704460418032323179595168592213728461382125372597707882153724781426672676669900104198643639997413510454343609615393458495935829415094161756582404419460396018121015421959238064403474822282010887145605428887146254634161632763004836829903597975397944350395732108281739128255498953439505081619599181128269065580950007322941002171964698257420822803211143468643505762307954760650284069642697176430031777672785705904026097103258416271161617071039068617181462338996096404279428387848105760798694089655684882216187848323877858817577143165776905622435163786990108270089375174598965863162125172188695883126143087998748900207594359640356137355188551479205818927754667080116386638763914365387215492854803814816119570782458692152669058129303947442239902370665455951273536554358050506922598370540083763778112573765802009547965360889028302193642733734251008148598770109705936214923436598951568519077530733324303049827942800222704136839263475038989108213401177685275231720417294598162964448034922975855615982972254358309316744869842506719682264731601748201980217888395082116528692862805443899615753730707502008647983785809487913044519227431906082490236812393380467273269641770492990969300651298574140857498238326948615002875810775417634987881994522285165686571946304722716513817702505509563109403795968763398316303853078979975536286014804169564506527661832101578577996723069104394037463538866820730630107603782992311690954583400163724994722929112027120761433763233483336545860718499364973075061772512860310102605948735316689984381423318820368005209849254442476148991221868221102163041634146102161300834669639911539636605903801419025636528365912395263268468662473584090983916667327706179985412875722436073635966763899155037713454754676364216804608180435492627762964461803854251747422620242496285991686633691167145962582203205186309997043687973534589474607314775526625956653517346941972111521493381494225953968352584971346564882613044558657232358868544564346831842901127499282622936224952030686293090714154265673378524882361270654300833681226453320002421973959566886745518229124271635360107840835117547781570205019578008240970005169334614069731872373410100662861460751644405145455828259167857687506560578815229017629198536448840778329712168008559751621674645950348713606794536209845827109796412786443071008644885706591881389571789836835297939706880074351848636909060693520441151230996922713921089204403106632211291832844524595834581620524504503358545905691076458955280162026239845853386621943683426666834186787116693325789302142322318713735880569006952239142241955539811626731862530017549943352934631128375873390603146180818811727340891267086110626679810562315265153335828921045648101792200228985863876575734983170061399099298114392529168053286263831470983975978366166369568794438944380579040004596558557009900347554759865923732193454493327459946122787001951451832735447323439845904208411948244494564389805938673707889912143728207906707601226729595427160987619933517361788912607743804259784684794327629244190891413739983885769689692438986235161747817277171007244934945335806590445144496166748973109191907689230353941708818928269013060355443110661912336395507336496000653146856189303466753967288886076131372548942887011812104853701411776295813825464025655225595031538440900205125320511702384818326709012570585070983909329959163832199567779993907338544350466005406447919786814463749731742356751122846477844899163616354073962209516179178053452691057043172241989603915589500339089766097294886910358613657986386416818657308774154262408134542749752355584096045625019938325172187340050003657078384605213176399757260009637067475485250770543918420858692094845268822985350045484449629719676202629465312575865054409858079460104189470162316009356318730910314859034498935477663825225605367580024694117109712352582220812232390515119805733803891574459270941521717573127574562772267777624213039072880225232445169389611316442601891037511794572411686289722450026794825519231147464812531995486376926658151454799609130622910746116364522437707825433695716506497900865392261192698594755995661259718920938863923486304155639720168310700356264387310638183282667107829100665684796777886418278879401109317296942183727056516802833746092330482063676220945369465401671578926719184923840432228582448857711935208853805644407777833504679301660998785865286474377192825086277532214935012346739037589368161049511195603720464411487133994654331342340389796855809773045344762952080674713218648444618192643979927185752854611271562626452434422810192693025627428511466860624163860842639036294542118576811014923492208392556349084291174370410438843004862940020023480597985815512733491941651808497788859436151122608167945600049134712970973547937297183165982484014849446880382760135406862614495808607172498295919179080392040727114107188180504055997725124931812584856368909720251010643851289284049848919338777416302855308717766153865471365465779776823895608498391523365430891444222122038203234053468646349834778228659584194093202301332001806281373617152712629280515927589214838168817243187875150772389428975297215144043481864197949911261362754903852088763166329509792331779237366698715728908749079459543041541033373042539070667094311166958134486627049177782852161748736135674029175594329315253000564590143679496446509001664897789748086914298347834097424688517971803764303124824289035815199715997788423450654591255283072461901213229878198700206295387244208971915086664916843147385729571042196084662946146644075819171177701666605658695403724096405416050363005918468370316430357639705836905210625243600793119399314524469925987835758003108292968163810540050703592132148444301668687796819695020019262327260039656843260313833472958784530033789892447530741896546947940976841006478934456506536567988380889346858536340965426633834835644112672455652501902283780889337960097402886809904972104663266232159401997093312219733626187180777858763606813069287981642729549275692672368679095783167286394713729517843725476182911129938886471990569672007221439371499428126337062677922790904035166605371644368830866637341030676510473937666269116837603066669541613738505132298718708810357735000266973832856587677221326181585408227229333501585688393619163382844103287557702387371102797660923670122421254918532492421710183700497082436939791707289562596368555610466424046787813214150268168221046744171166147543381524400197307306375986957366885517469457898224509751617529408575259299050331356912510660921913094645631780815525853649560131574941307470644659231765775582411720273169442019726731105803883743414959860873771496085455526902719341134670277385080752696124043506014840980009034679141407093600902089549027041766974651496187014105045897019762122031340866880137023949594336216752664604524206501729834258610798410093309463789401648591689004967693801666310717794621028582979134377449884829270828178300195400703347639947724452060851690253667876481028449981817548081648198935638834817182810722461946873260181947997082223683696926052454681380068977276980926487226122863128457121525453451956323679610555618592578918626883855825112553558994797753145002830718318384978218168449050499393074517237948389762505721120932434090749284828391111226522023754540205318914803675977052675583786621896520514493839073631766022046076658770657336877800264514893541573823885438943325660982907619771247561204832765325666371541212901689499987348469674254007218740205532732854284045839525982451279250776198486781379581756033367729468109248977540986647422895955715071816934026873193114501677590385122394241029307293713309134025762716918476682380024241539235704429124866199916192804432502204589741525370613201807705367536674535453501018355147644536981877651511482630133381857756712892342676591099676192218255996483294664351156695874696383704039495979494813663676808600762809572403061678934994560623582361203939743332047023632693173051830497069113799809844297956737836519549963224466524681472269362197380906115035020662449047311260185483870872166592027533077412541191212062315667540148571036045151236304326166472447760086177584425421317957397882128691901097326882500693618117939093297958667678298663971423958573806786965890883337961390876303035056688867459476235324929873070002455820253583012356442413990762618901758083270873043979801852704347629343762861629653091773264101752958670851636516144501288664616830532714745043494919687821320321032638909384439512443147978829768137246361482419841988743938586119631238593258650264021213129680357467258450948054460264185126638087426110202815080904941764278044521817717638980563961559160643102913568245772572850826240227305709411299522263457613961779302444838762348823234512523379656387942985153416618171265995751521075808003733224401105103646574212355785930736317325763060110488553493836630989376845097369818728660421613097840011434070127518091736986957803860833361729687248469647984795151833127360129139544425820955551483906664419111574208617794760009396982659674300998953996528833902130649764173603318924738817413397520190000685932313427947516875779590124654985924435107317952265363676163865828591794846288512101413102831553779868518590973595800375076675172920173058036195647594813461317350687100531377787248515831152665833961020044698996710693743326938947807984109503023954617484035295229859462138022468193935441808965105023025696072696085062895133554458520824840365100593624814957217875077144354987063035738704915205894147175678551131716478938864296945134672216487313263585680752942730696314902304153084754828003007458950022465817496496732560158319273469928709960074430447850806827843226904376870309145434461142917587076904424665664853366106437785793297778502701866416263115098043615389232805119526805964191731500790733720691218756109667443204334406142843432305120637396380561790554852244817549941232243123748517301816711558981215552948960707815640188501185489101733090284282862739178024958612767250281513974731975934707027142258425611277430773075504789748130096837459641719731967210005443225373749429137141628622043558872950966584687397915064038330252263592541441420847012020498109990717016992870036217080577566275704489053813155942728207118366296041251759257983438073071072379433832116079879610695390131869816181288199501256297159154100814341819653404628008522164224993615927271899026106465995380594683002801846763545262330544150469016281173004798801981066357546485869839711970197527083425796223198674109058821837517159272479673108968485178494381738504944645924807100745519917224724154963990440251369006946281738040244641043967941117555831729502131232816652133057816343461322254218156209181396718622533038466968017014763306102465885126278284852264471977264062203339052364906960149304457573682342417930075533909361324356601756775226274742248752961741658512450397172914808754599661070468462260693900883266105868918813882929555547508260252847532268043321382705881503870508851025183356229458548871547124224611370841677613282129486302349244297501851861594402693726622000509615240815864110957251503812197947299388589727584095672482732491915693969379699979799738313561039646656663978063563803813835096487239297168501710676809770030674369094189064513809105473428782524970569627191226546796657140344818694969962479248012493069247206013718464027541319414008779079763156460116271306905053732535914712698492704040989148925442869194150364745448220284023760661783135186040675812367232460043566677556098604336242297712707140228297531901679364033988816537628273432069232228744088280093679790945663652205346739529696284126224442634059128847812943483771760464176151687296219633949268642044478366705315752612549925413188776521033063880624033780460050313629168031728122608264895760416048487171565165656316361781149078306762552593323918231684440441982241211990164188543547273062675403729675857990184639850171381426674039462494622142933310011469436866667812512745454410612260412880840422344993407826150740044318469439652164377476449295528601625165095619684554484156423244086324094701760629811709068643539767545566206327687342282035918229178398306384066132973841728161519139155629576583245570209460304631628741785121933342697978997962186861359903570269331333561950017859251423857610789583083459407018654420830806634178089705246643055658050389621189539308947844311759803792470805611620856411779642453688223716830305193871041563205746612885471573835351824968125720324595989907288961643842592001817217317652542092540513731743528844884117866294503889399546754787303036277188669884661529002548278855124850298389051973378071302037149747428291125887665973611289344150074705030130810860639187771883441134030255093372674661499763348030235677342809748118945944888886758015295118336127752042598000347310278784579115660663445435678718775158164653570664565600066257876056325655551394194391004866426224515006220193807311108372298635631576053588176476307276974202855972789349052484322734380085466616924362888755543898034322506056762823690921454578046198310172410672569658682853655419375876414585968458680536873915574621285158076963924075970316417811076250776267144537699549399104326247970090033781825121140454028875895213737179129898435748541760700219477850041356070050567651715035998929964828210216683416952032304563610246293497967157501273864261630022533430819013254350408419110639246532563535220943712960133054254956449403290513943872316666827379099724759818070247053748175791594964108085462132299242392255064279861453125926513071321284285293008823025706310145068587681180521353719473387458852672396926519368643075609758723421752425323056851140270903937415585091122570142888922344630836459245991645037607192813444961719703940865091767236231649400307080656865220279804318304979848614194857323910941678858351899306279734878948563969904280786584098707228836578168893597659112657363312335690133908973338009914305510460529140991170968378920065412352447804074486577935380102993901982387507265751467022917484679520959017567058443694867774571642948471116804976952924506301358696324840582981121329631506418952263657669664475806935526806053160205450488370122233625615678990355724148664920876821264367418178804022076911301459725794641270875781274109934164246062898815208097934653537259818952854522297161570163384914724167132788642601037785798041625740910855261901939435584530672106976926058865846729425475571895229714015965566210131564664601935240565981735580483307472078688229612648077391141263429203688867312655399539096829410813706641262986955901887264466293834590360637636793500116164738529962454768862527697471978403391984782001208145224702299721244136031776703994058217241486978889233825956643107797542798671729411389401060482267382510436381189826399308711752398749257896828731766064765579599343588323167019610967059454203280736166922674948055131804486992914885825428800236446158795288741903205172004863755509534690491102748123727801869878900441797692265973676941110357185755490685523309976793194288244242117392063632212960274750157791505519465677756080984934661574055017086310243600044239831591360032279025550079916661004443745575166172663555111208810120634098087396695799752572355815959601958732328661341943455501677292214411837477932640663434371186085641658819463106817549199157490820773203147449568249828435628004186633691754590713401275291405755061907286959678732079515989014710850822495665647452594180052004847681544086063651279217181269896062218479459924053792313324880819295453814522579355918031594929629394303716697505372332124943521415696291136626950647646086408278254838205439688620391115521822814780367493789915343950078336645120220692462551094119166173216720162410949310390098191960019678387037531591848714414735101241975254134606996007237632772141561120116103444095721265299748048235126694839684011084389047613414283107679889045128202930963902340890737667540409567495436269112524633648026978055768690299228209936515463983102543294599617058719324000753525633705042606953383444664905655331428559465153757693662215439130887748097538783693469343339796910110937280259249884327247131286807017543573137795080475771944839815458556650128672299127964085602687494039176042679997131062552608449615923464254376973318211266626976408904794463721449351662478737386181789762139635516479514646585931952941415943830070583909435652863313733788963941994875183348482640205140305615630113972161613629621917329270107260117288018900540755030266253430379317181885366837965753198403372416939102560370086537857161012671254891031942992199300625129128768666785322529842366792911455980946910052825533708481665327223112524611735217569343016614399545724498114338784328790669391846212828785134471968140725086479221642419327737198188525804886467463729632252527369585317597639632127992976624645039614478226082691343002139202764995109352534090823975362078434681246971400065802649247384364573670208646209270854183131399562090085350759837196563246344674281601496211986588475660818996580134118119796896136570220498438263507533655215163435486105141581977487891042623294287706788912346838258915121804892867946520199909365108330108558104586240487898332441818049007025877038332577374021969158031047051348898715395852678509188038889570282675969769400133946811069435278438947083003517031995444606548115648192345042246177773252356294877632171814661917736510990138004880907657245693858877134165571958170540210650776522643299917686441514694139833269203117438782834573527362790470793206525396125598039285802815559791027535703004299670063941094855341673775032680244930017607021925673647484826672486833886090696817104515858036247137200303356540790620792322718384673156303581840768751110398245033433566480703575354423696237004586621804819805129869983248140410086468399691322772020798238135723516502512605639214412593004893040118582461113236854737086226615117968784039561045219938531862657847953371965404298733606202832048672764996029895486427644817659523325916679453753354872801473261573831765936510930044735949872486501461897208223351984872824404638638934597508131595309859365345130420297862233609510720206606810600359036000753599127200837093092892819462055210454674702834687813483902849458007381851794108740669181280672082663552239636815669530392594932766209534880192749360342758044226552533115533198986774679546744409305742850329340146044343689368665945986803779681590003944911232101568206260461815301451589603470315547099902078859638304078653509005062244471754962513904000588118668625402712113066950813350042948856155597848030386943476854554715091621512539642272924150134319513811361238898314670154389620531877679076679710565677791982640104797715720091113726412918464708353645418714817784957163132082139293110874391267519494552679683245706453392295857164667658762261202617019683523275177645500454661693967392486111609903545653461664495110940726329358519174933243388439152907593893536450321445722536544339014682923847928096295495113400893041706010343291408311093823763490178033331546473608069827336328176864945989348900356222331504393980870584810850301051721623925400776335029079907120089685491390991750486099243645074006482790407879795698908569974477576482755003754719829657002042858236617442661982832687451961767437248650935502653830550486011813892350756717134128117442976458994361672626926149321379590964970019517223353439241648139887263866951890256752247412336936590845909165110335539965933334771214795013081394195601203509846896320372289598258011107776706881558213084026320388536601746299653887887954682598786265893615298637446531783288817019663020990666717343785588512461785230315925238196607589669424011619773183220204234176833429867293957401003507783060029731561521023361781502927001781384045829821492984924246864366920844891865813359396765912766886733518218108047640982777610177908807931993635958046225067938883557399086851639131893801174102228427303955691048202036156772941976308459121799155257516759110496529432594649476824534895915453385681057676511487709754097800932058714204790758736310370064433419905333611692311165293088238361682357109789272465563346199608569030867922610516459996996512913607423497129865405525379617175548182709785145631920576454239060955709361701664107668878902305803527379224296959499464945630277812876579905937096411954228169028038897606783117764861433755187870411184904026458651701015230925352328409174117177860801293004169878650075539014748945102305781443107449737666787705764608287085403259401363079131741119876258285773029926940427295836563659373000837132475288725456247022291462421702189762539906198797182058425560178075701349062476076039080644193834749172494354649958327301689425761284509556162868273636372375407901700271555647440847406966286928137016012258750762884731639194542096822921596492299716629322942044424825195119364963643530277820590994555610449195576642802138130100311603643370332213066311289704583810750783615106441588642568232459185179282393496414037363166062725014880054639344839942145387980413098229457655188419006706034362593351114438673961024360765255653290964579978265634639335845069419681916911461858991559238952534388792784009541400733467512087773663426803179013607453033019827978738701072686808720080545096645513100781105142095480553574022344971960725091469643044830835704265881570289843509569235402519856964605908989158294394262667887885675349373204126525886215100910475978745381466935235599557995249219110724293264214520403062076308438092760646586320542014724260773311698533991539230150323196747916601325492153118579426376959475839916248997698605867178632104078615548036341742263146417245330763910078527343644139677458355299849994867962926061010289267039807018648324333871695214198572986380999900456484039684098691110393510075363482055099460655301721514896593705938744511654745409449358214666749663688267140662860162507692618474258751101094557692470899491249983939483655940576930836519766506294171420101324492269455766269878786724947362047289475462715327414186087637657033246614001242183313509166315416144928039689493580347037178196715814493442123263020501770674715499908325924290687954175923413187235501598818015029824577712861443197025386022483817684242313526672616644989923117223107523168561737627222327930376920750202273940163272203678724012917426979565252623690483131828067885870889102846916172801448628420692511150866730074121174177867695248060903064381237106904605640249954836392435438726409829337389487754928125588910539744765902686330182208322200544257870216470477668364505470634224530936096232896673108682273995754394271422561569133754520091904036761739300070223302084966469650776499505623229243278807958500416440760321122882971771461755379264930001225662472167115058599138032979390205384516777422249081439030498000455401163345256581618200694070003206822309392522629468807556879155881596427349033179501808202764058664902035150485061380258581009738396305082689359618906308743146454662891724561958948785341348611620477101578657914935393058498423763646974716414190082539499236753419025273280375946941787603353467500646552351349595825489034212327030648905011232410940578392611620393530854899048843610274760767016274344557230445637984038479959858049259339854027864815923330571532667063266415377281497400395232579198298853340012762906319746755746551643515957373328494652263647465686666369322143832540749253143236933024632592221149765044182481343176875676396462194055288888635488608099931285602957729510326457625368126601682810450043306071438553470781454831147257728851913578867718286658162782994930161085136811331190830762087522157240883899716417929354821298968575018168846343968723227368861861867701711160219093524988477253198020601100723123285139126900202196886746349262985934709819852217053791130896126444765454650409069616291524588607913632107670751185466828418538834994636710488773826023898879895123181653484219497722809106395596105078673589047367495987316766936383224513005178969170334795019462547231905912766028912519460799310354279726312334767732941406786524038978071435844933523945943262498051873367381435952539662548488250286612665829840072445652193740895902051293468260054816460068086592031843832662703485318388960532640091649126499455523194500351881547361815311581677670925019755994699399722541694606937023058400907250273763111749805673771686473864639563583164461862306231513911436721821680912667474180005068347878888276309092702622385695978176482544546885878263040613274687274439645722226809743407813298702813581745929317599231645994162226787731460409000406819114324131476544777639437313314416329602765568539496829078593943198508383361828772773425042716457361339999946985119880467677634575330080923281386192935026958462285296077203228716939213076594725120886105088776441764205955747888615810529144206636620824501963239810736208503648917220753435319349811018564673977363915396172800083944841218595399356355235931692173929908506625942855387088143573851385080632320074282518619190905248919880329601616951122236011964743175588979481993796263110615450364628622146905508687167873893979197579483948603777682904347015713920292810907479566385185258710635552608167240567664479385602989980588683068612092202968322340599431207020820374362820256940834105443660053463671571765402649870344542434125640411760895051096938814259651401832184049101461228141940003549020801192757515170059465821165338218997294761586551419226741540772032178379312112807248577704809547143981595352038116486975124180562241490855528961433739391106302082827137881335133427796513786141288790973131931622482297169409115505764657872053743653792888400199703805879561662356190423234294263667631646429618552450076662713655025927215029511202219096629589349818398656603996117997069908778974977033444456127279337991527804456075103785938868431455544541502189816013311963119642219289638653156322359188400811132083322553353378267281123285456753287563082354605645561216392575768466425212459151091943329922618551555015111018476218260649378021288693875307975314083436029708514742075429515540401774963120921059293704942432282010757133955278356010786722040326406872970041030352811722841629532317816587180387798043679992686654481546992772150820494892325149779116460483794559235585113758280935068180886690280050333220779874481427984392152541511733987202688063738094818712960467035235237507492402105456206182923348807602591140500462494708158131643670414817906512297101604365062927892033085023571330077869556842409083817856486058804130584747312156065194608672110167353567542874299110861212482575180807026281104267981208865427479670597762920807940677096299201912810231371111138332729488130703706592998653693808922779009020530990729740310897528864753780709781673248298432656002452905112139807285443093606123074540967580244423954002382498913199184709604290830227879361269810276320413955573067153810499144873806108365786220760673169658241772638590897665154478691744067812115411228238235235685428129986922052857048725774576474761546577186030047778661146308774208582595342420903918983191929437053817768903203844630291208365251724997364788342288593644348151449287054899123506863572313662291940079148104860329136469765688682389203355243354715107370056971944677052959807586430471409545209287991141975581053277309480795443858043161111202850318835926010556056217932715013126331164394514846706683964042706454793024366259849945321656280362649399768137493905977901191110392745578595468356097057617542502757368080207190103819843671668255396552078173961296032541108444745943684939173055151751558582398716214642416802512945170552532379629732788994731146707321451596655552732722933242626220694104062409319892284479186486613793695491161925325390625444528468555704420677916548652562550632249504327408599515456973850580824067726755433697188145876510206872995315871601146697564608346108266226383485440743135276034053959449947387443931171624439624832183761968783023786478670136572868261421819217584760436189414724526745099595316956656377048135878488408249988996055891554654596140948893255120209444554582094842599446138326145978950492885277708288645691674836977503808587736656105951552353553805664720911766194959150106112487438992319292721779820631213842277255746338629136574843129970864579344396326657268853666274480410723341802812089652997694974169993772220881854369809604719893212022595404945335649166665579189609848360914662920450406489073325357125591409167950268469789615682614371482224312247440161550818770046895124795323580124885575472043350535734461448763147158682774144701052740546100113544221501709776149007484002519614337399903803402577161966410114249988094753511337270678280524720584841806416071417799129502407233343092591088173212600902646147792839212642109328742030107738324855403930519662329480110205239198821233305120677714931330979447931380591030052655748260755150315858685911351071585903917533470466606244332141749111201651635664671811703955030547582494732316501862867732066609428046679112394929934508418100180921279478948846660604291775834117443271072009023766400165828806135448996505253877278812305182209618218669505439934733914667445575299531941474644493863381024694957244459634416000888123032527143577101683334660184747822324925153261509505181230137488414744333659151583644200042038178239479788751065088664689199156705927209384803685281042419948586536693150009697641361863358576330870845908405267675821746609526186063773672993946008973237429011522524582324301323162832028662897773302174811078354217590187032409631318158405988106157542658902576737409067890232485807858986363983086163385206640993708929598924838182452762728354734519029252366963422309744701292402892305239580720761437051897005825569293012840000209308465449915476631471608615640429193334505378371476156802062554839403852200078307933403609177575675354701034939707602442372431728842674283782833648607827749041637970174070645372369685033170899932047234902072136737554453959129667267831056518908657589733595346547636645537172477794988665480767083349852382483665066976495867397417655640994490969676566970117641795575512511141144043317445660369382701277967692061340312908497985068320878970044782608064827330396295692288641252532478240319867701467738205405023159971360672637361238260115842659520637646551272049228862760772964649188080750980177015644630484046034734788635209813587281617892721286092866109419264839367718207380449920277964954514827646542467806437679767425288800891065782862418067608031485716322154788430129474774902805028541123063279036297369298498768109886968971865589603887855974403167804069305244830104233270045249343633271738729892127267008531136708922597849500129697394111380705786363898533900880322820944493987596363704737189490861477447190935225004825350724383888649176490393131764122946094551824656361313912907777183701649963247600003426549126931453209356127406678788039612169247585133452811446679113325253092261813307924985706680902537044595252241471188284561748814830179654853457307216558962687971352196384932670682088857045796123661349130255464312838916083448496553063464817350081545613559171499460363996220044097327414622630310577394954952851649300546802830851334194591140096477176743962628980310223467031025734466140074736644618676525104053171172680158776578265618467372912544566298094188799767207068304607501686070909829540113070555016169219848753281952267883046375515018893991247057550314610570704907507973725188630450213001017053266198719627556087349226149456989443312894511916090077621016435169213043080824002010220515996136224961336443950846229944986262890197891957836719976513514257706490355664548858707364835716800940000474552003459985018428013403762048622476601908483728527492351496512254310155588450149859632740994146804071202951580933314248563649270125466184223216802600603233366861865725660278678250397232031295381871442329729213285450141319424567452404894939783119010789442447777323935029172072983878094442598190769680734525221753061458782234863565481637819022362593556245430578281847145573085310928084690779882175091969713457593131344502602230765994072055523165055428185292325816003006349598109637849100046936136008046349089858738547094036946405600025910348712616663066687814937134872686197387596845690783868946849572699999675927421291557785929943851281113141426490651109540228901133711443169489287902794242907443029682472502940842609626700545585383729455125646287621016525202666316702193091260396003391596699815192893650156424979715866612677818196323368428888714339219324965939988303343825842106086999626767333139940537016897254164238879426712958354269476112977306837166497589000938603391633491777167158813436170247041760161378646809131347039448112610448008403843033253439485601026785698771704811403975257002331158900015533850779281708280548704288880431879077841086874674556951041435668223291063723486162068004865318992994805573233170745047465741866983813723108907143408280968714993966452381017777411836223528860833829971672315043830980927532507947226040053353532790550010802904778004853295801680956948296570464744593239347824798063186437074455090850520562028905604630474499862388217638175548492358823091238793657092790246986319281547492713272711686305788353862180695653551362751832543025387229601947940162038217539551247203455124624918962190746465946798291548814026104171909133328083133066033575191238752586582721238449764504257230333541225872295685053698806975733870071077248457939024206513745333448067765166883497113047420206886385669490515077549263985387068170290324990031649908072522139908907920801809116112686535172767671812552463091087726856700954144941702284841396482468357443992845119362675871597284452454286691983187838551282556090279456012763907207694925497897099082333416786779282727116836473849832519595097376169519516768314871468440719456679633352542486981861353484156931971114150838649286169647872495623525698419913464308874352095141518967429994062153870990714786827171497211410451567497821355689418790560018855764598978192685605211599458167542151891220922514892199285368242092252412860404225296718099554001935125576098782800915725675924395380670606897447403748628285915055635707698982441235180150059998698368562779095811700957616165137424100034727916670620855597191321437914818267076088480313469590178767843639241925772090370248325586549708617314651254387732643130586456269274386807205198492569480018416115614695004994265274819918051971181587253825928507013944154644993504813422227971673199434288673828742461237386010178945505326385470635558107114208359503303271277911223826111426026248384820014837111207477311584046377637103693015552022891993948402740956257455982865781392030295320268710786938608958249114608077000622402817753753535170145573487535945215842555520155687855961959460894269550462188201997337105509241108152764799097983972986515289323737222564413723852624169870458041295352618050066711858340445990855483331978649156860689851014172462203819051998082427744480898480698303587977135003366563494778529299986590314959128556175717279913686890614043427659114582000510987324776472286626307255057251753630974675951886627777885681947890388286175166666245018046780168354933071858853104771281218279536351383751130285911206340574460555119341357933095750539585529954942212209043905025499397748654720076147726729083948952774645010895741510641111675603366137727786526994106098516324528270347022282393696749607433641222233997242065330287540821036870989207667902944632784142724529174114461635939126581471821688067340510575563331481907046300812289061232309633103943071274884345350534829337605019200304042276537600435698440917134219263977781004200125650060343361542981310969820972694384248108282363407018844162842520349320397881738394393507213494841774915769231388888413451511138397458964922928286842293839658520296360705281578582034849708004544141643142048543618062763972130811274914961914301565364703176392228329129855650764329508249123557746778626667750115611423264349105396090535908255520156862393689502190507234420561261125134473113259437929749340041943253858393924655371623192966214344916451686662197711737575715823669777092881084989032117850158062341789931221749758109697063611395077082043228009184211304055418530803135609840261501514478296986086797170224225748581358236414934719939599439869405023093671212175758479801126981602799661872040113908109394315506982533360672363113765670684671656152123177303557751392929271684561102001934721231914316991187742843644707062241968784272088083459951575667405198227559491719823080741001160762859205413924287117578679558407136617762797368131895905446098027919827441576139418133019385104551378855244425219726834049657536778765395191426323656865196618064674698358840111365295533104706720398250625495957320413455358784649984752307176592895462856812619434400295030523215701422829441785654187271142751740608068289153520160105890049408644495039388484377657377768150171049394180289826239708070765283990729095567631230756320855448114506465617665109121358899600584638580586390949554788044504159279024798973331212779390641417801308442727268962673033457072124692969301120272128930474676305383627134734897702485931367328120868941321673329200330287858890497252547085208096093380040404665068539491753968212223782379537024856662017684394359560484169728923196666832593018025166873348671729926531565200406288804981828479224630974803539298632865244950226123998522521208958701719844770903864330340725829532259325299818218634227513433309581162300027848302117623303264979384610511359038340283499851519911090849250370711851049466078026284934153691163881914950356009122848162795777207863839263701857644442831899054724296154298334016386182369525372332183805970232485779133898739802882735971750709321581969607224257181625117700305585091672626082481872132288903215345581078999403313983844675749939500783219430244766954706678907469017951780915373344294165186689682967318027044068406713205726409986287888189480213095525174674782496785834877599607393704471799623927574755312161275314818199381251131859561217706835539918643318686992764926218765755028458446318849958283472884433598996475026441052668118918434315824940369723399500830703229154485817107623809785931878258281305068151980661521308471106737929230310227358449869783613201132923134906812931955095214700055200556874114645134993661556565242800550369049440115642303189815836274241829057413611557177657119528973392807659870257386684403344094179700649574715986530339945497355441928402899554354457782050021720989964379335761124723489924778118145861404143438471715050933890902668310675144235482190482610558228334957752745187978665185107509714925231523751108159600586866669189115319453383186462660122555850542804897341372097004662630547338303575179576691902557867839368552168005874918906100970937142957980136604999875192874762359652032000440331305926976273920259747350128446734573509353284822851048707670261959749331125924601478325151755936821152996832978549154711628708153345570649344956434830449179409810732586707707407701157238590725496833309339512999527222185255668363642504592168608271634517236415829029323244318213422061549923689484390304529232989718035642739282773599661067948657750459554998861888988709916974648245486945361839585605242512549127020653074750578851883918027788484437900140370210673626162049151211086018071378988409176982506562620115484162902136327375591618977346328180586870393129581131734404352375207597249509098732902291160882520252617409748511614379018795329179786977199927414481533595077001940739324037364706892860854872071038471194107509125943475892684693518353234826176152518002045897976773273864947243652134036969560320870178525966489196751466344752513878839725494581952808295525920409334062956790253461081935542921419058419082919092700274256621735540989254181679667484304283796415475714188960941087674013450390549845181944388548471691372171176397680571497966955393204053211069737950397685021014434386579248550823247790520296341556655175481553655855650071378977063040061085047304010606741952087970159154968067744632545376601584236629346556569188013935028833595471084014893217971990945798772894638565490348582041996158068144474873913930749810602621001028910802667049817372446672173531321702925254228047308270545244972531173913821656060721375123828509801918209058225652100779679046490946177321398119089977579573696413239383050856838266573778855092784262260736965191703744287586952890063172163272986978047354491785877568233568047979360307331081603315425090027720779765463352519916238580266401111311226493294176883651137642485116652587892627530923827664076072163967803259755469094478818247121223441395205431649759844215085588883217371137708025703879205244333843691142498635295231435160917624884554783648149000876455159815295033983144954075124472920947633701477184162289340867856716052280806046709155297721007855548606868423152997559816903994972974070719429669392576679638914925271966386000971195624115719836550339140691894969398359902442017457542531906844270042105412556243332009910986157661071177690254158482706342715214264588715834888867539091098736320459998742899152216412838753968422998702009334332991091718374144676967135708102450440809572703544563720236779046080249097652004740927812437808649375707098280018356486014451185655692242135294363495993974597191158817805680231622162353047793431209271651150644850140860440875454742346055054379726632301784070354900577681391519570308395085608181738892347854808197992763553009397930666522739474405024830839450312870627228057853088472032561985553147697360051711267275804497042653854795094749517274453233869144716818314451653511238418103005753146967495917049926995733982791086258954461417767729762114238007722206059997652943932782616494104166532148121839221130578963489334518961400198591043410501994493254749539219348295032915441093708885391811396850532320222862523584814350469481642947388534819642218507108288244997484662775899845759266814472914772511627103148831445565114842421000473048827830807575218131985424946515159003439166616535010486847710441198297609034334496428929779640987000651120644081060345250634263929339885826929543199796860059499680581992583359848388790450522437884795821982608159795202917176800249823064694688712141166909727626966396438985598281605877552759910367859111798595583691212394037424162870338063465044685412955502069081486706337682603164433760164008675977726104275629495865089186553473254076481549835969887718329672895737067386240203987305808445921901723065506287548276304560675533202037962404221917867894041328439951945770370530378937731158247152377812491242880743449468593679235004671927608772924872886752400916950025544925245682312321709942363321634961986979049269121009888090213006552346900874003432720890252743962651382921112027338223309574734058700640481075773383740907535604926061006571937634771288776767483142424191338058330245558680250752146827678382604044345042682292455974258647308427570180350216907133200232767323883069970438952703824629218090666850330292278828066702374327193424594081068240937129530478172831006690651343630355583020718627621253840339288607980241196306290822565159981066678770488406985046897289396552089032990266934549340795133186582055660182362723540435758063136111647987062717627497214823758918046763395051341413810261827747092744727225464986620403500739777200959545370212601019236189474431671074747559140055147246087142112190282717928925361301798813886712855345510028768345183291702634499757940396896580188643905895143835982041294570212869390902904676828495679573107724526303853092038617011256346571911692383364441692696004739422238366757786329824435374941640461172612977720550473334476953059975617458776666755532123755240287987452030804332920877118380929350573495560030899960565975467764592914977386894430188709188244293981615141594604810736771738252676388038949850476068232706680411013500614491639154844209178289420769825401206232400100743201094527848200732302310568402549303436583460654454023256429900231215142847046206483463623991640595404352537070151168183562721299869929340979094290058235999127315828624707725129844925682366481605283429897177351237257975033329368644273945378315836747664486729960781279720918844243469785286056269828156762946099491132815281602517743340325332218743435771548693786550341698993557242490912449700536369799170978515605934777995473880587943302282696150433615013568957100214479611885708520812947891254401557469820050860010966874055966868360814227905237719643861244517275694144547165559585834211545136672920076086890797892405398677130573971034676864833122765176631289651523937736803323268513844712542904438344416179365230072231439010723005697913702907044200475919807293032829035296584307635681537340462381017464206820406125914298014262398351500208990905064469031563009134154067328161578112347507486580780126020312234979864155176090975908975548452835979147414645276715286715463276331026952394301963074937498021147038316238410164585312793621986166996783932095200353673130223088965623932684060419220326915017213823657929368426348222010264799315874522612300426044748029575921115300514147829238659157230981238402334340338880378279096465398186035471316003502450299815110578946863336837233828849877193897590972952176519476657747047517327789157114244165587074082454245834106726814438334838637385108576728643858982818690653074888079302685413375513378859366533629917213651876487373343189398194666889602080019485133914308813953955656632181652197929401980414967790686583992154888937903907736571686528903431547989174427165539307997398132492020414352366624344488902854511833469625328496454713451926552309299173309777084555590313228443921163861137709367437481685861335179009171022460698428092639135699087349054832014055928493641936264258302189696959975972609967014769750133528042758382686362240040359018880803528996113150742638487451618227029347832131349128385825023970506464507888508708800640343951845628417348470343820678489369219213013422677269813105304162093687177798333118122062697699361495471192874417502242310193697064095471545005615039741501764185474825988836658237989506169318828185992776558336394082662875787991291532868212667140331379497766222835922485788044214670091409453925059391900895902288451813192049251695014914205158640742923296906400105166436998021279820958443112690772492679266779879743164107104770568724719822905521477507474393882015019343718870197676460683961856794033429066716816781596233935074337423532604773073476011184450490218532823901937355850377366067834433466630318225800470592841743267582520463569191324927297509054371072387237850907544095217809023075417167070008039316813395084158628438189484405277229117614420494261565731249072396979613495954973365730629867871463902543210157139703990612316108578959903208692431710181684025298512251786074910718401083151543570475454646393724584161401112888487126970683103314287027515774203685980226046939560444891402252308154474962951555938735183935165623741440098271412385476628325067874125437105194298895554856959964245797088475225254742066093327310406236481652329243682419879203270371383829563072049399410778732833004182815725429932792181966670610629046114623655504497501090983965887673655284615051539745851327446697395232862438792641436857503592313736547685809845785157158173993963036488339296953507731896876848773646321838364549430464045016781050205984337837768571961168177848397825073648870313815040607482525210252031831313975589323144578308731957629722073353987161736523333497150598923067156605708476793177080547045263932908975349514848241309015018631570527668116344386005205217757668807720295821968057629376798917198749714981955982502872667505037736966883447118787645620683074381280702253706843986729722845673549814583890778643494311436380737085651084843436258315371720323334302136070576956189804827517800293593142573805263155599833660734195879565422980992051496581450799863178535931284344880157489221246626885372050118943073249833669679684946841834603626477037425524737918292444134623783678579699090895054535391376510429963116071506647491357332656563464328644901611303383378320131733498976198045987811096010748104644488184050761078833708806052357845392459462883578809038973634530615349747059841813701455446885116067146205652538064846670978443157150902878594993417355297141459555704540846675228306259128916304052624261823911457391423843140861704102202156655959811676418961128188803657512453628054727978088237702509533292957068273181440123968694003768457979331854211948678416932762414459959779472116011817647467943356059076092592079737957220161267790767429908756753794720242687071871817649000375381013154418619760470264645327460642710038657341050456113548264062669421416814524165927467814212297049855366121011501349318555059035788787468115207103537467722349816327714522079609856465362944236362621005729291195771234935531608436024535067048876874921721612203136325989257356630323465606170462608237126172429507705746173623934587016231326064864073281784231430514660634924523846716849101617627408429378828740013790404324458423502659355203890603054028892740102826460044200286396559780228805886400477476407054326504382483276586364399479984251697558115890615648248508866197134269367950982394863205543728462199825967986664675033422942578285542428188546162323891862920972734776082024172974283097180098862555818828827662627744625065968441064801378589482762906874692482586990750878624411546375661941415760680143113193941423007929325903368983191336097686745336045853917778977729239869310780199198982597162453468978110578525626677722022766746857130553081977796099970974291822380120058595558869537063100635743911986500618740233168087522091832543484098452552993716988028430045063349802052598151148488176862569995735843375061564963107492598634509219756576540979435132169146431605550362581790353851506992976528440628478392076964361992701241148181213737875318366326522489297479909017411811364686937152152325180319280148924570489494195660047030434048464810192074722764622127443061138686403986212487645101190908099639638112119791376280474690892259416771851149293473751678993951512514399682864772618317749117908132569438571430142664115288191612425750849833247820195527050658823163210805257024330346133434903548985224972008252609155443015013930449898093660338397094424482493019322493398659896568557715580097362479423298295016198742637807043376563157293484809433955682813937703601812223775579608202954027720133788126526975178450030792622715378183271465064546941641245291722206243500495354378038823038518723725260729303960432353130325317230129557652421825111251271691322287061639720763666976966773341412253386364547628598971332152033577492255004061132003159294716530241103033611311960397783084372935261639320141091855925279275440973437910621691644528468473649402312326146466057174631299475098109498874438816169660504314964238905415312154586657126375081162846994720129748514635175865772936798214753171621534422820761150537684742618222704921682655478904871330473087533704699087785891724102407402204237364694332537034698326182622611914488388780239802878421604473059719562117773500782189394755738767470810203827826358918568513083603709543634458985180720351418745497650547433895585647410857582873018377280628633068776167679622686997563628328160010300656019020462163572343526924553023049998004955048144064261454196180791871721620525011299679028870991842116975748822076560353651041628260282445159769242377210033897817808497290301294369011750495680586210774547927785505871697253587143161464362321641414087466743242775899445145578866622034001372995996639497008537885524606923058234335380678712413662173165840027866092858699323198018910908306932453564309987712568497208823451606943913316621033958737928471934513704472841233678376543306597538567424778185242710243053581058258105968770414420833001545294899659641151367824880891079632587227198265502749866939349504489498476528935086381066260788040918653923843081415066732680634108094472569263302380653035294692579746373447810920504990679396315271198219421277573846059533450237260571115582981372857044645060764807317314826418190221952792708496362516777666463752482888499389475288135620291297169298880811017826792115119928833031730283466222175523035976489166184377409984310470479259708742802976270666362493968118250209411396570164049610720728456158590944589503310127245087637941797208860642812132484921382744202511068627288962607803015356557942498984244677386581722572696815401385565253530466306033737881010179956448258837550492965908781227997969252423502185932476490700733048057779871421975918822152144079995445934600807535311864727996786547715499873888830168041423610870737751968273878536163036005670355958902258033779500440097229470200099636370631175135952503383626563190169724809017012936173334608512113314204656964124571404291992463023768429797365256979924054738062081437398263554570591527714479754754289957973180730272983193863370515030462937254325660555368253440164100471392415417137432275690644537819789482118727490512123906871291836435828231905248669193578939066866897082519223201711072303017545260608298155633353091397564006604267067424103605330099067558893662455884401001907616608658390485884208309428403304050708314941705319209623252751765020172567377308418357316603488220655967594691593920416088714718805054499553623586525148581296928062679275823856356749520745920106116671084822916416660164419755073343893917224905228389305646711445976832301501195070957669174115128667415998885120118892326827222235254554682188426753740721960469770250072647671178304039779797980944534055501022155714206899995257334730478983453100787776529731489833671921546417044625591301475965221192783948604805293068912279536167586227344153799250526744458471468751175295747367679877764812848587039738200865677807372851056979086518029045953419528774308790131169128616974817718703914974938687120269945597022241148256760803708419048374250845103946050272193084574578981240506970610579199904146646970815763034898762863187781117502052053876729116844868038349968210086345253662829967921117745594363924181429173290378009542880577474254879893598909007356383485529012101702169439502764988996426931382331489762093943104872203381336800631070474083764747348569535939177870390274515202905277531581702098217026538436623073968671028324674295027160084498320164045793517066718858786911735906747147436071292785541430215203735898991447660739083952383199187099156956959641617883221849589117082040469578855681985844617071911433112751156787598846721434369034348083719143984731971541173579091823100201008319538025287056983949481170700702668475758603297681021855389827765257936400347065045041389659304889497813235555662465021514294726765039250957039081105460414365107997896178494643960671920186379557962325452947920161669979113017429231157807082360654873830119636343787639391169816496514255470935695877696902992264971924714245738170821248013942249380157528010733180793304838216490322517936534282513377243933321464515605942334670254615959244463469721024993940984016859968914053060226127232402744462403198670815011219222962982311073895525827888192950647043589301823456450377422079435913907209760533468891319508699994999695764429934978018665157952317141647142636171519809871261793856024809415873340815683178943751545762586959578258523800721529317726090164054437232785794218054396975697947685431511532496621000399210687321429256281714935662214950965250639564970139557087592905276473528498358196978736816745172164742359997747521560724900127842606346565198677697106889468680054743273565295614565963623698597400804922259347489112662395487071408989898762095603637211711375191292004685881377422604385503110481940964882925716304603370892972443352722779426703041014028077324651378176943761459850835228687587644658506087677525835565749537790710878175987436182011606467117994485525832268132576342082597468124781023420277372958491289290214465612933516897496967652374718495742419143450954179502479064437097292622990416181632959473072054945236501520915184606038425845689386239548233581442382313622246622956623843764468100198527864739777619269826865952336493169439435805331333369780951316078026820592321940573148389646864295519765479646210701594660800879146700662667101840665245777696886111482648233356981052510019027417042361025083577772834327384568402692820623697185563059407466427582474102769366460286129988185613858437915530356414034201252058204790618029678897610668093250058266289171461952828887937651717025766175839350124161274495468997608779617181555010498469702376313238327452371005369754072066859123831729971344753625157392546160686833796945308359585064434519142219682390426599462235644638165726084394256031817401351131520990313636699794607999521001859960912283932276347246482988334978940828869554932600335248791585220184887982379458147445524896311586189846561767329409101061845129974812697465081414440164560771519364846425999482723275097609706964772950033488457161874151647065011500745294328059599702209693534529779712016319932854844114856351614537367110642132705535412582981834628538860807966683150327810759134136501116698757572220023545931208867253374034823109706319287472937076318266702920991545645925846910095845429137016344426525425492387667605597135903144973660557206831661560477064759677513930051930954757132417869023910504847507292646097163212085444157593186608436939664990198878729118127189116555781109463713742260083357417281451014238984035091629284417501491118482898176855819439772117000030455795781618800099290228442160138709523516753274231012557200243734073097512308895557403955268947733940096648402422807574033520501236988513008689311898891452148393650495214644500002183494029223740111365520500370448397626957856030357699241009068357728263321466046190608612406203663660575788207356197542075827727609213692444600081964990919878607944945747151198666711013020507456669461266188411912886707420443552339782018960522693613298253062383619628458176569334475528081823988859694576261625205994270545484855065565777111034900522802699620908913312583781838715821541519740645817690062888648863115079081563360128964667125055204784097048988520681061870908507715007050665121907832509061422034964208105504386567290088425751832928435218906506151182265403904331516515192369571473905417292121579368980722676501351371115458475566387746441968469755901240352152289248932138080162205979598099374271839888255081789200941972893331929302885350085492771932077050012791842295297852699716389823576791581864788655753444987292354347622675969987861474842203676473195680831376007318458592363217319390425346740784933865618102706133104988875176915360045176509454486897016396257902763051332006966115872438633844222696306755394845781717836236331682448183505459000728613124536863755030294693872488165709576283973620810580235890570923125100437689729878893376492189854891433846282393073482492399183131660889414783072225305869711905545567932042376830195138794782706873827648294376446325500670667645933274151487542022345805729496188303558716102318203430658715893520437366958073204101902567496695187377835180497926344577281473060195515058708686152502420933741271464915876523044446277720795493669087787397301285865238344113084160394428842419672048205085017937470326254499893557685843818671894923515006594098547307340134700083942997366015805962877888816439245209839901287993885508038410838533958574835177589728192737620606217972470359721493717541928706405572110787533983304315998959939142010006652387889010335261581622810899601889298671629801086552461231089105219934182792566336873833976787351974765487486617490309099249283963504434713495379305694701476502818220605594086164400269164731664860461367862859203789919093252867501158550468217325144413400610263243237795596341882109889449581015833948202209099102092792805781658340235886337520243662116089308446290602436227857497333376750180326906618100440948038840270152539516495666952656526869088696032784065822389182568435326142440638335456605570745387221991901203884175647493445900451387251261026845822619661064561254621906701340697216819564726855425384532336507499205152959580476551278512418399485264656712048392775024558173779809132097751384946680720242724836279954733115390027328744557274427240953273985949803887719121879230524167409953822616383673014018932142705890790959651296067296154999795124638005240795407190316053289926286996607785114744741532908810045971679442039774667279191075436311103525029134383798696763714921106383060023068045332000182575781574071138099895344597997022782577098872827633855418344913875120214874528506956270796955945581037584904895704167179260550176862357182981364217002728781480128693910373475590015233486905922926040870023277428297731537488895681889524886284016104134146489248031696989600541326556181883093101933238510140110886408044124532517811199707559530135783677672558661748389748252355574197726025478345974365371474866596950531604565011982850864825792268549813357223430778926197971147794763270304109962254389562209787114751792103626006626976099585711755137771238846093185325829514998095922691930746981635537494346354017091659423659373768034324282776818267144586252458769098850886407677421210759666058732891245297839900723721410479086079176532509877112686905872935038541154743743021446247472780477869786936959747523563917015615910000505185668270507640386329730207310557632122648008244127567609738688493965139442158639727945860732491890185637291536971417869678380325573228700658980877029509274331477948187046129082824857201212040209706267842940447923441296443336432546898415570798351280699598577428324044737282872045267185551003830454881999484249391856479020219845637722793057473156346904119123909737813765800241696179595875879296957191287617013859314034858874744003143264367586855222241900156879104242091176925362615097116893722643922235997750302957188422660957216998910201536988606136270067276664957754569873282713661329025073497973119670875605853188434958948873584804931782295473153562309241372189010287523281348092827851808027163866105864744381359243572263180806421713430380767540326794130888113497836363472599067279658916646449171189570502058776035124426078927401101444349092800695211274203646864811308071156441628504825670022099858660422499914878644589260589484316696195854118097077454683667938533219010319182536078783807350530967812713234070548131228156953807069951356879601038104662996431120512119250055270006021979683704999337568355481157457753445743474832134264644494465962735579973644237371520449828111205058457001026789174822897318726535506824578169423740578283578780843517612806808517946060842513295116975202569097984838411117440390895342555743857376102361739466326932231516523493379832963961492126153460209824228496069617158453188247519432599358372603151956129922333881323419416840312515949459963848455153835123593386978822577052583297307537406749614262619796722985613611661489786236527634481403798099037502405991664367755304042714915714221751250297522957382230498950019688529063814635204715867953826218447504482247444205518574677960187524065434274822596115190440027621242252588030317537288318742961497849388064666721764248558817446783827374722081800588618345078413626980668195732278296305735006071654636971339430421384211482457203992034470201076479256856798251893874830600494509873747894690759313432829860300432047690340607390311895705976581110043353679800728273432638342037669970757292935528729897379908440296551750426925709060507474535655813449856098246717263337108068759340055790081147633660805736533665537622369355987081292538607981057311486520577916253975545298099898777702372894762650442462525438715795472895903115629205701895701894634143139731605349105373955984041879825539084940171708924959016081527427777601008183698527730697068247365010765303697330323389714381710224829029110111608346828099564448042317393059723935874743958996022045809516042101852248949995970874257273057421561766971853924517673222551872812248886182000358801086672474688535540348899762186341806334980040293913921109101211170714621668958369914876998859072144913238762921597961981443369995709302641518430574526348472252665636475343286466464688114181931234637070788832841820032652723750143058065164285552687087041684761418405700804174114767117345094658216276835332868125597336235525134677354854954015652828796370130648580044158999655074261969163110490556487765730257114924138234525256917839225061843868073214832111947449547198587302884793312941353121267368926318224822814098784950639825705341402844932551369365051827941457101465021450777703354570119672398503384899806862179378270631935990343366845930210623616363685964555868002103405316166849636106018013518441763867732531457716856460997595372145454370403266988863611298254580694660153500874996182720921000032882271774658499352265263444659717461901390803483493965800181008526723829556196040996438916535836961109678919780466379427920434512617439051386130341341515065046417102154331766012449104910834407632920714376212150963028749095686608728900370669058888369206981605628048695037028258648111363332724645336714167507920247318582624697090144674709585233630778956589990910780412177128195248517710534879947193134367046421441441693115871860120083146615910406293834071306092175421599261981372932824305441138694047682312436825472113283763058862421192794630872839252564123998780121244774184773240048872488155687523823306056703828736809333411536510890439185971269879828498512762646939695462513101383718270684204436766386781499610030739918402091667357007824775383983296700974306291660963560161181366970197167512272083791967814802953481873147286395251480351683185398438410239802930737181148219789940439659683402789817915651324679629954981600755433423466099929047723947370706533770830431821185385924277211751647107524187083688823542600389836680624407451975280684922941916507494702699785132892845721598405951629199132408606621063381530175309643932112994134688773846714442648946476409020447299282478623315066723488241887635445275363951987752758355065375627401550856912156113364353743479040959682870773736924182895387397905622747408449961100586085570818743329122698517443958390683424480213008273466184430182088724990849654466153066185140955392124575903745486642451340474559146090118040304686660553496869710663217762869332409106694598909089757502957003824904021891320080420921640353630927609832926998592763724363081617769318618089192923749475463825975066796558558024954786260267179568185360245019836344873795783739424505570703458232499381815104970997721359686514926021473860647258614340630557762334871407622182889972259088590819964733670524208057263706470047521298543033794911396398019393929672619710512742930689205059399894807053374332185579102225985673334951636455062862962032069420770177719734651053967172923423292442755122977174757099539753117594008347480946113475039004536525611906767679334889129852987931603172028168926552486575680368185771398450118125802012038300219106251385893353337250629735788607795101502909219368954216263377777934285282388587141927759190282472913225508804907475420258001107295947806639466837318237470076725023071789671834016138343952869360062912325918557802058316248211834219066061196960866241124960224316362217418813075805867213145138480939284062834595078874248235129354575590201705538413777669746832422828483009113855315031044195766145137032279550714818753098347579275421256006211350348879575739974151576769813012153353511018553706421669082966464723994964833934064897085491041877492877205626640952757870034211542176973089813984330753688228385989561459844452504563390830407217553810652686055494555907521176960342288442986647321466260066459730652979463542536401928363108310741357002720404897072087681585826616153865513487203474918735597443121222664503822359351418948034471010819010015817079542293784512928583722264573426634653269470820360293632332893695591258091635313205187971626341109687726416124357655633959029340999384501814003442083193921873278491989431040024979988178027700683934098083759116412575890929642167069524536677987980297827511767395670367179297083983684468866708353846016546423713479253153633484601988319312053335311179090714726992502544091505554591962209681570732791365713134247961880790194399579662913285075446193460239245799568674114742221785148123984976967256001610703175151902881117629532358246778670524666419083245351831100414056153815314019641510879817839090078377538501064065380385801349648524166620673588858248053808562390718777528105817722934037415774140167934745968862533113604172811886129512545018019007419332380055563995637418349718946796723118178891232094449301071976896788031602414380020406818228985692382016198625377524119915646931419743357374426232083788756004101684228696140495254992264583077094970065126899658078195438293626867606520681549184951041174692781163246649604735267208680572050118584360614558802550595739382129249907988297634553470966765927299797646823426207019717646671448552136004923934145698308143717897440145384180665565804820921773577072587207736965262511391852904359684615268230293643923697982324641613680471198824982276311495620515846935072901340899493648097008175387195907932092776517147001816147660769762990196412557480679685055720480904423870696434167111814248294084669708767489722607531271814007349456568817837681656359333701335485244515395744222303425527975978230677137540091618660879961909604778792771882005655126590675743649589746063400069550042400210654949024566622393984516498505616761475529055243313873344154710616149784674349539582259612890864934872805552119084976911420886283363363867321732003410499191100890400491009894162986522865933916674809898182686236789902730262869463478207680705271501808005551219970149523538094205488599347727260605891812900919763683275306951532358186151116068085457378608724423542134871001386560896680737148565225521114917998690387800700905080570339506133954782220813705354082039752095974377522544282590862873825320010713976085121966516173672011735830049559038348524462401974698793205513165109254580286706182795025007525995428992124314323083268530732891601701918182135100025534003105310844638036167120228119322581649385979677712479517713350109259319331704823611492902204748612309497285083036695762076072832445131527042767687972388914520207588730320952709411519270835691050739011819455037331330660763057909046520717043378501379944723233113021395380685369209316860338668170524659858143986171502021070289579279479995605633028855953996467636933906034261788802418990205176406754782263575056129006998677942384128389208049175464653663458679855955125637169821317245990273165933679793248009700980966750323480952735207257200863500948469658432680451034624906201220189652815733413363395941840347935575157692417976015018139161380320966695687160715784070169366964751914883638146597345305677121053769865420302611324651457368433596884923953924757613126399222868695658038033301763579583643140358164537659534595055050514979661275295812065718947730882757184249512006466598392182431879924048902755899544923515775973112790502933532919855493748731946296253086432379142401950170718793906304230040586349571907643672852765809211392443439611934025297728939282121992443628496954156390815490061030160170722081341889715968359915204066833706335812392409986854934684492818767869973406037845030257458721773046863804785482149778628949457162862764402019189622811110641404546583070371893950688724930486596136216698824855674833563121934711481518821908922729218243008692283416338954113475456974033896148244018684712392738932833496403193474606182804849418339468550067027336674495201229612742907105494118913538699847290956785282283446918554028129373816987943530969674713355025383766047575837520910607857075202458463211437170094606923798436708503895895268787491742553208930312557269935907430812307222831277557324629677756516381030101126583078118089343777215996042625189308010724901793791394194980832885175167725953084572738098299087809393812318561333985359733905523816196954057580043968309686357969560875635502582740738034035390589809954297239069906831616554954985503196123483168211133534853486212605946832904132045854079759742354882328490835620939033908375320352716510720105514687022327779024638610604195852775157079282109156776373015851943063212452989647687743685970883799673831662131870901703692373962621181584612261662266522779830262292924772154393378310165594360150397582790075552877796034805194032084254066427102467944643928758239370451799012835296501326211662967594346621736237066973148561928195342608578847960760793665046771683921134367582498795259820603322032319763467410978296914720039024479142589355641305742618895862066379289823268318898021356073299209721376340169741045656061317068024480807351378515661407415574603059929118559595570976360893174319892524025975942208362282610749270086997684737137888889145544537478860778492409185949256827723766820921513869602494807262049725433309567326868270441663558843686369766385478978780749408503705320321014044726911274551005690361454903756695529961494481867981941852866095643942194652638099383934466175138568527773092707632533471167385225265825681116328062004681025356065407358505759501606726426265241076589201921887965279581093386288181425444468895451989965865041166892404102399611751324884569980028794225763111595116816125393081176333806308161583090042919157905469138559560478668513269154242115545665885850888266742367942787441330966583733215904314049975486455192104020668626257471345073789356532969808621235325142951260839374259222193265881618313870839282563260139210556629602612516778611322778543160807250855476229040779041976678647157843276147237953083778189079974238947433712466733661303406049065678981460139083350706892152101760659854836823603495945806387636364134492998993917223505150785115221386536315807181893865262668036781955703647192747364768299019445721270399095356414118122859189069416114634353085787479483348925792267864258411741588859247915494678759668506567278788271551341712682613618903451398472968774732065499086214870443013610473055069688652298708042828104322401382404217150453235426710959578270128462563175147644144917877185096008196679581699450920869797029602890555225734276621026014517638719653556879826850622703154060196393101339776579546641116290390146577531454476597741820762006568621966525705968871764480404781730302973437238689350962271022599793835145327017858088688094032336755739278578242475757074500259390418645073094495998146902752733552009698452201517199385118158191414725750797418903110325424155604407968363656305409363016515835343909093323787857711976984620060484539389686178365883817682656438640610041192547094139010341398388057123170163455493916737455845319345990428175274218022593610027085648889307786472415908482797457163149381129554022698121352473108622667167365416277084134118221761094327001799190391117554172347640433449660289310679147027023060970558192627123989849761587965937346536817859528877102349747499855798017759888239643376360493438011141934176052870148907863927251042812174239032494008163356206675865297779911276908302298857315800446638763021348571056162810655218481224278679952756540156932812811105120180827556685775713005887653153986619814952762114305943178398023783954639654582687977512893828218479876788600395138226245201983944928116629676980381930676061579230714930705559205102398408559057747139577208886132368580659535943960152130674952465402636360382717827200070973511446450596488487731922393211706114886424673589115740452191210230895664172416049900252813236058471632825156874831447270869823626955243254229122572054579073368763876782660734998550254301501814329920185545986019075041409765459571733761781813616513223717628367699763259666103359612003458982202263916917322395017121563814418113886394320241047422559217414307694723835938777583549269072866792407672208075727368740359946997640431389611403426400974975562629250925993232877368236913302712237117466741759341759077302597432429790441157657338017874923215971517121827044064121981112096059786951245451323499087203810796031709191031588222880486314902741815855605517787169497341774811319504456080627520161966847756558723438967558199413957451549051617434146337526287763263305930391450013147015819609488196745881571382397799786122153068733315692176861942341846360518936785974498481666638976923306603723682059827890177766633215877794682028454739779147346353429174433840644050108670038941105052574554005116072561483626165482394838883535413241965897198099581059864507724776061110620814632739274609278485623792683601375673318710806583043890847521400397658017286635341573679531566169381681874545184035760688009513703119863736574055021000334910877721326534877789602441907154010787160286473759847458934356354104988829336445032772153064916209014309555947227670729065652367685632782655727478065191432007289215318735541350851373202930747600455437375326007682071555439810855961412752742644240461665869175316960426280275918480265019859932835594774989269117442273355546590718616439899545808337315964203512510142420584142164250702819668207091816566417630128010550319087166637515710305646773290434438010438972936429162486797478372088189415490735697496650371708208446586462583866134747279948990332549969938903681541867322984209304813881460351191700446785257970408393631586387948728143307093962759936794157256111381388111976992317823594170089533779105531461453417226432517546386903684137011396868880300723444772137053723200004924348797487749468179842075101963757662807468045163821410083857440429792839936596722379237229088670975653534515391801625639125735195138169958594225562131184603331616530481001064649921482771110671840856554407946213884479166595421503676767969759122244772158943437669413548648263913854771347258506568604760170759560139352318821038163259620002083869018886333318320231588357560974988603002371415611761982201948669691908748171824024022928365492988104741639869543461535006893819439044582516295728766686928371358491056239217361276333915897630576775382378459237095246469267855817998350747962916028592630573094622737364470738369015063796712649851717911793002217068488354918002065947494757459032421945782325005189078884315881241522173416972883623343016974831053383917182961351323526637362334463503403397461266675275261009543973846510714318321732584103056346387567034144120695529485046733176841273040280165911462819701577972714761867887227968017478801155452105396869713448890995223855312102477508720486640599351148535630856409733904864356436570259518519324963900019914485002252595005162538854142580928590081554689986347094570815037918317795664463675802688676049065582075828515147817229212390521328263403498608705244854071394587013344887251511469555073039096194167754692716407080186614786744537033285543568126277834397816983518940637306597966187897393958093563824015849611243476131336993403179089845043094681477955091898737328301689374382093109043100994886357492572510156003756200006608561613114689929128999492171871089832511196388328322036493036005600205119611833780010604839343799086858262865497924325224106299256093269160096232231328142791832625947995339148743268161310385863840249250803650813898029587789200049290693531658367390446260004563765838449588861340388841652682472430186975290012383355755697111826397498705548759082477394414483008052126162214517744747601221072813006040177909792881936230258848157548603358667040827282468385458317547175342768251294396693546914854810832667913233521289633753266387777625302245097435631582422632418734089196676196623476087449120642284783899555399267403742229770607806281497997327385834610203990750736542808113436424553442138208567207138180544350758456325186341001689033429089350246577533767584150958111874525865015711094251529176607051723848581372279707592149030368767910612457104342326236476744310222338568810312562247281803150570196381382186905822210058509839071797351543752315372869748573285946667707160998034980852860450924105948619264824921109230314134717617552093580321584743017143617247779347631660505715588454111869713050810104460054740054801535852734714766418653747017712871875830602424777648117855741667958243838342487579210989656845107249484706410784436074961523634513535350726637471634103831384673120398122249306455802112914226668746758539388667484398998006028458139587889957882237473031088888216970098744191852530625031372759176957153121300364988624982039559267221319100221416834855742263819921116485472814730733404667803482896001142780965198648105126222421131042697806789275550459712153751862468552927329455153142748826174972065623645459703093426754728158193245030353657112001243711468010905422273821782815502836674094793683279507294182660957664184663928569134180903296581707400424112838261195659787826314149489672713607915771176490529855118145694005691654827967036072604200231508148432799419056697361466608774167225251189266353970797657040266584545169343134182484487513939169246826582399506956974615112068381749292136691640689895466253436704939985091696743723405211403637948268296863231756865418186221935419382393330241317287275572463868299084100453641749618343948060342105669907615161000173794156788893821056044863255916752087672219188586171132763524485838044839502711714158462801992917599897760990343567093476375900536618127566869197615061474052290820060646686038349624624782947150580499142779238567912920411403627148393657891635338184005365864091437221987753897325913854247688956348937913981267278111143401909017344624502289524291086115307140347772078518855997837364285473462612221058533806472369654480323848899813589963479880196820711993951272664825737659209051208540665475989785716510847344285786284144088106698447079114486604608620285789176439097261957800854147209512855494375453666585422285309692562279885020367263769854526664060305852276077384535200572235073104494990834555901728759328347115731517539559502136750250959045113764511472917636759837566352892521995206811353146452187279092575980004722022628131780549483923781118662355719745719275466972930686197925505920566957159850940743587638429097281645141557100382330066643720378091753628232225188056303249630399375295200451989100549151330237739047217326101236228046833021053671824711235546083532299318630171075558419923456705455586540066494820276402655030530212092591210573890515605917177442490434454167300719487578999445389072453575656924736933722096460179879569468221625800736507887381617247119447129378145615001985517497045562694433846191769968490039132460022853634739995734234021328972089161978389988653892012577201043922501053986311782782371351966343445519818074543270622868301189094350395976792983012539942086730503458934607080431470831701756110001673790917137969470384745361026476338839707686027292156134839532986906475374535311252956418838432888528722007004380219612950510186520690367161448561963722216345612371134501169616193305926258892655056708093411787511157289989027840979620210607233909382458478778993724133950969179237925258123200570571927925105820514716835676702288555318612986583046606907625680784093893406395485912694872315947028585607241319927129446520545322567438451906356342962500795711279991946446996748215778500136038037919196933933989971433519636321992999541859165924572612353394815086297761277747050295021191278740472341513630232317882838463657046979765154804213031833484790051880448240148096090294640123141340481485816314428575409854895346871341159894452739315276962797085284372122383082284483883897865924877710916410907095356645853514838818390676425762478680702621745657686132724714881794031522499962550451317658230826354801506240135230262445217683773439185112793083947429960877318244425617583494049025035010272344771449507996079684877026252216100142776074799667014581581201839316822829513315983271912990508742588931434727897702774878986626580184384775482165941497468271596078025726179275052290548393443377613138261785881201887690343292051043799454985991199543949296404228290865917414892445062579013109230988856862760013201431738046543499413944819801073808163226268088943599936849960266344896244108933118566972277393093821856935028735726193391733640902582094532867267807570369241626402035101362787695226524482887891378675996644725684880269119823995300236463262367256185987303241384434619383164120547113829747550847985269815916465197671297452329819843831533340931447761098428445691626045871068504534343556065568991373900815333989572846192226578802124258287648412957884078727181487128404530872197731511255242162503857257540882700709749364998214565771228364343364095445723287170182019095473662374216437393775003227046063869394819644064344999348795790302277310419620400135735251015402037951675516941326466412631126666533694475933324770470082558219712368997795181697478839366337245092788818659393573558990655691988096450850200538438106890037970284008828728278379779418153115374392513758715069595062179614870633565113070043094690743088377309871449725787505708263766348143698926348589511664933587007540283794896995520429750607285826267733033846354361143678202117187365235893786864971316026851174141789206161091393634761070386342038431588617298752405914490959334562736006994429245381591716204520727729848510275989186822953960761450732129022333799159904566513485270600638614780131827272670412394055994892033649274075940364411807340107799115577247183048260217762518458501257311650221001723882281307932083261161833244245923333780362290332642870016798553525952874976873465006282990401954170226909294858493884219083567776168422417518393662101106807473593027689623956906093607001529530203277720854097050454655406801561312297872687534362508730428548665515086730182639244440294664341142349828533594982416512569413195977573712640681942941826986914787953009051875787853376158634037280021285687772521668110958354382527128528965738686426461930083265195962489603076849659771899986638408416167134746151667665043707739568705996577220998087043717354789436024165318693499365028086169805438690641054971962351826932531308689586645746187749084095967137363902255894493199355294257179616378528255560879634597643636488486126808060896472526461687729137395070320867070924120498926987416875939485551498955956678606316601853847298672977876280373675599537610497613724554727812340625504414018095920605105453280638508702278625602769716006689719722347045181646269408000519291882413311200235092048572593875732058018940076102382254315183225699330590867472996822883814091380482837006136118217601216424386411970576510193649453730002799673821154453917357012455205119082667074569961816372079549258066899258465378324209590790936997977888213000152303391344728314814955122284919235984484327011885032389904404786331179600144419833021747730914804002221644275863663916206311843415340080635944810697791221017185579705377389266936900461460985693649858348901259116282472041837126834311949033574480830042372630630515702810857651534653713978530046620405625847314247608104755121401599610267001913708124411253250630536980907781805576108672127799269031685145863054197050518767119155472917998674496441881715280125121474377470445384020363877237636578328077141527354487856465011744055112601661231566053412472697318761131345054797236741123983213194063814896438279810527312068865473681074874329459804800502052825966388016359613097675891794975777848725514371618228490474914621472551384737192349832967458917448597195894247674133265878772376643132230345810786610971426011968925258907885870163431283559243104364068093712991858784110194251008668987491661586533394542514653573230304575862007231162312123075028288803574145103217763673891915282389409724204069431752982242609024529518305022852282543121426446252701695675265549065713481358986108401242550192591237386258622163062903283558305332209085009775279502697875509108798716315281094256841762792478349234410193184239329524719930595509358015058062235603031192803675532246366458693904911472211851499992721028415369496098467855306551988129752796663558918354742491224293746872411230666633153610225319265557705128358879805185887522724778740170978793300028087508162889120576307761470711394652629265721264721072498617965402302021116303123825398760767109917317078431663102024143795868516672473973903480671492145805966745760148202763397824292209534760801514137170640863868807739526380169893249567021688030653520577716688115763490536180431919562487263268586363496254976570318153329445623344307079974978239137063874534200004382176177104692837719678805434733083720523676028737659856712232730530045225406088509687400759170297590156239061934339617362408503533146167311903512896676786615619725176908824117217001511031000657355640120416868277722849766037118207202183334252159014700612891539383972439878081474571614816211406653851152287081560465037269909473805488495368834406190421147680003524588733454372445066631869313021169483737207400028098392084069011423755327950316416829282095246334289144546317738559797961368478360845448056646625901515068224073560055997687630646982117887171804894095577418626445588748516744044129154331823253141118519100299552459780925279493142388590554362192572190546165778386882097196332720684963833613580660892716561975901736238553307208512932818213399877690408760303560998098930431807268317933843634532672379667874646402538610921099100436419888990422632992565593835081963243200650822658033944270733105482162912920090132549498837409261997742097215560361830694306745980531371598871113535788807295281005399003248454645001715316055237797885402994530130180625927179752424580816033282234752089165207816587820240531573825748096001170091449518282227908359997493620618883845692603222283508886155292055507973690656040750695016190830772654212600245252665751141453249981961506247563138513609982400123627778070149234848700823345518061864653973671465760761206872032437168709117045936548324320055722499228354914056176763383158394966205589860305771021845739197947936037613447295754453186679313515899153055830718098125165143280493122641213248557358979184268117679495224243750256729740826537437388327348308189910277893702737814068506774882691857450009043328612658246234969366832362819634954929282108168920703485614780663934955407555732995076243531734997124156826198136395355043440544521807861571569149239063692595934769736361472333294445307792671000530048854313287118041093372802039123627428047353553688663127635521617049722783790288880111632499513601386032430726210259969303202019767880014942433049411058091953004836187866021646515987718077705582097339393484421848490730077347394907466073539918414913253771847036857212153641211959513310971653125260900732489998428086747151939396924340171929963344846074227535533146179914452647260767152075192824479548290079740977732420299150356869591693515393431138022072556919938254174190073483337587551057929298208243800364422414233810917921485546449428453416966694964703791975459852280897165830796099778187896324367144635316925745187138074422547482916543326640388038875048948843031691659069858487630762869695769194327600281255682385533856755834725235637045696437703716253774488116723089777483922372839353713566230821724974628738681413217222821134840981017054068031287727932039760443337075441170489335597457997599699488774525636271463216517891555256571827248655106963604494521823081393511531267379765818611483734392974118160050475086492027668092764010343271760425334008826298434969717959409623476032028997964440251648637613081956817019671049891063178239923608333071898771802095097727506180882073228382271815977522642912105405136120972067047164446050261910572659128046401763929821799307200110745410949282674255310451336723655046613092809439870846487768379895420907141159273836919179542498048382888023602375041129842325727079470469361919255260821782869758046836068468436581690537977943251343595846180829274427142439564702802803271928401048696274237302728301871299763145652519019584575695177427587097846400589273364120975066509959593046278491942268377744793997696237284560984588269954717702363699208518318927375879892365832497978942095470528137637279389893592206475966941204130595505706302588426154055916597321482977628934975297812071508292874822357652054165009592838830746705586790816375293308696114306086384673511698421179198490270533937163639624077154109278203653736755021616751483633868783996008095589408587947202882005893711616149044063712096469488340901067600660498645513750497076654938173136952441270857623538587614556700709190959678305039955327571564337161557222526759237603276789507250449410774793145332860938128665144737642379746457886466912840888598711235995897995439470646180741511751795520995018956154457709558436771812708531450985762498486313631687513828959684938529013438056176339567633392073827453006254212200308914131876991872846634444081254061581135385902195935153567091486999790396494339694595669264553339023092590237401907845391636158138274376437632071436557629724715966966501627458358333940776885609322041107005998272693360973220472733408147372460413445655269990782183873615496886127641031545187698992988731528936174630985245877275313145092256144813634784030712144362578115030772124492115956893724650191515254499391732536447219622957350910161803297774750373094626466625581724116813231778596236967836635599939574774481982290537299946514576581665170292815354565070783593037645670201484378109713932996721024481411661066916507750157535716335697736195292817962873834109779696183307077196990992895624649074217364943271349770066696482931560733767276263111631001347305038802694424964323325526078561970017150478363830896076630486655381077041417880946849431262119542038685318632446068242990829792894851954782966274683548548723291509500367270907478677319105640820193659399784520560143299757379238922664055387705994938806498021462925162579669065388500819013852206577268076673151630584124936750317980120139420135587124072706164634009836303820890157611529916443427973129048147861807283184595244653495109271157035409143373737959304423470901693880755151599278680831389625382792382509828451350471186224556097136125701901583298190839066880441833403760825001762714226506811726859940687103044714082313813405607161319692383931999507857239166451457427025309883033773825746903795684856218484373686914706548124799639170090935683337083465644816607105268188842959786965978883583153179002235705883577634597124005833303787080913085755045762058051013795555681527548979059683109515057165378891255880993548460036689722434835829666036825184076777481389622142931720054907469425687710747975671280843693415123187794319085686068997196682579805274730953078859516188491855095215658795299360308651462961617417820050384543230411607084451863944215511606579263160389168814222638541135935347394251018132932738639134120502621407974087792345382943129507605266189802050029052583271851169025561347829312944348740564334901943863478993544425336073231398394338854616555558208442523133760988392745457333953597053649947861049163886012154828923949071764404014541980549587375668937606676561960536829942146476937833316873947895773377915438146816261620201282910359901750142099877044715690536822642481394556571169261877976936520770953957388129410131157138644778819987507976054735062387508074787593478557731648778111929138389901056107076555924179195362237372804121704911376434742133252825885226871047207448810501873623221359181957460371135548146811744483404206490468315375831144694136563879037025676350466833077542618465001537873430731023788172440891985452557961638316724196530991332875696110611418506195589785698654812219116747153614773458771792315165850938280280705370389917938100482252993788259736348510626897949982342475367679564424093199250715410786551775531822900450165796346460014238361100109427935663875431249358322662686436978901035459149197803299580021943000674715926496407849150304164833889070159558582118774459196214800684988227399066234475016957009823930705231692994882960116826321089878139269788373898308082869991085743962322999286019607796399717453306923570182593185043240134074276816303692795200534043716882496204761716307307826704656848401485573078455793032306584301962710257219886477467896079705339344547163463112621421105084995371548982019167373890925963720880527346733312919942975992559215201759790878855385691671405939716328533802869596321223129093685285472543583430447462273618540933925833802935681294567377804316294102312609301999042041478587220416081197069552794062346509382424830564240250167161125283695182710234933827665077945812961599160068927831968771625981029270952008634516431752593884273771851616895993238931501291310408968410465442399412209646757730710516409951646923399432740346540747712591022585958040217331588584297938277701616561829375529059923417532227825740113764579388903278623810309023892870298741595367086593582051919893347221970742930334946335675706287504125398581435345764842025645694016389538523724643175909427012551336042851474089323206447442302285320260005139475786410011845622031637633059153743009157599113714576624007878387677701504301711487265089217838239138240098522915743177622181251119714390246131695666024174021143011365555425275018950533245205829179937870930300175582469652476890099127598425851992089265247975433393655737957668613447979751318440299575702197833099801757225569502765312741182607310731708621400023492190342163655728037220235604719504901469142943250078618306457812081610738542521296511790242959981402673476940718087433110065280817888911339604603343462046974672910912451379009644721643550792373460851524294761050084194424998041055461697503505149415661340088402360192166690486073713974998352302334810365687932904423097808022302235818803256704363788037825232320423141768277738337482010621154385871602983231167095327257237521956531485466131678688721096679589461007683445738896169024982238534131705958933748698876985043028713272293253525416636626064037565037796351914909244597455954066658316051803446038653155407131348448312278188724849465436266887818545562642693349899129467297031650834990120076563304111405542754597015733190403213770837112928104880850069227522511650584467289250266139688837293536496487136040410505317019869920521336808887181631278961360575910096231183313818952259177354034949685212893049193583438289736947839411616704154469081087276187804598055737394481914851752739122061011721614194163269620134448585125363511319785759632314313773236422266647966923549255773346917016293361498295919618462032291784056634310666579725310981033270561436070723177542228069987166760345969042946625240183976647286944804973561223373457863883346678827174511578575644021088761146353499034899587889185770733750589898023547507569196288600269611082789883252085208960821732166942048175451873385204060248656887563260182407328171908760267508176118450703830349627731296350082341150768650766223219032305760078593484417664592766519846107371597509825702362882171103250650729197044153785643602706971983930117699522904690239652261698538821204267715420703886788033718628960768328476723877373852268628016972477358889844846840025417279170820165338421847948461632777330540846169888385489288653399401021330684187541324884239008890464928770749309382645236535980374848992660671287378629062029438498477166667414781021523350092210357420865099023181299002045159546739103899859375839789005245587862610678962095902279340615309888978174748463165044406589543805240032994768106504275349855076678009573622294034836840919581912803129017755418076944742649751744299116435107180069807157121775971567620289484095787591741159196232283101433699601157829415494387621828784721886627772374022308081754689084607862254757013912425740385560060827347939993345752108347962240885135680452040515013177265720777836958156818724296723959760930675971086842062779989076211140856492242774258438922926943950385705179922651150006563807024553277652262786163771404130710099503750692659792995672571468191372697444239593550172296009203399824137383602644417641168096272370893434151309346472136331142923177583145974873081015892185813462717871480928964717206840042246483561022830184539880777327359593733374043757680308385001528995722308686841584232821846287420961751770086495968048341913071780918890647768646404151035030437229430889147515731971453164672946517373449379602543602221096143266066781636930024483140626764330013466792260474360518907620229322085400694992940537112968432669323629201527657062077794637073110640469284219281866046764465160255759575156921092729794231072000550602212955108631664193038716044427551361704359863783238835155100835536703048283183164922546544153415549523502916749506201159071109460432623707932248536813623345053463358708598749152672650570160679724818471903229105282414235367028260376557766395483329663895883762182606524008278265966574042382803759106247874327834982346945358231942350990380260419768864658900326197197589064518737350485909300946705089466913498913733048282353504144399597042430945221955541443318131917942828741370624632665950064746129442469582537850423493868902603672095201815836985478824691465003181746238002240117494691805328266126586363149017039680446001256992362932864104388086219555524913208684612475143564815088049437526263801380983315980504978671706268565944796124201171223848143975800429182785888585385789540405583232292432186725404044895335051624165531194897850196803382133364438539784773449468986259070165840347802130718404260353304698022586398648523699243997785794430179507820694149403996170886311594956233093445748789953593234243394371197854329554492626300907679780518162581362099909068364874780040632878633247807692427306751581663468005221551395298692316457142472899721866148755911019412196825444588830337860931822636211183808502952133796014892138497778104519219563122099258295143220283313227035621196152222239078428825301645444837836491328787310236090464772464152115626286002294026809822165248456844416763755603921882214999880276775143222227948713855710203058189564417556705310271706972340266203600982124036164397504871027666078688177992622773300953091524575456543856733066898597434431933841176046672023492471247176228689469574872395064321742449244208566806809525846435576561998026081376707093083291457564671842028842344237941647757992503565589864214537120920422666491069361445405766674046185616954782921812809738703886983378898269278397870555485157836233429626652517093624692457358673201761018830516521354707352570809625175766038405269303873270258343394210483375933111743133933348913758481603023422979297129653602688852735458795807795210934895937679083645458118481796892833595915580200051804112593291629261401292909927229023162606239508392409627714688793224183786076919077536174594355412033739618187861703308013364977814861443463276064591636416199433569228631926052624316662077315522884820600548181137548894172283154103682201328122335835228095406391502902953081565098556012447038215382739604549536473496369071155308277775280301590000032801771898111177065157088831478982206747408142473200900464766545024746527976462293956795588621842077332570161629966024463272599908468250748722971722172523297033494768337031202720069893165492664727236761488010755188325485727800333604718328460246259381007684288331759365358899090431451348710210749777685701736520898634535662770780640594151781762923664809299177555695469347778647213019645466075086020826165935078059120464279946605740448978761082541351439462744671033825738130805845873671467433212799256514318753480465563136631645483348420161632473010050656451604285935531181683354477242690335400801976835666234994361804482549709028589906471301043506076039202509075725742261867958258228166891215430997787299022521039108624106081052756124997899807239680330440873319748862851287439915034065342354886995745212575284574917695712573988073291477621474923436609321274298183432270687263856595644166070497047282821082708046257224314956480447187033517273089638409244816098463471974661553160299542246214170229041613924173239119654398178446818365344924994279423723486518375585195377951734490573900869980240681678931806137846619149877171638913901326700033277665392127933918311854302727403877388808513608391854199697619101081391369417921697280357956034846248607717025179387478787715973741678587344357743258455061788393320403440005118649706640374027883065794570667432642549447260889491834800593014362076787710843990485012386093328020550477588728327877753145890552981838404280526127730196831328632863200429193025914537307808131796345781498448405589408328052756403871466197424626884354462409744224013337014878243254546968214849429844344524506579773240122175754550668964244112510702097627227901503024894800666512048028088552342453785915562899886508666325162266345019271115098642027905233154438026213530019392298374224322866137147818136284729785413159933819701197717370595373982619564961427637133666484709639181709920000102262747029733097400055361389801045134428501087237945399450633489251299783544062430940719379764181710791585955292747521215930376656208051557416148959361410885665771333089160900862301721724102021844507809110524867055295479194584484910714760431508879737341495348527495023945889437417713177012492719762222533109626760393422726680323398202536895624655348152025884341467366448202650003082207275140697184551649264807949961550765700683357706836604825598313758366223970258177834020743748200538675955406637794078638090768442689062490029727340990606899318900116913069215130734054426646663776283701585849050786713579196032591977777825804582914199557288655066188876365638607693191843250373032995270923789977711456991320363262981962587833846271934636819145502128036330088015255290960952980389828858704503185736690228343402216868580224616267202512319551255720673880482220248572369667949003243412280757396486571618482902595844829770770553609370203727218241921550434979167060214419881225205141002217348550268240022879231070590523560447504497088999392228409702463028717923722189698930976774935285252842724769528985119666198220763438562062012419225911731358258102589910466808912615888252759440662699814106022098199394074723716104817998861521388761003080288363896805852606914388216181886734782999755099125949500682224311702636516266634943702928654227174335806662887192873037018134124812889792882595457169788169821658652188705710705186947503279604645653839913260804661481261379014701223949530307379821267052991030014666942263543533679313652123962838942669758441428068586663739420375299870821812635099556579092901560914143022619997895447083065263370237542593134364506954387672563714246563954797930088844371775647918199972610798459988622337744071874452015155919020746133731061329000503684552585081644768824368984501447619763142083961767406270511650868037545565717825663346450461873024186468951128910771268056051002043133827264304573538742102253737719699457756395978159492857678498114042394749205556909624137114515777072217884856358310603242868455854050161683831741653712756566087164433681230209536473598223903909941016779132956492031122074772352994616998861666612352664306297565042281918185587688196826469115282256050240520600670976389287306786563725989386453815402018648075766253349240327349992721103156751676901280268355358585938858207707451590947114503503690814449716900008823889401162901142735136483919231038585276105492068452285521930053359752149622119510352904811433398699287573054726495014096580294717723567696849196090315491125618312256665678327965589321997869878114994098586452284294959562888169939143731998556454801217063278059900922853076911543068618608092137409948584606147545900952236643324004264776074070641315032304412184146247369514913522593975710170087562534323986950208849975970361055169111567205417870043294183475111345889844547167147427449390915732444220244887863381372908962144551492181366232194173388218096156017408716313815566424898194817553510536927196104461489555895744382503911579413128014868215352173756205330048475095984728534298214249408057963445091141343036004902349362010260670067245187553057329503033158485424484988678062048686271027342489431586718634657731087656593721544501453173603379995258072440451220434228725866318806475038180251334138847659600967394157010368257196869941290314286497724498216574196018236459685111046241171252701122034821270621711648932149729671654265803641315204230970357864175895953050522573348774558817908401863983248495011042755302646912347468621156571039292916001444771504285608064620432970159539102383043653799026543451171481956878300131098203656814327392669689925720499737387618003273776321967062900348426969268920442526975034634782732351433113362212689727299497191552103858703597728046499073994294930480977171207582639769506871185230678808916401143928224645880843459835514291117286902681812951597744729683568266419983917278745775200088310575949419482214969030346183010732192199968494474783272745987959074445988178107589993827601012627274461863437277036934277861612863385987650847482245261227602232249099511338731848616722205562729418915391023795198616372680626514139719084068247554961977948086005375530193494825721094945477592726757701630462097328000926603476212945055885741143306675827378223112670779363315164736198325717700436250014787009987115032529711300193896971126572583756968801094275260628527573077646860877160715412578582146376430093223784770428515154103731278098252365742247659039724929795009646368852115458519707932293496910214117195444990333298127642320933071876008361595184353437333317433348788058056117857907773197602043338856840501709218491518981369231508885537232375419080201535824189619275169583037739838224611641366884533133545414964688326888036396042471048255548303601149344855134452434368124684629997801972033291102776938946974563147139949106127692426613005966153269428656148988147439760777325797445318673568193482793082628113174253498146057733990389851315070869620268397926834345408257160449541788294776656040665853426834463688982876440177961774254274840210309395658156441655466277161400704833021135599085280234306132394674008735344420166416056210975541605085114252311564721953760069040380236895803996445627988696863506519267164393255265561544086605430255396253593793105660747543808274067253003128524216201570029775745942384973508372152664267028989464255188340807256245875510313617202394869079847887648937583063143230336550327500687368685695937539690943217806059030289795075054350038442944712256829693610716025898095085416924917574307926185921079490388534736811901427609256617596217045945859164124345404412979293087742425803543104484529406652401386177138910671800195624903263084919130967652540329062884616866895486370839973118105823506727289738202315365250905663552221788119563431079721145646439758322152449965610724863837392080296082114254732225985857149681085709485345640927728992578947505624394602722460335850280282298317290839789500792958224891045718843077529659995308347370023441142799864580687037692210210898212861046953687052201630185280145750601419486421888501530640054573051840242101685136969981980411231999189715053633425559170426336126937274723219028799968721191098962998723100612414998043283669076427500382296407842764401369503654964857601924814684096765278827166564335258757561044392026697598633310238759361315480951591651223901266185890845954341708808828135029195301934137316833325756784604665698854284795846812782738256105951925924606518110552942604879813296071528564072834100109681726268615334003839253198180998280938626819724809929615331596708825417366474672056788409400419449401048739744644533612230908052246611836504119685101180135563019876636674154237038527251062886767386208670107503546404164216724102293730447641760624326951553732159208058799315061149255620189270315733109456293659493528072364452750812292978353215798594618324786382432218599864708836181431650652003290839061413411800024223705204675040970377768814074302668236350359783357360051426264800501204877312276764604796597200209621017278856276067412272271016783190359941916990356012722895516899260566179831155953524862792896950151283293801384028014843782887498014263230423760290978835439496575065162227217125781217721171395852454584832419105733523692408150621705674420541237260396255207913432030259029658039883149277947771766588931279012875803127208883920123135097779217484781285945325556390786409096126510710530826960182029193317181921989562844949696880284681928234528739651583645915354082226496649404403182107430645867384314263357586589603621905386000465063730627779155230552203415513419589219460932774669229617307044054532809315317110963281856252342298545920487399060032393356106851625803803658776707156190369868066964443725812831879696791068327431247712698280766223640796760186997658446238485012147107349125897529367838356729724527524513217285517583576505892595150643842044794646220837003499999065577886496818189426053575169798870837293739620937665103166803202179080061185128250014705696177941257174827926959250511832700189250966230549944578351213056504136165670501178145839605683115197160793811990134955403810007580129616449423278598992887771693974837536619164465188316048737801207134692878967225563367766000309896403176249583275508113353677966545537335633666386144641171568165546243861100572276890487991476120327253202382094026464394781255402036779441008178517123491261597876083806271546763618751412270087138174331493793095473873835836430795804435234280973332785214474816278919210714970991821885039690992107317842824753348039063192048569242190585246114819652003104045310576750517939861390664437844504614932482876389502391610726583260195407921399904226139757836678687229035180047392021112548144945282813800358063612491657327313649266919997699936302348244421157225974409716198053492861068511331560141912635240311668968879587498648072892430741229116593410772832267351036999620945379308320146633230583785471667152002900383540367431763415752907981070339075183347595124511880828822772422758768491799307590821772930720559458263118498936106109978414586130182102050382611619689751852240007356126945105769592401692372204089420762486462431417606093512690055193029608863046317167465838826638701916915148766610126631753626080472134971987772957736557537089491667761199295984303903023088237968634120236202109670117640635930358740911491477709471849347468704289199881993754927380864842079123148449608860704733891527438572298756882599162868671832950740933841056095805885743403163912302858855789558325215130307845179920635875363472024202619342507124663344713426283869028065022386223163627724645807384930282459990652156827494179379301753050592415748493319760015460495180542116647416822931914376364343504680675294743237738854836223305131506152962142104429924539956291977062057777333206625480042904508752097240528416787193747832020976628979261030398632893611581282666548513306182463630638652733306238589269362725924959414534738481386024678830037693101721435413300920234434253871159266871274839742948657540283814746444051022098357889478158169400929990150417221704012936094663909069273350283687151276857520782374198300603552256227869877009047345447623220494185747358807779563166328898433054357238481840851101856068423688746356839599217999716223977443067681895542964284818628195068062587576745257820603284628766057994667351659624873038628093937463831332454572293501191799891255489213170376018696897967219389039755968089394754454221614680577666216977207659230551632422041305896338903275648597816146633824779828907046524561828360782205668228717909854142366862276734426160249894028466687966046923051896046966418858653200965142663512695009554667036007193909446798646756465106362788169743893910400043483022545001721661617302944408105719963096178910742383769796589499204342034685224149174732186934738885054862251155367698076832346046866454366092448240291605601458342648466918003486138476922945087221480707054539260827306581632980207162382293718104572349248694236507268679534350688063599867129925988659233940291433680246778401321049537803348938193468463818915325771848404931704193938862517561995458286320287262238323273316960106518436992723877380868870628183148347707622109063301181786270693442509177500075003408315076180944359619796626339797537086069705748895249806335856692804750343566403178315799054571695596926518427314447009736610664362520882881678066714668858161018654220479613189376278907672059053001869559482003140459199493465639230407698966754247710355166603435998918480180580009669830664645727661136911140969759315916580537376136723265915429308521231177257742427611121705829936194140908257477118235439373228225627734644859743388399480264421153745433464448839031878404077372669572964252599028502277186831226004758028275659666829238746959382361744592411919584229638807535427564312235626336223345894277697014980323759816031690262812216011784954836165910801497980035342328327067852765772224305686166976792073793282911157461149456985211264593935923919303470244471155551264879748729510633945918910357576758092544126034470255866971758867918048191276789104210418618162034931156599208841328702721366406816480717422333660210413157491924722430228046759672342060455845971503389917673849837773414832527014878958397665903391133212139026674938359605104318453664161071511871472943194617427630174981240528130798001649899356611058402575985831526158230425307758037738719360959041687049220985642630828315087104021158174943030732714017664941704493015890043408866546771513660293563611610146966918599600818966519228105330186958859224984805339556708121413863685719054239705626771199507389076364895907988223279828634171806900109123540092777914079907461992772197092848832618278462935933526011033116385294042588263564569112137815665832427629057085787440504965161600768061942962965386698906157750369538366520399269462728940413660094402671935333551236768618490933114969622027659237821567906721446278869292296564371295469800050162549390437366427930783914277327036829729902775133990431995058542549052043063469684461744889281207310680382183561188573099705714179909057502792192939853210981392337718374584814855984180275713371947446735405289454405380859346899678976712029096801351488977148756824710574442965385898655327663523944621128064457682097349783407957115164723422959620498044213507804338418591777334483657868096307997828597519478715268706649510890275280902540642184060060185843120757676813898513281171492683986898356124813534765132424210397249056283471857451571051010173654733207341353875819793013417325836121120034250868397246893774319709278716994384460075351939767466601061543895639984566617094603352207705561970032201387633538382921063680783857895776488569567773953914027369796387894588751068133517590291467622402481827188419421669988471987966514002626271831682539012252071522373755034815605137444905671662738567948749577120078326430871445526397616598074999855748236245371361413400211894953430817806549201058951981649226173509596444260168800495109697855584906280171818656689718995721006955166968248891797000050852694623543850339827477976293430616878792433258174844604227869317788027283751182578241102112784208942628575040376397315151256616490221295886944063780304070285087843491273987733643466910506531062578711939039516200525939979741171040950348617151235394357080807459546060595464939093777986154392697226950948989517670046014018906523921523276198310469208639275599199273862313059477491999973707804485537676254755659214306536611249959611985926175942406999918965154895918856546524829309629522663092756698027623458984133041776029433545287699363962726353736966432575372843993233457840869482040058615545214858641920155123054220888281241942578379525056069829205463936683295856128851460220532493085197782442569756616869669984513777344246356133514569089464706930299147633206282671304133136706785275624398836911336065336064758952826155479220417044799228784831409729090324271359053357285677570166846785232052320418931884685392750740315976168056704978849026809730921746861793713706984050616361829419482541781647504014177469856759667213368934338934707983309975268985768867230279680513042880256507783048001353886391718142514803106460548209568876137467651892303288495111521474995643221799323512725662212100818364007129786752185968864119364525966486637922161767445686166787804265541412792498364697862005315514153156918890105743409145991826456512542094194107028071779702304229634129118099662286576975571858517807578960617863009031989766912049574623722396083018382846263245072634122300345650150715076059656764950014401625446731168806988110040483966668533339961598858397474949188188108076809226545777247554293006594506029221289363786152679324976498547998868919511089578900239110708131787923271110482679812988948506035204730418031655109324077347439709875763916096641166477127930817983494243581556277447737182539285684327771213854874299618143142770461307637882038053339642944490368175593284531262692402253694914412835657770361783689043135089458388005017040176830758455337564493186241570162515453786029430351404341747869489772278041716916783600578449695946240275686009374967152830932873484191596702843710846546417299488697671692563246682679335450915697987074073559454731707832923005777676446419562933901883218726222623972038497425701193123548917149582261289051768375271809012255238376793320132717343738033772629715686277168358130244751258825436887176424027110045412996132111560855289478808316456538144136377515353221856396583364478931380712985695108186584013109442052564131722507970042671044116669009011030809851263835786442870807021180793392724970402541282474890641261690166004194308331687310546737497920820823960214090661201200026301977132996382265727167971899513961720976057637872506946831739163363918755895976088598453564559042337242215066181142410787203817965056457524616067277803036215247649539809080531566548948327194839956232439931578835224753370107390728909278326089131673935371071311379240056594887344800074220634883724785051906660288909014092777475976581439439658031286868647049314261439460875878208144656118816912113845640027779223914672436706448695120404263407081473943566033128084718459047125331506201056015540398906939225485998470448480310889873210699964709699943916657647428934586176997999243660562098476765987203393740694487637602246475930291139583771082270979129058285891090017735876820014619650731993448192618219214565754457559221913087514224229716295697893185978832446614969361727364267028750453956672785254156408428112199134322229033537979818359482729677062701452781048963603097986661139716787282854103916757212926271834126669774998256818526923883084387239325276283781762169807528570258508100526077665416974555965788336959332120736958881016846031421050518736654153190905708522730746009608201002543323748370098197698396668687391549276938008096057066164786239009219279633653579366436985842077689764914452878245545612028699852692850823554413128184345032525378995835782421268064892594356526270251499101366922700977487985135625787908265096893227637459551277099592985575846861440970409743003846837613751326681316790528863284428027310733454190634163873316861787854143785533773202768749165714802396135969434569276896230653682140265363370276912936826027507621428451694405164532769709535042538896345630148205220518125978908892036354512663553690349726665686060263303302433783076180286705344098898858629913813475190940143884146744266443953291166931703292723698261958944758168588088241397815188783614801084091804870968988195168514258019814476693856364787522800321890429722982590063436024161262715849563682064758885936870046052203319050624259165466949252206705735640832185563034213037339046390721679161692688142223253763327162328517431613459879297135930872981447139403193858331132546261426490992557832522169422816393681723052936565135115174791442546289512036226116939375880178947054563872898989708202744060244115580374281386426293825114753418500524980250184487142932600797731442834128300015311905843249208443324537421885035689751333762616345891850007069632983520699334545275687951753647869087644871133791824301352901474274502690394072040250406793884384450571634560519141954693305387005156525003539714024603595878514079003132741843554229464450923972356102379890240246418733093130040556047574988192451395811612938875022762300696491532488346681807909470034905783704000823394717386081442864160756160469319476414323266840315641058921080056461681096874021786349577066190960492131817698562692294976683058847403956585349890244620127527493428371454568480693281378085792410884158276913619620528177092092205697421511163537709446838764579032257689677539232784827030656002447660707016478610110804535086915261518811012692166857862118858337347853147667503983792398193224882607292944173829809766136606383953195160566626079126634352885374579788767950824858751948332310728809762650924489490493316754988060403977953863513429904752082591243578596444977549502547513508406784039878397622003930487185937730470211024139881523454833547609921340455050512091546334874311466863083990382604118661057048323078980319092733065923424081147546800950170616317207249936436174703869877764760126562681981370891278138446402195570858394794041462791901140683868388209480725126743901686847509852925756196621581319363324438491955137792218082210251893643570048785844369249838988090002161870003957410240668512355648377528520921234124091180157670829517356557638750400859653989821326973507253361984421703514703036890604394737594746814516089227498217364444258805297731212007535494518140935927292459760290250717849121603873924842811085785688814653097094134045709429993358359894807933145077345465743726512305077123989995951023704350036052367378935360882601942174813963717472484670836765864020409251128921095309703156799782808330597602303269090859474019116510562741001767429829842000809121580515658636380246453829466084102237346415244399510021555480094462192145345019610614525927494852369200626579916616116296897709562087893669946051442710929938423443295557986288431797982232498489755274841125102012820569401359090135792530678644481309077039373583651566290568709769793772932043828900764213839493313885513499288013430918750141676062196200770422918828341556647554886635127009992986262396340684046572042096756344201318627629444148910657946148943133390108891887375847428494563854080845845906267979480710766894261989655144577696478737657878011343414045888810878112916182073378094240460994606756328699251022441756116261037747581055232291495331645529141265157400356242495445918483341481990314635047723831732499505559239109862568938384927613244910781021369969793438579265106261446736693130290646845199770108443243608258221951904239619055053990231326332830117538003718375311606944257895906787868043866477185902663071330897111474837813431177298376023284153982878254951005130437641475546721898116926054651084415306910686291874029155591520917950895064963720274330219294485323173417680913770357057830726779518077732405980296373849413387196179110399242635623352322356740081363807249197716908262893797908627363402172747889730914550728545444551259996874460853654408124188298094392988119218239101342928269665670517776563175831394158743718344568353157569443153400736498048992627058714428175336102490989259790357280507101853777403198318743550268490674120069477699399426118430074764750290459787245301499097148217188745848774235680948773483785808113567650914619340186982819003988902110038616323755074327139146334231077259061654397243033006690308692430649341616856860902991928161125684683964094444660136786882242094041531642091621677078507130397330021260733339006700120138289401601829917615708350653689190890381949844058519224488958951269928923175179374594968904401074886936603235769061339793126131729958293302796346431373616412699505227482238267634014446150464284425740039198759303079476195493134152319656667420987547653038319614396001562466940764250927426803814889623095688043164640785846434485743525599067669392187576059615879491340790824155687248145231735468626659599828496562456168085874464866540720513995299340225206914947537558824321185466977823714250892801451429847178854896445278615039889488582305950762084253947832252112231151391557517853182114928502232525861487579485186566873468144773700622127232519493258008586342377222659448844689014660755650540453819203024551891565817422678185618812599554458902757974170405289018573895543504809068613690029289825873098631684517132528578671376667279951164385691160405635893861392465106001033762155295240581384917757003768101048696430780878594282847397608096532856196910406022295388092246137710052306589491392457829798272488667995706408042839698958485602898405162458094888782467562824313072976432022997834671179433776403707158581251379373559837227897951648971252870380326433714891282618058011373768734024413587596036458805580952789145211339791411725705446131251029430007804199029336552132885344590672571448100511543554837926419726384456196008336384874599295620104936731222438138922235021475946432753099299004021609290031394238398065330109908196372867574465702317843705689417201875225494908471149684875636502329350935566529141004945423069022438211048596988736660670138985130824539273000032697776700333238310671823003803718601253431008233586189044859142720006732369186845296162897296792782331533872277114803267997153030398643351122761259076130446515430248988850992112796437967727696073770834353795654464763869193673550649532063593991002661938307868720600641202873209142145243648451713179773144600646854908987028838606373037136342047919394760317873810257154043471046886054900804483649030481621069337905453840886162928655207054434935607207640559506902796646393642664848481480519351242458143530069330540451010201091139440921976569567052692102991504813766222473237646934809378601232020915243529385156858135965502154116831767385606528569014281275731716749557001509020729174968006225754630808724439209867961164648059428466898352583197755574608090501054576251648959215859719980341332303774401301164232000306665094359526729992676843012239114059567874598892151213799297488554324832193176374034859121518425126431651966220748046037786224550284218267584017308377514025863772394592214084299235577397874295825871361441792370872061089031450626229443408608213760295491727698916740773922558396603032285196263177275152005078125724634835318731226850163367213620407503376450234811121827621491382699909539582391701741413294777604228117096773067891626853169980797827022686337824541246411462921024597029471983978197561389413880157713350071869502615144150767196872792819959812115274894199002074518792286975001789479226190076832253969923188365795982276089382170286393920603486002283355989043875092351096011039162779880918677881905587233174676169283623333247993882884913118454278766908596190479862874675246818327933800187835316806945720801782859430035748645276743331553792869215163161983524702817160836330107279114390548562210359374519700196933433096131659333435830781114695436068801556572044592339353167260949195610059474568475618054230641767850821082101143466782892520360774478855281517921459978033365930698987964995142768249045023077184737021268379014471836992782660080692728716586247398543450988793037061615395551867111918020089420981713635994835220932604283141290371794600681973881974283434933542127997592623720883946736454933826653421019647039138524817085539159832708019377412242894021790173252358494815284993806374682646656997573920545826849321154354292940136200439751917014407679492020358619465799657792668828593532379126214945028943433268294107912699735812048644134997230173184686865084382418768037223642065886474212481440463270730365131435080183348747492751424462513079436482167794664109838271291219113464828507466540789805977923146558255476323805620948483487944250715297355301787072244012233486652197178733813768246549518770439617619038378333975176608554555296861505993491815538402431211151748866588470724656985684715405290580151839931094341670545703985233982757500635634428897831448301110743782090167414282362004779412990445058809288149635133706563377693983605857210879286523923797328325840035533930256582142563694517232177225746155726847246089410118398870947105117752505259451273995949049139061607291235284012360025514373373131383517085877406304713519091259061458457773196831298073618707033438803536110360131495817037772233128699857668988326071744734814879614470342220256018379912041705466878782572566374352921210936166813201986301040428478982646349158640388997059014546807660816040859978442078189969665226539443103854681384167807246251008059149329793304213421257513024981795666342061954895725134060743510151439766527506560474792168744577662527380590495749097001915919459318058695727097496338707775447385510053463704288497775047709006059249617564303870104926587003917146549504961711139115556136158945471587705696126319976968560442597985487109130483483518055483348100549464092902603345611750638405916619854494594785714439776171389488929572341656172592633969170973577720271543034960959730028599705062357840720689812680010076336276111286564893432280058456866025892827775398972380426943244388994962597070896324192326979769298668165831834183430144846758083563233588038412435992084499083980830175640127403994937098296438774522284785730075687900774825200389118050598176074125224695586199426872459571073455342301919350169855746331463407755383972074396894165676792168880579081391552091452939325217550369061604355237818246777175310216997676075812617203396444007619833064080363096451844474384679937197009430138927830521151523895778017916151426512700001451661809782350279097274260558986946183441166846967674954345059885217408449145475061513579132581908705612469536802594615713729131296010815017455966900474136655601850069872094319767562670949555278972564161591880324022404525996026741305390881531527859537038797808970901447301033911814988900594611609658445875241257756072667523057057092932113979290558256872860223343401923731341762611975032224010613863865001865495391110195319945435634834916304805093112835856709438809904679219526646285135138988255925069900695008230244216471011079072401315313299734346238614141592298433925087981305716762790214943036633819308379824925105100248419747126803409260590459936319832931387855909931329060545201869049884629256118570933570277830677408626576307357388569419671579989840312035102558085969216489886613015722404055362161641159033288530817621852643204277264641704295578688424773860625401600790451103846628192272036873459273938060393797421363959566991455189883823184667489831034755498393268166064647673127336901940543992836375954871383217974193313122044833239002349494284546754720986778787035329195580642263255151131920359561520489420563246638594268233305708865127578663399002651761128487337924208348593439243072514708180178195270183891408599307625100798514184025418140812678918903083153590322748313562138555759551598170132370436269680980026301880112784726706844304531839912007865892376016739834028534418122253089694703419164544225763454730043690567452821987213598125520672928819046923531951549473624243269626864719348288546670216497562622413222299930786107312865306782661876854349627478652372241781555126087628235441862224286460590843240620285093547710214983767296851790502033327747378913505714580203461334630175293820675852977332175841228680953739554249001006830525841160227137909876489459073767254341979879718562185559915360035272332436128737047885492516265521893171984602675211560157659137681612046374045426422845050594735594954597074452371603039060555115451159148546009236028786123474686085403246407932456294322128850403268275834216348654352681206074273893087854516883220479979727977618413818386162833470657920855754827290160264217653855974614893588223005505375741901307364715718517725545960266231538513872885349855162944838910372543606292115800595728223023387738022730773707671493299010073530679307210794401912418642043904117391159003326890252953617289308527843376182728387089660090605205059945939447185803831332454657441537051878979278661361291918769432179576961703108095540898638043106999529521019467683330647665675478083291069420588042251890070248963305516763068810812098534919540768009345224075397501536563213188528088043289122672539767731296426523004606609037708907476549204622283738831353363312661046021869143067925431188173506134987982700604421702078791481695963022760628742626108809807025359705896585075948698686558184223545832970406106181378420410777049512114194047124676453539718679154942951862638626854224400845648149389717137387016631334650384440378719049462080918189847428371034016635357278665402075619693885077090159949824801445860077844832284411167026346248996705176715064818312557613343566589887971404659395149461114052248196008504734011015767305323698925213632103722253810635264631972662546490828202424709415840756386831360831754656481629800665762804469710513382536799306295833098450796237452319377064012590917176974946071770965629587313433969017542535573487268934842292110332756348612607899904414613081694633414429994289744161117385592421733052997689002109625908625307933486644953827681816491730110850011897800189245016111955193680901071521219440095201930083338797263091936158881493093581359573891982660949268195612566310359130975067763273548119888645570226489173863102154765845322562330345701083033792656746876443175643805350719481193392857776669190607564874007729434176510227562161078531662499133201750332738269367051300405921548900945739103389017273502227612291157246017532816325224564478792399732288078994100835631689263988308345308979944813521321232509918385189235949322801585827510770315702998728446266253969936949900544138380589666163405227617424399396651229922019701791205802237679235410418949403331352927976392054183501408274955504600678987495370155073886047307767711698099059523685810678474420470923433347362080984833967549992419291702193414100401225446588189219558505649588838058144590326127752269506281672955068484473654491978390339855557439564514317361104248335722207572685561939393866652512491824715513799626862326120244342572370831566320101984454131737860142256236471495102135488592404539184119097459105994639007669860756744480773840862353719179251498448604353460106992946615373120741320644510956484626751089318834694023749310245548064629814834515713720024814773692143668171862255340738768353213457776180808089637807238600230606975957322112634413274058162273139254580135559062461198197857452945493213998351080360843325649419342006925923258828280404871110083193066051329547028348017811370501250818459488549918582412727313841388160456690467316533433543304985125389172296279610211869626352040033690956127189377877334160627119268164004448728826192319199808160804460096613481633998550316708460011411383583312414658927867600697902972635763627119672955274205590477595871809505110076207092736835905554522088690698253616386157794814218830812056895816045401802188283408748745737543995538387265884482313788082346751797969545987627304595192530366156566288212721351649393846523182389652016833219721860969199241283390530421084898030648225096897046606017323218923853531725981257948913867752407701340108603589193373096158141523740492515989128188016167358627606432034188394504074148825871310382977073197822520398549695453780627753819776575144311051109349873531966365650849695345005978117241761712167553834990986468076557991197121830740785476085440754889718130886076247255313187891420849663079936779514783027305953387124953460733695571244921978542640497064489668487100877768889451530886257697817662021175072282160706644717291616858396111165943981182440106075647444226343342709804739678628528699100127373434085838962019359527249253871830910804881062808386472293453163630318192591941669118098233692067041043715382397839050691069032687201596102052559846503208790513584040564905402511183881563265251511219100254554096267630498024056757178145703993451493889138239404330059217535704401267181431526252013850647067757763891375187087412658099730866777226003969310375884147572007338547217700839860694457814343752193096287090744197547153848815085912421337709509798561672061441110782804882298549753973392764992371137516520844863623275061388293735399143713139013202616045055311417900204367996871108016870692442752779607026961420083468415394739867114792229372310911371185208032680291937547375958444078719744420588503891946657778427925786097616607307867547186539100126748553766293472127364499274620876310206786242980740498684814784260174676990630011957789815685558393606728557137162524595797450520002228604793807628590173234646763083410312655438071217396065184856683849741861343915745427672755045697287612515047246682194515795122016238297065666958173801249424023438961347225245104126388635979658172075554234560690378281545448450135826651992222606883941313354324320293903467317117915254256808807239031677250668284358806135437932102248523176501001857769550648222652092502526634478732417188962689182089143636306807576016069849017797096752238631219550588829473579933612131747087274182001295869233625911783725789679913868859943321317859178060380542091605348101559258741300104213170510649564514500159215855218374618519425314971049609801126577545894220879901000420544978925811115395822613051908421977116356959047153655436449062602213332372390473572845328287652278959051034557671935135240003487394223136779505926678106989942529838813447109118769339278075972302840552688943509447325413558049387870204191761290241331806714681788135796596445418759925153543623536430526910886311678142716750439606556680626149337096472185388840164152170039734008040936169471925899837857772667952881571617433570339409466064951921937773244705406306615252690165417084860439933271145754666819990416080484644306236289653039990002144070146219454402769345909262017147661017812992954986432057646621106857574347944151443186600123649982247879652041661895549618572427486869165416682291724998123894247497820316923529928662341548039000050559010314246916073109671731108944651020769427840835753349432778171667151636655274496142708715655196940596130181382278957079676604910550123943907029214824379518997130995731722734593546094157834809067225773590185304397941033289540707322604277315595168103421719230340073535220352784076194877022790306867022732065181360842578655500371715214057504457171986194682967354831601475689221930513306670196814864254770904262671825786446311913381611741063272712644744179991452235137451340950818338375658553892668886998548502835697020052731414050062291840311081728656515001051547463946265904721566157039212881736194894538151844291660573786717964029786883354518860181762466271392761944785231829011261608981081520519376674584038067218619199660053901671643762205835140420635609639268500978914670051396934504880412513526605998772997518618557287430779379263087594542858970953497944518342380266500338684879519154578714395888669495346974606979576939795582509002201984423062067102430367023578829280654626230632920364122857911322871161974950032293539351816429724590020698303599488305687842488058420744710259131973162156685005667085940536335618707084298984159186039364565670721331878478635176889686810296688069227998046474229778145769774259452653970717879156623276642738753378150912959602674286988718687566013608774669030273917900785519495284655062186649599406096589841249473543919118587109578981894020180249503111798511255731938798984827924063952104285887784274380515220982637097294442531689497213052916586033508365113336670755805570774922312172168908596672121575114421270496793551406656430468304246671131110891019989251327100381427052917554875968613334907992892366032769969834034960172750509033810312953863792104540465151633510768825678230150624968183034600682950606098173397943731442489141332626298374788022822038992549189654087877345494900968518378003257406744010466992801144118121768644620917395658238375985298261530526831473405473025470197166164176835919834972560776756541459229171354262906696876191389295268625109726262956073356045373527775355116499788610908326476706589290238890817495113826612069042439800523598032739833378944023003971723850084319475511334730150174462924411735738232105412298182844806167614653645812609361805003763289746088776302994251653696294991698903151290047282027783964564779299347448953999641808950816586044623129712728696345709833240965418000892074310070497587232829483236423881471851667276908289351225140720370753971516962979984726308804496050798075004234923810016535711291846538193824858734177932442215656349401092190138596033649605849712494533436203939356734846070011788664025456068705135653137748720303762958933690347518839647487281106893229510922767584460899628679837259909746310090440521380285618189743932327635921026165158017523388244256511813605449709741437776189823946740006797687899933464369843130495992768474381411874069644730401750694173799583727759361909136819989003016002482901276750023225767158695146391074923136526223166865331165045489559177787468441596089114918488702551442656004502965092756558340664505122965984067571485684602923323654111128304614258362192787925272665241200520939378186917989514278247021107048705132911441424694287981614430949179940025104162663990327503863627556260686687193393462987567134671727021489438441427695478683193099114468761559801927148627402091841372944339758542418276129234122187469951027989208566759788332304529979768323961125739117313508464150016828745532876655849357977502901944841211463234743444639682021760642074562499692440813390911019123970396115738549712931316552943318855972079317369623784417439852684730610540024409792807825271728454864147757442801483797570216720800863157584966467513338611747134875242531937546638232139189109616627004718117146951830985539499943350403099151772588858231813524366739928095842938702889511702928855623698709632026805692037399692617428040335921136151002578878617387230840993044701110828094042602791442441074448930410706831631078104587445904949737231242720084449126974269011908105537146044729333431973252999544718956290446603114926036498125910795019929542862274047830976679336762586329436467165334795271998273519253436586622137970821340572444848590225915979475963761375272216007928020582156924041313142352948337700295916966886194577583792981267699399293441021463860440517393530085472000828164243316621155359156176575231502238907288990368495605009193515178237731091320539806005152350027304673246042899241362174466175525345918115552221046309442539823198096029678167016280504043719728691098317172178902495212800840638405940222028104195181114919048642979664300725243780254881731656656026624856559591145723347188705150239066812553628341576853542515068657228644235395494116056023856235600084337978403977545615514087994626669184282453478008422785583198913999922370063145553312846796748714020913855183646686847092843559140934752259637622098685677112195787465943487925251763023397472629713344875181794452255147010757545685990833969348736094145954420314019171130286343072188927941142207587657669607748289219020875278346224804623992654257722056885277009597398075927358012592567283731893489099559412777883159380782114086862647921902653170614393007010650764961239590193504274849658383922388378552990456015805968244749903674001055928211452778333399315477052969692757448471422211142586856604684998947273046833890681373674883972566767051347000302072985277071280306947954778716213890567880238041481807917147855275870819524907877372381182288189811776822218457306809545084283191417892645784013619488341573964422004788966030536848150078595030604181766516646798713486424685629045247105795356927120450684542767689010507408411070609054796325622175048253921566081348486044320175735032868944203373610736929165058816033593553623273272574583908505466306878579884328043441559217475635375585352214067561438838376785878804167203667588392349396164512624190216906274000984192447089503880313220607219180592951945466055531074260837829142587832730171157056502569969361767349708866709656202658993947844302204982812055549910854122816806120769417896217479622262901688481414655622922304768834110805265910204451523951522176408260834712555614034545165893444539014091402759661439064104086036490419375003455842707123473246187191647466238194497367764063818286953538321023031719275827602103466109565515326263085242381741294635356093208072463098068417161625212309988708516529482054685513602910786489298401511633846358062116885692408375869950636759655061353753163025538006045369086733560845033514862225316268931283408878929802411858440445249860444981727156448616704148702873923197610769100052165452432158375306867034490196703434095827953951342893448344153153006417343018268279104385243777151652827250349694111047535795457011966751534857330252720687100978027038050856050354236702408470154874402413547560720310145336740403855314369004451140292367948504103069779966096103180793497052757504961814156215113934795646822893482602124669617500667366513749331885990539878393566849543162777174608314388781780335562382722451150541957765314985069116154165791597531637636848121596914580342400320732671591514453573363399550928856536875952479109887101650421181810663174583688639627941779643093193952713639001516759103246510342235408974126786254527527467196575409744284286252201253958733103599171174278460535664778573094737911837240178019220319210167778797703765274158319431932737266536506459061417027947242865323792536646214554211925142785919099713065043052073230358649290751060312954711640478532213601050004108685462366604521134705647652979300797957441584802717407905595496112437334778851027832003660226819805133579114959394981646208551560092563797981778223992437216590226372474333337372145153622781495652860831199388094483363511419800002231540156891300486399305348267878808000511608257395197213163510046437846210857265528746989272875635870598294122983948808130864820917510697650311236157325918276649676790151855956881899295485030182519341479646813828702291117389410872497441079898171436986907378636668283696899343666037880516746815500820806926976001296145818263184645971728691037219799484036816082280725958855778265683297142542285705444512711710206862040652700380019756317306055730214517469877548235667083485661780279335353017139064452529943862938019875191847302332542694646352763807489374344331669845438997726571201494654371854417875862763702420390636441122273756506079646794105299555244751672699684471503870298711876439449210360809660329111002270338270148702080213327134903554267264002155519399342662364368341763096879247498313079939694986775402552212015850999172834270323850232238587903948553908401005727912637429001427968094856284195747307037895887033080997172768517591807545890358077893709689025396898241335520827765543286217899855264352419657459981603413962633884139553106491570431159100097373226549238891782544199585586851699822897486242983766990615755161801054029731725779362089923616105730331611446622444431044615280399519815110155608119380957665389562256471694294435162297773654490575883008795185644267506090369083115559703607860035420718249043589547152516677908470873425089027129868384798665284340990268448874240064123329846221533203817072353698142788185284143006752610940525844101403178282567396432203285137633245031273798705615717978659607871369747658180466379132825360659040710772820142991260907229537376625155198676304543979722324801187846882076259888885042076269960964604262259198879250648734577650627703513822844355039590674719112839622976440884325252275579110265469921683814113675707064685473538336405752422125686173570368646547829881971799994577403360813920908534064147191329967879366142452884602795172410879584242909575406164932274982994207884676261213186948126065496139691972501709574840898655457555564364106299776136751144210469593933896053685276390216185697954296480958717164426448608592591891926560158070558266757562555033215569156442309284280832425242431723760291694405476392795930355095055333666115066290560979017595269870226895331785816240006246392130120020883432809189375987037794034875193266457997224423358744244800557471066377871745643089281834613097565115241393349382681759934009766564239579338553252321094018999823160069533962318062618002432493178324709567819088643319377605233484807630483046662243465001030969913260667856791035606875122688294320937196833469910296233660869859438256843595367304756123857148596661856988687680684594807289847210435339491832584259189181690772580140689119472347135090801286244902142642906615335402461023519808580142596159699796604422114611019029508602891085422674739957096277763012201688662345772654355122926850674029639711905630295047035453157802362268506547764086525424536207231009878941248601474510535066647567732906329342207345624878523956835372970410916605457169680548561874867959581808046877421071251507341652953778306477298580676795506301917556321340495058341661000747228223440621131702467100359935670344165376381715556202576432553957464610788008784949438411837728176632418389436575492679067521016974916002325191699361661002641722092434484506321125548750918059868144610078312603902622249377599831603032140358544616362687652842841860937714135879214803752356058901913875798610015582919145783239576163206872538346273247183899230404435815914348044101554807911296800314878601865224585871358668190040913665520556433809602219036676667408476600896034726446145755126853509161897575330043434791454346478856844072393962559229546361864535619512985832154818974999610255025639664457473287916743050716173827580142699522877251821981976873333564799596997563724658823524766649863233239699984752322364720512695474152702568147041366846614701842328870739508465331403272998851341765698719172246938161379941412003284066281208525173468392470808192280946172816246624571846731599261618403318442333019650561216261095607147455617866070034178062312556386941594089590075678133262266291821961746283781630923762633212101402731528076666998223557050363447401244474362454368334821041754055554026634041946950010670448314756435132878848246068454621795300864079516674657944208993251630181372588898315305947042839677928300873476019415738456252723447553545753028090548778287154680019124035412886514042603817469902283478505350318536657585688109563276684600574974856175379845261980065720355500889594027382190335452894480840623468979552636441548059559737070476329572723479583520785328905629640721373420893207514568694253960274134226624609545266202842773788471787083298696501300620081497073888821278917632578970421302268732242132001703619555354313778009520260445503581169652956671300030629225605093181926819340285297445016184968511527012947666026989958209741772597963645106731679004583419457171153086408404198470760885949105593643142021657258455156349091480843812144872332583244900688614895475666968257786137659631547260446829370940067826596029061083618964133881375827821846653206405080505431138246849719914818665683876315260040877382096329171555113477137860260050114246959619684938148493347722161771912033274345072585007024404286572359488979966521259754399662657820192472441413901464753545548258049024836809542283097521656705805464826306227952954309309336999411492509901982300923934637151247558754538871403109007482963221179182751457748530340193945609580989272671371808637040291116916545726818322594905857571511483652570431106995417815674347495779705852613066719540154110906195143051322499439695107276725805473286989876053233886036118408953180295429823220525700340369683882429473790969644865545944727690824896560288709708993434390364611525503813902996953414003546697958627325050094581594756031738884752334424133965976892987853470055718956680564041134406999858728792048460083112743835239631179478267345798572141643067630043268388735549860650798719312375877898604262503725540092907389036261626369100105203911138833739310136736767906008109326672418673659578619069544268385779770831335546625491919310748641273962108924010296637604794794289071744595708956283643708054115730624102186899385447678528593556694009685304912156157084067626266261135927337339083925515112537788023711583167873731152086984181339506898002410041785119557349741483990830391465808364568037276408233504932549067182095314315580973508838351360302394536111744158831423137320381457256450056983148757330916409838705097750811477203119768164861429292826703578167916439314688761144508919307637450938393876194320653865912879385745821927227705165512112032787964272236612999761019339200960608922291117985895961982680888940882581969272015185629909458480510966351828991564566028691510289917291759184424965291829663332153937864926204389140937616068318457503478795205777559748295853808671291463567694377961649818861345887959046338689513969894683234017093402805608169030737513986079098227767215520019951823923965302346014431300479413838440427130486542676163726005836572905718440582651830031481333219284418211591757789462660814412562341319627226958589720941163823410982366754070836448110301631592054008750514405978593596595035575539154609561688999072690313163794749876885825841171638640787355882042505850419294692377885446596222107015917338112478957615202863912355980553238661699020149341773226341680200768254047655507717958428628447236541475306118032523830951857208284297384751200302937515283802044057766499357671045638155742299773021845380565501706736638660081934249086254578421523872186015830455633284628683468555330634545134888272083008950640449167869791104135319167078535059329650873371252192698278486631637347814757403093944115987334519440807555913863251934819878313818324658748280832420133398685917896311038404689421709251053609871576298900336098002842070345989397817887815310078844837823107215641225242746826963980391451534928274270043598213546890235512665888351916876965014010238796777655569944830728664222320554753464838561205270913742226689596005156562044969422150627260275777592692609059223496953351487951986693717384684960894758567936250497946414632316307039233158540601558719380099238605098557434904463936446405123009405442996662798696737703738106231710366474147860298361362523548324938566037785075817301927369942845835760674153696753175562578992984877211541920265750699223325190816332283841637898436417953095612488657297045914919780290653935324829483389372590712735933063528027931741402956419279683631450432301794525128998008401555237177721787490013364653041154317993127240969050440816592922028562349108203818415504316654386323658977784796349371809473249329231327576541704814564858146993305002378860631051586230392426442424475873817316169172011700889083812815641054227728419283117104831281646819565677586586017512633311903516641492884910678748575343773795141518133938802416094787364537106497320872970134973601390881798420596162969161751258472525720523232795617982754819709728408470336321134940219254241568292393188384979595972805143504032480866981224158474360643509087414387654202966806616287329462055037439784839070098279940358362070207599174631386095724187600755272589244972408409712680306707160779133319287817907004931243937600366967642020960125475726999876367739080237628417081264938373646279310601052755838183544012408253806169414416963690172517800893225168318439247758198825424579610835023757320001095987101814154438949448490784004418137746434901860870432827392649825519506564299641067180357205065481138453529225775796627542488138179832694881637319491599283897707145977736043098984344407786698755143235562261004170425222239383161191522015679965541911125733656537141792278981777370595248063964884086402844865118305755255997515709811161691662512366274412057428885108290115931724613438219686881666889788121746182926371083386013621019071459356309882752565567811945343919961787557016084478140355261981869256457544516068670697566667488441037363702900297417767954025611906250861039529283789836603757540541557683565412839468549449869494594368042926750605414350376267379350969466183034571072166772483361501293162096701508767961605679848448375927613307092809874763716768205850830784844429155724915741161389972664063575514973641889822978909931884346688620293199333209336570038802209280005834361726058035946089193754729887824903629861311925106320262261079742927265594098875420250993292384759737360368992597920603089466961882190406206946467274416186463014094575534433942691321447532152274664035115224903895011019891319712128715846589346408508899729092545263356516481468065685715905101639391488345101117799774096957505085474594446592392306395709493823189430877232115071372017871216576482738621662712782888790896775504391869012339163384672590786976823872404322574675832449938700313026478089686295986476942249186893392562482652957767187498539894437255177417611109607300077206741151368384901026401542063571758963772507241891090231042759539774628093043023115986527196424727691561379454244275570722005747529707793267948998909051518491669234832184045112984966086693032907832397337871068810273766020190355959204607119476360017049631474345213722499570052166854014691392146564780192521350979298044109679943704066677867141895623819844236388599794233149728703226873286444232203706326258171092807196375425587577296671701213419082477047522680990330978611184583607932120718970673559337651126719111976263023393263196048896612539153397313999692694321935765005831503941497018941823522301455546232424383171154512297487923431250220300817042280119162539792782060591060073112896993620367174312147096057945272346674986781607041251569543013717727706164087453103341273953797875379846797079842994358589659511700438365123542297830823107468164864348979236755476848599159519808038955109656126796920145692350868125083096325553940477286709393046812083963623351570644838796098029615870476326007178350583663460332228393123532942739301234476362736855051180522797020586203664497475410326281883933908228301277634968504883245272846318696079390732968784454020999013110391091000682870918894052924301366576445340125565160184297697247848516476245516979084449897963589076123013631227240761135324439795867594896215275637323610945274221129507057439758769559876499505711066956065830376599738900788759890185635404671654067297501125576867743788298424615665338016068390494251614369582885542946406594779878887017353648125820002190506719065900140139825167948910507140789391414053126785352967197877130414081644756154389971634203802263127966330809347787040856027892791119096917938972292904083280970510869964940799766321859456709027217100579068252796331489970066707653092610630844092546911714689073742119368575694015084558934461416576976045330184521952916715425969324475379116964219693357426414434023662219348564135987392523035991076895888504314361974039649460469990200825672565340672739400316153309220925191117515700692508151263721767179528671313457542464985401868423218220061410307712594300503702893364897281802313708483563404674597130082088704111044701800331255508929419524206078678663463047227167913776450157547443783760840739026821570993070240983707224411480261618893806936412669585439777557782334300709133882670963338906011537343047872518828017114843881870247766507020749554472406142789843895431881840130345154565541994760271279687761625956438278970793436525538545803930605973225507103385985583686001785152402520664265554000965611983064269626732942217309904040358194332234517025909377233976245937955125370048033795141999213221106546519831791803817575717325491192134777693868426946287886646399320013089495537284403840796875799866446385514482663863267120676720121178205416891744079941087530842367347040159094187556395836932354866544013692848725672475952565337771754565505270219766037839954475813073549777137486333168826389582886846619600406492482056411849088746954090745683115081251784948985042813308896736230778623687289440458504831215195441552220868519408295932394095441954297946309559396171143359678456215541763221067346055645865365758879591767937183671933066908961148175266256565114247699328234812504655349451031712793204027301185431047557537145218483524009368051286202294846606908795937210173557922235271034325501594168029879673563936238610393902424527256423219223321204983074767488660105085943290711677282425565355491840680175345075411840445018686421601023300030316720543519498110324626775359210659865078295910089385991180561896572198743017197542427323175297021951063382526861277604535509742954344280572518580981676451114993906809095434352137744150649206575228392865042715953485473006231466691450262981136772085000512251729015816459937980123200689891935117005168409338117131615166482232611385513137757157842231268055694956964274321342787805988612368993761013866046348063562351429923438900607729432338461728916778574899852753200609899549968221280732920469913956353413670372749013752702215348351391236208130593511624149631004295317497708840977663234121564936651046293521733595570876103263316298519013054009601433627403355498561033023336292454861804622565092589078521900650750274941163862789511044758926486726648314602662513632666941787555210359148061418368074123418330946996840629231002098054234357513228081526892413947077812232290615508346976880905393870777649663375051346958146681652016385926176356137245366523677310066493351376175009765868417986588149985754113807602947335956003523808256897788008220598534963804820384411946925168548807382919561291782774873691279865566804155895665207127457572493828537277008643426110193591155159553521823916275058861998707459585198188593594002965718101921762272117539766177193156573638433540714374533704537361091667360244026288886461968580247708732438316974849350906301049732431800831029080369541421364259369899786923735814610359411640411333240849330754768971491833590199684362791703022852757876767393191575443648312131730206967625887633953325308738660385575528377723054279519075511352769961949400545558787218845972277423026163593463828657439984176417178791043371987862312930179293762155845321213238754738416310078675474116491507480693923090486140529590032620163533644985117332676462232334320056312878470542290665167294956229295571611876021899999248363458257280821655280231239806217629526535493627239389406401141348895864529126087162593193482821059058651334304842625256501727823028968351771780993753825477036371537558148611538083392925485829769282905444941709791353535588879066501557579599517450049405236639234816162496292103343291520015236372113337246518982107037305453321508009961658751789562548190095650898060002355886762032289009256282192789968402530462808652523012027523199560103560401003588684663043941394829379147195865017586301649453889740558095883308016530660383508479698179508343966138502146866680319002564700523153572143671272109384021883949618824614274293708916813079805251685685546552895062935121930355918658808426503865363361742579638183039486717682246036040258014776555884184819545504709062966644684308437219156451090152836016193926750730627312022490619068901423671769392448900482231318681790058493843299646522222191274704480326489540762321703547946438765684485832232862468352824518754951158883175515597609080048034616749030345277370337553053089012626362568444599343010382646476604658252329958756062627379379555087320159841597662498401311996361360313922114577441874350764019726187438518037754890046047159576195511797996677278436538483858635988612223549162521137338123511453291352078983276114901179041238503727698062547402861884718183448898037872507524945408531030475770673880948212864521141134077348669269203660499104643437249575655713025787381418718156638348273975298877258326307665051518093149176789087293330752143717627284663798774783439415557280942015370255238839304107485106887900748565356349796620683153091271452103612658164616381287863433158589592494955177506269199189545673234754309558920669036741516468311365671180339809323432849459286803419557607099089372656782349942875409925499594750130136553154264378675006895482093269227834326142824448721677406907016445586919730470068431610005415223799211327556301377768881756010890834260666259979525925683555381720029655150408358001059659925823928454638869743867590442618988331513638700950944822338814828816104241676786386621216568250824179633065985608143789164198470311203157476442794121634895282995827560829977316394604552614022424258395778705947206926977876304211231740215333446267618239046763214660946637086849280020709834529304933091342812305038059505483062369921230931337410356176381636919518893838127048762506009602860542368413625708676852336611391399847864316060182783698734616126903244054953273584917888924141619332422598370792794184026858972325441986242470540098434192714146649369169953238172361680527970374668534958365917257172882236192725373361144301036774000704398600788144120874426339872693325320096423587859221124534221290751582755903629795028981373273003069407669340030343809327755586360316906545647771150103904398158887152378120089418610562868455510000998396556915575635644928374111255048422195503286715585654322269963875682700420884193617070524656302833254555480437188625639710497732028681489418359609175300834054246733690123483585127117210005171582762874821029944834558008072564173916870239855932688872862282037466480394777807240038920796730201929796944267339109117921263200167927707617638392130845958214377970319254294652952865100516011054912407076098683577709682389521687965777652235748528177334769141976488263961124962072941041278600381876646714153287417180156667082629330883466256330594568396750095964783507632814119145920776336901083800608251931808293557979777114017657036071837151698581803071458688133933836949070196493871960614415171942297612749420823670487438786807075379466226994763167760146900188009437167583494855647493747368520272293291175122805912073559317837224215327863591879437713777057653193963259134249339236865218653270633927295568815132095301709470487367342905459336837719785906447219514352969839979995936490947193692895274599981581632026340972372691675041496255251054447454593116413657205666795865663119480903969399001993736555681867624640372387980949570884977452001641402753016009951447360307517371878344359782093383694072228965260227257721929356869657892099949705755836243087134423396144132074781648867860614277767647296343961086004119398503239959428673025934112061135689704959715015562407662102728012834362345253635447622010929560277912984318457064114621351008784915631300824544750165515417142344593810117797333939785004002219185689681638779793182582882377634833396071103797739154594157275303659175918428749881959570698541555853271460855756072031011709317666389039984328041795738193809187962829906174129931593221915850492377483734309693169643674404578351303017674013497443158080630106133570836925013896723636369517097574750345503864087844406610985662605768435055552739437412452343390790779814468329889442095520664072973478366188334352066087925299705781343335209560848324745341264164221441779485271979575080274967618619301938719053508473443675195941080618465100339569705605184393197100782367469859087689564373335525670397428645208659735557608605615571895521982946586331118541042338275698319992048877009001367909750759532471078748827148067416869780696325558261175154787822478432795513049243413363571705774171714029709889848975041113062230539208558358695372726165194210686230479907889762959775690422542204144207979800362354455908019354600239152321576801907140807680554354127558843504911014705231112599607619925501409219574848012227226827523960054590923024944450401175621340005236627090255048392666538743455729572059627159563736042413743582503924432816905586356974844525514682195651383982483427248815375508640742467337573179345016889859628892423040294414748839292436400841452918543709420696443820278984903705207528692922108751343377266946130867507498250608457162765887057531507241604997413100468278089251211486157861925695201644962235172077552075839181170654294851393555959915253256048911729324050912431385075067948174754156381907436052685439239512836002182522318747253448443632755993124080937141308262727229306314248956178510391498378226247715915127741772759308389573717028877020698720443020099749461422585878810870998714986071766565849434935777715387235978984138002091349203857259652122352444194109374977894084215356999133448629037039780415973799064707473531112291726713634871539807536828138341531009968433820094986511996108834939193932340710965542284768185168250196139409821839283492236270076766514052248220310390044007872768652166284189754577793899944636569773130914397216014729344677223926656847315560789560964786924125078826310493875521939607859432189555318922267478353454200355558073459484866268749554701754534478225910183099513923663304050965769882058397220498935699434490617384591581787679845650494795764096407873097416343904318794779245311141893753961289863865136707676194655808785065456760892959147384388190889642245693802363910505132170200002666834278123969782898503217103558777112771904759351470319251600807668174341090106752419813386646190501202451624025814383476437772801087128722085140931413218429252518683323613183642231882992754774123414480111416543613993894042120357406994177833593425812572565043592113722530841231639332128805398440072396549748499914097471140119531335001306432417118517508039348415628311840663155659957654333846016802424303840895714693160480794903236035040838009710683543296647738167789851075972701539420995209621154697103073263535159708481602685604027569767394944967273823233425715182815864919593873983926905585848163087368727026574609289908319336463990251124298350434718261113887534425981920732129593695757655052519032649363720541892047283415137952765462478110807049332825190424275066999192861956772869718651750940415043670559651496878981734451036886548349769912518072789930528489590258514601883549738602829290952020575218333339381053525744973326025441084149250927683222689578794968184459237259090352303486984394179586145577445857111876041353526872559897765565920546096210654180345032801016946330874508451365567728350853480108480931335479861156369893241739135393559409017233564706977730571997886215076842923154905925997794748112134177266086403199199390385224071906491853836389267166270445429688455210541087537295930376178111727346483569489787985087675978386993957249219233330837663001822444303117919237648903969190142853436305320312370664832627468108790540560588329653813992250151902987795242786646307282805905709629610196014744134564721336425631309435781436227842534759034794878658021620196793666502756316823779209447240065055689459173109390813017978896445855263834280941809025870136434064342312941600840483037877726579722195254875012155885838772619207187976254919105327032111840587976394643548342234032736947445076165038456855684833107475921163815162597445862231036675913606633613027856097355872419513780336210736469690989158562119328295372200901026302608098286960694530954979595561200574464769351462014603471899588902311310199022141286237134519413439595502877184632801833047376224556280902499990112954708384374202431458511465317706353715412461132186172719633935007768177363649872550144037435401709062279917669373462699237997817391475554140562379406249682645900525273765503002923387483183804176742219892785528933705674506173132324963429755221472533238389382956056789252086698727570132687068868370645417414976251266909715593452121077660873041461409074140735989743822773616229679703868965797243672062604048206462201409829594195059130442252070698813897394175007047686036811524729613609278417316236404427487225664850692685149231518954156208794972652554184781468940946274939619475587651793467612237440722368399923345918865619442114244709411154711346514764131420831073801080187149115034044192818381310534772473942788378816496337355305762922063037812841512231306847942092740351663857936278436728922548488042276400096156500639027569278009777901450615110291832438960741737707934792319452425153220779174245652055402847435782105875169310103988517256942261755623557497953543636908919197122071633054122740871000102054904231424410300653281503077430446996730628440061079062666483945161796455881521812923048819870662437606148616213034253414566737491153372768105566059672794856110641857508394189907608723466997538684122723650882483223027638887896104246389078970017320860164083548735730542618147895000672254206500476659724841618969569231680766059220333432486652159112473944238483209168467586228859791815014373827869190553641899646605645821957069429598410501418446804069638516881976186403051365816164287914547200624848645915630395722307505409287226400214723570818601420145806551844486198550603212278817118371490085687377383868836799340473884967409951753799707467707713732643361052930256545554716383303462917627790118667108035560897112345497128374202842867253300823954929241424217937997837288499859103513135254039047039551143311881043962196096943682363029846199559660777661868691204616317053614354301072598200348432993045378655940852411655835397970608763021058618606952804973149145187256863162031487532019027603616498739972821800764480819298605616475720389713325880816102193892791436360596498802316160496338867444336316913751051910284179586965839114053651946285202279450641208701550062275074915627420605148941122581726627157873350940254062142133755001993160250489892206419107554401609784029986573881834865373089740590827721726624552396025807917662623875301152370270973730437998845487929390609294770697652796869559586635062270788409697387203272500969553611693112176472157391854126633192815845240215212441967338983714105735842756068216934315348846208013262414998275660986958559216664654436097929645924842861641030990277308988960188687736508665841158062440455628892759299289524761232260003147664073470557792041831534928582534745802159976821429725305317796337991632425248549775320394269424831390449023293641408058105816751569404324802013816397239922341616837638820740355163129094710233020718353515705613543024024611127826311771629067810060917998102397734733219062920359898400853654074962795193639966424988456907029988013187308044815639112403135899477328621579735565118767049216060991785690621858046649455009559625489003778518047758438771763987249734527514858497131664915486545765000731040565304090579329864001219122220288001979037662074658133639749801361957794452112525540333882367022492221800621094617588578588055006069974261414408721594516768652360179967337756786810036429796248820038880227678122399800994990800591937461385673078753761166871787387293101071621843792060747323937757879780975424587778547321287389083418116969851380456305398178902404010993144892922092254994137394231029632720840035582003104394367828132972818862674530356535812430854639484412669279236651201998700443666732450917153113984344510776550688076784925065933534086717061902182643530549500690213939927645918756609532372035429380064765175485533246983379163436779796834158002783029586534600494585272177309214793845672634434118365859579639014845943771431853022656801681504521207096937859684267051685976009284090210194967138009060891831286512207910479468485444736106487098574660311627628198175242968386866784695427643968921028989581457046842572908921299879583638677304072384437458754780239551188239101840407178426660670883975212422736258697878618417019192461637496134069209936034454242865669837690320006399426734444247368885713075696639252166115144342840608072098061872021964724700164786443240993867582714933508016333065973067385237770308232530929314891132525866106914296050953957770133921349910325334874481972689624040820958109750355059722753759142144907014423798803316583433248734655307581345154966697348289720480413444353887288380565099551632600463470238409846789591025976890352511202402149442869029758754452233979736600411452082968492720915120512950649114577736046204673434023849776027812278101843012040958321163647372020158572927072342524490738290666995963796061221355545542136850161228870394369848037616697243718376204897076811062522834310820079406429481301003014567552305191534964290440164879526550032586906629688615453877014293361529091787499160623450683247814437277273294941798754334500330196058371267657230258048734105123056905565983308085061315003699249191770219713954825507133573174189248919134190074890361883806827575034143137294609657744018742482766345572863357522308225023856754547911836116718955093633759518457719884305482161503755818371059883844426246727402228358815064628087656641292732274319668125664688757798811249683129925190111331229987863849645173274149156900749328097294925988142332621913321665506503253486857700969948090800988944021922345124776449275591663858505183896265855830717877967482527562337002170524303552899022172273473870148240345685575724573792465073568831482601268981124390618105255961121814921018325296018536422304209780585190633467952017515737858501381525040754945293846517642111161937792633496773889749155143994540234475746417874959562724243642486588927249078438334730829968462516705989464181343124213444312237999955891282157288441738243864782117109542521288623172109528969569482522748172526218307014768516988671550249264997738454178933118346816226000101090541248847403833144602349502969594168577985191644934872944729003106725844047235139655565658958323407095107727402505362575514672654459869901705987457066708208882674797699327012341461513666239325352104725340165078575661017054463927069207768989154757448518392355746951059070215561523125997776303819075799646793659896987070894019447562432938834187390469033138955989259107535266762600033989341952653052879306841062777944687006420027989230213784091475302582673824326235350551866835985562810997189146579243505082191522853927605111799041387337916827883258536591862004111728100758247545799326136609820556445386837485778965685414258402603172661136511760844753566134549013619956677485060218934765547790269007301173032473950076113919328960749188468794268495565282641941944654283854525214564231768130553664378768887261203951141666238275070062497245455509632929321357923567609620370882262444643910870493328836970591111961347746803469091854729411614019330208971788141633284439751229828532180789148294029716859385633518673404758732570476749141365416662898598407136896500438603406803763157331289723632330394652439377095826624309559255774092764886430703859441308817169071095634003899173242620693688620749007296070541023160097438279348962388886737522577107293246214045452574529487515075384955004255049075408428949728465320615028661013144060179496737150843109588681493405650599136646743943230040420358617709490170432604310908130438949246026908237496182546591047479267724781274273293801757294190345747460112403163693563197577002248081279655645482553735891225033551101418323216058617854979923757754249746311700594425287909408005586940772168561385411528569425422513637810510416114479968754927396204535841763358441544443284709294195209454835364282794303620133269770621831726211468904888667815218467740111439879911700640569070435006757451298273239058715052552913503239353820652776175065876145605500579879860753852645398843063902037220534984545569672863604488301052385930437094659883940605525714618613640702392688692911815268819028674650464244559449514952859206158923658609698324755950366963411725863332798187487371876734392790471324468586688845399722828740174386885273925798392172205041777369560397776373236136669958279149933039067837468179321161918034259980955615859685815791364684714214440459459799708508312620964373477033272257375754442758616431348079955237968882353162430466220458546872403205456245521317695700871052934460393809397164309402260872581136675219850966732378262000228426364178416424902666529088538156370313203933178249827663389375425637323784752562291503350923246267980178879703831328871741184610570096663503483011940878256008059859782862400039113749102978938631160539392868954543352959176633244451187079640395432162338184100926625941530198543708003561997107960831246465506914602909247351873247770333056820466902586277187293365405384803408658091213534062002747135039651810077825287105455121614208281602028748780083804252303718677509292784444068906117017004229776961372447855465535014332419815648258326190143193582007443314124119811176759303217974199317166887460367609046695491486327020194979290478952016076283637969669564684790490140321537587917271538900695408548974788214496492409703120562142079104355700154459076612928072016322774149779513131276358273645403723227650375530878283496063853700804143850330884987229838126366483710441548849355359573736157305480661569349353308364774584620063862141733897153710462856196443371853326426729772055403100866919028580080551008319926610262609185345345938558849390329345710389510488734801039935443656634042727549930092360623120009918093545632645114248376729384401759108012628278014837380920027196233398149655345880716730411102681095366040492510581666239944363941543783955891707242829775458469748691522660736949888786234671301081475100055653293309059959441987096122309940296535126774134885762095838644388637598934745781581065109592530434319841591695262243525752265295530854999712753741943605053101064016261983691459787733930123779424333875540163065058731137281933869142008235047642576806526965452089830630693360591877587882118465983990939339140159519108930439381699835081673083739503733913354162596923087034332453198941599910594194478125428314204644605855475116597505315024876461715955390121298599050859917940038069484682477453741745424752307168784189838177235421153555449764204619549833739458800130666502558969488985588774988172155329412167063311928624945515149673203134405469416821392957499750882398038128423736600870727749050771691193582462225345261894216830890599363019530600230917438961048918644656292191609244778631334720997660493662240892281394206968383128056811280517783078485422005079531594691691454811997394710414864310464689488657235790606507471323471366977873939185158368785142839736902453799500091516179527781510598454733376642584340101402629391493808248180192090982604192691487383769976303637633173124581793875425703398824200463043009539756578497576749341008444821754609887474938927430478116127059022986377529242676628656057952492089910562286011847829506874491325125156347311232612396316790258784922487265373908751327989027859539029619721255458384591189218511527980937435458925755372451820147332037463460318201824069466804984630104208878146966976847283121211607772103973452008452664505539497253348900699422821966724610958835565713164195712327128478194072466714319294595051650852894723267825622459905045264051413952074327173459414628226701992864446964055966020079021920670191073263260285983477405361042887363119325010387335328900449379168802388980348532135217439372968926167045204854569509271710527921255036284809538703621326904033389939478570327688665524092116597559583304141244122253617344091534271705610783402173493312763753076624179224632981086154497904304341528123064233617348908254887601582085287196883034765577468819009252432714880394714197926600900966522608426654405482730438134538363791795816152373680470033368793311122079994923068165788581175555404065548104330921324471946877410074745140597232924881978128771387794050062486103773109843500308292698891480161446745874839400728609729011012650996946748919846321619384359505889856180591189431685969393223411570223713186428708933896670981259045570639701601604874479034257068986530511609551056267956380200734945902937599065025216413028004748718641135347384121906392905119252956029068397850518184669959409104851925626309343538673494186336712662957778853106055004275124606100991683760823671733518608845501942415383480227905289091235406871365022224869977924768948550247839135218773620287411323973222094109238726093527466931823728957353661728299689444418720399630136188335302932673588234686780485947982533337555903058958083820975450560830427888227198345741123679792059291454645953009830237432959272707894457980659161945708072767437037257653688888359484884251828873499510290190957322068570333600916554782279026741852140297294791105796717665374784462117535774685384961649665482262818007279258486902516787517099375334928490276246544592823876160169667434014587760827813808699649804572668087908651656177634754469153431210612406446269594331163896015925749373997917226939242761879611693946093104665687619879284824329476083250230405079869674952156333148667581738714314035254171055348072652685847724902301223111197620769225323135500073097920380219962964356657507197748426767088355256790868846228479094090843752200241519385351033354684718351739250816043946636352397791239801043761632217292683891558184678256882994297622299776832419111191995683341828578437975798698497082083468823767424587697415644338499879920883205389926166594481893853970129637913354866323274582624768916016894751080171191592061849472903474117158182392232467568104040395227848463068470685843042682289558427241314177312892409294052364530404732422455399982167591433702186838847483082668572210992310538035380886045947778561926973288916887698861836778115578176315383399628923882533806061458804041372404083234303183236453171310812518374858866561501804267813280301200651678406344881337004565987212797726304041053198658516414550174955545952404151371296937797619007416800849965768359373954795981602336657150756180767923950816972656569392734387326880539830495276000339840729249124016028634462631314810681718550946021254692587011489716064764682157765197808385510862820472980981117796468796514909398706292104412790951945933465807134679798301195775759637827471783758873432003040303232532699977013534952268730123338946476421956464122140534109674203587173855968412431735969317804361062578736251594244163057576132669623574814990493455006797458583487319828509530279486908250887960863337596903097573916859902888133189276483665894165433830497234339985297296585040296081219905377015288802465586563189810010564010064124258697752923270357736778155349754437345396756077855808322315907261329654936153248768585115855772148286608874731798878675452717588417823352301793152722126710937842710040054812021671833482326288077039591837377296182751862664601034075511178468110537609009362155172439434118909596753998726213050085920294532900800781241891594652459789436075914920128548557746082713647093441956659571416780188619869646103497743748213741332088346263255377190112922874040879210623053254682462912149187377218143377886333724566243093025241136198988762172295309397053328435773039234584600884485274669884854873278984030423476591960132545179793887781196724248777209374919211455101291663026556883211748833498552300469793491232065937757527118856781137290269410352473860045936713512515579783979612114148642351686435172585532629976739198355015468883336886718840321314382303389608154660889203525981590721644090457958381990480987668429515638670101064161511312502304242655020957393735745755361997960152492204271847547984180761625373906365439191820924948628665457945618553604419911929708495993238345331894372541393840778119576777331215227590006978346870138465394112042277701123412550215041016352201375505689835554722454935603030615153832212118411301573730094671961535316407858194608452132015514311492613567725690339811983316886275472186381965865951989964310779196403248418845213175848118575554867424638918313356844666046629776329891343061439654726225055834793633462904068474368694341837807630180117947975494835592558922043466989616730564208651363936785686847553045666545045563202256327011702110021925942190862454360212500239770905415195752275522687847724118781198978977526204220964901562081587947591642937296515748686765056021424603622380615433166633333416081465137122845825651553445036497591179777444345773327115923886582678878630838149956266399297057590145423739975487109380092057206359248981361727049513965770595628241489506412920457218737618677252129038888000480495928185266560930225247036435414937738206384463359309589722277995916761203166405536655013955562464391889373647508722768582089532381308327582807286158074993685384544367289504477035081111990964797212683611371529161267152708989775503810927386208145614592796982860533561912757513133346404856947504661034816353537711234559846628382650731655575185537980524759831069821370399805093601378080633988123544440920980443572418077641536537610848889247118115181878974106915288955888945158247884538146564991210772494089209359494114798627881946197304610487659191532766241257531098766908199975831148293137114965426545186017806331610170278370569616598314878946198011275480211726713527076972698390139990788099350150936961796469039959827896576289161764027186424713287203561864678376923914372440303697828958953677669406660316326816698580715749063876575573092100695606939506795067260563918561152773666128593191240449839192315176953336109306846186668851033340084120692911335147699774135186113339037650693562531843651947614959762336553149423989989530640238638404608140141047435585779464758902851301263257168081990942286738782649255460078134606410935963891394627000119903331442214490471903179505959490043304841172750948596214778291862736268118564639477978396166801541432379480179749733910947145596688095067292360948874854630705977621801901528213936113010479077960824268224899716115335172544851498955438807109529650011040838247390838252772702369955722671264853527116000876833260821668514818723055582749624026219096364758125666542225313871782139004205272076321086190237350510021747721489732047752370754168894175898863528965453528387790841945525909613327438244641179752237579122469748413093303095938767950958987854209692760228305394188508072268590476304946696785625106480481910555305203832029759516151634404969691864395211490532178355961395695665693327698359461058780551771987837818676758997665191009002849581837007610243114720159441256378650777989671093234346459999580532247792597827563560951153300841029211927090733006081834674951272261155664788864338758489878474922859948504380509118375536385466111681481221531560220135276610216114714794264335683161620016174268126032282083951005691010137046205205934277611116901501528120738747986968630450386925957745285033377856281587546377199360804009173211898115038025596790760670919402459795013688260542284906572783167205206762761970801911322832321620225659411287771386019132032551166087363131839632627547851115011339374883666577691959033576222544708996184454905195427021497597533852685959717764621145249243396671267700161928061313847387827137452050400285929783079616618245481308795980666959078241875274740219811330872844129403559790506241152887137922275415928827635907950095137907660603885232659133125225740846398492218854201728005492254963757140610296947045077680551688114030660310759875028604998397003904442528823161445840925778833742947248145563499821202642341384759912667646528211873378535554420931834423846070980724447516557308762967871534981158117298571315563729343623298529482778423229330505097034600654030368362272623962722807672311999427281864338506744406686255569852207874877111474259518621041131319770595340898302428725576213055554199583094049180384853359962376539066847120265584895490574321817157963671032329985956084019145275533740449956146481907453667633817763369096337806677923921772786369880440727840392446776456282255505534184310390939563673431672607953734322283698337618388952018790321285932111845848073760038629402748442349641374922903574526552643031579874338178565839043924619373774673418338544892427228631269849050237080435553536782770961537597804329302590542485173878290472565306859268222728366933439022610071914031630808314962024739017097457277375998029489158280829209802364323867964208800427655168377482734139974968375039087413352356590955039726644314231764204153226168582976008752117864784485628254055859664070971072295644248182018386350749991411012955233656749195196853811495241482101253642489915135528929708916120751890104451170066352910398127787954811905854551074967360917834107742954640131953111474772555212262068032218957853163238192699606359486261423641299312249285307433538152560291836558216911780036309647011240482279468884403196563697092699401789364724753479926310413078962413382747037887872229394528422986918352566491525116905600823633318542436037981583140427424983266431009097150735899836403575351270676723914331668508305052270497154050522003802438651199730987142524108050811533017592756225006246514605230059575088733927632588829094048233964738536940741368617059516682108757170781422621616731113100107466776108201719659353791889673956942842729722786379854524048055301878595087424016737251159709708530726666226549558763283990266790851257345772524804101824550759083025332956784370673223510571361456593834329721552744600865381259951781933730025181948099163488162487454723046282756165630045510497047624690486470615330192012805385328607499708667125857695826368540709667699761502687231264905281202892734629669218593475979850309161748723832557674406124386158793934737567195080449044714807574803339605625847570196657729181031984679627921484262877331710334388969147015958611702408175430124571608360480326065992790782033831496693145390443953222787776394095257349933947058308829672944924337086516963048059076705391048750950106681762798452149318774897985919642440255911309908105197962795283232530123752237319006090997832249914710898585491363837793300415777050193410232045619541194032223812125217623406000805837164721145029310929999702182892792502467399779307613382990983542099697039493048683042057933889402303720396245436316407518165910504839031780263374728726142653308179896419436548817716317416062739156167569163832443575041782271420238249669994243960472639746565347227403221116700421960799585127115963595760805482738066609054418325503417866916129257643397779886839718606703941226259785817386645248065377700828994948783212666332899722647202944598238986465231786172289375350386489200341467096602509330098827269258472916748550628458981391522692514862249055098762057337790833016565758242776513160465911990932776940799455555229511046538657223504971673361700666139839727347549936933165659873972247456484278008326403497207104390034953456668324786269565903043664911214075222295859283635759346307135641636128890341131109755721360498082414617111395735412351627324275102455544517717740138370332969382574913320383413043061924849282528348741939945706710614593404723055057231813092027720917767143730162643508380310644157002655635866852404526876957509589179700755538251217526769114624841274373525541009080572898314947134367414054792555333491752174532791211458340252487974788553221109775923831446644615811507058933101528700874570181413815102618233585981178502283671389733969434296711643479807361811600733975750737124911324716399831124588685758040979764187593276198245242247485360083253963234662158123092296164944550347154917225422266364656222067646706150952303130654370033253490037511968038692462607728865794694778401210582181856378603033700844191637874115587922152570871689031682561012741092753463811785963783276862172718900864337597771077217877058534474273016452960555758777361361252659849568646550341469584032860522017565964949415743991772673621452303279049531695956342009266036770913195892971475717968064278809998759409426536648991995062133791791203178289124400425607833329476900462201409439068001605753575331923603859822694618353887864966994643035197921876499344283459146922847560971441772972936912156080872862363540305877032674745689713614141998141085117529834841877282542623094580610815074541801529558842244455613512227051686664604972559594731654190919681662258794825172359805298593605096491121529716944151919329370033695857945830161586795104456899691009510201384229805040132433772798180710750371842656757693471582418264936908882076911545048102771709850144171654977585431555352116581944832380917410664583250825114344818327190279564008923053267814451352945712921571728011677572641659648848981179422574636599699311079818287380428604219568223360163537338108823188570262656187211230901541775181996599056470886891549310978553207043471169077452704551807872789747057950719360806512233056162847403406117909180461850150169142911773742200484477299936368959943626912905597328731514444589830699160502319664198505233656780163486359145138971171453718464284401025697747463589501034246532513293622132956669223216432673328008768534242596700323227518872895447374789212616868187389294543103459899501630963570743267192624159103788468555156438377630132717514097700571050976772884884786807682281908480285502173103430230100930884269223078069672232774983637591231818911961615358782304933905710543831233111544289544622077277316386223819334348551721339758996678430958492339749037430819413635252684515464424872074163749490841434809350209416290160864878024689086327614373424505834936537011612937111020011784491567876944830619302683162288394209247324961280750808043711121794466393428828416961691208255801409589949351968202698614461446374959187897745932733308229345802501874756552769856536771357259929425136826303085149549069592838258342815209098383698104050012418787651846599806534922036323638878608237015191934657154800786813789070358263063223383725367094139496153721014612057686948802480413615534699660586966024537189068724376836093288405787592720193877597599923296557935384323488949962607534586398397055044345838088419379549974641666706277483316401927954224626279493728076562740426232950722842205699809849075227430277843426197425187053443334452010612786306418748957241490100322922043879068032039503081059212703382513240202036529118713759956125187404376849745620096544248515360845937312453054720278252721134168171843001541843524976431828283542526036088158389842712755797675843868147464558119841615355795291238820095398250004238349705669848125447404541859541373840223403457976770537528678250000781790409076104495351665976044427195301828310191816761577842496118779241731502631842748073541002678986710923168678451860046191021958665282682853716456934618447551997575470988608579319716357041552022694890107132872890825664510997795531753502741904300856159739065571816285567427820910252555579046749960122540773527279581880823364292647435190931603132533455437958511669814549088000788025541091523490342052242260540501496614952517634880738149846358651490186194585823152173696166796083395732695570533960523024055867683951711818928982628971642754575677599738077689990157295798874854938896545123009936145917020359699386483807465240282221999823969925808636897096451159737304302192060855787092158468041799346093368913303185907789866469712853646446081494239146499770552234704532466149910020884692854011360190618284032295559403968928665042465702790387196413536211002143534978390142938848365832279139373790656161459426118846607698068601911358418925093880037918280678580824859816878695357296612938270682883459386955894303602262190537767960924474186485620000812947209900946989457023916885119346690493297454651221801199052892286842924001072452780824951333208878968600264246226010074042865464005131518969806341064198658710633812224638977412773557336961485896722109105125353362917338063067876915901166404664070404227136428906290934935436627700218346237530590224693252985218404069000891229115300088627214758045196200030712713510864720870985596431251138637606127914526334703419439695489541960415055126322520317879390148752906529223213678665196637670498400344171925620832636791446395895781107872881692696846093278298640969754932914114575839175952117670992670693463974983045145353830895251438512983942482095034992978251152134336284468116969921135035337141543615608403434750242498678412556630841529141678672867966127068561349858165391274307660264319553481431179532789266223770334634984242185181697019155719331066922081673249620890669604339502617322855181911062967891133191130295803778458494023022204916864246080948123537314259840652077025370123852397739382109121088417148141215990355504788657941109349178446307897773746681330490324043189639513267157301164549197132909173733288724903847059447153649611152806642160266127131711673819066245668661532581012007599589452917130749682743270182761603578759155806713686774121602023604386962882673621277275070041837131642089904816858592734701779686275763382852566255689715408203942200653419505573786872952978733225691530835002607274349904212068415611064651515239251048651507217493557864284374772590626566123986989752319169120327376063336823027793202623544717727777189211821785573158079857892011607377601335746942984925056379746857973812960465244060331984216166159467581127264099864415781136109349749951236956454776898716042238184687485018164800262704595166735819060778354078762937408959881657525538942537096631373165518296502641918237768090816518912553518286059382822999862423271311790887421061185973825898694646258346724347317586431099276168980276211645419030798390286746563221961952999023307852008299200285596565353789081661759938576976888103976966804109175266402695601241349999261771322811479572439250346087895352407169866940789396547758170467666188716320825987426550919287560739648452190770114330363700225235148680291489940058762657440465094101886476255491644317057241018010572680423225013142364364958110950421890709213715349187446671627116992325227438037230964276472853843134854765197669657245954347735128587946045836643494907871819372268260231208380454891174332735206335868437839802879372498602554959271873399527538565134113841215863170136664069009262152333192175436834625905025324743531131776326367451949791732975164642962448078181211900525026440213546304841680319085132926389720369765354057543669016927581136147712304530412307298463587083920708374751558806451750781986975956462952929040843147328601964862896252790445713211204580799114904092336492855021328084919047823743286775384534366353255212566878271780681324660114093916279818283526433496652550354282815086027941229861664899306919818303721832846238971180096609645742837517963028534614195234045328774401854104989291872121930556563260537610460982711781508490297580434451143379913843125065024595819078858335794205718797715012751597376543229798999475208371453680499052485202925792122206099239600994707312533967494478889627716998987940649848612820425155676787797653164992843495542123547882251169810965541123663300846527857471669336093319075846214887032016682145401025682573137096119448889297829865676373384462538988014452639380035488276487219492681593725887355755767848737629280714853835103359517189905282490422746832765016589267228683919031641199678118018163989365140163383872510160546366444904315521616044647159971522250537992026392437188781033521912779389326281664476210691244559682551371269848937873273696757344926152247368148892617162053650646912270056179373079047714829680788861465435386641130206859460045956204145433605284744109419505471221298527434120690155163767537355404651852968366991345045438842969904377831317092754860979449623170606963008268916152700836638572669443982425607433287752850848867533139991907563988512299278406788337824612328253033373865910163683937275066030187025603781143958292567261713241345456812220908264326622423867852344759587523244382701772333530461154998191217597103821277294885345455517377406812476799897154776126316369905323936211898536570781477559563591506646633682194869000346498811642868866490696668916276127655760875821089788807189649794319145273667766857377695917175282604692140441270472587349982909547387387707237350926608570879228206636621172674932471972648016567366182159652476673826487156405321164460796710817774555275252729456020337659417266768453482468984611785293680241859921755885324291105611133591439687334200540445143683264292349994321932845264816727529120369170488256626538924255431803948698773673973503154789519927882410899073573747668062360154754337165146728652953349491290148921053302614565388079075789714771345038336973041217612040373648838855595645688223997403571436994072441568856326291621505725476726955271845929260887603196740230303254888202807567242434920781266303538371497589877337923555475438732892543526833239999790440172669953769110173477740982304856960551940768283355965168756778821088206978089183026016682370814995896909155934354899059702766303297714142895870091060680525033053223439118852557217206869773163255609886696323588199860066446767385875348416580355612692376367290391960502269736595191301655592890976956208056736325481949376690936269485969189470647810183470808296205340620563302240208481173579843102739059174291461624022318576124318423295806866153120430210534582803253506954505130514704448699905574382241831062999870038370317065764338440256886142768502584344986178767804783392239343677129842995711864351218033702498365265598766548652655722236924315263218195106017006621320425827904949031098885902744085325031939595569916944656542699314703543348934907891778853304354320818721708267069556291947362102916332106869385499272685798545838494765950483078452864395843509062493000981226588838885136839200333422882662290490853429357690735599478443928271483884124762378091852104732554527176539923759259785686306102623076153622938932366831246556748105489100520816319052783883904823621926816746222109161449620522386791873460769332047450027828718362947959064432301949835708377445176545040874881118020874237114913623646264422488018954066166768578811533155641867209767001438724500678297631451721350319545728349634452120903690525953592005388475144566821772223560497815489862961281556599902184323167885253462232210865667184150928409767261278271977688596513160180171868001038737115887186642545195964710216099472885606107440268990691714545956892596582413809011637399993612362225015505037515224027554876976071759866258400157838543434059068938409560180949727831981333109042043286898402165113455074010077151678404483913646112424468362874394292912602045246982525505935329406927213941079483393641462803066892156615813425484944485259478971819407230024482485633436110518420118480158731102741923817155359491089493983370773281800524588523919730168087233950936093281780709810541783938424843604958420909746636108473928919724998887743795185278245747053293743524737749752662639344806290348827276701097309127271858039889446018939351519959737206976855224938544982874858415400479758341702725344142297650840595183519297985495213039037370997923213130314300684549132634880801385591291413355576828862397671956376053553266006372015951098285312228238450711714434332866898892658812292563621300384425332360934342879962159071166380288147131029515192462174581748427469117572798192267231233755406152233836313087467230588012405878739558902140850136878803745629998331227621326805957669094548075165066137011093916991595187275721555744345310255953147863406609333608678176339839968704254582889183730699930201507600130373099080688459585149260772724285160231406518455561980357815707540728109625386621820009767123732376530847003389590955101582159734233616136020175497439579687142686416984861570916840524205940048959187716860025857771467100458975199841554228349643690604197052656041206928227754774704010422820934889613825721683432579309525445607721270491093534879114949008721243648863612604880565613914399369182837745438619270985819685257906977669172759043922575745758685986925825191169215645688146231234616927713946694035289858467525534397252058973263988796757406545568493373769536993297446833576002586798311440382313917488194652162134614346380707811141680920572381412382197150700155953141220311039864579442343805046083636050798343576133012380334055535755488049970570906198656411226249286356749486627363089735825043597629611233454760060196500432405099340104868507385864085495583409271467836081270025778449387528231786766179319623974050037394243466468056928452706442153922245241115359413513827336856825692750971312857228296217904341667082317420334668197815583084282911124974254269277230977637503317489782439956277526315730452926397050075411675118937145861373878635965224949962287186906687355545369646255881803556648806682961297666953362930113266629885086890157131946905221808275812201293463432101052465148236488877671959751423621282225039365088980434423803380173904109804532565648607223010505771564119803911302886628615767521666719738597994726288802097278023306544167943448219640984493952845803536073268218759392128125958255515884608690229780858005142869577308610932778586992713656051428472156552047748350841618834285519244062209716581370611524522832083610182071225022164783596566538142572833906045335013755067929018874214282737521537816943863432233082335302308222651554253211526394556959377865495145828701324894608914202403031993434049584636025725900739420433276324051603567170260112794551510160154245473644769961419391584266315432835739110835561253733997025660512826098153991506346808967644397109752426808245197905666040469476080340804790914832728234076020111556352627304725240502722427485325303191087490724378840789013043063081278028353721348968004888307133777190937019385894892684959579003302490985761044178031996689822842727197755238725824723932681077797573683249533385288871988704441088610329273785568659610036521811840070690070341683235530904385857646223484016222711934537247200130754962312056593399500567827117727710327658055936145591546279302704356693018715298023759612791925926797799508658579260369632155250205742957135745421766339653875701380874755324786991975719872522720505498183491788401412597060381704009069162857285701675984546253165814644875825116430813025948317551354928944398031660759926155436201652010831892153726521670850323317379105742020458055901599636668079996148096143336435100833402804584116884485222648081434487148070086455623125434064342937619734796194208816154908243203241208776933323680975250910493497071443092081554330742501852796857226230498798129056645504574419780572361705498291305966157730983764095299800710054154879101887216728692406781107258571921889995607300228311054085375397129450068901800025809317884146315040972898902500738740535736854390888716972796440774710900736911045831437739638267084253284930513131138357145586380696720573468416617347604437830072118691984413724547186423072599982206800288165737736900536207373866708632983368119101120387300027040662380582381358730016162341619171240229677413651450252633504819952412558304612461057516345092107029155381857044503310309795525259201402477826686748955524123661319330421629124855237442592479464985198145777472927816955463409497913028854716197570495184310789865417310817691443876718297003056142464031224151249061681135684891627351487322638682954755131639080809797323414513186500763472905928650886862770625379025326952242450307253715239284645655675556557140987608759192138911244816902149894498498756610016475506663053023313949612095491366869646124205982591100499016799468816990211238211039255446104480587543639890660469627518715659220004675189811515397754707290121557451977612887269752916587028376636178611493791605349434586861330207956547768841393632991617007426253568912925544356515925635168188089358658782290390029973994376306117486045864609334575374626142401460702669295380081682316651550293431416153364360213956242093221259727113754087961013288742948314068702081613213462513660027327977481023994049919619124529279839636958771024294912210362697172252300139769995810179495905601184603651439229857921096024934877436129963063732614975973033630111430303434448679740454203054184307653532914727174365788620010534552253533955572299187572484679381073526188458700901434450154036246715689363247597620084060513176322234631104804070087433374361561350964873414106045194565540067161205193134168186315947481446489353854272082710179460472503362084958741210357485752221269911575651886521978482313302540571118156899514646281874425197332578582479313289536403140211488333737715792256210252668109371461682517340598822974317252640643941318192059920834066435642346225195680719116782725245121740022583920330223662170601022617585895505494104325202203248754996398230757122710802410801555113756916905902733695726700388123320026574521783270835031157942851550267352753570058090603049329379173296313428789120664091053615761231470231733547656245722643132154864995017199898212641376681991533907573471895303396650954956659931349246509899663084414724251062295568714643102808962814651897811273846594439992129727645023344036284911546997105742657671573276772091152315717562270574795335479716656033695505199948411406557882086199370051939818960339318331969074499892430268674458084765252967278111804872911467122155130630035744644799470265854697680634101274283468267324754255316483851951472378302481116916837429768415295868206775035333722676943497385770119890144585580542269641841670924151075967896449269691567066349226583116352840724785441702609138116607245146998811695784541317932986183606807689847841708520050930750549014496243514438535068356332500293721333360815082030947302057828014012579599478440091976934916313047429134981266893036491735920366776620901526539373194710065744621208112630075629096926721463749206040355621655523235404750753961614653420224838505857248415446533118408243499554063968774435861093947213798892008743158902945172652145003454464466429960081040710455822357880340997918805929561710057415206167625176326210486253548437766369511674673768247917580523547536930026630791198221654013582729474391066969181221095069746025092321726081605731738100700372528041102307987424325223355249450080916485425712057171546326850485756514315729326928223416766530261155109162019658858215815072517187431521351583515068078597044685049391921467488284142007836840824630333153196401556512489284174183509492497042383469213027590277801226796600681293775346687783440159468843862605376134503438793488771328756886353012885454323881784300126367923793100726481646992217826943527320065049704657665128023941510487257374346945424625453313153284799439718848004911246193468891724040740582718758176665340541008991471208812151191462927805323691726835518611074680806924956282020371764890704719334889555890858356691672771222456606205412901617825790611656313355359740443648741489809311589052059684669334675177106840192646945108690653206694601692254742532244646191724309424294686098266874648507044620623548116106546474894286510049969402561673856570700218791168738496288930208876597536085963269269742458570437446185600082856703637030979484993056779234885126490581949539534488498723435247588013370932312552141470276755194317824807894368709231912005052049119348792421915522251751576500266394305624509844674597262732902339495574296779015504549850759329234779106254971926250250048906289784789697189621899184742760080232182147297390941844177534146610968208573866470472794349655396315092987965886119361719687323227232787492563958502038546665540611476799256378026512221091298517306777663603275807117876215945068010256045213673286773971530333692342402660752057597152340853655465684761528667306377895759920942146400465300876837831470093878851508751950624809016110157353079395915975329540537275029022424287822843402400295940363567040963476153035073677997732025743918575544316016249069608782479335343928673142304986240730553036773665144747466441927673451604058140015585511070386225174638345914147728505647661537901479241405686133845563475527077308448985439940631182926778865056004580260432909576046466629424628511822519523643316213088622647432534210195820685722632569602633186745843619728917549240213485736925627724125563978143350413536526585021652704665617038802313413442407091217313171053978888012362914565489583792291072930615282443403156764044944095410431172814811865991856929364366668586307885514049305776268987562388835957742159365032203997115698246517325816164794948635710338952969910164646601848514252497411446843926236024486280592284119063619890156143974275362755282528591133639816929364430039396413213105532815135677711263354666344060112070257336352869309818588589457036252099421921455200994754680219748035645887237193924752457974484779076070483622464053121358572399274640282504652027098329495372263068168597491026055087682484022835329170715603735390853519485150483564219372289827347735212539870900626993412952296407441176640879974624011099110005426194144575958778508741714918465985455275246341663574173273161125773927131215344198639624899614263030905839177522500066597183653590386808292651874118694232677412969290952850519211323490167590785377470767063196316803054919836282247023569397748430053721114792991344309521062491409880151583351174557160274840947532991534289095396301760329280960799590910958246447922601387659612742875520903046227907625988518995497076709980988411070171905766379798772754347416319390491771307283117794635279051036980344312658659140078290166261863896651974462908805056465689717298450210456494779311973759679023150449287629978625065819579731764772126965639125271795880280462337891585761591308425978181605659352566369487627496386180512801655033603727228938930923901384704412627009159735349909457052469753825962836208190681604296845186876693195669935959417299736650736724590867725602660296656235105349688667266499888734606265401920207387924431565952472240541148118948146037016358725017138343668245206361778590897338854062718918211766184590280564637161396108041535306735718103248929697948155128409417679243750268210670650910949002472346064729281530308080110819278816351418340869267590479083706638537384788793355340959481547982273972015056834843693023018819060231018614319154879215402475185376529144999401956709104466016222300597515771437672892024180335936179357342802587262670739508293589270458309739145332289287397973819322992969459258308290937783269680806205384410033671767682126302355702546217771051456932335361323613348270590805773035015025241371719385955855865031676757323524327467271351540678159536798381391676338683986338747499436353359699673981395325615497426522160616203413254283368854521032053783285208647614805174150935051196670046430760356306916790840631368113240973052192703772163195079345634254317702174493554915176564658245532142528217459691633080586984231332533944284700295975836689958955294032092596023370037920502679290771831681413128059028778850913474513133884129292649497419244029515044214371711119479029131739980727526000998397728221817502608807143945500377859279942201967163852334702407084583001071310160366630020865569643831022933435225512800514797421111467254787726912589839254070931788683190419477459607433506964668182713595224699495485879577303364103981093027712363606025995110942974440088480273785887129216667278458014260976305469844700427968779994600580586328676022021941939002313473678681767587094403379233923217087197018909234614776948372236844189922039886970035097479511655970537713501844483263847196228192692040950460177600252696582707006610407989240764303900273626708356789706182275522911304014824810043728753991261818771453605396212231837815991916400393979998243828190613647797131296129636758167524623502876206127874662866292216460489491866625630262537601957263332535983740662273677156183569596139708934498611437079434543171251003974308184932007173348687325882558222494802516010297200392690060122737707221440788129523344496709183979774096405732877840585067195788751534075286511941312921564748266616703899279084925208009182249526225742403128710195375741759323536389027038319453618103455096116861276607468183116307959959469820138851508579654800538511372307877479193812211560170306928274291745870477976180409428470756334947741028600690849702509024111816782116158454418543519636826935616140972029887020915032200515495475012171675961026996285625390842400701944633682205450828292401761244925489646756347001844167793063130268111088804239465163893121255492063287675353192967477263098013540521158873257420434218863317050315409271680678547869693463752277605211177995706902972027379209170534855503560425176032068415696507570366220977684419510391556664049297848484893749676785132142759394005140500687323731934861518273453653772073099900133380870378563813566534770040747928003471542955217701640300521934523204212084983116212419664644845075156472776569711724211476509400973179242234524560905435604703911583381250769911300813261261795643709307245852517545024689085293939622214511626616597504987197542734338229723900915202789982566964572776098077524461038941327673757006916076689715889393433949360496271706040433056878452289438868338585981115684016437511025988925022645766633150506026070153309430747270426491352063467472333626788495221590303987345115723491683628734899132154844434211979155916736282680101523954814906378420130484987277813846802405364910226806900939929750388689087080036962454102424365616831309522476975677980680226725408184602516626027820482274165883965302481265795769654513786875954392128784856610466384418835630410811221386974791299807137096464259165795828007271035327278508858441866024746134709504024950544967764127542751222033945746709182773275846333295599491653585394639607478814900801503561915423413524290368670427296453971529119801594029833663107875761587701306353233402748195194557940980490835229278940798121776428400553709660026234454562180270642861061388289447237651658359657195401979030996602588043600758830092911315607975360271037249065553292651523026778322912920166467339456029368791033619374160740720589271253967453956648996038847542150693813697878016543737567483687346811618283538374578971540960347723050592874945281490455939554183317348678625888384261887415349465541445417319631411279808116559583333197392817876061052671193077680721748289928661112702075500837354725861147769564774990769100505191525770080829161680711427703950980525988723686931323240990073633213779245094634344935298041167878160187273186645046802029414027071718411469122263918766861669392441582526523576516240467787993660517005031321182946264899021652528040454364413354361573965596160070594286303642280579806483576879505168587037414970098406685446998289988819033929921873038383283667110193362876797899653638770598695559069671833460804619669465190044023883351070185784564972398545002992072608745141632201894024750548950649430806383856792072571074819381589947090672981870368222956018485192596446219277161789762046502561516047318251834307851224583562033923487626955989601700453790317088484083810306787343934844303513181909637009767555785350951134314363133185733741765594353590769554898157270187269169397158599692695847816878928405807867986488152578576342245195621534096566149562515046138769543602934867329831411190898645733550662292599434863062767373786782439539151263129422308768586218943284442228566495467761106403941312286446593951367753614223628413621054310752801798092279970812986222587040369437714962070912173476862147461951386546513917183049025590502959288331954716850368050725846459529504579883521729273027252657947598971299459886581399911617656079086331252092079621991066095789427989105149862700580302378565340602410746516286177338595797214859102169876453523865958336555883047486791398651320516582143038063482199666917181374747097560824898147873979367192970354172770547465327959245737131574083977358818456627685183978213416576168238349299191372858288924478682172061413319059275514100346436361349409237738134046490930877218924168475460701040576646339904204700344883167095759633584490378182811210736454644236175686529523480062616986273854413658697061049238398577661677789382440439961835401304482586257136606219555190668563350016782595862793762133434839613272355652807554953131000696195391834077965955433516207359066644534991538287956567477077068571811729099691979870510297706038201239948452202464692678162620602220361107086155416670984132349984133834643496831042344503605861992066126319271616153545488947831512722130002273014480859307107463319157906267557838422121121483692927370001811837418371575567787636184075320224116290018990567108272008815646109264772836193602167317177316455351621492957648977842185713794589031214967946676291622363515155509736879524572199750671354559870479275228104064950176216624380527767250594851477157172886361348081225876975122444387468958330586397654370106834175654116816901449998537066183157657680047093684999755829469837965096047422205975865144982090823214947480073012299968413876831148379532754692938971852519075609291183191799218953020209294554088856566109303693792131581370883386688738956588997433330059889611791935413480842880664333494479936583583218941313615711907271740426046917415036468166092258786123229237718178103169814955635731128650750748357887333071467664844960863547831836608075392430347360831935469638325208826506385178514637699033014851027816039097509334628275410571000608705290562574486649424384857001858484426301456330027294382272072018534673124576238028696981496626586227096617536799790928293589566551464042176116060947743601683738513986010061956565793600649970407390248119596261231464980577279935768889770407232528185121409411733997906194665561853666820435421789897152600787643635259197523129858800364211699911520527110342415490027968561221066946551676020678993989172709021593711243761847890954561299623842200622725570621961199722033127265691385571713257393067152926587135978451492070401187630504482623594211159609336486118322157827140740892316703075773555193221201470442946193379133864916815579177658807938921240080977845161824354618106261703602116419519392473886827916462361519560921790031287898378643313340052386705692219107107514285409431398626285380448857963762322799868603962533913606597415473829139786298827629938407026744902883425788959575356716266061751081085782899445875310254654723404535953240255707368954807872228130691831838099813320377708915679845816986028669152663784938147301508388736702238965165445410393681272858048205269781984951865223093546073714140818510495906215175181752203781571939636539801142399896570671358280433121723591792095971858528171343524146764655737290101091336999878527642770930190030853411009178762363369642993642080493123122992024584493576122902072897265817957401587164174613395968240085022261069663852410849659339351648482047034749662204476936182057129345888544487658116463184511285758883634869832094052854783726289294463651378973478495880322738354267721114349853243952767022424022929759833926150787894323504736536412780120676385952666934852584352490161859766252961704178815085445852081917680308849536791056713212378559183600354753444854588574336592832376786104374209645973310661538092454093447134882030278035527079988499111890744912875392422445591754324141199677743347500492829057662690173904424081723897961378255146053537819655648910794926266393710983952538174804188454504100632845721047479176129309089343937163840944142062299860328807498568968016898661526419575327416749313285870348111735758819532785686790673301352872569151039639418033541184251806496959125667131892006925808273753846300206353365087468874714499011502412295282568040587323506209191891809551696146818901158347823489110895974325844990649835415453463946032248387736176792184733916357606249297113631916702947330558467049384813979820097283390282507022779873607635921681723508824043333933794277915416979368227529728981673930764509276981433978167802546332286743657808623776451262049908528346913031013856837527101895342043033258260697792948013260827059260418041685306418140811840709217631122004375236593354679371169601626096974356742868670848240536922559862873983224532138283808550334957605050724387052078235487463042434224395571016669004576978902311276717081707317341775613801090335400344780283003407295137073055497085000306876038591755947577525395882182136441466973346195014825634124690909715599125238903785686016682366126363905248354720629904753854815154303151015354262776881723296590943930510792235421027940456294002687162152609753093801813242458337583321197644470707994551965519414913180100863224837918142564134971170502120515970113515966902965149108312569591731330741734870131703072667200224231707710059037356062318347093183837701997319744507592503674904363380363869982161072134320751316704004709750254593679027661712307060348670438363373289213903978292506822023051801302552579987356197705452766943855930280222790835835336092397858635792322653307033582165100897725071548064195220140100918589886999106518738584668576760944670194636400567204289834230345978604304487256284823434195462954281674797483199124728403618011208258778628404486532556837940739999533671841833191701877382538191395019010577238402989014362067086313763978332933208298057389653732008859248876302448358576635589732224652022143057827266190567644173786204291403588937517574489374607722528090546540527062179343283305670794309439855468615739575883667166906649996667723676514710184355562591591351184697311804216094691637717151740667932324907173189676528594112502776471560210565148165950425735183086231460064307049802608377949350132397405031598838880325317031593952864020058245640954943887247400975977989597752504659169230779744149601948153317368986431381690550005965584717847040158822138026620646931828107113784945613345558124705000421899476157386263858875585695789008110479675264094796137012807226500728063393601947265195530883663118195809511169189508055910178243469464512583555202263113129191139531901939222309218092195794766300845206688977963162031539388325469885828563177636597631156514726265652789703774494090056731146218736563015713448080868861215017032427614815130234457135688741580655009382429904875671075205921759655070503147596523270000021280186040779647119780306692392108436643294335368724899820642739061532168723988268968082047342134471355286141729716128794759795272257155318984457227818072600598907780660954526864373510807945903268612183361538118082922279537234735765283038717206822970309355915560676924100588057441425346428033400794115092413437987404561827544277558102194786118836551933976078140940426823100474067059525034299360321449321700403212828249424292802506157587151982127405915814614999418726748815491847205644223925747191466262998874738683831038943117509065793598362283988398856055225383129068294411612031473480707870102206946042337842251933396550867842203929797706364846550525886906440510545439206106512383503356115177102093402126070043120519644032820365206113766774379185134270726972234986200720688424049481484889818243868657220389913887416927634436793678709719963677796389275984784728925257903779979009059218729656782173321602991961319169669910274304061595299409181462941675767015075445274228148234695235329347649647972434346423989312254545283222745576906976432695919197803297927781782260889608880178757888525643768583296017265071668866866938735917873659472850641455207728584706699565028686500933689721091286860316562241150131805675288386474513648492845679959120738577939453574958235488463954446007358396014170724773232428349303778951324702858985366807095186084292391747571570953027505334250124197777691771520362034241738025696441343978953554156079939590379624432338888015013202500750552937580166229799371583213432639723324683763963638191594964986171498867290513330314958938124571719318711366514541933148333232119241390147149527837844358180689721132279835076231183256490841512945219705260646291626013248765724251196214468454509539973494015088148924955181391122567897516447536451267979477637384978846640644960315108643507151007077547432737288448792222612284293765921703713073376129106197664375832939060526984000257452200297797048405223211981585236927884721808995094070519367486260058730530622630124753360515386141850407808822628223502434945801257519164175588641590115539416023266310871050364525412565781614315845463491858598342319027979833936349758954277106038192133169166407961683330179051850444319733043499382115911181318042275499920270125608118939464834848687759370056457123780529205860896302861619482754453842455963425558475531390236182973071291738102169843595374950605068091010711494265384244305589111023028404398500508758953232852484000576767240760630498697068998587803135712794397392053835569470749898361552585361002807718238359939642507903432867325397516212808577847474336825092787628487370199023184168262111466613027007063109846516241406015082774887900739915001993327131245639883886461872919765920332009413519412250400255675343128543610227504134916853767355182980039650855027325681390631060778883663040810510940610350501421984270211481152613857355016175699284620941256553860448877516008405319319229192979015703459993322441200861813677487355078862924061702396006911765286958393827396294698914317809596496816265206686358633157963230140630093091039582487358374338866620813914984903210033992312965049124736457559893616638865929307209255358332572600182552702828183367178206839644280807797730391762604139427140938366997990598846154670282980560016533560315481860366500764371964912853069604314871153111087780017262898122929626361229944774173377167185908731210536708119669702983027962822443981132926146478743594808006711703801628177208582220070302626429719328306577395516713094934985672262431543889096072619123951434030211303116570953999023111853058564742653244828091325831178951102927925950190526855123759794719678849205257946164786515184910636039024364123250614326827200536536077649504343293167985028059515156614539049168619689951171392801890374257956793584886165911678699650356806841347548481651340836474751287042315727935268143869981090149006315327019868028199993005537391186580847667290287239470364277643739901230323059541834177593881114851815878362469712576885472650134324133375668982813015459891032663303547225214750200446507817479513165065201933715141108444696226623530802225601562721756991356612932629409833972128633161073078622891619092399879538384491935997094590841531891756536898980852574458819756856808454547060282107849615397232822942034386246145342399295675121203427129743801126976307971299300618597750552606849400807110611242107847859372147439952648758599972453285710061866251583774623089951499379059442318596930725452895025361537595496534438171858422388580593434978783303981176872648568270764233975904151060955232802053197640687890082751985548717318427632379589989788712941084420767899195179038817320908513664175761047742580639435018862791439783654590388306365871580336210352091979745988865709189168306048924701299120246220380423546565030302431383366789463847995951136272314071420045790467383252488478539323327365546783982901131194107253199325278271031857238443025885869529881612425594951258006489701458716877540623551889850326334625781737543666311301224935529651984534957411106478469886375213349989203906231242879877005713493236621752439345995429199500960252512094840844256285555471071743115439171325404200175041536779056104283177239947972128171800336459202851554261639508081232603011919081933580133833850873596392176372455802874487879893874009864509894652270457669642530853493501009581823376948139009621269530322862040708618426446926687988402655004884545169033972047530105272966652550761232241105630310266588263567737959996877804541894314348010353860025078146769881232737182378098269865634839354779894885755570204125488373450655511166641931443828169607672152049980308991520757346579853504348455700920867933386879209630058854141188275428571889901050585322737341857815405309205258791739569783075547848643142254513552596307354233279296792030569256725258864332162755273140581602959579398680389079089714537560534357992887563407825521135351296337205450213642785791674081575035763122440185124944638756017239235921160532792219163706758192473423122624370445253855163452775932598090887565259314834440258202639786286900018181734019716462261013293425492343277470956557981298484277582110814262667169094016370596383900770989221599003023204849847244259831483446025464597754171704752704672653691982153777458591305438005642874232797095744135389429059308667349702848284910015185058710943358816508576977846376910207581863125723052614374380380692301230323146477398402195908450444583362538133392310565209039910207804918512754626133058373964797135675580117444419876351421567637909282192418988606444308830117309613948843449208682692658481277696021396317535930641302798173720320006933120682745236462716263061827962059706086695245082094944316086588067764049304435945798550436469810721903111311953877396937232637618958652325396868342111602456598303449620144991291191766879420696991278255991020431859158511833160537755266651431277774500392100590808210915389418323424653779521885539542634621694904554327156984224484879512541310176722738184485034180855429956232643885409080113035030867306990202414053345012797073319459464623471190118632640451890749485925209230483470740882926095619047225452138852898379930890115108183907849574753466370822922932813361427954857665940720789991972337844881558557257226818932888832467607813953179334569095119551636531858641887550899767332760326998703576181411322785988968196658265525324187327071120973986136815821818900320864365660844947188201937875227001265277226279412631053295822348888538535152660033993809162601543421213216008875086122328244947880431267997351274703256881348066349802713834226248750574660797858413961622555405318573921207125731787655353839263606142591749102243889634699429702941204009305900838906851449733769580274411857642062229060335822598652652299168082303433236036246464823718305252676974031383087800043673778333888024242550134050637857470672448816812599952556200654743454698696212552405187823545709052419260477232551644587704260575772870456066796851506996086776331477109759533237151320093836067169806643902143069664927144053514610161479533570193091336371554563684772246149939004790498830128554103757338249256412379439854157830528917498512639900106837004677899643887814155662450707590515746638180955375405271746059589472990932411998649867910076832810548517109015925865419753992487418121129369493246810587313846607327999927145814773989736392660867576127157093025739143222882904847541117163281045400088863729609367636353506939207033472732829227965528651544721983783011488390225510902886247813738966523985012174388453873186954528841252235544451792372943010879263670846599117074116606389191953991020605517167353533485552446976599319169972070607706386793460831688394100050665689739755579929004525633161205838942006836854971579083126342268179555573976316960011676529603906062784723185377317958499835593475654333896781546028842622272859792259514772271475063517563439002311766382965585601268938969507659295677612773332337267357099111356456449308986115666328892582883950797152446449273982951796498919058624899384171479371331040948982312637214182354166922288619465293034356009080377221822707013277910134440012994594930866283641261462737564204454061669361314977109611940850486415667894429321275411031870678370492103480713623568346882999106045503198379459101601061865993598773935697233070504202747376332726451207362024606101649951466529656565237908155902829897121231976526712447888545998570427488864156935502563591587164359914920072158499465622565137135746741718146103590999802712446619564315614428801738970727023976238176096090379352550397882770005309056424315914777572349007025482823747566308857666621523007091240456570442102418898363391523962975798596978607800702801560949965125213196346978440477525002922265404883594661090080651683095056581942104004135966173610038555209364242641142019625275915497893019051579019005369669461258332323484003627980117521830847148014508710065991065843384041305977882262937685451126990038263371615217116111134144100708829890267797200294989108881649218852713558723078187170349251332125659555072320090734589824156824623799976032083054257205126144752106503287321266273042579837975419469727298682234121225168305691315218039290428768413757036198322122374339222799924871798172902681565889790993677286777178002379073305886215661489151746114868731083795716663565859898815260930052835231247058048696917792311028826290929959676591487758014299858638162247791127340010832310628163917672048343042985781351606688872320982609478381054090009687461733443012044360012857694769994717915718335880016749512601073701901362832842368648677838025055742131073793913056067220122624215581952548219898225978830332961244788421590190651645944782811545408476329671770322812041571027030874153954868022109739225323024637965277541207820879768716519502838464931932455923003556393963002048351078560570566018723584956579777906323386276720558756096344013295516596265575321089191633658357566870181631061536747777218509754848838449808443922338859662218904981533572692578476404293072047374747400972330139224362709087983377130539490910761947296948837795057694038828309463369819148488751919803679949481975776271349001016140509077928253054025604893876133795784767591915261187926009118280662046358629811839737002896833348642520290920300329070825716210943347925956846301500808295603773861949564282011466154520123002570988317929699373738117240574741564293684584804055841042539647955483408431801641309329148033185824567451257861669660907819629490004850014987531136777951072071845295862532205726075112706041329100224851259787625246328085484284805178523915028319148461653567505611638721973165048608170646237255911034852849089534131088363540249436779786859496705934733456487166210573581383874890677823222172844763423618620767346125785711963109952791875211137309011868366121959371210794802825293713616466646708599876450012403447770564758098700902627877913838776646280469117995429034911563216427763511757772101209419609814822912747560568618770129082857362136035353210179345871022394999952072084523032706186941595481055988922706571758778660113588214569218401299644728232578220653027132720842972696733457425515309861561433493936518603608967329650235267335910123482663517099897402970138043765018467791706990529499885247017404203544622324753078116256992005176438911961110307247748099533173086850334562786138366890789440955081195343763868140172336025301969591226897604029968210756252866755657298616161077215937468667603694768569026601909834883481439493510264840739526345228198415285664527818667375458908976598728688540597532117428967110876631218035990431129762695072225446222250190856259643168826007522606539705058706853555600778744177755115135359788280725665388850945567937515782884016633121667988302990172549864789649712233446265768228271740413593037077329650657610052482795893227917488975431679333940605589686134596790867319965667352828303468714119664802181352263646940158388084622708349169457677329453092744384376862060715696595121303165890928747533766448887230386147714152839960456868817872807234406613808885570295628067358073384554208006412948377690986062803945744166205951153343784217388055392070174584732708927010450541972823842367055344240971258079182096443500877470530244354272263110619576034136603295901829667428637897265135307942915799399847332294248984172481967245065691762919396495229414746174610421257223667596086130329139634166572944350546519486243807861269589663415034199065599079654431449627828859136706633083223985589844548173634606981868037739230806151575385731276145735186298978745713661614896431331576581333318359395130285353998824045733806833356147745147285379847089465301962433722004596749190222294580432266220186023638897944362052500387158463281233566289531924106707691700170863441806919599591602178180169216625836199126394490794347006702232630655034793965344561215477587898575319810000062639704050548074971233470683957370435233967428521118401957736351821980264321489901789932223422456635883206138706224951699065993538925435594263700961752638123103157903142801013360717543908143363108848686145466951473085629625112353339542732979068959057531989771545479876206690845350249738374455457096668255824975466600539727745942317881166841835309243972142942736660279262337764104123319400696685801795030038007316585859882282263567459810244990677937933172878521811037477119718836191739681841451881099377277108267058101532571270260604549256474617992906707834647224304042272863435536184076661131298071091584656140738486338124730867803771035674548566068915394870213020087597010739180467659408757284411561200406750953497580802343505541478078606735841752083774567337513460992804754878858538045984773086144502107416693681776144634364633475499563822570630700185710382398621807013485636371789945671516629203328638325895527478953835162607174104804003972543668000562048296476907589486791085640279024333203355411439060707091023424727728297017745508334214154185718851332731715626537126960911406904918067222135453778570383929555285599003283267494642164097516362397979113384586508689692602990075643865425208299887641939659306547014197511431948743862344371366628558229257966881273474587113526448972332924772442267151146126456143307823308347920682045180031660107507521685489259002130463826456794368944086505165179023024344413306905658953420745198154154616808459257062777807224567438244020132605328139388823146186980476001691900561652089229311666382318556643176542036324979449358128435232558347509139651457397851282120471068343990034111609220138239707503859152463382654044272020941776547149731774571438762833734064129947594145128733584883562860914166783191339125552881448757999234087278327136924757251467112641690530110069166884349773932643063707536933848873500937978686335012415900927486643793170494433603214051405200440552021682689511403479381213486325444770462360224401989067738217703559390049560669294327394545308688747039808009554192421608801652163790132235669361176529906455008709768265546871270852383721508343268871144911138719418405007874698066333493262540754954117917854784210263006906136370255127519456646051939606324854870728618972925486767596877486863050063112584553613687265937523015814203242650900717435332373574762206940765079543246065491111209639113502673715345590739678125488726724141812697386146687406028568998660345514057481640937231799424529548806874707865193855041634730515915333012238853709442133311134726339846268317750634964349535118091150311095526305532876485409525839472538162637978476414783172270920727302738670465154950671038030760866821080673860776747212079172395937267675405399007184809403184496919340950334620338651869049607840605338947988587784142594621795080509739853028863603498584370824138857996272016510452590611731565943887225253143485125085567411423230448730160702605302493537245303699434356484847648822098558605848844485516198996738384386332263688919230014351951555546548870490058619131836636560878568764747142659099340795799412636307266254102291205403612373260877185288658779678392920932835717261128949707658954928015142049311451175839986688053222365781997650583266939963154820160484595145818113975630336451907176832636800867487165338128948679800633959193618297559911377504054233141459528171987366813202666400987316966956361786160768795185349151738402206564180891932872421811105803053813217585899280724760304821061192296612440365082610422986928547009198867696693652285826052817684382711602032233836113950852546473440374416852415860320410520081077483673985645270149507905493957823605980395306657366973721921559795040554207717496470652430316722512548185356406264339862197455639598315543923056051010142872024083731822700991346984249800728415427212443150624951062673698223912755664751229444443345772642470044246616199045911645145961221831326616119853397730426103931759010313116614251731534786102652991184620373631745718041868514025073267903624883071778039064898364152021108548009372957352526316533611076277889302522038669158303187973276511822225423551733396421005639846834486398485456867576390698146864711098258221820635886855812703699804677043137306265088007409519488504194453702871734988318145223828000128720037627878237031757936698949337296868340314131574596750028707908024099742028215081384898087063201450145771902482456239489596377280488850374701762312891872101513836383773447853631328087437596542810601308303976201123477068278622681641620734107344210815590202650232071945898974421594556770353731748721069169987114548279775769224611006640793103727753007885837344473730856959236111496387436332541920457370466774179033923663448409931286730058193077536624705796636433191167749432900215245564588545149673949932254840509952717740455004855913373827481305962539398036749818003260157554317570819719878878785885427410266961623674908955444058051552361239773210988515226344086285862147563744105827384187074641035462666096221057023841994704347066508686388064865488946103698059466617727582006135003977034479314512097958238145923701213251185532415943336945605384609942351731248755978839429509686510247975468198124485156706061122555728321969085458179656008616830968394071278646121257928029046985220316040591075529658765265624737161558224851228790741748841654963427532166195495680607343771003149965994980206152459615062095450285022710952798594167404638006427907253294544302980273839588135316598890091963446781182662534303954244876235962476745983597887883749020698410081265370890891387275190732442677662214169547146322839010172058211804293946123084536649852309233827392534751515599303147136254727641220421777659028923043102299941381564472402930578393393770814632530465134388039683575891284784505272201679305665323739013035859038507649642208461414044191823521462595604613981473878458481954912480340643261995422809895292327932224498789445454507495007616596026929050106998029377242538047107768588063180473421756748075456658781311607257607986761758138885085929134590766148183154672287644741433274209373655891704584641610471259039693867579518092775692800393172784167504647473277492455451055116253086908034419064672312265359875814183915035745816942279791831986221396668425334898222549800824308016836835425562095206136695290468169350764240989422814542738117896580118334634191999127232806248540520897641833332867540441379123299920701563154808643380716126433480341398252556792836824057530884623158671854738497670289355051699377059274460697138502941083736870229230122634301723907113129872674954019558337995270212542396377428616710307272329660553347914406022342721536961923919286822376588579828296831761432406944975869942842359468990150448495871480860372473606944106773148717829788090834392259140489794774661829548556797115627510373357721460042162412738820885061791965953208391127011762112207447925032249662420413598211956353154314394969489353667421754813724830183759743442714285359415511225972995188151421484833193948761763383443694951228058732785141974861152714410660066732935339786105821393900480337547949733772174944685122429665957473309506911990198092598513585104638324884245450946657154439923823746806809697814881347912909348428591438404059730497887701813059008916916220803594769000225932391131153104585458845058797893330299057899328260256722259886470886343801752426945939029157233854571702505053096041624514385324453564245815930235949997581991967555769301815533795066271749772370474277730248089574070831213099819644853222820343460427676478229107505269961710592840056507611318803318672205618078358881415490197203576456469920424381044784277149664198505887563650199814436116642574693607906624198909247773274636379228992690610688949234962415797807474956679119101038820347337164735981884120711531767609815016995007882938373429736705364070654483375894762398310785582098771618028703920349531719767454142840035807532810944731892669857437463665367187861959056680963328040104601194897656061696562039003688698014930908599599923774459011050186722180600539065411906867815921753235657520403641586049061434344521354921651839445524575389278308749801025785280780141180230763507102023264024825678448055979575058568563230730435207989091083575024474767138717510632554014167260989515481771432646201540721492988251602513746687477399320629175671906322118498968389032354778713267193201696113575966614515073958863624772401330394202224118968588965768515352650639699242945418741908718216416382065083737728316393583235567668411878814668626235170090843446793080921025568487253338416166268498399643030173380758622943128111250627756282139444512750090783537347443278095510156447555065135744584198835642755575917105160826201101410838886685490720734687557411459054742892511859185873131764718555851092631771850125973284783270036441440259690031054694576089676194690326531933610140760660608013886054232902459233560924722351730766704462958212422138766838467468572678726916986173492175336464650088727118390297175675305549339561355293335759260244440634001524183087321488546411410717916235356502727504727121714236409825350267921464326595178967264694876776747508017208015105636474477261838696783332185756177189656943054895100079246985216005091337357250593962683104605388164591652800421906819798094331590843992395475254059310877551422056522441543281585029410377191141049290774820138931278986639461069891390098588110410759922418154210344834661783281907641671716425065758727497048289311222820158519161115350057026919506775670107696368563290575377335216204805766841592953442922361936849165669720319302474044723866894433553843182832713046916812177426936726898825407522689303201791331780243756174679979340708014702519309115523399617923110283671541399865285448457552649889876905327744606783145580247837851050329856936153206300051700040112133202609308295280254744598061193856260484431451701207851931418267632646573250655285389075796656099787785213392942955574882453096810375343401315803767552055385033303951773389182245186828258802374127749582234658203450711026304673033653483904888165786688071680631364980066417784681186681973422751765370227930151541338494617231004458308522407101900972878128412585538536872592332819475847820760249999207508221623602521134528452572783466400226392723438276866767754152905497757874735017600049254725611045333927934037756085195281836961568610328096332945107413239444152534837598117452224379064402630300124671032185344077125239483852670448028828569206825060178980767975553131906774613604441840227897948674069901082655971680235929751805375146232873939961228333577710430772366088271519864454945684357432656579320439286842248617336827078475386656905526215224673056196110133381393031865540348678564318750842919636359708982360126918411495692472195588762598137633011007643980375882027422659673909537597391945646492299736202132540025494089643545276342005254985048324460477058125598435471586369320176981098094910008398405098856589453489398225444752450286711636053006561832480122978977931877269765116434550481637481789491185785166482024710952841003165431488462115484474694779688374256922388718376308139378804679422240656073451543255913996280719159756658626960804602484236642423437514966894626234810356664518191769821921666589147950263895917207184682924515900694597054069835093984096386525839354181363518908476621399313572450421176522464338244567819537628329667263555139686839799788406851982545765294353603601342497113598498474771281844079637186942383955410862762062347035604874839072219096647523398073360258666982313149195481826294874982057112650812807096725700991313009232785945673607010325700048092299812836216903226950509083652316143081212134392508861176832792042780965273718995977744207837863740462490091703046336207357826597263640610693078922424247211606907016620130571294953398845902297820535315980953937235367886236968154980876192684984031598100284186059466714698831407868158530281674763829987867741247008291140435818886221914412627962186579673663150062961029849157562485453567729623733263588472231454270124053964791266926856649792065065658580224645177951719601623122968881549475856202004180323695944056757092393085799978491042241313864035097024617142602833000631733494235743194171351659016178593722955446254476891198215125373396699501183631243318526751820814238365187092835224338649218795955539879230909579590091285412562161465386026973083350875542334773371883671331664777440848037601030923620973228825954874862779726759514731023284388583603708495104389337013139725708045619941981988624940420622973190619320610755952476011563015049551573564814637815143959226727386045149950060578348176118929367411085260402187837722238283183473086219186182555069557363314409632162909413573267992757195406374163793630943305907876952689141328190132661258871756801986709021836014075550414517828287062608672898863401205941002713635517719135043086579084913105710838481885084055589531909821097738890336469537464839136122829229381434868906609244193154744000879644375953697080344514890621028376143219531205387130123403777869094111980211238515977303484696186033796589866027149587946212445365937136040854359400457733094314320783573998370296246938327678691943367610108635523357227394277476556039040933285111914563858795448981857354353669038314092023801721228646670682019737336975985163168777279206627284862908070106044442457309759796001481275805499353542740927197134771028671432047999047059574864948903344795127124550359209616670365504036744784164315460872496248382433053918253111963204353932995384649840061484365537476678642141315056415104517344825253666066639084126394894963970500103345394436850063184791027236842008685398107942338201998804092084980358129941813707715711158325475900759246381764853005653170065663856824078653629517144536121128834314918649591993382900355846664897335542543401103350162075304035419951524098946605736390171456371939824045853335377552295649857662985006416844274504389518152767602462792625687524974647198507205251921245131966816209874050079172891549101784494440485894535535818624520439677868774851200961941171788621168674313356140549477495493436969154039317651980109022232432607540709365083490437611610016671669355178505052849651034165624182036254785738213810735538196179459789638524315001146633172081415723210725914393160517055294565445073324532630978337502988132300994332505166118578384175077341836878864249510026394478717094026614889002537743958883326781041172567690704089047710945636590642410902513674013036006432890139938950318448436504377255799368822439280042052121842723413714308181626287917961981622863858377747207416614668195182654798447035783159373340875627976986106037100063242158700885271097137948990104544484186654931474463866135056690326842699472899486511498973547497339785474000091739228607845461240350303157140971129666957738143897457623168799580838828491411583413171286424615766569876711327129440719768274333371199873434165443575118162103127701597709143041984131836054928629423923378614214392367708473750187285574151302566262486409881642941916093545274585968509955843236253849474154715140669298691888915709033376364856988674929228931525370560022906552813247702847783810358911718791454009464195816637584017845964457009372181746927435543331358166698489790223419060102601673617255553843763133852922445521731750520722640629846162264561620918128390760739602446913493511758038682704404491105832156491210119475519268473662600357396593379971583595379981851918109856949812213060037878684831628938135448961540538564284126080881115470754874942944974562846956391777066849952017569271005381357780689602720722003648860210223913945193662711611172424094689779673469445335629391360443958284080946402748223900186313843464207658474135092604079853671781464868166998599218129066239746671450857676431197156231770898487697019942297336686634855403591744984356270152877729126567759552064095232049032460415002837284447891293682465368128718729896275290051357072828387903693651082763076225601272231072392212289273969812496176277153571522686356558428187250771089472026201612962854927782358526854535773818245154008335939191985560277582075228118809866712744399318600769480152944223610794557542419500490317225824780389631534372643700746763628290780605326911024361210057273073802244928183411432147628465898580448949286721494372681792639032019535411571770929841083931252627421482683978446392549788921723905618351758515389690253995079498601203325796169132350335867230769767954441315309907656588206672411139812349140651372660533176305179197018701415949200182376668365623018827599782681007437956662200522786274571956507527987275256251299416846489011082660791151960531779567809895605593704663936962233268025873294017178926682372712244582523860276267678627697199896732094388659826281970758607933485308233369468552419044805039578370377463744023800787549236718657059383885456177266462203987704898283120248872540713858903992934476226535698163914003574233165452683824785055276247389620029953606948303211552737367072734789423583234376596745487656506104716834605429910868267069186347285887671318552787007563176675190162418185264210575086429958633996982916345685618626044880727782348926671287476118547354605491478844064276655445743606848996105680700270091656621000506535307765595754358729118580645074513539345899095578346485638083958383901359183784619879476661891496497973337664530850187075838865773080763300326402047257826854812124527471665131183749201951986062832097499909087393701641150351604886042089222298209352928740407688068410481020112682709333360458784083852342066607612769101395459936601031270689247322222340143659369452829141804401123281597509106388000884035586547258384216762586341273269377180732786263230035260427265054848911122100717226234511108137416003216350785919711653793991616468946129509241803081314389637324603157173228552279484815850746558449908129137102924451938916258743379100931345991932928927182554157395294590669442120390882822620905701766850170601721010196553132255527143093216359907878651574051430666205638687463643026839991957598708978895733563644626099334884695440031517902821064908085628704860758447653455980235389897435670112864955390036934232534958503818450375684097314451100186420564508072218123135594944577059937426679718671737081764465574339880234949395758170099638403156321024695292431904087197096502636081857382642747255362470242695271975476972285240952435784489473283197097342939919380030371379875638163748202311752590789999497581566785778214856974269720904155919148307610487609889890208525860870007660294587148891417489335518726672532385838036310244092448300490947389667562198990363160874569287956743401026062561397312833809058870136870495548543899191869992016404442275984840615913226242821357551397961247279524066130673071641952711907317952408830337013442091861355609444810298293301398421436848192354610237119289646695912518183025199092619936833258547520246770279217268702930550889916906541714858373403788680763517492073494824604009024098061435229909650606227587769199042614494295938487781225951407577019316915871720633508342556226395162106595326911421002817524120426389413660248772696908421773163162221090381967636606555578247707186026468847981362668360823098397732402151781108762065480831848612298751022075010421641766772805859999698227194479980492439488430664853869916328246783778565963291520218399420219196761016339598865168008266629409445117710541611291555160098207528616637678793990067795764449624321974392919680497607249349372494949581818654354696198474934579166381985784663608613605797693663019383644448135832736833339084599952993745754003878995690595034104569831081035494250568901785854449430699159596688261794925503637793828124930269752649119241801042086920033803683252798291444431163575961284484809208841496590318850615708801999772233352719723292174054158607380491246271754751174976320244335429013937659064805466074684114204102222471269861838568844794425030186687450263751545975048608904191417385695400762181223278496753758277348462840109841594995295210879249893732279380619472767993220559678327252364250722356412776904079970878665178023474975668686429725910040458053427665698492007729283052764730291557853264577755438904509880480996817899551947416067033264759875047452539318905298684524659544725465754144558437570884670734127921054485711467480190379798271444339392564964307031975969729391228397692121849545308660223786577164064623888594706210631293262242104906457051621916055510046401420894121081893191732639458516674787213148567395456618661591818139916724471192712059445731599895584289265302177636367659694097312964002766429876753468018458717813831283837161785660787991329146544631890411631982533259748453515130944301098397340030468437093027184709954566075847341737657720447799422233504182732070230538638440456195988964961827331673862418489050875669553240906687501227676906488621488610320389664514550520793581315079994466711904121453861800372452145040181729102359751656897729959320828448319309883189260236648423870946754892054705171966265148310815003739808717387166700383807184608535910527196717514676236772799963460367888571872881232896533069725175859329158846590279239062156187298027303931372006036776264202845964387741666369846812909186455305583225295479846928210131574729557251610598484337471646714860897963753447150618967758935070598524311658280490242682338656072704810550764194108336819779059040306012238976939568859865829066704039839928609746493751630724022521951146761114078658603793061569804849973847705198888972258206624604072526726346262970200427311609311578554644593391465514664532485545178340427550329249886880065297791874439433364544491773276909905544177853906630131020381248006166150024736375505631103897057023545312297437869960647268922831538587601315476914949306093849184450127391782792063372298827279151977245000926673416498764396180559944129630196499611302936896875915083288804983477245982649055747760569475511189243996797072352658305874845732077647988514605186185292632198085294982075933295466774281263141649534596196178140428137843717753461095034449783587190680798135267574480286918926757129385334892725372940438749861061058388757031087549616510131550588989741578692717786269431659650303479859418603804159608459147277084070529751602151902773155570430418729990469035142339101109273465239072629876670250252313012306398197850552180638234924488406615205788768667057646075007290488680433702725841785874014345909453624140251796273323184432510105696795342630283569394987661794839830643450222342072746753998703120614352244685187457482614955256528891990438999029684293903999982284251245570137931317098799986099020710685254730409476483674728231807677721636014250344364813803372773299734710286015886261218516709508517688549326016381305444370807935444424182559065354994431768193399991909802567193918732257515524894773319526023163390799918137918854940512231083355380075449835415096928536606135654105409748570602270935219045038900518917116850879980953987583177760884443335855970277422372281567297705862588115022384935199009647315203293109845903039995971726701907535948996320230526762605345597478755173224771029632578736722599690959272027829059619150699159274816762073632663916767400166970955260002803238184870508986686625125630084547927602143610128254356827921474870650668688720778378158671717386221234084239045649063633459033667044385780820675609561442221032766947699077619746998136790735830309323933992471993014864521306346027804368001524979622740738213252678690350468963801811878420798523800190149352527265604358089322912214074576360794319658860279524564506073273254872557437633759209596855839470356530352727179716320691039271028639569078849109047194263737036258566467357659128141900676186595540912232913013974158774997331901332674285493830338798478309684051257916806900078606672342906136210807324641923779078929113654210851947176764087543252145480260071541297357933888195632903017259013440456291811867572303069993389972666607366056861478691301054013394852239226623572565313509220074578381634138012769425035914057764027737392509332017336999879775635890158996126862299458455694284799319451012944621160346472195047668672440716738771544323945938687553490550114150196666933749899191594116398481321420153983022065444343712626925735777283331327234235308962491542204224523697620290303503136339072165475742186900338574130842528758145447740256439849706335408062875420248967517336209799369753261584425677954172962010353977991255671633519422568796187089501206439425954312279528215183697348620465339415475167556556950843915698439623532398423334978661701044623091087092114188433918648036985373066585623657250000299894999287443508678956937408916348244706054910010222917757185189413617664949858242124917898040257289512662072330386837626446796752764647131438798513124246310112090659988579345814962003973912900200414523519838289027865512747808784748537872624970090800553525619395512252796973466221647853728292213825849281904275641062761742477804361405125489351118405414039720917495560648607757217964674975466248372041002823924413565299302513968353651080159967567515145028392319189631203251381960540886211889885871867077633215607599683833090434888793948770876322242824121858116771649111851899236796863895156137644138245785548719085105882739907238148792631430328597539796220439732409337508369423581018527409911201670149934306991654829235404396515525610004697207227548635055835478519164094080963303573750293785859086444190708240651990514405935406551518892966062347192471639944430297653244808469893105842730204042472666273014750801292477138576351674495095744155748662610536285094471038003099971020173904551880088835801239125393052411748243274141180024563656222872115193062063255795357003440197339679991538384506652873580780183272470512006042036496036277720530370689611696702700903346424406733418076211909145101142749588694319975950735079934015458884057665102391222545071167660103853883071539239592039217091767022253325476119012730301502284653145921882785783429147956960442394102882844212535011168271284270839936026518854181786613496956770253080351356071614864805932578306444676720765679131909491754890722060322131194323643770567333450701548818443491049950669785001359240693512461191486221587870134438991747123405473890996641616395216096030250619598603820990715303199611129851318670984323115594671691772493047796660558695068160370074508224891833845979678962396533598415236718443350287242413194779537695520875315745774254630173077735717278081115422227726236943251114373702662823357177867261700043986451386569029854809813529841811369327158172985687996731047884340446529860628343458520186700157804792857864108332345952284029830284746131366490717062957755583422181008695876116495701765380105157937194340331742453016132081979821838913694190228863329830676261662292175960654654416458458453921064932647222163677183242173657582941447497789240481447805612604939565340830977932746254358217025574823634392885750784111042220794975941980469673995765122589317699011920479737824898748830854974287677318197015512136171594123982594408264028669570973582213783460786247103438830397139990177696365424059270460634085335432928278448471338297622421693802422418266203712605952470244575183533933273400073273733317821522814818479242259020856637078383815009121660878857885671955120572104568222494178912844901954858333958032550749699920735083957889096813483976219502563230584860342905349001272098819087726834314880371448071781073273397855775238242504935496549195182086526935681135062777649092175871148200198372120827265292400874330085158522208634511448696149102367756272747411422916824500543204128213653026312307038362385996472365828466667002728881637653592405939901234872289577604702561077751249386325639776232661205225987298594389159116834077552243921130327612433143326511798409351469776039496513720644698722144795939296477006251234296345093553751040094658026246169998854198532271506199295490182096831091823913000004138521666109873840772673468378160151824418524057203610893801023684779121919404955576338295463561921906853937859993891468027764927725138744299734440455306937809461113477537193371296294916255400579371677933716015898946055344184644592280581892483024564290046751398880959548125161485067858037586961489513135198920008314815940142549355107936666882502902168580492811938353657232072664689302216094524018789727514193659390767894362978232605623220248911246091683765345202331275084699766119000755538263289164448846185320049616919603688834146016537258458712655260036994641982785046134664195337999222152174380761419728549423161846333411223877451180597515345360657448674498942658229325605517018637205176912132860531864401491440114063912214224191957420285027203521945207051140073355256628806828245774133186863627944754100366504827979632007345777301290376853137896221079822587677895718220423380877069865542769506893269086811262145450863914944457029700925971017586775956437307109515599983849330447767271734272043996806577950879583956666605023616681439755319525277097128156869226777039073115536173235063604220159708158905197034509205096185968964798484357887182185920958022308168535204292984894608927821477631732820581770381256335704429415012859066185490162856192912918081822889777037601680590412276363873399630145539204570027859271434563444583682943897591174167424447823496389636797078898314997417066686384095454928378238884807785043488753844142357173265709565561571465045859463621301667697637691722325840666612319482085023487516802922811412204046876159893459821804438986871147806969393923183998922388073849362796819539970583776239719799720631080983863306156893112893226457110693429966364176130105144459368918414449295661038481268751463881136101758262837420999617975290352409933765909409238317894442696891363182386826033514867966368026506620331947187441269859002554142225131225858627216702625843374953925664795218628565879257776849718916077480772899635953572334113289931184603330244355085136022136113302671078867437916119777351704707713492626646985475761163440833595766327115951010197290917694108104630171405201845665463915314002137347627692669115180465888987952546776551741943673682814436180270133098998901376335313201066494537789948749965645563103658867551149060027992330932888075626806721117510412296180797680265035708508078043360440866226337104432719367729063699375414933411385652737460190215521891225851131736891104671873857466575914109497253970473080098633105687599396862386547993448235654330396593241184773199202450416025414412255095862823290004069803040249475156694748103941543295213860841692156223910270939378105837845583482008438553276781567724587528169749097600979000601032082121094818770866824798816280129102641991126179710550734917671430646656437460404697019660913722326519818640157155417142049601589249118348933520611127985920759739382391301344232646815092458213660504807204197458863978474035472613211391746823371757518994826467597385323419074354443658842031309827604555209221893298158212682857086203027198847376417943290398417425313630993990890300796123421280219092831350123530248364349354811823279071512027132804570249327485032208844999722027173907124102396339222507040262463175480814769872240218335436828014287290333155422564016351455265631506672864660613232483726699089318006795450421618914326430965041650207324494167510642609388604221876138233038545031247300934426918871948756312177790099290697565034542915197992484865628836581798633849533070464051345640296714275086255511650639354714928079448834809700775416519162250088953132470476864013110088652242070700443644374068192074166041157406269940238779921136172886348419732142220537136153750584788600328847272464395855005381022938539395514704864088284537009212678223657976865039220993012998838074238075879708188745870942116939688520806652306145018935592339761691643888311923763515444269267672913946243811466440635088772540849755555985651485403429559753237735447841470646380450123611833854537104727132113273731403607215079195693880531414014072352814385129112296483234773249223408593026391744854301220016801669062734614801447865227898610918707001749205498098287675549676210191404479494370184984439040253593671255670730228145768642366337871488078177989923658469630467753750636042208902117222586975272141255894766595957096345923153665355160753530649999691337357258078766640594857332532117238370343754135958733089223537994300880264803536205203885814466209395759113741124815236388663386869521480087313207072799603664372619774386050447685163658847498006659182478654222940289000781211919872138887435618549476577079741657256664569856582425323898902218667755387027621099491728892622724301112274505098026783806621201938546708887007715937146064563135745546362808847636782898306737196407060116685766598115151694198601826755333787914888446778829734426934309634257586554454053053482067521448851622347301315888218457725244030758101943135988147571581033003385273308934260740367831428931719568390918986287716729188444897999657999719963253559458724495077306945380258758072802983469208450314044929050308792586243200175757288475304763973162271354319815690310514672867267017943246317679077672804191798617932314224707320252011327464984835628474237904209606842117330343386134329710076108041774118813676927148927948745223346680770146396449731169785116350856913351794583731153821014049787289689634237960353092130764168316315223619292822766320104982751683215575421057827034073738115362644281238327633044412959422753059540016929624172206258388100024268483068805826388474595250708757571283409956410516550624483804241253271447524940468666143314295685600761531097139957626712475607257661232653135264357989880547190239277637789687484566068510905076241456113676956872413606897675640722330683844825671243072540732095499473520889984307136148316004561058971625188258850875717049626950609711073122119845957213094590407461648555879260841020570572417685636484157829239721032923705386032385749061362423103173172199713951802162652591006150029452651689340501379893982377324004133446904137808192741748095769716544409409962745656148493281694251783797728000951933739452374383160546307413107397644694943674842461946338032851364596328307529242833896725484822169793898587354952543982612742285388390992157390230149897846073081797050708965003846461180140321222811931067732490059616693447360616867287897978236677322454876469840804767704026954901644686485857653806320018035819932153541122439746157714332248724629339449070592190307141842534609972560070774015937935756751165519994033587629663149367571351183036144093599186382550288042182378663799905650286494725783730162728599126293447767652061504825215967904531164966806501077768063602506371821196139456632032672936601599731330178407973115314835379207426417216838740652086416041364217864964195556897217305901994698899458468112297793735537733199182576199397246501150369163104590067618280921364485995068926054012065201444742736750685696087576617971844283982922474193640094272549483597493582915843495194802111089137793345891937753738966402684297788834474811748991180048031758555203969117721927469780386664434282567323323900969705745098267660058672893459651030117897238406688743838155583549327972147213853680639397501859656132621948413349476030514720738856034302879925078242311536357498747853672096451241532800495856283669408791302790295798666294357986962856261187588790784570525254958820740964257919291069895358151745390047542912231322821461493335457336706343245959863164279236373491547530463568198111934497112022679576339942687266533760078994833393102285330322003475172614875418288063302341435791634444661341136808596057657606525474049368389112967314723078242838093732637432532871858492952595001107760471333198381993868954952878194157169123158791576206589900485304363655590418190803161100278660993772397307645067420485629474290968573973661595661826815554162669353674120757941800488090899260319820619918720778414010604927726918606473615254325408183016724585304993811908160574060985016372259572797971942693597373410618923046449498766964576063875173203483193418684214532335220434294113580875462540241060545932386058109716198034982372492727791441288587469905270179405584116769095617338940251692221532458715848056397029213900795473630377627598254356863815784348279882775330185042937174901458067949758074811218890240838008985156651031689822342221387999251594372796141691047432923925284813244382753293278644651789067432003713288526054450223058083814981990734256217986935125920510273121174266334475834015382104904119413987185782867392494901572692808509204095586577656705079062476892025834648629371567800446790339948098301938880588307948614513708458520103726963642517365007648310309568662285399402941215499512247593251412727323117601622107580360854406967280096030463078902135137528608545007048948017657844648322600182278440891238009676102994975349380715424658131123524701238770357349641142396543253287950425431417171197151505898752024196636597737702664291142900595873616749371911213221322981928014184081819773388133611181267482445959758731925064147938651198063252090784789048697833742156666833060746494775866213991169997445187650136186196455451327636267794248337702223823664116638522396443957371768739369602047822551446880819220908245894834326621557561316293189210044772341036030037569879114718949501729745988903653586672882566312148153602074669059723449665749536758542789801724010368796753967050352257076340752063174512054109425062406628621710416803376206059102560732455425457502259710820228117921214755200121326023889069391343519160962748943434449241569308199879630519863873620323462847264814752810327152736092775869422177250575314908406682428441908613786444280565509662169187848259863582912304549045084075787179009971907927013847014043606939976433114523957506331746835744881121056032493664895504086627044500902035533598265411014629251483508003662361114864937364302819970129472915271820239298598119416561469663651994869284276151848511763706029156858566040410878962284677075504507280056745905731315058710095472052316178847561663553615107598420709060997645553506006065411906349159586951229881629301346602657513666028404718849448829170543797421554624712914904379164721049061744110728640485944441922019471610665397941581569322466100776595694078809150506891915440414496846796431875756216502808400705546809505139895922819339042527701559612536543815963744247117852979036753885284440389857034899153576944403802277372173727059883759174198409148368052204413455519077850308177448311391925734871147836024326892962057734482647708602346153178437602131173132250346749235003818655181339756378150025291927385008435222524882154935970168205681550821427678186390245705277915989195668744647557077993276592322389730191248539631826467056852740834666403569230708967803530224067207755144743928288051881311978759892759790291474265304922939067924269617939657053085900580805661525902496987731232915000248588186919075094844242466060436990768619504152779316895532874903110111433206581338839302940365046539540512221755818558712769163319079205289320478763161285080393146594913960537401341435007508063428482174735277391596018333646493645046116978045874919980352486118211489976493217724518190129835350610695643124654115692919389650842221835572033420003007972394678929121659690621095928941145597021319005249171839636845936294107925532542273885274091447950432657906293412913420107110744509804007042269201954045234815571853432908031886606580710651466483164471786864295715116906369460259377517054355707822766006261620049109395344073519079889555983544477266395725672166240256088998233280280011512510058957016454950768892555423814358937285558821155814587570888531261190988900344495546062118990997237709807612595682113231250746577188637581700805204625192782887761751237305032956834186529870113774225376859918948208087447796063819931365097459034822980595384761532811503068309941473337625951892443454178241734674143707993877842787766887416164879894848744382970571694066596026383141308453222582016523529551779150582448337926071120055150219957023333635457574212939291329127546079904094469422121194143184870645872603285923460533267169622901510929487425082307124462207794706567086272292457870550840109891623401806283943911338217468678820752295188157244199447976611950354510428106537295501825122929492130880026764874012302202175943866327479907371316295037130261508525941119236989841626955136246464832053348368375308783826947418225586941715212772126249460494136894565236954060318455536486071594265684505649662429185032958678381594062250256286114390551631776866589325223215081336068495611752942032451271596665693667221487105258793338585176938252763246046628777329087972895011703645013368178959947659250699307475264889961151536472054697165331544500522671947668997654749613632722255353905279268053020563244031969743823439871872714708885748129357689421301860874413869461949673701263588897302079603634326500722095430133747814382632844103034140074156682989062992681157884268564973439502760674472278803980601067266675551526026623658847870145341127388614968017171665638890475903854023650643574731853799127206554370869936879393274614140106173283282915956143050494421290349012933253225880312281959474221407141015891967790054091199898965794162128575817092315032080413589299328287635653655684763401566813171017571967185349054737784269142755872457268976263757698416353999908515813741473802436733493679805978965082352853975886183494089371055850502575309409411838876867531275123879503637368890163530380752772603109420943815979290196780067252283816636188562410752478061483815708885961999325360591436095185617875262470840529926655897418172407610810340715930637153328710403297482946499656953592381376328090156018589554324328977544041832301513842293015291643634514677894560476714940372955772577394990441239770711744411920235753738205523773766652587287150102332058442365377769835437592600453105394305191729087368843078913894538792497813863348686548272786232961097142932640655585866636441011287121914223819926801417921497952685615653230683390002724489419354535596322123428357606116835239419872687649053407709748392218710841765616012429693930589927692648820542631820403863579541427979287777559868891411171783463512662295139165743595148047617580820742273494773855940015499400491798318280730267535575781012765824312691957764697438587624803803834016231761543782219978102668040734940524988179650460395842508342507136159229455238051229763988746678086474675236768499217274173185523268501882337944727673081492949546581487194459591100497948333384274008022187572008735232175988718159820430231700894336799507612155022961066511072438040124375012880652103119358746497650996305153164649827998903470965067127639745115476780541463591198510410828554090273052713421220281278498725101050366397999963893015410948466531979044339682970136112561537425229450274804543773358923524923151936416047017524353820676787321199664221005136329464022381343835720071348668610342839910953213155341944125639411591754498994590847850088026770209102948105187366827669733216607288576053829341284747018092760703085332690214816947493059238645191882831393416157060885533975598670769304278356840440743656483961423170292179893974409059232077414817021658180276340087626501291015415572914872058549689073036368569705843333581919473047331277005497277420239300422581972453527271706254904553689605694106299726779025313846804991918087841343021802929507931451853250482703874509340282612289084935362774174267311126963826849845993569593192159764118685452099789445473643905505556361627379547052714834231783933750288027602428993351419947360971998927651315401739781662739845517916905602218786214017360084731774504531673821433075781651817038678032944445754004844563821797854701396195672474803654661561305391066223791025093051911756691681711973181478874672470016828847309024012044472371134058167205852563691993663720909129431034153714996134164884560919121392593905137282856576080350912642829401185944262694748078664355636704675988275970278489465054874757136762808535075808640206726771160209969939788414073472325693668886377637008011135295238057131733699575528875725031129926346839635097114641251964720560806686425302401284941379127709682486367954158834420145893941668612667411452483756391894816731308247758767190348926066352611730174837396563171667596820961237910919589348589400410405007767313335655638178063159705116999876748443318636374603387910490770820603713077732202804555458270772839916719691294335163664026588700647468142659123401967530140201248717407505235587539858204205040268168525074598780315177531239118694170621231515320251004255306552424594199822165396127480576015913948634839596220014847687018034466351813050167803848429211907692545290093401349417549134342610662855659039194395558520151264419388939263882754918499197254810077284176872665047008941694829117163596214717254140433144204794501218065422668641531494494497496040853547909249427854796004219872052817511130292087318606886059621381121130641236722466051430700093786507622672477695866572715922314553434797080068198506779926366707512184412472469794341507704723909448066373620585540094832825746451283160243647353954365846460123969220727589004846278080215203667743300840810550118502182194839205599827478837204934397070196880800903477099854146677570702667431409295263871598748115668332068142401717074690128704652032027704239475131270861174510054358021853416916788055724188512736038686926387773664422823947561769160319974154315606089577189040383703134136054549314972814199257694475434853563487815928083997594081679866344500174365143535909717958437257590259405378206718117192649380629280293192814849934674683604954299884069938279184727320735086209703047824976586467389952014436567723173938155279110880587098294819290953136961919342070761633285933558377892633960526499969877948071694012776908594174088971221884135268097191865960250833110984083459864368722937750100494197985381748649984588494877458334657099242938997677963030029442005924525552936735824117344792465549512789219688465205396990679953879648710303401502591763355762442838604972803769016490384473714612524597638612186060191680171837335210238643641023198698145065315132496905834985083961311433136836754044160057042761012299546697688816100203245315289703911102463823054794088511245635475897865102969014836051855946089154653158490329047068422682260501960601772501908924289468865031416959610248650305922541690645185496422338040925954846440891517376484665670313957568568958801878577290050294718687513203876762344553141613562357158497063981629363499867703977593394349568531080395209664200921880408393848641499757149921481632242117792624984413972065484186211398457820256764877448326203297642775164399110034442746801174893939401387768556163629576216941869601078938889460561763874475564301436729465513397372191891486852464867204348962823056167435724359601631996232874353691061284324110348524988405706469330163049729147674190813243266358138676330874577774606529685071224457637745365945240394331993973059616534640512948961059786349058306494258229766742114179542086684808249648209979134582382628988781012685670758032515320734254353926658208344477449601736274569535021160861920714476595614937867831212385217063077996075505593191505243549769093915432392374277327026632965512818134022198941248023686572488977049352426616928071160057286120968313143870504743788172296227674999040301124117760333134891412730915762858372339605547345982380369890648477219379932604573460319730571534119305063575250294385421666316662790405675743252813250921108439363992388669315167748503115840857610744777088086241593771288224245251144533645841888574282608385899132747587751448006412694058515564613980295157633069123210179893875185722980822425757264309431168452797166884624045950561489507729998381462095008219064894072687762154091992857768981594864145180239276047720558524529340807371573198269102256944273633994107086852523568655012383686544876043538954117021231628730984678940679040456452575628890118328463677939501362825630097471864402272477685345195690333756566622734810110008697478074568467133761253994057435756427437971998157868299359949502577767432814838425784550669422599158745979530720733087306680945332438315305655850069797806290044628176337886746555821923257913049542846273161336946926946936594178899542700067947168671250054175552940059282489163140879479312356549996340574290702207974632382107063532639454211696925923009308942298656457301171317622109238365686006959903142490285261928801421692822688248008541728446279549310004316307076751975042618020861723099300593996927064980687313322713662939751795038125974769470543703935199136486538774310928800367371073581165256545747508701730854526533330780689974850507515504619247109297514160096201948383156965695093846467930144104061557894229075365659857192528717547748133354072929458812623055987344542678239755106172987313065443466353122434129600345725115140894250238935134231841853114455334549984720103047165716932867866001945388068117179096119637898713938940537896349743846036046850822884017601631530401882112993044848890955765771708730602884500747124769031519852162526341697323702131012226668511301797507730525390584592739212040011736239903752143306573117700440034613811497910992819696034674770784899441661852419806834540327941009079381793151455750983033077796029036099147248143255672243453223441100255296489882245427829866793383876791117578010989439516353446246130665747037292905169680465937639168230667029586682495304001379878246402360725039191533100044607198187976181507524534152453625705577541976778292453447217158993569496915941502205055663383582407646513112048521040035562260135750203238749957101719369642184121228822604784301216917226188401473217627339577109938112139112751098166162330709113405814212748949411702869616896322270607968797251108464483573983797261396242943356296514264396953316701095071606688846947515539416304350013273455855593377325364172069033064030528223203995963275995528127328730326633255025762366492457560208318334505305950991789149788188138742788119489500828574978872181514746819144716803190885646731570428141676356495267240036572446730410492466793668799241342266572290691222483635797367339022596075092305501699261694148295659167069686078006713030523766591067343458121396319874798812807418838991750140109656129676115210301139537851325864949914125826449550307673310228725379979732240782723912553100141144211133396618965111797821653001320217577099529638022040061959860795983410317653601609733221920738033597540323770140540509073681147794276070149288843391809176087298469115550635681336409623227157320142285881988217981643075135441418462530706355636862928579936239186275364814314094835853991739195814393654194743826240525092266127694388416794617262820900451276620848356061100390175209741381072409795335184806066357907136675892581897865219817811229872808944420164786154812684522470070997188439659201311539716729287845072180088935967674211867948756013455418100309973797603343495988363295688382326149022050126331509918939445364568946495682973985911690716662164487523356951955170410101908642182364195848783312702257862175999110956462224623093994134425378832589357137302071556163509436251492526684675948952269806929471586698848502400845548821752802314340297048762132685572737832167851773243887526914086447532910550375250808289500622755993062745765694196360317197665305470018231506603335618455820302194702574259268065982457128729554501017583248540966989259054592047646050826473075420360034447005099141634164256990953508229804915205526798936741740313878776874022895844692000456468080998642903452276080924171637958723739512073177866065706053658197440041148591628374482002757496360817112953538841608717908457968802098737844944475092511925757167637927825445978802420661342916510703037883009662379694068766927922928198562139051533010046298192882934453169387086828632031401858369440124051567646076233909773655165889392679595221596146424428221391335134280481252939340047672509390890360336705467704130279537815194747656070049004651414971669773500623897135670750557908664760747224752727047391268102606747048362444377525174283078802158805873524942537442892133493002939867474636566602076895678602508802484924895352021684166971410053354407341448942715435028914615874197592835679446794945757707879642680152551004545309460703109514983160964916888023196476612240361157238838635069114102835289513213798598037111127583121898386798857067383013539831372855610478641118397409032509105554966381931945975437809063018351810771451952620181754679789933525961292027794164492456520531635090222948960519004385542159627906065850721484225056727910913527993779514366405744776270599297875709351910270640311369909152150595421506382843931355504889475906259044878668116346558872173839632805655475400724185057456138347816533297584070776680102281524162400915133028460290405683378197489347302194539444262422167889106178956278494311591143792333775654786280877592876981189878497915167471882614973231140492602352336682245110687916265265489221179586708471223725939521184526407574865593499953495358324198564239667519718732164368940025556512361932894185776643160123061608688006955631507225706138550766662060335723887777880278640697351882716768911952085573638484791510326517417184389781293632261326397561599329131879512096571361389779316222481246618135907843657594634023938704600086418878551324915142102936338912096648965957705738897072356471334317944685441356587354869603563261503624550411596386979396681535082550771477119753166400676455572908686860692293131151780875241644061871444569962247418078090551586059979770681923435471618040404369032788142718440594037804532442776213555112914078095570746768321780837580269643878631853860841047370122929539710302118491875331369860065285668175907607505575979238890169120430415570253544603890157570917546330681955037114322131463586223455561511994548570724625640833287730763427355689999524145208528259983180670358396044695673811032190222816109684849544192061759141803829442446352828461369791338763022832854599378494333418371325886787262875106676323670656845192854200476110184413254967199293737812816164093356381962245021164715544890621198201701808324112435925930900151687099459339490835791252826314494983643643787808993629833083034446242734374123377048090214064041787079946978225972396315476507066271386585085758897902683945222130632771761333044723274041569255433270142014780316585275317648455239194558704005622219501176472933885278823032094059734941138973909973819083251592131985920496469023916679453441186942119612140687028109088140037853111326654441958121258844564029623216192461613012424375094851924562372268240429373062993996981126865573868957004655590869117587743188596331185971461663972563812011236611529034368627118501394868710645388226759388797510460711453032078122727146929579058315099142751872549910373200808830688861062840457722034502385732946208175355305048885044863498398812875608872724220516665583731214603678826268182870214533976838512263161376167282440745698023352608832236892362381833324622934051382193572479460435922440756838088641825125551923007049863000376112594510545115132096422150352855181984576229690691171392382102100000930855864905492505472420545679248211039747538476846376275585432732028841608712614926558611273612593845500300644029462422676229697265667518045291884679261806433155528570471877339017244258147237281610811468645422871241866563039324617125630484303593396696268500329119326247574819232399533791035252378550650750010876244362610425213810687285891997730816738223854792219287017059826963722287920413376671366607043166984951024017098052246336218071497043803334446435963755632473717686596072729937966353440842196996047862436321960651744690893934309197302078030400387865440097291291128925931787910659865617686278886889014579079982420111151959541761343345889347318243943544385694590319884887372528865205437092412562913065430087090168268190708741943633838250925369761984328297683103639095270066924667920265721135917858500899861866681050880462829292351031527630954914028772000507096912025310647260628854766943159734286537166119338696765447573740504078927596728710916178499751175762772184367819670253643501969216728056799267602562700998679895376574001480561357259599866594728336851929019173707437301071238788162868483708866126232315292328970950499563798993528527122663371266139650981978648398189005281548186133738114776524340636942758344485854316959911041820876261241309348133325331696483374653132756248498535147305773503371553744419248025366767410775250600229129840010533688723274126625056123094269964750512525198950895928549606890692198010447569338698100611195962754113082989179543018862581443979146837962460735018747086517065258652594198919360658055321558796220292150774112367140345367415025985868557823843047497821112840447846227414959397013140918654349238565480151963375659662548799867895727120765212908788607642951798319864443894135443621402517418181925289533787222189837965741718121279942562132548707000965280339100061071233054815018506043754409319549339226162253429452748108892668238480299464242789500012530796769001645299617091454386986573502531143315264243687277134916856016363902516031591689716218670268345704440667240912323056339282602754929312081059769474603488354638827589657276864353953098207188041091767165656875785398929962477309516458444641258623782602599928588628272682927282914727284438084294100605749518088037602052393418098115265922561663055377980630171356824096564421275379657786297896918076342992015211894327489462976785771599339807871937350378857998978697513455819744683135505632801832282356324392428505577256534847308528851972585170388219805352334757080561744731573426130360087079088569797069844717230232005063723494816794092780059864265573480189802902695910628398698677733740733723652717045266404321822339726440731787655279973659450660076121979017983402685099353930622824941161159453494050395028535430184414777128990404446371716471291096532142216393510252546916151761732036651894184865733729874925345574483520339465390724234067736506633689531499806418478365550028434157445971951495455544961400895362242578557066491716122023345918939909041324295950453950419985864407383788365201992188740935854032627945126201367003086660483566242930747456226719776679512121529395056305776309772117772890882653247876751994034185366922998791877931287145154063423792696761258959564164320796702567606198058784482028686250817675145246051333264425298747300658061513110661308402342857330621089694604661136756018599479902482385936770059844812508921998511566146043487877571681481703854596081503475693418626120095005759065811761343727490154533420382304953065075220898997079992711553005737021514818202524542177991130550385686795743290364359891748017992477115746632737069951554517625670265854745437030501225574192731069155403538643781411662912578658885176797531183188007517522326173219694059432560169548659516622644150519210178959146399626714041929664448231196295514724107608119854711346865163537129392003229345508884800904011260945031075058246090640556880733178978908645300338926814920077284268167438564099503968182711395843988798029678693698828934308522600441040352953695145680141013945798949605276426417945769950683420604375159994784183709600246049517790254255880825868901732732765244673206094218852703645311345432761829877946022429825162716068412343862684678497335226817788843032061845363963513952765989301617061956759232422232215110547716832380328266960602314268637468955727282266707336776161330956640688933555470791909008374077381040525422167241913010668441781260186094031330435594643283893920840183853659571396155150139022613047975796967950532520117480997399249196713447229614891512980180385488699610344424790301316620699583413716439693226161707498137516194782854441466141286667003553926869376521031834909086383069053250964261079091140054164209889115514309869842326355023368697159972726864179019556316166825228985040878075953325363101456455152569204166689705414420433470680489710610535055671212056257785775337581683774336711166105561458283818800451574332245801346641465377539521240920864673009379277027887811660991823249926267542190824458139828085807001560943279358536078175936849070532093492708306371934133549574998726269734777290534453192962423551888999654380415639533636928415560188909675487039690590993713871927052431293933510466155365996345693148215056910926477377356612231784866776526770484309739600218850003609101426139270151542605947971969994136908327115472778203422148634860982377980618509664567777923114259599802114504730681643515708628673140493390169449380197863793519973907873939604369857756685847615333664428728955883921115373955335358649289792067646092926648861902652122845726062496606853101528442372720097359491845815308876134438391836711536433242623809271760974487515767842709858097757483403324558925325122960508244300006594633660591769745744333097126750634847302073678946890882393837104784670315649240969860016071225259547162118185929570928029504399382989702439343147710600526501846247714818100700741433457848290608844151036780945867157287551797678889461492883614917817118975669075697378734677469627215617457170861739721863451513309509429358647852839019565336941259536708642633162290596376075002156734764741613065832430889866090329687922188000089784589190912309042998692456838207504491681919447216448561672430296521843934822065273412428442303514991369013714039498597048179720556714862771893459192598518641515664075254824553192272344592625710038052395422884868231066986849323408794420935853010009773101649482658151586067525934254552806104678323147114223396465247920004055107580458494183855667434237087338349978974352668534037943256879176663580026431356671267459157140588663616794473781454060447256218074411064389118897331587340045906027765692696968192654795311939565302151093959148720092521179799022023302734943863321647184431351037604917147574026759775102988050076372307860737786778278967875638628428465837562091885259102201618920057379588459341694518956011666283691936477964618186674415834509620302523707554695355740271862225690029939393726835668605965343868274135891079070936829029548153906046339976144602900218637153264877650482341824561223401688971350757705736306966270003855431867864929563717413684728059186305910713655070830620455084136651223530959934786711551327835762312435952257858193164836077489373889836784991242490750954994296659654121269622586772556347593473883886583375083593870875872815668816388507125409565609605234121195486484325192779494685024188400973896659432985591472680846723651418463305138074186438100365498699222316025936016469839622555073078547494388664473111204016219942024756356490673919146639973136377336772891078410075699447525444494644925038285161073059498854493498851479168548452928991644742814974525968491714375905498545707555754114994664950151102150324437382263155815157261768685783045536626046055849103210370227416900080098052732919071142405533701502624542627692935288492779718932404584418588564135504170913023833613671051199033467594725953222125930283096418055107118840018299236829811389440609120803591178217778245412658671329800498423704748890575895510032709558222039562065536553742014665098305268622870427157951497082600968126485001611345364329657809811271065473718640426829800532350493140198200928842716596714735584979325722774830359030556329605799454574449230118672567591619763225664037508893499688336362034912519756690673866333573144707585889305416149500433909371001357505718039060927305947262737884869919689610717416590615307634976980901810061999230579864997539614252937599468999475872534065533528265688894419240971475142481440459078124542217359864226744904711978974536924609335702059223320109466687357462095929944837382868736675552542784083145882235004041546453186896714153955906592774879205302754736529148000921126400811651481087231898757885065626498951293751302261611342179112571553532985008914932151995247536454231327621522105703469829153560191895027277635480386103906726519677220749576115702070525029886953213671368738701558791351565500748813089335939406987093893371483861382634098369488895871349523511239399242340571980984997187666394559193209345803023019600455837550170245134259283802497318775956630853039850459439574769324001205481381398552533758305550202017900794615664889028484303404841587923033330189855043134099120977517659969117838888186922618600981951378719309241364696170665777660478074330243736695856405074277884835077754199371124401396472463702943423748470918855822708817748753058551237953804471159502855941038214922184456971182517858358200380653892991589267424310389582529152801017924748686655337905086711357587401445014681356085358028381753336420017973430928772738140071740390876319039973048787469390182237009608637413931325837200433443584988412494083416058315450653466064137356384077940113451768315986883582280841635008627457147190302146450125133153563449991086484016941997929257995964091085823350095424296167546507107417187888125915206747877150371533059899095782690851773791713756055459562239215649471768682449677004877156422621785871089114399486170541866015984470557261848168267710691848351303774474367885928604301751234659171965629783223173828777978863010808776599739595789892360674475056478529923336715643384330274558915396784802632846369756453502080294007924192309420313625892405942396316032455234545155051542419855928025384354100540799520772877212955365853177167267464751104877170060323045267699806042649561028924824313285592538966577586054856586980331588654976705744594097550837082124304701798801838814654194311779106607911965270320716803261113717470357253078956213263127749850020224448150793110566902556684623542457910066252367975172001297162151936278929157818059577399883765463943847117125764324455329959455322028125382224028356729468474272749767268573663957540757569552806384062515529809986730729138839583038102564730935179929593550068486652619216675812111640150247640803366460857625486058667563046616281319263582016230142621532672762702342690674017755535537802243944477603474017366357763236468091278793053751808971821376130987948731350805844139738502398804800281160710793856661951096879251691147346393298265930943610908583320217702457189492900579049047519439719816215370272200795489523251483757659063534741308152708230519939850690784833355304686451155188452865081084940841715852540532671298340148925420194478439188561292340621054683103771415991215817278963546843391349884233729806207804428164079040098972544507470675481578534253730344297657472456985141831518786819309090313759279629465013705737721181689987720323615253399246679175295168849602088285493169625441787952535813727776647525945989297637429842797369258228998281989112904863144116670173621493680721831090366732688571626525226549489422055409033733597588550726574644386431304620611460894164272379979957659056348766049285411545497301855872990245148659129046497626666302941309664290554199424877474481869603828467832840527425133812904334335157617906775961798382544378635804582733503999739162834753723299252288966082608116750990476479938911358994860260362524000142269305877578162510560102685066832649279505833905105929283886934296426955916045424601477017425573105635118570412114572811432514283384884013944015866557673639838775337753000339195704934454213747294225966198119632656616516750028249600564399791125881378321115531637017984686481868215611021893073168414817057352502752633974204709030449403591848147542969904252220213361732313448961438309019845085971560790412253498440110081471728530724751096680236960645621297106670756204031903115006474374498053987604675751268975949719052831008225975811796661110740421667495854399966647296530941285438286597293092238577056643858411149940048480652592746144877848478205536218884470825534465088865838500984051976300813120189116286034335485576220062960974745057743336039117695412352982899611444696686672580280798309351495303629001932308017503152487250073309349841379100226580171015954074512379992290841447456508802450586106645630899215006454688275432031747563948550270359676379753665411911351593479323507182955018385803066619056809646946722213694889359195902204256488948463330886036067992761540379035848577151910280193025037601642798908867634074130047963352558144184077922900939532806566820167267308223336017545441557740133030625493836688752290023899000746688041170762706288189753937425645868642052390058988525027429749915159700177293790367874675392718129919570763655696969090487174056553011667945780524336955948200996298932743475356558405307941813911674526913170249725513103665844180990824168367840430270627240690260192993085050734424505064327455326989196817422105183934653186635034901469094779745594886551214243970870929211947211330935388449281082693545818338479186226707639634747613532472200552328897470668380507172400036789067120429393786496253104889026464697616587387837595445388555253069985202925059069873229816176217952380595403154533044089137976571275036494595527651890905361868177946899556105823921747126723015016984583588873024687495926270177299249449951102564625349574801367202057344973023262367936077735992682140431680887921001586848270181427200391162113491383944547028366494942588674591733242903929576401612765072705133012110320673247155691053205145206409932650395350873903412531249014561838177847181093573519760086836685605776135656263011847573267619734828181954268294695923364749426153543183788757294834363640596754281303259442509091321063911035215777849943891891228890664150138691467375982217617095128220814271063770341629680567001282774343070491526682497771701141112858652921095695485045074582791598663885186217070537484743870622119543647558406318821267377747474041154601495310547291029205251942295416384420590810424403086588949408175685280745032311934218949628235377571161245993261258130705005172989743997066040613304783941497029457541834443617348669751244704925130212146674158603309012313108665677302304317669402295082410688088736927307821241418311741332305938888357504707735943801443871552780465006296424842946748195760759300442468159338421030370504238623789832371675106085094581084986993815043017523676986265474088481435927826194465661875752273457279305829966483711719682672400289317575885572042529573756528778688030229939965700695318805686978275252247682823389907141341624078154508477671886436028806808521736773001091372587111309636270729932638859631800593776482982157191601457739063494270070219822581542192677814882628339712831652781617732236639087735397813125458040968143063294725075811055036573247789293026052441861060208581834897342687854069479166759873071243161129155896932074550292160885676035417897216056585152988955226976026130135481730437710055028840189898385268383056241004835790605804047248282489813467256173304593124402669495968194052019297756319852201306854642586745793706316979726014899273259486570736576246274263528911546343107183155786974772564138903040740293522132014544402211491927396858821009173201513126034458150104603810905182748938685123683466022016270308000878483100473275140067174527767526948212686093236493258650155066534126237649819244979879241839762273330026818799745383774488877647681096467346251240027520197969730669617606094476523449853195972647862981369966256313032056925101393413953392604885602911217388413696711487044962694844633332728930351952697874851496701108130480447229422115654546053160620467649382090211259597863240308172982285611564693122712434592496088273534872081430071282325532474638940438820119071553783210485085182916989457298691894585025252846371785026974380431811981522746882027304818924586742028050404826227530275444005878342590581507925775936445659768424323667349024120257732936449088214496885405006072618525897819792223837664397888545253903876839773259440976807766878904303615639163137520008101549986011798762328542680232599721744524875255171723056695534305283069406661070072050267184866821629982077451259583846498197050825464287385859450516703054875661538415518741218396917487463865649661428405346026218461094163494104755827024420756953234541435613937999998549175641200205636364753072391712136149942720286997353412288281269841900468201950776396498639630314421096367924987970394744325190108911252363382786904861438406971077662233971737278366753364803901631437806373423181648501362559177317307358208071558779466788682756450325725688621074005369490808605170341463806950991659421893783569127580407639929588507235285133403786862208557243119463473990384120146415600201467277806166916967020340455645836972405625522410988144584616009146509817762864674955287272872514594212163865840239604134590185285029173959557385746947473350722865682268645043159114629585184524339770910575568439443149943847197182057404768174346321723557792733847550124751069327786499000775805875420134178817882597573264027652918005979569679187945945206568553874665449153664119933214755861283080302056805472941398870119733273004050005038216469955150141812266205513387310126483320852963199987701003902253900088351266262438254248230818220463531902633072732936959255347691273282057249013987808789864691973268282321619047135703878127416337587171478048133085089244668617689449867990477276601166031114091157148172514071368547806148124016986394773000225743344413075633474431764871317824729536236567987184334594574541795095195904895153447950628899925046137688347099967973009833473327183316990994243062645646737626610098584402068759422831231069700324647837690428221316445217290070572016617168709308639411996307747838766376720582804602215135761098235329440290726188589991723021686701136730293876204852493098605847396470328464520836394406720364430083747185615484464892722623616349062600474995056810191796773761047664179825261096257121028081480105691698056120719347180519158023362013987612788975097808418699150767932301290320059245756312487900003921391746843798850648167248997890191959455364854909881451377970842098537682138658574749040913628584741929476005325434474059034138174600023480975566370684281900271259856246337875440741351700370988126153029387361969576100035177571731004374309640239856783931615450834986936706871892121381330238146667148382849509086629851102615142921303769143024407247296940487986727984522245867986602414730141922457920733948928876218841026503152338479280876647462884394884679358151771676805765466438056424383828610279780655019947806954517845602772940993442267660331809238585553605402252816868017216328138906780110714453793682493501102183437127898611668922976757633223066290318304637108446515544040899537063934253266138204706214787049319778546213289164881306240019064728584429229927445420106891651493876497733409698857203496147265037179756347872324197274527896431832083478476349793837546693990696188501857654480173996081512820931940257467057652270773831113374029794002003803575717223595160902238948538824341140365681022766989075874526992433216582794622204746019722669744136248498947788833258541794954658196165561056274557824072145020279372057157324130998193428201312898963606918659810579394269333851537659263497769859095443592668358649514425738820144020426632662662156873764967704924626338701018139789338352716387338965855968701867314303933937608207845593782621173978613779199525080631399794477027814844373027443918404064888217224599534820423387847218517940849116864862006082115812025804425010586394403623818365894957419294098006630103845646684264341160973292176700697142946765600362674552787648456319178907578165245301822005506692207583435699517601448074590262589254463286747344876117721505902610763239858224954419833586919437580690604903989481740307858792153658907566363086802887297655142158955665177605461781229104670211274610327558086123427487903332967098681880999620444140557046217256927662732267068151423129731163742701547497617668660453118193811162391203854300827458260656958799040870409986599068123003329173758626195021074441575850341833825904830866584949475437622694578208171959082884647698729554345892265511405674946208120276589716054360814764201734436228543276014778297336760992250573138537241865936861702863217213121258755144582429842411316064287877616413652209854613701244952283977907733027668697496477160307439447207935309901945298726557590886149476247257367802661563750275207426771464717564074796291345430232023122245070271184771403789600628233987774554387637221069916673521099576756127004520964436056892664489273565853305746142368278854542679959337723905440109881751528701122605249128884578443580237050938248585051729222397590140283811318173097222955809395283082917797528753248545242576001757016781333322755219700803908879883004205508397673198122411568804872946918169278117553415178494878941016775379063677193678540492792180424071436672021386912689608192251896546439495048776278621685998755487828887089089769789412293146866980268637701809280833360699530947850800751294498378665411106711280829015281653791573915665134559815817375420808552097539491917747375462140534715229872282940798006083691362349751840739149475226254852066021459002446112037749471075365620643818407833000857961733142883310232028665275193383121254011912383455860162154444337301787567640750174303488866276546364089123772663429353071470878641616414228304516416885425439114216767212391051528125774516500108126311736109588648303815075713930552991214335608330694688488511533493676028103469490979602427929486173674231430891168885834183093779428617550783393236644180446235070532988976687409218911362747790666069913426094330705522379710199793405785215615115894570591616762370821261883336502310367052724145813493316009642880136170606184377841892572578800508049439043825632421214656756845827143374024605768594092535840225432611883514959691997643450398380758280481394933268784312060304874681648793684355777730798373101776117947980179761551387598836297902247060598102017820567055345888038299925863416578971850276800090119685466591752627966901399647868083579183330930152632368100638231587087443411619491830068841972638446629624508870057212435258933610969569969498316620348436128341287474671379379268590332186108294660909181084666335311950864616317957695288651093656367344228482151798024552046943482683627624136285291331338823493542947705783468827597992665724626058529253642251157883153604462829409249038513459901618225358921460043354302647246764375863029151907820684954771903087554085263701269870758481840885672888273530348990435942240150278167399647873602484891888793530328474564981962812770651790247060412364380579748767719610499704513578482094756231270235478520136873813983451073474533090634249746981333092794437889879241194804659679888454446666943443755643734440450939979239461580546574987433122377107352688702206384486881773898214220473570721888051580688925318301008401876446698494774009471110272211466592348676969544357936624423983606174379379242256244479598053524883222451822716457547205655633556470933395173127492835016267020754784897833096654009222704856965120153221094362143245219530124281719730836034723990354338156057413124083154205994790734746550179893349045873396537499555284677934793450343527846306257176276655980953894706626600696622673252000865240865939844240525125489739090598087084777694705785423092478597100140456564249586407174420980406498498348749763322171099344512133408314227837549713584009797552560817179504972976944327807261378678784546677806349121203008532742332392734428816977190112442505613304374307019674274409646526120633353153675709997690076292799909237312614276068288477985824113062943661186259520400996118732207940976769849611156482852799571251256137742894810458683507801152822263107962517432279522331199575885005692421911516555300864368926313880229601290542981928938288039964215884497738189295205668158597426173846334753385706373532547489106317733573090186219454593440494584383218590642862444198781061598420065900949192348034256175099912765568137571119539903596727246022634012921973562728003657095534642641251044536412123886006641723284743957574785912867847043579535583036576753920996663149759425578817298968293123310342322474994991935017729681586255828042938406739250994676345836467287373862326521325871692347725556307627861195785609720575060395143919262163874308534154128207980693668041616887983219681809855680779637848875295749478199124481412206569928452724310225823874340127428838452494131659495371811405609699522316755917749569284832524597337251393244211930137176318635675655705560167956070237519594689566244980007468440824870303697828871038319469925080567925172461340561447449392672409700301948424471946633706267865475829568181969484045983277144960207737352799208729194744093888095894100426394336760541720019570428413534106082179732361078971938813126573105515204810916290300109830091338606765891873286917014925783207466739065121876048480828200401220231871362460340850441936090480981502534272580223131432382610340963369103027795562377061526640751353745053857360045769450731309534447229855534828409356367360243875003837839629960728743403708926371998420445650382170888562282296473571531448023609674233637953934446113731415044187440989992086821661352872489175819731106064379760983298682485906380526094734836188923196307045475830333886731032494783796589634018267816258097560391907555963612299886711850024215272544994085702924962413084240333115533177759475116765525719932830173572120818109371148652017818515751150617781298447676295017294455361756220968428335300994488447567543716019048342878517658014862302305612226161354291341489518129483739533206337433379401923880368966286602866302913043011443183901576390667687898435925109097887126657709156587025198940251218883618778278340149989719215124503487283935892070505082997002245518154364511293827833961827624986745356507873899182649179535538784460416263512835546455495591336015756619483791414106251266841406576731830781820381048273948797038488600247740311607393237630548577845529586551346972502714325804449245339215669964200495675428384355862268549798470576463205836744829179840257833302428565940729390340728015097681555899154877572549583740864983607808264214055300188133496936317624016555697772042137990401034288375934932905038406043553501263349046583834661215040193803843491121782319730434418825072483873226690467453854014612075175554375882814113393528303583414037324222432584979461904252958390022057415156264230174614643452271973225808854258457065161773752334023743409330036329319679190435198282817781207422855183271635826501712119957039595751136908330962904333115348508884215924793974840314281956353823143082095427772753511423820892489759021434949415996135974737603221364528666376607742223198912973663423360820431725419735813386707946447344225144391683218950404853508669071110213940378203272801703020454926584297896215932810529547136886090085239103156686000795175580569769601190499010388747728512306440907010410847136559774791800035435016513020895161676268950021434531797698913515843165605873850371927143904803455712734807004945981303698775495484556372727864932230711956317475374853199169435528229967992470854169246029023195440743916861323158812515489672677777890959480874550144548765564950168754059684643526005720348903652838484092294015689391576886213908292021068709901937473852745569854831266751959017372564303363751960591767476170308692116023253537307826406993709511994722901873110395612457187643743863277787943041148290212901208898804977674054157498411551000502367161690177320552633600153882028129754574473571942037733770388377044603449543124703910299685293211247698752200223270905326104632451143892639763819229024110808197122945941796628525298314652896041965192920891826641870269443604821428128791067603805138871818621805640664822466884161957806943958921491216103853913507860386375615178468896729288003549714674655961049096447329106859906068337886623031953373199894914662697028717907478412274376623529732852590272881811353649654314229063988615446211298558797625920578627833689772922774359419118821395552729388524176453722874105790052814340874198277442573396019224879187994422231432369076368651235186729041266294774236813193610320396491408404201854546446912332869908210133216490665145723886995359788260344848904185138953657011220915764386943345484973493545012380069513921290589116546568206402425453845908636637763622977588343476698270441050642997848786483467651519978511027217997651872041646340589245112624413295661500849413538064076175113259236035403065699138227473000268552281703920381519320220788840376266524899327721569649294911919353539857094082143385064119699046999563917109104995283643822911887001356166083266546464953979799835880390244876106763679230259960526793867987078651831446883999234204604330183789666654342754340412074097499433580186119221282198553499855212085737879055849548379800495643762158979157352021055225368803454560742237909200000603994712161634036513767262992356927595786440738731692252031763939427842702595767130904471365852010809741395525119479904030270453317904573403009215221423646306286287473491911866817072585244628518732633332866921680143125457799314613922203690888176554025559569414287734187228410983196833964242360263026585928892412170839713868032833000238557017801824106869608758992381530657819175831382798011622615992652975334515206689163315785218298766259429708906875076205622289579139611421832645693516211625696698768022755315989223711871232907806661700392038370218951232123978607098674414734015781874268476460384620646141368630949883517482107108835587824949533994640291315593032742955358598079780152841554726611580301495348529533297578656429416996298570974562900033936757959379354270681662688415439194484580518976633654003298492717140389585094809043432442258569873472205190512771808249999461828352229669141925021377153914484751475420961773125568256593177138001509004073704625383884338371433052697722327052115177131801784641664934554835882893376765291266685593454422112825973721277054367571263500373355973721414655312539239127357805995364635818115566576538914505697414911985274517977439935747950491111024067349152655055361522133009720762644478749984370072846924168643486455319567140023412393697051061979983816417581404285980279488134869663773241753286111679039979741702733521996774920629825721644108234602694745939649945952050935527546201012723715504641823005820898449636957233845592219538186206204103368872084634362290991995558188167940128320904639035017051161394787973323670799919554888775883130089121586694055392054614588303813532387960035420694789839258547050402018973428009952557561456056546552214126887380513345186984757282986334633047311786398707135382144423134397541760257749419625888215673534436075799284481626304508931495943756463147855733729404413058807295961901506615306942982435911404033051127070779321707768343819431376682549227230557804960182898988989771777157901934062521355519515748281632342785070681353246398581096044851296562621239308418905987419812791921196667430621411605694555488519949376352026331402615082211497986978069650508594683592179345614627672575995107759939955871848064169291903615780227669218705543012691256837481753542056367501738008354105339364135652767749807650983152056479477057943339796825914022624948780626162353810379997904659916531774888818953552448220253383736292916557453429014354109153546786375251766674971858417248340215833425861169402844434965079972981024178172930747218111622870135857331381221277281519777513253924795538341786201882396466023618592232438985299190757590620577720617804902105098019537130361773293631202326155809546386282805719903171205676279545061462691706839830182805719752609405616644252395436256002564412477420012233443998682055926705270591567391373757241573158812315806050906324526399041886018478685850891467060453554218999922031743760622439574688582133018570410463575630433097344371031854652560448999626352954306788262729363568690545233082654146243008155822893778348418597974473554052635602631750692130579993308244872426174515895192582793881502706398150215494504108681300952424338675462054882390765644522463040399263353443421964152931533159496791003632401239445982377090578892424317814150632810186560565969426243973982351627325356709738186745986007793175523013008469638409745375153881920388492018695986288303372575550863021964659515994616770301823387956615293762356819207364797068831384963118871621051120439066584723773523670809959307797126986579790898541672887225132093932418023164629393150228819418092124158072671772602153088340822697148305431064086922579619638106719020260367247413430496398981466406637426257301193746892997539980488274461043704946675708396995336674158834172322512100781051811152111285053900507474507393906103057962571099384115469246945240392643334630574426885720429409193584755541897823358493322257872954487576713822559150337144769673516641887529874985022988434105946288152287159542030147449137988017101944749064880450114744797886871425857468257550188310762729810917244416363237203718457596221559708652869421867927798989472066841960201612898299684999389939901591097502889317820669632416943608250735882430713801880828297615425515625399904427631872065628091732710470997246039904445151549019337313843547732036040917038048406503836428038629347473246786321052309988945656727986372960356836204310890679238675731284440108600267253952213098802992844421629026840369041099553162852821941803237200728390034208041957914320033512545414511889898175691133149349887001535827389451707287065698882994980057338735508532743859701287454465437677921270266589468976909076247899879940660865681821477990625531040227090652034331547432697644622314204249499725220612879801300390974499287456847400354059548168247612649122362787418485126177556719931694018715008135732537516937053842033815878469206729153945943566887978481337291470574104478502883819205328438122905311151744071927221271805476551818298406670125660872575357749052147658840949423375649492629347137021072218426276693951429700608112902590001946324382791412958220355049819651932342912196643931235581828459652383507814331687289949514413616449693928905990240145289767148985341098872762622049702526909250830823135842278907303758731340812990122219335360581511863210405848474749154134779356394431540984301951869817239203858514415949922718666873911356601898249970801327622363592602910549155292912058785052432327916111220644402025049020499685947342300667861409116999283001733736867349635042646282171253985318401499388889589884862219437391681633006963572449508832004160983349170620232797739244902005531299195952183217291512516139581989071974211393880021713355841403319744248887375799078035428550544962451970855746940882127016158836178572968532240754422986807003735665303986778146584145890624786765419383253569881423554513934958190683051548956905437745647570293778473053790655781358289890373627380566164110314272052933761383328116226206285498778720679919805927757205490019456821163152345743041725592203295491002769164201492014445486288927677523145386960104813123970918270651085141131316798226565550551088044809485815632825839758962867647022385795373264356413618299794273667620758807664566649109359963452231787234941602716591661980612389479723104985846549325311942438803986656285166390835823556140673603096156669057264253120964104109034111973456103174868053807850817376486281541655660591396702842894373876917354211368086645954742351591576916975466363236245880600952731239820664513950902830692153113881084395849164293127986954939822626927352829148866431701816013913899775602951363275871910964275139827653097426430242241793688333604403439877773139474830363175966031614015279857014992980181103229156303618225306376133883853877221301807801716024909592601511438174504547356255815811921728262273201031856096726813227340463230974124852360008018208931006914997438993986594366492529052238273735077008272682567125502125248167714989180526078415524550918145773100893255593206218388795903010413350273647128164666082628458268422964707422380307025748330018380291645022845945638157177218373962482950083251712783368212745338994431645132749160836748331885446315943380638272857785952349080222598898164252470099290120601791443146322375553179874084605137342219814058906492059409662269436143868048923216463563115179229696203015883366437715692647762372060807596019666376047351999688223000215907296687009147248675481169672202077402959639862789566111758464601673056969287405471082539798520401350752705646751223051476442924768237957751125971574210258639967968552614767346957975780648576914016177379258298615272194356399401381923895442359354605567094904254554306239518451987305125792825363738043875675922388703050067168875461163602488539511667448743883501226226112032536178680461888096044295925550950603487294009726860725796783544188647848697705162289679494042820057546732307777001904601324361485796024102203237399504930298928608871909903038073359293654628875820385530979194679397139479249120049981266090140262757045175963846799597415621751712997435503447278187898463880562319610305004689227448728574290452186434961388633377268314484996262754410779869283731556047274416187634099708007693889572112495775277475294529935955292779745669977793629630698744257092316623161532065110827998862469503241440166562208008443633228122962202881687412606373518900124169543939498083913183710441029414229297343646015027256529611955115377298374122242424846303659652568935802313897659685483985756779237944926007303332295059515532669549966377895516983404049202350936250203371940573580983101783381318200965685890610600938031076793382447227778289910563309547430528355102803509299698741370798513703302459663914832792481346241352799788959087752659874860496145534981109746543165941109165928709793469815220832961010488322554469064251022286869232812515540121468570880326660134562062700857612616018971455785105711727550176681296624463053690082997225202047212975356605303776519099642237643752470373007284142092928115394158497785940624063488472339891189453399564876156796633742841952485743816433824687170493618147053448332231344822802951620368130561464976011110060235356554473116177777693815925091613190280801237807391604003298765878590460006385100984889041668630536209476818460352772813789486754416443990281246261834357639871667982930418900909367074099583194008278973760969601326636359454219403493111501198374740167600410395327230792145105801356264268351063330800026112216982088346473183027326800659745639138835711198786000969803170913535902714324228735951492408160669352519277501448372693180637070181447472873362100785542059088964729828995551277275483981917377328211538360969546623112499259236285975792920588450531616836860797146614867739787604916840695079574941557477740821806411507707378279520784935577707310543085090788243346616201812806362503466372441801696957456881305999287731944978347155096347048835690631498395964735841902089363117644181754238266634022332277203965997849605661220940351711660648233061143069101981792136540502175925014354262287362267609461288039446667137333317483923435723192427767769712074480606628695538279894202443370251391708981842083746546340302766025706999597114310666561497222891987198632109261441371528697524555800889015273725481317675969152922273286230299050174362978201267824981761292118549757572577471560911929069220418617690817131229817501076122422870120611725087969906488633331433394520375726337147487732342483343367417699836366348535884688270674531116525241523430867631305205679654228750244265843658346641579537343375304168275742919588155808970464869750425045104938638931936741965604857999164189644785390226789023442389152543445478092194326793799088854884944037165801495003412877803127750606543782099254077434133282260534784036217112182366064676288954379644026360163803150783055307743597483741144567106747184723204250817647195074140311312722045154219017386116173940339976202521756906561427413164661660721036777180763061439478757098523532417560625422451220821791988113727509611925682041950118719899667305510376295039159095337070633175791081751475666357474112042492282441276479656681427025449866336486053888215870663625171570913885377655330607578312615353803589874219156990463520568449491710439160150677099371479196696832475229458702807136895301058347044417898181666056351536868418523409911016178503464418873603615669232834109288385401867443115137389029925141863659254121153994451498734336530334437994647666325221797392982748455170841743275004567963301203797575350097240217620913699564054448329383657627529641715986720831300177372061532266772967927659986011788930501038148769604866694425446552196739268004999487647221821718671051977305096929345283831621336907459320352586839202317024788636970905653882355922934188145737423209791959682619447535129114706415027213378333548861717436927557752280492584086910018517810321189501305633741614220910462860963699999444866757489034096235793562692098375436942380821119880649762373282071558846009246312031184276645918039322388360414378030586855921049277675781930129005542585299099290179158660886522342788552464622853348898319121350804911538359497142868865592077242004589298944265140091740622378477255089742809349551056442987156999070469630385886222331162663792036547253532689337827986833662353510664668581425723824084910185741495178900320063776561986691772957785365852278025378472811330384157137247524863283475005684928247407359666612734831345857464584913350181499008111616860304752038670552145701727560275877424552111710591181607572602719007959421895697477332085415842162138263975466983399016500493826146217569001352301447372925945910950333548482078042740613243663774119980229546913263069943095109847793593659644874945957664012588261680638193245882087795040588536221875620419874772479511067770087115564299523495928037788064116847107556674777779544858250909565528284899262607892518996869990430394062058161057231672043849147598939258332662281434245196327935942663360861384421078057489992977355935210873944245836662072446155025336440580046593137543024740477113947754640339416395793540105988701963261163224948668968865839708418283892824144674645202631599009250786353634357026441946714702387909618592126888499593666871973248438733485102444880779293818803068818380958588204383201004009983218706996554922996311323837685931296709365325667004300407671007691000803419908424409034492174659427097299916437484692974364223386393230589846826554504064921773117145085146839005809549652053389371905547896788703189836262371985662215821424700882626266055790414937618433657349566924931262027520389091843159295581619006734297451949882768460449772593812821124772806103347016215708890573286147078979283527611695922021155491289918306362635786931508303000566932553899599959430798852669712931155658292682716884377528509857997010223907732396167092499380994130861278507555063578552298232513057316700835744504701064261881240981596786642566506731909807241796106938916922761155999796415831351613830058871489523630825787470940533620335232496949576666343425889063898015145307236162789332056648173623668257305363264193870299291746498245929634740014094697478642902221211357084802907034337500312502404294410989279173871773924370840507045721982828704549683553686141376119151740560193011002264864372806343376965087367803793831283657313438309218370264977480915593478404130837588462664184911989555638872623716583675478542602795473922314053061702889780068046399948271046548051454497416909782366122800947687440599576274473433983751759441831720068328158529679449274370638807663896322847954902585542272846472024174028965816076931884025672405544726260047435712619598934458030542111285135240151435070698965143409381454109009807237606144318906518515852405758005478343636043256676561848950240516122927017890440905784163753439616524047947488649149987256557725446970148447055768434126411046979485539015102644684296564066370932755671642559630891188603806055290936836941885930014423240287449724910323219095447430004208235056642575649766205273538930807810673763216649002135344609812110172306537590107100998442261565444036787174745556460341161687145898626646965349094217094488077323219270214561862247322728599908590606701661291007395376221809270225454844509377070190539137297918097323992568694217787144410783416432065316746239369429582294359649232655855608265832503346923611753155214830529667683081131581427338896922320218360361245572565887186496233618165260820173805337645562164767561763248658871732116515485535166062211826356309787228709201826240212203516726472609046495919177361093844786171520903478432959532591904392161326651909289111669735166463814297666702407891443349391702533105754036027805081872557136289486866527660513607266956870141364890607737785432048263808788556057847764536460953941622034695128026452853033105298301406713605875243093273674297274215238804362411443725661421215008128084582012855535088211600032218510530199344947398635406633847492893542299834669458789228925837525880201458261539470713092555552924177017934520110843903504959214128164939232106399150863577007917823676063152267489853627025116111440679832309528869459369923882854938925620312192925848883274671819929822816899494156211157739775786924112726258110687976655157353895211567557823840184755430367860251147971732409848478997626748043740292258819683459296008044624446101257897982356143715047698283830809075299616139084459242045744486373418064616370966943684070471751484776536022670896511448394467076647894201082955867994840876668665059124699506708501827993196962104236445696562757648661665719086882531138339790302298886435732056467502696773740125918618973354449508405447060643379705834614854517145271497581153463941296945339246784738155402392898648565766394190464217851418117202917146234924978065514752032357297396510398962103393910796557128849996931329946299411585332195827054297176908045821025623173449717330274199279531326975435269209500111182674145461300912636975361895029767187346806432952288526835910961541543993561468864410958584342590411303307126250881221185613760638307085268969448984156226879253737770823078376657621926860082374550381816610245987484060376348288992332077392232114054844382501543078895826824977686895944920002798909231384310504842118389931576320757795394314410035049336763646842474358308810505198566854068959061445507933009748232272560497161741277268686944297023451691602514324903639284756819868038204326015313551782282693151663233181943114636558334800306714401081519654577535779214377322518211091679825863844192562475371317209922463637191541184392087994064350301586414105825789112579711958016308168541314723459295997019121652615876398767415603182152380825331392253799478997709494064051857127002364201136288258092132158717390819855311370203148254774792695698674458975080346103108029445820349375740769275999286301232155248671255023890451894088231004699656272598929612970208892318792549582267387574320877031085091813062975959797914369365039206666627804763424790788144280877432643920680390074361381434964607695557909164559452133784480583769628852765253257610540657529719108351156452421791981570675047742081307469785081263439437918240516184437169801187373335601827432262043325896393358524101975890686129709205573986202121827135447938815336593348752806266860712570607311477680629650055575245312962797228270344731073499543902318392204423677543969849383973344220010535753314298910762648117650312928670668903898815615992166663731628076246578987519873352210961747627194545446579151992746834329881203171323775930533003931019516798467943798799642381317437824640226681273390012973519687479556159680621677691204227117687843430271637835784039515148264250000897238959492305997561471209534408328148836092626131236677044290369624718392316157660504519051404825488137750256805089386523331371872130378675566993976234719050856990813279440399369120129692194613093111827481124846978816128729701229215357274402629426857985940804318057933286735792939533141984658264957046658785787944651682492816358604416533708622702620874299687501996197779135482492540070638128541250912322677603414808893378790296380763245536578480759596828123299789349043427147511049228161458854715586555107252777052267992475677693538533456498501431044116780477303867099817648500105788199845646329753367176745877026194468935321039859692331352656679237916828076589254601536704441574898284206690589286021463593822601729468441649129451396097879602562039071084511283323760283318264082867556048089973907414317623815431291143215945022854725127586292426532041123908080393912434922188567139014216123061409553866590812056652882205405024416494102842880022920373758336109257438420220897390844217147567034911521818128894610740560176500240500416933013288866595974689336511762959161664808040717574316999257304324748819787996392535859819324977707931225487812524995556350514419089898342760826595867278926478789678545942240639237343782983188912871428251924980906302031237030458050094113458273271696339126176817518891772228961825380530782627178609640299654523009466058504180409268245376113996158984867558028684375711159627752742201041595709413251350144522782951628550098582920712340553939616195155354175233217388412710072761587694367989363812344419312615806463633119557313745537703050102902988500758248300942233719932317552352395449890129292982710890578338795622424685198537353609937560242906619336177772396358911814377847353195969164562558431186897414798797328203854297774912953556994211815033183622834295912480902757105826635305936407351961701540089056993884082181180713948082894654852464096158527305842873350965182352778847598671173828669961826559580034634293344856653675635045692603329310227979368808853124863245828195152142666849928656075201024746004892990683961143079167247385978094283907092102303845710836855197944668321469389470426539964656334456461672964820031991008835967887699592690192825589396686323954053156564928986530988114766022457332199315385622206893949883816422963643110670880132496476374959231723050296225292113850159328054800904337666245260896232808882147646121903288419797717407887700633351607392537463048617089446783674614500393724115922727395510520610201768983525253145048812273996814447983825831322650371575203226360903098407210971468140789393625483546180730233608569452374855596437480144083447804476670405081773414838409997326638812796135048100215546419661912819537568238790031823117351432615717561617843492524354207801752258772674688206266405205100919824684330998534912862767193060763062233500410151487894234098770225377628735976622014355213061247558911174222700096260756702225660644122176034868439283049164092563765136493971231094266520842176027012591800876528409300366049599665065984816985489648061442897425061520765601087731121233352151502418405418115257692706403474800809697915315475255773330654368091274118632525086453556269534556363630589068794997609495560825345457511945835143878136030145843483692536389088048700896445592105831717477989370669356961733241050499981129740362214327517669217593303070233937919113758687217779965713284299371066795734897605302070927244645431756623152756976347765601463358113262080356398105361137754201010074698338160201639033770971301392681190259712593008302069061268740923959066509321056412907115701034726658994496672379182738715394256263394497191948508459480170686211380836635976076789888959566889494648323144503443268821719645495703873037405884046672727501787691487440618656974447645756837393180008397647724209913413570014998065526011523024560055858154576236124236432729826765722338426916397546501363956507488599633226309645128057486938329865183287974608899565258357405256563344809868647004082674108049814246823000757833840088873499943582643385157586252446862778702756760353366798972098308292777711317353327955300965242762861108532951671440769787459208893505844261916753893359880226514298260363857717604523321579331706632919356372300388148827917319727274792340483392185542014315099460882769032166317147345847317669385876047428048003883530341779390553555808570277988603969327927637778853863083531990049710445009484837135223055631426208669832137899292537547141013574319912302266502636254232823259867275254327444591066697112883608527477669549639561255537635991576434389155301866617065595205986816618117508407301738770398229527781840311781232142312499231495267132547848964088820526914099121264269512824761449803465162343773055746129880803140067014948860284504191277447719856352212707284619116972102907426352185672899762977668767223498010318597939001123170972685507146666850601451580112708738867040060490904687494622899957654794216865975226899902627451946722384845644419702571517087647464967628634966772832883074203821998541289179350139286290765153098925356437413998821669330980288376236180073807769368504558354762471533488563221322463649239105834221149655279163015199630168874253165992674681577458605573702890438077602704337993806346477216062079038048626700925666560514256381518619202704886576216124580736863769370949409524362709428059505298419699794059667659687883821368453057779715908922184565195016680999731503159316812555619947842772462967164729486050994810204303115229363286530245474688475823281441163063482736991026888171271367798284472170682218261194027578171126682465176279510251786815535046792657229675341502523990287849382333062354550085533723420215350315692399366722352385072637098628305949011167545822295446309487959843632315322727125711481193718439949559486852875477744595156591599004526782923083433413312561108034631302514395915104839137074181888024245882835386214693275326470312546192931733493970110444117163008847766860706571546658761740504494402396337521052219362606471036764268639391093199637720656027978319444519185319444456729366720346380783601047583307126904494468559923225176863443372368903196507739163951403048016275612288299997203340159171850178655722094128483168653387337260170875730600687469314233347357266200789805199652540901749800245209956191344685831910456296948965028740676496645723678609720014125957415669192781768570244819419824635332556210755783326467475476300108921371490280606822550603995733231678312825714329809822793699831559795743808216677381700535839165094135350991047606846507321861840415410154591504014116948668773973430560661681885824645532291941590542808270574472389754362020904561077982613229397891195286882637051905859915002792434707390775513179179476991933138550898106146117756025426330665407666798055366779352821293723352099811850628460268708941659816637137128130907305906768453532292797383135075858512781691315175592964012575314312720540640905070228100095233624131223632665429522947538538546451652832381739559227291955274362445304676375695519952726523952473235618273733167958608427466771933459220972701114702409406883873874858398639651921508005242750273753184089312343453092526706133146260627020794598756463716029979511300335270863178952966006163624237110021038014406823761663619852318640854747448974655260327154266172009903614483102913269258762414872863207975334744184745808956639958626311296646107209517307354201321046797723377128785469587205548995368974520322408854077812702792020263766249243531315905658998077486231556041513077758918072597215756052110481238373280743951095595649389292486016643440511541434061841639049721894813777610727820255241021117123445884057438019382110240746899398748193784097242809437829641458592714786260715801360251599286020979518723034437826248736610297190378133969800921448902512286777215640536816876181801969513219965965829409265351768114472370343155350482348325041146692342348618159281483931599689878447587786840719315802865641218354697849148235512305348826110604943381452418738140483288714747128490231943962759564323968098883672009072584223831962330281827544926565656442055879545523228873970656667567266770947535396798986197234828368097203104660031160120701912802004582649026834727482796721178027410682759973785088386860796189300237001300693301961982158638390703586590978417595230935228433585131696742140799252342530002173078207168772578096367102733765882875987075201972984460477371641307065623471329032664870249194333036929473877453929271727571509709806138952358821011524384883638680957807959162938110775709542290941629420636741640517336529607225543762010163896824962849359844464430930230141082661302153310921772471261382199903653404980254837442658288470824441861774583311747987480905477891432281927630194604246759468065780390968304839284184528751157841185694311886591130165594093371708883922642501765971341515677411905353537626400443264706539426074558455386524745208314830741704146379532683638830922429680903408120066137204461186905876622971935123831555519191927308150855512801036557017512643084107072937290109169903872859016304570198443086986352754056260689812931435588634944550837679009204292458055188127832779547387872764034264267670940821991568112894104724544664604033763741326118050355193738885893270749353625004455610304513686257737137273287736492482301878827101985809489938353104073819397609804815653243684904172587831500474272659416430018780384793332592585302987856498740088705990574139683432743810111184617970940379861299125020111277160282620430955905959161170736329565923194284539767097901843135499781775095022954290370050151513224824418762701824851680032948332553779501201716912075994934542080097066995598411290270179236968756564811052153158664917185219218516087804708978243369205583853659042782466302125327731479800609408153410680549068189017284680585021306133828893020236382213336264592486007925031223766751315836353163377480923267019337415955518601849039438479914826461020753442436187418479474643131848173771975812202466708514466032325072332928395446307619326055950914507670789623953645948066246073181487169589008790151853933945485229491800687253010925896997765279481352025101436754592932423801526186682475885896726716798735987482239791188390774448809012338698441704257453656028372038178601861119853657357753760760463916834934022114367603965916244563364632671316098447004535801491831891320860096146433865674003240282210363468284874533949598881940661434842551689200258288447314119180304665508610835528200082431028888918555177116814210217350869526044366749613832441077311675398222181624317451541335296133350743008295379450042193284567423597457208169016507756255388713509559528242841764492116558287419818327044551879971108783923058483185946284607130647499718222519830301310637932490121758571231454763940739578431076329200041888785679492464028899303425749584574886903154684192821593576492124179657681320760350980678622580371838029942609625571837322680967442636762202539466549196754010535582413394797854423874658847157856615753221153967387800252273485768339780187300719374583051118190570864539151224191029448199992928472771901444156867818880790032465609609439735734021836793886623374158404001412913235277660216194935090321893775258121496018937902995358313063701646934866833065270807348111413430131153460287168236212950229989786353296447664409359455724084543659078932048837553794327893623443506553810015390444093353003988376399604613711763758738687500677581409052055156714919608590862802208464279530673423643413860128384827715491423290670193208415389376597273529358339541347979417900320546465557665636586747028679037571914123507005600957662484811442660248888560966996205642426704307700344234279175069183731002359319186707937366225175660892092943516864763544343032757222925984283897641688033946087348040149962474954895257695262110827271636704273978529887035558092376689295284747553984595063919987833057776551785852674628382732555728282320259721101021711233618281460710387870970475901688814787405938328880001291534031944118271529455388328426980855768344745099192593803017090729519600042810518248432784784343823204638991059686869245126023677989075093165914099295381912869070251014179320933043358627818927846344544430108655121625823436072169724019385518105635536684275823632796578779469584696648542074838942077551014285833943430073575511881102599027755255889649890168875425248283845605490883642291048435124834864726243190015075429913728695846460956678319178566584806920657040589521258852497038596094616628113150803287762126796254682689776262244278196044068625884452098669942560615277312692829228076916290457878866519683678238199483948952590353749064937308402996296922985552196260088495491510958992263671601025382544130765251445774167522644491905367372146976928527572709309647456985722114895417731339743756124525118174451190501787539203969599207318069161793309059066049227636359592811881554623486397251799424993083695117265044362987295408072771180983984239957684738836519716340434248933136291671319459955473920803092245758604937609509375112835970409767632209883404346839088818447673442342077340579480391156696973398860759321582980439877081145715768432851096474394218634777452590418558820059565667124198605466019111763426999069073185965175604374962640840147235897583571449630227461034844086780942024469371306040904812460182364867247194273168322838579787687769779022271941739704376482448624601270184899870617150739511660699735735818676068088398690709148822752575431512746572877491770787300941630109547265916543485055110714743510050427192177706776509346760467481930140537120363337173938717676993360974395863084868665521203304899698204373902143249856378431561784646013971941165723509226991686568605622082351488828291469973432246604647205025677008351087083384117945019365356937373169533988901725761084800075062813662449976827888421069232773867355063508110035105220297298507985157594080564229155167441443402519740706951392563323591096105526178058911373419651016470249770062915385386784423009701569949244820324516342738745867162257953241306761432214271187243798564152301255122466458519936349950378930905861729652515371167483792159460450777396160399762870243030883093350222243398029429236666271365886962623871286988429216064018400163202892447398840609836394464033206804108083462335369099320083848048698797941296281323458587227626027704044534906876650002966885427237454092667367959892729805423946076456376155946236105463057047126063202176782177421824879724570712382607059351148383553850489562940216507826965888919070527683722733151268650406317446606925268628174713199443883380462761353392367361576313013770011884504460197758551745899089537078326541037752480470358354027987928311799023403209426308377227172619271444042581738751208077245873701905626044333891404844808179134152322757198402317464169657684231097503266026015885154746833325714022061379923042089090546365019479798840680141290875905584808072021342261945344109218805884786917583643063130880256840968687597740610386754606909990085171229253938266605808472279286577532730407265464807984439210239811643741991070119284547805632063872569954470897559660875659211467816146205731396164021474516195008868181925419996138305178924491614983591843315272857849417621062482891707481036602113013632429623142798608950003793821747629721239290973415849932873557674627965078498710415989498219258735333065586598754569033974507175251203179227267517619457317691170097608976593648646512004780546097995610698626067674991862240223203420248486252402545637876354261076833162694749875374979998466122618911486121355617354143408876379186560144576877205757288210078421044927344622803038165671770008416481470843630272910970624696268417821779410326542758349393787002114390508879901862097613296766871298992689046096923260697455781979216476049901533601207895813158359080831820631572835852643192698011247103688586838035542978734279571350349732019137131947169427047547351552647690678689436017519175248059028051773007802841481423377335201638622381899445514596261432982176812251921751111412977695901728733113652246560530281292386687490392323199701071466620611220772025455477980426365680791280145959334583702015236973899769181340065568599232055415787439272927023065159099221057834915031466115950780532165826875704013783960687518413268388331264923886907588044768819128592897325097365025853058576280671807061704927598260532306916717435414959139198537999505142499694577832102591686896436328864929096211619678573130610226032607539001591483102043712143658958733854383423157035590454512798140215346111126275409080209676587725666911763687920436562201238686044430583813477474475895446311497296502761928915642743589403494701225736816915706771369394507308595425280257098459979607088002456110575745437293307435238917561301995597573965277975136710098659714334222368169884478503152849528026881664867895280521309879036580953765296736187892074594792977080522946722707269082109493596430466835502861744264635723360303406110498916411284667941024370566290988732998374099357682350272837833996577383879545304098776372421742725904468348823010265633853942650597330248710069270749363907451012289524651551896551415463453481459411172563674576426733499493918444492483580141413388994861098408431948567095769941512843508008305524415001866459528702443529879779800272277076734272613600451424144700923129470294133243272537556432631558956567612017908291453804337065278708279743403422844803813502579487706190956579453593915070973252516427694807256704435331727065606450883156621092527406424267205120753423719058244266179899367292220167897757618570610888888999174063163191151399083806188259336013812336605092939701341818899083133710177686947922677493575886606573432591658159469042306474124306318903524090260084281168698161775279083429595887687801463600676145303449246080598733200163259006600760391608128845884143011461903812729564336382738959927583561182022810129134457368861729988576428760551789297670505922506180389283800495484162239857544165719443616964831488432008634123716706565006804655044691584642204535369403206783182636024894744377072954071780073915699141462200141677768679124583727289610834180771942298108499445011091174948076984320747389075939604791482811455310838581948519044750517978644851099306928988060903240972116834988149096242300912878065537321135044416414957453307565990713038735918971976425144518674268614385486192888735653213569608226032965099189196857614091845529927441763260463551540833624858725180991560902834279691144049793628080757450511774555661537947873234217431280429852982647512691355979178120793318273275174871772693974867270941838578469210510213407750448634125288351639640589832856196629654876833837863825256022537935916717829430996120610552443383063795264663470976663770678094177733887859421978581745257966239181829780176046443479286918930834375877877776993247105866018622662775962902502975293112843850894626856232507988658318295659449075820496306005357918677454700220860504676962442936101989220137803425860283788278842587909498648604407362834370271374802056342021611799258817949830678959322735596915387315685788257891779761291243806886198714237492187055097253979190322173596386376051423163834780643602781944462291908146850806009169768459474829480147969591915433889098475171027071695868616808785395851393671540824121478061912573335664086729764496879504417705617807717457843302722227912149062239417709536622462769043791127045625662270146479969350421778220893040921894935251668350154048053253117422793417451969574526666275945349918962728671401278501590327774392933632259394569751197403053452170264109759428613065523834411641598623635312746045277745751197358974096359318667782027601760440991391771698218775934869172878808517710879492134147369580451536793310060621645149337780820385837588965985290200265292957699339390318780736200698712840655713360972428827493252345137021344360053665876282685963542726211429932131386907696719856487314170110614248893260259277955378351418965459998080125926992918359431372643336634519167737271030577376131320368176018906446029610568418374642619356418908009567236867035348755740077052639576715254508179768088203446413682202965858714788842317844344614687409858342340974793610155486094849210106451731006683207483095922111119545353740654214403985368533728813367993833166274748823845794682953998861965666456224424964386905193254666266773041196841024931895987361938500289677100133237339436351144462325880192499499776405335220660392312843005341896209133085651882084431439131353394691945169348429427536667199550084639843823950319190815730523804697576317602374923869301255938536169705702360983952736681451384025474136561618630035223312019772266030171279032053876142091223062127019740256318852627971301844127090117773991097931961431620350142685508510512344516147687299962289937605992668593691008681096180913390424797779034533594887020906011468486094588522992964051038722744566799222774196886270726816295205327593516895653113938795518027275636555023642584954736993207027449846300685509764224458824943799321327600884606788478616338298378362409451979220429507855207137901877025499770805449312911702664870700846336441163600386223971100943496610937405645381638849504955767528273001234108593044755560074233552874109271786903016825147563132851471583230440191451772902485335119327464545364173483728521845814180717484793708643095992130604362583241696214572755166073481846126683968840127544129620755191478335027249218371048333466574583588324174005472095659561244091409090478849519553495902053528877944760988083404665426394734891056328494882496889839973531574500627930197913068355926843404869879708464631341457066048134657117466221222432049262973091943509038677211404123526406210370220539405173833806751285667308162633566981168974362679410808043488756782884898443475882764911180096163157846051390259605097781757891317803011224465435245447717527943000559353641192172991524201872432288524319570580568105133331602713819363998670953455044763683874270743916281250151844207912595944290149422270232374772492098254608259449541902892686070987706006128604980477480468482719796131111803032338972213000924267884370333944032467844525492741848750790558439002248450017490204681235782009104382422577386356486937062268056426335649081061658070543860933489550492439102233759429588931951397379359718000275391942916747035280378738882689381830226922582954027199042868200636719707856925741602991547474926910293831065258711154316785684239998288136746127957763677159114821529464066349016843116425897317301874226583080849019606301940169191165756987933817456184453110560653379603969202104093198943379874464841241261210649180532932696930670753139816167399756902082108491580897797639954455769178686300479179648996249763276258835447494362163171360330053566319969929361408779041566559276315570817580084632523881497358417603024168701749005805862625032111042664733681734015862966145598712572459116579262274101712222161487736978023465876143339119890471069560554986727170980417840947078672116562017737168379154843506258229036587806734437213455418172753861017761083879548593906386677978319637165034752797420004690850516188480663455817420794562829972418227806513447912832562974017920959843345591527032936679766271325178321366184445580147966446733683574336483066907019262307817426045363766675356360244376156320097380726255899714717556842867805131438338289464645247588186114548006701016365355573554559543350892226076480241505359827265063569403680913083904032468685220612900350019583361551894588232762814615405564579466734102337651924097382488766556356433280641107822011569213874596890805512148904748297192009406275929501568741365185844789938161881491486363790880770321103107293197317263050572141795121951185162601623879963070949758013229416489781687814339301986303594070199241898972099146985350923072736476268203515891912054521893453661554486683446008653384998494502266359434162139268982950464183592483064792535463723426728467343301607585816147574978849405504109547368124365963444755837557516543106206384776955111366678178134070683979859090624374172088452281790281698429894049044361168095512012664639012551808532489297314073826476622986817657706838913754228617801195129104172735812667280615263621813003610815935510913824051236260770767091332954253509890008075181194357854822606063649246484045995486242469175993165325661381489054101729882729279553957428533905787963584407888449996774616485693482175049485971908014111076530384323722813470985711025551729856001816169582104848957627342171967445139863822807379938216504389339686747749376557747988633504403804304378249502197118758685160791167286871023667060859220159336035357023110974526396302578345444558179937558782884217642404617647345889409239795077651006038324991888339580674980852340345491747287643993286757897169520515572348346727483331739591206456012185996968005433638191744494564517769363196364059299185003843144553538892293872941288121545725900943529646898159502739537413512521325638403676432654815279921500681292043350502620100183938431026060065437812902065175034363397514059450183563720272314434922003121394909388185941446288124790370726006265464171139649974483459903038541413923325569141547469855389763729179392484481853949870798316129516651372387727174128725256879791488985044058000674472105831365649743970183463034053451815623424264531143269772463449586411596952921498476733561584133066813428695917458283029838715022214585769329898154091444493178683782254359404848017806870461168029171238135521938843558893630969464125849988803520515609602664087634861486336278701846336280161838563220906809130983633660272790739152937312890083989242696732998684458227511364344372080266286839029293576508420824249699597045506389169237190986945106844357302630598747281796726798580829504031120455036486168407364147139742485386485256742502330232955944889309292589905633698416509672362215188669311363654804454560623171246748640124713183201849740746516505176590425843205658890890521150587803720794342635371550045359604062535530648265674726076489997830486633602685286232418231637283198152435112519737034096147711030127735385021349093201260043851627350383044577247155964827864243848941511251138228750769827921871247672764315185212989621977917014896726026144742322868495554810038047098469929100343218640823397238726624520937587097438680156412790019736642058814177469248947417858496111131934698418029825298529941032835503361218120691049017075742449922870263415195480306188381772335392237771097103905605160884093156791746114396673275174066907391347032125784034740944397071171088927041608316447268657380674562250405688863675534779119213640719109032780936816621298126259230076494044621817873144142186063169828509499244070052436229572500033554175184725745167930177742113671523196221664168181902139731112141832494793702499485762844922358380959231286925598765612000215971766954085220960485692542543897336426181154529566338111128195354313291272367972626281921208060111528934540047355689987735711750397631113909746287047429160585185465100366184258382811080966795861920033889982647115390574316172336578024884975709938189973019156073880120422620990424406919843511486018865912070462467886280727531918356184357315127485879741848416208264650944284944830749090595920261357828161762641648793697335383449296371336871344059085661577292423629724540442386545206835465039434861091504227834092627297885299820091443154197642126974495594936442342344384313887935930803459238921830629995370150786952240972105497952679984745847307167161087054578179073741045456515769151046405305267301478461979224745625762941820368724646494500934229780090869051845791842411912230534334017844358021732274106997560877042705600442771416834043192583947111894505704124548228821577784194990632581959487812600000943300649695235139536451388200221882845772434987794865363948678340684812277730206602718421392744035532647941534813321031333795093607306036504315094164188939935126270838490793189225688915318862381477049753760983749793949361738329415624305669069046407595266562907297215013215590064005974768312038242536834100127753034891491005617019661948521440669481220916651952463833338907611693746061046926053210599425806130467781255493583904683249092640593322104621100592860454261134427695977580128151634201526762563946187020402975558690409486202216030280404050289751337896438221307667889295752082076554292664340878604043482237350031102342968063400442788802338287397511462345150820157486827320689791006823660262119442088867786744404904203735049740906543914841969710106488490309419480372433161362521855143992240840839022132012009468427296661470011081413007017509998083635344459452289563065012412528891771831815758849616723684473702694036040180731512734768408255452552356586193904904135052652103760335146508878494484353962448977979530467135501488706890180113433821574609039291702183181859534229117883875808264937113248506696534634397851220083364079164213913177719954380524655475366500721552960884202306886207626786012760362745369952955077517524050445793258385610520158896265892016376529802567241887740902810961932423541302440189008002994691299912695609114895114993301674333556090738324087063973482316946150372180957058282531907777909387155617610701378261771441479219581389515544972003328551901199387141722476092897397574679532989666989554912415730934083182455844955325919063981791345638350567705846742699516667732140195711202938196867521610193285677132251810626401684559894492698857598837714870695946891419963608319850883719170332440655627476775875739532315827692372949106814287078263282895346739907477818226877804908123234759086243213563272773618046116138622298609212521713649113416427595554262676267388115844603799460317623807918407543522736240985426839529404538469753859705043814442345164225121502781590337551507919356487729779104211518062090724009465604194845316662047767255608701010113019593548421368310938777888785427405577903278802901400156616927998077854975476749235531998600602058569199669548108325141314438248346086369916322372584288696774478040646719542156710195127542933893004986073134477228936648565804059524587074356786318847504875877109529246880824240839872059592366469723688429413543210771629473257680102287592343087074911658988001280282071778998485787123270613551122706429092839198950446613069928235607905022121676837268619253797269463376178948278708185650159128836173548749961250240109662374087681967286227316367322682292390769556878305042947053144734539124039811272794524535431593022457893257437676892465267954023542610746385383760746893605315009135788587869953968853366991256126206525218977742834522131986608670787742133182711698952925089272427521697738838524970255192764098709058071601222630606377070831626772672303168967809819639816115372835797998731282854498801359206764825950072951774439623278310144279807443063518572905587646762274843893556279422523934915494973542989343857770860321402005316935941079568081277834948214897101313894186678305790741247914860430225420789600517321774935866445451923529290126412870955115168881857030765050855872540639360596860729272623746333790284928074312604262774674699838512734566736714628497485117127902804590831640035751714045653265894933706288644540028082485756497564712293933893856619085282244130579666149089912259830466850247265436340062549591693201698848813491939757583566782298663456046582204920124113523185065343773816514758115614644432706755321459621902137047106877407237826373576590231188766540676310670340833576383426536958092882900908791423353796801028060379485949629013697792997267189043616535069943670873396134705750513533922374366670364196426785400292085322124012077163859429260619799068852596903094984378237586097921571209320956586776707247359321624036679041112291124659147865846078849493546098898049905199009961530265180300728039347098968342445637696476450954963474873118579150148628869996791393656460785147791261596138382903596588690613546282427781824290802315996546705143582643851534885232005567739163017189200626785746396685870291384806774775405522706844218601436834058634205846993587387172867536715041807198432778204197312796761158975975410840699029613736858565948721000480407297141472706240643531423287096522280604716503120151129120101980384687349552093414647537050346243893738621749625303426122178901412726312884009019600450753071578587106072005938326864885938097876089981565556256033822037827852058493461369678697038450364217530039680868787355198545477206816597391512976036227056479360383278107516809050516267600973961412011717263955013215342855853964314218815351211226867059775498875691069404038431699834383933097795082936482145048562318739246411848382608848192793607991307203523206705817977744479975886807986315475491461122447845198615034542823903829017541098913515158965268392889008100854359237811647727988133147661411477690931215418656738155318929992512324358305652132955548662288553616027369690471776234025436885437977191489997525038805468185761402660558192882981311108147756589200851258412354560690891811657905359188479409594571243713401691588701190891247813416486273855057707904534764212900128036782744851990856350683667527552237959149306712133177259275294058651794353129515777602906228942697393543447801225140890178928128711444506857049688247166486893220662583520289455210272489881460848799404567353554515225544705474426983902561055580878094168803319112479479211324651342586643011503597475950471087108411122513780260025690970948872971138098053239975065784326808139012831287087619603109840549513497727099537846187495804142005194832710230069661240886597693238708879021685365809152964884177384013300961487102604159332226415452972952370323391019734550229463969149721616824952229765687472575253724549621930487716863112398709444980098638201850086105864541240813110684828124995632234509886108489602938334353060205523103311996992923169408363263692953711158577162458751741041969730773608555940633445482362650502116161584001321691061095280795959146923948126641195412669340006622069330504586263779626173134409521716578813605237526846094129707865722299038115475484804622249514751183636175603692160877825546687417926067935984839501689351333071069400383741798183103219101589513985793679968652553186755307052152139697536054285501362695969685344508171096202654142150066842969411317324568993842496194864876616456830733610783749858314281130028749756820473388819808926887679150659858097802743614850392519434418120024250583591608741509291972829773764667487520055694811476698359690540408856239719464299895531356660978116730920890388826412536904401638647716006304289135067378318347339266039922442153103141444776143216171115966889571901552237399872454565130178358786771245149930490346793728574664579769778327590200526611902665645775443809480454608292724179559249403602906064721485439192674961311359982722246247753765464035958038492989323905625899378889396947508688822250027690340341517510656531757013773921914191806173229194871109658367887369590801359848716796814574678826452753130578968047365744883856950672440296213521619776405797525206241023019602504283722772145664525125319286640332195354613922523701679766027654074521641309510401877983286828793210164944448939162456329784860361317852851233927704005128832359913541441610755093493247357866475052757782847971672944968708029780004018023247637672933377739609321805931135405303996179325047453170864655619251839426208816768486284278885894078656679060407426827168191987544778827204546619038298734459772686837561467994237763478623173193612488902511053111836432170898995301733141992650218460728263512247136946515532010449669075745519342890569803634586711324870139237098656563947100297369925270828244919356492928797219660724784050801817792350752818609466884500986957487623096120790614104894949224124354206811080850994989237506523173266250494218432158148974553000758330114208196607795156077585258593999391876949342062065683935069941284633568949195207382897827163116598093781236297324692206969463916269124799201461863325313429002576796620650207338831140373473393877219568423320654298010396649319316124681329728672330559405035025148786009023636565036158564538662850172948694120295344732186978582641931041718970217546576385271310300810701291358315153001321817135019787724762407829009876832708454102864517273732805633944812561464877740034963294260531195624354379143042948402054419559651995742851558426513832157137837734493166111736892028596816391481079438750470430698582058105270141171027160753789767254036395696861522947348888683677988150808819065790259637186506120293485220351395992722983076378831602480369075591373741299311035966644056529395941062105351356740402220717304416739522239386083669851324382029434173918416674522525312373333093036117970373797985494172281468135187490952847743572560846182318911188768545102537396864879430301254508432308781387351087113146729490471812413138455495769448221729131567757274338722962563018467570758908423507939357325124217760122394216060362901588712431678178805449068011471793522519606632038673267474145528146441555225819406040894349967767359676602348294752620779029260810808099375044430059537197440617327364387561684951394635639227773341824393837675368460101287583211444827051863347477581740864067369545758371063205716584263722548312825358623227972734037786153850794406192897026732107771040200908295707340150976846615210886400142929774921483468343215082327172727313404516389083873175952633164282328674406308425475850782906740677010196613371685316932344019914518741573008658867585738622159580594401456444012878249000372680223831850310828405956149488388715442177059864932103038617611085817364254238096188485600428554332056969636667965417967730231632415504530118332754601552175968970803165282896693741652649170486845216880552503735358582251497652867563643972132183160532346372812351395691880705565650214336302862505208373717644396325235129998637567626690440187585374593954314378243416761390659729910505539942703850051282940643376473233532306136494959252375539029162781616903098079599210095824687090999866938127300479509588223241574092368244995608995250288624663900539492636006576841069965678468820185962471671295135798344600402276650003864421998206884715414105029698357377903095111775098409047322261464777726330325367902443575419181785066235171923139778384896721441405529963204014856612507162363511816936799533004202538973198363645444275958667683550531230647962344255061725009610573899372560375058370616640061668358710494812800474055734248738024794458991290270724184917425862613750661927656528301750143108673082592475649493417960969249641007029651227613505566252631807404799666564376859551144140786534520219430546398264684402244288603827828185977380338314866059965061885317362320313462965744253595526243559648164159071726533036000002466190434769363419347732802449161256650796482756407348181856540879120742568703320386460961171035704879610844873521622605637134175542020635350341321444228798986521921592401145036579595543967111025517276853626056489952760603632412376187891272256881933941192952481302879762799182308516640925844930255398541319432231980350362221207928138852493706662754142479373186951133207375502360786154812741156235847912440237870003512291271130115522382134765063281324228345673646018873886051767021814951384665975687957250655595944383329764326557130893565465000045661590822426434942164948002303700548747433556874450486607264215940447459048243734643479904806852263167361996779983417312677140219330229044581763224678527547107668246579010496542535554249124318742825390908924546885148432218461276306549353019464766750967290829905687445814785345997385946304412851603400672563907674605022151990759006408814760325246750592155246529355213000304483416069314774434444765637728212950401482337227667738984582179788627827201248834598082855208404890809021765138174989552162969093820898798856234528587585705132058388395134669494101047814131286109951758687812643712841361711118413499076014220219752803414652136298733928014100773050629518670393252053641695577284050584120864089291071212700305251430636162150280890139809355757565691776633460428254847744735378443388706241408332445507785133844624723072496105455564854955437699434278077023176353835195915722737401010148747427611508007384774159136405530527864638476294784122657208147626316142287488757423931819777111448717717205897819869638211260726806482025834747631330743228699171645745618748690641571153774246413062078365473046471898843876004113974472204629438556978008928054517552539284873351721611292886062275512973075621702020681977096348763672803176077989666881591163198802858172295977311346391509107447626116358404606414401922230886536536305770624369457993928624466924953713177938256437196191111869192091699679466796002573400707339814733183352549196783373102807911713565237522823524533910424678685897049089019760362062594342307726189517049223086784443957852640438465584445363709231587045792865493199297807500761463043021257086627128227839836632025685981601305260638211933553856444140297998515817377569053781257877151591958732792634507221310076441066355306687297949152865390192871474035296696411293770891621957779016064250886001823306257179813311740291790180698465793142155029102422114219085447321740815163655927860173671455495951256029461626464223855450394891525265845402253010780157784202978920974604829142741692318084599181098220151935336060385876256058172110119710376486027277962810545437589464624562979866887770417154118617488628877017279381833056536684771084967575870619143738724195000007307277378196050393362438710597676732001039647162394702449403598906819376325410907575750685653200932376997069670129643966016959117976628439106311711426160463234648562211202037697775763593311470851670414755643826805661845084257725642951427616040846393722449154825181129168244475390607172888316369022578571706640399440697668213892734233281456663042905135353678297041256560278785719253120513419742396978698450097189283470509275727030329156369550236301813439690465721673707769544437448431626466275076553886789623465881629053280787682689958188779410987939655195255100302524923265796649900802803210699994079507964783768789072843936775684778984329079824740855372350886532868865618003320341691700314614907366863012585728471384955740871831670703926682085742450155396569427672159828838278218468132921526341087107731309397947578285276813107177199417079481655939210873243750220621398024414440860757462890111686644902735471824593153947383361335899843309467472043519121273472824391538436822187149730048785239000415724722893928893079644549544954797073739965596199693659223464121113346366580232498674890335065493194605378963734262681914039834718386177961425348732864795240838832922150150484814533767696473411077678093857906515712027020040658152695528530145920471379284413387640659599814572817700318594402071371141904377233513347455794234452684989137085117317559185312992371732025450968720191657922771213337708015881494304979405198213129330089278001929562041104844615776032114621098984503468737431007412994592719835573171543734681015800586694670432209458743947087209632883222696286644014623165391633942006742417054992550045822098935787268426377023185030099912255383668634737407174302740282106554441696108210744315880746603774607200486501923524117266668586853035015995017276918135092950842448590425140355554716393840021783368257133876402345345429869531982503623892969597623107411576257247132408295099968563617512393733119813467801262519482965387431203063898110034076663024759500373693931093466317974437509358849268529466015623679125778086778464891991928586045144095503923752637068358634136460288755091720204484265669560952736953820043728461899019938210830149878072856302074340844076535154964959586931322018498416846844989410410945843861665279024100180549644676978143654086189102566115416216312448539326197325564493465507631395607551660274155680257170807325245280532345057316240544880305596802841419075526915185773624022608443924527548787868036807170109453136968749335452419375045782244490334746582388504063498223851636194534674708363801855193371475008397805660073769809642437058206586735522281302341414145170736145593326416442174157572474106548168479679389414789995223104229786986169823957713016127764249291487646637460222296662208510255575917836817919191604766749679595100771769949628562872182297641310186045232176165923696408223707635839350814564483124913543181103041175558862282518773099149568482754435174360748435419579090898379274199099958586481573850201207977368011119444371027466551859081327816983420668406551891323033033280297000630026621622613360443970933805805743838449475471711681064316889057431924682091116086617842746479945154116145954485531365553455738162083163193630130102552465145620892955964641986576738851594012154458842912206015636494151234674903269622260020459743463223734929679958589211851026757698745237725672341687932240207959215719086066728297951105454471724219565460322997268484994737428273231287841509831407763578041756608451889029118965523327003671802679647304979149148072853665616814399676983981057183201716371540795592370762865793683620251671960194996972063806505721201573194271092499338929902435385972570203651683873659609824039263978582986455314889986650138359334424240772843811292545902048221429196826692696086359025561106240925263848688025268906626005329702317390365483012625979032051514726895763997922674585003712943572630193902809989250658116233228376876929298477055495407672472631620247422298349185025507735418162842913419025341619853764973111608862286080025994366571688441845236247452222623068635761579133357026862443422047746834358630208973940808892723024075625841633183949499889324133139261991730716949493404911171795043576517885459715412459652188224560045349959646401392029966054130730393851451815519111804231881944532652697371159326573957728268178920914177856141037623488569952983973981829664575849272351458572410597575576831939455900411788758368400699443129557801689496374257118196983006235281761501755674057961741757936524062660875686629903159230126582344989714589990051045587877824770297895197466128377928183210740719685776545262363400939972050341934092203388581873575208195655300191149434928577502625818734220765054163520248333873314448231472535290338159295790697478390240865153642202120484942096109006163891012872518024485742082417281709158197992555045293546040785399656652261426552880118222145593009874611548520374965463873865227483759987331745829015010137325578448343164168511987711393051562179366735982578973995423768777201611249286404553839664801270524633816065723003081066659348393929087360946153045635115348261929791219623181042275429065694255324181258054288650712933954686580302216927130118625635160447686175755166128122916119508804817480215438394237031998243281524879907572809784890920029024360945234434608069823536640499903223635970810864401870981792314145291755777469333110284406445032007057758313470597015898423999970252312453201788748302772070249423949740173954985710576676488679297852357050183560399273321252827506267017719915699023447301816903947200041181767098248113803515960043988564260215902310732756130141723946977336991564823335766670417666853335981523666760763188914376008527186045006818217945693154791367074928092454838729359778047166080414415555105993593283165831566337834766729932539308530953222191951297297369358987944709354188400759943371702844816309286872882365790399460030368651098776735543912647534096662640052507219607806031245882449828985283698769701013521550493491121439091103243993016768074678271511602175617979702548694568596088805618540205986905691305859202067527949067796722881756345364688554331320620509043213362054480575780979482987137463377389700086403015485285620829576779615910215616120612180688791757865105706031878866411897271143271711350505829464676845719596360766398083769392695939115941315609880227532614964653406903874412948457800152435668507559051579130939294836099091708698715154836491970968976405736985480465520005393925411128121409937787903270304015485369716608748225107963316152915446165474454395454412302112806805080831754258333788879021094249505139800887372245005311625551153103793483051579177381687074300343746155695677274160169228064086192066590588817860459531849746195542882131024334497076664654306551458165349155225770692183459946066420704986203904519246750154126241527971493797577233902008692743353386316106114608802950411113839339833702412961345365848291314246722596906197560397187765525817326066656271078058623530859837178340857402363619959759075175172531973704497826242389330045966842165230959527720285716617168964014444297142242971119498029716568725525329516260523266316176861924196602165785800949422641540926541925826304684528542011809613390476641186946959705225927297705096842777052567959174145659076936103400803751820099818791577593102206863646476237345797796944769997743908484067698622389276373979193523289102779437328830173875730443721818622974376928261483140537405473421709248623049839065450598836850647364285859358854790923893030229841553661231191573101427527247019133620049821624450998202842571918194167533341541803440358499608310469296132807133839778482971697935908846611586937819362087592276805924713539349503769661722186919131280088649901738745395857509996341453787805050171904537725958775576770912136686355653163678652383842686941826153288550054628484983879847605797109221167797073779560330799924633374117738510721070119677703555565735756368305248643128326683208256344684483763886712197662916901830587501667944453672471839765277779856024531089027558772358068936528347906098421458317276043338748835631925096612603686068932602732663121401349625650144851854957705708911852793411212762932530609362942473091539876368838457129470393667488248461372164269907030890802460257670234231118636013548287977111073079697808781816876504192189747532504090300737501459503354406977863389077170341734120645924387503027436928988788017672733968848386695963358681157208470650380826557024523748352568768861164335079522506118377264340153316089583223639649045961164730021068505134666696776004962375703370663922877391933748582643239033112511481867309157838526818777913341397795838635851610509478451584636161864083319877732672212610809377673572117034238759807554946073020097552497713761830425403151751277396712392535448215890997601503203949917751814333945384665409410619684292000956857690413709143062743989578572497037705655884754059774421185592687123047486796124522855302477233821175904642687887246953890418178347856291907015923507744660138005080478776880355811742266572643552927179181443394577022787570989178281705607094006318228598615876814786494886340858809645026213351868810894251841826364900540646887943619077026152120002382844188761305222042199775976765273233992891397565059315224854537559598725797356780107083433161843568548749577759295321729865374971628010476848692689498074630781790701432563643221778694680601940228328570318899533777374304550000595987702178646612594116934753824810865692895551637350741873959828522120894006862346695345083437532267601107092767849490787730445065364478480613678373924440339088794660060830710882222995506862483590986279424891038669390812128527177612319301851537606447622577287914100809887862294566957451398952950785572804358348532045897283089336998410487664298759016018592114985408718602506973083502448073223511448263158793879211845424489018179521347616380009818122528985740109159195308137751970112674776404638993963456104090283625073389615335738189608480160376935899919355579710728788001989920689913144634260276414329780006362646567273053913924890365302784349290850417856376419483807437868638628079143176231957449496910037644173411627773467672649672375477483627217598729960708141718539344593489859445667790603149868892553753667025723330017679957386676116250692284468371468070749564079874273776470969575643177507325058452897090223420811320705704882662273237932740072156048059123541890263915614348072869078702904068611490546127365165323701549345121579291530995792630240472019094165109273819700167088060720957593786966141250040667417688673335560955202869715126461878253593324098649779754560422547451399393783877653058142584393878314314882472796355930581003656418150256980006496807112915015655617370283621237956166287018839343893378669930590785013935884326483186749002248806089012723831653279475979480000942823894440688859083651646272590211158780582841860775151072157165856781754856224556152173001888293012638181328821861657466398180156549630111219174819932170483342623087694378904647588200937981603394121261516047137019904300216623555217947921702489529833976568113360699218018979803448912416142881378598993781838415963448582242960151899750728757091113832477495511732018913618915051386895255982442776452840853628380954637628018260283694964328833825627028237603957037303196816231697399383827635028808263866414410303115856176054768737413215050477878295354420993975214806879436153797528248618467685788052357086857310849814209784796218731796912128975520325811693655045520380404637718049762551090021724136489645466715527805363718520662484949615664118340537521433358721365863890641381581602386140966901642742488500163292009118295067158074218630386138495616161387264182078107008649959647335291246756372899797650017172986959657226454845402496829817352573859739275965964859511158319199470968592671203992103641135732544675861764300897269142789204915661930056605824900684780408728679668015337187509564819436485857073399014449946892016799382372688810715621055912116055778632890299634940429581234063371987484186124180912659369096681204067427812179861707816877129396301151820580443379180046912509387414409183254133966489832729772650388317456079027502006300094721297984723486182836591500220020929975489543101624195087791957226628051181649332401972238814926477111895286818464081956749658626014146959351368776001361402219438611691657080182202863547068669697684120542282815988449182284131417526197809546333972147467731031697425221265288017710095705857629758816748783633991983337270790046332717359722338144289270590536439157894594358225584776004326195711563680633865549524111522443977050117586858189161816598980113674031488396064238570123502927329738384451252378661694660936567053566497064137203743494384890839583605514634550925058528262991526339153948006888882008388662392268969329654762432421939166694908463995219146527022942119478537775726897038823581111713611245276593839155713047673940035420877119976516083942346563055987816730817942862379734226999129747511921615908946517408413512921467585022765856007117017107823809222621346008588134171191485417238458027527257440638738800636136944741461575400951162163620375533785370486983583089703412647834151112866425032132450261285097048120768430349293106816958501138089529400521210040661826714851710408256516304223249163669054830967829566931439260809742055335443969282671500166475926645986523284695510320904340771110046457973368493545511684985189017372770521920463135178857173687521621032290439277486210043269033222724187470907967991332766056534329515606058520116951189155443547790569470183430635310821752024492274240300282976436617514027778497412873381485146040109990998728329087860992762262324434035046641563971122936935105070630260202766214576531666658656409249428949372010866903706293081374121357201512490400369220374716625952841296670867947601823659057377048144569047025325415238091398408784545861887355152068405506824148237755407644617713057647505303917876179907905230576783346534089097817182668318034420209949960743043931777083245757564825670182138969212628916202260983437301249909152570880239024615255908511103817489581202182671908188983904258819632465680355701131554909669684175739369872235514796590900674832576127396868115168946466116540997573962755056767641038348330260088725071745784594627538327088290281650779456311364767157615142915656153094334627127605946863519338577202979311007806062329898726112438872420288282699972518542102642662124614293020665271311426321218275877470546798331350059022845823899610559786098081733606083701655564550368075208000410645001768454145818583440101403715978592555097008363284484252716065336331951153689961415865058999040192412313868679380653633146490234046683190778992203121454021226677554458761314502504572773434982024347659329270406823946095529867717743479048800995140254475821807738969129972808167336989426961924919098517010388939112844063015610005537547626602775356244312138647271708302838068041350483575575726816749695952616838408806255408937485164668476591119599586548379996960802857434325877069378184890384383505874250733008347733226510192175765422331378686781841510647898555694289627626617045519453810557207288423511188569681882039697190379744688605223579576388039746768496491258566120207697231037429250319532584160352415229788604880687274319341754307553167859460990249729609791239769492009121979261412698754936741885415760747031527098885275513971276402805743828522904492181432723569558016880036814317658321590406335721057022559328466222934390551581838572319177052133516924625893644205579264960654860981078387811397588024966964618691105336315115959804151623880474838502450650906696346674883517066269948268978364060201573784482560318188599498380869690983991244476416187077425561114269619338113463657893392745452041930102537685507368247209607857728521742009159676502289252081422927288965783640235901412353661943630698759941332059462704237589282902940614422768110501557533489078377835603627300488410740171980139064402565929440932766883054824383198325898587401088197179255397258954210015723882203500551086711737111206478975393611790921100382286987284558860008078462570936796923346215310749098616299777843787774727535273615279161443775380450842641461340566446059955732833705981721905214893246818532719504275957347282164767553103923363185798745484056996450309035095219802745353055455744712103436848909548034501836518553047207037322496587639149145147751953849233544080969339706623088266890739147514354067582911196066892118536426768740548138652417453196923226353576347721093842297626271752726976832300380264673988979485227518144380211791716765467504085162819132367188818275202619556565678035968582444391580976073799115097635897700775903803659111936090824991188732382305624532847285685399163343239635233297104744624567120011815501896070071598953748108991114202724631181311976601480834924418402217611380215300683986777727678839547008901078159575494060037547553005226947931278435595596176783551569373299627324679781676711885676948714878067404576394992496999062919328377736958792089214152955558127869207684104866299772339323496059628663888622109086862803286381067737416672680455174127690987748414451632597582846608530655779931651541172739059195369576952649426950527185781670221669973221508346523592284596777853857472191312274120771072831936999980360592195890480317745994214323519206765614028316716702523004200936063919481297213041158282126918508933316390651202187237394682492431411355214213661840474360741576070745299154381959133292185371973557106544006826852452744957207062550217591104556959414305521487207433832334099273879778061162625012910001381363317955178442733465620701894368199858757710698601560593632159947747411814900050351133295819173221959587812048549494348120487660262977683088431550552865334768164717497886279751409377604359404267346117258709906233504011231300677953601141459261418297095085888442397263584712180761312882399688347794570408679244827899157630744836695849503223121716907634657591759476379779294489948639270657375881405295576376262668492009713616002134195708661986111953953611286003939519548352435072443758392778073865275412291877596940376802214420526811633909947390979914926315471015620910235401599614011047846613698552140866734981481535923903975553692780407468853178832917228301098544727464341220925076510049704569577270276035096239749304232669771146503930377229835557441195713009810468757235789497444461148995926481249434984087577654227490249845071463502810747915770055728751345158663482395357293950707001902813208421941002573776664787261142091566612197982912275609053319007993880242397009259002445038033719137023217385533530404631135211689487565939978566401359009596584936228140107024429001025454412415336328199214043061933208772517566729990337953255387439396584703482870752188788738065791325174922768573129146486121436307293427861806550661073162395552101291289817940450750051132491693003857792364034922220546279757054229176560556544749932947351260110558191548524135619835224514427219319629034026890800116250083600895900848763608318920176174287583042678931078125380526115396345970361906017909898148717044939145165078474462973462989363009014645278731571940519869858810267577144315834384209719720390715746669951325821569893726698158199611035057524679117200108386382283141335848543239723488069631424189666179836785419989209044223846041527568996616587862390329537803285780205635248102612785239157523414819337171998388196153881188496410334376103718821596152698368117935577602599516990561230701055478067685605861633332148052070197291241438504028950523610540773719851588313542805229704586373911637110709397664175247370950814321542587928554953135163904520356294725157236323353838111958895707535527433014522997324089115518646179916578030146171250029711316356609250678922830530491761704686624680343698879784127929816325381602182811470842592756375522578785727666073193887304635608502442887269144666716590672087660451417691098771355152701774256034268376823659164995050953790284665555368787035766506646215264458985582678488742255669098465548796818268613426860053463246227830712935813002933868235540523572768619670259021473858758662703075768625450684173450034124680518488389000547063461301322228804521896963019067801047480780501576058938161775134442881108821281543268920050241540129456298742767334369457538084570411564490203645294341741927013194005265879870388964428123970071477881524862543258205920954713780508809780879297340403312676579037027342697604617105639963554360735493747354188057367301283844603975551585712906957647241653331218240053704653786084195437346395283198965604247137603087443674143139978867788219889316897735048851591117889049388910910583129433401591221984058589008617469785568152269565666945807724634005637286077875867549716150382080554256608763607988953502437367389878939882700455782273658915203494416951086458632523158671916604428430558730339498896554634223935315772302187892125356690988670357208089063111512477802088385329555117748212393545550009190701409514667934893101675799308637368931410167563313213515761771319069633380444776336362812899635841866808949038907578398103942358720780964525233598386879817260726545646954946525270846717168500836782097233855240637583640525966947677777900910856422587658967439579698885167837366809507199385808701975174494956840179355784273340104818616398288168737665915407613975450911548485268733724422540417606324755477145315064028545485212397582947801580844169559116116988700926212365722617625700649956476803648279755682706407320651069542843344412163347266159215277494861042643105033725522027885788074366225589437221519040018269692729787839695580932523672095384189994988549550178598518459818653654217174588121393533224611233154987417286829873900630313165033521246031075953322756685491257468758026053487705330648442720796681208524194111681062169633459329940427406244856277172444933514033222896938591727389635302372109725110717083061773194655416389609749944538632912952731609471056805644379929308033703079753459683822930737823249263053000798923266279068854943088554878534496451717751756230089538983215333362106887274901241228971829373746556062302553215312150711149814042791139856427053290652836520676423336814114241074044415015014751062697703216340101084855586640759272811483465736414275593617189499756833716895231112976702776792079257792359052631192534116845513400970832331441838778542642812028168327089872072837192033643402645965584788977534254002889091282306474315832014243910176690996514731416539243317240801613308750387316439807595800925031523261917872943068748913511576248935285358761926954139800510404903084407564238365660238792639666406674391914933859803695023709565206277749436995862894166790090937538842961010365357637139199641009789131851792364517919302965842215507823811092703195751338742545188779522614520871683883181923960413024360652287843331236311901482031266421131653715189426130692042200958655888383047937121097472506732540790100672334766902425280188231382694183745099790966390307383416538526888075159926319376866137319682326465826701109883140995827888493981612694367062398532006296764720649115381663043055878875068945212560457489868058733845249239014240568682754055576662446364282394374072372794355321357007319876432123131749008980025868720381350602623867603135888581758175893114783377034773907530571721139623240288776987269877487041212917851469236700415775472183259662322797990960215309809812694043140105030371336191954171582094151796646724419869954076367839791785858993920723386807685933670486156380234438273821970341685080568462221727010275281706337703643854082415543682995397004643637202648776993977461744618412188976909695016694680912973372665994280460750106033110560486991295248734810226249018960883374467960372224969719377078610253527652131202089103383231600394491713905809078584712415019096418798111570787274727200220431936646234890939082709291966896267845944711297187145912794502123201435260962985808352549035744172388124949937311475582884340254197224318596255083941048412141672244410400446185159832429140634123144292669351788127811929405427603237247245634317832510417889161573666112158976644995063568009591665605742240758784154330461951630899392232306307128775554788681500682057644118451165656084208839223078744672959849189340017090529442105426903648312067998397132185697666823481261294156878317564255545118890124779600531589043636758718237005751544954777891765952705489501935537929724397261466668747672845747523250544755323334690710412267767200996312316855716502778287420572575793364998527668643786920079097868585681882202436229700867714729179362281974361428169314339832441822076609306475144164890170442421219107569127335599978286502157334237007040174897165835033188290471199065447112987720143704159841984428175711394851506049565189936552532245961784879409327099291812152773988606578116444610927504535664360237247687883182692119801869558642115807279053351059952188555362413548421630691893794516515982064742848396634115005218749175056566465840817683328057880003855750786095364365821090368778654086587505400022129341618184690790088294709504557038155999939666254860747193464178530521211384838855766466469465703253051396749887843981143093136374029244555628286245447222592872889288470702954120704871699675854954043563233066334462328380642601278636425993804391016546393539213168863337544055720905361438199256573928115689158961547374087986072629778776471720568933063138077146668241934563520789340353938484853499837252055176022558952536101756917304994011505250339845497918744138545012459037098559875242917254663273964157827164067121241581437041189762009424975449325026185042933781003130332016345897455466825817543022931475949905467109322215351826919055279387304267118194337828286770788586272197517875481675299890755321486515141688985550936341391561196065650242726822364770257524862668078868837875130270688833399370793237867667985663503768358703858056288315618463475677652667605249434488669466872027358790693003737841391562115618635199639488368973617712430966286796424421884911875926327226292956453803508130549139193462570136000213290207047134655175882462071496285729261810305594155968108142197170603752974992707142958666566701213829344009953702266303347432012480138109518912408782896571264851590865575450269085666817908985995883268393730958661809586393956292973660669471212697575201374476054448131529385444684005530666201378699548490554917599856602682027316256297185023890263578156477997900377746815785342343176237207809832601937985710454374700061232120419309660400250315225339921655924599443085036354987202794882554916232798690716373314531520399276450219649863698630145504596473614456193162087872773387478593622496617912564152313726324010861520505829229472780176697014542616557823543861968685672862387392387693142665086813443318240154328199315847492156575969406015565777779467351131409575117893685940307873244060230305742656089705214006383467213310124314116556364098431318076312601835588097238829807558581512296375991094284864374879721424299994762445600858654606341939958828646065296940691724464481541780828926475971536563782334769550073475404959223752524762300427300749358446493678741257511948976073172615309878341267217670700562937376546539608402315931158904547629803117866322940179160691870061355498434161115960864878324239205584434454266544513475656933340895074711600997778910298700172342428596596773268825541018918392213681793058762367606371925659375575325090634042879116714777470655814032564371754315018298291096481981101603307225946899079300420644642585844563949738880315760210563541997017523078775495751878213515261660487438326024084241710481074180025511617243341619766076379809595864267651339725118337464634083451226749448218329731756504205633788871395267350994430172669427288917922025438073051937110251750780068655807000011381760067698676148998180159420250896277303491043264650849794527720403112082948402141626694599479861004778035736287828761946292292394892745872221187171157098144889354867097457175304565668067668385406229522389115158090423194067228022977026671116911739630583867454769793849701055977974276555402361790696446452725590040533741589904762727589461845021625291018383279422752240574883424369490095547740498966871972612845404140264722199967341187154901711263846419646894845162162909976868920189002230022117469685007623844835537275489398944174940666298900851534823680781112345381105010736083059247600762128982736726223319180649080258045244820328746952894373150990697253086480710802829566093406983672799363385469280045932122769581493698975798837959045508656950671091322105993476548944001118527331515811475062658164388821472017468339516412403877133647804048982432287847985889679634732847692136378199341507868436837781531046973796973189092698424021526855050595228546999166036070841111654338246834692808338201889588938035714700172115393205458135450473372894012869795769598265746607307968581264899298745789030766873165207631205418079345956486337415555076675059888414698711147944039242806334580370346035463505114323245764525415138177344670866277417927220973077260073976510616564788925245918904723892222697942958966742788009565260164578768114992291378458031462892697944520775299466198338369816067981344084150576335700898680263203400410465219198878510143920746420426481153793622991864337735507471638296164335507672681482062622501426604540479201475044049322478950308048024163370107870382456375133668158902835889380693916268237934058189081189813580381727993423205624888816820789230579850845345168388879857293970763662679291385726518023149652871935223912366744713702712321485342862261740589153720911642946201353461335587475100921388964544727133783234315829118872284756777023804920514496937829974234314400646260309424373539187007879239057140370429985556730376067102500599705473268002303897977634149515907642776911371238759247111416758317592888093571427783348840696311360794811871421879621557982854175806301311497808166043744042172039596032402025947517158410639490684317931593019120709681020918655859627674361989979028485779382301409500291043604558972551112166674574582673441295495192095278521001586012945924885046872796360302580045772723603830629198162079691680755888655627262972076520041708553774962650982939901834245598932135119626659109178914529704459596266418186296599138568009010280155160452371195233358730616724217561839718669470846830900812340709691391148154457476994065745533040703704000557170482104052938153722951569028813954057853925736697276521264126997239943218052099540826708952128343824103541589192284268722436728175979427839881981782386699406244542586083565344150500271831182849540755125294813040024517727845138399359422310327957101817277582097273927399986423888901318381826009238632287382002680423629222729256668961842438816570205346282464434001637813303733413492504777282723742958377260270411452461914277753852915791926476808234746914682869295648545857245082020796202623801724317448822159020683142182178999918589723667156666598548369397132796442523454586610838488140712488354819700564865493033752835688900558855683685088862144462296856283147116955715704317694061580326198733248001654649277953446869435128556941916536922869122619526910632539488925609548255560642233221800182725799182344511283307297131556251927653010695595361584627778610484455692372815839256882670470779624458472470813586192811447833388341719758667542042917640720647889079483335281292453046281751274140511274340208366202146542976982411089779304599493768567677033936546337791726561180620013923499545119157967030702094842600340133879889501913473756093007609897213420891457413620293599691993981385096391225447743204078188634943744479245917009697474323399505191069554619119365234988563719267167011184290388416627363467197343537102836763281374556967318283138656300314239559964591557399845961698984325372599748735128217766839829816197600599053563298833639921317550640824232931145796986629476092044715785473509978094475626041359263038224906326482499508068085908843145908344174791554430927410797637023646036717983498521461678981946375429428560574617212366123100230479178561289173306901731291428122401310307610610147983027555215959631965932576389808202688875375350967292363593524660587023930795430701727641963026208945670887112354118192859185306830548166688075155055524619075055564718245461740171639900759446436529081061514966664807026541955258461561504117042727467851882959641060450104922481964888336939085386048766602321920403058458339482881691728115799240365571626031833238045232477637012943152087595842260335374855637088819284296902188110585242715838635269567873974041113711028086267543194309732601048446473801001243759407119484907803791949129081136605102628057947949862329853160167509275924918809996070624429655579303631010950320919461694614140761587292937581702471579857299071475509629308620918246975694426984506130274455980376649406464170605552362436209416612819810834278525657222655367591235285381661428015895384757302497252558613645556815122695234935739294280419264148926320237465066839387889007998490807463676965658175069383438926556555120974054531472465876184863769857010376275882111886547593234193463261621799920757721224032338577554241868741308152574736072339746908592505378941792189958576221441888344688538261947405389924591715104172421780988695303976303111836822469729521994776955748966287418801772363118072538346200146515410288069883692239242668107587361165457480323007987351112661939925816247522955505353088431797863715295856269066903637869130213495795269901918782779361789030301875305994529457981189990616094389866099806202044360688867748424710842160829369372227019119189958113513623876825277797897561436818810776218644864222637740356259893090366070603934625920509510780547010352003180574040541272110112576003387217998617617024030070300004003080338852246759545088114498346451246590261549631915371289009560151931149050666359304491401164184671990560585622182200050183317438470062470229823047350738935996890601967219993250882036364149187608509767696928832751686602476583481308238446190187981691082946329863089781837377646047753066381678008951758551827427819071079774346849991338369671347743982720222583218247735405733459978863683103711362122303079216777039807517300661038020976576487871491537064666731827924557463294414113899990665985612665250857310855253245943720387128601813496052692226992146738116587002131213424821933706569499666345183706911975815558067492280157951875545438330454680296934531319170261066813114617597159169619922175886088111889383479226770338669042723423211804777167692181402218385028801961624222506798927358022961910115251691992599738172020176733100719869669096557940552677187649029539894683896568508606133333685333215834473537155295924858127045133903341387120202406150719094897447163839242072070072283028431154917999131092287524262183228931983429641254149942800051540029285537329417052637498114230412451559787665419829294655714084990932339602351592532509336598254490647163030981553746069879229677827405550056970041353364670374512808152766729160073011353766913502729166556365819233549789752438417538126503115870773355563102491337692645850386938380403680039160175292406791778525501400011769540116706164250034364683162420858760753481683194244174297920358150542328096596913591922129201606463867182425929289864541431157524370121098776051126753192361437351704872573158247724282947887881503974099996843831055272801540060681580633374019056422424004198165977245821126387209611491404900720289566866070928124859999814534833620835671469933862099208549723402883354087713611670713057214121627477199791725209072398695616651638855613352410655155953487061947386903511256076804675174550167326453846549955817798908920502843051005152548832146327677702187039494533096886532987435562948496246596613315801737444572008241954295937302624932500276467961170495510485077350760881602588391529810734846252529574076875711719713160386728890760882694530136796528822776173763919688050381475384789584736062768881157915230583312579961925027508868159848668434429137512327558762216971920048126587686359778682705330741082808465073770093253149155520315038171386205092145143804364834716442737344111175264897963917487383507277346214010571742882601834291394751270857171867559738863349803753725938368773137646122879652090183058704215970427680639505789662219474715573503664333330032797976497860545041849491190833592831344806039730599419491719994572867605406664412869762756944566643294518789357921105597042875236858064496832202848109372068892885666073059480043248979458260106254392967693432841703820006146093935869347408890621918038388800698508790543083830068076745520703497190533891017961755862707596373155879982207409497079806376181493091863642686656387087586915553556422238416484625412094546832862457218981922038971583065385100748313368823164172367226251495889363014811106243436395923846649187176692401740091373389513721674407643458899379204627638594581285387403073003144716002405075404535765398345520579971848414748569678480810290268735368748553872191582129407347139934773668354176145478895963934629154921952636922979058375655272372324730563505543845573419219043424218686893658652107536711192603705952542022286785834186739987114989281304401449984872221818039884018103524444120820748313729305151685748951318687544154919365911728312185269230028415222990019011723223910199394658075711899959836724074418270747843608068921113266399097156055927827329303580668369572191646621108483421282399777992622043286455288045162208818305318351758058921959541145192560895590817967122148650246477144678799525472574678793357164420705369672558215918378334544504950491867115837814939593286529024909442018393287927996983307806481796421245364033962542339106724777949581089025159209653136766193602294677747524273332023803044937163496105049014669171833540647295486382199040961705724827861883196784340718010955721350929918648930663932693929466678694754384264318336858955491947303113030550077822795341738630492524985615495332075521596226574228312023212846264827560721020389716540879354440901068614362981280766118142051331740493199736607398131781440757415999972133380992811293360500434804528283030892301858727989993025347718344494548973292633147614414425661674700344755213461851266664321328080644831888446213634286481638407462114331561243890493281532968340198913848842088412107517233687507970663106724879937359691237052080569326858021508961436620865998176575447389737474665838464252972624078494565237659658360844232397577554618071139002012841588410897682723230144708802871696080509835823749562718548582447986170031102135037845851250921505934041825821054441876006781235880448426293993453740783437034491493961350948219486292623520266220841397490606111440711633620406495553660631991752422184521703746890199538333694563978795662913123233455993532313262418677317636111664291809716492299976480441409740131905347692644457394401855390193333483061843833048437019727769927733203131268774852661098507063251734884378352485455979431035327071245874326367992000584156578253945777267387031769821036892693058620524698763977671620494730046641320497723215888496537368830587508278346151262636543112563410181958927353146589268486924289647249359606457532827713548909848690112885858867488562439852107066826799712737201155730508526049395681821841872994407377058437378346335703866380775695836870132174940036561376482684822809890824408167772042121946552357111637646351480439552877904468643245239648895979939919760072953681157280485694069676810024230593225252486009006679902075371699467674580936000425271465769752386185570055720673236576450949133932486829261008176567205517263313207929329416767705331187933030812010307136279331553900151036113861103637332303450528618170120906580201677237118280485189445029554970992244648052878865073805773282287185227778913637933977817788243908518689339638816947555859234590961547301726950227965303720807497528672131934285089264857075893818956445676853168021649179974357664761388971591408398854188707472796656952259127337380827453229561554637731882105669055772174766142820517154941498227409342555573814832920146420898893628468638139688206224820843343986860508655426083361017869599475379336974316574435630041725859927310238670659572844206205128712427675004857343673549537970581336382325443597637945972537064509985005236224853572035959754016468902190363372183078314039293305697196202310064850111552875293296889452412268057258714264886056265875901803063248062317420234941745217861066543021709234242478110480385145471973691993716700265363834056447665427160085343892160059487706630132320361538328905089004746223254918609055150361009215842263493994088060961631912708210067673532898805772837013815551368437852116540218995859251451795572953369939948099913424461835396116952037051382663031091681080489943074141651225536837785223690481300741036889267883733944697615012724652527594368617430687799901669839369772594746493752679951225052860166988385009007665030122552904304100011048238150966764062336344696266639498457866658011365390722616867112829900115644375223206193032727320243150295676907236970753486439987055435548409082121475704811955060244201482668031345524159811528520918246418513599208931762957185952487958612580979783811648946009852907290244717303433991079807183534379960990103556923463415745999505016906072991065005521392959325859100296443605222261641648702698148079864093588310629466756651905168170604045566464734839441428789280190760756298451862749423763694716474708091831589318038911188586325955510170587003407874348476581323990480633559208616752923696063931720234556416580472696870716905662746310594422537435342840573584659274297992395182021829240898630410154740467302634290550816205580822979846477991647588852897471865582078582235110636315939272043995344470047455369930204533008234778537858912858937465661813415408155419585086568760863691311650358509651210045303893291067097515698746559265764352696303890528219033048272118793284133019903621333573841311316979196091407703216617638439254245289611317133870911231728260712066786116838732062528515009083082327124911882883918519304998350436181158123882538859570266080488735749403548910252174206513460530917259060652066800064802123950735596296701254592521894765209848225259348771630675306719261761108295348380099197093685883125537415858558712192801325454073795625598239365386389138167189737683985861141551605231609265924766959263634680782236052948624386375835249951605952998541602597782742644564655006925271102236011691420327400511386093639335439462647359151910204099409781845013304577949816515250732867704684650242634079122896586977925370951977238155462207717531597071374098963719343116981138800053833941769105252012966818029689165612130738393389192439225013735277045904019196344415060892852393802125170866223718480333084182981184812294731038985137340287398408411971925757328742539559009117490785880778849733737446843950539182854455596553925438450515201456562822900685602900666225649040143735169620111640618905516007243379144756885121056111208841472930977576798293687318520286734166822609203362258620478406356633367545026973784923888404808882946308472919882445937063516264268706510171373421166541190959801324987770532441448691036173614376007144261115475268998315913741977547454660835703721900756966016740716839668917712231690929875935509795888431933007033526358971159171419807704357495199547072348858928345932566690937356595386092282554804701275253647178121095442634676109140148010646629898927692826452336940080289331949570245864324277092491164809339781723348934272773009965991617542946786541842756568284163213687057758847661682806603628066319088173837591447672721852409816953640515760897898683808725837699176114422227458225526315176000436574753858486659845503631914569449961532840484925436928651638562195838831648469424637063555636143420117983655986468767251788108753607468866054017208738905349715526075054863489123473430481506116775325074457380989672018614325911041150210164316775604592434220772030998874995414764204308180564647810745309796639251637447231837586097858131010840754031279706777823967317302185467277468720461369105239722416426197884058713363920908953622342335185585101557797896327793492338416904370921682349228649339016086968508645150914472548795909366859332367855711996497547050530815539739466920252041821484292613664347704973077560029887901561654328682438634519288015297076127856439841340425206326802474926660815673146539195116709309748903507247074760909461801101606145750293514097195593455100787263738843354533146754200002907564535104635932871836696725226198940458177365509632362972917694358895611925889193917141858518323135841671854257972655889684343264739745730167425776848002407750663058039662145559791405554339175690749993951264531330134026170620725337120268781700645772687768566388334827803091794600822968029667011614325309074969626647327098657958515179449872838817481336432976162924219875659497451585409426858563360976193465279335201556393908570980899070490696328743030761042866304865006341964313399955163113606802885817748111490240511240995507436472336911423371667186734807531057271297467747266222027358256097694357839944525176560822064819971653057850975477588873453932147068631415128593648995864739723404483782976342026643950843813869726892312170450819638103813831655707760528827765824792136732036230435239773298824079394994160197391298410680625244638869291591830080563442702978738809702832184952502972894946330780823877771614294831257794683206480958481910240134193128665663340714150397781043841999026608183007076440197089445889322015387491418005934695076295720252096228667555065637535328851976620868036066997432811669713103577079607860140812003922583329377674065995202264501933145299226568718259766851051921486630991581192481687279683416630147622359900550714741485727641947613462299366266993528313490042482648443673715151445016943795422815596187943833889847892197758638883653701220523908884379076846616660980566148630655540086341302985789162035538728746217833450940896151730879461083366721110518590433383856584497313794378756354055658484939033462049707991395141579442689393989500549176856111036099289933821840227792721186492027827735795462175145064979226175953604324581498148098829641513399184841827950158600379592849426217093399489500492745214259368086356472594453768190978239228573690195516471804214664511114828381591761543134368372157553287163190394125404284936207060608280744076588904897746432265767234411783004735681535255051946735172950285916873655762785504317846957266858269534110691831463102954699066277908344454124022049422192117406112423953964912327325887059897185004838860624622634227537879504498721802360366986744467615549374280540595339311924653290116096386749057182474519425743685287347061989831667717425741509461024130978170361941338267482177467467382499626165261739652666749451783427856528653212037439924320651116251067157445352207327956757398676605408848408194419306769059441074286466590226083101398942586812047970163657303463059832566816284202587099468078424375791502303379300631404461991942300149739680814233345094559055467078735733094870797826930205317799041822114402800500062060188688821977361123162235494329470815549452681866651107423881809604411267210317384731860381180446704228552062132061308136438679090155915881056455984095944732794461638202512506578184603364710420623881868639470326153864050798564462122045136151855918718287774059568943559898603047894970369791925221662479697573760382205557062034037148889327270449099986935591446086137439224695889390574990289657907970015617937741166816296027618950818027924727133188705442070820305167897502670163787392526725227817947785207134255482049209883442660990618162585984916168691118034458885041827865201003669866766086277445528484665878292546499142635728321441836401091135209558971159462794347222905042349669318926331098066370679945703882087164064315213185521534571778058827532968525962234565080747765932660359102499847712163923572426530921928085555263539033507961880470925383859210985889740527584520010587478997091812492745588578017105166857618989166364333291898385791830023571425679402575957683619325665993353338385637484190691075801872869588471903693520999234800162090993428001594952145820118573304210941075430537125953817844848889674301907304554746561327837539108600181960199933109032572035142219569193266823664294721933782195142125436564850935190983418217781312702619863498221466528029365774556773605090710007553840944857930594309615808157746933387510165467287347306195975835798490556895195443192055852370574574277061192216213629677434807793396135011775970463564137253789658014784756113879600793474403229835028913797758273329310183453960166056507150602023712482857883106527439020405443543970192712548938885118860021150560051236178402851424745806338639009131037739958340504240787499895666640052214188867663216669806607945126377589248404157866554801657144250425357841613125293981951097361352368534110864484282351302959958206577882248171221016725346816476428208991211577046185203161524011301287811881264308449453747089467873103709491371671487674656645069283722975789027779729716394469027890978985107873045430275746878699413996512938738966439608938051996844981884314848656164669745780154710511572465049852811769989813903230268953509566214123735207659415905996150218287616776805921332939001197382619257416228817450580944765746920332466667824052615523657626218684681148156692781994273369171905824778228287417695979280070247063239294885356215350477502965909838628448195028650118017100257056966588580369780079330802738791041363476840882452535265945422209970909267680303721327953781473454379721049309665536299176279292333484847766116381794129837740894673609742653201229041298408910913139860625602003152088806814517013446063856620526553757511915411324616601252359041504771585678044709092237032435851847742419616466891031624040420021635108888317988427349779819012356633141801625669960979472212455779310276293753697577097779540169048504443022515965862130571001372338391710204728466266477365810053590281438880909322622756403477478457091087264316849802871290308213175784482763200435337945493700228175753729520972256284393384278998948746224416606969759082136253809056675046645002657148605526760895213242600689455018895511877526560413687739209992168440651521157951561658033670423981877190450358130655349496455871280488673200127438425293400404147841459829651912028317486666239474040640062255185202078273643854344944580849002921138094356131240804346324555983638153478867702627013082779052476180153835838890559074005960444386576830834140490807643772645180733964371014331936790166557472743371857118608797636092945864247289295042818915851139417996670071641831090995282715756476026632364546029954678001267335922408481740029965056376475703665733264089831511529702573064999730144719950245798984958752539627032072401477211041428335686589704178431561593546725046931223049226244829657593315790947263105858587306732197575422310055278042955940011167343954059255577831406587959640319923887732499631123712035252743050400437962559326267808026478199679212168778562145715387038403589273482178971962243080133287350202062078354271363033335839139454392140499869145186352291217669649025476007720338874611915026629553354788045456171632943008512833189026539134998655871598888332312037714117097971667031636402530772238768261734209384990674246184841098612665782113264027129674697711042165362539270178972714741125864976508806415186504635977533222285800562625967749843867263538950676972416233812879373145402974883078586092779175852933624821877018399113894654371258552926804450883866907748823317125610202264331257570965259275485390494086832319766238016719229307322301876016106667685237787489264646977739684189108168768862047981990467491879898565194036650793555529352167114110642704241388150601001859255695463741790458138746482314665803709577126932530040400828079354389600101162378739655038456541289620248956393222776877866681601942701760261210642310809124666965441910026959158787043918351688801745700513732105878828358144703608446393449166147464100573801045803626047911522791119113920315890844027943625000902446484584485818801584453180406541956640401107804874988431771173658687445188734023671026312745725575816404001734865227278650885390943369374729581946711239091712625446144439532371417115221938538224217486334251499819032510259375104302511005426598272173179543256897597445096140799007409996108560577446263458517077736059897063757815085622037571987221840697176512298004598444961295651353869152098779295186006167801033928348143233725721493994284800581774536111047401250526589348288605803045229140201648775513078044285424540207522270327455661526795031644318957736474096526755178144553501030261914834645793745440667963594876367130297938580310722260351508908827444953092850117888002451850988305101110807231781816414981540511721723288929033724162320266323505974074030535644761261120350789564419739830199320433150066959250149764446810599832712209314204350680911221012611795424514714484593052426824994093626800561378585158567184582091033199744042163256208636212079135563667150047161391328622989481584408570636317378828585799043496708289950091370890695471836594163882147042299215270004725657091062535303940042388124273360620457079030429525509588689181365300731123127697765546946582458121798179014718915229844659058716210860493071149861109661965055157496153232948045917689228530972494070491719388396100436580790988337591905914410777954322341348556561279248219063217584334168788409704827429868957983429117072989316724231200876982545928583288052701479029358575613070466096480902284554482813256279784969272589806687966335669620439228009500838548262884131901103533466440348134785553899423339038275429999174677992057947143577456865954621588453687288917434676216017904156550075225700746734058040661030336846621050477058047048663937641029681282695827896764769892564814998032913701324954392956592855941110907749920161394550678818194754767582301978265781985290681038193232411987424365812407697295709322203662937579569381556765978780250200375013383262131628759573144206237558258681701994438459903126708968760651344210527086856420071589045122733068254327405560480689132045554001414588421727492027104509275724034791288512978442338772363905362440600902792477911142153028216384934124731301312029315313678476782666597865279442943675145704753198828831743628649516940911946469662537803698627496560927207645448292881549499769483203740421449773251438325805587648036706607474144025446734418819225372046223050369038638334848686675340128963607523206839867364777202971489572847266487014027926989247799918825961632101617937196320633816723376385616213196955738426952066329971869853935478518086741135213030642969762879165061540358253415041307195248210949313789862642213335267499986892555033222116678399471179736195511048047892960456235944984938444694035071625278635123983283977350689437632033016516506527150803853571533142403049030267643317191889200728515302310131606348766928565522789101060025158741846931643729879140973071504988183333954189381062434723703791195270377563589843255252515484047580410192033560344733751163884134248009588985469612451531892202010912523653899751178673401233955665689483396542164394761026959159454535314911754569195721768741296719601505271204437928372483983679690337958731747235911799315352981963414306399146437096080337299948738529488230342379630429969753058420232538509234661678965952922541059403973145140765277474686781811397568591244099387681382788594922262859298836968333092047652633747794371644403041502292916795176217662995624819185319351968657196497325105399415487931153671880658993594238743421212869398188011771977271609301717313875189080327361444359217767476031143560616360678318591271252822182205245222323908494340804677846767135473673008639030701844785442730797833813894016471055299310364838146575792156292305259306084533929122440797154228478879284559557739004291134967725695411563100216245710300309832146577298372867779678285174839052424715583608339255757093811183548440569095351273686782635007418248566905002853003779161439014786929614644801514950538763274868750786584149668099887407018478655826956705395670043718017421414560475271387546909763754573574602268288553679569760291486921836306946811091805727595179492050273563936734324943923466635972029215810663902260232526636581503845388020738079190750163955617411037690733156144179411662217209773473277776680625753259216029199712532307850604560672066020470325821626388721473446015864907020189530081148030623096141257689169592013742280992677305638501656300580305776906914023770122328626253836490132198354228843822373568896614502542680707855634912877386936329041966653599470603006941735998904146021980504515751815431416619576177089167817399781465858053263615986877705402448039468474739886536023128483785529354254272129529741855963385816552185366766847557194342070438744816980852425404231827083575134460041187315169917428211510548309575232795692045981353921585804848845623328564765679024404201413554174793623483468707983256453493241762310809127364117786240883065035210209736866194223669977663794747607344881253098880591991223605781593566690792944268759291881679402948024283492666353386031894815295716967250693635629901052797018021639942087593657847780447588668216945771810272609811265475652581660669664180695804333381540002087270517299902831582444133092347236387316055315414318526561325539600237718799480999390229318248094262453643460926037337780390203016005473612209103190990600212079190392354492774020074222836691918022610798521881782404465251151601813873100571053234610568008443427749287490641850311468169443830487793578670431018026561786241133121333300621479189025792252411623589390820313573857832662626778032291617017283176496671390995338155444282161775665537607108814422143496599743657463872837960833272819397868324085623501357346511141862479131101080262892890828209122356996959390806901031528564334387567596610101074758900546991062956961677938939394494046026101449159550034283760094999619956806199546261672903386579284927145017277473937339248745657761440089361795992213212438686394666912567893708798835996095171878014265992875642216619193144024898802004511715100318053917599168756754088811336697668870020482675117356733910900944546759119763685521358773317462400086956525252165346923918555326503771449358530980748738682016764936844947830016015824573469521680651031349776187078761723572875385316973888191307773307283147241767975333022965653369816179155877489380735683466494461283747924239035143767344904882392362570072875338331198737213976040964500102442314703790757199112193012877249941240741818219453429227495406036868273634058812475474010920947449425962685425160211610250151731565653644571468033065839689104586281031032882974517154097363466350081845059822982195702588619772727481675930637158166261477393952490449237755751717333486638817193921475486463485177414219306732829305348054748806008983573784566756544362085477795185956607404836844433310542446285880516432624903866189998597564240513317456273159758679722236339920892836317451847706345112509523959522038470608724689907234610296789197492381061697847166724040190339167900996441538294799506950296788136715730055756940594391795457642201571629018093615899813440027433600749436358103922818166978388941766147433030816735630560653141673694321477358423288490852700606496806129607372815223042642882909287509888653347401639212603546574300164225429548136353122246440774826422454259356738125481925508663273157654688143432830507666489953328784587652622595735352259202384783101798630752129784612801828339705222623922709733661943996050664131538888516192245105502693841317657859386574954099665995959250079225931630552988994341671053276569663976181036732205500988702624126071608022330517584966347162273186787934380383421998720619690709263632603819653890410103137515444434696521154112277265635309023577346752309423786635061544997659325670615973280017141356116837501519216374198736967704351485502529049656423258077727521965206255676653285312063708004344226883571095482369074975212570634387224128081964507416959710737228004930072472670134322277391681097340661451738687114474898807862481221533442935958292195663157834116314483779342371040058050875048491340019491476915746688387546222195117104849431704124281992685683238792054227735812533313567385370006642631422439289730450174241508644125586456614644525387088066861356223303776997933678285734447078270194965299107166376570692493090489165005911799650876441641175150263306223872023414063383309720675266944547325110398441528078311827475434611401047644436474141820505740216800967172966316856870758149027008405855714763896270887507338841965723658146747612383814452626325847231382399906669550150103300238278885738605427701811215565415415032334844192245736128910512827207378492911360142769309672897011766783663622563789663022892222154433976660183326207516698342511895809430405537852947137293532088106374138869627709494160839860768009859240421343267448364687352938023833694442411019145813889091979515599884168565473421525532792938211320880963712518868386338349287471157609517329550548284498915270818075858388675806533464868348917927113339376633126409137804918203660410058283929587326087230575862102921375054874792407808719408750760634198264169679617674967829487211201287046110132154814940139977502549123108160455910548187883622268325147475250505836401995751742194247854948039586772948655630816632510508097140978868946026038173006636089923359468264913626651791938351179815141693277118294878490922638624705072016275353050763328665203028147903252364796332650237348398222375169709774308980157499505990572360758130522141330903864245728095523790451364255539921474423088047990100168047196115852898883847175491512997268183922601124753545948170298654396720520050955613997232890187834289159634384342716995998299489178892801364012642638571519291507540163911283447015244368091589597989161412281891945779437794287625338027834066913261634860273018632496158627547302871869627906468628667412194312874588476142915206035088403518697450983583281165969391424114176606485952434189489166448654333329176620982173158064162380152161405660760333986864992708167272709113385170166233544923475498188290903645166868254618026769830814450623337421599050177363119699323271177864688895656155692965501903519162295229113023211276548808296562515764223140983527904827248841505118067337820909952758516847213602750318911002552617813919639524398393212687030279449796905628351019742122228650905789109130078234050568387695741637997628645990126123938601854281160521993621115500867182587538856428979994673332644890976166021831795723921533859611026539451828582135910891178770762051596200124808459679447606952818686709292017924123377399758274414223123609049356677330388355760033774701513359939017969620246881322098232067400781758537522352311514609264149557894840954365716072199776382659744849646926970936204330162146786046183759444589136839263832085924983328692503671061926297987928125928802246806655177855015839070778434204679349293788749653975448335532835426797720773025227259326684133372197955245440978650816841759442612469505821821753630405973110962087007479701114067095631057625984078217691259349462699152134901905143976385509075676742150751074262705431005548137101512110704869738880003072648400964022977585417955042179159544093925570332984063658821506961065224919154574371141940592919781926739912837671520350203017176682660330712503679198698807640919313531759883994808886259715515829216500963951670245601964098852124017056293118574169995618365570645580500604791353734361467176397052044530281561314364056998842025054750572067652210628235355401140810302404682084762549863784027196610499994211388355477614488323370592650790560268399905587268596422545926561011738691121563874389708322832777560124415580282472123221618458069218189198247635170555809348194656151931717878344528055328261207292571124859553401770834239777566297354565075780433735412158283583466431059856328352095062055521429171412989448308166222972697510075333431380422159336434793139102270290624927523837821775790744009511249378712757203068808865363248413099140226565780014114603198408108404268983754765440953182981640770521830671784882636436590723485133699710036123564947470150475167236242398093381762077719719216502782297077217526811997312557287381468636041006323210788846292687812517920726253551429587874231594898884589738775158441073967521910321488778013425770319295550187790351766173514150365311855319045550954200563800613094407440774885193429346145000320681463820797605311103354771349599392710431291797342936597832815819855682140049852218528014295005976304386413405263682539244322395861738545385926345948286977754530538954259770447154394191932266760495643743346173665891205466793079803553667794540078636807942222746055430270204678567918740841091174478697015535524669286247389438985943834281811431791255233027050565426277537971935621133424909109831788423806835180581735805441462773987454976700793375908325588036304231892448524514955213749363419163814002089396312749261767925151888619766607231598657236095089488634550382545290167175929373309014326854952940884159534233305216029824896897703275402614959399687798314264381112273790097967572268128262509003790304789439671205302103861741128060849547911976681152768553499389630336740345646707542565307569337824502434064269941000541434464407245687658243671584900359589267020367305736104681656951325522394232753020035587148630527994881769892175425004496943134900169963324690426839451218908328259444754606001053134670050115080203354010641664125041428701248870249076554624500264473457720290470004538546304826293540992575185975464831051591520014120525019974949566177907388062269494002575554334058933145265261787793287027794093159144262643984055827100460168153810409663868167155034128259275197702328684878440760237464391980308946022396079863270108729986131727163817359661204683403376880103660778913684039538170000603705926858552098860421631402138077399506712212083801912123158224163301884197015563299890617403340443806221695150815118243979272935495196937604586638841660118000066787148230406406873165427242511172022084014110949300397903407970005398934109211037111163813280100123319713259644600499050328922221742475264037341204703993850096391311088507515972285676359807539147075481719647050841354946836957238291357245521090625583134249179026978960788695020160218656462668861609548190315342983529581345714068262303433585644442646534124263759336134708804025930073285997293388754802953937119006601791364255336380845630027648329796848904039808160010190507901833556423485148362525594814817665521064579834257014078526793087404324172373627612781532979711972704455764477543434616615516816763932559292308272206506812348589812779519363148027435365796552238962834668141658743229333004049282614211248517551371633202170985051501114307029559536414865295366459257364190346117277798849330434939256779415480803264550326650024016340294807145475513742274038975508837026775608148500603121468562061918338749012818964235973432719222227188515341622978570612979042839503409597340954869866825292749470523278800353588485874926527686093750438248159684662525330347129433487754275779601492970782706239765658547987296442444191649823292719222812806058071759678745195531457783593203669965314106299242657221749264941118993443611764409829988979566032082246649172828248859361922494339583750398760789528167483609528604861758363814187277509186199307037325224978759168843100913473496785626695873098968764079249109242657763793741953528606056705230171682055898671454794767685456497440366219797061649225952942681341143057857963779762974952333743058826416911186989289855276019455499157377917704800180562420886308270572738827319415443697112799725840882979153558141144692927924956132903430682587346753994883928369026801803248728787393397596551767564944485920480422895736196329555735661385172416096321063364849322540513938336733997139487139462318135330097466408634190254645024817428060678596432952887000316645161999233683919807266932188251451358042118081321854891146927023199859196093180486958728988731701032991564811336443715324815944292758904606776232882542997682638698637083417343980130146012350414879306485975057473673535485284166931611602222299855043693391419021404228610613696703147687765081961475504134167358983400421919276935371370062803687026457882632395575289869811337061717509872262529248142839420947151693532727069987032870207638922203634043794046630714625452591099803236051902023723737753556094779267580797887008202103500136606120212588097377628147147338640612048299341611250389468232728136262713417129187469070315581500437466163276061863665378535547453761605655244108769223705975450627433673094186103937483321830182635249972548144086188378688763323302166863401024250067725368178755018438277040998170224352992475749388975756171306287192021331678308912601829193340265875453342768046974547677868369479039320009601320069552856903104225485593729328687591652641326741967990658439681432558787046291893180905644168691144957111988287238786128834921772155747799770849170689585027919558775957703483099921057620319524361841279369463112852233423116767258042087212125977035712489840380271241952373413549758028224163717157898603099917849314531891263349610264935382099939105746007115442215047206130619408094419954517156895920018589067761377989750772391611296340802383070228642280304247919238671151439225739260117180989763499505314290104125804962809343883692642739521945986111524871111571784492999227485331459667711023407443475202485505805735362369586923450840690140300148910413287641945651525671723347849824797095292492902703353458452280307480653820134292112990151804125376055272939523403863979272400023998693475082629722542065703991302452010813090030508859214554833240969158469875045471624242682108285704654009095604634880860199464842241927806937587837031233447016117292300063044014731357582994053622684132270824953272397792029768494549771359627488682805040987350274073480859882780517094135036679210532188369367378627095780987413689279375826170918129795944268823319538813117037371298954456309175860742861447158638104756486908240843068935815293184878730937740196996622636143811827574045894184081096543478788567679531979420493606925613770898947222764179047343877585304250754663164331732140056549878218705418569609771939927818476985471968810735221021394954355900808040212354659514650633580368983850357512639022703292939744050151765617493808072731436835931582024358247511198608121534442641722592728238643303350830796062181074678318777658576096301993328462379532211022073619194226694575804857744427432051541648172381747932673911533568559119504641816457158878818784035955853436487403102805933428077139385593181660041006816115994876113444333007097496408974485611028755147017295797377347275280759525764746614088114992666731241244844414468188463267132768575330711130528339455246140240823183447529745405440987434103306910974128862110903956838163238538386606218938714331252465542181394585078958582917895926062568586439923328995880268668698697596982697983100422505608595853107019036262070750322641806462831901023173901027362550692776654109744958016556562011410094354480706065103925980855233536451406085726295648499755862513361153609163469117541639978480266834975813238506187270394654759879759538271864633614633919558429834777738111933344466373371716311418493049200255644547694252117994155263931565734999889650195561696547449827678969483882011856876822653108572588281396080031132203217250547263293736105092440400113183803502262291302932478786844388522096705707395737917904183044489470892802864142856100618397369197707280832024415125566366301924268887986498784046679334214869370571695591641196630145462480628527529510427619104897049647371572206522865350683964494336186746302867155971244897800625381599138563702476862256005217552718700768410535934887134170996373561012680903029157945039259654639366914733609659655446168062153865996364108387247364134219784721367742493447083844744196648785416369412470290554915675354636351585865812752803604319001066862934573123691551553083548677351388027750196782560073466446744352833295999424742269039633122283106741857606994869116922006649029023928707876064556230264030972810602500679027294383066289355428984646791666676612346921658934558512676946169125087012875243464338903818729951621462435347023022147040802627944318996682375971334469561025079716670483039436753197153282583127142779787505797596003877157078690700864424338811680047962736470863921808759308869599740164756897079100245745029990036234033969820478834923252182962622398088766190681345771663355329060344814951612362964458451658991834926181030383715007889064872768479521973253928589596545437593889580837283694024987496685789430092693588747006759568512256269044865447050241292510929744897130284843595648227115099344271932242315726460520001469973712196673273713651825260824755444665727840984486868361050062772425791280837263685883697472786626451489955108941876400624809242016152666964162692100450838279638690929286321991154948663195769054497379052689376978871741852533215722434271046825337060754557508516368101350429312466422853817229321105976214563564229771107160903231096149555935360732544182711466123231509337128722687975242347590375082714415589690357424027438354947752992254428707870715489922249366147738989910255720238233488446057846777313601310078994971683031541683312139693666982586963269053955048021692185547676551049317712370784116862893562284790832219778261065902979226493403139179866491122337236685357959853360572954073835700473851177732235954485617436454942780888736581672537670316549364283800752260524741030503107256582184790313644803165802973883036721542794215166103584751341145823721809609540702269069612064437563780814584488024333270873132238548425889296386629789570399228013822934867210585081147872093122797344338899108117083560545869254297732263376653236006945063836684384446588984350179124149261050873904647012033951671341193340271733258586114581462475042570196047036615257281013811485641562083864439328300051559026335752465431248183296122110973798193721321633930962718488267538977016846001587138166462241844950515803354492813651756912721069130126254542307000228414872012643620123706899220331617290356175127970412123774315639411178653071304972587715667003767930584983401245531661943959388611887730535416743221418226705127761345873778124875274109991170562457750302249765490260888128944689650539411123470209909563326362161781685894129626105798177190815285885374052036959502646732040365139237517489894920886949835300884066769851070141406483354041251091817034696855976270953598953981973898264067425395770048845838329761204484849204005055957763863855107633737810746097457535236545418731364158517349873411062277328044740739667944400838766712924818275565303960713374766098364060199923005535932182668325303585141750085955322603085322409290305177396652194819932987163449617455611588776016822232724390389145656828690348375248489690449277695172816662376695301953763436199655503752024582985952809231040156309684756447545307755940221284247625213794647931068463264716387421917982301594861499114644872934264292032984757768503906774536688476250696103662164303116047994572882709732294852790196462492137643191391681824804154836026990547190430336201660772060208906918889644507992168633921462813118847463224992896383123020949864720038391775162309825671586932544567506302810565568297254235054786970014124279989831734876822303877089439504072872090772583056528922248703251362948636024333092041685439624015384425876281760064240593116764428119323465336160014698000938151250067030295202270301997426415411123322077284557075076386678286081317865399818756168199370332013785233874375777353640748908738000829262056076741026637378775233732795180116382302978948524545870084648685101270146937357287443853463063618971256241953857486852522477759974271890091339297437862704828895179455465531187000480182180464272843482073954190770628203310505926957672770941007360674406215248789273600570362053919527761948115795445424192239931237768815315963302253607894431470224013208148059801952380533485379064617549346017854817497664372768068379592485393720891195628822693149432254210619302877227256852093523282556258729024090281817095200716312140638688488394093708095956299986464085419175102801125028719708804636856076807960390419435772680564122290324078777330599081460270445726260079183413471222471684103859863865598095569479713452285366950271751264719813934675033421106531368271865533700380691113866774329485530011035522196852770810228712032774323560374331177245365274975220255049123605821674522206475726903852408649696680311759166590787911080804582185005239912049085895367673006511712091420943373233505800812960713767217799230960700660783272984433720115148703450718843740059948633518355432675879262455416341964038033277530829116555128978511787639901027697308240282835649268009681191751338380237207874855660019458859970037565158948146294677783124837333798564866805752155732160445200073589477042167021691541821262239339062377747284096313891513475702078544332644691931334748375260849697965031725127962036917567478234291618022004489194990848776994006160581339195624487954768917590655446095623793927863671049587365828679983879842506421398928554847621308221997182513868769015336853922618272938980882420931404415531820978124624136538117293275004037589403058319480775217690928708140872909868243522432533070569266139807279041109270442920425981246763609429798922323611929073954705475875674674980807189437500693708913528172913746574881552100854605358678942665870085974334194467306818133130165020142109135977745230114904098093298485609214959453892189414630866390083653725113151077498602136213296617569479523871819625901081976998615700247291555477960523992983171344922310442199901561366304147524042300113406463189255019491636983037935964080254822596519871972439477660128873396869424913746343728157043426294908471243488059219376532838778558543088784901590248070889626689741832473670650163394403201561346505722517825548485531183339908455016673411727543861776027890281924960805026996285954382315615458862377909795780969721383925764000492267155301016308845952761260256607937923983570091182594157417740021908107512692131894921488720986730808571101267496849102864863429508089719502270564863325567126199905155741285813100329343683823970743598317823976389793929536885096990926002419743352010925485505200757031845109692566600265396455102592621374395116157679278983305524808903797880256760615576358097133125757563771852612176915786984178914899717409689217321335127062069615202210605662218765471466318745492590227140286495584420635185243109364479527241190415193671494000091310863972684123639899209842761150038594345198415459452573364165502458828651950291634758153188795133188701602766056942631993628886018254763842299954220070542228139371907797059121347070052225099820073419637769383387465560351616159484835854773169375588948614638441987696075659625856979407040306782599278793048880581752475455962435163712510318971290183799665534076927083529450466245176666370818502738748497209442734265263982151140676415211561814862972967582596354921444329861439448409938916149372915152022184185094571316855557088590829309011605406001372194103320316884442502771535893281000039471671667855995518841051667416231709010151285932841001502706293260927552787316862650142841241834579167416347298659331000386225213876658209314368474381963930472745038663510339932779569121486664193629278858205560518593980348681272699288864255829324424262167511728211747074948712119813845400293471026016590664505762119273382499960841145080322267521240782504589323601417022017509991863983921117485010210573863279691796174509474182492443042640553190535205697710900385654598486798419907052844319946452380474538782801807173641677749750792473509771149675347565649205181825639059085427620366145519739171409826544743556105614159394464840714643893434385371481280375360197125989285583805596116730726706542920542288277875277598751025725453322978969045501913079532832827032617505158972589476501450793951259891986274587352944527819760571403092101005757085136382880551142456239869515743094943025004787635218075485219789985662200299040858727227391547899997799769928524063802091936293176637281626941462488605313758788043918721689449138930456453326335298973735733069219575514714589422159569592360309609573718729314115986856124952658968138091776909680149782748929190380336056180312671043454383231794392236951399501103271843516957177964354295303028278073688342105203283358405117903335648216273181718254629767916610633981899706497222328266153317180793470160748503219743524079067322350312555624891666609938601274777046330671557867914146745167870521439011040467684805540197387903986186247314065789309055022111563409351075685619669146236651678726386286526404632869100232009544383849552243613396378667975254984287768167898169345733556210454846080200384238641042370981717949950670268686082612460547264268044025949192207088922170160042311314289248804329315954071895906146751379222404210340151064270930624722954150081235029559453624715267298598050702941067152440401475562339269988505573950897921107982404107571599073025506082114091806074677624008283263032773735506557611687134499311494485424140111082956852856423543425784719260550318090295392478080471519403546913573454109698199103190725182049158596976193175267746519863439488110063168120469997835673432484985615899026635233250233712442792340125775552395467711189447406098768473402848466829346118026630739038048807225518005529761854370953618560670026031253420066920236174985749311472505221141801283903794869743709588197962343519200328559254630672286033392301445182609996676899899477631873162648968610012468183469126866840264839236169329047304663106207752375910031521296418440333183844758183338689612660347195138259855940703327225733093004046577734097948573318047730187119103808058789438674025279838364527120860365648875899216585060269126393697300190690305881704571935835270913022323178785869614426358413037411212704038245351280839665210952991735635442705889881520455310760766049622800115362539959925861138504146315790751939714753510945086112806986211460944373527181820736687598826217166057105371392964905543817597079761217484305582428409971638986514330604533854594452263571936731203690188912738002218465751354401307344552545829998954107460290780630763622332295387724879517093059764387360562892158890260027724392536702583062818351585800674729894835490197291531087475398333447890516344602377489417374875445158756634705881648895201844854888593103014457153435454604750756626652743028390274647269908518984084917392652353456409727983452439043182700988581555466855160444697196347770860808214863323690771715520733013906824165854869851269121178612627592837713506638277219747058826219349045617177306809906990236018714037020280880015827941928906575953798796612289335918207076737909389361223907525715856408830755245419536157998599996198133500398544636766101554525453165189083189167762220615914367030443018280103224430538970663014177950153454260205220544581949318326187312383500913900181629117326895694470775326218870117723099852853361798444386406263078838569983886226297562910712279386007442229761996150623450979859371339209183071178583471737923034740033606233595975204033138819215549767843225901039187578663180492534191464462593486625407792196332340497641456416551288034780519386061088426800809998110043288914908163375355362398576439376830359974023303954633596295088129999228162324619682131036077765339084342952216014479483057392438667288014120991546071200280857033567887910747077410556519156501311703027463621829749351650873719118731798377913235896070949755536686200070105380067363164657347406227822960779332249487040023869804968649459519431647687745435352610299304585010711234746422806432329283436128190897961189998655922339004373667189420612086888202051156154951277679879705936631464950041167106258116277966335113326128542187558948750287480710077515464648319722196825593491045719135306167889982613899299480495584742463328037566544826317320276458172605282983886995474003204063989520862329261296405572221454314516365182944120935225322049731635725803907537533555576694418005813541852264904624560286649310086158039639018339491598456926663003888259906220846906131053236620387373694694772014998776412283569253076243472080333333643092214821213716099699462611284878838914282631033621796859196390238108194560430368997803341912072700799690826639815915485557287601273062225517694690351794265871613459325183678096351053066049845938751667751670848136191204584437097614452648234963455400057215818434632440802041963769344964452673766131753256040475879000642704310227682760786005475202654063612070267907694900183058387708538830372131065123638846741575097211379044570948945767849485640022190556602181352473170095819056014789230500877454991178117253938622323598386074363119568815065763113982894551415344158351047181126002552243055122850532179384789058322553396257151959606539940931670884807082764002801983101814465365882485509498929157447109722645388422050510073542273962381004377678861720325617230733468635547650785348076348658489082772520832240269123981278013679774958878736702556669938703239671113585874104435669307582325078111336519949522958447737136914882911968603245633335646690781698231766027034951468307072207156678445256758154379241064105632629181860351324051148734902354861659368059144980916031688058982107575769667723897559813999858246922160075190010144248197526660146572079424280563531649212114509796904783739041636695811202848214044105185335653207339618476816627069230921447635430858099760308408250489814610697909335620574570559136659873624326375374163610001367724192192258535300550781852529133467829090911979170605424826410683582348322326231993743955926022446534135192168201305436388062809476617506040619079503287423255002191537202873220987755713559821394800016866550317766157569137798295518250057895908183416128216122015807671710411619695067421374092760185936585283972553784034809174760621854935647826294597392180419734383854271205608353700680682450461976550844116249721925044001843293327334472899106717764434965812582422706554344289752005567367693093029244461386928471753804285517166861949116004738505262574676742407659934381253162960909420273242432485230294650221210467337704175035198294139408158549040089458479006812180990379135334722788581586457782779868957203602385988739317489875069578397547264245448141960188807634368277920193517214913770082020686826302498225724326304136610356610816437687639170735077438177051920319024164011027993970092092779564752235204267794275827217218136162207910453514386445251423698389332634323785405252266329011255197630981432971813486673893830670737041127801595138059153625251487517291979292950449462527100950024537922447562977915872234891080462749900979627234005941951372975684965283302115885836167161953735244760969485146531918233886982125855143195511554523728377700979539154594184706032806128446428107757903429326520121512810248970507537282127395336520710047125423576804746940261793425757396287565959002608921373091389658312122358348216426432623011506932953134192502347052501218082540243356490981203173248339253432289082739693233148429692911369308765035167843822641791530898732480843389804778908373093580527796237712786528854820205037471559467368735414626385600405865572672911591972882599404212204801107131362008844142482806651188386581450501099764166696619360846830739275348387073940488482515499726456781392334723589857839956690380213451155723788494192432966698048604710716688296845211326918727308216126916401392924115015609950987957657304228730601410498340538980958696857606896466576934789010690340644916192888039053922544830462259817611433131901496210794754345480201650798208119258100396585015158857253947996489846564277223336045145966878622014744079172614232609854288636804644581220600102641166522636939552393724383854296121793430526938177864274356876527399632355884071199775977166840940747913245690583021451322657262769296592080046868315422114506664386661914900940677729807503893224085309391355839405903112241828011616782740052533953374663320575795880424195137660213324045016075077503984039280978495732139087273527375098171702694369442095599471410161135107947227281657177561720814093328455096753553027768496264299401345311247828673033132308276018461014921487444080168603080508651645869611353528574741914606312898279998509060210577736953623774910332916470212742216425553756438447238850672306678731383122108203288105245878399586178200640057483420206594857640896358213925287059311126930321216646805215927367095841991531686186624220122945360277896437797348998695821976103371554376233424511923068860804045024066531263316253956848363452608929794084617449617617680956854317733717824821930264867688588262014731957227544233017137707786719743854812887269774640397537565678228586593068672065152015971332339050271484064074426894384044666639559682799677719387865207349234049648215779428073117450987078987339563981371877670858046380109405421381839010987987527634457657078945608723556796991678610250738001092843950153499367833588757579255655596052748803038248937816917263043144711135804737200374870176071179799089795006392498139063928664707353559135308676298870322322832989824859336051846203277276543333232815217790951635894749120542275249627041875397557373730155239489187537666965819799654311414515664285870791209693976193740367176986520212364786859992162719696959685699440392093891235092521224643186510172177716210103943353535387947321461282617613094196538893286727079700086652994935402857588003693936854008636297363069290427321179825266939503253176776353835392198202886075690484444734133648463842628391590514295030560059859562344048998417961360739456355450577681742610979811735695194844517989843067180380166687318027531250234856330861030956686826973663560309495352200972252581249167154097976505656676058474833064894904201684429891143179317408881755702060124086726854108058567355482663701961010604905348574604479222011722238544567229279670147353670436330031761998575201980885000578006423282521449202769026540843683552641064280208969734380479110605197665844639477918646758132181450859476661378888916815835247777957011220108916925321795007812635311699972057698122391919210054868754468077871451615762818937261824097382869064944944873431691958812474426863918815629692084926946655933958145343498716983724478688135954559293711926866239160103131595464778468550793080895180336735694028269867178087307879084323784728731680962565615601590080597291181426409567608772251562205096545179205350661471083346502701265697897473801883103907928629704219970087025433743787038326643519652380538255992170222610617812615747792516610844877463971520744600520415352389387931449462710223802563850369342054179383669235638033994145492409685863364685528586831231468132801176196269338052066026639481077677856816730439026538218202155432259325274749888168731255951450921264568012707702462414044108119701758876375336745016503368193390339992841005001108816876952881444890539062520419687042169948724304903261652901368159106521478071977110291721091270582297441761472607731430269389082064921149864023515757448544697190038128636969511917037905125419161809729746134432386593977380310916130216848227078732708334078467058669382799755638448774590110941741571830461544632174824642949630109409715765021192767534170643021635510159160372605679934006069863247628525782020744265454084418710609471737523566709635413527280050211434486701568665345005925102876293924428414262067035533358755157370095150988624309028919739191452217324786917518479416922982275964008573657663256488164593311456804071713984937846617664140509577123056572393914772936987698824385378939827498736596842873090057301872138132193870035254283134194297471910448243312458827267995202440862993639925040506745983961632275926592816313995255437440681524617978507468469833941727024154908617342837921885135543956898223441115164152143524126989832350675784477302984768058309494967396676378800356379664449397760480400017917923480283761186686968987219177975497251619266852391035355888436828669667906971104584653756097849259589128143743077346766833694667310165373289400219426519226643161385469840682695474130717592125300182015798887101353818837007420513421604276673012575995378730001142521951599504666332289403789747673994094129869095739532587798844622438168724229926571139086627215905920383363242838564082653597157510965611061171730471876423364673059030623583723962288685053838696295959595779822416271651878420798061746721833376725455852592390969256342103464089423531023107405759052877771649708096222266199981194376663642351074046571517580136749972171980594775041216218197141247663725066323162730821601770811027199710801580304917746881091270430225678618974717510059671730703408402649933073310589846980869726274552652262709445520242738897269802809216835665508425037435393778765788278377839799773119600668235793358585413563243390031238647361971717415789608428399482544622607069013572332949721107964261191004575963998103934142580107486186398669324348543893359781794539341715128666420264111032414594474120256247155883027309215079833322458824364805265546522129111637974587155122843799727496199553766187817766958819319359948187635781738387668566680698070785512611399686577297081102894777096503996990586070492569122646948227267115828946470027256546098779757593310707844734432690915990885154464614957520113402290211504775932862249463505364015203420650455440428505926182535443103304482703312608163688893811622489368486950130515348756171336706812273891047194657390799921996212602857393604709467349523553660828291341328499450733818434470998642691286240082769483509799970421614560416915948073468553709704790613698206595810847400556666777017235561335164569196424988473363089177767476366275282277274145952734222783254740709826400046657127133682466586014916034647847348162492396937541975907735987751073290522772286937423591103415410143719802997314118398566863945477945856209127109979296129338625499408453402590840158686471768023693628488883802193302238390622041389866686865240585228427368552530543535678092907758984149171628334309952774090153298683660860329002386318822393158741447581072413497867648613025786152027842864057701741757170617955977029209063090639179726865378023932937744432759861262991643662222190893667954467219363459097729574846339463455291398810554037752523874265651100306624018120859363602313481984905440386278019018106150111385843534169127720309577341848817842114807499354790167033857347777851784336437685831221574190508966330398536214591694807854169201507369600333365914253140908088879034241345148172884523749372242614481442519609678227826448493153550729759517714354124265750317911659358986884002711514048142116692613293730294706530348646647707345865282321759924038842618034130932732699811243685477844836719265599062040181271526731217308080338033000430740034407415001061304066897935525146360073101967545883597131245810835590316490252089268380275664512660056217891506096161998459144080220417034751985103320260701883286159222677043082324455057403826921197572806613056994384974236525232689205318411303666449009021323645117545413555160385285937217447522211218496511279511696719612509315313456535334868255724423634817991025747128745318439300248812476794669034823931676509612202021341257154421465683133318343731753791318375741128482348441188409027429159639496618971948618034141372453694545526917133430839618450947160833019322779199526085813388682827823641049224521243624443520889689642904162147345942270901891161151741309216607530048892927742437325233622443932348622569684003242630676133031647019819614155922160441313059416753064338420598326459013386329831660723085127324536154978244814419831003478436076908320221752343751696534104538652423138202837446638433063234120531727129353880219927472858079541405078828124082553046966786681282552996240641722128989290970136425651016092693406980066480734652378317336174982677738493687645791559395589624053503668247768956898674679405924740009488200810316454259632589003584796798087838804608620301335744109746385992997287086708353395057889032486828019206964262181202493169046969994999034659179303920334890035393183731620499164972489711731038831403422902724108843862403571785057854115045975479579718301313829599654110629337598869148766651652535855749118471901834865190327517847726366940087871978393427273916055388774289638920932476461945853305449427906135753695438957467153046675909880237714887316833942145240787121976907817555814919143241940262244913880763717742573477682605843512717158808535216956005074186412901682883074023901545172174041801816682562758653152413267454827668467411065224962118370848707449375367287143953636212930127517282586201974986126322367533319769227977275610891350258460242897739283921593211248867746386947523947371603178187181348211574700855862337957445308458940212795389721093317940533707574957081223006023830872459865957389053640720366867021800029874234111905671157404149586096350102278734180543815566376079495413161666749745532986503933607778801524434828815706066712098779030942233710450833909863344422314376077332074915246664068464066507396802959214519340803896914800981275279694130367668659967432643244201264664916084810654418987579421590084655995332940589278508159762550186876657712229708897099993577599956347457746231575617057220401223838275086678391099243467995558257405227732296135803172850939690878146632979940316352553126179253116692379256299228153714343863315441968632960058904087798504533074202349574945223521797346967064196857455657115818041380035952743713468251573400529655180880756814901900243898227439148803199361665801816547407236267654535721888145219120291604846691380806233787419008111727140419857160661303744308973338357529303509135645843052134412783196578676222771715461698080931743588299359009045657560808673424077173884898182100555891193343249739133455036354804463860145953421176565517099403930188065311788789966904198229818467516931802474329520629978466002603474969558303978878677395658741671450615078639715894569630415485948340835600926324201204647325515875465012300224898249602589561333665209286550458671478123691085843334154332141533633808174682527127984603879304008838563661947908285428403390529961882355841786514268653427846460407297555728098619880451287094039424706268161760567440901339625867305570490104975670442014924586596955332643204088604548035913767062784716005912075355276823194845342319704301496368888042493175440138403717714359770249003745406624860696450979531411805102660638097547156690047617788890088719960103535734863605882923484882217447550390478221924833766794626484175017411420970269119920019581139038179212852585574045003182647559518784233926194227336539729225608246309255315174631357130610063997847196852445130701870672869018570685084067990070559999552263232641135741807923912467739854777423428090550602000001847389044510185913732342211577186237439322523156048213711303900129318483114826891893293076546047552636956664688569726347998148906096050452245907734429717281078268998129703011887221250284314716187190151211610386552603110494108773466423267999276614416844557905755904250030366161693951929652911663145177878724855118091854755762814906196307020946288678766359242844711819816155502372701643743201600165249221163953419339918256728986977099419745153995375686140223259029890639407736776651894932074412929680832283292873198463820921925046491207398652266423376212343676146518368491692648659919892009495460717024398464780027509308601256140616811589970894224341416301981523825775775023551944110945220628257687357193327508838333422434918661874405092992783283919649031953785672722460820308668910826081229215829462361550134881148262080923930873019702894818049609605949545586086487044851515069877962182926618106075138690015639554033628282144046560938783069365086648446632016830787197552109383601465835188956089109702005742111281819317612966793070890250782516469821588180910679368926744920728493673760944646287899895090370833352633313033776460116984372837770554266661739771398951338370704516103709592739109203054625307125916666276220254555394651117827313948208186237263458548384115304787130430570645138198846524572723569369248463272269112918254097893027902824820805955746904949738452872813037697379580058884947738261082406605260689819315138608782126701472344883813111479315401508817684171699447279973235570966887279152084676407021289077608163786579264972111986831386674866042406184480858718843015519665590190328794226924033920245846139340683483716914464247366298880395292113241044809788092493954171903317976219852032509649520835224696198209415029545862667812280756838924522835277893982882458682772398242938265923254922626550475580282263654357890877368989265200987114813963721064761203069798619702945519046549221926317663257196399126902579331092863074506289198924164702588224527670012961105801634681900409921563663218737708833177935957085081072821320293295817493589395774056028996733130361147415751820449035244556845617976362744884050203325544617270847991770080134045353107689750299071985332664233673159020285564063899929072596193417262932723455403712876685780145285657737298099059619796126945911294214596965042839076079471159528114551140975728387027509010876286830645773521744384034883554822174543566338243578074741172436207915380022441939173928124693302207578593493374894499085171906353751716104395052809579568308549167939525687877819451931248968407657445682583023730972595124050369767339200703800102302736862436634023259032997376478046486657548607851930598790688204892082871951098047568536874066275033463749254983402854264842067263972114138423439320935228708605077405043742837237129764596316263941397840156524221468516116533697098913276241855940545876508229322262936446495729278849307264077012504930942851445279776915096920325494583774687921601196277981963848783894572548278311186272843398810707653257362953494165333026632193269725881734788179903965291332006200290450809543514379590676192268081649982019388468831657483855388298841770401528309146609386940153771073548738698912920314463211352473248113196919647080703008031542522085663362444273794105599340002350889197017841754027160985290868436956108106277372430460576791515945673286840183421871166568292630629724125733906000259748137015670384380808414597258984535569525137409360120973485225438297477135156965122341462426624428049012160174662643864727922763690159300870208167276651324295558242672029945901635825814167617594620689987938207028186174373981074520653468112652451229262282838875137474474660926381941117194127604466383950312695545137594094511080969318383223004288528559701938755802328278213676655029330514837550212537786281401437473046002865515978106405467952615883941336628856116875081496470303350263320829323513443179544591235270636243283554402346846777395670255058795960263044688881864467747471429536883756927948189382420310919288065376871316647219244677677603404357926600448771676597110165421358880034489991338002177381420780862874894422445272425736016318111447015224820049374720452915408874485698601169333080902948865733959886861575371167663683904518341251971963404610245641778039445830179179199952890514277751521686147224087672539430167652765440534651656026179594081251581176497001374295180891245509972157498706221109053532437534693664777308256223265916105521705269283286466196957627153336396919211965863953335952876519555826129306387265847818554544193491792233109629365541919190090471325253307029179198482199112370949393860652240421864984837857735011503591943412011438804498096481098604272228172185377410702379774222418273307133578535435286694745061504656666605083968703811904287340436484249607765519878087739963994076542220722020014612095346657782029298332934176935327079928626598304389374829295672112375511658623826544117407342561269411032303467244738733768761424557116097240915902015256874526306115889218831740454612664624056072153591892640143241341223863890322705227282313464138046131745873258490443663816739332720668821288216677388946140335813553329053316599846270712300804668838589927916717068823680777627926973318739345101662367137217676699083811981067529754863878852689489686857689810164868367205256835688789127012953232256966350952590649432359253610921997340617400947930854875418172561154831494617771931913484834718498705708415023022095022428878679238368931599304633814510053487349589521838739808289778582476518315942058477681578964701881949289215632579685773495536022337853676980519128278862186183648318724000530313647762814822472691942598829327394607958795675172451868925165357439716066128634784752518415309247803085039246580831123093616728590517124136226799257535714672067940842746193688294554948273262502848309533596910123057100901454570233403727744176063598493655720833849704038613518050882102177887406057170772658475785063503762892087932047683885380482322256671970069809799606676612235567929374266547215760862592906174730235048941556649117453546606436884581897256157363176598649641364036178550778320576859534067971586434360681687043934842124839984408715189996347512673491731029754121907901328981702721946845072112456847798400301817156658911910169795868230451787284024298869077515358919489864024079573378193450401824619179802694531494822408387813435790446910145406833370307060751854673347949926658597309603978293217393670108758831316522436484258280296146861349955026555179524073022798551786419406579482581210370944588841405415482825051626625146420964481984215637579556638954921286402228627384259012281035388548528716755951044765084168072315604393852055493532440408499018132048211718469057647671058805905817331100900655697101707559757491194417824430186107860817060308600314484789630485549840824264359611734152179354451560491220869515338963543010988143803173264682668768854986010377710631475569414707000004139884225073549257385391955847357380694659336904987922554811044741767467448242129035406327681347198589522772385712100303159484975168221456752101728819562150949862606315217871876342039260095775807150155690637301409153387071703924991293966284562547024149566205768509264128540870625952451637044356735233483763758489494170416231661614614758235305799005405826823415943157095252628324989078525170050787534187851612507690621199731133735097134831339916745638496784265967466707474477200021174236827833426536935141376029797016109081458129137967747776190415557395902890649862378530611583239218095980573274673597343476698213731946609673762500224866423538960367922113073058276869366386438443087776188033014060338300847303407157281453673867260040977842486494109420853273372938458209903940423668634469659243932730265604612902525249058113794239783011108436743880969952163414132700055971127201296063754429175165800685483365279396156027030442343969805679593461937596397905125414081321380314511696314458712819619589781620901170307130062157632034251235535327142451164518575513545858731242738110675082933265450418923272549177070661537300160527839860160364464587873667098487334250470077244633731414827827270471705092128824874090767071535630889368052514696187383603648962469616424487481819280306941894451155304968656260745774284059598345691233694282853992744173908551781054435607074701516782502655420698045201325237751138307777275935638717179273107174160837989697808790293651888213156808309040944082948241113078422645050539532378904457172883537328158645114153515050933417424016981086490841004952650068319744752273391640262922526258893114545583332481787612943323329601666367859298158619454055814047342404279799237362644899052335088433075275829543329346113842447455641846034268626020481965056246333617382837043997796959074969347202136311745691521143923384695178046825819770374965024313178139957765210676826461402838762924576981757488620139859756412798856245546027511515003937901528833059465979606573246909083746723018442718918536128841924738505893361930837963565309584805041220839764866312131093265010350063375872371002782238219401149976857138581746723795193809804558436425146559140598777539181287116774126744155345060243027122320723195207799007769281784003405873949175342466071566091733140404633150690356596248400764402705182378050532714171058222666554664902301969628583686616050457847309941641667053664632668268565437686945315581432679006585645745072704210118092125675435631418844504100251415422026395457602745170085492383670586123487214371854780942173900983957151696068353922532989211498020531414322536243731315421579116705316736081550171167342772652759215584612174354179466251623869378111873659650075151096299374700380078385757531086914979902477354129139391908120385929556374048322579085426740159136054515317974945650893727893362069395968603193456859436766856089307693362808125805677565534792278537506978678738118980657794146094432563381238649944778262224775048790686339370650252479189650299122503271869516662966740383502550654095716110645196975456514276371262276992373691886854550256835009188334659950274184505486859547186060534710332136849066526386766794084691592953867324884324275699593400223395834753542686124138108282160418931529573528942078097928514969693612210755658618379813095809266480991866844552434056302099048882956395482065459425998499885295547559102045943310793816611745948703438121750337202701149829823945971228484657583451819099360041652341027015095799145648054269848680223940818941550580514738288476575805734636862948192424868743533936050400644454192873902099826777014624466394523031938327954703306794885906697251096656279474390927679905835561626782066744024278619590803081685862169692918412767507658310469987469732196982379795008051371069976606960692071430411103363570107543490436009968913244278079415741342407621627810520667475680615111487257460591135163777831815069852069556739147584473907734142474433235653037654324145757951937483490345562582453536259140249335491760427251587759401705695378411391365269559322780779213207852603561349357510180288849094657776478102214944631507146319568963004099149384234192917996295340746418726167123662598053302720993856491205631860201164927803065541732799866236147408885896043309577842588683242926518190684917104189853741271734502554061537024355334782025796797555970234058981809589051383909642748474083495469795934693462602174306154916070017048450148008223231580071983055986345267091430626745628668592820707425216013592121492329901132288946677692336353679910278803350373617686662655829299957838277933487609745487748949912855986399421783223863448487775830808367812688245309577124860709902739642086254580196495395385483304950516457877092086971006983053807294235643128504522197433021842293744628587135485260747338093006401624509733560190583526635183035717806244830898168531427018829135945105257044678155929270253826713017837370967388412828730428462754128195988152528476582029880929832784127730598484928634516625734537493839669203193032997381275301193647931695231021144260215884284304953988410248307889509152110863607596516765898236980968208543153916081859446331871321023174379035280733435006125465203145428999286009844340323886595147207722029091614877356290081905821881031372135899300894394663520858875176278378750791344061896706966630672822932962586543756424210210791883990460522649976571476115953894414856253008704492375921898661634162438466099182086209984041143670603600640303893530546127656086845620694026073321595789071785914152398017325478415143024924223300660540479240495161460592859962356487999215208766276680404278757977034539464755832389571308850871806679028009365086839570156745710280152342802372091671361185132921239797955695453572224092855273875044496098196018291141257020178608117068323107859617361844100999904364725817270621840069789615787100506393640647644173188882606567884188734787543217894395327147070022162107039999991961327188199971117535550120203645027484273161425300597861139941602522198308947801905659456276711824846992332562442793525191592048928331034206903156624968839079094244760170931916600232245372673614997802317906093993739026489065601692157505380948727959609620011196019619180301428562514344747354367537019871437262347078653958882452747861771869854009548954744132742910133915636563301264779168807799111392761949944949655483487628814061091149022100712846900532891553059358851540069061374134775687427935627268626581315186225444084204924824659553330268550309416466330335835151474399387076129102232491716852433473537224578032446840870020029191589918592624148498789394934211888941025993061583693952828425060028173594171482852418297242916663038604037663926236906813219822857537201785838770854255964754471524939201085918146689932262585041837288048124741066114161735001957361157546977016453982130729151110490389677697423668642607696845330827226795588358463867817143191884388263937479081187469188653275346358962176375016180696154262140353502969310130674212812613939145718049025447731528823742555113861078270043164997235781934436083590953384567774550723669564715280875571422507309677464037857456090268178275068622260218522850068674968545703068001610329237726741813930658270542742111290318321607649281479562586005788000591521939603282323098357627081030021222590912360668107415701948557909674136905152702977747154753257404775782102705786479963186858343599466474275480734738621077090870116573130800158995290300960524832933479924095999594592462807877056564062586850455872669638913846276443273023746972112228106295152846116551192357930225885610010787392570986363404133585999678277135308533441902653122850786595410491093018640938146361508659566503517606757127726554098907741722270916581640206183963250699377993958204972967461158214676336236980488465522820693302661160933985315178541233165662364623195031635821556962132164724849846899276801098909731070944697894240463981854786604487501672384867838730861098293927453682997582655067202047089297697418959829450337371693692931702217440569132395297004188826910026270823075612330530884988519907231944591326652978552576460748081272170681395399041746322581071732167878331405582676119892787080163665636269809333241938111080416102820550435401382536089706465103666358956313184523036742203356377496042755096308200116866771836161694073424140560524417519518447194445478389653133244261821934330556499740353836114579055344332692739070717669664276442309351555315282431251987100124965590370874278578457407495666857498153492008953219225776911941897820426738793486743670508334848055558491371987536439944452658999407500384008841095891003095476513866509097252583938393431795704546375460036472087713077211398806204639763287194385186333778084754270507859539723562567146387935233997421638322948030413459822041547756673644329106098351658950291446664759142127364735787892810303325560952406033783779655659869558751741068346689334598134217150884350346992799547132379096206000306895167268323039285739536839818775369216447838585789676730169063692299782082845485782576822805970176932222510490550470477355312293461529549176072458485247643002087295654846829609636985912441162422506840029211963831731756990359524480902979017183281969791267843146644669638263941441855045962698678150666835688213907399030811619617282339257671210160816813179261133830232344796913984154796562060017132279350041958106922641239634961758163626268012040922061034343383633308259505576561502114818710792373410448443983148494388338280269407629727311561635727398585037043072493767890247043427204681825335162800819050870045423263589334884178417762475056635247867289695163763707772212133136937517872003032839853427726522967035857375246736601837761499720529808035945556394887412967557401055243475523621451748072170170768165343163711462181114108563539221858924820579937030767153927786543760092404226202078092904977860947321552014654265546825808733176006377908600961492046825731662069438632796420879781252103188801105911676087373119958737676928035476515862460404750154797370834940256995098763503204456844978977745922517360412364608269312725293851851782274597269291042524845822591913994736220628796360579135698531565651897678308224726233659496817465856689495392972767448795220458577578248935193082371407389189020180912207221135334457551580707969582412191433356519347445053481951562823206584637983714020947507635708468806426294705122574228878087089545544187536195632143876787944903365804225772834335466888577596553499758668267285944966393147321071974671459365034389995127070671349591927083792066146474480505888461406127796232563989695870843570087653133099691118775423749845301214939965451646911021813876404041760755339065349741909763459696448665969963068269653196008738388221707850014346330143992507221402675546427102824815100416598067505873617216936338990021722043960192912383557029804492703927986060717820089726552456684582293230645881573522337149063630168763268210043257088787313419983264140617446099088939082077599796020411244349576063715507935749918678311865171454791648045093364591769930944351965829015388716029190464455049931522765639703001651363316992933930665354707863468828276913517358380296163249531346160556748956195608798847124561073026759828306972148215257403639227415783179309687591618691716473926070437357571098671560706206726283923902259548268539696514954660697033111794151492546928549530101176993954721914343974641487498216770562337926516182867126594023686830892129961833309439949239421464135177823198398108253341840473753984213190233420306896357108052135692282965721782627163445213357359850108476270390567431827697609249563893279311644158348947253246982968201142404221523895978146560433874965884968060900795185273973702909737368228780860755751543018774483765865935876603289904270147462555441543998709883367761782925098092265935767434849472258025174711025640654920429291808315853322058520182725081600076658451659278677487866665427312797566211837637480835963600716333588020212751308127618556953636822510792286716764266676666609866241790335388020919430618215918488515444332285519824717135336478164217097875400059261724280857847776454683147344212980054910369339948694670112549819370076600053397822841561315430332943612688280661329027358769393406049693854923828047510365626680511153662588399813137629088116881051919699215334650215959850408821097141523628405254059641101837789874134776146613971265446224574508368582238309452506525626258469189174716757448740299280506292933742726399553502541133479144514902175798820529976117158628858096817332023365067084929147183552899343009568382452247326840782526245278526818911177696253242344715969964637430926855528305708416706896379408731018663169426808717503158142689758232301599714687208910658334542720852378760373809389574902390840064655056907675014621182031090012923621841805789022020480851110045358551213085157512542027983751643728661617029198875647963639527152628387735794516129534808854849147157844499597388521218937041208298716039768514233511764827366005200877046571115075686703918075324075229712240802493939561595965028566754367207769189826231381755253722803926010566098169800578825328237996940630187888898381599135297561303080427819751197040203690064727916028438589359908011737828050126332211925712424021173935612974861658118374818404204520857064398071947483249883449225642204182308593240265280170240769794414069948659736691629190460972981022825813929821155013263754103366531017885527926123550855173894257469703275364453016146046867617045819964501128387248875126450438040796538612167599734519314145390539119402546528614280619050346126815614891518606472727859945395770718228814833080822183401260029143465325357769232488349321628244028760632288974211043052785173432896113343421863658475697522739610100021238608986804100675831520975079264136987587524558219370054155595621877090163628717197219657479283383733510253416473116443016690350176850170698068739491585431457524781860245087375658849196079456369992189598856447398245761623587225903719997001173019176529784157771673464438060209684593178892320346467259141162864216266972711831767116906481929466320375397168200084267275510935534733628809777631079538096493279502965758349890814714402066258332923383834952322331221349657410679797464231849034544169019221906863867893433748938390232568495092887739449580845130946163170172589133777221622013116665952317270653077164502204191584681620153636874008089362855526153633486354620185354554915450615860027168460800817986914235701005233066501894107217009243775165629630861332809893244910564866778078414327154959926147905361429031179119378112292205317571290624173542859971201977007789168054840226493836963531100128716487301456317371728511312548061487120564762077606519184139516261619430302155821422559263503246061485965928154570739847444057568287898454331572062515289270735461301340550579694778571357884870293734147217746813911749003114714997340492266135846454825239005899575756464330495097885180262336362509431243022391550170689950783784575111194154808345085982515303357736777372723819277637729004449467555912824956667088900907990632247135969576747687842949715944378762781287554992575905717974159157918266285678012266865359573450959000059205607142089086218724385071213116929629454585068306728456858741010818351271802708531107499001896795448739356674089630077884372536854872731475679050349073226427982918842640705679389979313023978231708766019581513953059422174259506400023607114987003370802357013907755559245098419081100419338041721771077067567901632674473811616655722588611187285446014270205179475091530812443615985075424410334239679187991252745378196835944805820381257161228196101993837159320535689664541066237111304784234084990995267182025979539380204205903172124713668347709273267739892733280681442916416489726225043368057465492145230291652742332143781979766443046369386192136084946650670025998101165603063937019234890078751269182545449413726864872723763756101106169863325067410033416054223618568708915551245347869068565315107061648381801959963872436311312105078859216901205047486415997039294925838412602486115475941733113780588960945458276123161982847174579236687936895004633030481277964239606180621149772172458855283342343917367033272169132925847765910924979144365378949591106214906484329905527090503113138157961067596148230227963701957733489808204539629590498813784747735459044729652749273458945014704680294288596739058869750844782510265226969735756822596392128484916241095714964400564588764348890334508609792642057258573294859981868750574495233707206173148414384821218752185739974536514156005425202149662732765293237837358946775218370823129944045755037840769283047742629546455663105646891506247625412468495588654429511045918322336826858331272267957756860623862031285399093318956941321582112180619773554844851570157986991075608758428748081074181207833667576895639471690348894442297376461589353289625976393119124188823654895433125325407849693666398034677348157206723489734653164041482425802109643948056524453498589525445092376985580721148880517835251768104583307100976506235983106477854047812385990725349166634579463195709154070386730847637033867693453809946512164594910036125694129581729323726600642039122600451665664598384716227011188305636238633430687537088387991961209936457568370727298544252067254483352620211217022566421249038589544116915380952412665860519408485545449347080806826521729203837374385544463403148648197887515991104923962754956466236378763189986857520803101089001802548803953282548145898695416066079144406760482953902332783606513947974073779434322857987361505841993678309054624533165257672321349176507493564699254319675075787883190149301293274611054201366856468114468884729338401197942188429689922147245783941614523798104882092093906950124493237299498728447318609992062754002527521375922756104784824465819093443985218569978107374853737977735698715992501095196646723204753796322672817269650553443567045237418785581768940009675369161475178056814533643938646447433581045009164753832760817558217533730638659027450867778310197910529465939372593030366653674725979823922961409571739398895436332199209890641280738713114950419032714761005218894391041804422033932106715122981655654990876560874930390488398541043647885792565547548911051605784069905891966514826278788975463203602890439129098669288917008785855202373122318985611170042559452066345362721375192188895638268616196232210322113264817151874523429295268097781148851450577833556004894602814741218617129409911603676793550018579427409480464026580410484613942975509090750592274274781397596859827335053655784013908991295347592964292581204391059176419134020874917965547698858161371035398812536393548870831409998138137245125607412623695760380816850590362313964806629265459353976344564847433433009116713871314444048723128951830788632110970873117863871315763122111126348990154641061209698310394860560780109627920861923113492513682049706089848160837121776636124711287302308638440654638129701180775374243764513668668505189001907339205343998452774910277092945752045120258621888562754501051123098795086087847441866702695720435623730134910922841447642744986845385771182543440860124739625192114417948725008908489438873507804483902636966424829586434562938205749015941846750327809010568702411515723911919911232769507408886243732964400384947388599826519871233664320761538877112228200371748074625545027324791572439118196672268907515774586145725642411306753882911049083512322818150516700983278698271304590512871306765396814071987606761909180743819746609214385753417305056775995219462492013345949648687499453007130034838141045595598718818033620240472844612353638674865907457370731153713755449279555413260968384364165062533518260107647304928804588164598803394436890250409507408674391409489017273744221300505747318208361131510771802399564159760839902770890568364728304857902407847963223034927704101231874463472675052013422830567001870581946361569682940459247539572855959970118449859375410068586394988294982518427657801366171127089971430387266384525497610804499797819050947972918953844629459164084635846003025399626180208298716983191201483818043573466632127131090480626070112791112569610879177482337211084267457507346901707609732569984568153571515044468184318672144796169965902663347833539193078780003357135482488091227827786391820097618930057718459210067650432719259330648259261727349262171717983701765825929198018112861807129085091632820735082001392343477823645596409863349551102824560064560775293708023572049308995052039837170808527681819139684971761570084098998415534956997695829364709756461949143354353460277816216560113443865324596225434865253853609488863822371398785931054666896302427225441793918528055571086041329297529495251276892663370923659137419886389350815629987964278479604407819134014855976693081539092346858762333212597908922245848705676118179032946575508338678083682026442626482635087048282755536235910175245672698863919877548389115011644295555549089651973210087463678884638367422305015128225779446101574903020893310059480567284166639703163371830311160126667403597014199654480405114541195579484220429122946839130537622154447380871153799058593149865613772986834743997703858643153890157825725259545333645516249651876323666059487664041655633185175597328407421727021924865056958824078854333764880391717580190788205967729945524004103915851374684459932208529100876960181677486560146961891667018410770259998357708538824459214938636389289389545769600598430958397472028070490785961817928235013054697210639522523091516359860055877207902994309731916077354712022810246485825238763557010598702064609899357912743239407713618690933788019561058026664815080716481749256008640537862437671303870671477853222381419387316777312685774798555544153546024787849252179948074222851253091368766231423967834417955511400286348845722254149684418697956476840356974514605849360200721829404903682220661907825445593707636345715668990526159893583933052710858664289051484203902013258601204682711852457349653123648926449263367035964246491489050490187356259966343401872920650917342536214148477310984631889466652205670704252092203569976393061722521901776950008719942886854291052043111700693100959421699285978728171520403046918647968292908092681909085734557345506270487312274953433737308611661523395971447394500947801809806574042994721785710417506865880997550963672263512635247936729074124986728443252460262601319612478114522098966878413751104564804612085403010457237219785369858952579863758586836483235496908525140659231627097970828122707193997653772712659926508888510486922646175688596418510478990951092621221284287005139836038984029467479652354716225802551619280312297318954985378065515720530328398243876879905217541663871984216683781168197177931726018281879060811191715828187061153115771498045150976130864752842694618409688115541531663289809326593628887287600268220733909123016373958850725900507036518440641510757215494137149490415854148230239176818345698486101529529313880685590114870917023529259957811956666635403698432903514255942188925039963548842034445524356394739901337502763368199868059498724113785340563200674944876395672734084964127727386905471379552851203614479316346907006073071248683169435411382753085702203635397522516402243139269090043997692480856409062001275927428248063706852578254303346932926692449873588029937777625524869687714103869252196531975066829092282061690480765102727517632315460485697698683575281542800107523737214189425167309106991242891296173913158847132884888899906798958628388119040954172737445224638631187330268502011661400796516229834871455949409414773418319067431726569066824869140119006597943208581178263832958229393935480252309017809768053647949939203605254985443846252966831867035442821639126629088173528202682480352398133710151623448099947926387311102020540228050819091812237237697740585915478544545360343881327694437557806519180184260167669826682304271904820322159679216514021847995030799369789663716075525123511533893844550760202262191164068188116413787927755189918477987394097463106059793763506867888092227102815619708675323673939153655268761459500813639427793803097376066050343035775122728913621822332452446878247943822941817286317163836598678590295817397396097392736797475626671120715090390517803491263909861174195783976066792928737533737361603292513563064016641269556691296119369591278640706283513300626028150830200203805185358815176877794456528602492990398656667432411346503357965412298878516249033046415962901244120765447626686591550000138270542958078109675282616530730469951588979354724857107575689454224939266392664590877984969188334533623193066793797984344787552940940009117534003821005683537144065957254980119423714879244165662369046557514083949929135978975456025038601467374014051644052444281903741058063610172260647154057580574529751827737891861421682663592272833123139455036656475310295811249878710708614516598653065669290232680077393482223836055036689124288430067532653662308249197142441499305084699894806653982434271326162566094765248611229442715149810812748193576638311126922437207785147189842309761436628375716711508331473591734826883022373622648091600356401540243144888326358499098113272950360344923322660621811620068780590317351158834977577264750189858362124853297949190503713258624443775097887704125971904762427287749623470026476951447340452657715902533457050203322868264782759074365374437014163842948065777357062172502530877261779646413825216545127557196953168122244831037038559442431780188277291970194874732343165409202967744219716906908180330201987480138852556093617151103336506429421989758007943071559872420474412118974995357075431679811861222025960432955508857763922445345529507236629442903752222473368345814783866135587158242082817153850901893367379407300800275411152156871217426048329764929316303525967290827991084286646082811658726341517501205967863915679633407435441380446497332746573845703618989657835180544993977218977938022480920830306795775491474517153819254199337739417841693685090492007009010951044785784286168327906125409817148402010786895125753770234881448536027795877626521250823129542815815089654364443767036324237014670219193818254124226782531611166013644637071629038216554370914040868757819038782500446750792831551282315425127282909632071145370375047075649571202171514395092961815582290936854329047138564432118756099922021530618708181858441564768676731596016882710531125536319409090228653087110428934662781123444998610043450489897368998053581059561654466980462941733631896694353628788593499519298060864738519317548453792935576797101263995078547502126851197928976645766138439454213620208697506017996962446099164474963604717496094661318916213846147916845402568552341420262353574912685736053457748769148447441132528931899373390132463625837422803082921709530449526198947150206971858953194907668686011620655256450149710727048458475141643939100625504172009892337790100874228326458986743926457955752779257415410701520950417968505987785938551592442477279785547481348462149455915165040447952686355617297762607792589068121436971104697721608652233614244075430840875762568748440103505932074407326876324989237520667894699779501717712554784649131059447806478101745154991689277398649082981405115499466717147891143008634385485272480377110629626973755533039607287862427156610025366778980235087277454785839363046116612303337276631883217556375743394242609964095340372827078836306004704838759950363388213574950334751920555578203705779770944281853388957658401491190199868558526710616302976524579609751786361329908580424325678290476111741115473948080254090250595769575371849253854748596529480468444323090694402725824533738070796180441982710147758242288798118324027999168473742971327055203140988505805509592427682737383113212742574239845352274503857786008015748556093741160483313814994454863201000916601493999959209332827691594174206740954735850863822041988256162937541579188181450212500616123577819920818391768044204859688119927900049372450520131608043432293222030340086803061653089229778746745360555372368853797998040371122345242754735769575999853954621981388084790665946198432834147519627296718778211108194087148506184133938649808521401349301333500874699799830862309901396191792761822873588048302250601502538975832583502264844500275677179431414820122801192119818467673053943895446780117641846261097003118514380385025876934971434325507319290925094740069656119999342833866683754764756338593051772236468669871167477323839308773221368323922849473233915216453331271064220588864977783478464820917120572550281696757901015883407133878220854800980517053460505998525966813991230969624199143696883219913025926181310755629267770848383316896006153620137573961317713278858486779357326853419616760878028981120250862779325200147000634747444222372996641592988076233564575195275726279692302584481710202669034840447838031245448025851220785626283998242003249106856993131055604687556832449089375085684598611220273361272245064307018550220881726181360557121191291366430101537001937518045682089779951001113668827710321347275411864294043377106306297628349851482108069230400911232716651712630629835954368589698958739767756265284443856554819108236136926796610688166081619930296849350406472748200516275312046284455707432661628782706598680806799221086157192297618710933992182517432220321136974960309303059447138074468993470958087427032467841814162964600185132636509974430515899405320291860463175307382121787074371004448978585965323243176036137385217452283507116662871771691831623898573493849412776928693322108125004799576041648833521579816062719585350100074648896421642318919874679353757836459772166549716381909360911541126689860016676970614692396917543132233601931003309470684545926830637796739037475223012596489518451391081018650928618881041818245837226081349833393226624902568198001075282138502732508611958208652038764161852228210188801506857104513265778681291321953234702413112837997945565867483950116184929162047508426390082729268560443920191868363378837742946683149146284703245305746475263436159646101496413092630226135910928295355111310542817147421249971838762781252383955141667550160365083764642215555995710181655931998166568006137455269333016823418373504273332679101440758220144730595726530734946095047655127008549562803435633099442954199463134288544510353277853589145326064597707163790478862495553424499022778952027047122671454778647657479068071131883038141385107862084864961764614976517896420183864484905452433799758408199040526001598911985812789329777903359678624537968327844949507320701970756519619877287381489125731080540400527199617594991455880232340333677694174778449380851966467713743712193742375748688169305665989658362186384233624541467062453098695237506212327381805589764423954953186316548468147715016479569160584068439652499495724889616525909607903234307447453477021442327777037040496509962842898017630364658513928783462677755040942106117972361336873081623065519486646800558621258380590018416760902543850365711589489970448441636639067998129556687329207419482307685824183954280388901829808682653685006788068026827256828611377336322237269468521611056117219947208039271914045609274771093170723044336402606526190374446818745854285537840422367089129797980604590421060212492096075753837915474321887456225753310914897032735048345132041157427055987066898357667876594922963764058352970788489739686746138099978144281966639399781870471935333725338171869726241422020707075362461126060613731025965888672578868206004754336690826774595993754148544111388656203457631805039148635057492908349011783872741339968535034173732980260532946240068365880257580493926073649765306836390674137585885463757454239684573479121158580423121423913221288738654885347081741705570032999895581268101769385802654878384890147462679090160215063644158126362223708612548563633053378819278872154762795328992141846292595912804864410516351470952906120755014720594433125647827253066739020307245190179403537610116851294411691023688809845866455350482030956759059637618458172311034847156213517467819426046719110576368905230779494689820555792937938115393968657788773492930144466350183825154637297483929114884564772534412758363776113604280385138921435622540605566658156654671786731739836478090046264866619731673044578748111830176059467290983395389542278150231177356131115914076642471829689143094638756213649330688612184745428763655214966315978241747176320793331272254864327725578623518216349274673448154215521146613907198602871095567880340961888881950157735391697052288516378107853926542810472973186757429962911462577429975736918903041793634003875814552517921844161206013121113668424337924801038336091461461108746397016105077257060984400294202842909703999753526933109943430098753165711965473513612282615672805065265638303376772492946752003419171560107687112522093600931945882878498472016132428577915185977509020985672369013389305653303059506283377246019359688297799179150601461603668073168600709161940560636385142323367754950091717323439012433031424426468090726771771875342081847772516291801703597605722315301707374257557719686980265658294018816102572924724820333589819293121053848021285223473584085690480203653865418847526738312627930313384691283983481875328839076735769830965370110196728800564660981586357524093589987795770111998556350809813164123998722939552650883363166332747716097294781109438256023228185752806193122525653031857683218577272673077267379797470583885368228032587742873033060096186992421375634672478599350951811860111254352389045763093629723940184933092401578337171920669785959242184606075930847447326955061271786470025237104450698483285020027279174206623710668525795811259610365674957671454676546887464055468865386633322172596268727371815159282591532075044609495677522496231163546604445513484059152296362556679369301641238768440700097992524348916204706997690443523604437079979336064792083471169757431205694687904708847194108461499914456620609414589143606305034646242659882373395596823643969917122042901871359058737797827298694623912989522113577650276291487320513475823799341527256559052102061449229277228543813326690116986986838131461178798018659595941573265571738042833685521734670157974374487790172813728035694253781423091753061325509440371087791195040285388283454494002934634402708667687352396185360001094129872687438116987136184272527988783908119818208059438697208289987181883095688288552202498791902677368036333533298499432905385119941663690393225872369452922673657797650532848625091018765644374855937875080656773706485822721401384233675380475855499312502127207033265607946250141430453942541871400097744659255301945389028182735692861829295633042650333515004080604104425881153208024787222556272335850907863446122745442959171959825352315451779824262446155404246378039161720274184624923622404683291184198227976536813045740590027553712615247750878169262712525627568265732524504127294894735901950886009703198503727383329495873581268914086050400687811666573140148251259389672379493046582003418654635611242003159126400296112979701271443408660379074224482396420141873261913791842812231837225575025681667090802212728203767976575790135744703804469662924680464228914642812256805803898724245992264822635183416014362874606381336730561222581121570626588874233149107190733102145752592766393447483048569530462675576101483754634158819058742977381130214758694751605438227051536815550215549074693075273587885404307992992454471353251887133627115736776551325729107556804692166963160778941296700285841342113440616467179999341227406140654950309397100705481345257250557967822847489615652385585754530578194750394508926428115210501127103839398859283874043030400759720262264523648115192518202959691858221641158749256751417510478442451829236481790060423124681900518527834343490385055443167720999479102507739418427404929827740146130433525560890088261728606788209524867515788116769579413158258476308036941660514401651367520839270423276643089532673827172697292255346424732834578984098755848321165214282937832151693334427724186455737350655334252516624342998791592795177218004059391696811990424439453969381961009989829550354190949227115182237841472511848441200088492643709860605625298878914167342044610011292137987760738610318459156407263441692574301836999486505379257162621948232065897722425627897924882608073090982242591440230913369868566739718377405526285641123199676564815130403162997905587121444517935313767431043073416833511291053584852662403134101592767366174430441552094718280190111673637327353130793566964979685153040843834055362523987100018984831008099610360323548951928112658571562085447323205429544127395976465904578295694019177234840221972152597432592448665853558920053721711016035012253987642327760211387228020536074940998798475009662245365933033411645308403373001115438068395231272461701877770246474855621483327404902346637140210566527472294344161802109090223699203954703027765376757200678834394016508355648812147169988775938627993716960962318747253859651301698031012920859832915928168864012056093740359122236759194122934858473027810757728632705924464570451730893897722518035261190886352763731399564277249197113884519141865243118464420871415551322476191665781443123831555128001809984224662249206110176050597473323943936535476203079243110648587830107076104746754203027042634178868981377689383900637325780389155509799598433634293597757058555497385724037786174350527970166097835371961092499446256578240728045026092466079041126078078523610226638219195786143171467555451493633832783220349932069672557464009182499582675534500846864727539267249059881438389823502940586708062418963500792703069574712040107640761559641816304256905961528284418378891180139429957009910351297492518816511836491961069934282400335419294616693766518619260241488495225557745282300094808454248509951545354844136468997551615349582162958059729135632830897812326654570160216809316732315922977247118317574946596263706375364706147106739902200803349287373227851620042909680388393588401996265030371719023840420086900477829795249582435907084034285657284871123036162033478155614309601472561598788350991889257419739914164651900117497566499579539223400437197893202786859939966873061181269037501202116713950267437817563450355390454249338577456744528667555541043088745653515571370442867165333341998622218052338767271756368043507246573190170245174100862067292170877363843685164231970943286835121412502070496696390122409543633361474486076496210733046568758300299389831990547531845369068666817970607020008783205165375271847030382956302349981694953487907207952521844785256547085699459267669050627773976801510330373562577469831965041681272776740974473473483052119389850207423668865669108777619247788791143925474383659653768747741666866997672342871041451422908350041677372480930758728477040945475681673344444232792517149089985062108993285056748988461212453340080412090596221082981602954292317606486875904156802632834587919355414204415236833611598349259551798083411037107714153410298862728187733471746932216977411866389914841847311051667452195465739630461106337522755032213192108416330137694315402504880270782590367978736587377794330413546865207614941427290200203448052549520989923730777153794198850729029194042407784549849441318433474095779971089992574814512535812728992876673138497847283238636645859802731494047459206195407195816515216341228523111785688157264383871797696223527607341135309906696533669964561521407908514102031032949991041228880349400722992713339970710917421837870061934487487324901323836814821407769687428066282619285395084870873802864392830304219720519315036600081590890884765226854296595124200477679422277720545362295724455475722256785243591292062304799658937155903011408530371823629453514682013699534291905521284830761204115498776139592226608768438350060026611030013867071956128208281022307402785836437448570449004411831606959362686442926889772874008754508560920267737056160727183201805146928884707445068395666700289889740792902616640015939380954661254713600236572738906616667383514842570548674637089725649304818808959898580558942063258687422852762794055219471340534042059144807582015563997010010702947235853128975933266896449703492620412431958369055872532855803469882465922473774087777673005147015457647407617194064777742827597408992470101734157495291279213890186392883407322070296051609134047737340469396563846626416517078158998285898084978912680530725782701330633354968684497564126678987321374409090851148771712539752974992911177419225961861488006097199027902161332914796159628259029586264984797267935084150902929945297664878358606966579403023820134232268327407965231892946700076177243897023637502359345985273344062021088679834663489247282676200733031389424469062427097731712402171163218590180868179867796240343200461783848533026104529311359225737907719851810277243764969583980614656455443707550146381382711955867375627800820191567823198486852211712886064876072417355866158134348818080090817373471389750515983292759838158764423244860186689592143141305758221124144355011160584850986696567162547237545365054039362994709506773778502194715457492180279051373893482848183643799638878829852631275981103404172328539648136476159042640911549699582990530402601251612366078877185578168309647108171892559748779563687112672034013960631550154146883987899989891015324684872009531827689123159357407882279643745180595747985143537686964892247965008612710550540540314565219010535673392447317844031621248780377634670621179540607534784803537708780819311315285207275583700733838481712274202024924947799973165973414538207825727906931907415503251369747709995514849541628664532355298015134761746166663827349123376836194234533432676110794844800523581744396969082427075211702239201159965096539107423380555796622932350603118545896901923061552486435987785462387900337848358577357465538636330739305887072902264468427029328145937206471832334739820490201536140789352701579334162134462794717424168665097926939832289727649609237641462020205790142899765134422401505153567136083850050872614470098484042278207477737462369358257019438375140063635299005555779985940879151837990608180127310922527506089236952823191491388542769391267403061692446915021096984432260434427727527801635355631794363438096207568432608658240209483739609185274524122991870083158640251578485573930807263448537299114993447511319284076155619071604627460666474628673532569215058435913283147248428267069823445857047938251531888500728746861181739358662359708645594085058442518819204822350771116547432806959688012874518465147295092685393159421002996397318865469956197625689134082036034273751048822624785315364999928788398293664166409779953396795456600117784437016157815089214651284570144991634025934524634622515258080052734118988341293173186328183278198259231622531349563231216403367562326545877995006434926390595974693239779813381871935177433399887917242488609458591422745650775539770450749075241709934102399109785436303133585179533361203481140094685369348795652366616333976008362134980706345204751739061572291022982781361571509068562021186188333465355680947013367893489487258999282170350683759394586517426425322022549214669709888051081697453058534835093012190817226778129192886373699028302931551345851669308114612100873542812066738888850039462666343814460882685680550131967627914481035384105797072175246447486728885436451815628070206602102530395556768211875109020774816085381670124095458926198444052962348554410059751747586781355265957735948488869989792262364181303522960902082591628550740725856875183850796172676744478363008935751471244045440982623011666268210119211086577065699579629525594001571572413548777285884944892814612388486343522537727752606168155688089469277978224675101674196380168883578103159847694848562892740161533582157850420254577364162001586770877663884028572345920592812615762266783304099212455255321059681457886367348650454450985479406858939863970061810175771230839079194313712318523343334117437039109874641096719925639530941468799742369651669362036211033325858376870019662827942401936384152955973668962365762030335391137236230598076760896509003233478252392657523813497508857626566222186416633546093303373457191832751865311528982102391730551047439803294580006796035678046541518118851040452419093172394151528785611635491714271190172890481589835251044712765422093456163417676670355551289239646492262601332647990419264104372287662421501288749406458899389988474140594095832441495066138614624571605481615649809431345059294693236300722441771037482681990357685120595472529894635860889997349306268785127076954267743707725596195460021121348528930319331084310373293707315354885775432873336853718453350221814023258889973962312860316322946651920433623374374522300345651829168854754932572411943090748758757844832441728149367967007025944373589257749994249106063781237815945818953905805996885538332078290039628360110061308115479469475954260740877248158445632897481897171897286746392937407654657501176560252628266451025677906639719513464063775734625132367935786512948188225017785251344522346142170098015177952513882314317762029719764144340737668518861382115825288082179111029025596306050242932977516747162983223079501361766398834656050259699634778971519753456760544752455402645495666555974800089316008243480300744731309180231147309577173043948834671924233655160181185969809110125385837585559277256487799271912567094188225329851745806929074104607215510559463304970366224043948064013137297161484096793395026745659032199998180893937398706158406560956216294002656997526685960973413342711008048517418568602983583550922663284286700568669664220721538873752133911543587638182813662327950501710947964135781478269164327867557850808897142903605977560457289438939979109676813909826731682055972457046865364726031651320758529046116657532803392679124041455018176053658311351759894084243008568428586087868270398715596769308857261544902281682893792699984181468232199740929638754237637514699307033640363758105329744993262584555302991950634312898240517068949874579763376634117755967673285685260134560781662329893305001026654227106056376683488512874437635634326376814065267298673833648661242167042919661922570204849648140763038282799097608937402607359271993420077570199761278730697465614520962875273146385358977540116796804886729986551378700846936569785717265631396453427298132460838673092029455011966088335105638704348716318918223980851849242458391287508611328107151720228030557186243513800827092285759299140432676030441326585584114052267149120958749735311227846689268602240070376195947142662539517146786932551816170461905246463757178134250056262258305306067206802428268353490247058712464389429447665723794903593872917445080204832200830883619516587855844704439304567964575211347244441327350328016592477557497104440014547886899209083232097694560784644797555157133197848736713667437387010958492197698811230996854656617555092362442147422686689333539737612121474543977078042756419574447607805659369701690506063330072765624865352728699980682965960648565743762099463540196859602829177675787924435629163874877467390522396216853340271080328091276017483268700979507007772648611295989919450232110200004453962787221573022677831427279930838659123015838839677097724691104951852198134531597616167267372100919718671196967795633856428694245063708837653930779607194469187846550014722335564059956844086299954816199427736265308888202248330022188649419620982422720469114704630210872580145155929494034024782361904527858029324285733624924668749974308993472520166398284726816334989525819736005745205233362041486107903577311518508204229129864660420265419997747962238755621131142262905813841680974214873835653400209484721233368017298009264231479521035964433071058397168976873500488788494630291777765794328401679506466073626251058817209728905928004326362699128474205276199189909652321562965974190385982713713417031998021510842330526550255654851121319752726336392552115915601461473423661701008732996973822522510598072932552646345915144485272862313299637737523845875839234551734743548250179321526476123273348530203913758473394850666026537811951045985924240088180379372306375966454750675034400463307033367606158566103111437803353900831027495720262392684473464418554833226868248649213304003305769512240671354427062299021481428867459012633400462275604809944342966516871181536771115476416457170730454110997994099084071146871140835075826100090734646646648806783844885548444146485595286729978172098887026968701068792371430704679349683133545315339446993177346118668696261744746095123917036466377638192671012627885342632635636061756851870881592658747205792725367757414878043383982372324102368190461649707364528989460185447562637071443868673335517331342963797493869035399305974316152677297711248233101539199139064130524684922664750822333922034935144335361296920594580790351398990648726473782449375211213412028512450012978235096849149125264165781068041325771775292756619950943674826576525703776351544676720125487879235057538651708225298858662593599564536446669027407893841575861828535352068332209199413398342753944799245881214851404513012286746572792357552963400200818962320727052017998817625554704190066704506806433227488648588788710050682783211184448543807583520341120649875389864129306628076656738319329764652762012563001280246124777673856348805838427095978890917248398010418464433168153328297477506365674554350258527821363653163627651175307201495640529179420555410449151808459914782324397347838815656689573929959847640231674454933811945775873804344682556345986918717326736538916286624938480697651901345074981160069819309257114619994361608881311105726885414255513246994781650737915777900104687879243707964870730335766113672684744717588126764230672034312632835603232578586646176800291806594579677619178934264623316788739172068272756115282213972007675455327450981678593224252288985537998220433259703219785056772843070012734782692191406099335995343949827179541773581279427652466561115523869973466944467557842963183822847757756038895985968035505729657285257250909132989838463851524131848725881000866126532850213058782305999886794385673570990588060095419512414056081834749998777842231503477309131381322198127408044843676053939755117390930187586126024610403577008515758787113268105772099515756527952174633027357994412598404856262634208407088651343457344826489088053555303857537251694351627210155468219106904162450530735511007373446719352868367153919620874434853790393489437459304014964112859289419115852667408493371755073134600492258865511916969446516941940918428072329764270735629663983150162889159359951534278538003618729890710253708450830053411853332976036406105086225256993742700778308717995061120058595445809317622092194263935887411397814357596483630583684223992213984868942956962502596713525692167835403822243264828213792570890954300289766158528274433015888453430850662282964445053908948772431649271284401019149006083626988546172257793393620715987083139894539943346451259724229267435674959298212911867133358529513952405680430949376512092313961242026747349869978460062504224478578973394709537554257885655286286400413691511600380156195238452702493117994567362057635901869050691324555193470950470115988218241076690089404680479242093545872938188769712767185938879354048818161224457770868565810070919094138357458699025487682503019177282635589807938335366969374731415316222019168961131851942064408791128236900200732699925736912463132734355412777020409172934563495768754364869052077691471797783440175901610737020186639553461835414775309819501889778100752722762855981097652759895365912948964112822021823763247692163900603181516252086197487203179384701037466685934746053106936287046500803843479036203001165240735463132357917773159705255538979987839591891553821518010352354224379430720080948372715281782806264089714022929748677436850155396078341507855447960737946958388683494637651752010773516902108495768533073038500747275760280319136704493922617623274303589215556328097151621273574890905423201749878071273186668455411734414532100165290596052260775962653586261238247088999892427412544590659235489861839893785803173584685830398720153942067036290949002926362626264978757412428968771639021736915862266526310662977996681158075858435183376467276193434899565833127332860853154671657950300925373500803382495160016933966578744543141343172975470815787237341206972082723521269062217972930737453111492319274234326891911468549466604647372127482259396502745884137645002340949774605636017135208924175858756712908156060537386068773800834406409624939722339094737259849484336646831647237108852524193611927682987514481503346774634838095353062812200406566040822183399969547928285183465416140926636599787518825985965028879227187064002756712835505992608913098839681177216566373601546653081961686527187466558678033573307950170098387868217130286630139876854365213313724238911158430805986458743744682762263662561770313352328786059343596171221168960172310553386778284024214473866327945600317674321380515044490417983792169464451947108597570064627773046548913151153531243574245281321087232280907062062746997248438416541768736229125673719028876212442839094885577229857181134652212337074165429672482621754624373162200180340871018477897525511569481693909181219207465874474993697177646589575015926193007680323278933008960594147604139635797724778797159220357414380545776132558617491102822517445365414416286763191021226130043317555215018213192182241966119958924748530743097286883659866687518102475804372943581165373296202800545624340111543687725919425557893925491191139526970307694415916134356838350846532475262633062767727832302106657566512705396848842271492594286610535077515126435089891247985590614304061860864927524228652239116697941520535091265910886791365842481117093000453421464409372186694618497629013595238496913638924130396007043947417478772806448947342164418494498205383879130377784051860186671889259253673314520367853344269685334460987765066612020253928369168203035691031317955900152572161419777438010172520149027855108759640473568994533868907432699279456345989663520557489550020746143398155817967862227677346343191447696136520390960374985595296723121822807938708706548443587718281468095879319295671029603108756818493109969414984041443662447312053710460330220335577318922809050142146636029796590203471546108620347214033968762767394513926290292031845728514422678628575390790949078649478788249667165444436333120219470111948424675903818970818854399611719605705071297199143460761686676277485278647397990294512100514835528514212919337922368508223686752591127933874452391325406310596659760420721297819633507773877975535046264827622193902054114147294684127055845310456341098092734676785625041965706358902285773422403411322655757169637690130369066228304178314647964496826708868381279847913532793496282814472977867785534434397087075703531461370005777765777048183626058808103500736323170277407063539978726946358329955863347713545208247894659069383947878159027442143833272719001054983300915739404657963025160145512372674437310917471782223820163307662007003043019820126087352173356400771284871201000269078720233585112441985832132762971719780759058341830711746059360084233737463428242798959423319121720693943621130737224104979360015921835374466575257922767485460956104385807301004314787841650702087452266765414174763651906600379292683052972856527568612181721703498133576920153089977320577383555145278604362363143672812583662383836764754074086948871881966559006063056607102309108741891900408918770428323162810219836780991897442273510300474753011279112090754873130500888610738191520342062416552523155374113357690311624875369227482802024341040408250497050702045317242902625766540148568221485067898450977317841220377437558185610194116660647688667399219159638550670701083713948754894868514056698583441988160575434487983716143772980620247823521138515098887872568380771015354237473589272316847458713083599427290635395472284622321628529716853779941760641029653976428375787778622646012807662585443990507359506993813303160110407250243327727209141609218772461446480844895592682224913237647151236663971322741111951734035115897351329195303851476424166718384860123589415743363356340406903321632894169621913035857867067289188147808991420767297193892901550280169431323353468954450356595359600006490943465434216384486665519089482625578501736076816857238551740767439735204026058140654677300405147851667196847557300491192557438153544214271570162987749678611012707406889998670005916300624908522345516150643162911200815834407376105558771583180730591305807429111630846552658588257538322942164190705276105818263560641713284303600901902106242758784604731302617256135502230592413770927726733235374258607624515572853411854685359200145281338753940257292756574533217104988162023180910963237030416966071698953030683793206277532668184531596043437971016204084391560066119226588877122741692491777232189038464918435824698829686100212690645976090671002072513038204403834651121770425338140896216160409066426131047723300931923936746650093483254564202514314665696741878107691891015595710876107335410416434032830581851261390462770458425726679357480979020297511324220199004006263826965609780884194617525843308454899250218409841788102796425374842174620897801187286089981483620334436090061746805330600792487460942255471069214146256886983264426125902890547628430433854882667324893739615927911620181142998803977920058294113266446657629588201949259594784300406714005157202505129887278235346613717358320021890404143993394843532208537041745112364002379636607105024793122664971463000337348489114616906579856304642987854559317591929275996428084188185450507382859376359559084147175130171123679569748981475723969992441131802274442221051591680070322296975896963767967303803140006419653882288205161050195275348838468013372920743997231989274299118022728680694393442262423885325958807189412180425242097839963645306235550952169475692478216402928618624759604300824217923012565547092613787365352212956908093588452709833499587293731199423403451585133941329362455960427642708896516367148180283962441864993911561363683064992937364107736296647402537097478735079488948561482245473389157468573505846366827957433210810287199573737470436911634494970012996768550532943113961938022055675266378968541689661613515171318034404050420549292784314063611594742267058667062587742869259584226241878683597323764482223090264216879144453175625417933407875142981052796656455388451596252316069634898244422921173917805144303268970399169454297725056559097638294703916823690475272965001514019055100032733923911313674890690173962876304103259758822031886493054571190597941805275650783097792801596978176132942419007426143548847198200534767701050475342603467797930670295015713102490516874466342108563356667106088220259102841710112831485432049558794490457436800287082674862083328378881264938185883190153838132697016000914722565989471561164509333095247346604825667059730594392011192577292759730047963260570189348780054205029039165288405734029617564754509314860006956299134175946096703164869177722577599191944607100007188711265525750683737618137621048909959817684499466119543543168473572501107468142831980568258270149173284653379152182636624840862725628987101431610372118469729750834581732766187443522364649598877577737295491239513454671544215028999754662346725083822186596560766398942369000088561825224796043050126099524583904215206227585438712289302839966282188632316646538399883097002451140695944565618087749613400861542122399517530883820734354571750555158225071986192635949345516841373227436699851227745559398835960270101096454706937554793444048396355875181617329554278987148123867707124724585948232634629742466985259570705140942837714004833139127524351728307422039702176355618791351731582921864858292426491652776666085039203043442960769912680824391328451726479490256653664087219876876464157581179650093919329772923365427523393351381477781402602056703123661291355701798064203150985944139371593174864428750959478882309970070902698542565074588752065706377044720819399505642173454130085401237037212479036554410847463631371367007185984525617926545422183549287890314748383288869042669941395366005981459934654952282674809961623338660806766170893114421226169996538127169793212757561689717601718119387390284575066867313240652993116999311796289078247061443483334760882935465132266748306062770646204751786091687351971993072495666881341604327136731491507281152221868615143693578480308735055360341801536567354402276264832545574320082906587756094926054374492935160150482668724433002469498239230644425654204937556709130659652676552152271030257061715097868803018035584516759712682842642011730248968293553225710277024740457231842319524057808960747370232296393598688898942015722097224277133563549021432375252263026353380936549905127777832500431318123188283198567506117025146411982897087370801902504001932450006768415088733012870630439999802296137124857765087911314967489705611195314373229141508365832829244620692173955157564994135122079506068099742683802653377616430167780879822357576808672813658454348099499121759431297736827846096380618181286418885127780043103779764225874510230180686200764145793330153799134547387433879665524956253878019499686560474843931673758567166341112571407181203265395655548898372482203271233146337830570507069915938005306413528753463503677822779113852218138583289522002810464228046740482744153334423673049636968913315089569065723688811663142126221037530773850375593989803157484013487398097750409968070258789834109778847592317711914393806483884873869888626879721509970994158037252697104744818372733065036934631014124151912294524132226344051314674280916395402812635051567310522268013950686485213331362592553741225234020473476156005353328715113732830647699259287897097978427295274783275073411710745881773798271915633403640325507439820093587331270510929941354985862755290604930557080678973174991900543695320527568726273260611673194819930897785885133077945233483119346674161620537299550606757687018521004617023393391653027963118677791665388241515069048237812466502080916242164191404901677557494218171216497861228568634642939458677412822310759467309713332483462901177308856413061920239681223039776817806536456685356692270546118284325057569572407975974107762368759457387766989840236758037450894221089416224728884564954998990339679382517723728267234561602566847827482397203528064716969302726494561733884857447999967234167984106469778178002626776376425662168238911071203381038516267279068650987651476061200491102452228127767705234001721195947585253746808762030070108702258369612587831958813741540846862011699917205271103120430809576918300683624111791920741541735684500916376310041667096662618326164206853595475680037199529113238238305127951313081286848487133353665474333822251753311066328437566364872215321184244973187351298961684648077734524176801533318904388758071765890426141864380348273091166186550872108810144304713693170823777368078521067692980833464819828861464170589283424382233744758223984178243686147274371271657483888516723824753168661427482349647101410914358222614098492062774249267311461954347673487240660656683950167673810740213885079816132258857999384640586024244286432158871418129646671417879200894440769160719341440502247235094036076580493888984302254757651172082238908076207035270990904690323342385667733674502520141427570585873966493006898216568362161324391664243829207400819874956801781599274364926011137012688889017849629771574593369795569743942148024917879295061494316257201252472907051177405676097474371406821321444334194481754747768503249686089965634723072827527514629972166096518780789112619043560097356280526338519800180396998797854647821614839421764505470217567857552000172670274473118560162496917601341505488108449205907420980122495662975775228250217222753017850227636826068190227225982701094737073911525342467562109070389200511461478824525422499744542114096102262304711904642714970247837515774057072880395899336647291898048962098338580993271830055326402181110661834212135121831254084653265199573967377344673945183364556693108274022877563334478628138096711070308077712337623010168472546045274641561402866475247983439690750328156606920031529281415934113697953216110271814124129430643092589732363170272200259093745034722863351292730188137058882523935395217795634519753941609036672298435217146965166091553852648520927733226963503222658202102721002226806535634385885555201661058029008815553680102100159963928673855791901887596795293729382020549814368976674003102790519042744241294714391605661843106756065935567532223409964011219758999004066193306478820531451901623550925135522476981710534281722667587307327213972569594235488704227899819215801607706905074796659156129378349914742786020801856515579346354000295717609294101185316464318243318117455830118531473223461857724054290516559617497613016484750617047952661214773065790426634166126799103530907372008197008624132126849523806865146774525667891179119595665416868985266477337600578949013465560976649602738834402314235929705262289318666386869073637321430727579996043287864366321018091434484122646637128504590984276384435571711303407137399453564386222556563575259462518798152404927675216047945818737709093845951524855997599012866354001328691138551381592365793382128853997485446766114240134940001277637839221817434574580852052649095895355701199563946046392468029749625776173620048726980858764083720444849672339908085452360370135835150234826464122585756654081173054033139061609310474823047530057937329278057345948503557091662330419624735889139303033983178018298920781924294738865027497891238526360218363157710203065362253572230042839714218290729035724118380000949400804598080692617940045333608563312791700417935537929633728355482965668562383958662896431302949599987737725807921199452320221956450031344401839564161250687014070110370858018210588936919043065388778907007858234250930284623776352697093876960740244293971721079732322453603617235512040932501467791946858142986370737730823956552772416162969095067406493344632728821378215447896838234340735400473855207768510424053978708185169908723457642076426211594503581209419861420494092624959678796130275743381486097687545659895817814395046309626326429317797225576668158478721591360222580779291253672000566885240978473954069982504520837133610304551278002987282726513815338776939031294533993332910760879235585928476706313579982862591360849229016522894409089493112725334169738965124392770128705599390687226472916708104056611627908417774352933799537313913835978844688813903464172042064940998787335785107667288586977723183050837898782667403325608308722384285631749154791050788917098986071808133074915955575198412903664215191992013374872444980008158222695695109595966697517760227663126675841180571488281322924213878690888059253354639413706097913324814022320458617558725664687008798322935157808751440714438245405591654580629555598533601920525966919127586045040403792780867213625574975998200069215633556512179938913146432190381616614898179801055198245176675412131691441461326939224259230660114490304740544413828257783149572790312279087178750511477346914739180875297275263976608088400934256296808983602858950490971416458411886477291335644919529797800994846126398034552973384839728780809157193102480965610225147555627981977747559629444222326939734479904088186796191358980296244009980080803025240161724142179111545878044384197536596987893275814563026377027944986791285751303981064557650589170169014528443442857424410573784057846350018609911161572921210819965160144702422339104233792953691432185676047557326364802150894586920955996444056366918142045244225625192028640918284145980409485143657295099269881141679328651447802160086915922246436560637722331188027549445150601997004651320389428996673409370910556309558194543925912507712870964096557616109859315008803372733897689429874300102886999148523850699720728333242459224565354737891895360018117443453208935031768055359970657116282114395002032970685294667297051600318021470593867253791067935501255316949285266037798143997512430784229453065763972372560238727035505616459058631624393169587776580623865724427246774327024626709172057969428147198900669079070673136115487023063317131605776630849872337013782690738438619947775651553935687117461969419779161303859171799215101077306563780763532018842947123816517835677338232734999581667873063258399344927966757891530068585048521653949086017353955955461955614086867999850434821135934646351233143667224130877582721632032682637842240546581881791196336473805796410066758180693426016599946390308536616039897602616070604408069013958234228099002121043695135210974906188023274911134456875015429747278012839865531906540954756187302881559580581676938409428924022138997469273541827997969459777199489912214987119340116863299949123485807857179688258943144242514950879455187934014198640364209716857013161382395804231316722754005843695349460846189960739556360660915335875702996496153809447207516757226863683622463095890497631432225618725032440589968073547738550613226549389035412738955816324148561784274560297884711030574121810327239821322708101965690118327989486308701721960951732851229945256818138806718663435653158600556166425394836710508857001240476646135909305673569171768886298897600834315370662977466779497508603942996206229354043907369404847982355676936840124484329245129480639508344529539695986176932937580739196723714175305718384332635352921826419569409658155888440784497900472330621154973983411266706037514163566632981666937338363150265545187766185357674946957845136787014716469085956699679588393268024422359062809272407566048934023050466605314384055226966118958204415635695897882521358577189456529640167200805023245433577091347725689188102471456874117363437673843663213162299244060705513131400032512520008162614641140887275972244170569782009158731212765871940774169427894732602495523782609200664143561256511122198762777945674502445717188917170334334893853385149734730118357779071764762845865947776575368642995814524833203110212321047054550557277171200441896602887194848495385922525558979766639133011518673750627626106490011639680879794412783271785379028840890604336662043328409804094374464402661015001132199611236508505214856360655362895241257394463841316620952006341646390403130779817131589650417602868248555276006034831347267422643866300247833596830800013837841015144962697766411553557160414707267535131727777621551331122713012461189189408659634981686626210610828906650827368197464700472112937065612228954929760590417411257094916910769222285072355390475978737266382193564835904131961920108432359046897052344644098307830318675409397159704627672845814432091831823826241426353854438353305097460373045873851026658026408573408088722922547918253999861787375772732335501127388518596794780766605798024916651541250949107646280800449506366503905962775604674370723231731134240267064725621790856475659296741643759002041085710678752394927241237997055441624403016652108490088983293470255585258654786565455424414135364100787731888931726911977117212926789107915491285507940919837489252110365383472024075822987927092709234289799794368350067047443073085597576018448697460642805822039768412843816711281998243125487215080594853057068062873766712520552773703623716714872425638011606408497557202851429127152757658229372652895505705473348655220726684095255539953208456877130849237465266941929151811037168197468869407804993001700118542237251411513202636085771574701938644361537064643724325058477600030232194516155007329170875930750129938881635375704029576635067992710066151886604042456784551802925231924888764344573240171637658132247903793566508875321942350269800007029125697401527447485197572564524777545494516563336756957406232090189429428594021438807036415132881388005024379713069306856124998429836759186278920039595000179837832249022404271576694939966351251756357375274765643312240487409597343518359691860269401803524904263448793577134356369546979226629404876363920515901753273628252302062201750145098215217885170356603413940431523909512366972150198098156837917859706449375274070709844626533766898081767524821581640463204219626243035801382186174066453082904503805514943735579134576329374301657043305328876471865655400046749413088684076139233145613994180782895624096317347714424793880879691618591961458223109722881038953558420729042499012590501132276521341990195276980065026854665120849112210847332061844263821675285608481862647866483390002050532036038256789012198017616023547319891346247714419614278449780362353233602655067474585055970590844601969629206503009973237073567569568141641714946662829357652119219129772024533220383149778966708277544347287433586439029064254750304956478220482445946706161530758129456479039757111991182457369577357713176862677014971183148761913117526142632566059463448963703353589773164164198182651835843248652053854206962294381861925688003184686081795742925378616513711082480676024299773225869423950652731104138770807289764804061030317709557697247790836141263061465776510100715027870454546828508330783269265260703094732221210470801537867366510480744906440294435075179127352492519752766014245615844565167217009248280279960288432469608414485243228085731782249857286768108766212393239075321391865491642823406780975937141020872920057326573545005951636606847577808977432143182062286436081046913155124542328777075504864170020834419641881045422106769263157381033161087584185493578283012886124157210553380329921003992984848185081006127644916367607467695071567190715434877764648433234242158649324390855516795300425241981501310244113488871821115866223079951614734435753077890240450562039469804900078866041231538047241397790267241764447384262850189079861521632847115368847648247945381671005465714325785938924924770004846977410754261689986452042113298784046241009706931993906815557230363676323816103028484527661616844927526511274059317817453658795760371573124827120346413501024054745579269851106592163244760563606550769757705117883218791661367618779995964297784261394775388210878323720682182175190357796038640146144667623374129381494140536876382794163245797234228122575548445169376299305195666992911470308845319636472143512781935220488514610265811138319734944251735072620997381600300487326283908812046168844675450367025552977373387277703250837206462547169492876499356334770235826818161960197036858262545807667173512098124107138801141005183372045604306292835545973017129492708734301323372883023888785251358677081740361085215495250473344821121763539956874142935439489010206256197502450859474303580855857825828728150993909097838809908202376692536753622769982737967068159588819154105730280246839459047141929553956650603661137305931214804935146815297419731230791820065910189488318273389354275252258500949186536799048578966992368682452787133060463399523491363004725712137690274882782296720648113035064713562581095512876052455217332500952760210349120116960923137503526493473201735545123182244914312303156770069046544120780269310964604930327102329233773572036692856378351784823399250883800732376085957740598002590510280048721141870606543387911042258077578160923479561372048615722437840526765385945006752269232741432511942918546120333849173717061901982320364613290364466475922458355412867579034711710087376423073735918350167905647006984414969481115311134641962639412642419513433907671800053480303943454561733427244298055756327478908039514997764300768608902482552980668283917456040519039671235553864859391642934864748188648428051118085104741681575529278740532989903565501358240631347347784229227823940746447359718423033101106061936724468687472886681369322833121531688598239527162012502654648472308293323345754193550746254561509827060058357762369634357896275065938112731282978213788520596673543368306683704979527231389402068011016491357822907978122908772622600536331978749429175145450480646357343091550716934354351953675523982963448557702333914124101165196998393361698540544301001580058417764318493056228979855914351086391755788774887279296258610350851843299601898520420948522106380201330224309694277064628823743064578376524479245474546911222246760710517387549256956633830485015385118690610720918460488317359382847902870835818717790079336651905167691313527552228076546311738293906030330111144314735267399776298367450793005478677353149396961295641210258432909590335130518868443814641915168226842321906597793980204687580660978528286117151341012726813828152347385393955305389670011805798924811123790730760164922024931262924746636633453127488503800449933687705812633323376392429165993736194716307406079848506300947877174904430580145852226400883943958201360419904112940266263201080315558803478340288092079262153732958739647451051783391997683011967749595682896656964750988073168651993520079297126521273883076995364398501200027541895315761003519532450675597386402350845003060100192872694593127855402386287977985266196231969048901740545113548263798826107028929740291329360835709575675443419186610554757576370199978736265918815130430575440457921014779016186516618315442107853980380178719061119006987743646652028575396381543182708712446998662002292298428172867936527145370828012666029220251536785158537649936185615390749703346178113256087740434087274046656940479364459641410778350642397809365754610991356878496495143587383679630833194945657188538992931971412341739359754959561134165856886280905689987698139840297643536819292226234386258266754134802445287942589337239843751017413688301520670703629859408761813736804412276522063308069878192083283272811148931626376510511002330468729307697012203940568803428969459718877997518437924647743403699274208315620757421752092519979152930358630361087855693004661311092595493079891878164340747118195180282808337130644025568526888522597925550030733052813227929659438640628522705992006762393221072860367365175398068060666664851702592201283954264899611392910691500660289987752158326877577255171299431201500454921760897276624496479386096191907993582215123205090829532955982558788703972531545008765776839365431899631686238839363167848601455281044391622949636507044274715373663477631504382141473884810916979093046035590830977405593572733104168944830425838316513642204887225844214204642523285339424101518505902638021914461695105832519770299872436926650922517683129323156923470794105004764618957260591070754874162740540864596718691051435435889807772201725474516977438528474580023187681413050887693182522982431290627152444339449177221068295041373238278697170322533295627709962211008838687625627882028990169778277103206877474052749783777585740735252502778154651387609750793639227402888448481403004062657505983535292275286225484518708288067487559395030609314359691845902580707158116086858400970623231917943762430508064176391961676448989148388326402165376526449494655183526068551858287757684602590198377598688545482197883351902593276867966146132642588186932585616440920234413558511698561356476816168803620910551350705309398207529370443174998102773503061051111168344070395597394340125737180024813242590828495311109104859282754124948617625964544497500095825442254398318780994081479926421929874208939607409430265367882799865930531025667217045543200221807251439121146058549532531785960091289516580060581451848117574215868563832320566857661205480722096953173612793681996988339928175843563337445016554769063453196266298635418110886281379697598927295693691196844761081459303051588729585810976226501242622820998792279284511192068057918720069231489178038093014417307787379378527110800997582361317729710175998149248292495710387763113497220606843387221271911215040666300648548347442190555772360130579338699920226971382304922212092595318110614466563205514699792507060871261228202743177886580288416162684293205046055173298967311254957336234871986963668236592933641513985473647174203421752369426372076891760776862818650332916606070252355916294569519730704482738260545642388745067852279715836966196918030833530099381442568677233023563610332309311867753493815162075774747820728675496782104813859253626056932985154459131323221201372655547113747699985714505450009968318245725406639362216346735652427759061907810491491736846803087948481986833885400635478734534916544227592161431188566655882358358173684905886513719770474764228725060407126200300820415230524143360843342997605750694474217672868650631744348778288780165246708133397002844245075811239783686412851362381467345144463655840741689030027401591066594192810697723256642957898230972299317015648264371565941421409048992635837158734237778642583421404684329575587143832972140299171759466968811255548253780944422156187155480328734577579689545258026820998262488909447425667526037167296855401903203724573783869213068903255293346208626340732930920520943209676834490775036375264107516580967369580410215259423488267665033864957250939728226462224496087527322446034256122350232075074432024950472648896900280667863516233538875541252560675923951014581156641517792969542738727171554130728807056044551941148869439524316653679600720625989782628664358437223216481209458775361951956228606049670542980251120749083594209333262611837634242575912954537588780983131073876384284124672122162622618631952594401920123763716739965808510315742867485577523559883501185690784138225266656196571659116269943121157946118101387857204289834775940992276816602063738818926835236393219921372099282344508232325247551790488625773249460149226321979844240035477579094066766410751536087455101371439324122813412657015129803640170193815119923134535726078325207131466971506411065369931383589679227613603362167288837218872521657193078592802415099338558257145043290338968848253707067608755001976269291886797875541377794228022131872960931820653849609380857253407475617236987747401193288816421168260720150792193935130252232054455666649192104430733688124397851089530793764125196938652554151659670910941267891186821431895372063623931067510921955292288836776097314196954336261883457657858506224836267780424627798878888979074337878989151820113060083690020953426619706852976059475263159898396855413816763708138278289809902429980008789589740460095231277709446836273567576700897102911614741921599276591291699935820546529102285298693220494933781734378046105784734858703790209734363836027708911755289798091318574214302991496059716253073397715693637064303546736260107879383555166548177153699692592443784259271247173393216384398923981127945017078616836608597138299815180494490138240600618959593070601196072978876229024963499290648978658322966609295242580843339177096912864327794720962045739624576301635353971283084126642909603557562582504670558709689826310123036811876864176873923776989054198903587291499628333007464074455555270937092881082206738310500994380913428827104376937268091318522649165489957973786181892646160718130237767533270171928751518781925954385212376824611593367209083199123199452527911003952677760785322817481629932624081180374181113450514095545118916899119980163348307543982330608739034299928554163574471468497248364512247385214936228480049234752091662598555816927291191698496419843440665901592091642711892108764598253653685458070302029669186593515085277829045132567614840302746916847388277450429788373693045948626169983549457093615523640541777851492229537707695483838538270884353098169169298346368134323124693900207256874231184055183202139332633243179860477697057306215888838998490668457193856345728932787131163090564311473256357760357578565392352335777925201301519479104033801904084028401680377549459315077728435591319974342451097065910957640330652870056488093949301358827585529988525604969244680478040019250759035789018924214504192649945291643871116727945674324364605581675913308536680870478838329060017096833928398079492290565782989688566735866401559366942833960488706269292979588599198575020319398133352683958376549154632476955794148191624700303665011244137819940999559966125290525809077596650026428329069242193916942609482353930828032422797895532249746490169284994777918980404568535214562736495529425678665010473700331864216735959318493542037215840314053629032849340228353610149621017498349819036775129485509279369221178917624011981453910283673321958151045532735924394837789643982824237329278500405714152698227983366412465943181072745229114614629553377402076337624996672402281849917663428041218218711990315560283384419130634245493018127880291977820142331296719314989154920494000201812103677256579584751732261481390113229326385057127653102404521450289947825081136996420146332022089229260555928122116230314744868601464442447405909151657637269653038609805883713386414806058594948472861907955892433254236743697269007519087337083809562060451882358204705472663252923244050468444294306429383911460421940530661130129705820845204916976318557597285822534041948968572415734738504972416384463805293924724119753968504118498461935183636365856423088869153964586914404487207679604614354397153760628803360408143002483930476825435746996949378802742725761753410079062242222844292744461672077653388386094704604689461837674147886463895023736849345213520394737126844528504532708133523018250501231055219422526856721460498349446306587090580874052036922069713716613358702671116941933669139759207783603868437424955591742269901729141810837117888381985698612866269167525972589712135121379412411679282187100794427395161038223348562718936318376953736332802654896808490757745882003259993435814785057993126134143551333763045871142505573146421926719956423060564796362329546698734691211428096512440833907300666007603282326330094968458115548318882463598376577277888842573974005728241590020111396484048475513274200596781239621729319770380221573580481322406756797831533676280292531876214547541136161905160949428225674156352192547772118224576864208623337131201261771106229302351933458769884464703256383122098308453305171736550325828981918317050132101250467167180350573389444277735854128858845073980626708420660718370466853031841426493823067126681487824353760927662758193074935171897299610076732921570107049882037681875826977287344533497225073955373944995676023267787109245068877996894996470901595488073911630845919433105931296268100919403159002179321900412347984710454025559775567925783770829404331736546803417084702677868250924505425902566517657113199986595231808305616881829667240224076451895992379873099667328970236078110600584363334606912275256813475199486609279082293598754571488315558080812817647261850166371928354689494883511093970098950991474538992704265647382318580466082330627034541703682455986418842421038367352394985523250203038100941047455520721349439747351099475192898321044731203604915286463776359985063967155612561545795505612337060702629341362665329286209049604729730583004908780573608985863459835059137203532856051957267790704395513831971791780918618365836234825488799948597263982519600694767062252011704967034063045268640367617985555494429003947049855859726124483454711027917676575651543787217687475351242111750980440350236456594919547041763996099976126910831704555858516438399907096273158955993249705163785272791925732476855179282692466987948789774312758982895169097251268379685773170498206936065028252818290729244954755023497805501212410764660783684660234937494274807839443969620872184599213962062814901374539427370403905319420491945912397249731952356053425713295741585130699800009025021097181178499814858626407972901079802263969500595774027345487849709146900104928421893806318571169769093647662665698766084274067134559058503564962027704365142167585664883133622144544819296615565681750540693698437902105332231531472931784558377676823828301031699551126894614441487093119510783767137609927924301721358740865269053945603125101994565223964337647249624136893507841076469717646458279450302060119799603789533518987998098619954300815968790430178812751988535533747476190966837137986009641235083450134236688373380323432765505573671636811340449381837670301953140989654222852674813064023286392317919493871622253298724519266157483407306068159176152671312849417267188483739911695361264021964984761143220001394720673271936152631430409848646776373725451249814537348776315516571913615034978502087159389554635856501612233194867296402254849273382129827174034530841988854934138963157720224876719634461796922478213206169547255703585018126200599294059320501996596218133216674476470996385556388122453132222816073098533276849931070032529761905237795191538427751303464733157495805531035705589714595012306129500481290988888903928323861951165867088384677447922307067727881264079328696502486876806019675173951407915754427653431257440021010604616124816679356402770740370850086186342517028937326739353274589706299033885004859296710769751724301123513421881475577060175373321992828806867830587704266078748482736580571595243572215304959375376302243487469195001259536675394569682297064962427943945170811640105003757255220793751275596810925079128696354985792450751888995235884794144078426578708920738436972987227641452921436697762208338929373812678640000345404782816460666639087384883523441916468793560664195105379445288963799395629983730814087449244749760736348871006103711640485997617057783197809794861327859714453671303027593870424156474468120903479898662953300525000497663080010170239626551699950782721783488982647509699482254104150759101223942273511903690699412724535094112135147669157493949568025563240668373523005379019711170287365837259950099676804181777360147079262687871802584536749958712337300693047202751064280931479781101061281406066939498077968477568256504571515002320949447832928385303192272205228553865098098971399983260812945770533114189256020202048493316677179536511840201793037770715334527959553394987280257764840435146674805118808175924225592072882695649871185365554880840937701022879084635655555716681710106768532259710902297964858260952453274800775975762196489284464792810397055313843049150723467519217318037569670005684508004454144532412867372131996277745625456008163309101842906651106476800819865535204260429764673299847838891173124301104898085681086838665012282632490506086751018667815901366400803484568284872527233034512724966063460606285108990347551733621795340367142461106331382073997308528595177309783376825290798238534895326296478610589979758889756823375254308113755080510705724315117664242216560014922840706489858310270865257329662050333255107662538687110645340342633440514750570969688014424003611544565597800558101271429116880240915942820758532163784039966135662325507605713283174530335469155061878601054301961854763867357356230144371512744433288207265536334096299979764741137953903793481070686596714413639382181624904625781172248888424529720007219534023780512967521720044549808795518839356852636098034931472504833939969679669269194772987479149257008726354260093218564486845322854119263291886278914024810216376246458005190705629716676401456984088551609955225293312907704209555441110851955873248739206124914000658900875294636310459248814249382121858979125709412208195833641789141628668031304369590083618182756339498517297917054138756718840874778558958493015525930679803717752355093229930600626287977114070315995675031655872560064160978596150535321048829498688026125349381014948158617886303385368864840349197719244026839443965159377219437726115961530023870626277000140148809030189435388807244267235876676930483955958821267223422728965512962778220518972104826928768426675478172876390664812551414218365881411940722542950507913324043445927389006800295587737888404206228679956546703662091948118913347949542761500010309194624930704563092592722277242710803817028454234299333494990206943215436514431357736616541162501942523135963735975473745398438864204633890154693413219903251364009288324261962061651525694712876344934821781955740076721407527565340914873430120305231218870289493818415237481161616333745421975036380181413165498092551573952759014185302454901456486546066578290914456880578025381986898201658620492544786835160266880877827599772343840747567387401910160178530661343694012698422203833002106095288488096078857238037335893793758922819995078700210423190030367448782883530074156684357172558036544235276392382845590937896523078769110958393944408042761327875842926067729127128462727173976635703992765896743811306436077282007667277699357286206063550417470327007868727364979450489515584332813729369663652977772112217104667391399369434679389482371911372012647365626063535827504966565691161447097796414728305581950684296110176393038589262313783367537415296765176138924759651525837447209384778478834043183079239289423669234517990124341071514692600706826611721553280950275697474789581925353230831565854927479977090331123909714769244921957883032793571020600190664375413040881059941272189561027017480223415303453180632084837664983680933253458845154722215439897769536254755067536970149330535505087341436446671814577383708553991821132890552027708516276341246289508455557090188075175396662753578285799252823666902793805525554152498985385170154869869247513994560730482525121494461565039791696729439564993844759257113403630986693017175557879079722580010363803647820153038842918862315194718783267696389671802469261364949856418211981452365018400508686440019113253526139554129119191115397821657800019248813804061811976549349663376742035947828655099226448814448178113949928152312392432355502896825741213773156726235388785635217010110128401075652135283049666102695576820565653286568678299853792949517292333694261123988980496466801432020872085940374392015537529956732206918695004208369030801909203504092238676679712668648851501823913981581303191363966541485026523420500721355365431446763604755867798077584361248761054713938985154282582265741743357733466747047825752795937285411131913691295427274893496926941648184367479954892862908509393104537702664324699937896718234267204274685655417811166679391086322868468679053435855337114738814001482883226375741094399388549625065888791538004241631386161003085113397033136484062444566804558223691867419237772440585825204495393346604685488366174006293501284607880367702940722895989181831161313291796524187828280571529246396764489516987971964074326374372881832361588144723011293753487463609059517382997085037976654601895614682980811789205541804000384229061566466009909256359205613028859819383801012683762800720457390742089908094740002839085998481360303954224149383170511007198274425205642214157749466742376066832406405372973340577526950723693533986730464928116058318112743507431627428554313887739642588165197869456023983224766699826216425312728227801672588409977365210866977413403899968005905678638411409712078026938507322315695803845435973503993421641920254660641639086417387677476832342833846243934600322938912971948443550901932830624368243390174306839245715088766809340231281842543293884113337699967768483175093386681045975608478965330872852509940867483327115866283527139484897822467368747411244540825334939532950028373988888364810034866480548010996595819121397116169482301276737246732450217153391371299960940811838713131291615062047477258373569653839802591326253669166776481584517552051107421505265941935992718640070000258765890591349902157777341575995515328940871411229795269522337003028461911472116952261678579832519401002120675740286415315506501734851539615092894806530547962171414891014159099224098492041606268414541519776914362610820616130463133758366461963413044291368177616973907644204466342177658414481833992353239471550439225475885815986881059588899563384453632967203505416458112480027406416857962181260974765606045591494907625439559991246983686413188706989742473893226024346967636528586495951783069102647660086637639411971287120480949281281090825816258364011066526079460628613193564457504201499630181508593936917683094897229221044888627575206843900416585585772024645746866031245195315815209684912370410435021209400644736328278580327926259578273533767405585920393531093593795459395398265526166829136860857457323283676154551481006803275786055863436933295352800279697642157216783183573967186074259073816337157099916854312470059626419334844397918819182863162956256857764335890832421023360031559336068766928836072882262186555740527408874762544095207910611070176633440632072558043828932631042242959654809793449152131774811293754252296734697540331415040977041162909711199495339719517057679204555042635755646151962787102446510075123326431469782554776293457612628820329646150826173333488083046115906462313049159582259169169636998646775970401287021121269896337620235545267848080522621400370318827838222111997461680280686175219308336913159461764823179898405485337881831103219456783765584475885645951703421545932898435744651874109259262598819769866124309138586717544051469674684936449680547684549386528890221465665936802904126193039311454572295927880993730234305140694342701470158299627802838100924943873234484777434417786151058761064693227274761914134603752646156191349015679825534962231223070634853341622070768412230667803913851184643377083428865196597327651023097870041608384859909678682587005282180541724563896641579537469422339007971034265621397953219487688179681065436722790293707903612730415287000631840215290108028362258382459128717852742182979983252345390472408396696079798555974139370839547768801894804779718901118556800404551945488035503863306525243796978424017849120175411892028358971390967653720401016894186363941203953667074892934553170619323956941947465022756312188418266728137530184735009156184229614182199966828726918936318065756719125111753680734780206660701785029495251782310905226337058335021795248537595412609561732456854640915747293867060800174420157484708086251445281133619736738321218431374644942653170126141057656072521857079159549081912512993759279358069568362706922980280889236434109898851142944001939902228982784998950961043113465425729597623450013939052387532547068590356780236916708433618549229847249052645387181852949179677567329521108389665615818000726179771663591293406819132016387785964562292241939900480186416341632803780541055106935867226002043346718673369052494214293431369668809213410742309253341669754272958641652414138231047606164744911874379519964738087438200043632160454841937442308679075637319134940524711710669696304542118848669866808582161243638473106266103471000362688695049368182066343575849635521191512908579508313119256759840084264209830572050889386682113465510196566513128515368727046162031270538139624621754868660911438531397361077282885137159153761571846442147065999701018167401722944814787019392613915856631059847442456733999030537467732153157622586868356213041389174801292331509480513913554630266547237563373334690595539241167129595912770590782265294476792127239187906171865335609453413509515662274671768243110352963469232826556892527147209446119938754022658563353665392799121407022457796862962430800873686471002887251355489126517924602558002511422876566149818945869196941676038829541564381525329920338400827638784359758781972042721392779076809753329406286924839625822750528720799485503619531049995190327785419832903926046160445546040156759744453542375046560953599819471507379827126585169713133492945728219654463227341404932717547001227869184964794487787913262845985873447712021889930399547757182473257152004198105185444198564925305046182323269362620441404511588588229450626787528885131895563073911984135167719995912491520545905511727049766041876787983438026941281337201448591927122319489081238918722296268755761447820981067710747250003458035052962623128196848715348460534501806662654970444996734905945544042464531295308418291974256029755993381264280218584190024414069663028371311022934633306587442440238032995881897266765449358520809860761586533219920598964862652479451500792892361799097685582176627752233333206792537674041429477279213124044558604984014059001487333045281305821855678300142200849612270599267454256523403139179923943691048499178307478422477392499160998689739145115023306646340656571579675520346733882312273080022945287956864264531795115260392179232773364929821021437321782803269877068417402029746136398762683244569415437143399802783654935230949825163430065654016389381117116126052721725116020798901415728245677300574855010288421092740570403446021360726782785701339607077808957335948294743881580600883165989622864154536650495077802076676330041256427325733005995590928225974984519665220512678889265486083751821873878105463706950372740611911069059559573690046284335934283186357006232595320563558429222944460629298138081220664349553921770583072628146673240575917164590670141202153099176368310783789662825876080889111174539581646563149075230625976000564556606614674711285014494757379653893631259106939460924939174829337944801043447127054222267456198720885899009217259624939022176522931369892402220896264643098151143279650374111817616216683906143229745862019840700665028320131218572959871441254965072838572595284781983546294422393841572764186052880372140065058560507702041770551890533332261493652657699642293738709597557934156564538577767099428369719518191282939615974890002552753567268158547836407541243135280033191404718708729604134094205864152774378113147682062599184626207865230306494437770821761718436987460556980215135457831070932392765348253534602633514952127949714422236533790314794745192604537653383469502976322448278671841615966863250298306804399400645766384213421486868516311066699514340475609814922192949426946208515942546232364013537170487370854760271009012103666663532859634384246375312525318741027607217346541938619983229259534303607744154747237502255709084636678443550618866975208764331137855275278885365936506838260091203860783314486836160139781344786541188243966008513511214485584460850600568078178811437796425952020068223288957980199109367716180916153727466217641516305864399250446569014404085229464602464718632234162977497600336092194559111444291793972260117289245692964122109233419763369247661787483362245645400206132660291233096805209996960572876458841673504908588472187695874735162626126310974197505532901678546139057831854872218857422829291872717714120451005978374123650267728519930244654907570175193172530294975513889061047526047072126200425746356017121660729300043627202782195632122741396495752156018131539802284733499573322799842008358043573503243269663594296610234016801711723991210938811367498234275472423382246529315181747168089784067113701096059576005762463988108480437552480711520572701611238233616022647425797094447242762020746184425267521268068836152630656880810610353697898919452596829858888408009010088949175915782064991529039737171809044630613622352789466189460541887064586045576947767985892858256168837138412841363943924825880855808630785654023520059306319024498328219856954731949377993316323667965754123486801249424582190176010412401469019823110853065670009839828087043756828637978163189210072061428439157835023901730449585803396693340030831986601812764698274273994582479098867072974452939368845183649287595040916513997452411533430144739109570103528879504487132464201710053272495462906497399527451944889742454844380512662369453767303543227263500374992863721310279211639199429389524561041325654035403412303947290599142696745273860334810521615573559345271427729482346113716924825032880730513298213286384078763383677119360970009887614303588712062139755555608394347016937506025109831858630434841071552769955798649095640088043642399094443994239681249141343412094474365012437709044351879067134195808281591476770289194799370622799146525110883000600411892898253700630591223756450737101001917251905095374954776219800168708961571333995854480104599798164680659519016357744719811796611169620852215656302657096635397728232051988339167555807671766991100937233239158428692633323976296427614219701783421512524791006730375406807387608034068943241322768747000471919258762324523768202262933147132784804748905302051952455303860152747782783615014602002162694692295170409682787669808004777560775193025682840945122479939182262541187856773131329832080498675479303455208963691197722775023622690675474094257066315262148747078652613668598684933355106584821858206080514061087301296204268686752064582203254683327179018597790804625805222056437198011326261570737426070331912164005149143438584983681156734259552088556319651177338080923283367573880574049521531280659710673349731383261323443786059163472692861274170069499111865808108389075620214054889749863966605526363264613655921825619021677491557417835521286612051513875833297334307238735786553280427725810694834008099576017702187136372716736167410117355603635595019815943472000109589437805210400927013920457610254242481998279921447571073113682589253625644786845026720381244727579565728872834371886179555763693767354492845460642836943259750328823890540311454306661776666761445438189078728438386841524419281418530211131359421154351546666055168059935774619538452402849511342071776646712359957009829702593260057537885762110627889635851895412315677570057209003757803919466031060301573580116451981691382507073306753375490021330093212740315698510758408150352519155124543926322656777886172506294072303017851901039743626780754192279143820245811408926901488972944675919253866348732382411415525210152710848972832553882428182643879850427783480247633897419615240039413133157833269192710684154968678895571177963239018719262751847975117101508336706842549086988459171013239928185139235165751073997463508775141768481091969657232823261355109129274827475056932071806238220991435785721690641589055534081723710542997541241548735186082365489776489035741657011707260403535440241202370905091910303834462341432328804395360362854854713416877695633370141559863403715037366584187775751510910815512261394060144479091002593494653980231648576369889184421554499388865173086809412964393187405985780067816863973300260819755894350647795349272490273426390807718636005764633637574358551541784022676942353523826577640819350128836030426644828340312324789560009024745767519951594215698066622562714856256776375447531780330808669520887524528582663514290283523455944778371632444283335008373704976454516106274319133085313477494699811492520976227242325674431250458013813777154679282615909481793129186541756052622220213332477710368140687250794658850597281334112302456257504414992486647107149916351540136861033034973356739933333539120573973957919135505294413253726417390351448720569063465124505045285822155078669379454820935830239076165169827704497262762800221976477475351452901727299018991468064777398071922536335768092563855854257093211179684601632642787195465672046563080725471167484869359668643169992943243416538058524701267821255863560617490835845682275838710430692855449919344634193325901379070899525228248033927187576929940257368289106081041889687070124432551115744380809316674710197077306443233536869650041128560284025676111382454837337395606811499550229176656667062223424380935413692645139196857502023632437170098033719224174242961207616563914878325912287986063920316739238069460083193794756278814729357139640130526638177970672659088166848875668755227597689683228557910504976524436659700539102030566378153968370760773353945241660956588601225739087521585355255837369210931392434567263124334165057899751893582688610000956677040339945879701196973633683210339670203808709709595574615217507198395669557045217792032375242104658002590101299375427526343979535871734906069301669510964098064352598409665111891748405187920682228199846985284758520193504453484130983097539102896409785756211910083673785640819511297000566124681094494853284256628856210125319874454742852070243437377092318375195997153721859810832456551758337776545359282199601834304654708417495932030074791520184946228383441375028252218583863926379743698459095315512859138806585605245361616000899540214309187459863809501934359486449446601652460506661053188493670106120885014312264437337260680082013844019541269722329410969840892322928231551494757123245177627326695002215852668726728880870626813021601765382406525947345845875891808299592108944653214728525059727262100343367124838892390147545569557764650962596508889814599355793362407842469907590671050746877481111511825233051948308598847456257581840296214390940890745383097523565126903923001357674790738526529093651253433484551876659400613372474947117923974999134392937789202911098641894629165888589907766305399511693123519790734111249656470294540494712680219991610580087450830989278518637171377378526539409092093227869058748305229246588145698343932138080615901795003719399429755296064146630890124265976159713348955086507628444755068458924263653121781075574625756422043797429534290081448023907814418652510161854448414020148230829020700379582810337520253899819466525924453065611416262341761479389892870503406545162779003412369642521013648363383442495610621321169957783441102455251364199968537337161581021550180978814335647021031381916243218972291898259115733904943959809155836469798570179174615638260464918880005979779629265366969943220048347729822864711874099350943359093434040530289940879547222918491275096157941933859635300925207316871518925953635738672784223911579760084199451781813088098740102468339557507312459468366522281236896539506219992088356095893225744612222432274065199176024144744037357343248868006312972503416390853012570254927980672009099544154039136818578844796084262694824454190546673578285236790548842745336387362458594902360269142940490412901393728525359967329594867891069484535635758402306660951808111138655199845391270390770819385655578300474702562419325396123478739536947424584822235596817924601554139269009838142773419623590362188348302826680165560189838638520996345927267287580245179925078560184105644236254332240332883808108034235662912854396819774700030313854120486654588692234413512881960257933432719118334743034096689413945250073370818805964101293647387259592633695712705535153530046849805218389297866922495518300825170434156114822211584855190096370206636223311853854349971488420744573354731880018301720159936185305669379231067826054393375371346164267761605177219230637787726947786551402148847140041713191438357578595415767757692994864154588671944872160767816892891688263485498541497296192062137540521773923178773346681906971478728964151879559021518705405146170195161616799857275842906737589846527654902323217959468059252509574833171965359927094723988485316165189693830182358408320809786746980316420525791306317168276548512169264314297090663689555431926879642565840904952776823640365281406052557590349041690569388601396839898936864763884176511399303489589367023970737386801307070188046334239129473440284439465987201082822362648613846690668998160048346165934758009106058167579853603165120945253238969682878592734933250572869115655930330097305481756818835469143317820487684927417732694266837591591674816975430156050138388304997900776145405435363081741793387566386037840160440604467493189549802157318652979561907292245419863009228577236176835086634583503199938566715383904399631992342875912681115501982692210652905924873699044696882015236548465637549307612278701297801177416238899495753500246306983842480697908442526146877625058207250019951845431803850044682450562204594252007976279909319655189571668915607922161866569931560133207039055976819718466825229180778541795027281255808818578626309098713113440900240011545179795496106345256023183119199542718212167535757859358693670607619123279072369148070160929665210741849172207016746030932985617483433743208592291308586464682831905223250830118268355373660874595618902213036520223309254469296188901405636851627177289510676904017219840888581723168236026827129669409501444502467276718093653899748179302037742392317622011398985180903081984655351350028080586330026872939111406749769176156259134096787140905501029660381141065572405301894165714499308661727328425073399582304015822718218204412857614728288446066493186450216457656499151713259850606184089668226112843225147844681769396437132053915993256199062653571986622857715962680696470171420036829505523360630809574880816486826666980711870888070165770819455957818477915157917303439425156112575513628020886715637682433704652252839923723498770341474550435567366565479681396814856573940344942391323295117517656796737542673518878355488071444690808492292892684357580607297212783446742807650942645905314864838504865217177834573656657463236645724955380387067758511527089155865403082817285364117594223829958032681591239667540418338134860074424169131575666388041057548299611057748341039324528833799185520982548071356464205098368557935657080633477145062581064050841099785058194946040189863442002954818257103501853050899957872569247507039471231646412476557610897083335846362988022066694859236810093247309145740022366281118784176152515471352450976327614891474279195329443809700741370551821822658240996951235910338092416251589173323021733211440964674908144466986956353619090278799888888641656870260156476875306664494664121700190077059393135725418047660685258521889784064871904914735567349155856125953939745587426824055564540763245177291151840360734873997101277989854882391541138838281358448878788161137726491465241687547137443641120940197753702719471886472307933747340936769812663717039328339995529463824497162046176713858574324999073126300037851123383525925193982072623300270525354454709867075171746542759143764880407861348701062661993684994233631523659175578350650121129200473443174572296673070830854121371606435339473394136351519840434532180890847409739033228192811389611295539767917296776817554617801848307030636210090430436570483322282192510827994604147802445945092743515181475119768130716872593345612150412059320541864739985171427090682515148490990448307069203171187263922364689519270143860841446566981114799749541845420805812775063743518827404826792856972419249181535990272199102110962881692370749803636813865079687897985608964856104205224045392610616441437081046724125245388003524424801100922928657765039198430876791834558547450694581649009882970169888930639977476598762329435659093226260739046008556878487618080520940556264478464975816213646402227189283334415030588876116190357294327057146472828523711044324921293060538398370947868398565538219510546749843379791029819093311638829982384945845134313359101552305593774512948297797682995539964943116064224997983929402430517709827605370866689847325180722754034349756440549773475702043328257168004948112627171878458375428505953238019426403653783598869146759981380261739052153434467423548153926416010974788069097051044761247070345654760860070214613611511504836467545801162197376688254846462640504696415011940495379543774342033565564472035254002993875190765861411978211102177537479167376049226267986369730532368471460133602911705342349108190540270710380227306449328969426097802865952421992800901105267837755305299202243421510673470741028816035349644317601337281596927379247201232753393787549109162093652971228392913173963946895421106398666450154859150868430320265717166558320006672338403310925971413602749232520613795394259696618168199262773497057683806777060824095826425610779603776736937111159163045513326746437730164884979358343582471613595712411186791103528109037916631922420583341477550806449334875479426397552153047994089954269424985772864799900569276653454387376765290045665236236573791506984245162866851104862523193875217573865238319338225684832362526981038759945910584333654398652901895629219069012428458844178126755067526813881800729780225998275619795648248040002141768483567840543871677509546579343853304938972340500359016401463849311603705984130010104236461259987083609236921121399299779730433486887472218666872955545966935779559108678870050877929013821798059149020966291020634045674607284488426241634806311964340286640505561193547634916849155704338320167655251423777726953180077169666776513001809412808320626128673404271085258790378146182102389490703272061692279552230474307124225103514301953115425147878340179850322110435984379644985839181607713285616616964643303624318206468313306926362042835745997553421053294452118388641369999448528484281958114326587221432025669999826615291720057089473211802684998233500012532303978572079000231256849521172276714599329479626072600765579381872402035295331957797475443896445379606279846539202440697850901501822556136928954835168244115833903906134987742834524175249597786138613001008502011324816285314361863588939826634453453865841113639117492742040039342948106600927214380708577701417795389631462299875712986174518994951805672125974251656776956520617575075870875344610156881268975501972164624753100958104827060957683614249463671879100206546446030080831766450799127392443609495504268785701471356578882491832242468333781934758809592611771498932416186204631725810177724655591947820787295847143939649077620694362033180404687069569372761281491415502839658202816244813313818413370771432333076083960848562049669989163995143302139477180056396533943045569843061513636795844865071217020310515898453865738605487774295975253161479646470826462541862089725359136652293407501400425445454825890535833247651746148477327956992524062541895232356806298534895912391149309882130175273968181838145784081977027349987602031771075943454134706155574427967272286207932380612477811087669508411840000942194960145033833498274506038416615014150171316297321318493841684392093967699760106965904765237216678991996674802994981377337670805809862651910248107896380938884430582208896052470697898876520105356988216326889957266108431869642629489883062428623596054843878782323154165146080218657951230530276134851753300662586752075211699150995995221206329713512453953338333065957042827420385953786307951152085957267787965012696236212090810274532230898096317141591470333849476530271352105401098156317443230242531522568078533446142765120544385777172308439322534107583643859727614417857501272412846135727827955296228353634352877691258508539407216119372880336479713758005200057989300629208184699816671025255414848968928699301931391882260038944687280872065334147195562808706224154524599706066344202405849730789399028932256084240929760681553027182125436651470900181771483513612035196686702328824347729451919028903482428381178403562027724004667157051946810766142381516082878583310686996034196305220004591059162347501033976607509998781663328536170568667583165863990426540630209815234368910389421035760716678984063054371332061574581208780069277904459254894190560378980744931395849563227107522519048878106823859087057483094601867472751869571270843044732083200897973901179557472367901581897218255022889467758831570262203432170444701356605860279073215377058658891117311289204451008407496243671030058837258574418517545046776739230949849687891982052709528871389583258799041495540036996977171089962911190266002264470857937835265837831668697222401034654132541684149814379217627272581425677418042791741822619270226344667567286040340100383381955135092729064876190391244179167566801705068348717083977866222017596152655245118180116359334501901795909710450517828794395253143092616889141452097672495390656976799906911473580717044014650592507096182265130054265135694192139112734661332040179496107478367204363362771381764317349035781025629113129884816228403871511728045851414541207484056194555034144113136872910438788519083933934872612336149923762114337325718327643398323568058601312054954358805729469677435692097055097263246627353033564159465236084470636625853183498224844659921344708251406426976647796498441852063652271548649784941097029433368104923701385119484186761949209173473158569923791580709311006910349853635599739944057961171601215525856488399671000907899636399695945429083225545345146393752408061357021950678427994381789873980730311911242641146009333008136396746780585208323994520226394635366869592450864051512638154086254455476286538093600949770988043293907239048247462058671625554760819528938235972293297409781935588213445756044383684208001785641538699371595744358290772377276736448924331036081579824236636731281526262109921239543202832025022353836859267370048709872956560098052239588926823797403059037905601717214044211324086592043263154177908954674292029599562608687216024995778488905552555962417181261666314067385018482078545789968831086877293558405155367818583457446270157108895160962569770206459333874306852007973056443729974433305839364257834050253899263389870098713241979286963557754693106358580045298885230849810069258093667620066779575468197808840228661129149254814658633123815320525729360825262548670046186872587122531915745572723142712841577754711007985896190599132536675834700258140951709650196274092310194344471472133654264836810676167281312323046424618822049610222454028695019970481617738652157693989160054489080476276735179130816183123592841141301536297171888918134660519142393710130925956777681493284883386403113232975848234871213003562242177891735638397889451459002754741699665377325274437792085390746905777958871137356259565320642534886629219913862682177163744408218665480384590355854579057816454558735201366088009751476375559191060086533201989099039512961614693687749504088061449601205348677016279417175919123274503702929997498908778250727436799651556419475443516596032297980991491223230457397216261487566465528718255035467887838639660613449480405550209901418176142822109765956919622167551258526043822728137507012448620077405350540792316822659395701909401360594848100756927564670156828302165431906559283075792538735558352924463146650113905322352911506324513646233317673175002160267991653957375066555050694932581073816006258179062368361291818514050923915670444222442111420683997760517290829723153417307545495117727936352668718085564506449387662821045726741718978835040855003640098334171402315533165314099444934315216455021385743465980172285562003399014692730061118119279233348702402411961220449008224135548354532818368435457836109926690189521697227188913605900289114728069940329056213064544625869632096239967642986012178458808195255476280016943594368017932861504010965023344702363898825745703973303428783391356462862234006203090398299843408833862722380980903373532306311801381153330245563419578840305878012033460160578024064025283735488210146371387637761727081605495708914596044099621974984887338725420738087107869055482474763820932253236331469419885977840684691647883670315843300624156585029128731169646639115945536673939499205334991089919394318379498671013552289503880419985057779667568310572364717113076808256993744716618812489393155822094015169367697958843627836567417680631712179089682263091597065875082226449508160734927532879133372435230389811599734871984809062144756919713662395616895220323043206244017175205372350020593797696810226545318518202010996442236223346435367203704346219032676172420464610239145883712646231451175450030509043200688457712024712045114066360112674261097908123992374794110754578351011126155131961236399645950124059885155228555950108764426483749952426099297949428253371804203359834343428825671065771816289391627388168796759179425371231569003928935732250114967846041373115623060826496385886230870084264582243439950348425639784976853989799389173856350060101184538213114058541521296794002183196154990643594816744125138264825052195510080751844764245050092574144276049071292004489172039844621633818793585878559224260500493397019819787368166983531247797340159774947496906560050084498021453179613771072325798045373748236055432643040830978961795171128647584079212873256309959033729576420750203980569118565206435357481909000017718461625259932874283281333987093696284655390097351139342510972946021011543425062805508105214168395073146420083848294827962043737877161573302096957462712595444544550555596368612080054952492135521677474861023772152079733411612417879656098688340869193262802508810509277046540437215445056654085166092975842027220196961014767153811685324411222833204925471912684879533203205643873600849078588407310340130360994289625807080646761315294613309184660383543770294190938245557461371078440998292850032277279672287962141081915823494912310701233824083059471596442233417828417009431417510266947813869804709313797138181252163159746568982610114421200440935201811344472896318217610610363842710019578477238565154744084701904910362378721592944692162613582812881651801030893605737798008681831577727677527166577078907853655912756901048189520225672578306232752216817852569121961951138592106884770888164176784121121190023658489076052894021350299127953125593264777077827054047303220761840665135043078752799931324112355677843522723851865356303201500261892608825235971320658515196285519196576971200427494363298483298941657437452400181602824438062496682685002419444704542729273772131548328709532484598979140460273883034901685950416273821010369197716201794561422760429666827071667828541798498626470075512736165754964469748265448214879938862517423859873951454865629541481099352768286112238113482218668705548053055976205864059372271635718990306793407405812227615612290085037969549446979266792361872984535244581659483643197373599901655938436213303991570374043386444706955003499933450549848426041581237811181504475859000790153873054887758607488591485227256511319082047379206263928862300196988293218213307514380116496880834754430741541648890152158132760313325427973600298680725811719225606762801492643676679239785685777807896435830889516119168940343020034023384667165405692688957021125796991822510689958035593763502542169506913154977326907899711016995781306928133119541119042638760998924842694773499850273073425516656707275394209378647081332616806628634463359955341941863240341318922033977510111275457145003265552623336495661267749779432587805187674647616967079252620440352479225021738626705008108184710136040073288642510768982050946740961854539030225951642201597608960975901028240102689833819380423910216640624342160533184804742973712035959399459929657660616265721191628318280138537177821748522403103799374399652694253916193234528246408612870585850446161300851549608053407914329310541813200992168066788139048150241327078410189736286159641914102620536476763659336029977697662284855995844262949124447419147083697075117957830789305682519200699781930066704405691229922438512259012755751998616592479616504536206167804928459676060009407518305382799312230846026443566561771942150839567481014054441730449278401162959772410543701993055605310799197877912243094001772967322526331102741880402395366240411778805817837603393186498670187544365599454787982197300353234512206984372908253169725515842760332126743879835997938443055494625122643058698947687039089014114711396237903839072971261178836598299097535081064964649085323266054178330906562394797152518692038575028642269198650700710916737171502050328212202348903475423917964422125409740200370798035894551468248999540030515589162176867572302101852626147713648889458273097933251436096208417199183839296548696816999758807755329995840519589713187132148555657095866857211939102618604246047743408025012741839391985311584059223106770637529116358247779884579259179480564079815470443158664363048116429963042371743197189873488541874573651887018177302572566661663311665854388459939620172540580107390691889176977550139600801227804068460955710252769502691302526991476062035011941131625541162959737572930357835711224295004327063192183389407551062583781730331120335639882037383598730102603637317489330219109725078745324042430183992991568255329932093954335696171273695065447051966271303941159156704066552358820580892299830591351920277634457962034182749787697744057148169417176290909274661431069833010169751991635585993896833926205061565099258044820102059615008658678179785962720758045212342332690430213233609001403238617560195009453135390647322697451004055152515145756378350361397858701802109944613443569305645652350636289280845826904285558412633387225100862612582624458214797752716694284123833502034963949674623076820234946095266196858863513466555467946237219560321325212727090287313116076604700883265706631290880504959824508470584476270278865389763281070398484352297309621172166608923477159839942766506381117960825224425005845928364850354835435776115712414344740736546611249669323339434562491327385461775239415478051204637392746300716757858437475424456608187227437620161486316768443694926476141813627217586655299169904839641312161514920194392585390903137996173621195250548868828908013602245664418506756586731731337562284862107131216996568533234972631926875165469735622955978294981840124451482450305507554114007235599664529391900106179095186189732215214830623362936892145561684502537093029516787209180625756609725504217896032747692372208252689434943425431419407784164326909048297052631471714767577711713217746850936692462142357165992560778190066293817198537431415722507986660932238736391258872751412283807852630769796452665612600015190028572817363229766815735339135671964082402078277225339921517090385630971094813300198099736841802462789514901391423969801384276152349480761594147166582776806115904527125348071978249844637255895740830613692022755225620441806161314723013533286408515660051241918113889266374585063872372130367795737229648641585709016030854886675560232436335071470034482790401258005704855286847882044989483265495939498646634990209626822258101818514611783309961589287238554775304960246903734062753281273922629992810108997831181456935337304648911643784761625920338860458259814647678381574654696734835771048337851921036073027236338464348601767157768390243497347759358236828099366844994251046558188187141603954950339090188312043579339882251855016067127679725466361613204774112890765199105067977308988316289058712375141965685569086301349936648458243149553818910980507935750694275762134067288770148782921950688538518127851455786974499645714456113209833871140467941567696204100508892499257844933292817545321000179292267382252237882926371577245586358548399686216725409148237518118086807041315953688895098909564382220828804250372746512574498199269869302943344891378941774839451367937488430393768912353999011293098697532820761642308774272114539159143267978982469993695604057113195977694919928798408217822455612761134307165028962970109255910095357954203857225896683933216873777266183334527565568381206455699867825869661939327863851585149764813099331069541359829219130267378491901980693523372795487789510490110159310416370292130218538713038071796516859075098783712770700718552496204424093948380316295050736351354968233459317750705393597519737355898814185021701144778304963082780263278049801441231682661476693329913493692290794601731441772341370736166565115782047330043742090147740029642427550059272599123230113554685933709956903501356464661051244112074112033425172770567722550481718898407062208592936831677151354833800591920978262686186009636336358234826213726839050933328700795211115777548297964170799272487962496817927874624701900660031417000411813809080056832154157711048478998668789486502441108459811640055457213826056319131577196763950193805875678493593830528561498945623038298936139841892857651643223663547545561525583503684257553682636093652810429986508304326680810397658546370329771195282774294207111754487835721257455520919956993400557822010301100727421111862598814588797955007597516988013000745944099769297032128591643448987929249908677490158220385850967108999391452748354703233606876884035781382121998559279053969994778292658608754067865500041660085379241261180807615021787662626073007604471634747719208501072418685541004544310554478648864165776667839901977941365402731771603851540532637362149120971163574023503947815692572160902455998794567718450246648652272386518247235324135513901808594282013511234039032699386837886639026143551057395199133619751186786698831698423915626324855625659463336872085355838251101242436430178956032964582147778831849475226756820090632014470315630707451725898435473219857868285857967080696985495525637738971685657170069602658799932961712422977783428581311367146591584390885781737959244092032249428352229285062965560048495061176671216800952607330791909031324248033986473020739996319363384328213177699311315457131214604008907821594504100475381825958723945300597022725968219930901461272964997110592689340019716610238519412790889840102414465336453775514136761755113837683979795600522680362731130341632813778904152941562401037333637812898229935852963413319598895278680740336551449713691882862803538934532716003089608277315812563365809975632921631856406387243109544205619953652813648552108349180276090993418754993444602343496063259253496265860929876267318445844311135602553653112847560382869059354434019604387960367346219820833695467909594974556351306615264937806113598933673398843575717526267301043820560760294675790030065839499298288284309151091029384169114171374868100195488132127735112394354245582788868864837878677471453261073138297003467887564545143962330807839309349352868410295480663243518924945970654288520395486951564965574108800346796091019860750680318757767602227351671796819440007843739071934943541479489454340641946825293925833418361095730110482357500704720357653548439061018376626902922725985400642814021847627882548702871785287823381897235597640405324102041422457401288951459267149226310291375026504074883616837718765280715006494812628738481797558730041804560450002295729128585590338699510881033357304488120647137049129860497092962045873654576092111267043629446924774859141912885304624393058961142139182068935462081155499467584825268260569067121263365304146645139462325823410799932781466221308853941979748940293396736995338499138153678602044628990501020538056382870231578326454771289719989693512044111461205939683294648608844375616011920778855456637993436065270535187119464906977037894312263950541467389087137204951766098116751237179457573655087868515973513977441492923322990268650884232640724948182698037255062630579273242170886765021339256677689567756122854119355169428466766000441920991863122346297493198928082750154515864666806910299412624554739416464814591056515547218760132770464134365359264580364318765712830864577189335934426419669920032585946102884173164195861448468598883891821832452454892322563824421320380506839387074319687662854566229924062312608655029763212057021953825012706931427559943396375494916170148154929788664365751689783365709134896383866590691736429382035990082593773483599252540374381872841095163591932656567462424499736808666339020552082573223156686342950880613046998878382760342023724677244395535751242492073440373030340437899106384789697988105418597604946755122386828902483855717535093850122574898171437878501951178196653089308731878620409900386921950377496872497211865167502255528032696973999988102539286058922885015220025399013704545426462159448298768049147526172613800344807846945867652666798821361576510200853023234157512152362182753201696739730888666127188014315912982575204528951962092566592257368344848987083107657017542558575038642634650042997387387936069397523387179569272125906902989024281601187261291984447697259109057933054532593463297172698088816819607707603003418973345371278355205597709228426978040975956071753653776172974111819612746318726942766106158238755585489108356462604664885793459258423017936830704008088178396128506460250238106982440108616496203055298534970963209751578397685389726774074797771906087278864672206156352931066504752481873470664437042803339525073254850635208410373100047582215046444900910892719345031753319142106839879908505654769234712674579472805919037330431833221600595516007356410098657154151307101568241831769554877201848617857856972328753909421605505083840923091301606196673624722731410491589336197431421010464568154892870657090921563660595279625871039341159569148545363432276853598578597001530089760068283223852743043580265817954755824968050332151536078276776361030149010296757190524668637546853636405156894399770882135296661425778207529082532206562515762469734881411997349030503170228994954672778058771977959428687739885926955630502527196111626523540508899378274180925885670152388171529776723674108106359161895292039334209770440619012701266220551248108560672328183581279615019978795204056975885136339552821651268272876932966589517944067810881066830498714104022039747978371306568735101624131733266674810966275851617605374974841857232680573448350962240451107507706880194274788982170625579785232540118020334186444967509690880968081763890513895322896965251327905369191947706131908278777685963256759319470686916554407880554170068893280387394192814902644975751741003131482311724142130667841066782285736329499592796005026141172695210823085931530595918923989091054780381955932184771253565915799591491487898343508130556172753877197026367490681320706228336510950737196683257851545879647046369845897859136844414681697202625510266666569189362027753990722843833040620676161473815249392651328517542873493695265069499725497122979062996888915904510512809887811583110567262641785320790810051131360894492464717951420784024507905662770434985733903364970185317748092887718103183477589241346286052689020649248293449068222609467005429373886040054843808354785427347447384884193492419674437083474338480581559370228187559489312008608208478418427819774530085547464078047112420434649063728168120356405868751079805962048985244738827016356752367231538390423715537344630543567291489230609457596637215316278323764667330146095031746969652341943072072616386849815082438356884994753233605538054625659147606571693131514757917418283907712227626819844682567189357468622058575375161631730793367949881399873083865233311049748191757802845697492100924495931664592871935486136189576798120361272284451364394327126927933948614852784953347593866346322888682166700065465810217010135876838218509070957099554302857603104725954676949892899479935659005837912957356367665290855416055438331165171193330577802091676086802495687243109724151467305522080762683822020610837687876013179700673706392835871693320475314300522543890717763240365735042570450895933353101799185818283328580270783608478286766123653165691929792809912474873886837342779515971756601418151742540895290447916734588850628716682655059960190340357504655136619698754664327742728062807992988963593531168635604244139388176719403449170803391001029153009367987205560490256431466465030608692117575488262997418827899270359802886451176027210921786360410811020728255400799526198417606381054510643440595556012100615644352285812549689884638545547549955561678114432017815849131962105927679876119652594424576716453655043073109053745349084704679828412926943766823715244528062340714584282497570279829147701019205335010406297348165651205219146236639653105704160905223699855498636540508313065703803152650363321632429730055249417691220104343854764526439510309283292802694156496149668157564738345438163116782328902603745543178316906950488825520297690354988264365806975428389904034738774673435846674352778271532472525959620762201229751624306315715044349180709174603287627413411278367927586920064226969846036087325807282989791867094848370255040269714449575511608357005152159835882375908760893425161951124771445645152454819047334070853596817876636729467013828440865471811176576313656352280576912857942840055242170283967403868838885587635405864703042051331609891563056031878698329997870936333289633971380957374437185204223074240439320886843178409465487649599919117257129705944478245101565772555398794461003143246753343042509367067295387513844759287530724661243497513392880352209609193241860031179264676500468745863723583250977178934342579602343479673378940745820462514390462096689437831919251778160181571905397683603938670963565102367957133437321212944302636666098983441439241799231320725084570863340302754442326807394746953630707186835544582759134210002173011304133139016877381898681852738855211662868391934718131855571364061168360107301506733952686828946730986527088081219314382513317319822790115775750748334788169102446895165335919255544075760695786311462785818961195074850832683619869440249835074814842120467896471176292162336097346241092293758832208489725619099678374191094570785777932730766703570763016644284935510617851080471175267346836001871400924077938205719871693453648167755397530999849955902143210683752223122141101746452561637062372798042751158376961891120747749766944532311426084294181551716714192241643823369059083473642583815728396359280681889893967633276446700320127404057266561449292129020540017738179725275994139026272165160344167199255845135863088766705147754751204760419619930814841719389267547548363678333344459058641479910472104389677295282127718859606516937189232333552937054005563623264123365336564045100832490695295327533346321696405785307787139845092964919708540726847144388705607829314845086370184849702712628488960183963146949312979211336587254258144459018481528479310835537212915011453099261657752782681839283107563265940521292613649673424457211929487584763775599736040683821727886403154526637053645168102293564116238493408505691796886415345928533796955058971806237655346489991837586919023055614681301425437738379279817360746958753805265454470811392510639981263671091696734148894815974906386272176242553001962449895291848751059355148666662326192627571316395258099831340917590017179439212539069276508841081279877299859633670175986941791274038205456243793952658445819721647032510944095660732016114301850371675213598453612707211162748898536114581221154891987668021754413163725024484832079941067980794150735895920214264643307929599842976711888216311459567515681640313002672607947308561522141628229652210501897264874009345132964886051243906038831197909548862726357991192055526026396657042786390217135084887813348344504419631139184170994875437963711105383108528768303547868744314425947534754697566735175309247991774755346358688767039097797002998020918098413283156931367483009254220739962177165616103951151803055187047674035176233651599186790257433526544760875935212396861929287911026526588310784668395878261281349340900506269636897342692700946318282726832622217252286445383511840485903073084860659092804076153302319136581404369313231252581802641374786644614160580770257229722243124506477167498235802277101800316234008237407761149784827926107672628601663872429585239695749015495584845408318079071818030734296701294665038422850657416284495057217286010782561517853702425090867401833858214482355685175548713674948075057514325070585189744749441975172631058460533064892835804168008971433527688130310300545896853111515078968043244226964745022996881491225221274506366648643629432259851275457427852939195492106516793988375574186334135366750324060300686727555712918316852155590033693988054588003252070058619152407787906513576607491615981056841284402817859339704412640313758023935967395325226960708478820714447991482476401291087454323696918845229737825623344329652238354650492094809476477989234327038143246585485164588417904303239786249677149105172732319140113664284064942145137998417101607322522965442756375837105470332515506935868070136856276090050527177206351652034277159537927924905669543124383983423819970491936440686458533772353844059752711903140208369863095628662355309554289616840268146686883672815729845917001989410112898284498567619439118225959716257674892201629552770648294834930402225993519837824893265759688787845771389008150664395655524852255917803165108641430727605853736116640606916754885892421877504407246890219384416026894043455831918048295645418897828673353054811522551630801601665158019095346717979787487419633510200493221697779348085823225705871152688627809056489972767698934592539992438071334022059856555669491965724862594275755596687618591300489241969201250110127356198280041140003781018924487667321006385786410037944338139178264819412129390355238127450616877129864015326400894656449368277628114749764323417057821713110747601485744452752940574157427839168557806439343962005426581209115411337750484985741704053414465401113863485848570457666147221516909327253059880812932130076580023008980965605123360950662594995214970433616612465115069526755866702117241001288994454487232671631258594597243056541142473229005117755019737239001259921624566119216729327892989082384837052905536327286078605823855121156096986327641487009267664445843139606673223344219452941400248289316446528176794196171043850013800915112888343015398177842331735893406712799701952841852736945959645655709863218611515158808221443377874904565027008274659855481909621930135244883047641548481328144289779041435054370587991911971333756807434606664286819790817969769639157381099985069283808479913315827405717099977926979852426714719653482675914016732010248290640472901427957916420768022953161830937932050320117231794322967780988998568692124208941371754796830133600938705895496184257236811012314523941812067953884841890159720599747482555581130125563823598347947734403068367686709329293640486703204365016031338687302420278359828694381276562752615197320981317962753440972814675630149508220087926122566400476342140543873259583438337969959043505047871164645750008142435704056741739349363708665710685232922066284011876732087401953395223154557068748667893429565547009916015116840368339209438420882905088269935994168081793708927378249128264527580855203809839608776744216905501008747261985269536266256389812469370726669883155833468765371420618042598580417676120021357618999878012641790319258600703239909788509910879768509134155660192907025494133083453057299243504981033331125286265563662630668801697767741542618198504862304740666922523210032640316963557143045630646790152403490307824804387310215940106491511148940352851987202681781027932112987173218193961234874090707518121646796092225524691713160147346651643587985851797998644991260701757673172347791671667758620681970259983272157251427188654528491228195700877981586639127661151501978134333469076805683741027943369116328791409092145729319319979711347737528433721832887542659325801675929413165654803140089547490791419060434137286784657417586327913925112954643356634178062711086226849041921370898540700841238398244435967982613649706254640219892584040654395722674168300706287814832726440083032961629669001171632941756626668680317802278337694296257282525865716553648668422986992527014799836034500634646333132004640712285120227667948679509785043419252455503378688702591489221465583346511939230987219596646638392145246249573531923212705095637853999021438954651529949676744222190739166094879264221146872152110001543984392525828754941145292571382001656584419800488926386637757525675835876206344494637029858375317626442549200025661519906579358038445947250032638323571041042855342760322373812271337464474335592312953142791019269141635115455222757783244811924378692846834078496828045211205565202608876429091282412271958431057377340857222154781934410919167174000687111260069100740815309624062620838366232484853010763845022764770936745838748759195746036644383913287236908289744218780700090049860289180487891261059187099441070898235465664176865384586098654750671399183157004638198425398401904990197314659499209841306509567318692288660297313597059122006122033946249227889226715466072083347095067768949084663486545146043691903658118156299856917020827436360868906282017431326952173764755384335612590456418706879431094390211833157654940404899964859088827861932390799753525335352361139391105690755681227742982074100246620592938288320222060210754909313994255350918263083103804946297558321357659735511743793959165048633996241530901933425134096694585096555134101569405714199975395685777016350290896121238938563606640540809251879672168483627024146420452632246243657626758103081827157083686190171477986332227517807254442530410310423690150283229357758005646995960977073384289573188532185165355148610211578850155436833328061243424938397506400859855359475007402899999599812370208390861194053773331606355308602654720078329550703470480393905951526800656612741046988392613593560340659973664607593141272175999118822413586667431827258323003303741075459827375776937952010230651337283309918458944456925228398986175152806725096313961530885426597166189578002224440867998773324550210771633244404404986561389821234962033040295867050782234048048076890192191023708040693819954803289451941827062729231675416868839360951472587003156635065290162720081916480734206880074153979253301843871332051613689665331132267727089186704987012843101029875620501646364876772625045411688571300664775704469514895070744934590895080196736234521060045965930345285881735777528715374843406731272779945313412637357908815391678409579093649280663786463463804133588400661470495569238677554499895230397967328607402877179877928262682186000209109370876680609013020072554469140647167741014177766648231757037549281177917138724509116587848332328677995217117694237410649007044184851880875151132521894110137955551362195125317202903210327070547224670179584058884249104078574079469444658674039467960846687613390909166445190737646422523634076585547840170324109642901733940398774809335062473840218740093694293252905906385167101720264281175158857473385820243906354487623730230652145341697923629655845629567595230371292109962519683834116575549546823057105241854588836297546548182151117004684740780551728514828300797465438118879064791959111045150758705144207061861421184944202536302486913105136229060352100911927897039626888470075322910571139995992826297823063592051001162336275744530029735276346225723944256474358836054624009404271889996382921718923238018779460116491767592081609766440620128068834202203451196506488393616222352483117869396678940097634593241098747855515388267743191166619476472141008630425029201247048991163683741277255882616473819947723184287505440405635985131143510824721326929077265189252368338560474364558699724212378499378759728743023336457368929768990876778760102528506361232219205573980667279588032192571324992821863254732630617886082376640200661392126349539631522181502819761766485121769822163288521649675977799598161334269558675265868225842849503839901513893256636111415907139217882035768035793465581829780392077228129046703486839079940677834960239177955921809387405407281479120669284466430048079687118854064573649494189062163335032090005848822176191303768904236015125226239857840869160144514769869130089362186660982383103423906896508998992493711826434823645592110621980529543836552401917214378810069362074840128448150941719316597712249812208576586663638590872231261999801835591523608435430455283981861729822071968825877189996804960692023431890395360676635502766803780023459816181827087051853944974597567957289922538070497000822387935288422431168660925798162672884194359838909930752724637290270974860019448496772049046830045131963175150455519534681953644662407697754632054437524684600904492488772402197724762719966655481155057801371028574864225908183037621674772712061857228135271388901041802386857676854003882918194998332368685134000284885015361384153587253852234704610069744652241183095933119921616580387941073372360124941507043911122398902656865990713798712698479308008834732478689174847521766738644815376945474741355582923452150140913253404774204839218799790996381297282065618732518849231265931741380967811044212927189037820522618626553941269404493568371464483280767448774913835931428035321390578294992822889549768508926544230344588742737566832860839999352176553770437364966655918189756710806475982614270046521322125510491727369223271386651516378977746120503122222296363527402449626350882495556831219102770088135516311955117832175294480379695074999082673124988051891066354167534892411228502059054957572448418967620630562705280817218948337362494712417565251931019936005877746997810093428841935583247012377980483971404625483295231010779821104482526664642251064025825304366876042317604299090866005411122540951775778835192211312708120164839794430251369954668148614270959742862553615873654534229611208740741877171016081070905615396881656127602430330274058161654952852174190905933115712866545452583819862630294712336555139094720013894579162307514792814995060562927520767921906990739747481878629732144541933941453897618876252203469231543184073408289700592818127654974079869839385927610978396863705518678474826696320919070969381548375382021216258943130134869630426599970199015848253762507445464822099528183264057055631750998296582072402165048246252627127441277018240314931462340787543189976048557733014386119779984546853569595561709987350488319274440811747184266503108894556879880366898485264961292386106740389139777473751396449677821960220033212467375251549583928572615224602653479202991445914483456020742995656565195809303705112795114221729704216770652545969822898415052456850128238167147523659609932586096783313780971090764304659766819291024497484625608700270325411640786585389155928878689816746467662102448854101048783433351255916524007398492816954729796611096220165571669573678871939753375985024628461090773158165068983642661156792890470806410699464872630592184457922169102422827277235985097672868203170381928198131231754653980070773734290038226002016754635146733179370769507208469167874943377211013961913941870507732989367991184128542464143345992519867705867456890087015223892473536321033664638789099769145949646023173243973992928750628965759665007663613745631829697440709163053286239779973985582539673087137248196996337577039647660764654099288943031531740087454941072435813658770582651121797664305690578001286430724024794410013737596610678016084133481235699607856541940628618718985305033746676257990310576870182881221912997022829929505919091299462104860508703085608105832437293566739004169090501912045603917933555150727531860597886361248448416927995220545194377338251512769386964003583302412674571271546151134198668057307663267918378596569208454719893059866354283513889804762987366080039635884410584381999871042427796568499009637201023701504071572385236770505911999579237689586854310893035913222918251099706609396711319900701290381841457904140542661089326845491138644174328526847674259271279932386531769348771116921293559072502021801391262197318270143223228859525628223117647814151427495528866673684127393386404144932258872821750351721214269075802333015319967287700101923834898491773915414623340277160787534389205642236701235646539731916254658213531667791368770429996140424447735405021229002118409536065731725021559055270504788151242094303022161734185429132677092757382923168648621018892855040724570333655327197489217373374904606982293971659734140435248554302916722032245367846775598148538025438515796211225485146926614077180779830890673246528455123279675970871837070181011950574680186461723460815378609796492199004707384215656497238031616834493560582797084330611241391231891528654452820066672491574893104547616148195890216251923975038135966732093769946526456620936571804339523763874679536151148584933243425769120568599012839228911026004101350384801086412157985627343555955072973964292116741198340708629099783384710153732853853086003727336236153197774237644386236770514708731795461235208896559153025641506605297024203961307483661076176288127870225757946650362052359034056248069441454891565185779130645728875246820109883166551721333547336585614527780836380603077887717741228782386625641787165572812921859437400405543605089433650073555295322654872275562898472397839803493425909072552459266775656807744040115556364828056530228464492266809976011658972117312331073321143695490817220075709957512958682498648953935674972792089088077172941302800890796741987651690059964896628559605101744698601213772392570563867204352161504023229069253078862586455716857079613587071655357958711714172271895862709060151118657342186155666852534807105406805527402492194797073468937097599176503462912275194523608161810541375396688988415115806727943750833569757466532216002670504721028759261457057827602317032676908011101628255328678765041815129130763940100239271068391892536388824971026715411395256382143729329672716837901173280136329409227222350387012078978816259590002922032044850415270618324337530479018106792233903572530642978842520939251300057921970091394141203170509135208288823972093623195526550210414292986014058617598551116663126580549541535242101729583721486969583782319383029514360203505822580129453541454788677304774886452496927425383603614861977997207252513541318773911663840249124397684803325471862201885757264314732625045599782309524878363754506149707058036270768557409637650096388022326801393422729434506898947761839664509066590888203782554868569302985490249441707111529439114927841623272269425719225402379938836360832957781833304595497181220836713754697538764858926490868143064412648080170021326129435359060531828866372005920058019032919410003390348736036754178075260221294159204205983940809522462580383193997191849165452824972018775237459816843524035498103790956356534726874717779339279494192384092021046208418717575715120059069160796427139734948244188357258131027758892468963314032595830431408186332877495675764683972830203498292142056973728013953975033589210698353051700434562369514583211768763797963097323422148193022781108192116148474998379458789844452704935803742645783652919817057561803461357308546853310515941127714939262967209758389307738449724216364965677960404137701575335445842056787710748768772367511237335006014473974376361135144583477619669923673653462454350188292371750295272604940217556752706712034468975576844568150496040632919460864867324522292806236185548344354301122264883466633836775124440728544471082899306921524077997946897579545649964872611697869458934351061748724474155249793821877964168851157268737421414911550184835243747501957121437264540410881410014512678123182271253950144079511550545547676458252557768950201722606684427582840433792398388337081462622137834141793305536595113861041345816101318994450619502165965995016687685623620914050188921506473322174872732698811662554787257786682538321385926181021242217278288728928709323841850473502528770963596177216803746845791973655582241675721156154192620632431629053371513591262015334259801816401077294673856784679953181653553671450875491110402288125944439665838031570849036091950185367341600642465849610736599989619121003747091013593563597372344721506971807037579562173819163036059782806996258553831602696858774920778203957623363888160511908912201449156905197498410653679199324420782621759267071477894478008989677755171105342254421941912847612506552116741113094388687063408290165526245521244707971758366379922353130544921625024515252901504828728576510569666074877087080273729517460936358025824678652875524524216848722629801172881829575923394548090313884292192230185051124373432785367585942716395798632951632828592276549406865688997375218866309254786130204526341250130372063597691646820671489018731059734195949333638050503386044191079670547428463428637181388440514997305861175169350048508307087572121803523476595706830255165737811920029219862348793651371617355188646189464428512805996232827391534938205664883480581503513234087553954329408735441311888743116258339264985076878501923735284602150681423453114787804051942498553660775856312542988261643955399692362720607114529560537215371715126223161103774153099710673746044900717078711148385670083146574421167650084370901351058640643353581458557487432345326222138004609989803181447897953386544334318911723611524048416203746150328485690248312829064569445186638300839428333794889982835421880704166668130207870975813515996640613573068036677031954835987455653109604906732390596223239721304967838031535494747206619181526286324835397017648981400581960496460001846652381908529205676706351426153613586726214859779620144052924535018866669589778364970484317524882732883298733176423511765735973606194414956399210512868208334669811106733255574930874719644397826370950317617293800316417592034701505672088705120358094877216969262681604702822117850787877472306912697426136673754299987708156813580847713834913017283495663137054152048952575940971619420616345945239211076154246854506878326414163583459568194472037976258261650835587232713797567917580468559264683810258693639042291618759570486863446242274705006842282793449846281578568833437290040960514174508512123866429910513205032466485790524799992422563579712800680198600986419002631632522199617626400859049473616903759992386329872093225592455341187768033378385871657833329166652171762867500701261876911846456514067642372328379945670292018037788618695213028769998985078474954081423747314536098276944952344301489523988789332588253175217474987526311666705880735160740932180132306885432144800920301330688355520355996748005941651717279403782410222644214487727372892255454212453736509010674689834540999333447979567977951123812102298325410301636355284961058769015335361200455938458644774857757034534108175239798609830492493993062901580868625591385951015645979062846987601530457501753846886703431559209689395624428583383322262862966163809918699052314421020801293615631657794418712950939787802816696767766795386615302919951577866294954309317718363782451318824604545530568064556694720160044335740601034414002518568187833339097349251789154267148818151673243387398602462839209828115977549762859141134270168192769891311799148699377542008265798104128983875094679969158036153622576645844222625881978994212224245653044038757076016668441773329544415851292874887023230229427775754711643970855019402155177822995989096476545001548863318893838881713965712163518326348252767394433407563079029258157184929901955886510191299346806316588919653800057093865714377484156032477987883168246849947110801442096197376916153034523589024452237820198522807647994730022499743676736949628733691893251612847496523081208726773720185446578249946406749486210502745045499278615773546989610111929516960476515543338319525438877106543005764621531884761453297261913478423803183577885016415480555999615170903741854204223022204853422805989420070956854136428804630474924015769085974948800536113317590704629647547309355651820606208754993078417343380600416663870771972919061724089789917724881548164234782549517874983802720149268714091205611563099264306621752754727067553262747924451314036258933931821069269187714150777244982306980839389610280346014885724074487257960442154882919638661642032085869401464807409931827648067254505118983192623337078188609415862014489888292110321765884446672657629753993222212243126001232580854660141481328184085145388680896580077658677593149878516232439385518807377346542412114048148903797878491945257792442658664972477386185074842492176237724167570748588636716492116760192698820467073381698133450683501184190834205401270905277350375780061597032666324192242900815667585699273599819531927522179645751138317360894850192450039619633620962157000175992257889427031461256591830853031745082469617805352004576042669224565451700271003776020211308558667479778739998933470247144458816317354651246123849094838252643305639226493083024551406110775949254142655396993312624314799624210743644177303564006151352559684222066312327725513444426586374781518817896942350151120124989844661830486386124246188534800565258108357784150394379778479525025708128753937421157252874114128635668664279077173262200319833545567492392641741922669399863717814610068154260908142705165829250079995163674264715063112918369650403876732185619353564011791184913156896165898764792495928459638094162347193968159993526718529996857618210018905987731733030413093242120199093586017923621690449478901320170668016581968938333029201820839329554229090102370088281972620647923103648727764962456571338301853260824488070672842609774455550081836314731071531062831518781137602045913348070540619722736830433945525716763921665110280139991015014409597923591331644856825386860395767953575535152451633131724744419610880193773620278401338047909477512617591689641167125809226350479298136286816347489377536677869544255661152645349069479591137431946027200543707950304894756679751879173326508366235859919781628002882021458741212216996143156021967589346729108094899448935835434597776403378096914276699955070501957679166025548415226538744141839527524759678269413870059922898351050121106341447439540306792814093771503566944027974181387806540052596400535267506146200154048433845882796500948821340020838665507880599541848768607989394220169606508908095161943026466586055991168955860602425158327273922425197317154317603682888785574817372999229400264599445593864235942763598136568577399840921236825921292457231362500508115117160374507838212275747125545789015735627783730147846877417652162844084708418488986479247184218149203388776515239810689371016574709117790049080456063429772094357629220254836107379639891997356607994692011833738760261511425800334911953112668408295417659402038456226080762722209568788316534166516438468243091573077557091741414494263581855828696662022798718032393139684417371365760283069279235094690188595850424035322985662493301051759829544499734764771230645012383576591737599987790948766675701270742428347464252575787080415847498246378937752418863347025764013218496079538225602125601080019479793993456253260624367041007555342844948874683379582880607975276315572781821058559080114858523278200286878219139987911889134141860460026665157906332765689340618622163602475403751260839218782109615753923691470524991714165190900169124630541548851835549039266383779798646634287923518668423261826543783511785674730782394138298248297355246891917262417745193611314381668253242066900157045425841146020517172537706050936077233029787171096189875000535698729734626518646014388719370448993144806950373915381121972153566490917631970796667996552295201508232535781551761208588880215213292043700050087912333466315925415431525264584669682069894710772193313947475982129866936389715994096413544483094393156850390434089127697289875362678259459493545942098270809600257186429724736939562294755421790387147079977709144421208398651845620189153219029482014721319792390505691078236616714896012379366086048039528107118044670660023858020433658628514971168239988564251464885583375214616861279725857621440873496927024697616204255291502596831335626624829074298382515491600651592744576153010354923495726983987723400177714332508625636635056996391609106193596983783867911929914295138023575669551657861834243355609477218516263146689442075197307999783436142310822647204148642473740224489209823463656637384234873444132466385038871390276508922047574995551034306901821562943875622560269552685456733445533342625772636284006437317055617620081004610869506504563988917385714224659712489194933205130376796778949750929414679859164857767678275470546888158831189616388999096628633333014031320542393602580204385007843683411822882294040174194005981681044624793163644867122381394628970208321417069147974306742297265936818971492257696530201700559058002218952830667047509970464110648722819317717488685991022350506726112505222839839537445903236270655048200910809852802065235637959913592555569246216607111766187480602700473057068452975233244975643935685693343510433785188813856240978126586846304463986440070428467825031882750170051782071034691519284924704442120518839160705431634527619655071221213755422257754777831042829825089780609508959848641877779506131374997730294746503792825708126011219616024572244489723190213424767303759665790204070746821915597582339006404675668031378248544137441081315081531900110019769556603233358085660500632165530482617936895886220064964352702015633514543071437965321203219841847083439900414036724911100371808813677277690189319941338649373776791002032565272130908472916804428296424037712380784810694272359740829951585493358524278618678674176003598467218282498728446352431542315946727675548286479958734768066448655772747383740041317692789123190614677391606541994632668341285614079944278792399157062983869762522297258110018930628287152734108710806687245413814775969281645265829836650409163383134943813090623613911921702369944029411711732276418196054200161055020026976143680825127389703548915389875798671645171065321336167663765726172956247577510976424676506177879968107405558169062790852042995022604700253820221387820875008866754327343217843382113719761080828546578526012947376747867008927298764928900277893223857809217615190248521847532617720535729191115940940995968643871853427211437187543815008102293407254815021978701132179091356419828676210575286363319494427940370554974238103996624162103403690970707307415481554276916914567553198498261468183958862153224757595029469080750474798715225897197796223734112729553505365535357765982938357149733319426881221213848550092563112801252369476343910518299802930328990453162323327439835376528261046094682865070392566252622067879083118893103646675696342450339891195049276925551928789460358937231943851045820949971123039810032744218846882382959029951514873126666770620218993950181549048666242437141346288320845021960504500426785488119383812446720647748058629356078556468922350906723730805651740625446617236351502537214031108132580727166227567329450512067044016369385466237493594699615450772355085902534969759268742030271886397848755764455982827425616986284438209508395916831233820760610744304650903034813094561060773343274312319759104841430418872037559943902402815262794323348521632623361549157983890213588438331295138020258084549708040057780477216608138286046209641654172923751758246922991407415405061432606747440300988492749132085259910567152546927773260964213406379604850543749244573370088592771562518312442563632417601879776983769253295935696904537321234819641060214357378405736643540057900481414425093963896788996619283673334203979318365115361140683769954163360850969557124848026203044641129180816846732846455682785445195590142077905175109174241657416213762585644814324144549508796187406869605177875541766001592273721071700539862517090103612613692940365923192499426230582871005568051024939665137732119218576495379804567455206172746847712457161595137950209846286053298718220334776632557829858475476944819114890028729518132704715448340082447609710989803187573073779169911791074282855405660289330714262376436997254097082407599257805729863585234922154567856645305392296001825624904920264996769065949737945774825783187825990628113514638111132354088554048556472905955057692177715333180521256775478236720034352609712179588147855151305504728189979385978232181438607036887995930717551927325024239603704318542222664454610875346519582448202733737855700233409077870484784102359474382375217649322034845487640163023255715048681250535627840896754991343135232574963697123630641195556711327984823596950552529097224941281524157389951712600616374340418441837024459603582515889074903458151005504809311361006310649959148067983644821897525890512659416348395538660871343671579153145579017434545336090597135414430003308939613630029475485859283087378376834558628299806315679797491738535722945534876300236174841220761982331393744552439468879497736475724281780421617067425220700830296670249509373440939447918740700337771284181974593308428263092999822414239751747416109533900849698692173588193560160664224001835887680418627234367648070848777564337886395375009034221728519798337213616097445464062423151378856977033121311089976493635064483956707899553831797274084209780328466213983046649239501729172383428654722587001925228496628936407664152849721552521607652721670556610727169889342727125211994120957818072142498076790489643125188923837164837216918334899073567456075061916682208679131487220562272412562323983267069455660148529617191022324501520473876018445060726849106535968167018756954571423719871458654604456644687831456235159023193969847448140241765840578976824217064179033767727857521766088482141676799571045065394407721508793509946333972231962382453556678201556460415975121283408545275289544386010940760288408306306855932351684279418097730168707406449548316499708687258674658462108766948834110229001717241106675065609219154525631617313027605182069664296518265208316128939097171469613667539396127395696888388691887536635222644899252999582410066174613312209038120132209514965929799625251281734221979949966645137970536490939671718924793669218272056057822357011437259158932266049028318790414740457712495735703630718268173789540636506597439120008497879154706413908755397772574424921872657658558826957872319245348185381410178892004224939626426737506049965350722254493937254227846264116043010441803735751578731781753281602381590216582741982937513681048485036491697322128797781048438973697005071035747696283168428117656310312470178867163236740569891925548930878951363919502455272805023901231373364609374056694089976673486563445610819642736729283826772956502890812822767211903473750744927302988397464982128119190805814525427481977562674993427300981087532521680764360810356389862057863740237712456491599327247596413120185873759030549915072740902355275703105940100426044000430294168859765497410660785649088965050230132205927966478363920640257649747797803059860192863343489870798402880699391672912316338015780413273402848434559505056478608269285583472613970523682286752272882256831752372335825263607177243043027736062300899797422440683621947621927248678625438302303710146462293747850562576127465189021457918402260630751603046130927619363590183482521706598696823786802925468106095818092637031049377568444796309746165170902313010921181959148503592472316987232684860812802563891852020895209688438342730259268712052185102479223273766381840576042073207986282684012924916137150807847239689249808554221702501622652066058426560011017874499359614141804631859108246647291564197887160113897162178168527865530323832444449091037203217060392316280027511586517958562019165305131836577929835108809187360713306943141336794983175928371772159520367963497067485893763510088388225533641787059473370185350869958854370560971452990698028422455196162338269607188626394561917598302636954072847359847749989674070020456254560206264717129923363793621857010157150807969416982456263385147284030569434266186117330148157743186789362754285943572576830229348850713961935755763760248469531485606001720708950346938304605980134134588096991882461755754366305126470186490373968319005009776310245713216832228045916454951920236641250018868546258884295164047684189808073430674517900895247730357466557116771418757236928124158529037232706221737851540643813429839191833416638501621221414785866939626815578653296586470659105667449777893360181196183356421455949213715004491404947838386639984034149647130094922753146046051535090215894322865212791522052305504733767985701863148175418189384938612477231725502063564632857239013853197020769094448781873344691150018526159147396678752117519856049812808772122900990528098869495994995832603384197730154400402674398311018682177039116491700821976305317448201714181406609229788529659072609272653685758563030403838440564385294321152851638503364671404152545997704868795753029812800154593202372785755610236172420232033210096491991532824271044725661250181698263050484054833420186595225904419883611805133233129087029013845517072518024256201725973640130927414684300455877132314232313637132566990714448104300047878263833042223160971734080653904686917657813125814585295179028270586727907175009163735134966182877631343655140047600473631899186442786457551908732218407175318655853207779293988050129969381216184202234137506113064690903915907060507967264122044937844134198384076815039937872754279356686416626073239469282208082098050156816258556938391181095174539705215960464232965496877267862097478657975310579922931054775020330433653041562340157493564939940401866398148609065566401032152343791997670977795410682452696690330111981525182108877321387942658510419738302949008967489889489748040623439728889831874619265864392338578081867765189936388434660324387212049951903703786739399893572862818245092502198463484076070402729140050705246152725345432426702544666341011329675355216122298156154060721974380865563568830927106189563886842842464981065332190553988815870246033656926443277827567555949133457757908035275586122699209493092673381523492126881209826636021202187109103686695912906212153913125512789925474802411187270610539044549037692011508756457359209336676547325628182590954688471706516154072584238927341765476507505327803726819780424818806421934282489954322512814317475630704652165735726655067266605492994095557113271670200973623738734574263990848523430730649216382474506627103027814563364131134013159459628375747973492733120047175433278267479846340005894124647861807949867476688056432250856344707834528002995693267778386062225934019744558957071634083636937797372066474188323757699270553482149790442393015198956117252609587848042423044894958559377802738681052022838271031144996912286070771353256916629580809714346749932981557654866184558146242816524177262415636484119215957947910654853810113864466492760956568314568844735589608945476658197048326057450985513635067687611954093455898440776946237072629488050721440970730529777017521235210359281366788524969781777567709434448539011027230516493220915052054029150167321798164672568514457638194402948838867288532954529044177784283051894360026135759865984369150914413366139326670291606420503538245668217441362363843232620209331874223965520648272185460577459742487725584471299531442399350919191597958663053954383367437477058402002703427797496517387399267921761238070497084799810694970513899800812286093770479159789095892906909368218251660475513437007953908142961188866858104985745213756032322358195132396671776158146120350848964612590794878951796214670109699660799700070421963100312660998526424757453398259920101807372909326058359212916816394145519140792495096472983581637141587710034761110251375938341343661811738781727459412514542503606412574159984650973209077079624364170955610515811499170702897361821810026615080255528185030735317363406245947404751334120766315394528049527332604932429542023890442058916667316432853441364692072530429734490133346916900195452705621880588035560761281479866979909722522090893168188309911380677944962594844655613287084528792103830633496156797829648113047102425451580828354106432749424282659258958222167443643358972685217309065092853686627980974556810676452050803776377025231265397246219006948551514958281626501923532862065259717030164536927958049666388056530798550927632397495455428050429492218564790333348977565373309311346838671248887001371160677506131576509718560536831383905685340712127508384088431255712014308271502336398584717876227817631507573985448676956592764954203701351587453135622854392241552263233154154962408766482681244519165341320493305923027495620792282665184060997066308266257256767414326774943854743978596631159538933160723974911989669394241116623654782343667645328764248590565584127705947224379406062872128863958909545407742772887961222828395583703641658762786340589221358252223939974912119324622315061739756025811090747666605800559517394354857167690422237370911449922144243739250203236775564392960021893248155408846818108255624022997380046331207095093662386685339570057304144939557758162148072818942041103096287043231178189570899758860837615225944965200471761561440243632961707895214220789024319372165182683958100592912318919969630396095682225565210940916237313064504550457932245487389521258070294473954697795952931195162900790682742366539474789333010849792574306750786606448124770794414810557265711426800947754507924184457142298605396629814533854254510523564950630685312102074409631511832937404952409239379352530530661499810153730874528314021084951985708001671207561734466086072931766775149774889676282145760648795402217019269564356866856812457924043799761726911126143159504634989464679848873050226217922448037861141877900524073756271472684360621417957929378011688792354101626724827186309785142476929423913657946230964725632157211747267673643152907633822586323994651594474930427036751579360906879394427026670198394645977073520000543583745871907480930009427740558653193220365286779180438665019547367550510551443538475595554501267377448921961563237277286665715614613327569201240526843039062554979635043607559645506757584994141409189998525499376199466244773634204147593459113224117439987057925235835998685426627255958508110944526850829991182156833132731394658782610598636607813796379295740163516922089145412253151528617207861383501511325470693097138210044351025260088990414552830739006803975547801928675541433189310181261428607958727133711939839703555410206787280850570112987970152895771443231403811885197264816527103163379646769878100151162315915195641228167912569881329811395170036147111034943587249893226307840700002386229657911608958209728495515139802803335597783530049056387875893992586621483449160706200284552187381649258957792278091819079482275828105717665873620354244452337748797919390420476087082292100592741799701633204689906736622767828732665800202568462395861056168669282796106051994110506059222570353937909486323849918839194682063071729371200523860927339291536030357187526800981124162975732387816416198721806684740950960530927238442336628109125787424170662861512775418976637194787626242392922285831944523897764305357919931394692351911117006715095407263658425624267570096496545733399267775757257924944683583196579021480924342812709862525107339636337646747691598553394367014950660438208012799651107543984004995672193410366850595570637825552376688677156983230181470152823404134450281743894212841308641030451211179374272510780782607791405153880045959690066735570279869000541808504564072604560114527477240280011040774764241258612519714339790818421236980724670312387226231392389204401183856567463622167214713290533332736030968539334227795272830116309828414267470086847929552927925867534640657673118290894937277260974522953888936719334583332056843536193147604458615731627679368240144341325891432322678885451113389901364333994787502929785529069558746805905378077233113600768816856619067072082353296092053220693034849395682920304782207520978989527696612919920065213068925144493108899889868598687209694174760866465388520930193737371486214788372016233830500626959753373795451990331024405338742247102945894441848997974258685679876123454051142228449848261805892206357254248985302834288867746156934307640869949164353758885907579761145604197498800762116539752043587213721104191217481873505341392821858604626087026684768910695193548725504813513034536970931020167592560088459285541148811240578051965256063973284505984640043516063890825214686719528156657461660883094605549335153904540804185709336312456600284846057791000673586494650282328756472327495285590930159188433357848083656746469340674084062951577310703576376474679309952117434565891173491503194918935762647660582943179432173093895641066206477260046678568806785155994808023935660923680430662070326627070196113058314568236092827059126492834503823825051134378284679041666916932348046770824415725545584886770516402206273095650634591335397106347425217625337942013974497182289102529983710980099750803083597171770408618553198318372925119754630173486321582602644240028688899484611532335183573807084557250680559808542988525006969501942995373735519819135729533916493370666731341149736530643217270794681927688606327454462823496342719043286105094500390102895039096602390763958656761784879856957050459084518908870445262402799220330954286134362155450400856841195195336571261077615719947295030660396293677082358622672745039444016190997703177004605477394827628282179124913924295985817936325822419749662554532881412258269653979439211115229882571777431366550426794543819095865628282931780640042439192754867739983271358403616842433990319921700098748990289747090968111836765528959999311298753478238425296987690328278497048894666638753700972549770074050811157796865623847146051537001426251528338139764276718072344316531097289264504065156261410234110229002138427826395327784888053033766656021560264667840384375787784492578173926790839956594413220863083239799466495198302751137258494110961109695806976439667861574663419745572574159109606031149351070538068438189952716010424266773992280465439674310855195903079635043095582776462440313638108823939758094139487955768231013681759600234267273350536948232856430703493911059148247274932678879921718281486950119522202960591006252764469959576369041008813592944152835062862602878895191053804925188931431510682180214848819000032969878125382981778812778508500368816044724219759035574354821324222664418334202641688111779871215590367802257131650052187097889691620375496592544243267289377147860999540455354083831056697565193324261542410261744087284591564421673713189621533143751152535048540078171240933820423392264266242532954849209208924091409566409407003806377203221428080117396339594542353999094060408591814430512302311288080736640428130748612818288924129753700885130538358048042209693442972785881670507555992240692050716769992661118018543424646325668441550405758881709779642809195951480922430975965962459821414272486303924102608357902466270113879658660520379436995785087969572585614968299879886184694920514792367452551547688938944103613667696173108371089686657133631725265954380854907983973591776046779474461910214176312969426044900641825503726237089534964539618107871939519878110306782134528446406813054075272856560062288623389621264656485803214547578889571816347649136813392296955155671841552252537951052199771267284363701165239691645432051124488994665133320721899858785307093056925818634533550080712812480423852394674513927231465950366629335039546278036332446169290361539266432642198741251119838948689345563295758896314886432309715436514206583853512316960846930639810632868389547185765967702926458295494328712050399912277125449507496841632586077896925148592122622521077108395207552723987175323742767501090068437661966080398995439214668432367121852796297749517151733977489915880602741241571615981296787886128877799763406549417152605434404544876756251113241143409113189756434804298629851976196777433916276943443199867905801343796791868218687229849686052965268438506017886856551360541881317945554495615466115293186219523202714915586586416369505945231913839881849949833817448364381808959615698455744200697178702422724464821516583827933573186749004415842310731221104975608435380400411335595626077182953418785977884420013091123343755485759723162161669703466473066428964417412272708229736669037265365825844230212566208465425788671937074089564524436625564702624396175461902858609360945695927574501828470716202512259986246598644917368915074797034062750984860604273437836161676583993437021688943303282174053064685101084137180223761604909213253724490088105101861595600599905115605630286083543510198137040423972070720027989017886865582435177886470672434076744413325791064331565639512269853536211044511004905108204801966217635215916053961565269412211882505674882106423151198401567546309013245303920301790071655794753510730848889046344022862987506375629307863813798626739688987596351464429517645711259949860445274676074312800340664756508657978631898746100487248698200554415565213996675118018246467156536815167331330345215678796520092631094713703961615494560285768250304264358049771981078802374204804137284857324162626976031681293206464963960230104413515206922104173698588956121704764773755994651459943682528913958622357008808266958625371914845229052134414986861776385307210721973348419730042961675521403070402700498675457833622133824189638090123601406550207190129066752354194776414628673980135486798057991549835221560328333239404801263284756054648357795234188869728616888497659633720855022275567736912362822146686732327182292895258590521527854932961829536485547446193446671447535004586971144368115327405923271516465971720122601986615898399123216910998571943896506716748806989795684777933784112721876247188618795612346625687398545317795163236073927371404069406463755174646188287644931762165929478898211073791189354032801297707521830807664499852442773082904387122939408841952800070002395647860494267651853253512803427664938388571486750376186257147030245628388936893374228638010654524454262287694746471940436689081874787159623972609573960438262244042697717368581472303397743308545036092040517020495588872098770912200861436152947173958884721360685158061058832703051435716730009688267751786974872633163493987683258832099141367562586910081564569040964538972199208359813910820399799568551569212637249690754315589037774758299832598719831541160334288351559340436192683211024710163276142057684150525152417593954270362224615922241719571692806330856901124215095217652774227766087552884171052732792628741475048629793590351633066272356584463269757686728186935522107502516506121568453746915047977851669579031357804454461803846710403294466150977331357615762604315683122062538020031725107531341621463598213787772261625647171839780939744945478332304805255899735292110498193036405126921379678897555550273228758548909931383388462063386111794558600586430030074579834574538717735668197094566442653453118018531011006464513310585337011697605721387090999246568041808060971255240195561667861170311826245925474026548264599107543381746068010935886071058173580008748465622961186548848873240958358858721395427954326589824499609352395114575144665753291996477093200065231870900897233514762957009275015647165962611013214214692615998349553662502685961556564673278907417868938014673934086708055274157317905067804964262128130395322092802522776381372162736182001031281958738198337203233470103785748702378789856052717464174000912631913137731640001811773714029396434602490377050925641282942994208725644714868954549977797420417438065807969476439127992201257858164473681052576294215620321521773310790373128023074197273125613929135386947852616406061562401426209075688435955909777913609975116169704700150475268120852559942372502369314781413637379302901700908967935911318125978262393148228390002994424500450275075976235387040010928494989332751652522093387162570900032947862109749596325057643628968555852093939028834738900637518849193478510461537080702801539992112297253311059004045768309312027985066576083390960869703842607027384774481066333131861415165742237802872516065681685221730319386988535180508275040442009780879198089078244034012597072804647780469382277150959140302925516538659721220689188510744945465078231108041759515808362175924147310623325975956013906256016901823708318247872154079542993212635800877298748794213019405906984802276338445711484168978888271958175719949702846308262549088204232058645892103616023544619850819275225000034743525359299013323514854682330183909634622706594738818097281776943250143329716828340608219303705058356411379889883598407278259945420089687592274796088821271273750849686571694834044434348831607826224856784655960740854188867539316832305479004481978311576128310102138728762954407171120418749755256452383969984074629572188443784013718964889461993936433793293888210656043417479035852716447693264697761395887868504754269074810011064329390851942307389813524293627236469162100991963223939733523067013770613111704818769958476948909810216300515322331643254072205004154700673906808973443330134474426208661733072059647326003181051142897729043123004487255752174923270550300053204354713060112509581612195491755135661171977387044683101998096220744281249652422698751918647994796516754958958445870584949114515618055713233729263481654522593705663595424937505272267905600105614216800906262484705561077272473878654124699413974794769865653002080883874016873439137990925199596473948581284632448216838980322116967895458085482255855670871223206535714109505453887742818181981768514087435943456086815607286521704505107578984569830922902492488996568585497636095784467203157422716854100026565075231138358560265168459678486448901140302329708670820522944017589898978192296257849321106028863060347587871698748333138024114491346417825711450811343975058812372630684403425478928417182373752875785886406621649691693073883175379535500997701734122698697097691721807252874029294847062615831582680339224098411305110857682076889270123763886199312884160332596325962239128017411099254212809165202320959221681692100581130506894938034456762789953792029567615413325235964570780748558559695645566106417529171484254692733331852446421941947430222406440161141748265888130424456163354228133081107582772177401594795193685136503027306272081919514980708232521006654869499367386642173674048718012183485532277763841960236711161698251426177512448963678149761781885989833704315032404609767694115468231199732894328795555162668728713513957789045847654004958061523003410188142787907133259037186665622611417863959709718730598298871972955352016864717586715935115345171693094650345923258301160878202016303402548046038791799618148198713234570771558434499321991190479399008366894627434446335876956837334039609402091161786479198542355996532832776838562579160040011650532653816034561852332276691625018421732054262722280364085578113229909572828878099545096971451003132894975667239495013559461269549502526385782526864099717663176355598178402182505879193518705844225614505907220891544602755671649141477259041457082554961405065448183088217172651021919058960393014704648406975163935366777475837860991582354490166326177472391962233867436765954944652355753175136036678070519518471525080770050840205532154717224406693646561943516911071818516963524520958690929673668477662924328833829612728202185943644463251645625073663888222938173794231070713617510740447170333555387466033544883462259328855299842602954037076815471382085163880619427959104675933982277501059628715092757829442444749653904757160815558905903255253219605499798908575687881094692743457977728290508551127452676398663170831466703226804054491148657354828980080612248103680173038162552560349620796564372505548085101032312751851618424412023141217519126903848447127435646809986248503182705078002817266741742508936946469243260685077401499165133649522127649460478288731740775694545908454613845585115821047555349924466649297107619544677487331522041085741982152891337701730419254376707069032951314860003368685373461039636331585227917510970552606740470192841566619839633632381461450881428088861021383399661018093146289408626309314875158226412538187849731748807624589349702105516244375612638340104025071018370946117833604321867179411623173142124681155825138408222071668850122608303515777627125895654158040585649821685193216749903690710381594189414399552078011211304089721420127700857271102523387731850348206845234805408111167755657574851986754062859962847522922083720306290251492536937177355382770150866714426663633938772106514683319051887666634230702193786533897398388823842593023957869118612601477897938427430387074707104378943807465270844233015192119986371992643015805668054108173919293540627470283550843152035610714619414483940926867235342126221857755103647001147838110589178660295977099402827536364179610283530867769493142119663389004225100664950857639846541069257403584155779669377589407098770500462666401473123266925350583047542378218565962572893771400328658067524118175314899990460364053335734510431660347064710445651569022730720356396140543730066037431423847531113249832925442302525552219101330889279708005685799767217426151889219381994814107595649738322325261928404819347149022959051529233358829669449669687478532733420028821872845866124795416864845577286522031836637250795998880914960259039598584337803227095824813792000892991320963438910296647031508137374870540762064716859085015097487629282362285942763313271357492520439568102914036011285388983390590258193373023877947464846970674848309877899308226596661173583547128198637764556521792983465729299441598941882297478994374971177092179339962535622991467654899591131046326789607613019088317911561742853778281576924618619792712597556140189159197978386408474397506082573101763537236716618806421440594159104044622359856443820607344942105521785291299977843978831364788575071944164208957782956691933544903761755134841982927285472873223929443324086325716735207579233764893673947147550372740113480413284025954290022805043265307534329208468031926224091021240886644225621485806866812933650933746680889147929380710762113298664841834063024372206210768790352185558225806180187886906691450399602187339897352679183985581339785017110953727931212323290684595074846927871416144553416866577431219901964157548231064207085550003696639180884659317146672290747630900301615879684560188287316690540353867358231409847774401226286425820155874719778346806927150405159394799612341729883199097510267918498190767943822425251453414061995659569653564032904437928299422026795022316542839010662680980893690953662394790267483537195923955305536540543618577686038746208085396238702665672581185484332614814207474032672229549495861017735002779870247716397788212684857509227160099213827752167823780036933661628310561332021708974067085705325258023170397697263206731767453578304781733269592177035127554386739215315134684869277026165791107223589104512714251517295294358808875906579213979769417026162864683610936393836416700372864991609245452249870682314350895305926768776271368230434139175672549813881242485805004505798266658826752370319410965573974569089656705574076267557093777132533464472578676265719715349123913836463769430620379903249129055531243070981453787197036006746050205619322266641203888981166984875400516969646823335074094798481229559559359604823189736763285863038330162354384382724997784147954326910100061877775222914282758043770232040262314699094215531335976485825258831404166782626160682840929576864841484797642107361500829555389412312626643284717365102731740470054071805727041997377686565279541910787107055445769108130333022777556344554663466831159735444692970102512861626921031860344545227717739031610547787600616683258198752946065941916501077060426273686606188384010198427540360882989308470265027257217184168690876315902342737661924055308422975856196722062077359497816139566696729400914889387136728948858057471107901309795819364951891072921929368860932541370064321688276763128061618144566683916776730263520699360632262294639788090244017635148574511861119187561986870453156862592927847912822154847495698621678886186279791528007955392447953462625767794144357283233826185872451304143892004051807789756429152534279649250334277822874899989153172556362811890272452086308839377936892180962013741477459227598203712778431757295094845734700947636522046329228264591108043302591834357949560483916661216781962435511238048554367382484233943359474243773159856862020945390509646249281136339294145140235254769546946867285092193958600114521536737752215703927788714237271262874125323680987772052671080952352309046979842320091315138250645629392378687053770204625275785765048898454587530348777821814164320398407912897603504740320496019402246225849179768441285533882351546411224268459018714544368034087534307901796315324947388052888682373855781129372611829293246037413395040425244606084523553445690783705951152214639828813224548395370279464018898785351712446502689666560068784991531802929616963988326461725674480853822345281233754758348019191018552774648426891616338304847643452728757004618356632660389045899061098899908119597205233811865111294834650004421789279433342760404961399587714819208056328398121838431825038916169364507370152116810511468611531134422914795759666844621809078313017135307109244531378336308268304335576702262767062262886266006146936429537756347936397580846529288877357728444386490596556569298707864641813253887955137007752053182294156271255189471640372404577078533502358624489814696969421894178490263880203590582497870497242429261342753816747051361226600627202925386111720682368565671437124145821205640736999097006824123201167833371934748936161670550875586443189368804213562934273212252315630461351304512067922025511959748265017946781927507802429722294652545974123134798635182810406748918473810887990778693631449214370205667435703562777262836494921462044429039559059106249919169136121280716292419465918223331869935230378774061974657476543551418733867350573220106008640377755142545294495458258572833506676398518138447686916559329890985288721153048484395072414627496071853926972429099493272021763972594062117119407043628245770361113545369887198190033589381278615743628135950155476748443603557532973939151643620432577537908224213612437625637733045605241386175916457969406016717611551290245377129699738254093298873191473184171494859643237671522597433854293826878724115954543076920810347416923408111460658128470935036111421245144434598745969487866642361694729008857171101053979117791531537936418755208523358968739404080540210836689471437584599326110484390377967991831574309567359562297936003523233639689417229938382438815379346458513526131464979459540243156690756480063491818184633930588424782986578612978136301808364080073285295418992170803685637752059913204219740114519930778895704688690772551713445567286466324519808395789061149628492062465749544181982072751638932854496474597571087615021446986246119655696897668484163287959592535236634425540732552247296392597742065715791222394938376253419460380980927065879620956405443561817063175883117690951484838834901842395701609248773219422252699620039931242702788232283123481166367010119464814920200173313304177952750584339776427958899571719028881891339745709983899623952690523732290977865573784215281179870461287693464614612952179081077903585066558590933556887002252273093332084582855337280816651483167216586875415135531607733620334123361409693962572695647238876493359118757462130454755847844971048820947329972439309689977628000404570218370718281191261794434330611363910132456272763830753444765469545646661689890272244643040583805942389262274085853025507223688912690194266769038838014290647751504946832665241822363084748785028000414336313354322270617258780057824357358991175551572379167409010205492310595788928909096028924647905781167935740349673706584524345340920817313474584007121170288975456453606089744233934128965051842259956419594347345570602429060210801232771985351638366124450148054626437620426242160957621852674967348622039267211260614128937462269834126392640222531330043022511085676614541733108098385869555014457960546354162207303403704813187616982479629437405190814114144182304272040010632146624256242317139744110936473182705861321036649908030016710948229454371841833156992249199719159156467095316789600532630000280746921714720924630264652697658633693224251099723217072679129201061557433090463861744682581832063898775245222263572450182974174606769649777588626331068433242704744605371905174198500861009424367017663265094568569231787007747672427043698235664093283748736243535159798914887499177893587186244983521771817225442751955071854658562460253872567022451589395975825158677891241456449946789653808928033165199794314571129015754719209832601080843004720252762672727397429545428333236540877069348785648124484591930622386784657053038493190548565515883165150076461413260987658593991151553841141890639525656276749594805493538481071000590608622538437670415096174908202927719444365925888571687911014229509869267748977321055481623061991370044924175947958511456007088674174020924762828956511870877715421986041235922354605900076445356349287003247184275397002926367290668790375778423291957427850123445734940567596613818199411827080725137187695132270176057799066055598508557797978893981762557304747813601162884594247227325857197724830162441882762920428412559089903811665780901379154615293779489901140488793049751742517054862176318230867352053204879562024204808985104024793400002426935891904323871795669498930902878569817709706808661378245777057844853303287742513365175727120938682260386680385007756821939964547648227740217387598479573108282989168493840914658893110177247788367257835425502652778294490455419449111770718481394198711239198536446231841325130966515167824438112435667745351840489123933029260667553495239165630396000179411285053929850309345670839643749728730848354060411314168920180915433756949532224235467830005434242513179917748128263601545185297205816443780613222446942509219048272401685076800613565780933103048870100249209236811526898232875236036268970863304233370749636792223960238524350911196880592342880122536132713028020511559840828219992626541020746750198695981177513102162219963701865967296127458776113068917908712508877159115271507864345785609971780243323330751589118328913371196906934925423907832512277700262451537061453036554822025784535212164581769582610298451442120171749186524710551631987070787176110837489939565430072131457371234232264203214200614003117380308106389935228195935563450690732073740341248790810152709924683274618664829097594217345920264497156277262094047648424371927984038116781529564318513765833046518154485204578167792776649537774777521840115803436344950528469146036281886898913347961502750412202491212376191326615323878784530166539448334144862317672677643226961154565135562469574033724943103257219822613217039672115495106147810802209385797467341355058988602824548117799651853825946140970155474087431910600916959665646845128809976319914038589492206782845061840683626846140659091514848827136112373333139862529596504677118852257442381549439004440779110767771518322846930613950623128255153882542629091399253698964286725260394170526204792826493336936418293645490503805193866596360788362166484736151193713776401635835285277076552064584120064954834047325458879452464586830448581144332818075459877986932920361329141955146855570026163445077267245716372109407972455879226018201134234950414943840732976984510005837011820967475875015648138824813260757828232912083128701125701576391956974185626096598826974388632470285613221452552363529080703453679934077958711298715793682027721408419794248299763483675419621099666432831917218940077768518388734627469248358045194641844944673647533357882736759142887438889931092377903675440977107851695512461335824982457919916016182371853189916013613187417085315314435585032333283404684889583769315596350845028944752758604035596438457907925622597754019451530168659669581864902647515915751369214609169702659850480320539314208462842402566109088672580610411800850826983164982080049684919807829423807784609751583711974084650896429566150801545650585568088370587756991371953044829569416775534768726866541532437138710205356725480702184131740940644458214056544404493461030321678898846230119577554013333918261676948710974387230011339510504053348506755710038716866466469918787862663159370600747806533912391492393016394179214815521444223076437877616285633490765915555847024955111363161288531865478925241898939148303291345665190212865760869425382116812654297030467784955353557518290304283382730817291741187526224975209911324741374698292437672118012697140338825732187232115303447565913414941587126204499892363860561936816122304544146849797518297150551927232468324356039863445880509920018573166018666514096389203456780420641054066598579500013280028313646573525949792076714502034610502375750096915860363916069864939541549297401128424903970016538063806695707292036866890886547650639315216642354210256991855803310495612370412097137742710140528201133795529421511224236261620379477839334226580682562833164029335234307527643219407216061376773056381411350744037527657334021613076522655128915627885262056062134047225609716451649712305715487812312729903854940932597981550890550269862463534853607196346938507704990022190683914374778736465907547754600654040300495354417874748378111368734699481990126357157312906802515058958246932857461220888080768064877126648736431910448223551759004125065322611483813060813575441439484519946229242921694870912926696537041441640541687705283737668961491991866655110791221926333399510926582194274303873367145596884060715182700706631110142758735048851692095939924879970494837036642854129066205410901335856724284266995868619861850142771199632870023921111040414171496808546551597513746216299472918468129911853954037555229945305892048993731947840478786380218143704308127113613349512583571337210766573179995886737522475069242201010291264039100665262401397093595963057029287881233314534735097518792804711356049882259162632215084530647634140577339995470696058625835514019097167665603678502980156819906101040623331962351595162561307914907286422624323421815543138906006348191682937950606701100617426392930868035387806067422673303432165773744854302183611583358554639920327028360993281282924674407186185063857915885293229409678391933875819332535415867014916510141542827089549761722069437026328249209921095010037114015916258069982802359940523695431384333537982699853179533131495950854664348036633152665438577646888515269047766717055374440455516804119191509975867567868342845336897476580769061420850310223198986494078191525980030852110390441514797255098971426558903077828698533860474850330910763669834001972413646453549413218302338169878806762691012467232865260980402305202905180377621491240298692680304636388549640664673074073980325481194829474127583230052101861666765756994502547753980630049408198640742941829135476483283363654979059450013980592131206898158377134731121526992869777599536364430674483386812023602546152259214618331922116628371931074906913014877415392856622615005854698210697983360314491464022538705978296311792074243943693882063437059459556234667195139184489420560634203958613277492255129955025596027272791220007447190419701058265447273659377869694701542939041969330172052250084227685805929014661175211248810261950606889430628526031047706619953461338132691196507466925961632840918828238259612081495258184708999866429340804037310535639725988474127273544803488205349635733767496358115110416621393816964285177567020773401601102094155934619748314329682540306314888635611268271358542059526108126822295639713897601799281810974140033616291756548833118833549841345188797814215902800373187627975020645110672745547577539305975410717767442403948557987567807524627259853239051236501638946217023850575089117247006286604683298563411928507578750046719792343713850208509580081238215514819653360998776244770376475616452252937051611875933444952008626369632041019113106494796813595104454562692474704771095293405856711805658426500575544820853151382499170535174827705367250821106129944122900831031198264004568621288211801929093353156210856405634517752229911631594991561378857651443579035034345000870246597005033496833681770528959418223773887268521310176874536927257159965981259925627485575661202528249242948452272984657056254325266263621235108098033666144547388389668696527784234335594601219854842503960653643239495891479303216600470579238096710875639333776928140740927061982223342580236320703651377043332806168741482207266973877961100900615547528587570882717775180429983069676731057881395114139619853041499564809386331538059181817140338958144605097702255087927387298814123879818354503321104597465563591703155330171585696613572879788230871506445529142934240979528520075100501044485503035522234152084173537185352056631157513522370627398553597777066912279478739934019530636319967292085861564795863513441393712852964845360739843584735414054804550842239064267350946095909825142294019741151011474493771505375476825663212595017989579264819719336137786589450570650220181656207108974585210967334748818720238016771959119103382103668985776188939084892488142746211970579112373025154128268147660998358482335124554118685495361124861740361921436795814700402515635153070739993891777539083571872699941970138839488379515668282976431003220131112627459046350498146874768901681578472021944598294597954393523491475748194097283586006992238502871070295532110014134625059297203682447081215900384703228132669092888325418226339790694059620589364130867003355030714590277139808083223754418833976874474054060655938391928052112757389831877627379679218919427533615589929319508553107856397436626078517744641770006160932576946647414734467633036037319070793843057295229145989425084680652405572207696812014971401962647189052202439012783937401503959101803316824258222078448249701717789163621722589095222473888117256767479471071924657053230205807175113722032902141303044327142103983851070521391274725908713840444098305781766223706405241760624316591330528050457011937677258989617318507787306993828093671771521121520729977466876551215369032933347476314999977459645953579635116384528817365818918345338614171637451215241636523383623275527496893860608026145546981761532989374994905712291816130614660434106049243915247080115620032097355164640672868016988677816627547108659076920200333104059628346392478227743250842021595105860132699083166858316680301791011380395968600029833311936746980369288419005482436228296787921953519641427227867289134887553234877882261122191238065633848026346534490684156753289875991504958456325098651597352503902769468761253798158841146730631660296655467934048313986974869543702133517646406779339429907394067301544709770005596966373758605236566252226654132107813921606430228484011209359749061460989462843579210487949317522580808710179790626506108642464318126588166283513420409987186976743089421362477368042843199744022485018450675502889444640130604556070165672230992894808626867874238528892746931059185589007823649517925452926459095203302546439404204787598268826020444436311916064254090119531404813154321409174348811971780436213011663450150039626218510353107650152840090293283658499495242230638067606609245819549347832768982558643359651198173896847838614862546180083716586207784205681515534629634716280162638770037688918357462118834292472092004541768361051969744056019373390834014198105846488173608976376564839964076581220079500693576534763784982935916497307349129099052683191668874584191003731874692179628881175302259895252532660041823277468097800932280011683362624077755335869589092412623205595902246169766921932315473219473119554554134884712148268311407348891289935045147069267903118637408823819665993179254236544645886778170202823851237686013115233326808697864334641544806479328238128903141070101127826219606576240880763261738661300192727542526826379429229651440666933424031532860208092517272946446593016433252650062353415954215939875785109992963703530160446502766723792828891947826236005702606519808836376626323511702776980359318689646421822071223040169715860930793558997930811476527366982763341548607704304486339927409058229302091043388629642846315419429667609242553732822054029353674533051764212428704344087908377345725486860738966210094493829894138031680807689409605554814645989412334171445680505046549190780349204702554628301870557069289535473997523631865527358155803217116192899934197678320236601817801276615674386475824201625027018123033747395575481318099051241537157347154467690665560175560978517511553256790828273624982200427569106842185941348631110530697719900347719090889866392474124261386918427680071006294682752485569903461115840860378634739630880819084260529519352667066425514196347353106525694035312416136903914699377877147814946338197655449093678336480416462893972980068475081544730268377020936163295411889557102738921032930536688825770813693036779808760413623279869883351493054235937060597010730143814668209251629858931474643469303254938889041943687534624400232148213688353959921560525373779241395952173739234305660426357296125322451204033249037282703998223505448682292307734306880887460805279558900661661457218321797378550053465204061794430125345424154491559402936979747574016920374559184401794022132754392784447872810170728913054588370603328322231277018153250937611044945201614727463504807383661745194328270083399460946172350477684856040719149596001958610185042621720552421052026124545994330405683407498014330441546071386311692692307676314898409934003117629583836539729431933507227507382443457812340515857976365843717298870925149043501004466253697080850626915569689007642825303580070481625163054160288237312943092580868788987760041443946148702576045408049972201681563086210715551240379014127146407103188971789134966927918630223417172630841724381137528353747409892736747607321757281558752318136843252602650703578400852850048675103221957431078756224496056875829970055648756517586220961055444480022059538423631969232098051172001827331978449654889390038883736252562484232389829885876535573367539145222632177741093100529410339547090708477070539687914834224994804864084963640695241306570122667714072009362872294603449346557140323013885734944828517005633862455379819043714551257296850912859216807304615874839728780950281562650421207505990472057498253036042323442264542189355760828336194819187848952891935467571220296297796184195278050773504439403410248219308741590441844050981597694928420005126096635039434106849030993553153247029103801955708572970505295860123653355783426345255852713989099487527231624420729385635409298445686303884010088170526551198595747752311135528764081432734243746124440289161894563363980297474354287447796036872498532076428532133960632494954173583459527070440982766071770363522393900515784300111417272922289524829893045648821743361044707458265232138928636278653380134135206122060701006406816421772610302699624160077149726195813658000186734384806283947842466962255186771094297271615926674229895462493369633820050412899800439658445551109094525061596680197619897353740077776258996170934046567670153970859978767353315582286180402718284076672118027038800076066461021478147269472285087057089126885465857267657415082989399765909776271419675293114010981510353466596122961186557663701807090234640560490106150343233547483104493140659440776455782588310815786605569299006945944446522990977662624373332530694700585403501854724680175789799151042807614563833248231995314666239161523309922924968702083108106985698696110964707930812150741239300360248356956206872185093997476031867309317041112465207450545973880380307545880979948902971095956818585025871566253477346138082296059186214319858800891579291594606787857132782828293397123771875255764857476298423768827789092420774954419935115718559143144299339600436088037309569522390630441991022114833887635823255071020759968502710247381723397399086331519882918329006930793771913085929171311425784010627222212664508020093693709484380412739160541959755694827759231125424981352011895327422134678665773191284916188069291487506880272882371353673165154651935269231754529704377917068780901799100320802533690899648930480716138294726567591927766268832729198146444498768946996010638790570866633481223398651662238755898711569014966370513581184804436072182488883504337451421292048218686222810131509457789697950713790752694099867833476699939257423321655095300925288179421476385242738538966761119521958456804265055125783657486363675792777718364148034378811678507759114211365789393210465167272637972264014559645955832272023466351439162527874561280215595596402003893857232184053756873240683326345496800973075155455213911541202644041023381820040651920596539219047160377615045911879493590856999604468256648555048405563663887808818734183992195460739200556698517582530732282778928472008709034278477398516849157957366223218869311677294105641591099555034110665774964359500097569732061591126015750579994042984983448352705652427014414277529369489304353407433584943655536508257045550963697000858426784740636146693779938499628665327905824532883149520757453710632586590653699814383319767363228198815335830188729283358684176174603918046868320460219126810846099448927736676734295823185907703503005939952884966026419151043822437815320200909651252362191112487728480250513154978147311808823472465131238277195435501007758980696983814884280282187109926375143603011892455924107942642909158142194732657295175661852456040780573760032847359560099252141666006078546288421699693071648978951347752719278505182255732225084742666590521032117310619121841090160705988421714783365679353240016135931235989713533931062506608878630342474741677924396669884990582274083678726774539306412153113310896936238085070899508273411437660157914711003198727747811046842347137624607769126849973715533951053047251692456783261770467873036316964495859856863351877821353085875197701523113296050914210185948037965083007792538858272619340613355337641658745736381540289795644530042980592600268698866404806415448704008225531797671451565803196074216945022266746695227984453952252723674187534010490191482943080238220072749328692405226376911270475968608530629612625912027445875999690682313323401868149696000526824041469153008837700526969897304996073261113947497106088975509512043707964937472782560091496999757409300623564316325612452500281122032178881289374369965013058237595219852265396300866504645923786198741925437161691088096306539021747914598671655439665867860063258727130069090987389161492087090854451666619278395271467938579184174490953375516232898729299695211239735524970539558535052834238261202982951553619627293125158415967053364310500649302494555891027974288374996022192027197222738598672008529058880086961619157524755368193390080218644359732643803350752876331276344958121029380547384863930888663215745069645097141251665816054520099769600486801200003950106049999971827732952165069463135834158428273366126810140350251123124681649661210799304990333886967726464206123335148481635605800377520693933536318784549676006550585000291203427121925508111221416977588878848568583711155481831801616107242132353926996511373706962059030230967792071950650022673942148955142173616254770332043136295090242825687154465870163269221498934514997639077219650721732904620404429543896503254002443886245554188493265355098173554713154074874601739605833097226997256564636434493421852499833946811836393866731697179738195031939333979090423803125767361970509838227600877510102201292851730152576404259183423544807691172866774569074463610489228891331865358968161091558212789719334784300205060855828615280204477868769992115754801504183423017223789925892027526369553080357247416153358337829773393314521911734076963205126040184217639433739856814864608533866401497385258560480141197742935893099608658302677916085113054644097347801621898904420768400094864709823368728654511156111826121593777387218381762994209461076324972798590232391198964122098181712578015747290564350898204799499542590051387977157099140529244417827141257618880072741842592768485473172735779052646918235294395326195630152265391231629498924726527526094923172883764649247910740432109601073517610641338283427580474202148004084694049827414890934346558337400068856665016968214173394262057558164624060851329536654698247770875019251594054192696036660423602880150611598561914914872228768466896874600813032361256306200963743917035437488296050893218678056480166336506766550808047140967890715449931040723749873041432886897776971330538430058670148812611359480863472745426133519514446699577025887713676049389430143691975001951520384176706626820121284453801755478527714529522930463205499032879960832982762874424292084348950445082561088938498954461003854760579858382124704192340869237887029109916176785057074596171326241298749052475833524469025148855840573106109611419496167013112227172508806212956026378108106199806329154660609524029364075185834603493699572507778511681428756296056560345143227518306843176478657352661819440474777906744558000567787727294723141808290372226172709612872275309873676078823859561304172736501305569736651086639164618356870975986006715175477081792888298364656138673452694835987489463217955226524791754759623711168713968593912977051373822862695267417957350582767246342013417103704302863922680158364226242595011915598284007781698493428288126978208752435834249653714949874543246216266251225109539538256094709255188406752395187821809974791237185946599361502317694606966366266907123973489749424522454582193667030067231189865145876464404917143867772638218752259815607911260396500613316568687955565828328109609572203993252038435354136960643093430462998311071663440450453362052955878326500694319081789148088094282139842412577042513679484089288493710004912799239199106327045756564646332890165017789754249306804661832170294799133122760463953337231037107804596787360095752761398800337261928604335857884246669168319097352234201687171356435641956567249352214448203545230081299267778358040646637505471374671258430277586833258865957254296492648203931159093026293513788076721964563052048861810717572827977526402970435953921173189230417446948215625051257842630398097225898106850644531257485106609598270682498232003509905511397834498419579635595849901536314569395619023565109943644065662188699741092559326798009720923336373752843174892238930049847577969437724747285921693020332538014538287264673741771358354444604950152426684395338535665934001512007730383728998037737860389140351182285298946928662520100389352568462533793843417582049429068312951434384226393184909007347897641744990193599137652952499391179202693919815266930555429014139923671101659829004674474059112399595449391308616745417279220484094484452534949520708268493458473957586059400072481445853388314643512213172342443478238720109329371980377571366279057018186493098123724311605721774130937956316552315827376376370713911977967536533787342294691642808056837784647745295444492227064918725529924345789240863127397296807458989958124889222672803026870728762721900282746861170187244255456094828034896556807221160818092343995106820995491473022071702707160244537309320918006508984149864931138106806047154287558043190034725294536437745609178106674931195826485195173692617460467787143155676770766487722809879460860756338245489210089948608540043899511638073138257347015573366016076122309386440570626739143691864659309504955717489234502526440741080975049959076546141379967935047157805864446375008548156849584584432349264578259210124084386998611798230414265361897749657419408117800742291952584848844109093031265110920945023763134510439037033103080891141060775836901744945262041132465607538277215213539053019456993524676002987067324801164611022893012487802286748079940276001638099084314698217307774292239883711943505716521013108028198834598308547084357164691681313821055464813782599408605493841954975511806498100043025580709333605834092323044555014935725875186375531267051380883703923364253855522035652607865806484869588796831216727620466568584795011660633002690405078471816598099593759773874339525012557006891751847456018554854696900354136046321910972018661523318915416416299761167769819785987317553210332324764852859198398542746956118575850340443783510792772598645874458409012654761897770996982029084026303635200575622956942000020351836143517325671687132397674858845682119577229790765507530835743704855389927169889784062347672461716866759940808905067971756554172975627947793326588851575968309656354280995657444478038145092858182827155743761469266857218144830037123242727075856429082954001665115728015984511486255605723371913384704200957936118911870273350014635222985802288831455471753145886434808944514804444176229190667855040786718205604313344375783629839463523447964249878811427325656709187365491904417015783936813434511587967142692534328583018889091197977878034549042030204799025420838098291338428547370730349187468725621037153967636850260268472359363352118638308714256365887652495812570375674717361551649364501567796174018019631917288831037787617870065993492078180142926680375591492710808584512874133026307066948975563648297082847582271614198118194560975716420078088081715343133925183453910245685164922399187944388499408081804502699213444307408834661754590604310598209965934414336155067181695166647641393573636568658288024696328151201469786289847890216241742242174570419968387305872365812360064025987870132058062454704457825654948338242642343559788664067352125522835726196608942113836694091217372425641692519722404141866435439199329428222711334856458727938269233183855491354090197470484828743787328103262759666004480361106348854301182225788963232897027432559883347164538532240974193418503818336510578758795985300094538817942281278552030588867965334073748660177824787634139589999114641022380983792467093505247542901116148489549943571167548954498393340413217820413513744514912993148294123267915475881064712163377694006476980225030847306263005152946291989602041700549095492261619692765609296404698886541051509376415853839711817074717597636228982889507086896227181877460488122259497460117838146621056825663012992557671113728888135636346148394636895094236413560733994520872408012129858285396832565281778337544726209618251647175869727102329766421014844048779107291819771722014562078338367910774445035704548696684011621989446828758754870263233990313167004603658445725387551605421818229275138016546866038707457131296076941954149728960669892063130565979262766369875239055333279085185486855344755181367977191734282943271140934644139642970201121292568673380384636204587307787510678219120447179919358568091901408967349743653414338910660399043580451762128714328437176561211467824050106395712574885988365290480591025990420407890961200872994381962999712241731340645039997769358847420915461518655911493028938243813587925041281309322099910775906427712816941350661853525644458385563444110224053953372462440732442668228528660791562444138936872059486214460395564298311386537073001346981413764772905567340446052480990567790506401746336286029532978612117638732819003467204643260207915308383518554567407915120065795065273932463600598590725942493537626585138862106940312895692997341560807170959848527513718552709270694237023806974806457031855665527130421623042653524394252169533769680332591617340386632007039166058807963132493879902813147626011289117585254298063525080245524658136317399995455295091814575717205961366300698625881184525402718575144882092350880419759629565351418406829065391681301308085764463068104842552974164786121062029492639471085128865923736709670725118155113751165196430438608876443954305980154592014982725452384315548685397699929854797546425970079064741879220299621806606857371810174621685971046131129604250765784331804610257439800836222979885156607273246889878067544252642057203581421438556055834228368585267016817473870740662078391886006704453648679355333414399879565040478638091031108365793814313910709608759565703848184135804879416236168718872999394722816837995866521677696605299866329652994365016728771106925243456191121444490934196152647333736066213138572760776931614732983376326691377321433059213872334405332305989823756992271736555905409044264652901712960992504811813022458939081930532594632109174267980317416674282100184907051522574153333298261581966549270101794445959661110678223113132179267038319599180986754790846881512749317135674253016042605270805205962013666042139877019284221209772948452226985957487145203143755983149437096871830121159146358345705766298281244952281252705441274576164348636729666244595582035563653208199317270648290064569287918117791287437490552023833090035300696060167671354860005684881806793810385100502709198047241499056969123636233361562768519035206434592512331931959028229611173435071644916395346722115014349923849952981035542353026305842854968769569969644247947787782357164259206165276428559377187969227649978100519527662450532455825272986837149305248220473820820619917660641502966849345628141649424514264793521991184424308677538473677651051723177965197902819824599912172545208458430255647462541364178681646057921990675815505956515101138877801803888257451442960462551432012570893508430764288134976054692099238782149107586975276626602192555817137619079134918521477146312328645940806994173830605793727439526679728185676069946372253906189795843624629908858375573704423392119832266665406037822321284555423232573619613653494246487355890957125738299457230587099005330564345346189882487554660538047616072285199774351205050479426669680877046792446524145813526580540479054049113852706526992704610181265667196703163572040501520792590904318109709145183414594244160503130471466775319373063343037654147625930893977451463028852864566561868008004628932137112468401795038039516838600327700945096971151502569050642114426668992293464011789908511795242306428976333288184445584756681731166210574520724282199148952432931646245944678527134561629428510807818565618451610112941326761733639995943951531853209612345806629054607401182004512929401923605790074739213294529307805994645420036747294531967294849561194683508774148227484273217905423968692071656713798152228952277304382851117354156854249117948347827938749332533118889688422783035540752338003705143043032264160366671500508859339073666394287872484178728346844316424942857821389011274375544885750998687628171778742287553698408077473346101617260871728328349564890076112212844680682296743927840347727707081432145435138281798956269761116065795161853154163888509826996833145048199358430549546671331855749060616866905828969037874481765203103664418252963130550343658068001765185162223166372717080923730640263069842635890258728889670368740937312578884872495429717441964952092667109013264772416641301900010791239570546997493782949671530477959341324134359552141306642659605432079659253746130054022043895696832913233661330965720041930872998777044190060421315038180768887830524204477883577257216164134061560722667887893398872672067411179452484292993221590330806040472460283652119299137714817649635403930248703651529765889418015012207008528152219630351941807362777885379273697712179512619941530676249610478334208347140790077009760637932382994245859443997906839743158368140932143128915304203171981050956252485233759936623649506733272102132714145966897266661432327675122417482439211355918711449337919304720678280314309354897122455975762255557522090250380261821191466441619156717168496793976056724711374908515457146894537531455437523228634346977396715911039278250230856729025952088487644401992527542951220128555168765215487965076919966395518989320360612544862296523119550816332979780713873244740086042324077206195505481033535883539609560462060775896886301511347604702220330698207158692307456165375680286270613408422750821755927743713244179963112160516319020017614333779575286650102978335940558677841825468520685298683301590682694864445574426159548526361164920014734484184669681049458316972168326749490872623273259116431679339308444403409673602967515450149384046605331157339635748077900682001014176388332323343278743637528293084190767124640080158681577988669329259330022058052994429276985028199007346598212072186792662437825959975346180323786825401576580618968219567192745127212692349586254442740246252534260813462984218625961163577071497714000089404781635516873696700881915940773763119760732307658128232517097081898914772799954597891207527428237561119240454997436349919456378201511820150894351444967333471441947748218320635637734259572756687923639646109137069760219865487245190523503362334089100326579969146846657005116621074676737271468803084753163474471878760975393170964616927975611800430349602824517120754874332965211848240228791381391463145916910577758211323912466589193597079955102647184564563842994967065576487512929277355642578709267467798253140116704233014197082019640469964093318121080032091447558007802742731056103635904854968399904735113233392557741301144215930813094295963209193738623467492467943210300207866373446923287577500123343324387493054361730914863803717311035397304673621328182419704506969798609797605849549529227705766685820869317001818069801138004137518238260165095324872749819751412038120795210459452064905572222979562461570928936566980737480993427011568845661430895743796969646932779801758509117166110816923429949619762351568946621221116189007819265064685162667397002984563474928034388734298960661218416133773432648450838550613948121469087090327312859434209195455411314221944252998046835279435720580914476097276371561892545141802456108395711829179659722513745552051772189336947389500470747475872416901300512297708244446293850859111987321082979015544384799408098782545777142345194194722650195777780674711211111639151532879330466040334820800227892806601378252656010042164068556456789271833174414774462164517138450570595370061446957243168933755875360099758049700510776661407124871571966296481668403090384272772698666010625536949338406638046763678547590122988720848231974524937101692851002206214200386465499606376521798699290330047288905483963937169616094935747337895767418399650056489709543847295356831743677387779714461484798012289281703673777229891896834471037413462454608826856244979131135339413625132439445087517862222700782562166736760907842257534373307978018934067927813005026624138908765179102951814749297835491804691393979306132456029123989048232302339770439265623813522112211771822196481500730387937850439083737967732168153872409905536012118026966183286072842844393895516333191090146401245119750881954031378625955199085881288310497192409687947856635736733500275381155950965987613567528689281979340337964337193740987979913216286970927783285082553309077320928964174267015936893521651760396766520898616609542566283738962887741384047329143475700053566334714719416919569216774622354121048526548015524756658798878817617908235265130446909997852200672463091211657194824952637408347276799660390028746237878943212087806717256165145111271686316675876763337877648047195499458369388389742936641816664173630267023687714631780076717176087774709577553032752625513684407869458520122023953639441541112451750186942460149950958512255205738327441457568727223778516926840707675456829725776224840936939591534889013686127457954241039765762358133251046009274730217069594642069949944366744669463447277968592601959887280794676247294055755859463629068862599253132031939855731541039631809684582797350581343872323784585461574053081676984792784724316398694136491832484147468167533751257377451916284657860378423745420094651293273658913075225320918546560650573864064464123831534636888216456657013233948185536128257690663274644248714900253570428443346227550694089374871379357222516237321251326118496143211099538578745411018064120719739516118727717621864088657119441615495907762315896110653728035117493036143223538948709999032575503371174712518146984278593382492622611613874296922007318358502059156474864206293068659469123886484597667158259698947550979927412606139841356283225715882637918352182503433721989312513792065932674746865210160166663507483768187018442813086640977623337434087479669481741053069837271445144544312642852516784778262910034429714476915803265491725320220062040293413325287575276615802391140536648422003771039590724654111629991061833098551341589362075112251496004952579215177214558967420476379460213675086786142637920048115253768383143198468552332264248652807651198902303391219101572071225076885355511466236947533553214712219607464053225102789531101293451134049008520871961048815445518893168311619391449399095087055408835826782534600319741622981877206597814068195025416326399752694083226671700666895965217901237487586037711462580195128284159928465822101745175768942402708722020684520201908926456400826552593489097228495018717082359097902406315953594568715314761759614514665031374890470637705347827642831751225823247231939092451816582717613722130393508074347417572604264372681011254513006260111051850706804249768735920158079274459787564872472936216534179853019179276482462645301363781363462481424519613865018445296093190882625183068557052983520919303468693022587359522129094162936537745289667171256424456238589911565742647399436520615692893675050036774049741901982441816120616822870654394123644170179933553987688700371378269441304948649311305201012825574627144827801316787304323151162664663228735816948656986712584268449333887829046308306560799485112460746733845596130692425747883844103485396860248878944303727251341367204789531067132998890621872071953536527210097062925745716268771300971132281628590198659220926818082818116474467566093117994815210076923024788838624462967762750455522334302238446681801889038892271845625960338716709011098728863932240085727488287129032818096634611140396210063024690575721535138869107118270138705403521372419859794600167988282030447070382008917073837330640473583614406478861155686620655983227178401688665236211480874304344599526117671603433632317260006857174061921802788117097749883283534979447794692377916181499181294826100328521441089292893920352528974168953855319712253129925040806797006206670106171012509449779934691025008047040347021116147538329364160696458690169870383038132387414101764182435464800686182074512116741531544960486953907510879248405314213035125173796979247295764524305939432829306301877156968685524892600955185509473033745514946028608192950471493841235318665819841624733626091379834161878961988056216056075609424769603196047392538947338279124933983071763334448458584917067646829308305454969781453005002969395668976652723664980140258370361795777840789832015775461421288503318738477452564038748337271142565850938898322689047751311888090459583208086236260818876574289680663129297795840644085257121498132039400465025437508265047512770740044365363318711633425504290397008619301119767665600617105386941084524791183465606286599896927460715490830824487328795884080183799985055223631341001775157314115240774373766016615006264396438787042888550878118586752406757918546728974589250910955645334862448650743960578357693138219480016067500708167110707878535796234235584436602870314680961403321113809821845330395314308129432722297398706837551465250508295774418322005482094834904218797476704479763479580054194777310112357951736262049707875353215862384490492816670454927688299082865826792742356029372083427012446662441949181539002478376195347145439707926189796173062894961701406822561605305428143236888490230909539023979296113667190584779431095509802142228907199786554690767853454552455516443270226627522865132130992137507489705807121671762226648269854706057031535180605991191474005348035915662300749324289277935134731830588206590940852977082612851569007104728559536179024594968320214231274488935640469532197971870449896959272553938668122303112934326160576776591411115852158565972438397535743416391908468998004510502340803998611162964406269816966068086602736024961276137591625232556989463320593987243216123347054764458178519870875838271426214396587996077509996681319637379554863169225218473264263778359235916389672991347088319644400803617781588086525131630157225174267484840627676673756061553971623910073921226524339777347707105118554553242686239144100428695063216654653633709607694969469882251445365434458651275628750779941986350192698291782607838102981475454923637279842067861047329759799996678703398106992813990702230387564692867160527236114525902633522774328223291092750082475176824871074603579341145407377634090311693966056849823422431781347503939358443660220730590448565643116997158329198881991493804186329531340011003942348685785397491954521533986539195587473575584884831815276024290801508748434656625338757484401296620969201369426795165839168294682951860514171562024453934982964781385712722584232541449817355733321151273001584866469755901625451855743456826011145722438657495214841865116841916997165186416785529834281923375745813216147924213493793337947313391009922551278514395951150456100081298695910423008144335991057472815415033261900394148910622229781801876039661986688549656829832612637122878915716829772744887258806088167705002033148859254353201909858112587206776455237966688238496558122900185494418899381383128088307483487115879182604701327230974998809076118319214463096748418111084569263603767689520852420912021406222472275166788429127885386383463246804706106138098433926011325391551017460597146282002294725379042955414742595856904810673831609752927698037588798746485608614425839080635237358524870093329030066133788578065694955648094782645462140148307047062077670983969262309233354714313931958861934837187368036481116605927763877444036549590692974954900418489768674295373162037140140561611730023653062839316359120403827051983417753202978149545205359032256914176966684201080237756167988542791089624679817388186354728377658375880787777361091934108904448822592061239834034015193783981507141913316001552798474502936434669994912626406082950703375215425258524602053697987481545591563533134134036399541950908782335167688502867547337744155509603596548886001984403758822729120740272825556763440195251854318709436094926705189055207474038498483564116385172242507200020991346700730926411904893483019408021652088093933505957938130343265747533122133465468764136081198829768280097181504441995437653322751031542778017073842230140509196768977901400467210192859001440010650189043354079082970667427127066538007739491322927537851751691816851512858600552508286649673836370043091294329686729174015734394908549942016304606979330654638865526089371914656432178142782242678066681871593891283394830688829018834959938211418753709116834995715609406242243224924790487007051919224318523572997351949558754644080583744949575797002419220462047789544623055440505870314524060054748358163776261781552119105144395264099227623698474605827779677922328837777546129640510833107501483969140483390173507623196555560613709801671723736742980698019714548346143548030281661882063940796924032734617393803803888351216055651913013644995276712877321878000442452871652189109704686771801058290382444531607881390122697460855566354381989112194321140884490991643848460822850140299791061499767819833162165084334228531537053340429370211160503609545440829835102026634631791066225213267492101192134325719577250747517210207698630658359146271339447899877376495899513009354205216694293134434658207829345568564604284541440461725489953310455781368025412200709184851844350440993314512230934770910449974240353138263830491890241447527788128039597430620396058880333615345207612963678367335645847921229924343429388656379608995812539328600671083380172979320647749358245680352063997650597441986406180268868717161948087045823857225521970975577882085518964589569151208117976272101263195108716844304602781554647659958886311499769767002550787518979431645247019908382217864240913478869448100669914491101743195076125864873653825763644727223284231499798907183114684850529753069443201080422721814307223499175964676502337689103670300582851131070930602485023662938453058368695759474024010076721441734396826541648234885621837309712580577156617768564177698141766272998095725165250703239494050007206258813779004467723060015130286116121591506942780822384740994822164516590098442701745353023369555895669083621672428167748992390772157036917681350449497277563478605797860638491954596391153403336793623126714892180761408278698129278790716738928801183719790128468176441312756338911203871564816807947940386489765520072391145599147283846611996779759677453553939879645733249038608367857336123253386751839008667630190954337278149192025179197121902050816259661026887514908673191468954376320391633786805473678971079679831320363198628345859376827274660844186022251272829814466278994101083068990898800850045560261038477766390968252762628776271512042849190362567549824469214822424550313742553729130022459199227250096346209121518778066946468072910672411505099417196721478172834241646274949027289826249397014349826215630517473023860131506717254485780327271393393806523490296173164476064929598132533413399345087257278977337936739269516432502330515737124740512252574853633040281055897468445009842888024710031393837038655751342737605459029769229806327637668031143275220149520067524381764694339339766097614381089127186580861436685736050808536170583653587525988482000155221852496223309813382815860614425415062192595902394309739187548490397443096161186376476020952621667307304951358457563919029546801951087139776558348172374616647158894811603587403106995417721941929432881274570141052035469420899443017144911051471045293767972579548740992969005041638760339436591354250007659799950990661015315359645558165871933031105270412409866311816587474469658933889089416957213316718512573060827038721880974254907544812956611259118815963587078269501675057594409849522299915694427304511673228060969860174980266546897145095984224783490471500798079859928213672285083041697950744410910165747181347454667672075995402109725949740892522695678255020828712899027834629804820973721394074165370673065985895684772438355031972412520412809513448201166769029070161867219188638498788899980071152932193113249398808882644144194615631435921171357538810208196054910205408305852422609476502842989892764114675887686398541285149522266681224997267007367884193124728971280016653228014709434655103720552722233551099858284180386182265051986069906313278950667327113782030853455834412348952237263937555173049422794103334347827217363068199779675863205449796611894241369722705804763401459033512669820324143316960065776477499350096410950335516238571733700189296718337969481494649156747008470568164538088372917994028193290563733234768327238708246410587981994197664343645806016642779360104195396198556552149167590044759862817113135851730848731113090421870015667732669564546498164726187351446482414863501776745782986527157674243875056459849344318714488604402392093776238907977245459018969523688989862573855406948674621447861862473220165878952624900306717750106158197818634606534987463336342477839094407489118062091882341948322179956039635799177513689377045261202027214477640008126427394545809921977811086205754702297307586958986684530595539747867077913799491684045883033099008477134378867169787385308419646870905583145002353741987082861399102298552052188936240914028552961364027077938479717854956164820907395731388840500071272725675109464702551627863029473796064509925026239987273426562075224034090856950886694883833711791687708867555079137394056022612541604977857717539884653000734884648615655760323198748379724523058847342850075275807925837733585388003248875850082320610404330490388953391264640594402608442700933436488172517776251676444003753796428983599777316661812745811882162739303677941517444090544570780945205428407045739772379395491383736657741108270151737385733550550998591545113344287034783901869933671500066060171481644001255861915096405375496043704372121163560402068980990196007147315079155561701931013081200670446514989582374384657903468647264502877741616903815694734623772273707630877453257597331819435903167148053978939492331696417071983712648485555082885619014745107500646379382899969168282689325871200484530334632144361841421345631506292523364016715538889972186725711177093506568303867233875566792040985459987710510703538470480756468901590128162671077957326832297218415678158602297880130144039195223469038801475860674080498164309921550881601557872726017345693786293564245273544307003930319620595910883778531188348578347688380301657542157411661805405250871108109057384957298044086511155045487003584511583429247727105753688091170013020072331446820716292481077374955898564824516607744019891022036346201980373829665650964566286331769449219147431816959311343529521558651925069693358699319501828435439827972501138874904841235037680903648894789027605902715943896991512311498708972127265941900964757105062755492230627451368936581926877249003925051198431452669665573253343136138019310363254387262491086897275100248056262058743044643670676889610345183612376947998896013711596139500735415408194706158303927842531896353797852758228628053093869571292699930038353419430130833558754737850971074983994824885655884717552656233779777069625715667244396554602966496115028104519425407123685247542444162359080517702229921179916148815413390255293563931252030286399617609380849166340732878601857166926400157629008169435890616435512900461142854056401741966459992955067951202130317444454334470429698520703795730187724353478000912719463638480395563440313239981026218370159092899409626792943524072286804155434279191045491759604512553772270229164516893981804781136569701331408407409891192755564818998980014172552797587433474536401287290937066613206729938686649402856945865001637660006477076135778577341653979567842712484193205576277651195349979567101805319065141429129763374365409878384309048458196516336800655396578074806157330846829512919981093196581425567411235587986485578327033461779016149153499798110761366732723038571975859217696103117229015721789850462372403352336842627567737368806562496284402131107056222159402825567442217901667783126680144778112742988483553347871725810902136201676635663655874273869351743217441775600991967422707445797432294602428025265281929360442324169425779459404797875670042406471811956120562283073786976911694165721513323773465804624280085493229131933593924352239451537830273018828796301928770597055745173199820413793135674793952832668991366055158322875182037537773798756211026103272298696631703552171227099817498894861691452584932715713812285792396818158397525187776485559671860956251005326973001706866722523100132749512378110647729153999557176569705801984154781033891282550581041179456047678938407616344620949893307926725869278959048407226268521227731586344700554879511767449812401240200366260608740101958619862299964747789136885404734404050107543825228955652417202367505228582620097593484836013747574903563005397811622769353766436035006782077811527181231473456547813847325797798356523863789649878787811151503891719482597804054480608455748297163319086001881214976046813677096503842630743867593231793417309420137358791719495719421668587198920170827235124438315125817323055266918865442768816678678064261369918962691839860721301716293314959347716901401878637288466975794902883030337203240052823041762170653928756272819914379220056267956135010880800010004398947125726372762570074163893631388496283770162489501458263135993145008630651157531761528464198883957185320255384788313780113738263205077972433170257112667799178784451996287890285835256938647653298354209823671437019100778833602050235423065571550482851429816748101151085930362251153174955878222540757088854166200914508981183647158195376451791311648011303211644843479277657598984702802289253193215232376641250519785114608064242924024275627561520191605690629607974320226731002189340456083871377962149841770619148518611582063269615174203931756542896661333994735097264836063557308682252237999964671395551582363909288020059207356013112592587827060401726561264687055552810979259115931968887736801628477026388349745403565725049004356978748256501576185686914617676728848832725937548901418555387868698304242202990895172470037797023886246566527069089152043195219800446936622004329387216236646366008301172088889129607248179134554900689141246385608552076758713944362010636185007174363931821681457559309209784616202180613482634342207294941976570791866845988274196002247158553207550674284522194539531201955271859891466456912764187124205571054617882399726771928215910290007896182156399693418375814727585664861321445608293695198260673240403133993708962803012624521687162215226194891250533073486814335996515992950632378895917220506563025390489968109329440247964303456349998589310015621879033314190491639193335403762869375994409122231004281232457664078287272352061428559449921825839969675188738255271200875901862523962550289653266207478713054643149922556873195433453482236176945233093308038465582017259034658703213457017230934780601903899731169311431651970207672604059914369184088273755575748417699174307603533468530933713280011916169330193282739089599741733883448394458224981842865065748938583297123028415469691935511553934803377990857709773330606263719904100976674902233321820518442137177690359388090995699050385952397968326091216217690582625995169228647162741115179927124431763801987706904497910046954849989412426422211082656135797452249874922319197946361390359873068983015221792387745991581411320809574612670243096190051494113704950646307778273019691413006210102557420877665025028211835648003162195087979322249796509881094487210646000114787821679635447471058244623756476178838023204074481511905095723306769657845190675424123846722780510634020991247871000110387036113823956199845126959626921311695641816368914346431040399134948374262428358866689746165728722724432544893515157183155759843422031357888471339552345117103947521912570032031943162520773313280101991077606801040151705367365107961342442419960353534882433667647106967771331464319045348442076896037925008637264097798780282953489613886342107965555598786468699317176427400850829262475481428544184075270136684843991990168182619069142223843319002871340891156828178723203342459716534582981035162039867962034633330882609454659550910754296397092813613627122326962125759911966116290908649118796591490834023151922964848066477686687844027842062720979452348352188031926692684974794578737524095448572240487854601981254447059350043842460276064910766042373834141964278837692878939088682914124340433466454169351329363926006548367397120516689977113447134077267671668345221924540045131326945634630021457542962624151888878927991423043191850047989336413885903874145651417815063572425874927587316222004692075299769558080553636752365089167379471817117138550985249602088119571484571704447829629777088325683848196758932353339402247004360030885370675705815984861091707822172027760660689946041893886378743040068827602256252189635004317686570372519964362890487946876425341295707618721977277044762326150133791347006947030901775543951635363388007307932928531581422120564997540659167128517739788239923556123262750173514192596125203818903313917386043147840905699174413211618570427642264158989747155800322708130219669673937083022220720818877905749958985769379987409688959707551536132093742843151129505244046891685823903293811910472287295063715859237758425958206787795547944300623352194151840378697822987403420042233999943709723289949838498420145639189077442251188036889587867457497940734317809472284430897741737518313150563208075280630265979011585118056344653784519467134403660627642175481865046756316518004531095298014115380933690870128402763914430435464570241087620345535392517985291164607563217363487811494612036591931324137360043173942398238189938810725697304991055665097344229654328790251486181610508775147482221069799285822760387601158539072893354311566793311265617576628309800563215986860893245090836200347171074987360850713396177959133343409098754139221166874910509399392321159619002403802173803450749344482297854225183355142332974506226102204650865983350074058090036186562308721833655737902567354320510718669965555474194952106179454976858706189970665755466558909878522648179912927372017905561588300672066387602295755263349034914237301941978746443257951310257506567899723873743960057039404956875020767507555169705768677604698995650762742763634823818406967662791113859470436494525192906597951424513959260636813435173078073444003112330369446630011022325985466884291102606905437802821899864403467476206513269163005888441762935663325999656801154521321211986062425848299461611835300496197158679181549285240677166088192931468882138918071842731302608653360453343125606806272143190370643224021935190768378973588927344626653899915246683366630385332998413931575782457862289347154502868898794308439080241746706264579492356742991270556257000100339867044800572657986853262716296164202515099827189868214911953137551759953095626297457549625555691191221119522352755192041367409184374286587960628734654344700209204876276227020162294811082983306638674003325440558448435295356750127568864042672559833200981272517826602735326892494827828329203154166623797805083226137419337009098886228084637325250756884488760045207024393501081427611467182256985111956105108068512380197510709069915997570847518806709596616376261163408709973370525040363053265860349230467788760021177709779782459609035716284463305291773021149120767271577868940377555956322718092233026682051198209410491512906225971454844368353144464863127713337655592649815924301473825038136140672248539966057738336502227564928051024024735798014337849646470077066518289047194569310664921470229392046565111251508783648530059854005431066943764307706209202981034435749347478218841822868021625694822325109978718942474131212771137125542650015279997028925528790213252414070446298742712806214396722526477374605749852873948056254198727816887970308731275471550073846520715365476704666082122312694057725894510666505413990235547988478101189818473980092667945256331776571887423762436999992721971882701701728432503860663085171804578874338109390431394349452895614862018100028835241801606419148493259975208281174752886162224675928364392846231066436600605173703477226259797360796596745918932743668280305823084973131021478638664705967162324553820880283256737739649504767176708139605051508946619762063988301766409614553747032866930586440856925956364720960810850236975893289361993203091871853664457573753762361553173748596805084528225747904629721807143915306312079917923043287127103133150763141687795530690938282294808339722847924388259776850669721736283277160488952480824841963424855640475311454934251709717755598045652165855736834418640334811368499437636678405339643578590860035120813756351289865195390507534175501507725183652954296099038398123193869309770626849758629849613446508048684380030002636620596135257142736434527316646961813488056221448092293905630691324702666823818921990526050009406900364730220753294544120434527302449688894232827095702047156812039410748587032765764497305238829308220840881031110946738981450659152291162317374999392264167593972128838101847362962718586054918813675794879135229781760780782757887592847235872829603226915179621193820357320861133406839404332794407399740139919082126912371655418395783498246504860262210722227406434336731683559542550053982175882902711185731677267737111319966621701701120173128981400077553686969090708267633404200695509790215188149739481730308921271282333725082981721703133278274924427449039815673211157483724260772772522786410881898329372402165207738019573696685383595577148473551344481882289927239766298913806388103977932872814313889043871920472474390624951186398684148905712733604796645467764163555643127245506569090557547777179103631901455265715356070428260188374632761571156825185999644320009731020800200708851527767386731003183152502839615383185825935804673594572015099722977637800822085441918690070419148527919161536856825583381526139039706991843335651995565761565461137772657316037563812485278485013666877959130277364369326214048027955210166492875670460630458315028103133901653372653946291429202645546271005403433739342333874438027068329920147192982782362873397242262777567940189075867889169120110608047556496176820303079446240497698788990350187347819964811873693151874628868782172518790904238423542666505403070185237633038357791865797749989023354717844740865597326799830650183665145565589797239804767662803148306974470335782528411377884289400045666341723793520772553068765658745844231317447290694757390006999159787170926661234286611485466006955529774284030089960776134338235065819686042896405676596327149015600194950615817046372791283464202558182884667871445139463344907146194893345932903255204010172234116594248919630635511987993352009275234879573187732574258578708540497622522584594133441146283064166954671912503452960638339508494285758486855024770222996532029734055799506089169191158666693388523184300137045489222834336710889662489757572900307852410643804208727975089518117058985721594250078864187142613555891986857535592205209725779008428322581835498369403165605706155006025866339118507535036348374929269554849446569543802821536720404916424360654483846464982455651979058850091123268750521097882436141832547244940911293036549040492413606725766726683979660581708766897151707248921213574762190742878070546562245199787875207827840398807558055409753066378769455866584590419092580042326485637244549160177312291691160832063669435742299158296826089696017424755125375299533536439350701759277946434952874688925905064422437436758557458374459551527703950449020873496417157285353659706224243260672771682326570046384941998766811047122957452004771327667173668033549550498744743097815495240845328142360625661068836048826074719016495185220101666533371694693712393464653834329125443354759757320733751100934888190692075584847422810692148041449860472307908603894397279580430840468023805638324982172763868205420293289679823057535101619878470346155096446429237719706977776240608211787179157603401323525255086898936147963149352877783030394680290864978598342785494168066884939958555608809156840833513696732151577470085292146075575433813950581291399653953533789930170731693938385026433762354615827290226771752245965674526539722230629583402329930886673305188971464947444680547046077675276859412887570261341948970563339557229733720647913712813650146649963910476437520597905070693396207448486222612278264227079163934458419627031743184480172811873976592160165421005059982127388703462281829613893109797920044853608397927371862626546094691527537899117699416293376476552692122040283919081000438689625661804861489269431267101566072771243941698146228856019184639547523360136486148458027137723962014998573846967418379642571711651493157834714660394207304815362318027027644398897254053110744793593976729146268780235843841029530433065183081659331267309323193692783133354424955220257459460887474247769588931096279544736765278821205376540069775120282462069493665303180489178640028406611852678370854215471419321823675211029930655473325114376390134359519719518204347175419950054424200601948883950281617785432575620327587429545493376603109463681608853066673320477093641470258726538396403418848428155843060548978626666172404527412536848354934001338270049937220633198697037708669816695185098266430528442012466648568663990818414494923114759813150382945627179334021915695203340375523697931230943721325990919879315346532779903431863060636788466825151231686084764962105472304910267489756382812390871980106786899711188458085680285336030084445052213844021347772929113687235334609394020152869333275668083715527844745540032322404015674989655921187637297733297255441612136395211716432630140167833940171463939683507063309518542888592574242981351768664082933950026263141113288081656689063082110611636866685064595869474705169405028767218440506123566074570312659567114282308776351991402748405622984735326620932874609634219238410866551724523046071398269661532195315818967741605499968905651640514854501546854200020912317071682499624184607367705489165246775009191498174934243943883123323934396126182250778813150721466072294633059487558022343948576370303241816137092481245419610218690203796542405928053991610312539841019907049663191566038601651753933378282079208008390101630013532744723802560522968747111734200896784831346401360631676904183609541258718494581846793127753260374672783938793830607821947411923866909399878034497991014431559052660386404311414507470213898255547327572198416269541608952290136556337142803249175276506656535976601566892989525231072132761902277695266758390168690367696141394678713903438683976715292665389400247991553385849507485320203213960255983926902978898170073509220983411117196015364113406135468160739193850718922533559032117708238152359453408465185614337622980749752411715188740102707760427982740247757486701776250232326083206878860373535595690964876110234762752879620051763436718265448133405365122708147256041664346163436937761265268509277616750338245667686781340445784730927040635146377631645372036392090564123293178076186786223536947591879832956923500249005181262884563647890675856068392026567087223145735237089196186448587630711524999744980729740080112781578841494001307208384082458037315021352404468830516407571752003696205890269461887085038540830481678943622076940434396054367148155798720553187736236364689512169993664855331219851751031297284676397809040766793710398857961885439953619061066675297853290686540247927931166057669778960511765866619850817011691568588102609384435763120805040934245502918440939363022689397834846602950030080512136046604751810613902604286719762754178302742798492921083019688915301587073288357550589287468185843921852737054885020672414273500937028779855825941218390270764115927839181088186464660232113841163336038969115843360817054810993387431531624023639819027041935594144634002584341314924160636816229141210159046693555555251395000092645734812037106070121600044879977021559625608925783530681907638218939363897422632389780072254175335442933396824764500208001928434133437258103585251490850662549817085857104637957837019381053452247432702067720479760524275619995396318657429230318769172640242469606020324105269016479976723986650133205652978758442928433383858906830369389722148479916488481555652368755414616850568427541985299982948075257132512872385674731903329371857339674437774210202424856983031258075479050963422424179820251789080746305466571815655842935884191054424077832628814496654725724301807259935714706459349634834894197282106835964149485437977841856952059685638538706891636688770150385734174821976994242673836980970142169372936658013606593274121228922194066753024812883928249718752196460186246904244029845159121857490975698038373986326080919809394483278111752408986034766349216081277692152640134167496545138494468828800369372620553417239376393630791366373490216509656828368222027389563192657214760990531365396909422298473487370736078583765963233426353752351260336795193763290751436050130815033221995216730799739864818966525514531614500887225026401545146662879661701824563773130724138535107850699078056747541681736770755513533490886011542609904076552554819621077667697297617347607456086123257095177116905044807431992124203283945806991710144088159039223600618466048611690031868804562672888723905443253991744870724011206788322178179879257361566411733960858773124337646301736931047576678788787630313929611741040338968555291565529590246532095392426478086989054712493562947775405323002742506901208950520664568919132928566707807462302098061721178826846581894666339255267242755606566378694086219034378061860470593616638590512535633443293571383325742817209067568304911799527768485603867033812174543183262219177783312836226836861727798228309846899864292743263948927491739868782395547839266914526717712694952990183075583102237666580453356407329648762707347284684539956875878863460758641013251947023855751323202147948384236962487899398720842349540840041338130499017166692187901957920367930627358808207343178428890091695003821071523379807205038597092241274468546473948200909807847550963797365784941469675957298808749862676792839823183679511899640295406505064881058079344472445372692400608845219048119923977315618366275090208946071662579647149287100468768519116364666327915155636708246576995994640179223885024479892715286965632799542624617791496973565863106212592339501738330137099521716181545510646796239668539992224726387973299499006696109808012611769745598419538099833117876562409893619595936500578319183834967439146930880841597691910728365197688571576221361070252270739030256324938388127886081079305111905060821076338790648642768395290046304215314736609385826027709281794874947329970375890983886762764696131377805871512001363291871207938150618950508545436473233281714062788831301536693517304603243428232821158347023445758810104372096522772441398636749526590829464846936616151512727565108467101984957967907842426469143686253330861715830105019780952982706641142125850187774105460497237314022498664220200204092865601590705487055261233719389999342403058675855517287692438099413282921040713625665037810253572391842896530496668810348885672273795471899358108128843151287591927147678711159136412181883706803901970878502941573303352158267798187331914805614258534770237560962473938230688907318694235863048058735196533946406483899407309856001026672618866749044067823084281438107052907219965223046180390946777218255233285001529029727596492573590743028167594354604351060825735248876201731407005836096864875643841333328782623132832946286098706628351288903027335387524559667774483250290016437219203811785138247235916803906333135292140250918698220206502457775669590863986133607702972571926742633878059851023839988269777149883482171823502894416208293273795660271349132485466424847521144376556799429584201347689912065537830023699915044208541148929665913886114490924439964301750681955243085380787467199264161471259713010767491768250346079465499741860581311438670001036019009244916631069560428964644206295990051610570275268593621204844728012762406224918976180275588967312294240206344491216989639727689705626779287204071696243104212095670358783024353076178456181585026957620339370245243463367336211194640394557613042087249843820459494671646195743361993773434618861479856199642579666946729513863337391148340554895348073470687131567855890455420297099408414216966588673045392199219108363364320904259814909490138762665996074332943858767503209681108489552004054680634072211553113418232853583190476480052282918106135789953285583449183171597921917023368889785349943930373909618122568114897329649538407687136015994950280342615794247677643586018106394650773261177658926986218224112339793810980605108243791541111694152647378125540424982134246033232536749375292828901975630447619529702561457277886826458717495617274437864306677340056908780380561190752767765713776244639795420507592822122619056608137189334587757966364142864271712435845506553217537598009970632488708559195137244239278353262309960542717187298301480818757411980474990380542768052753729286576153609125408737326742968037825069462456514362508461082953454390119484754159899547105707045193703908943394020376730070454918292492126189245238177382220042771872046474693646992516339759822995511062706502847326083234705152783372950671671670688901057027750860614861636301196834390579977019075117674765560217548289296157706626625387252100462979608680666473628397637469153601063278622204010376537666084880222098728671062462205934475298358167334449151074344858732744407965791591853304957806108705881756722823218057974142727476645017483213033132024356322902393149209956203038664991837974333243047217779581120570324214905784779475814290926742461421605574086292482175947526659081340230640275994944673517051635549981770153604239964644324746631104335166548349409344346533208573698351147558993513004781075079782363783918196184633589548100182444770615743230752973867200460249095034104705724835435721298082716834989415370329061911138515784415154009137018388395660483359214585224707865194132106638353896814280830583217326688782367675631662435085190855258067635317606805204032812154131391242795972311667363806734473442795387268779361771314679024567265137623033680050884107700695647042950048760712689421057479066181525315528335222800785258923822516589532311562528142743691534415628985015887887021706500048445336889760732232861386446329301158920139449211801479934688720230940436006178894118699133458141865797296005145724298740102013364485651788922579400846532938924220150746531321602961887041236169181028590612686047031834624654629887626021954833977785914943902810838950035439154530890272023535970899897419923414211234871492978590296189822427845844521313571692817063256886268862946049410798185112183841090616612848659909019675506021691711970917351936401308585906734951704791916923376179309386001614743508295750508348933662976392988085941732062654021653978306024058363432510606492955161825018365324037905932805558589208193605950399726190029175592216329977632234159650544561798521211364883001494564363744043375123645641076007295531465418925060951025123542477863781306172276848519053167646558314544864210878049602696361402675045188912344389050225713282416970751259053624801680217695366797446862478404792539666124236736852850529971970056854784537632422400622120266978830016181795235631819002855857484437306226501462137322724783610520964883521565783322554802507488738850901161082691307473042386356924136147881075210183404253094642891238048956767576617000427561147169009016991055634131849923606151329693566537250083849446868844359810770041226479198421004418791636913766209439383930817239918869229970807396716037273579215031969207928352318925003227866101362314168319427284874154135708226646090754423682611914808596236511415992518864334141248331053179892758548619692187498821213378448270564881966999449519660667279689600749207844939999519785266896142598130434857207219284112121023062289971653451722684965233316541620414217124867823445665636515034422586846621109057959352468457598728613962201618305817500413340652204189401693114849732618534601350973422813482235417962530421609020559319789915191863553064119847136428476570810842723291588974760548721289112419729794046980493131018131306638928940501367416376475040391434037402136770159203317772728823921636299617669819458020426052575954475538254507381336316543795572501249409620934693319588434165605186225830095080424214284732840331464398591666515594171691731981429361676990775654112527242812914616849617557803946205893248070409461272347939648157115985898293259140023240235190058948085558115015621623765030338850338900399482119753156479697736236752712208996025180538929842220291835023211610880431382017496354860756819811178264697084195881434827178606612946432842770663909288720646712810864387558032735277701591905970888459685880178923117476525567042888124905027334226380484246228425190390203819544081582855328666401365977968068029440001770099005102654114807266135299832032661482881772477412759978134347686057033368247407617216510703598829459736940849427552827031319665521506047446024707504341021648334253278625123828309882029862371257206252714773962505201313800206308665204997233034134364366480071574393437606157918924285635413180731321004945121597480858804227186569232825972890560748519167719152499862789176558613544309864720666624474057273926917215075028663452839177488915746821898255619327090036639108675876269073180077922687886019765743829828256208311549849698448586102822610401393542005542392214823993785359147713418251190397012779273454806322375938839949180017245944267571857341522236908639100190164082858421661069378996581448949632287395601993257557049141848690119807604706783533713548003611933323107493443664950547052360669143061890143562729379015451501804456910895580306925172682407773955846673425918246147711450301349257646811057835261004318530150357997398120964606675905424987926467800611444509423295546104600756498362244385368995489756418767428642912476915678201662362556690594370348921820203359807546584689699103384899383349787372062706615082830601187837519691413232062627483646809101905445903395772487472995047812102791399058748910891038597194156562309690831110183401887301560144051410284008804878038010020792801480610337056670822799340591026379515701129868694526445314209129749586450126934538159718397020888313715672156685905509260694362999921615548273291963074231027169613008477350516915906399962077599194719984752005118651638112326294690816156063749001395258786968850128405142956010887251225437993109518508754504900931502406824945357546509671682319083311087711431738696367510124964484223995356404405815451718221323690901857193504915457666905173036285383019172394322020760810993384198029628390979582197431707655705184141617735841832933725572752036985395792337597748599058405830101890007750931738376539440412514893365983145525033414513247441371070668909222620885985818654618160435181247140870596408277416363605568649372361887371550434603077378795446695902340788881177305086105167091862540379830699159817721632924313240050922004164907711740649172129375132641209217646777582391883289155827865338749025251211242397870601558169433500504466645449476430617189017955265747458300555032897206399733860471163498268686176989376790747723342356467207002714297684089668848313326785866050164938516773716390411658364672646026205735736152637182846398761930336193261643886548840569595939612872922988280930955805389144527337910163043339746469879279614286199141783097187054665507378094274319453493648791319311132558779038232733965731763796389008944517069425901812248020869122797543400934574237944474780140693620918063542440785860336685120131770273614361555354143639467838379421350073378103760462771771889734216104807458061575219109925977762728213912473745999008733100443196576430883587729898406407609705155891492213373665836179870762595437420730396515894130417310648597190748832654062415957571353049385237097135491033647767542346072173912087353390708373739727204459915286699860147195879712176215749146256108192824989244227230246289150158154729900363975986734786519937866342049046817964765069229237860610919452451102056267781502954263062609966045059775214134853269765991097068471125933900376770900716902682653014422431297876376621877532661185103441764561420442462175229198258290085577141985859429291614367178368801407753903645395230923243184225701606302464171878556610994795368767300679767990748965785175676079244026814579327974689800633366555056881376994286389159305045882307152144749324618601076593129878756189568333644488522474472182103318952429133477147615715638774654940826579934356654899048406428925334760076233995223128852313373166273319607139985336064181722439584547098117906491728565007276555080918305769615853417595203133895758155370470723967981953743704770322264535630752544420618364212599033001815627486839893389673983789922033619967872394711607168372588764860862284272126000200901829867418637630528789655067672458286508159194457259156829736474240102169021610377570661821347562180178002236266473921159363348086647493901044070157536036804873216619327201665055235980301566888540012424571750736817068235283065049572592062670898035922747253589612315959932956746917196368674767333260586137217339205002613854477259730907449117006642144755267612967540242046094663997975093206857350206345120581332774981308418804087381640199103011462438882594664217455244718861330217141232061310256057133341321183924942921507504264309160223021448058923705166901079668830478824826618336889543971720447927297833169422233246891130748810874273894146416075267709197617309729461217715472910652990036504173325484955439096614927857118415190698690635500743632536965630895377192834034724166756183104561253591580237137799466338177788928773915303860252145627306223966578356805426502169399809283132378097504933902255545463773863705241022535990587335551377314866962067574781865903817721005079676167123555233740429910108609722092539703298449454057291385142652064948054923363759104658901859757934231501436460731982162118441176518178675783005961301829359698131131261031858405414842340731922474514106563465576218489454241554892231841878871449209048304190469137051326552745026914775359309715421559746008757133189044466280082587386796527704542719734821465154325119741300830350632134495381908092666168564417089952378361194181442484934899978813263412059558156935559872264388865398547805510451132729189913990081519981072619626682794463459970425225118125679247539192063261900403124907803224736327373836017844922533683566859770815640122144112300033426158779828315045501402150085888648489396014437990573625188112642633146518338801545530617152870728710598679924960436155538745269263789446179834910752875537086641866454438804175171996021598144940645027280571487684360715444213099588622606644920270024947154321676255698606067884397271455272393625294136353263750758793716558424129457547309105488567607460506066784696771624052568500021139071521118107104747190964529603721943433264147410614766830181284367695805153254212291482973954658251867718651751138559803807521847558230722365039569461045036297305266337088441331182848579424059728866221676698237478391857739655316134090881646928629426427621248865033137670772799101346866020023534277326453093669136005855538788749008597470218846470326583755696273961166542268539821083349249854630177932837948695384467241865527752213652261512896140159940243437948907815655299908597821422178885392433484898157558591820810643195277067266179973915228550558049887958048231167851433458655374953072576159895023493662281310411370187411175653198046636233823297434664266255935262113689315245131941901754152380691631664689917814315790715257876225432824312572647908630825621730743470818993162467754502621534197027857236796733690507020353428508646359938828324855061563205479062092374467663900604473612598250078039062048020796468410813332125165096390391109402191391483565220801254867519059802688395830567259492284888789275561938433043113443685277038356338588715837909027679460538799569940149347979659916474166291677156693356368306613933490952538768132392191504831128755269617137623633396640041675541344036057904894161353680163717242565089500047758149372304040594951026797066008261946735378235883687839922272188701249945626359760615623702651429962307230822263140529889253052637438329059172288586668611063568666794587761244884279313106937786370515982009142140430092344702517051101689221742353276202290646309549021697779910526196870414958992584207829584712432151339837741286243530870043125269000687942770966365362482193569977947292131391809041596072504181544744370302355129170520149450077595365939368690271327562581880678807793853644945146924611711609396762331482785477581067344958012402475836478291886076103246983065375504958381226583750818579970701951231251447521933035332028308333711556466861508433511944877710557595639757647057625313258164439258284039972476630753773101870194953569398822728875878783576255442195253339900815146094387446873029901494801948385243378975696591595633415690292273274439433214649703256478960090805480572897432973612415016160708997216111255757374838226308893530950861378493089984256105838937718783460319669473131993773741939034757777449155034340248713862427304072750818505165768938572896681063157869068771498305287088661810414506035009851997909699240972447124551137042058181524623367719676790026955057143297699664757109305535557466108055245673098673418405303400452802539254201700441688353445794610221008882846552902797149014240410210129687265490509951775389443813355816269780920691803321739774074551479289854438985563366961937385091424685434097422562276053886526270847146714354823229293283960928189479415260105540199619717209756172956703999487699137793203018614074538916737011878984201144673851151948406768774997437570185346591067535900713457268309620190871101391934824650348702461188863489193058242676472342928524001827256368911171158747379525594541300253994454883856088425908651461960390507221218556999073150750039584052706302108289101138326774776397525289366460551605159013633996794119890128373494550379985749137345165589069256000483292869557826276711611067915152215393563841579454519949968194063895129950341776662278644010320352167152653635659187866705875800171269928417788975616196301288961921642385709127967451835001293635485351534033484284356976166644894159011951371329219205081107483000684736492969078220894684739701958055373031517964195360079191000494182556508081912321599660629868553596619946980780752107561718404960952599138061153076548668171904038657905663668781477358785515455801876467444385693747724781240008510960503749862484140561091998486626072593384730626251034035487577311975105379970916642413321877877847918311382538383112722282537914794153410144982984350235153123619250869761828851991809673902501131340756407587819228227819992055727114951611284536405526196910719096243459390239395396252755144384132088663851297131119435736139285136875615445930388996257663748867393865256387594419026275753091609487798894820618653370365655963962247781307170525682455862202897566619348103263406391880021124160185781135576750736589561108042398553726364016613069163220545839786240831225090623139011974374305625973837754345187523709388787881376627344536163305570852759139460165666440142095138060828266709821309766562616889818269319161889775539127412423849054193038740955144231198685345349081248775563175974642166210458500681419334425321693846615647487288382182362813033654919844139198642918562064975075539557626312310913154812682120246459190348971462766355753535781074749809400144495318361699192793032522564996836475786892959065809020864509767155661546559151340028701717096654291531432669456236714479826457809708086687950237825481763547870426035352102590797098998422537835713885408557072026149404003980111898113992244702458613250429946814234379307896144197996371392592486599870178702638875864407645459502727648409612910109393941777302534874697942787217925835357729446233601145348047051991172535113437968544419128043575769626116814805222960784751853561707985247788027842651034652303198479221829955095255471985315159348492015937449781445104851602038848253250443591335704352873654762742366176324715820714510537198863265241035056389651801415919835454009357588800416884516908087590977911766083408850447962109162992971441780888216726792600764995802436546697391832548567048709572143286208988904065889016195152636790782767543974303260030534897881592350112989821273766698030925878328179730843193125822460581461586134309686979354189731903046900833617791129714810158722594691190322592393794682409496365554008322879785470109675566490885470086146145061312788620466298285024481705837903506672950374764996816101614285795069248305514814689666099487504469150114142298268440087424418947232090557836635101771430837564157004779711645737104124865118758516063907902380333320722430723207592302395947899224550105752170496848629702031834561940402367864630738417772396410101091297046880316284319046945287520509749194322171961673197850350049186666082285118331407936562164032197533973104453839687149866159296576039903220228721135853019356220974354366250783184864740790103315183745800961535369631571283349688821766130536021754969767047527310298753744161561429909778229376059071857925232659074224225752390666744330239621492134841782999618774252829925141173298829088837827192043788462291072327954314392148126609873609563733313710910750218914541502665377851245406961764459321276943024323924021766192502021166899872149921542047339023740487639682386854860075408900769321186433738421435706854073592775885130794103296127078701019445467148424302336199588753788199051610118146353851668997418860058891753640164269732349255595888047704911145200967368796144316870976782940790593090659751059770202830158602504396254576629263984607081693458929837977240709597032173584404904047116611384692342991051409219717132414079166470093885231676838776553843432280200199042576741717313573053427441340006157745711966839079880533968733565908003603778978566291627324874714413705528456167305133675252753860042117767255640259367441773007466668473855714327948848655588195716427884077244833801303143029487585801274224162587506546226830548817865436229442230482077122699438223116689944827716873846935847021353293148754029218921239401206565072943003696220215675885689274136393982924895034831906657950408702960493290558280279848218490447030489685615911419407767299857837424173393140928723185439445503953775685359201814265015830292265612419494500673577946698949186410583699554609027188058728798026785535115742373159480397371763377598964755191983106814068138243780558039910272533732191803965973378815933925782878894127370088217981597667902828976399665674528448272114887408471419670134987874065582530902637432429295825444788786584272069669640690414184109531538628579260339992030352239847577096262344627276855504237032202604773112605218940404250302556076407808608771351911429437976468419107652849151080778430353468282198137670996703794366238919924088363991079682642750246321343994797947662773947055468508383495200596982908349068782211650260864838533269433495520921233166889831537812921507002145359067780811292946798595634758264073972533522555292050371440003319280666618967186911915877053058616897546617937460942296259392055170454939331066227799828522428290930960031689695985933741172575758771716932870254856989626751857108477008812360312712261269352579223758772962937607857943292762554501444684480017916612979066707811230182235553739321010845660540522179527832210710053098643631877294704517561733075463332827552453656168828399509836079918222104830666710735752895607434658446140564316946861875299853210243969761151632364486123590609232155328828751735753398516346240106874026275525298265918835304136240077141691319067783106259277766151862345724111121205277648768285373965811585830217497942332910103576476694022114159198263602046819735856444951373593356650818978735301022431813188689029552873308737514906044587505500766118201482719271439284526612225128020681710552039569756511458363957682139903486885410301114541420747186276260012478813932908722769746783457703483123131944363720699070011739915297078186430168962126678791665997550571888401369564101048459605764949380586113554871813893276864870674512063476874521662920953845340999786670888522220691780827621373280867623158383710647727177418813148001225947294229690476033626219334546782460947770017246585517162765574946775526380127830408057417354955887927617271602675522308661922062339351466986187258622156282371144921885285144944430562707347115131183088255147523620989938591334928878385282006380666633644892929675164726183648001807857413548988715543255587368527497623927304526909110026864598481988599865181385899537444992590724293649623635432566618468694837278479742998900290467670453425225100189664126316920212118803202719710165228482556974822141005569393616785232869843689785696299547601981266710062063147176244918283943071807952638293916066307335788155001817508297444718661045618379290012122363645907316393146806359926987730705390126891064543864845626593644537066962977029569071955818934162144097874778239325442363565636159285004308475497955791601725376606132291526237291213901185363265840439019413278974406584365670562243014719412089651900168296394775019294592488157580226601454100650906639932641702552621245147856708138030987401449867580605067537750131493757751589210919048753949885012746152656226987409515607533266473777639024233288082076026567880734069990477144929171845581726091459860055261178967992976949916296367588263180307110462270034111878598298716209726019447670524954232506317649615166729957635553372444050202222701138697174304154144985842361610649172394732320725763317617483309437406961510007733781050896940850416440708489178008639642359274893386413244181258182065164111498385656595594985104560317907602290802288099824454250263883129010745118292765232312958179641645496439757911584960655313997978599823064049703642861517660357171755577516446181283468274963866879461623453706475040550353321529418227449754865725021047662691303157696211534627171705948985998628070283579831498874996414421332821236244963506033354566566259127241777206753230793799207528714901653352089459128673863926923310296129765836081029208682780231322290450708951970370270030150160615284613686977956575413429188731698063775844362648422826335372390912259851293442348171522660782322850025770504150278375275925963207662822496453573033934010214669270178952846148265273318745361441980151094519606394303016094443833735188947677891207566310638255970319320668417896029841898606496451107641922903391970741520842941205475100485941622930107650648577933974150123252251034960272330244372493878972558904254917559328338962870761420698495387417769814485283830789291642851738755459168223431534092593949235683074928594374904886135241594481652876664586990942919937086079232594601483646795377927168964542907110451308946748589771091166022169563411018716614047048431048897606510456647611582837860977412635698852027265271569162683349135255600767557269849037521556755312410813619642463435323898525155830030312308730382185662577700670105435706117971220351783805167769895723862425419202713212727587847055294589381181982465643044462299308840532288696971704227934099527359460710923796232667144212255322461573050019045892685843664404520664832111033856421566702090909605731710337958999980170562108386794588449793822480036448727913062226470130734655583499691281663091425789137596898260335336722881274249719950012413785187392552958915130253998251732353061682870543711188193258395042075752220464675073712747931770793259779536957239440661024337374951572472111788173838676532399092357679911311548497521585205512298412306670121477240344158594870270482195571756522745154264833902425622384580015746250763323897739226198564479365823728741391109427626939043379034160530526877293225338696146485015477274578716001904687265397008859443539765299732648680770125840232083308118003091773060948242036361768527141472092520897340271311870585749613513281200321609870092297086775764413732428326114874196622618860874663862541605777129308950254725526205750802682534376148356189512800273225866713823469467671996086241486793492150439096144079362583409548030140278160902262205534031008826540489715898481358493545161707829398635295119212106724283253371084840466380245504681888226700490926844731839715697666369107194250575704010079424206058295943279063864004419144610185513680560878860018804712915502614086145693116497598162777738513890629614276985380924995439480916070049032822938387330709945770040596597511444231475820161863848199410893885279732030711947565474174564233897312446952454886737527251006979453703198533562253979268400907160277362403868541989372554199848833269801905417186576490478022662558359874343434470359147645154749212704405923610873206419912698483844904915634448190614011606073558412019855113580652443208283692160177009177845810484602724001921674237926604335673074714234797738505516703918614091535113926911156357795333328011648955830308280615650024925377145133878762865427960147038083827375643454910497325229171613451226703191843904474795245365057780495399719578149359317435330938322288689542865113563558355195037351835593812502933094077098662612107934088759594438202785617123078291638977534045959799906838663243591353263215246586917005805697605955102834339897208655133256378783706108146942356550720622706300568660476691260514935333584750117329485767475070962296888230255726597623179817118780084380349846758274191971171545188826873492334772826770908584610941186934429494798144162958181752046369039012514969503218233356085428585774571822734516782722821705584989072025179563952202140199449178195523378473974149359649143663444161012003595822442095672883878617923460557867652984785190705308210031983321850586055656238897042248293466821456283917574088048338803428593106234086758793060719978535512551527945140246533345613934799288810523116964944402403349619325704994442378421066952790473454898407026896614719779189884521782364737322805692660021843194597408358065421087028828943235752319389309606280596659004419598596765441518935815798069174330047488782125739278454075390653382500413094299451929534599201525268379174847578627693424483392378275153460451776812097094632939753261560455052540702405566207323864734210347992809447357375719106377590261867441312219400879169635725906199636628975979312404727718806341877783929690191489132640364589562939703096438454688971160248145870733315702585072185061867033640697869104783853728505435008343955149948535716553763761394649300933675252728550188700952741323938225327801504326817188769236779678611991480096990958021117347819465076158715053650600450713096353797971666402706106467684953287168219857867156736272111545132891767962596532097418388792264606289354633837876307719733510276127696470584271652314983593372895502618338961018824033521410866316538642187619946755083643755705703493872812238739467875598919008706821593895107392873930725365698862239645603754875767546920955764068176308118866666672530735441475163278531733833711621478589386335704364689472411508668658758548669443055458425549441762083174275011452933018024655455631033192301102850207516113610419673382694484595534508525394701413482375316671665676664303028312453963683204859303241718494237982287723610028203084060796576671838132664055363200486842653535267070876179142580491288914231343943228560717461129923406859999574437346304348635597260833456679058121282410899216503171807329667651663575415764715921680873776548966825465279796230924939003520627105011675021971521748598800417554445448380807596247716816185209612379734477263897504560533485032308117211538295586220236423866258595806287753312158743149265470106264925888585715893388084953026627299931086339596313271192497135450993697737220427087178274504287913292615577311152975153152598164422036472214699033024953367457556012926417399175934108378996784353032632604534302456602267315990526819545402872074231375567733958837406073109168323574419051197372793533296090644216761477834921297158592883705175569931521680498310996414767210578101961359907830388482828912439948421834289597136472304939897367422644849585303675396340791942075815462629742639778516489062363961837727897182445673436764308074420731046594128974982042347506787834047858834146292161258116287492711381083397249195825558958200003363419476340525859361215818339475235229491339208854830607488718571436211137572783485401891039366134558297029121435975016811536972184275010363037699415909790008164607744509434300843349661952798756321847519220775197811028691977192974921989700480434592680747453314846355965604107884584457599437557246780095921637156844564343953283872488272063119819411329587817693512197152996895894324119366629124938768018020787929561637425635421174291849470023002733248362550434454211342939140241173285362081400226291032842584365778855317519767177860365195703989876020135007690553509727548242899607016458162592500474330327547536150353198487913849840212548225509071102970690400920756588924953245916709642019273595207087432960203031045945846684872503215261442499043799601545595917482097801547360176445023112187843130954732502577236062550740161803439504202406210172667095130601323222841658496109671552403450384622754901863511737899810542855082234362933387631703128136228061323185374105998014646196435700645352735648665966897537641500951610863940126739179849572820011102419929926937770050618344104641414448498395851546074957037824410415569467189188168552602790902922414382440170390859233005744529368693097248358566461364240628090681075444814329865684367158804389362742844701842029441569739832055623998157099251699797243714085504210187648953376074842235644247049324599406903523630164411415310319599193703236501566810117880966279627374229725712169315787654746881605487195556513059105126290350995050717920875065081309789204487615593690194272803834628272862937195655369450584359031423846874724948613296321063540923902162832633856275938554869177976717347230614649391960389985887242869349580934038432486623274772425092478963770673949874789906246346664348581479608041662847127603386330763184122300451331476535782201874336642361095812778595206012769393194503386720306123050550146699929198643304721545287459012080926469210935679778858903568446360374412293199326866785073446902870143213724194853815868560319722403364546064782950648974742778295317871722900003675134624260860929003150178519030470450324419189785214866258222781196591439811538405691640797456181473641417970817427230510555031394097465856523106634537348532181060126278383720402700795457870834043253078115289091313592935746193739214360571135144673705623937447902676789520647328925494171824848048017695859794458821678295167437454751855137909807468941148844722825319431198767171831694543811816818375935053197130245528921496913455194414378979647171319372955893204025270155183964118198744738192332156823668856207429578809239208736931594009972775157722287126741957952502988545474755156028455700856044551266224684765316616158384737502029144839692188915142384950212143370208788731859382332731040878275383663149113221125497743205641664261329994798349300260213700049635222391625937978364859099545855570221916569256525785046578598683839835539354518869167252212434443584681403543281757034646062559866468396337140224691770478081191254183854690846807373608202972185177371403409575210619292794626258447436762286135065297251198226478563042188209046233247028595922745492594539202297400083957782829751591355439081711670191199311059133760430321003298314123024774094061671094969403032461636707644450348434786823000495344150882986331780953845578456778139579414498845718797323383608905355272229894232684782957208546089577697728212897926054024200159634176162183495290605202626901485320854925941833332399351609154960396147403127953092468794659136371182322348711121220836705616986867888772148991792895826260813580020503102810737215038046512439236433516227898133512068904082770321869152384857223453545694827308145701441365582724880917191085607423371301474888209342949439246104901024214890224859742840698879436127988903221671552783554074207899633586415453525982828780189634095212088499168162970126322006201682815713630457643396797690119753125267526314705155355168694026921003637343291711253074668544899619990114791090730547991426968272538041757279095005656030893063221486947889357788540572481455546795126097579021127511005569009494946268747985841308871817747971054389075822653598770410240793198732226422318829631774432961892502311633297478777267748697263941371482495162957368254771782160437615805672742386206306500680460118262422049141583495614630514184290505311100702978434067732598391863174283204918753488624988630748876514730082660774373012762462334042272494380794740364179873027101688456616485133163846467856604705045169301523103741681422572603469158186976907423179406219310537120109726778049924346454361201132772693501609806176685703095177072309828329707315982558326419230165566941113177342412839830689219115374514000440516685627343404451734901196261857225397646302263087716987343581406891851760494013032268167896370114245973022930078530343642712442064180414244038820763934778791248681192891130360985176138625687123801956657032176901232095077287386859564930273872332586903497056310544719615326765706402973438935918158683222027333322789170357338290820066684332997595723785693509529244431271865510679291425427964620476295077174931760945216177432880305935730281889759846271155737427009693412457365238636486800372014862185212600700089743694125239971539346940106400210124365166233378194840849403960872192713111176074893128294696742635517998846657489409394524009586247341114099216160656904163884460288035046864495018404140252706794527981939170285715342907579823245277701959234031145787508434320286088847747799040616448960373511034941492546947284077646759022808409612190637378647536974985817913659305601619442115048385186510623551728533759348264861215269153333367022616979757428197031946410144174699846397775069724770850788789451889249444899633809939472199963831891879973011746212528980783542186871085489749877563182656133790510717620618649430086234715949794681229914915844125127061235704186998615407075521800612986344999243782324951149469058913542425001086668029789921700579073017116382321002347697671989963513688909718980529500667701823119895257395945183805412700815606080989133432526149874262264884883186618747389922875228638501960042301626521978989012467005436712973100698865059689134217606517220227656721835125874063327753309787915085411399946599351211216347984952836430514627510241244479897825618194011594288254413243750799406413999760200448408596483843627733891899076830252424244641976666746718098418924670128709382189518314918253684232545090603230231396949828111765889968054528026365209631692263100399902729434498860767175748863130283718683793781115350129589613451087509080401739461192850210306939819411653102087114684455821166635586021274297322364982633613371441645102361602016925725764346197161078228712988363200263963895055384477735931567242167690617993121361023964664161061387798529898197429319815766193090351659093295864139788336864223682866081213136462037220676555642946486305463937284116050256520011168115983131354783288060297591340265946310503926935012241140647093190131841621508157819010924530060153996116968521750469075525292233363116806971580944590249601534568426856757591445259379001430616913902125132501362140955492041344947970344604209524992732072379507542193601083028838455356671892693406254267415917429439468644783745335398392784905763055493122282144147700077433701840225772520927482775796232734321735576648935680275882753643958161772580068989306361476538307323162145768705563727967005817777311579825041119507764862341219917580854253847638549289846115676089314562672725599979689758523076051687352868915592515226746699221481579804151314343569325163667569600243325172985878279731922218987647219114202490147534157405375596721484259650628023837065712434395990902855849267533324146540696729491744532113342120147009397427609684087480640937048058014492716376677001896391366392039921207966419607457903021406423220020913439086967920607274876726330944674246523898592291826839739672470984142258708763686315465998156604838175416864787620697614189686103530075544105459492480500514382822054381877512892776815780423423589871307063287425122007992294940852329286996719615867117324486275466276427183375732205484753295921378852339677250596059414162522375818521852163527809699909235425265965524763266185186599035253700260987082182567532029029356259187550765804227754993859593099867669041634308910771273419999681941685544376331920498934536809554150022074800353845867424379217359392307599868266051288112099690171406871674915396866879660103890339088140981665753237843176916219436587372471826288947384803446759001655843191132133142305450043249119444420823589497616831286874330466667873053889345846781368072097160824670934684572221051912536354406888890246672503402522567035303513942578323396234085774571466601187190209629779435374733932906890609881123748109581190633768306571724210612948310913492540433520722122638217547928125993978525990375589804255675145085742584987673755330906382110985249491197637264861202383987972193882708716818551281317738455357754682733950433721746258757587356207125043896906817653875033184920147044277719317914818634751610588260407547249369161535702233868939375838552602342082884407776803205095376530299049133000052467365975868100579204958989316122633155317669018051420122891332893454629595649050658252785188119298928424094875584469464940275189248213269270797846007948425577526309151242562323410629621876589448189570473628103067260826033269474397597974132945917213593732551511054330292040847697278811594271003965809290246444769117309309459347746586047742120586462550651971734707976755613564728605836127320027380740441281524770451004232175343542710568782649537320739435262227031225570472627803886251306377410842668281852192690213213491652381856763690004570587131047879251851987051728346634754601591640794189674758981348807848449951006753551291872016137731681786014262281091085380010646209909783799551611390793319214332771507548421828494037839276105435818460630799525908988501261616985964786210466069550925500022358446836400792965187216556926633779268523247496891131083188200702652304131798228274258069349787711524472705359948427243847023876880195469986376193575495494057211449541160362450904624330998114309403668589352349785662592617853415767446380640641935314796032491382832312788633076053605832545129066011315258172015568380901253205992282667469219666302635048537771814418159223282726631752010349820527718925389838940160315825256383811780130348672329751420454554165963932244872479129858945204927057624820560459807161201078597117964140993995742952554817068281244366732108653350494915755434813278501157866945611107887377324904719276734627711105418449019799761049534891307380102623390332551241137544180603680560607501215927347713773780726207575167661818398181159159288794059531165016751062365471633783058623244651150168007561458287979798910844810600200846910380326191903201651876781225006009714712637150069880328930357683460469720250248006121426431209933859102546898546403436266045496469158364678515014888224008059718768049118881127350195493910037063481195355121126408044019084692996058046067413272582058440943213823273267270778201822895926794565101904865879075702096557049564662664271257982485925552425149319653489724042141652351076527736002080227344592279095986927565169626530391444466774763505990430214572823685112212716270933179588937495850737362302411208302162387249937468811454733694521191145217785907902291935687757452495510507740357387445013330498673433035261797888755981247447131630778440289586008717128559956093683598705172640885517386756519813446114463414580543508005874602396820200913039096525581188715151371041649620316517252257259476385073643452640731823210685370950169840152485459417515020310408479434388225442108478666488260395591591850506162698938025284558006694042460946614685110331466063060381669482574137937665121563453024783447728569919307210238332428894578800639706551279661894439084487167717418728947508105141501645329179948829954976647079152545977270318259794997668401760480286679086162932489067123094694352369279560925475539846354569174558947407694533646981838456906889438289098103256956853614740791739345375172748432204613427680145038345618068115288925298983837707686216394186598088463192315560598308429517674124477091731445766549273844290186359294916075186768379498643174695167556734820766916831346560813605592233596695021713285507558788987415244075424847092983123440457317053996546164244744291328618616841132973746048837903094223117279848485351430742953725064011001833087658776405259681415015767436957269477127198159135711952089259352639419009587901487467918390501726572423631441598736542919886866514499545414816086479623734275205712140498168057202638085159910272870497947784339470765815357010624664092235164255154430938601437740601666220322658425374898418369179734101649865678759169735157652718783529366244138789335224187157126298429421355201744597659855256703885841267595067412805954062255937685650153391434586282557388348633487116619767399785911438312067971878876769363604561741144883493540131723825319225745667230508859947003327219525444095695817966010099008224127502906266028385856958671741214834445340435456850982263974318959598878517579908098822134365260000355366125460842836211910081061146341679918100493242700297025890285922373719142283549903100286146858840864304109074357715066667766053485013489015809403977175273336961821397797228926495156196133725521942248803076728919145907943831422754876932622304546672240446563708826583835747269703711010967732897301293899532374432209829884686649915969622995213765486407551602128804081274563036913142464763983140909562265472187411564414876427455322530368550098580550910905804256014173327114140803353874333441689933300794586636276265858166058307420725497130293928532982759470650693479907574894850477567051686343673676201791090778189125560178119487259751457080453175173569731077607904857760250860046350136645809642255693188510444157517342604805277880551935771953843708671081439400498061800407244766698447956007022960020224807116590538095612067271798284093117370817151706265893078101572798560737711178109018537457792402113722652812803490125807668129970586952296456500952852873190669699840297341669075313190736499237850525984107697254194293763430900235833941393693290852967490222931718238388512715400593157001472240778336365354886233108397320955674489023970713888425387934462460647944971419701166674629536425304995078639550641306218210701741156944816095730537368663096064661519765763587463402269592155271309853588865642448610407965640987180543550876636696315974220045906218092369949936062111319327894927442000286026958085892559688308610080767080708766746989873075239450468358290916113472867868258269091849280693453487145296941130008638570742559366777813018636592681946286928915599742633714086653980381267522008085980033668673986635043599056563349391392230618947159613984572108078886554471795897610535003144841683862963883035973984592528121572988773548867761435121771838643412035691592619770603164664409892648022349893489769505031975377089236110627209303616580987604577352864086849618944628701309469779500524057250187529143061165337994337411296298282589913380097722450410292808233697990107638072808452621370456583667579534781858786279268998823645484666213207484239155498803764386998596682964622138930052188509971794787172483430760316636605652021965555395807812354235025670753569540972858106752983136987844527424953007461789504372987485326076717715154372460800386854282527582868600255266319258126224548534310428439803154202293804128373340294433031871814120650943818460770750058737800474877952775975724904380231815866401025736003869067977517433074311341935905879433666217258583684289411821816978794544528820022788415003112867529748194776066407367943982201168062583336777578975877591396529536380627500747535849858873143129699202578465635601009936900657843469335198175352613178685060492414152681026846837835693199192064499814768236119053657658384519967310697185938201205220454301889408466972885508186934219998361512865547929101196265606881673064624648942652777951025060456507220939975654748649546248959588222707428985962541173710707906308489746195661650491726546009235109475765711969677964476141599887737123270169447700594797394616458103167616102821156900892907157891681107145717464643400126537922465440926869852305005020314652316308126123812489503386677689606741265450969470845140881004113083920177578207057866327768030415208117605379783469695902011496556269298956614692116299264303125995953294177229645658835818337009056650831192837509042219842837945839299463656847804848118322796406109924075426472535174790416678668724214612929864387735278136369173938443977476218187909641443720212799143765052228658574039699018297923721082840268427969570798809373154930342645474287533920421014255456000269801458891806014938019590884124354474504588780932234737337356320553156692609300183757384082395108347680872218142234489386099600928057552350240282876913242552220341747170370847840264026563881733467233366814974096211487812485933422472237555517459680626411175101328379271852375919103096170418760879642787268118074460488942575438762371874576059019180189095553493967096498201254860367799194213396461268558823521173924820309883199975666144502798959107531218970241202470879491462311114128829621752516030509622291703370002365598047495151133546559908898073701320501023913254199223669197860343912109784897091350420833274437121868632645018337533413229064485101863743082707764954259244819599349148316889688824776094010681075366941685731867304209035808547894996593412679698258948489732247773119930412982453238395825912363907541438155430293359291857213148145293580090977164865755427192082949388496364422268043197424723644731179086202304404575377162940123907829669809689636294141956909050687467218954366121037244063886164974612146774931474440981843345691170744094656928970364243461302147934339963541732719271555241127550100778635838630767582014588879438157538779445445858794681724836095208897348596953341074231161783365035324623645539926768010821824618684314662423229033381187396154076367785269984867139151259807836303856175213391566412609868547572634746539174594833303301174628037204828929974799085592392050893033906898590564866979718916664447932500629683447106836226238281076564553475861851283703449981513933080605717986169695257171175705767812295396687016493411420864714939376264489570106322926477140339749053742275117084783690168075594280399571619501787883554963571245577308529354469733007716949884154616414112802317296757049934322913488513493045724968211561324076903418754718133244704892059716731845491813198053885085495828022997699330222724505292621725187475660571968298343783872027711248967125550493262761875953092122055379722828703109976565327214083978437421657594904108805226955969065520449391092188920137140825538892049859948203287445363548061889093902732466557994779977972510919815820182207766334606845402399765182893010611210884107913358064462401908671632363597143100059117173123315237385026914617280456563228233230316704092187553909845736650860240625398795259260201716790161267956803665261394057886180171356980121296258108759849383141483205268154189167532177275525596222876166854944394537927612749010423885890819016006440200998528118372993766030950090046533227288647592560367429045314114490155024980444856715135348098321940173921554052004494907780369663373878470521683235394516515584081031828379255734625868629773122892635544232506523278984611386709090598806931629343331791036418105850457064488637031761948859956545627040780897735625673341132500517549702544589252570701208537542726407761481634247661637552353460678968948089895714636848383797181412126772494730064571571892101157409662757198731169414201586461954994760012480542362628487153702451594018337911637844022520571603791928866115718390174339868854575324027447498608050645340807245948479611996910987748350056076831271565441829747501861521588788495834657530883977725608625665301170832364048877697528124699044548808404421467004168986024336952933402390474890958560380982480611676928932784713026908807962246706233525511278063845396637575029451202474365309204714339119083043158713039238983903377427052461919867109324711960122023191509632257693038154234346896063023676213466473529671901739025779150162614809761833214582027835291168164584770100308281163183439933349955903499016401927916254765406024234648467075271620495498302372335689269384851888271387153230323256781882953102144453374193361249306938172583721849654480920599122422872047648369018583416338553913713267044853692468449061136016537897961295604282514092562867869457101569705132691954157804044671882584152133222301834616164856259945651892616904064182630580955308623487474319781147908447920663844080769177409672824715614734028177815026565026168743824668332524131237694250111368866120039682360067101378177517384515171792527251031756211129892029996145718287663348894125076099335325601758026074954929834073794862931037543406094747965413312250143408852081627835086103478711555207034367918753335368784823473002623214672669288040096875928685828445989013371920367707741743350791971655940964458431984293247469416776254780391839098460572087780859839824571536905142756881968903140184592426645892629992365854066018230007268154103347200944745426396052496569271207968963493779317176286259003920184488134563832241285129997143051045900208165600943202214782092818952192097863596762235535280694535640705831494938848210831651240206305233876766995618406512192239955010825625019119417529307977318359909411854189637474532790737515820336625475734115098993554402536780334223335217015243636016719012027045891074962888797831380524027541702923317085346355377572201559130255357029968436025165558935101150641844287878538433579868043793621898358033057829392565238953588557817912452834418004175013392463042458659441233353685490763440665893581726046164772582323182055469782425651149105365304970262926317510010863115676021868766490488178747747664201409638407699494152409430774653855472113089506567632489560605732017135528976017488908761522379329312648957014334152914391642551653409117746054092609825079474395730832981446062058132519810957943576223025983812701756087974234828345633896298867166321014377181659638853182068843272731432010516035713797661209034190976282453176992823351140410268441146558913527761882886042106749751967468085587158397411627433961790812599303697604795846928799192458744069124207386699013362160809589185091402763363684938909415367027167401071815972948094640190196811514761158803698178222328924702039534504023332964687016124301253440322528504807207738965934319745344018929481270293410903534998000781106198117936787600443431981723565618114155253261565361078004853838194531968028514583369198537622429164386236909957722269397581943328905064106842951584582522514960347555346887540907223440651287590469888645743000214456742294065059574410574650425219441681170163072712091126649774551882261135212995030636884020197542198987388075616766172421832105011862215962265413892171226757020992603109537189500181236194554420227242037488789346796415357394527877052718739411948895179107539751290896821331856847676610528878618863826817424588440434131758894929493209330280219848786436628605978413003168218202653992739652326797976899772680130412665867447642520728580264615817459142222455952050576258980850016285293202865003339801046603938750069478746398620380485266432565691157883206707605122495194509236010495960433508661335344890762324906074769049244252331552043009785245532837355593722841049888771021141950143403195761987648338605906445818646524231189120195169081422952361006502981648229445130362859723668887290391387819529591094896768566553424705399975215138636705468043851310514122355742262617000491076442094601614384495953433495905981247937186451134004410348366965199740969182750307805794960192525438211893416089061272232786353302250266708931406592462260658856073559156984157594202318173813508576567262267727563634524641961542359248512610416159477331109565952062036748847107808463196295582267748789851431946600440498984704764474914548104182131443550948662634631019992655125932622266337163288789377687274089977817069592734594501518271319253402725784349620474242015649340839261408111251176507688213565624548821580556278760718879348326408830695015606313547850909776777788848114635801193104818656543216625601474790475019347915257934804032067849294506873170381475603755547535663657899023064493964702294823717651666425655051232908667306035157904035061480864432971729266431993860976707532589218303533203063276378637881707091047663899616273728738545466095314546644221242522939647800774792374991983939313618552168046367056774024712897760205478653932469391033127347488441062843950217845570063713342685831941170488171066018090408995531126635743496034381015110395327541786182952838837644747818415927874677486463628086288977404599762580133926693353113327913286970782298584319536706219507807602824103254618536700566482425105642669799690549894001915908093583651999442511406374407568524525905059910802816794695318822900800266968481155963820489294968021464779500303057774355803352992665293379285562441370660802606480544141374608346510355632297431085885516495446021770566637665788186546450997747503816616266586837922235503655072145391553954518868759174333695075135142292807676966648633285049974231878854750050122723594617324353611194750781215809099561924416355596726469236018661158598601207167433545301305551663656726827643148897819784936043797144386018747408026898850319169675465743265115311709426062031899507006796831247151321367287406022923636776722693785558276962566324100943644671179288303285066920582576063994958388148737163509345141206398916175202131770747573499921868403923154651351236319526051385616637142902157445291209068930443857801053819797055893079326243809263762747550591679691743591985536805905189362384208510027028598192459002099361336384773744207769218624112566287504954372058725898245258397434127832290610287574322854460986299087685652305921459918605274291327926405327456803029155330987823067174286070795065934656555344379688027303255426735178635402543109885095501102265499577079722946528058637233295854212026197636065180770359122487771635027762710500575771674848621123996595559915556632938158876471474109133650442322853404448564226667956383778013373947539642709866272151769169357074782736261328772307432613795355957214157570259824955052229808311104380705987295803195521027823203830698603433287828304147392627136100184937655515541604603462584914986904427404254010468525427521410872698419836806677709544648778151548601817510204899538951639447388782897343436107892768978874387306973080712292301944473128292036074911473729274107822237185485403613066757343813121660497973033780087089668740337459685915694867927709790563238116266833543141699269031654866456918557963113888661446027698775172134585585690637075026498790248987966792150245587413597883774815305651777119209841806872056884196611616102035694427350143002349582233215396005139775532667224865394584824457603973384140358141514577285990277467004908633592422697969026438762142031945903344415404339606147503164926829846599079495613151881631670314599110721356981129690575804272692597629085740694127979575608665742800874003928324129340189362607875794238626569762286155527158172085471852424054090679178111275780852398133042177600668058180967793493870068299634833911406124999234575488436761738795786016476425171183820700201505289605749062403740354686399093059941112885908618710386273813597985758039159552515705425954521400321470257432658895244524176937072910964833280810096683799827735863557701266343072598719780085773591128989335222898437372278264172396774807807744215828936197740578355933380815786415790854661575885459856659574658753594327869669096115644146754318670426178669747224850202756972763416668375672976060577017632786114427490047729080024222123792682952391720599227094086867621472332560731711041416907063784346005687588888605798189648925624901551045137633847824452967569779054577901021043471322299338949751925799157905897681753469432663676125150713554893502061760107081835994784184514412427722285384107274558722719761631719731331252424244288584694214809417127823181297471191319839785719163389697380143574305708593845246908875592232567061963282736457004108083172178589887820976756774895815048033724628366552132984343813975009971420164887188890045683527126638680630753872072368172415511280111584610710224365531365646923950281576169198234501706605029769069791314078909692670081853488184999579357109289887566516003406278112865777532228206292524958954747800312882452661583402080444979682781336606427368429813492388911350587746651072947081740521508265058803490176905878316684190720983254566149212577854357844440580230677498321294038003766895958311902488588919161526273977777442703240575360962043738162875802156921335970799092535147004591644893710945390403946268953616737387497440744776125513353501355681683357190695051092211841288522735612061840812680034109917148056870140291903354313228911378309978844215985351763062027009992613352280580095596369610386045887633057997778459152872945096411655689794552634931397954930510961487114162546237634755198903083335594736500408885180595337634595105673302719700150793869050103642355257601908975555647688172315997637760865174778535875098915813946604905289977855239415942557838436644384329758559386051018939085675067089184635240322377332193579757481122374989183621603479974735682825585161587960575998432700294051076598391029297946204548301158049876643780871529598849236179917088782847533877629366939056079934262046415569027446900640472586470186642303274509807526304959167010611986506012131856708684687086946486044122064778339668912477735618481484539321639463045311504236594083374090020284333038278779420534144778394914959739283967567119776627751555550247302033143271895247589899240345075105431154142257963516671425648913973277051953171695205005058049641472949261966842608452994090351428068644472572604257043733122059833075831563188666443183160559139543137741715984945304200788695215959077527917346093636262682460021540374972509514358745344730630914126959860643393660341767353802679262414766121451612792090103276847106768048481598331815313366974245013065550543325549485835220787911545397577274249709512527161610591496167438729484439158281909186409872006418073932603400443387563603028751298715060582740024313102193584552582481739438218525074628828799766504937447564357216135156081181972553384961239467556398272166854563201242148249592624758698760819912842699369596946414524137632933320547576445869982709423526749551201947686661418545590684570147909019306617548147087984233304046628241029080932141113624373665480109135841961621016630578809942224502618312118970618165333052127917050921355961941348171315649142122345426380085630048057911139935880949490601041956478017091442049720315881830907123630313601415518211006461504765494278008401102542420453183582200232780577820572577465206011748079647401013188179742697247931913755667125802117022880966412967400634368023348166535369997314668443418865988274949281912533927591036913647417835668585919771918400978890349991157849945262990613426480800307984306437208073732730381833654124941180855160403353389699439786883825836407347891437473765182242007224059816613741625886467896292018268482493341663879480367751145310320909963685508826483065713215351084791903556112208942576336219298807636095930576688315763489757563624374497256569511248988169030137426338368588786175399407329556355505807447004603301048975285582238607860146028547009195524574160844599171639037930117832973541668473001780657407020615202304876234118880874418343905099669610466413259392607639120816434759981566755368238765528451881432013234974141485960978600473562504631047310848435066362559976124829462788530031876818533041409253516371683189119381890545266362144882407187266551733583285844616223172693381742818495976362441790348129291769561764272857652515491232771408647499736585898830407128246086047433644428865453998700006331829389825255610669365331614744939136790814796747449840326439204329022390016329272109544046626987386308663018644548993751217678669802569351274616686048210324143740491948472583512354796274823229774312842761195740969807413919345969558269225797209551865632152266121262960636943142462512951933039905991959842215053978897130742757898947822626450747002686854076087819204785895342085138638133454289997978559234973170630563527023379695107608695631217553535998908305689531054750307004473501875897446766314500444969353848044729756089441360065749396360298227822830810392388703836832108161138058928968980883370179497362484549772904447608907134265828676964189372575328008018486764814396378799589160794493114676111751530074535800185829767274924020173390472204483841306420955461402102082569407962144560675855921199074093656275282360719668136546585037819748705028404725886908453108309772258966630566653916186423415338956210837325966473352173070455814801710572023213069578383361309277645350924626743224433874555553667202240104916181648641382243237252532440201652558583320228865914906539733477781820991254293157171062876777273309535440683968256304505843463438135680662286287732591581700129296768608425115991707301011212656309083968927019210549864629429942078888198161750661971657230490553386943226736507123355783534920919550782035298958382677042765418762839494899741832220326066065173948740633264100819523270633099371376234112799175826537111071402169873713541659810212598500643784957566777933474638361422991164194650426144186904639124786250046598121947695830514976018166772701944299160568956574706566563004389204913152663005674429957105087373137964683887840047334662870866809873697263686349271019604076930302178084637526512081207899526318721255708484659671092351772122981504863489479846420147995508179099299275809646654074198800672676734207264499440494201062615967143973972939161646370268125829581177369768482766044762152325981751891806501986290531350909295880171525748174092080603448779704707008692991282391411658573866745510898755964329102428270845023388864662442990462952167099033283645849087101317450045404964716004862999549317325487234602250797025377922409293498355364216305060488342675906613637814090445570743806986756570077683518415510228565320605682242616988890169284983326312646841953929223374833670590787213641699673359016625379378158013667536683770754835279496871622231591776432980611407566314992409256237822325968391352405648282396014222118165237747382085045145344626451815361402107323903118394598709387101978298244873563222066977713905264342903499060103616532819526422069716907493582837071483611725882036773239452904242988780806963039898003744462032626565866321972118554336808033828691580121700706215844885994654448646034343181981365555801851854710025313487644323435359255666757468286281923549741457576146159930454121458496824801352365780255459950362670772925382230276175430700258462142036666428709244788960552024009495517710488460807484393200440375095621699509367010906220571717153989835948790217426514496311291030077969844640821385280010469570105378575150063683502948143591951624645292210975817211947305183229596726340011479404613446095621314848424703337985394840863349717300157202851779961771908483754475777698524054095045245402653045063742997197849223011528348192179057366058287301774718552364510509522694231494138149590119113119231221906343952934570054701352776137852033157393068460902079845699526489123908641344116047301139443435968619213889950676636605659406265093654557261071296411356738479179803596967027166466556219089112588090830154453701076895661990930912545491718677301141543468008588011941887857842366771727730874725607231377359549336510420341417550065251464261584553680126511395716552524659911663577947670703956193648700621896181628614944323675395119979504833802635862666292890680201959441948275597167392652199664296444158630416510507368197040865903926738103415783045549469853961749552523058139862866505830615158898050481269602618381822303479863900915510859068514981909247733649643195003223473647097054358120753817549898650511732517717843660233623935560787081837694989156372708574262732558638463341711445089884219551011390547070193910520992736349448800060720288565232255775955832880634353273209949788519194497966159245860755933030150118971273765596298602766283818089460603038769233789500125616579315506047967957412330202139294238794525991665875356302115976246150219181223006863572421411193671835234966920146250808676885132205229184637064579328012330622060096975311024274593895650447383747272248508054798569670060857716185925424332802340299687921034181583521133042705364725792188844471999841743916606835456444614942609194697748817259981250509305640977839800054127505506549157839751478725843712735403659995861551612474272524608313008127989450160666655035097818708293145663762564843238972686302556271657738234844080156162895730574927316991164343960032923277999511823927479497222299355760577565295676271501699003411777870404786785895725778206704068813373030712268306586381079467978808474364954287001343447572778712080291482941151415650002033358777831947620380699802794847040874007161126344675332265649284627308890314017530720553790192791714414707006468063628412274073097598086129872208736189124018625355926823939794801280569352989509618768089788301200797112254008831424363430862186520634523963388242921118710188576596149605334647142970834729825189428488240444421524808781811505990204920656095055540507194518526865129813086992998062114561753782510284339908083848590125045203897519559054932404675840784156680608407176520454349585938316466530101531609072566292462047239944805416826523069600721042477189304142204888062505736179010886816246448288658125516069796347479161729127585818705560368612407883194599559830655163352595252514802903239647500875387966905552589393884558675489487249706117072587222519413452815652859941573039017495582120433302450977545515741344157748788813150798433579419135963129803544777026713899179357025553983891961650466337486808055535120612800636844432248925545479430323396695414805407671876767833946290478103958981868950045791935377779835154221398384570847627405985574415707014166535563850836065591219675633796895006763776649341933789039819346000798612177576891929115697550313576938839429382052824039672940258856704684903738690465020253435862136221986441501730035522748234576979993139408715409324054226063039791189485546804771677064893899358005545837358741241015767672922173497733268271515761046172325194888535047735688810414529492834586253371269866465437566164100860510668257660689375110710437711561570655173578297253284570048240458562906073249598540876124171983142485407678560885192861304585036425669290719804466021378485797347197923362811202648378321312635099062967289175915881399859204738102858302972072773994613083126324530949275391836636520961870142350114140977807207790932648678644984412736976521811657168093552378126867161104532771149012889846011054839880354655361059119469021296352708000732636261002096687474633958264289300993624199088370128449657929382448047193783366478819224590411583676729524635708787184112166802279998251483083428680558144323406882059054543659927087494440553950001549465124736784380555121308445404049955597551956649014301330842258219146704571324543179575562401065558651481610691377663083372973073518360020049269584057838865731871708177803903179817002386510635339668704000884233695920671157303283852463991520244735405273262070605687811232999720164937826629594639392194577840974307544226944494092659903881573081343491845101207672312882326841942687774679511653953058740083203025103866404731898472044185232355861817509263984917198921890507177510343686238402980102173276025199610633073266266941627306413066864246016942121339796000680726765751265668446723844871175902835140566802570385476467909064367315025930846525893829668524717431381749765200203861121899230988684082881941378508754065992993550205022457372496994696154745563050212789057781606757068333330331473260263982937059831684592366271224344823906099714691490981636959648964516709794160307253477421992243453756349330131310917753645389317483815250565874462760364224857329084996988561867949045328233220291440497144611680787184468046680822688408194260608039843963109249615779493534406993830515063453871203158467545106195026408924689881435322456917579449397065020095131483241274625867529146215975735624652773747801458891195784536196733230930142289121951614211643057354170298829632543331152917954222211155334713659851322255755391344908044820768473913651652146071718571036897040601647180305589889047109818320745916173632865115676675219168701090604567846712146909412793942538661225198360654324064911224850230899630387076030233119530931694628254076936693245548986310354769230205436498579743889807826136026632940820424699625725400111282255833677207887826535440601234668580840619862078750401562613046753460441230598861027799960408915463411144523242493534639405291964839277209886249590977642411500164808328324780804750266355746609043123465281652013262354147818246802894011774981415378603412616053891349376843440616497462245058677029554038076201402612822805560315068416595711389116354778206064945926587270037553610010236934530279342622281814011937769054861951008826224274210339311877292423502365356026595121499650514669521963485979444734148049551775673077768777981433780646997002804717943936081527567989799484836832391586500250197766969141353701329876421997996918493409900934209074157871556218082642512749426217081310409986790520905428036419223017102162916167346007812412590917395114099469661815043055950947420211321160636610427943680115411581199695601036059015068844350706506357243351830009642203912880019390771410196685647624547769747803394260086212443719261408278325425309795949434499435040369367569965284540943370705534197846707822737071760110524950942470177094522454979565100241215998475038590683965732124667786216113342761907410595193701337521175506251197486417195566936565529775222763616322953487476761784141332605941829417712734704426268646775401855539971279706744640580207305941762665426717846197300383272713382340580214831691617817009734501067493421662710208377286937271240194999487634297952874951919615831792077744410515351172576836443189031412750081923107345681227345452760765884963812089821868752631641442409767053755139145608867068140088510774319776158498153493974425518538117265147378781787106685375227959117318606615374255645032943816439795837300582543015427022961562608333735130780883047324659893953511570359656651986875371374760175837763932446536293819197603184332072509750390700003293288787969300081949263318453791899145157607885307627508127536000617863514550847189266794617209007985807796667845314440108921940930891468110584434663744656235412455531497267842208142032041834439295704976837569731655644768834976312418954427649512373772784734130453473897799134114014160378681136711338370354050658762042467797679667539835277300011318180744661565104918031062152726418945630754038004109608099871863941227977359161012091802161143093597080537402979365078336331151238605848897355999513591333075439764849576920780959862319226135198371079610206469770278264658670993834272960056944792371223944638155320640067838461780654424277993160562888161631903992507624308380110977346356204042277073760441171821043827983221619763387299793133528850559674805486653784702632719680115593428752283701752598115287189451532127331585765400511908828023375640777606651808622772647417626458585741549366547525948560174317892378199014562563684744798610565863046690815285709172925890860836979783414686008169161736744846410828427266718139546698022611633409303592181905470538479918149971568746250251293545016876214071740861717192998965379146448174356006944205450466783440261251402233752525153586233939162549805253308435106990303718367627773144813939689179704900959917957515917682431542352309369176942671592606779871541099387513119758021994202989317986925134567587891777807248971212399022503871596390578559085779633736676451862850708564744598463843809345837929591326762215639522738842998494335321180394838201004084861540229950354291582060072825013156243558057703042747447366394009182908753485723089615215593055916508990388879957817263307116158587353379332293991090814223316781702194186829120396733567859287769416848182179710159376888018756297155472622975775516022145975840116797432886320228488759776290228263644370017956810699071657000927267381620899150759714186571118212386037532162878745219196100338547598870269596914017487555381553484292302166828087280691590265431780678493289974238974885315265497964196164716447268295422628634873870965670221645200419931680118683615080370212702162848185666104031006160475987871611097592561458797368630920569377859934060855519864443109618930626952566544177026203755884565358504709662009531073485444056927725219293682064268596851925286618833447573040170084740168402320288110580336572147698781568262377835439650252853984580751960705212913255247875798816275572443907388328585165610701361552675702778003589262725773640200160771351067966601061570364164919315483254785240672142883271191662444169119551085421517934300471705268510427222048318297937006842035070291678402827539580150630351978555552764455171075830826139535642736986761075506760459252076135725735515306227748568054290662509145881205689706733948933135823804039207339388759134409668368817018528955004015577421991663823909749816357579149031212327221227498440609774807522901137609513180956594511994659064379698694174732196303978066914004452548445708754470443673128562465637406309830661340845887674819283810635691826183018433517238545083727279302280263798073201065721768171441569081184329171984320507852345942647220642337878181624250657404616872159036798983101956927722159288195668238503984216813249980578884932300305554957527170650644015674096094928216312977515366979553353081658483970215221989914176297841663488404045302310081316490214451466680006830074679604075129874206127272083707846390054811862778100704727040554611237029360453324350670326461274451610700688115769641269109507913918938139417816231821842708770278952336863839580235847327584348755537866992959881554617198624828525307708891273410006765286099182080606348196481872969346787521841308853481554112958945562493112808790090193213064489063374565311452149056099723700179038699096061583737513875662944536244980595382627812357219357910300797729658580835898001478501957496722477998654974815541755201575900379298211549909278112438305857671991695121315504466250586007299689226924760838032636671450696934303395930978733001749702894494219971508329192769845048418946234648098976220251297601783388277013859502414987648653096999368651226734020837111686239195881084942584793721656605339359892553193581832085827213450205479026565801957751105007876275360426139993169964238956133358648558514385313196856518134296388408940899904523148623392780150840242006394713722832235315577973461180168077281351737309746015527641544411239516565464078882349601157342399014230677413232328030441593835879148259336471231078952208731023463022852748437135410775012067960354837907383374215767423699022103435899816771007913043532324500671611297763665406469152008376775276283728906365548364556565800709215955693263960103058389286617624198288079433789533318889776797745062913055353738231355399774155418129666661487291948135522517211005938546958354901920730628876696861566646170963779321239597381060901623632125918971808975156878234691679356666836989744937267890043067905554229190137227549907125770084905056147444967819680307381021078393378538627842471962827322305706274876619394922839819227563969405873155009130019870249064071057815707261204691564313592470954152896441697017811450154924567169578428788805558717480774166674185794082544898217515971170261710200370746186935797356574644347226671426706111802922116104102980909042636860564798218084204905619747657514712705808339930596635572256791203997181322842488369196674246035274791919095895792892493014788720390870266385674847358841550936486536560535617133844143249900589259037056217212377162661708251939253985978795137372879374736746063905603026502157201686704956959388131946507128691398933019105484207717533357121455205756519156449871469230454949962312783507631254684326163454468971788276226992022144065800401229394421712791928173640167804164545722581900822012322160985516829589051099077496826380899425638841091033542613591398765050972461836895222192479525697867717769767638905365889473781309215621859205643359395086547878593097321671458205362945245879433675694480304857127794717329417643297006589874054801529370928689476997927321819788553763371276369708267465126249168517310039763010709108130159165245081480569502971606875939778181357725143602824092456584271856529404252305326607597380783450035890838989630494075147670341888599801764744136471429438797063835022363326369137505189699594004774293192254614550357410205443736689245795239639346434362825121006225344780037719808521389873184975745846748891749925863505988237819297744451698490546530381800058828076818893774214249283969714594747561806631465788046028233350213888086374653870795410796246102805776477501300471940753214205333678487222793541528057130262535607147123110852768235388710213188740890339416094363410238987975032538673256393391382503915676485805707844115577427462115095589172442679536188411106896222051334599903259078412547735552518201783815126436469202214244364404056782321457948046315973414915585696533236017722087300879284486102568581039006108083000524345025277365419385354375480234953997013905697266403078894769727653637442408661851570651833222465629099798049207902437035538163078282374128099254217418051600320500396612600940630646678425518665961776800025741018623588571208048985429088661387911281102695044476136549941146761071844157425111410932254337122916965736498474473350019258647009806275814504333106905171248867958549160664284538635751441896728071820146713083833924217256577397831562535600957134542448231514235018486600291138525124361737835981206119490171515192454617037134958798949175524957642709858266607077756048016584382978102176047477476463941085630357450209797928595951043460226849221917162026940253061306152920899674370376333819859507794094298512017491927715146048004783410046309730034553355285779577787576874738216410634203182239256245442037875760351562048015455617566948523832227175756628551284008082669753005586192595575998747774400653161002154450708616173959943431945204137264615185113578682429168163200461397776936104400347758787142890386606471593531681263565968610800088966770920020090758787646044894838076649986360464997879925313290676794279942403756626719532152563427024496283894941206435397236354523084488759769992554749251790181134252745528884532216755420771808213700356113132699994356825800498791429510999538202652746417658041308536117577381390024908905389769055503158267581683677904564821455237795756370202777328536841169018521742676552680029389776683702697000430801950408178370556361814223952684325402865961894934935596858336845770722552143471394296055274591912989823374408936123806592533258003881279133014791248086864678083857528800071723738188299003946735498518078068556160897169837020501381931066881419474218556286980565114761832926863264407113617702837160619243441240751126460067856668265594916037193593269687621131450871549700601758628798721724434685659072875142059283779878732770227165156798832229633944669826633060125339793130708807922361734278241507701353340681939160273095450375995092825690385278365569337835634841244954241603777416917851406069123225716679743696397413644576855320362889220754275765778507374223526048226724144619484652475060317188323836141511374351943729845297175374951979780993224992428674687607665935834595207680417242290501433285530958275071095520126446718730561180956802488652092654558217251278428741759838094110279035368891923904282388725778353449706967842789832233305272457696427558371669348110599399486217835009600397083206851885536441749454435694744175342963391817077457642301512124339670354337945309090733630388065787378316490746180675851357242861938275788243566511912652437135200328975004077431912996966192436949220558881756211008340227201069842749820677211258753194054699593132157818692079798868855245535470236136718701810465008744406210944689302160831160859559215687199171044111347394922085496475067648630141632241770882476868489032624898889195884565587517994517590866611203430276785667646902303063660836801823410580545194693447938074958224117718825374278088316276145915932979419060591052412270944188511288659198691988520573776892387953382029904554863437892233788035952715625716946364970924817107646717767898592808499688070146854796066372499122844387092170466087240462608373357453871929666211845638226824767986952034234787380261343185414164949699838425831281455242481865575205203931913148900257874762081619847141985544417445200440058850475835958346740960906549766994133757631255109999462224287177720765520060123807732945453541371510952450038762997920962759766249910646102216430196342863208882391964033557540151399290264037751387489465191914561567438741513126989344739813783343056922961568963606305005611532303010594358969547403440447231834680567121701288575176518974967539896052022130433735257197946037856559085044888766601334783985193894006049942011652831489547688188017619212490551442249174450230551042382325052057638158584143886623630682123624009516335352415050690305826328104743045855115839685465351649506883803512138726573717781428417801225075634077433166090134031435613468727574598045238792734948438584342796505119221247349903766026698735811367693728674445341133372514983615776315427836666791935864392407308110768224064493057328091317925116645907005063033696924662170486508735763056409736841964092230739827727646969324130396709658075845753946208902987953602721810452606728276452438066447791630419702063862116155635295949924754223290733635438351931831516135681029642582143883770309300241925440502186246601793242378053940661802594601572451461728421748921092001854148879373428008572016910309310146313057280273710946404520148975388186855234189033129986893727579893816706574710425413993922642937294210520991362350049518659750098597917525138912803220637675537137444921100446662415147113769717247500924999771398457129389002531998832327651926246350936045768577909540541068693486103170499890185263922113851441575034447335020410181148223064358095081401079897023871960185853377947618000663917540280540834726253682212060411414503980805990037419338102949216437338041820067620016265073444709472025586763265522847247895733271531558227527946336949465682297874944093993004622223558962627735136111741844037508791432717852135279363696100690913235583349895845704495256532290351894546901898316486716449990207325931124637485018772213699366214167008464614104452057260234149862126155029746858647662067836827563573882037085269322669761613474462104842747396390973134208724201042901179719838110708006334516398543785576046084307034002921907028572302160710593504421093612452364266142628984912751445159169317086588128484714594873562917447340027889953539398526211721235061084149870656314832749270674183050504144257193255011538956214757819305498859175604057801581208877174233530809173558076797437726129075463866978987362666891609249053835254698683844905715401634693594947537354022360669492257902035726592660611016281487344304079010057666252794999387703397522057695696774889917283964850416070702371410058970125979473517876735681519088233180632494497803484301901392725698596649041526762346626919166878556894313158963191004396738554014956815088163924346323884445307699060698139214369957840526119282063227694979951724779352898110974917316939234591762089632389806367305275756675535735827210743003596529816273878488516767481047506137441656927981403297807321034213488309761012639243112526038283681451556210591696640191676905117804704238288333530512777715736946548948082043717208709943786695071893486533287171574255064793656289044074181821341922112072749492499366442281148772939160009181443634413232552941043759684073618681882945220649395585775313259015700811902576312556784073912818977217312309865079174767976938782607101955164953209033406320468485882143552997949261818779762522935444151029333189746331513063799777291718743051056731017056399208735857375620372722769615108571718895449116294266193720721887876239323856779322659521626017984343730575138789190018155211468050641073412664150307888523098582429228167482461084036053606718748209731099129609845081022800377958702749159620129978572018107444970652767223627697207854623630315876330543480351626218041246348192922142935044668692349934380743528530255007950313993444705848296345761425894265325499780268314985042733387417449745798063020804144748372440088663972530225665974378042389102025048107116333136563914444513758523017265574958316675097268998260792376915250864023155561499236893509923094602733594931330539672710311102532602667933137258560698339222906413299276582913129805903930887411980760544187222724321715859795677730114015262217662188354449599270188192869477633011437167594594526512274842248760104222426150307967826048008634421471016327046758231780254316624496167538624528537685087717762280294969667406688835844108939961259309901369945473799476397393397903298010896983760445111786209207987875819582832781874963543223136841881018935720505726010694796937242719919282582454658887298114373336845409409578620118726648337148250608751528559365886495343078566255900870171189858708552502846617519197115612927633013654650234730448431041844994173569099110770318028070843284087632743364856602717130561128249770564410775463414958496061798896831822645349570138625641453031713581736877622983717047918951534191450642938911337082854561372499295175862188630049976027426063835766352252417269174728140829222151019586459552820206780771894820157152317777165121894415713200594190406711372340679880159310048356728693647434953271463205532335907530560328550643972234146834480316053261173698056331406181633743111992136705763455470646852868917976691709876071324684095139213152181028196948348044140171441282925779692822122288889595422144949454665847835388283357851793029905890548584963329547837741754780953299541200014110755454853592753839021666546696850970264694380256582962259422923382353258448703970298821175043204272719726253358569815565746490297613166417121000929548481807093691515871651678280668755702391617680853554130499698483014205401099052050996170491700306389034882589602537206132246293364047461608488687214339693006832549415523977590531739825974247161012983466779957761830895749623516845679086890323971753495176615647088694066599566585909091112174451113521996395464337736242910212714948218043084472846921780142987839273241481562969082840315588324978352235508541198670103974497987452720646908862270246112113463738552804643473054972071083832669459798345702260732634590975636724628424553027830716436337854133159296781299903372391742355086003047820664953416535948936831337631305464862003746703721835263332586300022541689833029160541575843581943209913099561015568763775475003602818141340813126550948273536611789349585828090925852575522224060029274478020068095587563847055601730743741749933420237973972600798774183110004192146334444373515135401648313706602524396383013067277605068345820754885591039181627972799235841214636477555437679733823213842387192082692501937428920210731609254599807033288006717748842001518660984888760718566251016266332028883519588627226534287909748523892749637968699620290075060926073099596091224432739931703970068370313639097825442667000418218612035470309736188963468139901877347698573512483450048525061000211343713222233510584547735704821755318348010863977424745392898862892511343157926678820712525350922421175122834547998797498951715018162543094409299644864100040700767711054185264544474355834901615629342035889252510508264633447104055826311686915955099158332926914983670022019219222881351932550792853137553195383432030988797449520886049258494721545950280237238050526756316569557567059635455974691953743294121261872197196886466315694345512900898891315603667388032795432930308514308823284979356591106279482693840385508355192300831608700890531457979661385753343086021611112719577439978023368675182363274521575025899674096274888951120044694676452235156023583292888259729509197057452028312975107248009344354998730331386293049644757019477201967281733660734882106006467755429001974012952590150140418172481632387735285252577082379163627087695941176326851281407964440551932422542785715097322237075420473642448835587363667139307227548528606049616147231066089318711179133084689891172566906604789361752156519224512147473104859414528294180049616789818911572322776838988664655672024417989036393499255795019057579711603471402279943835868981561910842249899781382852747449523779070710691194966300857091312252991194400406012841000834948517573516229840825957880517598327498129825283677635433962987810675311376966470977938502562369020420945390151827489258518242823516144120197946574812938711570386645874615786348006044440273683318702484904373421024601628476249795647033614280865431320731093274620599058344342847050849671850802230126707676617165930337766554444799009108948217959263037354397680175491550305418844698578134096166286933897567568075690721659568436448963193200879889522450749407844070226909682688644352794500464337321494983030171222901869221669965299286583096833615313417764763648884523372354060344452679418938810799725076779410515922485635802835406292038431010719230682241684267328229312195466227890882692618300775232892461836406558123240191369257599743856378223661406508440220209800897697159699810981094010290991259107282356724412061344730975114696806182894302763041702019909888224078013028209708378869788007139210018049465398210697144965224161986107013153091087412445129348210321304712144690317509317935046963354823841207201861427480422976624053230039110198646112032594245122486674649748687626220176601270621845797263498638084607303643232067216140832550791129792289079764233115261700881297314996589659905522886636441760073060626783837853305917828475310142484268157819217002664376627634027281096686525686813375587267638113322278166060520057606456343670124302479577747016890162785417973698127313636664769013724188285088416839351219160699652518730151743838914578353821469596434688403574117249365251145148762255233731773146325582167433396260007594832977880000993886868003403894857018503854278862010394846304246582727233690296896548324137242189128981409947605723051854566276811005662845838914807487994639991849012335638383962580910756569383730975517792857111266061836684036236157052199353230671471599557627974002313613927033305396904574431140790635252470175129300621474781856788941628788182366306968914033694613183313412310268364990398660832006516125159620412758554252728864305792250698769815550070965522257983965297708865322438619285111466714512339438302833066633901470091062979962298207076446623809646621526570932201250467609505930389960277415112408940183035567906580090147488192282613295312189002803853554822674351908334048425118722615499766456257982756691395721819800060301874009406777318352074357129392702957460022485047427583797212594958040202631789361973323376097070605305533722066065868616667127770584649467366742740705689087443777917590275497382840987823471652308246113825855110495943090690372546157525074333837286042753627794110271855249368508588804892527083218643986072470404938480194001108439752691093303223478201076610642001856562355221357424655597289067224913971962621446701650000689406188852391270510933155490788342530620197789736462709689721625663675043633902350088333251736966929285044622661147970452269260035161881819465440719974605518236260141667568522513245779936894157269916293109077567419880013796992351099298784265076847278753958394203636173923185258792595098053846429082959826223768285227057447717636461077930646092638117425317890780817583140869427283422013856942302010551352697150878130644370825817251329543870049593109490908730218687400530970109110927998366104864056678259404623960050971561846353923429607786463008292705767710536544765204977367777101081093649778569836357421671440906684673138369112173297213594882850344823797629531619818962074857004361037800511819785900227923523659193033511005493972791948145433467022624951163995003065536545135840967530387067539614421383739045845694832473619469878398829964177523888534748339191301791669015783902803210733026618551918081061219504756190515825940559402884782099541824944343488699660563493980227674368669201096013398373123436545554160449030491843054704675104148256144426309043985682094357969330236609988291992664696253941665404164409765429544070596247896328938044749962156133993767697888243265979626895438513682119408421844561211006956067339331736834975885572515885199778890872592884797636382444167855294674339333306003023724900955466038413534216360058449466107421001847873394698367884787149383503669819844007563870614572227579060092268900149600040032013194273497984237946806918555328347515076263690750681007406198386401288733685748637777398990959009583490336767731616285548084001007069884421075757909300327427349596411479950232374321452993135965381706712707788830650761815510870166552488790563323678788469606565031010414205566953506478133395365917343320555635153579655178755550268388728710669764073072284403743144787770024295904556329148121401453451754830337978619953458338734511788502215305888932633705020128146673692456512119535038312017158702732063516728420615942505496624530076795473969622754679766861619585341388008240925159628333860370133243971274232603064552878700767631196437224865478920187652825780426113565825280595101712542923770568795138210257455957021604301141700172512424671427230582525170343902824863905456026769589178655170596034351827057932346247541026893812019855653600271943157220326921972098164334805963259824679433362565987552280747513769814389909662384021498269467388140092550632284816625573955656338151642289795316501378150136565491605666500980108836908745794246499041407918826384480524920264609098759752244711270031342970475706971245786215848370207545976543212806532533330671052505225846816886239560649019617378709508078083760271453395456966662754695860826619693677369665750122778068312268168964931694619242883779402329090363859783433499974572930042979576106909327037456618480638294694941421415052051222535322947640686529671187471604770839892419503031026881181410516333184769267560052100444194672921523948008974238850010081584488758459672568207963770049663741578686358522931268658253042476192451871152473626619627905743321362972884597910295161866122885241299454255599673268469712809497471849002201124849287129518386262609436121829449111631087733424460435763662710304560599633818059064164220615715457378366626724828926148312456635773659076804711065042728543113365447660423188231514256080835845129386545439404240377485070503892857374280580830617540499325521185029256835280970729947037846698197098719775446915268273514523262006315312261511611528150668926591201236096910716801169683751001875607701686206733046888949408371712467557374405915572495435220889475514824029534998145728569569448384906317121485896716957031477862009483278725474645749260045174549256176452856782776202373464331867128438406543074157923776548734447956845838452572545854367131067582717645825041542754283956618055569349877390789713761143836435212515204142008951116433617554615261179117353216530290857826723818187030157378390009856961880004925596304115563006866272829736158057162648676233950386108088249159192828817493022326780243297524858537458083135620638917974063309669888799945095552894920583700149636010027243709500344960567841334836201344337880265379291430561881991360474918080324709863711145968167041209897305354818221067473424145800451831118916677783221576163169821359611246316638085053149063238567075295136817099006209012324591264143681687905335394670798477352285130924256352280405214007191083394304320087348529712357133575795521961206718046874182919269550269241346277889023630454967219377129466069305925121897230941869722797310454363478677159465855592887025309528489392951778870521634691277089342122139071101525558942236059836907128042807801277076492474513940707412956588238346157939510828669126628252059387619681561471817820729948821001120680884533241284337138919919492189546763167622603391525992273468584961877046586260770663237234375465507106822537492775353249837547447679788209182101440166273596618967345438398503151773612953696733563447651627452771060705217042642424111899591850819698635449920749832996010971015468531617610200221411062472749458741729523760190439809404745830466516895546759835963933195663265058215715263625377755036224397563813107104632805514592867829821569827488019600430565268913560355281338627413547769328785609223412553007262175905909636466494422061550219421481651915012852791169375315644013518892808923570480256463894108081790023347394470128605495907385911781770025676805354036453317309593114292228725245577223348378704658151872724006889762995403783446543410928505238618539441349326001733448366458529582683078350222905331977880720247730756539412806463511964611552163853846422746875725736213432734575710701081722001442813817032723584629444358147472921475496253155115770740376660854237193082932529634015092589175167841947069736068407846482480024218383652782417741193998256317398427628869409006503799959357427874399993964956646905132267643677791646227080231913442113647588657695194824315419519729369206427386750743336824629074025905414124744931270161560506875332975001061431542864523068616916995128634564025417988502276336573823492419575477223770086856111033343782789054916840814245060804634841198419867139084441289078900173990826546945329840622663513701624115043070917418020227258875358809259419073592540907390202959125480045176647564727497302021854323721114099864037485925983713646162330705593092139398536625859781608213945147834308720184144425779408048836741704295390051372854422565453387314213007007656812103987200290608569901826424844021836936654226688843901678183190642348711110696127738754743131189087331947749871225820406701639365243520256704726813734943033313733581559816534073035736328355626600689717099387712919685015188306326286387147501419977080670841120780781948934327922543056077424329001643518599065685567352936757378921976697729749307020669591913744847268571847661386672712908641205583514823600023107078104382817447761791198646099844496837579745938600838726305424634759522188198047404454314249182806550034473113667628473958885191611418413139261442254698371560937091087229293607369615676789134444175921439965249698651384060240842537396182811901373297894057681085439505008803872525220971050133542242020974757375049355887944564319804393796469248340028919126154279845813609115720568293146756148668392967550963193094116567497912094937745608648487946429728710315748674195937073650526995478665409083429891612490874466328511951279898057896088067652389129083454867698490711455663848436024586786062020873534560856973734005896728031025257248057308066055820166409684957220041551288795602490216560274788461269320716026106189596244869392354061356463805971908450797374735997090734435522599560208064212558199632048083702415109946450599497599929636347074016096111518723977142628893280484458779283438740455799240217925603816313284807179726416105229247955563148574735840834125696715874552456890140306181626515426812131312599987595120683537371101762695090391698000211895415522046770882033113647324261003729487267520555947646803747449918470941875150519059457374150846665741731623741803302480227521714630263321658627282926121636371384722892254967489625950578056842001505720314012993146857927037025024456218771103721966247547297778755691393739974697784266204663854483443297378162382714376230505211838875487397549356124203813123994805667180074958721967613213550751230823562333256028480838156198850395185588531684021110067451307850881160764760576501707466213012422087893244238516163468080031989700550730348818232249370688381266444072771267543134704082186811004198154911530925370665017328275269872374467002753287285922613719429907684769375733990222197043268064282426090685572072231710760075267965758519142620539641445222009915860151536655432204102352478999329032098309906111416543405320915204464957044747180232525438011242535698654500899759272402563591617498678445336762632668082479447243932648436474357270096129999672173102196404516461015686027741022172768991854174395467269206240785172213232690368556570159503664253000032993973236310448696528454560179248312115399067459217786514479249533776237027301467840093381151930200165803670285383891225206166141225071960747853196953467136506003331136145792843689637917104659361042975560681154066468041387181607612727743568844092490003435306573304060982817022532038170299962725729755184219494824158584741428967550134378763392389808658935316433253932726841435069753372184188942591721178943616887257953956166489335063431286106769984967536923616862940094121935951775906670969094643428051368151937508274171895112131511044028924276159131182754493368334239390552613356749492248913362931306994681130595338927301931706248191316064370329900123560124067698346305285268752736114271047290739763897940163010925356364184359305328447243071147797213615925644718314781979730146630874521191844631747977454269325201133423129309482906445266564681724636334960770134223142925704997553621267513736327436420196806989432750395570746668199702840673490080295488306175061595098595620944283923856124078557040881247665907919349455665134908441864748853916069247475345687578658561181274357314749414494225626935581914904051387533257326506056776843654432021055245764912317207737101273788773019077963119824645386756065230773355456500434899233777284963977943842541712551571780598922940488983764286763780441395589580314885925952775877257271674686268352009559664529798920779399513038574886722014793357298835645462917498920427657837519227857095293374510477447035229073935555181965773554275138699303952254614010026935267410468572548910743712541526232252362413079152207086411407737333508729878500770019958425761953099889663819725802344067506189333036360017612525957712264402972276553379570896128348182214871754267335116278993800416475477790987388152767109182792094824686736949433759859975470636842031441400141248355561108300169759748445067461168727500431369225779026845128787442556079216307936872190306560019135879200313476215418359260652967223331300554326212783893628004998720366052987006685959805422949108246966087206457665459656282744720017815174238759336236448529216158908582861623959339517633112521435993213631875665463527127587352012081053034291923352046917588041462831231685700775250065443111208622678860100171540411561094402514718831370906840393139165497080266013929287245905683993992662764285597669050767002260221970016360303121049742958718165389644929730381401020488963242898449398500473175205770543022372067147962981392367963260580672417162852012926862759195025092260995567434138815819814182002735483317760474821470706072040135318332720951528732578112564348057913796868333070522998380316071986007256409558489247787998408779624082731542587419760599775715316832674387933449360339707810084355712417964696463805588441698297948994638985136427983356888855196096317872921304784377457335484775799608435127048777139899076241353009288777896002947495894939774416959415020862100645022112186561757432226371241870238387176969437256738575209111052690083751750678641199879719923780384852970427521194233474193671316436529623760734452556077086276727198182346643190190530050016246517204589483412439956842319148273376902032918997265815130560031166374095783599717981047844734546492478390973788005075132977489843532469553158588385972816400570043402486194332572959392710819842682381418436053486143538632151822683187128695273700114660034596111626007680645654594202168506989833023444963163901369666318138518835098482896410975218919928263260683256035746847052531113557872457258146575826775835652359746888843468982672131844433388421050870422025097222093900604040989616496118525468211109236555774290644909671422759436296173157672970339630204709393308666251486820857309878211802305892897511096585813050527812928128724086638479386346918405818426118220674384844819221020895168682934333685992471606260750172059809841086628364029554678457710189371351260468812909339978419004943366975195602385406385369486039530251446851149127882279680591610782306505964616189305125856198366933568190053330727741063124666024404312405618651373088919058947129855333594459326444163569329903376355040734194460152093505047043879753708051448112555591914569805858182044965618662867463597045677758320970762229396042260722019769329867929031128589627394866873056177601388260639218714722191022120630580099881709967488666641527852358128876525429772161972065993260928664406180295586008396918057489448447522260815631372008349776084907326355212062416041907934199569821135275473485312681489563469688399164340554102242826844065330599281696490182452856615016688074107298925463746097377528831626530098535327306769456360519619829923660382781803420931517197154636545923377803291623060615210842415476937133556785080629840115900156670532187163290646484346147469796114945968905098851976552581378372826380588947949667191526310142725676526870308596237417292951882541741020248843700834359606689044806674154772700768384660611350600285385966075971465049707125504962069937861339671407611693242842913737708986119875531060195545545393312837068181370624274069566167880478259653249896823522926098314579828915905062742562626255084347821335688954679251822479274562143235204677789900296424865295405350680898611362340021483902474866749348925524418336981733862324185610360275158118475158586418959685410184047054262834492635113090411511319282667463046035510247032899787858895444368405899439997571146235138564957974067612266528213104714634784458593932245005537757038769370107417164434292413833683727552969325789504286844022198069599474913330410261384685042890658148015699998155696936973818758118869281695847644263774670997040497205499241459072721608162160137064463712040202673920580545944534972486857571996172071097560468704394178924034669385703280465405665567588500300716430494370459342861816496587935365971573218225861439993459538304191023858462775363679267603320432003757249845757204951952221545127010891057154346500470024902816990880543610435524873215813778971167393418547834510635328568291503502719621147580744649221799611519439237124967507242267404813880780626146433310413756916715804942986504885520633749206870778258457661912163233607571590349649293703111039972508253054675524396479471770038053334793773450498512816247687624172861058454964122309608160364046842781186984642015475945839354650724526094960095590741650140193455375029298337751364501299332252766461155816822624701808729017941824432596879677104218821087215440083238344002755910011519376059673710892329171803300987971701555983910332623952207766525664082909596228046696676406324374438427375205816236633002720960180777751457067379634757692313037685861245746518548266920945472448056422406959748770592160414359056647531249392082876455098156252059825029620146777083841002652863674377010947583271860211650069889327030025756021826433336277608279608024305482924081609880161202573172158077511022457339834638703329181988943795514538710338516757572506576995836235691681380819381831700295394352153060988521043723473705033367000001224463728963966823802538475243491448453913240565907484840649261750229078052934048299718840438326875052975210621627350714072445877443224195471285280236834011523313078701118002886792560075581448596972852247317167417931957937106993828414929265123437089380402916372898462221437885080645883958383013254290431525990453823432239095628507286358452037144383245426912998234877053724034445812604871066184282057407425824438919322380254015354037692366638565140788069261026691886054856006703699074444734978560398206268642405428320156832105774344357640131250627939299631697940069453082434498743656598160944243328161154069306542107757862147704282674462718963654654716375854729783691124505379587981537443660080672648518676722148725303150776224014693052385121993124063879397472029547665191201819039752713540353034358542096115067928905658645718539757682664199072164036523553230862809222244166171112087664370917750358632863286700225905047631153853439237975435382475135507960669370694131043027380586615644445300004611165912022220080400491221360555269275800161722513564490349649423380971917739422102840275180160231460639657785164634324200339829308499746761067798828014731715447584306548678789813149669790752966873591503185356669586916795581170925039755050118659867312931744066237008306002400425986390717223619619680038707138896424108676749706341024251482374150378256333048711851132046452432387077518145211765829882531661228132570591833708603881281557792417597992968580692292640145533148464035403295684064387485515472352779628566089584934378756088942917476552314490490568819047686732143723578850231524136374677413445401186715719479572148435478375081299078239285292433745415210323930441935004879997710351116778749711208915977208126843334360043003726474411077846733071190339440615959979416332130567960223024736046470901528398749164083225819539227618739865080333759219061410035897907053287802371133574406907064606757565479571795676683559186135552812374215606998833189862071811102120434892786762353909379634766473414373681570586193842674948181736807746634188044748994637094818151752343080051277279206693783784092118922907296190538968158625028049568214005966789737948206262742379524081288472050930349325072182136228298238007035572663897977944742531644192159351448655483961862176957099384316823844392489822003906158095298494369725784578461626234921460575954849367096777278327020540986991683253159480466810683268000028176861791843582392074234156265870873300641123022831888022300030376432345296137301204080040109130261621567381295449468015580141417986140381961105731760737661812642181457840516219363812223193646111588349215907192176448033439972883096808375143724335107727240705543932236778385930878876037540828341001007376027573233603951409571553203464034252803489912307410035511597535850449089145209809121049147750142443022154270021237526126040989763915758662318155390769764201415960865258086794050649216254327267948038753282291661869200401404864884974592468074394406009021079260850457752362221366016656449056341979732450663098621773460549403716426704430401908676112569992379585068436251213811257038243202549593715208822662263445319292252288165727471520751279389388354198049671921160952136318623624550358247754903252193678720596528875284884160056856253774612925073777193875528171741180937583840664956619191450237795952247348821393883056802011780930419643991331139738816801697806745278408346386142244788228451219667315606886766184515468497029561645457625264714724199632135634390576961547286843158482402076335347574142015748005390917696489699348792642896179440271109590822884791760312213429860349364910871316544050265620586735953147076213342588944364713392960200390690540866919730818890567902100668385491765072159753760079131981784286357419186361938947362248914661074708329929220148665849680028627504565585379735028894446385042554727297200761391407269004522424857022351485328935185553550274439027679211870150148780781475920995219313690721013083563542337738596042267155655511668725370500425886537980723646353998985250545752621953643605845097533042297434087029921935224960311533352446387181479146423241943722327931409047620506791657785247479322362292539684743473388665192227614026645108707145595695223146246753459909517172318409823918483061708188462212243588568910397348449610487598667063727821853689138192454763142305961011958289448073334094390286008253533305976971698744415769852713079863816144470484040913861266922716609184655417577380008681603458361878134852343226528093451395823830668220513537310935561384132715607207069089615471203796988078585612258283057886017308250348694816591587286930309535796117505021640336050977821389504351433911690272797858777473606794479521582100939117173300438524449399364950533118563365270593635795985119151940500522827280042094764489842728189188258767164365537793573237686703451441159003265199709001071461393585818326157696557611672177738235691696095953559187754140659589193096587587769739320813792137030131886195217096936421397267674567583654108577047806911592899172443630393023000765814404245995817102589000367441180469457978919846890900915912058164224220694343915860220637701040591956339552902430423960337437402902425994734833097943713843310293043048818683367399205433576557535977554737640366802622576957359622593616933803708724118818075577972084816449722798822392312802288143519779136612525416465729277468982371103343945107821389164434999139945817933695081306295348982786694995571381458973167279222749628684917207802397564392041199515500704176910782653476203152526607610534813421053670882694159217346502162252986987558309948910153143566176379303099191319812647886010137933749993047669341435438443642487417358696357002839168925331531988715151492598333408867540372364500817373984586606809468896481468000671030606931666268238046450850189770350277788422564119263167930317716079441534363424339931375102601931628205056165951552963687723253773549214152464925729589104786281143276134399479385079167287413844487433692207178408922479261103900816367950757809437103922281849538590733718861140595452820726374276042443520663317892140732086460739981959841503821952946807566196777980470766635642033390427304550110236616652037630751111832513911293374091972955057293449469978417949946694436529401442604004564365382399740947494234888674737837020990686553108647542502181787765781921091894157589524454721754023508865519604059209648711205131115891812409080685722642569463010094773636353198549808700001747712503453839096643793696928099638661135525902646570124324079975522891863474683334497139154212253330438802815993141267028270869529054853300425808223624670507180444167947312667361462298578024283254862209807162723432595159382422345351634948077971270924442552161945971822710972853134526993152066215016493271201071390508832226484273528375923519985940758311134320668786713802462275125070403459292841768409598815209324013572628017734857792017876444543508226887925640705021432098045155722408375240127251576496062241322347372034707389331440801253383736229367014542161585245159222628469156749201217411893386335207737665139243674429633826016689484821755066267962510522810199331999854090592395933206784271016112395079006496047362872878397682378512693413359798631587376188234103544827779789019960693486482833916714584885604322337843596783454673691103620633060895123348094075190121102917905640800091946804957886350514319162108623576942088839930210023141880998638274178499995846020995534695447011086619911784827136695647894623482344617180207924672798232762060481021174728912551010251333850148207610629758270004093980414507101721887403298745950500747051835088186634556858102593248005768704510728815720603971417987731604418949928156095628742068827129122281045266933975292299274841500218834216874061860110228478142723436276406620901639219147653615934426943339622325019811057161714676703811943612819826457677311408939728968736060510369370727849435511585330830251286777371996650476896555234164879538986235586749135024855649502731822415157708676003277589543570064341700300130475214867347180565134454125704862487776594930808688340117083807117427691331700542339715666390255747542095873048397551363777673474230420111864300699293729216491853487390627998293294036419609842602302208976171808276345892903150666781477619820050384916091952142436446011725321993461194814434516937012898563360727610632359187613296098601142162732451247407325587546849074513443418837646683275576470664468598009376330678417871383231669103115419219360601771569186123085640795119733475468995786508164413877047800166930408402793000848789833100086299618958008489163946438268971327151282328910341722141359120070666450265483026481741251759089692302643669583288131780083880300202862693949236714646298684348964901620748145483467130586401263123648199826582797498415773062452533561560350320940354763997883325283161075839938055245297875565569989643286037296870657369301188516345548440693931067392098662294432336099548847527439351946978431278854222398052773858166602447085984260108070286959984203583750627518289906805113555459046973396825015808157917640292088431697873267963350678803985720274977254378126791551118400993459822190853890484404009253848266403114166650933326942114450650507207450481429254039616712452047950608920666113019897888657513750760776362139945331576133282577748499055124071568538014572149892573831271000351284166449940513762433714061866507261831538841642825552057194665992897762326188740061382619824723234102074836416509390309034170519224669395049699593457613211302552983903770430539198530500707124950715363936051972950594014774966570904259687268659871171647800414698291627994886149604318037630102216601092258859545816028441816076611894422879332664851862417888536189650898966262690523803003138940623266512876784011774399881656424453428821540842377517181310556246943785717830331580385861398821454430457400092377778078365666892615736539548426741629909273005138889810942349747671619999569089120044605070302618885744025311948558940219605225269042095112958215963737597315417548948467847768208689046523737526562857251089769028699226892311608812327247702185476773511472534346237755611767711586136095823165807043453747746326469412023877033626386649250766015725629293164166683856094666398553152808168896394571979753560445963308082777480174226627176897011489618394326879518654910684233647501689791478478430047753564491210720962060537321489153336396665593579382133892452598279129255616089778150001255242386319748387809501633618922938772635080418008662562181560807194551438533382188868240517984939672855275603342167333370555598986869196862049452542764653156253064562674359607822427188526307531896632718401954356660435079265708689416855127427241284108945457752793021976546668942292119765510490969749543479090401764262239451787564471767192497986809148773556782920875589940950813922450645792437379329806193719054721974892737934821260801570066651623045852353374105533069767792153650989668427039976203476884454718582251705624997781251576732548019026562271779703415123420874439800904037626901465755732342135094983569044535838359283975692711910893218509889451398741960582034062340050240134823153029880884527766210630505563125679190238202224066541157373647889870347880987792044455183834207730240939723182217466667335631069142418485582978645162677093174036921529880696667503326903885177434689465972367385006379012904983042717058680585164936747547218904894208803850634359993402199854616352461023259092496793116230821583177438518857125676497841615603401302483997073490260556259864739264495889078305493761906138778792895130727626711285897959531707904071741769241108042780704349371883186162501369759955765961198799783853791870076333424504377904369190262967042501680436371554581165491432572517161283887883936118012571545327585433818806587033304621611795016307869666088235126179732864344134396418909860187403026708770827698237181557649022361285364434259147614256019930066888885047913636998574999534606141758966550600174926892837150018240737663328387518695015923883914164760106596571441392861246312428794606532996762452794338028600687575427828288170722700714144817511729455471376974840265369240431398541604403331349187582961852459955622398527106942786290552540662536642846470213809264428994842092495358227778048350258396799291564804517482522503275401356825119118228758512064335328839799945919185476929568659978748526367804468318825331225712844859723443106218894780398899160240518258627016931157378364846511800195744746352524911878765064798671008850766853942966274329248487488230925182423221424891990584318386314190265798342843057007779151330499003153437905656740556923431246470558454198024578971787457009285082600585532729558760222099596741711690280229950153025412626044287131559689860453741083015047580642544616718788849420481619591520809178285865635645673160027444090097443337248759300213782444567083351550359649949800960574019629198730386070324875460740321030441675231154918649916497565554250321860193791499218032621493781284829441027928464971822631525513904584507556379721463016606335178017632087914492926113737802549331971818006255831558789171444010033816654484072239984968503027389283208453871847759644327562306956805318775694652031729144614146027989463382620668301951976922565244887980871033038640828625219309479195393730304606401608185508222921062434482227496636187716879612169621317795935497851807138455823939786442927314408483770821822024052178279998952164965386155071938673816645708335264206497117518393137855525988436817951035130921350786597819783949079946485070487314917273636302916439226109679053169354806636059007173029471596953314334814191807543199110103455529294609512419201588404881227756648999494728652766016661751707170358808441633503922286994654432106838680700026055153602676062040609346402332031445471907468952645422224479535176291438061531764939145219751103146395474799803478334232672908007102426877402079493339539061525387829714014801875812179444897563268620534258962951643938394925188462360062111810035139799328782479571928267566399169095109495086292007391624848259970461360279901835397402306319750411199021905232909426197157890127296080030111497520612243311731213852047642426371530621574138089050077865237493722812510210517915322243680415719729297584692964713888770483263378677170565281411097639278563145578377789759081176783549071403233468556287324204525166080111490298183547987344387505648209377210983329762880995741843077074098478713076407551518472470753197056111036383491579646396230288787071548433364044944422185343850917628627556086027443916389107427601033825613106367750023992019011252694477608438190173402925621344541739495978644286414304694837796459209571173706361329957486262750869314522685322071445592567274086555863712037751333213376331055500783301228508434767357450385132190675447957057122877595338031222289924350943083521490419253184950999397476477696996850994289478091075624384164662627011626020675716011389442229126095958390341116863128925713088084777949108490895265889040051156430961199732271642677813269376407160472378974294855720403598878586677348336162233355257512670283166048423467474760454742269841667206200840123470638752309129542765533494646628005687560341747933387024261929309618556096229720882969656448644679234232890129185042694761239445905282029621740291211029086803189590504118796496961809647758643780706616595185291163618466012376040166299474104104394823818244488039932342719092923264905762886169559979379719881995748193318991520451669299403232669545019409603328031476887436281736750915503353376924352754668618955146287715251398164069823564514376401355358617211253635587960307860108444680920803136605587467473020657785795056473482582111206139733291145456258332151483552239251617664080064623870851014685638628831600949094847104353085576543233018517703114105071933984853568606339609051327174473477502947375926472843637795060965287877719795221225334661518440952402670265191931292903312555156106828603213798253508068894406846480184119476700621216665630546700068165755218135734521983090463397794366296852696159354806440182665286168820787085047537496691498962645207555776838825259475584572709522477223902293398448402112867839497390451289120125605631914200153436091188007162171240734768629517570618709306729859573846396455140936939007182285389940715645550273286515875130456654428180391840406457787847406773397442410734938760379947316083293615691758611384213488682778035269962072203885431708469895897032106230566230443158764020439210658204512113639619904831847225753378453529518083280500831889923978615525057738897112545711267233046250660820488791909830867898915204049414385079486194442154212600500775253835729257062800100053842729946870396324873505947671579680885266045054561529818193828099495450128659730494401886121166149228927194516276584134432045018692701486867852523637735372733834361270459286695501704172458998956105672746711421260199973634027236343007663075190985660923279239458210421891030930062177187933908881672253324058439967412990440997453092410444922574772275354998399615548963194102598186759205731125924964601603486964526802376656089811645971409474676044089848254798842302615123044258852080533664905322164799961564118703355768517587284226591039962661881705868649194339179826236655243517788151402536452214623904182570433874623081653596249913861726731879316805756305010156336818591278074781550452933800357715527979904872339935584711441765993951700772270837636313310017533566063300333384536128555503959016429998340642088262222188888306420368899224164155941967541079534255254381124437936863484260191725868577903895171442394039385689497077868063492961265324828368484454777316500241649397463237050597086229442578184523086327254785745700014358049885046110526101852680585321503180577986776719553130083372290631810872420726180362745075839366438760237952338621929270984519919317961749808061974756405083616611717221081887347749593922559564349486908753362150103528810536212467314732643160129403591748565225431056456691538235490907210794619035168579701251526444065237721901729307128755663064022981582005171491972948917854654211920522692939302347658214007900464590511458891514229544222224504689044096833448588237688714700607776891999138984192818627607503634238921650783991079516528470594806942702282080554156039946681331172736144894980964567534393003369643579967119218269101302584291231418253934352661142062524587907706427880224720817141758135581532288278855006017765836832943628551308697035868070777339395692750943896147585940547139647009399149713215923235229068322736147958999080598361669182833670290184770436632653163450648543483846640155436765797463995285839306079941010503448013418444347292340255199597709942452987963267206203910473701966391564911565380508419753015787672637098859158258555225877865817146962808768273252010915562179605090134030691615674932553482394016900676860861949866607324254030806753936358799219146144221644808706576313974425887948688807328739229449769273996804650598581189021382554912905846474859009324728491564547474746154516963651764533435295225634463801494630020898140344838980847690014650152386642669774819830927267625080393007614422308590133396882290147541504154402174366500227059632867094053306844418679590331791650261725771349314852629564500528829387091798732155238522337430110485360936742248286422269943973174138598114942266147008978558006753052699783012317940306736189367056123630380427029186506360394836447637804304393815391467370737482429062094528940967002271766984808198434518317237967082477787650268879219048442478180451100790700435630253580212455118150884718163880032666876346705703996873504064628518268875425324852877911547487195495151003871652836250977081782426707182268106569757771689854526858391431150755029142788297681695280574425589793496040916097022433894287946225032242576213620467509840959045951951519468979617613481860114353343519249315921048330756508724008317592169082893143744931765255982810901628606037491137347161268784572016364602104389010732148639314453592330038741787107720679627814342630425071042608156417659728209573016552581848086363123550654749103532347705601064174522727718327339995234733576650831542677672485990534319989520668393955069026031727761010896507241858298557808371701888326728046483533617010575864640378648333776092035131645257741934677552667365374808676971841780731728209309102741426558328484926299765746987788537784542136694538722122414548237928687063270975522113162498556363502966193159770242187917180176514871592942170507610747459334980689253608135661365197714608553179689600663477205946490979217579808691896387680345396265816692704898903983729334865267461788773130436624220659986834254492710996458706722225802267285050437306379277699083094254154548462903733616091058142363779945628109529939345674451745188955997838659215730082186424374653581687037492508283361134871197511717060252635637969940103554691796439490752911671577162252187419886583531645103976520609736093731021629589406472538304377531409318213200931581490568002467163435865088780353803886324864340274066081882965312424270238881601014072453677172212368798334667558057917175984899592422767590140850684453277430298169062948848841112852407482342288998943810771935362637575696969087602587841653578918658520768651040068824476936975062802343290615270996064372872706141750552313957988937552146558659967030070165941156082074741741949941281762635182410479605643547998102740077499515394815927935036585822246913669240605590083712736994700782795305352137453895641278138296297737370892498986066507918302798021365764829971689408611695086261195136378158077604022185912297921821991445621938078089986067277658971361104198490618307597856538698748620884165205330005480481593126827370846692810423901592353924920061749242001499865096202654004860057686223356883933338877960875276678749892854015750605855598346500548156808248182141618754849415291405826251758076172475687413989124336382494278688411943162087652755434253894984450713196073144952770925985459220555743743459177887070390436289765268324377213448102217732225894356566841534328922016902887295291957714330819886706066631691276506326376520690499874216561237060871583127066756407641798230797613107905666745598408163972781135263184683088915319987772731366175560556281315650166677738793817920501843734650816914537760617118812724526065182350896162103114394719858604462697558402394249484150046954495703373940593274464401673593868179435380987158446728630274751749736347892431613173994764137831817654638238566568638553337437064521164431687092334327137854295328680321069267881533447382271090472800362687006575988887854898124205180913301659841227448772056986996817950146537346475596754376652601579073199866537967534279696108772878046953312467217890133136101920199545492578416050097149761751935854297756161143759227766360112333089759029502084404639876605822688277778601590763594368146918562451918380398844202831470549111535986279640154110004959446825881575513356937515167328308553617952926465970031692286707136933507368317060207507980440503692982209238585269233702963576797269713783390890505599295349966851086689626974901664143926511800202473523906541081960961080838394516763210594762493006805458585062972844095100544618919160199399586662908723444912185440587292343697584469583091258930798676497328765741105028044409740057134743068882947790946801265390987211230005120133632727714231389809416601586714061295669372224669029995905234487155875138369665226774596645607388888700208923107788195661276506166021133335795141340645379278276168171288848455307222550464874219534320699041375173573061035117191147586143563887228870575255628403474704396831369302495036386773702489566787746315876424214977044556023819476224341482806261478228536700409889872756521428630088141695873049067582761836838466281352357059248870927237832107774018056317787008725007902527951098893943536424050572392682800842990726147704060470854768049700633224570567892772106582883191610634639474031481936832973290811834729387686634782972733503367164147650392277762216564582528824851533755124043312681528060373487580575826170512809276707124409010942157683875787056380217475931917367992073231074357350518876028831510623210576253226989415035019363429054195672906930781688007382911810744600779701617039332425847072478617964565954204952374708770341276711925238794794286581953396718960469102211792762201361896233669299404234065719385508914501310176229555026716791111126050805077605682787841466094631790092534526186372783340029764324160561763115494621721297866809416749819169356273556452948644087351508968986600650537174709830935361667322187007798464381408873334562335224457274300421543454286328967225313377341084193716584947472070531422963152092460473498573291592577813655600885676209953652532839584986569944923887777547525287366662190583331749281213195572176696960204028021771009681643272855277829850549790582834947295632191360811743006667212907658077705634218790910371763132688487590249653865946108359987063662020978920046946665348119189624716386489461744056972590142861640852077069039175126859068224176464193784281052905374162162041190346423274590976098098554641071128459634824256335534978133249422088066234079008327219287242674080845609613194079833068388229225823769381618875709607122582252042627677850830761251014071464009170817471560305316765951840020470779188383066718425179002148073972577807936684214020148837985620451913125768122715273927445094223038139534817036937373491293049712026199718192942049795098939836508051034641700392393159872159116503425067144512461544884840959148223430310013363632696173677258905818652217122062565704774964887853365220062029402946222733884325991535027545353781414438880425820100965421700046208702677939694083706866703036405240745265216600801650958114875397924465569325244998684763769128422986075378296247713418554921151589322726216854309728623605515130425720175292610731436291502057147459083085474731706845502362557355277615135614754307453003768928543482728217080249771491008266720674295007861775682020267756657794683997088786934061077083171212861450073218334279543792058353558356807503089160965242280563638792248974557733277913253761512889413428080141101885649272091149638711732302181689875648120370874592586794637293884087737472628886640361561151574501070991345576985210521585437710489912598299165778884843422596837587004203091770678472006837228951708980033122182974555710395197349245002568259288130178467202856076591698837334480880536373890167705339644209660360294366420903158443755321344326477714275833865373719739573320097455936351008404210524519453385001738454620249333140735965726448595729508252472876226206563409047591024260061495083909469731411288940280675576521838493158409633111201173147513679233237682396524524556711334198300228753652168360893765346193661586290205355670767299280559371953229827648214783109420350164623669838337567383209047906260201351382058800980391868270585225261467541108463663686054165902047998247584360127791743082348127664843733290851054746010870118406960291834278755883217205738899822843028544650414506956982887736893009934294938822390493031581127300423689547701888926594964303529256936503657939802132485400289919835927664566644466245274156110751704242534264911669154247142576458111103818479793864444743257343326656444525120609023018207357638719318850628489562501784292519500171084018497724450885209127766053370961951894164212467307722343870775680437338048749508997702018195995012587841467456293437881864743061485266214478855892397648588125811956300964368129210179233442757454238164698523221423276723737235433564668631386241599876300652272203309517795965585592444833689311870552079214395727104030010012973032144175846843947165752046751339337252736497946796594330824243328201925656053558369635671940046914161415814988674707901226345190780735783923240745620686721988470721344586118681933980070190988170387335484902404321369448950524176825389893326296308514549158438366428768234666256960474157242807150039666594589508819567110063586555256927727940521155566983618666961024112302740473907358535539459070637516724851832835635254605749133851779601186160535791925335179817855548262371643623052922729288100878088955542143912821026071207495747368186307707973819336640482252687711613280764724095440017563152079842944120038512002372598108233246646841978326036957170659890281531253780416245326775681830582550126029989416992716115808964660199678118166355844076476595720930772272514552381544211538253646246109553578774072178599700284747793802989771157719430779003517761343804569934839508648595571435221364785742581558720978080495950489873102365564155951838408421746521895276152747077840024430594387014366147611936107498791340824916100968271919484924261395566214792857203275132311712612479074936219907366777331939846734347901716619647002161692687805816837822743309504288386527144770571373574930577396133780030016229299230145493955540683016145931533214500478988617543275677020562880495162104611158234352463342514513751839614213109630784120205060238854625424487255276778751653311634709714251527318242911544262367568576435538365340323607377794380048597427123170614286972192082374715201014274724253566271770323764196530971640878869314020085397103329610372501605902802370917973462432247444403720118814715125923133287308806234750956580164276073312620114770697607543665301198087599473469013131255840029895737837688171154073949436062856452343965735830925238955562682755963358741074909581770719751862593616827859905021194613990772271810321578786525687901187070077976593569998704514777294375561412078555726482247787110742936445181049112409264100027391175602391451635428127891131347676706965263420870729681401240226558979187143012000234242134937269261537340934658440605147149448402823645809855205282277321706137331266847815514614831719716288169133063277782236018519092588389403059823455337545376935563802606891045890305784481141133708783238215039231323526566152660873505222482462670319224669546589202644118748534432603642059346734594510629694633519840928793090999563839817834402870241371685002110550225302881618367947555772349833615020195590592820118002460821908767799557897365230032877196938680801315693004200449422701181322095711921048348986251714732047490768385684780089604284528193585036500346848414248639355013873273955884153186087577898892948392647246119229940595023597513397984364145568689923338429877895548139824995965891390141442338600757266672796668049687838214500138342261979719540923437004280729781566697050704020570147013158211424467799561729150633938072981206236908673729671316824583592212403863108593732998287398965439872484332435868472720098303923342218115803243323415264400424515071800607731136548275752312132357015261587745545478253758651158264598928232996263761290687993075350995356997679787290094606937614794400289346728982930668333575652632587461603836711652690214829351231285597523614359194642678299555519032593457677075538461139712485191095361723794100521030255632411929354413361068174304862223081762011970548333995697861480864729724971308382305687110367873322552529511729279465999046251368732586901185009418132589161810367715172486306126752075979161087619816928233479090839743239589356875254917764130273066995619425625721174887235525312682946065961021843403795260328448661430023799977242726062295026977078089096201436878917630637550763969717872829406999227869487952838149652230362947059416092481394646854662469945284517688469320639661120865279054011358416224264378502999043829146682774358339976498408146473229307645598461212023527274382000537794018461024580498035829440498367208782713336334662561959170213030858917176391283403906653168926137550728778785050633387371523231543982257752079690785117798761561346326458172840265174175996440135313626557771663505315997969476585741231029221789586384969099410129507713653960447003951620645012913151096522456488142624605863782367845352590610626943739841543437410338803063030217857950196088000844851611516402829278840104213354305724391691990358367297924327498697927089480744563170605308181025681437935006122070295320403505914405117330143866648771780880198380540983407968909544594061862188423824458267708779984820566320473167249963546460171684348505739078148628853482782921456527884452011553544813985237691187645229269255679596336468289585327792220412009308390390877654365358996559568370150119790716405500093231528432522415165381323560537450112211540709735498694144461921766906971241157852547029689872414847627219087337899288431981068454240928560806113510407839992500630073186059889666729567000603354850319137140957427113791522837191080176392425184409976314820436757948859839265758843615322641925931011336685594944373480681716009390401765773863695445111368842503827069670599880445121890193909822181508713353129343731631059137540225806677979676630486931750664891833034902117831784703535272894294116986675073263947500063867563369276106813454362209556208499241830381433657616979297126063839817249345426322713209139990246837687657692654284927870119832674418030981157511150628847679362079552630225655522205061846914511706159059090437474869878792582277598698147128968036807442540671924315415527112740256882183163583654477012007325488139287024942344471703008894928388235550964275818482872840046986556645599576345061679990015191971151731899222238522925128876371113233307371905918141670489987884890284751040055077871916059222363404118050547265943081682158955252744608114682382007611810076470580575062076438959656716050908814074378350765927402559533445328508766877212410827919462518820200788722212471533036595974104867516589817386224192010114793370809592541079397981135572105119086788701487764961290378125102946330939627227061436678409371086662365603090803985673209426276635267746527161838620152596763113190034146723230813865585723592998091174731678387069950096607411537332991687527796026828441626822747567733078060270261052116758254914522396299093779926882296571683608670733017687714744936557112362338547883387265487132302962546202743304384527787575639236535498242267801720939912691261988085059716121447318873366964767141331091364123701675539729617424455527788237426960915953862579698153965654362514263843539336150799063213264189078824706240625226031539821682920140428794780710524882122901571204372505122607252898502631295691765778798326202533511608744207278688820893589897135628711987342861960633203431663437431264650252375070300308171622997576495405263086306040903797010583342985308723500166062243905245331907397146230527765199221721606136400089731511821752298602114081664324452777864006669588117487238220253393463856133510992220666871881567646609634582047913644725200742100664704430619079023898463421654537184830024890396692995584379936603893850802322662750001238522204027088041963807714383116212722621766932897488821815723605872070113473231366981012984443594992889848340273789671630658492752767114864491243337055278005964237487081363404431152631318901370443697999132072573251989803776612777897636903266406414932327395567445307192892166962039818019671266559046428501673163210192170846327428167918419774236664164974966631560514716517808605145769603188031774753157028339590364149024115238780681431486705758151506805281912885478597429164005706112687510015507757404007353963649058391777279181735484045033221774592645088857598252458839228874715718824431683528940842072819194717464349990100873020540543703122286943346923984516265279369106310218177951032186229504882652357630264607572903113625578152425939663237596905918884121071114013269575286830641671905895181840986374850376907628737882467452565192598455391556042063287987928888744175946237251340092152427690915785570435596655436142862778747010079057418487273524350995010465847882298398408602544690279075481300489326776573496627225996375388986693105005058421842068969429359546022607939608676294023175725948514451309828414256682143216907163185177539547136589855976910791317332173762011192595779336009713556948189682857866943766269716454142542635398999864307239417376995647394957803408085450162940958874393660228651876618778288890157867045837874257845882934990037825444850067319475656059266349648164579799647470752929731767773840955213547188018834125439559082848418114497213903191876813470494326070461200614981022957622606674763324933934658601093909937268573000911326505540869993791204202889330281385643782076288235629497696417449370008545406252588969502609941766393340049810429097502564424401397709683568038246254760012550818994947049380486857172564133148563896157648577567531437373082612344556399987610174148578002967729036594375730770730629421042609002894030313336327370688742237606792535802212806611623960883023544230756401614830706683739826768417848052130249842908355755763533417935355140552280616382871158655551039316013435780617852362128685312739254600401857105979960971403990334565490879889834357519705336837377458763505135437991922170998991726933499517037001606181636195830120594738883734118916982573712255553296247734411978687429951372717448356701000434515587418709827012441205989196558002435750013057710136116708546369185790660211968936210010272310047747099820748667993509749107094707820680901785619795999200249801084380887115717597671284735164563675206153605484286680528021879693776056658121108911869817015321415703272093105327886714857659295350557318551770031656345400581511359880821366092314763763905877309448411144931694215412876335759598614305566065958930297932807528337504684926886384836388569545656391178086377516221789650533721277507755768723367621544328753726539681722320737824957236159203745027553180036183799295455177072369043923225249777183231049304990779371732719435707749791743242046380271150343381009499803920467289446526969802544038875452995463864816568968642742676702906705865359791250028869432117633297072642706553951242601893570926431205451646053664596704130892267004172948870210994235298438024102210292177405095426636687276977404723613255208614310732147481115456289319488319168967775694678394791797348453272709957148842289655129616899977722888578682660159703922329474831539612148985460574777494283335762472226127807183253689916129092047808638122394432502843947389384694592257484787385297617381723988938706393179256985993638326919846951612185647067095587636173909475282460119108308840470326528012721411968616892855143146451622775911208039056098818408470337180260575734849007675471059608654760481684790647666667589611014909472500175574686402888881867676621546106572212188760462071567388644353875303318959170923363930876526957534558041278636953748833828137956666181800997279926858277027539969614253513623061244273228039719863616016258687824191694974294006224091199464069183921505408829028313354490980178385868530039321265992649450349944278180525499571023157551506217101800252562662015763737940594814931190518434841997093010834757820983486526690112740684821776321013007836060909103805228573045113390961926187006320083928829747784707322823243808939039420603866343126705224715415346917408971335125571950759594183975132212273086818341776570996325764557666890671077375073078429570326218537204127514776631355347395542128776841348873400512136428642454810439842796215808748551573108810122268662668433479222064123763163556783526277762663160729637739760880639926725899856454382823447269905158659969563519433197425630442223229542144880704644036161074011156673650068470799050188928787637235030309459446251136035086068783358018024432687875101513937366588446555791013443722770404567355937931205883895560792123851471405570799110204018103315180441599949718135877287931965059873266653375076497858049951389174511845115013889934576474965082042709650777262198639305361165582498788286175677527140545190195061658785011036816712415991204336981880656592577387641575255915762899851696541408154517002956362950641094232324900399861930040246336669303837023562703742671696144400089049914363471656453896141134740670147554907787380400600129500907928724750637430560132848080148893908464472012090990113007133642682511362768268763043242765152304121241200385549198097595949056512984839266684880344503157503491370642407891451639937641743386503333365914668561552719356362134511759921811052646000695356718980525125975589847369255105357880223779287948876787476443037305154510328100676764644344704020822994200678835578180705008291923459800680549141867513055940853584135408274768370680289055524349107668909103291504024520035609586897047541077736643376196563002727606815415350352876540597020154774670398480159554350396468888091815733900074086546291352598632048924863536398945213388292487410628339725635185143267206831091794046579221297334804853941656750966081918256629304427816585293712224857475357385982530797019744180187508315857892661674283155183468026872862186826129072935935122226821846310249077078582357590920933502433844211452255668713250166193238478820842346338263087267856875539592658307156555143724544627684383747621710691233693820942004368015022622169128042601704626577841778712189470198140697044266466414673180015245994634077858355484993153748711242691158379021136242429678734283365793386688906863913152007284814497142033304341634994581182132206662583902601467172525401890330156953495929858519948186171375671846472340614453632015383595647356074642422303281824332623841891210171857782147709063027157104267549555353333624889101554470924156717173565559387731348208861986322241932821064519052394568727679155363829571737755790758357921711225218663799917372311442533978629420397349840608889534157141699537415248331789203860587384214786584468286906277575449394018884098560495975922176646925824711096332153493257982260666317024949063308660700047634504809340862686632333552977858637152535519861620149304854988291413411779301739369667090712901808156317707477836740607435462922585916197609227931431786306510988616212201230399821537385134507429664694713695996845628854783535475165123065825139685568246577509356492570532213442124902910711323800307919017162886461540213254971024712567027679075125021007733765456548401573833615076646547440223480837018942206244354583328919443876960542058769406245913390622192456581798429152236278674847656818363463521328735769204441816711564194476497054665283630169891244297014846567242615052183708554216871441002122299848206872159372009366534617388981654478704809338943952671661094257337724816150399940376014004155162623537350245531783085929689874927327033133054086795452096019910913144944511681305176278095043983729746713324782696386140902717314800792768386510314822023348768413897357214315444683132610815167888097314609172399562035995147699083145972276333597881131851933004655104736467316030320903700702186928925148245909128266397354338281494419504745323181252411506515783349222953043104728979015710462960542324326342347477034192344214869430047838993958837574914551610860323073549989945192514895266937803903529816825026299065578428635178353306753075282230036910148329673675843423918343099129763981025059724063127942080572045598760383084096501541954334498250383336409217342895505401664049886713990246456910348761399301587671047233705079441939251345238744858184979766527852672305693111657695997551845185333550621448706763042821104041909165086559016121351569662973976111993302257082294936387826597439995844722119391152046650929890089698925421981417161797867073185214452146952999998503382713543198789479064649075251883929187414603386931286153436184892079669155808323840840829698246889965181179614475990701864189352808247192084534348534347475742453703058040248994992848954048008564062419081595380937420647177150232153801161367184139969667583077799899379654278693694695826583816526975751351980480244996109698601538435533883020983677353722641172540105459332015609610689126175701487950957583494714278961790613377702848833069936070951330108980942852019163737358562982100843313030874478258499050951115941761781178112743010707549265582501267772571038965610052292965844354276673299912972519573094939532368522474844530144661245966695987834952809990328005351105009142824723576236197291901715495830515900215845042579758730321687212983028255043422071479233252732285929584970280680816747583115670756965514582252765509787104891852196643152210366786533131390558705373163315467362369753073885368633590101032918346613778966163343174520129656443921603050501877665896652973781672466221566126306410959007735073939903004566287745586317457244733091821310302840894980536304993606344280533548755316140824927441397593361817391047624465430861957046691214268927608137179176097645300995262812914219900654624834523796118161734556130811865209859869194881982105580437261975836203234625993530413390709496585175327638485771621799056692644910987071148707877140130866050487586300347675283822842003464077198060727974217214916979678590328306767917628327721751872695192179507768538886372245841654034521448009377218959836064384372013207495016710377851272950058677781428416179456927274344489029011980290684490528454970690232102732993782457359587514614614402280799837812504314470882813724113372184005051514560815117447489612756297421644693492586316885698389197725166650409272750997920897850284084992102756077298613105394965620967500719317550059043252569659019710233359773828037898559617637491856046372395229433124539370928839596260723922987734425479641175031460555879694391560164033224326131996975928635939941780611095616050588088797774793500513774839610633281226215637628983961935652706406913862642384094460326246542513006758368677083625261977938135828180309363509410176563613712268806359408913514323856512432656190805673795970059456922582363690363918286777057260920476155442258549539929576537914823259824235849088195986447354515237834440380729588934272108646737685241508822894152373458858933839855820550873835710511273297425293116474726016375450565424118358188874505288770693058584107825872163906138256952776835831805480491705689937669451037202166812891256127220574664177169479867350425740833139672790038372207128217997224675244501101168705834198657066689201733259638662845766979158621711644002428455620160825591042214241937480144207863663346136946272945135668828664414091619268466095960157687477748201540840947318931340121655466443527617193475118898408923281419859848816013945353158633752060363205991895865582153892000936121881215422651305958310810442946698988026469351402411278558081862901397075545403294155109940498598800663330645249072414644092866244513377049923376240413080636814770543017795816667026903535702524716836881483530329118168230856529555082896529339860332180263823004466640825602021551643979500159085279817129654441420775271434872745399790842195211185520869751145517706919957777332301547902281160936440263584152886144396145556923807522330614160366045790478256220612249333035889326356538513661471522226998943155090080094808542998779510074205064773077151027287722741787302575421561135112290119956339054892810764923270755770878700581117354381685814239984935711590540076224411505528603859449170773858228224909466003581550941741374678920380501606565949550853212857281420719276732485306051430740051920024443212448823503625472839383237327059255450040658497426982756652810088806617557369823939203961473797381744682881977336609837255762553824243035365453875125825291723480921907608126011367007407379886393022620568142465818979403544503616792746511269595767946872427482892678249616767698947366428401339618170723398006902057299879117802273547023656501737122892249001803855083980487187869888650172895167483871484968154088937805416735225874022095213602917131461732834125681968521380281358350007257806984495254580374954121109563363620807611045802945884342236202700150185390419491452354849552224273682404605457671381352771061455109542975652661391664630247531029681072194943863547205737819565608399004220846170062706602451320367580612582196234916779401130301670856126384764668454010181473672982629715459473963299780086056163170024303807427605280898501398793516733081461510686983115031745734587654755451205748497864221946173032508191210186064935079117565882531551448842254977816391961287208673680316122924669654362130193066102300049998514400196212742072666179474341107231115898691803514437323941642920683742971267149619184440046509431952489263943282302143386632125258630466408884679403929915169602351371658141622433065446472046481758828098388231563636338805485405287092494753063242264722724856861532532937014670501783159495945817164914569699056866398501559891308579404397152013738257605055238588577954245797446780629568828511752952542270045726672993598108659462701041900187914120563637580542272243184687519295925944405687770295817115952461388033779907195721295187510055177559161595790193242083680170317012376175671258810038858923768896827925594356752762477077098525275662221845200160668715067296391461553175887134698731002675614899223864022523458308322383953516256409823861737357567281345723748354057870322826882591950730577642342967461037031424511188928399986688537221125459147942176620139135708220673837908090822920068135731111137183611856193595945070922023437900188386656316480008873989090603815454518885890126460474812295005311006993076980751092408815707371623713157817588760458674721789898856410241149073726935101644862741531700931095108751453416045597923992052743956240494301169276436438403142270855681132067099829779679720888052381125327605746694577807933138205891083479493215855161891745185792409647086140088209761320028073119670650280457036950676601522608903337023714442827549578556120533032941753738293083684805218817121015539678658375791278191831628498338580193901753142671997165984189921388655322728292548198606784374402013986483103892292038333053832465879817596557851773450112396975287078203899836428957664293575563704141749857633540013421434030337434881390761126841166889118979811096876643617541209260633080162152663155663098345718251927005443639366578691830439776382801147455990774497966179564209289270745670363234937463207516894846778527934437180076311044626806263087819654582387763702877831244549803423646407804723040214007545580052129069251120872726724303476662912428248582472331123218243232271437005989374949195023367102302987102357012885722618043851704667856600869120775658066789361132127536013617898520532707667876432997672094861586239613275872531462856874941395668179228614673486338232888987741062832907498595166004663681247179530855331677924784102655819112582757198756003566847890102075064012490443162945774732437145049658431755913235253063399369066784417087908643040484345057226465486696778717156689975107470683308659612590665784496635414314249669450188945559317233837728519568222719391725636256951031149319233122595931614165300960267178942381133887538797384325980441768624103060123693335781468617743962745443656982935606337902478460517812662719832495892520145213850324456889457179912363998211159041147710321227590883996308738358604725092418763888865215252889921269400671384278393762435653855952865093848567846582382430678036474444555702420379258098516769977400716650041513810761906796293040526729690095804696188972745262054077634747132594292388346873267291515777803653103912005880395467273068574604463067956395259307914019398120268928664345298840976488075949295715038235647577692845637019689627039806366686091793352228690388816763373890259350792030109663197474370900546901323588068162949525456625276074959560167528573394261703857732013142631829012122341562080709744937498663740730508371579324790335005167340678123227194020829970887337513048507044692313388320540200302687305122691549695205639674566020767458944006080414485418248466133529487369452365046807167431440076908263236389295401344040735199160712858870851954691930448295162291774414032004586085633879355104433040012449725890134784812404982204646497239934356371770181280157587897091803417032224185539691795949196630058051570269166050239940179003586130953610991913481287433139377092253113679328813146043040169211292079113179712138427728615932241641368142068193806685101331303015454381484215092561577361899372387543812982253789120711257572445599239082814297361241890218124688296600374354815535807228713363136962770904406067255897910532417125377022186812633516633504185000654743896676565244278299923220931237670676237244125090186489288746905129826086266585589016723896147434173993537373570331198439755757843682757990808862208837945198789880209927726992154471561907879218154063377032064215806229875247873779416192047488451996140933248300592952172226945729842528396149054357316945163837768288321133527693086316901472351744986211723570522808661046397975576795851858659198213117159210264117238652738798477910986292634932610895154493943038756352158835891513074211100022007152594523344484066696124009129915764599237793889529089875285806329693681788960953287320867907164721296108966061185995277258650301123202947001689227891564205700061287159684294900261591744082897173229324794628318447285124882022380137701730172622887541501155596619866450196977263770406131546043852384001732795054674934494362319149675202206898389934640046205771963245855005832049370897649525708545634479656253841007714505028559067343249149364953682207952316846439171363929541493755692906990265641293517255132530668821466376952376719688409986074777785756702048408061906206355832434033243210647700203348620695292158475652616601574035154881574365898316880805401126386091354107129968115024328335714289121369233782890276442254445442694880950193919679101100967067994396522732784271867954044901498092141266848938732271595254301341576399001275263029140226561261990865750123949840445294548888530612645450103951893909513403622900474258936107943464140416031586606488227783505817241151621025669693809520636807819660538616952562357568101730333293202514165023066353380805220503607852970791422710116857546459346148489937920961054800157025931811664345560722343557170789505983511000012318275840609168587063201674637959880433002117270671365703603582306693823649888810498832331219852792332555070465173663371007493131947302421447851791722305028446285475111584856612723265461948197030937251672266921171002992479179271586134997768237676342498053812669813232797537474105808324507267910241935411725197209655909575077864345327676243551775553501734346875416946024499255995991951471542890041818700439117802668682375065435355218279434355788414346103803973676418889260804663778640332148949178649652349643827141270828265479510151274632859144755675615238368629664929375826928173289800842445194176806098477967279668704916297790897195531355448327956702277532965379147666932465764571696353351631348680539875897654981043025157335028489053564138880157974101356037630297287438979258766038517557069280555786699692694897707572791672191834268376149668609365541984055823142860889507890598874988893731474136779062829920828236134693969070639116761730097786080802570213222770723756058033107977684859796699213595010533559152344532960249176684584579620844917833011082940022976547916983654827629294073355118715903450443473890166229918597796029154255033167668126436533209680699284966957783912940657330875490023898130606182863477296383373274086944046019925199210943870589693281987015540897161177533940688951701093822176813382152633283998413588933963853879152193203076818424696298829584821328913361396008444240962115293997580913227880732192367585369988248431192829897386696267504739759841012905888451267278348249813737626692809726317639665076039277899441129862309739374046724436882439120406159427054190689696338510251640663208742035280258661300579020098116351663494846275070108502964781114134914827442045042581880233570671775747979880698633975676952190891263777943820011467586618057664342226253024168518314703832725278616396563240760924210221379332875300967107186066105889528366945335548422590897320824655471681638779046763092965625658845585549318714923047037138024101587187047284351429669585950368034452349552549595673749446896628736966943507024368089374318763912403440957800544953409328740453021777579130412525619151043185524106373852169820004163788793561238928730644515006754765800457790715861711871175629671899964473069086552889093769510557698202061204519032312228986375067275217290221742773009964671742337055924896830190205605979194804138246364106815716533522966033959384599988896680589251615103126028595543961885698348571001963978086287612487171549472548651702094550791504598595051418456878639205946410297089035089856035346490218027201716441631650713277143009070045767991928943449590821764200151139903511628063361621984751686367235173567684728697875520285235861009884425144792430947022569686910185086406073419458718126398795554213989155732599539112785617400649384272283046359931273621478597814813951799546028605235634389307143948485682297477958062968554042880353095770630234871458212846756804157289664116685735390755791085778025830891042708403619098009790380231864691723552089570186393060535281061740469528020276904733274726011705914937658124243792669094646669055983618387488354961502558670600067465582380291644238887821917403932199782339801471377257564759019918007748125643850218053454631425315440615878655775957579952334906994088715538876476514227842838784093037176432261984591962736385886099485431486304945113208658943015853181599674065126712992157303073591511885599398052386519443879034884558876247543223649438324401233602760705246119902499035399752625807983019188762215599777927014848716369810981167991666179072631898332229740633784902903636785845813435601703181053958105812955417307076242723035192094096931919347447070857063696421438242277692744023749890476040135461005683236143014344593653160030624710841887487178745498736665125903483652300255185846986499120703348299073555865891527652131525073592278615842542917846504662435308274586851181485305125801873349099231825036100016443744556794788297755301384250197216321568640471955609749474976748513004751791798572599853803592630125798681244611093162764226356264009084152351677568724085767576613085774423446842600665101794750348740973681096904892625163941174080696301489072757976032975636163358281624470258492551896650660883058584401764104620263996873170568009056222063477436003376973599904975267824008489063649477129633189253625672337505723351600220751908755837601539865359123653917235928201166403842822502598275317239873440847417305018879529648370935024439550556929777926544543591616008698808709799406902426098194786523510350248488446843926756392437265648896739148449814096235247458496445117463304961094584509331504664290608341066901413012977149704033163543900880712567288424158031279690544216904800023007134142390331581119431619789947467141334653277883064801626650793403005452608201552095672306136014382851411711949366047600389219773381227070213019213092388458508554956054890151205177131704778846186929991045895991100965833674349976396872662505880600742583410845586815802687473160223923275802146432113369174514384091325937901856816332545957045087562480606339497727171056558402512604280389288331010926630325157129569276468854174705567078101761398853144779317481629522011290106740280743707329784334936057116315720422440026665911587957331244728111648971067311827302942163379601030690782476302788176919708608407868715025172342078813492065214574349151370325811749029304218744327875362921221907778132001556340323254451177350808093729312409777947047107238595048078664297943621033709537251263657560283905552895984337395611999586275623240699309479702311669118544003364695481025440787427686328012617012754946208220407889246199146956881024704921110586790110382061300086344936008783403137719752359839027435047372216552946525944881175070073589354099141933269254127668263270170485909040368113076953378909489355730442867566254423809906318085081428124085503569840706867051340363316526197118689413463909487484253304366179096227066802808638805443065175495159941967900303316314957075395759369149427445180430075729244174042357264039974341437386358708761705646766526025879215058778496146415941063736136984214794037229170253930656352706805967093490642069488355692328333536715772535313312700773812116279798374895077928954320520738964390107466565793182395345074834242975271055520634904819202940886112938098152558203804075220843751543129116548310375396570602924521234510005052720392749475864457373916581256333689921056505903470288832361056362197449984278390645605085227679852868542535839806718060277837828791259507564473584925178990035312489000219093785440995459871807811740366293181768745144392798239828774714682055536115754123517220838246479618460532281301612167388758896841727981069082472430779939902520668800863642289834070188321916084850532190154755693936312759749820694159172265063658373164633544509642789341742890273863336354355517521792906002802111176670969080099643977694399844423265653506893127672631375477342116007811251778933894514435258128853020970849994954825930152918747084712399262109418111279768017791521464236819687972506275397185918377572851229127665727221768860692313380532596937277962458818529877352731094151460165490728906464179011126804998158962646743738346728117469382210543525334387660682501441888769645533957398772303017793541540152159291650355642479023291372743126280134290891204601136302307261016671331286659482807496160606981487229554828700325982262684338699483280004834532917665266512733704301090493802646477061566135610269792216755310673611394006553539960915272135265714155442383585035960143608342071797083731419472090606005640475370629881801982913649312417748223509286546279601214968475495720601296102805820985168642822998783816921234277401240932090481632352987213846882665669203630407320047775725495040893079095908892489819890033066377969277687646215317361687425591031336963551106414035807446150804489059457547938811078748566214274715056071686061497467722298580227985221118555344334968304773866535738082472462381319197219320494027724109858649707708239254984497632281965420026151260959238614915047513325255833090674942236573858316465976803101004798910003733889077388874183838759373283067975517134564929805293149495447754876915759638679060965748639872258880586821722171487258693803146580704984032717388169736013134565938746559941747283376645378575398733516371557245001043834454098039629505821232014252048314489467893790816603327686724319766060416496337570150559394162217544753439055308581814288046662081923283399780032231066637139826868881185340308959288037937155422285114893805890396579796568311273878250199235208164412288901606170488913220512048111241704128349726540223953446217768028704405434056873509024654485443440094681773783020197648676960044041648694827438085597975750252626802828913764832534666329674677906980535644166167521597813215234404363509296368610385477978506305344311324895004661306409189240695560458317625936939622807399008211995725219455660981665358909475599108335424062614770012586176569021594659715761943255806147964427802284191694997638529651183947363560703308603452134469314382331376062390023892369209159991282816567463593770008000224111322921810744697069857672228610186168789496976564493842014000763868149683666141509071508298129903159399384163762064729084668229097847623888688298667628937505687462509942334697719215346978988267648417791791713006769093858157381544192191700980561574369212508548197731568855779657018500967622330598992673254025120181612796441537167893867757198400245355294002798061240184980671988549061447544297752950921612010651751558048438102343342339942614422548425657644508794352381088156064886396283007852454015754780220886579483716632136111904424157170433194611404129112110573266301269131340129788588469859420151675210933261265101765038522527076652260233341254945260860737087623768540524645845631589826056995601064259889499786684752518025438290765704347474580043885051301885950807251323173873664746334225163536955818885558391406308439305678772501453971583872579816733780120655415075029217030984824970549650843372065625507068060739772644417395460608084883848836110933279311241114877953696347283044566049338318487832489542329959447628136093386692408297007283159891230908772204919036395267087452858030301667158541839412784098441944922174508745872044770761670726533355530403624227712530508112911197911153160983321798153021699713792203950091855232774111642154989717313409345082176567186881587935960378268216099314218124510620740487794483549711064965411543516753860755101077659455818663830093395787350019640382614881535105227046891546013125869470790068383205838152412028058613724294171471045338387754027933681214756854517698435294085776917174026877829743061343929032394184244702392135077144353854409483691112432324781593283511564574645515499748794543299924104455900940618845907062075703109640543530787879410730438322699031827404742549319988747919408649435872680301419991835822727387448410040332895458159375973589752410623414854807687257780494195878835121857086142342648125004855554430961585380028557095983895131881941817257573868304641781232870632083018976967571786007781175554421068438148189873716421444384852473115681214745404408162238413874716029489313805757599081706670487436274135653659855522877188327792479668464004899104465909095164439973374028831482951991311546050135539611088196554788897233052051022754604007643825010976348983725634763466879103136585552933181211656661002932853146363475507217727478382226872917259225887263366221292936347378276747557246461107240952418446049936648297658428738655408920820059149455830991695776174115121863368746307356418998380893756417202251596179413466288472123799642968622963207036934221830327057741403412145689553438485226460842707985370079979363586983835097702046904194563591943409651702130373291045615696676036474195131728938340472254222105366706597122673556318167021564883413126299842884408863540279505198375169381706834557344423224060185134290712565293193887706357703503589827007514625605622586494599572983025385527351173723304647225601693331508197434051872318184491343006769919496536066869155116270032272378140149427916563126746427899102830137651860293143316903265011305037214198319534593292544010956699746643426506381712243788398449589055949061516298937936420696817841809716669942374105906486228949512008936791422864988651497830703374752319017280244367476901998279746066039203568003199015143806183085499797153794806384823683272951192799651162956231311821092787798006731965794027189593831190319161221003198883042140180754957638847865141590097192936749139663529084660835039636348529096619404261532463515282783176014231578159824835272608721253430426882551843354763492425570756513928672301566862454337491337797284326204247732002284003317695066727299531793240986253640106043685793391456858369865338923988962027573943570562781575574394314455529984976874294917499333063486205191739673113965612031682360855245539550030653122245533034158943301487016513860811239539699567774636062156940398617480220706352049440988009475454048356114492193924414474739297855631292014059319323566265558450740935949356275772269871048018325602294756007962567828444972389214342935265346452601485961399023600277401635756718876375750194259009535129318710519253051451909136666715812146856170251625298637231785951919113088052940899321339155526464975052850588583874988700668231020644962828741732710522847748676846529683746117861289894531446432901840856810685613795974019982951390513497465394759522111138795758477165649611290377420918706444292374596334625630456914938377894417183914026180924034482996956145819536743347375692238507985536758359247179097805269448311637191569079729697514720698588633127029106003905223953404021726417643593243616928261102140790252818159275060990710804455064374086461436840724027717454886187820662857917214098530820592284308694755455867443264010580075307359859215808674282366588709293709967399058711006148361241496279798454850331941183742447161092044848625338457109478294440185129951777976873507734219387185096891731723713225583356448843488137326339583448435464184230959417080948763770944826443317053583060718300071261387094649183414766945622485174050064543816785889033415210693378122795138088245365058358977434250748962915369945984153313227652901600670203115889447610070101024102888303360585151830644736132607414429063433159436346729083463548210254285212320930065385183386479590766994041297201911952119556033751239259683763010293110054821669147770561351805070309212555276724630301563951840027008356045587085541403016146883166557103483191925301441164810871673668087060814050416170509011220396622003530788226530766966956330211945129437241209200214674790209501749782855915368326797484288681166415064202664025618715239219068541824046064979681105341475748581248430431202598588215222917207527882044657379680970957046050935696992782476743630512045816738976349531152986668622589257305876774051754659943950784652411377444641905702282120466897912617134477567796682115088198705536254325774119331657349091501783547745474272379883832844591539712392630215310397297356294390223042982267337234874315257694133113754522429649353226688202169112187484137058692226986965746699707144600072891059321035549254105581057371939824907366715724220838111894705467205593852383231755686587954674650427542748849565543300396490307791886204847951980327880394982602279746951745818748709830147481276816158372302486769854065371371949032056037819928672873986711576383604465832116312072702234642947961060884006568030264206371484269726646233180972050701385743523742223210544802992552412593580025419573103383350431718422629957072593864907023664022165149566395931723085623467670196191774582655376214842024123906338822871466093574227551294328598459649821993813330635677176629344453835567742727491517285828079385691491780014802410686007062685677440214348068664876436100822941676899871463014022856097537582703944679988799193136820058911849317467902218964279103297282987904922968482515309296606072105380121583377218917479408309560608040902392190608224071772674471382155941640739258988819401162283512117289437523610796425365961415046502602719589348511474753059409313821279184282206468904544505175538558618923814095140271513593117873234744924251499506664164666178190826708687654928555520866689016925119909635390994275501759183115464625159046935265166452676336556393304613074408947713182278596201398418376838232585435760836767009660476532476077545052549944689992159246184264085573255770821589026924296049203055095745472812806197528682796624632474482487363317947983795875871905756877706704840236556338205527253158142825765951587674981517800339821918135972391518860194319453461961389212019218677566008030764645680299222207808655848915739453685719856942186405946468711144993130597074356477441563337235509614287604542060963988930509440156607606966289622746456366096865394879368171218176075018695397074482826272832773527954384665700672141825955292003432129279781809300856823182881764547898700757625814490937204263478344699962860908407698758688614216868680458382858931950802486511121155046702224292783843995310141622045714580640282641566148080055078861462738276113220518199237901918001195230691702352851715008376198058931627777054710365939789478604027910349155227827860500789097740498253901920308983692191822794956660813199937568617247942767156397023038421396228992670502726028364398141772393411017595449064251476081559654392575315947260652544202121132777888777173760478594643000142543930323180784373012367556485856361138327726183444576564540970552184389060015886017569906625743415590040651756717784606311783325518936911687849368486321156503479944916276971127472089024287210934887633586693563659929434859058805312720234347480804755083673116505488267128786752767475921024592630844643495691332255066257543113887319016667337202343584942458553418276475300395215137468629997883062750153088173880687715963264342152939199792247769788112717612972663185722588730639230961567428266215697711746156504274543263264640335506578050989974717429100349589617841884238067179482228663709004253882858287945513185299521717911361503108510559221542052383307836757018756303043431719358722859157022063264387577366696701748072152993558571527511824204798647829963207025955055657242834558435581295176172456320242201355739521403514571730902446346880958264861647120621603653401819162869462038841227785248835659669942758596580325483231903220561625670363306032363637777371321939311924805390563316108491325279309263175842024912000006963407285831039686769112404530657358712168171399413079396830928147273057015106210973120650861925058243579681618131487122508109056157059404678277873112328064129164702780967564933405097450355239613902391715113446075755048181586687818253220079535717786498528556185653997274486349163535812964808499744062955553861885985601660282262825574867471313925450296308956890964135115439459506505041573909502738202118974144679227813680135587908339183175726232379922625850076818975301716379975055452714291518958735534000669551296100709844233118405341331488354996354444017523435770475430381614819209491132817507976282175683591927053895337232833427904307517253856485364805364683321729700257951345955471032297302066148931984569577079658339969871584643546238869894329887176919983467440898684499118750960275601206388022423433153360084107330434391660080249482083799758962788660098034630426567196441811948129809111073302378721073320074927864788711197619366747353949795380321897187364681705486099800985127510314923412204842925771472390235176104738213519910444817661754148033050260484316228169080984433159541930778094930048259889844811864270924185546510123023596376895046483264606193690405514978770548124066831253058201309144470811401746939083488596182269724913564419627528067792933860738227445514964427224849645838628060389943910485897001229974507258203899056520896160016505677811786120626195133745371823891671819978533921917757207491743592769128914853758383730984646908504119746038730078596009204414118357640421329686893791991005501649901170555550428448359128736423595118013448325954819912613253251627805282239619958218553492860240414610560458302952442819305142219933958106611954563024341727253531760940275613542828381467416690181762378527965360205816802675677390574841314727379235064263362463750688711141849023873395128319175202118506531935477219361184941085135589223816579535032793308671312229187031443638333537993371363800671802154560161500196724726144232793765242190105702831150856944823548587348936118270844917745997998496749360744919168014122925128245930038358633879239519955551336974433430785693099029114786703745211819613690977249581516269510883304094863788008610831879768927593061434256480663401013897742739432028519487419243604861555989167799158733893122963343958476827497069795404786645809754411586085560760516758679919675472514596417623899915314910525286984617914261899077920858190466573480518313365530580094593098337362902388736513629971769293746186518721446072620895068274542922076176229362913932352431016394054811120492285304156922209296225907495985581056618925665422216225744709472303417778031440599753749443519082224628567809388756479238194973754854646882742642380292246599695801488869524152179000578693786848290198794282410349348789816724622544402753377369621432586053437916474773942274862543032902219483388060729287212588163566083655737453235818744462723681966077385957585942863022131183731176848793604762576843237864443922822759965924392303058461371565025057924042151535392386572407438927479750311004239933155335904917684633641920173880565665423003356574744008514965017364994164052004756976429002672873150071196753836876941588638732932194295614536773210856357257318122271643443158247080065989298815101799060604194667527320734211969085516423643721718720029924554736485909153789065863347797629091954271624644423073069343399815892470931269594541491443918874202980582742351799654276275932535475993758079810347850372411529854439972602110345863426091593487205519228290374879646690846829723364295949635987923936209399243227134708940378326586404852082160415114727325397612480551671482710464126112960268443766936177289384089743810445057916625301996963039196833059181574286678510175145457260360483853155170722546674500280381945156501832070857904653083180759724315552473143062167241941662062636738060346808088803927119035276534269266325648913017721695979112814387432850654666616650974434506571775112775105949939818830949961241577534284682628957173161635510937963229080350152941955327483508582317771798829667482305331035595396023328788810432098726818746889233597725589200112161274076423462884148560783746082884663565660179957977959232488456032201033810282057058484583888457470544500392603858382269492110406498301438601404331869521937514953275453662079240525319590832332535365004466340841725677028068633964759438243908922581401986177311858978329318093513290811529974759209743510401588424976837741078000660203293327226745797147833146885497204581576800488472188502266675631119105987592664387858053305448011879180102453092044166063708342672944563148490850261440654825512042435856632636993973785738090437846985160397697719148223802943584011614750611909665873812306213020147761617426793205248215318383904987103159200813972994409681937550361350976037436967557537785842220796585358007824883203125303752766309622925821322997619657346505511794224226175432519794998646137758077286362158291388590837157170856049911234401385148824111896108646547012441365044395984720776784119097757122115427214621022497824207251628399319460916397929434829083151961278187094302380248426735178532827764958419231338437926424345524819464755541312805065980028119914428783332285249542614400215880850097244342116762559786813122121314652617454939565800511572941399339686809804623805214625064788527180893677382559011963277948821115978651464244223595489408852936349729286342640662903955181600167314133069615022234178486537718328508447104334240238293560549947390665798055141674575467968064405604517910826841353821168215815978529258708344206164551075441151993703590013446121158193539206017218086906827890170674751103458858406378109697083737885394555626265927514449675152093869812177860017642749835498837837580076474470975854781630056967639139279170828842142352926855722244213258909189222481434632505709693595888929755901796825159800237973948497821377277331049144299193771130693568241888792632756139691524399009324151095992792141561402651657611713353494283846577080113829021600141353877594926308920135318918957030689348070412989461706042831047315379382788321049877901169483297312640234271507396244328261773814969285676177074645713876257074056331833830019961892299420996363364032262632961556614905229168084293898038659228447702980873573707710591831279811970821186914303739496803209932357638598838379253238123972072871251666067260703638680148231694105564214902402391823465231374924232819316306852745064757080354573496475810119096296585098641181338540509242650592648562268075709975661086067295307850004450670541418072092915067245691909971404186973508721343736413765739925957250328853186764996735719222554165218606584448491715497682621471115252517685503418705389089053694333231403939714848535602784391152737722405851403613979864009193154311270852330528268995400752083244676011544269924140494879040572421857516956026266806346992470938572503264670806703941234051651627380631457628520082540102573285458774727056882956772075993746051048111689813132988398109610568917321179229257332456685709857855776386660279984087937781361923918778507662516727059783799435648368916499851512728020468910395548745093056891935062770011634946744768891528916108075735165554600555902514168095357027167593173359235807017666462252586730589557044470977576517347179955242465915762215187998075007066165711134811960207478227429999220570987513037707200012569243015041419375014028006797669193039498554249747127848185520987798285215473184473097340878557204909639593470123360364490754344679030164496712967151814606717324397223031619845749864832824781381443285266148773342532319432308312839659813507882258604950415993358211948951711929596026893453702640889487305128240964257307123464121123186570169570434271641844315378714618146397228325104505545178574720481415310465045269572849280441262176050587021802151933412030268054266104569124587626901276724674943526453680883896809143995127433605472555841979048034700336900672569848194715099622179768416423988793329926817750570040436413113928831439124850965767124631565783201343872122710848563839111952518258208184143313663975287837259096976807780824498702825670182151145274818998378968785678186752512014813135248459292821895249275113090444737081783870214941338330866486007008332982074331616373322750537025975128637153111971458921796050329582775530606084697465566288713388098326298267504770513182920000141144587622351379203117215849844679112535936420417038098269753964715121534053550672826778694335827888734092240718468208897067475002642881967975359663296156252558038172233808272343106284086255233419665812610352188504935166412100290991497103700636385934720415177539989884653891801344471464936926288745890886448846658283659267757118275716264170419817193119318261175578578185486745362431516227469939270169242181863503332780477930197784229539590797051111511037197833223834779567388789388730928780209196022777093104127371168904762511180703829871554325811471666035505331993830071349879395348193432119327535676935636103486640847892114947607902841931003303015278469284232637366130730618746232396067149545901040347333273514958564971791446298669907880880848209990517729981354707291241491413561731837760995733320319411169551075136186192180149164058465195503113434137016006229197723200154880859648142055343364301047325295047203616231076349796199462103854807100752791187752404655243850123147049390957046151945906760523987720802403401346833740380730767017907832150392305946108565937809930392308615410387169829652993161390407759168418473945108384284789646859613835581772329553013934806451020440508938096766664966460966083336922285830171695610654664914970363549512846362535798662378282743851825774564316049428086905532834432440458441398757068021282939765892737934030032387685131901481846159522596643183727397599047210944614556976181412160750799769894936861822077386056886809334172962287255179676915765704103944986099424859771966036180280620431207536335774192150866902156838720534272519298356548673002216490192065253622150476250330342002889628849809146402251705582873178561601632828421083583561500319455988204443292009367818251255908710689261183408657806538259973204590558812243195125238070547162253868553177320211844288631881097175083973752158486540177718749615731298877698285046915598532499750324121011316333057537417044167658289351603066966276417916968106116988483448954569664117254363723759051334575885580186426803054146155471118558049269613112784567677218673543003634919704561483995296145565315640410801497341562311383214015265144356892359378500840813615429883719941858335136874677790183389299652089432156983203218442518682725254424550092494010524651016278871401694684918704582896865396091151286036449166884119093844789943783437001866095316506211973881708019789667833090233616935791022385303804612520250657852986529570213665744986855154091864697240737160142030935633010869976974414959398329088056879811024966223939151563960734520436426118660759069287392382079381638393616027699464792197633777851229208349547647338436598077610006831541934569036848014973713458226846052228989234790170559947282364879304437042053025076920585104636742009279244929998908933173149685470682966979350109965844176689086071551357314119100571525720233626766690445304676376103433955315681041898936665912710307372463371715594351625231770181455161046511925316733555504499671089000022021441272997585642875875574091431315569675658780017526203347935492774090571568782543342895098440227594993486898814869530285121055732842579666149045183667923731396420571933068585917228559166191261911134129319078954623845295444880703774960249716364484739474718543893671029531957300138207227913821933614283487819647766113874717343943099293504403115881001515070563274423072627507878857041102883413149443415953723270974881913898386399645508500288057768668826453012392459572251246647617695008762776043995353680249211298371385342425567264943222696846383611958560479593229040651889615910297675829596157938848934492173154943467177977671173444849727165060039696133514406275826249897774655069660794825735120279297064170374776690147295259802387763522490379629436172556543902979988054647522368944179749946010769740093775684325027732833908677855643036335444534766939502561182675821505788061296036205128886589776387614254194336435239373036558091782122003864643182812534066057371378130921815284152321812401963527047621417126355793938272043634723929210976807377147999452688591364996347912454289919299704531956085571846954070547071221418133988377527879936752673407299154991720337792369926854349712048756860554484299721931071174159668997739241974791038868102967565484555811703138152530138662266050393978698066654964093271041457262203879461783462582351865512912852247592834411076270700728944203458784495876785166527985453482815123423398530319614373553386759563246013321097095816520729841320736974251509546034018912161730496333863561831748696205112508086901117777863652822868260346169675924275457604882406768354317627855732933716294711565237960943547374291029294540811909382586174994020431074959945082883483969535406919563672028741093157922305860006236696669075311198413779353114018295576445114118078972915647445035546499707543227505074415481253303781603331830169794088190840222823819116036117060958139280489886370313147508007336368846646536150301723063965930014445894988408637413881048227291201985814814118194080393576345533636974260508130580765030860253671239079547466324957209858317860749311799445333001867156489476655399625651859196916519415382230982398129109113120088507241883003063952635484876457369708926662841220244292835973280694343792214165064050093549920356523285161153980557769624440811541338485251201806022776904344089625023641711585425825498921081354016775823760917196469592486763416819752130489910991041916843319272100597896234748294242987506124754417043230606676563531648077518459495589576262510448079802169116174294789650135562742488412058604129059624276410075562899232579220508048258129922414605473684851191123840350884733746388911779507703666939365409089272263206773023828040925304232666131565932421190390215934364509608840378187080040470520253362173963911443632426324040264100369655964399957608151007713835498231111863077837702806415290079460257268721467903235465235375289583033546316073770823647302511872402915110262334463238700616152064874738562796565327139453950387624150654079716530815700154297800048495491350529951213776154320053628914378580423078649334038636272006273877949459984581334020397153991592007661209479915346691126950116333105277640270058063340236258455195237522340355444617703487143494032235079570036102711475365089812504451827845775059001698645415338328080026055316863575559180389733018068616725895031737830819232764086240524659033805927115911792866572831397480021645385458987560519595317039017027527988157824020172048005294999184854341739325639609454892791049587480070972739678065523180437181270926050873663296134910786515169537861717933545239277219060983567715571343715963477085171207296370253472465262808947800748531369486379609118122328628891884176401165261686201328235709138873858459549114845601170112352766198577321941914185593613179649322608337254130855359018397050642169902101660960875220998194014858523741956143262411547256241917726193387637743355407030927227231712921252247058959612892563420264920803091351852802093805713400635982692412101473930679030032645246865580445613796788977804458457367210486295436847605159951425456310525677423782956137470319668402716466685852677413879408506924463250117126652787796727704328471726869450100918982676746598210229813883129700395107218656615711943355832804050344183105984815745397019463125049550117075961900567150582808415063736765269023655998720388833246199488675153884016737801736735941965986532021635862030883048279845279551139985059457320961465948355616849175815639963199897079651087306670542473108575588747026311400046809690563530685161776465913943083298435333280651980228218137713329963832105032910070461230812442907740212784710492038624700138495092524870618254493980913410818381784475862302664026656732146637555219620691257198049399327665947871537228976269582347596892368218013469115262714840640333122007020247102719984387048629579701805732043790192318072807932985866566497723152901428345164517019710556063317951609673921392886824696813455786175931619822725275971449246725705487882321723132077025340823533487563006400590977231711207857773210390939309034067927820455064986119305985056193407520574519899869473241943599600938790407778915884648568005367866862959786135301383621396876668225748668037580325807325282993094844381736817856096705156126385110402398855019535018734840656681075231705754684480761655387900690129878347921506014745324929972462686419149982043304038535137607551416792639520013968612409216082261563523350311519175782383265365161409440574548286334669686291776327616431403919923499119777196700375443138878190265334671671068906402719485031661668463970974729799544139821347350254480571493208914762601355009522211850007771149815190628002376822484123325375839288541768897753620228436175073613105257423508220272276390525237566476436915875348972537766528430220678052348274850386120679434875488005573342923961588950504683404473390247933787813066434781524913145899238070433752174960198899501590422978276137246103835815786305049192213505534464733104671048681073618941006458695575843224138132827520377951024003119630058145653050133492077663519933476027430540655850204836065467818377188210224931540110883934160333291257203315142105492393301326789996281844478302589506287316231404012417592744221487267266372521967031943617734264500983742528800835922976299172392726214449522603219880734164628583678163846247099930275758400633679360169826800531335310035999692680403373157177271678176106943828795154835172489659513786561012616163757153157768415644907682516717064447119084388138990111800763558155399167818106878362477817659290904518899083253885683733476481180137126664925053376225061223795758505877897905782759607500944553867184409908800299893876008038394651611337717064398948747965269393542502283987632770880395722017285426180146943651147674854316485398461329517435006655286069912647840002490997864670175800854888047313615055501918523827643333484903652508030138805410021878882890901890759191024448052454919089997763299902497255512255052826968372789546218133479293055438708822577044440399163928950202159794714933447083357096197372468263152209452972399750304693486583127403317014416750988492514862187340736283119774788736873676175972619823321094222597732031200038606233847829666861090779159349007742473962375853851216717837813383251099559473758108230356739761299514222720920298254850114118203173396410439763828303490886070506149954569049561679716250054613224372669623576642202768185008138359392645507912452999254243768656170928463171650564120238313531241098577661656447123379977914905284226959276508448094686270392776476777688367652384318533517704596850358488886159464012710884296321332431675281794449178945104947677718474305651932843564350764221101143535360929386471840776046637384271174841638957052355871456458446507049579191486790302735343533195193272647471720521163190553746182016355061901561255103721511049520690680029203784052485218780518851498959468941509315401369142258746929434904638909659368428193809418917704205934074882635665091402541765574308483074472285481900002315493272221856101388650010409607581146756380304063358781243616939660523780442672638176846452137646448047644716006591182776020534983368697406270732631407809281154307700686922050654795975867375833655143339854344860453393210032873047293591213424505239751071604507324347890286344907575834537984838153150361634011826739689911269110227449858788370274879802389105260041594299705522933825995259412720934360528794092086987365249415548994757449317247434967070932607971765739765893390655999734187759647665298307521538268927738356463284598937771832436156642398423273380656893772186774034205765291584979476383273569003805778050335452048445278748374881651110372041173055031234581385069127669952240496672159948302699142783850008264937409061343763480151480075616783014553338249156071930391670556557925945874766704891245047863581064325948971927022017508822538832345369967065576905537706172293987422887523390371416120986389108254889504598144699295186760550902850353108173209230409135821641285087791034348529623685605069125954677438501759054954726506020583108690094894701689009418290653193523795341938780045951976878209903408384138510374649790627653709192570739248211460190774794919317389832760552032804521800633686758352827530417056799228179816912651774996466356139322000475932775464212821882673762415233478458388566102698765814769500399632049597560591914773604417920227894961907234394687529157483869898791114007731109045140897380708049368877065061580812851587629415468122912963505152485843811527967539635585840845350890060613313598194546081265496220225546671353430159673608320649348413289001452105270465273563417565689827926350768356373795143035226401490253975810827287826166761249348675224216256678615590893684275038165422228034484190813903798392695860254710602876984306512281481302576125697904356682860996865580712897874790304363857632385079177193111529264581395241009028859090771082488983925088108609991445859423051360135174445700877318551653096821902856404841915127854360343328796350211712469169872214069710997401610680905386773931902237726510270927265073050694356676271132504218312354968625297096985678020913800296090543783676983262659080619625592897184112893281618627480303748798576596741343266762030406079501534865519134444674662443129788791505227241878708429161862606239892874995677676009862825486283538181232757186004296230471765748453556733539543363424986239352780282783037577855114319633234520553044397583689072286916059768688245157334622171700112626374771834243161823203753274318200641443214298937424536982017003608029824470275922985088220886782773432964436739486128349705784949292382992064768631588682283432510675846704545795314407629527591092938953813486331403170628749271283025084609928057552284653307938245417821172582625439152250533466970902132783768748426021016576120748718638020903276190540308561421022960651456001939687692362124066762325841099071031007904242577922362218546969363776402047437966251122218688726813078706250302802611103622835384400187164704073649519708887390849147671315965106862004665162626473272118397533904320102750520066240617891328106892095463112653028365837538233120026935141679184786515091702860837730974300272963741376093443489230409127099500050292466070020307352724553964937083073071762112003092873165269234316829340301412489953924008474314437383661170232337946346943329547079260072817805904375823612872781067720334878156053197741692245802147373387068877321442411084634184251111674149230781306133607595584107763785148848504984207857158695109358706662930849650578007611950313430958759820646871547529328285912076422409134086931816038727744327123024560628525118078177780209154716229494825461510836365585394608429646989232793753804407333607854445516182026515991262072064415373713474533670893142870315347847682800695563323314181681639503950681804010240551651423084064025352070458403809001549656867273254648048102803364990919927656778171704286522953087127909399703276392045769632092338842016383805227778896189626621082992950589049057810633144910667987585864614286938490341206324437709665060473576608063559040453398476110578056185754421817149422634667003196181636405660339251370285492125025542570231252097272089337117223076497530324808326247538233477022293656329046958587410003488557064365630863836876424122823725407394889745516373617459238470035864238880196263069903294478082145479348189128539488551122420563506434890348450892976752859667451191184785418428638645992764034409935457928435927079204943210632292757629841827757309661697418450577409782668505701105434597702322595962602630443271189130770146092614269260228149916081699254063016032312604459410080423932929537230840629660026270811974909062416966755233749699854492857848230133047799837675333976576541883137705713809996909523715865768788677391513249145063365739756538538686313262496779626985894576101382131313527526018900844578303303340248105897539959507790482295260299282160240138826565377250858738477408057820962303930071696880655795149315346075167858335644898453207137951664032358413354858571632858509757103885542496542441957794795328698820151383865216384312276153732778092250116390140611380575994714258666270809660018664791912439634450697303648655052240091606173598123983991013592501639240471179394569443472193446160040586521355337718532016307843862416876394122294991185612579014105134872371977801143501008417859435474823595406931268166979201058029751336631940158831612964365302270198144998695838125860553921313026513495316651722212098336368910053975521960653305608163602770330705938441316277435301162681196598934201944865435959927738528055595874730587132310069156091298850122477773176595017019204304826281693992931609892366735207403396345601853445631742426112590822761321543166379701345180627303752194356660249668815857210968505431477087791120713525255668542168725102665354905645664790233659499101639567533064434306490452476454467779009503375469743428740964294321648235926843487623112256256759256903305553572274735810430434837876906420189183143258564684474144651315273333150778231159613192225079507939775551788653022814881080750500706402400907007478671808925453759252649468113723573130682895705299834861824407877692761593362014912287212448797390562299579844983005160796139044251937745521882859966668232383424669099282734255460466625044964461332187851131076461847016903958215369997569491337055514373398184805321290863729954520083113562273654703989622763427709496930578137935876297905010348683362326499407159580468771648777974980639890315202948583072880343586499530949353886042098942855730998912341170422028033827229345811183900995631818713678590644714285397663365379095763300694334445422311656977443145795439117203137838414179681865610595740616116380042176033960643084652047667163588396167467091386619186166286331533129742894272672758648629911967599663651821101010615843122110763245937263790848267051831240967015585249261994296666112049837401078602706722045276116804911300653283714057832503474736812032935451263655313841031269734988733461444672897429567457256449289762128076485815083279583743140827628494231603550566367115329988771812791886864305903313690933374240924831310548483065856668607829985039543165875120477700534797459461191495182011439475756225810971247575315644383026549736878147348853637350814590019693109347312699566773453497022653327140617775284948737226231854327173017987950406699793896544196005697352934245728834868360853527436849118555415017489750524059423502822675761938048982356989897054848502786314581702214426505748497189214073787795171384528124858749899287458968462960338438901727953733248093122118920468775568146722512304759137023748765654178655342075942154590186773131196097257370719182073184336685872002522542257404718457304376963403497353430530870799680579856191923194104037301584799707622475212177251633679148210148915193490028937121673579396154215307048372500961819616432510241817006088194275666148171393795450146367645827711659497257850539832585899777441978400612682173820973874586599003816159623728770753106467465787796726802980602581252919755415989941325530741621533449090446217872713014361155664539438452738659833048148339428308438726808788779444748920142230489868111879259818210448934810901700523850028284297503757979514035953880695087346498644160181885945743388017741684098942489994145518238697153374137144561393897987276564567703653921105693807372414372756226984093827476347711001188598029072216412096954105265789977025999217713391368820351773415981353285495217794550319054123886336192126731497316182591506158325103405774347138261010937638521404384303845842689767631092515511764498270276093497081370038196880923814732021839735314143294316043264829495629094819178322724694174848723645757953920558040254073864493607014097159380976135525024501614764227127159465812253104545111465397829291702553021028463339619756450756984896556218980297715590800720422711890873506151291793902650230815840106392753964750606149467498422059729514097601091796879937830154556685679792071176517816423982752101113626410949953840070908255871809897607517768983027473652578581938495923895656030630607521441732958840110174592932386192497020043444985520675897812433110753858186602369815816841046590205521382033920328285177508742418620582627121215251373061192797467190451194701105829844877400525965606886485337731072033426967680688947393617262710916411963224481485486255182779556212218784928429391464398450342281960188203148329528628920310517532912920442127477029998180276401712007573566917157244662446840612264197154319797088095912144833312158130320008893783377459077574282330987079487969890710665385242649852402576337900091575742517153493874427527237862947979076463775353620172531909537352795755307665165759639920735613021510306342190660680246331139156983717291501677655768308537100806001974343905670876414568244748063225197449849270179313287474928421712591592367674499965022508639013860796819493031750859038944348442865605961773806897407797002387905026625309962748257919387462761167099576591812102263562196759072781138700018128297567825791945538759770022917297525303458938836778327573627487534824662374294548625252639393608619211792430234073029801535424378243694381285594291440589677450243856950234542024496720534178889648916203150687694455240834668514100209977921331963491533297251062571222530540242144066770420560692162629438989532729005459735196694655818808027157418938910493317057429029012659407382345252888388570429138558013652026029251098282197715018679910402500412963475724852944129422748583980339856860664446574421756411878944220207764439614528390700856762041976324239719716794971264040754302920541616549116862440736375500105524417591102118150613245171477338335728671026925205159804838228045758231563462611509212346308204989002632013984982473741710503173380715164027082262592239157200338097473005382405418483483836354994187422370588869725719066403194108216824606088598614258221485886855149617713651428093725582051063137806120586802065267836418761038334441673016400964032335587365672891620170033712476279084876943686846767870407340487473182030455455972160002042060965303283491938899757083195631282568723026942120186563455252153218709755313940912092097821690947153232382589625362312530631447308093698952941327132812458212430426680644829162152769336369773833473739015967664535891514332250071309448399758857769986991377606606375365373225989562255620469307232258139685683646426356159221441198376653954494155941318102566412103846729343027808957724386135252501461988394441441772653860414829613263733135041095739700003083599872133921867696782260345536121861265245252989338704920775875656145979512150493911021582678970166258884685736222151779864661731973369954401350203723226073127303550910428815331129439140104823054056404091771168150312290440695381669673669090320022983054776136509939801420649418724827297274528479500803422053582948627429804191757526724608024798848885442002191219794067501412393476078780068891436805982426513978273520895173922488869278250089730061542989367324686379161504282502826678859094409271319462909951247747164934192927917549431193890714946230667390122315437681204800741346780446514124317773780828287184743236431357432190705091902848340114723043311832376202791641976447467273874235446035658134063756797033118073123423299120746720720894722728962064889715637492605655476638924873105727124065262399562205417230781848573368226434134681140637446063672927120267580861431564515668192717918893521164538477204436691468100370765749336235045887542053799891729709967100454958110588828320755957962857308675838163403734258716161207402765504799188158437375173498413349020241715127454633044337119736593377048025371655171338495842740251914674820723516518169505362424897323008497181808232519182596643437818263646647823330442352915145867987196904627212645408909182820413096753186740435939804704807894047767636996738770736926315498840822308512585346871057644316160818109940412057821300478140940061927698535437980256089481246724427805251267822246991176563814771687911213239809787904311479082492173202856872836824853847982515786389126215486735120331368006873733527025880535213938239627422664321371908635688783903259242926619071862078974441055766454898037586731697832779966745993300404884455284550557428827362972307307683452694855574812074340652550077276900502062616282335024485595860658765543515043554388873942344071017000270256674450960459682045143387073807969648996897861376982766918063089117408213572048241409245454487611247350915865439533424571285817300679845115193653974639613453875207205472988664165283508983664798371800310250822038679658588111835805591490747504478887849386863795120652042038288198975909578577012467978070040245442151729651054720323618075774156975017498868718739292530190819185493685231370320696695015355391652032296694162672248948151898473597132542759769442583944134412174602637630734290416737763005401296075742489835944232476032739294286869282264138951346665787950670770819876888415671599958662229192759257643874118986984224769472259931882583872778579572287132232786813027320917460001581543664958650787382913482797134297604626486899782674939899810779378560063313658400373405804028359138777170988026721064204613406000721338839079598782606271264875548536389275636571517324027850637380281448268200108350270554179110230783022860133979817151263391284883678059239364939515606505108191944694363607465202526609928155697673852236573107259616606326699588161806911117592486656823282880735518427385303524925499997092867533409664607770885242300568440412053331248417609173169602750473316549873907469156590865838727647123933658791431990917332518755477433699784922881621520291599712445139707124584937218127772648354555950742943989785036369706928120071365928641396198050497628104876438740520117647745520147890827292513540315252825653957053657579435701673571532852691148301185890277341417909754879243339836255824393785079483859975200961166620785108804464765321518827019366257327777965664974506488588774677471662357326062253678080378466801242513444256258075317239950101192457992336381884521933608932241303749278576584295812126224715367504890214052213456028182296047848880860479081352358313148025659350985740676903670931098957144758804243113120203312528679262859781030669361747810068796404351065730356823289352791511385043043658857492786003348022741976138479471756434029347777352660759373101878662838974950019478157966296841224458243829461349071646316580131620565820439773663286485827640307811458190002835246714485564202722002283326596355615660135113745288022368989078343000655362885527857203775895292460396467464898395388511205161283059138136242361986031853000254560777112239422090316546126621933262442678944548981426932882260053320066813388794475421401216936616277549364961554334093685478959283721678594687151072923429985510353588062108757141507824218876247610622076278779339075690822363121337123347092379805976028971640132687264554582338616980672103504369579266930226473965089111482003208618625243729698362366822752003385671090623298451536884533820374664274013221178067544516956691409972113329760765375001466184175244805313518707754599351691288710849007971224879236525139022889524179581513145115397113964599934788339383941213978753619435324457157337576288481442276067713379701284876080229794529406340886408676755714166338877844806309152285427926709464789455276383602907118583664369256038836204649578262273815682326276326704975282842179580499337537785163893439967805719115896906095717550436235119705774646108506024583485518278179384482751217939064615273579042305985741025504861551638004159628567940639139900859752518126704519511268712174968349689799430153375372476644337363428207160986424354501124370714926299956358180567426912490920793734765768273231099394437549986504858696093712179481225157341534142106801430000527684380206556491149305711713511567055603010125033957055093364335840295609752960283423693938413010713376499340152421215046567303323478249594164055949588055022558764211436239880756666818191480729052394369201166343669965596995030799416494353953303817083863152555847578980419494339623047037078805712049555250201661504956089611038554356966752815986336465239177103642992309353014306331875763513371789718385159794483691988873020226873960153382217189640796477590133117953640553324706554323659687534989241659758627503391194532240743212006359073801818652693625895386678975370532940177491279189565945854824855761106092627734545691458437751766951416438231074608299783273837508618050112540365602987643316748059562053069651947772493718365668192342894180372199528560529595505650650387162866790330093427534819107330383415687810569876546771971448254553025736536235816783346167601995511212551831845335598060838728614285290114322446522899183623497809585706826154561762589936936206022533790011758734863490784008069377535977843371322973737379952850024054908069912144895400796045448545925597726517388115375701371418374585853955155212854646106739099412638485880807576645070274167931586007002053476627322614791165100052641510684419120886086893652368943097179604231472729233867512451940771109435988153660078367599012170198147138531267565140674882237353797531260344810568229013331583485568656048047827810392336640616065762333647705817459033762879597595893430466772563289670688708310129662291123440905327567611029678990953408264731981317446132901407653372896789580694591316220095754599100621921930146452546695818027072791700828136562240870013573106881892339784849103674569291015999048605005565581359467833881144672871436149923953765727893500784645193986099299100430868041464081567349163768324641901786954959585331233524921190074232932294001394610289687255707058481140241347023309437348556721211282204318595817981922213982628543690877279529696377454353956748025699961227476072439608298383803602041108311056944011870193950362795627312061929316806829829806916892726178842800027397567830780968452238532426545179033026702534828315051226330609908350895944801549894904878481266812251756806403799552521201564488560195375181487715658510727800077117566121708874748428411929235256376476212875316335099265156443367423312606708054925977653885711500800726694867408682401181964257472269011936208227903276473771201136568114170656526557813774306116365397085474609621124872994149628876434398356699498186210565887901197569509626673076845727441627415490816072668562963993570459122696730591737147331698823153497451894786848470104555375410233927582952513570815448624051227527637622805987461576159132257558825601991228984717235223343141286956333258656163736721440232968040675004071460577778958528590271047703926205825247675687236415429162656012033813784831632273957531132155263600170595844359581464410591915644181101785042330358849893386409879759719365122177354456740108027563400622653254198065428875089669588974581469440433173634103996864962241353228058956978748654479102093697120487746768456314358016446714465273130349010056542488604815338678878774363599887781175095302588483619319038604593316733025357567039238231630662852305535647053467733424659758089057507929542125941875243053992671306124568391013505912886969550086148103232315798568103726779571904267090648418216282255379215909422000225051547825090475954977900542386806459811032091760029803140850678387102706544063606917576064776709309606124299530008550098739124977895219103980958897443054740361280047550691840862479609940450257936364164377570835703277101748753737309525193753826213278279458175506381337356673057732774216322680944544848064173719647416168204186764161730750785052802538557223435785489973318267645634782088904136177145392257915186219967061819680002711297076236195595815042392428322283597755947157552514897312933034739369490466117296576130373445767910521585666065834776690577958761199164698574144635671014303177937056990404247415398978104239093026287241510155682254777007997176945791105352556557151493864443423682669567222726446847293945884627102120699204483654862246070998703296393207138317603779588814806636757552429815281937324772027176206314192027080565618901931027404733447911067351967646706638484420017004652431434986976987988306011622798567765528802591027715620595464789156774001927820886823289345184729997414461358257303222562370713729205437851151910395042392439397504436277047309301924114906980483946409060334385438470102317747108774748022276277115426836585383238584122844732374795181666482732398921420033027155814590973701831374677516607452340946908705568265841715252733423649545684701236472604094785280766525153927509424859526125438047822438778363748087067360892125867810634718577659301992736565160654827005795981515186608969418008278713737483844316934583935925164392514561659176866913415956492350805968691223632119856561132554612134238668115641780404726281067887252547297508010697690525158042851651780262852132136306909414776261109134663924653401209243960560368791751815340158842211471513885789505545285409553488526225892695778767262599991463854133308073179235583322363147198202798897824698646684247994499497155386122341979942109626021494498992169413651909772927888691684952053695761126074998150210986349832222608847428421972337351546655116913301929371503721839896430827868120653326508831125442639072567069058961685265231375255543270801554009865628643030024222629528125137058025336192234483270560742782467050255444333384564959882838459515793370100803775420941384737876066182768031574649055664250423906533541107134044082490493612475582295078728091686747478503013218580791756795154405397275731802389770369660527378823738045125941196625710606383867540345430577339128194901666653434890047938522479840386923118621151841386140192526379073687142778134648848248730414985056169005058646120387626669802524532199784172246723824642565466474499002268096920695549204157585482427870653268028625340160144877613376650989893519885527045303711719615469075685424413396486730580676495812548241841877045612534914017629959194261858913914443469686904743353234162732106057684370065177110164040563398016151483215936781964257384440416988930496401638246757786198163592083586166486332038493913563568471082246465241220559653812705068473916615656887385075306829359431566804262642828958826641430730910032703168083003876480113417624167449629941686149752740266383873203957040005145959379445464909291786076863715936685563622361982557078458289675971308724438829456685108310602006374263878005478461896753474777192758497262642395780327765324327163234252598319401349010962904119905087647619181375799897437691516373458987915610244029694225771162887478669891052856609909891896756546553848764249537571658489029401047897587232228685603908953035181271745872332884893975256609116576142209519416226043637285629615139527414014569998071472538782859509212966355055712659818787770845260501345076036955000065294845334206555533422639774691605935194826639357739917489195021100662700384051865413598421134175250230874731213560665111223958366998878354453539453292743854667255407296402297923310272608496805972926788585266109012510516866860459592858484697235713251987970776162559015803002131830961323172529736644603978292525290397847709312882627647901439211021918931812545383235630078889821525987298869214377426822037784859955244131305797190433660456278714245234636853398702462045447476427381736699921528588787033721323758261550372764456867379209413898020743058686122004310713756444011748825397157777498427257989964286318171870639167559780143339656669006144406623005811952354109618511380246607509548758420960585273938538534741058675798814286046988609137709638598917677915059437644677428354224294298455277428054246637508399466023940442329787701277922205479736033191463287999818863382996553246484546315338410970068661168434894943955809010801943124836892520939923089522402249264975484907764603000356885259324524851381579951278775265234984868945961518596798655899448105396537485697860274829360928122144435575865400849982864705385547491496421360447618810482788426565621322605435402146793136909422609174564290493442881145794496406006922308524560225946527913745065099190390692128508492387125818970427013895817555186731835029564402102326692420014505421380626753446168094743207087726495635293866199210792057554715880104788673644693099141866334332686002263987302196489419928341445385780033652375553017143040745523592184790333875667360036536340289891807339150703376155060478470583854445318909614312051379124861673894764597606449574125773052984261309457761041621682039760623143138677896006110289232748529760053207699097147188048577735211641903974524828776867627272323860813366664870647630707620295375144709240235538240783082145774602258407848098178879066312666694943167890967827653873230198266011164966401964626445727600312407775341233040256599327569966728950873924653936749892110077060141063742772216215307704153430889997787416994342752689862073101713855868032029285044634956706749389622036815177569110489219305376516441369355975072080353814815038570053682953309131732382128641343277654296441601316960313565036851304918370061451244561109729572658424075154390577517583691052160066482700396814854611225411525304739630890023670577568030382309729095600879438422269411953192329518913554175015885455124942772136268414045293159994677503263477579562709430241550932943321506298243492414599335873126986189590893598779413219902773116126039394915184812267409482866652612442232578659076469416248784103445813383969216434649854127428232767340039767279213934029102633619485633712468923530230143016833133425204461933727662986611266507712805636151968099283504179771345891072217539940226707398000943633252516179683920396824303692099718250390209505735914014896804119651089265676656909071377562715361581914115579574592980660190241862695968776214850013720387881500146206819371278526918607512026158540114231760270012482027544628386181307656405048213045032895852572741880429363735748705568844826564264994608245588468239887104556864657097356501823747092167370366122186595706990499181833518490606967923049679160573690080507861299292616049942349852888534463454247384541137133818717230121147358242305235803030990281133295798619936812208806018853929195414417887106787730073874651204447517528490095742463462070441158630907003710197757835571628112236667460098661267313272865090542983578674229659657398718097750169787142251430868648799711199428121126020437076085328439975978142829916262471019624188326762235434331603074873094207218854094636909402943951385651176698836842456894164750944763383574838888365237894651214981385746407427887942884064770835902850831855590346949512078429014329191262092550946800971082666440147196914699150741313308174764045114739686886395853429053184081028622543374671953161281171634128708771592629334845367303195024663680927942227428715260898438870688734910646813976484815733787023082087118184403885684584181533069508111666770579332395383153241824203882357536834712339940097622050025341596247532494696148705708725096180747918551747076506876140557645444160032929522027496458334939032693717522501088912834754723132750677882705791357510023358965809068688174238500681025019459307828469226882787264534621431540520786491065496806159307704151247327032743046833022697105907146201773060318511652177233999894669843822228435774292192239012269984886687038416160337789165902968575940848702557960707085901225834803000236217434108856481663531517896077489976424132832152143550903506276979961855114604311495128162816604263865580533097500135865214674773219556237461773777215974440917172117410530525889712838925706358879054479093518351739272399653320308239344160398936529735690727337131221386412887724543975233989220322367616589314218344701840313186812606010318803277707280621493712206518275713650364213343073436012068579952422944807885963242634081568966294321804634096250150263054575581411784066944713058277054945901370609060950959550988201051759769142777011043233795110072260516415751514679604012685042531023836890019028417655541578922856434267277283209276295086407271855609209866029519609251761307896397999588226223740341612172740738564207052934155185716942865377559164695976144160574210589333017841650373696406805607769602229994077085533002992516852865353460591710515040753445517735994475887428413393514777599239289083561898991400560192095917656782493386124475883018860519704052652975265506796816034073712107155313357157889882831433108120220963550751290954444750823599025144163061807683735836154120778517300873722302062255951139953263622085730369207475478305791285464135104341544500562200288739720334865236486618912239209980153911540594386773456096340960581206374358837578680991330015515041769821384937354830797822743817302790564321287454445691488735200565352563431786080888706335377268300364965700152206748129494552011253193152840439322020467841635822498241134768262991596730928198749483918952837466574624580621574553250586368819330207723870061274345695786185527773673690074336090633619148272883314905806072254925149862333282030655779383209758799145060813814019157493473794996675869282031946894178341487370739087461964623647460791414348530873390287578365104603446738798894654536549666001428589877126122397344432016080089143310495884700141197800550714767543064274494039314923459265280823664906624175783111049803069014326777918809510634209335204958105089763344724756922000382829056351461721827978119776373283480005386588584908091655041008542591383668424247284062652388830046299178021331258315978796418518408410416948604380772623891115600737662229254945347341243548915525406026906547713750737870822163300896908856674677864926215460843157372309304009059023616823875104528912285797864134071608198314737992316984245565065062250489457248860667153439046876703247572411954019270120368264396307609603700345935693333454741344493663954219578634532693284196951141184567236216209242521682267105295885575794711046710338223424624991128214956709947704060679459854992406721164276947522553938353957243939536511336721177484362711156251533513889824612518954123069216812933279214753565313607866665464505713957933345749669032591585275623599781564304747511244344979170840926305094223851605792386133105732375760362742711177848073955120151900163449756807001057055156294680398831058146812243008322951482845940174633938917470005108191304835803765857769632362591428793081244320390163108572876973514857673740892936903412439793229587382331070251522836294187237676850735924930736050937749934753509561563222705189033484571594187067896266893324477944872271078311853792622294106834838066546637293837594954142398802788977479553388793299464799023235554343697223377376034464889880061840891166154069647510094741571634663582252665641064783516207648406628756661610459270778452093813640168650885878029066095189414415845685552616777549380882626265019174620457589162951651470280156995602975325537099449080742960832464882806357896966318014568113447989272334040576367228455797649322087480712180423942235552162654766257634501088212957937467725969843406689492325777191974925542977494823539785557291610939246120423688006177214544770240721614217555714459309466601840617313754122275792593533984054934149810456062558543562279455653212589730848771123403732745322814033305177123929620118978682883549828865478497650316465360649954463039348843591076732055164716124431263185787295981441158508249589449271412046551299131727643780461276415954790228139526697341886716471146712642322801122441750641515094568761293134294192790948665726248494975010277095047830435572589063717404470276908235566949237309133087907025518531986256681629066029696792594796907557767990212895363713913631693969161653348285668499632552684376361628314059250893921295823811517338700683916210690381398593463146557260489527413336176476166438682451492349783995602359124483812818581632452866746418384228355120116108388935227188971516350788962116926837157687293592143006811468312861432645429027786130177048156796304114961432879449312735327403754867747863272710077474551928829775517022324331936896389388615998422287591807988289324505970843165100574948615700239347034763953033215842596878756328121042843538612234451454709842254955174580581945851572760447802935155650650834659017772944646669597579691359940468885502477332752083691856006534178138135039589711618035627243288008479289705446557521197363548023663020273571362826164797587715638601619962317824080338625101533358003315155691255890454998149635841962684029990666111295487490301940679728918330041694758036879788988626691167898509309381070420017099786748328441082593953733844453967361006224256003161250944387758627446301605779598234642857567607216191485325562723259655305162271664215220302704367216609109813383692495759573775922938665602308306090549020040273474129857947493056903459488656713278954362596555605796557172821546334763906663751322983299593525972100387040391104392385085032749839364743293069776353724623297863229090185503012144565800758800357371440837239061354592689495603589035678686706886733941091781052459454223469617596491077305711523580461773818420125491116736009000971503927952248673252945597846783680738663221632650181635047712877538451256862119485204801713409205325872192283156449719619488040094630351782485060668771305871150415507342275853736780912226851649315500654008669214198929059120314992465256550718834962546297751900349078324787677925840853930791287025638496074475107110692080735874456775927278449117327660108132841029039021303548675474058806895243751008706104182417507786652289031199458821632488371799928406481617968900290221086096176988307184423991525031552586632785557090502952012021200860941063988659892982493257577143744013186151117545194282248343787500833058521223640300357245324016333910401726057239845414853851931583408944302571083628111433453898404379109278081096309323646058422808451418390057277548698358275015555411525837276065281774664839867250871000687658126852662671988657572059221085432708315717696311537081433806678224205396704656264568700583126114129710650318243205522261815229255888942051975027143787473296821117401991667237566777369260862100552927102498209985135939493700435395954693040306944435651719678104514509430080863918039594627823451522399584045052266563305599722967817244862854466232211327453916265271947040505810143086210231432190713139618118792538784679295241704395826531934470069478713319559024017614699551776840375958136451544402309345695531282256044010164759971943693565513147072668913072943822602811639688074848159935331904295146080253955712233688399785247486016695070752744318524631920516536680057656634981516817925486456391995897538694306685041977919201141744066763714421933085070496655967005007101343255061706646587134572046948747872832369180762259864065197561025186679177338804142126041758997573676108409909376301694640193377760431074843667061407778432311632701018457788621128880613603806112694127405035265476220802535191213756650553014984817098222607682363027636082702898300446699306270020564484481192474822388883709129345877571559692603731336480740133469424992262282439903792311560290298339394215996746993527283977841669005786567554857865211346681909538381571823857490190768719674552649336850549757788211596596687128570301637679331946792611878288775199479475086192058579694403957242188487934023602789283919135211736513894594017045037328418417413322006625692537557830055882104701185483881637154224061653914039685656877375543826192863094862796654873790780985135944392089039768637211518332105120406112399050773658481598661537423032432186975287135525199243129348875844981314269599905361917176358331242945886595071106799409209210677114694874927258115629472763387532358297201981132908387117495876131161971433274553581426721619619116945510987342557090278072663601196934617793743291772847533962442893995785497098066771393739986711640920545079129920236541011995768811656277857722445971235969869834413246710118131227021204761293981379280450876783668522924666155958234881331143944744214415458875727463900316623057350481237084810825236043162907481418399405190074420990157989420350588876559976984720569107647107808739721853409953577267548927774088902266506125134913175732195725374331262912657203068871566200749458008396106093301036762697350499924020744579707529601706818724364867764154384022193996919998805733149418576498880553954917969051550127666998272107248139600062850520317566797161648745766597307362496978745699330127886838461711317347834450645986233550355925759844861839334781922220258093027821369525652733680949624447132653340486296031221256981844573678042846575796124811874138259936840597920509234505640496371978751144800983579392580030731213983849029306182995788346395767966445904813856093240109214185099935302935631446588442595991502005384531240984683780469445648791030305220884233494713011993781904298268713607640121288318483267286902494222490064500144635883295913491720064344796936135630282889930732186259448199601338837834583129439706685782577094674287420125135953919551397640071009645372822030871869489048552050767111443366830751209729118728216783311618173920234855536614302903345895027567091592920353224538110333048151516934572607340130198109695055376758070668059971742721712034417636026137653341292640668497347102165300341527571302681473818068895561951471436497378885406381620759647496726162107365117306893787338333214517576913196933070348559841080328435098919015179697755328040205754114345542938012261303491623734834647967425758681930073422748606072210309377483927301922474906798241780852134024496854064050055772583544913714570204034450289952412389606916587906738527638076663068360165931777521467309088466668753655489107939633011933596945736924683961186860395418331810906529431994730630335250009539923120678425938451047962093187291128073084852335784315208013792760305828267910561234412685655737475561993605317108734485216368800015457475082761886338377434325011574815603477309445701980248578482778264980866503411188893937305526475300376165142669233473303813251702054934152376800680347202028298660611070953145458469256308831900699965423659794038120675098800501678633312568657703116635729692774060719949264219268653052612254400301669088874588380076724009082715025067229621852519708682222289189568776069207930411410459823300564396836437430521701251168614982004262600491787599723751746291998522144397081349915452305818211209276844742201990590410658575441262705812592076215149149526319992765875489302395482384683111563868674810812033879856890265578085292630381184204812167774430952277557047788446990254071887786575329116550030071789023675416731077551517162346382417786169726930029780787684249735663563511273117725247287282200876428455820044609507589167216563956274372785917867643709117638261296270754302493169251588811582087167691347148894401773701522476996253954900210875735987498712932712715966871717889871882913745480603667443479398590085137086612112915449161552806866882836933061325873826734670910928399816081736080756841808850607452062374459540408535580211102797259652023282757276086807963645948090601799215579586647848698921990116317440791767779212660478582510293925184337695368126706875412158385710488695364698533483558228493246854788771018377359470286454844874448436815526170702311690598092164298715760109922287667025356769008967191793787541428324330507380803365209926186075061512773896715109198087911165124542983925961516990981404517152287377461223171977890455335071247537543575314543182186437668083772810946171322228240443459049475301872402592845672700103464166084530024479120127635123205742897673742925318584102431585426662939327324416141001415995454172478552453905767807213951257541815157377971109776260423320477152872164937293940971736318168773475866345152448617908539910223704605468230234624959968765619476472335421064718237692266534131496071149085750337737537983324001735012496487907046770986766121275665252471008004121441698182663574401768082211824305866069182881329692861923545218872456593051349001287802604853777478126908718788535703112892752628601372587332275297689623572312494397297616079042931725686395882219008429654495761429656086125862912496189214272213295248267967365759934544995668140362932812359409680111768171717194813066682045590869382613178670814135091870420671634277685087265550267667986693062432808681697851871166960280475105669134686131735324714191859693810948546965811445929624391501879622507442192438044204708121151668445214638728786519975039651671975135044571675281905881799760274093735146793808697789113858946316869901194478084530629815934459789478763175477900482952829358402528771040195486240148764819470108499103990553499584755918507381107161044499987241787244319482747274313415660306250436317818282018317861757526162093507461480765681660448509564042860719956604773213495544421073962990255220466536646510532693514798320025366625075506317065515108463832035224936383962900910229711112596257195367996180713895234231550914253477272357912754567453438993027718083390433164116675284435840938403691901246921524925964148345321622473950009201926800923174585331994625610525988820022317783372069799059541814156569630999393490874023433165533461485097605582406938871824103689393923544348144722147860080088496285662069477844630366371768432740809647139381139423002778927263193243318277560579950197752149963410459722375191001323528130194663707483668524979607261833500315198798070873552920696541529998895361834215863549865647653391658160550491082405662175535127634263589286734417599442558056224037547171578609461483688211393376819454578220539615598596517118784127191625727346014299608577633956679314673060854078620306966528102567891978310124204833749025563497235880566599086055915519507989761753397715737223366252134813766046093764270229008856435461275768397497801306646395711629921331730188903211414234133549878064271903423775974975705423768868028076473887470424082801993354953500461111811240892614921067247825008019059346800585414396029730610443834597998229604086091534423064260754106795080928527731420320677954313892572533674148097222743592935751024906026867951748450599018236641940268522449210960903631896877545744453239249761929904139530266036845693358160729026732234444307183408725891113400117961818426559697228009957296856970284723314609322860693140880989894945413308697636041651351351347262818286245787322596903244703509691199946654774331675775048904738625277133528549814117552269443098690173174832095598421340353524032330200329715577027164851866022566255821074393083533687798829193555524073742833580973251492346922081154864052324497383435506300148048219864337606514850613407755082025664272912293050067920622877494671838842096878246548694251157586385650870931557227683002313115917393229102094825179639830460215515965812118357476934762923503334557693229870380356085590682140701874605454129078132030390485985158886155054855280304467174566391072483262775454315228687704123393451804144367694653016061956206729057765493108851925901513421049492363697063301507054333704724756236797537514915154003052186140302175751471674334072596592925339512781574113708941486784473012426583095513666034241185294404535540009282502878979694281745364440683105551833027139956102327226460728953200305079242703774193544667415184745596324741222351889185180570035111086927275418483808020066200690903947991545766005085315355409602419916844571263371198354861183709123683362275821198667668373080015147117567738198361903196051156559180745755344176168263312400121830581453409728175912778421769808460312892299131745435761048766855743531808766003604948350668136209011288821446545359741017890569455147486008801122800909183339657124647309575693059169478887377481233806117533439360744572275962883819631126406940846731011171457650869780579887765660804540297628411319905342391800173716284921701117263085099826908515708943633991163376367080630015457885046352795839480375848642155364413661820505593944953547264690679665304254107669578428540203624543588370434483475728597976452098195752120756207034632151021981936893298563400570829145552644106024969269483975590271532862482607090755882082087711231890222673550553648494662447311985340659538067382933798217169855372263929476641948975650824665358875462702238457933592121053725268202393525823315349178327746272508214756449745781108508111164865031162247291352918447370301906105518734697165264947285147452026855010020884347014027477413850501859461861823093799619118963032608897491580427317452609122248057355315303656242893589233417752767608454637216837651523669819263766141692208466619976706406871343460681180216403533224529508495118057920102782867405183587953743145413428642389972851469094958371042890186140330431318849476130465270542373423583543397770338083178239696977100673872319375138723578650625990458012158667130280558421398344701925283896363379319818927905999193448454996076908931188090832277013478513501057715035864208505445846416758345536855076963272444977315031106146120506141559526873981660593963733369707107021681154946442583338240759183848164507436826080315915169401213079425729559541839160630340964967614475785154835105654983299283656260210213114673072458879314726680316494002156747848712570431570133790855474540018261747183284946648317089379932076151663851023648784182844528131854479885567642040439123064944392068868984226118904163438561631761806476515930038481641312557629079164200880754966203912912195578511096188583606301024338243497784368592197403592860926465970644318965015282709881824596807698540054688140594134760524202526143402556729465991439954349808725211525074381091016836420283307627093545347769504088208781512703584697166654000118567059337981560982498440897451905981881454619155430458377714681537850975096591872463224141678212588198422224064969487100791662425039087408463272414192419006711364610828336405082287537470045968408610079055813146936130513711573543649562844395099833114804379132802360926949336051469613199484568241338021707398422516922651539543732422285918335943900019025282559577024701328924866760109178320737001995500960533709194474342331835869959121416233571950680125016861025650127939776640313376370818687282297836500487101031045585610993422322560567208818111576428140171034018162069208985675263408963751540792415845916793278213777861469069938091694206318374709767214551493250904611237172417176965446077902616460330562313860501312425586834766312703889720634719261658251764513762950492093375645270462390598738636856399352185458959268227292730210848513458848750375353569538639417809561636915400170445093223512603800201255616883520802335876213804750957643462288035120167844772064326411673856345333058986872662746281983329907035374581541344223001017003890001114449485283722048165680182515545346694770038259670485037261109210976440303018399480150946510286816500510997894873363935133815630023751549087193839205631614427894365242846690790803224665224303547969148833058951803206942704116238905584798253516544473174415012488926897453108498045022810992366826269256191261383154738325117924218290974914095328502955184593332682904149187949862575348734989044712914041886373477999277798233841209345389061911996047254620923453951866595804855805101914605495609797431100243748999148856033915529736724117256551465375206118109363303386667467839914277079900318700361084430098128997255253232969286276271178035116148654484187965083732937541016396121113400443365367317035335104417285724889934143279001236532768405033864378270538837294597439432818596833799761496596677735111639853482968573880714558664622627830158837005533695121382469030008859573465257467731973777162733893986114867437982743278059572940477710284071797309993249268398021899966005350107755267074248658089701718289214599186349449836322432145945306897902887578308335234823250271861398336513014722562568460639030568115484985170847031411247922721481587326494025809680027501650615739695719763923538549301251476962561074333488192619027775840257497862750958469384395608108877590899312910021071671193628505417162587542414289318342392316742316130724331394168670614643090626987828572073219343837983897602998384324852392033870173067675178544264178158203328774123627123828615197709956110238142422506942981775318337947908285896313609281292530427020178145676964098822540820561348193303129444976306452159218492569970407797701382819775639107379922517074292957314205032538496063422015066423998315286684529231002148969369605970295766538500883835673080508774680034311610346608163059542202361081047045799236200792200618311524130040554885815568297356797595086343188009520274589211264654472338208604644743607437440334616692170537249906053584841617721867242554045637324323063546974814351086479329726370548625913280924462286842353759493929781173595112376993270783318944703591330301593340404553036909373318778410651220752029442463682619345648636995531660274606818112001145670724602363520746337002728553034992497829997044257780773138316386723450102610892246729164456826684390362458532607432550341013888253564685269201879499661436143537107218302036308017183508930753262796997733580576021278189075948449431490427388016199176847633909811294659924727229879738231412554588095311626793214635645015085134583528101221912665496214680711501905754764452559965883067115720848407209115545897120578717909685511888801791010577329028002190047049022505878253280054862963486356554846246264672786206109340527184252425357964162652876667539123698524805389332307971487983481617387851061130378677174826702296408263327537458579347740717026241352785935054283007101137095763102726680958763793860490872956572842359551655914543019638726415224267461880984393362511043701126279297598445584671249101449803478750229755797546205620170915326200991375906598726442196607263695154519282363780031948322006489851495143008562927564861924784380189985143210017422065595717690270061964049210358044103875306643363673673166316041923400619292234606020213035139630079187849328623579652424780893551153326854063502784851455124174494253831992712826427937904182878655803106664352799738589488603725720409137305196860768125207678390449665996701754612713629384658448135963102730473372884769614103967169095848376930163112178245750405235231031155083298127358540500311369881176357991967840917795536368258917482550086438142655823133698802103767800238282500276113470545888314476633139005717587204495880263362659662691776848875711517673301183528885909751865449640200188944611785025304107712315501581983214272730480501620766315341134285669130165474890047508799955457319713315000394874847818318251274761510099716530892262767602716929874634164977846306356535327883211326821985705401942032673967676439566104126589516931460129253929701816753873770582243691120092759218496330772953780467880922539046399115547196876440753990510908985635871653699639420001439061984870971640502128921112890527652489035532156996795935804752519872997885304459737438135610894488474109276635483847846182387945324519014206214340621688387778410631907646776901532926424757871390767066812013779712275864574202191585884956099229847143155165565338712727791152100669294652622694295911845439363168140693566676545803967854138636780514012409092244869323590492192486608729590643603693178852743647143426155408263031655072658013429328044453232452309546630221850371820324805067077984866540492037690758829925101961422259472106930018495325650356678780533516496413559940152082960788386428924118281258690815848508434985279477142135698149165875628355969441711235899046905384396603218789546150429291654094110917963290582755217352492515816812853775624376325455192965515643654319617714092272684927251553153060854410711721137315560528516697144392090444584990956076551777382993239956645836851527544042882790995456510568523368479418944741322832365656263023656672498526146133656095483984432194485276558414793855364386954002092083606993152026543539193341977232055629940498210404173495961348770378469208514531495496150041510423749782994951400307210682860993106963926432846551154589614841211684547300509692803577505744715589897673231907910839230763240928272214741959900782459060898521429779527127198999327226916454527585539934844771184213808345039368554642418044484092798254899616297502376603899853887600434303596119119632464985273735706874332312658736679519316713787222274912895580480050426390366406430535690720696175094975311784900514021052484011999287377796001697412085432032349608564810315639319817413161791647992280794997222285431018885263328602532319618280493186377864236722226666037421521115351001308565379106304547756822793988709713893634735116336196277724180317097918168356644102210985555091412240947280217605398444573616925552756048586667977163201062135250579149761017112967169063138062761665202046738512029413215247453375744733254474292038062213782104002865804553532773026776456106041624291538124480564610504259057705932261991475371319957586198839278327091308605347823091893442084665018172664918196152130492218291829302459798532204817156786535415800014595214214184757130163718361000743637912499388309985136614847105436252726266982311510251434724838206377550944280331464507199158903685487081855842997680562552252207332033218814301823426044406513600057914199948043271780470238291229744182039122052769762162477457992732292486716004090878195054765686729261299216904756587722775695837606304872321606710479866580212290583817274342287234294325316276949147032951439261477888579481196099766326652970661332162926928159618949344816405377229107083302176518011901345682911906860758160476939864681065445490278371481437067585918763921498824756295686044255051013062579356217492669189904566048219234552252991764459828358774964077432106760425074340147422153358321226425552444644576873001608110107440523544081299540728464983364542347508771603187762685808453614164926816635102147341606175439848401938233159006016929503039745684494098919056835102519712293596000621372058784177098453632932969621689034763300148523653268638064367166757858803127178572291922471447551398691964347581850882061795295562291985902783140851481549679452445169672827331191550077514277698953985074098530652554715189333646421815772452702148564487314741456058282865428633277352253414368565048683091004970068237597887656660132907293696827798204719161349072303214310314131821247574703612624142488182625235615362623759488679330778785384676995244772943809835885574994129474287246257240552726134001575540333461538922594528252356507275392885957853041337942688986737370683894318424733711003049914035150536679011813964282410765787120121645015672595065807102135738185518595072245258975588431379332581910471442003882382433202870937420151126685318361353968617228802966143694356806729804400130159862578422677965980439784592049871392233357782048855960925434043540072609154890189030852229751727371682718988157332169317881604641730376362509112178837759670536867158880332872184267856636560485626296585196762803646281544555325487196938608521272400875968417537890402820863730203046342929818575198669238103636582947770662047538107263653688995149607237739977234159779542025614250947158329609316905899545049939510735213569549936019503548401379658895740891693800948135233699571934886860997572718185835217031827983292022448685086259682649787571741754396317122961674559930618258666963116746952132473957899485832668527796015658478921683528686745064782383330007546697736227417634132458051109102616353636187602753239934164630461070253368833047903180460175449316143962714153037956149549887777600298099589246180587574170513240545856716929365359872577032344506633049439397793383165928707683136503935685170111178891978708624414915145193369516230477321949091444688456186268865652013048036853147368031628036074531540516025234134290063505549754632124858762020402131536961371819325619627107701067322373489118298226539049241670728610275630992989691912040587675629793730106668140756706019750765430873490684500895268836255614559199164907640284119890315029359297817078708938186536909626443351111186306479545342303652275285206619688570293591017478568707894451793485808890856096988502178623571188216131707115393647948815819183272060459777414094856421471943836063637224821614114240593302352944292892406439953904572657565121658157233282893647420020896001164530655472583077637182134308820331122489793731981821359876330401571921043557184309528075482612309636388365170073005532106394134623181912794822895057403852240430095394270015573721285777644083537213326658641184039588576050345172553887698457600359495442281814870167471038078721528581931870139813468375551022146397598575990893114668197552188935255770232567008023689005014471541620419118575761148238681232530529148735313788454841360660649861399376229914950830356184137566595440618075915072582912922153343835361498104973615254038049548655951979204696237462424279213281380184890765757197925364747920228653072917908809107714650479279627149332960177628823903058535023936154606112457838510371259451652748969326033252087322253602649420237515845131638025085817823638182865389555173042865648653272550761322697910106912535150234250397714264354701204519286262757218190350323946321430230647447101409086228326038690073017985630788320237919489502115484332877919120090697159783552847691544341669510664295148918075411724898545340806001484150571111404575902474912639027453915992373242643074989885720812606580355595040276841410724492696507636246346513433554463092387233626307209814637143565811973283659229550818750616298540979339865870195598474070479153240764242948846326337807103723091500528326572165030356485416317778231448577080237689718955213331830895441991463379105783178228677581574689032197014744921452376202021207123257028800819999017359183256167279774074649722256861235242698678470151953310629911678506146912586297797835254309522767679233971652354057906753020192966645927205396725105871069802762651097854356594679684917789823661845006097105303762012947093054245015587234699004840154694451636313722814141265494753326468356952719887055015612635574218501404502266138934730666831920777322776068613543519078531011203308885303233266180549950650509968710963524546320701555082663225318654789611636607396515741411427691827910248210689576500679763788352128264118170576341403975849255915216492059194695613345597133995233080691178480410589576911289318031362317806248563143398175371653468344430544981990104945571255047893996507555785774977767581605039671954644291322098473035143375541665084142395892987345926278701915910002212470126762926854189611120376685348061827388384001786557091393568272473008680695112214929551159935217678709562851875320359726380417316808113310219535659275549170902374210886967168333093822781652174751348202465692238157004261748446336228795565443020379966487264580974677621743483751710116328291484561795157879767376009209034963889546761135540160530902380309572232508895731102337530495501674379639792010399615618636592744840173098978867069609547722916151268905131602209903677645331704865212779471694472905834950056025249041283560843709643450855334497459321875240524791182183439908141582849167030116756420279699284956559583241668183446514373010668233165045691074693959919626746727104241477811151850687897068991172469967585637103994979823574307856258041394756426280925559942485134666116542022625250370668222325368182974804777259360231644414552960293700005525058406309488115312276492484785806949193069226465982449138161144463359715160615109758344856391773024009416732825767837437253837274234529906164733484684295879148515036805335598666626922181205989756332414748169809487321868918195840942410126423503434328391679735486784895471905459247803333626203886276258011668083489154160489888773759371317106376590202282179230400227798532492847649346521219507353537839633489303210595985046788390791824803140138023662004273915397366582136964287707458123106946424783198057900970572642529475412401454497976647639579434129694953560822755913357545072901959746203294788495483383157586183368214902988939662046880559079052456625931639054582329726136577157614366541544624978677587835390638139214732522448003247107083750761245948259887210324149983812248664848285976582201160337011603618810309036262094731473240429877488698694988580900038974516839269863617427201878352941722477613782668044083031598210528988996782211688203774785932438492827804407673722778870975776191826170867058983103387767225753007850678317114664113615372207856228119476340504557571636714038731004357146149298240361960889928049083612575316904957587908566009589904336083184183901966366498261117256562213636819102074982929338607557862606520878748705942680831650262219047012888334616437589587729089431390774275364692114452649981068249226891406681711041906730125025669038390110845601293500331919534149030973815927472472738447048540476510662334444418128622831019212641481265913583532855046773016365734212115081815027025691402926434574708557691423639757931552827874300090700319295586835903638606833902101795636863287822058769210907524826052603428628009563175262450345798334325576569410593294936914023088299084705060652939626441855114492830827246399566137382241542020832113200983337709458533492538980458542265507105795979467031403517305827561547087051247394317730315715582835208537519600089869293825123955957549782266141136701457857717606652933211229067176157442969827658683469480670840868159555419855597386153542554226802704529532253845274408563940152768397583846671806693402265979054962304137381916389336132650313593309634579094789019795783649224875480769171297453989905358066859673007357575928513976391572432463667703540318593426926395380899601704788679687019573681050973497213257616787429469242731078698304993340339327835798031825299592056776718988027536357788455754766925359796546250419382027353221523641879754119016642229063992176120737734977589362463517176490572408132133007684299196796112908021633250723618215138745266139361022278497965889003847947399134465481155703599921581957956468439192038048184488483335468220298772933204418086424290820654955307742808568146010024253520043414146066361528691449415713117950306924822538472799827062452700462953122397029787355055126492986233002718522763325120846763018645693285600328682409747843505946826185514406499069393926825565915961690591642074669904220238734369757411653873628621534521874509395168772653126272654307803691259907445381034024277192880882087086045696191491920002448259811221876772767395225226986525486298588830932715767924414966171220037555038208344456927092475603856398859657918205000777827798784916326361359483547647989075995885191538749396050714630659453396355965882114098735581672024941309338068405866343102843063329498241862114452271660333493469679348173033004954230767153172796419071838005813397129299138542350909832633857280085122558999143429966412323453554599200349347069454622001309302357582830474111714483363632020542540674149276162960288640208687474276097503359282994158132196378060556096038993026156177117791351695896937353153963626643379859077840611542581877047170815559701658669681807870838458196197755440640868663421296803824507204102025206301508860489431613120449125432062324827596108340813671264773423132614431670493651862994435679918212339631191419325824107818668997496998382489894916403213162250230806661649822637759741525385861704835015626299456898670603383786984281775194624553254061115618104174763207749587708146021660867807345188873505405375350005689678523329587488288948142375538241214121124680921855300950197622609484801505707864057385103507208846299163656856544237891590850813703990645499233029836182340075554176612378296025201490929826582602308928247077895857618169006981968028096092889864625402750360468102690758186726248695524446136994182525672228787623449390145127403297460569537280570728578485420589202654449594911797329419560528260729310799628243602120406173619412531200418287523849332718102227676154303404511245650460570699569580773658564358700489912870680857218438635496859944435139694916222143334680970821809394262138293745080591948432040293400285582843979961330003900015751738807859581637129286647673420451052005037152334814431614316607015014177834714848241203056579950154174117279196347326226675312028467861234952128653135278936174687329266538894074108523243634535013559741928783660136023907830116390329841563109109043344876923977611572072825088251938009019896503485981665353955208096558139896040999035242937960038419893896799293509644759178615185243667378712299780019789304006803518053541448015903805966100777039415986014876524367268630808606967022004435539548036532410214504158511650260652888285188663232676056157043519900185947084788712145919447388732338219781181529074704875644357885190438701153226997962899060646504189761159950339353244262462755327059298740650946010522331761180291600000404201036324474892535889572661078342933098484978467486143158195609295013140285069574128651412643634815366992185264404068634954192081498451647580256320109364238552537627495377965594438202460538905049944910785994025333054876529127192109425328466515749465089887740051004869864053665538266322678932106708340546401550519545522108098418909792744809763681472993575288323213924688429759510634463775547218786908275301953958999237150584811727007950056905534069282723470151919983030588552819337546747988353538554550789709749658931216901562849164651544021462101791617207374795438053664978557310409167944290430044116532398224943927520795416361313215240303475645942313755908179156735923820820546704484022013980734511782643828617753524682303988586024295411408614683121047741610041705154544658114980748694902148549092968794447730499207512650238698136034941626879583965926419851615745091536915484223905365135290518489716609097320092757362831005377242440524145115776053705728174252873189126777738778538808609803634930932587393840670125936525666706838919224662093387256717537605459639133069000607001967588219606376091653671786079790023604874309702055393477468992567756705805605068324799778080363694568957677458876773963751308247116785781427262773037047966226549333726659340544565299793828894245671953597687062927640766941050179753408665859238808327682646220685752105559853448358074032729636447597883207275578481831300285904239099005214065359763346547677419130693653236944686264849515481229026042659081556833824509276418923402773243210012602501108171749280633512740680822636090965509185014636652479914959148045824901102094712195211309401883956939936264983201170629502564617241798319279827711930411906190651054334680129655215805744069348501777211447593196543038976649616379038509438644705504659256372699858268552544568039540926908275865575629050183209770662998741970108512883365017345974340072225539939529339986187291045779735857741163021679353190248089009199344015056385982775945240965244911162364285292519352738047816037955548650001284060883409016371484631165437659203364618954280454129287699031838792514771418971116651080131962255596100289612379078868763762440528056338577937675721905668054357431008073353007573608939307558265993924226982107404385906334324054884944523643060402849081942021354580273263737348600720953503553643212150402524837500607087948359118725904634287630588432944868213500170070861745408483823023485222422947849710838472779332686927052768323102700083432467378192005530040737613703713452386135561853770872685286539821758662686731342512376579897530039110225959997560072982759120389844003239122952160389410708052647153675928749602383904954894527575114130432624435014570744809613301540105896997261679797685299223181584302484269931467996698197666998046835239018682654402419024340238349745526616629341259244472705902122875716131481787684658872014732700074182939824778801307840562978222131464024955340594018190111065197016851901794945191059760244044456049504785741162890733764578374806621590627813880379037965863233250018256031197356470725662529496505211860332363272258005925821935091295507776174681795651691082994244680106041476790433299226299859032957293963774746867255317639178890846140990260817460353000722500519713497486392867940287048840516979063490005797653884945499920648766307198676767469071421101282994001955104568966447455701971127244180593679239137879408174976014370691483037558276798238733857466090241167254950054488487361501231780105927769365220003099759757613679082471983028857030955746640486761776208022003542478261208674382069022452096729954902659949578789917787769902519181924917159835028463926452072001980438740322728626804321539867278408744746921201688237416638254330518997757556914678353964322581462246855441718146679582636908399356390300440802507049848623536050997636538108907271000077748658983752323673226638283803239710618126953492726148577912580840992052075242924227090680120844678921467153619355471777236735820618924808003789648429269691373489077587422406874272898614997957030487141495646803053437890448545851269082094602454135927393090416098417752968948070196015707262253008661984984287744099548661048079642991773905594601368364180934222304997320961428672329525604643033291854683738829502235651818034712875599659326173309611557440434773584426604332840956481319201827261104145577936470852738920301622225019169182783004341599761391323624561924201065108747605406468483641674617142270970793667844724571065683247242721418958111195047697147486416298045955753237218168911796464953948770553398160293956402494876698627000962282936011951879050889882557708254219891503309084012198522919552575506253236303950229163420196556474486265458242569442695883804572820927005524648905261831153347268356834993816246067746646361022044084218009911208065268462874196478106352000778983844688765490742115849616330333179025479086234317659386812763154684169512700678984508559804166453249919940738454596911083955360135167007115745633578442458720794443332875257723770817066260945982777661688106526011227089976470840323325406059072296092400955766244470166243875439796143839457653820918000747831702199978436225959275735372130808976283995247465488723788265699527459081320056200600962195227078757013419614521076677643909727964543678413894354909980503646265155241481665417634468292895313673689360153674100267184019668689347483700668153417855771916191225772714285170801833610316970394939760051235897086140942845601622203981979660826580840919433019484568937800250004419673809014957692375677036685464917386256301131194492047897705363906134420553202356098681980823648137691044005589690034174896498298205076141797692832454425165709312727789482021976757858222045051302199385184939819948078159493904298498731055254368507979683380401238110745809488324394113294329708494926000284095457602316221745693990517775347215420846960969091537267713307092831748514717237827966655280138045043083122408812623956063633240471413565718847317507761693653900283573878514052514498650591158308847529160020868506726803660061343628589331199472320791673440278111855773032006872442657071734453650773590532498123577803376921881757610473630600870022843092589300251708364368549734645918571743228269576443589470512164660658729392471635805547300159882540238035843597525588861771648016363918415456042109087683733685133222170176001171755888970369302177098291487037310017976760824077282547314759030578403657368459294124446752676733560955463686154585319337317725722009201264543911624343077572439444007446886537757039984085363312744533532028616397176009875731884948480948241976643932104185584892617417507447509694896379722418967419471683729446554659894112162918216808700386634876560389221941920253697428912477007035108937253298060407410834114109791491343205041963117256413511341951020187010277792605657498066421699883714604811362363837474165062838307335894637862053192297217027438944412451202026136367335698888671653867843006428375636211859769603416522698690830191183301914108082739601524115168483207641397646878831744145315009220921236144501648158552475318670597474415067593949134446001961553757410323648674669289386375323710632288500889049088537744045449351826128862898884426402493208364369364368323343572498328652013832323839764355673789347594758536172277581736270398058601469119311504664130485991905772245480151562819132024339643084743476517258544011046562068188907350723898432575987287579345018870893141127621506563735225781615681742948187324109481316412345852258688096175477389182883283049594386799955931875092620357296600489494981356601601410756977621570594542802410884545542876311275865107548577710995582945839748546622261427374251393499637419147633467054387519289374910612500622868639736545163287049644009805979555728467674402947093193911125925578789312036075668683183936487927550042730369369149804989826985422574600042748072630622390807879716556590127042834469394622239942906514703356921753994580686875351743680786541416414330194806184990996308071336711008755370128851115850404990819444217914406901492347673903972188264456593520128740565502619635958400516432377351747552920338496832964111668454105492217793676803340042563059802767442632631282288940127903250227027214145060066802598479172618095918943899133609461240995123709370601602489405911672632637731023287951137737905815889056528426857393074475463057271532544052311541378705111436119735439179506221472047898886267943535220949302887035940575591250889341710097839250881257261301365937976123646157886365336193173310376112751350007862355563752401785396676317993984911659771255018982365166211885136333168226542430569795686432995633402809857734081295866445300548086195597761894228867476684519333987911712789484478876101421487387953661573443144143537775121980544689898050531083773988332637803834295142827171244593517163271433143041330169512485313213375621841708643370766408304310278312362976922305522811294373577171291668113910475491028248676263009559049919026126572109786363611845479718848348575107585912260901146481551953493177393856097882020073270966847570938846562845831231388881983721329600091276330152962551934413676691420323913828047660249102330420333085378946378960550700790619125519124035099257407053470277867045108859859733548696531885139726814732648290534394808730438390471409099026684078021462844238625522503597500854688718358766690678670572622479215164743069132030686545042392389331464636908808431809851026854026913485269835726784433561174329341511185175316278824327889256826771949444726422139132846903950253829918073031662583727449577734518127273039640530657512595059130752504294453122506114391386144734565653978137120502750211550445319323643618055626006615993570596730240329621971553374420003787771497702319600467619043528580599786894160836334110747621860939018285996902175672829153304830122639904547911336731515262972021765413799295367777590812630892703904835589892855352635083213027906762719227285113289068707884705995979639522607296718950559939693138723914382371055968905272053648945413620950991011141659051764569199448053826581069948711428272341189008229241452718288427426306512689423926023143258712902145702630206120793787585190456557429509039447347364495022368714132003914703647396045611744401534246609659550171697695280374716857525033210773955574927758266345758068439433307850724934193036573075362014935167077910073467165339283762199805628103119626057805033256489444647092198553914055301023620400332298129156815533372118929836324408022984637577817731405267296189367407250500520422368552725982651656821238961542881692362288759247749630944416538446690297083751502005342031122839317245644815219050733921871802016893700976359422382167285188894357439597619453843151170076584633158380147594607235596907344636408732034311708949121523288915390801818077887844595826051469157423656547661114379453344496962022732368409704228909759561064860633902138523767104197461257993726870721005955105755256243556274139085891593324623323120248721594403996455099069830237652021463961095615284853153601346490768698246061505853421634076025540057380976922077467023617820069141380700466575548999764552444764494910435673876152726797439229366770880350622938538486152794030615477537382604219076232042020825492258596974979369298928421238271994804214962752641166202418571641448313906341277841540657012613926615731488681320254344721252821372003925693302605299854660738314110466140811618731136595248115171682032256233039532375170302250834242829041406816625840494634269182420724870293835791128471871820009887109888854870421657843618621689349914783795048542595102525731763348308885908917317603722421159528068365536519455318788676492509758297809477882693514229464021693125641355363124629883803748872456939139015263527008788651469346273784932957183087784418952381727550666489127402586683895240484950907465314160821304310217964908250915923139711200664580064667708760296859379727148298918571044596895193081052296757845931499775569626044237979660644045761963139580300689126626648762782837085551678991744901636330767938110777816797257715075613450954568617706077269333521999429379632852301352570120321522830333113727044316584648918585883715486511770807775253832734238996815007923478762774149528896843811958629708976377560784163418631147706114101732873902542674879019753728275430609271791127442842590245612483180324255677497180109533493078078108592706319132389584105897120828508843111154307197768492714590848729658495075513470665348008678527565441304078562001032250250760404101788992221849580305413714226402569369628056954046356219057297716135924144931720664337495321580400843762679121988322869255481923803320986663157803467963051712897362390613906094730574650032516744147828389518785415069075471046966088674242765844103997362453110828400428366273528564615726610109560322747675562874420249411082580429283782964333396290325067569949835364250735833279546728805651709438507695304533844348500873164593639457178274506529169227055755991204191615283371065395499227215057342898535882761803656594242950130190389849316480867508248227124550524598327804291738880768241813411585457247233869101564261479433585098437226536658879586075103440914360432048086927001212187728417265550605952664300787155847092323931641641175126288450424426293592442920523579372150628994400967537499311766321846425789077978814539219011773991280962289640367130921817502684533432126326250588342160484025763538081831865839901437139741605677140920018010491195692322674219987163110800381546353452512836183229677933038807956015418707316620941085640776137366868268342667122815026538458328116478256359875579362442012572681171466967338818620313424379772346117655337315600393469380661868844487255090390412289126123541024038121123123971833678723828018714917403496365262223329870804439251119560339214773093990583137184497810362126175767384179179978259796771435767410806635579092388891684233129040753740594375702632387572898559799537391610192587865114561894822095146880046964812424258999880267008002586501132416226998436747219486896551076218649040487505103418602165824854029518283699709931584570185338033452370850251773642566454446643253707897512513269279582033300837767653173180688021941455278980312744121767214166068211200186864005798094112044385621731197028244804686363402930347708811374396615081618843449551723871266837295579972377576303770597576695899693085491474514552674839571840734457407198650939189972277327114828705919099780160851177171434021770926017261772342086580694353085773755164367586847860339400414768540665156663939041672136128363852498683821130272907643886450098016789052832695816139743756058719529414040835934615783790170434949989105302945007175509858003180131640424041605434606479203045658576747896849477285456286415076320585515185128337739690920042567101995299782345463818137329629624231363554248799734366264702966548831255453273436269140034487275476733640108816273800139168702283226618720761731207624999806453123732131622006160003754738096073284159208227864897482416112993725294500066767571966939037685433374766749773291491640143067748754229705140867226615463770535500614702225751121738691019059770922087173600032207070984199312394571569944401613785494563196370219582750039286046902355814840731966590513287073277361970194891673271227854986282966349007433021214460023213964087652027757668957414652883194948775917972304987405479479337919784717788302735070830911888122095600861462531308378620386435648807140315838595576890508688420582224105999896155691859767547753556102971736058807233622538241596120199821621798285114506868508641944613924853457398890935456716652132127813337613918440651348632832312495775556741120405211088218088829043693243953419583983967506150301947428339594407046626525286281648204798623152867444717418633310127646341585798898804426986837876203962511045185352704279212380035137280523820961563643376294894895193427317010071576583576633246084685435787592117551064390427933728209928902895741483546755398785923527509155426795905941447207876972599459825538724553313185454920822941919584147726160834173392659271472480843573737448508039227371407289073004975222471936005521965750607276516942794184419168241173981896897858364530761048511486487940906944838734472785148228259665845216981706761378993813522341545581532020108251089322419222326774710962150767397756402336899979958086802731350289425385183866519433135960248922617508474691053973683934978302277201676905632452881700423125590420368220075234393199249276716123818426942843672511579348015890528742655294781216620670995255891008946495099378616074642500631084165827538919047757169276010727016363687255427995366607441000483661334823778062559234037793884472778547305386913735606680653325868015845002092799399442642172545844908171461209166740816320406425012099644112087922612664070278193285398089035194845968817035053912191495286789104231604704991142728263166338533839430767954721703388996579152537792435004895422830036224772860068114025072704678004502677135949428992677965331363005709889685908586290394334878257160153394228504951696292308356314671404584300259729155133186631775313409326454061850369268026008072802630834498421498716302471689792805304502455602172995617216471573753451221579983807148857518055264805572285938091398958545715925699129178945633612041139018844653159778497364165347437974225907463974472509763789210471925103739174083709826135930222809478376870687703601358677900157659059220847107525311159420034842067848965028181571703747124629490474362483418738242888914890721711212499368716786993693974746968237100663059975164581274521966982947781393865306274386241975934268154699874309953443448115369263345013138067446252881418526847777328216726463953333283487889113151430569467044453161431245723014602753002799338997075431560560084602207197213067296845607790910758769869290304949300047052408303027781376640085378632063442889333038090095100715019369742055065517787353647881394864544321780269489157735069198436435519241475192571961964334929964701995469227540632617251841303428215953547695946819585388820399283115540408389767956617537621897347237399897341559170176750504737252035607152599510608342313993357372171181246361320842810164485009776032737241758406509753883183758250431973233168004499007840225408098196747465644878848166597821237370570670080728677499443778110990769326185540664227577231734181538797997134050155486156256269611067273036422897746279533396597785712936671371873165177655702525532224506245415683991310191943410348056266609162199355748793813558426525784175380349243702782922255121787603950297851367983541398340308110703684518132666392809883349486730876004249451800357883461816223414359732358717543899772774593364478181248285083269089795818570534850815456724708180657188455683367265197337100744352035142604913927188165367835660711145747935753833641990450012876498865789125044810236136357461463711280359829491758920173989124669460931062103427807720509001909210459974685271660195835910216077748441006132189226968196336388609463881806181001515235773327381913117289856589721612493811464709529740020738034983112895750645833662189700341098890920984115302873212211781854695812826383811507826181551770660220364599336579641156904000689818882490349420097283143775357653798263444334538897570705483474302293535902586286318295109975050945029420214197071592322799063067634315114312016957036559859927798997826738382036702828347554333976216631815293698748440046822629971412866072381889843069985085029559937568955099835629259677769373221254060436605121228044437431321697435758532769673494936071082925403646697047685377068125922593768571502988559478566713248156396942182883244566513905497958556150885761944125476769080101468837776353165952977968467617555056439934037495882695482280721293626481401326678308029122328028057694918540459637073958774167143953426598602275627403583561355030029023133925124877058651819352033076804127698159770182413523858557128539103169156666070463068861270359654757790088375938072446120568717037762652949267138479849521242653025981401659814772252167668729849134502428685572812612089988114461890595070919604965705079342949035423299298400141995231210011917213881496691318885368473997247198001930262087829139315112622297960133226884336672231750354460904145885578132856286103063530449947976959334845098170014613333094521370233584794752022502607043554866125591493413834426655486230754496067067473398003782457841257388387095331684372086604458400387416925235499800151066764222347764175226202112256874966069594994445822166516295647602532922755365013959570157081628613833957292994584259986263312739961929826847548924879006034320035300371687578768335851542549361307591809125769535214579464854028313041995429927236951507568341719213225325156422489264041741286911576529558673265603573007966805021029341809452934145901851028789395253759605741146700952327603861324779205388883788799361241758400283814264217899315628150900230596787451859255479751912431529841636229057401552764563808676430415619137943148964812177756952801618176881262479464626139647388261818129284450928952836581784126964898376403646019111216083482012887602171513521387830770178064394929686580955720432238272690768996821318234520990749014089621648957396799568827850513640200752993524382852069552183909479051364804854146518624672152154425676539808190684266327557621333803860114205868888117513440025208130209975661246670213560993363286706858005440852594648116249373917393092602201091494041704761261769779765656911149299729742977094728800059114458081418615593917933592669591756715198650249710724816457899259424826564574361508362267190502403689448551392372355270773030822049415236215226622782952968534588453289265983110260959922366303183705452183363588664958196111742962099435610350727841300752704019005127910407735653091095590231272721812582215493583977743758532330657799603794535491496950547820429455930762896950763998110386194256106847974384472136469555690332500499546812403229191809296174787563553346906910626667187397709928786995760400465336780223885749806099034309012569789920325846108963707113750326579213630457007367242196742482752511541565579963177674182651192330613061756201907849827564143132231176273532992810738624197510525299835837195916462255627990728407643609727175679457489752269609480930909498281690644952408665178092583633791792888044332584295234041422295640600251919643060582882139837962293478254226692431507945231746117012812944572634358538817931065235563295402245090699874597881709623558418138668536395339671474839206871048765743085409728833307494313092024109501462229347001389517740582037864927970305831487817672596149476715212807070125554887089482496095841390691280707787078081277466340781202841115950657939829355905441491440588883597353437324029272416137601558947895499780196374382310482346558371476329119007578050591541098542118460536021296384528678070637734537134646559916169500738570221067947398619393641743925330082860087625358469166188659594429324207532893556805514561469874656003963963849443431030860946332495217767778017485448458028787008322086609528931808841718790895665846057113833804371433762282537221096784442129900815442614530627692883778211442725589233767768261684531933374757555451122765384558461882251202464001830775891251260772780722062958247784509185085613012361910620068697226660343447134874370137449245406464274467439537654952457909993678527503906188337905427318192557940521460959187635802649035841215753378448496946672532643403618471409624961485620316236702336263394480537703998064864079559778365637143100373670647267330739569261785269176267868593434836990230993760933370322609720326115682742031638681801346635546313367985452450175658710104925506891761216583171720533430904701968993296483803811915868455981411745618288330392378543330340430621998673436719476984394284154468100178139448919397674216450673123407246227546502698119066450949959482619248392815385371413156361460421371592289651647832492550455402793023907121435161261253237805211147976314518827850973758219135505742871829649916098917850566210543955186069747526492883936594678988246645349229664114446266180073038348413696034498834441807846302568737383107798738056132844687724102494294845428394779356872693668153927721749697812957663614540592174101690348986062029151168301550673550922200262065793685219461146811542268366630759770129430758874647862441391687338517385638871723902688459154264675926520962350722319878149208641924168881742156291856331909695061745738256624112183812617499897540064592578014290672667580106846343063055497866994421367624973991024561773555795829080130783221169377188738409467287124647260518176061515161846435766340756546397301059919045575196284130722234607924426361339810259141788313258349730850820975837515619421641117666572635320581926763175133429806648128884329598603244600390179730865187068276238896301148915135085170712495031263738465696366989866191419899093372723444013742412370759012471158923236990456611923637899241991671036959339181408134692630930014717982002829344518668493445050865504580980545016081073892758117901551743798140985205738714823319949819303904124397604143445078294985752848824638897866512123391267550136084703536735267413591760710961306497435013230186984976915206561358939765911744103823541998501364334698674174742883066465483068235319106979185547814571581620506938919365781147161336834594967841117115044658115852585055450109734520754896030674299944177845551124811149024809848933322533955557970427679770487011866845881001581069541926636381199967086648800023923309061323842122947737103568338645664015598540601154623790417356632767665092884574191465491470888267489456183706442523360212739615180092500997753321252602928604559063373467577710001613808664594603377985094472552316622665261779947965800842568509346737641062175967700247968520600786824430098255913689471573766947855578970105524387269337384037838023101385271061175409376906030728792769878569859037771285183708647051310970803545672211072668456674834499911049603495313613344145784899886903772035503825762998639319700956997456361828149605113534308423831627934529074676750825120012637894677896205255056572770575257380688730828882312900769574686903776527814721349117170023358459527041473655749551080174801802864828653345204383585455770549362771197065939105897986791091926129379947457058450073433721563599530612758926501488156968347105648798910071150396760149311170774038925038918474914262746874181000921784073877148182285299360720902211149771990583625851207094524366920443206995416384508753710985651348631962099013284723594888572693390717897929969420517789486055851645585252778536927436606385680229987547099508490641747951449588143365232725512670841140099543919625591466882432645083107874859591064052229049483114450798697288490188710333193614870046130748185072792677001495060641049137099292430131692652405540349437515686463364489828977668580901355617128008248883869777204648251255736621792312303920942964675503467514940228885081512381092715674197564244350688489172091451230615487764607601581142719232406814131776664290944661165751191227498979768875774247559028014051116431825942563594729418810284139695634399229904364139013796986755071311363661915520935167793409522524513612205230247902963179589399723647909521161809250842769892930568288681092839039694996347327002851207076564330585556198878598015416450404213634562063483873911845375929455188840012825428016696083469226035645885354014482448906165954551771910219990748729539298660450601107684579756016809699625562270372870419873204034919601669502005625391588427502276592702700107293895520080213079132153777834227807543714181364705042916257019898479686292646690326781238569692583309674158202009711335785411918359365416981138117489438211288250345683002142469973768961201306271744488187061963228770087557769533723374665546702846122132540937931077665127116566637207470795660448308413260737135544544881618942939309203663489207717275424012139924579791895543141505194940077366871523337347743500702194560524212937732479948584681921371681904797905975938267303731028763984932510510148517244673426635553152986660927092982469882591226446623591380456085084543579424644688147227833772250051482219165848649903431093986144051284345558215212257895695683357094426221781186455761515735110028651613302425519452783192511348266432635642962345646050015693961741010566965833141527547187002601560753603836923067305253124179100612439517967067039979078505638443315608350619379529252812484431248943249650064752877525660862685124517607242680506299085698361432106225591044769552381006675903317516449269939009744367828605510630898357182600924463073765866333074655016749149302554094340160909529390111288735983509868228814300367628302470463461328085621045602198240846731086780019879294801715678731813093912726239306465391433687477434200289602592026866353267028716701527448511756938950724748096574839775125096588610516868659929351713526062793876803143099425240675669004300074961845405790943816341614237360419508034703967010489970643772908220573476795898896809675264540668434408646548370583829843678895624014309858314325140787604401802157096656804791005929534055689966666098039992798011347580817505971840376076587835663748006807726612308302767967096261049731240712368903290513317964855584360593128460136464724876163314341407738713243226745977719931296262019969281376898852710322852064693305765016548246434564769530875616021440178129764522205375639205488767600012647465206666503597674391468301991490357513354659135329341327002626673394861758726658704259954700212443009068035547566532048282048583914583744558222457158574793141004896178631154525346362616978097592862975909033898985162582726358634088105580746260809076097969926647967234275831314020800760337152804469493122266654674513701923456725318493082448493693696810106068421530349467884121190065559174318269237253274321086100732512148511798945980273760718004734826408468008792248635680318658922272804997508300840511605898179046717187229269131626834318144381298524702699676989611651238043278784902234141730624972074507194772143987520493824110272412755839809092982308772126858514004643264005159619237532135237550139380475773438390932539261817998787173162546128130005672155647608823149639765681448998564180110147628428244908319612243453918256222132334333072118400285766965246426141199609605442761013339055453448242913329261502324327369439706640747576444174353213802509687931366058521197315187682714835293980914041796683685268265462803729756791790362916743887560921101923619266204483252303504163761460548585677486400087185770656150386811313240045312607723929728829541091776670902271425268550266274796797079363740913458454349223044682247977206137128823147649628827674379144293414216224462196481498191403877743438441424499989827555881448210067282198700124926567523194166207843975253392750935793611335852716790073892858013087919323475836038113159999364722032504674534509360169566023664352783146093620737341795376751918684111739141229866632488479496910349822537839193510186808115596722563916116298156444950842603566669383906002158752622357149376038545619479905358061126020537620957404703436064493403566353739553795478127990625197565223589653503588036426514860423087935586932006739996279720437608503267605524874604268468545180563374890059256043161658158423395864506784930981431416453715787624460987980975081289333699499508836317605436336494711344330046872456943552465826564992723227247801860030817435301395150307790784931444152545346083705914574724422806690512373505205794667758326896677936185236252745602488846801296963574243144843483565481440813605050445680085077267647666651225366887156587403597168910883692092920817324816251923482056501323136818387158499176256862642726175125745479495425148246651718498561677024361287947858760040577852912619854351359415821375234173262603096641384039086356568667168331306945737104973300887989025316549825060508678468944896624135888637362849371641421453853574001228959371442539781650923007118879926389927021855904580754097772495298989661747332315226553738553308118272817792218048090051206954196533947440017321575720625845659865656295330220528706211002488088118556583386143631862331795507945005586202107758844859215186183036192125456331260447123874225164241289069217720245116027758965639912880028763346629570962727984553483338958816975909472816944268347429181709509616071282674423300708826013044916458692486584874501564723766432466254454850092444938581259156928903708987776711755946497120605345564839386202580210259505531300839691749723946292832910103381360833630458262716654561341455545347293453161222941556718136391357484561425633729187981163413776539791075492489655395536133588485197356544554840861150009591647784255113488627355353541333463921164612388516389714917316472861483592530361693747366510419398897164047396030019643427271859500291551181208746653593885109797843304398739731457902067539607547335542519182423657009209881943926799753529386344684871147004004743344019942738137291650951555770523898669711146196809503281516518319530515035856482971510083708039837948509342209492506136087013676811868594903947964479027102981670277227053115060339611655897401851191154506260278861278233310472673936263415726430981969158703290992194564411606921212136391127086916132477842455361027455263619985029880050942419724572163051429885912429400164365155453933151105389376684980603096476817465320638125248150468986332036294317793977416968710947758773728043790185400406629964541121053144799847956589013658341541273570381999052217268934202662126377433674107712769882596383067413069489862851529867091830229606098793610664873017439209711534870893134905826418800088932156464576180285973901478790287469268593199677514968815218907621112945427480173425644177756653863820625977708701632016963030180783443785611567906144862412309842791988293034543557628563276863540030301587786274606498176145860663576905707831671668167286316606598761027681329218043869793152763836178962221919387812797172981987938122598343928503001860018767466128344569983751555954175570692383201089018800022236868140832361952488624999430364626376071649741782112597833994558628091001229978119432468461106751665733349414671624556140397862875227401339671262934924111534644102043255723951249193506908563036339728721381773816111786259020455585839776193589933808273557712312295941861407779339895798506838032216636466231097354179946357896292105641430371665492270143692331430662675807274618305565183596215205644455602144807915513805368398632596320381381984132663016043832173760006556228495217342508289656088353540223295800958785071100052927182021356089338180735189752732144450338695941939541986485255602014970161096513568173822903606949976597103249142379926185809572265954755153460875323023989338734440537126786979115814821674509717744600226651827905625965269300814572212341007831183354836754833198003151336870032407548375688477824727017285885215196446598756214398538340913628973828591976088259044163360422828170650228896514824872302844291700975233740555265479136948294840393566476490914577484762796058299754334763210111608694639039664316057896997659593996709442199568971506184405247945755153196356510080828712588123983965075771600681238761593315258229523173898842620024568529240298058055370909877465981485654592365294882559724980819025471663072902732987058074548147215613421453531601285705882750064623662532548515141596378454273236001170874585050686138327761737646547518204471775536441791136178452143557132951201505884805489028330686069326013628516725026371521455594301408727828146133735711249690388337298112370887924341617157276903446548284237517139097947917821130822719912178246724675631706370615810503692051415186401332675654822111933640878842015904286423768916729651333197238447900146746115136651691054365281762761668729572386988015881562192393750875560511797968089080499819654693560883809143137967186322154975967420630047747122992636926055038525198142573745847446365797203141405319009567297895420722671634933437152800308330847068045126986849178772789306551395378544667572013087797148552179724540009938924319879841885143346698720793730991137916442413473598948668350604047387439256604407995464790565456040683001003562597874594910724685220421481402937978711015217754664412477320812392296366523473207063760458882648485600733733277863596481224907423364446940715700224659489759022309146055645781010703035571436499261710198482146507740443562800469649432452514928492841682207457952122989335263171071589921682150495555979922843461339949152062141080348716140011632637143732957045403122717981631098684127090260472233869072630080156787942227848197464289520969039134045461087743100086872262937513070027664853401101788125163620371351733548534873561643088528771804405835000520177288781878265094909799863350934009040235333053896747127402019239470835188970357977692772703716971026439499670606397811833298878464432946239387621525263802497122225922704634353366966916422932723021151058612628192548757949279021191601508820572499265988776144170868483586715074124684921172526623745506813790230800710115172378216822455062200150088154735848399643275318391940308468865563683751330492902197343053930117541008682847921831287274312646584698092352245241029596534241681397264685492883503006613773840880707837757956159592925073618331634585471580745446955945666703076359132454819924135436637601168245830099269603996640143260193397421597329683826378056639466601307551098834025584218899852664808197885977111898473959968823509446469370214543528178413598097129989891159612704877274776984316247874178248720593149254103988048112016411956046644740484938012016849708667486023278702889427950322931561581168128665961397181137607119664469008183232443714871299155047043675718839101888184243199849897122834917692927575678188048284216890557359956445336018442415348927624476160586114954504919276117892654975600851691798132829684109586285665532934594435372368957519902123846024110048363806410212474325515390899076868526493845844996190064072858504094861366266209922738795422099949000250985131562906862097804333393650640995079946408641423608550541689102674417380168083536933304214211372059228783422337190270865086773333405472556304252024366070220839739261811385928235681915285221409708075204410760330377243472566282137657909942828701982609990936918231076299377234418114082741818020912209873293221724769636217030061980477685726856088351621603050032583633041282826661473873602208757489500570046534411484878861384689708385268893858138521738847120396089843844619960257079796018726667304468132322569750636579497223303370262482675126463018412584307494244231218711565427795854353264159225223882184172179265352016821483953138897559843724970750022797083555506105111110608735844447741817824251419086318326800647773946338419810454548214508227005654444132574325095262646644466578984794682323452709659558578148402546718852610865097678796304388878451208168704279303501469365237556437940735505782275065634183475819354517358726917004034337034668803317385981797516254322181055031218882005438343959242769947891526379727294672290856817716703198622071914929794452974763091331315581106993408834730516504140471015996490784190095721165945719732178139948178531362467157963400269924851761234771068734533334033741981632234724831503114659505531724526961479544625483332319600267676512607502371494508111752685654136620762480075146726052096749558127950071864878926366087823450377256784347824869947347169611410305728813863619504958628317975524838187712571608873629124284713585189370330915843973730790081680565640408076512680046513896942795393076775914038409368112319108686821687692420001300867329864034843815544282583271075448648676064070362063383302285693632834701977138062873210023006377759062456356161919577601158044867760983854098939578129113928171026984923938603508903225902931093764727029476544525145992316619926372524191029126100332906819988114237371708343343967232508922656350728898898715932748844628793302294996046169738991248159637881904870831876066625268101196325666280941773548914341095763465729545198793994735231784935601302718274115600412415057170449237903104649382767241031541562664697321259321427725847302946084441535624625278952312020863405249835662896634205523014537903367600911844141944196309123841590564296347582625970036063079614565434191324700841573841672381775840122936568583642965885001718850653653840749396784997126891037684258452247778772470342494390431503650279573812115627208018033191310189322202128231677571303576841239623649229468890956400115445025823172110100362767429250868508640902517861846479488557653523569648350171308387728228287422161638760367283769509699001774272196416820393756721993080148126839113477443093691221081774850005159048247107784049006835320970070139784591226905146835273885246605878997992431360738949659821632416676186494361314610273961171283103663632288757790173881739709395226214073119046807292460259120412474051298403931845625279650983956456807053720102884235349212620774085928833106893669394639788308912118515648862774535531508641777570545194194280994102314924878267771505643736620808371853424866216706026945067057702330845299021472194360334093857470253633402070380893148130379754554113424377193808831331397783888232499173040767587836788215356295702133939423478715057523649619730921552748174317144194081418163089042110481362583826207711536119246428508319126001245185542873469112824774119621135972820980647428260924979141078295917214348566210262647692573002213594661517440685752698802798477432415895343909234338421145311759121561728139001081397432789953202097056723645225162543373226135454326703012602990408720804266045162456513748489434368670716533422599064574857917987728371913388627362492249603404077341283907178691756166899252438924566331790998409480217856355743787309140044013610786376083334327608167344971373970518677166116878241797616107422099361329687239181296703115104586742598422616416677920251868790363077452816063770225160705798322469279882347337252945979892336150809739813481620178558764163567445128027078548440846019991637166117778331519274644985581850104948480727150001345819471065366292082642689557725431060252938189955541888698835407854222030808067488849923041909138794582327145764117360924835372550442597940489473888590681751167015778566248714608781880959500109395204513708250027880542421389834895272403549873167041095631826428919326616719770566173731336641840227960466218383855102824257279311770787486143487358075425313270381440068279839308173706597801778366029054208514212697710131359653080027280416951388046448904948978647775570596547962959224462126398868322835464840589125027159243130404113121308972276367562704512379640896711090387630559186095679693862736085488711669918748126284779679938421932848616443751398839339059009611219810358545089454376219742664609959378800958005319047317605576481512758679878118413702668056574549397261241361224801717459596716063297159318531924669840619998609381692520106369638157613293381052588126218748767822494815974724355329105912548765626602204302072156039707566484690085307689213502820098591828811055507481672562597873930186482661712522420676992247910269139756871240917618708434993329509651148708538191349725104120833084621314470724695733851158913911790717049739051279378007508327237350234953774466119206479796767299565975318094023221394484124491451191633739576536066648559961776348874592076421156641808585187467693068049408955679433038761741775252628110127407070187411342013209322451214519017023430066617732639760786942098037948882111738632728238281496441644347972293710225271815188490144001603106121595495444693820133598051473592995915201364937755641188114314235552569799762203907834844169269240259596396452936525503862402999862308046276350780560533965922277936793131856601877079640234112881109230431083923365779366452575706149022076419986506640656307621722816589743424060652096822709563813826461278082780037666519686486272824857808158855008711445345276403239749455946800159580223191015690963481668748938087705969295473672667807679441279031661506591719305584454463539887682966557720832764501961062122500152374843393343862804653768274683382324165190436717625491487032758600797383405240904867248794620166781412500565809267705003487096224074244097040300527373425594889771597547615104512323949541340579908070913648446776823866097840629126680091576425191105175987736592351567709700562440292069675995479437335746736112338382349182216693341812363022311732311457011786806116653760302627225308123921700881569831181197860422301503312900137525378062757090438496112884956900849832266606017916276510821068269298590900640980769329827885927012109133059679698089188415779716458771848359046325242516853538710089747227161510498684053093166853688617398941433945391991953489203056300636885175118974492617433525177974717295869915881668970221026610842355456161773087854546423766961666636597581522766205206721735740743667976969930761460444151609959802977752332892652134382423330890315418761076293440582455510798257816127834304276966204987017305006939577636414736972255741141846143810432033886699174226958603887776155940776485087588673128145621542557245374686030071947515875467439052578836014757385684327740466058746340165335456774393041379179439523913380865604328406569472566554149183922104336984907124877192010302632726272224854650246144605165486489531760200641206190429784277204361175646767737316691651887443325903497225393025810980423684918467252110532931762135154320226824434048078073858076736431308912606217368280236443265749501857372857989162001113424230205923676668453457997263736134868140950128533263348791940662383883289628417008341782440818927112642307016451613508365685448764314823943535445324911284524722520953639340640273409210287982689384713439290950913748300489754934264755017237895098255322832122430427863263774885885666704444159334120226167088627834512106962667241631429420176627282938027288383605370081772574255405669197636862195181000227996221877072563025975785071879572911524367300157758728649261884221816923372182202924475197815592066738549813643489658173489743557722953566831483821497135960296541239675945681622183355591058868010866842878404370239878649457571207674041140827184414487355391063505951501203971315766650155689452562011244415489348877817028356943744400659406798477851909436006794667508958227296194447172463917067147073508330046182505336809434301357558406164676529128538009580863915338223184502980584107652637142777172727344569407258554277917895205421286640048343706417203868573071421656153556360405807923004052890010799699082947551541496704498003029991163482647377980851382332015176304227733030292990778847721430588578002397156826474957207851754010953109060751352185079652067498992215847165637309043873572783814181522271819713742903088502590074030695005270251635510837376604994700058544451492171334321636531967747691162945609282285646811125092256052874465757768947360952504684097778997447754306607844408436064597800688751753482038210624915543104105531504464734938569688325704295767907007095208156953149836623446635889195595488602645188935722786596187632504808731139082546999982248231599424807118590113920196921670592085252347970173452067752929272717239037423751653478927218176688840288672966351079566051330693895069879068376035332089913423554308881059179201875052341456963049808757902316497576078733754488313211509677011725866878752214201535388569331839897915724627056831589673034344435936166863488898908829503765719054129574216868484534001909495836678169499869848510655181383967142696083051948953813890548388378181790883107246894341593373806067212554562252975573480614329945299314450650895942990177639985957071801525978112346953799867789182481776526439036798298488091353386383896162127428254055948803215225467976559664225447747240594576973618693400938243058662038992715850817668604991738415906652193191010145854866160406774213249383067819773640782274641094432531113097417237024856251741955532678005788380326425377665193659681737686674331012772333046704163673247979094179420230223168088471753785441463002992681352453012161338006152493074561946752633857296392420123830990942621545134231396842461580578823037651236401763438663583576864121993976287800458968343811314260582058061018736521453010621837521462496522775108257483298283681407472242813535955876445647713590533239399176959523546578657362834073964396477399116106922090039220191627909817806273009222136411966465245944138107898811078981767507701206005378829611523861020010167076374989524671026934841563601329701284692956329973359291279377048341822177856872298941709280274129155806879560005804227841454146323806077258898816020924423291016612773333041171081105272465613504415740446636100958104849687744518536514578870993721399618666726185587493325891418982784216462101410753331559568299972949762863519690197657087652388354441209814431004552477719800783651809789173087785440796249767859639334503828485913998193569844435412286122595495678054681975052140467731673312109187607053467956155186332956726460913684302689549438742207351536784072778589892056965548223013741425257461389229522300363578454491639212376965285749980843168483541615565124299395337836304088158376829501800164626090235413599225987434563458162444569745096326751716368471558170619129470741278120038938518244490542407898936891837114387702805235514844556247624432141340134111023462352920410918588261253337153443191832796235457538831239764865798210949912595750687924016592968677850531791388051023564988157263005311581153106044879129627218702759088697071643632023504102839219124082454876607064438557936317279346647045801797143348734157241962754287914893711177966801583038305899948757244307990234298273610667540026988999107888980208780876151085828203199571139927683314648981401410118797296292899100155155355412938727986423676188074003102739774887502079109997332918956086479441406841687910474954792361620177530575947067446425849175793386093412918865532019749178553021398444771051682839372965959870682923837100031510191501307707176274948693230025794075557497792423140400124040510533721859863660392192422122618656764492810333907051892887783622863301000131514324021329291949161353523723335709362431301652244553505260342105240810262397752279176145928137598423850363345238356889691439283609183031373019653534429586161716965281670651887276519370988294281541849943649188879967944698820720194606059481812147158761405933483578707716527244611225909430817286077825492511928239201118101005427643180981719451838969938183187120800763110323503666876474871034365585199035960730980834845323619514801601550884549252519300873006224282630257359229197325441125280869706194289281420882585078746530355138350622795656919940467774564117973362845153463732248307858032458632062142673644635063071701201578876560710419062707726287962258429513994263709123673535606714219178970571344556379048482510470134700118591302487470702750421279112439900720203953388030479102670614317551397302217758833470648805955264074875173063277060128504774127302349368343388179663241059332987093153735320490823393530437255589830190376448413177608887589935011821970655678151779340258595364247901702885775468377134189174920255836863771155332518064911782458758575822208817967327975029411892667640601091811594199732437408187637945829188681174089306891861338579920477001300518074589793721000113448729867265519096523157385952379381337725426010027720308938324800463644848332301749161992760735968684911083277476255384631609309472503911156502850923961318735196365813461743116940499259643912563418840029021453147725623755421625474331878473576470534466025606402121054816035734840915661921610339314341624445714094339395845022459533430816225460743330832841685890218605507066743631691120392830290073790773637582346404676672389265157483292959864575889986672222319417799453983627209336497573226771808497252819315181272376980752684334685553786580189556584375764157841067306729863856052994341620884481630784893620098322764026775949916560506524642514379978435147443604563642028734413706201441351871795668590636109021902926646051208416958580343661874206367865225774800032454287663618437990891658571486631403233049188026249864456252568173061207294202793980976827563453341831568181005236432103752642454106454333089304344439206901130573414698186821001252090849254763793095087666174322835968300256197547269273009536567423828390797202812639621006758618306295032196600708071400610580101572731293874912851347903843791482204868433520011606474784966910578844372251595989895215518252741098337678987460468146684992583032197256342043683742796564441469118430375356233425657885347098254258841673232234524500350764238556612783897027528607895382904244944566477997168073833323976226665455569602686525883736328799969542498713120628581094475661956218270331959094417381743178271380574466016375232068308410887662763708734415144169018370483012387763148043330876578043364277014420054489770761413151294606490502570167730422238648452084594899314692082665035671824958112160435793981750016631669075577460382178169353209456926735098820659754694946828041726424616551262440290880592562723993088662714001658266616825966932978303421174033260928195378234083736212294329965479953263581788614845929393049886881532115501970560797778645386341146039662004446174391773050760014104131703201867828018067659160131280766132567603630516452648849436092477891184538447239980651530301152131353777899762297671280975321101132323282500307086041316675062437871798323227097435143908628180245753193769566523997441909650441206129665397136179879104885400945489138058866899181018818932683520081990167365526438091010482932899751990592284365044202046568354471456041315699235435798929576940758867106591881035667942050350336852234053826823710114225411264320455775933697080907551558199016698794075963498962428108428309524074944725066297637711342482086278977386669777814372201991569195886079937267192689511632772980227248295639982112492529294488569958467644783403953128689331865856632319021625061867142784845945095746575585350853568225947288468911331686298255408315326227403106329645383712604936542345924342859189852989422529421901115634603054488585320812157684444509578064876291256095870218601423296991580200201148747723406635484552848574561750821868963602914541816004006561461422076047464639110155337353152612126985565290612252294823201816255763211213182447696006929089653394646205455643235427086001800899462604795441011283619553306143051388827414079381504721944990788820367678828855718055871358801025699241486075022667109893458398750950759762336583967226354088688100468176570069053335397541520464549347405680135994277815696842457786750777346283231920723623395862023735128670903431963017596263620128928424984214624797666568519832955355918319152925674823586871470697302080053094058546053429482036494714663556905455358661108678562699447103458680229607705588102690453720073289142219886520017942452052398550386114590395513857265221161589616993165204378729682030412477088392774384340068579980977424638367005597391694704024968395001193081827986126560946342659923824885177598427533742058106130751642487059989811597876150221694234109325205103731085630957188961735120448115285615699233472611145249598585384853901526253334181523404681043286553263976768474245572160223519297019902660059149662481312052842631960993135399856475120641901325878572062904736044596272015873283626779340387556052334996735639225400090696527496593696194322264018623743109558342003895627945283127337025923236138673287188147502734138537755472992273079492042353676952989880581971796152683662992896165371070343268627751551670496312210267731391796495302707652536671736596044021721271905058853439132529335474121752302495742369254903939295851313339804057446873237163211970769162998475733632699701797114918296230818501431015132834831184784103376596623722695294440644663896981498860223363943964299962541887649842074812026742670894105693691722424377384789865610694810008560854964316392661479352490509360929529719832279520414173769337116565984868585306021755257385752657333942155249177102574206937309546199134420255620873123896243458049332068413987936151300586758519040199806931405541155745395527439032571096575781793985359160986247057649725249196270760875890951851104609515166271172056307739632764520679598851632580948565291864653653863139882945570346345582887166596993433040461513483814399156959722443779514183364490581260212924863008585778647843390871375697678916935231292516290897958323508586248534385694900626282522398025784718304319346762786004743952796281309805740804499716650537454162844083632699095200205709272298770206758353455862049714846091071676304479367300013398801304735101989370374874160196747313969264462084596811791534251432105165650347718744892089745978367390359513008511971567818891695673877967919410430652043817522289133203935368327283875250312604587195018094486753961292957143073848365321253765921173115601476275085439244856658314264959959505173767465903244474270464044398342460984579383240588000184332624800984738535680327241912040406900923247688252079457623897678817633058686730766201011508478621877870151040650277844685907430890736898288670669858857234713653961649902752218332594063238959964012379322985638073922134735092438338118898576048947500976938289098269478689283818724560850063083699236555203986337043133620854279121479101557097564756212420006884063450164541249329135164278547000158039458867021567110902878161468035958229033382717735940397248352690557887745031334072981883471733218643285160836793159604792023138592625720340903457208281014849768294217300429822834757960577778593229670013053202298366746162983537966686374497173767916494579796072462124886553818213900236486610265447588552324926100973760853939737105593515623347239261751532812604293164574368834758448158239869000536400422106829123961183345586894184788674293262935714810385123915534919203717405307367019649135436769525767113731742962176269199129660335232110467152131717714277419492892241910498409565194926324434490997520643435119820981538681971013085089945624841456581094269828977561019438150409479909604920784886837141716162551141812984009937101828498139525242990849719138037627745175782043179879089806752027326618300065590424543123847619467386339040838215950454549662378422639473347740425477698034444573886985367629581932370182765423575981372655657200867167168457360258586262213309689337905044250225549058694437298878568197364028340579709887662717280020943167291355841653535173029942641725875863856517723683039428107970914251220825330750242770658378893734383641344908050990655095969631607276486555886728146300460199801318975946785895832012622475226377216611519390302577278481205139533887865350827647128345108104304962032292988419965232639639877471820607807908289472277134652227653375673391706949359153352016111749131549184093497254679408588395561911360127819393171851293907058272748240942685311471915086954327191332298017146696142604092032236555546407159397593781441328661968543252847918603054446222380988993536957809478552606621440579669668237674935907149122028881995515449245736336907942166750927841816777521097754728932484286443320781669448717578478544519298989564623081127016446061630088219122487784979043018633049819467022238238203340824816739944369827800789477085192480268443776950411042670067012751389366667255700652184160525384052178878230321954776387198448067074511508919976008076142193999698567923627915065014320563675104604013899217532351672579504562565387734878627650271633148933021952620743354915953868406585380687575366427113890996665970895041347338689177514106904365117088384900197583180442057213406828208694414812902122917243950940469324724445413928546872084698362597444851903413235601953331582121040923773838403605133071795799899876001804952293060828036432061020426494352796253788836355098655249231889675444838014593580346089177454088686821311558206885913206848333997857339491207365730051750932015347573308330191863342156463049377351360361595545575391373244442156677623155336263441632038319442194782255963340304632050636518490972588634611334021279829993485587701651561722616078973679492216252435929590893604716474410475318137152128685909682105309366580891158447754035028532756847604128921386246741959766031621821066272168554278438946811804916955150443977072864141836398012652975395043959431577534122519104787765203170607210481792544288669996770276864508616840383850057609588978467055883115384316221669364739220228943793845563903670115667591742200940928211269926005063292390431798164827480167780642694512409908874197316824757902317060366428834432545550713685603937065996749839101087643345235688282434768334255895424056453104450605572391336454010813590732626096242582704782044622489582501038095827807386196284307939044649397411965162068072741972262914298786628528253552476571941018392253824453373218164569694706961069111671436069739994241575396413039272763110829792422842171616278131454395048759638516633367697362884589794844715236566602754278768230426698857579777340627796975342118339394555294828927353881304441332182058824795042172285000076494064991484350514151501565091186961924676895225917006327555753017232208975789602004890355719333074128842344644136814649381840085219923179217094698967703784113002320547801520895337143469237624678625179590740501827548640680849551861391125671002158917643825087331446604593323500618515320997912202151412861614133416069442012015439518533952977006829455871952444190125179411843136830441504902055200170694073868698927994464312369455234958098467586327601661300504433310356172425972497077702511270402251797151782501383324656801668530321349592710688145829719819193707099294654977591797255137866575742427116702712434260417754334983752241284855812921166459485318377160840484581930654338999244549866843221013697945544747580669244958293340058450241353428892709245908239309728671390627629544559463073176331255059196754971595325722280265633098844390794418663419241490443458787732891181582487148294627406883442417134094913428563045942948436170559471789147088517725190070223789676395832977965688101277104843959147991774881163301053430445573549842983449687814816569028128592139257966850119675216900541269865953309977408927814564258539437421726636379501703761399117415928958949526485807320187686716622205819153375463650440499834147033334269767635960689882870190824627237484810593323471394626644404813795292492311675451055893291253361492087907109925278825015447657759084037851327084595267938714922633817318213912189782379267780335386200555171830935494775934223945576134575100579829020481569335113320987922847832406619804782053890081870123218378407973285287094863285521423041301029936819519626349634996432288497322497209000566149925940546267886796967061255319406780631206039717002908561515064449938246010360134452243503987613105624656478136750075555595142090448842746051892017251768953020124324979213029562981278058601828302862168197507549360070848816347825922049199172508077201282597503179688796705081555727483620183821683017425579537678994243843990214157880791913235687349670874797027870258409710235417951011357393267525206335740907968531523122896128511271700250060303758582515365685064985743998179427442127063631876215657700073368142582098659749323458927033751088735979055468893507816211380089457834330963605659117707277253962125510883500590464541818536758057691048485622192000180277476339892219429243234478410620822950942837342362325440671866077125914942715197410410484367949312435258591369745511821289186807225272573015986847326619724524939915691755879217799876989827154452634370538573977973478860717250389816361783303520335193997273877410812730617070429798515843181650491414127285097499292188756418685174617197565600735110729191089967379437384899894782406980061760765282520255104494883478730129388685309950781444528252810801026702350335408088522475548211543574759872142785092232462152921410961866503366269690174248152347115672646222297397439231072118914203081355618929601929537647844107931587657617826428701657962974468936551966379010657580307358450002175628556901261318015463927104212693217427551534547332558459829182891981513091673520039537396754085743004788836565094624765637686693401676594254879988019457277926516524203114578736844569564166130048076046583825588239833027925621266530302709113544494984912012661884218213778250896106403831372351235805074040775659273919236859460155258619714439146750961177009469975179716878447218731975289565558474851726053999815517190549155950447285286130431742848559489446940956843780738697398704635392811624968156395215294530976655045996636702685839483557066695146587970798056162244971575340545103558316652176529771429979230503404257120979810150201085565708309586785963821886355995509449227725707506874403266305697036514124023996129128393167444776791257197255423240952809355087083212910940556109664106023907152515132574860726865032790375422645300545906375297325009994939812876426722624320410838907994280159334866150567075164844793834931938589179332763498341972546818849070906349371509471665342812178309952318085999432168736181446282601442327919616293338523037645687748313358827564716488576271533249315218496898010270892713167756473619361643922315065140572239500133811524961326920351450953546780104841918528798852486649490587242299774262334788827520690381037195733411833055506319301983113203715735675659967744822302801155085058825345046167376311898332918761112105694350201509434247738540329794902767237090208280484546326814451476326764420574679230071259170120715797203143620877201682739098278977005989703921203033745990780064005301216534731636764972407774164126686597829677754956667388814392305221706177061581875040481087730780930081996544722763887112169659562125229097925333070443148256866873194097371182195168696066421432561445591593236591966194282537748980750515639303944929630852724459181580470845323438586785925829711945232647619476335767226368096152731079266949478886514571578589115792906498552746401994055555508906484346312307825989152534520758379146136174546017676032581637238113347942170534953251927733274801238223273446445470186102357877113337476352262687279164970117335884732805453277143317649145685427384842785282990152540148171459646926886893389466201715383213492009293511287569104299209199899965604128864211346009557721176597638160952885921139309624818200647888824503609724210067077768029134464882392870723110656557153898233307652767691027753614530275675397648257045979418612219558607853574503320268087834132624146406754608732738986776814689502799879414389903438892457365628727460177118967855849188971408512844123530779622462299258435999592373212889855819183780407634916131933567730357572896438916231281695981625908686827792376647105862534135600442993228951208832896062295185897190311289746635580538610393874932675883947820749010946013111191087742171529452536097756437400449852568206168686851159841928530233677648298092964492530709055754655534745597805766013457732638413342303755033475732897036342735827654286662825924343112032968413002997147305869179432880274337965536819470804637464309403851732214780991991489651533742080680122780414640071310847210018210485205266879831448436181919119779271775792352514886167550969311729004634077508849540700914569256516643114920025938962234870908371921730200879379534550633510512906407724626972416418232975262352705803005860575902236033058493339217721361181544938874993127532746221019538311608694948766804439356613158984637741224646355778317637840881461812232490215321992519649973360620967885102583111490707292966506327631918426534008320386429447360064133067655568122980982794649948845573981518051563474276690968543573279121965956207248439805011656367720920556573693584931128590847556404421054800328543649459271078419334201281156178966921232755259470450570113014469127495144021196538261534558149092857866990503725441880054311763475364535641463239428865048249761723272761164682930912083257091295858982240280035720762063581456197931023056948028782647426822362082379578009591546217594863830883236098687587990070711700358720363294707937366731858036968087301109909724552089744318802423962619635128125723945727561711891094718769120503202480903118406763369305337386338829130340580081887159893579279025438856663433351676638275361082028024493892519017951016338886819324783033933027039952047171963263746610837400285175693409686220135968732166711667557861213832028343531047363444784589891949543451992108114168532471373073075588666933018722262021386452347691009236365302213486865428506955005613770543298115767904632084705135836067579576575208717554526917822762233152752376978657117435740337167974477573610706957066978236974908140666932970977809085033235686378095965331234284539441442524804636103476594332476369239120720655596098279095088645482123347114429858498509887788395482994178408216257551286903740144070333487951152898382257279582702785044817132436680198927666869059412390253845533331233417336386160266836780009929403648756349433754989353201123225685134845301108984806145664467436782673283291717704337832844747047003719096758931868852695869886527786761823273822339224712324112309544590525153549431569125319529829001169816118141920494419544208165704544869079001036449077194324796430566402301886235496169337312187358526829414913937706880103728464146328279679510816294720630715585324444461595987254066868051835608497091903402726986746432788273580515048997983259217229370450429696203433089881961879397160520376495274253123424757818886329902372903703803738101283428249267923809133516493054259574539650186128425305119778938382191336322054635635852551020239860058256396646108509324203626938347959798867428108146020692857848994700156042828378675410103871488804350292044726294801005686026723581295126658976931227213567666614990641885154947072570464998879963647053467508245525629344827288087942292245807218552171779044619706901684207966534868889134410640194438982099512229154989998586548139265072518052517999032173663407506086810313159034523128138068238809125535284824810552547985639677544667517160217455055213133047851609533184581507503149325594892423899188982150990587068518142949187873104574581713668583333545161084182099157550571015835105682678551629260400777504319944985964489624967267113941018734699305632145155907660280599740711275304818807117237009252938591799589769754505154143903437186057872003982356787673265784098229871760433967112982532275785047378992416022008835995550192852114180549457566826279702715833832562735685634562112559931614277687721526729670223692779933837297786702122430174923846236717911470389730221552362040536900555499617859946450214962839902157967638522474772645252692118595565107147153275153069994049436636221039049956819655802863307564478329212314895088959569076956842695643702072640126255858966921054953977594490684669401687324002010488499711944388393728616246975736490997859753028808292219264920781678861122360481598483382996799678203636596229566809593676250391262964463314523623490172420218862267352215166320635917782386971421141786737026744572359658058484164542232740724140083487490883779634494422846106427057294803886250052617937246036861417478488987655238702254485312042044683824938609891601290469675365567788843767450783235868454296658952266583427437691777971672772644881336234755640990959618726208967464290472339027748922140893525636916883512999827484477596114890118863659835849475449249241745530571228822822639172520526642560847833610044607622096497227478833156198583674200992987717748711524408974260084803694165976113567977055075205388523636745685005586771078331093600833322621249480015252972578777729392508945096521389121433784703080206604455265688628588317999618553390964523400731289229897034275700321536759180561019630867055022854927205334701347053745753151270909798784312070267334001555596940548229847956466773791383791803638680861506988104063938449878994855517369794313348853575447884208269779460570070523861404132609603606519852853161280284084416458025266200989013057297987055826175796567803940550721370824078342356299385932478603719555187105267816326200549333205535119461130318401067049977232931326473062931543562054127344398771800638831588707845739795602546860902480976228679452206243356039085331058260217151876862144859598431354839923744457996351730259629731344473137099779866598434861764689908101202009361002530044556106809382852225587399688730454684197181060822359365175069989360046908647027032684222953905745404843765244721317413177830661142799848381229636191605301158197342075792163698225824365179395207802975668698774785345181504038575197678065079071116691028974609977953521234931948904317658610505122351172277216778878344620753688761775723486445144650117343825671481662098321489101819287242063331015622476548417088078520257701169530447394034608286093197289929853666413725709960974677696354761170505964182804231176910807481687596897702131736609117140266873208851399307553820332368601476261832042045967489619631303223883097751892068198910136134218914221099446006597210931266478174225696752931218610722706944009766577334989929347546820004560620912108388829298884789161665299718163712971346096163015794515510189331256811678064639653869842880902896689645506679758750143575148270224336590627554671985548910862562747503391711892999033404551147172814049119453242761140775475851284084251359324003301268114947917154627522629789184510804126338903781482892173150292766636403833171701126406212898156318864921370812055706780113443163224125966565253879007964932274439853707226024659188824538310751383106466176613954878733118450705784820366599679580311618380887026087334276097653099041825850105665243415141612043797434115209425797440046716176802368974313738811403017506647709613007001478839986708987037621641893149859821737008797332653235326569755963870871141832263564669508526498725084508301334117598928513173140351453683672750425710006144850393027647042930253395792259656909926975911640790396583940662375495779569718352779785749874313784746397374642921148238730669736955632132651598177255675882647148884216190615309128885470258170002255945056942575966774778673785916665696723505588641410068767792806393811625307659089020945385641376257016089202494437527540262950178549507174614115779222349588225407406330217797847018483296645962197824382766633899384978792869687068560721829039321152342304875373225443773825494254091542261296918502573405423676970735837671802547774767850780312154681998369684382151500386580209187803337439322589407042679009638297057656177478094504383756658423536584542846959379199431644987165461580901935512427367760157988633325689809964051482011550740051456960435601070786650650121133078097769123772062793805015722619548396633834083924441649750910941436870491281460210397857795492368650557693956146255521644019361401807017112736907493468129311166079131619231049953387136056361521815758031419041673465881634226273017009225339342216583342143383775367087485618078758199848126381813271317233682282749385137629936996548902969201100044266302865030842320588831417253763171324034511026712724497690339789299551354595002481814312669572993458624693785070330514880878256233894342740118746309881013017482062954815018934052771149632294855479036857340782971062664286967593118098004268990696959459751749800873791145333527883884982919618548796613439362715215850214059561502944900720306996393124376691394556062171240479303349603823871278596554208211266479761542182010995220890534991623426915877733172367220509796297081789980570987801732342056367428951134346443110900195112786746792235859903600102825151070458877244575890831450129563320060588531690344460062929624304803899693702253992419116744012826642182321511317268940746986616887049896740600491792662963147458145058576846973965896754743516495449083500599980548527619210103811132580315004189232786714336170960972857031681879076377454503086576411458310265511232266702093695193358220781395852868290890356155974725553147961129088243109765158281581671282292147702849735913459472953455969684069811329555098033558286911877316902273039622048770316416769529433404505179030072430653372921584990032289148590588392420170378334307980085601735110693593124280526512708343228071529290942190210862190970334191824378696978286087304828749534533141272399113563966439395969613464348984264869340562578279196499201248220985704235714482666589689462048134111701673404962657899713903249291138618211996711570167344560265627007100222154566441788581928014404917905395705771614265013060603122876044165816194930295262798637249905130380873625293511672353029057769987461432872218624204778913061552752088383488159069010165406492095654428481708886494762093771344341582875246699786054675682356057223193853268664562182934102317649702562268513924302753312063484408794733682841412743360067392864185193904292141761212969394876458795695937919826164822954065378454075528576970715006510514912026384593248150289430135984241875387645713719256392540033211852536020620321947218538779239074158456688440912967550924553605405091872628143588418116559278302551905397277181094770015837519247611441219286606338372947618185108797566801985659433279643331246723209902666274921353657259603138493993291644686482422118261090276817683802622170037333776247928332883027335789210523179817236153790439601445764765928073104846256815797439830380149043566689770566178618654992649815883302580481961676895028469918323084718472243896647893795501620657202298583086512166096984205306820592918979942356117067746484847196633722606116308401346067551191657648392284751983495485740859338986128222021568600805630895720677908287409816461434693290735148308424348795129724380235861931016457911305607652381644433731307235292540276380255887476393969240853173305570277136061573485719897179797453902805953094026042569696280803660945783693202470531214675502330061191344404263583126410904567836662393287899875619618539779980000324856511238662147681059860221990248254953947164409581849985856011840869454481007679800719201497007928390901251407756908541202906830139488651617898582730663911912355513914716950409985188921874914583776776024854724411067158776595395196923646679739257263944229674433201646547215729418613109616860277875283795799090669487934008049681802072754798717707261178455920358007247805374744767827751165220624406641305653265159212364395378464190841269794661839975833802769856732089213005236332353373940323855271772864313004868410952731589606834844112751516100848179742510427674248792742664641270238222814323377713947179882946775588859098452793450123897560530522981883123768933863312785141049646345301051102046970256509039425176321259187019905830674463157842280894623999908173695155826150202060643818715698091121690424137765780130880169355487414457455769838792637165231719133216459906571916473154641711990943295820961319431366848525253880834334206888871869193230248635490801267338870429145802696901845565153169411436644207393998916560758436310549968693613287154019441754065536504284495087136775064711568787277828109087820882362926660563821860587216734323225536492601252471739315653882893452327431988903571436329522926326750210024787773178094708238798268288609582471753689729416744430866204563722794227806826054383127354334273391245013076320241440912978708143971490117546752004835481561763708919317344010359032321151578138821984245028705260614078832691844454348575182033762642940070126249377886482955972815094359544285446961555907179733737035618629769884846165455700992422563163658042374491042445591858626355007465220803818935157296144284536760668620657874902523282159516337626458698754134609562790861478541195741204799173408179769315092194679935279308440558977197887504526456103706115223961986325427279142094578859328943301380455323414688284742886702474398684855462318486711343287339979327722539517152856453768715700326689233823890706395765417322191028746074416475347646461888635513596218972123267878912490296084799734906620187941367929942017400012341111771713556147483527963733962095083835772405359357602622018007794057946544538280937183711254564873687431578815057325012240016037440683200408165390350810008361644507813449086112011952472104072232441509703662285461753033421973168665210763501454777438487481904952746865400550288909823132275729877185189966447201546196707779190112916843968089925786433846583560774597598793097516188453796107516464607356509599341232070379385733206808491462164606680923932300336058904063210572318597634778015412931405233885085742876254567699134284114879596969178638110289961077504983409002497559907776014248349244175926764634314666375008208187557243700807312701310453858060501729142139156505942151084104780133327727930685642107879332303859655739733153056569167801239182029883994553394704782819620926084439978363580412348265444470050317106971917555542169904998208407972155651454743194077169237405980363544027652714177041874940130889036755943517382214077278119427087512543302830611178847582827198527780937356561078885380546218775013301625978832348172762690746610487629165433283516624162693992916253813326111033297146800303076864744533419954668804349998907046823703677987383663548818050444207200997133538529513817722807153312282123845857566395782518824096704345654351919590742822171407282045033626559592592791191461105669462452945101356285314502756285243363363389701936988060621835524730473274882197488158860033917641400431435319036263459682564777881047674329346822476224830736541978190732711816856912636944393596305401847192285187170077770203436715678004850189529557769558922156999693162877443362610645606156734779835447301624783584006871705389663295246038977803111589313240095660198783426657116591023477759090456605044153588155941206152945905680881049793244116757022771815092435558693745013013590003485368719866910993808803672669697239239586060647667494353023945446571926060619441734900693359101580951559836734874630304037645669951242415893922189780083929220975068192007898294828404412165116644992232554193489125251574018475626141731437410807244875829387122803913935547608736656282982998199373180071115294011120614061165135969887184338647099621005476850863436496766459923782018561011234394832111467831729300073871884019757202881844374182589259721279460065601825258105551329734426629736872487931976855563469768189868580398824032316987359207643383558171647588339494584918005291494604100789105154980026314328790934222221950654571573630578591033623531712885318862962709004488808924411365781340890856549443455754303606379628680628910108377698131666134015082361182545857183797497190703328192182418355109201563580629624681445805212396950294054389110018177982561891175786009514999018902082226664752881108771880880381207742283841704445151441471032171688182329500518828643187984147966327715963701562829277779873444468293227152483521602856599487138653574058728705307997387862427999243309389776239071268957181588743570349205397990724258469625690721187203088985753285088870012185991975670096556920694881835102183626688367312395284267864667238869297012763025662955489189459249874890030920444324825978044221794794252538949792805055892751830713809307660576010706108611068977956565626190102330924769619438546129169116882588833487597122311455328853470668292242003550384013104592378147330382770255049127993977723195826823568063910045187949704916044090727491608409309845400262065176447574331278742823474840997763387092592355693510525890740077453951217942670838758935206320035616455147779072239311166270778372528047607735506334570979840049375832097650988696357655195118495953309948374793478726806596388729249934671817780656163882261138366464855054193119605029960226771389620224838345190132572730471569110287354403598318561969317793346648382993092196501050381427465523153010422052597945244471411682496793992487294970319098045458154806404633218104560664169573061653041532723470372611839362990898219805663296395035238173208576401158169905388542893738100520111189434191016846381336396787627655626626911708524182272276578043197016929940657992479916222531303230281714569398854062661761415603701034840853719896598687389716337834432496370586458944402608186360325401589466123942702467259704249420709019099418854586768394669482728415304027078943641091718243118206119755689453945863408433983445275952351978850710657838081724357806965428417574928676088419034945188595312771498376344093754135224974976889695403298040156533634243004128320287995878779738829733113397306074870827690844777087616410518196840048679177890380861149779118089775828188584435214174687585180968455393061982641773255764671746877554429090623817225047683364885141508579716433766209215965337418189864235814168770007430167808933251599022754721299934841804741924200529111518156441686197392971882324196284156008522064419474966893195842923836303464913758616226455671644792735745263356809001021331611823060406071676517277582553020245492263381389618674284011529643851196155976280675962667764614988485786896059683593863667248562165744763425596697732567441941328106273739729931495242083279701359608127452617712046691010328725483957820121664406989921977260370480727550128522291110505809739525712020186845134144493567713020881767987672721812586517932681237133140214850186923736040610589870418489421201151321147458495818822657606785304880154956063740072201498570910552029567584717349409438915378347523764829718972573526623921258409261219819838843179882716140435520975449957535494954596862790870114930528073323213720369014217388631120097998265518767372433416183606155485836496758690352023353128385213444486672717501071900726307501033730705331082117742746288019880857037667107401943496998117504689059576144275591300221000391342457796544128433498068079614343445094854881408811764504450160919253930314994198067989170512659157797363021238447174435661471036110865065681388617768054890571757410753399019154500951420672204865405836194806701581860825751630749548182203896701442328515397527496569053558553189843302033705338171698526014928326431401671331164176164146073517099328948124125403281864251664823540521575765877989101823987884288659897047438845614127052882657477183406739933724645624356876202933287255075374961681927440812598914588953335358876662836855824111722194657354071845331458109247879200962844730547541697690908720692702075182756785825620570720447968904227844193206209661945417186992254679027408070035717727854020111086639936671180247151671483708598418817034490128963132355727327949976603205119578256028105200251970695897255075536117450720358935431089389493118401257723762290589436236969471326692607997535830467855111031656907637670038530789559603407456428840985711165224413154560215158570558292534220254829686378353146787638908159686006965543831005192025832807007372768386878416253018697375711680337158673328849285397424074494982735206888963066976158584647820616777756112801375296351545807981219386253748086299615366307455671952237678365759042709723977285843581365390637547427335853035522469219422780723291644936371725279749955916530271079475385371907921468263227824831156646849513082756632488362283880060259041136986643038904541885719603814874400632747492980916896436713721224471105845159948399487272884291969806504994663993070917848841463147851592752070133010251715059381433799632124158897359526541255525281093078628780615685035157744434337981418036889286527475443275942438221687241003271403499129224710793118218298365023688770396348431669341142443581033347458622744666728427658036873558407605813635471177081964100635159768772777419912304893299773418306730386409838701469609204540406437230013346843104636666376719908423448701532232899031106668323039237957487544343885373484840887682066668209759353686874153804067227457643476644421545039912138785610989059188052472237908389242619560396325119042251368170343953720717363251140130591494574826959181959754047461060172179468735995477273972512717385099468531542715962127291338451488141558163251272326317310205614308032877633879329974472875036383354619892743136074655052730865700187984397797624493761324438124681770586462450037259125826765556059521182998265759335762166919712599535954556975263511959514891066160440656498276596336720316916023638048690160806121840298370200798530396832491930974744418650982399302491423197077314408376060181200300488721867769222253143942022732024139902389934179204799179381413024359146270473645554344648483590000376402220074437687650187172721020742364084658472515031208762413048108063983102639311810248286395138485705941471546230315873475931560188813212772217466671771308324678257594290233378336759426181782656249490671659120083547869649532567621061418449876025519599482186506957784185377679597682202524279857923899364988306759400881260618186390859245800868809394917083080314075624723983884546855137577841111756051057197803579824733154817678327260046364974203817976521174933304374474159819895956601810636170027591773984087470080935780310185986845049766990367706288139633597687382590309316071779780742355086739372913066784277536393342339499105579639081934424311398988492848841391379784954326159319304585989849480481996002314254500626935195527695784237907479566019541113374534767585908298421573372451010732094646104493795022511309858269192146477319363198180958372456556482166135699376607221539633740393585873827906974113736001983227422978792144748195327935311532329712186933561762814121317695238593387245920291208338114383443848337889172812122182133839056045418618743255394766789525607627705896836173059848394156252121624850909710076038926072714082418033836507904906137468090054592132166683745708470569597978728184884108487058779693348651003578842164197236338279368874901719227732549795341139478171570958452357859451666786263574507705094987005196058712328914156218245076823089204937642001481840303237866785571105736427536620632010356455498298589142275379621336021572483574522373288073492814647435619701957887591793424726021338807767050008062721263039829762201185328961537153057437538064704121414761750273646495184600913467193527646535585034923519513170769125130290597300423954242014024643864243209404665720438067160482494465264353593012083156743576743119515905270890082978196962887087146009716213671877514257544253406648236047514184285052250579773606834479706811817087935039457494259113837494285470042268975075244822474328303601572653983233492615602678140163361169282494563943031639161363329312449372371042671645563103837920609822833410122721944994712798158597340697504344764046037725524490619848349329312141275346490957568088894248356078208627668014281890854195309360257220116117929542263188530747002878935339807834501463835214531995140091973538181122083006744811668942643553915566277851413098143797241405380644675562803983498650741000742480613767144611043022458711871141295229468972573948978412101513051220323455969350469488198540685137505398237757788104807628950371899654945057576905971730122429692556666215761619636744874729452252943361493877453532603894592312236561745790538013364378288042249175470946953815178988733151072842119011654013229629011988930187810594434672765842159406631285534046864703051494293455966911015823488797411857291083296581654404243242073754305568502041917473994271178417660626662646224026937456415076426908756362945080299188910987508610813129321668013982834268102387819232877929245709999742103190867720921411765253035646768635540719790913141375823209498322106122549412553196921745958811843719441129315054340921152245200940527406175759651488606339502965618809679075064217822374972528585242202675161713349173204739030050637905112194371468938742057426667598292711633282785720050351534463085932685559904337383434693730058647641313682954505800885263507294599748795029120974717711205920668356377820348287453255985038226740123414201051507574506271066084632545834875101207530037333858264544844324576818802934178342042167152282234457992281552888344707950164691338370634041095771609548559493295804663181341381625363582557029106300269181760280188288223717405209007725454631950499471969740536806693386404384252357084766524620416715248861970469692147216581969739670300188596924021986116272335106766023080217684855754364454748991287291359462260308766365310047550606377622042860014029550810324087265358088345513243911228411788975309700845563327582362957884889454526427760250911615075649597005823199903933091056281841022748618801896340315394831590691489808186497116199742197583981181583345200191378813838786274939528512583395995859662964890669432643263373550852981442264840554591295506448626975829822897954641425330239293937204770271309291533704643376429963619437107870039626463817794671937734274948428471406001178821236248780207940501709210818816659261016289307999149747202318637466006489599460147213639612645758484141896023164687648575072928806557786563824743092605107836303226873282633728988569163670817780039591495892654633518852984290527343556133786187781704553283260603215295881055494544884411384615854772633879885260925506975649540317300043408315479495849756950366771903255386990113886987363761226939617420522606216250600024580111361900669772137543838632633285275395097138096348363453141075703498909402265016369492747706998766731376383864436023217349460804531899463398893325938486858230793611896162636878523339141748879234330346431043927733502964824370452101219150882694862079937741425804105516380657232122296861799585281319228483421252561041598916243263149106659498417117133463514619060748231126202961466647748826994765043606509943903070458216744291294577645247716123999098507384846393736633675125092265597247937331667302839431188455608585429489353206642297192785478642523762557901349119678622625926458288638159021932294101121063965657900181155675488652492722965214199861114718203269233743015169247055958095378563374238272723606052326677776508863191535059932438756268293442482302185034656657448657786595813315188548982996307416026676152245728605774875756547087917135049071217436734190498098662737997637819406683054683111140167807088972335690865981323287676221602576596747287915589850978598694511743802604290117226046431040245654396289587581398403009971869618763374816180561801654198664393794459446859112631648497541174148159069569263322202857548056406174537002822855477555414418810391086867880644429710551452183450051572997622264061866026282313915078584504430912339647284356156307813427344280873854429141291822850124495229805841676872467701401996984046323801525886284278606161300819328104769298957901876442845948242314479682354739315603105636011988514770703891442032998247672046136894648398358495089488222197369816671632321388519264935635584914021961608108990408409647728583728643129221716526870823904391760978772929255986800656371760587654682421171819654960788207932928732124032095105131864919218650877582585464109965692115086192097449401277486604510778499281771484407316551262515063567085401240483619028471914357443904269587952935272597679823463942997422359945194372704388421745479518672598109774038783658549765994760197118090341269587159810898942115601294524724773606248010029691139069082966146291091460723886842112344364494448504388881237461206084716973817355402971920216386774397483974976136412547711224013207770993306937215469700455778284084948876914396440758751328562750805280901736855810324454459642632695304022617889289042511700232009035219694304031292591360538882656255563869474240329603633575646181690130139605527210209249062373449773626402929420624525926798016050310536683245083358216329415080325306941202187875770208474100411715716029958531265839088397339186680813100340095422664012327574329856638497128777329541323143370755250803368677142798177332348104190250255183660902501547434956845717198788459230569972866761661970840980121221737097773828237166366077002944897533998764066402135320813065161847582686602395067622862987946152640545706847970136968975603785953411560884038818836200766604263212855856613195094743517278486385629423315713227349946961653720828970756918697067688314076008237439739559864987663895356692831779591343667684555024317298395182533761997658255344872406462496708789650147931279919406021024319932838820019615585887497071408439412428730926957849186397563244539099995669817797457431191404904997931641376227652794329170783575770388148059618133016593451984544231340233761934894397276122656216743511400804191897618754963209747943049030312847293244016554398427169697416081329351974629711847498507908417559700114202710115646465411717192158994100633680564488994375578460629437680875049701748118236690620219947599557274476944287805719970681402922466042539190022507895339375302935894167165614418846943472285332045153903388267712908383571699424642295625144178459264890953799533629470014410603494345961338096792974399743666665495650486630712470400934992237545025199064529836418069109435779462663550071017778257507409752751292358996225323310637388798985681790117365488033158955921543161300938969071177028513057937071156907139511025169689089476211185204745770617327476767732787371252092112734272839128627108701102287620080620850707809003508949027815088770553776897955447005765307075472714828567599778557388913147733438973943809725593639648418862328239628612834477121298769730258295211341602927051447259406831695395651736387473721463484299302418334948044959700778483176720192241051892429767494864020881818868427862007319242018274011505746457396097214018501652931385678590632083808911713598326466870506349074162785027451625968046125390726555900375472441586315937464045338996468755110807313437483137896442764036997773697428272204924993732034524537733891241708993174290707947473875535981275377178684082755054492016390297463301095585070696543467056226729765119709240559136986002429129776998524684122753163326111440695646988885014910593134278718866643123844540761490395597712365798462862529764175186902751475566859639650405929637622434181101000830568216276985378759275846891926435242288767727514422766027673598947671631404491426202625032222104939583702790322511988795579094205657065127412949603827054267037976016065333157095001712070748625862950983319056547185519804740265450711080978266037475682479529642780748072594018793293892513899866995952548505974472483508636788494035655244050395945263339594165199567260331864680543512693647262702112465930758494699377453339618971336372012780622530541006952556639729349534395427935722459342674750158759489179594950548980292598831637666405126876670812330719836453170481700815744392438477107055273202132645825581712460981386836829206732138968682722966957377658804273793304469182918671501129185997169721807515326979427144616675270256339793937974989641917508632036093225455971277860604874399532442934636656082628805960001531571247874860182574997288032220671454269486236470353972974284056990631894203374586309895126125381094740709275418343259639878343376436297615338215621069953094141997467575106143124501030614001930804385321668393109047610502484478614351972184244538956258683252444015004389583948573340361580983495595559746573298048885307787426361134612297366281457101595762903517894114642267195189340453784243802934702934329063125091902243564171554096329289702224441546053969029290398869875448247862236459669151056889054449329635935184394236053803492880373695727937560921062980146803148513547935817295188864528192783315695889033716777691047819898819312554460641087870086092731224586959172897935885330597557132369309716948494632458315582801541780374087479964763540953377191159046779374314561110299328823378643759262402199560944394014457694362883985752585094507318933093719596621807991754612199907042495858661245150093675661735731346893319677283114633472710755841088933103297101304022369866321852650377201248725044189788381158863619283434057035873132692729699806954463391698293475978129502577425892265605088617189309300079705912743756619635224545930146913754907285266762014698373609444460739822888743039658594199627233004736751317157002269065383138331645559848848129190382325263300689598585885522410545195264096557161969566969751196151679010453341910605649551789920621224034010985428277842159209670300544632928764520586115010692746044647791931123136988360231992195629359205144295752101321196334210935694762888225915306975341791241429302969285402614660899346866468768892317239179718811265818474385715818388151145380993525092765978922849204382533391359848622114258878250649754296246001745630846470473523782810453622128243925609373784412737699225587392355953194105276837164534704582348029549728257525470483983856699690656721799114841660840557910691360631875574785338280805261155288072472961323354857653776440672397890229469528349625626907842633536095997757477968923856876240034041806265928359250069786554294806828606931302342170044754493727871110187497465657143760694933718415649835059599864164636691011379315840600471580121574337118553931201807066106492308878143593167917507689183312541908356280615029200103328899962529081914204357170247427671590728662671509732801955448896033974682580010398634868618070049690006447339685073115395388078192902666849443314855360260265737028157626503721139185594286936534521221092127193181728252187059139070054833171111593179932295393057540563216921910522939124661221121429487810280101769212124300718241474369459998906661888927567796714281274441621962650127516413904200201041068039873346295285926797659441764525673010244225115207403163895596613431464455450039331710518164580247563949527120250233186436392477674295465422889992966842866785933474696782931178917847941712759785732107602767258416119245463133030938279692918208606801187839765782734980711238822970990524894467244863319517385866211601228627403955261360578263527493688383542053092580113629441719858239385296518231952456040812724640095908431342522727493227338354402168357561495604957290757003013518671405042207008936496014243320949443157367373540918090738075480071158656507890593802322491889937984250308529849677582724948169691381430673683952633382784000919991466096625999068109701682552499533001050192347499361874204092588004194686170971783272158069346063313359141442486160581477195477930236034084996972747019782530623385935144784354500328131040370026167068044934325289230169059743655271315758646501618633519061541243514316822039379015905039190308578399781428222676198618174496924128284580116127087843591762548650296258658828493652339578002749927616142822059223093231711281723638879787106155702815043618681831400829014023638343698580386430724091433144631655753142128082658604537672750962410484460446015550440931477966211411944188512530741799427304571810845163510604808132509672836236974070383750122268345752360926989866640087486786988920317360064582077512402216119994682579432785657174552755894853337491936857666682835894821198533060588555625987602527322144912447559226837094056000910242206881603467219320760697303486421286363328643122872967116284205427608467774705447413166383473301065544289337757675486545768430313661643522054261369345019174881678332574655435406639177051997958836359951910794332261393180167693663171242642032356452333703295798798040254839541714336073446855587391132213369960572859368468450964995452672259475008245233535713796288909068759518368837301984932437062665635879259000844734983111507150111044047819800797918712702583061944385118725426444217031829834153808824977367656740043537453769384820693223584227186690330547765631344636505116334181466637513324657008839462154317890362134560761604294458484744863820864565624248033391324708665016631479550912684634254425647953671122056637823909107736532248556909343279039978710581720227116941787522068098947897589820398980579183498914238255764131780889484441711128821194994225099637246506242855047253718920415815547010912407445192767827591059680601414615797661181688454025949487125984782580754744188987589748579921153543107620476955942318247105231454443164606495935613349022706619274482539251070156480076743987060181476597092663367054892912429324067694865021507318821694664335938960952314200121470595019822046016138901280805550036982879674782645595253973489323659922781917794284654557988069565944902911249738608320966124431617374160201807791309780681892262777154866086454160380227086003417291354063159339049314196974699412560724669573612941787080811829687003594319702519881457945627054120417437375765193373399703023648711967119098096643059840465534407481715423839955107890165659985686317118700031273973611609519858421322114455956173495938075966491385006347457745961814987368989558326771145749342054468701046373307023880480256938808677605658192256768657410834064948687953984150442265160843433169364558456156090580836379572674463087778915185501773978405643125877945652365521198362274946643109450516622146660280848992367882600079864480819675614789604144337623123042983276567401900928528950682774489357597838403901428076068727802961480887829878620610643027345030970405318686471251063081236782600610610145992405080133646657396697530794430431419473830231394438766417754735616469518573811083124058151592167818960737085598526655908716926438489472339266378384965189457788593908988667461674700835995545465531501551455075057760909975298869361054748443623790266640595085134396286437716326402670573510132234598968108947987285379603938544966632033842824409158309429989713159377724723496507000187203352554633342447907617111272393000274762349938848200724261902226387566335365923701970907252445374429489282247264025193284773432446332947728433589164842296064464087339382731107027776407752838063050513223159595392214807732946517389428310809282799911326951049342786939726952280534977982161260464407609978592495006727202793313231037810399786480828278265046332337808845215493516498145327006505989265893229180652288775687233452204995943565882472196363724387762901054135199401797746624299098877416480058754550264970931394094366898404997659567059985542572033466007101391689742102700505868942899451255799832536554411597823376174296236568760761641307271121949844016772189454356701643104150878561132378034004920040899404434283673229814803990251517109148902253059944234587804064942671102487594807761271617199530786978140503530756242136836748428824428300646506739306859928503529055546260231724740940915846888266395649175490205852525130008775033943648058713017780650289101298095148620522332240108630890640667591932416269596315704578722262618946169006117563492344498349090318648626819993800540060931718767252426040220301930598525335102477755074982290828694484281267966502216102080808174187005345272131619944074430108640791321041374669518989969838983609474409607373470241358005052933079521312105094294394541984683397263161764680699944483110218461208742766254729290339393642457012242325016018795753610925449353257857864658540128010173938217877724626536360702476593154868705043522755264409293838749240608147349813295867116437094597159184394291608334859226737538270727285371704879582027722133757607110946023226524331099840165907250178621105675604191338203994154190753987568340357594525156854521605333239889443379580751941508506942669924888407290246005313571656407491368408081968553568117782529521242721709339060964880963324877462807261335537028377727260487037303453816488453705231278520967561144580417451583862615829765798803000315458165782954736137153213297552394592180664270885982067115520842675271323723648161014386554881915306304065755835927632734171434377369469074894297843189258007799690978160944190486757811777722699202394977128199288245615363105591517522133779167748695013498879393403005548764728207182602747189981515674974170392147774364605730580740425513515552951498795586675129325212291879386548412880697282155527923097759936075854383258950207565298675292373753019520673352490339286085482085522775080675825387445576225596397354088422162077852444806926799213852587021611069964633113265589923604650025792015573096020227614992797505787286987869691038461155500472370823712561391551716097794265299661694771613424011714191620805001159957656341662488118287531122198808313148258710187966950721153382805197736001039968855204625441378866382885489586852940741516397848739632868743951822812073032512806571214327476803873402994402947829948615772516630696859841937497264201372134233097284817689355975303099677867055200783628988971552251383661032220313847789660581222834256034036679271932966266263699365557671298826322622686047550298652160487889824646178949050529004683489783708683896362281681600714769805662292646292622280447020950791402380587262369881689908032151986223089414227830386166134157125731452170472513841772171118961435535083662805936208037318583469546503469759831030159265146771723218491093563542715469172439768840196950765795011925346837769754889829302792811663894050368158949783712406211950203181981549266539829619558555829316810501387759422670822039118639551744059338927886110005753349003564542312977328709555722911897834731492040721203757234045975510350830484188876716642952403237629196481836153559332815695806121334804633814958401283915781054527137369141653051912430312796005058266209920034692919221686593351425736851915819534977564520880477207954849213265726496059924356244987967645030877107451592056190158361035195121453307716119769494944968413640870999981379851449067714381461108590157866283733172303684783693395984033417975060419671569709210001195279358250071594207298448088437208542768477529818154730159556372328336863891995942508693735434637344949682181186002588468231691143923532307731003091394947485951179654352764326187400957613601669728386881573070851038648185249258056145792464202051706496806559828249957824936550886602247578580906015990518967221269961308632322803449536264331341578729428546197605559988221968000865890414706592777075919059874273979439625135478849285278680814589837716948283785933749569853522128705670304685274004731809423409023636928532690549046271015968582953484643747537433385762090220315899092882150290444378445003156757241990242117966197150862571245192556744771760251311771202097916861726921353999465679080995152490708031546911918507872055626223515034729835802865473193105125373407658424963214024981403562524502728677161193355596694031509560850471861973578547226911556598839219168251824726932936098082564625038173058007649249316715031909204207015351426356331691240144724409650062515054149194708752455674547826893455316430418042132133851093853515303027223572441576749950222466393612593827767428657158098891734449492334547067754015803005230241893424469170658483555561683204343262645649240994489694340768494235628251497722913402541802056655883034323257774426992024846543048014042095625122720447521593976158520963201925489723190044673394857236266040836221218889665182754835020289611437140630208717603722492840949348612105671553932824193413070537559857418143907154273612906851814358643415777941781566346926354141704848213531087534330408329560314854984119205667630760911695913941826446204259065675989384227878380374508458360084021223811217736591523832867829447886045753665338708954980187020045794078312008521375172624995483449633475025078394957222614779761737296731174894548190428362262676691122020099867310449613105884783299444691122642058066360545956776988284272420511558325688227773563380549605827721791453529697442482233566091407539523780678576477923088081395890416693350960336299040532001330830055648081188162671502844120584733517639276969911071458896770901372734122076404654838534818227284728825474813848840990762247855675070455859395252174453076833188643484254458730161655854027766556210107579604983010913270510420241333021126360268519810665160594383180913233908746100663471035992186848490811456485575651621755905607578842058974118942803339142701348019010878089250343859729782097493811350979415647150075651073853134343036192230964791263989192672398744301989747009665817475911209730466899818769201266979600656476279139990007176426204676806789334816031795236650349998789816211195091435756347931823814520794304018580893234465643778370187388800266372988426862248526142241276877783248603829091187819864120520400569660029856838195110560955195228365106538721538358307855116655223256234810742375449160823398762233990253870112343766476916068870450294440680299532634824466243895943262438544424415975677288184763920541437637870526008226007512398783069092997509287625871400662913293116595646334830751740305929373866865943151205703413325871954400315077776191715707187089874439490998194001531352043195790237428811373955987944408650188906650514046609850057156815260386864627079689524333037472277688919568320831090908808795177433721240592394645234455859533679683329743483154477320372030769435285279670070087557415893589525402868597451861186608651692790429658107402887866651757743462701811314500832103914217639965799937568491096187496597200851679031010825543906628397251549465971481544828890221696747096827761561374570273084781566290621990784490166475706655000365424693414971178352966648859609327555928771916656400555762114387866987262286395533582295233944784956868758397934018122664199837247893553128871773729650739040123866601176048742741886259516542555752213635153640563157569658133707078742832872259721662902917605725922218832570743080616222795270675162568288254452680753236052802077223364065942913033655069112526376691407006299596055483559147482817404354923745092787096105652900010560812920333972441007229363028104972518441209973646508104789889143251013621897908247961418930368099520596698619846221300909226977829112564253887582267514071098252421163589471180294829232717107515275581844370993429553593640078033769595343063231038446592739926214603961152283389408660040022031372317030361450082555061214888127220346468116476456513331702006544549811853460231944386927264529122768172954311708552811770165162794605926162145032217854644691704886519358975885092531773613927152114251580592698184215706389040380134239322163750969236397193247673726365649749727651751950636139517009839490238557609912089285573375623612659537002985558245537171678511037142239832297020624609258535185588037543910745997349582092661045873550435766213790915114377778692202765380163146693490526531510052921342822843184422452747843261970091590778992259521868046156679457895481625780851318003893144070951352783201537134682559441413956694196082054308295742199278901813579537684045038679461030379078309294615556334556169529202844885560339348842475379341700409088438325688359190148407948821209938138495635979465495970161050407267818036138604797418891359338954007780322670033080195967486283054096338175139248293501546650648353476275737809614101951526146122634201030609843688014309654779645512118088184693709832554702873646968143174299020809050784138008059867314437210089806463529110899713063906313039706916915502326446688151292832837708367651687287130914458142201741543194562952578655910838648745779557082307776323614027686178976002997992560605954989320436948592092936782956255375412487505566113784970252927992146891599776704683777167595938065123159627692640862086273377587303434832816835976819002896985859094189101857030285619174941185990238650447422433301405758691042888852873687643990455195258672699998787956933835210800805645789325493500147413579739306508847842284089784021189363016855366722214465187443727294915930201784874611838297653605319437657630129637142418858038132690269984179950278627184444361757538513513591109029903890433946350719736622110828039523940228149885761778312838229042066776451103129239365745405674510022877540681977465406658310616413317439855478092032517795803453621364311661964357858658889664702721475379304436864063757240202755442475200637845065899511139115673987034078478982369549447479870243390878386090884987429814945912077443703154280657617151029498016317832994504068553140994877170708774521798705276180819152852920679904882678776691225801203812705351367625997805988834014112871078010065329066376097364376854591743734261370994456052146998693834504607658162834192279868692119770247501321016225221962007080982555652912979198248633217677106765792119164293576337007925123962281932088824781219447673552038345527169204617549883468603750690799393181695711964899852634309237032758204321413008375645088141924580299744741002440476476223014095633628066017945189472566082907042764181937538377353875214726568446048745925570648267980419800322718810762977933714604615605245081908628654700108822458925001046942388580940031375167126788798402873424958604717214748849211049728738929596365148166033413539714620734625643053158530551019135349304590784869653920375696318677225108106270076430925508331155608589129759100906207588042363129866170353668704404488074702093529949575888596098845825563531904320194606615985332656025276414716104629092171137160933990981613633382412772199101084458862410498701763313532621054846284889759773948351499237143933455849598645691399209966682087369915723958479266669358469878189908776450551704213281302578231972183044516207863694986643290266637826153551536136257529292108683590700456934773800950752140221411837960219462045680603202509993195859661696787109204095314318643551917481830809865063124198347648353544700719952957648680178527783430677485496598359628205460101083308678375253691409946428864527165658475618516087809555290371253816100363097787721515290017853499960132720937007504321628058862883821915431320713148628483147463966246664529176059272318532855385094575421227082730240984824437401567953241532927465158200417270814069168452622687173228057529819712715860267975597060955304947932822942371581609145906863807671600830313114089096649423483595338049041317436130574037983271486131909436853934882643164478509312994677034451502649875644056188963526177237265282981892741949676494264387172492427046734370799739629580376850354561808136041285660923990199045284942014897930591039147587759420342787266477852160699092428074599185316958048203591900357047415210570371446169543614277634198432929196912723496467985874177840590610029421990314267353892076233206635792978624541812342011457303165408415547490998536897671840501844049608706800360313467485984831360433587978177159112731649706754108480265107955082619223260504611822936479790464044410347860926082634872762960389411361375721714524693765600024950352170264380246723401026695445764678844263220158000910692687657970817953413029617277761949200028255207292820178123250062111098880625321539039370657999925680516025409076173951401801552106763012520330831401064359781582277804460373674920011018531397296509015988490809329067290595653984400208340855377577551897520371991855808007818882024589110825213406204230501381731844383922792702091007540777180532908469367692809188552739217748370713168113376341712736975764338106982516535615592058524772891039904199878939536785269397416210576953150627135716500453599501724131561701313149620991490218735179612322773339154843143323080888985917701184157425694253284520861797892615000903962337702473828006374537080566603169103714254772207932606160354384447721769382460110587099303768645383118318682353427410366945608585144129927497768728616065844006561095905968243883720921924212704067388653969853809998364156650120782524042595803202010944502905451186803354877521647341002273881557925269963315508866755161250378102594958927020832169050401724062735087787336803889919214501942817345256274472278163136141383210441067644694188746178546410237390964419245793622943977318365927530225876511264786499131297536317633614045475877606417196995920803725292614829908522049475097518374317389185415637299602350892072670852665007194232802887006115338912744372851427613155354228839906290520716179232162116381791107667529900062728799264785416401877033988882914828645746474807486449265587827943956920399614568944821332283425839763584172933286032445000763984078557988393744792808534705284471907167060060174925804909812856359571463665190776937671152438823468579080135917181760948823474325594712947588192266315163141152634434137708886858441768700764303313497586709517710136099804260504984494842269540019038448265131617585213687287093809259080901015031470501386912851040576727338119342660337547371635298162241188765166802504345461399930491714222750002002337703849460268390076458411703931464657501674326766438665110517069001587039856308266110115542339041884340521185545486472140074482833785315356400094007996777715508841701892805312818535471933102647630075278928744214145507840339494117192179346342099157723956878671340732326129455780352279451422308850601633660989452976475513219009810428964756297576339687440940029255378478345709200074658862899675372245433100967319229019197885783426064191564438020816143027418175916005489066514124967159298817024765874377818905292065920961044235439052116094309449692713274237143866470120394650113846833977781846131666606755343679689637899476444367535464950106654922777923229589940781712089282087940342959446811660178650337563619174140058442496548164434266915330943033838180946047674160229839459547517985234239298239572020421358906072127022430716988696276433877419147076151174290313354109558164581669634490502290789272974675797868962186030943110555374469343122597268886762593459692232366583654653792525769763495977636678745261448492226274008039192062178616471603674056153853855766149599855358394543200364285813293165947260176531853112459897971734483173787489353658979824144586470059162551851983025196320596157177457678219245087204188890915507028194369593156747381091629514059045004698569781227004767413560526019709834424308873612052325533985954263635620356484140081012228044152560086384701178359662659049896242813423825844867951427740310862189725746800539935493785127332457661734535472795938452218032155710316002589898642448879088565021751811065797424897496383302330247774575677466806871324319206820514845094582472899749905452140865526437129041441693993301600696514840735532225014202366956154512106848555364766252941516012138305834557008916083762841412136684909342645303580715602754484409271354027995655708921993409146259999953456688657071387773798877853996936984059736021146042171820227226613110777682230348936851876245064183488415601236251204641533128681359235841812386371869468194557203797122626143881560447700195595340141333147344916151725901446846577442217765046747855762524561059314361789737848500279379293434872940216619173611848424301252070720003869606655336504441219168261110564780430902853902175060113808873524948787727616442224607721413470550845096125032656003735743056158934352077802494601891721404178485697276421575637183718814729597769677660187884814133424201935711774090593282173005319991589356201108138690442609016052692811689596193132470186306009957397418134470235886797619971271007511710064313363449679853270001840581088913060834937406738399671514200092927612045085577408391083689253292797279013459706041488623964562295671913868032314711193216862468625606537623318903622758041915542952405411948488246972963434093540899434323167079460118292824776871658396596041570049407165839051865123017546778889973307970251883105060415223324874921663200665136083643313937990450030281510771925997183425097264663991269793257855836368257404247754535505991769016163661448192750800025426737140119580785195916728125801091580909343492578835110158497651598445222863625165643710962041737823637873213385965059949225997472107325699272925673408638391577962346898251586713910072406989872762263988770922274569285148328900027701876276430109686280296108075092041229644661036488245204905014741554787375364914175288462570857346267023690779743373345957845048867873556193017138201468792497131796470495676210239463394408581631932460343076617406895526433906796939577690309414443611361297421667471233633637795249859582594719135295134809672403944719876237863287520970110751494876062686241695701215011848286432227888715959254852023439957371501793558459376502759616491015101712106073559296636123317375238635627741012695040443642361737612555077167243300474003444565536445785756806800243105868378460713616185952093435856082173524387203935973132298784640322124247250435212987219687251753563569663640697689749877042814122322861127209697151489119764363588052846730511953635594512090951828329238416441667034653946617587084558770718263574020579473449791799102066316074146561698966851314143437265643245878606222261491356098828287831592561085451140526933392563282263115289049151153576976448393837433445579196332763643098632122449427303118716292714778338960086754650876031138984946024151699591502585539320888084512327190390945917096684453133731286557056834736765615575261481201636788805844989156758440807105442313385190829066954109664154185226488961897787875678239121426936109670897337901344261491059081830708384511603025853006607309942524585060149969040986074747212045153980564792132026189466138053476782194888994310603404835943017859129746163831470022860539354933752735517189082598201152968020780630854226834938817647141223028747114629413333087144886131256245730915878404851997842448151005707941580248673810098418048649259036885322857999229507495171849884448001751304119902909791339767324521277032017113214518446829491729568757516034885266899956574087414810671177229469474629524274159061839664158204308267789271806050411815207184384043176816524045913874232528803096458345948441105028064541118370452983736869291216370929135722120363720661561160979586880228441341771448623856642457219270102500749540419373401362276948238554558860362079345245589273214462667833730074016495681292656381267192808042876906335366293052469183993029390967687329115151903495353247849474398570463406991825003818542066614452046076558808003160980387047021546987383560949999739241778983830212967269199941984230918255579673361110659446116777987403931264643058546277808735376237815764216729768934604705061553117530951511229415256767918208715178984319971902503489362122088542590825510251481192587879440092136614339641660938134542294520298997442079825564501098087514858090668859810236217355017959518235715959639107492927535556188479922237605305517658953698631176110248695806025024035092582641841394074008033170277957097435156989214833072536412692766576868528579409030481598145009992104747640401452897353208019173484844412876914930763493593077691245907503662795782968503568927531334337387165247968248692199408179125725946750492897808375209593436006247467172201166448474905276394779893048069140188214535079960050501407743727679098189076677981818531345969086065208754805172150600119750088150438811435206374472463959806853464385243619562446432672688400900878445238827205560766960173899191274159190161091608329613046754231504082545165664191631099437794769860490603621246773408876654200422441419109892697933093073921548918709778266357635264019944850469300261165794961229358633104779600200092470335409400474868616741572487553776284218556854952581645442731714138684102247340117191303757845564950314510621687797540505455749712796446990440358367736428938357645734699757980988926479134554545972898923316390962859727303305556149838704739046408198957171487371392719424111493490585212982781621036684107973217135591876148070367349452480488529501900953299071553119300070252586598588174909548333066532623441966202136545404524145032609223949899676061321389023490698094803668362161561710575579837525351374362509659562398116593322022166335815839045660392494647194506425910500202148408831325660510295751871869569836685311239318051897491240166859876949156063014135954221876865678606620502603379930383569729695280814009356118235231747962123572990339139029471002863908034203327531047644852687518284419843062370273686930397779328537374435128413459758322677256548502190595048985718744428405427888666235503158371531848612940356910085178632853066166282048988266501824880486861289116969030106443587403585487873487859551501076424025410206486057306271185042883901174466499183732882239682486122269158262919960295823554274078834001609011909560607728363059490226050933343467256312135091648598264203950265245099167922523977075342916140633158244837450741020024920584223924233823088123902514650074918469335459779379156877866013687457301217510545530750853280767114370129055034848731095572519746376538179739798805937739155574842785991655500013629458944149039679632108823831518077520567213977674626416754525027155960441331715535642352244927869938992807287895369316254164163669385019544573783098773829463023153191982934568164440781741293664764164066421181729560908863860443598077854515566303608984041241214356384105134007949229381488097699951267786449881450382445974938738904623127969543580529050725622355611860151170369508876308755194068520213436349047064462781663459805525113897416482401691938476813325068630918227562889153866011230377854489530308174427534962631999734850673116319075579847179750219090822498967032083030397890919117804652387497047574847886577413027322464528529998636887456206977891581881436880576557538431395142556924728538187513558214146093325164580675567856184590787852987571186414232030406774796588016686397927002708433442914716211915129805128434772114250187567887981857498197583388949831158482505199770309564290915718208790521278154971360470546296921255280664699274277667589873469941415919066780531508786403237841555664908907967463106494989404935349108602995391974969512684253176311167331956165122019251446663186306535788314390691053844027189409865433642998646736444256239041235369071519918175732718409118040288265880538788491291237572335715791358631983399495612556436381822246132729429839100949420108190185841087551402910800668680502668353962894348989443952827520998750467502532639771153779792444278863175559580455979878421967483849555411590389541182269580304177264357672180658183677372591362729849929961967387629007090871585892657689581783792080715358481214903121580061163974309069550355112623339378890491852677698421092485634661022383652330547012470256638804935827019109972453364751624207390494783281162439623295721779467838840216702052105632616976057574350656821190039063484369662536980570471574353738976876688632984206933221033272719829210141160141023724774696127821393012295454837948949440911415508493173670898240544295033227903339504975247167503525086930251031618986588859532002869310117370031718034584770560505274643275012890177177119379546114076434268983858508245455873407839215788841366437988071073394084938892281554724789798013743859317191699113442430033365602930701437400027005360403366801388663846407756019061127224580718891090560818298234740895387583985687095577302719683747646873628211493466180962684808055391129516647248129812537927150144116550184478907614379861913395042681102738016283606576088926695228375686968804726837663891095766020731789066364969315399393304357221262267925086056037628833031291845176300060712386104616882123616179848365862676221185320021393496411638003898645710214755399671474209080773904707468677548612205662439730467017272677617056473239241044125895518878861591090072025171635849504856814994685087960822323341531148699641551524200039128486906582886213753119056514356050228279893389824966690002946219096068229713823967285054631919761430162058995451327697982717086741628918490985617436476093742889783342779730589743364347351651016850137601012344896302202369199907896812712539672202396260133642642799626244616407922508461317539639283472952339901874996501610258407437355356908943329546832733146642930642798907637514163795185482884580130839010748093646060750569384359172937293355047968744070071467971727109775774926127921259600276983596236004812698039200500933011935447830839796223586777695852169334549065414024565197253815964230130733915725374645856663337245809730713333904635527620433444542491436984587643743816648515259792549954967902345424381258893407389974126838451642863937336263243703594661754066328988888061403368765809935829839038266518080444711861340997475840657266902180230593402582727875843956769665560740797256839379746476188956098231282654972591124056847141294078262532176832424017144518272010352748400092963703936304500552034325253989649657146902039829291849714416086998129645516472386541220408909896655955315783966981982619584096086166170523102757802178905502693795471349922994872037413099304149231806904732012280891101382356251769938516829557733867028219347013472980879609398583044676120544473078740617015828211483306145944682076001837475580100472667693963365266737130622733909647275010497684017458506563526717007084606606655486626947851447983720482866388717392341825817703056189156729928719459062098035978219315297693374016857572010790122345265040246178370372102212964053517457917286887868426707924897704725734530261090054540183974326661618131110703112816951600984593355401263589758580570553560027968048649295156172625093082652611278762400794579283978003482149785700359149318556561914676541403463036368855149315839554027044441392662750161710380301710692104015426747907905279189591312411699808165087097551079767995029957747282781465341737440136474062692523417638532489770891825315964147828777915965821999031260915107221869425807251538458537611096186422919677520548892044718077782194582331033592428739750839734778786417424111158614542343838287150881575813319400086523193858111184661298208976868922509617605539475585012874246878751160426364459374769897703898150947177559466918635566320797247880500844345943820153912998453761078599017280609602995528295513570937264281569463006993862907940865634326970291096279192659326663255113778223999971647312607683183220081959039874972627828134438497171874228055747420140139658484930292646049919649643059336309357523182634090951558330202387019354105086195108091293470297105117854955023706753225424847428292117867369164375599603611909154142513315089865366999318346638213096431652419777107979244662746297542314050639595027558566699029518561500862555246746767841848507894461759853859891032473636499063907405468455235519188230792478531187457296680007178276145433057659453315068066774159109575000892764708259862008084039049037685896258105052398983303670538883386014538584714680054687953631310195861097302076747094319495757152640666763223865541657497934123999236746193507708849469183117752452407307137237281630532626998622299710014500899241933280934564104372332147210019103632451030892452019281326392604026136145842676271356834447673108124169778911232226544636469508166963574943989246349010481264128551734961802893898481987010977392213809947464157089923815611514078374643300847054004559613411929507725946395858487300324667032497876268086792652068962873428150423652482872209862021717335349344394322370987834912826123500208852773096204499347079396872057495623461980161030530002396781953190611154860989270906036443985898229694453659135361031758631395065211119008528188868865891991037299014051298024514987005027098089991346578478816582085317642852050716612034659201961854010683910091740011103278181383909515867872932395103763936079697196516857711685774070772650028866606756233833548178478561850062118802928216238834536402101537025719858407762326482950881502172131872769686208601101293237747111263635676841131030859619512535362879326851028770670781033435403958611473080036208394460742095288560159888191991281591092142678382439809142547969149161520965144967079679512696661793707757667376829986831697887304112549578754087956614090026278364433771921537636560781771767325016510609530749919090265952878215092624061836531499306049802208270732401990585202439913475686429125508258417352977385972089386294289947948972196743824866365241008651541235521155780574178784419807630251446281862096635263163732418808505231618222574155246601464677225423743866217034244785420940498282368852112127150775706098702868237938039637444284839094426696657820517155614345181219430632324970479390936394791997360028736725608910649881699056041427713232587146968484350345756323144831796732254881270584128359417760741906368400080089962767857937915346729723822465647301012916749860216996910252087568870691198115001017551953715330500858699920161126773974001248241433738231973351147574838472690300344941412205230378155951118538682442555128006062009465020842428969138901473582257526506632864373272825212274528716134949135205050485734032152721320009684950531602363830473938940860355082400546492023861247559858638610703043010659442671201043775513253920151599526197459762702241905309163850430864856747272391725099383262232224709346900206265473992040901927416533569731701426714727180840128121646254091773553668516222872217432717148647693547500646301004246348490905425203179949131227768871838512687401813067214869166194735292428090809099604150169574486305950744870471361374995542667494273513922740110662012942948200575936061717913926818987068500409583460911497551564457201057276427628866704927220799985673588388197822704521021415985818055434697899132767353125026182357165789086160523181164817453294619282348304245231012733357470424890016101002004547062656099610671271512656676086467470635221534951283778875083054424573193096822148204371643939140777753192968719345507713370700229519821911219869344090628100343905477185333703950656526207686295584743495337338622973946160213854259954623197361734178498101232201295953850669994401248682975537655826409523529261829078707687379913298783869354321867953841828491011183661620497702685292151468247624804225166708652562023364060517327900328652225066565940259764946048170367767125871380750380852441901864282871433122874207006226436109161093201694310672600509362951885623198355982772613839698943358833185960983209697439720867557707781367355054771395602140292043835663326045373493491763434744028111162224187110320667992712606658662470563023355476020282453662672809396779656949401950985618564684756445678320185104861126886569241391741847001124324671981691947891443304107006906296993258921570369492015682548577802264774276503247759901308878170166498007047484054082449939671309457618050235409023258512611547418779934241019472500096256070902003004263349899412129859461598358049480768164100407965193219563417400188422910526454777757882608994746292120086968020818732951874259762301412653533718782241788818606308369609518717830969701897822424370319742265093199403036810641534789087757555052813656578148617250535075831977064726863265947045350557338115731486346282959844665629726452501878173417245126164779961230212963134364930684483517315530130736396443673608301951219608665064152443363039033858160892495197735979516461666843499463915778761046397965549102047448019992147931971582938085642826658170704679406677609616567786893033505150845503612923307757886072724818923562600521530755460645939284094597394380375853788657430656780759501639357979899269216936748596064292838420221310346328816243091713302220310243318895709156114420163225413264302972979528996749363056219150558052643735337021036278857839710617889197795835371513193810998685208320428414226455015000810266430196636391514819127408184774422892368800432048068144531785932182255462272236067875211035206079743708563935038631578005836290180897620495636690923543894223792765260621008558053045755549414019544860134780650991690799045130540386686291253316512487908605057958103195813207678002581525268054841270451474802272176344270532200187133126788368343321931200922345059013609678243735268861939343917062063262295302292595959569036018036800880572483297536308018342239807792112374378664603507117166460093332816845798283022878680954739894744915003783565274290955283963453429276698334458140619474703508492126362906722416411376615445633123428832950963253947381317246996077308366101084948345103556689935194518382836084497302850821453704914007041172569778521232734825715857747508296524312223031338996551047916577264070937917357625558053202280877440894677647221439723778805824238369264899010807375975931256757191812221810753732655379173953318634049447149217686639047636781678532384669985055022730659148058089623200022707808869009334228239442442517759419749628907279399378386685253541645497266946980968982271602138030474244788548313218963709674266328473473833303939388178736519040277159814210146249702318763948503538345291004422206720191142109727200170144310621514688400308162453322563277953183747621004830240576786806193261558708977063452687678765828555810478305621211705740808741679807914157898166900401857025647523214201863133030470632211529235931006051514811599252150534511277166078157483008128395878957347085418462078043728662440799260304209947039914857838254810723366484905731951629588074377981789082971405250536339395156895432070972349695849873633217677798368132877580612563605173278760476473794420851869197898810181938813654559389929296258958280629060570471989486697805452280369322020792875777970955629660089839948100746104603721324106737067079887444291065058552110951005275104827352219251828204302398544308330496637282172318391431477379203178822974026253761904513225529904081302818048387010889526557834526894979496255249284158111177012771589738417454910701420044293581337099662778889926934805462782098693205381199679507409137494302365611471892335995352231486071235964583673488328012674568111998867789855445411124668192450851174497673880844170814595710555263201263522680226195482571910584715886118329900824514465534903468553732712723927045169857124462539408974582548142711705234997992153230534998598583649530543028975641905774235078252509472300078865134605128291683428079993852482992061497695317085544162221188093358099068523887826607540122901942868143844574692144856283304479972594549432629452211795490850355135046987099276819097269447040109704851836142765195937704403284375271565563658283829731854858314852809706292733411993100139413478520423860973050370223465875807999519828939898867203825425106529463634265860508387960604858935890452091801800086926416296429728999729678590941618428532287888731759653801530307675840000207574967553201986971419638837963661474528011740338864264979470500683739099612479707131370681807561697144075879410005642337131352420927600032327208320336982548637773767155925213446820452577852396951857717113942532827002435546806623838002029279830170849455268346862584016952995707864335480860392513438835108545855992444158930767775343119229528443410389673481833912146000859510144928192904438519281763236141823717724026286956343698432621332985209231369528078292591563880196214395524872512707152781932092650724369297902636969378037624474229981655176196113645356102119508683641780683725859373117153786619421767229574460160594908514759102552597107465087535586130411678129445529110159842589213649438075980255810363473198121300639416345012318051912990298812876522092178905965809050360641091540106109439988153782331916877216689802715993810019729659250244189741591729538284078081013915959258218049271346193159848701969375880029419230098174036181310276235991396937743129863035573475619973242959747176998752842400564292995672448861184613590789309268495929885461114992863808972002189542759028401996320334310931304743187903957142126554421084258333878964864804121061500881439242388799370035078016062613414728574602143665179921652890489484312543208205132549299919665103247810398088329824933506752923917332676965135993682346896338473870360137364800608860268298280045360915245386720384752985867608988371298546658653379484250762920967219118393559204268588836849767464893243912242809767906164130995869848869651994203527868381265324720882322807491069803798504289432313264931237175685774828803973085835536594337937605768806903930610250275164573187636663924484912657342715488579744034670840777067733134841500067229945341036782483766864169198919338039487851634656831614429896557043868314346160645099192208742212658795021315849731855800566577831146344123994109717868826016430451281507753679594349414407202369406279792156801710340888409975529914873675681484896103991702213546775840285220626438621939925402585837700361836628984097405379093701531296894946454245847381316992314361504897924273400243970804275663835647745217901564047194165733414658919048540097268379586623323398039717779803473938254528675031949905935568913985595278286272259442777050695087139991225382541590054401352251317572376990052695355487071149924627552919018197258069482748500639600333855627515992553636623340653915950065174101699097699648053298363193965880453004500319031027202569832343361786972044679102582057481534803578713792385193242948180409759195906154481270105857610606782918218224392811573495147548165077903495812702810078012121155954187737545237837786567979360043478214620253567753605897253643492383597693069743358227784406433654992374725967679011140245025085962638602259528311438044795318246361614596841710410005788874125522101492884478321678556806774477062449723474613843481740199969852181749417076475013868721841480290788236780843677776981895197776663875073833896016486513937292441330891123865445974620438495550066068257854600616354077605722886794261263824354877200763371890421591151546733870173493001397400226674738810175671819872855935641531673859589394764122550659303120933138707725382728535528247690204798586601531236818296801987098336854490286759313823739058838984504395053129682507837354761594608294064789518889254299702237830291191437786657701433629821989183444905468221333953972921393788842053792881128234711207215912864981979345641343154607650885212444784278261793609069393423893313858770648938643416747024224677958596531265054651132023861046116406009144797091882588256691951851960830689645376859208666147755854368893243766627594528956493106984735997280552765352299556414018263683223277999911593695727962785370305449378794848593508496809126302040117640868025425680669308400581137051063361718834321948593950010706448399117885099106096705237083069601301993421994381383530320243365647137020795031154790218278195037103495283724336560564907863191703875074786490045185863685557963879538799811303584469406340297055177602695608216699340415060985025086174429311194741999612860074351243716691706802663416222651296974731967101171419124750884076524393425377101394712945988619314449244867624924399298578349240753586730317065370006822205398312940243236496961830887181505024218716021680255118736467516517073455285000729766938094767015003268037343003877785774653448458423428376220076947969545263507029427861573946078157743265637940887952772959977254399074719992379074520264196425858748678572115110548065698828999261577081770853783144830797895600855418197137818609786244460361931224303261911696351152248303773268375694808930005677659182478925736003771964833881405642947106896145712887878383906632131996726514395115243873969497292196184739806250182962189797719575381092825805050343909966081067468320676910702224591805331114864291265607765579972273439983009110456317530475169844937894572537979937786969486698418224047731374061723151492349497387661770754099756700083506995546151365715596212783921426271346892556691033205248501488623599763419810363688449640085716951369522068758137396388493722936651528116811284187992934307237697374384385267937280221183856436793791315235175653527546617444495368551738113093326948162097132845538922129220411944459267846858568378566770604613718307459397728602413305656401853999291346268767017076186777087714438384335251432111028218830491975568050311760553782776752485674405992218140745156234134559572700852006973798866790544114581471631132739601511487038829799340792882385164166930135750857102277943727112903733119024581486656137998017411547340467599389004900764254661449663656356065955149964098925167578940279756598479446530593956227336042180613180511796973619600222104447364529467653211266676285041078854785941924725628597773339798966317980261563150484774203934241764811227512614881534332944815663112920558508672121641563870275545358743054091172199367314420411127309784289329230006310030903865032497404403197147235907316694372948417493723187788655695977680388515179944038710925701577954030157135635338277464817565510810350495908530272288777548336948101099863730594985003969971433127309265321736472606998270361462218643604073903931216724979261193711879233057507675362423286910901019151551289371890341194561425026166482780771172265532540808772473314209867608414423093130564890266966370882306811525552578002897417628368976732086128270614522246010536924611172101850784816785915059235416353483664188559166034904859980546238811023717617506028953430333246612726860817846281512199600649758793194035400723927376047796737548347871190120239514328520284862864114887989811859252770921233011813116728728019861979039790966064391160392785292537781294204704844872740075474066700911037190419745997514695737962526894352778658472212918082019752782528201022171131354023567197593717947989156977521622634323825872272973344547953157742440921185744093757875218004711180296500040048824279129320461715873485562021955188002517353403146867875087942459396095750813086624819444107164303986735519660510644721004238034616635775232320483150144249840437952054396730468818398678743016301676725371077458867450736851251883312829295096542170796524874317715180959543326817668624065665958891048512976881788994624585877915999789889629367893336279896793149219438287011725970934563636290081134283722496153989453449757949958613322865515760652655535453699790948098657349080989190410217144683090899425035648645617900180831488372633601639536029698466540829451074225309715171109713771335949807202966523297192220407924271139751210721772241883349856697172567391707178470806843780331954062379567468576311619763388872645846884377518565302467366457587746729911688982689611792998866070988912976322346074406697725683332036442206448403701078108166609242934044265934829437292485165729848247604338159830756313186399155375169843438902657226091345853428533535033451512149778457575440147931632528728295544384029089603019434479953430385875960189588183871341913441851326463204620356516062796611584924170958163686862340317194499612302385839667517772295065880924216927538228264771297775291593839025165356829908504482443104277392824654870559517671179436327512297316280348206073550240687979203400876291075931298132523122946009255668484399699158692941050951285684598954492854937188251260300709863983245993237209425873318741290395791875904929412889436574150986221200509975712293977995144634603385690611076337256456461891525435970802987875551846297450525296830395540478734523326585455173160041749944317392706704925280722416397818709820366612877912355781591063400822630770418180660682145606580756873426703101705264844789971090333550900700865101014562253200721542594096300797964533552088338921164338740657166144463369589239959836643785530977652992971106500877680888755584615347147341701905658518804241284308369217476636876851017151330934570591473172648044791663318373296490593129698810274636837737041054513985542923977036407959630190571721052418527869557484181741534980037295724357171958998598006270802624077170730269884445700680429427861166062582449629924443813944576654796284906945373272340211559147357264062096209512351981754771774818662385212852429559332315828922115480074891539693538424358748495358388782868945624900050435564645130223032584999439208151106023031980401918712739566614177041892553105810196151264727555957157709451096914077983525742498279076776280045930253877479092536074045864016388763403016662287270036675747272408505842357631312527966351502062737676174778917124239034018269278009527463372353711417501010317714122453943840162409675138676362146672548531878141885473325578288486403539020667300667491335823884727224248090517809055691482992156293224109598517959044252431073450846784212939868011679842575122073986433844810242407273416526447701346291880846194495282815256916353973451279854264179412298784674206058240414143069603050867369496976602530807323419647965077342380526278323297217107441069551043240909438086074647529259429980682664844002326143284132596123299715258713266417174776677554292150567553448744480478360556816371130726591279075027110925246226730077837522889016564190730711426150704389105233814716498516357335830129259191593015644389455021179426975699357988228395817971660782271891070487333351623662844254523042465863938254789513872657734984130656036814825233266334608773658785981664232546260449659123581756982302988862579711892754069665759166296945610887753140040905204407457444722969896920055209443142579482190421113770631224501136824079088014929966267319599339075885789949109141375302861881116656218205069017190520814084470865513947112456288573966092365922522379734846019708883767272850208660563740635059286248750957308830540204537575830125332325119611356534293715009511906509874305758571389452048472578533427575637053120119440274011820345424840420876131884921713609519546148326593532892152151488222240892449507497945701881438849463171297256866306751516750753754797609277937351764842880900132005424884394317784872281488242006667575489775319354095525878327940088284017294965819895583763108450110824764342549649403199677447000639898794336656812735009757808408805114892299171060697326577888569621200722038752663526407479232029755135322943508799961805704201802505529766202116769545864385908535824162585923386084560579353555780176748331150911837406464624900539696355077987957561392483511451224640680360048907757247871677656817849422611880733407153740890654097197132669560366410904962368704903468614419336107520725707666217993361610384388798674994598618999018477135782688415886610370899085371615788592344138893020112508541574361039748002695964740191246661645019345156182160344723024308568300030481643408980123485173192015233103530868476966284301351586663745384953714107523489703518477410145892776312153201257707781030119148155029678641314883118311021705303807507101921917770832512149144931795819020206445267053619320414526477977679791320327124566505557550847300984457909764710800181212324605556832687743515180389630565932804818688976395412524852452938484965976907142272642407324793288386564529474413161818267721762990442503913457421687693916549168505630458381360337104975492832964010132020710827891771601350427302292218890048555021750446955998307175160649481202985532805636722296672258943357064297116726422611964697181859354662248165996734919925146951562413993614108871283689354914842103493694495622939857368298030846616452828330136904640452188768600865303412581084123966099168601579422292309475776291938890106753494554592922171718887882893646162213922486669924891284997578328006170473615245693946666309360291205863498939736254714010151518724595915693848131923526381676211008724862093497895359549313204294996803288510762914649247895057670625927668932934337464689998601431447892028425226731266849257826067004970898370084405276974307105194871984898228468860322369486643735011410346253649220783709954758942551541720129496830242778535363422326475547760239154395126030006106948280003976043810969779381734462032690997377664029065628380070401751078436297869814471291760963113527110997398358701672339233253946412707043443728742197854936357036299059200905747734589970141605593113859748353727034561949563005140423251844575549301339925875838781741860865840392179490734260030219662754534026178064199443560058548866496462020063818220992034084654802885087993638186938227982005017042212797455359637567189687394027659475763667260685163799779441661872869084311884652483386520727161833224586106014491122047797641836229495795592508126374934924614858720541800985471535308969406890952003139072922982882289006230428707701563863791351534816037878022459008067547013519569471258866568568691535458987519534510920626700544905051259630851592762876523671370097160268439316509345003309226312792579171217863751492293536365485550194777647294324563987931365579240318575201583301586733355235320581038021626675819375372202227990023562851681916166615526657803330056027107774488667295801763574330860416054880411778588398300379233380454643729108220704386738525655753267797008919186156151473985370572855352574399644128530696633602399816031828752541595492582436043038454471613031463727762776030851952709561594368919573653286124820404161283393970590311338815131595132955002568283727376511340955488523140978134616130627738119453655215177189872443445759669610822553800766544154065535098582191221170873013017227199461975679445694637478393716214180861024312404768494779381398068135563654341037542074189270339640153617532388617175401623280373399412012875228435892456083634234797730938097707742565380675295079073694365853967302760487150782351267115138282724591433521524161825047332782946002574892420356653883664253843570957055832141336206688562697131507823349189988554970720158173202288479366252964899226052350995535446317310146299388681506383447404565240402382961732933787599964572762022602126686594951336482223754587414022983560229265509133444109975431758200865124857006580922140616086739649588423758544444304719340138673389487096499070999931693027255263660547902999278216022059307791365000741530434153101820991132445073403360384682812862447899798821423180499542099515390406623414936784221102209279319904837566389862479262887878956630931359178888787556989643917000241548556849050381538129270825557526536375679895324202423961600248069453071903056093035668446514220180649096381349456508386795883361334573467329921477626147378744725494557984531434709776675100879002927972251638117903176922190459519154066504731847351055103477503785125192418926292665095927375076628362932095124345257895141727054073261895248716089981481776601257063694179182945128935600753753064981913441018558408142790478636241586037699324069858678162398720236423731141624046316668143967682876482014725773893417002368222828880055652592035788992387714681334251091872949121712396543744358750279954154424271328804824824639990159967084621589697833093927579041701320462640998076094412091537975240797754868095363184126648290746822831105851188252109763302520043102420568706046866044746876495213496779007097223008177898196272350056020917283193668426318790476909729897808170898926079121319448094208263510183451642987074458690322211580527010613986594546777047994138306707609248189183667428664793897510674774847085776901164206321852311801160867792665877472418874847421773435625638179686856490389410177561652748765878983421872320252824061240633990094314090151970887264578992395890748777662939426550303268946860774619731098376063935431388642591724244939390548417216078716100081194492027067185010550360197744346039362889471222431534973727447850042960217698077522751638326543528978569964043078908983415230462391569914962808506596095521669620411612484109200965498467425046809821458800536106143980287217118814615389763613718888889328289301363616643926498405830525657467157975460104128686140663776490601285163774935267641493647321985206649101309782021649451010505366104692998183442877695922926415332344238308342275130483691664461621104556693529273425918088038838290930982412094046815957456598475714841886688968459612594635070097549475276175997773482884009495247128802869112431511822162942221241884949782446795077659434736792978115865463711439972724026244268381288576602076250331597788034101724128606612674245587159748301682695619289099425054087170098135152903707170200657132731296124659587005225947223278652159816995734623318574832490511113819765146428609825080599265584578370493216579361868853578088103459150613722880846793240409911050740415865741557279312198036000891545342193726013719069890335347053705407982340947009885503981161494654103777704821413462051214307842802327393505449484414740865016122452352304940335358087618035751808990635351213230767279803970259536326316069181789463117191658942419495855402297028146668500485748704778543119631078236605984063620738609786971482428828345738990917027125126821078918843179855911431502626431568723612678613684106884116312334887143387352128140565595149850299068880570075122610734012942208805862147317918729279569484766484519091834958735938999571888615729815528535183455989741551200162785373265664569731319477126237064407065214399399677200301408160880359508333381964721998163018323707843653990070104036462136006019019691363298749505662219615963560714876139438439777824235384626322627820802616708014764511066718554194301599264048939178996532322542765478548457767056782412660891375326268021439146659252778785372023800801595746156659505762945868217361295447668019857038856094703343156782439123832987157919636246777627083706153319657714397491744341641836427064198448765398916739871922308858065945066558974604911894541819474739151235740279246415437552340313975676699973219833789544677938806248138402372123928784977997506013877671812732036497419973799338577172386020914863979062442638406448762140871324172683267588985614107253558982265928574583853649564217310740745486274357220906396312427340014329070157315385496806702223945841948797317172738386046036745512482332561561765909045870395117537485099517818110199793605989612855982465898380314277279819073658820617347981511870715821437751792253162043488323594712399609016180284144749048363365894243805559348809628468250638190925577931758077217544857036439695466864433619027462855839550396273084194446482838650503716590546899195982525056378312415056751781670582676055043291720043957245178379030538631127023627961680925687945811570578276975579870769668430329885660731244758418604928122162839923278864469276595080335247447964102672610273729576431125698594220319849588330353198031872022092497559341926294417019003393757457797995326221406328037970904541787069749184695368167259329949780899322800656701108858434115636365530765256561870089679272544316915925538765616735373012492795381072458263582674823766243584826673189187788071387320354448853573298497087380282285174821799729599640322881346882375456983965666327381590066771848976657843416504630017658556925121096951801135395595150884449040377270347645673624280969932579033174754136293374395960137289576471378436606888214475749589553197960982472966179436654088070910297057632133094261985297167186600384847874374663017621716624732312878744660935867168722559545743194051317936106793516646112795113708142013166278135282281667622217273186039582096994073520628069573665082130512355639478800769250296526602786394715963367233002073924013795609086559876886870908374881167161479783584936554617711985395303062234332457588761120797817934540211891098414292296913867189049479305701721968678518186444521446616579136046752459749979242072899812701721879210475196701115862167317301892017552958547405050019783298615786515723485975275081110559544770215608467708115841996529353779892489725406728097019396319715501040843975333058007588366263248141074039074466273359009900716643940454791041454317086430691248270111911244406184290043309649556389392477769345979100637457686863370467941853733202415656243100627182211884981989113943145027364516849663654014384673271444214892658791118057210779849490600876626437631417936061924362989328822783383360904992791687077436401787092324630294014207856516834293880968715985105216120524668369180313365417644698876399596642644245073259060002782726290307230386189935600949760566160176774476826229450418709509844445719251641013488919120319410833713520332096253749083623035831159112333754739217702595463140874943175219589528851294076042273119050526415261112529550417765649181745554184722317060597592458122650228351961157787047637691907177473283329943184141104241817467001840151889333462858630150935652195809122385380653976894007996756775064628260498220738710427963204591868145727363900424499273615301132782375161414887724368936662329632012398936277772402223166253339142571536077808653498464262210624836269936564650274831964529152148258478316081876061644732952080330035149338707965883410398580804499713929961517329127571775692481766444808282055234091893620894571601411882635629244073411596463678204997219645840165963884745889948871660768935752359091925300837763167058067892038411717852588200055683941388871450525296283256768161430932498145542416170189798078153461311726894290968135481381845827064346449746951553661599423542634999653319563785729823078957474660683087610460461808956750165727379171326225130406472534998574953613691817253679716733920432668034350904852771430779381270984095225534269139033485520737229919715598043964438998545909643217197999589555571853421297571903236094107099086094779897230643063949852497119783580702640642411571946502423130851393735452695765620623096362542747722825487470818660110576303747927371165245687554143491202382833811492737092344343270359682458383474746512430698978175620732185910728349439343225455713049455210332391493676990725445353656301826155242917881345150182722500467322326107533554947659632533148085765514967622986002354042802978629518091934880807577352866257738643807274967824725660531000393299367156650199144821263464617754647660080150646577815954676787519940409156369059257731408474493291278234360697907549419516735847138517782651128350845810020082057025838435617600351539219067813188474304549192009753585123537198765705886331385961332545509228236708937900805533992577049232343633073841045519630819275245098401740595734661084126057450798520129093179229461846208962526072565219308027740734084654583206420526255067094684716457102376818829909947292782204056231254897733160883695201482849055339045815542132089255102840150924209024158510706626844198546393795046844283615938550268245622738336575555775128914245425605182158103373235259180283238830943160775760681990019934319067158482493509971398407270010484236898390153776508425145106972827262072925644240050136098221776600656304047467112645927016391556587265720861425989071529996051948018059535934810036133989876365372702043956383553411503462363020708463818474084615411300930381561552048114146703016479814755872315269543191219033004786406915201928149620943892086966999262741854090845017653454243112902972621083813028999838659164911328240815164904865597162841890211522606581500234215832467936779028363217553249067256286771014770332011322127485345301699302379764152254455906601263323816466738919291225443815041173319830978758790439861619653029873073363316470111476396213794113369870308277446670703345016309841967514184700463282137761361382064315641427538103733929906215287625139469722301799769951098493204364438640629621598326028873752474360609468077543300372860919963855347152393349074723110119480786561467288802277707997437291889638397579590936097829983201492630826946010563034963378252981946621962430625202552327554580817773287381823175047380227234057055694894751702937293001166508175379516998695952443431141348975117984577048097107256815060547645198790358762615839392073992910413478857684300714547897416927429405579805490742073778845274811044951347864474059760242110819298374309306338268048573260390090717450174616569060003619156612810561103482138941126996136828854801706797696573338620767429411416870316359981570777084316906948395016147151516740538369878642685513932008973000994215706028414359066181692106456185745648644102121912901223185435500953543510208406400501782953037053274340232233843680191000125155268982330669323328610117925512573842207637863028134706194239555685300161874837282691994660425486585515683244683246560051120144525340767537427108407730747319638262696331590358350682977529389341608883633829812836009754580957043737428311037503857073285909910014053242467746869487664736976794192043021152672626836672656105990033878064294988436669671958366752994753127486236766988829578707229728124476884064680827071198764969248310867894588920144082093175205888168577174352371107367802815763391539705780882114542881386362735942146517536853345806711436767001932822180556993164531846243899366025793501192658090967948653740889146890919128435273949294685994296707876839201084712640947834072840642541394021467476034888331053260397865297877859492546222076698706562041140395190150767927186162160615118661978473631383784729498519731763466925310120947785423304126959032515635742279131120159171018494354474429528264093458521132237066793317167500988459087286465796957418235933221688352821173608962862593956982495964456243379542324905554222903324510023436217760721953726204807780703938165024311869468410718473580500878844599583413407518982375147131081722412371578127729208472330446701433450932532467171279804992671040057778664626142470195624393879918148610073635018634796451325429126775065561696280019809360940077957660810786071293952994336779672677808899683628847161115097612754312930756796850628107119824622437124891470866579647134914149298983238101972677236807356111083123773750601651418639141515628837979534623328654056057465175844803607379766683876823023937241901921015128902234761966305854701592300431675349027962552603276875941459348006731496761730914408774086989506797320125598154116576672186507187293077022384034729368893757299561770313333981856123635043705958653768884308911044272964688967612722450842334244913303680835650598740201351520179375243173965027259400501188055732974791959323216825050896471251924896407530965573532662953863082248125411071383386688893387579390119597784662130068460301439534478124781935581911531539046843511547537548515190167993197762634670104154215454789308690500342393043821013354222435163168961540111013869102723050541996119003879883125764494893233019217624699954984976922958784764884840746061175340153177252585893529189361407309283757169103822624756931910280476206302980373877313330192466642319478516928454369083556271396973492170558188632141727995970860102146598056368647752856879941889468739664111971984793756295836357785652651204168796047550592884964828052236395094919120243081243778966687228770569590736524946240033466307111454977804136727082168029487386833733381514526866248182255241092427363309458054370430731137534327407413421269122214931109551448344339776477299296353218455501442187548998655538258448531058393942813718477243474208250898516324065765105430501188173101968671237194842282090394263895286824032096397184006496945893609613329197966504760503097722408039578091085383204901365710207115523551767064645895754320801128540050749739291873093572668536227924630541865435389012210014100843159468312639648738734837803987256322366191410171546764441298300312027946369692814474294342556120514015747605825378091969316320493351600548186909435768434784211979915342423025064961412509904721991456379268426156328918655856266314616937219323561526401728874435323106361260309359892562558036630056777011231314574563731165642414897690982556284070330437916712022971809889067408138904124301820484828712676477993782974680102727547921674144289348376843780055879141281601992825072162138054405886980012841374123105821561617847944902233100582319350803195626397412770204113728012256903896679122112576647577609968323872871024120161911536464355270338424073043266530219471606196698934698339568749722027330723829020886389545311030680845506149389539315541875791992287400352373641629400802333166873457031531125816031734427770794805892433096831117742947636904471094122834816814283803214833572913886002128311034496434753627693479335886316930059538706249313400082971115411258070353810848746859723783804352509939876813604763949054495533957195496044900490821399502404864108643489924301385539447062733939600625952187165951635232920524332672052364143263008077854608730045768977333721682398550676676784276231847879395692561001697196402752467439604752070862505843496993971368083068596630699921199108832795278095568899834636369743309872258291867056098615068667917247339006284350345241082659362392469859033421714421772981339894173697525525055434713913180661653818655201727852186191782002251206172653140367421082808944594255239514373425821547415837425741033982874407076742797244029990051945360057282443170764956360369214943635176794987626278996339679079765035394395008723169400024542398800896383123533227791389506768438803011460976427701682469144326055528093895685832670721556782549962158380981355181602841517671598518553685420424207372654400600053316186439361290271317955742868554828181498299794601768268299183192139082950510029003014324587877123372528824552786881463517394213855515930346353250778044966779387959286256606480072119062371989485452705540975254130365622499291981019048417529680203898651490213521564938043310749280203693750800394661633157576310985418931240423885739598191415047892581578283661384571140476243557392939864556850813550991809557550265380226852170433203368598336847124381190612610591423647388651511996136051231620612550472956081723179543893105975615417547183402646793487264375315471692856863826926982679478055321080774705664159524860529950871807947051870586307246712325110794532008348909181441287366142020194843301550854741959908558325990840436369484951070754703288211858293250157310017309168588644389059875350270107557131546059718813208230205140160984574673178158181371775342863077725591584380537819620059924371776293028001123921826333007951505658576805452648416786312721923890201794783541044633413879400849108313746756466337759147103512284828208342089730628788833626189918711421039835281234552051342472608880901208625990592941228828837256083700908352571144749379511802343995787208238249854648079529097418772347741188722664897870514012150710427522856788204445063007966695068254621870510247692379314709278975150886279485276416449198464866443659559877885451909345933293616563878776849146072530623428079273224251414077412843986147057454795323690055673820204290734485342007446561433590120294578288751610915635191834493106053087259115448636934810572480948183468856608880495240423982875854244152154530439222416587507941665612643934504144718677733892185381530684272592569595988670236712970844819953214654769709652699995318768049713830802947141298729357003343914008384526659537129645084309038574285999286269549900803833424939300306677574642340843079610545136325357083048044113083690797675604244146217947701987428479988318135899045272716515275597510116234937452096490395695450904300456591618117507674350538766693962205383027927290024391568509450316632377108574114213659641249853210019910343414041952314360190971331269209481236642193731815967548256317159426601612935251140524916468623543591297962547599991703672908776341290578937790820118837486339468655825505107058864751121225539923867349388827628465221781945097341076873360338031896988748469832384068381715807520615887486820381285389420410760068625734001152563138438328052094837689538951329481445589483399030644629220500592151782199289196978353098477064834875163181750705110786143004039027290935412306279589283136031711408725426273898334884673256738731009339548289242165292242300660755116429434200463710992818417475571538038488439922542295714950608810822549539408206237111551550480585086993206510546171366048234232468260111722517565804079756227035021301904734166101527872438447641087587532251001507259052590401129282464069383811271606079822989888591192373480660462844176210422738373637455482139259521483344907624976784212408736127211317688407307282242721958055596541036136221973396534365457912340844480710709781730122327860518157492957680877177187415209453115326665983401286765008957929291936543037745016992206145042027837281707669624473226986280423505344457044266571064735659105476292287733246570048300601031336638099340850511921948529544596411543235657907609020900385937636094643839473970530514743065587297448483546239689866387684399251814236928703531269621460304909027651037611278126659322393916942018323296705215092258524359941231037644504296347613051340222268334419547207528998105570920401011115262949613424786415690278926441433602457080447499312656030585437353770282462848192174510416192736876173031548649361585428564013717243023155360010212039337454776640821005640452543742263012905635055564841278528342267371424776926481529715874171570989166807613371436518672224778539176652954863945330932094926582752835750961468009896459463303375948669749878812617283504792201522391382822383617809567447649356392607464715941983012331358882483795189726451389872441234330249922615094193510735142141312679844164145755111772648625036877181202839091257193309731166909990610112441763166268451696874663835795695959684690640151740589602819510022394668386073520937360602875826246818571203246708233888181544767981377225212140337404347115372276185954273841258644389177640162920810178033460150907216340010786138860964380954553417250263599349440348646601475627480384977168882237807555968396323439689513366824544367294547499306447688101300865171359387668267463021133927429005080778977771036262145113845520797531081865420430337583045825822499048420665120715686003278376252464125309181606462023309531133798246615160643763889018819908351669376988756654595789180063206091568584626091235573146098302106155335205342970787222746621185863838298226975647351300465132031540334140891333259434866523589717671601084973316498795109324714105009206048047678591559535639972710494946785196228771123955969769156367668868806485335734686624581164402269020132748112325989718648969724610687728656922526539809582567880760007381970354078366521166747118302527534945244282015839976426375387978032068094171087504956220899175642273932781824177993538014830632565925370304464171484864460149849937623975811910247990341310229708902113327842233245538540431782025210961041722441207118011940799005379826724321555920580202421182543329437185055797397835384444714951906780018938944982227396607802840502326106300408302273543584535189222492097932098291196064303523349277548078495438955337292839422286698989061007315983992173757975395427555105371972185020325064168247603982997417313100399575252176611513206598975888740237346891709459086228419760742949630369617678122969814220304777843669512671111807483392149363018242707958193359169256682576616166511187328001828660819631716257474468112526591484538461663044196936956894218068143564229382648323095255791779925720335109022140014814474872941403436797422173307310061079517304017516286439324861041953855251738537417890845172630256114859613445466600128268502243868899361139354836385888027277378392209555802813943213443826261270477162943843971932301894354659090931213809221099246924126616644211364545395697395163534216296452029181349410671460994732620481355863167747221258591895707679208343850015085007669266212726751134256048372920159610003867226702609292368237554039419173887557197487914001819650589329635147986703445599860004277835813489615980135489080644597201399228723985476517840993448569389669177674573652445267824664484902201660825009456685334694008924252338873139553188180409241796894646019949992306537273360165519857629938927072819794760321568651921209173426617655506236453726790359912355861667334301708569840198293399413887300028590349380547388351759200574939680340979964030343886823916960576795383661459709302947470351998906235266368540643011727575220872417655182822621726216132880639833667931312457310457270496423873125777919570316614643971015465930507505651790022597340946087497607363034761912482338639930837025644792167705284838106577240379054462421776204927007130875523276254747770346311627732440725514243510187006835267213849279982305807773942776145737488111872584519536938799596252496193854235825801276484201322462505388196216195032713019460321878136752530844259225970411839901922338865731809440437535307256691236271554024300513236337907147318275624124890321614985500866298659268579408046819460456268212174144006832267809698601821944986695066008207336488292182066822686177600249850158255545983545658418549029860386172617791005178873037908918783262320404961889155619655252352883844998003574566518524653204473168972578821283844449129253033379498600457700152933868695986851700116985667362290593962151509861985366760752864562169090256338659321427350691486822485065133694102200186301328974244209489569929914457286593676211146142306644645561203203047913188008968895546058253199187785510321675704403643465122135371730381050366170953769169981764623154816567982532083795292417314028618756136912935043126709260059143491741938210247006146938119676098705146251369481856966447766485233770965835291375294039192491914265633861449735104840444681993332332952427951468220022280310641923557676649606822988503927155787819564280209194266725728771962212674535553145475195692411835250415081520830089335607930716649638177225550647256727709801193665447296231083898186941402276909130095180630064448882017464741021156554587036236718763405350551654802260671742944384233353400929054140147080050265740250336105077869358433009815019099170664482857684239714027463801501205657700855580349207955628062478688363375507299932991489291789533198070446466543449630179486096235707756520012946718805067817792503506240113981242827501366891040681427465857987119037595640309736452638460868267837176670695293190897394499074977929573084115580123449619146210323194092407747433683771835787890543301034398525179672704331421470979166108667868872599239415651335502021039482091360779338052912587094218127831672526638943765584351633179242565340006863461189904207030561749711576709855294699083264690244558649928102674616555424573014026023746700990250792311889481429428367681706631125998269211355188072566718516904251543460430851032747071970702475755482664828765439011560482107631997109981326327879013843761956871343280827975432700457789999461797405777688840730280461998342112481511672905200218678304812853916299379138288365891316751954274312378687637542465124240372886454079680602439570089453992990815603155260959545881954729354308475536759053646099871675462238087682044475963447693457348700402235859109485910030289033391335643534643070402564401881144002554300272887086732813207520628818257250554961386649034834497461805347055484818257383589540529033468351846983781637985889573395559435207240455520253511308640898250658390558212927067900238274290045829384971384859335611777296583671134816096599424170369864407835273350452385271984243582506062391799678269110604977682207787035644197663522530161202211693501684055472224159365560647836861302782737806356966204317445884357249037163580256464976576512659088210217459945893581117538033296889270211726249391794680749863820003982433028512879934147538689599429476789921188590774247528875200014531169186671067104400371329660828467950456621693800995085851366081649050208378793049630982743615628736858246316454404500635662730061769594255104440048553389618901096834118250969460211497885253351424561558494802305514522616200685122576501923123912570652802734266446944815045178851517779188585999332724788895546026083913059423112905586314450030835930711717960453719481339333441798743757367015592878376361177759847313150314224753701889393542098301047286224164558229120578568099630538652603939050207648248825667841746754209313960502424870580572321246890721921270351449844408263226167275795152732761010842891753760872918967430259111405753338579194172557242447250273744768281393661509169573666661279564198359815377456422859622034425914469494938026505018842221141440929117775675117577855500857963171764517027765297838183197382633673850817024498974937583583077964333975122346361547561374797701825509740156521522208659020974104747297992368313571725890546300481703874319624598824424669402347392993601883545010202062966433861289406781343360386877386163264698798425257986279197446639590350907743692787953857663930917035743026596718695562769349638320371785272405067055498542729231257737310689337712685054328925671020083063537575307112379828235248440434836648835750692549725692843295746679526964141256742447277125634825681516482025524465050732505804232939940277668253185198820773716803034435351366114257915521746700995508725403924837830571431953940839388510030582724027676593025415003604659882645405195206449663142562400139059609530925727117080070690921833425979348284722604711594993353067229020705766526365935264996435962491093735933416427690128447824674520717516056261406645436774508231496556850203270197455420447435238729697008240162121161898376702894078297442207277419438462361515914356303934227960299525144857888994202544359292282906908106037595075351167600976076001805858521439314244769361429474961278249084331571755964952655511628510997559526349158475189002311118936649315839115173937911960630007651083738961171208058691405109664028774661899980715289981419065262136482030675788196498520593373696022225543981542167127235094877975720444648530102691032950232095951467651270358093475098759576276609528986043843695020448487014751485615023913010683094482046777864463320281542550216393317305047104921362652630946796833883588689336827095344992009165651826704326725289559781419756244721172083626368103305761391072603494686748633486416138205207866767174337178442898886403769563681849775750729681199085885465895547088188309260766081436016248447366320096844638552492504967908834841908945675866653170968478349075711290361869297634632499657395923750159218700524816917117891904446256652036440662233039555668900476172728460368648741288030848960331050842538023100580409844598792341016535185825919526371053664109581503737757278810085799552748020408399555989209049602489562221632418272197890748822770977112068622058482427549198256260723055734777085245705183040063352390432673869976796286089985564900846356856331580793796325446666034419131366808276088222189600592873755184259271534146499676848351541781729728902662478059417322812981874128551215711929677425894906050941178389018858059002962858558873947666623719945284826368905086702117950156873317801475354099492991655386800687016785323455822383649802014437102401788633107148681152633231651330120012748649065769192397582732282993484722731769219022688316819546257160917045513367754017615169598127150084586258979227736327247730445804107008499337633546332274142465041335542744376610776379175046758162819388904514929068347522020378188313782740822865093865228740994789492851557272835759457033779702831152325754753668418746041475660804827146423032122821874372994980312728018712105674966122039849460752924474419915743289012716560634283401128130427435752603499306728827141141650543688631378722142034024734391739165959248421340668113099731214239214458241857048065211031478108732155692018233384929015365968786956746673956144624250961479114833397166461422247180857230860317487989782256418246813021978386785239369620088259545798974027427429473734784188499640254023327546450175263351872486742293345002444240181034271085243270465463466336594548093200754102649462469618056360545613366467198332121374458236948565443860501634725253721922145184114045579844667802683674027994780380561227492072656034864632724214200674874233375629401085713084144616080005506690044661915300619920675169297751697641607062361974381114579526398058004414689333411309113216494159549471247960115214074843806712741505149985711927668445012367720879164889524617253086703154646969869407249091703422861011775375651874052811845183330292609723819691049222800969054342788052227371667837684183583802234679955300661009725384636678193358126655190598389897536395654073987608147148882287009744066874138199610604040075100435164887321328662911690045721821149849420443710889053805372666793304322862201130728105988965350917602612040687393956705846853393985840807965575995029317601939036962802316973344879995857712215339282553134744892414277571684629488680122002662832066673401426708334874097576076094770512040739442722414449516324148008006754472736879416777769887312502781296137613859174428686981502833950169306374225012982245564480814379212478487980861002223998026230789941397979892436848641516044218976054106793682871983843606584670733044812829912968621710381431700259703697797048584376536185743123271230149264479231304846694829459425187729574817664235953435620663813416919154207768291823866203554385405758237068129989100784256135488389665975265747689619112630355123137854712505808357443141863366030516022017610296553743384660602961123131386596221096984059409195381128020889638689144267402040701660386510815415785803225771254539116336156592573639499255227044477697227333297711821020225681909533397392574493361133797896814745142171740710744785192337874891156025289550072986246641034658532498563074238193974967261908595844486701405729369377119161672475567395592472133524588724479058040728875835509886518185589175420205856375720744641285629489542820404678479791513336310524567548011877059752938478399056119789830669252777783053301478599767104347530579036150225722972760259588013746540930155476111974767938264173208538732622640365916810076346311827945452476895524252569787091716614776826206280834267154190583334916610113743314393948910247254989806618098977641560671465743149803486183031492945420854264788975101194329314631428515612543687517069975280273410601879429849322425825739320009493277665078288031722764732693456648164579165164973779903081106393857231386358012073393009191668817177129713795469832628333807590251837059260604485800957697852450051323462137980447672499245598873791664656753847220482709064434364530780039033168481759127438290754513667804340224175709795128797311908981140481036628498519623943463018901419712608818890813947975038390545576297136135166845374656362244308239748361682918548667839235246627367395844109946779184386829660104727724591892861857070308147250456126313263097987240553282151661227936400339811289620048189818388101844471208680105586647655067552894943817925206528554794809498475989422019721346992583712831128306155331874979421795237179157170779343674296475494123196323177390912141309731898104618492533614535161301971241265396442791824464369298897623854876711190133484314149569149590478828395483256201266016054320424802390855462135043089128747860305537044260014455005208377116329503950695433664086156165184528963555854889657663715664326820645086046747703516230950503166427221003693540765171895790707561164357223485965585423157489830287573475231761038606854472292031285646087307819227968717070248319823124531923489454261547532728537611562255642055305869238066053795773888129834719202227041993436518274274161799352210489611987589181882160545463327382014910342922885736528142236050131364218576975184283160091988367567837846907128301259680434801566012686525472465106124301634924957618402102177570850613501888677972908196070345655851551066571038226815230484038537670428493057330600075666041237887665434141069221994490525349564432427248532886331749063211445336038982346815028930081503749294490783125692657168204015314655351885794757464812326340206611844839440555113171043818847249031951977504215986581013401294732288647536670832560598516757535346779200656085025099552296431224199993044978454910097947231470912784652799750796832632822821308917558116311700847440779472691137202884476106252683233230164514964034029091388029443998975970450126871645903276186786527482409134915655835269996214126577313873958707081463536259857446038617751447563034090159250271062311975134346915811965960733990267026520267962857948069554777967547248453836305853731741687971424065682871432302583978051893058557181572791351884650463822614937911684767600819717047558223846907385354273684482492958227922291552629875605929524349648172242070765313121038039958793127596977886475767279773687667440105650833685996471333995058819697351693756824962633659886080005650036874759865326055826580996259360320060092887147444088839082665719648853946544734131555554139400313701432478675992853796104073949524731007135891272096576678956425214274722464586900087649837567253061805655309910814662518665100496321391702047694134546033000208789425160504158277663124832191210173133517891997367868108732566517344810299788513456924968711259351635443174727397151907864384695755304727204278813857630311865801453024709854666733596673177444192837185960518544420001723102662047878108241004825913036094554124343589285890216264249124012474684646718479356334508794657059877278205140143831966629425622801570594041549582067804585323045260046354703842312362435029695790206310268076408099850585831689470272449647072856197404261569248670709412706643393298588843920062608510766973647479150088276707189897679264163548181176871129956258416717279939610222805700260894286253217595708252112427072084751145635125202118924427161074017931180088750337098669748566395216301088748870130940374515982446104792691491113155003179112710123161973473297011742208926836944447999635382770404311883143672935194869546928451910757410612508783030916739100614598288831973014002598714956155374934515976788958014691959586277390496212570548092546267708689464677114720199798945361438706260200283957131938301795461377040442963622515284965347082486433561694995513288005637735856332733211488710053367555687881948229937046759852602608441938728661553718924929587341503228108625626043433071595232221312617694877196303943715046020109428143978526783394611083126962549979594398430044810183788138569859120622259613509426926349507706298255327339878622543481487603484963685628581232050409629771965772176445920781526677304096846780405349145953010188486592359314379940194160645369169333697835870215038700469838837278579751375036743547569054191487521060719687987205242948023316737542323028624649731764846708651969347483285398991772545494925203443106604019650923895542226121460390375018979066882381297045830252705026942839602654674550270746548623208296853935905978075061931178948094794105948474159348572798292223914114382538715594400994667319885445334851725869799302663560757312380453565296790404573301268449003354120771790476454338547261270608878055559387174870151825488124915947679965925319105311537747093239754342705861387777501188615803996714191814029244009621171786971310700498435809576084126019670942065147424988390053933183180440183245413528173290898644902605916418994006140440833486876497454223800091510087150189448450667439522392496062384653280512598412199913584165396341093091517189870485030292287196528400350506318571910177082339180905733733184808096695464746509747361941639932105854383006109249307968007515294837058662886718805749951533771838259504334531047790259685468075312111735068949251149326713514965322696688858742696290190798418168151691798869282369537989290818252813836815657759408564612411748348550574798292512395709538207321880334332678384103335348587728301249340035821267544774008848795439841173065393296420428230035771308692794810940310919839702692668265950222302438671834552524140341974038831579640802405522773333260261706866340498926905547947390765917313273560235411763315929649743416692021014673246267569382322600917218136351998705455031915119333995218484054462552786816169545436297924458509491877421232714673250751439100237888794208184430043322156602665624431448495495725189993189376789531431564423011726733714729598817257883100406177804456222601738036879337622623040978622523339720965953709444148277248408275304144249447238514903935325153241028829037606421975351095851997682192300096637316065355307759730008005953787529137872693871340061008182721255622804871708116371314428139660312081511667373243220412991933491774407530999825662926462786105667121322678829253889968336518034613422173737139271768241711156924881260313012394379629523191102452917428540985025054279104394724365138559344230043046111157432933516495205066356500673275139875358327572428875476655449525471341908575750203769407706091207286040734609089444946754627490418963133672647196640570178257115173857422029300280437697871725434980601901663314918053550314477898660097724687671487626271949819780554323713917148916762320835614188109815480281061728784400051522534801904394068744473935035653388450337836930599129791822598020887380680287910402713359503543136044649101274044091079380605133785435038549219258624781493266519016694445893059582345938933781459590324571419815934357609524117310812071013406908654093585042973291732220356892995909279074733306085379330088278584800627209054727267242096483948191890919503287655749793072850894336084026831184332802459856597635365713799128376635764221198308582708532754247053263462811767753498440097459688016563610522659238729188339308284349032957248057474703089773599584561310878055879721911539533936291853042842607822102587946239493840099077491356086106015129827415252768583105549310020972950964346405655675165102798810826746272784831757926977212622232633758353886170824376547362557598965719932711620035203363483300041663370041926311322386406976905228672021476984399121672132567588588351637786167308886965515093248705390896799657642986235876512494484932469427088852189763729898884279622162590718827979480464895967609634897158449825494020524672395778946518449105862099587463442275039120176175060050787290767536057802379711696384980477628667267420700195542402443172011741109565675659512143758145724822840751374687300349332613400385900408856641690859883342774801788283242081104819742978283122819774868442984305583757312580875352366488590430869467995453441729527658008625788957971381983441121160820605422834889042639744710040904226754883397019334349977061939768944068221603319734088798645163277644665265926066009627009966708057173885500550062436104081568448280208063291492419340937499301739522620375385327672118901335056584403071272668220876604438192760307609185217517487455311172676339005635777870854026680358898070715269249482647119516951019396343307685841580626435734272335209112467934598904436585707411458500213309898663170046662770445527844999438335098776221796424100906702423296644411674367828321111977563766972558035388306849776066089382032926711477852293987202202805432195390985992621413870725392506344002229411320955531524392454542838466778368824115553168564413477100925356649767529959559510373475749340153988853707232008818652042738265696385148222461930911682895092467396461170964727776497943141188734216490259060673565966130713979873529575613201646791104231862696318093658117032246634929736432631413829399769734335858003989289279377887460945194628660274241602712507480749743212590252312446688745927099942597969071419390330800071861379594110396270687946920487585415754775068401919278181142121017197069116620612094679950525124578060258039434406228873963871237707822683732931541244016680391932097658658187419235598166986583672808337908297073708740263212757028953664640222858681145211563620888964280782332611533666949989593084589665720715292562346269079877086234626196946854606940674832780228323699591164218215037246897503009368742437528375892907314685190187968071713700182724471669188252631978137066004036876501091441260759623229950182808311517674999785008377332452619419889336976382401039540406842602852950901785708024145242456053641238451937011066742682214280310424405908042086561382186666502676206477429478307079172379425367391850184201702216275265893108698513312971711119487034989591348718263039530915014740043453448471960375307882554645545208328008738884695010680638938400640967392419755804062402556390434201610433645069986817193399472066815356086376128495185943585138165004775758085484866619410632542701645434038854456252401345997895202006137527409272589314424511714920654147555905612453999988155420992101745114302121137755463114103212371619634952692746462816235056666079046169701322104895776634775334693241153883928115513766339154643145455165188127397400287635503157152716751822055619470994205284527453014546072062768779718923995716206090609654793080323674372255291130869146893868673765460481402496561850218221567677828408178098031606000148700965475991935858138217662891884960839156658258395523185166640347276771359854449294587425648233212247159835708117487078251074848393150172475479279977886233009829392517637237379833460907625293899074070645393833681819289948325010955751142755853034011813723728485511743923339573404783773613273881429197848520480862995111695567835930407302843598043952056238161455593874946576998606475375837756728709171083592134301885512161085994050096400449294766396991054734334354143462051447234359838826288483275827420250607988161139486129840251841960129859288374969055898926526926561015873939589711834399577209260902561888410871145220180370774439559402212873268069687822000677637372643473217529725721523057953498572454207830270559816248315347746412257586954635802847412842586680646225585786442449421973329841732883776456909996804328358157195313183797052598516541360648805483359179862174422212918191371771993271854843365862527705977001696207847883593368562799480405117872803207151530679809763800670929533730261474629470183599873149643267952814813089357133423717775538774928232183528280237728823527143095155469809058545313790448464710120713135412659662936025222272348203309421891781762224960151940788976233166660881172972187665156946570148865322301263028273996175818221382809053529113769939891207627868636044383002474877096596410005306172676846631247003578015624572701858211437386752709101307530736409301248013752005366674402919144164579121125715983316342327729822566661723756434753536107449780017077910532508210967527425526587436458375583601561575092804259812644520076365250521318567340457682903115880262419884308305484560739221461841658072393213647234409394397346881514272320208065863090034930634205767301640721183629914668378118056152309551405239817164521313231642269608101609169783582640434520135613484049371247611347338252807348329351162137167054549416354947763565683131423103957981784713670695541415119558395647519573631707466015352927418435555572760353170081446207807570744547578700270436668027094615410353978598224832411532191752637665639424416069564620556817728659829653957042196230032127370784035256221297137898256157370568086754443468045453661253194292699555733509928978297874784614856972419406293824997246222698294288224454705470600518244522731132493294879659085752336346275195468177552893395498858749117646298695137321488055590358983491702945912740597391883752677246236128429157812925470300496652054736593541406381806240551970912232713222541640703081199077476920244274342627055942401418819973990668683875199837033267173391336806652350697697476598283758524289717042433660091153717312647376191710070593018713901549963036714517106610729633086199518246459475704319152604288611979297257599837069611900566791959089912852816296128193816204112775549373523915125158556977980869120116526978558321554614104561925620880302293245563377277859718013486937984057642288294231855231228593887907264609149989464149656887620529143993801632776682106679714071291241566056328712074278697603883908969523538950724550300437112849152108850036232725464151725969534338308572970339825242227221378037728805808832920540990230340239076727188295116674994997116650877131786699547726590173715548616041111643854921868331045991296362888172218887507928133249322601071882958294984348180522276967164062079470478037509164976572172380091605280423439249163523720397049747563047316779797910707330663457045050324020571170190430501002955792868116772346215986053291796492837038934307955350197508398345838787121774456827952359613812728898737471747352713420953983968056685030948630010204640384304981219350310020269342060242857977144615463203106166072085651831610825747415953444256954065183432986073525359884391465864570919309729382331787181403731785783383551067470321033294396823520956975165864492685126218008818745437781231047035724253011344283688519108138307482437206485939020841731353765557992468843090995259752562732433870544249580252626672988092630336470262243410777954372598210369462179806537534658127563985710970102364908632518025920248287089161933385974207398282478066665572861065569858512914112134303787140275875532116629405302740817773978767866585214636286036608291466050152506210199832631354078602073257058236373175450923542781260823382568933587224466494705693838449646647911791016496484362121174448461656475256964057834686065293520163627573627881305403738656143008898382106639265185673088709473057651544615261213462966206289642230085179623890313756983748574659850609369234077966104266213586498468322863629854028281567135586592725112615653450249288043683075000479323324142049633566474938447811184395043618593970491095995873520903274912203878879032560940153825003831484855375560700980859272788775069770713132159984747658612109734638762601080858286883919068026500752683576824433130233969875237615811482988552736000697159583417063016421395705402326103808010155853725879132150986564326119543120470280275253354606458956881801397497321695229770649436882506254652613625139808008838588953133415646029133144779023971695049426043989453456246647849750015674635670359879608938630055073912169863407731039088852922853378474352305336288429414797816582818006294677788339294981501714137099265925106971869150805295677667745244846488645628308317123444406265319818023265848258103300400638393486183169373350653606020541639809879116563651369287280982833045574076365748798883900597050468370083898244962622472451167149528627734934341762787157753050422859823555044432641777352875380241350217480782647948793410817812200412077974252501578820993054326447691780493412758922587786557336557596314254103450663383835989255346113749771782244116709603346993847687618923580637509938661148094236536139666415879654073054390338618869010995696042769572041633077293099785113509410537151658579141108325880638149817249526014253788769802448602709457224042710713654462654624039369391930312412253905217400185695311232924542145680582617935760399378823474018255728222981197232387628064744273360297698612664298035222512817287830159936933558513576268032509063389115355883337746470622671387437472841530771785757070598160119128258948504137277812210661447563121415548843680490169218870919526887116629162646545218151736977241465338727176910181264062962278146754792158034076078140912762724057252482342558833571585653970209786742324981159158435975129263325064443197822812981277570786720327239862553990101824897514744997842011425993322346095970597708080444261780586589748964599861570877490572332647134604322501597883262429574021369737452533905769536027886948254304321826893935509949710045227505252685291018296574090616531095121244965860232320500700341768697428462973849491987313200854726004811431314864650291087417295534179802869494603865866330890398505019156568841289370539404435735340525233445504791139251375742521034532518897081972903427128568859390244048440388305451933532056174241582379049518377271346967119964436458501862660593114319114939696262008753152072009207813179204564814339249973618800301646662508184013883835536962940600388559118243246530980428921632394677072695797228152657791244611550597835453722738321397433665309880878143995202486260078718479623331566021672027272183579522944895262498641579419209705481281573481236486760640425331150306929342390397943266242052385092158896858016982090143547099556809844240661517438123279604797765873967196299865161971123436537258478557741707188802966288854542789595035844035426047144589440892772434326946443542822822872336339334369397345985388027637642122065828902142024640063702625479219508871695082155584214261058953773744549484417104266642694875779351590060183513569463905982476855563458738872733089590460059839529535016648463795824226962981114639509661176802787620606133848911579350224508153645661218131065171467071185991471494141112293984431908450183374411825797371439575267590783194963848347947349997047882866367669241132835184723994306104531036942129662479865666286922425917957018644250117079326357993707961082672112938715644405984918338276711476673110503287719374644744386127333123425041530804060315121685033349658205183573573183374767214625327178332031368190058353176072667778353784822774120902911232516198826517480324030075928433815990322801115852698850216106664676621328584525404335501378276022331442976085630222335922752147439349999848870472559696947258669012137224799370912876237327606804612924548779337820960217567603909752420697500259087531210632896736551854717463561446823498694504690143658693560899604011617442590333475586097355246598066929526534201376687623292982954066295338197280712195082500467976921292924862667596686238605059980837734654311847900389684759105750150918999569282460172975228757618627902689685194394841562502410123728332647650214822751748890243189349975288084237643157058055788888377542269627321448261426408150352699698813046349279864670740487488234748960071173579960039400554645848047286789136463644027206885140182972905296874931061663503977509603996279460282913270851481535944400726997513077378377899025495912434553339631765057115574747719187112358370196393442869669124062009755257068362390530741200749131360380389890818738914354581589099338703679948690666102297480053543845666593771348251182258783315550083277120629137070906451674977566454975853998362862793329805310561885803908648857383431894310670466924051939126629667553200078085989424264422543238485021389675235546372095730944877443723161856812277115858815047945710802634683475794337639191695802149081249849145022641839620211415129247140913597097150178149579408579218707087673671180053982472714416209627845287150846891958027121181255759119996573988075386068808791401211844299833224165597822464088926650618052430363999755305748940253392753601302080401214040109983070278915988847831359591648851300304121586612504505803320218384769866852211121289207413795906199495535940337316072384624267840383448788715573416412877817339027088901539911937401629547475191061935229923280219042684142156674314858304197994320768240706254742101180143514532561472583371201561151278877235317939077599811096500703133129644074681090985851149950973004549135215123118529933171530384260136820801802950036524055006720946927168147909203622079650748481630455704151609439719099659825995347280322172884577650247249836627569699579506962311892982092253604124049009699389593471076734946800833887749138542644729572145854416312121561267278246528166070180390571670680935088057796737998688055240939002051400455327883125109861492140681215633628016256854507378696041920149045600429046888461202657552835117321372864453903892198117513980346581293228827510963729347210440860198249078681889788032521004967168276036776793552724387500144645807851286053554106773244760726227726050208307235530326946111822616960721849953726401930245959150076955494121065939921764619244786510140159808929067698095964184600580255330965257133755891575548467611249028907496414896214856092985232254290410572799389959913662334896060275738485568088201196208634765346356545742489528045505912480873599675078259822993759947391447909853598122409991327668982845959611522727477721349542078905479254177644827997454792137773774251542757327948068165813410131030814528395482934961155407948030739907125154105968690284033997114742581998664586524466252519139506951585480049876675936803979049090769860062505854176505242474879847328266800225751886616448746918724200795937227743594771879231371053801773491625263397859278828618184019113665053814955658130758768646242923642382490775826630760528071819538041278532255716869017654972136578188741379882580183941708898644587573000236756355797670639430271391256386459231227276344880046514546184220033435204913871875483545592496041073044355142048348742137850031821111324238327788272617381886300711384953646572050341293141907534254907596895362271317507908680107778878311242718542679175134638281970449224466943631440639179735973611863591263231116537640560840273809590033907237854197172873535304268618103365805138275714163474638062087954926792825586611547753221069197539050806005888423656022544661356336475433962828629089672065891147356380587378728676063913962396479213561915440730605598640996179602175023578270507583020527433126961075107238065568330501084353047958338047602447972244930046406139806897377216651875963200435481730590957446650801618077777384361509671953563591058448106743610353324139804343225542419267886242039321038693173683325593416616662636659462171990698929836855079063874410761431648912855883009110713919020772664859160399110809083670484925222330270737877474289224324424751378114892081767043393381358696263379340578111653128514046063863194988012879295434460359283252450940640123273206074574298999724647532269013286458739684661369677600541313771913798278357625807619715145661805519646056094765630135795951061375336832306652404590073347708196357945967693053438387064379910014789202864104790531044836641935066288971463264216851961311157358542964107759573283349581199307263850076696328086169407187990379547971016417986553565208855203219388711720009199024318420990316077422381107345171006764537462550221587228696664374035226056175601991178730573765694249241056253213676150233608892766618323152048741292235782078767204197882655852766157548513594816659344931614160836614676606593634644113203440310162144007758006839735305856292621394350412718560989064026527176113408853189991760742234000901553109765393501077419789950332184339126643223866014855793708800485990394452404837400936919849248903963595077039117316354851697409146114803142893530401512980026291776528534301936344303058776618028858085022008131964903962755721526188344219541938346849617170382681670015295120097083146111218807490852824022953161693347949611715665266312821721376188908003443810780649852643460796904344502746060376089999269784236378407433889005221920853793583309669521239075826059232738609201644811756784242973743825517247488465325304124157094330553576256813687428502673020673362109789922800857546532618571948046330248612668824986650042754884193730846644589617497777062205415778514742403581087656337539694658431263587099235120998133826016578091548057106289653078852981690839377970785935386377751898186826766032148738898045424031569672649319722804161864635085373353228651118047026239378028576927329668704908319396888781272354784052588079210815038433260843164151587422146696335661700633548322967488865219234840150415999069073438857037311762865201626446676870238598064214341598608693227844906712096038198647727379560999973696714785399935763992795157737305979336495152690822026974661217855628937639535001577919408510250066905983317478804424030485171557939378004408031422543966183294920312281125974847543631392810389000301228791324308951897497813213004631263248846055391497012458673946737795217514323392361171162173281975332546593686258299330975077020935509810234597066688623330305225098070496341502386665559384907824219939682008335681476494109793982395976760205622634786962042579409517294983520652837948248143958492631228916360479845707685758893114312294853877956250042257595615402570727044853188646075536969124011018385418436615340689548424245561779316753902937459799022347667858016604156867512579398663229033877680239943666515778950093403351921561020687902914155621440371962500649856210297840499130305119505963775473555093981172090848941231528759126410494440786322748922481115905403642277900451957129193883991427206064155148556390253552569279223067376746607200987806907141600148501310871735660832172400699948319965542476252106096767831442811127965590466886904974979245102695926621440408597602593566708667022210039816541684201894658786529921049283428881842899217981600865682070698822837733472236807485998860068779588698436066246188050965896185721702723858129472051864690296909565037601000394768929094323080117756580966859001084077167293949502242044231658752324888246341363564528364413464774671100214458606066329516957978569317683876649114815631352324922220431215958377746131188595767322012565468381392723772857680203191910221350057299618304245838884602326254763258666523723442374102433865896239464609501778324922164394341004990836548368189437161896264554949565956578997237738501173899738325500032616276038192265723274944335799140174079627314623040256326402431929209698785278585432167638086459085123579536003065265299070029356666151400131107126213780689469287925173227464442645000175976761434179887045694701098871531657461345139585601653637640924555485866252069457103863447786317693627357034898755334317611913763019022098095344592221152054049988525795992530836966573209519180337690676485157733283090053411067924093736639432607178801114216151178932739872353537335157600505998808429251317773642083638836914259394411803349041885414292379479882358251555698478524382496714592851797580955315796083410232457545192620137188981671728379823734585747691067341377692263502484652444136434764072999474018643321903743257565106977998768404019186223976587977453691786157602971252160160694236265354954451008626407979476721029982127324744656997106466076450118987256998412824786902951232976477884398632203403982065870828732768136152817218401963175712481954933009474536584483422798423516616315217442451163758788721902126790759574629689819193395487786435243194966129901684192493910289586436757428268782590502652272950165457534184527422736573140840798177246681663044755619964412910697647822274432088242427048942382289573404085191051163120341955829712795325984084899312594133142610495276683637788102602307996902870775791252466584760394813952884793795344048527781715981559042794512130991109635943889603992165637946771092681689765108015154994188302804064071742440304211420613251467101694681646164051372154239450064612252920049032906311202041686466407152072394241217833002103115979722988335954787181554210527127963983448886621486883227112709917820345007884203940463586606892645340052284248322639794042512154113821906033073422679497455010143646938495048699303241643467215556819702502674677377448326535283290830096717222988750444646854458593042697471660937417511608525534193331637320979485747809609650731470130878764610460622453851234159010334843002900094480327008748745945243725773609536545755945921539447972875377204461572812568138584557461832062685647360834621205364342099552868826160804725398923635346730246766479207087257808304880770753625716694352218701661096331817255292284998621118126380009125944076252828954323198432831435984608974685537618278880796473041053523357044328068475634153442149103433427842921766735222491107889307224583782449830987015007138548507217598901690987306705022718417766293263547900690605583324565740309494958967332324092498258337691219880565627817313321082609806189428052682552963699997654599534434874014886409470746028525737854668995979997447219954779725846418394960999782565559898470745987057849928812011823008132302125568024541514607528663928418080626557213045159271946775136610056912223142179524643065841680336029422508805980696654607378197407953712640015165866237239323920432628394320322232852273451559665934539820971538732578267028144444262266813087478667834030752439918453471661207985497404771125676784206118774076847805716700779861346482143195943773872469072610540862526460252919103913014921793198786835774130262647951153626821331589247929448363982288465106092892842197490257091685168341686810230836889512140189330500060471489149630925942679868911362478734138040032327583494944086524596091543271955760100672454853919011815893719745377120514517488535382148823685662776352496327568445162422823597393167676889428154285023725209099118956418568944686925892843025236514316781414064558325367097773732424261643247370955996297704235923186500887471424421750189153804208366783243239615280131101482326194283725301857451701827027184029073349290684678657929708065139928336315604872152497433711604320316344309519930904345360993486581632119665562127972096684641556181499579476290711139655113419856883583063525099772075061095279753413659437829819504935294432001831149028695437295732336167011159085554486765011935694333369478202630741469205109081250343779338643351272470475140177410053324822392032919498210229320534862491144270957800351532829276620938014191265506760352856786476286788256993240047048146024793179752017481830824757450361308985912116086128033898792570571846669707019023572525519203775571725697771751192831072440347956274280935805139819107759872412794942458731159588068740881843853719139572309951377775327972802654040244158411217356921314385770142783337462456799485976830522116826122805419682944104830895517002585566480921638794919038597828301522814124788812358176925877218422000832869969086807371792830925617407285951467511751110616408206365125219128508956210899022285726399680722967416039286689383026137421104859837913148965233617555177872970913188726259793827139187231014615762134409346226844548674079000792944457799533447394460257630086143269073060356997667860160699702191048207720385112301015635139071888485996477311315347136883774241935893372130769695904634359903047643346164198071211606216136343863142489493770753618883021007705798737977571098978212576578881200026935095702889888336256475274824158265678890912732905502468188827812242410946424995618811740857670819856201051023432601789958420204431432722525925298177529104014738833866697354067916506363635814615423142620130949113236687695812501811962055253607426266215743292343821240678537003406127351762288567193049520335392977687207839730351925127235951288763047317465137370210257749616062152828339894425891875850906801228703699744002450866697350463651221925828033635268260308380523024663646504721406263763874052202994007053407217089248194152038824454731435772116135816329462003543116466372377135517833488647013702151032545184564103210358617678651357539653429588183514962684995892522213831116946555171625215078633976093201863822733728775457144732004238905414400399592313457369845616505969222089354528766169265714357441850159468671902233399462887685965898276082917062568884613867878947862104533926432500133439076883239891753286410913649943502900511545634700806738630562336427456041464520632642977216181740230363928710534226428697777469014486252984058958796502481507393440331604407070799909972357422684966090292780906272437063201895023706643736326430251481386603296461005741405809599794949806714129572503511051186999858475621689830517638557580726621939919554284713848876830925574695797805305285005315551237610632566717022224683069378820075975776955223584159452173682480759822810637271353260231390219882010902365262149662499234730256537563017621660841780704971160566378135229827649639961759410172621394390237857251653530693680423363516357212988516571384187232490484113088874102882849892996586210099911014932430954780042877832357809374214123640612001887842525202000909006950418244561757269031878844158942308311872312673976995392756756491305423241772469792304660721752338744109061303848509468062611167370432983250204343561734462325257574724714450510520759823585832132901564728345935182389757197241864376690788085398744712237424848149479397001776872392835988689776109828771465275866783082547314909909597092963753927277848988155882600619724469673916932833345091130982608559089607648886263166932955698715955194448503563382702346090292980548561074179872929439249390304987614935045794275879071852689379220416125055587808977010372194478969476745435505084802294359488877144536595335565778460492068767935516545170177466014399445165861897357845638660786331687324176389059230680459033947476043931430544436539623298412514668388078366499913587585411288417604176917998778659229813775429690166326141142036177366733932710296244978373379813816435368456593634119443476753282597752795935540771446669685512546511646349800430059609516742646777588835198218171258671775467884132845952689529209534786189586057306261360395959667427231427262863607045196988817764647313036613609253602675207550203121453352293049952571165762374988008087062825137907156283019859045737294873742383938871869202079669938542831013567309240717304280464705534998318798993868391728479370941153624678831375415326429635822878395106204980951134468074330787865137077514532536716036318581231800975529471816468896227602247490421387454716352372202467984902689602770364713128444535166744829991227453197333948804954858549654409459406579544039225298858409853255833697324647144236185765521390622637250786520005059180705908989201690066781140562713961824622823648231906266762264000342862366749355808989356415039693175850575040813784946170107774595243145521022495433156382506102786239756839177148406592305132735955979047494442632349282251655919036975404938227477556148954035052332215421693463072284684003713245644905959783629470490811158855005120167742403884087669854517141438518495851106975891314390234895708932284700064249755692420906441845363673451479424585226340300575165795292930941754141249727712053356327864211306000326504535099564638548449386086055717459473814748174318290917009466467451896404471646038078613548932516273481661494264914976704065306068754106069566415652562964496046190992782053571384004246303751612514692224564322582084437440792375678939811093852749931729380470624897060607672732147035397326907725557883700643754516708749605790829668179206235519510364695520735367965295995740341177179791695505421480303457595087538050526326526952973517572811919013567242710792102937418261305431462318145865088224427635175497457253157538960054638040264395659682773562652127903384189875042637703010654013092901172915620793353439993921215411845611257772142699540261708144347545921005613541134563778089580437356226554658280264232104910480412897231042467076902087325079496694997516455077179349316660627145492474504772859974744664978366160855530206936831497766169375188550574186744420348093900879230764610498026865484299162844716558287492656940627489754028595099883575265248735996940511369062876812556408366526877261396514418526250566091913502472208308672524902736439091472148611197338008471692656247829636933839190783216267494226226065066994856954256289180683508007744007083676411637404175929476488778509797282414010247859456403960337216814088530079547983536129586541764157079555119384587914661946659700609467143756520130022880952553777026740883636379769777413132518544047056327685746621651071175030102814933750339184939023063563166167327209972100923953031925091624984032652664674803182703678569862267039704989653389053800365968079007573141051684943778638763556938943267119610720929570281508168778844192786022675599290844027557477836669263296930866150704375930527816765982838887488832002408059701510429418018852555946580308445962974010679081129037467779412245304591403366359747747081700780827509565413656967845757440025991109463024197685620002378489066933207934213532831433496263249356911703987577611860883771218544894148216811106983642031932756179788187891501069303095508294142215332165530914508797485281157374427086568553312057798908254749459713490991991834384788315255625900919163712712214056922456258523096781666961302410952827492618227873942611758947120669910119909850064946956474807546971263174404384665270349109757445473546462432805239292324582550341108233692603734660309356198879996857798660916851737048131617287223021869643692940727313037123106370733529198377334490849946298230622301329852064508800147118096770238856949997373691294481479168982826487588924690065677330032441266943493123254409412169390209831367782435216664987307492839633672500041836704545375977842450372370505878801705952983564296373027678561694721530398447989419568086318265802712026373762264492188562279660705271416723153419374917240782480447624219354144233788292014597153557524502493478374215391486279929552363964892723578224856293554257897196945254018886483930663173192435079591716733611739715860159126473627578951863619710686214296676758473420508418138979068172171844737487504352096510033909856893650765304098865318095376182099946959128210129679030325167576644859634544621802925637593080412121869515438590950905939335034851880486616836824255938886110089140018098940417173826384337669257979907762647931118846414798364897865100944518085873047213956488627028357387065370035366649354428373095733382804233471024442193583738278136569591262379921722853912828992737006194178339397100047565533672996815775007649568694816223880226748965640025851223795865554801892197918408524073937975815084577493705065419079282756238592810293562841251653165150709618737206466168683663126754505336275713064114735538252815965448086546412542763098557629376747956891143537596105396956515788044369199359915743105861949143498742802572600245587970066599444116163890501498386176219538887527667140783382340256747197617788928466729319266597457336759632228995689344576037094997488346079988043064343977818194422947833756871485909181754637997328257192254169005596614677226485902963788589298099358471349028132892642723888288035747802455237131391166249129611629176852660902660643354225231757884557191369427809516065691948019932348265484813521366392948737626580997922018047925133282902689513930038397786434399745304537872441501141425144978292941207581762077830664036495988725970955515951411730868703619819445166635772646558019471861463829175773084074979058252191713937147670693058633285456881596397893256175716989630645459847447626689761015022929455267299241927195187196796860324663724329749849403489233633150410236572388787603207638786398733277043636897833663211128601784337422672151252224597415399785053486080040352024426741064521771226988119414940528604828361987076437830156443028851295431738111613484473667035444331113011947851358895230624110292866233591727028454838983101387219649558069129707508550722357250626037336716583037856060835608281072737755077932711709200844199820200954290257081124715823536634255364544288815976453301826701355894170418968098712148808651380336257631585994610906716745283633484732936059428430287336875314383803727423101810671281533896120574822532501355119695848390820362996951649799035216729900155857129291174430220980965057368596741015993548013656427082068534445114266687884888228902147467839192114524663577448950022004667066060146989901910763832294716141969973944456845305289986792435110354385594075541626099515297772265887233321543764918840665286794997023783366465166027012549142347263150787483617390509141855360848171581160068868072952467128892406132974116766692328770836712954604046226739063051001309680340504319712101148658503575923654182634675242588424458962254447968061605624829188273383019988212715691464627123351650824967463454608506274755539001179550246845830531065312468970322584944963504883331804959765095546236422837653249857409990742416692640528762699583565100945506839541770233866978836898283881659712112559667763224910014912838856131991496587606847361193572893994189771617048474522876295096476185088605709535228193052660491629077850789324301100918803807486602021677300392845489698967231320409384360990134061424526861741919134580914537659017941554303772067612811594878127629499530649488097916278748853733388026277353492070073811640240933956545373482677024607001849181073746278037704484949243227231681104256177941678727946745604563764253535547038775620142835578274685742372394914420247773145944966586589873903139522051651508405789043974418139567846237555059995208763186511864378383036866755135640963997078418529999003405893372841912323609994039088725357523508824349393557093169862200766317125816437377657351488938764497306539818518621584494390265445939459812655554566117246753460748642595611947915784387706626066592349270538820948401937165779608273427747126710176420800600810145137524555985240210853978498657112328107030733584047940372234505576652304574518553887550427690987627045497937053965217058854585159288726419015522474065956926157671723490961533472974268584185159791412426913607553788027815057280314763082086861930084399415790277299977361898354979367568051518903429512009428992237922767062859232182545735221204455729687074389682843225703980354109919883332176648395786824908967163593139299850425031039439641660910728704758241740059137312180533569281189786810477285907323446119001195236575757326359366458140764439651423349309859783908161400584424937809014948001481871495251137745024980426884043936226390293044203116093169584876862565710751199142374482369811959589201099563437861803705689559180875562638455938171603992220946376537201073698192141183410784326378931296811638931210241688631260054992610580403836991699474698344847932130507926416279677670169107703274346067390013713258254440636870582469636057729869485785832988941126874359483884184077578126157982052627633011155625618804530927235713668236967419583432213959261960975725389396669955348866254329495093296558810389267739706910627707330595349730583167552216854126318270864316667656556853183166978981227027795471856247685486804051294560994544225593546150747373745455073708710630196250688729861632898692141732541642841436339378824183843694940214401959157636373269735390354012277989431947068553845604134327867795947609102273465154560404751993610331510108591129670555820842629101693540587770209060683268235449515630936422016383374194566800535174643720650989828332090446897522884392115208383706007414914010556025610343174814104933696247801042913625703033892610633324152495861985902006193304050936798818647318729868728024086038826990007969854670175338618200737720267259647628309541716989377099083105352469489530969235287664641628844063116247816368741729549113137922291755657052075760989785171284075993143320969682716923475534746615286449283180336073212122688507211451056401998210803857229942504968300796275682558314624263088072177438746049981092474783145940352921982585293808319702358237025110372669679872090335395349951043761104299855850130094750305333773423671603811719711607811471749201072001675401907695336795576496263091235372631735292168270908973427005122425200709423454283731923824263000419494154879113330784293598008293106525902538360218072320188903550850055791720094530523114318642721014722752787981616071572792586882346515891474497071491238658659442744912613818934148134653498518260167695332752244497568511245028931215096217920403644541749207981912290891217260210272490146324356712974920031314653093794217581827755354526622975959996088570422828749590508810862014175392955303631968968130870293688073257409522392538881585355513357117292153549025922068406153867291811953094201826108887696096896655025062016047244456118376656713129160215512211938124367425255882289473520934106479793284096464082171019076308835567827150016593869281494968191539760445317854136780030709861828200627525287451122658356550430720504491004765280708695754132879891008197195552567655621932420254986974912142984292835223271473128554492011987200878924118284533787210565367250425132434680962002237786347416907778240769047120693938463418188333158242735405812212023691422366038990251771751725127551202376316132519704800751290887107953577764519745903812393349733883259625367816583934276880887350567813731810658443348596273566696211429802707294834930050366423338856102651449875337580001931114972080423977977831330775987637270765153768710248744870402555909503995533932153149789978269537329017596654491724626630353970634708259679360443212693443177102294483702707419750453716063991498085429875787392338576273954773236342793250256704306477293010556486169021758179510159590012221722274994043584051779931348508968404900310546646226039922702861534346082132729738316418042506679151629302121709303201353705711472580408922094881552767481527729242867073578531952882712698015197110707953292412852162727979028382274659212550491361173877004507998530531018849006956877170901365817483569479144102240099933133386669752454510420771215248099321901551325545687934050697026222949323294239732091410975958754895724733998304874322043087650206656206791851504813242695695489391040472504351902691056734197609740699056193575499654010594876045833347486658531613767492229555305836611712900327032146966456571018319696771945007289219752998096310311107938317447557140197303607285996478762208427321202058961659908897632637029991134669873668466721692821723829523860369260950417283807734825911696334680621653867122075771047725026771685658487743907210005794812027606959990436170794472234220786588921252088575204608299113599554211538816728578618683059732247662062788229590202709733862069425617280816545114781257818553930407310198098332611832051889749950304899985444157964557140144771933986867994314016517977763573674951914865827230094421997042808505635585691814420796104630220732786233105204252775740285116399590027939065181346578819969105638004472299188507835190405487454509459471978757272418781528706153027661282391012137281769484701188027816497714168765950623179847597384106963020222892028265094244004699039293605381974792898029382492266803821779150701447209115834354961812709360687967656629516958857643537103968437468220040154999442462761822798091364369860080776516580020522904279776533708318011448175354471490244340750055739615905211266440117966273929115069676435270841184775491957625042580881496512196400606890153393095714107551425930767541033185857284668637590066168268916235844469028612243507534073708557801205424954141047877608430922895173899541552857701717700409691390396788241176291597077482530566867763957306777555490390198829636606628942241103521426369045391302964282402177548810211773952891303970243617035797553201239238579519379878286964420571490307962759197521396925693263475209382750643059703954189085207264381774968281930830862819093647805215512017219744665882859363229256498843347226214180928748605674589542656603589601985165122045204541999830010809452923408069843906198128131464511826878608124130140416676316839245639250960409638021581528548813792156433112911948879576613094958715147949169692918986386546075199976146399835984339812576622361537573517990759369346043944992307274451748664597445825214388038836349199016570033002026709110207561208260732913747990619989660427322784183162351726885288665196521401905408968720599786627246499326304140602212458778831930050049505896838401213672620001746054990972723317950403086063334345606153719433241987032713308957648942966081921674764145194288624271649101229532359649802279535220834328226139713362622782360188306317815864862881533596982716594910643116735243578485162942687089350910154760196749608696288025224971354707236505218052898524975032272366339848352671414541326124791734727392834294002350573324698496723815269286575462140073016971097435627092619847474028975232743683507042554687542376809637551490965419990875852784083025073702516127041785539472236105014480777683919836882778494715229081783931623538697710790019717039761655719952904802727906800179286089634061371038580795470539286097982872748759492129361727110901843560572116539732701424679376792886484636216775761170229287042029349688893717266278182702347842977722832110552395724811048148397093566842033539079926250322692185484231591368754410977330733119484046226249636681808089955741680442466094023595600356434173657947580110434984757438802257838977323056116902621690863751437712504280757695266848931843968923675339283746933096565022957557153265742220091263756535116534719160197992876153718986381598993499756072574598228362679247198425051227236692486947444591345501404924200342572251227825024789687138333690230432112519068812285710775052511363968399751179001591591518350721345124598948077861882533543673904222921237848110871567292905495299894128218649440699812999906253288374760732324276664978896564047722774767478054140934305353663573214878712125881288464151046717760413032342804692246706810719162901192342003167501294907079746129340796861469040670200924031441207543688639320027942706236110000624935897332072391067050740193561022495836004541394453965433756688030396998543439571526079317186142882747956044884286471433762904468827914249966200511857851744172306957458530304988218928430520322911344622901760318133253447217636747665552087988749145187645233552190522487166474937307452590530257970119238308287647960251967629798241860030064586003060138822099327800716813684310904300332084986578848515415941603444392305464706025760837123883107832184932959137503480281424574066331664898809514822407424547093078176865477322148136735547376368201239393780382676461907801110444234933336195848894755985503244041139707667098515382867468786966772821876291088458832586480249685964370236725874867443514778867868757692766852571444415871108884134839964605067240839357369427485455810728415158376312479787183181801930600271567330055008217156075101373313896832291652226178490200023626780395946367116479879175063746403885520980766114163813592814113557137089367000700387072619965414284810390366216229823235597655852949166341583424299528386741146016195165659173154314905312158494221911752459146835978135447431351905107281938892090014762125976009547732042334686666387457576543308519301843447162390121347521026693186865521740975832605873827641779467354575311657776432351452896416563269310974545076271008149879134817900099593177985582585671179028690345845553400081132643434080633042985153079149720642031069187081749006727878215105790627838288204969224228535799434590011999909003260839685640902803289514887611638014244399153341465791381958726940428552580589209830262139120555393876115423404887946717809018196240470105175546756846037390109155122062093533676882779932258924413017342846570802953902329756225871132315349305730602059775558307150720807400752309818850790315530991142830183805722731060321702053492176392582529461137966327944423317137464911491248592053119558189733299948937472546481465143288902415990763843903927746386991462925185871449050014484700279097721590219476476137937293925026525428152009059976586939410458267129119693967357604955837297039706224214361135977505875968752741399763448901748103048771659666428815375588023689860699898339758605923825038888784036361714058881508355800031989419213763186861773463198605605072394657250816815490589661190714691535201700602317332353108609382354756860279788302785086741058181784855815108352324812021251065151312494362366953741963629504582830990712291882751534547572436381635504698663919832955829025705023634610457943695054382774522910088414779407500176117965176273409892641518749989714418638225454278259182189952732031838207198090160341716899550887064336002590869538047378066012067957340449463100549665567476100406561891771585324424936777270848960792159325773507845691056137779691864111199603624080096909978866430993138864167937381421571496104484434397379146236297435595229103194036932823432293478967698572377572233263616827462117548014078741777184666378376759082188304400831959861809344105380094075123439115673025021888410418874034141168964868522182638725943591725697251115538684960090689218791073745088261133059335073401523616332553523438945172405179324542071509492259279155206213594182650439453496969431672239633780656023481657706531071552156510280442843081287605748848815580245664165872041618072889558897923636810100752824836971205572966781046578656203187040548218282968472990059252747600113740751892082517836967680962141321952705417992807105632201054411331326557353045360641997382792108072559912789385652996744824270494898854685705354240079504102699107160718200110378862281382309736630552023948396746985187251890774516007625271009685563918363892670156552184202700201257028345342761390576004073055976408305827220643748401091909268139960184498369459800120397010276680374446690789788957174594124238416767978973510508986519728536395223666662340814008805502104465573350602321541840743971011995964091089415110394762220922201644479019936639809211899585352093030810574721737794379744712179950293447245974223689517186770403989839740763588595795035005190188629015483780291206625556546767525368726479560139741118857101785715370159656082551641458737120662458651622668315031544388722277042231945849652600561404522933931016693483771803942122533745978322562556184386012866366660278911983277115407526698504500141233249710725642160473807067042523991389784895020295176334247722542419977073210051714596198454117714726695044778786856311647239180175098622786613142718111572511765164831704210207879821856586130806580449893187519139853364974635986059518565527383459877536876300380583645010760427147777094656226697556869146121530426130820134713207541910460308539486927989102762143633348616154587753087560629491083181954962864790247489787496651929297192745870052628029344951508764182086987941067747101981665065938860836784323543896713500528015629702258581212314843479632570366625808779419912734094782045161342661544553002109895967853001180294000778752443285712726978118780191867350350410480050058413525712396023478734912839732137314398660375290819494131326914117856413221450271067232070600369505567917064158321079285205979810907380574236960773871177389295190420806445330334906453735707880897868586976886801005541491481172325699273436917824725291120240037605795492050496558614892427013890716801185675999701677433387429614196956697095960746936754976657739470929705945288046167419604423068458689494154762760175388119881395914239834913515658311131104948471098511199955807789422116096454378243265645438900201665537832255222047052333255879384874635642829301148457101465679031885428820136137945725249432649826196682350211496041034429574336188908059365820830915569090210037546087910942251732389148923193556306032529696538354600547845761253043364420775342187329372987451835876634287671069863492178140598705817560548798276619416912697768598256250746561249603939465568551130742103130213892246589282523764238977626886754109420009449441222537160845473175384821805738421966220150015623771011538765845021889890262137447909099223728821785492714828401481539647968977164379364841915927725652056231335809975211490728508735653966784203904084227201047890233472173649478292448880592863928241626573361482176615753794948638296281766432799865997951853315641691130428028919095684263085550541909423969540213875722629840256346286339197907991337090601705287176479693434162611979419832010487024375164210855019452813753578396521438291945127141831452528244145653271846039853491192364009471008687612409823421878843847088811976508040871279736228635713254678861439379373100905933440436602747066773507970997686131986050267949674882931746087387121203289120188500548055556495005794960140503256713121179057952930259162863948368240288829578433007668272201161359607840940671338564369011093912320258018705847086624651011673817639013212216795970570065590849571153369270308706282073351499906819603769095311168753579879645555277913105021006226717656945436051353812414170089987193514730300872268376974570753455030731145146044973457931373931922804464768801432358163421262055696698200060971697167944011255884284254535122526516478649353767429726887478391086916997722030571460410047208732541587883073330979720038184669553580491390832053936956454470209563565796398594307275807300952732159684777522205031177994599722276778222280211460441597363045369386844229025531017150872814000719305497432597494149303897212891351889573494680806768584519464545612500365829215238092524402307509525998012493535306317285514546936826542127358499000914582654513449898141376815518399284739364436580204440387004844453626492820555653839929572586717360704500804486318275098839500846551730072917974722152252595813211000432406928016331573012250587745929086561258267868111670803708540671005373255848528038445399021798956762415717097823851758906678062337874090359762217936803761817376029346823279550449537522243202728441492428744316324262133122337398223616034926532435605241242351529355780112243352569996204783807231820848968064379694008670999057158061156495312568512267690846755580597896423657343530951863659517340841846048883775810769520552883978549321370155476291201080807619048593498417044638412684015006940464415302934467459504045306876199194756344543457251176381971836447960596993286888943379480867902835578435355536085711712890819880729007804023466345846991101745724049275565273481597123615530852098954562058690804729328030387350215413468542524262516125865563194437171612323696854787568312565614614756158794024671110438755491506297585784086558651671001908446712513089597155948669428324601350903817342300908902203922697428648092706966260255927761507430438084355351973531282434603842125296031572419742043272262424120003377651021413275195422938620856315947887431116441639426667021012784662769723158327702167589618587162336227512258914650998070479408193699100663587472076272689202376134221568535827745106832145205651118501681263437942354304924491269827996754331086034909661388366392207395160773952711555795493898579953035177116388526427869214424900570648953661468980262399505561481546706779492711394262971664259538225232113723721733541947327478222500020835705822099665346219246112844842552661901671975387038162778111312515969040388555031131205871760122095829594471458179621303717754056694967601941546299280609492092143415901988491648810167397755055025052539493243374376579412174240785305899413881019839125898466223642016662986898758930299944239438850616205546482006403236927118590385831938915936182885883152624650114330867331483306942444506659379814573819343425168144161624811647454384840009821520112396966724426579067730415077399847339442710375647553460889205705030660121268611617542569287678315562617969149520600473232213883060091202948424016066406891333170880713319364061588567018427547190549569706934807999245716056974882190190043366236679763205533115053189574605660121056699420900647071992192240462767836525639990792463040405686638095048902674537991674892837663232504314369179118301267833365900266161159905401984082987836912673769787107033889191829617212561084313596249045684113664041455185096208905148469971228309026599966598481120901582815914433294006370854127535358905618153174095557687047745487496863127411133816933628999109955615146753744218316447964202148023220198916732244414371820487952634431056478348730838370514838317419405573454406723475778710396943833084184994293214151357223882966544020713091052936569268181416986609128957603660147770938525938837975845800419896447183514012821868080176743684556836917846078316163287380599650525152437745592686421295922374710222395184685273247024976952025884099231555685148805445175487057662376588894069299638154539345780098747927024417952825357018977322754992256857700529644940104497456232504876996737499839175577244809589378548224723229533586437008492202774582321779085692914303936480607116346814828731347621498728387965874764774330383145675934083018095340609568464254983645947679689877523291659974735527860500249720656879888726331337465057703718620431737982963177711011397152737934334014996867224140543520960547808443897588084873679534821200812111698282396769813635063818521532991723440906661367749274308736008825743218326855216887777015605358004023677490670319902048854060953650404665638489550060449953218624179438691617208449787997235347606048839611563106816159044290514119397287440796302324513924432185342217172942113859003214857554340805000463557966497507556581858862203162040048874801007274674210083192205784087929797716770325609300149242465542525514608353624432390810954182820590944653059692592763397463280780586332026175584862314525223444842902731863120103245103318888745207634367302175183257102859710860199392813869341204686722729689535900698852320299351654935409274257434433660422268122814394907832903251805217541727809121300730731103789617349547874530369906586118793204086629611290303568104474496153121099506690208361550218567537722992033291368035845255634613902434741013011429524292311952502870475078614032830253945195783982875572839139335041155753336787880439129501284552133232283410474343722963770518650161197924592208450819808726951254367630086684384942195545260669072743419059014947010782635694991000279632660623308862074906334891504298642173391085758024071738156328089510835922701110122736149972870508929222391176979087269429163669837912698949787062725235646113146646799995380341041468206993895300703155635330365287904105487809764097245047038531559583891678518543388112421153583046334942715411660741543664479948799325275769418028088150920094173715672302202794265111097897573581944824648773077668196932354826902778540141356011315593995746531141773347513593739603926951907394081978121169522590139794372540997569178289455402797495888075122109268616022199802562223370458301171000491283570632520981360020996028055139530621752713206912861044091343003611679112613828642628174427736682444673040025050815100279730712582063950676562626366141117901175995445631826803430077102072751874688113144083393327787966529113555923449420112859956883396316943867988121501539951675053992113584854398685513517686159434870611251795443063578855259412415024788980037345228958025022364378882422709394574200677529000591535362517997336473113893932014802065980291563468346996160191172241346868348038264964645832304565015673608883811730527542719853886020091792974161747355854006786308384358317570369835192710803980107314434846787211089618378961800997597760808584564056441428462771669464143755764710771430923985832135094864232644431005082415885117029027054197582797053306673844251893059845017198220140393217839979895080720100663819063856085452186382677592139837646788240817254294515108305143936494237724723362768155947536565326464545655960373107414484484021001617469301118810708120438972132119186840795262467106061637579363270858927168540789733555420203103197668514580670402412788975420535315912769795324292812669155028617962413260081122192957453404357865361210085965348476298134530057128726335906103746077458560014434515048068981959963214428002782295653835869998598127562597976003804983168716830639294941503172981060058577170400657445267924008908753761800261868795441357474518195620112595813002062228979940120345497209226805267544788445363198535320435539031859545840493915611094594563944373503261287407355056835951777506475849405900048663163593947820590884776926912401783325404059311411096873916839685552155124137707520280148664176341881160612385510564269964108315935219137818452823332601241277959262271607108441921592068272514033621488207891977127827760776273947681326952937809112219047727009482969465765954324430794790025038478464423871737843898806570509498542934607965000359569986264159920754260472780269683496412884241517077443031624758367467098702998391013060012517025778953917513719881851652812750724033633967534933114499628146589214939394166886298706718217088702025624379772790222780132997625210406413134398142862757783470803729743883645600107933723979705671829031370661062883521238325482889051204211522360363291235922198302125672666568262524679670771344646353426040923930910776813385742385700929166580949940239758415195123991858161715046061041475332745629263808121017961316568700775047670852487703530113334956206441943058442503155709241393373769992848300893649934465432879805122510726758084859106422521702273133315960693029051912128777040278149184279437606637072149633701741613629349530326300198215868586112651877135566879634401364793150542399391161993248866488124410678153008200098319912971067252289202063621808646593827040581472508665681642959211858567625077164241104584687140408484687695535182579960354057842720302940378208510663730802973816530465816247404212645441370083378476915704504751556073488939978300696397311791256331153358250555665355813972764818149404204037190721519675947194992222795008469273680553441018060406299827977069951188568794714554607776936798541373566230403500161283867264188313124376626808540637223257263312909639309948510535892601939446662573888707988165957095402726848608375653044563598143516462529191362750736550206893415286971407116443361253274717575458548234825038676341396461540756380694600201160076657427938418556654391323879214299447274218612974815501259076771039632944416036785534854496149902821115074533344351349502925956946986379058485449366268465250073369232961721731073646213350419932480136002988031125379375990154657760006788718665763751664137247871446043695331875376386406083590861204179186704256105782884790184833264250277966611657365494035069230989960097213858865689668569482739741527629655261057777053204265642259002089523910859862975184997322535354909960521838282008506644632418717789716706067987331493785631417948209688239468702863263778056347401948636781734293743851207314407754336632608209453651104755562403307760090234251540804866277654681534936766929981624472267703109830111999897169093044849085787740355885846021804392774921345566200830126452347450723424186676367591481399849529353691514587044633710974910047571245956241818796306019566534650562037147038230988992411647989205407728220887329360053945313265088017742277350986644845188179874212491286273926924042458773183642332032012552712810681008041383491532385236252754694174694628422308464266852197718755225910841291477497115716981946970576319046094796477683751423866993172619416960588658607042039931961630241998073457032037110803011551230493039807579492933404920638054726109449029638407145060152910605854675442248130370038764273667183526579490487476078342626362520495749687211311646642890808478560624369935165578140711235990042941351780055396233947927933824029897907128869502416445990478764235546291218163929588522910830318897959116883609924326179301806869311903238219875955175311756546835705650591271689540660155469601057342649240318375221814929841973207917468971365714023668622354257354902267506952820984722017952670105611963495595200033548411757199848386066569445336163312555823961993815052170102528109077509000192848446029132439307344493448305806737873771833277275835253840869918325322110198617381061630562512171613264048942551160431993671030731153001917978950956985191495189031640564750153387323973474775041351669128956050935303999885919574383297514069931568538587628729070549804377046059965972755919953964904841853148923573032191706757798044356446062811070439211937242724213702632414826836444732430124486353170224516569521222747841958350080315234254436474015751281822203835985654904627910866136525235371286345431370422347431013766319720979370957787800085296901694850078115299649192716024355214759732821571541280088774745382005700966076633493446658555445480546985530649838446183533902594753670494888338490487522053956644768701437322978017527603450129845045453906647756713532170245997608714253936221410055849827559975700043838529753738610167521803129787352393790475903427968235466024668368128467194203022576773167253271621548931872723696446886924499803627868981746414353809649296136827861632636261897322333496635967673880643457502808468684466479417398542581230009224536335177066422373777479590398743061112587278449002852120816051147573573945495275448315379721364866322939917110451164565254174560925279257962813800733377071066478254721572632347046456032772228218056480428324229470770768428755819687300254029669331524187370208052922320043743613067481848785658302831699928108069842715172315883609717054180318286385723434265631902807056367068444671769006143846535341127391477257281683684616403698180063755248072685184556229984016074841086459777142071824845735793749759398189748641653395914301917113075927202077285611527413174643640540548713603945327316177532927725859527538454232621740465059866934835951022186298065761583109584038622233157238302431364808811007579166395698848435275213704676470209859703437313880128773318855961797081928730591533296311529748923542432090432644058959357237346242239624365243507192032830573947264417552865900578713166552602799359046958707175422023012451276234144650847032675949542832599877403197153000021009414782073525970839331539283314147910634612361302380199135644544740941822721636794240160989560752921919836355289075885131344599421557140614859477270814262751616872495411880897759200491141602518865040764215220768544365902471292699664361368984748711682681828633094197145048474121228801581099796133477113469336028490150006666243536602213870903152806202552896207061775108691842586713668664641618883370823153554457596807467587651014335460322051530806632685844277760058183581143614533460038903450507737474250055105911187834622443709245828099737791103576401261118783530001994253360050255833824090189142518081584987357938268465604733109923341644628274815312467123577224966159905574602854539974073174294671431133226294037527950826225665096230583182761539031472896013142846831034688806859179271476271056115634868878866246680530280891039583209750617565847755778392712531754563977617397804880580334246211330537827547850807030171822493412746686931984133173551166325814038429063261372333098728177415046775225991208502905278333462253916815707579533220918192421472308387130166877498261140716061940166132377718158332414356655793917665793464661959509125922512954358433754789370887778450351802285277938415165777840597176044154886881792956287094976738926845912702409359426547390099256620610998191481507542392633431167627525036814721785388936783149555342522024786451511437522126306457151847578850029056406682520536220234115855720485013307661979496067260283448962765330415391833914607529509919866124009934379694464582736065788335323779636064887560079462448203087325203508928223023264037692576951358715951496924193237541887272495682851733788251917642728437937828390772799610127405612318567726634819369046064058226525074285809439250283057664952895947031558154535995978421315457834299279065251215683612229043301810462015298797558566732713015812218929525779034114453352607723797349980298468972357131267929616524044766758356277513046384988038248307061787084043922843424932949548447591174715087468200150947480855861562276756550160186555859967113094045776512597040343564151421702580756843724071932374617190505772809083272775975091670203026546679993563775752206024459679132936063222879812556095473051668337431131763514095304945638377372578609325393615645967547374394438248353570420396065192154243274143517928469230398468231328479422507879914114778136505481015988166589356577763489677754232319575383096993914834282157657472370327921434810488163342384170972270631660743849563716667849034865183413622827179489272496711030701921664241816038642699795600347129238599387788012595240101625937113769115833320037759697647898515430864184398124738259809382292203673014953917543745266788082193769611090914017613198486820131706180523525198960684461249098588080534025278823226304139054914681291176338379943084251948635440729741413424168260401197555445673318530535903396492651763796533240345908501492603948061744752706672060354019313894575142974268094638510550532865612133622564023408444457178927156176953198567226156685821324020020453573812039667796265728296675961433847791134134930083087821489658716444453624592244520349328417786863703858628015072719038890983262613696703242571059117492150796576162316904335168460976575756564231000771210993109492759323229924377239783187829402835925311610212225827661215297448177673699116584554782708124701539806642513242864041315409988026668240906310168016953313540673093454853336135291282914020029859584679844513495250108372986423227172175482779100751771000218764614776232980276208712180489101456687746507850613163037262426626902809254401475729493651206905235666290888988203406192426609001062383840076720171661592854541015343485900703703746266385035948335522947890565758832210773044707171790357812304456906873156034785926425195930523436880550167592319193382811775739563095815807298744758808547059105134045662770505799847467057244503618571560212290913829575470593314974079256368534618672796767245495991084881603418155634855869187848851919733742459544807042929624546455925998077452446558990124559396366900116973898250931401552312633507812433870650033895837573459410965195123950206058389301073427586549206303482310274073399002457141501968606327104757510793631062503214032332945134131614385282570985949530279191971907085289496693273792750269010433406141352606586933409120665418333817531242622053467508198065047756005111201807073909147247050650972768099723357465444412889667272599575896239704322894573159499070871845728702047786493255186712057107637066980883659632431736420459481872252670583028435572314335244118826906455954970372725730651656885703738754102015599081752174268835164975170728512397209190185226736188464355320979352118926976682022970989576391598313079569033382426042415982273832090526841510231717176670562932911824334232940990807454031628520168998132607040592393581761479622065959407906263014435660629075025824244885947358281167664152263140316741107131365272722895679588174275901840993775161664466498726587580300233802989806908180163898465330665619050354418207602174678759667753967830615980722209121489755106334725317717414452138740950032136796068615921353854775486239934853694350930487746815564047833836375331916542025704735593026707338191667217074209541171413497394096302350029487825014988461618317292189979988906392512871243944957915066124595112945908828079026548712447803513221527862771772902749743996619687727726126956104679011264769522891382184831700430193604277397155528793760214907662430604911105137535130922593342585674094661103258358587497143722847978631836141585903435774452444570404828564396121542102867952223420882654684178477714484318528095322939487651834737286835050926526442150498690893931161408096149654482611388736112185487773967937852590556704825439180333941155077321523144078574261235430582206577824371015148813066413910517387458844680299113878375400485438613825292102609685346174752056827615012106379864720397162512374295124805752399462017399386274846356262390303800455168518372946373580039293473732609751230001054263932444628922747529830777504157317796777883617915537915886487947938302814287762305971632848937631182664985693149825024770571207906734568628057939085631751600079364787761188402987609477056989104775555309141269104549591293878870068035129590848717613531828384101729995099146645619999673967053760534424061000238469626867668786955162718756958513335126553061476837213905864355479052712943574493733391791082107312217441046688050685948804499023883810537375060303253763416303614684042802183672608416889085131334493767755042341396017911590915629739261907749456076702369935351649641126227758309085199172380594507352585998995304135838644085138128325312495066250797884011171856651786739837117328406045824463635875057714670688180590316134708989486381122459968451941693689801778520327089386001588438395127996343763578090939129930773130064147316888390845174385825790463222858109428286491876912892000945121234882560071755780356006086033759622804792396801339849581029791305067999552394215454834880726161152820234016935035054938608701547838899838074994002606345737970507631017177083703519291023395096735722465257070508558965493508410398204473229080988339618690800515742742002382399973206954467072357515701823515038743625859710212508670240191391132312934588765797634745257341437827550011901225185561250584088258275038085228081161325955977047397640660847368433113349192040354016674733691652040372256491124278130133690225655422449218857995398036880219502234449393703554667545768023451298640905760314440763598366753940918395425062311558519572913120384220874142329866659645149828632978408534891807966017829129802069908773813026899520360855667158394089204117421663495596716199106950594160338488388268547203881691002443534586047055707580957216803911179457943972733815392999745987470917031342770905663457091901422184320018318355455657010172957179808741394285703435943132577603035251038149359599997143890748055686020686010949320455692601829532820107082971664113691571221651442928789469638026531952835541038505020648757230946942332545546915294819229423441726151985603029463384063530954538629039649391419973128960071529378130582983754047305643306185513353059182209274143966729433163634054329742836987859822402547163875292308284467363021401325299501924603269370769327564811982749056159636643860075318630764483115888489038267115255183270156232173286041399053096561853334881221923182441151157510424975947848307222387843697296097976522006561064420520877599545925086333944090999266713198430314413171099195179866271240234737468902850518857174107983846986542250059140483153844515870475199091659439656903064253974373916231970954552469301682217632723222448147996013379288028159767983706360161752696080774902354675154782277463366014313643088843661181453672819395488665032494442382126176311171142500603353733384093578147420687690588076360104539881851429333148072636631856164083442422571809732052545433220315282373390541081448500912029868971329858271859664171255986353211711259177272022106982872738880388805623934005459805180750666899040823017486112447901679666543723153196998579148055954517080748025879950151478060725227773709737282390802386442036466932346803203926877577726752310467673385522962186279910194513978553094934305651282811250665759018171836191083975962313619378515543869275611305847723736079176726262670705424798105689685114333238896342291834473704030136987373726597129524861492302928233643758691857142511325319292270317487615778581722321593941006194429695656894643018062106844079177157510803163575422906794546862141373044112030333062231864721040069961147563383925840065702947466213397624793674753915002984489153756757368150425080897686706500948178094474293761604431647767782113476077051633348404499519353912507657360702271077938765412788960276862906733502956992178661078750988254098133715693743111777434999760140733742633870313027743534492786657308523155744660699445329685655665724434025729709407272480151142161318580228362300207234673309120718829384727118087959777496229816629397039281741373509968592416838286715703914149409328792498964072609215170022577310240380172810608960654162032585940961960167941453243409157253346486055264295943830088950941170974864325363800855805513612346552321569323779313348394700116938068723209774420453394580824324310976318275491436147846190185404688967165410413613199264479836716320677352358206691254663962334012976375286130972758988933130015598399057801163751921310371302333852410466683291797621759006695274119626760445945074520173591203750501243071315313919606263009195100780173416325819099828426077760434567170690244588095845817926544755536717384493259137364181670353046684599521742426889423115422437731256678213773418104383204474349483724097299767243867949487620927903354322103390902336776281463286613972585919068516266470946362504351027232528300034807773359360193154020074140137697747830352619872763671932173046047062490693604095225669376688860220208342181416182510875610123907756326680568790821416858313468589690974583349049296588046301281550468258208551571268487434003935001591446146563442154798790791004169441480894426938611736087699925133033678943931479135330051573633104874805333364510063117736936750940507042152050912019713878609741296213656746081022463888104774801912356148563100251422833681448880035728006565375512469894850504322498738892453075874335852201425890526477423490037669522130967531693362616841604503288555333643355491020560431085797267891298854362038522731633402621148848191735266643255596708110444624588445692894807805640981652317765301410572260336288699848674888461089552468417880374301812625725022507027910645647972418022002106132254735432169400878547124423251853796946857926387120912119162900753185534085647382642431526807514333715464691594356622530944208155041141112002908460410583947539485955348462426122210764450402668638553590787381393687605067551782697438748715066017312410793151033946693226383678672853744159719233561672883989288541427007226158686695234334193747661085701541979272263758363710501811999107965999533382624842742266552060806781978099323800637183685983666497314721558001111260337017270101222366306434519219511343076088051459155486375735587857740697625650616561054957448742262773356928449765526811569438867114117747594924321475997567497072121999475403072101490757431650546805615290750630960050677696918138862656186461156969307763740320906736604819463431655597410938510946693431529606013099121978992609202533184018833440705686273422539103976939838273643448374485172528560655655295186306978149950096017673800518450791922032794416169577740458066443495133193445712360288483832466289909468791123373180647202102344458027549451148634075581202438708153933066446347543467210634454932177641754567932930329120466305444034004911684447343770694853851060920870058396253250989302500126077480318697684124289298226136577007061744673395896322497390486854509855637860433856663598480213991614688979639893970247846597462289747684741887496083096237410087419001417584094846503525786936427843716558409582582985566121970127783661744577052414343270451311210703110219244473867604615412888871818296321649524421231765314188046229074480776979020056265080810577742099883478010969533634614151992899927536506818915902063610718766228964187906451385628911364632968396587537735643786158831446858285200464627922204938709064910588714006481900889109856495235209648334679640626466272531185804553331493960628397916389647557383410862586403972380185428732641982240838379646759873436832628175984376511034117187906336583425703956107083633737187566954199141586976199423430203703353674519810151210458939521663265875333137553389459731189475717339212875031285690180749700469508723107130018565518424003317352786239571096275164341715951101298498698530773097643794598874526219787073455937759496435534626385858506998886919428273979893633871410443868650604596748954972323268118527759805992348195291302975692777586599157147064418560823093529680941857467241109359030126037336960188983359307515895453417381934367523792432588207576056678599709337824257909934912224381334465959097618485540283156690000574853402298543634463760119525375883875595315722196554219040585967218259710228614407258866682216822593556580361215993442445181625654808316832706216830383047743470018127317902296451954068404928006515942941515343553482298349743893420117504324037049399231049647367313720421494422154382670753251527150997703438044851872183296072050217367853033525408801842696572201218390757436137583314024338294085475875790135628901906634423432621479071117670943971539355710019315075868525813251010670483030741023047812982513665332698534315272352027470699100482160772065187904283212690298206595860194088904313979917514594327013501355864135066478763415987493138846128229818762403210634366656090914640073756310835662617097592870635142750225481100001045442781780618113436351593893095415135911601492036616143136611188367977752956996914473578566987361424682196212939510993299827413668723821748123979664808725079715872657916050697738289911842787900257916329891687830832255802413719120846595493985330887948566152889210025854439848200959465128598279555588532190567774764193281682894912932292322368886644183114070650359189437193644909794678271764474525293971392649189841559564417428029886363600267248496968549596298275007564630568771867259791215794489842232478609296257236246282654122077442780731075601015053702298130045916600753846916199370342330246455232353454469407489699775127901019647723470273052354963665684324232522197236032610318090103230445594623039239861228116329329725873324715136056999681335137859914830659581147120148873847009833824295177222073198690660194009936589571741005386143378985957270344308673040017889556442374125510603447662538366054908982322193148718874649584676357633744100800249101174937088621619013981980242767276274177646804593155262947565650345317632142107336950302634648655929249299235214439732966362976104218530527603040881925178764310774359035582316752366818528626648162506570664678733059108592291943949498216031764041145687256192334741754761074944732509735538409195034934349315007197399814729344349477237672581770154357650559545240519049538114922680133842223532147101155878424411947962500551266914269231236739260257990359428389607649260716488427660384785354623337002493728902443525992723456300800850235474796384339810221113591522707892204150093612836011631868041238957188236834237094365457167901491591839880554563931815532209198612049853781001705690323997163445897664752177792338459234472356923562160346453609699816470702747683711702860577067049273046730056580209890970391597787725563023826054465476699358541823015841441095910759050785613975042696624705447329762152403208791501328329134157183232837093387914826948142972473845637686699900223616286622351732647569547115703099950979898503363872728615626507181980050982026232429715559803866483487176580032761575343493286558778920683970028878794272734949621040479485594142749862254500392631604263848886256290799872776821542196262341808647569333481722968913404525446677111832849267903799347427147993713042138405737482278897320891173733509530029350880204934546350752090226360433904382018950113649110559750306351874258881220827205346121788837547392941430775743046858879107662919539605347339861544138880890198047796603135324988279546174383483116290524470493317672234606571586902180907963670420212141300377859146944348713367108873692752432553175958399263030499957938295561052747091845819931115528225305748593161049519112381811548645834796836054490051226892701751190342716059907110101447893576173854279992956221814842469017605480971403324961738219468269229704364155704473663963729692068499317532353408622706241550583893833029220424899094045724361192146283898293540581745912478225955503830706811188942487544262715447112559464777409875843701423258083677003028836313857306770349083104763629650979561384806945108456211937422057365001843204753865114385397596146864856280558663678189515167926516753837080807730792350194084591770686352707763727293396219669659426872533807702226650336537853085810018351758090848666577461241431627284807003364448407789765328674837769188346133178381904730828736855747179127266014223354091647777347404239767706064886647896854523791453785197716215834985133648839137563143265973048060407724331918267751491008096322146929256504823833238472892034301399537067592179854273869674681766858700256281117478354938436917312303936799689807878159891538784678099191715142602574194649125869137313568279917760453039173115169793161617597096360018458800885877946032398163697956335468555659874838545660350337046717360460124958841162851745515216997839240842200993938532215910817320710467693814378789409753192858571815679404041237378487806378513064427304277871556263350392966523905473976047784004259613048093731706862591089993886643853651372525971476437307260088255470029441167933635779113301150353438360378258668751455688398592516315369112841629944832147659833032233330794666751547263286893512047482687250699116717374540522732048931257950861097983135211897163692960448261055608570517889767300325533349313775846818572502608753243558955667306738737143525512462548153598227587818626252297676424515161586396537403764381977338574178289276904291976478321053769904165168329891647839623185925738666092306933970053161073030230091068646259006052450583414537419890555286247675169775481711448249882588850707819858880229796778605449680480267348502086006185407586377264959765631523894499006122664586296152333386161970596573109338988718489445528175704228983406019636244117242270911094158538419328936046756640026075305370662176286733630669576994200619411213493340729734274190713236424039803669219024756226610238015423332425099658061274369403613602924434003103607103222235015368844498960824001096852817470400341155074100478675368842367093201661229222921316712020790008885878015792857831148303210782326260079660880399085744247636922213972394498004866794621189770276489204171742252225627353735616379035234007460653176396936275014734013661482666895231145786714773798772696434377898507369298227049992770323283661805428665587902227272414621160564383825780623043279706396081629341493638291664438729715171213105496894887011241218526087506333457916379632008009298565944598780183663546686655046445564449602752991452401383334073134063978893929338445756463454008329243754819250268763092030056706904345507128821645620523947141320059462161563791137774970119754396530061655662471440095201301496584740347877639809037332978976655237436654767483335989893051002774743018932733457771446459255964403142919386400930460043384350170141168641966723210740059995605242940804460876388780551278336205696136311633702015782542974757679634336723663645406967319629067040153026045688034731371032960499875363116531417866927130488524072239016702683935841138506571540564110977104361295024461253900182603278657567874901557250369575151657827524543355467827089723439352996812316825057628373238160931157301789559208766136091901412234179974338643778741356176875361633534049139220856909178069343282232957344444444965104667385229364349285059933243937154605243899664854899754595120872486429705681891601002442580273891292686581598989005774185371140904638024103203553604988520892219144013271180823645692863126239489551682809826395588676093648940143923220620503421637175435178399646460192084797497782322675605000193246499272324333696424305998931629519992881343803766166245541997872559350788198843896109384623851592555249406539724339766209900905464508726271819603986248347216696838323768564530036933129782462566907868858512878630258795818805586079929509100225671140652343455287920875195633786734240780426488973578271017128634635263153614254787634881390538583845602552562475795354592630329950276187203228078136913915370746446826559526507814275265048628166067859052246142203363340248485790455945237720751851096651302328052500947736640845518478503626316159334516833340772708554654580105751549057736609264863867432549289354087033538820000568619002298869779751195475380719654532100761677469552562182788411061964524965519968872944526543607474111180498071544056357517962772703675870541782642210216665209105597038902030433475588950002679824133192557905595046440269652182977467347413706742131245983721984986880082730786751245698029784557956964478563056154901669881855094795449119512151224859507386252998010015939193719023766797649917360246899368446124824155891872966036637184467734721453588520065980278787355631897572734175957202813412577278561846415541640300286011674243421400118761070711515816273832809043591083977406569431126833778574490033161299459484396219426022889865895197391359364648295856715876491306682567986601129685617064694398621657466479270015828995575484084579353071322871659394991823191616489331545221320525556315277221266040671715407222214995086475297818560878541700934443692456003141131030253245665534498136650175134369847921040299553515091832405196516054750346218930855168834812353236215920801102123402437014905544575032265734965812800783730639742584509451137354270855307022978177309239511631135166659953540948315242732025865331558548084662589116654926339144542272220142079985434198876625493570474118841511303307324277734908568442365723918547997167007569140083142634468579105040255828240751964357709249032842679160370561043679056886270920200746363130385333209648275507535287013946292832783021267221365708022985534781874009772023786611333120625295080641445001259520139681410618531250048086285533840998138824015641835178830865232765853645075280546380695870598964743107011118538110190714349515745779358877493654157105875321121223157448582527886196167019371943264939859880665267241597583722762375104674644894237419866562255042193789865661828442884209157326371210009223157402159729218090303086868811742195748321862747525626324080825559521884793225677543637801673832528130550907209409484052056561319914512078244871664183799512450291744943018088951619762804492688178928686576851879212837793556529189124284313606111759873857508624861871245544637824350601320820921265601704537657731892986399554594308075894830081117172135134021364597103425534728065244875315689522973715455822726400147900713661783533409667965304197040534268984713000464525375160112019734891554222593589484945273169529186257284507226421725755977460972735340507873082244891922341543480474400911110466175503998056076022066626675044367185538480993264329300955045220847045806766773514789289853610913131122428685280819822085824617444091016868071093915950217358586018400584655710329038447242746504477660350739280372083926535433327609193250040711929460669753413637240628540209956077761787961499238182661707756211927149234967042060475451783770951020752996499794024556635335787704689591740463288741317856667659033515480425284382282255513991777065295826604543314506647045051397839974086311666491876082070421757051756474871669693687351483002416657876559132876756426165552972507860121052541243412228575530615790437050361704985157358975691627840937447807132663787964003278043786432953838259931553330323178364840330358032349042612364602528425729290892305981579408363011970317244472786122042455486584555224721583179520773048219476681258567532545923588604063624232002048620010617081402361984349297288952288726327376597571093585335522718237027317826297534555160604893566113906058365350340673039047620657328532108709560544782044937908811928337814159019559466930894374150475591541098244834891666361718385295883071441496727602047238625827109483483418396232644819533981458322385964391215609843783885092195330015400232390883979197386177022776748250872049828945799410199157236562880272913302532636092279998428072892908430283318282337239612051217779276778912250301028084030302103470736232691185166874424064853483926299046356223100689633757848447787034981840316850403029461199268986114230834249830283502141171218951133752012766502576453040565333789967440118199926433489905788541413793302497894872641725511144211957467470492060862398504454665350938902605920883505270800168239502510602261942348626272842041622268828922537491852570030080536761235945513733836686353752264397644860203546627952354306036900409660044914487278202787343135191397293183659980181452794124197717369112362002710241599112615930268758379007001300402406358512531703330477348706676035364678968473465746131977014470688722270696912496476238584804322735470335028628287157695115732368580638456323030878282868813475705819622518431428696534802116604483537812384673969649281807983431418164466853219234393145815197821854947106421576625034070950923242050817187153734778763263709622919674278790514315456972094569340272278291891396205399645492416654624214800654682473322542709513816523387555300482788034255080511354475997457999171022934699922820932115392922826214701990044588939425967962430796400412402006312994495917558372118838324968985078871086033097940946147035021771001755344041631800811743682920255941490238500239711988899975244748785851763578494356409990807666954110050166724042389274446315676477509129481414292817567737550504909591293431792433589988110721220968339962889140234143802125553623053797410487456738453626245100923587931870333479268270546615567467768805953358599459016033969814806379163115572273929298624764252930541746402662000462288548408106357867843537245454096616248657842132311974473428327012136963876654981619116350706437914733980835227588324307506622712539196255846045611463389215777465275809681927068573233166929686734276516365893840211065334091898975602441393337683682269332648758093092034512979296123349340447167839597877654473646493388375180746478604428942698600949205197890260803373669341835309171449716941710446761667433280818037547392457882089574682353202141369925375771321988530842792667858935584565035922766184650632293317923879519799968337380359845482998512544998910124182656327417003168685312271846752160781930027697580922367122711001900689849781171341982577573460040142375796357024579752298308059604002805438596644808901106134716872388779310647916873801590194292381545384347166003079542713022688076581500016746018586980850548394959461850151885310352480575145734790916642837197228631269270149416155669979511207938052964733151596239978206221884145152931259601809054881018533862194113046691978573182967129724497171473596735919624278521333850274539222251410077429826580950520260305638671892534494313157843165904411501761195693979984532931096865417202542022071466251595789823865156011251618739628416223603529542865157692097160152849064032812436388263685843216919204124401861938052621377966435110367811583583319698968127949777851268552747240614676933096944321311800180882946964289847037015622511691698761826379575421784068648242842249349633105327210988428580909718272431833313824505546568205818197272960341317636420041385659588937589156298013789838121881073589584914363921459228463783966144836134690864831200500851001533478149532793317601775148911972040333059767380419777292307271177660461104074118774880459240879917763877600849890514704743481160160647450395842990444012397124437863099530624404119142631665071634820787076081651850855607355365684941823980766429975277711791228965900642730146791702294792868408584254946056254272485009211856324307486863303858366484047075797937677907492438090739328577018398173294517107448831906909366269998843614718050063187478115281576853722982045171894108189154400820357978641191050633816465207569116795018872694827174596992833713171971573091272521818249577512562814941306500471110705686208182945447121411980940899489471701705838657002280306553997151251882045753577365912815528936363471898663439267798883919236050747257949124241303073756580744190964419950010267650264555178370874921811107244484688396782073516577244032344037210966966786843697904546824993208721925233114928063076662654675164086103266204319082018782193113446930937626839865139498978578593153371934010925707200238714021604851917080371249439315977356414852245603402562117515360302009034413729895013516636214538483238300515023275733958130397501232157707621157158893305531708387579237458521180382212213065216894189012738561408915223391753997361534992287381580035327687926892216654580918065455251545307900932356488950080009805555579618381242426865625770587367929788780879350032003096638737200763403601849474349966684166082479111082149896003149573865020943856166080315560623541168442987228849044878574684319076181709373850984111818112252346716718041076972206731350096261654190344350767445811287216533848836995021741391810406231950556206318263990251144170961490795236855153182600981802689199383805234878323972965373088665690849771269474560962592984063003487559061303038159590336991371452407634516446030989000707175104786218633980928233894489625442883729221190316353119771954728546863124080443279478469359825852294116375664024551786332271408416349221160068638804883716080594596422062820461781903321118518408443449086676230033725433403418427330969556725556138684169618790710520858621857428908833800124297305983239779223699429349240132136834217927019094926079182951647903585865501910909655024124851315557897392755345645291723591531888500520335333219022580643855892305311505342971008363505006130355359069125580930285349463774175638054336937376664654935056792863191458260363275123973740044481815888321594031793934472202527126068568281890178253902938189701068014443497760722334235931318557977081827589180007294107817368576225677074949573385551093723303398886399666206123940473725359000153190494275332625920939750349512914985991343596219465943354554312902804562385268733360082331937599372139805974381807787908080896214125080588707893976291200904894115785336741578545283920852971384299072302940497722250199074003111585004864718393431032315248393853217289541625361717888731753628937228770267099295200668412571851932559005821075329427145833856068654609732154254351726559708629324542899908445307625513391228591517213597103423975604985374267916899979818908242308992578958221046313368775963953621584221397198459958373366923940344627384205339167573542949122565474772317653409719080732859358274019941175408473261177640218512289683957560247421432096732826090371461375649906081290744258322318069423122629295876987858244102372864527972852202542864117758145248577046279103622430497617496989179898914167747135425048008525103907485752364900632268177210982313473803425916973827404879668190550168200072429238117737894181292114333219928477946676288535257627734425879025147782038615918155463956942276818444546897563838848755558797919600303167812171361073161300884617056743335736356755307273752601547684801696786376833425236218969104153270748845223671033141731143169168185309279954834225381121626864025339530269330060017842120634823846560606707480272295292226285034468139079370217815421886234662400304972471268445347686202511595402725358266956255886659003649298157001219703710012920354138067965161456210901577409541256128166824837022142268237330214420331325110849482202111623461954566207812199994720901736095604990023068881371879992953928345404991418582346884716180588499579609497892870283776172704930261133610603455185126987213050711937150504549032576929049700131270517971878769372548757889292907207414660921030895340508870729042957520832424604424721695043525391951566427468018844205194920770412148155553566088186099586657932030990818910291500677847845558141062547837445650633201555120156221678341825810593702897347682813563531399824355688987547046278716485308868635611399704343842538585435766461064615478037615761624706126379075537993000733021052671699366839587872102752187923275473807276979524240864073615203197329340708756076837247283464348589024828293659034288007931485345401133106147973025300999800763536577494929093619321953461743147128228805402483363332481037081599719958996178707919346272106591270568304848993092541039360973368944044659933178869629344547613342536777237833048968651289222883632007665297056434592212961803592944019167359066971140896928577585211129201227376777491795279922293724494623448776814038116952516236288417000256728472930027845451656882970946257469662313903458854732750097023348906425939497363095203518081736446476288510728377870167196326071986780075281430622607473414688937955004689945536661804965793161062732831974041129073851746358965875040472698546456588009732797977807677437219588225052510508236016888917175985989137624836319107899913998708518440312710362651295020679986352327015500606733475809045205761111925268267829123918803389241019518406338680399904720509375434992057154797052215210304352316422073735835921024572836338366478575451476095629317652594702748937912721647396453599684956989246290729372662185355458253127114531084351584908826166340709568155793818805063357167368527168204331312707146378000441173922586555625153604273518333370667117326642324298066403861286223082837462925918629430581462896049802340415143235458188745014829104044433216883130363190522562997483552128174715164075167389271214057702664820873493921961517572186437785584328925093782135424808217107682963825928667586149617089533297626566033982771689783234051260433077725469622813516138478442393560356060048457060490708803270722080196793130794121110190028379715888816103845450338243363347109989649546302655733826908229502670446619949953226748581443278109271316510367907116543655503204927186985852450454566948026394491272248758003649639220494682911906545731590148827821039863429443559728311430503817465835046660091081027505536889018825644111173135260299940309335192924745688653727429347234127636491703559752872557875394224471496576089746813722873869701686097723847216778469606631042666454793503298390128595352998040722753706544174972044325641104400486700558640961149819779534799909845823074639048196082375197234772698489077483266804510060715209369685415986287480992921510144574099571309730499768513086023278225989893965443850515453385043964893741724968829407113573135084047705803400810907347493365817781661695489883912273940506918002321146888305115846144940966588003653085232021599825686282960506846477806583004621188146594342876762084085408275802472092566679852841870386594097829204751104412974220079571243858529215854989239684806552923600359612191693158586699123911984055363047219794433432804950733683385025689243195244727979012008877563804400895292652844985049214447467154289505622478990821214997211668349728838693691936297117276222328821076780637767739018194144156089332838842131011826973202273534348494597923946125385131191586693308126707975131421467851531024428385062530340494294088246952262433303055257891011042977472657081732807293818355106073087090514000957736541281825002523452478232651665490368299417346485184938808949633889768611448151553497745605335161294885980388473020118212592301537580092862742452270797544937415954463537455644276778683072068479638659040330384367353325186168022353485564496695084018112777211166098280042936502298856367656050262861050510362971655134618919840474894159094493216310383515456470370644272076014971908428106364951041502580681088092258135497983810891191411998073461221267100757388339853498090477240899210879398068390142451783728377219008600088141115060059323299717341565102807622959473803218412159968274583581703659074249268302418700360295385389868143614686903426800001255552252989661898176581747671829965668298567659533484003217567209204888086227283232704380066666195270644321788394511534705445240676050218167054638782654269354926185943681745428821058407406731530676752951527484810544230545700393542593264564470382252861429721036480715730537610142793275834969596462453483670628534062585912018676701095369144471744103660510515826431166987491502807527400478432312852127829773759170868409107025453047403132247269584502915505902582254195782478959138555585228486306325781954554176824403546004126672536835493133552579185546968643707126151872116241394105316365973936682915406432030752348278398141827976791863529633372930065451529110007118555518429512635659057182832876112171634569911113510615596587368238694634355545587762394894742910567524575772417257391663791090113642774843247441004427570415788385859914449247987188315416708483743785391683953196158508652189420448225447041701092957013879040622685408546574779554466325847364284265041198223601252279501875494590378192863604787420880268765052659299733167920509058316672939269210539691110408945996938140699119927798255591444364854504517118834103493208353746593177121438622529501486587826582917966914255654937172237929966694692003279703401771362781644058427366658437079385627726919002017915874613807810588634052305139654746129677271563970640858370818674310034961514915933539727969535125955174116699166674299899396510087822850807636726813331001859278156003097691590743654120909728162358599042835318169674210316963524049873523572043631165682475303494854954601970052420560097058671776949199182573354335521555719461710367784893000222789061498634713194922202136305972910501362421649373948609419518322311310343075071380418447520241735187344092873041960578741576451468325248203298940749969180878138111633533454790604648288568049578235231111406328865230921221412599236995016142935109071222255583440848385617653086937956197808255227840610731470331390808415478875430795601163245751106701857843709836530297426814035397501929975529247780286729791309586505128665613265595540827861572696588087780282648987261300665874255260035876373691867782053788116935064557229564549496744532428028137776474355054080851712420785330250469912960189070222698475630817560329675000826672528192804158223375130772452282524534183426682734699143893808311268516350910089750221551233730368502404497711453753556182542200866921836540163444052308932302506649178178165245846338329081291713484748053959728526010229432015704517334720104576293887309548688660626522354230222196729468452869783090938416159336594454124973738419809959562089835201369318683344056211945436834977497278944803510483020634118733695102824673621514315354158218491638427481903519969376348797449037989038337836837792728054190698430159106817987416065670755342626641133877772737841326451938537247584473716586528845287936164936778664839855211855643031105376957520330935518306404482592485490720929419611650623445816166136204520322049218967346213432286071622663638355836119571684753739980347435060140582620254274416517275620712124508469397300892894292161281546998885683976443684351047092119680475158321494831074601021419573875215216716680636288804510481484484787842256035959272865033010542956241228698746399866207986202613456771842427052634909765693493172857061131273046656748317920333769654257413684186151654131359413989998439538746603820989404559962726393745819382196592947208250479486301104319343952644055829606992454448716289535472148251769562110166879085604378181414397839068346949971753852338501339948293345643456726463631326724241733321194498965620705762575198087799181207863789048542398090299916993004866376954570264152007215217289611590070435587143573262545554725755235340424047457926788410162376919095649509950358750456172523280160353119719282994993028841303592359613029736145557554203564162226692046189409267184252806721137570308726075095737456815846059059360917103745321762540399178416968372807359439673723851861259797327673036350545485013796339896635025092743534223878313501978099401392023266551243449687794544847057357615419174958447394477334275884760083953121000655596623436153833058592868141746977519935771341044361550362378792433755311587021369418676885797773585275023728782719894660233722995330299563430133428322882733310941553283430313781319441974588356084358560346724420980510072690432039183291703931725517235597960111886116466080639555865880079949130973826580114348960878635242009271812706944355455130455005316008129670610465337525853454303513377780285580705907974301697128088202726215195622856591702597011231428146557926621536370371631321964680783992223246760812031931926996736153720073797289547070249252848092012062194133305504630958570972828983568124784431042570920215016169834503605110865455754193967751850087391532009975202085511383659456377010663817757199039331072906914545346591710628337618683988750364226694775701670440700272687571293827803446053395922465134679675313903713036506808368909141983678883272666163543486321775511112781271572153498083320069379183741486148384310949574847728350110623532577902261801857387179859559594799290977448661025544643716108536774445916387910108375427767628009807981119189437504911262791910371294644681180144695608577975853246775871862092954951193571265986785159655297342225665771601062718437964886382588801820105411759757484554980914649302698256614902134578808470710659388216278033776745839661433621711059387098335592816590565186567875280018352355357896650893528496797207377194134938618413675588200688048697443551859058733883652196572444359919533020821688201142254099221182955384455635557400628768531961195777195844431688702700912073409647110793007080489174268281692770479941989123250549394474363988058967810018742603387201430451305641155687616306087135237956663844075388372922515633938784605289775439205347282651356055961664779345422089810943534904703667549915538356225551573500855943313328027811708601125716412963770068866605733564242926935764495520348230517043036079217296769057003133201347909346110154080536261905635423803549815027655170585524135817437430543589505636145718686081455095284225620443136162730992719573891968770537825278833984660832065588437863906055916010105883910936903974871108709213470742795613003619016868592249607726006227092095894186892212604667646309471854138317192604992323629661697818517678775978207222773626072786769443273855966321952423645647143070478143131729551710993007254817088367847281637874736330418055704338546501344438006383084906413935014018045618835897428193112506129082164406336620734738186599585942116893427780244513394492238649511261007083936284916495974584327157706333669138821814361376947600066173214521260029487666596657348986090482375657509434682110002526122382747156561892339783913854921332230782740201759492802183485997667461411862899304875532130674777583113580843913818481662365242528151797561889205087904522781014567377334375654750823902463059855907141449969521673639840454548102139669057550685855543967444051811657851215230042541622734274108780546087191052618200505962644255988840967107352229689023088221345603200469092015337741894588771457109580737900803424628023936075126426368481440595882165287810023526664433753385809842336633886845443529594589463079470425022838230861719794699474419275354204879000941666227142052829622658458429934479523141644775757072931369557300427916298434258062117521798612280346593131144831621928394133417358143887449714716557897012060897670852538571632214822005679962289664702440380502472592889684929926971155762932503215070588589863201554615432890643369193886020122643067989282893705836077256389140754521837209354014687289557298737543144589798218830656117978132326164627454366878611827664265575767124368128117546757137729010688745282953130920845395647014466077246258792663581334785929098525458671102366281474781886432284991318503662414157016897694574738914911785233320118349179880558473603068260719949833579028030996121777637298769112701143352652979524806332158971709199671165889973056129190867387436603366348000640853479330432894600038638838776617472127703513619866110494023599577540650087425093068030046146811090611198702266917011159738790570652566120747313696410156111789295726339159990667654868237091441498315161292208055720699708488495769167214947191702188083911730249757688325304269966165677049684355442490331995051945090042858737582536711424992638605047927516494081432736393897066957083525018037210556733215607934824915233761606599175077379103257721734758689903663518332447791403883516563517959669714324456930777923666349949959174633241412151415631645138267791732289065092554862816312082545094819007292964140220971408112731457606346925593267935432306808962263592347925641888227255726238845435631806751642373767318616136862187858031168996805081965259474893596343428604596888961699147925143657855607871579023441973042166868815526415267709978299699904956173871067010274521470212463474265309279367555648713740819081161931826858525027114579710109302838738173369129480174275186045781648730110439883881969430198225901278751027986690068604614413084212367009406659112080658009076542484311502790867474803763989214330088588255811053663075563607312125572776090728061646751220504468062125467403464512961583129718113889773268648225169777222230080945629135164932294667514022182977335557017786408166058553116104959232112657080183747003600221534611928144692320818282556899537315085777828254992932363566043777848487802350160175466798656691462967035756851063647361491473189946630511135162436881918525850633734991200294243889387205165023948876535628015067242973341355820372863623811848008605022416688855375127302217477467986701073386476679119526880081335635337012567574270594360757879311300924653623417360085035940899369748288047718385898435132403477411261745532260674763312144845066964867273085600896888076761691965686066311008194306768445820804664840905761250471225953726483596835366120208651974000376057975014094476656412466164762920072891571910524277410099816434012434534489307011895841379112507464814126197139441705348062551684948058989729530499136935070604976510751734880545207498412800126346564059687818100833583898988788505696016939952426989221977715998122204631256086520654501448933536000559862802944929313493675468109057223317013577156555296519341424574101832543728584935540486019574883850313804156055206799455517045190035896193900873811282040989923787864054558198648553320471118853807834584601646548327682193979601569538560148543047994996861504639595132494930255041934369142334384084708044985788635021107454491139253712701800977303941401123005745452946495038586244432231013028720773548052475788267118350866575210414153513760186818492299138240088142277278334163851641608456731382506846014185560098231713831246988284098582699166289230912948980896975170486570516491088390500202059332124175253417908600615516804042710390871803705288241360040033915201918688338515640292416215621856568712893538754607378748440204746083358398394254697916688969910032887927367096682694100031083363885266969508668958876962280781930316334149457707124988786219533723527242967662705420445984548870100059393158003465957329349824333778109728755192401938244962009377596402681423903931692964592247876130807557744899013531634035454723772881845722595674932092891438892686123310753829089055223145871858209996180940852884547345917948985103961405425786245609439707192779064817914753529549108774280962304341365138240585601955042797273480544026404656566208442775549166648283229186104066842094602137945654212218826390023781568323921212568494967262237576487693632020251315623217578841278560250061586214178972697965827755378464670469409910331289290922951892446896313727726206045992009342750594528703029334684147677067914386325994715202252887676072558259841886496367620089947860985595658811183830107254576453517670256157485559707264732639953297411482204929352039812245054276560863613262709287956149803319145863927818442723105581105419578953450245504968521346994728398146712459995289863291712547807129955133871235918614407368195083404630645389617381393158104365185276904904465622216847189806568011436449976056272148641318886841446938148380760698904494264170548826583879312133009991341857632996001480903484319754267710729141704311860600022123050997278368619236693559933911621764568145162449708657629434773251409765825881369686187564560083848585291617657756578026654335830217122507245743733713783931807011511300482717512437197639330197589453835938777610162073937830542287751453825724501857978345043598929931671799349850644553888825949953443135688609707242094301592505715095025723839674585919278345468256472439026033256066204407139989431311195735531599501426522879349473482743052407452072501700386403616435617421044007213852899711840620917625741795591417533643601902118102987729998075707233755650358820339867133159058143205297706346305151572091371985648800963585484695333228379317213927389788670048616439312221880485688807068885094838432026930179106609023570837995847129354436215763502036988233730375358640511287861028979705347090450323729362948919929285327112308594992067965575328393400435380234831096459436273379772313617356721338650218288170955281309746871380292667663989543387726303478282451837782082460240202348657292983964685698380798108033832249911458599312030669762479255162840292794457631671222200837882459076454652808245742072982930931708692050296973577315012383832110926438083936686993546961787475186980211282070781694349811268014480491504304267896878846276507245389152572443396107915189109105548856873379801278089051425568631506472986020953883856492961775052452413834828227672097115277223934305596537203478239968629398775762853915515655420171036772927213595834753156265151170836951513876337393922749979603626792560868642558636315359082658115595211604465709075263711950720507456065356136471025584034519130079197986399709573507359874835448880479626187163289306956823413786419092048381126524138506771393888844424264538344823475965083069629468990341566507007479812024104975173864961249156456361379982177226843093141163922669935582591196971276215410074408706480877394427445299381517124712445024429576953126543210718819156984112275298978168788977455397858477933134046026008478753525613794531957871566011842536710866011516472775360723039715761916944159899146291779711622797495894695807773673832420289811525332097207225415828637724527713880312648682148403521182716982059420261195837817716613103760227983461707069902455315025422079480538268986743402143157155468393822640564899617816867367004775947265795286665336082270150373130758363328050100891261517128805184983847617076767388836661683402634223354675079702299738260739351093935662077943876642814721687880084701829074385416015196540412660448310365251209722802722704970000476534940633955095036351819449468669422351898612538509562363720157235020942251177874277948363410559388860750152599766925937153995729869063113050227036556960063718629126635071615426306455139711434968579867116460519890266272214580607175295294447996279212295967601582965224737674297276740496478723922411728774351984573094437917224223340521566534577871138017174304207183092300771658210323599708664453757705477246392215160675514480013452635970226807857161513081310661193572877074478645698595158082923395058753881032980010525938543815400381168300415448020474313838983679078263447106526353885510137389037603630039435276715362852156954172491722193214499381918671463999053346309503199487432475646111467756857064426749130584366548188893222338619274198773028024471631833591505947437614328646980713593749176152408248682880067544841850414673198683591614434070233087321234031801552655277272376041167321161879302014709233622059620602535992787117087743735228150825574456779342728376078775314156264196621692944531366363293020392663130429489181816442676818600138376081041800899589354313731148817079532550297625808357460673041786331551088264670995256500381327549267245162385929927407662134048604471402740980661252463641960066132589730317458225576909667306075244578912348374707012965696877011611340947407294198553639801958981923506383029111363633977500465183852880883668367529676674342386640984335472244735216195124684829242018795973648017914887293641202285521077078755509398874475753429631550890153465766665731944905269551651580513846836419558448209578753917008088257717110005999797356801935961261186027842408559381325936648005861173998498503761237246288417097936907689563764661136959567867501608457527769829177971139864248913960205193206425299897338980132095922731412523878365273685566122389482105013093522442903182127756638870535222838719906256173945132068238325851468315004180682102957674068301436620585589294484877116950436823810148050743804298606238345600389625180220816943878806386763901023566127438498404187709796196239576382469129185650054680557093056799855249502558065992417007576157585521308553647822647377672063330323265073170330543755899216136389386957421474395501864868223835854267378226137310057571762487584877582900503498188791703008536249366690285348861599439771502317176147172096515622592792397696693626098280943137446539926122514327533900995743969786958067275162974918696331842424628696093392473605419221937148356937112748207731495276515505457004370953965284332906109737817769706034077457770722261306629472352792798121287493876152913687496132586649676265004402964466487166609370241407204561242572202033655236323688778535592574761698283024014250752130566159268541879942612701515409095119004243257609908144272257512273973951726131443414585777147542024197113099763491596094876721358387521625412301757061912916915969735108218583534120539796221615487309749702652746194264425758383204706415465323482391751056721151243906746946279496003120902157688437721252682687132633406263690276276929096337650893640876594261670065132416333094084857689381104023925546474665196204112767806565783849188738355365395833324102493931296184783505814624377712711237368503759502464702191399460504098760947806613741247116108766368029345504699439718672524743108165385960299370070949539562591137550784590384518355372863429007154963404631335884932018043170109832126014533780903853538967372048596598102270326475821297990051226503993383099058519217764727892284459526563942334604432144886630032569348657943786356453184671914727174470902467672236171734810803383442000624378315127002210454885322116745797252972288067549428567306834676687342727263496758720679180106453641899323376585047522837669405161915696634203174551028994919421849200012927864219599256136118473741359183698498751110629980581785802601079045810024563117102779663613976892625633576269751148890117282086532530478129170262594168842365996634933930648803104966882330315876249206341410857602375277054936120993903101460508296634863602186934105455363908871365152184510593742091592441916886412182761954633734201607586760691319030151053506873545613083191107441672896072815835907803105708596058580654731361972087908025879788463850746983753047079364663569693753520931445052983452503591046196214397072185662062965914912991429822749205526526484267495295847108971815681916250088203839085661548599009902029495905464523789954165330751645010523358414440084306397792903137832890233629586527378924958497440864504386067984269398973048726409412023870565398910811338479026580482021021067153896886259582592002771530620960098492392988022903656669337843355723104544004622003010535061577133468007889683411598969819673032013805920038810991395731858525694363205004419602811491677684893240336462409414010916718867722732441058016974110159924827847326452690174053368529386855442619207578497704899774300782396006810873020489840388940658909779611460937504925636018377609179537094835733205469554130957434510547127261218122303604131589242788249812820267093487344267615699784776254421468015919537228737063202207106571345033708284163811287455095051242390090698815817827281267297862243428455763810604041689155245102629431002236781574903495323096859581795024795162639800161930929798943727206959254791411220660169364926471118348547154188619231805888081259161061762088236707801460548859117860964246667538839944509006696110762138935468766699538860918058953405002128475205585445635140918878378514439026902952193784088705375281759647283523628737695109906059129102000581638765128598187828956698011594485797055076210958022719177037747974574937320774201029587928661948610746492224877249013440194275693340847300637794736305598798300867863087392328878358355423985871286704871004152870409387042677024054759318160613713372925119752764664990917480334415779765584857919527288656638474416159702494832837451246037198684324444460873090932081566169042896029526749334662668212638757776231217530988597829200818179829703746032358448081960639335334836983767894589754015577068241275439244287020110403299679468691575242814813866253723315999893430025682558224794852644397919399009969230027918108626054807462657581422531558595517766425931939970586835468226530603410183156869913325138175319226099628654260337113008325667471142784330891176601441534344482368605440198617986849966717081718363173288263781743751484047257344240253160305679647902465564367591998894827524129789145971166269986206721022346072499330016915943440826526854987737460771319633087087405698376047257087184677318002098717660688196677671211733537497103231393565206477478051637026941052186027919814963902325383108507652824807602868310030283057781692404920951117109305281441211410566628186656456320409858828898608463983728296176635065716309902851368670614847257967786349065702008731342661141460631529681751807134873021114771981690287871008814570696327707229636870285740533045065837064543845591314633876255555249667493369792048420731977207133602958180398730418249642358564031141434315540993193561757231740808338856327344939577454515256888049423961011900178873713797130801878154837063281515914537931869386315075063441425356599972618034409727195363862213783952771733270578673487167504595929174300805630509017950861685949580691570838995832659878280377158367873533823045389582923144156536602409106110549790472440358139521481643433191594330247816504893172649180138053147337413493659629631791902859515386976438044745426965673874504186321586175313324768348906456826138218407170585229610408882446554426984070891436927892089110671441143838156008172238051979023471306671623611577003722280900692304591819419444921237927520420699421874283903720384182556923152275427517686301372529460152893130564823175394418728622674965753407968552991974645050040158744387960259413596188103440356930579851750450905131793533375996604164448123237004481237276467930021657022529294850790678557053790883311815823219141507954596439197086201362873339524709417046240325631992021257756918529202494465863661265352813263929139505280969471643266362974518127323401487434926296554098754365729360058928517053512905696995608730961146953601207399153598542653521186409439086197968385194435635792659385659543207724684931747896590456784997776250783649669612953555405970263797704113368094305196615025547945396006350107868681891136891041870374488995019738548163281867920666194953980107397561633787118613387356003846850533446815875612590451194122987195963594047541597976994331289710385084419768399424075823542488978116970879461688729981234290113283277694203779278524131535332793638703537261581064466638941868786767250599850427999271677353561743816316455038019308227577255426550798145725456589272181006922175171110576855224683554921300865315178459411329678454538186613545199432312082155252533208566266463817630326979742472584153078393010982432843635949920905061146193319727206749759520686700098827696956373334690116069089394025284243811250321795191609162824125701211678581322330616843509299427063816916820838189510593087122777820963768218621719545894342816469448017858822316924311983731437238992706984632252050794219262525201845189833387764595306007911104969674135719051101256926053731280803409737955929500419726832768679330207901379678635827598134124725939203439171233087883992703764375792146297498352609514030685601018700951585271067987435025808583437742685112111484999080088482859097702088079032555055795160444562326246074037314241727143783504785805632797707129202881833905015267846302949587867755643087278765281207536173323876262140308932004853998062643098232538650148172758468364049553326454566301947729552223528677988692250604566835250900682647125674674431209203766654562291548215728544937646219379031234611028340974127932480941558102679788218331089857070192738101620361749396213712883353664240357122197743089707639121265443846670011664056507521516128376124671317108037053227202701920716890954405556370380911320523770439552860677476241604167895409434556699528618457173071789765594007910809821341083889479280995366313754598208380747508232161066076539004104967798963940027756544433820496917691032420484219267781807405271079704870350888653659691919712184595488638166880810834923243084237750338494610262886523722266120297412528518767918532447918880593648694709075295241696654404377152292275146274551896160408479461819690055323655018859089443099261843669529982548338800467112349777127847389782663202874348971325332666682205501107925837992202811282529447052869453755836458031356594709473042446844521176625245583852379615519653684435456969959808561898693916025675429042674811839474248546135623794977044570166580143823511448263883024347676256630226926873340908623406839903489901084943634765267454193704871362783398873107205292659247524748836181149066135550939940044695636912482427909993717705837455545315735951000604384168583143103709164928312351294339194084230257925119941167637626466699120327583354796839526723137637849032238103306534399409462372582718190805507006440744365767864782271005828875505969255666672916429790814938428953569568419583106700076908113883743553037960188884244247083369074086905333246065219326706371460744579405446704805597121328992953406492305573608490970635503964710389599965932821732347869020356784759888872102399033912684628807771001153567392234154697140540744378613250890904089615643013508501580335331498888591556216120442679977418161581209488266161649872496932019729004282260983217456397228996585622860463185856919592017890866719446248304015482964083334761324507432858669891445147298955085080169940648752014679492230779455683092278668229416695117856571608316087271436949447289985064965787249265674616762231826908332393698981819659299310280245640721144489876738936159782422889377548398774350714842755072738297938538230604262398262956103463588680238968085457405977731534820847813155418520535103575515772017196712399002352544500831346849301698463145888425948453941640259679747390551051991265776149192549699527796119411649274996497097369572200760589716565484713821398060139800213136873690674234939146027117353085181299201019782223953449587074304867460109975499181307750529639972138025711285471291214642177298930036417329421797098463964454679651672321010232289642140742379256235741927634344365534978761007339409620145247559023713953958784588702007116354788258438874941682717730962916559545689557148203291282239975936629488881753033508105144628558210425722575858336858026896801516546940387464567369647657977801050170754069431403344127458870064848817084620720830367860444744831332438696781762369830926379144579390345267246200410330521651659567346385114837563218702085935150848543215875114036068658371518891449326034653841891468983575549009607944865316805127720491996012897801016529689436204684385560864736146451918467860532251345404359341412426264057019159630452797535615998610509754707497216782764915754885771392011278490220239656554107177126074035334217849062782122873874754213941486076328938743184598700198512017790798883396601434980844674981445097117803149236184444505822708404973678736808338344774287759874898449501799817623628494692455214368057625636791120423871787179702446176752872783710743988584432538563960270062110217063181404400978380523612589462157713179237995889092654715073263445843449366406248047170302258717756512646385440814345940013480216809697390409129211391731463566987033629210345030933069541794936868942126098115678369622391821945867651513044913873159610083538508856188805861806901330681386554939490820115277822318177385445649878570747232811229547635063344769202892041055947628960051980748933145948691150365710635156962367812914814632963436820808120722372940473253387173468397982512606751281927558148336477315028477706661319320770187319211427787818649357319419196545119927692189948682357287898587857129833848759497748221207067965475909573156454225083444137225446928949789843790971284385480290652021235820045933801600039002791318668293606365309896873597398973473781382139493620203484662707627591176126998628608721387336005353053716409525941315321080948745544467872530155744733967506380487271137635271711824707403866916705630503721483953012460422339219928000274581752384233511405089415742363623196767624452820341470153155002526817484572224195476009821589981967073458621944285181182136358509017839672099074170687875077598792165762553711275667846377824441077176649763647863061519592969564460199974482796515771483403109541004965302739460989295087519921733837628532601575270873369808004757547625605489727650063713421808377379502668937431370449678893392302578254742176714808377320814784873278791124632089685687323286857476104621097087302923982396149273801870219670638937152057650074396992228658925364259819915181596063107205938486743589085958205818852145636564435744269838171440834167253243302014120643936093862457380358923854859161664455565858010768216195597003653435049346893487815573416126529934241261505187772451629948244508112988876899448602317036331360764641752299515169857692789280732025535314180956589835633551161369406451663234638132704974438110746594513258146281215310778758938712036396848402845972566860507135631307067043927853048071632623784239510139104967293778813299360315528540963049068086246734927767626342321387205735872800028914939808586367964903398555711274971853893243038534065500600974353414824028126184398632641622112187603161135794684675258076031420823791181960473379588805531582514831398902897690232638984373258593234291841171306072439286852531304071831827371011903760162341423846851978462176567380747958993172594642385251958173686296159197260198236773114282659795595708299979675322685955332875474433929556893434693742705343638355735017189350012380808401802395649115434307705968757262527444977253486217444201045858741239565842735343727164530275175189835493197686489999469177151794600865658344117883763778482206763983955227013480886677364026423095945866941608572040208121040498742624538988236911422255508838999777608140366088754778223475108817603279177595705362482569921027528586618168043464749762130919013947526026414697746177826131520561101892343334731584975444585210033477379552340739967832725176484141510985606602458364297589236293927161148103486925165607558386861110845627848301959767916663591446386198259908102044665876756106904542084824183330168754910140838303488619654518275033100019103310161179381976132681884117937644389465119465550233470918334985378313439403039600184047436573463419577429003691401971590511176971166192687792207489054708039179047223525655785085500065904787787252976599972835140086393822949718545795020334087561616202116707153566682324581967243215863179886550473952954666754785688921473117204020501735795735477865570727077808449249006279222965034048204404146222441919462216292200226657049926099706971237863821062740465563466346639883131253248156719379775663907568055215727161426030766920341757814158221278348703453629416965781472689256583229617641311327475977604037101224845148485729149259035724377495977325816107079872236824160330536041864316374561271607101436502855740988652644428624165333526913261665222448275206291613322684971581009887435728506268157138592719376609968136856836475476755316494904155405692786482481250137021279423635730773114308063296840210773376624843915493570090176749554341827105983173904510843411824549428470042757211255600373148650939854952500737046340664124352868969001266553038602079170396597591760688071609140427071210250994505378151254051158879953047636644635409780734007408144029844692049500661384741307039239302077393962744460193692656484733274809415924359555191957409079041619284391893434953302417926511546753942505590197220328202261865734011896708073322212287003514631047052074715051633926654615939435766573777536797830821745164215710175885993800417113463118936113213885371525253807653820238648717270723250259113371940510923884168223997950201085830617046169502699330969135658262810455925020440090624336144358034055144849292434081534875796927540656562362324497510520809586772870250247396758335227890008732336141020709235345453778133413306580403997763427926669960201532602852605815159620374675105339470960728401317023939167413814237645951390096558264049608195001839033095453489478712454663436395278074898070602050081004189071236484040738454746575908765053195425848064481135406306789673753321852191116492119154171159917863005280211210478056881537463120865311437221457784362868245145301459396099100679843250786209407706719802676601057881552453126590334243233589544360778479523924526883032793201392789306143862174277053653858756131582851524154408575050762726298712081805039930809621869283002761939810318112114187445862971674540633239464934287192026120774094299389899131159240619559337916154911414531425819656155473368623134128263941182305080236557323783538409933408299822059579438003478463903711807697061951401667897068222552996494585981756584831183345873371601760280490793533637254198519598866959626967429213281475671477410960315284078171326425753428404806370712394201385429421781532859661932517465429909928497388290230807510315277105217955784146089203665083929233422609945244172808866318892853627592077168539977743822895210449175688776636573870414051830822982179708670004323220970103817456038935835474928602584665764570494168185981110936464459179517417777994303839690171773106893345836936370880756950705261418352637755178075925382492773062212941649636960608993003191580921626272413216975234080858683887131337574192193949793526429300102689923460962903480763380314039242550855696676578414595994026835830006027266844602557124328284402334505339398076451705578546135864703881052069019637647482753974982924125188143765282126743614671918523674595047541599465283967299742300235507913315063478299745485417807654007838123326485367110658621373001541538830114391239217662157068969238256990539913094328058833179765439819039265186830355296396182425627843228322549925415211705066224308613742409643540684906036800415440598398109924694512995080631595440978470766435418057545310676465331648868796982480708796169192785555488235100539840794257079464931490330010678616719038428605794279241537907726076363266877097034872852734011372676149641336567499020302922930779976652357898366801845614862851606060088695512416727707524160974461280275314398619886117546985809967110117557778535675364312892914635544525233889805274777440256659609636139109346338480031052628896353694378226551465630225840753565152825017888210540203469035761001720218637319300950478337444258042313917977370510551064760363151678211087760223064067340240271765683651112618839765616609701049574218090504273798210713162759284442228056458895153547739409764476132333650379765849386148668072612562078961402809069415499210458198374390548980891772798062038570483453306276165598136779453315516877788817840137290209200547071230833259158116316759601869810956804925126072576041299338086505948403719764318119860222678903799697635114307463788917251412508266726081171845614516704952508060615130887461905611952570441948463209859265106094068066249226905521254773194499266112921134160600682021969643985921783821775201080850795631026079972882653265638046572124898979931019315488877820864623338814816407402040771363553132183247037988388242292547366999501289517237268384280094574132042404611331161236738848821233596074751368420326349450500713073174893100638335134073769028671585732641473956346216770169273399567785380563864881529292311177363031281705228018092215995352114704651527289514363066959321022378885482841746805065712161721417151681919776410775269594873131819225001405152125233529278054384365676762801784666987460613694093934403115115461479731933656572226270888448945095471500549414739239824845510665323227836054232986406960639889737039409914236590865098576798524593094910630957523505179430289413555520329426641851868218901494292901322177824471117563912453253820962016354240336813915620589667712897487478016165041677477440973468811948026678498614444861805562572097015868541901113550557862808592142985023424572104980042397396934803606940625960748677129416631384549756718867811921996693038006232340956761575696484648398026091657242685744922719876621007950701905577656266458334290674140629727366995541679555919486271045038043586566423308694645217520414794033649203503718127383387626015993231512145148646394023488865193410403016241994629136070171255762891323819695051109009344071833384418347778580410227089887391423883783706125031723459050000274946620993618734174701222382942434012931965467232294678225642036610669142937710216278045556254443152095755313108419942094456846528918033751115379377702902885556953796100548802864726960227812480226159938344931894743950293324371249940120056165946261471336150972787985083318923670744551734070609125750720018273088344574436475401754075959052373176031783887902576501266553263899424394352134967457552244938569466461966270416971423729985985183412828240659721428350747328974474264544201091913956828013560192822029311886184629471159764465732173334277189453193706283450796479224626168165846712599861211478857467848181143709484437804935564983977603905918383247359039090634038630542473513560726811913434462411309199557565020617934518660550628061788430238436706781198736915084262699021058308198193733267553149063900621512785627854706629841419344884474530389783766906204452971058757749365256831017088984310616926954804678000407405352112336415626993657729427690541697438427535839884276289666519793915108251534574615208252908413294430204658440290734091388860372437577765610442504864612880886515812913692112041999943842277261527766645815266128280298571140117268884463531531849501914397770380830913411624720797408206715963499014886049668692737602821319301133224297925190859321383161978361666985345027276340176250361268624860749835959219413528754318511476979985324563700320503650969958884735695752169444517679050375910558906228169893341082573796760866194115126825233737182921470242367773991989294330083405890398424413674827340582514271667257983950100852680014512538184998396156883619942686495606773483014541996069192402728784391377309186965210091572162732809120950755248409737563306999781453629319058296112783407476084397305932980633668111520060221945232534233277020581814425094289085065560963055685187722401563407913330399631122770330331791852076137887006254667664747578907663574434861331214841115470363397669155977690824538902255971498988824416382246389907126222583434317751001995822341944667170040761697781800721734078080057341568115431472329438648207387925461415739574481987856767342851499039867827126117154680486811739152687004518040570831796850197032366392049032481032739568107786836303183461954396433026466207082989866947449901424373346791873820246039473097053086449158467222975704719914305369850871881712625253685830654465231371932121797103111696641222205328261234893031805281883720338700753824957772203632490995224742148505855954581906172503441190652868279898911827357544962158563125303067316242951456602212468070664401217146905104069655896605645575170598650067615086234275859222663683608260987046190851633070972897829117910372705232044183508130207636380549654243889031843942188322207571557666911971734624773341876333618905404617210587186811270370464558257946371360677818180163737222311345797117021753772538254794896580840888545918461807722557193089994522856994625616950884554621525859258121573769230589211570799061233354553998056831186425757353085630271735090208529481625855771833227164510406400668124343740400319607382656056291006643937457186655645000745257302923794288072996294158495360668074726464337821372856907135001364947336354752482033926479921369627968442107221810019927424208256980727109382486809561950255988533142642423738852333540083799939202794244971268039362019960110755892305149380035059268730294400968559414492337250251084902696676318652618566815615173287804798017217893151275759352720880478281994910958402517269927236337886045556844203438487728668880713120961372122892767496238795073273657063217491885214883357999303253674617917030533317886127554534677857777813991747193297785172715422589943956198300170691201237000794388800990022591290585345161068428420137741601651197589615769429430508681330543905650316044222986660702407921500025033059148413443938631259842276497596481463414231245460120066798215727150427816716962133271614424349367850986432134781787749838265362118271169631499341312277663996942159762826736589219311639065824770270885815753892614428250109717150708208052640722959536722081057536796878082700852522656412423137155842157450816962105508951107223638699426190272842781917437030900150454090114379926861295410083544627720868102158968694843779035259712307918229074596818740865464945914224031952974170482705795427816547939963517039278118863364694008741350763474661361536436770987680063030384212385325975157781395676889819471539963501394428118154061861993256310187561854524574768239908749760454565691576344153285772949972648970608175544765669338003327591265778023819355941699999823634063704473723980158505800627741288632165654414194533951736704490402237994571661446304899796286131552962695910656525494748538957264120075032387839400053025583309113993401789579515246809427526976173903754567140581361908406578433521605137924128761528145416902322394333441486926062862167877213759430901312228759156186459710838067671526821804976929681015794103877966928307682495372134386685158638889048563860028744728371051345762070280705304428936579075258340323025349201759980973136049373967195912326808595703996462226851507691772293907842824541707798420724075486530002892861460752672575875626259360709040920438845329499577780419311713296609679220447769674637812601393818463777560130639356049398605323702361264347805736541525567000179476974394688943595872945401597876292641287307518886017292980025513273954108791109186328309850432828021671743757921041427481589984724576534884419323781884363024368359095536099097679909017049895290031431894826960782548406852151216595292361556433020537084475250249713750098040112386134839620363889405718641023539985191035891223377165862051520270798173047864956918333513719254507315628637935243647116037072176091797148332474909491162381308728439721142009284488182848922504217287511918771326149166003174610342297919445276896885502640465422378514023252964366510455686694677219360557986753785252404414943599460187276654861506668941926941657765138202047885544140447101605988220419471687210748772507493696085411218137758722900706208938881745521572210056723686953881182743625745639438141253031845098714178637025745812521667741749362898250814310126667426851804080645485591169572327466591371921936250639001121152925926022134848661081625298231213284939335049317248145454498932290946081024750748554800477293252283798341045524580334315100897326527889845407784403883034402651711859333750726714358279873705968651978405108672139501582215583820968761772355545341786530691299388736463210155962649728331890224802892062656533403208097811174932347598317099159117586473707034280399228445256371565259453567788852023439974131921496178010162908406364150830195116038013606245282244479715068429551321898121449424907873806552632837331473699501576357331919360970812774243823137191946474742698341683870756898776982325499566933850593838132764033015445006936426776958506813660877294724360942956977956800029279496095613626272681027246173740309471279469736707782650681476323408265797153447332805210811610624650297464541370032710401898630563307852440183693978779025557828256850631045875183237099404513388076385236102973237415346629932070344858530215254900671041385110542025879375500630022142106113230407906194805644169606020349645845117510081311564522755417303576120881170709045548159818379899126281085148152650374345183771522520797841490249504502046916337504605520445892223757566104828319329646259002521915284707561196445073035829648597297426536066371359860950090771200444051392052590106017906382985589207871024450960891781265596436493905300120850483574391387167609915174450548367461957267077326957685519010253262306397219899610397959870793839851038243232653512618526509857348779205139664054375332618178672923219416610740705310340077513647935385082726813508217754060355623565674701702077114034450301252709075155300305144893223098064095885189702420699099197421985335626091089954806641482845506529497403601862508964121720775920661014765453862192701180721916531546183252914662537331666933944557555768339786841369964291815831642617763261524806878717167017061257173956284584400369798398435325264279606810395563906808579025322572932964439135417356862254859372670943831729453616044744969940737728397155740375400421562343497543186331311104510555990026257382960850445721833970498588203455092102242128233883580283161179385757246646031509744697201498337266820579662120125644807028587440084086329113704992792067932723091292644934374714005386533405911121337983342213867966305734604164635199110093371531864720450662289151542026169219376415663506461754656339621108220857890846324046755444363635841852488911335941663546777304260886341689234866673857657244907165396679768785309234135250993836494933860224951015692501501270636821609358133750214966560791233049735810369153874423016047415106931732509179146536877469137548897252703681453334056387355690947151183027619037829661524058639832233901012916462702774722253587272120540907988809959000382348737269923954364547919419148519708152883080584611901545295925291609132948849320706609613104475544476009162072627464788003126478344451062678927470510461697275069041112244811719404810128032883472235942980092309344712768101720358705016177801368954070689097862207643791170059957616366494134142761498980918119938487995599366334716359882688897946667629841986758268441410735045753271608879556819284575501858258886643672662590506243521200495712655599028806684962538754305171096884450265382475390857921804933188532134405988410728096850859604916577823577635610134904891970648018104895130008324928102917883883673669128093221192941125353537011680286718636943284266219556594661152264651333962280087445921988888916974142583672739606673339522139805395554850583123818361024730393985621504865952222121309805424168134786059007163830294985144844072585651666211360679210590905945697275552078282727465093519796557994174960052279960071441507724051520306607201355132963441465645249957647996369812770388149791421691337669335001089511925492282707605264621298993043562129950052237587481401112593223748630623723891452030230550884959522459051780323793313446827585790106254233821505084521150746207940307830573906989629794346107044988667016264388927099038575606736292959207063564741122016178871066152751338932781821421086808885732355007681426600530380413688598043272129879463680564090380723788023331120487166759190227995116399367633936739573876044479499329192663189590948125516456083494672111229805492378565682886548714257233278915789235388038125962036317306285897609017294425010119542422951288183394227368199313170200085400088378897024497138016519912520949315221736433341075516740989221726453061990189632546822031879921398316516035971120950179092366013826008212178676441002869771081896184284542072852429341615965496929096287834652433552107840292706718973840243197363425549612091921040198982871941287310121181095312606512277229067658041342858754074519359184378078542523008884521471320697844278493445647055768945966322787138923050639864776053977044499946446447255791592168320696597673882404347969503885315454914881523578105746519779608129910963961243434843429849812637020758840723525777338311947454175227699715416755824371095598737868094119701984619327101894750205513848388654059902152298541092426328550338880804716154015893446469167352791623943230030044953239034959238987310618609279168011007427954307314750727641221800609423773807573812483533309581981442764053956448263254574481422035268182545477513369456459860086403929816575586950071350128859112991253787533870237148083724396457929753774989185387869917882876294068558502366027508260070083453458454485998530239168457754038998044039747290768578692494485625016640596081385315570897664509889909086298973211758107287600592165695303165938572518685428076804980904457095635287780959526269935575991777683933898240331469744712047124563382558148429970419683343663742567578664609489840930285363542418058794691652283298273592718793709035444326702469416451449876968554284205704888529388145755442380657219889365711646119108093499556463700644182903819059935305953265710661771736866252601033038554789727250977671554157617677341569897631541182014859065403989194027568721899822052050787231705009915685024964477521447561352938413223355344170150700918700281259249521665637886138147562869019207937824680729331668502084744235821912075917440701922713571950014092594305428518928083104551175733735154780887628182363547047254091263010221051933212349259725165267613721855357211104043750801982180186544065984119891644151474070531235118687406969896818105792026661072648466099021686727956456374813761199730059489675611594558034409778440770775175052868135900262118933727640542526779498605336440022669481509092652357978028102111872804081933454297738642636111651765836604471295771944718133755917787315941884096168804127671064622702974165167452893599433323595223800057679414221863451004422731239117128704139886124375969536273951169538518566472243769567266835378294047510703849763427491920575955706115599036212091966199154434832809030390396377530402415029134362477742144015374003797887510256671091381961244967056295902919603189253454932968086304058521030005822051980190343225043931550824855664221838251303386870574410224838698409216418124902076221396967724833974467410457772283284900476837237761080762217482073021487460074666482192963300550867316211833430922899756170235514275544050925998515263238189950014868106320096375324341348462989708256174218734291554245185998096779357673088399147439757037482514976142286817979826200029882243992589570388470238367785031386719932134171648407883097665806228255829874440762136716227689066568551303019586199021967922000452265929211641930626789946278971408494659619444375560351406260462383887856991182910167323511806318991537065809121391657801948688100494016884158459601321276804169925343753652930429690996156956816739364265796084243921809058128115980273502581264848629977654374406645320573797056498201088740576049021667634618895805689134246916782160532462769093181782581037059085242912174402243604951215763698434599103940260636527780762357312133385174946282460571890452153186727913753946085437729005343610337518797685403669797108710027394724587309972162997560059607501154051193481271804451679122998417133626028320930975779245197770278716153440355658958768976859905003585054044309428299895411778799167184817810161046754476120275813796173521953174758836004970630848041470026188527913875356064160263304506940155807661866023335271412933969546247118099447350814547293148559279550114724029132370936009841375505518669987332870947743395818980908937076649516032486598055339051196008195688733249634949242041417288182240409799539245304377723180005270526996076741537252340226000382879820869921634681325486197296791714569988287340662924268607506538260409028458393469386874538449826170955933984381074223680028230955895435799905260742711702956534457989412000704918558081675497913650764287342619574231966194787737198051857615238155792197231959072290791384195399082142871108295559329297797559878950354149923335400467983313432026589942463798812329890093542085332302940239997482520748412477034168254595126231754475213761185016358637270067803216852430211639322396470658882411753419601214831057626977582021876549436799563978854014242446989667688615310583107523253855849110582517084255502641820912458702808400813656523042773873203227970947324685468272483614687556857471526037899554681121177204165392809650164711552423368824926500207288877641207583900034966527419442180371476626350516079488854017191639090085486108495254669602757496354745210880384642072603053886870208592506152775322849686892620000524527870214278353071414418078274609585676340549050783756658234980664785147873290423591278873677118025450130486080858404186637393835205460514796807954060122229192138988557005682505500528356909742119771566962634576743625324292382273628044600575117791800996939382064365186969380929224837177659171446970340491460337353193232586281660444357825155907048834592503223610676016115390806143317078469786021583688811963121785263821021209016379855923857009832311204150046544830692626333291629169987103756369718503153759599185696079657248457211887240234939282138773022972982904140541113503134748362971920720130585509653619061929813392049497717909402659372199305852239272368157941723617010885646522746364407090137736553750455246710990050743950205252415533054000514398900273296715631754654042736230545372679302827988007884626029048880159244690417873656352687048047248793218353192571295249635364239372888775238111953180196459779463012993076492942233444747651997841753876306781880583918267445996513396520323022514743991301721868875528622305038618417075809215124050536522643060042334505389063504022163702147966723460198221779475171270489234502269781521419323531639127698418429799409686480422507468875774621218498141858919915078371390663742189076759932901614481628943853359820735122504275317728848725323930421936205455224946458277997612056117920948000717654679922689766873061778613345519772723420203559012224391089709479931621511318479839069351011969603562421442127193619209396136109868615033402733172662545945571551463961534187160299302503964607996363059306737090588465583807463023371148102029846098943183383836468184964966082772725906192932267578999007247438582116504616741913281337954720291567848651631129408443481575703482697752960541417661519645045687587100078558555906373699952072541869170160571661950201058414472855568182421224881921703346993555643943335606167991303598916367996448457221905450737246057599287806203174344382072868710942208720047259763850304678979751557323046709865191269245120227777047501601943645239209685723264796703192122654593039718905991032283264964618812301733194507028181728179419362483637743317473184722303076568997866410404734552315913406372773189891922897583161180699799192415406208114031166603805912668149625775146098333951423020868088229276590689388026144379621527252370600674228925069843253116093885265529457963855104834603669787188179350477385864207001538680366748697218922231622353871156566541411497539408201616690975819774651084221064281741266791382725976259019057163139937496457700717907627653483265904148160259782849215954488061724690514448416951871221497628546937032197841899002552529379093823543650972144438742876060028669572694044453281779328139273882092382857179856698001539542986436702844875762768708403033804620013083373658802689143097061111823103793262663366125070265267506480334585629537369070216415032150403156838541045704570176583943781355928947034712567479232015899341571977571674417665732632438309548868225907786373360648928875691759900999523584069786195398866547794906299628120856175176833798026351475227732151606120852288658874135097460939702198976325543930074160024867190708456351538238359303062885961777300819561349896354133517937641569140212556392235899383048385970139308547293824531079314390313043066068986291590075888655462017182735896838304618512454046766766642415610844614358199606443774172395574834544787302441511689787539678024452110293726828608498907141853803848693248537034687223672932482886928908189782648431524011386292536140538020974333940610142890027658180006105717691371894780703403750630951075438273103881126189031619942352083857169263276872973605735619613696429818531921137025001953582776399379229840431085071247663014647374040443265336019489135553752621451189675306027883634998857958475446234192845452981393172991108685097971355142363320925657896522080514186016119076858019534250357004344104797935603433829371917977449846539803257346293660293616078619279933979215212499106935974560275061477050604740075983600091901710370221592721251380658405830040117668569597381789081890947316031455567806747813524091011236475519337494548073726657965968517490695582688999577047229004324490603647389678610233998154041577275309048702470123866970692543550511290151402035938967136912966508646451257583288806489908414917704398411898147116655091431874722214585258059228025753774155867734027009489494541459985345781757830917172392770151692477094634078018060515470843299375129989569036915301841524538921538203422365858007777881749427044769223017866693286491222808543345653049524813574903900052808584618309408316793244293923080430371725862539877581576650811564279602130005122148544952122283120938037217815685482774561747640581805719539508671275767074663628229220341910285196167721200655931807014136777174073436614801116917686854050554134004212781481317753759243409140798377018049290009574323735134107984893406139649536716030836641871326868711559167144241675575526886214158119381602615498258170271229085596428932096677637084781158801156132742457649074927721815845231752336776995512858659634678885014217780722162931352664667726279323146397157631575023867980072185439630232949664101386183460442080691857605717185557699136632595142654056851750421411985141556178335202846647803811949379589919897521526146050726431939866449888483803961897893584649349103912168941412325543720061762827841255265811294372891194125557881811324138476278535537305551101814381611502203382324920477533867211826221708850104675358817350071164625047096715222852788471129122457834954559629600446478192862578851056851048284368999391334885292219961168536095895275074871174976642477246924150691542786380427162841722620793479131573247825906641097840022885756932789206084392021552386201257352564816417408699542836533570152251040524295218877909927215172594664029604729939426100030140410219790988006307729312374208380928145038195319331384643428866150116408556396975264440952833713381246987383829413899807434133205980559515006888783524361046459100398728003087252523014925221227247791902782810867648776074726563151188633161404447096772220856465152325910655798730413912187299796657245518983960372594064393973824552831000691607363475874995621602326926109657992002357036891750550237396188143807352925897715705461575718598089971384679186004036301589106370813970415498904349977741847090549046480564607399523459246148938309426086252520516800422506201300334844705376091406519695434966044954967570589726662286398434900389424411463896591739568192306693060654499870739950877017806841287165317375751664197834224922482677765812622994089239635291233239604556641238465077891957006367662428170501178127236084954550507375739879825620173460916862287300673229964465293149865115980287896570307871425228702787822815744962976440787066922249095085944792209913775798833171521927789641121700991823261496717185002419937984284563202569802215518147785243422773321487011366462309900749581600581862614407317887212521429419965470281948239511437114230286444561721389592814446003004734873625072708616433253474328755572280647112982344833359493090877327035719205173668727284035535582489189693007962064679326701509311381247509938521694693090712206585576826540470456307686416573867146936199961782673544744356795721799540008900305227991448934398480771383677456850110126929939329919353565488963460100387185687020165215238446688809094168004799244539195135696580440197163865910292726626391544332856245708084790130951499102243049359463648720119816835119262619874393108143440942070604771624037090315558208287964994779739288009834458865803204216592268042718741119273214170767858723630184381423940686190828475193249715598564781288855308861710699372435759797930697343337072548292063684627899020223975681106788755128892973830140227436893722891098055356136414239963291214428176440423922070786653258050214178622766879896699433499694937073881101932890982063875743986586826178385966281743267826846103455150341532452642823801513562616738866357990959309078512883634073089336604484230192373610065262176469162385746711771500568563293146047692639581412843021115869462682790306968471899786324339752458406391716960115176731062332501949071777596220085537411943937468592542529601211316358971563842512260976995546776056527022388052759660960348111506568648627064038942817593227372960708199924880826634964417649810413433338689339002666128344827946047978775011959316061804453770247703618288921633577034637479539355220310005272502715340203309254428276580334784076063564535581031181525943259215160631809806366867009597030374573137400646972116122449477952459496432577545722220931386001975983876368189035607723597305601685488610930541626454037818197375769674601140513938607639191388019131189582290820731745876695247077601404365788000321942717969964657951239071810984089037637319706484652625712698687112799879459494695187266631526842782401758715504373904325012084721282227928702889529709090505941199764522466640323645294432148851304194449018654839800073481087425266391960746851629752616122891098342813140095858924334600248270228361508763029066142490250902340727589377181026618513058192187153891376438507890316092572047073636340607842969436664839971453773416468486561506331198054628573011510423633469315179312046327946332925192916838354111049039429790685262387271642331532817735479585300836375767311982947539739307228134127736544246489124582311580574401177682712786611936696538483678789746885316680890150042053983186458969853919738664676589668665195343158026781038329904239088903556331000143648176522516675182133403869569857648156596173820442959372906234840637610478799647236562572931032757082128419605073888451607767148986399494346440515382883226528441773636508192615524093827634973624131069861210574857254856347036287074527203072345694626065553919152907998631464981931092226351190480372679558597219114999433930504670913031042068486354463269944197696889032735499239214668060581725642891691229230423293613602077262394093316945384436218036415168885698747491065291086853784021778755331887758219459009398263610669760152867850071921967715142790014806330744927457459292993952962639170125918857413868703795593300616944346172735706291034496636593546393317311274947217806670255536445285267619944170642482883327072858602163253728828393468311297382475012119744598178872196996155695786150315990777200728728843460483832961231227887024281271889386510845380545840344130410568291926975889738218385325778343355446709990889695702339862289814413909346279159421179547385567628882690347775060555261063775941732010722508543791974418134772390286354228364161293675564508834905099916150655321270214405950652161307999424186639860890752503717147609292331914244758311840361882774551005196749959258734742039954961114142744307381486161458585231188999023680260184814230111694154406405319480918749620263048812650449425866704744647462034404561184989063025117436622989235216022962113479324209973176082919699335195114439944062344643753935253417267365794663989958638854461384151792091034299629351470165801594076498464638110218967389891151646912378203937443286801697127493912231913225489423015351051187529018647632637605223791361430497378714835933164591070798615580964991405941974483204059936504918414949539525060279675947757722120187325131285573512858888499224727084375787965354575510090788929476485148006466933967574993280714690439488284156290518700664390754541762535931278700644233737937946722885404437479295112334949466789186334238295513237265921952518632658807755073049950250050858161822514635244319646097222097259925984955673383951907012991087659434273768554737030201776807128050667529722485626251109732855078561989131260783338999156834596430759685918656477343788452482473195588878869988702526226782746738943559669686881686173558617637381926239607268864654750661796788406247211083587368982843924056794679722379426323955286744314344853055222224566095836111219019042900636279400336931411872914493559651723390095384611225698198168102461178164805466843312333249037885514342452817553567456510151946395459182841458809040829429295529244765499747500124362213720452676309151892457397925018659182868575142977486892349087096978956291299006218994207463394537256759806101780083173269445449132785217335556919774646278636814737178502055165611007465786568000491277646599161966122982700978881499250908586815433512017096164545197845349079328320929840087586951012573681088511051460262600569184765314948965805317639127840561149956285411644893033575307455462880456318346002712317783516590088409980478421765210268552214746423306109014739325105625003439600311783989042051549470683304326163088880321183382274548537633787833790235872538097000498343877747806412657356900260039123992926097774897458169068193696652164475922701949562195244234673007219906454663560139165084444537119011444608548082555434675558395015168171029172845217421539341264068868891937969746022968695213798361928125093614812219010731284522562209987806246582476147800092962894914644048076959549570429398441228998933168855164059527679340193954039136409030005295880498379740846751362628786359510337913825980873867024680375684711710818537943279676069027582528858025770294980004432720081348872508611444631923658496629953480263411236202638190773343532472647339380471289137807773690406150472395830209288751645104866912489768673729393315916649960008682582037210389706239302971700819871255126398463821859420619152546467153903321098771182171156589406221577156348057633724226012851165271071224172610171523611615876656339627155185899394105169236072815668890422617560150434115608586597022764640129253341035216331699343697877775186093104249953998486065673970175968908557231710934391955331749314127252668507787088250300013037834071319224583970985375034807627085302624615917837985707926258557737037361008932670934042227699488569027134727216407959213867279825645943463188693287207171209333884585272201446331189711988845799123800317121148298733826079777096231043230346024968238661493293162238985572270765837113739124671071060354325766214552139609365791808209165299095340326729157358304598978841710948356954429987658579160487271424997452147761060077974565310479654922223188655264381327597802938793521553115603184948022608709454825238854789870422396812520497402100038716698510570199440832276843482970489668049179371492956589995659030078513907867170566994624668517402785591102402423567581449915292113641488373261697989597125585414777931920781125089775378397322397880831989254567903030662593834079521835852983137484762954742388247535870002717248581227121710422152927794461733524207720806451775487465704631679751765099818736591009230390906394659574318674078642974009464998607542265245160691874821088011665736672935642755216511098388310198078463037621548916452352160427216044055400734830428088508902942312512993308618807151122265352336996690502086316178011693029674623723652950856071131470857355783712985282478733652911342780654163124379387899310815160011123320310292698130029165413481968876124502536146755598380648020936003927800781019502622477899337380747926355439067971610593843102669434909973306424164809135260096553229803524828691639327852433534413980721068221630558165890716297459959657584670242181812154449151021223792738766084082177981813043981471594587606704352436520377558291066888599479607438261750310291463120987162641333599751909237977246680004700248416694438752954439883440748335949961331493294247503379298158946115064518114049004693455150186645056903203306035449018189853306925483826454805550011204384522266882207416661592499510861736225678325312817902931111568112587096998732910012950981751283616684785092508176398479606076058294344697837393509301417290107756183371776121992979384540262345956799142425114921138467140877841457429655905827743885173971064764179975704998786317039951591019590267972702924281133445263960121156010674631522215439495749223615645828455536910235916916365983265900769606873589014857553159916595491997608514355313656059153935895028831062418044006014171951346726864633025084880593541565334777274939952855767177876026409837552034436246043624323976962032194578134983225884157762841807426077751321118794135338606449399580147949140246588700949096311434787020240449036973415570850733882399890562606331766414650058812617652245979248422472980873509867762457818830419981430143586394577944560760712066394601331333571627328413684407774095587170317752374235502317252436946357126079367834737863482727712284459822739635420392703520337946435863576072372268808492803116313541783717077240467249938319862015116956919285191378021653851916605014760999117749645756667398054620771652263994455247671208554018299510689983898107503073964127900376013676752857539440896753704666322721287803476125247376868945156337263509164012477478220035021868540417356271583716785422998082842762186006690092392159045908416325671760175175527307300965342183235725229603733392288012185099081978269761306681975258049121020624544814955549526213311557527747883598180205961986925644508760498749580252423325309282711976923655275048758190946623954791221748671130639424178482786937275509223134794202772907660990597582581142084117407835688478510028975613615831581169942420457741299872496002821645031005753206143557155249583818006388402369644759842666018934628222488526535996821694692850586099713117273972132777984640460674653594565739666087170836443959522493448444762052351176914120201799000229879992900699227067226655949417907915135441195281059959108508655819113501509656845950386528454730447403618431929985433670825992957304642638832424082228444325843252873366503485847494456396180828888657873684959223755803111590714717640272524256785360830896691758100144686697605317152500897367281818666575989270273983154985852172958883659380870442848595325892850917769289830855675039848322661665742796034522150212802685637335003682611201499865103045221173745352853414468437809449954657233330181619181172763444169611849188229124015881442292466398966196922124388479037380213675578346847972113139779991862386336648966777923146884133110504576013284440792388152992687947955400669421828101091860321409686501242411432033797143384289508487462334103973393268966197037759078000439189474607601466560321245453663256649314098300971475471923749816982647549191589402905577344529104974587010891771933633681505297564944748122340814845379841116633913697600440824097762187466977615565271243978110701089889111012203052266160005598289924347074746736945991884377977000843816200859698937998840743674218995233729418271372580343736061475317066714502072389833210990867406309390462410899463879643925396599909195998741855339174786215507481490262080555154508316254284447760463549215153609834377375393340972550263611518681575531322771805081538099070842141497265922486081877464362861723653183448727456292969440638167004773693324863052515101000553072357525371117891876617592424648030416721231717317172966325902874488782081550216960789357345435616897665922199665624063370742420185605076110784920993592960248889097600424134511528424098218659399910304725078122989730582784017243941775521770688325054516040631770855626511333267478082573392746781802941750599479906442351533319493991271517306125636716583727168233859560371380438324047929878299163048648136973632398321748866916865313478813963081032392942840732943206600933340520724152732894182648790591947264670210741822763331452776449470027972201509008800152144118567988437339251710744990844029389081985993550011247859826818588690929339892325223010134453818812047377848196970557394443668877689432772094201853363038670493269525349129647901192143329358589663239173025554716938831252503365846425980754761583182949887294304133903048106727437788774260799697347483171772451560276619784793535411691795452665667749562614874165431443795535327310534799614731726411054841389652025353576231444585238183317467298364663860167172378875596913027763102129641583495372250129208324320241530281834270606504654259132981047238572652939551600999811979101061492554202537350922267725860552989237728911373513952689444429718143518300054813424306718531987004952371570655821450716180685850680547357532660283882116219897958857920335938155579330569504917566837070597011745694610182474059068522708163233385390308465018726323123003684429820307980361617361318713414459482752436514475118824474236206796354666899090054300058379905883855967360966387621787372313344200957445287959955286776931905971970248306594930692648558141175204525094820858287595231074851568141769704930930371825240726926584619514446974823797737446817233144423066757790594148885751710345610895355531924049049649320954713329697281180442296890346068583492912569609219157904226071443289666122308309892151898856971969204862850697283907027057716553867539461967514075496692439359633749257434684751718866282135929024740288248957171171222725545333869249553587862537111368938241032121401432676645671409401721654104114135705095819534458989217563845559477596523548852864750800702200201205700656808952465062885924773799966264583428636844374284099207361464236162873133339174936964376479443567897021175574253430195526612997845460624553990553056113842441653293304183788305857156605537153992896120762991795933315863878105100308207162842834119940465982271608587311043011073180948083252584047493861142408415857866713051277082254633001401675739312589179732761238936070763191033996756144672522677120810228671410130771924742193098823320731612888577899394490156065943925739452301359073542170112525791935985584949112141176180392825483039934559644004729098418427952257201587788841066806220043770186171684900433707104773085123213921679575309335701848894055054735187847611796097592448044176609128160011375433297684484021371993539292501173059195484118208685072627335366480481936962308278529825886279209952402471404994891738191364335895071268854577417548960065707669647674744015982711990893400039588798629420827762550384158846124661984047903235903032132344040500067101509481523135635758810673828786112335444706188930001970759462788292531139012742772521870334463501652899527422978655775067363869129680928197580891946559119938123957814118424918654515545119963793615434082321895608670491547965976593238938793083629273492048165895903467361373990277165794142117803304935025249641796834921867029437751437075962038152247845592382433209820767665428850872257238991111498928855407415727692914337776346257147382792567775748958603041866737227986761008023408663676200123792772874556793354406678682300631383464761555485617080469533399459381034044070284301399470000147966017134283152168806980702143328408008391117036838545275891216555952775226573283923835036954106078022292452960940758728262020810244959742496754811619692581526223650478034428025372529999752468665377535102668756055704009618259249939439902943857782660020007391808706255236667721529194246904341568502730875561473341765204836409908749654637055488975340914894550835394756783909171652238430103186329167753002400252596902162926010398825840241192840455480279300165226434355817088794626254735127005482850357879794401607004415259120745646039663117786395850404348528383571645569589651193545783484932849805373344085302712341703149755174444622422587494898104506238501829510452886234645486685237263826830384504913204957686258548319588616525612188635988964323545930951745858079642805383818518980809899780086373906150993799777504155520839620042942753651133745495089859102702289420324492153575789523015274984036986244836143327368159746103129912376497893042680549967488818734273612335168122748574375452359401495360455087915370045788858115063702256719489581311289610067797109103909784188962648255650340677803017994659599597369634763414413125591915359014303423676721880290300043392393820770864103692007392589143951876538880054556835501173448915240096128338296044463877702350091273276679428162962079268262612981125001120207174596098368966912165015960921870808627855452055654892540917721333933965104256353016146077114229732590146991172715539307433853436378918504004016432401108251820697446558640089339711304108865215063021968237194922318272873671938129452767162858308897387939179520986154848352535638945738611119004186057175298664720901033190451089543074381192434530881237622388868071454733428383730906057374150038772411550384767271498044228062621011527449641097893157276920078597094652698286935703378807541133303061632792573440814917606864337710361277599912328074330382144371490651921211333396629213015276526820532273353265243909443147378750909523319249932024249953334102491099235991904350928886694062578590022392757441349308240637304021933923747064258237038537397328006875022426775019585325183430341351060463019707509798735211558694889841829561611447868610474617545965850405855230765724597814159099096839281560998690320758565080373890022881571328664500520462084454834524175138032004650197289561919717022721437906489685230652647118857170135530248950444096338346518197872379275121761078944167339818294921567474871570800599294149298588107058287021587458677328703739965297661824238017651190288775691650194960322350410592889711838026163016671496459649196316579455660004398745934747625078064449116682569515318618083450542636043554352862903280335467125212166805596605441573084775681924512873959176829097716635164092768946715619153000788191879415439284711002296552898571637519608561923381615519156549812645590230834355794859485765525500367300373355025645773811750277709978263078285403324749737567225116907017010456413578956010113836450134573556959766937006348435452747661547109007216779421017657763279344059929547991090525042179290140431930022179862400317378226743408827672113099130853384904394246532109371755302679925549718624557424479034786635059217713902814609995673451138670884265208143259067949831975517564574812825280707736238654637618368681359255992632584211196750675137272279903823254176945290267908406737158106724517537409615010947181147700609922225677148640307886210081729998726875571106096677623663878179110590635847989993728586941051240607406404233954286351079777289304716625526347078748402386069985049730543602940780725543848027492534829947130355561547109568838846688282719025967668470780875722883832725942170742217806709244984253848337146753729247991970791604169739760049304080291269898054814154882329191630353568725080903835959123794792578168565632135448414582509108477496800534847099057272845645918884368341826438104853894313957352145489031244992265195638718865563408972976456595682783181845033761362143399398575475662727557643486371892630639405391146515132209054035056574242425831457083111679317417237869406972222000559461910667810458641359958283381146729099988593916877381228605640525105706001809385530902205636314635860146643599068982359441893813376678849240390194562298672523495543102370268042921207717200245208249657650520921249301307581630249578638720451265927367746292585132365126014708270445287693213396219672936986494567127305795410614858315813504580266267855986678707144245187565931110631599267459042652656165655614634647457625657996077112931848838486776478364971422362173834485843160739391977541937061136594686892178844877590646821944467606535990695320661676392894394881012885999703434614249964203740515092546105082280032651646248606969163774693271769115599327353762647852650159336548996123608807779918165529489951981860546337323379065986237668328368344538165135726548352535656341572232919685764138481176991446139061616160509412518539545300272894912990940098567780758099130225066291166641816686647257578695248626357066862704934241614141873439783678744395042988721798122722655209615788731616325666571759690900933437272874577642022087809698641772264176493850444730801103175360172159296169116398075029558235821200293461758141379547464039125555929995237914933502451494141153249846300691209201411326910795417084129473424899565586646334391834766455649078878373695247110287473523048455653572009004013061726754108858024871701614482509429396669843202798710355016026355870975322608776139700707986439858566572777171494082135443143681740639542187541555419441907458064211379718523767094770232277500680700547036487277121553679536570227661104768484271693333155025867852460420461255715120231722288468250409518379095783743670004130576297033804920113878277189071292863674340727708568054468732007935479683548064727992449152188805603222017921386772344193574251419126189754852878103541370246134317023027077863947938356927033105183713942742541789252363519017197037074120331894605922791749787117513120308393792847916038078540735000286742412300759125578971988479091699502435410695755974924590338968769723374576867360350196018967852359723190743125077847781225582978505484401929884976166350615400875529771460378892435937960244896570062486467928219604719464543317592748321633909071629096015018787754129969849687629012043353659301509306134213087601412200659672982353154103055836823840291809201344199598340442936551144113345905345395209714900298251567283250827817805283974366229930223603958433002916320105833931923000440565426581370415520420426387848950328177721261952079466889173370577845183853343461187031391501321345667944265994467124985610415180090262851710317445497626934513877801163553087979199165127270685042983520613240268375232130369781569916225652191479169585259981431857065198487184891505096108652663168024039334840658488783221598904317869890717164064942631787932100002537032883184002615964237527989126603717188850775184634541396625712600269971869986476119533209940517611779214953467987520326524078384776276165602919474015231995070567528104308642894417614923132024019347559043682743820785567185055877449246670471670119244258951505175357471177888745185929872482224010191602139294706697682346432684453311520581551894332881091933811557006867805299041429919355194908547179568029931158024792753678211718128143514506303119459420163257430321899462121708501328795370610250766888415902493835326287221479716857832376971145236772714100609509098064576312121546236994023818953465478386247431595503521819969553463160996687022302891140841823514929926752720931732469939557657626159882388959717656204964971814123474384351132037870353266182162703040779393443425748797100903949346712645734338639909137269522552315573794048514180905546022808652804063784790563854127643593251590685118082312757221034136141888019725911372853724062305065062423091135914041213080189198980394416151094761427177492052885035866419786277099899306802356304042331188106369699438706542735672473237529493971965077244273740969956150797573582664278203458522139516766442535855380238279458354500928571766187402044507799129150257347505566166626462039550717058773487522977645653514028083967623404976789720209955515014308813590440930983785637691204491425689342932408188729767083146156614321135601216708996667131085121585950926021362460298075511444195720843640851862927805553005356330601564730261177773870005368932857585834249956146048257051906561414139856296193099728486011657340582178091132413302576299574594354082014231181603738320670264431487234811690985900046379834942443854055768704712237437359869604328289657421511129307558010381272249196259002311865801220078123049208538951827979480858639249628710552788674162775639632353438662284680028236562084232281723304266337452347777785129491277217845663653350357786051626442216756601208449002482678025804061976003438239044153322212395201442175915600165024985467664353166212842884247864825551182157700727784824316461428478529642927268785968253519295033615459568032188962545436181961287084681156563795825490507499862647659548981374754102063420591552169189180718737752735911109232499741982896975778804998364653467804888294779597760196610642351328430012414154974102745094949618398563799935355502439603537108548257795778166033089939492202124352748746335849343182903874518091212605477558539677126094967003697387832542941299244930474703405920120534315557494287006131347242667977078617181453946202348007394111540747054342995113957648416484612943696264530922691942909483497343956789117284422337588228849996197302968476505427331297166149155177986803364961208436855612081300945886211650974529584564187398728861064750179119272522141714092743673025699077628139787050408861311351935228083290064326394674546940299213499424218589241992649610688497752708967161008065606791359069226685506956116394541851013859957678940292350925578349581997212578342052948783888283959431968669352338078514225184328949993231695644206274962720929255883816433901859310638981898011497942091651653113064408679443314594319131116252454016235331157114350281145391121627001023707648401790507357744803067690869769276289466776063257621540166985099776598134797947480595996991082626006490769352645061916959029516573340729093486930290203447739975538319644633742055582387321649601689947398028691486312683328970148588521040783284673472083562717284778880479140001629886564621605451913388231927254882255581030444101738061900852975650900372396700521339081128312307255549449986183440284803640887399809244914447168714639937170956822966466597470137029714829862549667448380567044952657841851250409029389490526589417220011976709675784323091895786452635050168543687724602390117427960995495492452170800926686458947552347355122394376485819429644703818987439996988235081467960003473085690079990691173243425321605037358258230560248757895477516376249847591235302984622575951895171404303161578898650626047277248913075379694391389266336005059755592936513242171086062590851086043401805909724026256890370538443279128539435379022226700745010877185305321179234106750053186611691190263975120032360037994404554968907454544403360275157515122347713869088815108360278597785162541767074211250275250453187560932165675880884058694629696408400691880440904235075912894886903770273388270043516366340964414714849086419348924896426276230599117862741219304762072705089835852890992549355344062422993166901976071488977116603413864753996771608352112906801051733884570970166323717322139333294939222460699260846207377754653209221476906409794213242603703538290135654308013756766894078598272062194054207522496402336142012756856451690295939492575393943303584272777017067331164593065644171287546202314512315499990642543867208457185064803414037452174415725772737649775256838008815902090660487085250870366083223706536567119107051896448106170964193918503220436086593613722584221092590212909286732857171856612425364312047921781565969610980655515090507018488517611338972230364838330651450165769115835311212176067929939420392860953564952259463989888847080662282083198791614317116025197291606082950069319917781990004741739600560562170342447135101718937281104885536181180809458803554767950899782458070320883600030736560349078016375419953832972160738086224951517263241514682770733933723679678403247426388644347548996658415659927795962054636745496679497695798879260288761193285399843236541690221531018566341617288793959349619829863013983043908010750154382004862626685089045436642408302407902544542402073688014696712725411306268082416841166920223467554337461995524627139775365107514412221740061409915281877443425157362364073195499375408582261623916051963654735745840619141427104185084082927248426676461537241720233496925220191406543362690254749351605780232031989060323836691107257813480276883812564902499010233917579825373964670517400965602175932372474801581124926754759649531922510372167004409190611188057339713152725646727900193870597039014760747326468099570584853073499191727991376104560291296173398268801593874319650096628959207433779919720937925143087862523577302599747001842727185798075407285124328077452825236158698269608169877963707634507651787528950117016698485325988244517854400953466706038534035439619289604849625345099182659375650726336529508311573161003919483600877658978767539993621003715459091932928917702719896663752751252320149609489616552691111738253734482155352804706327346560572940143610724192946197732285656951304891671576501664205153306428226633268563919748305850947403024240689216684863134755744317780054053069218388475376154987421079103321840113841947531754872118477419331288203272760893413663041569691615788606021322419863406058962128600726889938855532945553210052546767167262335028012498418761581710226050023132908988360087749578511209281231658728068920073529666768667077995109606697148480046591665319114358949667115008519789112354731799544704281845959377954468842314957520104812024558488262663552346870188986227679189828686112543382577712069234612441083360409585786344572618894635720345724614457522142617334961499566853209303405527807278046721818006131053903448811750269551352435490160383547956185109404213442009892642647621564885492269448594498509052739292057023911761029862377017299491207806102344999125961253688456686252723896869629172931793705705719314249409086842823794817646448678165672036903110935957975784014414384454693274741485698720441883976031021805792960030609044794721426527979189544980999255667169962763903575642033782349008519832785512007745310289376245810504910384563000418494978227406372002796961719088213266096271527660960508331529228566276292093373210110438724626835882290060799356031493504092051604577229650861643342312990308105803882082300071098859008649471566970481533945259711010856049070751497719971413462929363710972345381253206065058943962384190740704679036972285317465441317189447608889465214544822078730601370390332114700801809104107187967362585168408242878306817811129463714271218521068593613003497333215771484216125785349309506102248068209857814234356699600666268688878452963396431707841691766486455762859566448538751517679151842483299222539858050399929039595097316045599585108366879089130583167881271803741293128933075621382330066907658240126871307426195290846804419571133754203135664463866973641934788597165421431799031169785132994831244214518597238491994644451465935169217489432745440523288282530409089457380219389573951905443929689243198601803670432821561845571473039789098744519956453164552431651239715222430322096148869260581124201435101534971537153080555884557806746139889142664785830964763604881509220438734643408173079166478607380253526601852775423058336735906271856861618797439372193784254111171138111110508885475297933625231849357144237424758968686912915439747439509252697377514543877184063687535740060857733140945278525713417073293753390991720770966416276429981061640995586406190099259002058628906220197031525850248759682709213766528839704939024985262554031293830995296474924473763823830718964438613490537764633307215907508094772896083478889895859303287504805696089127517335543593162801797776895759792580789278279751196621493388698200707016667457939417287685025053245203856260881100400280981209802949704760288684192490402469348725267179822156878527829015885722732459391570041134471677416263734284798569170726968209953860902428643444865269562866897228767085246933494506697784109743568814109788854328230827250280991821489678904394589661682706553413660499885724466022432282142896671495326109476074038592336483740777881475604489785494600495528393304946793851447335114375541146863680660749246307479791903018879935163319955133886016155155583226807108752893129828229842683409405343667645494160868815428766875171498151938589323180844387801157513184284714017707444848661049247831010850356862749948666223921384997519809611073148381654584343611745360811642712450482498869367786560040233466234037916217782873088778196642746163911412211232839358308373149655249354578884160137023488938401697226851312810316889597982553717856803989431873944990219184663691556943509641149567172998501910427466457303709066390476879823776740836037533234416633576133716011802864797148846510722450049165541817206210143263598834235801565710294809404010360196593798777539232143474825205111317946668753200070519939336388942910356512337809951245381582221877115130256885501836243660204056807219149511859591471956647143547254882375586448562044923219802321125912290846527639396081307487321939999521243925213125289037203446950965570625069506847434740054719549631194745441675194840953233459150716230655801974152293864267077981387853673731420908593576600057565682216855970475012534738712830737435052808558534410002821887967439362327629434146678556346588987001045075658920836364896922363749921253909551571562146480306517358631940682984707215161900048406866848825017241756831972950706192562115058420791705361118554445759117817767626361092746749439970574505752346842162558649077264818060537451941289556773601777421349951899769694410573749476460679649358067077609254993630803846204482182409774051397388416367469952998257969466845444552411667143297325150182255413373076943990056025850850447482955063241029018188352093410967458969060086818277506200624267224930137394148296805136781296874126789595367689676898717493076721350950410575484276015313451771953193100454837603657106556680368287908036206360095397515124184417768156313353816839112239516145622376941282386882849203380216404412434804318400405166110729294487772424260495659171287157184055297025749471651841189757667035191898212887151006341176952922286084148718276888911067880751170611198703971133361784517415910809091600234815196412160316846458976572373742434768261247896695895978091286113955155108683619796292247823795440769142567971142013610517110310421553952230380186851471466505904074849289684302874782669669447876073387607895839317249037052415583724384674927033968694240143140555621795952282477552085967456563390780816389673566756189663547760580718309704033863339554925651993884579329227996042832542505333860119946383384133257288636294008504992184914798237262822131674551431170848370289391717385663078889105317860678196420576277412308938541842257568494592257830891368662638293600515680634279387885201261503145405937170000763532438268089357269586543672647410251317134410389567789544772846281920649654782529638125271626432448968078761863810815553972707657505169932299040722745224886875365502755298178456041127104307717469565075430793649537677631756664923200987227280682638780697936726275820813782069857437289552975493202171451276509446998985228054163370963481505817611059681726666196156455145099538874418155444062826161168958231669343128423864770735019457138487247523598535203481833510096034877143426736628842294803809579536607743037887537296601085463412026202292636592807626317452131502159071292667201738340287605085895079294871259557198477177194209980859465390566296536057468343096739549111534671193851807211583579311101000547468355114089542913076040739966994102766126363427242217160707436588497850008589985483645863208673011215774604536315694363573290190697600082515918123260617516920472483699575714942079276410674876967986135197474540611881996807033530258698428608662060358801824323052993072928925290936202568704886139537409251570962554184173014515209937797299309063398245648507937891715949788871175247332817527993540048616810102008661221984146410799232552490525351175287026780041842187924459721855948277529856786660904592594076128260367037955580822296259888984690250171683887668230469847805897698411570613356545485326876556251611903834395903455025142957934590749288619632477607676061170932493431195187555733055557111605391142315031817048129643824512422456307835481372967336673370943089855382148285574733488590452972381963132446268019435498972599498137343139655950543612351850447538663414299056881699005357225097102092675302121628294651671659840172573081886614142448531058102565914634616551817060041787472107121886902934167002318553790569642986287100462763410094693568736402749501259779789455219424838856818692385941241395496377670584098567309584292282388439904622635083566319861157990413477929886987944879559739854944410523117571668303814529066534204902869245080926879875384431573789679245294641149735176724753732093264717596118558666366456263144057788354719121171175565536897904921726727818764645218739414830332351074257588583554224488896593980003793488659907031244115653379145023320901136751035820178917185136115277531708211752355155062727318655144385986862905494787210956705547613637800470288636580463512112439124892913344649506346852384743889746403628888094827909895828778966567292735191249237997823141269462736878480607796184317255081808435318124413415519673720592038885120152654373485343382569444465106190536041691083408588349022349403964342274785839017799002615395046369180784210318472892809781146192385340778674935551732449362606053064343945857511709054538224750028558836711385645948325269090120288201725274813086033948614176444932980990765701156377820535775154334420619846570767233011318576626366885126658721358294328971293033392479639045355571523925460318126090607048678045206954312718885577714215966678235840918862663068436052139396055263886502368472096690604324438601590793477818293439395564153093650599949486598820933216841877666473624794806224351091673228206329106314327049088447187297629061518884379901388420072651116027199371786873138621300439567511252723948488479003665365034812093967921007080416901922345544956835307291973524936839927446091854379103950095112447248368238460531345997074096877854522297763266107165709029594169059400664097174432041880162640755384870574928339151430649530387704431631733301468342726805837982439186496409420360528132224115142690159200874317604550553138824433011796427610053109033819811497627269544357627478029594684653240927989781072904310903147982501372569713362669975007026580500510622602126741601073379089550223518545235256124588083507527482316300200937271669044425330240687036723177250644113542261806379017221441812904575217095884663685668332403586135838380652747159376189793038421608178377392074973189489540177069764452192225250479948442742852842946266471380383695593726130818286972180434539607625996251815845166363370090568587387127229489248597816929360463851246726795449523386261920683523034329574244530860223086411969852461650969036327605480658877961745607421209718429539549613714581262640598362769277543768552831938731500429067433639176915083360806083788266259003570306577888361008985891281078662507005661981295405847377911161074233737294799005989428335035846164882977148659156992569670868639524707975299570042210138784292890741429459574720054383018182535127536632857407071527550513928514662681357864117539467875842160329092888980238817266057488270906115560053398223817259306926452978178657480071264060553628644531617556090152319422579384562372027916056222775412361675985005114009321462475920657978826479335926280514961315930968257254031239273594121155977324826192907310720676907164700201059612270522040652169620668366118403562057833163791454485257594348109932184226456142202026936268114751520663676046574680527988784348709422624771256767210702772950028109397715787190842261340524489517685471632502349715608691535905211849169907494924429845142834797339232791561212765999175149507421165396210899108353828817981451920159529467536410585742029150838343129272557942959337057831657751753858594051963772788369530115284112858962858656596628762439636058963260322837241798403329226878043565731101803387678244501825019267012376212073825102586168457615959759141929661729952783791327906055065438044630110437683849898256697527884362506504539941549832625086845157738581411524641609615431914361470844613285063527212876164256417464283274003513642565865826858065307899251492755503365461299414050798319206223052794124707082550980519485827007526093630918494820183805378839565753659312135407295287805648083729586034243091236120099507502258934028988692794488443154862504002774318829517533963696876418771263393043958884742771312945193360821736490524370257206974922769032290440184624530209231488038064100299075159620645042559709983557452264358087052945022424585635767757736614020205400992484536225017382370169173684608221159671505265984453250662459233956041100156019233703103761804120655819836983482527608664815628763010998077183118003386433926406113126776427410686621391460353565639387802817689908227136988300228514504799613073250097529785519559340246340076536502486881392685510193611174750872393047824376803084956253616682675284193716403641212434937748683613662858328455159503507253013646505169691399570064867266353863416470790821809705715840322453195460805952647651457745091162863162681678061315169773897731829408830973565850050074452016596706478591855958540169223546576177398144539636540805909562359238400807210283668606605751094236542761598682706365043198518637305788105973163534966034575184247220838038408875776948830695674178509311723227258894716905981967629693797713721012989531826499091256428533240860725888545539468200191391726006590593115113906239508879269477364161335462552612879746580210271433968246208106324834429498079235128412728714244852000950676127576888621894009917794876946106852907169141713309257447024820303017103690213974954016563917750881909708445214611629245638671961005813913616580701935892328727552414647283763160371174873038229403975687086498117330299114823146036062194702581890083898622271886637726969833732801206489616909952326014577710859155586238467065234184879028407841697032632803162656366273057565437683145064690662814051618552370747271800608745178265131032732614088535655884212819452293480653812485724388527625465693870283077015460230013787633532510810512970281554931884229138406352713959498048172017114326876266442616048466794307671923458485001762105227525321567003902975694531674949799957126820962910210039403311832575418903672475915589815636700088317714583674497576005837408612248413603319520625947389876973157678500961962080970454290776630332829038368718471242195336634302379010861431862652882158399703980868955657380929155443721268244629017844811621661945204558825199827878540916479709880230032402626901240336943612448146921147187016755324551422331096621289317355257323888190477717415666979455798813569545299940705158233633705141558485048737223471967157087543913467035935511011759557583164113891301225397606577068612581209439122212095770446445989889323925987771404457570930103754861297435094943893132439936412883210724926712973625931868692099097042122582584426146432159025457319723947118176009220025314791795188397894574835954021054467078672298214759970976422543118022616215019931740195900013236856192151797813770409984722285527730351104545734838348843784542135099448974491295101936439448228243910122326907964527000526473053713095494697396442293629780885524072492037550872069546467012238865089709047924625600934101991118242027123107544466585276526319315606814958326003919166401239344981622340507929870841773523005426689098988573947366015278850426746248864520425626501483876263554353742510305552817600168492786457971065377597845265266164304214651494178836069869958660535569811698294103246026317913190462348930792666050992672611908296111923308831486796612885216072622958562344656562133537681064731342890546468944190333542611598643098229713749339734443144287082558470579493414837437717855340840574901414821252237937454006730155170795730342455258383108782043543047687629157772779911153687100029588660824511554158336720155887734840204044033033841455284924312931027324128708840352067386981518199006897830020243751186463892736162177627228218929881737632970229485174884008600188241996629259789293690032628551931451252387212924407439410462463050107163110417276859085540363766360649963183509579375509272625329871842425871618321284924466863095086256847497284138972170572724923846338487414798525628903187111076887458692379295094947429645507750009643024050610235343728288874029372037822332368985841990028854314810984022202256994989028966814172644684731004583507503616350309595034215951480869303017156915591547892335146986282682187669606486060481117228136207974523110740457348825658603045332719965120423550255928102143769507068203323313994322432809994047839580080843585176766313607148197890840595248304543190552900962198218378526110226520416406900585261173546111498648570456299421574152747222860858268342417623398611866203693750210186529748975876143974738217564600944763385334083969693178701842218628261546725265244387986884612974616049143686798088248735309943503563692389727097266576743778565242720251716398224455699817613862049865721290691849571220096858635370912541407674611780270463195955170872154871775258568109388348816066448612598937396118582360027780183457392716573183369781989099910478704397475593401456197387492377218442122877497193079562560621569434209230616551175884729459764047894727342556470061234062133712748141450468317581323723901579378521575913190010235683707394743873010822030135615890049839487556748169290002441809672423253786008673465515663666439476171671605914878391046928844363956675679313461299688279310457531185946677407872363552764239449495972177413983478454215831284900148259322197874849509644240140265948653519387305784476467278929360292157913333267822113351770670261463426214040638598006393357281372904385016653890604592378336356485815990186227508210520284072287851627317827180260456508255869651213970027677363490085770274128437726772870502938079959039655826467652981228502855001138733709272048164965892205215984114811936804343202532019652198348982839811417394329295189567988220362780765093559877223897749480309364843520014139772986542517089472395838767809141375747294469110771498610148671306751683740868239528892846480409813359991841927285271351749268982900362419817025664232162893455700423273089335026644023575868270031443012422595030260430827944542654645194213056336964282462566434261949870230920611182645513907411787522724716258053632329723259257275103660643683237884740602412370837360577279794385665193152033047071904862135578698902175101056459262628430726554409267411107992247639215909523767846927698971096771055820125201670831368514720466494047204351342442757393558426674665484141822134166171236706535772176937261909042098567094235923550646062387040664244521282952298169850892260902636578705975486097082851335459543932843613728936301966088771407984096079739130290389920716514971624606989466835348963738143827446940284200680097526081834907649803417051662717547829917558483754170611583511785668427551031808485633868982650933123695329858365050817692218043461773552621683707040232682654949291360265429634354946159538581878970353231697167373209208651814346193002448202538573486873369432919839591345989691045268027534438513352005608795768126171140379027324666762750289381567992193669410749954863519536206928012915017788566539116270441939019247404036763011026583624308180255692464792993282676679875417348199092892719653495816038593603041377113761365423231486955650096686964242333341578514418248525575095103171734534442013158662058365329777292073370818108876375688389628823181530708486889330283256467341300429091029580082162366907337945725182585307424582016040427175475762694025268789218658559225543919066188871636581129008979867824202612928288183488190385315766173426505943270094848838429465979761688333681674132446134016343377470511597398982032101277385181846969628353746620500057802371786232607129215108063673757802672267667437450311407895125708982994819687654666648474379647940947547109710284387702159982634501471972767330411516084118655904514346156244339279914239516314757146767575613542144571408029038018849023298764386093230653019627225242220834116906821474846558212361899717065437234460956011038852852437675178253386921950683317082568344679539666688845800505925810548955440078902042124030550849336598002003097540804077331503774979725832146570369353818252609041218723399944017199171837701063024060031363471258330605783223238886587137916639048292084327519155119522530869701534023003033778584659672629217366849825294402532106607806309030740060007174737228133905292469181531798007695344776750651390970038037292962354391374383504086215881030287623309854939419443835482573102872185551458427248301105451660454153413038784489178419123770515491826318915420332629801981637119627140808816334544554501769269846723827203104153597796110250409732405760316281873635778696230034110851642775907451442659017327348697589287388892298027732809562587693121888699504905124416795761057772122277913406011721407452492663410356351427444658856016983631216339924384734377239524177319401365478500486884689065994091232375581019529307607665401508560397449016905785994340871211583531243694704849994921499336599471203284001084408663402639568743142574278402016147631320957463918759434374034036049969034088248804816886973239714795545128876067366474587257329685210693067430970907311731403813527519011830937375520914969333262370980784717404763773978892378936958408017204255709858181659497501435091733638616619316624476771141629720781019733243122752987309827120589078866916653005908716011385964058844237988450540299368256924113601020516991755167463751098544114074544885084625175333195496964014303600865132648675924560065417985634981857992664989016300736178948062632229119393895988263945678704200247900364391225328514170745540301993317764545715580385743456998795691260466654621732828840638649363847030487277377878431253083641273638901394201093687635860617552961498089775840942914182538647407528237707691285108692536654529043031902930530597386454609636733704800631582820302291345608516877622011701836899041270205659752856329630938940605818405744188474395609420937378398633820258394120330745190799521743191410289137289586103805276078665824210165025240211726698413344658087332233390531178832560007446718603227215051304790766744196080301806789666548038487266677223946280782194180883061788933960006921464380245732597085670495202654177306679829637449168992717678923029117401195564650946056760787709734269112818431994390220009767956155722526452351616767621120382329253071340941527399219343378430137201116321871956335469703961495854130016508462088349500132519684073674941558996942820754004590967061097601711523333303706644576003854630909756726465537789373826050234453565323387120315163212791298535839648174019073887829072793470157476228706799672868543022108236566072125090373302311042045175043712827190065892597465571545164566521683343952706736209693673088887538008944800789015587547566644635142611582179678080772673864483650220766421013881912557586699610455208661203197260130462247411943733253106360373275344316834891532436835795233277024295190721248913061817956247694272069428193666655683663838468822004018779418234912750980992758739960731570418151147283777379834698244457305383232154032751353968701105221564470278769959144139651697044223945128299027764026403595424407772358914694564966087335182818727134472366028044068841423798547565414508560000508718101215460100280872013339064739992304854076842397114504995833390586124534734497002149418501953663623338390013197078472259876787644132650930144237529082485607164054316849445787703242067118180626232947999701543072830520898171772527453644608227159260765221976814726438658599441849206917073892906420412770364281455469674591429268727316385449937904772851282407132806096210186968590886765277173603162537738422414229579263230552133587230997326253666249945543649203078564640229961039777821746149650137583599432745329583270359257442341948576398143303674390142882657768118459909410353389019329941637685679763358142165294662743546114565804528530137768028089696583821051163588166638378873894257993399951045135787619269684443476715882982952976202165375185132197341293913578050699070457657526322049822670861400007748334736979891950332437683125867172470943811708674853798657141025686814744838217333511013039616574023157055947375091969142013799754280133761970618092006605120913683501309916398648398929968441602018478929223136606359188797187714470696292456281826883680564646856085230150563950038617502128581343013992723556466368768854665974259409772365238381451255744494944304192461329652577258664817151754812748125228855478125175168200963446807150013745391557308866009516239038844121086816202240920091064586725288298321554390717150315193463143450492794503901714834951161332162065746974990000045785458279625073837468392815825492693773525447773681784492769820907504579563363875750534722122340881452988460585632855034535866128215440283603993920789280300376300934733077143349807345020199499591351922146916870867802841364285803073206490413740657397760478324044439916683634388850726539987554293878152114049763898648651734017317484119109615573629463058988118222714225592726010743863304577896386797455527012538126766531003985818345585265045357672993290026984973069497897128320440952216800798708258797134233453257852936475826553895168698454818413879639325524969763841278712206312772672204761503822588427099472774782317172943343955217760481629528843836956812832616003117463580301506204358278954957900245350682721561801291891484720989649872936650173931613631043328714105716648697058493464209822159954646366758288230565214180641521630450381301600380113033866804032783762539365240119049062147221462693227896636989105156665894801789331957968753216358277099827699644710682002983346042058571439814126332870708186321473600268237791315577112939437126532949478604399442197980730193342498659156386637943443533409471248491861203596134827764989188814791871930587354575127559665904937506838617981057960303598476671026084059734640687192509038165071043948595622239287834607413988988167458405407727625474154631534764267735413555906547052666160926571731836588329012926483944069264249367000264938898123833073270680162308798903667086749096244395100480531818097503293815124707865417652756900836817315241502632052473418740013410520135985516027432535073039755407068712584105302808849167727988461526978380413546268121013315567363099408225545309669582563882406801360212312595979518296073408124860884710128367970789509900489972902806935256722401136178647553164553775664070767282455307661677655481898970816810925853058406563325617378641650897934710157787214181060963500008561219791325755760373338987919967871075679363581147132275299211642878643384322206783090243042743471811482197348535485780236540174410702566532765427579435611047530322714701959820088647328301615222087318394733142868898966669004021200954700902930708500306860961137067592352662925318393461846690122990890804637619862230316201582700190949039502035025403482382008006347662996916810429084750910239445161886050290243074285301542123231582185455716218202772756659033001236906883886526416029841711884219765231035627002498018735440685161184486466784642560463450917109110038091858121033476569576151996312928095294570380174704630016642816151198614900678379888856990029168331581003957080603204877810512481782138502240164088127244611923962342884080348326833480083829382157850433240284225646678018699637799555895028780320232827273040027519603055217807217159517460996329539661664231814520708929223981748724633858239990583150357306913787109068777467003371290302148079184817504808962015288259068620282234444334137437898412959347617856463939635563494476705578889566760238716251529244818356982246530184012304362446601547738419241688983743557058569321175612718110087767699920489029429164650203063201794011716877804874508747572281467834124099283978513340790327219244489195741965519447930048127029537477398225440802185945307959190667860292287164024785904815824341364423674840183118597379651813609230254864502550170432440528616254639955976791910575508428597076428747121006088076753493733801134065671812077151042859541987128362130986653125995161123554533449351564936358834604417019780153841712629141936804570173342533092155591763791222075962984597649840958338713781880450594956945117100697274984690353081222076970151630597818461595897016524371919826600061982742704234096965542176347676516766413243381620959292975755526171886826450660029233195353682693757204043401776276351236794684059026522938381026036464246194703881715067970868701702195355881155671201787819036052455522220356895441953487813023585502993839154680291633486612230670411795998207954572353248165987232132989415702366811230876554661067988206877293195633108602956769412464521703098531249649215093930644420332718865502237663967095715850064471728214519980521062870557716532338133917330066307252764405931339480702097975040299512695430052549292883775225807174063632471474264252361413750928058097197586745432380584724662793578873901465171694707165004795852084418862369829632266345096005834965133330402188807648953948578910484204461222394493468717187551813677192653254807036741163934284122737445478885994495863939961877808637106840836143208122452298043766272357777994886176315193578663195958840448768276890277106404361403263623282471791866792052362238528173320353467805317064992521392833968910094833795535745254696857968319806927369049073776199048023865855837705499391067630814898768113103384274955072536199027512887014717018173330756828474259513676418861111448085415528736218452118921228493812024831041403618278929941713879981444411089083528154847873546910557748934593082491069498444080823852882314083948523778354611295237528662274746554678886520954573839597994442343040025033761545763779864448486564367461608508781874086286091423147781394870757958798939977664261879226621555189979505670889146240547946675744623712761351515477116869945080247559707757409561989359168274468575061982720229854539486348375691361050993112783800459785780582148488722156607704508596146995258336143124646323155435219749494606634992338565760566525397656730623897625676042161699162042258039905495094166639083770761497258225586335393122384669268605500608530985446721906608583634942401974622642037491158707780662297634429960180077957977860138887067988100917187032776649479490789323670566584372563296298873387554447848816866318549769856982955888824539525629287964275671795849813889985847177562553265563569364570454811793091061250617886853395786426418622900377546842401771131810422131935193895704825862443943611114282866194523938462510401544598008190752247481113225722607793117268291675491157295651920454161308889574785113562238498534247293603424492413563944308211999772413534559908878330246166096833390483101906300760184792426541402470695405664265752135354291808686540886792588898172225523937954683898836969288170007540790917366001034461969832019130719160414411761562917993888782105956581920900744890667127037760592143068278024408995979059133304360893559576794494708355908901038088837102692088933920863605951942099977240208469535520934105818921776491934773711013239331462355335230028395452100777027370408540602318831021818744756788988102804118840479464514408336357695665991506622027399937103941472423933329356740904827361372907802157321177645271466392039118182651684159832443094793505765489986805884143102806298809634114521183827620613911327239651833161144257685156843412023423780488701748035439390698976569465553315715740849496775090612373540226207176652590343789309689184791709932948098679012672738824626905136703602112046929146430159683974779483136930088196226174482762123654754125496031591405802050520839211874038399645817886729188091837362980892708582870319261733993699511774695521789214637165399223935077176010498126044801004444481285887534661459978238928048592500456327841554553130064309043046384237147056618604287093373434180336650310940036204130632887959766885483980987777935362778038024574901228649131316209278819186168530486285071235173524819194852636074626930267340782972193312993521560613607513077186741621708775583365127430007335047533980194485542351441853516676742406682756508416603009620961402527031180020686075262852771538170202737304102254420945940905200906606799697789303259396474458966527591287650546129525301692112330202758421047393470120237518948802342323136261070655130621220301538452348830731439038930026722872170440878186464373723276582367297589978556363310323625377882139926462835157793299406282956157823571536906793250407035835591360236074544428997439382761617040977242580955284708697477258414439340352345001949916707243871768294550989458194130228601876694632881702000902712641058894239581220349880536235193788083400114126020090008999775200677352436825874742320101277102613087233467293319619341843107103727139825835149572357048250954433199674195087031033413095895597359211825854621460169280669869888239873226949060589177427846264677825638667415147737954948057114117746922169464192558109674426072872725734280689100461060540939176249811946779935892560268531803976315607552041461253843865159690058065081471643569791684622142034685826032112080646269957104791949393655059274167294228164977321972985866290949854481420668388768919389653028004460024042583156862049447139097561397408031013710455283690190972563240304098779970307185274180234032468828275756564783174611048077140801744576394203808118432320920080916331701141292622875804822811224898308706067526911162785979204227388011696851585638283909013251981815754365148839258876546136311456127937254141352106192396942872427257078695234527828475581455108075052362207487698147041058594441791327706510131348365336072082774349023050712173086704658449234128800305744090744055063425502401441818235085009364373406112082082058554417264315520226348423243549869462630330024603387941922997750703699050838275101200462379485579004080682238528019078577163683668074072290957671430601365523068271349107874427050861643172241133385969502539889633987505284371181576063419311665517864280557499321099293255581714037023100849363648946883233872900289989837585898853750023465960057327004037342071077381517104232682563575826749057388353051896740607064083747396538790741096398421621765150324537060342455672137382932808251349258377416075112508834056238005270543207978154443082995535723637976929115835587589712174768073237588055684423192269552320551582011418128628767531161210788155065650019037063144623468531372338556435759222141771087415215732975784713376630914741655491956288016488495632592198625626468505571151334350773299802908620348221341671516029810493000605271275615485843779621385323137287433527024776076605918553966059324912490824425425826438341340615709594859036363519081963519797741821498991638109594702644476197120019072781182584203482159608219690956339303737013155692587937510491623974362140405404754006264774507066833988533005616580980613369054185081719823049706874588370755304476380476555704238696610404021784765460216650320120446250477738288833784333290834555132506294667656706831344356212300720702427467065945130011043093417295971588614007096914658628013700445390114035378585940107096219013517844593255399017912494675945818997263322768595728007429792793101052688421673854149773768300235500957932389385164827604405300023896832176132598662524584430290260814440191579482345269537485335218977893288477347203190314729117901959482980843229551136868175989404776565539853380986262272491393987627377904662662987809246469579533841490976565902647430351531917460799143699727266162050811017860621178296560745778715798093283583862655747638183138849779412761316741135197680924835520102300680357186368895624768604746030577594527651298059306346280742387156012327459419481929547873027467232104595848432932721120125861568648556101445942059531624319418905084650254632176779746420537542062021756266980736593544026589532402364686265129984397775389389221344198822854328009318722112486104046974462320648386206327175460158504789032025569898563463908881585482371281341006924442615885753228513741484144736584377690679257695091818336444772434044726595332801398338428936136611245296628097256778460789434291529563575695271314247436527724572880161466994917957982152164324837008725683990438723477630472326327351942056607595305994133048751099388890537265124984495505694635524783176361921742477126904887332064709570649159378355421659829128897983930846524228709204244563584006329046785143971000733137629796594418475049960691956285167129870487691091446961795586225824497443013623585381982440963695291820163841725356577023486636459074969736583206469229688348511471667941663540639594721217556290762497262791731736013327446150253430828655625807339543834653439454855185250683077668883515757073487903272763819017599316097878486384242623937063472287928719193442686097341871934646863920327461319683955128493154140434654141310928618219862208234614114608910677647699746794342429240163127796841937808022577115810089114672238748448555728458821038134156818979297923708671299659378002266897842825581720367620461584413110665137310973334994105721874527953489587736693646135131465670034938692614677834726204029308728147104012037000254695836974500402160582930637547190676108694714918639029283335590748978899347392168715454539287292299101325842165698832593733667252394310380788443090963794656030293933185669833481354037027203055825639053938193323968240625204905897431350791678326022748976424297768766946380536558112754815909463902080600084457636336591984898136063044250424225912952074163891276601990781629282072938648753637551466828427730032906194318916198380104360596180683888495691307543477929260067039046754642984380712072351182568820852249111592473987530854717131544883840416788606873232061689724948817230235521227198759694387166133469480993520161346731087367807612548433621043783390130961041005494061093789580959057940060421193824910616399264782637605264926617597712607290639445554568447781750722060331640028463280575338287290304264126796564268198371790576104171216286948977230266712260149103185729976730383056356356910845509463466040624751686393799941699974282728096578811205422019762824208855132444264686516692804924089193163077655373365025632117879962459342265766119248262259869126712554113137300864804963943440657667070684637233672980688473315249120296180333620342703434704424194882249176557013059469049335657294787368626769098970231366849006118158430468840532374035982883135575587010542774435649641376473663541520718821850685036758718579188757214784874363089441898730760837970848877780766697014598286897266273130278887904200414047609731931246815183655502956702997117834153321422690723553071336645706871281539254189795195750365165289086758926727974828123303773728432550084827302886549168114914291049599737224632583416292295928723387418826776706919130144972570778503051674714519927751103809757056563089108106718210607231598884328979994000881333276229439851707276012133601354622981027030560281216902071860333067321049704698248672698166522560477935472215060883243720410446341644469054690324688554003889460833388775795800209435160249214349605273851967746532435291862515824305715111010854899839707035449210300021060867106062173294478858060069221171755526956261385134407275178792493727658679459160600684488984276956156208438144708288189145636238053412975308399890881500029947952498386670893668421586640778088442353387705134191774092369072912609499197843039157792566903306869676992124263729507112477312094097912502793176936424983700717680099209519657084376080130936781947398461251663755652584701299760789609061678754749058340108397687224637256670805220684801161582942945470001493742104796096994277547906567172764954962439191251212456918586847102499304424586926395994652937801774847725248885669101683974891536000255619192610165445092589877630184839351321858304201160105261359163107121344731560808349542446312713819487996138252241648806890172308728727299901243577581610743773428437369162630116078838979468422590435328311214081115347813772935946997866997442220766941130499061094606166870641157722305952442957024725496861809793228610173779215370550598694358903784797631512434819210797484543665691429632967418427563804166098632817828359873445137405003366837570142952555431444650634439548526420925663420613513908570826693682708332174092485841667763088178592251184196015555715062850243936069074126850411173241504462678493181529517799289145970446724610157037482885607395052906164772750793171359775376029991314949879990172385617322164370017101308204749253550815391879294681070778583408482110935458826835957015628645612225668222515286760143352151377768588994957325526978265081031497317515651182127640200289190478322373831285953020889474930559701915724222405086126088490509933377707826023804521083824683347900389922253862056253697052637962180417039445939648270759285724553711517167363385223863226981197730450796485092356803688769887022748007279464620602992902578624962262495333484167816185640262034786908178247078581931961168977541348778123801253666211480533721165788943804697522558661484325056968776626541566380671519255595806252158714568812319271042303551227593430651249291123070150151524180282493452351443981318851555790815332746904318916440002983897604737202886083645623756812021540109764895837408983682360778622623812459897120579561046370649896648785473380043562003951900950332239905132713025265390196758314538248159837017150470872594554761504960531125020713292284336239607250982338688552635618157521372952422589371718105127746253296212373122280254537722359717530952635037749574188936902685334835388125001355042306071504059737856497206197803281621477427171797832447263898952260918246361504772833210962506785797933264148524513328525051907252948278180521878236151721272692455865095494690009633849700954344443859809926166982749889654466890594109526026589882587194475147210550718189242438413221355188060242028031507494562902392458240851915882846912646513691806175501699840419211310482437978340340968830519234382841151788440624219127208182918303118467072356683576402902995351239614904747882829581587112821445841980746693313972746409721486482860163285786806014429037096140720675569370426073797675393372486905697132250534507759824515282124192280921310607955508868231743816055332881081621726759125129719406766800047172609775656274772574643530426536744277891732106289135344854664532136996198648309508863219813710518412286051689530278984058969629472362830203108218102184260734310221056667573390459563098746827110125854019333718014822580529785185768383176751350926097235676676881559264346536921807358554442093884735902917301797518737917081095695674159746182308899794558799039686772136093509052896253339414069562386633925937585383820213264707321007144285965410446788902576208011315559297366206042897042843978474895580211183946681832162550234286331161388018244846590008850891573706614892035117302242857182149140359899575513077987076457426157918933412442263135211022625504334505006588531645929082130673378689920453353851430306620191168364245987707145036367714142238827993413041336785640418073319542594348063972114576839108404136341043012268771274231461457394201929760957835247418013993830989254105236056442400067578015259046365202677853372028203022286621255678494510209220541810927063270559102846611907403870276937898085038314467349344491488917141154622714361862961509701453746501358024168958474905497493008570483829889915331119495371234567232312918043853194371211526156885571224677106997486696680795892639395129910271814105084014627254805136373659526444830930583895224834261085966575098395077771378759245245217786319161069411772566157087766099793605033812035035808951257789640650598162697508516870860028215344318114629777912910613675338998646841973494608501084592331499247910801330308843746779323584761798866806681083495299290266479319208398432316938094160557976518281040559833895750324987933534548707707036098771364413586480985196551135208158590737421409638631992445753955272794310831258509699964851789368668266015336060040142167009609529882203103072030463321785681893760680036988338664732003374652723973781843936230822806840874760435951068587070485297221269251573780065407437947179463217170381045472256766227948182685146240652653891848953416123210460862382551074679580600473912591893050414508164325601363918547162007394567849293844014783773821340803072868751224921929699536500101760058533009849018989261097187098396994555466690463477130025334449977609646719242831601710165031009990448564545114554406549906772045340473558559508493101108423771352091121220288037540658831753516875509394277654069540491942019977734813468545052184000496173774064100103763946635707084605292994421978851748576684667248569680296249945961554348826844975833636232578005298408686351240151351322639011864290684902065790982681653443178657053559388108412995084224911880769807172418975031271007529389034495917286508091887216422857995478616039195252164809618483744587161743427168931816164203289860434305846871796677890909242664080733406943616465595806355291331075101356476801867847875793881710496287801237889357604016788777128820839973243402844185550893973508772259115767204745870198453778042807203179697115664689776074007663548373017460412979181964061964106321596526471389356363895709919153023446984294298473683266309765503684581067405964683452254354174465198551111666409433923304484997617835648787772868907565504490449306759974582603220874925106814595964612501036002596439014098716174419895893518800412685788667725655853397537309288154361300549590415873702153152367534155754357375769320158120044086999515294603471913031462409752925850299488560406537281022430868386128684478248513787128510855390877685582632413700789665568362214297703022334504728188419576312223866976714779519629047301767918754079146864197595551279432332874285630891630369750384917844263014647725890899457990821922301284076791595298199285626973902649742642691768468234084521672569708851214995232360840273581667218121456270351425423710976066787064379979931253590803366513181364414010612950071891731161761851304382403715956332037847817017564215156872993793568608275064844050926774686596350797191094172052727013654387016312386222387690658639563784655584469509268335256387275269767124716275006861279494673893984121715660398867963329131808556810243475000489221085593369965422095074630061858996625165092473312189442527202515680178080598530214294627898667131369838160722514172794727569632833805808073813262277691444418213919314863224282472703851081297649269713166720991636756833464934631668877842065816088502409748243550472995953797159817731866383416539882055739169321842382659260490183858054488885944225962250536647501106354034037078846274678299000931427759519489165716430993026766392714042154876359225272136111448703084847812235571401615912168549716958479728855627988108334033426976846792385828415542019864266107567644495864176400867199458561896939832837048811614667342918370317279412101632857960807306331946357390926657643593496275658678631233784334866712326578930166703476669585390425855130604784600730651021345107130041023195914412454499536645408005234183003784555167673977174323250124282067057232771450499370999613224209543159543180748917584883036933825254965673998209717358709370437802196324127741730839151097755229024500601748929136780686058761292421571158523783854605889056899747042127970593863748665773249291004210735880609018024646256478051494734577895341488723492376706169619695260296761109487519112054722982451177003342401483637568945610248821990343184091891129410946067468207912015758445731286907898195335284245150394863815596129975254628199037915604416956066352001769589622275281851163996045286531780222792764494520045393352958936739016181746038103791564191194344724057622422427570759845988279045700312231565424787536957751718976311614744472582955601882899365172084215710165741702535985157202400133477819994828912020451199012270990094788805197055961564534583665589113396129754331578667093331601789277025356320278685823331928489654656409600229267262681582908271007662778404774014732829476949597369838440589115137273641428016961850713457977846315526364281543887943786256831491557197946607816750008838087903606889487887743521768350459988698125576122510263672060104687174683151378734214526490758151549819168423991950970137256739724415230260424248050953569545390764137151919029837495930241787518559805643464599625820844054667424606102665219118899620115237116186373716337620213912781689343883262106039581967481025532531935493188966955180316400543019890795132358777566987535186898094563691598861537989861891823450719814034457800260787698700154376979564066707660764966370624191822846569123504274345127288223929751386151579100582963322056483811427116386085709968812043296814458190797396420103535508644624592604750281913955469139325280158400834701884684957740621700691337826163724269280851555302346858851345729695179053770377633475204921748143412521720725849228857574729622913719786293530017541718689241642526571652631945236877407996475739238741009645911411500448630730894814854449926418100710767389782681577046478340129773827554753179206534594566474597130033477212100633691925108932151983559259999921973334622525732398330610115055158458602412538058181887532196533450071420463641736840026976844533141035520715586389407704102385261308398654880740030719412963201736644201548599130114008303561661295305488077699235349165212227205700138490346467381016727708141843706148519453271334686444984255863866996309805001846131239701714522342287433298046149897182723954231348469144383516287383570291936384069873763910932762061775473461754811994137512707295723426233959297845306501367707197319699503942214727957624616008305580655430916395009860487957572324608754914937673112630278438068364582307491763406716856140354809582146224751303362400153048740117395817352805029715503205339686459583035875848098403665143088127079491697027426507301896685028985112752669396644948712170440825628102310578666629243659585474868541598262466409323517885166811087514347149826538823380363856445822372545978850589393693828239354402070117117718936567366614119963814874061258590567555285887360483651104113113851981611127799480793123106589052371568219177164733503277889700917865839188025929231584124511388893400371942438121676261181159701367823159306150191924991164154749618276143998784823843442275556478832587387713924914989753781367644497118191343710753088874081366341905690896482924770759389939477782408884622113643948706827279700053292007306860155976424019782907362575271234346731468183081734863614372529596928212002582922428758089909412056337398939553036339924955388992536322385078618406998168551320672603727714673915511946824958486111890683325830639151700427725848947487482780507526579782370940068278729353879120721114360729218475613998655748191297980602753069185961792224438100286461058348572598990036593685967396355052770145206475675422815845389982882701625679456043050188829228992634551774451360073974273966334881183280806510568729135849231369361526721422282588610641337800538009094959654869093419481491980138223605829739427644640712085272874726948493053478485625603682930628309578880548326111638165513909461440054766778083294622216252343962896959016671818080350842498243618987273325755575273576765930291421326393905179441036301111338440963215053810678622900842213785432496467453055291161580938139109691820244567091541487997981681461046515772544041290866372902103180019283416922292883425266586032486119419339422949855650841825392434907648839658137466556862384832863166231485042420827882762786766835697776401130538837676851959464680747663514448513882624127589681740036469286051879143424581149525272421450062503942206277164820757554599340180292045028980262066661340605378983552618688838344967998713723735573613184991512660209860314332275003366684313061072994509458923039048271419658476212941531377117079035233604784468085368761826926844984507615160692437167665647757881931740232910812200730681594757816053435149715597398545664653582661769291217927250976617409813564525033952366350180933933152096908015958320489922382472566597224155978058552399340459476490307049187544663252111547480518574780830023970220682727129202066723753458526696370343424431944387153057265590142688219956699362955062620895790835393291468997817399980895466338303171423928369137308901442594364424296013261841244324601095989230767722680086656372129264395802850943445521881965693048087070923334206404451667041851289994241487855004173292611394712132842924463932018754497489283027114318074169858079410644617008062969232804008044287133757116023908670334682165057027371652557883873609794140512065409579511941861873169928440387629358669890174620230189104629208707459081516367917126879528006545561962005521005462738062145212056135690579261968234553853155331028880835745102807928785684230199210613289426808229622555527650388144419378307589466553709353250147839113688502298009500016742440823182681782128259209765152145165502459455476544129851039969211520282551111419662510506657975003803501550415299141682981046551005259678582054591218188764646239895570056426820082952202604747440533643110610767865106208045141234268365192340914351437291558145667780172934932214456334672509479873607561630826525037047185623403175577484319496466603266216640902639850174594833812909958064695495069406540419192186067693942923905496045507257377045847573853865429247066586946424514723914739236066975835186349779482410066012706062722199777690421290323365176830220350003103208617603768172557681203085604451671255369214922835923701932785148907640938375340249972540699538365317269146594329244169383721170218042344695473090004174232682998816320259781087871563895051683647216767541690293278066363352001619977153341101842304776107672612511041986781631618954308862166223277397550716183053112748839519281565153561529650380436740557412090213950044007491012735130325291983735515346020082107764693676854466768246268912130819916498335941231639795116886804420498712575498341001237411194579575831900880147352035640586192884833476011774392783197249448957439879677583906983621344930609686755833267198055536020229524228421061178231008632132791894206525678804121585172569970955396417381026849379345583601065998947344422623373201857784648780109712089442730069320939528925079979218621418048895282596950884903354956667622550152335498810862518821245547887000668289499563968707540963297311304099836623576607180910680493347902353114905831234039492742769802484043774414651881086146109339828978707547131602805033129981804723211487260978987602843369051707420814646664875436539097827488522299228967443789846215952265034911497226492376584070838699670196983431225617212726363158947747285221555926647226283581133646484529870814535065745756456076306887257685582893216484670661023211405217399246660670513577757391820552537649063741972466306787044443141107656673355211696218085423144309920561566484634553875686473325755755257466599884430298829788521542024706423793148412588838753557816972059043621253544426809477252125617456903806839908105641036321392703215170137803307228658591010955541869024977540707746720599605689402229056765118389806056278041439174651009633661992542793716019253763461207160798283379165640114177776917632237274368148871796437267775755456382918913743900966967006634724513699028444125203592843053588110962973265861323050221861620195764303972771757075352047132290053164728454667431882696125601175410000655720323970410633025012200678000798847510732581976742812741084389374350190503735605670872551523335708769001751627783982805193437983849291601971066370638382066969781502907155306942839652619375935953458372909350705138507734943460369055143615041115352595034424109794036029861262342605442333419157843059314888629642873532295143622251331800711721224378846136321354910589067641836048051551367314953710254003947020592358474837581092164492253024554970500674526051205710833806234923467257295969596051098235100919167034109595397844172562392819571949677085180283758461002250393324771311679904470042109674553489669085070289276404193757283275532719429581126776869171795336164173893750019894295900922904040331111909751736789929572916599674578036497056318042104657286917475849424902293233546384530734602501165574115914866367624736267778003690777093287937864266919153090213849051202152684830783052741804326433802545917079513855378307651221860926764058149004107063738905122992524520193972976710542261912331806926161282254557463245005306124778632878306624157954993587034793298894667330049459300229317514467603470920607680103791264244060406757301798097373470257210077052463560297794302464722041437641534281463087169796921052055387884688494405904615500370053744849158900658532988527058844203304574429346561315100638418553253080579472764730327790457137711682728403648009018495101779461657404703584762545657757124745966809606259109294690302209116981743993721764321176757235203074832440339456905595178358918560335077227057290089067270103739704818201193498229438860629955502571562865870589941538537198300835543996224936380155046214411392020322219848407025077415103939320822431841602006997146451649406424387194914654692405497489690713859656590769908552160971148218649520766029397542919340828393802211178831867048406513942582539616499557760807538106985986316340042298993287898131674424050811854123293489662107862231188045227678145625370412498527523722416587763861221204044246515449037676094235159574030503859655786864491606966036387265769434954374491571994609963541349451808001832496420042099908735801768721854955591449578179515924084855660541843768683160875605957351523089324570768017610192813854518778166629042024780476731917670907433572725163821301912771235523463045525687621808979385074437704563042640295597339128905301909960849125726223801842879035816910553576760449028580400726795891664587333569552054746085706034226362641511806869641749442024466639442816308963664465137320678654939591683085516639336129558164574390744046482497917545753403675258791192154745608194089507541161733263182428668036249927110373216400795147213928378746362032589304074719446796626664055315936660572940557144584921838232479182659917100781512851143566887553027129565670570906150655079991449099779137907390821510559027501602116664762198706204062442746166151700366162135801020982628342675387135404727458846398724819682610610023352292069169807595676701106889344883826383778017138663571374826304244128114918910420465557864518175697945581560723285131980238429794332025591913927837628970571632290388605342003492612270890618917576427705600583057953279903836480263271316923053496594555291034439605995193634023276048909306920763042690986119283111214645367552664680138706835854397370920221179666329530661550645956111327115873649817969944470165278013920235211041826636271325973398796236906630890521504088532530381604489931351442219784844306846811515730369939130151815776529038661595280714988548787426389005841697187803988922268597997901741879598682427953207464505613485843210483824262871075200766713376369172251807343176381946147662145436422628160590173204583075468505439468829847977821478267804477862863613525495113135294686531786768066393369502728153023617979697552654735557007935604369112524396104289985909446493172604508767178643643142042669592907712762501451367418087800881866138847815976766708274821603442130461066608134215138899032441770161949924870874611666412412961876404744241686500971575951734062326642923348192340765469578184026814050562535844704883479852388715159575186075668874681047709912048159726664310298308817019804260644605074728835232300338707694079284826964910096423642565125346263111280584680311588251288338827229468172076686527143966186398506816089758572317462331014542688079374411395224762349003591018654777495363615911187735640224162724792161929337176669693811671915965143453776924566129771827795316301319173767349024462028179116480086257781035488107640729850575209423802702818753681714212568957531193101498273318077131115465266418864466348244587463048052664600009530220509803133860776008563284414705254561921141687447289710492682187510520734219700907529380155047627001040012490975474270380836517580574185801929061330488991853126180296902386702662480486352938669580539000480466595515896217293740375669210568510819633958240357729706136884019797012466065975723710487409991566499864232455690288490718361463467897834204421318041209177828006645487329295462734270595777661928182142107528527409449485364494695892010305833942297378178746840139238909290388645916540393646928893866889973152997209617884170451301920428130577439197655192513166542712429230831863501071772231823356427385512904528637859113544189337742898882454396702260538990404951646376363640623288871847131922934719268025138643426234968695393667329319407894136715134567755427843483576544622242601032545499853677095851339112212884746679307795146626847051365626731296944569824693279053011605708721019080873898681580793858251808848218946889502922400963260174156610380547377279658319075035111118017432931622684158069066419964728191576423608099459080093721363251603206365464437364060126551842763553169486984955761944391754176102716079871143511020726731714688027623705903138194557689046866267063934204528486624312048130363457620478324874053589632439178450604575698376576189267090664787247135750810315550368650966927926097724299149816664734147527763547903576073495498850237609361965786935807566478870878400076384650629478640622043798591697619297162840252294510550078291288712870633470178918047075633369902530192311945626404836406287950467882269892835294769455314983776015555008508169457605505166516616788729023349388653040532209028041963326529031666295731008703142375038998865382557350706767677316940682013716303190096982578552073205805670667070362009927721688584322616622780256069574622169850917432540211418006437890341794260370087045491055657101373183339253204785510221729969287659855957635427800211008426795924654058641128956556671978860796760995961795590490024571129993957350891710283628163108337686422128045787883190888462449217831270777367314777099630597688251319263160377290523781490131250075230029128466749984902514587058379871010829888841229400580065724505869301585352636244679252328178895804918605213131561980206586636469569475996925445346618920823073532510388836582465435864476626876372561063112590896692494622534887131703303054382074517480385236779154430690624080213119236577150959561996183321598602755038694309263004265286602839331297411451901323549274632487794915320481153072012717174429264384329448527825300169226607212622847271319527768027435966234218808038786625563724813452263352726733623414928811175486212176579550349324004025041683033548983045135592437585662725736693420957289751212509642059739813002832641929580385478474667242484162689120389236141547222556122079396661752492273145051855129986366827779564033824438518946694124819524303433746358802102128419547112794158712647021020905858017507209390042455708540821735392193512439076394099665172697979544202877615048077361033025557698671189657188745676240920889412194373847503292300010036489349719022615110037960380511167397542671695266769996917423537181445995078374395985385762496948631725028407877726674752616450567388622611686065966668676161909253317694671345226775717724090046641463269617208880304128429703976114698394345395938208294525013098306361737754412169343543103066049555779247354329307704189011983379480840291087913260772776682844399058056275871030803108179998359870568579164185948772474225996257244254241016521392718823516191221191328558727274879027576344372019172149000637161897355354091407436408782468807384736280282404796296727286970735360393247419795386422982715978036552297247675637383043185901005501138228184896026231080319884478735921580829779351150380183290142737557256025045006726597293057833818622415721273164257182733668574173283562633479140738771658955450070799530768610362982820883263582166646902990579329695316071754470393589274413587155189103433236836310742848512137424539224623960798870178557078684948399746481375131396546536173159605619555506270708862460648945733126155997179029095987588096484010419358464206729239221747975699861256300732874096669959434199949445284516766343975520949707466474962577657519796754055513961359310971942051327081274472187418547792772779782799675497974007839789860727378006475222625426581593500743007398119597939583945891356468188115767465269743917609199371002965361402230480010085424656580213278308157643109581232497341436796705494460413322950466152116878213350924535451097378130154427765092643465741407984337262085556465503600551284459522995480664944806625130990284055717350575236342694990504282561994335433161864971953618379315766618394523705542338487552112009926550834150086647902099186294844289752587885818696734639905493927176279750975108866035303304721071124841480002149256128693107091314819020140894542725645758256726119109720153422686992694971644558665263187979504164491140501174909586925172358280251439475419589837881892265775583877326000566801746092134088373332107235560637081226932954927536617721274252675854286232301481777199390778890113757396073459605189894026892707373273914119369065447364068437461074576787373424303601109028655236619948093689275313772191487992335916901000679817946926068621173075851366164159242931112850238772324811592679248290972499085046953816711991779007712564987793082385520733876280471816185818228600870236311869896308680073754298627077508418685109851667750151674260928313295467525776776756511712506695175292991706106894580032261305182079092770925752751420904145308222114454851140192611170351624327271336590516521711726167837374460752012104504700052751086109653709450079555066934112430706149765954068299038922769485755572872934101171773117929899485162252500418316675594371449656851987202568838812814183836094188312945913927545160091063313790589334027555141098099040719599297867463067978335494318927176693183404008960815947207916265065439408470705153260883707945280336330820138380330770879402723363775724033196931963072289967680028252597660959083283783844209727181494416228575640556386692087232977728444408609765708706086006212020462077696941000957153936850097247109513875775057778045949903015721170407741562821626903423776036839538321220761912854900824945322748232993368224458027234347947792856978011422052483058550423549415401939049723288264906266024120077320749694961054969824047353689939728945376774871213863819826329889340121152748768733962748028138242226489002943216390907846885663658476914981197759321891164019125630024476205930913462787239422191892073112327891555649882632734658874231083570448349819031348085822753621633414638537555578817189771311456249462866518189964062834056499645833600849935045725768484298134631559379875255830692358500282865971674659035927985629303788173631987922018185783598551507590729166476525850229594171763401603263578118729965322507008947900326332186272649725212770778250609759673984815561791607361925720835403054235019543431107808884561362248243887112566307516356922456928868474546762980165903283450713905582830621623132092525437189846606365091602150696527786271800442647052927565398389982038809964281398958064172724632064271783091880434668955737790542019623009435796854446279639728093900269107095621531745332516701696063654873545495040327195597692183966952109813211722552245619202013121021141995039129138929041191011201579284975148522249555040716645102022383894665895896240857761478332316361999550687750526620174246380475267683923684301943606230736514227379799810365370150823386692425263153189461714319186814626464297819088937157034386219120432993339689175704857300463557922038410772214219139189289162266652534668865795234531086712175632597352042333576474421978363002349963535724314977851056208686093354339926051514264808575435461943261868356194175439300225367466893404283973080241912047638462052535133093288572440008677214796962467836262912081896952229683054880246543981813109631981051869121756567787098375575871034306106525518819896355770081055431757555814410845031750987122011222418042820218825583597376971358564932595565473497186951952408846787892818995954576596290437147546106422357426897818847356549949369084371164463222327934790734030111654653303198028890573514790287313692540425151047675940999706621408364237465906679361898573560837686648093417823723386250087859356705298946788901445123000313857488961626695285218680115112679461359376616737484420343272636132957650278925891281813524554268451974095698065805800059389439698999572169161586157704444622117365249079410003185440856549537870847318368571781485571138428437381205924771147216056546471474313827722821422418237584937752704258510017397238178455535319510260902792208291383603638688642635151057396125684188779605432946089202876804288058007522686954920460841041432649675003729553964168110662610822699960721018944752583381140675863868283167828047916594212631904141169262360476252640611761056522783265168461496540924206452609818026589873789857441294258135350809401580424093791321974778759090340696502586702171921991819018375778038120718894035409854968477271438712712137464869738117437708031387895591104072884277016201928722098832032785690741085009628521668646172035332470984136214664643862345487492724773211936177519305684255408737086463294364968234944725778244994843829889882276437638550490834318788029788769838385044455210245252226723524593893054014024907894866979026430210914379237623235919240201496659505494154381280449929639745364140562010437821869117525546417754729595229085337165700215621234171929099634245596015267718704975817498379406654418559463118243850815450498371005578228651629242798748076729003918430691503365523932280569211900103696958682539856154074152575799010366117052497735412598080195219249315978934591609203373053052127310082153808477499813780250028001776587843387559710298724747867232111594690241903972736377300258888617078922541011853033667024726327522730011585772782546021311587379733854213547332819512839456284708177767631117400604513159547236983246173303863869223357575904624612771883770949464860472796211810169146828045711147124348084916664869624004083399860410620729112055996300314750642066183138453416840400203827447376699581566048247120588327083894248279160679338157941578778399656070817544256548348961033602499776068966351821098349575013981507282274599833926034294735301939279547206661250458764128075463778601045541146994981566958614401944151169853616347238349212648720180111995305644463815194310736732525366289593320782920182870427259456467451030148715857462321002515700181256152551312375429866528724615949861426258420324324038702195729122271090488648013310684085722722428465076375959845125377958771864598860446047208525451132697748126541845268638164284493127109559378927996620856819269306685676049760160158362634018764274994376043333956163706920122934996366366346115171490868687969176865109994922793637227385597001114650613114271320589359505898501944834333090870415179050895459107372734759232068605250226029932749786122374870414793837039740848994598386247864802267639359278571388839182132547256997140553663775843544173657004409037136624876013651076696350335619656110475313280082661858710015778040487870141741338613068470362854890272702590754488198663052577479766163041967121422574799002961118724488599277957490865246006657718273141493612113014141783351250767789146172962935988908021047855255972867582627623596128693434127843350734465444333525510943478016650256773543434123116824965163037503948916013198389559341236975242711175037161341860096619859214900297288964364599474339751038698125471304796949227542769044268916030483352455768126322786650247331986622956881299643968757755003413845840568924539948356147955453090177098671387381176609930853173126493085455645531365197990142258265130346900821315164762441576868777043097007680043205105677265810386109153434373684259657332543157451622287900650362632000923482950957834903364323416732403396719563469327481115438531806242356498526477197760037332411048664102026813289938992420946184082611632540758924490272984942969517092722045294479275136225264130853119966777138280867130199024677804554900089261741448001111475166686264007776394608942535566207534570695066413935400936697765322680870337988786044343477395924359989650764240712164230078090854086694425253855626404661102932522163338357085894853729661083068336233566467554868801578649406944806049028366004816224381940009112460813396123035475341607996393465049031603549818721979265378358793188493394498148764099442625983561097161067714148168083182607483776727015534405311355009813436394556195525040514513057226892751673168937436872568416138949986835059382783942451857277983180428524631891229182294292128099009047811079914331020077669549296798040001475090038308789905978861974533005661401331880095201298324414610612603909893334907233856460911594776029601201338324069254795728518581640708899452320617216514430946465031539238387104090714429789578412716240416977634857825630000947066993346301309468613450243124973335205418502239719502334148776134973386397358477467531633232835585770636635044416245726607112872257644748215864323678779719596710174037107117110277266724525365975130992429352629540474664386370561101240226713914988451995515295855734638916998698025905530765884903954047586262058102448152799745460439736764191968470602576626727797313651266216000022155861890330388896662734971321003324357159082475670540204379851248413425193405121984483422511061279217354976641441191236515803402434394174951965552893988710487282567847738885336966740903319544649383978492901625527674437334527799123711104829703664452139572928845937283998984898166577441869248057725269896340966581058386903811528192417582325673858450086688927091598429255693615103848227143002718337778504186327767548654894243818514560666955728694352486378989757812510051495805011493777989914084409077947083541986762007212945717694890280162188780376135801988753931314683828727297608805364694786158217056545803639985749882995119786319270475420134885965933247820404207503734319273695809368849783472151874411998338011247113847650814159653662558753421440293584997208188494686236306396241314879276837342275493607662651445689624228944112956609382107276579925205318998613503585882006529481851761401696849354512932640493627736902638267444038428468874635840044562482551474717356356317727102602821862764859418316990358335553480528529697745395171902525034895318177004973193773505094543786680018984460812318108656373950994800746352412014228875230334081577307061123591324116446147178548124760382741286605393216086445704355419558445482160994176537090168414696025219005049449249915828390145642277604254755389383199413302750109221331344758246668629104295185241658575459992310013354169138871897237727539261786717155257498654133141654074681461758571405859402202241945638908583585043118785797959430176788656440885924476948120118403769193462531621310813567449531941071332965228158949667226222970183897800557701487164678658810154428817563224729509480472528140119091907028256467117213593796054572897113780173738086118820316266220332052974853188103420138955775314583404587764705852149381649545785289841524177541049915490619752236003646747509862273841104469936018836580861087751760730049949137759179767644230385460648897393437622185349935815875906921681911890652637991412151321201962334679977731326833018719239467945856513622498966746024166730595078672487549498995531845549160757452593071555916091202950971506760650468367239327088797268935704372071471138086939838223496159339161390350135069836163481805711043979593789073636869970752446786779189235896189625221839282075067403918786284327072858055578746335372691137580338820335049952899142257389193857822130532370008448085498168621372798030877457025056093907372920201663003895137542342296737146845359111397382821492875564743893901253542003145629980899927218252810689436052025877943254798890696684524962692947245185060422320431934674787931851279888057443086564347184448358457332744682414707177531533431821781282283257083494652185454794615866565001574725419819515097518959980645497152078323715653567669328683773310119574226357637007836916283562943581829449884637303384494637967405911809103601136378845807012526936053507053312610273060093300083909310820167863676027776499789661194117205854265472532746925434223465654555776702667926475714819834211048845971788437769690907956442109890690393668408740864547379138892893637090369278990066364103669668517241558027105024663730821729269290681157449062250984594125633217380485589219393570855759518287911158451357934798270346020582493889688126971516904441671617759585870642256577199057401555404287598090070387187116743479405991585767152245762138358011396060575815865348677250207436329833743086861193014997309052970529888010861254711131349676403420835836617206809068350087312598930602138877520666200741590807042691611877617801258657319336962623248122050115910817136479676402620158762908017309101980791089110263862107108458010412804877504697765868902475961055474257537285018668496262822657420703829962744477996164798923199131334600048526444706816377940769509701625325178650454290137506345970539663480599395449777393508105667322983702394941794859800845876040215999553103204432547780615910073463664504031650715150624729410109761986412196493847367302400185047996718954116356234373316648041973366220231436877127405925082526695636813056738389509605671776227001642411824078591071769944353802716299128917211997636507207259748035740944814261173530645897103925355813050776982406830082881320026826133887937730292494345882344781209631154024464679866412545296047146041327610381204940515104725215117739328835920268675810770330677040175885897354993903296793687257636414891286699411403372241446765436979330826052943555686735961306262062454754203548424131426386467926091871503899668924679693982859434275537099027449519237009925535207492459324589470851925797123668355584756692746535392625549941321543679966378353672171537768309439881490716173432585746920619182544158855903976513400032964598474859094061092594837353572314129334834718566808977818559249790433260604311377651686448773917186375663937055582942026986047095761852374375283064678365465981125554095214691338630645417986946798238087268953944393441173460855522886825321421938629843916155931522375368466843820065347082884455198710804332783614274581385320003792675388493549700934999833514511403867328334820162102574404654639844082574391280198415038775734706472121459792549318082186508135566470259577242642411320553097992935899562009527461099700531962199730672351004292661888910967779653868448279373597447839735471646876726545096432392308239733256156187174388229033832997195073176509714313647679949469543345658270564653736766466315185654053648347059141913402452930763972083387848822598954879283824269099103526174587783665044840437280801670458549244691146617684031429788878555392844965568771310053640439838154505758083476222007759977940344358949804559055665482714735859874702039705574942872135687148277554121038526860179800393532305498094819371070458934184774892691361894165593807808735886811168546801565367443023884698508032233387341399441582784990354700523689781534519472128019572760430424626690582928282795505809698029660504494726107954609221477598234205889798091924753341453005536824365359856398265502258746424282615756583962503865674783252231513367920846213349125699091852913152780259573107540575819139411157082521468892877599880853479601776594568781448827563189499653865190427114705665066348029856687376432587966293903716096472024814034945633949620030397808509697191082996418068742611197746532873010477380037657815645004155157641570076674607325474800117899925930835196288850706410215209287065171784764014235565157823990341120231147698558504866301370215407418011351375975513289561166882274431893845566417589317979681759005988256282446783196753055968394352090135417436558834466200237890369060658347424822208260873602147556029993318435306274137710114032527594804246284338949587528675911107130008887732316342946233852606645059605323161736079254468791584282975932749775481302623165660012310193353450207983649189522155376340460939823802909221080545997827597793665488268564835840536029426092933386986830656789531357340262285574790424223433378466445463653523151999624210734764995250280652037669832810615614485732344989601876831981788958076428283967518770376318847473168756533024364982699281412752565999879127546064392057618228122714557101492757985112065299916000888172865853578541376326969182023383786346946893765144750878306761254106552853301880730471057504403344911102875832853979531752157045464539010124143609152965951275239099406031292471806395331528679286554264728136590567130046177476366222381039822926610739248246762893386375348489092407858403364954663369675989118347739923549357610221269556947934054380905580139655295919308088156438209239187062190592763536050784895500235466342812343398094508877725571452835539963215007252982446911899126433513685561951495610274567811195150427902556216087820540046392840223930904847024943063105430653166651753084248387512957386827123104241844438156756703499063935652200578860338599890853297411388371298529998229275210382045535247858545285143718517420707881960170063730190676561412668502370435767802579530666766005887567609284278375539978464789807466917109025563260841545109905938427366152365042437572558719611085473539677519840610159760789423333721981076978767601047755339586490276288318066131815185824874500939533029733135806535133214249394373468697509834498128166384844398744143772188973030473846157596120028961489163869436571898708634389327920407595262223533675706362373330777501835621950984062076967425071873680679311197758571887968563693048955711968603187022629909538415044412157386818470331280873831403023317945617697651347217401967660310203296758830059266598949769720070189815677933167186693508801242062705401669637968001246742261077801961174299428999853894836518183171865372305063402485624814270791440584678438898741851549657209882859211932785614878442103696667561056115244183980930966711508929984211319684608383048242285069175048684465763261675423674439608432675638851913218785442268243058751335967580585363072626685237588662077940967046935534335903295919150385157270631784095804683664945317450835622613517885662798923547964135041789473727857835523749219016869080146958303640035501905094068286986174761069598492592246885988675974528386238482809621464601504086647082129537483636424842641950446390274461934439031274308354794525848368871168183047011884446727472810134553755989549613176087526246855999034961469332146219094564617098942757646831773952293123784947661008824645989204435948033880183526372335082120927213823001635894394124321460992123078498047301674223036631238887885539793106345670884113641107201298964003979440906661235339809839594732719594331709847320158936011773122334507364828635969810516708671966005982375257040375213515311339819280946725819851540483466130647619749651474783135328458699440033940669449070131886084084845468175216752272978006328246408567671912918968456367026619458869357556478412150000743395370395900416650102858715088059730387194545815988902441914552314129482110580992259012653084536049568726560923263887783174531538778862920772351769787356660721440516836440112929707029201052905040836984978882839640389874858891471115102151993207322890792193167987760666001357443010514639000975777219881470938856835455336426470732984344280320830411048141032234126454765382785996806202351860058108071981707006418426935422633858068997049793894352260436071864636915240679463811465754839954921638922166384915848540658535102254762600515623689001203420939920482547895508244475319940415630762089129267158962179473055162579116431847507445251935481151896303760905231261464031002860302695542792410065962701371752179730683849601302032045547789892719104865971629589386719935943594382725049990758524318926029500836408108646237911030615111796224887724379682406218975914018039445491653211677705351803666490255308677204821813284693945065042823848736142437487881302200830337661011888183619191903459067284619360740663954094958788066645990465529488429301456675425727490102293320346079194861169733228730676411912557371209422036858721890197289176846611839874598362892110402971794078057359039925469391360791144394644630067841782180446652135014457510732916083500450485811601859528797695110289846035992099029190441847812810109701044986246480177064934959723165327650619594531082749819817155627636135707146230585955115216030089033807106732349816188080673414989681781791812968219144433458376281619638879092677429738560132453561427629223422739223329908811244445353736975022690297717292757658545610449983924362855470877483665736038302852918851843969480802292972066811469955724340371026388380916172067697483573697482683070580762942194814534681281610554343032252061353151194429940790268762124147460362950505969716700508518190154148505934040471849502288619198999752813312424937884845533966212441914375947747415689530846288767898319327666345923055267566979637374401772474053751638833516371920265128088049426722836476940760222120402047538216331448753524632315944094259273784609312955673099158860645148647797190673798040278230244977395236788354651390071887322906253628345831086487476025332200419396224079244947629721310633201723803306689724259416082125573410664622817337147472742611765072983975560042088364464534123094291285316554403751291422018409724282108975949554929774358958107018289411368848161131912505975374618047735286325792812651766342056458489506005018027498156238410902095634367309370821612213541551409298400920350689609654591300165256916755036327197888114575358384927107085751801864482088012437880355935915347021463819596202429543617277452419214393283789124387232622474582117663636682166726454928359384230429388706481989692003424793995404318623975948943998012727188499070608832221717475603169832009843103896678982099318050289820078501364329719558254547540454633231443536831323720988467835076979141419183597661216620084595904544069717432594181164546010329611587175807208768772631214951350765785323168346720144441417717283877196291074081016244558600003919999906363619733885590098602475069869973729769482975214549056912779983961253785097154555038565068863444882355164685989516868817417704447986116641971127732734431394823595768454009325088421499543580921382997084083284100935438401562627646266497664665446691660666558064272584096120003287067103005150557549601625809108100480332710101292671273033615050161126735470059408195826548449690501516035944724288304307864803991272740645015983096500753209885018611732312922811426332342910416110771484535612253840082725656056359743234131388067938797584039533113818467347700945552433195174139340992705367389047464103036088670682866450311269225871209086980464759075028158018442639345762628704854179818014842798651153679788017041175535850404739364680719314051068115544343281362025757990737032852326085778590304156900425502396161632699669661729010307283385203373688708605316397381470858096699548967897449651299332178739727235427731379598216664633805223703038975722752202569867658919457951942609628146308527314656609507154806214838006752297596901797983516435239733810412315372695137055375814597905694131921810419806021186112819625880710342437243117060014555346904408313592293250670402620604882315296203259678217478469650831829823204800467594941183260037060299962995242321898416609899858044208927237656001052387251857693263753201826062299789595696131564710310550219934585620336802894270868930052799679890222121672770704971782430418975664694547282981989938747524065552640704805884712769453554240775508672043530228283353328012288214326011578992764355080560324185943911956506568092481855459967874486225776756536785894780687382149583423821872632845701034435772658151368444106842603101575410821201192225303933288535629671523368507190614059974437710674600415664064853072728200533264609574136920598854389272865614264983487444955368293702472460468802873743487889770076121555801986367409251652233885206195456331824968634150776246351871976222448049799875116257826949492376645032202867958304295103528821869223884135085053680456088803914826918191165647592749390926523033688324532588582108363851704610849478420494857345285883524434670419700694602945930007588423889108321127612497410216940699450606224252578594892848190850686728948657792115090336528853717619097390876055198004881063402413923397234444906666554209327060910521666242952176656005722002235382064318931271382693625897736346224211727862588925173693312815337252467620934941911941567332344242631659463218126767283772026164278372726547411106580260422998184104931270540218767676185147054545208654435081555168949237828122232964214399749052372058887951865783991861785065542795770883865139287861348068072957296188645519188205000522147301516181802920079304714995362375435724098984236029320311936695515566050773913698388791118478299301429058990857970189874686064297300003031221822854985622930541508651571506014526120866136178763843236582908949165814048999765170932198214509742234336447994556256760558885558733280116794301692323853942277227038138173784570769246822226195613782519364581460896582273077419237272780412086763992098489720505604253691056644268008427211620297920395687952537671747271496216699979079344637578291072961633036354806496840356836536003737578210885094474701887576319326759148048249578848740836219230221866313255179982917018108682905493891220398304953178422033897993629390650502393464908439285666725629078425772708982787793623548499207362177555751364914108308090980626831914253251497845464121921947550897210969751985767766012487779447048534801040793548435468761112846821527283745615710572472490120516682553468812619183789378056963624457439365515017140308768624791534609620430659757129792075723743302792917193677382467950511491928853740827171916664598762139484872243483035173703340164272103429802787838135775394985971643691887750338741437574707816720439352121875122593310443857435992690101167684997621506068314115877972352842122675759930737671705402493015740791097001058026187520827321344591174758021658612226436738747539052888165927837674916690676444199459790947791953308086415168156472276037550383284677111466323145221309413004102903712150848983877041630707755699094181608971420792660830741050859960742346797475836270991908741279104417469167679669960246932531150910849386595870208101516588846215716626605998616524714891371744653821000868818197837350322905729083914711603107896139791229542650977301879201715767235787686309783462629367216365474439068181107046645917635396648102727166306526029849643032979853968935704509135792455440877849014717884650090331066110856315763422635814432633273020007436434893144986209786704185163817600021275978690900835751095736097299780978224997891557184211478539856759687703647192083322163478031200492730112248784774915517867353292307676345803310442973715891590836319147915312871765684562107192461088201048637320675621568490463615403859112137802176266870211159115159515465778345738965228878443164420816720976612754563399865405004694911370689924057281513109712234177772526910715011537849284331968789255497174804643895270119756654952036080192775250422352380456983593182601736593486565875951479439820762932348934084195588689107737172602759028443624111946428213144817072649911631558685906981635966938190379035349551787760273992924372280210608544273868717736710791007969941923742457603989378434803477782808195493960981457842191682030589261669420603465021677688918640359494329181344458237623031867953669318725622908489110736677885101204109542232200187231422963231173205452754519445144294280622366076556557450649831893422022405379022087278494763291941653506678443703815329653575159582376202706251715005420436272186197789303263604571802405951661129726829330188240659736664767182294197003694308811530561913570408060686669525025568344060229236835819922093414102055211464203467416608009745434079242324361944059669660053409863281746061890778590848072152835033151681617667842766695623298346992155616541804627504235760554938435652756937858015210534492522207492192374365870181194767201261739091260848653091913713045678808195177024786271847719228372407366160279501737194495410409351316432676723903597714829665484412079838435281402768172702121611407299351049425884839139326025029211811843135650566150594253934606222361311021790482721255801543465080941042138515234363427210251955816895069865535275658019656398022535419918811415050653423563978359225665934846657361866714181591323743857143155298820755258503489531657469465328980216840612198593452052327033370060574861756334798131565397456826449885269872644235158638748295052841410579187324370887850212099299703965055117494390583787266296884905315096927555122194944821654827663663002034319435696587596135124236135205572657675231640975603816388511550590657846255642171674333116644778033514509893921049379661505393820752151543504816556220905893068655402180701582944807697918016224320880144742023401105130144929430866333145627406082871636304721822348147812497405814032288970006891662953630552150231750169718057115145673159874908701863237929528331517161865092814841794034721753114445114585936178928943069489304189779896609198053721866383471939100088522353485763147649765098954979116925611002925969500289308131953765135750546026065425153434112142114893261546591699477129664707234641020160180196753825117125368987348240797017203941632588250925285884954691788705169243966029585913862569644216484659240101231268505567752836612465304309056002065775667321720881254804710092082971914753588542198293931217917667219575117267403887271244740829937532593575435853092309407459410813611062640109134215144465119800982864879443572767880940289416092586988645719292250444302386299938516601411572107312325083850865791309219782199665853782991999943773333518715662465080473493720316122264313231193731313501146395478840207563510283475093303616800157892157158287404199402067590277459458605659119690631299813397665459467329402980724745958325015528876445345980588712002407479982218271734543354829254242925941776705462738752654595648463553490283071227591753166844323911203827184222406079150440197967521593404513261056498022117337805786749679400575115043489252158279634392613197589786617579356037518539825841494002433589916458727762781451601485749308749133075258497952512445733063872842713371448059581609429738185216455062693107714072823849810660511140951384236426801662917472071805707548702156013823582029788921155823104556728067491499837117473091882316207467030026117785297226907534648078358465300347366217395695133866337660508379178405741984446331467335428958499362388676458114566044773236585141174202503842251723361002455359605485257036853758828652613343910528514134137958817771099284712646344219663330114108033553111025586470272278087779440600413226186275641795162609232824161639599101035909073331776573752403681659728131261258000708590663708808327454248047932565663670933415639014612309658948554977161877588185799254023972378308369884609827279962892597450799521856988397394188926302239009646278494239376051339232862174870334283120969621054861279243844334553918018849770681825895890695545766590942441761148479417230720124669572237694714837756404200697366238275699482248895365590992515795270855013009422034874687810088728668274801103173190262696787695310889275354469392887179189771878049014337979368413342421766036682442048223243520729793351462229836411993928939329824396714602086902103962661019188335009696766606348952653070202094792660622955792905252853776792517603291121159477400707120892672228225528852860433063188801471850059367295000101462366639081464643307439385790354459315970774165763355462474630079843548319501353367203671761624100267075681271747347567457243055191839723338621843481778712882658754046747382918687233460417753320078522360110835561129878819124390390578868137922675622182901915914910488027282766158442421151722130673215102576515708274315130180392975744502454061027898038822520308328582805900980840557843950635260095189331773373088068870986982194455519285807059692078625968803394919862314996572068949209683114262229562495274630802442897704426665571387766576656099739758848871500438467448630585513883903405033758759175839420918482677338667834642600668001773981517658930454267966047080879436165505898175503016048876795607634488091168706878276389065853623061320961061531934356377630211205433117406172505891878222255875571337276921465612268085884929077422991695192454046576035557694440774669516528951725367229629793777330093929809588683831989266022082026998087081883315985963104035411814045017572422576692762573444909505185457923621490989758981313676961711283533473985620216578664695203660362572380947149242989011046112451594923559120941672385849036084768060740696163619712533180057221642767594729391988001347783825712176862146830377369392327450527630545018033951526362592374526431401799487876789816404443092326553953569693453672419544414812852882606245647028516232803037230576228453270297721181066995043480315210718623610378975813954250760432272271443776068462349558247414985541125412277492423923092519829365282959073246101330396544952060591934832141297138424172034820224806258248012015933865907715917850356255316412520010193543933907744010756851074094264842456609501530394255489424304300568751196758084423684477895336517156102973449692873498329658221334621592730501575535679813027847434409357931058826563619122040809976448204161659455631808122888259893673767870958646381562036633170376101610342649947877894209853221792253849890125401570310228438208730877205467979894958027046085603202680665449357756902721634944398383940469824622456184578421598750778322092384239458544677036333062152480867354588278317330934349522551473661613603713717702528133123773536624491211182678153779216795102021815530108563322891088374903654831543370560737070177082717577195990385486381411486648331598343678371611958087454764866595188648185142845502025617271400913509454640298543146602805071984899575502721912491718775166848673415901560720480308206979555481142409367963458177453301845385199505848691003602075373820539458457580109085720217219283575658507406910051356139092000725347794441785198730464817258583344749543103121553483601069547820017772359988336442942174669262032046859724037776631843229273046895790699128830451319833791397588932776769502706992043367385894841887430795517693814638111536499988017298663706595939051323100261822066977508083889900506869944990721841055092226072869550087872034817116150871764367302075221834196647811432791216052554539770431232683780766660161060198545778499632940832550535738310768230514236312242558248484330301358669538180097375652636588532229385592104052246935221603767606717517997265680306171536332375116755659449468513173767511592790133733679888137806789028924700220419491538575578656775739127887226338459945419340750802701488794344229646738089195675356934372726681614703639450129286730033244065875402074424366343453888431625189400377000249824286465417380592079412885243016474893191421820060881809177733096060709150936032694711044037656908195752660789588325377763842198019800413654042545563180498377856471213804612972105581911753694071828957923026487676759947459154264352940110740431262134536636729855701062272787960970564659837060835667048732310819029343091380638288367479851317313941614820987742225848466475780376717575213455061631991600708240635909269308805090194975822371487357898261100926215284139403532030634841882295206946898051607065687591892960197824310960566348363285330014490268229287706458306125048384543168038277990529341667250116937818967109351687922559527530395959266743655832257868618658392291292416732091556273522446385882401618985059852762076117174014607775694202976101027043050065396577933502135082341926209064787006995902539004832326189972961500433522211719013042370949130203738723388822041217929810225848606285951659422351938286742137654802502112026814524725145975823960250772979087756827785276686833247501774406260039292909531288201750231676512447276098272472892271930799247586140305448575139743174369327845828222943569218381430439525850831862469148825413360117466780669640406538849856904406408877071315545807547118225765284168171600787444695665928111004424779550448034966170642489162807766201622730854759605083551026760751713815990841881807161422829279946263726413270304454972560868023196728895355117586663645084686009404214674548674744373060484523462092940198695885757730267737665059078377168778834992908777220404758477136229647160603381060330854609725833853916350342943027876621789249071730372616277579162048953782405643199942425102363073997711501709920861424611370335301267246802741416238541566066999337857936495744944341461712462200550924515531067207843472510832500609744661036509912080903749624125708522020161428283031286754752990106198093449078860315861980098904888995099458420952310960350600126287956756284551835183203715779336930753252351245367409085239853112810053997186353228882766019263982890398494574135532142657764995656952139176908534701494338738164105895029641373791693253844637781334668228558191513739772952440769108724430521865908786578614695138797304849780503797225450067152177235963818244307067887965922468796594263646198939397459166085479480838318790019057196179692931093425567590766893363096683004232307392126372074121571845959808720528157061388341290064068054074024409348619901915042678578768834988470346961728314441044782977695677479234973743356061776120551998239182740269394164249728400283035988694291490475185641987712673697520965578034063219293689598073472547273645129459595325681649192037505476000867604768449176133532271253222693719315388378188620760804758389370853943066748775920209685463868983713449899608863450255805274650364174534145533845416747318320234557645941959416890166737253503083081779740354971842076467405883846167609582522291647936750629870277416244430498395551934043604717710978215384287019949094270619495270227147403054809921910017243760672173103200632352846207506158004606590769126056422820111472707830290354981427466823814151127079927033859280750563118470776170571907211601194697464821809449552529424315564471884619473092748542182312150968463716634439512390683627134852465161187341647318081341522980551681919474902945619778229314733868567092347805225969861302423022299989466162039050569755953112753790041501215881262795057244364730599423026331457386453240341354011728957102952573019964695481291003704428981277936683618577319479956773012949176843305298905551728795804987723520078009873372316253180612597401704436317655245623141784684492126691248217101551576128420012811651817402019063582827302119000207392896767618852757578229466002401560131178886352244796062842618890251890124629330948322291998090823049831262644418032794767428766312478888447353427700606264183620225802412104515438046048631462097494755309236662467562930308900617928723654219734369627243373698609450074088282603256188755183724998684039780727802817014430310007332684771359368998823262714803880619699545567441578857694971120621758183485299557266505917031559990523294053574838172463817648853567551783744875933670440917943887567194010619090400752941446312527094712737961130173497133178172556169130160023650215898380940015327803364542811073775884533409825721132399649691616606359123689985626203044762965675097226749725384557000907054711178455945227348510942039537872245424620719270377895499846642777068838660979794340805854785933328396580642032476111789945718289685850475133383317423056684137246630764444489773457794026196548290214612413113803855802311392961367427452961821050171260296086799699579218949332384931173316457943915777338279661985610295401176048866371905568248658346994296995019728343855554030770726222366710533977078635922539489466557207162022808276541165038238726959925774208234532522571249531506979063769118476861714810999473477493572056140276733440066589414870037074832190161378320211363769786317587691490013576317667621063933116585100123458644462673231427673497709914302291085957331938396647739185954939249723245134917226349766482204708910958478469273755099345221950164717316618961883912093589395297694793660586788990821934023139373555040440553397059527910420961029696754128082465867993382764487463278428544075078066264940351780098818574886638100518098167053595471999291144756696318945164199702593671217477993122462603130722869621647196299744257819101933527734666206700636907190933500624409296545269393459680407941042266990964386514685887576183948569776755803503053119268614735145807546549373510814515241655463602092538755314855700723407774252141782871922262581626745985599549097078622798228385940336393901547041860364033335768738647496738772566712040712387301162252138919920789231676378709779936858286736870790716532966920986712971428984471838897497736836006624920433730406643728974455889792435061118930225701781893539794800718110297774104487578206808244340429396217419856498589970721394166286506908377096669473128382627436776739500988520191364586781345643563049441039227477062280839243019106892676771541260545553327886981923144901923579350284356130060061293064974041565875468766319572845879112637699521760676386087373219689697247581368015277790666690144717593106739039211691252934788173794647166000415080226005085849810237436734003528561021948509563984892180255302137461044320094829958293070363612545811550762841681136105796962156716624473174685883425852981964547891014895860091304111332714697160551044898062747066201863933001561829699447363886396470034511266881545191115814035570475023606048656958397438565270844177699307215576406142472726128977715517436707938333194220659690643938021229679872438070817340316685731601650376102786358203958180815941149273090001554553453499265025111558201820483320414475457784790474261311885675898899073748657398178453403125755459684514724022980986598365089843860202234243111372423854380182046545661354396553477343330507231838816684132169513272653442758930846039533096204881277572536919666535827841217446628291010928623372913312938473134126427839769361269765178736503158082808261860873002130236623177429490286965428214505423974694101430063580565539362273555246704327207217999897073141899445825557626934069606809680941537602845376135640768341814531796835660534903208026388941444709557442503507431791909682320941782355556599026299313750070859792121417306994249777822235454950288609074822379039825566507453782192058430156268729191176650401136877130590046693009912205849551118254381318442070726003824302057831214387221098545368449368276752202887347816996592170974795198309697346180277155498263782865870699753970717921765661481175676450805628577916536417156456636447655022059942410017400607084985263864388109513189584701511537399487846606633485831929954939804626361352439596432953759019310603358614968861010220872190565016980699898893259187840158031394801349782774478625208216181450323216041598702799896718631545474318492506587053693038493062095279519997643984217213677689546312547848639683657616385111725894586574686227942893284238289892870738465205411863748784434911197338791121647416391127506460036352518371519791927367618836005258611692494260545748407855190403485813536777253502631282398067894403318544185684966293931158745951844514464738469438859345062946211272619539191846030743601485814840465951641648641294989364319675129388919619815995577888160784741055976060573724972513611759289083453298356952387412460759992456738948140715291800246420500416833164492021583445574282834565533179980420469558153105349290921669688647660868199764132023182397810887065856637134240284683244275008644372521233137401917054021390049144753568624232543317287143390648344072192763965906685625612844839039859817947162525036432538295536393934818040029517103285085486527977869754659951955677397573195792341196512731845816024199077558253010871776152809172925471874284867416713362030382922005334469062596981481418987252002919440953059963497018066080396073217479042194386562330119198743305122825703338893717049472618740646138862939556565338452955031524240049365488084810375621640920739946250808967326170665024064903962063735756921497310597598431295259366596217401484647536059962111066456135931042438810232611700652305074802417142565199712683759583858536945067466871604740024707176566576289320637417887346605619955878289818680606523583406582543179331167670571576481651282570651479714438269162742779318006044009566509118942261293304312202960359294672912034804213726072355175170748116797005481954591434669140132435923435864373554654198831380585964835946871862916702633911119820108692786722298456468105120653995213442291851465305829605532979844178392376057321455726574008859130558701225575323272777797449585036349459611778513461928758034160837803759186339836444070125062202344052294488987702903474414510260416458680508206223903673694065869682175658001981510952408866649197081012649504586795095085324991762339946375470517862772295830815384622631710202799674558980848759538785884752361850222632580764756012560357012722665843724800404919115976907302599307205518833231278243260062141956198281269006178026228489986672150474494695473713169294151819338891450502248864861801212561661488119804375888394621868418462044871911099979288251583345863091889722394142525233813037559638935794407346225257795477182724670115628480982890844753991727137248312332499474657676390845495082554099020888824709120160315834150227337808249408733286368031150627408523999124755067004035552189590105086851956104832301032142883756047398369900657079508774233270257734229929900255936637386575797842962300870400171001993880917853028770027397892114519324292231979367634051880303266143651704906854768973048309497108300387377932094925687952236918537479800286839039854938162809533874354668900513942139182733893205182999274219479083958238685126283023438284437105477513585754975068083227972589175305232090629670957781592661779544108763827084493132190214844211658275693941574981235399705787378956591033902480987447652494644680444340459892362810435036373259580361767244213531245243142486220378292071740629379804949850168736444821377840725968231210150050276740913517662917348260877030182281711447808894140461577251790160293141604787433098298151190542060180128022803767514971183190893762687018577430457558937007216033729903687404816405314081669551437954225571043407344386931411245924433760828423728928433129164203258425758524347845841732088334873357647522401797425737055708705914527598402711951932404371217531092926419823290832400522617359855986655047455007819107166646563822038645049978265255034153237192708780724640628546130372447817394280778531115860955431458813163837484011679410688687858459330329438024808873880178708139801536387527755280211977848545829711230480832742140992190283390380576501287080664762032157346301501989730731123171017942098264208370678358093088782363139440335854698630594090184848672739717767730879747140591640549214306245260953919336224397112395105427871622818212631095395262499047990080638201113438837947241937874694967611979458269065095795532844605647205276128514142845414347883340284004059231204413439636018841359912433700029343326377171151660298477584137775641815074790937609039206024501517136601635657618649969591171263382236117782935851837057807372361201745380665301730604799400429907605921464066167811011672838742826069966048513048316919329455328792902054366316676175483820396243394732626854518959760408669606944767587677870347123465402855317601516321901889737174907486240632810110422090404894778095116188072692000782059355972467931299262646061956506685219604108810950935671073356369925230181576138513672739837826409971138473625690395841128606241655935320643906384859003178210168850039964216094412641450819583771273580656623635311469577058813200280777970199267759312304262940964855567369012577688283284594698016648662226515043219460789368542474116010688428018883868661296377818799557188140122038872099997342111869926309996002787930317540218099795245460810460562984064144521215906847643924890181949769182790987081227911424771775756266759547153957776897574884994418344514901064464631113576337539429706192394512856094504939073059874135961673966489117578930819002621739142715074126624184681582111882609149416566922081299065732256508269442998224425758292548447804976615445991346334558564210239583962527682031664766795934566401469329953469514165277910293726486155916962092006637384246491870594063289549318641521714346529198895751247994859016172068801104663965786462734977229602723048323872826203564435018177068865756293873002307115973898665268454478880598394816878890242935062059632628919297024368206669964843500432993883116413420724328785535057055939157332219532238016138213316239135548409627808219109456058275666150726321159786326761736715798332247725380856255119959476442157152016171237398070642803821542124893142865938294132260193238120165602615056496089197938328654433605129671955084931925484658109677656643857769874196062711070247715692769599219136391549150740694772538121786532879717632854057342287821053085893692227215633447986435481024019163002019156997688549631866684936051055260642508421246883326662995852664252859865449917775574336286578351378030274090385476915056696129328280178428542358429618943706849541455179362606077543983748704399803906681703915077462476467721884163986793661921542082985134702238872128942311095796632592899676674018579920871576355764770501049325604223149342493197810965143706784061106025084257554702758336580428173660052598580521160675830086459869734014117732995773043133226849225590586930028443666920299307653264879879438483327891858255184863851312731724398007867654080221473839802594327416059614531108370194859281588107266054304721785671928677798205056367012477354848466745755272379423313029503277967252435863337121544258952580464869367856877210119097748937501442702336328927662578399812354159924405667264096502920040491125923168087583605100739064907692754831060019014933569090351317783026050593166702835862295750936702934204855274268859840018442385703910761288406529898294616681905008992074658069897953861608228880470574947955038327309487782098281746231747641788636610791830500689597267824128133717329304977533186360273770275246286204805201608721876353589155168965445537189502456569164355155487447671789836042117601463954186843522650980494111380894063663476530927482263305822605895350183182832473371342724954778877574605560425948654018131649266988761207917200622181371676550855635824657344336926637728996425829182780614461893307164771395682480132370918449043958577711002710769498372228135150708678389702958609455531874261630266762102765486665222383440090374260872719233792124171487696654971979733850764102563420118263118787226869229329250017945906259619439206935784439033413860664705167078954619710261903521234592649513814848010715343496117270846873793009473483775414609244559844755029534771487231699167145357629885979116267110716772317083360292805039313387773848887124831688371746457142251681714705260347149752180038828935949986620499566810777792297466707677057894993018526500530794836747381349677580751341325819455067381000188991348416239900070571001359557568671203713816721320535702000825568281524929433067248506920825573417235395733270416921455287282384268130517255872456249994694742624316341693803453823154310284465196945844064888989784268766765051492732641405386315058318891727096326114375116533545210368537135038386156901934293625014256767313126587973455253008976390679389836866147062289947689358706603326676256003752224146328235178122959373223143924066052909385391282078441036837617808493150290208885336938116663586170252950438165857360780489985665629496615007016687214768420058088281583332517880129748679297830266760528281052736329285676829811588544538749477628206579707245662165874957748196156704494691176255013294558742708080789300434988724520529711219329811470844187066916675267259623506678836437824544778599747254594793848170033264095797690427418167949437418367860319729303270659802497458703262331805966709326861590029314795832319831087721652708617329244143201756157164834457705940808874887334517284992011158857486758486497503408861781648556460532486020604003706156797516603010584234166662413721033699793247241966254538375972812115348556900452098851918309387328536381941025166242402080661493532163614628382039912163148556577584750604047328251534019692063416641520031750128424432415637792100039529013003014464214936762736112140678099136654030630098137238255601641546243883071650001730933098170611168051162528115046553470888642684587896207981714093241900912391762164101047463902298088452101921362689145364279358429483620245645981769734216990556005069403823683394390602409281759949041562483763417229963083455347025965981830256914398616995886164740169654073821915117046161442390156999020745100482577297294423281270237603233166481918397846223141804368614420687430805791516790506334236170902971787526260150065094560192594607886606594788893431451604939715859529975753419736358096425024745149635549772739842487264208075919648460758346306421898342996781729343775948872611891117456659036911146145344707740320309931940782930177389088448390877718709726858075475413783299502871310512668014991074610904844914877389466143988351637835088753729042790687393095104653016195079703533584687530571658472860844526192586111150374476952829844703106507093602294185620256512184830310916580633095882619603073946598394461134363260078950829932051400598116924380513215922779402702025013726173759646403296419119993287988451336595965715318085273747852859949195123168355042733176655997758162376147763109474325875738034130145531491766054972968365739845698750834320721687964563904449500942895182680662456778964253141446974846284493633717091928102427894770876541956646148290751517110164384033231911308902648092810948030065857708173453811048733089121001073288619773700200605002804879830011921594269886461065595498051735098778055926145543845388184423085778983937686016130306149620532177355196879261874568162346160969399392980278114916751366819546638020540546005667063508929771788726308049933238703111044779483255652316848906225253228181370524369732541665457167828316418949160031470816813503745845237607282173786474400129479361698354744407430804408003754791646322959433143204567737489385902537958566849198938601836226020169282845413188260653942751614075667394090679227484155671151940113737078189421837310568439336293426525009360207645319404776626919558800825102169543098969870312044521301017177652798887029941907191679933967108940065426112923995277810068104436229619536744764192563929995657804800024632125555453200064262605604881465893174818552730239871290698367717671484233617957889492281536709012399010269928576571245256325310424809880362825158122674216478281001177802839099347496943508084487462846945843805536414097549525724207337031060711932379868290039314557608079672569027789015276019035198530842243496392710109904443875269691019749262629047773976267756176191103756141649836062565751640302584368767826245973136988552410750446046478110348350482573358135432848581045137681492821892939971610667685717500254251442707809446176152675899437220055741757656139341158468390107610743656223524351734740710899245175928446563705651002358685525267016787257071597543860319829629810648065092614289945102762218680239955395281750077684190995072041340585657593286339438007330711763640631276841679175971577393083052582963425401873379208541692933614018644937100766538841192221033888830391119351421496189150229648351771494721457126849135694848894864368089535910488368060190569709977951830301156683205104690613578938141168101699164357669446310427900536569150443633209332349323071606592117819906716368007276566729681067510660094362344711756955594554168838042627509434311819542312749521791335898080308356197884207203380823508926138616509195924834130377697120678217163340987026546811837138741336449721637017497386097927885736563729061132381655522321315111831172434241854406941587053091423666633297042458214961799406324374284068694239813580127884610230318847590231364903001110825320396609839656326363319765655437084397582287086017471075862655919683493025515870301812402701456895620555965490824398097788352692540414257928499957028090527796418255879085551466769809165653894838737724835635961617944146570178850504385419593094105002143380899610246530604279058543909016956150290752294785759614670174609915634902571627972882210863007132316024636571253632153693068628344933651379542318336536112538303465383179564003238696915730494646758689535539300918388989395687453386583949336970319386848575416752355352289227957764279041279891235396319859096182181405306484719071675928142333436590911733986300620072554062784880924272250420261161399949206259556061786649645651049550112854965106216595681282602232520641389474852213755541113605920197161498275580023005043634063764792013866775454998615933971296657356722976887793987465692010840411586481509692290035236432640076991612294917759583165676751832227181040112399320560311766610668470761904931463575364961169096906813292574626892812404739526044610905408499857161087247963956920926077981499684381181240701889742675873481343033529511023517256983217068718965649980283219686634468429223022610836654119330015108263064889119102672819635633608712888267148428539018611270254013597557262321812325601572655275466202425061300489531896462112756548970775991890103528385889856885485429842746769164736214198692621608920456870832475290072969182755518729197923701736043412177663011654941032931927164321560753930165517396142941505914625871392462007112657707847075126726695051311533341337685723164054189787290808604681573384036320929322715004230966262871744650601704759491366930059042522876242570179061618855165639833293508844863034583288725767449590877616415863041506188986790962650151522649896549797792272760204293523073862911439582857103888966313121873325501089426987481843126162772803014486446132700566934803024056905777753401552573767035812152948903101206573346891957800867051812187438654227677814418002973069387103652835169980012678859473647632708481668349699689135586048181222317684115352228217509831576774643238981146983530610404417953172690848242828906471374244499794735115098666825914788704853887471339192896067434602778010090531703363048090713519257888665542964672204324945209747133679207352692467181666529948677711619264244413090351991523710546694615714314559413059489975901624609331716729959551380430756760481682383521351797418830811467312647771193030223311612422838288696521884189656765791809375647270520463206390596917171504033923116444777577482482784407392720649410922568103947214701130235614702886762838817748197516637721829870176109095051622803616233141968507419461600043451761989094808051772013255152947823824886000465397636594560313294955750212742968924818632639394523800977736443113803664273464766086391393546552116925359362788300158931585234126379203803833063865423389753321570935922297762298652291041779416876823457318443901164583733622805376955630147323247744707848572146283424580833599161403809220069571978485668554054953600477710177478743403011076971209208018548208161408426173869300984502936164216592712454700043136502282924537707156702403195416493747374709634696695546725655308497297389278278491972931176954054265282845259617166266770062420666134479086549667002115834432669883615816319136847094051992338518459280548295288809773806538786853501419036046142488634602756568505004854411683284923476212192519085324341280573903055450471255871556757318479194111627351634486360511663562149789931229556109948812237119421290266126896040854835005982951255166935171658156318281610058215353169569523957556263093745216405988983434691591860166939343681602759114667126857328090106998165464860471788916537635155271011311163723374068106012565149522353504121702230449296253397137372704620255299006916320979017095340851665514823851292799967336337378757109964178525009965846988916160326656017079338664954426082545473270147646519572290933987422651712554077770770327888529205217788715513875320100027226851937469271291625876116726282416145751566006487863267025308501016666629956336204975359169656148127805196170543397810436783044903527506156893828854714640454618170143283296741918100098158392147439485848802495217454684493414038640210320962119186887321109345062192871420414859075617593398280452908316850620877706756753938532731473547544137043803901731792405016579858527271520143441144560951412035265182761081540289787177742086412012508957139872522631046681112357073875295998920600017377338655219044340438614667698244934902903899086555331186085853586045264620332845305644684770042292102911703583736176892596109818110328068496809734187205529995372422558966637412350183962980394485671222287133405233807721325318005812914729709319126989742507809160852575664995762612672888435860327941180872679316986142864359966389724363715698817664173708809622442362090845601504002604470886158551901390247442229834673004404212005083650163759747954526110620293359995790322676822027517114254861881583017486005901123317027570041203044828414605617554212946303141266215096003802012439708392663868142527116471619647362700292668186530655817230795623695770868291453048351505698183082192841955392110592744736412826237216214093647202096326102217264497265644761149959518759509869404346446668395142068791648789406033037082768912276937853180769089944389938966801845516399271316226616258541232025900543649625357278192893246373626955296141105261150120848842937458565584899099628138911460210965249484764833231852923555433723148731873430814264648584875444628806568937361416845820917445343369313583234968428096342636614596491325563232068946722275555399450825601332930582660636362182443426366370679075423681130221754628897138397294636410576615773841585885866289278089296133654173522725760563696364873556166510152597147369842859395810372790790552898588875270310227898857070269943458285322372167730443643511554868378513437421661229872202674522136658792587385594607931802054301157825267515498570066416573837241374824134506323468968778069850766553245849482848047550291606189848998166433588128523531376532938287827243573042938268229711980116341435427778608502516166607397832869785967014012736935324602900824919305998041027271000161569006938013812493053450011447881703831644308017480896906373430788722098376027907504480812021612741170036061836694634181730070974311158688491276615019761754498129340282850225086381878444686839248998641700474087976516948135386583418281905665760740533898826726476281039984503697847453070012534936170493930828308447344663830468292215986958357054078576114279031493379349516368761688239202506429925480489548375448189986824037671186244580283784057437551428758159876805969935417644954090276435654011664474777417952316198189703778081833504972297040306616391913818883855994277480074236066341511912152444522441260710865683816056451398344389190946807184653253038402894199129501580600419399135092435366931557798022749114475137742198623733263706771258503185249859896744799255581190760689784931045192480917621670319972938435622320994693616998684324484136597173665728177634746790866190796547515206433889378145043608026699071849547518930485767771938045682100567809074053672884295862077408078032047695280906341523193622299012057278007989436941241571444960809157221196183710139497559617969289865518554526368975251329975092014818753530015552933642214124614204752001672703790978934797285861033440451480052169704303921957674919490822216843732213924294505195493045324578137903656682143793934637312007486199500979951686935870870729828155038774636176607987975530364271688070203948366660306310752693701002119530632352211406958009579875504237041259962240029742457521170481944966310969597612546905070148185421731612827935365978922170793722851127730654596502164542305542390467314200362906692269890008864996836729263468112140893685600560737178317510474578519908771560415755529593763350904209240914013552314520744716944099220622564912191068465419909414380058860352356399187928245607830089841606546558012622107242334539053342930603761006001060264638769137896130815812428454714558134753935096722397018414248988387019806112247006325759959855841637698359964047992833257762778079425033927998865188555163157012104831329126003813551863919760387561057781388370120530847257916393181507465745729904659080028307340416656238795706908530744649835144664099556895195468713156070668029799296168049609930456647504106839786153586432756403628098779746495817861631162723746181287233732766255649400391502031144026483882324037624528855577556131332007587008230962419297484040755432730424315494460663261176551802825756701399784651298412431542548530886603396080268111497133605975987029092081434636111320674297333277438232469223135271110956712926225288879174391814080217641791496372367216964731893150179290279842758270887843952863265451889315391279636144918510326550193718337234878055873298049276965685533748744334415717080520669921052820434925771928750345536206098513917436360329984306045087229487661595892003734545270753802143520948571456458230198312653514051654549471599246580847909974534102825795088272562211717415282906314639934129032160037608379925543019013784363440688235427003142473338360164921609699435562127682360616593066935661079188434850521988869509816207945122009792691128738669437232506987515836088135916795064451494276539547338801799475044208583995984065733468694194309364544827998734890275085550877130012475284725161500238719007258988243678660707141656673008674821955142256061194850396147200373207664177076577719941280499547907578955169849170122608022608458283868372714530233459237339361430130243663274244393418848035414078659593701815292067499564267911845148509110590579476331873311597533598056726196634342453643257659566894376164370677689745380211543776989413396505868050632047791161507668607759696728773137478091856644530244340616178565707019795739008255695003086202702254110363467076109550806677960036411626755534444834446837926183345309803711215855122523141133365055568671772625089736878444879748009507668570818387463051766268374902578193388798185374746174513174100455004874662702031209571081045033010959597885897264523889945762219269189487678244881916931079792285893829455580982027675522401151765453734501271953258022148206679814103193541785766777527612230219571372044635488635652385185380076266806909888070724091324975085236452697218579700425772288308191536984129824025455040077715622722572498879801949252936003359795833191872361116824967517884701332967280689223434047538506974579258215042601254919929564665846245281250056269957786622783197120540242303892190074848125274908654589209766815041068209024095394241234345198346276502989971128557108239646339880759800232633808569394662465953514700359696848753074350766866599254552180926626331292284533296996688816830080150023681453974963126657941688628170927763553128447786574899967244261648946618479273801302128183503292294140360385831793251017940700332063756007813831992400173369071609037800109784132784980801294795655982163906468654175462613221772282421509085885501294801748010061272698999246413524421516600108768208943147696956687298896506483209966990631670932103648222237677057488558266811331509632467618583117507584802987049696606099800638095668644438415292756043089999456888742433185917671565418247134720634553003688244108941064867021685221625733804473895097189789164027349341558825759906537364224361177641775248351251519784531446230054797545312832519528081174933803901386004019518366924876834107726717181042870483374141852914038456263432308132635510940281052534553536685118723987352434019537326001437318011027664739354252140537973950555069548715752902305900417912535285807379524382313979015182556573243640013724363289947091824156012401835133490881752629466493097475771334632162949916152705394143792966523765425071846444999696346744362322218664719237791341793034754560421361244080529442455216924799679904578899186419283346742612367079446698234321571777371006272323622917354469289192561401227946842122353788267950435298598733868155901010498376022743221098080451258250207076103167281638893237547245000158455256513152107293935965073205694128467048370791398230743220457722316054691355997867774451089689940048291851188000576150650888388181707423589230443874786092746928825180039763181954689474168108374649342248249475858189216389380063324315643053025678003329788427297179589725940299203940485969277786741581634302497680997876048491031594177301421104132557959314656706944351847869314858085023151238988619869079084122289847479513026934511711339518632645320577269782483951743465547883158990669846134208106432121331924194564787332155370144127515228907217773839130199111949598818510800914286681568383738677121834804308484720109184575728617926841141825708199513997888551905321894189685983884914967110462101436375592767371544511224459716671353902496393990300470447087570203170331547292112117068106262801116336517283102169231684695368469176580895729376288409279328761724454208138794873498855855850180794388507732858772711545373912098678078898005642973903281894404098690927679766081736196043348059509768335009928955742006934525959702651075261882612195363171901110206629930920792589643444572592167598057171924208124587368099559024647352397711111485925311880393666832124418833188234586043477565819982832654835275935298113134999318606679481273201012771541096176602729200229390951870200801351250080821613878478303903341511389519956014111070764694449490144453773691219346095232074000812900229044210264855358459919002739994067236151797488019887782617441561486727814503838823214249842682495237135585546456709853615043122333361712003215406207161953302273750255945675868436519424071979685165185346947421798812154135361314706620403668439317396433663307775657036177545447265046955852807096034543442328376941856200754314998249728765682613066780750716006153382582979444570860270516730325344766108910432315255772101879514077291592556700950461402815075862143564538912038390582996722004518846370173079363512352846988153022763624238576230267290569397326279522831099774400356273835092121785216661867336445497473435327907588936763400169880142507306961365126048703525641280924495693089459869302465716593808495497687837575326769192178015272537305238316505056529250526065228539670259023954947931153968292602142201315212881068706573387101388361767323248697352947108554755299933387274761518845682577161612528409038397781876352460029085520725805713453179248331807375953526207448962663022530299732830768096110442488100935541859494405485463840463189738997019401213281451240796887179344668619421383101311516649612233091543202198199904158481348720611745734356763503648909772036500909027068440321090105552895952488724453491384247781179995118235785436870853624028922062342776148547320952907218171912771484141053719164960155250592840329146654061461981927236539965073779243204834496689576266228673763925216296111086853092727241620238681702595034016589034753726275067470707148431882698520018317335750283088605355227722093958475523549197421838526379479228390944136451126569111558140404905931549477050581069555026764690290032120556922012053425718516624067843070531476138690064518706971762949512477917102633424294659659847266461909878550781590902109324723170578572136391102520448924779855913253197073422484716434779633093511485861765540455473364314958147218548329124301732238465535383250868010457851167873702583141335623884140143923814998224649737996617387428781567607700510575380920440989169409958448755744399208795445566977384130675961631260705087351746679412060929870358404457981587865656482099823118241731005414971644236470787156225548076859213000708526762693524340894130180549700211321362481021155844620502839876376512534444946905898506108374473621413462902925675252766904202158929599257320251189459525106968701442609669246829090638895503271782634367351766275449625062667812065114017397530394870969251773766881104979860418990527220099528688139057677003589717107470971736035270885112373665529534700600529385774069581671583982793274210491900180168647793742818841214207087769949820099676875438983851228462960040653775077372493204448842159524955079518506808085293148026850249185121315548138442659837511248102273393178580571236358003900430518097591934379863061806225509540368478270149229079793124723050418491251378154594006471204325231632018722114534417718170544791311657573552115146349816635337885263252226048736522573113928138273683861416955202232075377628835767553260220159325884487939223605596476192655907310114061284307199516071313204507424341811490598848372647247055724171400283250320509875523891089387049684673857836777078289283611346464539512760822446458063320324490738897225866051737737879604398131103419838693498020881258125824083068202616961706902546977389001913324909337662437909421617366590473912697299283665678381935027967413619856113720647464134131603594410507308452716898009848370642377150172500587825767105491541839310596448661079898424580744111135695439623435248085263683666510632605177348666170363661872272729141467549812906121389461609465579281359015319865402141272896807093371513853700401759302937851030145741036629766312956883178561451779703872790580361139710698042685243778076987588445102436634909981089379239092047970956334186076571232443620356353135882755043016684879788840188041332281073640045017292171813181075521798478141958749340347525532082000274777142187275931580882742279469047593054908914748712505377117713749311432282112351668563309306516328108057187837652001578246589220205492891313952707129281016956370389694092585749588245210709932727975281660756078761136500200345344267310990033661990727265063752050293062892500037462497003498748803136300604165606913662869174361010141746344430337635111394830293313501379918022118549213903892626267827144922016575829681176249320006981103348613068594322015309661524536648051318299572512729518160798220236858252053160375425005080812320381643745539710414117933995734878609982622827907337937199769503951604255833926765875040455373598196544534688182171963715200558412365019035510721170826657469451721071646928433217704481395517099450586542068150690152166363731901639559509602404941426989132146136368358174203810842936614752073759985629182351021618927432920691149257333047184027256040730931584533375108833202146127357206036247162323050907673771892669398786942229349124937189670488785495235055717285882396949898042000047792533699168267689109298595779089837057519567791119308732533882413624624785277018630801308617134236203432908931074795091199837809009890201331825258315780789884574702754347946535672851831819434248149270227056971535706731866282571155505387174077554806205842950912399936500456918972557583879796300834772614507711318879727087779657541533984438417615071146720948914409772123436222304708962213512804108565946526903885184696517583582503585665252941598397895400038843650273409111152738873670036818872911343454340426269671662678772053899064234227889548159281646095316301810048277524647707624249452418247558463794548817461824903731396177893668902107252607295482299348020086325335801317840289244387704119485457507058241169128393584922410133408565198133280804062624843707162408048002924859324556266426713111081585577461670636159372646482089595928210677927812182954394491349062451190184514056513768131531536249289692600231540751797568289355263579556438428802103438767149584877249763378058414579445634227912046266252885282701226884324563601042597332024400203029716003402452475359330843721619788397976613856385279504165962489862612801823273413773923263653851910746998622663538319178452906351133193801882593477637256616279548394735017570403480711336586427797779573196885245481559703906665054715193949814336144106267328394695441940681007488180261759102475698415849532147331596516508718702999322965260911227475386349836265247272319415145381519181830970471976625606143324252765084238117701257141693112630468282689392480170169464868141475348877636719015361441700813170545545126822108529129382294391157127069942826441524792466836869439725853770744285018686136756806732471319171084498192825071076498014677492516654432709700864569468166800097835934444140720118619857852059405748068671890555310465850597396506994423403324119158314856312254192360840181807244172087830764525185282080655612027691394864122251756088338271044981389636113106127648615824433638621505557994312551363632995702772829455371829530900590251763650525582103458417760217748667264811374170819325639699386567220465354374023741659894518404503904996630947871374026156505925115781974795862029833565568870950501130684101701718321644031733502213057242135597464681357139450492546239674177264010335351120527037806615196848858183606544237155730220355443569708014765152713452833135998506068773277647888777210594315136670148151117384998531724689193353275187274423965022035089953465238743304026917782951447195137377042666104187562972426064760071638875112401243308188175406966979757335995450131267808386145473260868263123727684735725086429685082844352508382310959200238197373530944420549742879971889590297732510662275718567636602043645031745207301566603781096516369916014691647500003275366587053217124849241776864145401659202084834440358862129295187482225319716379661296620480854026078677588083356395962161390317474950991996966663782814196096881698176900203543035795695066467372536852790203495974777138340050330902475869140735202292513125803749082645214452826594550594338931657967498191545155670860875271497006434647180266910104526686109959368243331997327689310336950212219812327449066059466949879987109019570568348854463092440027372282561190915587937064638713311818740532450039384479067166905977237685501710119844129983496657954801377778614018623532680249771771417099829249064951753848430896109715087245573362849088921747345609420247937716435001791887438729201517627744903377142780090713964518925355226434341484424085760814930608875673258222849945923062874444404089155431032382190476193694358749065092074230534772058596913478410711689149535423064646922423082452347758456876211523540952766636743125246683735463791218180862160649483492941777540700214955762834627969602268308759283745965603791092400987678201414020664509990391683574272336664864728412665360318963419075903041733129968120726171094522867638529720226271089751002085399376516982831375558433541517126534207928756491051366940835146647052036601337632415299932992849955391964608328184569621239699887927645688672108634256215392143741398002642704096485037720005699502791380865842736743060939998002102728063390835504096897035645412506817000077920337798314219638266242603113096189380434231797614386389028626816320395879108995521421094412876018644739923584991313345242980819243606128406551988420797936790607981870781876034890576655897897063573502402522225620383619725860893407651182973482447851168055038400234987912757442469786959596781041157037140012629178951358571071191463137100073447373768741650921612365736963010824467318189737158564059602543796630016724975311615249781620816621008698508090522745423825518378399520015156277896191223638611195006476304487122696689947260844146652216411073909345536725148503212992846746884379827893758200838085975709508948576559633712531203824601301790746756171015319784001366111896796638342837543117207132241873573329271422636410462619952572971365955948694203603497870672465786832223293862468009378909610918725617432773631637213749613935863045168645400452798897031655283095307643211823282423503492349461315397747857880966102781021283612465029993014344439994546547016796967823085095342185784935691078050856847865025802473748568760586669012710880010582813889460253524664461705799281107048251408953688617844172057275413793298846633659968147642956823448961407568996552953180341636647990727240313125056572301081349139645013757318612151142513288075016506212557164678053464517573390727702644168384701897453129710812239763279341183957370440713872037823763379628684220791241603793452787690680186017996124285054900701429764872798898796450885231095967838708194733800134714461930474716643577732409434025121614577811742266141979637965535891106385214174190955639795806397811152948448976505765527142162869513277526848480160012985589392010350344107749870605594410138822492365728492678543603745390114429274726714302002627573110176180078445857527900256403084827005723522929318526175413514536966889333299844562055569149091241657106314227692583358816378452747483165537783984454197322961970782188661649195164251861780285690815991886889002939161874037403168222271225197755888991350490219709304928320678736302016308570852623867749928192177387624969119011607381791055769769316748121150049299940627917216111009284656787058440033371622214840458458858968770586407350928080215603225360208638671631154741947858879690813737791325258616828952825625348572274018142460370466681713433221513347072850012233054379586335800153945093919091788845977456467258662710571240660654893988099094904182765479498522549310509715906644290219892183626851113977367458105151907184477096560170650695040708550814793832730745599773795134099930881006752428473019533194115298684147603573841186559763323124393823574999448713162561681126596780966567609770995653192197426318760648647825660470317225203638915151183623507566595881203813265336944934936373660556418964144004273617347064314163481228924439502934802126245909467964611955944067655558559493005643230753696798572568944237447970160510662745376866532310595119022178908083232322913099172628156491760871173292264382679425665736650655022311667359053837414061305734986803662016068721874253551574568770669444500711559769574674828570571517289181250865630962673271573194351794890348998313548287387807298129960833704501011292013122184047390396762329462876244557936677659436706331585711201434939693961805694401895612948062351940639062665268496146439697410454975174832776423924898742461036898416919793708074833026912018576021336868376721447967277059860434968211074357248689305100858350993449012400720571242915288961504625263785747927938107773994419888800704142911374290026628861825321005029418758374860634821337722608669910970182237190495433398943420439695624887979032652196371013968102450328965103153326680865934956484138975930025558604101736378697158688730426359796656975871117338847588792248727484494972771257442765533574434398579252566887146180970310964571414476847551165360105101910992925801429258434161668388335552567111271488944312879810131322957956797765595548922685572654764922562312778482332799876288622683107818409993949347384875559856191116603428871547556087969867795995578999811965870711686271158726102700832548845950544544925204566505476704262385306892288914940904873881137682263410725989204110267180845675817197078992819800558710610442924070223815605258812234425374538351759437246761577394717480103589007714144675996610616348083323063451995627339902639695688383941286253256251902487953134472553564762413784949512672284448502736958000251553991665955887009539908754393998757090293155137290369488843435104872489927371985336257975716282931611426453333449167234289187492350923141380557082863416155109777898459290899300721830538483699808188181059535241293249414571741016495138000051460618874762597674781485778721290364050057624465080535821130666637875163360231906974406165128671739621914859419318550308771679234459763189972915116881066648473955560415722499028912215258018594654070412965816850602588293062109673694463934074660042216871222261094346878896229063753613511732183789004233367676640056106781176296639898671106025291313116693105792186349357892161261657231473404860451050413969197042880382116723405333410056119048395482147941518707492390636110191684682018758458996845730151164271199055784201051014189591592601778835619847938088480629698387144865242969567921724483856787699482881305525936248542086398905841840318266377310310003032582075174980358117801112812147928396181864128331904561469399477084102027323428561273483726437126341437370758804200617748453933791885017464073731791248815864529330201198310426719333115423193407644825540594265466233430022475169930172320548736906556334866778644476909950563635131252564230757340237163493868256631481987873411239844983446831960118437938113519557295173068557276889355723228492720549343542616352975350656700942250146383401031248432183906330830088127310927732208866347013737053388902993907256467157703393640214764123314933537557868077633826755399450013855400007541912006845388320146842772417558188506758469125993071199898584007858649851519363331690217925838587412151455829754391578582886720796346391720930315568926286970436730417293412967733635900670975550354146074900284635111321554408589302222372151522240890132061051867709783265574972697669525815503489051643643827688538801786052664980590374102905046359801018864868284302715783757277915816218839892902058052199556357692748806053363050907978498744085141621239959344144247034253540884596787610743948880679234683286965582830332134369368460400117835459941709181718002605650457079508001145829615467101304615242411578817412118002997265905674044323742164179402795353447241104646532501140986425706715803692665327750122914791815473484982832292117229792573189870150238182143787733341587051366751345963821085744413342524359451638310016319146817428333221519913008344054142156724793944184710353314754642811508334154301335825838520606603011015539373164163186123694412547856855359073978944743821432384806509509651736068855595661064852310869529201245689233654820080389056441671231596798446461910715170700544575641266676061753153409896316922277948906013632684948381539580878079942563475324451627955309449347031484061431999529710343486965184118013002806026424316620770810694070796671970319865330395737393638257190949648201163422768758701465078999151610006957897435312428012024120583740400554592208219375758797382433174839401596481328009870850053372616481999129451271410073048648661190681044735161411380455871680611815350144190416283609020809136620572314972700102306725866891553624696398719736380990787901554214237043933417819930585840912234476138278497829734225452809201413988644367032187526419195716526002514363477666577487236516823232488911069856813350409590866107901300387115498544343020137753766380173520361196536330802828407151853706447878546475964772013853354041145578352962837118106883825135351793844499339994830560492357722746975261222082304229437536034196282242304874415122885446938958439152129406251032882341109093817394712433062190779658202031605585971557169720156750261164819242274967484085826588744167730101700290193144754052415888171241444075849548541715011963484110729678129669856503345186282949897283154318577529583875642322372861033172420010162461926896575486474251951971398856416677608850513145391088317247101829068081170330729763206798094438397097567825225754694719284365265280034114171091404143450464637505499554808927277805914905917622897304253798695567212603384133905478287962340912859148922082773253776852820115316086097704903695494966815903671277544540292627557957647300824589587010553198787635936603415483156568388319155239962227003285381466555713289293601463619602808663939797526275930331230061118459236747665008835508368149817551710912764845687492275085092991902766497663684510526460643219128153799227759091649113396797428381887237885863934209612341341798370463056339426502949115411317694497321340324364406218527217665984169888955390441109723203598505575151093928413422992670123577990115985180789772126543179718596467814206809593072282861627688944124276227725596649115096568033517480119993408114431252003367446677914830590267375462470254925650038474943276943939165735104997630175055397124293266536319360919166206615899087132249342315818972284696568464072252731557650672227941002370564772824493058495349613714021771987278037856654632093423800389470865946574214887572951655113114061459999161016699619128564662796243893010009900748770624981997022481928388273020809695316227782568104391470198550305762455689651346623233526981870301540076994423756800795593880932652301940413125877078791818975658473332760742996435362282377401777035957794160898207080743232568790064687532885726514648182275264570397080170218488968983631449489060832845654229179332014884689364121029708923742474770142667963866845722779850312363832115988646126926337389572216046418398318876986157212696791447422387213026924683058466145691579919662964217795485719287975289133423109096510997668132510790138010823937021073287943314860959691079405338274728073828358883388885779242780327286529652585622797585823930321695846861960589922022510854250429568182351286625322865460955240313563441022380597903603080098436766861750024767022038245645689359431934052244101100651751108885200062901623691989561798779994002108777328650474958356028616304947713128220644999866912954461344616652992983378286947176176727311964471967763918383531437845240701667722519487447448197508133808047074994236886059212419424984797498682990505782874521536926275936986845598435727883368984909188329974543109804825695887795770879771833891184997665070247359180148249672270372274247509179340582712736767294888321240166924304016611916344038466876365456052663854928105542421263624761647101068689493476309456640241976484445839391820245826908831912558290685285415720406803379009447413104181854757755945170371921485419052591312546031269676790645643080923958470741774612047541333056784687051346029513370067360765094278878415628646662406349461822457410929595461081435270514285583006943912550451582862533685992034683708686709965780272777417153678058039947470213638944850010498162633006024528980935507363979235723021133304450421103756017019366969513872463633755511869527835968858470708766350258456090121007273075862075074484270472158253932626734579398888897299275718150205235964739151872097058597870945885862037414472960207338767994385656598464836968922276808330377894144913175112178961342292191879700141706979769439196736021304771380849888203127809958879735064846616258373551200512198590035002249207319884555714511263568466486329129386215899022481284403045866118812192012128416138316242526240138571661970769958696575595344677993446368855937460470222637875071264759458342661413118155972517301544201381559758184551528722660887548294415596450343491768909051759595869136312862939026939244204160132205073066271532755814983630168210292599037849258336117353783637436903871260704241756215730005236300558028366369996104153646328755804031474966885962637481977539909095693818740993040399501881929619632048457891545049808390498982673114440285846473814711210041510330441986358657927727939619887445003285274796634117950357123809046702998017009820980269958315658298089585474468970313143823107258719559147915203402421881431147266266446895190829334528193434661215672218394830016615221923615796087414570288948677437449490414956050394883422826749185581377861974594188457580296820929866142088458199447337616033543406086117769607300084960114824404371407633228550213925582482273182485377904399142280112538116543614906594018699144101669063458068536705684310242002543737132718536089170294414365615840939498160240273890953994050028373710866922915309104022549260657780405114624970000898660474209507773592312575995680465766288049955241516905345388133811834069513556106007442353763734831341394111194989588437098854620846111626576203245803088938438239103565453419543053143042883824887093375245238517554289520577026346041239066799793421703430132950463110332916510287348987972118823942471905651809528272758074797569153171662151654324490232379515822203327206002221374717903976171444575388078730354006100292453143375091437741469564041650466400744110541646847016678665642853079342505576098147853667190896313083998039642942854674261472682039935289365542308463334133589804299505514436680897981882097521568886657418576816128153098797819963522597466327068978098428110891972658718423462446029015149862068976406444305198199175776856990822883388376711840409002121171933730175894433577033148168004546687397219441499032025881043070080767725208676037930801329071067316183106747242380769482527449509308360694550315863634116602782608736643128923295875452838841164195653690150349275955420331942495858098743257718661461569627761983365206674626920629757764314294387164541608969282740535938091219165119252920613066493896146187093025811637067940636857518362534378448208191999561463137720821715972460017681678613134470035003110354683663610965352155869672276111033531431545747428617275051036659238796528485105968473847973953586489729283251478055757511977657410505742030953908092206120447760079419031708132375864132818650529793868825508773847060141753339172238451399234129019965143832227040709055380436547279287129010883860317456863483602164087016507774494624281535510860967003428495329181284905365164135228694620666780453641650964952461771910853857754071939154739342735107557180143804914920450655584318016565661776388759771773329921067905150152378255078617459323128897895363636360461766140003939303582001292119118646297792068992484510298851133529646866486772637000417941245443004063506557679178723431321382282724841317214431886479349735626820428022475794700966929894777315145989090639629671059867699103509551390235584670726144824135473281243375362113330004445885341420093746214952059700098742899571949627519338272962129541642605379198667423106780953314519254660554357961951973403297271625212700191958094472550476430787797975697380353440639184478486697262602238489367160698427495292125340741608939977139280482105013692615339267226950250335614073295944416625235330108269332323564213574055211038000140261106357820831453018815207338789265634850909821796176448881266317006151523784441135160335906064507356143640060023121216053185794538956688102366091224163822113736426375281443545727808089195270944586333384421619534881048430757918966202199978036923064239322226086206669910979251268699370592599179828845137144181360849669198583514149214577683067100575616003145669463110881188554987784651841919581566876472898637516105533482800163533253535848817907998070339428225646737087280783944718261983683237530798900892942260658633449572057107634303926891633433526098340896683464711281509737344655922259146038127035890116092968758878789666622085502947504854623677962599421148552257508559895010606927958273827568693200619291183830625177478896317299846158704431387196736266193819032532326396921596622757041995559453823169356333704885766596964748048166095645729007128808947899338727510890627642356776134929969352609035972963542199125688583643171804584070443066548860172003932323332074173473484150724355908419119886777944696554127857150470072334003649911402784666835399302016304464793108122902917279367581064771898070337962886845943795870844921046920144024467267593024012993750553673142181119447159271388657771306798221359749790984728020281715842811689899685603306943628541838394926799523455947294743749753254935989638096677606141438777963337572963661515545080187297014879875448963749092722172248547947509315679430787535220262310701091770079982834200590231668735388507937394436322461276784624044883084402389678131838717014527916615135943159176069267104350889545589011965457256724756827644682721091154910411560790815465627923864479628270007536510380441577796481069063664497175463585841766066148538657570165621447419923949037378852235651569023443018984398034664626686339339721900994936419328569262624440312064551007511522384394210602799075904727652087761350432754360441168829468254318175864692661260085191765711993383873471463427123084097041983773993941865936468703795319343756761422236794059298172899816873265929805247835507510459945342822372132944802996396784578810938637130416574404629796148795722336562354361697078671468431368149190319534043131876743475318410260375243146081434291290682237674206322162864264834525238976234822330598401190065457509244467505957175855289295569376595439046699130596902175884815363969459771860714618178701731492924652059605103594199878272892130830136956837632510242252892671266682465460318970336748300304785633847042233746925531629257031930412220712905331617897001737582799226437047581346310932696580761946503409827773126177196499221011936625462811410650953057556031085957366193971868833303449995753961917412805871260589133960751056991675944772228688767146883627761135840505996239460263013412879555062570874688714073961735850669992949971875711005240170724597900699675243256700179936613786262801326240543126871723936936637907896408804784654385825900130087230852918600488670106885523224276006871658671776505003566471411707914150808781475221782148912267494829339201645121935490080442041284458391050482979844060763361368695993924919025940666052892349738387586637695650918675840315012271389596219641289369703644012341954071063121948722366719405179029620008302749712459563748337717264557571465676196532416874733614103116785532298004793578378323518588002107568045855586382404161762878539615282599153556076215393732407258160565484404445919570674646366309307386221855424397714401611801876027287965019371134694593811913775076939682429308091470502751511054500847139190473485632251090679974439991786470613193794766293070830734248598554582567622901252453255637347764412116629812661216071259343766735525442420480092824241718638189771849969569785139663802788818744651792135255990131976955045795513468612336548959897446008638346475558249097284234023564388283483708846301174097691992284971285873998213614676789784786721978422235369700502021834351313796924248022447220441967206125838357763723699846510919905607041115519245379860467716604371480129604299731420700513179326626454852896231475447733720143208493080056275650258527417082226173866475751595242439835745309578883649634257098729152621402536038139716575353789175283506274355348789106672854880588962583370817262146878408419299453749945338450523915857320907190410988165110805757257353582628141588884967637543343533328160575157805171322358054401242309140855700662442989301911044293757496363871952877543300740438027253548740377690126195475773780699708396075046565272621075163565723249967688552686256109882572461989938895301547212320982951760818769590376080271219812324708591189445993386788159455210629240310263387562421479100128700139962114855332683605882067625852443972716730948174160036135043853451329393595421091571526962098872779603244274527916159504099761523411868123527172508384976372253101403473497130089742904668388107653159578868667393498170830742209195852143755200023247529632532801437363570679758309456722630289561318245464312163880914424748085319862757895689929163873054168357143711586083456208828441228685518537555406778484088300887479996780866037552994527366140653438208350680682251588909887158355893721323424096678706201841199743275501749295240825268197231697189721392987998963839782757013199360217848858987669188470816058953244224002983822300662183302426343833077249675203435073010933110655933267275691297406865518147977905045170102429825553755270454350224709142760195840489514598983067467430594440978395662356660792980140304178146799733802168610377984700034939059347022916498495983637080480539472106030508820154999284214796611584188794318814525992021350668764914466678304813588198730509565491995037194997181958838038110214283701180314257451302295107817297097345903932115721666032308939306475986381862733545166538087302245982967898129636782108765374779129295251645233627439760475205731962417455839807719132883761364052894481740351588444090468896025421736249134710145178211894938139006519931534037121168916935451755180096822013839442118537508502713768701607250821674657723655131669416193890437324329501252869182365454803228442386020943374797190828198916222382673404473519454285243803490525848868768434500333767536244753972639065630379937610126240243290485004046493092957240425093577575810870658176307004826921175976171299678788408598220259369040777226497330330906330390382554786546454469976186450827617688865411892224344224648624085798303370620876907215422766318120467253099975440689141128539906821008755942461870971068112355818843798541598939232673929946332672436093905887060474781809814115581934262312848999049904762191130373121423133430759382062310179643614604699527117789110871865198497454308191531328120684923862840870545170892527554187637536440248485845719897131923338265320026712279500203609088387760307323706262894433985297043098131363509831079490812900380547252205134540332512958726397847819796850865073880086048218868437133525912246185778111594958624916550300490549626258104599069465950012847479402365485172751366401158016043298676935862686077859997960753362770988634111490174122953197229314058633614256722054845766134941207540944301857343386673697751112420398005513026562557973787998815355347181248177618352849894580707342438237026341860099326586928949698344766493606864765641859505716646491317454259499722931332024422776304368732902441780470615564058445810260881094616410844579735787944516552280462494571911171326371863699376457356583939924255580945486951174448130961261809757731484284858655611770700342432388546928581248035409186591045893922751074744643830108591391789905834094114522841495714561195321156948737670692780925189045436861060535287718242726128252604925964832147258161361899587711562032384848998371910415388648237294186782388687259317090946265098697612999979624908667459825350854700990136312923226911059312798133440038394405332817455208546170612179695754436582768252659736582066173857624578257171299916335085004147604918255092115828562700961865374312717119756086357662650081417540915175466406723771038544588585157211080779222480371968044281980890759423492849473560107012437435240335208710549389476834475007902075740661822412351706443943695326472651197095278265648404347970202244801631449336142254748360209992285500121715985216505530671123638506276925871224577558734025132899487889380793997058969011577188563558005798487829522248152003683329776611015953926639255015690126292973388732268949882984303084817168574997394704492564321901427014254240552111662683848234201269457068929660389243399292097867019611951013566344813790668221537826500594502023937708937949664837310484362699159872197467390586109515463049178551611704259453798359624508258432470937465492094026056643684107132522324633747990036976816356846065669077224493641965194705361798955434207690965971767827282016736273107553638535607593928373041101552263478244052884785703233047757374727829460563437454864490539989249021298135214353434426019261792037761995075361215185551472867834607218486130121795037068727782107497674306706625871593283624551880293443192236924931744789704596619072344585907111607993014088738156453603169753306072282095922467444084993791220338413039370000587385650863904002991551522291677982171767283383418811406905717576197178984159388217356236713829709310230750529145449947418957377358098368379067292415379338325830848968700607164611774731008221659045226821639745480857245956901293922856514263940220617534236619612127549830223123599280808851996482966271951348949925382282995510542357375773350675858049637394431950954657349336564286698015131885863204728188141479458802584781466012318601453919345272708655374287294543100168880689854745263976363085356983308702259951391606361781169340346187156446635796236987094448564068126373884944754660579196627028778528154592170717876902643690579962572984715314203166537676148456751962605671325493046210188663094556980034899336132424187068690817709598233144274798215353737050148033725308200949847088223143860972927130075988072974978323973999208664258317824670570266873070999795325952558039202910121739937268324514743339096934622025702723424058345441891939342321852700035229894304776099113282176069417300640396719847802431781347608785910341393225412656924989398442420441425476334582529791189725846738415673708289094735126239770035244924206573403630879484522144661830456944261874010787511493945001813020613201158391114421393705283128500662998995763318515388299263267038698683711527278668877905532605829249977584976316874965975576048688919237416878323953159654752920273840249788971070839083361101395424947888723181874976375833829534783124307725767128063223325691802757617998529586064642922061136114143434415860384794709512447711003557850681316726604985553586964891272293398968506621161775948062551018137247072361870739802607776806647238876856863958328131994467922999033820709673357391594080359365434774618634346895092290051691103644863425765525995774819758004037375766849369123541456074871302951457354050426714926833755666539096464814675657820207577932908756082843942438101303621224570184691648729253114127698307615417035070768451569795131139159073017988379170103939640529068910482030776641009191684753512478539305775642046259289264828456975193693114430119623128924281683631874782818937506282938993310505409420340999516498146097620483958475122672506634886575047864754776470114277849264447657028169791733643224537698464737022552271803990609137889021113864181556159667040418424781339400221464377442961408615140441224350142743275661461880829049629399237921232915784864186992825682283732022497699784603142240166291804819679946408886957546631988475795044869805710143618660690266491777295102216111986422462863395064887683893152848492592165189057501911920905068738945967707598937729613169194540207454793498725789531630306982790321362355638702267435466088374728215766440673996703634872700580893384164937402601446381598771816097850999413446441685326951095650562035589005711799268027284476767932194419568158712966788114711164018751130758340705593787069861362480477993020923126133062479810069198385711042448144174909144827894696699138736378077319229411340657516137802326204607350505591041573640458550886347692353232485227845235013939625043476816620366357083034672561245639853838497509507426985922372687669354168692898837745915952822608519812151280785663233103804726349484992162044974046269914581599054514024012862207200529705210072058304457262908075425412785562974174888344247745176150778676617816467685449721264528964954432507336944652801971645533262472268088399847522457770235921984574813647286412835226637245877033550781847471025538508261695581820075644725997730415897766190753254904761979078814908057292344220766014245644110731766638140949302830469142432934355889869618558793537304975426909901437240552181981767366257824798706902024813153996162579674810799250675105672099040590750044908579118191712234575472456800261874196862997205561506480479919866646567091344000741127765504985610820064356335030309457702688998869374528710655740395569061487601687144342789479658355582982105941789867037461601721271487937930981777584398670384147984664969494714102036742095164213430142671032271415281933465715436920698442309505483263230065613782374546634253568493406497149210745040629113987073000469858940008276314209563770293475345713900052106895617630453256194768939499674391087090655886397300413180913909769286283060119373544908273438905020034804881982143451410295270465451663590061172148852849739574872270475842967692515686345092142458258381164333854276369307073613076140215140718610273468324431612092889709947185981150232898260754606811994465575404797807451474246679868918482008775068900735764561528311619879336901578100605495510265264805009535688847283198361292865159750469098979703618118827202737903941227099081563557200749851993714750715713518208807309101079541189704173879754373077180212714284775763133143023099153999883380515794822526729081863649627838475262672160746728976329658677679412850234432395766252370474743266976814301980381947777043929911766429093366894913787787607165529396454961009425324493334886822685705258781307133973318943610022901140882779624953435915141240887666548370723865110938537512493450480105055205219083867024382514030980819539546992291206014861979031961403588800020590385831714683256401538637660163473367017434202517878119771483732059257986669807189839292507975410742938640821919384551203969527665523817893670170069031064470517770796838949228302691230460890058267777342131819875909126882954843448082972427528022195759605882955035498711566608078361303751967581110042020348391145822323792575974985360590645953456081932848203258384920258587038407798105049949502300520397482900227089920001397605306597722121135056281068260166740474996750743629666766961857459611221387696468799911533455539204115125852203072416797683762787416693283382467039298014265153767941914045983125624497189726718350322302370259801318610601821547395839528777937579510585621556135317982572591524064678123621052421173200118177741015732351547781555254034354156804065227380028188428990787993438012231412364528031556865822258806826854080617436053091882979678314895028734764296954331874617985226642374929153646562034737866750288514302271735610996113604897008825432422322715444571023670487404481890746556499670592149052962781583657737922096463050745611886882793930811509391946361028417037307668567846994432095341919335560677027911965073463594449881614482742334241903763838399913883797157906216320850994504039921124182402493939376931823414506280470041604400690153000290167027369081901189534824017241233761360062618313502395121775397685569797417579525057342545312801840311069639014105633767499229011520078469989505551198822612693403908718498662198447614016842387462010274902225406368176783424208173115454390956419419005186604207227591511799257945430464022730214761475263800221705051183709266345927193048528994249988156835235657947386940956550326259248992744791152472294089588500435038154179892935932467629794764567296744460674530543096401502889298299996502509229261191072478730203450151217267200322635776548650618287954769556598970170732743567073429288674318446689542605985946644257134353913550449456412139321070563978604813565328429524960346531097036640838240426649380275801932192328065967372961683325537789018287164505067455299824651181344490903053305562095511618786728455859786170557232876855361188357490536946674753130964237349471330451447798231001871591622976252598476118346781661187738110594406976019737782812473295443488618866711335381505254674728487465450887714336650194692387849900882770332727718383807443387396775881801935803227463105991899321120942554298020671924450909715053698772809972953951076184417355640578464330948502423896487936163724354075357440653000091199711600983610084313372012459553676440430334295460291751482873151966032294988082968968460371728331176496933017287504885267970824198827419591017589596216733393802535207951548499669687211397031949863848150009764282373979722284166550635055086892100570287519152904745827120171057153874842523681110763245320223725530923670969717651367794296181491228307530324189523792801874543983176270136925970893837045602425069892456372000718261276898466169815319820853165788254187650138171796078576540331021858917986401835774897378050345304497462006011019210486932543811918678641250829158795021396716193600646477100555091144051184508366927751676560499449084308482325530432884881894390831667702406563771551048178272850148401672747625249408293015190960244216255901473607961846751849128115542664318233206243504368313060655033364457065764399981181500260401887662978446254535909741500249659964331263426020666591296990226991248006278208881450154533774054824274396790796181628356391517186602179297486437180224317590065238354746544784262705602310612466337816301874234033773803225348543270483373453469509353829813674076657670327486866569030687462714823305411646310364672682586365948626325251443793454369464555945503616648396628309359167372545122558953124245617463939134319793314297821856195121719588643707634776900419649961397534895730508232085087501944997294004459660053910280977928921583413879594864561588011879724431930782502016763497399738137347433602860500669150876663558664544674517187752239181404798461049326461923203459432863979902000188086439064135101942801511750813511637548683350313755735607406194954949176083001019665787903931923668767653158599889224574909929189839621551449025974144968613400306140688142656915191630030428139781463078694953399681185441119124821609535914958681072715227795642162465758998289316044782864583997984059832302669043279531484008346473761846084219316044018401020704477334993644951083163951214227670436743733044993447891028423153809485891775655373089026414498982957865367220326538682074375191890793457316562516185620870675354780264806811437412655866614928789846082704550799323613348305590398845476703930506386957546994842172559525351498790234756383924857596829127909381185445129821632725853733424967753340609984589505861658917497250935044288508569071969625497542954916744316010463944787172575695888312022694964248427689485432639290442687107698094513721887371736566844793302059418643340199009234066168305152498156182707884410930606647963767816583750260290838060121321528764107500676281621672190147646857887944362989277959068320949591790779777572237679759966685878052105015710262980650123890891777866017243643840921859603338217369426456744816494977966078890996014768902195739746227582624573043868015701071607429314118122663776127014304295105427066782764947497752818604514335440405027887750219372388067993755379471724306365823894340434997530694651476268933262984413285994166155943739818698748419129286259217686535812422890308833314135870206767584633405033606259322215376044493222109279469205562914637707991521328848668009218303854829427519306430903872056989035391267630001004149005345208966862433433390660424983873898172657838472872005031558347860881222521554960462111250433800098924452732124421324227335366717888011276277941449155120648176492085926883710066138735045387423072064477533528649234580822321158929801793734312966346610517992540419288300885767185646685531636155457201435694679914658294837823359253603125088486359307311492664248027910838067083555016993640675831048811312647192471877485450298451530311818881248690666446439746921302414690294125246387915697559762708721754736213274054403640469319691978038951137603338045531926907407836459489800920237041624232513239858065814067971204884261785412901850734070369701809069304720530328657620607046710501623729057989284950550036612771796217059905052936432509317543005402896202972415185245906567135753752550316569532475908002293205135915292691857308156505138527911865072364049028637298505669317587945083336526066387285346475487467540922249983127946382376380693762663717596621925144129204829356102344450952787182381561340457832824718862854713528194974514558093940923535982809791231982191888979425736048063558386527382470678325406137683081145406100386228954229636357532721097364507538023486571427561839398607671769867001969328741869402094799981447893064942105433196568672890570300464428602821798455435921484949050231132489773616581821692527479794720791116842246527535276186672611374047839932844493060204730770659248636490921891847875812392427565251593256628498593138786094560181792474438691545939661507335127870472704998533038833592041212502377183209618553903359668865411470540527082927556432262838851351622819310421233513936464074926818052613194352252429472380282077958408420894149513460284241158266817695514626847542143178010030713592903062868112264216791142796795187103569086150846315187228276694578671364105891784969259241103587320059291179920554124204651011416991663198913259548616949644299795076391976788464040546505854419913280560027340849996061306177094100763507581028594579492401655821912070949419909334423064517573798000280302423984871187377607861398069813253563152657874853542441914494876813883349390651753228838079010411739963210846216686789671638208000311946861617808384781581975114545493363340600515981846383235400980169920183546605113324818910892898881007059015995758100912616925895516834593522724437979350812772232495610135136625734762395832720338047057917571080642770600267215440920441546077261300561078469586782609336293763962457080799623396540922927413434107650249488716681553916352194667699794630333846599492229165812765664258581061185104993589760744839870999226298234987479773247193537310473160665749286559697707249135706247927936900678031249677511501000119975535014236253492468854898034147560386858368853372107811116616968093054557526081520438734167740172760022229281255635927550028053178862297102950232888226713139226901164270820807092881952244730246599402260526341715835858316039565562317993651500406719980792795205987489015721958531142457755849775871757957972552292269592819603218719541596575568579922671817628129091498385726422725698375529436558714636850405341502529785423109851743221232817742121342678673171203807146047312366277786550993941924227936346454702846950130685670229044179432676181610433411452273113999745689722230142748345812899014735082478446277110505380400215332656576171946967949488591755558328702515827250766777241941782693403400143116870213693862581737952322919215247783066880772368388614310323239428244066027990066208686011251976571650153838119868383469512568315695436590554963069153742446089225182042780929152966892740294346350360985552165293127832498278192661562674923394036794874474037756445869622208355363825933911669076634648435585322252291413495342516569472364743415282311079203912122703790028611130992172547620972452732296929584362651148570496390589958131747061028115785442857141048310502500192244477582797768975800734365121880794563709839792700710076993774168832370006255184645214951888670558088476255198846370358956561226035399048882976367851063688731223742886469370109175244804679796185146483328963634209615641488848152296038819663208050653789537376215531779437515843118818961664959826067798424945640730692314791689233319951869514708515375385355227568554265766604433512832745568218965313372411646902623371767941427271952692800673964056143223921362140392145077616709198504497257935017902616650952534909188509788135938888457634599465885674599310366372235493748884081607820663727692897928474160100239171526193783999762682369011824940411148793280633375296062210258511237058070676970438308401250960608764824664285075201410679847604114484634745513943844579880831516759834015796667787054518261932926822412965414875470130451460298921775381104760979871932916309437954039117804130627632012720205687031022505784809635291461405714850794790522558034717950078141197458857504947493070519462664432790959095984494182058005387612324941194917256903048367057183939362290902670553040836295092330390730942814954589822115617475532173469612069384063296646804898098090021985317829540114390179659337086025170618544737868832812211605183144800185150959340416579963662455796292938874990563313063546015055787259066041747223252301494979575814457658296767207921377937748539802860760801636885093965417727534813794546209741551182831913530107589200941598821567892293115284030275003574880040402595927738954425365314161961768003582028256745931625231415853318099581145720418466152500593154128302046932320032283423013308908063770279962616912252352725720756372630629221598011432885271107172751847041715075091149858319737886729781524820354356376542488524440033440103565343716203873229663267733981841835100060608685939105788434266294617166019590523056035733904765798296111857212713259894427986259760018138506595246100172479199201397033669214962003187003296720941950300199038103351012908442895611524529321510627510306863145205719665843106417522989463929946138505744977555849670438476875029668163593473877964181932360985676185397990287756457491356167333475279289698484740146483545728314020618989412564747155779400030020209072899455242227889968825525534827120480266383275902482826610553293238542039531878603912640894155172500149129884000775468122449885527167063542211664867727300234208044887141190488861460127406472582486290609096993904633546120417037644713337330075989356394537022806281960269841830654219297421447750033035279272999241729109662651233883411975929887181472679795979859329786968051783791664963782754425152929385545915603791510505155975053892051957981778722460999439604560402606626283986929238734703623534615480198423446910124109778078619465615756645907030639344388653356030708263644843495557317837825696656482375938935379282440205504455842492183271700305290738817748841780080927292061860256135577157959239844361528159552533940090173709643496228614037187911113404680324678244060484524036126706324685841556672730572657916712142420371104010374243369359697977394242954972828016676309492939244769415946300301904778525803427463326175214464182759694517239431631429067194602135536817253020760277992092435076860957266189232634377361655992527110706866675684571332295069986768513825042292149921915715001624779337347726929650777741322066857339372416433472438128761729365056919077662353123640217579845048914611412583148719049235472922814144977849843850666024965657261713819821370554850251194214684353665933805090014331272769495799531436506834054337487286182135138456700847742727907210267451382495419694684902896133301990499156973655807263427820082622458628591601742179039941391700559042828215216875217664137992833305030797287297695483878469486477567946537971818706550988976403748190632245888767797760141823891073789750024445026064815929549515611475562034612055794681677378633491407812349145620867145492381860174900638508314293753234564894892826447469330621830531844401387751798821392070675048051078205476520960606768438664507695914758882760731815983213602633942343223389422815022335637382090196996842679957825599999264451157520270352641594817109139046909720460021302127215411482827194534321298362258303862813043934533952441643898518641042849691957575525948717631356650163406103898764991244899890194285916389563337127358468970582033870671076541811177974664726265686266228598887868733232109650338387443253583682711339647913014098684992521197366267354287606898297413678453773737669610661827954213636099521599579496769974514387722701020659249306380244903973135892486759713865655778464769455698006458134461465410542566136371183999443467593852238913523970108569876711195473110603499678780941380378951685810525213232829966638873398073047365280839346791831541158034231795784666809025113933531888399129534617631105815653333036650302973072188585797729404400257882893841372508007519131053900010719089396320417597978669461686073748759927145631219467143458381352985108031032484584797204854529327800410093920954969903617097077409509521126348506337826615526504149891632095729632121500721458343958611157086544062119865110601410683405204655051404244391423611275387985757444739103813123159042357015177390843732778325075096418866354407110643455122639233740171214802347615636162580493152431822301138627308818648631483655108504223633800794410613211400410680332358829526725202924674426108216739155460691865000738604650280652314453459957108444627026341382960936531299811490074486268530618634870404228348612981414644845353188909943257236165659334245310918734901657721063063126309262845907104053329153213129268359410093100099554163151604663530377308813798824598704257366833520740700335289892095809691250358875609629259874935740739944085433937851218678934764407756344216006164167667456256895753445794373811543949422448275122722172473605144089122167255423154503845789612967839441625218213232371714915717238648160849434264039351751725614613297256697879798738599847450993756946672827957692041290594636736549744169001156034487156499373178148023201206410091312254215824352551109573747362808959973174263380604277064302529965377941445726170502965716025292730435354716249536712239449673976194512580936955475339444330892276255217777997807149646920793429120693295576022896957694673126536819089045971676516671669848840988745232019998450639248551861732406826415477002716432307249308979126480266102807708950731459060405062729267025226987135941220999105079611039082532089080205806546809393670322002460294877113699679958304496699188118268606116486071707984527188224011652856490988604674650444633424779029501531634034909819310156460215220305964380118988462501990955100764879918086922008091117870302201111720128408165323105247875959156387612026858533796321820898798596540288937877901072697433883930314671043827351402504655632951079091188985689331388004878113197491907843903172885564557346442874747095548022525137277895662935773173337526909380309869702637616429320737274599942719793311833547961534745635036342670613760231486952529788237171199866251501606497094348212119201219036730532084190550061133691742675873509167505794039240901377199764137896143359287724104013416164533592377046900503211945290845438068571061607778759903261624050325641422820211921654724215587718886735230369132047704214178288765707296960821746425599872250222266234538948158148861583336725135456773547880109789068411171270846870566023823836763938034650085720204663949103854098407543995565947402662780910412422892329639554809883644895627835530624204172306458492855237479752227870743785681107501436515665805377194066050316860242495908497373792409744561681774780404811068201887182944793999029149630984683160981582528702123331933418983830936627480808879155852235082419251232909933459885733265505155173409936609644823854322135124831499448411788366161625378641549719527119492515500713933001477328076473325159315695962443413895105881627790545762779826897676233683573913772293834577881182656319480370219868651462199145885605489483276144925060381187652988125101291696683615806904262356530130332799947711078476972309219711502393848765049111644654784622611403766437492477409586970275674315160334543349271273849017976401863472789095383463888873408763653017878285402298505588168543818506149894689897487081431918199199252211190277593308925233041259486108746613112273180886843409983882087782481668314890868510569283203291272239721531405866434823580903050026008453185739754145549664197660049405557545257776730413398391461818604784435009245269215805834042430953475206969079862896525390238083616553526794711165592117927850805379329454146462475827586216182478011592374510410554376530630434954784080743187591774442361330795732176591189645180532070718895837567638312557383277544795151937637085833944751526434633771390431092111102452759073687873114120529489542213295480359432942773175005155647264922422120087200202765600391586262312859779095693563187776445149063801644706201118734835663809033163937632869940014191163255945109865461021443605449813011697927634329435813428661878231857969563447961915327139257661425843055868055073075493001770658513536693868530529562722038855656638295244297386340042457887138299939305047795434603070244262071423932697873737893109142341691235159833885874956991849562733824410459772260809181477818833680934339619875539077469341209560438282939147060526520732844083973708295559766074554282993972379792965733815223329915154428766017885566765348394061936781827916379025330133443982203078842709459587695417346179225367479604294434838654722241989002547016154159710822366112989550933177140621206713632643084929134128950409818575332426630822509671170627083903037157535996792448178340482371062773418220499072886547065384989421925142206900934902872197496829260264149838121663112680453672425334756474535311060866835206283283652106892127527815870631158453226903819278572094925729725083235246094083475410093207005809542162539840706016808085029924303284880731097899538025526138774002614504112907016187882981757485023172004314069998465128526099854488842178590618575501987166393824077976628289237471815952710315832575547831307455070680968345472507120005218568013807370646240123622312223892224313622587405804005982722235601773628164820422316903692491848234106196698585223548920583858214366411282310579209458803094168714219061978953396776032486977024939566604608650453366882780869819206959330643131521147090451228337008940104423174150085498139252805356668558439368585806622126918321852889128755279737439505628959554292953930437253461581294542075855270571281118007785701848920210512383141578701616723145567278325571774046872354660065278575080115442674499032236456815896500769207852902713826242350798163332733138569155970809736815783281968192028099702753578414427614702405843863609880714011562683852681501669007112187660765099460777356376346861581192033509123639156679253417521209290330508419494722530356712606210022712829844594591375358693518833112084227069799278189930359012415953314028892375293326812823370527029914603590698881950923916735502963615192722967795102613690173201934376122864613461070912740576107145870942733807418408440402354615529836623380859476707061621070406651913028167907946197435946193167173993341116141755748390644101516730201468559367689202730893224823498846463426601598932158029805172233188460150918438969884764794637329352636341831283860662242595196776434080605978127353193296009586194449357488780111828193563928999069767104351193484288122156079374979010065372214395186529490324394043016144499691996146971732143667344696397629264355354819469118791765999428544056671148608511992077671214212989522225638903348896704901949262975635385479442345006975139854134961781701681053366190049245904034017823543034528984817064005714253861708791162856991679673387279297320577356886769304803390950544480165341418322019118048123144839974201300122249778453954635906401700152909240659243562061579391234425833508724686261543085765068384319521859656561780856961714020122214954243987332193265580436876681855246638069734943651775959590721456310685705388818840016735289103175828507857253026953367771207814689470118773612538735375108100183213503787578570565051800952157210211795133754122753304591116003853950134031352078195398429562347277579733733002182558377225310225475466771273243640776565666853307384486123674835884325548087279405924872220514528173217630466055738509778734228573900659494487697520602724835362653210715905409118514837019824171742333285696224617369538020696588936845113620291727814512815773112156807655627997736429219122318224157761457242409144039724643070835966470976599761643437303229679580708670304927366280234601157592457222564028132535671590734513191625215082869148089666595328251237661612624631842926855767688888123690241351880325322532232611805900694829733241669967333496950189546221730433679598074532616368917464642030647880115009805245346130437701183455249416743807401492860765566464634364558529299059393791723808378047472653784029662455670955370408812871420804797257430049356666074787136079932911820974156991766023523250214778701787344667705852044926552546560180377277651388494340454514119512525009288612976630873756491288860869694042496137394962649904218710587947661780892093989545722433570332168217399300850211539009664479670803426599422001363502936837952137475375878946795873618109741732221251512223680036873548042645934803264253950208964116468906928525564987319524433919290103657601217281033139604696930460322595724660884448269760816045058191017697659543626948750399742347953213416298199512296252534408016706946523940935317870264875545415936415913404231089954162133910319812463769824300431831196383168588993958760664288340299852339066016167330860235259158209893398475341743981573868582423720931859997734053722485672269490840436442981328724882357405010347229031243297477167638951622525706894049625633291691015291029239384913556837451740848621822088912037193723029022189967578973355154772052496085641061697570116485886896926626103443867770781630460350693208088422714936215439959977780055760209970212616475952640253853189802148517450261113773783080993842917884862639617015464617944177949076878110622397329835146802763729714616274754841224018287999128001676963222948612134476240610288529598958262278046596176186115950331543002906345936097785702008388500525080312826049070139817425385544593040829671424797048367640559067717806933381737211698937514932187364213114676876792532284626493275275426188556839835938629467785574698086031287218953023680036600411698199465380442204992185168949601503072378503960916674104188700350046871535325961092736977269622463117609235756024781254710659675838339031888045263014908992394472937121025329786926091637443527838165126325222541829333921834000545221845105209009012322655113800606009990844586109839624894454511129962081665560005402292308445736085049087660600632833024125442027469070399424719172032016649982711941124712449473072787719024718714656883640354589784520063734164896006359464613052856086019786165034984420704655870565022942957575263234489160212374847441251781792756459389906130999789402024768581545458368145821340228578775598002498290738216015278451318638983210657291852571211746870273717160158344463264167906317071973712882061167663911851481097033342599524414981001819450957057205985158376067329237956291727454781772684311219849527765199095413134967277660427361529601685092468881611701133576585484599526631176490911972230414227998857479455317663725881866273007768288121515409520583468174164211723138494878598343207177247160227416608128227232623362301395423054777362566327201134013548294028556462438075836691940409284988146898934629759921105463995188552185099331155813552996360291812632340445918854911864674536677591638082186134642538444149627358826863620460194154247362062760851243281797575047908497211535009723295895044100253099703640053269882999711596766866780402956996803411926037848844008144333510216486104796769427499376118179318543386075609480398994604919782275516191876177216997171016291789653407241372007341382020356224788132748740122656350999890084130209192744926667890548996518892345942060763510751591745823218259428608231432079664994619325634095159490333818340027881832387799608039908253110567350676054577070176786605311934025973799366321555805148050174186896884636982868506407715195410091240464015461366415334304513418116008853281506115064765451264337416006018597000201375389211676443990816522100550357583294832585067428844874195130723991742187046406166935095798309399240117598534904239388887010487598194239189194558118645622477930382993727113974107223124379879727692331755118294028510469729314700892855541518280092969045890035999597759620074077542746757706432842857118988444470332357607976759159507764725897534311280871709713773012196769241083435847193479483870322363322959403672333582470620732473859767570540276971642486410091264243703786492225553261367907567700128002935964448779161730552618653309683919703049444795410772081350467528189769015896657335544793875476960323642582232869870233434220479595917045071854323340324413842877022944268180927174969161676731500118283493581400895388570856361695101064339896822335655170467043354478957872520110938182186581598492067015527914336392114004738589228730261859675265844025999031216867089308378384869899603993995574846395404317559630883754421981543667966070526949038240391432235391998548147903424383312270247532693158512983030498909014656652266748779993771408671395752438384520859154528747292457521116479933727580906020431025399510863620503761156631066147547307180610812485056815855800965415160809627765019230881008466385386021922674046960419277628550153912835074757785337115935431865176367986671568366253349008244538929414094890767610727354430321987364371226079914769975631249191578170652811986036611820782532037234973274570096938940674646050574424989255680762532400670813374990103489837055375582074527748516264754802168481296243470459904579732635871493038414427325751803602336518078423479689046526751744010388341520995808604715692995224780480178973029430836378934929224294700500198488706835901424250071583035715241126163992928641278603766016166148695917455099534063162762160820757278123973036430211581753176810061758064779017160607219336709347675672759091848239755779484126525240752920659991998710354408200294499642294806398207770022185413891733374899267907612934248024782001264895286154303751419569193771996808478692991989888039058139725494355319232285747830026398470099450913801320915597243048053493071645854313519306701566277262220148498550206381280614360867139618339966019981932051709970325814007837236424768933609655960976358722034044938362606859275197224844031564524744253640744526861595060709914503566501268757749546489228283507833746401584428596610939681507422678156461743653758858568855425783955352372141365027032597866371709449417933472538570937745037675127423355152605627373589209478569967492850465209167784584912762455470436599867644770140014321165467191764660216538570172995095083866186187949858951127674010450029769700795467484240258847982503454693436220447165575591047455989359981666151191975304885489437217589051403042361266513496585876963686929028924922543718497383400834883256528231609941269097481419697754906983132995967280130356552582711542388125054177840802545057489918804137198531877875265941614646708121946584934646826821646061539820236367804926492570994599896738694694095830248166057140349261282835395151933064745309539548528690581134866880051760778504339294537100023195550435449798667591599954432987632029244813225655365189392958395313016956840863759288961591867869831647006239425786856931484429022283121280939148861225923345331167558330991048476466319834384751130243094834085240874903954353532411594815895238414572290541045894183155849019437427531505872573919529375758334681029435007114868633117174259392268360099461664367223085425069592437242857566294898865040890141273771112919984743052905281211193881193331689171878791815571602970576712847613492561598779292755159088865439022943035503277249040929229411184047274717924146789923196844586478682971405391062379020758790278431442830231537322971860011652161611764193295044604011478621821397059411627558150561350938772169292928901782006802324199432500589642745256338364538024447833984896485722515653152337493720795711239144069199438837773677323527560055943274816933732044187463458566421067485902464364994828689749078357038321437697493321936267127309399432763258457881279639169054352536647284897765906528728205633478533380889810249551337970907696715745608598360992188706094155939707680927281431680904788221888539399165158161829889094936790205144706712271759501205021839300686304906157547393873726716571090978258357844521887007402068315661601511524691826581081976769112468591753780773643516056468304980873312564961250111310028568124171263346721090227230111404093560337561769086723188705777726228847229735419536811262427096446430995187304929176579207620282229739350244622412797400201089948485200846889580889155592957517111442399129527186083124576236377845357813785192255215251587829499656216307062230232083494165495219781585414918798015349843603796544070492421169529088318300346924378612992308596168257403503810281161959974353160365508608946515269195873761935588995674655753118064047747754968488400699055949371194011424246778925433508730161689963822992207485950496049428608370203169541780561380541180721759013414955546416178330472573821239126245413288552100557913421766583169509311494604907543603752627087849030795487801966286798696507957265245985726788223743039083754580824292342207013165272406338160080792233843069783985374519519770778278727621372908838658659105530206406510717783995408556492283421098230070625686986183576467086561399179903797293520825591966131082593228158224599421945026127023188864326598304431334020683440942147295263504688333884655027979460403522414662329846828696033778306251158039737148666537376890027132091130867508771051708272451824469683890220626762850625565689699131415820654818834810319137923311519315156769213917246176952735652183384063589293249719671291988073549755133151803750717226850564493790874081903744450635652875345334898557428749087314705511383044964297273026450780427116755074543109691431298271240927228761565983067826565560853638905618085973740803750900185281197123480450250385164883486570322417169198042913608882421999176314816867837357026256494565295808612904721095294355762006705016447674413467522815387994748870888799500930425415594647967834997224218775813636209752387199271180552688716864033889535330944529719088148192189304775529515479809139664634229149162507981722356671209924710217486861641378006109013176189670892858649630717530391328445459647785731901354569015919813015358441713914622922599810770049597801570052372254608936165716287743836243244859577251782942320009027899547036731808486494063094904778847645493132320873149787028755240453904206955040154872155665364099308504824512361017376169698496691947920416020977753832239022699838900809761975161580742293498485458043736393438802640411021288379575489793088090692106088942981830050924295251237353970966798958892839108962252757988823736706160703074903631314846163000183181851082362383755797087690727493561535945690156722658254884345979907203179485618901902722961347799772092430450497851670949012270394706418644067339622094383863155842869862108939612749211278587066971691573178932933509688518962746082230457804130652609566182170073581020551213864688453135318939892411807526095785038227787331394310435680534082063948534802597934927978419524786807954364298123812691901658686655834368585244311723615965088283917281058871831337908591918217026681804889532818394152517319943310288998073081483427027123571256183904611131008909580953956676060413231688713992471963413668142534617779413589188437680700439255624562464317718254912473880015437123149114297194819222981309024170051131975726874516786512071213188467775218626551204760740127903882786111801178689809555259464846777166247929861731405739668099405679309888096762848177554555237144234400412884639553028732454352925869534183391197872426874832167538647263415318569555757138449673167452082823474788997100910378981114492813783494941552962375848876928838204446214450747460777655394591451397152773911517895622715588652328493317928775057524752763935450170254637277167406226539231456418754412023292995409353110429552196874698756236744311602676637423250933419043033486533625741052687214962581411914590867989215741217914810887094378243190288031644408699045059313142969791873695639627475540670123823589982701224236645100089191369158604986095797813793794107772230462782600965405642824334317312626901858876798222958431464457907404731872887459439872141175442109751636236566481956424618494087996742909745637648616117624235756474767471097439160045003180770046322820250121741037403064967718581620291036984953769334328621354130883164428661369369877133848227756896539742705346570986135031904138601698849610148138297940255560132696410250491504768700911493987792276156471213675213622197130361290200698975017865280352566442912290286459000523893272280312824826549155267091254871283017357706024281976923872459169021218905730924253123478360281669978225636774137492325130079842886256690141405806229346666052563164014799002158182505979196094318828260183559805616861149923625678919667851207839778987611658388283931124792720192451557817689044072491628020299483036755369612658180381620564291246764251708028469696183462176209539682549323007823644798029140283159249562134096185005426421688982189185477371133448134596710535674052270477678013149283567950222214370568768998469518836245213004383929703792754467875126665928662111432324036656492934928233555677267328505196708203215949793868418517465146768268552636127296973790899416545428500477594352962588765734995163509133185006493157905675242031523142179597618163579923981851928094419626182831595881276698189558368469913221462059379068733885551123868464942173192010468186970747004864078875442796442039510954928276560002012988631136186620963217618603433566493366036825423100645004490875187155506164482210560837414465961544806985400846790683712236695463521827007559809406660295767578896435069807296326674336998621476809231812646053644922146487262262986097917143990233535217303521180665447621320660791652899477405986239921754931690400153188725001419855137130964412372780063205288726849545244804465561403880256840147061799352448128036421399770608782321166037568825821954154463038967495290835110560381572408491992401915036739319912303627596890747719286910608564595453110597449497151086580927154480914730102703249432161631409912510068185914382621194509263648106963983403778287157837302245238738678243439685054918362708244686668004828568899196189576106362059144394608946786248004016238072762448621436604726509284673786618505641202425039067835562164759134109247534885068298525975646799816255662553833312503795554279224304136958776092057436182974483759040518242411778045471907845402610793386514933038374262952050641075224449754218700304808255708480844872080469645671850323574274958816663520262340029827848363027182989117089025612305212571339886625481953856313626793751583330463742011985046264792339733170587640706132791264924085067910833549479211113524816401662854635203570312334093475417791556861760011306085989522775898752796469502583297807825489646287121720487564749758799997199944309687416092138621761387531511378529876653856076885030302704004677056253120124546264966817341421214576547568129295691335380621534552875060572332519290527725609735333595737129229970914694022639093853820848353701068945336255954535936957202877549948008133216775556721856282518824514651835200090041734703298484659559727851915702295931067818921917394120817189018000520227052723859928662337805691613849426048150930334785968804042318587095596031765436925074592360004362468048747738088106438470881733871556339489628890479984614722682149037976304720913884435359505021416441351809510108992398310797825517975614835931655828183969981507740068677232207021954768729081989125950866080982980376537108594308986695738836959881670524318273867022722247153167094185276888378481036629775984429475536242107909330567801851241333309392261213512734276083094110132998338594949480209685128202263207482755318405770140077054468029658655906625480273047186743073094602775541393709089376799468357590405953579782848304443506171983484619187903789686392057592338026943191105473981488224369350567595741578981560245308590279233640729872553042484925222763905462643147194275405106530863734439058028230450637815352332085839220763322699090766885714256939989428401424945937881665866942186940641908488063201933857060958588795432795487187137506029735959603845204431239967682028571322351870834040228871133661525033918772000291699417698312160045367476664392476340713028181307827775624015108248505319811883405952469726567291608149089222706387365655612025085324680148963226265353120062778972847917190080120260979658948153134036640065299152326773965657315802236445484065817244031001723818936896708123706124095035517427215944697465151570231956076588504480141629399168132205186597776094641003135896246938806262396676535180760367953721595686734228941754278100044272088309538971993631235005269038038776705980825511675364833285942727407550681472116287247702503213463777911479565228022054409588890458823788927753795160312017251578987023178895829153515117635204924521245154012061089490363392475151809888596260243475494767607369491473499747153369253280075411911130545717325379813594516036354548134911876567873568538982881752582760446792476565981817682688294461366315139773065605723306249637674649957366161208183964291840006529093260603556640569558178066108995607194773106617880947676759256515954282586076155536146338040073587398392295034524313613045775199211131701965037607909240570469015088422009105078212050915777943882663226718953822767439823404678694563120858067346386858746888735152151959160661478198901771831647350128561036984472915521884788508839101783682725108222038381874289052108565457371222860886312061795209351979323999505279427828836759271198515067893344229816584037446652552302859173878935029589630657672799439142273776828661627016686053381985837729560384740990819073863662193078158075488094344398162840643271923883420604753624769856420400634797119153911053920964712114295694866964895831449129878519795462809970915561187562342933447025466109604322894822411342789572419570317196982820032777345957978581506743499066589097615762748917533668015647315277346664279509564289283233033451310872938999619982685445939284610754980593400761769165831463125953604784675655013760213354139656030416240663803150874770580893092267380404474884991326634630336259953951424322062569212901006051474619528922238557205772638013790508186274464736711493714404065628607833947157176717097927557282376426392737813566706686254462759347524274750057372371633495055484088287854449540187962888965032688728718046447515302875593543243216986394331938984660649260399626395658979280550577495682735509429549375576220735103057692022286327196338338365515551465270651141618922499225220748759460355617013043496544851300151446527473157524197010429605978910540398598979187379201385901432268598132000748890305935651446447074982181797736311547804412263986340399399659245155911292788581327513868517472514853389706500114725749705871349100075969409980555209939209374213942767829064464727297688967071958258421082045743177119161783144842368384469105303437937916292671387491385424954714215441441642985313539913450036297393546272202959431740710520451898559938538150689886745123232256943601345655676442509612137252003209111028632809345993943778821192926233460283127914567724543911252623408781586966142230308241061749944525063640038160216374380458855901795039603987998363764707017045009347067893065863691911721469544699018997501038646141124055169933885837542339668196125933372546831583913465973020081699692825992547479180255267325236599731424030088385834596617414183550894801888386786019296572445555278517480532787699540552849857625154097314969908163856786196162523577653604496378178697128388724537021266102224762727394620083233378681832313647379880086685865198604872911901209571424153104276136737455483438127450862936512291249176333312832235587538176153833120379233093127489742560931281813019602572652904161403790795007900356701818963143503796787050991672214011323138702605517181091905152721790495096824264846912356712770556206434606162984879066664703980465284396864577964702945810086483899481436147960086329793098617942365605058706074289614137081035912542028989186402942329507748308514883968135802049085443777255844561761954998222048672895466463622740759186750571761865516523423041608759685848062780437799148853099709224863955685291088094742118062352444288513237100380422914990467940142488148002658695315782883397367580522659503166192105902296654787605244776940400512131849779663380428828746336681483916455444761859790366139909842797521833594937544305472775443582538369958516757880794754593836047106370203751513661276978924724684169737821115568807665370933024993991704861280514253240108892639084356379849443673351175423745865398293686245050442512299410990491456040460299646449973153476699127388955803064713829883648825684420821940399228633328017408396649149376530837138074797851524264592881957971280276743270704235734133303486830264646326925155926598489403829462388920740348198743641726114759715097770882565758178379973699626575774507575601410200108598674130109793804193844112653142947793719857390284633657863385382162941430274374439429666792300611654919330785316215496688664544698599331068559650158971732940669843964906978398451741580636971187583688654833305733006522595765482245001366164725412807064771616760544815936901700696390365800261741606140832018958364363873404260288307709762496863719183818418789566146414255786957369625229544698652056250279772048357532636510974299020108819394920494466009755652557996307927408269858550399513486916427502593229185555854391937032036566244353481537309709486063616623766239881116287444885261270562781213707870087495411594724847338714445512077037556648969022163327432391464328393609829049329630686665545619364914056784273658627503039498762711427026404986980168245251659057877962565510207775406946674067338229247404808203790192379169414160634909028935570051126760214342554832770373582997895109970725783342316216211900519159410587230891548762267132976457528880388794675710161820374721850641962973007809050947586843575618300555784363834618526136689637159615329920171305593331034510816596998707778155022609726301237428669653820830202846411955949136058561826961732903469362766994073616169947436114530199362658131044375393385204573011355166371352259830564553918106343232396339706939670134594886216083465162419845434511466035615189131110198568700416196504203417519206001638923849607010683845506051210041855320211244305925193385509768563982442017234841346798322482187556456846039429772964860872027121079800762559981813855206268479413434446805604584431310454805519972131943738286748552111990994703654211793167006268367113651592804393533723368901578865666205699162976282993076720935742793168273499253192255827081093244138561529317916909044787515397657320125385397496108748856320454658056354909280122691989042729678402312552373653827182494634269529875538781964558852314926587159354278212857310916572320524553999983136098011539203601897639142498021528357393951014776135643015391640200192533879497423745091604943169287966972633933628404408155030584190390743416501058060916822427174588159012391509305895202472587422163593277734908035063258797538583477064355032923651894109597505369536505871688594447368776464818941431341172833587396805545974181965593661197987377059533362777079807148036217896723481940064114199240666204966731048187744335890769111980210258405001586325305144310731714367080212769449117416988061640408724824949348443856955386794330754429391331984468291901802501904027607148408914724557677061112072834472644561382674582788233149243537893393352705120807061583958329820355744369501544872280299842425023514254283556493707059529248141111885048100321318991935720864831867709936412297726706459256355353617453746069606533054261602836611510945325395153213144114570944821364051432142430146228237122879407815367907232808180193047397582956633552927304637593445331750222913278481414070625614127426009423614704321902738812772683528053199442258871646513927546958929610418129568635045092234524916106540577557211230804628137462896297175268939997632836290215702141310137054065547997520754246126642547655979115267196389889453083005240982351516791533816145097151194734466063735948305414670272761438979723082310343041543303931123015781285478280614561279758205726439149126037529920283255213954700249596254756656411295517703505916630113223674229792021362802006411630523282970975794904418113868788101184345737266024828298375785730536588424033638275940968216380204964115174967353661772365602329876078363484007545691715890963735068377498550192514525246251189840236619757092702570486787513863804087171217445255693489832868180431440209627330580072499142770013206647962690807404284958668009385693720626664506836483879072431791767121798667545046239061163764236816453852476160869895051272663058522024442733017983746352244407616674939416787870317047641770672333876230214148280584722864906779873872930923249850875788005351258659989576760446361714183682371959478622002121013286386800912507952485052140787609037914099513453882194716643517996777632136176676571764481032468877833123970242841001951383464783354327100905393980989872265075193352264815204243156710286806201927351063645294095099939349803507147941904328584210592045537910290326632145027790651729649707257450920508888663222871546219526996409393465665981130790384630699634743335669470083757471610001189947500936754828194786888331798836800877282633189378678835131256383087704477604982262585925180414113203535058468223117995820101085372371526993896489304198771735586274069893283106972291132556777179415354313077604310620239365505335937192704082667584162515111017343493767017569150219602386463223945434345876568255286260626615903677544150480953635715019150671635744773373325893565635762014413821646312479298313943171746914167861523514354194597481776290033929496518526107693042967986344759238189127640107110541027862116577618074653204211256312254479153617770951036386551353827539232888571414942931033742038011134516281285052773888071738320894881268367683950125979987892202632469409515216373900809042226542019011143776214904798269916800806511732643537428763813049934998610093490855953549894480416249042826381425560337399026015839619270911155210498042605256789537487121371590249689381188282942633263506835326920149322844731018195932942067879473434866962499760984351677066305636926935212731007903147915433774784276779087196340781346433986441150348070970910906098305635157085073406942827126187510011879776364859851362843604373822675730257522656596206497457504860241693496936791244619722504131359020485729534457400259328809381490921768180845498490233187316216473472550047832980608556328400679287278553770357179965158195629599601955544865456661940702140961707347255896500772441349086988075883186648546977930106090191018559547008328454174279490820535824998910004785107618991039401103099423489538630535798691750162844591700277608471594480253055590533404200337002474962352734638589556824877840267215940675383253739848879448690467677838444774274039840722530603158806735303929683146087039075140496981825367615016143059866467122321100434140446551807022866122751896005491619269508444877169591621613254337801782247148646493987693064499241330489075303619253074311887592424940531061374332638819439821150974814306957233553153360615461499935080164886336613400211356651603871275143632306421736976794515854719726776657715953051121775814083301244149644629182256409191323244125856221932810151441520308184825065213033014363069927192883829535082202420225128697188937030151821936293765054437439374229990570992942070947119450143124689240341975016319270498591846210905029005186864170778950777507451439655552974672599182434139423205102757664752985706460257502914894029180068074534350479159360326113833300469144391422804636005819684873315737225711826618441700302690279954050157738772563473849545915299358975863652017126318094952645365646955109256971914045220201121691939782172835791917666437521686562699450901120158478246536613449611216834157583140538186433752357882280166168151915547265548041649658576626814064507976306411878038076613325212607385896516421082053840865492393984821512711785899767163756614562917538950987030279658483637034036099262206101350690944062201594451496910142803652469680610067906705818045797901620934112628731878487455172186324796756364143933475063698156897350873365987584838796291654339482464693684808734853685286494995933316736589075318207709325185720592726634332436840042281130232438929784396198996969813235054816361922939101771693647846810833377291677691974103642646288501084069518590865872220903636495592111114217689839431713358953592989453702402393890689656393990887650875731920449818254723185891451371954009732564463549085916666282885129426614512520052602682338051263673532945865085089551120510458220166436965438382365418287812493677269498143018149349820956748022822743734190576423151115415571288555139372138139045398648909644401512114083010833478042921388985414856513256153530695739453817075341915340967198592216690668380167190000385758521066078220836539725204703153835458336261888691998189329678534022124860432291474613106836172893808987904174886392751248313085312425290105154036301284960483595645566896686062133267880771146769412162436258493003980351586393425946305591761267952315526238429547821972343117745029715661772485113143819783346545895299226441171463000689944546291754906885845533748094731624245693262557070412508633942643091779408764652264992052661639822741665415492139543873124198446430029783441938409304857170253699989470607165848065539994057782757648804306313677607680734072181959108719522898383592773037815205327573060420868652988018625149550099715911416059494961590395014385246055093110965331777680575775685635689897119610836483057343678902032319564258193608094544869993033146861332055467107976957185293049727834363984028486293623996796830584250356371023333634864667297705320611590900430344808401716263268791827437584881758291766429645403009116223009846024036059804759872728645922923989973017716628216541284977594414036078531173231941655278608142384311838549102901207530399567973311758424717637373506301683749842246170242193302426807587585682415582779886259902083040405559546970732731546175831154086986294818984936748569665596852987667583292053537322868373785848615354999411955904596310231713525243780870060734380773107677422945768256798656307387019323801366808324483848147861941872787420345174115972242664787834759640573247299466719964853858945012432654525647457620636252048381228174813829929612588740701132111855098802695817676797872928142861114975225735520566169609529571958281915946977854223273225172129217983311447513127499445324117308491540762565553842707170892748666939808952729353018454149884217366930662181245292340794348648892942252254341982619463897498646730066499618747785551998200158035348571809088292505278813541758436129039466601336791320559516408457780759583196835075683723222043890125152704646176398408790581735829054092991631146187692989044052571676909841570072149251064340096810130480775909209924275630035861633242310067058624453206324476354184068181405675699244101882441049617978845954870425861006050022552818213355606931719005733283016392705878930594825582674096689681157373917712216349807755371469544595465380101685524968189156088327954566976082526923071853626454685483514831858166215931480960683678752123025452492548317751926449265977747312047629307692245331421447628592485118255184883746024064243644579287302186123761410878735056333038960971942806590043772592840701573225586210497540772124070258785124765119317616509058712948718059718431514955009108678714370963367746798481429785928234042858293038293136217623528486954420721976827813890967679862891369651779840027883608713091227946131852310805888330960143498480973137951491537303377195468281474433327861856197838881268294385040825991717598432700370384270533137362499849903234489302810585866454830246471859877003784039550832257167263295701752423592211582565999331503544108280067477928120593208072918478701259347112329710816245775742409017248536076801097379499018077845707649479742099675103351048176213505651402318291944560308897464600648261185739340932954399328892737660538968307359135845227918676136042730164586105953020481816868494329237863826707212119977212743144632073346725800251878067996370492235774619358115950859827420576034877684250602190754664698577137485817719995303379558021923853184381730849141989667016486570992413070305666819745689873275067496873588692692427893582610498179814779518001904086533417424897016262608054609793903942333803084271843075285953597772198518931306551099767704537649240443397997156372204727615979932002338570212942654874702210127221846640066149480797954046618542420094515077748973062307451862048569569096769226805711514914156771298419107739272284303896454682219232969537962705776794866982215419264296683117154867828285179353252133010165819150477456784763269188475619785057197086756934355847202184308786595766072796326958559266496030247733745528481591304910955362831105294374867113082891112130151340890965826140240135756272223509635997359012566189997045777275085871080672516895268698115798669601821345504270468508672078362424677225000636781238310055887802747760966974101622014727921925230879625617703795939251216558412403548604400972372986375413720745681277388972210187261933849171114406213722642218399423190644425315020949369300233340403719302167966798683284377811842222377841773196251991987508654168201565005139726186504023505855820858951077455597263100143163668333191017547583753328489383078665419031405733093450194485785426615546269514763648571332982593807988093477129086305811223133205325502375047982506591076451674531286577115726275779531368116203513158594443775833044576441499644224147828205838260946301505763634149891993238816670009819836218808996774864800819067739307652315376629717754085739314307911993639522997807758318247110160780995671532377819995937722728313105631999514447681661048207552725275511515307277364226875665923030189059859634099943758339675358138492635590152712696289195548086807684155412700644681122685362927152705582344753930815252279612619858355570924963532146406152780152681839176753249896417123520686570679261520978441665383522212337152332286643155664836921563407830886974463813565774274303124345940280491885997244249752037675274924777613956355292662314969510236949363151347292639229488515652506918203693793682407637844086314900080739841630992569331950143917798829727165242247877269044852989935396091789224766626113232327285028399829662949027702059428536619445288096738553854486610013514865883756617848582595277098646946379391360133355807932050941082284525408079522771948234475882624749677634336318057386111756957665782589025263642996706415831147011065969067120675631687976379754845720172017625310365536362549386828257202019801275445304695029842201904296015784254724132651324128538357166094131187565548403413827524506498300153464160812845016561147454754378581383381602856407894790916504783111140171313421827922740633556749445064044811209496344830898234503711334784026038472203734640644534964807845160796911276848258369356645108300711686647338745248997178284769691963253377642402306083739599430665123699419106857875737849222362242694829652908263161679085481783107967732999125833004006712271413415156548253999055205206975020020562447052156587285574485933485010473389480156563821931272338064484811495519715743185899243844702130807810426596888176957658842238984911044821377619859118128947264688823712340962203453525976721688853585213030939429144224202868130203437210276308444341635342293612459864059560525364362507354843808268764597208125069624200756568385955601026289380800614525264898529135315788079942949985232227736481284323254353293587306192421518965540098362146008362076595673907712601942639745463811036031801549808664188252966668943378394805122451987115550007884912420203991926438442600854698049245533619589736608344042233738483207170479650809481638056511969004247218508298225590482102116792122856952397230393496027594599963122815479145869789892634507724772613768885750255373705430204322815291393797278379365045450897927418064189973026230397511406053829868056967790989070171413200864209288664646907437815705849588791710553615212913516704904693126472369218164214472923516705016649621261886973703450677045919437156508784561177989807288465609217042620334192414269723766086760915464780178481626660251471543478247077694090346879004786801758702883744175333955282072653053944895638550565427420947748958838773984691299054255086047456219319812954384517398879034051597246758341811984821082852371182364867824006061135164797168351966099659611683092700180761670356275970657207526663369904012306574724911543339416371885416066806066896726794137205344950725258913593401743031734239773164300084680417433099003071017669369636137791466256620944212585366912175852996624886927349165274678310212422761498833782889014135554293380936022074006230818139780925551233952612320984311506426730896505499635111108610488277657751332646317550368954169243046900033625041646514303660338901123822265380996575591700596492834419038732056983597044516459091052974635190693947683563350749638664723110011567264858304088775761251125653667866510587371068416984944638829060746692225407817702386158787146464551395193238767198903100924114278178066674035274364337545750596156667791169677497435901442572613075010159258276354573187862586293542612139403989513919093889021910375838796155795060486789564097731515841342511648358723463813710981333022022028448532797643880863940755964502817019510800734222339553306217142713566667044286315482072764155277885053865474328369713069273270355457611349912354066255889759966459085535240764152772509799737991770467736967567884510491112563930087393645181393235786814003035639605093617948237302473338044930174376593514590629162191636970267281319745751348628627665036326772721460940092998975724942978382517297329020445524961787998284210616542391434904188642070928497918257141143900752051489069712257456960831671369961161802456198892922531714705901748298788318570938148811922898079101207879483632958956990061101604555650782077425365845447582246393808909138150378894501132859979101088248333241777675173631627177284127630484800201035284577426116978335094294901026055151058275136487315378508170836830094933242492074123252182245856535999553064766316630338389280442442544098318045014145666536627956172114912738365684811858944908732943235537873515491219841914226393714832038998576277523625430187184374465236572643499140675900063782661718017515673937551542317599136120210527135582111743895813832348921898545186630172013627001042689647960273904926278019196262415433527616495940824923500278878834175131380157066341131819858570394263227712832040006898243601086764564595269435108364425653799283100632517407380252492555648467286744132709921557250071105322213059209659789492246566486023771663474558050961460249900948559666053797582305341812417137896825259822019858128220026185957983410624091100426416912298324308917036795177769435467380030280294338197699789084133983550290399123215223454733373373852502073383129981714627271208119798713903308072234858595736121550025904238504333611933307789776335109301154477091578887508134268684951183073113364616029678436182805753976814322227080784264364311109633887814771460071588978943874024154167779680047868692731910020820322496940805104816586681852688934893992568811389590511278654037186368444266957234090184522744757142931132292229381190025791785270688607813426435032942033894360700145510279236176879664022539699618710279640744854016672596208404353463020484690273478452056112296492929023015033807434470618691254634616212840847160047645605889524101755514878988363070872575869977085500959609923786962729377820945792083177041576878828205920609456363174956969167745939476344613315648613601274352565476095595272980761288696091276838546226064185453085543565976204903969161380378604362753628242605468057928929682788849670963132356560708057406721606968600622357337831026845452249135240067209117697897246036130121966200343441117841329745478088467998878163405061971546575369276685816039570260659934940296425250887321426758769911344951267153005727071352947071956077895781766851411264596697608938718851688845767011472738578590925492309588400477388724178264278092329823959769011008710749944626702094607959544152437592532797570532013256508135528178298688091966748915532270175365388516689276495211123091694708523380747461095413513158459969874975673653916286870873236060236058029006370376999106488512582668410337666345215122068946019764197792130254195072670157989981751354695951321486779016092094156618498528455714521648785518020736792940104827945363583164892383346025296507282074169696847237318113344324897177168276571766059737842025131493164375464904374850888480455490570269174548794633047917793817305497139178450184476179594885391316636021896474210130746129289634551062664770457462120851524075101566657396777410299371506318700184603822462205772868265917438304358115767351246748648590297728811588211071470066664456369236324853305146030909238625353392095983340629937577727967217874179772593361454931433077582092559683538567224709190364271537357424502039524173628984330377430222541061977989200384777982644514392600749327298583042489933212764425242699651792168403983762462529106431304018361485479497622864011409716166617897998924055991854642867629877982030554421396993919957670981379391124701996218563132156319094449271450472475356886662425914077936885713431296698561771720179183494981790296813504798313487981799591188027876224725582260095113507164744504991825802300776654677817227864903707571735300854166044272637472303285212816429654356053189834835749290887220332418825209715958500607247883497698364860311281548093582303355436093336046976559398273478692728955492731236380328855038898635422432830427710572456152384428068749263602382774460387869793342662409066941695591179254992709408347797228084830854562054982672227634065816040561922080953796110449271304525818063798357355387234343300909453788148910248562562330417484674314750707393124598473653073546717452130215070061792570267418835931289759652702247024227304069462301691791737655894773057676366175761520352514476817976224709851223178839028517659974041092652956875524012818627313132474673533277711355225415309366001072073319986647597996564018581662615668085426638639462985730537049529577360940708180894673811498413835357326002818273585551479585619383589441501816814401365116767717410140432843251439092908698903075451556986802220609387367053433214620431987957493824823496503038716585428914178969730312841999592352695809281235698031543430680723018562898649654670241547015480576538765816030071871743980202684707097452993193240863059993073301117003590370376544428504035041165544883953325407913225745616847390731397093636712459233859712870839986961024851556782959584382475723182497319968167033010910970178369538623064216407246288382091246768975753069687211703473365396007568452804253092310573131466703930932006377820307799670214430980644684287541507124389678098108296751872943425122566094898949112170019437228525992350067525358019098534877840469559539295151145497906726200636266044653174505872852673303584136424587417404508833223495826109801992781060069018404039217664826783325808782818601494970037203634385277445331449810771018102989294334974965835123085720737378343539740822793566050419360942528374699871003071936293084550063290154339616854931387074849905160247787389689158116764115724123417101155063651294139889768241367190788823396732516371866773705372939218282881347559471044348715088778213695767629738569210179872515402083683554730925484537912534909485817665966566474942213203336003936316447928949540355803803709328744123483087350322001672759597946345951136393120305126344203340594161143736096561842002837103436937237215472893086193214519851790159616024167241149440554011915385397863260174837533392942304793673964987705957024948329517120876333355029683970211554518724487780892277528448825723379501538928269655673012053353148723854381357358136228364985751248206892672521354284937518150630589641749001219238516130863682603795379646466762828139523903692785296934094754982995614835198691616667217282493152110987908927640498939105435833335903652837785128890807059922192672436942747291571444415588748932580585397545658638648366422976518884686440625248366114450404490396611052228602087839758974402156575313386068480356083824693412094106135797191054941068270874136912943966872986065607898228859656827875579339634583258550302861465474143465057106052494435812945674851238747691485137692895797297085363313261039584578005789745992886808927445292310368894544453060794746383271635442543996323044582746322025665897534503051773934594756221908105281533699216811456719003232666915978442012379621556340400106475671072142328570433792429664908287260813868712452937722054883333501593320037110565229749319973993758924818921116844382106872451647475973167970311263674486570516551913464451414344121519330982629132134703797245863131987592660858891075247118322923429396106408388367713578628274781647559040677979678929762386250353648025983330580002858882519021053573626189817128930513847942732728943527962939946523056208146947101818901138859895793042160422460906119002824958460260279705334363175287821534246629383629627785390118064941979918158211313472625268586204157568745886100639867253142063841781922230468434771903804883321457061449315809822210814936922217238779140509241778349785172371731715979792396726256265600917906495863598009691073226388067644449448286527603769613260059300476072777218181845796416081372124484439699336694942772798957833312989707920427125524132584330873615997306074286668015879076924525650137666895754950131351044084827083904518345735079252264379779055889172337991751328541692719162626933921519037245361934898793194494866668884589158773042767058767232516647432812367317348092213851819861107309217861012398710140162549711658419217230958364353071237956978022897526961580300387281236353639087150649167813652264937165877126703161839024674068929182046097113654869594582020264863134896306856345109038824816205696911795533081870903159757792721334421697430147993871831852766052513492094222733566320878352299880896308107204784807404324419092800614726417739739924809529669450125188647293471124020814827067190674453190373002978981726972913655372123728310830196591045814926580799399164486048021235412027222430490106218236389978167648169506047269315897272830025889046586674610288220456292891329111065365972548561737564309531655397683898042223966577388862779218559098101016739912553402218114919839619774968254296678152686431775934020706883814768517522326609732029042654233543005950354308119013317184986033114933379784770550643343078269152420587620454631034557807827191592827806086036218485399113556909927774756459978983593867206806530448089564012177037010623703851328831225242409830714491778777674217706139144179927081164224751211349310139126276400760003339599365506536063268159911250956997396441332837357770874571910106072931159304631923841663157572712404882126425668188636154246284915996799595171406892058239532721651364106327757388340343385769681914452368272444225178087155789203376411132564607356011271301096001293288300680060022231582613997537524238377494674089108260623760483138100775178150044130216108576493380688630000970703115769933333478704148197327516198140180928284654672544228637237335791459111849062279148122682380404346809475648424330945478661309279566427889613916922675657447425207607041935349028102911362922363440079898506035893989366659776284304301795778569778111504539921690476525296356237774039993372353649753047448108073383959025135357020878457604358550905977466877670778543944563304506861915197617669312142487252803993457691281667979713602230376335480730114660095354640269267092575406228254958667933845612574743958582176127064612321462800313275228622560712889944620639237195542521765113828106032732202698844468688339509192677097791372238804749062637750052096438931391106763946709133197621508626791821454630289549895977136874203983379988307797190418515808205420260130100657118181412076105822379829979537546754952168747158637667290938996322771340612924953150474323075375444502070539208115029741993126682077723128232362466219761293508830105515284003833507468438635814387332535158454543140554143899179547971094842175183916702064738240956163374295998472262688664176304381463487965713378073639356569323021080488695195214112891273884310405910185627836473562856661775910114126971839125178481760841220542289590050784418545458326006911989479963243140229766050391347279682101731844527684147763438763032159151197233722334303774347712319107114895659044761462997221717371713227479319085089675339026658170590427534639785588328077484746582433214982063262804092616979293125904958472229870057067203167904169594648996315586584395624319051481323390463745465538645572756982942162802505504388171139300581138811287026853471820159523290323395370538897748634570644366956749305574187631075583366214877741826561778077269887365156341493356056745946262692299970616363962361164299046393267886260735913265158585422413438440456977947878031297875662198190204330378720315230433576374490635011456751370689919233918852728450710147516089975709601759494417920127127115509480372934743536761629865291923610102960968114386203567030330857064318624488645738191877588088069153269007541533894289495488742102450449540299270931698113050068650282532910777937088665763246553017359508335988739742217399567795559968717796508512225664076102784157067715616515184639396849457037040597218660190762857615979662627442598173216911090370639652934867329083299650947643818490818408889296913609667189893174777236687690884466157407659399737854125735183895582511844572348141997144880252731996252662103667358962089721660884913320820880709027153301917907514224421277288902911819944868198834430596722174927435121841399330435549768209774409650090405971970556432683452961589189322595032574851322434494198714842860140954689365474499311885712243424484490386994879310865107560781725408545176897666476198204141301879991701123075636749218824913953139155827119961509931289775775146200776738828002844042347613231702602251285793621800429089286511989288234981252920242126181869228498803942736398482170542733975427591347022951633811493728519876071246395209046410851761809083961503259397944921786471730761580710693982756653750491349216519121162622831147949659310919514906863675657907773253376654565877567981209004280740313041555906357199085042359852461119163756243407119460105573804086003330119139046018443648387397302187212234553012891668373186865939220983179873335457572686770232397045634488358227751852329931138525755648152832048770691659873484079063766531167455811854988006007560326883607363407530921277527628836598583594682121440981751696927214007801414855637975181083264980473887515236459738888838483818520361145252345903322890519229000357349736734318551466320772687371053269530607460778008891305369313742153236101318515258062700213735961891568243498609166349258546613315803520328698473686103213962854322928727099488596678058742218171042308365909581132051809554645281057947270762395465093608206014019639663481881500659128802725171461584239614632776672167504765409973503723296859563069144155456636303688522191985818402829252812943766909578528631423943688765081558935094105502984647284012199457674263302590492524802797793827713900499182100910149024981126481517893497847387412387123881700745323150960853391972832735574421569440637204896931108720616138195930247679525460336988634445259228345642316525620260111178924278816341268939131411534694324522749781052478852638319307944304831873267729195265998586649162305219243609797535491458675853418509601618427958587203680373258323641910910598403023609438424759336530722098766542191217310450214826256479364969966316916625152180649957312698887697342925613105204841411395811892764550051050293761170153145605578879333651144029794805790748446847917409130072451562899236147963722274848558934790776619046937140320633947516338203915875127767271589888243902821653013645959942417165027828118364482319280534151486594830813222712313985251967519506247017965353214701453528370671449321533647263327825647740612366027212457809270388423539433888202033312992292853100070773952217877315308068903034471724460636387044683710333068573887703068688840958248117992019999855157341313030817715343381719906673803901618949772933103700987491262129206691216207445037552921490253418046448681630433111899052668245780298002221691907948634100151159258002180009446722767762850273902358479704961848669138123500499033415760208944551991654268073148677343111468712745424195867809822793285319606584970653174845363446890474861811219131758191107566232649941507682640902178382732360254356376811527559993772982011932343712350857393154253964117624045898581962702336652089496528493862903149241153866136511608491692169102845869270640282518563236740230188629569561769540945066640937314546200678678019433832251078895179496267002283983454489767937206863337670630557891445187675577078646384804441663361928286098778283189450872484362560343244100201924214049449505446491921656545622117400099950966019652938012917039653769559476893340205021786222572197314110694013089018745676183799917491691068466786513141791411341833489919184278804263611817953733047639188870213336015872737926644640561554513329315338981802582831368116488785113084162012001443008523764605413435944382690104660423271273945340174153546364839067595687326421302291893693395517834198214922034052223859961287213359017904577036752159362293674188103346156780804670380886021077022158556937092270324542523741163858963913844232312196736190107346595371812180357236144003674815146283669971824190125014320229963060620643661945024230054377641585019913529731405179078611780315816797772562723260695444772054651641878840309659444228467839768792927008625509821362537529170275927812405449600437216378801019471463295946338830380002328022858726000166485468868196235472583415371612363335959612824473274507542497541354694041483057950344125633898993344460191278103125068302930953257841512403027062608234517397586008030198944219477577402846411914670250618532542898326137210950366156745643080124268254353958691579202698750517347060380459336208764046222418042806599127175621685598031696233101302684350197270642651493976454133913036214588905804041386152652247177155265904580878707307866131561550011139135291029217691899313308726003606097916590191986916884198982412418930031191962295114261545303172313000301440989896814724097897615833255388930618511377235626754093486505335409576091643588285434705127875189471159272093424628994133972134012789426566398450760453704859302760982773983946771320912743922177692714603700725466029702916728823632473179999876463975835115881416046529186669998840172446761558891882217748033515781334563606374368901627291215347242124444266609473662218538387492577232186675998455389246882913324340759414085365572501364132140811525791211721448029185063971005383012005093013791984500852417453829694603633504866600684886166991896129049518007377221506667010694763555531910023250803721853769141074720241741909510558774119889996955299807832784038568272721941021330126817148084979131852296112527359555037069943887713591862721725719960316660045524803507540749218975438510204604906384815830243019621010064131468508265963763144055494574964167283873695850075876458100813265268148317377050898241146915712004922052821631847941780733641787726343524516696415149415432171333938503825991077591612878873317266013490508609887654980960018441193518759411489396494630105204268435071322422374724624304710801719564084618866354752235855983794248326550240732803967315917541324505674176311888683291082280929912115032763180614272702652335442494076892527832753347520547133950561158285136348659453066863101765963478428708322457803411225339790536775407014361727576754125861994320938751244441162755467208375498516055888229977033091156397274219526595224006898608429647082788875609486726362923727956551490999769987882282053235687993644822780403542933683684912368960736806042660327687304730270664281587767631121770050382249420234885786135360320682116644070099595273089903910526234809901152373205446910137372152962502914314421842097615166048358579805230159105861216955368494693796582270746067804658337151258062037264693409253824678811816552312157367150629868615522403946896807347390066863821176162386195223896981724454037685344860862676486585061968431961386546078101923080049396167614682518489220911341001697089640798287520328864724954972088466172753703495600714314559522935136743094818535254655944956167801854788154662097100212393151148841837300324328026774372826968829402785633196749630908990613241541844776519464944766102066782185470098077170706792773781296332232138004396405312776657542891863791688416250103539611711023507220110980263828109123096851952576438865515612016998573289519933210592610136291437722070694995522381399488286898100240867765620217293146504464266591942887424314725487152940077242532943713424648115261513851078287875598828485296072702808982255312863081466572516504718331836620344024204724684643785998067233803449935741408084499903795953268781821582766846563749184107986704160351323243814868273615395908978784998640936222420094999214460090343055090693777813907049073263186690924730810704412586949455633965593089936361688385183720943248748419137940645953944889518353775725633274541505111617904125003538478766069921571599316311046756354141118089510953042613253065658537731822506039946082126059807094577178394567211184841001800168115884113167682108874553234560663868404182042534355729192824717208348121149095407191420563648096426082708084529765194939141028879201097580070081173833313819165603309240089475102794012807797385048016623820860173206729665861392449632953093730083967268338988074182931701892942620825621862660242265083966522678861151250697374978882316765435265929819746081267415567275472780218856966691170456106088168665701912114122001119416503313719816573280271633272410210879929300046638604877113542460199523676351990605507786647222375001194638192011554201950698039094085986038845392189064361200004252625340284569236633596363851084294303451238157710951243859659735677077798928103511178288002082446757495946916466319275322851363523199394582155693477431354094685250611247802731511129813304237536553945275734988711522397425936145103089833271708461165654070082357537777904147627430533680180174687171961440759656152595435371277977128113918650740931279910270493199937357732586665429509426536899462978457997363539749908351784414869386894661292404734210240381875670425116132189291097803506369744225843037120813161264340227606107960868429167125211802738817578566315014615317159512255060790588739320682638738665146378720035458504389991728183186692801566845258781926661850122448319920445471711128735131782761090781060188079694592199554547527637494323551982854910181575471089250660586149623961988239300091057232216818029547937587088505680676880910012843371029406697443411427852118854774272317162835847253039437098021854395428289684133475409930460661530272879293693114999271545736797417943050349816452415266353315012747071553127583921478322165103489299294160192146086459147099940176890031571762457985703992716085258300158894059112281315755023987020004746511964631093407834945979893271226884747101182578879313446771375457386980145114277815066613430848503145587445451355748806127870134230978967134508002022332815590959719708598136728218655914224737429703843922619196807605461399846674594289339447215695357455447534865161711643307388723815917436710753895701101803110662537201728171612109732493183541298757232702109797302494138682954051901123655205775906368714147595419119389647350726925141114128160873435067054486849159158966263849279092926297645984188434251940293750611283094520524470481447202776591092760841169779294660213489201245785558193316671260868110018879114342901125263936986230110503609718773208097823039576777178871946839574405284905437931197894143545763227494428137197015764368650723914228184296398439161480822728692394856583950451230079377259050006028214858492163480591261579553533080435451558249696869942469061467603311355398470677094483113520253067675534576048256050204531279271820693797920853674176854699605801611877066379556145202572765773517528953354672301280499292137637087279486933901156284027437001790550762817813720048245431457859960185997532624596680765406484295076099934431886035772249149574604241764201966974431067153994547709050519855037057227678242047156011165319792511449986997214979325956849695867857733180434398063298177608327892057357239681345144881447729274333279451707899271594195305934696543811790981795078648023201937681280305080665475196569429613495179420703389005502017268692844264390728901987725810123149370074185060572138178898924809233259960341580135012058902319535744499098453210889187078751720296232415541691491281255889342454311535160584164282510784502369566451693838903647742492134093898282203206431814074360283852221830449454750288859589551660135968474506028520459175852695321781011507128023272954452338995359277875050871706497898390111032241362232722245415982654889827553620417465230581406445371004660231919215640286867871139234895798146756614939027616706237035608543753859219610476249198102939023082911771053998088113256230592044619779303322093495122113295590595457458540752177536571265340817275863152099767471669684401853834966018794669769293374059705941171479219732993510423012977214114240988318518131891369550092288874839908604862993097320792956253342460463449247197058031678568014268955545465449322023901793773839005300783739908174315072011855584298538831410708241581033144990312676292816546418304018794714531346329540777148034548529803032634004066476633259326299935501207428535907602143057865953295045325332108757896068332314013957286688619755753477677766341889609247030938393170469009635517459368494305594173717869551679587402253740216895912409096631567355388453935238586281190359566468757938657451133545355749584289121945747526237024358689450196809492056921782329214082092824544893601824363423026868581448122232994623558435192645730218491181238361626749743320801116685788496452557970201980151350039699069832399353773540113431054259101763642423992191206022707520515884270088983214283671963727148057880829669983780253109684153779925019127909115992071477971737995289437661830267570642565753317699393513132330653035417784051007551546544266536492903455679318455055745921204989571067667120479888001122386511122910239653439147971173488444931091110489719845489379571526788795804559846197232200009025698907638302333919062453850635541754494605453732117766856218987935748206104825509654407790233857234211421005323397034658058396350156369229267909731130467013039363360537396605405867649532212208789607398504115655726172110478002937316012993802715748395160683712404543638488006482876281210600379661450348898448865906453846338715492525143812955029013759901639827756060313041812438558577958309552213230558340515406354909994999940353672075108699823886995151958650049737784953416746755613981641515042169578572588086266608492988031082209519246805378984226145564559699920497228973542657677603385647383749781810811977450216727331283314861194100299245509333547878825770488773175769300087317741985653167684735262100507695378947916387236413638344861304897047139208426074893002849950520506105931273332167093379087204383612837061288654922908854921138005813700992193969829148221341662584622841403090322815692711590117922277873689890526444297530659727512584814380622759167231324652962843435917989354872279043386473574712954989990701446026825655847289294053845379125024832603230578975140886465667967767012185155490863636825685946958673069001914247116362682609633728263423015497581950655638084443531886415487727348317824099850536362030801020838728476630141388842582736617932632278309499265432957728180866911501940991141632292129688530496962535778131890120848212562788064065862745658717514097315566750432182831046622667891907112875389368165078441313300869184242812260773200737076663218292671164139694632850494238101332589526478392006877527439830990124002009475293053442013946188496739555591221085719862581601814914997905905331860909329238608817514523201521158042329177890592801495516020288867409951976740748814632761879919762190429959792717786064171342096430931867074067448770059284487756673502547589566917138389595706941847009211711380691933715154227948950920357391520053359829461960574356578262283642063937526292408150738118201958689923036336698427697517358138954716968971215708692826224165992165771838900156905568367837323293745708423239717331942711694208908546842147833953750970698200631325942320498980702863409042438185044772601169244595916795364471203546047461298335528358250087628616457829255500221405559244694308334783117899254003088509320148300860940798834535461884561737231648422460859559965387298885707673806895717047027864124373197248595869051053835238163861674456444130640421216854304565795122749689428579342550507292157290507457752686981475647378579232410035371529017174734567865166448031186550698521636106487912541788466049700859626983353242803561209697215812471321621853864707262488463328129101864813626034897338951669671792537618829054346898820701882917252560573858583834990763559210388797339751484826376780931736577497106419335442450252765923838895043011536335973016881052630664646321698098791141251697722515418219807430238516022311342145394860863097661841156596281742267849742204132685506488378590082644243206848781178760478761277533557887633994987854651054746452885674096918458992857427931930694118715736985566822963109092709037898352044857372227635419678912066958804490475887722967121059283214600857344930723095456527951116742854243381456320833489100243332558698509841627714072720593724951365636645369580990627480771996985938550923557928917845474056049219454267482594027007863783396258037413427398792962672953583124305871450085551118937351866381895579327311437713482703393416801860650788285168065848407024900372138571290624533555605716461564967182560160150042193248652420358601521249643564223429712727543704930201786416727268891827100808205415475198429346046218524761579907235391735520589443182345633008213311579123930542335693545183518435403946442491870034905569310880131748923814507364537006115394065499714045890735041968149723908177139431533768885122394734463080696795219442273467468488004667298292950119933507003405871204665579941652041650151968694825990894940333044402867456896796787762494215780695861529663869423685135171678788572752615166815026564311106816513958401898993317695849885597408258923016485108124167171548310843169829180257690538615938695286380362588031121524783274605272139413262181231662445134375944814402577438771872707596324617254179345104750628553455014577423541561399888955301178168827672320194525390625148358787123235346331184202438039690283773084911036957684882857735484804550732422283528345880211494163381270717037112846080554349644312740762255328231816794055178709725917674839948487985575654111032588665312966113751842290042978510281286017967869689148997502627123775749081901392380358118153975011896655202550792842875311559236022181315837454398091021258964369100216293637254952287444105166116855571440753308280246166935739253005163437077573253355181321154618707669685459138709864342649738638594600460609269632046027091099172606221455372259546142939289712800993807688518489116705085532331806891100882264994817723555591060702533133391425805098075387606008314836800391918952529810835626859625568684647745515489603035299596854686116526834246950203518978964667657599746056081190274823140346860205609544951553462610685796073483169021508357488399893467504401948370432943905608612508569108552141536709285958263087715035104965644873122427153533418431487594344777505399809510767130464676184887423852256478027520522618176759363105685194647153573283371637534074932183559388873414940584558955513803384431116292816579963812172474801609315054117992249498971788369110850625170475254625983739669860389872753911196669132848361679517646793437392416781488758995955012298954963589510838539189182163297715173360258595828245352829557968035648376761256908417971352773937924380837039044179436020135576200711334517362172464448901784892223593019862327496196036854326320527045951012387343062486944912962709281597120874055361204982717474301333404696593086117336160711461421746656711779548277942606699788167057485656293712084581432268707779480873433077197400572120541113228214510447479833077925791447853730151266374038062166115290951686158544242055878631961048291004858161184281296410714314126362273247717162954263972232996703796347873104463736072823236043159974519099673420183726369217411949238967388036530694453124593362080921441225254521264203966147047483790471285935270596623569661340721515117751992858516321162942332026816536787248824440045997151589083185069090163778780390032399106689385863784283214124302097074015664788235314464619208041873964743463923581141592116849300240124351596145253873897467526668046710650644708128113411020654156409890633479437869438172944617444428778757475984020705303573462262074610247455338078637971022178030129793700404302099783219754048572052227311302940752813122718833924776169439793419168227490821434259113339684729181250917878576276741206263925496434498756257110867178774284435095417791556857552724240583725663776448778466842442281833439490032742983454974597806467275739330548728341203069884369641833724215680439596290817484651526512935139977865061468006994572883016832566290459715359669933948378377086602138282922961439325860444420283551140862807806417398815584632731003512389822557150046540090315879229829180990636698122011392439761325967771892403117904445252407752106653914800479845481281833817506160624076748389066996986558311943404352622834606502624890434352779887113178325351106488267783164893318273555776359505854936310640418791135344905416762450841822800703019561991411901342272542170719169565925528610447839267354538890172655113917720301187146758853780589702194055391310027654692864801266656828345184365956025325149274545098066542020062611052340523934190523535392152626329421254787577350059620532073399588668389501005458052098868795062186550438105950639297226084525707721309155911745588219639210618242079363736026602452664831770387965070008041160346457759164873051352351266446680338203456460563614283591150726320342673834819396678245250539773845765519304889873421817138786442511838372841707618126990926701203376149652997379498616682464129355603553154095135769723619891260980539272333168732974891402748951108624670524432991567632218329258065354521488634797370158302757957732744542365209491948186325916955469838526892223176408631652072019511831604957271558601386002863308796370969173036449642138956153201521015881773662342487311568285989666898469763319145656653173729156314415542367215881138854326819142008028451792346858632153015079860601368534411258617710273392436907233220287397389095776395379299200094957161852427108194734762105347827149425439059708405224591757280003023796265404440579979843456265705955106368652411829139834206618086283843920445367154877076092903782779406125633127476187400326517724542335865757601621681465344623888862316508954061203390760389779476623991980531593179885312534926742936779924272726715038059845689674433914371214625603121542854219435608826746319670462413986011021292649344905089487402542849090986942608021304715573297157336639540334346108960819073536666380374054455475517019455419170361675724739439709702839108691940909188370440745313368756577480611748025466036376150714695646630163979355675475073410318137821590719985952736870066811736989286633555507022853677233468768461419772208442186535565032100566529328440394035756459535948770670991114543864093125380605458837480764054959485361988300491020562459896504782866733252159544835839346408913102353305134260390780286786119900592888029993746688811421913535999114131107472085971611722524941289390721455110928629595550961121546036015367376283312270926137961296981966422287351644426838157930553741094997938275292133953587619594640985463863044209149510772731234358797851022983006890074381583382714648895467546878362365395495069778873697826694344578105070844172857592546320427771635932121939422635617731069854667725980784776172470856022776412061444524119993658555211289019791225712391050837332786490320727276960924309260919275403988409055146994600016486915186384654640986060901727980806664424082948402281138548356769098770898731162084238100393145402702587368004625505205359610038034695068326539466051456719259822231564501706556536900005634252867275058078616137554741915965966905813815482536755728819493960065635867707721170685780348864541000916370591685939919005930837558800684756844008497493542051041987766202828608697470784320654281808487815534947207633520868967586692608819897176490970604879974635041987839042248760858765300654136911968333146857158840873665941587046957873364812709553880408311396697801013221506317856178077049163976078025205822379222211428577637437463614861657695744698918376350078121349862864986550297091216350355753370000095810503826083214689795779863186111073350354854835152866515647606638382331720324435362341258184519054132332198734099205081253853182140546040067259860638262588497790000262634061895713604133417400682171546330833360720318943909577889610637668876865411482416744766203828448327351805247883003817026368080568626937538937498786512260582198037020626440589414917143529902489305591107007516482285128291101053014545544179467559460076987000616198697885132766911446048417599344138617033956476216530738260415987042138164836731487177362690546710075306622795836145753773434064284408991739690890781441090596072136433509350549663263140786874757432550180989918641526829450581344588784228796652331172157817234638102612820426416534947586706697966410329428700007270060797002294047506398215337412011366010657659083468626033892471946226054433613241700410762221245547737936127353600523474196854659485158153607058689810502224803446617520975552151343597087388935086251533408204021834175620485266316963007332533967710335194911033798687010761532467453526788191624778039330172235706607009405324112965677385285355777358616585791278756459857977045236262819504111042322025226002532660254814454275091246247034727651255985871643342272077279211087586861610084350666094301656718973998969567829603791312359843283690535447814469170597389593903824087818388101762553792127745111347977038885667415319734874041136556606793686503908972306307248177700733140593720333885443444013756355039833405972967625583725511747742660690722941589795513449594771015404260673997638535902800973875966055031079341788732857214171123974273421293321058616453784537366409685628588541174704600398773227540060105169527573787762268524923645486560569432441165652537528491088974664094549144705526749065891635717656749440279172333801972879004908841805138976517535683827435649975171215270567458900145778174082199512573202087006324541900701626492290653965873730752941345944663313192568078447341627925864175081975113120000437242262460084208395165102076523117804858982102936696785853469385165123787365481403464877654412808447986799202379844594032902060141218324074618503023905772378273980763660786178399805734970399931235942139705656468771652213576200115787218380092788332002376588422243427368599251370306212112678564441678692767183669316697745331605152740876543905746688268731805703032219464555296126396801195809142163000447221493837203904489862059254437216318104753402216207461183176861211838383053383027128475890820701216661967718842795651889174125024499825483089241019757244595367274815351693543674993728762973288332188749103603460661467149285353845227673983808982215411877786062665505436599967355508239244595238341569455302801230493012710438725592542139439555902500465100428185514777459398175675309616398847759013975222577173828197333498601851879472265799804045279909032433174846039982411305925173379279096107150377333166707633464110436602533078623683014887141249461293181382137497137125526777250985753806613869204752043225718492803031209880094311531708124455813459049756749503226987539387300345071642304400313934494736432748447671929109662526032374404640361945911036692613802674160067185883686962816642577127283045458877308146846505495415611418811839196577204951134193651338835226812383664250108611349799284764275675408579007816933644451628825480517902967292382105593524761557882387613847037212716338163778596792633690704406909785100929331859602673822007619096872722598721275197294800252340391812433020245202817530785337757915338037381350097735956976521614028854050954366992140663113162592117138193869553128993036739421391161059650726912661259089298268112358883132090630235183586466751913514846959785180388609017344268290775330367743405544704624736965572263954048591869325920567521055409464274846243896299751514426998841996355976020961894512350693151201751652666629582785993163228315081787054344385724112500742460520944340360588161109988795696742494428214313751771938444669652813452621970883631321438657324638861441522860764011446637920920554701867960573286243829423960341075604793478330571355932204129257750294581960543298440904137293253716057017894520779656098031736097419770643000409182745998085316388055613036586664339149590793981191556620371475466915008006954693612344107036354151503813462136228089830166940921250990294172832746191618161142403006396517417434382276318674170044424252678082855513591512196453009319658108055291463818869185501551431023409500031826927298853237362398578540733934285932636805355372026996385122419316561527284740912209406179141211331401423659299043999331118456452390521405237105527558710906863046795273785479392468778794163355871787254839260172706694364511006526013138362762817856382659551762618106006230309034766064633025350635393679677194234580733438039508965165414583795331553169666032197939153259820009308485183790736700479632111877349744410873791070281383404445664323657225604768293653188734322525508700257820266379815592570671236491677230443374628847425057953287267291687644799625375587933992282997412696303761846938906203900625813998575635068742854604557814604486640360910758837539747006840476004682143106710231286553297656581235318292132270793741437965639901056097427005771477425179192085457673372958178932415575304206287758718898279393788534209719073635008796815570205423348563368336811269431374446341609768303534393123949929871421331415010778783349798384610466291757278524031859086563284936307466391620309804796258324253790014989510125159234973836620926171321877592060309013198936349458012101586395855857816319505870702583713806224520078109292410217911699321560337757154802913251679709865732147235104134259505634806612075698724668634416692293402554364440809949006988314432616931193141513662969997508952306569295097924554733844276038646103958352920119176343609463576390806522671553995330462515111963251132820157315296752083985827169677437638421274930296990770297460472945144111604863156484775670094367336656292650103410001441260805642124397607516286534636042994881150845725103949977079789751043263113197910869022219544546993927310667824651647942576432799352846379114641368227921679819464033032556553714192880781170067053823232400651894342905632087521659396628901967499944316734965803222788193405518721967602078438912111756286412191797031784756279690215878126111389962093208588234999396292442291681886692862350867863284541701347494032574619375686333699021028556514331417065368644147620847635315611260129094478409393391284428249362939613075847733735758565399262073772991291052331798376889691195546055456558911477840584679396851605542787261235049999655821364952355816405137033679586848235455722357891192433608861030536763859003207642770989359268443488971535405917597177651249224518467175100249022117315268075232876449893698567343676766525171469045245420836729785299294856132922446627083494416119902439853395758478412657259762311730248679038943143687935409028765310224166226530117237165481432913579379430168010392286956053677704641620368625876809912532037102018606363199065010627485868268052302724979622770727971790997527200497785584687560564879229583054399929684377041998538777516888169846100271509374769754733061117229773005598251266791330952078046352157738369858963651431754454704182033476688798962170815109531043944616298413733310462800407454709493157695099776590600391943287371582592370367727562207454817361565716865627409759312559097174329560585756712260530789798792972068495012507925638313471114060708668257750125622975498908097104613320801979007958333344235635911196969818404724222529696929936975915457304664969202231073141435797405336734812317566736231894340538553533537670123753823258197416089340377730717028128981035614975951822692769716802095789312505287153841550801636000617643137157550240908702603759564555783223992183961589546650902976217217456449402758716046677445908255429838562312273954238900593900010599696651336222060707762486487561981948025269694210260104887258775347794884371477571204665445091131770292314831427416605634431778395669308298411940211566576868200248071951632008160551093179381834768161239696971008237628003054908645145753857544164996251425985863878219927896322535575757460051336862930880688917495286355238228081738692106079399948371904262189797371945834180996543111095853117777818172989181025027496456126728060923012328890278799401599835813948101768887370801125988506985918610474970108356267077444805210137000682602838852546064378413449274808973912547692671203222397775348722599403123968370435064389596798981342300213564721702963127919909623137245913519956264167090925219821497259807098821921863965920004688730606189299647478921348246020366939934123257049353751845859138839495385756508523746846782926232631057579328542977327772691685078249226093603234197149517496444453404739050334402145549337738208480450088440519434498678670361893763022425806013152562182751181682288144588743877033862067650642557793450509353236559571723680623185430924353859454906648600765467176524376443507602727790975024773305464029947347163831955980770403004237806574106900966399867871493298830757050726084057426116970904098750319026029397503955388596181406184646539204921669695081062496063848481695584012328448030727444039367993781196305100180468194164257982157503665624274927138503199553289338441387196972771157133030834371437613846193330614239044897208924062447599818997492979302857411513899237075318540485874623949880979268123541804822339730598763666752071508031150517274894153043211143892030597002365606402239225709814852288153047174221861731495131811009188594635473498165867346218562851445827550897563756187034913345389604450819343946975244885197318968127730041677396040084804674310628016231223134716268461830382150918684306368738640814793193988097176549078789564730386350680474091812201001360808662643035301044190823621636327674745157819510360657872266584606986723597548838826633944838162783226427898361719422211408011553532520162850985265943791687608556261310424319198204390795063666369536389816038506401267162304172310801461708708450928375942692897575565203785433896573923735833965598091186791352599065430048700064962382667078189917617429654194990570632224137000269138590528734187939626642967037254804086536045028258677373246376611277143745061636486411079526926407952136379961475531033214267786063137387237007890103461610538460966175117390449699682805851849329002994317059481823800146922246818027078597172069956701229115930325773848683170552401119965142782846635546925859384713134243780349727683910685718021080945649315745667149275017375940635917851647794883979737341828388916695623548804216899125209172105625376847169733495890977899967566180105025195329293655416415474421116977288375412637372578847371274838089425750812328712167830302113834806316078241146700529649367609997311181302488727442474895640578371623641656067498226934026008427296427095297642209453802222703037165551698258701925368669428896504548978522375033345896897648907883006776566362536712400886203038022959252046079143716675180469692066823098571537931684409904867887477662373326857075830980118650340101386634718744967388584551422772551457779843410840917337906668398190471429930632422368408070406635905190936042963099060944568783449529195638326179826665970921883226881099247847280315221478683934354255773128687655350409998322383588056163406087224719069012782841532592024012106149695289540106489468210703107848183643587765231740634421364480614858914473257402043683136060353040109953138991245051155358900979508302616493233838586195140874896129918744398068792984038987667022921642032601332313967327347383626428195784815362667490391544497451514561591467710578928836218188527064121667480931645890034538033664988726575680572863194675581682255598719158273115343226767164293071629737683453158488048583555519774535554978786411950862900227710916702089444181662024050855635895178759220364923577972745264465971847638725241982585124332880754444273753981543900898998318041547626477545015140535434757815570818564670835177776420312316475085178273888282646278144900448769628177976227836393187980683847183171133557093259265080161624278526164405027360258453524815630273222120658039000125753336805788435008914303193703345076100831629842023901569380193115256218577726763440213996591656141051790958558803617674386663077396878210181536175815835628084126021342583390579499241365499400047294066624345062488655657776532232937890264878080222711523877578273092414045485086250754651883159309487361125770154422349206620619319225995241135153254476632713976138191252250585860032402070689476084229830375492374508359259571723468299926097988682151962175224151845995913148793040415311179317391128849092139720775040508322129281439144173667289618293999749424915370256762160555233176282668757645785545521471082164905568724219895707668650426280215616317956174569229272941934783316266053860064046245181550493674591534279362897397816686186721004776362551523469180331349220760625267502002539434025841067197078296001347305777506197343816469618365752740991535628074671790028049309041920022487793825134080856603359759461470389053506947889166109292707454321015528105428705349232123415986777155473003648566578306222254885709360120982730224165324748781006906650283354566501573317653757435680712483819618287367092273580560540610413105724239660877187694373503678042086937868732141311066033831493750430276832312548392097787830124181535983327941689124365287349979590170856802264600543031622644010940961225822480122942751289083702517283628089489997747412443259113104121904945746488001113347103737103708134403519946864059285466041869892537659575938790595852662558691663442732427911613591400282797102755166513291882432392366393675463345864048581149829854158764530231132348678000027534448050305098123563866836896921210710302653601269404254526965518188687082149967920868068502222395406065076119516615203166070825863482114735675778759388987182893315445268484161687989549081431606130966354718858794062083064321031422660063325910267120333962941096092499752849864183656698995584771664288355737266914478449169983014782431563822032786150535152878034785013353159603339280788001384777125621009183035788746375121595625925369193127773026236720015966920895119706679600349908792177580620488900480132550088090322772541219077033840035228192415967013906910173210612021024274480404815788273258380761290425836596480746078782109484428903254630726040148694752441593256500724628519951691685610967971147977123184485807088878922595919686552286135049455335717825701283504284648478258375761649099253645891537329958457307757193551768888104404178006397058189195211640578862873850178341544679496627801033835374496538378862293633519502890112529590128882775419038744099770288892196209838460844942745770516441760671524935856733531307989641402678698595361120915603863601427050799128553991814049031017541737666801625986692532992248280097682693605365117890892538381902211998858110933131181718835391906358112365653044061530621389954968387064741549106783833777239810058080518137893908022550272129653317530014907634938105170707897947421784408583204909523324383491773693873897744571445631835152927108911659920195307925970192080793736251812830792674759469946963385977459827220974974592319743398376331348298222387846925922316018392028876162586130297824512694067531346569836027850741002713919844351879890098998260476121390410780966742854746668311733591732090700385488092089897511010461908699350573459973660744913221782436812405497747384308115647598324330995408527913375676789133545390619442900895281337503117010274725597290040409249413246888516530547237215330060411818910591732582308927179762104053981016586355273080679927791633861840837279585256924344499139086427079865268854376518220039990955688854937966265339540751081350124840512429884259101348929161089716391537534838611457413679015616248563049006003145965316456003866561760924035635194383546418190640201992947119063818274150112767010195908340123827290479486631986102476339902962359681394631830153688173898298642606749259197713062041143748493617612452695564325567569668213426992250705697198398014241417938658213205160678604530900622735066850712946936148275000419394541541215464784482483995317892011670588952567624628090728576611873119876931509861747285221336030084704241997838697022266811822511276665795595550150843926789339955126586398622409428443085513900104116925171715607958197910790013865340300732316283270988017429815661122823570150956188577188070997885792647569512605628015944314775682075369576475899003896698899782110816660634487312208954356967725639147745693410194981171456340589417082521419529866506097281807641782276889844565514134391397716533483905335173288503141327476053046352171451463205164743026671935356488542647880290848696403905167376781856757709391045759728109586948346466252096898727092048792939711843246500813226484804466946287569599706308271339650244921420708098041080657184541128266087314974313133993818230638056518916940140235365153040798479981815823961396583320928030564641519186763383268198219651878260450161350571200238011417048591300328980013991235004525324721230615260038538120608533164475999748802993532478033930154446651441348284265405060102067285313686694106807745142214638362464149920551725533443758785271570725507417524703047621250778439319392479125569766746754913751627319920847295866858788744120802254467191069182367116625261963682140075495238632749921754262837681558778479299643165072772430320574277843874182259088541559013206361660021966703854281452736825705270900901144390912613879317577065246835555421016574249106232788688459703094050047475890915823320886386683906012752860374891660907519471114672299153999843585963946298854284375888381154211088175926561307243063678132121649409086083421173593962074794652610189681543457775794998872939116173772168678435726743855977930139157504571042930216697922143194888589779353312217021901444804166838970222011238510579734866040340025478481324116482352481971428610242614833465684192769070915651887848226359603831507715769381948970301181585048475977540866673203542211231099549476327921812350118526406254135973541524076595095129895295580919064829554718254566926501811075325426399107841215054322509648569914892971460828651461773682203665239319792057998024514714683634770167690745366147322348471673849657855935362841242368189504599383471444194947229274340698024181383126191606345065078184154608163953489037923168179285899341487673428944843398575237274263577058377711529858776098876686597410244270781285553158571234044082442556727699938064940641519872847455670479364040473559093428353776776073459422062579459652407474250122687842482838388556003131676211756557577842991566778577241108181433544269632382060876894541574207094814393691366739773100467917056077235131876808124835786944154669064935681777105952617361616889937485400776446168654920883184071541184655522452019049529653195743488220988547094609535719619236181776206849083978488778203441242908427563243612184730383621010034144468821712773739518005525941421067925975203668334997618873477848348010752341991230295476766134159254479175797677861352775895605912447658184731920131956271033200577296039666272832105491761761856190739900455306494183353145707924477432195439265847836163268079448526566670855103556097100608046210356031742723562322812852709237629486110076162751981885190103467937648502004086154177875635791141358084510563753386436405305879855932620672238252009088321562791611748370883391938405739416920241432062651330945932238418819803757948495511124409327177520165247654433335490513720927226805994598571801930593165594677334106829008137552974941161667291242185075053248107149803782236874942879710974774860714359843244809861216803987652566604861158562024793245807669013706624671594763418138799169012406072392607439284776038879106325480339297557519566901994596638021298797772849070529706501657587163861243180271179544673465206962539372531066811955498446760511527634406451309190956602777281128854611649786864877777814864820551556956814299777145488778410458315255647513733685607139751737592347325742472541930503695333537309959612571756984682169959998087780186550703361365480340500215444481330817091422385997592994657647356073131957283500780098046424820718746868408368948137421496783608843323745160942658165150569592493801618864220949475501136086153034694088767177036306361001259954597452843503665791486204859432482884145449824038984567146335517470302354986786200553789362954602198614712004840986261168445531040623295226191996687405810054547753842351056582632487192326401173550163142816423632288938344248016596608541360288123420308430306256075439765962251930413976040936430476949179823781436466408060960649207978859084315924487049321934253652112204600968172869986081562987180360078507971239917922717762503851197194716120716600956221687064791532136453961915966712478706696898246044252276480950154517189049499231893917272338338900551438892734419434212298292989234664642410964810240191338402571409945187215823414180209991062600051515025843371224847058480162558286950606370249473717600213613062451818434420568376176314774279556573065387101407359997625510371464583038183369804558084226430859270933670488557806134225696594725090693673445864063024978118869157059266186824732330814089400526021075584542122719846391338124548061968568188753063143737476691532416606252361473269492148714384193033293674349753976099102850842566626374261963359794694280415296177653759267800031492904423162834661095633628534911918574857326927525874708970734071073260693930098434161507188221109823136712942956723639442684265496335833324270952419181021626578473085649333838714739806107537927146594294571486146862550984197070693577327919620509600976439002038744032476810912351144057252133399116781926739735023732049433544581630841778618705373913811489827270762521039561340706947904636512687466252534204956182580454136080000490407995089318663403444165848011915368677994195937600760984701667089868439430405171354859795592055762721967537262808983523303204050800676217276711413278370699577610215747916067678275794054682999725712863936958674506408523733056539309353132860255689731099805729247333741796955973091633509764708608777089516088488954750618335729912491044476261898215063381162797176393281871741514894528214788017158306862345877623558244070857827854341034260967540536853060433447179243165913823754933431891564158199424604017348267744290757426997945041907253420680879630321482073064570648708319494750066945822469499060579337087923760974717542591727745825828575284707308283881941647445621664814476956673043852190896853245790646486874950176158163905629894103720654246419155391735514240390760066287790102981483093420298344417963566720228416735805213859334279604532171466773051718000608010663718323228490019324559753546371493613959272034391864409188361746574586203882235779503868131382420627188855556302625260868142410120413929388616506388565274812158783738115017854049222128486331368223709983505375605345749881293370175820910236204409467426032525630703319347385840669626274998567047456003991987523450890219504222772899590518137934097846324315010884748675685318712830082459768270249526437685510590689466282703967379421512012468352572699433047475538484310254255305285116295769025357378599978348334841184360908475191195068089198170499026254000370318847555811937548079436042032705939047585341213278756601549646145725133013442509747551232779590944911741391627772649923299406658486738448141854908790691473097459058678044766445403052613145785820513203016329778539393847519260149435454864555095516592689476027081327683068958372516366224332536610400424071235611398859981300538187365029563762118492320921730213828641891666523804764839927756578264790222381591876843850400372798736520465742788736742175336322049580377263534121008742594265567058222099370331518096540834879374015264540458538426060667035533815038592110161114784872913994727612401184094459589989352893770906247570287984105457719476129975140383868654856531823348261327014355594256262261142799019619501356236568339553543822828743460875805857207158905507337628322557110153097966064985340670294730950935206654829854315768687823810625926736261022230166563002237056466416297740630480466327626206035601502210426725215288310403129316059175329552755538360390166201563078145904590306142440376399602947832982629696005660131394687579304861307188284259173579078957624374213318971562286821820482155833465765079171105074000900283237873119217697221713810642408304315664619764783558155733340790426007055817700702755105438239968909977923494400646391793994286074819998938986405382010732783953087421737685863457110413959294860008539511403712489043540015583824764129483527751375327356055173143116427776788063026258715281679153298877311731492790713085086852107057536887162396920280016370115838811799460901367692457882663062340434901857146482949944426920984844895745737680309795951203015542152301001977257059440601933035054807098266090745748247194598421430176139371354062040542019158253780929558538287982604803404758381055495960666895962989411019605980236408085630885334418720985430651891653346691628928975600899829019165873657660938938955185848493198076483832000841491689025997292531310370354996977021174438710991373250879630533489973668968014578215853833773258738238200047932984453021299958248998801803746796185555919776948178461435461653705081573356521120399278485088102005244412934020687251460644475174067687653523870010567500108808427533808445463339800408353302921856276509981060556722451844119071211157774861741973984126461494765395709206334967287764785609774897222463526429630306845538486183373879869529783338720911429342775674580882135419572526890390321247952353928883638693921363265301532734164645361157971355927386878494763380589970917613080317197651064096549963137575737716745016075209016452412972571087256247495060527273408313030590876910290203284651375528575434552122497885738353404914153207722962481930874865776522547953205904151429074734203513146013424305014579292385812455554193365770014074195155530356703187734626061153100706457968253404872636294618413822695052382780791242770910636082325371385437867298322538208022175639278318997301431153468667256068196587395668550022512832828518953124210703158596234456190960681033917704374479217996113172105478525914230520938589256461940562461728287433712426709038295972433104610129036912070079770875607511735340708002379750206185589235555119217147819222673768684993338858757369135173197773907317110184031875586658967754945175449119584790953535467989296531727655469406201289571472294986612166668626582110861569832312014431497085514534615505447572086972154236354849086442493760666355507988180583869920582093087936311008166162795486935311057695366580371524328693963627943079913421952898615641496989173787695211016687017644039022533057832261635829677413253161745944327301367057413794172015476077101726836275030371598381123018162666321964991148123807588859092274385269800227659459842858385948901019556796722383353031801392082342188454513386770098969428687474115047177563154531312251625893199853076443453034781557084769469168178734702269364079537936653201958484255475342629265159020841443506833556866023825908625173111515421649767547086510184798923670088194937520996293476239463211870822606483751075962574648568343580763808146529086487634005133844251954521176957511116899853559831245063779765441183054667193713410860620248418146460551728995500405820096540561181380860627275534672032868691840719283994910782255234892580298859136743002736049057013300908034618346839346215937300866248822730391550968368841053840863840355332222841935039068321045248193413483506987247193021548608451140167175741012223588048311562191793528082131977598171809076335291504656107221607075734885930248066660867458028028684061573791392996204544228351691132800778547274545009231680635063025811465419532397743330600987587157792053418968153855177478525519390640597643172805152948343621517884595042546454019724154717162422645369982968371764616858444404975312001891309090608686212055784535373508848073537905463902974663188558056068549945776521069219748537678875159789002099008286239828858877343337767569741137086861424482387130908527748850190895246069220530683638380051414453090082818074209107557588248262994476543448930920172878609305635257030438238355445958482604372277853715991202454633313995655373328573466831690431740355427233464676365573720153110760315964940837649789424554393977624964522776225274982682595480699586353454199870830418885512666983634857094497613646281977313966248372752684397392624707609652326642452324253777299700417962503482114783859074005231212066210743782615045803563993781505400759116857466339502194153839056283580465452633380329761300490284304470670699633701161853720734038980046002323988682311603359459620726001914401620695380607333892185831664098678858219785917883170373041246462058379272846042434383727022352322198535289755594006774327329096625444213672696566884039719283184149531646341076069084338324244077926886201693284533173787707209432509404286092892493999002710001276136161142799487760671222450827581798783547563149382892908586635837468998562080142209354328803631062092446903105665364695025081094638024380814403934943059983248159701233103516329032510067837396587936956627872616168334689468703438873173127082957678762344589429700278536467462668190894736030667314216981795070596166005045703378448532614269318915073247494764808817508074659487144374879125874364816004484713351847987610968711248561973115190203005190250572929203383979090836885681210324627470099943932691007087216758251051944984545157238872535769171067215670565130298136482200085723640662769065412175457357790948733759898825028777627287914775016417020680211704937470527236392471195592028037624814183735075203256119306809247257782749415390122963761372081680095813815103472199920015752581634779551951758896831861547717128191632130499042614449622189729779672080041676669450528573163979146452962195385242150898084733105015387227651953207645109369946281861808320526902963090616033569143057016349868156203798336038526568598408637109692728160693065085646073673027473481168004384517671955344970707961693253232089861547882363078839176293550388950550809796051272319687538941642408447364163970726266167735225542526277393081382326863638501547488229074410903737195377434562026934425293293522210584947239867170375810698031599618035467632675878755135528448966211670962516587922519058855616388607326318933514873995666939847803477928559896208257143536949509641021501733586349223980925002180956060510675211594918560932546783849386957521728398978158948767234892692028455861652423484221431566836512743067497321156391111249371788431792930651304656013800126387975307015575209065941374024591541622249805161750024235942863150356054390242853790639224186599534699647039550279058663686789200383405635972661194850834251525229928996861406986361385963434446048243845924174758369048343274687957894112502761656054523751831067400494665159524560706920938718535901310277464637719400125735232473570039503866975984567204040152860743802509961182649077725492220268533957001119293041528244093306243064728204963662220891669494114142780155341555542896009226984780437314344204413800986966544679777285609903339182067835703576757875131798176323217119994294107025637457250216452116217213982810840207448623456694175157736314440289093090650081375910685274789339915949175927347093680310613909426532824958823409922911058739363292691833114945704586729951030191852639423831611435225151425374542661565483131750392306440884402375891521518713220618261394802556833374283410064661102895077718442325803432212155289758637233252332344902178506893996072465479898257121804859407221968610733629288702508487460486054150728306955075737908347590698364940582901070679149019579854671533111187859656521325527852313812602481581131015366891015151582100284129725115492235184363945288558392496472968919061458302831382135374953278207448862747044750838080283560913299314595769564149299875911102573731468722991286708646718544887981591031645713416156107593698112385082002430442857398048775065145427340650798554188089408196529327006569069336947137119783193543861289942337025463666355902676735458569053168848064029232914653303172644470436137662788554876381854826779834750684759306749253080111879492196936310856028897358385350346557181138125654014352108349939468325100090457027032874109694301731984186996752554188037022287837018618397249437594063843310821632357825923044154910527843068113437769363358923441713959144021244844502651656970573573299615251111836398957889476028303090872469780573870328579220882980033426164966261208958566621307852461130988189218825517573567256342357429028189261345148235505582262196781615216064469993917467859840571054445757463804032951274557203138540025632744609865925807926722569526162712484924170425640125531936732617759183006248846620171165472964334366273371986630334592776378098887533214250157522891379166440801759341885620269475510357124766837493412592456017888006408976976855021820595658986303811677725697836932229179942769480374455100151195835538395182224783428975128903095715227615390680111456802086223124088313985961848776542275955457830654807546903254736938124491821284933134905897419020975320484235170652350046057032396554846746474806297402351062162457126311039750266559861876434357606620444999715954551376620125868362932525912432589488749728215924633026176626638691775700765373552773203247452890529522211359902739134860683987043285336045913225282439044260046796144095013460927452629536714100973169939254721258834730644014285439082735527191165986002583812759335002528342291668111141569886327159232564023391421505399692696643669312829146452193741510567697471019935037355272380618901142508914113981910053273906246576473420325347366870187584277670492193789335604214883286344179201419544105131934496270482737840861760475219486187438820167379272183646489341738237390689531606795464717399237687588532373985207017384200961311677654323352949199491805779649770223768675190060414657690047016756344952973488691984104461747413148111546883431905305263365881783019114248228489872469710692069843795496528893042714050237179944947534198171618856915301640294924645980653618532672369951133960374806783493094456996632089888709008049773227140241045688121272146135133570474227225844365360701965584075377855578458660804379017417158761297164921062978882962889839014438494316611743391862874233969921409105095593448461866062439342141710168244816529963772426245166819854599094720185015211238202107921101236072343483430806989991596221311017405149480638484989272464219056529489088138465987651071652656237618559132818432775317178253197592614474616291886338952037106971465276561488904257694792453032271474427280701224411470809956453081242864516468123851675484809378218987448888943591713543362805024503212447134344284207389433149585473659756130174409790521018218223797244250167700764662847847425314544302382432588786646976060106159943061581047280228897505223141556381359751531054431786215315194699680858881306878236408224719446442961262167364312430808633542789831564613599477064751065594049644643222236309766288422620630352933092086977992005815777953650641089175807088130944331477110461521164397714047321783926509199696449491063037225741944112780976927209532737469279598042234003211662109530672833275642108016881442325016044978595532931197382586085060571673657801398859274017136389045468022955029285132915519074772193033468657423075642084924211321216542699974207393145166441796463492704869438170923081846638533797671099495370024506022521492247043548685475695680638277028258849741351224699098243123784898387014237806703870038720253935187350783419406442454513157341018810913028354584008520971970688671253467209936781525206427565563334426780324984983231937642632247566722260871290390943129204005163736476703633436883435740408857253732333121372528844059894797141481886741245363176338291265803614698317843679267152620990746737947209148672598001857858961311502438742332590949121183598700591462220078282327478932431754128692788113365275678629937087100530249764998689807131834846634646197955942222269255349842826837240768073740699112772250365513944821661795713990780915568704023161780835612420137075456578678646646415773115488318778978420594611040819032841095776530403106712131851886703613113706459018679529072636697078740647120594073871990328389172594886627600919443576377007308164729987992633918038508585314998523963402491157638308008610852801620935769480557932537055617691027407050806322961682901790133604859311546794824786446170064131937852868504592888131166457860702941808871884914532663732724519445685303123699245405233804447877910051147937051052170555060990007029638528269497461470280305465969012907961884000048048991209691318620850883115885978138846760501428696992772574738087513431047611283605142208975519449839624273482666808131049195621799327309477289913943073801651638063944059102988939081799767904514650518015801106704803849255271117792328950749449612238757888077072177926729937146507189863540366104387143934606195586382740518700316369095360704132565615321199813097310013437316155753943699076658645308233883933269208641803819578127425605126803606136021478857363919039203760203379702957055871975116833178849330849522721854738127419381462512261353907936760307134543069490751037260646415369030585906666982110353919027607588877395804784007028097874320145624366018444767898497311167352373030378244179929739930893801279573637606145705659353615375441146348149268494730218045174096228818977868059900921208823564299390264262492961111445214966101984266424398558828005470950441653376531943041672279344587518451814756214564108620740926689567222240726400652703690065112819251322188903464726236994836516393590907628225716862493279231534223101821511325961007327519085548280956858368415868489128989219730074001328179135261473712064395739468505672269144989827579350208376580885069925644760617312764630695106085895213876642781585589933602529045270678943434033109131884025194691980203751423855593767653856256247824655762114943229710113927932733391913551470126151046732574977321045110503580779375586579170499713190778552733345549349994727531811431153695740364115396634527025636813319577518017722807854899097147119631850660279895782046964971694239453007399185027295855598578570471691466924137730791587075515675519866376573918337320314118171115215061213576308179979103755902156973934048713084921742836778181311889519978608046605396476423675170888790249071173849881797476905839386644106351279799861196834891904770522742342672885557887990243797668039445751015946420081539731460253288968117434808828546878429279432432676384406009123498155738383500589955046424028548843415549149061371258717142157013643551444670469312142907886741276041630771536788659176003626923757564121929230910525464514211144125363129484937520129071274614970303522925504468397504613711712287815488042503310708768215935622201289648257976168592865930090102456507460400890145396530926140267092335188512965747781362043860551017186326809402941563743344089301842885608651478024368980179129538987775055032535708352992521628832707193592503432849960154762279789476750813907497333906923562601461430982855445803839719018771915875540537732509861018825748177072700196642927816737635475912213635538332243751633049810663922966453761730098053604359842521807379806803967669069646348327922448910390781279770277054813647888882549069221763996539467579247658167812376664368561474823968866879697362102513932189113808392505310027014095997448662520382713882779297066305146256430920683685775536972230166330609464457800557279910238898252719482741257707985297564169808540845743337223567137826872997007726638694697534367627554801697630844063325353122554820180944979867592255675581814999836200977310253915400459218828828736643175625570155329107008100569958630745711036156959069648423281470390408843584979411966039203121724361932529518390643558592666219575991210242786486682303579044378266423824304252244577503178209017745515344091835102518866931351605927638892301962489205536220654440210158495243860096992685322765571272217743848112282012919644113925604886872670897967854635945297850936275685107127632735172614505102916354960443442733618276640272811154550777547901334908216307726688589726879019331801642547483492364366480660104822358845765090060750893433345700409355461007623555792678668185369230187175675165246906226009201492317093408429399638375437608649416010880221001949808630071055095611367788656058254564224146682057475818405839248975584773848377679328548610795134836411450248517731583925307313100196077481743740370392307090016676337628507705232981339704944307031897798846778714197830920960458846535740283977575407578523512759272570820232217697649942680771724956958015597294250522770023814816254170923342191636325171572896144136744248071732068891252900410966982574276127796266914195679017407941450382214962947735469388123762527725918660966545353011427962079620831908128153094399854410856254133800940270141897283903098893130770300144566007402742527255905949898156447801304078585608122241538214936944222082215077167517932513797360641660505861574768986951099661586605679637034926333981751170885360228838066905607066077590839068519086215666914711300357765725901068445099344215287148646487801802282828465197857674992511969594968430168678677925441971220802455673025859054206071452772050001447045898820476113246455112287853404182052205222323706236506334061197811420050377379157373491541694135724865515383716011506669809339043662751916042841399352401165820648026633697989373534057652932494617819854574506833449124757489151672770952185515876735834213181425843600645275893537515446832185254316142802105400127489294278802576028480319405336141059024255819847668120991403315589529270950313781809387644369602114859786926212148747755140742554922686815243679897634575698398136936254283048302271878308260554301354183592066920031976575834157495876212821817736991851558988391803060128937301793997081144224130445992023614759238181516960302352066030606430588023874261022587823535144361242587007400351370723904452554861785978201319173445083562016513759318583984684223225650349887610687456225896268525097479821935525237221767806801157156958913778179231445967952025166257619646208401334588130597653996880446192070362539173208062139991234858788826459907022714992497976843098100725229965109176537627154426840087025025060708314971395234833148155279315552239634714156230456083565714869413718107277251365116237859807259071443763991160761133470435055522464220047890494496288079386719264069856285079050099687961957645349754147158820968774659682040860720780201864327279723437272851124668417774969719062072339681381300411898301286320818431689695152296445596594323701487532003078129557191854834697037996054982305171053611584839604127431326189611432784461764694070496300401993264743470308252458343879688955835654392666060916444353561134265679742349999929429261296257797630861411186904658093616969806028953817180803417344950850380528548697939959226646878642673631999326515588609535573509356268591130730874730299902144553110277641376394025011640655771563103712227296403554644255217277995055610988154861942415274577594740021350147423388752992359101792420750161981005300188447128053554327413067907134412431890742246761868694629962728204786683853822187864161322849162874106971185409999254259320599285447796212966729638964772001253004319989427379761397832151443398093948950391120507861448772341202784947504421682580832195655293917500682142699261906261641219463823806750546714165424344003301568906472907464667334684384220725507391039021550077403083817195748708658736858700110099160832620220099765025115564931972785086020102025432106218896388268422500006145345612745601061867294536817478461534884519008870626624710411265530288036256246661563128260415895892501057366516803241764203942188339913306470914947393145100842142392662855051531902813640210054701068140072684065701501304713181914867086910419284202437812513158397119114941919441940880752995602844946019462194333238314800053728141977696737193181465560365494999784879877445697755888650724458254366281165343823961870126446682254994844147381499584073819391091806761539042136800831997780235784527260780967294110607575788238184919381579100333390803253491025099627171933508660123832562552871288506547288395281450756697104430243884320407233538337574217650491732213340512322074527212984924657125812819614407152057330214088237698468764474834256745559824772058258883956181491955782107828853120617036038013515310604696773481017694956539210629906409829325840426752680173913809044193538363600508705676774907365453564255108886030795465820163718751932573227750135721322991365724751612790938944992950544175182281904408282227537794016223834995199432263826824683382538794539837244244921104339587944859010667129007170262858018341926753110681140958431061766227975746337277931598166065185396388694689262316515324018416992339551290794000286437599339190400362559485570499240330109277976200816715892824256490306456518660579475505772104863131919956255950849501957232889894568366693425288250774792172519361193088666821654122206659441642950913684381795811779066630395016587105489533956933357625601464270011827411476013000771616165768985041230879113645962819615809802902195639974703061966265368928406531022232401030430284196509328425347843450481817986189798649407069156470618306992989008045247330895527840133182185931698397082094072590481047761795046210195636745503479271566723267623761793233382464201765184912994964208889091356454158367839968957660678553116236801425355554370920062103011009998891934199191317205874855199400381910042268503156510931586385055829598216577566305234709931071268938159722322693786232046052525190473823863475358864028776351607503573342261962133506457200138192986759560218732065273162001000183809348118443586012008592407984096234514193337902388938822397854824710828560350540528116134079631481777166868268438455975359665056097011644638115932169022058244414956469051835725449220807442451504522375742151443998328941147094934973174239190433935924561626431549104512044345017400178017046971385767152897510080092589784590654332580498785562547855139006589976203338191107415516243960735224354321556620854432950245733539637085030421044733339493381931934817556823262436684169872168004468440847016865725765424470715628490002184304845096282040816756323189601630760116597914119434341603342697721674019455744771759181801379485350360323799014437384327476370855660359822540535424822990132280192001364157306463309711789017359710394856221242491027684318002288416482911300688528712932814226837950285134235898456253504736003556298531396354363353263347449949185186208649544000267860550782491896785491945978633918085174974298209034284206904849589956316963754013875333785069319040340808137318875671943160963970809124192005696790696201913706223258655665597254825115553576222158124793899051383321078645804921421642835923158069935369558310915430491401336078718442576147996631138275824905804722033315215807636843192220604771067322408889531691292921797680775004601105057198781101152354288193584312831681672339016371152919304401908110493857084265697992343860535839615500494180426215064032856708073330026504511669256371523065152033352741853472357329709058054413417661926988448559002681265835061592739489767656479750967770280014049684118563069070407648185609742335166253829004609371764936816195511057055835170865766120824553234124668449396040785645574147284494416573592529292124100088298811234559488930375796537007875483369523361457477155074643404509150099168742582047438836292061897632446905556565988487722211720060026877068579757904232295342801881151402758239551884675934193515650124013799935618919851354962118805731257076439446583750738807160631090496084247380006156860270313686593958310936429726891197536601181990106424759761645865447670476040810232131256407594637469236358978546698666766532681526036921423558230144922269199197563912854102315708049347631549263202203912084882502200121907591119210796288277616405239959414778984944626533456505961045830421747864959863819408305429807880384404781912037069607359149920264670506742665597504395901730417592735183041621150866529042909178762665531586065419325306404746913708102848668309473607545983335031938132293530938486680837441461353708891736097794173154063660445776522655332489056467070131501789519580950786614744789223310972386218497340878038053128871984767885517109285974612285371967669245494273205192914067783045042894583428383045040220209105040557756230790042775119672407926812395322348320907479534622156703830763502971695101599010196923431876882921822831847053801499032374965267263346091931937804215745504784057263388103037371315032700289896163081303103671161712024547146783164779938929525020116806516237035416492553866855587580678016092916788826751628005293656089896189966960957705101619703917329758267934864188903862111051871182564498888441497977111163382199500725640387049451758712397116866252336830070923481047793306196587656132525924909076187224702484222421990648087535252470054426818271104738355924819205643248445043351336623073701213779624530108784124764872066250611370483785002564419504440566714821274170343562434387221145207772066170692716306939490975671349048136313910359888008013183441248211403075049681438023420358035352599273862901232234795205862518790742377119628432706401247748117343734353417645988643565156643560818129005110746760033232262071625446023782160734054870047768310952157944287401801548562085311257739814602834956429730987010422622444452070127080107181703739114659627841906200031561109745386326070564855482329475540012460784555464772915421040569380281065315581326409280353625746911641575181681191092077370399517598499424016668572130060860827960640187872997460114759002687164972979786064971770092960623804253745421408681388380480247947924495070957200731883919639463009712611148778000503788647006778622646121302480687305331017463851306864211996191042575329253294453318604362607823749382921621552633034126668060959778339600387306909425220315803099072485632042510529168126794559364059995463217597655387862753848609830150982431334569308213510840100654437752577460440844635982785849885537685115179104550417683247260816673731595265312237388446858460314708537342704932959566807548420438773407011503989830107943354765808069825175365210228666146012987828577689686639729002706569909713849925538322134424599320962806219012383763841583273371142011775057618811955979542851855058856573071172052364368920080821252499006526728227190104637843981157650072826412985012463572135892639737363489654275947619200188292279622356124647240215234797201913436755852592024872636370562077477931063474429231943631827210727166359160872245248463586570787314314626256776828329519194860785953462330698298347136781420790697611160550018792795574760082984094906603350714181820578125609880287405331099625813141531114163799742808705257572463433540916362498201843183774700144019114877007394880493345846880089707293754714339397544672236733526630037313912088902706004548964762086490005959714057749888604227556628883767569767586130100055162973520211785692720066987931246972488235272024439983527938213345004450813560665258623420591685606523527301988783179619829442123156587262689085593103103864217088970989915311054505686468550475156293586396068317956320933464769370038502337763741836165896780809675564069037662923703828347701236390535641061448470788953239795815395128015566976536903436857486637777305297307542649487849133415624947759791119458716543524060726320191924426381619628536457472635153549647320102521167288295149279937403882899641764482272559402540714646031958906507390527540564644684020509517534992091492612569539531463729823079971035017109666453009403285000616311073017027611605785782897479384239106581171899078712915757631762175201778330274511594069182224408541960534562031626653161818302911457596807436737534807535887936966568672496213613515057113364386644030541347536735719430723920522919414916552262672796396063066760317829095920314979674726223183598470621642252393462784344850693073442163470923236218591764789170092938909021902524416486519421900238059709651368068227406841727166791982041209510697952967412694560134615364539642162105668064562436663825244632841672885291525953308743393847208075664070449148848722621995225238373744362921013712219326538068022028915940393211096747157232731291139133153961819810371392779302121025481209469027201131422342926052561324067569419512757068090088362940269780449448721186488473710057964184880273460534847424092173986109542593881312089343419918122783908735606754158096271870275311974652445003504908358536404387060668475360904580703539401682047005663743577723441287358234610178597324167076746390387485080118398512020061688790309421676430108433924908151722802722497912216338353622435749917896771986368685208815170740660958732601249249312263762185055628069562919372828065064328057741202788969102797604197307907146976111162785789782350803823128087163128916620574491787222182891360602059379702946711988675834048638654688302360822599200980745833100618038435097811899050789012286774124671714915651289694805726223883611333563053810678969603757430692566284266706867463718702832582281980011556234135728955889294613848172215446294818224358387873409655911994821031137425384310972324840493423372880496434855487195898588095095218798749535744247680138135604865119192100427511312919599461344519889034479968848453854829306333384100879267344634770870984893463997024586073590269008095178427955798316070511774071969717022534246818991141885812426018521172931351251044248998971744218508839711069533737245705040872548368572460115478608678428672602507628153147375242130283238764308478069384033586563763515358405871023037412123738201124371083938429768835573721066644314664275126808020472607656566762684975727358785341093079878616566313622563578496430741323267403021047098490493703721505254955643945803766850747635850655348691407150428604708973599371426246132880237936420554638859411565176544474886839236046447238575014352591488817336295863471029557634426788371842047222199438590905350768709100059400990576723099755752694978150576229667112292080909613497386017051668107249274633668558763874930066581077436568045978344320179452979820052502516065412623516212412983068281193420709917590729747470313812478808208339893818784586790033481795992021486601136868783339944695949611639613223499500448961011336606693444377563579384737585075729286318413731963305414510033695335483379394713325752050106614744206481710278514881002087161594105357677365334246173294965168119424380488498891231383262397653389858827007820802998753438082472224796199494822264571404015657458562341795666494572982580825850255495307835956370066911578092063245797041634507983002234135431092016516411617675774905397232182078057689285940036153955068518117369337019604685310226055254182145388558949783031675890134266857573442855948725658415568857237295047285855251804516645164345679257316031548044145820866965417564512794356975711464700692805598745048208005785300724050821016790255210393527305663471507438496274468752738812518222642444156057526031544316348841074089576395584186904425932086291550669777332111965249288891784334830336278379309759598958646990656991294745348773269936729834435466298651486765325711105509782159898379941322922647205489529765916225113176107799409537126399341724609958573886327875582873142146429158018129035911497333824434007323889018950730798224947992449780594578609935992353457939373291319879425388586686201477589118261914975852330214413105974880051510231859201383257790246215626953653076958050260379886313073788403125163714128837645809970435993596796569537973473164798104537413866348827772461711350291876531469387432614637701924593028756224082015723894187662741212699963380532153931214077247541471733288194592181510627460371979407298148600664940073524602474856455264845167658579706479926616190783701428806757583119828860166090307400970191496787936737094586910097992265129545099219719429685786638143624848104354885175812800889457602900613924513866079838267620325934941283693097673365855593941725954240623046421679255936816504411490951740958478738769952131152828597889577981299232158237566177893950362241622039459363254818920092661031270494558355389315603103761302978969099853793148856341921954120637623617095943944820650280017951353191216727000669266327170787514459689691362583914158492423729408569421998161491919342335310949861328331586563786442551236497696451463771832342777985962160070304398021413786665729298612580190788094214008071482717455655016254069905483468376677595760839464975070536122761722560596382897229908675396620079797568491284017996426656063155886480953985292520265461778380400895202622560902613210443844139565195295726193919379890881345170093989526843410974078310416315181006762247492676568862730833844478281499939014759371687250145310364629823611451584198735389971718925189432652660450516876393819930058854791527163465933381136117551647731174658671944942687517667801886334080652150938724910398881914073075245591903155340025478875769772952193989245829305193709110655825731495354796627999942174786298396802730415224762626800970403663527544413418981615536735799758699378844817706912103535783537682085703415590803865847356830465100087756332664683393056202324419666797967346496820758348484586856897555648399918720162194655033764851833289296966311340155781095822502836286149558723726366321997977166635427307571130047714659026109436426039969807996214079503658710173895845443769113385128577095361087079558774074995533284503123762717427499972246151329333803910384144940493554314246392002487954220672596079925816613124745580358036704872897762521387607787746818990367648869366457944403155110078875904353955556621875784159293692136602445956515239792601642531566247626075055316098229514070101269959866172964369257879087507846819553969698965827836868479201124019177247251020313751687700860955393889021515299781519781741409372968081660473701223270504122885831160126635687731588592310317077619380364531807442352418891666246584975225458794223019504624843778359783257813793247351086388913660070264619625070226931281985962175618014530438770838406711183680361054670787084631351535713156627952495915090907123740422394589335090148850857133392935142824382989568585572043246358625906528134647821563113780354389339174027737423661125342549968261448428884060040450515348017165591061475869723232834807239004437197470891702159037655668358173089894744671118667287745686206540764855679508861474345868391800756215267457019244142230296951998244094455186506455657039008893755465631238598665452422253235131579412777792771140946772958746312478475562313512384897191043863490945972494755771068218443161936257792324776956483982533962400085497705786052384227123103707475523735327520863649498384742666529959942014367581709864609185796826145090062057312433930816231505879535476803893399700498502493676417991445938449587160386900503777263088155401049145921200070021018820612526722140987431857462638483972637572703655098526986451367463179503196310075629215945978621708249622732204846306964379937624084543307157196332572101812216409982291193402950405328054399860670958390113144516900474296746484296942270245175128297617443758421024872711745757217480862892458605631308147394093955406557711256231532279393710057845019398088636308047472142850728028946127306132450913926887330287595875449899332296936617784677354292084884615907129320995876927103821395150855941300154085016985075018607166754597078370154144887935410649934109153627962782406519700624299659999085474471830159292670636049911776723121403466208915951596768589349762444194152481595748088864290193926711952748272711847715806737996071913546455772002547076936717953678370053268785447047191274848923028226868009293197992032783158454478255790649275389257047675638726048795572461630506265420160594118845945610339489431271590873819511201295673816355075168489154591809996310335478799405258073749347559370477777248360589472759846862237731227097709967268432772654012113365673286835895400103175874170705185072190684849565149770793484513080039516648755220460900112756176214258359025659248512842543109712702280524752665515847379751109208196256642002756954088841563358787585105094392238492320640382703225434450393506626160994709489978115237123866295930440843590990442615722762023527044515745327820436748316141079572847426980348886385218270330138199113713745020226363460632238795594593821351585271315537481052297061165289763651302193348957090113156866553445574190502354832684272703800789453729034688213829588325688657790885665593672334378668733489979327870890387665551286173088405639470275442827832620623793055795729682467154956402070211697717093721170878314719871927063344355503252248045572055716196676993043743356258775053801146476089480662003009908371469666923544471817724042095316153081633298355700826459510723368470477081217332828912877055010425194223278015754498943799657611938012161791471391511612199769915025823503359195675672283658208660307913210776076282052975303696763313973015012563295926741200174069185416656429035247681586264782712422254975524374065193425329823609252230200244948858037998303810659386670074259379538870430808210848537695444998436941949743420406119061850926844977654829943676046556848524850824225975740400732954925175570848099560476293826316615856384417296409705399982716446237956881095967165646599823143884080543216676114793914954106363245942805757606394149426841313883475067456000224181188731776225329171284419894641693703100349459928504268388192736962317891871182525909029616894501368921702746660170140058426953240827010520412550372541594305131813469539379395358111583989657961440058719283935267987849191024868279375169180161722072743865888755634685958912767240811009762999163970690408155256031365343780257168696920994026995170420064407408369105117137063471057875943551159219842950977655426594621696995363058604162923471777602017979559093413339053328568022750887760086361836199265785563264333388450324056737134306601719642200559626111208998560350553473704425411812700804513115674465865509519118152742243050745903357370907156299607135598846798047150829589118687384027311809951234146452823598491109474944201846771239128280377825049651932117617528373996741431341043798502930850696421860566950191920801583310866095395900727222466578685153817015784552686986209092161311867443829880222716010682635521854110046962025049322112233527611870923182216423360319219728833538797984869919524720669040726296600189518768135628050410868441876257308979673092289684727172778513296626974411399127332687765833744571798643115181736087102322121686511724702128916702789058905347894013209581630382471156709322925954833158571119945511668876146532392894920956884933694467935391284992799053682563147457909728393885390634159652974049712618435119895087211494248825830635657938694128992126628362330595754025345212962255828306467873796306632440141637826533434546177084998240165376869400317947567013498704568597136543206948110788292393242102787626572188690396594433192184785361095812699634124738915931247919706372592708680414664701538467474432969002452339779531466213815181909703587412676088454346164461967729323944920392994308853882365611940252653498147149276611807733974069055060710709653480173762563983008621509273077306182760248569988741275355606253799095049504395784749121928423062252435089042665199408816183492279415349968891703573649434100555430116803115668332228870182128900787574200394816761911750689381123250333683142781052689454014056043335398100338316559628465117607245530927073705824680566927417770560139738824466158818142349974696672233851245415294770182120475884737429928285650116859518709546751700277774237521571930505200922644673739276473712230064797501069850430334438846449005402485972992386908773482108841548073504525707332230897639655357568497624601088299350310346365844796975310507442692071006380017798121675213157409077341198533152394914314288756605933516709194110224251773555216322534876453811772805397864294796641893477972320919736283264975339267151873538886851180909051848814877432090464866773470114697931321328400806938187460165673007456362671698279229796773541744575229708528719147584663085072968569494064132193777826876248667077267976618576193672248107770817320744856275952157672621758556704461850361353898769186775787044114886390339156214390384947365373724339085547024082177826259057622606866268859165580671339662015371437276071084964275490302586562281883538601452615002814949458199087289053735500915383849511327834307526090810223671516446575769147470668587251878764784531996030677311375521433308204952573113862515270969092153678740603482973544249626020314627797694142637681895741047419481540001887682961043028143914318994967762488822547579217681697036658865011855630387378615239664258666675525952448184422240621085214735198687987857775461903740635212480993257664551527547573113773089412538263716007593954331589101577335121914680001218680833682030495982251801114192465991084742672606525018257868416241674125017873760030603925615861566911035970783511039124364730945054343369688705194170940817448173989820987195764700310525969058134688941588748520038406658365018932362055738215608676220921893386510349273327571503989950733370787773264421214482419953241917482388144959865397920384157576571477833617161924329607302642071371244979415749042067985754125312846465963550580048648986503019736126402558878702037552403021017835416289642059875013078429887824703814483685775397475784458409263900995316536819375657644444550737031632902825320550230789050161804918909868591940625938032812611639791719313573885506718797176758793015876853305789589707065775889444410405128418734225074486301249006295076063619638956027696863736107524680312864228290551175669005677369363669818886053561297219830713210503920488036343141715602237611370150234364081970575511741042913825677891511028037043510073401395138999799538888601295987782638753647163438656279823289621006559644788268354901025008773015687254222579286535037149187163501505118301750575827266238068620651119581012963680072340190975342249152602175317487935687825788833069452426454666279603660836455915402945743210068282453293164050275650418083377836632781456096918519330185724979997148255820222338353789055383002815237770657367435463366114517107042895818851753565460995382521791519136665740080378443983455500136875681440866014951820353930555450028828215578124665379246613064150945574199019944939037510607858254405128289930110833228386629936070921471882922078513081055743356103556566183855162713096295109115102888444707805998569744828533434449685629756742792454554674021770342308607998126710023350380199462261623507562436368969141311750754418312914110531725550261604893072263795363230655531346770783770864443064448437828451338538106645843651573988454955414548453584648300576096834233900167894222638265957570352703654537469951979806605960528867236814475893940102507898714614973469730971527979219131253955071057399294336684521346461541881876241918656172162720567276619450872600752119334562668336155923886567628954937067314387257757199924625273835525727876285345976124733458250677680237666081923903324683245085761894154360074656782694744013315549292455777554872245236746180623282244457048862192601055525073186499712906558004159898784699465326188549855435795991662524061138161899940950347660324201351763499744387330639252979886316338506743935837726443840044725027060233785266070594359915106870500723911777838186223051562598115383859933250047269168152343179929990641680783719794223520089875328296589087664214980702594506022632102594866697285807757531762946283509761544173840085063826455879630349618491183457790169413985383428161056763118827899775393710979829799400134249437308889308340753309351304381546634993515769086340415581109465428814879115102798268099309773457350523515732255560220857084402935853637225641827103906636832450157205577021807552206397427157546961658765310712804866797980825942220721750190588796338453698521307192645470838418869014844921609014264167998718914918138936890720992140220266996819076663761731151071418493127189325541333656649823268245975107540890385687609205093173240946624236361964844154925285860489742419225512767263011392473214524319356137917828147452899031232926288194249468010329181903628673719589459883158584508328345490144461592923914547674948558344491983332159083270243355445419356893188045437809587780513830677933977094091782520774464835393853371392049409941944749094418355973631655377781266889368421228887080274142238259112755813850648718675231417768091782291847229208422862473323655376346291058299045685596988710703386059384248083103255702779117193221553460387189700939554468057859146192187767770680544135355740488568447020319516302578690559514982400070587003381377187419601153107023046870186941893191283207509748475551492732340480233018949039967248709740098109368812392226608425871077660642234896162462683451507061037788309368157465843569591553953768853090627797814189691360911702536292549896378950708409441581142971677368581004391379004294858297712369041774808896602851512039635229368598206875554632314984094733570224656938663892581735244624756101033775739314970855477555202310988776071107207580038253851180608285916015485442247617992739059774432943245835838651126300577437264724153334735743933560161949999508587275605017456273252435160580456336124079493070047843780349561510967649280315583356720706320673495678739758983157147304867868848253181156227169037496070134467087266996116896961738048475368997351023719814135174825528639630469868335869061166965780549170551071155128933428819316023276464973330718149010615436970157586102834411729380721726580375016589958516294745846959157661058333801453435765319482543220065576739799943754402582547989481466643877883029809425320452254449493435777080915768166753872401399632474216995438006081293330061322626006336808515202934068044763059879983259845430634077609484266423931121475433200511885711225027866040679985051448066045778863839113360365239608139029327246696574166308511502883260839710888777344795154388772619976596722064164229301159814869401689478133754456270350757703010254225943586809620015997292083654392017184595947088423507393473895907525376808662386392691699347713872327252797797117096921714448418781055265061656765011136614907091545240799402782952187308524087472365598076017361792600652731860065908492446437537222009977282771822088613478781726945848082547200011165915722360867168418666636972853540262189923624938664301188949655868282268420110133547110167028107178715091841646587372718719941618025061731537196124214190404497560816300666599255688341863192518388717345318024736375556953497063944902010465297624566320626894774833611897629852389762831753421983359073081630497330316229434197633091958440942096606881990907455204936859756081737408494595192031087870388416831063746446984973925402997266098970117298381744984818016517325107071472046075637482674681443554205569685908789487388117401992925563555050779768596868181596963558444970654104637061116484493712617395085813868778393870967031993218569841302422691343346001707472476242973815801602579133046501806595567803862373947858026010612336365468920336042092357959910466430376741507418805990932118156069293463945223670035402999292089563885538561651699480826092721339648988190106285720136379457605083621734110753043037741087865176721046827627374169619506269038964581681325023016587217486840624763186998319430360091306652013992653929359316614982035807267326875255620713923741574093652821739909674476075730619537342067428258007650805302574748260519052661299353405407715744052200123557713310174916324916480657961297438347529751898262216651657459465924436904349659865658411562280100835969091214596487977551719970610793329456145727842714606944881759411018958742911560544081641411304073137836340650377248975988432385061932147196353892352671645225483898948506228894891793624850178283170397056207224442841706518976872205342851413209501647894316636905427172837880025874759101699289223476301646808564856855581963129144415833485584457506826028701886247432574885882729836273444974083545729017564816920864209095317367865649662719805577744963331134606777426865530182571252784760036824017288275188898704701287824863287318330321765026894622941931049344262894097625109123829315560493797050992158242401591269302540459424511692118112083326940753308156735780644977421377137504330895169886398828544160683207097318579981474167542102332629953301876525578272632706960297908361617135294178255188041012609902687291289435094906733176745046775926159157318974079016699662008324570663196204726091579636930818471801066529215118677155821520616148112138199181669640203327294273565876229705693288191128051666282656664775556834700976594490089123079587782239361850417626050505544434079933481327424777896001328403668301295359066815348467927816161798133717296695892698303515166283677292726161810994488254820636141231241440074009824326755177302038544006812413636448743542941025418004634052128961291789451914842255916837631862806389435977917232918181442546722748081872458288256647406965824102360857610522323729394004631157016307578851145423509562812840583676867709220267201206279870271836480313881777721426611769594764952322855315204580563280514996643987366335535591245068244378053558497173571412663904225487942377318383616812126317210566489656769449762123208925362457725009953942696133767634424801203158965307700541790053234689651923455974259165904780168541944326819634952514012732582882936785441110913910331119252071798703081960950661587272288693099293294715405256834513369572435522136227595929974196733490353397775165717571551381203852678757824352199392559935788368933751748072075446990091565505425753274909384971498860747313378957529695239013058208566693341332080021995440011817325503303409086333365967090969027529825003894250741935641329218286611886569408899655385924977167975032814732402974137852081999612476323250579120236027747635617564824727493586605930551001089923326679457358892901123719150752336116356072914115041007870501125110928745444164720325571843050816160663976134127684864373064049589616360754606456447409920345077369341232844477987396986849108666188167199029450062802328640127797916416884793360219853519771457825851041912832691090140756853492219977593843468627145303432104754006539874962937868262357326065537678260423491412000204806299922297982268294164004600885736667955961006204716922879690721318872594542624509102966696917360182771343671103058357042000348636308591575983532613512141998466012682889371358676775936511435123356595056390535571477228157975509478371801043727637572941710436656288368003035908733395637226598272813392003865288731155866157142337782936901315601989872600080870830901741589956232312372720030723558056145444766402940540894447654365113538139161385412337081091384235021891884582248149946483300105200354297475375951560038579774445655735265019080581015307559294894928226294055507987527556876024681599136307832298566690449691456583761370165803635956163563609061284858882941591745603885436417210155493196766148838838418263608928754708569843283884817979629149485468711107850821212328542578850812503310063727894262397556710855218510946737544816827186360630416443673661290850790284935387296264764559850244149835836746009471866029594490238775831429382704315869766466554059522469237343873895873659621509531153557776395149942167499245974918668241214958774830904336744933220516947932964064536938220167922152777338626322648032644800930738175494799774696338393422403355657530798935014625561430304115074933346090059124094365837229230567886960348722190758178463564149802054784589502512477207105060620227852257799744704080343425882712210235702033248965635627657783032994061083565829888095562419461533067080703476640905979466023951502687783535251220247848002248978123499306368516756571804739738047247312893282238341287044567417247458337210618884643434078766038634009687729691172436688624535222262702357248297935743809689200361506070464281401695061091044933507407013889784896417030483203399079180362518433124234627332247851306628985437560267057976016428265263191014335961807412469819785321399533870700917219659190244514792587960996671437914508579272515989446607316975504862312160674522122879339220330080827728324510506816490023783466740254027224748042010310491106836230462129336807491968674075719589181718405303237263808657717492436710489033978309574716616138600427629923667411929561928630431375832851744937010478232941388403265232146760751990609381790082590381547743949497854027406047097483054214448475972117959346567883825893656952796944195509277953868611591291736700550840128571259941105278194270141583338344523541919235170566490366627409646391024273099664642846431641781018348420354032326888673341515714883591104363238743731703040667544253225823584800910568005712189523671922778118894623447589162308589083198070505656810625772255633642709718008797770252428561671230759036280683432923682059842086563640600991538786771119900530944925645539120165434419079481177662401113782290196038692992748494135202186529024019398237585522588554350198124443786173512884596217870115150460995866245693441779710021081659553974169395429335835039658112618869826464799136307250373633727364711691250038891647765042473433266054488648981018920733916428275438099402111331271276512199658382401084646608832425148679944043357115770550909384393943674958804155432870481929809382156805925183951012840969844921418734170017213216031515259869594802630284702409440688461891668043141160114006172429779845168031017220525152742949122004901691352987625032032267699334445438871458827447540880490797448635362142519624320697265861111729547468481018164582530154544675390973188908719114840394836330688887397194479506236691300070793996025122736363445062850819724972861452044468077742175329515763160430981798219925873818142305437470996493658924042211243713061953324564697010746706473663544890824704260313824502254023933857585078390844918060405831053220118541509173831351829656749364427370777252377570855617869686478702359599338118049948148556449701935724832484329799186853525573555865532151886440893620821148813271032562832805024633873976882061475513997987612509656215498806661456603159006469064359952611182424977838412943352433762647820037682672529868996092188276678159981725313952668948104285013821342926539387054127643267317355924650846470096230802564182949115765733076327791974663906587605504616060138897414567061175714439940926736886194123111781671008184929945009853269053096217126951885617766954596235250654147791667219194946452862200448015808672706751341482537024084787135318804180697077953191926131300451733463173513832807628157136921623104648299136901837426428160949985105671093819781853911720864899560207066248463637721426179828996171694589582500192515485986700907485309300894729756778662950515288074319181992520779113500445162676852689148130751328515874311102960794889013191627908423494280066294544932077376306240072837162530168340655800150434616990437849851841014337945163011169892897131380618357672746506740725902058446629428859119402961524536412425202247950818244085092097848266855411105447969566789819458611715056975326247673529212781752638503742807517216277279674150388692017465544110478810547546139900432998966380452127829138746753891221770065413079441292801587467179514572263538214637510027104055275558370968740587147267261926659447394392556519037682043434403815402783708493818391652224700718065738407751584771082064532571635719887784662316239229537116525550076918715773991960350444005709504690464662330274552094525873159518051226050449966746706050371249136419703515297808216062656268555931434182928719501280373598194070048773124381668071052695805348882302869663563829282549675067989604394256390661902282537194114689250489531754645610170463347952932512890734906222952783622639864412954853614153365678800862067171464610019797918175782536829277652355165412307085318782162558343715386428956602412385893488352928395696923457416882528972833529357098615172974784435862649678612174017564073679676826987424129910002814506995068672715390654481310962864578789127931591689756598929960236111768855783433875742801116288950938926710297685551771810549292439842069545790609843468574563446504582160698837657926951943777855439465795228777968492353037952885500349684833833461894086445614846685358789393858418282760580050689986000576372225765479253829626712173495791407895885377090914057396087175346515941669375529141970133477289939947182966311902814845024875336236932373239104185173122521349693986259046722802653691577768409035075465383284173658012748105010400985625417976859547303332309217991333525228256415904411637256280099739113202420702621534409224033496724427646949350022077326841093608335334916668245693802201512686687182588317386300683931934858596853943521491374496863810702689795399671199548574602530912702366376594903382468286047718143016830127602390151909688321071683521197814302995851815336899482444567388186309115072807551626940213059324436311012719938876935284301540979167552429270852947456566693695072554798962337340873779897434875239020541286609446114273371901725486478162083195095550935962696676622514883000789854910025762880248864923497135204918274355211033085617992268373076940698386960111383352427331766925675214077459067112565021405620246247706399785210056611108489306408082212085416952945289115397279114052971486652514424195228939360036671699993051784397970671660114276558501578609104792957450644649500633998506458292390984172727709732059219504483992368655199585159494205437492301606077413038607967974690401247191244220745888938182296756938425515830691776965232631579397828280441730058184933988245814047291898063169368699845041385998671430447214915694570849445499096018685676758720940016293363556946104310419619906417976865181074988158442547364103242480924413662171147078254773076097653260510474439469321662295139354030696345654538765869573192921652365115229443402906018125893448492622605425855159528575502411613052990175420390406050052879890174055577202008785583051238917352014542626234881660331929394486489449713519589439401726503650415203843987729182542389459371124870697797953735425297498596663015784557573215259520005001834613277417097587394005770603608261275396102230799961976857923937040316510674620004729700084499306289259611831231213864952858962139562827606240376978118679469897231304880870385128600021726729620359725467269821928623055024982169152933390870236828562450990138077362330136650862066274212182183573620930068088334327858492342344382752243245312697896099512403513483219116820205669840260445133883885514631339506345746796103157290498974957472994251788820204351767988338090540505560498077731606919307291870566113016097948690068289331844553456577222088683307619825085225428624291372571573664496105615803376182550538461222414611451663675151956907688819250944960987941863814936508000668941555797611404813917646197019350055135164859483332622832679135442065713977417126281046621276531114390990485139351456699706165312026177345035083159638449312198806703517657065578743810818939910757469934206014391934635602921303275066716585223312722078265603151579414545040084605852064012645436701323586888084729608312077592805958203906629958475441253191348238592313787347309300844559018850834120103727779211997377611864964980981521883716936142770186386568843147077750907351296210799367025301111874011494632498282768197194181901297421562231237038456462784097951408086557583280954010075930578905803055393935125857708866611938538890882766367385565988485915615719446369206501661915180257895406144783934114699114503926633193140581542415111402540597395399348177006452010468873074925940244124013232140135683804787952908964767438463921735436601778071245866308611776440374682929172487691527535817636117382381151601343449563480037130005890694713071271264929508065669714700210958686350885181375688897011378691994109280489140109907017527465244351273720320596344316194248265183318666365006621571598660147820444159134949323157750366516774580251214574214268167044488148592724772842744136327579352150766141672186368040947569716335354864003123830991891189919020254625973987414938565294386646361072953489784778293448492357215949295152313226134473527410937991776966461310416819541612561513178284150351077928136998973604551968298330604427532722426259551861690832515552470075133178505267058185552833787513156169445421021589860674033675800510323606777711853925548432894144920490921654264107252005324577403852573642255004046111478731745951160883574886328899637422638519473606727478818553938953939209744498837883750197206440947309563974759550197543697081397969812484557754976513630634196872878945513387069535223897788548804064154010483934690135113207182926137808962391520640484907162275232912984790037515281491867106964461087268115499644797298054111542430822241107286122166417263370654830744137063774763532678671102319957763704815928840096242210393524456188032204942478294984501188478370242104842954025500638110269146300779582560322696519961888629198872814442023830166250189105550704479929021047254400396393173918902420445236518544450130710460843239920299917608116634578896338779666781359135021597381779523407639169107969501745664618929905598833963307321718133239931017967996341386033450356162247807160614818234213557869372381356586160568936698804810837346481894112597520872912602816280505361457163382148858695739071710141768394341832888584870001372060532017727050056620524306137015134114680541243706291780134381505117967081596173006906500011369288318263872277846957858991467245246797210397781334362792910443023121939702007099674507818669194277024184801632117414606302891840358261834568831348396335298609253524963523845888640672450776920761726256422429293219466540490160569917139430348949147950392743861294673415157477267657630338230792084699227069276234846590327470786972268360391650533139173400937576711033047017826680989861488427377191818622546621988729278983429989612391810579175216296131439972203145797290211496465647675452364242328723640001940373516158148357087856448356934276355257965162522860413592487932377062095433751793364195528147267738781114144251195547862277134228570383682066941742589792945454720334005287100888981435824006443108602587870486564090073577115289776873263241585782213611714010124418901315117904195435522886622293853052158371286957389447734192381972540811073960653853739021421120166387077317200924133704458985818846459550664278140922528177651563259369388726010796574664857944637611394314542162961134884251474735937795848731193054266269686688873299003577578391545639284406012016488097168506259223874706637443834680653041144561251931414525802839729316157863264736379273968661667052999492465307983298348534570784185634516186481167432142231996963239896568685499451999161506082933540905841466883116823896777550660750359839364347132891768292920180074791841410515421503581066630642719555423179700420338428814839473681974646869842553352435254727807899205903110741521953521528407982534412179306344705636513514357862493124500059859343752751521086295601116242186944702251283193016292001698061112784932732277885189419227350075593866140159785656096458074508073834578924814143880384287182940575384070646779435301037571787261072605527855489886359046327773039809846999122989955046942141407843980515386092749426404379411151355267947862530878968112279121673613987255322473554986697179826064767592228966592629565847997589389059989968515437422197324591555873370746200457001886137078277875200479476745628928460351024476424010291629207615108808430634428256749327608450721292373314787795083253914383272334035198979013240787112568155750264943962230886184806379885748622169499530281835102891934198068941915110661412227441228718951360628836300472882692261779408877190768440122819769603170053830308768268679232959865101663334719150665018789078694916659367295888426898251464143717365035019749732673171197693339972882547676501045184375290468599342660584549557651606165958230058089022038786016320598171756538308051828944995748106804651146335671801903355082068622809666537744016593241304515746835920794864320266343810707611170202273185588279783997181843769022457695469230975586832596355099948440833691097422771346265394191731507383668557022718595536920042433344589379714237012326448537086534824816302305632406365081781085762908629881158002651998860032550455210840474505698062895743194475509132739814691752360726044407682636456841388407481064804926675943223677848448499984846322323737062960460646036316354303465128097066643759195796723751922035608793192568605292273409402202169266175320913304174835675414226520713355872813016960194559625630358999728657690827785969513869348412447473182159368569723031826379155739712583007319992879863066793236432729053104398883599343963351700951042642539384255187760863405127050317609411920795768600017878260765686210184113773108869466327821701502549083774354397103807728646946827627425213354563495515246728130623594799740489714340137416905999721309209651203746651207224434454228570579340053124912483705534169256482834729819177377577657500173696973547195504284899876223817203288345634888670567483684897727289071603866124294820574667845799427811787228506147714978147362206870468918570043145282270624226643208533365629169198839470025630975612984435765886993897712270380808685308804477333802522670477869200624805795242070542361073348307318494583301225348661313569885268347466001330419950224355484699353080827577385559023723771404046852387503306560313628944839222125853005127325642099354334786054465924371404069408353833810504070383865586619081918303972666382692526715775395644496184384312482478665332172291041031386116461225123038995201834770776357240132082999170123927100995518475182605970668271258042292353204110055354151838356105581333481798259796870201121797802334042321719609910567311161548810777650746467468279120705251471268415554758444415615822169560846083795884352431418915742700150328882077710188098315767120676853603103051750942451131802746420827890638926430516877005543711540216539060190644000595799179521007101014735301160330801356651761322293386209349105105456945931291003584546843190556476185231530214959106377532284040978463201323355228211632424072771137415259815566528722505575243729560198276229923887046119710432637416581593096813434046423691541367229616174365066364960717619674509457118922596945762112188271610870759060504997929491189417582453885623260606911843874423112803820866008201206997915503300140931483419173456362661477366965576353681624415610182206045277416870759648211162777587821729620576495451252811025545306677406795401287059997197318695651432216494681376941001072127369994792369040022759022523275176902487073775881315387190631867114552930033330017788896214236296054353107290158099113210784447646057641303387428147870697627584369155270242900198585729929161194425506916256172080298856968257976592585698623078394017380140121268950923523919752749980935688794426060537590827780155254498653747277251684270078728125177836005323308047663115487003890172040684623881717260946264755626229434776345453864525081026246811889872040856190739173937655272420032601583378597978651947849175464117835446094408065326655341753345845816324380324508658128674814779997807845382673027734265353898641578596436164617917159936795909625393873367398069588093039393163371804320737774262507452151315052874916334340427680634089477331037607906667581872126747473505241247194852613945278687356342417736922591614359517274413238335577984165410571010049899857414530528641990632130007074176301466453936608309993116702115845136419124147918665833410470440040587442716421425993462426822316617240637220226157044128252791490234241231859038847958806842191264799299570985515571909406123841300401256147385665410489915400856701388286988455543796297791511048600179754664471135724612149811574623303766840081968083368844125483711036266425821190443680384283338091896803831289388033712035128972689741131703426271720485715630351794072508079049272894547167170448389224861981934789271212616643508282134292165199774805390295552889328135748396365435131181432435453863192564921010279552358536929861174101598364347308093889318291814217149286307087230781279290888130260397397602268900419809719345887632622661390353195434818765125917286104354837084174643423536333520936625033886219294122763195045537322618129978413729843918659658208818361147398597359609308570187421533638450945673037101623881271065624468818724957888964555787795855654181807066183409435972867934155214409491209260666839598532216617414323607513805700841939382228901814585586513140186246104206653244175579871186533468819171034276771034383282563530357013920941654138002914958154251783219262791466961248703288938777241290183117150882141842959824438506130395428724283915223754257879941135561678548488483432420181736999373316208914957445275537813746677635241125177253065448699813820417134425244882817609459201579550347084329061536625769285509433325317642843277223030135229441134034171939855013717787928352014827833561044052644425647474751600606596757111843594889250137253864581457542313888007824974054175021380044444504387993889129931609617359046882267389686617785172787269677128062526157337393818087109333974065187359372402872287819008242570988208395566306002444988093317151719590101368067988061348389392774818889410931239305534404856688734562808810487698046925232208624468888081430940168317754692387370395707023835376493077091702168445125087949718306037454977287188015982577036123394804980324066707482373033922019870792498426189806258758549106805981528311930521155574115835600349356306139462936775485756839796070469836522177055274872592434242433172645688566906807189093709835558486817030047101250797737850072292742610150882443661032469232781170377597949936812594795192578212559417801904686852211135353400625231086394081098450709110905411436031006288189734385458108109088251360962161792229437151164335692430388738940653928622325078759668811231086229681303448509240288169261570404754735867153372492689753195849420389263850360334320582053705660767921133310829050370944211670924415331822732005593074328503891801714987923169571610642833735621023519834823717729396722693251685312233288429390399764617532024682449866975315518332616906494885876434494690728507927700141249071095335790276739820109549292954504680871334372944076012169473802189215271327797129835960989139184693836401340816577382828784763120198781741098396226394180047321394101660555655857759044355827232921751866918450842148595742126530330606168390100220602668795874646026473598153232645600395717661135934491366221329473575463979929840146140348840687873115000166506723269565509119595877340754970885428063585304562125663713507445582163470562328289568913026409077853614189390961015230154180932740358916143089864394671720857513509239703006515235842475922455471366961850570306867991922433341677329297987684031562725327617863394039832049831906077878205816955665066825436160793169258833765659615706137855845883437858953783962565568349764236947011286294283229927034760774257691730614653774045436771630494237764538754144482056492630485739718263165026089552663887321094710911660249245017501509015434027278551700693488790052915949490153998005203042300785530438132140227213791598289893461136958079757104253897258881048755945840830874107218568129645089971662478247578257910375978341489017590113286911794372517150221575873325025647908161096402238062737286254065956699164041765123426174099875254273717894553433491485852295436733053797494020890583869412092453420050672629118195243638246616601838421557358915599508928853847433227273164976643716151128478965130723919391303591099572969281215108932466410196191386777615569287996502482424689060644243325328931279848984618726024216939141806744041458307894936462998797490594677117143484371716890344232699728131086662336937016946587181763432584524821721888961472902076919004538630937849408259808659962067845308029068813412276481587385647258998268630908340764528016918418511459977394966025817820183592534681430230159702555767987795930444207808317858524165085544977257900847246875160441452314825710736986185454930509350134119512090593753174352489631080267179204256521034851399930139666978407102212868515732118998818678444027073859064200177048583082319767207404998771254244890372701620466944748507901358698935596123182553599410192522026836600714689812642215142247152055337492975090982448300872974659539051381051674838538610694156656538940995115104916906022786697948678466126130797709006360830661591761265652209794929139521662146147371227115546196776096175858533463911423472710984793744235032642127901800208201093381461068067088611118841410771684024053466861764700559176882273004536782358628697937871051127266034774376502471033066586244426630041416012484459407881349872071683071116384195694484790317346833260703357272171428187492358323026098843961470513500544434688839528743355455038534487013587793296337068728427838838343721840334249481220874028617664325842536458549759649416416033873393427789065457227415286444953300002057169178111501286585108180926705701427963991603765993733973014628992431783184939967941188741572123864323865394660994185629999062848658524485434953791478586610118830126949605244645714582692367960952598183733413878059624251336733549387853995467554471873420756930550285072388694983304990799221483045131555675533548201048683275556120227942103978133499541251149575397120770934618665753264995281948642427705060096678048296667142446879494645806382077556310224226940161653010400439648358840486675703626497243634248865661220942342034513546483205791849876515181758178496174717184207314057182775360892010684949918852210485597704891489259608924706794318982449307528818896259759432041439586673174197890804442106627091703557687245668734053942679699940795747964275550641296184000983203115002881376006870801500592336125745023915589786251782361017122214978532034816322364827906939423723807437203697822388365698734088806798628585000602479530677137066302109330132601166787535806850003883000743924175219366136549801633949751157275617885640743410365815810974684998395784746685152913104252597379070854087918592190507740069968540678603911289243679729675943429448996652083958133010211046619951610148506068406147032370759714053558225842304486694519307971422079184234006275224124566022480894915253524181245526247688292783843582676070962814756756700214344406097738334798305922807944402190172723634714080547028734519691890898214412098460441727458115704951571797100600450876917734060234944948473110096462063818331429760985441704646553953289545031894264068636616771489390235673884136458250867442438955367791931845883682044815979427838401454224795143147614085687320242871425207866100627101139279544323397586446670002496104935791577129471745195321001344545476634529254040527278317388530850291186666298637761124394525346840079198602977151241127825189542001282053030755301495033853864318043958719438060076534342101077765285188564461625341985738073183702536595331372330175647833504639071207999727631400250327550996431220747572702593983864531273985287946704034183190948173531656177102422939176437173525359184355045685461715485025813094856094496149860809712776500433074926310304244697204797320430030626733976694298545732530924276763241369601055239367706062320922935384201027297304024774017912110319287118251623864079405885838140960762951954623196234805472887125601322235733246655561161997730712259370149850990037407110825483454143494078659520061209613381138204224754989230054362415781148454455538157712885559039818575452982646482705451619678810297502363234014035008723205793222983776500722656584260709110501871565119609141059354473530901701448579624280459475026034779291975591672212097902704301229123341065102407971362811315839954867852846155144023267535646324403868989363137573657844186388227959458676587028716561210780828678913205034514262353758717891860114747821530719747269540534974281794249993672635835753093859777472896909611540952945128782595871091158659296237814767721734306391305274218161291343600385622919692126168525191127884577894634709493012763268533714844287876334423386332618040340277550809111060090728546456389039625024613489666490545757964972626252978946177192297894122898587985810149977483048541330501865681981123745105561606564085617772571566837304261424400008169497993379850168939565940603427017162486918429065225365133381319230607086270573077214089760448963705212328296634365630407488543339987117197989810053838361180802314946672706013289027197179075461815603338552530336886020010477685108561370315959986734110555009093574713024145428115299289294939108074333981023113923352290187980774212006703532154220890320786354519527808581805051022690341587197791562587643517044693587406514917625469851233289807576429576648717696865506935858334972470761329527082622399158505470330589165877380276645225223605813287047756465657305474228285184888359801062305229686548610692054123663328320277091836399983244120099082400669707137238817479553452014916440412077538569092584623115595300678896452889493247657860843982847464734378628503822762488766416945078864686547162609733820340231310128332341847546029599761647523290852265219530075086414516825186505419457071298105635086222343280954686967523721723097458108470985652149728499595918798163127390302401628127503290527242288481473864977942870349632307347266863914320989086121551937668407334333541566480738764836291105899118535931928996720681829862566132626994553040614148489684527374871029981764020381275462836644358749362398036963084326217351805807243979210954943343405858453888531836995008948546094095268480656777783961595011707171697153838807705954502530363018947827047401714676134150280775710686903960748053737729025504357776987007027448804429229282174386605700933296724268432742829605150047672228823718798937500140508829276802937039681695276799956722017787610599434110197644967686728269023159896183213328217990823197134379908346503929456189066246968943954038517011926472427965765887109660552104406496022056414212471482559968232726451645723539015022321865242685087580477047739036636823060737910266570101723855719070457705919709388500100757652885883584882919892530265799772269580255199915705399741037074937989464664718503920354663928589032918642246096377213904877358443812347437571038286841804609273768229536433810705060300832550872288859510736597067125747097643681387031108128477321968880357206225102590436123402672382307800605614130285481877508373962414987524840600367711329584818905953819580088469521807236734754415324110373114150311505117921760968232774648791924209901052238171301834223399074072252991931196202709102537796672905236820030506386029853733702497971085318953638467293713782295738348324702188016495368527021597196585488642444682075840235636002943089021756910265559374884342289693578887134769112966611074980721269828635426810267890861413082600460464649580265738153200677800341511097047343549592828145545679376714656397152480567326145746592980709842216280096075861611149858698803955772345411698928575166490533772698265427320496433245430727123186829719023359362132042458883848443879262635301241037215608881426171559385845955892661897717234321286127958695128150270142126377739334996617734779217081149172143986287628024856783176048002564731002107621335531631496239881722789917410579474620513195369335048845724585917790048164605177389826045810329381937748936014276578814973455375141601821715674560035195752281465401384362027827960944404844039858542448996958227079660775998779943741592566573159415930158988053383706067842719169179875999130564415515085574083673697859188444003234776574666038425961126742051774363107410493811234274801870345094017214574998486276349577339234093854177670988626582967528363585764312215829686215998919355377045414052366019735149069568832936732813619994457529401769322426839503453813265975336107568135896285299697085795679469824073458358715495088032630392521468601007694682624285779787467734844848212263512683748401985586844335597729625479618164736987629785775644022568981556575485665607189633289102837356410570308684096638454478263895249721229462839016698024010204487040735155302468285450691415981874229352673155264860456841392262376670694743788964926481792434100093772262392087795247289125139512283823471404000320258017759257646425385399131281176838999901093819524910159368076846172963470702581606251795882336104114990802475235543446333589616417770622479137318840121132526079097917533994225621817504263158926798274856128092193045884387928750366872229753756668573702333970762427808369191026917447744437016390481407367175263733212527368168801773180689645335373576828258781550305060284630980303372136449285547453631285711532267795433657790115710350412755146026017425757734374692788931883362515906823472787232696498305628151929697679245938545581751743960242315107089018115077938761544488879009618047426546206337531349947613321963091079373791015425764996085762488366550391255177056307348888044081902447245357738798740419126633672575052447016641908329989428293843769860229321119813343402593476504662678851113614897826555503635986710539347498906277206900878997071191620797191096757602295418729261608045330615556535438094303872586488243477120921836169233310745932885556502875743374641798691767534948404184957651035966927850515945251373097687622718027410952388856125504854166160681910555529641015034864717816071658257439186933070738045625445177079433857854230390790376075022841183483677141549829402910667893061376755534159284668089014906417302581327394265935524878860344287503453382412544073460793763019944477753681008745952451496789511953873525874373461371001629179069499669118630193134890382766846490313961800343040695518882862279935119537456956802141566496848972800264598750805415894486468365836270937505139520727824847844594629346557817750305346786189364692967596237147944218296853120271118737816229528920490810316272507399465907379685931652784645872332489784311424381935185858150240851863176205911108759894312651438824024418801731026398419447640154882200651896258812199251876329124148574466187053663169029088730174316622911480176110462152272652091473034158293339356889795415290092822668967722854209106126629163635885321728636915492693011172315337903929552533892609595568500876883404442612620796302988033413876156907068589148978017883875322578120948462051986767531167240375309082706452174139437012206579208312578379414682610144004943171727808761292062398157416486567612858985002918890140376100234685398285443101747923562554025472782360019194412984803508293102089042774960663012007197888362419808428643267238284775411073630916535637457272901013151321292011567796703653903348832006086297895781690195700728781579729557686404628826594432155934933275397641035503293762621147704777538997893847216600595748803318262997843181777756245680170917337574392396812285649857377904544688404499945733196135130358140837614942290565026904982339084252275703330228229291916148462197054290455701009419415937299925141307913741208290577371782336776915000890570347262800461045350610670198095143282710828727514914129367582738837899359110935663397774112559626737374972601788674532254783859386203576940216505631370904956584191764928874146122146638698680225500022374267571630763143484814000697094132813388791674248881479530888756192299219113319849722764251118481146662176296518839091264105147430420287896083241971659185511502143805516042675035386721176243632105441839305953055233861819885920698694888514995832654472384359276628352220836570676218713663736353101960662130135980737867121208855379990644436173557791517835249630389097780512838722347982414853991577805146630792562975153999626559787820722085825122609385016575366788868198480261454071776737343830313282834497276072509834052743142116893123380433999296614806403209856337467713373445825127150773997824892757598684996612913867058196478800757215942916841580815780108053832229893746696144290158569599067980488179369396179056245232322630854317653325781931203751785883403266764299938139224121292402581242779459909034377817763636187189496612918711070051515578664021787890594704706764121207181302185285554434282234138097261653334572137384217434389498041071747948842344839479779429298756203373517732104335869722321707513884732761564009740336832658557148984185081275343777123972762632328305045585747642285016490509280771164891983218283638353060908061511367042905783031290791881419084426430099676431615792670899502559573391667036900003725623452834018757118528585401913061887708781751734949056342758611813294145679246337411157796043074270824650187719284509499560332921663357979496914878025125003083119157333803859294205379340123300612686800205898252291381864381020671401062404970341132580190559841082956632808089189952566870963367832537933344550253856649511901240175250184793676298276732597194771336837452674228387538993012777790620797063868932799207582425350646036635573318944759523246293284844862334837844459706372916945649777654120689596157102977018327790839660215215266066637054459157530123394337228221609008919244045149634102340711404208363768797653538418926579428002386921024215442427751135184337300090775907510529981484131005817000073656109022866284663101250655900225518877642098089014680246873953026524631056765840255397899130660947888456653083245651397919122195547139862585793055581783308492266571260626450575424118238835854991280968638171638410992818313361746823350151325314474480714545144560903019046807680146646451686142112732480965266093162933514383238106909608206967533930348701396792074027211391940348872585904056123069018680933860531167594821835058770131204143721652409523125090013622248134244941317249478725945753227071863774971618664925128440038531830787331622883859229975544480473929849999652892517454532590384561553508996879964864571799021693121382980145897028069416994410255450490196459227272535843759279841983110049507789413613031841746071531726822264272833635821484764382186677801415957386025482184587511749843145333565207073865838668174758554872511987749564647037113435591236896041182251781819045962939196560662390747558421406562568975774530592299319214143048797668184803493421484994783692968597023951020041283479624408592343517744885964867388399918151378346253148046005977457674000346776841010976491505580287276915136843123140931555982561034295698791028241334048103553062803566732217471636104539770132248164444059768725569840872230327211118065552071754948515920623740958906493360277333756198358834658592884707107907968237766760905606898452659860695857384863723126373341191399879921007330384515841614363336677327181836463475482964474084212026621302192216087032221879945562784163157149719491733157446457208199441255389132924557551523811544052346800139147596541104782858251669955586258401320115236160904020484895680484278111655261527308578718009993685289882483525067032995263706094422373273777206228318734646615883829130191460903172857246769561800418083034357228946800262574910937912270284459273284444641280874921395363869985412191592100637895506260025230716203881052827928733314717248466556152410757317417053333415977688079037184520122747889682639804524726214471132132934438006748532353652327769645651113173133217330474595585536776966691207969064340746590705799519460320793018398075747529135677205575967568285653152360544058725977143677271299845432646935107397144328507176513894145278292620110311461682737320705924895262519222765142918644462754323457957648529227308971899804587590952547684429138592276306726212970719458497293495131602491444442930169110500338566134373619339215007754728326532090885720195820776449983621788955144434572574962088107505505602287365778207983277771473690726367978116514585924282613302705963804765915906684255300361575154519858110276854162201827835967711474976216935898536712243578684022782531224233918134973818094192395664151684612459005849307028862169020529692503936377104224179918653729652211436833680965796619931332308240786604688626401284841129329548757558347089859957915653163851221774684230100037537854891452659357084822240723027180234677719150295212891236791578433895528883103833577485114894282194992448988210910888980265560114320153806843580309837960686243225273188888546442410076341446252924649324662928418228192268445577823844676718934608208614892213899747732646143108998086353594682120382292949617755043725670562713823260844927768776212605685834208839220513346439690292922875301837672683391421121886898329091409604689858230767855770957252285531447268983879714704503845364673849110437317935757882310649531803127189925053449112175485464939350730380662623727975252368129795381250324083095405900174595676604488204329057992053885765493819000940172851270948422740806339061040182607007508528968593258824413558529281130814952569269893148529070093599389866400528306887128505876473374181332445510279379717673414568794833479476177635509011802690978355864386007730263380150889212048727006749898522238844976112456394044606970290577086143883474603738613133907252886676244468773750139768248092087226332575670842808781389366092017674414119726043779896091647294653479827718102611593760742008402430644845511247260533658867366315512481762383738775681736133381272277030755777232181132793032329106368468364681573501648330494486301687749126558529925720852574855479912567193101454283692814429175005898391712394026645582408037601287531539112668714158557374954546097133968088763585448949068987362415839239221810502568810848950628472020370584699083863756871006486629148157802104305749959597510722939689362470533499161926647586700735909499061380791525050808265770000748138238879767193738695335754492488226576086164160249403486322008299675245290592446481557884365795003175064261263391056385080769586217952860239363615352891349249371660233739331515708872943498446180001346633497786668547257090235615509788664676530501413504281990545122289000162177845711333897654992445118968233541494302852090369271308952971915376522387097140942380817415318938297112250993265306578926645290661634929944388020322409794308644588328017317971036822774957373671541387471956590749052184515210774535894833721394483606715190559017113138127334204632204905811481117601520285861111243798417348018940992498402165542093753841039020098173186667962718373196966126491315333641589138432778971751370010339418144718045761812664806498755396040908756735338661981420793721238062662982423206788647386963631521563962859743665007496038687194306335995761443395898370813013115220617628924652785082826857154766653261085639063537736619442278896784173398691197872452172714096113679373198443546282118169910559930924396757035115257468034984431519697778401925497590532714938676704557648459080682582701767034785212458765432690663712064996269938068439363726196744897123189328785264648870257200038449590128575231089547303266153301496548821990134017974842839257497774383620989248666681226913867707082822165820033756589484769648458730677594446807336184174914906827078581604340785742135098366890110271386863103235043563003351603558383557269932411667908049241110057540855000391752669742680312841396112906754891602811281062140592133791277795600068852076862390888000197063795428458127767269427352860696123420231706880986327064478365426950299901100705251901306617524239758495669767147105158996434873976062788423891008007012606524701838888049312835863645966817579481303566052374880374173443712678782957003756146630133818128619536002536899912457634251662462374390461492163841441250469571284407576489768671443265103757795229264157797517824422214027973528284710950868759256103161355886312893049219330223078189876735506442090848133825349026302272411252574184603728999604300227959762965222806588815542334923597780458640733681839462736200973273022209319384546106426724988771480959517232946103289658392066983289602723392370250655569635106607186045500317315858899834429900601616536154166102601213903157547915816661978210531877123153274675355700167372389110533921142950832945213441468832686751780490828326834967586359980034682680910684504069030856393107999590969182315818194345280032018794091934310347565239009373313391864013366056929420824637417163530403699365904789349690640597335736811603354505930932385865205149346221410963875531006281506341229129232826822584642286384388241312772505444881836352699845932642231725326380843107539192845433960767183415515830953084974552315766183680142300870128587962414429956021266976251701627550300552118988545726170571982915439103389716648428629903908243061432465533958924355889351683161756959417195523838380817711822031248192355085562630868019703483014042346261111118232296051230250343482286970198959683535380300368126759033272593216287150127834491721686374236556602204281944052733962093643801074669866270333968279693550855746648682054544518669813255003236342326410660622296781348477358534861471230495199929946794731857415999471950766699966459001581599307622424271694294711432081369063321722805828538556585941530011012735622560604574375955812936888953499815887381845399060839662252651702147521542687222199263969275924619112770959918289836284770619428936124507770796827926213682863342526694138629329201053659873831197751620197577695114493735127562464314380892940414645506615864732282946734761096493270129494599994913014669547650721598971520393375003210280788094176248056546700069228390239218074255232682299559315818755647724414187301215622124710647486047992644869895448321327190604308349325246062479844278386350898526023428323975325059647134825217388642635656976223645551089531166510352950937561424340128628822277469525165288395482093930877630106533006333630907217921204446996853917991535958711297974722015229536068283756819257704067535714683156652534306302770193715229634063708283996328479626217341706127350085756904903509514299876044900906561944026603632437399065269007151182818333297136634596037333201081998811517223054412671192316387160423913031331752355157390872823952939660842518111939705721236724408171329708114450391442068942895625950894577398047179204964106584092354738363501231081335835404237878024676170812045688351987863230981060721495030221834789730455966186715192672369009109631201433784283821958937679482754395295955885315249703196685905082820023106592663551787998121483499570720839060678695710820551518396160404833747470272507825077862546237826875857282371803695969296768373459298002516349418009729646350363963376806291637147812206428550464440811675183096153054767164804284209197212653385583511764357821964894444130024806523726336035698278208207711846016287020475575029565767455129871244882943328224991833029348456810311493824401894617652648662249612885521211340701037809196983868075385868712043961035865792006435791091104201631849691227152313069993099072417514823410154829992507412593004236868502723863353889780949199952626746765410082938709117949975693253049739403534568524298439371444652073862093572369798750763442129811855901132361686343894214832516522059693371308776515477330322430642152094865668222142180927729410829366546414233407462022472348150231221322052472936992385619087996248030327223836937417163323633148838834888795861699957237358318425795243273934049036358628416916762482528660250885105860799094050448511302860764398766022532375307402329545376285707792716903660465007816884350745812518531248500329726114653108566422488571097566939843160431279483437498463999521470651802613297561735531294709620377399030678664785147787934674024976288002669058546219129434555223372288480039714276438879963142851899768551581526078590615646434993342426866680768403046265882882250813255009919046868194157002567921852784280033175799517240098403955017728907093771957382320778902040934766597123363699331798590652462222634922109883495605429066532455609396475270311870426104717388263652586621598802480819402960644482615469056760519517995803095184452406561491093104286771335687881484567285456907132157823036028076026848962780966935827060518032816397560015989191312019444918214986407193993154992651924458725590863543301251239450296935589264335818829843246972705312388256054113020642322587528231220336973918986276295021822976999599933789246370607072072024114208443557900188057291766309165796134823547202710306404143921768867693553282986126443637283757664485840555150320754048489287323587550884400954881960173638834083310774139801685788188041035636601498363223203208404814190679520013041673698269476831261206987556938856189149549316103974245014508845793489691287473483068836164433515909040323994790838565763195708180872249459696905633542951498450624818316595275834536687327443148219899247207747827111774626982895137475836421295430037068650567951733725623809291246386062758205208903029744431857267351262025918119014579913440129707865949500993137491547256069090183826428397638460043367323955951826501701025802577305498452243585272383966277515187629733755849578557082903633139764100138249400261917319933461970400102417556268292271699602314933573491345212460772883463331583048682649916415826403106708273024641890328678277949554258809924131974568766932116096363679176627414296324546513569328702333262091633856802694121125657436737568730375997018489166433957952566041897918754694398474370338842591163715534187109821585774829420574640729633623528059655794884036891722225408734441113316273537610100187316962222027120538285801858657843968119493968158739094317236955434076283488378791564225426084520781736229765063225359288553179954602842346024077577594559754098005909336011182631383790810582662709066712019275458754447423132292811409459237622525410340829073611015993819974289493296687212916064355000004420786640929622961846547054389251202184170459861732649582151286368353789752310191286894840789381292585167924329152671924415776233088690291597510922940303869370402221360715259224386578175449921743118266960347842938064931357076462075309422725058485875037823731277731537774169771850267314256453344191641987579925678537173991397301893405625347306458295753686304005172854480180194225576315740871535634289829433790250603382233511873608576721789558486667021491270960775469859891582928990731533792364889218490360736302602745664966538472721091126412131442462798368428392938733510403514476155821125199281977943887541615363643098583658548283452156633646966421217280957601909726808182539579633391007097448868783092718769475401261717912325213592072447409651517315655656692868644778544150591241436506148442599082004680208849005288441263810687443826414291563710662858963249696976206230469117399283417530672894620129349189297128105294640200447197442668423154025774242426203705190621113043257967798828508946793313153256065947631235153048340174609519958935361442550324711505631801862826860267108645050048403670013869669221340694207417857919560075935831814556586641522385914048375987729576454708540529066806350733052934773880006688715813579311411721143955341771471991651127888511215865513841055718176768950857585272239388519209340793663040672988469128276178193174354767492303467772804869445975263415526046079017771238139536596652861249834676235130936338883539711571412374849830706723081637999484216313231005152837102460643298900146901859629697440900621327034827151744981511556844134318306099328059882788546442912203923329469153406680710420100144535832437740086212056003483700185989388959367791755221811569303875181394444644154640487459988301656438057480538915345504639279456905498666995150650014910451311115854299139326129954629635825324019573684646268378167562398924635642733542735493383481857812535971140247683238387063343960331835820613357243770547196429007142558312528997869227361325842019495285848715752717171463512394323831207644618614914512505662431502721041886123125060745740563665099427839252236774286517347191125212412665630133170159362163754139257198660483313818873442864389952230633073934400115174181918467037355857381713655580176526455408862437384401752046273733193142246199781112714946655287620835266546429757260734915901014135007308767316721746091175087743304159053174271976214639879886076186058370598305614763766472907165110782311930001607757175990533440228852286081547390833095025027212953560493550243990127862406840341204112104234363242026988522725504550380771574210027689548694142118793415829862621459087936954728050135793033511116045433649521128870328603771530548734758189193494541589179008473845708900252940751365746642342028289089814095618617882672605747445282462178044107042531751861330273830271933557244443923090805361947445465784687374626586682327866265376718863698109573762798012990979898236664037700818254145019682948405364539033091229675883787037302655764715660114602187086286026343503165509293305794333937212599175588470283544034796252108087833351130590705256576252281709948092337999593522480997074801878042573200601168617977265114444161573887628952688785251924567286115261459307704285413978896430543565598999595159543865313004400439050373917376880606067650636594955958007899889901864535235409573471665397432342028374796010862962641052001044295857191470946756480558067929631978526795745556662507580859399605973381086657051655148392950634196014684437656468597418184993874611970874163491619812440396104889121027825596004408349883832464722094850387195955718831498292700146843458201799427228797385631495060762013207207806242191249291059877736577041054688939937655574160468982771723928842915831407120362396865246043768599053781180971204695536123025209062321302022126007552626873874929379852997733360715657916300829752861714868859633524106249544505180624735880645131643492960806680289509666861270201441701573982717261264838275932997310143886552481545660629538510509590092144610230265351025604450336574283030953388785683335315253488982445646253543333581636012533461941570616369403155141072422961521326576237130600604983542480357785843620982390681479191262931203859400892184766354478230848436076152187300284541442755553005007894810193719118736954883835088813316817046673132914751873768230325902946272288607340770251801621667931077537812720945884514366358262962827193510060263908964533622786284352430935161376849734831488498514883472874574083405996261048925607251561451136823273874955549672013490662513008980048282422384812293386227829498390210207460802168948849062900815608688388865784000442997228946406619259868911737844919902214551547690306032558945542952109237673751791494092726911103548758176176290966436010884835958977986940962862169499230090756245924125735056854927367420570680254027938353692092016318729672967531108034471503769565880435376843748460212788785132482392896269719683932122937952576152194645213021377109571563843067034486717465119173229843655074885040249719411541968046654114627359509519719574948889702751849984097880989779905187951405765072497178405672967433275674082983031584348860360191207933684817230259224524065056310642751136152579627620696312522202697832926071794471236457330996065276924978295797770019267093432349604085618411718231939563600018058346898056438716240055550338228586902094412693080455314399911048656886899766737991609040380589730439090678067207972838344813522280143548499048495754744596060704693462909255133836412254450064521643804854256012266773776588110702792637801057517610375131710417129749055672054451425158807575203458863157574561082737599286956499670552442798452291720886707930851780298351167806578450441459303477812842405915693281257215570611019840242620749811200222499474198639868514348755199192891863556118346176957842621984306027364489526055092210892485893799530686863248925157217828873516631809719173793417370810417340276912644468097044013396086402091175189131432330954540494950116004900436303970987470425108048936575078910253244569615473359982854566848558234375131169695813637810526571131232255282084427904562653626209976120056161281963782426627407441367187968452528769126226366270353832177229401300385125627598058818142722678894413872778409540628336403502109442552729000131591075506998553679502038313253940010491018359101688708529390647779449511624828410748539521490195969589211413711844924181661411682002834512085023148837880102186042027016421889479416079957596595965662369004700206868077276764216888679371337726626342492562065608156809680849860306236514342958618278952069679972202274375034021799071713625840476551145968626356782929810197435861779988492195426759476884372277056304952878961975743488520071991131022942408377114253684668007659128512738316718455222943953934403974492375444124506262914487621102690298155411698781146928636717381061802121771422168510347222508956733058473478586699955547312080470345010264357390530196225872921083610739882154109350369466992023044978574049888940662290120294793254360656856347430599838206204473755785171187095616539844082803524366482646202852663849458758482004060386580811649281178677195583988817395216947467284177880563592002094474550551001191663419915968785615806963314442713733481559032241202203041460490367408846976185238530582856720835215269576932875645032981824001189898558379909832877241945428134932449922674112899506580426689612890201978866664634999021223610302053195930530017755489525549156538133037480730142556289712392315664639738977413993086429855071445706430657548545511375668758029476567980423824561684970930806745563368410029283768425866389996033118296640983256118579543047823028007191251379747830104992392539721247126339287928720469613485514226753897870507418397501168357467026190672712841049045913644935300163296604954099365197743256237378609855670293155750668823300983895629380674712621784169314062622832030744178321582588728310568009901568063103124430855848657283385752006935628267842002110292444768865042028386382082571847159187958582802353480012054437458043502781429965985636165748290168232480886526886688474349682181975127166946099393387791622297384391889219714633010773243797039577286954465252601238395548079079701162554911481619171869133249062516023916188123966790993073947258623058446550140740191549803469156565584208267875701029267622935908376137515586603154221137979890219035040994989573407152739609362906678239832578005249283916911879562691693721942570738258462202351744141756393503175593343561706202208008132030032587355899854033760198189656175484214837797295361363575583848086062217379105065169468210059009663126969750495444342812387089891038012494145540073531075377436831049545100853125278487189264104556487644784314065893091877413950001181749519290916250783380141910339694812599863052870061789446475267444780009772734521540279132798716304695885156320480271031338710664347190412449062133552604828308547669959119410666266101401449766593223750668338902393152520715139633340540701489979709810066438169332781587229944727770600506684144357718533625384432334662865971620459133869645812409145461463741138357977784280400518597225850992420406366588663160381799856603082811684694666639272277432484077433738807379522165446000134533195422929932960814775626099975456784962712532503863793830235386154541212277383802742780004656174157134932029954646328102944079227362418203034368654422332999413231748107332136775751360265515978153099020307386596577332539624659589037806491702243194491064685858164503844121034714859717130926190981249107056070826413268088200356639295068215115226045345289954798763737548223183504058149796096701554569330250084743522865845371135224966684168391580547901356641518441211692761113719025467419774545019596985475892791248943806219995750818864231018483787824672700939053844173314367570897980628578928026567202708791768170822286364263578921498696245232779568358825178609296474891324413678253859619829243025076517396584653602177008936617544214628458357938499688314101752247068911961202923838021135637175114445088962872497124175450616836206622822328200007556575274209734218289820172423388569942903876210924254632313432573539537524259961214920430996434363442071241935652629154168897451643503142114526094073647300454255297582986100563503097173389343922487378254647517131974992639877460267997295377937890578520624465523200645635252598029929348517273601685762351467737076541194239388969360601017772909794671919264398324059384113615569659021021241681203609346094764198931262830308821750955616399076395427487105132314929390892252858529616185092441739106937062782537057067982287619682878386696936204643605376253385793246482171103069330030375657520297280279018391082173308280492819157576947678183122181349255338719929519006705688491348045930124658577470766474143888761687106693234329208829103924558181281584582172373398019401808923263175452209345094555416749818982125238067629009657165559337186189734988396413119353570002701878398519567349360880739398657238548339512811211100183531312756489172102006153421197920988160054586439322325377010920856078727723900315803514307699140216874771779482718954193462653642827781307080879373005705308905371716257802539581203552625687133227545691285492625848152844928464411991084309234362910509998373585134855124531834793944863180419229417697854184535384224747537791456692737125168018358448478665817270435586575542073368852216984301435772169727303772172799214898260073452203500542383367992068612586711352884288591175249109871573844331310100615248213404885203335394788658571583235117463076838789222544312782983407760841918849424642097482266699613011625817277750712588403947862097763642812516710603401086182259561841946570600099327905997796069934784824033590212284474925970169688458944927638649662911198293593689565384125748597190352052149015900030851074889791923215726044321253316307914596141033115337801038412778452073748674901280303967067143407586204390248215445940930960790570848661363387265898988345279563602882666443354699227001486353129817144469675835398381592367334653236721482715136141716257039898922519780454935552974231053315094089234027156792136733167972102963597756687609192870683657706099880604139538377679465853830684496227639313579301289295521067037920319371685244996878049980164061586658729675602223071434610520258334320306956327868443771956868547370355952578646339468796847266823917158299780498667408284637850964678871745960153861985691041103054770815520483961098914718558852626602405923689935981611422095214425934763103052086494743226461257488557617677495580484989120113977722952426931116106910114745377515329651527780106686664611496238644249892503323727035589939731946867394296462371549242828147636115249175520904512390986083381992177014831563387833038978375271174196563235767285890981472020069662716788626017267493182041362864942828799284385588022765433127997305795861163825022221451677852172853255520564685837839681522225171269997428356686877002112805424395196079203965742102570021431964362663335153653123058481996031393533492125199898960274517296683775372803657979768665079391434723051504978445119991374545674947373325816387987231422454944954667227037755817703076191134664061170063774881423169290486346201725572860805949451489926264215377332357996846432141529005629802502444452736183397617881225751041251947665429502236730751488441995870161062393008391499191647647376441050933771094440958765190233274103463122734493657158371202642729310772628248711491367278722200293204303048496089761150441084710776139919722131120901547428838019610199901061272047946214251428563211125388634281640955345333244605060939669615469543758732951633587019111734089846448969677315736841261581856337214047903953634662718691495198698150966880673848537808174804460248267544066442291770616674809834830290231203957339720567618636576672765521883821536994508469527561508509163147572881441670442307738231300095047113632600977549852352343707660590483896544766841781244127100144453185107286150956442515787811864369788950533918913188880591903380840205536953577032057217689006068138805459703566352677901550875731771098960654775514162977347125160590651635863781636622232283927043822367072802496681323223153238708557497609412402441390972673763313889075375174148547969539633596723540761665128168959307784185651344279761209044615190051021624830580430834769109324735814492026930386176382769752086862311197953645336602807921855423244835070381734317323660616354564036490801020517737712549245837131453051226980277609101244889780153370800671328785942710344397752297101524614256482597121552027478607138166325109887340757419572920583462380456758782453069106073606505776041193112773210630775106065050253820268655868829292456415144103574179929360343772224018233549277328876796230148447301003611322909945665953140601284287226242414162606917695784884027245629292647786928546425800167195002979404073998470147505666419347030984416487706553737293132196037095158371421207636660739211704482490688126895725057728080377451162126654166240312911417964106919234193379182917277848682024618912167268372299226868423831284773276587771064525023084515129704403433931892438866983827299811105368354111162667319184958790097235039141235131535055221892200948328883699615244660843827666934973975363829979399531569691364191387294585610052014231637249525570665122110847679510246348468566378060853892398473308600894756192658697971316126878108122926233853305665123141479000525834025318061440729535347384796530594453764823475718047156011636188428338731862261839293849760701177193189031385887745221647809860136031578115328766929142578626490057584682138310014449146659264322469697340591162575137214679845521668753258086388123964787392283337898932520177204976099278449705162438005289281562808593272684056354712305949032362615301152780055281429546323846840504625617137475463049271623873970625499150813716200737407565764413636376503154585874478620407125436920083157290744883107857731055116286582345176183763476020517330083573922132147086357241495078954816960353387508806409906343634044224607755385079509908685659908094758714045796242957142711640260468737615686643399506263675439872471240797300399347770460080673000184698456308038858393860692990472246563056620719647518287625381899056042039609803631655986847372866312212552931189436336851699011277579042536641049776260463288710577405027726942103980943117985138050386345468790994211315229125177169996605647480634715100345466326789064181612630921015744666484312318164247579927418409105602566963667130854746147310015491863379920070203372088501278107446750074793155755092386532380163999024928616704407402486933744773190098427311192553263435925515641004794927014294596309834678366848827796684071499037976785459293643289846639124024135996861611077910367321923488374528326746291947862718733980497073830248031263824576753649746747054210711694813476393646897983124248692720960972423008138458368678882107045177179471369666775708382000361854888263046381666921021749975012250272110461002119096931788041999170381772500512448773629384817854556506367551288320359647699874709161480549158742734015695685390543501653065058301669136697768177286181190621210068384386509305470970441903583502386859945271141484022521212123401401419546614606491163753041937429794514604677218978931227379572462147085628809154531917192704983474010256289917614151515415845432896307872446998493996691174813412868844059989852366987494224033725606144605599259525209453035065728598963182470320358891796668867988494284731840906803353572457457000340001805617602797387074176024849044707350745798978840392168633798434044625552406975576024792052223712792719996603237781123808057054391732365163994411392608672584510558778091046906862140670112714670457344264839963330148105906972901307659226295103446269623580230470420700851562810429480350085188147504382651362576157322018438387324351380486400405144910746453751691302335739224862861665945077317619617635173736968911647340956783530413000068420578962083395150119113990544086492933571727828683572723498200996151793792348088136506580007764642858419654642665535986738976041730681029308526717370899593484572140880424820433700227001628050075014905355670312330286901952312094125062738040859754198769044092806328282619651926709368613894687097908260077767540021175999140395825107976784616734274129848661804009738941713479001896633941356417103286402281701516788221729728469030920578809324189464366784912588023091222376707129753025214469858447462720446272170176282757031541942699974954875929382293368795822705893764991803942811328546404756728844997330178585487438234001286019186926708002996268408953872259604324347199205857305757575627771269219232151936284737278058938339014591828291747460195735882375118643705466740714244373734969662891361497271323601643678178340151429161975070000215316831073372732255057684001446003582353878515746196592427312036668500489073362746514565048672589261309066148967941739434479794759428082769652052626124102993633689899061589041937177133066811849381021150634534081424707614549312181788027673000695062812602106073676597268045215868631019349203553414667285706320329817389134524551010679970699374292541495341415828095598162637888718520902886977025689475777221489341076865241127951212865476490596983771396880457166937622691883727493649947071360046736116731540889651380342349409593979015471484672143686070262052326009965671287585986916286980877472261692069715774165643916310602425518758237474691198992736677802570402909173623503035323929627201795951457461945298895344428195348117820732687690150452294936372402769645538044689870368480464402693358146897741241170100408859301212734183868090073425114711254235420418945024759528991108759300482536752531828516454379928156863088587488282234133976984895630054165220974011347894420505270866851170144243713060641210966540787136681404544390316051426320671027829086798381820069661184264770014406971540789261469547899287429546573858562735390757750571080004071263354597316211174772598366620824455674674262162386655635673437464054172284718587533132535663179724143220019011073201584316435279434574067613558674512301198220602064677651542331151464171615651999646415147325114191375839861770367855075604590295686978918554464635872064672830080202970121087228166195022840961886642329269427714909801537406705770502510956287970296814047746308503619820047964961037978561196625220904567212876981013069312070608046927834631782871696184152805419811308131768083331732205974326117589964336035884837087507501933928734864107057004689129708923118887935759233283457861698197149144936613260006998247658870691934595065930246749183933199183068634179982096915427956322287092322256766312476494031972479503399978032637882529508197882013533314815599577972570493488733701078672696683266121981150920386970480510744994193128881713289246831912541064033352053033481785272696749751863857084628418451765707794348406191055783811965838104456211452701926917040076420232834837287010354593964442883766928658621596315901187420005344756449655263569144778568276703910071340185449839776528049594452073806394588922092561055759980917136992144155162296558132576369074855694767269458022833586008543976059090055693268222294770883380795811842966257851811999730587656351110494107528651466709337066383441951471315155303497443230755147290291605606740856040057479718948730530999743840881512216990478556776643131850239032310394243798652057574515782972033797905780703798323595361712710481054897534770209540020756405185525354749810603304655027392676550929111695531166763164677862850878557681448660575530615512830592685474362954379892292445183610421643787678951384098817120044036268119934056286888567138087332986492738986517891093583692829869485792136511573557851281657404741782719847965266752188108328931905103710064275633255568631985069229846564142527402300779448247499984508586469757857260862792208836326565403702836766743173822225047970515847649955811214326982049494472919480131997577649676426861826653605655556413991373087871886286212615680462926861414880827730084098648147488925456811432415323793450031844055572642141378313204442734769688761676231213529066856591334212496526477204285079841326109668723549247836359008797023634304660980764706370886568936735149273899334794606130685708322048201880723836521341490252720717949000479983393847779098108659581539078973108705563155365937031217078145292261593382187512005717185423847822851051496668438743444071793672232561242982539045362368383182050546587060930632802869700829461780676817890110402468653063735066102541770867572182199254340684833741529001014110732053227761967144799494402191480136688574246412614195550609091099718167823264000103800453202515311321634826934296384905507773140505476197703853623935551220512497588151047822302663421341947737960674709525207701768735529597350697676534060973621114184191557494726877136471848720126898379124018768392464248760084920326786140177628543335816583737689505222751385100905634530814455501396148073551797574640698195069168781899700317360128860362375378807465974756401639590044235809212207016409216638079469780557850922130874436490570966139599631385037613378871308573046457328608860996015185730648142280411327962613213302208900786793801020781200944984578942714577424237404606563643356416720429852506705756363958861503815597399056856462118968484149444012018423670973504432270376289856442414889476685273215127220182675761697477437497201980993285854882210176267834429562239179740127033488220983089677468229362281685352363142028142084459826070060116724946249887349330797132467898487038132320282481314149275105385461319626367197339061444620781004573485323479926145506883602615630164740412785641048309151802831414857711765448591389046085376884818428029382329592160094870208285720788466007957395554110670733665255490306673341259377092598997949580969776957205634867689893366973040078062539359423791079121592822065681620622745413785211235337013664449699918733908494417065927979637917802563652737138793860237441043036023869933525657311545006098903517762798092991664247842534922443095380776842375925064885030232278290623324591865814823860611200343189238398668156330622321933262361284742727774691643952325821770858665100601372807577539882103333189837519290390524772907954432081973578570088718017308053431917888696326038070047794511415334093412146799175765558363919561155172326834830501378673168573043584791300068195035858724828770779688915228301290501899501369355192506966014442837007754771548943375971757477010508091572889929753916021541539248451292348250273345876388299472063177969321785754316688534862361438306690527568680362030195023007822718279149684981396840685553180861551418284705634305500621811071357010373315626495468221373823563619265371521198554486805412045141128737894024562923649098301719984878967324749330355158073873827745939205699306800667230126608292248960220593698261323596839781392715542142797891353877702904167131665635353566920627813110274860442774430074738641456518221217348100077008678827347752234623218834403121849260344421368712347370762045882697507677310339267043569933891841503425282799442490755917705348888255935636456006331974911861239339976620494799208411307133678512327811647944410354981596742334853365460992783453737659633292567887532288626560883415471238219793637350416666730213330021287335220688006532106033662377617096642265342263316512091233696479510103369440787465333573576972212666597913115248468910071631657109859642651618658734164888898758833616554759473074951977885125117252459048190974473874583254788953922473153387625029476780412408904215478028874137292419208427450405713603835185240258075309503333146573266601411799015475857867850568615281378429473445318228086162787678200347835179256928695268037471586410401926100943505927059551481786950233884633358928816848470554338993051176401795512526733124247696496236187122899224070562204605493763459605753581900156006891355222142630131223513809093623590635714163871876657821931809402060643232668470690332692314170413079087174186687939592848550813614615934136333659294302239350796912091045869750310453203420457277421337371177793269132318203956423216607281090723707434847746780672687554650348292005286173542844038016829577637025138331066497247206907337158217034328395668034361011902083577567112868318109674682981014397315117169978796869960900722245040954033432962385627207458677072006340737597187123561463272105212586131271173503002105301545675231330853760437758037954291017140539850245980325784901011191240470558382688268476080166004323243811473015630603076336431826888227633313787495711910875371360030885353429252757995262136688139942326336215231674174693838302163359931186446090115784430288001708859190234853494530460648343728870241520225840924726984748184873510322963872942377998118825704961994626408560594247864078202707188873224964222941546821790911766174086749763365498873481045547643741625400191845937727483377688464431713507299996748279328484077833159415677231571818328379856148527525708958544262212759404087363708203896663470556229607019125658839894673893487891707771507132775509163394435048362665792561111551313050935451333788775814843782716382720915906708031779932459916911311780686193146352153869850131792493214323322113299783866862519992430816154310348801820781377810413716141566944563905673703277480145901024646688802003209721131374029084278977467430032367213250937392108860948747524261094187996762327059172762541801580754627204815215631524343766688739065439805668779188656930223864075227711259124514528368529626696441949531081042332782848105237141094295562896986688062101676568222393251145732910795032911898191554060716289919491215620604109226976792247034425249326105598317418539899353077655965356482805461081732801320353915093016751867982109406912777519708074269406646892632400353388933920030485628841698089104667680863990943655460205282974772994654050110074704104540076158386025795957100343920811162738786041424323059699388704158685000641550855736162126025005176691864451749010199334798853149246671969766416793914312475563647230316264578266637271090912431743743148250083136041562810095157548640007334006802658165848964316888502962137810552151916555075168985551380665399020657677766222810954078077526234061055022027405612105632571168832315823564579465913292076417646000330339059355541971696740635809425858336187883467421275465901563472930372829283692664328988922144823213843931575967609888633468745767261704965045629342470817447667716747629609312390937920717663110040000160780065972717286970191966297532805120486477865964071491768590831807603346015113444659072884747151976709397588317816390606357403602415437156040126699919654952050657944162854337473785179732076989194811183586417322255563853320553434121504763874923944404777463130632430458685947459369947164700680638802629115954752312841753854117683279385158037338373726561398203796540724258566064807422812596953876628969378708463693007953382775979294038668260383366196160614977030239546791114790450701644590434215936301008283466116003152574922963971659650941131984423530652015085686714729117115289225677006219542040753838676273062224424557377205419460550876433210645819899315587347929767476759957488055964470718456217711278094959666127965516811619944536474463184888084739351303495952794375375537354864591446058329399155828346424897729260251515200503755403487452766910537464926791946101825373263986638449520782275643354867025236765606482235495638169307297156813785845305273516414599092231502591789783286179319527297643707221446856286699145211321396878961080888645491939229378762509646283717880382324202358055556284397739325566708364160104706986175300053117282084944480178312581890393086411469895003664784664499141998648120470444957992748320130527673548995263458225813617236285779833021428334354593308945480107666719610997932892385719462219406811344271527390810784483172043709617812240658406162910804129525703459142078826112666081896627034335903180460520317840270095220188575788248080175115898967674736334773668713880384104145793954870254118756533036826102233649809987848117395659117843060233395662674719548551245748068892995991083258194836253244857713839579415846652678567225861049407237612902520682451682795926573049290205022516809617301109493434692200516650471823388046170304483292961793463916778105071997702733188072425871706353581777891674529703974435358252806224303126632109820467984004217782401526540721120582873102638117160690030070639036483705481920184734337591857569320912987105743475024875580888794470809632001680252380771094015374581959661322969320459776982972300167313032306897740180034164501832866171360509238972419279779923409468122511027534347563150613868306226978606311689326619118245674991068703311004838080550122633272872189652327806488848197787853868084599985523449110914869812963880443751818270227831298992394419115416424269890479209520024792326045818063014704502544400400483475761531792922018535603608834385293356177515080620166468444598469074835224609572880578233113105941952683238635573231185005392878711964089097949808529722778898768408546737126181007838929921769050726930266690948596527703804701686249757638522282415802963979242708781028955347400859904544079312929394806732644650280236524391659583018406319633358085720404511326636324017662086654602054388757033911021126132490846595402141135214059422809095637454432683081833305323548357269726305827319790997291573776805986770722566667836116781688173212313191466084807826318010598230685539060425152889659637608951619203134185696222514236538900498237064746364846830413140237935361514238340947883072670059596323026016064128808160675123755021006176813386453212437770756297338433495735837207243572116594849864855233133901734717787376953979309984732132726373300071784420639993379720697889299329998170249790480963673253411855762759439510587489275850389345462598034573898650008786882560826647579197280364779634976153331321311252263243195202310399901041320913221933623438941675605493503286404995883365535378212461576652409822210947017993137015627445576545576387501930928926643042873123117808808682336009225889234620511512795668624938913084665942637487024648144917930501794645581927531193781016619872399105138119996167702023826854066201405166465050334860766217137195054697775401299656033970822572423471062113671783594972502816229716979134947808687738720839494539504603261490273087512248091129220852588801063689672139752007827291096280665079317512540220281206907384888775324876111702189638096956145288943219428305851800888321134318903267237496252723067273274874372295512577108573536117075409830940749885632568941774080717789619883072468844008756917350624168211909098053788765101291910694016802889683504510400752374746318330518011861900853894297987909615159092336181663536895305750900091521018996283564333157803745031224197724805343495285026134126897015918085953625671662069646181539047009188876790117007488160740762498667444466430467814585463215556549348566247741370928350393000739354087244999464315043890144121985918443873983313627302680474923498067458497460129546473267989035023945596147438724033384270038185226491243895373368936830870138549939637160795500250979800380964189102396956184591190449386681249640591249494893536722967844758202446248670353145767462446326218450003097759264281936357874741145398712072769089398203050460248961491772658377938889422963922042279816661481176617716400547922126738809734384460857920475100038151121442313725076478146590709055530401351819675138296321948378276572689594409508408828082929453502019707905507389548366108624063918893355062988032650099460930880819167766253062885274082595450198131237750581549132837451618818463938748220813846513215126577800781341614595921294908877534956287286681232671355555078597377287366379994698042008791106904731702780329009176327894796915380603460791173080550381409836467848268003402731963628596422364201484175344995396940574181763127832923112502694784789121943559143785629351629759094951200999600448457662204410904551855013868153527018312966915788369621552526062767185923594859306791726806783534234431984049800651188923332015122549149183929232637388621723280838114960695744375336940609824844975727851476226710642914763969636010920269167174559031801708623047571836492654680752716217457466322899699880512258982650423792588438102133474033442400679459112650878994139043290825081380037256085225128120277617259637793740229840076577581055690456227827992074957493380675044501615194890218053472155309992807455740752926212513373905313086469957658975020878163153103012293495008811455129960875130231008225706383918291681828955793834477945325712227838849304419062377841469817454779255717969686834371907548673517301984437438678158217584925395714199383204057441804268204725897835014051534341815191725335067118213109105254981631797107169895493169109714258857105616967144596237216418064256337729098427105004629462376754699992958976204295972424503211210012625944527775813709885320150914369244526223670573560520988091979244394055476046297350611600792464742020155698314087714236051601527829960605298972412058786529611609777808501083548416665989221063341606613543240453021529807184579049974076370201466050094536815530344285024637526170131120526205649505648931945160730956478935655955791183554330352211720065954299783339110579694626904451885153007371972269376736780186145676686495412790752595106739175381045026949354845210737839983499457574888636904151862674900565301163825422671376214326970214488529679676230540472832188045885449357813744909602357638537990686775173737824231439521680047729885889848333593616945615263746750533548345013153434476521325464932220820309586024272123932173674698020710908017432146966855176215164417789260636578734319477901628015577983108196116227251826283262135384830106667359609495203312348347870670236029314142442352439950632052046037153963176669495020397486108446553296402869432502413423578197622839946249311661841760073301971956458826021309275006016184099614615964582218911394739837396067156721250505748698070926465710025184979840930118829149700922193596535662650900273932518508041656397849487624490206846475690445635520642416368457306974037395088723437615341196914542272456689372228863434131684085996829654017833636968591517377333198449720794136026089235373131074355102039905236073130592751121113834801911343049186620853683552823892907089767652817544857850582316630316473218230824087215713559226112719581075172039746489760999320731402291784965261516042103480046242769232164544947446980181807507305037079089554099384450659871441325786732086638000842878291837957216420843202612884186459183563880985159153234868507387227428946718721779632465837424305456015311462501046047258500450997804486736696168129264622662062655406102838283862791826906357326081647686370369473709181925565953709422595671237500696905184407327997563224022175540578156482836292697035600466339871162972807263035723748450542111419876625058062642819231395804522605368496710512619663092791349237007958594139836635387810902797107257649863689288589960254433600365873776400184644192086472695420349625908241599659041867442274079144079489604098805112801327407116020559886722880842183285090444207022100400256842206978283310526925769902718906826193285847716414415216218640541741439439021191931790909418759987386482902727608435914062165465298768404265618786397063509855194709253972260465404654604060664451794745483469883405003610361059775692200142670246320076555614533984654510206505813446345974532887597098649451681434183306440777317137871842670820226362721805777288837910931213399977897916777783480845672912243008691407175724157816936587247606106690372389100575508876377302680676410764154343995038993573722214218409240126685062141969858259702061592702732434925811862399483404319743097591185454084799697142748255385154288980632633190043121110422954679872148239045369819809159368438428928736377787258794528975078205960676795786760699400360935955130992708042419650955689355666144218666004830980287954835571298220552945099276401303235045523304600061316656752574891675586951232775560000172377697036609350020741793642778211028229362351715442946699981723728673978639902677674110989219059412363102675143880711235075418451095836753651425767215133539467742624137186921076689910320719062219466642545117198784963999239807415305425267457479350715480565358871350661162759145352903017290761843670584351050553716063156414609559471036834511151640166656111022707369653678454983684790286213571826689508331523158852773912636967612773962541064194238912319376140366653973991545772562192659952056133746538899036393616960899863901140008437371339323889238159423602596378957218834524522351941580379881566832515829742728132092591106426145240853298435816912490689271006094286173724224371163027657601150655262543527281190860976098489874305441113122565264446655510894654524365867356772635956311970486479131223489018224426316461651446868722996088766495944816343798162140513089228345707025556411746242383955959899353901124312037209880843302661852425495408798881429136815989190371584799149478225342127457693163363629039318642599261093974744881812324580394194114985802936106286320129265954637755905174226573286748636533002878836354102364227356107051643189817482161197755946083367657264077121582720007942831143355301989610413185792064673544112208774614294183067514006626131850394965273599711333733741753908528452023556671780928731892719794522134792001495428925635325103241420609183242922751205490227416861976217253392283012496409691896004246903152738807106582806130877787351064639868716211058357185137874114031323731912449166107528821251882354926540863188786643249575114691369746492582287936948768696685742454755722580360556400267238167303243459107396347568566879402727669818409927653155172648050110951377011469173618220572704920520597939066861553524811233708186294211408008439469622441036319796744728827942730539423184913042920335230433303697812777936958912064185631680297836786204838022126577228310484706819002622610114562137781999957762794440281891406728368959478397412699124551857414101051685966604138472836041295011429455970724069809614999261252788065652732370364127465300377356924711671431858456400494873276108529371533508146806827376480628076875401071424397425765747285846062453401046389705629296785959117530396068790642761000858174052386269521756785335653611669754090547455974797950154556112734807284989533247074489795632637198582124645642466617955111558700059245868915530115316046050182407156058185359204089530914398043121213277082809672523048282208136541168931898424397717296456008923361753480628037378261322413334869463446871462155346404768264428734123216942476539487364847487460595945757552030939110864726861068109263640882352089049359055611140132704124793577650992274877231951476784720784323898688550115137934622700331198526405457236548994771430468078836183229834379617684144293867854344554157829652457404398804265022985263929342956885965358247275340647369526163053899051094920170308850977474000473221226930585153341669679810901703228645818361008220492264705310937470857042748877648610317642988015167462988592096852100198079122448391206421573126010528785134960551153741553496842484478031215011900840287938350147191690788569864106586528074892894279731690507429390059121069673334015420850620899734867395029977882038254196822470672571585400749429758488054729247346130090041031084277531385500457256340020823001939709045991512676078963580169650174194162700866287151193021183782969605638792612065798161694509864110875947000455965373355132502919791758724782000887977735625197336927551096706475380537478600351681989970863932596072888605927309540517971262448737881066705151963906404976053706275241961473242166907400732436144761535681222819330769677272075269608027489968916878536515128576373230476649856986091601796230666181006840562094267472899890207842619474628379862632128131637068600789588547124776346277304109917152609983895291452078738636921709238386532065505634223410685397518026248066934652408862161570535487327072516419964356398166240388869582597261828225593363622817576658826257614196250537454523032419007388394301932544023182000238994316935663442116409083797975628192107356868643389349718876023187664481943815218964659061870715380100556085887220012697621483219495446303056714631537038268271995428375599025680011979750400829461412109903637800048882580527522772656528910689986394853178314594552890048390739364890858336133285196658278591258771722344553631129739378306674156625661568027189025992614070284264325342918426811710422628268858780574181554316919832686419262598942169689244524220303667935543566262694590151656434182367720398798342396541321253258479634121037501029832009999281484053967531635462691294826425267543377140583482402645405659543290821417001045123511840879522343910177589953855012862980962479020381439051312942991853020745072268270154975987789636236754172536684601387522065306842750389554210495492239344218109167875676047009317945908012463420608420225197784454426291189305078263264139143119161551833186427236384140339990480198468031968642939830869199311900590675441083082567469310008084856255523994111037037001992776879540136286723601617278407163950389206951692321645832901871361627078119682956225156403735090799421361219593409670550556788070447052549548518117456530973950684165999465437059049707923775387593650023252112967919999026709258126375302885181042471351577774074441632907915241198251599608672163180614977000113432283846962872526052708347235788926183711519123516454280840137229634144592186337628092446320653871730354234966057211456830986289694049398591095147378175759081164615994721780205419983234324002817410138075380080150762872476979393535994245354429328140209391694825824400152591966800772141446599686458919432720325142173677918741802305126430325884520484850124885620623462381001008133978245076178445314695650251048898699805568803407807108800544991283971966614558908249865686781792304114150774310790260511365560791583018179053581823678394319797979955405534668444134249903761277623121307121503205963844851596584587698733782761999811375871014527396859604733367846679449355370692759668641053522025253143579068960516945371415155114006619888477667497481420819524257247634100999681410392974404431036025846061588585660472815475128527296531035955119571645682475221913497139774028588512829153164759285983962447185118287562473882097222059019354905206705033694232161052107484810011669550743066708749080581333733003526159861040655110889033705223499817319104663571300863920225651752407350048482299469247651631846917453319051120679966845854269790384645231502488061978021248440235460125708763859501784498223893430345429385996173814654193215600582673796774658862103629240141067058157427483115523427910633777702428428091240271484868337671575270434269559120439002072849727765522807945373826381558760975210062275488513189867579077537004748207099083465466499483933306024723167393387902555795795498459648408748636538971071853326682802113651126318231728615213562044120192832627603711787241313369250783852330588745119028612011006385188716421751496920031792637462564542085980230945931247837929648342245777610210201767469083156734059392335598071460586889516004135306303430970771289002483754164243489088757289733830552366865362655479156065988384457151897399834998156015447337299634053602089436584155028803595873310273905964760492884552356576048656162206993057516650019094974253142971236933357338864361330247963386625392983150469110244052340154497230998214867454294255414262347502353385592999908882444774055483722571927170849097154105093107125420420444796464985264539848252817194996837412553020405138878227074280927412351887456665202388775420716706920227208191755914513752653894196883345868576042482802467898630404779900584230775616543226235710267206822858334111179269769550300582679402060895551297834014538096078710321297804668707540625391342664288621151431836715106069436730340558671585971625879290964930388741481514794589567307439989985038730043263034104720557352107126715717390886988574489652994052812618544445627162634472306838334582466054498236649692993050873419649927544206827492258958568275014948351897687993676642911323441171658489543181901550057086096948056900789426876170766467088922131197571325459108213560949119454740901335882038968844757237546783310191258905278473784318456464037028684734932970046732245512937959230131622670940965186711680556104404367635793559375205644150076454868669525516181562933855914993178201431991435598774165885112418030537216400105439029186066515100158884758154031484211121789705665442370336118992124314647530537346545066002797224951956352962148613818591949937694016412516885602063522383177147635867695178101416265734684253429902747083736323195432915893687229467923162103694678215570114680188829688896999440026771602109348723695738654850210188529417947304816178689503462291256251959426996671494732010059933406656568417469161531724757013581844975872124519535417664822155042412621522057924399536575853421385002290622417268602131476563415122738696749702346891514498051016050025294175341637391727105712830989988328952727320512277035951737911912278553003454078930518992513175932483614189120613667732574776365989735601142139513827092739414889839226577505842439204760187171951831827972093749261133205221446584261771247358054487548207211478658267583936066367060924140859067090345989797343482778022778472056539554988445236776918179329225146394849733891544968551296860232312616113074500133874335244750673457042875611029440671664413222604762295780872164668297906773111059657695649020175796844227204106009158948826667043921772690177221794966482442035894838711119620362052411025835005549839847299227092248949896944513530437831874795364828875816808039742972193138682630643804610826441536027254787949093309345249557922149532385504830377984462879811778512159001559346757202314631158634175842435849673123333259934102659620644971061413570885920945126932470575579660608467184999325585742230756502949147347418561293489066260996460926920252384186627597390879724073927989584935073238785797185784315318518770155507534926682688300349944976597684660765236625155574426617141445947090239609685173421964567172942424883058144612945118159749280412533349623680978268248809205897925573628361460323886413369776246795787315533045110584366491701286104397044483320379955768416160846737229534366269352070399573299129380392431292228386891668159014231532040568593867206822999183575170640443125242496295138647733455422389533620650695368598434420572794817133966099953196240055711374104209043722285401550813248767855180700518163565078577209396304974903593085288960050908383962791537375907973141781666622771727095583796940694219511384105363014991054112251611816635491654087524906210726130197990802881592282617781875933264199274530756790222634879661293134933319887501503601714277427271033431124539938616013893133849431515638221398204097815449350127553920880724148973441434456162639642769919213738590775724031827547547965575228839629739264395572390400226537754911745089371692457727787627769475908005979431860800280967276306121236667134188311083754483685249613917592623171634662267376007569979755430992858232090739515174457337473555854649096706084472871018527515958175714324427340513258372059089764066844455715445325791929181816583058709764201414596143137298943763316871878106323665787692944106498209769808666933807276044344831078788851784473290893404883856611344840624288347036808197747410699295042446252438690248515735482638612698443362760142722907737974477887370207242935022251037854890396717186900046666629707325451521420629727622084686423808807130518877892619391779312554000989676493160256502409179603363094353970757540558278538552341612897660915806071464284501706662199317870155367578554315663780064184699916274026707468733132513373123321720097526325425350758520282789540414767086233743369577969799075597798777223558847888633678896404405059619963055912950629821021075161544062456450662448210581492799727225529750192793090362439998346183816732347063306543365643184821528662515223678233555130848021188897095047530076030257819725717321557514326628095143541346610231551545634450382558912387848890971879071889240684465054938612683211959135735845315488642567897453257040350200905061023057795350668301727275386001643558830580000054344398009408796382668102368787521918152692092965171869995073724199183864163493177041910540364798203769359677465872198824789257661530399258051905139558847782233390354526500483588433041822027048377708099876247074492645436609758995573204845597537655833064429102280967952402986821734428545458879905468094929980536554066008515682714022017993554895070289431964969295840952856399631248542731992343866875058422364014705677436959710195567356620375332772460093246666304626705493154422440992260203552373553562549776776986359630336322144677034783562405897044614834512536639119659533494373511245550527096273824528280285973282354260806415164530876984752337530019563728275244361586788158391348452650045983172277832167254948545986986633620579421996879241083316436142034181569446468086011999694062051764074863713976958369022055813164936735451604526222199654457247313654486656274531896843155134272884683153662731362830944763254726902280326752374726686412388400924777123096636983367458199282368744811674137655363474694138495873858017329803781892408714135874269782461918100238773286015461013559355881504094055625057776882160631113653341587405937736453361365583569625037959099326299192055810911069216054107297156182536954132610697734803165573013118212018986128236921722395572516842857287603894308145838305122047460556478015434871487640439442317926147535538522177806698258404704972737293014587979088238623962849873659468033200659356917522156534968458265469300018831728953104472474239726887345628516937555242319937990035154726920789499583856773204695106172514997045417092970336701124777511623104804842693484264983090436380872670637944084096361918631491281819013210338917364750483612134463743920000906904159715051477015169581471398042761614563803295916584614939966374472665487063851166023223842390138295329536714901887473561813636211509339331864363850878075429766093804898148040269816049241636368734082520066774924132165546449378829559156316072246466066898098606408457403622681456462909651381434821701202472451308971151615394372202597472647346587409646559166193764016757099746063712867341544478992759317840476077839911243513120987315215622359826172859867953789617873385691923800478878328473378495557363764293233169456444663439549156761826439222866920180349025915586676165857653161912525196423843125063652998783315151253510944286680342748174249655566386210127901785551589000403807083222357345279790362618362486478671818053959319886143777594775494820271439352295856487633224152993414090265921178302835762987322832468122339958495205360867625786511814063835118569440150792021499434777806140465810444101638150562708222652473835923634312283150490043046973037301824683256029366265536477796018436110630690148479570444158445092800919082983833585303473611792824723791357437517011450961743605451591704568589506491226343715200695232320771626369670198088158397582659031271477963985616297254861387296360067478172636331698562457944248964687987849287267159051693211755879487698939255113747928306473836679315543512791906301553835863031623243634615147569629545422167588249097843767416303957830410993419836819696173060027252710057181485602728490422611401870166734147406861556198004406420262189067081984623769099819355448030478676059235045642118229522464195702017202368001563894478530750493803780232548321806078719331293125929006463892903828463758712846932792219693345753940395881601088901083065966463233548865461867279846458243374833869668238207616373262682822263607902951498414543261668724969966269331113162905418077849787253411624675709418309368647219488852496838632801599743595540678736287265796848790826048958432446629468437824166720220220436828086493378798583614144767876926153177629334878996767828465314599708165353362149970447991920676295947727998506759901036943690820803023837676457477521701562428741225115798420998393722589683467137026106068640089900708411516542420281747846612584791039023645389238131660808343164102493739052197157764805272423147491599002522207526840950544106600219079705065803792703024881940659074743439437791047534791551021288208368399031872457557910546662598687046465607208783585311051930645854356849396635754798078116044140031292482640284118880503437110349132790180726211860630238149910750849513480492771117554161598702858606122284367306635093204952988499806089079024105125698080574714982627309347440463719480359142263861598917331040050585022079659151481324296786505605976643372134297620367400042028146179424238197229268683546088068526488628877320773706378682987889298909018711761888210031038064792447610412045647737752784400191506679294393872909519734663609817189471383160284379147034612388619317049768601219795447487434343884113388629052961400567391301913995608413966360641072785972491817634054253962469763177098061988735631036214480732682589559514970185764342538364792679589210808635724684230615910008253996545701579598717416253290216062006364289157878410613901908493041100207981791399316116452504809331520456339936312873922172226031712554191533147204154278790457306368508867174068777585932817288405370887635879831487306221814950329211138239569664370848752677474329469793472332964006094245651956105571187700384352841429234663730730246344357442295778493959185880453850038147174114173747856635597364169701668486309703409174582055065901033356241418192236984394610297879468926209373071094045269475511533221485503163620500556173390437097042261396425365394262996450641128336982481971081523718841886265123343230112418301262818548876259117905895584968990549598839175575825128521846238912576343550118300468481401590130027177082480337822167768651705110748649487788991499334447115106503732743291732973930267363924595844364525632556763556899193769247382969741666435377866252485429559826397067860071747130612777442071718749475105379130517745416848409366084640378927432330477445817999184810328705005588523731726406024246378442456794300394041913958321535829719174859281990178748923678246344743515969437188911874683932974512961047947231199663669687037341250195400379958909614936811813845469180920667851443174483291482463980986578928020183649104852458748509758075675188439410722084174751993502330880065162818514464075872163297502119489622216721727780793382080687558127923960319670047300438235905977662988928260125225400961873174531617839541264872363983343036603730382410493126838904250467368552952690359701525101603529194788946231478213422000098359220550215040388595918666748386859051438487352085039884654346847957389719152359720315032197311738908969918985505459432505535907406743037203456981706934987194685529603941564039505515245642757921860417933724230409059936711735989514304155678579695439205326320286937626621110687822768251807780661176893871769901312587931883924842041269276506686416829971975389856825989282480839912493262052816026007917519412666254381280670288221593048506078567269797906450983705339646433665243983445409812851502904953956457521417617633027136138865275656994777032152507914245186791699561321164916191047999931758669555622799237394888300135996570207162183582586649915133652568019708026792699093863023475629892313940989544249193506157610208709775301372973006740725449864314287584928661082140619876924898338411132821282139378892408403440471466076469877183110292258254609613521143197183684507695623419885388493813965274864639495157874314585216133554320568797377842990090865446389258888918854242951181489406263379871280095621212823697127164189118547685882501573644595680751571411504260424458235602949571205312190904286147532760467038238410554140931477230679470437800144495101467687517046116187765837460400459888944496823431450783276386287064325060570504968182090579755891387178833587427601995541090820287209310327070388456886937002904111630294944516829924171118441535161034497923459272928817909954538397498625946801239511310041486002239320676365206954930237460549539235366155610901869670805482559050643830726414985191956212754604321128489740241943786880156584746723320605200813908718187075415926078790383776904006879475752416139904424990947989610398892738032711442880024538336733309459569725089382762744094875573269565231177388074517512096608700818700249863989695641019879554436925250063048022592022509778511548919896970362231165087235484643109492969194343645471675863434841243990256914969331361009249999361946733103423764933666661912729737860869360781361622234619627518335072943331443118017458583192554868423628733280635878362343838272476928425309265417460389835427573704542354682909906303983060070309025988336397481785954704456224001762323201158082778929795123890131806918726165864196423849462266731537745885692202181950955273302300782416156579288473233751222372575855122315600358048913080760191337812309600334449793597686862892214514669053051139839247861455515334432179577964816946600080755393575169536719487862531060974667392650681903116106426431121401449668535961268084956775814303331664978494974751585491004532076517013543294942354942965814658389495169462321169793623008832910340916327172414143217165659522212673205112724253365852461647255879576210463630271001310964551015474102384921795414074616635261334754421068660330167023599698144203423753180974194608511161688377225943992532189042570778508704005857512390413792973013860113757086548757421406719455173150098372136767625539811409838419044165117710131133147504705305900905813462029210631598574023247878554396435101492319788460825599072437679608551783490562984799873144087211121141746340789193481252955589749434675204708427864815049932769289528789682611340729928583602343425454553513306273909161307729040646910835403486213202690096031333046591823649077665340726153933323666280884962622325680351720471660477030595747498230358728179315320689590145538266040210343789699484964839166405959431847753031090026974194629007421517477184340375816278064767655817712143750314926150812556724581891925010470754384337090590968633885877604259146781223254197467409157547700784175926043362050896866255609337327144970894946438597217622731721459609809923967255285155882409831019836704230660220826200607622427038995267863510564224668725154701747721496160278939583623275123178433818655814407770309660883941132822233794213142981246518177124438808416000100992942854952656724803964009717796735181720993800770737151060923951879234370297732874699159597607293340723088821833953851927969279985769297434494976587851303440455538735879246304133477901939839188743863567526767549245499194838928542852036017573885855961579913778099295081077973115492392125331656682236276840627985603171759543774569701204684702535967135164480442160992463139757684266666911002099258499197300390523043167599591343679544183679928948097502010610770759729332700747586813496176235378163967324493513600847535047931189256939772179911706381642654212870891241443819919324756273538634154358426102739629032929811146594915029688591144118209153835405880855847036951107242250364269180635662375009609901717841619027859269509686983709068525108929275221594874755403954335702015929313091678283026638146466576147946125529879199524882775339360473059376566552261106159107127321951947101330366275662577451678585813403495104703641570431542350112802716713548385834234359853256705491337869702838622348880974620382331357311755696234021869244593089458874680124689435093870776298160618436663394792184482565960873277959572878497176913660625012339625244957799006045907673409730386346032150792715560574019512474944937855441913806735813793299995803015322807564057764564508797388965835399145561326725254719960483999734735886172671088804721321505974576733018575370520836567446415392697596600793880023221457222797829039367664290411675040599412477875568242656253642971801760631039860860514946821174461264943251359295704307200582143525155968976940862354885011944838019067194269699813636986227755418192965429544983065930835164630444999223463372366095016428807232964245551001428170310242584419080368149193792384532037511605300147582552019695752091397776489867644056354214759944864796477262835990108660533684581310998758634524753386213606408090968803762762739834208392138961355327542039313617749817163868731405345852398145642083726763050769003280479294918428803177083776561534011167680614860035929492605170895539957737858511724979051462499672822355388717518774799795353447371646433284512746190548721451802491804149772141589794742483572147274078161566101411897247031095855173216215411377004710070003624200002328432194947119932678925539485759987239201262898868531112361837824905184748612750473914403630966258610303144023789778333057747086967629887105151241763499280660086947343460538535432784233561128067302335784187354550938256260011125829564371098185152502312270233109415085449779377494374946900446478821784976617713011038781748407191188934149349884544152035877065531702469287594180761572390960314994353769182185070573833794074504978254275249014992357216256818702195302584035336584178987493011513725413892778438197130959068094718367895995594503284605401571123863723344462904293927235517029358002385324894093542964643889169014358211279090480968352562117261644354635410197655029777595252989447529253095700295380502517993125383686635734263012367239658910839381864532303451934062280040575264777438842935060931590355792970250983744503949643359538475336942183687327833117242940187413588755486061398960201194551027508833088049953012528903166521632458360978348646632671065363599314553785256836637540326675202973155674156321728175223368345534437687313551558290014759056282155700200423870183797502437373410443758224870929286370948045830912954176932193650910458371255362748068983036013232183389489027005661989468169359834065563558804033340860946709841556413418795990259690014834579966833972216694590943143677266589478829092712903619946146677802371373265502664383816485450046593916531969257335069444288774927238450898417960203233987941645535443854917367506232858534708909005869457582771854883751084463091055482736384314948386240830554125857075197903848751194533629297947953706982435015960298282443779081903077003315251720829678885279426957906518553835446122249917750205816973487862294294490164711551479035000559186916679607802213872027528086621044281543208628370077918808741811475355859675689397361316725233092589985656259309103827591319656351172873339146034727223037447821937392215752098643700789608225492939508930985790806918631352681641889325991715561579370694259819601691045193871305716700538339399499305616320892184002262273408021306090555552803379188900216592325891245838796118425960157536447887802518055281020784425422340907340360087589276018812502020911385190933696315869537705198074657233895328624680880302880310476492504744928860316911404326517845250466862709770579043395204543023517306713391940858844677140690374010388222712252936006282120880330932672287623760782611706811531901804050477505155358072299138373313345206343741420591386954757364376301778750384667159903945124633305334420424415802880782512058279311838915887537126727706020304383567649772098678320126325458993395492198783773290462310731157744950001921825432277391506334164151938073143258695466800052373684379653230644424478560945585041589608813684700857722874875494795056694758919119075676011868730416733878778693159533654649442087750056783231985562581155510229142444558174878962615484768603220172412445275728033242071846679946955370060689245997201350753960272141139099100873561795022313306099847312140301230327572846730110402397158954079307324757165007587359955641094725251174249730319480651894599882346168562182798002444660580858477967886121769526991125587131773286949964497580124466021145200667913665807244668067999375211125429049366460409611438233838131287483832903607146184205519854135325815270143065910666251093654201658028497243178562160060076866022149560628087220296431980412708256858162189219595861113391566129879623433448361741026788642421573763197314616217807612731729894236726302134742794504380457251147804055728090522501425478100366874998692823351760310584458909538365609720463534383253581107029141662462924068013635233304148675643501550935442556858246796329622656290515691371961123733237761810141755894985546339633586199317295180690200206370467791906138746138660157001083182021987528834850701659684646935878256431630770046948906989356807392527031836872521383693811119342839228759562244315762031906082124871221883608840382311788391064335717705569288216286390295410108539881416371832694764392810993252140281539868208183188125309441940760189571909090387761650649663327316611191705446029239412233363855053682318170202124827469070893142112933880913445256299318685404536489726140200730909254425557209919129333959442649908776275761112438004791032182512707360395375391783416007802334634208467523018919404320947588923716370350635558487585546522369768801117087533887920885679978258829308745594514341020749310336000270764306279467038512375404602679990622314795884598275043568500630787306582658921003839549255545057958596472962238843079462822985228620972048558218918648703471094323910955450903125826100505707028301500572018691220705874211305096065171792594020184370085999143723567230677300702363696193406045239147301995895450324947172500873738174293069274142489071828266892180640432992119024438693138482626924422837615951537364295146222254985791514442081813799186145584559243189274834699155458097159060092612022093021387850712132009477951551769478760845901861843558022963828502929383598818535339453235574362155823382543100894481163838743912217400899967855297839347553665472086922151672315104403893088175560192167395354206692476309628253066024035855487727097054393977893983580250234386860714891844087476358144419449251409504848031741351187427618224920690675087957294965066080395369448752704219067006094539447373531043233973285617653445007119012918044828680039463576560371184832520152570532944578260424145997345482069658641816243827700690619925751234866426771666926775492014768399543392191688584402380410516442289835487924463580688405929984098627643967662455735028937749883963406368377205162637607828334357641689199653278662378556845034571344318756078039033782613153902495892622017371557787204261369752166162490171987943394450513778720022594303698159843962956645470265340227790373254953120862617266814056438603531904403393994046481173549233230695470434814150033280838680974662740212776551021976223278055134150656085494717642305048422618628813459604307260612466166573166500876969987739593813397532702042179215014638596407942014650364385510853830422638153877254287081603147678688924403939604532355503887135267588617138851653536858859182616595119134077241171994648403358944894979138338219412660533258879752333829691052917325902218048189282802407640083065771566702708409779938312058090777629139240373519738903493786472511032111377042176855703030546966457485279499288067656173742508097679953845796820105907922097229900698068801710293450620764475225397111274345039240778851270710319966178756541695779842954898095281504316300493411067616767333478274818977462070313605816268982918449852546988186357988800796225560417705202171524161616432179079073654424914992621829223688886147959692684852876860909078539977352384944238905897617198466539750817364131886449553568495673935788866909661663788940960337960076119589584027466443799893190466202385171963154526676147782711403360712104475214964603840350600446846348144544914330794720181415408948946858531127466448589597528799071135888627842774700556703603721204715348283531749401962369968580617899019292668558289217289216199090655522656558665794224401370434491837256228723748649225443824650970542015720061478088280520302706005216310406525096877851392189013271343267845079011573600785504894493393500808129117169958455447486290467803209662142406160249172460128654537772426844642933265740546094395017315592023719008186635591550382080467876281614316704371987701911115866025787308841550413238443142700203569923200117696696819596320776110610056827054774867045365784140205757856844219881587491512803197858868502700502759812932396389870690912110837232471769141201806323129714771235882631057614940402406082834895039085613374420942238278708137459836953591949494369346348806375761200814387943064599577282473089484926211460570198558658890311968544049547434086554846858447551526208803284414670975539285072218321731640984416913893637839362549212339020486134828174533567812159160459439048142591223430031509329623888283965741777711476280795950444239691994660437488648194825344998457642146468799275795755367227802809323781669170635617079511658343395564743741038328140231080428408990828539704774718606509786310446967618763898864448827289086905651808716319924335268148166008780827623341687747548022416309296718861404013463172894375837839656745218196042803029323611267273359256266447308785911074552431376383146075442455876627211534594871923956027286891187761711034372070641545984104236391945946171839277378126671830471697289451394330194026898280722758401292279536477190383234245268086260925386216887299574469295912683905118525423348504242456645219392514709543361090350699837387441313611297348353888883955634946216602488476340111578350113143260701261171719088852196711274718916613908058051841435096279377351492877385543253512155478696713741716953216567921463460764771321352734117211548329150926852930159518179772658265516080306839160351838104417440310508049281286334590154726311173983748160313094492984891595565320965640170850224987275231857345251422448928560974772265735756376673886692137595247756983143927206751402554511245785573677973403195843126261290933006464016158868664489102264455599583165239549220409382407872989893240482763460810705076968742086371171221247415037452053123659449320093360651477634365574585117432799118241288541045673420241256452207459524548959368666371996888178835953123946102017663211571404137630227450248370285789694148524327611038257112077568922890210709441936616306201177906911864233077434933224937574698681238147118957963191512539493794598809474499550894255485422344080224691774404060673781056746908708529584186260287927959345203507682896131683928694229514825425371346439786492837877553258713209952166722838755678371628971761418777836438199269723227015069960144199933058996907210630227381564655090285195884102041577901475071218889570258107922897855181167272589151815219002187141984480157098498719950247510741537069782506440703901564796015224262359324867341589342549513288096529365781431635142238300705163711103923157532505121336320800800092350805112139609436705888343338938920079083140608145386892857107989378441147123447822481097230868877027770248938335865892596235722644002885782601915155308024281868129104318180021372566582511657996064628415072686737503360374063032080752875013094441000003810797422292023053808713936948397688900931320986124140122357151271420681615142388221550003902032868355363951916429586459944871317456875532303761685330718455881575709147998475291109071620366198361875725298787603029956939157684422273473177241500222315831081901393902360126378869168561925438537579332581845130847913781164236267191145804948996015358205075763186244583815082822158830511042971042203308585797911999949598018105280360169241987520561872673744262920993705900838114094231531631474089638805579491713014765665766425912302917232922962491397740834710669237619317543636045540871231835401645590514627742275060370654427631990146250250638427501050732429976402830366042448266027508606459136628996793272731510668012262548994656957420048070724991279077964792697535323739845944971532090922185952707579812350241499078033158739077074631489723228843531135309340871334802146975616082783896733249782528749802933459600050615356089280527067720152744677981022377135889697826060860821534965818783807389154113959740732717504065022933667181862863375613442492897575210911202909656812395275154940470236728059398259218283927052641536319787208303957033734376495626477233404206402026552218768736631619739678446105739289773100821797357487018991916324779182529019104533380990240787097500176051611014198771257144579080463830675714456105980994976418634380164613155521830622197821676516298851367265251842765060547090125355033980159983167044213878219977976404896561848375992426861777371512153243958295071841070632172372919061159363785653383147889475425044497542913266682051685190583530186985002520276317207659116808633320074070604704529088134892030414172185713434270901287105299486898167666212128203584540668439241193549523388156490615771799224216895027025972894399319576411592128647507398778475721267788528950949229206514279458986738848754983137755027982592851398004973258194147733648547474894501400282205936745902081648324740479444022239456158813660300176484095184329523331079511837672550957960203873534654785641590855541907441488013721844842240574231671335070585642321727342516656157921540423671743465754072035922939016734705620304259545937563547351925935506872676078826674948381305657607332978306604139669598833136217329530011817408433525196411285444771262599596617254707131882012207128166379429940383817539077414950158272201964523810577455922387219511800670642466886594720531421410100784434006017722339870043285650664660802730708293605887658421001784790004641049343640226635591038773647921797595332063349717190116644865354501999724584789217113064860892767797189372612128314824694732218738450176789652847455890898834483637062844129020741871229833389176132259839196090397592972464664470632105993063699031014830457493206948450195901725235081351079811307953388842631535143727724498793424939630451211089805563526637545784451722387437252317112088680125861814409571536580275572231905458163569433044491463670247483146777369451978886916728061663839292066680776594900920490363224074532870412896017615656521055521404262397790360801924846336191655583548050877642506336645002455638819288795238658962444840265308895571197361192144635315161391741173139292819609996969541880533247002814811632678374509928708235470855563203550391797594886482544172884790091419182055922747238387265581737130887027658781752183993816673185367654776610823019882076885501551329390161676404878413071819769574733803899027394066045333288094810025466195074493042883498524715343979649360990108087433962476660679296718989914790055131760171606007903782744544285134100261204316517762701962230278025459271666247375105025197590416044441132742390473841248430818785065719685517256222563642754257066414748659110423829570201996889125947326411400809219507081925532769014002530982520123536585440342687239189810907912240285652837505779491714905869145829009424537310021083660349493949744549381658396116904274380882551814089169634341330868254299281265546540320106520872914955413234412124623013537862385771322051083475177170823593975736074557843425976140081684449430024415343721560298379601746843213431268276087209201157679842456821630509965003813432273536729617264584146106274092672015704721776089419298353318088394096110126976784473713292250466423587356318770950128216953011053949370520004881163646994933464700470695043685184690712643549198972099717402601610003753687254068855721261752033352565663203747476856398760693867310732040067009409053267704700892034824265518300234357312464440469394557805541571675800218565348297310761486901676820843290318421597246162778914517627326093240721385175832907377127027471741087164884171051682518807922445609367954086372462471510008936450473392668634902935217367081673323858421790483673231244087339198010464506437290733651819486863001107189480674309128911707931090239485499998422935408792203735368324335667951016022744717588743883936618612945952922251117167551761812440199690830517340438716850879301051117611362212267171821272570158527757367837535315017020475059236748589398975789955496443773880508060456753511402514546386293763810805581168340572963991057505020629581568117217013159668891278633339394295254305063861568134073898797777989515234034972112418178746137329175695461042276222309715200396188191736139828625654589842133918374293107000757711604344968502448530842509141038347472740971355895578323702538495473645761662456585161562939710374190781990785551418328351400023327713767139390975146488303198450141053515869588414754357074117520207395744938696847608167330401805974434236340662918547814573887068408024207276578041646628142570993842372623731293683921018600405884822837691302288244094583394829858503099193564024777419826653160242953663196672975215100093612747058018775019825308453130913312225846453616866337776170975250590294169593486639314776820819729052301730865060150551048728244566231304926118414564017430126551125393343207637788330208765535555019015361252009596164360843957196827157001567776351028288407523635030033987958209140260576907529696461454657959693882420812143714821737604425832597367496939762776264267703315590923462031206499855996973500405130375754211998749146568033084431256826882392504090493011114485003678611254448451212556015246827918936726522103142344497711709499887009870062306290032292127394884197192509655935326751910350383898069481231600302702550833622312932582512608660393980973833917061737891395431677690318273553825016260712410916405913256122250605380898115125717320612494491811937645799246122881162302253609138335841644868136878439566446561872141125358543114263242211184872332890896929633185707240605210734265937666521640493846302393172704827912497518444665239036278118843800441108227267024766874382847006140814378215196749231459358050878266252226758530238057731353687834717691122312868285469058863713849851704276910932051232476690628739498906626533170700846642487216871251204020529371971982213692148584025584324445804996569062158621926996642497009973522204307258421524916728790375674539183305892066999679682987200199583686872103009965799416761883387469170041719375752414836729750562797174695471382087529098153512829169819828379758147836249773532843237872539825975972128997333600904080245628841617338148393707187587889792303377580294675091848836294735526438395670776877280372167259566320138361321604206319073503221975739786323374146537778019338274836949782406962208535362337811614808603852967695222017891647940884454060851785621906386789883197205147049493492780413438429744690015186884871837188218939598703928011802841578050552445481193571405488060396074730259842569252025773181845340791271352959761949685632580898376409740656239181469045685643886437356706613987938088950572085085324368153071460965509464167706018116236196824871500162995169437770462697342815307615687381942524610133581935792577293799807715761759752938407167506439504483667249859514384354510605529402293707960805769674621876882984425563932463935720361269914520364851031165940414171814404746747416727328366486123446396109813864777271428003649133738191929057545296767316030611058485483583548421217962355516472631270857376404537517918969280442025612105009195701354222179695935467415113185203266224907669670842566357180468967209413001007502661974336432323917532117469158692829006351565117572458555872525686304832164119474745963368779270827883953461108789581402680236636599077228654492704632487553786952646990788495519445529523644099418856766345519633316596455427392368634437382741765955132549257527789090519609701522313588255633069993516443254465375011163016500732706409212270280718846868364585451698335921983767873343848811180413952909931307064592935574886177042922663391133856985503669190969893343481801860360634236675545984756644737701932673427231367747125769595629583012494961821514582692079757622663215184021326905662394788456575408365703387421327643298053059282107762900425678247107571722315222928930771793167957802924565646276110768547861721501515385345092247049556626442116134091322331674506283220479485925031457690526614401065616630949496341443677315801618049510323269272631505964937195800742716443010769070477212522629885196625815858149248407483495404579350436146485964509649436866343462568832731832643916842339213023279756249208008809521119683228176622272495001553787051295965826547805129454289128972350965257613540833851685516779124202609224464378932582993655232600770224134811670360965791094766650571493585591446883982101758832902768057983998308483745557577053388117212196434174824951915786654648037118107967246190393997446504143332416499201555208795819026618665505651791964977515919465869741083595466651486021075346899351811894600695316374811188944202666457046907738977671022883876646084197104299608753542346631257420122867640104053577658805098280306221304814943665728409228030526385423459363355664721931832746261386280614735922334173874663058605411743752698082386635494075443385581461233025549649035990606551737882321297694315069315571308188513360057076347499863053724938468434883487857339248611833907804339931619477714453389354004366987608815528775913731077985183291424070961662219116651968096906679416061483393248396841763792146301515144278634083196472487250889506275663041929443584980944069279659332510595556828662009749997624682642009507414204008011747330006306636397496281119404039686532092007658023564647965308369275055357039321757487018990228298081685898158571208075922928553005417786443840430273697086385938344915388672104398061620763215716863607607554236523884160846918580022996797064300624088034469094357023213990544707365360724374460203543313866641860532254886278210405600541328367820483226476552811017597452952154899943243037159427603268147520206090328820972476328040208286988890821205385442729666730046878026169196014476582379274074120947008884042371612565581261950415614792399448454527527347919252763614860016099679139186028970741004449898741065500978467098261355371774912054391097651455134406692165058791546862904673612342722742608442219326470249275407305600259340243742695176518199609977763272460051631854811021737729211936808175708606403186002317872844902922153120064660941745237441853834661648580698894207391375767025171001839334246149333287638522915090551447491444173492612435683596994276107111348025348203307741058221161468694265406047005818646260811397538919947758783372695398765368810524613980713089840848280586909626727681105475393600664442527928859872967945393561369980818873439074986212393982291425377779268579565689414093280228595688924253087929597064731565498650038364879052875337695736907331516639088796602263097725471655485948743741398678307291998397381922355750960107571101211800566335780873012972120886673323293777957602637729950940191102325421641404203463098154443384314301455030791216266613035808185728674487983338247163533498438830838858756595600997868462055721571853866734287002035465558816323973300884326014423245649109843227797856248797028456567176945595815826111543445709775171509741873562771893349627476589486673405621730070240299237684003241077958816341375858397753021967730391096406352182782345347310654522159139107864010615580114264254592116710688803130873940995268374369562385301646229774344748921132877719914489578065333643334597770070954003496089768719595651359178859275634016456786459580693253433659998112607781409693575331413279465809512167788386700786726801523639006079157935911215770512205154730702437537130571137802123513471789190886336111104952693727641271439485730301005051972932819537978378406304967842744075248564159059054195546655361809053199727530782968719235387752190084010436612055031309098069202163792270125972232163745086928777610670302101807337339208539929341086900853650644629359147863831316239608358136834589347613344909029429206924649174132311515016627794134746161305830524619649849273598350490225841557224894737054370412459923333713337865943860649535580339352163181832888030117356025397109027687801134400602236759995621584696154798704831837324610466855816245765738545466193655213704515612707789727940071065759902650614047331956574544164102381125644157064050904039566844736460641393876284285375581015873142579798436585044182413276240109506427543181054712256993605425944110902695234950862161901183360394229463188922702691399897443763137768451406580500577922441843568534109148656535046169878556166984612944670769167709416047670953943175142857085191671507187070563070898868719656370423948735320927810299107858780350123438675693001177433021205472905192529592425089898353678997038848005096058581375654278564143397853343597672921945640702095217690865803236816441372171353110048910984202467370337527689235962722304370047514659171007218465674872876941452770099293030726406518625960462596364538756580824231507787613970181344692934857586603184854964495467078485089639146151317847100946461963605071675130910137497841314954042585206857527654563653507487611466505859611740833855368395321235762129869288232107125467484701440190500200408699998747477614035930139323995568417236378592180954011227967431809240534026136253296044081869814694408657993196588419314235549333050439710651280953623776967364172446800689029925334745768585801549012975533078911377156161213486230093297716081353976192680013643110894881868476120470054722721609920038008081681259860556664990684218625276603698116671325505018582682048140501344170826193542262693014322778789711352157478665905455918999408042955282491367295284216805630962339371995448550394994675735374640937370078806108562800702064744448372031084554826980156940748278309787842211941081829048723086055012534558581450779538914820899016667628615378387003541707010799131940906895525771558608344705724087753746546725432186940377642699302202957763882458877754733831316899292213452600845975548925270236684435883800669133607077363174274766440971059838150124805457555787034523275284332701371100953793449245691578572578957435710479254989060693205319136732044418174381132433032127961639207092457728213233743910651224149994159305682100271424730848894538440475880526725354157594962502234384319530439630325952797061079916887467661394854135655337599454147503127533834467973284284795425032493330648290884250917196473244134539093504323211558566667890786647893789217014402728974088699534795407594231236269756363141967316059319552590628457605559980234627413465944544709741085986469808607844012895598896559231416696071120396028595485376909023001909946035655127358321106142522042391726738984286577344742510000811833164902307443704242697511994546762375993139216785845693023282829954230974281752361190754564906579466999186018677356807984689913062560665980715943687775604925974367797001598340270076065555821218248271540124396999586331861989879641493185091514259318692125314717950204996277130507129519255549110928797051181032644132065323594425861074501081534859849274316929344296655584538678126402965254496797556406977856339030923335122469506552455985946991321351322528395416137532167428136335142892293890783091924257635752311017315741073300231233698902629941698189089814748669371630984572879323714876452133679962731677381844859107982223322959368771577558999210784376239253538687480743175268397394335312095117640689418581343381360307996867715973059852525232750608144535473520817802324602731420008979955154627472007706882127051582290028459415299685713617857691795438361641411162808180932139162005571462511959406074310846215114005229645364997990436427260390449966184678496501367743950940724280683852507117310300731082149141604850525358406168293013378250142644907893906017744929493264998342588684798856275902333136107116980532246136003844055180610683427029048435662809903384289196971560823128504100974467584052499619621474618272450977503434153607286421127254838737414280848675328062790614505706647347516421502519984879518490164564727346867465261985501420200166771477229023671601562967634933760603741398831033865358420031209256573791645543339083029424544837543076805462814365847296265233556359190396270453893612934143413498515342020501949472835179844558354527436594541066062064876566449010975035857137365384484975213184342921546530299424194481317317794617125421435562285894328855741405692997969520705886025365809377499666869506526467087245232939849378751286460764805971914888899013789207831969395854804990485921250714777540421621921775961804922344310448318990527933441098737182027431991491112806899312483085111514461225205743291217894492355498567467647875831387590593672217872913847200447449823660802549376142296729293952761011971594285290588454246365201141197136637214743234801155982314221285696466315410266543213133963301502579639999428864729003312625415554147093342220798059508928834102400075964889352365792246527874331316676966521272768252193750810048043141298221628065699975241560302262110161348279861994323436149044318279066000484130211423474938793710152781512306823622492071979435082437026019415828848601059030773002323521689696457699439273956901707510598690348326950969486191056601867541965145008499339318826722185291638310302557748506100158102108294876770779705433433342515221291872776197214701443443427552326269119542639103253944103300449465785626162844754360748619799695602381646357734406351654683912292702304462106069905055198424085063891837231554186212954174999094682924585794095135967541298510951203129519646442270060704910630255506521956367139484932119894798542720965724112184009433816956573803493568769240107366084339370933664699367104590221132718660344174363435291100458233381937498023371292215852792717452260050083906675997614713967025814902619106969723027487117870840985631338049343326282924645361041034567610124107601746405450370366549156980494657747941890764784342178304528416296091483723741773737794303229379990857654632037582739948121878105623400689693675636789774332278265026475030264598024542874205642914296691926154141014196284916471082483875245644941986415452442455661584772875012009587954454036429116558438342063144015893271166203799281251016934008703715466297951849565566929590761046272468971364455078180271143201863516769340661605196415087792118313302900884608043196733565507403493173348122388206182906669417701874376606122921192392137822157773218435088303975114565621698523160654525491403476502157680066919386217563109325249749351142753743604456062199032557432069669990601178049100910346353483632824098279633920420869696236981783037285832506075451819925860635058823410853502901357367916212666332002823740282566339092179425665252124275125610511989677268523660810331181723391854870368170257570169432038692075391430428336138412877717449757436818170950277596436349357980354074920858128579373943895602783380899141395415380812064571186270830606071815714151836045714100862015783365032354673406538423267245350519972219236126911431023901074289743299138767819774244867062486155404429247302238779316440593009209900227500605352423891478570879366233023201972764669839352093294149370652515233377645891880349202111687784052094029177841093569494690283584973448487830039250564369808141955308507882469153136105343779533328499763308737932215888482433921568223346276448354314953511312098528213097501783263958010109247433055327955290532366098718726515120958781467007900048639465983073265098472059419560878315583237445251748612487575322249763109241054644374608556866699252985746807341337372458691389192915314677615395351830644387667604091151569501412712835518697175291474861963732853936138402130148313890282416112228318584345092825848986185070295089171533213435027978950670419329282705294543039126527560730164298090447720195281013445236133344349999296286803301202152616291757774626279751580485847089110347952653494286517375001129813752796234063052270540228552841629790682880622579153647396003985947142650927765290487176796958977965787944442390847107775343453915420913976529924045717665913476084070804623616154665879212482440964456554157132918844501510413018097319336226134779155863639050443103582497904564247285691831035685500807927887118205160439067966864613749638723934450018124471396249916304229129958739028034022061915524763146643141644403622301111666391471637206869254924446090757159537473387126296526034110219017124652871543242250449240356137015122252541942590798188445247090724971991614459088340941879317744719343236314892454582158224738328278759465264999932560043994538706757688340637034430024851105142212609928546587678894124631928152924376779611289146840115485211560315028711272592453023326405876828717531272793843328790658484208303868886025842089932856985484660160630169508760880560911876637419235134354338194245046396072239851308446189809931397019754221252567197073344539806684271712432904298924459117985924442079431497318810070176242068055321863703487313708260060112724763024055851341609536038656008396026822128999611437814132870212267984292594368450445014098296733719357573525851811291813657198121233875651824796625788167726633476508830390324247323318455499655844835760349672502746064362874902314636268600506738942332460304941693178439593581598069278957721244062540026260032658518101228729747473355419197957307900762222022911490988637182483669569146397882835851699612802965583843175076828980984728993571379247379251852581491936227720294998689538806631388710925770844133937522568443086618627007236048260563063896102444428811825452080235162992094869348766698836605927288239816498172820530896441715040331655528951864854800259198085273354594183801644501036041518633581655686767098753962351648925287958383874618095068453762809442882723275004937892917740506933273525504196832440139434085267248751091810459899369391487175981353228114629757212311816591667807645925888965781246626955798759658614729058015964261439849945453144808362683712656225874542563154709764953984099612854453614889949902116990245588311738425250512734038897716682299868976785564424146426962403868154507285206448021650541405990751780351966005918042888092745003459894584723976242779997128915149135712346680562479263118196729407820361482655086623776944881697238030401790751850267877664317408136083148054085249359451050968969234647803381265811131757773817649152004339651036131109819745646236074770360242016597407618840307423520822134681601855197030991016394111654507087658409570008479348789770229761369309755372134028006980801462949214827122824864517603399049572383335459124727851770603218410683226658917729307049370374419399932121173393882167526511064501382041940406138929031153277125876417620086014036957646031741805912087293914824053610761427718128924027600830877563605692840237552087035011721512267447177090457397768015076551255228411717569791887170417559494094127797773285029008209378497142987006079568550804747540330771592486185278704415487685504821158936147009767132623778616150633988857061463234262828813284007561184159682824237986477629584655142308212283570787650634526963105809979115238081984621683492218696765071445386268376854184239487227681568776729065884467085449101580241524614158640074874202441124026500468175062113787824474869950371842684507490385306651680917393758764453521062144662856769757034471353719396494269826321023218174843188997506837848949077945633575287640382114016297426045401582273597288157729295008507903598171891246319680746992177890037965248255400682847528233320223962549994990841243332531219127455944268568358846560054421420487107651109273774759871883825857647220251107549665282254121282720639643477688245809744179778706658721620463642743032026469354756822718218017269764074226834266296384685203098402048583750284212113009922992015234960986578454545003368687441374371258819854936286071623715743547208237163346272840428586135922348635341351235629496086025211978361193528927076724698846882687625650540732979939290633522784883615668152873662473428936652724106171390576514751038863854306011126056893245788029313237551825927243344096644500561137240626821794519859063499553613180382077445213137970139121612459677328342840408124183057822071086207014251043075644906006178901234424226991157739664919214450498424700114101802444603428320864996168574302888129369819278333688477010110589461508114627616185926373914717502558083055892298389060194285549960234011101843844656270936314252283793656962055626105936361096966805844775424163770505547195460968338379353715463328489143506991024229862441731036959284674222008271202437625282312786068694100786901811800688177297704365094027561433768153964444203793920243190143890016408741569656697085589898076807003184195238587191733991075165881124917419551841225307879476393199500799649499104363928077523248080374421829445264497856406307101549214961309624734369513488951856008450406768380962709036810836692937381870411362550293233552635853686197969247838487805245987509573476713309704810258847285680674695616834414155035236426319619920785222040788108517623728865781762589342096798672213030015553281662798239204400049769507698865032680770808643438699955389093108577546015966037843255041399114924187045204031686279673248629053096423803626210850195382385227383690669108897773594311793826182382393900250639191443684966333646470475289801299994626279865825435624702961173195788109189047334278445345466748330905526877792431813142107103946590226240006174546660173884888599364084249903027275128582822915944956622717709949086762719073946987295429422328925410863064678209056249991180543313429352488561501682428108177509591554495699110056981733349195740769837631907496210245211891700156182074203473838020534925834234524044905141154842100363845347275158121552499311316146435208104023123868177969141433686280241045935851971617968891715077214860888200488122911223013929597115974841197656073148274096539896754993582506207896229274473288673966978811242357537813082883844318932020625123244286868598506619450449801422405956846776149409404959472383851287299110253478679406782795367916238822062149213509613476757018356162805785326304740569115581461471214987954831195505048245321331955448264178381718931233433185397525642218592153751225340830003869305727077912548414789276017231828592718787773605363038236536290303351507557851329472103334223267970823013413130322259581356275455111390767946082418866679715509859675787507179099101619335631285196428304701022765981886138654125102333590514191537407373864702255940545291413684954087497571354631316031711135409512056601955044988245374858169079724802267446129134763979093080842543197160215166784202443887612440183052765491351313322034928344143084583666716971144311646085978687893632151012307667751735556151207887708509395570085663890407160402548147109718253349021746382662573105580277200479279711786914815339805839704361964325645200078730975911016471066022928743462870659752555582272533366838803346450985226400331320464414561336708802934214479598975558443520791250817436362476120660707101389244915757036018675800928985032591927328038535242965060645619104050533593023148557101244942220737339856660292017217655190223775167888855166802786504516172932934933637602152692834592083671881135348307189107849917146876988898249689647951933316099635319736690946389202507664467867087197978174677618316577949545669176878309020602876883377452264759740504516249545739552426272729922236475909755131665136180297998724830872113470171255084981836809804971812449930229767974758158714977955967300376770862795133636024881838094492144894006110695570650692967711273264963429184300913100141028893965303408832061412764161447108450211366392101221648515455314213609526824278732209348918290622191448618050173972238718662448723617537441982990083489829741403297214264010811900818204096569073518942272864479707323247200467570838481837359416651811225755474074390287693472553513562704847685525606743472405378835199437757109951945517785478053156050320245040614036186325268609818887690384882869954771256318308879307818679344318309179482887080954601118840176235793297187545407605959556009047496968519928369533663263974992920794942977199236252948247142495673236800437450299373256723298794431964472892341114950159259471079563805036672668697667104320660422091290672593858698397021466601484035664476454048621044719191147914775439754223639885328655215248096574383945817756530365869739454565368512375937595606127443189602348686726581327727421315645308158906685336283117750976961395783315548683052148028116846497512011901437365460485188449032816089792811023417665274374125950399428236428776719176773705513322501191743811631519929442050558895208292767142826268709529576935646921314959375639097284956432266762448651695624509924604123387592260064470312168531929600152619685027467160372480189664836640085015694055549192646287994327330451939088515167256035404697485184311340121101853505141847699219507804896829759923998779069844326174917618525960613317756407105551217482862339149122053994331384607693468021986839337431022269605832198773961095355725017539078116022009585283339679291177256460906240282379706130858875974032351659550585012205179909713628160443999401239791362606876450030343250317175521398337714517467120594724059457146424444519882608127420773347955941913986290956778121814609259010379924828438664886521883843159273106054266773001202467754680665474856707621106359940265823065797870517891647778081264466106701118599263027258031379789914478068199228446859996460819288878240990672611262505509006285184027298261628594824049015827685127513873135575951303398472560118711824761505219646103492751097826430947460547102834028547891409038780692679784787098216233371710300538604608253966707600541779063326932454804465346112700203869800140273652585720764911852275656049527736845260490842269117197337484802946831911885474730816946066116696620722735599084399086870692333422360402747834202084215937294708242167996052314010425765154058854627299581738978472917514889777759829558658076270063382759772592617227294757338939539865160260864349029821858111248804741717759651093536183479823766357225519810859758275065508132661600765213865773181207857059096151784825916599998983467293346610853553229891823310414621055196071084256403006770389877423242092198743812397255246789312452780701860504211182755356168364992677717699108704327842839197537337184152495789004899189726506798034373698574315834352673854527035861855538129103841473117942283711009350923176129393553406035122625247333568153152146648574187361247049333142321394645727887534879508068093820472344007958322605821566448291458242783859165195656481889750622012919442231147138126159283321726171646755342660672302286483799052294950656919002572740375123121938569983246038412983912727090717923476729287636250362042225774582047369211380220997328248882377894494212362870873336347279570080381685080664614980269337392992005665494906354926523064761527111768754603260547751823644646596969799432328136755074076573889753795096622478666243403677484827227623876081616986639071045726670393121675732956825860885196198301340585724625349136292094867459044988047540510514194466429243061639386594542317371916903934764970286254805080613153366887316505901668053655407127626675559076639201329141178901538007714421194895308877251927408060002217642440935509392921436035841485148851496156230986215074828866683525716059645370267331643973195956072264774793600483653963186721084038091466383162819990774920300766742514248242164394863955669818375470752907600771016669935090718220189672632331664077703307171015154460152118967053331789768439738284070421410501869890470275424512836333408348116939404919105286244616260770397028134995677202316441879760304891947074469507556555630483709704592770922615621622116445571944424975862904159839170092484255846146459380756503526027193995161661497859433591829720445559967610923187025964388683110639695826617422820502243025305659799853429212907443101648320312781113521406028186973501840964638203714998422907988652969624814722652607405840686022442981400822987937022382641260840806304383537170122970741359045885528671305788716793381325091199285874111082783774466044675500151033341340424852221412704699217434172750749525864948074237762254666378836235558182820470716053776968504215912526602468186915457325381784234399406080604926549928888025416424502754514011200962416996877773436663624553902178467430040230798070973339423785911610861891163296326806001043041410157275552869733066000723675008799500982929220401298438603251880474842137252554730635555622718937643378120905396012373525758900573853614221300369490916062629152789175339621694111394449258450817991679765321621074575851794607186586889750109380421105931897750553011963284398112449058587856222337818566549530970605004419459643496709120898573193503503005929228828809541230366114590666312168758935326370510592516011022006179760982202227117060239355193062099611635273910284295094441379513207077097304216942063900817912706496827808250766083931466262148611859960792706462245714198637997471105746337440597992180445096295854435744583697703046729225882040715586635228156806538464479640488204261656274809997492406627831255930582064156180897961571082317746562675545458159653643017200025668604151350697860850288878978044232721393503894634276856482061170459750767220491640602016341440668534256744943281633898149638736827186440953484283423087730673233516855787224473988861396466519755884747636955586304295837140440653566270763016036609750196319058834861226658721719842727579252315322859253110288993848101919239756986803276889791784926183835371430307991193186560014232296940096178526262607039739487899117844804371725298398075907265554064027064024686947136091445230146842490852224226343368639859140536925486985954494454509846518402716923018602371960862547476520529519275924386327925807506484943668859250307678531307817815708152982709795133810398002280842071299331544280059608290520008110220563323208821838254085219081299491787341068521260816577116753792605821043249150427072171771395608166370436922237604749182414381556347323680389360627486733650331797635910501482663877658970718821336522050608655642113350982239757164034423738468934752926650337322488977339466110241547439052450201908310142496273047112398378948027981555853651544902495750448810481971526068647678575838422752402370363672471000795903496383030046184754938310673363949957315445777886356739118959599015860969337438235101368153005602345851654282655239997880617343208667756843197117224214192144025685502859647308375683034915871171999623130513739612493630266009013374130105367546499129897915307646463871008854273769668466309320309946545544368553809860916177144108733140809780158200471225861921427818055788634368173008771731320329169739970620698236239429145833641133240610995031574874242966949245408314252871798169760038323282423616301679356578346588024240541748717566099035478281507974298605821411500797918238646434690219482433794619088552631690033921729358791739636582259973825915689658398098456403923508205774029548674895230817957542995784767204307910299450925268062284903466892676061822357039488734638700698051837140589488729685948851273077112042795799873175095392703296543732628010674519506251455743141545764582096740096802640230934843069794375151845501635572285637816216759192102488039844362538002273507488015626123971999991900116413349343885270285931005895756494529832993650195682008419251861304587824469346312009495982942612569710045908748065637045212357168428444083394385693397835700125092615199752456599147100758606998857434585279168963350627946502526802999069833174373625415439879016017679883134249146676759086999142826691014599481835931579990351601976717903670783282868396915030189119007473105171284187317265828941560869664661673502541237863630304227037799450130452678216364935124084789361799028231869317432677293939893506934575700040826925136221412977488392216812167120018036452962093615275552881086919278773976342147409936891360516479408390300524584811345284300278551434028632642137280600622222555832851381412291887950653456662464795313504756160646733202254287668495311799589015656503353335534639767908337810407910457295683094963878502499524815769767319117007176171912702404624427641103073245311048771396353767181000483607205864683700308261526376974952663228644036911788125216543284950513352218485435763676889643874978852649910181554078061123721149162046907534453793156287334865765323868471002639849073017545926775587343447242441499799368673058818950947250030000430072507316086181349827694905164018999941851844384993679575732556028433311053318439632724838600439483375768316889227124308967097206656276988761767547554504632054899330476540941324997519120626143183798904309397625069232390239006427823854154411060971452700932402311207214231617698990941867212465526804437667219323697343593016161325051189363854677766672358622029840155246788353667588568964808621866820749469939623270839975657023072418795489675637711849895725348318915677500822730278429080472364747982453519056572478670496319394232541200210428008630715801487532006301387495733623180257080508024235655445626273666889131929214459980522878135610670842802893177454482312537156627476399639413283971688992932760483616419677911290239912838603823188525246267780187472057446535593956070510829950548553254519009409037488163661009134594061288387831726630674226340564440478147794703071644448468871050922615390568224265897336666593545853569516738388966829081804017609858142920866034164966419909837399330679573635781900749662573283482343749782582907977468387415008806806942371381690972471576777709160442468130805230228954435513861069759522250183620855041946197433220691905209510674283500575729702036050787043992960991822264177954857770318231657392501699679852948756839235850564838313898992582819963729050027334550160226750432680987261824963159379876136644418475626646743395255763739860997144297221349054984941762316307807746094776121797214403897845216479940879054988329786902238485365093526632784266552011503758572218846425696623686631896384354492454762736385727625856208334582326900521596364509431512594668551257843958205028811488098300877312647716852246411688984684213871889367611695632946857270881178041453473015639091904004197133950506115355586838501117506395052131471543543490570929695172443333079140450701639093578416012549647561385987727041637924859281537676978085462854388729141979947923687843912317704220747429427922141851323377229866898622487177060296607337401526858412425463858119340968949553477569381402396518130221993325027680642432362583790363732559505795396592400043197740321250522601183239301167028893540079278292959054021393273141500706714328950887483118573775050014027258463352777427609716298343611766076646228635620290945844129892742046992032725986435212107588784350935510894798596965540946788192720690032862681635724478026152904976374928418109683896387678314839720190536156059886053346550370374556322751668201122440298690346134460948314028327120537520418507622660930872264692353142694105945789904279232658138361851572485036440888289656744403541313975011165345732143391766681074490304788458924940273275024277124415073622871206926611090510157515321340317585871816747898913820643187182345323309747437688102388929256493561622875930393711386084136223512726284077331928760578780345688427772600552742133434418982489109368178363961609849195076072707913674470973036753848607907758543672146523310656539672824061010120157129902407979265938884784147280981943538282800545529888162453767396046318339781614525090946228383758058200495828222306253031643437906609378902884232554023546086626266173532804294696215261674879926692117150123766097962058685847946032184115938296512604016006107806850058657264880480374981369588048227855750832908018823660193344868167507435732719164849150603077929757160630441819146545756642732431121789659544007384977641148847864156868737019300229974162130189249126683658260495357635906832893486332959300112508764469993455403324898321073901687676413874553213058290202221113353512065917426696980021157484014332915387265484461947372251206000482000088584824493011945583800755141824858438751469989477515184319580913280927597848219211631273438898280980872559154808534754393190624970652928063281351301584203006471439765549614248149542181779304109369870238828149284148798440117619978110186686203888918183160315827170593184005755673985119512831608626142564689660385350059557888346673504862069347855539179577473023144041701818400285965367333891300702283440480091620353255927508383170955551294393606818326310979445249278192028156811898286600960608201014667937465939849708883757094731048974078295172946087791687063776627748437428278306929060828736281625882142859344640341574805919380622969064368619322143250006990617602426535368811932422241915120681687073645493335692658139451722665154608249351239457684315195866425298739812636892680854727400997109187615759451593966600735276993742390002914086795530169070951495842719412376560048748616209160549309292497261311825077732325285075876340523018450384543402264131615674513572381323093397536472708286272392580056640255412394405116434098209806922329526646630958277119083484029039779061477897703168902564619777262850360981832132464073303723822074906027510056558875726040748540687069981092049357028368053536314612304399945861231503413124481527692188455770423710607711060356154367863385180945926109253994721770880422313945933313885698135742482155479978649707621925061591663269980466736700610481199363846011234825515219781232392867262154205223489424690341484839129810339147819090626742219531189735358271607228053074113456598342568082410323647456190385378631645425202934655971224827354122283489271669640479948497139180216575270010762988744777721509463725247448591010725467810651606100035238410268541825126594385730726494496918029912500664633898203132720839059507772651324065680930358635115789299909663783406767113395945738295294579538933951081471374832601828552431797109068659997238091744873716674262918826845822402190327779364007817254068744786106702865830338623101933418973883119676212161607779075185145717322676262876754907506896889299371128806813205288143128269810592587276838496659556768732993483457434502857194192053596494695491499939381728774624008075915805053645066832660602634512771617003880511794851142696629606032808527934270230800245440639664008943652843709246888962973676017616434155567594075935204805895876662143178920809703391183778246270680518651142110729939435985941474819062924313939011170133375503669747837154372245173273482351556330106936422483081227953639527199665831203200834713750056659782102538629582825107240177065479578665129057703493462814240253343608269316665607835160982777566601722306025708876987209997190684285575084420236252455049119728680711218648030688914020619867739259414949441584210674741120395232046456206705117136589822642798259804791233401251622761851747967878472151899000630757826680340579735379379151432521710437400013181544501971650190868210499310151853489772678656109625580320266560610171325394370931053160782912265888389536130460090531631617482250451136467449134899081794990371765631588496479901033201860166259002066185879481229632027411084255674988944950327283740677784448757284795247708563836366620889476291217926846461684720579605243414447068053314889236173925793115532256691886455300670279551880407294711043544260674919614412139426626643805590040573943338733376472592260462869762978525388514385935468440606190692838176213844142059737430416100463610076045555449605907226551749047396140130941166597088569820019744529997437999873027098950439110415021055617798662562572245589220224564588898485035488072603538990300398321540294422996902832584384498071228915843426970915749342704128134696479054469629386437840274064667690792392926429787125495822952658490534828661549929377288982044605987748126223949662000592056677416471456670082411516652222173464142804303786794521023072403393779119531017705701012402101813417412151296209911140708938823632629167999149169081939743529163458007668825327226302107227935052482387825186096840694301939501150893810087405458684141079773532737475014511419072725003767585859485632227471518661682247355958652839440919692188095988444338662587634143997177386171452413772184507708979410429627650166446592114818277140248780375267679833572740394512362659702312378219128255806595768589464344247312802545170250012530291332662012764359325079807849529736225441984917542919527237365341107123823980344390202122718702052315954071570692118732875950873178399848189526580150430422587605451059037344249118049583251898616850948703464018274008541948531454463882328511077716446554906335619683188878118483509273698561546151940051587678348240557607635724740275124271861840902323135760069849952575261013857899478938565702166737516317480561539045929487193494845458643061810335941961735895827452981143833224194385838784477592131543940230222759329399229705657061723124705181496867136813108911260222295926416159069736624698822581469411436361055972312481937657683284475187610835208443404598971682771711110356884435371293592722111474444747208142916351846552460958140313003084403771758096970921547523549983870954324655920016852638085709939355277738688000288526065702463360745495735533044733383340065781379286543814810570995786880160717780659686936432017265931170771724918819841219854315217201029380192281456577407620794414778966829988423984509708340862229328228858000574808580887617276329940180897424586926024343102232705360049808464959039643002112007944369195362777699328632748532179005486544624092248806111767176536346481886716063913588510899473956575873176847806339753732278968900790690000657535675155112942233460530575027585704347928837435241209616165382763197214964864441378287939273423852709775034908072236469864602159101100477456002816581101146454927578831191801895962166101469728895035571679182290425460598000250383084105334364822851311813952708051789449265813330589212499579446233151398867449923397697610653562759321351247875806990932436320309337936501876669869939926969152665567033166910451957459326589506924255462367250495448996931192953803841157370428009844649189693444599368520554650846573888320793248530365584315474667957224088659851296335485312223458332225694366803891024104624454978056370844617824870009270717215022075394238143082458769756662677355250226050048738943369540682582714506990848701281494579318588001115531173277246718673495029470379079043032473397337900180982770103977795134730289104251196187308689888365550689437706385473854423656945703992654245738232090992329547267082306628022464219466663677069944667951858244229422094785350974632622959872192851645555635413632721225569184047779122255909727156224232529869056462460086858722343543422123233280133834962659368752415585246936346187648132815346058340968566771863141732725535851815728799465401783901945744467834870332702301086273585987638970615446813525765606672225981269418696692416580524086385550753868237513741989957921196663471837223070221672159588448417343292163951893868448760259797648602265169434555866627869384611275670523536484627371261318577227834783564546475411984497257965999278062629473172853858012788942613020882576705521086122322241261318131665493814258716232913583583589054533131776127478233759182309125225532020245073603404293368445846708436311399772803372349363915195394007501075251840736960497017216271373214987922868704472862299185563057906503893450485409763356250034861837204099052956573052247739555143478519637777318044900656489453324853699113077057338842099295896719069601879510870405210958735718640329163489960308960941343935339700942452669888333463238270452019988094251705647326938057737565882371442830082488292507221946400322693673969766953110441313282249361426512353874889965265919338710612052951778154192219044552601738334749781498232652068652344361369638945299861265368409999062293637336417515646975835269049457798434737258040372469400892154763315094235951526010362245885217156598577920882406843526434125622514326947800728191050974725346171151528398297442482595603951399075594998742927395804108481890907327513871041340141487158180331572580178796755243099411240291203198959810682536178596527072395143309137460074694330672776218239299097377342349975839852026190536563868029095025929035458258369687690116115718687479461796304388162337431176483736694150577650066073274342995886233330723236385467429642408778750945099985390540486444444566922328473869668825487590213003650581526666953464684722458886847847921193891261012070190478694797948415058471632225291282204991472266278971753936458388455510230278399483997303564219027949846021391258090842813785332792751407810110455016492268908214547775564608495561290136232810736152556031222645848459334418038202325554757937208221394166053392801544090351987288208408657820080491386741956173064952320422633539227118641057656256835970213006124088093290801616986454936948301017271108350547464112746036415542564144296060304242258406776513213437663087204886133049501389864410608870261855000137621130297283419593646457452924380124026318573997282117807674795157210736296411567594589175182717737042276122090484248996242675526011854275489079932230620739187523072872385476592228419861487873901916883629971148269524059385616763215587535851598442512230637587199930927037002353359802677312453449499427080322626490003969375500186875847298392969659481249621865608612944578983712175748208449991282788559317613022540022479042364326477309131993963396715668414279607040383206593805356297018289251068319448525932769641036757161339165287129325996766685319638540298389531708886923066760372428016020866908493715896450475024712809717807489328863674589939487186718503620420430268563356300433346043440481117562722531608044438883692735038486449602907647643116103514598967600913122410116768460354002535563845152050190784606498741438813824830382682528348885774261714244159193445970697577746995303319632268332311841794342084668197337816226416488325791534172315710843625512675008269977034078007093269540723678383531842520379238700749579236711212421906757781423758075411004159825277016402715737851473230435113648044001038587422887256514418588174048535466268719555314963874118439945308581223801378393435028596011924367721141292637140201344196340345152109781681815122086625451588732918239687131062350870393163959206527798498318986327747535117870320361966716349976874232312507731336756703032867079653851992639130267991046248296731918261063667242646757618555381858986438073727726319300972095448099830117873736634618616913018860831370688387189916198843658657198246093901400330712181563431987184726465382974482291830313551283712029147973815786394399464909600290986146202526970229347852786150361175115539206026778900402306433329131715661826660889359555869408184690910747873977185703026302107868989534380130982233498609202850564438652311920125687037570365673619912246860900125874653860844866317231762716120679659688530033649582412556462014895054651348240937170587366935128418946760643193190936198880807074429604546883733675859204455322626340495942341950561297600196094918587942391545313073000299993297900083404710674750504875526820691997632915533522277726921052892052536447007810931976975166119445636993372311974916369020899247541587606666878847367717134262702129806632028613427689650872832636353943017874946844856075997442306771561157372591432026917565881936200562206416978284388087592752640736446169917207235309241656391689700194567474090827962751906768964553893343589791987487912117853479770729493572192479274454981514478040237708099904756601469851413181230482271493112524983900544215507442335749819878366807372709682163650189255665998183565334102974791764440848768761131575136581793532713157493101995899510410799920943317958639654903483001171061401069170399236161541732186408962238264417640650497457304098779050900196749788186930747013448939187850975289844765926720917388710628459194714099155114963878320577250249876991675844019752333962489392334609619325153452117661197447371843568310317789882355874740511825530749912785448759022571648037297316118309427503459243420818615278706925527972434735582279835625113916433875098412729163025202039530578993965084262370874711507698783309818611756335511158129480642415559931219624910775398076582725989895275115972901799254662994975385413500578299965556668479935379309117630200172834028462641528014437687734253530431182141689028600384246315211433951996825932074883677981743355913289959767231711566745971485208142707856169058070842530869926563735962588182010394153909908394938672396043959840252289667275050715536100693500198697275595442726178230463876579374769991927550803059158935534221976305898183735729279142436923397399232300636173654533935803953496591071407685134442816939278610103726840056617708691957043369506251024607312511781547044032914075382013067016250644722262749551792462090880467692378929411933354014256286182489789407366326607821466971229120728981628701489908608875105713805921379511392752230063818039434033353431751373338433997806502104741187642383801236388110661607952841099778443399167971494514208993090681419696450167239502061417402196152972400833169020429181372345861528664461653449954942350947449047105435046038245202119447894445921250267466100305080184744477169092112510134056207725558058865315562114199018771147794699581712829749088708329050097482391088946276658889930027684343787012926586700597951645872212571517918525416467826052405075275547486891759582069230153612838807358583243532558213483939795404787401285824796552808683299423180297222881754140608748101636562460731877646561507164105603663698798634780306576261546490768183517570934533319363588459581607015711895524154165257444342199739269984975410771939553915737634285952741228942166310718564227452725752228824681857233010066494821353832638759985047592921140898431521895539034156243892541758836974771683781143896947746008829607162481953279859281548605666211071397391555862081086115102665965626815197556731872541357432520099298934402441607639100916237532069855586972873493082994714901809162155543566171994454293615633084419334717529967747323148751876057370608376769117668819324601516924468451746408526713945379412340884533660686398519866022948113806156291789664382307937124498245878629771327704412602651792368476366169502277809818397681661753776224055089925809646749001969156895090083714404834287365006565693189483955281992576174292231312622263720486581914414155798368961240589874159312849975039984383651200259717575793863227994237292978221796407351375196140077327160128308794301460225780440600995756369824788619705096315640047809659400898597282698594569623932779675638429602511340030889633906287366722330087480182541105792189039538944530696689862210713015760960230436181668695766689497333007965847660369501192276975789218394927853215207215516611035546580326685631735667000643145183503165870482078320533716541349522049846689292784856275707388945891267554427938063985367048030514788085933064898254569068190485545215880652896269985838352957831360864847841224584736147138003646842174409518924834927391681740300758558119831218931416507251699893943508777037656165555470323223568326887703975887703624459598266496493097660180715200133371147333155680359823561220907290541867775377857874416986059798901986096911220442101975939803125056531931815479666660681644315543276621795757055645738479841364275265072522362595896884585130164004704366070103154573338333025198365703910587427376766886292561415940776897948195145128243263248102070249901770020868392620999977579609089226619290697230183147351404563498608659454924233932574228714587512407469810218397442332191747333166499706308806576452396602968079506950474787380490185100136280988534364578006144008772297330704015574752595567654955475617311901935792935949669248527739185485028767648442052791701448936775759123844827449888169978779090767554445582346803614001944599465998092795509223829049977737818895541812843720276869518518346608256034833634967871993566741959912651252254706812209630466917479072637239480044998964230390749095735739365869550585839529295470770160249918786232532438283457556754752048930373342781571729571634767375087740620516764410559705265652264236979329165242446183655394956338456102362297195440597083368402503455389904523267480933322445538560675429225330805134648212660690039251162838085560915549639207564253819140475116297206681396338953280217490136835316542770817050406937048078197269196203942573022290835243985447394003124505019669180739144629611920854152259170110601040982799993100760974099166414692282404850597672222152961804546827358002727139767840678104216402792981379624639824742712481221742967560115021218293207287354774738767616166090479094118949896302400740984046291144884350042776775205517180908429922416440115096039688683780932693993521156789203070435712973040453951743534017420946731884298544552541437485471383076474358292089439761981935050334524683311810644209749533962530626685692810220206294672911738432417762873991320356752944557010430313757335377959883162841504166912460110195060651535158609171824825713501719447305001607997403296150978888888577689425408495267632876831719889364371311473921817755145964392886843952818853709358983120296019975605737370750666371117503831832457243921564914685767577696391737219023826894516386682422085228105658667131291835372335255247398241615230130279357411411951678148291080566719858300008074608164588752709647718242217673183954294673145230912519699689564037647894565591407939978097679993837825085833117362383565230603134193935165655707307247026070653206879157308889380452047104499969692305432316528850650609742653313180416488962853084643536635278125677706600681448509724339935452483191706951848081274030168805436310833488920041125357945503134618376970710381633007983840467999209542555541086573931060888929850503120422350985084915583540551673465473915369458748665389793550418397163088704376207856289904608479657960400219032844949916495962999343359116683440518333442301680263734686891807568685978042859534766322595654523350978568298148404642471348850444559907308773012936601754519537245951822158729542618211543050351637318819110773918895102591845540206761391585903928136220879158953273118590668098854834588410913655368127005715496734190052811799919582915167197003695371006968204772402917979463418550400884145979929927717595621172379085948466142288496547602468946667041998325001043895130576137338515717306043967754657725883295636374762717034004785501345902410195335829728332431809091637389521369697777247786781919300014317823305608446109933800098057060334445874524596429187697926828668852353377926910729405869339887554446935725188276815775135058975070972558525598697640087746783008085803613584336465877545467464252688676683828277241268072494487558949898445815534837693666960832971338057725374700541352245233742467651671035202177692862955300433677668074598860984100666656005204471887276554546214046815350912928493389925993498561096148754714326348833934107433301698999464206116317574456829920108330475299961985347474785458614669037334483134141391223877347341447282087358294208660253928746712652977236635882411092377453764436142179160240292639381458035362153387469561060111788596578238752309635849114525790544573954842577294946184406564392682457415331296528926176786548364887101129290446229779341387703938225183977117510568009387363971904637860239573640977224717078803232550244803742405717859095035656508574060399468288747340785933998334377353250583413186883352971735168395471263700851687788163438528013204305053148451424072320743020258210761533833862675140813495198258230649043039069726885754850562285524001009916722380822368190474763784271710190518647723797492573595396614865579165361224448523593369689683083214195239748838358111079515627844973895955598365730288595771762591688480554308382808168048026445153268168746442891076475723649548782480605128492272126710905274550194925201626358182700613513699011505798766949005592315192277809320734367276828024388734440999971390539277303705388619915180992720506654962425825840359986976829834284766800564813627195643556372686007844446084928581299280744008678121135169571249454123925184334068965826296030410645014458012582108109922982315544609116228191406938993098200028750197822897591902455418112728290041927657956417414457875943947025677507628344554298063426877290537304111008556715343551591898333774758953971989699382581456733701445781431744356986583440101340321353291335749101372219972099797631839285380875943629087301332005840770983820161414665303178259972816759420887731149141079762286897966252788129390132853662978343087783263533023186156269900247053659204332111546073252905296468157118601352546059420699143335308527912171905008309004145717422705340340111626255465006764008405259154172746030008255919906189777554552795104905191075814787417674908777490250312553136886207051096435006010791159999132331747063026525115945445572399962348240209521515126863496011345648578604954330870740963088804099489517257484174865861857437961309014293035420477979854676651477356956943015557659678748626226150892772891984239522185767932791006629332020894957029986317360240558316427703759207742735034265360119387711712685504431955493301957344069210956250529681398423412042846987269747929684904738585719491788817043418405131050486837505490124454906560513282107110762395037177722255477224805622045863216251752630527195525904725018360897469356640206955241438511433548497175754325934584686615598746223479122090371164370426956198524798155902941731363093274274949495020495608888890068037837431248416289018856679997782351457654580539481721814537851631005483396766858446323069016321660982277448744990957229140641675705331272364435693052842546691677219758651872185707464324705502005408626670901716625305164355464106220667860761310047127168725485964811709049293974169545173134065368501712062966790166206681106234115398079693571891681615854226131130578078089338106864579501623196359869293175166910769489817503170766452738485354443688672467556071897533578479917958344348599640711479582641589896459253111851755813548100796773014898790857352750212798948878011918455080930978886522733668970593203763755872811771774034372457494908358265581882989790541181594385542833840196666960480612147734757785527004034851199015243460130679084684321487676822023771180891888254178036188158986328318536959369480323068420383842363840249775914501841924425611175363617450871399661617698740040022227860782428003699519688900676251385809020184623840815092471825860722426439207940824450194355011253844719890732826943826336186254859594520244097335244471516368821654332510578584345101731429575350171365108517896881899359764829978108058037941634528484069054362360248269096757461062695065825674032533292869948883951738670575818409212556354505371332370106911170337501363759938610892699903523805616776859815162833708416664823813059947860254921880528859097636701521703165003906248692839023806410228052977435151939701612194573820742393874672617835676959251786506051782330226438718128741513813054073168719385634309411762629605365193152493574457001265961776188437452980465915130374188825863014230674090090905735873271424107177259922602974105849308792346160373966618656567453264901063767660161373332524000626375618693394705377080937613879431677214449361405155717574897136974084911917338569897338879662394750418186927243967617824082955631175380091502981968826455331704718816167233636478804537297579795825717001237836260299328196669789980633510212205705706070824433765042171837274169558123881935358364052906204323170218587993190427639370970380729524904853567846086502971926096297885912763883354465571972495054068388483888636880525236059343376122253475666844807845100208094909943668010839530908636591946851435677063961524794129935443595012021283500143527634563343172980711149788799698734575448881731712714403479528604513602836966870292346067738338285752471406617982937034715669416854710242075404203728209673949077416090561055565699218086493780722939678315061467178137575348946755391513042101678682900118000176114984146291528377477329465566272706159419063802222864626285866207781098025810748027893062509607823423922879656015825665710369427513758585678132577932199690950433175771189389088063296907411359101927368478952795665229744025065065304005791123342386424621689686071115806249893491140415964285679808156908864028099513879555248367677105827924831433983098136534356361422111815824149052996594470419521395287649899468021084994739097654874788752479618743292286107487449435513765128240291094229361137523588085926463595420948955053457219227676441145157853025500012962920731337534693574827366809423791311616007158800286996776604330913765161756097177546727753321644528544901929531505214324135188387643096387633387655978673385769064972711674407394499508046698957740854461131249023761799281622725347785796248169278227998657373651688759513852878184199826818599597137444282211343036621256600076102725774945251571233527837435599819473633848053161435248309687069092044757900337370762237729388164602116474664360501991114067577437408304426885361267308015845120487199067118086354525169322111219288933443609605428797453769658185520398896894520996485767177902013918416630781068153639277457689392293358348383288382617658047510101401899902256990286356411885566725078525520613691104244097071824575997426944016853360810462429386712294048379617656551933375738850035379216511148229862422107264800759370852168108926304673878703958424690452691895196030105137931979235772249910983222320470312021179633358882287525232537932686376147837177390525508938821843127305793748192189933889400013846192952048324801044412882339220389249840867382151196015151706164895031610679768178767868507643030119766859361469803418337856065533563841459383761231124703026034495587257177063950765734276278648331560118089091294882541875444511883564124408654132179683945254203125758350124343164977106494310836956316895464898521476358932626750552356051198758260765641315795848453719675116193179435570127551350077350148317786597419948639830341513137969352212877278948033251584428345412343815986483983559820953709185481771960989539607288169409598371797524506872959367898241304669742902601296969758396636713545506569317877073202876415942768095417178074859789575388135961926740822771198999139423221341271229562332202824028045478426604713903978653492461708056695455464732100237540607084638502912343741375387256458484174100242848146362477233128667302567230702091125295704517890574806168077314459386972525279536446716072289487915972162864555974543128210164488229637550635651461278665705380284369945240865007904475495240036906562199201139943970716952005981639226899653992413246278274369615920601677709245719701241200319423863266914362062338604011090912485792022338586768774830118676238893015076716579709505019149708453888299815534338029055476044452126025906096668977097419075276517135968029115561041980748938951830420405486707881632821972887589062930904187275740948832886315351107566089767240749327082398912731753286080881190163833799814269978506456567229586434548627018468380194074515227694542266051167406168447602495150474665586244485824916316404674777506949009683930401547837700886497263574118200935670527222575759670814198897954265959942163161139330556030276467427416729922259024634031032280778531238482058487791478038351420676958863533217392451677388682717450577030969164296246231774798131011322179906530718603569359520857954300981442687414021174318548832507179233133693628934032321820652882988873638296703183372058141764511836294930380745991386806893438599590984354580455947695391865419635920251747645853461773708157434873001453230500306844865768216870227490200623206109333911349027545151442527905950044433418235374305552882037858446903782991277464224020549038857986655556980211307107103766728137694674825435443022700212268863312327332000355412705087727554039215765587246989430429159466407555305504193807250680372033968225588671318635138733706338859160739151635176122769856326979644177008715445310373564951001962509609352560523487691843954551260863333125255235190288244693011011025292995452137805592543820780468187553163868343697777341006938911826972270565960513183516500262173600148108317432410098457685608750998576937632027289532314895092982381160074125640663253926811306609064691803014605387007983273050487220253669044813518563563568283907199214719841796821838953588226398230732239538949628453460226587558225865099703564882322914666080448891039041995920614440620418746769002090424864157410660474419899357170407807831088467715094093993992510113355097567169782857244452880745822482807238209563561454628332533879507210044145515350279434265390209292429551280532833009714790838364259840724760981243278914164095183822855435222640920689599740766205140675547436440828398669190186874221547233971359332652313439871789183951953219437796277022330413612908868338969434528235426528346528911673937079957575516592331433494063111287072281332952779290619526389474425907707465468249705858980809969028315158570907563617346361769898376938486184806056777450306684142670477298014441867503955932677729182464955475905528169344857505470587166386273259250786426772919368283960471027701507119775974656555915547706244968161076498010225045965366091257908153563315264170682415145420391072502377311804687453244406639815898995611408890122165817165137412626484985631128018104110416242111280334146371980084016056143256536698179802658050968183305566760952531369718002160027610254091081045003188584176377422181529028924852706193890590672327386538782017193775359739355777718576474388439206692945842127458316377450664473991603179455373651671890654589533941110804529121247705406411899679870773872637625060825840123978558229216949784044035945573210316326446758309560246906538544682217847233765821871092434671843378712773768034983236500058835125901567620030816026389026645212676270762859029164594590026395487153921415186774350490607750351964285880479778220865691572284396441270177868286828171650078749643351009474751714846676077807346109546076406438780782558084136636478387532992828057706205212315879342468507363440090457213220341845802517420692269482490436235495722506093572964303380961601200214742168982644090906851678900562576856134729162983582460436546708373018774989884673896615329179718481247604132017770447669699870156597196364622687008963690165610282125959323266556743548201233393043367265659208013510333614260363448831946040848733719928764252814834929850273591678649310398051175664030847780834015177317488064700305907188974755966035692616983998950361617855018017266168942875976177339654326990164380845528230380346259546153485413407783609810498883486498611079754849492092213426445105207651907464298209596806808420761582867922500743071109990655685893922573673471519224206940192010369772537151109506702108069196607079350751028537704641074312766882214430083702026220304105991863757122936001012963178999476553304699862430643563800998549464578245355774621661352859011447298899210278021317386301142330186527332219986354976637528934742664997666172841781583288286109020552022736296924077639469196244492433852310329331495590721173867889244553631790631282224145182727921002926519158837426486081732579985291548234324222188107917681325113315834253200084545154738030450522795298649943769909862624914672859311850358984231947814362705529531212874829902033119226852161751731241911541946113095704936258657144803024562912284580478804885570733262881601146103191095875255290444824927187836960932314867805632326055578612935165792131409755803659079821724252739372607836263196281636402502596231290819746984811293747316579584065958860365255607565748747140246130815955059270094166545936667186962281953091442848636583168091312516083957450188544161671179667178991722690382476073085538850333821634080007192293927941281104902596309954780290986520650612229580392202125275357661143217641872515600382618816179736966499346134482199119662631204777113289840397195493026277232074603763142685001170917929884950905185784675883483895453720752773429520690091555221350088401496020574373748953122583843295360033573377831510383127773220317923713108270705813161773260508035352420924356296517512749460331472046890439971760872315245272548644448862170630813386435512447800537835709255267734420213745227512658908805114263799419649248500191450887662833116725939161299585625356097391055824790573805190219522383952320499165759505686350839286305992725750421643249906445232714982829957678276050629365423140379547160671912935605296685004517515914513258616284972128523049744466860112739154770756016556928172080595983008264531704722348897078407061325331136955771378840346673218525528923327100258020445425337962719883046241720255590742312528368056177664526578450771811966711214296312901999191863536050235943755168730645513715796414283343204050938913574521614410969745305987755516229800636598962622112975005328203565737652866060087545230346317486311977819299058702197632544317771370294782474095544240770408439737468610751717214706314317721929631957398425040900265944179386304054993296490513345109039718407873730978725990536353011245952685639642964410279049040723186704557717269794896890673800078465085365712558950674853753597584880014649027281953404554047230240686492795672039195411395329094025278036034507241287856708723380442033158134431945653498710657159635828869669390764546941810983304663271256019021418501043607608779888488101997080794046611792952049621289949042086823600748044968557196378383019468452041917229890190754509255485812765442054276485810603854966072135337087079695463736161099169785218968627241853003589003044452977830900533878136011036494791222807354595911286196780013260287697690970860393149888759233488368733714112370662501841242139763568175920557704031878538998351790197607632365865159140009498148944744964022410234937996438262757949288129292922131629866445561195168568002567793758327682870190139915317474817004888525263555540103016835625673932594065320739123606031759936994109584203072679878712817918557543615755601243277637904989814992444374853893827248465737824910485508155861242616733497850965224403582025371231822058606723498278197633803596826889826794231803490633610786669932868824346021408930816476986325723308603940988783157756207092228858437107795168280027783121852030688253167898860084233106155603800891331862140429710830815497382034980307082419081857322307778409901701416714965113200816424815530365108584995058705495265527320706878601042623505666313438016687244196999498840605044976819148974625378569603141413326315233442399837113718403501682512378670757270392980125142174621780681268874020196071326979199124624028840327841704571126837791896025598834324367921974221285572418885171799333141144655207320266002713062446263789359531084920456777421244807543448009046016510275942531898313488251550473226710219251774273329719829794086541186490022477869626951444410174807976450579793959461235966776136025512400585367449120748179870472769998307777553603746631069650569831836660245233649656621903007676960262583105454035032097877968059045972966361956904370375357764445287589077385945200941146899179808860887599261426777315980320430050679795783292695953359977441292171415231861915483437052518512417751425460919358356265084568526359432441044194930169840893500492047571326469076119438832594170475273597411031188297423440898744652201074498953352885846835372336191374000209120553540456774376966062364563123297594959121968066070391007686408912300174310498451112953403534283510419114591935651767592973607791984255662786709455564736198161203089014269518948718057483824193579452809399736189575544065968606555667309534071133134297256074354500803904830225027475790570676068197869872383368994300266518679981119678943374998375175112547970992057409940468746962458589020591474087630351076440247160268975338576163692484026341750804990988829050243296097805841591278435573677550017218349521737305866368446473845466258289917775867669824477278260262415464415361105967178056956187138762217175212641217128961118720768972461227879719074036593542657222162303664801616469984516932606112074923253690249531116961895978974209244350298618811839026229544490774316737288140250639795097079327095812938469019157940752454412674426386031417336315178952531335935973759690898662451471837411911197765591120164064738693962938996152244409304729287706658075242885584786352368373202866644427904312153557231769587907673948921576030027889787555377772919363460497289313097022543740480741792795661342208260129274274617153708628251349874617596617656493982800068178495809630452800076891412930576316996855911672606039016939152523824422473331620832280839180783396207717551245087287649670886311220427141475393331092280010584568449175573659249254717744535031328094839433200550726456268941662300991159473263567222763618919300857618994945379072473050307290274794039055163388855415299852536214823920184428947086888001494882785458743601175190540992501537393309218412705667723361937732686773144868350316869334225254789203829576121495247408214938631676477551997202713124497144923786304647548630627587091619756680999440356723289897997163603231151449147434256599836578337454275797019004545507048241744880743651955883980306555201968925915024489339005661456116232868428134265692890404188092258414387362899113448406348937994753555769742079342527081824203258213441627658986483574900816121998490637982043102242280789513243503865069296261125568350890503406534357374728880952353573802108485695790131169825008500960905944073958073046259341304128292292475850155551858625348931926919822582971883153112742401643821240282200180018575586043387973400399930937285279880795742681362041004973242471600257756378251923610942333898990899991398544965332963038386103267018921888044365492714699004509547954215269293184459985983307392527263800273876986528171554312672099790029085287228000835481705669304799703391588101677810512865942490839849210916775093287321227643480818991973679363398768926451528818679146580162361958212674034995776820070208458562317144708289294045964235007716311344565993487718937774406252964344899301383719921589669516965113705690269058589074108027287731838409080037123921747240922201845875336294062757793278790087895712170078180637544701481567678373722007647018377581227108382065240681929653793526523155160904635799907980443659838940952011040682608623244545094784036000781693393764361250204419724798914545495604885575912361393330245925150097708683307225786113860089154205831270317158783928215883666346328814122911496229118872350257084873990997895492270238662245045180555210843173079751070387367118383906641354524865655615857674337199680201612538308661419666557130383705528141643779960471514937421139768962079778196800971728377604323724182594372926729007109658544864865749145515575864641156352432333165669050218501356965582658693939869862425974339209192458139869125665420920352172248385926221167624056336666998161236711238172499488846841499358912118453394372439584157813694009850512858143678546181141221878843907589367373288446724842031667020851627865591999447315604136183508823507361322633948650215706459702596850653226863118037592034155186546063849267454040075529973537390071058815727626834360137943680733183830881077886425868330950425196862560330432836069686673918573423654078705511910304713401185908909721820895209054570833176631706214068017853049752111154286270816577327242613659150348779873213427636245965610217359904154662445751219890733853511597154533455139548866261827465962916031773824116071120498886795043190403873365766181125621730507386286393869124489959513991149460452249056330532201555440710567922702354836686604872910256265181226071960130365363061286043552265212845088188497391785743933200660753016078107199786088284579625051765128385755925181597441351883062410170418644015452581733302164158459035481252505188917495557496167165002537272806084631709930117736654392613716870504202057670507259017445287880710921365950102115995162021446888384445250841050353330339746067880203273738872317813522669431294131831495140791416652834396357690324005381891557217147915367845458628641819151359789580261459055018355784817068256030265891260505655293268329858341729706447278362209479638870936843437686547875477344478167792607669512250456169897839157401217733365205979996639679099204604599525894315048387965843653685413570874748691924847937923715775780320417532561722780143573749878719781010685077600963943125604281256810389672730294036193662356817268347297060556896547254917666623443309320045340789571495158087535742883607868281238805485499927617151047316708758158606745446662154371288080931495579271206374888049433208537961579697541069516367685752000868895533228166939318016094581620772544767876136388864243416902444579871074099289819005671320891868811823335984543670868850461623523695128027241420853591045603849591928216474994567857694969734591069245918284362709607289866624877159854357734946116726215637038922295278357203233561375430794071619515577489407254322533334115273396494119333781562515700400957630273094966611466550948402162935323063681315707916416244725206258939789020333032452074886507233143457463331959483964289848949048739367396896415842423086553187420921826036534511899198361841831265070172465594208467880603331071233274006931658787116129699479412426337615946414695146833165090160472646766735855958198667468572132753870087913997972824467196857221971547644103835148105755849063545393680062783752314701729863118614387291164308381559990943341413142257747280585996343116122328830586868292791935955971582163899782946849269606000262802693912523254384630191432485270581407253071526228288087877878334020840455726674283184799946794283078223499772885973615476767026060363151208059401555595497376554366902605405576495879169751057378462335366068366211837373351144835246403457093277418745479927499331786200379618171300748635073588000161262900235536097603612243107115718174683080886506570885202716477813875554159332683478168675988502360071127268080822538576567182683735589252505279348330357414188460434202709576658742716327258008939901638896990047218255231504776741221561132777691128586236100486870807802658168300366561211930378537340796405513601311621343842653953432512125134844585219344669734980381197218860675059330375916643038805062065438901302096938105107670284688532849400188656464863578130027170526675034922365793269737901484369590514912377867080222741591465628345442031200426039260458701699326331476432475377459775745063698309209390188113276522473973217498497761782957353626955979584446006901836780691062629719235492484456012530821534442294799909150312670554661852901430082249863216888349974839446108044892277070324439096813554859834205950985714472784224153885852696422993443398032066069203259722195109904025971074567793555853351932293323701748784873576284760284144369670934595860607046721753469232079009126509145662259138300870847353233199671349179441051413389988708265675892714289014765232662386474238222486068640518383829143592870009618890103509077518711651749161137589079843184060980641982573173165039544788797577103945380100451709615946824427269943319329698095852812823484754689152248373773942849353306256591267860537948790061577367383885002082785264545549501499544773684457937285988489521597808134972435589604224701365483421451179385562812906268916210348864734537527351147600336438708132775100581837773761871204080147996539688517041507419155295995060227911965972924179101873257796192397938407029458030099789235615876384285360676685310956281263594982301671983583611046694286158624419648502033833218367066378174250299235450857587884116645768575623282138070773158338967789367735944743537968332075147784757193953713005215208206975915366951744829364306193365051787405984071099195925398257734114066333973475894033886584178419954778177150876580397936501759131478055804541228127882285243489406160231524567043950037859672304998588820778177528971516376229703140774851041805282229463616720429342120672275241615903557422073792412672962175076935801852341133981930580095310634944735596422992112110585458224015118692014241294118110634381814102627305743858359402264869392032883783690286830186244173799772533432746585906692013431135240422795302066292248266699047068540091813941848112083473499839681918246328247626298569379703975878222919163151208814992682613562721896280036717050266045383708388242323557361132358521913817357114067928802530222143264926770588939394106708945798116069831968057984614454982771033852180062102719936149876649858689046638210096729995104215123661279862601604736354335950006715937644465045150098852455497294699227064714571837574686622020318378091653806171391015020846358195453648508810795252104632915545585533151371450865985644775294789043195852356797440872663279038039316975757686812866091021809331386501313847156558740589489499484809448114041173695764177207500200996995014566579937982136657707614471535769971930332630166938243699383635971580531673461826341730036778214002859487317225509114953475973541066702183171921160102176654143799481294398368404788671642414027418797691812976348034032404257107191821245925915400613717945568073802323642875255320439202617539185692065586800205710397458004035162157312715235801984923840361181025737969689878706081462676584807935396236036560010537920864120116127613320989174154963140767162512318064445272159915321616148642765156065062673393701593882122024005051265506315755976549447065398572923881049301397209821958023177773677324188295279035973275401792360529589245308288000533736350508543426597818081704651903555960817571543594779517145268473025846626056481438908854657993411132031528802302192770224999925059129082112831436612403634479116740906155959026340365454936296745225137884208676640580819417645324234846255901946182065549385672861485294718069943763297802320147772910267848710831892583652574640142005518231512401488234622217117439752231375509880242526744377546545474358913835053712880038422026753703161465369640116116004764725606647722419371288523457086426317144530833492422263179531543743316013460472899153577737891516922383544791395640577629186156916097277698090132202640112435789557515047434487625749658426633127578986080127093255664540335655518492401912187981384305224591793862315370878441655607223080558228907806004951500390437978185738022412877257864508394708765889241881009700600892722548542514146836914628944348781868339252856015954528911731119341555862712229560200239042290551550710578740110713886164530141109562289885032281636804422327664737477285519280714214069747781614278953207482937811793061015875995669310746093585896199770380323960683277881441019599248760843310814692521295256276473959583259624823112464496128152619396087736326930937592782839757645578913357080537935098030788243379305196349747617140344167479204984011996942711857781497442718449986841436492857515151461395406630572546221300276536706536496914507093035068494604791364987945386954697493261262984753957293010866641405981432879981881822101701319558674174355670613572408509867998984555057410494439846968122692644063164063050439420314324022937160881024244852504592001659892375311245691402398489574819109439534927099185048539865983947046991740277026218899019803912225471551903587074924410277827437539644183951978466841019600446050029839741042162921720020180845648648345667958262339141219776373639029560761352955748061709410410596446903042746536140769725769814026360103161424942569691516362096784811152361944893883495456770718367858625083076358415967362014974431700103135059710405391880913594082882200292050584238509574085021243875932090631870266521652852083038416296748758853181428545620512927295921395901196227259192439185087701369451619406515084314093162162678592344968429991248078908213270554312463802615048118284191617184249811531941612539803810586885619788203246415637355028535232632458070337759597629939530013413979753743606516285314964287012911213402371738585755100242306584571039256732902239135135864398631265476802591474302427446577623967242793164718069861310187576154963164552027332012865729105641782190076253851551261387183704809304749787810729752621512244871702669027951462575821799721314560380771479353546378621271127797595152944376323079170109605568417011232073720128672047281091905122701193636578837422198575653284255473088587119558365918341461170605777314854531481298790941178098530938856354626933109425307205195140195747064657720560373789933046061185118265773768860846983560111983390397345098038018840618413238327449912118145734073538549863311320677466909041350281045502995408376432974739109771355065198283812321843468056050009394667164165359259473608850864555731425053694231043438279012290697366648760459712070960189651356228036478835023442620586108639006894800992619297347350583984851724660108855112540854988094150146976991398731419917164382141480541167728989714389570129103350397120305060242526393070193054676871606090672608857970230275904413621762008466235896080511138012494418609677437502842458893456407746787630048872993042937610066411733293248090925150959601468171859272764152521922611034106979945750860145430349125489276896349964542005604228914908862477958304501954534757667432332763335365852448656725308244290992428430088414891522723695461303583181826119366800282358114098866170566559314757914564512271600250014017798485062986586708007737492994693271576226540635651066170125544144937451865390409570440115861213554705564608860060499044022803919201356577478653511845391682607684182945443875665436441404681613272163383511346520196227481075457212151620815885803371531325764577431766503574725343258921202666218445791640751157427659304245812393156382863833815933047223522799948543142911732865726018249478857766085633963841691900437022990692387824096787599003242736050280791549444766582167787956911650799149531795990956599649259476565561846670276107451756590990414801282487383456086209609780351610445562582489538711448878133705151090900200067108198808937392646521494589045620328568617147611334662446537388530882552052415087511350190106812491156992449992708432873095170496411077090247758745612088735351428994435962798417509775838669842358426252373181890830253030713710021046699898649049840121174621939541785370091806258978625313564143192044180215613079339771633939118572345954886353342352510090960476671776434251221998158705285130303813922408082975236972798933554754299421428421006420026279799317570960564704890224895400018729090312513225721003125777284907776751732450620731958834506809890493803328951318164556104980799778301537307803869359447556694648246043933748763067351920856247759311682699195513407294140919990956196522772412166340291971816437004841354419705627518787664179708238230702072184886255712447243970427671108166449636185409366861075413208189590076032421399856992001943569275704674712670818492886428316237354803288519122161034452898119201797650173776618241853480191931249639984941294242105591189765643249071950367109108864417633324132880075727447236090913365524392770495295088755157998369744396929552082932508871174148321201324383387282429340141831348497570858996603180334285550449309991408414764950287990561423242515333791315890498795793548020480241123443408188196258271417942469865482794471580241794368460564076265281010405293601155193585546754546656233505119977105995637260074661623952358790636216617733745671160515733189032090856299774958091680871737052448520344836960290108691627821358553378821570202088397286766521262682955653567507195273302115408228742016934558684779462467325140492813956225819714563236531693569348482596222487047616509591308634140286180067369337856298422966375404457873444108055347069270188338351000790067108879047168874160047573130160351341485093251816397900906507822587749761736242025993435592063116768375811362325870691588506582463723345007678037774031789864498465044767566505136554816071066456733379000786300608831698162932792554248389314648192669465938113879071427629844267502349344381824022009177569828768933856557057851898997494443896043890043311100850802199404128996610752540878340135546652888147323031730283146596691016042016973036530934178266968410418713377104906776354098913991189092773541578568074741932294972442976362861355646179277079706361329649876000987953798554174850901590599494269875381846132689778335927556119805651432401034086016289572258668561072554274760000531960325880637566091498419215086583684319257028492462927611015726079409817742515556519181562808253238622600972853908524517673603723769520896708122035623937253190496005331660931000848717745104602505414337908631595713616376608419999635730812455902585255410619130909662001758533771463112036613609607004218482264391296171996234802182329033779760945301288607350428247978674909985230825231597232250615393693550119521639119471495105920112919233688050093119936795564182488616915385449183672588441496263672397347123182967538970348438206728194787345717575502459469144851513299754171253912819688623461744472092924964519140834059980675987657033787530255383699674866485119113337645767538595355910388431290786513930589575604113856765864016110791847487842525234643605627505335807636089318671362101420794747496929357095956920692765928342962529043214161678225231827042824036181529707493988560246910808786877829010834835284356129141556426614611192248777398884579363655280078899636195296666772130424532108280637111212358901808203488233498959528316927733383572887548343361261454297968162100851174161017173667819690960791888405676660982201864379303531494926568916314002962664103246077021395050137190620423918311269789097492593116679933996588005112982435488211018141508114217021999374030409069944378130054047066888558598096187509981499986819122593038059853765893413993137916425525885515909367686615478980153196334768207032434604704853109361163314311196255169446983268037731574455429959764413703928103207912710217276736104955169790357114832630009215186968863282591891925594301757301432537078473069148873406997866788949520753996997090228043645127390226554945559848817360833477595340187835669587117275826770981605054064333457060584676051864964719626313612973721096113770943931888770106256706888911327769041811878426111399632587503838701880224550435409607755898377190833017279684096027361014742677150946201802658182442701615225428696979056503298832523750774097590220195179377087651559972540708446497823724160127828397898019889084341461035860075810835013212671967406313774216656901175826277170230573274331768020886038687594142580297425770914455601111353652629724730816397715659052804892222199401054836563794665113006113462473468449044178264004508948061422182870097499674505512647225299776339030661005970427619392363877607753410947626108451445606312432618668059697864577377437962056986285304038863144931242978542824062182198245516647775423360463960523635403708569098279819375703763574934882847600795158831519951847422361997560084146188774160093737790338228993102460809054767978691475328710279103660550976227933699421821678587719973949901575466985905582155655041121439139893389617202145536066200657528369821736854985004549681319009989388254128189241413443138650434928587346090192274877068997786416115596063389867272134288541917033188917522058480863128548195767504841306237211891232402190086292983833311430924973256850243266268152964805903258472640209083697026626367617978354936616216262740415253580677401829742798782398201196236697650009006361177619104569744502196447302124438474266767454269339340579670855914223532443093584970686477658378685557351235727115519385440229724275527302176766388868765443416445191724971795862253936948042788399043684808016923713794049175417300729687992750882006070272619083402258276182480629139251990972624053490284762629405974939153384991829106543500895945173955730689637782082552675090275351441177045765115974273868391025658406517122892886741988002600862802559310343592881632734071372219974657784227189749590580633637768124703792424967385989558723755054976869384936904245167742610662195105721302188874826962212134576591134806706704332754804838234702311566814342783371055688771856426637161248376126122355384685707283969567182500288457790735335348262321125868613394140082386073898482460519717139551156579677245685701341573611507495795515698648724051890443087786516191926250445286376634594143524691355002900754367942409380704230561801642341579093969284304820809529197473362641894034179589789857967394231369882337111220019512854370916475396816205642393575120258232968209563480229289656152284899846742734960211432890576924927308513640494670273420522830565423386535169372545010264764362065432031021085814726102422377190316397395061405844695085255057771847397896560736647630185818686175414983170776893997376796172568151403233205840557496886337851358864366915635724118822148238314848552202584930016748890018322620250641956541394320926458782803855003639195764934549707150409828006323214447720899657196416679000246402049778530470155892095968162858542564721652003400669395093786436830768506393499277817258322828457399686367278498548611405023657924066157560911705654790972202843985770627189083249764004379967011724644858522409907658461530653840818200267883236501792973783783846818605018651894959063155911340914408832699821978245436009052695609566347705443899447126829405442660743442836724021062750267517980749326585190824685425460105085229895422558600785627614646617357805540242802766310789502697664106515308529510705053162786858062699577926011439054130276578284667218772292576106627286913548341561532843580135629010625780620138795846098954812151606784579784335038390137335103900713324864049596614464663094057807836587042479955427256273730804657599336945979846211431857720996817520603017387331571791072419420905729481451752262303384009145641698488646411960898984757559080920990562659952308019417066681064566257529699170803628570848786856183679007973585160149243515897308627037724132555695664423825206675226537863091392280654526583504516254108827701869903855815260313747581093147812815817059373596203431886094358546447116054897764329743028767233273371250071545881510625334726980001861819436553422152147793044065950017200480301823720461925197697536796835051186103664113494684295393925908073215535079239169211644925118851280253158570757414592563351927846923551212830649880503095941839128113273577464203945841876974208640453882805204525261605725995225715800011100468391276967807589492503978333463491132472968259365562110450859703438424056141443657808714814254775480663109479501915795828673422093374898681988676473499220498690927588491490570486705381336539495439979060209518778100369564237332583499021706785084059155671134684255320388114754588270250506973621426374364226171090820328775755298494852213822612120453090285077773170518684129372046349333849337746052048926923924992177618674439338505418795119961893813094744266328246962233170805946780873238644237106225761977061318233531252053629146887289020360902625572445215653274695919402986329365091098268181761299168673021683371500305052645047416171035299940859540161772986194439481433506975007228668191889507868906337471097849901464023160817908884577994812973600185855414728745675498859035347314263020720914477201818826144627413865221208096563211985757633252582543092847132889627112655129224035201401954382592380797043961693215621410329617456932283282336360067595041188643215513562695046730197800224447424858403782503156939108483142167201180422984265010016466699871444248921764884714897047076214356919284751030065792367135113350636330597944235950815834928880470883258435370692596188709057435214988910965325260291659326819190408179757231429874292062954014766984862748343086195342878096124493948497056961772927405794049481104512996217871344512021451579254469542979298645021083960791764212414418360883449167021077591020893911577582192159176117749822899673484208785088677628327056334945582954338060439052866001767673139172028148461812660910057708186391353184441461132000506035249102248663566569779092447716945624327706741308982127722773401733212384919113023485149675316004939007326708248239742280387861459933808287211883468963373646167845199220740925379692696368182673398567579458585772882024875066574752036797121235853565827342806079172644873955313154102139933515038627794240620306763349980148463956003755341886453553788044468562916031285920308096604772655297894991816447373617598165660990368127736990393196269650255658977355008630104128739261232345075361111591257584964170282367977261060055951268776658367363502569884002652229130822645679147945612562114434285651337143773266067809806184576583520644164614666856696334769095075478755487673305388673974992643313918722271862328861887572338576923715100044476189248324935682424024410980807852899542388363512823306955018243995285203263035475072825140707526114428388200632621475509411960268966384179287206640026845338336470591570648664164874078463974427094919214371009809251409214498953405943538000426457469667720027359279081706896548878970984358422662937378834338780367221980238553011513345602387251632652154394322151820253482635566400684996497447943504497791893818009346617303069454463572170222291778220484942777849441460287569742893849157125186544616630657278380388549115175151979024637103782689565990646855796815052281139556436093981220925513016356442695758924004430535652980202368961599250556876603776269528971385959461780698556546836484493808435491818557519899451377027798461464216234677254723594944145204128629173946096989275304888181287151636152440128253834377651621416113179113782331856038834060744959156917038922680405019933563292084553158015728818517133177643446585061359296959865588348251599096426117555382943430259434811234412081705869291372914995629304274509352227644973455860673894105829761002715896309972001638829841771836424026339606357563759262305856487806891280908343362620992390499130592588364076090988661046550312107623964150981304075091873622268746539151553665332020842909666952769071392892355554731510915531204969509601787390569634782315331785279349781841397395232967656827091054973035255775588999020162327175727041690195745652645942763364522616503875282097334024256119128369427357057291781597496051928009271319611069117646314905790246312009871203954299983049487449591553062804630575579810115911316235192624773305899432952506657801262181834674681055644426945836540463506611521727617334561697648142140934878731767999251522919589042814733485500186870133662978247907163663909702386007589862125205838675243165345094759985886058335036187355184193868013461839276731070477251648552875565971831250847730342274180259287504520942159427021425935339234589802323114208067551869376625815884801081697464378199363526814478393678331635364802987586593123015449879993225401406660700753244251477436605351386115104127184847173642238632118531153647786914477750102171852152317189601520764810748926217562123394370372108742685496195316103910168422475242689370142597916565334259161580543067275507549588297397689449027830202007210258920270798852786211696333448187995870900725830385628458321891736270545112556030548693980295028909907275923828557088513940029074440234103843692903992945152518031781542637890058153261090246745758926274301745768561402512674992281397967109811985940876233818445700838173171009490339575440473352990049853546576524938104286466331884824413816871282146419787554668333214662332912311812424898575990509343881812678984785408338800955830877858843231211159114315454359682372839219134581844996458012123116961844965170040842682504298383488910946154664068951130302453552011229193047520551245024235409986683880409624809929560784857484470745227737332317625556545942599695599602964512478463029642269864393453941247413810942286145788626916868386795006221893325217898253821584567473781247908094868562504981498145272693622023517607449749689239390591727910568306953519544468489595835147101580372162325684073758548278140350029373172189447820300918720750180734495567813072656825003577229640543334182945768531762141394440934481352570084965551845559644148556481123707092187851615821498488355640229118828842448429362748673525022657820558569252429259365902104042214830783339160228926078958030975650169464194751396215990944328892760373318315714563221013738202836759126393250677214468832950741224439075155041626787755281308623081769714227370391889469758956096707828084091420579431708839245931896029716142021666448448610940684401157137619721847983518467898574828922401623486457825376775588356999272968964022121672273526897583724734527678278292732671135195928911767253631508927261407586449715243806323907370520537568093563700654349962844516646499489309706321606914199501969137328736316898323825114991692012651225013386395743821695402737562564701661796627939151016386313806145613788143848165952826117659538285469399301646134634991781454635753513346968866393587924459991839658406025510293558311934900105945227137755978654123838675566191627769024004484159087066644995376445353729918346155391293302928482136592528594743984778058052565965319484681516212846064833227446935749098142463021064035992510944706501951341960988207303809001241689227071431842539436376521468917011456919566057349354121463486730023433479106386473857447050343025107804501588708063011372513916265422145727529592602629331276058797416789428534103406943091032674180411622525504959287225465670603110841463703003945164790657965188202717118522035952423244672256307868762306256617881740678867146805038313802801652813467844903755164586470067864089235298922392050254172342280273521262247011234320348198680006222910426055700952361093882004572470002813087792974929797337893184912607817396303844284424373963686111233450445269200759334756529879968599961956167847986565309863060303393440852024152664502280659591383436707290790527799819581567412633728462899917671871959797323484323214930630452461256490171395908613941488557833250630628979775206093134099285546115284787567837697937726550150587200238906626919136248225187151437259937980853833419313195712897103698263156429170820696915371371920730209292988969386718679861656440607239499439089096102544403190909377577697360895236275638647159041735924402166732440943846444170669193035239139201954400982249902956638263152900657332633133409404376812666735284497770328617538164613082025727713078352819928929616728715094748102366420906897805516382560837321365570766110342569155927207694828029434207844735739935602065445485620927249373794765519903642437587697778715912230679351169054456026801504307254873141318092893929139610596337774496366224832533524943142656867229150845992026780107951932031463723972919696448744945042334453947216547040935497610567402009872383694230969222058566095063127411054084513560560269497045942829208732533796995437251757751709870591948997250763461110137788193618286529473616279633312137193892418936085776540584519750052283597068628607121907161172900772542644010576242764869442115696855939209624764090383213286390549863357662603619545571096298615752023184691175699756668999737387719693408394123534741979420588664348669113516756197185400440981205021525561474696719154342114876186616121246905428501171482353025645946699796882483660377050007037228214106832518844927274327907092990906185593169739430228760085200706051741064094667056406605810894278793596250316282136927671865733310449086051832056899778013597956291652440635719667692370326036839408711990689585559812901121823246254905682281414700843458153162439052948051322542866518031224010486709158207724134511082657159165328075369415837859435987728168523641597063924639884710102304930503140380616006643045188336684640335658271152242126450232616041448131842664868284743435231371549173352360849804965783386887324793343633322168645126340781342086532171306222150526034370279874598354258965032702591755977694410291932463228888727237049430595171067631096249869425001227383423280230138924644140510584080232800723206955735611168920884242155896486265458521575407667108362258634747872235924809018105493635470415661766301733624900393815902759648040897734554713619487190673524609244576501523427775931074371563905704625844518196506482467834512474003239028458996277344806014201162601483849409881170698416925539315429450933611063348535677653417357064038534299074065410568177221328286444127351316830006274414670440747245140189498423230498705161442280339569398829050945325114448145474529720375619083326332439856499870820635383617698385373647265594419958975334916839251855609455603503472029978509656229977418758165426312568582806688894658117029524288468810664343156289841592650959748543385508078421243727847366588643071958725774994016386000022460115027160948978435551565187766031298754899966058874396705660647609443615945837561618684138342204244264670717934758675895027286582037025102320437752478782783151980099251748327887425254307124711191990875156964751610442903248035983932780334089790361393968773434434606068191370273910234762341687546403082300933970039607889335455939297516648827250979983758179347634848729144169689269553155761623222062239455639538972903949479472969507466384736149264932283779455193975308272919309039219881293140224938245839098592561869256962317627755032978894560699673925316628797191338280571174849409027608638171195788104822335787288786640983280274267215539878643500941202644469745225607300197080336549177168466410528014197672156353820873941916140925659235039441554301134106068896906055346173750287603401336874950775646627239528324864126273315997886793942766500712044716350517079749745844728723600294879022440238436114140678297671300921027434132924069525018348712160509757916396297442437214983781861899653029831891897144260585312881270331342828988234510144378730388885023894215713953268638587311445659441681352228228037397994332409662760995486823471577402863190513942454994187609925331852828614186000495807013694353504147659970219426444909535589054291127085067729639542922169123451806123142905371562334510159388208128270725155086437369920096890538532506376357353942611468843815190156422793360576360580971270779904833535736331709705816864333457830208931508064040312047521829948269295180902168461212141600353113988902803121771165409615348622727166047725495638986948414691518273646927969421905042564908977094899106882664752894100576647633297549589372416398969111617252762518028241977616944246346140214256471087946328005043499507600565180809144651812658404286016073895493665269005437411160846359337066711680580844813915483906280365097273941865135730902652982547889764185081481961028311438522697599146363803579130463392690224860193486309807705496634221485691864961630090278156192503903851191312244647218270304636483525413058546528112531944817408027447159313647107011895316937676747139780430008336512568599364847196689973228994052989526144399909128229514822129127956223652583266313764827146146811149568293376134799574094728592619304736013985354377413042883940170825842557862210972250863934403647089896053383325080732083627116033646300825172414097467520211100583514316185765240010148853264107947157154138911066588493867122134504924054927534707191454507678630111605738534475177983933223678062677795731591953124563121957377692150509802287627255484159816015448971113187142484510649623681343487087136693433518616282786535793764566847372511131312903485213900095070177526119800366052771544147424705764012073985080472886920648735563839133878445567263665677040888441567646589058874838738330034964975330261238588760217027465405420846172056110626035381417497099661718808869703947950100266454709366267973605364272490947649526947042624547733514257509177359882872017024472703931476808213222632176971909398249045480360303017118480440875086948849430132761711567192396276758598630602991787799344077346398419660047066783572217412161446922835807587496999346160735075093737010253111778163738079963646982334070160910064337427241371446686209768626730176122957739030411581645075341272036182210242300227464428904780153562249769770806336619880433542709633230883211891738926517053379818526303666172372286038671249856505959431592427616875197404950742640886901528069130156077327410857443137655553417469255604796534404437027538471160191615206638583904565837947340876124676405219092647049703589678586188948133412246514176997975734822854749393512699403430433871772493430525065985714717442080322080443317581899000124153238145025845059771138839477449691620408345641705509799164334721216897642555057977577351633464553065734354535430425793801684734720248473635633994693587095909791357486705292606919788605626234888071468463673032412343736511901915163846138102664334364918095803307361346936835198811870317415849782385529368375234473893398417760861979843766597531514876617682899917339247330580550989058672035108087992372938860038804121188309540206421910756870103561137498709726918660907888179702105850665611646631139190360973306597124734377408334251232579301644633382391955225126921535677085896332347925877759844164843395737690757836568146409717661709114060648357401215440003032031708232234331234977024451872544137659911010261565140728928638218827301959324842312628316053963387593071293287720164332586265057610759135662243977085012179758335180198192340225799969566406381040715489576776331793231878918122455842670866033205169195870695681618112015467264583210906303867971534466449682746597028631287992323095625905633563980228478809402917563140740542023951176328483655546544272601709202315476205931812027319004730731122079226663928785155353897349996348605720245316151553037573193945011013644773416525623865470196005054884244562856380149671257904534030736304817797032931458439086145028714643831562352279185180866457033834249140980400253813132694662945710634272974497782864705284844821399505166935939002177672676341755469114869955084580981958247876222575075676133315998290273942894111836605613328779119208314801646259264107322979871360950099868949292768839985759971354694962324124376250509598050767288626809738018046810726629781488908752881280208165309844110458076575039322899585416299799048246324275144018415465633134194122151446462647768603288794136385683736044525381917289269517375748091438629381039674438363340556297373821623347941889853672557532585763792162913581095872834607858098940417706897453913911375965002655210770210258106825088178921942009256754601175035230259807071242978416663228224921552814852578970002035901719536101430660058324596634631059054433700178727615448894390705680018758004328935132461092754319878273468731701016332012112514393100095937419320098571662725031563148074102815661196259816641211505589503652565715731061142207372247514251845008460812421064294858326563650734801568484403620153349847470454603237193971005136746513212106448183449446160049199691534667993327126285654354331227872477429609637002954548678993353298734934013972242045249019044885687455147632344935209855523446351052316610663213100524496182795313619221864560198238824019044833595817345074283024680310732014167106282824647914902485886316978588101057625460399167813720127408116324418134534328476332236394063082888421930220238199881201522469061097336593763374393313131789485125101432773244659655523751349436710392031800180790715150663113869794256906135437649014695234324209500929736287886435598067236346050396482395274204965868786250032955981163084314676228406698981651747773704476055385169571301054817610568395481272301400377919592605947265498646856755297954726081147903461167824194967419161029448092998460051570856474474421058961333009281151361642724699460182174476813861064796397095974950883415925357190952556564418212013264468899987330732124365134878553793244439031906382784616552910378180020637978046295181555713713243832964991190725186201878147722282771807718927987495384676704053790220450244766103354173292905223323547288147776739729733799880273832616322730299026357495037821337701714499060333454551503983849554545297828125104884679260478011896442003831651006851783091963644188470228093986443528256085408099190672205745934470521199845331954238097915872264287558236898583232674342549185820360548505994095490994237780337135584580554007789316848257395869260810373345967125844700396268561210583687631685167674290676089320746930827222222715953341688580647162913804876776036985113200225626491485799355841606684964405200185582224112255190886319148470630685540798917451480787523593277745580229930359012005851196152474181299888991148999551292156835882282642191341525887431356604313238649932185410201990207475573301970050592123218706468626961867944242289771660529863467278598461010149301207587254934556695151775459651925366009820067353741762747294130287215314419290726054251949464979848038173117250380532102525053482320004446453524644560823714134517349804504514130668415653057153148109796686891202243702622508602785388559566890905171186691283884440547309587869179551105791588617118911747637773430099342257941911467800909128366051279304771148176459437582682548149500503480196743453736195359625585443300450865464049460835076644880577091072483437636864234404105616334279326543545935702410485856326811449013185393924045994189976941011181041489621340847009911873359126412874200570383959699284020659649161748645972750334678520669909997253158778521923843102232038830573698380001372662273947114358092323698955023522392099065509703926569716668331570637655812611010292591981925421759758898974803756490187300151242876798800468479232266889931455563999081094687235835254305265077059930876447752615923812865951127882041679419605270769883647955538747353345854698953580690303050219000262711968505049497932636513622826974085765534157460634039295094846734442691973627782169001640180169779947833009047240248581496579600845382663496447072543597905207373390567344758706729983810900323725012829886397978095030068852106079243802082537208437666387964040872999016990988256014812250984802404424328876372946659721578586928792444815643284224221831939310945642132873807457652095772077930626069091224414012615168990692453279473180835452742937393406664574274709718317200925489861839717809352549147237927209685844085781366460466728327355230822602613008930230722415733431161385990209944637453457840516086120542142878743834853544372918197706856264095760347729788661421291314645743818926591642754658809051802998615891033466647933862973439095578919588479990442025492699862157109119639144918663634005517730782696271333758454415567867981630166027883961177943443547820392106340871620786699348111939875652152826444343412401170559689482366647363465443145951723422601358420327572319696564292784955731935813451491783278543483803066284113025427165491691572386117376373217979940718085265921283983247472007476654292126707724157125375701697785503716323787532607905899835475142234300449033628213161669642794304616864436624108308820060311565616992523060615794741930872192306743719541676798657228592599512319031736826385943048512088080489130080721608150987672931941928359439226761411311517968786156641201897745955820755073110606999740490880987984463208915773285869382094468692696108577357944471796827095052350137506076660904925717917499767856573723327137346964636698440218396358695785566194145134260974839276941802520723533878004317642880605161022022303621514895419916072961072218341217307794798985835424783978251045059864729888614387057434504901536123495317180807485934806242506227775402619111972330456969397714312968242070469550682408887711091753888569860201186134034012283887766110454655288251271524257447938095276734459888707295391359119067982562176927886883387314009434413410000368616764305773716513391842416615929692608159253377580417459025524524238286883450792473286073452676503780343668054859410150398414325162759028890277659450331753937653679820065188882310352014028058956544940709559121572777853225055037501515760783679058066703708236126613209748534644164786175857535817170111388086689696752842060377475217188629108459037850221095463123657190521351501415903170637565834459700531952750288162602387697827662605002136481509002394681420754746023766569481556802747406029541021429779271153977898492849474784853500479449033552748101043205341148374075146397477431218598322326079473135192912742510265852562249151730752479460438459613444492711720200765643633241647955619863190900302030777345682923080758876497919683134802107680519112542681465603010724387542305993949552406349442584743530913347723324946738250183660975265433425084047061907170612837254003607552266755139536336907639532952084174818944166550506819657833932050365526315618062970693910688953210864719108762641046333869145816436316603093933066474852120289625682052802436104003400514030081802486142099297713065513933971729978999300477322234949291992177868638088603946672154502247761865349357102524290463428180548225243140876430032038518013339121122049304283955618959883666128571526190502850994357186974277795729895438890060670701887642442724580648957629762038617912006831299826889123627070127959641534388669026125974200463343213342777931471228224975485706026677886297149381181448201539420565211724734392665758520160886606917933553125015406726345029932464705212668757240755397896326412539909336973548023409425254438705145822905154535796486752977427033098010971706917110637999562694370793136299800062795474065180052769009023423903526012640190820726728633388853768830473598848709491857782389155812303111397906392411587164377048404681105342841665112395934973218250836796889351544868866683897577444434557621961483104741594396201787977301242140980256887068516938023254531816182795844908801282020720674491945356125667230542511786278539804670679754936743842433330255116917181522162593691664769074737832231384136745298881869176760327494922681479633812459898318452149825232739800853160718839496708455455678997131472542480343502776991383667632786182671213038341053421491957646501802143858928346409159865439775465597616538979464656624171271379821466566486799192327646011171027120348051840316547701572376662364900658838487037632631536025494729425817282272157764335547268114373541052172387218712792533163113943583012716213891550702295353562506097949262978758400048025791797288558272192053725181456667722350620966290668422745395945092961035728481474523028468642626020106942873451675332913985241232239450106442895079987671340182562456103790645961597712429489953436510541313288006149672093385384195877267698935841215530900834419054554289342155856233120957272787807850469464940944894746069518736333908423956683695262142716235940946687168606065590035476123270114325438891572067792985965356459405725211712316236864892072333481237072847700481598852448376728284860205435974566714566557059826670591185290204492412533642114024721627508595915833487135494797405932758090588822215745089753354649398943953585226234500683237400217810534553542861980955055494523288945192004394444005936188666879874603693986747723663609933982436671372976043234967009733416938254417895179133643083187486350857739267847242812424220912601706094061388884744691531003416744684490442859502051921570141876413010826330328718847463818228171416018713022204337411166462630842880534449583223902115301380493617541240926258030386217974454812810685227247521976517830461503336789223800626427268063283842454913807116958351448117410681391969651968992571277288460900737988357087993839145054779605862256046476735362365062860907670568490091248270798921087290703394802292793498366669899721709563934343749585715405813580804672967245634878787064020043107172621035884596927983753939499977943852114114757450342827813401605602534336637721333853782428702216538175488513280372484961238336888670189344336607719128553603160590794190892325312333677024616388593483663722756527568848564213527350587602074074287436411920721838121289307849153448624618079865127768226598474734197073282263235688936801895868293219205024858409204738749344459476852630155244714029514577557209539020013896094137245291365218010129565360531350406527451372548586758356364706785532194714477308699808644035156854191009720579258684202990192791113254171473119706801645275598216836897931262599552482281173306991785209316999517950384383170366171764286193605489293182110536661636853124193480879178841439503473504413286389378366377901614560681387604332223553550762174803159325766294950041282053885105870579075828989116748530163982624853909222450065730087476920966230337573684887764874285424646839450437416058882870432503301314348348108102192733139198821227374314164000316216066446268389812153970719683122607499092502776415427336067330631280368602617763709904867146326330608829087270059144650016772969289239848163428042488362175793054168642364002583877129230499199883438914056922721736460391920932513169933875091375039793763620961562906458669646629095774255658304766817186027613637212638760154579507098779047235377311120633235472650275644696865874740030929452744144307149153172889076358198092026549166972849822735562443214463564697849977515256069251365367325089243182637423730144502843631544179605180368202453849420868428827467323491265675991066945384214600752949954853859098718014716579971297424533164337256028364425455709715371566063983777840788251369019811947920302668065558110627320970849753793471725635404477982092103295748076562099051475340496288100745065456750700952034103370859687552685873768910830119122730296068717459633533278661023407355360838704609021962853113428446796344908239103493527736945076180291440587753529638097908721324138690048709579550580258076170832459067105253843073788055476317884598256765761509378172441453075473013289415337371460373561316503995290711713661981556851585327316881919094507052512546685711022472729544007842017287075869768204347154853438589155221318186525371422339832081611411421566603892490789520375801890264262325750935095672549240689311562491777168050477067376940569511398176787558577138446950276601929758867218357688892348553483125715308053136404361883239886011468516533766521224555849725852169134096802009585999501879467898449313292430633152157422687492356315520146900569624319477230655068282249575100119556096829692372049481548109411230354181854078475702646181003917717084851614064247116280213409795040683659269207102695075210439036748406657764877812540037956087330717655825304063759402437331160083048419152889340135516715772403131894121855331698702182881492899702023675001028004646023266236976894438507769549600442807162214552382534415572893728913802803003257414857499568402390922276429369162848520481325277279551772619862806379099217751748224709857569525488625246721346784221248183780988961753679794986471054899055673913264805350901250872548856464359817139105401042705473302628725771722291581188542376625991509592280328856002350055340931421838703877340037998271775916912281087284766511618367982871557387327314898388791593905359287922317419975197435627347143059818597167489072410257884574478487542628355824503063389831299134059569216061758748064069342718733797485603387395190890803435903745848762543654103335850414188875637110429732801616952540334475339194570298770400368042453471665163371121278220060467173292107443726807669269368036501796778353187723619526032965920499358867100743660253405491262202999711029659639344802912100846307141568762895278438811586791020343699458459629600309158258603441362355796462569806602882957258694825148227752624186465718591878424227794319903804753617483308804929009274255685820689858236695220894978931205676137666974352309447294771206853177200857280449981297948028926903067931349094593971524893859128598968344188655944205313867339536085207478357795722123729602948644757747132880258868189197879727991102009152006174188209722223316653078492489704701331701444253167103427894195917844369660581756396351544124025467519470566512037828610550541236889736813516495960250017392609079811076139152006051509714407515152001512780357918414490095847179076207068031666312770034867972324873233427287252670144162524502486860899491711375954937760696403899527659531922474751617227625301328775917674808041416400673999696990454850858958597791160010785187059090537550348230542615431750383436786234116888155658075581827339597294779779272901275651237419342403492687778960153314542518259236043695985670026169489483297344796004225279266982196436759351634168379420277505564213063240451717227897879713044110867737007896180788625364541537386816597123632300331771291118201236953336400323786561277335123112920557493410133657005073009788040488252177227730764936164113975084234635280219599588689150640722881618141747182577577527790102223329943600791555414876009212716451286228914943940030177624382382859801398827074044391666666161265506608235400886835489251665540171994556970584341473966676841335280688601884451586417798834187356135665657011872834862234701655336076683003409451812653140011920862125704305832814238412425748706373511102100285680021215136931086312712717266908252573505745029733247467307548637668373789876969093657066986179596125537174116690911810533869765358060880728190594504966623614681349494631215930874813325874558584389183508671630580155894387856387392578873762318270376445932143613061479046272448919007195303095465442995793611612408556192732406997022244417249095195388956114396425568184316606969717464836543729607400037733635870332666594535522007287565845038420380927722799658029188041901312502151212638611530821825627801803177402744362428928075311431919701913886355800229647548764536213964027115621476875113694136247315919469079086506720725543704256932793605995305393792792973036195248658190715203613219020894878381220752809327171711952835271931570857273611205039391867586360247277505022234857395829582759055497219517330062043202652990593743473388090074967117777327959877262338187277919642093369837346363850585938357304442078860782587705959546826363332737772255065039186704875307089892532106563084558389414570432124539325116313045626001277235689142616111502257904946165899059780133279210427322879802299275826035285234786041477037192105225511256783406875479107274845188741606715630066117656861691376689773718241527723244567530651183654062839491962876367267709078751103930603102810507246060461368903098013955027311057353430364929948287329464710674949661359322017012392103041932922633889454428156698799691634299836904701194926531459223182449263281725162333052988336774387099886578043836888145201448700562325721204267331186946013580085875505428949168028781703327293442906882133977198242480378139036325430007648229525725363036859957517973115197233275246105742059081841266128507745793337968338351514518184090064389245467525289205658263643004387525891694827892089906310964133460790981657822689968954297820130907939303007288753365107149047592560214358828583392417212392299467081073903327032205807322466664268806437797217944887992559514717062579244112226632510819911799830949724622919025633735445639341964149957404984941045872611844346132819720569817154600937894500721306019417322034712347580827879253433738981542668575486753268022038867533134060885585195364974858208820938458800980708089955345386497892859023610065398869109837859361720688243357762165823024788181719626338756471906628499602823228877513071595479466487034453033853292611358896875099546629156435226331913653135793410938657612973426194263596357903984059862291730456846067802342092702714507451801009378407186279666363647468051335511219321494332618314952240384288975744258409662029788784924615414357708611433074729475014888075960027962575899701103405558010659349233214089791598348596313191140432645849953606712919611633204033177889416299863417056056604807233875257526047131736382259688421730385756108624424303235273950529635825508646722440117276796718307826862951681727193218608406264930281187978774019292010942197429352501726259359761465540876593626685480973071795588850741754666073595443853105843866109983024573843364494305909127556461608552489670273827336635238956747676368035647969235777124570722746349401997794563894631916178298318979135391049218861690155684072402355326366820777489528176086210914455547098900019405712567795225270377685748735179636733228717530618979110584251327666836009526021632135924896202282152408689197282839479397345815132395511656184083272318606980525525359575084840747211381699616625509471794824683429164651395452248218467508474311596268951382826913967056806582368080707407931900133194188608688545569997055100776879749208078906153297902777043895216477942844373644440640069084954055152908974294033548656849980681106066806043753085032561514503376609078345121731108551803404880847653667889226387748716042279455512410646301565597916818756050640645623750391057239413664105879694842624847538460477298362956137057749670764000232785799596550848675045931375137647292423617869528624025512700652907520547752255188603516826681694379176918396062155316713644362134652359228831972218701227038534521846167134332001764118017812872968955063055241272665227422796649415396123069256431687013052401215409774931572282458155912541772589298776520795047311294851615863533832624414175199784764461367875361789936503204317420069854446919586740383334329480968986699903347185441567423179587114122808320251776927428806591831365129702037171184504143701875805769391552700729960587195509935709377128498348564236765383201116373495253864521267637819352624299932081338480454252999614468183694033959246357911847329486603707953627618175837769498623839025880364866729297797102018053944244756161444317811899225183938307562119901333705259762288300346669594922416546207864464280322323359009933792704332449853230878323633646838749717566520742882334541684111727929356520614371686643908014972206885108066996848515531316195636381641803232830570067957126725041825200704192997089012665915918210301284177346872804781661499482053525481787013805686471766270206852951979715822961561452069791333573899898325263493442924201829642406186676415583236009955519124222500398193326270544757776339233295051168579915330560859292094789238893998339002844459703764518292118221924276008119393955426580400503962987441066736745432931796915813118247862838819385281174300462036945173667138845312120623771505573082249281380114693388658234146528666377202379576953866709565822482343432230736738920430171235048125253392836762024881335380652120557164106095891325142792496936195484277574563336193376732380481230035388191596094388786099380473971836134823228252912923964410224382559768055556718589321294510347932309618513355169999709772420365724470904573436431343718264216620580484021776593617411975809574687034448040098152731514304638968595454116077457314710122969023802386403065522911077268968155114998013903154267547236772804149540970390645870628282520679407975491580167564759139364309196955839694065066276024200784789369708554570438714074870440369600512459161788303673381896131547012132651450931294181441567724328534706048992181727130100926822669906634604246147139951647059192089489179460828686187827826664071339637185114034997601542003242438756980770453951903850473267287283511736405277696652763374815673399459502035827936863401167156923409185047584185860412498455484039809156628388567879651726432443742416684422391542825662699642356047092894272164724628917451962404664437801141598527112819947884001848352079311498355856452432433453637729248411817326790572455313132691031308733791282873656562465917940443360532195288722986573027426090008679933119423523673342613363786991451188396581590189977169474671915229227865610686744076019274446701163992044306706426355543264607913610946913714966712955157709535381133685589250505947546587301350317487727951085463955711039440393337368661163980772713848025861415848447485167332163233997892872464078677668794574553447525033259834504509629480003216117231950725652243491760919080732139735205794491562667175447806310846211410346659537981189108564397874105503802328739550849014858304358020137477407401648461645326234897359931253115360118622160281113035872995760303883869828790537397402182113403353156067829173909285119670258085042714644046541864458114523800376118335799513083993706849798792074592307164854693883901581032677653428963276194302892098995492169815145166013383327764672375182059724110196166560391184931819422443580388740439824473053175015173372590363955811871132675797542617222200149174470557432480579045179759050532441400617712567105436298508040227374197711115488359169418969885867205482122560213755407366223565626826993315910971918874076661658554236183608706326775089588350797314710461273369493015698394878911304756507042064091438004334797823445993939844526336874625840349932540978497927903841840224339038417033229607498628306592132622718885339531588357491709295524580624364754406914704302943083007812566690364191787545275046272796295964307551867344671079445795558857906106264909485366993542950396253271639933396565026936623329930369597974410895930473632217788190674367428203713946777930497603639581118353415011361128693991418831227332821385512075967340466653987025814872658576749848471986292183988995754081373447745388872257325834073350837407975035384481548964023149010041800220735712338127875738932375082017215266674599489940756939130556811212676020815567212093737306336376863757165806827565311678863804305530772714619034585367533217848826630842992533981717588640197790533813404989692277419583918344153109847449554081115149257869526828703224120692241823372349459687190860419936891681283184902295242038485069918825306757278127646367607194906270831533682878309868443768980925966364903828020214237509400174226430038218147614479309124139007448709150217151818499683354210015592550916104241807423110011009741475018182855010871844753600703042395079454990514129188354080486853218470571014810830673981594495907082076037602899586714136499945468825639432003928154351235616354437151035789134257014691354788056650578021599229865326279790305565027091632834456678676773304788589190352552542278375913765526644331458223220035798608930483305358253179642899242485528512525516878184962746763993929480798016985100776561555785639243169797690758860559919593631299298407085184366098627951644639175145589914579506387551403111478442268408697340436877051939425008777495538395270576395537038859415257207314920329718885539369586460943257556648482261725421106606611472272820206410533753235859765946844635748416398015342761046489623108324405606705516261210711559106617875326124213718654168124146930942352467035890477572569246295556369278307856426052579904480522881603077955210441778659061856351738318465919479608666196909598677478067067238990003367721956969482994373503921979198027308991033097684983067110649657944230549438309690002142951866922694269522568261183530987567400532988450996975910570219258542277943714007376218354272446130504272494539326536267418003872257760887616017370619003105593986544029018397439378381946551758756750489103437161030032168393668002708589852686481232421865258440024554675033622589033866618184573767384167625367919097271039575817926028456592495667705137226217322058009994302723951785004530711088880146216053393057580283913490221301146099650537570381146188646172836342095814939698179721302333454455280473704776469291071262726571279349925094104657019870216995354919744564489128078420905011716372317522230096317236909565638976639661130313008820670611774616537283655748614999147068105111026783771176490047095919315797954054622933749548942195644033955002841066539820901458744807327182506022340658859092063834565186337974093996868031619785757353974962179048395240044932013612921071530794477508213082964254002861195389694579178045104799689327137802540308230709365753308346531897769003609098561570502326319770264754096781437513444298632510320493581670736004297099231537833492455451367251314431766666309352550510888805452545162818282336619948935003804340105729192629595090377848553506838246311001539309189146862917816583915428080480974615698728347382131276538308212200524470124997179021724393015028899832304179880480846601223322859791677980750345050688956904183242858902678125300222167991229247783277675917163483999376018150583991197052888738635856905941225876717870311630577700728128663552621740006827574987198425131986861216851726680271571547125168164944008993424097064414156321650432400156571178977552933481234559291236941827200052526842585394604010606258669119490562682346304374500718642163553535768916210320578711095109158770111286847218828200251964455426741782201046444375630697790728873566192948150700404508151518667980340853437534966316569748490240880124212925608328766167167953343449196754898499497205359873397148625819772445413875582209223263020779208407687756200230711207470694937725715290990012575269423853826754495980807945835706965920255218161049063757910460018752424102448341611408896276074284011210028545037111386858104294685052983635661218548092511283734948487842155030716894221044967859417189939508178855268004226502164124393275157419436873148070749460998889362938549079082281403073585000173980316655673647705020991505044169546126474967350606182673964950826819135932348732578792037998878984355699907166309629838587671604799463111992715433626394451451254499297719518672826199286218840755645015370818569190305596046635297026986218609347174731961003756525700019750639939814572507055965053929215261989891510380797446259813058490623091486457593492942881508176105234270973344875598320188235850040600119534203584744146894711574610102168341421465170409316020292299634206427554333434845783114894216574033913525052577813274446277687302473681773747427010279045386135062403505792301453062881075312583180977716573252523504097421325644652727281928650302833896373640471715847553687867483597382610198575808961816568606274442817924464068895735266355008971553100097335482983935311199916454291571295581704545079746363766573794353170449758160448360827969813835688097804101173964463731445666906572640667019049492636207761562407975358034529522929930016300462266576596761418993010579446279266124996940674899707433976960114995833320579971198608646379773272554660433871167709227837638697884911329730244903589438539445805544614112602314298258255799486893041455617513674735948679636819181192228354042335403145393326496168765421970330271624496809437063795581450228593822360291306358673061747462007833221548706038341999393755365448615249071554637437194720011483425098470874669574723899219727674971872422431086985085765733002896787366295516122894895939260420425265233159032780735552878194689343452883750551677763404446628852875134701907202021205798049204996847344208970988790645382556906827677104206898117365714013456372701862659512060600644752971756422925996742648857978957401625949265020630815725624471340120036436844031941572674783665767811788451595983256492942729593853499245235840310634234700715313644734281165539193670734938321927722211929381233679851032839661552579385865084731292111343845518815673148141629678131019687911802789480554592147100304523594005604693582138159838429026539400175454550823621678344847007726475561811249295750703367192049231490770794259468761078507953475371325947030009055834658006000883347915436134059177707311355326880229315300966960490330098001046066107807686649619630525425291969873305886706180957448803741684136150184920560933326188965063698332994492038129174414311720509471945121966754397159216546894038468958597873667451683085603506029976924822838999118407130438141688762884211551568613368199466115849508008476470313354015602939979269471870324023332178868488177472793296702529958186783120516636054591130716246684033055023819387840265586678044244117951071342953044115001609653772256104224688906317172937863025467816677877570043884123200613352872017202150662054308461063420693378134517492351810896618837338531048248312879353937697586415233629348380764417948359623022976662494198125321424803094680690321793162141438193542911910349526774620787756777050474798559574455933355604767884497968358185178534405780187301255058166418924825704660508806540199945931903688277334948548892579720570069229836023616448935655754391914418719989904446021356610271362497659804137398112931632920623558148941813587982284697250054082899239980696376075708433252672000534534870079384369819738700577832871403785119928352071611958094294385987012655778475014153306771825357720037864404433717820036067317237384179419297857888289043337464796683555195184193791694150912339554618813552219086751419869312263430986196779191970831754860363149297385311950908377988500512161508160407024215622429772483549683449469482014954346845473706785884927048717385402712549148186885038569108940140643914181277910324222370613774420699106379333036702865038451885015780742695440922685023729807147373343352757556333183203869375984211759263410277164129479800938662817857168988104246710219526220039360232479641375834807895669922208194016161998197238886984333328060003740975810314680390114368526991738003363180353043576072703125892598099519840989309097176728730339214776527879085489450272277900436680070526589860737310524871412670650461984896191830440477332403117183620417782858989252096555882047393097555217344327743134593816046002751933268334357506547967816206949021785009494326994449312532084371285935694037812560067414859407397978501170834260027879544561085933193660346910076443952503859235489204817804781850560711154745304205076886475668104743175116523992248214589185133947019297029083534274439337754172914555123317171610947146564271812314991102389507567053846439236505785332200007723552783709263889157418630883322818151062562750407150610551689071449713933822415387517351600463828661624526136790200787241697112472872616508809553026820184803843995514574807260771207074321274280453200475983562516204030582683006398644952695217442856347286217591159764728735094795678214337870458591576766886566802743936461775356803099255733475075078492566083805771990372056559675178986617172055924279670482340448379425825528848506421499021755918114642072556998267119973916410349937595117337725123297874821711677943653278956493075539437141746456954634712076007974517501849926047747937919804232398157522824344608485069627815243345267264103896978642295918946769312471969191244623154824481697339480302111641632822509637529703024742064691028388039283790913393807281611388660269437566920077719858146687766228065025677154153829218996554941525107484733833858369751126702902726108747831621583255723021136182228097341489905097220568190148392872724987013016051937213719333801462039407290869060163266033124296569489392268755553710014585933510938135736369922600854255261386958927062685900379043192745397294811767623012231703126296728926813462523709194842573306063504512463732143492251737748131135678512018740845325688987128726522954362201484058640134516567384508415412882318971347746142710583746297286624530849199182689833465088724542135590914335353904511302436658846550135441459874217185901559153803751830884621723626512885953192103146536656574422489283862212273492137275192207300833288541594909449498056900875143422277714185029767906279423043248199946801878775985792687114517847271276539257422799976489331551819057984316235994454972032404694655006623359350593089823864716692331933564453721555919193508281047724027807038076524360807492912897653569626592245875154173170477379311740922451934353693558882815284091165693378444040719893715247627123438069867941946750133616810658601669665037694008384512114885411823490716816857699648997439730938286138022315232060112800448947701218956061253871272834378128884278953382958123375004416546268241009035143574516058719181573810065631431714242111542601933988010338838479309792234977066344923479229708927932651654103662905042414090626574680074045539627527393416187613604148868415714969895230842693438998051271213971441790341339014160044837671232375632159557114579718247096612908549804826293764096143923733498443198764196189883625949295175898215032501348436411982575354170322583442728227761812455968543880332942022542090010779412280584840074186216375013705960544819542282203601342188060291623487164731543258511388771693713296201189339860795632248144357607916463258107734359812518104331556553264444879071213309067233382180001008065126568476047307332689772261682735050381965348885385436541536992605946301772450716921080221091670937354274754286170567025746483720332780122601514433758071310358368829655224579332704947991010467217427950230087186421997408723030407720476988319752011069610402992676181264863120541055535300580691632903281732103173780992235197130291061345435794651738915146355797715190082796253661024091745687123110633660969430739896446081733518777890158273154477073734329791225823304505746822066308410436927538159941602069021124884452656780111545777444393805082385723270338809960035404308710363077944889282164638609676606202272315117892291325928188558279035386082032424363190189652900649503666759569131406716079008236680375719048426876553958860752666813993797644895871616214767574819677959679130508746638100714856812239372470011214350317228210581098170565461544507631339141511021855376408032075675959502638617619931814804973348564486318793472994730238553040200464788754920480525775653715514629190502436469538686068871980320114103670910046374766215086129182447127756995974383742783336797330244597679111427645038607940234646827237202153643140060283892480771935867534506417202043702129080573170813166743070977660357390879290551933719303542933944091749354214941634663261651913856069886219069110113086129641924612926343981720740803036625847872649839243989473739068373116020952309533795640082671845909354937451818509982766114231971116366107644000018721656506271956429341417988100862340804112358827316769841004877662887362988786684061461930985622222780785933519106464086626688925565966021921022489629684185311411049456546830596901974053608095487171441996702472309966943384507057342447478794317472640031657021676677989354012442344997559967529429762535641020945661201744323380600859371854872150559334231117348321019692452644136947570999880729103374087964002356617536838838618604243926671238700558316475790847811299038002682181902113543249773257438193289816061900010973450605755125957642303439086729558762054208857245728168322726574083820062421589596655376372723973213586878921247784450095529410466798762590979380043351635477921472835089476557076377452154653825200714562360303974287543965116878122400009046903099166959552840965352507378678875055857911028596048950062902959628726873396859580770998710549520103226752965866236253249913861009201828789365746579972337179974199544029154117161377981953789126511595350976456777534015072705883149439650099064895522767276367067417438636326666781867901556430213870614710381671217092060751140313282972149172227076195934408538313879279213062232068108552007290683947623305606657170889829296456883635785403437859740068118759052889784774745570945173503922460218864678411826370902770392972285704680360435361140971407212984938028096659967852088914709481233609337359373687618460878594197802085479647204948727030382509098302726367000165241195880326921068503596146837858409609987954688714018792967568016702598948436840380474255840981691727065474284060421378114156746133186971108138115078631794815355224476502111951241144567389466077039363048629367707139244182205592854998931829507016748340490006487393716604185324576663155341940036641193883973474271656902716393980317394553844484684140418971860878092520931348950240351569739708484767814881961182126384785152289800663106115051140374228007023466930535423514539126627851628718629917701376070928699105886043596432085218246892868209593402072967639523765963383333994006621606775381832520983898900977983585646460110525947555667782387684876078773661081079805869835726256621460058954120675460847498618353352479445903401602155863758789577653008163443432754632434159802471589573303181476934623806570623914579496378810762435004256462253296860908865121022815713783603492665488305855782722473259803107237928332447853076454985843645248756804527061758783634690521451152469687628046135715893927427417982591172690063512158015874111483984088411270553311277108351910999757312972682604911904187995068109564519146877960097509417412770622577136689025740539590187468596197459400543732055897009278570127045660710143995734450411180167165955952191348730173759216566878864487275358138769854641471044047656861569531851511720193613766860053388086260816566229110398799130758191941339293422324632449878129369006397396514894488133413170622845285275194054771517050381657954368082863360212527785423206762025155449322462274339163713679788426166599311322411128537864053208350192026039819411737772967871021721482670695352184498326569203595515979816001342650733502100180764316416790448036393273145554735580907279640953972024244762723952773412747470815608652683765841286688160610126752215567941255469099026099339892072519832831433033037922627076359900563324260712178767808285999616462692655436547418280276358703206824117980196011264438105922403739565431675169480908027421802512793723020077534174517248996003307091567560992824855050392193627487962454269486944635269541783749451949078318311757455118932201421573669697522123009233772210732393817631114890662867161649103627865355717034045253161195423624262157068188325375900348280065033508077239328058174351266769377044970017953410791353059880977124649430239359731046866606768144265764373180622168303527988066186458285958652435387046540961788114302445076327522963357019420876399989308426949841932907215897140225098910079096996995142862945172140703104241205027266828727173388001097872700139372014204074608080142221913494495422364542557483977719670764526106282077688349723473185746191127294596585997245590727603778192571663239480417778985384875962555531299056187894448061960357019463450070411710893799357672301767552263250342889103526489702930027052736504332075822363747123477699884104351111291105974700752794694212514500106144911514253473672761385046684197691026765971739031963506671496112187841437119078297148829295573321661522957989478474585301719919282959894472924617793088204268035603227950467734160612316702727823924415906054597664474361025331231139954316722629705654287201948116734235119788441296711980386755744792004310851325745065676701395223707934301298446477885571351148693994525496773942614566845050402695837085542422553993224934715465301513690100194771737626788605676535608561239639796243383561562049909384552635374248318387336321725315926173556902543730554748404560009475994251079068446290693445143480845786957606843505768723496637384866690210149358571568007846203691748052220610998731319449258326063703595375395014611018115837131575249164380611436144412971864322603062643866699436724669421247975118509073184163595000884255875044703947081598094226853375756589917239495115075205280844251217839003315558406793845262002475570372040725311772884866411034676797736518652620553168612010707649896010260818228122210230444973612681222376262185815974900816996233143241465902345504897348981801624031831019601787175276517056296725483110676693972378989940785282904726142814364339940370051558315115975572418155325756757763658020912911098963460719108207222172781294874816138928122485512180913289300532031844475203232335672081527118821197324729468394888526170131353515722066969486124466095983859224184397940535368841186072372795838422728471760200423749421675210991450801010751825360363877143204429912611611429958664740580053849078263208019115331147579992520343442370919108998285874930672746585036202680419733435803155743304733520782366920557981242405106149013054301637856730084061257182922627162625906449798173643188139776471182107468250344734116175128585370102783275064940508084898729931984583674080733006511369568810841102884851981481817455658536619386617789880991340013267440336547000481518496718030524129070097367218441967126863734095554095662576147560133401696076606535780391823284963663876374447283627144244729205054857821216100350200024231918771996738550840957455519826673790747866562388084099165292997882006087780649485903747996907790806379738457615159773239264251395310001472753969783989137898890142465867249011128559799110893605752317914238331062080531006198219114810949809764873168212500445503925530517279283492308444795758132993286224367276998332298065541960891506410698386164083078402698815492972473743014395198424393508555162579972535630776192503892926558642024962535159032921628776246322980655205088721523217616831152498860875946224976922120098086282292022779757466511426622118146841892270577626430185025163588149736018352900639205022985664773811769442698675099435669155119626394392330411947235929590135062660528743070334781492583171246095470443616681221778204372254066895028549671898872540575232859055687536738648809161736079300321448435211002733156086295341220627341102749948017245344950006815393904445867127362901052023149630324031303297743375221355046312048687784535579466358949876580358889407344753010643198874919355227963097695310447051625633890299971232740797489628213023220657085156818624332054268180524344775874517792536648569433336789059138845014260013743051808454149108427001253446612757230765910005137983711551833044354919739984227335535710764860753885120443707323916275709097557062431052102422656516645622959844095072780024683630804962712865260596022413678622811442610182732867819559137913559922901544517576579462751153225764727982749766101897836550055824089234149930532278587023667217863209838033471504957463273188589401058112870961943178738029733276908379171430369292577787531546741046064843916487914998849534238946624213003709113987295702164924145166118053081562506728325690449688664576089213860454652638771576464573962492187383619491251034250355248608164067639690587601098083731149449200048731524463161121950357820777303377542556961780588969686629659709809596691364247844131421779436875479523270803764548071288947663264113104752756163392516768236499126271965131347081667856921028475209889870954007387708582704314124091478717527283099196319028126481464803587639664517335157856015555910848837523247055696601786369363509328667650025721177392249397867208221849126615043416954474905013916868284874990793765464311057120592318436691249307708046194940603919516352261059637897190468438653296392497012554688113496726144648514864034101558052074181291879228929021940786670816981774152060967132423829322781390929389251706465009006936556134359725686229616362436013600847405945391815942923415624002646914417647729801439043023802203340586061352266782743148129147051239645657010200999631501821882274817634031831556587031788725318061221452083828969269763598535046993285514066710859660309700470268836800902075671914126983264909609334772320109636214952297215764776837707267864402026311972882618681018788016710370935538845495251705561482898042995413880666554051640994387459042057036820877614986377635652649620702496497193281362018825978835451030052078829868175411336191593578140573688227297240403440232506352062585315617820487098816438200319457569077035124951862689349150455168265607185479640064544543266129034008005475800857240145359619819633394916115980356878078961574816601470216230366315245097673369711210186032882508036569064302685551767562166109731525043831393559822993995545090420754699121049595387581557425045784184572460165683280627597746720960695814068445536673554755202263299649399558583166203250878536517020556829084382709100305038434823995474390137298606414634580339370484285605018432632304260804125606681667099078433825872880820357546079012050597753132032721486410412047359992098519541526830573303817714355081275137314612716300507483560484495971368726294112150737824708803381103228981362183566196266411808070324934964524361540683952290990573902759981111691600801335404222561157067568583778434057942503366550442491695743027361833079605118299675510616295074275869308447955457092110172749748022112180508911119405205568278277325341760943404707580126457959921301272122254163713450596293532360312943034914613791947441613885261931863209149724988524452093063627911188923901858066793748070458667998224799787556082961419280952213115908463855792622367021713400908304032514438213317371754925269045023443497767258361671933072608227683158961207997821747859003948754342141121287654663200523001246285692572931712040674061120183906323370133821741163756551394841605695210161392545081377665973383307209848763128558313905895383488490675815135933169836838372791650820528914309801044551665950739060611368085624355420081749251988360731651214415320082989693738030659451376646851573920474239953933662065871555291740194124974600242005281269650516632270195447961869393069270883505413084944283149530572912144148358954524742618756459333891882238578066742172957766156969002331475789857095742491263115522742122616299282681567743196894815545463363914054040270235177818776059142671779394358417691848689475123310548073123080530009265456412396235806211772562931337015515265335809858479468303869327196308533429445474123077364127831243408696393599397917711050020986850181093333436347595887713855834209138970957865380961075591865311323081667050659260796220146262363403852478233402870294577897444971776744130583738062916912810629832216875546887576260674875521308808266347273488840954815314032844570549470981851426662630288068950440732346155991727171969809820789011169048105094165970351507648576685108366415119984619801020372336191437126387321188070534180655853689998479482282749938017308033694930103471512708356082549557550362945727242512481409295694646161533514928029067459907909810566318263284940186415530694989076307616908963806394136258419809025417134357034050731858121147293129045249713934790725200462385361251988391002445145056716107604791555433883995891671208699792954760414874339009688894317855875263321465249658941766643884034610647002690346896835896968636253611649447652911279672045225905525421816628044137277914247456269398296519280386840519324932814852805060315949470436484754966598705109547100775169920063655002498701647520863067351593793977484455905241816013872812204332568133777723272011387398925376493282796304357864699234267349421643050774443625681772107486178204957943087961094099560603097843459744276357002543937980869527944964827813318769115660001874781218059415618880915767390471516261824846760421101768767859865478883880511766915556658800579862253272411694271064161390921345309852546733030284649844157002473755543122918683692252675953989448711699352141890060728396609922028836342118621542793431771659808476453843492504253129054400854187134211923476363380414321309777824952550709962022349884439315362326488073334311136809749780964031010153129484667315413252283500642498198211149759390650322691815422046356481163381523496462663728408555950356144470115464540203213230164578591757791905831103245551216702193311248355073996783280134352382852780909153738688671968614846969000341794904234731574079080125453550722097995588975894913782897993823323209018528862123722053097894169626146484098339240436645977410501824835214773883301423005807906864573469379215103948637542554884767943326129077165574630466554789372463491225096795349099900803793441709228157950284972485734014845939410475702219667389023735819459254524999106940588561176620282577416506220183786758084534851191079982015073128447743147629925290315208930532362994351585661515456501575261009613325784673286461172859151444594566959374276215769820191127611762941139404014850537039840320017760176554673468398780003651407021978064378928721101793556133112246746172941864559588922979537175105519231237381497448705235062007601353058771349953830683456621984423490626315456988991947460489346098301494714978948186073418573867795634558225458395811508602832214021781109832792982489312446624415957313623178870200420214294431348096276784969871876512222720900430308868707044416884390708022702188163974026264122906756622292356774107513755939628653952633154818318726480592931061299178578965624697110941783154129329972187794245491251733275834762056327174976460568117098759986183543942435559194030695831438252987394772651003501509363712786150677870908798996969636136346248663753686329602830542384861618991106278319282595152677621464900670788632745852842463197156396483436860048877213773353431032772572769240268430890160932782410316733427307797110061922627655588152730296570323050510678378922739746989148816150339274256125302911484153299658799968638589818392082560772061085935593593692459767309163745909439295071434579991781870975741407623626709677291621387704312420213240778230868049279675691368160603427989346585583897496093918281825917771015478679923484074064222006382185824801432844602272228918842325362719898199701643307743973883499027425339259705505688574913589577722916599842358495758535447033935220911746584338667529847251620594426933207940969847726705071333521510893752040338784102251471977901088778616732170368445527169175854183536115378421542831236947035356730052579837781219844535923264699985724119469366979626194147776597167152253990379437690643232536241068098501078596720809795258693222858483467669647509260119422716420193590906667471955855501638614297421509329291662688154465852699038096643610751780859266321331141585448548680001664576517471355897273418114716198424887630164448494595811948802358090756717633967810474361696634116014182130916076765022807736207635554282349652878373588818961978302528575705851751771793558706349497924268732438564737149373249972740846606035368200516085095191851541149960345715210578540537144824000964571894136556706773078567464399586433264436086796032305224344055713087503336763026968282287433721033686218160151675489043439956203988383524628830607779222727906486894245087673977894995143193145956611222664909053569494275841634868475871283204920250342791775866474821698489652783818954615671016112421834270685694535574268407468334306499678333082265029352856131438121619223470287012657313107986528117098842039328478239574639857412008876759575765207792320331934199995142038552227684756267058861596560598367687628952622364350971280611754823980377433634420074937372782669061364373541681929732639537357127639593788105491881705042515454354163867016505165434677561963045521218942511569446930493399977001979269869011761861189440453554482493201732290116825252054486748225781812020686707358304259919090172555237699678992677494417619453368202049961736115952882773036892068201688609947387011601204649808217823222395320447252172833907821866333660697241229158131225238746251435917361164023190669816478015022796160483741660188488217715293740316813710779565611108483980976305511518987952371190424923905448542995097214055629073262935525131457165165806351912262136454885605922191331884927272678376211631561202692851433700265635564418998004480245097294757894336055654519966036796603605945500211590794353706065488223375673443638479672830978930654968064376241606568424227676455822525770914702771668570299404758595786420037549125125093225301414008711072855014872825877535559764200460723872316834895208450825971524694964927211609184793676172285834409645365563548819357365988042129936430339975189888523562831797144743156829887127044679979671132474646843706804231140323609199461556504396970806979268565503479861011216454332352985943962689211873902527858382332291555649153653436023109968421196411515321375263716296582920518132407155143801487749319548104097702257161527047140870882092485232147894116311247149416965855041888777497854620665932866223975451523194439438922876888361014982503510997761439241881225215087651878152785372159655799407650780003766268557791592108797888471590840855999161025886307903833279863144453781932896975958690300032649499163913424451672708305597574874462669422793257776432169895664114945866349268339924468418573893698127583848545046829406008190362646457952645958516769495066799128366470467429003611597914659276226626524251968304893148653750168614939937341820539070967110753102939459263541365172075547941904729909548245591244699024046781478525737094426874501142705233956026294712577159502748356202009961458870154232718938825697168660482072716120289429816099252330718689865660165550828483237933767863685164327171903914352713519444385469009760319378603536387745937520915567650961925261468521304951580202898345003228836797458377713367010361521875714420220798558902205987535314511631817398281452833619955848202818343226427116974225028107972466734453319482366134081987048828978234346247292055573792617353382724994436480288775194435217297420527356253798063031824279045684314282898490524073388653869113582031633686267085757633265827277797872041315826036100523489528487647655089824776455163294535217242546239819203445727339668209531631579592541868371449792068932223861442875126912474654863287881880308504654162111427729003803115050965423122724648272221769663997036272560409724050931572228970978836897536047117651426334953569625239144398293190905870346304656783893866795726763108632140438895587015571890953664463028820733595496731537421971502559843063761665809579240927683852861711900123419865192971527672985164858576149782028522668529388534596390722764489192492943721464468217854634208276947867302308816113257043049917591337093224537438801255327211508905345002827015307721653177936528898724435334478928528395387861376271452730087045736642317003686789711267378626807073727559692545770560825067177081894738187938098384943252499681082793952778715287647601065850482900486772301357255337966363815926238427917128366997442301600608671690102359382432246754202645384692240162495270329347928945759450056613121048180134023746605918857264836276107542772275816961511236085343628898324114556156241948296729755295484609975524042150544973360482706829023754638497181198117753271929112542134286437848371227244429760908844768083172134733037407994843558166555132070656241545799243476635995331376197031422141781443928481210357342325713699792683051430802231391708609159269092595388496316817928531457658717552877373778973727620578296059619825913580082818298931277623609201451799081443212364759161465949073529633959403079105791509423620136708611121707336801035291037789571091405060486577206989856069296633942855710319562349694052315205568415051372294018822638005448063612571998209899766897395344660089202019020222985197491844825044136803662500040483024711424175623212060094024868404279639457861654253734514947543316604628329694117247037408864352807025206503742638030011478539428216954605730814813181236299871543472424979091852137757991118715822666734033263553216607265698036500527590336987130881248511123368502606873816157139606005673656882078732923618818467413687377861637111295384409048894054280663079293028042701458142065897950317745644475969966494206720776827088220303067390508639844607973352636527426748979100942468781557923967409974373063840474793270723415287306798355310665544928325801878864701527886940270913938043184453863750675006941203275737302885698696486524868470602088427154066815405275546009279711794108543125503229880346201206724435894327999765515057510060777822839039009509036019487160079476460980112914702260115081493907781595243451927041654859682399441985558328739973238098171592361223252999344571250304166929616288894379603062311660193599238477151713677094848645364050646378037193011277821530488768660956890145950475661954666830355512841217667299323770610114287854633139750183386811617001690280136344353654894964147964924643080919471889153691060254763842669910815931227521034930286473741123818382018016521063914640858493286252776711560514384693600667609244689433589622935568420224681297430415843936834787845808544088203466752810562094958761532237433757628282381626221792837390924342425235253205316811038904102456655266089732027706390225416522776772365407472634406766047021656653411585403146109773795343761190052133858914427187261500533136796510587368703913280563886706603180339893049231415702734971418439490791049140556009941805686811021912162788149110107655529926021909183104561455926562023189604282022033239949115454692080327932827397393170569141307987370879745179387583826514254732403669829859013065168161704204431463349175084160662089202731561799285755807678151550788104441567879433605127400059843346280097403398935356998532640215738309579815934438781884678050436674707547658111030812578545445488273549269798854155409776990347616605454928483019567382435357833822814406527955383054313799149120331413745832735413590028438598702883571756187096970090816139613457192277721636230674669756717139687913025682068883069890386673747967770680136436682078015265955370480828731375549186408402230289434437915682630142555402181357295754134370163051930886009170830859521398490613973986249387301862295162548231045186722156212190981286877129264238049004073677819181428562491306982391061609732404535079104530119683533293640584307857524021417814231617630615717877395575782738447008989324112495419230464500994409954195666173869832931103900601700507469891444906131799321494791366029982518928124926423614746747963695855158706155130250368769308663247930270847432637014202671118084382973033250945893822041299062431069417993098517048961463040021242883936673606388873248651259132778461960994938496596779063841150231728955873658747136608473813882125495207075336832038626351697340098134301791853095293252245357662683097296288347779377369952119276575482083731933471425904569381478454980301455548307120449717094687346546905065651631776963131803718135406001897541164321218888647099111344450417062871787373563593886554534173370365911910077255195523457682261060519168234935518943926153658160070882728751830256471975929926011878973839176117105093493539770478500833770891223497017956114639506518074310945847020827514097943599132454310156802364065111508068514576847652209738010568728509555700770402944342700091221263144353950129811621643071986173636875149075409625284765435282883735555602862796310006185170902159022438594522324796964172112669062730745240072101367332527350035535889305777476259098668526197878106565960235032460239481943386726254242639669765982780107374169544829872348154199364798281236055257554520851553419106933197665968733378908237498798463487875656833844248533563211384364558024597814296649246905423411873602632225679965228817866293932916863350466230831740324629546049660752441662801853166953146164303758536852308284417525371541077155850016775826800039996812876004327743412753568794764852238923654499788158078960067210286010247774838108214312975313888942039669238861553446895606654761278013848240903885312084663611753547241435947042293406495887642191156848728502897347717855935297440353305809970061544159622867223407437110233487729869982735577483579782387545989149937903879146435483414843764189563313830021428748443176560273428183181911043602258911422516709851923487548255520407613864852863386938491664311575006434244570529368558097575236444739278524455353017139410832080519759198244125865491774324353054094428300999560420238471374358344267560300528777757589696504025138214505513126241374276991808947783738328380140860363960183317486189869587892905452653745145290619415703705689813923205044091701048717099088868135701584304024212026121998889689012310652282742218699506975501200767114499008382746938242484381452257586800668202268590446102792656054612749839714544216053173144978732739666216025319992989399904633820963744340099366419745359018710933642361787592459109949686126996876867755978478510686046303367370806124939063846269415520277300024807251129824084056368531163169551808528041135660991890442545034087578525723310048667498406877544350022482177535882042814257135920400241390799332398563659793920320488962229286083118865328324952319264580752980293672256072311136478323348477763240929911967264566238699541246402901044471629761698867276569881845707438129828101755996046211656176321452693045813758721920011347491497443517928466599838337837807834889212247268783380582655259985780800522565405933141554937815146853726715060438628647092418896253627476067043248587979423407318246303626116784620832374736296094597003025619007274812188904602575358185265049306935155091315149622523430573752765509080617415236830749509001737936448666498805349977738279427285401030151341298949947443016552940041939744642469389895761337289440775850862774265934810278834433745707800404075769425891872404965221330173379179416563848929469321501351255989878974431291784220871970014945069980493869782201162262551144821794630871983583829720382734027275346169042804383927286513412595187099053194517338337441953008282047257599486486598294794895766637610429162689524025021087877205237087311823561082335782662609357845154155824915942263594925427945211799902944037271527969384232506447438225974448435952660691156614632662179424390669754726264698132239085032243143637904390310513196930241545577378735895797196717165407205088767928505524893292903469128320894704235125978503554434637859038905924227260678008805610364659488764505392272315366050850146698704260251022214439822137765886698442799970992899649916328404360940606324998248168793818285796008421513129844172761391220884821656200110860123626878877724460776122830789210084169467725416085712315753357598740514354184094530691613738644548199775620282683093402644275747193750407343782022910787718257500295853044142634824129181879364224414897243318616805395528341860468018903375325252216785392190305429758722573285815320641358186408920096384334599859500265342729696007260086307415074072301491532428856846997602164563267210812444153515530384626055032177169602771642090840015606462908900456969134031019957975465530329981634266409741346485729586402441978962115370631295638108554049090113628529421842339514257607145294612199838714587056845025244696339584654310805322487285404489881260087623500135894802349196480808094770598405561566069861345570359201219366236729087340136333132007771338277805146624240896174863637572257680880635172915441773498004056835981556651610121163903188636098415057393170052386368582042143496703612592389836966474111876799287703839287538561490471512562193416144097946546358757502302852252350161116683377538706058340530730355709901092427693671671917628307859446839939455581798013786872149159006688042137198036578260471630123301659762191893419317858746282219338189382112914902687204763743100381703174859059622404234453400101056033026000312019735922117652113853954398853508023045525144594732525814897002581089716192667841504701171514786022533741004958860728625726062519111205738182808214263138468229861923400274813822702113051048256647065645779343276356959069856208200633531858826970571278383395348908102856849987860550818288842226980406301735520709866882379767800085372865353340407462212461714877266764960401359866763218123341414027102672300418266585183331185769862227442865659879711738461208729301296894085016410861785722518912908376586304543390789159480619903552007937826981879458801517499915818685570618922319808949082969383955334319663261435598430729092505678499033349078858771756891645157247656641921884331664708585247944494150785281038210967037777178849225261751880823191736818899179866998549728390383802998581225630514918142048446292679565464875639826517443251672375582190867572833486793173876612505637037769597627958018201790812735482169980583887655628477647314003364268540543878380156347525235097607216784164136110458541148489953655440873014112023860908188630581952682067286097069338891670127438435980394857993550228789306618026285545015444106039433021227980997345154774184328008250292638617374649043022965083505896473876907552329278441744676986119308489713339427859338359936338171401325071316910268449969966498070542634970115346690488437979594936148182584296580568606193857785799712915770405382555311097833486370926649613703272962337863291811088536897693311538003098824723088618742849037931438273106484071176713635392765813898232569112346738057482482184836849499490435932797433924418183309277549273810989247071667710492181579229339027978393065563372667793909782463086136034766580482405894518992365947724234436852579305919534068644573928437948102677827056934945252343642008096185761972958758091115917589732769291611120818304877248335102231921645966122890562596576758543415971037016241140540434411818425307407045342821240817498347484756160159534985377322989292714585321340823390390206937232668860542715823648527289909489602796629777732241555478920980957275508882450930410271389407320581011095099371408711640571458781263243340489629755732877293254065743954713981579028579252655736817867788353381913218683422933867358252500233167335253841593080238966889629266268697530298372717783393432117476388016050483675642143960092893374864679069802192319021237976767907553438990350309248316888724893286345528383034814413187034685803067023165162536526630777064894535436945135264770490428398081821445258843349489546753321433676155200205852532123604253635463965868834664180306202696999957354044415762390582500465690935269490067257917690695834881543835335371171919424661978118004793403801839193958537612961051554293889275339261490425003906066574011622090408726427542206737445403592673903785924996173576115931548969787936878529983625391233485223311135441162208133947786380404559132551463929442312834452372744859661979906137076622140092909230807730783382884903322002356135462501093402156739649727172670588205272383780521518121004946530508643915596006846267607955499127916582840521502027574354523096059913701668229482859472306103245303516735887426073874573745118520005232780448683373213153028759056484302151490769259400743963291688204945933946359900280386056817057269575855061118141482196308138672255536863946005698083535049243655987669447975666657250419558994639688646312196317631933263344429894705252522557815269575489717182434824470032227623095462609579297747451037482796904543074704953785115912090187797900061679100635228745726453851521275750905438666774821466733705564254083728583919084069347152003894220840656133726817809799858069049400981260948666316052321621576014339646336390345413269765192187369900994951599425376508386786684329325246165173875271954503814347932298720405873178250958159945914827001642850249709009734015759320021931674503232892459734935029341694975773248826034563076646621318349064383997427179729734581141832551760057319997437675663659936755914611361460557641815140748017351300562496054555069643164765060005791237751844449740494141264301072419441760029833069120878334128546080022943980799057799720992488474386250376369745038961051798199058428942004416510631744748158809605406514040528108767167717262248658972437582758873143604513873199608967588855114130426309276458337316322994776452880732198047889965491869305602558201294780529315965843475602976806871073785987029745905871399413406602521117684717732127651690420083517072024563727941194024190710159143298368789362168770950660430378044624812152935086090039821517970273874129444148412975920909903518456695197094942539614598860107004007824426707099869634602408706285096729828219119030253394524511053919120670617258051517764068849291626878286119135980518885570681420425861238037532309252826137155457210626927996290905125504086016855272611392718391509399767457850189030458494114516259289499252043227781888960996578848421790586930230080312270939654284367612139788259770642876275695347674976322895792671910839937503876312858781401423198733888168515244540910975450130711896992671931582273196662020848460945436686826167789726494214338007514001515408377449530871117829830086638263925952478339473473663930383048391516156280034369459208675670533030940967876862287091172837364974180183173455607740909622196959666452441418127170450756896647591442833849643597758601059419858732709427140452841218570150715189664467080054489709898204842255988342015504085814502364313735021239567240314498825326217915517032174695226379451336970717583713072116689969208561822076103000962270647619694473370336568274417710967308411867347737515501626175660593202669303315973358715932177908555357367060819003400140328591848147176932461797945220953849178029569108481993374398431873038422639869548745636923438261653190029047730290401140930035279715481597609216884445214975009522869699833397674505127237247290847233821751742017606819638359211220306234603942121810608937090712235334796533638079239263810839555210032233207785437316416335884909805383774382510595311913090808675350577374247700875262114533650080908835163505688270368624595850831965924361506392162892451005661162227028653984497469442631406457943394475280369280077438700504247319494218611286827267781264271176156766389205212098696384675302301510118807937421119010991114571531139761382718345702373747668511533316236297675781650567482377714565819737298054547960535173262465613732493718255915711466303737209810149226944554858383305567886595908250890021901406013216238013948487527258292038126951120550992882144190666261204457872648912177711289576988139554249581011602431636038328316438075632436354534701647082975592816170104735344437868253099415935018477321565797222160613792566498441471839447103381416234141993182545989144867590769900908665365911129162290566370939991637288794713518496726463248263170639736421156431776750224000146837388252471944263345019217717413562324718516842840666646093424889978189070585740549848259833816044727731268921823918864953607144240390899370618107688598400598226858144471161014855414723000811918613832754095651030379995618663835609840700330558200104816816343249779568347734580723825347168607345407313484911572835446673194273732052830139540442579819916007115458376863600543932186701300017389409759721805337428602749337547793528222369104103157025679630735528882863964931756282892863246938061513349904972526880834770999782180431528750774845582944255893866591451598426999004659454005010834775674471219281807769055336630721024528046276080166402310253715024491921947628425132295522188572896551883948163403614621021138929546876361103184148945199625650174810245025775681114384204989801999507184240206109136950501537880254736925982530902806770919580371113876583938398231380902712202534018775663043559183541554792548618756490038293105081750266805105540259915133184512416520490882112890802766413137848940371779465113019478671462027306317591303319617661250130535020398973486616940454856348394166830682027749616285687883225852207728092505829518845829583052330528332319822234539450152524604785763509683793163958257899691679366686864464899625243374498514001715327393478135381782977399940113308656890321246066641771555638460657252531879347461634352086438463651503405818879009691557529768433515390257154484130536656451838064399271483372745985586382533232432116464251758875584672322906110730374050822762261047419114769338425925624925885331353957063243093892574274073932137770673947966978050252980905030429997540371206174074195265650832529389858721663802604963959271077919443971162166594455077850522168046281924025195646778677796292187425075352719380287479889240998810926776287520562804552903677412802566098410001448625355022204355232337260826804728010650807672360666413199644077662791248671490290898592885270379651898065244323251116818571242746224946468137356625231818863497154785700336906231537694142421711562126828899439558839594817774206718072058011365359188163926241156297511713866537901359429125952920092317995826775360836217546945406056821281970838767160510870244147619528151093279341537545666903845339610790317972803139475012000388099488030116519919944937201461807110110200786902041802456109924839659642928925505199172482553133519472064974427577655959247261072895336025208623845061507715865269736580063660178686650398817370603958196155818282719847444998417056296339669241977639914578737461896437863872354048938447588103165133644424798742969453917032350470456106702055679672361759925929624169868546948078272934952457786807314452543132730379341370723876770599620757205469776266307820683168170235606726120332159022233751413561713420311772439185970488241228407647092948645583341597075018123550916262126624934714049514350745852603766928077432621788570138114891552069369463517580965333993171437099439579059024234905236477371026873613390945406208899821389197822048675965951642617089339612375105198611629488037853231837624911916628298112949740125977618097684473328131726879343150204487187282760962201230227309016059697787298077562922760107242486175085111870026713068012585339986084973983264980427695165352025835445240539590876678388076095601552353344000677552878292135556504578859605407819881166794081975458469437671695185816486925321304452575273090508132648810818772041520833141103005066295254811516455311027568319332794254042727356570255442270070959379798713219321931510542121945297865304010616038028031640573201941609954162803328385476783890055912452008908420444820557663224184721555553448611343231744174517496369098044561307079021249086208561375425649335078843475679425602916191814348494950934420643260916762863964239872493598411905238557914785450208617248454483981549639896212916692686265909371439264851715798103009116815081805518222032179053533276066661986564991871468852262351547003169158676135697073423958756351129669634549094531462568475011135137032064523569041114571904313217409807361810138638376344719176269973901344078561633279779908223974185166450654781417259272942407068545186945035192383405041625977282690921406731723306258187496467211862415593909977904621653010919647174949994405497988255321652290139146869213381930634381650116539070917019446262197988145612488498891180899564360862021676288441297504528151053155611849852432827885680987973236829061676847651153987919788057760530865000271107873039385492514545624637220119833354145367800081054762832365694941995754368469418379956446849053522382731536697374516809680957223521677155804387645352786152308283317816489028343476169349419843728038854481055714293194447059299592562398357807093458598277390174828538966044754002929342684683884146277314456539408384507206453029758013000217211487409563604677866677611296942673668346864943890959227554401825626834352695642053763943893333820541700073917953024987148393448429267826005073390650468763453977833808116873060272375675151762181082326485173708965314923370132671497292564551330574300956659637332781675420280896050549780959722137379573558239512188530845081742016673625310749546303078316483554822186937280350105880250848214348468341424621893912205289703597759725091136852829906113335626601739101613259582276102609142707968573440314456029865025869856375700033559644174979659849255921537897887815736529859146888152505711608577729733750010132777917705325118709343306034619690766977068692908011521794090014931493697908588951976980352680612268049809524189077718685091828913845936638914726420724106711995948892027708427903647253783544077112448936087416143931918603659059969451027195264238364530046058763304896918300322542506111680613083279557826592659463467652299396340065073159743589622062255554325193464760073478877792791460684129900039910063873973058267117379567226631919857653626147468932708534580507210233204714988583090641464282100945596959064619463706156115387567656236454886043120811528547027312566449214474424269519178467874537087177738527701112270165310372298239259549112668633773154298686737846086336002088716799592156673459250228481515349183277113905604900565846305329551023010260779443142648009103766871909614774945245272657474391477545578920009585612073419311375002046331644788284050623161005537211376747561927584232784203925041106908092091227708817577671030137501693226405660524950649852622942182885874973293048305685412578982688610227570052806333272558272424132904054183612980543971967459904130386849174209852148575054813428242685028328791213458059925041652083371958061660550427707242224688760797347980051788699772809112331099848707837453270164388017092763403178304215962820276302986692741757068609959974107968457822216242382574257208854776269679104414997116641103922038973786277067199252522773935798556012461349828284192724936156177905530743108924831318331054345378271404254678453579546344337188959128541570857654215973667960096136857569388873851074633086665808266912640264216420102668275121241074187561450630557654807651565589412432106882106325617156544747280760663452205539757499627540450344010463585426262584418803668291769897637763294964582895717782067713424704929742042083636493685917754386822186579796664176917056684486389694430970028326479552184013692862162791730562074620019899789336452104451583158365718841562197654273813455222941346447591577588694881216962441365647603990876178311166663158142095940111591308057493958384853436978741486377571634854597879898815137048837523796269025854729032293950839530984079511671279486627797173403604977556686995277860040807467104738458527960800950390842500456753830411266273963193659592768804716042913132717288657319118925486611574623506671983725136931493640073714848542130554718167423734831863270219601623653088124185592014172970192095624857814469786912899867394094790757817784117210785994608843334453775962541751984439664486671075639216006191340131031395065642952369554134292794921049514315483048992176512684375913674515232896903855746671076470717155619536449239886683986704756489823870833871965156882182574027729765752134181234537552883964356452260602626176642933207549393566413293802808308196191430318550631985145607894045387737384425231492630324908403249620934951177736206887988687621952831330679041999952348147456927061149451444900575658575119459705813399486530663365906062551878848537561523548051607778618603410716936182257593285481888967191545871108883429218248311691383886580151511721198649367417440336576617337793607598791574252792271183305824501228214548281732903971314340889902120501178354388487916281543376492257828271391974839123241411265850243680507931432895049602361588500873787226307898205045430835621363694369268716855900875789843175059261996024838502732464177150838084380092896283536475049855460845043906305920964526384145357888192490241191050521359558585629523456487673010514905091578396109202059989766332601513784539971213891178652451737705077875756571847924436198281840159102251947054474228029629547541119650845786972115724645281686745703939613801538994955272004850409847972355266665976780630624922274932416930637264214980153619935995606522326500906288707469886872134851079731136488279693820690167815180715384619415011209493896032251625473303690560267449888561275749111828569442844186267247210557960847019970171010660575299666716747656276546443522845799395096205586259427564138028243146996796088728595395648274844566769158141234644705303925843075217847824617502783632779534417582611862766814088528476813065817449760528177177661690365376204974984134746511170824365989194639042268139419606142179434003217575593271652739170035597336775061165835489061134942120782134955308596755468130621504293464131583620099316883564168863879380282397363722342037637607685815516116359520366549246433936877248266879287605440972689298994630549295565536083860144429114797375105756978968941885508442168367435931858362110856814176030710131491474101185293825261164027539599888685330006700600453994334119886125296717746600934939478047742945379256686145562415064199439752843775915433107582812010844794111284901657976292976481812278527586588869636735761741186350322362426352840173820805955875434885347543178499914504566685230095163581137499646739743611135458201266560908158807530863591373532953670586099444676995823060810994225540946478090887133859291580250923606371584929605645224092385467895158048327030108125696975285424486492341793329635776283055334616499604646535229574449770603563823191262440564069516415515141732865646667627211542604776000621185115723080506557608251028796518631830113160324336859684927103891497980587521791806694635385504788883452151958565793330717542764448770209187436031228462558225360727572643466062801123515334107614866583723023621220209175337419189823879958820903524172645460055572731574234560478346558237506440065269518445682843767111883341521761697384580679503491262351869268701168597440443779582286809871174880457284441386172666578934469222054007695244770164062786646437888308021780006758658334575865367882905957935896040015711370101899684421246408019737687355553649677844542186547128185693650790402578593612949552480332524407177555957069230595555686629791312608850235564906437824941146220953634731136061300378373267981116737185461033446662206915567949135074196832864848264168692852899154855517756522807386094897028998578926918859366323223711070129678288302857400147943380784902008041975982428852027574790719692542831919736906971884242977349613728250853636339266474747079641563439173286633846678968657711706317020799800229872589474925380843623285067808597397204134834881577927015076040859563477378140131108445943293120712592035063315426982944563767295722330141322951269696421997830787953313672993430232740122112461461085843346875333156051950818848537640405033219499913692264278554844979422618920321474392954081596611169917132566243451056228977985444662878694876048861417570818730894415184068764588061970292339946757200458691261715418382301771203156109598566480309187379489039779224993558390728671817382183497887531910752889597370480673502858676681380063435944356156785824609343567433708732796569517021290647171840284113080706423821046234967927378232744640896486910661554315141947180185518002056151565904574460041224088726580231036232581092303482977071854366826665070848617834858269530571642055169871319127511205427225051482074190165860642383337714876624434711147731744791950686850440994448438696344497964408203382034819797041739030981056708359317127804059558641010049801070500108608836274789649326535292387843605405160236506276449499063021171136629574254778130491188628270035911816445550605159624638664064126494861643931335891185530408077803262523216568799779978741022439406420491067532901937648326100854588362411601293695453709832101313635485850712634369711867849534098725721328403526668135999393309550544096909744272154281267424800497884445386644371161676687686187713995138613968826413848347281282070211594038359624409847910020449316865898149779210235869526734327756685174679867962781709245033898523649210068132607669091316339257009645784273567765339206476026586805379974094013888597464455886610472994323234622348563602497976565745721835156433687763643098329468359250280943227637017624186736185116127661179022833933495878522733480492257984600936636024907697570982581198267758244981105235385791354762660208419977560191691697091695489282101076506856011013929615540902267616152535792813273038876035314602190056755471893944518520017454715832750821576507048467527353909798436228325948012348402659952722229776083612999782652529726826539720240880130038066515161568132576316723654015431910670195987599316867799195296297048674273927019314180786818577824581916377973746585400856303318202485693552225631182472029100065849999942389746184541826936678791979895069691707134739338788075204452262778674340594993655382071966802261063393177052169305181347671004169342834326397960932308493088754107980716145458917838487738477225543002898991916358920171788411679306396956743741166040439580748355929405294211623544937845656876632333280534893921577329115995870946941718352262407736205905313764006158824248074606382942148590026052172824362792239786923407392137285717555546474582258272998423603860510086764406424626070720468119851429429800356892062524106461675814216327103389240473215075523612051405573522710824737208928185948465696025401741008493244263431663551796255586636762167836737397486256323192994419897664552984276099099036478321576406043360453663150224936834152895857393638771383084128250446565097779424900354679391313739472095034594340483062612311053915243875911438521725113146915673608385968630632420645523722425136462238651085671614856803655285510549040113757947295235169141640642831482395470955571457864510456477140822941119170735320520566855361289567974741995433004003620902133359397272360879419055978765462859054856762050704980655624453150300048674981006470324697393260360255711187886516921525965186135399853910820304500871039610002950919026263195504620300846172598478805172192930304388830695852823898706760987693756954443264573978952021499235201472523096672436713307320791826263721093052721829326349328196896193917541916401201683646920641002737292519053512113383311941285758276046643849129487958910038321966974147111280360297936558413509267757588824310311096641006762869369252972864516085002195423430940131913452719272796132674085856959661570035388971521158857908552544254390918219103458631044605317948244342934141573953749594840779586709876237568845667068244354720426212333963071452317602366937472453019264688164101607283137210376742463579940421018576905237835587610007860769664631862309989293809529291728961923636840119890868155781218661512609992505297751993288845459063679783135701208592294112406608921631327907404362166179743264642227196586791089269423517079777390586251359407523478940767422629693329804734569643047927565962006779522772027800198578005907003713445083037935902010468974921836928365795687955707226922889853653302405403551972216632877566204044046857778555251577218505713556403102347376600263009341456233193725944127660418219390328772474411721949782303576328257855974051872179877590152257169777634235497953300317456822305590160008072465240501486641410104048016764040613593926234120042137396879463769027083103536266860649941552569215521333853429956152703155139013650138520681759811367771878134816474001425076438342187218517183447761857607267559172907818423543442220596916125871139682589138883584107626437920879608109354379888992048512785357903014511846339636301581052396339702172091997313167218177371453064280764905886349280751260894607355849295517479499528708289302438495537675273019453539886192089377702377174905743495038223089630785044819377335858273411523776368840465838509206739788083765061075773183850459972975088190546831420110299626732264272347661851824554441287316134172425718476010458794297616960999581498519134088558878281508318832710437734218895111648867650801384158913093317466144169038869491413873697013673882760139776281094518876091047855645504034634631335196483167866165330162292136199224357346463539128682210851297855871241376553990964430615771001545130368757941500297456097849737278889177883697855716947352746910428196759277969770325304174319416051720911121745359735133994901588264937125899670710172644227289638413270017567127214593382648184981139889753604799220874627059633871459272082404032762780267629223115007326534568570536499713791553922797266068325419073091448039358480824839433109020259881029216941831468987794272940515262872389318166120147055486812167112581779124298883838293579711787254685091058500942977915090533288212438529912454623436288328979985124036245314935928146724181971672897585496994519736730194766477386739629502882335991439431634451131463504840805317989255264722759735331303387057822908128607480099768847967164248393699017528824692333378427692537924769000054563995078866409618673303199991579124677072874270950306134751023779785766665172035137145221393055882938807893945043109990998250081931285418110752670848489885237573407325180716488994415613089281087318515477402601171323380717144924766624693761636764613212510060655863297884139604380588209256333870696515705504939407088650956940817998570913510093164396218929740880867942927180765783974755678979620987159410534159988006053415851754833041097292475082820749235123946646019045487763650783833430154299663006292210771071573133500352753923105937455987602659016643810511858291414395902456947481538597467237531512632778248558927685941918147533303077312282645262225441773989115780202115479176429594374891172193508861147489761272719418720525255804499619779405775958781210657744658292632649446711514335673903817596451044961649394602914140897651664658281033270448674331886865429321901405054461572810472925067590250981132219100559843673075509021642374513078148368093183495173817640459159704597005917944986524407505193741800710648013498863349298778789800068363179387343907937893275669878946397958488927932924674015118351255785454010775478786958825457946094633507417633882941612854902652159457551043445245655337189784472903292828440017653170757924269470918080268878022364070913165982621793396898813680430557235628656414639824621819962659182948830826026772496890917456135529060536307837648671070116081612567037489980120448797429666151423755743938962870493796047896679449998466704484835404449083641640354417827961470211206129790020039687122195379250038911397666388109443770406596377929201600732052235128225942186664470641298407544737723836384408250424341015075868584180575996245844081999205315676647819778769781897436015220407397488571847914720970941354114342064124694187577376119158848194794686164851601425390264937066384784415267630756112764393822525065496110045314614969713461603349852227718202554398366379303998200062345749112519871479032743718391209461691387762422353653148720992041269283591863110129240989556552394064601455868340540858442758958068069028265749699455288625553097399456963582588030633320422940695172915859485445585538159828519718415816298145849913013699828826426659879905080569640838192137672361952435359672515809759078417169829177280712700924029209300963413405518733462152873074130410882243592821204685442885363880766499019003114996763419607423039632586477733633424933580188695026380928723344231940567546510666628491464541859676071680605789250575388572568309609948465946241135677500343986374306224573967266588120041074592442714028140554302948994781622011521282421618909051787663726620204805405663046566709029747862947244617327686207732192287048933757106563336346783869440786564822114931219717597259368040529726385881526731055859497888109005908415164757029611057953556454280473498915107466639387730204711563615510156058259089099286876110273474015023574109104538937189779800436606831778540181616486297535534618243417585296237723852696938265034553939018429745140033294905738518606114837772948427056617884684369903859607669650571080865377422763338754611997821160418137703658482808408828232149388746602025849810782637090776179675725720623701417434475059194393092265662252560394219321625726841330045597066323247657664109368507101351942439826825733815317825204067776124547530919501178134686019711615282182011797907887066874741135384397165824470938028500092083220643153643859672655619940192221647784459109211356265863768089989727572843662708696895763702443831406513742989173602970516661569393686357591383961838616867889697971856274058222443402336792760998604678026259373972983252174147682324564544904510017384517133650674360798895399738462643641183114735222460452691741901335323282685357753409445455080008241614606919051646681216657092995290469450273661585791112661345475043546500793501690027049548929064217768292271743646798185795594734972811778152620597545144691914306466531784595464710983697003054432038533971724742609861332436989531753716341009408766319663566218523834859988624994398334904880241819946959702017291405793963206983398127383587074781150619510974473133375201402853383052202297295116159727327212722243208239889666256770818559634444213352234917880676160634651759221553301481999426424620654171854695535801993491458107471360258196260956311545815938105332061594951381319740081329445302140906486475892881116868112130605877283998270089746710274514532002361646943171558499982737782814862667992759919324501759546605042962286413317239560652522118268003995041734811726510896183686008146818662941259289176547865516890959351888532501691013170662561797881786657395084692341204003027758078194171298186115130993187087852292680811982301052234207977106570854740393657421652470742574459099346557992972957177928364474644315464419399593898905490701730925525265378485701333229912362663180470221130441316542653791995764110337248980887778680582047708967050131982193045619099223080347334039163845968359156632216369659441517594754076835026988711195556567293129968560109752281986929110399935154963136266422795582600767938373092708586189198230616260140566931551173491785028376967881529530095464769644001378043834970891801609464977923458092706078988878359549596379603282142660906130234015770480080086015105046221517762405075570783584772017577953547405692435939318950681365533664913743004092754196444664417789780548822480967030638334988484404577579007144225235432559309883670076628274852903653630546364597742620618425554611959096579199942452837810768717892544503397021284929272260816319592023228468279223034649231995156725458725815354439797505777056699174434078172383869202107142478480914637922787950174962311469664902721700685751923302887788277730493992384105635677895588213763529886973071174732596579675350107786293856405145344359539148521076983979558906409955966400330698746828575307831427065975451773414481419047829348833380248824249540497684439425755609607915848645500288182157435258043106157128037425156813270148416295777069278125347758388122271389543083393323794579362885374105908303253218031190455485482443721695311379002510803743756667184755217137926133690888428214231954026486538763915144421183411227823878173037495090032721031227053760359474152208519304102554325552856957492752307907148589752109560826888419926492757703793990147360471259616834838604342294154714637814455167846875349994663349900449783150560996245451409722472488087630533040140571406287243295247775779899789664096068101669768057422115390798140567765602803424263843353518527297338297887738079078121532560193155447509415997887274093738806409505678572757884100303785280153383081046067729051997802399106817266414611555438734494152899447680481883612782623733069208893891028489149165137944326304537337718015247465152389593063377221604186087917046907441772175595081153131280553284828659498048980524560755009040261758168465200239648406631672193588441727552659693876549318013005736202938927024980757026304780086963670545758832217867579536701651098804604400102158497846379354019221239673705988282151749125303514895741851938166276991970548737271379816722031820187526945133188077816292882734341043545490199254661974385900214159149911925047966609111257831795456970031666047301313753165537942628671778991875559709675667916925653749811435230670769440247078542652179908488422091871746310632440809595889920856680773042066059929068096010636454199532055691332551217182762344245692223023996217772985179530301914597487549097164436695592561348293141568852811592407945558834682803519664589056518843984793248141029066655793905460376027127888306903518202627737648883394892539455503313059852943992832156714197367798599887148099591260183891203067161285352658506492637316142148239576764063320625460417214369195575621558615275023967917971232895670382164843582694966731157868106865277499209327462090577125508832514732203303656471072850767364700133175554699367228116247401414916419779150040704987409870333864099963045325355949389748367091771227556981952734321844689289498674595795520985156480808149253826878300129272260118712709346433263430818937122192735870330111816504138856165563759779102735153766130215706882824468661074273608236217346717666739196191965028808651015092825963432403804139588374984467880869793034905425444654307836230781273117443845384391033523017960933208782588659473263555795539504128106331600711337585141581804092284202078978440719184496472449059809139520014901705045046540361905764862433196966590321575037030915833406945715733642620147171634771565789334552080545983151566087081932940212066458708340483679279953676040581273424888403233126031714424958275475229711363235687010868863159678982468033200834973318055884683088864565691148625503066682189322842711127820960971138391094745298395801706675583264172672289984027250900974052087737502025342295577825106899077771800883276563329147977415081487529820706804967974060644731907036344947576951837927726211120297100806417685134478322648277420119153111216576291492122050109246656274049138000449509773004611680664862491144927084161283734994876327487510656799281790558087110559298700101936639201562208291204661408693354872400579715467585446244877641997959259456859230342572781986017463686347167124139437769406166330560983568046582978045727860270117267296419282240155486221316453499536257966782134395335796082205092679273523003374877929793622242619786955266004800458889426005144933420144578219146921053423597420860803600380142484592217414853641467611052349824830702970569815458785165611961786086375458637834276585357796848582662829518524515905351810001773839931314446635865169625312393240924857004507488652230763143670809448044387894482846813636025567040634241115594805354206740422624096281615517442045263660671710759806750297362784454502680957418061799982492417112487667613505667870956607364769784345561969901683302523482117728809665401148415352701748752397617523379690359865561814017732729003625169756271934259691300691150792191499683340937067456722058616111130430743103935915210484954027749244770981577172425184389445270778827197997681976628217443595318561971830335202204566833297536164635573335089292791960565475478715891575053062978473673864740959959819187589659989500868898692194062257165309447856057468078716341389474582386652861082846400315638630939299399458045627490662094623093943219859721912492532943225661706162269217173613639205703104447083906617295957185156286555280308419198157737286073240101371192606027921322756661303206404949577390004751714979036963656662394364678754525965837133036979599228177478912767063453850196004635121061380272591833794717129802605689628183479215434019877683710835673947204608524633955820871959833373585527494077986302874022307310525815842608755579415384063338134717066441451520257678779818233158318356171363643182569694953928985730182347555574494432460963107985107841552821778445657841090711171800952296117152251520221070669823594879426466339013603130913588227033123951317795626408327124505502594932067953832331304612137562849008600130386497072508802637893087084432826745734882909467740483683332715907456216147567345005501344321708491083201125112657001762894100781873611209368288372207008706879273092458292409611443957490965999692661499976968453390684451466670523876095140788722352187551311537500056965600817855539456107095630535904020392232820662242429505070901355504763972443779481053607114526226774164619266597907094440370469107024136995694022660826305322143133989068243501412411520057741220811020311805054771746880356093728608242986026773071436547588367013515397809471410070599201310637588252264992073243121671208200222636592854325062599493128718934934411361805554998159734964157795890971957764233762623636459253245197463412269989832128317445391203308275565556402594019517034384098776295254558411648069878908044849083973174092992996072727271291334964482654913139405208823151253620394315644448736819070713632150453913931031916454755490245627106585010774150539881777349042009602749877214231305618584669228620025155265914544646196967472174638575957376265188432606197107413700848152725475333185892679277470579621773145094498066848469466756366658925178691965730641137025478096182771396323017865816795584888018076964055133250544447661088557986594290867062861731393826070267448788392744142017057185780474624795314769163456259262924365763922728233881959836136282057185777810151655276671619759716919881196190593246067747692791520744543292052238199831979057296089345168014654552539340290190846495400779682394706619727929653959716759582189139432644778737500878257890933819721672184211820445150041466365357174870751240723651392233610527263729076626205922020051240697720978026504224947758143130663084587357763252525653009993804413383091194952924831671949580843060989790253572138852708210192475397218575694142254403940399607280577268101709807313522839852404548022836675371615796415448168546765896109233340969566202037298385823467123662370547218809341299890124433267520804636249908308763452197229090170118283174638083259441457141428596784166638095496676694135787750513812218598894297435069064829050943337930787425198992986226252973615568984551181685968492601440072399969757160352608306841625108205414042995532290732555389170505476666965471331388156932147942660638817637254135356847762431292278404648191742974976027363238643653956273378734305590871006796204927968846711896830438659366680411861269317465991918069393836969300478713049455275152680567520214247175398307852384802168100162062344907711848202607195898417096578047104091018273683907922491974340854275584980266664566629882790351107911400550587149135085995569482871480183216809064816079731757189625300162543344314264163583723166600116433970293609644882133096147993213745837954622239626733436484052748355233706502084300976310944820627819225519438252163085651746564472328604497214126778111901647464910854794441008121269678293438070781078246972368411710191709565152887364883435728632229584765033492627662374368213140267479737177999671991949898015738414176617190085703904426772305036426397279096067914837215520032154137465024272524007218807098408635476785268488400330778479155344796884650227188631225225538433208052996166781127516094265803858336972371753213081124292982409819330622980786022710110598267123461624551201504327903066804061510799124434735574836892835453706819195270677161374075411348704627545521543822608558616783604918992169556665683174251530035780195744003629962013002209341978520349409177588485512832606043642268059104920858772024745709725757186398336791431565179402302336766205802427299733506051717612551105055150391574735470060957502441788704077025756554900412007235360371522219502686917747815653541492254663202382786563300841002833222211264155195833291468742122251072146667508479839137750141893628249847619203507761224528255983829814997604678698016433746809511009384367298429994205133590907150146258897425348225471413563722394352317693183049963181675907014468435393816707559620475084849415121438021407084207650683221979987469044242043199112084279154410782465976069375209936751231708299417025969885272769069423886764059028424093886716249433421918498051286228858483880655557046169621417661600265777332056498094244020935378465582245589607293876695591776040643090297926408470579883677724749394977970420505373561842660594858963478902254090310055192020271529717793436587547828333626775566846303820202181451834927639389012668671427622065530834093730503600756045145714400605020006316034385909170496497214267093542920765690954905617172156752214240499484940440262652658583596524570039343423757369241596856251228737639239278424221742016601507351647556808403435787541255212039672179674573246668381775738121226244734564455807157757678292373429104577352545209755842186520717248494552140419978914691433939105273771486546531930254032374382491751446175153868155347245290543364228245615766704785350199368070972003713226379544364377821749180619305714063444467815073736895600014690343116326435205843921968200164047581520440287099790812443261498381982507182084018794208456822346217091894669301193874339577791056173034167490624909987049017381633822486479636602604209014172543602876953595014263403217448471481519886136361032511527659847428909396042937129031697508771081290698199326773141078651983456580835192359836722986516674280157966808855148808862934649477604066239044532315077442760273803968785374624333995475098101315639029977184864368319391751135374990241807589330511255304125880616850884272759694248418122674594733566749558090822073371499910103259404973539488759791612147446631941962772474675576119924200235346937586573359614631139781400250655654141307672074177725098387522226568621399074580631612757714003392432897272540181804546768065438105475759849808124306067525855970532463357616192484394094407939388621639779021007577423289560821600043723726322375452096020760147336149329933315036357081478740679817406850526358147703936883391494849004115062342030997235761164542429692062251012530585988541206069870279083817034194987929241344019874791647269778790216625800201277762291707250485671150577797431425379807191164400090360274309330029993022196833270015909637802256019058369956431125891307147482868711619615916741403926355535232719921894583591927242456885859245164541497655375918803588579762279003881808258452364173613663704270867224056009730962204921721368961366787050947677243456259454570748077397088035606329253619854507574202319752200704185527720654336123965504270454246764767214800661075327189447603555977700264268665575573832956761112962720713465162936096291607293458535971771826313094950500884582037735096681558098487226266530074171783490985057714490279554959308384844803389697850393595376167190029642138238865907491423558204717329612792029527004057786911333295513961182693259344461150146769589417884852629482236264045057062068809677275333448083247467682433274115508893251660421872976502974545970659946344310752915485124568776996953635043195778516501096166551340839766107628918507888093561525066206459229710223250066094382690410331106330611474506496685114738485849381854299914839455920764816819215648574286915264404759544231240376478174196091105651915352797308400676522577800302043355220033850316084657566182420099508899413328755898747506854460742396381673766497404146305884564765653306277031928965089522198424764407410998376222716691327872143664680190003737414867837757596576461212716257700843905389437273040129667860921128665274005502598360265419725695125940377164401563858852126059620840946917605383495525513707346377742118132523026959823665837040835739506827294548693767942876051102405127198090539587501789670300962265288465888841146819896157738995581352790660170538167036391201085469515873920455238507931771529540516044105706196737703923984934145574009415508339641564030793433749978657397864258545224060259075047441765223539673847969857265082503809987898553114475353456107427522663201718455721953590157673230203534695867807424176019316983773352087776192874412120061650665385696527463283215413054233735178636848477971510297270605201736608808286768824737774015346161397556429163880529213814971630893285705355001816878116737306859485993374969003630434215979564038362845963263394177257052131233048852336254274001285284006722562983362463394612304394926168465803927582229705599783244462644602871228538922348553566225687241680642721915701494580125876694670863893588778583138873081818848895703092171745451060069182976590582807948249125245324027387536902028354896324933069401919841803342507576153401330998805336826518509827298583648288931197857609955078051320561277170867707779627912143159842690780383188849248517111862751815082011479941548615070346063605658871850160028778550337561971353557301178636714628075713891299461277749260611197758381770797887759151241232594544363941253973337467008617893763699404528697076619014975649376360104447157644233190185801003654807537642597320939415822546469604849545473916435396818730368593830524246732810032324083071644822892634378768758370747077395535931957415216548453914707730533881253312074940680007121037832480749503346628700392422858962971951997411842746127210500661692302584107596215643464838551408496494003890290254780509042907149921055978811043682554249070986703648140994233320378015051431360505880939012576714688334033239356568449417203743251182533464860025109615156852447225915480713880067936912132921937721208033878025081419518005206462451040612221854812999287045871171959548378952924064541398603132918032380049177968811441971186572991688862381032751157832006632930141513102035140888158300089347105736402529225367588833738429638787681225779369995446314617028850538984175003593868074616802787033055621022435103753148201162992089301813513744547452895337342262819052862513330457892735462955705573391112957574074749089039031645808753423077416113191723954973933917085071488869789312592452974367865652440479427392748230921063497768441401737399875551480579126749322221409461572515722392827237027137366955921819603454160123749993027503813246224189865742725771025286294653023292635068687405639488987066479665907668872743310263990407027475139841575072558344022050592776060372941507110668414091661258866420344909456908101129635221658719270665131780681926739060570816344163006959603409480240488461257711780343966600576399891203645870232004967768486906842678226186358479335357679913402697463963274502284086917439752165320325483030830698101084488274642729140817439415612328668687626124116633301309415469327708328104408843337896022066250886132039453799541400444118634497585958373423650960862171987400666164160307746821706758111043469500783474519704862556205052496702231496832842645584776976125260637568165941556557404477009405812315954723168300868001579342497558200939684209854511664104526906183028016339360460876354768944733694706364156948467252584884220753954376130460442880242268879603420037756175567053102578044698265046029555280489641777869233051199164321687227219907491860435895724077704417378976407275096011055255797344547457460227813935519590018558936634455351335255432189041337602533411153603836285020019800004442220336808052375661505589750763101901784237379807979128647764868883875435026702794168663405302424467129249265886244459748009071274832772750765009000459146747111675338006955012514081669431859823937089269785316215475235162663537988602290167698312326992889763934582513449043038971558867115504554543260802225207551849021540214095854178084623558668193166319175246326320437200098466227253966232917724203407132750427818797248333812992257648545456646067601705926749612526223290675156469286656586370121819952744790418588249429969866443180722125243174973899695566317596982505266255319177445930930838501144202413224663708026438244694970119571868430445882713650055845491450769778768821765807325319500997091924747512936613659582730246650742669339429593316114222901232254934951532182313383033663072323703899193136032174080699926364443469118947911926543971196143798011822544004920035370150232976944394916860644280857135170261279044595745451411504630764616005872150954301027363326622040927357524633276749963329497113877531875456551010856836778174521130505374830150962874463970685054704553220227948790651443878473252830955910557178771669580379276677314127944651655857524198014118264849839255693978910959919201137644753877879677734634312482271066461507247857737549929305185159785408230291100981130132326352493175888351470934966351144574638311739052945782048050411584852665621517456393479042086410995346142399759755436527152971948227362503435313338177776332924777670790933593857948375322004530667793404389449632986254509186474903048478931800844725304620497472129346285731745279908941506355800699448398449376449694893294258361135056900558456969040798792071671829368179363786000873574613679563582945152463371369441291015223602229898336079767892814144507925118596997731728016249110718285959032903072776811729792157893517309826020841839269260861683335910362724984743206980074980953883052656324109437437631120547424221224353088010149229016272827870968285920734798856640996532865920601289487471764030861043273017467559521800822015901219915784328932757674665763108380371378105331350358327764780974480392431669547473291397036352215743361826327477701891105891267813795906488526402643938835532409734390395897230679452227122590600107320645028775660829945766547509139200615422427707729390468239712233127975583197107465725528689767737365607582413617943765232638487237148910877199745611535453381781068204922531443764017259408582992045132906878500767069345481452385822975352581488596556824788885018937765847371960006115460402867657262372319267000034611744414969906348072276572842874095943518525073581963716888367668180663321526600028629569992687309692536530213913245783862757282205156278239750141417772037913931623082683325475045051417606685249289518822725180764293937513722742720785871760617489762059541737933672895906772068479153154332128881406943013614050487899985910591202544676455085438236572471210953042149702391234899343402621661125847797673650984823171048250877419239637687294858362087084659379549034750024750348267198703263822832787265456338994115274038064605909402383373643912819809985638113587153898052262959279088825195645968767059683471618155112540445643254004651365569215702327163227694159200014785085993436941459426162270827403870146297144319718585853764768592717085480600798498967728640848168535026929950187501670328279532098147160668320848853139960191994940723591376369169480610530255554943669631214487096987210159470413351113795066895210228337450077081839289871164952526758203909212230710225450691625809193697225939075294971623916361815703626942006026826109361036210173242159392697952061871920712564933033295545118786604395176086490053258326868083565150146544962230988100347457027418508028513788407936227675278677261187636532979475069375902646534974305790186469967064992122990920970528711316169838890037475614460499637346843465848796468064231102491617967243394132207134184478940257089941819374124276294726972081323410752386617966367801142973237887860543850759189257010812304361578579028003646790017352797823115022776108712993323983473902223666786204543751129596614963312084531196022254049962707721198068992786658939027971815220484018572772416682278647595028211293564098366602090029255089500286114145807145609256832075793133099038245395847433495895523303959566894697148389152690189359687507430623047642469734426757527580088228532350836514362544634505938919716370745258123438309190661193234133356839473053867512533976350534694948177815887602113848114990366569753919546444505007430755015418416549698553117041760636873453421447416356139077140596702488951382696151536370289248127816072725896812766318905312079059569620266685355807595421292313076099154431083869043924042652992318311858114640004434614570266483231173651271369279758907415843950844290495624410447011256411887549540554099155300100310424512618417624869552424357382369153603740812705230474310333207711709145979915571670597327107130183041811205072797801521406302426926372824377840378327220688471914022876373004261693797757329454154195716358992430560040027583815470649782427297700799214019836737706263566210341762945818460337954889948082152670450405609706387271744697945189661666388455864168777797628887761321337988141518112327665999145399037060931988651914312206869078762881270670718448570762685955739305696195203814968675104292631074029856630735320365971666905921038711227331402489934520183712271817449902325173714893741107453086854392376570911171442666206946062356117697026882421036939884608848551778722586584593380389095991985881129717207324983592783003165443530858270348703493603970981607781632965534366056276318110243876798260150972406641192736096804524007275967200637588769882949137786081433640235408431114772747814208088985028178189492811401732984730411855312730643182576515485320981002291684019434849811885998106370560733692203189474869231195348468149537689478245172396471024871492087497708405258603193564660832153227999022967643392300296222667320896809102771806368247432613685987732712887781315301374608340286263178454410781774436966653471623726340737354310882383475655412283073249248384511539244769984684649366469023487483450522886660797311007373260755832183447902409125193876630519652663820982679766671778718774357630453356338351345087019564004681548449906385157847957807719989845396608919811911947009110009066324533369708917190445796136016942268742075240285731878480082796598548051282185468004487635792155190951756295592553435105892342497180088815894324124957854858503385810916661091320265034378501242016038663183323364697115975840023902816044489826512532580569631817364880593199522078426610849506772464859663421729494648645872429054950406115040633012209645673794393295779324462437709751287089937294919311393185382580727297003291278841209632909083301450214152388804603717319526121268688925070718750309864179259489700720751450336133337920141843276489224175438745641330200854957533217099636776249264617735310842609415694020277001173152681533171039658670634689493342080470331363921312031331747156374120359843287612574369169174366587874975438870499424805337216604913975766611171993184688383365742792332807180740965831082538958094144339155922271291907434193516739149174535792714706370256738122456376375360207286595119178197739253235717637175616498281333495945469321409610383238308424978802191135254058101453099888171483653493440844303231011329776888336560887753149940149634146918264259369713877103853899180847589536614015190949608635572039851408272385041908188927011785251358984834408193144317244429547962948223779890487592179238957778301554439733938697718428889328409141116534870743855506331800274238351507266696472467913860484086001371320031500214352909356921509913756680442430928431256168137336296820925366085863296505727057658225441069860580169210579160821966453058843331517974298242709266042109189508229080816499101603998272207742580700150941438348827134001737317592206297411054430512246760675890747844800432199770245829590752165129186547464416971511004117924793302277690230495399932518123300471445449171039549594580163076558819695547637336195333842705898859937551087679106488766315150293559219902941684678058308369563309728200627182895025943858391071957005432487097762073874207583969009292545989380006309739553211670032035330424379850408497261032521630665197677879459985951862217297538347613409322149448373880318019887106039393135721827409153085935539695128790884798128365521833511852393330060631836301692901818281665797224630167770000765178891355628172478331835369345878882383221067150368826982442221971291884272819524488392816861747794431163481690760080672517602260007090060739602822022503398583952398670024919319128728539227729336891108423958731503079700309801725817088750081354449141060490471947566851312745212720037303370378162172449178545125199970155303352225744121385361405462544401754845013800744129674511926704678199276323693139301716402159620569096344161419646922251268025289912418126011596877583570398501318499287930009529476109684783425528743518359357730763264688343205268196203087619989375149370966382349505948362852310883243990370232867058410352939522433875373819644146474118513085889950310239603637331587781505197750182980594221397304646458053102561668993301566621793565601434686734268068907784269334863774047377551110870964992837746259238447784527125267102789354024759520431430613042087328108626256036080085717904956921242420294093832832014020610164378522580537722378540464248746062410071546437080146301304086218395921841275702281576514136652801241509028592912178317528831884932248927494599134565067910816816232176500842798974962992467671077148350580134574160698025590340643680455274276112421478681443499846557432982642239991237990262973500005636062254572756247796543248899409964225861173921775251631910058385694515936626745162062551695013900837431871011203451411659067515885384172191615226137127665248747319681068315844874919019509344770332417657729515766966883047005839905467472698333977445665645574175578982713731989386582539311809342067304784857931024784713256987559492752817883957410627818470695272537503555462435084247242576903167321179128433143090585962087495878739741697396983096408610007428653941243403308776635689789192015884772253490922052640934632642826956064715158917267669226649231937623784704574502245865704062343968956535065452421912916478979191469851946912317218227706381448756180943803357648792792812004373891807425085527768027350889788651911152970860305833365165677720805114220673549839820824933317126157446448677402494732777891992378340723700862982819451837664466832119620342561380011893195537470918946144905675120327330273422621116257933314817904335261322621547726022902631649628402739937765965424453854356615877454640474083098692885603313366056921311822886295615466244548707404903693900484955335061242481406831798308848345732805087728225323673194038689816351437756199531437341501549260037049477910693765864668372284058318599823342366412364320559560647205705917632250234172368389323658356314395856256368653976085716142848850263780182302035040599163824188174099281459692885954282819518074504849720944483992286380305729171336785227582449637357625730686574630275843803713734229871694683633685310540976001208184710565525666863984632905417245835335720158537691777844997481036563827933650400025118876655849892775140093248313701031582720931304384258021088653548687993836477692922504445798224261637507929762016479968906474151226633623430867509625612912835268781091412686144386209700245068007668549405729106181221465631823367243414794272299661764225814365999032695574225762079921782566133173349716202730728731351518597752867829793081906768785541042993116279904533061865668517611666029563973190601767156705660643637211413490818700921011881516827286007002082468031262623118535870677041542236097661282380156470168420878540141865128136133088495893946630074860657147160077692895741832239371173184585167007335728703565762695175747854759913154042813546809164521958460603955020008935195600738484478636846971215345829951983747577167929654912799967827353042261246611765473830556771229435877708668012869454857256552484340236675041217825621299615922082981797460802970897263910129406438411801557577578569937884858647128454358302564835648633523049031759156869809892534255424781718624060044581657214698555476585494633701857062582123995602751445285027294813956730798001262029027777355278574985656116970534867249468054984328106558022042726571572396915770703694842186301392397401664942941567640090283218889191901646790049342027256622967066725545034568063202854275552992896530250320749148154565961658946304949767570624814905829287860828547161536392401392852558226343201917924124702169800487054582976702461230460022171706341973493572212244894790032406382080295161050474479443321861565891654216704914028276194053658052182476456809135268763047291420834848916454243345324184581141505514573951030452602679525903740942103149909652709379380987187008961195893567208800739938440606888573921004240559576059187766304210182178015047769001716665323960186173153708401153579119542193139390480677110053424492860097037365953741470921706239848423901182717967667420219380416496165024423952520558225520776693942653479848664145556155680730460665978047963574606465355875855415543635015286667256253725692448247687006691055381948546760617470225493832386617677482505564969553745327436413595402302765933494203543722557087326249482767500602406889498727362500875717451854212835928118154906207336817592898584760035191287455577795909688060022768136155681939149087639079172824722544050512781939068295228052651161071572512296671703770234541471314416606495381321950113001587636786959212108635096432387034141486626835681501912193963658861266075436779820002105068497091061332570523907518123222166581904586417213809617395568376015076856052923387977158061251946050564238094426055491038636103974285171447364194858020408328905819910696299312271367292893518181912299470417753901400623415671756076090379706893874369352387836227473463230921216634083175888527893930366317402660375434916869462311272555934145231690669956118803438585261278798250636044213318654523464949345264753092594623403770801279530128504189858384317756057245771284182987454011443061035641910853574955834840289311157825480725213535734797132809244643083133816122631079923166368173328589836931522582777088412229296842255986541552504903945961874248290892029255965407853625744720351795681981628123653810172756099757517948019255811236390545766721852031515298379213359242246259064697357941516487107090267362976923678870616586743916977031799668969042560221369285883380888065430972841171260233109451202907032737025147235280381022776334277311441023110195373232961662975888919959110761173622003652475538877583538300668754846182892938070454382741047700102456276575815138822334149244073444456800283110322372532202886465149968915464197593154763580145231526517079148813015219929588388760349706402148093122189292393709931070319516573986729325378076113561903619661876786410593452280248013631996009668321148629279485986107008038140129537455655999531239975858221973187139595631150285760972369005861338399511695836435757452140287042706986666568568387852749725519393420392315581693076304942949249830790157499222990090085069740124806045299399345164300062312954100203064415403200313809516546297042714557421468644346055217010136405176507896470043265150546238530284338043090630831005171107407973172727977225843985255554450334921419803845665500309126879499092459456555343291075351249080587688950867229208983326256877579986256691858406512464507777270317863048945953214889351597040963555720729668682789561966739644244441890410886349797477462854742435349994920194517671890992097418946107362299149163732432244330941712856593995190093378324029668237602873731585171787926132543923865896743484424802458110937653164232623313029870707860033302697972590389293512224195581397069720185344206586575383971332428858530530492183903955847084934412018095128225887570397383792162316609678878608298005305037190092734095128785399531989081999793966808200412105422510009305978003785929970169236314224771711029618158983568493886547109724411868935273744724490697129880134784312993200734102078790250732599904163201880655634768548729652376015765704233964922250923608222877464507412414826060073440894278459972626199941429936446237603607775688635496219758891094432742526862861521141343765621282203170910737802009975039204953640142146295704658001434038564926745300741808511655860911185438873736105101789755625151239942250830726449347303288881394089101258713536759726410004445691503477956265166302825310952383563030363938310697605282233930169980273151084231971349052298343360965652589295190591306353800252646077340690047357831992392156369563189063930669938029128124146440831733715836337177420489377244341951608038251033527884283368796285055219360025915188536958285765553701418066901840072886648041464995775898834227300712310405514104473076366062629639759628410560023858766517394183606346012714382019163418798407869555928760872884748330403411864747158954007805647093472708471124467382701394545874890719533662916909906542933137174982405069262257138683194285347638741890926374897149654406290010583202807531469196896430801131658346018135726733719609647971060940251388691362207270426984163739830662536650487034207041875169406061151857454747952233868662294255424621346903386162299806942241010435978568340004702811873135923849756158588873051172969292464538781228382482904858806158059539148531059705344152904163013928427008928742428949847175470356850874287591363910145786048901419702768652763597547857309340892194083686136086110070505634129223512070963074292786424860198319863574191982436905361253321647478879027957223138418118282242287516606039988198672157930251122481758597303203102173774466026244294420648081674297484351403795390188509890739573461100636688331390598256268025685975455215081343341225081134168253174821553157188330964399810175983598664402494360014896735408964984063516243273099312612910400371089038807840421858750812398624698205030452366168063011233339035231914747156957139200521960917684428452312810776866946841811205688144687094884970699021468374299575337102719785389110218900211974574594929278482515272132446985614234847737079347759800016981283210475801309738853534718752161119380524829549325031969554125874133491704731538034766977067282018413964611984022531212752973947082519766765789572058061780122988907649303411845430591579052572135511451187000372227615107719078027884708854643213834871205705620406558312914961295062909201346012761381685896166850895757721497700339408555797331883420936688882346007300504577699696849050397784829468920292842893389248223102409221355059436904508485748398794209482877455063966479322998893235420890866894606005593225853873982459125778026396902301026097669278613376475941358645341852491336959839681497087041266056472694584481776925752714347782938293469847479818000658388465746358225368545222317105704346424955403285126892129986149736202283212409039184251316261765691096173791747259387661110176425846832263098285103542458861828878761425300627543091242358900565153816608792977717964996305907160480495207116875858841601442083480236745857440562209960424294675622472582403782726934820765605820547643624155326125458428953304557207248876273149335261603386923584927367518079218659460856179513745705378743624022592564893542129063246265310211569215920105166790350371796296034236959179002368402492554636603667495249006997168369550910227875204456649301193541211747202013722975322416738154922354149223366256736303647071213343908555928653854577545541609538851238892253664874752172966584063681794928231718765103213397157791292451741574769311136843655044053770215883025355794151656128908878795635541823535960821271274085347422003216593364492871836468001096466450640729827301007755437118270380219159753482822497454653213457591284558558788644239459230427426554529397970207497080462396480225713113807934244321700374849875317830121967385363761922610748407139867207867187994146046346313179699869906424375760568287785151601213020015671022120955282831245158062193766901779248568050435440713692285483131367430545137704435191430531458782243868677814020948990307789363160573594112156355488292703988061094443327556474135836556397172003817426037982231912194447086707798151541855036772050257218257534215231121716558274451504691355278913708265962899163708208758237276210608477616763365588319319055221691020675687180994425845081051593122622236554445947761816549971473398578909392222680335932554791453662658916117337249611072391040673091656625073081201608383152884134549786545739501346674100554146200956960428744943924141592991104407281427500572895274719913092471482549909044506822844527718358317881904554483624357115878822493233155781372978684480329284653133336447918018791590651350301295058578967214654926711430229303261443270165152272890821339682178859202620805651848968177745281040693172427577422337461449325064772433735693696393098834915042134331403998866855314303777765242559042502373275841465691251707722717183152340537227629057072149114478937706150729486685889178100263635628155946965676828015067363904797963815066829862951041025106980627571695892887006849785217023397467065027579264296326077382382079681680594667080722509974609540131625187123475027924059241897069673267656813578557542828727391509429453881860427408136406423207202954384409557433872999016722038620046806723531503978199950033877485410857758450650640934742652168643225200020804456829361868927687934198684064890293386402138925410126641037951054314940109454987955983564444969280833820895811572508420333204707741435140627477644136300245150061099928185034782969604523313757588512944458407305679288070100617104850142771454815614774916385975421177472237951178346804094454301368094201994114987296290613123963410728609583514599316507421804719390824088964498486926473241069144662913180326361199601813219371334979853718427134936296324907344355950139443079743708517050656655442560738759739093845037495913303836417664558705044877863193158506458570938605970576208776689674469998809977390270082315300343246990689676154034999254890815485250706595371462053796124349894556891699555171458056118902143716341433731451423818910420134731174630686942271127855002014094531456642221898195589739441887647363149411373742983449540137809612106068399516800700025486327086789171296103674248691147884742814785446459341534458456780007398048050113484817269941630339458976015957730291117410163407084023735533706836409396543002247068999482038150856164425135263851203142901202452068561243660587915472509193988136294124213295104846801811781693501207586756207218262546922777079234793672737920684106237480349680492232210126882275136146044432953219494477091281759151596249725860760879999249354476238668090237018215612806435639251462806179144333141059155695076581040839435220479665385285951755012695247505263003117192332737542980034734526155553932980583036936921369830088539187662765037816057951878129348474060744878719610518078842895212485965264795421415964211025001176674967370346665663835258799277252154195162131701998024970737195594629341971271086010565590086963326105931342049588877065267904615344980740574458781202796799675662569724295933234729910050382811592848062849070943903483106755691484027718714409740129513278121334295112683352126539395456568866772602049096573941473937912758859891688794093896148334974950617757719212401989451589426036456101924696666350114012341987090658194467679302601429334344269585924947524248079801342139204715217338903173731735671995931247432258579130816793899259197406595639914091801029131636521704226337086777202769883013836038571316325486761392316588931982537437504120426148814289672383936311843608604149913660408880525288615884821364115033772920578039879425979461666386287321058357413695606011325577581114755455278593305056887139253279855182296758181951128978615836201914435723163194659810805097549225860955609130061178205290223791604700667319256187977588732965473807122455999531071398639745770715393744418987910110627589085330044133178704652322303222318484674966848330930229910599075808004162151633802903058198537353611232848043006997979869219756160276354232015789917677641798484843917746519503418578060411107043947294103236053478826352928952997680419184139044535181429681863034935019468472162899682744289362560206236642055382216730442461078293447717959036149725649902466894340083146962232404225109492341910507656604212669653566944982318053924506160740272956913923792734146668273749774569191698331500664938200757551844965672270474462806887931259363533957301394536941677062031575833552720276216349705678591096048769318363161954657326769874845896581064646323712804397061757702656960773797270696130690621845746173406792626139572815988963147548706216370415675119930896366751552100588699577855792411801949131277222667419963255450421400348304065703114096435466497327570929901576452715623395771078641445570208663068687103535042083726361388324220109848050467445705317339094792166766524225685086300382328917953274964147800625964934924785894569578170250230020191618622435365524965363297299028527148481494279473042544824861799072776524292563797620086486639198705552142607247865671494041755050831231164718525869367654999963514405050182167996152388041329912696635524878374855486247598000873221953194516203222987817417120684649450200438642162585571908407390687150795734002099607518027557307717563680687862543155961652734213814200703363709437348473636733669055048342419276948984188092941254208648673446303685714857991279565487762366174070121097899401163565875145089771062321769432688180305726592623404597687762046624051461097316018295280052246314420956403151198808984912881680732832836302666454523719160331429815070007423679506298745171096226638048998505810372228178390727118456870438176056747437792190514191718460002332281004464034898220258180701490566528374982032783127962270611833390921161691287976847389084904015455840599818830361533667469853282998402219852245251719088169107544126142369342511415565363179057057984249158103499154378728811795361223038997504116942428851433986292758243242063591655600716282481839495118716460022884716718156073040205325125502249105053020653061340669401606741643128666160241151076031531893084144178296589742659061565259023976833221121331871546553408692635565221608858631311526477379357710701927610407829461114186102910796607067252449268598284341229877969056750135660510183709273544914018896051478526792909495010809782354435622534303573268447073967658542293832251530331509724749202415734245625149246969647753985125439727300273107652546027216746472157378849826696312979736159475528888816451350605078142785104337691236870566484167832256166477848394215322009599580825725920335576233354316837010734395495048469841235120018021394066205927139333505068645914865789554829619534732575702047074408927792558639108525936309790734803117414954487052676950071608046454180985045059603930825157707790783521260524586099003518213646850237434330337607352050171020892625439548966306597928630637623705206404049449694547773113127695295419342067675679111824390711164048751632043371369735552125639977540745165844214500524780676165281537563333090660853865835192134726399479461644060048014143966216254468479744470082867598700570051588885688174021506029635926968257361230828053701776982883759667154486304527816549821092263992646872995408020934914721800697109885145244539667125919821123893278359932850748521283057794620882464431535674779129166646795426558192140236057728964947912825765080106294822512434988061316174739856505781492396662119939174931291328559849685866006519695699737594256859108407640895204293043940092198186068270494117430028135700625249840189779532068575001163169566742724151586181507256457970985132311265129590886178937658267284441483618528090714248696642669416573471859184383945335263297493801463012107612770666754486862176992349891302795275670540869206934844507097003573174385400453784845204302051193785453801785956976142042954355421413019089573576741003712812730501317257511956053989587306992889799126291985188846849764945394668639125623105101578973029397727017334429179036333668933866793732449052082261541656291611363327693676852705935922589434816325658606836165093152172263781399825843896688440240913283706798007915705020491602450188682662909163098954278262441357988888151231292033389148191697888289270549684210537758565247042225416060540603182340700487883845048265197616229981975209172637224033581857988819318485407612342438008167491115994828109511908517865771092040100056390728980650655998645680363140471509411822277287564321530406750501313535112086074868431119243261005197792417234794994885017549403750881274938180413730628345871730285216374953592193143905268319478464118909164193270194374871084162625964906750355993507207178158737212459572524372664265144008972825857050516280305874632958615286500510423935644706528899252487395650379580579449413730366093594455201221987294912167917957856831574787260733269377407525489726572689951824123189781000314605067343570357203898810762511961136664004054716384409717677340579312594127175209588968213132058174416130307689726934570414335584517905961819719696560580108749331449977009350246140836826637818779227104857760416892273010107391990873242033576014709507668024588447375444615346009310950981547672794805081982745105904538643413589720342368754152264857154710864529534438772931264989001643318834737335546524447593807668249771891910249115649280564254205146929824186782141312745549950582965003086778709236397024500917791890067045760915448209655581933377282930268951022658255056068503485062819526339318149020391008335445741496106549373370913729416280280667978099927069102936651594961745071234234556735258670142270038815308180075384233294882379203201534642948957927136879489676724350850391323174589115526304834733450148743797450163187710542200401552591131843123407288779769551882236038036541739474174954860468627054562483599411976051032259496124399484323255688575215113756468020972293906278777866422662225670872908988223446439719930816682718252379469350855990214879010455573702517122526227024098844582053293167177142466389105272492153629188186844517106850861798214922835168574744104589980553243910161611072234811782183953959853530594954874412437388003879549310083172659126377739249312018481855707634324893455028746594617954210221393629307484168324288695279128169270564568865117571600724585073440637884108708236868508878341255551720623574337763920797196922979025273589745465085328579031842525728493199014328353572640729353586589724238799894241746879453315165467412810838917918137555992778221750268329602125149241143079975697144750490079883841936402231661814103099467536282762638891944189564417667362786375616484285807363983401066573429640390143490416643490817083222991547531337129366104449037324764686497791421909461497323317645976929746662632527261719250483821213293601943996236877858312793856442357491670372914302181990936287181481777615074512165265116449365957211332472820830553159264379404791139834792337290422332756221892486593832127300388747451058805279168341416751647313288073589952211548161998167359275393380848530769202630230338156467755105552237790132182588740943520624654096890346008603250819503419667154036304092863523865436424476261715730838674961959530601920978912246289433690330284254591788562919635693183077905714301392784366727966259337272394538858840719829311461309242027707161221525200763974561773439357433439487294904201640645135024896287435839521432758571967326463260970126759070047796819097904702333393391917836043734022523559829296856670528569516882073644851202920181043184234893316778784779475156591077393201071623935687868246861718612353483856298038939832851278570627660545903077661925492358770399596539041299715687113579692395980392860474471346934927543336717624513066096555110778387132240439288110077722793422062392278036860578774245480326907814380740085689385897191714523923859303955298415592664317144478347611280706653256109889442637462541315996187364238922964363089940949008870653955744804700220912221980947194180813669923116609698503971033828087829256781561378899061588934365805141700697628418267269990846670655031253052975426577012730010133440308663788537046296363883936830635540953129759414982992049110603880681976654336324177392077770534646904083213420931237968923276263677621324598249434765632785380482691179422006793014226788306261137044552045079146232258518488911456645542683126019126523751217216881404486797838757061554736013999572564889160965835381552366482771279833603110740513845487292812146247135838207085782049658302845838818824697272562998572467302096230763471349667173766200246666609258983666710983887724253324684877510646542302820546631451457908260733070360921244171373090609297117190810681018346019655341126385501780621168673754881574647148785278619651193289857762986287347633358337519312243883371165682549460328876646194601397410883823287926134068071839282363386964693845840867254242550516112092280960659253892474635835408478057874923002302005418591711325293430549386655738546153212114392303465593306342428139054052423729592143541142001777290840359488428797416593645773999637817798844521737961500170313996556149293583798914511943369051702615784436281268635601111647390169915781197432728848058154575453753484462790530934447550072767518564826937161749264064388273650484354500410974909187278754780542179983085813368725540086261111585827756736576338540989525300106090456861151309845981575465845015877843847397740304271569004946301359701255468847769336202478064025769033592026470373337436345923662933009134672914524285175460452812019266971826428936239517712224388628597747450764592457174018346071406300051711914767481348603226886916699668178685725798113627196116643027673677420036187133879723948185394233719783042350512118184376728496801754822817992520881803848727143610279170088751387471025688114676562429242980062346729921496951904973829672461602885621711963785663974628837089225011156222760592734965634372501465845815660271794223003864885043067232437241787679773813344904072020825162038247328498753519924023307868035761162891813913581497207330260681890414654420616615616406706593220246731264486621154493600211727833185304600738430412083141249199986998768696837429938071093787667567418931217499200414418929062270385438478581327686882927138498174169034549671727010522897407113922535434186541174425632471508015193233271380775660406693212268956420310461187686232328209615915179644551495360830129371197779952036339578041112692799743445610491271177945424231756235867470388277994597072400018040383409858300160046189079701793312262425567672851790428866520242427745328410553732526714844745609527018982039432501090760112293026113166923161742590389000665593922649074881735829484024360921220715916391204848337573419126260800122170888030752663277052220786986967673568179595305582746313072728586570006121280607368999499003336017529349819890915531035083449169360262304758760808618547815935366450242689359759042812123002877656847666775702494030500479868771571811082568850902040073741217874634829555125596148072565657788968531434760493843984337023089099695173331153741278661289837318000162494264368839828853666051492561273435649448671264129547006839221167371907476334684650768689809172337511906653429656729096032292808772434631250331989636839039620079898805788020619174177644415316511846885693455567054982493074218759405611469163641208070504145442909264711811493924481133149574664388776170411543369807806965354708730529805893238158806630938807841727386985895122652132781153246589626743678709494309101103784975557471023693633079386173269440728651191869700339534835374760385225800914228603964815876163075887463044089135736057369664327597264631674011330332767593299722988840572033550192775631439596868132524136711101068819110893108944822846196338664108528462626687204039020707127364562309376990395400025243871503312688397329438501292832301097292498599867190451650507032732455654542684790866202833668830226567106417580245667176262126982326943025167749001017860767362670176329170951053648129091957307618883549852136150876752846886301273953742949749490591678747919822144267326267721998835530530602593387167185990309241196648423191508847217164471139707189308241448690487605131287406169575851557430453495887082880391843536577895044763961012966783147758080070345223384862114069024202687016792233210599946653636695806336286989308306110899007531435009943999755862879606496330183893908686905764185391712834350918336078878513384263294892443692633076813650206756160161874292738524587258314984004591401183404041288402745606301358153709398800026809533137326846237499218232347888692124128106607583469521366727790912426923925295709032468312833369821413874838137536691656185532314709479710514644153690739304048557623766868729688338241546821011225448409176010054444331610697809334333118317879663211170822340378774000026465516154573914782301085004380808170107022438812705395897954913299768829569308455921891293980615331738164738332356413831803891322124631531925481310506788454221701612313636974626594002882482468794799351963940266234833113241438400779604338849514824410620788678126139592946725429624716721513199407303260206557686258730412458436836610573623273234029091627410174734005677102974438883466724017063224223741876895209315067346670643102938374336206548803832746981464950756036762085217995740841196249273216012003427490862661263206230627709057973196161753034100900685460847193465870347373724793996086343598336147670233821044100894626251741394036809315678715265480127908999698893448954310025815443080644204638793493737630011626792106702933401362079368722311994667322889218610923989662341204222452258787435624652903805836584455947600892158913845300095969883201592916259413535792589842851507751667469012237817499438600363378987978164812927794450327067636338155856429573159151843405609802589673969324646104757766673898276614948054811082692330001792997728758518074738550155552942785920957000895791936540246826266384535435847053357656992316796948948315806924484179564411768193920341443426662350120923275688354972496912016235203490336736345348588863295309302577186482427111245996706079090836459001642202242176560077854114112080855847530286965367461096456010314121905705794439263377717948533664954769665832673181454022303583083579652105601825440776660583048088495606620615478743927723143843576420638699953807315404783066498281042816597741426521309007025326667247423883109768560020221607254764920492888818130163140931251336559499760902399745863916414396707867518896793609065507438397610910303040252016536261005853609881384370071735918622290924629900252683274484703023903736159548653284729383819305657291294433967066827263804356195030783190600219234956796641084856601522749745032439511931422065232192988031551556042444231702320625457864116774817195950031538976094921721700735976706730842111563328314315094648004644470566059447617411397356132792416093131319925793633482204730823946162659100915938719235266734830835901935782403698725716298040821627803137405502382925247212799856839069332152538289333142589411785643547681456998707368299203972141411378298436774036766343127630094345405685062642832400849584991202330480018963929103561159662806442000780113851993760355194514887735017904068663014170116766374825649378135080375236039776232661681286674052539114960848589026415634303571598938743367980900010352184234992127276139703197780563451481111628005654239355824025637793921411023353036911153333557102552758206780460326682701409197704197091063628498014260881918486061439017561925389128154522299499445543983158249954838523798368221144631910384522366989835444923996126933688300234003785794236592039945573257042459044855506470509230729556228287436871488083728093169720835027408524990877691391166495496574018711943802382981530063151780174585160494938930436418702246606667647957984495921210514787368413206638929502529634170762739688655863592652278555383077177011666377594466163816587120136014863050449877225508156936210183728629929153546124452906443838652807783502815057065167230041072569013762606092846646550778576809826129501399131256268931631772694204519111757664373278613956049768934176358223606976126889286278576638710593134633942206237059262065370014525321339838377706080369152913914889605818393128626795433154689987565715097920941352318056587896843783885939909676494293224450989971201535916429500387744929459394565895601527414059400335576629825638501834108202433588844318009253899418039201269543380644747150698845217332495420659966800705107630052465975447201347212207730840761288062331746511494858682058797431276519880183194192003119832890359749898575203589457982858534313381212650316801020305411024046138750411391673478922343739321753232702401852034412038587849164592883530853541073751375919676394102994507867197626566043455526424398028471302870697946100334044535227501274101008826930407616597075581407785490200488235287345102432688827573237771559176598496051888252686475589366823002742506792173745577636300173320429551860103316621131011488303065038998425874540828493693935890693144722429312727591312906089671815999714351807467571848833084224401370172223482582614979728695509220666489169072324910999326690672113866974975416571636887531068181564142281266357853858819950405682143663812235871697913784272567311532578516753119573637075545734084013345812345826135860872491852522104682192209431548606687654065923308861647756703377079314542663517165316380360611585441760584074047100875149247539351873502163061780138835979756130867719845355769737735408758483352304229371700557981073670670937280800642507791661259859779292031773093459371323481971486349725449946989017579725769501314031405541760722633632293685421059205375057658101052632013514264787366941542995426443412221226730474480195797191627924544557895183579242868767295791493798926281287922223951539476261313011870430462509527245558862757399944578963286452890387648353676959510121215377730117283649989536069935996797350185329292221665032580316521431251881111310698487082279080767447091153430054889375078808398471603711364105805634769264496474475731836873942235683450074750893564875979292647040259614454786396726903808275684222377729866294759940275629962413805011376279607619722166656798168217072901017490423052658730407620834069835610907042455885466316931003436127676692565175737447407416451305061348766186070559486907859930317663712825472723673605511154336207885482222269744152389391210340743561548928284724489055485950379869297155335090110945800819136860356986869394746060753821769881275376464185374834423788308898026745091718258476132450680978604291313875631694069838985874368611289771962001384642520227014323742940706345187254449882129134091326762213440005158464050768176539332574865238100461168726670556532938921580088481616086054231936962074768784309558999200313161225129493257429102606334539898757425296942643782102143238206001080266975154780160009951290930936925200163998992452562871428562444835667812510871783988024513451578147426693728612251536366844519856090590913325618713435029116102723884509563290767625874262621012505210776947535187205965112762035396474222028034885014032712861287064565367927306094312504648328161071079383474214058396996341347194373253423867341574288737138103746032993837498819250930219671374354088535026955804942998732847446419364733546035044078289798352827321094357851339233614173958092125574109482206301940952548776322273525735019708317954180336837893051304876901752436793701162203129673403711332487364612667775134160234302495697603804819085343329494665763597094990197979228714166220076419173733687182642427885623351244504078302992306597167177203556250304453136908967195288813326028281086978535212661551320146739349143825285839126549537383633128360200259233849533078478969362151095042550739226803575640597348891966132286608575472914502115704586985198556468751367764679921332881914170056522522574228446224255129504577120108160023662644324910663624429616586531634184166128557989276924079688590072581578713192288484217786464230661838565558889307404669612895938341033444544441888607395109537235765500194068404950663434772649828654668747192900772541491661838717436053882895915428017843315596029724921301939399430531663560989448585187154245742205256663015215774234554660421259906358686835300212407555561541322630853710165611913103007673769287939604841886177078370691883487562846740792102228723196981028001553876137842479462260671790154948085764665809805979372534918834238142791762968203543527322355373116418313517917366102056217655721822685692915362774282613879534660030249190983258129743263337847947998288792583643581938504906898389599700225073641352448208152943737557066233090598591221449449772670322239754306620103529232955509243818909563856115139917059359830692416348579331980722156421557887128103091526960227710511715532151698811956908706169523248432616181907429486513135038470732436562258829336642398332028473161932945890924828894707508818654412819866047893464834468133749374934545391290893623450981370939905271884789024968325136098406225591042113613158201685808255899475826141374148130758345055666537347407588724446949241590197268461708359885046376549991635874600011756021624051787327736436606049913049703026991849674871945815491661850852420026304072611259022640808280298576423187965673691932413356596501707111280613883145816903125766549435078917403309075413321346070164518212948500070510038519421895572532414470668116363273939930805464138917507044842306868876237721476720582739238571268445413724852305097912397465337909232339958368590889404344581001361039271383024674606953980519300473951337147245377527424888157567682755752279646126898774674845934626750217415638860380029081594285596730601102682053656667857868406015902184407669320839184427182361418861702404571207880455106720172480187359678405321466041752966219447310213415443773869837656215624388473507424635464184565499832264030027365835847148481104811486491275201797154242624808986296633799568678908017764343367391508052197875658878232678296140269970465085431214122519075923091821529642984205073880496424024277009036108122611010615482952081341065615357393187487716150700330899889664274528730561479909330126472080521496102077537268338609926944298674488442211081298344878858621381432323413016268807871451668597888113330536437956510441074894786591185906042131406325019359599271823987132000408983602401354430231207907863793216746785128266820462220122121979077860436405288753491274582203434139346667329499500631656159320076155524078988169387699715152905520367099308421979463616016333697237671804399591043894843112457471272387275317808761335205297121470121220105566004662132181221815820711748220349908131932192385905694333105620115342701868919596748663490721421210838525045610512887229296143668615916331000759925618497765909996113249144824998463655342137647666674030038571063789714380860128482425364518053290580251141179853893909455469974318170531017472470645515717900238920163810854436226474083243364274906883655463361964897632949958325678327860205220333389949410676709923958272024869703370050119863338210735210877414414913612919921406669671383768408640883781452757767837663028473852121713232212375907360741597976202876012415987502907874480682181423070443675633886255802498488255990538150620734021688738898055345086805833251092499905688945225564255593283244375041414554742191986840941153740699872657852069066149505689051447342188109386555449151897461923725596002640203466674051367089161735880137943590039033489625562135227095933594222181768803876726455025303110964663463937859198918606318526911746362649158557034580902823502137331667331268331195872728962402117414083649272203482491944371313894337936508347949113586513767812652379324284846733424689096125781905864817123376677275450763703117161887851068814487088730769938761537654363388444259712209041476014295510686883216173309969549036250498230863341992197396057212777179889717660371107207847062877674800006920571279625324160948015034786287711714296481811974415694329330659263935469640905438531385934208656317016924255104276628919984474963377128638399725829669112609720535407611964744290221822110633124102640822491728395063727331562719452458037179084549341516612158490122685020390139284840380168261401275609049354299970372937142527121294292023204004491587375452358260031486673384717322272436389756633128748954807307199057119308186724488642291327523578915794595003065421080774400553976844255281226889722461734292191968870372723150759947605242717072100027997580773686782767346072408438671807517827569857650293521512212094560154285006750958400367566067266024984631641833588455066731054335835506635656618727580103846397626503964072016958168136923391227142489016129237972037669893229091844999917078206439153379533379673923050726168100298851803076493442286050483016715881381078481095483958363148086450101099008847545051641603527078138803293284840376395106570689128524882132115336779838787765188932529059401587862177444662717355889074178236857749009860949138638085612941395584205999488761560921931891321638650521508980198167289671136237734661510983834969672456043510658085566119837531469398412987056738545879635940919844287584143406173206820311538274707660168831050619424401997488848074150164008267158589791796149062606951343092251623562030516982427365625556951838561704674429940468613017920163583599190627078759120447045131411589172937935466736063610681867807145027884836900507256458528314521757282834919663314226708196899685308405616065630700630905016230298853651649859792565690738403975198562418229580148341932361084622665469226374914965518938980436386764777328949395507870382925995752766330915312966776801376028289819554686373965678599252210303998085853987213326493304962800540677936181643755591447461427196321952165544007977010280107002059669933373685344547276893684826192685564628533663585664284247185636883397947591207297216758530922091382181590819562515897601876251775869871590242275258577713028755866442343152523096184866661539370101409760447530546445762760623452601472896456672440332847507551262940821536251094494362986775174035950457223622996715057051194733270777519392966249698660658700133787158458300958731122564919985493305079664810412817618295165221110783543291798384400203452296984405809853775857668881556125248309488036535626533317204041971550351278977906502091101812584167276958141001510213983956008624135373650830859340687375646144156999013189117951423381633475617607517363337875239294392943075769976099410088881826793527944123919459497005135673700870822040590651956474747482005336697368246451511804872162186896975812857285267215747513380589926656693206952054275088824668461850977783252455999593051697289122674029627178410643797395215610856707554772571207844634880424342800082631562999773318278134204179845619335320312933801683248860434543569061716937482918957645964954127714500103383207546620964042080225810105723717778473708696501320955746627902422238684560750544268549696121595419383826873293602631029209005212166081077378263913190207160172815431025088614728640790439445827945444816831666062550741269515592271926787415427700779952487234241807890242929182847970968120388065625103479649668350879146871534564919982307056756943657589614941843710789282604923896409590322580788719489054576435747196317377494872782028392858197698789257347753367257551427502324317182254333071090489708236894088139569748949877594995363976028093962833131029650167842862840286999679198403028810171813296655652364591485674708011326170181167939860544071142442194579745369305268851288624723528136760606409596463073725242956015090381999926331763668586689571067278450236509707770392793228604338867292181251810467067859784791325269896889496258825628027556825402172484664271833238756078032155681123458786293359974632373369325864049134469498734603583072858288963125950324429529373573234443855178263864738100796810329547893333506835862390546470077680468541369818583978869675261544302043831211999379408338672739219271681434383816894872888564966842818731330289124458021948052976195519668675650031063203758029101819012366446545547960410720950684371736226274171477077662950635427480564427368832614525497384737039103827184525398708797813662822848399525162577242244034666879905985084458183928135490888171868986449304635318014881911256456588036885177903065551392880767002066250091525190181948101082548380986636125568736213075410728891006158373302513431597113127883475884091140659696776846635887463482540296930702187622777703202794831742202928803432126948471860679522589168607386822661953596122409707392121086617401755490910262473079395382141840441483040082384184983757921439597805650213484642275508321719454435797774426221946119234315346151869362687180313973514647952281743326075802641434103801832372247147216100936483534534701418069684515496718851904791116930418457574736665685619414993514380651536063182031599354675852140651411883588079834113375122442649611422377507206692532425046627406091644965253853505841465938864056322534164104015244782478335178949855693076937099498111095636812250924014463403824563593834873912562714648747917995974456154318560964644971378327112081494026731943795705174983452763717290743325991815517696361396711698661879924397347725520805130552842527348340667677167574527767935913643973785143752924799300726367539444412278590368598540171116776049443931386803654648770130676873627071324969835628049213240351456800010748961793518760897309923877664455384748515936354414541290780473960029595844289045725822394153948547688597234327511620958185890496846994247258020375432501803886105977209161582737357590593764248503463562990108693777194042224924193624584543289782856282665930056406612139330650051617853310417295304295902173993800412900130898800930140105817609734178557577621376275461783623483724535846109901141212159339699777394383236231895371163916890179111241943435703024666873946914080753542094403796954375850366900937650952648100704122889523859830584210533182487069194187294301797030919199194805630425197748568347131085326735167786506807726064507086695390474029611799263398273431402266113041113718077838481014389530400894548693635428986800776056166875336614375006439961206889812316954999115451589976141562075707179967662202681919676768262464759093565958881861480612517718411998743042181962654210987484127211901661481816708103243918970980978089926805998830698994532600094809908865861410662430595807039320473595149250397732368269185311644272892646858390623167339839906901006910106371869668209110104534055854910017231489780436519081771801822485575802377641498458001996767359758447666921193247057879086452895588448989874035383518092798857334320928232929085126667770146982690064303714664825209995818268530380553454607659097200535585072201972009525315108565481851073873896212546002093271185217372402758906996840754332100213162484964998066289508922034470771990561016286522397120349543965743727602376032895512390740427190791624717920031206490906990188893081559643391738107857150827184384506447939779457805155828328689413552800395345195414614021579347270368659403958517019678984193721272365074400178667451421283858631714508767138401865586012816450342511953613556357227352981916485841864168723372555616613654566886390444689028955150304046620485991420678617216035336511137334424858515130359965756943596070762377203556859247572538467903201379892418608207532302882374979758808310997165528096734183759227345665531365293175149498338552335945218792457890363924550270553608322246773165351091032045845906479746413081499647950932895260876391801375760225346036457430762145714936819159511559565676818742231531532911844407813132472442307407755060914236969758575386965265178911548314145718408342968290437509169904271675715677611867112227501921720143221624678837918802554908383586027931154909036775935692519651853884361546320989928305964244214972409458892527789411993723372687168966200421981192887787091072708231356563682694865622505883790087919998452421247817353312623522626553711042085639504930584283409994222606704893230118704655205120109932738025903708900244753428244199933827677232020308072313995436720140522456754055501910069559564965161322625522877307272157311046481585369182819013387578577666208171225392607571388625596615033856591757360367411213994388200472730792410774487764700288630316494103391067724985450545546176374538328429482763296513031629309552781250137046197471737141005206863523313956133440422918805701092769098988314827827321363171839513155566639459837577719707835508247208721207710095007010714262162959844806359168252344185177734499737053500669218750664332016481680004527562188121939862568852721230235348450076543904476570232044765062991521215892794723722918399622754861761275465848837958088775431522151187928358788671420733643235669823337940975818923324461506189854294676168028603323617708191798910745061514120819586192019320463594999961731354464089015331858136003616961975847431066266173985785023690621449748405683261027562444060558822437274827091389034884871571779817741914547916714819774189373432462391956260016640623579141105735969128851793580721911493916878619055511654972487565394884800068433564899582747338703578558010187284483187895036070058016673566947951745200728022237888558363834387849810681418105819315857170469056798427191598297836406044689609375496305454544884326402038558687344810409443612365736058448217688511881928888778436711610585377132966094187878493046495520887905250712629589978398821761677496449346729589020235214370038976322335985617642398612435882438482097540533368233281379191670636704289164450870944409342576356716795921698581911138889570826589120072438208212366344217597313170893642475588277715484388441917656414743693241286591194701697857944830750888530812443386408671707030222039903899732840001969011531259455443797363142011880280752871167399215449849589536087534725280253898554949855220524579815789921542822813270637065742490170821001303122916973233899884754161317674979992961966318596740811267347272426210079729120267350801424324188244445681942923513550887238737892553394606271494467460096141364776105783136333079705815769900769144906702376758120364260288639986561629713395865608422879825805825704743418165371146415677833692574419320108227303650694382981833087996502698554451908740400751408353928788854799094219074257490558161375809395017891613976764958452374112076735398763348876033809641134451237613107643049144003682271689259786290287094304581646299496070968031103188409425650608035433399396167837446330407639379646216707000591733953850755108489781430942369623403838821082927844662779980805102717670604888386393817308946881434528609169107166119767920725780468438086853874541490607335421176400513411495077544266460960546124272288710909859214262313942132820788695875378808467623065842965193366030782899282662670177849732018413618773015881549887020947701460443498760645571085602469980258706054418275909726981691339125419990417679440371292788866014454846186869690156752361131117146152730214073641345825411909551174968328675894170967952169010329714263947727914980866512569422091710169971983541347719788180471665898800199631466891323935806487239668986939154139662933003677444262276296341604648628548785487772367737799039758584738719896358601632453957533828288615184944734469624092036440218044919090003942052473076826114366641323652652665172307732590930973901781003339571605554334901239171927745061726906773601766360583419446530635001545626688376788631794971300687654182263719641411644854390705307070029498451310201422871931379944228927453869031686571123269527631920904023424456280842526797569177906497192718609082853359923066568134712471282559442289012861380145072667996102778385380731361311799990296072251218600571949742481852815460205801378235618813455878609992558003551302631550671749157867934806083005067741596562824370747279239118913653139732066925329080799972556552468984404795612479663945478786335026920325550050749274879311356831275243280620174239752004834431446102756583147140611034297571655152188365578670633935869357421132703551923497885067610996317125327676290254411234433074665285860148503240344041871021787656943494688533796777562710272440457781178578578549918542097706715482078602254345251285345709702883645971849612985134905834875792671707093043559800323259044301033490721865778585520020441594412686430423996491130296929048852501318217358190233979221127794470218091750120787339538517022860430015426818034978934637100659147398963257187475064773708674070312330442617917123130310628066320239787024732256570592308228393071022998970890362295412522833155954557571963884219520810396690931131665936504197061178122745819331953000920929736791375035644518958160793784215214450161059596641531253779245805543806080913728147216894028578682571623796709204881876997517728233398776890794717912307800367917173795049280440231824142468596573183748205634919283342883646784033655625546915148274316752274560499551371309275811094521129359262354110839627853358579657044463234502824077810458422159497044605800447288266897409015783164292925075627304294105508845843556818435095153366353386987953767417663372959699629141131368155419769011194748511895841166559213769144282645848296819965973460091860642250290435651559789456300190655905175021559499918185012018911434311573201690572594415876131351858417790006466457392566265383741295651713192233781467498645910635684419967606154832671949582012595235290651759552272682315405324992213461095062667103393133139165395663582347144244795991831112651282778813499173382423861830176079553676974289091035474589609187985114678175049075609376292778642770774463335233694715329923983732564561451220853271839692940348832355601650462327918935604005549789151509847145297667835677845597332935810062033144739691811971538492813742330973377747932508694312407259345723678693767372491593274305901001271833343150670632532781524491271673838106469131605218165329463758082979480379730317344292647379536568450376171189722448973548462524395433520318124416788451238989887774727640091506614940567827529300021023458041389359750540233818091619023731357927127791044509844422728666142762806586138584503658617433319791667518705941355510789215583697717103135981702237249330125838044009740977863032472573268672229614743517121542804598707027726966612451749410264465250880158683164994552952942577008005990634522064063322645907087537268433634896440856550007702944997303869819567586236742975891754789393660821255481719295033232483289988647678668301809149331347912521721761448544094099366489908105959774697353148742407587472524831887482964893469812387417745304371988512357019199349524704866113237714859268953767577857731983775863930976829994186258154818823842243153490306676543254957431252821865120120510652862629789614069658887962154639124980467264795982156588799287081664521666105968346102931792396453814672935842968179265634687988563895246076776516985821866084937432943897955288640468192008495213068274904281016397719059591520004831477901484370799698186047618432757337796160907577566653618313284486704357013857750625049179245113507144137992017897770087042486380552416770026678736687447317732292168859911066133138776675344285631452716492746171529502066013136714906795367364355209979811503989528063285174953519253763073137800820481963015190104556914393166707628047831864386757601244513836067091617778920968474777370191774448588449272569450071000550402031187734860247326446454885612990309830794126510649062576865489924612383791732276181293977933158676618396502031015229380623375816403815655973169747398326210822407856344150437219348312036249960476380141625916071167792812042160638304634183511187797483971320474983878461860471327437105330297265257610644019699762765363036629163938854854878881774603864409555139898730740638646018723931012159120701292224560081667487041198298787497793068304390088509344066047753129346201119228558951086548595635875265827136364453772655181402525044003210038186984539037447615042529268345083890409557467593601482969571957544036787903494461663639484814372612839835202812627703941888758244553519392824330311802679358688889115795650015346955011422806864824435955666158003687086594493389385655805545211542230332562467804830854065593741064831480172832961761408130440594942824411194004394223181774092960403602556104417207292046347973921937807913132950486919915573644595559796684311998589846038980890649200715512223647364514539728874605955447115134562529402705705279628646469535056070955726144583942153174418245958023034219002195853306061603877687751982892495351895215913757464453911090369049866661131148697150973450660269832626554963603647324095045853970633358902323777508116550144801824996609625644028950786920048475192182268938096710804296823122762645562914136841409185722906749207093166193388453225637418598967012649040456293663895459256236256799425465352196940862499117463170369003880668577508451481705081646065916078365283172346340431066298410543383001533586881937664575537524480123955014036753680640837383410508019604755737672257665254351722011049494809688990454909411716819912656745400852466791085937716066748434490926037175549237474739532128519652094757887992366186854207070238847320686312238662573369354889184166237637338458948923986125821242115865554985600125009720001742455603404069097555414665810163881586565060001290173589600192142275229061872601982915913281645299867870217723882347158045744807831562229229435853947330852935961460387653394923616472139317956152628288276887086529090509248628017179055715215571183215813373275527926365192886618165259772988872868532193972636945751153152473153762559711798507156382881678728029828075950009911827909276402906426443345776474913513224744577918518564533754428083617835119883345624131569129428597143606903766420153117138067435371099421154459509958796096833331858901542324216997563791760629381633982291810241864556973151121744691707178213087885221567250611415024207192158273331074341905855952376859745656795127393543783077956364017636498090838657990461855625409050884625346218356492691415376888070295839091401474013533116879465861433648532820587058507895455040091106058690293445125344793293289688270444594387173958589620859614557557251265175950248997962009510735485852027708492720613235226934710866062771674441558786951923456352053359848192757751050248261221656443808200342162433592125589178220415830034779167657500729284189838845974036790788580866408272046191838527110646614860831110963203486446827632465782469114260634367245005174951079772062358539033252946496375839863918984335702330232650659201890414397227527044913805482258872194708645358506886827113390881413722175707319604802149212238314849073329737532754106610591508494423467490845489096670291032006646130237910038101499006050360589785568895078822436575900408242402476221295237719144779737109028424705973232865978293343315808092845841923438765440622863663588448283518919049005990574607948557274928085684014027412290467048961679078397427456135428630030737019740491279340603288207424572210137569523542352314620895249168221091663530808826760001081800603396760322505709195389206930319013572754668271018321424290378179266293272337059037339570993754662355335858816962616437362514423078076944976557684710159799031950536611316070732663815518323939865415761719546777120819027104910464132987185707861014667394866049897931179195971223461165339579045757501874541784652711467991949724215429214600392402512887210809489630535388179551566039746840313969581607397597791671589971794832430662417961923271096729835145274193927500621583501101949669760745240007570120576700576614896103993128322522691054014231321165029343489303251343729831913806029374783593409876272635560426491184560753164789930885514853854872067871971608581274180998269877314155596030779906219864400705239558581348089980199482502930721198780287475108274810794488388953810909194232338985739418733515245084082887237089307134122707631895466143449055066508998375510124457536488200054562651353107239102490516507108947362340387067543355948528081800724863423959257997089029684712667277827731390995056377462818115488873404590217775819001379387337664794325703792744227840131575533441531270528289675524116794194106624476351527321977560935729324090187940389977270236303142935850106707397567457224452566692789855721739893223227673224045835118956399238612122967708750925758242926216502185776816419120702034767503320364629798861689212948278591557413059491810317007972768201781952943301380692617942641050385535627532792286954113011940380951588928631400694133858406649077143088260393003803702513690883941645563914724272068185282807305926503948141717314602339382862527427775286183319955895648540090680681322408724350903978852612927214371904075222313777401496067682886753420738034222411132633613266670154613473203664908920960387487437141334979900060418113484022690874592687024311419433733159333419016549680971286892307041222735764043152796046567873412004787643309833740399163051756546573969402418582313254205246406176915863778619783725825423741372885602599937493767146326177967222724755159759240043506319821554935070272800822066546107737825463205033320448845800581548155401182960535697071484364434022734862909671155199019977696511195028908258078092243241514650378402459881699703167996787911351748386820645910673711837918869636214933388128390351397070813462916919520018490571469421141607682981263328069391433669814178751219849880060569866102240078314853003603576271066565171358770742194376397668050541826852955676217873074165931416521685955982751959933394007097056586788171883533889055767502045561905672257919056487075342386709999042947803198990870021019576008516908045820038649871121850112275694806412254779860274786158191461445995765504307181900339197661044146258257944363447630398618252377781015565701811088414347406529798909494730436442354028115589638544894274215040396051455303836930578250498999201470181981721142986413919153723616295205973626680366552429383755968488289618526284077170040781503852953329279132460418698054318684940657954859502580990022915235046959163507017673183370282556297273381431607384518114708650252956326906398327371850242825469645320772051318308322234576898224352219881918449651362348463826450470824519354161459615124109122471283786539195236527456421365839491332007633143570546111449209022532950752539159216063577527443758064607527126634904035189961793772977824758418721465384538831036556810117898589319266096963125485254746493322461764612515622773283637279889195517786593016035864336661713598243674990864746360229729641055190246127096090650256707133891926026582350223342157007852363737161607003795941300311621972021187939237952658096444914937113321634428830224994783741293100339204474859394724487817500853417199295167805592307505403527334432552229183065555219159078298001104283466424390755630884587542697148743054888476892395070880104890999476398738379857696001407465713808331657171780489728398864270268812991893017102370789038382114411234295332591742904346377759347800674451767852221973535260094401117737232074742710824286341948387368570892334480887670432091547656685103128222328136805992329957087595690864282986417139175673463073596935381861123929996740168798156998368242939196694116862867697319031389134066583235908374660206247884972753808970018032068716474639093326498041222426500941167299415792671485848731876718347614359557209091228168519823147460030149745921533007321789647421537057462945614981928519826618198886403742049466338416114092606479178395792650017304293346062544590701440667366351797416117781576405431740749691598029266856009588043363640542301362016382249874088564009812977626895277584224798311470279970649994260273492002643210613647939846694846032852154506417808981609820803787557085343835545225965403508035597737974419105621754638488116342852601533886673349094261907272663376433640027461550531281253048416062234335777495028978981243776106693489236123283722471391087252898391461916511236227574225249295379839596698783001937596457636584505596976460170418891098132987707744977731157883669236024242497799897492859676706727101879845065810367253015720660615646536143720965803909008227518182213725526448502742271999642275068411087090916365927465856094109659746772148593421864002701686674613681408176365551414332803128597187954780120868075810390438102609659318796493532938345553341141131230192042326398015094450233748781495119289926858218544995230517918486552252320865299709979239401007378723454052355587104693238017363914358749002273903713828388546379649603838905477776157181517062511607612400114214986989122642653363438407757172931212866484322052632482496970293679385341651018954074075740398699197223183750471529459384210475588352231381284319927337668250345434465028111448777081645211506055851182403817696382437787906863756067416792466365205544519816162427867180508985102500742250796548057693728338931605737545794780164670759454730330688251102812275197571730588662510176154378823015353296865663312224144462146830838286795689746253747659943201588897116214174128303588174815367127451912624828253437348261878572414436166559137641407091912730960163211780710549306710546214476159484507756841509766129170545783719447420531622162800036286609130114773631146779251196363432911930235672770286279514106977738016949648218147305439983231049854409459316242819879778052990995832144029034746768037563397302428024631026069133596465678995706543323426698445367060498887947977079826894522195513056613415714252820472267023982702550415911935160807761845395504335919408532402395172874554265441636876944096516092629668173141858242324369633374659457404076169092995922845880011561118158622713239482535651261579195980017749330193902743944695144952431526409430877261543240508342771550043070457987323986635831699010885898240333019207184539141297275827473818118162081078583061617010879904194673941777732286234329572536856095373153858897373775123549853983211412965420449786160954632619887150815961882017375678432304546068246072237256460417203928182737653391336423621815573028406889169557247048448518452739975167962448529426519050078661475997945579402717103964151570908675470215212673038649458042429227746849248932047203460386802349379151094513474718289213931390151441846469371606757529849000941482964054272034424158596726920238587812332763653691745270945541170753021763246105409923663734505747942426277069416505516492436843078999664107840508455852104848243680201778865049004187424871292694456786347437297720729272523289823729066615915986203541450798620376239053791900919660046000118097387276521983591044486458766849513368855405902173311116360566047099120736981706158095353628046844956559075223305762504788179474017139937562246082577253882377629597676695798738481392324670786528284214542252643684257967021080927166762772947945958145871853278461785597626451846112415754286564855435253591081524977454785690122010506178020776438169864437852848532160659542843922751322365716939568631671821930552527797555926455906818784180129249050902119592832039020395521160319561719303812471462864498718357201760698562079359419430055487318137396400825720726403565257147352850647425579685455572317945049701614127515089839958580695103214512369594702282380483642684567151456408510316220765169483281462103224878799238801149356744836522448539997054044736173153994383906605349114033913344840727532855734275046748520514430692777764424270552577528716535877812028145620341339451402647032372265911985937915875230842472801578589594471546951406110868965822284456243783814786782404058891246766514366463629575821160578951194658159021249416501426301818874594479192546371192469242295094955862913699670687090419250677572233975070575605415307160343873919036468531778336236757058735739702837271361626796977902508767162391061260192329670885018446054295180936039723802847939480002628419053270904345278950346768951648171840449587415021308089781462922522406982718332303996336555505287273644330574926954894265559105727413992071076915456498339122363228866802319353764147521011709224176933198124998940300662392846563527773678284143298819323611887154268478926756082188465494185380747055932560597845034000302957700870144143297321685513798477938328038134054583134588226390681248755849732621904674008685969477439566612199984663410452207275392063349443757566026820026628015615415691854348109556004115302962573305703725276275318616008355860840893561302902761632003590503361454275784804405887606262972267215705199096141877159276184267458358264234454027811848643762433994705456369883920911554170488967142382661933314487898752945339876030650608613393495872511086310646535112631229046971677744527818120981480850122865048914679885946281274989496651376442050696627706254915370181934003788484641931596695863715273917381458270333055448794630484257771821412296874838092774144623959206046679441138798268208842814482727208923092722765693564651461122482488149438004225508207939224578438824533827876587998288751856091267886676755335874371403751702874974384818661109247239911413089710590067685965825844250445548694287067669280453074300582586626434185568362450661135978783027392984431838610188111547233044106172919648782753815640116745007115059910143963719118930973136041570289635696386965214919808160242827262769932758035684531716376187982866367159177115102965474450967611089665600712563121086952233216682653757009757117501940468807170486797135653473914709891443553462895385559238182330550998363356145343848145729698419053386981160990369171314472625024423892227523996102033847781821775113220091427114329224792406532250997664739447729557738149151290637486575102874814373918999108568699025072464444347668967394229778117638647408022224078642625191313425710506460297237330517188633087927575658547780209010248061955133166196661208557208246986372280710402692847686560806955463965594600977193959758068524072312892895799287092177393074325216836478303352854021647091975058801588586757733420782784597393449063720224669901402031271004185195890354583236366740142435409992953454710319825933397085275781558871481695871130240237625301217766102974429293837848978621339972132827106064088880016414184785998809698354425950848221350243805888520980949323308841992364916706886978809507819456846559464205530593251359477798943111018279046596026654224748709120175265017373994846188117969395921291358429883841891671442446067566136191808059219584357981607216850942638752673701139522405062081473599737920900277910830743627496355066402627857970786284509469762322539638224288110657513212255456548976040667222714188549682134140086415851318251436622397255647727087162536844227112346466988776813520524814838629000237190853108482977274176373557910447824975148346806478514143312381878070011214277311474673508108302056758729520222726528470153226525864676044536877752317229395467984891466869079432479453839646045280589972202556894736019627311895642985652353440530837775158885595359833339038122728642625868116566533206536337661881814897582325870815348482416093778554104238626953368188801061933248797875389572694044902500478174881442004858049761577131302232153718231187582984593822350976226183355046168401951466106761136099589314455267947158621446698804165508908295363391523623502665966852000340231443965277861380473538204362639306622078965729787849680577583981276522868525715022520953045998185644133560634334751003463553070094056251744615713766329231518709604609331929559388872372279065457061487500749029673437780703828227584129935773203089592993650988048041773675999801772393148455181509635490452023586912800998619795272574127492388833649659725363277623345408528538271830162932210816994610393467464684428636187290885967564820641752336427453253567492691902634257965284071570256809311669709377393601614459100358911333250601796288725982303217652701910349006969570117257268361700660284548629034052893906372488923159824408401806099277059306165071319557917629729411347583030768630029075042767544520031754050015225294798886158797925133651236733720633497019297322382760967408859040465901144796500658814486346868740459425177893099100666554284790016607682936530399124896663114924376174505153001987571486127742839355874377955229187588310504681305965123053586290459322694480864459163034862049693939466844915659788334469561171302301973034181003538145421025485824360793657340959054568751030064666042982562492715373367397106800166941164579275444177265921149235236279786096953742986788548977703146716341788152660000458601741593074123764114415751117337709785270845290034348929844209730344432941828362241245529439918916336012001388785214458623820671380606873371737051828949534700821762289552806267253818113116626411855644183340582638638511301570011427178002636070719227397302683746859364583537773582001680532136496438733940505382530751602574961420926494453305094198665973724013056506233690170562696603046340881460223305296948491650752370692673993329868483270685091312302247167232122463590429294426235668478382726481617206741765726546027380921707350763709249776885770207831016552164174434487170091628682789929638748637155042544479848812432161067237948187908293099126725616801059102625302704340457012345479797385603930264322014446105436467716916957356483502267296725924110705183607947998976300211673844645612612191871766958480403401958356474210450779076680891097058464093324857095701091118476000165753750456691388940799032327125944047141461539740306301431147207182712868510693541232410823304118340782977445477576723895783391060282639266197917855482500877693796265840481256890609265380928993651644553694705275843013432585935819676304923549170478176004570731304348550323145028220455008057646250114283795241641786278723178374628818434464552001630147133455614165776167517317432207259239261781289024643513873508494068009932675742340143414438027251017673240639683373512411129881246744317025274182174123060667832576027147771759607204109424606084465945639093195821755891741051590987358222362290195445804612468984788041267773028817134927293158773669626382805913755667034549472033263142964026188382065000368683163735587266495737935981743538391327407805946686984475865212959853662286722803834762899663658609570987178583197903001077929561731594796570374203670119506613294480309847966361995241821302292007499561159995244852424655603858199505068369776442018454922545151971586414103962465519230803203986507891830118938622896384639142285565463186195644007585564149853029795830467722443693856207404040928456788070778918688090978267005580182763953636884132616569644989834700437878818236647928467218434624944909485000613545568827664619889306247037036828461368578144542478653670370048543380513276884385018511957259096557810842908509466182631702810321268899432199593380332880462187618808954679872591195807562945940293451364720135172933921591034080837779130440007127295864344439706480320360030000155681162113360433614943441294682057084081711937310164174901664730575641753083794667789530435949244358914360408866377045599210138618188982176854455743380009717663704770741054941625661002126445747642404341344886597019246264074441339293180579898898992116973467969403129687928749225707429198056121606057997156042021465551092694568272173023412798033693940400481553781538908507800047898999183868876981062966652152696518099349510696869970230696429559089908193537413977779648123926132365761691532493411692072250983846450590729864915336655627868198146688673751249774564995548365000537011793962639771142358715437201623527070096258951454255796081424448120101662844080158389569550341021573677864455093319837732529719665101533249883785960647774119327142375245270650148413815171314248900638442183273997671935142727187022922729605114687049428384487071045994493659107804041625512741010716806772895123877808656436544737816749164088046412269978113830820890971044900696003215846873111908550063909001455975878346463333221511044292013044869873933277611497554139310893382336155593765353876937179223545847396293902956703133666857803876319010137951238714695363221167601258121505213000605212714300413680581000444271257202111154545976713414705533718049534997701363212396208171408862231119703017102151931244567856459498225372494722240471706376202947166397284551734714459370286509366765485503282882778603774126840146809246744816269816176376526476429728564441300784859602860011687155057246628640561593455811177859080758673782376885951231766816342964529598757702389712988148762111627926285037594523050729393683210892014866041935883746667161758081695037029985134446027765004663343939121077331641060052926067334383167965928242023661544816172504867196564230290290385054681926638273213094511421157166034378060420812788887995391328169810795863377655947252813766691452551514533212201506318852535521824396868207218581219249046247939815218821206668482476733483123519516346552620382014173416982295403010428809845475890652990234172621855375687029528605650150461799143926008724874807593944398349580305326469342968112949082572089898057539284309182770151192361900448397460300433377530873704603001361627993923155189960442634666337477871452029217689926143508891590739849947398585643723286806028802935434830087750624765355649065687672651199621921785627942611345457245711968885951863839449257208899583996876082573878517803657106958727867021253106942965766330758116156750497601901622961021393955451562804302185317199367342841124708748162447005730890339675262164954370992748307313914342074186376988316983061056378040734167554080868918192805731065880496791307193658927551438043397200650230824733341601233327697225835006110082247382947940643793757254657536494200419320687416266654312077305333416980665632758487742457856493732996296233442213612882958354357548968631382024971892696948020896701652682929740258552095055177390709382098898410763379579880647535941580765271504727897751273523532381214902429271365322007008997095513827700313787641003676984469280613597884347033192161016677597414604345243139453456733468555869240883101230568831312833658016412171317083643570882932939035481273402809657691419435850901000636256624033285622923185867375390063395626542285609674365032976540048083481093379561334957554455268796561995511668509266653666909862619844929405734637011048405371923665977855378795366107219153578972001217027175969033134112956195641243028122822436719688556957455988705917753273198033811305220168239310541418672548304050856317582473398950946900505350819781958090073257296303501364633462310705626352153163402387664807344704303976606437386727162692922769336625054991610500874032334097005134553673072160419573971976703063392663497531582481419750794077556996003665872556939228952549188899350476015773711126759552582127383573253414417687991977315403413691299562068065171117122973288151395579693084988988990904847315010432267586258080704912108435686683216693723432356497172354539557838648291936315828193661170192126799987186284355693095406274651347827640594432438887857657101907811892486462490105771973305379167682487465545811095268630530095411336941620553486893229492930052070084325450766504495143846925137896495323561838310399199256321504117140590085714729553724003043730659154906271520835021664016554867774935602553339830459394624956223647794080724460503890816305549770738382936122744833002854272043897937045166464209223808819360988522190083929090063266607518094873316753513073812880607481669874146213731233091309281175433266767777898379842453857642494825505907771847832403898032401385847492382564351124206757389040198111143656166391560067202286796372752075998141150026687000904898944403696229571970070068060529004279109058038869560638593016589768333041529598492349902109400627259948834138112989282773384071063867826802809482974971734815716702254158247431570855550876891816331786057967399377243644454818281682890188838054353723697580859876634614132362875163695286986997326351654501387610984194083082856583130627663401914991257446509526299704106040963353974472620593862515691511564060314958562241558682502087486544718226840448942541263675352483438207733692836718639392209764815498063814500207151936459576161890679189391519455548604370830470801002469915612938417152861380920620159700622309033347759411463514337393042765125138915279754615502260619467754852805995847528657165027772546893698612464246333262500837700615883967787589083247043455982096802361724777586260267722121168281268337058090324419539693352110855273308223923074931534071124134141373056509585920942420368511513197965931455294605748093399587601878788787418012021834577164230280544703462986831516612225566414763731799885440598915564235480753879169200074720269533585793344711930956788851170035745696677599256865422259669817858496485709276918506627047737568960646605991039637649162056794703352368825692384144282432394781518432631379521155352173008588317696696337468321355398302125806022677723116728090755129973621244895247493725147266363966212042561123729380839478254894319178918541546405214467739096063274436155789525380402669742317212172175910635559852724847275780596927763420068909749342554026919128065085864874875850251193172842674371382497604414637663489653204206271280450900762448393119899242190554012463991408616461713614200002888961913827307887603102361230534164191805411522646826460000247688563950116062378915728121440664403850424239149190017058878485220241137627281868639780583259518680698809692371035357195530372267997532875373024266637399377885136600022214257793575424754957979495533487433962695040942432054585132879730277448204248143889831391595355111860379850876806626621113581776540998912251297970203011801570303952761056511128167856459070760484065078853044505794739171279344117457792879446424757633477883680110763230569081951932916574608402358228989345705925375929873194368391159455188245390280967021667744561530466822474435400124508934360888562456236916000588914769719141802932560113606525110540734759350171621822326378429681374332106462395712074279465016413415290346365324338423546377803187398103052774786673609327780363002233422020908028936275279711372263794154289718226596185385507851039970925073350618790209742392035539582803676815872027123965821320545532142219998895322829847857493818471962215844442886346663361283404081879164263172448238284804819969313558684888584911443959972481688668939236799258880704540254466992268637076625702490527559814568184520643246160823735071519833850995652671745697159561828248713765530674120868720500483775874643627919183600280581463866607499392814235274564243430822586304470456736100740668579986812443860138772351986873967292989376165753202713035682636358235573239297915844006114883345813266895460509255200496667906586752112002205864229364528184638083873026158472785128521532091805408596539425536642947205933397448163910600251193298692089556841959305970954057556807246579369325394028381333523998464101927317925090541715574903813060562297391567065234807596617544835237387551593575250839394309818930808173197704215124046623279195280179841413938882510519160264441227212558917208788771767586269672307137643624177340635735044876463426092786403627078147066713366403024010858908855499039291977350870664609439863890331402155212848192167753198070198705110877254921010132801639320134160547793695193323813332742370819336827061340715740359221309785297075912983673741886607805931560658263146525252328778993822668688289769406969142541991026312342598687890544039815207526198292484986126781488496577750220352037358921287389660319920275334300915203864363084087406564491898373511562677228637342154277577218664558026367243784671937684727727001070241568950322016514367091560627192900337982586670091218853594881991932388001376326637771436752766835124271353193585618097756490273557329120332570290136138778327716549827911592228615500560809820456018044152497204881877173298362839506418650323105879121459658966513406665936951345783418854751949422361928078221514601521088412710995330685059404976616768620508136894686707123686780995890030073275822689608606239239663442409032090784006709652314713666364112081065177444830903210700788365944434672776798145601119690351017770872786607861468585900834555007560117557045574146682029814045049773825721586998523247995925803747398410524004812858033332640448253226813970326647079620073912922394045434043191781329783706303479734460930402683126718937572317402334216710459277718177597816498033146023534582365741124576982381003434852108959905642300745505449130953354355623345791558181390469071196972767446922758512835236509263578993540716747034089828914505719010081867987280854700880291017610542685272773088683742898410107924000892715238146341684553237974260765974617317259619941786045413635653026444112642772950946940995777914741306276713656398001703824394167546804719000560995050536199512948698178832870814772585681710524610856317851599523195250159258711644017943630076366360933737103166432163567251989985633625397412479510656756994604736158917687608480000406342856129714746509042362037794402798572124492968450065490684464805154633495065950357531918087950428257506679726464089234185035401861842569149936342289843149927455862144925503317916114027704344516808707738405079987964761709385272431016462967533904111948496100014195408209674780604115245356701442275512570246431316383907644093269979331645291542713080728111362766544897347957645921087001579545398557728628168607477949534758926265396525773611459425678361013926213913378037045912537369358712048574493829786053653749084839470291007957813838814789077855905471370256098086459688280458692593408497303340494923847034101043386991479157363721071505666161140091039173396935245639167022240278130105320013904083087480590112864141942942435826697235337375039807310875306430385338831490407322729959211847619661000847274500540931690197863217741903371228767225746434022401057610769520561800151169452992925678167426579959184124029887860522959310496419976096537549707471985518423080829434410639604753363422283358540770965057034703646541985545566337813398564046912837434282252016222395003317188516509758867578343245111246328946110467774376373773361205233795468591605027479664991846899523262227228724659702573511396152772900510979853332836081831498286614151330661964528507218914839093809381710560235552581660849667236266040160723813881636969372336503278939771665287756224295913199846449398413139558565245399107222394752035076177871901131705583499659666327002012108292032460348956668451019092308138630927329051449176926426169291021102662187645826348211608758753055611169029371126246743895516278972280569159062889251248066015442501582373708334313014730339490016938081718525202375524470235296521473378933892887451021114584632962648927456612165697251316953433780088073020118572870473023370272183118574317381221693105900223825729499036631800877635229085488500944828909123694670880572743783421883850051364520993116758630381379095985640402098081827312658209357631752976054411242224751009985123632841945806331037788422817575499450824530065186275676490022644274568795729494214547595186371138786365015664038310474525833958010358842506512791060626558229804061606380817861371033586371011464747294016720662975005001147054572659489382141452632783656829932995568268052281810016929633784083153939458890804583487979156438775161029037876713891584383891542204871297755439823760892150108160327285478154236830411934006256433541894899785122515514925013175089007849362037657883008128131773144426549498969484399694583901941962800943434562765209492843354725655362164501606149006000343583882634085632949910598972701320379920584237544897357587213994294794475792977685247462806207921118505310778356056376155285136715745077899371963522563629976821957564320824347127204249887842443732395491334925360106841534210520926112732721791984802738262572629607143358387471682434954643285193290730682713282225700575240501083634591732151762679774604295170432004433283153390729618429946910689854068397564651034521838025921156548775672201477617852651289507865721940034219355968659191190945238810363185497578200359532358628130543446495645269401194585526585883121946227944245471035260493605096961340582150932407604644824120304308886072759141315391810104304813426048740075490696884289642503577559308878312040591150579559879054679354556072083016716382149056578359222218920570070014717558585892245662594171861040362670669273530003038690758144461690483345781058891993848230106474077566864667104742827410141420519875724772488963115226733446078021868406835273446703776870098306009228818488359380913191582466081201987991171247555590468601788884423413539544087698951615683611994764346995977487583669764061849680735443322068737633405472262478133944117969537373627355501541778241544496896807674141492482108367075093010674532242641903023001508851145371169534108848977417013255032100537219254604163294335493946171840027213148578700260167371103619917412156809494884250539491967940409242212210401426321915552083458247473452947817833246301332604797223245396578775425924900910984883254537751436746332626456628533532671531362996007439455063149784009387977508234668533587748814050142474692131076846518340564307827525565927461036239560169948267996319923133654709939950226103240145531280559747082846472849579467036146473208832260942321236811604733470850478886553849122552255842626210798169542219242043584758322109304389814026278260444448019097300197020287889027416921874793615656851195649050559904675622836400050552609222278715915074990921463129054405844367696604735308111452840563565139683851625205184805543263943554765996978844556458124334466146546210006826746189465238306536654313499761234282481648622179882431890337339953500038908922663471932725336453969461394006177652796072047356940681883409655561792768606778480231939571834798380728697976086777379513721484275281589687275056479722402083586402224328672596416868999486653488435517583313539813798646290486523046676926926612628962518414870589273141671901722966623238643974291701774148249391639940847692909002683119076861988680423833064184948052722341323227469785583615507749331541837243630227005986600250195395951023545911723684044112573257194938505119369900445048113025934065069240234177876281151898458393727490163507857290942710630353179205091756397751369543072607893881925457596367346989723497543243177626197787154681705338941356974250263790363366338594920756014510725701206720861679613297341186487321725834348780739108896625313548360973183888908831657326500095078703130690304733191797503869836775869377336730125485072661819224223183443568229795324734445714690403135632616454828763012269685035280980729031501226619633193653706123973446595652885068623748659200987648719915189119831314316957237744626271108972496854812107348374282416498808533167304970805377221028634886765369094665348766129604538656364567868915361920661231761416318037944041259238757626562149050917455537207851341120473553030297078414180819434184836153011660386074188845759864415314236367529246368718032110323908745683378641713891155209897189851794638063194380669709611185112610646177548466448202957030345825168632219498162855363757089558830062808911678596967043904537314661748014856118507236599316843820916255762967648115568419691302429283935266035650648553553585087825417122155462688153320168133639515597245749276011037684113379532164575274360916573414118362491268313163049040457331977764034590805698582950800903184433917904102171017709772228303059181305075195178575583624147474218995283864301309164018289990506496295235742447839429396844843345287513339319088716301129986304570656989869008869447692996127354708868561223480629144259764506874690485283818653396070225013925285587206598526011449550909188137365937004956630495334695171865968586451365982379258737678142662626115937832660153690669522497764856583772022198961600794977534900810265393962398255834699537234783329235168243714190455067531431048065923118369562931824645719106990330644246057228365563444049451048983309174003519319386118233759571372004843706856869201799982058518674106955844010225505275533390261060793269442565370219649775442676706225070645448909106428304689233251179776174253776115952472744986126536864555896482639245895271464125246791662209297699689419481401681424245522406520311663213585207236355240841479075987141041458714524707417544973279531721980758704577468026427362621341591723143032360550041653872801466841525867467742075505626751542544736606025232550913880105737936960880903862005486063518935588585382560377824403097637556345929906788125469932361650617022284973511124288845007413699400619630011336008909957661821824014437951268004550259925942795867711694402060216318708441844888067413116351955824978748528191079160856914911468915522960779321379633465776325626117565980696703197621856060484468258371090388051397985818566963169108898154654225489760483029092735563745206097767777277661987575707696958603528971062484529227789575116547286878850322762600447778310481180523688627716671750041046231896015617238685715919017266889843220165885068835766898029596868555648962299156922409096156508465917538980928534332474142198851045996650260910901109256079273901244226626366385307884432346003657342973020584618533372251307747055322979099923183007575048290744378571495777610442664400269710005501036178670666868609484906756701992264863266435788015663661803085433722307134214324208321059861058391495739889032330128716501496186456535898332172310125740672749253747148636618711255268652827629998523930393700835966163333713547727790221399253632373302080456331516231888033831489962276783616880747300228134980290142197605949455360058288130694298729701781116578297893610949375258948656291372864828755197767824741129314331288521091370999234469417177643570201567070551372482007649690697732825400715852468494271891460277338273757563245763923396536829720268747359405364889759329067165102790757894230543208494764744448548915250335855038270744788445518905123650633998098036862897410950033411512978439542410387909505497399220319960999797413605367018471297610084084817142955978685942886701565936272067712078222753841046222346716599424207679344534800431864270090496076329141367797419280113368838307125553109778395926437646634255540718977072046023756504280417350190576442975372178965735524506605056452706553970769352138854454605603578530964263026982320998559460658519012536245245081927002336850818085527506756464926337673174771266311780299542045556919435525373012392501177830044366955442764863440445965891501640848773286959343024918701607572616871372356797501330698713927826374457307344250941202503915534390114917559054972938561702205763319880494544830771086656615636260120442297754708824501683840059079291239231693395000741270977195591033763324425408677781736648782778351843845450007179963345243072720390812113422935173973797142566801762644369094744946425663233810632848877229271813423858275128249421401980581473220160329929906373058352978791326689077704029706739789015603002252713390524675581970673516424070551623191238595755490493262634426074323867141698177076214885858913712831790635172396096948762899562869504657307446688938421356057536418563034593677681994554731595479543135510555701902153246240063485354907646183609247731546940225040821753070116865911278335082212425668619954290572449804594337612298762324812463703370859119077761619440244661657143596736085135782935201673596622464752527833662768848919201753256643351749442310777463138694207205889731133988053387664891691373864768101307927272798167920253465523663388961372110441121285295865352925241055690091624456286660113922224093189269321045334588937082939545872763627286992106842378737731893744957172813010931978437539537195020381775715420284597563992341687605209187397518822229242852517317932449341073733916974443835739768741404571639452164789250139431432722883054244552281543210422870994508482546794569669898563304322510620001395781645819126327190108246913377338701942806706876273903827088320802802367626045594392220330263194155562368426845791099420122704675239848119203812255222011892792690204249459015162093615541114131317146838571325519525536659445406963265219642492670497855427934814903238078156716488450611830360436557831358594477585453612679665391859749389067438889874379056335594754862942757001542518818442609034254023082896720431773864995219040407012638565867516186988377027719521378774481218413171440645067115361270384831801053543102442387577281158241670042071162784900618928601077346613498397198182293559318049598569642172663137934569992305607581770457905020082789739315927855927856850471656453905199027222960643238562572949947677615564748404828822067734204347430196214613288098883952382214094874727195937875224680238753948290826203404455790069541419353298807454673117473310002187083772061182520689159985144721446847519824095638207669658213403161273964470990215718357041166900147544032468142076604632209787644255363125660239698596103516334383347586375439171217464925005333319307242744185092866917664891566500571004788362207731536423962373658344809764549963996622046950239909028254445213806493387112966709273307313879836240703681189739870511827310116358567605258583249322799172470604091300025161890862707434846200985948578753603996364652963653880809015367222387457534460963472154902412702151437034456380987597517517602242658740032146285506075101416397529165319740131764557636070806269868604971995097609347589685358243295896557092388939278503440403369447276877740686161880427040606093221228746399004010412141940918177496751355704162986882737111126904730102612088146006064176412512828993077914994050924831441246636656699348273826517343491692046783999645330508210515449141322993249244165619383910101245496582638149823471353065186728514067861885828036980309580941404879675040251071745744746641682191537480734770560826998616335972043208606049849805713043115418637393874099067816256032353521692660986081633443504046698985700787640703924113043742964881171365817697191136998636442976933835117934279830926773408507270785959326052107431914105040310802381608752494475284285180931152908211265060451901627027516277056032911445515257932525720035200445763176790041051281659215575212860071731044925064201001068802923009282461092920488821645226189269812263300395543073669746485908906898062593426814974069429712900160221105756734518150476236082489841258191446239075226727117067381247862518109222828466286337706770698992023871191017620753482550771615820759046593848659900558696674329346624291365679119667707771454648773197762239286345689682547854673822361118127926756836100197558828992461259473987320962859593414493847181585014803281540117404977853961992097213370213955119290567743265034856089957286583603183877512887186869212174484836717949318786099493680603813436400020700641286278008329300013281129861946802584389499863252710041918656684435046367434488870345783218436850567334638025123532732178485075299030716296435400609508039569752656839372013114758858492579890285337929473041257210923465866538917413059494569480000726250383817858886912926851951008540439049264883053922507105462360818150762513916573148260436066816303651847503389763380066198137725338646246575784551607764153853954876231804379525418599033504698710359761064406187790066889124675899553384732128549235236645908426606602490144570954961016325951500013260837253189111180932594945408676494635141318198852776288186759369312886557263717681133481120096330456302289868199956188440001351988689033467154233840472612545940365195682463535624576202961072708128060367495439137709109335874065859701700184173875606429662293921150664140838794234406890912363983472882647133534699342058707327261591144591443461671659007349563783795549973965376508886078681145211612770055037094383843479322413941918288718903292439712089234286598500453338190348330674793236739199160071720431108064255608135718488564252858627969527458832936362847510224882848767781245508295648875740715733728482034051307499135271345285044577041422038539747727136020166848247027024285462634721712901015824599508372337724923442392055570195589488132276203492405763963915494621266642619143709156498993440074952084015866849838343417594618908426981496342350404847179122276051664160494180608676093598559789720116593810102671399221515242603943048819028629062203083096801966163672780411446238344491093896661504924015125485944657159596922050266108257206157474807857249426971724483927818982709156421183394972593924943674544075811050411844157961668264952107818311429685826822332784470450346917014959181415646453800667754467672429550498237493410352592166026345506056069492245084052316796005686383867327681138957863904008788510088348523940372147233477614349473312057951164909601196145425435970960486360095743130864106909459095264717626795909995212294564772145902344410062856504429039580406965778841091443566428067834371842884121186919487299474362653601930388170486897731476390647081519853668095943941781735048009703311175757741745766656996155781847773678519200463173681824750642630219627484645157361826978248346054917016932639857238724358870765797041758231074770935722243985501624696739403749996849782867541430324185239749634129502769889832015480841586476666947682083343199619391704159753982618360612448141873132866015969268712389123587835202104941000399896772851707396971492085376423273960624655238792543980738652386205040222287435472479886867989550215120945351603346680395347348445250176055157859000786926528565416777819752386754200079246299049536695622489773445511317093924285432178338750695370326511377213159817762379276269836071451248090974546227343856390356022772140384818081752497153805189179653096791050137787597692768503549438303661031086154134044451593126760926056085434689629561189076093606301085267720355693123720792713028060593245119094397314038698098377492244145781382023603265881286755493027349349674061467455718516498655236303175526745800035915502415792929609710904615735474992739182735602089180869668376779806651389372685859180483248449029331187899032398747622719731773223405844623400214858937819089362939157255334702484988587364502308809774719077187681315453158076320512469394218327939216607993134120452552803118372154019401764810434587297370877839863024856931967380518497300083509889984301014145447656504062595163128235231219400459180274548336984069775381929697539027387963368466230736124497609488369137052651532565593909266843751989067954591429342882148172364765058531201548366018508268757512391176181977333667546216268834197287987209172422608299736158300541667406312517059247258828972331653317844799122391424482262594169488791654691858329793659505862464230484192431280380111611090902867105508216913726913628479696158656340962393695830754627073393946592182505265638083181022393569485067644231177690691697020285693552748957340361127256647513280141171459447357404161052329621403500958121755042907273164707634030956261025754835783695462281735865260324741391169133901596761336106706148189786230398442677315426258293477136432686869292634212532869932823742858736616249302528216482369525545354292180394579808365419634270529860632283742481387427485395871113849424455257861844629255686220984860291910072084010580780914177608012618754302891424548303730867819307386743969416733800850445495554384591866453839152352317606753312607329842034946661049134389448179009827686829807627005025691782203464542550656414518480202242788226482817655954695483623817007569083833046703064251745646391178825772614117343807553952069457870890106459345006645161443046752418279822943545635083620217374336772397323507547187149826498382249832178334076491084552361820606779781442425418005244003898347359897904688596416440167970095672910700825709177573107915982277706977106465538618943649570664490097559479114467237846720564835773388524271604503395370334626927950858029417760041038250739338201399580035949065521405013185782683077055898935760904930637355375445554051892093971303436878644319183112539577835858857644874093712305288656715779056692448694579282403987861845571913512336071450523831513454449220722631151948469122201883501449747039499760247681447594542362119943641879381661465738637651442244465471062327289755579618530629207941531404019371471577305536769265871103476134298302395122280402794956299307324747886287306051454542329191266942380886947600583210541765401968282949372047647457034211569213221987381359710339813759481267498978123527092215839180431158226989017310730479148449695118214717422910624688696579511608662589108975385219348768274970964724991703618256559724836856835693836148132630364273091163784329731914866259352407051491796785127228079492852120660948782317066547656833378406744208171537914868454693346997629109331885866359373489136272421849596370894070571338126512416001345986512446981661234314409124483531074618532828395199637358848320757488450926749784798004279271685301352341498844147584335626461214075156467904504026187010021157449463328866120319284197616874224394563021903762371294822237812913750032993675735632980917253574942334936929909143509388122173209495704593377180845895111026495927206962438153601331614632923888187461644610426634486234339414691323046313851548210615097765787255110213642769562864923206973462134714085984359852511349912801166680695789308840039717922221875867407284460078965860474979667243830827322715954867061963674158053704257255884347382610987365213534291827387884462507917471279177831053230141792258366861169235776630581509523226026244864081816830565922741934423787504183487695371191043977748297094954888165256986625427744276002506181414071293461561101100854665708825839330700197416658171047392147025812549497487999345558155765690879296397311978756837986000268874931653518548481806479054926498442696963155347786731873607138677967912107862817042885729353364550257843134231454045717210332008410021598606565509779028661171737731667213401329658899909066448290436767788842402160521728327226371861609963233714416710634974192306860046078304108422484478927407079954781183971979021243555026992815924665218813968962257634702371557383593647748495127772916071674341404371992103811405206251361080199612349352043773104900992484294244952079317978775301791250673170863813170512200524592741152803072890873895273540991611812891204868630571365578907870584340239683863156189557218884711705471245356243648119055842975236307067408972501523907552434605690883836870664875612309956697509868368919446843361428043987709663756234959267875903717939020939606129384147295719618622352945608017546138824803426323716508068793734015735607064602804552383492575060129317047251956082069913864371038059672241489700856543914726406694692900239047475546426212318465521208980239492430295865673271048629742153428878275535284792005955572771720323801739694647975354747652885848927636963705689937623200125201730458356712770110749409185916939566116065027936860220556184766501367877914290285950503823259785363399505901496660646563097327515722996771903878922815867041550101671670662020934632874960147712916643994973150679192111329847831235893812791588092048923965930672188826342949641670426634859675662987113957914717738170564647143086015350729057641767917296259890422167617032102030011592782071508353411106915036949934825949183689210577038445419554808726743749855285197301696214051854170173729307052304871969194187677945014356171458493671523908535691392715393528746479649805474196390394987604058316918607172922717616678578147786225971311350430224997179688724370392238190418854150984525144507323542242673078009562807954359516133852667076538901885861597543571286532016635390550605732048234772101952761163069911340873628885422482669964428675716177435111471732186055935454503372280494896635887156644574369765110164585982891467506002171179103909482789836851580982770625557614758839280200473601923354088661254042611501648907408043804685677444434588484700370802973780521744659070297714781634101526279124794164064788492734608317354787905832385383802047705413098042323013137239131846528131477540345537464793475555598793158767372773218418954033907683480299693413587312206860081989445821687448318278271899466300027740381149058212120643009627327134446175439561802879492424726709771666072566450828114369864684919823217386484402271068936270971352218301424580264756562931396528258417430456419104772352478054527887881014298343967197546441635166688816725172118403763697267130507733089318033010940331785567591018455173685036682328207554937092644911551738925624543181172189158923164189282747041358537940412079185386779171917561842500181666066084990682812912934505325006813139392354021164393726603612769548411968283616953403782679136403381611214832627079144563806286373355679190987903846905493912019431412117464253358678107673915701419172628485334804411213060098890743094976889704297397558646552491024361598136204915359299372749185046377439888567996821652658925699945572510894307396677685559106036027340121871194270526506111114958998650121065849649540101506523076761208134170513760043880321531256920344423343235112579020871986443999089664332456103534575949491867326383535549964647354935086711942681346988282661286818374629405874668810950848153308084810648638768810115931222689063581666077532963449094293213061710855631996835593224546092302026274783425239854792033389625441655203453220334134044772914143794221038286507992422853080820354508202783061075839948788953087164301708138827592533095567633930153338780072886326006428321034836513683838119330057670215237270476763930563343005077887563706891598985228500428497962831865139092207981413709859665902987922442782831425399418451302610669690508222055284455688409630841921287957793423643763736981170370068621962044237959123797866849876037117575176760806567689633388828294432637356831072908855147834663857990161639457238444526589270254577792904700641462926126980480443648073358234944455942647205683431673496688920292190211590453516044765073573236380302285615345077577543012843072843198373796111275823723403556267849857513938284047382812857183673478453073576993315031850438914909018329525419285145858990682772722435887219232997715740570894999215613110754348897670137066224542550852233694396446913258480225919701543289735836415117554673547638434714874795508373303798049282937206003002362566546017883492479085770825442166589957814481427599014175391383666764499898375982670713867893185634422198983741852373166932947481076883142422556593782592251464743679132759690777088138824008370533830320100430181140510293451596239782972091336169783762051171957319955258960800394673922248484545824101864316134191001227369049444792626701634899854645505682046782749481040431746514038610557630931797416576269134646517996011980376114747602066480001275311189607621275923592022695983336676832018599626116861437028982535034504556711181926492291530013646138419291808367508391360142384061885500111984418847794392809326988439553940249650512602104749575169436505549757452306435156222272780097341896783719347650669245583255364619335400081555828509059646561072554222045377570960757851681333025368149641028979863894692930236192838585019869696408601346628187515171424224884737275948757879116988546824761103596730564420291075006271448277854627395495789738152513123604894489309625317081006800001136250844752123732328351152262092876964585756063135337221582890733975919863521476505276955209344072889478746121809115146797599114381530734108253285178760222463742459023439511358184323557640559972013797103846867073907082716950387484706903310626803947842237354376570657023825952188296214297545564706885701720014647452264359054102798579493675135060937656033506326388113614926029850462189711854949151097059196800558715002383496802414871139439217546376646736854034520044088960571156128098614759841762658239525312991016604201807100789278883236954049781788953112149218672813259190149003063068246998809789960403475162044951401874911258945143624923446966835867761377232379630827872826506263440280665192108764915611656384420750568647473364569271979899209393509004850388183908708811788690582158479470558142094679053926744588763514333176849205474586221892111747302090270146970813075840477758153091334130989185569251192307118536642100832859592080179345197451643445975705957702359053516650571100481104723601518017696657244153901058537221603744632174567891439600226173808006764164620960065603227785044901810723932272709625449533471421772892605656870365591787127985345274294561545476998036120529121399869034191639164930451202498051040385129374680322771009787493242853668269743238701832768873689562945120819944892569598169487498265429743512363189265213012011535386783796101498748055980034415118382780860572291744068526999206492142906131288279293460944518422652526825581709295696598003769701575745549260059093753756587040537567560334150544408079345242620482435155493578128748417015152029260258551572375379068651250709804242602963593651533041511414728390713592803626754618737073942247051261525517043785925903902721766376459842973663927225626478856348074145481076969606027460536353640342859450480736501371942344120987974630159956687972930537259020783033958785779797619116530974604015000232143065096700878215730871736074663223487210153645786870608585711797910768722523343554418359617603424298421687297633444665197017145685980004098122053384363558696282763437353189580127723419612020941683591579511490095399558985146821008994153685534806456267179279618573135691994846689732586835214367976187735142080130358433499733475267057313021095056609525479760154582386982757567008111938866189098312948625166169268581405191944499556023066341555675312897130125674739875616121712304317727200183958286492114192057380252846426267947376931428669836762918566196528274951546702592265836136713760052275318880806448109237867482276684998010364046410596836207760862412477092779936739883975296350194720463186832572116323140995885056837923472650180759936103529379318214345878569003905917515537719334153832631982004289099112079089803056257381745884849154164332562800583747689837490757569354685493491742245111331313479032028801674013685191915467670055138241591646384617141218731085770752933103285688370072132470124574786957533072865552678383179635532787550777901563477521304819571864320891494602438348984727247270932157923665884426200635996130218891561409511814178244800851440144918256283892072496966676415767088646703243262411496018793069705019077030441677861065361290762690227467120456747709389354437744218005586331286165191117436020269098334277538700406218637875634516557382103826212443025038959770407889116084692215749756735104475603176692313322045852937141625313819852940720108156304250802169647769886060284285552818548135125578105817129266834819465052534527198701725699778585527905715023484208599682629500943259299481988086861581064505365925972013339864985287573300789716919774494501946031991665423685261971805345319907538268761198655646304061079320361265677603395449245202352325299243070311170037718588340040246477089974067241292990987369788119928761374559606157640079787325339071105050538706997023692229528114127699707863203575193855287682341868052578846035043903635385645225185567509418607360418746140065641819643651776890302977324359966068236708578114899545284089276802181999394879500861287351036787548514007855345829579990941261820537153207823393869066259431009354324403565809111759369058550041605177665188742244509008325160535979625091334190732476052270090785066322751199127469835867656957448823613849210981427285422025098812100280489255566375457850262902666399616503851544541040627547711511705791240898238222037124836505029106314432358966807523409549359789480203291322330146628057945632498420423615620354826164293869448723084024866483354145522738534430067174669797386586797528169638117065738286841129930159040253420638741669625679952385629814026542152820315158319059157912070282632295998033315662761500072922879944383296844725161909621653323591774457196681844619575197143591700825403660779756295337147215446312326411444138428016032387226862058764150225683209145868823420786071784295227894368139316523866404760255519363176659506712541903675876414374646734827070401700183026562142463149034592627652714134402906566774823826273980713095088780566666818048384123672837218119509335023174305420517727570763564272873866849872434234958813784998556475813915691077427102998451771566120239640045652518975193716974440472645739361240748119260821241423526438365780701041688085618950372792017429800978652793266152842263498461160095457743561005255994358503943411386310396656182088532868820805303823817282907590362939644224614230988623387581676316615848411798065354222455561279426747076751120216246231845346933302725415842281393506449873121074836224763181036148170502679291073037078576323590909574030866609070951796120740481576564823829079212545851415997308272774911555078672496413092736541828017912710100484651270625303964234453094461264973248486065157538103919104958169374418163910262862354200536460127154337532456952322517394025724319344698843814422448378999618026868144095353381341441975991959383906612204325522606235300634533662667238423871365336723768368347515042309635165966376268062019127253977130317335486614695815703190703085992277841042682086711593905337346182266361679055469699702752186732849115238998151370584495636468128897668918512807461393122095848183629643365211418729674433613368359551147245302582031876169687150322197645010934137651268084274570998740569747977048175199809747712740714669425243763932150371782559877528118823080731679279707985949735141306784273722520848783872903997267585440899177831374958511883082457554083515161837870443029440899313825749717484865799941001657130826386014808526703602393115311018678560009704365325090641173538228742245432470975255244920003913030624184796239716042703575421971155777748986351708015144829559888646261131464779778310133377282167155410486738107014362824722376405032760439188231943314196423158495197227085703731891658348409004293287635389396095867180332909915955097748523459497502939845309549670867885524604685523082558554793306439132925831854376020672353362263736180145801211087007281479398836198908914438516457564730832118046157533635668274015370892354150369284626483725753250097873510255069037841652151625802742148943374377569851842653031003282341901854768827412137274182841522350596141539153620458198823225131255434923315321509819928753261131060848384066669759107804456618146236664638719680434053696204859395367302094151649572722157669259110268159424976546719571191824669954441449635353888308145662373105625823825694096949498453580747938666965477318389568150777209422619842546817541608421985203738460466589838433315625242704768521783774301076679013752299329733594621813028684889657038649793835462347333398011768515148360115944780683309211310750674746688492033465177928468923333446517230780288522596715074518175857265315157961123580035975251964312901541556891429254262852544854607805606703141365191670635785781509120389604729817366073999161791075390323769794117795817146143333229223067224431757676454382079530416796020421257552570401332573705275156508266471263946886008243800403771354674349886856335867730809047466040028437339145251483039070531827734662796556779248340049862773633730486762572359410160536716248746566156060719573295436575545219764307123503285519458023914126657442666999760883626746917604940893577558495746843751816072649866176701041932936045029997880773025161532811813555531297108397907021551644409356304580084318779423770291715908292837013991838174409090427442461038920510558233022548077350274637685489563997545015548902500270540743000610304370097875237880641194551250510381213944524368292197945100174720377483735489216830239780846081337357800146040876870609776137937737289029670277764694626643894213443644619729226987219628152157737196366945364885765352054010922141267320793482415155710531605654364240411306319426093953892594478149650470381004080084169066869180355777109212412534702699867837187424299458185354912479636736599216599970057439483052026130172705452158542332394535589015564791194849243188249188881750594344828323928891908064200434322423403915138554987394244512670231716596017634884938109356176277664875298994217948458571549275831360380195706536622492083168276723258491474790699240299171560045699130061337197147855441940318505712570296158719895612798977014642972184846038950877907063136000033494762683795703913205994805419420178709952022360079052948918630423172766553761999483462653702374884344049337528500147674680751603814306386397428169682797028105845740346996557458517169860468016465037748943270235668863365416643635764353603140244872994837790941391077816695227649735109146189671878113140882907403513788716275297518891142940336295457035564543723920303688928515257099785605504375609159285568622027601625197899421815597315677055220364324358052682098023004488034291735050926149760123671519545485086215715449759110457710845996486690922485222754040398182161329918008847144414629305790495461797721504694875576668388660340361620782423746504116663339174974982094144817159299327087243827724804745497312778690291975992694282019921377051745882771182022653832979265067078755994199105181269012296042066179284358443036563164743934633433794060235199953202926938640795651740060526623236188082430191572550441609813221291198554469193764648095029061680384574430233432989128763040509735965578620547049812958456050766739152410209443145413419179861758262564536021479511132524639528569934520629073615520532752127190982532600210576175491365098492983756473896071890435291852704788742673977104042987107277503003702994959378640926160554982182454766551605969112655348855806457788389976751381791314912541817132191119692105333876361861480980851683675118276188771165434678186367647034535176506093024145228188864463004886970028848260199252848288266871626730527187064295944580048151739322113256727196172216018009315106542505419992447964770880007015717445620651952485227123330832220391390161772899015213852718688763389546047801507119743730877739242906794611554461530344770240208478571822179481266793189275247944223684506330117109749016632316684913511030214568956725393290334316713250616458349105792844962183735670426266503729472014565097217475924847711283574830789154146476092571013185391283673022732769788689175512817661759557492477897673507088890479117887895598603745684450883702798281147965816243903558337404013509807215184066583083299923162732099542219624994406464190031740043929348618311283952757424929638958056169840832374890060488418452807727500158463696296193770939682617252629997253989200780792525312715687800467908313869460666359017377079110362712079838773338451291779850258896093565417469268903114631879501207569785432020093848219062574462197173659468179491769399838019836208516778305118758398144332807904985753764415909746795409346593009637765981130193050310467151078714457957483118791107562098333047402361307669904751555630254960305313889120676188399858934104859847282270037853104221738744663083420951211876753602394140493756945718160939992473270894549627975542479874753584979888969533049716366917781651994129494746038321843901378453434263487243722645571341493918410930564097293885989892110882874215388003163396021446263828170638579608898711703665424957366750481210656534565655187131731087010119246107278477015806397928753238134770123906484786624700109450639889783902215426725349699457463127450364393021721506739378379562055054429384085092656186353867103013038322617310454448878773942225262830922319685193060437569238146689089071613531743702368803106167149834037265038765863719154163672141402108535724920874360694538441096735048985933539076090534365372273740150136936798387635927462744645460224969504615811917874301549246886896314085386739736913605259047014410508120814248857959755256921324251335262270499764892387138091934287148548835798696567285595459919159598672756286055553877380691398960385277950282457637618195567776595703156529415924897778641268379849222260776864969119139554017733917766756927942608603279951788036736832626823665832488009552099170225416085443333114836256109161616875174955692022558018745788840089122613055598011604116742586254574050398528030939305753993037404426349647253150120060211463397287721640002603569071286659136208005398612135607484154875053024695248736717868265459773881672908740621934191301475849355871435533130548128050333854353527307785783879816209012424837958295060150899293292015908188841913380113093351071441403581574106760253179255381556024664749425157270826885513394377715098592538660346311598080544032757056808465071891050598356451964296302739268637572517488186896007404481382715990251705688538675938259169546654839186530086373500765047840687334829749150626168377827414610566818048433361308640205507313943147910998501672025109394301086254769560382828980967872127074942080549969987540974394275834467901939512824810771636695104567079880625220126928346848155429660028092755214963347140207694352991941820936748392141857362643343242879174394270372433733496030274624225249153243384802930362730810815501064720402389984969589539747356724332495878138665020503374606314061404480732413060267656082563294000862395889951828006340169960966742078310983179849138503377329209795918436761784374930891263438282168738132421974393646552228373252683015888157347969298679771609336520959038015751078006432483040816170006956254462203759282394495410356775644419241357723991679394759990865391964947843443042001554794011967402945756445058783781978351095555977641082362187466190335760011459354588461979127937231643634803988737149937300963117598042050749828198117572897640918045087855854190882252134457181185952001625669192673566044595879833304255809480641043690335989365128143284931208965695389404529267468124604744040767997734479534098750563415028294528546508731263898481551142340289349206757398830491639456811214358150523071161912225430282899935208257218906808663786853861296878228791567951277363166060634999617243121999827853869211462035667365120729893678455796988441096759958814524255246290145546633607819669775353914510011780064450543778277426135425971473217308751627002292415479868139843766763434650484938641388996000239838927523527232725845484011613190061983613973468260944452235025722123336628647416137908763794233970793224514675694606417254462612878123391474774550566373569923635656478133067029311808239374962076381495697835288255273022534371406636583102664707153806695115281809082562481421605540673393859634836414245543588993847514635775870107510966152349838619947151379150781489334883547079308572877105377862394044614343011604843690654786610693929718341157639321199052638223653912516435530407941289797738947908741714061081270690945070854018372152599855018975258680239175314425861815420673886520252640704522320312544781918770719213393561602576020210471793105996226238086927392715421448876314297184058508514815158766047701380563341639071914902448771307116395976864901397179995016228212624403843955408067164209211051056487853520558347205392239667077652644017513581680644516360873494465929665752906221179943346657388844976599226662696529685979980894504145380596750068118066275069308848251552704105753278625117830034419602152811840894252040947209041052719160235326791083744653782027260248812819157568164757660161340260969353808123026560241866443595481081792845874999961776566489531079271833346902604987576054678923474211267761066922644784045902461120190298473181640348321072604871108538939017159597727928490230078793093686697914522008181757373626289702805292789392335562697071553508963396711611140787246253760983114018546275808297394769604789808183380429447186993931415039994894968434088550849032607615752475266612687484784629675069226518277138193798718114522840054233247584162388594201194032355747060486986243429326745746629732286115030251580486404440598990940531211843783920364255736479232423997811483759632384268289497172282640358762862930943476666031661933713009870121884051946452677751407950274246459528842686849100982549273893592256680350880741550548349570392423375034436728159246306910365924861579199038248558152047646943183368286703502657979729941926192004953795954672780054244374024993566892475041421584298642367190582408594517582902160396617929615542552566108787781326549754939238022544738979934614520001923215484798526184573269988850871263486096033313839985570531714575961569365075295309127083594270226187611628506335685496317219010825307736700323196241422144347740734600164642223929276019944897551708635281261955034104208368387681622151084341123161183718306193189989605850683532195267521954230649714835239107919138252482085423194525880778856593501517961579630630441882815184707840274698306830520660658574524230278289340200053526390966025731538743285486423958527495493911058821573320123254890291824119126606153032432970912594122080608462634164078263141847386749892118040972202553522066038161986105249438471629078493693608231840263756385167941860963065630435617018500014338719144487634692217458138069862511624032921681792034770781115010301580296921158050862058430363953726199812215926205788672722015826789701493477695591856762560308421214082270185987740708991283239785557385762010962835161687419916203441649543206347230066546768732490205790440850038025094449739423678577852474597680802976678067944669239426916906609431739905106224734726538096434929654601443356009221150143592051134459136153105604618471094095303988533811961112855847045503821902535752469249186197715306839549318812142829800322757525214798444117869057455991282787592499208481614936752169239334183058226059062284862369044886873263102559176624349825842452323057344680812671938922250938069372282104263400168027556379129061875072009841999395500472570382747887810578976156683124992974789303902538171953082904999450431865511042362304912658690716525315309920306575993504422285654201881964565142108002574940709625290793577648550952274069044087955135557665475419545106611759787935608237109711670942338355007987032319990501614862117216356372861117615028780784813833547875274268561078520620551020889394910084988633209995169490568091041109855559992964056530561500281462247518874995543785321209786242624656928872862499243821230156983434608294697686309505526457663685550769087704580979111066639551177251983368605921892932723188539974625319489368935494265396866746450805727287917726544460241422295269520448658985024808155682359163878420117949657560695036926782151036312095280605564995542270786843491810331036698140550446144609270515177482054815566891782751663058245931525953202267939104006643514557900047656335046415232280843918072524490214055009719131348538515122815900470255451188301399697709405214969318651193878226078177429265019485909240122493908422388019667443138687738243878685357566461475923579946918031038971141716800526480077767561472905163828099550545813331812108178291722604738716235545947580689590619052463892931968286967283560750447870366466425808352685898553868870920806031131030031982710359514301666744782637899017125823655064270741759593070330640848467686401433831434313944199113863343552755391164815392960364582999671025514898667602566418381731707473232028020609745862785178944772901064837697513036309198797869512320631576383929437084216357447087941407234145870345303395526511470298662876682858591333023492667928095386346633736846094419532370635212830392525129233495484242498283441928647930333069541732011453641848024529229453176608231735806306182364031069947514300203529974346555345120423833421613660690661247400219234610354978847075062348239320471670758146881268659595485792381487357523803038706632928284738592244037745297983795514533731899942133998603432326264975910838881552189840342405073985946222195369538259675977938236224056870776243881557257405248780487927128683087899084254816050815406135769422472521440017816675121036294867978393220779348047486857582709194196113211041889231933459246630605551990598055107325999084058980922126312990116333111452890495692811569127180722081347157858030285342246864315058536803498222374991167389623016854593687650362927149889406722168472118789800225800426535633888013575444981252008794813522692865409382536611753282674989966442403189044795534956403962381956646897542576017936535789319923827646085740605269998509072320093787532382291823410017076631236361853392659470221176378527530098613441376112058996216793533437174588021171485206660103549601395148812658379919715457646216978810854634150034897618740003019642856354671728556213542317791080958379763164244772591646260135573390324778867774463946893522280856748978860196896307501657783491644264233356832858907732735866517152039331362982743337882707346948270587535480930730642688267376232190393038064440462389278671759338198024178792910008665328467021759523603311282842753057653424870003783365035265686519167879046366550374048704692303805508378804440503233125083906075205616808685053634503404550125203008103949920680151386520076258827730033824564189368769677123766375532636305441852554841214767024361797162349147369993922544878162595858339004422916906122723609375543467289106325658298293984503796153448907619789437086237778925513883142969902336498706739820638088713648451073062392846974872961072975295445898657464018273412348283591669617266688580250355392692151163650363441385533190051136281767834128603868653524761718722335679258975963753091664621504481466628002518520379913861762099596776898717925097534613049242257041376388503386646519384802166101347139666147672939356277249528000733003973595908320089115297435170254079933366394296824594509138927576654237629979294809625972206212451597820694554120490699947820993959526588607137072444009297369956226152041647584291891429710725639524283075304607737773192510578452575328348092927723454571625358774863310495122440259758918091688971137525817690116008672512181523825282693266348044649031127577938118240012749505954111282763907759259276248892657305587001782921076364823547726058677216542298244909474345691338813349143223775424167396947141471608426358926063614773492548537794300015268764414678786253925817027910962720947959684395891384497040734143742075563949824214456908786490417885451576966808453408211964931575705141211676764406899399859985845285585548012454217631673976365462923987814960212690152166706047890906392056713184032752148777372519053110314037808949799237370308578903939950998599513852377571066801878906495889170829741096587376563920859956518164215512482911196296932513478480985319898651614312016936006938925328238542918193798911520607694398473454210499463546904544365354674036282926919006007243636512704340398605855534735991763547134740638318331275801743998600207053713287264847483692897541806709679342885395484740678943874181900917144893898183290118022340648074828596266586472492284909992291667172643405784791370520385551033288476474621783357484976761495871505105626221775820739380425635863469842547807805953308573264544617618905121934661061105357649480527250851480225365187291087247450273926221005134036083433691627723642181982909796121844092779448765152727675324418809170664415453419174754500935452090817587419271983106907000034186390115497535245716942273740958498509206914696957225125066111080646607615096286201800716542913168024448119882360058233480216467109255594476940572273173404657593075155700284750405375675158126413597233534684192128425841198258716331562101459745542621491447551892308422433980697070989515524053871462124418847857320681435900332233062526372625985670581179368310224548537034323121194371568416402825834600438270977993169192756508638549583467094226937541061314028699627403308078401260447749132991558703767723163389043984210424972458876009126574029918979228122755018871728185348972503573760934583430789678639513091465481632394126634405065361029424037335127212164717131365796209478476766052616417874647534663790166237891235393381590955591962411063376939933274777128949752522794594435362092015451792817642788561221020715432842126557948211667480624859919594752102270564564492836659351409746916809517048134773898328591531811700814946179681048517733383611283031004266368022587043524680834196114450405765219377144710975873440460238639596364787926115463850079978729105536732322324011601698584195983816066647451164814509646934682728357451777369834875360321660710309256792556786145623182766282156685779816602605833062860092476357791334826015500194726191636525113280558586291578880805074667701879538649527612695999609857874756938306477002983808476758080776750774718375190450208396821036626122960928325335036956753981928237482023889922229199308831268418181470051607424288367250290522220088368818476785373830235893437689739397265639482475107220627485159326975264563565654877112172473177520146019739680887520788669697494101416053884579716801371838036800759759458709301909723695798485513272596497391477227052466238937071306759636686691499528943907572683693402199157280707933214161014616162479425641744351350124986866206770930037900161380315619997973315456458308365359701670570407509501222905532993368739129274223285276425861502675666078626019834742778506347604618517537875378987232712384461368685500909594007602147331609905727153215007675202910933739403693864254356926801866097777139677816166233163559360757255045367358389655685426660094002787723569216015164181438501660524813580873638770794157435894401054869751583387723439059599574830511319405454806562548900500674761853663033407037285790387427904988867696923819453241977464031885044809509090435819628997680145118870090247101639675536242821290526131432886354655768977977200771571823322066122557506541762575062170101299728256236486796988051076652610664740566374448364842078547558231790394976393931492811697738990059372637111263326209618882302693909668303321231106039847769446092739045413114592886819134491559372629969290005876198019261965456348895241928916197814349572329579129128784555265289265608992024486613243658270138736366302251751028802137249725534535296737816771960955830201872870599936599808055015457226193368174444455084507783246371293605685113513821753835690402161366967654992395153972185298304700909710054184310857953051750183648409061133314070746158197797668887114844459134198072028078505376449242166492604584346426617650424193176956638372013831356499740963166115163466667941814215557217900431480212912688113629487756059731600363024336291588419753797014038261001762886933013675148138723278121822934511266002947312151973732633530994693395427607743458875759502123963819945250183817995634299818165781467105450864370927402720735235220224940636900280734656570453586542906644607363960240681909483681114368723868363263376119212023881250056774851315271898232605912351513332042200977411980427977222377194523104662680078935170399640176148827269999538968050127443014981094350452714324714641076556363242919167050152299535492044812796190738701562462010255466179407595873656571270918170204391762012245141835149753837756320769420996919769256827209274946663353311350978967069631958562598379867508349290903289946840327167232605691645551792097873700822043374533472615418751990187773568733548465562191594440179192718687958085985047118775249275290220853565585018531030962878536395313167880268549491132878561519976515568063333484497261738033428661622328323849204723311232597496671293055563786825024461158696116329314358383368588942250975156430510634587177371545292466439661905090270841674575004473578071673740593283808494015361959129114732073502720263940164662498120465312514447148950558312503119521920294610914735066321267576694595892023633850969453265968927843331984750002207950734994651473892023804302058591712123210786994897224825120476671852338805236469001792999795487664696513923037900279827217513690960878712594374794531980994832504298463555310598058702507562612198049928254863180424901197169982993394410738711710888646312524541882776710511342747107559195022281466230103975605068747900944988501124556086726310036418823318672046282918613118041823131269371177800385552137905827901657931632624773662471703488068280586791346236940590290032047282998906576221145142899407408254480275735635321887541410030492933811684954604959766222985841677094158465032032617798839030097082650532492647473095305368460208576631489644024496779559093897942225354896164999778351704548666410615565307839710774496649607751343092971822594873873775470499621194426430824355480937666907509991521353591313207272368969999653197232066618454388485738705519238884959057163573081864415669725947996736444449406098998317670518156485990339277682931082269142351984166457889275841700561577121730451765350508924979654325454995777684600810803190875291381475912478746324372737080759779167431743779125077009527095233103356917303121566153891020141938210793650496076888090368812033275760270914959544062075388924009435453810390930871174367448070652944114410133197693853063730511421613704707054973957263593738851416529609721803187526580306848840451026330717518518281890744890193449304691664557128659300010472274298705230333962453309541957246015392860918840168668133551205233229632200097086574630524014216946100322138605112433282717024179233604490596591003036589009704557587796793635947741920433774820167903441833106422262592964073769216764693723617678353943013592913244513940043500766472043529287847133967903348072792618570146529605270256829998485766391295596412418417172996791222411546338967064171797119254485181510305919193270698705888400499470156376597950389241842421134615564839554824370666858043752693611326462010373505907028987195673413798638911327162226653411316058146056286769339023117877415162862965306067365239082080789363036806328805080257414139298430206411175437681093039696928903877665377271836982779332500624062148717439727743370731358875537166093800606084485844909724342160059304596221169356534630434034385033567019602024867794914457208918591256856161308934677689046330750973718895453555714319073733893990553923718151396500068617142782787140397126606034955285791803190823535361923810927628022576102729684374240077270680602423701591768781837526072417611798996994155769580532432334500252167362585318241901637412370770545553574729223428857082740810899088745873917964035605545682679677900014645377568176243870867101397794495045925863291185463097653208537123144596975958698806146893039297063068038566048426383568784517716199350165354512330617148191848503412011633606782790461259840089817779248080600701893997637533670463615039241399693237813172740838335144457819124315635091607684797389110536566071653254758484416974480737506704035854313777740801607002682579338724212148646566789303559990905994574959211036700741106549965775238302067501753889661731313311477006028037014262000735864982750039371534592129857309511451819400493706731049179402109524956062405110211887196258077681604246778414976364822102542590294609803230546475339671239980512125499451853539129273492220716900061780296236450131996444324350464067282337878530947905303089886692086080447899751168517336434420186887389263510026262717162207952373150539413376577173141495852437065952807813860775224021057965654908992445694246477132792959254833279903339682223006428166727945771990581573167276519318441963117912172195635946103525590552290314419274425370408468132545093224589176856864283444943582025235300596695461046307268835667128535502882623968255902769544239954171069989535068146311716259775494150989054237908208360160767775804897248984336471387184078336626630038276737986472714129793904702646293090356134816783041827017466750852242246929671904167585898432058185132842763908918206845807631254558795177625615714266245799767908098386374616701787572272846723699283989008374545973901635736626657639091282532565003793446190487988370967351003962563126372315892482097111005178637007211727746873906571742410075335478503583430732624984439011405069614362103875953416848983233124190973875914441111570296499906422556301085502791290270301797856182424352899391118521058951778844688595980581646295351930299125070807321607471542866793800202503726683114087522643284537435293609461694377465548459578585480977977184259039983828560475953669972877950838853317002378333513184569248898644719460558421402829751544919723518648859301327434655659687348914533885515958382714039484261660021944435164274602831607506177525771261876768677337699659386505966209242132192964115786791680701998939528581060057626756700854937448809943927242616132444933645923037340128959212685497062731284258219759818303070531756124475890188481314314725727303249490550203444697804333306558921174020488762393941425834111904852738570909741655167572283401905142452486251177699124312785994288447870093108533833836197870055632800066602461244352328080275296400128687000646721172837459808249077126205368339556193934082958307184325910909323709667624673371965255862737999385409552745497700723475082493751602453917153803141625221151439438504007491677120109000953875753024129839746527357437892616662865287651510375779055935622920161653953281690465342176133627830956116947398939044395845457232513634847825911013072119602504477757977158558357361265712228406427293099604730966942398034195852720765617806174676906874865861356417727695852215291233635970861936772334943685440666371332755391394129971935464556792346791349743141442462486412077889554435600663747527686013052144439407067921298354686605469942734236990432866611743886896528338221818631492738847997977534085951883998185268551483517065192477404992586640275202674974645463011611392383653569333638226045797819020194887452828314841206325173103862682530339248579656967992302537100849322367414747778341729602324920035171569153273421921841372440722014227804202189623670901366605040218350863296971311494222940181650946466087602625904003571004819569876251740171204136279957925107373389370822697781450290191010139912889344794392166522497493728356297903550916762839512630873587372166588776163390614968851429471357589067689833409676586214484317628062961632012271287021067275489516356653251261607748515149670805026106280080669258225329402065262672059075708424584348505506538858725064002826008805825422329791685279011336993133230996160922365273426339846159141488588764860586099555477502100322726499150468623768676420943671518050257316806650329407834075838650629562147048384819774569548125248477967994531751851787194458528165716622270402212262520136181393331070870439736260417306915170934113200159006525768379929845682568551492730857128476114978236550033745358139000366077868717897723426568955843982684177614105953233783768179139288939524557012295200294353616753594063953631499589151344287117537784866976740929993093581289435789686827526197225732725475894031152928717058992882069324612859485844276333088630673897880392635210049214180576046376315425523381984685961518652790413723990276756840298982675827630888731532194652640996597050107481387658894189031011353579501113115884045797606947511626579831661045055297372769325471578966027873422747118372654762804258044655917099708057654401880067333714134423399462794153426611300439120665683715319692957736899353730566166485921638317850168927945606891366884064057378398699120204427627086596971714406136426194136783587596159213415051953679389060820311283147206278195206252789106747085215032568588540089810010133301273052616250318084701347670365780749772559618825553592104422838705808657781512003271320621959345592441599428020228320174046250844555262761976780092995042138651402072261620225810343472700083752885843032931397751595607999918141500233318137918208676345469673759399884275156279345153915961229735979468947666442914851910123110118048751764276709748443557035234446958390836374959820767299941513253105621641378023209609985179938959596497818537269309654973311707960067165894816625142831563887519902517198907300607203412299936772020038831605889520601197984149233072348650046894394908753739191427169854797299763567826910017850551930094850331343329198115298813908258361052104664539119382409064234574945957796370137952752630727481876889593208926297734749812788960086629829041134849186352064610266071004344424207632468151573086759209958234532106244718370091104454218028606458928607708042820370848220792644943225257141830350261755846935088994481829539692216588532857929872859881470447936838935082216265744521861195583045298760388986447708840571192100421547992674601247088169674470052389415445558593840372425021980565015911103658507567779643330098140912908617323594907073122319851567550370593640844492462676922258143991217769484798481886743696880037988110796226286084197066266430770058283879817431146280449514573893067373273900609341933807280906467815392360805351996132481714307590430044306708833687506018542647110098445825389049493712975146133659747986108906853533944791290838566806722412656619761144516998334485124453315414474501983215769829077516542902217033612037774477691955295282017446644035779365327911785502601831280274247682991969731013306104087290225423408351214515813600724182530692637278846461531369037065325387399352521477482038443949669888842828431091472805964750872321241776362619902229166486416145528911612531586793046578403285568436228275349179367197553715843152086365667236996027870184813514904167073242561413806760156197550312763717262025205652734439203105439017551982388623981316932638931535455097528221719813587398893906685740884561589788556452203327248861590513193519334044030512160653777632333955518823951234489877610738331863526653242550605904708991655714886055767189289887707794788097302099155121481064965618417771008725255267345881329897473052838535008344747939025028002850023011753966759019509769171464872639316815215341103353085491291885198376560826221631751020576343207034156178783958150159410364490349317328311887625339720073407748479113087718003244646323460725547874657114018060102843263484856799860496792027076638418416196346127817994724726232256190712545925727375320720794061050154332584205782541987852808504016832239252920068867950753149104144276680682754244235858392540897650169741848952570178551636517065705500111292648862820077705628229856153211434211940000849773283849775774077539571156691235698713885063896343393278756539750366010647268185184766450316265487395962745707449484398179538021287906078854361078433869333048017974582958019826242299925192100613092912832651444924033620064207442265183017474671921848132892815327416005205892897420555648143687018587649582511920531807578063659508739999671356208999825155354750561713055436955789373494081105161349310930049493986519141720172403062832085709419422421004030489581338941148857093534586503204074511801109142764906345097763013354389326867921512578927928638107492409654461187662202028215699559781283115023350564796277955493154683312843402780904035403759518414676404501714519895999447070776294541168918667697400664293113453888461411371381599724091818173385239006091092977208549044539797275855940581186211466392135627354083229525787571527838410940632981437671372128095144962659219067135570408435812142614603574593245366278910358560848813925347517898898596300397923585037667149524281805324878152623105509553722764966544038142736194489030344776668198252070771350088650557684985038717065134853266553740326149199076827033248073707964627623828784458524024267027787485947130373008545432864906815977684581080182259914179316273172255485299264212073005520320290372216512124947107547058179554094425292291940657237524904184973385931554898705188159842424421294375046178665176561669638549352134009955081612662824536085292894062810676884197742244321693390973910129081170118513565640758928896332339836192140984153634881175178692336227058330798377109760445199591094503696069933531588586409615043717131005508749085693049772170825778546110126179657393914677014972485351220517748157436783026848248186439056496357640295437827635920152727498270329937899334634655664052162263977593195897105109647680500231526837196392359000587986016698313646803703910346210158997524165043649577041826275566066050291621461914676460950178884240928064810533483159604575374467869778399011228818851593838176495042893091067480940170977609467432892915500080615439820263247164719621878856645588369840031902733641053382793389261938787487715993891157489139719099400086606954350021247915663745809386902973412995876192754243027887387486556352936057813813816711732401336129717754137999219162229462377743347946821979330283048728619122456859757900860679030777188864214470855669747778336990953397862678033608842294036885300779437905943310582677704051726637460643980672674394340947555628326162353201661655934492460723767273125888976117797791060956410781569308876183211373704401727911078702064362367516360916755334740923163150324406972505246915453149160596104183680712862955214926213272075679843650570888274047950285050545912691414846568492805358011002753797463021476971038708108590083963596750738777346042712022512186897521181762993607498258120572036367880566935875725510223640943135018665813261997082624112797725775350324430090772821839763154577115433317559257066271150535408119200862405746973606274667706894907322691480352574274931432346789729940916603934298190065034403535480114403034563130261568532917791468744595672634680489960452725033317303882038443514281719934270229329703270426984942919711682614408277518646608968507100837752174510856571668752624760678541036461481829465754002727207845189972099519223868247832628496175643678509098622764347245530178112955543853923349996775549197561871130624910475286330354150147384053916904313330663150407322220980987704864155906948213640191302017932865300761828748573123420820851110443207685749061936141091618594968863507634259513842188167177242602928609737383597931037447071282000817366389668642287492564293959410528798858825475248075753523004568587566279182225199308244315175469299395431713513486297222475571021262462351315393930072084823100521929983962301675456839865916745073923852376960022107174838764752132742836094748780262529503807123199940851438247903573218284646771647901646535885445226696213053342055409953316246165900363855564040963394179531831765175886052201858180508309211617247949029286197999380913152727529102692307836034608797007909229596100466898986469209575281672439474207804055891524312422744210786834539506503909362398063850278373526702378203961174426894835512273674316806909486837346884308575442389719297171439729058791934107128007742398544954198928582026861790703833582099801002164330085066375629829953893929000472168100188749733501207891088152426015256122129049870083648179761221060914822007058606728658440924090074810798978131879838810830092490707016621273504736261390881065817425456272574437843574356831884181949000224952150247559040150874989468994525411934221153543153059671775533036246986612376118549711246534342385570430956068828448547555931024864982638166018048272766850505466283671760728683514875795125545175521877857252747187800201463664929745852815368178350458238191616228556216861643185352282933554134125832818205249425829502126767616288841934150185586841551140670097254758873413769834756326839756422850109172771222944479681638243073499750257831198858881410854268228232570852199260365123246876972800028011476265386664914024424290499709716707635405013126452874075321069946250175884825418383157915609530201271171646182398641583555361447072471688133717012746855182448714048170900904186158711636787392154416926735905600834602742498656939510979022589464087122502955634384531197894124846870184980070033735052389009247461391706656471372758724854460020286472122855733760694169157578803136992721789690603082807339431467044749142402966535038505939818561934708461103107715068290286250898794074912705774282568214444259003687044549163543123884613399273854178188289548275326338654135051574249373420778881889227807779449246927028999003484792473849846170989874758556781759920139780646772607713745580374194745077095407292265977588562479148054903863118730073023747001004956978922803869046513179245542173130978728974838171981516962929802397054475155307421256926926211123193847234551389750134082321260993991900419767369419201730052523449509636335355947519858320907716740100263351873268495672374803490084031760132810737760217850386385658312751044184144908207942647333310258819822296338096667860375302871862994599920642360085852063154752708406410322069458352852470969998669071396046838876256287484378669397073615502138847328025447434321748173275209253760808813835460099298742850709378950243269438992940139221860437630091585233391869166074946141050717430427692447346347300547360377972017042419825680102141659976210331858809534671671915606586591071954250568614206528935131708697910346451913808374812118700870422381182973926578788366087399613038450725841521166394117105474803887486220457832000426974924300386841234931808426182351920767649516623915020385359405505540879998244261413768798097396401083192535466992367011040085378997875406104619370850088643818929648312535457321573944200910913477592236199759108143716970516086827701838215569297084485795953400578715003223124811741479226411059189151713407453574836020808667603269105420501173768570040601782445615881966361985344015499081838583447621091867149858634217381488430105008858471173098473029464385868845824682052848413743685018236677345822067538836328242827464002133542525796448418474982571337689174696934407507345854349569859146127754925376674648239676816010448361535694755556039561373172176662363797906757763282432039096175750802995856653556287744088421284241855453228551500283276468182680473200405666043665847615688422937924684959194733928484903260019793280290566038639776032355674505140746373385574572975971338265887706969750226278864774305311691285865956513650184576410677721487607769274099490763796559664386127778907734289923487112116719972955850556305752959032938530585362309126853670839656824698368934709050864407536796564422167854559265369217211923735480321834504592478883166519978921070747504176445562611923205079162149493060420796109688764117206937442686244420211242754736163314727017577735487051450241437122085218620878128176039666835027679811522602321781677871514858048502288361265726590177440765165883363833822459823895115504826725257373030964993494495632171226584401336144470983419507535065492989839662320326349377267572071881287682754155747964535354312706406756064733152119873453056703082919268494055913531407102153574129499432310950262640700887087821697194552194203534177812481735485964193783578863547607342867398543252267559657779750987837365854947363624574878967342496027075466470366945708743341040736052485118169193252518736575308511083802451323226978301710247210419737848507144175186883511587342162513695223564208821182287842670769929030145850536835304248847095224619647113765924903414316031566248332717632351819297146565014215032429005944846747062708870962570725055677910206871395446059859857285699298633391378135045425322861362682460514271225264275759840440733708031607465215337340128688031544682899960640075936658228126347544512168509379967705848229299554126620102111195228416797791434352729103304956427584230124437205526540470739819305218104903154200245547931133344866559416677893834952636886724803933089716971330089769115924032379285956932854045159269167060044400263096868862088567046996975298755383150460483051565205907285616030655729887517941016855203513082028993717034462367212948130516304590531601309027117188351267946325084040456145466867805012109937915040731678792926827774594278522489493575164972154538830912980039940520678925350466863998362031144395971695171388428318437310544569155924367040052326620599254630332655402783401868171278898416619742969445226279611897584297613703148004652466389989020250340507414278259787656395863579228918987470484717171239979746586283195269921062529608785670883360276165752238524292463718906524238549589024365592474856877449461860376418719284046611409663641707766643994849092478044599918546232986442222581145401394696779252794576087912481534515192824243604036668834746577123254085352361452043087479479233550225379163662043275222163596882356791920950240301831766027925722395370599517249028513286136419184168201688649946353981673482866921396856181568155501908409549888295367957212779202917977030788784570496519211645769595359524036204433994838049143336327639919876038526736178043367955535107120063905429519644836615619673615772459518880446001108668560036827917959271812462504728504386741147983835086798385152768216861605825507771987319797458978271789165447319323109116619188727325589123960214523080913649359406522117450726768150211595080579986367486993691249075129286020615857442691800484722985056264113965522304825754278697873498382868411195893904083056828360601063763230630380759272792213589608476041173906441828709715643122805127182824514532949122262747128595833405800278411041794777168737394169947290928595199068833880754391940517434058181301075634309563050925288493355606772806525710059271889562089588696265077407749014665540174664037401458780011513822663942331734161623549311926483159009919484186018669653883680836410921250505662133168744777857587292176730769686261189643843452923740801212658027954863888211081528016611490426567066606702308449430150600304656172189940230713697642221984401219120245282002407770641797899922464490389769087998148535936487461109568924417872145510810659400912680599075894034503552356472433308047659839632723434540356706078760145797574370504101690224135845517141155024036144933897336383224602660450668890121176585489257961123429707737777895241534928237126256988426408634975438893542245553157176870774794037484695799599675432640434164501702365899755054719146322835146628649213251809838549554579148346692819064435897438758445704076472571035873429688488022368189788411137012851840458798219705341928234597056347918633134183814967495436588739924491309222376188281735990318568746401039798963955249318513222514694884733265539197948792644688021625607256777348411895461581186144633104721010290995266227743408642055358110294396527269586353716019068675926087283457479607343274944352283162738463176720980976429741034672068455954155293571609966987650818407069332166707670048676867305256543934950837018330595004826806714287025065536907152324843865453656529112580882401605180760651371341580237424385005655709196427563337947097300085906604288431167630827989250581786616534196268783349985338151606419227519954243692572051515086668518585032632027562338709999960016084581827264736577808453733403364808432431601330005563958126824638550146112508685760342001810581108478839495768169264343116242778679617653791065298115908690537920592332474152317012338693908922791354634128317001950742392626032478135503008673961131032770391004560620124676637718628019901906464875288776116516424545313515793692291190789378506772655669200249903522462376662171527769851292260286852947455756772943822020081934951411793702641973657645149255222519315426175935338367675104458033261332189728251128112563327590389996115527122533879120094054778395453149518028099159875541429128299609069723204441059258382590764318726181241360083682114400989340995118576985224007777436058335752227847336240872851210821716664754266912569323208746105878383891156792981480828214626735221579152853263911569273667026971100436293280858566337234715959621455255125145413639264826216994744803098418866670532093092129738066429050486554497270039895891242346085070518095846193504718502318320934503284476096372506363664916667912462169412137207234866495689839725532820393278971270022327097898970565857139442562064338298102186556408957152609871323706212607357922539675118733498681035900363546223699317986508286330640558846818717338116605115439831426989898981684676984745794888069344099479428072183604644411307304492101205775513545200351597472420788211070926570515867726885255216752619174048180926741007176729911325775254413690658001782150975617761109607005351094291435791791263371788141445407089869222423789105428791800622023455886014648951147746519807593003666620274687042277773205503480381441616081014316814209802989027777760433390980932232067046747040805172902513933653107379416037218751535833269500424319074112662350258185150429700601917437341462258734753732262504059292906471037925097178952560853749114539724662688317456180921029166911465993957761756925614267660330365038803384239538046270390827093014880257510368959615702231669849769360953223775597975704872144299547283591541144646259280693765668601842266171405218391147637068854036965448879230026196907440329073114215788391276697386450516602097677439300255551205753912459879738153703064417612233857475429161741298687948699202991928670458175400848739769821086124837582836868049826314329930551562262215912180265564136397907864870563528515565336725593931841661468435780903989868717948616096391517971289702547899260580349723122974625070761893284848153701502630683813000586720171219756770353960950318009916203046629801201134795183030307494681002333536807131266400479190454784533054011948089092710480302424283337506174074662020944144432122604374342571262470603420596022281402141889502811562916843562085478033073286693729535788390186967167403477035147495840856677831885880679008841612163944155863802483921296882945627102168529823112001118987096692215613229746849608585209445520535388257324478552424868902795352763860438089393202702200632481093982131159272541874359046011818283341049372234744026375700027835486608378151125980600976410738850903825451989801938343378564630460612727590041120016068032949507717885496798057141924896653032848770304699720943790806299558401684752032367792371642759088939141325281851223422354997443055888198889439078308901722936264003311357446535611208727623603358473462504308577130154866471050697077042693202426124145480806228985348815451084924438282976944068073391515948458464076742896541131821251461445409743934153849255668349467920389109619146264632053062070902526081489557099877354401108882495648322635271494891531053234531084973066793565642580839322549387169428511523160255290032052470433665124760766600806142421882066884162600560130137028421063577098998592977470903059758579200794153940570342079010403735814826854544506412090289855754057754700915892610539208128652589416969753971499968557197984281676674354626565915546857974314343412066405683924279747193474821164618167834577356321765559662809751253573154619971980850373739350195055291211063535552090859408788934403876146085811659568207496486767091569962033334152147704861691334679086400676780032392765241105437689044054442006692422700727703494120316050950976976335541668504992164842495179090026150620776526967963979301796502092643536476342709161533482761603459629910463405290516706988137405943326646779184714756593612990204157162836033763985672163369249321943797661612500622409610461735555037372715323202936576580626560604535004328150310086528722188710077938042616787634876278559604378471018622681558725044334294292752814861232723991355065929534985926004693281215653498112011123262266931444563781267682392319518621245318984446116951480524565109453286955882681090650595539228126046936868618144363400821892266682854607156685847209418681356756968218351002643281699640886786817734967939679787759034861726041102283746188123828255512175219130794067889775927050978842137825834916640204071392882498446770219974342106900664006689246436855854119330682618832565034054016060171026828352288685614553726996887210911025000963081007444543689164910361245794178347353953450765919816546506847049906152439324086889404212461534831678527150256006833376116537803939345792426457853446889387203174366775424679947718121613602960604479670272955193094955024646370062585772937776249353759151108818292942850711032906277315468625837366677363043261896774473935058260477923340856909076997199601035404032446104612219537221756913683625063029490064497934091014466880185956662944124593830051811761446779418758754345974440961155428694132789746527496993228729967090739610232639622143789872417856536376155152781828029972326703345766204454462363402759002328037307522797379939453615811564641650067156312909271549630456872037644763229535340352129333437633300601890065487198788617757711166088934538702007728014847581569607875932404178321230823096872181709897109717102145270679964829418085179268241845091972559056715767019648017473726016237530505463203526446976583788547341945885293403645637765544676023290966872207713255725583071097544232926972911212325917661306402767973824648211510165059766663231382184661557825078051912956297553917239651331721847692147849944113633015557016768146253759762960005492197146368776858678982491071545868749406933643830856256691005117764116187612105011280756202343816797324049854365462315126305463309260495417484059884703874023040091747199165377205325917522250529983835765382646534096505162241955796995459811373377655408135437541061776172693753515053902780917763543625040376828090050341205561172569942443381818951793194577087842710809291050790228653581253559950370232470239243053619511308770332573482829843740772517708700101346631208188593412651002907703670707225631621702324258130617144927184460722362400947166335442526185525973649763373553643106827896037669351245852745415215006926763970094567270525581564218518844117442820775746012736158290393460898777942352497326788586386872713718600844186131274196109059170930081675899377765945359582097896181373222739424940623264901068593821634401299201317780335928315079246048655142061764446188630142785483519238710822757675569729485963962120218159593686343834638433956531625742343176553573053809080951545312143733231667016773517449496843353899646309739380968010235536326893710655921361517872383289408672199836853763762906294054324157164875825472091154275179765445604153905330639608671174036295868327899714131300259592676013678614731671296207883062270814136555314131458497437870910926980114039936124577085396014532576464008518856960754874945969233348759292029803281533202939705558012729942056780382584785799133465539682716029996143466166776083100870726394261806856344124649527384710674838560815915889577932302791412651467913971194222815310736442336454534303908005501282309267429823245794397445322428155021214972792369146762728509435055003370905764840169133311977890342053324558637070345071904012783340276449812237988907160009836732205951444916063848408207225189931476436895104610977834749799400851141036982119267854003779750302176484587496785129113070862740614091963332015256668782018074171842695506960326929183463490114718076107275759765665732082685317612033209933728987420425323116209975537363627224585213045322590692226085823499565895415698669505277211045170702661368707690448587931434784448149697748770950425258774349943228631858384706244490804471375814050727462228213048807297368714369642925656832208722299024123953142700530453659639200902833923048120937366761563717879294503775483000865607243171086588133379472317191864758583756811270148117607001199838625345445132014238567028839722233245152600263855878554497253054112386396476318178293846474061107039066769657704402121310928459496250232793662163549336962064794290212099236958508963457070507832530626239119482698537679028094531819601130894488494064044721166548646985041242632982916004335713593782588701365320998021873792420898136542017814068012345766011163822148064092703525186655277314714933368680860356560483866153321460982378351398251248955271373648862798907984008427761342369913905349468780054239981196121330182589480737298382741377784070695176181248668849594953700453504224792802334418183030202966076499363574893841500201378691688923269536480553584025257162916552269502597357732553483239353745828635973010553454884579000389876272147129060655820801951025747418823261071827908391249191674020614895349948582376762140451982480949338930152628992662517921885354037778169256669801511896590630346744989097724619768600465549033263358818463824279501949652826708612856288086106502676812063933860807103813476761693888562291549790493327986074876886027647424628370733767706289123892584348672420570582392343487727843907156533918842843899025365405530299690795098770785290807881660509944253293214169152830598156483985704392916796259297445892671880340962672009676324621685530172042294228948501322068004955340671641366997418712405133098087450273863862400483431198814592464081852251953157041952253437738871513218434562043766236194159921827533928755066050441635308260849981726335683818353076517708896258688957238711225312695716726273155136008000647955121087229363239036864975804550496316902490293701819388687481166302922208139310933261502624587832225599312349217632465031437334185822476231817631163896264398144176190950539672902953980849876208221389240617475711237920631313694120152818070249505830914989327873897300900106687413534859617208470067930954527915737195249920135463300012308301885263959210968107245254436649733229759903432744374896937439004357542214434293488196123632767313916456873131473267147039987230597618319303168283361541710576193471866788331389054465664006734406096816068285524713126700755442881199478237686313472515386794611808677232852897112391337051585565632756629222000904079830774211300104489955646365635499583973865562237018183532596545695097506182745398898271896141518006031395941853124666393504752335448851623412949090851522566879752791431762832673848394335312374435392343841799299505384753154454363434545497080364947035836184430349657858234965916602146172909744210861441613392945496242580098704301590044165086422495480733932738050513505557973820094432176676784800382537272096747964780845790648397252866766205782921376730185800867132768672530822770648208585456095498869245991184230073436335591807756852053424273837949048332829832216255961574897220017861987282711916572603163604228636545722794578812891150593098424155768689649400803069160563329104946854914603361978480442585110157937496172649677977272698049193173358957351232528309337435971184076382011133941458697936353600260665522391908821202193725355196321490347660961695437689499205529621681423672244145576951700125190067995143315069274091908157416987276233727867535345319389435180586206653525578187758816240606643022964287829128231117915861545594573817922966227659819352198883528384380448633625498591817768008936311104624661632323233179737200410414064247748883892978305754211485751722741498366076168782926870171451946378594205869084319831545337228701834298086525692716450221863281563097157678327171143934037437028194863379920778650076308283737152464959687549786141798260461543167913415257416781592022425561848616480696998445033132419051593543517907604222282118697221064695156672006567791816496817524015403530238932931232321877633200604002236534737606094376675725947199021067199724915964389834185627357060889864115512595548386441865685116343262118442299581228762988134836897494936822312295335977548969611495946463751558478581240877251974977710717931313855521449543731298736490199947415730843965503745712735484692604294661645287824840379025481551647973303165035861345832707721380391383865420867911564778301320081463385854119661628919939363130258745439704352774545711434440024988721421301488509461924154757713416886549745542348956586224218382439615834502401797742859544510902696880422120306498381572197829910688231373886610611418209074855124850292276369415144625015998780862594695200104280931325869184208715972633142025285382612761542643686068827235174051714167657860303308941736197299125582939293414423848161099617014632302704605090764284779194005343967819149438968642885473267587048640370936649235959233005874025154286302676166211734268297721325315277434513629074660806522373042323606744921211289049584895072509933290207932295527590258327715226025414425464333151281816936928330035218647300611292078986034753016182088916204050526604639746663095855376857972323666880525249198442981004846174801770666407177446334642985918360680118578021583966939271145165285858790444303901696273410200539034365411983355332763372430241255708718207461796276136334021151812461300845717143768409716143631259045401150708215327902929166265883128496367104424131116422006231865215890905065599653815895961844038476181923634233777113378720363610768408684657189147809923740155955068738589636044251355792925628789486313619542954973509146583698345161906733357780813061440727029212436612304758012930504855008174997652911472950205186851250573969480243567067720826553233695626707750033565211465638789034137122441280037310494255658558080048835243670931705407358566051373739964353712937185186601930047178995684363326105648563926798962374377178652985664844914360560162240061239606229381442788069766194108525965712579626841877335331425852858846993933828262204781671383626303019249591101998413180088943676114469362693021860458411607445925257955493164646640420727054979597278129357478112262756438008951215101497495716438716678356342967946464247130459668457708555045278605197679969003344505800470801040814517819853840168002688634599524610038163113185382263652237155586161800617132176246065450687076389825603957465821509394236925533568698041739469893071661908276242188673038329179169190877996710346262152087489010558929529604408592882521947864789940184365133495764798731177162723247116595701917644284347454731653648355609525558011267130851755946813060304267837439701038169462135037460024702973423613129514680475032872629233779436807149171139953417297081990000351341818509956501011144958582299935339919430890808517883937519354330175896963982780468259598524643768087186462979519856518894815952518233672378732454298981804627585486940207798161393238780618144947797261664003571827016053943638874993101854645497916392339912247975574394626528301360741771252717252031301206180820225490776631326421893023362844670391422578376333641479967521893005486636729921767303489724499234770660183167299173596098595345634398961426717716518215557638244641925973064371923844609812707089922345305911916960492799906749779520893227395169914487670205128291433682838414045325544525049016575275701169431408839877499722455366872635987916887742033476164520773130827747451743490480094170398779996797698790966496692417056068990393030278852679463467430705810236836318471489400011180972929074078083124685773149416910166607158050292947051267267083463904335865422188305878023777686886384111516445325863734178292080860230884125459440631038351615393501311930118632604873212750341822894615325639855990603536130800534224250685716560713512150342329706316225423425400377595611119839118054278558664026442489541278127635168580778126962001443165635465339458457244257967361583483802402724614564967717501221257708411660487662883660467712917942142603177982442362859544550073539003012148515884585019385929105672221338333355612067650608363913604368543979078539032517971097989710404938307690960178247434785909632452926367073260922438912466925815663586509947532050315899833004113564987309768111397797053215414918980936962621213021057859788883076653377255479402016652852500628074093027916342178721909026807503330171124041397611462844036392248556715879144445990322274502713858337366445905771171900359656422528963499279172055067372223411709990540058847391404633302547502061524774277951445744380558139896901567442849213115517444020484602840008058166643005779432325075515920874368081838597923702469529361300366279481120372706180213852571638390656045486334885485484622520325431403677850532754898060313495213268131654958528570010304233428463219249177352629665859456432821331895116062121106331406093800859582907134562442637198576768171750338886163704534248203368015272416674181666201831636052327809944823803634045023441414903495209020924029970842378806207452976351838094214604686461048209822008908712690242448043419495221591358236149972774982767493788529566316538980550207613379258602838441932027827403725909066559630249661945167519337960505887386788753297036923749140975602639950524502916826694931147382575775644269696008972147980036628523216520237103636898620311011454041848559156513923310206655971919416733379011626498701507525261009425704764933536945249064012668104641472847759006722184183222710038652375349823407164443501849452708444521003495817990797851757137666313019765477493431192977868673498985108569576700783692652190644396700505194602642231118195172496425566002201781052272403001641996034028565094266440270960816445413929208706151538704329068999027656532675952672323095386162048099691048950010349135576074103903732432928044364190821739013627080631801367862474377062847124851477654470466871367674847175347158321573440319578052586459354396165463650403536324814188016470841652740479043859224046501315169534958249308625043758138095544518206331180117865157622079844212718943531821390787514190728428238267905043793575237118809765623963002989707036677665619630639681322124242203718598599340697243779245484751530607125459366333936482440023172948566411746898330758394190877392640423081785513581019093266795777692572455909092858681346030552265224899057780251174663400973811405304169683634311177692154109640624377339973093531864229872001389210676810192957460938312510659177887673851121153163049645610216334743058522352762812974859591939059787172010942333038999373559235335991777270163254615650509499397772400519753956318499054510468554602292449028996003177740742403402361716254038715593609350497652021835729328357930358519872876693813690610432078266823836758051624676568083669805866245887852081848714174018454206569201147457101497198525285988278170177750842451961920832056988753548814646420216388600305581549151299970570197941160067171361395887499847237762248938327794318006784475159349742031251755949650867600024387979156524157868535517495883695458883109629843372699041949977907388820639465485056136844621320882471968769538492966808951693341895105585691005867100403168751629012266287913012442559231235890499723484758031729667417415628204247213621628190673252212423954030349445639215384777122756951902726324933929962389895229940929372848939272169970963317362265986290176432047746981495073326490448779630939986312959867825742179375498285769969242655579153480135917842476543747983747818185868425305913218376601775128308346655093628422127106964682785433637296779607865439761675856946763903093071825921519475230856287509684009061398512406701908890207839595791013141929630252921318984719416272243022641130031801608103106716759206808853708867681375793609374342492745741759648520177311907615178324519163870195198938231964396692439647621359449816517995985162722990908213280899690705264445183846119246924791609556129274219834287021826392778132849979262340692543282078712600272615053154785552064602043279982235155564093718087619847619745072428043970185743682173739130930153982372888298804118550019828498552507577247967629361701133675695297575229501068677136327276256715765533464940069772121693261750773150092903407946098726901669475180324609822375695402565388600304350753884091241048422923383469399588757632953864928343821446960034366747872837713282250104201586634109691670378979093961855707491246024053990881100686196005320138651239560929938544516844036486700084391944402467170510840037551918880299046807370462207112144178878294347442785456123473488535050395544749097223646179546235894468896012165676502058909713843696564781001027953513976131535913213753869931650919148368141977004661077240921066553509005209045459221150057357008114743941740584954788924477748513891253853018003826635662245752288980998940590173886066122025047821606381363180170265122960614346582688018633248615839148290736597660152933749021577857283818228388637205333908365540620352039562429907166122092624507282422927099213153918921999109373212145548491847466716747960313858615323152846789740327142796674675074479992559095256487907412767748923755271262859332008873581607706206839959771492526529163475473802418977701939722552234613139217452700450146772654592284147231675127609395583368567365111065805047748222262228835708275772116170042335095214832727007724540088676061582819128826129180386620033419993425381953575748244779392818740601816665696784511791165609992658429210914874206337381742267639229600372738065769879503413392380860549961294038550478904391117312020279350291419434339302383043015410395878172654651411688297508887996342681803829445170266521232835864229953976480949611715471209264183554586643454534243346823715175601053189621708849959935819823917620538590932465877616729220696012790329662855840956206938419997802509781156791212071918928046250146049253636797041152750006058059357551697868138676997469473335074603673368764104447242201167108860188065376010298750063889235447265055298768491644204042273050073177836663445170394908477130841893766510582137563711574645773166038217041027679015283161002904897883508122640368988041411912062471471358112344263946765149051897686577672455009551526576634092066948138867439863589711355150727317004337519698419099084545142876571594418953100415020232279768259532482951156694818452646431405719544952240679395713495920210505330668930556657294659825573496920364266661971706196548433470452990267864258834469952250762085915608800214446455821421721504607895410970807393176457706766677399652346570633789404483802172998621074138977498607538805520859318064600973594193074400022294217468226397957542166602142437381833794445811530280305017161289682836180030475932007361234943861450373064313647109933264295314535808728886466664153504498549801480830334186792482929042546074454725879468298141873358386430071167835697333586751981180953927789358161463409770705415300748221688324455796582847404158870007573035634151462782982858234521826536350751036557929378634784033056533463693636957500308738150860576750870372242184277557924520627276670243258656170782643919477211340915102565899626338841779111778257428747349469566340663743525304494485644664401276767333716886020762420814944162898201629663686639084426015720274545635503214382138968130163171768122858748325777411623904331410558172089046563994236328696758061204270750833164637417843261688547021805271222379606627910308243331885323314804035697511467752376878748114199093328653207714414555270640955515657790721758439722190028343078477602479477066266366282303647796694968053238103764304221465632151809973185500023865967379547503353350112600455066140075131262268206354956323328033511457849926075190695905534641099393003938085825009191002056874785701879261926617753564924087280025217967455958416842242419960221501360769508541725293123625218393789045271180150885175115567341951995835799878660575067081637488335366635267895346516627294327314898805219900867752897515441622937345519390080074008734152607468447451237664263838643751770480417287472097718956758065379669041999752239722067453732518512989968126652776863703022459638722544849210294667632792716694039292889768786852178746850927253659495817835477875673354068291602030959024702806469598291181958856748473653517186811105202242902429110040649646395544202701592708730996379740096096076131576557130528689519409840374022739972328102621692371244762588868761138805345913593323930590304995974515535845153749429970185933547111929732353038637851820202308346013353964322715803579525077937366867977942396610949344426392674699483904363788685797276769414519271545880180818524480954069587382248033857320383687632243214803445387227641774746643047567991390361972579005294112080517263142550808422657297881140324290447124386865414988283940791686679690035221287625947544599563977293256800722934171771068247884839581898748207140623513554970062484311911167778840926009605294056955057239106185198123563444899282151755009750400142261471098737627970285406381596227582738270769018694109473904325575004791303632203202715659546908544908751861251051668884506354134771516159078585248592294748582204146119029571466201944606973070453501344596347566645695344571113431066257400562660298321406006297493117760883727707297437967785569524630197730398604861013846783359274350777111911531224753280142789962862142143533363036520409028571251712239566115534548882777852735659040853879655435571770869973905513059001159839832661986243964075949291467517804005740277213920311945304700664450933446131182659477499440496053890372519907478026319950742658105025586388690315789927323308220128777793365799506929836155718901538044661531384580471524189176952914033655724871736803614678380657341081074904608451391639998404660169206696687302290366067957889578422143055365056426144766016641606793829705290560388983484734425728268129146148308760444298361423632481953867888655489203208338550350660830927718705746604891553689421897181626647737655148249271691176462269805879837348898000490182830760010952849862250334706191686148078409164416690853058897523548583296153590350699730795587171270340746656669311288349681332785365974059727870452631322075819492633708959710512804855837731520970131314192899187681575282380802124285597259180087473625150300916414726808679862809477785157051332354768217419657792397055087979058654684641165458617489131444892653908768536247398645238760276692144001180779088624998178953982662357944948246310019219602313884759208691216824577518409308662613185221222154048143421840360042374296895523774485748842016382913783477611884359447236320301980188605894843101553036944618073024633101929893949586936106402934173440928644071627863714644473239636732520586440510938886316637538282974747319709241608017275403013507027591197914566115270758329221594549603733042355817672613558863608211280946599556845689957893054712112216981283157597705464268297191470495943948939218007601689554448904595062148626509118003620346473444613955386341758671114879574719884476560152886578786790884196086449869473021624709242713377518960483913643414484381293744470432997604976146828941847572409810739315529691355706690017862397374141484478749089667957195682054138369508149756650205829915306729845384130219444069946160595102950863288096908356341283114383185059944604155780448838019838780357307529296661269912397416921888171257719273237828679062495405520338367507416960660370144481674774253561475822983802865394693420825006668323877039922811994082926978287278857908398178237064311324367089450430610003951563646490794526696413866379217442366874030955483466949590464277006682943122274470873788732499255390796133926762249136078321452366746724716392348371988999679824573605754061380353821118757922863051932277573069857398381309335719251426152680255375968104174415969883855264812693044156066898226556796550437209944492998354712331881406755804376288047622447521338692792902719889941270935607103254800904627482852561310365801307190510404278400230945030777710793322816963388689163691013978286425042410970527531151727337132178416563413512691892113268459019046826633938834110542979887425909959962795904541430364790498894197494731996679823671594147057960004183058638013327250176822301881922450800459589998843539762926330502809557376975300107961794914271130227658020379636669603826339930749181200370794395291466379558043581294996278850926944215249088066306490969777063884380253431736006102188241531530284321501600997803347541994087496811634809841104589744214867699831366860492318971202592003743981935271125860813142273282498042422143435187153617551740436179202583936119043097129160858423940724041770041061952383720261292315944651125169416287237072377204304818124897047425049004049333449245803802017393578542240617890300333255285239201344070156895332830472357539106041282926034567453173766061434107643844374782288377992906675371649515224437519458579519342515088477010301444202932988768213854224463034607299910539331341829150446497638486157550912278442579285124050882563097045278156774922740173888621768479773326902313964343117652069714628084204770034112551134273855865671181040788326374773578907060788214132217146692412725565607306614377296562462394801135163790621030651883915717681858957433909724516084498937454893722925916792407102161416601490183554717495664984272084906488997062568977986841740490275306632942042336840853173838356878051475968374401652402445011313092047479595713057646613937936109785694330680296676799088206045600393650865027056519595767652188631347397499011767151219467118025214187618721483404440747058067507613153209384091102139477179756752570545617214770346511626248605560633137692186985529855099886402802280517248375710174933834792365423343299012607656061341456647746332854919271951047955315043488951640560536088395955342523884168950371136666182374230041697149153117006853186966578226821915073435679628581155085337004190777939256590937798958064731526524965113108449515443696513114933781852383825974969199923433521224438596843836465025956662849608502824274341695176375258500927099949093702709493558377643829374917596376983306121645797837882303097617742962406615754826350822949454646184294629235896000454788798948494602287281558083510249198108590599484316867182106513055287259039225384074334339810613150612663639250645265799617624145845744929691736600078958036696054585480136264828440325121247039757592974566641144638986845854316276409141342986794132214177671135511165844762663126456330680114996593106197538106639042929682706115912186326334043166934440311697497895268960331765027158926717238351580772654836347046452678823430824314240375860416163136117926617832310775443639305587877301520542293959906949387160276268860169865058633265354233131386506969141571125720991556961111362508256149547689681555036320250864078834017314471464383194264325347138540567764038827380962945486829906206341429818369472872173337845819501623398374163469994491120476770252119006015516565853356898976526593731597467139784882171418550880406925526794624940395701816869633022334651708394254558794311627084110775830053395788738129688347602740334318340702143046484597783329265266825907885283394290552428546682343406773792990240799666722207768584758354564461457113677844383737206947913802430469302008706561591951816045869190518044104906960803941699861903745356961565904585225795281945500941939481813159841553589115338347398785533498875684365002084560031183758458303902000829339166560368615516794282890830944282276855418949081176165438238125122517659904578298757080095486151873883389802229713045226677620538415805565864849997422675494362084786444079150224819744338223368454717624797596823780834218674522886535335265227281384846717862874519563306658222205684071293396689704642585035923484461599540251516656157416699119656703922131783196589047946354136008246555228918056967710663585509571006577905048260421616306450470753364075644253207145746248615061302134494931793147631374055499184677427042273885339547646510258307201564722523109538147917885976799932230662252119598386653837375848139250352594880041340503154955819374204972260896064781129637478900591892207924566199325350863099712185136245237725659864790816864918163930813113753776132442537856489565641351305143495134221749419298008580430574092997409788131626250377194556713368897442571973818730889107226501715543504314035350815568157554684427673312867191386465361771468510989002679753554594675925375688932371300428687708323457331810571155936474311013306754933566193013158606561900256572848478261357627366400883259465897468621453190554907605906391069282904041560145710729633074192492630296040095184138948075103961691660889591668815344536861477531464883520401224445604879122433066191956033213598107434217336490503127478340767799684875233874392609025518627326387075679304267053229571083016747256860863372758231784454522463051208284587408720057335067116380443187784300356340012646364054337848093541468870865128837814301652422745197728680634308684990609268597053323867191003106591958839061093929889251047335096765982662351650150444501367601680261909518147101934425348351270855843074386104029474119572856954357835330779742030273674918675305455730617368436693246583784780621918511302582019860212272182882490039491108437231783853666747272105847567098490787344501309653168559737843429175421453689212059310683864251112154087638813923207726978011677037753361014271437507441531511392275434276131616072306337656523840316804075226564992984371650330667675930313979706921139933068700852912215838707437303843756620954445584631564754947985610524508121788426976489238579047022129118226938355687940619682026899513419328522128063882951137313694369298079168129918841942678831178732826129856096890706885828665042494841107019726945258733896922134643246314680509622422059420107072413959714618988252414803231514247506357712847390417364490949606789087955166940598892370338919221761669922919039245127567406031974082670777920992495963000308629690097268483969262192145265016050881528606992001282334459089422449784429501747325902748133822686353853753097840437013109122740131549124235480182946266003568822735803417779216943448111474175226545608798818754823974714340597490712095695926309115247102207768653956871713896351744054313558813334094253206661004275596861084073018511991810317986981742052959524564252980733177027467303775642152545005255055944183629295159968253047161175808740002740982926734456711230886701746070527255100691811866318501481624547359287471768331261698653909317723016063862843454435695559449528049114101871619890182843727243244243081854561134594446855703320208221195668931230021463066207288524649498630787620385991798154223367173684430112855761036929488640957375311832884233406068401087854912923264351059988435622915729357889506651249859989888940801816032025004738655574203614514245995128276314923173119835699674364477059785212555623547203266672825605973139801010577853943480970521365622376347045602074431631032915963963622619944478171697841659993995144120650831425235565831951462324297515477367915327017874883258329015230736433265955111096833387304872944261872692506915700248641288781133898566533858063216208529974019913558953382794617513437547580430722151993371484676516406461163300389347423659780642989158282793805540265342692659925488915864589854387261998897950354144309722593123461318586300258758191046132814878349502695476420702478531798154882790046566315544772389484795523483278113446995928745743196539046626130329506794845108030101689246044809686180671916577954538540644666124586126326188749263895327010359325191744151734215650274575014027092367626042245017899397891915069549181510292230188732438429714825783242261045931311376527716483924619800661740780319249231904685739217758358480497342569916015446474959400930137928652916509957503659822873680549556716048478756345774279310554597090283790433277722307663221674371790757601803344277297301833593841414647837712587445378663335566442620555299294324983102526540367174739084297868554482419106386575826294880573965161138003395753435458694853116600868947047497010374538788166680742126749374665011583713117521895454889804177854295078654926988114701469985489773698802266508432113720067509609352783643945405372127899857721185530812610966651635524088871000034324059464757980378254417540238415431718090058018342576181508214444378305608571874329448204347529482816781539397571265064203946728191672384562609780550878074252871338441521571908449995605279740519120451613601433518918172392306854690649611237119513705802495114450343933947986377971221554131517025264541939704587571091883277351900213892802149607195699067990617418105217796507427589774865995641678996193969334043444156370943461599236623434130354285104815176177675023363207785045604608069399775942500408332091292384874160119315552713895031897408804213213555354115331506186837602963504214476701668874984504529460094003312276740502527558684787429653355558570210021241782544120171849837588945187452227605880527437604648656121558352651717234216029186662434375343235756052984174682440073915598943019452638889369701689668601486460931456963583427740825552684211529979920053813807125479891236497157979977670570739831650874570303832921409853328369280677576542198921301849005583658805075804294787907051666222684462121318511519803948181940132779389364784240366435073920902033302611843094752920097065290965106997557929750395455719599974338741114853091452188968877720454261626201610845548604774177001466566075130724109821655110661003493186533560049549873030491149200645333647325102960894550410206873553479040039112558613309966817298982668941892562834649414552269253276948178987126681591308631560098216381596076285905659445197657587328689522279863223984085944405882934633336764243311713085585033725416004706239373391164508637934386582260346262402810540032627526804136751921772554229447969747665298753422296661071160755180667958895990186451017295049262644349564066432603794829355675879703060915792785821285208290559321955830466094318386831364174935081406819425853384713515875572785999356541623728278662629347860251846007093330627488442602976435255601025508168849982885244708019873674078058231004676773811874674797681550155005177577859606202669372402730934194526061167106327387430193969639492287029819084091218666691656580079960770233792721375703814808916802286141174282284457548849647613324338624072171083544892180598452605371262548692377786391357047813259270881275612179800291539287727001715264659828552423946095504006546589516483207059836484352439568304576077029490338173277809248617581602021240192523420817011117112140971621935021315168329397233358499878368596017823148310074473510961032014074046927930146515941448294803792067806962902499847633633205289496277660391544397456443204087843778988243640332183583880661162443076259121609197180479013501922529480027605906003152072483042321635087362511742881967332862206594080119100901773309063487604923422357617495194207857496023731590724264917774263527900446982843427077327508560544694810055804503200314655514319514813412792636357052881140336235560759788677611147430468657188085955370358035241980813509341846243273835053160526872866753087177098625331559600046654946675587034527333747594453804450991616392918984547936798808485128595201591857937716880361433733455454463404379915464444090643502848084619710957814866214672214165633783802683289174017204305443598693537563533170655803062532491775954916503890601620091577062976463162436461526050350671491342140888580380494097918187761540711404629620633939884126319711759216344305594882799104857362065560074140345401071195284180537302305122354092358095461359632352608826186874871132194731886209425722861709262035803087570049207295964865939594992554929800045534883861445831077220061428830713744958472656595738384429817243101034928900788406632184536097599218933587796102952379280751989086002118293220172101964358625291461328300792249638911781750038922700179497639668491722825794108117374465959805318141272614238308849690848197498129406221330368005813211750038477145184701311538705617988211035067121456063303951210469018432908644332598725865687125495092723000427725901527535213594217096809881809270463144842879745523145412408833995399189816179967307449522976655489421946994038012268124473372068425001826068121837882804803625751494724510349167072083222877596170073423968706772936422787408695471178764646986735331771212217117737589850484079963640879948709845700669442736462268931425246905822910299521023557522661949170310494785325162455664710582770121349439145654630106937979380286381120749874891667166395796503389628434170312701112496134436467508875927832868255265223114317495640297830328038376800586638517875917379953015782735532215343045162587377178889913096266254865727482312592270767132236122735857168254244746848269124645513708297456561680152298607816174745828450772185257672611358865486074039308765148964692999958109896784113192422270299398399970799577144967309088327912122443192865231193639603608630304498516403550205228801996622891842050396186955824434228291502563821560004836952036427521841600488557998276658148590474695369341693423992894205790531517763203255638545113113829479195838647116333820829184668661532675529051670207657324657902611316681108948677585911237734954457318150890501290406911724107362652263931944644248373538343531369191432466469875717641799731021390142286671924362792761118507947914564719003003138630743690094120594867629234934728109704903765020234784376744622479362780397677395563013491288575785534809149671163152546528811048609448335867890994035606103535866972841727078062417549406441861316210680373265181075275333925027143102739060364421129920219689709496893917459708090271315017788914080298154978636216517237925667166576515895364935358658821783152778271820127592670590954271998488087567019639087206169959629018710574798756315533177673156978257767469494845156808906212671323573253304889920573802589558942045087066714260309943982540414951222226137129156296251293974192494105078083661821943138490435631351866544441685265282321424122209043301850303214188758607976844954437894543526735499781657959748183239406297230560664177812679459297388342741186584198639536487086942339581099810888475918119665495975436514488149323517992635762527832566964693376008294737668252123339875184967317190363377704758359614551574779454796463526863682407492779855750987943100987490629162300363206858515472266597419784917427068373268106343316984949775127819896196783818208985400076781801246411587433303774012592081233963676785011294366804242800976312971929276068372726990471853763135168554867606260315588996723235017162353448734023640413082393699680294213433505223523649341022938049768137480887358273468772643091208332478333110210960849971981614413068697601097952646801295609140405175497086741225793343070966344438010204375823295486515997992381735642183684958529398436112127526594270508590175028139659897712125917661880908547167563123190557972817468249713435023003882120839537857839966130277673218342107742428839071878286372042039136109044075731060312608864334289159446367910177350485827694514429294083995823902992971353757016226474531394433339159038416101153988264428044966197877064884603279942565019576196650532540120629607639953024537859759086901424713597497040756884765922092974077934028827950594213922743725088658411176730475631390262014537307005492809984539134967021494675791515664433372291506007269559579119847205145422419882972257098094904001489305333596393305881020799136266198523679240107395103680579017922676302299430573469316405851276858079508644265515923781878134034459793764718937153016211237987046601572018748734729174912683664701941579634461493007872602930472495164118058248471138200203763403644220858902782389082652231578950753283198870342896070622756827733986693927393975019413034450240109425352168666885047834024932693924555548004331831514925237343178136552456310568562607521937411786669064895623014155313845684861474759484994509834564337516237927953031439835574474228966740292994731483892910429944325955904163551591198549935685616809377622539530842539967662950987860193654037993734708298164672685480862305105718935585888086286891641326704717920835626701676049444041504854001092072168477654515158511973517916336305655199774780866301796508014757879418701848801342732816105781721422807679822801886631156067218655069553784647185978477756908433167885470388603107557720889003518424036008038478233943484591968639118770333036488923231753290718718289892413408135589752826970428551539968356393055423620922936532519220395131523132642975896299107744854490980523175543892958446166956197494614195863475137469093125589580631597231467568186151886014987783706453644070720953206960025148258183287045753755646448986838211698503606542838002931415283860585014453828357078517667156293156677407769392248777566812020454060235819970982033512169855791976622487463306633252741214576027885547956071950756253040304149070481224327605149052451146015961518049808562410432019389776089526672202386331987986177017887075785220369506255083027504226454188887304939386665434819386737065774908918710404450328972391085472948289414114523752965761781583291808267007642615307877992234868761149329238448918872516151693951073972212378570906542500374679478477840726455253094523158296446778133025459315477869695356271098238708607815348664571295346483897168090120577806979731091295391137722374993765174832425415935832764820208151700588351805918746535521602886402349295919416958714836042241391058354613544116173686450289090990830649900352419517917878506911395008787595911347171165408083256599808273851665427508019729123373225680027410133151695526062705926096354386506196994574363558769677834408430066948482395205384767207669680514774280173827446200938675825679743713139039315772910783159839992056754381057671406782575546563649430282379505151692733961640249032110224308713576289383525748174271398473165804439901985516682387429053665120296477734684312676917958376907418224007347442378522201117136360230687939652031319677251548229141341367029558674705065163384865522545852468302781079496633223538827397902876109638120494551807726624867046997188849614364876634421721890221243280163517450443607949572970596898433791309374412332133652360352618566874146485093030255933268265776608047477938565147164131215987286604523414406112199396940717908674740246246673177892807069925706230583392319196523928874356574643349619909035616967807132529610202556911241056096382506755251110548544937574976167645843650232753175243702684022977113675374070534928922656203377759858402605998736927171572483398721767964611254686648786858628010366962740190341714487428613540425295590454535940712419917740127908610977334523413390568193613533072918076080180596182413286724583099628142942713792522800774343204982307722638236972583141010011102432779343408441201772317854559536880681384470362349957021260144786285679385784522847940387217693367893825127607157953179057865335304023791594792484416379102163190165591135394403300009088803679729635439125836908356022516240607554969941033186317368160803745846629507419495820294037254579063955298874530704469628634693580596268826228944928452909214491637536471023474556144878371542181610835169501594353967532175863231546101545316001740892088394775070571980660866739563101210678657460119043666122384638939998569897094683254707016454445366598100189121660191561676673601565213431974087986473734690419119793902022706036966299216352647852649608260782159552235338210769228212438038524778115619306485937779351343942195654288554067431949818817530294723843548192189267595531631156595628191112130919112966021195144750769508965307919800207655602384589411694697212854875436129832962123987586669167666063594347483031957272087177980181071387294139512719087158528091706223169619433490944136024094330741969633656356521801411941464097210262669484510331819677019718926299412512989192854526207646511629780254520748491867605525675958526301592720611818770246446435539001521294369351047661289698802886776142672933207521347865062458500282920908710624702567657700027026939563338756072170424207299605713346508653938473164053733180635017670589598675265407727252692072547502718631835046866389657033161825389714111555764403877732731244424732481436482876021849438668895587583626289674246611514238874410768763459014491783425712907452529360351811965780650803380429839947073981236446248069159338913070036932540055924055393459391682922135490508118591371111805498109753841488204989622807244679788191210832032760483952379078700241742502108057237609340552669301082470626621034906246205987108931131974571370258219125642270984596318813074281147332867386791154058430005051277177994194372830677855131612069899721308411211297092741975819082941797190441361805276918668818637668602306356669265650490415263378135368058280283807799054639853853240678780054600223317052411980537633059370396806092354776356780846317002164634912326044514770583697686057554417901956265239398322755000792293032362985801713757874350075975252054386705031415771703987774052208548198126565041218264361699132253066781279824272787119938721847343806261379212340228626279005024327894914331086804811084533918911814102676484092059349687706926880502705291694052417261498580894965304772536394125513935099707384947786667067356602662164041490977606314770734678493904577161157528733829271887461325676666766063613560155954491339700939009292703579001188245991547870835455926451053678490002616502202449646896543766209223299670413106304378371438674420109316939672414322451082210659593993969418475662411218945815408294197246392747023383281886615196053548351626418247998697311681772861798236163852450101747192794168577934505438691926236319859678732056005873862889247843588579323856632034956810910892927390579834968052516818523074475716785856063044117081214477733185254020252180617144505189335113786108680847296110538362698336523557738478500318678162543236480212599298291163743709376948332422693653677103149805364445164208186620116875931179018301845468090318617485122178664716092907297504366811092296047306144019831492886038561782270301392133588133266678007855847903544707796140467987283362751613926689426037463557878340119926521536949683072261538956938822266273151787187896091114716843618118760996762479898848846398288991639002017318241117601835427123533178165517116360586005447128227123934509560537483988645244544538100028190531901953613657939926856972062574266655426550206347554640984815839010305342846791852081985361829528016915415794766602672762174579647021197876604150923349576422457314429564338616765617772838287829131629309648095138773280573509314822593176705278511136955175614136785696024802648725920989608224851994967220482994108897680099275939621315604624030825675189627319804701152831939460975933647651316176459734666430266053579117813765981672071650468584482640998652776289359270814301039558163959299290231627747012007766766310932802180042693824765679862902219948293709379297837922725944264902638598774248810794314916191707659876882230847853850665339840545982458200055449182670918971395073837178545492102430148386334683942719554581234150938532085031944576505099941816563781050070598569620372624600907079932116021896279862823795339876116050367171721711631317710996178104966748009201439887323914675196019531849848766003721843602390658641508713431320765112391851016562550363964714319937880532439819978814914426729440254592527349885545354948094514266160637183403059176148018900074299940476570957615451585322408049393345501501493253238283826510970240232499469231223545945774187804559010706416686497516774897314387895900173263262465705480802464177228311462363889191070664000829769845971367221965420685388133281066833235764024943259473992371728297302193235743531655540547892769744027145947892079298319436156569246775953703312601432403240612548627325953045628519765335684873260717343275365175405826013469019770886902834981314292836109215809685760374118357271473876000134182199339944303605057932182588273987437621597191992039910124340634677155514669558068000303592120100500358988813022922623830956958153723169028888273818845434536433344482063347336296376834587397589615600177976208763817317430080026207175000464013711507538102905228995284837098861446666732891317362570446868534223190781489875344439351725802740620662589233804262718645080463715819471337883425785784195996102122622742402241165039157413738778724635660365474958985024688336934967779696381390346993577718510181426169561856461613626475042022478043668222546418640538113695581118266353877057143356109178886761905473689594293129084733888090373344254142407924376578904824497068531792723574315512024614398820104747857773536515610434201801960464176795378711826972128373244415632200796415257647554562196213006795310726047585553706514473436708558217090889253546462265789632413906485809957550153749664256239684767508995662525633582098841585982845456861453766940900850216728424081771703104818395726470182590247550064997244286349412516085187089972352630160132167098882320895792326172735752472590715181301388747205040477624792222917363100626189629707467829171235687780482353224603111352239238803143683084851363170025604011106004757274885029612259856868263025949444669392911324635686754482677812957692711999866393803818340363770407766682296056091940494120082497776935457722119477842597520577199812340257564499753036443750691086619418399333381542438188701612305649237413153655088150251531487120158576146658117608210451209015822269714900126330166930453138574798232692211087878830379921868250023889042610007144680418384219971105377722530639435120492052135782423437965468972641852172989441874027238436371899759341360010744275797051560067742578595676020901368355600885610961855257897283823089456588594729957761760898707233184567953416103209839165393930741410669264172700544129263405441643846915185348494297391442317498237961953511040358162827434516793507874968099457409324096919556196277411093796998655163832539794297489160577865901156425353284503422986251970602249105314150543176092054022899965847288904024411807945529695334011875519556584927432432546520246478140419195248292033521373753822602737920111047511765852958001768362338779433802047792121702277494042592516855263392736923529836219830219957167885351267567500522097936166138152420350820998278507470622266802113268343282851459463830565671792091380807405847206678260577071485773551221348067890643979019073948042940662994250476934325407587517763777362960614009753517172222782187895952333001840433434377083029356342386464553579299673940805822167734215360296016811684186776342550487380124638284015389640876966774902941119519084007739120619520784072823704744959882554082101820307273082475793062378880387281636035915545557220932342291513873418107757119465325223631507357136915738425129170587915970048664969303145771449727072520805285702751724069857522003234071406280649599798397704316051637808426286216881475304630217118424965387483681800981101634610847074610032061644307524867559143996951972006622131244447202992131022653889780300663873581643496530718520114357665199244127243864478604440329784199275807325616563311971031766091349179639601220341514455397631393994126133523924565841486876255798549750284502350067735982015362081752861629083448543484674254717795566800766076872202686412712265403229341568019386383343520694894450394754146293247133946013460731047319837160576739608816983462450507433371049970363399153964510460601591428606756275564256942355043909847807549595206592959236821609776262582235972182797570773684343641370966286578287583173668854013866102043926478127477331561218149855629278892128417198636780766478379335579113532362014417194440500789421103131293280952360768564119555028158347210720038235046263596674887388591289813420879307049528000941760828379231452487701041179158220560434212498428427565582980643724705321441154548716335481838274450048853690939877351181650914388817456158491490539092186492027128419652207197758800477751382629548819948229386597568687307734412366484639495739830582662882208407918736064175918650217986342002118081230057569212597877906784224266011978592903560009364909720934702042111523363903174073347185680440979992845589775203877096199248147894731116592990534080079607435944217012159954824847453304930813284289682969511434699877123548936427635837796717078646175263998228241975107920220737797525835157303539265238909829117933592961693257447503434885964321659555782440979464237580641282127750725078636295818592045345213582880976182626097455767489034756399463288136002129960010080110288269919917899140206722519758217725045123710878515968029510857149765671505853373550190623815420447735474347758815815320796979644278408514317928874516939180771612451454864469025349540640004272938925563750949282896384944697078290394476468151894277476379741489497159232229284294563069069431807950184597126858143476586462753553267840157901408553494879483007869450909736272217270250806253586238899583238302339895794566774167822715230102035473449834537405374412707991916178210704352428970041489423798886306936775384914915971367791998613419265801781847168675195437601062392434445425153860718463932821146521049148762138178792138963456838638311506889038911236493159262649493285714927252117709681588348274019513042302228902109069285765385877307649162567110735959373016787038906055513707083542654275352423309534460892122219962294493970619834751826379531858977125218526883196316040310522961732458215464145614012530355802666408900595083857180030528703030534081332316447773297793885566792875905404719329080181872394285810101443677714529785700647138380985160352080366849736375668252249177256642871570664846925813900621088120622543087193523841684983379385897866969075598667124592546956551369778797111022931104640553385943087662262757597403380818417120693099457968875547379292049392890269446645478622113704215455837133230489157735847014182113968460933978920179919471731313716720347645324011167527546265138969575895159772830527585262435928266786355623996551827190674539159782596685115928802675448691966086979448167907217391549815840974156151366543307217675691690905874329137430922894547295235503804334490691900082269193620335213207660402129417594281014240745233111494402023188029691658591017295118430301719305044493166179160406710919202847931435887314916171814194925426779677196891376427061073986938673955081587581036852911519029812494601549944602546797595668214432836281306052182804793569369486472740555473896723036026203344211768557586262613298669126068604225571607225311389858194503349107645314199479753413009147389091477870573981962312150002749331807864514961969455878075636727948163330758472837719579291795873029454819723880551763366433808722177109515640166776857169021279004906509652613086414509689933410924093196169671548719528609359094687066855248286830262147492029175712290425659021187800992605476924495640501307458881281610526824962433551621368648008156850075697367646054339304105319149426971484537171083580684029067592308476534500686927961624124790554499207799157020330558005533414221724980470936955904762789855116646866486355783472462224317165984957172734155139713186249692603832269192542745634691542712115486475472521653314339452827531044967787382405675387525945315073059741649114700633383730320148228731769060691229298433865118593991602617606876899595566570941091449385760124547102036575395249080607269879160097419863165610010261292289946337031627028660218654154336616762525584088234758323861062419563584152136475132067078343365214956374503162733923500986341343482432220658434943989736573326577945849227890054503143861121948580014365346581182103634860630432090951279425434853526364470002830593171988942637176321136197788188608888386871542268123497481738061673370410871572619585147043601678190368608438654899423983213489066840365960007455749162320790878435693536776664658479638811764681948440439732312297617811208516712403478783401614315935206978089226781972541481973227876364910253191854782004127843363116806860621426441211278511046158766109215579915321803156005515642314763046871735231659583259956446077850531731643582778005865784024522288815490702898715762038898070193349485521019074348742284267293334391102615699845218553030036885642647087147774072085828036586217517735582637952844670580766740588446192022825745426277449218908429864767113871892005411249167119264517975026402491058885438371810508795040632324828059159708514697994151271982260724151361850304582615567827543394440644577779054925097337445685232842000116052038483145807365319553827482905115017313392304406727042523771219101515016388692846478336350400990621896161608665185948737969125112177754035704340135750175916066327876009740859281931686159850536227486003495273691710361598704590399191896502424374724076745365272611149921782430215119294259902180245130975881078151519216884624454293517386820007859512692202814144213020577298057115158010034058614355697231230270253330000314866740962954340591768178805304618678731541586145772885891076009095575453410290941035504326270693621830670674298436366834751094088226897654125729071164762614701607276237174687764106221494853198111101239838306495508186882457332263112039883850747212568236335673195729266784593544787987169311210782053477400023586768504710783224048701067518997317238974073038123954701517041337778013770667765871250036317606085547141350332316256125673763458899490966281861296591261048704098166307593026523652005815701584520385465445870924674345366294679082009327498999730454312234580294011937621150047225261434342524491698498243181021404908159704000471538471897857261386789051408013688801226448086286714778870455422224603913991848031662960694949272341222890513165431277515463436911867312222197285223044298057907804789998526016087986776418470018050866972916763993440317791294140813662944055295417185379245512331513722436618390002124747127668149258332082913998605136746023447441257236517156685791816097669540241596540753629703512856713887909362113310496419560105009791354325935769254935777685046290068555167959949481454303386197242905764112009852837275325173051907460568869076860209274256895395180056482955934762654595017216274115685511770451653037725397384116270889150578689142181478715410592320931053914981687280083311384501203804474079392092189350956326095419603244782315360328676258827488518046861486587535594062380903030926129587612727286791927800021633318520196717072235433771542730818066497156804076008160070932642458503295266381003840674067137789318751268863378518498527830793718628325817654496990342990762026086158503519517205986020208347955400023714664508256869387947291932126034821097421950849268936697240704742015943997914955734368745899059761256214691852530638335710279672708876566474823974104468510396230306807671840731798580059666097468824501920552083620523338199171849006071932758676694695975632385305233649493838852028549853899620093138661453592849965895675766621412144556529538143631367718134243254505022852887828779380118483712103796620136239052648324711634542613010320875331107797239098626914724025352153290745145734380900529552335494789839841925627639289512304190711066631910846681863585026717709625999731272871947462679770145414376433092032421928426231930490482004629772822364533541983563514735456298968070038213851813149869720292285131037797187789990779701034604163881881728758575423490759825478632076966895718307467986989369924644364932880979278027781755735870127179791301355985731099560227229115845962046097238673245619860205027206040008079764194158772397835045801751121984923933911169653023889799342901910540428605064755090734161887081121529803494130313911020671942082409390340875542544743171968365909112583857257345932704238681914119087886804417287700837698147121703486056724578297781608968259837560280025650832807007003765323340769527391747159527808693295748753029035612350831473061184012207438425617414961733937437118261921851047148313440041942648448287336057296901701668202499966548702130939127678129595460723671055527354439819000015864626787148160370702789694204732198368912666669803861864294296114837957211992233049877599101301525074566353275574654911563607360506338439764633150533146586598583222717919035900714094597419619556842930167138854763747635902006413790869364446856360377735022664423138588987455351073001138931539628015522139404860397751894636669549635134864928830160612134725754096458352023575083512871202715134669515258943544487703882815151251988761503841797564931447221787814274041719465008923856430247274765836755513196332958918830008706187737841994564879159200501973716931459418050706691459297115630303946583069707066435529326726453033054435748368552439205483119873067766859016845760644887447746864205828286531109170815187493273599170006885355802834514089449589063643539079769876504734853789491285590007908187401875591329404496553846772321102439430949700725496170424236556967399574691790201528210005687169523528714154666219640833654056699823752607994546566292656907895913572114697639414036132699483031078832256081314709760855118719522441134913246687888367126894296993640047088052880713498542957348710048475682183322768556324182910656976588316650661362166119501700320853261023334195995253229032614720933928063378717501275881833135760234957738928112539903060720921266062575064241029336889916141051824428813849559771275764065537079903005482591942605573990176345300434570295628157494345085754301642248339535245558476911917031090358209910145552565845218584147568391290807834443176386901943066992495883245969934085619622243162474367680351271031107963089558842868702608300926668750593755235933317728344022448382527827563271687628778555231308605241400126870664053822467158440263389866645476795487265174844311065150275833871721632757940584672529120407912187318742025606341566527142456041991759541040785467723360594165733064208545396288390229430975895174437961027701780131883599284454123478210282911809910623745037657470053614811234964587651662621300357390251167972821937110248066868716522386649592694743385649883381145848879372341949488095918996847270357279862767048072389434510658729846772780960684054048025247285940198959234021243812063678604810850314318805018639978213063104226317102281340199327818799888945361687845656568906036563297461921570614119887815634085763199823060708878546621437548550300995283004640176238923821963857804334555881376743031508406639364576869209715602131275573771747467229498209895645539126311897942817621616394726485544365742676782405805858348842024901561402496479457619457751480646160678711547501640450090884904207354931827055976237817865415543990846643323552492814715113734938027769081341291264084784921835705177238714350843562323522246050038014323748537962397920172217005071663345397497540434111814814189425969715840791307045474021767429689300082783873467682652950116415045930822027633860574975757633791886570028845778128991388428873758519051158357731791349838446984757022024909650895807964948822302755912910470748781728003758643075790694241484522738993491771127830865610212915193968320081667888859575355967846237581569306270087165914762089750576889925617751548839327843704920186393799680604291669257514636231234912239267509118324751363359421792580885284626997545337859572425769101811663035480830287846247392433324828638652607597546916711845127663347947927867926395364238102060208401269931906490880642030246702933490713274329836504118769817023970280313566992338062999736924005195118794306103143760666427456065800358301796297600808864002296389980649297974061721517209238723753494135064783319911529106516073358025606302200799958617695662059578634351707203974486002730432754742664960430981095165846012193414374764624002365821417792371034931683996865008756113917726244287511051143987570023469933030710454063279659923660937642881252632302052265564485556293086680202492287640353260729572143858852999559906769251453090660591637152252752369542709101162925582445998245234916096975928029029950067652839474871795775055554682383703827201944021961819483972795117029605125460959022724007485203371541020017155968256695355502176665433822691574739399776114824468674208697471076796565684976846823940301501873568671019191244948569099836691980265753350789828374366357823049515379499877371653078588438825561502787911011795846069826775821407490903722629348649788250907860093588041743205723659696270177535381453705031268454732895749910385747925334568972425639906758407466968326597884695401148149516062506598805143480802962491755068746533185836707544594183032456128533057714963479032689786456647463200692424645703314153725789322850125720871370274402035399011208162435308376142234213951415640332232847495392587212448276634561111731690051829698910092966291273148202366122212904744586301600365955444128220039411794858073511885189667673853716454929303939270460633622323499660193825503498441112457573104659460993752043774513992005843597373030823816262793191269232147687083700489441127686193852566030579617346444110541832870543067982073569478221061321606375859797125324926164610110888058660929627590148782687563599704164844707584529027413195731791467983477188101386264138454403553537944642342883718844205509259809377143852155271283985016356233302097958059915204058425935216844815961379686039069200025197873099286554423392138234847508692201471473905515174741293964328494312540201873357359628475887358793522478584183088120588081919542642457709531496231212581976369547812720731253083716421091661810108963984695762098736580818043686075004226495770384477851509259781254015069633846391002863055923098472666765661520507228658855254925864921223563734819556707457181656481381731155887931224712130045925101292118715722990928997894511242372831397515097201738499422167367304042563927529409632912133109379149040769891731340413607420929384024878892947741072405069312956597007805381326404118134385550153512430341721362155262689720984483251015148428424224134379039496802923501213278597717388671980983638519970149925740637484121532918879050889098314652169770023377119318149146307409353920240422263646499949432831315128929792684342408778124108828306436485579166668464917924414882291569486447959347327977558418969583639697512573192216235163263398371994191092057406358530027575588459502826430468198165376633981801312482898154304898350911839545448765090400852773275229118651701290645986350406212664183007793373134979975252441628042206180161776910818601684851631816330121107106990417126683257031952659872954655865753909822606431263493222915725330506449930646840801001943730944347119894778345399852779944536758323020880613368940083671552956911446873287866839282879320674425953261733362428886634366811328666261981523265656513436817053682176990631047110158239295772485106966123958297276312181689324189371128555793912869782761025583230889242254819139921036219924141459919940823132107500544979993189969072863586908311435870240802432341820134612153920926216024278154094553723404718931729449726826344996731253161682875052282454483118959977536666182248201418478355788659986234661399204700264933191411357641697977132661706399718725041694832076677107859590045867065136871479877589698749412267511670236467722774123435637480082571080787724956067519641828031725831933139419599054856082512853504239265778354918550430324316769917086679399756498951345959076861194030435569777573171766919593356305449018502684092650684950113020839112933121098154352717142469524837206191975280222659923787743097172164059603960133869254092097260133684078035515294601063523896558190337664403101401955119176631188818589557985435467278151583714008374657689818634802728172100245933695641788463518634615896434871229980013622979695000206849900848085601963096655391190569305315534248105292723076404613899585707085809148325970080180041770977870376803433358765662634875251233368768727463295683921741107606427538730815373229139575336682243047955118537610789821782832666216050513882703411281034848532951296991007903756236606424484114307538442661764541301814154408149883993089298641929206796560057602612654979124222836120728500981365665753201471931218753877910553454674142449050308054238165553359540969587271946934503087029672592635823990101347989253894899051692773480870226819381704389872884938197193468688784637470894118250446300022393577955419572524532022367756152216302079843535036901938554859499606134434899925379203618647333496318592246209469074425591112150622855328314508121273082210938231666927634247850151693330177717967389625903343509711081202776515803313619712395958275488845663723832414491026206973962541373272781145742024060957602615547119925407764134903925823291664163906931209922370526418190417516722094812660348396346102431180854216687053214313450291356087342502173227627148098349502234183464890231463365699212301922256045155111705957510742256580382894993611640140073382024749724822890589296320804782705551748027425184580717317038442236999369461732862695968752865773558824428798529780812812553514533775997038471739332972596379818819253219895656679377071886678710210744963594893980733115901924071858662829115937915197046320297989768992669776618070793005083581136235246371295001813571452912105555666180140555161176791660789264257686148951393426922502299882636376503240812608225604987200776732078408395434531669551701865621855429017285184382390802174876042631730808346989332880760169443029230609164530049719996917618890361144513295074651266809344867610642459266892483129714313397195036072505121621504722486019083657415128744006598674898820918530946078092705913493935375470264750877206403151173384392276866746969521580820606558948320052464129434323857105135524961853767568591422505688926635015399016966656796908337958521788675464232675379342918364037943852099681223564060121694226880202747587024924940572302479519462073235162204860834457239790292479112548859763867345025644689264766581446068957733352835574051268125081047315884226885783069115411348741692075822492989199464509561510211205960911074154373369808562176203251921592681089424318689458749031852986700056439194753828185177213664184051327100614185189601935363026470194696993578274724915266701765960513409061659574197129014844085083165817460038423726812266856542873812544634848120372027469254857761088561968945595605864849932007529132262486614267136804440139296750938409198289740339507301667903472621879210356594706905071862245167124610557402284986529736902637307008661017432478671378806915801423176614648891767691553524587806168041668722839241918517640520495325505565635224020603242767347330523610672734588250044838879273344296350129304887211224457866110701423472763761977120654279118331728660863379624672910622917505675835209666466645880432481009982489305905403764058846205900986100005755531645888926965035443949739022676966559946418036878477631298150023439440532393344862360975489141590006930797783156075572617123031827242691589732343471468027300550208042238467029191597790324948052246242230795156295098532449880460396609362918759793137547817353133212486833140517103092267933147713556386466324557812486286309473136008776888699877770069181655497865067496696551581952621255330992369847442508598453714972843727250853299407790936942040139874696137782109161468042372730716356057809025374057756555430046117651543952436266155628941957008140794451702550341927942329985066703625896121634660523224120612761260308322815980031399532673816890779830082003465404179631246279267465718641001585782160108632577683402343228489523564213575980529324657548875372332522460481279967266331340459881351265469680722402990231997717165042824897282558886455137008843131463580766247797741886190412764609948879512932173618389338411101443932340880785904975349924698343409687329441170297732592144900302406905187479655599361202616883207930980002530954436350035722275501329730220305381096208969086877648236035346948706683515228496569391331595551092177724734376766062526421839338011834791030386966600488057054073795426492222686742612511991110540273275849558206034974305305014721909266389225612878505872058146101363994880358530611428446407293360917496959350057708118241067918423291766802988774146755945624006394653973157987048604730595363618776884448806682081730587891619158950624850210306534089376165480944844903818607915578511199887592681372439854759771037872735848147161006212227960469745296697259582975955805988252905508374920791116395304875518036595954131096251254875376718472731455420594392205315000638340273410088986936474208962706705879255157572435666431408186438475707661767109973775654509498026144477841539215771036021750765852399319457746416424636068855420794943222182616600617149502135582888017750885223435292342913515051456460553354059635037188058337255486285643467849223377598830339559531542808385390143004487882482426726165423102731749039200433536065073524885523650689870476543174501589531322231008671354101500703328827639651419988179145261931911016003083108564846874293817517746956723354675057819804094067711491417299805722057302894426891289222601824667863174335566355039550386053300871692639498388965652349253036201661479652563992465494734582024409079496968544906212167194951457064603946680435133031457966328140321775506973765726661697140882586590022484185667026902495487323428555169857288173265102076089903506699736745064983024971134830624730127258506115934414735903925659897701972784455756855186803342725346565213816428258503416672799249752284146192443387401804183924655054886351870475509763826419244603407769421037950312795396257928854220640993736598524706161073541890282091109490454475394589862955725640834500949918314514272022483237826394977213649315967934125026004381705197078219319683657389740550742642469347257203064389826069675481126630092551245023421474350386228229901347554130189018570574654701244752648329890346001183120742481909351983214594276125739211414633917270398062404589945787843857038891574524386346654019427357952874665765396922899503343261673253487367714253532855307374103388553238655956997071134653185627065500262719343371143404860111595105052448119591217903419621811228554574547392999459100405093613159557385035603872892284523947710947033709445340339654119399232690486580524547945319749448779388707936816193898453428121858836750282103602923386955716022632020564961873801695977651288860824927657173135467028967827328226862567049154468684151651255293930668968822151785552264777249212106076859626330458226854386604985877331395700404270471912164898349822715045301860992383843887170238584012910715436623533412825518786325685105630865180483332499831887001018096881941910501701616064929341593207353735523584646577127399064384022482264138277741257770167894636369580610468237779509953983237697619078936173916698754980705855224561670742399902299448710937201587239217111589501178010831615873154469783552750030235295880113249355682987779115833937443015342162577481896093536683742604414246202013062652616560418317455792329131984000560041358663262825586475877898928319172910865765151739218077655364316450435964144109196913511124985689867595309851444715276617919888873347781446878765714764895896397499577809967306952191728438479806192033076004668331615838476830050447709227962887305477792190323816227507831293378278937209795752862686519175838676797000915159689610603928733837049610782573163335134461239671851267140210081383812853330227402084014614234267849320587639250416609662709591006168379599584970065445692889732429504001805862648415011922779499501666492252029968702661145848103450909682701690893967467309279584099600351838305245217960751332751654892124989631355293413426801601824699551085184898181672433453806663333871765271611532443529270497963749804789408140904029083027024006742288782158434593812227293153603019246967660585313996618331618119287579526105750681229780059569399613494193689583658496772134162467714349180031230500938443693443604465865661742812902066057851417653655102966229152871965079860490170978500563409336745890123243868019280645410894819579437660769562526488183173075902724276544814272278175478374160111809516371177527180965811617304050154319421020587074481262465944560580703265796060518676233510290727659036907306126737690537793144725452727550499406727849480145472517067695437805608242267969024358508640119210651608848282798031123815648815852642239704129052244625942533851114557552871763685060973551713684529462642914763914637244690214552180478348941585364554813517231888444681758576836827987714798866821949529387631753950005433157538792735661671496993954689743369319700082616050254960174749507116921433588256324542835230901866045135069788547476879951098630812209932098631743344894696498240476560170580365677233085215546712490910170308161064604691126074194143893145198360516006663779239418565275844219288262631741981675071197768243352271980084156213612493638336317973570105035002244375387865300049711900650535952410758786614576726271778781957006813798674792648189105917231244089018388756829917061640573937358168409982947658701733883767336889468514907980814736051823572087424566220699536381966136533220494289896542406829320581102636454429140725841034893500544621604472732502945773821220672476458139461065724319963614574062044846562530696354865342366529699872463033849939500581155414567578021123548618813261419419110424802945153476554973070331142722798806537046287539061802248814119710670094489120579206147077322741227963638032303402280115813879498016897032018445206996008825866663596699954777246347003411022157089476738287836249251220589515542820282664797512155476288496084901230022747075183122546731717492785848777631739008045991222025066980950891392919685787822566584254206246268354886194566574679635249060743755710962495234341554599406931375441950181186152528173823994979342949432787145515338506407870066924245269336109212540491092341191199513088548401516527699087364641823287663446918226118383091481390653230353079321972895001226984270564142812921798207321331104263148144663982609722718563388012330705146918683668296215253986777378011127535265089307418105493398486249863900432719386918214845742689024618661526413634411918130461177413911438450630173665872355898792664401847624885499628657506412989001244897701824087767032598122998324240530804491445211283099216329099502557471260381386860333117376630526190483855532161236766177709804980456185089779490096804373254234361116822188452795956746113346273128620562850021006050216677907251311272332656354441905360072282760160015820041656090565712087653874386415184511285312057612861078774092977960509584909905115811274701357750454816447506439431139021835384083173587835395668725338702740747487004003031168001779367344149490889511123801411082688943338542521520814376284723342824466313826330159891743585167990094297284248390730776594928855385545779889015091659447004941760063377045170859460761186196118517608566907627569517416894902987052191614779211092878530567831561292411078838039890064265243557640567581018064627182266973147166040795980082122080197734006427889617758304139692515365878365719595337243362497073529133190598536338859923674244288400491481357180840538663399593435123491643930086111378572058682446101893337008852901043957816037709549689228069252599050410234799281395398854300799204356741775354911589442012805625146608743416597556105795545623958408097920526134035401805201115022175034207236378012567365010800269732237588113393668828944204213782208407192044840179654655231275691406698750765116118069867503535406810622789113322959987641468007279540041272088204003571874804064098500622535908583212681096384867305103509960843930235622497084333288120969628048396525941393152519908730911034321402029836118561405615132013096153561535290963296575710944491593709747907784356499419385027286068985292844561131735737225437882355247548782579184898733132640684090999170190401817357195484821328465282686872330090861208354371605685495259456664263824232298352431530349630835754077295218898122802284819321109660544939911149326512760580754468270959411941200779897989064676423809363067303180988697093736660655019717396691449004574312677858388931808365483215618700433406958391332821788807293598224703152603049814314594450469351049421174535876403765838772461142624067707862300579117043593156019287115019005850340114149624360041118375291122410046038576527652506035457718104407615543912508906774670658250477950647378566034206406438839180156916356916345303211419293076393412893545060468067248359587837916268554752726572849021166061325561834664168016136614983277728128899472362685520268254284986277764020117573210071225753795116416201942156799083049917471401591816259529968933315869724485155713748253976594877420009548531448913795070636385429519394323987522383694206686740721487131557490671185962779232130192116729895306728375757739100772323540007249151592571436317936623403467028648912538198336055052537705706861587314381529429823131451103551929594216162741434878589207278973007835068867975786667748961708229338972476864466482832154328801305678415212739803579073533857819782129013726248982004109176954109354792678427129700072575147963835996920119559912602665901509097962903984315932679009876771039658586162992838293850157233668484586504979882814765557315390153241041235829716286400072437197999256057039095333761791534900372002475839860112058578886233999328323422645383012827545976750113768636779366049548902004406204707549419101724875894723874417721251204110170316048801804249428821835971106984549045046801150756753690083879112412885523322011145526324354607361610745148150373554820338308619301810649431516073981657308795079220465613544910129007330883727820373559183480859473421208060614455948201556186168699143590333782830173623864636587569752103324521729393339353418161038240299253376295649015818562602542373610901205590400426112617655409225010950732195294014667054047878791763450357589538665770303657264886362359802293793367466354716507513132625601673747613096534158474094518236126810944874244845870874946224978416196575226480386055664118546350863713299142635700072271643483324599773274080295676777909397021279779443345275640753159493144728063886305695971846736164284960822934491687571580900376206188098289826772062748875549240295781695545854634400146026071263886035797125872883118517911086544142043055931842693826322819893024534934599328868428817644881357478868921970141298748371543257793218047243164109295468498273675070287428335255785445628480249837501100152314151365295636829753517256683452444584552425895568888834067353058959890796900584522270312739982363541185530049806741896762278335501499269961170924412315601023433416532542864429930400322924335054559965062365237375509401743201504067076856796883508616965993846017320900873450853671708654082121165313622579369716466160311822171528634208825874223685299536771938458625904033148669751437833315103434091051370256540277991790582714770962777829323460707901921865052602371068733187708369230735814124925986111679832919747269586340233347429461473313281822470135625872178668914364052572661191207164007862908723808531684991266273195036458411988854555223479324254562088070234174083346167111734579411566731250839117863205807645974805183401840568503334962279203958755266986733169662792970749115387722741676729638334734512600188854057967814493185961384620686940273944336876687993378745876848335126620588614250552677994798377679097275752027511842410341715667312538394139821514355810853881771184236202800161096920965857399777982872520730952502165276657422660769273419956814848903397727865357229584752985805157153538810982035905157444804475271025444996281565263921679118172037527383149084890374018010189759264487992043129693415507620046790452239157958197830277177945281991580097586606965948573814547261330280916031417247374369052875134258806189055335263031574222058342315624671305323855138384099417693799404308237919962648447673329098547312679225932083445568882317763863851731551855339621564736829361384848640797518693702709365806541255581160661278802815561818700288749202251992833501359146965604338354894600177502168469037251892836504493139996433626861949554730350123031124993241007858064226292564838468744539316017402501871424574935811539025450275822825919685373377115797600532703496650699375583511017682978970911435848154601740078842460320961557491666313235751457268489452165985138501203979554558249988974710969340630579237014460423887557413294446670761094643801972981783224443588078764346233638389188051164509438261748980971751741350508856451508642768696780997322303252428835114392003625602113170395955761266708605883511298146279806395117358523787587228992515596134371579614200293775027699125483459423916769124036979474573170169086567347355187257055105004975737159444613483269451791514719097021745095785241967404107987168038226767588585450644027485053267649685694732713244808623181343781656821639910760495026032479301429054220448539454305152141923632387949691968750313777648294893018182533874276038477986568326492078731986738590453380128546382997094285923762083116461396964517042963693861889460252672968767599683473034667337516835533773480095580237409385769387730294006860574016023712497574963381692371772401850214027745854265960810460822216955525279562248188885745589152543920720914969766845490328114771475598813254295634668338611179505404429949718307661859462417810423908618289295788156798610056329690060195904902280647879486071967058954988514301820665171875854178417141317061720507100451062187508815677836405810652473507527741877686659941871865314982660650219189739461356350528955426075805865661860492430389945879706833791228138587918470902183557135611744218996730629530761283521508846055061488815678024539332291492609899319658271692058920155721253676597489095201070298728583072216343534619594279003132520566117583003321382581174441101520383064657184605104154465597102464851240878946471720964369109535175484254842397014219984070036863432194034841902984471551589302947810909718387350633511438670246172378452427571773600829449780061659127017947629970325983819963330296419826872209850413560987093057813262887750892126293409434006784017713600989548939705166793081260638766626385568982697404587938732566348808060563924901493665434534780076483939124687234889635217811452061675111955666671815014897404064763315823004666551137577283462662888394121301974009001872344065345012439232898063887508670029594725760860763141497964737539277501977462046866369250973633581398690515814944618676325306150145498494830102319291897903542138655326988826767552129435306350395433868539696060353561075900739680766514508392286594376566608740992721124044651804220518237534291790418743030424087271303987001402949269882758215648095100730704185589692910051361973344653310995092646966062573401258144686076666347152222166479336558672318823502438476700451099830931384373292967594700021671933855001572879642825176000415877740189299041191503803362987013612077167071015390573552325214799574091280137371838345798666127004018570028138853149355424170787362702935646576113673035693506830144945037058135067362963199287454065684728478348571288584974550783884463624608793730643529077855257999524274027553295363159613735562001501880486226680721554837282056828251089459744621455507178237126493744877767595844633321470733515747876069391398134401207953504938056850229648622672266464061507827271534603713650285874556209203884603836814132638425363909899472306478717989071225273937681582740864596978266224158527184218300853030436657594095775625163331931778078569850466084395211110558398994531107655852668316055626621473487230412160610399102849029538083431925426577818254481355152655880945429374773658597773035712511936735807128334305976881971988048129343100998235596895173678638766518736701435743804092736085383923942938713894857811534437567587163162338559231161878027195984511215562770820084052547772294417147197537964128116428203179890105118102054810945961707017124517673040265614897881176929421432138163833644787689029143824571221960880101098084911423081766546766516797664870035067944224905322809445711239416597696488788986904416621181951430993015036909728033184700155138922425942062709220464644432359197705529980580645320734145212057396594916429070637272407024691369562309413693445433617358759980675392962765423357705788051629211076786825768019051632697093160051695977895772184086971939136623591860163010692296767139487026596646289359123952829197092823756264211589240502351641078364385467153047539630010742576775410095132309922876239306569877704619931746264045390800348632041147285521107420474897149527198222921598727769928671530343078703997433716876124065637118604223196668454671521078596591780694415661395579062592470138494780596675946313663106239987786670908742638320873557471131479228852402553218342421562236540562277954377961023004190151697127281592201851966647396516292496508736839383005765763164303114997057229979883317023183497441315117404154130810030257409734407630714726901248200651801704795160524031609422999833160279320562007769704770051415787443265411568537964384202793236876903964991310362719538962096007634618550366648963305080748030908078079535661243530366286586217511138094282499175817841713323360365768218868946196949836627290847431147555180429582058330434874937715250572106504065661222264761590555125559489497760567574256488761845267120304801189449783615287598189826286986923452733861282502446867225942098215986054052904324741190143389640218263695651427548534358767502513659543120240848927614584674332807003286607772388159539345918698651510606288388866270698419043297711704441029399492758482154080451156744807368096646732096576477138496796876980932256827215159418190016252789273843087319848032729035312971905172493735193615536538792295229932850307493718979141106708601549503783360361643017788573281931552210299148821610739641801991640929794428307525244410713300694496420263098632063107074272603461985595273563194401734278532762020349172475359620719008372749664205452704930859861204028580140504292996301810569594522861234349120798181767788115104354053936189099273315729340881741253388493311180164983435499055209203833479645557932196220254185303100210145391327599214618174072512793810935729513555189143071028086449636311747435141707516627975430505338441633129712594444500484786248520825896875697057778770121124971601584472899947677662571394470986826803155181278887997941208322180070861876376457811720344438504610385571183550296042967041925797150554764519819991369890061933605580290986693435765587787353516493798996414010849338297874604505402607604041813421533408905781057765932877402806984837264738408954440347890084117076625112560154803763063833083281322173187114163006074067009485181113568367218094049256456459239984252625780737668720111237286997353018236318407924538765281270862595368725182957207180143215307602678517968600608560767643038741573999223881512821758154187110796005330859744460776444570770936069343297141718495528295770735424134771098173405770278674344303774551409875608039513561399169227104504206475511652758416459307970258060283502779648248403279368134031776257018996633123385751167443193178991891660225173883472454412364476085942433667849721622768447190137212307224417744803269194545514136611811155029391935595539565969739897467447944625211040152557191102547881918824888277316531560119029706644105071029585542879117435332554765376082246933408287961252033255312120398696232771011659686172672290337748844722891730823365583430414445846007715868280913610588839117825520628184392553588889652974281147635069344215145980324594933285770470659845998832926508789214374115740465730869858915701271706476760988596462342931817559906516286723275193598666254582297429086203898832944862065531351163983363423705365551700213520133489407665353219932945416681077468452263169301350027927677521675556703384793046627600910425684126705872863479170941137765332695800080041258904333025549679065478205947425209812740046938420351043472852719822584121020439031314758139527222579497769874616633999074010146326385985628654438639539321536637384686180987941521773043693426125941145238517342567531869400441949059617393513695262167192730288596156549102672897668412533056480696109627400890201065159601944438778595857937913647915133663741529147119657812284935852096676528661015309340673881453880078075725722840021517677688955693592020553388934242278975196931242687405148050404425948942804409003236802010570630154650197317947087926254785746735160267285108050644474071424462239116277747515862074429519926221443597393210270710471377696002835512584550681626330578548720433006755402309288876472538825386416994412072051890255005071842801469084557665218432045011554023514854353099513694096181242197007867871944265034824287397538736131527540622971147297533748811214942415060539186337116741626376504835450125050266893235104811253902359566549340069317926350065685109563115491754537524894626150837661209823870524822833264993199715488102865355211617157302980655156256236778422553911289526293874443926897757288369707965824864964149666031957913998536968148028145687510917437855800431871760361101383132673218478551163362372362982026333490210087159982375736505514948469267598300094139946736036849722859885858226344176018309482900263617386259414827644342204644976431765163566043096022391746629589866087922303424753724739113019547468266746958384506548300484768311913920309222130312540501948648176106674510979644511627144077800918591471134332579121067487931335455941709838945946293933013962706380481748140203122541726688849293612382284357958651968988480818767304654435353164690905678692591570754643875178053352207526445248941230613311220108448074056126954648837665258331484964152729292102062299737146459622985210614686191572483021472207414528704515877070720467438251118828020105724009692802135032336897616537889101275567199065363399993118880976084113394066049134049821343162072755934608413004495692714586687792153107656702372511416513932258905172605806372493373516762064819285976427344073504906641521585936563204511010650894886165918340446291508840276391158392258949859133726568221764136112352352000287771951403210013101020964591811744019757817289273165051075091241225568898287338548734210396808561778293534311687595811854449611663802386156733582672006072083005602576031374878091871548063835434860723384813271922311423099016438003493226852882946972112878793434026917507282859638811509228821939533336709956558062213237389721419128891144196910648929619303305913545385763657248145028333096661296291225448413173415542624178633663583266097569172011256638027781923188587545272057973865987494533277223265797789924885977381173720290136400863610964940966852042286098716296766463148843277122044168058508544755850251448961646027019101864514626182054684436447481205644834096919515374223494539842502355954501148310516011113573673357530691204800860576097467529335147373685503342563517424055794643761382663316233692477741797812404403110170881370758822439086260221327738495579236569737325226624844221172562895560121862902971559288364914542871639137569655886800248314527846484484540145842517039926575207085796015600263556094566151221967088558181251159401429266457376315918323631607380325158044289187140250469716359536319109133370295413193735323049283204863297607331276327287214515289102123323766431425574270475220395929101894107891159203202952487569904621390065637759041772144753755441794526615513915640300305990603012183431732747339817651399112826536209382343878758268343228923544681632368414167254672402443746854690581027199228343400588229458456316646358788286167075565620621670961307194655363991964114814596952379451289719904630792283372240965931540120153995253629710045050448783807267820391552582906272058193937479256491972851095124220675454831382301225310454912819289233437826530409459724123924412719725298143938388325775896373460938326467597610598467797654342288191769576911740475476587035422942473603180768701080456629594181244871559255445377857211583858932640779560031779481567575789354358600520805942336853425349392552139719815967852371058640499906299261020463186168644638977923241921956913504732591563869709697294697175631069691856494120628666112031949078994784916019112907447104408499954740623921414729980114672678805386561847074105415879226233805453840404638178186553873560855406375027438045341180214781830246760394059431835035158776979582364428720963208198358808458357047997784338496720495421258855848234778107126271033300630027580637969592540962472579718180710566519525702293214932221534076010402326068588324525141746819431047576646154467047166332361562536268430321140787597957626191792623768345426979395322231757259753487678496837036376049790811912439656124246276201754646477682052519963801461343977000262290549645272418653480749483414714276320594126214563792032205118907454009051572692045232285853543203097560232414561881461248935580773836701002660503489483292496278987131602934526799059911002436404069670423062825435846528621973687914693480257151233937378923139887471990427699520076648881706813977560909928452830967525371844019222341842661870567637926557488704926700910199865553192319451882901793069044891374669941114472838517355181405140739901276379724920645905363911776968421853124854470046311106734684317905574756441815658508164907057989037398902325529630115627922019446529721725383227134827957992048994069535108052743000831095261785254718470488717236090821481328806055182018855810855345945149653490414518780322369549728008713083967464281479193651412473716405209111422406669628724550856413809257859613500112137361364551674480685962499560795349426460110334810515384887189462320883723280600351352880679254115707048806035005326230024693355310128416957927480271504589633394647739357829759229139542655837165080480249152830544333435020493261447089214255879172118719022394388309938568244165416419865661839569053188112375815067351228015286998505271795584969879992472116845601434469229698720204309450349380621341850131778222114664430338174118480071130124340738234199749325505949136664500505003847472977449589000651370916191987147643451447334105715220159733674737818392810406749560307318364802888279366519931180242774219527926878901839033018585687597011120234937478610680373972436871727853803640851504579812814270815346984872984384497612539877309090125748837080424817555910685279941467502722461839915640619626111346327282722525346406447492129465174894578919445035107012193692722678259804754844889063729943731697324936009219494975908334367234487355416036488943545021466175996218875069730578423522818330890956747366194067991014773447164835333194529943470667764047359684509830364932520664340434900739559026779094457867693405190477253520766949894208679500514692464082891346377841524465215925613576614979438772088502383705595823641440324096056985495156314142612575231723721195102352625512856623386865448575768794017542047116501336415331107667873544879363617037918875481035786870561254786049482725888547099153816748435123049699330744282024464930225888646193947293222631800782703417759144882702468950715063376053446307092754780394605723417074696268659646380837673065711828832037290343050420791228408917532436377980585752987236014623623900030804962960796051506076402380163568926277166273587893759844476252439303994262997524527522580627950423441883364376903669808726305518907239237817894057115753989635524027573383503718272111304333066253517265221670391504474660603592906483379032034772387297300512775492584319426092712877268761336978410825799782897780348003954665099495853820916822741305282582664294110092224412076536467052890337433929534867868859443778465852024617129105412656469126180405867743857421080517737810196369306325516800791711264064379662357894959748276789821051701518686533731814117429240293789929739801122001554039803322976943173415258417160498420806732064463892386937517555676852089220271335991963974064320125888815081511333132651877068520253251579791647128966127287859005018315145230277285995624551871280615749389419556120762202625819536919500581418374417738706157811135619634471543283698133306359268001128537412362559167609290348923966931513118393999669281571198298321915951064197516434863312905884905841507737292520907349671383861383800168207548693776343935539459904601962759110952855271574381048368850923566114601751643746303509442121213634902669182558304236386232637435090834668968742833685172180209261205288700695023425605488245448045498636550053265058354367998330816442978278041473542132511536020144597709620370079258283391778548112264449251326315235844632147029085195845344698617294794482952390957356268470850982455059404919223631699190158704710631953916897777916216026482669373481727951689163658625672889953719114933265828680504409554808982468767018879874485451627083114809794577737309536962334092251509170256843554634683439866277017066395697479113292218325037828584386508929236709765258529733392037455916471304718652054804614559613052630730095257433726163449890202344411672900126859017514694911995538564543918418214195085964293707966419254058885941378755427437748844643455024375156699651599662335137426739418985573225070021625258314819343245350641240257738945468886417431295029360656474589764241609145075944647426828925800475301870116569929366915310603696313286952438541495880321315692476575692981752799627370789682524467401642615049047758755293584765272559111278996285645639012384177691297315381986750076975209884153061410262254426781293147879330603900021904175819152933072033022873001739290745331589109002894797357172169058576108147291915617907435291977848099448437721183039381011760172469791613127736406184617277398259017888316916827246082306128793844941088065719688934340959936051693419173382547782433669617698617301312735305461107668035785267095126248665608364629471156988671642779545223876062219290050913703048987739132284911927908892144605680465406509765867742786489479905943841021878297516161689643945953599807918572552726632989806167108549754470114806475133936453540400285940496667748903665093315741374800036096413522700074488966926390213842044496320436777495817432449433695541421436864185740041596648383581810508807475729827323546272520512089076035240328705738432689437734736488469721355721087610223852400911852776661684102279719905605539809250717607965499990532686939237360459872600980259611695761966920118847631977713355260889654297960578258311906506764764297980688872305950152061850149236363687907969779592654768028561094617780237115494400303253839551993540542215546399219205968853254144944942689037929286218278504722584000511947179135283861029864561384087921231869055801393711309500000315916523184062914309768156170707884285755009796832925399451709218033435097871657053870020394953837700434448307127337880166284302445469728553487361533548949517342992518218560252413792431004174159417766888616061939881539875089186636986723482849574146884887652415343044731187012790519658790040705447319651329064386497376899781477408351527951139309057277005439811948251911677849259308502963568480400306372754248483919588128114230487238548477274658947031356003565389873184783207256799968545751069436470879587047253339565300956481441322720548444740116058671651330369218124077357726394787452467256567057811132513507389919065405715602600144585139762884976775563223927900564208600441883396477148419314219115916496919008490463770597076646438849435570363944370519961050346504539104126306222646565059814805091698696540973646262893672787831568077601041583701031288355762921459221058500107907881979377199829252230513764688857780275791672812163680023499820178217006391483514060937852585687642719838551639062663349061101107998768217479164207628036394988770751281555311428376777599931747821194399982009536184819250480381952394274822693865273313552099941822655796466068636679938654605531629668691949834906807408304379938964119120284490419047374036646027126336823276052274558658002026906934210161830603920916199666825863311089828734417835875967069749234000424914284755868688046996312615521478473830826883908996896079881608663987677850154994029495844787817005054230843497070511197625502443180422865784254979326122560516090977834538613093502442374895822419989012594262672074270074004160148310767674987825848301595095514613692869916573006397191140969182403814520968876410458265371626213463364161101349813502280894004142496840510472439311284989247581518830125417040379299062682421085012431596517152935652023731881692570188413442737856091043537993209187231791741673999935614113091179085544711310039058942890893300885206082696257465282597169594800491264223320149106717486588303619408041439378770650284446131420077525169433037015895590262496047798802812097967256872612779111422856796808159179116255129319172433587792968297006043450246120810910747792355953797813276047852538053561161774066156855626109411594272736740134613789110685783356267495693077293068989528890161518504591092714055889399392891110730870666073431995140241558390897435951022278940150925856821373980869974369979569929749033294704385198377701882889227115484270828603373570763374406938507580839311706410834358835267831355773353737050476996225625702629530405551951808496933899847275860508882979024503903179978310945428432163112334112293956301600356565072291447345154027965025448633683658035278139089023497602648014022633829143974266835057344122906401333728013673828132142762121027733766374748607722763089097328938098215610576332438243159635366055368155547549343001247200215331221595343303157864721349167676417653133484686209222760120429496072050607499614230252677340081636629649930016588430501744016700707720038967614345651624572509464334804791920783008583077202298924538052508954280880017205671666506089875648129682254829676138327249485575484341171254920594214512637858121955635294384990241908086751229048370336616213790881002224115443782349981087533134558950239060535298241125293380236377493374327479783532312598514227248868533845475601359256909637421651113637394004398902473886276890663824286444694080699556035134616906179273642048316401127087967080939894039814907328071691624426832446069896323649159234433190244252100069610634911065911692445748117882752056882391080572031219477692633787832610700486751560822893478190363602771701011756660181053777833307843081167903879305556987197005956493811499765445321910421849774491381749662719537396047409385155652665606943623340587842636143777043075326945632039234286178120850797699097397736947054357527957150358332599530588257484043913258533408358507853570833995138345412261695101353594264952340204593729531541467850409440170271342275623985687975970471267724066392893708122029384219684784729625269586319539733795821729143851419569523283235988698634009297865353981621534622008670209617842193216932438498387732014072933520782758177208505492916720909427907171166856047804113048135251301553176370573006026091418741998087980676834006335030787204492372660672033735956179891695197500456856985545812702686326432249717763966879846632890149402693610613999471683570056674940767986624047980234238925907018920091531326370941806267186204455386529408155724351241077645287800638516505712921825200957417748089314013745857416132995270529598235701779335946250898724029149393426122830771002696910421761443864363952580529491494320347669514822927589527114435980556000416114574616875314752705362405812482745781748024676061038663383525813697827029701301641719219526282429147096157073821994608372928726051655260836315736142609892783020379576736926173512395179580232162201401677710211693295833472633518776580995311683789468014478927400078248828230344306109632686357099200829914083077198901867547122228869470123178729332508470966352226096899880101710070210456096726393575649093139763926940997666756619411849045834620536037175614354418073916212088920035235669713546013185620923309960844075640768976893292201426473074121961506041536700922229090938972921971632291811641681384686922591857818615939363302720417217368306233996332867105877712988398606422158381699469401928476700146751276763616140492742181416041984369011235560643407617537443508746118130232838158519915798600086963150419027270033313619310700854303664491607975642541929633429865881960862599048839250481061248511145181774585117132292414059827724433158126820285018647470465931495306683380058783261713173240469629031841459109130591386312901305530253429507823425356149101889309698088670806721990754889326865877624573227219023506638558835219073677940258406285731990276885105182998079374892826047937214221400702749167957117899549055949820066220637231307561353454534843442801798019910925767630105450948702149023377021739348978682608184676713653324855716135732748787502305776148739004828184377269885387235049750256555481098262884831035460164363037133651408700263281223856170586574072333209895182608096147637455367577607770652975044964420504815237721645516452104988046142238349086583225648069128113358422103581159928305906385280255195377057745616423014166621754526989188025975503944815406560570463149891610837408533840592258237135733814990055649935065408736851051015293966952635061694350854939151761070464680510598278802140072005488056030994938810793291253045322855672173147052521000073125619661317126747000710835260121807538957783404961911137787461257296803809515333905862726203600972914006870209348758561663226797466500548304814539087162062247438816790291191668026987972484031146731892626822270895331187486758126084059269671507851790502996600909613962286369296841664867896656675909328737335373814436406653493959165568448030892597376275893836393765034927014283004844320353779408267792302243079428343086778118142953324092650705458431932984127198429550566455768049646122012513507799101242075479827132176650361549176174496574386669268197609981789343818501137830369133118731800640841762889140185590564185971109419644380633096432583637273155633334016585157640609060801641688237280586775305912420279909217490015209916175695769758073787282761714907570769504196442505195850941461901544696204260958804998700033485156729387653183392913089970758053999978956685105214814663997779787532315157305774463975186005103858527418441576739664606984957888261556096701534709371808582701530696204580503507636908668159338550905097171955260245533839784516160583556839482478861659178865864845873002618665784215701633175683741794886344731745824915911059636247248046776939634735524968146980470653531192406966833850399336295560477705132066891832939310213458298128329315542544213816357671565822832920610285620417708062698865403631643071074925506873687159474726068511818023932487444364915497669572342489415970497005131672813941370941742371736569393839405876538350484227826419133302189841414186537345631743589708397969894013321241919117938649796144932992482260906249885699646737140145585851184552758187890392135477957454242866025888042976957122569182867413439616891665737298875557038418971048468637953206773083351601001129390262554230878156938645501743125240444532239162954305287233562760034626448704776164932190670939628571426115636761893572202070631014104611298130362345423740371911871879425377627604136769651374030114070837100867176438462614924943674862640625046402704582658117557090192334294440300372657530144030973707112936199131812412966542604032182656775992844189626114146631967177429900632780583295410892857880591281466881682946252352447129902147675587897710782097879141290646426041407718721055679864487062702474794623211634357676701299766407598753592664888392415007413224461437685198331179003881441069582536652725834817591366015948014928627634617956005357148595214177127089971407651269199904471962855699151464021644511832688527506671634308421741540666082077597351355854610585227614462248590269200322572200080924172117549542126032238725602743945454242229265057266340334611091623713112139235598227032156058945457026083496549840531867190953366420872353871351107777023930701498852787074574059150633986472879125835122049942080331611622485947015242242829717815481168336156677195026833980949332993858729248913726069035667440241753350015539293015923997484745359676789503783452281840910170526470993954263864654659157406553706984283053312594607343506327679665051627744944727637263671827050054184612527204212380762282843071156227884850821134181456651305141337055051308009844864708652260472547137012811388698972642655027085352695427069637185933533858609244414578208919621083273804885753791809623998184217747848724841276473023045489907706025325623662150527900788789327698463752947202765366380792905466459334769452676578228424266314782576620744731028071701855494055022540648074911223576932574550436003230384501589925853032443889854795698301204222603829581519484048580626541344664757746708057689145324016109461507177632420468648347537971633597110969975504913347113161144493614063751377565207671827955824070136277066110140267834944078419296435147853943659963332759484423888657214874228486656612323260741438268061641261763603296401248871863048174913150506446351395499632625790872548895542738604447427964987953351982175575873454136153403873470808754915847647648394715604088805277969025365696959278164124600485381230303137053148887406435156911062168350041682601599496594864213745439511386383833878617327035316741225968411439332460781675968802182582838791914316281267254841599591714021473359311766925497467187019047941322915681273269258402612325456124430851391066981480782260829325435687710682275734167737030719724646848818975039144117551647283348448304940863430166707748699577328554903034887568303844365624862665360524217039783117121093164955628871548014189224627139044979086810187488980490361918505355633155686659089405165652904580612543561755968096162069802397133143754930460694155902034169156776366384482068681421092897720828121185558173804482677623143810826026907902175000874651699675665256349538894760254701529591491981479462987123357203254718757421479541918294019245409041263927179127999245659851877056111226599577857654430474539697755391466371579390012073236370016523886331659719355414668510970852640673717638729949536879742248566762133734890484477493942920660816344884374435218533428135937825325610669415775893721484305607491408022142663900741421236347455452238706527718921756918583068927334338713048486522697974093616323216680220043705502765769962663903648912367089704670905519910187783803429667107414861499966814674419403136478676137439670911075888685393558292547394624093402801045907731536537448262447079604995385195578152456160724242051765749257021110731100234787599012040765676039341970120620666162229011058549929241249876049993915465300464483294570253681970496802706553765723019814502165627918340933400415069267676520965429652088810363007797229629886288676845970323171444641151990420237377720923581711167488204098658149908339568535374396287801849467865083246305360336103397504567558523495334698943650193678214241266843287399648659487026771423419058096549341287542847559144044783454814927076952977347376661246337748210375158299395346504666659030432291899932253271166078327219678248609322069121504088478123848881287494666855734103162746444576116222293204758661293627245064871603594191956628686139099802314683462083413024301372580842898493693238152079765780159810050975538953573976947683660446860671768083290298795178436315680738775249799468196204884913565162946020402687779483410521005497145788727585335348214355032885191270864381799227647964719425336537748097545745351805303990906550831464551576795256478392413561106022696806927594270165313085318326681376499937849736600110612983521805810016236966362891117666796156967980387773153113200649742689086665671048856084245935651403265136073269585567944871329488887772152631637286441978216144941688091461527557917015668029381224177474850511749652760593046684603691852755158522267760960160240432184966193803216542549021763805552863184942506838061632182120213924108879451613301807495961624796651703066332055388494223634921901202941937475899292055467369522946908152400264138574631274444548301965262248001727949430968853780653318152547642991041848599666633485088863226799903360129146524544466548495645275465163023168454157418070774847523083928568949512859542493761273275749345531959709067862990033814337941533036817838895438608044203070079314666626912009985250628309879800411637728834110203645653099245864181798164365286799249277842365923995143100769313270820408609894391209608787082456889899148888670958460848014925066245008940374494658185287679496242716528781048280068526532338375141147151149749422020680247110966609640139199055260967604362973919207885075131783717946755414029106025847779022155795560503490908742866419940334254476832011851294557805491766429915150753112363360798204937966000016213093164568152542580615095858467088896597494361150313797476488600041891331199260296094075248317731378161197617736839646914422039293701680487173893577140619462908439569957806084703828338427095748897156518931886570240679499782196179309266993051523820583138547825616543914877581225171154081558290280025602293129919198932070113938358939094973297031998245248228933656500160878043177002675267517184572146075720609711602200862718904271202099109454833389346952328746777859798270402217290694980137762078044740029767722713185254378790982416819796126611120429124485925537834844685111076997465728787506011523494359241898665014417783302227152041967690748114702866875223060341003251677611675685480191447816816276028019218199889353014739016753281290528063221632092286482735639306657347246099077030998832990718072703583402488436173617478094027702044946414732414989096672838255176665267103297761961252823516441107670364965438509273972878838290307310352218968098231044836727672097769651759372839354673157118998609708744906089421591857755814600873101573897904386693634471884751225355288286843405253439215403080751265753273914454063963276163805756255028662238156868516644953119828784275853116384454732412702326302374062314766777426318475152450369623586660636301738256878400104434767521573927363643463650926185215514947593075938473312099975041278651589335269936424888308237858377238220620784608672680192058460378269128952304854036973187126825714183864096059384854252494140491107372216252307885705672255789910667759066716744607891806892538208011252261291626268901595838074194572370042767141974742340404867643512803215034386845401741764414764307081507591112779479193202247241801995308725658922243021306603442666313534423233656690485471541604958431676783784815527569979897379642286229810938982120670663828710819887274997070676301203882516583754855838213567327463969038486928976917750999103798343842397196186861210444254610532958100422188896311911186533399306050085588658078860484204104983101905103842642541766591285202437851909649817073575983825412873829729108098663775184939216777191134487569164822811854263128699503093895715748014244491211605033792830616138885024950376265831454170765529755609152356301604576268215928201917319536768890643629063715934819609359244436361161759093019833660523226215758565421232416371199003575706400431191438732248248715392153646249415401420908964484944014008619703924954676529729662029237176241787867252066731885700242878292332882453790723799072937978042623591850820135003614864809743538671471883144315621882346397419435007099495210803454569719071009826516161732109258995608052725343166831518075307661725726178170593820503316193890644191071170229742640465827476369888078551447808039526406323613185445858580732303027080289843199609025414582612043106849497458000441821298362582248560599866578806639079730425686354613202033183163059090528860929527599217319075654606331970419918052919095180961318666804189453021506458047515495994142977266797524056148014109907754698662884114628528080895280525077542214777148201451299563365134629869616717124312594035897289905344899955544393835387002894886287704797718549225197483118670824641684795540223484440144003903433528938740975981761106471036826352456107944503850491675242575128957605892020053270431771403254312127598735702977642684620110907332671311926441059420140700754130210981304375292011253150517757096276507712328640301645921590400020342109237383667180839788680041472112751072424503752264176095864755059104652067358557210255991101099229430463460663949794656604898069606399329209866952850339364178319309481023968231298347864222896267571045368303792180775986100116622664753950885445817379243277319147661387204142270606510432732482454753675882262253225511526999182524246757328905306594065398200236144035158739948296015827591292359383599558660479099089508164185415179893827798412354266042893817409845224966525392669692870884084416774955653712596346730328808150220044227019887576325089612652002305305799106886125551454219391034356510418068444946220790788608007832138859311706694722099603584414932910855854344101337920411255740629928578254708960274018136344138436641186067045052777096619542903872210680716634808846725118601017885070231444845154396576923102097357667166529906781124647412335611509414330160523147912189486476979414054232770177855211287767088785607689195557875307237594291970656210207486176132277233230028060633911374948124663737848449401182208296096553803682741992311937814035368198452773518807972473763603895841881771044047256385573447982749500085810529989947948205618415381451211141096290596454899549126241969382629695450448194420270909474769081659372667497436339524469136755835677903682253266865388378377624923069644627953498074128662305170166269922739626817806533675952016940270870283392410634214596109100160708820068195508146835773665379827778162982860759785460129820154670560631647872571638230503788423165407089261433153535027313345468939741614064264369483184590666968138126352080780724937188227513174751048278768482002643735216977353268712526732047226458996966655944217740926348131267818909384695053655097076663931785973097956822736965555764328136562622665310973870940125660809878341613190414272879314230795134257683619746800108487623796905922088280856092450917028338403428198302774713320252742642891560146048153339849499257189321574972364984997353396494869576452522099468929151402120599193486752067894309153997345030456799328535461066521350190344562180243956214541282272742122814512357553943709518716259033963235413544134635568182061624668097693589871885839286906709498815617728882651097823817859562225782410695812629454706236876431090383911016578555194724055138481884333716762284593285886396718220143801326106093514682029485863556770559923551637517813945038020059115873687392534585579032329622726716192159758838386667025169812441985484079004965656098144708199245244085431615280868626629959215775252659862916922472466178546533866540191755771721927740851604446970360739113677241051799064029667551053684195846551084592926421374086873258486261125307629264520198164442541719077030164235781996945672661730517396461610443011972696327529808555100903091861208782031853091073350424464873615072477843595499111735625594289294662201284718546169088301855173278156967676141821970009810728172673393794641293179578428458752054766071103202723488733518292678770396647182145418624924316844753082548702164087179088998651686591511335042553667246636097964535975811481457512188061969455699208812126986021654882843986842759324413919797825305913992806369794069668941445607343334610278840133740356806015930683135576962930891057914538968075416511994232690253500117875401992363826493311719148557062747978586739421206260912274308469871134582052764438100400451247635514051989318779884282523273140722066924151928185362432510056402012452193838773795468745035461163722198977960846113279519738819868563679955880960769670554531853097686861328800022997011404097790937135726880297022039404985670897503758084458959599451567268153215733958495134517153563294335780536432829106684169107586689252289518408794870841569115891108425923949470632572532838016255754319850894887834875206742179574332578037789028841704749237683913561752270938600564713569372019098042594427020377986372921735950594423829550050352735407651295594797502803276292098385029365298152313924257441824307552812491797462081946586201831120121470209309048490586677578443143510145250758146339211085262513143541154951725308482774239905104260552818385645806113163489372632073192778570365900922119841600884098072054949635351755389658651275200439172179348655857242689808873776987704340350067341991617763095233671401937663615543045762885790272663481320328067034234688521487338167761982806446845045150864710090611164345766559507242906734020675785943390226443939446102751929320621616474382338766271424041641210198069341193046712107786891866472557565573393329580990777731048422291924134753492939001955476203839053051804292306687374936594818459685668670231908975189117350437333122579962390049221177878870453745943334774340166897370656763422858313151366261060768957269890470904738732455568339738535846561527623557805430352252295566151128200256454062295935015157057084620087154710776756129650936620534284502864433559245632549078518044107098584689005704510628674095295055190453379871283339441904579236973572158095124051465406573620215918423789070707986162689426443299911181575121050906654967617537149031015178100418911092548942668933455224489648786991757418200883580374272211154366332497946250935506058294206792871424786320610959492308172041156105228667171714111879888054922755891162677410957402700275754019465202899853042358294360818963649016775040896094871360809341069441824607328471546757167431661744839967282762249561178660709092109838956050884931030938577613319692458292800306238422257885637363714050163077967020280341305212329938054481064073388955598166858300244837920813539093420546865012695932717140156532518698096443464265780039064316389542570711100924820631349539274965418043527129172898922131062880156215558958935297147855363905131317680466555930030173928969394624773255251160152951800606306693489755465946118686596701979701261908151495407730840022655789147498004313889249723460730401286189346152237831615591051571447364890554774243645484161202044628201346084065286200922751336751461119145984642121799240145560165397389736603977459788369817385645010055592845048622023245399455954079921261895464281827298716333063757302449265491537741900715871261171734614874145778517605596688673895438814866186171637448480873106319600756443720240676913919071660464791069242030299836247422096463972938217359827153472580317786650624182309204918752718047949605288416757664337928647694284642496122865198904907337899595612181948947620961154879625435066491518513926141352155520523478841138781918202862805199882512974484253381243547545946924496239773091033142449107037262314562369286478402834569439765887380539317724730426414528879286128102235725072064138718846075821231897522005338020162799772939594763775408221917298860732057622918852844738212909273364380968482849423156530957987533269951781242332465160505494369427326556849273111495867332442431472865922041003669933518457304287741709296457905050083619055803909480544406942560900195987786941343220363635233735112237395220061695692645063144791259158450784766341584292012052430853048677970320919353644847558953439240609174635770756341582269736348876761103053082941886591507269056480675746007492629963741542634877977813176995150416402344817012935719527743550556591770994271115619945250292385258490436585187155097294786648600988678876241554364899195746787026600094109575684616604165205776531772959713116219295776903073995848320743678344218262082428830641705175723753191973298783661417593493844445227724404779039310795246012803917178295269329433711640781597128211564145087477741885435662430723255376237250282568375362329913142138460237287787639888054934039396384618165939160206909942994727669231077512125429612135228014980299455196178294785758737917203960829619039934694192658046403585861965661341073140775072540584866155781671403245074194404849259565307489272449769717640467470172884604508882053915065967210243963676306636157879369209925742448633731420101793659673785225833626185020765354709269650239022977427065034345644329025525036983550679379472687027443588916134832593614828191088539116106150128353845080786748903465073997877171986737566257918638146041026297714300249832806525839525258458432989536423375550048965552190429135426361817930327882502208101516965266144949838681979937438821595759233150803354583224548188441981059534227323586197689147894202490827649047472842235538777485886627404667605607573432751879789177989522367803949365976794278509494212965577951860910755817106138997083505044367425912355084945753097492304038621267919439721879724139085732286741823843974122912143774139928640297126592143028502306039806518873555695665423943442337444236559199689047826788070421777540464919285414521208242175568557677002137693687089238566688632009364364481208254847697948854256837509714264104002756667814453811046202012413444919805371822145915479743655582222250043938107762765961051953798063688394989079765521856651068698628671711822518585304385745605147225648394043543300976234902066521689908054324331077498503264567193880619555146108127569053255919295857595903673758302922510943316054967732666958422199349508969553627175322062072148546187689528047881068705438457987435728387447499286650535093549275406677847728199448444335231834388930550114748708695245748792292130894025125480452772761568447342741125715182678249947845567920736229690628897537669435589036215281584149101111746359092808538345487046391560540629180079267354214264913114507568722944713740876678498876933288210179532232837723294408273071590732830147020074999950323153574378336357690158652207699078891511530941337658241997436305326160764513876412732945623086755437911295925853741359481421711087084870389424311788040033840331467177351461373737165077080131023373101416975624128910772576109104559822539455076624660089955074567931663971217742250164110883450085048251196472602031021602210787550832180806504828899216643426191046549682876298643876848802562330917556273779728876509018220609809189791820847217480076190962386821299068456765187355110597484988832552904191945985267507441769080843591207299046039411488736726159497410674478731272232991354970929638356989313075897901667255035296015210156302544249513441503638220052154335529019408857872885787224605527065240669753834186830630903492276817107463289410735745438939488189073483355249895817032414700878494333288953876182983457425474827774762672976732467863436185723370043036870930082523132024177939972078466500245538789524812045016693081525800583533107362566655290812968848779787365519422892519225843986944749313237063489565167847856617870948104261769660060168428074887272434203543267922043068123662594904465319571324900009985605328277692574180194467157698960801534509165638196959937425366370345857696682163249660512264468313953089503677408528964514771794462337471698226549237183720033630182549612443750772660890379634852882107959995137700461619716573439900187936781156841397300385764678544379130036415757529838816761212063250011871776823446040358917020251221000348735252097443224325030768606297778517448376129877404828616657661082889640493633604977959601506098893354539357340023736335616887227377958537038155924319260758832641431379993477677300520593447519553804826944612722228486570210187592201332333415524367559634572250131837144860584091875490974887005770260415202108410397766491318988135647412283356242064890108276020707585020079410185126454747993933648600263389834563510434455651061910373326110470413037657302339033566645311663514325380935737949110661462196374969961216638414857757738663722322656517280192409925463412995577579191886720552851232914847670803878123495352619481440790080578572623786295865467375561839554693484073306572423573786533660671236527160107552497342962629223032518018110215773624069759580048507368703050436379549265804223200724394131442368724327967000285544755692820631918348959828210111228805063832288182613508466875641463122488202622471506356272731074094572672753607253899298191802947191767752871527044747188220726465140722308774102649160051318353768096338063700923721310794770787841249585860947356060200958481955740300311885033901337672207638246011296145282525428200221276922212950343940847562126398337993014233302096692828221855960698416399696973754618067308015928852989464569006631093704048961853860706661083897015231247352660802477153503595376606631711482536108738680412114919694493336200289701752527913493367209352061134275030530000060269116780372427420231584399657602648941028716985824184197224758782023921912873995295470227068821425806651980211571599027487719012402204080709953655632265292639491999144381156655197454971732583087701547373272644927975913687161651047904041844561618534881011915728122504969804170981417685994915052623601952220496617812992101289305586364789982630387871673292383026311276413699473043040610671446535203283108893982875408427712203792090966183933359976955988005383307098610095620645012562919595270809972642556488883226535437943379315490159874272817489803165009815317416392665042182226043987243410755550563693318819329229078429895765491616053583376428969372321454555189677114854238231504928801305417873972733912357277227030232454501530063482149966710200375709247576117084558431342516030877553893638695818873901552117715367825529923330300778904530047190587557616392430742015675902231522114424881483571531955571697475391077101729836146053366875054003865196071738813286146677766931389438359640628728776234490005789368945656976095340722607110830347783037521161002799122870096779244053759480413710303823423319307980281140733087069075720642391678905655336319417252181783446198142965839784784730871226157227282364252229768912298956261374121535582433207552506936412473649270515013256001167862920597215487179014586748611576736095167040249495521339350706134847024250805796203021944195539171167755474799914777971766341580413867391573693319988212153149212689844411068180538190459692037570712081996619499439995308033754453477609818028622251468964891213234018342073130562381599632688642985990627146806420335395986742445962338439664859507806002724599606882070626763952379708096914250207854176959348146659025242118729493905939122722938776789329962324668440765603514339863316288898792048612192089843942043646000650282867549226528734858304776110119930655147715883899648245009670564122050155104191862883756341163748016351046851153771659252880753673480138312054579083185218537860743485028918260434310777725545472176788828490342525011580774023703206807679933039964754441860068778302440217004498610962182456032370992399672389975175324359003744556486583660693535892194866596604731334959013397830552623763576543394924134528781649781573397540234755313726473527524134693510847801325519266658915841352414142746381596498872165211758309254801022456175977383116646897822306126337481227741598022563897022296288546907878722203347285105524121022183089736492067103071330025359576146453307357559638639383597223470597869842845834878622227962016904690570910812286012106475479589739042661732413479073136340224450163504703426217713477930167738997501570302934698447174031374874626158629372003530749918186283713929296586816669152415279850617674488303839094719694807928349619354160263609084268221724531198838675945184229468523974187519593261652226168970182940962305104880987956235947113009990452183890516129343386328080808447298607614872150802863761159920799962270935134916866842137602875329807496537542684655205108694491511167779417546481267275554147861816278668626379451036776573664548188993036808743385026399253382015119388180474129297930674010046035422809846314312500627969851568525766173609555211993936061959752336375573038464149493422840862351633243851943343081964882185801022678887352162748858137889278702997158557949766576944226471183902263307295599434172414359737870593470064128675158783371189732020780953517343721784721159513314571256364338717829316463659351919007720479529984631212439978791059605572986416972149005524820689632223548849170235240199952492742870954596913384355982297174959438211921631808955648458522548525092440893695403657622982129582594464615614769831413318006882201193934551357693769364831510051383024354039159355658687486678701638153584270476875582183846507840920116456065111965455056955492462491738528376295832463341868540161732504195573066002394522268924108411817507087436579152790913980855457709601038827390895537851215760998175500006475453043923729234355472245440191718939519300068306359838447760668562253715987611938946151333998855094934230701276915883694551967506950894189153875830557980735236827924118686618868709581834908631100120407856022428972189306877614253962966696255724484665708095477640477898994467719989287238450902112488207082485593255424093012289305896068658251397268839564813029551088962123745887885777318276043275090329794475732711218279267827556727495395842208062422992689863520275869168503960459751204472136551945225606837678437958632588775004584037617706207967075666481078269737760721455300840208548156798617528728424674499102433221647543841032775018200065177934713496409383863041014463404506802148220974382152651653830298877687672438454770629545928790624024224655116403238863202789766896392526857004029459876131432719843893000604962711026982688623016914011655916879493246984206094594025024343284046971420089075478919966397501917146557809572875637552637699465372644496182877137519421975266206057163387958848113949023119904699264827250223923942331240792261545758192888388333373453333643643675360587358594497932216838876127878153493638859837614659313608313157144598326052857731823305532660880288539588778032931666721555582987013027999278293301147764832678544803354353251740313585792813539981133331259664141831071111046398931861453089023761983558515336122789807503429690219366487554579037755770561235513983443763151020779989183132691238377035156765738452656304732901200194829764507518043357537278035208119375825085222122352865037297206690125793989952052529938052022020332593113209626346781163719043976855043175698927179519703578735018011626935044640710648134144148568807833394483082191815885359901688255595582259533547874028676110115915731831392010413596559615915005451232863500248291659783320259426081099130007421861517354578888559898384302409817851547041189903421336294623941457328011739045151749701171456816986476587559669393454254342838763636220857239182538745586624684484582602364383579958712377063255710679117915694197423310480244117432202044915883292958932426585004240617302737838409076852183873061968525142817515037855043372910242462403636355413763291585774031587723024578625764174740342521951022824951183626878458084348988233506256475745909947380640575923522561825884973231254147859759352472996701464654691257526666904851659310836744967738091788439562698656410113395199496841139428467270688445213170977172284762193038828305692766739453091921981033263114189480546824873655528142996567553608252097503657095170266513262507264118793040822035698542280506455630503637111252500055172355759623293067709367771937491526270804565333847608473010638378130630545113558669163245629153919892990927204145960031682296113709992890938313216877769657243600296018851191994268945518818342746678480686044130471422516588897254467204117620347950865866433677226208865447199575813052108487979841029894035024416287754238169909625125849378765286769983485517022658753810192135525358931961235232388260648356993304407862045886463024119580210185233152962035215733542586080018091832792717990795083984151163643223153897829231526647620094740716629355690587228366759646079803318107708400958139233492362564284688088090401068504471067296984575721558350375081606908400848646871223873865573907692662660138408711112620789712958200649823033736892340813236130348004645497455462327870888491603675359193953546298851154623584193934890634190623348701409701318663101072609012500620842059567771311414270332773796713651017560985005580654604557761734951610952388935649907097080620152301279171495267321334679121065423877109861036103974526903663040724081396640508434987357357687832886416865744329001144111523275845442984932917151156844117221207291864941885387539997671953041079810063867371559223747342440486107339184643021005568607346181905669682427817955868918195302171950504435851078447549016397737087763216572908882994721014303819122704951469317645655562393361761239381954176126120380586741482260692162447386668948162368026146649748304932989105679831644886769739055983792245970501615221281837813031193861178692593944168535121727599157537115619260684301897966818854114124035156501003125673357700820903521080043757379693282346973698696036672038172652087199275046101562326311459250972955024647370152951492620907830717002704178432380094152397709007690533115032296133200647275827639707971195902442963063397254954957372750900233536595671341651227225503374569503029735224901979834832236715291929825755562016552408575251329018908089263512388037565797235099685282835263114406360907210601122033787109276573040099985782874418232483296705054783102731096487912692426905730565458653779048071871233997586749849924346364058946550453525430506796022986726701276660233096686303074744426099142383577793200551391426316269933673496733894622741572660094433888442853776596487783728257582043585801810523793120797022993422680692698821421821190965944035067436517808638974553024865125682688512263190438298392445127468463719131001830007085698535385561179624230603477182873225259163581515283913716432273666748540996948038184799073749690189748771020263193354765977902340712596480107380344488385900556479962805263838945029699356900889767508669118033367430551489651334942048894966289784308048819438945571588945164748958564051433458062861752052907846852693320905393255277126417260987191753020909504091998267036977574266090007236281018522185341290033456901624875621776707945722752584690897529388875824073795546642824239086971069911788634220010029402165422577115622027685537238918934459402666200210580508624109729985760036038243908385343375300577888449474024067966421881423873394119317852617958464040833233718476469772006160793452344455111711649020223027987178054271752288180829378353534930339401036273766980227474049558688301578064429689329258407369996852962050049636715649764598176436233800702577135819651403242307369269997911113573826460541794689112713264326905562781304163380896829108910917189881940821331387600993452313806804763683963883250779281950721936117855904723430660898555038694113413051702607046127398683364915478691193770857954609895386581456176672760291414828240241723272402596132296684987882061448952736154199612857477764695073474634678833835969931096269857819933137001657997677923075466604953979493720849887465250182595775125849016407058091527727578506313700323774144244894788744178670564900044270011036265958095868702494573451553416660437403551898042659147421297813105133632703764271860757027415636266910682614479886108915197351878898219744971477839842152035052305158945805507266661201970540736530663284770278039756453093166298868626505902401010230804261625168189923518202761118501688495818635441448490901385586437227620831321880503330577011243247496773327711255430666627653596919578541420820506061220816349628226688844429819039208468196885215340335016336103162284576018894153547517542025115144213865217837192808683321903353783548481679056653020546183307513838234631669643837337294508170799680312962947436909797549457851054727329026823230037661134225241581793580366131862909100783889379335924150350252714404518930530274029426821094997543825034801872826119680188124263190433362438008998654039535011582387292757350495769729609532182921759060607419664803005799467336760368221683192387860447442757866736148981243442290242496369404730380741711608384947412535739309661416600371257984506647246588202517241385194581489291510590179664720438785154454396605714228550251938541051093283566357946942498209648978779749838949331606942701325024499777618846360857934838916824695346815658269379223222759524104210291334457864947758640546986837983864015934503525220011606081194787576149974754828741659918512272862469374210407425681477548183756678281668143736499450812365523843814454755773773882812115680307872420281010095858656349079486333610785482310030849594655013181181201031834620039626283289203646380114065789235766044933426440173744979304079112152715446391547434414019576812699390068938006923507216398334644938980625351880871393518447287526202835569683191953142333481269879022577725641798021725786937088617269845483411303461093202911055841284574477246070739421440880995786591547306306947983161757117957235687990686166443365238346901983182907180676047103180634578544723531311103224921678931810335585733630556249413185653417269396768920663456426482909201725903372564128993533865773544784333402913505746202058961940503616091478042516433853098669467015335826484210718364924917882148769287736518307298565264348610500114128332706089212595634454035549730231077803452544725922411158702895965444351897970451327247962491044490329644202016770032929522866486995869481884531096160648064735160731836721907704406106731947410109935026633166224099049304381872076636336395085608440138059955660513476218493781282721504592477102387100756594514016772140820080466128295203684837333515433698606275200049534191632854458762162121240729250957066899682843872184547179868212403238820327288599731780636707291870501958258148562157050153010543716740089254512188287717820946860014888887281120127139177368202176578959853377145953807569053868408003246278081625815408879075656071340729660941676264160902828929810385102665148388211001025235831602817280447146369017948048501323291437183965824421239037382741485229706393103382657018385993534271166998953985114739027164391019899616617619422466572501187670941520219426948960276505539665251448308799218252883458568612730339622292877301007002367297701666797696821565072059410343411284461509991758969704230957713214986146564922939627019746550996856412966896487413823316437430610663945333758952524213668683178277006784792907735284890796709361953842752295398817101855319651274795078892804218298677039098251126558348404284274409432551753790929465548359349803697152438074743460548516073821946817783806198434249802997927689351560445103734535770757557431291481205473116250674578411477976702760240596472118930562671311743901034189292966835434846235754839601561992804438932866446037339899132331849104841479054635448846636263438166179301378350513398729236279108207000101531255083461548333769992843533748486334201040870321480613990057837239284095208409913310954966721207813688228334467235201354859778861690839042787154954313129067039650209272328571916957339827451768136576480944055939136460314552783243201032727247928234435457215114356736255474815405869654094527932978024285565511383143531618541948389527111848388823895453088554274864182277443114519721927638703060607608497289080498193066482030542815038054172187273975622229654252930112406839498074778187111551070345537989750470526078013919095422113847750696525074495105327891049800297725982101684998963288513190271290489654795804986466231421690568194625807549936652173740762760754122640197855516154528594941060712771411234293971306830481709799905360666929667676479765190774193269503269692560438546602167720234718019999775422780156046635928091618122621162069048973737845795473617444088038034783890483236328820145254240036090182958607685087040468217928630250763760366477336708577229318264425005325438826199303437753769189220070313122863677402142760109302714558983719131372740058935905360095211470654856648848870375332873030406690927424596740452019498227330394046172872972489333267607652155378589176371366741095988795107578284619569268502813463716804775299330049535345431121476703588020150929500948327021808386704427909254064263536650548295040074218456395925866484058435472298504640541301411889537690129100839228944778865940889109937882054918122193069625876818973724546741432183292424831726696178651815536449567653089664749703376426128005157459189441544415646132128834683693324154940712157858081489432103266500971902557248416805132714304969587139252483526214400869918488232328933469600088316876817000614212424631863549314761986566331650117890032093742411008246680521564217526749292661630501420365194845369929396753482529271161859936403353561427577025820579565536675592041638934538643770292437145209227582689865520755411006889323726997556423649633409304888564995602179983046735095172624430049553306803030158265759987194277393359129831753592316793136031519812564840656036778884679262690503403657230789869707355014562133125483692013526930352326367596407512634094549339849852997327768037444769954426969875456673533589046872434397189244966036605859097708089980349324196317753007476427525193638133472653187149912322959340123634903310224102623444962888323585849544534153926726094012907922915521999728583281358346008527618823770411428426385864289045042000974762095758280677147671671905903610056263041733394072507088924569907736100555470062986037412199438495141507111252116182114274045403255538881964420033504297344628757121037449622575345556678574690952407500764020145076331194657751121117437496428160501421718418566648685230551951236341558092547799066269766030323282893475378720498224861639977859534207228044116330106078761719757317572112852178741255339654111732515673458626769399437888456306377121518178027429785139454167745530434052040302387512344946221546200211817069071866084789481243032398920866086938912265497774009481780911965978441542999537403933399625884453776085989918110243617874674734532681094534854497448541686592975010951825989731713592978346718460180390437321252080078156560188753047013464387083738770446274568141789868005651996047635794451342305659000480376829123733025021491872988314310911278895077947698544322603610063832487785075018895993227520619002378550485152144960810455223596704935890947906585350174830109955285209556689209461764229366468346691451078168225620221793061233560629568489656697268810645727223707525753130023878520456182939052600441688180615986542997315110145108128171030726729902905113466463396769673271825168153000006259651785192397455619514824912366560598016362036465884466745113174833570721522842953437123180385690508686269093422502421840801358622764600663454125595384961425755698085307751550645804930943295323411046475870146436713143764229802136274613649343866025195890192089419838263391592387107157469025690681982505742485369621618383908167218082083126950893139126643422524064963520343070523513898757907742505738049049046184688704891758464267129640471537023218572726710437461249787823873870884327923843554912017261956681009899525430641575655902706322354709151881840679632283601753846357301119525814366468464016510011395882789307208947276805883912941141633117097884323561299603690620716339047850548077937510152376190778468884187039673399075612364221779035140619694383459364432600756675132567597132484921341985505302786373204375965813335048911281917351654370421798168214569734923832050288118827060537475912714427700294224334484701944341602588501698742974696434138389719326827762715833086682350155761717730876271971230715146148871661061907927960409005267888311904749004542476469099390040343913831870690173164452829685785457433140154570262016314954615203779113439513372464329197271671952871452110037096356663546124686923422818515482082427880775237446386718430716806740993113772938198055719390972534596280194147703091632230817663413421047563075479921549587519660332650462101250351140056426138316634951821638374474404647915730253275848284670947183208258980709707627250318178424378734017740723663405657283274908315397736870569724204816018611745780418716895879759261813752478317516694483948592035867310224941018799717682241014214483046582436570262225462557029469876593422765210962885406027395782281071848975977986336338863797165456258441315593838590169967734361539294547151169816836628132381023518213499309901734308121832770228793782464738602235472484636023991161019004947366589502988122232195861656340795513721837385907115849625751943659107639414016600083502413058849830674220301396418106155505825074653034883730326067235815778277134075265121798098449695233684921742304009729367102404480889966410203328276896480479892653660783590361944829182727853212424535188051862267286853923375449989529757385287196469520823565628239169641618886380514567774221173167313151690795512975331701014811679103310882692242959794932588235541133785915455263821470077968191172561863299585198233512455362718709815098536530306908343750617996207093678083955211608347471496780420181748845203048426028031190803385619372086812667932156385458443849535315393830353470953675600650879111483047988834855611593345603399682270833800922260339375370974936320839725239141736289038547312118337684494351551467404856451952939687055774489160787375448422204823649578317817490929894552119036573092690623564458216995319455611596224000528907272423903080295364687894569283698980044047523731509727940276860922408650466405690577244175789229213769889311153349992160793531402393558921647911529832372380548760166742948545013202052510849879602844539170996498019197800029825863650488165168067370581646414438537703175809706119701027033629443943764561236815072734679130582072561269043132940636878775529065697759804004674249653868805341891825619738422314738679902319268380793511632243699585681350668350525730220612973955780589622957478620765357717585371051935448112585540482504009200904135294480684043998815828444272445861185484457493539615731358083954967174063478739674637135237656296976049244301619114504851316633376606792550411419755153231204728895090788048428513547352572451551528229097921449369800055723932255092717221579434101814978797796983202051257098822769289535904619370230566041414513427793469076622474020482471522311492152732266876648874065285304824118966986428728658384809584506130184589177211058548010003029637963343659189253001607071181648158181101665849869802726054414309740044063879403984280125980239046527006561302857097482022389688118051541925562703719558655139636675511589843151607181688627088366641697605930490331373171308716147499481111589023693885076054525050494704860546027566489853822187266536089855846449846822300768737111356512431201463373831347287515356949871675638802764417339557986056323670588722806832980251528223004432875865491056939602411455640213614077544243443933416989566236205613385414453405460336210662376203980998700980637178569360008236848930784728981847632194087119839899558360697358732283412915658820047175887058928448103904869664498313861852649857199266139788776693890246576225176091564757339111908431087869639852132488965414343165781661380802659450079713783943760841082464948354984318558068739584755020565273526055020078997131124389585212351848455540585476326827887581798415878776698819165868844085838541867083346714202216247605798738572478913654944299535639048841916109054166240146704489014606338500177642722385640756409679425428830655555594233484269771509058828518237299229571818438393255187271539537795400602251590105494040295030978350722922669836604619547109423683981696399515173474772178147208447917188047638524702266723157100792215697793183414491641426787241483133189930031378595283938694270939979412100017599001243104765765149401170397088812309034308823471409545951267038417656110994364235427002816589305628623137982719313448469301414834566711988908095192230033639699355983299302703164392311142523637473629144025403454645935440784504529715500134634017188071175095392768725447341666954735010478123191337906767377050229031927585964586530267985637549396653488463835209799858757916989386317003589239366752778168461188414830120511723299403502592720065213968923137030091937132686632960244558555761174446548644070133486950597896896805560483990000081115282881704633170132760074996243032391241612997321625637302870597064769393846622289293283979148551418708412257610167475454983634986454849952758339044116358633738403811548146433804060682481816167571264071874878827339140045606501757155292439861774172329479958452473177466073869889086460093930333476118291591506629069984578888865879368399882025672987969586456762901765894144548495800729637119833875130557150861072059691820105528641802741399364654039098330820109040367750489584946364802604062517102242631282870211360724165190816858287086326992512141426259106537084363435486021137335361781505898708150449149341814577926298154490229900308272320211915211721622639196831318353394683228217783337215453767411398701186798776653671822408169858132525126588048146490657567802613777694172940347158473886551445498694962640004118776479435537814183415706639498441239312898831108784474237490798697231824979108567827153427022606931586041629331698227906178129088472209898317171379118584241028117906189879154950833809168020307462132112725748363188245257405307574375448839166762105355172874555715644804970647985579973507284672166068495806801497028573322529855256636989400685590004078768977473085253159625107632077524681376157669361406552583543544089856509128323603223201839734072450919325005510767379879003514232410544650243789537677115757006427497528484654026843884512506904730690107079268721059301399177884958459800411498896485672108385927971373223138208786876235326955092138888378922767017600534137024226009908418880706311410764729943367108346710196042445803331343205355774722403204849273602493486703763146242234391578701205009125445985201625352603791319591340018005820323569156467116549456841851098861359652656629866290373275537570292262513672824031850962141449559935206006643189582675931195934252023253921536039830857083833863830686348870298501996247039046208420678566702936979233155742891340822170080115153895592856524423811821337715088321454804734115653750077927432729163347224775142886034691948209878301149328702622272901966060453690324692709565667539647898448395072566550560113134651426508746971965440187965782366359314105531600693033393111059489057949419493656240772843909081975510678402800150917068211414434690639888025085016223549737541296474125182571132491709386200935448626245100520089981717971341377254457353166484985976393089221279393796380099417610984495674490396241890431749499915197200118961747759417997890562699092112135062138364448877562043328103647089937165027812146519742422122119912541629389995603431596497940001060829280659011179540826975555791393711500718166505731031313372881772569099293030856992815460841007791630899887354343212675931171519902693489376618338861874936488191067458553541452284144736283224807372810035677836200133097544011692184657246280028390596439303212752139767842186279265344955735049097100123848603955579456069000943283288474980645088738329811811180657053316859624457800622938141943899847279700847460448445013418417036802660256298186404949338399764377530540200833812352092452941080599913927796650665470894127493805694340782520507341432050088842420339684642082834305852429347835244168950330472669462180216901274458538210175362615441377519458824698801302290012087658370969929758925964617094055075738747039954700475312896003163686728454172265321420503738028730096885502713272487671502989902051050438129703618444170419022885170982196334937600126959189294507241039254493433627829544689490120703804141593235892848028676492914073393746256622836526226254749535793140324610760821833320203042407953753744638317148178923191846282362229054664568510309030270675783293791581078020527955291984096340364402274492186135084523446679527735402066406692954429559164636101058368934901411849876070018906937495876285727448897041833738173285122792026542276188860907845458588030661711482165203663810210783478835578634526368723615021915109005369379901994309240749602628198023847194794314811209856637613657083136413869747903891327896126434453865263617769881350283189356026558841424442054154000286718695941183087249790287013701386496149010102226922901160036838112569361871874600529329760906585442521166117265394722053453590494519823069580571541242886420668395402237213309608357622464813242292900929719379217553093600923036293314327717679547123647273192511990284768819818079159043646542144842381551374887160249920532904288210266304159867836408491985779395354772119647844072928145905098366793750483972645778642955537298036236277823899866265648939933863344719729902818733931250939068070958955209725273439650357720696480352519569737096353373179458217919970462350776606810311028471831621260938727792297483762727475955893310925201063597103663795887060314616269092666501961532321819870300993974207994341968511853718405540396602853421207550919055685111646500312608611534545223795316082716076698487305326862647071632290666454391028868773204493118112819323048825767751530634451078466288822322002370231776685912796167720997001673575566569394871244005252629652935433861210212368425498752281225136116068779846087608175567111640548898218867443404899271240200100817173246115027182057756459228920948033774333079994835394052789364507132328762488970112881341715210667143193319651891199028930293126017456808711488277229748057311594873655666977781215969276441280596883861307099547807694871694775598863034970953935531743732744785888366344262559365841645616358913164617719110252582284253776196369841775145190760202832987203711206073796256197364237418240239039241407784576013249517408794854154023294581711117578273957534222036428700335661355100921216795668625087655970346930578597131373826433735248488947709306248943602816834275691746524512765398536042511700033432905842361421963754760800624973728061339104566899892319583092942965971933906780489114442600027231289966001300156857135228708069454789203751898166170082674120371561321501572611882822285523019523486166526642624897562542275117583109379960861326034789506952726882208177713310787058681270459876737047301856593598416435844253169080851445630168990418943970827881279777253315575856463422230579078314896497640288017798952192416517172119273682462913235820430807350841018854718800125061630122894751873490826459947010021841174111731058009651611828781816865207004530343059732821064690483301707471146830630490023765373622012018336039684912000633159419362614286160796858693943239498581116200619773791101742473917258435928898885662362531850358901758207376558264829183940782988266109832121788090743602287505457295185529556485650891683119005107557221834964312256005202774093189594297279100359476332428520642594930316183167964236910516411184543028340953054600483322909963219218929410433472940121606051652938128260979043849353558558906705263000969716974427153389733698048111149332763729320029453109665726230694226916080592139833291630915980364656732581948470249703336058964604674627287629804748106087207875918734504570232680795273617507123571900986949321038735592567020285519127619514240829489151827625323376677165710744541745441990543844563116058213054463942673357336786530432716850247351043084159660585040699524721076668895084766376069188265483929974209202877489476015628989446530856049046523014519570279942423024074211674621953774702050474043784754581635453561899425936056269749791148788744839174372414521864787981061592032084043407483506531444994241912733596439336821609085614706527953569547257853582963438465442081818324934734699192999363778307010009534953286750287359878575852080351972582953977704205222114236089784620970728838298400670190686420315095118304875191174237865614602108475426800136704196869860988531201750736662533277522401553044367060517897218053866176797761505136526011664827612166275319048388489156114727496679100033635885216655371791834458233298085682714531210919389944664491324957069501169423265499897734990831502495346892230811652586785530424782772090977429912585518725339909998382203638076584438926392776090758190136292149917141994642424779232050083451365613466856040129858769328773304628115160709483633630835420852448212175455140984560586286156574684858111587657790954908680219946758156512536270241277331440098519184855605356362226859990901104857646665813648121468207955613182486916032380145361703782851844825617002521249832000055344593933583352103261155880201952274549970666180929907484651002217027692195792682606813597508229973298397983440714801144005754305962798109299477685482901324186917319405821429059443487150291973196757731692908140423638470554100666847556507243953272162840235148683490442778165663841752799863092481348118169355352772014526399982819191779318830612060782077682662282022320331974047099845489757733119750908982880802168374656709444916676241540186912008132178401778386484087569487540985248613598092677989187580629807829021083902299313073986474644673195973867601325454136005117389537983410327961631789168973107665940937262809114037444189822013169965802484209190876121099208785173825229977303454977550850424510516590122563527629138237859833790435240665945123160376467609610510483491181660799116391097144857852285460835292478995365037057485072984226535854790564233200445626947291262523369698278489995602435994854886331188162071264530463305204875600986620126043658564386270195951231174928999601891160488764168809890343283082807563746255851200228955117742194726686514812400732611906069186626937968898354188852584791742870157018973806662391720875675228915796122718203046873160626286882532864103467363584746253932233371220410159224282627366705344776482005246907280293075115124229969012255834547428254589253188753096495576405862903929326675280082520728902007002044629788497171421971107383816721574526892741182337702993136942239988942061246070161195670832749715113786457795875095596440973410008996098057233976526947897040180787265031901937871603350184331757192689625858192042671963818863387425079256186161712167796765255522356531796430338264994521962290061824279835354874274939223467005549939871388828189353428700350618932545699691801373229210706284775014606013015236524946467271131656721708326313776006231903005286813184888710142932247097310018869304514945134284676692540451680402404476355818912199246002564868144740361477636163122566714386710322718401799334201136088710762184651451685873404129571229931982132841754709524346651100675609437654304021798049683381326365462821312783225728612612500219237371784572799511820381421863030860318412816610785571256236227239349193556913401482590407603577238784419367195702664454911404171504153310031448552130960195920817170645419082129308488860282801112614818885466798807929228530507349385316666213707464443357390752405676177164213060558912206962300664308197842583466276481830427377527735426626951201169326863062890869242169448543212886240448634995584184142235930159286379745016100360464850580678270652157782338780044318937727890239445842142001745960470250886896030160410792052388450184910232023020469898749579522908727534238177282610311005624275983685037673959436996209036409070963908122427772547947168786601228688687868368033186659879453196220059510041138951166066981962790278747424782408768303430743308909583111777432256007684568228625437470281339831358808600084772901565566458024776620815153530491070415649212405137848979743673292234456577159216671813554263251151164533963297202705367110138201817532452088189754915696100705331831703480624021596245749637123920101205159922504857833656345017234273254769057162828992908079773718689028749089432682530638287063207913163678198089309789392563913247412112437241223140666899928785930755620320911462860048923966499772409533750070239428126190823663681931912333530611351923509157295914741785044204024582830074331784691271594182004021856434282330817148043154102754960407906301964929194939342323025805303256893805060379941234923732538553321603880405621709977340649918140765696104677996935119365779790409750576176558687506221835641119702186583034865812902113929552226991923198933648759588789203053501655089941476879006330537794143320270261864841966132450240633804800890528573329467320111291838619565375341422950901937561194218894033036641039204893099781916391281579381489906950136330779715072525097754383100774062154126153290619720317503371762146873222761026901139271205392589996098507358333946407816101696547478879321477582213902551603252133707893285645458536691949330919737633968687987936159678989254516447440726311611268897272539136408613316174708176446720877865565487764536649952040491061065244515896795042187643023992601360040964223150963709651504165618173977216916437612025370388290224914763302782775983373382001823400497973854849334442692864718112504637186000287908263811071595103869859819032254746427154166077606197762925103264125123701197917494818614233677472718978244604601174872963465879997386847115476204452835498488589206169084621457307230559634325424070577175699354066650080317171709492661672856215796945967048787727358526585339546741611735563620232225908963839065659461134233935221403699521438326715004043056003157798833323520984131472943307531444517754702394298709554182699463811422773942161168724899027687272371147105682990847151646320007293162610592558256850270779555558306615418669326306559710083368824129791656497547383685330078148562468605665412957315395402037238461042012123064100246664757047714319200627210278744640197026436669643546965908625610168472256680305017236102789002330855549004145540335601532494044098987862335185443274798281740845685493649267958305103359696808793720897093161077630449538710837304949017064840245071842293691146168721063073136838576796676037228097262511646377021855470970248840118905287310486041218923328316882559198957839348499282523702785041541386570464654492532945792138705228434462333691266217109673773899610202137802531403880334994940702079208831879328223632745560062541525339614508639204165569726144006852039218155473523930390174468943093381740362788928604079300653810524965239644216713186546246177187412552039658544707756602416355440744394775218932404866460812690333254119627528601333200973342455139436862072716728526952743079066781010533158804944446027508352509555040697605638553523571929312956951327792492871025387363906282612536253920023428102996276584649542553550725281880295793927762666965034257624052065573010123563026862381195660244431710062929640185594369565941721393208202185631760838535215405890031106022205570802762698294236429040081219929174867981228667530882728755482179359401990936760620982165737683344337584109420744722590719137315621654395661006973835196169450838009372293489272813682265508106914177697918503670836662676857508528566626113732197613698861425362074193940923825444638971408539327230823136676481825122193461149997909652488760992907091076281008510687292709938691905000043827680412105986725060939972508583933292814424488503215961991238165233811124879052785791986795666921491222357845974053842382005257277635194782302410538208313233793516258828596843838309340541943745734495872731594587037459205867241464496165188421886806162553617953173388537499672720976674715092413360352463239732753669420271044710839046173941043958010687742663890095715501557279420591500951090303205365616037187330262703748702555888935272513305091722816929842407847463607977895033840870052254026353793302881402920709175642409204780287948605912994000673572938352374934741410143129567907091684000339420327579738043621462411016037288999012083426808925418421327674290663104200977981410289707920289606065098046979543358513476699563282520792440040862467480559564347349131851481289143794152856691298573240218791396366829364330698580216366163104691602629956660469359392465833523804085548586218647721123741544505777678124552701749582084356901822030399430124863591810771845013763561829357136687227633689120544033796974768939225751125340561010473912549691534386316117341078216059579831243571497998170970939015514929046602342869952986456221873951458089889407168194694501803381259326487017443913279463152921966482002458298840821374017616770748283968483993835225696850288352124646535454163998368123822284244525996226455508359390580286453242809518406291372135220337252560792827889854946623157853640324321438544848661294706526770908573475570122405019465733934359315934589018666606672600536810456114242461345617316350570224770288750196584315120478186236511263049876165905294210795611615062824334479034915833658779961009165453357750085079319591349806532424767819434042942409566980300831207877525090145770421073236000248954407996657938358567174321586165776325836888811701447497282350931032819256523553704853762987585459222166121149590741659273018024862461997357658222147111738389374175952499286973043000856143664940010766557109985120056423533776117283864297717533504946852127085132537833263795014597478224748879278010983011496040171080189965132923134715887549418219013817239137076276163691004032852634512050141422815384488061371853018731370035314426508077494496837133750783429947461643103988235001495761981104075986159680378114076460931994042685045304035520330123533437125860670115105067818085254572181262767098262849648777127135079426222146705102559888716786597867834943602721964622472368627213605350234347331254415463745073736105819324423741641622601064902122077397623498661943204436357325631611656844228629850806338578249542995566279713139960997994845770810973400469087511542073908706104899966543579491551823687876181524054703062870744963522813923612970204813883926696003966438590422390192314881132295446007877947699327462144675246686535682133730580364216406831288317376767068595501629193971869884542865642170536771547656603696007250939414463826161702834280748172582969368098853410714913580989733774974802694732741868310717162997814584621712938431035451239395455277421357253578405719926524269047791931601326208694139164885764028203987379380423466415613754422911776251117285843516418660506259105891878569225832060593503921194565359242222422883370022824000216621331670967360682546383115356752156765088110452586425155224830026205984979885249893747022540487395669710649419758515601140038368804392040934182857026953183992330356251310144662963871700042907512483607035732733133406750397793546945364972394291607207837194721954676051378752390542587209109688556812470679743161349966725785833653737506847918439415032701174730182100720129870807704065156519110844729932064648136616592528956097500366362075226762683901880908456922809950930932816280425937170879726769764447370684130567344540291199577974035198389149346138262530739673923243037762699660401725475467980306134394701763451335961804691797705932071991358984619407733399751159557776385903701550459539325116769780151672442494513557782384118050057910210255170532778790129383928542558052365337771054765912307339332542678059040627588005912227275202494516005753356827071396494627153834048547653734699829625570534815924793948160899858608083166188743709751318013080824576157204367121630586944176176624903173560097144778907338584170486303730365604428637677282611400412130737120583560442191514030098617529208036205435025141942408424944376761197515949564170981393181449163271107560499339079086503438636676916392854215310037085820613730093854655375252036760245962324801394580542313228880423068871830571025861934307319107194409976810346891441695575314064847797884783695053063001197580432167744114143919708822336094458816691036354200691335570837572930645026776527172299212603765056262843807206560742219608476810883639229763216882577344616606793405726749155516972998708014969571638725069751150788610252158246591961211099838647119917244257633023168794334774059574831399257019518334523302228455044339125723827011343319826227157185077700208127767402513182431145618404913600071996679126670441128681861867026035014643099171035849874150032834667989173500714275533865093390990373813353723055220336483831953706714045637707667833323360974443794431673209000446529786456966704765713972225503359720503570477495516413365251294515404489538926010752806155034606021129878961009320945174647434471119542203215743856188528091518846519682826009380832266338930937728314855381502861498315061185716747801813734921531663998694998078968231306365932644910292591997162344006563019633943852934571137384914419968516737686069663728303379539182156479972174549290620296509301002228515775450195462551863134035153451122374938884880467987420312960942446446194217460857364862503193969452309639187473244452514811701364263912178464351003116243654320586267543252885410182912860340612029831691250178883187142005209569427178389538322656754450149031706982718110581712485434967503197915640137052655280947153990732800810448789602988847377004004616662342759907610068266863593503373006305925259424132692724595309976487592266550388904304128219521527657042240039469519243364271614880852868294344718767078098008007000195657371564519018208539479481824310000479857770141275244478273099607788953473850640340970041871579465679728309190771771450480382803923197531365478556089712871856207086919356686431773828773488275559091587378194345543183271634588893273233757671456438037566263683778431236096114231708531880416140303416269920089330129762380090972342202317803241650367821911284230253077706077025695829205092264830179684763064057085167579839169248371583777905704308948868313185042876108310868591815266786403803748658784998843872963337132437925943876052268099913081700976196508911816360872501585131846064414502036860307031961043769560175941836617582255749194881447440321004417210627624607368945613707274662775033975210947648546140731505324101788666183190767155690839159192811074453326299274650900284233168895568419920944720556849506367619146770011301218290324725336397679928774782756080625580625635336954835942829511688917462634725828996598185569070230863389595203381544632437812688664773220758156794556509270963986790852763992301092683293866974326071176905687134059434697838312315975286654498024308919932425286103066613212721390445682027818945638652901913155811799863847376099997495369342861747077532415507639769372442992266276838144659265210106971139264282122553076011009442583928114548571774317620562365524801059269710331462023810288208244421425116432271220919570047429859833676845482022053276360730641690171865201752314376373958092607310291483842214685560015976916923325178719761829814329400471291471930336129519139059875446746451080606555156408859171577193799825526394928946936868766205940828635232459666476525565297082468915586629998224622996414131266808164306181056949866741028238158490327507459386767022881787165354213996737887011855194507600726788117192733505263696820831017511736922718243609686166298939768649386521004806409994014612203187091521080945005794674378808305635266213018168787633782291697256472279520189925331188073508520132221539587860087571511299687816299608267220650932030763946692764330877168971367531308198136499016701764112656939900638324845840168613943299480033008846644456039616566097026350692815091522557572942467743808537769680254683983156279661603371090452599311987378104856263115077136732078909018483683868852240065359598052215270708952654244641155028010246484440874589247112538942284051436316561971509595717759640322839220657110959439888317130626203675179180688664868483005671538757748377576060369851737494051918375257592041228624320935679850791039835690245573298233778923918648222123657724764804670606902206099896165065831378273500249164066158844879034107939384319567831673756499817098474897428347374553275965365815676123412907958848931032075890230832370856408121382330902587509083413992723486290985935739296910448509110512365624968151918131041120079641830177442015179270685944968333843708666535529390225243312632168977292627316502625946214152593321413654926150591855704284147517023144743567973374459317413830568084658836426123196366701741837128775689337708629370343358550880753138631870308510489005865070849402703136880535001214019929330970507633943778586834979253404920383021913106513791038700832597934449087336148896376646741893831666210478943861043176242223201105617725302079370969829952770217220260277531234415756269360163857370353139489007666498473709577799698356864512163676598183166052924502347584374038330452237390108670673018488285637318063753542570511713918523181994008345601484648182902011031840902853147123913031643134299561654563424246568325599270331850653836305179781305236894720509087509258556789709059904783843418364258112326961138786844156620430932271971451376490058721738312305436338378468195269178284965090824752935414550771355204429287161495448000478041009934681164939812679514991757873688755554389541838787306316200106629187970067874404771140082254206321320811685980164541775205402428629336321344997979652019882265504036614990302976324352652292068489949631413338357519520331686519916045531615166622820211559054463246533327346928558015219017053133337848808384051035192544822872592164955370854319902459364052665221292987700726544903376289180935728732429332069293915094465059095178426833240799245870594948732884978873924314200236740063953209362330465604353487935897396067384621733631979756182495126519983887228953585949827568749198031160984238192943051841258806718462729998075741946645288045806295846067334713765216072765650421220299055517892301874396958904740431401083704757060067575972228120710479792526397457580659084121020435130622007612486410988221584774513014457988132453856984874779874251833200420055521217050999076031914416668582080583161921703322484687667107447605671144212439342817535145751232546476654653477456458404913492802342981089683686908441460655965864712306901576784189607161244923080840969523687432217119468882344254774080450965314289195353406725892468957290096457001530904460621039878939545370682998074915147094636027861033932421221644618048865982763449706352920664062495906259465055068389143425516715455563620332437108184234590818272206660235707654079560406018924290599629309570374871406283600082795750808315987344394280867483331659410390028750549905977535965791981203630166753755032291062808730796183065310046377224787349040853167093673158771230782333568164672528307438217776913950313699128285196305028951931712509020222398310723430204821982868960119885879117389314634945811359150350440867810513531195186466980569849089459153498809687421128164901662818139177487678467727151793659325440923853993434446193438866928188104652369816108082163511132339266041253607284845623629853754631914209872923155244515248677948949994833517250941913333571097636856217290523835065287433824377604070166647317823544112163063550761510910389193702199181869188376002492936573377935362473244355003257237396203228042924976878736260775439179806500944902056540201665511027617503620386517814166794840777853632124016084807337751593726325399906628327870413678934679046351687121633332471774001466523040086283336095199775049871342572537268561887385544236007424995515131568013713373218706763747033256768603946214679959346428455779701291435105336062902389080016121159339456206578018664201217936175762777274826978591077977458998323975981021031786913966500246362521996132895564887613063638091755779231730332922053832729568992750650518733686443572134656281866296798871970596171071743858544863228772806683293467357421158049057379167901675148262249793853691871354269683926521517008123930073201190176810582010908246833567835902574222055049837435266235701430573346295805563316786626517117684086045574046980284259489729086255253393821825157460343630637251666703958770252779271883300436078921828200320929401953385955883036160375572685756524394733836301269897621249007187250585482388318598052635113558613416592550444591054924624402301906977511314842862239548708222876065753622007609258666418706813523253678378270248433622416006466068497755193353895377947871453125945912936493086625908505100866955177778497941425432046971575876944707111419671718895213829475683586223288389828414635314669749171143470670606990783193077743381219845399315003219761870644331044674932044620210712369336978774751686387721102550135159035064627946739727423907038648180312708289177450241455876577085841971463069028859773217576348888278405610390601416721819539248171178022384287397078614117791881385962696922794725416076870443600730090068296966225372632901210682811799314145186037066819865580455810857135956755722809425919629987447741583027306385950115066838368016142575407704549875753129904205003106499208785922870366156177877455125072126425155048321858654843254095908290074763787123428954141228855454455346066538547726875570183096724531010922565457609308511699078637456369841006425380545711523914092359681306086545112784689651193450242698392807365418176288281728377306448223917599049737978298296403987725593023672980484437869665417140714097191144304713419356385088364369146536559376851852617279855999884105476400281080753006972664956493939668869578881197641188304025528705699190525009847596540032434587262298811811833828175338723942121440382363032360188941848196677042240127507099045993050140987099778920736827888313433204279731336784855128913485630662650978074481309058750251552353815173763205792558670465652639824025863589928783154604970356031366745605265260915619933563795405483940796136608978348911290668823927583574649859045296360627148409690148308414457556703482322199488920392501656136755706536965524138390825341823407244998429528162572623926052976335869585832958197267911784886345808167564284165608797560333144938288299939798617450622750679748865047828496861279081504918185293130969577645977018925793648429759381164067195004574145208515327520954757668439708644620945966249698603738971959174115979351437863210617270517745257293659165964214504149587780247033295000217769063534281643453867175641551329264324581881235613789330998447062594311152037809163578573954418757018925374287185831309749991043024123327645953660203783625899380047510663742566889531962703852080168315752707515607307610988528811695700643549322096500955330033406051541265164626131564087703303485467210709316642175114405909376282168148542989829211647854786032309681630425648971807274564454752479099694226039559466875997428207406733201749345944485844333752771719768076306939235793310334811016980081086791367729860343332427770585357524287967956011104116368557314246859344758686356156842775707060010581639891827228384764047715197039925152343698871905562074356755115986516719646202987657927686539359706000374544863491884663419693816356969995961302536893394729981365262452980621801787910176150901039055215124359190446176416166696522520639781843819735183085276807376051737071577612640286264070155390928338741886338487100317361048649604788843182515760887437623279890112277534966782687389850595807083402139518196989375266069591124180808445737504734034414213739747190524725318942337448753118509996913058005193504496220861468231868167036179611997528047094169078103701445863851701095425654804438608377855888066173559099003022724071341802241521630215089019161933473107316297178696265801922795320861010272469703537700146702098604166824552183690187373682676153681606453843696157525765345593516225630613302055791327666849309570942155963622559611168048472842114062570013930122180989549824522864812838822443464876743947607228061192371485137515648252290717014615256953505482100059402184896640460359341949466278480189038019932898597464548533456413175061534235557339751436283516358972834095527405945913762535026080285179875284742553088384423129443619426634334090616281561330611905754551771580921547835510332263030310439069894797744636113782522550229096302790090865807017100568949190606397490855039703389097517816330946089685724910428661966187881664226427477055901801754800866923534210380480725975365198606102780717853968292912728783913009454333278223825687041740368545458127985363249269605237657052899717751395093361590392713383420901073711513736255579134056002551581821491953189473809087020332974544707766954176056985230178308509029563632379467806448718963063403984189303589851113995556351500839447287417354129295891255298678027271361617274610643973995678042027852153270834433301290025985370285512482040809491589168393415031508479029768106333979203441223229378058581501573054219248913672766220544459717602243139469900270891484196209501670469161296281177420972832117252308017675548521440689232749694233394429409541563360736411700816168156666815633804364681396251482421328930565114956146791022378590169921374544551648036461053759349958980710039334707533364809136203132574568109153188696093535192208970454450080772292828591685633395526338902553385135485800183060935614683990305360842352118190925822054735454289716434359226973538437677347166254596062402875915974696823717029258924244526539755813732076254963609273782601397311395863665321850073258361606432976939883314505036246317832504915177739651613012487980389770103220150745521402718882208732935492489401207910122084882774088951203022951818872408370650050483239999966196590056686598264880275076962471375396855810135033766435620266248578659802170295503519371381919959168060851182206240310144198646174355427635851272636331340806430327583384730878073098490887792203273206317145516337342683714849423065695993055960611775916005219872647416191380779380447323320316472950386515727595883634418104238982696739536878293850570995501750835680273368354420365804550567459334652364104779826475149558782170227559921484801354241311359109736403766918185331220384777159005763395110785593630249452158008604026451955664487385119385577116184074282154719299623822557769692476120394239618753712858552808621564494246964978496453251747586633956204804319132615070956235469365967173626000920872627503617701443272779569377569705378339233545148365861751803596114419719619444681883631546552838995090929671684179020494662293621267108230875661173749824499397993239089780824479804553580291968180918473209786383682269661859327758164166205364559360231956198392495536732622053062857939409818717542378481776557181472056572299559630413512624410371777208654050198319061958761684985255779487736808310105807148497868563928321684401129086117408126079812085184982962324507880787018356095750783349083747652886944522724401953970272774928777172703385957895319251095995297648782467488904137127320315840731174088421232047277565361398947923370657285613581609732872214741171112095204517703227679683390228466388785247780302361913778446244204076207181710434392615355411421237688941989296268276057666735541179847405416635314932410450257846624238256475457350641361814378348427283366700352921046144048943466959235221312320454274519577937644397975316000010069947107967261502748211550971208723774302770404273856955628147303063578422829708936660346100579658241404047266966953671164234457013635022977363511640076172990355897009756839377012147135117629749798577732825872926745895324312481453912629209460931945832042862674325853359270814019623323847908364153699063955022118307802160807265541807780584706662980221236368174033944190296004979857247331242648248393639252110939852269336370028651204250588277143504105313905724031389637209055486277950470716212894349321136532598213146069244354387121986419510673614751915113915725188142740281066038904798065691917578634102156374733249107160569151677160740422218801241888967139271545391525410575776245415040104698886715530065185937368032155536564047294642534718809611226971475764807844803484782429357906500899718270635502604946860317642038206384120281763920593401737173562080495974593977094278740220616549302280860847096585139922781814007003456048516215848063063082815922243237319866802095395007551058633389258262928571224993441085014539029993913636416331150127128723609790754185754837151786832117529248516328268174913914910143293412964183256342310478830686366220289298599645416975383268309639032964270639844164639321877867182515724849369847835455948886009861642302560428333089977567759036996025154187301428662001329921881174106663985648955110421814302008840582047596265033297074608494886669118679799724645238593340045733144273009514420564965577605980826027882965905392193454602335130886602135006934181725878888567214127232208662912348294534417060394259907575423112197945751401261520351916220358840369821934534362851873832257690135132593048840767331218889861207611950945139413830198060449270523092622113948992537202501562973981194538366672694124063815628565081276157195764182923755864006864599648697961551621022401088839490842178775944196515882045989792935270939643963954529615196188038018238817724813416857813972789300564531867948917036239644252658505288396495145651851602123206267939267862385808155649720551408104716836707669023354542215367602425815238133501200492852971302758251007027003396332163687258482169828297242392738689616764878868662443145845659424084645379365303623821106432523054712578115513530817266485106751451364439280026389847217526894993370253116872927124919016945234140025530057533590117621526470864403780103901962015183764044776574292520052424655261176022947583555431297826564692822252556981425664788718296250314063202799874011604285097632219256405907202595068953143250896549269730198425503702025254530369497649800382082347525606303951513551070598943546121514028688757004919320939128266128751021591498848609429885566933542407272072225313114806959847702327115208146371803599500861387097261770754100429969676624753863007236719145912322493075874312611528989808436930460928952386767620913939180098742806871525075895095459865581691434496725070254386587307989306128357530511576537079119396748894761480757723537409279260949132225562305189829674203646477540372545817031646816469289818504618081417881595391813202176011325068478852496335720602427656577559869611280093874120839706160540514752424299421685046111741256166231954115024767089813758161130230387498769612822322450701041617134740808014071790417231937588001038640683286410624292877675003849551952321819595842443163308155339747763369769056493875673711790072280833739595050307816481865673196862513271504297734468723279178077730566430293385305317806762768415292006167211705038109013089165538748096592641725034448522314312350424353095211878658331207303494666331224460949187275229557765280285333408598860746904188677256203351708950441548534839459977877104861312997845005885405384792418161694902712742535258457818981474422225386425327753477303138251060487931255140758827280710449692629792926691635968439633973644794083363339762754016583957673861943657467387749973641480433426445600005914975679678710558159520457265500982202951054997803348378625290687694244329733186447689051215987741412888553564027920466213494913379047398397249572185872628425643946028350647831303004032328546437613712671743120968625990086009712381302084476345158655209928779518346291488482875655014236118505853334431001797026235602409010034502667901991409539707644747417896826716881910378442517674337343808794736533157701804826194643627681220647793128008120014563346198440904653179838489700108342527011883613001844722062450680678556956988658301770932805848350337961537620601183823886786492478340422124339800676050933739705736281972406965298648987943403851097735674927149736017136869062935910744730006882053753985490334164654013667221325476103371322565288944734673954675169785825395536995067293616838151263958581668460384958171975958380618486579465638872728003579516363616102079028567152113204561010110169368187464306230118047405353049061670010533482363290344407282230457722158753213523182682671368050357171252853808768150526803412276327345524577579156468045093914656218008665416705210868475963733789772676166578958926250480375999256215956464124826125235746297883522060179669959428356136774191173147150166108462440873091883939379129475207097459420093037245721308697021423553443356798330663609882873768217189245805573002556734160078596840535630299755833215177985425191272125143451036528128475532971556769144485116325495004542294522584390606313365924738976261915293608250356755898444944394686234274113971957817199509861262151288090450028693737534029930173476040313080762866542950326274742562365738031269194566484684413556265814296275594556010667193863274104057460943783485026230987357118553040258176686677848351079137460441313375348511317957935198758660133955961076010551056121507325480270142088425530953064862574402542065974710023093996674285017704949390278276211390871299095840839703240234429941694776457558325931962590008270276546694991483806386509756886964037287840871229412529527747809965986570401460966229386802456677342351829579148712072493805121390145079040025592877553176065870081345354363269926643638223768027081446087433917888944742420254719157556753055316745102902326277834525102287819384232376998698531439986311533207177966499811665137255424482322827336163506259722783783397948064182900097557378529002449563736493740310010745340716733152314370837812599735650582347126071809446174127687994400987141652273175408112861881957097624138415980929907012095414701992266366178351624866084904593146341899157763887410980764031355156789492961806259754433625698697697251842043230852337839351266419655025061178881971454205604327983636792181449880758632210882627355231930104973639568181667886991135624385760095670448549380070917902933611400326089583404338640637531363748370028961605673213779455627093633794242845206518515355126003769021492001642555357189430919265196309708377304454460876166559951513438997579082977863455759074636120803363263036850778070238800921991808970065708077454231450600915356561790107837938054025299639144602325157077784378003641254690272182354981532378344158619259456986873485683546942246537019107871645312265862379997401036872132270641433890461148814569811512354417173620963782035299014419013563172409880143290496629465734639311559504133996436941883512388724064657490796802002850014465705936016565556351259900213710776511442721027587377625170514687892967304781922640436247615590466962265397350512690339141894652805075888149381893854457523774029522085886148235024074336277745220685177794042024131136437752055534955801468188927504349648917230207425282583389080286894791708843383937177096827105545495792131480852435924837213765322577780413497563186226134666772115172064031295444340683623631726646323191116405436035376522351697817549570616778916684777385877539690992073652058810827170945944302933478431807321205249839821762593466578345239990127439624511338581456568691823478184994054016830851892356791547268872376520905849526053178442896480724257588999008015640693705761851490963188661939477369300732183000755906947364086600488489317123657533442995233505460327614727844379709502374497478889852295002713031720399244263284585814606832299886532217979469993288170350936715598325520419166506717693223121313847980316107836895285936990652384896264791079461267177110202483059541523673058074779193069252946796170308501288907650406025460423373192394226483292959776400325922943348908290573317533514929339716117215561854524693644079375083299132604919915543075587449844697662957623018119277709823672032660095114053904947015469734960610530605709423930654843671566908271100882366581973524161235313664315649448192697523156137431541525470583023492700989325489151834703033247351040635426417730802201200289231976592867426372081894390534357245239126410759959015786838386239282366276810464236371152137093004632836028098653522391117517284327000017462185374536099409926133924848778795519940404080847748685155408640041096484121235030320911912368774420355137084849085256155814441145108020798182832047422943394626750146705594765960228446978388251459009657846634251820962699072924533101368490759902499899018785098260197887814750663729600504593449336219155035281895384474362731174953170269325026413561197523589021961468189930888617431492311669689906108359777654479358484040755593201059665917661295747185444778246343890847975288733716304123107996937697179572267474354289308438608342445043474039957942922690128211071882057372709886935458100059534272830467856976015237404792286091426158224534000003233989211103321126938223487706164268385813724387762474177885584624912861391425500501870307421930279172462496621947734570609449828788097449805819437921778024300897113640204385271366335988930627199750145942488967589567674395193431771488364186041271840604196061302238482929195042776495471968569311265797650440635986252973970473206607261051731771563299954835019027447548041312468716523530231724289001016298055682003191036226514905002334691480609899475229068889195615309370540713447990963750122676514376024363283774081011116409161960690297123293121344775106067391803806769167450084542416661629400388983081294113813169201122312253419786383011929562815178941195068279684725139388951065661080642523216844759323933826206557787397868401698332354909015404140768103461762367683963727891379290084279599427616332634857631582563521798210664629556530779648472327629491490060237259460405794952656518468719746794147612851855790090653135790459352969044473951767328791434790716783115370562295628180913361465925008948395025415896462584772915163699762105963640748394745260801694789048036172601509029814164430929658653791664576200443854851574226641087947101344121258765176042822791807950452321924249963979888670261407045021919690458389759190132663244295981286916420238571384989038436932623203777521877121425768576731641695259865879162740607336861435175132204225498255330234227680701334168598239158976461865832736039805324072310955921354677426220236624944137070968803967226475687141669418186006275126274583367489546194615310862901697939018971438340339564230076631990441585380090438657358494638428838712858736034500991525685530772846821665841884763178618631870029174664821340159386377279763659076632149918968698252888404728806347300071347366157602466830073115637478222610349197021661783919213415456652885760256899650506747118395887132002112011915801799727775485975513588608098051308582296212334002304039262425585816757655452807003790865754301365012691832978921752106810359997597493819847429137614102058379308783868689477275656081609117497908141856080179833850181265199280909998179824318293912821369462300738176566068103468378187167596519969181123856608721025091054375873461552548104204176772243758315957672915840457258777029134809827088058341609187787393426638340774169090007366206519479949436080921736131920422646788177284170309264870131404445953377309334837674799309618032866489066019895463295440027028479025117817601301366502934960393429085960469364101105399346310678779674440288568978502838704149263464851602846238351256874333684023950164665853091898850742418714601734889800712627647683290983418269971761062867448194412249024057020090219357208436011200062567119712969299643613573671880296096465503222127622521471145783176282675781525682921892731189253063304218698734367686384292993054915495938253898746460220606875446277853194633867383396700245112216441471843073838986665379301172635338412680049738486171009997005074906861006131070044828856797123118628113394403668193789689968473111682277434206577614628386871180872152363491874842927302702597792527935117124812991492928864566543840879314123001447932666936469439965284051234221686014743722693992253492295279564212030438842941420755456429650315752786633480451938295142690806723656874864270744243839312866938317161982580332729877006702165266794633487195837342329272404737847063639160781984988553564360238735302653402602476150300735790997837951306224354261806142559389150598058599381499966116795235644601303229098066180395595189999719132862961124004919290579451366051859425501012255467414094572764619026908893783301036774836041542104621527431937654677479844921395056466074959546454256576929028018189227977988280359190006795980985671280238474457814551716658598798440266333887715922530665402652341379379042164600270187644408379541018112863825340442573016744745102280806817714070534822376918120169799907237638325521737430713704209650765436121694959869931226726786562391770405322853767444788839510605450167057163996379651067569013239597343245209873316404331093949925873737512890719448136038788445304569155817153681242721362380245769592744296355107746281016564270836377183889975707792544886475714683288055472091543003997834877718021042869737074498332765237769697440404681664667817468212275250281248373782598120830667881847890749126047525776123639779864845409568378718409793248580228230774984946315123222003607947549242207113990236911965624951003860838195356799587134869317631180511528940185050646654702945261760310574364512289828884155826386833954016572585778019224250711327689912426285357853696338714484724677838222380255120353191196232373547213564111939992994413342930042782865374916488066898851602644799072636157309917771207810774338629584366125755879675648849721217265846356622105417878051038987454963571431729844224543174531890305518881460367220484134445697787869698777678482465890451000448900287515346254248262484847617727460469248760379946552156732652866730491217976464271541369525008017723930714617482694582535966988880400543017706858063990420414325145687777084504354851445063767047262874616540778419822840545808013248725335890488671053940319137329362632411534783889216241870285507791042616371983385920514656404152394895916729358907469093442353629834713408836442009839509460691176520206814633792747089888057417080356250302706695122193689235464148178560013862558273894766012102558821066817032800070879017864235703698309340630710107415383297363347084132338986585903468710618063135447789071039992790129009168181446071848536115864079274984149014529859464724210040657987327028106600978580124324142875187569168166240880043997341439076245567913758658608278761156510655259365125281130209237635016228104627642403677577135620254773886352603285968318857561888905492419294877289242526605504771842853624197597759080777901395143313669058300905411518781814842702957197616103056182011560724192685861256152069708385347524238710408982723083458800941109613364325105052397783606535376969585397497824084611957642673839963340200406520389136328441515112330787843046383417480721751487845327950986050919000973664768875126922667517450137528231391654498752167919852039796441287727831071263412231130907111604598370375221691085715265109585031310143259223962629837714246181761269159815620209696130725964209008048582216674176880239453984232688900772323459351350778153954191340087858281101404865276199604321608771918063007478692437739623680190719759174644733561205852529982437606015635845380765399199941709890362258975549468201145186932777109779491522653588061001905490804645699790767949285634601082909819247763805570787620089696990397862418608509998073610303780793759060645504687934214147991953398276379029260964395833887895241414041011580567185766754163085582079549639784215944211667402083928052727838108259297252917489677099426907881126657399444477477339064531428762432474841524749190642102867007427980750520966576989090068786130124949358133710252603939184870022730510652525195944400743408451683855918662925603518871513573960248474623412866409276561012654823758741851353501981556859791252225369913251042718359073559714822092845414787151207676857511307594512563879767214312255170166171726402463189473353817579801758869024964676638469108364976263943242147221245888538896596005072444315407881695568923708229975955068818454918151989663958025256149475601826185283348077988135592913018943343689053602316801408411198520508851491484507392017809215706900583434514123063064339832660934307819720532509310900566834082928829419806421635594794093685375437728200365431663211061336583044136170878008469565414185286644802293502656221107030033176409013854222563588714223957096485500773332819767261691183930594810960614443296167447639236731541821351561526281061406656524981743219459914519839047096091348798202912471093831846537256136276035204610671141208775354991774251332980913881908393837434647026547913306253548996806364445475139848748370084775621286259060433865616383580519564668629282307667583418161252796079571384604456051467027803893372993936037113679985156064798158809612451382509815510472354639388831019823127395490048701323086559795969485511254309358207244052896336637931760392406003595444683963656747098782463390613385672884501476743344853867153743962468286985458066513806060332886271400888502672533289984849391674260956782932250433304606499680425633777141269188651634013986672661078809805165641176982686351639017146958694065237105151632764801590134370935055774643447724456757231271738819749756046690525098122493736613133100596663020638854341112126411507264823159243105893295849416207681064848058093027655758935718831735989035260041089719288220298486463879841077041650676775907232413888346303966880587418748334268927658452464099079383971701515046269004479242260657537117715323854145719256286282412804312501240481402518027844686827625469131726694639475409235155369446322848199830104087663259369436090074118861591118874194888696610833018707944236331666263265983915489696236965504414796121352908153829429516570807529470369973119344769518259698564409304149236971194832364381374602997995582249332101790461710920730768171113465511436659407770763281670623699684215778308160081842683694000363297644906702292110110311416651367445347421129214029003018034254950700993859243231654409038307824574766126010566535592495454970542907391725053405132773759950577009945565640983346076966102350241892392391771311782060964409263063065236177322578302800353612956015266998115991072866215972192396422315151195031429595017305874328127409822616088829064950589016738200578692718307141664867338395238983227662921919133539205798217649835384652709947668152248053514735842198558973104780682668792322229479009518347817989553936765316099885010744610463140783523838533183095112518023480026576039649836394503287962948686419966111931992440095770208567781148981652429708665592513998795650709370854205050399005682123790190118338881440867136215775575672306205198432933224134766976328832851978519158041165438313466006614974238236635950690765284233231090177620893481355496914166283291886779269282520788143794564948376787725051377256440824464296518960328509835400636476064341483051832499763804828476677372415807835273298936929705265177689778611427000100753475888678251179575101144298626691655987526728523836441849548593000794326117448271601306795517112021904577110234375256396726122900002469292243726280567172766694152635521848303239260121225523548888302660369651119197922568394967743804782602745868660147977700249088651461100852374042741503902318172833413958622297135261652611359542155752299330337212570021335173308607115790400558704429829359091046248287410928997293945856512344660349697267677728616164334233592603657878859395874450931767502855999581426921509065973913584870069380440254034859161418874172980860681108966146113135584883722712022042631928110022263014644979854697898523683128130915994996969543351518821009519787145757286986611722217273341793303841205990053092809589268681401116336895009833442913136213546194512239121581956585351205456655136177486736872516012863949191250159309762661535232917370933379894419261951359041024692197099915350240813370133833918516516918489710400847905931068155773893830077689548883246645911124308529112728049539979398411174227693278511571242627450758442545920754031454312930320042750187551185886683611076249465452218838156560312493783389297377617660048725168897859988990314315322049904068996161097810892855834381395244738078434703438439307738257265885813758692287336514529806996243310829008588868255964264212691431196277240679579680693755015926806081451996755127188379522102979423688117366519371187734835513606482998434702378908754488035006686191550167451171972463525885067261635507330949700816525548160896723227741912516755074649491923938323690400413010952756802001624298697497996789582740976214077830136449926108316961072771692639134199896706188650846485742967919684192104975603688510371887831937212247990401285782857897362202748107159161374938542376920980692197292116300168930066569119137120660083716505399801167665363215748739365567624862014836056547601734813889610789745172658128991534577859745339323441994949806258206441639385992561278644980091024463806849446171766310482324223465571547483633363385988512548798222522698113435557601494022406268273485890647726576916605861241317805068956528971468679384807400659512768480888615552715233873468790105575940833745527688248701249265665504183979019392878500675093730614331515136416020062821354894885406845068139163119370964402684608853688275733440913566362923833493006474334479292227833751463588716081134472110186276425394565183681886693468746518473953213223873534241573892696673611052961924089586461149419285865786666235029646161947835718864477230692495347248612562889611941135053879475571771014870578376269631458602046481470436295771172990942647865227399094422123740548605837643602164312246440058696926603908909601893004130174442408852589553638242838397040908288138235595459523607016483189139696788197901610778549617672896804922338779416370610163972614655758586373841668136945696086151521066493961713418271928492494284504759103535526611833668640900799714008041786992949020496015983671106618049812925979516726484474134542497746930568795198902312522909727778159172769810344771473662303538394069832141968587209815776747511300948378079271580885922917503433643515272501127566363073288229242203024447664829621958418419504477556594531279340179260432185695081885011854522317475381589431325788084962348511262061475811558090412628027668061247040882033178523755755173332775559856346389876325008893135307063878780333036331331891837269777516761135323967486623199594074363214278117863988379693380361364417647895361819226800799239281181334669623303964918447268986921433794229760336907974095431138781098196575263195771784055249635886510807047166322869436656897453931199138454733259912296605595638717632665063336992189129140776553583967133035759900846285645324610596352438399435637189270604667249092906102775538903476323484473808606817127662589680618275020552951440345494741888853975915339354974795004210151646004167273280532429679372030502139118333566419049261575161495499170009693276437757916566743587754529938294405313992247509068793397370677065782095299271086143429833006382390117380694150480158822544311474745751490779475016986683382478141812637871973142895530441767876931770017828256663894653564671182838950966669590756073819601772820756544097059042114234903558757063937536540852236744079226730283890442291341453098330188340717619368005506314618298104573067270622351238794466866160223472993797768485150561576499740945223554515834086326962015220556734050404689399054727527302405855035991786563774118946084366779819041617026568952869385192560233525731274081585247309507121751255470528938208470697036043667588515237293759955354481443060664220945579761594844702119237662395363551303039277965101207882765698800889639942455377407517561057637223368112458739109649594723172380675083097246102099031774815676917218672942911220887690533790404949574614884397821809287999740655509661604957861451137415008618007579423146468096954631345841601791312681508571657462719689860748204522460321872047602478777445456164222073091299976586609132729785939674770198354690118616544079913445704311244960793887333973404640800857792157607717601839401702710164689761534747102340600338201263367917120703032514962634617236909627459068299889996716221796345231350015614942490131610306121766835070309247812431535573870387403703376486894294451928934433299128770058171026722024799381290843721012607600193170583885925353697542865684788445579154966689365973249193767912738592800251393540687766577890865083951639554070008156953937633940046514579671643586471693412877457359498721158867964237300618950745156090126232194836994855934747771867794565689003714233474126861380146499853283006932150718564260790314530748404500066754432436378263121674761567278618013835172237615231072972734769156412139520483468433461220564521749204075789576113726834753303945427722207220423320892111384571763534522250071594553296101148472325443588694433934643195964600179693627611391052019987922899670950722244643445346861130550415910754916285485283761153209877277369931959359447466852043217650815228257362439590479085170396175205375063132755700863227287487558711652264002727770434513961122713799823284149850370292399304671096782132180971149670601118824674038533916207486012529229694346425707722324353596436257907130191114579675016643458202588604965201790168521617254741806034564685204967369576085072612565671142622043314936535480591480501663279841844642485954442701537784647095276189721789463875189387585102942518798769076317761145531297339516648401292281911007256653138832980294524142138648724953993158961254405774708543090769786018139624656865155124382793379631450593231347517597483251283215763564490335125572022951014656919575477069187211963810573835122384214364351479388848760815356686022162768622042070742321913898335627400843530946908666452149487130305435459846829873994638716239583284442342497849583571606675425637845528925596252172096429491582053962309959685340709022724592241839759493203996430259998436336350060880263921098211174458560512146256714628226563577241083713912588552177998313246850110400850974228280582158381508633401994846210682623317470427512837226867886714029082600124093611375631263001107077730405186604067406387439304043892634662118126160617856190976869134553600285958810326575610944401412011172289947817160828401207825828360685902177690337072036542558870215273904864888768108799469290145024214038341978668189884718326691568685884685359518789449810466243469979606301225367697915036619537848203625311787940439001335816865888503799278833069172954716583048136084866215077272836764157390545691731731947786452280230064434131958375710941923589435958243889000986987772937389065035187385762430901789292641038786567284860198776393561733349758812312954254179583585328673734240237829057504604160889976974334310375866243366197573259493569980723355118798523733018650166478416073182957628819407010319899353806774162566508826891634147503744286924913748901473742860904256071765470297046397454142280459673607057021997511253672690330064242774632503954873061586271552692878596289615478847501276106763145846405696484455543000291611456900916412902743182274635987291836190040495485580577374105722690460466868215343439187961013299493884709947231711129110643191074858843354734058738571300368822866091184428025762241236954844929390504674847953650296419745404779074403789589217663642260879117974797430585253901086733271549022408697817724450790047948654051113731914145432768808771656685768977702894375033823134241393401383899958122700447146060877863921101476091619111857967055571769758959106992322802049627603249115932153121820468969082945698759948784265566705409837733655290415732015467802151632686932032153198099523012224672119423892060650313363397626124990839003726826130750623816062382938661477974855532775289454894546801325797238667770536927222445807744003320641414429036403554355522809308391121491723102514581376656589159056271176345221584558600982446173298472839729334443222050514704293304664911639996909159242146263773598854440787826716992431247886783308587659092073827395068124534827932890012553117027945401443163499939303956482678649869027948122225123561943631832373319968502445541996472835711245828598853374749964655221223064115780530067297130441764099345072701081386496012767882669830238399603060404385112492916337030417054727117319720649605384985996250881280599361897219911520879600675341952204392259604823705480778486559160346380411053647747964056474375930542014952506040367514307742388163558052178763745324487746856713333590252295040106647913062189705212590021779093191907606960293955414144396742118849683969896866966039881479714483147762891000978478794545098407645901389436699194011641197637884721408210866196192783271337043511640207446068940444612042736683633501954532040608420851675490272342995229009845420056891087632191865187029032847284952591912935586211858655947108626795131009139557952406130776590577822376432804965529576442317589030054170013746658309437484939407701275610214029029305768908810483348932297092455185700368899110806854840167233595030579413168001548718082567309675730041228393289330311193275316722067011888349552268856852966657664374521915589984163690606524161749987630799362836967647831087504573807469251208422486644684039782859964269543781350710789553044122661049648285950634031830407833382373270967014685143348014380957528286981869229214168357390319937380390257465021109443383582135858116759750738671688675513937298616216508184163956546640849583720658947910734857428384298252287138951169236022154325673708906280744509225065787876317071342652986438386891699371964533028598968452756615761248947568765252976089870432833240055480092436338353265924031015157864456210936328815259233307377357932931613432804224018897603175705963197803861420956817575460485219585075030451227704921476781756935927775471590317269105867848025349426217038588232805839634197212016673731446830567195772833002345168891248798086877380529241926076829059323002492739330172966058307266059994901719111388616223944709504337752522126038454673068941508210016834366823614867832961627689414584077718830222285767980611292920393052991646172158635893620376939080511935968275377221052951222071956744235541823436750991831673726820803698942691968891237316061618346123849770264177915700104548881694143583597488618428716177614744981870333156511678654223599519855424071083916661638837058210625392170680635822478355732735925366177865084669388369882544014647318524753080280915203969471954237904201219733299600686561219368897682234979436282998662156029222619855175950488069567059928253266753070249013534444557438871412970386958775731496318984972851559985569812874986387211956527616786303239194026821104502704031857101560012496812670963261080884819424517151618427972098470227460473552067422984187457511378038259743335043726531489192025257941320301652974126321607718496248053750611012344867537391904551478464093848626809875643656230475552145761131759843173628128259931183237352424821418872021744670801491272127890264990788850040823736987842247943049273167955952822205073514731115621162538739991523833393303489244117992693887614176704963142104335525248257690780126570770954103378123261662833149272899090878733333299736963181154054436604608309599335638399638711484584980593721620002183954851234903572875589218966649196244791229235989658035438245844667466810941828813669297002890908817591669300743882489335969650450121996918704827660851535227729123237009587088999211049984920782130062628413956291981957268522535397834876108708021465863062685377872278716907188834227461879939980823220073512899567447140205702558553751939728526665118288247447797191806408940865908889572360792979187487685433781143873939094693434991917936265181202776161776936491232594812915188554728844438592422200172912312730402982251512164986080636935925271396364832582473395181989425849880430439896300792332491026201510985708105073746076424139729233929183438147596155637245086509715702621114048882503357726471602103692520386721980393821735347027760808252225648937967182716631930228044903961941602380584601543156776251576897014136766790302963086298004096128249562788317897228327655707093581381326962271581535896777931517469170163199617038136536486094145319536264235113078806688317781851950852462645633862228166210696436041024201940737894196087009456808784610110852887186057306527276328937808422950712966915972559175439111220666923495780970002762606905804039453804851734192150406930438159725685519780258886695392520644275256077787347786901287285425735099831689208070843467722376022194577163539613075669198893648143537551504604349153649397351070969024358154122467547271972271425699877977789110929521438664644968688959689779840654611099602307719623212870995208817202657366876573916234627335153879275186441025377963462311429803663031848709809933797818634436650884234806358852513255429616404085402373174214398477044859801876520827203880794594388427270337517547184571471740632576317699221230082116041236638906157532737003334326627689268098568895404119163249558652821358775337276953678796193369020434864004020030443410108422983051395709243455799978034389111868165320054168854958532210668634463123967977568226185857080277549246665413280208072138866878950163735662214274525205384228676687806016000800765685311190332784046216728375094442147421813144940018179781392872901938335125848333359482165838946803443291461891836387736487745204856392991758893354098552644890724369518632387354487413687367695084241652869336231207617713204084431024315693222077053675399385089857053762386946105597743705186950426579153095576720974422359439542082814908298030660261227513783882370532469365688990300512777005969268020402025976642867079316191711743580963186874059625948104422563026046980807197675372940336796974120010002950446463239676012366913904872330404788077741165432165481962768503788561613994434762145465352204510123606155755892256619511792421562316368224508367088315923131696368862839347895179118992860983501053610557535312606355728959296165543613706496051316700874836499273732024841179601845157266152457371482217589399723537778476430188769175569576519389598514084960928937836488491298745151136040065236069880467621835358113869397124453215646023227957136518468149029050107770216360836391417379044620940371119294995767239866952572297243491340306120379456015404166735639065125308248573867243918891061813359217970334083980044090016102156731942589268250132496085424635745739145622024910120124363670245523617258234030825074204502656599805940112756940870225878884210043155672521829724197856558461590405530919314547625169653927536833935485855271139523668432163931547652209475285834573595571551172846301413418277311803025648391639624841707866265936596914893743517207785295918463164302757343511100053313892126347698311498567313054773382813002861456471580125952695147186813743447871801525352466991269120247921505443748801717297275154627717578622694700898305009888297453475893821729733210952247950068036381124071685671018131568623598947171157122913505538867495161701150115776235445249867696922670442099032800926801824310241795823514386953451775402923236609960601596153569002121411988536043931734561578624060373186233468554787663352437897215583329567133176142809524477272782432167128645796804760188356394593814536874249688923027464972972326718396885720013272356418834944256634203498145576854272736446432104421263450180147258117341039774674449779257975049476315656465480325950271399174150695231897080945210677697744002904808154671097303084170294926300621978470250791295163822262073099807628362830069237231103308807176212873499374102400709822495663302618411454948104010973200455720481361576228733518583519268512491707837097308752675488761119155032326308156670981428336218649988507664134536788840188834557777480571532574274462815926480862691247904065261503644064448443388900411501250443656522568232352461775318616776628597895721368733625643738764937228937705421945732322061950116484577330585697823923263680749410151644420722170799695406905508275599418391269525288938191663237553204328132229361904896310003141493248105763820262935408484646392390193017487502040788324616544698257445507591400313902811467598450502880872557547948304978835308960416365864360895095003792506536186325614807086239895317252218246085202891163238456662419845461015685889393253738800562500504583069280618614346487863148767843535895245868891092312761671305030086869807887752052275842498079311345109576327393204818210455732493234877770813448356418210098917575008546284718947150125022472430607061991158640297623256545690898418517254989359723364735115747999563813924357893905649113762871145583534974194986857954112852123149686656172618944113470044953835254330216855089852031927280432371885236393521299981647504204345411524730692522042685360269620877523968400285347141623567011628696542820717663961645205111991683424558067080317037935849414193645648933647653168074535572613039724702512097531384975228027458090066529777812700009750023753094886746254618781608121327765623018953993198526532340109748696788524576911318140519859231978558924194264898607997969930039957429187945281527446571419769158027697519243327841352993239305609640432547255232196245326605746190298283379106125797672987938240204070721605597087941159920319369650210851093697332466153972944390231382158761618360640876201844176084928949864173289685725561726679884234256489127751363807551327189145451083645179756091730042045071619150384533009438963002496398064119200955639095616647922757449993124932293930184761664585915583681842068562941848922932037410244521479226326886447261391619776330103340359584917631314205598461983435335930042164547096056383547739710094906214335940120814816163782941355022919606720766006873731099303550765591233989352715705117338793096615625313073897848534723621134455440170111036719918775753593435510410151994241235839281419148918058003270983094798541229859710998356431920602039036851334150356139937520621274088732740322057308662074527934621955139127499883677567372048557681236307026832734833370134454989273990121141394979023326588665643344867528609229196539451856074845074638385865251058067719654567102026509021321277325089341605645438887357706075275389129207292267018515448825513718711416132769570562490090804498719602318947310825434753116274401643530787187961885078107388570292533144320474277107464891318382552667976318371319171064333175048193739302091256402468800529828325440098837781207934114714431255805846542775669232413220893842787172262555255470772223639616894604036085787654462516712850260216664742690336234770047231892776133367324264203048069549425218727201667578596539862506704178484280305613016201628071415190341059367440590955607546869913831762545781918457771846366400395464035108293960753519091546470494655442385793082559865298339236736147525444005312868124131381556556317792561816386613587774129839093201107247447346481566202309097200450272678417887441612190455649166876804417446325629289526256129906287141043880876138047733564491667706713400136040126369449666150036584126019505336584513655076983357407551505363277910883210362829242015211898318256307137157826399572756601257322492376371627614882359086084656454148242761960949240209178852336297139266867497700206330913757376609286169501626439902575581910738694496139957986490559401227163519438580954356754596390698194115887181778011343912978719083382493548771233706752220800193686788848699963997288490449369308776765146988634156947291640333635198639774580318578358512610648856237878473675599696516788143692182157294306210566307319243014750767910831705365034894466554119662140502743580256198272874387552165958518859249849943175769454999755614061015697569121703224547748213535498113526315789028506970965726907924010243591386081627637039115505624199619970220866246195352780985410332594870330048341197996665884820797765613716938586385380956617191477040980955640662027659868569215254818234772154139681698113719580045569130604739758863761817802676626247589730379931487756992360893966530938873935877254014022466650781361785454306645519660915172604826192528809875840379932150041527865187414347147263160867927523209919881320931264143746729864107482095453946617321127897332381978679453442029838681775349186031020870811989928115645888063516768525674721219763208382769037207686303145400710087491697844873292273919571040729293793884069814782142729862991783406220492329095851951552099704719716015684351054264402782742745779658112640882115271443232631044999057473836366161621514639235317494359538850451413542822460593732810150978035817007707329501626392633299394996639898523054413129051350576314286470664090797725703160396397199008159857060185508329586087743374504004113595207130997295327433898590720988046649432029957861296027879551180410759271652681403733477416046618124397669975229799279919508518026600989543740550681652753917244046023450918207680315968092644279367766269432990064382212469823828265622444801397173460873713684006794093725472031430741687690328151006589596199763246196664450731436036088864255084389975228979395276673953272816066220528760991653543030673085480714032819809844502680438684557496924466085621045023377551663468411649210323253903501030641085258332684682342507898002240727701215755120045192196931317541183559770621554675549022394567604264058434705085888301811489807140288402396913497218025037549165470275673482128753175306025026229446410226025770376576160334066752992110105440325897342823382200643961226800640990140502361121652274670865947797399104967542113389928081747713237759929573696197666582713530722408093993294761352576631954754548428433890914574091136162763680046493467459879293283277089585253725748991982648415591189261686996885210553128863839981010246843982423839194499931035617404391438329050971969009118624349131583885943034326750115390173257700429653693839254827301516313083610637135595783993772706307183789768012908777638931027856381642758336183578532566209273089912375810528102591905831710852148178542143555114827991301246623371609311157991723896536347285110632170394968408759490942133881289488411407216005397374043351792271478145871243919884594215647372959855681389578422321971073220304778109896806581778617467511801004795879881632353975478770498774782493455337360324703748025835306543562350623559774160618024777323106050528095275429059772561472045713311073182079094148621906295225469896195106599210781430083587547658344211985993518087520549438567017137009146985400662136387511848337080433897244512250789996907469592864381607828806141896505472674370109013131567637517314020014776550915022151734126566591444186109705449024417313072344501897841987545022456861130121407959446107487188288527150683302182767269012855189425320041978770285875365500271061891996070083178413215759584048973993326527832588561013036301165578308617648675590604660551047577660617380905094070928913902163520054259646036456193764638263361619788200967493532969878429819961901796412403649550072229991374943841487472246713194125880078184519364698417841726569740820988014226328473873431253503505632526957365266247113356855121806760877478396695776969431307624515958663437902190561479661432703097938348068129701996438982085227346413418046452202775772733293576676036588259423221022899999734362431482002543734412060472766408353518933406295199471881972173989056160440740442896543707314023025161046078228748242493067993239134940160809529983033986808795957072976470324427212436197775998921547317991593876545941952626783137889358736472225723774795042997898154332892529546856802652951577940471221131311629013984168906679839484206810556136321640904127862071814143841559373506892226769064064753093755126101594289389319607868869961559025174336953210690231269988862925911486117179686885113826090322944213836516502640660162453194380816465024075012066465001596627887029528258491440524838647449902138698650344743611148098199613097615089474312106336231901027282891852065048324261712808148281211129101664640120931746537248488444986114248218846176863954483525368215164474548055646148921307755166310181560877634034679860457950345643130237960620955241421964215456006281707278713780813940972234238916631773461351413092085085015838523541298029820025940098824541954083518400233545344990033535628910081597387557957909903394570301520134296873311941609287124538668198137427256565896847226803009760879394685183047048596195024776970355357092384326156866471897326165735178973201561032811853604440245638974174455550908953648738270423425955078212063219168224123903273391835004947038744308355997094334620732704060974711072547865086303351155633762964433611937876460021708708670041896364642033537614506891069167539810774361704841701855897701991770428761626067228562084802419237175732577469557641680610314155083408819447677555153368479216939167559233623523581610721085175722611360534551520324258440025612228972740261036820887903523153151747781387597195034367951267643456096682717499386449237165993508049381023468703332330752330473679202935301219772976225242700866591152987873495203291048896464131143420919225679309686537469989037980200158830435348935435889276659423055047242113097408285567706393034989425566865930575401624825771774796058492930928591608946399702195857416854620128916593475679987037829609363585196724917322494320692974364064943354911124667475304260277944677043497788284212694572511578720390580179845160089654982224524357776749392359898337409476413515157744842956710370064300937220306522638381189619535993129126944252148619622100044279584707379014448611720994381815474717735444290363049018778229440098566303256623887945854833721029512315417012823473595868037850767982462994945817318198846051104465137611643523927235671719274352989172786766336494581958275995794409531699560948610846508102919484069098032606641288730493591576675179695473582575002879843869393871927279151280732319656623795610173397781898252478958725908756872151850233235948933672285364740561478058223149917094965108941256523273248247352559071568056304174547907916644340286554537949756704895487291076931044019580124495566003432739549772267872047765772242588174796756604945790152959843781599559374337485257871328724153370242816756017326843058966285802860483565786491313025942490325903898439673787788687092023744146753045809846768846865375241148060415182141777379671543455085534088983898069538673694515341211518142078869670804641563091263001317544430245797831298389897740907894252996905552844569997076902589517581644165457485969261556932336763839799826009670352234912811424434855767097124824184062488370152866211887537766603832239712778619365500950100013962959863098427729818624472556166503325153830505958345458120801885043952788441382951565668739349971442177595106724203388459613637109686785799956478895359389626860605248243126540730475627795351398731519661736054545320051468309681203084119705818652147934420325358398012058590088251171126289451457629677664248759944842824312143961205100614561325133553994955028129519315425507293706979827464172420590056223166221620225739287776493630607289831087182848256634615873284075641117133022219720738492509351219318466421348780893356087973661351807730587047425241346919475612424677577940893507092813281351120063096045599495548873120224765514912825612242619964601973308652274036020207990270466589436004354437565886434387731458899331076074189445084037770789910340332755964819239793619331759658678090634461918883872049729663028762576063545196341488086114248304136773921009943474898910213909738031087566403163668939753639178079282831015415956310339480069664233371026251291777600624914335675398622126806546210790915093193333861078593472600773117984784367537342831324382549020350646762864136845708644966906232021033341483039660024565746302489691774448830733061346239187003358086223157079631372809910805975931282308273725188975804291442773085215774423758898193502182419432142881661809105148564732512808599677147336093226007554725978257259573268109298085118863809252009103928540712041823289242018168919706865302743832421613858505481033024089113727373368687574575513961612002577871650453852270988594985374990027479154949491849299843704417855518292104186553826461501001134045341483312353293889429998742956763522681510870546056162401428942430464136124703169108051631079524176207048026567253465178362757264302465833515651050730901105679486727482372715706258876044663529481547335161918741540595896807967099961503733032139506122543204002744678021642597462068028102059575252430266106344985518008575754959737347462997787401559401069875559311895275674550300332036129109055298498263073352694209580787319697213604319499343364749726359189575594470848501100557485809667112596847113694585173166126983140278299099532337911239512193640011515879246691294465551148222562353782195868794785844949073198122408682109773370300480896825115528388191826985154226828556764911973252807490806050486053058547765326856498788629889379570621598846721594817412889510986875266074435092793940954509306653506336564185682090009803934652762637542403123412224435419390705813450713143853961383965974783449498971908102759641399125115175515670457083575891451364207440414480266722227813390253125103257790831924662495037804667390593982380173203839842206308293938360275701015993042219834496108662828681970155504010478147108694970022386356630209014640464358468286247289708690455767683432363285669167267188251314838602471848378885772867846609489286169424898895819465845233396903383093565556855044663042883419755365167598652106449248954427008112267213147177313599429977871259343287370411842659763826722232686124113809590548887753538316258605161522489858548087493035326098202449224623265317971312037066268604405544586768076007460618058102034012032653205689194371386374043157452979524035151507944877600547610502917582647080724168582296546209310411410972141455497439575649418658698256459649837783509962133741312938180474375191212442801182867988585655335705106553377007686384951633914785646124894978505435872905213770966056162654320984548783343579348991777932762524575621700821788105455925965274498152077329191417992086771023920421638141876952542338483120627590498168455052961154718894978133540298596964257039214753997058033170600607239676091907389880313553064644262459599186191536356565453588146778171937362264682345622291174075463379852445469291533448130758692753548676504879209503677959631131086056571194507593475915077944945099472241623114613528502844138884769820631270600429688878129649486596745568722621084197262782084259110965503634216642463316817997628580822634507191205661599256134974162795898419226636882917068315892345310727261827697970642431270098561397331108241014459911644689041390382449234179026048851702259135193727516122345628473552539249313825022486303040143623745861554750869723007312515853556253406103593184050218420190175348266571216855618124272937063575622061715794784865467219739271254869567105396253841043901466347617127112065498554710559768653934866440551342247162376223563119614238122225682991021649385293806444233094407466272837703876553107209908602030446094309773985240399973710986687277874381302509054979634015973300383088632764689887722011910524658654702685239780566361855285991062601164828293591802675190680554740840524734947087575498274497759808932407977767426790764048095836007257627365730412637227005468821961617613652796403492981551150324863545166428921246395096631319258498881397151371269219022685502696490397939538756914802166540801873423993877252169903097740935622827250016585899668815350530753548234115643184792633914824802978648381101052226162317150592239131406641745742746146085871159727625551143359082134684498796830184691928815590386889276325517947503084326671929062625528761095699806713890508757544433670388936490570540277406912684781601705267425940368227460003212848044868479988835906320416203963404075496296529168064948738063448075093358569980597324010484189858157653823728661330308052809721104410075503397731395858956768136396444076299873819287523197403377161853746800353343141745651912897014850427139909919052652817792681881044252319420752455373561199389308938551242355085370966294375837096561176509414569192312881790626558593737775191664857399037222739003586217319122197149299783592232577683995867814636298784024763162323569039534934021391565758676544599843757085431482460153405770811035761357646692050684539524650868455065674061923475264301609731596471677697318957965934571060151309493071498152807267438517052194578026559020365602218317552688098155769283135169912963978437088261602507294122288853781413311978420349684265347911662935400735228270246811975305987290484518122024174221320971834708577302693257408770891957871742970055019967217818584848386202934936079203265678150078896222024174158812270953518292841276774435788020860283177705326156386809643569421213715520977857042980794842384373089269186535665477168151349170253840998211315748650095381382558902075842473959395214542312497343166077592047701627678787873999071107475293703484925982016672833243769099782866999585125696006362153139776290377178617715487673818534096869840206688015175258444825728437880195954167060369124877936002836737823718580044872548416312341549520211331594311009814833979953038882164098204344580226713549728763587762672596344437745838016208255385848621220931089019673871243216361592197232334813707175537989097132007293801469620666600540496961239292447264724600264645745415335333157008388294744071070342255479380675779889517938504903611632443332145655081795132536704726533557359733948211813891073436722138867899550623906274179340641099528780322773347598301191750187915749315532175767498912635428686935810333502952299268548883208712823308569354260676887527365296604211410652829844797830329501216212936796223409788194530204614997354669486337185842178238524764354204879151291427275986631493757167489097573133070511969888579840311643826995820813368353582905079519459325535538223671044469569649500467603637326605915263410585071421831585299484336705159499346301935015992618465506269449642022876151433494495031868002575994375014889578678510372425252400299628285097923687482793541879183284110142317279959184361340817483094570025731298358488768550773291333180879726266456223896843534140622312700355627713466571653727047197467097326741498421824048007137932499961010813637470832811724769362910299174812896032263064291780365705884674232373844350544871545324944668584838231592758702476852784190432606901955524917642862421449827563961650796442070928610954668536721074595092973703543544606139148689417013249845790128795240872055676300540177580066055667815490981208202438801977965243590817560939586079466991384845392215970538815445220769502985607528650069242342965793314954495601953016932724465919797140532494812246069756532455681437271999300735203577590724475453718982160524847339638197117686117277210978446529908140650326498521010853421902627406595510174541125673520573869971606357687102674498636488996383533475209372010910495836859111488173617585577992138476539198938072826803545285629359823864654064306244077119963235285004265105692035107638460388392030438430735450348084292082665747686828570790701143010521339761511263089234343570080069210656730574338663612781105014248243477941569634525481985607611932171205911483860251478353454246754681909921160813690477632102763230552731716881095369094779220556809528843808998129905171689682151074686761107951755434990832630729517750006783331987423227808570990767518510985538424911302528255312236208780756070709846153022442222773744000611150130654540807010819044369598043907052155080356844045385244633218252440209477595367438903257830930509083370729410694423760049968607488483258999110181040296204061836387063763353969097859921394936313846278053394175934731034915097806423272085236526115604824532423113457317422365569042040551672488725560202125910671426666299974291624206222411724766911456120946504148589620163698118044574448668091190902457657082021411889842578614950458709260640109578464364243515437904308914906355100064191311679805212160024846070749361532934753020521009368038878863199887231735941350366051040045260256437902350122650249077792395202360056166922382263052952236215362623907101178712739408587989010996895880284896570516143318570809611077489558339385294220285642108446761327917261676432365216870788728074360129194168208273290977370039293673211173745638926081692226341198301809716301545426275698872446333840395167469830277173821214045734661439286319965082553204508532417839566171970938061255743541278688483027119929718485765971751905662246658943540339338680231452957601702119906544348102840058231297054827943842651911917067084156854617597973744790057695279689930763417116391254247195186063783603046343096228440473753774733122041756075336662956306367533512571593093898324226317522658375260661177358606851874544253057984106592751050893447906617739952697289560450617699823940676155004072989681704340966625143629763942363008897366047849020514958554445872429967613427967214114842650203412540449050578062919551104781187271664896661083563184269763161230914178969610603411556936475131575434471367371833361205195356117763179492182387556995591596025099137903863593903393439233840437833007627379738500960749558733927763474441726604608818778270803632124795704932586834299138638871350833622618612372605039990330420573732107630218071261465389107198249489604365523249227823104772783186587589228044683002100186627022290957576012748455697032772283246382317951635810326746744275900589162896686377422988938988791143418159985369610130460781461104804900034344209357372390433695985676606057125750912022466163346400403987201466867775506459212754384905333751615565835154397739804558656627343976409342926633143840677401001904497599252770993450753186418700155613060840994784734805976006345968867285668979159934267838128730007229169584186361236457150515386578302693039542290954109155434623285383392694418607192121252793587966634048160331081680025128917255444465802966528521445766450582661957014612219387993954386814800140458516078086837042703392316642138815766962896319347263835280598659721213939373229616691981086500450673271798815126290113468408028227457294259154871201622471799885590303814633939516850861278948215213790562872385712604108499043280487740952975218438612563536375938854783062457756133989627139117956739104003286275672540976589997277731728775079468053397444951216527210640092860020572271696741440645680283520395598570653077132936861940451663323223682317183170297355164959946526250731459213248139650494975710583241880850522301309619863594630672889395919316070296840002387250783176550096169672323518987481708461639908446346654429661730687758522136163378918035152864811426051235052524534725675791933815494097156310729964752463688389292746053415456393775721440796691869705666312145695501927244990302789727102323799471740213494395626769605992570466360891387088327615129109584331996288217740570293557481668280894832263613355408077356089876691542809843022383328100626019208126117417173086430653179660643520237201760549263297128205413978273289156244936166674105683575268542021904400771799419835634069939505568296835492318404333107155933414841172263520182864876376015064316758995194113100658470772641694099544557200758362440261792519519726226760549480350045265217950710912680204401849591081383493599402730147972000362921516666832004182554246044117848329396868945254207718522992018231322871772158978147965862479352392739373723003631475458705914751186559982032898941238590040442219178041120450144481392244915967615600360199893853166520337652382287723680518526045709388392435643514693058403942868811575627819248263889355820707585435078618461224839344527840441441155144187421075869917632504664791295765585199703142001498642242406037749150335767983287948651099360752523432529584500655830187305593621330688714561563478527576441305471834968311392468941869768840064498850159120279477323186419695105788162319229144092396918075105975087852796960405995593471389571923451846322250744079958027307153608971003379740089034691174690564953313235174750877149629074626159526845792203145215825549793543308017382283819659492066304678815485128194644392307400317204427400715875270921563394311043910482330913774798633295736635162403823192114740068843472437184765361337884509548189533284356191425453578455528585841675420189937318028430795650162948095363221314209574937644942540436606334099772143288318299914958582426826175906061075415313044773167703968235687785572428735071869491885090187825441281955309233998964544235086016115852560766754516399696242674369167292611041744226952034663915237856512346231758690890564031019985124273737737730069140659351118166722663988836897864260176168973510537775598798890598033935084648147612866868287792678216257013316769114497279903287918313059729719894080451766867617412056301599719811685853591051310056895295699845125431676733765869893738181323669276556040466923402263079054673567415033117719587349335353617967191242383261973875191954621255962908794541795275169299527981805046779632381688241839671710223375328748965762583364560397085500486633519542260624106331978602514718782826481062289708281461886447443025251635283532020072645961933144743936715738896561028752527481846680342180958799021101667150044039960044008945706889622915185239457703387105732557963804929744899079869152438257410311070309452578281683124765673065130836521708758303046314291371768006043553992873365378468784658387079267531253619485781001097799561387329431201994354895704574878662611996598808639383537524421517221421713620614342964951485936194299456800173655577675302387179897468597563735063927862838600115400109710041973866775842779310038919152823656393375765203374048868202529695000429677708845205365540110128624861801214323424597816467448978246634130849987298754123778929374867569975651881049160341623859492038303309705634946576965402174594902301934341630656603649072500877754223617518325966185650582461184064626391710896451340814763979193520707987805934934711104996439083561356185119471807058935464181154976153197623357139267380176642510630008093136243987624079045572660251485419822287313624616312239149891089635851238062018249179614229181309984696270446880944743375366577836828487216468996455056796420749706644394426813743187419202713028466680677293200943306012939034246140790504522462950017528230288483193235778703571142802862542825050271325484659807081912815080291955208950911333604626217231583992655341440291933208630356887625225596864544856352405472164030935115758946533864773885939675824268383615093137374120654161225177326268008172415277016650846779812516346438982620622939593891979797436583018664524672501221347921023647552469651012640074408548316357804722519996577897439114947162059821516340232432524565975100162125832996689713008146698295332167788242018862997009248083438949135662799372000336708971809716234130040129926139361818601368557700741797785814119289991892829835525809302051777594487540498652195526435313402372839204835097775159853804056988219706549870901681009438280637726737276966008341879515926507182864883063413381254859372893929070969389684903916495640560689713462081552731761810598727217921119795210851742486286189501879653927533887223081775084656369681676444552131007779659915384426588232436698747878715577814200820594359950211586267764438108469408410393648152710085211543287676724654804818320646677562931551522227971473550657116728094655010530967652597792979150750359850130387121193799827107215352119016807701611096755743528843920327357676136222887655264512917338779519006431127552315399140483866501942600218300908777815863088917902064031540615199275658975305811687676245467833506929828618761016717571899787606671814903265875599176200290622098693756617518792701355181210107795824004633511288717230180715611089495138395430416180196303347006716175309207345208603975090180688416714863226704469566467850135881135658200559277820182996119485148862773705411231426118073735443399470557148552507004172462965187336833498488478047550798324627518137856188987396168121814125703902665896545588200638159506046499998581143153889837877256239813177051840703412272237267395276826209991063535870766409678771703459582901675652405551899680675709938256021925365643502751204506519376999613990670408387991591683266256848786881148806716088251866186921681644899489202934156505092803879697575827164920722047493757828906550164976151733247799031088239167738761093854003320104364090306221464727412148851664657740109377513165723380789198521428817996266020894461390861866188467199330781702938627519665001640255609668377113346404831114816118878662968179037077253785837822101987817488864829310976357886362031777559693126728955354883813090660895628766663925265129589067240547487604964131881771176894470371781658161399496164363797571104725175376774780658780603817620359997697984431553213982977356203160701330552220732876047879040259696751054581678398603120317759345945604591302105384646056608164759321788827448602575333159596466695695343221102018449051589194734992265145325914507177527566095540257385436030914162330035824370989396148983840794313668223845904130616112525173083692216855399490948391708501508579031355924627589561312664788216189745352845125981375989500305071921889898961199945766583964265620197586679832357004002674492925431113284517449960854500157745853073211584416442311185896963541261337201489719474748801992803302951777230170441362113628841179297839995455839483015372415604875846140135883496329962483981607472506465853117391979694274832531435359491436346783588980597550257898536657679802598265919154992076922888973253049638118771783223995148541950481142658422100445122585413112914193736520450245164728111826690645934865493527229122618855609517966496472303972039812631396973106706662698285710470608767341512054439565869911994436412747607627127123276904921971715004776800993322628543147509000264248816896631672015751206722132359800819940465583120597964486634891658754565298441919051571674391097639974612871379906830843881189404086082700124140661435966254192489234886844732335146335746603013692396214611957455708148808435647141496958375707220018894198607735939624457188171256659917715912939238779355195853157503592723355017645045271937094265178020554665440258009714553134116619431539615114177815844929258058920890742873064910168010228923175677236495712216475635949113688262114407586162302227365075887182517066463099161918658655822355738131767294843424374332875650618122791909889586865570146412042441331665228587030041118559573075379630951593561825512521536590590376817806975591766263204955544606216218567098569169200666179444843289057809203405468795595083418669736870628476041977136825000844922118229323448242277858654009778209358199849476513814834949152164722032892158232497913772772273683756743234056848597165195582498488646734464711923440382923971737271095568016099062275139244837179799499100036493494319901088021220857978737288593548670091152003709288938348792353233476487345042776441740615115909755028750313247254066664462235950981072051083753134809634014884826268449757899636192534999176144513495767174434000116332558886665340853648046785419952418134634682552364051672412564426139458727823282530581315799855502764709656451041045082371627268698104522797871059352734994897732186947052533893694075719285035616814658922720965822363186916324747437433260333655817883923883016547863734187973739351606944050573038779897356695312605135715717290337874781615465716441209233415683943548906299244674636761922487233267422356993948037264442075841594257575880264205721430827380872662472169193560960798886996328662880160663575037194521463790679290485317398881176942254611264307373755079557959515746032937380249402416876538385477375123481931344792577524486048693900453482265620215390208789351678076523295418723473505611719093838818899495789293888683642493068827734501129964902020975594812242431254099769762667594845504525919955540881915943985681363633025850226499625439101811330262193902017090901472369669239630218645445406422818707272484840932823348084152040940206779568446438133679420100817570592646999265226907481463057057445581259886097297372371330203976008375783695455750445715910440117750533222292522432914906600555466842730393432631898118638312639258605592286852815587371177381652141753609122649335254070400623852882505363378459376826414474490305533170645007503709962787151226440787675494883929574797374173456534461314374002855101580499918876660733111748235471730745995696569753085966524811881234651263264053052329099758836392481363611034648092593971482544601011586377103166861349232990153377303084983399350755199974486316703990102855084607406144596088152894275667546739979302799732282251462615184029463817900511747175351241809760053670624099367308059762139808541617154299890224182326716194320744599937164277792906186650108754417930301509929609405039344823036514643812176858745057568560963463339577890553131434693033469209765385508017210754618484331242197127613408926343783096049800587209872025301279852578734510375147373257053295570771070565165740757924597025207305146924249535379909398683360120092547254692430281983128873785185957505836905100077034170254440637045699274207036767952597560255799890140855908514998046396761098858643870964151665330834337419476710959299618175122424888938378465834686593908029726319301618183814175105400093453510032443264115284276282366297332867200752095398193972288217072934457198051859589583183760445249502125802554544856941099152752455455086510060454068445219050140732544071525956333068885738114023853719231726429966643006901874968255734882910257058308504601550318274116154632740498178201781622078647721364026095368266861197812419949644745663373377952503268545940588294394652016644258117457944256384676267776193987261280290677949981061252219576223696181458459815968088788698938716742549972600931447611775089192212938952909711927114462849198972220140755658597613694083621749823878774712200194931583094794294930147888798841522837200014667750131478003623162870295306596867564853125851050317710387517345036634167966988538968278674457815607981915049762075873642509916205370362466495337231555190144506537636406252090795498372753153849919001266636218342984024270397588124248959665235294093192868444186122464171593089138809546346000293027155069056710196251539797549329363459251616200694524252004935623784895580360111427375321085843361168223781131286103166050563310596848417299785798565099111066576472212846741869882512086875351740625098045731430526738407685619631532965776175196892847807441564384375391490589459443698519284795378555275011930110598288082834556365385999169291281055579812975310057391750699985225479346484906395949995754040445047186280736005551148443542514861648318227400245482052942580323645434927337344839746516055968675789287386152987477276336125348859442893514873012994558142327161855763681835430997170992565606514044646952385686274788305431836400587816134331964489814663615159696621263150665343369229584778595461334230324819912616207704791589688716788962139680136117757282188118949365010338929580546304693530206113504172941166022925041997018957296430074602105875345521834470930267909036323065001319678327081960373835349136457353785651015993384440190218464621791732242282113318437996123364018893911568273352284732100792146619941757576361858170289684237962597759395401137080137197920741345046989983610660050695879811015118321550975158157440766778582214106932686666671683798221986965956318399962138106020098265437632385022258506139661944735043216816967997832008103326802003565011344862002283558435442057322608168650094211386443016050538222281601567668855853852040131634407272614011635332671359375401830866189301814772099534220542534259216177498131358591015571184581676372520993928075260929024455380668480458626166017533508066872198982805768872120359212775705092350669793646796875106525558628868281909018401429666398941992254370397299345032777722519789435374653485084301955349968641535781714510484940876251179923377332463675009299742527946648616991922483379006047493484976569454284164240512309382646407283442100579737570299693046166867286595395717721718046516217922276097938520080635743521353749249920088847934183728692034570528782382785590488135286904789500647513952526226128032175425414632814283138441316662183170727393297110767939458143997379427251902855218027764219923317410008530776211627595019802011973787141733218945420535375945036724611392040267970437475442913999519677704423555172570788629195613033402770382597511445974372113395841584051311891048169369934495038231115402454272636422897649027110676806704122224283719569642680195882372423242763247526229631240025206800634772413181997797590480770917400745435316672368271608405860871890539142036187315955233292528658764801868745173873695303390429263927889536808483150621388747913116767861006836317782207045607705643959730297752923753187405328476953043979708387402942421280415982138623760355767419638430024116398943091301435604254524693450648001511140419096641349766203982924018808000098567157416152507898567490620437838022789988125373600116473858039949970911074925102625446276168022089311541470346245828440311417107541363884637759513984324532920045289277627693290659300853886734147231175887148723691828415025313908882350489919406194854752696424374939179192643816404513339494036348686170391526152304832771362666693783092135360655600472476409414927483307447688730399286731766026664340942919016355910240927847401118888967162340466830153715466141858279927043721713646865493074539128779215227539837830374539570077785974421559906643545336855662405636516513644333462522597361781292737521420758491546341696406947935614505476587975786563949924607722939006463561491537173433918515964716834913982412167661343777557295501660063698984476512456017330058662187606211792661403913605392018154922202465161073587973341251832578654409267503964745716817223224672901085207028175926392620953369570556579468594286045119225125990717734969292111334723063781367353607049111165293615944453184810224785061847806230882273877870696589817256646685279874806436802536450107144033524226130826628373197843222973210890126994785638212004760190478304084690697093100775409964527461872371137165889589311532554170678130712677911975780416697930950149604985565369868421425582183066885249854389409581580023452005038378157812964892971333525175776793458874259502352596852808786501006674683387083482497666462179832566889364277137746814349340220653676372346528830165618043077055911917289033868555554040254382437575641836202884648008752055464492233126165507235143964675661882777259323547503866840375568964093257660796644550786505548430963684545344292097731667606932775392263311121342858743243172830545971884287168664778881483987606380247485907370889106883303736247968715114879870735794947154884778922582757949718402197083316588808893342206156005068504023680437566227053794026842112931050638725982102574796136573788807612491551161215541588116475256238018671559730313381012899649055781000591741034632460972016165829587725739168622493632243121676976838511040485754473256979115844470000185213784244247985076400249216278525658862003404860879772338529006376312369184347140085158440798957706477648731777016496003456095495140957288838720597142359465776964917124354048465855470790922829164325565983655223294553873253717518200391418368958735618008820847334955840952540542528667570871226359284856812432675113998334864001279069052076134198678220704207135680212405325246115929550348994827447767751454230753940651517022889280102594205222108976134923147080311332308942764759861076750306342302018216061638467012703558309762605541679531359430168218095121275165721895043698914917530277647476777842183701275231250481898058253322699474834067184945483474165757539435907687122641225350824965943213247396282167534429108532895766720763552116584923501908075494265603675588614344766829372193839810318919591600239537341446438400077856463596398320781900341756607989357336381570329260515494469574130295083413650677104377894788282588145335189346172148882888622331257641755942831493544800824567217329578483679099571426243905809600570485963048895948740713369419553211197478045793555634898439213703174151062587197855057814130565937059578536173518388593893939885667991190331287529527794779528770975541610075645793321815629903710341961839845427270723820456968894265888977772575044056798003506663812143293999709646817300212037512839174480653553030692594261216782858392479966160696013442440454064279914958230728058121077749815267637594164263777120904659472447245878199402119567773380689541917878131925026981946630480713723778366592613585195904013780036554746373397894072643481665784415534338367660719139243035650274683558719072193542171739668845424116863362110127587765037941986692632019519396482416763391303115397898408378382681258208430433807452830250868744934265345257351095388743624866349819552651023165436861823989945902125374504651377663870463649091872169857375683484436887476048751900841800478870860232783535864641129314781980492172002127423424398914074308897291145345867073012737319462662668733255416562294487085308075860227491528753134274238630209649926461582292473062305485708923935065106016165451214979319965111002969277404592820703373636158662051358633068712354534051115759601739924103056054345979293839326515276637289252477517161237903881733364192636460615503768955477030459111015530351216224678041061287474941003450359842099379789497516122297725571903723179074396128336429179780625572569233560787332195937042216735394227289008699671553527312048898264947563794590694767368513685240689891643897410510401166507061511120812391341166020296019518247197949821561275515821377456323383261878104255201308409387806989021644391537788094098036355610889400019485441590854434071445592730914342063708824597027992482185091684721960866830103771380000808578622630411771602991461852910860660411987639302770313407831786137609808733657020766342154072193284872263123578514481466253562141083177612733537241894749050845890287429571593986918815939009092628295245133652124777112183133798316807852141481320920547224221801884850729925285664311649744078491955397160014979996267301493307170179222965142020631158023904473949690274762630135267845220886039271638518697783154987961885068757566442022135296344702777852150168295989619349129619526869511511620096691434356278022575617107029152615572114078447627330821426491339772946943521681699533791298911745729545353353128145242477240851925961190077322685860306749919143394324092240954082824959975194394461881278455754835563528372604174574736876568673461584789323317765753094348688166600760064324291441416898493871787894219814891209136939485026287599446242100989687082387428893358910313194202274402395515375141063866557099462218763115707477111180305629737908904061229066544654684808146806787793862264677419415936082725937424043578019394396491758257069970248638402219747641255324771318983582263925921685582439093980511207126377355228267120252755359407479559635329280171291174986528758656064041922682948799186702434519243048045535561192453699099974614107822839149231206483386605493685462980699211714376886923556809037130308226124842315283388691438943050965421792726281959633913405652673702258809628816566240103881757675447421142720472842170996822581817573726642586586404897426744197083143751252333980323097978701183839183260397564283345658232166908556101401563755188805504677125985834012924569594785040803037625127569674800634107032700196766758009742444706572673834863544374723200850047122897445419783283147077603585206527567468830613236648251564680080553798002022861561260473282604990481243859028358361867667002998540104790825615759351808996102128093039011068349923195085839640899861053076934610601573700370824872892394328355522736861746764859584599641541467844770802131376648408076730282711156379894493151045821487801081166855384913202675987044890884314477955917208360838713293041619285939257852676615895079177172954794949957227063040011198537673944359020453372704253171516405123836609274886551495279033472496489548753530226777388466881796180511407377916780323177235591244550084142306989387020593878293155623676860898106761101984278414470418847291174881078441504262492589841182216475924052575355886152998507961973796105510847277481182010136815015393238761453989159658379625890060582802478722479814044132602614678605426574369352491023309893152415012695425123805038373455843958871457579742772063293890488469090826229670014846348575666329031500366195454848942424371419969870225264116809963026862049215092256091170755279932227473224132217806862164382340444745887625992217389943245908980579619742878324658714126334558395409057506293652654591663136593965649846444832046426104990026059274760238570836695565876046993118307807370228595630579427973041607367932835031724727826520163704810052127329445235504567550555520997604057491113284582016572014168856819543596847484191834800002686492507846796764225858853677731632656308499986578493338730056535137603846104463623342701976447130404729760514176946802874600328565096019110689080195704986874450489628516458819284150205060104997127639318125293340833408458604923053644235440915537228901903835283832830487523609663461653560404071229537945371692435963265065466669119496931220109797352769784659182371636604606753317818016327214077082891491052009761307978725704931243940557474142090285147092626743349663035558112428644422238006798366224463083620591154312892096998056311763957187420125592838664000315271261036406353536559779041715662970647885328666479109352160418320408127826272986177273887314155523576721676898924022661347958482213289507727553579888554612376227765522107103483950782837554865923018078796627926068794565732534706610321826870602281166431360933967004405786742911242058102370761981220506202878247803444269262324449941940634292062967067041505205338051627538587348582106795457013943655310235083676096738511136424072086126823804342869747339491772990861761768971275335817060864225202432479297767575269133520848010025908746221356227220825108897906108738586310541870066795849049738344338130534374567410340126689521401604914921631812926447755903100730143937516388566454785449077511146320336579575349046745715651539180048051226679059848439578969504564608960009039194110186536372099028573647286749998160742892290076237595717391020817610749468402270404100338885162574495277709002218755525953655850572210627688046883133263566002396338311920763097316580561531007868439682240479392638693910324184256956893420424439730339977954924818942328541555232163939475444290400004677814769572345895754200034261433189646137268326839921651795277477770669664982568084960345139072436842923734580837584500223628041151074918068631435631594649182205014305072795119292825723739882769893850585674389198496955151924879092529710085995220059805793572981143874553815292493799472493694798246473796588685604918282647797119227528350832731194343704124151252113976142111013765839860458511405493177842882462295451343019413859651032819535636922643023772570098741084996819232039898489599823260449684313543738987965616907257219066945234264508005410921247407338721273688567658653624034136439499237533660687100128009471091948404425245376874379224557147358979264170496835976242045659036133611646737549525906862474861423457651109904270084691591278574390460303243690220486131919298789000645006935349699387839866504819206436740197880250928832510573739103560462728237592558991312064115038066214642915179896756416491043562641679882136692377394191836142030795924129360476744405077374990072371696468630319434158695063589007835033099660147146503848014633013156498727796152066121832708667709903502705254005398559623501271716968534408688501639694702859560377364267159795755667706811247557389310688411370709738309951451453564056456420588623854144260375723406122782514834392544377093376813369653472468874934038696880751562508403646612173582686896204483063149865499882086921431206601354039303171711866579499283777115293810895111855868565491406225142742298854506881774810639414034921268783963036924054874182104399410852150376985461660135644488536260655152567061930052985506770067137420828192433654136339624873598546358359021989630565311005819666015109549125008206247600605158105823946407696558227279899445830230673784324123169299745460321639572635188442810792401916000338700958951592665874508420830960984561734051439112384893737978356172362796846249946037183845086298739875995967972918059741050756176026006754332536340282890724175353431053267480343632262994154726992458843654523047741981246984947690728405933410270031212977594089118338570927445231425321346529211961663508759556732536066220005191921289879451684463959043543285060676447337844714399404009395792498600412600624874465215393992228801335014269528318739789864592842324605533280313148640938161503892303519805045304031650855771373349907567847542547424928359708582855603949559395917794491455821923498837727470800252925808120785013161607512249740342347476777747327344982201625723256454690434542521401815544783804756170146800210240668681236327536227024468980768688213346666352900140155926544848291414865121755614655850044462036219807398566596549967550500870519969772407146712649415413815779616152655902626376204428952656954747296456040426256822202173082201549538299596142644376234105950821526271663374510506632675752910620938496805080697249253726521385398298789846849961520824584695225277423989441710153015066217317881798169293147518305635460704532539284284105160384872310557577878508732963054556647212070210369615964209720337376101001413656535996422988803794147878283185510571581080883720316442544429251342691167870415300705126665697506971815694822221580724541649042135573793954508293566568669771694235545182190064144131472907731696180684550448111656290533745635972514926252255282206795105256628802261279376633551918071971455024011080061927466736874806109826338024509010258921275555893561754284921630637836790373976509116840274824828409590530672623899176967641433782933694642191575630809976882154441578734828464152508444831312522578004180813732525828176658662621765292818343187433870935172545579948183576641489477742027643259535490813750530996407574687108010421954149566230928605307203210239291982478727217969895828650362576786984919199016875746115416060886198409443380434174808618819282941162234063118273858532973281557328962003886457645350602753645218069935330547252985430928229573384941873870861346084002276924396618708274712658244054309633226162154114963186614310830913983386325830191676720843629284965267640220140431589348188389539362843253682812464208329403076219623117160152256646945791310277489891404915323619403117352551532608430172136830000869186500994533231787541643186015416149137614900921583752101625897839755136740344439906339899858832162589728149148677392388436848786015470131840622479051179035634189021988393765240002634932787218221574452661041531761237797028096393197218340482436606749541199728687211205442308027002450786334879101337659516242123300773396763084627278720212286152091296039225537271954177465613765249014513800444127679213044153975460346119729350447434739425155241253355008816819648471624854118708213638594627125674178763330572225445666457751360488207290435853800412470667216102875003523507348723637113433737903592671422043196698680891138841539328248323008707435735271427579813334157809359036510490095386923302527455820595860576526477504167887638126014713505369338016768805874558780897863104868505909570898514058471011101770230269161552625316608795906401065290290553234112416028983398114871751090091895700994177329892466166992180105534748557168112424209829915217932654671288361686731242843889830242051761270470630649806628904930451981317785152150452958521696204087954683431243984239388756571534626582503072152276311413199396390708973045028975078545389245495687746779049707690469456015777760649473873317635066453991037685147399071531799026322003470443164563325493570298031594140565225273915922787492092758206878461325068703708722073410172511022732215478668246755961190569704574091648092712283384297507635090482185952900036653672061981974828174895061420829287377988820137457183296197587548138345159544020525444952696382545037152303845086523586951967048520995583605362113846523361623150278805869544939934650589432073569983008784495701298633832097451800394706916094954291207923233790132418906461256457188986388533641080917092212349413397763181375904984572122210375675004952977377517487847563328194038531409553449257514755082701840324373961438038082482467047783145503741147144549942933934604790178171772804439664749716887720043654608222015894769383588462624217621468597148171163481152960419062047232167856485019822664991612650745257607846333593783914375436943138188936145869214547186950170937415205859321229998507732392756680095558089408707307988670199535996633127035044511469591743408970340452302933757137106919054938615401053689791435267888043656513391209165911704729360004398300015930458835761441020473516448074663725371444599213538733684157263507394366994649372093535991919697196417004921964482259999927653345368955167216912935310455869516611477909423981319151156793042218226998419358894226587623346803058891562779685564421497636317147207344914631935405900342358151601856502117452989871842715415736987959446949483591061927961694032704774741626295944050057647729694890541136627715469781748337245622717956358992186168961562370652465324537854974269903594355940709918076382726113537689144170158365262516810522329565831318845436738594779674808535267497197001546711431013877759510776723130823462043232672565573058376099571347069870735792802364764943547539304240426209618759687706847542172819652649583174969830480089457705333338851198743462151962284412236392844610369809261124925951127087271141479427840091991805756786728357362301668625049485197528960325125651523820392133991766385008264429996994312525464552492380766645375718332718998579160695338973530466818711688778246267719586175442792374070980133347279850912930515755504507366025678779442584107706555101027547872041091289002506176747125775260194599892385956205966732644873386559799083899605807798414089791000066665567635792035302037507878889891602090384787183664227199929392763681003718160781175792369601019406296042698793966552075898398427271300935358220810095594089364480411881767186916593189899243466008600748435016394051838957848438880543226561030043591923024847530415136887832607802866073371409430592222750554140739330599459623822030494550330664062551013237218865178364204468889418005570628702698720968809707155671368967748758416732343205832064680407633076333176940599102305675951944763764255109565596629930378623432167685481176755886962072410613825635115429182695549865068274441872879097669005644293149358256764425939332002945843838528094770211760827827139904221277581908812901533284010786043954959283558576814210824749051538408827011070673920962803753112563943570433858804028545926248811941707775636148176261773142544655856022715737453200201066241739699073847463187696561218146465985700152107244669602068926551909131552064655208551485211750888932164932735274613203490711193866962893694773880821328060949371279647494673259170134130217672586741045255192719518046002207537263981058497339189911188443690140576597966243209233242369223378942546730054811645184530141876578978175008968591466222878226895611157939045024036449646028530189531662289314137488653541502398882553122781747255716614162129178251780491281337084520343905620244496101167285307676640966621694407337440323494766531738323954533654302844042824356546064824222090704756737516473574021275242603849760813330824897036444339417653467147162365189208438575893497308210117594570019455768067155114512137662891654985931995477377356590848189423392240665356974537649068196677961596722650209826480535875178087706687407659029176935273880005580365469365489084843967649410338298933408867644080506596821092864029405119146996472614606783749096472648305656824441850017678188345460555151636826581911570645943879249895332700122310098946798215931391355457225803086634335631370047276044681635836883815062015256094756346222276430063224324463062024174176770886846081656770380189757308728550010702777631956469289357761728383719281519244173994920651832189699301045501173799773886609841735934823718592777147958933611399001222976840863269952444256553698470704181076391761627287003834809767982424853907167586096564667403558466909565432433979032794141494840263709411749968473266421449425262965319426597073724100300108444958818260134907330833186096909403712375301171600140238114892794176422776647435073297290561426490549007051626231513654067777085339275281749407303117281038630330889906570836478730522748110756447531758643847528338041243904564112123238515844000007567766383855488353066070794401913340242216832602702541314780913818744139951380238530574371210665396740597242250269622943865172892640058256379830135356582100348837677182506921683451661830510850734323298026820380651073265817943491310632854597924795008331645190866799781732786996608305834987231385511417413488981262306004005585428337314747501515488685969917730988968341122241393977111694546060398964394327275001670373141442356001766207209389693784706891626695222879492546043367206415092165178358965849923288458360493998292844903544080867850493526361849895493120276563914603121083116975168824829806891284073082478407187668308577936040633553244353317202404923008088739501903439763283339780985747621891728970149274376695358523586382357833446219769623586949943527916690077363750527629323845848180743929382110095630178373907493497094541100723674150932382924938058193627874422544270859186284569614094002490149589390512377860654573194235731582344002206374853775878840696283724705019161150832218001625110276851784338331814501136442214983893999838935573144931544348638793011074325952447214171673100696871545076278118939189790843214427283861381707204512920266329875174346919154455138411611842032476275206575454909010632020655471396105042120626007956681628048280015443779318819179886694037889729385634411024007664979156115431025359524017587798211232370847229498291775021865178464593839053843239132995090564264966230465343057587488504467887044027497178152286674487290157008107791666060820608747180398849032545083098070414952389823705031343678493574634539793483005642656049635316551542172260396795455746228676138449924290769732075263321512958633294543705217043763615472755683498100150596336973483559890669168743403113413374192920246682694194458930818926497228489200775963398553999374858771492885784741408482187955862167108237597612563041440940995466832543757258015529607227824384257726726152478511958180799949528786551282535866021638027553761917918849787265167089503459528098978146339362129386568264238719150611810833856939899051551310337970651046503390897016596236090806274747017192397736414576477798913012588689169149943674757081918163084791286980697566431537904627470677914139944321005413177827648704397602236329467273562431756011621531818094270920079136833332023834016470628760210484922471532953186878260908727433285022706750789218906222052894694067535258241490692610277552250482746341815775592598492662154756995378692962163132313992035436113393946835453004941990292454507253171102304300567497669403680950514208242130079043428510979924781750216497107774679704848212304790691766789053270206442269447922929166300649828206120274683993922117559787480757823225530314739121677950534076979153847910971910366786169283679189961388033423335248350941681373888029956844925170735718141924390772082874150862953493559513290101077830713310317199968996269791621875221160935254386168328234746365612984298911747521304194132458943981038073636698796613792336824175352599137492890510364130774642718748960929770440780981184127844403300475279313495705430527043310556331022858540167636333610224277908141313108155872289041730500698112137645791988037978930788799255004755877781203974979934311664621627421685591243332116302422219269213882335018269683804600615812035617718771774428329075367796762276553188425721727457551404248664560876771697038226915028086802779504707345071560361508267989998923002459153446691938576758426359292234102968824953945286283489034351931877268301480546342508164164974500962915092534087380977277312530237196512870434960571780594115005296301041884051220391504680859369461981470625485084733794389844525351847001216236726446715296866852887579767503459719443173215168351866418144739253914101946036021997955493107654141925784848287616300635469306981346883060048583579163871349093365349351605587630544595617773683681971505456651360355787414338716125115691647207057257172174441117837476076523031611665032431652577509725014162387595322389989574520906869098548870906407532094504619609241922573639755436274919716334305104411218495499291370115694736867539857222310959875436568648110031868608251205569507452201427636503088383664367209468750258885968158276367426203369021777442504587853798898500833060532277915963044939159058597002991498834860330572906671856133210557778456086467956691501639165599566199803763445945131227962999215280223199246416876914449563375250337112424205400079089956050550112039415726836891622380171013722917479001469467748164690619298500961612213690165860724915071356751481213519984064491440256563889795733601706819836001897311991891232205766926089274251470643770892152434579441868367330939151013881901040114489168707160101566084154830485486501175084664607560389892598364247691190215805438676016541847399509866024067685019708292441854038913492000175392348783546132328469296855531010750799493232626016256232028004703097478102136326635768419705995205354910387053433737317227141681125329750202545490645698662511193246977011315422862410818348891121614634904421196431167104925940336506778358761482675295552779367336932632713988001023096869509526157508603736623600189330067974822382408963550177700703377529295451589928454187201409606316557377645622456181713903964323488676578974434160419999381781388376543656734347081864239852377448793453361298954669408842939007947311068605606247718854728139933835322716764921609487977858384458342618754416890807064280643122562416633710855167132161999218668211230879112974412552570803123991724464810306724709012228921749886469073002423901402373357710165875152631546131546414186321274304453849017799262293412052610185019244259447582509518519579965220940320776216398471688230846431355383262297668591344165136705863610814460342074056655600607671872054545065993944879233609369471777836315173040186806745529078950545211404618314348802900973348947065998047765222962879876839414117689010458067610687853641720777193607621459172818718050684396733528869238684300331838567840913975014393507864661806242738707613672191760329920196961460234705269224363717501835602569764648287186769124958242433496357104622463819098396973341314538540890293731428483905924214695600315054962654462285070845832237028113402522091667707039970672569248475908141580828505687809037501949219478687433333568160689638445088190364215755797542992698075279753650882031618914261769955781770605644341174427972557091619400589721014987803093432251757733876095803767611677045893248665126504033529345501338207124451097260113370086983507768440603310285249587607179103426442440906911219081727823297919981084574509508177760246678917360125488386721899195352734750225282671822386143834248044027220139619856880007727675870847772722670579839546512064725859725654602311074868746346902520085227119048112081702883889976447681163680060826076004795460212728986696420407454896635323156246698317966624147022732284493308714715656391327309933743997401372574239764718060197385443432950051745229807231349372212116623631480145512227182167278596656703851237546816390651393032705617601598018362255981034243344573832989714248761613528711666845455148430766061489786800985687552169227073623495628248926604987306784647494078458491027412605579803383468709246146164920605733526864206166031981208629775682110082280455897793350478721805388033145374289730626701849994940041448353883120460267412274731400465959484731207204561445636261572379943898647284138743823804567718043598084882950950001493754521792163199854577799382951130732629759884597370960713566945575668952381461442446819970777989064365328058684918097035200124547035419308656520729263281406155726930838611234466180864305642382686226604537699671907152481609499059438573713218116592445366675219256811793651814787860222924776853314144880489084189784429170366490890566521910667941016818986726439258447173975080607228498384165726605466301548196545106933482628969485745027860335595716778084495827044168900048111620074875521427466643650200461666732299779659604086632958797056571236645869658948184329753640265519404801001350370361010557886755850498361918795287052457974456245558295164181008308852662164203323765100108405353059838372373014298802412739985141598377570091817061276727632496052978736997167110337251124588385633796211557993044870662893450837919026874359781771112710381754854972811849213075163160844088975602334890630456972681760847691847719020987989276672249544689488243152391588229370262434059466561173847037169367894484547588303355004839443212564814490233485829049975510010682149350841085676718338548157007479848056969695589847217033612916378261182156270812907186465321351887767133782466540459946474243014589644986062585849101576632123248007473443607935934650110308217991606562381736310167590441573741218576917778395029592813226689562299901946021717030180494854797509754656793434304229183616952666158835024135456343835431111246888772169539192047462146767958713278299314785178022424274907302778314604478551887777983719040892545986589756026358374419150041109197209923599048032270610653173741733593878067039526291687139544511850710643370923691024332296564849301717710157652138190532967514968139988044507622531227956771681674953032336762381597729514901865393897134954440891918251414849268678953277658135442469966682282091499779647228390486064343110685637998930764771877994302470289865361380740588101408403008993482515878015094829821290484892650792315343420513509326833649114557489819954754049223637655341149980051564704580719661067667986657855401858174412021195634026491452403701350212461738748224760656131324787704233607545250057263513604429624147434134041035712889373662884819016637407414781364145171573718231519355458580310583411307596690529781577555413216466621087425620021379080027404111897881104960758197349682965742843407735382155528698640582376017322895426143561746057520697403275510549621484395885954328024184260171037831061294603478718037677249406125424862288139529172029932710353023153171124736813559912074107857440900181846467990208871654909838565117577228090027739754348498344382290401460895412461777012569542791899912269465067400073198869019287820761997695778153760356001733620294904377041991812036299256126949263771641345682124618193544921284720239153264795096350809827340567575629011197055497828170486182098721543714133151596973233039102856302616223702583893739846738602195893260694219295387738812586060544647234666321324177947703602544927097780606565998027151978703186139030744445677453039725476472225576076946593719158598711740034114580467185810625656226731379166553480419437467184738640394919661084263083212436811554642322578918999341420604611724773028474439163733892053525214447694460999858940244562552763324374375211077489847343078876354004364163262790218017021195952403706142704266155784935383869840364384384021545352576171415223318684269551725444726033276098604826622321455022094205814842533404021370260897936187821504210540768887106910578467094687515197653616058137891242606375261101697002474847712690527612533443172478449213537037685165204322527883414639387602664208120098058938138129690383370694921534893482910547119401776167418606715138250807121901524590259008689719500211755191251550863501449322285203607621651948916755835379188355875353530415204085939633149914487677087201707486140539840181876597122522905849588581530265693600727292878970459076697887423141142740562323315199341447893939710361601816011159376188641169927798425160976090667704073097258963520222144805259216229257889388662776863133998066672406472316554413899601649397242459865352320017989206831340248873534120751717958894706835464082917322885633627645089619774018888444348532919473755971286621674023785696661142367813890486618041758438844638559092215719722838064437534374997246161761166521737770346772384560380484456908635834527261154332973375459947968805021610805083529255307748899757266458299772821339164263342958314344137842621311228841490171641980520432127226344826221959885575904667895514300142797530497356630231139907310224820146960239814646368170149450628193615357008961419829312028461060914005430326431462370886851098560609763720516747959090694016454530174093096260852919340073567285424095239521076372773428502030408726299226679321522212833196254847904423170285627932634944528781060525734712370892782881853429189964920440002847456261346524692745161323160143060413162532774689648812607998752492224885268410748613704405068081881532741846670138821282899985982616557350798882660540799359918445584341414910649931720322843898683540045501557750728506060399438193651865056253009787744183788546809580702612621857613981058651089752677870429203816325404843164731304237504407563852729997105921430887504895260427325478117185720498909825611647525072709073605080450641554174052342905559312218380166503030116186792191816198256878444983061407672858006986415356645753596207496093825183735679582253785726555609184141978221084758895947765281727051416574145806644895325076499783156918764643300010549249612482737008344885480015894514080047666748865354907316060140262350909587413773331321709472821297708556988482624457427946783616527779738978860900065722934472801825230207657551533588277575279829320635598458088013510264745571837968328540162783809311265098409366240342299521561035915310391597866853280305246510880126553926683779866303237666518852384912634488408934609786075194325546414479256314149745089757222619754987248168500369500950481469406359555925537570266468825357284715421091614255694767062251085568972824599400495874106222716415584369564773121148439125247808860621841713559264553299240842304711335117897744727024300764813360184450346708548403698809517396298436566165217110954223858278785690668094499087180083785623688987424474085731417284273923371516004335168171367627703514946557663430205693413357308406710793223826826091963873481886759795369251413914383473539136796071166702451351077367760148197716507889435388782535012342372044260583921121698303444679564385201428852260383080596044531484903463666588549352755789266063363936890156038051280849727369997128414654206438521700606234102964507941715203574412790276160864295323727576732659379258973574161501826273238867179771825379951500546331893698414886612324212387871843468315838150010985731803086816352229091339183830926174836823210858527547527983939643116823235030744132031471059516878810978674558819998818478794411854031373720658951258977631477134844355974836761407221237607885984440459764856748027459224458429548733844991316224515563544160613059955844511244484809214274788108646718255007201786666452732924871458111472374208015639461535989769867416409833335813758836306482551630419137383106732774443796266866047800312333207603500911685034038319276881282481714698237400074817031769118576954446958090368586472968423555216309478813428611475606260979216365922972008475193290658392916277920469746525615258779613496984234172994503764505089046672896851932397702792890311012064075434443596125201376954341042555374114101097807020841730508490964756964222260528769467171769856422616463294213326829649957853702464605211531484258861492665152389525308831971367638806443603238802209715981744679499557712523337121432670309827963053544223673745364028877168671290849225869102630591634695770962909036903224974847946559260395105669830984878874796766315799425748259788652782788628113938736650920494131108268770825714869605467341514524900186022318215937785211686908151142151840560152686709618343074105116264750451143837604508908181464291578454737930291301208561520661991195441863811024051883359376058110172804910045335622474525988512099107834997035556357652258992255967317203615563526886800485365134800184911214996448680676101490735086374815051342477173076780754536507153503044226229524595703303167318065559673679570473351094499059597172370657189124618614679953857215056995630995586013890708145376487680827250470221905484181614198078037459115879997545067479912194940886315019006048091848807818815956320373923021962350840563478949243902313143127189975672131762019658887808261145234378189011905024060042455180719315543235667355135937756187412148886310683601442362753171143592772712368764216228300962667228736644877463361979587902995876701186638654382742863823578591562525439181939503958076472080936652409898970754782554306977727899432754965990762876434514381245263459540386292767917341346665520022937435704811998930466524964443886477789069563370598304908262833617118722612942594605852613100277445928054105788338884191126971776415154126389636980843417794517328924223736245342623019597256583397426732720809173385622503347746411924644311391174298064790878380291790451177005633883040970725041797438398265688387843269859299269967892621463516922976700852727934914569583661966700644089451702266898519494002864210003221692911944848296255441226605206261455171723957826341656638907665032893491308035736584143192233627603323633730093574895750178733153850016352803243805828044377530662623964663507941426816238613829553413221814010609947232981579184256073498514406252305990968561737849226628671531436403474726486097354041027425099643641844261653250074690177940050274126261025901358904020677895935460568504715699431870554681018388236571897967583230285264675291640018666133775261275972284864194810078566094409659676066132709333753605742742603726386083985482634067039272927167255183831208223333544982004585187453792740030415361744064620609237576335384893628308379371235768999929147032521632097740946273638930804195541923837882638978917008059326993301437332715077159228097509129491591031278471685985196071195283388608340411452167184168145673676256574568439928816573579553777794643957951175034578753305839835562036055045191309201622620606976015470075892563860039734028902062435374455379387612792388356921399974560566967357403627478974103376930087602595915247554596294912261981113062642627295439332477023447738792203541409688749078142942688089766421003504975605419144872317377506587491412870562527598019845090623690204796937726419690593790062552779864666296557551490717228686516625778805911506885955113903878782161373341769110647551407243552955908316491039670564300447539981204107572798983876002592855756304447915302161115885816130642668506844013703450445172684542619554723100168291289551389590402060084525125522912191868181991939617186026337957574871273737288533951123272947435948958486301944804522510744156395035280352967325195147852749141875667618538715443369935251928273402377896806344070755516627335121153415008784340607478674293869641214405518931951452221921492539749660858691682448010502832368807629107767237336124227342379649583902367202803016203708762401322791615810540079646114324748748660402399155905966991908226309605878083092267125466082536078759488715461366033792898957641306447397635515047324617386319875193601190791390620924768617952274905186970670820364038392424448316042156820573317580574962376027820825406129790259837698924059885633346087499934572939602544592544822235365483978231734236287923737072460225388866174553922559751146129974369240539246100871270910695612315950027566445020845016879939402777589437010867042907903196530219948731106520722619776375882339374448683653493018291054837926543328246669554691921025238494357075191025731436623111809095000219666030712693769862683471285603938433604844574745737106006766582922058686175602648099288667027076703117217845424320446914288908340882859245820283686830520195696113965550085381396262159229170929167571911772997242954892638639349022295275156392805051766674714837930580542343531257233590084510666194620050260318699944215714704181763481969466736819215164945189332638787942835615117607734162868853881687571637302622024511015310647287705159618664725434666675299510222809067812778182822014118124923017707565133879915528806994230665671753170297126304947658971664092239080052812449631555634354037580883224727161397485705712499615435390914613806835386328622566181043818107544880914773616452883157538134398735192626156856827075605541581121965355085596079392507513202893054638211534750067395824646011485023713079451716573276863803932754489456878777848469606705446758782238946561084844363532434390168672758519490459634955495060888747575963159080563683369552747348451356715850009613774840922336137254513143336945275287153502391055216614288733968660776220293564549707682300977041296082881786080601554583104476329893742615078377770266901917548078857421299946799067664720537990352282789404009568090900902178676264957799923804931921644851485783856818276184139839466637220339255569219640302004967692986056303450089530699038149771959775890842836943311527761903979772236402787167111978558054722240637129713664952501600092616236550277395357951649263613405918314581498873963762559431781534956553757745561956993723012849884023341372434495508580104186611504189498411510943565633927300993306443614990693626201772338101525742165810725113565661623001628911046321369825188348731789354947995089731857163495000149151242347378949083045432162511998125621669609880465327650224245716168234307982473785481206570087308099272212745653513840690634298875249532344974827354302670049143462705551244584632695018218621307782550411259741396997333838095879603531033113469428435610477569187702153671371526448398233841205504184895404211838772063885151358523034782139055456830748995821532703364403741334912995073221237777534850130670708581744988594535705467505192021077180890563497812733248123737615706453564820522138517183138247944007773454785416709671952736756597091013825466253896271128580856685357820020352472659497080979013473450372627724461323055524192130416152082885725635882723304021484222062894793039399235019700898792219917943204164452929679025700301485319825248661089890331287733580376419664393111198460399404633503484752317375706275224362441499408459074314406940424090713890104589029893436106519285088816101816099199438903903469795479906099374519721501389189958461865644633330498898328329672258551295031610641229300106648391272085915539616712810495482737743025263018671884998566003768170756701045742914793650042818232431791783133679974337627744274276935746606844349244303696938263272005141263687024330834710088419323086099774978960122148955400343948390017197361790846669775061508799825029500176693178897049306602726373990783612076301688318196714389430925315717927029539338249100638524428879284809683103896565284943355470287076184236140384153990912343615680692037768381207559809987854411854630814925768716056825261158385004884885678493996326914666779878645714825248496810735653045846068179216086890323697620015250253258875886219783281477879356687423159005373916003991454083017375197783319132762660143878562752724386858603814549479702789177511789680901019446098273590043567521120282328152417486132641730071702344108885930369902369474825666944076823705564871766710028407502977961561063143953150901691233892437154423593620798297057407272718337807509311778411615048235057704162269936612578097136215133039240298741916843601815568676617611451521155107727679161379032943421032720581152318263571463255294642626415018457120144143551287175110317949137063677462285985149052126171682243819944875657075497359798313432230223998381546852769881865421187637619336669795064395995342289896672295310893108609386948314344988743063618526964669900695917966053131458396036844057289791353663959093038478324155473348296299217067302839817109673397028530958063627700282516812082516423571688982909361991154271480338849215448329732992669436342812604837248913062181565621577322389789653926348716313706759473208117429576592282071560376894174668919960975140309831433519484623889896566341299137798860324668648077427202121125648207805624168622055759504354669215882322201052013994937060805719330890813911349188264192837915846316969963777983152287158258636924427111798575939712395972492282984074143944733346625086848201876172662671399306306076213139220008756580244093187582253328201639737838407140119123907980893334801206058059623220712389770638665396437411968969130783343521076387844277934690312521379409615385995120072089919233546264781780403055512382650323214398422132301542647424930540237863740644318243779141281970041411158235594804531750314834616658325206959250030400743937387306482152678676034812493087475019724463267305520484642670533101749370733221299228533775219475978331075262530519901611856917635547548879135685358500858932786588226625486227781097664889756680358388337669062676331577870069094523478814508166711273250421656817422082389660120097821795406718474654660389410048855361117379517025719738860222798509728589073417189965760737332304097090904233703215641330552734910689819760392326156739548815962865502072211331750569977866649152304045926973314095605378686418708471670550501731303017674510493547035118120459695049203455792434419753667933403802705584106347066601150941035996142780293739814399490806650453193984257442166592232030395501873283419091069636953284140356481076709092497474376938435063750243597988897911306959324477906195616130530519226048241318623771858101292257887544343796312225692783443356205405266290739896315127488859383085026870694774230849417777041541693464164659993116702752137120627269959620366391510418454015404392953082449385619826692917416859711434149236137735198250781957044659184998358786981146567547777064647957892758050276030768044516543276340489898017761621747925419759298287513902533702014926369195534458528734896692332064470870412937728061225585552855103108265305833390123921161029063378248852458206277755055891234048653394284318260075666699077207256190405176156043541561765062022188119649543911034219995755056711298121096233135766670197882064038541373955926504328859198860594301010821913785898537904188402403150414300777674062086127124482341676900337137477668663503414242519238329884599848493645748750608431061796022325693710189012519792605525321002797405412110828466050144154184349064525208627927456922226086524689836335347891707410323315298463097516674453888199561734314691458411861867009386868584408634522917083104600506288133333096470216135637908490213470376934046022009805001068539579702272924676881945101648812942215935798506081550782044335570740957519744407930558486610539411397678990063175012829967386432763080709097544779627149877512352085275582994896077536075480892756928130920162413082182808182413921133778204978025208565629835194592527714769687836478680359704559345090798423090456340473903111438725024631971004759407414433006526513505763067290375289125020813755881671484037554900903405742853341001653896695436598283508921957212918068271561805435438732271545369794881794104979771630416174775917258316991551684223373613132071913549921167528300914745263104257274981270583805398786412072680396541039208026962346297380066088589787048588572238447806534774219063558451715232157098621494432790803386083647615978196938393906201193921375760739330009870778385577336984192394417032111369126871076644691216297128301364129858526027398008898345559647629131175166633310566815918771450657807742487203578110878565234820009164406266961535114981920549149002688088900906480745231002690881401601172516841513742403862775319900029320950788555952145764955713851223402194404856465083864040480645879714044909935705751230615530558834055215646661468722060392316921632504744674191957426416370374801666563506042988517223005044263186098586738661063156259726612225153319113235150205454093158019309063332227206775139577634376695058543726842473375631595796164186485874830380812600539770338480159935475407744884143771278061358239906560369609827281829430484902485187195945030902637932397309179555281687428987643921341011230383223430648492784816659492903581135191021520708945661079536456581039905591103570654272551978013008737521820929358210206128107379843960475386318988038855501773761995852674612987281332710039660287796088860475794010923648941716427648268547744471348398910072224971312700093580962221830527924711278363912046693708183942273833124155037412254494420789780715082535521598418153658551498152846208239873745643428487589461979260606163453467680014198633173021276948647904456760746523060837456499358813897382806571074941618517449494937117056303710666727067830933541087467569806824097822069761304188998487005303327581335396604885209468050089277027142484878275268070903782515182910355218153592010256441357391134386370641577393307012408809908407185976015634348034735112598154419546594349360494765417445687917276334262319593031590225089186919908676993395258365821917145430051906962606741624076894216200164724598663549015709125445834868414159948036300103170909587802490230044622562521366256057187478904930238303484158438315027888406526652602757294827370774638597757608475536216461418052441695371083522483955027504592533492605018585515239932738109897851173845609085883466248637914198340080823848351191108542964991099866993230401697107629505834259579192425417160383596062663890406714912910323640777858467414197324363917740224951619825356554528114281802785203696818358659015373800416496898164993393076950016466470361982403234033250561266070172002036244332808232898678425084086258125773936275124246169234707090832638809030942102731974270111914755900867472638619360013223146491979759830742010862671700007780761037553339566735179043249139538295036924332606828166454966701389275254390879763684204177440392203262443221994446528394016146377689893044820870376751987260583787466615703287109165523135361715933075286222364529144847583015630416117592987591239420644377035353157791484256679751300061892524334850008824660700679278467228963614671673882903610202767625569349187092377157083010969742282323885119751950007294636933558513271127872304160807693253160466671350729784189055251358843709159423566317504704571738782207384302025215160851240820128032889518949872808315831579103739900837271550822915715377756665156997669556292678443866807143452541602133809527166917704906790429382391839861875791525026401669452927124799510548219963376169717384735339726882028825706179591765657132755598846412647679602041406277275653243262324213389019782638140095093294023968922935040988502356539402495382201434846929475189286613686188400702794584751928102137630751827496001969578559964389047364725531604460386178241582598162094816069676251631869116464111097530313922269722417485336679770417904805134560938487257930949617635341848414546216182739181920276618945819005950218755282614860082957950259956573732100945840829397426816612680165291864287827937859558413794958547735311365019083678504846088325216825051695916976337740590753829935301100046629352980569227384676746256464970225077696307614752645924539824155977728797979278560990263679732975275647105597734053888122803019646855100960348259384738492368986493617044314922273958007476362637545615938051981187658974666061738678040714993325127365403952698215390184787889207655726437968873082157216079261497692889223272970190213873756896967298877967536497579687768853272680585186145735124207124480853822869573649883263282546115192422415599732944691095286824727960494310833201945537804266643330693796914038653971919897682684384087570920284041483933268658892463141203606830082164896050478202707692407615997619527564748915003934609488786531826939027084679157255895416945113702813441100230868601252657985999874741320626315255228168923480784941301579284992814757421327712212723134071750727995806841466839311521935693582178925463664529912045154635835056154846381533122067949540491276741009859916439145809106118158005773294298413322067352125067140483602884621361516254133514027527346368570747739743505391726034613633394466591864293530234975080946334747701023510989255549362263027202899973872290588291858675165611428552522412541915484904921878015272773225007273610952172350079804951926320298258479985422840532305606727396364802642072956696391261612540979297811841178966587280856969534159621996806098981533002079088458916510676406650908767330150480430451556175436038255934263369306932928977388380276109785939199896888766224002354825629991034485588848117560201455922897484415424401081641792884531648568286311242310251408152875529579093939010111519574086119507743254304159793077411878719039766270890243177603865850657372908004926883176823894901459291625490092378630403426399021235992197039959242431872250679981229449083902133630363832925088278018948170209569528349724079503232760022490586116819340962498322349470522430221231522639372576251496928454292389587383615553296461224702261629106155666603811778265985874602895674289612986416653795249477633333111660976117249633704011628301910814807591632801777863108990663167088300637882979457747227645523150972003908649952569570218626040977070572542039946195987892862592437817821553852196880548631077112023959333479231821066430499548505156487978338245183134300738076101931776461392913510647006342242539373858793772896066667269685631592692927633683402549735156558478952065727508277756198243695817757359517473097222134525947874980002223178067080609774938808885229456543733437690383768149290469300095752618734344764272929393634169574390346690004389957827064308507823983658777451324110014570131036329015645059289307931274872207509598366988586438190563705057225024736558304949656841618686581753003755173144283703001097597633797542530852679535885442239506268770510480347467277873377748110461165352855401495604154065023294164616803392558793863650149075568802220809775663292519198470519804949928681080741734421265225016007303886221759693575795637395065537773885539062028870303685466832698458841663815180041734986548471665410139108851732073863630909670870518203149481947555194597256196546786218044164346333022801981599752428759860978689756544963881625363501932795122120602706091038649358039804364743976450530703642394176943255126372958261548197147442673828788193669057326662206226219179591968230416909954557808770015185309024158612008051478213356461792620666350987686443087479376913217410866742133516490029910957063991472211267590706653948375323051391881407342036114708763051595254064597965396955890455149313630223623282237589348701188491581895730145502419756907618261319718858137838611350182101838072397984299620525754894458973602682126468086514993451599037613589008477231423150767120079171799045968747676187872556392892361660714249058121541172274686343597793082644681332294695346382398083151849345257310722694341441010790121361515389919123106346175177139043589754125259257093972936138304576906799194636559317586601457236324159337549387680932262591522350409460816116612847601094217085311952269510426935011343888021546755291894519150604178818711647698800787518280591148277418752638024655909259956360090849091731833424973430573524615124858442083463503846336092557158692424198648508172653924722234912603419821640105636379723667470988107763319544501875745964273712255691494095858749880609230749450669762803487625165852602242424662301066243667590342222564999363981237508626486333364062861388662524303760585148582386167379666937124871744779845234007395427280845066198433057385297572365980207317605507813420924872340655344273269036698888362606742997254018271639746967698662568463868821052058374754854412251697340842936936992573176173983903546538150393305344572187891565362666929834272315078801262284304303986376409231528628595302330011360850342218647135237386219564637363006621035333113025324631475360385218913052977527762813915259675290394043445028449645236990946639501839605136651962402249994925022864495250595798924263997518126437541170603138904460689604483598919950805246097206186754734978788723475771714828922748747657816203849067251041312032752695253633023044118982988832262678551114906944364909847582486818571381881519859864566985578229124026280195104141256172827885566817590283973172654405399142210568526116340056279616423739624762249612880474978538347157201300182694193095297153008739521657569134939107625628373429663945138502428532600509646013675122440719545462384292375716363924765241637811073709337206489297837132170590066312081654637799933893122511881136124444035622086748789482261735302544416959149437401536967080909921614039111051899050711474699681836818627515861284920415297858730477913939066259974104434439901740291474611330856293857158896075266369202430440771143982597775725522149549306143301339699781545906160111622843297556395297751074193845135018226773739587170886876188276595331623169709216140442596027545271615705567594132231378266060975730035853898953075844996076037524250173073383971281868914290037245535764214944001629603634450988163746206884055170796047844540291402630240625069028369807886298028701069270064817505010383626100602573301913810855608814411410865935326165949992083170706519457671827798621738602323327570069283755555786744750933774866883636559900226688383161471904841210995345089182975587600388972303932090753180435956018131363290582259505955018727074606488500030532718716825738795292078625506705445620195837004297161547932583838100145747216913161507596174595722476642648239755027008039433196199614727935634959938049892674847528493868783669812853748008883452145314940552286941645872088487783566258545966504027380571193589692982762324638108804882569618831176875528165635825094427608215734082985625630722586746651963506462495986992192314509489030859139705293801546003789609262804747354364696812028556387158886638842141780749136652826264507831121256289640461558371439467241711654380212049674217371909826670676509480639359906739009882619155671548958405320306198020167140321853311808540781825416025300544583637487941769882624306641416330677327748030052448241613676046053343756436539483307508279881961670160689457807225152245793035778353778357652010158596031006924298698784935438431192462782699963500903263313533750969005513036910777532419985080566610225105823511665104998401359003207398398032336980217166027876898731218253318781474089340414510678047371427850769973571357307137137789535129224962866966741172385966283124631083774137935627221875908919365177264045416679111541383755607615840280524555496562942389901938383656012429871453018951443966336898865643971444472657063435845465618830131178978496925837156885555540473223619066470927577194184657927313322864632728811561473516772221315176096674188411487688060556392880958929925816882932748970225932567241993871252647307833256113480773878613210858364175551424649834431740775559014220159820920149110984224674120259778055683251696717359093635383024656424978485055454397118811734160583708154993376872723823835215969428263545390966101128738529252119005602277542848536752497516948813289808054289603730486751977377896094588042839641629087395870031442649468728645529704351907971404945883390894572685971183652457062952226461582846209122111644419381271482537619088214272446510896971030868774034825878777762229699414486876532514574563774673036502189163223691196947751534823994779346876812589421880888822084952256004970258643943809703844088236174389500245982207098309451951411243795024415902044001168726798922610092021341411802431952363519270866087739834322776058267848411449327943626585992107539356854701052040157092774799100654209614799547671629379767703538015726632444147061510663768298116879435668836454661809788200718688095578749218202394309435878520360153031139916449276187230740075768698924766154962560070751416707938810564293041060805639918803145306196169080366228976960693685354410112303093267530137751886602126467558849341213920036885896142253250104676217105969904912147594555541809256576663068956294678330026154099473417379989496197840829152799616937966088602400866204640697094950386740103660515380363709275557046431556519782698196036467621729958080907511298111842057685392785915998837314867275638436974360046245599131348629611762832652077541395482115729777262506555358903524668282681452017847334871178244028823310152827161339042412233059104745794255942167088083665899816446548947553101374764039029422708196977816176390547438986904188314368039032763508578966697833793188342556824737829586725014357683634970663124934455124168563652299204994981760413646998208706263709537845996478017639314719759577931608504960837370467550831333409540376864147221964697474718622442152482398140209927727607516625972917281591384957641735016477198129669672037758014040370676148843629086319927368537474960984593325142574957931226737217592192943282203601796552158414264875105231588905869026289463676893327767236324529672709391170212219827610979037178609307253783256809061042506309864854459137492330907924892428842863406496033426578205317952605462841164005020243101854808092449512056387052159654678771094908276690911846712567395464541458345273516300992767440387254858998916898412595482702996146803932852287023281957096211690613386936177558404240894479003038959922719473556463386961060496618505895065400022428329426367010229123657394075007941165706363947092121631580140488871105856836376449753884391891411921936324988205295674154851613580075281800262056549448806344944248547824798536416127441901748867167444783605072203038001476863051168821062238792375126797270986868857415173867806873325364211229781953200130672916304651688620147565312551909461445198764281065228809016557578153284140371664122207481481748380043756219039791592240166782184401151095693462565593967526824872776425623147577188266023143497161788157455150312311099171452241395772359037441998092524369015530503928062229810647139650513468867603719153259282476317985518121395208708958007777991016655876899353737839177176767151557885850627722794749732447980839059087135410942053015092402682822500568029151350037910770646769400945249220994229109723479734261605816204180030941151291160421516377627540906819131410024593851061556959858360752875425053804825421807877101253417372371320797614704830475746146899531823148061781201647703948301060969741835853162204753726299955687652119294543624230303139428375018949060654978626985577216197400455750758292839916730044274013792839354279952039817702545895357105610820759078170544060733642430315317641903094410455987124209577744765062478288421667237993483073562845139131122860248911619569833321624562470000412689722206716585894219976149591541863266464707041539193207053528150902227413904297001444230003912464733223514039044650287793316195173756353401064325847347265443971130319840757243695198455762666359334989765463159679440794355839395996821602747890599018923164862522116759346878214957548065593754716298762556454967496660999844221988342778175764571430619755466127316345642037298419997135545280562970647401301120364479359466836319521194088794205308743607266126085393342381587024706768574984497576986067088752254909149826587639724019023423381497992860980016194682127302463643281270358814782722894988539329255391807708553733505224138310373144858232052575981226440675988860308256033409095850392479640204875807149539236153716964435817191976341556407766123813707524631105391925645770075730726746512264593691301947762806551414539425506356770792914383337712839043230928529187698774821703782984829484883420327454403930636918570889408882362966986878991477872677574376567422167682583018822179697983720263964550345342741575916264910968561871175387852885904816842072642429693686365950466118346085408249596248530638970917159134894473260383503998043557543724601003922275017552549560898575916704915162616064975432891060588814117398736733468530762516161521560062063435914403118404858483702660704368210897608504926364419965545663285870683424707815102271548854838376844889027155795216100208532702202848020490609212217972788795425078392903673849884710088871913629665914620535587672158861299827142124284678224369278358364647218351271655100389140555314508214016934532859228202557669878920185141608016072807033444151483826637168941416123910290720731671224800433724013766880667201887076081934296593355952651695531143660291010089578159548060031299591638639270648258512681300318140843458946762075270960079262272049376646123958617140818468159183031119635290141928529292972379520908770011341758520655100869179443663957840150409650934427471884800732904343730006536606800089231931969854752805224172008129194076623286254173567843527587496309901049397108153543493983124959808420894172675146206532552680048202325322589714827830444205375136530577031725808566515241647560980472047221320349896722154482932392444377060220628208614517175858856839349764281210860463946434205316027076343467061196723907059564929749961815658164305095201172466700073255786996264204267830563500415330576901162928986675876813805223184228272641710229615551829359350168518873540828255494289576405499210753457634574456214226141974462239005862899270542988797096547976508139412501534800502344775048939971340500636551348579815120217557644996926721083249977811375072526912745311195501052251847416868143414287455322076651283878425580986451291185001517692684977078101674953889035610601313869170081316380461031950362260165846552089490582877468845159071448347539927198081978325298565916621808561445956987031016594457015961133595083482945557452308861946668118205752642923557532407962554362626216845552242110309076309761718855650250458151840354539033074885924362312601643720125602506738341410240321047174473176047042998216983153290696346666641335884014082990291718313692092336682480815258422283184829795051318551294974527742795315841458243931048359938405708893715634278479979686366153603835993094321177009785179765947026824570471391769270298223630831715170184868338996315507362116908810403692758992473233621526648686529237315999620245561223169830674508448043994091754435918278876976187523449200570725939779159629056585623203200591848836676044447291027431737936795469003542566880338722521007436967970203612289390551467761442956180292841715205657933291668596229284837181707569560014631936601350404572678692931466320242157273915301913256366057921104965330502446508805529539839251054241909530021654230855299810858188602577193155585963887082423693365812529054086213123278162113757725617446836176254675799239421658974838126539823029213775311489626957715009570026492104702540746364883381790048107695019981671555740526375939467428128128822656240268828129931819140144755116056758266244397094682827371324085572737910539466229244098034290461408380334204006769713738661280763748748020864882628507182357807415845081165079574320970104600616175558852715414326591424626233649541784119208734727616204489512299885682421209935422331782940369961001579110171831361289913953923545083728085492430563499167876105863380802454318972456235987753789171210552765541133332588097058162389425141626209964366580892742460698433096283021326952790944696117217690516705117919729471225480826568277169436295797923967170338074502875206339159099086579681980312140888036880716840867179101410024113628639592308127017725071159461823776915659136869096148564067983816089503487293460933389637946626422349308423376330628199200914838141097599540835798967274709447786981881416013855262910362429491893991661317590469168222789589294471098478097291886079792609202156934335562363199632450442465450120093517822703353872652855835081517556829682565887943212793688876550836425807051245357813861628802723772259356009136055539999518907834073330417064714176631972803681180983517661551064595236771977421527550078370714588379731328211158222585727558121237208639248531543171546939243412206015171959090105260138415195079894783545768946569993589957090410262894487735743309018018446999326402237740980303129508359032390165757667018374928912981888893393481192890312103607677153672876694494087829949555117040321085005112941674962656905685865523524115452426475244556331354949473947200050060297711760734179568031865862776545215350715003105794211122393157852621631519755629687937950101953393663870037354481871188018627345968025951788068290101542895885107525640055249394002361826861389784273105473251038350723470865167787759018671977792317676714062527814464735461813989667001993967297370348676041916017661395407887327515130423187441182262337519834949949556787622926690248768045052929340439255948963526816540350588504850129648341960322288488575402881871008428523580860466327602417934743346406913993207972894405601353676210459380509784905693985001779898523822003260369470033210087064352886146080949257511567911612588612588502665713304742890976424429438815360918533996249458934329264115223118853072842568593659681695061670765625306131437566451237220890058099911046737532561988435636380091316892133640367202013728055744822202492179506476360489119808985594811968844805258523773669529033720248065261997799937319784764422619063513494209904801171396891128607876531021400072823961713976231042425370805222679280375439716821150488705121948671672686468268364964565893615794123882929968131330120113516962711763445331109141751953972957070139248378432643412600391481159587707081857815458683026298753780420005752954286522721764583208647121237022472093732326050169024650841586341072826803576637112339680215891330705652161842301418491782599968585396760674294799746563608229551591975898632454260841456743185218562089261585611228722345577164811973044686898959569165024483748333432389517236683313997562132483421084992039679874847777479925387164176645145361929120508629614974707919765495787251644366688069945499562981403881854504914823858578445610141900995678250287733509764470137061954115031933893270300570661182967527045289185384915705149079965426552045678020577436487425405102852961302315655760168241156515210452641685535481029684482737059809689709941649327063237700950600892780584924055219083011990887112031023285157526568960782409730111315578046245746262569562519046673682658093985372973990052848976140239329551506001802603952114076053262128826544256499154899539982250274711556077416879338236676453302610769064950538652080033072388811830502148046073172597286045547211153716046836431066110126782887863922376209004976548986268890591413334855222827684476181678771588655564808541401796538801806916975720783209738309432543606165591225791446146533806414262687385451179172220729174132657080183240906496013727243471586874185016560071170925488751555943954528024134597345979458029586174418625205010817124466592979203507300977628370955957721068302702755684587830708026966674617886952113404539665656266209855090183844662430946781412367176440774550397744018365324043862988597775923664270934101150715577944706194331086626100645066550212546477557480222048843964223697366927026515282244452380031531278404372883702099819364452247945446276858061708909290906519993068116914371303047117693941889556411536437371608919922939498147541926757212487283716144394634179713205376788169949907245689241019629274531078131494985065274255688461289481718290833172986815473520622254492523658146194126622008469701465325493697738283113542856299687024984362736425902316674877251256778507681540335119708612494260473924033323069642798764496217887917724634263668060328686201224304113607217738799129150273988121451052801838256798100882042090848726436925397901598056282137758339898091385777670571556513848147394346739477214653575436459936380350197911824137634558240186490563023917892025506097884023334751876559974424734336106271921270761462300303148652833159883575060778859818350321878950903846903314322058574722945955472915944959459595302221745601542664371368862340249776526764647524337798076903514231631104986948215350448534764499687508857269685062545858466655948730371664744975122392010978806422691639464339423193423083449187135547195682366036097014402399134109007389152783280183081824582527955467426482319810250670159393628921601354725626383439838383907423280469709694135515816040307916608776555831048673927684668962192693493068751102408976899526735226426470641984274617422181377493645298021425888104284971232340746159466179672826542813477170392853929425279930868582172301387227941918938973237387076734848269182747678721958915671258554350081654664070160198242395165911138826363585460984687613199036979663923377995734940416695595150567414733013098602649949586992173105603475263974207082739541296953233698404159379576159002768284782808298758717360489803763935107874350145567132321527058303161449984017689616111740672174848743683442151943040630969205939311678298400840640823966304043927750092664948479912674195779394690011536412173743210112006480810827261669385996670802070330935770281698228552183415350462889779442442063701771574285853638197226092427336320745678420654847235058180605965990871088403165235829364077532725452887189323850723135834961089731455271260621467567242587183767797950169299680974849659325410386021930809009196888458024460659745615103484776911170804661418762404218610384478360946810798793558495105753387783374660614614608931028377888120362216589473510805021738272169915517056369047908724221405443776658168627950989250708744325701006487410007517381992532164330884398025961833730149094453122900571119969475820595438667102261223844719763325968430221177847747196512420112541484388252575586551573464093281226654714929195896988789976838580824501452967176848793671489898242912743430003717533658226456634417566257284357188224247417877005796647747424562289709863671587462331088376378279716449330042492378655775743959101423287640855747498113554575215794995244753826985597919973835109883896502872783063784357790928655730404868417074218699632174108021893038488502493320837743722292514017752413956911239505820019510094039349697998010206098456501499258182503722445871154428781421732441426301568256399236027830824956308355894122221141575890203234414263320293371932494878513123504177830197748810903397901936934440417460070573197000468444440132441015038635911496123898855315867380044711025030318313189172557202905596958061365920900353107321315438822701649044340850229884942194577862534187987238724663394684368958428896823527490699854707148487349388706176447107427339173966337975908728946660291627570963943553695465496273079092568267287668209685523254026315355257736341453391016956409845228051642589689354730398332422857574539293575122262569168214709819417152125882190253816614317743076724943462298585530285775024933245622518853925342776702892215845733610957521767316243657594099198990812529523271662990659829523252602822166927676610741280979016971530369498597845349410405443813178404656082033921459749996839666816610044049494282177306741369374646052709719267941738756213422521533751320157777182602318263860506169502787481820104672336713422990722908804373568282353789391314213279148034746377993588177742897586461203630698017978990557156086420820177093858645168685580410075237271541530507452521879014400083951695103464214539655080309650479934338254312133032409405485629455833639952145680523719569349557103121048976733493805674210255655093140209945178285051047321997907420165499181664381777306433616248823561418383893858248732009178420555686048443790709959967213946341259737494977592946245886209809493556573457167832388985077541653045446702157206848768118664501357832987733649474222282634326003855693701628444600476838190416729659064168422366284865943313164822004186829013730359905326934506291090980691904346663006530637433439958367485307444422228438934000582627224322274772017354213437293984807642495778702883061708977645549576524351778580731324602470439996951794422614516099622941424993083633117196366656117407568002992929304696930766019616794986973346040799750450622397609332781046739003263919574376849290001536978360714955797704977655768092578524891196550735527977155162088299331248258811528480758909041814076811788304034247126994744265319777692036880827658516916092137743865647363952168822373284298749131333406296541448362221879486823593977469783064997349705258543341423375205093715254052214166606875455491904967128114845729240998024531409505332352354311043825146962795933623927183703871360765387639836372259776810894157590686059845389520067940940101589644471971565297682562375940543234468498983526322408284246250736411412241646961218717503174663955411582174489187012496348825631455649047749968310518136974064920863338736002096716647787678381075841995858072300832650456490686257227895027308531041908463788311659436184445663117775080281252653109252028489964977038405379925612473016614292543658863070987448105105483121797493351257450395338361476416964867968807793546292076782630629211693085621483573125564875906168709711561868007498357391181018435619897074064569493827023286363688691109877172831940841463285203987633389403684093109275042873631701420391476499473116163040157782949118998015228444193186981657257112415185411444373809275754952030916939909503703044172599708248799154150326764159300236562201351117470886453772821189297103091091378652314439901917006310173343360022158041027478080744773815217234901794969661863897377981160017381369439206805053399383375150301859277863766092443006489983581477258613658940425089393753064116427196848680265596285865526014391651342467994068769554847330518036630550107643669856914904021655711069522329563679222653885009777213190327302280967368938585723185738272120363340165891856874636431782063672771694782001861112633915622120703730892839247262558193932507268405216979157942255557529899999198955726521887214807460050728599791859760286476905922380083756568407350517944101989072199047476570514969751232492946374609635577135401385293957132774147093359243787971248406994506779433175029992568259276489531688147030280892675716725108626396877914391475960699991706019863279586951146500143357902369400113287956777242605984817259518948070855043568674765885636053847073370035317836910656131894906305090810821036854773352652381578596896193316284574216117301033184754820169088075506397569142612310067810322205117191331653374481329210729838182475599755480683743695010517193051657524743339361286900197507568908037578514195449837174526545514997615029867095649540423470452638362528885274337367684929653767023791949349590686491026742003800518591078027154774585313355296358966252681209334421327581851456114443465396130313048820092744489421851929916190076410658735361574147448527912226564073203099685538553207197691046053379029312864439105475412968341621598315356261465707035670149270898823965884819615141631952948275561422441161010739062762036211581578728687223176015653895552446478189119226800465272555958185279659779339904676451741994181055734125432726445789239608923606451392649832764196837320212371804464026360376474180023396916223928207225408184989581028748784383635552975863897932454534501586630990055910230511718101436049443903347128339049816127190562924120229135208531287375672183552938212181993811104161278082675417708387192463976960280718701770330739374080805984752327512275758219525247447852707722723545908876119118832533116652197074196588470228898007458447798669110361866632747443575272011931341422407796156825521295206025506774470343602921272380948701572366581144169528511373485748027269813939621218215144519442265274206548833676205054183002658109033614275489156142832421790905129980957147422952040565781402435541030756984647287891766262317052051440886355075853947631100342793403732373466595143236003628710512685656180371379558850222151711443383595907848806231465603063964208714783678808076392794206466349123126739923881526759877985315884033563075260545139773988633342618829185718010960653977841724485685690169346773927645486198386632859951980347853467372530887568600814511600676894676913433583226954305963617131282059479742260296291095059184345346466478578725335415023650652625229322642463604420857972840576763565535322656244596269391624774594814427409603719460037274099968405478829619862120554377690528483211208082431509787739968556584480258758496023458522087944828112818431306125212888639909388485078374935688092939317537507156350083711958219770276857898464196755585654644960984841050724444924086739716648055353384034210327899409624638759588982301560777938437416169250355124291099675027127595762196345593946704192213840534301861889149100885302600338713630716618746138045193319964927725830430254646081475381937367947938988903838689119437465143511290724726313758135879426593686366605238457826110725662632363786611378041816268957244350110125375709188275927456092240240901329285447236191571136377696143118248369228919581422080013401017771747660608973578016110038121789197193833003722774919931279889708433849271521659198372935022878037459612692346470755116115159577233304189088999940398604164040566414832060747116341653048087546529237875572309378407611997682094656407464992103831108400526806599725544054274149777444604685899042713388395506570761819576606931208546143601277762506894408940154918661753959878009860363962284281368639432285298528163780833642698363727198903294506814927401967061775582174973817684354667838209501922625716563366278179271533932097859217525876946504958914526001923322647528836519725474829858676983194043036202461673818226999824563719059680985235788297970430171426755584040587312124262681404849350139836665020524989276713642117074586674278092722106580114533747313721112648531813139102694093944262267505738801105372346513346173318353625938866532858076133095648663127659337874119621496825628410942471418746651504755134610608931973421524650156387861432322435393889502238144178348820055803145900203100175629970662657830501521121712651573659035229559552733866680279532359725997365324617477825213056138387555962004174130427580660486984592402911386969013544982604738581527267639119253937320761903511655925428023142200760803930717275983762637003463321351920916395224227814912454847003979074709591925451445911559539722545874103293959262323063984681848541175263029206147884614175765860397962008628138516244231811029960604464383010652596554073363099049543406930267958504186501862629821117607797924987793826888080567600792508342050162540275217998249928003873823600151623170655249337547848040131680093348138613777287935342255524011865198655564511087981350675147434883621162552403697309991525031159961374544520905579046846884831002664317532471471515058080980750490704203637844059132196966096168340796352971329204304182255805090958949020205676027927628030314588734312468022134975413230636759748788669715895157428692657549618347113176814192060874913210423144402732615167541374173908861751499890640747680979735187841926520829283913966478307927990063105490729184309987454769606982600481618208690650802904118890566497727014991160027636379316839697830516694865343046426510910617198324050166349922682828987599838865853068930101901657604216542441471642079180398464754070080257700155107338282601320910638207134404459468079016488606957504258403627341961723728962500415940817776896389860731113397967505615728978553201730026443778339652999768184057601159142930243279287567774785474919117650651864644854331760050200493344294489018324745266273274034974251361871360982920185570051561622380370124679643520698058605005697542434101920682967718158588637635440103648972239031375874218812035697245257542511193752061145821440729211182181256816666622214873796344046284541532298114635910010712146547381970306168152277371225632829810437639576915174513267516754270779124112323396673629176957800742570248137931792493453318638817396801676691899154993665341864242580502256418535496926392144249861078173704320316356656321788375342852757040672195572341275959246881735462595938275514790460706098730451401776070355416596610562500313493985036993372184025410488639528025480289367685435167315914297229658329963034733583647048653993545732084888764921918534185549383316681952255608562210281611514449896105594748787913246842656039252733955091768926930589798261225576410685435718622577521003774401355158375687453315860766389075611009353956445052035346099552621249544715601539127355750914930127772062616594199017673584071666088900414577516755744142012634247978752499917631474700066737053439120925824945037440562590972529891082621561557452441469914092889784274601693157159884118912740217421349543856413307339471102408011090225103495880728218305606956476841886573203213908608579708245543884484389798069480219838629193016180566690112828131621641123714416492065695728244252924889756979242205238963615761732146779306638463464880861414354025827736221510922772634642304980687615331548323520628583431229185684524931432746687254290906470088347230809559289328084533302579742894205698877012248916260914655508953647319484448098001328162111609158169902351240941321284545928786323097697590019869456748457101850234391499387225005946588411030872956476041351805454282667101993324226174328067177597818852256669459034917850770121605037134758234813672223634171550841707135270956288035838834930330243737857172941272935745607426581972627115829666610453096390211905715401715531330893020071555049808327178768076243663209726096806776589443464836517634735596354668416809613074206873295248238339089455573453815145938585513745143080007941200604491798118622153283336227433238443412523857025416501253580385901061139822621262847359995480054824906616684519684740112921882547465083300322503750660085609045118186309273347858016972731825223802367933532568540763306985793427468087906317899010902619587712645518496217051656462564390389006578676226466820354608976821676299316395349087991223453745763304703917042297000652722985716663351088071814213427140860617573709345483377447347907332764947669836450957994269232045264223486876454492863247009429373430101629223311878893011764865923822850844093677057355706671210530762479643317370383449557253991621335228777680361923412571106893335215159898590368162686799161262948222332045728113007515678830222753147455842094948757620576366403239350265003494604448131538278899195424581423518207419098434632108170705945842961524291091902310783577351137464862582325782973949951908499088713335394756379263589010855966918762020174771986780636400676772943157035676918978281318718987156452882254623492066188862586949404405943993319483081234021429377937712461593414194734883920170678763559172635471070785235892676151119996393074303048334340426988742686728384507542653861003974116288214805815716296230522172385781368874455363332049999973220222116989376238698915007782210954804150763016304425388465766297613005693377061984291960369719083627790267853438731201254725126548993941849764434290912423209121282142102508715857468373605643930362213775331631698679013754366039791392223769504960610763197833282079541640593586935420608875390108890270121577395516451050481284984463854786785588555313045261576581954163895932478494668800162296156429589942011279369163414439541155264971741190368776305471971317029556856919083243698325683949344837399743598610351156304145260389724834161625441232801020842237287098880078354127833669244276354123382853711417238501065919869486923384242325348133529673318437004997809352017812567883500646163148566203191593753121590635069586838945820816755799699223294953064009497118973512204090696621708559999618857761374793322182269902407820709765175685240912550183563271314919717137613616437743637057703097208264366299586763989266493320402643335252996100629654271658804184799867089769431786026319617808235268913998606941080984994462782062553662708012618860248342524821024240418144660311089374117131241760270819882098820351523484593953397424321132603315745987135309897667160025824438993420403366605708774708430543002367993311673143533773124701392390497511521493160305249922391809363927571890430644877681281879642582731133030200412853634608594525517293685494422727550859322844182651420928695642786357763908856945869721244231847811500167055549466411431015021217852761770411850717506693750930990978440894081555487763244891095736067641590753153090345855328520019486867866422544851859106379284031371530307366784676172467970009897404268618989436135829739473026365205867338827463712057990547475478637984176761195230854159290087232461736275463516145744783481059782610911259515648555665231740346611838886782666025908304235207880331182212979080863066170017529651417221957182664360401433902031316775750908811533659518717879628088937926558298306800189303327547554640489937104266737422363593156396127345275555000005946813649906053368710351135808126615329076541477837638068120816015047444522844543365526489264034278338162690167300009935097719761100450097064908342557405581528443876566726450050833407819918886511608417808273199593047192069027165172612282944432817003091866409355573867559833416231855080182398394902839238817537484764627027823503435721308742479148045668220703162215247645722343678977678122989662292604659581842911834371267853353779817047503399849694585774299607012980701830814716594569786999567145796910478630707531623615240956047517093945468487403314902164258559629507854970703279579216523459877468955745335634417883681641878219881577847908576634563958833672158699199768005906620892764247253081024416791649439292183161601580619642895552259459585839940508437266728375196169549116094047485270576190516059239581097403368861043021338569995643538420862281922592198610539653888815238411042490846622973408192442966963429201463497765992237618260734606108630704987359096112006514991187210581398921542311585161226142957712045610474538816144101783648541526073770242095993112950599453214534218691897025847867315091933694634487021299449755147547719224124671404538708695929714900158855643454876448685280239213182729621772240537250117190399056134558808423944667469101064507966830733519361935283383218177690326084102616942711515662151246030428419796895491498091233370114973357844444721632807278509612767860546969177084552972507126442678201365955746366829539872305674099799682142525458872307278404964079518790417372092874502864197171367524661296973508362214542702868677965770742241363313773063214903527805118937941226992636008895427033747821105882217143331360178102497822874608999428051961183208404529860948133961579466843574183469265769742586702052618949900539972699557761095962633167894795887275871065032336408281171609505784365825174974410896736554960873078750925191750012654132411650729382733073303580597342810777260159109794812271571593922011715585168407167086102017333112200672461805932962405813714292859525769377575513002372833486394057214075601331598364647313813108844976090976308961349061450321829385011140663068426313406230949680423591097320451257524298076614437026416805087287607469520184078129372257563740871172092788607067359287614029973716739132968700068317769352911242921419152711772589914566441080825799124448739094958162898641668819869939099105141333814669197860321540279875047628637432962579338550214442086991658779757081969351663285287758528844376043524458060165458235879488382428586211462450593740940628692672483386208440260138177650372553627936934764736599768448096944892228527451281919190647270678675905414810573541234127465014514441643786049788356160609021163561465408615708325204873899804903213731184745031755650043361057342307730120556858086969668511263428510510849271230699227177073043154665264722521257881409828388504270368595630523523317608544190502689147873745670577791872922880839963991601559380157948419276587639556249632005991675840234423825138425080910390450156415517493683144343511491384421143104288445615474589025081372879390144994464715489509086519996102009016386897082868704933009334058624466641528220923493862699509842988617353827361709978928786494086241600508654206226474273271186962563148453692316698232412268777609393805531969331122021679484271529719667544401813543699091591636553930653207786041414580581570231816475737853772726505521093421771533701697160851361229220048249591791843852086493850168074534379934815236169669011138727589779302515004398914629692011175988187598290467537885408825049694692638435892326709315084287423771775102119162661419104598429788729618315540402396040341899776169163973676601535986156742802361913765569951700086873704141401880012502887485196157003339914017352921326279276662569275241402616239544832221168771686696186601119852967333068856391573747347871781234087281133970249398267396818873794800161510577318399261959971427599938544256032188271661394703655893002537274927967620834293387232966236060057403925436090512619286924963099975546476087744705872132709358187538295094569769173305022005885464616277292976993174426872108373685529847235732318261723340854119256412875549944508960962173713661652772217090613440486822530980559303669034532885665899318403640675050771384314190471500449645796682905735076345389905235130122249650970701036768719752002004532050093128270662740546333525431807224662746471407715998951315751208672380356428225020430419265963604797629797042429607644626627242619449609706228547859283886674159815548252803640340241476552143534625681084603639104733720272530991857711760183610205710634512712378635222991918049886556062239586798909899780700955475033678746864528109319816314886413582375329882567466629793640388051950606705946478058736946480232284025985926520036068236294129786964673359256021675535324689233702125066193795285656261433338291399923620552663590579281415548242458282964027544597281267124158338111588703708992859090128469444802494068351431123219662337137822214582606275008136024218662776584757211018018389882781464596332895740361763370834719700722403996799122074157007766285063550153660479938404585192508281806611081295398802187581827815231532567920285950743367384248957363765467735051856093499358495892896302319114847463464962320113653432920555954910132753156808998474991551643365578560944997307406713879074721463976566106640556574232492331188031443561823943076193346111314188944402144323873949445569434951934852549897011831015296150960474686211679103504843393940918240977481228350377988470554349661766327301085980226503466963223955019537463819965470431116185066158453157039919758559672983934804453664827844980985246623955128232393537746300108038309421475742367721959213833938468721998745284806541716853243297025589530807961450203961757940022392682172547474207638674619106282299392449124677906022164469958093576892274074501026571787729542567674043140232979913151564686766308191723926862598151148624310670174751518593576718508553328325046558389562061567553107125550953745569759864068738169666053105905918525369392078988251133093911198191718905904805777768007087173332989984920150555715546424226721772465106380605587337867132099434115806043762345426371803609540552995298142375537244870233093222820907757064135266371373038140076492733667388401018908110564075594817283460282536664409203085359727436126184525044479401949388613476528206514336004429483258241202483494022552621212237856044751029983921269034043808058046870890405993610106554654647992666637982252911493467757177702326935333280917855293797991924517184815581534775384251659557235017671158980768597643710463667142562215801280312143842911420260221766602374251766418344710660118002717479540064562926396995153701640576296874313628259674325014393618137694595836495791528699783318697741658308661544208005355935966455825177847100443784539586491820749309863206907304349279761510908311743063537900247422986912655262232029917870528526536383998389564068043465192278596391210721386513201951451670138419202099283047791486475360980095794187919862451592456313406472289392520437200783743818985260066294864756541026109251334870442203667771324043878835906423824695723355953252127252216639806749724001333331538864634792110600764957387797793928340395884709333260762536974309155200751966249992805439426331482277906794775563877910608587612663299730066703009639358666223505933155236626088793655653126474907265405463378004971995943401227769221949466200769531989840903085110496252181088602733146271531661512874915440309160132948042402300976839851124385056702257185444158340456451836075363597959568601911470992044466364388169308042057804302420204908178972064789924445833972984849132654561758431000552144544074421523561988538354240649510031712566520739327601275237966732520520783019063097435388159576539296670351376183054628287461237428797381295072197794690851465596863859357435513546834310918923497078873952971032524203275116309897222142474936268282008531540531409994268275262969195433796743869696715462812669478958290731409582496205335041434520993340844236076725196420356505423526408845943858038946224995247810029587701336982620102089466683534883240158908227964045115502367895162470531261703932568206363037037416485967317363046583216036029214093228164202896846706332887351655481210711904907746993414518417720243103258915661796994428626827988194336584828387493282320388491758579420536709657547605886854028148546913061120754788893725242782482710566045906197878402718142363804689276979340550306715294734480747779416711552435948850123232759967537297227002235859598431443641260863587190737761433336891077506094794322399168221837322335552921059333165598061555439378797719582665920451413904082053261325646911613956298802101018310320749077822962592838188086048319171701710039989336187573204024352202904099411984092036400355763948067423250705338512462042645825129316383238671209862208419407361700545896358771389192489268838376716955155440664449850275321984867323120881645516836773013900484389741366642849548292190113549627328761486297103866915161092066662467116707678189609039783233926187451413080268144178577443615828117988819284933153931066241263942991616855555979136674153493947487401713924709784431166472819203918162588272937522266240314336474398933869830326128104698899425992773989014987419115214193386340659097458260199371275455716313086015456839810105058080604580053872865129697959549540472419964490326675299324466655799266619306085047651629338123119431093472350742965651054540024797141680934291692486496256225912488550399652048491367618693560495415232989069731362785808078290310938321267555397884206932769426276643993705184645765994048347582159383176758956755521126777111869600961087851541013218036215377672643551085871462586482620758135208367405281810525503173138771789860686289686390421912801702874088849125371292607505491557447995087257017156368330719422602890021371960936890202799279604923053301940623147374120583182894365688296196041277153104911520143978782245674994842798827008374286805885918690250267303127660621552954687407459001727444654061292276491311114090412422074815192756875921957260877775423162303901205869266935983775778261899234981095041723034585697717992958751061259259685580937810248547755919304260312256695283365765185081901853597061529242552650753981452174124737581030706841439281801669564145363731980532770788518823800069112120638940800283080973648841069487195933346170862620803705342556295700380831220879123461134611204583522501034358557160192750006744756535545856731260332645132795740316150761482760704843909172942620218135323650068778309344385193447895962653823545075592461419704192693022138366905638808536252051571127564677409549673171054261297960258033602027566416425703813702182675092864623637924111970798463544046616970295437883824053546241215010924603035384969956724118895443918926707597888796726274501081374029945425895232176198861933619764082233009800193341073157362467771732976567939356287324342012108899254169743966982171897879196384655841768097264787609542934502325680974451671475131547710791381612163347635916666725810479172473645914016723762014158386226772074616219707077039919753531888147801403876721768073722445898897496010123941962596296473137756963761949733407734107121196069584581012075618082609615250254458086020743588446647082976948797849332544201161048602149290681562294433921532504537700218725344097366263969374118201292844195736138840302826457913909037037308547122556336435214813212474397797037039154312843563975175320232449616087116551849646155053331026474089027811720863411302870000582061875415332004629389303645953711049067961707871659798182634339150927092408638943524885031120685767422394686161751701497067550987699117208568389443238594164966254708158411466289433232436334744816648218600177499148161812385943536264640700384760373418409495773526728909085548212468338269097394633009152685660606791855486788982643109527761845892178139513023682435444285298985204323237360387917087560604177080619961416906450940875445979357751726620007737410716548479230505546229589093560329128508010578191028021867286091278436868552159717882100452524537172342672632915866019157980657744687552857621280665991508861243152836305017941296188517739105716739105379654095511867314505758428810842032010095128641297818213904051147076502750252289955232493643261476894557308010202922791171517081417904300167592184830291548141764316502954775054973978292537549562276425221317866858091304914157863909481898777641033241725882310937010032617791625349547341672800760790178170870946367805853902118681830069965786664426271829470242226870171230483845984708387630074631326830390911213817687692704027981229840948091462611419680789790465793713601177076755439135441501518588876959563337371651872459969042819834430713581283544992675920636677028860733846221491837744441938196408015306715053482085530193026702800171292704349664668638283810156205380864136830973633409449626999759079231330388954125751246328551265892384470266602520448255518839448699226652339201605108660793916404530494194464820393604549120135657504268923346868798662062868341281587246132621433633701476525366443277134466591324107209821593324743261529738587025203975854292514468784467223477250839203199819342021415034976415908096963367134286595680951559569320977717117109162533875528255145042102740734885136727499417806445911840558419745957956301720925067753809197807781327810680090655463393633540785303374027023896527739190447650967300965842705177960277499821741563672037460283408799483234676980645727145286767759556404620485316177526266761955103125027072749053936890998272469490855081867255721734206914424431312881682781703101638153559891575334123393480423396287711337111582651717668443142893648656819671622833654316198323490825062068044970263600155044342928884925191245115012168833416331034890876343825779906699993587706964028524567086209006784512658150143409844819655930608316532670369577351008848158497924134721210806597853080871278310791619914388806085381513261171199694032715147950334671939965612870366067374357876763931921856538494747035253164249824118893383721721325484318578302716223537696938334921800958812689430067386036427781900639110485253656507605114697260991930111220933889599423238100827624128372968749367852837399825854500980270673447303141007450705226021778454897553202253806059353570840115845259339833508978530867844434532640977052341719375266575886636496387144426309767455010870676498178497685193659884461546229462580317707266550381428858165343603697775033915527709699224588400450100514087411376575370049070188002126798723861615945619515160463784642029837877767940573244478289036461068027852080717702341416078439451679402581623006316292928257375800292157941893501782725792572548951723281881378274231441181863896840171733524220942114591304207176968001579922224643377019095916335862006819898408454088730662523565402648085265794122858534322163112010231466637325802241452763667946273877750716222788565248948515093762086152998353124643439141482738697519732262754918811192336925306771102534008109000955291546606130811969436242819236064925777581015473871123042304484040546021793384377091375738711272592025205921053938858839853665191965605067240436969380234812236583149604684963412307803834515557032094847155259696301591698115880508487884896344925514705502429672493406741871110494092974400555379511166089483918123836296168979911077323314760540808483035073410147393228949918348600853734285899492555312868378783899065864746147902284855678911580874809165723630019551147441142001941316684937850117839151177837918390031554029701542125315562731474421080886525646634275422609806590211924133682523869675456393577356936379218881977620089533494814833817084737724661311842532757410726992847994018415492366750572983541373618185740694673407252730568996344119328751307426703921295993001595118350972750225001345898010325049951640740465276136140239304683193352360947168339254792920823659583042823347158202918114986200306662038154840494321830869072951393663478025485537973450999501900856766616590258088831073155265857511077637109202872343226080008916928817535956204705686571946236853817143058505812399912650801503270765262529523501924139354408268233490494074156212492851786414779975357240361898141007880689790725912722281141661703287216002355447782139186462400899998070114711738772575955799768185060307904375944019878543957650785881005242986259250317637605678060348546686501085967287808911084188378139857975469620437694576384262191657939540603559665522679130552933632368564957644797848286072372084968732072527173904396706113533983569790790156565218808198923239865742585663393367048332130336156092589263418813241142497137442390908887287321888314370262910596620783008904886883398590792222534701930438472855796731159628334056776099136883505004837201178706049271506522043472710320818968952032430184513935347893397173829356719830146877738842787899250729760455975273657044839538593729530621859413353076611611539834770754956663783633351853498517787777556650977377534656814319957762719748044193650494953055339540363398925344485270921842360508632355851608361091941091435353103440541063615944596096476348094365901383228128130973378460657772640450225118606935055079937145075876112650438408266911188117245862706665629126840908668459434745797946284976898188179925129911428589898255975690969774904472476306363637656453325197273114830587288719137908655759307408253696866035270923084882471470483392613963773585658053197803214154045644918548440972561161915957911135318960897222167823815840776900602985971798945169211227691001914429999977253816247376756380442251943035240812189678125711186160993354434606357614579886033743554029039881693177188371344833989827604472318269429950400728650668375497801408022713880279485550977993887593490570677576147488400909527013228567420598825742110776095054328606906263556612705478239521345284427226950774059440681056761460728999414723761708297172201190950301607840631735810126647726183042375760721198584188760839498449186663863577712447053282028835882062997949112706810135308473656473452797069464938265411122188075163863300233960580855685134733380565028708021414083453988390133125211943959143399146628094136924366548879723807101119101444997888010510010225221508911143745192475723656997168058973187796519639284737292349379977238329793254644663105659901954131842464465210095367390121361884678477526929432856167190288095974188838392828230547619950477648918646523563818255601941095840703520260763520002957477581765588282166209984977855740761898188524276694657147325588084720166538692854531693491569154823754167941652902737504360017722687802929862681458888435216434803449111947467982320800110621995614387490956772921091055531305156371546212679894823524277816016459887428690517919135888619981736912428323797115040079403582241914927849738909719535933674489837846523593632965553813961757799313643327226905718004768364441895088408347501477181711690858275352878194266504140952337479095403049004740714324003192424892974221886302787304398799627931030409346915655330237024836347034024952287231908552382989878531990715501634749814957250954506894241013587780556785795129805666601604640378788546782133563486614493259831866755544789833719141313418298684511361579350705589307726844795512746646286827974866614491642816744033974412142304098905880626570227421180368254980122552339832241657859275100523584603944619510344770804485600522643915970179488694158435578980083007277075164230885386959443355093036764727765488284308796736297135468320597967208254667766192086855491194194328613273708230340388371438320323786953960598371339245898808919716559222988264550119596573086776389766879404171275970422227839293450866463925568295886531473274820350645633065924532399816928418791530663680617634592058753135707322391077836180233995212547488394202093754617376327538441195765716984676312614358301536669518705796982516816446362774284644973776959653283839175838982593542416208833669951512089532088136292942615699005774985185580198202803511003386571113355820917323158784218449249772973298052776466541197480948229632018334481120726787980676029424839296137859824464587264235745008537273588892153500037678451146176659787005406947771326036549849948097148513236605970470093980519097779633179185271419799554108441063525205194493466079241749269098896852265538617291712739087231200872500909835969795505228917274852260651003649755510055055742383231017740916416329778800897812084763987142705698081810469285822361716556535126349043897159038149889703669817638829257120781779928621725428080145698668655977661689808794437478541695388535907044149877289314007181579486400607527892462367979873255151091454225370848254986670374717078725887149489262981109715051043812054456552213932700942763123083392388497466984991185596839870820512770561611156015022099313982724018819251870172891872287136626933866484021050272742379840629639554709567340210526386345618494920541556963805960131399342056009260010154930095085608762988238442969001537586167820318046559578962989620028443715178102383003041297698791962209096490271246798304776505155476519338821186147406614352372215028606832399852154789217812070597850237485627199307285837450945063028038339982549974215612021908051687627870375392976683065461235632503486261734884733118016263943485055452461424611737934713586548133815174743810824401588585467189513997271157323304928003491157057214219752119542083651484854666851878034486691976634790467740584140628370512407162893606533335925395417483814833485970964603729649215508810953146050439386836304296653618481008981892772687158140741395239802649207731959341597890644630389681454658401402140423147295310691092431158533555731273815543909432544944764493319634390109993833789282272002490700919441812056663691719235079620104319387775287269597707762330600397771966309988640436547744760951438905373377276144698102661406999502368214176090116165806665055998121807692964635067957685080851959113431627674048634620803039230813364255458312757288076655698880975256728551333154067338514284484540014945469735743164413415312617825014481483681919982149277615259913366526723035807470266300017837795244842662080695314599734128996993389918575736306305107754774798194948079273909532667022796725628228337140069433791467677538957504555044422906311521598213705450063558683168587823343362565768299327720206283379518163459894549070205491029505788119116118248556949968709982242927716827892878635060929810257793316392932262394333177778788801967650941639000828351773471685580873831513136373829473522637753292672516762887220886207068135618693624768530495362871174445899120968407873999229371054879776926048962306984195798448940987215429771039000618158651941806744693447893762917090992594084042361542423983295325610923730753419872966312033723736894827612252433902535624340489927126562037597164684071111771107377613986652011297034486929305395597595499829072432727544886674969195622615722649782602726156433189182347097770595664344962580323588425670794217203997646278265268797970957971686579233614763521354246120022188521324011230666695362313249148203394077771634166121858875931784775206673254914874119137487034969058028457967608669183221477105251037325731012884100361942436242990204393562034500909592920392748376048342771609894211387924675814159923743155018144208238496976639146995453988727608206037140055475144305820778112134687285427874042433914692263491597397447899613865892546906956325353786725007137545949858952950939079887990020119050651302530345130737131585079020187608230332712053252819329491797787548044030620263045971758754567569461957752875435669258588864960695361101948097469645013472839929375040955115485962358999758111707326705522975516878872782354828176589378929971798590098700841918201721298755368322710431610523533316813285669430151125516375095829681831560008147955471211713353043027073159314827420573107367503418005305580506165807145088524428575392825227522397475091921299684010349339381953255260050388251384910284536784187043966445569073790376514198974176084383142614470250934067351910525096607465741530918074498464861398432548511136197703064199089377112346546476773863360410159408146408704486853284989182235590289748566923908400915401330713373911674269336977608405265091747467275400328337411747623899804311792608733979838816668692548029853404931838014596078345040154698010133373131208646964879427748907802122205079048092065423817190919494043902920944539061374812807693299308109832750141838231214967740566126724864275087053937718090935461308793345498506525500123139771025134665618317398191991342351976940848040757741065246065997524130534808549016364075459121832312572364123493933419307545458825007353212579040976081174538523121619948869310074128897802197793788425127991676673737202377766192527029057561292813550095951816199415163812841944121366774265393928996138454923254082052615569447548816012734451551580516448972593796920357350668956901977467176654244575957839473789959545248882741942495006591013567634093651706607881674513447839143514254202111328758098080467937648137577836175390436468885983860942301840483730355289346031314563127091631122707744309547368077276378575017504423959649568386066887540583841883419632369992873898912259087894656641104908951227669469801180061225289634913100692339703696470308335090170044953876624523295994598706086460617782251010819223697382095303092683200660581905621922937087326639083217158698931296291647148748857355403437102285288026889102983015492284542855526397935725154573219519019808848006942114064216254104110954795422717150249842798689830328196040817136002624968905991494880137818108065983438826584311453973520327683575200934992900039845898577961700525584740813096403253025725270822829364689860020733880353890884023411328419107518819835458882573680902535466465006972383419473286161726070044831497797945819325426918922801126898650391078608270343086938613613025313816191207717490709609164311212514068519453231943988857710038935003527529604514602977212607552789101972093028548530275379173196252109173102332342568072530929667490107852248345903925141449998016044389267191066802041827860459466779975040715046270886087875723560349899864541745969286797721375741203137068202489376908492215075746028078257957578249766834765185094424776943853349537111468980144661638547233715968479364497973810225691739247889163011413502581802646687000481915331821484545312731979269988827353212274555568174249322892897453374583807945028902855242901568382122253838579125826415675668745308766648505258728005916069492046547487515008574293566698994438141506823088412337818208781779631155251696350078895535951200269204561557159901916884359962048648547011414760187393515105866763254533864582450344214094780594967880242322611075535761035302412598921919214544651450110471719298424346197407165390195855382850767505929776829075325633382701541649670549970718110378373818664944592881259770573926286579571478851587396281720487795460288812746663604101648646834913580131184434956669883944080901426782658771429466151276022333568723853731302804543611433080274441115476814940295997815424934923182212731578946904925268195198005336147975800862149578288591118367787996614223950027481548437879005035255646664014682332215077159353602969484635930973252478537197161400262833670060280198281380265643449811474745470857455453032272992664366695932295690397681404050901558209038056978577788669386004091658165298575289989659478444252507999408474742032280649141945271232801974328425593670015779348289817778612727600596372379005804637380893318850912071329955874370134282506876948176311772298422136337950624940064910196570907998547768231270754539376630364916930582359097148861709531031367367382137289986121874179725069520338909633563768554600880760107711325262260000091051853242769891039997477185686075136519572060102277298091088705075563354299553231586791251858409712926720782332731084338993494783063924143118587063781353569270654885737571045747610803095229829564701605626018405313140582518724528015231933421609066007557214903786964209964667738949868460800330831358116582688005437715680096141262121261681179186098888418294456774488424205587741397569096098022959416459080798903438110286609199292125917471180661521157309060603106277952075145988923806913655982272048407848201965903528804349168071616604001034640697312598715375442443388162916515154222407324540956716857708533394616702158759326803106837521369677973239633558290942964049333621685443152888109148100611546559909210301747121423562086337274740603254187844230881883614769672891599586653312989067334167275867446549922905069897445522779368569019701521676475213121308860901724185870658033596138351992915639712720607897773461200012626734219852035609085803916772104227203303342467000995874100792870030974707369253557019325908969861158532431406768351340135985874975466196323239547178894364668619552471441536338764193309332982883094043804648889866144250746449707709388250644523148902821122816599290825813965277572099823711728668211403154811449995951669772225059095102958821879308540623034951154539972939656705378191025018192441179233846435419204528396644103428569832355218461552018342653764821166788434299489749331897227128754784916544528179668495004418074016342249256965139857918281814161570023982417427691275243797800986374163086002766345180344594179768942707722513709012762715214440749619154427681311934847692858791374843502135463417557323282418800165106511979057597510225329404386450870865474546939140202016058849407208900742379588764548989135068124205495167673437736096815832470287327299676946495077763224902972580697101055343463909772971865979309738347417305891527571406660535612506914533638302209778505905887166138624368218456696847466355149652285840527802291563859487455389761564710584408789088080122165957183650595286576351179862136420455311970972387593921174259613489264924150367072320252476216687569308937387048938930708456487260190228342668685161524547916984473115925918533075188453690442223699110237078238509511222051772927499870505757499925749771456277035380313841345104987510799657682673791608038173634309038847036093803612475519032484344832672919516860237718014364305138987812760403615964983473544972701996423149544132048789435596683373499963029446789011098664916945240299355284570239639130875046658010030149155877439792772853517514811547993992034990334429924459628960585395473677084967117242259905020019918100015427494560511704603508762434600245862935729386996866813407776176151283409880100796270219552772528582714344022639999003603651443669326232837100839028319318874856147201316020957469576868553863279185175226846878031539728577771973366291420522631870626222515529359752038344018159355490531474175086253605257223485967028743760401570018716668444094419429975793987367350952419207025856549174336085665776423101352699407474070427246878102124955289505348184820379984146520041338354468446949509200238511059200201788680657389045512194537031890230453072803945612190130772424510425857365873149467262132003632327009457701257653846536700620072128032664479081543992909636342051286335371817766717511660579211303724061285036738568219251779656213203836072382049115465793760428271093799358577605101582882558952930256575334002820435715764704209030177835383036511458366030147739274129970398034342291683570399648718537936463960774579665216876076643533159649238057298620509244141970730823773225527664289780589693738300751336503345328257272158203057175645755877311730710758803652112383530225471283741470951832424460765973879478271831741659879562232509533653661245732692571755256886392570254440382141238121691375404738825328763054288706084368379193755275199085304882507318609376714975544927588435648609072339057943207078146609225802511324976657624706195230538121631694812223207027224335149208352311752044716783111106674036467283113133859922192782020384242926967151187867240350623656410643387056689893870307118321968416419509922761616555838697004376554878753981948966454471191588792923219876735791772191486175119397145662600528522751684638350686035857268991691609735033827703395484126103305171316983497572607214747539365614309374119939109941248487538217091756113227073982030983377418310561135776355098347078731898179277489871934104729897780126430148268145263350876435360707179754330589679036487425220859818537860265418144627329177231447501746256920942061704669220578094452470503784461455732655056770865304980972602098645833855310544803887730112867899491630759160911123637409951302478441397430540121372144119568084864859843482523814303775676103218217413309218952807925862604956079369888640573671007264935079969089156218996287709022309105110182669574107409437880633739211469988383315042621662193443960334292418803081388984363500125582438217582421402718291351182143274540667215024794226133853168874732958533749762748733980029506197032490496263239143326509007872696869631619699667432011346495183399940144266602552532362952457594382363435856663521328167123521575750171941055077749888075512154043245310403470594539618860946392735937455973405180114658424144221713993325930228123374067296320614719189666382608099273034509104145164101067994728445330786184340037613506751931398752259258039494056603978740652419809578714030604340752170661601518199496834236560443876247428825265625059031487989029901466555530501278831186538904291012211962992166649083964315333846222524483327407363858427873802950927020925525221696705378502175105560814173854324186943876927150124321988203980282251885724349735495353266740002078256742874439286861708454472524228095780209541655941876410047037778676036493417655264619314258014201774668429745220566634812953135151977072930778388612008799838784401421321730947121525398784142924115416921917984752311014228989052982872727898693535232548533861509336128552177094452049402212092509858092410143488936580308115634509512142066686680839074107761866843771038987220055669670310451797183099830252620671296539296840905704490051024715355687176023223289736578999184038935889015877080049135240540990157376245537833746741984434949975755014522932872165071279834109787898474287344782602533516558523446815198840768275610292360529774015861335179333215883242336101305083260337011048473430813269416338900061904281930967838051722666459215946142856582888145625124536385021922913204520558544793778563455588572818772474352427003921551232503871309244653915536878081158242562334846311271177421214578741654875379010084099378238721611656041643405461412173280641816943608017697000167685938296379597482754846479956830359402332882653926690017442053588149584194611871489430518834643514222399900461351278651300169752577663362233096530892382581731284561966196891980378785516098230217242258038409682884051256704724247309088931396562503735681937561255580865152433249761184623569957655612988066611121023757865394593849252642115298881285923455024704091488241820110203500303787541827259093537405115067938062430080062814660445413706606472267656358764685522734169301526208877235479954710976769557491573605793319340622788269822365535443397366789374576626404966307907565165854394326703663975837265292019265955748155539539181029346667603880082793106191137348780658793853179208006222431159627795659712094608795535791150478174794949395109826756383430183740749130359917550140996448307056331830297838133976512056766540874855450740490072495545800284326496504808283768686401553288894834579209645837560725212716271149128481663020975810673711151147441206824520593019686438674196464575923095923152129922839197603923991616038588353527738017171666227349007588503660038753424243612886207258779014099918519584939814267295073703345992576359695780753177630070590088550543840969588674400099939092983727986217038987013659131083267624468159785332212060377410177252992295280472379346520304828948061998528432900731855496300552292678621853039925958681299497214667196027261034786621600908750673444837993925680402948927392219023759393905371000852984682026444677218608649491633526852397092355423084936674830887881195616564316841063256491125997703658118957235213970131711147299128826910518515300193404696589770470612144545377884468179943297060426093618014874186396911182165930691494112609337398548261371084044757833486421336585718182781192358275685148050601777986413412290063074809262513625763475937413467278704010184692836279835760590812686645455639179954376073551547894805759313853413579118340677808965616218096778910635887369664433915535952440858321917863041013558378884473427311362054985668175205304125784433614245058567335745468732065378996174945849621532182098106392762341883392101854143116423702698895476265451449207155776690789659520387749525400633453226130814514323629987869804309732514415101167558922090095616208687673885051188471766372540549427905856206537827227183522522513760572770367121691361281875894522087320194037477776200885953297691512152510130022518633244276978877799027681513909246142828371659655943749935288317938415350202015597982008150216151816124900835214035319007864755912414652305927090816464084705291774089890592997518898435276563548102362583516078572087895361455352302733115789498702729111957205651104400337990461016942013328615810337572075553352964504263850010454610336820840510390479209106355569065913402665349140255038586091493948608340208570173966576840108755508647859776125473686727992108136463030867041946137960330384577163317132822961365851886155326297691290890302390984809825696497635868367874970653953493036899659783032302383307214020939579168692769457700523143803560696323673866471823852221073537256132357807324962252491721683113463343961073782893569345990507441075206036888864562465182737821588366869996388542663767577874240029324276952328740719122849250203061258926095315880350915916652561043445032896240380424744445161433900995046322617143461391372447677581748324466225790866584229934044272446992977681965176711458756515818334027819188059353347310398249626717688574939027514239303660299605134360884616385882502263899639637489736597813730694412820466365815013758391769709369472850088445865479694858701730753163236509959672261564862735839546828048054645998952068887869208983148685621324352741658396812855609280734600715547581825450100666027538051339147998044903390289194997686655597481231571448447226590776159032595359019446835208250320538891713341774419822328252660451612094246757437426849124420955569927533106417618260919645831524011587473299477108056974255647046629127140251824878953787926605409316513488710776327955421580527875005902215410233582603702095314801405992522086924318010135829564984290823600739688409173813554126808552894350370881955703799289765940753117567037214307632798416665694151980763483234506300289753043859657855889196236127684866485499201433426535988227816877284356685483683909963845576384123966767958643072764266256873214960013353174820961981390888957989923520954447101922543805799490883129910633467597771385580707861882828889655326659350084922066953282447083700710712050054454592795222927680306928401292209700564707234236999271404067683310194811877216144950176470532328450956230980088585678212576334534094496799251808407024563605395469478324334652091273682117462335998305979812310444909388365520616466168399276545825096508304813969345758436736177404580196473454346478826759401702374133660013448831072239512896762732865011342066968808940824046268591679417089825758282892739480297695033982745221222187181552459909422860271264494815864132922382580146856836045387484277298070292746024658084432663886394228451155061218696934694995520407215843897869429251407707145388839595425124376703553217143457713364500331259069773581426368614349494857923577444629027822878746045071653863617782743948242603998860900131221033051313376995340785242998769942475881474546671069643540586578982364544890471696931328556391722704795646918137259443052812107606384448073776066883692985415828890521970515804714367207993238744110916919285586588792200171548149414622456755595362165262642818409919740126603725801486757885020177997792669202268154555539951208922209987245750084676503553923293827781521819090013605324986603522736175819920844213659447950059338542060651951388901311688313126602632173787304767910960971377767414940831177629446138064036047101029621078007739234708138460055203452063854371820820143721127537005854369908684949886212038971158356928187728084720389056887003346611366278013575987344211463396665147665402029333005716236203190700795990304995237064883742054469104166352377987642396306273008102670435662019492015502724217241191182179093260570133427716211295678306403874914079472760594131935861080231726838288468565186971569969427236808023362986622034445496247865632198489198575888103616459829518355211355900284101419001131329828681621975700395093748113571586951066034578357507296990490336298566859189303875378364485158126725986309003026894782832039330844608137493796807421153083590520623967930975169821995567559601950476025100676667965295837957874560554485103303064583832135960315166726644317457483798412696367560681240203023795190230134558002457485177649482092828235656808349666577235687130613894697128875921125733657571631261253322096997583450518278755385124396022302543631590612970554128979673331531312783493119350760556730275800020466774667882444563042236612679768702417224496520549916752274968518697098075231014576486137324180578354648671997400210377209046703016308060267662244115418220848722616680747156171047868636225919239802113196661708770826082691592022421346580828766907017998768489330495712424605596969552051891487761567647090960120513112241414662959814968580869199841718864990595623846234704776195160725116020751781789095774426100978209195016571640273619923418604499191141978112684148289496039842141936102831036494589782976132495893545585806515154766896140032491359640782184574938933596229424948552297805508843036503333795604422834688705628972562082256788915667470120716787109619641583019860248188472001396471016735446122935154148923497202739172910174075936002500441813930809859829878728521549755358338109268588380692597283468336460335282416867228240433739894979354996742283880860000740585411409615577697615894248634597649874757648470963178327808432066770397549232011210784386653712921384186481384619908042722843306031035848076592744046843321342367197737205733744684149110447393189485773249448795670425892130843482218735102145106395887529846145417066684214391916590200432451635834505258703007830205664894867146027902463496196330580952063001454886053148706414682807180888026761226181795288765697692214898482884077197167020282979934653360281037408419348777953682855668576438325954209366222435594680663789961242405557584880675859128499429659203967723862470039129110957042537546215876395938556119729409838056635677880319535830854839845813187832139515196758964060092907838973958871177354499353458875942968033435166812802598433330394099244825723018384464716949340279969664295567608187981166127926277025107712298115501354567800428954138655342006406748967986037717777154480876490008897953048874094630815655435411823378006823405090660944580595265076950156233076600512086805850218729941385069557305870491885974778246418484560352501797434100990424208892499517307850200156312608887158197957375465016683082103364636612754400581658088727980189622717334354637690561477017826557799985059114376192669123424695201857171512354933557851368159439174149832796746534528189107420643455443645555029318315549415784915728224890457387342695537945404507094265698581688048141688138598876892904925666804465593480781172986283188584686242134455543123554839749534883361671192437009612338670159966257276033741647967875259978541132005378116657110945734639075658715909766796433331450611799333024767516126927046199370327454608598627737355950574405779932684896301747555001637403140795911675205539862699151148829540066107041140951349853332990211064252670574714008590376984181555152952307423522298731041863363212171881322565292454377078133571173228492903381891533259398992491838044338525005501767227077784586306235690269545104231470389230876911011144222742566280365444522510466601032624326489062045197591426961881250693017791933138893614970516853211282950890128837366987719804260627544645108310566524829853480148407980635631803421683329851263527497582611510432681649842464645775486441589789501173160233390893532269947380610448915062131628074310526841024434679501387841035968007436606410802779824456459890575756217563595780265835066908823131202882242568676331007597888123857075048177766349550403841285885636997724002523924098093769206017129469268928511270133501639966017684598641346932287884801505097965496345340937898720469947411967309976375807912660092803120887491064384681587075825530995828997986309358552968023533281281607927116059529428986695686744226849834995524930229352987143970583244747734178334484652466614087865771952675358262384113487654538009461828113678255101726689278555946923185256339305562446336457637339830131214066474904593655387194759833490428433099338619793045898297920398855402234801471773088359213320429993805497503218233805412144037481689341434514589476286743565203514551876420646952393475190600250385529102025492747846782347448461637870845171542040089534541611783660445993642551906959334303054404438677685288592929515103033312517709161700498013349511706707398619975642282352536221829761508789339699922622649991635710808618871110257884921137283887678384202326719024641941767819440736650502621748071665294852412430607381996626904263920568538376885227061498227534950015722901341067811323020130971669057481794147466911822253006452978880472069645732370774323019705054921458254285550955224744282624035652842445844549577035751030792557129684469238668735356625965614202602885968103722342190677744473603296116750329132222108032044553260962107962638240664710621163473582887385826316453193720058071689606688387868322317604897668410663207230020964745717332820030581435015295371757507862368386404967062148898053670892451948560022273381357048226564670966602283259481863334018099179921672537537216302595829312276246594474841762568267441868226257544953879778709301211045761835315248288023249856422396689233159804170306227787845373126181131972078984185315073138933281704369127319321682689274714245310863894337487682086781094073624208123136036642696443057706941563385035617274729147029921111511363251741146797973118347918961183927230844310834316183767786916322755228575405877624140872430031010111316242895915414647544660532459638046901406312892716862133521264109566763396571896225994679437199354753190512770350518724662235253964379200728273739659101971915154743341465496671322382940578268388326300408099401620537789155534049210335619365227676277921974054740942399268621645946271616342214348728302399700869375328058315932483386743562259981547878666780943868652390971735352614810958956389875586161348708054083534152866938225676715391956214543540772513868602200613777899873477812740117168842782864889104967474787188872983853957658522092794601862973918938147012379206841032990563100110473763932077487204319715710987364463585274688899876228968116224004147191152009414689204440587249503797738851231140599222360143309395500044320973925526785864502950553867911119733061735756951862015849291907144863092128583256193721691992942481352047862479990251562997535386234145667924262563003412440428307614450072517188203692352574838567700240692806382839149225961831517602160498626561910740787797607559130908092223234811899549875174349247723147101834738472224438809619182295819935810940262069601696256418634402891022347695079606957316868071796888664441382178139708795859401720584697755019125504512349396713781737132317611372468310447575077820090395055403817632696931967865779569602147659514724294654589046067700706539791636243252946825051693057650879955978676713025451924531101231813001599535928168359411301151243483442005610197962332585997625227799576129700208255114232344598891160509869823247350763774582349845224151818118486268568813842720531101447439165922263758906948243313801196753953319392386971256123554403572481189195204702756429072498612299202904695400830778431742236127510428623298610414019138010768333270561494016793447407511695011131932332202366235157531435988456868171232427902828299049717873380634383823906928383252356373009962563044902084816955327731784596902770802227569874805227362317910563780554722085023140933854658061621566626942861577080580535337778707382876185541417297192533684650525157960491422066459331554593376989444442076243915686831757264649105921003348289776105913145754377926229982179554083049728144412169460196462990605716784603857139612587062189982442519803284865617972542890640637367476818538236056308881353078155783129510634306220292278899514639348312440442984067594348296781024448259322148933536140464508465439263651240363936719346054740491452360937356288862746834057121239841216171987503011048819732752634493671878711819751240599737704233200727604196500981502109869856123706371108141345199170600124962452517919938228281857161800741877470486223766369964512128691608141656278912193234662428147868527414805693432168401524696036997853415682715767238325648467132411269005724173681852826833757451334498332448355289684949549455766174819391337288175721194750501584088540514138941043137197486528817495760452772811930678074545607259313274140372309187532069012045771918053236014213469457886184033422813147378492202577687023127043445207430149870655903579984979094752413711969773645390853495484733609080836625146224484873880718034114439550861813776061517544468574297913764432873826135220176689915394559755846328944910386688044901374815242614631538985938745333367743973618943588771691463095294383246048869571959849034273679962087863612512102837150166739784220836234871327901382674141183464225688145691793954238564600775200535498952252922166917312494994436341590573970777668635471591173109163319167244878451886060555718413086975280138537989407559170750400018761264489306549283924842349851520446552600134976317302698388230507574415429793560308493635264953875990888001681139279174139866391516151769185872049921705180163240704991645824325553431854080721103308082804051991903914265298427729230887550116852584319890205420386284466485102589695192380491698222173556968780168564444143312232343152991401281917200142138531150349088735453570336062685735125062209943040628367219137206582310219465678573506581668078366484575207719446045493105350782520259817027074441085638895068916166413117008739382966950850047326572921913588742523295172476370541373250943017391590921396928100463656155179747879859966097366712635365227238054556926362930802041361268114541555865545931868692667682087009667863569363934360739272080517532096669393643172968715667415363490896696972048455512766675293416435649180987374666989825854005753504588393222082323236925146515498910817873126673195968968598271336002644429737870386570514246762419446783015567876648255898675543903798948018437631084867300882566572627769038284560782726626205366513083967751490752566847074025046926193212734139259080527867253077193200917858459661635476519197513168193356732451080877984326217913717090124456451433019536303805533089772024834878737325585952156034932072315415498971286084255947130671754957998795248880127967504469357928259553817666429612901665742967737013101047954931137788708807983379676682095894827594123150509763281873769163751199530969335220513380473001184180628217055574631367757289156798622438450236990527719795494307062745950189835044871207615361895376595801929994916664439903344747816099350245731472962029846405362225396424004297217234945439436446336899865902011206530969887778811855283651860897142438997428978964894133559337072771806546361865473682608622185126256511230506476151461561802165006427235440695156148888351439953241657526163924156478722837477724659179143751658178435463017065550867277805048984507454002752797453203346208080401718300383993457098483627086106089841780398332301941237226232702831870040857510876721445436427903088185313980432452727516630345290079421799630818575883618370187512045686161371360940124552963203042457623105580849806760950188967836336670365934713453852748444094452263432918175933395721073270443562278351397424075343854264151584615191722311696988764783451857510074484329846862430416331873054039862340367243481759889984862950999301277891559050341321271172752370236273226132641920115118426003867294144471276689484256849646035536834615010799066519661715205630199670849354341856141389613147832443030915661436566460836932504298550091146342505036177474384780540634352532149279349106620168396598768329482010794416753814597087995760131775022774103115425661049881925329053656770161384410258300259933560689339284866312303064155418829654381287940491059516234015103211407839369117586193282213107314520285655092012346611950299792297898920301623851123381793952392129762138514075025413308319659516311534612617961776101723504555265482655153475835711785197652261182674846445986583863911881579714280844287507165884330848888043632397102555843071299732556962395851365158382466305042020957616537584649882766233052238574229607923979368039387162796499225729693802647317445582677947161976971146870301492798848496725560671698468224157776001162108039429533415862665084415449815839469974875321400585672278012841627137695793573710986437118593254991066305930765668496677073790742277177482247857626807187927734240499458807988703647713756285221935293867046105222791387180034820847609909384130757971645885610506538099224210583812871993293938800877780509126856653859791166986994081423519957584217769697139059073949179145198754614768732526357720960753700279460582851015424589194275077778788617021657790784200722592639883505145549183724583932099624637002215497677577530285620840058763250692134834325771514378574284560048589323626255612663871774000507401539984528840284219329433082177216693647486757937710571514332553987809578469051162223010553999954783635541860420697854205862009068340204436306138435900749915962679243327052273445804783638398238636051177181088313970765394153292970273980325391699486552461087274380102053436778273073281443897438893681562175533981356173427708828895535312450364973862396572973062001132880970426505325156050139771748068142229383723449179752382481710380523913330702674826299784284254528203768570841196798425482294583121449946246769584513788751297269350296187758257642127403723280404273297805521080047473703129957496075743890151736044800556295021884225110776581894525536003470470571367233136315205290359535265595130460186266375062662720579049708555054699004914977784389163880647957034004148826968796567995032083585449364010994005633702205066527599262884002466479857210421293181504600058328463608537268242512558697131516366410652096137682834038836624271112279060531166611913813040897024922683354436412963076501818175198696646515939904232312411915165536831495489376094908657081184669927479768070553816689998058884788785527313887352833234448915705764604443646498601835886577230248289129375725131283491307952645707028215605967182728115629366935979736493627671129867452973511742543224585283116328442106210939159509726263240201080222626977756516072134725411201416873710665919783854541688230579483695739560841308855851696581167924273386886331462117814152541982660562528614357797291988494138363379015067341033488170198167529841899657408055956874461471924436280246801287918058520249054534473869404693846250318679781911264848279572567001513179509336384040584039385738753438452451640586544413235150342185870205838474547558543138602182822505242030816791950124883116609130015288607997003661349351681648765399989072587738113995575052392225746140311645874773312584681570059979688449501758254379185774646216986372337876357834266570996590452899589313040244831695150116697270390199080307857619432961097649642788008631212375049370765255712845454284673000805114655735374333364595179879758768193437632354231764809515272805970754143062209694752700082692129280050573184114448495454088306678727467652114157163369546763929091284140118694577348644727163717774300208966158623429871839611169007340312190100036538433486035143927823867975835970714876202913129010231938176330740572875778655108172463420848472156958100829394401105759771159744580475779475046791699635925799438213418968947055518680478384204951725795710643022449952934560342449170409607681882214307625286039891182273160199544375639596231005048353677120811499886671378542844724896810804874625493847865994938927346831183382253002197655131525988191200259586739096389807453325857640040905967678341458912447833369087487104679402457215223777138866301058298419275628574918010558432399599347079543001595448328739704402910957979987538571917455775769015364853101799703801870023210410848994083469770798820813052977108734953088998312454664522090529592407741184177928531350855510189611970175547113470194393658011246472184944689643849021497487238488259428460908659502633891856250253311880742532977161819886184346672779949425697977630748793047115255004927696017657913757650899940031806970215541978716867555574935415091379375264266223204562248072423513882988311731376281570414363578891175162276965368531628874793299507842434701326095643842976474328284119801521631512724829844805724228630370110808691182211418391332126949492032495756366914776280805194996141250680723781287780696126604751323840909654099063650659847561309722868654583552323399268855512178331203696956616055318274453105618967188599171609647162870106961167754621242762483143883990003642539654903467768609356904822044604950264301947247732137796508319730290144403210128462651949018110169190052088753032098670622916991322622729067661307433537308381108364392262385226629896980205323474414774873400074732715207634050396282010175007404916171532445811001707580502616065282269476263850719248432760300194114369327629835344492043496639813566878066772379658012058388222026101395664319233080493512834730374031301774444780378099378123449971923854592506585808219557331279539490309686457447443745189124139798709901427668271150029813703391346707212999532301214964208118953582284146722710529137318443172710046934184986025791646488008684061963229679882323576759433729616258200252369353270146166815877732627288737319246072726714838149389452678580925454840277259159616810802618854900151932555795814075439072806342738476700700604441999499764341526232870663605524456172883425665731573083387891353279693270375436036570023865038633001117266282630458133446647274064600215318725499429088532786407070558442640556441716890746950492387262111226534118033712639908957303057341268306696964839196647240146210640979505800026387171608466751940109359458695395844293635122562839458624805532997132789290717993889256750300799324539035806908139605595157728305429222558652113299333286308571562197487755992621737751471150103731073372421113857405803114387198214708105485240863080392031959188718373258685461433788785401901076221070517662435939875899246334505991201962680732036946412287908122248967126711471830969316462575018181976900042287325864632559419522192754740463025468514974126986388698994448188164212588059364345636966281965430149099859934407447024147586048879940546432258782057452244374437101645318644224267124555360053154205042671561012339577211962001962907788605824404299005324318378435569339631406206565597089255965242462955904878172706753323961103970500760766179091109614271425366740939644464459360286909521527511943019698685359327174550486852831804483600354574225412044423598092082541840547622119182186469181661201882883176477659193355430369920003962730644006585845113787930157851895447835126909958192521173780852381370489871539466000748212256346872588589448910915761822909420861058328547187177268686573922585964758051049871129140319699184505609403950637255198703863293836332552036287865784524675713303333869912335409388396452752862304133546636652050045076618387732012757398968992172907259536715164917740615802587487901133710337825115988822248002601900710908446431611327425740745904665887346660258382763309560732334818679404280348290062230250779830596428892451217127299297301108406336223853209352878865240504229981023822192004004175350464861370072895737013199493053374222898133796599085012919424633352822283253961537823012465694298049827053375271894212752803479525621134365461311464729163724606886859860304271035729790906795684922635835218300646037822952279882567741378565593835541357232393653161659564260916912614252718049795604450931672449495327769997938274673019510378732417402889772628744562003804567053730880826693153372311339862482597838326723042901321493690909741998728450288771402540804161520659815745540269559588101283929369878899317641394910544190592105741453350523566831305080157649933734305598125077950443301257749993818487810459424380162214438456735022586223167147813733004983973168250515134653048812246687393549947994973895877389623818559848697411805577469821672728842108895618420564196753027498939087777879142182123870361062642904901172859330058605220838966134828334675179593265814912730884437856619101502826042377174217877739690893361173250102702931718938308268518299112868865483226700866409253506267573855823486529016460679429638513955879466660154038855094902551099176304733694460098073930771536549306090068119058575030665032599875830910961336908499968968107587109013350956850641649890686705613672222977894270319791055592701448459318267991857106519811014250144690944328100031224603533492906158490859316072849739835591955620601193203954647799537169580003957082645405175771934169652941541056303513294145283041280600511002428377889889539870211095801008916400183804255300428174755594604478797713020252940514929004319203365683450954659683336191110581168661803934817749549032731641479157580120647759235948229389720495596278464149035572270164636084810068619124679101113700881032458009966618608224333187614740905785582222734879653211854007213585748684254646340989512340927758196462048422355196744833102088855930189122228495763516726559857018513847618394225655756296639383515289445386750572800770992684736145928938636381995668781741855754244462535272581250814361222202930098775619680405443881637596224888015776877641859741503217319647710032843222714992855167119268251177847918520126930682926105015081824291489385446270438998005897013039139570529649878709495272986390830560618870867949736884476188438121580237822358718144411090894938794681804626190516134306582718254578538814055610957560308157971722107034145626478165809241701408280498000449375350002205067411513111168931503932605046255677685589694906553887578194349457888671459040584753118263300998995515308714772320745440441417471027721917527470177110848631091337218010086758522657786874334563787803164289950649790583090287759941344174296478317827071736508748053549886378756753596269482301984313304070420770897252394426560788945065551274820691553953008450348701457923542963723618834954507821830315972271529003050245950707770225003789149882000316401224534617101098572822058898763892785142780810182569476788924547631752596324867204868241706099827990196160671198242692988644332478043153605753240691562815233751361027407498053944682379229513765038570945954740096745725092804732011145398729705942533601449652358919668040298456263094672745150595135535932770532073111995597752441183901542089668243066275241309297581672831332232871459658542686488147071681551448013768545415238599288084760782076728361020677302803713868050689970587212490713016405804972555666290602922402039603525750674244929318291109837953492861482357634380433273845521174534314031980408387329639754924404000473134304882145594017466454854781673470939560381895420140219473091899267771289691750655445095664119460710601005360461672303951079987176651611840557493005640499359509324908151089474477646340833631480253879115156701748253013336228379304627052109122305872456807155409397822367407833672033092405900191515758604786553182318343077096958025062153540523749218591924019848530587724486855426871523398081092337094303466468518493478860766322548639194174281070798263447888530641167359791485757417554950258388125913048046785267841161984188224411252582777085158225635485013240153808970086927094998849296573203450284381904024426283173779954579313670931915554487745382998187976519022861978751103254646119269964897806205859636690552191188177832839135817320892311449580823515368691101872683222523407657751997792872401590664909704649438466905594708740116714900485888644964392375305816498043149839202736350912809547474386806054444270214309007298576345008624835500896026795503832515662072573688535370383281415701855767392378272302291615642685289046081180725524527753425918446576944059995140455288518400995678118966177745101182436366792616941830020346895806827647349714256788794828782263411444963739847093894659232532972167833385233669949140012987581350505592946487546110627264215828832173387942626665486553496358995553715384047293378877647333861652876537464461586261041395806590042059469935698757961437923388579541037048917309056468315022675574000522369501268115466547766165410978287918585526904783192754531527409836562447981824626829313778802012933436791787616348041197754408576670254789256765033046040254510625105914873429231353584632280250277142138326798257283557159859771821843942353089229922350566772449172966861702157359486292901674458157483711281545678454440199570374902398319180365872975326752755214070454350683821395538548389331727179378696020894208870972810312255649893372376489593915930148481288947174059969290461167364836319618168279065702735365275663449070594066389475489748055424206329283313021504947058126580808260223949764263033679719213104805391314023371935860036691541354582390246661571892660709003007160250930552965812135493818471677384500062674298110365513526811981964491747969838059274946511538451743926801043970454915207628688202405474397435664925921108534469320478021884420989672406484291435111558189486991364500081010442756443168891868034677267428919286877308675255862940087720591431971982845686213014630622283251195784585409443447633841804170529834765347377062954216503607791871355090451998483876061889507877246250957132437543798854235758580789287319699136741112797845241072562265213761848709064239410463867522012154516918239564660537188491008313460022178468206446643988402932879632275650232084079418922338442570543694543528254366257358124650480484415386639988988397663276682812631845766898749251779809197276606153691167621618754847834067892160533501572173746012084573870574510242753869794487702148537152519876002129432339803157894042277935451225423912816342602023241666003184262196358457521688974957100707167713771467256220248222409900171006339162676655598679320990137409083672584235347304914789783270235918054245951494945791128381207034794639906291156714848935947879818917699373901330320726781039636574289268282169448966859043735659593668816707179011795344809191003656047977167871240934773704334120116415934950060151193300978612855455687323337199743329431390392710494263549900947858065658645188980019884695533836659204448946614384243245821640345314543425076498487788551344654912311753700896942040473163379805687804962701351637702708147273900277516573639561138150362668898664613495524266594486017202589766263965914942555888948656579221444638939831183005067355894679789306950773646927685491942410909090961536972665259821864390332554035566416497423907951759131863284846504907790729708854943510535090394436385503152979440243446448331874573986750994086197652732776185929163288206631654402031394945549534683872971416286900783134466122049455340200912424513361951436245607756246939111399041358457979362707404071881397577122788495608979733925664846436734898174266682654835818885195159653677879313529671059544028993288195013163867066814526389615164222109888973428252010351360052301801891759414235001003813199904008463754497603034146500139354244093094857541936371909479888757448433402743107634245431499135331313650373576032779830447097258984367861176839876358685340400629925444718465955001725829832869497185406154835264763637764021932860068105467720519935155321433137555396500027095411125323788170296968791201473993273432783980178963735517811095567598300318915385396915016173184741319689130046348401896384751187025085310167694170729798227392101745603485661531574928042993071880846702042222526640328807543602571724225218070196539837103895929707784465269036872578888962726528049784466166234193839444857022586982556357456906797313733132710234257028084380578593472272131693753468731986517527209933225371047202256683357186028547101113198057106470384448610086053193338523060607922688897271095614015791585458185976107312245818007455602197941295425457893895486239715645824850682601380372253931092651274917192115590406622520030906426440952484859405612096235533462098625815766980507987193328602189867258438507984193616832509080191301860094286740825324703441686854936518141683841461946324977848381403449317065380762345238733931749354178192682164602385654604786930894950910261725554703696075932421748309945732679543076165289236459250353104262255802263048273975489322546311815184881461069865028430208613378140563441085101974416216347848916306595423280233997933470916088709024685377523885938879431318771409103146270766483565136164748050254036666444994108436522432856633255424786206342581294861030917216819971074646834199822621653574267676525703576532526820244276703027266702918749218995181787509078829157427479714918023359842149683738280835927422743815828855330211664420811823364558116607745099548019788357026679024647404810497829142723466646106134327565468082169129584771565705258157643157591102705971637344324851762439193412230519547925111787594866531652320802379038840280109852902141204143884198361347043142914135947627929596578209395050690270081281504679708996392089537102164192381977070202535639232746215885880593597712796847961507890039305231326881946090197147254526474484164236065396458882495146604053144666817445401394389710134914497466870162573338588278312762437897565329257522165957098652944609614582218611097689104169786683041715408858014343187358416243018493593957646457448711508481808488978006081458939949749496990356129694266717322753965694973428681721690546033273551722141165016157412184478682417441508088847424924261212838477969899126121235595713678133907159176952408791335576683746349258295482970741203104992369692886089507240856857596223269652940908425490996140985725406693703601201344880621864669669764732747956853093555202054662872130938332889472197582391711377628988029319794152046506680729361671392402449262260887477452766581527866340394777809760720297555868077814149824890573589344482850373559129679584303536776711569449826660092792399542640347380113243269539649662999762928205737950928054196798039495055367895725275980299201129750404247380662572852861185725681431719219237097356580925263623785547794077606414919111162295612704617564914114641851898113005336517029726677444209827106002225264760067273304601632851528372514170724832177216911798684646358538536220295265104561250313386668243681141977598148640768649083785479049067903732981563143629925371521107440869881502987604191986034591529755879431338440851548144400747423039847392969381620259826745981935471716727944447448899250840663795585911594768238171396937810962034236230689157033922546355958084713709413605228087838066922973445020492356894933082889821524389121961352465196481190946525388664733507868406511923789983114004900648498835488357867688348933165140463947595701606548212367403952341610730983474537244504341873664858855454595234248946030654632893090258370875406907456550864631472452706488590132434209465824939345595332793347053001899830362657535256148283936647929259954428443538857721642010836569562007241261383511005462126146477896016039154239851676560073675193068586780754616308610965561464023991218743792463661588409836945090280315635239426583882979945049197979704808472184304983950211260415457727368238524417839792036753524874112525680417366244955200737710473314955191676324229418966351022982579749706834409092401658892060678396349406232364493128621057612404904703748522528619395799740221733298526876280967141628829886367760737661673243668362738205263762113494618728275371579121505611447895547431217233211759131660068649915451216682891031193203888548598346767943194709176513017523038015269740290754483395980372856750657204162683903932047847434948690514812919567919619459532760245028130943327455095554170390927412482304504454529785973746003825668983509564941546721494850678559627349033823785088468001020528826105786093248098998953673973305588524628686403674396704952839838891615233197884148116576796772303508186580882967777143774009860074088725523145735076377335068990714827476655664791898135806481415422756074942145021225810259653673156387842792136297054388936008218414696153346492081753174701836828375759189352427639044422988394545380289714777394099152343595918516252617734611557674316313677983632744354804064485531350376599859402807622686506115776038990286634159750012461843206179428600643326555460646180572129662339678913342129241962934082025148632323873325647569946013441287083330455953998158882791118605542179403807191673536549114125190228173929697666292824219212243941122458985353980822061711257234701287864151617090894718042686958440718425901468305744811134061424253712689103325471285929522259994313185013821460673475602851260673349681399066599610100030284013850601292849406110481700060835987175606626794743622373785202774487109493554670859583732662007696310187385869613289681266516353318342600852076135317897919759642729318826707917473143963231130119644978030495808013876453460940850662306376870604014003519953763820459126642151667877880529835555538329445831173794460921529012499875795165461284392953481575678886799734003329038250643403901589001691772497846109145945918041745407069233963048481909831182684391273665470855678281387396778404222167889674117528460850640151950404111071394927620197557426468208787560657739514519332656874877258501169630181723501762014742691459081216386318763793245022325794098676143312538365161461112546292102870922215351546948195977056643525310413394601018316782716945645164821065601715671390196148374885720482329034992383948638804946041953581500447868747317691753841982683221359810070849879507376414952143281336645830669880724199665659105424256314142992259833721508370062238304834176812824815111720662965987668664847140546853919725755847720320202628521942355130260369436116097632085341693217321477520767514441129233037774566801215074935816460814353340325677988086992294694127633523311929083415725164012317830433916254969647893138171905750339544514108391424608269329516120615872886301345369169239337784883741360901613389317377700137252912094466566573855855672555890259879111728591479138392724118049987965392095688977931672689258162387258636745192266464738923117844410125338641561042863893397726829665345159757153596971368074690655562644791313539948690148920873637818740671861711142574573288114303268966183385182418929013100777483280089186394507480951321200634945975834486968514965510485369905069893553710179253782489008582349650904689771547760040419957778572910870975988658174719904172845348339074207900549255956271871211079122650225210990484613938060622595955716241900910764043066649717794397465562343568437560328815773973861384463131740866842363829155607185272258446366342151699218414455158529810049388673071544534714751467100606637426096714762010504836874277862477523146344675472724049498222859007246972540267134803471010337940437185281550280128285643951796103846189523797106463424436232630380422539080892144244959263042662942341382970817649415627694013397283547876709773217508170420082543066107853188785641287099170053339916695752313103300659307228654726550230484266211726472801068810596842161026503778313729041545162531028865592037683234393563866673707859208765222129275356195691249324876704030557597081700176313018242168271430364112992706936021246478607285478567137267355624596191878280078388540981531778216157934686978406204259751074531503076434080880550483974145623723086841132571463002494635378454729629103628540787003223727260561570776527211515880350328567627688914755122885444150545369667264671897742000316277298953621867054198575445560063876557896350008623403442147721476379219333972110637152498199773778196133881175288281037519400592801556614471756236172566379409836639048840085611766216198009530705516807850913887614939345961366844094100582042218641863063028718683712166625731998171089806152925397297434182598583112580894964582874657634138087725599669310085105283301357054009535211900256320458499841843543368241447672966200470151839739791850995668309489031578376635331338883876727636441296750118774393253511498925658158730528305861234935456908866623346130482562039121560320978228237571415326191967031399379682527531912939157075740913744944267647695181275569849632682742691514006857163572424655528558025939992646361589057605219722612878690082187579336979953741952123649197043723753728645579241906211358591462627746379513311628424885640921180291875475646542242657258016454896303193167212708216753674107849421168756048511271776733681564086024743870777554938964250691425127912415340018144494967238175056555513538060630981168770925738600263050097323019853906557268932398705933273570162095332453973206936304149416003472915243303927352237967525324796614247354969977718490481224747467484643046304793916563366052926461264493385520218754910259117656369776546128728062903109084863909182502009972429306811137070288091667046294551017380487321823280178318711642253116677861315303396786800040219680519908095004858963872377850444560980371479610313713336300436826782378333444581594863697382804013516968775422124568783736939489675487930170787101788702134320103277650615742087926116215566718678108721290990607617783070541760267378509557149291834758379896558395432587594235142581225872083330942091525953904931217341176262106153488750551024357301280628013742703516470379404454556934809374154436928423099911441312617295658364577123298737796671454313693919002676143319266320328464389803549930886461034045962860710484649130675155134008944507019924533393788830180459148968404626394038987999338622330962087105883475616345876248085614562619227089874510315481883184687432778711891629677240011328551431015880811429805240187681257799174465433301900081545101793433147692393586122585470321912818216807604592128969620401747485787319659689111390464620360530161115725496829834752275738344645093599492058975015161369250386385327708905098338354812907391422079036940818140102171270846213221826892221169798990349931920654565903983065311402090973036478445020269689292020683570787828581035877709919975462488103115463637424059682348592063900034727492427059068745535727297135743312522654122359826812531136809991625553381680777391666019210787456395579754781770150687975111393954449918951842637779518621984483815755472317747793527232722005638257843489302550097034011284824491103890002783262417720450104932027547381443303966636197011701525518539764960211749775068521751282979014713124649502501565806738053828957302218333962279495325850570950099527266074241661331677709990122324356667883104406952234232898557480285271903511477352512423832319667049368586439652248887860363676112480324676269540209966373898215071725090321602572963697214197157946032864545677074023111606797244901334956697929005011238419349246573475052769172215885813629671595484578329961976608824426908589890000117980794914547358280171713776320235910848798833691901137630619889043046563511699962025779591024466923849367394042995949974877913877514492126789255975050423557651803512495128924031543100600023108100405231407886155497199186217008383056511782962728189019531279146471806680712509896793745394220844949309543908415785687166470249198372692608453469062426992116497952832826333506318084454773312134897234081806905097293411376628948355708998816340995684879690975368440434425119346870848591892787003326956791482930408138351795075554721539475238132898915076628164053763208334856917269316302724091566966876581891779621956893104799818004329421676700523033178529460491842933741931433181390994318381175293518884096238991381655760336621593403457070483470962434326108902826467484267995097866804137110676427525503729639840751525287451461124752676377675105626739755400955494212441774931086573836821870799088023752613412294373585606943948480226059598912721260652133586722112720537572724831932025105244841099378193106389083844064744397105806722807070927033622073557960714757540735220842739760510339177230472750084295439805521479977264228455979911540983951940182444456199511414683321219036168151116062132680521049867303107093440189608006541490222381628362766328205313576254703720721194661696333333631836999974164651744197790795365475727390693176017489672054630800692179281503415953445291480127283227634389829019140186013432626789136654343989615117993141107283512842141197676216606979387466261357740088497032550154890563165643067644220436594956295026644851455825262263417212991183417496099743369680046987012211379169032114915669435189034849805197353380467468494348584915242874123751789827073091593085264085247226125419983333456597836391737938327659639217579291662016943084615697687536414297346279878247189824657392408740955575485153121002874190370591848433580647445999325194629288505356873193819838943366993943997343740195889977419029135506931051945701314072415526303056696547219894451646933533319783694398131820148960769071813200648972399810639563385137774809393407719070562313822971087804112714523767161728556675059022221825503206162082133434411640386508648976128897852473222849642383698764166274912110348427596189590040156019829077275999469244747122033188833235444503967077358468988393368521370550675828600207342366037961120583931555235280411318786064435214336202029854474745554702736531598980234059811649375417343921125598471385008233527612160723643225787520122385675811798117002493256249007550147314103833535913986228771432655983114012914783523060018275125093202514484588830709287952154490899781948771326493178955679533916433791867393007759398323691481090271149326793524977341929634590079291080954832627206720757964400390853228093295218621762743341190731170078411722397682674435612860910903536090924103193398873055339651762262162133443526825587739527231300589152940300073798308757383924511148861273797137217647949127946134916447315413579356684371582427526448740886921090701625717177619777922598183054664049756423461670754071899645637257648370542040657310092119915711182846213869664812236203035925223952092590229405788894776391949639289109212372113258134214373069339024514471676624760794840501752944224742070790111576663713516236850893690097674032120774668470802683145862054702943935938868731533352727394072309281429321825996019693242850087582785881731663027928154230597354568509674049268258004220312175646342688910671154552165378478467674510097002875201339458355903724508749174530353151881759721025057754833649868009007485689511249370574046358819728575182090840395193031247841382190693300803592093867368068408798138722623173110481414972701991289035193411917411059032452040830298307724916345477333573571262053403788379877641413958569894174319220290766785595846760294558605916160416075553161153946572729582445000260643450526970886841268541914650928908840205875517612524589147219732792300748658744829212776207254251991712479341459695472172972221550866727751678999764415542034180125487611255701796019469119803429447687498920108389882650881992940203220084308333215291958813882885779219291832102372062600514354413444294354515490376645343442239936924384396191963932653509028125613083869522835693418984082234144780798157316479289721252376839365907971039531215234292229290643804192642132959154749947159459973380650871492676473922479687126569455638479757847822378105039686035522371963317938806307440338907353202713732009400631576512992289249775063270015851437729219577893553077662412601896470848964457422339283846900970668433868987349968224240343372009097083818392923382102683400027976710856146851320639294837299679992257956497790878939051374411251809046324705383570387619057557583441871814241349334029630876757607687763673465657808030789207090498239578418366437996960600688452889396949753678318314736810633833171363335594960845270258162123921062782874822156790792694957087893065980884019890625877171724223570175912140719914525510145445649489812610090364391865064494378049960896325129832329817125298443114185356747757072691755182413339280983592030886387630506921667574975634404073130019210168824543259495210315978223814733891097609962749684866703962569968307725662289141421448605061477008370951343175762706178877234060104628070886803492942154848858175893802234570850050862816282422736381094785258807530229105714128138119386351308650459799477052609533493906798989258190621690272842137072893375505623497415328737197677361928118085122368124693156072342913010443111732270816874023190512880677648803109598018332662895560374772138348950709293755829855371335996321539314523748890840903948571011669896422115492593442519525656119561872543526803895273417309835378419130016807691268236670956790469771072209695464233341857033718145977568991418570213757887266833640177129390233459697618973281018696829264124599561687462076125272735544836543909061761680312083594623756058850955379208481342710271005788577727053250705949974746652379950652297906778446808161878712871127969575997266843938628416276637855110646795751254805703257499324498830167476693388346973206813396500114791094743736013867459877713244035849008539848555104869817353657990917232813339269040135984166396196594019088324953021662163011587138650702227863778162083569026673776478602311853801461238561427049188003841860503726869872418026300218745179210023682723779820563710529802881221723906491786549677434271970035827777203143364811021242786032724458421449176104861605135339114766010350549284435795818634567011595261122675521849378521915327221621997446379789964560902792536231702953584176287987834624755702055213006526490223673459907828860941977348924060824976485212746193546987332207403510401547498665458065281526720743555637943260869628265377942568799270464404914135348477238660762511705371767052731446195477162262491228910243096931306498584919801330009299821029056900988973286231723964020673241105223172030623722872478425346944761631434661877523081168393352345887438529812032881269993425101242820285018532986425732340407970822614269115515069515867417884979190166041758350374525072343907126677326707694551207059379684171169676757713036964200185613177415985812747762863996783361652129801783486715646504085593623217196218340031299120520465598260225625942749930479012959868282733037497020580929735511267063869499386286253163300410774160843350622659922717359094479402152174469995479264852574547962238087246908785346945058656024110600908329663723172413912156525416339469725193952042691589350252386791296935702031811264203358150653786422184411085972098090492099773914698651027076692412805237801527413952929695208972113090451490278090227169298305347928827976749956975611203547279863718286156647686609428449163242977489885815690866475139274721802077532422851987705404660282605446377727762229724363463334135120582537903330179334852458969993111469674178144144927203045006988203543373357260895343125623816462920342155129163500284928613922376646018958811452751306760082095049209785395591899834696988372504185430403372454416382340566103450787662693460530788634246939771588095807356586683338637713552085945106134018000246131284333707782219221538990851484642822313868947607423610367251424321610620614977766966446436566991628451343922220633066950782256593113419934045048128123432309754130057237940516253320840262577062470908721625340797290171015325771086235959214024043049661496158560123579031371321024686161447378490261113256669488283804838382205023167079356914215503537140365891874745471712272730068804381056270749194389725147352813161257943650664055100993696985043374380105390482731445289283587925713770214642995481033020573094473960055381347662185577275859236579425057249229264951380715426696207069062354638005992595813155980197553539574323574295591741387701242083745534963211942863110126526266024805858567156107599231323970301223638099053442895238399390464046183788107041499021130404098735154334095389789281100911792729232774335631481794074684712799769693420359084952936844349458995383233483243184638536333696191090666264836673554720976849692522917911983237814421529010246430885613562188485294533073130486681652798008397427047645169649508099207250780387128920973856443617522373767431102965613872321652860445574744015097794238515030162108577287422404831152125116195664017343886659100855332696650024173989405689759188093268170048390322426589714469292838682859792323151538602629327604171534425194877723444866779202588966663561210803931418123360552671734443058070866442875823195573787177283200812920172104077920978757671401505563977427574600457150343239240032970482583058162904668019356373759827282563087277612334354066847851076383723644378255456919913904194558407972181775279269971375773086998505455677140458742900405425721644260946641297139579962625745271796812552443471157110728918031881863704864932767614142632268872254266037344258968034394538902537253826614757389955922833226472026665036938392032166168026392612007246347409621624808304846478272475974765354927713271807578216456867150984152891006711187912476681239689328359696416764884393451999035996834417287967206840600166172906863133450805893768612979305953009333174147381652580306111185333846053168065680227156873545965210404244996655406723521308917514596978258981229178841692959216404819816023095913749166790989655949051454251316729274930482105179895481436259844942743940296015049300020436295653354314436029010411435714427134584591139918894158666387992757830538334134482400321175372681577050674893640242448192872007046152042031555366394674255976993770372057210969966814924446563010128150005983287544100097380037083195004681447529220655735053329814442328727450905453300715537455562164931036223183559108300273997211727484869610930827529850516272305731824956782120835489301894489705796191651246389399451974249511320850378592329971795962572676631085174775763660044298668726542884269307365814412197510316425385104517716461363161529771294979510792785690884205212236374306357785057405598092679659120049185135344748873335359254563790738378561440846386016207964917800697702598090405355611537586942711224539901098837645988631425330442178610247053246982728977010245322634241514612975445354666348681085334847225160115246062190945042111250713527192328344943589234011805985560131869434628544569000679647628932237856263602601324046271261804657770031833039245923592349314671833228053658839424365569999121894222684054511590341934686978565466977003192975854856788922354525295627773009846464255826406689244289957050447324866172022660851186320677982799752162329643108356956916748738458837970561533480561427993009114738814991270063226127732050568626221836105251721841776760610509548318246179365005977653588741195638681389791746594466605474092552891101341491868153436044337562179295238201335520859214294032816752124627793206978902373820491302334255466772924885430394315721962939266451271936529121833622628206091928779897848748048247606116330942668910661343210732173668454739408585950089045308819192718386454548240526508191752111647090120116191316939699751088221408431979946112871831645895025441079729474660346766980941980655600624941316771531396678716845312949913094469070114265246692152346543101715926456544531277521824384517818433056616562365576508531322113489009543827104605506814766838771865552592820645629763405970291164600629432969780623011016189194390966629110945527692877996790393054630106173258468974378164013625416652738949588904793463327053411166245523794147971423242228844289056718755882679730266295935765505487068398417015736251210187986446777579552699815836286763154262787526319417968224724040458773076250365907453746551504601048665633403370391842929033214220222519121239352740554820540910328513501571227061820596106916774132563633043126678853759435220449975148966062744408440222952404457936334135467215129895611103029149180077471476109578336467767536953276143315242227771975133357545891110445360662220929675243919789897974790189717619288769002220023916153125050309280097727184724502656881818713623046578436805783806410016343069930928795157429255848140116625922150735059022707666718711791387872449970035998372387219990092584865541297698488023924522788403367164183705314789978573086914401652833668297638046878287708736153811146545530898698132979771732625875313151157689746349576315886379752146134782701969555039273079257947619559781912895716899452458599150858637710222990656043906487268429411838811082331800313576906092696265186134423324030340516031698198861629250259507141819490043666705864105077523439772474007997145103673423036893112847930752345534379885697863075986170314888375223690801428949243929731632396378015161546685068308976368571602868017885788611724610479073284640233677804822740320156299681691070695754004393180727411704806275328152732647051381835286988981972576487643776715563698345389267568475255441201154964307100323804576572445589032715329491919109710178108641657937242665156004239227154230944966748422941200386684934111212843887548135210536715601465353899561341810845456962345500767042121172377925836330199717573343361743092359322679998904899779405708151337323345334390172258769583180407888142555486753587762842602337948105060509066785194313095585512562809469584377062928623245605714995497896222117209167530147133969860675326538451070633897903102605740750574953069402482364969060195805778926566673348766406152843873763868967521321741449941332500685182539916179468883813932976168056128617209133012082135103084365263289687247518953053369356086942632406109620846417177240904114288327426060899562762086237531703047988357398091790980820982707922445498570632111618905390484261391001364771661628533107632551704560325963312731839347135889598717055429464352684278391564855015632177131019867921127181302600388947914700584669689931654694173876437121349123739755096489876838192841571776243728634020389100491100867988765381083332362941898963157119922542089670808828435602548483583567656216320235305061314195184557275146316667272163523650489174368825570564815079792390356538261581741672553884442373677817129895915960067509322631906719389853128384947924997026181659988561506011551475223471754250009348845983222214082675366333185524386923403932308890014799987972461734864560056885921843447903229049739040078025997298857538378377753035487736482779188142922090935814747602976330373116831446070617139984050947191854062006488753123358480289832026231640806979465570706618579895508401814205875289557225285585360110503921604563832773023586384939621043824358791149278398532090444840359733903480007192410795563323136679734158068785999065390180603148472379275752815622970202142772550434768495942943154274834499094608321387336841261697612034839684614588075194157282081450541814801447269127342183926453884519603759379087754297743266912659303994124583744892681935912213799090633724073204439938289894916623029034587622786272934958717227514050431674199546748086764770832863001254887259494088088629763669558796910303791686814265000471516483194843355919199994373509589879079372789425570049375133738769255336625952046041201915399182004760158419164554879637824010010272156584100604413892215960721327126390925937825751204648315663620855946974844191473315369557403393896818197398104964033070177372991229713825318782562626760414837998507273058981860959763950198878177951368336477592382814267631811580626421143701851624101743712929868614871064030209368628416459186639368744216936805372040383567056952972190105482057562935207208199259322831587829565506710833639547423118573654497927960718676360080887906753913180448332836260950741460549765023632909941118522899432270456515387693559866546321934349513208451477079983915332022975926180761520084729936014356518344561040359730057911885238004391070592448387320830818235816224669995167540862531693202251599551594395283812039436734191843002279169306593202512122301681277873138521265468255688522419261810938234259884686047585434474477791609768446988589760690276162843074153248821380504735682638764688313769226108307218115799386955104452962969061094928657311769848697259379081739970028447392062853161290008300088918014006463376235741328008720303181819292522649580471382322853795404891846439018738981277118648941478853861831035633443413402515977172741496249082808070925275320212408711510714332126370978502280317518588793316411208965138789567347932139933819412105699746342963450788673768571455221736850624606373557173350965129889513231011670518555840321629065140418465636669037942094627627628261131737469396087410758670313351343789139712277968374727373743569500434313563255527896916622337263869903169306355765225101065600457741994600105439634106433672658658526269282224021676214401530099281717044578469619200044430709525001194821270163257349313475542395346454966349122200934873357656446571373864375842738718877919969405995594745999749086272642104211949481029013666120856559807206474773040328663430019784369092948675280429153638470365453578763288773846575687505730402879596853266816444417423477183565213839668141997149478524244274920556156000787879804150748154739026578698901747615209284092069588401614058960731763698214791346682135956808407723717546064213946358209134755680659930551276561767841446325934369955436521082009065217432292676437618131425709445841275684814235382081381955296275753000997483157768520897947417114991611832379386904786837981159858518221494241369031474461973395452267847674287118303041020171444438777017102613389738612651186174409165283160160838259712474534238732385605470379674975691453384383962359598898165710553117295701988893753547969148052026143352844643916014863095047387654907688553586178429700251468430743692583083733618543124660438962516848286180405605643456347752933135133148636272184031901562003893281777501852527238894303042084882421740348078486098006970638634509235437188645286130689848032804594594160416875192687285383058855223290843688015013991587232081509159232346388523273990874771845177269883166659398622272803590266124327630617509024620845458231060407765276835737534910929005794134096149466789027547064110497439301529140020076435484983791015322264108863815270739783229270372268040852848007405651413454453188481320336905568859376263559754487891654134370134019625474516966614873643806715905461694580489801164905774299722226234997933283351038067086102660947892838471355698235190962483347837498858707448200370908552506417067155115351345587048932404478200473891919179094687529110772447349435776671770550566297390787175176269961891588662629879040535022363054147684841441000813957064766148902591403693693039626903692388009097696103763276442698712517850670108623378644800794583171008711673634726389405888637520027866346790722983165739364459805078342423938321354524363613146169178526482986595195990385849597250634306464607515757209161658924417039842952428292657371577748362823760978048395414089893133545965823857891871773019056675637298809099513578726390000359385951390264427333329222441357455480645957053274176149359987732460682077095205107323127086599571062297097068481998101190351986004089364640932450323486746791789887988841197222315176098773564998626812995665498682227795888529587806257430899521705273942222351341070608094090668753102837833584944335700147455753514218201027978860589751661874261914476874679269161470597206432166418674600865366271451110809068711363253807331924897469070807259177336988838539837329858099835252767613406664031787396781919556649787781297920373738631483089448427363337553845961231102582783036771416349703060783828462382650722944645250442844555668439116426065615887991456018351701452979877412029674048552217755555998661748392941080465705992081374130767139242678092162749574095304662068434506342721716298652854065089773462530054321291537546618700655712590112930197379853102498045508501700652362643366754877389974792644250346812123146371162752720975550004487527918752412980454756492203608447367388156159355522752525501154307171311265009277247831153565875159674719819768490612812881619958022698500967332766009948407414750865124282213470736386046856159481754013816669888639151609026565542900278493154112468181588303497139104191554988577448266347217695483883239219275432689729038185777372068604126205752059619964505999608102393014620580163623474631344951980913678147510508479345925016929841968987539742855329795032713789279976551789699761655175919007655784089775476758611696417088570711136348925820774351915991395273331624814731404036458158474791861885388145252154662170392234513787084979516870926202117566609992970550153394348190318669504450194450789513640586897035645224888758732394712996766065903715984185072754556437584226587715258330549468303594408756200842617140616553946011664026793194964642440784199655306185754454809326121747741526009628779511057479733499825109419077559541719191694874878188343927341930870317695685134614964395238490967451060673156587354737999430311782345064349427913290632009200375960267737936654494457869690744393822416984745807031365397582508377769230970297879302454969518240317004915753179215785987471765472131388353513628400362062093729563970844185744048348807230664136630072285567099130228249206506605299840432260521539514822165333016969413526011603940109382878481082886314999931295231958807253757106393041854805846991439556158820229049013844341016321838068455291533736513860262623968737912944511979851543462753666499073438051943261721126076930991299473846773357163174027989463342573213455302440580565355725833203618602346741621829087386723973047394449687615441640051560543168785511589710127674782792416280446331594897147810867221150874214026547449790963808299819001479407969834133565631584120344555596206034603687874484106814855586535179909292841120256387075072687886485355528764041810899173162483012777959551592369268906954970059827816099879176672761175983459645113014683788711940401133227213204761164487205127370980254018108004368179148840672745539490026783857514689710053094806701635169643247837641950131890755489909659000605086922413080069463721123005854688623432351336966745756648294475613533749695526499157235692838902332816438144398037756968958637034298906799345819525758658774703777663723863419537704144681379805411063170552985057418246627740529438232882645908188464980493599720122025772245934455847486884703670972355306201789042535234055469405741712690100790499167229117581074105733529433608227088189272468136561368226237033452083579972338275926476761143671524602352302678534991960649127100266481659015625893819975303592679258079467170717016163420908914154614168956869473530267072312115673315558920763086352791727017056796816783022760036181540773967142480151534124002522760460931508043483461723703787989918188888127458727556520819560383454365774547427593927016415705586117935159794203237215343208767176900773048952869334357599500931277637059426363838793950633561791452251889688044203356148903492792790956443812013781678906643248876662653884221832255639125097517641035882604883622167488507933492648205946686453773751675812004285920656410844918549371438249338516371261793268148685817003864814651719717267968974101837435906020761535479887791489361743302094772535862703655699887030017112904669833543618830212864172581265602405466327872180525957561599061146305878037199417197364963417467662341588129927199100004843983650541398534792139650859404767560400199953785510717149169714185089865829506565937923189426467975330518491588268500681181538275804771780900405586513042049465972053882125697697129319647306041377683051591347802493461474572626687404686579935838305465734321503482594707914701441377777345028383116632510291625005430440965601520451081034874208894306380651079312472581256464956482106110183079518866966812332245628780082517856019037232913598565010281975265730645847969702983216887100209653733122142086661214413398339454474789047634644066093701684673715802718822076145522625571139754380627922227471834802120024036000512711259462086773683228774736634464710581687552130766372738259796216938692626457401040935420191249816542223050685175389029887493547758785730615596668300393471503207552048471158627336609717325574294332561270821966357605853097625306824993715521092199823901364102566096519067561201924787800258878443232663247030360851868509664783552805872571963757248310012904734238827825717550367679290418117849011542781409183479322373966183635881005207790345107931326246105524169880049835606229117933583710764172552097448449755863236798440520370778471027846215458921476139791173479621889945950138595428024329027386571241383036287137066052545934188713526950065321174464974374166647894360087063374691342610796162196684212363979635938283588262686804071320073513297914587136450109669655078963842051922062680827416110655894046834030742596148745971670027971768804465410493894832915593047911520727554217810062649029480197784408062319658049371965775672426177805079360126079279669106078674679437751438060296160883540970194139867812612516228057598797576390706827529812275183630531831750042373271215340129767199842764558904989075401735564795137454984465070547771246703366579624540074628195964103102656492238710214852330368236165622099296139068247649813372212018926818147541108620817231065317443850549429629602964777064949338334371100407442723580796488987971118101246696276121493060520167194985382428279261337903200516761875185925297462090326973272642995403188291357950385657372744951775253312917294533376632767981996528003527198305739700088919182867200565071411776711991936751511595959159567295460231821386573199839648263817481302774687931460400186704565750675005804131184550342751070021223700634046705103775010113989030707091585082018746167365176387710867803088079033680715051637823773758551128047273005450055108403729108058543296424678724745259088605835263985515085708823023708139319338045748979531329243340202497331021482363966697530905470173626824530255451942731500033989115640348186699198476012581084823089684351373097443763898415132356858765862171215560988926746217071179942872646057402315059204972709715698081436686749733999530053832836560680491097832756001576487388669910253433013069670776379070934256243726031224899814706931742199025108082993090673376218184719436216494847875458380276563387592783931928060926174441738230087571218537875346622587896483620919494569765060807054512443920178743027849365887419542664490567210220924041535779180590965882269554433575246786040039141918623510694921608051960458518603795299548360334818459693181763588980930820333817992143089373488835192118357190155789950357543791761822927821567426783603846881826141690683668819720877691991516403947232513083179382487679591249965282215825768717352905651390252748943199553247868192363956099432982716811625960740991143945927021562000600392113645188225931051901880633895811231114859388285413435972754570407977345470734170600684400031463040729370773471222987155467683490389880358217086647301885278755836215437850655725980501405224645761172351947622732301947325439381549880071193435791256322055490908229951436483879929603339161487879073865618693591907091815527717180937190863273650369277502309480985476251934619504084495560811210646151946167803639835103423736826512955570221558744060899159430632272796361849876923028613854196368853878817068593882247510787571468078150598782893234385464487298315816560906313354900971989830460614975696210693363755742657605475216362430883816217209366667956726862188963056307395955249231238131812579101429098918777371596059858068599934391185420221547767480901197118449668001588876281254046893229138054329767786678778009688667586396911026873516423389735212468993171811326582676903200765003402510059116226344937484200320951691981875910670240266485317876152035800134616035721698677800861640333327241301270909047199941614053304716111130211416468547711777948758082019403868021245327167671664929312814081156216069343011829471280654511260709700401949571050125424483714807998593884163915511209553044839709349243298048978727820422639198285078758989668320497928963295649727139529899739258223520211808171048579892255272599236487605540485283882051691114748279156504738071270915337415411122587736642684669903098495999722031128330559919153670651957724332941660081250372250902055813105904163177932355529959406390270968539225627987768058157755165574317761515374718162699030997420097058342665722888267995717566472606944815397723737208448428510025020781505724939805843375693890552446693089958881944622551644141519839966992764579462322181283279915669782547444791178758753234277818078916400282083629804950826951432044964090163516841463542686614761475377845002456287907520744707742721945905374231603247277857023209553223530643140856830175838619810055281872484278340269995117104663800814704768859215237530799885070203452546554539729222440431509526970693204943357669653898057120887514539209038683516363185745156920548734688575192001379910129236767891468532719568345431026204476430058285710004694168651896391973311137086094072742587553954126777894582257326170582200475129878240637748317164993281614699791194900341991691353697094889617056345503266441145099511616321347432894650962174471940220991301836035177843622863622634935920337065295706188035973891513314466744275311305089441756519935062151900862777019067962678252704523219761660896936944548229992111964796538968851719289037924981838759514890125623847156575374911297254218090557994580962556781154647001876040506245256092736726733778201381811348592491340114609516614087689551350914653489702960684614363582491064840389810780701351467189175140330962901288048817983242631141496474365253917767074460742278899602235742651023264634780002526378835029146747054448123757611315817575934082871346601810850248609709814881736802572361296795618484919463383646676479432690058677919589789820374435608341088820976640169045537594309595940683615157520279653353567386286640609353076373273977508301927661559207646782910876063505562898654386742690371805916955813517390503947474897806662493231763734994218108939779812934097572869065251569919685106875174854425715742159155403383270356643120301266730207896128456460808182323701859232280578098063787572762127580830548832323115106356568621216766427623091184314287527891534789926967289302290483326287527663924014239313088918551989084982761087434923285043192605779285765111317911257169970819081302285240217492672848349631779862907241440120310564199261866585513583696039339350154276980791130589371507671658186535565741628164964174862585412984112424055746672269702624804238571935542890672137191755364671708073984022706136953953449788584786836067061722984915120521469874547568747345489950201861120951356837457946615095034436871793508463205629565370919190670765346979892356083752559172018088233438630906622239700705150128980815652687225755816965018577116881994763692215380908874148356141406495712142514295725180939727552051761816827473055995574732991900566355195351526278915763895793737230602968755880522303348796628868120017027834175998918384188560546842981146956723201938798436062319600037065015360994511637052508162670316898414423780955544941476243636363189469353151221498815633260270296065202041033676753583103986793364406116898044596773733818856553561356820018870043347405874406200845036078674997091724567105979528218730900666939101090100734524526996981560886947265759804710379626491872589572257406662869293774338261225914915703704255555016407488100535825596648358274798198005930804072813944541899296139482712473286817565905743044164089987356070786791866621411365280796828291817325830151824311408586641816472635676479637437687501521217113663657978173022255107708797570151036030960218921025144187342623380598986360618456646541960190513261727304504825910429539409575371869895875371327765451886677066131528650021382150722466906644719586460850460052933659863627208906987345203233630529141373290156946774982210398196938600559686875158908085187285347521617008106172473787606396371469493904482501079091587993760000280625876021523462668298294649645611757387192329857474402390666232768790170417785359752559781641893374602024693736078497877571556811552730638890706771118907364134637123658963628999758354596475529106831303061523532927780047689970024943857461459407378508099307854783396554553628243736036293590912752309066949634603260915144266336074982569594007324242654532155033316031561652794721701192977016500762484277003654916595095477569048140952811083799474228823337338633073755048435407489424031735647370821323058327036803191264067332092487285619656707870070125087415337256984662304079954255538546220402038507781900801343125551751043308523803349978902826059645999285331840460398850611518007670131682232973783566528070528260046482889129203152794077670306932475457206163915166689084020312097799691718846525990787767112939542898228155090011267835604860471406342195961450027057639439713395209827025924754498625972236434984478640058679802448764201430456650219903215809107711083060427068991779035495837624650301872855907697334064114985282890940211774072556321323045141405137683033105798865834972889266139149487545058301635776718626605179557628605192154598025502111429819719601320987194040813462587884270704107553539363310294928142519200788020668841992861018967730413610750957697958905069463477753635533105875368952322384934668907363717078040161503155749213233903729724437509546708512462914548705769443782879704620954357999714954475777622726562845765206479802874896564592123504225272043290081480358881190867860478171477102870630022729201941781648919119014799413228745310008091253839442763889895233340579571944559788995815691326186396217099690009680639925243426618603941579454779591098506942503350120078529590746316162945395375530448388367296320996566943347220857404881922502989447991729933560320321452974842134052728075867198165330726123383808165292272765596947084597119391236788118805111384014986892770319776216783424768474856694354769673859032610110392321033193077588108516445378920501246372571446235538241021179223760681066759723938325024253029446076870196483390043841741417901028079200657965637009205777227722735239751287286523816915478106450655419816389480797272375831269133765352827220567609974093915760817869367505905175711512267067225075676455221061164443272153274392503451000069201270877435388650868331087627581278821997315943592742883754971467246995029109093072262223713650266954789495184482668057371878664680355149706193590833495308618026671080979261396623431864752520538101833273816876868869280684974773794940154536029855590132710357326466362489455151845500677832345649314310280385738854029357209377807378567956892052859144179972969225183816503647533970288839939580714661338007583029439684147829873482226590358004559540050494645772511154325015808958001639762067787277995867554814278033849515355812376741316395783726313850058888234071889419505911057844316774558153240196312386885498315566677134568899907833247623156184720687336020446370039665837342982996089108226176997759653318430451311315934058710658477834024375492054335578721082137238405024513596252504037591690120145754090504334700678433840417787114133957433501218873367592810981967248008643954793040160886424032724251936543783480869249719729012505690455470099926691326667062220474948946685355227644965711709690621644741921721848585140552398806106072678715259675958263800093459301569543813184230620921126669795090066449513961881973171275006747970811661117621085259177446173051560385154770974219172222079484235660541290167344291668563602268709117925462567981084954885289984321660315004363530623204455000050310330875987107380475913545067623007263894796989590669537130061965036233112526597974251145253754538142144319800782856562156493252040542660683347324837395802576450403265271922062231932320407964112189608861227661876285177514340275722431020750015676958521943144592769080819113033034827261807610421774412445439947886486878755853247400685189445743570510414778973444763557892596985055489038961524461483915800289389374252272812725727812275700106082013316300344121261002483944680719745453937165842389063287390133027479478340192306052416884983388905949815509392413048324223620201138943902565830474961740368053144374043700116700154066946664313191984190549315578535608780826977842857289881966717760671802659227915441748838984763035063063762060896511957146966141384227021605127762834098561896619724977326116517285901215383361954785449771282456684366834709105040680025876083249933706327550306995432653291557062593715583536663081929946958538537184980363373884638509633690444831836155274110480679147661284219067391751305931387935418353405461802177689416205442702216817901964886943321888905986466745071859941523353300214586506470123431052849447573289178004765129008926569243829264581602373303667739395331027791346655070762830290534675723463460182024544472725795282777987159739147705572000870331808755314214345804621730155325176025385961640300198365672499750734082751804548245553912203315221820991604245286761127104451253248533874733286290622461860709432368948141475548008847115832415743413116917173488448155909822801956445272920771317279694241723278585641337019982640326130292792883583256894811740278855523304857811723550519998853221477888382211281650318936909386774236452013656941236807982935852957292433842869475835731589807631320304132436748018996973789247723003181292265693794547677968075488705384873138651332751287012390762704948893632938131632314317811036670064189554744078078344767395213660994107348360347134056027944433287667486993580273710058922410488679714823787307161375717942138993252071063015257076934203540783391224141296632505521103902629987291984942604551205383939635169145901453836214364399432145400384478838136045754413700206027570105616772216555866215918407941631540756649277677191392180070658916799335051091379849457286198738774791296515102207893031838387672622185402326435081080796437515892477517179595111843133251294936858584845994494638043270541895809240006304076681788032852486214874125128183049001662958146485058202835741260033098606011547143540826737098678514240261256166987391634179951989079866893282731629625385992356225265212232444712936550836695955466664648110060447241599975853394699793576870748092591536897506965559340417755383269261577777643393175361617116694100306685698801179197924901396481775629909254271861324332315417923259535922314672100214110515607755204423946556635047047248142302778750976442899505486255990230402571252001130331387799925164127196528368344824266611354119236974900594646070150061003807134683883590617396487424724694846809714642641630263960000098713253636373228089505772971007257291724762670850409278494047975302025235823735509732016607402240918464471974350977408452498376446377483151142495680493050747137928788261284954801855069583616030577661046118113920657705115533086607821103964200136298911222385615681449604339264842637428358782539931245593069522838501659249228253317495856951407531094752209785151809841625857542549724421669347788659781813902745049760347417124506404813049573812106405526846040871754434454701952805025275584330259491009586259104042719971893308778526755314326360985168235694564910167899672010113551046620713364679450970476761356800481068932523198854625627393546438209117265386635358624107347775237779322502121810010490087666262624281620799693273599335632111637601843994875648024813967305804845077032847548633273010475568893794052553159932763011075279110446080719663618206671338868595784337486120655387066989766773147321654759719532923335555281210234003909458230061758940644873598374909854647185084859830061329996228777498724486293160571464811784967997025155957864327832039019947629514189152767658272280808804272268621726858329384626226722653872531652546936055040797782947789786060019696467823328664050654933889281010194687711372898386095364119415656997340954718758211304548292412081835511330514105538204374409590672996164929757475330790903600319754389030784868623228166083682669255860488046527766252028570131941206748849543123517531749345385371174493377138172088997938322394877078687387922585461030742573372194652706398981198872538217222959356490865045479216626219940523056002392792844453616326021749088264474193360236320841278871283724287745347946104614609827821861442873503905683610377058981459807009814025277995656651264926833348845448181098706246276575659901967484242961087918960739346996533500149538041210556617955194507596890618616193297260746117572025399454338579077237405288178566368827115385504077806368307717264755090656539187772325656445792886855799395086282044625062323403312930155851322207075821519414919945757380371609286821677792196148986314939602855788729655637802558767594566690417951413685537787236643716298783558184808264848440684345377897576833151592716223802385982970512621930561664910563561968125111932891993455867645997968169393999469104850340188054823074938883540672246305620253414802480197557166368160241467190025478624770493164364771109211274588265693193535060394619950057684936867116974148051372509014815435562231048020207055792669224190005989616698806390178516457117840873766492582530487959048582101747190424477710272377671419965075487715639926593787152361984854163425678132363005535048165225686584122125791589591156774115905898276869419849778007892911496295649678203388314717282540805340112890380262162433187318908997113513351509857581797568126323467690343468413443529676613223850705397619083116615292160927146620906452813112567718854233613367406156286972322735694016843892881428954305238167706684027025403296478952021750729383286983910644834649864147977518523260854184706270472114333524940563881502373492386956191390349575329224955133994843659294247116564346809462965903873303278612631333419651004570765517965995235102948039142647638226837301128964158680608393870911509230845658879980549816635929759543230943348175294044381386938131171822074889296415737278669668852775457421696336290434179692636206931793722645792343664160708064279807507391199454817384557821367434292562447634613747782139323902400097594897312730152160140634986919470173002733961785292890493864390949149628042506623544616928678837218999254757395945630289327651746106840420358108098623207366457908237556157854569327585365519567637673063422463449122296632418904903770236818067467406072435932306027854756517306023230234943161477740929420466993944649019299148837802112770636270062582133214899536449059799959993386598987068902325362001818996779315382335540186514586803706629435729019815823837076506289201564598615451082986200066118242934700512969418226199006303030602146204456975948420322016866245172133651984022953202080829028206546122331802482893267438982844402019587938963895385112826575090272984582489142592759937657439262033038955180371718215182310981914718415007551544824121559936138599190442634184334888685101052514863741878309260953444286790564051675981026022617459273045414773047483754558392744246669276091072645233158493682700467787929343015178485034220896366849281686085041829828445669563917024633706097470062827512042512532184921773649980690184574328250429550005409294890986464195663381720395458835925190089330988993829175666457701498488621821256032379995700387154725305871007007464657429723496225931688724749497907509465021789450365578520812799654331442230991907895138774044712931514451007589686169828072647507869309961272140029938483640176349184388213052944417200115587663537236473362836093768763197291367964382042419912513710577114000249927714521777625275915494663444530053880619304701301630548738511985009627073297546300920830958480139428967460288616858869551699663003116560554978397503135693331591377369615771920312729145819358939570168565179155183868355127692342667922101351102907271638072593264586412315004669649878105371674098747440505836592915302350597271428919681797370978193849253022448173274362316557856047423392606576574334182027301783625800950885066450398345452328911035546278493080632496618678576844011500477463031532808034144666872906558790611241453060313661112664111146001019312059975458100435767180799904662159478401902879817367724572392499681479930578294655452300832809394924191311720490844545715591561041392015148111169062226146982992776118146249832530454989352675378452701575875233583943857258628159283886613365505879140319347974801691792085951945324502784070483192054336048531906734474845692219984756726187759923453735846585517041785518214472899718123262524808339721349427469484736006614756149701368771962671394898819548800639769848275421067674912376878964804274429665499710942692727256486656918724416932591428833724610885871031045719944813960634208301223745056324373968839759571240439711183914056533871119931891281793998480619691709174232980130025183163752106456530397355411532967001356695841683534020458488770489271494693925177468858268580338654679104508335614459157921834416717944689735228561276214773330120319771757511612630897992672287693804471904944604728911362486121639988495486920069846013137486681415084312702297441578004258230031173515927287190251334409097725558571654400552902562336984045740854475886297825765453024115869533078533989082784605755171466551007421151167214711397814098105639429720838093984961636910206424815535521143817974448801002605955320592861521707753182746205354222860854505298947142674831986828338304146789147017772938053469807559329719785683072874586320328600983862908184292192971582936340357725618985162765470506216637241636018577517571730722706564050736481514835461087300365297493031446461534416869095061859330533566087233657333244691637961289157562746648311910243667240631312095851092035215513050266346604405065375488187914237570547530104781840394647053210688396038452866514990108946187048917560871791020040473444340891691691057384683941519531945118566046042729150884639236341736406054725793514043888244140018103906935705350366896817697229701337328326796130316443581988191248432393360525338209288337882860279801914077784943090782701893349384759589976555497035267402135608545876952174058412148320879185388309605141171982319348058653546367968511628654003771410671542477666360926128264561557997115611982945207855128763968999355984448144153232032777203934942789727936320757074675643340503472054394790210123789984386395685507689389669383626495402687153934210120421851067696625265861792457090946434183190321995117218025970280871598247588863941050240886689276336037901672751622454380123168963491518554835804345467290637640893570931780279568216964675743932045372544735210649263093272830434221291712585109079164177316990412071272301864273824048364842264397703344566682710134734744919251726621253545305011471023667134391081321452529476494622775636633185850438830134281706556463243526876123219128039653273941133543322972798841154009953600235187899064976649319708694771075991436478042920520527830379923450844219590557806859368070832142917774051671772340352218209094006750955958605171136598458778717598888905553533171157699286379826156010068837034028751292512747445479078723152157350567415118489275411529284495376175548921752143735874232606558288632868699427431592306068001281538199322895052575830201076880335118061358147856335895109318862693692908688951524761268334954436945563070775175002278439186149414350743618380642572627162776023817076995812502137210720612313536489086203248774745693230738292789785798542944652449040879668766153505161408772629708177469972975879863227573042663163183961238655764861806124836149178131199818132332483910485281947046004754817850484910890290945956176895049968155893326710117680940352540189766548271161908076679021176347143283150869603315366502422637430573785350513613417430353236025285105789237846573059543348719077894599663371161889333069471492977977547168302670310741694970722986590397798258819022850283476180270927676048234349938403615509477447956355737238299697593362328554123293445165121526289032469657560348140275700605003654005053543488906537399880438376715563926891348650506988304431519047748577784021633762915862701537301231491439786063251008753360871606298474523347926356821309816666391696735154225388099360664043683540570401380861310290360302463145442111992180098812077682045501517378958407492127097818595024134587730791941939831600062434621057097439275818451645181499704077177423582568108396553624138195211260326452307549493749702526023213831993481441683036081052046174742966935949045624527221471010959599269558351934015107712229623991842973372002315590597413824210605987116517405681452905820391650066236457076910583192851905757092797545941629132344381085951645378909866632490170570869409925103734225885547689010716477785476922672317367436860052109356472290579268953431732729821579773286454373980699516785288161412530767766286496194059492568091574444092418024838163001858588760982767909017226362333355285082422033086165335348497884131582183799394522112218695750833466288084931637570177166379631124016864938260171708704925405821369820082581070668324342224536626623580445300495746373875844428230167186678963686272154096800212397582090256885262254086538072025955662882049762136057683115009221100075260277887650813898395918732870775389268083577147843633835141812433010613084466298259136783231911352868014687139241005723172100490703374153259741348824297342567651090238162645621177181297968364484723176072479996969242311112969950630996953241791259683835715613776543456169194597816256128926855128820529283586700529242545682735316453179242981140066105232281823571456543616542212135261207267373957532354224347675047532504540131873821434259467456012732961256758574084822979403975853612788599426414146624938404905033780884326379532138629688984906277477776476123642003694140048789696771591091026262338174603810203057561005674516429351946539968733929876566697797140149585502883440781173466410699277790921674233598399454204366940100888752768749827634102490953098169416356626760162942972672813291053981732573786348269663449035349508016942347352243399598587977264308334790794759180160039957974660018240089592246847977370693312164219279864710141139775144196535518896376914216255976761221569404932017669410370546482368418302319781866165571805034221771819103952034157230074815498067609267290252924779174269628156802991461544795918669008156646783995229566531252139263303980049177796810272003978262479419868413984341901898697539032099538308318267102226026216429364963818831306134705190602662922051049460876177720559798599406124837140041532518151760374388957468876519958379745420455041350018682448617067994889096489544658125776652925062985223984752231251759560801264952718190233746197325985455905496476423870060217909444696124578877051291456751357275155658512688920722142728788502517437195387497442352109643093258214021495158804471367739871918902493878891252133478315378327470725798160637007043815288591706024857616386393546858908955912936827070064335385595472717836128915489259025589624524675705072679609377635403005669274100078491952966070817152121141692261496938310830738114985247721072871178970291259188576675047428989457227022035888362460634517674352383639741424041940468827628628896169458831202075414379429524577352161865416446521996692495432304984557089133352584990279516417037364235626197388748608014699743072690596852197889598998639303143639658286244661760427585266492098254425562733478525240739630511706121264237271899958944585844927715441430608398652008188632765096563953544772328424000237076021921014961990699892828287393311914632981451613500814607410472361923873845998240657512358031509336246921386023785224425813026161264609523309119607295408748564348849127740470455110728172742485534710593201295756114498742925866335614193026026597229056271034836524253639060827057091417947946336047215348872185237940625476901044417365512649648500978369019254005415347803601203182992339092089840388816015577655616003661212677581140466064338908104902052753311468174686878150203391861998692334184440673245177850295563419730559559997935702888533707006606198492127093037921260013821972039805275250472640877200269789424773658585217738547979132853165341952218133385339962286476252667570447576746930984788363548856820084904318498342649025992863847522521140935166933181980232610298432415789652031040452376633240037686885860551559648863893912071713134097140441814292034120642591532173404549933225435345124621051441090207798095745348025523877985696300501410656675852718498910174479740868051866271895852389504745718827436391083342777206952226335422971825935980080398633182312779116440823936613180818157781135121637205143879620799410622820970354617564705075437075095137941569325107423268862876728068553760982217349978687607295037821513248682870453187678195736328605381606538747697004019385277593605216570364707623453883087726345557445200530706522261422648460563277220648091698803229804928258211558399514878490646631307745549024736287449226573549103542299102872460731785111580045861379628471518092939317544758220261425952675889848707891110580727901378146622594614741423984731809662045744923729803276006097177340294726283010081496179955577153349974430986364992274115153921289000426090388308551980920513324144118106362874205936066160426793160206085534043289150045064303794232765722792984835140552549791080416695038255546457371482011497739154459500867530875062073692348113550910294390910518183466743701760010623549127103659644982089749146932098291797823283979864888089008547204234130291617407100266118152628740959300381952911528825748911781278983265160239627335363555062239304619735875796609139576370547019722463862935632369889701212099022458969452498894982603315360475481149530952702268208587084030137448557940568067735324710595520145899248068406425763368855131138193398754103830853294549951404581787599296137104759188395547714039199221405013210082055710431349582141669272794595168421396044635626683844609201680970135703063965681441232215410389023480851997234274534857586322939217451395810397938521371456152853698187944172315876089712231134649780947263612124869154143281989646677920543340873662052016162036334988721033546360130915194780620311445007328400883341019020440437006642553904488499046443628105996273474315047355211280071424993138776653225685417116718689695146696203198097169165093010169795072759940614088684579534577343184629511947542180192505111520607794411564642703792872363761723557967172274778648867048598802642640639175151998822255915908821518057153117810703405307427921438443681652821685652069429495524407403465592696550503384568628194611561311922335599072498114228480188663633363424764218690616732204464427292466102566659936699361768846368814761043944089853766854326914223559536651171073608455849154283482756075639814459908078482226220641925597771411182729216929171269536233080792190177151245004937320302844304421246023824570533595117435816124919548160808266400377271405625331906721068759457911363192308195718359113754532422398343257479170063483196152305406829079521014877047348528702384307721437442403769654207519778985454571978897600581180088979948579760224315489477975810953348720113828758358536175771818970363261487354551965250668552086105390320833394155096545119353808946320517162716349633215710492185390144515983551604492116055112321356233083482282603308021574283841631911948049789740800995268784954074723841432058221518734264117735441062729133092733154195012110155242452825777333068091255233685735584225249373377694746170882445283777482545581351690051260146418347500914069066133094339235998039841567607271150538536189625285153075244955429769568113628352174734198132778708726733103735211493696546538962529809944818929794981266738567916959835118776882465549868675297422206857554106681089354277277144960480980046094907059785214030470929862684253606769098537196853994850533267603449186505553780831139943629247839189391138153126676379377487645412082289125948382121950145803975376023630594498426556259650746286066565577936375818355885495331961487336518441730708105340378248546967689725641636788045850541253515360813097865332657726421938684212322867891740916489348752353733013927247229592468752025489953389253333342875387460458511579360447067760892387002679491718592899330127316808226766725193749432444531247301941597221616268583206387463205846841139116673291919967320867577105473822471498543079659218615454251652917022142380598080197707320052163526811585427683086969398115075155920900568686610932837657582576388701979204699214257385466872405516769957884322397644866140080749176306779020921321910771373716967689327541188784723493045427689901248995794660245039584939320797856449130784179079954335448089696247171815417914665997703292227103134352739602780453217645798414637130343291728645894104807153481931863407493737582621395668030280946405980385476106651437366247072246872536957239927445592503752904208977373156691616858152906133569527804490697233867824148406061792064208185871942778680609439826809968202149083290071715796358369897837325761731629022943139024082193003009307067153812320797593202859546644210897653195064566383807255609872036348625070622604402726079032632965363742105015115526374371176545215671657295866719942885907933481048548380227111579395627578422342761403202106380639222974265628991143636070287314167292017743542358234040481760294084490386131685833249705151936549188672974504056807712272437606991629516456148261785600063242725382819349966884035019264967774919452357517642181746736436877240503940657899169701094989390781290539313430771253981532639060651495940237769475134302636245646856629690072984781855495164024326953344262805619951854654674053158564331126479407203885427256636312300307610641128133758371160801242437106741381643209151854263259463324930082550455227952131169784997665662427702430023756342778465041303752522541059333860220658589553531794521891847427991870079634791338713404731432606527504134959074465105253868148119624044018882989344177990692000427278229426688280697224787234541833947534632618916743745134667358731043477904102528339895803522598623510648811744095233673525572226375607364278458003780361100943065306754252593176744095964820027026035058013666103850771459522665047395993492101668623245686767343527067662428488732981238378902137931758779620743164961722288590283182967328739570695099974443670333446346541051453478287638826482961426742946635805878782231726796611488642221235260050519652026077633895768027680698028490107803771250536077425694361831084771142065855555162636870882068975856233810559912384258126150985037870355073600058096351798047367377114091436608592514048495981522627265446325041786935205519368346184738195534383050927253817863278781909029551241928063957026828610764168294036078476392209125754354216766658582077636370755587503858193915755858684511601961630791491668317728484452256603752890406026614490566636029062479445466323372506125476209492188131652825417122132349960039324499712204314938618592672775809932540549272257637509020849709335177628355936612330510351752446117541004615385859568773024064470880819192255671762048062583770950770719751064179293625877667248508412924303554487436826505960595424079074874298020311256752506330607503502113535708105216023497799513380503442035695629613409141768020247972248174545319521895090273232665676057391308039553790543380734048434396220984346297937963172701816875103014299730979581397931229198143431087390860970214117425909323822038689806090277286083798828736675223923413438281038185043327017044050394341764615156999398903001726972430580650041230882760246712255615730654704289308177196937268717512951958439970923089278583745433081465776153445873384280305037668208672588284071995310570309125158326712235821450238784185690202724994964518949901347562139230637237323862713700228037856610023361302184303320135144161313410673957063268583081167387532790783663036089492298406782912245951696574827804757724755287328675028682647738986091422652728891427102720747342390233692854083697678449725787796438918583394794118360114145115747474310836731388928398522876258328617228951951758032883963076375473314868815116319188306648114147282357686654728592120753215973079748617310225773196389782791988242959046130330328787276805061094094165153204896036718639573348175045758602585308806507959181904674319724587515175935315452011637028148070001331601768967908340892533253937238267234672841049148931680529174671583920845366080068335535556252354892158519609125531420426114988251467940068555751225725297429678161177932722192849868342850456683766648444137631778934602736477207395234271253021119432172300481824360129841156531841059502760410744075564099820265342166457862985334817136655999974706520291507767610692537447918972934683449780474716103261695733442573827222911023771696863671480303162774768040171668013087395718077651802998080205604767651461247995522595619604484338653100536662796859688968011766259780319529592667729500120039258179891489201746593778825005713949486130060423816171260769503621090159925238632238404570232267713616802689040767197115116733379793939822081923425176968879677385028908777498505934525857964691697628453430847768561334984230519009265125397475075148197432377906246032541576340958967421515551833071967881715915781936573834558630925380340054817487842081245042205730685464773714963471119113802419234302226734853899175727624350238960406161278360809366828085708614676760560790745399253675864380320581529677558927761843120270227376029193881767103018951100913177453449712453604252141668170564555819240285046461612660857819316439395456444684043060174217932873681317911614566681980781160399314474122930220487122308986758544888188814599474741610158952374554366135852259605314705385606551650092117509414301144533927706692051323462714794425117223560827536331224508987368652108297286867289092971930015534230376039893914468814513806008492931204279536451338685041790078284654552110192013688839740330294864682897852939361910048209510572545048610662301564387090268398502927900887638690384720982124857594394449109224423696770879677445473184928455705652847842433221610304980212399478123727517599333946178916071098205063525595681517957091612349101085448532245986955068528833822426133997975879574948155812331768008876283663910319855749939986590435536707741081580463210793790137898940115388929369917548486441570369268020043959494992240743266636978604242228218423615493758483934928098317828214043058024428638545035669501393735348376941599451993013626840436448940375303670804208200853268155366280393694629283736712932846309321948363213769325739230557090670072809603061185071220731596269584659363892876450849588942824033950159071626072914368573989126033068438369520189387906138290073037155758786738738026599858093719654691498528388555989397333139272070141517274427216195957111498800066530494570543166174662506271376069817513063845715983240110240542551405873442015690894501870263585377127965425769879544851541215130951702566888206997064958459004755241628387508031496613463904600162260154081299955308712400548566126082334776257325592355966774752365175710291253961014945601541899676253767995943195895158288774398796965836278831823862379728445195234941996019208336966000911877019674380234018978257622901353351966738569544452305613125842685019032701389184671478575355102067176374532426749835432617396617216395251225180156809477675784821086800037031159404185085076543830591165498454024241367631170142875358939606748565029630989080728575549746562279636920331870245691762311219715282663099497147897313185306121652301509547208002765162652649411542119543903936330908326078759746464378851607594678315672881325519944039101151559508990879120945325645408757464014964552792569728034424346414515410725750511343397932019018981972484376713015499532014479420636250183155895172516019562947517008370902185905708911393985663373005157607299471939676037382365427066880499040255811662418588410621585396933372278546752373513074842466879520516721883176142933663785820790514157959115703916103513554752451607939533740926289869237712680455152222083308181441065421231942651822657670742240133503204397265595276600513243066701923789610041207681608537729150277490301089068422620128034118773631004203014670204843936897797228889380934143410568899145000361254244391916080574090799747637440602312118028899790072439315937592060467053215219528993724121756466476930633551536193954082609639556276116053025921557020855825008699288633845028152495790085220003687585714429621807006733610469408549191302990273396389304776093519767566909382449096532251286179882041500593448151943075959453860555752324397710810434712810377394926526659188825523885314471459563750848458351889698245862031055331860176081634570886105504254193953370101525591575532714611420244784801118753569440765526466783156585380497081833926889854154770880073126933722928180380999974273908327324878714602948564383266382347320884750387181326907282488353474604353180741473519470390905573199091161314706809240914912012842975350328306642786422517195805869958822556554895702014876484549718827920607192303666509958624995099797939036560340921554909638699524177149828930947619657219514573991920617937604933625733752000451440715381806671290380491680649762238152072105521778916256791284757112136003857921818702390816062265770889005316373008498514968707661384386489863856846550332436364459043098880358871852022560001594859063358597368245077618322336184954453195903534739721257984858558629165626927470628155390361742025561737383473019772550560763997218903443690928907544516374973575719259297768423227730816692538369313332926598232373181682136810753248114791702372919589491221722496696903130889472040899826696907395600806131001041554137267368730608064860196570945944412660182564533396150134325110261965252522716373149256791729783729527216168619043840873264702614531508399502967864739296099118573889866432515384083255892882063341278584699214605710253052223743497530670642106205354231509440812275309956640087647603093586016156509910299002261098736388689844828817026124955111869218662644685180078918667940665227917411661279101699579476242759637727508407656909867258975319307108076432389213995911484524742979479848525703092810090444316648228804577945745192444496195995251783802881586706055302161214079806885917627227746482404997350182437576467280207383872070290446907703069643709284920857906824659703552600307806205393179261750748125959296505233436700670405404195831678678679736589982945594668156232808330576160292646680138168273243738243213365459527369759472654586813616871389820043160416245051421186120197326259207295204545845683119194562432405026012501835690148327433213710985065638995008472203324371364681959245779124530848810549139929092871033050280820632234302730129030469168513828826431718527084096513478601994536350134669057832673927303437829757014375678696516892659958927436200208273693575551441740728038912718163060742991201626148055709344739181084656170007509348683827286210748353015495778514237096020866929229015683416210847995035326139238950463810861160739396624063268451411775005883238773846065774567125396180251213471198739140297852304343851249845012101415966131839180941317491934274130898095506731623476562066217069743973313031845543557225971433759118082282303529681899518960563202080860782995612463337069077340672044853211850950370072804185554860622149342947251985705129657680477334798518399097209474175855543316210385801527332086497096245249583827948823055540092047257834075106440210818427193074209547255628985057929186523309533905547716517027766467925281223386820463809511251929778590765327468762493710280849984110964039020763689426883821549878643350495900671092471400010774321631778255985903119502022732549056057445928625781758339093877876052631970165509363779089093817367302584565923098722809488042402757801263480279637539317144818824689947614408410087442593466681034735397574830795928209792053908818720238517878666478004863908470503722674585796303234942535201039814494034921861866119351341297803928350723092145165212761665724178981578636065582583948744990028159720091386099056988054938772617841136673882962773340539069194008752824516219955243904111585852664630979070736290042587253351674812221277496797853988359362882321355171487044370604647911881472508849027899989520149418359352231638968172724450193045258845426735563969579842481446299881345141429427987895931559678322951300381763613315147799814832021185603956600491680540947257684752889501536809900397164651086521946215219549917568560517766992092178678271806691254254587839101541561015846945073461576375270590476537425780751543768070033713831408093416854997509296351126949098706371501013952929611251042562186479421007792193979568669049979824471701711475698737207143936776468590805768075680365014151542682352755804886310410712370533836010263604455876216295870544812540926377664297768816372520321343239872499994531480062207711398101196947177818027632698436109824677254161394614682375738272858213886698818829363425036174003102730540354764899905186366159400325379317907564143625698244173943570465113932410385383112413222115088755895472445328148149321505310444135028653727001165999308419146730800978476879687741471397743595402358192001182004510502789912975542985504105891758070946511778468272876828297239854105411755180585117870888107814630882403761744332333381940104641815520795154074598508257925184252758720593485648375310977607607517552947212229682075714082270297238622970254994385059170711865296241095765932279169937826039482374141044263701929273023819506256470635389458254852267521311054682247708780898270533020176946375665447449422760225262985013712928824805111276016193805731031856485313988374604522762597096779543015120126386535422360053306415324489588832375331308796846914141326523077178743265101542549259792322589979514971055695881311143011958854748236246582992932779358952270248435467772975090006466823005358456729039561923644611856895028656262309562005066580502255923524798374453818706014431601808173147881078357421493026124290274632785594458435142863326119909849303727768778767948011853370267092979952673756806031745286854331583449369207469088845376894633107415949016752887049886812003367898494176671801150086046700817259605041789967726219373255377705824920088005028694598936198571201794622318394083494790500307272801687164535691356209002331729261883545142343863989150476218763949346434031512328848578146197361095363059915577210001356061347362696423883623864847456851078728105879180699172094367084117875924915231998852941329734943685028248723293279582533596966334850992175421890969909854864290530098305985830035780268710871424911795794299655333831749493921246118447348444596585240309733482370191603481463626824403277841746719527245808002960892308812741085159564494643290295382063984254893471384516059354407545149200893275768337632647393465239112952623776633023922838075874084737262980792721205275138042481284720720570421153047450986317215829409951714373217084095640036556676784085798221029831079393666688508368174097663063368075087578512244519486229693458012480492270159379991866749152542984766533447791139204490447792487323191640150371931201082620257755826586555355099648441549292149220186989967609874985491997530268157622228234103139047013239961372148943197247789505632071007752151214694231371873661358260648589242971232966864062297118406467569209853974857263429577414265386160565345946490188940901138498740212734069341107561981548431281071942664038758270652139233452452994062131002668312988813850363590290135251028061751882974111405054524426587910501392878562464763863254635452621787546049845866711943976815503855911278796033911317077509092449552992539626290076699650459500119965384543157773437501238117101213736577320624868000164673770428331484491345274947920025545503955476646041934137582519352565866711693843328158330376138468802783822410280163693160958012580090157115782960695500466002833147009684419879657168896738365695958828482629839323323157045180577521401487546797988824411580432178448521538938415555164528981362574420685031812990887481520359609599371240062808386513280263454116461527060760265885533955447188215594903285773225070559526118377431096694173518186557445491621740601400191032057047191550183983282015727751753744004997317198548601262608777938283937693628880585340220543404832660267713944750034606216772943641264210783244235229057993738541751453844708808005415979936265655013870519359248527707941284516151829856768388013613363383314633089481844672108520376647433464277258454281181820186334418191077828075338330326936291634471227209948981428210614533899205288046611528447787613281092863090439286222299024291876554178751780280274978644072673689443821588919157810844384836800617714397312392221675330130695419140523623457460556979077267477981427010271549158730724149826274028498626779948378761496658423008739490569558097063807080082864850106543415793686251933972474563869183148152747892259078761203403643602249104912725133131529080068114057300420267387729809865810668354377707537570970512508992375589388348000845481275099365675995076755877209812586053237143889136997806399838833297681464611002152642702138622518123417528758678223109843960300125655845651105875655740608895089030259158909385331160875311244069994538335795371236216785487366084824331377077528388326640114634362624528238037337679802126818513619680646373526846927573618628584018350765198216800854364520846762774539411688324469152982027277828790992607517293226326490514037137673165887573434211009791693418121095265800981401690795683015011134045857438269453861322479832457679489312625700479633246467692928623690326587969618008765299139814338180110247355668304376898540341246577883221725397429177101514632903771490193701311850474495302091810167424324752198422978786131816737973008263745134134884109860164631544729837575661434137021242725587393246513132636715492384684644542677587629983141678291694745172503101376899241145291683751049624013934852111117062542547065561201713551449673001445906900838923151116973731468872301274225671278786661360078827312206450101340416219832518119109979598572662225287132963446895767437827131414408738206283937394214565143237622177790881244853703687559383954490592818798179441756908774273670704332203150226247443760583945882244684199099675652533569258220595854029944762724954926029100499020392558551386033218574349826089259249205992233688479585890553321263592577146066621599219712834666433439365668164288870864472537315255462431391797682174829624108622838154900101696205849734669712539363763862437048507395205523505668481751545152448902439467072775946936912171698341761250087531015256983582807358521637709316558624546546941585662459704488074022665229766127564254234156728215410374411474953487504589723848609121861614206404179521253731597871914955407336067421465707175865679420809839593506539456337587240367306933870380553293039238233156131051132747117600295025577233536848214400765196472829402757475946898993538660052540608375167079290632762931458848422790607871499012531726214260627254678824193520358421905162845600842392012451654655718108102469654399245285053425003820991438157267372758191969115271296481180643613309508117384052078855099289147294838055998647942962594346464437782118853316168033895940862231505866497504862578618564654339947940131393515330499680760150928082381326379217347776701538167001972825013022492693456329165110790746153045456208604601795902421896012923771468252320724901100456938509008649097205855022424834459955995094731274135929739189914115036854119971523367808208609975679287622096231251900854787543156210960043513724807279936989406864301481388179292999967418926489051960908431137053996585310981659872279843986075541470613652337589105552339735445222386512100487697170942464291707108364400538696397977364023117539521842850494030635673226966828078028640086340014947967621935215598208293509700132957131935239725059483138973567793840488222263159764186303825268243596573980031855548870732164675511158657336034517035507264531293649720074118555198165477007565678055297588135288510198828242267513056400527294810356827008769716826279629922655918041595856684085378908641791684065359683726334677384212248640132102018414070678420117469250885992146962505535169426419701032739770451121495279118263223107555034132386052715516526122231469650446096430670237453461884299290019620391976445033183753133086576457052231255737711525839396457208643222231692114074523984535978870749668241678283831843461162983384108870907765311136471316393394243088819573706234732186015625271907524217131843651738570421689200057804955114570737693806325788906211052460947396386106217513820796033877400067772970991849313984381546748870820564550263248453150304320369287267431477038423327037321635911646589508882574805829423661838856063923308915499923168028416099990651763666756012843622944494034285168616910855734202399791213897277982453992357881341148607676087240796610861215713306147132834867063273551194170434933514157567815352490754100982810156244972265678182052499203159108754385988882866980953368207294301716692805561559802024665256019425327010337198921584617766289657431790711030970756171711558070423450059861793462881247861102878892452870453423840970982603334633615429755075641934113886028459424263454685184909259201145077432248378890084961714009055120669801324651308428124740070603169966534305109063494549453748349765630416965008626173896024537186629903665263440720489224034898295571721549855271568955291340533209251856844051463186149213846998765226984780547677507907756231474012606516053345347436533725378509033452340567973144660322769717866588190959840930281530534892854983272046532375336588372576051740944766644523348066472420088979509753300240770563370256182977164812584571410357716209554966004187317917455871899240324012946805851921318877397206393731379594342276163480659915945194167726331467969212799088529983307617606216535893651553730708445947171159192416547159337162369586350988383126186394969236072447730281892291444060571887086405747699779132847269833416389432395802094470420581623729328257481359563872134731832942452358360917540342321740648896173119072475242468133490297215861601727261349521510831357534992329791743066692702500751637608048346221839755783734353093577774928569677515973004937835479313747025943184086605542728744862345510621745263724827473131376327187174179586341956902820034945444320377624685525548919324984350599556964172023160615237628638241715124760965186842176918135549907317835506007161415539390356831115753009079842680312720596292010068196169359145157573663711572343062951007082877321398522519445092364278264719671165930151193250741137238757939599852300434951838428067553929756038939600452471376254633194232335574366381997048002723873184850411793557176869024075500359613592788050145256485094240937201645089764244143792323211016270676539380923278647491707553605292460800698769149855595416393915374600091053837582648432660287613746217695932809072381543813837251507758366930729750238724780208028477258328653911654894414037152025110683576267281889095089081998634390964948344132871676469786838395842620597795883710506334711302069773735493703740495689074005509600372453271069871502578754182948513737349631055215532752744107766098309289334345489348556580816367797241677482854127869378976776614569158541242366763181905395603850827857614555097244391230299999344688834173780661375853287895626133745390992527030400280094921901881469583200190604359349676013328462132722336054931357477050294171022241108938157317409076208054340322585343781819896830294211395175632857735463315955664572011783066016500853982487100388446051795803835117172689837477520744641757390735966845648667681222385690168694962142082314663488204917281441521376520373988886038700660993345959655075751814356991173643661325939073180650569638290600271615116116549260603742917527712807523638152605878700029593066043062432506147890340653300477262494231592243602900454129336286884334470169901792987024042024778208379261498602467135995950416907865351479282368275322312105437153683428655241817270618373097811044608673434857651795123591298008943014548229769342562048381816987031961847284524700762138883224381415018744661424089269094265071407441369189178346576747970417616235952584919957489083037623120492802043152063325554010383366349395485121268497014501524004279515394981013904312073424452880232852772649499098514521486111438997715888370048545092403056183788913149652481286640386029067205100345513728245131460031247801867330049913466291702867065046261661562535042924706980508672926310178049147582958874440506113222162669690095570455720749169981234874033820102384167413228528207496109647074431419553407433964109276798062416381905646705566630146239095608331190144147481820902537714878069902026453290215702766089551752783047981928386111803870224315819657065536993383850629520333249049648253386282970765539074350592944735888282097342062909193257950525077943278232868321983147043320958305219191009033071587704406573162906977788088322332724208842862615909694519258253577597342486917998313993034745110913301713139569848887603731700132704692658223132442016375798729119172151342162470867911835475696872310853619169684958870569486394775530000723267951760294442765085148516666008052470283259663187457888407166629528885103813373434552285169027622320711237416361118827174722119681893411816503176497395919328613271610992585110263416168170345636228072650842406309561299832228841274409769724692116787743732081773335284013541326390278910520083621117291660971414854947151739925125849916701683831216081154953784028166617946772137185454951658067996803029715608340345142827594276666588722083695212060570715159393724213346893078016076274365289266646577017064705806003159151933751304156095657392162328216190231176297310908245373286259385196114845705496315470619763874418977093172242452020632053016330657642468848137450427266314563968625368502547197208862143091816349764795792391993572837334775006714906128659512887189319075188995963773153543424493702223204990530865462594445021182706270931733057920410551356405062683330415173125489947985884578082096572421005535660744100619166116854462971767247335501631201090729050510229134073713083621122466782784467131488835902015656153432566215783372990239478780250724407215053964865467886254994901513778718062004469336680337056082544910824902388078843342545570864489260519151074316186045019727904646046851162335832583039737604896933119543656544137542295472672446883422975181212891174223257143094004322869078896499193459235442022428807037769146714851027277324639610991396559224333178600959536592184769742998810471542488952155290212266731673009168204157957932930228736057915769613857771699022676887044282085994401587158593872188179901371012403936280912865583658396640552533229781527282124170028824021142705261933766351956854706550907013401613994170592113625094004786178031496342919363399234694262303310389648316524037316736330112084492501065084747139306012819132705074099948842552678971067674270618580179122601184818579260694791018117419255736240632211110140482618634403189524748586483631393167207912914681793930855427999035453694009797143222564969399054418807273536858015587239872411517556955879715398376051467704357075581356017367581082770834578303907680318249596013147502352840001919340200181427466726261564437208457367415293301942382464147103096443650814353529425622029138429604886439196688138463797954313755976660694474557771076036535330767098022587785186395573062283870057504781518093557478117027353538976114525474485708991292649422374825477692595927165705050744789020565471861650603352647116769567500576817927791079890329986101259898309716861320783848540310412850070667293125386616609680822239092811313407705280135303545974460366966005301666507961341860416347916796857775246560203418939994919310773958144539520800165285860128890705662085520828561381599519044485517344211666169013027546989341893585916279429921925034222375593309705419648112563414648399542015297466516280645425461417711801555032153622766890565896111814284783265445096739829223565367092399274510732995914001052892184575270084061902172797734841245517987161545714729156401940273399449540556124293025361657596543627522667616387222823339824158143002079543609845328883101647993722364883968214178181915002841831873075218965595615491479725075779319069467040799790204158420330216284724298909813917254156917575117477543846987614736178178056493781463661097452903260248045513316869946154869794819323185965073945109745477507935112952133716806009834090505263720875516579096196778716724481028443876106071812204286227573277434023836570627884958242627794936603297460959354605044755922492104990964959500522246311636406635034074139808958467939817511797999945099114120115318810021040135936423629879941819510880626111477671134534607986889551000176006090528833436862287138397203170752705374297269464212597198473278304084705222648477981498761638101248381422000375756169455918144529011712832019031853703687604307416476833850695369459299605020428001537128377132810239499132860375096545051675698262172137111743700560549236236242179759228693202999310237105604617054003738972283197586950846983956333272564753651608887411578787072686600831338003205739340433948296536222937936160608699295436026766889059132236138416759577925234254139353692032461659868859766281000936003978779068851331691773075309299175375658491141100850322675009100863983386538750942683363434572455975503590380798927250598949704289034210492776513048072658863766925885726416670883381829664725442400024666910734441195937915042877289566209210798369005353462020342835930394351845780891148901862234818253002179677300519608678412619648631412840483628028923775580805295046032038121668474049973809537995998919549341368725427282871029348999438693089496036798388700656488303655126702260312002620322978561923868230108213602999028846668343993648329363031812809367755092420601987467074282595011779730637641030727532583257150924324878602537930945294323896274963047889350226081891869509386032331994402502136504955501834576396395125976227700992214433764387971851685494497782866260164983942636676185622661003154632581159554941066862766859601129304300996703472879238313086208318674131989564022217092116036451504211124114288036093603673597870804759298857934048248635275760351152231165942529098715340931447228387193701683230201319347765960623317549978970685352564213539180491888966918024458820078513969014065225314292324800819980157440375556806920498693986065555279503608259609049179510309824504540035841878705552241489406708027021512626245901366524993209302961789579783938580751249672932370389905878313190412153218967865362263482920200326897869513784611182967822910585819652205040882562931952374413271160129622725112184032454220039976578149489784529509204783524072839510392314871039184299446136514053050983747008101588290517958808965592872443372180465458732499177301182789272656798614347071072980041825581374468651311203905351123052384648928320460291795518588639593911311187192389680919408084093390017946675275348680137758333608682406779166615637949582589344498184456550445060311344879892645210105709334113230297786015735279291753841673931724753029927312233658283379593975945860027826946801390030942827542876352032343275423305542559506181320147881101586730761951271824827279733679657121364550945386229057219584285452389806433966107201600423485981942830438892872703298529875855273275573851535615733663735801732519124502787327719631549183558148054828054014750511594275615700404527872643337806251695116175738990234802793065297740042337790691838415507355272082604012955909110751941052325394300727898477653880684884170719483759051461869430702302674906552327458868728829639006776833353020416670065599904233754677834056147738025991262309678343713376427163235619963840813877704172177609160041731830804594218769420244194754620717977920801161500047022666941962044228562511949804636006062517337526018906022177642615828992410596277240111663939971128007854580213013518006308039093878645331751645917288938920281671508721378134282289319471391889880353276380850305002770470586879492394578767955443292143936169992358350785382477654334137812803279086175810585459653566760991804153254446546242269415892697670185301263872816391445580635725328925784490746743295344205180711795515197716052888437467599513374759865003456602083912787655623752616096299643480173756200265182842568634321115548455412206897335891706164086032167149025523756849157989633498419428298307230189453545994903212634859110059091553086092431929924665858626607175546715860527792063664988590999195709064253454846347547519641541056977349666803913852423863479774832081511325335332159480639042161134256076059084251992832081522460565168349583102153868075984627522734642369270406538331968614379957320319627345838636101765742432228345046124491119258753546419641716071596651052745179760094814805337914126010432480381812228745069220550091523577954695790367314718560405169661566945770749701270415463498935759198600603501739763216035470148830673833391033982817924200009626296913469040234927022898392378393060920235614165446278052691222947031242554152472335225214699200609801638803327026430779975028865704526737352754374545792630120240771973762064358087577741994559107390587209829081863032506296762812608723187816599627725948200768933324553324816087216210527312301288605108756734102682239267840638652969025761964503846459243047616117738771482627185626162987925256358902594969106465251373394173275142803323740252450781109409575024918844435994918366259604146712791518128436248326801941506302392353450521775926224536267894870843929056307795581631899382097366208120602002555378804835464642149100128717265752349461869445800187848277110219790056159457057904219586950010281785663592439433582028564509819058268613175551916324092537791890575849923892549183528797652746394413833989302864498063969727164031246029234817435625670051146023903032487884247213443771977495273797744038047919245737843813843721055932273619025232635695694116744118698620792486299215103846285833872790055150938964441348733453110619117602424379078977920351482026344345619617123553003996853226299289694910949201954493986354742084659613841579902022412232707143982925831604306945459460740043728744859529888642101061136366697842799257183986529482866829088368297868408374473304565664013028642070000511318675665727009692829942558828128785789667831867947793077366172660912719210298089451360133574571695972178530907989813758871063083325560238269059190565071570883900426252189220182271594491935400501049165904725622409316660245031860288936677607387031898477398973636691150531926128427538782292470021108894964518110280119742842135057725871458140928508860276202578297965561802964481416433921825104537432158290479966716734180268987761159613075417756804381994930952608018595802312686770904015597754746211477151842962580538554874813888089257444891070217618474839611108595793027242959357413738455756136097733103958969735974765122068670888636349825088071623421368817259717122287816268773908723836601937540313777544439205563095914739379821870428270127198122153007706417087697106234858394687332669075467063039277902713298454038993883296069451670970231838303224374300255350155886884083578412019170328933413176530511182687982620658377350140621375757357062998218498236732486174623653999795644998413899690678926135103467861609471924487187228005397783476921085509742018265437360397047222151758108856298749873248829467472838406433572312408254554022229361175948532110013628611135026924407418816022289374978752954485541709210110124478407361395774240139756639396283550429546335773772821011860799881581649026924495167404001607246572119727035820000315638927372432890684771497181864187909073786073980918331686444280034726855751818668689528603489056710802609954321640004487531685839509806771522640409700461478883437049986200160325465674255300824672939452096928411070232189573283021944242774471914406814300999556889077055164310711026845514902796205610517838684779330013817791653395012524412017478193575046755258049830439115237494287671673591819837520704708524837099916148181628510735680176580385249691152013840054272979435796803396635498331732435340020890703826766048048443876222489758484664816623614510727022136660787698987690902348270802638198632464122830354589232944859152729813893221265362018392443114836198573400784302698793743051112498194873724174998401019284400292142069163585654720368360742587049083942384601591563212096952385194455191833647403011579931021868568558593599061597840352142308505063726770337534243477273114327172000619727920897225675484852885401495416679291468687080267931111355700760849938167252572152980210690983415937126011931488005677233559167176528886096055308055540241045486396393625852309221137052637826498196968291769012405941080781429205651786950769507027146574494993630859334646778276673007379771459317087910373229624622830460284171250474147251445508909950108397306107433138771663513900750533319807630109624498558307659136578196791717511818120941529026203341424632687064593495763066133969971661419654019700753118766869995316102290201401560035775082520372282390727994540489154691593405882614134113574410682211947474335993547647445516442355891785346721593844514738728438324120048901729818098059321382000705197243723130550232628141800986942856391690190063950603920329342062959263336248976968450882096440247000730673182562656404176052986121545575220280625294362299654483971606354016213983719060074957235290048890789057866980678309925790487456761522912519705640798446017399630114626812039284838123499617680507925094450157939542562229609258889245849834791118952150016665448565153553650631021710473821613751863254187815459007184845987952460124369542386013175425368703556285729959707699802828635336581080822651893412219209859594822029740563919538998316143874084195954620837148096545879333757751846355417645513950929870882023770937178385486530905089176304166366126216700054252118464439372984636297952912366132760923906973072743721390615192802532388427866007480169231543705168247685062873330340808215646311981952246048848509626701854574018642450331342719747283778352087766656200935761931089784278544538479713871466370433285951770001682723933369292666694916782978916115108017993844591220889226175138795700360160602862458196597387775651404092829774044465968970930954903752764343529394852292956453195669722622938278308298733751499119747495276172050873341798118695500353592255635752398884842623775636180610380553642279712355408284451311475678049941360084717083021204440518943946898410111414298507303322911741551346654564098413403776278120680263222721297365902245170801949366799509052941944039975985323328503240700161677645725518541848186362500208872582262251766516207758796734883154019057668399528629107949331796579421400306477490835188327240294903522230523030951307886923243148200867104977117597615316478058450501490054874127594445206903659106449585829826617006532339963783069750367930227774098066420294064194405692634879482904137149030164610201547384555046928679696429776861776955566903984371364126110327519109573710795309255650940938559141555414529534006035932361965824094923430023457061686125171409705933509147632845045673876132617546327320047574421434839475958619429765978652251172261835116056099482157917216856413094756145433275948096896030900117717363350333043824702983228429116706495981072404291610865645474432662359220629950051447171326309672025537852560199892220856591779762142262219916202002889822535151390231899132431654823729047981883286599678813478887508942798806707218703727652779724956224090613897703209415698630492702199492915540943934131552986986735094274306323481845710285167076519001282664472942857986205182653626818456587919340657798472681890383089172803951998973105655990256655172486098625648165728667529743686245446257163235574237829760022971933333933139045270058763581613413405209599757366323617747251984190469931290308996156650364364245497594153622465945664010647019666771263215666129134841580058613939498602475122423750910820878115929126971254809272324396095610273220136676108183030085077542051731424079810064480939922437881958041641164067625770405201365104641469700689593709704865323360566963318411201158186468370936771436617452873748961534113713753772440847046522083967639286803045125975296243101761925924637338701813563838136538444920788958880638812836388869930667463486099282999207417291110197733790917411342641061244583955473536894491427951868696758219618321336767177128027605681640996875710373030715922026520323955646174731032726996695637613102841313863850278047031148956010264415628200374374928765717059526111353082139128154445167733298690551091408097081055682576025738308055118919727897244798983036899516678888335483284450263821984894706822211479261686917497575268375366602847909351714076628218253946496996273616199886574631156250853365315945233964499852204432897093658327009285675465520779766176672954597251144883443257830930390314754264463612415500221716086178422057773188553216374012420179335127244341541439272372854828641055422695372735722714959914546119314873074306789228002083225220943028323641364353804649218992199938586356410110564795171636664915653805688592021271260268386273957990706804400193837944628531642150311749248095687529358525995643122689651328888160290906409948758017365032533468899425916874654657268036071132255638252669584837601360909131764997608870838425450211905294519183739189997823323445501976125728931815668387639993050311103737419042001111355022429036899225755127647651690979272274812658775772111864370363909175687775335288762132777802068455273948088756311393729334822434467796650832879779221821746652237626545540298326318702588680187251025426938659212575967955425003603464615610797974196897469492842744570447640163786500942823663782261380643828706634421195372093303437370575927973532366534856141113310659716398339029153832185217644571926924488188536322965964012449557022338094608733929310919591385654322136684516083578749742182987974622977556918965823301850402893739516508875759320860493779152171303300896683746845719419931396397050801363864088644929007940687157078693524749970988061530005166208205254230113561288972106158384730615538007116647562964044232566295402293972164941184809197292995081154306408784304351692111973627292550627399613494622933060597181329033777284739789150159674669020234804075676452889945836383934023488661588868027201349497495899249190364285192203231719873382882229104654010424221121237600814548551833734578470339198250542609514160915035837305221003406547622034733591136525089500660238669465741228512887867720750092578517495564273418009028744930104906619890027476236760225759099377827930225839444241575123019519429550551947491586978116833812968762642009605316230522046605988294443855924352844290236401789045724582744550761722229830246895326960267357014132270571903778120868193543843886708862204752889940900475574412812749965781213200210589932120317438421116166483693606264190194217060157638887962712734132166576033287474989110615595645715415008144671101562392247897773430848349932125695376422400938555828331693958064159873915863053627229946018415139967911382151557765805552981791578564466352010437331600142368251929088872780307168865860050596207241238405466578226318426955633643375100469935911372239791299743313001589328014045417361631530298575375785454539724881310023516222278693958818099608359975206751296345951389759155520759445932019564621141127608024750292329450165592853653491182597796289958822008651809328868804959915766557484766047700194340076126244242335005795500854891298114963220214187076854232759248157745583039643057908107135674848792703291755408340210550983404410530216968285602365140443712213040388293638870834232103540330679624284292555888599906161470962288133626226744768766434393355154150063785238648388410305669824360461563392465485638243374001700135999791115177040604086018716630452771199899022124438667675710344174959395120769731727840099756630311446240191057888890388848210724314159246650034983730236068919992259236023569753166072924469117919899325212087131201212300254763971020072042651983016904249141403157057861692386582990134939002121854383782617492486211104564423706291199206844844584914979434426645593381810455923432956445313860622604878985971002412058146861146906902152359367142442112689056083124142430405093382601773254300186194931356621611515516027036008455442242073437469613942639794570490128875929689080863581683541949105058804660754429577466990089337330890886455600561909840447661499497808424451802364301787020860374128507718595660806504082279257639496646304513097907039803228410000246666225670641359748779791180310972038776001951898275556536910544055643066445258146510979349748623794450289486638686274760959589498577040004140469466249953116946146857908679498301006000018676248089580638227769260550490660856797538128971987478594795165355910130281289721073675609060661143201758183307912318503271368333032529997663087983257526023072431527420281839871127309001323472166095644122062845132471100597499318110245279299095372768184111065355220774175794749287536213593752423439835654292380162767832794805274743021463650082912727569074118953498973088467406123885851717745025005039431191469224748479924781367840857869945859436102378980995811997164156220846008199097878371925226348457385321392069789691780286167766950166720339207438619325503335359204752743355953407710831536599162036024517222302939524214103672180404362235217209619377178280984653914122567675044894724290729832604287649341725602957055986180066048557192572432847394429445654307173855871370744602535076815803305940689482247726324581823115018926855107321829972155031793528695333471585993282289376258911386503564076068172490098308572584130772294639693916762952955372908448616206002824312592181240529398278475424925215452244317736331101518675245705455444184735426945181895228745814704009053660984594033049965006963433937587777117637306617518441405931997361794131388972029284972568799031480095360765598712167979149432811947768504684599613250270564206291332264198979109768171626135870747888897460134616204885980861666023310706429241378121141369775262700705776739218682091806151809623075782660593943753480804265835591478338940265564755483853958630612861767873777890452392067823731847240527094453736765486291604013657536749294821517728505621623134358708905450299381100866000859021978091210555120379476916051997991509161459966390981663750223663908424891466270339944376367838139457329362135221938655797996916573211175096606163055090205440385581606801351866783806760640180485276797151734732531284950992243807406471348688935373920331332762793426159269005897838756538775546895590254495945031992889825350387915560750838015965572919193046866277516721345051087068767894478195214881017261409169947427973823548675629867182619023621645811278157392545780840790203672527693627495369230247050889591576784038703501665845066725486585560189707034990677697796314302520153316530458690447259674215129309284938902418531464431100323327513847385005257819885655198461858954592621728684173056821364354511374574436783055000158813553208045542631336728591279030794680938604895626199319868320654651846816960884369709813756832152298197533588945112629876102822870991952649300059698376799487316561946453573783004821430047328275171104875783564360262051851564567794496047135798912388840078307580838233627352782432152899489864727669502064868760644811015074582747182807114006946652122074988135235713268697939001446998497950771153656401035861148770587909010308439332858116335693416925961888645512862817004470719307504100210595243116916247515734264036693564515094603493731220974622162351384390465198317322628818814437098212120982958183727966249933173091854953907805952370711773872815803537437432961753969207516085549251042871362046715084485560524394642280496631919242786703356541398908228928882670965536378857878682365226280815936039669269222464336591240572525820972899590637833523702696110609870614717768185419755936772097474985651305165933000002806891901498035741863022121824923791354712643470717566115817019214219115386882686254686110915100012734312953221795244801269762352686736274386748826634704581029398806636433385022856840459998354899738447374632259737631288872848138761882280307493400046706800397228585491930655985440783119137026562360331824995258840726498813953539932173394911763900683063818357675640069721354268103666153518391755661508869085477564073400707599065988983772842985468524191599023137433052107289056356101298780089591280247581459417688752425175431383193632961983410160587455321563301250904266116358928968236745627713616884412561365043898744168265394315910692011382915872902531996116951843069396711383983657839124842465787267459032318981625024132035312334548872727005961484944252526176556429671515598017863226772025693937657455187104875907226253380325915528082415112769370752669649290712017502526242068631708083046697248063818886354753834176690623801975927515139479229073918533675195479044610484025247507321227221542986820437710637698507475821652224121595571282679544708188151515805483090258080926395500393632153005118014274452445747184246407712171620676984538513067054544911724388843612454501070482556085282406983583854091869724861676924270210238948327818372785614377576636678790178816471744172317379826620010814838707950530287545025682336043204027597627930620169622633200406915085576624490846151451417028516871323514347060542874447122484740871068930365595547979410894463702764958508605078116878455717344527903233482931605976816247732618536763534811455417357645011026891782406041761710676879643066121060951973229477615044590845535972712433831344588738474488399774890413637011013735036237672584544741066749900064980417144058315262152430332305800931300016157534784137169656233934560906588784287154905978496386544636260954670701412803751559435962806657169583709747957673359095816544201962164329104583582992737171017726295533980336570556473719743092437640127416183336906401557365839368645391500539726864687334257109731993201699400531949057828046073435999982131317665421169712449568423624572216196075047207037056898254031624600161644650832041078655564250488263773279638643140630964302196362248798568160275598109572031510423323826240207814953841504159969681166685488951073854877114889415139221867222056440899967232071186300098492934559099489866654150475724074062206326542741980719311335509373154517133471692577965724920068715817225333779085451229382386776274475582395333114724690293545958716509468348682089586687722125592563242471559800647562190441991810720094050703039199086809663451622354572569207023234872536842471629762044508956398233612935799580188089750953781916759456942176462171426422548740546389719159440830127600501567248732411935064273880947805905515638579181827120611281615510555450904178363381483481140285725086215959460691071011904577927332698667069591468617977364851530984545493490883939255881222889287180010582335372515843832568781348270456226252989614057113198066623464711449248017812495067323400329464924413691837283255578300830654304824661178734942637691701823327033380945603761292664344196487625721816899160194814539269285007630371265755612935203565552182629130561778102249372986388766882742821857811943559571499807174823961352872148961654588045468183414468391399386399594997958689895192178696300881562440355738172962088787078608913303744883906031591275065793762881559304906591072449832234671686797293423106107275593133795339078974054950380668031152621237887827717931569766352306534239857611365316606727465179143160012673051092226554217017613053895384901285510461243275623172476585767833195606998823108466711892920133473834560584374124032688657601262590379559833394682149217504477903420611931587281371751884270785614549426448899920683881305069663526690360928544347352172074928882861836421013668859381277341088005837807133783104991824410785170214200729836484920666005564903404970106366690101098417047132254230023653229121534066182518292882534213742691417907376529791457785897551127831551224278919568602727431413971873345829217374178891724276814966642342294920797608161632918399327619492416730842538455306748841066151357255754294585838182119300727530391295224804437785283071926880038841932475696679729987169065094880166370184354531138755339351875487587048416984931994400940055816332253854289729585783121837048390027857357494881473189470325152213025834590143844668881915999773985511134792354084428630178723847687136194693672334964589887219353142438100829952498881420164806494123109562906975631160485006338880092344882461217229374945229201520534144083649247412226636125675210783940207465211835539370864250318820975418269237317907557478900851592332481370998647623094766604946449976526770885022145013460707441416079179979713325192151332263490302814678258438555101177635051300224630353929681968462031782930397729360496340746562218363564696344134388890356404103322373122130390121277226428923294133319452258901837287107197291767851704940619365414301055460445710494828872635751049141144852919868413150095340755938232773446855571216380824149398555100821426477915053488863964296467992994607684039010119052990174048199259998058279867313990328958136947397631115310808983612678386433220505214354021882683480429847608494689234601492850281618254996726657244218149189699910744845328151332110337814029437947855515473349018389779016967555867224383784235288007689673090509827470652629749948597637438121825575225225655794602097912478361079768688521310030293873610435616531744075541713792201934854693197393602223673851010667730518842659686647553532093904156608342989247753822483453297060614018752358563643668012935932229715570550294153964695680787860304960502085615936406233578155708382833516995681632302438631228471949949976803581308974230333927036653393358007086540692523618683614578678494854699881700339906705980015173976615442552806678831667721755656910374228133799313813444081240218996166882756416183172789558531474532196270844821338957014146093318993436316065278002477292983053735283258281572925316666097137290800179641874378111728613167317181013202804798433378356285734771568180417374556212375901907948410906978606710117724678184167408188471671308585533221510525186487480541037231830655502446171418296214467945589366577127874212054957162533936655080873347141009239052331639883800094542800241049777086684584538821915916823813789069250586307356544790648251910179773300676133795725656504372915448491982277834742648222169892098984441321482287537523722084056866415413277941762150864791855861222159725294757710534438505338821293314634681658117454453830070540625182725921516960468753067803003076254940931644685850807910400289218072182669426385391914435940522163330968817638024692829084301246162102718692625186746254683216769736354987896548136309300286286242817432481538076191508261000975668692401920598863101683412800632411674204852074076082860784329587876961066925823871689818561455521912292133546383768696034805900853006387841908023788024535867023012151382344326914956728414314387419934174819312281132826893628957685769474611283990589088151943732197918050963285370659728135300208360048227389584293734172539382227728117689165720624499704820876982705433861273712158620321022534305519526797400877499698133858961504681148482397701758563664643458600837168781807153657102216010008156722081811808167818269632688367781847435434695809378806793967239318915053402358162599226171159102137070036764979189022385713009300311958709498851581736441247791346210360313705958430958583568111702280966169897542652336287490218494910012602402095881255324042361382167089516747841265178052178193202812779140061203810377195700442915648980849901263322591167494949658516655693774321871874115519147292146594067467803046563091591091089710217012812575023251409655510343924010691383879831968848199884874020935697536342620942934726404119182932985843075434288051807198512763153797869552993682674094304008390775046232544363329810796951131032201186411507969507200535961964023475608616884559540476854432303255259900799612162963180506460398148391488104029353624554080580400543721424164676338527181413805942148797218959696302497887213861532659023881248969101682431484148043501764435931583818853945138474696782470386667662960439704932230601145006730872376100803490786439902352069197930499026204327438674919884957534657360497994164857017229519360424828325531436190358071605702770044649306798064044302445800985162786441789660765217146847149777575794212328672009721505024301858621333311413893985098659584324885350720846673148970069636794719309923000669947329294981631846208746051974772034648331732122875136639401681324882802781824781628229566908867355180963842285884482978352311770685479777704080495861489486669316158692049925202503672700609294096146315319700099524038708465847122727677402592778426093597687635558579368953375867720739275245078053156265532501588676964160558887417440813703742281535341935699570344178998029204304322536175558957634891872804185775238480696087411915877838114468833688539248682791825762683940054848831843856964530378770033468720309927497355918764741569192800776329965468752533123342220545054960383693199467007189144140450526565981645881705383052694290810995239596720986300492379961525772659410608849387215827079192649925360764513980797539296399704338305405352436250298328524305231042255516147452826445912326555358936439217967107574944029597978070435915644616686370191577420589087148476933853215192247214089357293401770638611508806034268014967324577889751862382777510104844879796319529482305882673798083364025388192964830667182513937010496415055382176067676898929715657182974638754413737623507871336705245321128161945207678093562720210606636741530629843293145150416977966116053623442902886229884826729778587429845516526281509949240815531514183080393980640657260962955444244501207499328648092569436054268272085571693970826126066650607383674764334886365253806746968087065672027538554627911601772671031081751190131164877036261206684424228013509344681248325640304336345534805931248876262975106898905229272601546973832889820396304601867793374209533033780191484608137256732665172644441814360368322439445315752018941601022145047404717370372935394276224218690229270901934333494631081938847433209076327836596553058296043572683411805792200622621300606051859522835920566936526028706897262722981477130556517509069307058475214769873223597156574577342871071975820151426614778038466294709033990934743221594362037489175332796733034179359690900356730744346793391402430506756549576643638592103194730063513168677952521117024331917904851813805779600717471351916613797031937807279440028046927504972698460475506772777055570887787554999804496205032193827202571239056587143143293319649401984975815492199254275396460023537417400593027338421760315622619761360393867625893799898511584784329727681670270756839148691933566850090704130833458119999711548976824118413401426628373689265554622080321033118794141898577784872074996253957279204842584067073866920296183031836826949431420885323121831789821696478809746860587153974131410723423865469488097061823687152201796007090109760079237578587342491358027833723129610457359737450701030966638991424209922385251598840464131781989049006864516696521276127024752634040434140952323709366801320586757336891173637000485422795578396947861695060068144942917573824898035149969993168038928444183948954885557556793957815590986991152017250017501356176128552117463943228466121605494436126554701097611167515172703175675008893034753014703525223251573897946211535976367103744816724309440166799320942117054041845288906643959415354481974382490899574301391384351187567082111061045727409964006713303617473251155615486977373266237159453752080762146827566784650235897560107859334506259300029311979027353313950745256836691849868239760552387758001132644204826183154354799227976908447767873940752206511523007954318120625778267178565655132407828677169324714769541523119284090448484227187182420108728205526816380433963960732242162352441542856524785435788174979989011984966300114366130633690047645259525957422278402770856441184829458881406924131889366552498089099751840831850191075449060065067955880824171707085323430968772523492838805572440119729408677479086377211197422467226791303226768014974060541974609397319640854746956394235839548012749536727582321478864801413146941678662496734860028445589449485357826935168286827273372894738177444728915432137459560892258981316471994055098589675433937855351078107590358384252719031066672087676846470781643043865101912462160679857777308570016792275710789877811906279273440293076868650163917046577603406920932710637367889989168617490498831040516173624291220831703947123166479722324685387538334661796160616809320879821248690669402321075893415444768619424581970378804992888041608322590097084605853473781325622282680646703290299994773614110660337204814910070527871934033077286513399018734398710510665455953254910627715091951536445923406868065272724415363266786203274509324750005798063525152505095838190365722468122343580854390678043938627648118631524367988101072404926284519701727393921124072737885267865532369330395275676428192493852166992178865598472546674369970205633917289099808832987196520241172025078858895475122002468179203573586292218674264087762104349557534541107743391237165246626469903629347252544691326090274788808372023452440634141059129311320940305749874279411924569105633863209323071905680259966392127721614424502485166153383291859436801997827586414687967479553762997790774688811231494493406190972731197213721229464663316207545957560470308392605690130086959846180261808517395563665538108220556402991839955384157983426350526210215803284638534428152709529000548326841956465328918747774055817069179275762338203211788016402764137495370578867327528964099760254445290173691722137373305808003467034337239712074711270444747938643067322525135435333325038767081405271804407398217711970597299803328212344064051358614937997695799786222585336088545245261499753138091075781770304143049435671167384473917829359906999581276490285754358483329258547850628683025666233478634226774440324011064735376737021351273939037763876510319103606767428195541866884627998254396551904301721769346962933332111630738511060930157463672735761582958092877612267723862616802526373767306258156415537878166681615326677311159102044908939100185366427683593136560488415502676546604821600535664572067565425700806549160015112637166882178801854144406884173221981233697491238080108508318595313773178993832692483281332951075911399788119571763286699779825018094328946153316312987490758295700494537529716845756007941380086386946034325918576469824450404427976325606373110388900182084858930891565704403818008787934711272400259826140577283166665241853355486240708504319445160368331638272818567512448594514622555002884846690611250248766500058040668111259919177041904055925459058161348171451848595104718781547221224029732151068254148669788721893183665987076700285165412648046219404774132717027417450521123359698788035922047450888981598379619608274510779383490373839466155795813697250830779828063366990189819178767283247803574560890987310416920364579770209166368684276130845357967738955664363485519066583823753777345886000603452580286944055347470549434991654941737480214154607930391163549735370375695783833865119137013723618002565297278467990500401000401623270136471106502681876695528941834659545002031209125676173046405103865745732297630516456002998714585032939946655107514809604034208344477778142286588145851074925200960322541840656784833457849697942952631326915295831859943932539106188017076475804150707953172439902395109082731957943327707706292803730276114366723183462869157679057210446333413366659167488029357120383785759266667658293951472906616825406384839229077363915419037201013015620524203310068483656016248491566652107764055134253878092551607502271554493844511311204944410890899592452586247245229923166220329395246629180338601715521338048684367860170646562359030699830060849382818244343502753001291432048707349013436287780652126366328008827718083969207343868462441921965036960958067618334326736043199017751920539573227752299503866499769047021433176084636171909279698775580636091784594140107317938004055298687645176379681321265560409395376767697430377627758209394149775227924890678043362054687371233977856241380247055918698497477340996932742075113174357800190072411451980110770987392050686930155411933795604541024773266988086118869527488531377443787232773543656335766358066058995449316583227664763866812598971529349546193835984932025946154010487465968413648006942580045550810192243682684345815733852374203758434910949187216908612236051496201528599152635822612939366674512558640704946271141517281085730728871950460517558401344276370081167348346519357320633104531018200461757751455152612418929512349088119023708885539341930477643705817264200053572771456962259600769983067852867046206254175057905310969380446511320695883430536864113226052263655323425377664567715665161649736896180925173203973130841705054295380853879580356485826348024186292722000387979366331303743284710598356166899015774756222467836865567295936749065934682300161933307824654297644271849102662422812906948539592432758101876765615101052687661404621112351559821654934979269906693444526530713032587130725497274158056200062202359223984902697804455596290549087378387779806681887881586704219695670418279068477323354514911029358368671320601922244862438152015045273015809507498808014945756463448735197352779817145975500636250121721816386399981135591804847147268177826195750864142466763799171786841844024022374185914951328394237265867508470492172846984435556977224550316096665252546762011642088390573850201144785788073639436151426902959377459795831393562481976707741758644312910152407398901330686386328466752608591624880581693398175559635244111369717284062407336838415025516286524387567246539856774622564976783898668595281193465727658804290226587586141822427057992160877662719171486871915180039889806325521603424017079985465352934400238115988732647661110698776125088779137420696605630533467424687955651689528695357731728574496602101908014626517921304950910376064359626655555025965042883969148803618598918568965752728716252582669040232034380353388018979114253808791298761653447979791032859585340717636148122626178008505085108764299180611012874963979051608628552718504825849874204041858308673276571482684477663798830042120135425085401440545808827261930946096836124269435367053270235103783258654990082272092931766503563137268080791683520543608787325777019178523738577229877401163908131406360721751951015306753997702149399065542638615219837105184482705468556215813455988682149014020401171044368472164717816355356020572869364628286795686494666240900134013951335112907671547407813321151745320070414971325334227694756343034531808686121847429830425857487352547815127650007276287805172344994399757525265127375909148591696563211026261185753033042016817491219064642300950536708203575081392440437867103877341436007341371554200864150893325411171198640435413666204563313797421451450326534163558815601602804867402377044212147987721030193557959398352359165970116379634590369952396920290458603147941987449411428024182695057266648764356892032289146627950042148015979097759257449515027640260580652878075311389147188250804231087541451939938387530358073155338128157230086621379096752282350812065782699591048554790058878448755276057431626701842420174294890339909466970817534582564429837438348991728689657855108371217872909441149712842965214022209337518284499622622391556521192277267987394906654351853121178097446004795390570437652898484357137176494899971581739056110437470969060261808249987787137069182867468461516359735019189879789364714002225926789832779099987027933624624554312208318407990403323992245091984238951267253303734285355780752971698755022688783596801283725951628681173730524134266057225239912202135923016635702432819828484156917374246448430453855427406142962125899647381805724474632622875668565074440300650963277739348294359926433550970275494128841163169552269601804651201587075823817922986267668265008647194311605381807698689432507967878568957702459369320380535125549559790253056982212666994662645346067196352243794380287236043233916516556019598806182074205183326538182352256751948261998604137761152240687553838601828852648357143704675217108765973682163013997551639813846022015234399661263905374360945879899501961248468327495529245203007826370165278025033325284876345230573982120929172231123228008157955828634547271420923094949778616064843284192696166346074812838430988211021017358267752813126831177428011348162876627774941452522765988490872250426244495556116539621769953340908583587163840386195378077985754451877173823055558942572182379155031516504725797747197984117799995804325374105285703766666135492613446932261857952635352773896927630739335946559356307102276003061969317228157984513085889549882008625173741796634990053862997214016303636877083928457878146407625207706814896273787441257989615403173355044449125902645912468544367695849826842625661298911002877188375612624655319173524253202026167687386394839198730222268306762454347635908518559081610111575122738059548832026321748835207123717619671469502832315590514837323531289663377716826114992395062043438209972995883158293591204168244183224467669608644206049290032471617193782630442060212368165536116637907299675423588132463876588708638497487267386557829556949910660300382802808899574202373334780928032099384910891612364540107756925384345811420411866731535658535552695621495641488081304477066687508342338378492737003923361654225319805593265531850759931343625869510951742720089384264533081297326878034293980270546568122737604780629334465289968037318093582572423319576690300238074075866771396831879302782909382771710910243762585667165597100104837096308666063064190317133485702080294950398359319203908675585493321493207802451384288589437906296775555979574525289226493616805164423307754891413452578315244429351878732422671853487019614011857160344065702508137772581438490048098008117055523329934399179025498537284603738212049423634314637679631962210470041369204480555105387376861721988964198932503554235761901435296013866540475011177036537766186138397257682014652330082306672811439128732395018107665444190878850012519927549376962115592386484072361868331474651585840237127183078633920964264852590668667238409085693536468897390389568053197959101696647447525741079369557470928716934042009750384721079315813978003383869665347177520006375548146313820949762239149471844454745418405905579373842709339360805532229329012394077023431547934088068664857639381273595593626604264012579600562145358932904284883632829516765670903242626397961854349533140140882078389017653244927061082119714218087842898024562902605791935339414771330624224056703439863048957840919399258568853782520222695253000672373391007751433682176208641474488398398939607508321772813922112875623294588116280288773809166779908882669805522893424273051869948172607697760400602712126714017567797623324334556017175069937477464026046459997311305123232483408114567383685265323507515848126469578851716341290356866929003438539636961865882914691367734310116811164848317507378456054177773407124166940544441894483007861777533267617626351243075389199646893056252371812127354238495290563582541431507980701225958489366620775361629186890912940855555789888494865376806674726510943881223275177769079415300171895197163837317426882271830584808111131777540618089627860673272426017515308921820593541142321940726933215545691162584596127789998763754099576154224089853053023669003988184300532203839981237154895044815211275611314306480087372134805498893843289775145285825470093827720240711947959647308206262040020821950037975619030769387612610120251035209984271019094860206156396603904256129415152365639927998583126413741687131915380800022401670392658752771959528886434872967616759209576483612621612191720221106416743799385237856386277870024086533313695698153662527824194385983918493667742401861222303568573802635384039590450253224626567340301358529292640607762066603960554497360766571023870126241688802219428401756936670321903904971628754639325157073466347713854010429438095097901448934425039791395020091133037345884836653098819221504112306820153127698641409794922162833884667595329755797180048083807669459114619603522248381033879527730657088630825837326010194917447377004442098267693501929137045615002274679825953105626947691776929101307172388966649524066982701632107681685384933275968489496323316005536746474887985190976748061656915400684721751491488142123826869599882502469406565641890308977331494388106337958744634704935910946863821355919190473046189884318926166342248750646758839549629499565090477897223115805737301112170185226833467467517412974072727641847945647354307045437990760864243268574858043284504158811967948686348051282065244670150484424096151384294125318196928546177526198160721977939661656758329888826111207020716920234933861723011123363849715280459911337689801319121491362051159822250447511401552759442716363299880416633913688551101144382101881214366744862538805665579445540267407236972042689743202029659386881362742005657502965392214602210899427872864223952479291256040473443961697602738514301120098198172363215861270172049131077329341174504127845102019595098190512308995902362051924911900021247658537936733906675291624976633577198125119607960065284121979118926495965480322383700524532587897232667744215150207042318998269990793898417461148121706344615820487358936259682825386868537180438504192263679703721937561949921671750948600499652211482700668429476888851441683562972278296809240732084890695493689702134306454156387391760682389059088629163528393553887344718766464541043884364623997922897907321501066523819709934735926100862652562580974127268331311932587238213900762569695516984882784413728608675290651241242407108804817576515116001691573581270811084145770990312358609298592139146061417144687779860360506972046025671665423740102215512963584495042762422979981705426779790746575874329812598558392461845404564918531782708709836568092914600130692081603065127154136163421655518859539172577226393525147017870898901898356373742503556257944346442021706652586661843572552078324499694230531760349208937039343168946844446244726211587230647917179034781097197984600426403788852946195422426845934745509411021481385681347171199228735093802801835172727260419382043419071506020802082518102926922411987556310537335352674855433559168728427813385166956190779820614874675490645736483191345812748536829131024082542258002938374339569429374605641321568839666681953528821572488225655264453311207458742800684430556411036031063738543451485486738502857913419948103541378192438508962492630903171951799887970886852767562386677364261441562380919891658972460097431539468746131335486350783279070840042410911503002452674102009280306182248370306049610282543300835979804182716893804272183192316518469964291575232243161559427743916829443130231232534180643563552461240712034738863964777903778122190974736256928992641179464352595919596176392686839397315807887575096801096191752966959685331794697376763999837737953116675748764448790747008848416379171251290341749350709109485536176258617597205843309693881259401512133121793303240695489024175606361060727960362847763461341565638391275803418853959520082045531312705376296076394901662562954639664297871834495980273247281592428125054095616599605081993346064898225003332083117195829247486976908285094072205018876082559088723352660108446969753455211923681811074360635780231038886432271543897568085308078356212460534694586719933377303425466898043080848196749759636351167266544524681864411299989942041977966194967335106327271815785823854488354528254125419830896050499135312907137508175163155268075340448971844973472510248019410878605995556440941166765942988728862159093512370272120796744469517883268993678933541413367817212445771929915392953182310620820023504816733997306077845765584678763728668908973983662575052998370626948261726506021053600492589375259584684391705838219820487264821397394060785720765392331038739792366517466983373890284376080632366424785659457733956345120136450236650600526547950031624421989188722963515716926899702492142155121905347529707777950805551479958952559187722659360886691392099486646052075673079660580988892606199596381619887289160063395513593236908768373782580442100494031923937191057012848907453929406050246201225633339846948412736702104107279407044607061696284513202087271739987128926938716794821079220480818073695752900693743464731194934776037186028132872185825320912834763461122647355499956026361154345926410909571693733892373840083106912451085388568506478959492054618866547362531814394098483338906996368369211606249558047505403320919765382466439723171493681151476581204298495182784634273501457612392673829716065121103784856357069629833333012696773368537954077709431073771054849953201891538973408535813703034623837774267361886978190445969814701060336545091368737329926242291462663430497332828529303768579236455336049397392638161607970224774254618928305009274676806834669620209053361716065534441969889726183151398649245705374489492835012411680953445934595830797568908926211798049848661238343120029081566026822134875551279399633739318650134414500237770690280567306615990283604739571798515561004488132819753206271079248462730012293774562342499100371264261755730544951971783851390499813061731344402466987570242658699645536955056266523188187348032507732147636266082555302410031100875351412019642879807185805812608127859409832241664901193108290868515312227021378729163113800137555352139774651918791300419564107807705139661994736697548584588136844889546950712914095737166812911576703954765004455137847612240682970464593640734924691633583858731415713059641529958220437896983938475912854583738279284383777618219647554114305691705726442005249427710550245952923132521692819045173554946739926126913979688616361010538466450416969311574532127453245458900762229426727768107700339714460244954318244895054600727336031927471157402527392897003508147022767978882525733114032913678331410048556824797121043837618470892906497405877266472011351593084378931828893852632057250677197768435127978427761360691489010262741065472613606984750040682779452104742463209446714759837061681950533672362009100501628785333849786178208121226000642822330378921327760617378209043621442044047563883273804207724140349189714326339204694451181133514913673784085840555496186520554946071129472871465054465821038526826544010168731817033800911145326864937704422939842623755765751852725294575978553420562577376746052605531111890337131830577211144893229240127837295815491264855602991251724511493687777167597478200893230238281479064757711184858916866170795966425012471442523904745874553252187881218386374708057583210598345882276269327833269465453206912549550201148824273589703888790806117027694585817022678076901721405184291835398050030361203241803687230530474361881731658865604580496746582159716027067372844753357784844359444808670038235315837136705965146090209902248350221408831070125694041105365640003115498990844774936716742033200432145537299749314186352127970901051171105388584772765993677854167695438859443387042875725430331059714708804674173514154766387104493108953415109653430532615054528142943426569709928953386055686960615309200437746165040130471205076295379255235053863998244508958800973247926494218803400222786146121363291293869365538167396921193611422331083323280118412825653824808413399294283642289263678626510904620891480365524888665654119755366334998754064520384505034416972894738796412102756900014523381706338843160629643887089003427060533257697935800519180481902726737026011123703869449532647091819473334101348357002820962282304394999618820622747332972711580202623004492406142539570842573560951782617832994314505788392113671062387878454431628597846241097050588819238595145020365964557411202053609664582045819007886121545992132185843092390428467661608188165371765743135982941714206771049652211185275102813502870072025657770284047211212034027586928870273316087941097414382927851686052877304692947708292026667612402097339972207677344634672148941824789461053687917161557416767704579029890944566424237043343928282630716356856773290365528972516814264304880031057402977390956733842315718300677815030775300544644728015648953416147001526337687689568553949956120125146027963960178757442838784538850861299057774144526032472742628018165659457520946127275668427968316845204666722644267166087717562042226988029749071147623266984648879574564736768518593449426585811766313994674900194364217921343888236885027069108773659446049350997345555438604046607778077585812219418725022857052856695311090458527233005011088027155510872977703246969812570020553446378404307093530606227289227855150108044386351442846934364794249060043468491365941750728230472699201150800803426523503044620623418947586679593404541690409863705648454295996836684607230641919078116065366943731827397536954382744875383439072653632654876052906756383681480737150152528303541184846960247182424889124813607041465433859739772939445584550947615533566173868747329475504452564857030554119094894828663901905034548324034741850086921944347178506468614507546140987881911931797420967242052091811528098358036369586963951720964060779007735271607559804761982486972140426687546157380250520489010977257525350454027665634922742484568479554646597784807385125329682314351632579035311740744984772069637887301865382586839034948618536198596641449663455486036644435171927087794851965433636288492889623344387668220236542164691643209391738063092216414386882152503393088857379660677752682834994866551534680108141102022298149093043214441733787656507088823748926003885847985953645639453048305348529011443719295964509972607390799070128129845791833859144525068974952843723296084576833799198128791618626521790943299145723776593821010434734710404068345257216164229104574416667271667741755717463310784146272780208889522944793062935100585767656183407828339986810794367319947692264108947805353091679492498660785280299006954324476855873680183141276496814572136558959375157631695202990062524451851886001263902329334527312478739742063585413289906420021712137399757586162241433576008521733961006973952136614816600546426803362181407382353674524163412220942408926260448899181743985690584082329828275539441198752159704208618587384162366883951754337069892208950604558392376718215311707050613411568633411964063275635930137164070375468230029768863079047523815872122267146458775608463692865485424319695341312016866231191544158554907535591503746164945106084683411860666658093585212285895199828442201592413473288025673250302613775807063704890708621254122888027620528465827062851651837985784124463457458502311678881001413234689563846524579085355423676201698372241062551761669851142050111531156485053064233627650787169447776266728459231569362960944185139040652046642532080732233784074919650736239157476652464705469578147263605434325512702900490598225745911295495957738553131630423125954412431627520497027988585722219231694263903882179506279105723465194848396633579080601964034351235724630554402873661446296527308896401976133534812237980584522061552897249342203429274665422855026563915741918842166525610653971744315221664140513236142149994111160612533710801187976811260994067617306778373004475494522792852083855552255385789303936049101471051244512635413231383985501041241465875022728444570731157044099796396283861743734525097456126538681685489205498818000160842484805049656781769953177291790358570075660655723615599873254492460888816713547386274055673074478476035024804634588985013397491394705048221191930158695010023016040216294517221007889938004852187309299929217505164996800031277964866648619330496161872804909923319062628442470629231587548662519252778048761992315290164415458503654256028473867615029703390747364486129637393567246754576212129527649357789338294625795228410592017795658512500225283303547389615143749258075741032084285865014488544536458714403848965790854843967310443930487104136051813704048134305976665934231937234443338266294863283144517471092093664717277677684886118053845175078084748158195316567408175456955875057808215866373301014040272024544127229140046334152384211437318487441682626395135039370980895941341981070052415814162446477517636160867227545590755683453532770078430083824221778477422818130151686080297331386521023218080360779195205363657109885673554756100334936763197599176991124945152276490855987327357912333967377172848143445400444227804522567975332584200236734640027735049536379670492320517617656622861142912449909975982251779889681252094702947245493669272295333280466990697853378042266548198895429074362492797697632553260519781606255046749189065621154932801386464083838170848346365386224597876721738268292248731394685435522652176667130427595447120784066686430096715529256696392735676437058427903810412791806139862010107426545246511500665095702906485975037389231161222272569299011301891394753540275624899586030317375827787827752873551526335082608182497007856605697046476141564660251983146715047736338863229712269442639459068561463169759493821892372934142381783068834812859607325738300334692919761519940517816501006696484008413310473073030126673759605467358345272215597323586356483949282903578609550773251787918321663350968832361423379050843118019845512195746299451866700720710527666038425105741675431978412183008471819794067144777407813618077731468506195079698958659038915580018998340771980693810638478535208684944454064411301895364679540430387139451731354086429439981847040089400137343414819721912497413252040825296447270049311544940823613077262428607907454712103926705945066059234590694257224138653200560829816759655840727010746315016670939382391701132903782214566641379680223499808771164530628522371642838665573770753638204596625048582517743826582600473162385956837423603900293018026509657810700187094480586748415188249295907295219324270541301088284790485623988738486568220514971353579898323035646396570752886173541696656501618226238964810254198148931069375089972237061550319567845277757102261480445895264207208685558422713762823764989585292379237401741068188509357772953196300700200103539129161777567346072503597816840538376958316936163338827977717364160269275012992291842999029848220812336902732916885274315928588060208280436866651035514116351018157167523396412608876376165305688846689674511399886356991989155612345526852474217117398078284285535041642973129611479312944786070632252769985435004678515551106364700812156551989997207178223929695243944386567099935489432356114516666290521039529283883137143345009687193491776363544792237211711141606693292787363865342269087135542147230035924101245142965068123524599020935181727418162478780660063228317738879563021175318059984202081252260622644688031470339318219138129742996215078610183583173203871278955726841836638262256727495655042712673627569364139464826056880114022912599551064792982551504314325663384337097845164051249488237050476694596731707577112104232181272927478148891683008278315326249363938170365788311828692018076807853176727648216952788909306035891949893341393008859188628030209291915105602791523499013538602101871153005939881123780074347118895271265862163400639390435605783881254736942467306512404526890792482760356948087233017903010413142222024705463449916281768566207375109481411328077579572186224006497211977687660872878177480724924312897787100082590590474783249110183041391387721401598679335858096429323787333192263116013009597737809453279668707853370354977957087801138977138554933296959156092638866303733778835751955925017771747851607290589096082615660842273079802792866185363405891902849477933367718000831641025519235667746604122831207194539152159866705713453590421224625908535129625727142804320102206530621684330668057810141966616729328306244934227259414519086256704669592436057218409163308126634080639482301839510038030285395270913752941479536629898057071498960455419872154466853099915558251171911786244706929234852631156572028476158798990736874699689645709138999485768483318159273745712554878142844838095000751181399198505620551169535325379571514174199118645551658102511895215625771680925278589962039787002454595089104962246319003848068528751036565907939588478008011471505402599186733270860246793980855905532558172344379478914416914403433556854007032775777475358894529888315277537480200416974288439151947446940062960895591125767657042239342725570689902205668090318396601336196227832496338967883922526455310308027661110055987034426553020314837950894895340902005391999736577518082132139077226371065612242127145520045677079099339810420445075859992822417965813235447094646115432203114066007509041986902724069578239037301780718478907033396118464066534262534394079988017569966810540203415182670373173066899889322739832236012763317403770788958410199977689974786833520206696554780878594401589179089852247488328010518892483771178521379073172794050001230356109104403042003853782584422307819538989433439272602698710396831659218921030082257357427367882909863984998417785968750915783456557998461210659573443781870787160339177658513465557115670223317599550792199028122643407416803872870896911987800846675488357810650265226764731761530010749386572895406286665919778496431035482573304870675640906925571469413285298957781583910528041484568024551185820671276277964177267843411446032002275265449983224416379731998390203874154156181895882067151865952955783425913851127697941503073061384194146268079884604917214998451769092825901820475676983450417219443230200073470906593262306227269916139389908119551986986673489362045068366297809392773542751367406303170560467649094478272702067357471386702702860649704100857078355182733234008529593832978423930517912434013795001101383308650076910164500664816047991005570418639732797246237113798655988022449503088692875561075195917936691987634624563281454891466212306512595540014730621974748813178601350245513435160291552336715022360529172656033366563679612515699789322087808527413002439606455000610953802310664424041630298900992349582448819008363834230111366465855895945246317521485986556684902525745924823234627359295739770882762019807105784584769336393401912275066529396765935219709721160453625652333809168022511734889112317537503994934094193399664569770936763501509834225962915310278671052987274926508721918251030441022120448022287162694810697136158597260879228725202499973475029896867299207737109498051580280617831941673172408750075501991698492964189667583235719635886764115772715845083061020934406608522181362851515383463922751422640311122596506343104730128050126464243153414555207563779949327214923542541632309843162428619039393308870007611386377390036416829361836295757649565471288774598361585151254807807081166177255262711203463298556588218852244959822882340776388843698765187170110871011456223447522244541787824572811616977636663942560222573865092671152497925159512761478415151905733356591989072900538702838492017718235148646035894912316826214228889873824722831090029098574842038379539606779422778711759269122101583575284152502643718221118454334229754387689886775385982461567539736437075790638376817750865470832480036848511422291514824102328266458537025533494219302782565616842928990914064074271512148925429983355047625059198059470598855180105711911362385520075437196965355345893958729979771411938530925170810439615786286721012719089873029684095717960595886922636156420697482794526598979632564038491305595731782089875244693134787925103382518196115343206539875181971841185386368817373662712149397989213501035068770150705094990290093264408388587188519367671262061776725104233511907639851813975505544609283532219897301734831233196658516274825098830688460629388804916954871418313374281503792457504231860802416966444146065303024366616699521238837939420334266268291096514773202484448943735614810695171797471147077325631006932341408748067028843947436126617326798600515830604639594054029784884292186590154963798394290245590913382258204640823268728192742630878805986268579632125213867095405742017439740722078760795099759976699656804484191045575269702654347983815128795531951095210798317702679329195921658924179151045345943647529255820352836533707193276283719203361682793533165244655331253543214944403489166465143214322799485561246945185016810704260296536487879989674022822588515038167714132120031649247240096356069973788668257569936626959617586707634379708113151515237503484536183315284476525595839812929434332889989212252913624933599790889522472323122042588432539372576733110595221849472140723639970439782082725702578397370748248449595098569063472604743356648960858204870209188831002961469388234913869159642986728065870409901244829663223435910228352193083100469981029289120874422893720498099863718662545821466978077586020380537263792240040970814560675659157877653740203528240151142784876814226356432816978603938133402687819138435535622021022728766511455663515714328632009860234591085667852120190619554353332828249365311329216980641856406927627525709176670676175931457747722039237694444497063851302683438210543439901449374820550642811898870767248042900736637427832169992680024879572283063992300145677330476098126939744659680745258585820995819157500390502084685448281346341475633316765899215316284597637542559416012900579460204661550789214301703473596522741921249670030798906315027155693251680388678365365759991532434254645364800284757395366109201876098005394046972670644720850331286987334578087047013908102595901808486143999548755501111053149615326546440058158696576382188878162065265232289096417092757420359155235799490638742817660777705372001554108706411831324994170702018348968069856778255438357806662300230107129588407705693330202488274167861782231657816130360500970683476888052932383675742972920986253231481872309294524058439976980028068778761980942966001640666001872886789738001029415455543791882702160138355328022498569474909765537605015907997727493102252067896695491085857117373860859679858480064924360698489859370117308475359439362612945891465544952232532509833641477260382537102493642176005264622896781329573257998225553471341343018169957842624122215533861030326472176308628361800635181871795400174158543991761543493421781829566779960997756152782831062791774634524782742518085595545041426098345854674285583145222356785021889501181681144195549067510906499821853530270440327437152235060676371763644037600362945579263675580736666378342234199865170455653317377706442403046512322843461006532145532781991895099067121745564832036057706651549938934855159409275285102985941983391649790738444263867002459862271136185191586372762720848153989362782568090724088352134158606018453663237614672684165068344486272015972365608261298569575138094941462208611762199020817499356830865055550459638808714897846732514201549081349432274948112109300877622202668908071560918794896819616300618997697060269792740489432165380177272889976935144312846790345659480419365526228154230881542482383713600928343410159422558192449281235523552574707731504818049875525616814342587909341120444903080749742623927717551698687539885621093928083170093787728584843949590017302841735434390208542036409370006294234950215366975790608775563837932636850346627991126768555414889956899843330286910178735012875085930080526419174668306573465092285126608699683205532694346186362005620266364169675274440025274290092261748578077981663207865500670879559925281973258992364075725054679640116933397006347202327733032906209334693552469485273512151234948723765719181734645151326182365159465457953520974187944010685059323977029716611155080897883952996395520928504827607215975801439450743702205490385183429582609177928372952946230826051531312947083037931497194131846230675210901064027362473862476943927047906181874842663981277486254988999629639065477729797400294372041038589062474216270530564164998859339212454165935872190024759100840993105617369436380098524770252372561107597748379729380612435615231476751963550402454019643618440592920733289124222296866138476663865346000787215241198869261421010443955731577286956456633525736802960539040304972943730019617929791780552020608581290584815187946968960761118135282853436425655876826710064997439528232193686965988514969480768225731309659805250305331233977040269616521557545471795110790809867391311209274136094291513734938639272728490353512765431059371012583360932727824943030237683000758038443334533476982550524025053022869949482472427415294424826898698091778493728581402990631588592309430649256010466447615402731413468614599112021138251916893383352299177030867576069722137005939429051961442608135347420474450998674157594703055883695564291439998535177085384504131083955518729666219058004020051281308452071536836653117871710160061943535181968439592678993293494938213054007279964797466119950674580293020777870455807935482693925985676308713949059698135716313219392436927087387647671558206224701875647254029328007376379086576397558786821971174227928434409035034236730713264052123873655829062316944007140137669351769524594632767918767607406952697951526511802601539952895744286521252070679099556400930620237198409817429263108547351389403942230367953290837367138294085535059509744721381125778422805564654074642686776994379446077052330935421082517324664816548582010808854875891519728843446317028793474316351921596049590331452987445708135905306903237763669044374118762391183298934159273267289330502651922504049395148746222222887780601848830722411976327405589224862412259341760761045970797396525888124959202109582452505774840354817897726891938729289690656951138648752429818630551793417179481950876071842832855985918145491190640339862789077625509258585676184726406427341337923637272771817631112841691381791280712100790068684873735260339638441068222698705645495454057217767688181444241812297833763836650663385089973877449037447353067730408196189445987221940460585228218335751251933022819070617948633862914257638853812126790209797789240912427412720948923524059538893699657339145350805449473134287898069603317202562059417864615560066421326071513635655625027617577239217776369397580861876359579419714547532897780532784591069424224172509232291734900955045718385999995566677985050463931677229917787096707291638108862352670388864737934850542882605989341216185411674355893066875070605779847752117594460118700831459260079866299818780800956326059348397207810111614730779822120287025775405777688166390104564449130336751318419553004339078352850740483658247465287186686518580895802595358213975848566445433935302342971974394983307636733617657166415948508151803727480482590893344090768540436832966787566375848773777942880922218487701653952476097850836959388357927869252333834812834316652058102631926258212142564746672920424333165410518188741694835839831707213876296931682364608976329205846007331482896725947002830089718426434306290160254948681351757322841583043753912447278681401796038058907301054814913001627658667967111971780763805072837421495054650259877321222873675726988992816912501499080346884458363940679743810248779725881671934352619057374210930122076704776946741727666667816193485886797771507149560699195256883985606247706210589078721277804137973302690512275670512050684621915296243578885107180066463981370622652054085152558539356636321311897229833208427047238246153257835871422918029870208404790806857864473433931270690154276868107793768871110068112605971789150690886064080215068919193383897745945386121467461532523924124302725003305386820994275257903315910507147640729464291414868939360805094316725968978178399723295440275592841673001945584133145726704049390683625497557460885089117820581381884769994164657999467769223559068160275259714516713064888003192294954409671179918322264172976325295728073180993207722073186026448164261787816957934448118218841816669920980621974335589155288852449423011826082339330461523010889462488665212682972975321865922269556520273088845169510903293498032278459067434458901802380989471542787195232182731126288762203630121213219638596870822585606025689346825887887249458648288738381810024264418302838998068590863235461154080381917201718952266608672795608413860084403285901557560040934147427753601774073330354684934880531739879672448381206715934293637918753519309044099338571986261952608203906437821032498508495450414010003329031496454166761663429420577888104190198495524617866004402918773096374283470119735751964080330683505051988680910510010886716441451503333578910932295405438436820534513263316084673674609497774379492047365643747440039197164739660520499101690125907371757197165081781208880399691195810376017223177012390720116917972672870881804041099313303781056907791104889726596980817756887016636835710738001176070099818514913337527537989130823488539260706229925701763425283549906301058272784988946876784806783235487746668821584415455972590174836275561034278462291242202321808958546196153891133982267157726901566722173970909988761276056813202747736918132194662508962442159376912258759666424637772843161519008562811110223084182150966181036869200032479380815267213604290773000375290960337943357598569791489467607416617739781355808000358700745756383778410097452471735732735965507403511633358221522876403367152399436161760348283034269879671252795405434807867378195215208374999905713290397723231450468325825849008981864319308396403621865833212908647025454591433449195465166651621653755391662002675749624616431220175030368060078269628012718045634963172397768282825026505278258824685274332044598470781164267659489740199423076226826688542666751793221789135471736552498021464835164560508252392113142155793053715520290767399290273743568324494216201024768354037906729868176240246930494107941624312090096220221507728040128255159602146381325501210432326710138099709542584629154865267973467770465036789905387494268700421213502367830661945623564716698775435492154810203625299311198349392786234574650953936554699056501070940596039351484946952242649633582762464777483003967886382108717976776643006777957395058096616755221158595386060448591425082254727390832800230876508565343051835463551273064951217841705107782658672753045849136700401595275214435212821174466702057291147917163717342515919430735582582677840128632062802813834127237290321915548064753189789125852559577003383456670605415078282437991515006791888436063693792540900822153649913128663265350382577177039891532833649045731198579572928965736365905024964691213243134296755307811075893046289152244570673627713130714305394175530591981203899875204809086329641829044359952041508045069169481898054233807800046657701415653922632321639233214595378484750937720761290862552091277507984633983742496855824658732058217729267255360556017429404331511433928473938327941250700752625732983799060118466854171081202722852209424210790333267313124304663714070609379173219019344284703234638971783998789083312783211022743682585870303334231612584792492405229962931532695443386634210167698520743226564054419974213527536008676632666607562533108611348434065227227986726880824394494666647286526435939257177120661047448893811775177204464371774552800870363616949329556363039933401640209431622755728821885862358263723699025186282720808419567628213147566860735995210861227658259172485702553125947135381586208154948580107521140576808568568967873614237873426344968140779712044654478563572938872801042689515933508287624581553430569141730328888158033487917251746387880257056988839623809424733143158472239864720898082542571620006136766127466277343063573662675797460558501609647983228271039276649066376161383625417223818604583100275524259118475656552251671211633888513396257089230180118140951013304024349140366489664903090605127154709125417832070525349380117099430796077505333790608943082558270737492809720074093317054667666040240009885801523126758677195657431770449409938587670169435836117961959856554880232585163137235213087375852745969109276654600172771319523557761129273463262187150628061152012184687186846485937940770737051820175967180307202484368750878715105300354270397082232180154752867184802565337125914011049369798426570965518868795907032211016112312692271489809387804399472565739329076569834928629008377003065505246348252049119232041020094695066778595246698206461849338971708300258765858359009775769166796694314265055705326836769303743135138609566503877305165408502008635438310691285266869204452399734266028890004510938328228859897609548242927606528637415465518051152178392803343534235523027932728943701953300851693465055571538663111720559816676794375645968584302896533106951430443016117569153856981938097217176024660232772322260945314165897809603537304814545713912193176917153776604810902089252430639892927582314266988959009443203305501593918521784911370480770755766497748338345346203941816660852635854265572663788652532914662855202592425801163472831925340550700052934907733686998063917389135883952691929125344919692823299368744949415116301149896520794918317146234888308270151775020557052818117380585269799413529985748835932804868074111852745165635138964083588798798640833511809244938998218821910928717427205632069579651930523718301193759442032163286309884575067817546972910085310704378704568489150716533738863157469991512895942318186343302680216814691402177764625323197401250635047510182338768821971932789161473996522836194762432388623453813557469272485086518008603188488920066886976090355992641792640083009104896746631090290001919249444501176656950578152975595073639114286801472531837300727507447838596146834562572676305929244161083316775455521960036672336571090801050705102141796331885670529947275343150554136999730047627167581773632329606724613097971459099248293535163586736655065189004631466823450938954052905233943283283094862007444156534751496330698704191352228333658200347729078267479500637389707181624261140221470734897645616014490856005852123987916825487783670245779187666150740064420560633112722078562376728162594337860299939623542411692722256329916080742940292511464448017276503067349547596523087290450408576843050037759422307377618312311665568607894293143853003039039436121277577854014586213299432103762696614605893735497657382636676677716221465888884822366125876644240796537385191865435299705357398066298646048887263195796636807146637449022625432378205937204879065123605216770306664318406414188516235073483277629228400464715111072547615817469812711851618265076049551832963063420375572393706229896168457634074991370339601424661043395486382332044585702919669147923633440130490430154089241828597617871115873830793001589388868510347872553964972114733066520165452599119301139433496754850553517832919717092419081837064992434398949205853419168161006136739838242591179557330264199570629182750505394575922747869477302657631873458552430490649809329846158141217184424929512239787838902533732400169146550926407285869988355267312411853639943973441951185224596061771516361215687349728576335241700321459804880420158179839708030013452979972677327258539188648556081582302833599810872879562775677424992769717387966687053049957925698620299420347314666152544328815740227621920580916353746035781289458094473204098405845056106499487236895496303499935022095583182069779066673666474349812076492243619614426355223270343648531506789478989547747536874909707645159025938988118087847654407243967251634627476526662390832734589388237011681396326419156418923124928624231625840605748410648839911713166363891435360283186804565837160610953355989332905521765014171777081108618014832782718329433318180100631082987609792302402219532716073189408592805517223221305839345099601940268405923240061076481390671184402553943187062678614899635716396368398745957363814919742005632475619301650239864785080480601815247238038046858465036067221150798417814631872746895531611007332090632856844033014169111939476636446759716093099867539804767572761677323629162737254631666882170533449211726463438961473177738053455610390701036097402503931209310082535906250213997642899164018895688703164333414141234943280059509304503216051973299337828773262334832257176285701834118085508236171404657028668826118049315467639219372420449877245972664733620286724308774028462025182814981027567356054725860053639364649019445118946761034075786197665594858337369998094998932758544597962191883108189722643980766598440068298099788961591443238413405963604415244374645794635848846671908512672030102360921277718370802512906845643630817880254388813279791754510341750435023406753837194478899783162160575618380172776426532946776679633186906453050673782992266457750278774735890452302993332422155217938078804519134643759963471254596933262987345345021672130064101473795403210189404065737150359016856686371169521455865198066629396890358843072157207161660174815744218488051969783254952556226872076616821717815082203035764355179244486375853922418292573526420480127046226055335965758065770356818676575732962959719685403433826962017320151315651538855510353145838146761855142550926870316385345883304370193860146201741899076503367864801916074669404633634401940789994983984274207158946372232260944350440141880785730305244086703047938668092553525675957257286830621344259850637158502157749778996893402699778284691741338510225366658115480456699610462227928966918549066178561843980660699663176329892046114923158038442672558533353337333690903460525035627192547496019158672867541518376856836907146769176541278554990906188995549731340026669572546720698464321470705248245270886688998798747680530095086012827595918654776509857945824656957126166055920265231174085940950067655842876223373110857116611235853925952760519934881831395916638645181670208080448544107286831745247770151079364332367717512782750462072485987910346524469669317063971881876446891933100573579028107911244056166877244448228296368561066592751519779574596589228731489589861193062759113992943876599590563774365587289753177959142432813186945707088047024955858398516786694098538128382257111289297296436152232231766362458481596725976501597659402782057479719884091623213731193618908412482809628438766354322246131661150351982420388840044394745737004892350612675878772978043405707693253434279720727626174808453071422165698590670270163275634210906209558624789237334511395991851527252114248298899100666915939380278774620804316938886555069553034145928690707012320345361153045886454934346880184967223319343397302648195019786340586117241097094101893944689165964007609591012720241221155397841744823193725562615416781902489245555925351930334455617319362350018181908728160917824092878420044867488819484727207173256371114658919126760658068337711557346355875390546169620978106029960278477565596602419623971110501595738558347717098675701531478218180529642388926829353183362417101354262845618784836140429602090304100203330378350392363685288988585875697341417273589854546810923461958490576542440440817197913359292999281741457530466069062292122175892572186612714960479334101080829955377833035517480857671528468237899209836691838509225953702607240430360883950141741665063224539316735512305320665054296054154301312741095076092125690748370193338493483911535061404126660019810012700267653411284758106466055919175863563745538272248170314280439883536444016736767819386674494542850967760129838520857760882665719862352337942637451558783464883844908914065241039856841404141090762653106094696292821022873418515875840638829721215470481437899041298675346106240141964075445189985480435226525738450419380817106259879707193614949089461009847319888847504781642210778977178602809848515953828946881408232359412367587129650665406200993060401093121530793453674310432871029072947210745460948424563687713481643938405575584024147064554007471231621937101175129193443031779741018301159448085635717579882062521351285677620394986038468005466116109099439237695739788065474963366899743593053982106645183823641669433891170272451378732098648415020112447390439497400592831534731548972047016682331256709304581075629736877803937941140238203013387485523094784280601153480657948505601862612386933788319092734487291396913349911895083314449893669687559951781351698340522238656881404768476909760372642406768068604304010283021146559326949315920582232866522015076279097165010468591890099482337783142752486192121161666521651114866333697688358842737011547758370684902057452012946019481958905861369391224196258748349786682749445987224510594527006080042157626167951469185355030465890826088209852476724584207317166310325283537327972502143179192456089611909371977597489721351611274196971240079161236720984599760922881834795845647035118493928703399958238918767681593229552070011300884509557849907585998058616468723908200018452517332352388960847244020192654757811962713592270926048464573125372533747536986447911952626092292992665685188122225354264969807943021459090415481199040564765079694901578449297952788747492781552190293704057294240405479210449518655690005405931713843805163824932993672206446187804060915372725606532019265012717474672244198307473611275753889181746590362160470365515076674266714349784988075092537448213304552129783767825743817536791413499654136795868738890880713140939061233547948757144458915868066495486584183677738685334506138154210094275528435403799133140963370023352369420499843882414573319235766003616460085282427414259499001240161069731363568040541768726329941360780840858292523514083005943422369072118983898915041078987476121237068917562609848596035771509421108402735997603749215690795364132917482677478676890422206454926558059157873147901820250827320118088829487712382694785835378331712525072079140757318658060639578613500860508555521117857119808428129417371327042626116293213356210569063104499317024307377638366653382517204079030504987765501996735655856103809611095064822758967084867222621377085526210241760782982770960796172281982240303497445628295943921343390988646320904992296466870090691190010864695606596602734061056003454160779129367809790469607302411410967772743291441649041667402258848225537087320762537627230179054779284419777307359533029751512220283549566718844758465136016560275598055592365765475892524692792686627209060403925064220240090158169649909476916162780268991951346599383930952760243185280959427258366368773244633616908304385890083918165488301641497433084182202897108882874020279657763714731137751269462810933883563994613058831420446078705074706076470307969767256760425667616016706868512460502197452078054294704104422074416635369023468942978007364512233173810176355905736590221875031779149610679970185941501705866288998877451483511901803500753047311846262519249356208342841585198535750008734154414201369337478223468172845156875456142494012740796851732993506496050317815077842865046240022252642933915844102831083840323762948160923182532787694525403976525113689245801868014113437000055970006810815547295359826386386204558798700095688699924835683660069920070448678196185287566789113555652563693646506650400585100562880623512211593580143542752090363610277156594211508843487239671547223903873556506731052501003736291922256664344975532715796335185504840649603990323801226456860382939052968977613887757759615315481839896726047859923790344841510712988313751722979310082864431573723894610702635580248886241974805129801624445559265326609415147547267014661685637782002213381256516537545414870923936866995683702598998841388213640056261962079550104127436667599558430835827464775939964787169152784142133321154840145583498702105559748384660960926511782264705606675079232620147660685962612674132265510244260635581614682841648830051135601537592880388892615492046447819380898490288595074999752926522573934720990010813194741423058639310299550345570946995732631895791913615949130894026497203251110481205490270829188072016258532089160831702050595540397286128510187607196741752225189383489205300372796770541964938045628994831230412228957803047884293792745191242857333876751564475620646481127296921259082063237305058341207713852135669825934111657226166406302564650338656489860336931846057400644091241349041336499961226396019468515642041218094923674090378207754627712888980211522222981344120105190093026632575413607014907765596633443107003594593333942566367521620788622641661953954192931814003993032219108318230409556767450000528797484623233720486638362796608429037629327877539686791611453552128719180137956921966377667267132194749686663543191674565644411270861630471049738045643628351339360442957284447706990183464819073602320646247317227041078997303525298012905503130789344376488878238960986317404785151134762122304427533253040734517670444262446918517656716037703820516594991180314044455268941106243932180253713081204387225391827928551997650005422334684781072696442825829894666498129141185237197122654909464892177545077097815202709518330021684151011864161994749138687186052465693952814346959920491209355030847192664775470182164669158473241921831327588212848302776760592158709295931644325789894327049215356636634614508910590094982779185484131448536946526266372765044889641008976415326009894842326630513282183687859195338620223614288312877464432578628841093527480568519353174623616423971266476037986118843050761836182284920634224221221548849817386336029727052976417085435129488723576514005737816360067831548589142295992952880724117635501058366379789743201358489942412953067709215512786603636881768336013082786633851978174436485083167027673207414087181930795065579201947630082692192713428250364464287022637691150488406357704168331440606918683785657453420544421476950540098579116018971616695315533418488455873881385232026716522166722261775552576109911450263674635686597257115120033121781407052996272732419484429513122220553079778286214028957326347584381117826544734612149796499995340141337509343045387247669153878985821348667957089186120360982427733740870320543937257479963150035271195912131148025033944179156319487426677596608189512377115555546427890138697061345194022967939518831232397729876075202090418378871374570008968514731124500041946366245971442126018451577377659187785243392306252691710552031880915212364029392618674918556005442119604365475832128029855965092318471920488278771596322918642595905173312893727509107757273754585607394162823555540286449629984287404225097484845180033092305560600596468424794308857415157535391799596280284563993268033443287061598432710281305809158894432361500665902345547794307806037883849537609764339218805689323352076389035809055165572853878890587368267865039047081504841580332749627427535178311437779443101814559056004883512003306667535421484723978056480464504729211620838512636389440173846185334529686894263012049376469282493885716813933090111847685979718137063462742072597883768594752467495856787616385369665543062019464721044535873574179363609583169748370997355640178672249772259709731402908657905368444117288683290256842362026518320647406398304938104467214459909140188124483955761685321155169898991002216160341233900062835648418915549277392949923450021927004950488288652830913834305060213611942930232762658799481163909400474257886044072704727370131931541411354245224559132610012218531739018827314373824990924823699300374460866713035761298512311222452324457308188177842064757750521451022452822889624065238686040917048160179831782614326864495793941863876059503440935626512251948075510309491163436917946445714402057060269645047691649587064358796232778968407529956507247442098071900444240628105945555079335340385824709132461858351350119572113871775122972423017031014040597136361443264557435278023248680571672839191976045928253510918800860024977832968357761300891156848320424402024377652744311101654193361481191806128844900327866393083404834573048466017419896188971306065707667586711144180951379458357323626037856367481338504819606306786803204621201323975627849399849505084128932734088238919245553118186782085517385887035870415003360231348375349955264669629673110651875986377049977412186993086569097564878294208639827087559347784891856456281976243588209649950675734905034773096943247766771763268410838841759011587719358864052537547663884087391695581686113712884514749009167178171962076032777588655909024142906811200959306837623364000777171042035666650804615693143046135012912702382063411594947692285805029599533665454665167997621397661948891987504583647873360744346210050477076136015947114150245281318984600246845050011132322126214634574053827693480631725310155598642253427603617896914073496707933446409710136008231529917498286810210543151705149327024012954189065745373621262327821890926102493607902392242854834449493603770520405539662504085431626928999574587788011326954502679310499622223730015663741775202507814717856456231560922727282266040119136034791811935094651386017566943697260019563567390036025507111457539759206057973948609001723053668288479797367072330311038929426243956191558279916738100092508811850533681597873325556002777786359941366570557851371743357095154200486469719070020823183001581476412890426413759489967037120422722225557391682336396745269603923274634335256459847026407377812480740060036752593322527421515299760718463061862802010121302540298245703398788346875235546876455113399136480521392608695707111887293435306361240162704322224597488520305574558526999350853609856233788393547307762725898258672720652626478344954391715854982324641448656716190409029472597756168469201819639660215791484419112107250945326620789837996616906264863580748961411267693620218420421855094733334791670536119480016336881493812269596870714306610119430369960701868297105139727960701165246290527345711577404869283310016017324541239048099760961472367368861429503184887635530708323276836990118954998992852867671184003329637374496888412229608001608206454978415896123545431998823073056563325955637283162987594308513897001010895316184532666318350306565270554834481231257510997892868530122675198246941624289887735015632288870463529266031133858644614208888619458776635242030420266845296362470105976010963143541064010837761888874484578725209057538280122169844843180252101849141023721074396905036813011286341113721959665365918479521626669126972113638339414731082070983327095044249674380095226073320871516126437475919542535137464131230237331279757609407580932461094728194525948361943046833507695627596312687523667212085100094709989066610577682338705923131074029620016537009233334325435028994171089325516861576976636106353035362945205725081780742141091144521426163340962227426636428735986515334744795387635940235266679560449304986312939253369846920651519843051116732083367276109934084432429376249505854812671196194599959939802717870426718829725589214772464556350769098320520158279849213811651686242220587782403763350131002446176843160032822537767044975595474480768113322719331403586009936646522763268854882350871884522366776362677622287099635171434085367345100920127861599796943756447493526295665344512781997967857460396145758353224210369338129947146557443463715223251740888171714892978395847246701768866461114334315376273910564651575072723946551943001128103048885478740207881724122766300078766132617605833584399557411283869877147888764860600332709552263978427517566279322142836825599186888000273582752899088681376964044394853296334187287593158634881328670392195422631196343489727906755841411826739755345964774348416138784662477139744542088328704400567532861572836077197658937711130418695759173567228258030533126495050534848133863976871813532319675307476008669998711979927719611421122343722151794107853642784722519524966800040307857598851667329999300525084126353277932936201379191453720455483677272814763502735354248647531599919995811728067264594392115525461703819299888215405803196359738047705867982512562357229245681455776611175578455363050547860270939854886242686457823040403697174450246814930614270109837624424038477779646012609570601807516691900630332982237074612732385260982312862601482383867065272566472179552132329324749683748636889844878714892120076451562699993074299011083492005034768956708055986646317612666798328731970725995416575074034706960403731337962388806255773334792910115422028538635793811867983491068552043267650324632135037087107324740744390761174479442066961432441601854397214607483229532314265967322304002484923095911435100480488450034612850155201569094751288554565820772925955356860410515297718566645248939341204895292375211160611410790661176335842261442860376975507029050323079228855716956316314084542180862136790287322629594703874031848328535165585686720013335229360898254410649062390179719005540446148147749192977550944536283226274060408310921520757463288314602004603636211555811045698884165032836849041591609467468186910127127739142441378338480309767953689245999435871434430094166615176526231872995749416212150599618936410726367917394118172598772515718277140162853776468570451430206458278455637119993374668520602698977130489398127807536710329602070751172598736847015828305710540615262687190437820930996007593794863674564271737334206792880958541199232045111883036158742886622165808728290473764856749192929341079131108802448689512732252445468656890190811098907419912414696801041759351651349225703561751548408117405516452854461465957322517742913232887375798326477929544677059613473025959810046703392807490881490276522883190073294440729664435893565727023542299407766117582889420183610417831754947260110534188796884312915052535829573507435390652423295842615765573479814287436036826199382469517962542913042489672736685434238748487652698260656031999561807799102786767612894275894205767932801672731384112124736687642790257806358362556052829836754432733805806512350276052076472255234638534393496857118297435812801815764018480823593608598426826214757080923117682700109032248969013053745657003229697941629213090974907765225931098032853399151828616461211336640604040464028536452713397003243263680750315151340680367119457331471567494876427061556887352296325878816060066630960625287021980299768026287924686349109377898076406134090398619456651293926026044540651882530200930240203365221543433108881762602613876556206997433019323319034180093920158598173544380761508228982391286492646292451070259296628624361029801173033131489460072490125229790934850631840537502827316343834881122376568048385304948281378342295272561067450149749675447538518283485155083539929716389963570528820907632818056989098014669785036998847754517104147973096708846868464220543562110879970992998596396515708231716398627288222600245632386404153986605923504787424814389901648111230640187540227925702782717648924360554574936366922590940933791586007499502969177354892627018043130597127066222372309700950439366901293236050856072553211699136918496511506024937591462549117029536570425875242103163734510881447050163657790808385125689510761474664498670856701665115704773287596345991541361823754783825911612397330323711397172715408443032511296674122391712752595344327542706924282832541907454033852700558126781877146534896020767574537160946139473525304694367596061241402830910446177066334097992749694378141975170904829498475797025163548598299730238649126902530148181766257839319136883459231052522040826549884825115506793223409260848348868690657540031063714944813143724262175730977113178567484919811314303072311556251647746794520936191034035244786949543517396932067921521712381477091122670388089116664302799212987163059012757590867249777595065066416456253395705528068279402556258815311840650228769726081706869729331792042660621365490363757349687110450778269589212854918820158477047898767605818661197404405226289667838437003110730559946175508746871619293206143571735772728118383388107880075276674341298032548817347838624588331460361120383066877426370497596968555756985268186944720519963474621915876612519837861874382245704851828301293728292834496266711945022434241259022082401702966010415068767742362745326859098233778813661074518783472632685615815000949883238253701719779526804393762846283633265637136284628009095187506356114831613841343343869997220782547031324742031520511640269564372210763460089650858615626066512464276172458407324879230437744062651512970294410683897780973678995078819233536882748033668871418816376326890137916526020899617288569533099526540516734229801595129582644594924983310577967378067437193989107123477753148963705052129575308919372939031071509074579022820844051720616470954673051815376264071226827330467371543436213244015148784918243846375572987808916119144678112589397241497917687331002453393780245433529247014057935032572228008961442729950477086152238570502181195225313123214582412998389181275428503313172738329515443150670001169035552467760897976018098832985172686124967380194191640134275266198969270693119886850005035485416119436624283756062147295933608732860336244260437368574780973779261110452801863869853424828050053902634723603368237024121475422878079757021151315413354600992267522450486505237134708657792980771864310512309191063317025062207840968350126491820727929500328720168955862479356543341735708543823685041104202218381288519114865242771278522899658830512152263387364175724889644073314571337577645890132248946679231503007696291528713008654651957611243892918507990148857459066970116298628438632610698271616664957021879465262532741583857927487001258665210091271671399909236245579876269108265000923625553856790479054252346400939126775087558996271920910518093764460203532775506480145616358048702249867319093539288318536716850247912308302371319939674400141749492738307656342962321102385331711133481674183099264815430808369109300214529483520127955834179666213268429159253714671597163565481225151769515046236890177296469223530315286676459349433512219132284122584570925667387941360447772002240597045844352835661333771867292837581822946610341498251216492117776467870289476396300372343728009224303551188604758463029618039634941169476532070577802695392503295474675647441235064623462194003327108701536697492659335302481993557965946210304727795502701966537582019812401866675189572296984658227723416129936855749193173901207339825824238949387976832466886897465637095491695024642281968243551883751475688486957789338295787800602064931826231574781156982152019209672952513251046684320163830420678642330120271677550066644009545931323379808002945920980650622507668386455521110437947511808023554933507863317261357666613685383300513136724393877841607686791201023027673664426809512834749134317059303657016538484340034628619131399384498980080670293246525444116085188893396911999825717122098756920843272318910077362866935159667192716949504782231350475122696277581811445734044052236379117885252176285518499708695027588808628978415895360651698727785549334779235184539804633287522136616870519089784169681945000180023461111931500875170126669470687640244428663790428766459490212077943392235752116749522856971421709157184426253677053560879313812754387996053894191287605780121865997676332796270010191162473748379171936829272953561397927852059416906870778060064552250859117126464871201069840684147509103477686506273210959945276113899263076493369280998074959828191880465985392512923903481826365072308696524964360341777227203921084313420460678107283470046314849550677316750149968269932854978916024000085300906644335586265555164406866793859231639370605786969629001575669989577707425600143596591709417418982765618041234184491831722878979991648130021769802332142925877497076482282027662674644816535660625617093445055246347093802266307633539657508706478606235518432705480463728070794327444961481914421911920835859693711380106118740895899134513940474545722009431174574034090084339713344353415712101844527181738922265557666920981535786492088938760740657543956876880602540635359038069981236277913237528475412629183837607779245601749309246066334762809096669301765868933358806440356918721469264875803035425903179902492659479796223542504657359654524940737129051648361532163608476212301435108699779920461392679402517366198990532594146842069961017782515547036386095534637141959195833391612630242145322438084734657664471391109604416784023666096122601056658284008532778605561319340117976330683826161738603010812961190401795863624784592242782388308907919496565619667475778959106198930165413272159531895013953052187497166208744169803863570767616245583181762021141466133919458326257229637674585885328807197460322120013141156660318780937326419579932381896062460017817727620258215034690965406454020316006655999477315458800122092470423951218556775280762393152074468971031668267707566350093046263699979550358026868969801293444050310284595876584046730490769541738359653029638497944071536911061613596205113067140903462772280926117371667068037976486303977582541123238248645811436387116115043475661123914462154190473493225427375562119680682571338975542893465340681082407011119205478097052214963256898988784690908245114354605307466160068198163333330120852945942339529026465974778377542849838947004028394485219697904688174382038755282870030954411192285472754196021345089596530875160123610800948844505584747867730439175671357059587925334403175847244183110233882566616843891089659923795408444443445742057170775205944817396177417419196147069229670137240464740981909720939607484119926292907036530577229457289675554661522030517443704042141447989433145905145306281687681440193054274846258043120838282083518379380225221930418152076467281753628009920970145615339511145464231447122885341782762484878099896416663431238813735741682208101420822072024171617100274025218199023714239758472562011524198524919404888386169483878099510487941219240773797794058068984816804731321756772389896751110630933242773299230227175448636758708530185603630738579290293916368491041579884086537416495686208786961743054099336932538731263568852282415766192918676443450066740982464214448789060659510923183540315648252724024967433560798713034421932141212011924819518107171596286035540051910828303307963492759004662699150503590353384852217902521291049383896166097615622995995332294611579035605092559826506429324184871467830445868564300163191207681139682898458855166930200111057637609867809300033648378149213102452022073437535779546035276432170271079024582376213837288698215842779702450121965462234492246289702863550169702681849747420989959037620574984282164445906712366384290258976766534033674695408819802505505463965495488407348141449071465569023731087099201086156767611023398946319218756022286653432589824662754381179892540357902215830198244554110282273362278721899029006339799343697231164128805797049357186616749501387194083072046480911922478829926633328434276991347994103270985658102027651479916924030251810208197827052310292051724950857828584761854496561149358610980150616966693255552263918200640447069156562899382892338658837110066354434767819731988679840919080476992858675357706301257328429342646406421778314044643221995573623482253058469185020800140637876005587747553343686370491708052230347652584341065347737183900017643004662217754853201224081488297112557814301443325314922765980763886441323391792617843275128483544838450513837520627945621873227736344658570241714642541460899117121182670212431018105688394064564439073573602498536130031301056613651794709791771327396532697758912001609938441075999026544360542359050584064538166971976803129273960499723513705041936491139855957675912107613969526729070592542672834124092739951507557211487079624597389582100620022365203874743618881963858915425247219160131351626019025657199649165557527169092317657528899471974050092743054399087655395770908962289187692928766299482160830542682178995066075526051351948683136137681512121124174593387787046718191982559860095067077917744391953508016594863084436575319881887347203238509892540591396466334271849647229064170065080542986606071695300410912056018368404211289314608771737413346059411266465403702172759281614192918099841818682297912198752688512493203022982926295490464408650669806814996211648874875589699588831591778223356476968540909397769715264927745375866370019683203692481920725405796782827994874107666286434200852233206756511184148810147539999306929838175844523562912907679152640324354167753827814855781005709788684026714343259546714513100258611523396235652791273976941322158948542780116641595970827641927505025115358994461356297396791390199495393624084727638205724939108624157437629275827027907589451385679052930782573939389842560817570130140493627370525031760273841724683157156252733857369992570107111560687133787860766346130842833592184148355050948556674647236978954556852634623271555090360406329552046296823460646286657674444090694183959816063290679498062544396174778664288227612962153713834138091066696752174937698323157745525633776217428353224455046391608507654522416129230282183204524353451949086217187967501501834784236535422530501891005255714664386302161942231625063997465036565447478018488013419029299284297636145381851095636741595815908548565912505584837815808717441244886463838040980489304399814826555787102773696177837295585851893993615516562908840080623502850891436358738781556857267411769465135679445892358090096977955104221121223055243468375735980306955873726147386432242895346035123675871138539787330381424292924063559769443750073112197546483119588768653538310608817610980237759925770408978027670711052907245251646041018502436970634571326314766008320454133956876046529441903531571764483822217519405182197560700438966177881447562076168154249880123831210347700740605696079982713402307569690877532282499514695047311112200010606365093267445243528905120815194293472379412039594184870117287806064027067065566339590599481503839949122748205359173435378677458368539809430734167521623670662338535277205495211414338833123677019653181854412642902232032154913955717904154525423000509915896631840480297691501282541726486031419629024564048254479007075440865318020672895659814289417850142266871175837660749034777143471032582425515214455323394353368700160962742653831647223273116855050109163724237104847351678199382024790940735525244228439392094814220994575747615700062723652793363415838378073834801820410169606843287345126587995895004735929580158703875134263356933417047117969492727625425902085863115657370083257057176926728512727783333035150096844691977757137806335588923814955111333742506900783039653998506678949549642413786875364420580428636503311711669511919914540829868844701537324148023831215342656612520792011956985099930619396275310249693290319158200692925802271286116965977305011347695765701087565692275516345155200941482446806319432949182380044267687380986396893216533917781447513245149690927389187509572148098039135947965893116575864283579695617139669851910575542045122171812807052165389667505761665048807575504444310663245074825122427938640000395010895882646227937282343466475641598966053958646659916406736396587786605438600080607666601738948486258715362206596861309321316601022920305188261840341314021369444126111845224036527658969074576075763684152433663367688414039650992736478587751219005267676834686185227431551674382623879175926244570642377034835744599991173776359964193197095181042103906354398029311049487303667104314948083284440099294308866182136884064996020834443873122652508325639587882851827913793771689630278477843122714182673988751606572163871020471735774038731728589716260746698163326934008271254842906635851622084059301580082267049467924262410796479185988272295366839017854172389081973899584983299681077234758161222941175307843923017919568614273280925665468995638393612986804026013101257137797494748050329089691036758027771178663172619124306058121957694859693765312745659739120859123426911439491735787737264873830797737112469299936422756416623396043189961234081565046655247307632192343859453609795223788143454238933652342202224695752945013233400423836594031211186918994503616941423884993165560042864172575632568688169713766016490309692667987565958843232745711145700660560922782675199101064320561380178724952800594807063705225240877935144058851674096272334907024978564908932103246879276043010865760790235641036081247992326371103429431462067354393702480142530246079225519305418942278619896685427973908645426865305599598574465428062728597838684311247035849729647174661206972692495119665148072431177529064033272682768583131028952641702925388305898520807672643671102533910147585462768896719789442274641921185899193109046444881509687740037634273122954133548907433131371289008797620413572392989928231878166502887105406189160394481882292437895680056767139569038936115037929076338357347732044293451207235048201513725907010960631197481361847290046147777657936557826526407818261307035570571367029115906670152624810274982349906820409509220095652855963743394286768501987137444737002089613137151726188325999200412519088039668286191185617796873733556099028459281543394973173759514105575555114190598210245342194526900617301836306727146311945576913006361332149767020482595028918023517049101905773973757388130200891729157103216494719158736144392973464915508934786512838192088739544775931743605630740604521191373267669208603110263553117625393321512089933754211602508320072360681211456260997265553234430318875812961687067678713485733954685763556959113281797211339080278611647418206302009963937760875810033904728336933306465921954889890910374952230009921969570953054756709254189309108478528994508356475551479270350875568280875317560460279866841041320942258874770912987235673880368873783509426619748120209555199212419564791406963726878769597931827568367945317769446791648914986590925488880627757619173532908368566972976256917983099930645550434659669856827081889201645546369575910590889292676280074039329666177399883605701528532351392211702070332457641739678667269775164383642883341180442194829412880871682530279669335628647204949750397861555233657842186737091184560936290903275316647192760659671467640781757247400269942091048701937581304971539113248601004842225061309307576975083883725686056396845327520995362292419480548640420916893161332077332662517368288100326180042603983579753506614340256995974553518594921177528443558200903687302826241095185963305054413777929604504986984972998368533640440254327708062530041918560648545885066118243496010347236530165243189796196139026820461251246020802755602252050103109939752964390658559046187507265212727522504748044243410372759836732939395049227820576331051598404024984786592361354860156856387787963468383577968114272534127321686517600779607850971507755118943475674527120981500750179191985074788343913491310973723525636478322012586453441978404740774234616258609203634118222486005054615767051716962180816280937922225359495893208329376529034287653859971311969158756461047710317381501774157440059343481101540646646195289936757709523689741348203243114705376635306539079817422650061683088233278645050874302214709484674318364991159423083795119137484386173990524705535779077117674552623556058252090813215951062881391109860732539537341007145070289477650514763359720118347278637530679432027972097736730589192035186169489418467332359670045950591218237191070818200351782041005770846586079998367847253097506863243062891901057827100739077110763810661894092749865495526793574766166825231939483076361004794309287624679950779473236269641191887673430028248641222893191176656309761092814201005331732369552623070779984064166683502065722021794318071297626715613911519292001223839051137127169906593683634437417311765273460791374733194454148197859034083438137618737583472816821201938521808875296630858627851562683597799053213984387694917567576765267009765269380720770165330398776757569400224177516743592896693767049514604029025002218706714539546085387997761893891957293104906236063328088714887403806242500913051854252074286754242479542040133898956776238616482697694133819208592919628819498576268232012326469957989940951836266546265160365755360094392304701985742924618801677079349998568769804440620987911282892132931059819615265992293987450059877591351184518851617147456957437684507614111472316628507932612780268769035622180677998053390783631009697501995051423757217972704192381676795556177239205799608323101341412897279452217142463631513568606600021760013630257965307273885862841603751478966342909207161889894087606205624180608853559391707876647344063841228703838721973816321252885030163894696231900935873083158219097063264162698815494698712870662159740243566178196225852251492665303468206364548139585819094378248440841877760269984143837294789038033648089410437125460737871485733888620510400154394968008502634644313084995404319572901786901310372140276150144821910382430067409521949411967605551751314715391465801459543192077310841985874433186914029020179881176052415494393798759132368365245945245786614665733879426416179776735448942873158752106914641080581918932450087537304801284616246056056313904624274014889019626916351112844351476240216304415875952810660888898190121264955620218557019012230627478321843304887524638403612269352492951387723327314841799283204463393984801406218327955249538328195248763109667884991755321839105807920829380386538416185031696965375516401733552390450502420866930441556325307038611727617209203368754739768155362325280189143209199791478192794945515299495557358216033201555166709937483039072966014463183746120716789892096437534542665155444145549159578868460625534209922900241902761772292247429545657281700205036789259767809921051509834302574636482280263456840602958234561447375230315346494840164769537693152858281886012610806028050020567810665467999661809526279381992744677957955335075944094488076426249714926912992750581239405808923927321499471134765307169942077902610926279976581022245803799765007298884107082731696308924677510815690600825760122664489971278509415128458599092167850759370302184645077162197466812268850558635132563666730870736702774944400266837138182551298939199049204956984594409479213915261992368788396122898500990235941269485644019693064325069963599790892146512882069179778742987311257255818782610305377162556417239150261194111535438644261397918401471246243327696140868405178422542211583250505659126422660213423408230154916378580434207671589574315734132362536175353716701303889460790843006858599214440424824897498968078103552301871710156457455510461108459535418306888034385317444088711335345825536350909643250344294058538503177530079427206923346084629473123443444966127424073536985387543443809612977645959818295965894976592961562895017189511695496060373133974279780586009649653665260161971567574615506109781419772399397489769086355565244744168518263304644646544289805296926324925311089870675035970826799944781832932855678612598546857376456379139308589254348819223837792647401261082770906067447929785279279614051239531290218156334164472966903417637639381075921394732374168176018489259537106980427621015681215736552951678592458164883522506706614183457456280005484011487259292064505214992719031059091535408042542624015992679446047666211387257247296356532369286133270414372428302107701592675249355035159879593666472872374460160433176671430813016224358471907991264159436766450300398582409400313490554503640668966594717653902160169902392735483369195334870397362332593930656328517837935990282661492849548247736830856797573885803391119851926126288460069422758422197835253048866524789534758111706254660892597066091343422181870021449657421836381223649582504167195878534403217857915735564123699522821644552200278239127732892704632086557376871002562757352647302134907641086518899344409310205490679267869524830721059302786143452239925599185487405304396130346986028030971652649598913606469107434166556343786295641624157312092552643317593012808172652912522389464660611838406861054186577085066523602327396242589648776617009366915506451798919423745806010128617778237451507268619141272957660697068019420221071476771236824890241452502928765150896208649938665073844745143988592440789003044169976367191265275681446325189146000199474099964481781751787359142643276802974290724256912246416915852223163155982487334270873637510554422110679857736866888631708107515519472612369406440609354352222613424199431975414457848960898117861394182577336391326533600443057152788400212917989868641696963127290900600095666347089113413552071433916465238623865208152669942469682963392638857224632611265293421876015020535992812575666801870881781953687662636937120745580989924430512639719912725762155624471896345774217083574044454939142834516311080797970530636299893563670285971323202300946521795836299650201540598735103360445069607473859477264183664986628950964978762009346117718031321847301233358390707170803745923014554578279867739789572381328821703726530252440575525100169911819512672429129207253341235871839136098949368192606272177074737544335678836184369223833595357163603239388743919284389543756480745322050343660682490303223641218471504767700182676404367639180382846385699961584331792433110579720907676350334558453753905720301166729216423769291433027963498712803441726958103584372543786107370271255700003587524492708525932156328241888713733883161355195103994555619068167652726141176060994838157894477570326533007317907476588097755741814494043821071468335302535450291849857867035112462049284131838768008871991704017041230073996295177350344088054453194993672433355716167431903144283373226873573831028515623300825994315930835607877865467258798979401253257627572747510571282697578672357636912346838680633684703382152156776826429961508683909457716118535236689562307651289088287705683148062230489443249973411470809853723681675242924553882075010763103539408534791405223272448078731902035041148365427668879675165868496939450974050722768510410103149677865372432149455253725436999537043038545132077234573880151965410791390399318415107935086753493945001346663099449748309901469606221326410021032951660798905956898229581546656097052457514668773688979656700676416704470547127860733206180662342381933716381068018260921845354129103149429361830198909987790974477610668464266031391376839044193026527889027575540863967473725127450321546898181334179465824306697807985378174541659667265153031276662398502393637225025251258612011436440756231102485834371121228373500877339136089504230402387481287359285606117879078783972465637648944374588659040901444162156120114730482513009464575613330918515035894192996223127910872398771315222062604319778755190532251881207030219059091564070517017899656455672890211816775756928438509273950787836342392728997807902212010829267245123041324777006590073212080286869768439796510433689421498477428249690058148773743666381767268477470318692761313537097649388107235135594174558276676300573173534284957385651529254009583864886042514756780555149459870656214015189546862362897440577297680331389328036184156130389567221635166858269648527190546832976760717479379328849745714193208129082474887588172605684401467977892012440087981145614336365698341874038616745213036161945154693563387596217591792138957949167585515991810817002480400301311894090431560798174500935568254205884281600702246556165384276542506785872961055552604494775440426986474741903995728203774158519851749965865461331826072597082501744358227048262828642617178200301858427942007744267409348711098930178140171959996293927790354500428334328626489388546405013821852495344946802172897248754440039977357460600942688390020340253377082097178517539400528179891729747878641942261837448485464338562195738926734138434342768466949524598994119715192567046734660071237633743075333149865986481924888201799490946730977466232081855404525982783139056310448333766245334937905888184568515007542347742971924322708262430329424557861500328326066479504331386793704414200682774829214651281659363252819085031396214335989030678483967303262416806723738215836339741111122675958288771878368882745497774751400246811149586728850989941844252820447525771828234699336722833658528149009270588913160293582946359002828507984751258987346837160545639794476357779544991524070028261652334165862374214702110473057863431670758634660405803219588176470090948562413523802495242059952896852056256009348362168652707294962044914897935369140061578968224663347539694652873363222047928692667083417830200415722149807620923262853638076169745641296626061758331334383516307827090101849234327672656991880636585747250960282646535858620005415502484169918653213261021376783590156584209385725989026979370022103521774061893128487748967464608357506925724988743443496327705656888621268804302870150878514262006349197385842660098045005312392780584460384005626820850801871946246491826606826474772545594553075600625778830426763540838124347379554160778191409702012919991045129207205911281378290573543866589664247871616576375986622836225378843151128150798222608678687421836993916093567146624421652836749319083724620367494893774648682370986723692668263265092504145746245253534777582593887269669848458171293902428072246668082340826897387123989006269744145618013507153797159591040677664373019891005664749378427939554106719459521503404129243421366993408215970435901903858507251648192396980795682647474220371971155683813375960992394341567433868948735703928114491901342895166961812187666023844012748198315381640461178219639701158213712843192609955890314553964063885450469355102937078627176856254197966923743509644027171405456314239811261501493858655836335393103582269047392392273329024708765262161167150678586791076401871192780710997916653293377682649112774376567069778270348771084251426546705528072940984824100214639704727331548797609309475869572706542868535277268490271534992072501422448835590776106981347574252306692811734617323704197618064085360133993169155451652175298073533588970491397408914228226110752609598824363825699385733892937658275623881729994368680139632690058096307961704189701321401802213663906917696380522820958595940790227799940724984514030073716542883477634893745122826009259857724050059596810088547617478142000933126226789588154460384620662504507594726019417263212078872226731386197708148789927141664330468989304243971462879202799447605928086971737233989041502798658598441499277859838357571434130150892640522625662051088428241321137605987310360816007220302509567008854224938100078126140372564549203807016646053113786080872480942589784850500502426762801201086661351316530363849763004713576152820057376060371146959705706596705274091156840794957279136382813683527574559660904251415946076018666485896851214064639781655588012199620151005743320334176049981889524134124726792770864422240472937557956534120740940425554609843304352602898642428153820735349108652364084850453688143482982973157866678523605363480300542661576710371292059562872871780262875917084362464179491336648509397128906561665293904357542079438784826741838528576336505188093884200551082037080459034418892285395709890192795579335559661154759088044325016308056377536594715274649189483564994384090010085820897045262987013755128838384797117286660207847730547894679266027036263854086813871216343868394989496592586117490426911050077475271594981549096626318163398884621839953406802439499139886209023289912822058916612801181883806748424912762597609438843943947902524545998430285834294135723108302458123689680032357844401495463118194520401551508223376218492649986029634478538967971633342919661209529048233884919151437099548172409448960514513621186747829317287508134821761439350468316097284320495635736641405909646306343108859171696645736414189323256945488264016472213686488361821490533942049118899001531811439853278514332973081469612733599401736861084776005372696590115578461695113589926251495007390209357921466255878675498140508858898549876815795669493515311237296126432098734153146842778282150212059843738199403578712501764232136212178838188369488034972040479059848552243596800881342765307202883631129150262468105475088750950847611074616986284624491273500602417620131927201219233825255824751425369641688649817457911485263697230892770133842078371120529413567603885772627009096095909224141048259934427375443797908703835446567895820016930852393628245510461655171363514804624344096831026905912164204076971048068653190809381225559726608742244205756729215780471063060957913816362023339339686016586589504639279340781109086852781686720522839815550183981842636977083688422785202900892589064837518036954987916234421966619673898263760469952396954819526920343470597694681897195733309741502291614882184241918063741030582777920257045958264539219499704792339279589108859291509889382894663907593784849077128224414670161142303947015403786860393320637842975237932283254613358623862554090453750135096998613482164117507641886772196103638306036360604805070319845640677839562126760966373649752594953793417971703266707798501606333283561132051383374122778591426323712573627145063404530237449763410810236183653528548500099207059382484274929034479364883812577633086674249449470166513161507556781467072787466682004462670027385184581716786343265315266569119219408272672591729541254212045716417744547629867195635838856860823591243631072265395435437285037533195115610664008087234562680201758405438184948104620895013296010223982356434512077685044281378751306834958579072018074724805332968389909280524425009026606754901807089223786873577270088041844159576987143987532234548943776772378182479615714403167863877517534288128594790738532955560127891914730387545688634223794773967826035008130016363802483247954137032610602258246698720640059304415420431817793750906314029199070075892891835295287680957935495247734832199008192732812447797358881937825575123717889899681385167214881856570374285935847214036350685837628441499481275625584574972041930888408064671373404968191458133350238855645484368098651350023528467355525683550964265283357763474670119177266237761886524246311315641310628796512489501953723564275039125638967059770855425200267856003043281907397004131821919609651559015992148438359796550641992282777341556228781435586408243335481494125737558228940247802315084802411839292494712600997555151221035266806904439074944439390532189124486596077087969623415908586822094587253729175208855537740375330583040630295192533376990729779602609079573605692451351203245665338862757349093059127949114383823138262202576707874634681186735388109293846292278853381465759208311877861583448381051923022055406002107651075349970244173250828161995892831455474333628356593775348728459466744756535659693019570167401926571326511861125535602843966538140437457619474932339699755813233991588660384704929743804898791254384534443827351614527120728482675727551817514718642694382702354430824641503928167072889326929406522989768162627214513094777517592641537376780835929225687573365897173915397484222799048865950771762665095379028694034847146380648991112745097676073123074793577127980760858929202840908879549105053187757349081909103037929817813365247985484237778041415684775786642193054407032236920603176696499989083997193466499251847044721127812332145734849704395480723042470229844904620221041309828422289509569758944490271989855218766632181442016759723494173689010860491956510978744071556795107766141568646214193030235948398424701188701153085388553716354427466523635134108005695741236162482089435901203228365773290742463299146409014345477708701769830767515223911383069155890651042403487896766620746099544744208252458599752040887507392501093537649588410303885650430237265527581851821405053607747715419584737012039348743853645355012703234544655489712581671247287672279274212754833869190518712115047958742022791763854591970119600542151292923282962573851487424312746079712607784548856189427429363303611446853985575190423432377330044414329151047280855084718339764095064723816025971373681398810147541469883917375889105378053646753403482421847722495522082916505026050954338103147016024629085435903395583019472869947890152360313832229758916233909716780638707800829528934325662515099658269519147695307996926591960749969314633105302643423026500901657625243448944376411084970544794692190242228680187340062157589779649536635786515814158873839034326009174742010922749038389799393437739343026254263524441734917391907045371924833328031391772526749362593802903510233919292078225367150713586624495440823518169912686169873552397204626884678955647733544735334153696235335030706706311264640683581039543043048441257284005249555564786555717885531157569525048132309632275074703511298075194502509337137962757230448003781870433719322430667578735372356376099304939881361902013849982102859406466652194191948163125766682271546978678483230938768423427513168374968717272727015703595924859282784158366412699383691026927200145233566365158689919919393347228656031229881229378387800953489326708549970059152121455452795185163587659979293147014580489906702237474639543715514659160911851546013322791590488010409552573991363895198690401647664565277770682112575099782991068352919015700390432203163391124572797002964481258462247080180253176811534638184735715026812208012382673748625890505873798654412851745344791868017626034419456330636198569983474182757851289207715569605800429063778879212869289488203144213544054478896947018206372186503635488231428526458555508627445908640668451321345233922658169466699309908300899515765689303273589070885737053558513499486161160686785304741671441124307227685763516325959798481651270402769070014876247279713710418329112428604520378756833065275506851516421956592325748323236983955701404639331650863318627007771578795729247624315518947173726308919924774132254356240682822392802290821836333638768524189059781802464378964478593749008438182442078444468163283430635150631683443159592142945818952164416762337443786440571232284067099017643479901076953031859304452201541727740141086048436350836255492849511556779690522282506043346835793530661554792404857085173694023753911603514495967473758731858346249734112268213982165419944579119287375406825368985220535834854296534389065862078358303098729684903866366940835303956336459898478366173175402489140310335185245528842656007067032688958149830757017130648403809570356096776724334192424626527485769393700326309578369568517589186167323841920810618962447353196422526439656675785294092745792235258733083252894110656348978230421712348275793253535701221723627336194437403171649276224154914516234338445585974490628036304823278924990111726301542180188503546087542928170843965352588649595479990043275755016951620048679142111638495635526768465918323930794899724766970568324087351605842149973061814857143178269053363129093144866468600545815091675523985576083436286675345139724682772232668165758634366753063978052502731295959242998528934887710050292805078630498241955150291244065766416749621757404143994091203239918135404962211058681384413148840322606524740713096928881501670846020523499596440805818595179894730951393457053480302351877820553133783994547709632441573743692134792117426834083877226587820877929709815781032834841811254795940283226062201805311575628808346225107161357806712086407060533368732768493820206056435053173605295433770860290614130732768250225817939662414326921340732040165436115073669338171181432058864198201074852581483652769679396125103262994054957160055400474248027683572212911893213234514667198984471250680822227582919858588450941497505983675060987479716103797748193434894045381685464053617648745068639610573025660494392444065896780378360935493972031984118784155601239937989298221474273575054886750642524959300572636369170592165296211931920085671802295136413895625184416543898171643547485149507938793904742463823890521444217449849674303901142497678903040284195171496353450963697078310551796539294666964522320123898200802525925770601484997899110635870651794250123365160314670586357714450017804052668441515761994581615049665470828518943086940368443723178853922668507770528784229111828555265516869298095477976976499238372593007486477558420499649157379067543372372076021611916550444967439163504324968067032995723235451025966146471985438793162735044461613418594803423280227191813430480620832264298407608975169000248745054864954899668228657378986240271335816500289595946516547264788278912957528952322776460870584762124237495303340207680655496189711475496325052672966035256177302013981047838823813761141257310227825718082255360986219191047345616799941711968376374339696088332467015764868166216587907628782973596551230525668815577893282440297028412013523630874580702169378228855469832100114337978892062680699035524283475283746498927794260504290680866696177801095193162263502651423045158385725389592944470861739703933653837272157448892162344424696503637627109103518265444878673578891249515928530924208675818080249970762267438431689873920243425971957540719499987489189098719686611308307707398369409214993626336711974393677331948651569603122169069347513095373906798389826683870082833064215810026138706250111758876163167932838664098697905923288647434784132756418930848698174476309498683880844772351592558992002852107980144309390548531444519666276875441981112226051638809399702613489927756307050522101087685937968932110386680108505525394018394929816384336407051020614061105191563838207987053656763530814710536532697197913164513072526001576142659929179495500285451696044840724081531502219402944230048875431385060519270482171727674222994771031491417998082348284507270939412449564787140015026285684406083337888980033574847682480407523984213879005116380687581587920338662744961461489448263592805236577656363094867260359884810954288154006406812775505784165187188070700992317000431763508358400774689237941983407426924089475637763018761985278049149906422870249595789363035942644745321418743998606812638926422707954301142344860806932812645905570631504551530871747286809401341690041437785924795725835974830362355532802435236443095108895745498452835511974185030037888640452243216451987104600142241462834291139394391646792693259089618816886330525242838765057151035257885031683165983356171379373465809546520281153366828072277590409581481883540106233974752341608091808382244978581156998598943783935978540735893002905044361812657892493985716823112754711853841695294843105799865316819047932601352347271498220703974125109168638272916621138507583530749826059526152328099934891943334082201309190744639713792585144062535843744387605994806036315503939913583006875248063791170375866155265730915319939096509031758183248695264423098734841268721192736616767059530413365470064002467178637284376015034500301717979992761158901263241936340937870657408161941412354760506978650862842215574276018407635749191697425229594020048334408012584800279441751133742578798528186534886439401515653325847754715016682361592202450183194741588739392236316070219948830395636036752332195833600534114873135508044377726573845093374628625887852173490333403984044157426554392080175671748472535015256051622276965676425953578772662823483937703784060186712393088263048116009541095075443359768134066174682076259850524628419705997090439512159725291003278561445181548718143661994878002291593715172604872516589096955532676316754912680530137211000617989870189297331568606551052701962646441068405741312910347155355513006179736762578852176427384846637189053318786171103038652764838231771132684325371250877732829882301900716698869092048857141821146253354596039055325759379622541988878969975759791410953193047214564609766075798852946387333266444555963251467725007152206982307087168998236345994188495073170607941577843244494657272137557604038919697763472179178270197073431974541768028584210625942772413484516657266441147947322464488580737507959777062995149687338243549307711488545361500033048012803903428519822673413941299261422155830385684835495086297323530633897143116633725438667547697252831852198226752846218402344853632778577015190780422065972025216568930844204968928839450969979455699902844690236338982632815301932794735030361738732800444841225487955104453498339817455681627061178076738992286199519225305118249829875580848018651962471435917101609965503607571820317358362422534395925470534705682879292975428078731041374538104620886567119306759290891282760705811363860900931742601106303635223546571218216953130447594303807975719269643468282484831951837424093395081610561347034708532179502774945414842144546221433468851465139487804522711724476330079078473932840513511112818540623150083149751220423022137477986132839731225156280643146951480474619777409212279942364794355276972945487589040523625834435191660465582385450062612267732615138149784743401150997734568878876669296986433941825326260536349471740271184472560690730387552009233576877642661576442461460841794199146130098390228679622223068755862317196446340454514466573165286148507596753024062937065777444463176446138696783495054867995297408204152907558653192304680887267274897689322020657147757702224927570738728964761606299124451156184077343496293191222411455170504077381628470570494069938167959773052715896123169696257080327909566877276747853671992738789134293047064345732662864602628978010204242263509433952848420859196699227822442892255839027804634761911653474071285356332362016624540153006175994469936059767841504941026133382257404756931127877882111956254375544269454435163591954784791727191994262355659295723919076229612309611997798834016284530319453728555579179287097810412943689079993576947938086660785430608815439678405914439318307020962259052702862593003662407533048119122796731871314562771675029543989719580552021398330387582099088092777768140079836287613477968768767011552447403345723208334527115031764287777640724313287492418128650913764188509067192195820755744967249483843282899183949276345605498180247019339687144605412690719549623018581967334872745154664792590496233748990246829624750513840425757247632907793003481490062207011370591554093085691574248627132701849597039913927297339950899423227486961587842942894614559015771897656899858860478832776225566509924092403567339020536210086795827110555256376209394574278541682561998181056375147030299445862559790485510760344289781084927707546432966539648533757458236017860715337014522354518611621737024113457108388620294213477219408222224036235903009627597649983682481232955176161562288327837549355263759443828442281968727991827682409930752031689522655990611747023283550983853922306834605982653205141415941713806420600330495261558385875436387017590783566514982696338848067232089580855944504308099499095326872669246940808972049025689482854512743903111209633748005385119829674916185229802092448609077261695277942650128040419197630279654207548643152138255925334397539328114572300047310369000900070308053640901328009766298779863064313397329147028537919490646369179470052819132227989562830982919811705948444155486773211820246738424983277291510606780952763825962346934442807566254865861113996493153072921227331442945290058329799101957143769517258154799974506576360829886872054901695012039381849829279807775291475713033409808870899114711214136256495197339562337020395102318472277840687354380025451555182136270461328651588481669294870208816432276768665769009483085300824935240242572808565755821324482519647081411512021431990789311865004116621552410933819327702343370760175433361565041048317685334019625393108619862135386264047960601812762001610807620558209768790366085648905353628882926875191379138349404554933781126033933152120668199068014431501938643527167491891840017036947527054338008426546526765130457407883000209109084856567833777183212530178402689689673728731979060512698521823668964916376453900957355255273383433641879197561886749046220126036293757113974334833003511527237976607581342862165939975293472662169446385646260134656594807477845691737379405660765635633553169770761168895968109609994028050809711317284945796920866155656876635045526610727539927725655636615616646334955374796756723405705374479018548006447430592741688887211707232710422088179868998293784422077844420814609312532544700949296218479912776946913403061848488225233781015513154235318920489889463723662425335906252959645839737805686903304113760697805501414366867512552824120284929130730051938680571607246646166557237444871595925647822434045771295073997049758232511798704560790882128241074976761399918375755899985982074125732448205712249542465784584041660477694517421492053222068314509224258340783893956215156494486056412180469936833325509252933084028515470016388358111765831065466184184283255957402795362838452191557867572636523167163737274404620622260484922686035679969268731402281676633182892815836895483535997013686300631152160566568690367085090860887797494383856804057058551077994295882807962338967031155630500139836493779699250500325151178999671314915758919605272829780610057596450960404865427197478877818740139576928351269526984395480858213899556431230844344726975394108316280303456320982690470050321334658544505954359883215271581876388323394063348176502945810284501659318283623452548462821274519601557502785891888546234935473720118931713820830079627800441899641299081832058332411723304606048439409120809379863461838102452527541695704751913286954334377714053609728523147966916954317182410379930627572194869914422380952622432849754561506962839406834828379352313286006794872006501862992360406794813188723503059359308665942796997289723532434114413111603163358659707579592871335994428535476032251200005187896977504305785962911449739535032273992660209909106137768917295810184398369519914352413244081606194933135776949908502648300068436791150105309901169370026907718461084566725222935345963199663818231371735885381060732587467438700817187245446856699541669997278180082293945757836028364506681513877816898828580461269884747057333655982597870308386667592315565909944649449387043285015719386914573035157700312311166778376948650199704768780812335538383134786134838875565535452510209056643372710538981372272147328910471972375798924583385554545106124439392078600153319129224385986525862340684309967946835994750701477999635110686164434492453396339804857374629118817355677641867885053477010488947163852482730559521776361031676682321278187474078256446862985891385778372815112858898330642282353934819010770049464537868804598808801701085327271830925400944698603505817108813960973774985920867594172198533895647631405404128653988778420712015158556866518687329143002357714801143444153003701618634255167800068344012868059180645222354546120707083988962154476369807029833047285367321105581675537336533008943061564946551587859655055792615343227518109788896880640181730708535735835724309884546582446889475438662129802494778591839435033344906358608320410733179378621371987138902547693360770736077708887505022118867569815915621710113183050254596767627172618669717545435689046718573743887147276483897222759109396817589979046871639125653349419925255804887867756165417355473347384783202924295001951914642253869988993857778851847354195113004183641867441647391441253005114483598018445059883458059982069431664916771080576281683793418876923949326791087966972741251171446639068406974465999378905011698594846089101830834560465154023334301191329203933950828379701228038747377111147155182334400044235414675512647809718759458590322027412371884668366353351004257315671226850150826930608853045406243837656008707681406348282119332920980238237727745328860866864571552485838340337570587384712547492576282748966996293256242247513883163119427877834136025019449587926358399070480398386982400644262103474297058895162584425852049478473076190111126240961578890611725337723959522080907734107687145737004206935272165035716648832104456436171641029532946238316932487268076515936697737118507860729347925822743804259073984315695049325018811174241929328717312251635098868146174492099285236738428076144831658196182319410925054043978379722379298084793445139873141206638597472342506762279384386311110484857943272511604262043898717401015340444998378151037713082365904812953963639945336334356874354681563183918188224125406625398096293064523798327595853688551523578214691950301640432446826186660723601890687076046180518794902191698856234669211450382971111992961209364695184713208579443961897797112106055915001312369985245993769535923257655992582249228621687108078181894507076898525468554849261281861970255994332248953012558917654238161916048924942316278669058805550618533938438928938534949301152556742201582774243370386085193662187983066781106043654892234094628430596736794599921720134876168469065267492182346199541246062552840910514660321849728749390044382836903039367055810794347829624271741985032428297914916203350430379588977728361833606414912891619578741447478222121064480952403960931504685221279157739263778691656211911615519455871236923107808634630918170222333095787702511892944213054986373077195328523028990906894828074574460006909530871149813168764709127738101618430166824534896514167772412345590123428921896877928017112833197701378667726230457834697142113988695531185929483619805476290414986111771757098483632111302691455813911684065770472195010466896192730785552558757529493184283541520144587833748102861009698596341946015026417764874407532421501484622775373830505181328968443876648618554411300152511729201358604128561664095812713902727788999990001955140766763031099489804331628302131137262328071924924209161171721200072785289866400535093088328017405605733983491801978278903782241568088862945535542592852072926867526925992195176460396712678917463801413814842439505013240384543313204954303420202484076637524573828035404345908520119270105042054651056617524441137125712302709844220460912491615318824342096111593858308937280970761266085238816086232855555992264468263050340707187426650351822257267578378047551026233190001370944292346045709751427522778782365347998182604328114879678454817022138741758188275328355502341892346507206268367655764418889331196128091738359357031672795298036929166399332973958804792192008502174860065664955259820913404823965357188042117119899004472971150806031099206410726791538303715992565754246807952026653207899042441130610020894425739804015973389706953333994054847444173967989334894882337383171705826247641559192411454533430389424678045567440428608226464834115135062971123098847729520570409986934294092403088439562454132610651430244578398524646768502386485768819754565310832397884971800461361854782904151974642279621579829800319840694358891946039928705590867967801123024708698481278660487930944563240980788734750683644656547641955455162276393294486813053594468239854163799696295644774296665861039133976101563639959770680968058058905416825781661679863311484090837725892365674205426550254350366866716644369664242034186751849666396460097522074931369838080209819248666692830457092244013505540131325716289897573467197758290845854079407364011520226170473333997734220550218714782597920928654644889636351365709508435587228935446768620012425135009983921152460626570822763133026162576661620373637777427806566414546897793497176332089159339157158809288700935495400981684771295777907722071539564375078042873273553228006657348989303964165903212123309662227361198667859678566979548890743357811950965510071492251777702623054972881871264616647267535296285735235667193025665713534298157877003512294756631370339640722256880893767430973762452492014514702198976378990926483528212304701969911954491720669224400453926265471525648234987704489270006506199192055555910885792227478940655287121274873425982879700764271296435846813640590934311012974062784012883835104898277505186836965492142349842590830951979247500100587951494922593816236177394143212233286017163347310587754801079629634567439493641630041095297191858834886183375070490840203267791656590298331527459987284051087978657951177311783176590238951455871892298660850224014401297101475676032606567812672270137288232565565759888477347585710852161569310861114720247037518772552651324055311794217802646676351249503599123947074830100225587484759079804311001999681175699041200510927431149549045860948225569433012393802300532753616360833232948130565154255619202142931223821970599850366665240079687634202413685443744724364948872665961919055783089314198274576470001205199573582639261500032110652851726821651979683147548339756203050876494498292914086013066096648860054219714869196882215683558864619270134235834037048060046655981184490608985528486733510379560871006638798390324392776059645219235344588151592765764300802684850638005090934633966416719523500207103451813120286418466264466539368626779121099268248752294395561068771355358439942957554775066162707175876665820972457073729844089205533515717458868165830011750926197893805197274459209719384618563586625328812999903277792642825138360019555426547921452213182793482542296985615945201469466013568901698459423140195310499526741496107954768550395597346867273912184589297638867243459040181619792995543982859901231661093481975645323996423308464332286804027389139615719877876890669616350225533154169459551947663100994955265730460913952478961719573165050350699120768853667436429327060986744017103591934571948194115970191926504924035258478267543826693370209236089353558600613821636778702550541687793554343366855169236110160942932309287586465231168940356767138284275221925607138340711667702385153858824736095490846303929474418728578671664779714548185620984942519898690947842277914247698737797060840184685903029918540548909223496238735446181148258453549212706861610271559315750246626428019925498820829386850540568462636066323660186413253885817534280785599669742000672992833774337877455185440253513066287185547163058692681363302669374102847154049736728613307274793879797326657520769657946011105207634376108892211037232985463073719444545918969041974578063280828855367129652307374938013968651817304000337837020987226321970112498821935590277013578213080182848356200105025634274746470675152210266798136063918989373427920399439854344099801579950852799292741744794970851598833415741870386033104793823173095671263919512328663707172264224007786177277072997371366337536315246182850343272488753798221527247616016224053631114110060597249192047552929676917386203107835686999991889521862842287757467580426970962468889784929592268495552541965562193508444551658691200877737702678924181477672106010767899537778446913937107506778095422399602525666630099289860204226640840661047891516915545970077173161569633284380970694000718633063824190316199486446968010158129591329003676340385598774051591909993869156482052772223563669799828437442542889400094613890080294842938114811788424214776680246657821417004840748243364386588404699061275497651940876832619475158751550271376999535870771296227224927452461927418806654644408892150742234089946256586705426164737967745050444770326014861774347297322607904485200367576743145322857244417438912165469918979468696090592879296374789051970431000661084689340969153475101240056621282909987595534196181379712338786010964631911742907039180071413968071319473687912851843644834778885659761836471444314749938717843551080172009335586810051381685236502012228051890697040991180189091050996881516073623438275765420810917005625202093831219231223009960195522317806366243985273979994767593837277876529854578916814373090203378014514751491126639281707657462794275609784072774185633343241456152173956738135980419522026566838655647597381010366336165772632189262420792874697873342025324366544659423785138521492859855143441766132583645071579076691726203383503062967113400516929902554662982883073211044903108974467456762954745829698331853746540718055971307079437190145740600965332925294831825193478485161979770490248330051268613068959933181987931189301383297709506317074901984972708353459899446810170663160069533677477125727554342106016431866577388034114497470771957756758965254482434276742444701376599837378590336262845630937524821630085917656815702875394763329170342100908376529324443696113408108973883909777422741779829281749695337353773507915216965506721329771437445325029274155924298094298900541617233412876357240814098578230767103085057319994267275194363474027447121899593517841027199339934200669976418949559930879346621108794944611795634440771423469580739739484969632131560857854003876898535450418464176096019058388060971247498450089169948610751041026859528044276218980139828554615305974833797930880584082313937311534773265157019735053364284016184838479785909611974759007157135808796243507427631160525158198573553585262782876411071385815121331872446480207650358193879231034917289352778769154232188531116795559192530186370574201207270590496780401713786330679037451959939780674839113630183810286961651725088466901613331101311255873267341159032050357727162242147282234574224987336046503174183074595503328289791201921459965609331434941810973503705337378463848700480243661519605274182094544964452194237761680759462889568572577656963990851496992046334600250076780146651206565497523465203528982910583065899268804489115149888446576105232785042924308738123969044260821160119869638267742830130080852528684709473429195506866332379402220992950440084688451869932932855651631033133026441512590794921305213147297786270352673284674925296411570617566613413954784418473423639860511833492935630108748731343359103481217085989648206069318529680623839152008328749336649206671679608638749278317211837185618091206640080275687245301216179099195607885358112057419729858554165743378030384975818860033083958323757078839872094626588490102126519319846870787844243868712882968708919912990750334234048900896397187917559902466633077483256204805803374885744036400620766933799545544255065083820338709192590775872084549985719092780375286369625979008257790080351758381102990532102535598811581712958592311846089125982230924695624970590933143226858545591461363092654153444303901782339726194222121112889544925572073904516948741065737961444170849460583676055036709769824760149284816870799629935092357689568706446651586943752908995767375028747406744101512649382776262939985469758145502105408835262921014885076572877006412301388989812929364206652866900986310925380598007092793062500097132772366935564148751541530121273324679558344244654338212277455095951114891667574385060076948461834043980359505202433890852801749706964242216067062794930316161161350142098634888042212418189669003573826794331181233541520875952268419786975302374122546517744042113074406728245980756683529880415623594096259456054491826178631868973105105515671631269733380353807643425766448909862676962709728579746314347633067054499601740300920841373269998076179374160190027867469061287551978242934029647425763342903770048981949905117681746992052578893554545989995254813067340751233376808546225886257215404569986364678625211333860546830575644996467843190272517714376995218075335419319110937773560953050875441081224125803357687897740870938985562373479313250988944140712768389219471386704209155782516871596882043650794932834408418033770107745986669611536386226632782703690630501448471067076285352109772204433813212213039907734304496368773888675104737538348823731473105135924717011633541654810624543184969958593435054110655472988278263723756141873308789317301420213180647667211978679862093895115088103278630324993937811636980937395862131515384712747661611127062495965041282299524705803299831709427117312357321970473156786780361388572421763890112576193080043859346011959638287854748480509741732299880874864773479126484655808195157564012389714593082189312923518306770437796040390225209272675584600524671540782691387818273482797668728367573512432679963699705264840416712464036071452441426743173745880541936300113815478136295845029520362611522404588470664129196038602906254690936741720233939118159018828564698141642236053992297380494728418561871986230247692101832373096654546129084219568699696990409669871946609572022547802212999047228928163968700243167058507671772313833562602719781913162262587245417163360269696534216130458995823867420441140860516486186936550006963363900084106488305160348915527021493036979750546171570149193953838707484857274312934333572196495659201666332762101113051928911459446476520531893425360476598619381824805408205883632957218653850818600010933361348347960728367570950393678202764259856668489928458775713605022766267624078550225853121782926800954868747459690947312878067728918112503326310307220005266369889230685598655231703543168276418505220608384696019113324471591135298519809211856386668037362462714803133923445212208323613492195846468368473155351156981855557806360580174249166520086760822257613564494847464697304632427164647162992807241059806570214195544834437664028154847649221951765807619713737173319201374463302057655047988771589282263511470521129683137817598690447990438817506503942446571158280341789809116904461821996147072825917028413573953398251459436400359862540467842313267045825006584873370995484092676012464919295878805098380707318561210782121788778647342556799220110729744915848870860804462973061770582364516847917986272141608491274093295416443669466280183684015668915093982378275491789444275372235819794877154331364840994555082040295857413143715361168849333514719071197753716205202484427357334267361570452626928795836504820733240755226672540453927244011357847526702774840750127046633197861007688032808509289194687631379998145968947586044752913711793176835123455824400447293613262432504792644223141870456799122788925071140070499264292892913435727771357833374266462064470473512094286927858912602970276314108408142122902868397078395360070592325134634629467128928974719334230430840137780099331877685895825838375873120454632702572689662759861731535394746168707884748871719204602600935104066975362846653667339586697904629582254793622301878026351566093295839158171759975122017984669473030616793735579845617796530878438987010319903786288518548732331952795094200955634340824730912985974199637487278841510423809207038206090200824985732691619019945589796240262951014597183352692063317484468397612417062357209025380658962381987105206127982940381548279624390022100755320931319820785086782748118027201754449896716205876780308989421182429780369695851989102331106733393981247195447672395360938186005153691525423102314709889696792354687817783522412448839854335149879337046153768663394007133692893396844664208788123093266654832167195956602640826068784045642286925608107598757286699595416521305367946304029180366477018187748261506525696370473446548246054765185439058274945885888137202770696059324124636093184655724638563057996911771736365325363861480419946476276893879203266378409002504710152561224658577055889823023839305745499153813259304889416647659852056117086410054561856598978291549791450648863457654000014066620698670142809104752142561249745149659984381685925834685573005323194023572421870948088782217479929464029677675502479829216044440408247005735969753063846059454009658746144676913844181901807362730813941788350989007948824818315950649745379625630047376689278905460605307385534990006088351651639837096345276308976141832229469894341932493382628971809248664611477228593248150459077429934111597501924567552356940002117988516780157243737202486672029408410659528087376782480474658324119985469652005707742197843356200721554525703675492776751512049491913434747484838012635542642513309601032835124479072914288182089756266242800927235642279582300276211066755590159348496970138699277443024563901331347617771639345445975667465054265615977579061876983292690942390387103876505080063148220116046566074006325076833638691230619881423537785570346232820055550078511270046885080128046309142893411485349617034176028820806205248833311238716387287883786399317760432402978501910809567581845698000130136626650959132309386573923692709284520268900472130860444474795161557201483050971871877268877098645515222020250834376973942284379253739450042973525184019926183262137080159139794735033846843859859557398915002419907597770610615584564616019311998466524658014675353918135583614463600506244461626970736597957065583969700663678999964727969189697849686093612208056499595887845901055694700038809402347808168729842081438953164723932970867317627741500130187710012110275489768577652678747958256408247328163138338089901126529944504136618780509914750357567385185282962854946257575113780046994717296953353970182471376102340188626329119883701596605478874379166087854147653104121109115858635736510288575858504349281191850796241120042729563891671163141233232162158178920317500797829107997716585202366971614271451503231248415853808102256385227597148061955535892109439069262839449251622117179644814554849136784786783317176888869252268604268337069668848044498181147380988422019946412004852179953224944454136911062744040721533094043107175971261612353396892207556606722192169294578957095559989282369479300958338159950010202932707637010598930139153995675202551169285305433133337617982824932684223648448127677257307408703650193049867458777818998012201884746534493863949844121196804984984292856914091992999549688880109732474553467539459288803627425536406925426220367358687382833028366140976231128254232850010610147793018045973200647961586249991114157677567575166877445985917004834491805674878460292839970818508213287287396678884953198176546468130855525330458056353394061965451146800599203186562294229362216768348896350513661772568162853242538955742515827175196074844326982301232658414348147422308583487199758904180071591196249688459418469481261537006328681954252168415522311574599866196402732824239026518129057796306001064658779349553498749863649201743570245469865602438517516815437705221255364076885389857249100352730813143352336081958762284575629187970717957044097912161282060305688347584941463441509060861480658716842125393647214544580196630700526325484465680500909888947409615957469958805900250061326725695982278343342688711470802788027982204749491836398382799432324155459010010846332166693370021797779866694729897847512237490590730286061998298827844047838558474437563283160409424250679021377160689481531312058843137401791062488256208534472764677439060181851485151472741918418392844946900079114671918095052806028344305935409307503990010342929042483636494858815644270980094197109774994998368230226722943550462998584899217561506640058666777750540453821420410212761682505367339053836864404216736123321217680423825800389994022156528149298152221395620217339626433741995774240063228606801441506000006036188434710603228355077421466331145748083129243772220467828813557831838703798254069097413466437344442735728994588205128857051870134644356967916175339906403059890648350584185265424242300432722152547569035357219073446573637257354473016318240340322543383561970506993403009636838753604935654212264583919630523840151808119278254253706761737884229313735981797955436580321183762122860349154906839114656947821279239243544417142173496782714893162467912323255608806215406238501580743951198047272879446621501229084027839029161353291157164424954323554081542695297539917546250987930858119596718852325171152317016291997174438297259830623695149834740023140169235656730547954969931996246520728852443483450532215492534539026208656272663127296649610426064805205377895529978753164667104196197997021936089777202855814856596335437567686465326279176609578931946203583274577367399996511641692155895957823245261161633524306959292729076555102994766240211796954877425017435613046300459001849191294196859037915982542389798641264593682990527227469873610961063766864512163754535615661360671183701305710063369495933069965472071476761312349144925550948373470300982748156097950792458273931187906979291444274600506310299712428004527130150579812691960865384671172812571102758259227843112543214618406716661711554411912528700754205722841890078934407767287783517715037423969749806422753124572747167115541979429862118680848990763472979939194520579608377066948745510834131334927084491751370612774705575148996556694295129973785647912213119837693944607879009980224803984252079905377762739857518254910853573087974754110409496377497740957908774877163519959727562807535766706474083952072905521811516885460713082202558900389835375512124831607861875085493807088728730068906964605803358320113663823926883019390554872300630514279485634016812011207548884594682701641180580978797679391093930976411584029417577282077285719841763424698069114308852961119616729451729492411579623285089841714502391782726244966812256908852469163164186467016296848539910465514140779703853611280835568097303613884047610290253162411405643263481345748831497397156742431267485718999997683925137693898034253005366849562903640339785477891656260043369014792211264333952945502629320857155738175069739567654553241375108562237747997397687534465057674654500804481857417289765661089175416624724682206335027235356901754474279334099426415279116253510847448564812855767940404618464180253672177763603418503902939101182695775138464955308860320638510780972708976987028638461114430233277407729969630298804553044582184089428209494207942331619535184223431297667027391653134248818923663487429350503337739425098918915527198314839962662509033746640603207572558564208687388887670300810749467462699565636726749623653775640635923334675538503358600250934391068705698876118928536108344445754572506386635465706148896806816817694863062964332372198259876171598598320035020973592351155116353960145339961195339547152690176293008263308895690209980339959077736799210945488491677970007860272666417049971752510421600719160983960750414475807260080949325523568347181201412563665999271402416569403352559711500285266358617592514002422485195723874856983168081141595268615074879929279880334664456567940702873922539985914090031783171220100312236784434477442988870873500659814933203401355940568495704283890754149601787697209343283461576947122377620951820952039727823593933439690443765040473879501041994315897481370710657593930997421158263595992480597327648604088869294577413141249329545415045768335261668428539937894789939712845194098326159870425791325559830198542644165423772532880336634530343233280277048870594874376964596083307969412848251690546011306819584660650532969402231297692199115500840965273973515258032820296610524102627408587304571857979671285271565470048836198773266971189576909303613452136593749504519765888627090519755522081547556907273925232451134097852029349993179977540844932701552742620502486830793022109528616601769998571658001436639728024144693866316808291847342947412294815564214272712610574081000199211327897724197389113217074774951650009041516521615881711250524641108457815630894625509383495891322293507540617657651379970323065482362136092119155381192937341657411359798487139240821126267841381485333790328826210248667719682814407449548379035308740594945512824475092516407507270878165169348593664026372625560211250828698771022875063866389546415252131303642453761304726885495969066600047019166391421517571175749879365458910528218170120070725115540581810003765594112691963117988545344367394393448026593910573276651353997888470013280350788976968548992423871800111906799913316344914236481590804592942473349490419461183871218399447364869508705298937686746568015295117438096098805019004298027621265469256565177972990973737898430976874406059218500616359178873307596414902014817927409224644707038750002051941560065651945430462492163358833183947592889874007653058836856355664881282748734987001690564760457586026920598983278662929138015025663331288770191972625207020474816079757070682838128173966941518423679588732083675694184239615316073336580401182468327008276689513453538413063503019141149884962112505066712328904784447780170319591422967812686074303041398269581704965623836009380991423253207867993522158730649808688527221947896987229873298599204742421790711990353905635579853026594566514566971879926398064878201456829127032934403291354200989613441322257156678695681757927098267044650377103313767687565728166950985213365344441564856316635386347377977759719269064500828428965687546418707650707000445970488871433787095275847860224805813812514280400202598932074789882866890541919154276047384710268800432887954470450530332883172139321564964927804565552275956883627422511186203262533435662218304994759036469119789914320982936880105610124480515127147240995515351990801712043933742517015295581168858705806080960774310183005958480837564388149287923231847672004244339784452449245474275707429698801360798753501176402155477661295294724735982351881564659491562132896342387750522735960990139735628806834796344714432833994772909667390386441427757383685685470379300363495298472581354828406838986657510000384439992626102918535817701717226904022571955115844214942276270417703621452527970539791430505431697963829936814815598217886135815414838218852478298674219262905651487942517659905134531939035772264182080213510553913680742009588115888417181416827867683973121770654307654222036489699516397950925781541734505493781851149864804616260398147371722358178595256187421859683152207501950148823571244171012827148981645788473242431912052274568707097065887000522863697585414045552852972438696135315653181720241660487947514046280091751423457455706487638689935337702103353651384358156818069041560330212801673231675098933381853312639686094689111810111727565977179481378599949910924817944438103367588507216732986870203204475966751489105656076497159144597657043082636313790685451255314412008627797379298371232094026645931174269585440492918620972374773954603627853281350422392354366764588869904405664088686535691732823450379015001017119567009390833554493535730548928552930815000181871797145009670292205659473301531482621241834775205931669535683719292365999048916314131939510293527038021350062352153425048420032978235263464516616546943842981263103159518713961552215916607934849852572946506146638472019585325065462955646907523014207669497884750049839601683201212212485983441197346000084002881144059070545649346681948544026535945183984174815825761905670980699333321181834327603586314653873656026606668420842235064330091395858167132404964750176278788461315992156355286053579988982930569682025367966521745314841585803909287591701289683372739875646658771656547321306902352184809047629285652180307206322940037176044321190914537568872273200115005887057152466388833206332594216773770280773758440181468469914796116397920839843012600849809759246178552495688122013381296004165841451814824489365964036941420601848885387148278293786960406701391662971682889819637341502590106225941532071526377259234353564855890414494664438612872665642991284164947013364364069925635791797814431402733809810732678269474518480963703729430449297275667128036081439501401513633662397034752584285369077409374390121145170472118809261686891657668056133635610225802643146896455270067597250467254531185547340904561413958472439620389508281718987054895739360485225313501249259550407599471096598718573005006998352896195275778884201153386020795919920285767068643618100032385163307350102231276705970840551105272944715505983054500270968707121151452159445389909869848022378796083845619009350023918967301288505938160216388756325571729223066929023760049377255574598195683547691715076082511553522390637928362551726815686832784753351512405261676627494923811203988984137738347113077934963256228517616741556493307923049784579302891630470248714682350917221892683192722728363833695646324670626853025788745257857267227365480511513561594635554845836148281342223919174085248623668434289067852967293022415888138054880559890737049398375593641995057386157065057318319122354019269183201543005128434888892477506352478157622425998386363013885638698233777528753446961321458627318367307393604111758682755643998125714306901499590914183528757831646388758218080455297709985165905304596418542327423289247372569124365588330789093072794061492645268404362567326784257148411782279911378276866541531424858128396807490359488389979290013121334319438603287051306319989897533428671309936545678052320553134230183499962054215611917151362426865194056386227323831973903050637474327833622700261755826331011540606986244136900719083060187886459868040093313152634893646947500754695398702019649630260221167527800912834259371530203779883215360493504966438740214102880208326848220954487071428949524431751679077713648364239360204770903413794404984965520563341552463775692870167495456734059404401486942559961719806118400607937614155055705647374534294069053436098643612643919181425274351139304469989907117739757084185985582483804625787042006628027425110795214444560675611023395679667339048265930215968793807250206479857024824855975604894360863052764280060272605680059578785470525418295385115699336047573614976960601058488134085109000591892203972661897184897861726796024778715497617324561699895834729301796758951803839614996808216044461351366993682280027531117411355322310785680909685589442686697747714752657139395878908896198221530446630076866564456470018270597352702821229134507018896967351335178756943590061164620750522213024069484825122467345969631444799790635985634768979408125523510409693088538568912715117785565379311082089601462181571564911796378131866159408651412783355050010431337516155289575152238842779850106035753599651531038554692579804228136680004877554737856441718594907231189363233959943885741238488826110220915852166606674033560079093288841716435824058866430730322958215528572059168529883733363207508350582812335650417462658098834747306523519972963776903486724518463033726057796766677653841807682125071655059892632020159076449293347624635374968891377255020024097829463239286874269445286458630349119255287309959591521421691708577795600660002044689926766603500797684327123526786443136033269679837429167301648570923906337534449150089171264210615028239515096391552029405842968811950309174878151153627645541904858138734595927572437109346966903239007538172436977728999170898241393093757824889512283203329913091858695171644260673964285792305792711909779575472000405066479813251735352887125411692611188450910628054076838710742419436683677042423497872708523613993208708693145707834801651352911671921491816133156268065881015491844677346271858669745514209833726689398014330031529896236174435395629573612024783845666093206710473091225008958240504943852245681796358480766876168952059222751117455991602093423671512209843099394264079606576209249143427020839385944055763095351322344161531915088022283884713727103337471853648242298950862744041909183026064096396270351448245412755983759201622628275679378743341173782320700146962789371744573739963044837730293975216172160441622871955914422160673205348056940140611912924525029015041766257744198754986545208287624773211346085733228479675991808795128444047615407639344259968927993637638309654271450138633435451940538353625799154402090703221626940313801361578143156362914867285830343021483847426894252767805090800953382827035031055220537355690702741229185388427910709562536379836771014602483741443407704670858042309697562198047304799100717108145576601832870842102357104805630288479265512149924065732633956828777765293125075973689768800450220003868772291614568693632229695480660881782594939857581704324581177238630822701609489398256031719653080676926457458830428748991336570701430587310972619588947560769411800438477793967084345431929534944977723309392019476788795992807671051749298393998476766034474232968915872103913423046752509729378436719881369441764627622525115578861490145082061088781928132012193338622370520490876310817205931329700566566921785662616282853956824176603932110403483963518959084457652589412264121728355330336154884323682887395000626564971156051287942275297140074814065299885124859482844745248877667786418233953585487098414077053409286083079915679337981045570162198897571605815258709083266345222324947822962299177080763429378956210618932541787409880606106089084350597231455162031950139483570047680453001341148653578261856108153486119329068839388131605716300571088372044494599980516686413328745496333798794058439857837561945417655438817515836780922540611864348157066073862412779157826495815038892168344897235493437121187218407739839969417021154100847064881389548701274379917827874945757461753328497564986205894692816567299206667286374285178400698249370826727938729551358429001472051077140084574235241798951580728779035773910806743503535892702458040476209839260575788296431390838600089855177835180771750731166276771518491769734660469244766005499905624240098694352146985778146456897914060234897437546281789751613661090133027830434090019624845405004896195259459861068365791987458995551276662461259219439994093363249966701002293801742945787164462051899079567460421129319447690988340808207923764068652511505409744858721678577601157302755286541293408989768909022429352449319218676994612536603687883810978224313707340471630999719179744396503971639453509142631959180648720834196311651019270167991824528167439382348900216741132647632884759432710647363270874600896667482830043481925380642575532208975884237288643931215795486966353755725384721024198276401545946417279590351628044101879964308637275324110978434557114494706913171334596260125784586713468631512406777974185729442807422808461717445566017141588789781514912598205955864638344147827757518541846502628170284537604600954304398158301184291740419049454853557665203133156084908872741765360753776776892305259849414565731609046356624918591485045139098130379399142390812996330281538355530587061277175514673370064068975821569184972350505728262942717134022826253894426361294458465832354092512840446207779700196106427008121362021332066787560365120492829055171855287216202675180613322976759540976347111945317503476573070242529593891771315947893523036070105363475321331563356544244775991005715488456837375863191312760649853950195690014339296352676802902903192665043407633677772707208537890470421937286779752201671305122654077415502184479594513419757415071745546278741361879797013065999073081496392060281405951368152907979472340094466417994619301344411080868034835288022009569273858830546652175040841910044116256931173428258062390316242616013612193811027651865448125865520494318859824499443925025089858040618282777396789367189360967813963542706487486701454054545309387103560735529700545277049614820837413852893411425503345189315557313667814941115683625941458460773143500075477445595907689294425836610115057295944594448594102823386381612312276330991413763187002077143505354040714069305063360840217478136776077778301867185785766134305799756088154255626413201620226307061527187040433261514122421116604750903721838482748547452151056296933403309102976273806226870139499823524525830454977009240768002056217571883293472864779671817058742788151255371568490027235296646641876248167829706264776501892924339682716012229948335150094769796424285220925333717750156787864138731223336834323499163687270090185769356024386515863396113507044917397613411862978715926209274788776423520896712380466453452684157468643239425788656599832907752878652213459179415065037908084596038290639455227311618545962102512862169783590856743366352740927385860768367523058054196159939728831163388520283629817193368354584020972670870482559771620442321051026477567870803660128759615860441300628328160500543331914891826929887293545683815382926306087446427534302674576684905427338363956282423369759427773932348809585882600114691538825158758177546865821779580358498192153998598312118112314485361263049455617359783418061517099922590762119019672012171595643287223007704842137239030606831812815268635641272292345633884554089621604186149415610274175801896496262355128535330663933917402433882698991269750081318440628314844088826722856989099309583954084856063800552545728438087638912016276280163372926999343236989053358851716771391725765295097461151518895443454846407941512743639858166756401705578845683731863580500821624783094156330105266911642127275160406510261770199099734553104485875938358678482304382605505963742144936231810761659196987529914735618755632928143879355510949961604705616425419075637512585927866762878545642119168679550362910891901150572391163204954713907735793445142836421221106790380805922666874392421703843086202899734687981519201163511227216864327556240108085135285692987396983103119553444787424131135799647377351285660907505913660238819895507879902577123217260298280224530544593198959166048796186597714967205845754328562282363549267664254019399740997610811233362527035684722194673077343757600259958015428735520692539331222419972583616160746930584308539291496073125367376121664443329789239860000526672312385802596573054704322379945133974420867582189890661822434284259440757531873136213530079568717877419588483205366178936618713816916606186719048071140406783623606936808416434013843650783165961695883614722050681619966064847279707572131719403866460913087100299376924736523680559282751424474457667853938221744218185608455015852704563004160024772169863875655072513176034733034106849506031457181926205508992185013266582600779771421182267474978470410691815597035303687995847894915353172178412768620211904587500270850389461209409710843450253854695295833739772803134144242163944730493488573516554358411303106623573106350665931165337549005972434016644421351322921330725790639580650000437526967313915625278298517779503800948452379506442022352678976222549690818485376287199667046417135352225103563030059080379195131958332134873705861138370213103154439500371048126793012628224486043610591386849700837069681341308266047607759555920261309504133555412790474484017057113551943616160360191118932244363997312529776147518415984803317005351639058002347667109757541315294955775220888733315692646556590772905547747521483009838113605114376338240778510244315359446283737233199304327633125832339670543833844778545747108482531335391632758649075190252995683801726718533765697047713348008616665889601193037746370262523813816802876953354975466299147906188705296134854326565910175552682977075216562788700439084274895315893779050493326408456462182007705677723219019683630830531184160657209793693828240517103956339163154017363434026267793253973943572382099081627592224454123454504284595140860669470937420098526818301490866140584389049904434381453779989072036230475925246237149953508741483206486109536377292731039797944200242497821639507423951919730800346724374233283697827327013211747503062746064896217596010004425218470641514024713320894889450063049084122172748132323978898504174481126479142559656726323478998285319852918166381520181866234415519263116591185048026278885561182445116604681882639344619978777414361878020770119223029601763856781152238732564618332995616632159741486729905305356750928547663369790411213550541770520714000292803685016863923297072063860727197841080583272359900767610679368593186742999327482033183702678463088190061123100386151642503042877719026053297909579070510602448228086898704460950157813422301566990631406675071363222165072717511079319186595316744034927437722133882524984655631040657363668699266550249852058510443354380772498934532887545815812727306265450072415961003753729997385865991580370881175227211043226694442581461314572309501475822447595011669581274440040920009786320559293649627295477295636419138949489489085109586865585783152643472323185178416328496877625645959767403678669613315206739628843396366381531903954006598387880288952746517981883233016858866784997354249877686143714697116126078511705584312606652453060961313430510724906873687319643601706647007306680559014324350482093430649925871468851211414390889199776795821267828616037637859792285149060603631870637218793927297054224298831380649254500837654240124708262136919536204647022014052737586093703039811151646810652274975007640742628937398686910774707912685251527012490850982075646188211215645619345930665261536298630105706629915939646789399784558020575611970943202979828494308315282245380165277467598765964755169410769183636123912784978464371277202170825320632281336228661688110913801308018033170281660740442827794676452028830675514515576530814858530767543239944140302724557102692935776750379069931943190665156659525111384736157501639872179075669319049419782385064015363079743918664416338187940691795104654531140326634515170894036102265370867251204240455835212917017629341781734978546680993566423468547300359649456006713831938214639705982555428199525028074711679141454240199598168880811007918119753143006350244496946652713932210920338190373664782904251851698975018575751424417021065835784742607090223982708975993350305580972574285494816394241464422234734333329103111487905335153564195946355556250273357051371516745099817070671516364326732418256952590350569310774269435971136049908055869032441442297055714688535358920671687715652807172565674495768128970452828256251708050523840733361990047277900327134509964141749439040838384452234671625822696720224380953203650803725911535404081643969451036797743844954618690416674002059849647504728868169615977530956997864977849217919361806666719611456230114522644964681183395880798140104625169303770869829417509551906329276005331819492754542087238414388194957700875422525715111594388706765692664163108760635435630510514576133752720776059145483024609785354114142781556815053538952798581706047883879179353739439436458052262425371250147415297524459437780220349753006672982647226522081831356519592865524863478934121297328256781072846834671544575147716236398908570691329670001195985806168511155241737334444958775946200784781078734892172743262981745661445757861035753167078555086097418715148032296582487718915156503244201764326119711867356137199454369251592640188857277027022232095515522699456165035373170971474831003858381031397398733769929472365780863810700705329145532380632837110210165704096469710974641156346486044908571209826311311215933448357799665315234629695215718047428063995232197610568756264214837258870955582536546600072003392535861302032975406236118088881032531852030727775545740348447487779447464536268619045525593735157410575879467368652615698030672734985600081980984432295965623344781037621867067718011873427416533142538664781880626800132376131540262706162075140284324065222038800373461623612663092676702928070285471202675033515612143339359253090356708365671228724470430571053835105175958049161068754922270142525804288384789840660788387296287524172892612402555195657899278433548367115098487280705488582343916293024180926416993905410564115376440688565926224998465050220426176190631218720086388654373558741328121073422352859477603100172776005008584519066362421504124023363516679770944190892735537344574093316241239374795665111647860602981464354011068185194848825244694618598113597231516383434007275789449818403279984816913924243055195643710432146487041647696274227765098807564867127683152231721630971385918876956987190737875755507030286554534608209640564156150477351712288404336520325669464083332599862748181165635222209419010232846962213486916105979730648943953782033320556064202450747051171601960780720918468948690823532154380007475124482048876299877231706287343719043632795422645099652927326566413145473754640690398901847335316642590935451638238419991198242092601022931017773063311939803981535522543926137955141660854465611178723681720336557960320598952919724708044286918442977233263963867931878318269048805011515489923403420186959733596394584793582770594930829734697457782606038780622562789396199745919934812533068670357227868265117695296096585703941350728343062982733907148233273871164974262455058518888783337851282476805407602997201203492765111431516402153505033024052855568724127615035104421463717090137905095547666670189317913743934992235191689167632538175745968984499170377106398953825403395886115518356672701159568683525199908863827344684479299194617375210138405020506361529017987095507997330220423682715472892061842411535731447685893821919759839992412976646684988812861428933410593617691682803563642455610330786493613575552912183486548679653908462052706147389513037187437124245116951037738359523867483959293386678795996531325617731193470215821289140806567326269486993079304019679110388149715066813170125418780414294310389081218325508087818302754965529935139691948551083467561541286759399437058026043996846294592172879709806685361937314841325810541458375540783552838419903717290915238439818279959044359894152399808888473127515329491051994644646165994951167916220750744365106154461621389112537363140219114131533954028361089237387907314537661416004075382462182436324231554727990915043077880957238098754748516187553692141414149098783024884172010418624743323017872638612335663753838800476999701473897281474301126385272065055121555620168707044505307903637962360616613590513861824568075753480455341702218373932323477801270436767389557752066411814093720382227623177946213036228457645996808933847809811523954671534227348942795319848229465903401988875738711502417444730910256379444740808948518603177167480390425548040056814208620929334330644842681814939446934025662727502047164933785120334919731809612706412402242448969440199912052545378421992732367448880366381980367912580016011158383992856446787271904918980035999433078990759714962952760164928798094763298693474325231224678324331789061361084257568399237266619834643806830012267503400855372314436279517401580967042694251953653341952837261578627488187074376876625225009608725935173887562485736528171827417682637646059291042798167905687885910258473061747147324965649461889334100747524338403452293950999677572311083417718984241625334235294761717086095094042027896151868722819969168356578938233311621745760896597094739177862466204497748047011668556160970261612262697693101612497221804599877457144929418718889179082801019246115876719525971438440101908319250561694457529135470743718791354487609501093835303849980555249977089632384157895999386692980240089977722179986295140788277737142589649532895862147436560535133719155882727532797952620604421712477790707625341077726167744008936692578724731541609444467871795231495941636656995884340575648294685616099246036373192073692281311727295747777386120829372820649774850745160135656637947159327987017538627270410636562499637470167149736937033676838208215052413799778502000035585179427309615778689566261576031863458947543355356285688173454998584957404688137236887798847127990356607719119711281942526041053797728045764784603274987234041255986513475481324239569761535550027055707608384445013563134535136378780779150022413931953069002861736115239754592344958147501322501577721530477462261792975224890817608975273286644486704123751490307857911670966167695401386756761615604626051562469361314804501818157967562281017821154958145520928546497480520564056140631181707982764409465559827504585247232384374030795703157799450016834173450130736297368332499329356105385756469276911294794859472603820934094513484007857626354397151203352303032441154461338643662870736424756418719727450638778732220324928178491909178767563778488597373447516776537341648608808887292757397297764094176635757688108212712784898274392679799340947591557530998207992265515041346672613252311709900024833182192456024491348652411014277858406843159665644894071026084890069305849730174643403783239243322718654516567044964946918530540596059580585628052785418841641536287229111665324961247058574513638049807962611272922977194976228250215495742621744903210872925671457665212443703823315082624645799252059798306832205325049049752841536059911602185135715541725178495924932691266459108470731540055971855439467183286739881755097630569346528562195279213079520201905712027694250670679852815523566200955954930761057231804974049044050166845960667219162871882958041221174396210475639647820528671502595980264208510333719424211580907954821182549351997520046110701486251081740067841387631798910154084512329543183745494695979047817958504981353815946476444061360385079117504495444583452690911662679444362951682836421573964192957503405946916435472343071304557780198286610247318668009126348060010756787750464464117450347887221455951721744753144599409656458084831999958789703806857821560163152065753086040935780221121642141829589440219652589842227811637519142938928327453431566508777851614635396781634328110076655213695944750430212505830072906922772157088786048005624037154435807192471956318091888885647030988325907038975985664487015923169012902724427936290477900788905273416000823681297761527472738497297206585506814166035891648353952321642095767304419252334838109799915901433026378251812723706335178671532666710699216449937613913110124181252707844682983266797642935366450809913141651662366217613673894406021121513419911583320954089598854033881795038765293139925689856549952000518457264785719981827406196703788813876073027233231282977742203279855643711127594641264821417389339197659524473350674143735331165229042977974310011017567477315807646449568453666156989182957796843064286436934401150654469973234628268397428571053279409752420612227494454517105326050197579575816979823887637225423690285840508669786817599470379270144117405797045383211687925971653834043463042910184234699012070984609652799749890749233365741635718559645310371635393275048387023943926901691370750694686615631561073406478144381123619319753925255833506814038883690841677041452784664645061349514715084223294697229320584111723860390234158287530879715824448114105728696682565439398818152394177445814339891994095769633704501712128609090561563374783581802763977983180450095177680499898012469750165311678765826785604602057662862988971830359004305244687395896299139325572704476453065417703117996326289930737968259232597757288594362879966007072249245054501839355771458030379042935710845180843854403254413875932059556745444415673499510440420987026202011821282620471148428850616705809576878382364345723701058177975393551169646573405180801655265990554989325564767599046722042437593426006357428617402735116324817972485418645260554778840934581422391359310662377678127798947275114089933168412775150373665488615834504855496360018046032062928252921005362652156030764849959696766876994513698730438200433629150407612543089159613960608868299615159380295846957971292557940576316346233203406980222665131220988830277238285707173624113210389303409445575373926486117200255526633964143108161178544765826507721100518498655054562713059752496971085881858195224477891202944400982907528276175928039680834373524248750590089606328952140526358011471735080896714129382516209375485321449288678333961637545896406598601291148922327818068418949739115565229250163520658119876559615841552951345588325040165466004431612497999790590390459500007973370837897113619237482061479836312937398380890351468307061501332163618618793838391411384071477440602852619601718045806114807143168173443367884884513661179726188753332900725343984157823472943043242423700250499933053598612626100098076432513352114127881536178858860193577816703922895877520483851979650714572944250273603912519131175567956256578991893281459798728431382827324195791511507937973110016899675260826556424060272751467478859977854180162899885449780326225274683443517328989987137017516959260281321884077185924637790478111185609789747475989920636122478440694172948383599927063425550390838622532348962690305789326964171917815402317920465079460711144455484570064056152185196533028507615915748822689880131305193921227478727060602078647972818858621959268302377188326411764555731439891491679490175838398280062452526969740601222065450737397616589974747794182210910344793899767433086527142521183559702064101996563984991069967784536591124342986377284723693448842017215088688742449904781857126620281717027544614332731301547568212548160720237962204290683033760834813515207804940102759503896143937550633650349080494586515974022751330703072781159502057288123040840981882744581149889032483994261456722486721331464075023427692877189919299468759269649782663794247313769738380886064257214729954635369313075876688141927059172174378652578045714993874106101993803087857310797365508699319118466217258591431626855918900840185203223520252322065927734720097244386460561954616573106090048743704295596583989621225851231446649059990639621167271478405950852991614964213338322094548979132142840665899758421937383366109707518379357733787621233718545900418577348273965072475226674857729161864477458857037149293601342744483586428333368217339668823505645184738690530837282653696739253401517429882635011789906323773684504949730003887522642628421214287935467335324654454576807378057285311379268079231089559390959765763300753613887340470075542023824883377789529719709600566610954414328059737799003317378340997215092820393340430625448311111739004278086076120153137941726325583724676734050869667137889045214613813668577671202319524507758542207673812089639899523447640079569906753598690028605976820297198996127546848168819546712749184605350403195781918566461811877839003516699297139624004948759145338095292004188956048716634716184657115371523802900443576543218362467577423405836014639387274444737826812145537839181358124118431271137430613458079271781349731200403355281797183404476763275383071423455283381158999146725341088631972145302354291393986340244553954074700023751429807220362746145035135485078739256421246546574686167539579834083817604966852962877650851019252771237530589871101945237119796890494338514124332041130409183396833218942433448443418437087747860455081239280800991967805553332041853666916291101951885840242042163036380197926614386835396879383786044388931499919535604247589476405836032077850117806881001316471367574459051536006224433222549357834592833963918012632112330935581469381726737137382701383626308019960452540128841403609377588769216438826498846445212567529998063613063422508932326501646599634581260293022753140203573307253949620914688507084859686606865693012030894451644854745148306683932625683101689944657454161499957477069022954482463508732092639530282556962803487365070387538594467813808308519667856224307466375797364424345985080687933652847800259327214354272023885381158759854461604307769688750178472068136873225695547085123436988645007654588656721320694561089979223583072126632981838194823675600764458786132626409957621779934470567007232510384517450863347623824136900131173736714642509632343656176011994163193278001339192954674508120397194403929046436448061708441151864404208798720313224143842100642122678235117100214918709805772632362593537279768100733655172300862303576009105226085788676837704550979587222076959802646660806573245407326141450267987755017037598202844096670224247597299879199632598378796228375565552252990225822253756946120589363977315300937690446948313874025596827308520751786970633447047768653758461867698448908323099756117326903585721205974095391457961579315700700291720184693044984695844897128435342825168296699445858063514018771107032586794850365119717478091115256238296289260038161103370635003283821904288621076946711190524973825267837563167952519069659583324996618847164747657501350379273601279540850232722629036694569396347413850076280233437221337405462749090694027036215404784435100635339921388955503207476485101367686050389002954954190764158044040079342475574075538212599405178040086088817200215307717891536955907400855865825523235174928548958894225321274484799280162206208458627895306448329828692972958537771987202890524808633836981022694973597552356235329656440721685164662167751050950504992992675984412737168739124726606292084932994671132900081626358376230923914887577931669321743808662904481009915668216517325548549335120794596281125092168123303738988935608920242539834025373772500444036552489478901850770002654433368975640490757118319230989131826321297398531845938673894956113144890832597464177502612943044755220868084538286951037869745245038908159035437560242731817980326021118636239580779895679066158932241551468410695424740756298443351325639448651364198380887376689879433298744930156757954450935934001213053748760330829432944697287518060705927866637519420303820255816871033245481221338389694497644348423320629378950133464833672962479875546864852567508321655412792658819558856267704039574591387737287447073786524841351169274144095743690813351013778649358845931323145380037215536577115140900395055889136544768577803991216209489998991692181292394874083121241625861265626396340884614372888829323415625925463715369861212526018022347367596807771620773462813339939632555548934438414615366800123567582292885293377052817170739135627074782102887675015981491178156073879285718111160373940008652708014334910880813633433117088912035015236686728852643802319036216091908271057618796220560321572667894624946542308337753280257658992339961131704715487118269370838351981897314861304060013334066071633859604783020714634270391763815645233707876460615394923359589343801727061746924246513258400788504656440491080848433202580865179539765241773239607691685307242850620360388225979912890241367271587018828652923264955329944629307896718888358995732297707375070718270309734620113036713372252258089800164700500812845878493567505606712317768614463809052650758064090826754871282701653411902546557574000704248235230004796874533141817058828634702367742191855417373401818091193187645315480300475767966733441097096397530256044134731052291875707700146936945103383856999710726475373996230876555933933677702270124148932974587064394520433870201002030286139877351616418168791381615159738869254326651187608789942939783964562507313468801029779220245083334216456722850359758279997245186465391746088926734700556400855503232448191286835383725472190616565724553928714657842233426583039279575118289925710922764983622540475679349022262422062989664829522542533660307930397680820541331930762491274783067905683231067017276169783800242849516986322509161199187453881725207182735582211931854718595313317784088559844227464201203234488312307864831515367590101172028459119838521394241603549941387692706972519107776224801220867477406565199001681422042146363792701118438727190418336198523726737794806471643722323468026079386164882416096993411091367411470651291139372689128935887297827621347851730655872671547732500174310205413089240322077652877823329208072249963153749527887955551417110768773393129307310916552503912347959029998413268407090348707723293443892287240954044858099190711515737881462728150917146745336457686717529296757189127927864885644322710174161118437710240091780645751096935730513078389283016979054687053148610944584103017889932148169162041163525783240951374590292712476846011729629209872750217245985955271384426108342453437391245595505893185535730095972672570364456441969510634531172382007171105119519101802693280898345331601863528037969739901146030906480286270307785473767955547252762790389626902158137135512239997439637284946857215448587482381701201601149554017199128662795100402723180587338468697797572392164823334753462856639070061497038297356469254441434415331540514768900379331913813627022473358931978600767595979461965111658300941746442513498110010879243949574569477792271978462087812609047584893401221377048668559949307479715512427279354268933915568245759161855482064433898476853399107371081038090573334060869594859411106663600504941294362065029446174475958952779110549877467997974641371234101544743038151684438634215800060787281621553928230667183070204544247376960000029548356805101850440417365960322465061693792442892621203354171510940621142336716126898287062822442952378933017454175147395991081887153291928009113151953969387706834967363630815838071729886802260734889165415629582483344888261135663344445622765074555327019093741111564781845771181354417383047051479816679511958187971494276370996628545226733798898999750695573525466508322604369434487347294512827598129257406286023095781302437030743253306223233241540376253544367022559581558909424870289403375362983055956644978110819633338053748158629763485580547670617095119163031602302576823409689522072443288878339446920519596199940757224129108630232253594290012517194698422145783928137773369083152460415287560912696334226915664808684560625952201582064386298469795669913410655535575762621182694591854297643780889634442598884890011267924452658300319566260860711117653550169084498931797974970254892019920271973479394968699203402798333017555190564945511298792602487556355950415541623250223999124840734382916584530509973634228049972341670426681131350063338208741880931154299112920718485318788285162440663477759044835123786983761243646619768123157150046518713235589495778483092102725816825554060930736995738518409705078277879828837297427047643613602797608504593417356795192572030209935809433568537622940545157075032608549097829372392742209499009655981514678558411834691245553763580582368545010360957402516175938514372166563698408126725918547313948856682813274496208510814895054840605655182779294163120653714215277924126870702135279519199632732318198639955972468938914948914894215880298242035505470770544953072892319714526291179181947459271017436555172076762253586181944660449635658535829549930220530823068123911214034158411900798259984068070638310179395624250339830354957287854452502797765442579787373035670381416189000627378554312668727199138540162300711006152725275278753179750716482123517996275054232631513349732261382091379645433068814484506572545898761207227387669653829761484557266236252863391571760769938091921769813319831029627488968163506291295913597425118339533751366670068198351883199736239004099950637252132723211236051467957381046706384234642270592309431619947462166383942024228563595994220501443293469280907948733866913446188276941691445330746811578991619448153811958511098052110491638400804183738044492618452598043766632566788222237546126744480495098447571100565799430484422881716405477561619671936171198361983817854143293256668773258683081622418527301455578347056690406938180096299330086445772636453596696492699335485816510915529504305601138836912674108084394586803860112524971459678325230701392108174933997017874607129542544297846665744856788465332610198926867980911101912175103969973036983356299049792778527791539774504414334867012801867783033588901596527346266533158813857210803238861411042082563411957267378011273687838463238852253208974724654797001159267750294752359249541945250397935058652084501921704421231796912612317839618335731174758543483183327838583725655723383213217548006948794203477413626570668559509470075092066507167966127913528549008509011761775350972732839666314996608743274494122430578006038021128812017095397703713085363436716815887109585773916496888681578671748999143872601989825233074972229804454804305811475137006973598424106259218250145201450286884086096614052697441570441819227312478968887939536117277111051814799257735594014386786180965412396794200788111855344014547336427336062734252868473174358284279516954146847354148658379018649086729160923011713769595453642263289077573051861655424081779300711747039444420502015799537741156332896261877624620204626768530361787253368471225616055322548179193112504878849963808823710350357318901415397293453439446456235870154455573433887522646494666513680117963710325593934850856854445108939196640461338469885939256965544418050326656325700798529279983122835085969007333130635146796065666799108379222324678438676023706989872388455432499039449919270551584107635772934260214267170419301434937655224865907316969536361852279862172569453633541630119751435569964888978503821211184248659638056974819772224560005324518033929877570085595511508749606855004586564111571363227627709784007510285367675253885221701857917806160322826180986408437259808960089978176481294051168331468888056480063668321416496601604919332284982240420749259261635419219873193897570555814515583591949961532787418981205409263866859123715533845742298875479295740747122509372681892956961016942878941521284448328828216008257276372974662194701456437585239424839950634911522160145499712730065136440135307444790106444605578906740881401942628499401150593016435663588697234325652100317397596309894789718313021546490615255081523601187971939354766371143012902155687235063597533238428405874503236910402647358084016011718113237856527775011108920818826206921278755755743619075160846118855141443603259708033026224176521428111481089209165335298281525884838570697021763023986300430324612237112104693072417095666059602744028846621222536695371739106826656009178703212517932534778639437040283569809544270399121765006899723241348117347768974558746766440999765679665460691124319747176415000706929814807346793799122545492630943080642059832352334891501096009375653129830714420922834825160381152324824185160165760611420592122168875499371270918144573976772689546596126648207741262186959178797790561868798233539870844635673629182477212702618006163411996774372077687019153839085301056080946291720239641082113483866497224724121566935101682370169921192960268401417714092438527171793733907435387854075050856294722112613533056344372280765300972237720055124944735047164873730082851711180606574800669465637547738239028553099467874655706120193621371639140716019669237548129915258199438296550842605398147014089188755466910373730360537133048249787718398428788106930507424017309118251060630783810871170086043429699949875973970426962272859572605619780574833426310699507554692945250053315689772477573477499002232306746352822375015552466990774215870277320964142970071466331982254182188345973391241644753372629705686902224721628729947136134657595135017921020751421144248286580017798995840605775594652953762982469257233302237394446601146414681520844771635098881671255038252202084098569630485311287989569673438251138819921315114274591080871869835495385006501281336032788527990089308645294860320450217417400813077779448466414740607542136442150801380384769623420573453171609889787672316079991570212247218203026710963789342865800098265158611271968835870065081465954927540519990249856285851614413490714929508793885518626337354236510263027938615535735833998033284861202513265101922568856991630253713313036594583337016124399702114769653818031224610411522591613390337952977177919338050131771353957302436416397849144418790618150557552583300280781686421337175435947616991666730813664768234925552653069296823331099102535885903624381991180297761540429991936712613341794914416653327393556280683649158101889610388959779068852893301339463827186478041723567383193396977757755921622644601389168199598118608087677294520768275558431698030006759741735725582944651375643901378095364391697516004325488238337470093028610244894746492451588800892815919323752720027985226759597557805914348003485232930890906813015254561308069624876339397136006053166520821738401828195255888353372401384145426418050683897600351140534322412375607696724294407189672794493773077205067823948871466491527000800492613799926440812948293408654615604928979179579365091130945853460303291183793662101378100234805895182823457256176489767923244296707510582178178204873409880734760505514623366136206550633141284974648248563773673414134270827558110120325845518872711959486178079423100525791670444841328771297652393614586953500668739899237994593987133409957986502320900056705259526652222248290710658160002117465149576374472720443895393857991476846433454572425932470568782386887665994656129577478488326926338416143082044031200582334838303311938146070988199326301034434987546262708262185351224494408164500860900458492302838153986350594367643930957184012926682902688032380566134283804397711342473180397762721753891494565864780739675375727544584970536893655557096682907465908907122455655027604611468186858363706622249224512135226558193173073035573602525498324916620671429367347949410499455383098270399321583503520197362397505103960614963406863858565358588710136232720176284487897885672659219557540756639624809583936911510180153054937323976732397546936826276725937387996584181088526008658320830052685425546801177025762850506124607139382668300686372947343753817324552804828883359112759394086729179943687510081344355141208649992732894991606742411328244932587796953328731614873442802794278620418591931593499156679676699341162649666484304814001698657861524865050004967888186506052867432125722651420879267316583669243310609920753162411376619757378526360934782738671660867189508241569773868182719730139307955518034413572303771620951563810603760915871989055310794058841661024780515455238715510146711175520639272662229232484542117676122669853212226475624656377904960531472030519606611760188294712897386527139322656013133102580957401053849381725168872008548586628913320325179456133299616137485455782034471594166427272275756803967694495130220568495387119870748868135881815840264564428479878709660562032284046587454331880101369884288018565332378886987384678750430028341553403363815254514454045795161911853687697761354322055052571999713471827675327647851614278536834875053799805608432398777167748693879949990506961431464509647148486300768677924455333497207280296178977030706236465843892176812329204415473282948486542338386548718562981930559059532742528622382094375134295822712864542777826510588684738556633243434895449666815533522598335774671191675276943931216768253720831926886916545776029673750775238055556700725155978852077142104936742409780419950354340138183507737216945499934818479283183068244413737080468871909960452992669186324876886557734102144346778318804364187853323553758725264638428486755524331418290092081303630471328330812758898504734673817891869386578360090478774854069743547375619274049946312250595854023614280439175176888528569744694139331534675060226268458261290368922471606563083794190617531651711845958420630167117707524411456265646560201453067550837817824889800702116614684289031441211988587843162349517111053851174142565456009413424174898964238263749805444494734694509079433827588567774700755295848795285721053547486123691808743651245672585298174000224950277053713232638198552624701811269580937444080764229817956331577791956063327508079431045735072115061716252606958691295490393441974000551260597485030609153232889988038537860223529152288551455155780376166679038699576146450513134923925527811160362417986780350379471649550596594809924190880710021529295925967494698239904915532785217015916630406967634137865754063115377908026540893708272122148326956766307471720150816035534590735825506502985679237465423858750540309826031926009122072094569492618586523911137254373052480896133851832980353490683024473399954694355845067675006509509357930748573113340790374654660021980786509676390457489540972240900365960436716508269597092537382917796712144963650586492611930420077415592872679346939968746280963465442957958823078033371654466820915737628160611484727291713725773906991354099887288779861792690770405610638322113090876936564996326494061709464561199026146621026870164491341588274501140129384597563895872799338831603444300858584941185045723824299786941230550294310547579558191938657705416756989272142497085172756043809442862739564642033465713782515149836061582086627342709358414696913982543558826510139209491412355001337491953901941279948306307907492917282557957307421845073268110613031440236031085099007592309938395959161761658260436891361901858900571312614599222960399029426625466590979987240663011198713886341304115378222062965744706633992277085871390172497748383070154616311139850406191918982486608066297147494696502599485313082909531772432458620440392017918186154248664981591065448776941422314959666162455514877852990279233667617970620357808936714442236307237692768351157055999225261721973771964677698626002103696950885992808686340323471642380914146152353011126167718953595358185520592554051793028091875120789038793919621917398894311104360034626640678580755932000515936998993900724030113004675805475242805195397724042808846914623676453056004052744111481835713686027754928010465137201961270120677368169066538036336515064739464291744063862427934336751573096654984885731301134228174298555160578232724128664830001277377852593867460291005266840888871073171736265820168819029802404265995895124881791992442611788487617223519560598555569233869818928105353718766269908175914841948240656189134036513414264104667041480830637794256965339676125289972883133643307607962673063471595574118873974227479093120999023991983925614059312811112158496719416097576194139201111596979364310543862269125188013828808354016074413290761484223249945010437673097773650854437936175318342708634924825641779803904030098453484451385411865411692395118766855691443075772576619988193326125656520455487542037883781327200254681679400242231177490342312101633147364931082385282922714761058557181980236687733977934913099800085806424790055616863347321588787966891449993944498560128316345341398169194938167633653911763467110063502100177606943572590600790684805441365187877536980623238042129679996933617048631119054603257799127579569625740941400121205145371989379035772998828841688875575431487216165092165289509566643348522641064753967785454397533446646219467287194760679128805201882691575043317054394535966649214940077765559347674362617268909927939890666410079458454684471850131399565862957511065240105534322992998870223844171406884217387755323870174909693032203397576036015647451709232254127052636923840464461774186223915911700555819697361101882674377663960870124724058335495561256303208329749524124127554743158403768625402920438940180319102187068018883457377177803058839136756364175241516195055554881473166560977533128508688053986516273650542752918773045113605035044767390354748128730187455285857720594029504386990566180254046007896815384962030889255709089833525113096235547001727083178465621275672985663139140077253349683023497202196221526946119599395352004180636762808697812619300504542913941917388266921094230427187954979245963903653182588754210599397957600902184640518183893220222088146606873475782663962927356627688235115727063992811056666068560665502256284534343910784364440843021734730411461242636844947081404428229979381957861482303664866488408860953258140008685783868075495926106756906907205912660140686524460047316493852142542631584702671073385896361612494347429451890518536911359249867946262933685256973315517405536077145921044325561179289479559876309512657858459728572886643800659215721579452841319300836591728257844079603267893095815113650307324388249426994795355862202717957746898895853244961188417187004038628998180080253083302670088775276645941292956856904813115269479585596943310663425512880812828717635932657754503189246212789473420699201359084943588233789924101732824673749142664239547056611418162386865003390052942216662826939253877916800581539983247360909147439255648723062129119366835040535739508392504690059704875791585127387801217172838850026789839433995923368996785577055338595398431026438932314987852312209330150092729926324640214193870025460533669891794705949586947265917997165452074294142331012782835074792187544864723778787679445598643419162635093729729027753612128617304429797920161475640212718913899596746523574992842069319024617415987113242493746600129314253546225411335995285521912247822661138662320472442986705591286832090600673390093188892666828198105911930284414450491222467511410698322591843877323163709541075984724713843687182139739045126290118404047658288856852305351024051582705778225582613379680902693815534297206816621428677323415031114838725242981983475263370206671256270904376435607988418748068071673948641952594338429806701022109398077782307467870944379884357284408865122633690603866855891401209942708579184603965750767535017490592102054555998955098106062470934374751249850509352101269840504453787562637184938909034168568796803817210485379048052005303449642854767717799993305641734427809918319525805076937275924347941417707000842008722935803224278024519743923400611717265937576135142238314305058617912287120349452982536092410748666819129302228663529143582185966726349634146874473314123015007326399342591233774919528827140591665035129568379807610869986362856598158956519589029056416233958592254123191233379813567292650604789481309187524869725797149872539605793935721438285245126097759026234424456627445087240744094420917621649486268549547171598452678979337428670675242914656638268766430724815175516634122287046346881200037386674017584897419373675158083963613364844488272789276572535112905217133059716481748983049147523810872431930268143669964316875218893555499196908495631890264505169063432779106841076699479922833351619386027861703802246462764051811641984089923276267204059980633272973690895865240850556790231663140192849405397509269854383532333173445061424960827745894862825756404266379464143797425620678641815556779639442914577053125735159937761851645969774606965370733567453757755865923716400131038775061081539726716555977745752623522445212650698876087653695150091917686455549225731140164269935227199983830321353792827479454730574558974785051696133491399990381173561754729260268611715956935147960109712052088749763501669791556661983553564178295175529365341432314169186221392884883239770939280557776124827966893625783448031174912611152034668226382015576921132031684493897877991800883832403197512723068189469816910882487816962244156533666899594475225716141135422024076458791555076281798172875392888654198905514515713679727316964023544508792975778155701126720184589354938719559158913558811221280669530105910907426736503139742556830165615604473007440413660935932254651046418093424925316585815653481523025987972538957305070206681052135360777761801547864565443334040521743939383333607431312618982953642887773460743203091518326883148285369488146557208127109609711043969119115726539356345207912056386512925196617961713568810923258314780488718103270168463666706514926478502786819892291509160191350177068296541423750208513515391503011174602470179897900498247332123078201014624983514241294238253704565415716486643199695990162175399576293163070338282658000848374680171640694894707519032128976832553220648072685350895578383146427990108975384411285234158547575053150174410013675132411444381269551971315705886788484112076675750204755680453628189407504780218669147639462200910129868789015317802385851640667364584731282903194801832568992279612000386781973247217579436643901420437138069363137414208928832925985136340496961698476819401247226449012620814372123101776240077072509318277198545167025586157126196814519344942688358556659235050302086815120967224893076432928022409539696296905872307591804271769740477886131512054720224698305486269851588103236456646379676737367639115843375035887868741419336551410732170910721786037476576840331421085660965688482825239208746663826997041636009066186737022033149542423502398707916875354772223192268184216876816507275041444993336356940709457621992896462066342298090919442730690572690410216009650028354144122852103714665295504873214993691700447616787657568849027422804353259060105184664155426778673064816611196486194843370033355714279382288239771649195681317503572865236636322850770353416379724515286457310171104002802994905588856372623048269670083976590390111014310110091965635786674304114674686875518716926598471844435694596889401953506153071586786737613940236207855354030400630042531643862276490348190618632678496407233921972527018554565212486373937337782612944013921471234039848996109842900690808291564082485292724781800522941040908871234707120284447590833295102823215459255678932799436515372391992413829913146689525502045163378840262071881847088334860659261935215667035734366881060507570521352645583853201981008569935444064727010080591869915953111771545138826803673622210039360989397560622547913818241149951036938491732223413546220761221711700500104786648606371370435520086725542775327964560312941321307089306878558866507209517110375039708459759500722490093443988711750367027389882323746159733590525580070235443961294480305611233110919239132753104674532194887748108406581963375754714344813824753802067525845034672319228448645691273333151195911138464245050554802699835621539187106087007897398659407185613137022265949867170565550644533831817718949292934847184580579485088095818450486416405674497522497131640163948379670682222544602438204288541676888254058196682246076336022060765245889762695042085801801294762580257220472922348890676620962163953298789133792074769607205505756169880681877574989021738482926105603194068708233300295803778229874511725211909667077097442888170073884565607251096657867323740526352534766156387306011078524713289873125804810591528580097131515012611173828866085592541741390985219458556905158734552688390154631081962354457748188148286512901345730613182478493615878572232579215534716912304471749555572207981330814285513427112508818973260133538025537132872951950427312901243623295945636832067325565512038843281970224299851819321415857491943026253325017549115324338108393968500252912049702561042019279357254975937715157839515440548216253500144794372277106490694426128316680443600395754479209431788641593164268053413472752064727838426893301642965062597588636354540157524504654665834492008686420773111656816532748122791616240152873431754850876451137903532974718289340336692592557528402648479411698907694305172995320809948637053257896066964771330516810184812554681183782415982905831227784158963591333988441776121199986157405405295096315190496308629913033159865587263255927087051216238852280291412250731138574829918958287150846881545854368414221496370891918417200824195361390908262704391021603486788549706460383549354629957911391315272632005577408029979583908894120857353879334607600827983320658825119604626221666239354177489667701917501104571635857935401418824899386433375366458771347382002948186234760105014786959823951906413750341381006599142280261008920294780039431558896873467245323366718764547713039002218628631007503840435193649114292616058241608301148293293259848592954884220757002338526897970896308713624768560742622202546701543899136473594587666071777852163910431703108431681450733484671113663940283845587684724161333749204479886358014683142390613530831949271580438372802172701868873692681153395265648743672930911493194086229142762262141457400687775812214091351628248942113766337106678533110463605507757514732782958046671205282995356436130864769866208902190035564440119594281667714419661963439312816658476614878077911933591770313165354512925761143883714862588087194324506371587892229386787233687352994352887271539195453956273587255459602547763071256461089363966569240198220678020417330003002092116189079531090804611572961221452598413482069063342143751946333269066400544411360330131383364882659632499708760551997288909767183962879319511091306730989572944615994452372578511593605081666476729022385996729495331380643387715717308599137338473635421213640033163914730048125432043128605331305396188960480460173284262984854029633667072952613814607286636842154055496067680932074014355458988287447269202691931898335918752656937982838064212820084319604584504809604636407558562149885260762102216692404026467447706936063459049770519079903691307831559163765967076041594949526854549110547081256414417624415992500483243651034742403743499943513823284293171352707936663976938297593174005838957999537193211797683677717315557698338416494334005885767110018762903586177493774220922165313803326770006254585980303261610686179482405467774595692716210023772125622034634342258579295020152447062839461537947668344017787533871564516406711293260483352124746561380915253217926079747539318520345915217912612040962727037667492900048739095666103667599817772987369318352310347659654452132652864309243789219094037228431607853966670644479981843909043707672444158302067175461908993666132480948720052732365571284098334834536828472565609045975728470696999885241958439431171587353744857154402023820339843149855310218518243430861168265526590871629271265510409652986223331959753937261525907862577430393856971140687641678495632808373498684397433627416798318112845892189820123158710059930823466168963123116226389419768305453564552093471130282380081962536250034557770178892485748569712908251720964794047033091605333791462605285060790527276433272168923879149192989487995731108740415540349164293483460275251209516454592005272559800179269626383106514454682129597282194509121808541954503844116009969175174612357272540813180814902756635273431289688220567354871783486241090893696181556089218485441512120054772360547817967866747084286834817690861909101798327706689138692351236953755985433024855817676389966300855063268928722898334103294571871016657191129428972109679385487578364780658220817727955291294505362580857106157100702605585794728087906399927809824878899486513182697570757962290930995200624142368025014819024582407832189816040084769386503508748681337705815274294607058200209721360029987339438957093715945711395528570166717696667408391914515709226146250684116010758337815587889875399290044459880413745384757661448486713780179936318491463986622612021569417843701656403455355246748154515090596256861797665978803565166840102544148971714556022733821355881866895800820989929984054042681578368272540132688984478270086394721371534892198122323305918799400076032165863289567106568816764414610040204959917507964606288711900806784536233225026983945983941805366807344444040179192145807192414875244881969708197475981786870767652697721162344625658687592504280180490832950822202636782559183228458805236030043608811410804049966680546258887010953798433959084230410964435276815516692669932925718978626096902566108168419263875501313671791286495275488543588494985558570672762413352240894491213608739064285514603405130359014405384477658200699886264057754718529162148930907014758800732280461617351639170975600274868890573304371312130162331003926703597612740660716593551845494653769524378031732351573708178594666861226108654459433126289181116046061317066464581802178604154887453089079120900595833706838168651627866163269310203868996738336732238887664809452412565436974138869658688117174551436252419912648262537143979014895337513001372391003809239806964101857293565166216360726614439927922362887724057980644242769682527168323488454004651085680967847596127581436440856251715022295754032975653880754984201445735196379858896971301493848727713980660291620153732744606228068464607747809062430898345937056755897203348750918183391951858604842404976188550655440914218134547925438908448030448702345810832205387687054755173577369677316225367649942538114961916993031907612460520034496649194685314503213838810308586949773246448681173807062927000068279216166005669433232471904290925187365105244980680348786414558374315684589325459229659460340916270029035457743295815848053312191188879554837883811206583445254616660087504454692200494349299886865059986222885193034959506134392706393636082467204599557867561125842728268549660038872493800760370453322942010109052469153610298677713485992677826177033631333982826045432779699032224989375748822836080887931475480500007921041590898445785246453989999826887654309371919012456557998316397135849690922543256943121122766718950239465081830408992691482915036080105771028667835135421446226539649823740322188133804694932284575943820334937189883330878381826714194026700899276943843737071509427374456917445702495286708785525218060582516272841554994537254979056995662914575825176557814116118894509958862501427975791477673438952272222633766617582397330157785177769172363009985738936467989279851081496163781370078539990336582655656869512555388849562159704969900033032668949938283559858905352734935878877948017265167105701690648536743577546256516651631023609010435487392169028642404812784961376935555975652657091240556124814445740907223815656295028169838994117987785171504136341906003499606901756481210740098884682102067633884951267354204209461949288647338830428328621825174959270215568896372284578292183647984402147389242423159176435189259943951701961440624940149647374215873641844096717398072987011653862799103078426009968988712570849889190233828113343865215975457193772345694707037797806817321329131542118518605536502143722611033797116213177348681147667630392297964223956376548096928928128910971719562679633810542021327744187493061129561374978259803506697103178665140206457989139916034863746367974961711053871291351390529022482490873270049174843879685809952841570404789840455191533693553579787827982720731414458309185185428111663066336468827403595491093803599222925525288453968756530804527311752102738510760168155706427338859683717220908854618861603669211024884811827418472580510084957665432454831682402235882694069223618998491088579589949860541702959651245255522324942552579936330316572226614003962406065666046921012063324239615026156893721385261780663875919444707264724809488276462217005600563180498744750125242919087333697192060668051208968790314459129953849178596531085442225310078811510651705497767775373986180391273382360668864216166666306361916484933839037450873271648371638371309862879497657971739851958396138682317881077804515587132283344700466360592387580103770340879100945025725122827575289068551123723292581871072210682196569229414023231159713151367008467629189285257879062014803473907834115654454578914484654802806412356154182904754288063328431882666773952656237466076476879149918227599719456520604773312210160120165985130733123129930102624609749175604839092978567484234386405407414319628431381868828987360803866451253798048859986397239922167696086601507307882018871262891597737520044242329429143388556148946372079249687639255527657936685772833791993428461498706462889800038164645450973934450440155409960789804985492919932081781225663579442765896879710064115959663810144394593144290241414713414909309531154141588542038624811507689110556300468109641991326322806397515617441327549484202438735448296003198546486905928028697097497073617823057536317436545629728186898641202311547748842206221108716109749390364310878105318047268293750600330599478389388244245775669004426597821021806862642157720792445416593590437437573905526625407404523749488176507974049736315539087389063344936219608332227830901704174206259766613216094347423562005353807581281715744896547735898586327283621119083976841058259895903766995981906746429102084979984054762296427541900273332858112082207353148701452802988241176702443362848878483815598945957140322529140907798914268961519826297869772159539366284794587483419937695905570114646376373325456959659279020782774290944533240088767949463313750383590745552440318667143042017709079500721292527925455697803640399578600034210450246799822709557110050027002878881571974464764917401366373458003818260691340894452960776778355992432859083731165019154598979707758848753442813006542253462083165514706003578203504381173926345684584953990648804872230758983371150708392951841902935866301760241860399467555353955650691663144226868922229433030789172342832494453242151829450661032013214110107113489077273376873675089315683820470190990309038683724757083245538442290277798499333514235332058818572403107337848566787560072643171301354861577516698914335467655685196716093800418563749208090330451554473313466697097361434040948576641373094403718507466526796044117632042517686466438080401335191663336771534922630002585735854158571687504215411469681217766902762113142392511438663121897959123155402468124364575441657635638106431255115797321633747385435891383178740118601921632320565192375103662590820828542518329293597911490786397406616046331605868836388649631032117298384711687025616729845158979342307218672669754994423791206919269153080772586826317657769283256116733805811854615336499424466597207309779225802497431885855156239583457048669583487412960868523551956984944709278785801109270509507532692478602795991371136901425799860404808004127465355874278243264643508129453269033657021773550199366650677203731057553908308757287499264595136159364994488058457567793605699270523332436212418506534234334231392684861008562137740968241815916355593759364952228569843457585786038471354083748557911747983019691867496743027117344404893557298345764560936154952905339402967572864071864103548857009045510715006579859276253412985648890052496103924770511265399608305079255593224951370117379533713182584260833983696552615833830057497816346582685807471347179603917221913395147065401405896981908532101238881699874072115848908507000520931937869192411454351671867573057523984681322394968106690477131596063359352568631916684274720297028384282759390644337098329960819955544181372289902318753522207016922538776869820970059729698272187619388255702197098620243415376586739078189438338827396717045947618833357030090988699463015136776315227645994671442495298486039929970996652257550816185381531200377056938598135146149636298724260021798197857236983337021125716184028354976236133597454415701700574454282321945372408982683820744840533985531018157703586708689465670978063114720291882822963438044346840185670299845784912227974583246709557446891599551075020017180160396542332935370801590307826511791554300886615174867641754038594679351678613475067877894845498037171100633900859564254208085388625674854876615832404164799512159634305047563908867029961558452175790376994187382860309249840191144922303712113895555817875420053364671278395485444552841925183660429070128770809011510710690039435344486896414836760369681308667108238800163932828876087816125248675317296875531931722833667320665604651370883161612263943448811361765390381330186684254227385529761850825444910543040117239409387794135617335561714999496463658630381747249196344330219678143057051282502765863188411615791010534351534210465092640419992455673794720439456695545770085597290452590277246381706519870680527865202824579220359433263669093352262732172309781567619832078569442608623887688190951714506203917029381927837547601058824129351992016512260640260591615804528087274104627427397930961771485469792287284433502111519963851555906629160748401240473420339371191307261478060249960926467117028379546727809528638193812711635986752266323715879408515111087471252142008359644134675607849356595431594886428578752108892681569146832330678382096263147225217573949072582838425644482116282041275222258245447978242927332373946740497421039812825637799202257391596885971612407842919589791432880101510130438371518624704740906278732321524957066494484346791143289636914925156284159824021467359767121661902970550335263450815556223493833716223833147178885977788024494812970723666836977107643829753777890598675045913430206711571494968929197446685365232493673818277204239745753825397098728185306562372358632491021704517311223346701627138237620839031892152765575973743715071256945108142283259139425935431879723995903769696002629576174002730922528986368068427964450795389195095470455499773217038313723193890432640726071507015598442094174902505642785327933929318357245121770498047025447076039422288526944408489931517947720950659800660934491542768056469746125715407568507417474803586171598824217424984140265035571787548411219962466175810739207745766137920348290538167935321835512052058343271863745103880706883283051464102590618749009962433330835921112656510254485028952885536680760083654557215912320578935665481238156204522573181843396170970398266988168859567704188294349321313791257498430479539026973815274490004283614009787475787148881136886340605402553053876247712874087567884131450529598838372042224812869797991162846363802323438656134345097103177501724173473158526139778573204540396882621052488188304455710412147873246388312882955576205974563536169005961304974813794233984813269642574793193107357703040733647247802508443043571878457206385368231954805605822004254796548856996390151873811098086249376440558141486877231402719736091387886664610372925274038155953587558302556921891538959756416722015190058004863508295822706762306611812794945549729211389400368375635275900703890654234857390308205593035666999368723299672999398023833638075842059182008225732989520778011847346803498845846128734494948092722247161684664549212866502183006246250585444629529720753054661149016188778240616258900079791003150125686630100097081909420990929582159481458524111889834917622689230347536499410256695985362286155931659720161249070420802951717333749898367872571465530943897299677406712913123104545881819074591951770349665269189936756184758353554499335391227324417816938440703716358919985373711952689365078019614131651337895745489950889736579691273450205673222113509239869197899994815211574317283664532453481145284681275324543573268634986424548824269565463612711355533157472897000672231523370781958025427905062248590043056555527161079985107228067777110477141999533890649616407824786769085720031574968609564791609677064648091969531903124901215705254137889660052987373417010940110613902877873850792658295042697251720646849135377597815033684814207561144189964561318171721126115227205754321417178128271905282682068380866341680626430062194897614936327732581799759005500181789704358970841173469473816996661768591648740918496315477571239027439515437282059096610917512211856805945910053949160404434519934600606785543465541200083512870811305210933549859591162210016681074491503991540251542711592878619183826424190930531548763847427630485059555655033826571064415506256929680607462938670383374480404911525171240138999043042882820685155929746154801507859410373660705401410055767734083848489569452047515038047250519039210363060111471304688209085826250915097034062489608125051166297418102611228932853709138595526870406967503724502610001733417796607474418742237458627827807339001991683657297410956521957831548059957321564888001377446235293231002463943644223469427933919926447374442743198112162047262349396006253171180025060989768673489422698422180740627212980350909590831918322647993290528461783804118934074424565071167559114213519058742788173200593423331352634572312068056115938087955981060050984036900916376818001791617402449457670012034370909544759527273260948946647494920866117603122631924683301113371417031518905773986887178856237791166687865206638982590348487207805217810318638272961265281714766807640940447780629629552912561164503906393076133025046204942876007759496953936194435369427822220530301663797469763395930438451973323518374354342292819881286696168058974020261571753155822180367890512118391068482743194492317927375299633664049267562650750387649253552643960122746409567942418092874822157810202474983866138847277749545535659431430371921557518734784141283023602529257676341996147461897210493305230310741647603010136519060821276211872378229813316581502480753216456882985765829573681336829267470844974006636136951838087054075189922056890564206802193712005153670017858736007214065142218703140348326258893372012999157846571162419542198369056544956143643212103137280910248105277559508646263900855906042856174956302339388887107016760125628053191951471022776842317535518950261778869576901189275201641606316165225667831158906718931845216002646867501178451776204432013167510139487601770251386054480956500636672153959650722540782557825952574526135374747838784455732872972359531484840209374884601639363913971373034942567528033947667175616410225249448413557237262193385664815591043253663383211547722562285877393663421550928699496188243080165128707288633021887747240758168084905523487630045597570665603592730126055700145077546613978006910544417299357931794275217411146262422280772617175466158496902703453785713256318707485909275034127763112529817622234279451550363544956458694352922048123319726828951425506266916921238786509627872521091334437437583323035286562658266625608621119624010400567319906190999439121080212708045776359527649724093725326343616109366654057341818079540320122597460221747781164109145202565073248940690350165664751762917913248810358142341859863313025385926214693328699627000186884245113323381675956606040709553412614829716855198719402588480112098625199227642800622233834939611477026535689420541130653111350181763232508520495269811428197063865000559657671615939966701112718441662076913848013925556927642027551643504555565751788814338759631197871601317705442846785132915722633314733472053687956464834978931322670726758867418767772302353865109228525686971277649514991333288799910267113484016888232595007975428571187906965161934871625757912111994159021118814620081941208473700719995377083874425050026660224678207779402811145686259156770226754781972643480495630111829517249352358530917120840679959658321561992693618266276772791134179778720234366082392168312638935810187424239186152316411566232855766334181849489727615750274361417913019146126511890406137270768432577419150780645197073786506754485453173430043375172498330044245635420526316568776387159100590522638965697340617121056591763859133831634309333091090742459556789015287998430965842294970441686192981069805254825647414052868024804992890907004061152652150690176655827537480997171747259753851099801998261483179508049458157431737691084979025475401808685594688801868510033591213044211999328959238122876085796821184669631172497912153737919593995404064394749975442267187202501547490921137789599940805748948467854078892936077434294767044713310766043885106135843684455752520508534388230915605343428404439411239260610449534945521351625089141316937325158737230210953399370543877082622879088751035652680105605780202284636050534461349545321291398578018547546482212051233360510875703152380477700916083545370565389475755638820724842500546214629890174562670041012683970950895708695675103481069932212793878834107923113921839499052542475570119294824015399361871446349120471536541352513795163363718716794359028730019153959595652892932645042483814456192944878113511172676055894416159804803534265755030480050908981263203622304794958552344453614843885008616101205850340225317118636280520241562714694784256739485638436656145577031387821385256217276424546761718501022326073243144741020787340665522679942335041894444402317280806349438992338061754938751853303492191106813737319737619582026915064140980934627834661223666461314362895816321978015534542687556719632137193889049055226947047762600876006213634595501170580580292701873562604072878815706304067860222148156908456679881411485292211574379946244803956873149750975892491828896033358238556075726355011675615394629564164144616276133754427589746965971833650460249262677979432069411752487483453321611213262575258803822722625343573777240674660463877237298552658921564505258334714477891631882781481544208658018466795464324380041086817325291711011066319934877857219828974794956987914934446092469049319283853986005575013851343849185518710951422139960278242961448713358695395333632618375991000139807070564017680622148397939613237309049327413424824991534786878950064823173545304885055577765160280334037778335216761505594370741943924010447678719048668247610448626104478065152373359899131822845199147872281095261993543927811234263559144565137672318263722232879255291114719370359206411596454395801358883041149641085827550968465759022590701183367550348993589400875143174637004589584976349001983422873427550436890354678664404470263037315274077653935690133396632204847840058780160706804327799495214660455406997678259160234224052829684990364454814008982080114916193303187769493735556629805683708409455870964709095455491265153547833878035496572917747358729342948908684401745009907923909754270591242778155996962147117009546241287386670145167789357847662346182559317848933462636648014776670519024059152692933293565088778247217992142609083706387350931104475354154044112180758362865073784517589441910031502890137773647992386679162471924789566893573387721597291571911369353480922017904337860101193773937818855900477257334416284033220598229098435992477767055156355768642568729164387446376002507334474879564138161582501386152288936523792141054146953379359641029094072517835415210720473952600197033074713190613597132082063559503811196448787868891172760861490584119724676911425024490317406018745130040824023700589547416467238169719507286517152729211093131688536531192051701658170952678438715062809748703117126697738265846917314928867869907986321135021705458856349709532378325535985246895455105720185660074500754845343284476954021588489538655147897114975583592785248796326228769186038226025200171670757649231242577261914950758474845836316597719640348402701745482482041915019815736692424081067438704142648022077586101411148228265963726274339172226458016858139216226122118844570656851454310092152163043686795173901930224536975770120214981139589720515006081695277672277151941822814302147274075085389136538931271974952645963082309827652681046912957921296002195707508463105984401544181601580562882360030117573007727671536266520434959850786369102227300322534566103704609571439809759743138939097129858513610160387097120530790359956827745728168014808449286535662954731725196867849137477689638338034753349381996120049753269578938170561955045141082498217639100043592417546532648554636931154636214022793364922677665943946667167674025262766837050762076241670188124957635002454967135806127452994646000343152101922413455236155296962899609328623397023212662084320136800187235887590129052450851348348549666053291010168201962546882362077606979876976757527201137778647164566759462524061130446727384427444932673081130507806596606333269962552363703812034853924705933558698300877750265749531408809221912934000133281056063159214950956499356956937437638269198279593469864853783334644290169507890917859018735825852084678489292631780932967703857922369737599139263351858648693990438995937265378873145991560444453999710311842306424611098597356236197561224278448236173265837287101923223555376619728911016088863446777054690514633431991550389358869395394667388171349115239941901998228291886089091426019728037008442535715998749971792206812695201113797323529888228292406153561939813063114861001468639795030792804802022809060245313123851106995572578391464681467013062975233465049967065088989681458890155597962482511163408632239021770645614007020065088493445808279285978276466921434832120104253320254168082610680812986975407512870334482991958762656073126546944208806979936043540000830237474384450912349984102188697073351594206416686925201838953941101520582625794291864483652940498330287835419921575557248112528806041424253311891070443049496133989036200554567869602213073185680744288111484193664663052271340640294694682597777965544069387568595586063426470186039554255759361874285468699879177015878720374611477593513897603575235208022679461004676711385878273566234666682245298026648885675063306157568588243203734227313036560843261169990588154068457313233772977510896932404756263166002651250328636240387915250924822259562885250069676816164377750137728163336549100327658953700602857107914842972515201196316321911885756953351807906147193137354676887523772370858421418551321785161074604772533456291990422968529319144411472229536872134110942332595837436373775668694994946065812848382500239323275227939507674297104276533737993082783422363584025860175868718820570128326831044015078612688737549078427866736761498945021269879718346685295206081964721443589540524432855490397813506845795866394518578493076772359911863512333658220095648956746713736474819834739710531899387422397026453964827408400654561263160074230716666725821140491601056562739471362817380493851288165150590009359847618002301032929198625798680550845829088550744623690496598783187014651683103226003476009688869459771522304647329009421268250000959758182453170216376747173708517582933970964572883980589127686400023007350072525261214673144058893932807156883954738330920751969313105275765617818216351580312436783594620710975257620833348918122826494047741457241601615954644942308777347678569992327822744979713715916325536928920661554005457483452236403046793546195808405075857373969524557558456477717561599529499916433540665130384023579155773297508651036479226833800297449404905290497722859749381196609322270898420640818489507219138222807988993567382397701651263899365682858216568013783174914753141351747771800260690217942707459617817950114531053442312352242154524613873153791125405661846986798522498076440439651071121501521074589536743710876087295908785738806480469260511532418553717090309820658647922577896505540991528570897416419205680283519784151082044461846064316822223744798278350753297121982702647879853685911802964378595682304263352233398123043207092623703017915513444490825193371388729476729276333979587723289717293596267122668173161558710820400976359533421107774505484313427660946337608421869939133172456409085213169268091914089167230062835507459150421614963711327030730185653513612608684949085149604062933241869660738344322283213285748162444970919514776800747179455651824348922102167867023614380877609296487553409284737246395720388540129633613151514692981677415922352107281049684362206741587435705205921456880092907793896763421053710809530647074808115465057195450501503729681328925132385808565141083200886304949074161906102929547699536820784848735109515061714776723536356222381657255394396550369211436139089297579513894398805121996518185748573341426666561386016857339744057040410765577029661399214525251515922914641586098277219042619104573585641328225159577450970031659826350882891354193066198949848206891468953931915630741170445911714753635502985573421285348999150462555266981763938789938605356058693117659156599744537928234585056938025188201838820045434170643184619065598635651999859334255681083234724123393707179553893056009569361831900499410060214559239537209227951077408201136971129790516824733419009711720559488249413550574963832631056021884195273410429233867742356683378043101522984516272314833239495247387768802425605716860066171627259654774515000801075775678994452024069556130982654887798446302542236336604545377430838280694732992965414151290429600653668587670763692608790717341960056321372616670386531501125166765358038015377295319315440100645693091657776063575712939393464908530373592312744152594157178091710959105900341913614841083778561586721175883934510220641305374691191693307367573550350794620524216185542226872437160713404292617688369241775136440190524803277375772422719699393098100925903017817691512475549607753042988673977598749219078542536818069318943245112422955934877939902818065052789223577872411703929042747628376926952270889793758296261517614857907793270847034667214756852270446136817659469650576134926219717583488275549263108059843895704805569952996222942554654688920231863998069454905550659484500473544752969162364198375547213706924546745454586473695869359738109378715250631578807356248209284378473711935583943679040442943599510946101463949723463079818343725943753639857004230029429061073775982778002614507112311631007611625881628143569968682044084672842305620993117394740602266967947524900268092509381558046665665474274937281138720388156061733134941295038731019532883009708018742081198925116230976523072513769241222114271326577644974361279064621254200961342234394362217998081345398053616378305343641330169406306717061257739412695713037714026307314679884990982127233621293791857257039117997085565878258745565956662211665624112466827420360003592229167670323126747798263375553368501106663380270283636058933196673062991432031535530941762068969695955946229281940049444139207086053180452105687905276438470958912855175603588444789151059975794275876680524533009705128184240863554211461604952794341468105271966732503557706328772208954050019654988965139954460568793711917077701606026889635508003225350753574020849828670167120125962210256716595042493650740310329018507285935144200288198405121610514230432194066490974318019342279394011591049273023876100073769123697902690272211991539269746430432811360393780701314404855708914835047182406098478949674199826930301771075377030066941494359398323375221838918846759770896910913894918060038142670167594316875338678535908765141928481984464204545856424852177771172538269851042295308258378326838936237978412607476808090576933352676086159070102197441352821518545974253365402293320062171515166587453851690118972845962378464354415478230589856914913252087113283970051886324678352379741573532444517889978646170411523179752063671179865891489827679592058674503131899560275058054248619345996331914183378304613757799576530687106331963211168788676770365713636771465429417542942426711360989891056221274148574395650564941577654683920460498851643305358072444421331708526957770012119411393553815824700006826544414191259930035191908494740044280646168092234628565287233252472687977856659906877567034540008102205453544216915046929990421251812185924984436939496094335809763568006908492319720238782995688405438186654868714310288580629568893875201701425492702322570490891967049906352676336349055374167532430593606792130198782747524058315278287286315539650189314154051547461431279920300539235260071208149946170195942565458096813121208745310747093003498656918208004645880488740151343165926538538680237416172386984710262990092182268335218891817310394057951728437693305159905739461297618171935503850472734755615838426175605156276013890766880807449988518753018843108996348285418550844964125630448816882943602977571094398156500146742082554912818853861059221834577619935983825006993972751030854550856968295884011430466678671064000355534150654044689401978280482630984345795841525292538191021095685037353380129945166631726647994619102079579345430939089959867109983725848231371659050545014643770541690471632682998632615011720572861067670258220028809521117444044003456673160247393364624227051702583856983324618413829577072684446393977852640086311748457041938047671540167906729157045531593659703734407251706521954381727240184600278804069160958431471785508487280211236395066671116577718335126155950088230765261432700435148313909197240846713547046905604816745952033528368450704698607452473832647667006657809673957619884388509492596697365491967452989272641075173683164500287107103811465677407269520370065639487799004389334633055373910363622269477433730328159727414505829361756818939934849295528791226384841271079437468538736379854918797508060162851740709738903817919891391006692782304759391826407397126558344056203490822153319044197170488157748502842204802589278424811405760759878929938884262808494972553606337724647013678996208015866678087986749244384920714880066403187196092818397712120713081075380231827959830802949095109601933327688330380604755798411941839221701672708145391378893287468136087481129344711503104660222353250238592292599639718180109679238962943938964455094138174130625451595446999115234843100107860645627144379788380110564244645572401270939483033279020929234782350647685614129987283952398580899189992195784143554968324568515447768240984242114114723830034157629665131135169580942277034626320298268031024504242224649257396194848259607933172409584645048136017165807148220639911525600975985768981493102676928017634664986576723937218154715416868545101295824334608663169279979262602114793530532724611553680397804987317769859277251941378918404898922558825391570524955326934580639648181283236911991610553452673658532094313455011263619080713436938254117735756182726461771417840113241929445213949076414314109748403481354492159392737099453578955644721423409734595818909601931297293462345021394331453925070766057691418287592431458447196606380747267921825628882769704891844218331019532980404977300393208465533629536407189036253607946157034110271170221278436608684428744713727618844989968011879071523664707239113237703072731769325777019839503838866859256133625531611616463567296584865354192987083779719543548544454067799078360159622239686401819405991057739435441829682741857737507755807185853236124061789193734536436126855593699818837581800766248256109262735220903867757942865618351353797496693405272158415690409241012921950935894204693192455423534546272397148170249045958559275902497775729706490327160116155858631513683084277781685031117307018350044222133104780970719456468752534874230332167687522652362085386807862025206609843000492669648344947579745711147175411262197818709822446136568712249101002191066732223825722087047590419732856100895699869316904971050021001763512047401193965630924598698282362835933094393637372303457499749545008215630509279508096553519771966092814333846658673044661120414980787561834671430844794613670950150799152888853611103690272426357510816871497231723358440202083069349623852701044553664934343766285747708756327135583363901485831155135554730918679033418597259745628110387587164704734738896303503866875965179697308130802109435872154091977272527726641290863030804976832075990353989261300395306383107518745498533860369412734261299509394561919285446291255741172235557260369279600933466574143870021445459563776087309807467099908194377002436830264783240085148000390858422034467407780864182080846901014279099666786372595981477129404233090490072442084826330422230260176478773672832443945130498499296386495018522036089553782629754786500718950342216974179349938466214626122791666022823144387173223092318480734572693287961396266462635911935521589307946763666936869294809365480165393749217767227894488584093646090623707517811082851484423614709720767125936263192795050283416199957174084734026518091802264484845029082198481336978416119325955782479124870184192634848007583158626164469796556347521847784707468897267590895722636442635672375258057965091184683863045254045824127823617240543217191971373593144340606748626849490980587991734206949076174483055429494085246990609968444787364653611686656611672277014892895235494964816054618163253021219278015213207512923852712623767421195647596333469107591119039303476138315774666219715456328739529557790607917426660728009366654654844565525972784243627500838496877911426624749872411828839093833195387068467277083074568149114139230874574768769317844428352308543922899505218843543534906640399005742640222584919471543068666816062319478933848266256271034285602612450384932553768880612821464739173091083761897408090441441427454088089723149632384142197045987118802500408303565665296804889674344687769707388934324300072638927369468522547501308285870554242347817739179170233641372588725006067518935756114510483700250617164544711656442776352625477233328821695575967256559005213346544183510757376007255460536328016154275339440002725751693680808960110692837878923052088827686450750985351436059117853553109794998138215837894932697711377434474918276383116845556697394947689931133152907076908816959212656078357859153059258471085700831767339152853927803797856242950028164347234887858358928016517383880096777853384762230340988095849798452791743957401863004988378752570255530012304690651124133748694108893830354122797472373669905242609146229115641000677860018753717283958639325857249274132327677098955479200850426108987317098805621911299230234544803630550679733080255087600014284270156922256068710458281459712906218569532234061934316579028865243297630499928852554422439654210214818386536956259374841521326846193444958876563815527298935756496686351636300363972535589575850409010961060233706223662129391685442332169918741346994858559900000171369930455714535778572607623720565015123270429090843537430359954613880245926390915286097689143146879327452694048486780509396076760896100810562522097779555759263056939283774547499703114332459676066504216598245952042160955025240605598867517580190512489181244662708166988901551398867904305116597740674458651908416365619730300591659476457867113663434851630775972083104669071235964019942776716173058827384768846498640896716110089836238455347690773951807415693783508413868728040636236182905396786614208616911367831594565805603853446686917373643610302786875041123016458559679352253477930327767403579999753050084939544602356350265390858343032515888635918735356630991608150708683486555979665302559108838395390599046481372741612245173600546179473756599095824046658273850852500296877632964188155949923953462319899948108642566460712238833223579178300043082269103391099052898898921595477136401168560755593853554095325003281132177139764896520020889964324483934876804739902044842228015854623974006359268533412729806627904887153219665272810358396078462303407168722526184532017000520161199837023224005838180119720694559750165995556339148398627727647565609391155313497062934840563664659468357540391958825449004226695011338043460576149787057876862254411599321113112752531192160754543393058005583665886144807962655289455077193522233710396603452374045679467313474993482719860332270806914421790010255155721292940433814988064121490351432836340620216190011192284671568559551361137665867560073282052862356224529058267714428203738869258718983178690392030725653791128013205427868392796841069631430005689439364428008567429116853488275787132069293119747328705213181352927223667522441480399190900152863823758840722746544711813580822677161057160643942365614433135842591355802846386527910703416331470854822008552554689165078990921821614381111950765274351862073780924399253110004875590474685813736266648511977382963634582455081135611682281850717075607385177651255697119186869466506371694736179882597712246037833318862405238112145979854047268475708863377592639281587950834766704023832956542807464396773966546605094975235446075571546426858396138908235247351588492833829264734267646919785150516650942661244535725696458154574822726406189030437653629539233019673252661161713050411033251078806456398618725956033003157609087718847130158996310392745281481357606914263762178114965318969139458938015841815877984703895804702184481152456919533150357852468963906747834264717698045260452004287576943633233580087821944042025888877391356644643608070166621573327663886305603986023090028513736712770739332880137539882279120075289416436040732589641458480581719754841850052468178471528324062747858464094916442846195635576026609539143160901158361749046930682464072207713979148715090293661501800662385704160421098304574463691551609628014660799155400653949959729851965405159463856978262914596827950446933921166765294467030295916222890015097207324001400579379741580441427692560482003706470951538435872106761145089445879359038307626877058054949010757318418049986750722303552164279717729869877871920377718585724175416430346243659725680383409385757230367555270672826730017292989155060186669925223128531939889291693073008625277689533598195585300417743775363843194752236905100660334866763762275463083813749418545440894632171737317335708113208037803562733101782912240222634515040276881531471393995264181002259102107954240227518165592048628203852869095043751156539781466204205100334509788440927236843180934125284257337537725648446478845254283328488205507169072490754982323572619898597484104841508046170661236913615167269861011649532437637140768021727521515122988778637551859940130081079743233575393134962674229997882737692884799320333559489854375637573739989807389756310723611396936882971615331923125996578528637907693001240989712224268130164472134599198819498168943303102615514622892317048249713527327152935963775539141014799356962382686063951876919406304468802533907373496153204868319426940946878085354638701307635703896995051499071164377894833144241135991438926795250840095680472796060509738496032566606302023081613079517783527952124649111016639802005685614561689980118867106838778876684516327098279791208883243097195425881636012194613923808051731442558726633859664397234469892449757625274199487224930363671548451306088907472465583186913996591812974722515065481633539424436856064409715039746319125295698275621923227488239367735527724197648642315194019512055695618101092712248144269400457124440735747353214568937665071225240690725936802553148300965906978931905531152419795567290326813740375092682419784903148439846693113695190440815023803166618293417652466685149617564919896264126332472551029613277536360055180642616845668462296956691896562005030556994956343315517314707816278878792983573805564192168500180563916863994230657273940464576906675480462672473575337574407650783539780156577957877831273986046149361825712352145293834917492697464794740964527056624547817913130801584299656480575112937427984740780686605051682734007343716148349769689084691924367446703569658791827213559551729364692318449809959639528072882647860868490594649462439323876360643718972947549329381283521838046441654088896801829859125507789258028544207535519444994457988525320016784403931052963696375431871286146676608476446590169472511265154783201976095941501284324017719028683702066176039681169429444543576342467761246409865780062969267782550017477087506435172407342867072584630741520385798135104342312721558087816653717010884947871486542371321899519242114224523450688155329080011449215841732760068212420932784313482645010580808698524310584351748609553409022536224067136917021930584443621105919613584654632435229547887732973750402585470045494557870315365079702942600751950092051083481929118348940844909036481029519716837520822189742702176684945055969122740283461254264252767080729526955108537870827295458155323031477407380350201136285403867866388926615730702744739631358488212019266540653993629761104231227671750052190262671948672905000948125279884882550078339168562276115419286411313818000122386736398769675753372303522283931415851912001903744918787136348396483822925067473993521500995176800629154483048244957179029026115422639705501314934671794542198305514482856947545070793743950163437657790060192215812211768965573645821842981308977490244975021878132036170791703237107295004713988249423275447829409316983837169936959925016935826903919570245048665605654127973098149373074194479183387966427425706338042948306278348054906098132280177697120755690615194995415497628340342179289797648184630504114132826020135476886729350385867769541312574377093939231132121270764757338638923463065466658800650631985695592063717519618866773075286602315103431539507339516114598220023434383467165585538481409869479213414912038359905137061542116917450478025229623833282293615659903688503711464235826121506766328698084920792296690582337900188805671790965469733189791362981864555473546136683015525062412494962601599384123263127414886863294487599000512129296411413678900580819948262848657749571493303153540556306347348213671958189852242195872230285820459622394547346595239114810298879692031338417273906239840208738954477614956381841303284611380287350611461595637671059721903153257009556872672301200128922959607146101736811003969132514334444823661547573349925998666979881454249247152241913250691650492085523627305805848176525560967827775360604602180196871086230441105041169780748484480997668726000935278864799009327744183698841421785097020069988512285202073994826320037420369926006971566823701209215964163715819353420721906467746848845263058730499338653023961456751238507650357794319775867007555125504707781083495045728950760641092084568903453358975618546002933380380442637944346358252115027666295732619779268746280808962706313702825955437712943402044374568635296066544239104255493068566860583124047663053401121533180138561775589333678397807471967824244266578200943745856084016314257341248293718025145523962564134406120405705673871023786388139588014548122611767760546060394247282773809791905404852140167126859187455275325652676929371481424412836880675389635173328436230516243362659336319178661525444746107708613257120764269907186298000903023766033749795506744932596090856717977910913933415516749226000232324597483853319416332507939440872997303341002877240098238597262479757004734394583664488495283921831973202375792456701647790697710109802129322628061265010952645444046568592980944501333412324440820286856012795699373904562773691891789081987078031803612729020553872525501266424260466636635960885882378812650928459985702262406346609829552119022899825673808858355469598186387693036430238007360487824878361474075176201223326739915879320914676821653534595717524624938419978678216212398714814486028455179486142261371487117087334486973844359621121945778024394729941497173229019496616914899038451588665067466804058008516799890752125769981918700455219390874423374427129795166075506835101071367604319218876728566575118220184739761503051843813844445651149389607638824141628616778431102059812600909302567528817520845167300972924080859445682780301764908452766692198856573261536341590075355196224027838971624079151849014902718731023044936777198990742076259859031106832494685358490238993621692613066434451581134377779462739548999687424573207978822495011820240740924036923434796798766288976123806306463393369808675993392059434047927168032761083631068485251212330066234732158253305858894728273206283153875613843408006330320343736127684538235043813442487715195439629260217756444033051433277369130462921076156729287184854585089024815355687274699521016553147714584189109757908811687426999061318799002808728663659125197469592510863106227046250250275330285655099378453164008801993830678317313037523352047859191067467374720577677036366977671219211808458670122031761078299400639242190320236963189461364248640766782028857140900554740003909184778952025076932388904933368903425379996867669550407007146675911533597674762247979671006209619282214833657924045466406846188015919275274443915010403083500161167538719437317646768893872689228290914076473287782089151334363374232264704897921907034216046653094444725699052625742930572801821828645349945068638425499783295095991762262397805607335905913765600468073521618362959391758251407082123316851460936303247716211001134935236573196116916401786085250411406334009746357788596007694733836476884714835888399796475595566661450968249732348700723513228788950628156178404062093961666296058322393137359350667659121665355629903440988706124324600678939407714102023653181282474130801283385847019449719029214653370265966716393708260554929578907772297151014057915305576738892910239091862578992394698441885736430890588145520226686890863576440422436121776189086806945416819753418991727206620289781053000101604290633322179372401457937705442561028941925469636525306542565135857814614650787545883415132368472703883778656064352866133315144195108823663200127255223619339581497835858589499147636871343182635594225753068848373741071094079264829218217603422063651554740685640386311207538538902060489144123150523661817392390940614736166400993626071683789067337988021794366797966032361295799869991960862990163355103106041075280213117366490671716878263118380535515254594321994056591529671410889485161702678809208569800133887250593644613709952575573785564444581124497494458719668484252512118532356149716826145007823245540936292875565583690544765281553390135050405463859341419946402340380206834150627015226104349403852058245418994137107411375709113874443393064904202098910696578915268080952272196538397411024989077551618961171259912883607255696851739833863322354818724919960435216268636498581461710786421117662596178201020406125956282920014843217613946648736342801577045416678698780946576111517704830179330321854614262652548426172704326228847367391109504917855862809932397466988527910040589160945066293187417668411262518391765560725446705547703129440189860471463535510925192534080780485316427697901361242557281424563298763250670402384049451239269447175810172952249336881769287342774664795487572921416767957817612920743574571425571209416238163376165060194472284598516509502379270779541462052758418216762087642175793735892713667803914072252155434748847823952917952052875527325311535641133136638849561314781571941466832475378952832120676419148450353000229220706510191755065827096942622755280331998237995992792237635372390286331251703686522073581271774271410498019339984251477398976558080029026640950859556614674230895467029524357453624421866419983213358382147658557180709528074298586618685353485223311013367658234973136959960352661124391370276353324620499055125098503781636327548533194017381312572221037742617962595271058032571562304276153591568948722483145938159409613338671507960999993936368777016562895138124196427011772362836545431743733431257813479369049959238443167369093855190494934959470512305688141086266159489746797722380380873753145593257067276547926643421943842542216253530042194784728519382963209505408453139824899751368111450315091954148255564610187936124757410526453696057886559324560061923841286131143692427393336431428648560824235353330159665505608389896353949197092331908643633494390678284220874193136024708934487356459246960810653471554728834227783416222355436353493731331096798774964173408738435874601426856661339153753896853601841584612878603278042311100962439353454157816833216820872711156518758211986338089033612915878974783997990944739864995390675467463239889280425079961600444918298753131686112876522968889887293283831512780840863220709290624449893306734413197009711283483578110313774212015510227772690404351662274282030157541989476606445631526713577720947107870384197578571045070720553560024468989974060883124600829824038831629417477505345613136325255050514551789275049840272249515133914906812656608415874482009345489154795369494673711203802265200672910797690960029272837844155378805654548680168125154021783870714496155820485813270209440293054049797480305351714901625222250625569969645766711586705707802816046510134571090887217836195893006573701536282785829036957544941634823777401881531715531438130924585047411567677752064711345728938158742967613293183448254577055349665384195415096738687442275708934126999824282566298473169993187810697889054999646856908187303099712060939333772301004517466608802808801993415127929658534439160949666715152984111757568568180521084510396568824438128548930761661775526361836589927390339380580012951115667873408497732255466840573535941302268869426818342555297463277312107416048512738493012002829668489581804793558481973736889059148019435986719455948596586768631490351829841553768023105640038783272576230485750597480298845263379564229369205003352733332503859694365771017008102516373686654909229975569190949765185357885627633040540150534802669002851476257117928339402440952707392152525757056371343479546757221159379027659091669998356807735156711564452240817352757705569299860685977834146620953483628993839790889816531312002011981581647029227437982850767438478952360156862334035364760046406244042393489431393470527979840638313836199604862857844261075535464557213360351560650429078201624319497610883879058688468692244505725193057709927481058597917532753309376303818976859463960858533245809680338883020807878840900891973874704923215182914534057079033491495943698031267626249651407764315422889507636544599827042933881710115277788384379465880762719552304346590994430028205546642774059626726568724062174692588295459378659069128923325976423097681757869292066430556880504388200491914887172571183827212183977038456519070024501372077562270978606403016579615389252839378648046321846304962561677683623897871801103279114673426383792024235800962156637183533595023177202708420428803304021950946257065406113449386772852445772012147004334914484531521522259271150788220390754543691099838170800783052792023243345908372731577748779146898859926307571357259194859292231396911714749749484426440647864434668407321606648324143452879542010811105291632913921982537440855418244554921445492275184025090964605073358627605862503606557839170852139923483031761192007406461423895855650361805785112199205913772983055533178299083773479890849475445446718075402424783208396911128681166413612124573182113201542043239255118637865032996701248059343322543977337470659724397250741622984786846045330865365454353796294324973887363801410057151663055901833142731948568019881448089552624952783113326306961602061764462940681807900332011400417359127085140689822352210728126673676316818169743903508954882254081701501547379842085892584824417609276153763525649129750799192237470596518104797182974887362009286652826250948804766330971325820042673786511868492785364630024148067811724321599847222141127280756060681327418841520584710106028235055420159069512874612819346634986109466170709740082471373924238982055048215340520913017231845218640268094148521593619311431229863575698521775308601725860524284933141079387484721357062079783051013805104524189567028909080849542420000374181856399179687764610033279261096346085899042614372846247520700204860481637755380390500508390630558233421354600360667672724860936682037421370786354461307644110403013106177991189556861742150421390439388893174559813854094484140771129262327716110714069658126119582102751680500590027731869330632447380403686249595044547226069349067111195306581673615924304913902267110424866184415061819547993074374675175563520208548081929573680996519395004591045791429782269224085764038573897059466875235115468037444735817804898977245516556291109230862268064693472545751120265836478573028749436006689974742779044665964539134713003922177473296269446701354130497274325266446603603221867132196409245484098141856402979187192007215015308645319316791111759945393927630960376942627730355620609826931763978525392349497284147758768499550947881327020771102690368472220752449073715639292618939818458163023567097026820465163256005689818938157948042703150548096571271689627779092821643566062971958639882097904494708808961899331313056797317463691073814188064451880830968569567491368957519752511667933085405211893417968764790710555382281183402202345993089509584561489638559576808280097078683297800479041766952316162292143783016728559191305502182082080006171967964726858756491999106621975151432408153336671127495978269063253759042116446496562236291410708731888049414002819551322952107828147810619517329653536022605586860609002880667391314863406564387434000306306342844212385855142318507345116080369397602203774510413286990833357471953503773822152980983078319187315889033280747011345140337600098763258803926297028891086959313150133004119818235016491903766395175179487769588871058232703941382425536901493458560729951547112851636119760054229843221463910881144287804889023976556022387776755015702814521874379261908414049007257822817999937319402400140353896390122602070272435596614639993117848788215938813546048750636585520293966573925444467567180226050564039826696241627677211866524106459065036156810510476547617523209400963283320035190759581442398600239429883187230736384758311958372218544319903501106109893269473553301630640505935185563200287570488823487969912407204176705611721640373659183615151259893380752081739220151747976937849051871360602947009442653569366892445097194494311361692071145603986113645028037755011276627739438048854171623365773447681886674856202608284924615575701304575762674471125252048171175003825272533496065732450981724552104238497236853931538112344407523599636541397092396633644438342097035671813843639350331056856352463136571276485039693156659577351535530639779689626644811359284594295941000049528404919624416298012197502740949569791396054378084839560240908072093624485153588319234226918555753473256059838812150331845527972260283711332034142860076859473530625733021302291453552512763157738237128318515564760697908613110679062055063409890877695777971383271853553108058590557352802531541465300239288845951746938969440280040165384267110101712547859203756644527371443081726974558957493958987290215924894292583413019978125209437213999849672187958004801469984643229588902827380145098420540356725269535306807340413194942629223127181989247238026442008535838180262663414732222715566685797899186264331506431970751779485963352686696218997940687237394656558714433167488839189339190458195734563242164732860847566222657627027457180039475844508632684855090351536609137611924797502995488997620671658320677941309026627551855156633866560633541791998042949684655602586399036060000068681977955503572665482171501275721154982394607756228893532328637390567863084719918381787909438862959132888250941768128902715846158993514675702467835186595130407459087830438029576227144326130591534091102046427589866629881427687767257815090283927283333993286904803491857156360156641426393565136814042822778561744243957963517978600972886567428846571955425812149958896632525636486545680597217411073371111181844323110138316765051070868190609239118714429611964728790051067106086487228267819796287822176767401201253141368629282508848895649672458035326986415315458430920271086053885966762330800512907088071937351998345702816303329416243741705932338325093657852143916136908572479682987447548686960989657655059976775030079408362383443852161398964732556285755130645560429985751204342703717312824688957775788200854713614467569446741467092968973965313797464264688331664418117513121217709280135851335074625069565500785221790115398842914439584370904194407385824509825017420418524541440571418545936497359605150596715005667822448008129935298868586078207998210799982380923220836236263088898975025057038861176089733475823877428218820538391199203660810649758023239982154329364119420320043371670545912058326935311892053391344198454794837019643965890733238542685017135014700683930445259584441547498232244703754637543717457389310393262847477008981069796282046811442260464191215275974568010030552274826003318268233152607160306290543073238726521361246620355189739884359163431605042688282239144942755277519663288841186625903293055653585144316933915206434562405550678943823124250713449228249999767667601196336035720182026047563270849149494896902274586560940202551319457050756271506934876317581941032814354398024765871399337927508617735345293007929843598109706436843031691249849085827168520258869519066304458658952490686286924113813498285830823713945016218726867177335431473727291642952190237161702589113735081777885817895247413160767881880195170444989591522063632231532477637065395605482212055164666890920564489308424733363632223879568916648590968542881821059289063808842789661718445089555657135244227918920954814786955612211271872756710596232391267133650546624475033492186363032540675933029508065926713612581128385975774240227645347100951460665891890642180462223109722737976126516184174270538396927454644896335541495353126319929433117912658795082097890032248276150981138835098387667971367161359466926503843107344906608733155926004626529772643526052914854457070639143698868636032183914507829511857113260834250794957903433381647662322636909638864962705347421318943629146138639595075476782118247568858557750983882757340601021946658789305172804229553009320176686693334746724573689025402422235566294422326134604606054651918728539523624291507842608837896880852026938852149980904098210239533809995012695019670798216170664284813443279800928838924220275938645077825486746562401707744384190070828865028862468444628424352714704525129839208869430634857870490129429218159598871853899620325484146494674560011607182695874357709648848343550570922775266807473360381862009016883646112988048691201939234662600867492598767169487558274505650342702166501547486040942226849104350716625029879582017145721318301986532748590071974965572602835918918366249693015000518592616588941724513884527285333024876284413005578788484060444940119120113583294743748832970430758387863688797187074419121541630857355923890674502463820100396096243982603065462307503981525536480767187576817324909815379153073621367332169372868805690424024825031117551865550682095145991350563991695030078545823493350522325037730251558085190657110208058240965446619772347229660080914175051796667396130960749242511859883438052724360851008904594474961732124278731911589301797294452639678189607343394796941335123233752292665987055550725290910990526126584297382929531884779265436158685702166835018585695987844228535583934414110111465031288026346781526829149313083996030765166939516150253931563426798742896407194834407656351406027870766212012589246363556789073376351243290944496480671838708760414206806167770342531926464159436651151436575257094966445773506791486385211048667405501303626719309195597894941841605722680304966751826205360663630129510416388954627464950744750865708405001121132307809488783697944589700769854561346880555870448585750525877508116121893497961013974618514058302991449410849714005334835837440768074232911691101837711203927867463357727454937876801031387670225699982812319040176003050178919928384092121019530737222510502843263718306935432705957335652929764689452918637049418692487616578200608965147336525658287272060178794609527315494620589387544932398777688748205650850629285168261012664396893512595491742390090560020377892475124999912040635002378988662381129242645867521076944060965106914558053157986522283923798857702072660927053314168928560928617065862065509574564440941043760728865270949258353856467070617215871424853939027927439386993514523045035026634693422308743438328455347797437746182172542838031204728935775851961937167590864211027359131608747363376567084955218227971549231816616647992104412817140569244143748296109114696359081305183866854072810203192266698869451348075393149792921163206305336531129251547603100627009191731507483884709445202681445887614184943429250487397989617059551809068655347120113117788961882691788641408493329349297870316782290860351250184466732540260033077596636934091204773637700213815213275397476648304507836935730142111305213026849513249603660279777061400072722812107519769233691870456150286424297219187887264460296348377108587026860513391917379887093937992793956777285085274818239704881102420359237161136839716989470900457615803346317496276174197277276217592502232945675385211348888272146298899137197264281528401031281793601024174906703741134747335380039193039420431658922597698217837766743911729436112298902275829150355259516373249229621158329902125651648520753993572698565486337397926502200724645886193752601818687875981035379782058826264066707523072470545623571424930795829376665926208980612273809018742898799132670006168570725727709014275966106937292735878322982041222849582529220922814226767779782795352286527191784791200306015748829197372628677158070989225085910396999922371683766504330442948105595203273811599646442145746228010091727224992789804648583266621593813108826116883690974171542811167410113584692556864542359964418420086549052607485073825059744787530941726782380610906417646231572430129468866105673474425206339595603489824967951277050603781543462592146109427563144512943498005474757786512230907490569718328256514812948804143656866538747832299084818972849624197221307676230788072731173810987889779633305714430780755884070741693407029805320736783376022486176770637272650682919024405033838751023293452878574389149258753842176104114498942493204002566543422979501690041058816126025413426203081131612072782362903534591868876695413205840859508550018211326540009282052576293128802816688152133224909542096410448104310551537320885398459171978224022760884053789276754391712518391555276163077289743300496140052449086198079539427391759658592361689477665447527982663954325721056511307241677649352124449029757411656232320061773371166861420074502927090035808461303405712409653312427839647249088732721421655349454919709759726125399348261812265763228906294802027654480905771804492403547341401080452129213404054220933010883308673497182446565175459066472175215541810304311591972493995043168160650067001326829858242917134465529296759279767024753879234902085624228585791268295935224493497717549934677090064056327930077499336442949946819240582697765504042008560044726470369057509005448152399435732723402810023843741892327646372103859751460548729762878354900074088964696622272942657248118750668336972029444708402761083422300109133780032906973826923220244571400720379656712738651271188819802309105488326301568587157644252651561957290960937564798545324578223881105413310359305133006121010718783915466517155682329592821895288869000942166370008069813743334264732874891701554242726712186214669436699017013147764973861327657650127490846953140398096619870884180422184481461375117456047364567556261032000301066708313848277010234888985664651869610183919758974425793967277318385011797128747501449910579980151352672176149004348449986795465327108212645005936643871141426603601592188739177515862832356647048522659698195314522734183866879080861976285168829568297485651592323254660978044877718573137469982327588112725836912403538388562391312047894924952318456619668837974339674037593032806184086719834670078280176484366090608652505747868741174401290532452696277463402313350624936017123298732543892800412063755039473637757544511403724374441784180794857128499648658311090661898684936207547715420749612720301872781105615995983840404108192343406515422219966999459833902276474217587519224880072344980644852577982856138688964809127941703158990518233179235159172790582593202936109937687767785521728452895216218405105202426466990732958943482359373241034747108542169754562270527086020717543787392426645488309921068802614537884735517801687374538037583732222430848261737166500289361283628082319942218169121243156066085624742769125123277482447919396837401787672688940851026763387436168762178942779829006158114571803059852602927132825260425698498817351343910836983026596712149357139493096254591861009901027519125444452531754182276355060058054463345976811175133846316849142854658082635121805235298078660486854267498246528096545060202770261025940665191128735216274713901168994269393697898210979156727655995392240787461521602827035121955586565329045664935045589582389273196947605753695851154616827807252297629113537440619933639796114893576984617030182755592413373405905320130279185030794502682956115485332490871280682582188721997518628634022861466101729855059063394359037305728753957822579690685506019367649425924866060745850515023599196604611203442344306236620729032677619306448213419797700828616043937759737720738821649748823703621511542454029905705947518903380433077578965059041257758916953472467031259240015752607747469244943871478000797421762452677999190209297537029349702701788717222879238321548184629798007215202673904240340650655862597232547797387473824590867370126779660012977493911018446072022184591850449216493361117743883029981977972792485631059143171822944493573793664817955408053693059489747436192260511981091283437450895385158159713533055941440560180044401575925522552736887042561679687438166274597702228817189971204250357256185692517707637959942777407802566784971278190178047458624295671413572299481230108020583281597889576671187446953087938740485321868325643686022950387161093943887001177036420801864079552855621879950244950929607460707493047372503896805455486729736434020169477371825469777446590606304213360496917687927413870739355455437324783229742741815621931778059348739596090924300697154862404929538053110570298589065583761914229126921286930736496379826219569398743940541028297008235006330843698442209536459320458711714526231005119292075717506014247247702308825616159247924165439379386561441055842056308525468755131095541165505154872302228725351242833060354851838178104150572972858148098650851952926789264009974001919444490712895919035689722694478492946801246529393055232419291076452873878824381075490650857901170639093184545807705381691641795710340644421840180390855955492961522395280634484138166049266270968836788580898545374329117508557543205575330825566836254889252254616858400825349132443423541730110726368595729669428358320794756367721021180640175837760004165821773783899460270932101568149421369815479660406219608924456686852493758095409551889799820900829950458139134807822330192031696466002582578729766932833879404484669261316490632770408714769397430886413811119201928428572324376205612768066335169514919698715303898875570490408885431265520383443180923414034780536239090172025705290224097086526868696268617519870535806365859795021411287458541863074771266130067835171204616644616791560439582733599157481519989336248387263490324849496267925331948165001144364422631996828143095152653194896396672416893411524684052160436996958020544668240126458405004660281477289989851245431312377199072076044372388067843985448354103769364918157293234310111394456339203598898770734856049657279724538794596187646445900617973713931442394766941287598103847685714572255844514420129013858463743168445493100892789145843366331731628148365822728572886737351013705028062080353968894047090846859745883026417949004386004910347032107635570378805894216460275279997165392247289471248215692770299139229315283283064236595122446763974227854493572955134142060793424738503451005561144403073397128863507433233500029473948044503020696491092413531701547365715485388102232373033656786884162556520634375854389598158906911567869856284966475039288713621146630325560730363854860861853943062093503236665476796333470282976678282760910492853422994676690003435387382041623515752153089201537324153654919924050336438521251274143303659485328877239135883546826803759223492310248923851950395588826763075184060498234665160793183805508999048237236439699446848642861030767083924809695601335633995806184538863764382120504228239636909417060584062563576381505104401400936917932648093973315333862957021731643874121875423522147049193353402284432314005634964872547299797550736749635893857079137342970690803101821328681189768830817815993370263749742103391473224052587329019153507652627324735455295885063708223166180853753076012129790854559045510050132245786945725113606248670605603410385957454488265734818970453504041184947344645710698004056219459734930224387513271995095604456120943524137797130707026528234750939300348868480365964822222255182355028905404578822386941691969249796264909397031797346378324068868010695124531506817597043571273936563877267905557508224835945445459713527763518061153250828901978164259597609578716237941882671585390969271865169514113725996196431148983219409630436371843632164514923590600344326126073926347313000809062338303997264851896224005846525273810979123076876035175577567942206327228748000133544173584168863006209140486081002137409771574896127470428281335358173040606007513672791250532182693483097942563203735073213851694163502390152031197689345446221609410627988893629766874749630129348557278556794782479986644975312845366599989884172528470139666807366783239928764337892734755177105146868699266810179996633440131040629445075544754794880921410148030621495362946702530680994160297730267446319285571014085992488949019859568745607601718662360676541298113161861049669047447856786383892852488986610117839835174428525935785082735151779820489352499418128072181699427927801177115145813656903254549684655176228407995565957075845365032843081292535146996876654836181508819641812567218347893386635911099451307703157074119793621293887996504715732325045631668253021412839178672700423980120316076167219676324182869469245519722051851223597757795176557821444499306324062418272253285997751115307861467269911108022533592614789010369114733705691311312947487932416259828723142184321920699504570695085712399201265060532211213283909556130840105321289708493293682010096920412522780015210078144447096006998907565711032021274942967601701809042875497180561938677559258428821784467054885298222062107876756826333675305364611005976443061533137992584680155405669456113844036197786561860969274840520475856985414657909732106023940038181697742337022468901742385976619925618674947088853992959049280313040979265376733391491772681745518087040297532377819375450675789355116534272723628621372777792766052835169533157882738825474142959383780987015633345390495456403279543465917614099761289906864574928527096371058810249117743642760387807373706857904311331116915577058147984150119822252375555467211871352638623929192727263905370546724925198173146341747190080532500059491034970578119633530067041716174532348138762824373471217869374996035257574007272188241608471030077082355204138204600576024007635770553263630656978534797414095073098475190544072324103149673414615167760629767224682566363453321054575915508817227167326114727694036470008096648507669067362195450353602060035055900497588528866457492622794801518418599165080609733133761459191342066906923527401264829664616950576849995730211285913434019928257077919274284461837642301002945084918687519800507145107666392990443780863356685969698487370538984987822056339019283616684547656714577568496515593180302790660380586352660696897800423043197208543689178611748772124868355707341652324752690126211933215769668108674769336054039440407021886810290392350349976171238776476553631793700186563282683621880165686270367266128341214303349856578824777391796225088497274206039912084589476907449860802450992965895294278966994765188449706484047000923694787615799243566600078808655219354274753296402273688422717298489456965147341567409233078739314334260239373095877680043523496500932630039500254323227286706386990939531644921955183321682215547718303982716248947456274858833155157611573766218084170979603106960712131592044185953738405519897615680793300503277818661148155786238352328353788077109568734887329038822864545383851498939303653207352675791242252587865065753773777922726496530707281735426065425652710677806862125953079102465066408442741424129509159029587219623808104761771621644242163071122658712415303737556119477387759609431354396926733894416262723483254391308973795730480160759315835450623973232544958355711772417735096463979414368781413924405881077149742676635622478911327040707956899944384035070149831056967840036468408629822783285290958289684004080134395760334499334400584315871022771460138381077448617894004236488632959039074960503896945917054121351350644259170816971751549105534999206060619209869654889554806573918152481211288218576570110561869714489974982653700461810782803028462979467506960264129760684848819669753520376744932708638452712172710285394078196185243633003993455579104737513417122971312468940960942987214084043919134376076592828572993930841369382188131832473365406927777339692806082627601704322799586572035989036584349373664038561415822670892910446780252254317299532655846477525526700404688410923426932936596135447833179753816216729071939522208525024232380084240750856636043220598955641740155972092971110439793422713344432298583475148684387236912697086920990635635599075381487622197610986089372222789477024390918472031290569193345350424324019186738014831632777027624584207455025232993195479542878146937469240260442244827757873480272173502782360228841130033017584891123340130485736878990698441742974284761156709438019961798414476950436007608254762045642628586162657936081638938577776675877865309311165979237638564542814098334579326385772019922411027406338225557707201314650579923873650611647932583521967358324195282118126702526876239900119122181737427069415948937949368049211828614933039584146724512856356176126906331099081135374748308412344943000614776705051392843315709100675934080877760797326908046168928661237582945199480662936489583426365351052273709150549723518269868701357770686044757262342476743535425197202660268528686717436397464791991831966107374354888702975519349737087311815727419249352201410308489065653828372400126118386651828985409835574822974087177733691816637788910465699200557926745638435343329224668507762830942859435521535459298340088274353632080403249339786842173548653197616589376222460681606583792688103873309654616332898679510633069379349561588443875697398253279412143734482678907790700590063670180884313198971100952939951210803336670789526391481328097715551965031696759944859810796425746983566434856067939212482555073720729707261435059842303289763505483366068489542305250312682267242053382074942937952654642079592285590355038175735217654144947694421807817302910490102691933983999446753793761552552756934109518034875121126295050788790480870908038600708515519840138204103366962708259070206785111905608601038550409284578575745998125020694528390585520786225044999468921059219328289097027377539053779057467367768226428487197736833190151120855485602855385585419236791330957738385201657571596260402449884166840607357176646918045130113726270481944743872585212418253385905268925065419498637535250639216415070608345544029232988147349940512057555122922600587359996165150609351182336379765579704168423376739440076112512599482227272232280781937185407158468269412872764391711474106643409791253274367349419029575800853555674091790619082972775034582285854012583058704202435177104760896153076775619638353615440060836050640837123019333054887530300151891518136469820555035325449203536334190311507582505043572642701927455920214974136886600710494352995531571591406242387895362270244387040495182007028631979935942836890357858878758542542049339637115074051206753945882838470544902760482854453037091509932934233235233259368665907292253375704045153606082574924779261903938095074712591844278078437006370726762099111956322715621582600437564737815778466323873737720044011471905220691183291658798544129217156583496727878803789012526340204554171708249037041675366212258202813632044340206112878273296498383166367038264948518292831775517137995586225421878082321947696940663372575022303600968619051402392999585007483701782438533757362158387937914349351036705066278268371093401981833814281120482203410112760269018540621043168050930954017360822540782379526411604603767570860401989658803188130289461294463812357431781434009786679473127736375161710448029982248351609630032400590510428205947355003592339087750996387998823768086481596643584636622784865308690390145170994115675332581636871856003894584825624792984824477266222886679324548656566250257601893900164483134436969275549398675924087462253844928818805763194123161713521881289927048677747050985437842860707418472454160922378295892414070723883982675011136457196743798912717427618597273013850436340339937321644666401016316056809305248374918681733988295460604891982397743177851725245784979259560137951261717990881898210273963057043785355505419449746252353091107462982646177094650025882246194998076095500048935749168949512717772253465504039012424058001644366363865439721999184132397020870049465346791139915475177802805425594142257433103864457020954778970428909456372713306083257490972188405269091962037190709928187447133957700029984517797020676373772964988976088528048834480874607183732989178388717479610781529762008175350927996955337476058008017477681172982527336915926441454075550855783847376142954985415137872127198506653740647185709370929739765623246504594914518268905154788179016385425103506789217033661286172534198286777453720670971207028442350781244417490464317985656932946367111066825321834500982616210670651010621860008259276100416937562155249186461471549943897847969993369730728542693560671548654420155361450683820244745852418577146105433297799898239612480805321890422746772872359196445987094381295215430323727530061957609994776248174046561183603216863971544161309256504646126920358324374882311102988312421853618665040055583991346468347828121732575569774533000152524665708622752217853471357833456183565531819240833383060895198935671499587005848212290144060288649249989222136413991337237152768151861671761185835831942390059490524268328161887270291444253941463208918673424773153608688088919829782123613542866299979509173156100396105279960401819648728580648889607754103843663865384868412125343671498839553660264454425606338411503730394022964236429953550130553608449344429981322801386350182189346341664169942259361540359911617709523101455752630305534830415668915531864198741138421609166468168762302527959118587331567297283511799849017118831648054168556046197591427129890930232650084324161560432620045835106160339094647751086024280726474221492478458804197766906789632761129458324483299733953020393981972849112134149173518852818248670141674440213464335510231478413246273130618583932464871982609623353299764957627156248307001484478794671319895215984267600483214681959168107874228218970957194999487055520529994908253020197052959670961262601179712968628737073582198283116135840948314690012056044996646148858523963725423856337874671824398560636278807574351634738968700690938061766125830998489160604013358717688083390332426665700124574630719774767977900994879651917186279949193297938719366362293396056109635206314178320029305248101506715523311080471251457516026444196881624907718126426877867175899480110295430716479067792306661227251333526402044665681612528864296752004279223259160098022630344147409135178939381186203426052824102463461384997096721744870991635316665824377105330679287923125993855320746786732501269363842837120324978417135643926993288006302328445141047937783591426502671681361791996462045936130640402818901390276992121831618929620187442214647392843458267519068872536975259180889270033999556351428630168760349734541030343517114404023628130194174889782017146783771690900448187319074034480864102053921848168740215219542011363888483915043086820309827081147697220046879639668947913560465170945997008850096573825341279845391955215853552448143311173100193911020835661022240970043017690709442165717952649188294568700639265644640484972542977565574091321801131403840193245767578698530682242448161737003964565734698201896161878184679888210444855303841798807957706412705310927258991235126668889647865377677721780191958801854761323282695455460999833234418667932630162505263430286398903405732395714164109958325871134499377394988144922940818814488180842363351026722627222950682450493803919736421990620674027617257289254055415274664978498065517033097774464376940871560160313967136982486496375242101712741047997307318684818305021290697335933953645018867047543517454428221546387971401699493714940704279446259958614149069516061582581382439702168720835700670305001375279370183980924881558200574662237923521532427202238142969913735100224581262923518862327226301820865064873468022579689571401902358316484509084363944199010863008700010884530388340882910019560931161019987143291444970452251386121185896683323242488481391806254796062312793709350728588109095105278758117380690443534684870973954829348402054174468505645726945762648376834589353027895259328820513924341309848664051400438157120261014912124204489095432415354826322566426662105008624786921046927215811804900965285323945299454317146682439864015124267124578993644263846065935308265857985864745929838396068460522610721139471590080837111312534179781345559073170349464125095754186078652350723905955573695623858575896040474840591506335532156973136707658807956211703950955820009562777888493504976724350084001223857752214572189930911055513559645921886970104929764299197741037567412095808372444029929375920399381359749543695847637836631018811812919388495676981005677570185382187469160118242175980465422402785155298845281271466886659947459929477817633604893875609779948035234147721261181379295125961756067535559333369700963039626090151815175629060642617913207472673366917957068990462296460747305484161039972177017296854231072940227968908399322654995844605295718316731351242091194618295159357545331921540338126882921675880282352498280077527876672493210378639280557867778997744843041689313701591784692585229688302266492352920849693104432407265724398138305082452981677323312968813608863699669203276916575352573121032860356701887245668566979064950249324469076617288688331944232585778856133068675603862532778535224348695860978370912937135500505438163523591753942440479391097904147170619597809994584365521025243624561266866814462804261280614196745267573931054985972211813544696585856923003169467416399082837584230010149185209381284769240007907409403542931180677147114842642279822187829991201280193132358009038022061914396333735417440204930339732425412209751861033877727742342234191904302725556594791954441652972543857272627476794491304190068982865853100243546336954324740321207509414690475774091214012089319969683964616173511643408114278798109254116559689617783868160557741614828325054348750175912279638826046790086512083439137204276411838624457111711893942967103663971576752349393475371682952092035863265223550598625355183261181201588413942062507082595404575657917471727331867277344791917778266156322895300735425280859140460076488808197547322022296422814507617775165555804942251798692151900958909611800128473979942842344508291422572664354437556504590756778840756983071531241468455053462141146055299385539731240364420476839770079770427906097183012680681682881012181237880209076090692613044068139719838486660214647952688936844313460509882031632483593779309442519564453505635347019066224028787143625453664222993671078007738308296768272532037433250946205456163663410635350799854929179944258313879960431099356611285841793800329897650269938173708026518863188188319299702132483123005662823594655908431780855517553045791027535515625083087801324591708984482459705242797545315042536139876023850982004926698994653055685690860991613750728779430600368647938486927880839630971783575241863436795389940706981023669504032715369365793292805798033200128793487204542013519649264354710138553215214880721975558584557626291628792984628852070943347301552906958561612598565219563319963681567428337854447165685331720464426880390020805522146952828731151712927827298468676689987453600623815398987294564768770016416947190283491424650795503871576157894469274998055918921574258096479568349857598890574583118566660703096368856062763172998781004248771125798623639560546267275632503134505156833129102247609926873037423331384979505878377515150856645298612704250446549642867772927182085338801007781517659174048914018707693336718710484849822886908748889772075004749746534316885591583167704810073051382844136682403964292208605951504413095802568882283330437581964327465692716471217456400646858383334019314351049242828438226628595024499231612658908984315332832413680145458067349104497856267941792285379021518011407264708868811437629638691178529578329652579922048483162779100518731709207507717328989430509049257839608827888940309496531722155693048500974379988028344375151561948121274925754960647377049581478510709583541907754722671294139646763599755362962729753069765243719453802360640554289597216891364582257116220939573294668139348258391875595979428990746894472171966933506869299575427425831269921900433170713074926449003375671806441931024488540189636524933853256000530626345851493056514054964861925325030798034131321981922321469073987376340732001335589432054598672591666181693450408002784679831799503081336727360486737351218795518487136754498090469103673136983120699801528308789606436404052712523768186605485004481393225775281706684734865368150807031125132773008760833410097570230014061315258844830606301386716201848311145981770494662890457516886903751418572955977534776579399517707168799805075814945509341740390120746201284924750012592031623385316052676578445543992051840034324451583346140386445456519122535710896690441000750341950307293065473046048066431967238940538415982096846673120711346171879777540583872620907623642280211947623956502765929114963904847451469217764613543696164119038095213807919814991734205258093820596266811467279017789196660171258210139062596891225093328106260401209240142216750101267989374125987930710818746099267718193276237670546297343907485270378543576613708119616993952756912464788253686029655801368468556079839185067113126825577628001481017586097196579782741332082771431531803201865114978653434797468145108005591014398326618805863811608606534676644009383435649290998915698334810039427912109431931346885132133919624722132679440914165327884895733801412316693412805340676123202422857775046853789351197884013472091199969257769428556104453302416748895747192114284951703012327692441592121001328911149726498508749210565970350993050761598703802276566985577051218774777187771417473373930845739343715820749158649594406287889734424674427447376748206263155905086040487594893786019207605444666387753147987367020041263338527430165359478944416903505361614383474508178337110137312226639240632376790577561057962931689795939160430553144557756883357161107183510681856043575188894047447048794573241065432244789658365543974732228171472062507019239057723649240881810055550181958877214884397244788344686732046915221395056592203548514350773399180967544068590290126381027930592443367208151160775147098972386207744280929731826957050988906640218376319726231396230166650282871990032644430457207063657812029970678065366815143581488498078177957359888850759010118670968055641718600104156085257437282380294914525428532765714217578285185686052054598842333959720264387131802946276756403367770282906408288402985448697005623090606290935487775660813478815107672157381779436670147423676150910193489396902403662772828253410569524784901669675445119034332023668990613725386723352818222154873083853002878646005935633556215603573268143810287190834027765477889073382112971297542476477969427619764022829704479721165208290936062305945507994429364085618519153384276725963062805233980982807084774593395208681271124543638156038861614007448829510170550752673745493880987875766427372171838603968753613938957299045293897087181273982169859021477621177881290686648507170942095359856624946872116214368087181125194750233807880443505679185929100957609685193134157326202131857445243268132490245018139932132756229530715282670110211431595601832826649208463252363720961819222358546781979795522102593587022998955474592904128860797951360628448324282324311333823263583772846546855804916448085619292462371922686156861363232067019277991369103770702773965758193214605171152979265731946839707382580182166947100093037263312134297571854321916780620604132623080601481062786530223925960576194902891156733307480303392169151058476150880643930122266604126802516058547056789316675403573727366073035554728329153978777011778793646845009652800485630830331390904653311783341567492654894304155728779707684566279490503959417454787442133759141797742274064999362524119050257529243273676242133138491198516026461461200379032343153839490968524662248642519544832035611257241979583931982653527671946750358811886935187664894026188685162814717337170484890098325108411204169811978938003914776958972496653186211997916832776233087866920292833164549707415798550509090484391093468050867052633805322759211189259862396275250378794673943033986357017948676021705987693897975976220646499760612198730179344524478704305028725231057500726636841380090162519519739255989536852793018931747315954856020753264751655279919738787966587721012967029822539936180993780449837965660316662905118497455066715596100339988442816052318573993797369731240937008854474812753466466656751987084999926836200732454035763204217562828684850836685830287659256647413894783866202348160884536309862416644227664272235142651375932137489856190274437460898934723545234603623609707992733499956457563750728317192495645314331729307594004522958467051115201203688133591070113698310309695364226494265418401193982453398206497501297608875067139824441810384631087481707859306037593174146407951387243476457169217075276147467249292545891966209287535238926454926066664343155514091635676241142430943251832511666946224095853553686782817959179675538287809106535057460536942183962768911758520970128574849285279603363800651646826987004128833528937593239857067809741937518292118121863228082682750638440639703146031206967977333483460576026494114485824231177560716218461533323531604303268841967563589953092855664526251527308395882017143067587545845584514006534487794691151978213462965170357759145403730530560566795620668015822226176567000185957901991947211705179697152991651337124403718704151156030745048125442038976953681635754996947850130626726433500643306089885806514029980425225832324238379335792009679707013171889285964981603591897407315761807727486009647309133629405977128930777152914679317565296469413908226150440699919279881382941965692126143504440396550940097769950904511137495988964502063142929119708023401610931001773383588189498994392185769760082391711121021937206427213283875979061092196904525763124484799751771955646754731433708791845574515149344822656412016277148638362652887196899829148559191012016920553998085055494926485163227722389432903751649716368896359014254976398847549691467094389733830557536261079831340054510982618485953301339554271914640866963209778426584044327097104155318316993428362631261768244968029855815660852962467633210840145120744154234577721776658387759018357906503518587060683826635455263713871701719482808414914912111039704489012377041887454717972703336780494197624534541983658130885853722712283244909416410481392201233821255765680082534529889325346635305988635745395920839876619307990076199503992069340617350088153797001368863079608611350081533944369869563241404708685089650823269004612681364699648751830198396776494282102445461549380342771536081893061187167418710707100059093506811214307181236142058182940285319383650482916936247003586313527098493415637684132871252425898165120864493888952785952594318369558277728859913888851249281216360702960809517960594319434281663130881272372084507215196955515788170952933830060474155167764272190397536151454421835983696149354132402836989268384815040830891365386533115337264541805692113165529888232553015565175541924876273868359190993816100632684326616519096557887029902412769622609689797786098551635877902673355344580025036792730093041354463203539004178901084469528171576141475891494775711572970202416265383374951226390183625582208087470372488518716648320241614000224133009903855184235163696934631938644904290210672756544377712894082558459057978483689940605671061657730807309227522680676725814531007257400630618785494097631682053234996151536015191081612019475954735823130516050913813429281513092589926069365748781264415337477349863965272632476989468535308834194732405111123962766578085793877410864481552603012055222513456738838655117711465227871070055993871488061007575528315190243324785157535581460314790418001005420028533159568975027796433023782324886557420754804762587373746399906744499982641081442972955600630669388192677630753849534048749792054654914766324044711837768081937161327395325230151687542320748368278617444549336168981511702940253455099197955309963291842406005192794270034783592999335632003447733931183933158254597535800267894272269829019599484591356088855904420643007847927577890852486440182793881038283806485865585179751350758485944736307507973516337569934107235172811955455916764313317570535644761421274708713430489777951719880908277619996491103441307140305389729086814242567435855651321519551039385132679163639721880933369068562889059814518864763511147076462932445398337271936818214979744321565401405621518580759026967048133991836628939245574977105000904514797504802384099593616598618009850558486175830996801981308218213131364874691386000583396828273589420309192845885336593493707060992279742709815619546356732188334594262822330401002723812272132009047880923932276798879337464206148926719125268559363404407588975249869251678725522063438673049104223430889750422718635269700772643453373430576346650478476814025659921047695340553875601105458438930149919101855834768211637366959075469195086079936443606090118285333385227160967023421001875301686733057102965558129687795348802263367341213980084883307935537685173228614945948535671219830485769526599165821377290784042843247301216198982241171824131113213761471053403278148019803544066998897567021920184651458929896248009227704867443504014248811503340780448492980759935462333047238585074748921514761924147094024789845440222878433590727341218921707299129403105124566677676854693188454500797046871569080998817690426634385791932746190758615786006228356853253069033845459278726214999450309450739055971060545629054788834069520855570983610850624258270277575275103569255078407691641820481175882779020871629245573642651602280280285539469995428421072346670822816991205569798508989701307226130657192240807188550111596085333834680748996532024328730943628435873467733807294729846333496709136969667927312110019989170601587457192700461235682419543880437271291474543450896526486513163076453893819617199793760771356551447858916193704839328522984820905146935858689617228984952344583996054700562991047169633520499049024290781638906041009677674866993862578468268381697600988110158075561597030857934369228692842307827477931305324996614505168276159400455587835531085504166248240990087248400382846657363519591360268710665963431021884475524997225949743805137071211069396991442454372292460013729953497193372577628142586685239665777035822089346099873749765364218220287191555651590383712399234768825011453792871416005194743205600527457457518257316497309902176276722973307210724960106918394458717714978852771791956843051253807705295544783582360425097791724256929854617603447577039409637255237078259343686837653309105929402363438707648226501600184328864202176253590061415585148484490974095039796409657129751433800568186811746959781336413538096048324855447641010707006310222430574716705973359681212642692052034488529687727431105606050101694119337429996119125700324134047766397261898313113008303090461218685851462841956957621812177574762615925603050741647451569247615476041939594246620241205356450982822338092879106967690702609530459254420994514654915475531308996964337512221212650335420126770831381824035858226446705362231561923309847433812113119942083752401613818156441811844527098066170267060488053494294435358211566113814277126524295293565520650350697699474716496084774928253744532975876471707860909138268612621536238779273217593262204344694555562418486123119996314511141511048320288161392246482889917836541641684795547384606566538786612599576214956736911642083405698767945230591975529122964592770663271356644071374316962915956767552671510554617901728250213210972309723403874048796551383815571612363032413677523420198001487418139139080172676559030030319396552204459553739348670776715393572156545286327707134369372657450707702881399600160744032819549555396146998232542195304828277361765835222493295727736619131965615276734142484867338139031186284268289817737200831727707288863408867811098588108427531345848086834214203963705927851878499580461351529117331054416435832351345184816699614848190162902705131474683272737068616526299934074144758079474071235769097674625085612202330788222370451927280329646650346317759492705036947889166398373862740193775281212736297815054242832644985036756629501076938729817983756559593933362323730155435976381220866778111238664302314801933699052298612746562879308162031728587749125100637613564753260841801009768063009322488155883148122201324548068269777769064512006096732144594093379773651250080058185221116438791898385825667373735225464905407702852822412439130579408704497483516921600172452746728835764283040049524007670946184884823629293429907966116941382191028785655330523388864552729547919515685323795334204447368581286848782257546000762908384848529957062258506293658174200803529445854355754674498766624801308013013211609339593823159889839847997582681320358431869268114086980243505197126024091565854843201235695638387988647198787964142685857862984869195373890914580729430823499608308616797545970892007338994648319437477276097274030518048519406744126445646094572584344676773795556506353426800897595415219300648302899489231896940442739941879838181612010842818105414700865845019211822536741411063842902530478327207984988312610709237547010967428379383839081898301379343903330254162404750156286366199007926918864591029919463991552609665033381588999375239626278023087122215485727315436904567020046411189365522022732201685284588871065897595734524134816491198822494909383947305596320690994276177867650187874870978411999185517242146987944415557002288130275767770866731592755966805288399202058743525463430162106215794452304891213201478408197098650273477647430775824254041264197374464578387648810405958078860003713004833441391243885875005214872151918087732584931105879124589622112389320155749302563061243933781107786631107793995528921589105495086212688002503659882272492987717249820851543022064640096994961778648071201716451048344295819868664225047316506938095573658906339675987946034066018418717595020946255122993462718707668638214077940734016537481273331490229434611556077377794062031238133144042846171277029107041898943872747319187897639276203496477700670455274492271645572666300154530348575266908017317379619105846442613826424167402295890228856272305451619502974182174302347204806912536184526665738963197094239978341499279043687729025085514332545782348759930101133404443057548514749310749059470154515444372186404706796447676164796848848432245789141299984736331269236322688725024860705210178155028863054078293620584297774350142496855884686512534345043702260697566805608935821709599347276772986369296965525778121557736407069316979456299088603701803305213280084297709240085276412758144532251042754378808519028361113294415666795992649637503650885239209621378169796567457077982123457466485556836587814960683044076443652939348662659424839159495061184729849196771636075068651011835828272260126820581370527267939194090487560365326629848485816533958014255465790992081240720308692171099484919102275654670956202480707052359856398341837844060726870055319402903131857192349453115764178163474667223728138449699798072916500926643776275948884439977500027449714645807138809931502185079446032406100370011490349203413854107417038240783054565948196142303723982591658323643799623731085486412399346338450727108236295457901966582286153150356556910984872110285522953167757970501080774125508380175233607492793687737212422712769757362551034955507069635381813031932830731696879287142553781525445162442072066490822983837385943814953349183712327682612774597566855676730314546817343054846181368551288359365410434271420606266721532435695331351703056647958824301151548799789861470701111363563089743575384858879112098714080065012439938740849689637083279591697649687877906741326815455755977673180704224949759780234150135033974045483406803480267145877035264429113705128364552063065524600981108148720446900452368992791220799684403545864574470837067412935452591538785773449890779705721495117094273350908874312716072162324999749044607654182761783101509764843011795318401653492261510590607521183668771066237854358887300786597755775827329481403196295660720454664395847911981060486724400752507674221059935268013646177847143259026859358587845182839566547596125385610787451374010302798871207541589515497481526562988469380447786159509398994797002765593523660402768348462988118505988344342481015786687963133851719303404393346791026008672278144284389416829371861846641587574970875891314902352118955818946328850481651528180349970841328720950630212481765637360025338879729338159140799743060893950660797912477525586741848813987241866128740431957983568104841543579565757280340382892358777405486891376959827456028198790711692932784884797924048038977549870604061664902800469935236212549087615854514954821265367546240076157880154396815153342473017538321144631214733252714387123523003728979229208369462606756168173410584408713975562322753840099754151961564211642232420615208073405671740184359540615286836448468229417392328817524912681570764811146686546793245540657137619016112284729618871425448095907772198582085874464252970349024910614790101970222970945828075767614884501598520101148409015531311981085905952286356060295899832176905123195360095194297828750213231337771972329254322429500360038496332471301694475664874005950430657172505952089879600595934586517720407301316603383487358380543572985126461555168789390122007634239655452921982344463312909809612024480020746328183372669115459201480859086242415707511189182691530297329912839419679887552231636518592297730004497880256414627132897136017765936419085130371002775421123736522432413416328917315008196650264005564369166798504150097051388153734209342752736185488921374722064703288857911637220523038579627138199093523053675220373385310132569196707084819082902581898811438317688583499853160401330938228777070523466771807629360340377395122200626563197175002485231710117173045839776044285830663532856467748836075366009645574211251941941893848563292066418776770480606362476943901961047231455581197083142837697253599357165426734250669582390211588392170045504821390792219333163380026582961421876295513442527806388453884992251831279345840319021756183904053363107404593634474838534827582094295197365596184047280495054043119221523632109853742535497604817920772502584429307441999351610393352915887751857688929443023578863695454653297257951243324833683972396789692841659750584460847944089280644980810779972368105932702579855736895009471990786649618172823497324773385155208342362148800057147446224750606582281881267627674198695608970560134789027303006277118539919820609068628452822505231230362341920449245559973781418224551714048990482675610534900642214179809021050866040340557492396419225873287736395846426465715328871104017982473659129107482543454325461458362409208295429560690643240072130389141699440793550157340598336340650960449130872477558896220832771715579551877202173858866326219045133065441305129594512481086954581786189171452944353890338054688295020357360403544722231778740244477854542337142640166473280530360272700900493988490373309528389131249398874360884580446466376076642318387829571488173428673335075409322413619076839818441359037980401436994438198502548135168467871654181503987189527055569464364079368828746354975524938091186671986030018681324229419314000012028340446599638478150985452435195124874297490093453866071449780913618235093356157720614244326309145560487118047373163808871496497158733332091532249273766601711719718920848335538063173305741187255721302126845998821214721284477689493089706580949607644297250902314839518815619967799948095376606501815305955944606119873947603730435364099300048907514729511180026713461255204771953121396023205197417130106588086185122981413939106331616094460400623910519957900690777191826240128504600145636513460024393650684530245067608477946032031266897496802030116904101947104313225519612690322592737964552675840931792045047177656577548267476037674207150819892521869515778252828334831870958983923559960274095618594370498667701452216284706135958904824354238266644861989860689235898799283649255501085194515652548526908563771657367256598308952565220071761523035526163751862510674375391697918765553078369128555151702255130067356399135251312862706430664191260230873879823813340578055263689274360247009907599162189308982185046478537201743140286625703356393561542548492737873477860655593558307630671141689611320666255808108133092477671642585872359768324962777376930126939008035834253487395790176434143665086904123156796017538658508310526558868609178609505840109625830100587882507744417484058938085138743869807585549351382443557918893666129618276179152938509872123458013141535203014458087129508734968569229964718072928508229949183767723336278985283178743736119261127861009532450661773962332585150729188702151371420703177890732373611619738681891264819208041766875094126429017906985759330872759500007855824778382201826740372848547352586244434976173989559457651475209240936978896773430955788953424370807427697252301294460331136285910930929383738677155384594333044478466785730872249150133743909255368098726608926093492720210481344967687754750650724071323338109724520607252301825154171310374001806305131267552130565483662072186358120171398990930279356795364329337632176579350445687952851250944468102623656415609426259475568395900244150594053818232600234441779848107704642897592915179338771064266096969091456782958093431889546078133982919617697125153259874382986369630572375650996665362347335744092716509740571780902898904143316587048981671644682339517205345850767828006099903081161683530741108558833991273986151808109008240330948621887380589552968954823324518533148104379119164841814974752185005285103249605493604358128081120302787218571504057030921096659844417004285925762168222991829328365180360071973548500378207080123452992682449109749256768834845025463772649977865969169094202640443594310243791948383986140669832728099237824209700974033597240395060488222953162128011032536471171965413691001843473179371106034753509909789776862571146364990999722621216951038610611110545198501409616889668505139825110562410241309640246885308010282573260340292112532105870518385984365943904938923360865099745732513316272218383564636929917521143711734351471076141747917549291086006421681961555258475647557889905628317538066366781927586525730963854401120060122993957131392585828727849430093195137515405472184302363872359649575560820685494412942427434429615185684891472116568068075120431808670828035425691295504718868178746524765052824979086353691894773621490931309207367231150363207342164536822270193153383253250281517320711827153759598310009862807231387495575461592762275233052147955528518463996619721241837212720439649602238685631328746159228961404363696930771716974752594910538919911811938698697398256376688403736464052727710757424976804923975561055854489023825077557831441533519332787094785003100029897283772529163484221807869501776463334686818666471157598460067633318241039310469545725851015579851670876352456933450425947971159620846974836383936497972948062944041437789518178473556216873748022464240718437541233012736795727408051869970884767958724103728651603816655176888918381938432650811370094762871425311645503868874025140204404601236083341577162472741457074626688474531940104732532648790586272111111923245334644636062217997310783120413842944868480396154956374131025289469840063991402804254545480292987897246338860857524622910907503340789540711262337009401682377396920601589898924314791668427492419820895401848038067953140680994395232255463089029320760609900088391755570460127481454344234952179753088696370143806504389401802884978649921676997015924073712421155349268405540567500816608583146955380732560201467235942134538236428519908183943008967843985347071261996483316016340654957947678326851949021712992289912174404572914644733614239377265948162782501057149281725771824142766102561988623047423177574696446990199575503538911025817251672530971854018348305136373227719907981442232184128527042610401922133619230889484044596618553550214760508915345756850864266669170318353442889276481626255180741376885535326460323333665076618568008333733286557705920866983978645971147254643212357412108236567869574079079667771440522863532985012262446798128053760329957893625490494503825266091755718305653444938946535511899532975166461100929412870122793727770103720327276503930072027505789820328739659609641962871987892542592284770233164846613557058420180907183901889329058125301666413037875140201600170334285254446320985769224926761806819577641689402322275711286804308267261731212820697995405151859896954473548193663894071557356712202692361001364690354780338336975805511715445703230169420995488804173162467795660568624068780302829792793849886541464016081498457406814265338577851455321750609496148373702438766801940771420669285049086975938075088869405932135852653079772055634702893132494498444914618934615737411193860052990164485315792559327912938763149453985683048034070548552737263030368951798477449495763263967063250158706820489194363771515156424554289223105250890438728625984782569526481541450645943523886959917983764947662429516146337279731790639749797098220850777225302520011383890663296154585039030818180684181157178167823411845333898262838802681927269893849481956574708614338014408951862126126673838095522631087202469585368470936638737203894376693373030047409790859254110205690686054608101175131994041576666752237402078700211177096248141188286169595294206743330589294227114737859455588658398191671893922852285380624435952244111761472114676012875948034592019923891582714163894485087521631006427571516540252731271326926141553881474793910510103976345527327435301071947033068515218198027730410956081131822346635861831480396306532921833933247046222777185833514926354632450198144261254878428265745775392306839861715761213374071002543786715094398311232301199851595429823576452923684804406616458330693808722090747513236453103278654361227410389765959911117263279345020994341810151019852143287511440185897423873474187363967920330439746429738004559862548668407450574990883278922043226703829447294251099780675866628688172167733442675692011906394921295036119509244524837414898935890658941361708398997266549528257496574426824477431053734370474203652587279378577780319662358823918382629432292302886508587782235665991407822548331785017633286973252718949728607713915667343063448821576436418227738392153024437549206055301244308305774463625153016332053638024237354224309622760839019035582169630844767973648323670510905039274843661704292177565914523750728781152390215529557522704094854750257610401569896502240069111423875385135224197404870743455922076671378413430375728391093308949430063732798235742836234813373723867389736481604507529291919180078881446925954525577551017220343517451691354316960878430034431527056964529524040860991688079760945638358849023003044205283799210204437133569533286689178355544628174074946814761605229262415403248452449039763769306899568239796776300823456800666151840638526940396486968134559348189272498030398127948552070490584439392852559107346735404673516267150851390143523560869464327659506589942027548002525391713161529497065650603605588891646045685481923877967643586553134209400329674826789348429463116188975520312094384055593781249697220942492631727235508135173283179376870478025791159844084797880801543838032677313057777609882047414776102996833055741980255835448135003150684772722967093995878707882520527379465512793660056693308243288403123049222487470080247685401751553016119224610903543951532439226323708842400266827522265594346705544005463836528493880631371715178576319109287982989298300271158200115889719444698517857179968582943234396171484023388136901848644290170663550897325738785341562875808451976769841515124048572075309862144740449173647226837225220910803467377772881700614396736298990405051767562137060021158525412975902651211213758831567637793269340472778667348082520149226915940220347982843371487296701386632282796043122637078584676283156246899735137019683780613931793347875064846674945713197254804855602676247286814705899293453862967648109847202173542012764225604922549660599863487636950525746108680419064268764049919761007449475003699401658529599692462485720987911300922066741629582306292617147022176213820497698786347834132461452787735661183814379147891678409479630096580456499199538445827534078964350023367596249972718977415260288992339298819683985386255564047552214505714118361069607442165929198077955827931884711879333859044081357259635763330781265445362857655504651798502828041242072253847999277950457201315333559857649063595890830114132726968336825034562375286668765320412549873450945561010284109840720190030164984373712105651324502185710067683051295971386661917981841394647477258720427761573658267225457073242324547568076128747797588321948188280940816233214304144541661595172277907420034492804248000830532394058478210720979158896180168925510122329964060393950557164316463591919804796391152227964079514401776592371252634020453529690788517154821311851600181249810591284352243268365179412009770496486879665300819439121655040094469155390779581102260566411632085273064023412224054599204340328812154450990035323536208231605275397399757078072908393790141934736709609586192945623931529094037895062658109098274184120015620806902008578708504622544564114090589012551982368813503090003670532109696974795995131811159611426065308523178612535175145846821176086398141739055345874561053275794611310070434597623605121126408633527300022158853306268896048601836170024299874519519825522549106423739969938171961372074730529693674542083191245332013457624163722472545017329785447296853292956433557828329909062089353176114324915841170658428847588123329380685572970694968860092873473097518905012574982330653507253005719330038586894595274883819451269161638922101709314203633204297487057088687785610699613567433487718782902609044154681476184008324187246546706371052607520194180127119215460284838111179055345020819364184617742961970251987698652701521549523637023707267770970118419956678741292663173418672405502556825995004609948189320390299673493973282919985828137905160917658702597159940120491055596419390769349105480574072555116900115440934079591915677562557783501252173448817976763520361672807903532444229505957350100530565412496771374648467416251225203676452656401955794586125559606531854064185864174279043410231596840979914911207399308728139000337404497319727676666426633140220115771121861972355512891528979292230594174065662198700985498210676774917960858846098746651604425675430731774056454219776971833438328879703005180405360722588185395836634793011475145784945606566746027749588838330563055384789751066164953976968573470207741479958302479104184431143031667805659473140765209673330471329028222836648689320151657644223742698233175546866334335053108906696915185797337062016702701925969486150975878710785264718226854298955469740321770844903549528426347167205133784458954932641858425972033425558566711677347037193992872376204142028230799294156247066398245041621341013559685967335847573004662552405384421442390721152305288423389529577155348342219644489871236520120392361311021739331146293226479713651138036454985006009431444826391511389488912241120724401185156175304627326827211182876063036350323216891037252516619074853897213910883308815473278710390673371772475215297915784170342259295080123639575711519802723190454111553520821036456004992417007011146983229895978342796216322367660857697262854239544755259478012712837891825391676315378401363869991564278399015896720887220618390704282789782519516118175267252379277167882513119301707711519644234535911048344432111895807173783783341614930222167350815724330046117853526440923275910279274136364071107880228994669620630864345244648937857614926176211201630965512310365447251967158979327240370468855131983663541259970914510525425275319743871284059127435817002962431581277076090816790143936727862914190452385696640191198487074310280718194690384205124172235933370390935942566847572289981497276904791210265069258149981404943831899711197181015941485281548955976703970672081624569798514456430601079719159235199329998354412196362832269063213889026160544532153716042170942818908330229611436570847817431771018749515121507631902320570330411049598770404241215987661648775457485034528885607272403099427919036274828229291200205110455410547466975814909825083829683339483275851868798008403286238818678935663294236741804910099934180299684510125907549640845276775848331199784938745069287264543784666226767335238212045463658045663538924477292461448436789544819789516028646343963330548583870217937830111353709266140356636280192495504882461314750119941650999941443470287392727624688914290336296662993830624266734648148537822965939143848841789681254045615921565441072434747402551650785615900393603221595998894859263628560220478380925216500287881423526581565190606858771449493714878975353191642140837880691553773613034436623890880479037524675121411959009460439311645076608264530167640868042782262974553017910542885770430765917709665424574497252435860229027303929677822858493223210733476513534853149391127916602269847605121262572249191631097640377314182880493123050207813393055265804214885099923911886746374780680201591310703116011034009041126466290833351530588064511548412472136104215230123172184238375679789484560978482755713735309503457895210214404626872452711790610985682343223007787299731479513728169852300956724538686272077351937712829369924154662534417243591880367154415252155034882473782071095737515573729027300637287866135674857942845437739765449685466425249224045005855020576130105277370868064394381578817696126045803319301902532732280855911529019414310451411423912850042096936072373067463580337701779560534882342172156901764508118613365532026343725256958971402091871716636292269445114532557019868836343468381045095388578191426469697655311083490745568033061159464785119035977638205432207646061152531012945514950441429211002334763377148776274617008522037029759242047728096217041333198712390145489086042295623399692097787004758903685738898562390116044538144052469276031341249964162124846491258190425593751089940591089608296246559435906369159354844344866255162289509682281819777921162573644434254071615529181493553649172856783228714657570665498716516570879431121022814062654938828271639607850619999052057373959396092715251076620608900342286379408656427200876299366639579767115729839029366770388756186985987460339391791573862529933239445058544636142283270723043634836533776706446338218712352898278672860967654460704581658510151325402111808487655866785831096037218131247139226203574736091559763909378965054605831412374505398883865661063890717071511944462075134826291616304076279960689953855119130942828717146411092412063654428035030716746764656227842166838815634930320476711899925003897778911346301122672046322979502344479061621248439807985946480576256718196132322727829841654984586733322392986980936500431121914301821475607876485248699902709756292776500489456009274354758682159270021599347344172228708530929303736948564586104517417379137185647881716435038057116354133863999399981963281341234253853863477064284588673116191636229445933276898493790679469456053083338221521425288049780757041805940543860434547247671495658628868975999079633250386399737601740818483908991926701582719117907754024315505670865661424687594977815725594513418485683820023812566606763329038227311092177186323993686158858182894381408218850880920675459289917564038104480398228354946518508805290867512176284584879704631206167891846048754068948563339600195128216468694194016803301949031236486885961006393731020799615296732065103471553507440145356585405400154420059941905803863408409381067677167155127444647153160367409398067424540950187019572430484472927044172591115498691251649593311806163942317550660562315679356208402381046488969634682310413020811044306597667487547885470748218872725063818299021813190481603016440423754032902281945706706095704803811085500530700603161158769238778358400300038235064979743654561001577299754036039497744734907986331526922929717762323503227918910159331743903745836857650587887692324185517427860946001008641087469931235826366421383013301743794538452031195582110246122789331781034614887170052049124761902906851269071613907848738444615368603881880681349099443798666059807980265452001164225973517480659688070638339460990460659261188987039518818997155233936230311064112268900752396180874168067883364269168869661115682177652363756036758813673325846975657761188980531214735947511316837380509092916838133434793388789702616718691497337988300756954863656383449194988566284765765358660994806189452389780512034318277316736171372913229076566106938764449659088458262351040121610009191299780405371168221566026099188414735101747815627462226311078327584294583224949943934140701012236965890450002333245898992804141892260042769241952270725770115938383466041912607876606662179908381134589470700884969664731789182421427644154833864456339932690742464713778281990587837405493408586463113281053293560996875460886626509602259832086847873510437016541834647199208905630468890863134011148735843381516915832119964673338758566392402711990320880900516836114216463273322112679644724683319177136928863604527039042591264466757885816163291661572880226919943529359420969062282188356665849634894730300605588876935212772202173317222028080159859759004540417370736186485342924514033337904025666733256207443606601099126250956733049560429978521774106009167673316130976815949906274476134327965097645318048609719190944320993175366628798526521398330802738694509668642904393083852719455345042228698731952337999008107664853687709588140604885238192909901072710228980436069965553131609503050556167571106628625922301360270813858108234796936618629813395122176233083816157063416654517823664656962701602558163316894432345459402072978851922240887360258104349494329043310535309646692944019888981456491064793123442726952983910468469750979578586484737059102464919197819015048870167924214347792928265065563039442761231073394784516269505416070921157529918887119771492101474042637489596609260728076261041185670270514821945123949050284788311654258594850790401958235726328317470205615344000249869659585746415630866413979298616671972035726728581145594107182234095656123205565691806189736647859322053371042394826776965547669234496879481757385310523113208763923220901828555927424801216214136711611940471441918156992339497309331021815934431030287529735170177411952682417113468980579776699460402655007270340924642053264079555954689405780242438832525995556246798575430661705248937565316931481693998324955948864069371105814958505691556920990864825853883603684515416890983635458826351099177379217287906488386783674747515081322528697181071052935316321452775818992400958821721822790247477520241230465642960825858422891442475565656993912107743683366783516490153435053179984769626753219778552931868423649310108084943702508789508525726484673639868303780338885322415000778929515507639592067926094760263146614304098330097509054943672317385295433262385908775678868016529201220120411546094181463782443078079199827729305541347146550571479942102236922604355948907995423995625713909611467782780790282180430053943560362313110057746279635572481535772553970549925656654875059744981660322469677811345305949268187734440419371403461302060136963771185717619584220970470182942021988385678608749932068334333208096670895335087220402994451246652957256960228167469014129144335748597103576870343455760340285582365084035863892217056049129140699193226218119428840226834966115125811551162316125746242528187083695804141533046071342182600676782242978851046205213200807807372625990692391141447812791330790698683898721468565029320943788036705957276285963249511187323077082570809751246684442930299835822283713995638043996860481589135923236665212752821031245177593314790832670899883209645885945707471998549274478323645219370325183763053191967552208466045590370668047066812398940165568316603704403616332842212688370433664882031089114785547182197813967974367230644320791793705618261919384422072428724893257423686211569590341672810737533111920811681909696344398189630167609358411154380428695475648951462294049606688322666326610791879010070573931573632299267743693970329090302789007750697263312271617449335827219579378323290596853553538424998440568518795969098593118084087344250219761241382047544713877527670406571623464675427727164412312223512886249969703689807275688286206789189966956777467690758102862091152362340926139742612756167395027437265287065249742488732880494608641508122598287493175011095811392374365214066654525399125190605710279240872861848701351809435979610060219295905749191473715460033546239600827712675792161413855250335153070639825239028784052337727473013475501511465757440204207634619689197531902832123518456409948937544867489208841396349034956171893056274376484176381571866527338705941675041184274332263051802045884703783677495918813832335053225169199246032491308714774411575264294982211937698101192136610844635995951677739967905643239769469170446703617421907971121931139875930020197988845695974857737729907593007541204673410241496049437495980437158389466783538828998991393988718997447441068741584484599579970272162066409330725450912980981324092186681359746749846292880596869312358976266274790602390234342944479643558519095050059883857819642584878641426690021091351593357443508291506216653454359890985276132136288039410162559075220382996652084338304692258430434309021198170998983813498691255089192671862593661097408712654705673636405249780033180635599416836627901550066286956893968892178199272463476939161445560410614752755811073303780989390189024715662236568001770178848520489038785831350131619845547070385846822636054596358687666443250009806702849473502961762282980777341026133370706829191764099792509829605838978094730068936200788149979250305400642544731124801847777350794708311388394867462396917303440152954237036754879248475043274863799628911947381480468177428320734926934978799241309292999695187141278197873869148927392345094644902558533520097939302043918743348069200704018222992613217634819559774894334348937037097529625817963574089862075304335524971182400391361063042531361436973442073618177132175260671080883946626701397640137053914132206993109042774549497348649520368518235008595095835538088746014914757161511714873137953274210827705367807879562504419217896413225116777797231907168331901556321430262610764280963435096722909726405367186458287674937682392140760497311213185340096227591891216310595174618091722986758977660528985655248950608207445909968347083033725467527568258648276863475172149786519491013880219751231299151043940311527651771605100236474852071171065253524103238949925883826013401925560742902417543460186095257490175111051668597667116869519759705933818260847360718752904704576760690818736191088533944549383335941348981683273632018456793151827902945322712752887591982691271444504945260887309661994503661847580071675373492627011681925144673024420595492926494552531390650592081584859809708339569521962640935725623716481044437394130334242420204365624993597410996854308740713494472119771748911241307106753387414229595651961422286563228408334027999909596840878154684818980365673620470564695544540528923154844692645401939671719037096444139592265579803550725914545903847651098255619057699783260058310585396510462714787377556669863100113689605163580034614332751837799013487972987511285393306006059702974892393916494795265064913583610445895532081656086567678196820670510751151260529828338954204277764481791673923991997800668355087466742297117945929936754871932855700074357195066422911289560962635077185121235822869203309417197254387836664871969479604010646645179176790986560230750004474012026579768911122386532372401362415343727947098398747232647610680052144911270609087787166732922349956542225899262012813851006552785517729802717313336351974000486991282647844448284139022648669754854936508752171132269775279267864256041824005361403211866091814900654508787435886619797496255254434556096209230039591428588296246997421087371122764242224731778859466310613588302786239463079959545426550648493723215866242105607544693880943924501286388624293461569550814426545813554157475007875709333668110881693008259952391058752283212707739116873708900363034119224954890035127299188501784541876366332390807251482814059437902982672078322311429835935969934030263661310344407485028647182012624059863029886241847106688659820558462275386468465779001962553816196501828281654093876142733533428118271264908564179773801690099348605848918386559913338650438830590515834476115691231171246667359232469884979853444473870851573219149852837293233978846753258808325173363142100316422042174505856357555492008744435645739248968684531825318208224831161435748626931295238227546264180216376819286066588787748676703583385494833478059034660770161546187865914524635415608177114405762249045490917119121630064880184205926798551177860667283035747007342354319340399099645956067309550422649660802656693182052966439898403787940265964627871511424071025188194085814385578871571288305627514549189350338287070438761416162956112827450973856777889051976100483221813411894622212643789006982914241019100518849415339633040573043588121491386317868455464877198000056534659686624281761041134295955074365815732340813070766289102274864696135750323743923599689742243676587854959432554296727760262466178513830854149156319169677609821974513693774133980748050416350592863524259115411065723567733925761126415796837950781291497606495203739905429924690457116284681483167851666648634849796690643766408184772490386515478005418705494697048650322161288666387170607098142254100550863143837170897017835183771326131325289547902026222547971551660337042152381838698073621396634432718570565887919252427011278636376653180832559623436484082534288675500110285486677200623798620242310879974431524218096553506617842086178223810561253928428021251845223591780492504111500079502543906513289936910740515762557498962397650769981048536632777358184651082041406361745774418702026221888713854116298902311660749285693682311269387791765732365601498766486437453400002555846591960866609092944800453517659577390330377779606916107458816745993337785955938924206778046885242083540476068564472403934353818732711030061142613067060291322545932862808977044954488916270547302278418346818190335562259355388140261312600201038706184022449021267305844784039961528809460747997629908808435272446855574682274962475046137222201446547822464172854017994334649753933492620014011519105908963140782208316733046668817994393276918847798347304039766941700055371739383693784587958023544967320168265992982238138392708019447385580612892948653110363741292081123855927691551191954774865390492938824641509845225473036385405357464673092444753338615321227397167413177620436926510691524508902276022901986260229327868343549600203318115289765870362704816482825313356703749922157401554165460672753341305038671459749811920327629776733060143203637080213443308902075453451359057107791385075413505125446879633822026271922695363506458732026933856821199454936180515231778204491064608968514736217933452342093971119449133276895466302542115068581766090786762200018814715598648554721854397527196480060319592973312004325162927112769052883067390205251765302163866580752145872481560072832095157196134188509768415850430625006874873929376171143183637770720411868490739593581518995316995867601975543060227864793108887913924908654279076188075580322920177153504456686165019072289885110688468632072044905276008182707237941465723252769431245118183540968183171991116600829030954926071346500022252675139828404235878744723877519414850850357791456244040260424054290230611486984157144433230501327535448796371014861456773678046667860832745757680763012955637427283817203273265985085014638853026157762854384828447937063339928355711335312834072420737352776063388181575202263797093664690420828492740507499926498796406924539899355117048031277677864247069937077677835378100676364945786010727681940076532574859670229063531255373693239348773849298660862708571218127468567213724088202169466096118500872302854919479972883531372492539316873546404047747056738309018609090405461858953391648949134110865013310114797188907352308638468896047438570625344084087220709464746076588331667832641824505810531257209627242408827431679673356086438199120321723128080071196257029472982774331045860398347152969140983981995474720345499699129589485852611819750008337702959418269170851553309903007634874866871962138050244210007692339354633691886712498492795893912827433981434307655767272618247489904889749601922646015632946763108219830166377145184603868660829346389422358479552766420414428663987724941681298686292487088431707557922560930561550947263385973443040577379071126267054448013585565399837625856472789453970740353686658904838238496775069068911510978341351546267933443439440978581881056751790802126164709614719341269121457734112127412956855208721552689792573536702967725064821394303421032734132021129372595903642947736104304477593926337736953644919915599878099808755627258644744688809994934668047666104736845135537354966991123622627666801033838065930589874795813178683394219605639408646855407874868376008192017778065059046149178121503143141669332070248597753138367134257512656069752607066160317492602479776886704388022584787216968782557419175899057282941049277905221706435552011874767751226786929620433268323892464921482352523930123854676015095207087858576818671596206748127316839547303504817965531007116401477225735943473544275253307103422357202604489179288820628411432908444749415956879356602333298150096831484065394004782360559783468866406071463269380425277413270078665028888864140934742860574404984659141894016372382513617795740457948496735359690730669410076963242881571870606963214653887057603433419640103249486848437524634615204741391311437995873115799560444849981449391527972136824154762757330304127003453901776117000615189002600425307156448171364065434722066823563533009265064494709943357577161630616083449289436498436809369534420741431744970158827470595194020957695097199325375912666664149524006626382632214450430131133563122583858671708819462914392551729985946436976570709238557995029690694605981384354715567818188221109417145655747636631720311921917193057937621123597533105362550894516262889429253849314595578024846808872318132825975133408764694195027561268802620285329951700716665068630142700750832908414133960667294497780532423044261770025121477975975943294024143116159021689036335153847239555710757479421591093420808672196914421390066561590172493101384269222140002825914201208184960070289136295762258544233548917237761705104001095048957307114829072459397427769297603383024549290522725037127467346992910539093960501955449468996275094808456850107640875387479736352038997923045429053643498696639439899901124743640107600490339227157033478295402750568682693918112506368001573141188650880331431520577014964050163433360158555263027581910309910727627608064819150226749213681882216194521989749714143571375203020080992579417838457426088999406984434035282324215584312442957257977371105547754563311810919767282228531122530004901887210271879642852674882107175725449654864497022737485959566901811635841777647626215728269680322674935265033559953952831156282744102720734057890415485685214805082386859718298521228080721659482668242132245307870255232579298693593331702638723542377268601422728943892028242488157451324923796964919391178370474754236784861586028139497275828468289696176533011503427206081975098558447384843396475249330599054522150986658219475180956792234262580407481533807343787679841679062289109858124898404934662862533024401289229023180508855088042348141821859350268754912855885906863066079589779683910224353922812837917379335820838098125721175257064650135384654986880480496187050516926708833537138090737304659719619578510711176254384176700692252770231654959270515267829976870890905184060199301022617870805396583237755777918019169302096344715067063626928802320102021546863857235797690661857065440077124660945604957448777358759253436594951691380630425586564341886460595220826654282845693554809229988413207801744134267175828069842067085162693895241265625185876084680665549842337203678982260306868236669456471904244982285045458487089884439408908262868318150462071224969117312472885577870249930103088761672993160321636568731174321089093717275675527443049489504923894953938462221602048929092345483906944763805311284069021052139583835554356026331291579336458325124107082828875523947557640929336725903396453306113809644848904713311588663882067888729169687528330354398130335631596492212998666249942611898093234120013339764781237317742056714036369080542389531265506065969432198572030702167878051694626060512327066247154439458393212991643186322308952968207344268868344648444977944438328887722778115114810977662193151665040330145853351510554195134819679512590784429869592162525688282613658280689476176688523397019560685060890385461406733632246329947951773210347504655866261244377955273013931528067090263149566208825060040912263286442157648285883000476297530870973389982798947918441047560713342245206027962299725327839336999855027956626124006605479741476824944960087709934877896188982145171847875097723348699677992548242579326709862379367800353777523118876329019854857811135420010061724581829712744511675652602820185308462461961369211436947926875717024244835948417469460003958801781329750757874420701297575966315417946285218137684393624279947642444705321744455221355428972263121900446637776803408135709514149836027376969517957574485792339619605869057249090363237026188756341278608781959658366416094524639045837277975251709802073850536338499555399007874946266886549307029494202452055033414577113197260938120341448549265681759906839954169015230934552799246981556148037298343832579811275281358677064265358756144990281122341535500829173626808661430003228572957738008801103660106318105158459879288671906454467376564850911011413556797929579017697688463442674243810355920443710781465116110185989796555742171713488504858596367142254980201844528839141950837172981106174001862621496952686528834064089165484235848615700032840935956140020172229927179639932619098167161006967994414500160593837725022831783157043155932876494464304934346617984927071049504118777642400197273781414708141752328162001560265879466730024340302071415343415726348284550961765389134399618392153642895123642893374487982202267642996761184046374592841968593597075575213116420777912076830822004970969643689903402042093068444065906230886999328060155416513963963439330810864989445247219218199089695080407433316514355115011448621608139438509883858236326941643360312035846616549949717944131651296765077659453968829124957647463328608012262471492508037166973385937933915630283493659119810935244682080264575118083892535724116062713528209946890930626040504422735658571076477794488395478341528198462524951872377523854019452264695503015478596655710506468252617617484327063889650053449567862283381726096422436860382490417225249250413863754511413650547495349608930257176854403745097321288874595683218031130925170775459237401960630935807036602156011673026991473167343979058961761969734521584104003338875610549006082067285856097110096437908916967863868072853682778195008849644181392221296527571141674298283485680251428269326882377798810223756626239068233914657827819539681593711199851583137384379055610026010449643562321715113424876598229797868460211188606669586834750287437097996445707602195747103056257663903345204020196752793787126051986429780064848724801340108924407385577997410302253188154809524948177739487759182003522624491405679712008412389719179826544992781517684732607257990892140353341823092378671862461208142209847223408099285803839142567339922039475309598786568609100400085106357410302859813202663323099123124825354904716994394478486285943761245845175165353059549971442820313843711309317909684483795204419401692807138696785661746764833752154983036279442201168466675754998007132298488961062466881976991026582928000933479670099429751411941842510498574909274163526824697346526358482019682574711430734411469203383609730779544556507295497692543153527464402403210754361392169735828987890051598851136396743874241651204183736302707519299051311072921189514493043547953823674667298005631703376350581772774691442710788002648794279690882990626937828481474346875417546023304197718225656699080473968936912858616297893600193283687017020569622143368398964696311479561745284539682905040012576950155459894561556228936430000854361305495379424508066171733953088289408269302085332325909306947633094829429950570476984166887218275345666357808328629425089317697241511685134886516368911902767934132650023232713645780797042073105787530244070151686304970043697461889485085493003490422853876544906009513809791413676948811574647270915354422602233434062000852225921486685660445990259940400640179047056512310064459768596236595626307860766597474831915369719693264699784891042442220740004945655693601935906453355344890026603393202343518617654183410849834269821736915906798942451905355844776723595251805234036259777884019751735345951234110227810804151981434495516004772799964695414947485417967034319753884059211545294786725821688485530384134083252225730193701825852139687703020488329323534397817785501790220782583547104021503407671656615954547169451480491294153114475997908982296991678068517735263663668295880331800308819078562549870564359457747080223360949714394595886602472010118080212134624318199318577917676997096567029603371768332574810320946938233642804778265456194417143558674741586435757074284877002773577554287253814000335581766559380884163851943960356906162588115894289295711282330300854390976515210369427565390288018792208837449117067129851042894556494667900755796018067147115153478809339180548452341905661492769470173032011967186941946593035175849415078737586999983082549242710396133287359213716727711836938421543153378602627531590736139082996035513446561525592113101212971929600636372721764088916920698970820033481534648674236821179109766991919991705624373683496112907251521268763474677802822452197489709999833355858584112484193023054242841740949142264029741817033867186286265589736055299905261854941495123511907933391620880791686689190676000653461203702311939604536184004488064704367554530081242782245866946784173821528185611425901323936296325017779687443520865018706350004194249370826467559268009688416440377466035471433354767945046465372790640767953689960343202613978014457468935280524705950923537425717917546036816485805411693219753129404121477456219929706198600913195021662959113754416176395852685262509224585459281957297813746099410486135366676359437487419121494117306635063620703773785372952285024028067185494640877902013818714232443153001646611121190658428104206790509717722344037958215122569665462738672817098640686213126338124786221341957774656121733347603615715637214647241192552712579342225536860968059965283363735489367339432872422875046432586432698098350641424600994800184384681369809098509535479749938878409058981317636566216151324790225859412950481212101626054405195031535580523237649636154713655369535230515629296441122780731207691221423260628093068023343608296085239643005806892731714046705129940094085169378424799191868834468282628759296000312923900644413434672164303831964534017328789946070760207125019162092477650324139873921680833458600583611203688529446452486200751061921368058019974938352369371718948862608630139038873687642925257822657079766928404992712590469158941238315381674110175758168253790021254086155981703192755320351948553453112152923708753934286711295461578290297201424919021134371825580007551685713428547323477071935887373590515301320385640858432352454750512742732470191763271248276530508087054545990435335648245679843502940545737626795645231091244549683055567129140446623871295177552067460980092862257973954461766068245480430369108350416464803781632969112891496606681311680193326940298523222017305505396408453983202566247429897068420906526527664056447365832411163086339065061191282501296157964018958832331013178107618657799835541773497338595164402766614426133280373005718925351696325740762277699103344676279074886367889240123455983979166693629553002580925492212579322302858970466896219038941082375103471709398282171109858212777211086573893125547434276708937822402905241494481548898210377445070289575385245256712710243318277714450683766173498196787637758184188722098762631240156257171899738561950320021523101745351790676532275593120160390969487581717908236882862168064951006989608351942449502319866565458776583573062614484151930815891900674096092471530492545228053025689693188717605748650088773694026487994426139714843891432691644505337826949358170948059889380299834247953141605498468459020265664193735478813416537136859844625460821181092564388626001742512038733477870316377189532982716417155114173726371615768559337634407081747028975958496944246773003235621567105475062530786125632351229325673275747725861182755883400771768721719566605473803188362461564092116507853660502828496440444694201853541465301738597812436877768104312609678304189010944615320440780744931660118107511098110909030612939845714723757399155314354846961943009116877453074124301000747230413235129238287732102841295743472380418495207077471557096913253652998313695762901971250438724877895463917583499451738206217869990189854825778352162211336996376298945992172167213858573322381275982834882391679721548069431831689246355657810403110686355528025402793247288337029218533003971049725103576950010083032892488332309358341026419831551950291638642922242823860369836017956427332991168195260081564454378819769751949986447583110250836043476639058097708935646833937953344090503202373829746937080689516423616263018837965096120456818620780335028494959847292167446551674074818621888559361693912747107135013323384886136914244394722280772691298767460770446633127024251459737298697778907980707676379955224376868411629169039265919331311779044481639174600282744370641950964763240236176042414260135654376178248909868267053557284109330062895104108440459436020298291764726078060239052226828672237567999063160493300534032201908490173200247286859355640499747373940463378781621916948709304808394857386702076211995691471542574379292276610667603864085019001296656647868740877961178648350263940385414906864416982384370724282047872965335922235801627873452213435977257785330783730951371968852742577540787940082067153702076178117006919533155049648891558148248458393248257086026091976902888228130481611501116768601564703537680535687197649657960447062045525275051335893096434847143559818924070131182540939693784707279971764398956573224525052585418344766747772153554429361289030737020455821668607903897235604541634171189168920962883273787351108663520456652348036438440632900420706075761310021967414603348183465799427715113425550218935008147483003531919508772335970846961460657161584565417073749679819496710392961467965700627563011204734635956266341766522088251554114633495669971367218756539165179138840587261411095726830381690314538063159389431880651465925869268689188007431028701195178389096091716752611444266045900263858482707170175989875330592086887082426301022208027672518560747140221921224934244946486032301511131810283403588346354970085666563457594701070254942242032564373572038324725195670727061590948000284321696104166119224796471791802442224236053519007684382022066156570339569211818559996787906866376349301832489486760601289291175464950422407893661386853043477062897274675960624893769315453526081173315780114528933138938542146568428691784401804526437625539556364066227921750284983179700068199674329892187642313290077936120123478822621665278245753618696467919663638634576677098391806748285086064922681632378181597536397021745293509960511091154538076819237738253439209357843518017249275413727457223343844567141582753564984917268360826863040149527970793535785657956745341365431670274785366244902579959569807436705925451886947476048689382903244767404083451429573479809555944860695742927191199921211856142562980109302046196463542780651109412766811129304790765405870008461630418257261413687995257360589810463651805616032520127187181934446631069868627249990616759747297734337394512096021801915030160706227906308611015966749369249430931287053811353596091145926272143220122023986153207031204732059880507446640165430569083450581360631567616095981329268121261123586250848774150996576892814271950277561184917582441763450130889231649113955226256632834048402662851006525505949736810067499016687128669140899561535743061903281496447058320866518082361054534858408764388244703322683259581056502862173921494519064301258227431013417198792487901779040604165813545379316766278280063782131826078455797589106061293161389707445757604498173291331502689728045724278052618942308421716702582023472876250120769007420159886585859117249754364419943073526796108926923852447490446165754000754326312072995220895397090407540849732177091594456808944422461630389813793574627129243631829532735850539381297423385185482820820707998732226964366453631999240574156287288610868803038587616679341544737626488363298895389311854209402067931752617175793604152875247800551714031556581008850428511459039481011497554433969168157478911961824670484763796519931830327153984138064737169242782052211384455528891617313317550342753699021108577792540811038383625669986897618468364434746983910998825602186319940177615103709505262671956082629085889719921404460502317764054239489733519326612832383081119535823761819166413847263933407104942853651770437920002713754639601374246428446565878099263140647252881432847256293846892196129784941177523665269256804121078425808128793805854339271367539145899100349196389615431579160436292271924054482394188100950299624154196786164908738411717973079449187740132420212098491686351880870772202596996718847534457669156919283316656193717194473769668383929319508566959593010415793763162078668363988150179796952478672508759410817866645663994585348391673537137916001847586158339906936730618450412702035443813762460448007296472633980385727734806382728747483063292974203503669750816392496173856359864838600969196439685486818637971371882581975542952552345481549413557433888728461792676783639755603505148172077828057729356551897434679551721901935660498759861789941367326648159339394645764948158091049191954606100409470079901990916493568477348248179902763690269032624509902044104837092475670151962452235717180020952352750251019752260298235584913358558339248992337151085518740005699292127412438798203355341206930280294392046919883990279685272785526399768339165639262476266471113977295883310346944633188834164443428893699415515584748491312281427151700671035798310146143276033487426216182357483577792982145822200582023525369928121918673050709580754118204653884023455706940314326717640191236565173266463373207293404752218697117078647275413822785976795156664163112849286863834665472556737151218075545160998983013793329632258304535460316803015138013828744723833078267863212551275091324389243593782533221236223199409628375969123724487047457871517613907715307081104978725708261296812966756149347443111101557490769329203468694484709441765062437998947028481157840786095664587132358279246015856420753121970672483664746107034972941108026265133891432026296611144824745926963248183870621760664824922011489624256592362775136283449450123995232570018514373580860517208150004903562582559059414747956701998408648416875603878463227011665255378289104858133364486876902173632360339490678694110349818325403179468433135704518187476076367498220137560470079102796491807085957685271645024192872948359169987853615516244996747083473643945766722121388388545879588022722916809830717403123845575473434023553203126023584707576137565899504096284058367258715668222767758071909031310452963695371552161002252546801297274996905514495278617889543215627332129742308169680838851232150637562908327858677324538088919189527271493960924815770151662136139781147067966462547189086319320119518512430107055291534638259188266916383334885398577379566295757509026855121472639863801848395355349901805072299168012175531102529225819503737908677738086273915664993532248996006101303207963283566563887710016350423527794854980268753634556661543341855924415616396593353065997358112638014385216399624296832923924427408798825289086061613617057275276569523559017084588047557210655719816450698921425465352102640637453082300908067644040128349584121229246902215679310028324997927216150856249156316008565802710250181815612000111383372050043444208037500365826331286523042576606025571013245992794785627998003075240621031216623065398358287149215344428891853931730206531830713607438856939246856294177893849027836158436684574487899923070190083933451575699882570710157051011598267826685252968222087447722529709119697080409698462679311372499196165548051100183808568922298814883612489951471077353760600150690367088862458352445042169342489366347949624445065549633974319819796574920343267591884642240479079668548502161029363654927997986609432357277074057968299218436679160060235896812224882259089836854480699324666861027615529359767832271891722718451258567056522084340620178058266914969747657656675050877775031591827610432072677516681069919906226936242083073099335809950568602912101627025895246828967297499542268401693834110122571689380870826054856165641272625678104718467979616488677634224065977664613668446717891186868408143460927146748283971785854233081248079446648600344437107295161371466370210991136818624511485177734555585495984440708144512766661679077425512339296907962372561435136878707043997882668451870221449458716845699903713507230075534767670625031998917076473545643383177007049455415642425584814756880214061354840043984395976388184304362051249380315575580005305338615921683453801553576111032123027172914234438149293839661301164952517181455055664447467865779729582291939414667462096866728365841015605538799333049900890444537116043513864150234021459907200917132309201746579846492337718173737568627085877800824189282808402637055462050169683111408933504386030802585853767919773681508033455581570568865987030139517113683810196443109796558320194023919001222942822579570378195733909888963440216409661250899019638486580979299356274373429169736602966572872690979609881671315113327672243767357029203214724694655881158017799041113841930585740566162789562474672459846347076641562724470291000279372809984664325361530889692478831576946925872249662388409815236457170449041157640959780437069197876810236897714247903724673910079008521183924785983277841182499807821854885314893429491125084670896288210307748761830948326925820892748036907529960196294864204357816291306539927774640391704086883371006641534057043436539883500236099910409146072421512827972892843299302280901450267694523713741258612089093604560415291130101140943294051211369818593061352492937450073648837331053636796354246810261266033671343525821462273763042750065683117020814130293010149046847056186494834162049699033922240835539480498123509525960541193926363651159545000770235089504652534994381376487663101742082797838847935267682217487305517629610644807953974535604882130152974448849704905033522337949337217205881239062175556576488376054019076173859244508361803214995661638857311462511073428026472245389452274132025221271133137146756324118333215373698019516779626783234669790319442892761276686622688410205729949785367880472075062552822132658518710750861961607384473361208522061868716292485353641602897688448827092463297574534910925969737646087371846682813524744314399119483215664622985331048679866069083894252362088019873160163259187039403899585028039148394768155258161537987766878188625482908923072798802706760550214148503777992942076956830303803684093593949507546580590940522541359605044130747767700972902786163133286483203162707945540827226953454959477478993556335066087660584070663961137651265380466419467814747857583984178313719959789104678542852958257060154434819914594898369388486515644787488743369439132415963236483733591214088538741826995562117896005334926133177935100132715336352842052810574131134787424328807633289569729659869489289017763720393615604290563772453723297319995619206235488270005506080853611475655750921359677493552115477252806697912477161376571102138250856761789329234401589745017540266409473625123238602875994625494940568832634800395583048423494832095785397344613575207902368499736431489934110690887894439373218870038988940970222795035056834199223395411959217116275379343880366162491496355753931832360890247877312185776791097829391607154654062604219724091904107567924393539427559545931364943561788678607996154560686065534559989581927718384700834422903855744306586674129906178143429748610613928472511136952844986031594336516005200102897779736603561283930751468886405111964636671591394988097007201933878971484849248302239120399291117434784085680897324713332196894683668295271010398302735205788428896426421411391979792701417103412102824513803756587373154845093943096010265767397981082624185662061915871727465672094899527271533076793266868975920845684250147261081844957345768487370831858015340800456896449975172595712151489526820922271943628888587614762363254284598320518039027906482456997048968600315854006154643284708591361503137567978040672869250492892120847340883476236986638030020434482405282745044768044726643528482019671589514659611439244769762853857863503796801833787998363197100366201028396009015644928697199097527150132808550555722314085763359666654059192752456047744572531973243358149239203799110002348442127092967305471147352074422435780373015987240547233816206352707677225568456009946192142474139522852665339049175304324156050058516880312184949132099142827334104825867819980716573434758286690911478411812932254999862915709395041928304016882099697631127124157790854508537032113117979225128660680753580876005016913339142213835167437816410184626623686020139336003217237967233118070484588245892442656806097314210274703489618279696349661080885575149602394802313899315759945210916589111953904072885189615267229402800204173414422067278337337882414837384837839430614049898955288258402221814073002207262693243609576094901634391082569789200717319278100711978837523587645577422946921161430992877074547069070820001427230657625597728965577106995361563516328823244906547461564302645687246542541292969138283306075765479824666775232974735099425599799877141424681551639986272064289651466521794585416220600982797774514537566064915199936970132366859497580766587155830762040407336939629863461438599158498488133575206346261900784384310979933878391790789230658963566801933472295435137560954320677206183644741083060243684868658145552145118272121395453624686816600111673759405629931948480595949059808249584287293981270530696756588568605995072346225596624622122865896508110575639231683851227319715876242650384085126839332912908406887587767181469589013533041144756136913564377388487788106802717889176165470641844708915040372425120652540961428499518130607261512003293087887438579430850241285297898622459782084872279490115218125855369096175986745011749360318323615521372720236636825028435335504402960786585111026392830178156839130855429595755246326027147544379644086775522064298765879342409807119882582928309265889261546278171455518156102717171578677930104104852365454797454736461913702402701923936587105188573464552129195067637130393506411062681910611125432729560863452842521737291769316527512696783110632723800973303283238412756034720216731905888655667714330636389799832260234209778989601239288229463374245834064472945294771224884353789819414323228807241139640851946678685507200957098847493759690304220158498178796207747371963252539666299561740138415842143920872519056275440380552665921519174188922762099848571993559998088186929094107150343289277033618723441541425375458740244314775078012021396452031685445572411388730827432880540234758949526178422668499659960963915878311394558064867117242819157957391624371017964522380955747144386463214590696101497139662248986961864722749111833533256019167128192976220501702529783120301513482307874499283242092017510065529589291729150636206862492877375399295954240431178903087505734075219137185777492198083962385490827110520695502714574274522334978812616450073947415475225182307660336480643333155055253060075807735992976964948513578632975070856837112874343013555540566986671259646006501950457329625365722019026300382486506067596059487143969643908495920015429783467478010259003942899378664062132221381204348202783555568004727019807296303275545248511090497334012897240662859545784521522605477367552724961591100147949690881569645528205054833491471806590386055042457307790751490748335879818271039679142757492522716613505033584635807550101264632843320276493893040346760220425137001185397143289891020372448780206727768269633155986323742602123303039454405477403506724338342412570386450671953459713336217515753179951547604635225285034121314884126937953024092444241339892668234999477105143575378196066480244937044839606498806629333025671771915531390760520848006328862829942851820853262511217727822976851074045536390512997183928677881472870872835575703046113334243573666611819172065751050490652126936213272286498159190801955008748224089791602305697058839816102075624910854446434187824700750001853235150589653623086430643655414116269552836802452294038855943059755689357008854816372607534450799992704757309627002794229475408055287208828286522718929903480011070727923820150556610934261805574908803419625884758110445090188165089951410681449133746058833793633112931803302234128075742350474917510496583536313903437528135130157177959645482172021610985222347735660036484905703480268072414895350785689056109138459194004554483041732284489207048543051573452187090862150389785140241881332889283566558987439083336127141058026283069454488341700164823043149407496163188208532332871578754540999566850282625563250029780226268808874891284528991229220532254127650901221848933903489872738774561508453013784844540318565501605619985196930818443304654747205711641275902370447399225815346839038013389167564209154561590888706760388023214969940810579390993383610621474625065164478459947510717672989010487513663340129049405956425761783161631943227097003326379795125308967600321458221287381236537056472460197589050296174187667794837640953173202218558207385201579504039855041478860610441829999606524156304475540909002974958465024265999000288655030648329745988124125182619414367336335957624090761195216281107250340425126946011055198053853050823857967016694953768098050655607060222222007249987894634760096299491254297343781831380579547075981535590313967135251198799943065196080935684455946980305859892021113578860281236376763956128869194798503129761850441588774889701731014365224939119290506259967921004026295679358479624646846154139044048671686814457958706537354956578823268347982320890007923092759019323229915000837221055718526291033836613579853850824515925924829041026009984067790419314520991993226504452183248530656614460593491588745530209714784452374295296085009173653262951123701631618144659649051672318494646366478991749825195592564825517867884469478044014376655899705172094656723762484907967584935575426058897558163977683495563055826669845472472123858748285366322586384265934458530189761436864101795457383885423913051996858147582813096164425049385531834566009628367335065445493358958983085345564358846918444091932548971125358068152923115888961542750776928260632575062149614148780813033923579970070704482090571868740663521716470808981340138538453640014984920833108642949626290647581554992548132211448339907057369868547101129487246745590663160781351093477107312246781549902191468046890996305133229952547282486405935769503281103201772084525293954119366462641038655473341737094632133197246087717360039104138009210118738464720043794204615861036921906139876929376157373844364076165353633459659838704636721257837760586714795212483428134937984071768720033999613873781187413194964230846714313380853350249283877070384960261481271531644840171034046881830197232533683680818401444139356430950188827780011846891553880655717564720118219264927436658210205848629455737783812337016004562420228161932183039988324938460765372800737585452156153356254632543217434791014585005840476828287740909683114483143368127552974756115660105496540076824202694780125319444831497627233404166939980383348419971739310074372678048721994830286790183869837914796796894166048106326352378228451727520962980066566081886341716709327940246036811478793382218934162074163735606109847048029058202499967018826062428004690830532147374642021383942158135036499633502022091485544843541900461969649757801941009861450824694029490692070199111942221726833230965749872928464656387688395761062797873416641394716348788763050193255423484674017364982080120902240654922729821908240016095171052410928326133373412667652490890662261216851525612717142029580214379463268766570372073784113020732570537810408333409674897718327917810178872183069979866070410285440772679522875313919209639334490034419278480348664680219153657877953230748574050528285800039547348316202980975713342069798242254630558023653196024443718751173286026682463462496255494581820911291964243935855447497442783114941152861688432845427527923648940902659115805628539242517519390928957065164182997580722486853449861023867947564461253032728675690048274317139656326809008358059066176600441196050126184155876968787151353294121229375158381468588937994534030306753889998137047204255430548965500263811998778707120236866609789833273671779990457700685712687819007218387604772633556523214840356881586370633105059346544362086922452860349020259692366237683564105413554987746358008952264339957776774348948512741202843943557411228027227977857510197506035337609231354302529093098215069321660840470042347698113548784399068460153915683401946582774970190989258135539515326566036915167228216409882718831895973211794820725068400099595161610262349256854881417128827529722496578234891132420840208794156756161463022457601652598934074950425675512111284558543402502936354346412296672652570797198293565005598119107022766650368410725157736290280706267547681194593640688730480873791518582340891836850301297740069002276966245692298020880924244907270041091124169554315425784897508202292481922540312441142160784925488382276304955807210368811092934666161129293182884616438553750079854467489527217566983973450327977852108471603411668862463550239646704973251944878509210519813225468056361355758811574029424255433770869807945054592487380262483431846913856611804877815016143838501051059621387618792828729943375756688638274386355468395014314526842366561773723621124717101317269682436391226228940171211741874411254739616568744841201217029636778312398382444277916179449880175881297676955698402480402170666412521046192327586214998163726096095579512850506854020451724150849056680473201321235602494420439576729044235302587503839907776381205356327053582149924615353546757763000710864657878496842061683084002731292005068588374765645132066784889830284141682791573102337006924461483053597920493976543915887319580699183014011761073310941489884530025394846799499124799750906938127958970066362240198175391484759077944459191023138821833775971111536919230982853350425256169294013438343165181690067739155828081658333574302440565006887081446635982770621014208767542512832080267005883312183561422485813482773043459354492452058011018286416183787344796141886589549326237472409006038325702984103841854400529462239617941912303044221181724113469411947725844714339200603268467652590197860479825200350832790537334506575950110059881832751201203779563173899898074352307641938075338859537565664687663949579301784796372119669371317172140353351234377059230013924796366921526510539720612295975874492017182185979614315363935321502564235378689530215356605954809193386523854079360382332027087195930879358632368857585955109383373944000039165637894876542193556965033100070516236378988734439701211076896416345492082407843471480738134692171927566526263257732607149097598574334108725453260989337844949266772664315786396033754906367773866852578834091234654408417532871022603054487132513974027904680498295598854078323954343806451658494578993056260085197254690906466853695814842096167419662470609945933193080899124363563365697759374664571306129640888499418957494977107460588924645486146544544868483658749016549580256347574275930966342573222807149286909122446843097442653176236792480637194761639904133237359170063179758301056765108466065857882554223696203925231022620193460653738185089280673471426480708099404223652335945560540254592203882455776500105679201030218321033573072462860873314113294019298778481996742170070631973507364485645833189224998021235272015855642290735313058830944341804496354379960139593145741740887983964268397209416505716629960742531211053024573721903751937922179697126970013423264535745534117200305552167516822135452730749512798250016128257831835857441467713371455626768323636858012759888681582354773004645523306268811039853898318151354792500908082219525653701139311496028375851242328127978538324243905357141924915986438512568426083066544062711795179107180598644882207762287538162057491054621611974849391744162001410527462557105920386963893735355594939894001257464173171513051327929828925068209484945872529193201049191809457904683857069645734464584405602877595622518773950104717269394491329655696079752865638198585612236904968479316065978554758297000067023177553733520001737323589688535373324893372542925970910089282178337600184262858148230962833678469633893068500983940888306787940754226565892669484627162252462449376844557766437337584897133762426263996952775136585298112708897117850982391897039808691032153912283115017920172127311129942740053702567805743542902880450920835182184975262331588614768631276658123392533100657729682657500751352968864072898732035447991051710580467971230073836377264519144386342606015195182673616244452531595256281780833610592106947882927044361007995296991471197863906697539556222738099412445666323047102559791698905479241105526522200547806171294519575103989431083526057598752550979682478045626013062926196160739294401992520373309146465291533738614811611575965885145743986225824285213360108099814084806372183670267948882856456320283602221310241547507822947779365065972166440662551947381141211178342948720110788884983810042729047381594127921742198053060990595071298352039901266918671199973324360017522358015684086678126807775230853941130732931548723471693519176411070858974239190254295916890891137509645909268843309990089433164205963011737916179498055988019380946228490762128967542910175744064593291190790004098323012859207632097230858128914003190437202767247828954623078660658381118175301123210491134051128016659272686046772661750373376406505146699349169009642155095809188587995869263908625440217564499960500327615569279799487105194471625071428768211592255100381023191156985027563966853101531175763428792262689295104066943313818907352480303736319635965997895623065244756131060936829383822748406198052534027382128639254727969206363604526105526333651622901262446041785647683837043790246712892904373496630715998059509486040802996156465255786138187982619019700818350483589067082204245793693587316304260015378110315485928189364102430082779777588058005168735397530563353386395982386095684042576625037059594057472093005014748663035133170959112161677041504232348859392098975867601500946495105023480554754294901814374320608486577724866393082400794261027401403202288956668311227868236888233840560320105016549414337153554965342600833840090397709439770468231848567475230403071534858383794876392032773578395921702271533476330795352799582500126071005779492487562688186226005381867456109213640637257861911323500980819238959202132637905416701580787664593585103627613735239831999288350787167859653225406320394354854458982954266862084428447002871894377305559571193914719434748205496571300247440065760425308045156305339339921048052199115965409092131869812404072359085028374064907402942923071903480918815328687049578097382785900164195396251049926189823848994189888264408814665560596326885236874659255478251990224166466795264159120931804976749523723850959675640286859348769627072236310949381084920995031332720508069122759722926078111267785313281294451289856733421783031649481887737189263719176700198723824739467017642917236628862520348101733690942441971034499663782389390362566956616496755052151309736182928983518109932269633518544535912700853316633265713820247802879733568600396147297105744938623056337531925364152939127385417474813969552070178496373292995333961162232341229623985578909600604483356192558932261153585958883877099514042026850148799318033069988928743833029196126708781259158297711309133706217020183100333034396142933944281657196604646836160404337658667767662275374291596974389497519158168869918720722739360311738242129344621358041446383312944530050746763395151467094136544264979875601095311035111120479197015306321969102213010407969685739439300262170023553231581239788064783493128965359050611321154496952076592678643449526244040128876046029662047252032212737468383496437837746839511154996628236397230681529039914364749816254850425517842101352702184529482063309940372004628179393474629083836763057737861678501461234185183858461209089260325778936149216538034886860613398714076863084104774561597726389325152820611797751087135910020977130063016900887010729570324204894589169188960930290489594192656036388582898790135848470743351455208464241793394853083376533378841181786189359694636248619817450776087478341458242607526613410195859451358228833655420085717024924846095021240326610176309126578111720044674537104691562856770072785287553665441144024286340309921093183816746248896908676205802492703653976879798075939221045957145247881684692913327272151529543996048015378717144133895371973248360927990462730951828720891696159297865118064648873914738998543290096983308357224166938895500271624375561728159968868535484770871672464197628357231388784008920713953460038735968249366188634930628654466619306402140006359502550054198481575714309583704822645382124184045739681949858086676406983072327034772538386557617862683440953300897102649345547029670648037130645773966288961525321524843816049788276732348288080603426948905203600753360933485725553253149377109166284747924465110354719661433924778309373819644193425619307916490589593776148207109687760286827853892437858944019624358250944562779941750143520065700429332512272911361407390610548748277422966759277879477391011471398937142107785044003202483617296118059484349381885289172421103462770452486810889015622127213769483810077137776215869884361244173295909886780500715833847170294698677324748036689749830254683106589033624730629472144621908710761433035897116358448451812407329337128946961365808853662101494348340571270893332870432737436735738733267882442583250119670862505496661664336593608187707326230784046508052510042299831670629954239297848028959115934148847797661513446343733988517891498877889248620532413035561509260899791004402313735217797457989235241016900296952648175286878966053110531602708146277815446400610634333388587313096199601439649545901225809521786899490568626250219991855453322719215042393078245192538980595735111822680843665227759654343682311590530573690774415469221304246242308205836254508934461676524459064712321675477576426543450209012376853065007890872922955180157961031144675748675281534082810558976541316882491379395240138651037265130417554434772293903021701505233475703887752566271194614126656324254591065591402508163893684957641628603936428330326426139705227691936663932770950565417942977810177108572181625657110889161637167761616546758649412799443864641312244541770500201767944155752654765433903377171014100660582029688588625387343288542508116706853280178371536307902372026553295054322745295845420490789613300867628276848185583004503572683253213217487805599776921499687251534181442055902438720313971548448519425989333758796966053711334248755736681024028661390284215382698253882707954189548799399555871305234128857370000749434996919474722568262365145448329262302095948488128616712213557719066250229007266010435974713478595483299376374953667366305665728817558660967829301305340469715081707846618711784950590846883637113473740978835873754371436660103337676749337083880564756674927526917199434147550213261473906812559782832594827783116946657281176114083733638874250204135820035366670333236328633378707718691293767598529348611500845373886531536119146785485006288508210715452737251664812559639361064008147393532499545434701994145182872531608177676885364207095450514978763370697488109618492585579784428125732018180692815030434300432766703553250798110373381542976467171278335223368804689428527828318192984529740468091436078353243832376188645218239688955107918821469865208015059524702818670187741528900506528713325635296578637805959754856912122493758302429969610705794548886911525437078393729226743493226539955906072573416022849544982881866794430609808499406890580437692047088756483072526122694460225051658872902255127287950531558833057767662664869821989328031058019846849973062348763640866138938103373862525194461612084762286925002011157838832790364105215314544409806479552725342064748152975547676981596246991678238322980225985868637395178210640075928078801664333592311059448685485469129076507590145750541233678675835931966441409498029651927071273002493210308290493906507059804779844672839320787016475902443995568475146238351944336920448491187685084156934946639327407939980662246980313232181358148101184180883327948904780728038448492698819857961168639742420678124057871746376398148761656768194785383873206866363848815928818118941082702279966539698537167978284026972692531135303836621918562877593140722649961543615400538502372063667146610588895823637396158353028167661016361213281900767620796890885683903064917339342606766709209058296325181326253069432297746176469719918902302247522744552183440889485610318769709077527346365526198804207965705116126539295367234977958635932510362585606279865728462248352229849515732236051907958895690590539303496924080944450236188289299359070179688669970443469216246705777123868616435347903203237102914470066305038223183675304187130511822064748115682800091669553352379541402525331223786972539851504616020730754616997495890240003288986829728573887849742803305021448591992369672521021409264671496875205806302714425516925091601957370230258911283548196342175930425240660088304720627497603959386272907740129456734689957951763200116381408063730348005087421321561219428552223831515534832995170960383487197077080000400756736898375768583672693843045098550172769505136625097550846870716114765752332909949078768668043792380889148158909009624313458877401185550018508839878884924641424112549822682139448985791285506003310399355128762514599377947585770462795020557870928094874878451629075038950339222628436913198945400415693182915927067306514615950006338937338553942183216979320416167810762819934847116955985975533729314751213421098732625840743990958320929329314676446169801885393309958370330525253989553762680349656612235540073650967785161566837114304091423008094925423255016475547868538170137210382045164302506035449455193100677373255023050650430457645015392412151895188365460575090189402642168721310830891778452220269350918197787091049701509348705153698062853697858546352680106735153104117774313282829969579517344441580709730566461245046542007261219913321728894490251992501845384268951555410924702483328957062296814012742921315519139096911071025675934857586121573703356734279957061271971112241742671721643571869104383103224951168442256154446907144688699970977827762771774239909320395555680259082561026098973193844011271675987050256826065322177701807138447316797488943502378952838403370283051023329498190900383922217073801590019501440862066014578747356312152809489369917609980026974515336426332601370722180038617430522175232473211555567142755968492566912971642026130504909160159254247371153570883014315655577677081814707427589072003042714188839804017873196649845243395450688789296456765452151390095392834121198074685463921918580230954183360818955211898996126571683750449889248993576142948652011863959863891333789460912317794367841746173108540033190359045545254968604007042069832412285333215296588297597046020693176523269533961144925895446608117622861985025821974651163829427468618382922895974091269871578572209334958269576474996588329753295087258293760166336824008078537180090775318006695451799127097707431207402009298451621162224803126426954988789210429262756465770392304668452051421171285929386760424023787756556890728410693696648202744048601784772485207524735229876926177796072535445501791530830352059476683990708710154675041270810820274930448433828711808576918912430411336684985284747087877985246442896920365707988897071100140755149355551937574475374014396975467261474292296912210766017980234873983480042787529053541164360600225902600728588749158482416668698027021427818823137248801912585422942463042048740632563054657341560830995498860413826712028721541580537236661630570882748577884921379857565720279530061711534810645226878439657391393020507912001054725318171951829581488522666924893643137328936187936492619435647131875836490475897341066808522232580395229293954169319259034989221592246736659265017905699142501168306100052687389412202011430558477337449231276151767390845055992811434097003612537051734754042789708506370360747503139335583419343658995928970363873696228852562583666220806536607640149211707432441165005417198212073599470492068266467764982571603930609709922488883644914422027317895880671353365430566205814773627071460377272382637651896775630986987191974852250328706413506488832787418706450688213751003110632858587950920802116463786221831256909572924048010037075017254195915939189488482615912828631375384647070417587467988422915151800443512602351720066555649953181000457869326565002735354764549562564577750007315690108511806410329132386901564280657028261666465551465049309616770302437022979191845072477823114151875954920952202463447935046516105608962072534436523260889569442366625727201560660834698965657147268182154003723556918142371672881267570386101160894492540950425663776326301405029943388349627554150966109619620824858526092510308301551589714116139229823151272083726603629893150442017743700723797599607522716999159161603918257023200172559980926823448370814525331746945292180794719454407678514298203912154085844604447464578566704759620117694684270897292988953355411353905328450342158527421663200133118562636727201412201970414242601723672085402978249108710065868379803943317151825367493774876988189317570136093319383991034647146770045964636378905648567206618442880894232066185589649920947150020566487569955594943935367631616965937730842235661243991110054805046050353268334383427161926855917925724238142393023937525665772029295666015265470728443429136317549074796700829575300657033690897977199696353419536321894167130068715751614688663340900783910413556524706893343069371116880437130817602485087724398045033853106590151796437111218320047355811783466285115240461677751867705015712584184940541975264866345486910509129485150427179262054603740998960272150988136385221017258308757580525769201250797487945241757118704445526207478651630748075320299737372088995580455743656846983997211611869318853054490927599107426395375363930547866786158046840176412980693467541776141353668475258241391341094326134376882899268669302589209362361400522304280899788538846192944123722058225802325867248322538876003780516464585379789273477746208233150486458862469590410815989431886872963025753956213253901898941172545111973254852097951658886932661914379406813530209335939936201916725583132776312843401824539228916014324941339772722273785456334232890600061814515062161879133126930284243823804029933660126283806072196901419301008218896306846363810600979439421090712742155411435507175802462099381780591881455667598362734993358221108479597065899885978516973216941643979329513521177228196258612596677440400896965439343653038835143376604224519349471725307531087329622555157730308940134174650379011639713200419768593762916518077638140068378234137351021840028941392698659504976201609902367563066642359234645037324850300092149410831594721414345258370215295678070445601875795684491165009355084746816122735761374069861892200475447865269957789605211514821619517054493158477504802868952382127329576185088986512278051433881185487820130216502992015227235851528633305539593000646973084394154824417268121474543095452093207164025000028151022688505208714401866966267780207513978782092233200254761776708124495386693068408415837847056669607934192394690591632554401360698605505192196437304780445937490212929889794359892275861900312550258896108477305734369432456006211010151161027801813832142856607960929405688267212943414509221462258015956195877734820654710133710507888140641375646108089391181039893330208405846938300947358519521722929248814174784835320300051735748544670915621564028440960768392750470490266161455818233253281427769842829729066311639995754945449276336019751702895422021997730011741264728783344536072888846247737502348744300302477597277181915975208267091042921495657835125072053996055142144360122611304306951721704116581486333117098147273140492562774876801647617865581381326598167475221844446247152681209955850504064601693071381070144779147038320416533931729721682201919102895739202657008462368262068617916584669793069001010763981191176871181708316214140268797625124565907858039772420760489655305476118577157368766777742720656639584424592777738851994685412460394187970882003239094893566386171653507696846051119475852071370175134561147258505213947397844582637261800785658311522952857100724262218268121134548861441521555273976478820517322293787899987621024659662208480703311476923312465163904840720799701142896184447116279187215184646406295269844803926922400096841494705594292230210287317517825674703411593071067934801010395525216948874820652074297547824735399670729629155403991920229889558665323414098908928743285839390924294442960967380562816240644386404696928225213631118831206836306655339554280019902612191259252340564400185770216219624765779894638464086904857629249909488937271560810038687092889678776945628800366921365463118709518347365991508499300251763345632532426103221114643655645725490683534158122888704256146812923421278767242816473285202586066308874230485862137741370122841527512166656228830671385492472453246595353388799187684141827589175656987765140996487180475144084000557790290946738603389141872443980115464599675950473115654713333272827931240347376157625441424493564820074143125979144572869286967198536805826369388396936697801726078452257385156095910160286030466602819494812197960473851797122199868069111953326782400708325739324784194859969843515018528282751470007439539801076095313964465760502138195919878197169040808468181733098781966664278582976894514482473973370115209299245109453924355589689960550901057326908438590369871757873399814251246021211148878426737356533344256563380422033569601271466533540563128333904452402984275384663213267009311736319024062003915473753023146671760688696401615182430429513842428453333729037917315962522399010089708788496279404931601643618984040138256222117900330230885725491991063805720962494192044349321426671907730131628401048339943020058922408049364627245833479283051517891483460642988433411445732593867052326652473923596255550872257776043361103992072088751555594233532451210992342120418143196846130607440100187939813679447556556412903659643710638583309388529804077989695360799998854186074614608076655091464271166908861731096408005435741338857996036196557206411347133567739149403053182510086444076677402312830460502101246844054021304019335647227307607157889758340982545266218677076949506742022838432716086111718927239519415850207352012531377255174124238801307150086208866138209433628635503282248700873554693265260706441324159447529817053076183208337030382464168163872179167670194980900098572997957200876660168581355222183366538354309678280140372418596672567498375474164400996508834442667995484709346983757923324838956082467284465227657748124267155082720608115410546657575324124933093926141377512233448824843268239170376685538073197193926517279328986005599259814148541354416157417720312229916821921762745648185697016187193767173517268913278046658360254458814844818674837524220487706582663774525991916542690372937561709407123883799433159128091825353874006009244594843771514907557666297322208336667889735453420934719776878852767639557633758360359310945064281841366025850419634676362400373277479814625532825313968778185254919379397917991166352175079121701037991783163208439350012692785553415002115045189739681553485869094497772056890435489472294757173529588702847498128273970263211313578399209841146445661433698702351357317077897460823947113633075168962180699812422018052643817867052328775631823762353654576139596842789547440889903721099839301708605347909607549045990118755065070984926587991742558734191678582779000521142025196176248452908950758500530326622174682481135213262433049994758334345191286005267357883843868741572989291072499985403041477421497235998654062417107296184893610893019608502584202785122135762592174029258810087296057729995393174316656081447408904675591663329979317588168004935516862907880723196135190330255163989519033532037598973384654104107263271358427452673020653785104620886929714865301456993265428651009900896058397261514383184579919891126491594868176002362730616282062738514505984910145555247610233140945193719592357468811642841166095326895983766504169114393638176788855625155915112749766982872971990876970498651303563033802266706697212465443450884322682374032112286015876091958828336764388479866899911232387155734195485041130761011685987755909588067565983421601347125757742957545944045083731335724218506862717795489805224219786346644296533986196643236406683704431121350864160215616034806770636002002990312805385045308153153609328671987898522823491134978601412343168388982620427953340613897517609105552594356329433823239293178663330381836606302432170418015954777486128654397748214972563753533793972040865104143733040963238554189858590527004951536331253858863038487441287861797578438369503648877398872550344862794881811358393689592051314315513223920364830047119174679737606851296841738458911494443302872437260921579565287526561752548324683202788102596751846304747507844628789078891729472678145480074719910582338587735547096977426694976005262287181599223986965443861251544860704736425823898603810684011276937211834041919272989971030960319322019584729790159285592778362444332474366245778326023228109899522956796317781014633165200770726479801168358439830654933415696023790555288905952878483349165572666253940273214819095070147950287932623569188120092963274186239891546287829534977663926989854736059628510968706272924090666824324408142804940807545872774026414799254872098068072448936241602177898060296649489759032229913309138147548524288183205869493689434365850393992912964501460130238200386253435067416827243985066282511351830340433002134286033119011322132430954379142525504738096666421677813789309385411002411634183943685975244193614508666970767345424630070371970846737791437990817574732705234467207691599475429670415736998351972255319808943530004720898068581651259865154660757837390753186222946431997702643452558331562066114474721857489016304843091996634097119892440324607748571790078632251185059301715884808182461759392648101641956273140768980862502817298454348301801231266895522442855080800242413952887583087108385614722553643854916109404838299047975976775251262254857185577690520969558955667876789502040099591010288607240228019460161253059323770183599868198074097906332834035913006508199641959792951858423140330964188457045258728893299267297464691196054979043015526837711582991454979831600923535942483333366497024380876705704976707560203936048473942042482463657833143575729278151881160306694532960441701226152974719664061068407382103466357992498251529856807979714280754284903854139078601748696612082793738291242393222671951733877277551623607770084099720977754548630559984341158985153985352149023128938542619050357975354700143780763779973768938085433609650341984196129618357296530401863667672578376399776902472840792270118986430246225895504345805657613291296820187352877764942715405503099676001598969675267638918143278132866722968186709079463947412158444807472478870972235046089036492516049701996912185625167686518129442312421735509649644549607616901225611754509998570266681477009978224060612567809406728515431196843133521260587874982737816505309162595475794382304577263766650396562676707086565073080665559296738492569008689578169442639576558345209322586933632672345306025642984189958361456953691836104139530445945335116305402496869571440976219886817684996262286234183217003297085717112429703530703173249272933364655407682579510687444756760958636783723690472445565563251637499064630022799998439678969083847804284029295152280406010156265229302731561763222061415811449272842205909663776960238195731172627119074345178249597699835815732558917356373017215069988617482748027373875962318913809713167651690480945004945976437389627887373452189682832834805729107237580053439152677751630189491233560280823864934221176502772948722667066064488708110589194183891319384620416981665205912088682085685828031628792327957510656074555866520421617484152636593476559099185265415420666524817421615474410545193572127986380579217013333352255500001240018421129969369139173303581163125779441196249587076813839282552241297767025325932318826000714398312806278387635770813599499677642128847238133844395766556087848493372249467400473094216973658178119396446019262041577251862953604100953424166605359900963035673643730990517760295682111378325329296018273627573419417789025507576620132468277906439463438533719043210282705927384253464988980402689126219864600808775740396455729252403889563030263962562653033744101067592332161209455520883643752252481370215910673449628271688575600041364326672864582715826834100036441017056772911509401274397493895920096903383825999710208050109690038218993777004719721975366942316950534330961759316137876179889142697100897589171333127267222663042766701806582586047561790729566392993802576013279539557115675538736866571944917025573267847282576716020970226237669332958553852351653057205350095284646140119680490159895981513189221973452054470480534954011970976905873101009706671382743971638598184454932858280810288683834598193945086443699785169421643965652020732206422872360044505857087568554997544911629931371834681747845171394518341319183165023911526210618332168955641364157038634642691061796394967202353452115956223351759590383408995614549198886022945798215933314490998447186546448232304808705206846937588690682315148317161447812825915221745719475503623973106788852763145478076570175790217708358138197591328461295148279628349485153326377258615071249637450108389917039579585249963233894050018809544050456996799723838084578929458078609106387199510349630081245587934671648650470963496761366757861078632169619301041764978377076921638149165470926575310992442390975497177054165097425598479387777745384048916906548218909515862227628034811961541129226198668435081431392060146014275233629072055483719620653020129071686284655738946297940433798324476233365958556088786949430087047624658442497588253693414528113896836905339251373367482962230185600577278633310862998009513823929619799656511653358788396060061491154093810311881888183209505936924750097897139110780531654267107408268207936899772804162489096341172242364220932701945922054543838727614532915553510268945227311120933248721200406501796170534122092098177423309549199832917556948451854656220166703055557997928860758965673290238301177221761969043892646802279762766977193461795391901474678353783889446194471855331933122034952763742147685290571697881178041865705165414452018203393558065784661161241295112145061157996894702405449441233588679574086430244077537048066930692481989027363035201416236590447895480578509082110942684594020884944501469020184350147890365522782130314845400048281169189596019627672437726114232699722706056344879472698862617084061731561349370746531187312201448385504474079801265902494700200845119252774953721657597167381027155298686527520009651971889730452583314027887036841802358978770944021352146429272014229977134621940628775648215669671456787074986618546979286218538821948979118340710292743738912585105195338156832513024163641620468316142323491910257442916124730894745761723881385517712790058808310999662765970252766592156210804281605347231237599821330604909499522378650750253388136448934334863298838460550144771482056003572445371098867502101916103712554738098259967591687930702343415672641136145353881947620550412942836410545278480620661304318406246556278293123560273791426613961113500683331541990201533618155242768236556034114455412338137456022459586497505843979965585489967394921094569690248485999117909723452622958852306252001896422338221030962514555938370239801421732516114332251789821415169438611406963254080665200208983041864681933176630298783136388469982684760388601570681507775975986132758217249324935942768710527692078222238527979405486375215158814212290707061167159911289330249433348711478552341736537417868328748685808863961209726554353322950820009468908595404773551121272860011956496096385279969617385349303936749569431110274774002553287002145418721714009575166721973679389734841875932631943449092289278493624000304567427297141578703884127869491449300636998772889564914036501608426799813041111511376996940702194150006331796855072451404348883463936196978286322810053460252300143995870870871840357291146737283735126533830504600800568012336576979232816931356823933084318828209827001856940119185982836972879667581429599320030221768381571037339539595361984610217888390299335533869891464436052797650169822653514245942736526340031328291516963112669460460683215455579633894526654884998666841982911552700400496108625868464613652836443766000800814797340392756318560395259601762526389287309993373087606199846243945385067509535867966440432036637542577821139376722616474534503033152859375126278650249379727043092087075058439890169561025492098501719499114293912238164122724249417165539771720240384766156050139215282241993528994543178789534653428305002214841363204605925612366829352610125320822293504579680077441251592926559254428237582698189735017182980273553886608432802561546614771058425765587105415363414158512911618242905463555959331740320497312318953007441530255291059073473798915892591438744178222467573277246968629055247089562529338994104779796482727426780845737722273149217616146378972933183686461522741942008582923333101913772817609828716188339153393116136232001280617078259386636435895896993675223970749374616566102513282920158332977644877127985177794698761651647629981947556983301595544671039569512327019931712196562193245055309871301149865117434013381296699298697813405172010664354496721742354375350744137949351289931505742287369727017906148483287132389675970437466802910937665108693897374105783080214812953640581778863190631737275678446573990155556677127170503346026658213320782584809996804107812883611835514019172238961667878665769246193513437039898321275085530525702382887330779161891615650840960435935807587939490232723036201352664776899535673649748375100643283820190664391895824090291608326061209152083161393762209857458886161128198435578882618371176392684961235980500731389537242962925540524564327713433749950122374469477971308636407671224359939149080882141125819973278804470303577216148908047546311108650988807331438744412898280483419318891587159277461184767450912186572157880404359640514462210109342057091452883524372056151694526076193332850079316791800480061169427640421513670782621757504784613786999902092236886365240942723259433730473371735845553277964428202231518957409959550964097866700407635073856962165684914386659281736113999714909641092986345942552590401960526500459756588786448178599633456905921609579832679272636642533269892634316383909176081121210558453737032840488066277877921418723955704892220614788924580007284460260867124914184462106416260397840458205524487083272532565112480406597899884501217873718094674730259969280270341875500329658751773141651559229666075131063525191372039571385272039586218752647502516440892113419530380085424249553240235754406458409522510569440642877411554860110154179989773826942608458717549026324959396969661816594034253069928266572620691906465465038929520438307272171165778393126265708880464679027682233829664383834098835988537193582806861548886228853742615995256681308890785322164876943800391198644535686895003017781989402934707904270528786008492863708842334732331945669149230035768849930425102865610065400061308870048044542852240435119884361937866468444070122648442580678443137160183279205287248845086763598328708803902233503047775733442908585988738674129062766950735235843953462431075065379545956375535686695618893281350932622406384283171502076351456043510473725775369269187204772995883862104681570754772709506717647872917091875618552056767854621793359105914167218810733433274476009838109930556883405658361762157847230341527245145549658153477715688239302108965812391033742729503098626839241565673112092338938832839943997669566601420014067228045179726663069539681981207217352279557130408462582461454596959785660226915598334551068848760306148915385992923237829059538016118304108644745811750307906593447101040035956768127263032085117228874073681930828478076001434034187642442833194651603273901706177874215372834004036648934847798651941628396288995051470712372978606646024255408619330165650129405632730100075062030005470126195260958613508836071571654565270255794792198398415825929984687940473256803776035461766519395991570671702070172440959691508138756939027250342783083908517725781470426465972516821927757625731441324125297852779668188114916087549442714682002662402751390351508907930552557952438345139077730695136911852383022399097548734644138746944409162614395570997773070810805006451359017632340619230402811556010540744451338094840502526882106830851300301571295844289817404370997066953096799161932314906310584028172829844173095966129637455087426127095451313370967878225243553459121740024025269838169277116312522152202157114291923328906066642612419598532859634438356735053772858220972215578249692736003054733775164439723094788942202707187491532055467420182002209845522819756782150242644382192575107155380466001699954315977154688142353183320998872444098405577614196425671406158463641063626508278464361919483638919304265733375847952288717016647411407874363591071651336039505421512805249553093021530080325050134821182930195238444474622968914881958063146703625924560974573542981861894780410210323461450668734464614920384449947538959618993058116989243135369193778253419689437125531269675348187976177059091827643873049893202232986570751861761601226928833943178960892839706102475650494768029923341857406021468824946200380315475876157609388592624466481230218576008150871973590012475277278235782093128725635656458960361574770259592034885776908248655623320746339488191924192870948877186567435650149413218626506338253515167773364066713997163171418822625480218632284649694187666894198546691762119531194983413126964321784584773609207964435816268663129796541722154118275922608632281961066439981251141807316089825551968043198651813234439126973601829657046725854154050088028010750331865556101709695751240392143262197771978270637110654954310834493815361809983828620769962184039170573988604420563073122992362549764315533544832850010338265013735008522350683733195466732259429366264120829105511493525358794285868508280312893536345534371357899179670449211211044861264695139430363545957764986349143268010853084192037977257621364135089064023757004230134248719941210076226886323748856597917064270347590923172511855866594447745272142401250244502761081752505770900188468821712303207493979620690690653484424177420618551209281064811972850139316094207886039073215270315071366372740295604278135466648109665894786211025416724358567920230993073577593325593744526647238262328288383928850532146633939455185769722482596548715213208481633946675231808140074204677578456937478593566478242277542304026926027378333204420098516191809093814126925548716829680960612417895576115688144607931656035457177400321303524607000745151845421876522342497427385485409507690537683147229818482960526759981483712476073116128523875551212700405911443964955489533347295097023869423798311022892162841386525443745466776544229784176724685503846233650778801101574138838387841491555727870419359496351604185862081304541288397315275382661293200667200755183688766224680729314755952778222669407723023085754407558492729892652819738260234812940659485624245440591983404970767856294877597201557424317698161473695803078599762121042440882242282733645259985600080940383854854200658152526458177655981336214812566657682489057290779542823527930193587058001656800899690665867927078561293578784995897462446279321317199785839615954070182686188942583798400191620078148269249557522565432879338272823037865747651116741817955651722146629596830972826487067224450388472213566428756905295535978086659205056362466868554127003601104230126223443646851653611737269727152553533373555023001653436806313942452458708171595085058135422159273514834705444167690840438258605203165925316146251842809472657710184671624366609395355713723821464496967500719392051614080393146844240744210790398136467432918623609025321431776330753062596296923595373709171772253969447893056615177037185892310087973254947197521870459172850596326804407818213247050229815749398883840191474863875056756663062812031091612900108906831404824755082623562108350647414405452893851302133714509359457083715712495738142966118426945737701735694084576025323376101343221506295806457154552480508036914678526183830672187430831659674886674604421623538530371021471048470490450523325137553549929586318409969789422511974289567048859564279968135293247682098545338563542444823629080867943347921485322487005056868467312058498408264563343982195590646768372413175361420225300864056747197761871493870732107178135802138553346217841646395577131345711742233733844358889868904818788032678664413072924533269390313101136006540016018970815516887341745443552818201627915987600024109077074066754310580305928033011932088619340641951420917409894485303347671438031464442174800103455143952838181469691174223950269719637936580382050260396410539063497205645282830249465427989593042517179417208901364589051219748480946642960596579403384699482392472119843967077871791688312898074335626052494513789200161327653309822608790274797852051103072922594357390883372959598493340112925747306818311863353404666345878660393831485446427512713730272584448912406684210340607663401602215744000018617190766248129758025204241922487323180078721477360915136129341826513052157958697646324666871582023734912277910879811401996092159140459824238078595583994613713793511738132095373787881183931619975089976460586036351813397467637516487178083828240249766763142579636275967794211753441719291385254626807139297747007373759454204647679919779156793247700416165370332509973141029470199340977506504253501670202976257366619125457072021348506223307124817807463216663845654946126846715299704079224614660784703964173859135550399669224202345554929931643368289583451485131670320388299140709518942559532001805416280621779979870164740048210287566204015458443439165666305714010948115819345421411821789647659179137553859430023835403369067966517490098048843921811405051365658845037136565925673529678869208524185710191034226789343249938057586791387269900353945408780555132120962861927877298829110202986459401904118761851018036211638480150073325527186741376543105693735102599632084079891934040073321846268550083868487111423708970068393120373739957518117798944623339397808876386176141349761820830427677945986627146408156861187676489700191987841305621515210185883112673874936067139996102718298624418272874164502067685190840227744642147429111601550225091827125180746825737672032955743855117023284987053786304434118613383684375475814145018208859628862791875416068386875470563617606567292093377787243340544900460641507070416168928530952966034259141922581924725123219203869626560558852831791744782295087570706211344007233802563452229953155605498620938288134090464401533332905280970658976154729478119875410945292435084435022638612057293694769422452706280017336634893314612464907276230399743668997961217648974727056752000410602030021435291460919392427989970468907038496234995784470336537229665084797694100183752084481173393090355379328558624192883469634918719311715944463311300194284746214550150848666049402297678165029428533922968813646405952210421030011838590700915512696069950524049145376604686864476338373156305900928841851103570266415077263420629996110288674264401434245393903829129132336769525609059066891247936691507692927442555418604909180931076146244923574862772570958575251876430859788459599687290323491565296795718858964633102477710436452972593623632181196262838302979655494525411970968216563750162793460907935735137924702944973252184074762069000588619147647169628706779273900504157642714686815174078562553664476312751793951879891333367040484995015092998264848396463477947324698604373083676087060257957135841392924274249659941813172416050575896442251414599848478197388524188500742120292232128118957690404797871688522884245189239453430498011173570638100678224603797301752078675938178082643788558604944873825745106895259882379246032381342519679676760973626191322009582595865321841816398793872791653450092207807860360448348380804538115361312960814339384968447696945227686209601936965896334184645544983533275684613281484150854480373628935101910312062781845018076631009028856674886004318134420010759590498712897817720209461201421960110495889389083979058180764084888130027228976698222189565398541285751097294035107768574029065797830896942940647363835059164160546187889516145226141958642516062178810896565635626603764197189470658390916419936501875146863974925776598901463318940318625612602633518792432530478705187505869104041292044558132461627637311118946463091646034673182364832571057346403092789051826804474810483149125132205273906575675859872320223939770914958000367080990805445055851739725549825425374824124739001757723723777827827090702955973908364916070341189583397712210950077555932223892030831585083167346004054176580697547036173848735148198144496666037898528571514975240902778594441773984510369711238462665122699794916302225048203998474429547544072325708886876845135635373530266937956814475003567355299216740532023175624353659033508340299176069109301104602776302508865070135143626609901481798669748663179802800405175804942714914193795275306148318067707075928119807236310248671763568009774629380797077726234406194676678534499323281669505855420573896367099366096021871499188316630375451203360772280264209656898048200268560826608586964898708434220441860247987432323176422387576769969206907685806798211671431713831879359054134386665279438157723913821191724670265160937852957634724122884279605139460420501740801554977343654168741822287933460273428444759810979791571255245482155578043703950391233505980372559391203090078359814127411070462338966719172141627684443351780325958470021155407555536335376336526489008959045497445300486044325279472952510800172793599359028663969463339677112271364686694475675630948190983114994615831613976126285177884292930563785094333740276670533927323016546553007512415198337221647542940088800517097535924473984519818669483047406010422382881382350059843395912160853340693615328347264984870541157610033560752207901196885862339313558062314432588971287243096784192043483548110257986345391713276040116310653765462907979316986843963875484333588464586416173391831323850582265624304470321951510135322463266460995524981741262849336106284518860066857316174393789704776419794647712975917162373557032037602734971546293798212553917723846657644579343241932395194527780054828385729094547205536232475899915625657688140595062011016827559713629994107371414937187241745779293028692823276799662298532687282834273857839747118607162173623267140333561169930415374710824751127780126021677827145214499333009606564675440538434551302331135082786676203670572003823951588505982531748059763005661590193270427982216771390574578833081523773059353196124343595536432807683904158533620986651423898269519065133920090518982549506284965711832356697567260591759209827607051278051333004463059308190434769585875228030717195442569109406031120494055299765958418968767779957997991733247392651101680634639206458672926660409836045743000637275108600301523429188724698931007541972044521923332312083107957799110251771712754959780641431262703623315914894635486278242813219422033359078109398947688010458013381887154940682516844069366666646996367736130583039570338662177719614460615707620350949984006359064176383888429484899909287651253211481121329106945870776233702652207779571632095193811967415580477484166917970389223769296515642216344074041824286054876835361065776388203165281213406027119675323633918939946989438168849228535017002933066974195094841691604361238322317491821664750818826255483095678366786563811738523821775543112767913874198410250065766984443042319023470939478866664918020989011641128592847332430327920424052504112562529493808021353031094970989429121399113471589871264883268572458156630440311685526200737271749621476779098448859628761255999924361302951958928375686745934041737733790604122197966745796806024520983274346110056921104624941940927640604496575532507186345764410276059176644090856970323089508155983377390546989798141243960734874360716227136229612151361262774888254739971394168322842726053641934139527771647118614537185868185610248724127152781578567721763828304109408013855637646379870411184980963244587103396307011472734267865646051883054174118174433742447374901542373112979905289782141894051285123774427622135864238184954130364904903265490765420966828064912577716435249959549301802746631996328427980146935116888948674380820350861117595069542311274264548944757097258228491543381558316551952659903968534100441745324128269115377070367227006942599907953095064485636484223962678707607984259014188647493491095085060051474170728121470049416680679368621984557178406621018767850187139937319260715627992721099093357189190820579786626104639953993645294521196661926568473536653574637498117179189943377393762136632771997212543783597653296030532744206567596209997586169039214658720511741909931818885668621385635594705883192151247258088641973141062165163047351761501101900953801698233551864077876930781322779499142753921265125006445578746046973679356101430691857083884429424557050136387244839715918294729635986889108287839240893042466520702896414311828650244941261777146817637320676369682506364953957797856818777175363479876890897020607091463410631532267307309042108667015801076601490283542740319535850466858492341702281368295470313911842147068304513410345899437082607494402586489015410854134868803346366688432758534020379325416506654402435162598553084584842701439297258660328414089774323938292910511539538731544758605146392446286898441089493143703961682557963886940817466781476587617751827708998364417870866264754633959402273140351149576418173457914488004133705460715053838791455953490369164619512358439881041984964013099698667069058463731572888859528051476657893635296523040304750808419614914599052994353382088800446834586237458552714323457853886005247424280350468869601539992138244264349625102747503609103075924599331405038501301645287950900466951012270099834589809802031052492379229898598002311841228710185307535984244795363003708213610556419622856905022553052086865063711076465261369846255072841376131692245454345112978552827980252651455761850055845777432843763471485122456443897994473840862721309907153460943031572745016023318402704387148832925975062887414454297542363293632378001815397431517103821597700818560551814985802026070085428544049172155695641194681445314906438288357526441273409968988296022619866600956970295426200764287697196623251137903048629206524995479003697142485871438351717822630458598986416696782643287309388795180853956005141302177162829623688490106307165510028819436456044459520152795457352035160372950904835033049413280238008451229054021557237246279267876761570528674869768954320659129731816807259008214704501644665961510633637899158239295819923232972451388928423040238088685607811483058079115117444006510654998044602770875935681513974465572484496112794525740352349931880410261856522242037525643521038110126609563306863341458069757496197077967060859399444075783088069179369045511401191421106130865099882010575015665507314330152379275856145726063345271980213005538976195122427416043314459588422632121407511723610897112977913686132992430936818848239342329575639034400219649748256590575077420602942279975526639850256762604026493110272835350689974939346755356158985981183500892476703940215301455787058669567425277439488028434724152538751933043980081833871346075767639016709232862814279157206108875900662976019066976228646226322353288534930362746115987963327474358597965375689666533694387652879522737394628264125082393167754973294256579377288049799126270377880111795372581555324299005360130522163921588199621197029144523996120627708316093724520925132606972243074643197937235472255185914135030964904578576812796496185637142212058281620812556892398334601194262024354745954487247912559262978949499698247360663816987471848292212146854973136865354004135455606738621078254062229615024791987885724864367356312620096327132053923131948907440061053287130780832764504503890393091789312933854780923182798403167215916579148643226301180042320885376946782255102388081027123178439926969460830516267333673203038817417214615217613568285792323533607987692480223547549299679203202665672560069018806306307236059167607146859311919004535684614947027816778024873057247056543266859639949938377594822475626486396619373395642479271623547091233294138516638590117841896492050025201982973759960722694768358283753414527637291496309259242522475601219976445322267973865859200192054072847894621782823201753192486751061645864949531519386151761966810272108528269428620862087505353856989427159246658338216600783975674058777310687715373452920613670743115375445176157555636911177517353171221345431066447640063334102269938642710273978970920342501617201203232862652594259870062720640930443788364371590191302866355460190690587343085114797102542006402602739876718898783886961581745724541488368833120122384663325438458238605532761623637027949735831963020390262729409674236755935711850352104949419579144393658816373523247438265080956837824589172627650128393383650316027432857200607748988456206716219286907705624292948713098338304621396818543617706470348334911190435765890404680071503453015658653159409157903715593730527573699870258007993875673012260210244788844881040975815718804667135266733252662647237412235740090501859720074894757333896598057759762263680938736803536333148859891727697514737625584348181146003152119363014246439065013053520289973004509649242290443958539849659425859517535514313055790245193516058448273139987246796693828134699678465072821844074887954017202971436419477437303788263467678125087679737622095361744061747846117930055971536105962348763201255190902564672375685602380994953745657153175962903719984627364158506309165508559261668613253654248388676903283402965235631528958361107391320348147259321996021397417245523300933163136595831853774080464146855622872960662860821766773451151371870529602446225727898211439017722016466490537459448272132320473266964579298990123727709332629042417610482703203863623601713354055459659229330416021059442366500979087434802434915359239636164692733583370697744809904924995477973224017370728156229004110958214552281532881376509002967786130403617131038945290268729938816332064608042495137874362104573171146037550581421308155119425267861952063177805039520170723769142023340636072841086239855464813009252214700706176494443131047828439883016516757165389800467743417317809202297026907104123985111351359206970486131562533307238819308475013603310427057329263676924207432119451595040493431965497489853868881572583208830553096475361789874180144751552143999604575311347790221894898534229388993062860759752842665058898068675901965053872540019610296160801267834856230385904068437146969574686772420308600390315635768065089634423433162590239800545285007745779170689824294293104769129302386956624909230569076573496736403339757720553025555558485906858981180604263671046818246382457974686191093867388131856016324961111146487848588659837616661802941044576181795185391002869824106581858481247630033861829283678671920760424682835611817155845937782949708867999729870103872746434940153625515528280704595339542839195695276344919647884205846301417657904396501518024866269240856168643106790767762756179070002399665872363484549492331830733394770337437658162598901279586811861892956412901924596406438733369654853597918056226697758146386032091242316525164208186273219965397619013890100548831688187796388601083347072012639161942902703864787376483406819443350770461875177930240503368822649715212224301701035258199184519446249002645080766835605743716827667948911163189484433505276070834362225428519536437978080924073658888926285895118306921411024217616742763603545184011360246055602461713283029839929729610515867445938298810867664306113752128152740632209480520063391265658216652220321519214716140784790951711658362821699794484370613907835437617892019104975756522015187144900888972036570862510094985010711165013841367731589673112315112494364150501477202695937389677653944731545660699243715810274710387761326357330353834133164449037059218246679410550795774602325315183951432172721844377677672226705843766813433619131423741556413831157652103397599451117855451838404805094007700510950957962082117837580425507442858776566658866137302355788022512167280281567701985850445317870809704450881440492400978946063701586391173862350809057177530747988638428977289325894754642166549326736154045006127013137742257322181397181513649497475327259896662450152506863322563253695587922414578175972155936330804030842173438642209989835440271279230284853507069779724292392397484574646289634733381807366686347444351826330443256827471619491616343416621360408657585507422126065763892127914394018745892342557776647913302119209210397148139000405084311516199367411582139226133876771305090891595727778005773582218999161630541542118600764995528624444658296730574892770653370421198292265468020657884894752641459981290442233512911144607393062758602254975927276063696785170802807110976179499484396692028750064676786454630739922621401114654987572641100580500137309955686227523849889266963941972168924858607398723725083888715555085508588285403524916831023466189277439137189477065649652517100037984771963995973202495467723151173106533771181883750912312268895912972593267753313851658357756696978569185290264982850009044345337807539758705582238762462745411645207145314371191930582886425065829871558288050285916514997110891842516991287072279713112522151402439460885737119156330604235811103230736123178726186139167672893382120884763643159095467551408848740762929312946689077401929699927314184406893702873037184977062320744642104495037667142191011088204515437723709927307108311695506742507517199126453778752754845261867820064323837775291177881984500851893683459650728307495606207545889313208172807823931145486066208977663382827517690937085911462678743868647481191340055864449674143496396890277112817998203770830433882017396856631921746228080714265671686091689297354590978164866652072124909118979688476506858378737942966141407200665628143447832092535958544543120663520273602814810901421615635760949767812741120301506964373693861403647770017819249539022793310660079759671091320954363460331618775457916666016720156651507310758641924274211270799414459743347297011934820100204853144828027195802373948308150899658112536919133963750142082173597148581186968318373876641838717484195492212281392951170476984599735929633895327217794175205354026398176436545869219561346081905313492577570386616670772542162267565413573046762710841661677703568361509076049095040740856126703118616784504249019195021491922455868686795556222616557396518245569885970025571553593774386423886844904419263056174915212582622245519217125049223928552423127929870155198718898362529657252545582021119022362467464595715357647340518681064872629668972743248957078737539211636635325480638055693553460068116994870043392077130916656170070541601505325996437355370597269328658787834565751604345801491220114475072403472663508680148596683255148454476359982782435808834502092850001763548760444567773935218039424255565174085863328731482950367213691874070800117750160398792069508922680311228209160698807430197839581382302467165197499348619472967491673360586212910943238669821905166674960810378785065032275324310193345813700106365577119200156446098418832891425175907479105404651610928826146967620488472129493252860368549954705581284491939816331999282555916849283487039264883595976236450119456096162998244414709826018730886270312208973040889942292720345915041847763916917789846154951536973861550852669146587872042446539967172663695101995328321553596471435628460011364020777587774726771858192466252900072420748821021820692314890761764606560086305077678056773483800029980901057780863691352765858216763923979876662953957000436075115842395612460665706859718179926137223895241904953399122645154276929046002539787491253864607227235063987204683130754303538534365197720956593597512278606947951517306627362839687878856344787462441867476358926928969033134523875065646936391052156557896926717879927212244108470405999606132641474375912211865638333453961956642683851354092132007730687555725941029726267511153412173368432144652829387861970026177058793643609196887110459285382351174278388376740057704269371213188134367182733744907956854382862318602036824585310078602484261925503522676218863691629195726782883417731228926211418637549973717651873454615935254465340762025194980341989580903338531144687235129812729354877889463349810333126906582455614019285581979565971663334624539076228534813575459816304626752548301491653761178844745276746662935558213284262773872934920772094225797910402370706975960041903053510896290701857845579269425246084699283885594214761605353744962954773302378390667833124976133733983402368330092854777034738849368982003811193308688943615111193775171283474094159735960259622182940213844347205524162993996646983915064422848917157475531347792018448096819623921161058964166192025903267947311782015409692959206643120728081183579490530061099045514470281391425496534277734580510486546528910731707064367715290173219338109361983598470554859284396774775216704018912369557061836409332655361475659386601423933231939742939150770060763731121095096729770449252318390440947301009958659594377506566392089901213898182944484777551464148177496260849185777967689375431839801836873495951623186259283052398911589968343561387888567981629579960572569609668217339609888635724623245213083799338526761793460111241875506979856053588450568571607466541619256249359478465131835743899604463686914612148786227719525105339084333522716274229691522891763117957570549641735988304268671061624913264262042703861833499219862183216032234513279252739105032890524179823835038076729530065268613650362456262198739269271753667800776811122598269177023405666386210444256388118304795565682448369740773925094989960019562753477306245863046737371012206136318135567605585590726770943016810898323985607470796200199658536756150530983888301085359055471721606938400511514457398046311748950853350587895814317091584433236607163088397439013350933046958242790621523884268189873262218438222503550843922718040383627551622379462816488752457478877955048086448781709607548589502684949720070265179999883422359168763984050256336670327896223655341314248873275215603881124576795600516762974200833315177448972515912430467752357380525305570615711417569430550456103701184017490957244065017735749046541743261800226568497895021587736396149793661641718471268882873666007729131751285582781446860679735863332661144082146340173119561261820542451084510700702132699491589676053662534205415120961549788735691779579226539304584216691381189660392479951288828287852762863670382429870169949053854278988988444961416778665003008370630209474723876079146656536869231223932937253330855324426415475285667506523956502179833554500712521050813383568931675682053698467674398548181830627013817683902965801103803131277128462000779949534428144856302512512748021458823516648137766322307370738270635999187796531698999311845702824487113481297492569922683744090485925443792402097935437127018292958309669770027271171451013656717302758462336942137052784735212002589663481683675205470313966441618889018582181772607436026575217763977667117054428304639732385165965866727438068058937531632601521433366467241291989659781129205902190738541572468493994224771284784492710994876055921117421673580651568809205227585822550495058986152160834554788720752881438723829578352387775959161181387559778009402548419330137725677396820996082969362688201083857407317660092628628994371374157290406402392341890657212156085806942279689018216445867193898371605559342718846526280649678586837316060096132393399515291958119381935981218990125439779942189805930574487762853265045225786800846178780598506580209664279893190908007196879229435622369241960578287971998247870644153376034852232990638822131654570310696010307740901451175535947458448636406732811912235053438858217179734043099007962819253678797439731842293867102937999756924996270023172262073819743198625288744215309621964535652017332305941924388888140374969509666580824399899449277980949223296406953938196013709144548567286060898004225531651750714125425206648647358857601811803966016308700660106643417139013313015879376292720224770832921533856795118594841617345751098110776480500037393672723022248025788162772842303028922022922577191359524202810370639927448743956929131246761040619820975495052761473256575419029693343301711379598096026783601186971981892662702896416740057340110277728466063370638252072747753353796680368497976594670344958439967158419222532974937757248424118713068829104844692452512879820003162972642627882218183309968509188518153457092909565618442019771496021824307328437052500473560806236969660368225111075127828959410128469003585693556232691698465632342539773436621149003983756642170759929195667076988834257914562137813326081887595995805681302365148325040328569926693118858218203942585607396531139959961461473007815080939468177284827276983982650842256030708438090100653879663735328588974449475222449113571596912511166825768817647813915143088041382753670912646555548002596190339173156525904600981678623514030540926409595077381682305952301929506693384959284372746313284078288664067984513279706177623057204207494706812848099174680572397822600014720051368331359628441380543189809879296314371867973370277621335449996071012321657296792061506781456618970318819111138092078791433806496482461935593567477292698337803939694428372791437994324540552127644877133838694385481717089246781832782666468402976038812484555886001311200054971495913299049711783844629768670066812341400693550858408055165827944412357332568418283926689552873476753758906070309311823690184126535202598035158967927481053458974686476126164290272912502637525214482142092828315910849272925239541211204449749955552047827196114428350995320325138617826775267213572243846626567588252676819131875521068879492546472541752171676427409982432287581726872487979824696879773616858197618580505078513439700236660439749988460534650328239890228279990361888683536051707945342222390151387461760241058016194885128850060506380789111349843840108578160984675819591735778691027086515465152641642069999623446288356730625180434755280157237381214311144294219860386200039975345228757299521551764652518285609885455872108329527720571401141784276120188775896674006581804836891414688689577815020635994732986029504201212252530728135566790431825588926987340507489143807205916174734032348275919597132682386469720524896155001393812765485521710201210622705734442262353762581910676160989702357906669815828964378180364129720539702710138565695035568524969130193575667835849102297734508472474285737037378813548374564157145214280964311953913143979056167955291890842551840842900074747205020572505251208834180105894682955099325439100465410822614820821105275371838622952327970622697703046669266947514400623817589121148361474392693162459583237838171771281330445623793897135774785029981707438927588492254552101731721269319030839959769282960339911828050524380573578007495343525735576938860214647518424691964940462241152428230962004601360817077457700933791783569710433977360274784188838851973293351723174843134917940254104139173635572508990907507140949572408855483872544445563507876518119593776817586043644090318965565566358496176575506921276692467582386542348878719045174042649747716568051894708601826781781272820661236425246924446573973686068344710422044792012873558094255776617397063052152408172648691249873044172697683535751860674852252724598191503309982510770450093160717831880067345948892630598319685160790099908747424745479235049399974750457100779209750924274737182850654707821087675090707932719520478790441848005110986736671999060658321381727896612391242188267658197012035306546594236255758945323015776943026406505592763988246396955573415793059120786541270151023028394028628411161663401594201179721704889496402012846151534025301179988922200299462472628603474282430203488328558347986829311065898162486483809153284974191854786997402245521784634338939866590824736636339473648106332861879803319314498701828511334183113256649460055955108878448457763391882292880525159644794754303526316389417191725716186200501074477886524311945598630362470754357351806823759189807263072404958500837074597312194834322817420742029190256962619455625820064777894737136192053350594107697598226194139604736146267520131645004261199319008275806866093323647648145261186586683421047358612346380257827614480466945034803171261389631129777420751262014019865411933734874332403650226327992219637117450553184059416146777412740876114567036172474360619931785100021682429070997055532669009975964649084053930345230122505937551025054077641313437700886220977990164680939687267200590774755702716065988705669909124626356575129610745584580302322366740174033494660517630954639270450878853436455225275899110799478099082072390873270585142522487903574450562790134573982329925114324426545313172389975989568301150529361269583466628722204152026812778464233762034577634138984628875157769737828495006545387977154107826180785089092022241192567105616457471647968143553644689431574273494337884405313775536569235151544771562424245446688595018668207750131235028711240634811659200663566188237855457221649465711768713646315424920380043175454764332066210223207690617041788258868209847462711478053748062167344942515367724888365401049433470712206710796281507400225823310697649317499878207720008725367339219439388623753706763327057082990951611916061082121339281226840289460562391318016328541768962630792835885240831885713581077079131629668357575238676352347015789260840037086261826695443964600337916941530670496851751796672143754278428510699955734348377113145309575825906454872126661733917229301159933482561533997806622493189533421577588916382036756917633112409327411978682824539767236913381952819099842765357180236080759369545466916999369819232722800447159772605855743430632853740748507951027550667245461082291459484058336999549034900330223433726587577312340574928047000632528095682076026811150646178589338491926231308750075319055674004738001329339110757532926106991687406257298363680247628458242862779305048300721021934061416838138832176542492482116447544098312469101330532274630750198900311287940924929921495481321825348544920481785622504125674904833102091869352121434569151392758723745525661719541104450263010950497308298512432605980307879016520952111588087057436739353793032862545349046513001487157547333099746373404307207852210271138290627021405337167731637852294035804130209976395303011309025828830552581142595470184903583706979331638121729603424046387113143258306770952202617564761340077188951843167404769125490839774647917736301654570421070381035728046920141484552929407503218141884650827912085771779884226644051460900999511581045179477741350052563776619716212909256837008161867625915081191286317535975847418887153268004848673729701688982926571757736777180469108415743614049193851890412536742670411318237847240804125206904871345198507361715804436515608884036382760958248505041563353866439643936559122160010558733327472288884319252608032170626538763919322034969818077355671872459280577291615341685405870590876720904979269725610690605150644852897395913472921235052955865703057467169163373303225994418536046729896522055741421898546123910101084015296441740771849592982882411478815796842682950448823695408253966926722508139736943204816977270027772689778803035004111842839928768093373301257490544350311467223743976213986183907380180477159962983667848842920007843604132938404249286245557213260561939412001818543435509655006141657716290444086557106973275826689597027187681343933664029882117196956951186083477384019863284756204957044344426552392875248557789436203946877310062689543521034790362978748398162085546962395780369992852661395781318736225765640686709108555716372402431318834083086435931190706856194008921315060215781164342596694688960336268219266025494943506441691106884877544821761316737886310977165916512716342569022597342613599038097082766963798425648420475024400238799246106151725650329250545503820861483738296645093245843454308179487295379994045822714709832415878779358462013919187757559012037365332391447506960334839569873641323124788826291906552577278198177456925808876128694597482562979733345362957879782072188173350084824969545377033374740450688475328877399628928942706129807940828814382564956603343417652595910269739964010209832859585290186172621063989713948917154224496149367698759621334190062951984448146626246604687440041907494007943396508698705619740104172151252651279385045533592486322146765592485525568272227866544709385239766329826198180841893888827021340560295680500438844191496830815333586202313295864454600045279442774208998763414667683707986305014434389844351643509338625958827458232174146257720643762852122154831724517903328640256812867450123110288116549279240369001991655186842791408126436695152958253167056221754865674244722750473041842861401339121446730617553222806433056090595961805678565871395386056707796861812897515445267076149459712788913062923913529107062413514111986973089876695947836418871256383291850118881071575080464261935386359788992256507517223917882721978463137871311042507223430908621168573721569421780225247645571456314439659534438791624570282928521898855761252260500703091112964613068331513124065413549185049342995808650228804280035182293656929602046627285349472129295931374742967808868788235860239101738244355318743703907703151401092199138623465354878051624669895092740850658981111911362304365359668628704364913859521533403198987865084787822080408382969902676150408047882366995844410115394975144896045199288168501285276965814185651858782529875407861722809112833970932573302469024173715745179394761374835433024134181464335508956959006507647766225817247443383999638503192880922312820790698055767185732931147332427713526422100789259968509243624423070781519744591148483803185950699038903344367191432252030389907637046757058958627349800999597899795764723456698547323807843465301652456576423301872915857066130845707163907532982564141088364927036170603607375810644108079876838185650354667665114374078329958282210381560105087988552704036299430301420306929534363319129277227657827883657678977657932283471014023428345037014541553225172281016498942709642802733847222774131957475428379432643465748293747917242425189938372455704498451118988522639762201374946440019126815617004154789947307566931045188644217647635868698213482715698442207306757080439439005908084843674764049302546209510142756651523485849628794175456208551969893796378093880422466824407860845158602742897323924754661372066223350702731147649301880968304839049682959848102701673833244672397280665012830200569554986853665829648314632241513596083632415787502080088312174588309115815732408609534113828847951380265971065408965457186040751722451636274836814647255921414667988083022525686044056368348804302173368827637855214295045256184068874529784638775528911046392827019442851721262122729343736679962774510826257464535274226240058216535140165653317966375119869950692334782995180047955136270485368284158378545321745212983510568626653277838827449362046313645173467507719402182932873785190680723293506474272347995425928273700292332013383241276017858994391422576692910143602998673029565287922991690214771035065362482473564806687166888773101159182148232093467092691493550095112797718596185572566431930210129291039891691108115505493868869713066698462975063642584953821451985350767967288777307088176204003952869478483132242432972470901972994109653973014666019464421371740769104487262231308494431673277443650213079943446242949485389836070213214695008997830474322560685632504203737083810044060541060431972178655387057591095845301689169121839365971520340812056088976493623368163597286428895990349118009802444802036310491858474131699723288156321965390706265194639565305498712693917089714326358158299991855249038351457099026535918070943883469833060403476828691275673568534562938015514695970035727518240116696758982969112751333282776247398749143567201348436661449164301135630431195012353966148580297725394056860447199226553856202107410722109365547350439221978225915708280471481262599094507819761809423126276208088715657649858237547391408255769764608931309165922194040555607054209140140400648229183567791151270449203986426662897239416229632814178035782250067104038926327497965347912481062885549969721905415922225541625334493077219154826123180892812724557262008488139768033001179081012919937645864243879699617296420383710612791484676140030760040812340154658000911160886275901693447012453924968841763637104938616533906448250700841959587702172463995583236469655944609395140041479937173047816413835870171771098982055577058696425114908110936398832272043422597770745915716071539215733804160398643679336871375416452767364357296728977429846263133030553466066150125225097088465113116100916931273219571272637761310774120376663925722319459611338466412939585783923734431709679065217086645567437120453016592690023198768825845458205194765498074731132547629030222772207201849439204447372450436175123637929504288856150916843575705018030553803962074769205250935142331293519477153138712252418488396558629546977305923343668059666363986113088503598623499967473987667512094090045828374144467619284529607089729536152988846789898438439739832906575378947187705487337610587654417317798291889367209608765017263243960078658467076746862476074762050750164767664531003554746828470299633157441030442235195572057352028779906981954275314999755064185759513957981144798679001958305076151205353291839653646312532948290179070786011610668613322578000875376030615696044493585843074688365185232783572880268905820795942698784981324094831269758667573034008148589726476595724692046093036798447459357937062754335626162062262232839523312847377927959853803274800699381271579907108736093101070532943651537690489039426658529255868040995947379830219724772766824443901295881366054662167152292758821392458336726347623164503856222049133246522562428112873033045924525025921388917792757292057107309887112749047024493032762722872128354087288767614402542931374915124521363535607279528626142215720147162406949749179503559364131595841377693170494501239617208274585260647938463136536759773968942193492633782744950268220945565146395123920960141601570043945894069708034778025122997034619798236638535547601697464452726539386980791330869254593201288100907406002052111754597568509348892705641383202668500075091152403289578500307341005142745557040090280108516866948432832371960750809950093400987436735538120065847833139295091697330981117156894259034210752922911057250597396414025338304249179835176872153797767722054696509927369961567268079882212897410269765148401576778841241226867744921959005299210006218432901770107222191919545602019682658247450807917754428424822595996617699731963845514356228925852505581868806954720602798126547006338944472679502292539809924340728908373385995109835278382647870933011536198288240300582928722571308874502453033144214864421840326328631207606314424373727639441975294373807547380226150845985958257740298454975066681247841504652662339154189620231600550831392956491623635350269925382079201669614843636104051460524296131179642349632775664581397926415297759344278717614316995202924091876133129429050278214842033554842584095797930508526472374406554934771636223532728945762745143250463315349472527676286656482294496345428630846340008243386359827916835609349224801872245941451572533314562873981376906412282975338208919462652413425844585353644753572625931904944613398505416831647761773874925844411436908643010320513285218733112728138729257018954315441988667592715579524220746844927634571473895312177184493963993069374437319387211927907647081570606263833209455608190001018404687976973729039031084367010235784387374600556963757202189889727133270759037262523406596675427911735947254641450405210500146778211702255721650419236566537794914064527211807053588049791285286989891442573785457822462491288677703147647349122610145022166221489810755714128385921962135884498814427708412830074427644355878525466419745205191028794590689434224877635345888677823344962512884589243745243127174578513193535105849758117289742057204285730564667405089729318664245450641025774582050946730846500998046534748694619748949062976802189842543610821820356704279765713944857379003545919109845772560877421876323698581298030335579675567766169464968746207573637145616122163569417225669781442152789336026521298251636104507429327074185869365493965206206147180647137779337854937700412934401246930766179584408483781833749590728082337774267573067468934938462360595009149298071024427962254666824941781465501241145626475982442053403398053295490412577471294980220834638133768550009364920107863689362443185156278027673115166380763045532057841418716279038794175785447400587795028401409036124434889422403789909533759498883090422913691538646734045851345269478589630371628502468026119835857652321545011821529832748851694847092409564050260789698032778109577761698063373966864879631565036102021808667291804723732981784978344022390738393145125935565130372537583698681776586554658554054903397400813078508276238052157487652349870755700106863548554276683371872000511003777250197922171615094745411950845752809860705021589724532247145554063044304063811971159598024901643187412529095714144092365511175912813793930048542554230326679570513667770656392866362168845822408492291587817003228636177926549305285743601125936894112372523235230317519971406788549997161022824260335277253329553066852843396265714698841966712600026979770709544706820498477878888924515272422375892277414907608489744009287873561952798610999571506908354163939483546660591056091968519649352036331640982167877806370262674209005330497805511042889711906943713863606865726046668457176029121762561974991676623226828261462231276712329691180935663392776268224575270052048639707409945139878155445263148572492464363820591492764133123845940789311215382678242268745460339144295444734871468754324686448705438623711109902550164562159026707201668547553500837751395338995109669397874147088202199349531199393954492207672664181748422613373309370647329748556513584613024352183479525023213229600438660892038822701304534838912726572688377827953911099706558137459930142246109665041657430863381769189533945179208282023696013551263203115755595172686648807544665289530019019175477670495959692660857369078853529897294013978723085806105328457491684963282239866594008745405264840833265551187082589389105648241231197551911540115012567464937195271706968017405154456197114358978422545480145552975549920742140020220639725606280303954840224758020189633230903027020413463409920848779566308199771184422270445269597725555848177194549977169070366321368465364024517856842928814954711552104069119099654378077338688175118003613392144240048780490671032555557934049000035242738774283839273685139371177234878812017147154640941305151185071353562894559817132710059840831325974529339735168587938260982596009687900960356732219662032660739496330729040140887354274607243702192996248534043971042117708212439573810034926252576862669008029635115707612618841572716032587584549880586961818294882825055730434921411758696768316502649565987977322956514405312598701939225201976542627123353502664002460732518073023876214165335782679027485251654170753415409805787071535244710829010565226048077081490071222123173726709649304684587300272196602971643566402797034564651485037200743686117264778139971854533042535065280425777428503008677821282112597479419790816102445359906695478144692173918735057101121962276103709321351839672680071749190487080468581104883525367674043699495906062126365587816000033136726135348965447847589538562530745115583172576012700949668257442584069252006381028849600288353044374433350568095665682272552978526783915181505127504889528493682108902058904359458381425475081379527485470088010738172732354030865866876819099429158985279268806368945526767747265363346226871618675401007151493798073173514474030980537910802828561778412573537801371505625383084804572189070976216333456301652294653078572392241474846444466532310047809752002894590822070468281539831655669973522883061255968508307334727662483492891083611416355130173013183370643302935401565842490084182354727974483067930260413860081756425932176242542436994615003495322933683655238280052806031158484301056702938547336032060231889831738962091256598405124945210137633015918708776166761696736392506440084023129097900447708044090855802826138004767560669252842425727991208288577582174671107606984871693582219620113259982172617426956426199584895750065496271714692143486677518561886926199567223052009567448467041118889404398949877914717214854860315991766233025525400800586039447702087954934636299558207637461033245212986119853075890940089423097007682452533829566115331865578731162601667441805664315594616464493477210002890057902625998387585230249679163443129831796862781923020200945166840783155181436088906467268294732892935870997324365400555137506705878760431286796172499703198154817632041707499793901296558612911314058263134778845639506402561892057754980113881948472622334629783051272975438960281748218410892661731612565408003881388425647447290293932079964870545132991276295099492835949141254223603430774516688994242626557285681689992781215679159259273318020364794186328766354653314003140406603393452717217676368644716146096649753357728968185069019685623447499750814796049262926157271633117419173114058687786305661104476852318505001125093253434554962992309604963137675287526714611109533984158178514627345955009449864345599355145542524968515076750255985965136945638065691684175841782939875215988761307129948972183707472139555191972865671257802917899110630557770366139489805921835996090557898359494039126815766524679346538421999445137594181586740613461397846854023366557660459334591371233531265280592852128542085360738560277282241567191626841121200900825311720979945766708948021968268901415097584123865563678083774440095541575707319298481631994343245718364144085754639310292517796527025446529494569612155662664598113140089620001420861801273711642385532836772714241116887091069743705205649231008317006698877516835578026368269647735805182339740432051239256454102612698905926440479268543618430743338221104202878366458997305682127169546222994894430673773414381988405411400966319011664839148927152340734172555988676590428349283306502690565516903429740997687214543840761586930565047275230396660902035161929756646732424305007865395847931846655629097970889268335186635742396216814243252797147509581573795278543081618561970837955085662882146000892442888156438356068176435538695899097039091244599420887811281160440188537991282911311421047384950585692338490809916886645750730542960334885157890376984940425932260590564447822036351651321737148109186714751639731023064477748335567012374215548672060321035275343361794571586988665837608126392145478716247458540003462996380927761186239782040938085548063154829309735325288159739762580380336825915287851257228617901814924831500385585488017299945850153937335036830010159877399304747517153697003177198004930581449962688247496132989714240097065235564797314214015269959872086056231698057833135463971459001946680035842396053464869780598690825993756796627931710349731325092798718782298764585227079441510499332625289429297706433688129409767916299509733255431961844055537962657245096090173812929546301882410917317161400774370477418429881352961759846555549603285789887410624402346999875248051582642223423983656783364451252252558039488780356551355446361629461490771776472161738700104084039779027649653006450872805144855288713653554632308983535611436145165183865517037852349979219147687868136946892632240171379554641497943567960394036785990366803271964978591349937941473951873103868175305492433348316235415261973870925199222083381599072807772166416799902970989669029077542851866747969321426235117333378815203342599188742285252635248797716698778600486386973502658451450927012430078050251553010175898451520643215374722904336565213859361828648845502530701141351520534445906755172228313818658221685438860312747660052465211905236927391568765488395582045049351692657012350628604081569312239653964455143479760321040174132239366768469359846944190717322161949198249933604664677730434992781305140144489794476252534845635692295335483282170975896923159619741515805420410013137543442811447736270345245860397131312929207701621074928676497910858285005906703260015333479417278447565876868821371957588152983461404076586120814027800231331022895228743437719126728344380242769999444098547927074481331096779747284117400090051621270081778511020343607597901985784171315612679526991428356554523811612959700864462109389074724331576484001808211972356599454177836665506441229859580150824635481326968486529888992336611482392147005819365867302228177916556598993850061554196649631899450078355538942174507722729576791893599561129687810669780608271778637580566740725220285052886440025163946447285516105138720719211157738396901217145372004425850242124671591288640006413911216027376317443904102162839133788793042436359411143594175716665201706379853488982859321362130575852338332497390575332194862329532883810365282261017000906603670280684936181855113610140060776319365353160841807876369748015678267355637005461341439739949932520123845361764489283318608308520176611616766687353276498985349150775343016850386097419114779929871339545369800965758312436180455401286142304746164172156736415037897685407960242333305743516686670129909439970232430079111569342261917393436850529696203838291254301932078388445885547405205229910019014510478091478713408891879203717738377994012673043586879753018404419677309221654730039052122136400541718110187750638910871370951922251318199865891091384669244798160701000604303987734579415377385740440156795961167250164855380116303271728633896172275366841225474954891419635618107752840731230841693662740187321043496363511234438430030938475292614572598194789766302711338381653594631949349839294589057974316287642296157589087769549602615266762498493983391673636937448025287330543196936701775712636815478308939465739506526100027433005431474115863599803975387713194152914509015173139968471623466176417032301426732822603035069510058320271188997556541231652529914939024594423594041730719784291354360933892573392588302658922480541567863480175087870352567998794071755701869633724197264893759094530668767785210327547180371090712251160545678788217521620572094210537165061517650161051630234460028079260523230277963725001167784397938629582738245918957080920449307960480626512532677016979670542119795687404558304755507274465086432429724141172878804919012112559119403298498189968432166754177105017858251067923050972742443906504984314258829676176450883760402092359250705176381479300304625573806680484206106429545968743617634189211254702130903475082478931440549082826988451949287450611598428796724109582746537820770311099969698529992587767184992041863060126965198726887662808851074201184816169800010250973738127388421106143335763233947059278082616006387029940790981387361751560394953421856138269111757895866594992958575088020716426298242885055356607390001965804235441156820073647030246240860715784423957774791357989317343255312224338609799425757380046133986527589633535884698504291171105155952264475807939598773133045606924834033291138376555889944326081983866504984747146369747012852515576443395811436945440004738675936690773646529213093301015767636524634399572221411701711667767519557125610701788435246297382764334240983196309514708367664642823955233482714652623775233614843170063271169567337840703316831795942489880569367496019690606346894732939507577966895790922739995193505873366184661147911934518294946009832026580110248632530281899700761442848386305583765183378015885406381834127608872673360790526069860234098488234151023762194072681315508026847687895241540472051320669329641786542568432650898628937342329539514038565189727609997874911778354579633486596750463887225745015574955539021263493057132319367862913069160524011355035606394725038265958263535942107436087894536989038220135090349718354991598655764645178262209761353323761230905114310275049833913233961652540660359372468650588484586550642687944799157001120486259111985133090010571843778301060877793651268923233344422336227344580825557904524612251027250882971661126921143576097593616616040966705384328896303737037924156925204501811802489804110272195304894323656245980230794977428245516335180255944450238118029133187729935752366802179145864237581977263844422874094337432379978518345323776049093369364198249319979860651445385331392602098901613404698479563446115106429557400227089049361066468668270144310752574372168813335365731966416832762671768962512658134694839222230132683866416718703182104253827502364361641800402302475378315633935116471885642764837413783557889635764335611211304423042668598478154389923521085642240313741204381994670203623719904084503955595290322653770130308327725270484968176538248267422657092952027853764909133465452287528715556506318434999153694705118914267148945225266402089973588571420623014906232713328017959171920748786457321182872014583031693130732433586040731329364935021380827966273297018977398996882128880379854076907345188608793261092919590750096157897902666171085224038328139155992966026231362229962608991388564863492450427561410364204660886054596908261454180464769167631710576727088453331696895925876853947828265233349364082217506320277425424271360207658815571500126478092836898613638906741914627353325431195732528282069970277299827842904807726771480357188677498826565330547711623641726023825754154119740084067243789565039922210160825798122342125579421598072647619623711114709971971755612087596132542816309241758856329616230116709311268435152408419115280686848266091526341234137759823156578241580437143215718532545000920173675241523623056440046006267147518324322029268504780839192529314160070667824649013053494380473215591282839549028812726958381473947735489894413475453667301777913465298827307031442545717751108242609137008899138963785656085330639129487336605283600474126105705981869267635409312893835341813621991509626313779875850430660676554099532023396808781785320487578018866310504314567218077291938997839643738638585351312965144220034090827692897996529453847871560558965183737930718269878458820078100146222689944749405892993564800397323618225008002493304248342870390651267546936071523378776189868061539496140038734808387088829846131755314076388251581946451431302113189369414174514701547155271710600822271334945590672953911467889647318543487140836408229662889161834634845322135818884024642970842388337966151352875228651644955137392966934282385445914937694576591110101827932402863087245737187081686464383947150255413465219067391011373725973478735917138811085529871744076548548698349722947080563321635899220240213834708727558264026328845328895431630681198786547256215743151739666494244521724463596760939556816226140085217714879632025068430157421648330313413318598742036398246141546074403570965313766822340166798163095349423958630129236042945811615265920011335058154547304654373672266052941794098359636101224262759813341082863509180789629910559559216196727919874127485150355086998439457429484793591739493187807708964721341681419947976889882741130525958573152520920817413275868989937622648768017660757545505389778603534085186296460493361436534371032304467467437964981977125078952823081207716270253526876897674927115750502904957715510954821158901412226825707528400077408075663755458274157304639505235751575289897226574176008980499153496550982189722511224861517998598253070134901270413260613686205633483352132243430682541335124434373713401379910489605141181498236073289916576809700934570274353468944605375905873438685701895792951761422845697296727004435747207452814260407496911214704085816655449443532250535705715530496716385280181287470166189917620251223289482350440236031813558223300942934109597185905222300629861997999759101280349524056962511458579603902986150516821990943497345473213522906503590217103252808965475086168162280412389536032687853042498670317978878558590231792618827764136622753714572288382200860230148420236474223670525574141977880711272419155306140441878731396093855532121817515358971363822915566437640583481501931931781681075465391107031354966837368979645583023868387868629451945314805010235090542661496519581543086770479755937771280341524901261935675616721706291700979155100941738897003491264624053705718500640017437392588157835449846203671123925652833503989186566816696517348313820824064260396266414449990889275154751730879872417502183217033336433848361434669681380181071869714149269963341952326618952295441389687016755277023365062198985531392745967555697314596833394019215483304374229813935038100623241922828304233491966973284094545821136702884859973293354612233757464281177196011616167113473953367596093092984010205100866000837868059320420089266987282943623626523242647831768513318278673294277083709970577663819565688601026304619869217741795876499646205969277963873828194887326508766742507973230190205360954336710467281455929356863929347375446722211341969814046090625567454319285986325572891492439731384883067381367656134672946651986421107659507774711496584278936899109048524021357974705213451130255276961722659452433112430697279142645338157249995643510010644844379911921099973373874498308004807958002963049782922848156646971415139940043745658592133083182860307459652717295101327011346553694284125329990687388032586796336075801547343852212693517006365437726145271381784993119169719850206006288223233466705840440786656995348253592927002438489829163924015723917633234505891200082406249841412670839018449420427680243680527319265416964423098113321945201751909465527729056364620014742764056165234630177669645938827603645994245002276202024438065650264019015342266691124340202880623583236310376809307722851761461850756679182570842505967877918520575433242956598061054974091386933520166369042377924091743985361047282405586930762308016104498009762465064597530366739368457905029025536051147102912419832079471927977425079821004485111524108294570217794567487501053250829224019506271902864976096411264029152759270359829737740500172600573003322698897274134479303614304010978948251824923756130916368739651809468606859759809027472362020714805688544744797263680788826251571255418495145098535699171536627359289425407973316559478131745067169638524195316642336671576154227483462171126864100154072311145432445749238496315089288283293362140675708387641934979504033388279005912184423451177460944920609514436897772565381898854968595350320253592012010317632365741640037977574952124004499388079412733977126249218637455492705781388252923506017679434963875596089838663645786699383900875719537244439856527876862653126068485298014706099795903474564976305809293159770913340585719063704912656659819926094038779876173830821384089300725044127361366044567052644761898845400824915490969258606256524087084807865904852925273997761445180557527350009622221451009898952668347525696233350329284498117913040326743771744501789249859390984501851988488070305821679757367808160299635896187487453108127183250432451278390179605913147569056097409037266429376460546493935288726853616200045225768660952091855740626589241168274005216453059935856205089303491036635106437318616167686184119009059019751660975539528373728431941268829682818500163533555532083495710848593772324723892067018883148271176422270994240002156823793295542139513428142482990788512347238498559299761462228888657616544607297430324065835600490405527159192685965676005126638597691860648170766138443592369076423999639384067037249044457126386729804218445343148292353602152814764755295134667268676627015432950571798704766749713840424808782062222802477343205733904789002256809482400485247179406392152662870242226726764894405204152304498346333081124218374609643596139071924694686769136390762400349521020885722457357516884325544208491671833162356554468183837280139336637351102709789106771872611299291005583174334637079443841925097743436999546674814824976260192200545669690102174278863942846085827833137515536280620208164727138869293721416687434227716540941498366737249804131461245144157591151514233192765433085328639523200429655659547687208591981184635580808807536372141363754470670474220335687106195241369384791706413742160233352463820270568115708545692947765502576000641743813140690554680224035454353303608888592364247574551627569847162627686901893022689576505136389411554563675686164544754407611362636291314507536623704863803702633381514816059284024292869412579496786438928371541104830979439876816994816280199871703090221281925568657345628249939751124346919774175789073379885197322263414803068809988647378183044583389495377666564698834573890103171419404065460061075675350726302359576814301308301509212649365953504277918857922363949915427992056576806255593366249036602576076725492888362815768906925040614756341905883271900794993263570469435774958175245939697232113124368616505542944634851263099816496648851725663973822707449352257507259017482857076811691924500925291725899102554199910596187055766894673479972920590901304876357885178098827957493851139660425555744979173668942707478094055480234631683886385563203326799087397499368388534595558663944872511841491294169706570017376666098000445226337969036171624390067772010801714057473065202940435351869916382859121863894745983699997934149757922565002377602540561810304873078085290319024636145554274981270722385829691973468078615729588176500200609733507625507673628366277152798807729770823325832358748171876675053316847159152874599173040838976759619429362327047538287120055273301620550585613660654360483314531422055490007358060867626312441712725930375140644506075618908291038211511192316844639017123399334435566931777268361161554046454940121491171384230707840476943817926045610774101051329107950340695932660786561058506578139102836650858380279744937401266432402716537518763126215132684085199199516536773957862506667000647307909985363612442719996697421489628541100892096249773248174264072434835436336490626086484347072487058038264583672733048087444195038478455402978352679937352581742380793248354431279476607417737919381648262225443721023642245847070666008859336557068860278555666450528907726257738339872064697880925866713904124047391787661105689517109157130701863992042735582367079639338259286860651828531228264961995623046114495621179960270446621268148498373622797418884114772076771119198081501933388153413544029819787076023846449464395959265442093549502425288160195401481853619237735015624970610766269588169090869981737770587851108885839620834605577551529390321824055702928946532470037005522785274619358729162935762845349347888596817768467022409764589995617382526879644618193313974860854716386617520931733773274188585399924025236927441113698529929522918820803222538581346422029731075291219032942790410007638345486169802146920647473019459639304302154370897939629042958736681530746576055413106778597401416941698194564346851758066890815448418557804562719724156119887902032915377667645163260826935551721762141873481604423438219590456725055540947934334651261720461161860498370379885102345998487238179615118724580071389763058570567890105129640577541627521002670211870262279775881322187450796663535442915444442676817443670932551623923792254331080900238984663916676168281042830155724599529896817075006248779496940660471936065196741969899361926134251021566436606821361702606447946963314183621493730979358601186516845806538161433900990042688503187258985156706219569290480063866137935057639228834108835796559742498151325921576050702951009090073692672778767961157086728092134613913935115004582495779726005872950631147451756773214047934782920692817717471484844636383470005083665131854485451063168542702329921543417398306899195709232837310371360736145835358589787830196566201362910018758212806080337331846636610148872762997191293897706324709439738403370833863324398635042026426770979878322066127371099198646907421524523916744020720215056154912832479065336140942662859991693869116099043617543496416636209226910764880203482479748029357720829179717987201692220609470808406892219892896002596250706882778664822861208070109431008174061528575999016255104755008127901581751147503437476909255593616089394559100027227605439623623754999636984967868189283376583367799500939590628363744088896945781876126362127175071668802180469629802024776958065440498321482414958952959641358987507943162457545045041719843076158713674063657940050910332266477128877980359799486646867841844159811640948631088473882017837298893975373443671107899384630264432024388573249663127839059935395387829872390516546315721489796423150508563657831060387096037550306077650013869098487531747893282483699743412949506948031903157100108735966638536474963178059697642875262904512240018513536920624050690493962265399314411979052804331788831219627784281764056935328640073260421039642855040725682413158873716041325904389880739772746141561068223218169101885840256140597696003744720841979580588369385808258331580443014020856164917855754228257526204243590180119795042206887082032815131767184741336537874240623943798940116046259363160828745421636561278511172842109668448055281007089656891035354169486047340685454002461274596523487172204718584205790997816180583830974930925289606315332009026858955594130527499680664809001827225754692190716439977320829932700211373021658643238195116636205034531542015303239334213185683990726635943319513111421238190500501032963582555854132522454264945919252580863300866559448546549999342059469036929001196204617050741758514097606953746936571078101144738350428087463147639164927372144542023677452460229932752280428263240555245969062461470847499455950154379289934797348264467330470451895996417481736131600192199675021448800243511627560190202816772411956115566466320031259704481833040939725439880562896754011070398240036888296139194868975362401459604355484228649552150457282225272745708513711816416286095912720685506184382965100220373409938758639416804795493244597689615888924216484114792013462676908498909587569851254201648894519855124726753389993749574798252665358477351201045651847144416961338852699322049292184394396320408577150490692388967814393295609930612498592195389897911645915354176654275249563939895203478040963456067382230210410711939928130165874499991876439728895464939719519328629986477941660499525230463116229683324885432999731013692868576176498660937422295558272003396028206959282476771621451127095532744762488385864869642625106387957043543056247448421178072345752666574408153224749345418111522198911900960843982561623215043387398715753823437890789808681534978529561519157420290829270058796509550091819926360739371014063694776000413070323219998092826530350798445551714271966767999350049104565816147968018039671190557952061765208626287364838691260880211650822474479657595627963942562100867812634046272498005704100244750215470624941301633790472582825789964581021296062311188320945046450429373578112817063302621649081289393032415603718874407150854512850013037917375298163636967651048062790992007445083928183300281282905439302808365010877901795581908138559471690531236627262881314993832462979033347586060885375669405648956566578141109466317964782627832399064802172507911972734717583195800999282576186031540389707485723989921223019538334298946035227327089862458152813142389410825772838125697401323423236866177229028074173436293732285753173785975082298960062756245435477425358237738004142425233637039775801737891011751590025399720091532461267163802722643706631563552489865856704665198695216221221346990037571556370684302575644985139874446222747939819826507674580553693672449513148438295778265070639123899421704738072356245017440615189661119482238431750345925180615712411989478407176541009390989273962189015940420547971982151915101900580356766875551858895522755761127264458123752813859339209488245221462276656107154090063667766408061999135030271897943982628496106241668738672944778872043590274394079817557936624901057215209125534749377455353819387477186882684799375050495230588951918073100916700306041589801095332981555512862708575400638741785672932331044836268516810974520474394017007167495099827223699276046656953970143253352719207643344863454201974610309372635200180928455116918041292832139590770819804288193766087790908571685380320046717795127033063551778030372027599968883999102612567899820282584888720855297217797791864503330256299938608199840168317614997571407730427301623933189035881902916824232993073437149997995687065867921685884972970817618600702915346395127771519492998105233602500308388444650391427989217102811235748891314267714958458652887380333184619573176494745221493004182505612861124225358018405646771466806453220321375161239726302173474192119167825005181122519386279470754714609899298730998147283682399413504486519256836458848156358736019747445667855534127205599041069319810657676875476886858449028196407211701274654465296276583809297896301104379938625943259527496430914318729271631438119481648766944216076072318320317141843363849375916042916772293037688893743177785487816111499435775781132505076724080313433079768828394226414232378679454567313230825893692961101531744682194926462618453403413590447488708578960988899787507307460414222628173275390090737619932568869830726599537615692722515221090388320141775163000562742295327959908684382732239408238721420937205090951487760054653099793580808652124112397235710220472248936750698322398426031077729793851968639399691934785027801239560032561339695494446701593837598853964949755649562026605212361957835591192924350841949472859190807030825716240951454508207253455926346038804350654028112254014867204083639125537324471330295358860451338231466344428241351825051512565953127358037070366985623068988169124035195691674525885315063245074954037788213857734987246407048914433085308002941655271374717624218159316923881281446755231513092819780060665267786965709398244564389721442819172102258219984228315837247073919223628972210212856681041640905654410654679421296361114948862826488687055871857200315957892021168348442666773541753454658928727582671170338189680235752224188850322559569626610026381781257869436377284751427164987909165850338227498113376281818119017519857444302531129531218979238832743610157540376109663252623452261782215834520501072433396500454867220162668266988790017105632992749158380679132142554664054117150941643390370971558674639539172443499484809385097772425306530845744668311047477105748308201068876495532951895038734827102037975677434900429445564594922404813338177201041005934020413706426350507408146580339170285785114116112145111659630070684392202798096100255195778397387667665529638788590728415981267413144133456794896075682883313530876911305522947382642742743954263785191665688511942404383609138149427077499249739055425998070661020916461436773026963598726621264282146158266453949140546140745590109599618781840732399604796553070614618720010768566477150766867053254221047071738602758312641095405492185044698906520805211077871301661484489968717663581226007850191943783901163999653709556156827085934596163981246230690589518120296173192053154941849768252687458765249854469212707023526289710334767703042509280939812831464228308039824555914008005387306624678526296888670238912864877449609221720959929161303664833029448664594492131624523860026987092322453269698375495878949990198591238148461037832194288022706164650231386937769784834213504439577146693026726014171457479557757444794801380527214745743806656110766226077966976965464704071124078691408585240154927629805346062151582852971810849595820032552855720496821819890495923672811437588514510850312150881393026981691517185548152705496418318139285551750398768825649547498363247227954446294196333208421151099886770006675121982683890476904709756478231840142528980206468567923008252034377949476012722382982591843367435442014789138317590931314022424534749252745101542969505186017740300089731376662471128540857799121689390470693709170080775857195093657254001546844738251491227116253196956366887416198862926248223399120138380666436689409557230210480325073367324257001982933576829492283507492719850728209151345159069799049035988814029708157281843774263538518864325604496255790471228274689934917830339064985079089616158985034585339548259103500798091840103556413690643573656037928931261805843219709721012999628815925170238083984050243285283874030819606822573807965050894028702304491087692917847506436033792887798869238955990951504611523604141738033303074546495628927081782135512185421205396562440997036164126733156390880380804342881540901438490495886259964112162707961656446152759175321440198373273714596860713615653824697248996899541988307523795629727603860955026195013952671292554789218750996824263842398481649595450114675050817460149348140257209717623208114920545404865412421447316648649994633267375136121807375599966931599227069180194949131106103428703911117315528008721742763472846935029884373755909721946665329024846691444342518271118149555695533979870046216789126410520201479892364428140333588795349401959485142406814464756289664593044649310652604068217094816052835021464617129884882371582461980442411781427582869114977996917005794532495163894421880943953405780905156482358512345299004933075484279466175633929061413746681271915918840146527429720313629980380887149580268096300302488709008789137313871829272878042744120459314312292311762948742336415063000211896279890031026443109119814738045806092938977535326791971179195220629463592967212565497374806925304795632309563865785379905244544974552848488020633089276415871840861052676676389899769138710176448086342193323838311497815597815259853485852778165818336162743959578724600265382776396313224346764157968380191108665055633368990302779048603019164333033445251843055928019022873162104477937834239450054237963953405962800257489035104029517015824616892208055976891506570285294542403098228681332277284062559476094862454796500077233011124843346476337665534978866341509868214584861975966950858047590863532016846640411254944584391241185541204178279628380727123385365691785859707755414034038215708682299280830780551557042168385777577362119688597732376500803898210215203679157519925312017975283655577642521855258093671464220787036100903691120289800443943088247597037684121932312669007653090306053232074295491461842704290746008576202002412244778118445844265592517376857237819636791227376735814062876234162009676825237863994092400357036704847737398774951008077662657991246869557621032679501334718895217747157068089596154808268892453950575112373698364975726602806022157777665965553349563434349311409650625016482130055396041925183449367844533230228341093787549976472085665657340854507601215842563059067098220844958049649562704059181706672601874574358620769713858521704672916706695124286613583070205455480915512904979942598343038206905490500640817612994842659062066482899949905580168625820723070419617716791201211745476824742442355721005302527533339662787641091132984059124563131936671841654239358024719941566611798113990715241542540925549912254227570887046448421947471184092478928352316110806101600555398295011087125972771903639474064339002280656807538641819051340843722035329027852009346048272887559043090643029858114695101393344164851175745558675149472091646937315174953887964775971385022431261021056517936682225405466634250542405583001143795588798804375141172811159632407305398015526227039702769938671183595170263808730148496423443374702503038208658821090144568886376169551128619315353783326293517614509094147797803230374129350146652778832680328429897573128287325332099672572203722318387716690157601356135348469576606506864397857180464270784204861463805249847006586042568625660256543895430313534111236363361468034675602570725478230778074428580723473347931463395814827490620348618066883867575277898380123017082823616059369861956433015319855156951666976544759596226223242761698796852937884215981788038308933721319667584095048309117747106782130058364780035804792587891371097200085127504341215696719200707603295716687708880334105380150228707858493376634541123555494938554598605562735530959696342485215919508349053056540389027319352802699046067425737898953209645277439950822446858310969532151453898608995752417311666852862796051025663438772486859096730768874669446497905078486207721378458927108423207865302957182820580157371078640406734081975958500060124137068113170348574183591709207983867947572197323957437085620107259357649388245622757994823138035320894240748994702631510578280898526020305399211498113601000140590066313984258024430269586683989257506225528228073012486599495137243282266573717578632933458663128221134015630705284693117569854188370066701654717143487549279864246084391681711225217678822620582555609726067534193539895531907089131998841500091206754570156936894369209010757325909452889502468143538692523002704049585096058180028221859382145176361017475978127091796216133329986375980196248438050634792771913086975442935996382791886647568233795516134597204795444898982751915935792047136265794735131299027190027686676718740644290181145329028305106163440545611346618851491598386370622464122510509015286213510198212251392216965999016635599068332088491323125667620257872369384638081262798172369697736645446842853373615623980856363698949386740405553885884784408692251533501111534576391648386107409632036114606191938570951768215327449772331792477604426306514156630913981873570733404791911211653026703841572735688727537071237511061785694901644578884992671869221535385167131469577158362582033047939298576088263361924495738216203746868888222618592470739268329565642770140411527793838162555786011147981526202373890622113188357108077573588001668198718254890483534189790977193433243957705705262252335580216614744837422301567239904647883627904147654890407452105957624843147336657143286906179765939142738238207135668493666895848867652319640916953584193604667338302372248792477257232152206934453740473575377526982314126156996956045153729469832584592650200418098282124543406521500675053575241444823231481679827413614597292616589324195785119500380865537687881527094841716493095468532300435713305195593248157087400912698115655964509279032287280456947451894897628058482531121864377835350774672364261975784955532819528743646984041223679202167482641475114385451228182078833970792547896015595923067005328988072282662205640812405094279617188102503133711329326984899057540574602229310767800851742985082960012602714213838970208727467957137817206275246425247867486350754064079207426987361856781804777294101324966143159505150279942412731984109000908942899800795710854469689405175172612122544094798855053096426684024914441680492145689917857857538596510833881873006355713026319286237786906479343376972659189370548511065349687463362953878643878436096745756520599370408271194691600187688476459011546477136577053795383399702882747298096118429938212174042237632239293496631402163523266725579477355527513346875551107890182931691986079839407855840455782321239554937424797609069825000568819837478671138883518858487395658966171074968228545208723610214054818997908050066324928774661845111549121843978846636854377417331721055191909581691957119374206133984185623659109470069341515891922793866284009733853542474902369739671001025128769858745236667313558902255069054411453922245442807032402802674281556696490533996371165302844293599477462578443834062168198182772817284684851207734479606300163857508571752111889317358089738934019230917536726809993812242422028374044846450077481903697895865997190869188570416879434612287176403645899001893804290887457526371882219566635236071395329235345427010886554524647873828316954752589102463704131415738139119501907458196598998558788352016076239274289427769734669833454667263349985097161680094080884957257285649031371597289230146817865064388717188144468401199701918860594021183124564012186565627769622702550299651578911829564725933274434452000345476519673084807802969686639277764907809927649571067515520294400943583340719092940489970643826037677670548856231837675085149647571656055737520454468715892271075605349198063607656780812823894532829005514800190573232056826283441860026467866461875931503776409863603600491701750608040480857687404619009183834719555700407799070997188768485772751463045214065882778496810228826215756546189941768915887479580233250727725868600747740988088761589592371814639236823906887117323287254452118777419593443612231271474437180076148500601791080312098672152774306960577411510725488390538224879730158785797826392447637245043518750027015483270429339827409526044378691520767361941383316609918916157299163095971221832894658252439697829226246573431899846038416725807955472816284098500197091990571794620674569848232481106270755720325600504652564898656699463285838730666989684385804022369390001237086136048407123485394866335767505388545743093655473392442620777484549237436504481386268157457554076809075208179212823947832178507729325899319181091681900881099977522850634236055319836738182714768442413347663422181217137854262391403770176125477768772607819851906675314843060059873887967003353534262312991002170544869225068302729300025543450073851643173233332269290654506507267726184555363388076984748361618736523496693454829569330385153309757082699279269599140190930805107042605925654847175762207580361425002863610288739658992079275124256555500177646191370028512802236264654801641318540923423950590540819327631460305848112852175738861482362883075094108495067768232657094259418704855177125240428309520218639555799119733173393144054604478481025623038369391818866535584491148807443966367841688740391815157232039420148385245904778665759961336679702239461933498408266711141370211125328578877679850639379423081851832688773739524900424653884966481944523431012643745266644820630091053418255084584435235815502852440695791477894502669948877721086860884630926440855219275026105555583090487942059908351388521293306249762257495426391542381085882895662227446511537313829861536991755790324098664856273309006677961885959651355715700112366867183839882203578621032953747580766770878485831860999721973943416066746272714165244604425107990231399199703857129308963697366022991548308939978603796348549445782061927326465213412733981034287246442268811748201948015116411250462718905407520996667061012793573786997044472832762649133736773102573800604144220488110172599749093050317159435366841099981078751505268628788205653566209362687422558408452184621080316841170115643901591327360387026189988656807124818630943944892952105231094137911023334123646077651839945943591971034913515032454690786566357251623805456121878129300327013986289593315524269047524188129797001595209158197232888708842986211443617352726610782767623277632190629138774093079759434052988570267131811790582401309320468144222835928825803849842973606786180475087188432496737392564415010728717973041470763252476402283151171177652576552955148626910905955872116724367631284805897411369188830318040218312349377130431411078215375251353718297653626205563041985226339364952849590173630480928256906989054092359765280875543067400385816244924292672409113186973455742011491353618919840746290358407733347098144002320546495628414680022657572532206693273224158561620032638345468782421038626174795240898199700362983794492163958239384192551959128971287597467634115954780988843105894878878994069176498979515151854242076818147079638434073122419842882865294263612787345972382950552816715452533661232618258585152567124955351293654520466925056103947299420183369261814439930495960108749324184854286018486558366438618050944364888750752449275787003360605028784073198177546907989203798655790874212088863573764429681322131577613179549053656442184887091831039279128031149790996767606374129884257564595541093816756058082327771854361748685667152511505314647077589565215228914155340242297363404329537455095109917327261400446696010592914069789510804769632483015738272851227974394170197238310440334788866638235367698630545097835981448349199994256879981611222549294212862719123514948063836976387816069407624008364112217943264143383544792855722939285971640431901812560204138648495954460418307621225633710865545425303801909053424406708300963853293065893539446419452639004532723438300251595216515243416054958920650356513138235540390405146558129075893636934745308544588578661456910553674034200655257650920417170786825786084153370218588090983523439480203680026922818848265679318517941752680868202576640093449835595828066333307669023924542882646541888215454312143271624811360490466334129554357117658105870918713514831923991205391182936689049523937493533508100804394575532865388540175066118133845500680103996591312706302807352346292633429263638044641737936685829881180695135157585713659205316496138143835008541821386981872824213403478166016952918711344353352757089565179806712644851838694619449507204210632251056190332812666112253269882058754827011339704528060176570375760861571044828062501278767396065194678489518628516020124404849976971394517693280182802468758350662123400695158919405132251862155770120515945636533168033193063043460565160640077138620133642441941342399967840577318651668800986317691791200390790411054961654670846459015981715839245577236173030937473969461563178093149537674279809252873061498869092250077342589601470284771725947798389699149401203157907350817622174145920146720243315906603928285817300856531077303328043835342509736599583109678923135811285654761354802923877475336042908475183459979354729768374935563551068702769856759348919266239446355630172303306990813414140542258675396381117068212179147218645368785467298288042189841682231337925931794477492893447307839896118738246942415653345293293940553958829515729309669398993649445870196055704707167587250510732171826268587755190116834337481338409924055986015579895362739986321649950907510651710022491194417646186941466792238762593733461564036810748067113916400501980219514548747030511831539285738400385494723709811068723998521656552282284720386661726920772105128904907227058457313571114443637132301258660200055957347257023037580737717967274712421119339016193480174285853122201626232863401888414163451043692379060697970145653191642639689569640166979429979929191254428159463446590554359284723613367249238531664248418971126545965046173616595922044347846538912944307380018312503120026971527322244475470633342849114770859284742166505052967825018240484429571020280543476954079338832319010070928366734748366822310670019461938535267783352178575610983613839350597998597482462343125498527852124404297651246677520367357069500442178014697886779148667153704462596917580117171049788475431102962444421427340162301097704425680959515423659194971612618681828688046276108869892508676756860945102695350843479757804519414394436671806805656356579782489669680283176052604939776662230789799098872256211291587345236679210426721919873165376980454180487745786145107191177369038748373558270476923612551662612223549517427932561678155596379257773889435497943656065092309248965090326858738191035910517118055779296440634941859157770104451245568665780465666397364380070295776309439564702926328223696505234739927921740956246695035644349140465723031805948350924144309597176003001386211328376222586982657584654083979125374194079994043691990741673782996209245903438437294443278223369056576624214668984240646576475219141021864072184290640352708972917784938623060257204947237458936687531807804783587669269795208257642802617447809085543976353612892428411162248623443344664701927378423287245462775217710261820643149985722461025842465143469452070340267156410266594286960637501436612661265755245340028218909617793783049389021488420345125347624026489670206828601777503676247250235808633265554893798895924409741173966424738920179016174752012489803030272599559813069813231256574581092857780074664247767150955912077280752246969716084271718481680025371042587638743120765903093656690608933960740503338447942307043044736551558953863836034509579992043199532066570401515096090615997721350886502849192355655984558913538623376635661557579729746867121748236565137660735324544584973133070851430463883000377677074719130692579490531191008605937819314296019943903246164288169217280452184473886169203345809623129985422092873218268736963184278726356770501736525715888503687903076303972647419900843686159111086903513757458869383296250873210177024563357184134137596112363210304141917472022221080936020981653065214464508106811133772684197926987997217701314497892137989706521481456092954971982257983726188487410156121147911106957835658128049344564700564185617586704872217071286474822738441583885893394958348036867363807693872552484948181231485285806484618496257798422146656130464436040662250234450576025256922993515290592283951707483169450595739033520089048816191976392730228130800834435050780317716537814138946205647599414093841879956922224041816810345313602519137993804209041759003519479493576875164112798991777968610252320591728826627634974405527729784640533361503305207272371016893314278910336222359850874684962876702299182997772385232364907715060216119791006147611475928499957080896664785145388963668171663076258728206523953783969953399952945974150548939743621567185218533522989240962775877616372132728549523572815326092544090859288337461661206461887017927670513041214064636577416968741436784613362236634248804650865773566447522805893944629617849227557751337932439889435136330211226730679497753852727636075835780439439239518764063442992179589940902948534122506473318151910484186851527939653008830003401397314980975002767087559618128594727014393505133768562434635623452680244726980683938937704618504451637183826741888620585619164700875503748632808752334743650280779461192987634476757541612035769425137056769179705759643967165909986336909980669653802926828899028541565828851282708189963220160470929237170383258331526471223138418184078756287731886257917681028446965614210752852244128285067338851768333786854918884881898097055025764652750706549850143085368826924136152140799330730918791627839446842151269521125515128770731787226424350691431904950128155835722712501007213417008254382278036867697008535079240710028753598726471438508645659957597116138579503842114883185187342575919682986568631585947806106258710817777568405551703506768041220420523870902600573834194770469304460342075657222550253711783478230732760720292815769279239092282247351096100625240391286280114326586093580616648287927220975692097663854144959736264313300566296155672780367678703887178315002982385347183921124265320170668683472533150073190112464317466414137691099870918810804826242822807233619274814822516316893152531433699209070849521271499112929763535984037971503746229493737620023326783571272484461653024685328306175811472028418325946188336822050931924840754332721986962005542560411553373554646859384420643834873417751504400028039034111284145589580425288964984017677374854197940306408018636267430406409066627952670204666030857607519442625907901989370201592695242296179565936584744727825977284672667799750007741797480786499378741690464360071299027019914476055369480251100306690107415775531465506725419295929765428649986556104657878772442031354819627992608780026909306638333247681006493958763921441653176568928530574975632613364849510818767271826250986161871439261440522424068852630200804367714322877330134396880322557482434086565107072905929202600862852547212321202639956853259832469042154834773044764633594885517813842971717552997227616460774445174254364101797348228569420678165056445681280737034518131524226792960564897745195702462895630388679687922764035737956848882971736261803735658783225629646190724669959126305862354317734424446185135771730703004398355471675663537275457846807196326668585323384229696772059662104950843905124431547632256621263618178147139375553618077435137518083730830610545225130824690714857348518512101357417541027626913602068656379194620678018008632844761681523997317354920332662072509564950280988992344218313498045998695694829345703595610623029534835031671629507312151648737997028302338247617873064119780098500437138961871951853385872423073727759456524070222690612592049065361180497229587419101929077838411426985766306586915925587239650780751553614822098290699477614865926926213759195450759697462891748450185962373951007464509885514942431658155737889975929661259133212224535944056389546628512011001024988018761842906618038674629671496106845892722514754290624390415883518420150745597302485661063176916309734954879451181233382118688802907290866998716535224981229999310464050453093537747670415762843099693652913043782828458325634660137094854501819881655929451055567155026686796539332201779854394619208705943704141712930464100712774312756154856789530422967661514381073496236284392340341338744678034032278921248210627603234773083038513167879275560939411092339651575523500093251437782537771263971168067694172905266584918298520936416511937762841532237725078639333003423311788835217309852991844428146345685835426729128032532084341325916460666689365433468186973772595255710814452046717177971477443466420964716937253108821048969567286817816444778318822340576046706194786771940828923840804874664836889246865448587784415438290552628699663965029359609164113795425163841693719090169019773711355391345948155260016389488502644508963194269967214640957224622839627520634400018160517841964561558421816675130185725478761767963745244114930016703409842215985790124341991528222850131087948449938780009087554846824571931010319091079168518691741958441981644069922913039205360097726915627863180979290387894566911403544926779437326481717497679916610103591289778072949569703809019995757777374667763368869923184549795208978067497418397404897133118113904791564141617457175990758386466750787647703800881000364426541192564459051460118832062122555830986152612237592136455149839152527868889627683385174073183924466087085548691245452863527441576498348189489604764018700761606265442464837172042867924417091504927723937364908385758543662099262119412817413213649520670049147585860009880344432612148153634774623519195245853699835181149886971675515465185885139815391887948439571362846355532580231648218350685980263806756199362185506832772394949868289334131008122653817311553497310458139246795237419447691186627080342742749000903146907036400617394348896882482221034752453697784886610108620504126256441209529738672968362261406805692582901669406792248583748210169500931269885076879269443624203183028237842427020732591513379339491015780787386023856273820446615395760469459967463869715375029812111177376115392638027096057519531618103757105210430836472366995997845606910505217208793616735007680106095730684367960839477832372224596957512777827511794747551854197149326412727750657008304514492187670764796542067487345371020754958311793230008597406578964338869315623998414462560559814334597195047650254911776690375928297326041065708198701043896938991230260404186185546665605429820759319937728937174283483978026407446099808823761240593058818037018262751288981705632214596239688986165587381258696183172614508048648711244211970120634255839968772678166081871208258771052255142649565345677121740587698726939397643164487058635633563410912034562247750703397617809211433602845292115976272921194199629929742065803758217025028998301962517267388552229140136557472340432872474574552963674482479771108493806186802995880479132279866780611130407722255548108836757841388354608267059073288660817242748484409133722542722857242247753227758334055185339672063575955644776664091708396559670710708855952302173355206941434234465011364879732214968465885306307723222289429824198356746471769813010070086166644413019274075504721253801607483630004369018764545549992110195628235465181737127368735029564523282519784808973081542810857655873982199579716648205386265303498047923532248064456291527901410363657520125472304544387751385465642082806607130442593722245345988054093210783699150330492184587235679619910668473957889019122130900238807377349471696542609007868609325693387416530337173559393239084420851723133670160867841082680688238040985133164594418297351418095582339336979848201948544688570836499666566657165544874268019416466651880978783611424706188190145382378596826801158074701998553269432370262875062403811183218589844858170870542739935197951064881982320786042502520293454285122899236697592658215716989676672595609836980624718428033885626093562919337753352421311993527786954786282002855823293345652244029830393619110173429348806257758439984165743572376854831043941993448410738574729576560449172019667167452295016913209451036017809935706417714510430129717682171610323223314876079032941392821414859228185259196194397909107522337917746669744843032869012142701329300889046636293886658784125991916473618366766490066376338731650269382367599363047406483908246254468971070943817906127745559072936898889895887607223199889162832632495498664432228625398714394989118294329117312319436227925778782788653715475060219376264507222693218778395026925583293252946469574610957849087196885842639761625302819584031153129963626127682899404226057559727646055955659678791903613246155022983591099078727526298258537908053116506751262134440306280170059500822864892579395648216876696989008540437911632011285799047585652567430321169731526322546673696768367243268329155346476274508234614959498621597429458198619147124157105195506503199654572641245627287258404386253119883097918615550846695843030645147885674137600160418633979270235088312755305461850505685257441720215602990011398800587423784705831654786544748240521876082602787192212431102654361072176490035480946653457994964957794026736966569884549547382083562273447179268689360764355480662746841656223880356015554569529211670965811079715140052390344270142866829905321743191065816020680029096898209294963879015271862775872513682178994649981733871923412837514192125786056348760826552787780822043129987432577160718947154134027970765038770809424683427506105238827803762745834250536989878634011429014305705291684902702461662898738752409895713583990694036706105177133394775471789423524049593036183548081225820182604218697611052232129702164679990230172127348124025115412222582682783496890395756058673895566393365395521433702966330110618983928024685066876609309384027408535565144012229347395743524442744786028732592656973959440655961192599651264863619650732921122323209167645961458574272063690461813196130538250506440767860590717683546379785223251420398464650094901951983005513579561412722488191948426138209211675649276976419522403147211182219912620374970309519053667259852053713123905328168896578317792965411141321844933243046813352804608953897865049367272098027045358629820344182930918463657137231985772228907393578319570101085913747828903183404073578040788297603163026068456650688750549976274119290290278246097902966420995727877744413145438245806210764673824298710438441289013368365608160512155109273099298603602391982881787255397881508153178092798237164101629822945244201854568844422861794122141637454354179241552877437852949497525880368612694916804883492240761589301223250596073056859840309565040050499292539159664087503791226434483616164836163324112109053827176594356590975106801665559089086243548351821272100566601416125537870966676653382347598852731775240719296459338980726746321182366601313265842795170176999013402816851921265378709685786346000666356187352795527751652928324931997401629230496150512092602282025231260298654089959881168435011065497681823630402935630954878467440497265075172734024199860954289289214653609504400304547496664740574484110292668941647892560390174057465692160709180951302904161979227152142477195816027642935079196360882954193381917512683074441098841278279456193081812590747517944352373861122298033473353565248378706318636143991542466803452434363595808802258734234580628988148734283797948281593617775983014733787009436501025507710163917664166326029545556026717448685560776639696417752730738161575901309329042321856683213430308151506978069198756385623313478002867654109813988540733563068832576578730053300859506074350248444730914345044365978946803893568036239942087384896377051629801549166412552316948473664568126064453035097011630098601346433007285269743996085216036825608718426889362029192248564630457055908732711520588536404145989115763542842791613286260537775206315840563427046566078145642815728918355687535728615361955989536179449646707167129948498143773122421588487620487363758181115557423087921018961934792750723440683782317403938922299207206302770500482332002887596948293517480394635096919115511244798547550076006079422223657001667268567902037024885952836590851031372857353749057034294244376280442459856282768555244798730901891632908200029386210247799920291525417297499125030335984905284115331002062853034827311179119651274117992078168110711634066291576035359026253813617962703100028439390924853913012349498282061192479836995121257683665964583506415694523664175399556928584104371957438406753137008497547985935984673118157836462750087106048611429120056432400534306312981542838222835701727303674913497670632747854098757663470580252003433999895090486296455658662154814108886058409354208158584259985709135613049306234377735519730930569904061770796953046752970882034748514663568076707822221587293802750943923973133414630087961690118421510959639629543969723850586610990104089036281677765008422006848081171920301694933064142755588458956448688333955137714325962694827658806992280504408765557167341511458978156570566220111454217827014358756647377039238950557896240090263447174867425779949105401107010657280965186206801333415999133193099811098280977311961017061662221349984279431832440137349731242018087043832929260015133392862671052661602406033790670032319113852209955850162065752061958677265271546028642950903520677435026325186911736069651847409912870522673245321751005384025206878943386914230467626916578409001712590874508480849000418151882291831660235450819868735785623102523252561738175605681071430564398908807300648788262536536754290586832532081753343556259375033619574788590215182133693404073140740184810618288449405382704711346219767988505731217078565869174547090519494242786094777935946345461444044784755712132832524964995234397684607104111449725155800013389167308516965194561938249395733824761465684770761472992852065520983750055302034581658030423675543175971666905933754755047870817158054303073880268881227562418372964492152289311257017462213364685106278694359219882686266442923763923094521179029417429016119228234059317834780648248348613799652568189950689248952953315120810244961644477501669993160774672150948690406027669226536427365220280672630825418123475060625992836591081256199303496583996716878958526996623304500710866110937799268687656193945625130442071791517832560886972560449599368472933176406251414416461512916306000347446210678855090969545612333374671986241055938496774817060740515139340273669092136869517707381802665175571802694470606056912892483342101267117969479585521361816674023706252648591723477041783338238650045867534538306415535824564499804286762288035714543659845884482109544760406802279930565346693414634631352771638519868683523860981823823113707753960530486062020694328887251372403963196686155765368561152975203925855662147181467834997308946669343035791253873122456371324336699627135342049730024165632283972514814915601855453949448692435506194718645372913832436961314890887808710117861432524682976412379857128515592715211356082542413407630027717404275548677411394839231705507299186078269001541171634280971292636978426805356573157419241051667786808489915278139819241618384321226670259295322481068588653204110336597954553613793571580807022437184006968062033613064357681521218032381462274347499935089986368045208629772877466579106757302883011425334619678524676179095361217903719989910044151506169680442295930232834244849022925450718681825942983448244651730572066070719095001636950927271919537664873178893323614442472769790672164788773412446530149174564901699540160862243114926423977429468945552991088668874596445384579189528314550635134744402969513760722590586943547812781582228109537318321109734876236786137016104520466288716399584461215778767628578972433745588313352015203031196978720204019676232307822462382937083163452535231343096438388831676961544441640514611016180127593891151178263956177355360906396773372002210762106855429151530034112122751884410033615315848268748307522077803747691783168509435221009414765641286674616553954811547636123454519765778846507299274636128853856198070626277854027841458975900775536341795959587622139836851867186186898821316908772604168293427958573540755034943327293916495150801166752092358061238469777019657799430202282318263224423600498773928440439998427121217281881436390322197887509275920835887031718936300406712808760175520371310802034451135158841582233400100297872113910980809163176763449055623678799863715988004354158797032990273554824710365818629749478966886137602088725988137690816354814084197036705396009033899456823264460264049382521391764319627926245934782904777952314379085488020061610782419916706182360059266159751621643605013910210654218894323057410446833603927431900723280080570908644367768085664550482815006178199566262450653608227254195618540580337061207638512393612552324703598296493278864084651432151373664858958967828334414274685293674215886130941428539429355146137267648821144428110435309583802805512899155104096787433860727826794064177882213381868830658543595748053741500193258503614557253274977181693116313942904474491990552393508516667355886972324175147815611795928873036597887005105491085583524976025958465850101229811640456575057406402605239871749972940379674837151700974542490053323202067188723068324472862635581299653877711818424770273403643789212931550988231388484901408558827734993697449782090413079818994903098664072798897431421713548386735124951665483307768493537636673778920915922850521731397331928101063044847630437309575578174078160701298117208674442363021734057385575398599765312608381090665228140420102051101496783403502321520102056556227523745254283960601337165552462746687356459214641790962702319321893600708208459505940049154807203816754726236405603138508631076485691900279102154539229159938047259924663498031230540972687840872711417135595204649330015749758012312735286250828474217355522807832612404548064032482175015878432403740929327415150870625382472621496230605794219340987690842626718226620621512520035305223300546702734793780224663599845222073040911813997961550666496272299875198875934556648435962439730002783042140672459522002101504703468391528037541869825513241273871848219284948556789320934238698847378414707281886420978520942813547101516147282314269542164761336630353906935519077012215195545155500886470167911600098353092933063506049998356870932640262678876747373135164921124495094245286880113871532042441732081275746381298022973728455751473851509669284901805019789498934562144978230626420531584028833968438474415868078489477853018058368303630613811900411039115989298180876299284425599458676203347095648181538773516597190514982436679188052049919890489698347894794515734823338354305873747416736190180600940689725214712620220341786787087276440581186024761734912177480665305050403947516449358224535771441461059308957142862610667627155058586544467962412298048183635527779579113470247616290181926074916082074650848505327723454453383486403595256042317896071540350295901712110171552808730190097213825632332337893590619551209587073679044979732384732709709326448813288560094047768221436107098596687044900391430466989167064874021596791799087917201348820357508813011404696342669306385290407127336946735901250862857236635968533500604798969529925424029847587136369254113916709309514296329563649513584662260029521603296023829275194206713928411232229848280514285171327536891295438634058668779280673339195053873932410560151680667593465541711999887285823444764195925790093251607249434647607743165545186184848102343177130863649424233943097398757801990981064831376704741951872536134833189219551156576911661274611954004366679314006136995045430493906188339976324100939625268027120504391648518396884104890703385021207184202789299164473883724456742485789012959412684404312276462725725015011313110728072707757634897773175712422203247310791613193421229647802962777360899892536849047977320535770937762038612986291250081215601991649253009003633002368923846338429981190896692117007671757377602669676629291406769947178246800736819435798774044480508688213695557234258367575673125873871436612912887628998288347505112219969242400669549959515143774358858609428995822209573678511646676040104431806945564703771606928167380691155386837926431559078570813408843598134546545808155767599821839646201697201626840362443538458867855304066402498663763077898106609571705454278433096664977804260555822397494140309656250960422379434220352123604466699636948484778097606676459081376158739253098642550047545894141431675516325126472019004157409115981639534490697917352442347303972920319214063309248653051050135929139585482215205093361556452473124164796998172041109197117124229936875495366918477172694572681896477571560386342640675848971661179190552588450051588928816690517085374746503013150568116268118588365818051455248457207871670262699538841323975655853533328307216609314335749966122341532314019836789773545242337088400630410463239212484630260566525864895836844751259001258040899407287624328132240902012877860680461663255873419252873207937220643566042504005926271919167171162554459104037681406518537915289076955420959234723126801632060187349820605579875690565306596784802124630792352057437163636312841615700989622309934041078494034003138464280566896588777748097609670889631921895111602980466410601850269046576681812474096712404800797565025358354967457765818190131460415976280453340396446026760466934222173001703767160238593520152421624866805468646558165512992043751591009941120143387737662110198323893459227699237526115891117870063342378578793848043536106382629596528038744136292815154494883582862606668050680156784773797497713994140469308527625457724548393041087704421470262878513639444449798441845740380374553033839148222282979854266522412848299468960096106837249968865743259321274796472020419370975245909894935371116038627493068738551158406288628248823173272227646735438323308345254894747384435386503881374380278922635099215295141090610360221167673112479751184600361685697451164831869627153806491729747662368187697495220112198051851340225463375994316737585001971440879871913932126009792873315907629629847419260813988058949305594521867838368648712983331171116565503893260074737275191127178898185571860967129866507469799718502239303187157870878581304012847150942801838646319193605616203194253062713614230810276053273213158363831020516645458292369708982153785030554114422801124711324550341885470751349080432246489150023790371011736137432139763385319010117213821000360663860087287941282882934069156257054251977975674043828129675321990196150767182136296849378477124739358838321755721238634394770206341747134967110593019971601654649892478800310512893548712020044686091965091362799386869117025222172241737426752458011033525332522591287581158687945154312431142205466094793359407631221385737677792091817203880914985229090479731930395470282229809356429935265005276162642798848962395773071367439364622761235145573988158635594380688932701633893531717356053543511257686520824187021039771872294335120403358758901722681088932259489034945981969174869724595969095029087096455940318396970147333966192880575982101518616018084238086591613815909943229143671447619788479854412642992164955924718938520352648677006925741373412711114631992078684045240067255008923777300599996344542674667160307224954602855860291207669129229394921705050070337534283622860048349105768934875310904678472219384025297172628461200370227139286919648902974817388999138929314531263110676196903711743031972041040135087823620892445384255366833532784700797123013917990385726566733739130818634322044873233790424046221808075600314642403403843152410265048948349092924052109857635461344320065794322840904194504449553432315585367902673369769368818953616274290805021572016285802169952260118197320533924498257298415295181956866141794330532936875103714293770950574770870837834599804331271602148207184092214649532914136147621121266620265310221222202352242518453115579611814199280683131418460338845423623385890345218407599466172539248936292783290142292652343546106263226769146082003053789323676652250023854007225687290604489047212245279301073557920287850184233785175730831048680626244687113080706939311867847201100337542457946381861071945234647169831020058685593813435519366471500180406650584112741300004681276167526074030840029699444634411087136916413031714623260092672852966969037469817813792563505059440646832221050316838369573510332834477679769964829666918552745908723588899711491021889759501360762413538151701655298067836984200027472909893742425036860664339903722604012577520600752062033486985549530860766504466806624967921941469731151551043183795325590698697415229354533353702683328530461807098251826151086723958240296809758162980071985405078062883421131370595129961757741280206174181837646812540026494509230000942073561395993151314368140153170669544909298854070212410342699346814890615093122482562013763820756318953376550892571369253985916139203742456704163571725816661073905638980704837418199410260838606695502298601744242970606572745166150825452724232385358037226850051991081988678192100244175993636101632247702905178854450968745329794272153270912209403320544736010623509002010768762420985449487540838725446941548641355212603681993324886926327960887519046918515068884009395532850593033249276340869620398775428836787986138905648775354157670109942192987429216766740606008808882796949469819831440784189018484672806038182139801676328244723741982227594303427233896867920590482688908973396027455655492471185252848860999595001593676074463816680065740621361687421361784721269763951247387178833163805309881159356079005393688545624588656170885738101684948431688294276519524842807933078188136729978524382378495983493211414584041235431537322091498046572218070244597043568727959836233585786238865067573467530701344336401047574524734165751289044299090239883476448869493234317255895422578282693788880109299158629499748931010811532037763703009232732263129105687857889086478672924217324965316500436782412966400469084550523244345762584560654798059815001272377527002736602756563000823019319174430822617562108107813590126578376923122929359630708210158209097166539823977879818895751620855562189726748412336618493551033779753086652117000672609147253682182837038411639565881717597170147114730513939901162349435548551210711941424682930899000881335861176854388161393891327610899844795161867053019586681521632108401467635822160305281595785302377063773149753036051541023115597767837924922279952045138991203936442467658593481177863321884640211273434065174750658462345357089368581300263281812699442118932233886455469002108771401133532185145464418478138465526457060243126473757544583975446571529753521271134131167733702138230051919458997423750943247666369915090675061263726569179484378580315337213518413707616498077704228498587108969827773788548061719837520754045707158685530579505246278433139457824921304789831377139641565285515893895423871925340554943243410764921106873206922302368127957607872654591673750849894591336391465491699028538159173552886685273896346697144235033227661092570170712058419221924395143412127104067663853959418326000285169900191438634383112007847767812928239444979449434696712167845688925119013115824671660864235826367763756087023328255124410031657908847161582068909663274037807357538656683012821643788350888949570859159633704120861729002528630218626461450879160348551500069565322881242768387422803470626656647977538486375078216974227286212291975730955720628548713367104088789391184496012076191729517352249090917051791700430056420190053837926709681964513547035691868474227029953193173595186938197804997788114959373354530226719498238775078319944674701836175763153089904535222702477723616865782737825711206415875397349148875110070007094244058831252822063237830916132559255960991607153889786212589590732690187023552465916773336955066197906472152861139437206152606646155056411590434866452430003973756269918060899453760369733620856072021107642543331033600152261086617141612026739691697954618956714266868939534807752098163355653683799471174679398223755446475938844960046285706413285785983453015231872783889078360974693525412435840999018810713518516444672634683096346730804955737451170346309772626036498158428181813785424294963415050514737826249465644372594317825262108021188128919726341653116294660483034826547395088138374299379815810759084071414694266227886742522101856050193765191172199716022879009216602733309768233918028866395433272660640358019877084365480988960956718705269701753810639714881250674966873675324720033040254896252024573787337411807317409811631044415123081382841335692405788387402226238792818600037253954749920272058675668474801101697349163914204804678978502506884557294735982473599721250027851370467956702683278383206795197983175575927285826674249385157737225631749873828405845340399449207699150200041520843116616186060751550373666211360976813370550085444978530141238473876649727925210462910812167489248256699558640170983207394199877260715194195602069856525669684311879255225764116405941653242655019499449617058980518175538132422808847503347451302028232027475754917092726178738159259720068194190046900265790534197243478739049665435987567586008223054360391707206693765564903547533810854617169178215854627015471066153016874822774252489304680049675758280817773331964534178360849697766698346370911527294407749385309740256350168150540755785101754430727770044154302625735211413619140884465025911184321040928889089279280587337373223714209208802727847570720318335297019867318986474887787002279675935534311491260934660368232079310029373968943860443845802182866663590017730070228751930072180325390569934650974136329034418900634572799231120106838081793341689719759096624493086695605516921460511463124658731444906816697442933184413839647740870600808269490144503418434898764722568313621249534019848947670778569273657659892069525487492592090952298667823599105484960705628231130279798615055562885895679483338469668654982600693712597778218402272732941950474845211875795446371273819068449044300340215588049122630849330510151442678852632693874572510677518019454497219198746922125425155014738517168379856010904470243644815345359701323565859081978439943719383331551701096852210877374813612852977133365931036237359756216075619364169537512529234466724102250709531550599708703148349707859741144913728850433682279682431249931484232352619346204448005911201777499271502371567468957565132671053239595290036836930058119729620498148781237624573346176828953535428017714058851130155614182693010198598831915250357559292806141543971691400350047331865211878309889716006071638410332412270226622706195317153321094895355755956364599325346918258115692193388399921019594511338745090634968976187447016880467693995345346195992159360893824774472164962096927769794759467556271226164475182371429620888837118588175761572926985116088013005327345065821684095636291356426803893458544959104442536039846450819512459728233617298272590890642965827801751826941812760253007165194769244965205277122727491751069225851450265166102710111224720641379686170924535362752649722899598106554490182141962561472894262489352123377132753171477029022059561234235620698998067835976837010933358141267761137795253971475623655969480845995435396920270663486512455620777670236876314646211251458661327599940085443500007246596721688847217877457885984077644325270320568908108072447095926684647755551872296824738139665117525361689630445585199491165755923912218373621446633291802479829952892440240130170021893283300301704391896223751964075778295660746187265300068495359843635879939756742564304046053322030424694813979102306347891887985212100056637055741232508765459415854693466764631432141264664536365552844055909400219214912791118599346737479117559411943141040294346992533663483997967397411530628280228776866090873997732537991340046178130923278748014980510819550068398539680648430210497548443202095013222745463796650771707515224628947299620396804050776916144471808687811787640635939610821768183415299156289158196808260171768196249866652694850602951017521016565739727347383193494912550624877621533616211034762399207365192847312660999647862629718704275833353143851730920810619298276407441417057230663806043932547599101609706301060978445048505014277948968737000726852035697037291311525853520323316214779615401588373269857999405420680262232731593068781992143307311459012829311497664680053890541792087736029082487664765741728670332520782590092443452055564807931047459110514733767479453874750584030746684197210102530810609856159671437884068849294863894297169351806543594938028436954542754598976841852178322502771558888898385650356551722324540864269846676209758754748299185148175841140641656449366081275353279028914284293127394926040995076897833552106098357705966168826521063596713989002040742832829528596085341984619241988033247007749618565004925636630217034154841659046468196482201226789078277936017331430938819035720732917954410723303147863630373585622138370973693382805601367427412151609907563753104104203172939995172148710105701982316075583896461270887031659147606079182393363054066000438381831496234355211262468760504425626278705244904474086245339270048913142936954385720459091103231292383485848353037444570667866505498371305382746292872689883099637798369209678846083016486845431820614154595103679574833573637057809905918340714970003564463623305326200609094110430451842363167281626341421410037219596520878365861124445320864213642823301604710721225822675051047855588013547792055564931938707884075385053557858710491682009795860950875209275824691442266413122155352225503834255210243195530044135927926476674463598915921987354021420930984613891073058043524202275194317080284660705173527973962395287134878424387011851727623916251162862989500099025327929678914517507786411084394949338373458820888094893185430730804930902781169688702674841714376244275103301315437203598486351149354377070404504653847398161900360316369105053921336638227862097036657903694679020440345013125388905069311296072773925708385707036783440252641527496912436666342656881286423659415757962868025796776576751987581780172505293982658447213222514220594665432393343778424631377063247579102040196156928722440300552515035213994343827339737918284182938298541414758550904124676729495960756211176575789674389502396763159516901925728970186716951608603634477843067702523621367753483452288417593008664009709068852966726242420361354275725806179650683830122898402433089764235042397297532607914760761861297928227655286359990482855175367921313142364069975122618032699913047863226284112023500216891308650678228556731700836299790284917595000966262379949997510743855915969401729575709111581107709996521337634831526276709719032684660652658484011605317931386781120395973591931669573868096656334422793155287423395695683439372060960607842083827707163415087442238875380180259657209774367301504664034806906226189671844151905568651502696294523155821069519957656894189993209212043928172349825763185194256045540423253204204814799377739499553660762113614629333056003622209771065684674419658767864331745649943738150872256259125640033758625981758115639633375301216397262561445820522641889647997561093989622302681725454118558125009185523840832468132985577206484968494824313220511067127071050495008792249096139911809714524497889661309104729593058445884463553629742961849944938694447229499186981837062349629095890642868174088084148140606716813404617925574601093254647758529306520662935436335525509068161094389320909023285996179770991473347259441390689723458523613165401750072602427409940888659355935661967540829943341984418359494902478148515111446225438807142065188405411904933707491562515050688633219770857945947895147940853764026250281672880654972545048359719557461826645809574953599648621512133178391242406150367023630535101550648060554914466434891857552005321980389287499154225860266824338890786582861225286978475225658930137195989487883248733416353103606972801608686871796655733699838963024097718127102705200685677728598440945148242970316949968773275920975316169755062384997226211481990843825452537332894046602443958764926287650310789053205253157788350062816011101743692047554627239672945149536949169685386552264914847897525503071382196456858165133748943577362678501092184218028686543973611868295225076718396662634355317276395674178862663293260807420300136148621161402319170791809157888733627503750894720404850249241237352474804078108608644517574926343097560584206271485080694780416054782122487355285735525752877228833866343018181941632305492764904602903170547541669884466709972163935675295378467632978379383806315132256797039642380344263538793711893478181527523851157046635089934242792533889525477626295607320916831114851109869786717525239961241716409658012647640193677066710059805419423891755501585124957816173579352027843949817947790126496160417525630962585226182557153574921904915863145372690621815716316025769627593767183174276351654436754718449324647106091694733647317946771794330509304262026971715077789404815652987998084658079534366413641517016022537515203049026365503891243905902241061638577234818166458353509016725046563227466553415676602339449145396343700034543176776614873451729456593522574060576023640057583132104876619587188954694155030445297640386515043602069884376347590762453051803854997564557576391848172602543675383168289005945310361437721092058308128198471951837743281623363186455217918261061959298843034019937945141146548015201947708600360961080443155762458344540274521698864925537524627717105434965475000818900597438311311636219730937268358479881025780940136846197228988609992491593509414117580787660100176354289498555361273845159448543198375569865122019966417048727398791953194050064132952392226214847286262099872806287575178195849428781183127083630225727905809523424281374052510125181121223979665169250433377162134162388567557586506796534271211882927200368240169509073174477542306417320212421857944834997047294011390949408918868282472286576130662274868137120108884457153499865470632958336687404196721178325224760468588662580730195959549225712024002619150298234699792780282004099118509643493134592616793009040945539778828407599476815246674053951467064873508610757938322041315189703648914865637303593393144184581938738322210436562280266398547142424618126206357492263083969360029921391747174259324290853287252379925985969289908898723323888411209858987178809170111667498262390506835013088044681765103091317902244330086639260478261962544060230249049591883075789775212514334382206121162667595498060642061333759273028831441365900006652485511233803723884990940792115819783486441205856808126808702405849944114938649365933189205294170022215266674307297632591728966591468960900942017979068069342473585708143864666419135062909086598193782735971750480626964140321466870228608601809720797170307968368773580441642978279095285714087108374960748400534954663593689819351492631549588690362828813130408432298792577636865870083790314583524442705702415675801592751480238903920068117666094660422357131150350890730476134462906164588692975519530778216573457743918269289439206208155511086536863232394994468771057277208745461709010777407253930681435377423940514528444235909481540434902374728860008574219800317465402333702747002281070532731920912213384627642250568120065599691969229577447756535560215434640872698713593576034504795131032691856219335140341330598403991721606114603209979282841441453364380477383056321127224668854290402385144492738365412590480999575348224862922715959143290367617437379998679108471008521380756098640176743140472101886656579533515025989701107353709537457789861903158333916744211499660136063015702774706240259759678611525477189912191482255621087098463631143098642895766635773180835577408549578391105215984837074615302625442965114196288780004509735521651555287648816212623365049117244026733552231008913846874569796798176367643266507992980582608787353911935991964239124376799646352976076863100296657337034507989412480146483697186360308087744239681186091582363189566295045817854202181058866262557461852017425906646676163867956542806422075661019749095419902033518641548338028792606508237145000577328017915083205976107801992721555223564219371069216835258701616608166216373742123978257424090392079140104472263223588724465372771852084285544628969776791398705130270018258267584012503570129627629633924026182215186212836511015258836847856507672921755242021203884554331353642317869719660662483289844716741838945867714328220650713486068422202447101499754199341794226802228130190733071813550948708456671590127677390935012849813811377884830523235449051915540051897771500893844683944088620230031291727902625309298384108416529956741978745212792574105992697529246148544158435890067615227102181404142324385771089015501897920925405196890418229693273268010232853801988361169543906268115298533622673656261356149848257731683440461375435336695977912683758951165588537607757799007808323745288727773652251399506588300718036634004645458159855591557171823310617356682454411130293433675285840707532039449667432716319742710071388582953283844757343053971395510857508121299730565350528463627135006545453427622124534091563983277244215226434782835520200714892515818525497021944860804224571545147686638384651091471047634840131039625625183866749478576134691591698774517106570184433387589276350675556100375709563249500699327085110679311047613021742501621264121170777344799057199278922925904052001214467438108109901696081073449737074073959995666292029035029718922475972665837827026926083009386113418807952582580476751846005736297214441505431007139987600253907344103580760938054162754435063505030260830027590379612040516796232932523294751424613422313545529797672793040903063043408847712486998230666404297696419763763247615864506596277308778077228760982688614774738921537514793917647389300231537844066250283003043271240748804747258030108487932290423693257943412399676177482271974442428498948290386434123392541329427162423307705970208544705157577594149952081299734876691678452679725587618189630816315913775568106286256740136435154747093769128712998855284873895725305945405180385152499458682659125048065385424606799642445465201153831129191417353950545939703033885347511542899904325371966052173519118137996162103971955876431427155250405953403467611811747033599901832457424055310337105674630022534453553152922032086007181947421383782169203071186211253086832452795263929616885917950461101501296077688906360225225357218054366610860430048569753651929137758171977992286731446230163566682973271016966778576312828092617566013047211902207489745187592920038454136648379704805530757613286150360748570257949680486755819220394645627503416489449047844525217936740196603532181025577232203541429264041900588832860772036061986453903448334651831954230897238760989652990626825808102463984179516169183460171628292762400341567251857194338895512476254575695817831679099533483894136258835759914451742080710402565531847722338121494481525485814011259458048109169498745679422378426196862012922867638255910350238806922589726632098636987890833830104813059086926782793239674423941319776976192263204226098576734120774431653255797556095860112312414367333418062311728186961008003763619935783259191517736199977370933454236919317149075305036379912251470529385199140665067974469578992138426078743713136188251086286971147062202084566763185836667504286101707892146036045284581472252171652303186799122719009822116240247831528012183915760572242458708603932697620353933350938630858576440512801305798190676475203711769182745554238360764853336439919467187749739319654193335904864262181703017763611476671452480745640943330677880861562631862784167597860217803292633631488881660970274177220940944641803179478865025747872310262938895647873162002144528618234050155445767710447429588559231458697812835933834407716352817177485974586636930039746332531303865522307483475806744602332221741715089356169665321595419845631712496515429850077249741977318467179954505397826859490432306853642382296865881742975800305839002105279456307088664668291038718079047446355648903266347808802182430788806062942883757214657312906174502001741828766559328265156193264989203605673713511321273688195008831798859106715047309591991216885416551028183758535379902261311919267920620969907560967567082818043685035735672534581428893206191510530362856509264281606931530868467214756366579060302294362616373094004717440876790396338616850403514331127311992798558110060714859828271617457225401542385182521503209376839318769329778265896043050014701297973155482591288391188421226341298955716865776944803535489080846871168482468607406276846338265510504771666322439912827890801914419506333494881344773009775427663043946057411920419091756321274820473339962099737895936487628500360225581964603313725180600355480933843334142449629004895282480107653125481359825223394645814988657594534552290411712816131545515457156101376049316842691584189134286184814385902455261010764984476273927457999911314979415083304359157775560236616680634038712313330274504148682567678599581516089824341020082647477587461508772724446976532005778213867506225645771183882598666767264623704452165331747931250194917704547461173747439646023415155444741830840577751682063766511404233161785408533702726818157230161039619604917968641666888310423011581035104465845643788253374069418249417727974482328364950756092621048191607576411541465768935648763532456078216922677258850132226217683064454639776185222198320367765483395796444608147627200131586591617856833445315413482519134592606273318091458203014688818553029498133571507220999061544060899556769619726191326344895877836433959310088884459601961458674369900995639279190279569522804966952966401275115801008876446496557062181519636945800540009293005661324494469511817162294574472077975854570719267840625216516395975681397030463221765066099910152537403354421338459750876248117393942503626631292942951606011578342351135607558462874233336812367980352188004939892613378096414598203510223694889650940915113010772385834315289719911857420723052631001121483288033794883544519288757436092308785809513958415857643499669905637875948774057605594384011518882613732418062880448522090718371726411944068439148045641768783470558419923036658859483708479317141469844719600013092225248813729010055786079703529457165782160896694151409576006153132254197188090231597260190590677873315647029278112115804533558969160463316232783452918998590278214525269736940584032059657890378084077176713303798342561523917758627040576339098757502921030644347906347390915723346185320705129886662688343535681464353711842294386827072398551717350936860356563085839629016313117049519596472758885167092507765393601899922894678280768195668351491503561217360987272642891427902923458954906277215906522137675703246709208049837907029158594974316067378651993651511672459859871964515500806903219415764755837744807208554606148573368337694204804404389856359885591073681570683323947276040884639166821812741521005828640255704446889781913909879474160799130327402803941031773465722853198085190647015386295981658481501977167463005657014647877333962772926977321062153744211167014646133578221465602852407783816755906004111610474193089152992871435700098421140879101140736498559803656168919011213642328454326800921724450441528428625272179188053686631745519360184290064882070273846430293300398207547850059823336006215147293281222763178536037567497254409883201517778137077180939399353186704932617219473010269395784145156979205227887791064663312304179049825124817175340795554993853219831445139518873368620588033215313431794328035358007531330029520835893860551418762043254274596054354183344273339450274129306771155499526909307311286796920278887470483812621380907461908950970182936368538645475187127997736208190376548864720951607602599881431237011766944935387293988917246610039724465587837395363905459442561985626352447635696422556043070853159624416266580045046185189033170032956604218900602704100269636870894405503239236592977575338265966973539517328079765261593072989498330972818323742026162561944437350596353729683834525791342406094146216213650861811734780261722972090576710829231961714437862146024457825546507759271987249565596134048203540362254208071103681559206733264446178729560167613723483949794319015711856098317405664413709880988189738097476665896153836832468331704583684895435851973836980182713064635493031452851838517097121406250669775769467867597509779330451142324327075651027751888323433261272225142484747449192430599365010178199237867323020968560349414581939850544792122239742377682889469434415286903194617863186466588013369034939970317917103243592775291739915853713379627131075341657935622790642136953261382907186700244512089251805194871383604501102751170182084397306432689384871043748372967675761838933739398424250134385565663014861028986463794220509003162145809545673632195155085817398038890140199822289101751240378854337859668830864571478806831301656586423940087227118246473956043028645659201820719290995236702288641738761431800592191186403374005268767369735507224368502007609556137040339476863026952413045958067486734941563813936059385789922801541881894297955074540857445131651009581424685704807535529328907464059303298102933244968218682435828913119617725447461538482312745734844559560315817960068004423929628197530828721467577544263415711268391875585711936322711623031859058057219868462501763156154579892309306102479565134112422564346841632318801418293419578452633674183716484118534720997027379904713924559847608038421270955681369807347795213975792740204543919906888137223708964305062492707287727548828250596257043954872684171178595018515084761736112574407191201647622949023192063691213090257854085429601693810203643032089544543895795187487640418319454946111818765936066527321087634427462478795645490566804879464119043069191386050120167863701374546476418144500996082605021491071978896342860499501415435546153276883130421366435271204585324891108470384410696297257477287108660108136755724608081987517609366843858954437710306983450047134331673919381068980115181592221893043125862675806833922326287967566308763457174578531414243991020445664394299901776740986756582567226372564115123954862641832527592756766226557258884336225801261856931198527915178559096070021820310617421078068689336864674881355775646840642187751728376680395573651531434971243594423997182098561911565226314682852066362208612154905518850502845140857012303436246263737412241598442610464009622069238592792602386233221444628780724172246181495704730872496067685012946446724832534813185489616594551917295886269759883881440308926870006010998041764100975673481141388956993556198923096938538918658717827283178157925707933129063437939760758518236029116378044921725492692257649336946664569166914732954564745032259486567181233120334043941917141459522386710920771319607555719940862743689092253650660186496048277459305062094639385829044108954974009663483869486081891787644550512948183026018507698018945481867175957835740111435006043038391002956443047681403667683442990382130348923959808538503415193577483265432079366339808067367697148982192118821315299291936213860589617562614928166194905202698825379503792038250913415564946506442719203786320858733713328072314862506486321596106386725592616011912988222349489481368442394816645048642622763896314934836421464520143839021667386664665299036455063889599622594154713783206614370952652868515169304171040508977389237030340835982913886525402243294991767433045553154233128166670830799782948255264604989893025775517367560657492376091474872010471166407560988619431584066988852029845332246100638409875367566500369988233733557630881360932573429916164188063922374801594904422588918722334960691376185545459002973690626027485394913932398179066824530068906462745365854427715819431187364393427645423876718576600302501748707935537988938618425706378132439666370067244696370729200863800272986219230616686845462418593035780486069721134088471769690933969446352905056268079105462221199091871079437780247192047664844416629006754120075495392592119839267543082173222715637181296503601501093132587647463347348262930971739456024947351724835277785881432163806213166713383154644723742839346359659275892721435573527940070021551813783896523660285425732529974241306399814049205819509500103859527866913943877017579535004179182200568530997481573777728657119447441310877080726106348453010858096690321976901604271285267283920707864833456838086197836196701795811962900877227365858219892617322482023554833014025479602208661280280292686801410533595456670447071480339845372835419093887541587587580010700690683164208260937644375416855386473102865405554236006816100734741698758628744405951665380411012544984347296413583365234743196745899432134534304632589470523861704567460203427754082998534422581175965927881309410672361268377239144097661245090078216691470061851968868257665882294301123521749111796349314273508037664890010869109737988417565731615264948537104949844449999246050959872852609745290392853091084950494635790776339713627086550354077068989683936817448228651514018029669320990845155940011319858410157160380087898769324148573580773734535943450888493198830157376633558642074307349290947832682446338913606737987750212510447314814116733363671849510451294396700771221168884343376776579259245862917701488743941192915097195165934905538039019879114565274648041530109947641085867526924691870244595307672700615061024271298696983305195790210296406243351724626368990941655435302103393142330025244653312213380064923395293587454163451433241897046174101033116172138810784089686116625470711301416364298869032399044592271438475443479013474782884707634899237850666149463413227960333473373633127051363234206194857301895763760852750990039366849227763740645954236872733860341125990280091238286849588564544530312623127867234647881945959729904252818935602001757170314496371791286744186886571323419669800932797737803805407483186050095302091053049904055666935833086079480181539799222125995796104771764899478669888761749709714490528360976835948855396224012868504622505321113531083169022383046887508396335680071968656073138586177277197822572208864139681779831173237241047459607483235718805539291326224119293875804132928275676788534850046311051453716440740157839593752890541773662524701594997249310951815750168628636921885408835104679247165058747469843531656174846245450790473034483714303128334604251323394276010343633118370834983036921047243358233210355301212951974890719002245308922036541794900447107359988808867712312109060650983196336327409997241213610411811146580593188301372199648398099009469350729402816183543448178581051597860117713896718448192622277987233643738422927572994236954756666234111255815693322685932364722303651366807991131180348781972954404581724288315887549468158953601818300750683159419015035024603729094825657859666246726126697549676513943933161806492396242348020780521938230861798561984755034104007404405385121512093431305453829879618127156605932605016358387810417498614701018193624331186128010512980477002122514607052644571277055981617892187311942634968463526464189107693297554241818337373364735310575602792668231642790363147294052826298708649169193450249091593570752340083769975126912552907528821325150821803867542307242781643642413795339261095565739152227792523476960985765065108740730651942822359585431516896652463556495075471751417456910587634758569029334915551909117668304714292902396988710381984718413608206665244572489115981832862269769188528870214623865400733431912105274876881758044157858973728078674909373608511458921619404688938988389005555760731344222398343524095572011539055503695729226841788896758192837994972623380747201325068829354166974728599461735289441622065484774188752895775838068327254980342472193236131874049292879198923758794982891963956521885314704313451496975215085406438198209046439073997399927508678187610049975034031090548964040843123745061378472814992228244377960280673448052008532248411374839249916034729236787851420902806215257550021637377254407235223134743038713052400005682943560338288997528342164840553041322942596830260325168939425538541802929865826525625289380476567342277997983064432710350641667386365612848820375710458589738645024037610767809162180871007059753427352221372940042336489054948879611217302068291585596747992412410452353483981439994616851715126235151568875219825865726451972682216718313044862886070835355309684803846600310192400819508684248168130026654695070808029925666504754305728307513760656359713952524053611079702646112330801779446844936324842002145839110564358207293149609708791823264555572379175926713390552367863005749971509199405101788964905151986817891523161240245404191683006159626808439207294289115552785857004617980913603432721011024417849657878270539793154831004732701824587915000935169827881850142241484560820744721725126169142369478773099109341950212061249863811944118874296437481623006225748511225841532168587760751081923993530574474715487694952509344475832424627891149310965708782141436786383976752463235816729697258098399138238760328914896764587571706003807815812245424470643549876383056193734785852826523872207016689828384568984803208144767520179353129553712982202731018651670348255668257606639000688284381488818147562344749674987212149484315074301336049811291155645116171807790746901815206773414878731809271992798526505724972357014801842278691431893133276709564859637649783638373877869884523892891988800607143795991275903486936074593849449778730766556223014596885555068518838466363288401000812611900046510358533541600480814636634018644431050619699934584163528668531274696990081208599080629064055345214156250533260987163684142254366700553673223200007711298036551551557951495160720242146526747165297130510057748059182595981768516163566436278533864692998450968675582148788737946096061812362416683538817048859862689416490649787816409048963082730979535653724122929862799487036718965396835454342682321754177053322463001293599561842355570283901053927281086991651419717403208018197702072664357909159579391327930082740075269589973601464612300163433378837401794619113644902064832158422661309362423716059593768311021062440957805756745885338450717671185744046684923495286384597941686532236691094171973184863682573542743036078757488866622270969423562215931878096912207217251269295030391101589764746703958015712919457604301383599103105721553460222434077033670632807805893645384407441856467079843186812372623973624187288359225640626411135574030222837994021840638748838090615904452594333786396209484059730250916450681211350823250001027273841953643478303372723180354864359824539523876683590630700560512265745111847005949731710551756186638393616569350116377230697853130206775832604668684086041442064107543101905533700659754993113635967455047373411787846700711979305442617191763806349480922880679471283367890168400892650639373648561124723232526730294265572802699113533003752254438674364813679021833568654823157133922772129231436444334830453629520971476141469419244468766391032247893353847745539097726943403656787188356594975412074997555660109879154908443602761338956374273196986811332846248904675000935073439886780527164608625813326030926323105750891208046033997859190322141969116543170560056317238838594049341008497405910905941032045000760290704338122169570035589277684330597905129550354053061666452500329371512584069936660735938408138219262097798650190442119378230849171342166184934358171229854926179751194378387730613409587510926322292364928267141379447839464948808077490657913568081529054829339235342539450763388019867432117294306149286325576969040271481666254512023220145192764293514015758700140237715459184681037397612466587594979984886696051840066820768624133446965144302121603554636495008294054813621955735367325260286499882669503028449303718660064278748416121302045031228337020228504624640143044920441709579801735242155020038584257583382490095935933823635522751721045503661895177588226395180871516130665827067081547436349475231656142981118211887594056677303851704133657241852429522674067169079215729075513406241714362715537287529018506341829843396437931808020208142378770350325489173584124180230156725244608885117743412823122929631270665355793283929092484096639125133170625972733813005924979239913380773082363583185868770343137844766760902382000618568210101384881836603942736983621551442669688770252248666618676481082795085954583230374668095728389247944895903582966254342975109646973439564737655783034824850823723959101755554991140901059449527627250106371130031901537430195496356456093971420124805988601342447834479064663167058773099857267794103979061084703633340924342874173711366655530318219283303871798746438043171961775904208931655449694237358256794403118745019114007791621112503247234830609875796915408261567748051179131175695562357707148299547593894339252657628687483588381228452323957741520731022260789725020117389762603920910589956855462859218756361502626046294791150111046537953326263184136192530656136772807958126747014586559117374886556348597120004601276880751796103989701489567430501760573332296866312090436113079000036534255828582745043494351058791872798949224116794920421346514367194530553413376371318165731756785944764209969643630058449260273054688448590667141256241676931196933922396815040707396009138566180506278941915565551112985158878677084888776964128534707080136509732914886945543592040437222056874668446223601143465632148795453516498556149105395720095339759911425945184984759930044271386699951399385054084324797752241197906633587867672895544972781479511802499432602094743483687325788515259372912115898460343938651810991621184744865933058033814823120793050150269583402589191057126615432483194683138024484174372362515133921603850631596123275544542726132496561727218776244005707035020874184038558762529733362772995448163828579676520202679210339105759472904578091492053148322834134793243955644391304225427223399332485704438223372331510557439571591436143455008741560128100278997881629148815460181803491314256518502073392671594878204739921476528783663428305531957604910213160587067118856331189992917147750942335715284343655209672056423516995306851126384568295644089366522398810720662320530309085013233273329936669616133852629915087958738168265359294537162839518123424752015830683601220239682945599674693356064578816398038224874288165814760195766462204871589639311359604665166511789701996393140110026062475602456023471426815654223099108572142847882146493805921841488899679801487738072224301959191370111379074575142299491349242067923901453794938404796898236697579403058825654502842121256962349719092646167650178058958888076673046881010810230033385378686778060097513281437024070301368974250408824062089898684457561445178448624329068757899435720360536090262078387781979131580708055047938364165298877392629749180585138044020479312325420336589501463227853836455244373252845451693389284471333321314952649280711883739831113561715128528643172739212244805044374061177852072269334243060546714552096869540027587357913684854896905692675163058965954203136546039436653949821540451699546563788839497621802374473864538593200743947825379557277848028554826220094142522976641523648671112709282625649897438689400262446583946963787792196119211519341708066134360370145983004045245655518919264904060302353098948524575649373652140355038056981946268706677589917341219137602760529437955346194826135655695653347764683043863993089117512813341096660657711926698192464743343752661839564044912945239650309359558101937737186351577933452142201143640768477682667057555718352420676713371052010061009462770144139298361953023071022526085921715231825835377455812609790028252852891840320677829265836988288223192830777628120256986819443135007248376926925132850943708432464218183555623577690804113074331386077664623995449354947382331450867647084935944994217537363699225845317885797958615251149824082717358982276571703433851435473518661180384043748670099500960988840825681815043337455121696786912740383429574393072303748512249546845600002443593772692331264327104955056934774581964534166703346050540074942959243471893257053132370210997264286789084754578469806465372079898501179374421732629317710714928894676918105705417571623743854142607651590678330209566885003683519786379084842325700811805056071552897957789710852704780162095119663082632200648223942448535582554718993660245524287654700836408090548840772969701191424256253791692220708675521289402836923496208955943759786947672266237103808923287601241877767756247214753202269532136433017156112731096089534820906439530583334243806849183254813906170637957281458268073823609413171617222975214631812461043710624971986779549118595634342193683636989818790818178645783636348840505215783957686030723142902333289717208988086726700135572839119275690149002665098353142057879272701930552328648668379310397016035768883849334890252830878042540781014858565897012486867422127554138039668731368276204480566563747888184504931307422396297288413373587693448279444903184656849866456321073438557474174939476443497167798468161791708886128482370223946927019441387439018690436772217870102223494912463826035585877591878275563416261869845045299307887286122884728750033723659927074509726428490078772640992291671278331551476817987885749602787709639715504176866091004438800303907111098264582024709355339525072024213050457396418519493930646027802605057571867719485401973805645735413873836216646781613733276439186162971915591293816534772894744062928586927553579569671225100321550256248000274058094043948404350350514546887922227776028129857526436983325657540209892346764169064233666801526344234989107061634738208933879635899617778857752980404503712558802480084848091344814766659112972306421744993002220655095040980324470120871311562388008932664241619546830136582732592379712519322005967675429145357622624103761836912742830834611993239804757907906538217359928796186064991576618949765390104294618471267729166930971390815781747518772557060396862011207877081142971850395048688294692520149978108062058004399239950451923591277739156391604065739138155503053195536771801585582746589522600293671615219770361940413791031571888417545518370879873257572089572964855813963452710113555535993716803884539096324351506033264350459636175122606957337747018908943380532198606675507454924591579208960919777286889749706156531846968510706069680737576657534801666213426807977617847927941518671192646474118821618726149354089751785423362917074534072870199531280572267912812048545232149170944916886997866536291005412635990128740617699414571977902273339465318743897358095655899798829647674959469727590663943006608529086099306223273391869423030672197749443676562208825421756160435486885009226041848580156839101674178078025766349896153376690295053375747744516769201623158156587927318144013061633351366660477121151783308007709870652610806313284644248399951678526451600778777765130916226981493433860515694215797047543132785207246934944735937337642003131880418434005483998986586373470085728844075797634907147899652257610468044847563513678935255682682138176281542538498776269907343392365511826050672186379754621228017204298777783285331827886905818000647083728839707925525194810754061519980382337675079909388210565674780191604153649550575713580015545494687495277156325825080678693174716578975859363226196946272301138778536282542683983483054158352633373772858444226755611239253541514996139181160116817310998211529453521125236652278418062495124418978192659519771478971919676084283652872484379974775540471007171419435762164725241634309058849305576854438414830262669034292460222121953485939733687576281196783896363666453129980584241406018821276161808717608025229469065734221033340732611202421769326607128750892156825682632592057934312904404369506836497857096007993216535390611346235563382237863660247633607028328564308756992868357070738223374482257627865209088816782188685921575295974998883806169665007652916350462683444535599198690972940322007239326019733565002788345455684126959294282328182732484459412126774699455646003823618363647295793274267488455506169638188755401293429662310883089548125379213943084633787955260453271634564984729120852816551111461040475638288803087463240078982676134824487707947517864326619376910009163417541897123231143990820484098634797415768988748441942586261825172387832547465411183402656694143323405824735436131716561778843065957342876490586929975888070140447791548708890743408073140176521442200401417921756919416635850954868321070609875389986402280179961720782000295705635557106021036120977628553748454095107268579695576346914183690777800094383715779813030204227919939910517626593819768839329178808039926702371309731048406864454586427944990619700930192942773045779780731015369548750188490872662210764322252217229359356694837803044821847274275624493841467896502192301916190650345918759887719356599122069183682739435672838520318288705821239767801982383932052791702509057390164624902014370869314906782923640761331888271078987639003057109285278890285183097334540817614898391502197657759753262763749148079805401167768611644839707163156076940619226696642372888842947214855103338025854654970818879752180320542756225326460369955032123337072312143521369238303637393742736229414911400000790786778754487081118929628066023836524793158130209422550440101306743702829780840977609200938831073331332123692317348500618155504358321035030347316214901317273513254125670222115521172947929568676309035745010329485433773445132779131291378037027705312249115554895038883199391476470135382655675011625703082686213298806520406910210124100390796888838744701705198238109626665007342040829040729992508528687415063888669600927702567550774641006974809732462669128092082502053665496490463336763756320683116194759736923391202457637888077382084534661492359180111286309673720959701419919746638081934551952207301949631461227360941663392966520930676392815842783419582068831013419551330164656805433697438551152719594711562386582673716603581340008053406791945082272338194748531048632320679388712850698651796404145572824545724070246754260920420609891417317711718969047700868652987783396616710183235984963204546819787275431942634166769189429971435739907472770833461620181392909021019821984382624773451806634695219387972393756533977474282965084471134455597696340831882546107517108231854306041582745772072461590631617961596806795383729300992234705538273460378097009071415615200511963784365222849403778998668227545249796939500151608298104505009142100542484349495436969915321446630538411521830132468514127122598040873117077265669578029887516891270836961933152200300933866450481674531426112146077008024577477942062426828943280713185177022354468817067191311985474959460641243259120904103207863694888215547376871752975410899628739196705211828805751122554874647569696376247851631511986558675102640632563288413848659966771106497718035495256831527462811662165779580833832558271599175905639635193210309716887840210541631393415351530825461512768323232083306989086233207239155867285447948722362212107120732757854454297842156572729919264127054547299895676498557916550522936510496855661237056428578009203620465243248522111715520419661453193776062238532879156873573539917636684429038059441405455937009142964750656230991619621604115855059993308406979372246994461669263984087465967163318232887669741855049308768111138635150572811068215397196230984334789968561580349704309780012633711493714468619107990000907644925644400755361772384031534606498792368422732054575846018605200429081977165219650382133016476087481027350710175426442553721889136575948662539142035181126703309837892699117510515894999106518694413543479001783021077778261678315811593469415191590585661279084273735871621313610726741040114166579930792743799406604824240003087842530031549083143777949123152300231926430909665583871801741251642116786877739749832903964866843342844888325306558006754717225244019893917623436589967892957071054813925134032296983195787776677350025806762947696749759273154757248228423469744239360565668737714766126158637623075490721184247588721527694896116906292617126834188122448889927855804279764459676583183108546533914286663201751765685199564283741055836140137619805731168920454032749068154620180974470616418307288273825360767080478286185835385813149527531269797511418273340835391451779088343891537098466917732557413079576147010335468651161944688783446663102892060650905023588659234146864186443571527241578283387290300474748498360942235009990235386198515902090452709725896266034417014595761758696326556271095831722132783603908979703927873949609220067819688173391684307611406092386240700386611528891748832968736669003150430436556202881733333402780655798970777407103936969747799206496481935215519437365174578384937354984668290640824341928151862789160320816373328975165593379328602462141853981180106146417914722538165212661366637764810387225644816740662769623607829206520151041512793654406248928127428453187126586464033720594113537440622933928370828908582976412531232184710722579506485821840377400198756490273218546925830848321287206948184490277534428670354295810433558264698191621340681999401392935951172817265737277353653533445508644189627345817972775923545186467636253531318338301454070277696796871566809466592415614814592609913485091991321381197871520504760338254698988109983854037896353530872310999612039404474808647797678183887891727957838240547497596645328505072029244374605166885882229636164929567292986782962780598792144587769864153875467179627831124828609449770403059658215465125159454595444238866460253939330273834935404179782040520701620061857045605960736038861485472131355625980272115141683906940397979881548324929097496449705559612983637725924055686442198695531149970478501407549538449541298509143379173496220504955438061216573988705209918469108468624044140321599715395540309802178888747462034815356883403863070199145709384063721034673592068623267633472347040415243577863402122720087875700834729812089213492988108094960994129972473502110152674631613347341730518511773351004211299314850157202233669704862807805850298894241685374136165174099926935568198046876369486433220817696436817401547286510036962212858072374846995616919264798254237418903381831411468702866843207275759314051492065778456123936977777379705051878925908293577921764965636028461582092832904518791748363108543862585848488517684882035998074671206668598988408949924911203120984806041522508001582118663753346860211591485940740631815766229698361038302372474346414753704905590691792272890681282370187153302101788979812202114308291039418585547790261409966065025325137556730159038680274162005235225493365342530719767617203543706247174052769517027148138867983282394317951768897256974106879314395288399325444141554977326774421042336223965077858553712805890154390953122345725464285154328867908716726289245068067593876186417551423077927772783862946808717672636862117311533862910459449332471957158533911302591809191941531647148508819763521770373747014903068017842238404359381575490399849013040797612593694366548072643844081053144573808488604011631369850816154672350257392364840127865160361321544490954307070768910777962836361703677368505193210994300368536092137862234089749827526472063535778768642108154761344851134371628423397442999736434255680837000877905318043019909314639528312921509234351133633977002879872141149541660745854962221185569096928323031620572447565621438445025764490441670408732362443741516222927492423426185075260547535171618028805733214366817719946198378422225550099385952603221083856207001505428627768659667771827218323962467078662146577431901170010298994586111600007180606589491838911487463114572188648287152845105261871832118073160144634874472516573610608095360310502796758297401564300607694223503624014716753832762082995330758465316581987117689300279955034194628298111311208850857720801205795777644757518020211210077338462045715242664081797397086196348096812635753958635759773484293565598588019296904551934102717724801938523150840066267277295498843819788213055274791424780194362786111561506471949693106542166810369953288742105913513006114008382536088504242800419474531108506395827210229768519783476922917395010610059202657422584734363817028383678929960912936150297243011992869958947722404550980322033740818157950231843136641648040695752310942851218349714058077703563060959112877326507802863286030333791902138112815387984515334520785217495465264488858736172124604968702921306441739566270801339093379324349359778394976275479887287671061325929659380227187406946315111928861469508384250665837372414941751648717302599252553932062575411968082718695595260297622712646452629066817339939249801030495831380505319150840528921807288156714884604583928829504464479442858646250440250625514185828091920208061635860211662543645430164805274771133536291564293585868507288292567089104229409601167517756506037061651658122917206653557564964469025834316719630057079098998237077565748931509674143541854517584409135184118826600684635472300871373792127177458441917349526137072599571573390303747350117212004341015374309781318837922917531009887755645860657374601347690689804616706286642659889604515975244153863563760262190685027389051264353754127299564538914511641276816191154446970600870183772406689608742424034085333693707137302491297869234307100572153898756515330012963859691637702221657185720682064761589346543193454003452530161132458182726199887894326233256203559844886448503844981693194752956862686367120521672038414819233401059065190303223350501533688137298462918212758091723483917519249096689500451773594956554972716810386852216416601168231558592060621938917634720290568006225184229200725406972985272490381063310794560270649493419893655175564025342743198752642258210492606589587245032032703817037245138761891288048498863262087115917479712327766911904575442976238346864596682099285655363141076937020718554708185463751821819808294724706121582385149225923457771913530500494225091656451459979506820987604982038125393332096785130309059581395813169852231768356122842403625102213002754954944698692468522595717221440094851432612380872497220413478275477350970779107324401190008457779419700260864370636299228309723580217842194973417642787964978601770674086565433151384658662617746986075024079624310758810792442465648721350520675274275268332966758146784982651188643602913958196235860529614624879759577039305389936768302266158964737164963171682985058876879878095828110215630171446085018121540910454428099708677308663681151887324099683533095356066501485570905817486936995538863688433726254781521764230462169352829708547268345734175347627871561376373637326237560438857721698226612828521587000186706141797792831106818150147594278442156986890021410758611836486352309104864159458206409441494253739282225244390896066497501600521376446010012828743246148992592168192589422188675178968527078313878200928637396660481308526628948783248503599677592203371892394979712580713262977377506408050768032164668765594674751259338263766021715843879020471909876742384815407676402864523223291722260935305662769546942557898286615104190065105783696503482788164625131439247885233940756685516581620092888247904403693138067395120928519846719557209116333932110066840955714513146610054356086000351623014824062359505435239591174802406367157926984556401631047915689895621646207801495402229744524906085597623194969133071615624407820130870027030117240811761760505060378001245017868294959385363033453965512029469159762484755176435002914654916562322439564386712181649467290977389142210031841413692108831496662057641717868321486005695766279480700616481886348156356947284205192360515473237643925820997094957345806130893503325676616922671865325411080975051125681891585245308101315828510751834659729722302869133145845870433246053607681986212748279549054087526186359837973103274606819524104449214969368932489432466283821221509695087064564071854276347665096271521319541543892495503601982707149885539179110535604101559371699481981609488899159282189818676610653600187373582226308073184883242659550189171262725909751360445987590586829830114559466515619948550552784306420633411436717980695045497953992372524788109201021428661914486505807447897060116555691614994040976108882857395969582821094950838579962620432344319705270495977148327541383865180370863240801208225878352338139692415625460765988848259672662073132159013866523324851647300947285551282298200380051077905908922183630789064619411863376614166145465183105234493743585556590620583152650290286028874901537165288814529242502282792230811265153402513914747898047519348640654342914773477288792494596964662478729722199594609738946276014882604958374736396806782037952052074153977204811332113353859040249427701173310398059086979898654059684008097985310210917562748991829212860995526971478544526555055007062942820425289886086220803253680850956136573304942591294917557165150140954662303326481853178403093720801971413841448822825983411239808367572781766619759525228754295067838370689763701406356580907144503657150522477472000742657329132176242395892761283461254691670637397750360426311358976094842735575545132566295651545365806388591427267540414578593516289398049591986120973074939497116389217659959009065392932860520276999478366961205165562976974764225779239465154225297934174077261511687055463544153272829150910386206361008569147434199313215351334284206021939977815077521663687155266704296008489115708608097197162880317932210630158277542417524955446782838515675740834657243371964586342125825034439477708491600151396571966372170836024147470869485304589573295630961113243407735489965076730720580339821807046877296252871131889057561556222974164173480931137209682926016647201251112585828226336172914099310758427624938451900123305125564252276908687308152181191871767480156094557149545251013039259151972813355856852718316441248770687901453679593065712385745446695615393012101400411777059023803721521781533028538336217100416614069664507267916030845917048012616801996745565055970194586417195215135180245944152603476157182085658935947095718877692580531434418190592330675572455216835253182942045501627808748474869466062291369908935633163158373186584946078381427441480798827089388982873845115994675923073672636847349610774047706292831719552404797406307611010945038537933765034748814627640266751601289991773210948171073486215690460717955383761987156770286851174574953364393946984352678957815834922393904251389670082112450230306541581825099329312239613549590547404752896696167773771111857429246018707600395148947367431491866820968940587438617716954057395865305106077735335524071514732632776632202688059462188644854323413908873135951751557564363315434021829041573254187247256264895150086458073950602605883629124693525908235905226133680271790134616408864790707706968523581772528715200393775558838634644838776730493149691483920819574174392516685172708654993093409428184490967973867866863978336521331557014829476257568234977939098405554444557853735013214697353304380615352107227391403919260403518142509681144534572346985309794173337049900352318133314367103905894901499403384734494043411923337066572994799905744660257153047066522896620862517771400645084730142366974145574927044261256930571094142083578028336640308916324990645651948689602834636800260703730671366033786546485106175134117039216131845901490944042142394727113381187739095250606769988755203714344026674233885859701102674177642847378737258460204903025363984099997909806815683811233026856505159492855943197262358388925328755395990913039494555727544452887524872613363740927370057281896223118705051079487217399494386718236577953881948437406993053813345214764919052245679855407383879881997772132860647513915686330949825084464867457036128194982086145735754423458832259183260643405464326289339009872822092955379908328395895125813897670384991149044768992319800747692543702269720998502934190491763637187294450902950662621475495990893038397668263102106054536628979296279846101119593628279427262524975744265592641936520270032572073363187795639897749317480360939356103657290087275402516114214324302580171963836458253787446732476640321635384144597969094435023463686553601467736758534798775414421160665323786954074406411738686015268438905606393118284688885378641793155680930458700394065453930835604127718782794526898086129128211265043804385095450023542490593500458680004143814380387653350249877629996755710617177059807568525935151827277307519605776945152236317234113724684418058691862399142800393571130434545493430987611911709809624648286384030974711847376131909969345466412879333876026010116041966521171726679340325993358908083583086060263512711309997339061868669368181139641880171786155115124483467673455965544132704789197728031939087399963551834041743924403347284075652222596776608140102743225744060195918026586078791894488899042781962181410659623400029797140628111241824756146092656125551529207369629456674700750431680052681630240943739795986308559555285521031399966841462225748887506873330226370034836873819324566343975561812401519744454692634508678239561183498819998466036261561961755885786925578962090951318559007238103611411902980567159013505770364651189515769926782711690597624459768596469065848649385590582987159758188501770235766853938966737934102305346086498931204481092019704378441841648394811270922747433622211282062995247617488068114002009395861079291385437582072586535284221179811864982892717856282489409693436193438215390739348713468846493742984365922995710475987600337905564429334170183859394181576501376108752383406058270484816458143408960081251941251435582031072299754957405853455746122029920342694052354905236003609196224442992711840421800307342290766704936890356122696004387828016981157716420160332960835727313884284847307849468472799095103267219323718692571397103324952893838438095734323951141672852784839858481057156348666641324000437837227699127921329895483025913655410417518921309174663989661818688984741326724340488908118718030456219830479817287287244897238524003340087677949455637220836548163713970933784018662920129937690000319774931010290844784794222226694527719511370431462206048155191198416712751770790433172895928868155491984705685342437554920110235624794211123689845113084825992740822603359021447520410358698562950327254897426773139858469383182052532318242451435659450489051577858264157672102958191492767288785952976354914319062159662489587105457932868518403020724219619649716224021711457252394648180971860378818818008991004067024856911118336619640839711298691332712229308363359064406082253301976646435535705615112428618072889475931857570549701316152815040783545442809526986765987592015403499666871504038366708362569156324488331787480265793911728311433469634107629132948297632421784852651844884803586623154012007469614881709365770105404620352159548679632965326235274077167425680656472957448586572943591692664345419912466952965059281354152586289365306514481481513710248365081317074234646806521693310555571230176716595837002282159191942214771982780830555871017335802829082219447540419798082924543537594335278623027428544314043207410622636191072862605529104475739239131635464254927153829782403649304321180924339832843422749837173500696136460949975303506854813594167950612651468300567701921111343429413700978572432734796294298971418391289421128476451266387245715671094593189431109260679257152008640323543193903454523058075295607657167550095398114723974677277281633778390192563188100541563084167558947966467680005641613037626247702364844574289558015422657675368680598534042116530512081542718560563330086966034238092803483521015706274516018767711498111221063333176003617200977809589213077092760926664618865382730913240594986076973344927285582994564136728096635072128614925578520168426625872550428931481334711221678844859222389379124593690243179132350468471347665095104140983354455264183887732136171335791701820283621836235466773756759494608754418100042755719764913252643116550854831928573683559245368264050224597109677525666134418710957651226443061674767290028123918501176072622745742989709488895176690713687337452194409476693819231071416927499681786111485840515048984242082723637337572300100695565382594920799431969019636745362089604880499074566884263557608860150061062203242173230267740287509226563882462107083127867337925229104666636156425240533211146840488094441397600658284077141160152307964603439052036913133806293381409544696814294006615535549921152873100090736551647817176458596968721111656967970565531376543901696110860182368620967146415560816686263183782750775975854554488621925777050537458601699829476752307617688719883864688593581115929194227951493597002173410479641391631902043820270633289710121233577366143685333783389888135020414513668700628432143621438127015693201336399174135186991153640455956423438228366584099456436836728083172760636591622719527803873037843166409722896199817158717103313515944273638498842512188087798331994651065695130040807037391091220254670843268469742306676197569510189711561634759197816386544299467642190842874513795768747693564198303498204374187250826659659370186107178716754425985109702577040820822401483239770650456363154764583286906056877587374089446028793051634042824209485058282904829884499802043001216965077669755792795852739543348188241378083177556937721278392979457401668019157838182820456705390706087612422873411281167759436242738844674839078237786779191349768682029251001557726015272418788487889437091460089264010563709748945386848931733523284683342729725158380245445527871252043277888816126275256628490632594447382005556543927802859998797510155517872003937212906622288145194951380341075164171126009535939032423002713100303782165511124746300042667718258964172594266920298167856505130839314643017828008578502506185413113546331643786434582362493873809601654137937571687085923215917638731487398955750854998715582880884642767425921158340522587680706449416250902641877650772849280353258349868876979131085823391873678811214861266042542564972945161829322200346228831043099268702508374194951449857646246405493145878935275106891814373246621946164200262506667945189254342307004051979039036282329300513726780570063263648177080187861254946980417602566299484410615878387847439769343172549842555109061765802512087590936223925493695718022597042887194355866158497777750172070052623619331484834504958101050918671635188805328019139584800417852857019271928518602781527429818956127743476400336658378991660366413174686149839997347683394618877997837080518301029227871990186558755075527058938642628318358931677000977087109505234222253074448458162726662587066477270602804179880290612756885191588929379817887675299573897736881301397405596469667087021994797433260997599501532524932475869767178313986281457019688407604373111073329614045344774600748229189356751315094900649991953807443396224872222417437632866791303960153469487706187186207927063871871821495884178469946132224320275993054576533520880011704697336023252432834897673946909343019050081777447585623919364344619618773964904855522310225444850728849173598413104068464985195364900703571133304525353800152057391757588370893776201886304753001502804335365628369585076869795137724010740975990736964620988408786263495359592659113459168159578509403827241711121402583539107545112099674075801880562565183152821487157271958026042121180715438262605284314756048214002221199930951764063819980719021489316145410039241205083622300156075539815838115312874731517588400121156409854641293651828337910930962490737093040041643117991921600594972836535194923511422586448407257467863987175847089588314605871687834906803501146235407239676624162154349613911244156718978504810306493393734515683827053275342430686734695852714974522681906004546792782000163913350820997876658521927737464436041936090873635608960571407100603976527614859190367467277369832615081825753359919846096179632189741134366005667697695282492868454091178728347421381808655378247475179533868499036001970772111699690734972733942135848444118622477490067479732527799175505242701952680264156276167115801232532342509911096286419892213560177620331126287164751731328904589103109952206179411829429556415877231041502504936108612567190075884535118557167807292983433232265410940480841800942503355527586004700862352426578479210642087009212857326240318485442286534598152945491242362449751958158594828076940956420749875223534440058090792696273710396336074582324655365568656680147838333868097695531689485052040189337521161537840882910227132744312561265397680979525454278864320555655130672359309347334318414321833569790899931624964873229444724228665383802616614056332208914207427008513318741572057063904540893361329490165908851472638414975203956718602895788902866505271009077606056623057896297284477378387623516322010535338557588364767572539820330343369434629542687816696112530665838820637246341560665576130836794956227748327227603435172119575348694347378384820387955795638569886549261406740553962386539713771059250112629519996683918384217347830015178838285292471910931479380775361580907951549099009491649747748685949564108154071298296914277348374769739412769208490282372028776376975266392059885124144358026354500948988438580311497301807428972310559931927122857473384343126929262297043156954109277011432790387779842402345185925134869014275652244095712718845382314331634831901221122261738977825257196734784229485421442000875460826803714089772883034318497739032668659580602657135796874627825150725192099151727633431664517687358112007228172459270952190701927864683718298103588601908961335784907748341303794484989737352751998418179627625075076590012311219024601570494530660162073687247873837412951854618095074601164368570172645607657136972164088534435931637541729465010932802023221386077978182420208753369079140664943725345870192475230030011081209696080708158001091491935672208197884857799864025500510523127011823786586603720215086940317308089800697272691398319404342985657523759455783835582459947662855952514417204996140653011054465734734379898488480577880753870493412144126342329845010564391022202218532076905353181202369166457708145782401013094740096463443532159408799768350080505480102608214544035856095005554344882115644297912146470055168622765681490788809748405363677752127306172736638862983052732981387823460289858361644262713791635968174988791203783121675029269229901136770216389852169352520624671482813209374566635762676056713259408899615105540745620371587719151152368248095203349833721017920038213234701905782035247186899312111753824567759624233791778253981318171547332127088394310045268786995708114025089527627539448743499915679431174316635756338053847395554028543764785938134067756116996260325733765878306678349484727902468946399483518106191852501664839591303265246533929598251279732485567032601036092422269295288266867148007162985340534237208179216822880995817370166854778972965269843166521562282872909678983140585068208336682953013323088161188507884889270835803464090811248495259355292627806295745655671590986954799837103743970691958409804275315797631789033747597582902861457415751857519613596475803639640298412345686828352724647451922940478183230198257395403998339871564055678571684580337014140480918523613675507281742862111079237996630733855785768841912246579763762020327413769140880338516766708632855177058285600908707067821194581804600091632009174446265099197466095589229805935065240523319314618323928357803850752957370409236189527089275414408760697154381032761802278110213404877310742310760267265127039678124968671129197320568201336135579019933146151826842869761479971063711701631296321464016326374473486088652396131709586256697194047794277252143333871701725923937218846491559391734538102294359913402366534101121832060576207885078844497524106129210079310679168783862499685423945946502963111639353468612566415719103053654185339586430239093749917305622996613770850969657140176693049439885714936786514319289341297380512289848137614946256696885535425359489356086962379889114407147754038918547376058193665983026411144042936017426232785268297559252900467235773735256074656794154090455181926475509079966882983051595772366746444219580936857694115242408599038107758039871459018387530793286255049448838726556373093801953028552915024510380004754851071410274737799079330426290922893136254813831624882911640688210646340273874058827449153334879876396912433473441666077892541923882664600767344631979516909698351468778294704107272270895369450047459508024305609871653294217809486027434898803662801109329967520688303167701832133393513984072177166520199415187317680751562883701120353935218702868873331387594544370006332781083544974105536312784149368773245750907074179688448045502672881938496846136898170596524768761963181696640111307365951170755488310608057542468753568405151314808936497386539763324747766301719268276408974285638534479620402207695136150853367134840472590516411799151066796047350458486169897874865694239944383147546242646977355916021567070668458213255344542943724504969474733337320854268529604263474741678185813704925242800838560090261932840814909170733901134263457721929902928050829026392599215732612452736000616905705897545719865986547691393298808463515347756549046536820357608632930286738129765141145429334025725242568517909855425499947474347652724915045449910033793694428560067923941482337061565743369120490504442603235050787013739248516111642758230292448867167702951768271912777676698441379652200307566654276558994993361138981444203880923956839473073862281912316823448451685542568402008623753112883580822003765587876169414210576807693458162363727022830552110002705199769611007372060299854697003095115057756678004776648975145063043529111658994043369139021269419788985378206245911775798141303557647442524463021678437738170587466234057874107229812152212378029312112651638643589102416835561251033696053018024790819810655399674709883218009612937187337462854251791058310961954419981508411247882910253896705969652271511356537681150662127697712411493963818041659128525328487776254296909129445643420317699055227669982427747200941373578497171317170105331489465740223058974754034268850803916758984975277755108163604269643801498219534517591192351386675104950303042797085177833414154685827318275663501301845841814348536852616051349072755529834059558966433026809804133535455857829713591340626829604686645664258776066708659526599440726411494211996639476257491711086806287410432505355847273501495793140056493471329353640852349850876859546286293450466533903960743525323436967009231418872644286923992877598754598827475055166371491135535210573497001009326663509688283605409284284390418045545482494962984303804781915035527638683063661441756719276158734636141451943168788262367400772983772295030065572537773684235044303405362130702015297565915876347227246565915040636241440990352006214292119171809997784536995212622012341172340427675450926142414262736820753826261884652774491827757783697664813383153303292482751535629113095582733742707732007758522465098208049299089472712291440158006672372014894495908828821123651134822775362382222613749133617984519390017774855809828659286574914714580296320856710009479014038756213736991571808146105830373193410925628475695800031871175660194072741202186663717183238193660378097755872101428934430430636017856974179670088466981092812702635058389096309821987150393466528230866935583594439962499024254254052778392665160029018026498015019748677736958292709421866291263021962566721303291417898066535200687421038535959399470378807184769516354257440616703810381698657389119624862581373996023015608018691707054956636044369944823409088462232850432239355846688088712906340203863788368972521293084467382474776180978401096266869109115312703142322101487634024046778517748634937375359201159797213421015219632808165555080200330544069597796137463821753941132829092623438085120772139317761262558795036465370371406467543198747405433214084312291627238277186419931805347988058444532532434212509820632718279464990833258240075731643601753289797916728873530091289140877160813402478167818418572585612745399596748622340998200823847048093452044385562186023785907565246498624023819173365078240454308573894040147352761034301638802547905238762267462014833689592606500667838002413397486559429817736174630323625165575306140520863449477943444837097559998485328088368566032061330562403355405119625671152499882071823308056977424934087254640156224606439657663517678168589823036397825888110499816930411197055588865570470274005688534355313821566998015131910536359737350265719066100436793360597542548732300006193396495858574691776587859160614055691596961318062800617140926376487878836007071415625530864597090105248024818524630988371027073232430555334144016528333095529326708241145358673140507559679025536945631151719230206114134224822013580389488310467207556864135591632966306621500682919991776792367435069235102057469394633436183189032973873433206109113787220425086448177707841484440188573772779101296617870438127934501217120901418974860068347001455412576563184442323491982705183044890207152638041020455637491683036566034372680627232086600710680001469111466544289762167103476126417017866775868880382339248781246722563064056772480125985710958033451681975362065614945475944401329672819704149000280059669915068075415633642146117168492241687702661051620573920523048541895099870217690147653025011447319656319777882830721479764556787064946108616292089106295005092978604226165838957297357502341100034235236782460663782240015625063606443935629499089261586639427008130572550336922011174043936013398931342132214531427669128159922592401408257454657478577083785526004535891430261265719045144798085688200681991867105314341448789493551263874492087920372037896248796116942396289620512531768496235538287385256658745868871195080000442591811288305636749576794608680030085004693807973983006790034377430885954720030683821690405388344601691643427290747733897750720990410386312655812331603304365118859203649195589212512053169901966221800666493838847711591555476351030542145736811110511789582225281299150843461952653355274692181422822833035108639452490982317866650448822600299651947104796506351893657280109565697781117523384016676052678087455252554070443156885103721093981913619884242144318757766023748409937847968019429356526253577003881224685477091579231165464862102336670396225115295101881055977315198017475934761092767394817293706712765174455555439699489748010782369734020989710920841482703527611429456756764513354891913824123034333445870751872653667057716282187488557450045084197349562674453423356926170560729678586448664336499549675681154934022149684890993768536937789761849701895702084228547233736141583049664915851067903531995364802400961109628440000083087378605496011188341621957917737253579379797034122217828341585144196543903639638799895930070848416605950467546478646562521404443523950013441391552137123856373503876058263371979503358724997484453381182793906664690535215968680021289704874373232266327149943825872692954642422984155276389987744766852580027459719964127442232285535833448786255510863528566009191970277616591926040814664294828080334028267628880537808156084294725068164530479716212519883636056983643530993844179802590478158651341906297361136600670361968286471346281679266360071714387376142937182412194891282231431193516337099907253272189921101010920212137868454654988082055834507689581056800413006829134065857692194731928219741147719346832261887859362808260091937045677558518847021564327173530485121494321798131918694076858190093171581134974727241104920064936800993794569256943164183565108370860264239190660022425045106713837145974394850306087366485668377699935709530724479341539266698885774056322684640480202265672952318808857202358840035141477519249449245916287933441976953077047979693381507099334927126081390559929888599301761223337341516909052037675369037787070968255418376562813760134776302601348998241202589182149601236052692515967500065745519141749965998163533733023100399064379922064188866722894986099192360202099014041123143165756093520577677045529827101844287730965461467599436805369196257602802869056609211650207851365260599750331585391175845862297469518258725549580044064403703007872107204509574003068250925428673004659642940215742062437623032581123889135651169958100982079701087165748362673656449372772091546577012270533172670839505771310064002111364711236096915921178938567015986283861947011148809405367772458955866471341138663218980722947109959021662192577303830743661691541586369513105446634867037060283838468957623116587398819566387606415663282282728338758002708395179845950301576739047443856042012681894829662227205983473097485350744059680769628779842796410507433684088454638662059205165014502721758483066984447686922027027108975083098940557280468532828070815573345850298075041822572304854813662334693033896398912009598022895361491894180128964175984379512034380850634000631335241536536704154393460418716881388895867682608366894259301805798327178260934030217417037029788641155724090750763228601866696702628108917617771171529821452968747457819676923597454439666176093204571318570985916513980065757114322270471911635755657260997881120953170387942384796208617151408095228900584564153181257749283485244782263813546235478690915927162995917750475969420979812830831077601335071904685318627565783343419075727615424163917518156762614270637091175342679656146287620413839013837512249761830967621073842393050076027285798073785160378846441720615130597788049559964210909269970205597484412081645337257563025226185673866092617352913675649555461622923803933355089991947790700271527488408561770107930144941355215596804215144466460051326140469810910233318778373211582775532889542756468023259875543847078045796728193070672460028699191893773039214963745639413368668775031297886155154800195151221722454257534563924213520391341816790433954858146396494159243924634693765484623740787699713267809416534933462385712145971559175018199386291175787631327515822455290747994087947924799549781614917489595329706351686522916086969457143245375308079355841901684638359626038865502800805253909996551740297305757724894238475279352452713577985223195925667647928292850053180828237648723466030832389735265182928703017003122475457853818483027323097825699291150672391113169402716669910917211459294946915161868825474292833290397334409191490873028231695076909992998098232043555240605733300740000063499026792179207283501434754859967420337784355750822857481618526446588357435133528629623670565315582663193474046981701183155341796354885349135270357279061461216637208398464929810073822440889416310215434307299713683375535314192641225896155486341345457036005314132964234404132118203806645326888468085337423767581608532207008677005803355952205430208499791461575394381992977256628861399492744302695573456205905984887032278304677481333719962818755473720961047766390410600062806838996105354042755751920285421417528551379713611491016028015634300888032881170654010329174705050046880222926090859406403718575879420334722830524309120978611043648972538893771892830667624415995254603587548712282320544937111653893515118726785281722598879234730286419329314568352271500553085123698790634582788041805980023963004600301845896277814896167804295226867111061387592348901613752105424550348161897762719566206450592355111998728613099415711714095239170506318044115200783679383018432194880173624002729908692799901637915978846509702862866314663024157729039397673797785708353612661066005367252781652107783263230813970305087432192966181200615497952327137751582348460572645349939432820578894127982087771848856864073056889809523748545697978396728591603268053127291185934381782285991113210673123271058972545359099775678700846401322530320257030223496288475819318720182643926293189402897299813848226445770503355443177859876944275871644998422243475506761211430767299787858662889514628769480477902463292987387209527103929118322763496883399210743160549032279278984669114747520791329144112106118898635461476949566542930059514067751330691833474994935015956694959936713135090854292321272173064551313476212619256911605604168960884540910934086779308868535524446080313111751271005466660043389496379151031910625585503082105214459828574106184432251396671467144827296858332574681289090397189610334120886366791928017610337594378773304236548245540263775142987727799961714114139157666776354298680036536704658955759342817497358542396985727099406936491135824971384945817557161599180644556484067247751790024572250349160768442184024196715919886325143112338866145908166942645339695724190271222818384772749649234021667135882971697271434755401560303741842051791176500222818526416211362335988871395092183720491844140685547891443575963238564329920176604584095333226951450249214620295691449891544648393928552782999693146054300769192507912464123666718097031998836437364465929190322913505004355545375874182708618512938310268866463512721526704914269061847387602423508322767608521242626693699420608432265348757822950849352470373171921307889364688521307023154246113472357570592068985623819342713400222634129933119636743143096784617595902220845554578512701266571148988140348518551008182975861828686309865205721049987592981182350654808631174919559442369284237778915921376963235994178284178204836373049258071115370770281144400274157120421588160084469641643315268841983987724719958804447027953136973178033164184251444599251241190739484145196808310904040173295837681838294108979463669471674467081839930501045999034529070372979148001096792019612309453272526848471342223504224349669788045239284425021715890315314163914552864163815674416655291399680520163180824525883159941229882897868323562685825927195164124429851313134235329158376551062593330743595168401346134923121098867582818851144999049715202939560687347256048731170171609056490609622583809297803466577440185611763819437340257481459514811298590215203948127426995228250323216778071036045387296688631274458213680841727381062146909552342905975569811803278529401601629619346116759463213790392793247327333053341258036761768552800112942929218057561011702346046300299938817410527715643545702601830364920169637907475183112328325963423043054176638717111077979321301561801238041396625433937219406133077130317227893648015966929008258024549811682673228696084834171421807127463639574532166022190951150233515611732313649011190359995945827160478333251147497160557255753315716555888854310929631601180099876447562335454148100622188116171501179425493005727594737009712369316027331141461667311872011910944173018777957535181120468238133476982353246870737210903825851955961073894895141899019745852609248924643214024465562172768322306324966177802061896941588603333772304256072301820858989172545350894987167620433389381254705675581637218096357796000560912414834298732878987413786031303379181835021640344054297945136798735123307948439006328234148883786023276674133369473846133378620533905253398704883973872206097701162879678460174525503604773022553367972094269921863803155565537127170781773554266030009113904267914347691679453686824924059707649387052585577346829782904076955163384308233996139106354231553553467213815874569127633940971920402565653409072506478885287350299394199112308219820089963472396922449663334168578771991737728982779864938718629109816046691823870398250671659124628646059761778570895081884907158803000297528827605150698802678532156016959380018346850328711810683641030456343714445307849784074943581273680633176971184063964650164731496350038488251724121984310662760296594269377610046610053093276501165011060139450308556256202748507868833454117224874783999447845986417457574399368981484128252586997932413066422719883442408864873870466016024722274214103756094208716107172756153737972879728288487575066491315271605916494972744560231102504552716382577245127894620355809035131109747675672204636937851725184251051213204259873510470983628577040482848096107853545728784276581702162188238485355099678058867403819356764904488094110520783420213758460534087648040050077006864446826441922448940306518280005438029745144354200512341540743082084451828096313300684616174804644491883173627394347474113544501165420992787565569554540771189850738460206949387690752390989685158061886426379394387386139986210095658214886504401217620227425174640119235074233590039517519876376947272933304733372431364046707596362552146048865687475243563774322436901084959984213418130682887593036108094075891880526487917636910942914449204080919472668336640985326507828575698290509943425227993808036419847310730458715891780784727244657147013184730152915952110063049446140582110217794083677742316000482412383808973132525806630896802236292959274537089318259027991752977580502003064452721122237393542767663300352774005178833011408054749568939657654082665581005555744707134571376262850449031445401750220830006622974241773630368099362556870464765219570270513929252198601595777009160701436206147360565863624643530503696809693255947244580937362103365555548640789043220986185324023040519504067739520601917671249814873237481161639338485204042818307992523669985864498085537091971152607980943507113332282480147794954427626830572495933939591788343440534543923196303330151955872054898383432795766507430888789030791144942606828627310835596278084557071258833844134248553970343893580556433246169000444836641677393775423848065839153446446012036453540252787017831607138892884434485848108958452578216831211593969436870691473585573776079867970344338956692154521578369123720351986677953113930280127123425052799078681177411292330956053000236137037745714546002833120411587852824138597853032384009083103106425682779680058332940309804405630292582533250419662335804175853985501779863608612651639514572399326304295868691776017640066818088610811962366690113860599162429948264894772971531757747096604354163365530488974537203644167555197123515170409226111009020587056019789043940534538557148573208586555346081449102977591396821244953388467055070800312227409274871470046728023756403444919157521023220740885087432292722595210821930811100718438844941049697809733288085431772578338173987647581111934080472804070308670362345965197252510032136169059631993122955368663513584603330359241616118004213224367223377860930818640271937847518761947194512317646342561667227551034478653373475874716757462592180951803981895885895747968882584057770768565335164687007376331282031554272674182077945876920573467495556276551645354870451442806866792707113506667904551574256832710926413138096725183236879425792412668202893379341363767974202567539065163986146867647126968724698791550307812989041710053621897153870778934228523662777171314748865079460979789379929249553794069313094770626659289532665547458768212921842059286563776912565349846161720465161213699181736597995603878420278504875785858616700098405120653705995710121361485435491309759075567458093289746670606656457122401696793516622884529614977870965574606772406177957493502501374026689046126321646635707039840357064519943297343256745801326827420125668435501282952209961528287652616940595733310432726468246233650637785534617458884528189733334602659536121574590125755095096107430431907368117731090040800545502052859951169153085484928768696655024907243960842314689182799119589458581646371694671908677576728654296213736974755726979659047835554886104789847092404755990729094557930459781837080566513261832466464371871960037476874402839997236593533715969601621560057966391080285452675123991090201775879696956018348700943009936896433121527202505273874909754036576479466505128008423702212018785232376747110395990510377736659232557736690429149293317299081320848112275959614355435281545452381385577469989741016257367960837965160686538771918176398167614411435001062055269733252279100444754382633444460519338233341674187774632312585133277905278609368596328321750109104428258145059474892913710352531987610546152675735807062852620449356211376472924275730815298890252132944071115725145029962492068833771359844446307172880275358605926945200026257885298769583617097789765906209419587814954544364168962546560406862344917539385321953070487516148509778144343044751056089751630409773579672224492306809516649277279149873269985195851161851748030448504914082567964438083401987646727313570197752245464418452350343941408297532082724070168352587693650431556716385241706151569230542072201108588604722187895058957702027328700229634951063917624975117919823074186456543075387255514938704815018325236131555738417152332740694929937122004764745077023486831897234429006635242716309904847309577963591108506969600269583988116336933397097090719613453490589507714165772619690979546719364985220677912204681061340985370777215851529819079204196792588855163964551741004517629007897665815934198389998149289042240980216718432166541482801913892803205095948506452835757096290419896344251115523946328922986105106523970796457959573908459586127605709753362254511524783316297881512793047045743418358716019257826737203412063382482195875066363985961182155855134201648211237525770538946786867314862792509705202162180133805396430601961396368621086952801029751405120288118211826447786866537334379706089864883829999374522801057853377785366822442851582839922342689453819703823518400277803498249642250031857904379474215046162370001360868972021488152315898642312766135629817532011894431859938402885719122706710001390267057362300499055383909072226439459104938859006129739659482170766591365664227543501931853172989438977443066412672883759633772283824907703088358492201280720414974397449500307864053269055517066346081229615430235827197043845588469084766042486668578548725404838603410346484211341853798578921640561782235506521536428142175332213721592906543542736990464728581557160943668108744138085653829176995900005523243454770384145942184347264696650591978525786901235349324296763529808601331952645313197380168548560588916614211748103881047027806383666686028176146167566002708261482130057401888847920505915574019231281338349695953961788601205699677287629725206330257669214028395190146451808143236988028964920330601025653734224102438683823262650274013169065579691394193837988362981866656985887254614265630136695500989577361840334288347665376102976338645387875379953065752596549148599985212835054365268070941050295663457251902742728173900563834370562705142873392435098049694670852866601325263325314490465486273389822964811002905623776528423228498539764109197344797448758099662070664747078896037299751339127988122250639131139518367839276655681414463676546428824986548126122158497488604352849298166421378909131690070311170139506871470720037751634760468176127688325199453500964535661151288625715866972977388461623840916532048593566976973979189300869706579922958519859624895138505342909962543225841228871946847836127388904253794661890038232271096957428751255302459990294776499512012247122515704340066867398471122444700431361649881911043156605235349406934874142529930833937625596681907794176228364418019018471237710957960222014505107716757600109760128640232989930529791533905329089519404893648946808085150939960187977036843497776230699369165562235591009703058998218537908639938598973162263787922646827378801553659514702038702768762891550973574101621526454583950462759518298881765776378401969501336009932420279238692002360014461597593037049698908408309668622941899559533997429584547080862003700736056356306000993609228436013463472075496245807154812982651857537876828310482579188188701836025096953881982291403866530224378153989878805909622617350759771517042800076877390992822863563583890476067324679217399961300753777536174939642451592670859828166883654346945801584552456541972235433675980308979299365955112654170799344868533695514460708924003577789148276650449742619700505220886658311683815315098893902503770438236361394814470674649802430738730726961710261709582205843840491085528293527019504617533197351953626485311363539534238588081487962354392920289197896203523865524726144644121203852213506787082646986869816651544502244752810111530038393419474129131597415716037896582714861922202383839543024503071015809563960027887195671684623733030646778704589806448577303258445720649321792417159676573808703045014574703970943863466380780058606531075242213314164628748157418979599497801163603056012112146135683366971227007652888894682893508730252249353911023906680404050879600280267347352038864881397785968856209612759519710435143336413532169431986016481086891918125416082743636364530488331352448533464019836688323665918680275702885398693059577631072637294222073524834162011575747175106597671487787799702568871626997652812609824243818457812499401018722061367850767675108230340766774918262662441026919743318314884350638094713953809608674810221644523757273569194335317979573399686855518465433090849938117892045484400850296361053227283749413395034708704130781219633014679447102576976592988923770280519780586223267751097834788970789488017966079980474328395212532957911412898328611340702140740106005691474475021626895681337383237096017520433671580927246441403763061659530171780762194814445721295846054428915755485699903674529824842967560298035927967145756697953654403856470884427577380560550114101281175672872905263493800697894212635671951003373159622032629936598225322997447063120778243333570550484038984847255288064375357463237786494259485415390346664070641163770287429367509123438203491966006566554624598905129237528235050056880516043420381698208623812014046212818310081715892075504884031866362249116710154865664040224696398538270497531450396070218150289384359216710552814062950535748999648257418031288414529730234059387778490834941355830845207270237268307903210933275827932426491236235859922836404085881302749522163892278421228857345246457034069346373106088285818319217056427188987298035634033208757077721390019390865381117194079359288109986909882805453692634506176989764405279028077311656556463109410758781125865266308216503091540506140579108897750700691636479549362130037221987693174879307051677770003420009826256374355229812540063861957884566247642005667695414974653356859999635761027090210664386924384676427782852713194185059673322635968687548680170339664364514981707589122943861227196445868188331930024575800098642697067622248658512915346548476214051635959945268824902747062994251914396474448511457780519979335047787184282592292105393883504722305579540042688870688484272766752560543516852638067960771313721404795372851225271478995203538776400298331973456509464304675159765943984674571769089539303431824743037397869677880582554367066690976910722921164839873614308348338510419043082753631028023674081636394074183713797364098267629303950229506795080515637873905175870364266921326777185426551832070234679861911672247494075198392873855457322020478300765145244287941853356770543884533152689469840994220963666446588964999652902721018253133389960101717246245415071208567889385690063869409736954522945577413871615433573122182102520532842297786944544286262945262767546896306211705815151618529184708933718774069610070340189686066921713978617026485920432810226299699120176341589430209492443377208972527910461128951027158209940860213611056749439893373464291897674770596871936022955411676906449983383796051770009787624723820068971046800718175781624932279779079698288193122732547969858506488098713543661193732479808873470135273162428279042007894146874256718561739457480185880771725152806380684441153446382960495198779989092773287017868376627128838091640879041508573636997067383091226530668088613994935337475363010159265692018290094717348950451988634205899026531119896140480503086592316394566887734568079656513338744110119732793617073199632616636665002103880539440115213841861567185783322921650698654971385794060552759900445215494131737883314326436318177932212755741668424683503882945860109013188463931903297952551355536324357465271512441544106285389456533220114839712334043854918243957687175718919011717664196116651844674609560116003109366372959350577139887958388782447822342352561780926529424365626887555764174057344808205880607018325026466387249870091037922685685085086354036410741786936937899610653564829158969642059965223597769289937312090928833171386245286626866868433347948022448601723506815801745963439494996435841643909263781292830171276892771800255389949013272698731629773128070540827859399896335308269511131937362396127768077733626496519320514963377965936723156399026064041860028508092799658807087938548946032484688119528777734079070101931424911277881668164871417323421582280057883722861824796460436000325664985649644376774196741595017712318054051301107995748309022676265908163781059800986118798205183244014844316758760683585811671470206922159874250951011439037984485466524241115042058871994572068404166965765410595843000479852532294054045237573199787470220764673666395820168884345332572430028560462324805067006659013965047456833084473425623743887820499366369439864152619369852907781805812726919933199334799119571312507338862532208034193994583605796026290268723586124999921688965361498536658053192425509888137184266524666342854590224080611951864959571200241559974875451913090033392504597222696238813753841902578465910749554973287918555291301864416348125057480709431750722596735731887602550303123610270451746795073434877336884265777532313592441771553257760127151631782643153414928830422219684994666796343077940650618246852693145862210152097567174076894460011278166092186235709355977389896247844292442495678504432815853135380787700228427954871928332619524688447773439917459210990211288766246702996896841496280739986761308567148218832051564306473749142085506474671894145420434613618477132878931293059418770924905900100837349192495515630566574466039356498814231498556928689666345402708600589829751109085713501833806369447256686644950449376203146993386548618408596742294837410712589747520911610994767095077048451932424197289123048377638532816686702042312287037969388929809691044079883100533546044456181773424627502476305526627753154608427848268728977374432496246386633712395917671923861932627542585248666721725332665946289214833029115917231005286517001449559757394008395083572897614824076173939454177198148913945585510635413335725285431868839102514885588711317061109459770504955538639659289240504645442671937414954430790898668739075789023152805803053830541756898234723316187473542919866456402974169929796326467591273425322269792167725510326829263037997110799975975339440290866275670408683514158878644831825258911280322002681326631779589460483421627333413974657736404621146991346296599085820488397765659304296817358643383094960576112212649074398413545628804500322138757116414352557273024009679276205687340416483922738843634932216022514053999246229751201249821891321893174392118890549815175507646423953547583032679516931340153075027095300990090115619907865756576709276098877615488014299403201093001494550647899802058400884518551022533830039593859910963294622359913354952597044239175198006697243505258465553638269818142970234394821971327242899022642467175978968216825647349235715918203028529206391050010914209124413896947927691502705244219436163643038272824137633927287816407927061712857634535536495841080501546494018495326083378705479650189783859113455540585688929942252961153362184340289495675328871459280566247806586477127962473910330327885772874208866123991413627843934412130935169268409791848918647558337605136312731465800800782084237389848378119772839976733299185203211292787912587361998502347021063126973402319079980993054878741696167594163126578561009513879611095165336143761932051824416508462079085386640815204997231364013299253968238670811687590634617661889600253323692459364216617819323601931414334644587843852906282955695170621721902736782959743003281238069620664132171089978892577998808702865564214229347379733674863485445221993991639261148455604626245613705076852032114113287809005801868142651846180112544464259022456517140757646354073022516431332386825638770890406406133211369198159155731833438599297648581303359147771193545308671448473107320702853551189704573098993616957713381773312764560724484395579204075550906358568336057418301110261287254656325213400573288634825717219736904302202355807661567823406503417965002786031348323846218119395673358882084089162278766254344607616821896902632175002088804956123571834085279294663349239260065963204152511235067314796770558759479228964233798995301875365331195706982197050408939119349248072544234473786780695441959914799638167130480548934247132129742569909636190110282098621813612802364351520540633096015692601740971210241771198493074882650618597956320058456150884836901059324281341987919241483269635648737532850284193314037896541186749035252023793800953123953004747160189486200417693083322942791041912407646788108553755594337397266762558909605915330909842263309895367685322833366934041760000582868002697221024995311074764079839460253469835094236615046222697634333994700173015799308506522813822253538521270996089721055049546648128931045591967210442092683900943482385197411926872319834455612383751310943119899161964389666753088728394131332238706790935193239595517692786223732698635948652403902948099697100320911454976204051221583623218769420022350467969023769667339584607394846197422393839878907619337079901185486624768440029044717570367744248492650650402869598933023426372320200654266670373151399019903850899056872390882786541756729597294415162262809617118594780820634040376311284224699449405765020262744792907846790475930670120210788637895225713076056115765689057243127952879709658205794695043362125458374422425174117652099995380728749206305903231041483788098216732075531328692058990222543969770922763223286567721614044933219047271483631964636693602739082303866698140041286641522480637161947914292966353581024000220000110323256916430153032513288734820905836125391913259929104372957960716601589252638442031725711383020034557054903735213105014466322525313726133342570085997467977084750063687577785621413394223735506271270513193366933384362145132253539858539644166127618702813500917833510737507663156382590826302942178010774601684796973287454531790649406700227183804022253554064464501971583115135901707120151758557510189203306152825494397100784588596972458231528900608304024223770418744059784675361785467485388157214145065916603442212872426176780792986173013998758490664753000031412061430224446661839224211493908868097766018638545186537014583774312001848894290433610693843580598209933625729713892927633089862564026762902998298821739385189456203527143807660505644751081204401412565260746977482361796969886932830838121547967421149364291049345975863736356341400773314693468103187191019037695841572858974490464084205480660807493975603104607107311068157948944592284846586332434232789449965207382265833413134630247682178444500189272008962251316538929399684243990625896554152740990860423975675693783465891001005517415234123740433400216884650486968181441989443489007996888700809876071648868378901371252681726936187108916901776739063133107053170769232394874938394830722958788508188297258857978327891256320861479295530958713169719867696731167520673243225453539229189819346223280118740715165538446738967079925230507442852672408564555847802888146266300969098224053387135167457818720406309205936204778377523406282743892188160504240514104447974082150768283327058567948230625690815235335710599895275101493785342072527248414482196339256701667521526214887955921063711434698850317489938515229175920674684323956932634675483836034034369653665178175633249482447203926418046524844947619710413382886342105234464753892113957739164351476890281961042421621049829098123862668174242217964247943731487079158384095496354103231894296752857820954031252292001428781644284469506763994260241439928575108994355291463553313985003292156722159308078416436858401307716891891263983175138152849509389708770357901775176212155487586208801665021852932495297672128337899785794737816141524189517137106447026834562813902912937475675981638544850427460384806280448409061718933354867504994676447075146662648235390292435368937990383513669604736974559897276316102098947618116833098836050594967051366951128660803699608261588651003195871903182036978529827085698952617447027450702745220388746024543758536046424975305705392850858689272598094616920560007955252290278932949313617827059776647197324057262570193705592864127328083386754391782579462257965985248297875347202351397890936858232038273445728611438044632160673632010572548805753702243302745503684693390179407150213017575647595546784289408957981954426293846595727111768135037660640040913443405901504115100932188652695018455894508040694024597412403819775850417845655650249267546050051996973772812940758847467010595638552907583404779696121616522915409928403042125590303365950438075793750753820451934201401456211377999716658178392945074904725676590490182793888704497593545393943097405904579237949774196092968550389640709310746718103084758964277881452197714528872197029223269657961736058205939594775880745102348824656795169919977781407322526090130359090277362246949263566492735825226951226493171268297508112523869243160870573597960951116157035891781826976859534175687114397616676229730954595376226535409892855815665729370006269043261456444256568784306682307714532737964835730030434518247925599658039031262649390212432071369832917460976368304153802178778031589673878507469662456898962825388085954393009769698641117635640872640160657291501196095365947165058141556871839672769100022192744715361137572763023861519047621430159128968471649394031330577091469646944797321900371527086768569637435672744534366472573564415762761888358196547667145395714226091737430261065026395604618832016591392262343130228366674630396882239469845399991412624127083526922786208654930226792771108069575386712106233473779940558718888558181967684130299474885008204448065056189558972592125190101290936894706108791566902854131542684983034046989015480722878431562249219729558740109470110201864075672275646539345970065463168652147658927253117960051783004220968826578560043727344085495839408604821302086532176797311449934332528554697231720185957746298120093334841736947680377289489023178261280183830464075903774018981698154841126427294878723824410142615449696864434365634660846137408128065977316933956672953793723723186788849308708264015311485043673606617767069558713446529881152559285229903048621670940626702093297876351810253528603597392268211582791571049127378927437360147032841059921883725111707685647772484817845539618353926666544673022174028993392476345118117698877966665567905067536023242962491570444655990010762040502466118818674447236449826248455402252047145873552092091926083013164127808784561426655820390320051212678697027949642794587044177995368283113105262694547932265558453772282407319601186307362961949870583692960972178656612262852341499839901130631493477583768368345337134118650277622850224886241433536797921248707263924151229884559725276774303694965521866289442710228026336247154131248448135869688279195346166200662410175526371472834789989367794428773980947212616331064101938877886185698076289811599162628354991345334064130013460037094507133682236150613805351309894193854765808681006968587841733418501317717601241296645798223556770108477870838725168099706898082428208478798381925975695192922044474244207930954993835320020387136634912680794665246285280864041196437212047909008944642568192134927829967640740762508163205967572223244969890477553652663679143479551506108060692452319461473453264000413524549661855879919065890942478520127892133159140103825456039913639622401411885269350771728974300117115490537928821317128186573148523730622563961088185528343716121019270141536801637335537917505611236136830639943598325461329782019344300424853598976879393379789698119868035064127623043203811985433160653295187309021563439101477373567349173866629041526624018642235327822295153433257361432415389799193896988492369648683194471112245057319698831428210543681872702396741212781770664507993144644403137093880805009227198219074539708770378895528997177344248075493738264882673554622092696435826508308292181893972018838241989573429531759697432304414757230959975437722265380403292242121635673244110003698791877263726089098289375217348261944196952405602098301405171492050217887117268067036115685865769453265355565305147620588699394117609033605147149875263776536050719848831940386610237180968640836396635190693982760818225818467569271365397272559637071370566669178528266370914439000878923910683167256341970017518186666124930220547228233435854293351459190168530836394916127558281039116105015761829464627216124020670924434080111056190087846744629757207170788549582952769849501938131364946152880260712543942938278396024189859393792282064973252247314438198104853287068050688209480787727422479845801294976071416278273980145443685635000716962949618605678532709178474290048352522881317391466817527728087393560000556491836378519065528963696095637586168826802274086804727504850025088538963532503447936069987251756934811164628340594801845157522662970796360169210871483175573493236399423801518435968646614748455755054283206106223961158175440856878249404484044473963612820753190117820911583972022621938221254867189310741610372179029670100014987345526859821148032783805820841752893074030391148508871254969838854463692710595707342984304822031376591464382577704853053102911814116981336740827375719661868553646663433668456252721771831947352245580332812068410212601397073213034531997557147416461128903238421401681515418733371020977366522171162166686510892919075267594940425242462092499797172116854760316974511693063098199131066053340685908955042064159441846575133217759788439141563207094274143055615399304449443391086230606779715022916475103045499540381763119269034970702502419295091260408351238767094128690463514767292419118536013503627247975093198296327582301112390612221872511393699929418032175751571164435394871889810699497459239731116394509961863234295401274364145952696319207980166181149012161397238244103380466939921683479868235248412166320630748790517123363484355105218427126845386175348903085970497547062318835766507685478027616749833350797613113367855497465314158621334678727708181148530362349340074345246313156772725692103646907819339244191903871407986401124520253794462288417819641196275881958765841647329199456599362324116862065609794183645757720898969302377780036484038588082849301615941589156493164200574734695364584514478166583993960876329735902484229789102160560084437611761644821130905292819415282388781638579882535389288797674467761701249487178493418120684026152296527000463025239507789824230229388499176717636389037608376793604850013773641989786850624275045640728009081685534693368020841862542010595196317168206603856059053381399598602333082873272781084774623409941995210638028997801549587413031047063684563155429408643152984157454328942465910270748393470689381177947567825628870533700258697622370185753921069148019829658449486933386721316787114385906391106790018137668191439552925733536853156321874866779002217668833305314752845635311746005162871990337898913297619267959447898369431355346378198672180213826509839628261428256830155415399508643506583559709365521804059006632052173440838572601855596093557223110100831779791550507348265610928252492423461502809943637519920130402144869012671824407084641842259298756493225095408346964513819731648042196201749062206478251375901579671075270714042267909051646744340415784116855945676027183790364399194561730553956520588195174720659852426914611901100403691833924505669140440146447970485534781388145936807721281313688266263466291200813398181865090845549818869669513901890585482558318586444357013883160150635567174222990002278623107379035648255584633338612412550954049948868595490453106807903765239735054012576347240608634985274127168818445695947902314756574096307915479524460591833788458712298439086173498598618046429275934291450675202113769426522008271390685056192447882719375595533269813914098237590838473372082826159548527974215518256588004091915824659458148794938289512693057908423809707226769824816729905419074472684637421296524452969468464496658881206448781387886107341233051619017150261610156588617871825675700672280348179957107265114751302403839319416872047716398303840963199869952290450038340595121678370407075015723251395662778130325994206370328486743663426295937812715551652531304084650951209741455797940514662324906605719886834081374969654428992405710992457997361157394257213871778277947329028011244632103691382904753670312364286978706476254347737600571858933727484515266079678938886808899165877902118188653356941766399556788867752688871345879653336296763987633831877444349172118431509037647327636636626565109986048103747789840136572974126669467291374356347463002830511578268015028005161734643983807942740632116341450833132007649125341953413557268286280593517284859074652269340971096070336792742357745285732005530468785267764897265464567977272115549389295344129809784468912194540563597696807115096181507478004719074889992430053669077786444331236506818643296373069350425716938096985429910150278113306900712561416652590920462501589412974280613200196992796756132316471857229419328288706660859392108010312143614859616447652141723810604617667077345445429273246943375616415691034217720922946330116314909954748122242460095166667749388930189085996666136846074154960608654494175542752623279549577122158997086235812008620468294751013182350187005680246106802547775451987326217470392597123638622595649288776189981755949406451165048755691873218945501097911347406786156633209180409191517907862701856910984525209349987077815338856845301588682643667283038795410677833976797506217734258402249546619754909872980957907304962930213270297989783211952104305780307475285279259074189280483385046895045005825913262965110642352563970892885084774712129447955575140030683174864856603210197705828513251859740883669746477457823025069853540950166729932505372140486062112106469194584112034408783618556076316503940567058736252415165426558852153687930931893821585872770775761759539499879387776007363518584860039948956802712830941095171795119032762190328774175813370948160589724724450702327673103521267834366770352156612455118617906375098711606306418629442687616919846708652608444884350267218555533832067013222116746228744186646719177227274440193055690264950112985203324834479443752370459594640366000798585293098965296992094462663035711592503273479520430639576600343458746991863193363497127714208253488592071275790494971943374256902381698439611104138069324376255247269051801368889392839569077749701299558592733628766131363044490839053928811455728131268212007916217597780415199569135171478646368250188867970356278234307930665731294646555116484780035411345018146866331079256029717344594556644334939219493581541740987559720346274942594319092394508527645829867787478503771344581929581035874692919328287153527861044176882982345726564889280789474711328495028402128318730660360508069230788315625838210309872275533988411428518268153568399687008117723070115457658168736185265022987340987204229394049427988816424063214192306791929649829141139590263790918284110492763329313729931212532909990975812157402449239557786218640917638312800519913333769056877456958760629281904130600064414304211522874374275545060557797084064776209625843645606161983618513462577254016498467164910413091814793251256257132515645494848249974490248866001906926361093088817153899342853860003271426962411077616479539816792619126792803711443805619996512536785872639033145058662605668819224037118098520550654487651771622420457749285772126491387437707943144020116942104080283516446874010543652107896739926597173094895135977970423714224767362931676459360976396212106871799139586110383810027047812495520691010791453166831392983734619712168806068750401431580659618459666070852862733275810170014168452224355739068253828105816490797118240722073863820526537283586068240696776145309673568915720169028094133910340857794751430512475175592636599519981402798841614033395433920129645033485203946162795693581494276111296004143109669020468660016070031456596195454414004424670472255399817479902823555600581495368299207600962161624914544019897475223560370178576439505370218098354990151288430639861226099650002241464747925780341107655755785666411417372396465272645739262067457117332313183467126715341879422725684134851713031733578555711798261933682383305203272971958277733641331685172707227825991329458202178641053635847046290268659549737666404094516093218264988314677128132326989707113264229652533935553108542341908247295610739827723138756063876180302628500971806406095619203004240045447235383934620456247804315878552325207630551931852847521201134917018298093949017292033405268867729428821049200847433030271554743049286600494522221533481973163615575219181123223131702478612722430804448490860839711262434008399542385600726972604339358745775310343448811864688235306469933701633415042001080633175090939961586269846034983024837643379032519119902900595431573841183569712939611525169884071481072300421134950313172270758059181062814592993820004356880226853642471118329420968234972005773612557669562116131174360861549840981304918273428433762381809763608865122377452030050957374852060170788379037970820431611585799249502932515035522980989395004623738916317243549943107458845830962297733231424761836821359152975184942163396992912071206846210744836802262296096250883307449407382695864117937733132615170708781518334534050875580957439608975599443779070288837319774094988886544837099521781244862275134819821307409975911740555170309123895269235391669546884327099990788119206636368769170427261259383081907422629108068264967568430772150324827755099374560948064001619104732933275367685489378784301324150186352028757523412102485723574872473539038973550980960899073326241357761555927981094412127198559920493105648446855728960916111645689864451562586660934630585443030616873914464511170334386470763319323951831034714061929272553189639472276110999519930363867905074375342151285334754729452721534330624204858740208941906384086439688982334456544737433233294522841307525942880035834234148307042842881485671274334098260594627785097027248836442214158134668356341707089567872775649519162787882254528002315331198583327784478719484613386313923886094374235983056112861115840755393427184001247366710607130322206723992964327540545997085411321145637549482001116545295301526304152331846925880116007855241597904946355977748160277289652766675190675018737202756978000802650835488167123161760972220007439742317331003984211629417804857249914890232325201564699477713038658621482593833641532199120719306209521319688345188184417857236287221395202998901131706591236011136927136523323813394426112589387915597490601684345357030698303773762799759135683950307519195302500310238679230407158282339204465901408541989952092241623702571687705745199983639438201673832788093686989528255884913172468133053711715173553021953811057329185258267370611499507453553523192783725306964881684760022298967215258953614579013969294840456997863434084657680511136315749762622532578459886843293129310167226862012391162454068701713479002668002067529203680140742072459576301095995359590157780049832498363022163742450092047259922686580956646577963750432582666772783323858315292807245992863504882544836943157808023285125520753621596132603820073747081801553563850145745872528988965423236338559538670940371601503569771670819133808284338293647309125677847100626689403267642304145782273143671940542730059341058392870622746720374652843778671360360513947171473255689507554242941082742106974686306012583645228635192667038775679735524035373294680089815501203014362985281778189530611725337980025218006690744099053800330540135026127921316271311201456923499047055630055482941624752986402656042899438811115520103263955176950821531972220900208304122305971870931143880376991967913425396752103319516084679879963119774395289352169814281147782703893514743409084251970283792444691621529707971594676388084099107111334951181950601889637770392293472873040114238549717384707105159563187034939634006945650726982659346800042241877502214242386750514570190366043978392851770185322028891853012327921505199139625248493476501515469610800920257146816382442045944179357017248759945128042855352846580456335935025213521968787188259414570338776560172826050824338444375636147161321414314620149186711622959655240021088664229005256263223385073091768936881164428954544979528692179569961082385266869183457498715053070862581759547260890225252901049042995430021084739943719444289816551198898780353926661696792134827937263908307735355022236983121672128083408629369253120101915139452984302247094335767624306042199652094179424768218736473006042058898680605775066669367603829646850240699047600060920122653012482678960258205304477553396199253852319144011395618894822577709180869863228694104496028324149371678829114198977249131437393181920784379902827505708560716487637226306126240552487263324828370609804398130654945945680900561535293578049473397244289113995940731967711795273166718626845027419571780908120701137312225076562452856587424157485427027488925373305688013203729462287563140966491017750592852625908026312805250605628628636183563519730879009210739642969562148151455750023905885920287716026826305273657729838670849798738284812406516474152139596310890621938853047210480093697650753690514139913228711922343363852272811260115077662042444250675820205801156856008856054567961810438350545495975326058873663202728550859425183450547342654698389229711542178861690706472053009936161303442521641527113458390090991452425669107996050790978827281924234500697059376965893662260209192765849277983831984648442797443200775401764477412365939747639778822216555672388210544235019123701537873954335341897864201765524925863260948871962329747787085592658644878651956093406733491534226985529545001207684474514851890794175656323410899619953939141972220711724389472156252798127873662769116235776997336234682781157920956133027707800532887009075569262964055689001645649171011568311646383070114769954618423492536272995123834375678028233367302358534312806185888661912533762548635024677015193221245133668844811488286455935995323956657498249726167218153926332900232284069820515907831660204198512554969766256638922784813497188333281898710257127146188231257154789058700025165652169593751941061587416805204681955013882561338557672788812048660857834364146400806265622092473477861814396201903442825543521332185569959510270428158557428532882386321696163161278221720490462158457531619710336030089540507990821763535586398313043483335034021205077046596341895036583133636671993607720461105760494000714312580548188053717567596821591962943791648216062913149794479794910022915305429416941723561668763101862743252133143164072286428827508112672141991452107172022506530074351443783526340873973372725850091666340484187637083723631114158543821373679944332800709033156624313255405280224980767827076149028580973843751671039051173308995604321497945220829564520264105897474902117096866081836592089613617894985017588119960854251056029717064061534166080667236617070667694152248189457403530313372254399916633342918611520817379665053507936111936520657999744556793629316224536114461221428205296114712008922539654402939908218407220953377512292695958036223695377757054261871325895413324608732175261366203379299333060442642889112693162347824272319131855966280210390501968348120217271749451799331976641912174836113703158410447467573806485008820511131598386050267446229749796852014246763960112483549630875389693299077357208323951242409782577634089174885582231183347907956135890152056756470055609857181048155830559045809621268891328165123366441170098629539918410180106211845533159639540732027458404015892265672319279442785681694766579425908695115408773268373189003337536656718007007757998601985215570053487993005916569886485169802026951516538941103277705722575215919820806021310269801374828928334296242453903567000834683108380150648301418466645628472617173366069494753644930152246600757003610341466928253632810826280566415764734566229779675509997548336811976192438509498646504349244779689455059365030480905906179806486140763151609395924475596194798447385389411865515208038428797201220640278829624455982405290769545817154379168627142110232765819003243969380946122121014844549364653413548611352074306354973907551532690767542839168192775111861964977718652204615775193590309621654012220830414781833307697226150809389718390832110104758613439690278221275307336155069717976436365647009278377178158024838561490557533300107684916101157341961278146498715283985216893060664367526074035145005038239935751993596749965689765506823996945420335499354599114635951928336405963243528873918148081292938344105306460271091157278663641427756876548309639435839507599195125868834109493902098439197678298498653164997220043378437474735272588540319675773905341573977572555277450999185808794238725392991628356145893760278127429106000642665371573996159979751748572833207850142812009719818103064797603770665172259091180623245736641201372078991475899230079867874985465333491558171183671021231876809448254974375454395796730394282488116983508813177300388102965139263610801045769983226451878159132380773837759741655789667281061966720794943424460196823684673277453506880429877395868253326856611764218504586939479351181023525738385755945150406386327021300786738539873421880169418998454317798587914032886831719982521686488133674875253322149226902457424542925081856266815343358089151925336200622642917638101579374212907983797937658576424589252800435265738276894882458492669425530589126715382314890556130759094829034526024508505829656126300253094639835847078273750309213946909055860205691638515161615310204147156786699173037048303924984918338961536198516113859169638527163725807674909346832602934421960402951986096228804303438698449785794842015782647661895014538107225576966377044347478189175273143102467803853489314526709116492108000108189593884475342395002239655618782049025538827221179431048387631626985979039390129330657877401052718840684501286381611258405063906275835728924885067898357532665869084821871531408137358064987228944700376268808226993517555361843066938712153540853389590443828380643493671076015419784889350646952844118146947160852967445187052174030382960874330310903590593456908180291572218828275763756950275765674684637562487660261048034688214862019584776591785978557299048903622048152489679883541627029312202637241117216705296959074595129481087347075031273693889250708666922619530215751203277522961885478340286715488997813383390053208204168633834150842399283058256732814200654814221174981120647810786521057257832787660845723272133533129467862999383540700915994051424443688629079055500505099879376723627437410490586289605219675229881664158278705080365082218930135748323068472251106092389119449178173864261843325325058245969675006167460575328920610013540528295095293680785566026555457031221076581859959666576134385922729601064846348153179491238603865150686427641797336953326620026758373217340832479091389217883037927854511979675344243793977376831953677454333129496507794178558139830770561631555487042877855096077790857000517430701709893336233208042767273761973396399919102905075190370033187295471853392223354671414122529247495642415597115850347684327226537098864722664249836284259050622548049386413813953456212932708790455400299832114431342521419547823946135988374723653675506576651039775214204160327758979433970232625726213130984719119899953436312659602533900900698306917103958726468374141732656724823864190152195607759038664462025826110631620781509477876251415393287448863170615936345945127391851776562080254526463123667228720883175007590291881106508340735064835285826654485090226234609442026178180547582892439113091395358141730281283972611440749594951129760168846669413235404872656359318328176976119255555975971261774008115650695732139824676670827169019417066922258729201482821774115553823124238823360697002787876810663494652397308400079686112508667371563988785371935928348407903755756368958721414096901660281957064557170928378797103521719907276875874930474070202366539061426587840517714390632030432092831837509618484999870412246386452227262060123543542913120274703596322545843235234445143556747324811600068835387010390998634823051159203791656105352084908348835297589239833695756700277222454269004224388061667002613427479675330450679826880974723243596014905729974752105083035531037941365860505553793440668162898499181445599212651608089445253856052641063700452221943074077548768921667986704556561915923205255010964891091131103110011365512733084994260605025648246658294139529720973476376667693148425114430992511854946274233962235043693216078856472317004296236222142254096245055435985739431362623851888930952086121706228924218810027422896335394440963756745294334591878137432051550681348879173457754241515547885264122042263167882410690503014400115075566218014412957915879705643022563213313955581524435646181069003220455712344630121409068507319841525724685374221901042178417008693150691941649661540331397255661255385550657094621330621057115479812006666559304063479313394161436929821310650170015654659020963145132709799943716706355337403829661207449416257018918753559274810006590089364898270799481162396691839073672806760063273199646721880766246264298266259633451431092798049432805259265033096491407139750746922861020656156545221138130220816826188823723922142322713721971704094106157151270939833020295210047269096045011768605692954073233436221002547171505746168757772930488093155881631830383139842461584001051698031508826310620614621384702974921139884972706999222501582394151742797005982557849182675361349407339778049710596285447399929361991871243626113901473392232169145315540711767559668821780132861743197465371249218246350020370345470875672371592996958763691757854104132581573878241539054196595161072660812223442586985573898379094916646652432332469832017130092603773952631480659202356079027720171345791858935947895663156912419310907499965470469541211632104311117342952082185257796249534891077440182939874252512704456540655297292172144177371924323957552133559102871362763207015465802094545002519195697670990003220596472190721168485369163969217215774362484195786776180326156208134983833792100894217529705485806686461099558190728470251011491829570865139520187250437224600111349800715429108614947088364964151278603430639271128133726955643429095971933962987156527023253572151707043739280690342135538730697438025171251247961379210350120560663993895714325264796924562869465891146433994123214089740222690108907630245880718885638354898829879475606884886681113304039458049164591503294832671463995621107327337865977840970544272184251256239035466261314986161379718531875660753913047217797951957989505812765293890955328061632873130901987258588830482007960412643089674047613055419507377987249547976122100915217509761274939995286083953242604231391445354855798908472436346349285135417203248245530825506208494237182061743301839561168258745351688277354101765260494128449029814307694768857860105070482420879936091002522586120474216706009041136873215098265272639291456362614750574798780383085220219244426728812737810484382222275228095855960989570293703526458784384521230598286121509964372128992877169285635074828861260140851593874767675662309058132981337526176833487768834314114764317794824846428547281209185893416171564996425637387299996528263280903576344727775212103696841091262658112376713757747115078228322729103580166767647639768049675801061216548505146416725434382112428422646823352284759357304720311511136478043668409274113580065406368508923673361525658061111154756960870723631496761678183387955489299322795783627189823011904399312781450031466188733237631530851617501703168481066345293177580428985598425220308744409877698565204190312279679833877166443912610565207344216800028100518323098132356188457262705582674172680791067274360025917916129147110504121872156170740727515588590825414279948835504207530428826813321508817546665846910989476196112873972763912833167105002171722926007329887956285641765970788860523445651491912145383506111716046763163557724613629865441770556422384489512657111043352604758855208658527506651875739718444757794264587125396591612874686990321887337773749398581995829536908616513408172868861336781276795321720691040076010945790034055790851392774565511342717071299365558839435642344620058709684841160051793962855210095943990442065605842016213999683347865679156105824939664975601846647323523940027785863533172891845765211783831553102674131230943837387458570454366254988503751096231545000120258461410868673757872635294808929728058548717522212867139145293156178638787882828607418785943921266390871576261341269741393472378641206089010885232533803354281486383891543497814492207772397024453040035350493302616751409169424717026176659416094819742960166868187652212510077178481781338412322129888916563111506039136951187259678595519735834763415337108183040889033528087036905631113737639647659618809153311443210534881166749743454959611813674532361344685242999606963854802552603691947155140735235084040870828321271680023625169588311459642169921535102826985280074226782080981514333486541490299966028197162256739650818272755943640349361576042373513595074819151360497590381756068563648009493013464401402430460428258780812502838218598738276825812743699059751904064955117064965384422741978944155645856842266069939877686980913319126592301451630952820762702505697967659917878130372955735890380220362608038006344128036215693536706918129402597822365659596813069022904913320284108115919585494851876930987078294502409607777209328236727565580012462374195478297413864753778096525039804313255005694797864584509735622912823434043137463678864633380475091422929557453895861111223243148691653082137482820541586048431562656083532373947958966740626908918957788562179212493147531527853784953103921931604930450693452815984213184987149835778725891320045590251756844072143658581226956688357312043764421111210324123208328978488991064411052978284375142451304923814537510440868820211565725111485777703136290946604397317584674849029790605802156539838971375760624516674734916800624181212565737054827111476745683486216568676066314218450786042696002715245891025976688133285243854797394431446289638450407008887799450218951343039369975376027914729223219567806113474103634279169643738951613317675511263140896785185316722859244696325716367844650617918785608596095555825625344115859539289863062904905018317719390029145226175484978641382607885222657685369732661827697432196238357872705005786190338500924798552034369879153371971340334871225590177464526258461233320469819707939536786518700940306218361084719787290294343653767011852553632365538965869635329522386236185734124022729544259843551459637481906924033042459378029389090109334213333616159449378837309602283840145699970890982838220342721665054874200399046540743627713577177680010089033194392321791547189241513743804662399976727307659142843616345670553730978348999014668536669926649643856119403823491313354334266340183189742740073433983633739231448276781031406867884609749747870899430524273561416135651262790640398785247810015506550636886796673866580592983125577947318423195714126695360367078688556091795682224077777549505467807670102765601900729556636203287932424874196406714997822052086923478967443993242545752123865398188159899338748058031006065023718624973110952954116439894627354176085423910321833179811596025149896529645304690760617094471613338414285390182458003460358559663549910540095753078808929824378853878228867295253305652623968964653562385600973918692526242871850784323633213465865255160483351703646510832605347342785176414597724397644029213868580014209982510154711405200218395597372766315174681240866527820168131769414105254009933426961923221567772225743807943153055049449571131167050121792978298501890987087865930220437720610277653343852172948020026562718077570769926921819116595054831971835222494680752717903243414197304440555313977245650647703769540280358246933527363812973854139565883367056662014935186716513383031658052144028813927391791259017843774292760065965914676760158300707458754972184110354648722528762162012887850820630848426122643436686251279521644827863102354615781616577073419692077811267999657993838461574371049985902993089005551014424004569259251633917469921750601419593679435929346826976840007186286621970398340200653524200676546636021688700937649924045061568260780777146274760296184790739355529460307794092864479757301268501033516504865026914442941584836550197373563525040518113071413890825238954161844403794576411879568527231058561674044367892919166584073734068839799354147434514702536902001079181512155425306039460386335365576424407332436572312343229846193984785778635776964441802604934140068685412631190628385531155788328407538426500212146818163195940386604808109968580454189657448877839015687949905936486854230967597064026193416708728878548779974361215343451754236615013608142584293316282604460155264204003016430183464538751997122772776271490594897040713256616892868689486142954469850231666353560738994197872991077455416618201895893046154210986863393691003443347570029401766075003060826112562242117615514905770095651934559746212178296682847143280626958760108226693744473251225174826476044731308622074018355283726023381665694120951849520246992976008393240337755928949746211747569940721231693233407764924452132160383933018578140142106801618240777973477060744888809069914873382793797745566159949433476762515260855150434710397882643902843214139913735977189711622678598704325445025749278383418740889115000401369206033613217080294343855297310551916485686937331159417901541886823743800567587893525190973167498426580165970192567172412279760590714215853177135332922004194796703063310726080098379568623537320611743209139374906797157680788537305465836707997538175085098319425246090555390627608426593573293284160251228688074585179253232240252768616825577738531140452670528445451631508524439136788421870154193351085744413160648718416539439062973502618947818104531382711304793286082006190022439270182956641591124027501885973147928354334824454667934640754873903278453845869071016226753320053127355589563551969587064348601459172151102276790991731198194114263717915669349670574136485516939946462952677218175588490532695103512021292220139999392497368378928043677811175348334730148389511111548285237628697382109660877518815310542384818654429461586760587987326988130891525999882359382977753522259405748822086859634510220837867910152497252152323371808637162391325587930787920369967175473263433030370188925627043099208958824847488389257907357303744913719299809290531007441399719720505169768524572102644665655726113779724604213725890456762215303176969883389424635280406865826148080600290225655643401170639167515926006622511263916303768335864909144588455263498437764302716104573129180406255148088999908536924327674439366197927608195702351857853748757890804521068927912999258909790045679569188171425057532879760421993083500621448937955290122376288094022794163025260521404881062873369221612261319776516907245590155476295729323349795009143192597080073119548133527129153725879987961194268693789544331169276656429353524083399925661002655161353455853973796601302859939196848473581343367304187784253036817776744730527500152007838645933325770070621525741372384829316179809505320986729593234249627407510535438401385536362098714082664662267132678547806795269616385930545136638793729456007900743653125833442822987557555647069428297663511909277602711510319893431698494349348515939339037046574173446753449022170970278945933062208527104311857445174422745714151993562499257173467955079169947321009504311589148833451990406264693558571743491098311893197361996249971892979229501548058736307645168505302404910515825982600412950550039753601024216110450586688648718401657312565827426053796744829031648771495728517433917035533552664222248951778571740479526018997059521677524635264874699275876813607253077929021701237821150034491730641325751860757992032618074325723475246981761830223014083912168831983566872851655230623555324241866402119944646084256536654350022059661753356209181473161093039050599425452091437305270652717588237607465952707844788239912377404175791909014091036736916326132127266585321470888034015234361203264035284908623245842103057520667612409572638710858978157554966307013058486584696118123958517272172662703640524658732262784672586478397876098188863757296693894837754263506708806321966889758351595114139421655855364511177451922159076718465853791635767702955212975275572498716361679150290916519748092664228744933806494330450868027389143354219853532744383496746797164247454227438806600539990005834054832959117229861808391009410813153478188242697998508680533239042009189690322987185318735276028774332252326371155600605951643261617523523586400940779434312147228316054018396274985454090602174525071810190112676146183914225914101668481491358099850449213393214634692359343485191546055019393198938869512948796734528975731043173387816880931380967693214983590542444709962582068512003295915615306015022159822557423103521418172585638129037197682965246666400440769104006116362329041707206474526114156474215188548981544422659659443119106853415972858692474862871995105047929910673229778431303841253589107249289155873723072739664515792832227770171562398974946469248502572119484732987897575733000309983018450995497051004996686716352520740775812345134863779478860872946653242698179298126854379243443555092992986757557573491193437529889192687134452369104140411570025558950254235368520807464707958613615550322793623488970051049948475971614823570308708844570165001902387836661791175380766117795635533028509484791050982874508768641587390756348273810811741696060940981818516331840429159664056724833593992634431041786796880978797211848083231674912125416347695894890496317197936806529983388757355281075692258818949798973461994154799219305777252014113845168615642925516951359231834971810673177832068200245636230775866534379552671132009692843344949758554853087681666189990900655367825094257948841027527568537964622974583688565096740513156473858289768827657145436407841530708630682670814300113996264863384564240903147950961592853037567048215999848050382083461812042941581332687684541619834680330170657173477128184806942287740066860443937214277690151912084357590232383166113416302044442994197005921119693476362737360757622137938195875412800451695571530536905430832549710603582069007462030970735251058427801143585627233217496979040491032442206572298298037742580564512047726461432760411276152678872319373963518645651161852491817442127890821542150467138316806352948253650575956494562154760225945625326372765220263146981398011115224624146190658850082522811796555851591458687652223717290320066116263859591403869706375043804384679046981917332839104536825800189443829996445304794783531329396043264637758012424464601045957171925954905395073516581000935586514392385120905618843787102538798427830290198930729983543504258583753500640521700104074330475847322406818787092819114040761355111599243960087373699852690436956085829256047087922836909343326028630496985252548268483955095288821981719219280024427391129401021308473961426338872748535577027438329393279615028301763401032078388699214902085995872149366785356613942396893726877782316073421904858659214614688552753372412909102669437481899467144816787857078120489435414712344473948153604396263053973413247446698631372249890152869351251845390954805590266968980599619918636598193625173100169151423390008318148359293844347234080809520905793892956157531115989770113029444768822623664872363301984929298067082654525989744869895286886899289419754559119864299491608831487332691786887874638655743577134857692720596256742508761403634330842709268776304621438595688711353570273534398199141150815428593284801865955808618130307930403573506795429055463790065631086169657477740715143078717531049851954708333516421251268969035162703929103031368024387146533155067233426060013919134708635034716210913008944409221905423642508690903877252813660684569056346544970900845263326357966164001199103422220418515378288652731648154065836372583658736821420709167530139385122344502894616016677634841362460774256517997332671757214742088814788728352120584459867136908145225470039204364252994328835936283671263916603913106120123034030141245433694621164372773345275643709249276161290072426934238336543567994911894983476066525925945840156236679103635803660402168201477325868349765173847046293324134503091851909497438286477460349260628901376342824424976984887262494949549352466576507876062509074260476335022233719536329945376286644485608239138082367383416588783522977166799715680104221312483751486186739126886937542125657833791870119338036184178669397212289959501642790958120004634742547807045170059609636737291407154093848709152430506904590250107112498357163036657752526139151105765162960793907220900977236448738700882801234700027480627022250004709308715573691957622129131159628629492242329897070108728362614348198808327706629284164639261859525792163685871714708811495356688356532316159348882967233955625196652173417571943339513245574680487563505953551830222510557031550974440486152979321625206529601245202766043096721282787512224793651943383926831086396892144017446180236265506109360409030658815553122001927230391361922835159263196582359653991678981874568775534245872257094483247630542821401009756570668679273931068657495202391570840328861097220080041697920334456190727398025002303579856954385040496826063870002830441646436307111439177008910334218256968060905532816210946134640013038415574171816940132426247792928808793475939930249551504218889241208591548448243368122347456246424440895943426587263214181800219978131134570602521129633323640814544195137554218272588285124266342621173363803547126427161078700207199093265954195090205615859170644310477872051440503118069579037524251990441039999357765030684226508950627309166153644023461341033369050414512572343706074703129646293241065267416948122445134692441222499356870841362689417283397822109510491828030829511421895063924062832804304151088972471791877483568048441637203535186127900318198245913852176499148564643572053671387308722618907349681733304218051026682922661994736021459875103323945865397553189978424992241174415725063034584662999487723012895345325697285364172403709207310859446875563226637483792161853212827146050173349893254098143603330027604867609953357352378569816455609900193278138324150377188968236478406168006411674455662410374462385650816939565492039321862515776415020358483624589534612184921104934345956062511457227657467008673471706243150716866883761722176202459010700830388862395839242293113980205280470243431355473652396611656127823976254000437403837043014335797957184894962793574535584992755694138423256915094130650673222623759992871158848531325744266828016142343712074859021687108175611384728145593640311111828391133765457662040983749560243678388181762378212585981942388936646534273867482414901602362431812614438773554344589084542303571921667078639355561621000364120994982852430111511441634340105612612418060272560619553192372717529974803816319303014732819327250000555619723455446684915314560613869299515588509441147826490710535557103811019738488128680210951434856653560774778743021376673256566777955282880391165605692178826558737731758653351128946553626106391691620476032990009769556054203481025804351929352410841329735192188027111775321234532341663769583691693898179609243163924389886337838313825278080323753968001482018172965579861623388481582216915301287678990627131855275383580508045777670680569686913610169543250870990878313079388076292674975621145417378206115732868013533497017366331697414441799120483139075400989835989018846435069819893242176075589341496691194200655970805026104755001934941420067935239608987060161373397709258415100894300920274866791586234699407587779695307502464945760160577598504962185407972269581937949477409332206281393571869027440789573726996947468443564797793797249987755687876774843878924020684454710296225800822781164050317370119979527664983190557438844672042104844857862539544080685993715854677257724477225335928405161587051114477681655051151222659857155292102850702629739254481826155625080353234730101205740441530707093582638882565945017697182323716397617734668870073671395517956738911579370807160052531903900900256825981815417314669849664369081411440995476675897128550069441165202980954674815185034994329081305413924312571230051295530608787646717303532715200215445889855802786752752294069571253774287032416025355838032105918689753353683557574006164562835163461950455044102627099221976019495528899828164959263282714598345177315354171791750287576335687345506524811445471080213480669099815568327708627637520180110182149473228212980237506667868850235438610472207868236954083547714418429710226975657292720051502375154202544193260836047624851150501961666279534375902713314966869584133230898710924138857425338895324447980449101696186893463970832921326087110840991930432587516356963841627158944259359659356181277084748567150538760727348817336081486727094837472331406910572074194588850969042716067303553745432374339997742796428305148730785442790106224948558165874220096136414449354976950683981189551142569337150600298914967594753418706621852783999402871815859350929205140074627339448494348315480325705943900124585823301193669093482903061356376909371586671397003156871065107648799790974746650091687930658802890464839343359328592644332235828458502577470156391626165022827552338463910927084137228626941146435416201934899542622621125484032770660784548190084059561359675185585142851592760104581751474878387775929072175430040253363400019026127424474022724461090976176413983144264443975526769638633456322523070715162291705524302503191679093450577711318723564356039371168827106499082535580757339530178186159764606334876446462444200445956932535838179561595461633629022675528017718186100682974730065520827787576031947669409875122834008203565363020864291244596137405696301543626306358711973395831909732729310662148754162486951468552921183909455102066580850249522308518950193899600156228110698128535688919635973638813425675542812191614770456016336861024390903776657085417027118358750403540256447416834599877042677598066664583021562012910161290291837500834128958172667436001489381848173432153252698441270473070225645896798786194434302525567421087686531058997556448828967408519603406681136562409675545011156134787958902220457311219416275704099018132807781703996421949738740973418450166589559692243718829276309986951792644134870356212744254207806766761966048661730204215417266157875577043715793227279976078259271344285999177397743677723775668098492838245126263721562101741747433847671092891387401304719258977775699664598127580805961121075648850753973005794948347285130517089861321750638815076408774632874538344588911919850728676665564883497310618545701471330998635801280854758081440722028675623452248273538305185907390196568628372850712848302490735165098505082412012804099221624365023659589256909104597184577327949870737440471835048204476864603224435352609801960040652598467801304509857523284876958206251304156117984135479208046847459505325424510201572713074152990947718363410445619715276810683609282614812416160334930677599638976247735765966375756178672693629227497737303160214075335501739595184579500081890213582796779091948951953924318156287770425419513522221361771025389565048127211095164537240451411033629055597395883821195067658469102512435108182535208517900588663373266399588218713696357825463554659515017791980045361837745052087789805345335877726857042758273337634473662916241727165176362291495704965136238645212736675238046683305554440413402225063500823988900236691495841316605508983577134718101234987744480653452015058979229151897557500892592820282721480304286527703150283337735573841463115603338163952320007782072096727821939177224607768320232832468281898619251469868304303145082292969892001287536308782382920856914780612610090734312949666164523842866456258791567202269918937205375388149603729078652256260837929670654104691821788319146126304136739066951258122711609000095242838451458725840183387811787824709993462271821429313716069730717781949338345250460966346109435903041992408116453179989991380892923058647150296164337745127830646130536698950177864684079807364451325436866309131835649143076219704589489066877218803518678515774126100897494121095562924617294569443080308205666953148031523918603683776238145919692956374790910577156834228155221806050931663471165333017882592840188355549211082697213647122201517812642417224875016227753712329948589193939658853224272388496695649560925521110112102502153561309394450335885641266643240983038462261966531148463787916895669265457924516522396050694293252821923811190792770880843052226933692704421003314835416051262485535097505565648664252504873002442172988628368922856481856931341898129984985102690413386504427637515352933344081434062497380372871886852814357394196469817241753578036536722704231610143042600341776233508391998618911464850579134164722841701130234622596857674314646880891676126891361244559966250705345391260873758412206563079137217016483944322334908843710173447690001782646784190179723440291685881866745122303405560807630435870284864481152155651861099954116435945610103861385850262919096760615549482243146180754941411403515323091297507379963133221981159644389177948416567410817169933378451519600859387292498615610360894900673582907079115429546499453367155272658890353999832009396885501759200577003596225079771750950973051119324085686083973400988301104593424373490226275224702827172012854030443831834847394278474669258128252404224292291272171437119036195519871249513481076078172732135413639878335830884624556545284520469920013051892981677924899052863869743773053641010729666321490552171611003079304082005498829896295252053901082671059626204088895720462807430488282142623683992102107027256266872597930819076181743009250651641283761581629949087587698902377477545404775657124354083283205232634897243473592063348067370283152279128843800083662911908394156222772931478256948006941362989359275703383418618861617785060374536561475389445734128418404360682540860750092473778445470902509969285370543734461986247154894023827888283865542651083229645510131740714358962579181401362415612543502773952681433096275392474768167408673553445376690688414412219239296154748743149801941381357447415211443927338077143175871538956709469800580499490686828890710150150337175661007392978172576672357775674393556875405705209281925612788560151901617905579145402954309888752936977113591943750842826657492532569112653347401820857322237346824036594960863520235694966574710741963303166673399832079014696308183848200736073244797437838548753387391331060963722937186950124230095088750574038107101524348009509596737885054837308673370809012998462546735607706056940296122424836909604880774930108356976217123571726374588435295935488413050539826995466856977463951909383786846737426306086829158908105329356381834072518587567355666411243456300249103330898461737668244439958513712049543703956360952794208061491981409200405037616218502456681059304061357940978891266439230031402214801657422919666474889491638353953274608380138458144570339421004297051509285906984377782674186834997503049948677358913977043383228476982120893519943120798859470631570483933652736569551625786590655343422180675243406897317665049945901543243594771305061981286776902453030661452285618647938217729461744863299311735375927906757845067296829133770625184873316576572400504414402521466693249195782725472192686135002081317267580526393315501499272075920497755771591772333097609472960445690356425230634635960119227322326857425736811605394838530448671738594236549633232392227571864464350087294086996991573012320775622672026214063668061520251124350555985021796224582046735293170728682566384368047115280134175976762900552754514082234674584201855314405029964883442477236775937906963976849005320484702435930630435201692087523979615089334031394777705555964308405806745794579128895598294052683373693863179701700556170386155982194773919845034169649941222601556758203125316752892359544659777693360285764017732194131260464236212882691319769449805592467332060595370972421149387148823277077009505150185073340868441748662348202420004544511062946838715366037697513776549555515186933711954279610559575606260363647840184555485361102926526453055652552502411613515992688722878722728556590517743912325013528115369672112703102686460980109380565259161098108278398867137669589087265901685230789835097161500752753582818901542148542931209612190034354017405114465397912388617848566381517774456250332961275513202948188283805981762014335767747528198573063458024193337401975337240886525037497549765093297791249109368355648506981991445233639064940997467093468757871179424789936263934396100267843825101573935686571850171121217156345820353481830766133424666591864652961369948987422065750952747189944993240719780067822807232495663608006414399741479141764953245135631105643422944402825316887308630365748645823248193934395048311788149370574062718306533067809300827491445106537467281395397672046236075739446929582870908800671168880339299162426637710734261598529876866215006912649953108377038456645934934918794044031187176103396831667420309857900228166880613185730757378592562021536724048580975183477489024255094760571133561662238486081234000206311978725538449884892267250560843894707741344561423383204351551475917782770833657143709161212719395904699975197866569046214790281336869375882252602778808849782495816535346783650999318145201984764049947003354093992576343486927572374118672955600323863948694815793849430904580324318981510489889654744616798128903485712982224354959028667548552802212418050848953942381901451087595451453086903737602197176679231179413409567770908754258391032185057731636306691348012971370229025248730736360151996493162699619615656352735765952642088885749820088926054578257157378679813699199365130436160860532177072966225704136880812438902138562468670341951972835770212367323361012016081301978088338826360111337943623258287292623678624231214146167647675965507578901797227022574785037513972256742463153737853836959451725436168569422526861941423967210314558144246159736427101308779575202267396205294175699009767591581563023080094685934076026351286567871395327590469895160843027497337488737146176580316193407885842331968207250509602932347210459111330672105527699870555925159079010437667957449568356735135305104436439449499213561915447802428629944825111448541097058034297930945272691590707317914413118022228224070688368133123525181314723627052287130581939381662365186347436345929203265072791634350309141312000650810619390957021253872295368069143456632775355494317512542522305494229815183881267448656665789300943775286053471624808315118625513731772539984807486495193480524646221455350591774198340706003195216133446675204223507338284489663645715301439259859097149099818591867799008293066380214902986177517992653636037016652527928638872968105950642723523200293987985100395675088254746418985561921632078083958612373514167716663740604592773293351616225297074052259870526133303601161703759492602347694291099053058644417881834451902082628570082764672224623572375025920416533789107960200671256813724011591549033569479398611821798275540618206255956599222806297009632961365852528610162401678270410147568933557025596729891100971328731025561059399178881451077499758062907463024964234193180450200912472163918814366702907250023394756193293055934412002340633115462536205954036274038249709980185898760614672573168771905189642143459451920048309206517484646198644083324959094158906015924902191017877245117543818500394346893074879396504899118793360054471316320697750208193549229870894980613332147310527349362474458839094914140543073037983510861984991080165549748514025788886484420328409718380540835516346345190069507828985653102896839546915240439292198632330934609406161197668746488723930438269015596461729655433884048230969044984827621250035012325780512017160319751546109444395808253772618930335895658784943576297418431505863782861501412571473841756591123248638907926020272842988180587368383571832345381371469516017446416753369631006440302213833071818762488400893418382780826248019719939871168864994824157752636580271490686561124575298715660671062825770003179983453346059466391928867538161715296606618685802166263114294757809931396181342097620849260094424208545115909220843999946501942682157203419343665418828680839728065308751127615980909784233615344988187600672710590624988152125054128604445663183854494522043595111022495347733826050780258041299154248605397416118245251288472411069164901810673607268806135174222197229575280140700789642414817010431510156320005927459116724131054655994881992017791202350893467341647271004648079333149719319776262986532730106520015811409429555912680063666453323847831347060257284478759492733484129629173586352720186426499652255374951146763307453377176843117384766986800462943157560936479614376859750601574205219604053745815618952513853104444346129630574281908345683820502102980258502914955018001313453948309019450506899901634756264065552091912225484416435600030541680165186174592260552903101643545280326057824738264692465577510568581922948101855802347882714125165347144344327699330538450930298719507951345457458918490430821834995311712989815431625006264983892804128734742400285249258546802636128772506434351881322151374283791685134943823510803309617184935350542802206960439036213949709378078057756398379902603145461082821256251583912247447310411148712722944831768861688480986147609639358043844295238364520230457793481836553916568411462569206332325604396765784934327216877403390096358784069444498756915059121346117569550616977315262059767914929617587868768930674056137685071323679746215235490284088095062137254848780424101693534537027039934262310120339502215778296117238032163712702004058955949333273862121184188483931727355506736035535442137374669351798630011392756613185125278002214143748367453146925454126859889854776322975838418886689905065485325338810184534464416083842775429652271129899708976156602013659824625950873275740212242539127423293476060223211126916546589071055323576886824291618416789266445841173918745623514030219877631906120837513144906381055063405889363630244180419066069108224084779013431492778714131356919338750856609743511420888735590412340463255610357137009484394798547844242582224165716380649310258430670408775933644285003555876274983053818245693431866696825044495334968376538862623767599265796145215382857984679691043362652460182965609934176780845334848170836208228604580541994366383344062226244561729012494150569524771584995222989872616435092526412389823380867555347969689754946221668866726165364699123284690213272843474533761909533707135534289924040581416919526823044284924811995090220179500916947775019554682303483439438280539352439150297621651974201073679637998913740670675114228077337431607704581877065415455787815713079807638496132676969876962253727743946902255264458860417338541465222699001732933866699169878567159087401986438299976329137500193610505215198426013212770330974530122468799414968463518577438701056348548816495160286626565271041789835716643387448646307976294473732309066580701920810316307269312430880454487147113781470486263115486901668601377673007777356588294188929779121745301568070973715633710604187497598925216142214430776818012950260152460087714343999625252389763902886557123689916555670752042554633255150812410259031758363668016485915669294651977952560490874161693653392168050050616665991057638444230895435655068801137785523052147677290652080252511197544319093844827449226156597861537879192972560564607026697919342869586915010039801419979583976733013255433036947826955863098580193805278138945347274652885623033742197068625427111182683902610633659534840726800009697627051852926332115601429528768489303649471872910770752644909435927581081247116920656983826712501089337626223522291504502686989756227867950220247262125355782620935682615203027286161651135190056373823782354047431181280793227756106950253287630943137083530101777549496460653064889348234311822492734251447418987737829319314517407456571196668753126866901253659983501679957064409039923034702199422359709247314033047445242113298501981466447077214052409645984329374048714423982537752299990279699549870187245321997716803216807630781834810229383847586184402987352960589720545969878727267804969357189028927641865834096605707811670076229980374700640979343251159873081840640855606985793806227653028552892024355086310381675389510510786972448500761395797831870009261841717553261846576095327118437739501793672120545656835545967068888098479487890670588611798932740323470196353429834967273110807245350151323463635370400093106103982642200033009376919858578241215702558012921166998144130335042884736123658749001235271284772696110071970270095901165015042046157518482375198506241858576538590447028227564089627789655298186854324547762093762388273869142253552988534538321008491133968460059724658836631137932219238252535078295424703755679218708902627921007271391003433588262742355718341577986333944906308463306181561099406089504189284238336447113816912422509596270738644150942417143506210414531943384751950625990451203408006132068041153651040167237373970652382764075845430207259313390839519655290786646645852160264491881915659572826454459651401437024727604342917822889280656383204213262918567017003759901211147303654679287354154957965141089841723247125784606654440309531939985325932387041453467658936856272355462579652703818903771293231171531860364701050194003685261574842397208446438507372274245530523564928656196288718815458866588797274874165343641834905387645339797052798640058563814429132631931993320356561110367293128593750905912228000115064047017406127985429277285769068320668586610944820769164048199441321600697987527918736768277125082487550810561819804312252647589465983649636886932259888919848276695007410301506023387124856676686537309929897605381922582629605893352757400745352280518357080467899726577103639243068504065661291835622746948907466635579266767584411768288404096316329318152662560709926651140356902517661715092964286960518208338007837475340173307361121730210569488849500667217225054017128294323681168873182282904632291662725501708477299971965579490454936082155106678311731172425279032381474045409908967335083070541133048463160087191277078647966098110581938182419043901616528175723301085383386685869507637847337629057740433828554359176238970390699517609838314999970300858135265448028481700144188880602586195615365470566171860941414334596470640263608813025182511488586022970579595361959434426650602340208307825911034353072055726582246006116288984942004046056480640674109903990827572099195707971182811098866281264265710681696966988121109120379308156946777172837130797109569800394261573441662558565900881890320157540870464449366810573910580369475545563416149632367159345845541085200895180338682295596526343048127264141881420269750169851876057826102860889624627904733964953965605452996757704394220832349988560401487610677404592847131863026853046338292245721025605275988839498742249207150889010147609629635915537797141013053924038450831775659975831125895476700960401868547597581054236540113134853379104918278436313542890967143626040452942597300746228919364762092576057028596351427177485184535750103517915376247952142110297106304267934740929441973856821242771753944489859464086839025213623570214537546775518989402671139873020851698483242920011964254672701821682081211569583406210507524171105692030736400753083515360253980094251286556935882360435031758666724210724066894946226418032064825206537093564082384730518286686986259989526071829020774778652619322595468918627596115509718178020114182414356025337500897766147364676219150616619217821974480173320689858472189696250948953616979751916079742116722885235962074716071565861415229624906126814614598584264105389302229712571093025713775473042729061123096953399402277545246925420643478509764756455645283418145241964553560036097286163629352878955836395694469023066779667912479957782225679918593874789828489511176480630648744415234567385845296835928116746425780516654299533247770229431295389532703366641492409113233355994269622497241428698652122110342494037469393050518613980103883985159149776019499324133938967838256625007190720530650687401516833313258886531528751718983020819275966374639820677498602521825821563319542915630524846238790972520578394191467052965708513453975959526543938721730148989713020578959198889173121847480917168736728176234911619084503632443729239835100605283516508055766684084876230646330123935488969048467528625466983567090521892349388725708928866262384704120437740601532629382032577571488902554732811506385184386604311382903231600781268753595448711523155964353950027830257513338735114803455165054230601345830109155773295697529182284539973306802159933005307985451880994329269084020281353784104650502022329281951873668639944631478936936242153753575315958482982873520441124432641067997920058260121036868138250014510441768709587114394562956810713929993788258523869372178818146999647239753447349272816864187716427354223627786705256341418648128910047194109370687414588132693126213415428046099035068152104217423210695961045264395219796140639568639234646563753080368631520568192038474370559482842545862481216445913759889783466257965470684676775313601202110092177687677558716889984234150343056840970898971654488751699156201498234699751618151834689201137994539107121787597824981651669494456682710761057114682598368371003228393162539919348527398594732529940745965009369891625241546106557494618436247240261743062879204557808489522039834024483115388324464830559614085536295812416577370999771205995320792701469351859637814367189839757607327039193962666569824903961567856433765620976762475380927614559134221727175490251155924669872246947823501988346267985386602473082170480175965698825027798072760719729137504878701676766997922214212521374967891001394537530276669628363197857096614279343243162784319122076804070438077079200608785713527294494914046990139442304247062458957174534762521751812050314247830216621383992630325176117012724254822332455435004189674482765875550866569194467851940737966318682250530656308364226111671548110980817198482335248453900472262015187758737641205653808271892474710487554716477056838883815345749237100962121861666211211087929895791207476767781676097823998325475562027026948959570170800433571509450329605475457830175555030781589624660537306748595935616446895657813389565327588741130226645768341382558883776038377095103368871326611553443118460989148190098527353792903315579579650267468659374335047907458483732020517403097092673743567985006259603484723231849120816605153100609843027823597907311530801458958114222720221347782336428950831149201811195025973127530659957343074865424487368140738389363837525028364780175832980717481918534609075533890470471443337226648551230438108855211010305594228927784960574597483612362824826872982873654268878533394966802434286204331965642965517158422258987116507541575145863399208566470910494145288552582602511236399090755720099039854048838010199650909213072684797474690619925798606478439290595916117064901941488379977981679075870066162783692704329834517262097306396410116943292857946854969516666492797651775717278465627739138896827835089590887462943993297289640288764919627539542299280295468463922375576851474572198769621216817429960206087020224081967342355018805746018857365795247713760522249020040446557564915990146249283733124873111152542676140709838649470915082319272755056303408975695059678890809431580954667212449356675072348221719220752036460797589762626021880848259232270301441721860180655615975735546784652606807178530497135225824729865209106586923981848841994048102192372290593636737767887523199603670941845522211238315779182415229779480271709316742029285502353124551058989127733609899461833271395622325061866722109118360970463724868081305255670304884039203998839239954241434985658587029558344260736285488333371182422129821719736315248424722688553111797103445621884036746310821466873288552576487036099298129340467457696900965771417934659729994726368262423874822096439274939738729657313902085199821212792959015421430303088261674588285616823036223542633840416237064022186848325234755907141688703101695009572948639636952348128108841129786234400935252060680334451210611748712630120987655797530170857551313135913952076699181767313036197815654284695705157210044731428784233854826937220346776947452701098665509874695752248659727081014950072843631683426268675804937583566724373308064737573159102456620855366306113542141958326612520604706064735750728844947641642220272378500008225543092586562286623606056591113272538680031561331949927279488232545561364735404779695241309218695708320503353165489848891462556746386536024941704469175756753853612236496596102246960778312911668621067147781713608252967342862110554567701692643527046642658255097103188304341106637842582566356836456038888234624398461601345029728706629122841147008468647748491174958811812670659577468282087572211204683514207891711518260243296692103145458540243846556493276877538115603930141443397441234806092622264453258439618886316274690626174657803739508436670241716836804225731105535171759923451982237669867902997680144596237532215813452012146080118809087847700401842818343342922825883228432398991451038309612994349447588681828534783746901815413570621603916275394915914593020569823191217223123393287666459235167709994168326113767078149834718355860207950022106147110459780282653104040327856958569759056467916631641715351805429664947723449210975886638508837697070655894147038348737425288572370075386783481403053550442451010844838985940901979404885964496597642529618376279819802750095029886508383768948078355378599631167021253594419854820056742000164985461628279605438139681237067302969465503765489962503502335300441546039412046411809284468453778581496769255023799663994733022009705040078005806392659958753116534730410523809197261503910829586466882368249607646164933943493438120461590596091090123867428008940699789911848156626660954218854444081542959032860125098550795950561995047693787919208333208262740717269503940607136351641624351229168524538342971079374704337993702875086223478949001529225928209197358347226394775256271961436308623264408784212344326617436744897045097091982365592606047229450719765547062511184872490403643383245683122872876900055369837386656690244610062532062150631946264254199411797101489419686610045752708608490318516334778407467507100263314116193932263160148448457667667582488998166849481890778157198974338481331533219992465921480156831920449102066183604866245651217666691956657455805018439403058557062237036050810004519141502591696471139561086786156948001056210631405886765965027316680466802478898242334817944501413883135661091786348172030593903736396108911449954814158426449231538696504469478158221033453100311443724971407856002910858621149067677800531834051594637526655719451289454650002900521080613114829422004785807417924792045494666635817362013906505649273521530499827066941725409647940810829991170302134433422120928198404414237530405687436478847446169061338590894675080940538952605429630980528189585705050120956688048708332727288038171053766563681147135659397736787690594532434444700927722250651017144351906339320537975417279958276544672376429664274873142675649448892495470689354417427793363788244192362577457501324044256748019774500828567195620076263092269023521478111257636508406576713462642874765638379838653145038682412595093172633370807229835045234437690483472960526352941513487231447359092538355340113664925365918818779048185194711440348297906047917990678546152849812526738621853390807310739206413031240619279717169640007600012078911647298761994729118206493596906717287651727289707925552928765710270737060609681047921753964101161778689836096296017378914215663385548009296535508773065848247623826572063960392118854457681820455438559033726286774329056414254330618409713954919631553270099260463406770805852380742814313256570085225767631956480537023505884696417059283831042917079729524535909786931243995498406157805591611078263725901673995027575233959692867712872510108859764338436342678127893736962856225567281915841982386064254697728605448960005640960810368671784216229534291444071198535453820801965413523153143892305257949578338359592623763500280161253810651605651020350916823313688088018461487608547431051606769923083574753313189891276066819673178892639389694526674084887608871960298337125028729760322413021527570270396231319351944652545504301801080388877401007464297173341366804052026799744680770933264867285365542810640433417325641133141088977215573210531188815827708736170743294684035622652098880122164461082213228606325644572844847370629086596701494603258548194378258816887937250132508050894661092835005962637413522021367368198978114548259165640080303334241711576958888076524115585144975063832775923629284996995078776082149058361574757023017542591937266593367730349129951705332883524090411874738151044464150797660936030526157551340413403210447163077419260472447534593893043730525585556770790470030941649415102440330553777801555991179144344154103607921115530597790844506292655993644491128564238633179034268590879220654461790360116155709812300145273108271521092693800310665219622992268357877806201164856355151799176957982774627499186762887767847158234975032815902058887760434358319171545174925663470184617639925157862923225345601469295775225306270228659158664587958983937524658657265073797035186828251023300020062683468051125728510925317267086270302969609818444629639525812982993699050174109202974445976779057305261882407950941033680483129905641088346311056049127152244983795076887820714029061102436055014070732180713402861969982964509213195615248891530793979365702087511607999059053505991002872850276969893066755455227427595903542216619531873491871663827933495576298662558034519449100553939385583596324056866228177514974278234361845152554581614460067807412753129479099778725420167134153176958631222201502738562251092060642664785831898575588290415976808082147437432934455107610390020762144143006397548056819061981434797253132216229973938217122754958718861363375361383940407381557255274570501656362301300615522036380509251895408924249909159472938615119051667933812542273049675097912207564559493964244606233333008846911075208959091462926185928526298070636156923360901829368293141580355591638262598514207348986033255183868302406218758161947026347970278395066826105814130535322685154930218863063625664966942278413516967847740995746483415751221123677227773630151771253442558186102893944281092534360769770339251727754116360471317230999747283646260782357631495755363690617661554890898302932115124846438336432976151671505024518844222287959414791101094396361924831624481929476028410564111164911055144908784506162359618659190250009318585005394201600184591231760627972623864985192914567889339860280453523070213382965631993299005051498505450091891080853911119371426649376211272672130326204642817544153723293461510728790010665746627077063339316747038804339312004394194570779607101774900654283555110779892771112664393267997925365689308862995988760576558314410657544317993357122032977993423263766314095495760045312026460578668721149705193069451287014725026916198459538892653689889278848827486617223171176228323131724815073484909264276253164372094263988150381313135993175488474918876800056492909722764781708045210917588072008210413668432068745049721620686960937940987890766639064976101545621611372448737236528969244449736614370453669175219722265883937962174672780315925502396470124510409181356182269250578212346392289269351230142877168523534491404647344008497353514497536468378747671667760879957203758608060445360123890011442456859665707900671571926273543901958419020644920059694378358510171883672934330517576277527248260878252059997431454730491568394749493107576828962637494165116069914222952604389773733344332902873656281209765844566567478746005752133054876111596586155918782122560591973311224487542648705018074357513729933648632337510429424025868986206126742911070706364865063811759392461500870756993427678697564668819624431000006506164154708103976561847487533283816503638314856506698266033915760801274803348500733471598840754428904877581458659587400167218610840234276486096076656421853122230966625978804645534584643215065776384764502786311737774753719268137401974960709621939563465491996770168741093725032621929982781794719441451578027478323726118436469661016019159000830723962039426520059217454287210839370801568465740943705084863330248354032994974431903883147458256802533657073749039441977945332986405983757046356153231969634540563948356375937775033360336978224390910535521605111387277168118983172980215417327062276857646050126743831052422631191401584659162177010231380617122405261883212429934282406102545875243950670795464171650241195497282011462788258243109778109138769937041756798632669293872335088360069216430825029803522784049925461212370093356498913442485503269354938445409319773005605068026397203570781475723381726209149686214141214947985896029875929937325861132008448839910718633686968673919073525221944705201295190797009313655006055521907182537582871494265408638626930325130866638592908291843185227827190424037986010389798450399190634311009213758854291711286714249841779109161711957163952571937413574347479540413854135245290525722054181428441428101310294160168465263660517197865022896955298274871350367632414477738651398391862831274265434971775755154510114916724088030420733936109971187673190108127701466053044791849885870755397882646351524654062466495039324662769451552418734885298479416177094586778686108852993957424552581035362779380799272858820127528127384718621582880659095875517301382994760315598907509222270806055279851081010300563703729113679860383442348673861721765122040645923210222802803223837806414504158827332766441944520397434353767576850629420923568012083972636688588777886452456564921885536449955742796268798546107173552528528123922228768548705126203722225442760618164641609994434497638850534509561251840246042941112620798917171936836028853175843541072295604322872616769945390863867096110749620282080732358474170680305000334797425879594097917519964114494320259517173156938585723290031711010665270051863249322277822643865651892722684209227835201217425102516911721858766509600633896102873953833823848609126279917624736390826574330928729977833997098141927019017055219044620874412843637420402467838536456724735211586109730176549071256527148145384937793404709284236179265860138243028555424653094944578072314401203714473256882746445333000263843655892644750623038512764499872276785454593800699499955862420182850097576349340178953889727403728454626520079321956153130779064995931599259603927612340454436461625709311614356246886692474732598868224885384202663391199047753038607797925382779669292070793318327056030739356764986520312579651646753987968121019778659092290908777265661413873859258037775187906302332487929243872227593628588820800895676214253463669079673008295438421891543583183289197916947357996533131870295102375136332312292590241110058093688125334919975478150895597171657657547979759767040568599662232312039827127201972643117022578568338134436701006736247397573033280547071181394407267556289407745674362836863953363211302638371582720023025001069866063715824945806175177056404185713788129293318230131704880520865374590781990318392492567061182786788086681989513557711249604628801422733068228096833257545201094250673791528275772480061391730091941211399066288334857281866446598536052540580912821588472121521108356815891618562681005177829984458528791938623230370779209420750327297776608355788451071424139325047693034387547196405846510746983282806588881227525729513510061039786101855013120131141035729469433500206866081425296607599471646957507757072606711232568017383745441507455463004429256081997617038520060025347437222904649034896370444818375946642497767222470299837728545025908067093065246185208731050369777254510983020803786958275697158376546689599378549624463407397497423118755684396575130883524181317970738363887574810840673054677800393387470866161037441643593665372101357441096815660382576365430712292280267485484823852738892062990366173283180541271504492930595210996718347570982812141854490028136974627816643742645489771736290228138021646063087653663327542080813298002153685812040234385430077582842775082820758753302236813049636605895127375655231828401256567231303506709530742173983814132629948762468862907750294063374067859444431151746137177457507270978774134401691397831311824116914829786135303887748797047425992829853277592666657038778165590384449841290696403660066504772320236208649651545703661275433636263823602651779980827136652414637277024967960280202739193693293615861100741315265519894864995137316862775246173924383239473338719088586095017384503501620965630975424364171532086108180539413326777864885266641585796955303508825946322567476621226054504237381126177379420166917648335984407000025295932477140355288461266796879968785477210954117591467447683071753067589005369213503382530356370002573298716399760840273001322378733355985922306244760806551157543394583700443136421077665839137976696192871147753635080326275664106895758462683368255052404333871230417679133164650390355758115795027759736921115610492185557633155034870703981103788061504402877356996110287275320114700418165359910164976049568976145988949270801705341794547869717799727196399789723773738719516935380690554956345317813851717131841304214552238179559501071184506121904583274803807304803843709724238292193312719766933830266946751822173102130441763518283592215586780793132235874690432305540035024381599392106146703905114352199014713689425977089793777924926528031484583676120030332666611034051238098664463245666129564255139228826931077514336308039219928989831476973726449979615042828439262293789880288677819404949761867358810648238249913905535866278364698200421611769044838525214812985522988164820961877878078868999052272093287653983426092215240118086875172392828429819586001532949031024682626662433472994897019002414721485999635770907195936515061236442611505171841725922823789893746709853495870340118953905844065380330974958412692531758952692222294741025746288288464287205370038868417696172841400563469718479338576658297856908477956304199898890383366517967499893176501344837183069826267608042392330182650260466922522859803245130623765902015604825172492422305051474016968131987052482995037053370749638416772328012624741405164358873007774212073589777050517563736214899058549707527072266478935214866415200398887499258557930645415418210901069684107402852978015409681435084821143804970772992909694589470312721007633192880114137477990745635335488330361602886828189725586884940602856766886508512611211036240760219988153532721577260731267408865986758990154100202480294130453258715175193632746708412241271107959493493695461600857236886346105831611093997594181823548511900382852623851727739444228877085993448711937288243726311343383633492937165279058302136483645620969256652468136070658018711514878682865956742936147388818309861208555363439963860826551013434703867332588382833182435313449477557710781286950492035523460410500076906014589445129158322898416384454408134117449808477339923667866904196975641918513535837062381786876429944926409776757999696341497114045506764920842507281941960348408985107398672040509050824062656154790627823086757450326366312460262634383649684761341120357392736331424490177689710690704552012574141291323346865518818911079835114391459728165216395399777447262374307042072214730936319283405061690851539426376266853336215510693567945263924178823915720672367464372995373692589212246225701257086241628250184634411041749432696383790286678227811582938408165158538554983162939295964005844511695025487159868642998166306389555129040610720004272011673360707247554611442621182430330699389338739001692796562841941905462482444564132412496199332167898454214377173295374407053242389966165410874075795171745600362623286613304483746717255936923777780366718892485360487730607876673024647640360743918934305284167322101327536287062958057874143909422333895240932937328903325803671831689089844845727832363344034745228333718259740997458165717332646042254694505056644960231036215404584898683228889785171874409105496024969538192636469540763614637726299892113722406429401765006040846942779637706836730819559749168920658290066138523336522911157763262662176205838362308353096839212990728223271472070717016187320028457415021563288427381229823945084877354330229869742405990030123155402165885073995840018059150135474295996871999545401668167516358959437922350885798958488932690745786010888771736739208703793771195722275531121814892473387688583411740395097085086879045204082759396889125819947621818174298361914182708752730194033315771349191599291653937880635137418685257453339339386582268882728888448313418274014697301563965991683912737289072933020291006170336450430146425296154229256371344274598887002194881209010642673093278298379770774714357567453028320046281327108047633750348096051078540434131987447289959618770794767452377397472909802141684656866879306140057433392073719486435682999117131216867883899856034947807167513157614998951280774378941667420191652262605603246608505439760189356539100366813440559515304443879047286165371322490999300157880065211412520713362644355810069575745242266725023888899409110624778540563809213174560222193276032479514798570019289991918236103554816511628013026546277181463895493140481250446986292677399699963403107735220665925032766870676153719268455664893239048682130954314482400812113866524000175087948279930337885180087663122576883551914838241753711928613524378567950611829769736937713394675888129841343754114176523894430596607110320366607232659741479449670826026656183650205096206962386242126266301527445710838035017440004356803774318746240034201851957632678348583847276440482755157951190893453715050181156930530742547917948135720394524459614812652866565566059356578086592611307384353769274491873605604503313861341883352868976854790771629581423165029910223815706090093982395371320608046613250248572168640202957944478095180868627857430405052873784460500448334499025464157801962612220147478523656786952703999809558225382399449793603411995532065404044758511085013779804702063552437538953459027326764270201686001959058166493352609717963880060526161844095379392517427000585885852129182919074239633525135466889000590310424622475382778439587912076809395074008333497052581505492573052168790279109116232750062956977617328010526770995831724925243639261543845979162923771960977686512849534536707725747843616017584589649654409573286375168006210251812818559311167029638471128629691825873080374955477065190147482350893076524708447837294234220896848595904431282881742796036569598081437653014390691303372804970239175680997787533634259838987203325759198209030966179220341828934471053826437038845869054727935246176831110220458532663438091630972116929843805281485503038966107196161378694937490319795289085425911157919100326280048526470515687714432393525968728889538437910840523805034738161306259596838306021313021490294281644668070015827031675464085015279084820842228451204038998246638598268642590013424024176588980154641109405373716670313021314022041428770532306377466034976619104522687555160293463899679041963345710623545098567385031877568954251417830690044471708665010733727965070090413157125503297052235669230739070758588736749798462698585912217319721311455128303610221606692570358164969239695089444378853898369564665172286198418901694066211909734638767712598754625204304665546426599019148569288051961013195814030161024423067222893308435366435262840362409863929441649206829742343239921712442910712096355975447810038764293867100876768428498608053516265405281502945421628263690309356986944940332442159774303026717457543798957134463198558865558340567691198106348209286698631054503639163045555101935814664752001203625761636000788273516569468445390694661168174000312141294112966363286234566118204232555701293557591409152889885030454105019647815238506527918001321963776743021635843721740019296943878698725658117244306550396324745435417639985355893655140754508619012547371924806864276242944170612464138024431766043701275667768152382134641774070948069850737213100797380555411962592170654335155460903377795894240958441682355383105673874316935671060014193635655194979350856524614647880350898501012749558237778569720533801317613968420630116766372366147407553076467322082375975750706233024689906564512543451836801317362956901981353783189184102753540991533302774101523460613575657355351684667868294980753230426170921132898728256588453232313219651374230891228426379415782558957779295629422163261067612052530396766961808392196589979674680295594983525367075273782478105337075164710643460919966065126183191827227846291272550739190706313245385892297486914745567446350594835798590027381752349103648956943495314852122926240408480098468595103760748029376003953627452703572842237615935545305816146212963407505329244117881346534145232158855771313573222564925405700190304523240496907089440629346081234365774322011791629043006225563381142101640233822428895253223074841293499199117345052959988054042177508443892545735024146954646462217726095827047834763663873931264273765531785903525454395980270845792944312595511391040393681144056922152302004046945448574080763909555028891488588963063376046659384489566777703579376614162561569848686934053576210650450374100873760862380840274714743122918270487400722485054074079150327961339916122700659856429224949835333671776461652075299840226504067810155142298953648560996145842828377896386640052383425800850096299346481998362854296877263762111203413735469964321000765964416573967166446660854584212265655401658040953885241514080941626503268029293432303926168074217795001973926326206451683985174386878432840628790014506392496806407553968283019030957686263867072686222728096199539207331802748927137382287764478979089578132006586555428025120789353210940268290783016943762618076343393482342032232160176534615759674485663217285131334932137316615134770547373714836213634971714621240727972545747235998128846559261028706595324654020951644644318310199653339739208588532480029829769275970907232124687668974834271187273732361046288033772378470026447752698576645936581253144161992368109126629344056489504248397245176991842408741689603258539041107852417357156718484207245887820533466537385543678066601894819808673170632899766702927081538756094731843823971370025906753266273534802760957152641527912616716204303866021926001203260984909964353174457053841379015978411352611946511675438239111406997859816735858598158022059626697223820351768696914213516832360986725792688039047278778898395785209664039692674905734354780707169951783830032194439291106071721423462793947331995503067848231809375097251309856753246309180354490746881865865416934447744112538602267593909469595330707054512904828319451937414236681486727911556097639181725226195016203679859018658281232000252770583715383838217837685609439963820337698798695596818054592471619720972976706952494841326967550965589468005952026181434911107328718796502678535877663415867058827960586880869108925833190769256718288103629367691080607842764339408690788864649313078083006982789693795770463608660730120083699218080384659143104409333570278887528921350844445019901018681355918753101004469949466152902795255517865561417215206751573180709370645503668396387521764235801364099109850283176250366250187606779052102501141991848905622150417075148249844052606952400161156437055306062308910605023916990977934314673987463661276572041624776027697615347527798522077687656483149867558222089879772978869957781810036916834004649225003817872761786723399187878949071789551355119614271015940174695305334066602744720154407584456682130742696454374121729064437195215878449396976114058506268776081411860928951746318131139078003599456281419757606691157853804143386910885482474785567056404410775743039989962698422773777401899062864132913973120617201847966102290793730900227150528788406392080455272651083403928497637494260535646848811072939657323800773331993989519406585270589802444950046754274848414088470776171694556395096896923156798247822257812375324705368592545840537578770827240979531231650615091411688911938321182596993966480908117356828841640312589546524444205317826666083248151624770648668408271205869289447650162273076103371129789853054351257211948883118497004894701042540485203346323382070498920803086389053123733596371152089849235919940120737570606889160524887201920354787917155772717105020619348188241557851325990764766219575182745436471042686956075964460535948983523949806698804241995921401172819855672067494973019842758145166720252439162317251651447949109793580588349435539389035075571121188991268104372057072252914544753396676878160622639991985778282165319111466909965111342387909664692773440370708549517316865810730415668805545196895718117314607096847661000055907025264474856616996663325027459486104076103079173065370994648720978503340899892821387707336736234516557806535024545612612676337053389217721498236285406395294439954864591789598738924269657663404593894562348715054136798643700148999186397496979448102600321818681194156869990976554761170413991340795740713048631922663973124567945863371982977536580050094900029252400994276145223861606930627228883204136918355212757076578209782611989178665658050597884342338475853759822803257311695079189242782303434649125404884952005264097510149364138473084634003044754557782747044589556606277035131744412186378655605452078595360254448945325724315689747250439376447554335086196224291343006405074726981001521021466973347504208407008204275340936914730595864901630199666040833731075163159943464619273560919866645292397765507362336507926955051106290872933672996758767512950882362448993438743685350677405826368645713095421989897784596432504635629110638183320740998303390558805287367226810891381445339407165839337829885481104230259417031546704222853105791813738550944204767672881085375946869046821961090932591254309543245932663369380173995362335261109325643100586440032896485331871389308328272189991499829534648154349417621636902430882186355843039290865202794125467668547508759931325246692266011435432715215234684541869952118781835217492389429930844185283602446467680152454575810132553133904970012680421136189332309766148789060090416142854793666452990503595905011336972466051371021820610000050296484875741317721522204938568231124418925173322264210317380211451618143831600905244544009864954601770447434228815436653065807786861038842847390039326212185542092491190974523975731282701234478452248281645411077399768552047320639159923243916571175231963607299251231802660622762737220530882778125580610763386211049864805227029286482519173313132000949364502457320693155745703218494810788798633673805720229565326541868319700409616987826016389397691259987238225012987239617663050252591542868758615699988993807040969692120423836575198324654768128013335858904061874077944474339151468251500492648417738970690745097047101444334276894342480605099390826824593835985828181401354179340763304694590770696851550451600003374754305415534030470004104564308425395810134373134283474586230476181812379714186989196723739934878443410267362504276971972548092302491223299149593344410961124820105840639542287821615478437580997797982481208877803681287053858955360557535473739344857157771240500751564244078692266185183579175646723783124525598161100176996584614841999544483645339502440582624615802123844698643318259009387632226925916824213970444094675295123658614657227806649763828083603538753114384083623603063957313346690432367951817082929825486698410045335476633661004499414153992986955825010931400840582771220999083388745831223561552301795882904886499498294518448802055567275697525001882648032121404883074331084991743272558587966034720552334841318443033925373329411175867825056108898776877951588004909100524241432355686124835045754336669278150793127884902642103061263819174997986135247623143553757971289077335339021982017920904167520323577120075669440139221194721267429255263722120390476148867566914013760728615607753882935812758252526449110948234754027485482258610598002508064091034553116316812279680167773369682611770139167936861041473074806120607208298853379505446318534671061156607431442561263970396733784456992931931106931013629908620280512890252182376965282216786002346170229664442508575189201730567332223523287347566624291046375060690789763498256806567221365088579413826547564761470167547570226407117661565358932158848356372105561854309803213343132012377775202984505177248170511567646198488961202079999989511170560936168748150373752018670170282980488490706764187555085472360490603308875308116329149146252985347554389544982366007797467236915635882290699453427747025660563526463748573009777466242545068138164742074866121796034402272125266768911844636488113580002751452246938776261918579649198869625578021474890952389912415159986601162481570689144409287646146539397170066719355713686077721280897722588694110417145327549304928027194390331700348991183817860862341208680119952615779267879567025586546550416052528793482896903942828239433038250439398492989278632125446405284486908118827924297832356225635749613949566955561476376909290896534126280870859251963906746868015774394256937834325237866423736441566610614523193575628913296118342633892415847268830165579123619486804595926642562060754326972364515411020438403396746452923482278322652367432490761488483788072545127576986487021645542513434689296420726084838045603349725503462461053973638859418505854988879364118627260716881525653776086865684966959199557298513413062826947222373081943014911668467228973481109797467995226026680946497880733533967299938048001157773363347421957328376429600528894183639863259409532723507840302024141079198243247029448425535210162664444272456632595770650506917567198937025005938503911094936549034655717339155595023099359377444461077277572187208809382089956956787746480083895245041793807107087615280412231043328858980214936788819153742922560220417565941989603720294623903893814580040579942808666424393153214385066713611856173090040239287259406233565851948976363664743305151302873090237881022593629327718005925787393195951612827659786629117934208186836609008731490046080010003318068601588965457538188358636478120943675195284342530292638065607154851795509566041932902483286703556558461785726763473211377680846485410876629270375370211772576380764979502898294426038667368578806886446711172826453819784058317404690963553203471813298614266826526318967159430110089380262302724430420759781050656914106041791337862089154733619398139710610087378631257086057189766441936496764587415045595030577445130454039640010808818272160255803762662508950634141987787601168706458265020595446043246977277543411103962111645512516147946364106813513798694454728498239776702790024567603285642333251705843562246438590053982804932859004551635932372909293729006661810751093302916922409373304561649568499504620310896747636207038675421012140936186887794278621786133169775923041345950718003521816590437336604108189647817955885625717486507110660791517593938346728290727035268907054191011626769641527876612416634724132228232280522123904740267292698209245891812507807304510823151909757736775475488747397403497402368826302678144523727947832558452531558123829484239458503190234855896947740293666072884893984287535944763390223834373529487761509998511289786138555608739951376023851588602566657882905154570460463038582435310099703196081629013264244654470186412882167021644672084460415901821754133603496269237633121845498244950041146536667721702966979502496483085715087314199312574589145246259667650168911952046252160458616146332028709250479898516283868595534489982482107875191406234364363721165448373079177552344862819435321099309359048135575524224090235446355686102314823331803904684297273013684936556018676114756407117601726136715864626414567494573702495997412254881237669273827386309480673088664453500883875948779197388442485188354776113725067213132570474374414127719202197905485984568639958809940065608469679891539442065767610920911389807209050159947217448279035412545580384468701895914881585260365907744405263936228594239268767113200552552695964932859054033164867917540057525403784903656291055428198387214821431986674412005398250464639101448665587732357556447549515543266250250564803915505315128937138895767822058266244243175981294206860164495820486024658896954708462620765320188101051511787912859034702082786384796057592644248875627466132106292148534038981388437787508424717819281375004888493092033576977967889165657013287033837839026572550497724642136083680958240509264628485791100522412491493388635271259695905442482977200751203052250993604482846463482991700202815037142650262343567241999256319166108791913801008032440229797870439531503237040710695491547325067454113242364581735805542734879536014653568427292173814289673099769655434238424150626896738067796203277374618781814620602538164635909463410848329435925319900390190216891062311792085549512640304909341188558004357256449402401277214380687741942906134093987598326760746307794133663724046575773035474841526728585297366054825805517480657027646139169187297168767808248025664468136695951706727457337229071067108704725203736961320403094415455749559700710986052057821131643250704059280683745913385326769371645934291468797456624453096796710907052078269709540619300216469790829648591280468431829119978875527261771888521853120393518825081444802857574522953247508781267348047328466312619395669053732800464226594124839103462591523608335075493982670912933892916144772346038684079222676667744863182209221772902477875011761459037216208000252090066062490829511001472642938701259464208601639224155922302591057346208011922807252772111993549600366676189923588786853333883753693424398855502757298448665774136111246783395010807504539511792247320508835878620181285800602678600808692993642130875890585934580851950000820311430095134248088368765131949212107463781475664077258909350828455442639141459676832859455520247188510772272435492014185029055199783182121410838813186409177507942899044564119654246617836788663617402725737569910595646588024427347890261699208094266727065100791935185201945916490672064402843239586189133621602399043820488314443468949666922715104762168693717533911982238459576362308779361980331039907360614476619498032115680743385983733186373367100024693112685426769126919249859577417334349749372329045005588864105570161652104780400650716852647262883689998393507143386223491033966249465185210154734070450908977458931737201197932581081150774368828360399968946229985604783705953489415197280447296011071096263505866255885487472151605921333995345163405656583644904671550341242239551875764524743256407499909821630519230761495753613195926348156064120469376535828201390330586340341570747068979767882555734329772049506243339679294618821039581735325215925942952449246791066841120582142377602848666928418870299674094228108524824320904849042641079083879707653108438020807711157990788995913922712509213037091851850081836884439581725628965458976464361809448686016620093166916171865908232815969393301051423234175556032622318366829636968143697792392232775767258841239021910349420389189878721695768172693122775965327399546902665058684162326794764403447179981816799031293764863033538095260343976069088300460234642123839684243465527694766017684629500235941653730411960027505994204009663011871680538846171763842926390538418503479954664593450615675287355542514222550613518529492166274870720731531555821103847411611073563796505054997034413040037166789018866007150658084792810330138672335262628630601660455203802781433956694040706716453683251606130862278775705224623043519817903539566693936184879130557904080030537849798093264928423088052550053699870142375644037807948275005351346925203726876222555687374601116898972300188138270910087462205848443129055751897577990824888945573830704307084822075503938452221127066804955417106170634230712959043664239108319738949317489946665226675755592546224872693188757741375276833427401821101310765142945765845809561120423636376107296814850223237732927350884993294006866996410429005386379061376914079346576461945771470873789329274155533071792351909904199411205133562837120584406815642680585179068062537387395917570973928613802516949936804676410196060383671446128560086643963265092980089018000415378587932086331895888208471486489381160092734251336886597724268364016422867266834330889891954914440264579710004153469502197566839251451876140066573893297161085682098367096044010818855368135776826072906589750763119096218547124758420880119890953404260326709510458177541298706526655118947031988034600147885510203150973638924500098456905736838542098989692712254242393195951362828056063040063080489799438790462419687083514957949661167818288854192736225368154492387193469061970116026167395431149129260262892257608062527073364847697099021048232069193330857340073309032949800853098376722887690941727834473243526037481728082466822680570740309742224712006003376501905063352086123460001323593610213970025271575648845334641302697407141605999767659998752636235576321409937266025540919320241504615260747101770904106193497523452707945631286543104705476547861407463543236310127172447570396073853169862154642867387951792918660661940410581129718925036807995079807438818415086612719445195667607330338154939528463655168200088034060554554982669266755722211070585459474534946090561596300477561769785426895091258589203420982459139871077467904534147051448140432649234784614048566845761742400043647028929992726783181528718329657289035724598164188201022113959458863367610755829017807522038030257499733790676088871046634299623307466438301829796957455898608643703623394937365865242984805178980683941842247849606018554167943202298008906104073171605571948657781010305749046203003532762594400730528619887811363757469730812449736902226177866122637128359132971472627519100706379500072926160721531560623146582357803656688817860918152415154031707549955264829116580020014955158880057946585716654969705588003258305278115340950412730913067052820147856330687118210916230857842897267639239137662917409952933698351012406307182996526599971838074858202173305529519743763018780894798078615306730342297202752310682821074278779465585178658695849552559651505768456122107263887424872165775190014298186998403119607759330362281099896232231248172347242139497188943392398822373315910850645466744986645825816607858220907496378328679822358942633904908947387234047888978282883596381265570881743502648248302860011092080294534822966627092452657241475342728945769138252134377437578596726606687210488194751551663230632864996352662443692771080444354697264178607100574383781714255907730766710707020971444223787096747238466380537063421023040087714862630456639459575257440820004948999987426507000235098681539329227483481538268692132878558776675926807061388821577744155396936442608714701499577382048995537396783116426469996107323350491700811198592679161332517160445765799855402169773207889850804086887196895903892710082423848374881947290364873938373542274832218161669397329821994825129989239621834237601644377512791780888401209086242448057921262639764365813295532190523362609839099988680698188463951322552207734262600362980902710781522032047093722223359584975765523886418956079199307002329503502111900412817658419762020460129077448053254804679551020962260317593648716978996300978073598441805619894781168172405697001624479026741323851226894742018013462818390855782970345294650032088260065710385313924227652368469376390395363160727069441441466685172844256980781137483119854258056035286433465733469727535481376947424709402483092854802210405480169889905405947406261566246502621450953598116416392925756814264260221306662799161631025489487299230817348927046995551154877700549600054257085967408743524319496946126765185989239565287286031396744023651895545571666428359285259642650588076472293628261977736888056913805397607553710533195007174168388806976241396021939529128721836034637857286966271783477423521696614953818295895160909355801121478712762759118813666227607410438113557623239858433521800713882799613744824326907374370986290153187554754910472555411566448827968295533386021313982827211578566837332849584895108564846906844705231754573166287047130958265359614376653452951176073914352246985756630773698905369233879683645086986163836624933972647454754130823558876214501076646364994063256037125041544103790752055110863597347029343281255162320412695630588805483692633959932046921762851624048924388786494047189531338569599322061597846051667209602785261850902561475243620727947402650712048073599081379117417839627596341675620536708062381865281655464363526075662731646522435550897152458119698393228365158236933625443612729356541780684695323283151706798146481265858122859994110024698964666086447830064963894537589644207253259175978932446740073963069114632328533143532488964930960685069625411264415322483650447623074922259442305302203563672783601474484083499897009214773592072483518887449894430032393003920654483528882102300984702058820633851352226764905220302712623220312559675385314657452985795921814861560211253343014224602565986031508197655000142881906084695909330792830387586327801321194479851240357793110266979079850679908889174262907699562465266445735219519746569440309040965507284672250979906671106062543774235395287556070956660521663770481359701681937314780743274474451452542456898106768741571242175914887940549014290450450672494708244115550271029732628211763302461051202095896864786845091190451300275909588994435825521991186509388318431947697453106612860785541253913932797248335405928779280669626001076616319496996744018067049044417013551406279710328858326098141440355194609661711271332067330662710941978928171342423030711939963148161817893330152299339758168986903386846429459807016486759712833442236643291170884673608072783270423445842427136173942747402386084075449256998506199938816279083864327337396586349631513372903282837867508628017232953358613708085048550488869762400194491111845715664799215458525183840363587871100156996075021765556772628754032636852315926825273106134986841854604960214385757876776675665162706139957953340605685605427611187300375812205069348214644733891313703421697594192715804192776310357229374648376339852273931992540465381599859953699486529821861239811052527657036218981002433988296773899028419652172154214002976669172767911133958984329532791507808009153461250669890541786992970866357090614258565386052988090861116401829062061601811732731026226986343263645232433231857726988061591063883453202395516776614413093247560107281831767995341510749177005899140735264673814786886924285324195342455369286047369376722775758891943834739870537182292801346826350866626603187369458950104666786745768143154956534168974727660659540657922522723411377418001156973878818648416155975484588839659967724353930124302790435468595178837916941687212194116529040881998196569582494049296225723648562382843261163997210172470975069608160592669287194300910672439232295847024688980772615214694217966876114070247624196420807201824587108967425275750325773520841973161881470641501321229657577510569483155033116078707224300959421272651767349790913751110502559895534798982796819835846590437322637866229351063232101138519871441158395275237870569972483004333242631282825371944258859316512831558201143630174757483432647260353918338285545617229222607891737634672904672505244510338560992154504311084399197387985067155870387845531896523724757280712187038701597665849679469732763894799337761209423019783235555212110220864673989419273175696415837414022902091684784585310551623887352625335994438731997836086141237122449389611260158016093336356488257760208050620300720570249376815007082522159225358002969491693036817456372974179563483640809333943720444964102825917592408856023477239110458915543868709911529798050071983378919846087508998192463863868278181408298575312263061787476849779198813823185556642709684688956439571342083384789249139668976363019436544122769123015203540098876981597177764562540314459828440698642334474451127206398743058697081176517421719434190642265986419410946429137357595564638127607374271087620486370959924304260160885546402328614434510709192412948066706623475134648007149592806898262670994796276152738959256673788868017017089307842097933648311212148274348946125889706335023737482279452998321539678351307746840133708680042002693820778093169035457160338160985534775359831267328876673599170674697966222760309641472267639395690735279891914095171410099190336959200717626857950838528014806703691697099384333733775220962945013562845447550623453020853410152426517965833152567000310289620710506974569946573350372403297465819722962410941666359194198451316733485431730204651441222480145057808940002449207191309303819969654712083495501872487948400166361235098668173051414251977369988992411713392326051496749079610210607803262967335968771389578503238479410446739245532339543632515682686585779280547512404077124565540042489468705958197931474678448712465594340538767415300043947059522633150236871010146518237857467024913506168730705297807877327094777212100883163451957082615465388989948277494786517718853858965849347132104329568763190874438670653829956793831263710664181777047507871864475328357848426533683390525275277784585489281431037929290875465368451963462254036878808770144642191657496216516928249822592646308553137816082074898495410430844426044824528230506144314294055190027770419445536070507390880074204290727793416357766860707246388398356593456054435372305712914674886164683938362349627526822944864280878048189286101132591285472182923422626368083683903000774413604617861618452557677170528312691520320948843001401675080161172992269323640792184724889457316349840242934878370288006957463310017947194241045733334955742020496103855652594550456793762968057651968986412940227157480145977068066775608153835189711185226345961585520169108084916290943714367370562625357439974163096312433869155753103413434411434663745810753909519480910680685574594849641531166040419593463211312010653597699698325259433859030487700287293796052188271624046804665362490487147165282812355813984435185146844128682430337115021053628616111760520588210385378215079188628580073152841815990173138764424351967148167949210952795103079167304181344558955157898892145483096416364279958871135429450042613073548132239997770419372651710033204062091138978369009142541743049638869311058712472051016743698508547816962741960206152728910180474140148043486783822310056392972658641679962338780974386863350293408540670931894289713207827203826498427395029995640734376931832283689407429894450398428363381262705863279389312911773208572686220544924364201563990317606054649876986071951900097870946954093947636031531796867390010529308670062518649552217643394405045176466525708262728453403879335160793641953612744047885780635875961585836282513581638746680631577617160789084037903674124797214614614609496653085581704620043342695865849690901875175749228991500547051923892209022171404711674142723029687376566959419925707618934642624261316369531990331314156730290300472930829450745245510840386909875937313723073004615299354456902356388192859726392857313219526899274843118207223503896590630273694964003175750770899688358209046940567194569007735397342438739718842354689066016856208231779404655698589419153488537816732991408399239722987295852232054979639332032405312710353287065197431613816037169025051510287728300460813090630399599540641042295199268533969626363529130978801080948203387790362076512723764353844909258726177136953363469918426581146618905894889951768154048548042586838815462510657449890155548269536237945363901426354448319140367771407188712454935732487943678868647225440384611833068106189725712945738394226272030024935139550994465032938249010733408500696904939632955565378472532229628385082762267957592331429340415244685090073125167997116746503240320083323837307323502288070701713510399896541407695151578093472960848716920720863846162099020713554388320065779065494380899112903917648985100276954002418298918360757977297407315844709573981239062903583731461384763922374261726502430679744691257655147439743826103401219607721287938281091194250433140127871534350844718247117044199750911405267121130345405662333895520573850718712032250570473380563238248054108498323347331233681946538399962901840513563671327133625132032316834722039825264462642721495911048487492114899069196241378194892889281653861623828447223564860517885885614782944843235177616830346593154328619375842813628129713289651423590264948863309027211424048941954404380730187139993592549215285297895518753263782014750965031298177045399473842873085040110001391402603742807231721103171131230042231953450929770082323328813754817667689632240722986767763238824166548187084243277595891871245308273226631067243997187539893462004550754664868638064211262258963499452224813271685507355621247084237022222143447515909478809872548354158192798936694539233046354217060241299035215662604315774493665456423362030589053725543681506564511669905315022891141218398878133951522923563819233195694041262096462855064062104632065004689810183371296439999289569339296449780850206844414836275519525733627890003592572960900220652133228619272662601896896424538619601161848053352144956645812541086367188307395673314481917154110124282338343694153228309661188919248621915009931616138253049553885818590968739722537127750634797426161391133972028672037895268086581448833077624870095230786777575982238128926762278647997894296854791618453384548493228667993578264960342792731599919014004757559150598025375704427881365099172715009037284801454774719385596895560699419993036968625439926925764049334691051432340404271013775024564461179604465408259789448160575671393038998391639332028065878303497128272182185102886322724017521475182662955670495312501197686461381118888055741360856590845021280069383373903935470956032092472142357214601052673788976063942764443011782754323033905394470817241368461821855865764955774844033028162327809370958095750991429219575441584022884025542238447150599141092516891509511492171133482458992316487788292626262850574111091792035901632000565074856815384288469766078751206297924319020743192455201885116865930989033777931955833799717082631355491192517111329641406902434645794899658456425884632486777564644123828178389323535158592038056738759869204027040726879531374373499644289756308277877180107789417561698393615285586391975197582322739567374648548844511858715644806427681997571997668455872406877222280361922533798345041306797902761569461182834487874005467774648305854471148931254962271187615360108336694133120545819556000520086088008551976224965657086384279703153925128503439318183054750778046920028981453574289348254842799111278460228796844201715789978484984530295096822746836802282549471385098400848252188058615659917333968766743392675925166589115309623754390327939352934421210600567014449641490987438319300224009908017171681417328471483134203037776901700412946344148248228353188245840442760347303335069314961107846181887542854582394935325490959323877929909176170842175781600967792335996758423605758963425987788855306648148482341233324500471960624637578148771444843515186354888771411238019440305909310477830813251043826160263826375809385704872726132312302067684826679847172565511919988811344785463528182367569434682427482645743821592879345464820450541098546617464116419894045793422615429820003689466568385927663704051582430410210217471678633262376947046134485505310667537796346230141255937465973896163555311167327916576410559555859336124680668117081327742472784215200679371294917062745972177044578254552024312431817856421562684877310685510463575756552936687325434842950031703448500841977842605986786349559748392108437930856126835545737548649844768398083297998514337562128769412056712657492257837739279273650339684580788646567066251199572443963549384170546958332188339864064721110496409880352901537689375006627105951964020152522551570739341569335405084472872047925258090474169936325179963642294981687773548029712991635862378602061199030865800573154119873742478456544376634871032099225852605618866759012227594135652852947030818052743074987025926437520465597572355145999545468730793109782833263080749748589421103563239825770378002750038893418927100012286577603366317578840954576939690634707400714013688471435597831081881379314617944914526426329005528264662030066851995336582245534390628360448779317408902875137628825216436519738692732202557134658723904676834509164958782253068162574294905501351404229580865774007853440433295310335220103676825854848741430777235368627557028640322504156464213600285444462705041987004091275098080370486602695757435603190084940986448002088487318335804851655941324159186018598696449892187768120962814164508892373905214585707428125490376424286035626672536673982028992685669750665073138345687319674540155202388351231130036536020913581162106372843424200954328833598021624262955028158596195453177427651481822457863671007828088572848425927158048297248732475282610161569053508636589818920921423288243558172207756072740375996192072433347621459655975050685337018073757257969681213135154638835970156758026479097676060504581225301346551734896497079907405868566070725207651208517880852336116563163814760277572467521611452243460785825356111554084172181805783392285596104539752364549052050493477585472961179751312050260793640085795511894303545743149428832352605584052591165629437992197470544934734911616055533405077249922257039159986861138813526363876363605460434896035458389317145126031173011922664210977324491472182250703043695958071387733496309920007738554870691154231990831249268661710166303825627369416595358815163842189436857407185709974984914023048835432536874361412976666695701894944464009849698423425380796849920181775885193294583278528343276616413733072743498966987352329299208468450921192859047287704997098155317233965704129829075944669611436859882656626025730463271553034593694118237602291979395770163637892858027146990350822609172471982563398273148279180962532082037094925222360119123188335614203332839728178824923869534639785018777805657787069298666467689017404161381397765529032037320358354741938626479806609349420412944235093936014019565739922833132452449316826703167114252425115899810010275360571856336994139913116380347137867538831848485140920672709367468615568970462443852213803528521013812045771702947057069089097320514992200086956704309493897542084972223190931218550449476126999799453083595044833359089286334644976181887586680621347571429959123777001932591952973902810679011407402604273181667201097241683721466943296330989566163207621835427453597262681259605150475235726969887502741816213556425714894747506545251217860394972438132876343811733338977671865640786350732043150863806246959958750967961138852685500642458719874282084886301397921324063391898530266586647639415720640733419095683167229942711975866619758392841964295567141816176008076910562492027058075464878833679135437688203285952673232670914445003836320708123446174675675741493746946784491917093277366569747506110081746455883989003072225965270375504651775293068162475615485438275277403131395481784646801987479053263231078399170628493072428431406334878901521229504124052003183256769705723221498320332435322270705005996657262977735654655146823128357925304946076525851872110075303117426658773783661126895996157228138245768795162475263133935417812511501535126203886755164761473031701263386345911859255893954910392750554344373642723019125756628333162702118679420818435065611758365675139923079776326694942168279098834345936521678439094353046083688058052042341276135190506129295040713074909799595065877943298742599073224784010818614260643950385002772678743992833496905503716009801144315313948669753499464383169227663969451868319747656428952058038082242582107084975600037288550056360725508835958708580112093768783439873103947916663407924397310389945166081539614950420129701051656126997819430321540818213054493778395506148568439595644172343730817857830619180232019554184076979008029185716065198023010287616255906684846668855213106318856982646468109615953692716467590949460105671221113350011858787096189448759353737827578013991758232168628160357620188168045366650147037867934255215053972562359569004368804789280130407754927535111782076509482169101072715438017733778837571267456962129125344815127086193562228787676437044556373609977171904246720375719880770354236518901471027359920695133935174415677160619851683055942800258307917271606884982850059962536361315612711281475219137254928966006514586683771435117371876824105056240726068017628763454604594724888990557886707747665382874449032706561168621841390267745215196183180500836599398713882542750971350974148123984662110809855661800063289272091640416977131933460142729336705821046374912345464302004262679815090001582900722925399950292328929771983848914073232704228232446621359421946070645015297691095247437909473311622031846909930917671761790955402990570037725460240314823890688880320529995343750650815376078308477039054645634787631702381487842382974146529760264912494870981616304230152573653482583504773509181039664734290917248072523551584191561521908366794450216010135014698053257559128353207442161298599395770399268371421522716880622287855414913620535511336449257581482903911954466518337929175799205625555325078745361167857657718526470102751871252392746260303624747317681430996262499763472225692164261307341734967877874931447061986698906174417681805489326194768247039197302709931116562428134824924533608604034553523899605053083267118695334964449444987680710611147758219762553142167000171103166432169360881469288477238408978941600696074661528965125143475627245047545674048369975600097316225920142717140555880996786809747021617271995333475885677412617105572229617447508444840302587614930547600482086313940235892922610699772029284260051926690125651215832967511736489082552369693281616050387382330384625671811677324505721231324225181799704169359351280553216279074270456215844606102825896467187448098752145191334867701163604410212413855045575657030459250030154646100380048788297350718212557998503684743491316326614801152788156633189832416703504043495376407110911272995251143777422584450693679900081726927699339659699077238272511456244547158656466079952421035314156605352089630112480747808901143723013958084363766124077684984663982126062790670786125525645035166215766804882050117378015617763874555828057029126883299132976192919795855534691824595028863848833887502796493569714046528290357481619989804806601004487087492725273292913844184334820104146021420882861081380032773904384704800403448929192661242191830646242333216777928156601303140268169399439208665648376917829932653653903958623448550883925604941186485734612029001338299237535210843103871622050830631651382017136536056583283517020306064656306543135904650146849660325378447461228953165311614616303288605294496810445286123664979249611810696829699212917953068468741516207132032302061405508585463148939152906262822028615597254311916044744276626654165789439063291339630499833070919433680791208690919678927473322363170202593056648088873635705790844804940834877135127220599963682796220544395134176405801230383088506338323896686381655178121527975070146408493121907245936168754760713729992145604463890824932063711904816132753588212443657699545893801177360629132612293453854354053461182964963953629919482153740897253253988410843178455931758301207888012861007182037278615248015371777014199063220707976723741606318545480626284180841033152691147777701053630716365101311432833086007890485716050365770978697496939590768250772155175284659529076220104666913053545760210146270595034139171212711717816763035304240299293398448313419136486780332521895463510471931820860527940702370781725884149562340532566456455031735594937039701185328331425224063292166613340065724926106397435063516931051958875051993544449819325082677126194997021253283145034019742334539570645277302046193835495993376532144450850608057841262055297432418085240386680851890794350832738067245772825286911767462292310198434659843544600388176047511253006402454435370834085970425738016149345407030520053452571765584086603700130208041621542737055686038686127233094119609056136319215845942470292198394574371600893399737306823991098265557731443541441666931620531540818384420173139723492158852927422534053766713137801291508754440192083666039253486653004614669413123504151430395117742508492656149953010603973328297404071514746568191400787019031211565956757750989321783088646072480759173096179331278732860775059640345290444470810391289777799023234604208513664720557745559925963893705444163046184573334818487696398741929818530833601116596984302125991048292051691753825047059848780218244698815852567803034951029523282273149625594747236260004749002027911162966521126264328437986768545780481376912760951108981771114773303139032789310627714691672787785206885379383016821371975175717611459875348267183153324007037058033716179712805448246494828056918848645221356637562925840479561641965392395595163240428150143459452247051127509315118195706280031657297619163213657461129500412586630379159756185793060022889146852345699260736214410946185043670628495882511831059844059626069132649606107425022887763842958361386946288762881004213665090344530553879902196277483602715016137703311167668315324949027784070662819277511506521629949021003155864147211571360229690112492543647319011530339406781223153213277580442425597251937740203707044578490331971985331749267469861756405400176514285522201554436100218393588321523781252121399819281685099004461157224452587161515865302818847197653960237291022944081168918449715624265719996744334418639575735275761957871519975260494707821503796831468561343750444564657095226593108413084691150671489968024617716290952191373755896700680676021888222615214074322982561438169785518383067332277839796601372593398302719308926178151699758903079507130523663829557815906613005499294397745689906541723096611285880582931503438591586531853816510298428758106657477591361367902836605535272342455640094985121370666910880320897845654666936905548473403347480423403964308222640291786412070581226903598770501630497907375007522919510411266537548804734867136941370231974131691130445612344030472034178886921194823392578528107882345758848664589246074165578548692659395838215791013887022255302533036035945381075618176465455722064033104849175694484647819865716903016335000282862011459836699055993432567400477403992415561583392186779175565632212378998247741004603641499858444381207024770684896085439829936155335612512526517202193853915504109956434486657827741699686848822218957460153169081506612127039356029410387138861279626229220074062562092273847127178975998392753300631693360959646855362714815036333804662903279633329683972197982111782477999988348622535482360544919151337782953960468502249410660425595139168036804147402620251394513689763469073238616826448901183504660250277611475076062594168954813382793628635205781869846487956803833093978148758547439957792037082947075922693757158143516535520027245163537383296526972804672395437727826152739084720221142408349415219863321055336247866968672351567416539334190683734231923157235152937962729582172403013710385292613754156731508500901925465850420154478251315447931723360911361535301530077525239102108803889106508775001024778022370510549321429274303455510117233357920761523332077698734940408176531328574080359673960574908532574362731898771689429810775176466130517749449572944880040114879363424322439919240942997681574848563845917193654197395986010672600832984520269892864474262806817745685989969563265826981123537739594289305403887935088657097928935394344997088493602615478637398529755066640803131347311667566208219979988934662162583587930312387773268539316685448318025550126882398339438260807124026919934559153735915825711380503658641417833473495100092158497083550451744234618207928265271422492482206917211538981094587250638981718087990055466632368022716561935571177443924083368618314004165743565275788049567760948309765440356719261424993370373284893400999573821150494530636884522843349005612807564455864797163951154532674171664152109113280238132434625619275891190516609189709214698671008409463589044607307036339468113014907893946109428718333177656301552960018358937453662091317376318029396489934481631811429230536604645950150570246738874512078117160607904297669382432921432945646994177381041332465604934502981429622201763833792758638846533019859378687385483972640831940933455464934100386029399886136934870631616034321248859833959201529390832604349330413698727553861382100172748889805454588005170892977291791805655129092663976663684979711162444379830452205694058049235494994674799668987833212999117574638495293617407680909573927469265010907885486062084799480765564937726699147352443528337411745359415483109172880585190769482163913866847220187139589659583156884150025918902124835643660967721280533357279646230619552094326619006650855545316340036630142268722012441689079426978020050733850225068528918964445042249536550418385716410963443167691447153952546500474019348307427329331736465815419296579612940356996032640133683481660204197899953523480984015236426480513413647833241657895204484445448514151160992733532340059097992050896679052866927448213634844831176485533015954284423482006226592144623601855281818033011416180960852452090398341413143633195212416266390051463398958356560039121387510663115318239757848081290414589714042537555153953795962974447390766266789754174635147782006244139804254914749494103482713696866447017723236732706491070770327683923215985529259033428470692411823697221622461066808423944769767907412563981443443599768072270798474248676572491225225079999395870287894857874666819121793686194829831122772280912452722095181792164997949231710114338955533235633044032700871462340284751885582797921431227271702874144214116330788726744738046315459130023762020048807321029283913232279640560468549029597395558532774265482802243539795443369739016069918821499805550532833484767738334609314487818265380740825795223500491784385293829453842238160813589671414544246182161781226288068223290438576432720477791831537154269624277887092336353325242390122166847813975743295950878503093325638180785489129838134111343712780346002385576303649071655822176206069818202364425870000095202316776802585693749268367641864843283153230764179415513886747204873909090326052324376286958087910516187536607631494943354310466015959623964480975511176071032801999004197315451637229714853774026341503091144597363934361033000598646789861549015025050650402651334303657900337059163535363594594037867855657321774341232623633549796104518258865250480966085870269834637402734812769006723955397078289278291938084200076733026879471093013687125426216210772287818736073283945971013715839575750064942595398973232640895754467813601058177798195690189597873587158959216895821392296089879619857412834139130451423767571693492770218957793504671418051873576710282295376306505948566617186669279890293213642930532526699253170045643460645225251816312543293258892402819047779273231210425466409356722808856054674276017541650190156297492945147519033455792677017851880274638987941097438082279428725689739849948750252019031723030219444699343125645948241879495634337398740802087932644056039237345209822886812289163063990279012798634464857416268975141144168461939779308587734951345844439042800870868133950408575105144415338900863693742604635121319663562182975026579565189453158731318666550557478391347538121716582298853774821334779195600326561772264362830403123468382878756520811635466649560642341627590688068286880611132868753241142536790603139500484742446351514032912416645252170911286042211624631999367206204016293450203891904496884134821098171925305008141658665859350250867132013660872065896156389812181689999121990289545036976347994886448270841799621578991637444482940822032155586788661759046099942007524844416120123928109230709346910020477780043368721988101725446388850555858118574257969009040626824818726708838843717284812300028369595574290756951004194162141879093268715155162425048578816600988314670395852587024338452182812925287059029100600546123511600937390850294122394910551534715683379644250407845386052236052505372464837454716357270850624297350893636792274699263959512035888747225236579572836111564964264925930592803300096917964388240871960868665380997099183675736054841874912505460099911771797994114705871899579865863575199323975597080105365555530997057199012990000776868977160036432591768606235250143853325097730970605471935781226962873824337870872729063383718100435506532006261345815268337431447445433047209780007040936017071605830645325624248516894781889823150634221514381755722091204728080649814121984547179956208597326236721977186644466278795651087908872405973683570183254602222662528573962893349663700922411707459997629600658680684541333370298513980291709931494786298216029495215697767689281957734137147361220549603621163145003776904527839493882303987439557201669889356343861776008293507032136030726220049324408000246036836883510672927528906502481154062048048486056776439615455987932498320410410114359584866549559795695962975517983978235907935664550087053171430059618959200026656465530863197060632963910819740956516377193002447804308230542291299643423902819322672231883340452879559035897620520839650757883352482500386486671795334570375864852511767381499983781552441733990012272767737558855128363633590791100804158450114418348294713690478350782652552753248771227540392316706785295130171578502658032674375248587845337706035380864190830171294996203470810685981709872836463400639191619471767860810493372371060868804729687060957010632603174048355154517380583984677339480407966848904862408211131924256739044145864729600958265760101026674273560533970419579880980943236313407278043828097685951637096846213273442895417032684172764830176630563829877133726909050487341183316545336344474133717334678906594765008223040322255593648668351853315496029579432430316446893999647997442937619948789299892018194875039377639600679386741275223462588410716411306932251069733722545086510581926501549420792994395472855873168364871515320709841527075194536797138150152774719300849257965901428185137969462986702278269963679078203275787071407511266603228419131077448047662084095793070949201230676026395569654650220103314691900307881503331574904226527350886406764815548309973211330951741137517521805313698966217591893746602994759938954200391402088585224273812413805477558974587418564848895287804778588504005912617651748398835507980671788409323912532651706388682800970778131859509567017979618196056474481057703234814310312165336072428226933701689655479866222651755483263122472916930897854686654789472723400469672442230689705774261956563359872489169576226332039453127763130229432152718389871978189844965897556030120572558573387366902439115075837171999298935950564002059563619795218996982672380084051169706143496418206743662138673667490012839778290501993785886139957476967145027587537267078079186516388508888330201003286312505555453664075221567459478600279988305792228323291127527802182401470932301904364017388762360853073755943987792813125351394364818096203026786857107224350135797423624702854010481824292305959660131032902104695768612762229817213642018120782452561254831911795290360390598058046606106261625128087261249191707842445412693312715866936386714074795354758853568223760470820840412934056051033865789759470200330872045093074120295915645358660529947384618982956594985152331623246892435403048041834861641294693058278493394224596153781154750285705176677325997387784057801386808973809158704023876850861571788974458450883857248799890819595509778048599559357399086714661236112833975541457694265105243545156663372257100826477644917417042884888877580071733328577660206990529484102561799245566204188240342482144973791168555865975222679277054046796230902949416754771048384791986327100654504293917246103952549429265873602193581346202372939807684894498957935767345634186377602542563866439170485949915071603490941595468956335870870563501532538558606360585572203477717533675389924089809106762697612626171269936769715592160094980384868971106238500631980457641614944047577471307083165633412534431287218481918704079571487830512228292197502702947781669294838476421255161052302859053376049107990147929171926353052181363258996151555838533719008719718647447900915302275498190947189227319702430398632878328931978583348687848979442264755237665351591315935476933355497987187195273920353415040544192594247747644171897546396116399193235336992376656587075790417749686889911248197891987314675210566947605964762058058383768875924198320501823844497264933129882527729308866635422731141540609069810630863255650200058552646260052482153665142824692437042284138658012530353224827779744117797043673762627605257420628076175737461038317401395999391763127676668044264185390937560067858189081344617583589718051102865476813807620161569238996732789842791403897750244078138953105208261976046684140623128585390155724308202520257697322818780199676788299976462348282876140628886614054371901898488613704681406841352879502218662215761558489546386039068936492132902642653454233010363854092998219183713227490447741916434203238308596313471587609571233506118930266129971380980770549842989294819387486684761110430012704766699462055347612306689165860023892544332195674864600102768961213773958486300501255081668793256534012362177223479654197380228283980179265886003476904901884694771553814520679719001896163588741367432766001170539838405990465352220676539923711525934534546575296913586445018465466960151071799857058071815386183515061411607410310137803703600601868660356063422642147692669603658174007270535138878617447743723307942827708725593366597248325927267732917804877263119308309195451763133942199253479313648940293461006803523280491216428349540089940883541395302994136865648732569187217021989890331407952460140882977731452626025411112401251641253470903787041389293671084112666495301967733243633455391169336442692069684260412138946616642628098742903626208334977602964852426595934532452036292037348117600795799300322292086635702858864211818375402136102700583481224131388202846495147475370147807190647662277849879869304251598174542797209340572794508539678493418471962943736189500997503690385508772668573916712194239775964843933249926002386817736690775440017218717234101559998401535925065103503595314123823674798763441893999405017980217086144897790343430543566292226679148065397677397713568813680876658423134654095353317358998193717978364359200526484230052499205521705681738383254937828039712788494680441176409848190933121005452826156173145172099713495390371077255562540149385930987001415696513930408212294499721973226030075052219588527741434939035855347767547432487092730299001340127284074413122018705517017702210512323486166474698976475958417294794238433638515165417693253052494161964839660875195323215719904110939431676968620816429213077382738263654608710467965950466243193008647430353330224724361323300644805542304943611986865441982811564380353657830027423499913473057041514129408841248625766264933531009903405564497217023372808811240166649280935711135730496515879744612828990567178178107933002759499608767344047473710278369263583356879515740170694447918509926615925659273631079764475941356578475109340471656769968916150538415484682010991564803729069351305210207297572705305650900465818458717839559466385799597390201237427752977537787066248034424355055412897308375078973347756008965322779783772211170025765554979610946728473744013523809399985405152080233883300441660550636399718154106508114107852694614361479931220765746102354162840338773156400791529637404717023651163992008656002607563568549070173273020482899776760153792777259755647227046077303012629580570264941118756330762308012483313295375059326422728694622363200504274887128510729853711374839728445698646051720124394984100332286750896232337129305337549439867818845053216690459382999863815712405512101424388920782589244470202414877502699313790824432852413159910240550910625144092595782559305210089727169892776238236053068466228584509202069372173756987618604383067794734450009913201378099033620322124743138737776631058636346625842352772382004014971078110944447747128974140544734881806378537056091718690268358559705889467745715142702656801783688715538060639872633789941374404499018314873813620710889822967749761823280088020615047573364670334821581948215291206190167291455956026689961781846257233949524024687032747258559977357682887846753377772820155211971324763143665507367022341575187115816709583946383732950710222503714422535793667503739211315227498444691638385692267998737062701833450721995160522145744771329725153440708936039335437751571397216726171074949949513606755941443716004128451014259457929980735688500835576454805281751996864228766432555483732453023776018854821700827368201478906820594235930644760964139658359815587722858909181603377751440112344227380232123129138046705079622065944670216815472914250328552708582014152614311521814730275220040117241264320155191800085784082403652327258257877972905805704672310573613908959412365335173927907157638510399674013407411955254920863333025146597554166667851704705661067510303413281212682307951334607370335364303535605921249514187178153565317042301712755772355008469681818284397950406036994212754226258250378908598846909812460037842770718592646981740800110155203140390460223008144505009287008082783620448115909296947377381531716183075621811850169703569251224562627111705341251453239338157127451724659780654128258798963598845505045758554723424555241843714164752013323365199093022819795356605837288945615691025799885669646403718706581415067844752624080268027581143145696208748135756181026472410013211849840143638035000300253622645438891479251309478174422759440866999309767917080109426051239097117960564962719716450685025304457175491372751275687238333069051583270867315024782464095249958581526273931263680722780490563333625532541653222289671498847318135643014371287851078220463458796381540548421265079127817846536882742187867722449861639652075149289908847368806414308911791351022590513061587422643392788757318416915921896760076383470431684486514222649745424214617078465139688996646484875870500842363268282986436507888290924250737128256661470913114292621208695935187281949012613727542661996523858791555212515309710832419603900027996211488526310465320887667630037779953669127499490053584284676125041105117526976955945372118568511522720411020580680792477822856497849084753704807263312657233370164453427877371425277022020394293469118677323710025355946940088855637676261060251476743776512862485554796735762973912727634698267639246383163175118248075574802504273830795607072718166345548952142232731801014397478742769018883638125245976053675268272224196859251942624627984873619228723816446097310731632302360649284938607810949489115467623201330155815565988540014693936792909922256606344582849793273524692891005539555411030769277431296108470334684727726342885174781678959678586379031797320696187218608426924653101164606974282241282013646136773971809640008560861779194956940517776846788065047331542709487976467554470691557469259174536714185473398647183213747549497216979252027992581588798037066385267120041794683146072901899758816807155393955532870578362301353390037319447083644732309195315191723901658938413063255629792618795348866423343010943978527373432528053969702808809834265237631713050230016163785893564589327807371660212973551255732085243525345647070058597268171023847130217629069848977635399369610842523125169059970022067586983160925357785095925233772201396419044553764372066726745940219176233766060522931407019991213310687877270124618948569783663088016822015896211803378714387460292222241231188548773168060690199761318254580050010694490826382567713656054023177462443908092851178846393720241804666534137813500257955908372725276654574573738373387251007746890832222112008478223761585843185528756499223389925942569599626895748540177160649904497279485191427774947574454175870591939982443452720285741851805926164355545879067475528185844066844976031569639801286474375116017052538814428900439694505850876235434042213083027849535313942805653830098164233330256368752256980620079896770942749248761097346672730458043683052263706427098432974162383898256306246404376593974625366939998267833788353972476158149235071612767263900515786673007912076451058617470051938956744079549267335795251698526199757043762473212544299886790393753643132978230420213484396038085428576165604788132647618203096271404907216444136320956651155664209459143292793998653540040171424532834022534685345979161809313099601105545752722807561070859860144104172731806501867316415575492654287512787467729193728344490016560143227052187843697944431431083159667834060609255171021299671787019012447588589224761600865884317232857976211700954883964328517527584175476725714973897036545315962905292159308724653583418035505910937295783821556323440661933265491574416634318603391917033655819250614340690615888250747197230044675348206832698608917784294993775699415270359618828964692818915005436855999017681709446245727105583338295746439118606943654404529181706523908414192852668567528167980855029564177097307226788043492566398771161096920792924320831674279120719937827803052092125626902409295330213743181010728726506948973180693720690748836202997354355275553360316667416111894592856893211379460525713438657744912265818786824636620067669436870015321665132459628934116463979906057573349394986205417865049755334423436902707828486100508072254401886543074636871204919335431488163345603102010766977415069753035205890258810050332640276727181530642722544521385127548478257226331382763396948487196188013162958816537442063962033282563714338514356100181934367911799635367980115221379951671486979668408539636857691851131049076294684308134881279948218783643587012837516777839882834909297318908775333175762319947275985818116712316602961169196614395597521823094010504783929704394931193423278337432415127668006312581210593891182589834459216251939413837104353963785106759513569695745725554955535731533952351632757334292332307235869021750709639759119101918923795262955593268701909010307917327983995336488354611602530586516873334863224571352951190727010774540704222313099819374550617707838554489573823629496703528518948876928912655915244571709148931606037152782836548564364932662861880847867516186533899679650294527002228477155032751474643737911094711621587573346296043084677909452609714256761749705643193438257965872229445466422499667416963701036582578644691670717207380067696085912038513431912852238923840162820590183739172546036700882746199608128771691839828787656054855821939643198338151799802905548671969223895003172774201306791963431849923602982272162030359838475161786375211311467016145089197253016793487962263710808577822176634997696039198880907267538415021835194173889646315029452538305876128183326347480290031281267874228241853716346498213034653105932073343046356311902836024747828964988916822610772247812871727913223992874735188266286175235006634016068751627791688375334719366443836934283894977455083736641279797511223814107025363123716070624789905573108641009250097830549347479358232542712952239507399607808518104621628833837543851641669481414144638831163922395052134922900230889165225310760336729265104984811437790729255308038304889952772689105002668207382469476134254936232729277779578787716649266041207545915600180560910524680141628821157870243190071276401288163367168227162074792052207693583846607796400405038351051616060226494694042378469558637623755389493222372704940451960300251814839332445751434781870943405176829415614803666097015175510426845525355762043873591106761945977860378295388954616502039779905559058960040926067986883548562646334716432929670543991953322101455632585396379545809822389593074221008285518549939836521108419774022474430223044238520456353402060368728223185857687515642882171440208920462179881159476803048041105483391074991882583162107404786107507966402373517687918799333364421678034743979932906397755187183827100818043978933882126570216630058958481437172768570489878142564015321608484865742717195269904523312594125250063737206236968292228582810306158269839305059927681038264660506144890977775430080547063853285245344647839639198859297222745568009675438757810677490864782746055725445023098285879743231688071479539713832475312174896590778347844276691799041612066948623932720594447009369060125804732386277031990269202568372453295184097325492900546351775655461987449450962771728902541802496620570518387328851815857677692063663066112441941678061103344084746181771844949094347943793512230644651390124651100219088367411643766889023440217984115430019132164718422714983633004572830005351464901759618160429045502869091975636817299696092612066778192657606790577612631070241323503502764859937242459371047452620923316734415812632979624037688492811443467069524404384478679011132615919915207234445921380855765656597329555650812346634270298499365024257871693558658767769196287474303052766961441919089473771264987947085484541797572444548656483974379194781600778421652578764109632558577572072446154704146164486616426657554384262974087991846267089901140200792101668334938106514283416251541852270070436177332958854898963847659068302354618546995185223047573743753380272727168620342568336072440514315441907543613386940345581045599652111154262146264793944881799989506698579807580267874641743007032442888054039046144767943462396130029447258944862823810809779253512759233868736062947222016298564895832002150988239908513244021001805857762664340470698589342562683215078679381567053491730672407794561067506265789684807107605017954444281727794860869426969207476686697149693109108854489733038179934803524481263439432132252026520742007959021446893013278130609367643973797010810977667421151659659321614471455231121037041430613906520254516826935787454672862196083443604225218805969610642804092351635363409042668542593179463743583818597118495587847859168196595253048897275893443286346653617915089976342445591433959597396708878474092710725044552899298914782341093577746565514687757484195491452482554028284640713241530778475118462035648526871969976673839040923241452913211374753284292298326201418757133375699915136025394341157444871971086807605834028564409092504089822466743434598792902178538114874239847359894376210148502752882604347123643779680761977040313498237041801098380670316266665482153260566276739731454654435634201272840924535376071591416801817149258530713513941028038119779772877854987167412257605969079257238274350364712905293893661595392946898472016892261611191780329690791504455579797246623848410147554148321882116211214564844964496902964352654784639610427771103873118743793404424670957554635622998148614750730900578352736466367116407122266783281129159034054881900598358562907205626665405308501898828596834440488183158820687477613914905532786094963369018435190545428841237994723500130491419867486873563032826696677945429035704464986445290403616351694399920582178287936235918655197941366932847528775864558867485449278824379149087263342161500741676595824487742977223438809987680377785785166338516153416936337725475719242041813308553923895177480053173170599673018666390630765712679297962508015322324593572733532270812787153919714843706702720498462721595618213722085982939840416971050338409502215199192043921346310628500153605065829848963276796666160724138464423246305510634602329008178547444421483405159481412126161084322583280614958594656745564155649184393479172335403670338537958944701560320899814821347237211355418532190158689906011264585486771331685775985031178806639494598727925510645480533862546411782156533354894251804819508897133227197904140837018954082523032160800411808675009697731098880331921041747367078774693947300298582553783979287394761718086455690352852278963327067115922861884709141965660014339349358884929297398541172032227658740542672999196219416755969847364644777808742622116130895646549331987086536527391211244049803449593011480839290479187714637552610735870093129823677249167995781648856334274767364673431231870924777771309664553398328200218189434164311444681709686996210052552648929908948763350833067859922786453502332456044757772338287535059940186092446894265031101043032870691385883651352836967690667529507331771778151501058551641820911940901850868515051348698317965385463370837748530324100607467895656939465777484297416053223033214940262092987802503924547147915411247208975378823424255024836963412454567839085243935019771986620491999507103969045287572498609023807805427748521877223856825510606348032309929806601072833208633974770947929012265631809088650172898194053114055099216066979604268871964573809403471090049610591096190812841460235941936748386602698516676478682160660682831309294518689686106954941097114538207078269660226196087493831787500069742672480845591469597882532707600534337815224516309204752441490601886212388546116022350094938283150915287314396167814132159694980772619608258063624883006045732175981017668821892974112225136581314659499996896939220662917935952418612765660153609354156502170034186587303902871592011216053291698407944790846293230448083612089696817410976521424301494780023421980375807336307005070611419394947713082260056818355257810586925877689690640817401818377766003195124027085011394966228674127353256424511944859102785678800078583002445869417267867635884162312518039828214681411530317510336105766087071774434374415108868344910251241674778695348713444201845339900874398314893617859934609912058801726338810169038741427771500076828683335393906742804257741379516141364966041458598201894605917238458850009118826685579107533908522014755822338615368728390858094765462693129156116125507980098925153883553084101365418567660065293395360854623212218514401298013015824837966953058320385159955655208884934408363650664804125502326408623073918481053280395309573228332935239241868699524679513564007032166655870257829534780983263837870552311951813811470137418436570144415433734923052978183928289280715306586291805592895215152378614509013898667292019337199084614343163881494107388523997658617719024153433458307416025008651585012575007839492888864991014635694477834601757506720358473806882686026746003828283028133934237142207556582792731340650885275079438786227888498549853924614227317889628597086091287418194297754835804649999630362064072860003287722500189745063112567166945313102331075024471763677148704519029793340971848095164672329686337006036618564940706434965486797123421515840726638447055444687054545931664166844231825815701693501240998317168980110451821192887308988087484223603614016714324098472799291889931529907290391464407146112621767449912773090280804545437642763927709526894650972180460812734586891218975101575039884791411961439923765889806059397173370492205952578319180267360015335116730590523922451032698257466406167011655337499335212267388171589220282273613416650538424558959291433141744180190489613478881990696482556263762946124889356124006859952493896703890969538094193418146031838845800790541149611456532090527082138506082026336428210681955891360937320728454372630368634469884313287635966066700900668527499963111805363754417593628697171481334380648529255793932358095818604729082167085159463012558809347870912914321747864107174798570536781392329208973985464989377358640127512653035801398993844054390207241527062466685820924103540380056116877870676444650430456464065464031886104048953921240526800007127069395887127473664780998907931404924745878176848513391233106214277040880027066250057463090175114830859999925920919661693934547486759604175769434304736434540281858178254651049300282801071277965585445441987429989599559981114585651760001881588405710876394285376506879632662540316152736113226042863583305828352894262734333169949154631736080351125977420446242134180642506715913437415141270593355519691176634983263648675761389423235715033204027398055067526112000017115051138242039255350004138312615258801745032278470309477410261950077398346002742152638116127890082896878396311929490805346710867365060284087647225476260880645284515338480110030891546430073867875887195265398236052570208803233911406052891447749405990717490148893402242426819041556414277539785755918574050352127889479577182504031554619596597304312670114290946858885749522794254374347187891929028742742917787964395860970500058346911142205464779391095691318581418689916518914121182018640829610095534002991496291743518704781963945183465866611130885049858842697834910460062919231532190921819250610301563662244097671669624872039645488945498372399468018818406899588728093599925288313287289303356536960886880075459254081158403736246674559356590396021158756478130989905835234899655415843892513637522168130642765140764360310563956707993216532530414791094606795790058609472243068341132990217463915090145742322361104983794686672333185558593748660536917888463629949262480138738791592582624650130042992629509158254087225279898463085064798501217390241940131591918297289583841462413776928477612833441679864567289552134664221283866967779101431560135533318355892676582055334911626103218179287730540082591095696535483009485912414329754964717387533287688656194591218091581702911129495211082099162513094915567838278586248988527816299178601519457793214994266661325639143351454600570271859097845028913012024853051207380764303635516948356961627683802539123102530010001045211675560719178315165850862672880647011496611785959679875246904662270866650702770106108429370992191978731898805777232171196370481024303350154717616352027113131588685781850924101335885838297769365376394452809388218828740631722796584958845191268513271693464328693683301839990412023298811643235924684403262318387408576480084866386273625420801414776589470847869712964482622729397285868161004651487300300323990965510402512386655290587993034373073333097967285875320120237133072230470129783934123190053084601494329189463741188971378670998730733984978090166910903269484614703179929231507622180300880452177788487448378186329171409602472945644613915437047131925674065533311619852163248193521094583183918465474635692429337272175306338758099184724160142937621254412851407603424486259713976001589965352213524935338418787806034031751738915343854536253097249926731372572808624449582050570600531960282983773468640864928867929859144538209095175037927756162081288987590491414807087477818425441909913838415003602993624644303689934201335823148321436921171787653762469108415678475917443727995790477168150710568460373870454721703563921625099767031352039352203310830141063367103933041086600486843177017641423073874858522118136469233395609289958624003881878148864806098339066769955224256043054270121227397890749661139162269291205299719910017691009301536230974076452725863018386932578798599558108508620901846147913799148903336995270873764740337838421101950987942275127288548608891101882093071334392696346169109771592222425128943644071855457080364553081711605108649415733640055460584098329043150603257591562879551619230721063969574668253561941030934460976313990664816025866295615072832408157179637693890845069917680678557112486372823534958835014609836558934886939507059774752604858710955256294754965890356155057600513735245847265016490557671107039834534825293520513124726809141924361689820053154297621892661918081047002955943344045204363687154239855404779931756013424986300516952722177166141851514073989269269939123595505414752199144514068102605374395718156281581980059151164484854095879270839542705881203455690763404715960042878602036411593320284063013208638644688954585548309922995072536761823496865952800717657365790587173192838317154998034944595702068943628448770885556065447261061001045666136318635783571575767798875743055760702117273790683819212686823592648129498927820869627146242087591032295962655565002097205168108499851952832363287442027771189054165196598183577469674161215370051120213568213025809525477204193026809456369947742825098271254775124646998076660264410367047363958072258653782560418015343535768050733719450606138724488390645887424273944179530058341554424817447202146365663952027460355932037360184806676802762973939937263918402843549448713027641417199636978847249820864842218999213307300371706752438534267883886136911349072417684201644633976748017497532177318920280926712247298302256507317165564135995937618670218987807793005022902335141466849614831920882685035664467081481476742616363224039107145418906405899251008513586011497976328942926026710335185105206439976359780807688473875358695539708735779736689414636190007370657513156860581141674335786457569976835540277222062009105341333222542260342608184800992732646008878997030998947006583871690311843226772505976835711452396612767669904904436673653206724729110774322867105059677689402800610830308782118290933077920669916365616490058256621410280730652057087117121195877811749442458267993813461684479399972451592183686956560499428163210287366361950948276846957068170545790190717673777662373021863113122023243752710845979110179933717262829607464512380599940828545914228827944302140921612728587948805568279253322046342241049497423406158713139281010841789317741542145269210633997769155600917845917085854424674345200273054435373710520475881727633813538397396217541747279702822652057842537527039341747189684773010536380182152615951776469191864029779695400691008997010837936793931052345422064805118194205009110438647580289853694092720314467471144545221043843916443364378458437293821547252317376140308551335567681851617412115793569876122409354210372272712311905320998468030150027029085776633200516950736380575084147044513975743306666342220063489738177912310577138461107945312108255344823699300960148007316611488317485300643689495928306492460944474891694890158566246852621288340206978578886650104921792062309536565276147609648343222403201965388854889944754285558575414109684063428783109509733333680043351994006081846227919752579083679596026919877711756301321884850209698834956663040447316043632708969906610179481543806982019004323191011320296209246906099593539606146918127907560968436354424016581742477640678202076316603753718427460209715440584843330645363882995999669804656896867154784128643278241998532294446739424429692362870905493029285371779595714560168734602087673843535641755205780083638771195885445967583666512894220788530506332052912032314319004725302755819833351834124114187949777593030954941245944479562748358412195432894161835868115054804585859260600210561315372128141446550953721194731850844467427681982824208789985967890339835796560321045808798223396659454869243243767951640699026551278258163968013708010756978765554882513401626648366515247503911814173548765697275494236736062761359155647479930704825754408883695464533778244175794192842846988150551522564791371323910592616202039988423570221412712787916606041089393853891690595091437290162411078061424652389386428148858193507577719122728166901458745144448081737841856887590415865556492135829929646531535478559017775929402993228937720052244881117829614099833683533015375797859753916738778480869813386906514104884530307191588239893315353662066655000605359561021344961366230800431341666721503924449544951478355113280903075833533055464470333353135844052316979404169028219921541376961538481563839344418962036260905875075460570328072632672272247361022482730103613405497152516791462516906477633683220961825520582052963206315581311507113181110408357440277675758024244623515031831439660314493733479378414802956896881441139812636016522912216069033968023730960857344210723117729875051230479952517314350117820954633106371380153494414237513724558316992088547725449520074972685643562645767767272863177442038366612561607265106607652066025517938046336107796936104435201971683944398787377925448685409963958931583323137216532715681317547733954349469178666215062696333247141967195316090774869573210412470904482650055256497286728941824163359958191843597072820308961953892065377480565221904706974653843054365470926813678989947620109118129895435614365001953045494498159497389208945440881284243140084212466800206202023222912483305213269288420036450602694426245862771327352257803828583009426226418990386697888643680536374437622909173154537306216332668877189472999540507876955960300787058152181477905205497845323089777870757769680913494619734612930728683073430761295780970975569872558490245258994141287907876779546449790064655568667624046977609309379156392092568667877289289076737199344899849841305698298899423086109619323059411163232546693729964762886776927504216586448611595970683306550290666256372115018320504307162199765590861304592962927132537587818842190060553907013450319518429744995221309033055341152082573404157126509014500045670840519521530250485853067239458556660202700644612908222468788395839748761611487408518651610222102599866457562084175528792043938312646769362159439381650767114486710816853390033582633025045601942030185128989567976829764474632903511244960965946152850661365733244168341821655582095785402746022583345391235379831082276092481678823863430632485371860853883388130882349973771999361743078927061858572151889758928879409676581026146960948208217911512324089198885941861700694911405792351560316870082082624811430771272807006850242355696175333208561551121173571475796220184798849717840705752111831166184432866375831694445526451824549372513508507548317552939059990606298014935349474231797272774369314243462830647184701404491744312581194681097128796621498739239319920930207250439126091406406673888536577947503641578785206717381802716642819598761801542748529868556535485416481622887771272091643127697932981782427766273817169098699418467257327797565553647832014204050091080945835947562796336058844248012684936612632755638728628604985511926312861463696402798397402920094651381137016751102787719604842560424738478289608075562829014872382523099653672990072853352184049442414208604670426934608785955341844699475362982769158973232581185986550784670291420126327125245684188263612793989438185952007553012399173167116157198135264997752429219014207832330553378912543524293653831237251091182650224824558553304588343736882370868242707097727016532212667951841272175593878332335279810108423211859205135696779354926804941074256976337226517945936688925111239150322279768082456729646523826597892070631781706745439029346809614506443274490924022103097637668551296190435762328314022786266594891041190378912151994020773273770967790859398324609577718204833420667800319260249988157867203795385172271835633536661718654965245586726503320704968552984894589078111624801678582892061741239228495639193840827314158705641814205329173360890524868871981554006942496412300977529699368753970633344591061782326768945224940336790817070956039109396308989164755001223465485615879581104646730650254803556381766683921218105765274844504721808208308480908971652521973294135812068067624864218444257776106767043047456725988028066179860866857359679427261016285704774273731563618490676058197951937416007479148422434931215839502668732420796153922201804343321334768528280236200713397524332824220067343990855072548728711970466906571104211616841905712421777806905154603697494758877317022222594192123263751875924655550466724629803319287078212532734603074709836919281798405758032126638887654184975631162324075610322308444738774625666513577766601496299915004925390298473799335359136975462443620351598945695413841764091224925807329084796785216109249512660062159114831658926659282066721233274937092298089443709710753957285048549443214845253780992235932244122352846390845798397560318021067396962817623491365520766150856634788072938359365843295905417445539634063409410902088193864294580131907421393477588279093493191502303427392071256761944080678262781980642620652657579826754671426785789984431030998403348637453945693115643142103588320674801923991683628424535590921023124553531874336148664771966941672637189511967613764700499332645409798891184286345773927367898346041705345056141735110528314105830058077465475257765977545572936552672288093054766457913425569088043356250846421785965601524761176913641893805921561393623237235141375342755873616835691494707941412760637533578099278519289878080599460964847820910690935619784458464280125520186874133906629514232871870644591782525747657729059333864518741525806755932527524746553977824667078581972109126026683487860767648823165200379550551502512033737033945732898279442842345520004618492613173631523418769359149962448056699519835263016034278657388119998565136434208402700175621520240261059478939023616240197406395932263492314199353576723135205630282679669776727578626643919111816268705446375005986580885461072451859378022791838070580895727195128893464352551712381860378975226505570158810666241434490960008561477979907694166726684304827038695073788584439159082335292402045570113220837138118651054124083274575410560386206545618040815360939540568424019774665166775044948059500272919171977869528905382430675057739888600331859649725040479633265343046918574056231527839912808063882584496395058949497678195448815504287362350958553161397121764669269215288050113528394656885437504114324501607112054503572392256504313298593241673112769205612623547862483534806812666954106910075247536409742525898494300622799390058500440774356642255302623244819852896934315009909869543362669533651163573728190304796633713157655882684518220848912280881549192126398629438644336276852082081081673685788215020481068001433515018927409150417523714128154398091497044346038909816274107135503080066155556348644816060477007435765596326750475267285232221374269303049264843452633929775159540823796062052599297659636038945533696621733953426803658748338322960898175252007448295635751263041290045913182145999060444334743307461602258498788891703360713529100737634098455079926450303605654294957977475647529252538179126514503937142375547396442233568555806995231289161854726920448375045554138858065700059286179459859013274033947264158657514595039080396752705029438576819372507666281504612243773861913705721920905318120183532591649888539000403267770548838072129022710168289044047705535912356202122485985955557505896352329127892671837753436131956335045603812470046951225295272961636940379721360917094945000697425000425369990459029669006887684417576291102597583546657888722835098887460140766304192867737134428177606524626251754561724868084757630589707537674306052568260872981866731284047671027417487491145647088596812580317054741891004672082931726373801499472043796149356358963696479676943776171458266995141749348590883835386804298105366232050961056358316949920257192153487379220920081890568183504253258258513385179856205348174589452205733392417625105874799853413382824552305758008205927008587746654387821821936205072133909593223804807049676229350510809145622592205058684914211077111898529865166936573626149651926159921121080504925792499851554096200922475844415694859642495350461880338197670261744778902510380993858141714513285929059860468740853887341731913552245881565341359245972856517820185067474330031492972210210032161693890330676578371697728523823946524675728986384671427896607595267163862572085530426729910019816145419159233073824196292385021074385166496225408224567442047187328108588966601609074407383899877376796067868838053110785207505359523671189799855251814230075354498884381241469151756326522749546466027624472800488469364105847104173501061153990501036841499759086489923457929747816682661492271532255763700161256502515133844385145723540719485167062295782335913581352936161900536782440451471932181132350018376708236590182214437616241382563128964933423750878607295597367752313565144494435730250551798159469710257630060152026037312609878327046635645288404567704193232314160889818808584520434592783133078165524697771716294585579966701099234172182718290083040917836634610747009713701395683074168735137198984284934291411299602600491418037135413967036500303925029297396535843466393388464771693540160374612605273416127756250228320862358166443913120858554266399266178153414224201922316669356644426685160644765497862683673284249929365420297158480118582926531152178472238067138988184268698650720445269630257828653786685211708233220074097073934326766390273470772325703799660099007310878999569787506448808035453522648608290664675014800853833759322119830008702417166614146421525042780249695215494063970857583735049845782075510804923022660122107292343871305021973007660667990000517246842111078235104174329455414459211577712136511776536072238117039444680295395701098989444681617840084753086367095052514941859217313542490568003481012123542825519977474352065276545069372303374774649715244778495289134873720046996360387566289607464037261782243853571262716123761230580391554645127669922956898726228962402129066237978789584116152874917351472535581441108440699263163776366356008824811729155527592668200457391403143834981824320321368297035644869087937189028925210111511598328012019553725321364189120397735900368595393555209891573996666354901247659527510354758267286496460203201017864512904478779143179105198844489108928872557283619027328602453691011625075778386999854788133413267064828641739507663929012217613769530353683375650566612896673038572447557621355940081592948683451783002160219952974705183887675726939068328002737130536514544243367044050994637056927430221216834636438250108704403328880575522076954411003666840699417245905956905828836599435316083479758552138850855878987552235302367546353134989932572320262564746639140471709887985565859239576142720178250458070300046625825490329803213191553003058942363110813946258160847034513905024615817356900065271006163687574636406634842067986394932937120186008220579203760447167042043762851561092005779557421104063431018312632434643688099364292302435464410867656172551138590236584696997433036784527640479766625291297758684784028803666408637902718994184424402304713456080319363305486623554007243189385174550957781071210311241603978282046262507261571472255878719995774673205597998935936444968014152021052129107691108578833302430894774716414973249901880461720825139975449956220942409772119401190665946987974833630767737372302313843915658737290611135517370664825928533051184877772179876292633438355052519167785978224304460321731815641004952688978986353596184114962274821525669023329938484457597989803977183786937107521131946169793868197254758281806432154404646439075288034203811591634807457891255353635717359170535055260509867817028495140118489518422512987160091912054593300037267595490337853882588910262637784511187288854027441353011047864090930944642763479614973705980917051811667014255645544363216647081533895421465501480314872365503566402094583260341809324966018176233866064369847390937671937483042393612642962992169181997110670527667412821460108769208170941530072716982006360540765197730894784935871696517510912761265312357483441914014277250921991501055009859861151403015905053454234233479995102848651090865075377390443232716842492672510016699301743821625575598072805518344018338204322730125472733919831518144780910449446714780300462074436296150648159648838602522134470052016278311286351745065878296095139899454726245635255221184429923345001372137758746220879087316714674695631462668881888247902940293712515087058805170642424026816818352930024966994773677879464406730216265041267133494381526598943086628306645029700740117268729182825940321500162880714582456823980496824351832438867376711502971382291111277994442783759110727800997826579987703503765094640813559859368299779525989329130532256594182336074814913587271496053816571457904886744556239548464103775917112407637766770797116725632840260607596185447317055941317727287402072397501887378588790727186554976326485256495151814546742320500824792081958056374257415761972426293152220135807081581476923245960794587097607230743740259395016449828032611973598467808432023704721251710696749784541578129164285456908565659522941832455796805144596308176070662158751944279396528326592774696836215970290133935091446461477134810940204120133538696799292657188622215649714708759842233532482785547782475147733293364219884119511933823473846821962450912933844344396781312754528277436180083612391175932935317974552951155133150118242055941173075201897042423227142418125171191592661509443078954213687130347914205135375337706165186400005020795574766093388111047855102664246258853260471761924571051086584570981707829964847337618508763253012916731889476048466525705736019174422338878969441974780533790381192863880806583818997895282003832737368133666735926616331805967325391205670672987549966167813812859674615306071152827691947871107125362524657737598592753685204418478018358482778155424187280829649260272869637244199382888803970568364258096277932382040194277373490389318394009005662775937940828822693546688400974259412660130415404301988594850260533139846072652849883059490059795847264225492654172381241041728934258489258399437897871582787515812907557512953045116861190097117485149537098703590828296184012950628026987295194266127685648211112844202364893955520616527950372751114155358015114837584827440669444612184477799094187044454421596853779387838952297321756494200858152372862419426191910429430665475888429580726155762159189473969681350495529210199336317670142469598143383604246065612859096609762766291455527541124693895519633452157166795150520010935315390395073457849934344651290103490149621858103165230211636550135084665854737466600316092945952222818019709508239434173294321995791312304507017009184228727747238454821396248038606955156852972640832745762398591678533118747363257754153829816579100145091347863807212332531196592966762354140238957580738309980791400876736363067258321894811058329485305501576020646407195939376466524967337578719284043270934758739468712814560520662799303168749616404230076350938847964887230165633353941392183996820972223051276982126921654417058289934679295466490188482353077199943264724089693146121437564115582638917054133606556780247137292021083831703496796073047761817856551398032698346496609784592024599050195068735495970172448150212606568207091621361701222513917547826864826485314628960077877809199744139880996904643095441189078480946059499615311538321424883109851887792959350568227431167543323862341626635475956168943863841583650074002876815940453597194885552582172953037412176345910734236915177801020583683011854753399565473885689496813661108028547557097488579957030044831788767107315285393981264371599103033507540232209863598740819250508016245084041227836319747700417697896521441403993574338902697321744231570150402793521261395946451686862459966696921625581020653331580506276986628688343683177226858835836747035125236448712021934410722349531718454585321440582931055193331265244613851016462639646445809221422225048346066172661864425504402375722999572776729629008695059366263231276544153826289355306628025744548006331471318427878642295168877473329509331401416656842108181972948259305435333625578394991587685544292174813773245577043650756065629258996238900263177095592845604405286470037840183625177142457362607142012260414342997309365783456878736920773483080300571243452875482575579580880359567284982810656931173950772310736504853595759211192226462930516694635850223524169363079085480803713387098934751036328946358064548521460670572234980651921289625532029361324638340721269429637704934528656697854960634236114875621790393332466719438580572386202442884070360868785630992709279817568805227616554935324633878680990955590374454122998125667385296193790960019647807641600558028521553101595958385536611894173877124583353813583622249323005463601975352785846725606733494376690518588406745405453003486785231196060596252862783483171882154045058047600745182619111461215871744162147434174793953393396402285725724764466225044606428627639699412493176117951781152682631148577690322405163489056161731436336159518797076614057759705103316078295092667590875374617301534066960215518378924013763760307085506610241430239579142303564603421306065316306516970086924984273374538779656740417890083547943682791159838061970282818917678561455471422991139237998639113287773203212706366820245876068346616807643037140014518938307328500971483938894929443581476597959668712799565389087254370710390839326606251985693116217476904444202662020868112727668989213587731840964912755315224989687111827109190423846650366892786102930631930142439207419306303627234109058516224523637997552779889394874157087588488782008763738396419395630508568343153388924008830308129188791752219240959423973336502621079552242914377055741427565777715063664009860358748695898424830492056680214110041334902425661538989632431060830967303095603961875749920351015454219636380122531139466789265980962099046777538445403906590444422437463247698258938725339350071628117589311093631326228787342276819610126029046894022366368859293490621607127087892478549323438041495288360846835237845354363244397198434824803716499494453564347785292408981569921532796939603186959908818417937088555117258924649309496886893983258265838839454794761169865054477673820783640980083959559355946313363749775943295480952789973001758343160043368730660654847817749985857363313045547036234931310794785116826211371754986609092956449249527114647814080893998380649430553550913524547117488045000452401024664422322996537069561984775141105499168777171958084629280803898553021540735412186832136237174742317806643855592165081864691743050798287973878975957375769185428524536369451675061752511984271661925881743268239568344146747100288108706008917474878485801321072251363870098158262486074635548559591812133751040399887770253472326282121844881304196547756041076976283170092695412976613375199901183584551472387375798021964968515916001481439224553245748855778473186445367615311551585244775337017514550116020185711861834912961604029867315250924082193057423992170887024649643561589052411000854474405613200289190913988590565896381902870633284422565913678259231884218080862142268652831538421608501463936519653293454289373489539564911871061639816432840909294297816943554942143633106927372602497777361903886409445867442446081319952679034638094093179489507410651282357338792860170490676948578337396569331461372796102492070505365281490911657104278864442225784145635722398517044455776337694373504308635313668064499780693805000758974855117666229630729168419436361680689074983068726795901408255811311577514319026370749440598501866065320456973961636431421641393424318382519396322479510423448223457898209946359510513115833213264592810224167186921735967416816707208475106222170487567800629576589487466621614486788710992876656847927181461544600690462264481623168548691866619952907742522220561587334717443961434286787444160714319889667327312526794822702689964928498068924988078846700055381386443212158859603433811371896521100404423941055600861170239149449167755753716599128878332880008359142456513698951416130176520273336531233921590004068124544081085383796689794515511989021246443439814861086527176361502437679899468034076965468614784859912938003818602639724638188125207512090775771590733307670088597535063576783810052198887797821251414540891998680552078652667621383142352573110724823075492045279517118228053487998815300788037967538918444764927107812086770320048009909534304746054875261652841669991848228917313484301405557502488894179948218803569110775940669436995846148796036010664187711104677537721204932536264037081880668100798407716201799537051033002843733915825619443054907039760381250407221556500119203656586283288451240105294987508756817570997137645309862252048059029912033381226852275942322968193687749885966371281646873238533899501674137051593987554361561901776376626456422085032509024698370784235828450980510114348436165718507966226541337066662416249105470180461401072241252694334832004215706103209597997782961345629923715542256589500234763052649089465075490335398927206034773115496695729691615576352099228014729904586874088242563363041760835953281957956978868719384770284006488292774156131958127786469537271065568513531167891720418589762961321894831280656980427623679091972521411287297577336768140920460612479481735927128486216723490576475511061904160642371042080405595499834789346486083383541697643423857226475877156124761178726483304323196327703286290806246499314338045001096465969389042766727057039071610853500839372183466936431639415475432035066220163234308402353448399867403977118240950964305366492784364297194757119295091486695648233025913741310434157713169660353268360134583382114557312955238772061723262110513545939874950703741133326595804554400015565950367057011771068007320664152978235708856114367373463405031624282530073110507281593621148856659579667978088397966669433491749423950222670097079448483337512776322284906666103696439098680377135722581357415090658201874318870234263613789640306194320280010059293682596778842598429087282088903498402362549825163169416499223627247623160888449657843684277697115737142700780726613712356943187198930940525137031220818110285592123246749279454030775023094034802045392275104337571019149369222828611795095993438707158211394769312178701746984576236241007150275400045721016555924145280239911185516059029853946383188491626511113617119300232261988774335670916972485540613833497802008516587747508414850640418503266138050528174140362446359678939757996451149899394720976213907308928728235754001794905010271140628096189216372347425628838210891752793885453607681524333140413777060282671823545858833083644089065231408379114104324160917356515815623477746962257589150035937026068559935583049700660571006753763528476531281021936760279475272758491088147860807056727730470719085059466429382274038625910369235543805872226106516920787269931318907702136058084331335279890432553800379670038624812296897522749250278996190999488192928013409693737240080857115487209798142024005020659242424657616342657785909776838108311099564911388976258148048963683794641463285702166991019105385636872614370758892094944257244058988752998248797647158513692700285842139175373330825347358757175053975382904988566267665297741178752683025124694940168377009082883455111214326260749250787867185901218673265329707789442364405374532976470128393063660618759930657250034088282535468650056900097814527520089065162764192459120977625286917656383700312487643072190360621453799260114057851313636194968042772008385905275650224663213563113782783082050408728489505498352736097704953243461543798066030733367095502313372938478367413007708651946771024186895321807658831466142521472355959851977861026418027396556221395872415170927938959002641631974266434538932529489710293220795977719501462928287563830027993755838950084115046265619736859362170614774937923278226657601642403975210321016587446385992699958208157597001942036248654162085101820402561848584197815926070596269952632233424044995800490370532891974208741344803309907922397518003278500550697237201033561983945817599599065282906310899471974640352347231736250089318130885674822287196888301837767388470197185441441927568099469772685272079608168749219554060666793289666325118507217831615566086993238896548088147267483456002484416297779258007000212398075753485222132250913851989076370336421775469077804691127519529197807010350958459806994552155828965430856815910892021163509124649398808651181337421261964919197233976902763466073431330970711945705933529175369889129227834801422748604113792313892362644850717324898346882829088539779264614484054220119718938151552347188822148349825654407397865891443590473644973268337040881454670133857957548861831998821084940293291229221916918603446762508479007569755436897848616840545316552497536388051447498836922149645049550507318484013115916863105026527351112903048269697830604130426273117743071757596509191363528545323614590724442641750896240623627303976331566663798081344403455502962899767534613411465983468647141697436720629037033147577474517061724897366800177113606241750200690825648676842309608856891553149093667190364380455098330891761039598784988310064982746848303527648475082615718593333266711441316870129861956399977089573422822391399335958874950785120679468722836799618018529740268232433045258357769674480812625648044034146071729173936611894411324347539810038481305271102121530315406592930977350569808557812894795360829998466402027534686868123156870472993221555754549461193151673385957061875697375610393693835214876400572902007128721804965027296109924186047856010357188532061094547067233798030896438816395265900170523791359587373126855033086707130395420844147741996286204382414488601686887100504617204933988603813650892492260988708472766744117983581048238911901341896612411059790113349126478758230952493947763412575546906524655316210093220115851159189890192364878710804036245669440769308072709367520220954273570274262636724106291970439114869693315000704564716122857719495140387781601759698535642624216450232199209586146250639294394251590624176100635896701639083977220059491565194230462487306591278062989498950490079129007428839939379260414150766264003254694311192708082590189013787291767225331987617898187010366555752616767386655773638441461064756663113176411839909331712856502847749783673525325396293506433091538142088572455826097162665584947125114013803235981844072060715868514435938613776332230989825185948216624603759709717905306672356892523327742610757056920716275410280057674748354826210236917635503358811299768957239049794841823583360222622342089167747634177898884782499087545191569073769531869591724846904590464059214518795329880208879066710528916338025081323528919822632359529455853659112940541793074191236531361937632247161940935881009628717175692157001056210744578273020065169580507248430566131518324447473635894459649835777339996799313404663297753753300992104532847406185554221514697754074891945206729922842851294802695301471528653784524069141921571947153368801763897753021429221510283558246544217739684155999860181622791874448018392655337181287881961768747542381557409594723985022153599169433554715940362306230078566076863602102279666058149921210152143338584694188305162704046451556468234762099855578681974948088528917753243066149169697215068649232757734161268050841228926688057691228766082557902705819576338399566115789434043589276509560183335205348962569604215386528151606094831235586732326335342253448250789369546684752682070857221640927425670923477381115298122268128431892017751200903687565506027388075878205342650910754974884833889534269386195089248204116083736796175849511274923963024018895697943573158433509477635381859060210506886857856050684623316884694700805610622089924392499845446417064548299932980228511288195594511403496996091688340272532763071676130808425876355599196100055539240032294632679058173904159673358658592557399470393269510022671236447559772944746784933248976867476616391436617213879863205929221959385160461947395601915365879221152953057562858144859363263844236684463752452522109324781436240989561508672323033539925696397667060425194686427169249655497523218373681909853227520012947541209903220617033571783193994863241812129671283907194246044018198177994514890703567359636052340023049928376423026283762121840055056621356203776488562813612232089356178546660553888238299961684506444859167713417319066854172572155500497971748065915499830725188108502031671684694434716703117697560846634364765079501594777913394084377193201163350844624402465689909557559239636370495183766132781935824617410751633029460521140499295728717415249688490002222558057052561060051641980734674934903135859192266103812020378101545402119318210443295796280065419652092730250814651231719263332731281873329459807887890344311254517016283276340637725243303069865446106221464209171786237578983689211123842296293958668925530204056367653246770738029601601449525022337942406084118156933178419496542558201525309054907463151562002171886987125597401787993152367197012935007224332540342686129072975142338822966344510637260269545250920692405411543313285077640898436238077099270537230030537258920894852267856117736685335812568163319944143708846922766248448835325467700777968303441174898747020032756420437984193221928185460344164939717651477635177888108085452898150913835015319288177339862486334187500231355561095802077395572201126087748412341387708501111226916066814364909904251508766319018215759796428421417073723088820933606629452133012161790267641061824331928942473903706683215321137111156077024234563165962759947387060036222018144266047345472501078038291176181735933599288844693591121606459763896430202625591892863239418940286989295749533259288883515005853463346752099564138891274796698053712989011554685443861421066909057232946624814211617465146178523131022952168542455922070139911839879461402692141796361436242400563641487624274136080164295703793787793827702019484143416699004384108202745679575310196339334315604621225948838777738025356868972575086426570389059704512170334185360278988450376759236268449202124543352834618219876096195935169657938575016130337197749492821758528820982457805241048401715698348093262744017730469509512655287735433652600845968842426868333716083104926987029276700633957255754066457145280797894645338796751394454036941116769289947289838325307731968856854599664792223714655267929964741943819179982444728778489218317397287295592128095678013175835679718609997240304315479402231491231755334371070476538768017495597829782432488692514789941453110579805876848845377440311714842755090243605736136418294606620529808956454926393703189087173144380095250917968817634663145655216297856838427684926057676532040573772274280410033855348588451640819630439519465965673966865632498272013530417482097259250265440969067262331199395860578935620204690552678051962952044833456789310434035989861877252698129250110036424990429202333027199080989342088262520649566531662500451278242913219674215754706184998056149552850147299050537737041925603021209853145421223652026166235930080678310973598274213162856243677279787712734269556038150500512719091856517540571316780099125481690253195348282939844621230409343412910453206565620644601479892801806081287884822106985259287164254787412936194288003900045703691532804321925459141818480670624991821062525566333305237901884589683002746019668877266749117662534086029736073250714510431519774993310807828401263746028419725305502764321838093166120310594008805239372178877992635959065051757254909643860673092970765386298405573727710551588051814174905514936198752248174435377346438830119764367470219462097433488569162119893987197375446267650680398945355836744516558765062214530243512243008674701805431095214963472045883747166991863414003373295102946090044620492112473520739981468504523524427221367542132681773486781525021326669911365704312036776635458156590070817457182658516591884415139670332800453146473318944662964748457778694775124546338782101965051447799993286681222506509527079230284500340413449630941568348995273533422869738412178922153003314066697486874754011737145738888348042293965570685481341731338456705046423495946857678195577517150386826261452651146194068969103255624291342792492137145475482713060354022640349808090493461129506318791041966910563015726998557466170697558011952049652020219899640585709729680063762418958322451859240305681002048366533304182831599171031156583586222158918040152686103203451369466450215672643438217036430122655397866183366308821689158628094151869337381689497052771434958746160482147710010169725372761509168349647171057883271816695161723533959405756252539991824956552172072907165603345755705665654547480491645054646283797693814226659563293232387930618745107567971532929912151283546453873875803495004450293648099738618509973016855683535630109690316752873647958812626816438807584756800093548387648794493457889934299336750138602561421387328986567455604902278906655218974447609846995050787822704831464406693122983163313093475975135154814356490092555182858719404703576245906901918851556494837550716603653779190582830506248339500206203714582162261473605291828298606757722791776950042604168317755711897862057476505759904320752005367926130650980622188738138495528744273524401051827644107224059882086822912659365710915374517366776412909881095051938236092400710259336148627262934108817437594163857922706843122936934399963184574603591370666443139314956986378478853901079636584823841191723018056036180812145555638611162881728658268029594260134089742012456434233073632525018081827113013101738240577843291063168435897386495662404416744357438553233168599595227682142719424489322423854525910174648797132805027629948111212911545838789861468086157619055744185934555269852392814692176460898478095204972230450157417066046777396564002113199619739431446564373215032188925225771874544051783617905670699879369806316955756899739872121168973812308302744199573868520618009348181748368323312495930505987422092156440862500805722415148143286565663523854242568920083052512404215506369496739382772872197125758457307560844973477106527505364628524987433085992442591184971024197220147282080656714743549879288728069124742683973836970186209721878523904086623869451757161510694850832343769929017329709619056861417422554539648497452081091997116222936340298043666418410446752946003215820866332646208475561008265381926858157330189921937708419014718844410186347551012953108733360347343775595979741068321298469430552337036677252024476419484817118809479612386912611218028149933286745429777626907438620773310401365345595624806620496969507147516511978665398010431090039279910011814776421443740801830210623506180719429854067017899670439124726281712482500645839242875971119020988045839037423670996923497268669315357092082857597055999374550646459340588029212488995438810377848436061126893549508039529578326851156828568362525736224479242947335709173556175482136718441272751593519648942446844755016697593917873630035298143893952595284581499548247265333064454535064509915610627045596673050646804699207457962999061462435032822624026999354712313108140194861104310790732918547614966160856822101079568245125325918788597859000862932160591836058792626967276258817882875298061113646216966649800577256343594429230035376132956877135160669994199547544819407259069424799852045119920644722611707338035634402842604424708700321695445282133164138548708792037886633438097185136034482656992287912082122733975334974125925941317070054198540331916576598136137520344843990594888483028795240164541971705846630678466079115384032218671748611665229132940691319096238551628627200459332586970369772710978928688336427465413044935111452253694416218508758481227631634186818150813757613502488503328589582497206632390401035570317211804139773238384594360493368352088466022932298725618999313157011078522385922154249621923254696430864733821281803236387612318193457239200506854286992304817885981645342533391025239619615483989459556825238960034999242006507228930757765232065923485384234798268274019375913625401540943753176005373297155403470253812164299105385690383577612370355210864791446155355276052479992631821979665228393911075172577973909881692399313716775831963446399931637704898523926174356530456613682729645201292312984384325342137460592747420841851375004535390499582113296852824290193028018708579636199035056366723066733641644503425399970253749898840890730375683601082999998765039353908710068812470070395031407165641689375828569091409715709312286112171008677676394805427299140248502505587343407512168322880496793616753619392236419077959845050425031339444362982743568236507613137798893354794147123987525521679589472592562383302616314746743825069764659989312198774752376332828986880667506388891724254886379277867133975180320422779542045721839414991822936595355376743905871813713434057732822517505889592778910227951582312142573699189991788967485422865384240525187295802102248581706954603850028495342634924409404964600378920148386911486814821582684499605174552116898326331367604589603420992731711109001842682337999033255962253981383676627161204475383407931231687187471104934250833860253852216662664901455648116977074365293383830559089551268013878344339713467628299748479807612110062721533049311110535211405130953153944850233911863548621734196195456982945522260460373751788889964441688268669498494036979152794618929316090238038575919649425260465934892195494070645363111369522775648024772263818054367402418920313572207881675230201652485548029803315307440951485852890186630120908440248137248509590031911026383996893504956908225958702741685837724027437738103646391004261944952912667765127190296252061521621848470939359477858134773544820553453677997661547801543007614119456337740278403145660590673230415049112486490625274329506325320816693176509962772069223211871179545258271891752395370043741395010075643622694573841566530567888465339967060038109792200288326695722848949773197571985302630866536637912433117671033766826301389987678859912599218438597572362686702457670889882603175430108549264373575488402273053162360237556866509207863069498172108402720692123922944595086950251941174145269250119984301330125255156733390087694316797420776503648983986295622590931737119544147864970873277034784566520858967464170913984753316254992994170401967846720574895137141480974903054744239753428020371178014837859887630821930612409314029043381359842083801099365941110674805981189399531471028762067436999868400128398241480596953629492105002250566401040199353784756832725325300748635471776475893506010522767724082695186137236573586769929250974293517174970242464451899054531833573034579480199609565707712805924944951130312563746451831564071598378680527849409788008666797977515811003682481356714709667277429118668813304752772673359133665417348429152028428409701325064490666819588061613378741872229779696811624750488031491323351555338598600645771945048917194680689856800924908012207829183942916811509584492892098899749581862659147092053718618210152620497777888463136834316673450252763800604208507894329019801259482890648100782738500128907248671268210745419893065408214956085388340974110258012009378999681201075385939739913540317060349921998946597605814519125348272995185903806366513346680891180526433841845625737327439472229877965150183116607523731675250541934057179400782336362755537606320958423154530039758608090663885487864668446925648249821847986597651944593693549979911906992104000245680939117697349869398021649927959855264021324120145876792654372031400337649835311238693476816192092707921553913753128425309548896221383076484425558811185175766315882074731818155998775826513128059712314955386932217506278673687487952744780362354143103225915693807676400436749294435641752121789766866638481915679411250435540619273913907198911776710199107382112699937956367699285230624116914221185572635478323256170068706060357378351488425267720946148229342108955909961263945194130486539068028015088657870563418116607790742635343776358150042965487556450571701320516566309230417951486264267667639073001812205734016787905038869676576238242413836322386874117224263578740421611314309430871591483297687778055830142883507967836430925020612948849659731237983623021747305470302605963079784011330567510845743368711506981929565474626625430313748900723664540138849265360843816607337912306013181656827400602968420303297337372480355881201562768234544223512912212530659820092553062092950205068522198750927986888150322640416305202648864192907374869549397540682958406536816259818062143637247054659889609803221464989319559992026291335314493256873454571288095794195971519067332726033284161650193639923276043071146570891208001637342254904367758667951240364359591199097739737939140499708074848060902909006570386448789471125974392443549870590659185069195048579166699232917753336978690319207960210157188867482736419614369531874831316595155004756084867838937891264346120619184413618070437319934916088513485374596002304761021515383778129679840668549360875421510057656729449655233374074290196251629573923407757525067836937810839480940554041449454713837892674257106847118458866600900156534000503162895761687501494280298252523100792669098573231320691706176590572078209617483031755677813740041100486569855335535732809586538563076914616969382071792621260582848785695865251460799597993748743523160962514303863789290063429366564245705687757944777038720294003192559192738382297043490939139712911413892836907360133790229392748962297189439372673931437577153698006225460251527156931914787633120021140402084001533773141659222360153673870720927920105852800806015095503186758717541398666887897678194016064810322272035944127135606432620076235390364883871799297569784897631782824849504253551172626913344627289460616340157475611556800303282007283105207336904224051900845640871298156704309345801888562067109695946608232522169305986327202815967332173801129749840994597389561319401957250010705372974118955168227940010556347871012593718401897560296858147625556604707316073418898449213057109493344297787249804325458163616574542091541123414008015645626752714973146189156799840600381659975192711616788644997369654548189032676409990775287574735824448341414493223177058566017236515128437170991579081767140890537360388858835145511181302750425274989344536466943249953760833652464534728268159144902862582518074301337231916804168049049323935233873043750324790862742745438466133900281123413926760837828104212631839268214176954776841377999865204048119174786091886566814642486252493623865115053533058209561509189522454150956651118271337545055488943116857014971702825201356480369045985457358400813243650264607177012486825388595890708859874752159744214117196408776963037041752836208599632789387175172836762616607376935786400243173690395876163681390226038358263151934387711824995537171976115105466103165459941943832333631347715371480205777974487856953435339601358059983901721246175871657051451394292611819788337514419295196786596101616865718757778523686330555022400524806204275462770781010520029396451617877664091482681166926809221264997380783797581451504443639209300696610317808027213933104790748830398430983369099281004596490478565374021513773025626739846595982401368409014058932797279937324025189922130073264091069586043145656962973942170497793714755735668075864951341411749306138825667023456499239105423743520048221771446730549496470455309646077446954967685535272450136684699948970359379865659192247366948674096980051410666090637803480121001935907813854723391677192469331492465733947995225713514500289574518199472128596174630518146441857666215333912726413513025874704056448895652015728042510832982113241171004672549278941003325489223502577841390749761790238025394260527206657097888218108120308399141916334692485841003430321350926669033973505016414081824130910374969503485412113954733868497504405845516815961195780117600947359243306854453778929854796734664262717882307861893633558739445716263588554513204580679557361177472514266994972385670687289217002014231830777552186604227205902027135387430536577527390337461063044959632723133926525411294631560468585704963823634486780659247693152427873405386626702283713702168196435491921181652397224755078466367915800416084882958551884066782253766618319066051399672141408819296290661155209300750755881977875187708181661766880514724067010916800343855092057658437405895932222489638005071387063582664239030948410949604902598482890153295047560117971155035019610313809832240636182333576924304397410714839242540504150855926743990724332527958421368837567529241272565671617581150670159315354674068082634076757746952428325950218352043185252154058676234868404636619873583424735733843621896775348481984829241214938121571233011376081919872132331272022496629900885990546937586606173145226578708546961656850118636024147048799336857245434236765286954647479244466804748316121205997393241836067208432333026891487467476023154308305996686437656690634343893215582179668701005002199342616120415478977771044223433546559221719955501454654389895606497356733025771186972566291907872429933949960112939078341091141478790278595864584122445791302673209450713745573094217409830892008285829067253499996625692888632960437164491523505727058729822733549109025035775343475621670183263575551693910279088131665191384600672760414609397000812121184187121582915545076345930582475660193874897774207532110770851775735256376384442957942058300394308753548571675367449992123727764735199627528377167235978781268224088810531136796868210059734674080795324493565980811278205354588194650377739906364458400387115943774571423963377011859378943140230564344389589115089557466104757760152393484011997500840180249227837355799330060059064374386802346588047184218450277931018911258931092620096770520208769286610159449272788137531903024468495110759752529762098871646336004467801126212333338317172173313646365634034647529816063156037035911796771804598256851146812603886128747330229628459755802561248130863627157425769741116438921240130528668270732872220507983411592404377989835784013906566472309394636603403218222819559962596721334859534581444837471557900007828895377926324516437065110425705998814383199503619765887974941765664285680576324619103925146867578939030070145017129807566991754961419080384420127891588996377436042664065805428964123359087626400962132078968684068777050857444455509786354233235794117948569777540870775326818748018694425651652307615719810600678471694329791572810425113620955442822637046460965701819519473797057027228423347492859872357487387361598980253117813513969668344664492264436780519688292221525877268867835426840685437945091400166857895695768252972229330007763527898331272168223309329021759600806226889641947991431142180469735982243911693906631653556608499534450118319949076107047328648395929037018542724560139562482536381644668900054969263808929146453932272503745921938626596575896543838579206143147850092724373096702116930710226906932094884719062863896244514907905451960731103845080992958244315216772319180802384299807392293446961443969498953412566214540077866338992364894285432851030186174062071636800283152113426347230227119275838564882901038044225881188974424993052919887852661173185101659917970654536297267273332919586632491877830830225739248769947523335211382227590147899272622409491835774786909570283524267336485054000384267576176767314673889500433537235524071454211954315265115988232921187194237332079479888232731479676494832092549701378348885486472867388902726276247930830640848401662173098051261680640071853794529352574102345319176373541520119081823153972453401497492583735231068411373126855751637977638138749115798784994010420051567337826561236853285041796319159890801541368000414369073922845639830302265796508026759007838004474931818848591047467054834460769130643779570587601813316546748392329581018001955935918325009865483751439268199413756702864424737367102363384903966552378949405901541295278506455070859457468980678639033531500788219382431920719417347482433638891033126878738033997943549449561302762159833263499330456965325060450882052825865879508793495697353248066780640267387345335592720968104070495761115787676674172152740610351174911868232356900446139272011471268013539468681718795848887853873108326789734795495181603245142022502423303265029693359825134109919466624091973805041636032931277519129590388509847469890781868115252240348819897743754028220580703444507947926106998598847803402038252610350256904414503658197156688520474456429541798006019552706624815440923776786226323290215887302042790167266142144737248127277694717701290355426936937076031855343103178029464697846013403354203681625291543708742677517977305604750227507245209543571298820907208237214969703991357333225142019657823517039157347251188892478393861253807145467708713003156537289646476223092278849405941718528114422217310298166349905413407973621524470614571872180404828022546646507713388893493166220776911953704504098315489461956906219436969289525022227395333506992547880421130924335898283674608224711220264114010260668303135180449886093851951553719606596238359569100002753410288943508792612171089816054812964141882889296850056295363980153374762183169999315987883027042892412852268387872664055497439544731678918023676389585282796865116260272306282626688204368887648545462876341268758977283885476419794391176622968766120083280022073867761113220174072526726915714773863081704044333091530551689840477138672770024462441151681019583555866516676209240781953168792451785498514624952884117942419806161854013317749680289232170786064475703173802397153561916027962549739396754706096073661074348367645322813423603231814297356873939429137961026249975719830624651037657657923829288745824235148324467508356664784968589253685372803951365635822031199929715170427817949871194766568718637239595593202570280281058118494845845298375001311267329293705543964214056103111136275137701770311726577616457915545233312749291781242265386031109684853177824917409431821098618934697579835913081265457666319609123750916599141717536401436005087691834666025951014167713315233822566147500715608371786642061395388225311613605257551851798682757126386280944783118730884472433140645088017310705945210650760514867951403121610864469360153681495161643083306444325692309437288101589386086980870625800707966152012269215961719068286330274720998388257288440252632323262146332988709380287938394379176215608711598506955800816232985515425834714119017019880514309749315108237571960581235905829742389085445954011136023524136926206327087080457821983546976276569998454933362994969363633722096395624943203376592206921089494810302021353298387916656394710009985951732084880577981615127721080589651293080863423777157131783468130904570566167231152225090190501989400805995709336617712554950876328814724884859747654263657877800372953511440344116714531519980449885905932325318969348985671224095054876986812012977816212929635248616167231227860859606880422577636903309383454654394407341236230666646006607098198371436693435382138475029329780970629291146325587248033039989422562578614809677567070839058208885063564250902905210672172013073802080687920847997282166792004415271738821496167222130593997519112707741322210625403551753936770468494040549512580447720703102351482625488214399291041102125257547622298926420055183362704105350537480690875441964407311836547222846723078118365209934359279616642602838634426980265416826539683407599474122860361585768918589492282573156167530875874976840670844434961755751231205120604586100412012632390883492311140659773760439239175552285721305393486293797877041691824048998370612461018893329083512431433743441097616694911875446496659655892221121468141729023518991225357893629296505908300377722989160405204881409291485933933753781631581165842296964353133629749580640292858508884749733728386961490126844692140488944417575869404898701016820123883709331743721033872504982152884745088825160913278463902078186993659289620445854572520564930907463257270138739833096752896757068670868189068751376557789263757580456984510899580927037413267309566024849093319821491825826687520334825098938525549432626148604804784178313538404273069565301707974961991352776755743788264201583200916143342907127034387414432247491190058767004568968593416335740129345013259827115830234321811666822275068419705917102184933845418553757201280305138850178856446013106890653344900232066576304268247257171200094846741699595261727551242051323040908860746766594236439097852148015019296650324072036382324476740908419289215547632093875106458587468212346378273404228523829303732731895751274756906606539276476196854767299024245863906038420506285106981574938334221481779256770164931449059394372825820775924023557026911143476897521971926687732166767347666062463843436543716938509121723761421870640469880049892334641821325125026588215610666079207699989483959233013362171973040165250481693569225249363170176823936352449478192917614739321329018609466376614092057781625036302876074537357918001132039735233890657272560273431529227011320164183025309700132951011299768485420152691991526661814304689168781922333861811753418034515789045547173984035844156130432961381337053628268239132136828384876318095580027346465701070628774078070724090761139032684483940291045175201822136981612988146187179307617092469813389547096463950243819578968321865420434553727868571037558377288187071201884730325090332113017811218173068203545686415668305416403410841229041438562990876134260282933026826854228466904056805771498707286464386405324953342759526807225936836845735925233407377091629937959375417383403728388798398186190605465411025958504411693820861279187191717331604372646512502391935492776233854669400865158213591466327524235496218996866187790403718025374376982808033379778082806630878260112945824407253270244107151008490486134475525454383932407113376370610354524395246986252726587259940484314300459197939737926282582795196841691881960441875434098014206510822085847559124077719404757758159846098268054042534919949282522816938135457641433534724246714008829006623093609502751426507259751901568398690968331766546462376051258621963280761831826463561622527531454097663875322652232204605752244856776772863823044016960193674705017495471218837151763625708276933948588215668274211607403671638754107672556034548824087030740127213686677768526504234854250612732725459375802114672101926028143103596707488542884890144757461509287765167364556724018277601765249667285010192260160997766557243849156422333002638553568493181472543578935087670271790617663661238753157548350554133681816725308160408045015445273190437597950742049280945631441609016418863770815666132215573515417309565629386974761287897852671042083916111047471781350591195935866915353745970892434387082720627590428185134826279993143617748397501906116476477121318232068649116386950255156934274362831911317091207595480783684870742716165012884023641846705126942971317080039693633690454250763729684284366207844319633565690291090208155003414526362413473314830582847279913262961519669785999292261947461509914332753906005641940747582368685825929504410258107144471511911950766222406563516495556376462833054269051731892860471338907216322085568209977166366931725362534321837458628285792823123826529250677402850582149597607318315473698728912761399619250587552404839530424270124065311609356156922105447865533185175962172451212129546549525323617091218847129315567697166648214597522872245394428518308112833746351325930891578389318179906728726001456805543001906239234370520388431107931321912285215705919047198931268927050387207672981084283330777676972814778528201921865426103502456813838009358665909225810835797304293763672137418266295652347402467638907538394281156011360414575507267180661342986257864037693486579984591181184288443861315610995850522369229556892549284915000157528989397244889449597684895461864529455438449870729285549155978840438036931155612686769426868065589551015185447565772503903288040009201742958196954461743690234453863154511889928133784353925783507059509385065019263348877690234481019789978922746620028238115121918271740287189691605331483655433698677721436657324697618952825233940562289905820849308549160230524721250361044016806355168911666912555104879359811763610737390170553356579344491192018279716419268331001843887445510694596653471030171122183278205413294563954998325908081200689062849651322822164464764597674662333029337205488832807428887632854981583894929813777549409773477525863452806842751001385750119644523591552995789122249485480243410721446622366399385804116668861317340322027684056061502662516143216055983834167245159128028441178573790257976905225353896796388681211553747351436563279050430770265993085763408287093332790193111972154908098584308143176393594441625877715212265745156858242514624764245758080839778081470615511959110868783463807831128770642879903645669413795418092848980826861193541254764676648060714012644490341421590171435010179845137345784893603837933039446336876922104172448729447091210905722522300546369987403817399091655665085762112672121804970178966748648618660210760189380962256870068206110676042365626342083972555803847931606598973009771441070839559479629373916280037711044234832536774974631732529179748670071758920830785947921482656003147757067155955634262927798272115336376353089815507056762472637103465218619403662917325988761807224427504405374874663091088302156122538846703835911856275039852020066431024412638333054744941943329458380658481882122314772527382542746689397998549725238522135288049150964632890390992831142719377072483435747387619671100028427910758131337613503062784906465900435288284648479314148476683076937322094377080099637328570329692328964553143956775730276701751574581388086735016451657642819991183664163798726235837190558035505307639315259839792340702494412319159997381099793071227369100016126629845002483520293317809370386488367198757771105907901775431342519945793118260758743464130328141645649689613765429695217622350889467765581136573527614771422159216533337520915158294508288086588770136715347719953815848036720131888539664415986685693486745710085827059062600532357611135178404941244502357294105691355943402908966178293581613683649020788444991475093186776396670917468029068828944487184575137030152792352616776289486756248577287987159275905634232747332398957629071273439933449798578683126405615103869003551982119558550414066613625285577319258009049458608818914322587324865776413883038340357469671356991887595342010640992737435828407193365089642710344475110556782317237944741035979876682523759369321722080782600098696635738795357443867479821666709117290320686906633357224530086032419223962125081538363947585476737531399355242569094216508983324721737705655453386499822850590949434290509575485477135640409321870091145405892088746160590060141225309397009910497914749815812266833127140969773833534575943716660620297267055553535783017170637633460111663157984367373367637638971173966539370992078339142053847857218614782499993375520142951947462320926173715029087423585853394871932520361781554444061359547404177185962329444962209361243911012952666822253755681431699664001526616637671752986339524665438996314954188298380490299515711117073788582108133382277694048992454894234154935415780791606928888685657613844268385174431989938898485015309899287222261773515931374449563471674285019345004143265808678556492828747353127911934278176760496792738645117073316668481971466860457035352678407799102011939500037928169844695123785571412734272686313144838309555302068993567833617678076365894356787651272354497236008103491947955840046534721831399050390984189381447924301113710386602434689042951935402116324476729313561437805226701573711050223701006633066650049376561326836224486444495985885426303667320661595639905915950829137410554090868559485940891275599129161081492558237837528995290551161110610142874404059186411685308383737838564594873378997888965474737071824122957266705184069710907736932802497568437966777246583616879578111639290928374152180709562615749695814539099211224035479831123751877848312920252932563320955008522349256937929663647811086828833821862085679312693459342904736075555378211176110064145173535963703391889998268747840074180827233208548628471756247347602411583664472775180260660155139967212948998610525335531396326693728049327803385615071103460624579259505497811410917556389193328047673976526129129404655844919135095989440984138516658950655601448319076714292720539436747713461434918347485167720823611702415730426923751698086163650937798042433068234408757623747031040217471122343129658220748055268368623548941040150391927999122590321894610793678156912684032308423785061662650218434014610722851002831337262047927547215970415447206768815080812008753238871854994193765634694537310087634100208144219787044365587047369812791668436022550804931525961959315209559403717770214515561102362313257538256747530213895001406306956015994230655880303752425123475907830873957871307699456830828948739559429521146387217952673660807265849386026061520716167915981349690813995374596884470654988750938282128274485104918857943613780560376854559215087614219154290353430422602833246950812287387836644692815352815496218165594996916163947488383659568948734580882499993246329218007922198263232078111884649885932665656680451104080492123781455257378119383123782506776723190859075892203894125354099601067628634641583585703556528106664567669329957278270036584181661411027052614209325079260851679873496497324099601113646739597792819358718592055533981095473984033388009927720790863849697599494740966467261441305992687574628646933182069809666474513779028352689353253634633277835732994603472646806354850277060198415594324751185677463065616554544283228068937630211722222717817882499052798952478398320288151576356378829214239585661853252571614825842448819620708135423168973820918889470055789140619338520460094456459054633991423269704639522928198962672145486596660596480410529500596979749552138804884962569410158275857546699751579476677302712710569480088060257295200430593354074454080674694450739069666177037513897167928986721719810726345210436917592025515807966801402595512258859255496597823253298893140014598646406788015131186513300609622360322622872424327455825459898233776556397471344808988734786476544990599921242524313086102653113518389178009780803391811844105061659835244789120873347962952105582004714356474417770480794407040886869356649034772944213563029031891849246794416015010025937828771687152633271353699488357916050203947317947493119250537152855295778857185494225101852155300938239328244591846383564847734128158812283342683193413806531338991938937450856728355790717762596794635300937125006639064175075226870109585182918804623402921364892753904376606856015309611806393664453546677320066571131325128539773468210377477758898473111024257238827028373316966668898208166279935484816327434969686512519496276393163820423531398475260612117537459122694139101805796186883458658263703309375054266157843697895072941173964727263078163022531940736384342734234135939227417167664118796093651645563721397434752153769329864041174720011788936576802310168454415473775883136116804961369377184238882193014200644619532253575105379636263210908750620710004069663699604139965518761630807074346321190201133490207479895807229866987059919942560062258806471031558275542964901669591902458999717384224386164233005385014774929081049302110593039270696919096520679330526891402279187277067243640009878962743506712861692972707658769274181207638631530080010496834280660899404639683376097052578931406990173151763457475586739476023191531141495775281364493802871234076661515332732038783600411967201831969965874850948521938807608009514925577681428833784304726309671174813166059497534109753224693681855406967598039397358565007859220260653434359036350516609967442767243848589469655596864600649346762576926851177724077669034029197832449030186640160595182822557961224489970954353278694754365367343865588534635810701888419797114648357092941680033773979922902084049653729430720450889309722805455917754967266237557457521599694255025423439531654359683342963594044217203420888532593488924640839404332896085586855432539024184516746679980559484482990661003726614175623003450786694239165956567535703432236131340716752049946777905396352678550820737092725402882385709371558200487784933200484910104318355061176335049610661920775353469598385250443392879492155365016003140251727115519690822328081817036712885388770448876475587550684115983548960097982466859108493757974629724459728273852278555768995886154528383583819651226227148242448560466931677253321984259494300684398891883746855195763868415494475881295640435871378683027047626079252679776057146793317327695238487918485891983880407957020697541145000044895105148988656837256049995565319934488187145533271262631946348554756164770054683758637410824263554637279396408713495893475359449078988549082201374194931137687024774968782356141981653776050603362805864127876280637887160320574136710789758730039132769101377861442073554429573774478119506717284270510045337346553147543412459419285386635442543816099832191494764486129088288910916826107281507195968757403618794666861284136168905781722905740367169399880307986858620850469173934132399523254741764579149533194562919597340819678723004294774274294550996788684021667786948102624440438515931350180535634465294072207339946999519526965556797880022302523116984932839061847768563407012599545440979322709943950171040184801368803242673409934078606881101964371477865110490872182000326340346220833454182548810167835551153562627753649973523693916393897399303517232234600068759445177661376606622074859655209009240678238173940547954953826917579065406780001377877987771487616671568803565399142481321890687034200361468916393254322055857892375136297441774306578138543751775039224521169808228310560779815102661885967781218721016184986584018205377027765248683430839183962604633838912540670070919669838029324637000751590816488384845270231916152700490380950387333889703410838811827064321105939988581850858657692785130645444919310144958960433383001160373020009539938588574541777915017824212085688680969584148788282677472384718882246258458650470931920283182745448733396266078829192118695231518978669502620281431050117920883617304625362258105801883379842122046362442759308221469538439686474396664435755644658727762050174748053724926962904846931494926047427569042287486385317069135283843629629219324234441021912701726640805844327456133242938661406275748132153908795313911151764050828313412890802510812953202106695669975282151515344964750001031470349438757084767544622218255871961545637221151236941563407356810744223791383764074510359570192367156098616070390649341760225210512862263872316573757893650758421404225549757773367170256726320724421651591019755038671816329080416473454636832608504855297805958554287152995977605968073615170609912288683867817100531544195995728588872379270394890990201391591183677734897006207731424034522546318120144109176950817509327046705908165810561561641630050604418268832409358920872148760165198169797538482363669574996959659754151635878405305469343181696111618667250799115294357397617249349279461428393802616938284824584726871560959462941568871625293564064161447656130669255303862897403651836890181953100826870200279393742050947392636372988208263135516916297743893445745652591573880597427804812571966798747903957101001485257828613062602047470169846292236437812515580514395111652879831495004958247548098183423808582210132483936783575438993954712140671442582651068748724011327294042626722930603509598519418828258814791756213066801004742364568047403184989620827027092586941050565503866838654228355110496144074453638771145432847635713246125141514872463546936569433539619166074120501453063361887636069016069176660572631664183210011799809771723235832637977601642987439604302438913378292592349794390940058061765473756990015669990318930498264987209245287691763643584182276931278165401811924507527248768660216679518651205843744910901518745720277835224179819854815215496168588956874865808822245771544191599710743225372709643853303765080494609066074033917554332612514114960437694450974263142093075364420948944819521965240312182068262021955991834512329415558106817791553369608403733911085727025038790320406258673520064646468641613512830749250841355653881689008911410968621070110820921144927396931995301907943320166004980584377542762762547135809054699398344006758310957460832308642157964097714703384028653656551588909965448791088359329735551055362084715214972430379383555743080189675262776102772360380947766416574419264269929258978171229378875922605357381687912553569148355051687090441712964940241352274794751393487248665650732382936112829554613235599105280145379660034593358591724308358767024575209886817333069114631853941252571537206307112622295910368045671425544688050463433993388979480097831712294310169967887659481592689242387600452271764162902757879848430425684742456042643655467564739928212210071073406015054221344194777084114941807329082797540065642944446104332283548746461813650706912138377258388637211846843151690094303541910991513453309000119665861677554931613947301310388699223143922791028528906597938333631282444934443910411778502215569155006264475696399126281666997902848854313147746067208690349159237694903198411451056456659590525481064001821494454960387789839355977001517049924919035280199113606949477302850688550469864089067294625709569884047647271417258798219481665548628499050631978164848506331474124268887143253226165899245377372048661355570028497748924643132296632284643010408159325089484786658411849343945716966457775710521072953518017709618760660114769580144223389906454120285109503857750089625337558615415480266573401431739224543498560423490761035118849540411220551223925251502983442684587241317075499244106201044481958743921746363140412132800917355911691148738257395450492334790067766631675236641550377247731185223504942073794717717749804818594548236350585155644474486927575713355261283481874710473706883829758833946076192220671859302574041819397256874376020895885912560452511404447268111499987834466272441426177460356770208859196469054419275246770710666757900804970708184503446200383218234685783006112709392519073066366923305340575238348075518687436990374761913046731061466555079621920391201359671573587937543780981440623178362823004092711968317014675006629799309607052132376754096618825958607465349711197146287258526313939794991084654765239773059802343232189119948598651202319484660832285643963408604389456013195258451472153890697653465645769250568996740913823984230515648303578633207510460712757918470851884792054449259074830306191972163456854009467534869072326166657219703590407894510219619071836582795617486374599627579918250251946055605268010104728042081273564529742335496392414668367252989593275243079331779600959277381390434275555403114790906598640593923976805603380314436262526915277892717701572012961448849763684612848921754187837471000360641252991348253654536611069930700912076966364766677190706021881306980919314667615773453061686125933923403667026123772661495766871632388753101526852858219128262835097397320598300621310737506693690591088088318792081481591338717596746473662364388503308981711250664922821733224712288495192386294696940726732451726597097093723774542539190744344413537886797540480386164404254599252563680729248825913215126071703014179516995289748834723535527783417974580661553320550094472492072419255991754059442584979797478386624338593919005899545576721289580411618776719050385602754756742581203395921709168734143500300309462402091851454764803592373840204319250393206707671312232856058138499728418717709542089243790726899819478297733801872633874572904974363520800538323226185488800076196641570400762671975541819470804814049902429361269035978593670587553677156752100668400101292209609359392450410391456198366846974085661347905721830135794058278331066837949132324215050111730000894395291387293044707409848966541945326947510680934360530971469164356403222044152004639627379926046457643721915837990027559792685889958969725139356755527362590778289755215174271423019994035212822529689363449710124595641831646067826069075065653366283108655485531025903527016467661032523578416168809649163702189120365869052947359439644536378314121274568399848304481890455284893242995024900986957752309263994445048803848898640667109962618957256383898887747415010412471721521428338105430009160765486405521002054902550290993657227785030889481958384612683223842662112101712955890956907530891711852396115346643262307723347609975850016498422362594731324015161455900274290483198830830037312110783155602079772604802503742757230947265965595393960753813953733698282388846449894417017985049178961004341499320562730041713382912302911165722489417449593146610618077557655328297924126658726979438485155654621484359229263935629636588665456105748374017079356136741929386560409115912832611110734044856544193196630475222868986912316024280854498825899202001186385224645733527404793002886906495884426284384145781849537239773427459009788976041850857788569004681374930890003677765727453736258924482438629044268433841114046098504552369411372624635574775120042578712948413273569623018067666014517118058368705759085305675091089686601741342228796536563087856829034367169140928617647043571162156209761756724550086521031392273950934713531204732499303733729380670505254490484775514582437327814365545955695985152989324630646682503654553070121606151477748021321496463403031674646526266111383058364313128425747650892295810413839656184079869199641557881900403094668594292199044595170127293846652619482215283692887254151939866455780603379471479780267405328158046861719078866234899088957318494020297285870516643012898222162954913991694081619354828222498076481883892986236050211809042266246292321217037957753477361738995385337027946607932295332600538482147873740461556810523793256091473037503192886672805201812368191321334526885190423324576029427434528545922378383956031700443556944968435853484642528089616093667651326882746319032130129847504153172443617301121431168065300682149999689298763931214722394279663904150356614817845018056345077906223127680253517506510922148508539481904218305493193969941091947387729567510081884934668416032800650209689015287994411426711554623674311886601099017812285808995721188309205996298619433946560887692013945972306083316239737150819259298929756387012407761361249940694768413874594863221443706854178949276450779202290098740439115348409391462688773362927667289759791407402285021660705874841365751386968879946004996906763136090626104950567662013155648997293880485905531219851985518827505061964826530989562195069361114396511028586196309001697192002183006010599617617673537937986177709120404762299798848464305441940307580579636670946063024491965401334044140953765322195502763906714680868992162015130292115225466090283969754130481236912598820683903110525203482219333843460413196017942468189238309176700587517364257650589411255625777280519051859386114262798580553658287245061275835222784046326821798352765491192917018291204782912655092680853695164778655817255250228054743280784011589480576605573997382162413916534916823856046955412025506010873850381393920063399813170311635845192627831620296099918178851654617653187811244136995423821509363818766222383995896213691233922870910167118091443252584523045176766552509497673371735561474183644162585404479505624607837569231891135821191123815899716558963389319519968537834738127908505420768394490856206414956019000227636187343723728486687153752760237163654806343841597604234200233024689688355578427497796513008764719193237561903919985361890713021914837890183811773115148682949989004337928557345357555009992439349826935868413315465858826144468876852823347469396636372094716914056647484372558398199371200010971761155493112749026795371862866205794053883774776947912952670229251292076246229778627859157931793681113042431653547274889984868743624441540886294504526635917564209137909705031626808294137606274967920011748794651867837882410708356259737944570205650080995974847876869033501826364141479169104577609500969110110836887003592073218678064667453981064054791803321496907663312448984053056033977987714061443014354116433347413835350248285408051175272408130895122510333571990947570736249737016946461275142355411533402165665209753385923517097444037255465717973289121507682212421492830807883016836447644601617588021208644416607576744635285951955612641086479551681045077837754697506168173255753957238731479969436929093190973976022047643656474787582874997454428687946353335146831477410199552851136608927058833710071105867068054414476198857000302993217371985024092939778958021186271259784904331135384506311420941318829123210519168494425546676150100966916440592590915314311094200666250143455245655297320713203073364331526599917045909389137513457899198352190814874050990474321400300803603826414421384379219945513364599666261252211624000080563606271740429939923351133991690701424912659694800248907227949855410853332758818601777795190339925105781625335883662576374634433755286542892049808695058977139943837298170315154774991623850013723961892398388510729433922236279407226793652005377891190687815539043531304190776799375043517006982570189284378003730348901212928025217244363972601985524587009818807526994250020513807551416693343363326656787144602659535834313907403216148717538243684830839980294271744538220153405988789593960106385678270136616204099000838719597667336997739068058833861251195223020411771878515256876935468064612116992374360460257961973763235461426288238900986207637852051790331830373599797450081419054593335030986672968941497650598131598509250754243877721978187901777643036696307973013134187040331789537834848393366565263948281709518602887351994919686954723939503687843468183901309394130151035789033546277536470989167160967133129525468459953329638662560897749757577735688138468186524046955430656438165895351572199564833753093641673362571780760039933627926926021595058940577002113469491526069462079988810871825326900997622275301425250719392925000756722400308604395973319590157512630111286841246296385584501560425109207602939786477938421807879386545434388486145040597638778466917246929685883283350325942804352234350130131629640916637110768831307560431743910028279468134497788317391946173102890228026846275902862531236713281759452593486927091930947521672579185305034584601019066874466180847910412684992262748658913800812382147348249755182933939589732373895476011838855607244808164879085793703296650176084578357090766769453293665357924045818143764487189305345816795864900972413281653775530989744002379574484861039779536580570001090014660181759185376581186994145026518318329537033398533486644631008525060581355326228408080500645385130974003171748159423814070007018380144157564778092604560394912527014363367857948486793170215160502048987464484675855492940155972334777962033020681066925276134261637227720257430406136797603408982165362668790438443662736604921310387140331861533674244742015317991563797075545613838684016038885536558817680692858134128247401058438587782473330815886316826481916996969581417868159089337805681420746138801981146669009919967341238952366587472140917780812739237038689447669432971834667706942669002169497684157248467804415733200794986297839213387507135402206584166541273253736368171499467925002811189896716375706963382692657586061369390398884252852425101639281487857797622485158754327639648070598563772018191259953054961063846258460418641591115205958096471225160791154758864276334672907001830010773251332425259403103339977879331390553498603094400958800948965042894447161945723961350888460378199424821444413457406587603804980498169029175609482799008885027466707369457684768155113880960504267888610404207017675095401246077160140639192037341939389614010248880493008450379561138695568348509752009214796108583721406032804837929222049512253174379102558879718552992939345818560732979460416469562963184097009507039968460150104278761740577702168094746693404003372905362321469999630923978521945298084233932770840718968692123498533889588880904573856112088202725484780606779935090651525198132286386316428049141104774814420396704217536880770180558746275166382801017413921155690116241405328241818735151751500204338779490228624790129164993689045127147174130236989058775864277458674424838807567085599474830124853809980188782639887133140840984322272212415486421972957739711931969597417082253565265029906093862232276838252492270180131495000218468189809897726534585376211909920275260866038291375877239990070767611259755985734577987414809926453357823707690170307456651228306660074618077697711707707147245150350227796875194277385380429188415282672521190556518489265003845489220035888058564323155898696950820505183704173012894668401810346727415402098324694594115154455418490768536015932822852806188443358337207709994149503355833276826114964177353652827898909533790003132155552160781744309027241538351592377310836894445334762260769257753062294192608567446574552811388858205009823175862396997363279467887917791154957274250139488098035606628313816053701275818139821410310982348521055861823342868838687612835591763413717639422669448029163126885019758053416811596961733545584177605551284222757405833161067008567685271885052722116597211035148081761622995306994635998580701383755568806214327973712053850390028768195987150597380099420083420355238301070324865614985700053945339984857808242052125551359366807715914884261232837238865815305687287263842301898763203394128711025497145666324838005769657923868751284280074998495244135580367312732218869450693829420416827770921105702631188645118557760329070903030352817869290480225960216655262154367235017596367475234122189410670734943038438795405687588872925801077227895605024063685166149811146315061728310321432596961636098812638346558628611965909578422525786337500112843947104321779368357593771146170018737128695708030657081630389913743523921469032734333212316626200304009570005204467933731834069128040513904360438026993869773239310959109495492176609707508510959688652991649817301001144339571488100891180122113157493532921292342195529644362933140503540659175162789635626057516200265017027377493033417467882408293408346299480821612713968384313263295176863823933202484645636027962195038714491791779192648699616754375419757389033186256852865969232581886834844312139518482456994553327550302065174989951638021512897428776446888157489129536089559770684578682264400724872487543750722207018087501012659951770486715627887623983678364638947541244773009218673058508245431623015071535491945473914675088185346803921601791213885448973009445338439685728603626737556803688822053500034423121016445670880012836479614108072713310579374031880129680250366596761546435429704665075712456577088261742077977703280633017325022027926505039352883966396953676872409042486577980787744925722069193909455209232030752641804488030528900623433535699998669647915857820124504860861884296012357644541351004814955122542493364776237481134846813821009467653186286873324726163497767521048693485264748097478864315255067312229346137437830816206338130775936823360014809949788704111648874584462564931097431752927028868206486776769011613147381429243326500076470812162045954133945875331324320709073689206163539543806108655879063747033613624153823394788726856176116756449036057489843572407008809825148693978837867353122285147210540762081737402369973276213950339787871109259553751200401602182468507308076684832643006506603491793062921801812924087607712493451444657002110591235282037141625742006826179052204147801628373123393885902713566321873492621617218724073391227942219190031066625871857067995861650835005581837191836555298089445768595238517632719635833652767843236050475941915759562448433490651987367068258473203518914510340760209850870330310960931478574653471585316436437277156732563848155480134473320159748349743112168622792910520997263408449719796340884494773130709693387268551550270717658368736901878145742387989243187315721578401867830666584802415816704747938793698304561642650359773330567949662820525170721370038757510924928606010320746040207395906021636319585038814495498399417049540453335587290872254630193221746168604974291495143467905465649341578395024182021682695038808801687700158561371870344670050760133576539047217654879457458338810639076862818294098316028157990196997007061174717054619102311403581452904124131728698072670832405742903248646369608594264415550873406444638030689577432903028135808168888140998922889615468772078076133728114408976686493425102513134048921519017425272864879421231607147817830965651622904658549521387221480827741871969742165059799469510615359401203723580916807615458973868803653697245988952885047301763308048270696025895935389899935363915054782211932172536100291429405880247090031766263129113317065220905473027335036845229032433785062421287622013745376248742850283180532253564805168710039315117397429968224363151904750865268658140057813195397457845414650462918246859820975525917361383489781083206033957442784631807960021012660751811520976272678385244487852719975310764921821780100310108169208478721862123875453616618396408005570090472916921533340246365888139932895321452433040104367400805690562010171721595284322432121517279312207952290009704238270345832972789544382959937324924089878874741237157778942909869636573797286020691020849236864620007595588679194584691657965394328881150938360638999070811173801703068355114579336184645156586189408215987228408448942501921823972104748226081662153839917550629109811829576125232434472983766406333325985412705584388986744139069458006290050088546795765524557446441648116936553270179959264542956983089745555410628752430580411297958053757863628813778672084571594118833007004695649549193601405516047753188774843991977108672203667738728317270451230904505714475843996165476444015057502040616926411169143219500326308834146411314618107458459248774357407848788128574183382204994131100320295669426765642136973329014604173955641847372195154042932152687246437287470736106170143785595274285097752357150571184655028941563488614795632212130054536846858059314362087639580500541036217890453626699981402007016174831541647583342763686975620058429429598035991828905687856233227183262900546733115525317280344145019140569832659481167712122944749030190549171753709796301692454094749506017766725709676010928851794435225547464364711319692883567912425567433164849485999297866532024146475508462497503163288013909659459391300175119405884289674542222615384386903926429099751459596844107202729910923763500703394313705905253490873108385421559794866744354019711130138170006500071737122838243128369822009518017708680304527249785075322048607745507244456366906491487030163733276518264693505516744901887715156181767594652426715495770178514174901665562100971432235351037025205242852958991117460095403148538638950911462522809301807194580471105108546493319293230811665092652360403405409738064224030446724185090354550819363704098582553178665236943819267269093697134957908838286565521096902509525323088427935750952302506863768090101333602994753607776646776499657914048469944778080292724018672583327632962114215507635822135765087608654240374740244965472406773638012377298960411898914701090532317983955592037984433865592547513841767553269488877861891211509663643749799249674281180703544188715004052095991596876845574569201439779454647843485744592263635588802982678745329908960744220508373536030132520577398788073120000554483843187063950917588269235021619548449079451320536885966442890191617248476617644873056260511963924161435185954424945093238048795090763183448867760282389693301475543828307129577622075069724420451134267783473373371683146945472323029058583547831828459657508070866895959841861596731404182940298275277148812141148053996664433116625498061127292217187114257341271902028677987018812595957321015374247156375550278651218119631881743209625905010341171217782678825994372293248512340231486554866227370768997585961992516022342876633208350700462834290286306542255481307663800693702450564475519995232195976837406500514028271182083239942190357347723826339017585576407832851242789361950114291828073373176680416661100449582741020978489256055526775548751437757623766921022940697150067174297186925524162424584623315124414336805718865632309937505434534219013140639678442520056349349480658145766711317326763006574954909975670118326903186276674082231122397298240425789543567630809411833456935440152675700456771957536000796922146791682960959514665735854722716089535569681651927234923392228980475939709996399766030860288526159477141499816338228444368412398520950879523922772522618777451586647060318540890022348521023982678401049877637515173604650499382443506459052566839977227730061081602045486456932741555511594864106351218634792026876275905862011873282427649473560207140097963658907749576169882295476766330898731790719250057564112261263106796705497878604253231280842252371061254150846345584913276890632267834717746061021928723386613804172311640067882746266835054434199869250322210484673327689177490882253701296660180884843330297786932058562841281175254378352211967583475025968535646914184281949424628800510653087026794072447042591650378897778065949273302888525582108916107786265642031156809149052213360610198842574832396254301147644451234632760552203652011611535727518543224722232687010333125767743305773645758355657210318540831163373758679973494375741485133976184888767330668472887103039777765259853647514394628036420713980429120047233151584486305847715846161441570102129717564310522730151996409870715112851781755707628902839968828373635317152665144398740366233545230309169225911652306192286329853563719058863024713700138012750029415451490886635539752907960216378963752919974517875234200819034760505387723227996017251561784660788036198139144396895266796368665839491948388202733652681951717524894820066906359402175723813946279233847920405397646874345452336885081766662042895607544916652757041141059823211030634849585902367917519481252600107527331465908559008552468265235678978076956404845895615652990151801519394382778952869497041109164879435128431743487665219121579779459173460450665192745495303365120183009359568630369779677601359982158700397289020845882554506535847518433760868049816671070533343597919938629515289644136676203545158303996024837384688858344378547501233944864301930589780825300886278257777101110464943169237534339109571697515614194863544364417136373171844485484099683647484774771402802824293177870437246585303313376890410273895608812848899344566327843001087253656769357811083459443289762893401851565304251785980917613778852921529250571916688106670686769812437712922981296646566347226976526115433419524103068459643676327330423165657401657138165369943584744138202756698402192620513607996352260104607267377414008063335889806448761190020817866856298296611132990749568478414455700318582609637494528806070752779131476670929162670069847187652888121916369202616321755344511036695882447463485721866222936979167728880128187259093159903771867308560121971375382625197959621114309547887872738144850024771871164156175012959472966682148446773364183842986484927735076505086581716044749080098760157483131087729934853542139659054907997374636643594774237129948951158175308689323525364921969610411144791209677997579165350270440669386229306843519889763762939783092857187011420278930003396219682543146259814834534019798741806219597663448571305192953278551017366530032824422449803736877234398055940314286089416245326124283515145933518011755828047529784588972591989947725786992064955785067175209821813249734656967089399786017900690559725545883630827706158354905685207460197884092551336283286420946648419796006785972112809484655688387130305186848191651590929074820677571838581465051652280625749420473700683443898108155117626449106608415201917745086344384752282857345544010393636814331518953779176240841248226711973532381560061886681299198516052516600043741402014782161823646545239262530542714689449110506996051414262179575337936693927547609875708362257908545860116202542238203675787454858541847800205467553735891904704875471076677414018580898075387605460346730999280828724182162162741540548210088172070128810910014652966653487321089937383049044077420044522998877430032188097226663715130488803719139546439476048488567616075517574110939522554841701653840566457904452021737256564929402983354244079474023846591336919521804394446814430573702537065565336212108892190398185216543641451958466535645166748693428707700856648619895058971507599130771325183519913036170872044985557011201466654333668223306339280241228013790822044314096321924549654111377721394626360214639356688169506079057898521677146909964374102322605676085201575725226265941592513702131655486317188311095600139112064494999375126174939804321933741936504158197518803221181037396064042020312949464008537827949744855685235257584733494927332113705344423342359264567657098634470513409084499609781931552496224312838351113670602593123473097275132137731321857029282838222586026386138924083647524856429873973081219208101641574412106487739076910677852586926726578250474180310812304335763520994138371751973260321762115946647716909965515372965010697029819939144451220287937873998205283334562480144824351553718761009901514635124727229211933885190482437883546340040552289218052232267923434314314536999793814124301745204051110583530688452720641905376536538128029586376809187573990100221501129300911732653864474247672563000551629076776543806108736503074452000260188898630355526933972062842138920744529463090059214891886943258686720353639432340554503718514424485010579070507588185813117785119771988735726315169962862588596525475689879606270167022829716909588879885165046423705653057383759050390800083383576311070028763560950807713249775576341342919286308025452107575509828258504532527765458688414326838590910561101281840780593598179918278635548983343533322436532767669599882746020093288339335795214239185878218928388302413485061353746857380875442834756534736232316227887792724139570349453590366400360680509968864957443352049022231160298294757715709459385306675429607834060879924072816957743305853268780557008871860108867650230187679741831725567599787419800578336588401970273763161973152338938824489639164985955133053830316921334203864710414260461177405394585399889977586382303404674934694395650181228952247545591489979450390266740843764604649722127030847182687781886736141243139777494290444214346425434875697836530854050073886647934757287457474352472464041500642259743676950809472027175864282276317822805780715049141237240775556599404303846639653877645407142237955255773781232222957249988293598474505933586938801079124850675332767978319491640652914807586879235955875429833480373271978572983553730248035577654700946809611272610307660186148979689424958123129445258800252395678110581974635133824588719106309385928958640791735792692948012701867208492054406591276456286276589913312890602337464578349906379357097762456698646064231291072719208343410368569102891468100644973268755762018389290027787003460396812628521045246342683555887342753550788036177158299155611912120166079209648689925009019121308331471626737836968601336273901097652836102425284496718460690894075064694744071856447595966006970945921640162879609903717414108952082585954797064732460659559540641649282967971619227542998979536460788819600742329268904204894962832300183924739085948650935578366725886664445128423191672920733437692259597666955451273416224665780137695164113462599823524201656988587352753100753015196252772081124294920520903321004185682046245989860041781760686915795416297798088844932199300765544806693734960722033242328261116689705815102951491589909954028854756282389429222605459700002147497798327893146901282879147073708605297784701676301023219273709419616984382657007892159697165837883357170966141099659350978708208212622870246252228143968952953545820273221824996679950933296316570620767569958159374663140368734476912113859949222950903549059704784881475810664443704539697247028393415135820180044480618197779809205565622011240235846738613475353873649990878092973664513113082237916770051625762901758063779317605235849197605825811805262028366115982249852378185478635651814143368694938743594952463823883825737375736554355779617564155536419490063519593935147461656285339235128749152285379345736647996417947729203273094600219874847269763644916928841105398323416786136625304030203645525570398156077790785582565060879156936212612332727074982329117674820903160109847373095350161000998613593956753179660844481379493868829811802778571878330055160658815430626615013217187874666177674312415389344057014794375160108274150652116505377026950832366282657186929531235212090260001733284137554217400907593793558156455273078753950610201412549327820173642890539952571409641085442989812975884921424030683814983107083069115977731940690625481067091356849295782822317695788171513626741872793141058727490353461854123463524922285246715312564644510637590596748298302335767124716205232730933430113226064658606674529581157316354835811119344606863894913881659092409125945451057465022816212447952334926882038058809168940196642955291486653636248073251018184196174609119395783395000040009532189031034297493296994450655412726565623418741357213124330323817627765164817695199534066114967531420416084485908205777979945390735768418273948171951717637504791322578563979050091959318322123665874685795094946836287627682065628508646417230300275101485865487614206105178799481323816281017540605263651757158178581280037479100268957104925806979377161574331241625165535747535908056471672131626927335551450183634238080561210802340797423440762236283047171714235689133993463383201199403210410613891172857082872881523166904311403053689150262173885592638224828046509472220476987955647571592935848996353916505368456281239084894826571169640449927072544463037191111014707068209869376198532663238396424454846198677770701015223943341865373954563032509801959430323393977741526509793079642318099615100953240526153415224070970889238617613730806932317281656059171057731375569957438350738163799058609790547173413299245886570142351212518957442559413393308419701802806783649119605931316911767996831632516478035872823402349531178917219374872286010577914262376934075510146120310092503231805829132747486675451627520170463267204932226955094233637613011535874039783047201729552857162062215339806190043791522321324196770268251977859390621182159925252656513829477624265981897264146845472887934741578241359216245682882025347512470824755362674276875403534871148701399848806422355721349324355992610605724808997549598144022309892272518668873733706553903640240091911735785516187154738121526367047288473995159172937527248540624739432272926428076261070900532845363224543554724032300134564397618490968949800238919078184902922394154083084262938554292517698674082382955642051785921540470641561438111807966064459598017921576176355406054842691267791196496325391422142195686504623924304630533219490099274885447022021300522463187784783065551270560092864986358917822943182521936289117185924280595971498318868816459348719785015219948548700682430502675318365002142496144094840470381700590585470289667604076265104361257447430718427083999614876960978241078502802290140510477142883425629531430164647613142172357884552608140871971610999920969186620679307025700204649086464240766440330095347388681502660205346180141156794572194754752237143697992174045567165143766702025066329308024270319428727983970412320972688636011301731655398602630561089362757849863515668412839026234471624090466873373315345477422186745391219198636875507334422864325550739365995130662247960025260956900141770973516094539624433045562956695972561806976415455860994369274718712457506776862042827831978594166326489354233206287661159410104611382514077583579213559673235309172730740047955108690219596895106293279691094954552729668799336996009969604316029546831913668051569271682006995579168453553823463125336075951779925022368555149258610478095283972988898705576030814333107688900615979189722625404570443698325385675941410222158731987644014211117994076316716766110219125279259003246014447868709417198551848548192100728847537496252027530063128461895424779766368499638122325291111206402056920250265624846478772589889797091467284096485881481091834236987443989526078372028200799017195383851316616449660195732930696306933876091372214710846863610499892907770566962096401622800483884286337628366543695216414313956160341569674795566425128176579270703019918967209908714783989978052137565486970217866189817327471850544368288275320300249389360887850073691242406613662867691240898945405290082196691935726706019812239064458581558352524348976948510502717839882409007287089377059607190579788051508132493025522040280336978932131189945745039232044176301686511103810453983288575674719369083707938342975203605354526357512985187936734815347441918544946931346540997330384600654246784369023356842323311897709190650450594129708679201444799749354253339267392798200533121770861577278607803975583045084147636112329608318098541098470186431586795363316073452521615739253137931147525243366219417704818062260848850447030339106969438223125922108799373355076402088482253101752713616384017776493222336935121402014874004091843871665293875942548052877172561321305517337093099499784154822142449984599906745494895442580934742692935562249945571348215483032430168110582174433821374012403303566488848540680320547164896973744591584873182586061427787623584365277303959524164376340351416904564419783320257225556310079371006759874283223330862132549479684378442487890876305738798129709242360842025848871548798612772336189997249359023755450486421277916123082830396721394407999579455096485868404403509912308188020650809442507343235433529134950466014508889426641438192830365234922863061814071806039717609476921210039201335395338755400417151317450939351147987224675863840030826863723253721932871308271295994956443703063715030275950397556563702738199928495777852030391990919673807352434764247510104920054089942305270100008689657402106887037134991580026256743062620688438331501847245186282021616677484944918317408236421730431200556903929455848081560540878287463389956863571220928995587798390013836483677665419657798601612439132831171589133558894221762822748397423115423901480554102351031727807307647308728162062587418711213223698274609330879085877384812632980294798873952312840366264328712765309441928351837299977709089780759660514219616588290208331289646798139832026744821459141798472024791899195679973116964761687774779247373212884497386128003831513999697020912843517894922231730441579108600927799480569923151143709444325050559675375002681264478587334759426425321852077372170104056961117208450147289097413529927261497735520721285217816032485306827053443908309169410620346004550516205190422194700895685531942628471115160847665282586172122876524046976735974990954126219992855195807940462616150117799499459647810554070460974710887080187664757260637762181195722095338318345661075739289298751534441947698762658188846100379447500920032801765163556620991957869421468754426345540841899059318981072619548132350860094670615596808548694743827396223166368025684859494775049841785332207686702026991570700155791783516892954474981064515632592178435638137013225053472881753496684107093948674236589070564674804226933536060157470851415695504958011355185827139709150400871368347903141269478526913540431757847677836976497917347609416513230667832213349347502816371553225322469367669609364932823121352688299526459381473969641029060558384355696410860414506678376121517729600833967688000110383290113254990192977771635380311508235862656245937927997894236611684655192959529764802953999967578617631414481021792700448969001723080015444575084241570608007506580429001253339667014316544284763758615337141521961796948891726819729742108960054247700435804768571576289063990140272880238238993283900908280553146941730469380112876391223167415400745780942689056904774469468072551452603462137882645591977690865249307959487443279619049840123810755630275776154149746360361650110708959049908319657713659072522730931757133662141661549209900739485570695027658121491995514545517822882880471565910220599585595531892208174053441770348168159478806770442529494931751638746056856360384730042225570605952325880992483965269249382649629543336586160129190308908935456650109449868242465421639155750726558693740604362340529928826110245656767415688197739414429142614906839009429437246316137233578953627739890411470915631602694049798159883024478908417277411424110836855644344731076168291954959843475729683671349829071186924948934906602851826367944320031132608441997032221125385452414181047853103888257987173359930827970686026187617366747433296352381305157246278460140103645574148778742022603392297867440217667987292688861137943827062399711733796123572149741659262305713872363701074717580313365749750306427706620806333378993648758014790665356994863079593550796150416526696304900886088225806249404383320275488101535194100617696430397406697363480105161908503295695435057467258288358031933183529821964259771832015280299253669793155275310687069513191708034859647877653003146167390061599626014994460558019740133401268868595605679771628102765519779759137124455862707464967243319344112871741146447740793250077183895265801014982312568263046795297712667268459180499967202667646186920895914824231094455845294650342995683536150023063332800753774479856762818028356044847193689818471348696412969210544976868136304265857634558044055760941647680074101865875194590978256053344793762992155613998225042517911991779426695815517405671680067025555449813160463564345892467148772432835572284662572511513959752756091220031127120391276220208185345748912098622288413752277140614771491137187750910068809918136072438850763011012843715079419023264272716930505206348582795366997011164008492881609054468817630053272317773314304230388604074445085923452599859495558415790438852880175030810449233671395189967189363187598598042448044143963004476482498016530463354995978786965071167145778298771141734636020958032675152704449434668110071097823956869438911249175520339335946302173209910810828579809300506558433107014701444268871482771494379102598844177817045360738535248483024633750064490447991563824054539902923469012306218285374041615436111130668302758549751685754798629077373260041677938868101103821964006042700426778905605739685007133589438520886092464535728713066522231707008825786493949388943739174688713196121204925904507944564861555903458579178394693848562346774171104763025388274464864867779323112868514334156589922108514730780805490965525884057396137500666375986336730126514716122619911972203795812860871749199882998715572600920381067280298927932701329170078363219879214690956224961426911111204934357373815207982205769996382126851121103300867107865207194009107968498169410479308101025982033789981451616444999666690039056846296179618059506764864399829538239744197823896942930148310386615984153347774646201139987983625799415243505096131061681689017209954516658466252166929129518874188015529602754104267729767365537580430274998241469080440032238494562168136075328521358524186130727030645747112465693879117014294694993479014423364685045453528039442694453270329330894782574095091437190820372458787787318175925997720846598577416614129891421518266119589354884066744276639765896060285628541292620904523080007697551480601009075013276918195344585238467199468952878837301913319758181855102790569137256819858851977619793591220867227392155821878593495535997579972071814314758328884717911506203052170282158520088620423381556778748175998977792213714909888385271009957312095051131539758129224563350529461969445772978360778731195456247338503683202679183138793846403729847804513154432057406391131109153286088837839967199632783021101248010865646289795865866028060938960962811090615115561188196504016165862317054622066302338093328922924600707416087722564967151154436424726716021790621136820218093665993130943244617884830995182056881406278750672259542149165545403199749753621355304828869240072643850136895346993083725234535127225738954427305981599522898808369451636779703903971097695576044233054449961153767718462303025518143507735272325675151101873420233520489243168554109085626777416140966459584996284331912010207050730020919457481005325541269736031177611698425727294394443680962449474224872920220063599816985603310071355015412951769034911283058865382895358832007931000108448171444991315239310390395352526854271496042887881848037484511031412453951307718537763871622631701137685951834438239181587934228129159804910475332759377860683679187567240591397037385703701143983307798873497959994980462521418473030279476754671871088651060361367607630268171611305985391409245213851293541292512262174358763266976503602406979177512304262712781229888191301546603558932220031114645212583955449970381575452225134148478271835523259906737777809473697508487626699788562016710211125501068369175520860825900026146859107430978458022428194738843466805870189501691975551576286192255386734343471238478434409959805203033622720469227435305453747775857104169579754158591146380328422008703863072088796547633618719824567139737881682288606208353044211026692696819587895656862940074483953798253023458528138631981137036281892931177890523289408157019585859512253914155028510907405482144450198835060563346295151409039688011733920555478062397796623094480927697390921838269508434453061497262378842513202503973424602451043522152979342001052732482230852251726394771818772151997216157132133354391273139009417242835269307300846653647658759786699927025130150948913450280749671159651930155538915968636964919143728940485743442807761117603636202313266705226311551353064349185971147551667101497376567094916799870945543175581643448657381600566703517543174652848364086650467846755799259139697639106025052295097609762941035601030186902997793740390275321831430721388946004457762027958936431515852997412554245281034899111612722026554715222524021410624169579596302966429525124119305307130356277363107512177540887707272678444252006523890539466825703886595226289503170677662929862742017675255587409341278350516357663683891527927558098446825898748008316200158992146513022953088734977810184355354194952936548677277257293545364644144391220006630905053342587329802951439000410484790467029407098068487311341645179337917667708253266745187388613208983876131687559924189815477988021535925910366854188224814476843225239508064085382116633848081834327946933583461980264100532831952717397347545439453667477511937993807227698924387416219747409248931726911500428750027197462054524814589178303915340836988214613283727526822211448335307979095223635632813856373840065902899473723677175875615434832632029102682356361228844936648188880303881193612032604364789786733266517387647892993747053428207561321781942605068271694726858965202509579411140066622179059348569105394609010788352387208558845994025684610262778707240984021933800701182302331136138535713277013032365560252864662084082148152231179195921274863633654181007598943831760664061276621299030039249389463588255874112290372964043276452028475786091966508790590357392709849351352079150155710356509238357820173813331370684579657493685108485508868936078905358412766803542345563731848268520111804187818278721145645030192421569519843441666634967317895286303122082529398217909125797560208589183467211877556327516651079835669782890459996835925169321061440342035644376684197417245968571543773820112738777720631396988468697271464102915369499446213220974693019378438248775043156114700790582558936023796829586936825921011927488385981061790898267007193783825276614526994671106509002695281413438120567807097822886470201235380605063072191669636616092293316145350400386790064788125549003236606608699327915034090139295930779443851606045339244026392033666963547704294086683637004536555309933273142658247045162799026718043478690625198892176735689516588515421427894390653185957345961276915265778521435148823875357785809791699641846471438715167558254582894243321891020858239179673585137827936893230803372190589418627810800697035366291260306953451602635709637897056910993282899293285539714149901910274737241149657729475901516137147841527806161032873021795344546833755363086549756065904978207768309965775202759464485410995665607598360421317882914209166179699238969634035616411291175075445360723832465368323647494519055202581296258035572559748183667970537658528218612188717561339056738351687474577610855454813455991988666254893152507483889406194374289772578537725840936214968932510101721143331169982799675970724302578070653367102688211230856356334653163299151139981828221207998695486385141641018466870293654019810346733196332382365386167432680624025235915994231999103570149472127699324597250655221606281317041733051030023450803751206059484111629323638244123754774084498612537068322408878932757756666160057640176220633792945526161879983645077650983639489691144564139172810071700275619860910653833878562960823816926568009964209102568045491812753113096511249647167706650098313443644821593466568818709177238981487945726049549561130570048550564551355886888136488827436868357855302440879411617378903222524347690926318301241672526117341722159790213474707751050967310208735151120683053058893659010783628646460954886924093088848217031521511347328936515333812024172018964683328386252002668518203450701219980071353812301509013710745124575581462675394191349010744383843337362678802030996392794685286462372528154469980213889723185367096456648970179355243538179920130941212293554280838118347280576614275227516189130245523169359374602497279091988013245889861691231986830587581979367153329286863777964939882011691939206677674284811976328006020228010680543526579343491207533773334550157071943827203101843137252615787879112598220241509164128022189144930695554821535981860978155033131380137757453423801814424559620216129118848082959216925827386412614303001596107396979575034794377840618921096828327528195632152419629696595951697773878944992260113405579893377249993079118691648452640779852068592707375885621705337232089566828610165981678745557765364208426104098694689109246509653816711291500976318698554456288863160818440737872191825790806640871574127520084997937673378875345913183156586047163526957814711180252491756640899591623346633658389657048549444770791366383087054981374043822675404892759047169220245024816647948377396049575918124377935289489947891656092824875686986456192582537066158723576744989845253824725205204350705521444536022215066269184254300838444908358103362505879617181277633207589859227508829345463192193617213403521667905162447166577896295952414176814009863573313474477918639359736992480843150499087968020374506303441030933921696037302366852234535105396219591818498643573602755001194255787871138523233274272855447925900281216043094346689990036720186294534164522934688212484148180322749822798933177790760262113997039697953875076468952818022733133968863241558165229485369909123415465057722010322035180367513832503761452099965504363103405530983259399556538172024049737589329870403039527459465821438850927826950666536781741558672334904789192526988974410952537988548037812777768790666439429890177322553333789134067834143002164285605715147236155341495841667433184386921393273076315658238060925231430066059957061550055337820146445272852850127580168779395491068977751954955006562581608449815217054021032724235469283705870506385623879211790866939737672573439018202082825426133994449470559038383333224515472663965143905129458550775207426761535645211621756169274885227473866986563717598244047256137214750851297264791008284933481589398876033638533985620412009718139717812005079829050559990635333132477259008767320262846806512258258776786796445886896230436212074765137956338631603906556441570782932713577010038477862314624941814054678067852243136302230202715456811968763012041496295570936722998185760240261852429907111731210916766182618305579423914869503897958805754783632786486041022858934489371638544959608605108120542586521072672092343323608300209407933714297383795938680773149673115272291219108396600233389039486184634547068990194200732615151716087561945153186160891821374320550040419959976174897527483234632202373072750236845540202754511124097484007602852349936220828795727803042620015857921630428572381788971153801713234842865254362665299405822175978751653921637887483033164319920524565370510275696553602115432528849865389242805193730074615574835930377731841980411018227809833935546601438817422176123782130062365371277481751466604161031641330988623695014117004734767980055887703793653415132253029187926326896974768761693257900886628149468323588910825202174717392615629080816024505769378700941285621197633364405281101588642476897700812396448304273302103313659037870466703782939112007613006153823915792341901670076477704537844977862836425189217075637024076939977190816123151218634948989793762517888409690571302523554509683183908479909139487931284380048095745648449003404863049531842885837937808362408464672574869314704481985098818287138217520719855205222970900235450536383395992000760907297809727849240542717797747043230082377776606010516956771647226325047271484140925337610225195192639618264607327422870119107829752426310361297913907397916036104132187653719369499873913687528736800892532799456989854854659714851409546206968244183717385996157192188341632654603659936932844521664693499510718615701714041057608595112283606047183057518054435278775004140305379449480807635013802348656834466402716831629443678635417542250445553636328971351297010484923570535554535673874839155802840437727501850791935665544054376225463332039411057003627414079569084969580111589690585437995868929017118949414444851089854919189237314358770136855850853032572391973489040917443499492796978678224685216040683668033053041993110849666577684964296571891958443348663001059011858591683878730010847037448909959394145569738233790692768897689263906850152619603886323622352318120281527893640950073018778044315966719223711378301740728007811737706396070988397425246877491472550947227984545712300993220627388912269715998074547520723374229894005458360425136787122171267518614266721801995363001577470125481048602932093527897427061767684948758616253143365287142337384372816348468913449680083922030878548981986324402594397614076805630171750369703399963500503398731426971633275786206220889801810377291500105771576473280052319825515419750715335580048422715837504271889347479274335726637092653613756827543158112900285369157143753136913170686795759067693571480931781079120511696968813646417031169898914218968124610972197534536926396102733941629900239918252230692091597573187775778806498449270435085986823277639423263114921070644613949878078562712626955879624867862243526706830080368980576328015681379282152407740307383411565249444981026815920061807768404617122224682032430656192769751130297208929370825870350056718101681317829615901305514506736925482701980624945378197691355967636194393132623995688481101813322669722652302236914648576354878089839919159937261295847580398977813599010457267080142981209606025134316566850741570675250879786681222056271263425757237118274818499872209105886109281546007953344495759800440413229015271958791221156617624585770554744101918648744442526599900187924054151472282215266961737274227773740710867148721896123905571998925381937850364059143617575873614720238549716308429407001604905307730555642889602281938759133047674222782401928194176679549837568057421727226093830953730658424521282891240663021239623143178892746059609355831778777225473158207689599576550624021278785342476928136989232904078552675872835293136764927806052354885169310214239657110601244402978242701573906682359287198584658204122108939611873080075564978969988466896102080008709796902094056052658150346185196296403237917849703076227398140820670890916759722273617919073599445118034542583923242863286482082439174402271990424009816887853627632272398222986136036132918870198740218029482993177763466861063211179260217121578508025505512963026965309354684876616061709253227230875770457771829372179348405370597297204379487461079591419000090508930565283964058419448330477390443711275583043040369695653804806872398948220727026934773568084855703828646064839410351170763930926480791974853387529509695967915722524523872119649765703719881456346031213695758128393048233201779937993590808678096381422157376347768179836028445297902084631179217061388476046436201310787879095063555572553437687233139442001920124943550607309653730548074979009757086383364017291493236855637664782365397633252629354215822058374284083894176722873733699947113141439792372917861392739198915620915494214089390206779761770519601980365605892365040513795503652464853750960881388832958628355242402731248751751364825566303291933518197517171545823570655353910137404266541759819113128753903465407953448366002891083799457701145029525167563386965159149916166010101132611723835914370972122450963030628546703800809190656916314035886430925696533045097874503199094924797167010636473943776043191220584894894763371123882153613090089653908976451013604226398043920443266163246326493962386061360540901844495975228718521943828876091497269956608224912746746561114920303572947686275677615932560890696555773998179221989386703481679410109737542338904607286919354275578211052630366969835856685139629237576993497836702607339439577470613504655432822939878218463668378277243793119349072053820183966249637468296972327004733561957584269713427838268804523920046751054587529336983267381673135076892727672293123022352347906490936758761451124928364182693676431044303041461074716986116335631916826845886052315034452753457671915206361506377176466941387853890926176819234181971106161886566266496816798697253959167299861569671281455346053463584397010554734800795474444139586063892752390344122089018042289984356065316273168161270495606138570907316957101709015157448717198314878144986580048097266385329199842648610045150456147098184301517207259064637900532476322911301323669450943152494831970227862972001420131359917981038884835613587171905900147081686913456628857688693905291967169311563989175839864314270578292254406311660512924324264488801141147177006338362743690146536722846465076906499340523183889327434837027745725265010091102617630084106958375582110872269861317343991460801916207511484389912736914969159245617357036572231648543318831402243784094308022399684722075108147849924418890855202229421123085024358303186878255838595135020686863608620893316909806480975056356863275974711673955935269743768665756313286390137614265023923726848381957747050988237951190811946227076002991478146712377676712992655573023443931078669456700138009162751212090032922316954092288997841247476095609287394022656940046884350869614844430036225591260966261363856059936878903133781985279892332093446584032277189235131320972303083385671706475016856766581202474834132812005251652697124971672320828709139209683976150885649513388522559585336125306108238195230340513935910799017049506171345532813216005817272353938319369338512532966317740107077671694184073502777871042954552339730574093599385816690586993941310500109360160205761400210971214269218626505219361802633508653840663505496084322265415372847170338599332946309548682792483374686851764100853534619153796945612696413572355626849401729780279191981203914086249409729222353491172486586371958965886979387380159031671484069051867659738834685334380238395440734716662191301890269870232412254115823072445877257818221511104092370702159020395468669603065672402565494874129561687145248296539896176446171518193903196893329866935432718114383811574474181353356372050722940357877299242369206707097826070072970723006783634703015989495353249000456228802025002892051560922303623128004805410761111523346992562294295546318941645374558773242048408420260744503192403060328251653590824415999722868449826637621839146374665614470695761793730347845478748095267027846693583121869985287943021940255395037482024280505977027287334715430121338245719960980068337799760800262437732662792073891750474307924639467848536626566802555464632416592964755086677912710971319582679373054719829238930878691277852125547261965212867643514961924410880053077380264181278543194812601040502270609070671942256094352630921286770327157856083276018632666195784190403835278637414934359795943076018721181154162514512957634355939193318934482929406831705795192527278311319761929177901730704634651012678561640928044864516415915333533489068967463930287943156209857058848597963285923274843113874057128393206419937910691834388477400644484970047424280647618386701344137737684272577095768621596612422961515001685152703005287317931272749132689080168131936790932921329372046943973698391028482566023381310487094529489912020688565407375842810425761446759939657648933843011543319775134328214503230564727071152559849140417615268149991199549117379307770869353698740078018281539046942270271475323213357563881001872292032316342572312776252466353499580536874271349594476471635800013686262188235037616413961567354406740837797743495838059246558055429627142954791253917358210992131156882988436250420430979439481545406890226239860359859973039470262041206079638202771160829277954359553643453452185283654719147296445067375927560932245710285177251363625577418956126943858796806733277564139692187872213036622441717597256721677742444638165960763778687316450103698095874420613581285913279880040453533731910068478381990047194239421290394425407179230843409357462156239089311225691614218881540560410297951820328477211713017147374135912734699344306061701697024250153122767508401111647842320608129127717133332200882219382723468067840831375115393589334100782624848741360981663263043360511480739295619653371642733640190536835402579313240482341407671340754860058556941909939227134618255568068299664984615993147769192626952608263340809496623556094377983771973661902723547780616443042762480426669466478745700941688054963297559682843030302911134311345270571415796123654674289351022692852225090063540996582115134820124564701964920835648492068603105612425295771398780269179244270225911287378744943249332556261530563183450972959083067665779934724207364707184542564387172581030468893538748383093688638782710249090685865641690473591634679014884510856449516288951597924707389230418545900817705295242092690374983511996703737167157677467786395354513280940448302521259701856002384171664694615612714406219953883923682966700573397361431458974925637432781601125161874085539752673611318978485333008094169757565017175416016903045728960631386843317643696436687617363034687902197944830864167117859203381221495396376006609429043804847261037426372152318705259815224105524286323855606393274562126741195407490441035636245324408838739333682655181886939983867511557430791836603169222255784625107935361605832532789909652595793478541587001250031515038400680008676284262297253762129499078681472793679571496757305819490707265846838888410636822112934458953794458597668215073715270556778193072553643445494593676391516995055542347447592878919623023854650738452329017735884834635585382327365862766344689170286292913195597647976167945094812580256020321479463230585415746009620900178863352993374324817728059825506110005210912496673454318127199154908214738315427159330578958978731082660143154696347615929981700783508291293337114053122857248262599427249048448291786447339028000983201665814818183987263918944701732708074281780136347392136431009477152605144589810100367047199747977205645913345291529255156620234479593236052639490054585155899049415046752244710828106947407944911790378018507134105851205576033177240492361803622793297269347185309796322118723456173558924502016378571569218328937926027232073047147505554172673519302697390056709407022456371323438910213917226304147232572181541306927734384425554930315576897213486371465886045390188304225496280592091717759561852611320281311263039248124236421380681089157660475389929630164214964609409244779042437960671095440136749429841617024426120358917649237440096876464108815311442766791632508450894022290078242021863506406589080423057392848902645690587798158960662906623688585893964756549706524062516108288972327966485445642697587042974435695805465334594317682916250269865158650259106269572190815682851760956466448226887357388185863110900546489608133718705033279531198185845749619103702253445002109681391194795213295267669842517890532800457731147036148362876731166900580029142320244304741184289494443463252820212794817202362225785564662312597479972721781797539170737873704894630367943995642386359703622791720073086555305139800545019196067707766521947289458857244780193077162758992589033397290380982919537308608957667163313978654637149767535452285690530110552281706634330837690162270813882031472189401904862881064408995284977125188559881939495949428595657786353065399988008869580669820670661188477532603254285555849771274445813104398130379184166992244989558958506396283777958155102954922776728467543889500493583798095478471133296706164663567692190489255644680130138996254523474222858814286755166431612309555592302102858592853371079912777654459504753899970467119334903083834666912351091746159276056666525720686883445307489501590126635920826571487840305072670361222855736387756256130543098723342832038383558359448741568260611795242016917131599957129574693242880048768114754107878580363122716058476234487274188533426955394434785566892156919007945870909063019855986849254204871054822334890862340224970999958183128644669904806904218651543484575206743518678960876793055871103610571375854986534074374738134604502340276933436876339245879804203522841544223041221980185020557525951780377152914827331118874295276975451471517523905367525856455642793684093600874752530618731144112331662514546711525727558298520908343642011569185543770956531949533372372333532854096967594590629519158977089471926773131036238139458591674801321894527646061737534852892540870790341770475574889251397205017198901114908428649633573079623440697739861428549072546385126928891387668939074037072994271522336487304545569432091240635910569883294485695613470117808921267735436662692201208499103845705351802086075951886494857189559182741164666317758834343907182687345899196268129245671566275960937628771287168825216234459553813020083940891593510528464015338406487029719857232220738663113900126005677319083010096776076615500338866464170068576346620228907658077419814474288463288641959716404206831322141336701144502735526076939982225261506343532463420571295642087292501621621676332831245742184232907046321510477505027244849152098196306284548322267108289570473890864541691447233751550801196956280254620631784800552784403948525918825359242374993449758392041397530402940319385463752571091699108033291957353624058750315728026514304134444215606434204758467902678482162974346764913244047980686477327486018210183853242958605742935094531922526222629639733859848939722158544793168197854705988756140571006222834795963951466002262681030962099150952811373733756241697006391849122518092675095103559031438807307748569196924479414996783385639112242917005242499663452227110282549948530655585167844426589206856347119943661112145541424978769792251530072070751805027033567453933251333058346405092503207147255536808151358539156990321501471852076891602882249480471516585796971007625778714843471017034382550702641639494807300984643501253448539847602184235016567025596398651667741954573414960153632725478602986115747427862630456449973977319274790072204201210872819939651907762042174442599101069874784478955935325579444113156107004392983430283529434249864164985747927922001278998601741985267743404323391104029337272502477342436634351491455788258024505380273824864573889564768442378335176725016631831607861877463799206358293784440785441579594654174080254714925398819372158165637641875331901166197360360313886868081783223419508685440706160984427080375086976132205750799337248339777621810723645739988476504547398593670491830376316672401780734808047934093963826571415479888549806413281419985088449631953298771164871073401771333744019250934268132688630288227586542399837993898804198135752215227946655496841786132160371818131787580214321761043641525245629836673647286066021896124837682359852701058941428019778299165988082668736040944229809025566884069258420934690393370226734471732531953959812433261434872236344131985635003516370614379331032957307590828600572837570770848891478606023509961144388062300596839107153392443852016080423752541436582033645241039058384232245331960628247213347509346360325483243744019004687724766098695306819875597088407152561800719377808302710499362263122725259947485791135753534086846785522596066841485196362540356008025943726216707202823413393376923720598437835447082487610771251785193639329391826797519672963776817753054860871766761091361472111250205563187884168800726608491613635358488606368179965881423442071961673032933535889391048868481809042637983957114560601886384223359268743569795368814122466677744650757240255307638401643257184653513192000504809137209017233196468765435978840700983791799711720526176186942537930461318677523382012718163214534662525870957277719520367400380559051727679937651614130409276568952942845265984668778177232189194023223957126077755835161392075306396940257333296509928378508834329676800475557082212755500103671143873871839088805279581455317738433536825943989365104542758418172446415531355994058327960002907640017149846334824651948852193910127356605686144520597205328870866226891471701244665648287319611567268507496508655211019203854531702133999057067530248808296264220152244472506724428378563226380445370801999898289067786998079931188680034243685182532446598461238102188099957784427096969650445017587625192859916527989010250589691992338430720158555692691470549366953115954264303020581618633735696378832960742851673291469868779316235022462661892425741382774620899737953916216945892466005767641175636101865356912264736320815909530482532522661388631352537726993958798911344603544258291373171303935398317972607265983717667243282457937880522692338313357838693003346472043661170559317083113678777622908439059418495830794779378475425385972869801974284586861719881339113726358173534035723698840726576419895902420936386149540700241815817085189646097257306742906182359348137047769855581974165094251978078958596165974179951252381639011242696459467409312487339833133457856829196053875557664741532615609236557347450043883570767684786478519581537634011411171844335531788964115240313524417664084449268588502055403159271430326574792983460878349093122122399112935827535572410287391025022750827846479365024129223157632077307206958906639832573478874528703823733869398541969486525900747817480389678524355001387317392803742090584597450771207898394041657693436998224579315169518058206375446459424180456427386080502491917150408283618630767263058065784921987693081292644855989549790259778601886798636524600698732580116224334811286534486832186307436347314240347586876087727812204815475999004909125345204904311329152430909541752007400962135593247383385091346950095627282828239866243958214374169452149844969524978608973321820656683845861535841298461382572129007213099071884617086072124454120980443371126834356992114648504180278073610988793166183848004383205206415558380756796171474893594691009542163979909828992535071509506093050152763296154157132530775903359843558667327603136276823862039149039493031042243957145762039867345642881166692631073545835828015730134675896391168506749921900639513994359030549842013355040538758033179719596412616940319628823255938638130380006154434053496888458405833598855410340562494720996709802770729060279865820107998723677539610300673924800882116902633369026026849328505225040017193240298341600694022140522366090710519260504027098905624556097840926117265811265380849777359429996413674351264177308861114496324188676486406506610255842305281686378771068899993458425135879059415352451914458725979805730083496482611539794949821806310344119219132132952809794168531064404516568186450648841465628827858611667083414593701932869245702666751080134192912104416545943622409565704521650721085466443632368434749811322250730197559179496041930680451483926256702911285411067647553343118565377121969227540154685647866400637791996786786761755018439744993018381059687112440486408026461484165822830285588995423295071003525513200781325258976532985521365197801257369626553829652165047035106452310020880537501569574270624883470352492839327336591866248974124291983438149602498239674260088220946524485325394484059838700828349014433925229540346586536468563361714474338821395323124293285392906480512775519607741461930732351957930968880318420578776055742781451928707851202372617225972285288082496299109272399486128045637679146863582819164550549470491793598133184891882949168651093555270345364408879230042778562361978112902529825552516084099294338465366223075035922421110151192868883615633544903229938906070839358285099710148922914700472154296539633573949692080165231441292572938846751565812374362708116020010272245210775131674717146336466837089240845384126640060191038528994879815907085906917868190422805486621248005154172053684501693198893743622800157906502932862382714558721618862207353484467154126254108724329452133906821086057881741828942068288950171600758214421308301064568534841703394040759711649340818673081932812893417629821694724375215890817512850233221670569855068768691550119805310424153436397596852745406600635605889048376777012519843583938500834425323421063017135887724934412698594108736636071534904051112019298497626401622229192124831670458423538445567916382439251428316461427264269726414106347014082252776943752893010744972858605097395593211943468123202762746878507779615733233581624417936891623423249921203632840550149150067244127878425804461789769284559119470014562074616279397857994170653869575916534415448983382220929744367278167835026082302186316839632876158033072738683395350849136835424682181719958500765312658290932907117137173485583412713999421397381943492627210041001054457739862115466943208860210448164510186758612291647832189202177111032721239465172759771337866767058347302873036090010755408371316409317336732711514655938471391641869011820732743065844129620131819944062389159092458754527881608492354353718155844122317391776660857817450673130062964122773357858948788379690456913405717308559156786201178997762453974221946831052180644404249302223430777755994824832377424967138419262842975155434006009214222842507732048297787810805231448417869560808138273093544010938843687825379823337385594870364336545783904666921225177526892110990004542453954274521789501563194648098179555785180596786038340119298711654362672774919984437626956660794224424932897838784274845406107678039551827067036961646788236319526451042110890744154937878271819081226636476735020084239260215958515582529707030814813339718712269910629678909322090553084853962765734109845506732327938876303148554470860167474802872424538595807202578203376253323508611340268337887249552054200055514877375335018276701351427503668813203209443037169376476286295949893237933185974614523605906578619893641859520994937769968456374462702175175136899226712799809757201359285953079050103606371311921466540650756910321553589281312619035759519449373400001281944090493804649149965787732552710703585249143175116041822140127677077409923498847135191582666704397271846540921786763310360639455171392654951784741493686503671528051961794253460710621700234162230631467664910176904415844178618253462662374362505746605321390477431839790553480974968803623529581378881838917640522782382371256110597400958896986806889936801405781092049906437101817966466525135381280114850900132186796410179455018929849742371520231090277454448713639173698065487829391460875403281235567408366226153917919142829016062361820232439543471180705910703947645924477715617874717021844150624322427521036296558210470419521906248587263792856777377066984652848792780097455117018239207971480829274101671495317314236510623959426567907238313702908171906704017571602640098859826297378218387524022143166366691400778756687351352456789877889948101077322569891438164660223885447489585320554489388749810842604902308279921340150753816095910928353646338066892340765020006152095864732172553972596030007386609831148538382306319765793564436953732277432032118327110162632674386086164955429013161468326077430117260799308353091882135201595055993949956273925296319566589267228544720164465103410418576871405075554064568613731576237154393738594944205759837718555704972198588936013107977475180509630778328559221097421653909343729622294479655030434753344433079296442880319857956876165824236601669975371919185869858627224292093785234408503624281918139437760988519088425824757235645632355598474968043826743357850578760334234620332730263663295635866688712639265031085018523822810382661820256981887689903372026673836602958166899002939258844220760277341437361568422378952623217823486461393953756356988180491261831633887594892984036704579039687423062721733397133490894337694353801214734888001747780520401310636409702985229424602669268710127183627652714727084343243627500377029136387076604421514325371109289217304558286990130231875602773652879429221076220812618891229935411706246056332367461648442559364488327980108086580236082802017660788144537417864208233541617520833273508167635598791646707254264337008347856825896133252927026247467511550712819402731953967864470821470561313281624976723064035243074845625715924781092567067147113419696695199311998675618775003215698610029495315294875931017023791743217529195316812966595970674195558269662063211021730074731396703258065264968958752598405865344577780247337061499844997111118060417111142911142285330203550617845132699432971470350629193320108978554308515192949786394317959961406779037202785745404133729524329269214220072941365044076581267449188322111694459567505648316770185033483160859286499545902724257417454021226906514053279709792861019053062791793189399255854614839928199627619686239938635769230163568907028608347959217338291601130027268302843420969171303978098757334731316082848177474001896474719797711818338751488125556983731127901601793498869861732695553521866868090817773486491125734947860143833868432563621753701854823014220622568574753334911845122614151067814831645012293246931377849966451986710099707691246245846599728603841105643379074998287927722343705522125642188738115035154394765722514049568472485626834780118713450073205156307230898117055446872055980600411049697291545365061994070092780749513850349119550264099870090777446739314605486888473202116156660672256298359823160270814372164186587561331848454582944440377643328211859880818289233049005038694331925977547040521975012421262085630411202185851620194116117312201627283915998212402365659006719424962868898356031920835338749582194369358985393324280769673030251330038696078509143883188846002535613675952372364235694732627470408688748114035660506573547640284388997560747288389677717252818569815462041394650028572497859934060415537338839882547019080247681592581164297476159762417943936597664752576230490721983895387531986852185467694676415141135184883418955865444752950547171209698418723835853296616623530664465146890777011249585482656840134578073997045025411791520267581879064928126633040040341420707973670552072071677362110752499255949686859578378515155812122689827139056435120455985460663873760674847492814128146548764125325256890728869247362340694889733565799770816632639630475137022336700277297832169920389862857005836101276188382800615197379651164343450368868095328116341410948036550125811553134964587809246411380787944780969504231622977352437515444185119520725176109821830917135970061764746360741292696494111223682931056516888180248196007828451131014838518769352317037929810728310608113712820329367453719810892566486035900757027720043007117635561697386475896609655715660525666547436465705289656090260837232479632548489663444563808257761723629983951478745558285252909330027110080213638273246490560458279333692928254725548271159819527662556289349656621000117712903578648848467509668599932444458036252690150338998508617433123589670812290715156273872358166881602440027980902702800622938398916101188870370860012018552583721485898737029598933594074866803884343175991527816209169802486630233885955048741135506393333175337842220084004133526083512372522025601007330796247954062742757668033385457961596110414703903826543604517164149338766058978638034619092927260826046865928222363545990971063163439093273037836322182653767275088306545030331629355638514898438251451672198501305254930822047965037429426855794517998891047293126065782800888671760113286549250799649051160013936861011323264875583408923039114370094537401574203907791451974517847408828048063069968250565906492623431967287667003108716199910829047514930413436582571804271535742468640173224698455780076759568448715574986819057525014130294551086406365515142693116467933368032171224849532638191563019734534619345384057036510549642111577198993161724332774795647251072087352778091829527593133154847482729423777794572759511900559508036489736470894245201561319579260712701623563744052298890583980283214998821138327081242295812747724605252543784122048757608197702705848400783911987391323753284286666720775438671593799385597268295917651550717200044802878859360398296425691827391032891998864034319468550514563146875541477615508308097022667472436958138145701040053448146971747535161451787683301006246414358474345186060448979016054997373716926194780188421871870820191095249061630327038962292619895697020781298344080811654587488350762066397914278477198523001857399859946589884248268235757951120373287639569004755071662468279213055788636509899115040092867554674582413768222257633175456502935132357501485615416436556684049393214416975997435591098030794405839777335148499537309829577378664147440801230610905866023161698701007079359957994978627532295472049985380196041091102266302730082837385672564287731397498038771956034103416545978036165288690152305981978215657420487188190912227899101474537597422252196612477459658148339079421964477096559512881996346391906054501407512974063362292285032513988927444117837023199808178102306671538652782502658274446906966282166318370848663224143285177965717326057939367690727579188261237443354457313909833932583680107392058003076987234673387153740928815953781299123681507368508440440699765835206481685118352985287199581971491265156035677927894763538612436507860425675646984911908884191776992314229878670719559487414601958955990857960925683933806664639749896862545404080049738924473861766189094813912273392014149821403418783859526215935105385262630381872105723795510699573169290039763131050164546463798107818653511664719704812252747346078382056694744616093953509500688019079168010931852447707944556186597191713414585220095224702034596763550087596843493069272542251288491860520018018520080108415896840583889825495487056514268140566807186693710152837668522308199855384794900695376093422643277041201375013681941734791698899114784293141444218096697801007002180512469038938330332915071197598371942740258384619962487930265429718476619016151466866649074141231105076132958381746621231682794216334102934133582535857229197123356024978204369401150109187388653966019618381008585745016046855808787072791981240991209817992209482713052410644153311962792959769856977251064346691961948447751249633156779523338908880821606553867491545541932683696223055678556403116003065235146864182504335291050321272084317427145504976778796780015780430904546644287911940250550335567508748125648082741693135217787134897233800379951256572779571041555727824659371394419543399744160489501304189192149016856375719395865026797178507918397874263346613130341788037502955936026702860811122821704170464389663594548221008351651376737011976649664494172498756629146446245127239532654052909801551623914374541176730465283649389431430361808811798741075411544395246313966693676341399227518676788366053505406731130747284146024869426589481554307537991071085910796933304537171944357798732909018640077820482739332851797684131144525697921482791993019301012218308203816137469867091270551569688956385251403572162770595324326226246199036498666209296895247291292207078948887531471353112576165358934208525569328597722339444766145502424891108367709884710268626025041347159239852618159392147259230221989823891178519725042590017889891748412254857720265171937369842379103503501275909217421397761707641771645003474034350484820977494618739499682322801211162738317719712396902610859267269109871380936334827756311774384791241045471677937917406800894482044067777966287549590962999014953307730085246614277199776752359036612260909126921861094415096950317738627466104650927556153682032079165564306650004926200226327141096274107572259953298468245486814469572446009074942643371137535563545185506975415055985848085731971849863297276436785632321922771739579877782885357514339970714072913371395739057439780066586927229680492372389912380189802693371568191631257110008331397586157861719553278360440541832615430656526434342645589579204088773009042444014235416619839332543121897536735128035259270249006315830162893208870605641536278987901142876262407346715059135868330909399997944259127902358286771514569686087484713776680418995288565335400529619789457779672711432774646533987349339616561131147640449818081082440080592629069526466723203875635409370270007402585188213900795818192030998358975319114864019330212901507206731752967173056950202847836308755389856870662012803903655365074874002914990500734984519614405162607788956161380848046188944149158948327972462350672190863814676694454001313351553184410851283998974432652874338281866678567348418476981205558553261616102266562613636515798409891376909709706145341948809850883762285303540123438725447718513326506985173414104378219426435256302007185429753436364890327919255525259599161098241751734353261563898789382302795637576515667410428884774914252146868087447424965255493900357381691360137249114287141258359043448248397140733217733686860104629347813465275637443865909534571050140322421737637862161067271443983182804464242623045495935486826747680031471678577498454880109547216274237209207104076910492352327537676240595759204566821365558284481850285169903961354355408406580046424538420389752126072167956110786387629645851031348624021506246437023199871425850397535236597949904358865037833485991446582656191390094413060790120918535605384331268922183141158425406318940441786107343705679634010330146080735023292491828384950991801887753031561017156292694077148269414537106997496854617763356823149520418915340849551968576031914214574502777058384976607674190471019037189014859238467338547577492365241307245356786296555538389649044211972086824798603445888333791994196363715404632434811853676883815415716462796901260398808485805133342532939979854650359102007654008818083277031897352105418053156613619441398339168951317412651711775932178512559484244622967601468027980430868988430026968241319832075884862747774501606804831073336601680905133943420048260169308621596992040755253966422031877362379990663025537164993979904582706500013668076071205607796801140797737130129467702448384341840131921756188082382717930074070432646616093877927156823157664010300630140428731018774859422674276053243029704542928267842806137226505005023632580741315024248428175983835268417809504090295549992097826809767723438158036531166309114414190220451416073116031158380881170488820173732690060191832767651776355943301019331816423654110782166650909447942446600476702516626792053959592769339548211992021920818622074905700880237943067863500192312808119507513692819726881989601967089865431950272255183819620343018874436527323987263914306510430928119138466669635207863471534922432185441035316271158173235222250832636855405739624161515964814069681766805481926136561837086932918669870936751016147351299990495729515366518339265788179937898335497267186557090127496481180222464131324109528378469318074480787186351217183126062171982392134446243668507623936783171893109141519745889363190156091157216917583355385393414059319776642526568865295034551343011025893893902716844293542898791081405481954403168110142249310926092579236773584028724920341202950007183029104470605260813516800648225132507613161498650402013229071137885956489667344210121647256551696533515471296726178612677738112486575879753427011146776267774005416567127570553140179283233511163099165237368881421648456483293126086123977691852643286047955476875560138100636858093932704071716739164606446563265827074909296308702255340678104776333272356793635937030266722104224587946477923763595800526411394754925303026239704669695749998219861910395865854060779422244303600043641782989953608639185454132221976972763528946073017300690635669890230480718058282014773330113117320471687155676845040859574949005662813561401827196041852371216055882949539380849547803443265571559505336905873868916105198019567081490957021704022669726687878239822466038251948149839746439623351547601294492253058844239180157926140343956091104410084383631183130334871219555587622191046096118088288819694357259184616858849471348553451540108810146222126009507328991158366488622669800852603728352807047045788801417186811423582083458601436940734898493835377859303465255913296835842182016645195417101202089989642175489524773866049935457391725245750886778527739988702933968601604679354249633460096147794385373988110235651916073444099112265091104440344985957852686418030283832882197416673459613119942766001299328277291916836834477603974873139848455507656247252720581767165127653901044513930175613634101762972002540728672734936500612027034469188154235759052784861023353087227845551689743990296504897085891189336813817452902344411742210887274361192255791459821829170736439344287659506179021232306746008678832902293546381336699219102155183049646378432665875753752464139618470560330670612853403279444315875490571519919642626074058130354569364705877451262946246183830302203149379717628406371522684431752584162081762188879018173380924371608969333844994717527839299150665975070669028906400839186794446601505783893997522482730538566982074826894800009847141763779751297299868227481714175794620818860705117528905079548693202833893760887032133071502932728913100646008570944233037262124534450423676771957664474126408313875128772023912685540368610638777432327461419076728534189552006403120297995870876030171535548030451143639219369638041505027666895547765229008443447989976780091492694282042954435198194346013876069814484330491944768769733412375542592829350655976699919526647648339303367185783406870245278996244029252821170749003863722357266367661447297331561861545463090948622337111804347630531601306946400693691249655470041973484109944882694954300420843588417309331182776511594553958400099834124350050797964374686296366183279354845360577803755217402398361001899274173771873057347223974629979269324112250226275962947206045410703020887886259407069299647136161666867396518676071554229325008814432871135629255330885192659062172269572465401153149926405660216562080033683262347492700979236254731226067834026758378379751524225948896473947572118240629706344931732497154289234427054815480281386108724942895374004696135786219767672520318177233060325331298296032900490407387024315538836527665115793634500131092837345181779100590096364094551959284369282145369189551247974249776190799956872279811148071262001599307176452080355711568876894123040431006060088367642828740283539789731161575488222987774776127765161964620015327130096990825559249908196900595493473693927657895848635462487179471520462317209207185522707058842816329378218343263762642177862061194041823889141694295670195992499173312394642110479387292640966239907436709336697418575185954879162896031467500758090738748083846039385181825523451169148879313952797003524381874887468606225267363363442574581922495693691101347933104160361849716099043112879719156764382840534640162309257922692339563886563914690960177956883775036549169011510737839100908260347261834479570090806248363240697431826246879566930432234323103229268825401259512661302592201375744922019791721961272860554332863313093108634356385295878753782976990522801972876653444428499255688988000730694007127171868501211341538296676359755645621027948566981002265679331544611360631952860282380856524298387221064483832123481908205579302264993444907608081238929253769142488461366583548710219738880962620355844986340706999915370598275428477702623237714124291242836983071745359392398501083919930808180336493528613803076757314281252235533902667646037533798388002879679138431371607681522537188931629405988654245230036303622732512107927305047374748562490096363838089271651019347867147137667545682662258744111907706593923503288948571429568600508857587209219965518393274956308023234167482823039933666034912297454809409924085733460628614333623906922350865633080557406143116594219714393773854035514712940318188498625644790719933984565447704931916063202934810200386819564916294003808524765809149505806527667444771579042929516095024467034170226527593506893915932539432511916172017064140235370063570731508456674929820835562355344779355116355984451490929841015913539393437245654595456997019144798284843398078119464010941016219874195340819962449089173748247140336470622316573807606961188762791941229771802782388109024065539840897415493883066395486271947458736723560440119590133885482937759794105316243468435231995505607129498924085845963510718163563444950628191301909546939207635011722565913194224149821347128995105100421174152038487199925875831829205449181843814254914409148272215031780613215967394209045188737843730734507109111651727478318099809804541148696668023533059392513173988932730709613691166953857404634561197173082352311493897122089678783414733394716975122425418341386462428712633736390543146654088362305166879054889767701010788813205881083314353535170314845627287905926920645151430971186986499163953540485904040742614560800630703963716943432443126267581155197826085222600747406670602353971149895140875247141091195232809999183970769690207187794606087398111093287945071868255921941964598579153608725887890685302046445210823256716703915921362209563272433371251155031847240251755401995519970083431532376692519955097001501012093094072724412338633565202398719445056796997597415743228280735960740326292667908415034576148095891681001517463779157945599995499137564933833057106424598403525204162041717559049219640782532085934434640064209055174834608291275128743684745696174768811093055253281138420944686203542881961543051295384673135974208287150660745747636625406217441075964051611726741832594805833980558566552824412493825238765115691557262411994273161283785962143201179095060949581146551639617847606494980926471092489582794685709374470948161524302836254153261888585360175768727948037352500436566000812791994985442801790318748801016456318219179208485392104228690364440376714515780382760983923272272402755758994674513851274173210802456343359642989852553271314066416955626567683460120052127116497180783642696291582547922167324157322536957451726167502013409362448917714874662014096235802106699425287621234044888354849876071930539010120731784645177730984894537371786734991870585260320624463428611353968070843722604325957965532752313772309549801689223026267066376654123951119098486223816404861123594101387231052443999605195170198720819640741932428981902517249600009903120297336109677209982724620067015098307915173090109011212110655842300415333801569230221728351128882090248868315266636673351253826527764402535369243618763576508270501608882588583121737210503805618272290205396053328149708481889101830351655930861973376488553021763036322601914087262440129886990713741772800795431074324281981292412011853895428824580056153789350756197128644155172879791192082466201462533496308699779721981944969348425098968152814533099519382934877002734680921547129343850207224055924075088772587515446812752446255333707474159486235822960209549793724511378248793829519240348855237969512062311107177951345133436398201948126338059671169916217295124957330752875268120655577777271381229825460984084921322826872417888972125077586099349221520901454883665479788700963345811449918059361820464967942617270730873909211016983707883444264155688082019415926981177447196939075050075974414135607024878311426294203576670737189488697664303880281975408051377078729616166169323549092484365839284579179564614872457296690789635620124476428498645787825892848535275885297648083838296092164359141547279995866090095493226053898526075412743938128961718056279872184177653523725579877983687109613210432714498441087325525319161981996060863736258784384393376297263587041984058480085078564781486078328937570922362704857005552789987937543990377903082494801287418009610685810202161365586232252207312909388447270789661799930453016116933238985943085937311020168545774809529665140255046781010059641080269169154712026591276173871141082484822974779812609738663552515388480659215492468864721133807160803172924042284104121970590238628112145408946832587296514944169791878597957790111767635937602098570473854464570432124013434772451518649785290029076159537246728749190753406461457820794421552016845632314742666042114088065563731914459673271328988449919128429475110212189737701370318791224501732422173314881676323938524558410977749410847653666151478542005966331535847879920929931667721470493312164549182431760927579974275470115232832280119479161702085364543653865249941890042449867750989253877495668443804176120403172865396000836482735236405915266145578888108664630540342577257900958477537324305858731017647914796487292061673943700444895211657833647223974687388395381668297354549549409579678620310086470406336731629309314829870621758495628126640373951438127098573299698031070656695103670460383392301238844383328669889136641098949489928627596161609562219847885329004732450065607067562628809617044486405575160107536673451200361933533035094069879065648666219978862601663012282658237537893796171627332576336939835729298396287820403926055855463460433731214079306709940156315303098120569711871912280516864096183893130837537175922527110363581040350098789445687609827077656486938322138055081476672222666929489773738264258873000103081814206787206957624834867942990954191054454467354428407450153146294533272498289191325784451047495523958518407242609126535688726404731255313583095753671486132827363452613419832499483328013020759485141471166418990715265240812550797598725728617557617543865536707942024491269568653851013589075434430172037477161060970375658751409322146370024860649279283427910503451519626769119022033865873367190815640899473819317654948351267775841797733759056287384773596641874239268288976112730779361737755078935294792792834547220537695566633826414974740803488356447922640374299532986808892863010601492573133761794820766787224407663613827361206440916995488466051139215823442429028610901998946782607200788551859992920818345739758152306685021571015643352228412152405483534885481431688662788123019838945400473269332782195592712272009615588427210434046973818819464549947068911961301607368432583141286149858877864605384852634779269341849325000500948901331935681542344403035536137929182097648208686869025811424476703403905800073698340444254441083827481824666393939483111986106708595082908292833907284219262806323079844328396713693281555704158882990494925680853981881257084748927505187526592527475100253653259081830335862235028488739376831674570362098978971854944088260955533202018536905575916659479366484913653314190540904985926554005408153278283053979147826982026991488786821697252709653407026920621367314819537255695559376509450753922760498931810130291269534091845445256558158161259344653913900469549777103615775478188589198162176641996448851471108914741102473831051578686632778633530602839512454086485818985721263978804231267437810498492100369651903193423547588389340666565644309882883362492685315724362676868943948921439410671118006865415229079436305456583563786552775804196249068498351572171865451068898866731818645201895942208826310988577308913352672976576965464138702119318817107082872275391737323257601838843755023184363377204691857281116281425247551858845109081591174094808407225825594567576089670828814996406793935594085361542449981368531268233145490731736084556538811571628057176779927459005074734829215216991554899108695277061402728916626326349510335535533797979279017738391905328833591196104569875427386948068131258282790776227082428414589317400009537427919664406313987832821708196223312634118423532569598486378330612938416260156430835302851430743348650795300056998443243216019443280840601639271398566405656815158898059727124497244979711836302384000247682646557191084823057652610420641978720787094066561967023038601306410653186526966487317205802056070894561220786672360950568135528949283300884804511145089065887679997891897925170766791119258805039550362000125213854781974143067830413320228938077137663741378530889927767316094605694035522997632489542545330700703853745421202560198979811300244175550285023123335228576952018057745448460822494728445940544502395550988489300526653471284558624099984821272776991997891296115433968326098997450134004744761473695123046223173962610942123634091139850049701556880185531824262832303146110402967196310843955335293059920121882436321164513320939714643852989808889605870538932942013554557777390550915557220485385787979945376212654796559911422146100299645570501672000326489270433622521510316484308395362604784224806640441459393907030558260322715099050946213158375699979568408510037451329998026702950014930753249229050337563986419682418810477501700945102259637574101631190603675486631021713018281553614428433646193585997724136767104016682470602423356188514050158793695767875945190265002833860339362421432906587779676526285244679524872103024295002739115125575501347946356691609337271373544117485354251032360359255858799697626279774601149102047796328616655124240617183304815008895738439653834491228933714436335730348601731872798809527842121300430177279554851026786457971011887952098361493854580551768370554085358602528034797786291704217466468966793295257019879294234481706904531912991436739354792094192149077794104230322705467799959384646989421965661090810048682369325455915579379765980476555327340986553827474303830511604634996543674790500951416422035684725693945482545429625016960857666573982237419518691318118270901241776255989181031045199689916240876171340176340836039356792945466245883483664436042136167950960007801404047662466517828701424799696671209484727451858196217375487892668483273036368719603559938886636430243211429703385850697379883631951674044762061210033639071380800510781887550180443801649185722825303793298864320804742463934666213402268333918750624159062221897893284418190434557454847071105855444831497127424229410794504431698685870519279309960367195213477352827762399911744444277245388564067465987718799661780873581391658645508885396548163366011393169374606250732965078988980606785451519909044948991752926309853438876842957516654950387560745068237659929048164505936340583904636072602253926120756185990401962719335521927159610678441416810920518040893565810612385724913281036564215909053235511669108192299509451785866412237476054028393331108264955677303058260072567574452675876978060352805907846949652245465478126160445801746121233750743391825246446061820553842750274891452675434042976904405658843072187594939928740921606685399144592538636349486859351323043199579338603940372791729006491953273297999382328626151177694423407234032160136179936197223432166205981243767662640945696183673266468181516877571144578112238095241635682579169171609922997415134663403910834032422378753874040558096311033588940598263695653757545918723399905884186101821851236644036670755055070350376777849346853139815786733906872703211683067927086805974541694445629128969442608235056556345488971747692863310047716927421897367341487243683438326512114407791494400937343899236498542956460965715010083871083873887611178318023477984542646080966436444719756091225218301605918237279992732757961240309272975319185723347880730502497045883032204274767200770961369493026704643398454119962919193251873632643882258184603371063137609184921321687570911115318170667266408728111637138536300446066955234604900078808848264039681746147461236948973604436763560346115845377269636746306190615969580477697606157280598162090184534586995303268846885827746933596646849412124176481696976591773514035646731485402594245444193512931772309656885290526951220886950110006770184886516617275926036429137203143056528037167905922812042916984077815794071816424965271589178731582923324363808940010856691892725424507359042128301481121493331037532110545436492220537532671876172891880631741557005301137408605701388678372795606983319233564433624707769467052615689339174351205629480233958646980209421563933962306942791760936405622501936951477562595103472812684411706029098912172662780242288172294331840920642264267194637219145332198423314793071928821090208133964490656026753238556864071646719545449048527161031446498853159710634829606035623310672014639547966638202915723458033229041759453284810316035504072167534780671547256190942066050977907527927740215140841928967467690957354708695879703794670708904577183916901694306384758988660274174832161948406352534874918099212463915423235430160949509009324343605288120406773668867123657498136653641713701153589260459501672777437155155293457975174059202123426584212186543923616080144096706061460925267279072807489776806420193209136137546362030172797176242136006541978655550244791545298400975402332059108224778500143058344121385302283821865781954276813522713645784240680724205782156010856708830541483801070871091740697750388790897731361653423961968712610738876838431817584948780217239176095120579818656177610016719552368567829912437931078856347627326603657687470543218509877728882374055773691939102334971379351108537686015530386184266656341754480741984817616431070710981332582021451807033243847238839340819700884514992685339642985797122466682679595739583290985896122209250362534623262851423086724349249454011362133934464577584444799128480815930372525834246099397851001486992900805074735480643878561803056025198272642757023109463422439201685940311957963042859426325387129840559569989390473964694776056034278008247182879500504201511577035888415875970721215129110517574032436543102207734102739460634261132989518149366548893326617979640697935804667510887341699520863818875380207983137445962962154094437448322542441758531670435154587070438527585379765848186421149725946916123291043027734646756244733753879494622264634526926456117063965429422736729295503807603224679021392894120817945972377970619901515117881062725151739089917004252009465448675777068455980590944075579422861022105427393486654770247268310745899952045413488576511546333315128810825475319627152301520806882768835802921295254782102356637963461169385315144637834099492313546834008406852551062743569264035308129257938782955934569226848889114406198566252871495283616445420853893190191153291605306381949564011671001156075198772258738730771432298435114204769586667317188055018962119825116581444995248199283188174843500608015473375300554933311814685355164597908401180370936663931341258762579720077047353441877139433345037216941258144467618757474187472703434884731692781005340932867806443219533703282579828631530472342324277224455968408666168434299651456267581598522739071780834728932627052470650047007958850961149116733160667844101670872112541029097278902457640479707220357712757351526309846815968038558437581634873751456859904399969445369418099684619785162185562985387221807268879426686570210152309621072031661217844512848055587232415822659362180144693432410316627230793131045622014903049786350633758456819014790316913799425561488114528819264303861515365497696767829955659456216430054221227832914247439432685125419697688003748409473379522435600013786001962810942957692189332564192833370795661145672117666273281843898939534883175310102668349791287902135238074108158302457737847910575284921669604227652590640094230235043593960536702231290466174194782156893531666077582895048950509949576699601369807845894052995942382555591423997366211057872550646159258118463064207556541721869546215221651434112785738803025867971682656937768233371936426484155296578778654034193749601944020431297421641604434853551315210867086556123822342008214107976878173971186047068569136126894860383501315635659152984231981309231429144583368729754040566222001157841246025947240608795694640017915878669356024861436721543695516284790955836208381683363929492319502162650844163893691280643265244090124303057147759611463515308793089137520168884057230622619447983030911261717053745330695481746522778124064213718742563475398499093816894742668351387824663184604637209566345126494618887849486032746818087006879728417654752872026703155194793669145106928182655887034814909963455369255490991251653338796957630586293055870477314539846658286378352026798860232406821491577551927355377173284954773312696720688080083931542148798145002085061296729984631445455520256078663193909447880681688394911708391264379082552030754473143241801153100058238925118395787919770869264137539766919639659114847147372370055896164892929485913057143152759339124583110049501906236729421583612019002223813599253721662557397587208874584465890226220916207472810861144766532840757507166351312570923333106774988835239322178163638034398883627086710247854062917931411176048879708002305677807582860499992077827352225868501854352318750325875418153169799664326843419097779062706069671640897370513881383905856060167012546289358497532677209351651827518351277232633802448603353613464655928360295229966410470300868116366281676432144838928273441042720309784573269937861739181416607114203031307543234518241360975655444170702690923604906118131844468143353751617970349316771563303422294123834824919249908906027814441741826735172739392438066246683556511422403640376706768004646275165382107892132869759581978800879322882042378566890567569024554566986319024148848315937952632671796175735993969075744595723240870559309623267983116648388950167502073532262307385475834540691824607736562101328868831089531947627315628819066523841231647182572585666988659336280254096622266758831732245274891768965161861079642171241836401332361818766345554805230594460529798325499502431643071322098541282449260956477662647093100262648182093571619857853892281611378272895347676391712090950761412989247364703323499991486673369834846604322043273301475067616194383863144702480370714221626467207743576851793434011201009219206292992732083966618565053038382283029501651935067811749232672019108123192382190863418690669253471943034076192918273841146703637104849528168269127932381371950405787956106440438537361166046076688056969009109421053945315370443641606919224038073621814844246799172712619339217230490253046778613998121057233648721765427880515439402354821503923662639503539547899177117067726507693647410244426281583771982868671016421177393363874784504326779208031201937880879004718876762116129582384800873764155989144754516555534788438301132423530539577991072304457702558998067763175961993126616490820290130073746527243810822030108130005030699223127202556016273367829071053953864986185102586036864765509141056148822145011721242872064536867418747312750431314729727360144252785986988745056668318253085279543023820908665087332838326795642366458232029605356207628522609879266086559028704537587290227161824051958509319566003152869387821435040697419619873790733714245501905538565982712866658437961211703194152806369155773558449555323191518064870237293820665778486746472262100560322786493806183593043931679128825323834147234652523693971438439848740051536992307906963703459777251392581459203482735943990879563744460935326903490077684594197474229679608533920750969327165981404560480370868657019313522571149498971610436841945715754010887955327954574633832783942484641994473084032932008142238179026177660987061295167027776857753009279931196753454976139927950926908629118653317183663565667911539423670964289258046165405798951955175955481249585045802817309265592572844655882525903052856069388830353554131146859065392770604177432186457960927555416149900754210533099525795769533317158578293620858734135257804720311756710351783778660442302350881716015757859240587468943198230068281663217157681206420537759329239897946332240070166475620358379567843793263714038996085207286736659467824288343542706348322878776734700175393324703648111742171191502034085317960996567004881264354677943887613440430940453060936836010163080655170501359826148426754339828490311341927046999873443659477860796979210807365201187088008743460440547579254052859269825046146795366641141052992755493528182130242957562627805839735970359767926601917802947531174080185542357966449158882972117715019886942229729456136419416163364209120476448027843004128282012997843265286483424129476936873827552990899590334838095463013516379609093487855615757794564512020737492738620519785675660053169769387129640052357486292960532719598035096604706428898632510439306686847995352586349935890206931649042987879093798187043314576001239210733078277411486367842939575189598063494915207482058936402552970586979873412002872669033674183445745275214962505987369566177707966576026914257981338729077983774736376138017186927339487805122871975131002320987749662350009720529254841205362501183479167839514450132109897991088605271097201109587704759323139864514761508976869131014046412360913547617342297022176679855010993955447771024642710079867312167636843498787069903298558100066853641135990996787678909970546133759569341448990383606546515354749473418451820029708575397580386019017746389232525866692038204263481144219271383296165384346518221086865622597276745668091900059961570559028284146234978935066018770931743729774193978340483767602989288616045446343021839535892056272979829720158037782044674135798696664957765554363085560387614958436938343030017845251566468892933366181711939581124542052036295797707360649029872968917605249593039828772379937081481978968674846438788933022592715032723168666738097569778132446685506432951607307926180908902648991140128050590463928655652336851065589668812792426891147935876525572176235931781448377565683150293478040244963496907496773836346530093844814435890629250429202042448964086707498942512214033234746040937831354152474933756314241267543719339404344957562634235772010798213443366230096699697247790551208710388243950017851488783054501752650099978856318892415519762585500519472160634025225045042557846494469113715346065170934967818640326135381251721849533991447273413775287320750411632627353782302476989642731396690503200456525077961557624292563715540532329099346563341527049042268010671642328186001586944357313284755372618858935896398953509935193468345009074624583761950883914493585543155955674055639173594471235784340348901458234813256206879421795958576731256549159410168410531411065961363362276605711319839651731881065971437746724221832057187400453516961100790462923481483551449748868284109929850967115802272571077627282417262792155996997237541520304072422983930061135147360955652268757693748700364186808936892373078670221787966286028579937186290112388961886053529784267781301436629757772445212938775385020278868990438915217469224749618539454090299251929376721911761483729373497020825722725983025689634096959785460694666822789686011636641545914574353321019063134745777858125864762042926953576655544303717090953129686911344365861830594063547370734217039710670398001189415115961498171944160932767920805565904747350407877731091262748041625930613516151688901563139806644941492157020727120454841829621209191173994521700095658806928994650332111147004579346767885464098717229768686121895326048716969844621288781415442778554188144155586347703420173408698954865644677981280118754842264463901188885179261981577985625317200284902487516450603774030271208320909168928234812453449033787480437733637707099633776348923484619922239593155281212558311103404908287878273181643278587739470117797037450426548475524200315793705971568829293014504634583950275421888241126995798366187559188754194045498390737030315460719199679233199190788791323308978076115156854215078354769204680382922442736831573179654449654884826181631818824377520880336677067885048827913027339109372885301708225377232985172825512733351823204582212878795568401290745111337601051102064879279484094163778490644951523246984307692688919132283628028496838663484789059488803223749844126660826240092640135929086051515165348355144657363844561568434709461792916169657523580122160560846422919708943218531146560646894355340587878207049365122504679371145803625633839686006721067113848252800949772736083884872568907508133340062112205294290604002409580702403744921958964038805813280329188317140350269538710168742933053418634233798082648807319816423239607931599285234102660012256042529689099043869910616812440261826288288316289425614542525172430695945378479910919446634330202753407330728559838580899262980019839725679405968025326728296603403974211285550358810254958621215911879311783278553488085275342265868153746617639366288319725852046643669073258137103165183487261107252998061871441057325362582939316479047464575516831140143544652809383864229321527680598259288015080794156080962943014160785675625016948081016019440816113005921157482874514393232348316730107899140101912814376524534437870401634944016137946595318297675202376619682720525693234274458724025200930251417668825742740218231635196287740493520047565622356576924290730274723938858863963212217197700819979626611776142518921664046733878601352217148348724006881220238737082862183961009702362582203791648111759593167200868221260829495527350790536595781709142197000542617313755114085108998194623275598242536753576813353739774894634099963089642957778444919639580526267855005237907850365812803762109250190156259775896263345503707768380830687137896289173827036832123075894934406228276033610771634183925638481400273119345475754138603927918351832235544014048046024373532053419270630981330995027418376589649329101234570962384083898087952861846982817550762425643036456177282497467647773394423391746971447375268750128963904071859525548574089973960052860612330411950776271020018745638315133824693038313960945721885864256351360119742370071319637508165394531671255133478484652221446150051439056902050428909034179934280106167611847448555864553778748462994217499927374229783383197489289630576446851066243834782533090079213605968554316890286018947041303494269732803595585473858718800605872853184478081452743496239311374538529653327819530550157595645545959932736974201867629633134734751242312155773770942418442567102071729584672695548455274321693937615750596781671497718556277507015452660968172510594204611929573626953052977726030632928773784061061727394314149107552463254373583937182803070744492588328805464288815643438352771180851623552014042742290903569918472276215445121940230714690717793004227726964459964626705943304658813022253833134574682342122358644723266668962767718488824461385941421538125452440819067022613840804850662186206517563793143352751784982515650868020667219199799786771548023329899580217663048185913495054572385699799813379444565044722396843473873396914764074304007462870718261741346147806020853264114222022079701132381137345346889489755319005156804022247518287647946828993485145546446137942265649725189168751550525612490057593697058326667673038931347977678246547112510086582444689636974876754844579953394275193011327808406016907860227776704389612174133568588288684747899487934516842554956084395490620212662564187418038848018874748044813643660081568794626055318807871028028230739854220941591041488670723842753182781350280303851929897987394777032692935529103976739471287532250732507064714607908020314634162624625111616031305035066240711122557824314070970765757719014089143790196446511548475278463975295896301851512328859770089390481130544467786233770017134433385022526973176672038573325510502244335012486802936632159431393206619988393037907196914928416856710092360427473710850092923432518928710769948809338381090023715366504503141980677263903939794514336379955553424128068460331378767105393878022310735489413308601236305482236346189719185026078458638336669106119205456963674567835251031916650398584690914005007039257774358051994781522090203833900963153184177386993106596837186187166577529967407406010402522676115964449401596352499104152668483723250118668726623579943020782675730366541629957223374732698796692604091314013690393845003652503296440886747189396153744923495243635649901912027308432345409531322644809711219879250412483707183843609313929750805304211993051130929361007943312960203216621225683213896590360148302014032621148001889050163128138593844012906026979750157046006653208410968876891283077117610716651123499992129111065826562756778909435248709989892126258666279091424399956259711003574145438691987132328101157718768311225494631428304940239628210703158618064476540594334029376904994788310092446952915650408892752061432933065406763385922292305016541318727814901548541558042518628020357424798535514964673409343139561034597917046293338034861490260358105188647076866797341711300697616271570263637650613209546776212821991732056983079589378447876025697277098752065201042832251996885332787834601604475627504657311517301792607104830438930493032477436731556356427045896663531822358799056795797679178901761937715072457677044799269646715125064598587580691697640342784060243556625362994244595216212153730626252529411406482919176593153211369605936130619517382274236774339925388953628601729148365454130011105813155503739011895984235904209469546794822043480339025497456999235148670864205356126445351933506253842448036636049263070950627424819029168085509769156760065103169923733444606607686183394070539772649681676772107656607007724856172072681351718478204664512179393148105448958872512368909067922722356997015962472344619521518731207586361721574494329521730488709452539051226918467793446777072223965065107471273682120288862295866294963968329885473001086087800213857614380671678809727957859938462152070179785085465687564082118340677720630746391206022670841797589042900325046715639162830854451549072057901013124246871746416436574181865293879758840568626321390370699807398952227540083060160267762451911941971125197766931040211005632584240840023199401976486147992015020281904066944369175276446267196196251591647414169141105234991234996517368118208748151294273945946008855677039617974638862272044166411378815350620432186197238772395140430628216313243523299321823816695057548721321987079058178238301725172538238892793633582636772049201059713415358949073760636809602977806598163301877489980692005491470209641392857100924430247853431747807063294945010175397900695755968817315655351704770482022137107579969416406096362257789910464600031123448838389375162338483470862090436111155545280513870591347810921209932355886236661547262255251974808573587073205472825920301489783674911267192400613078502440280513426101785164796197954745132340883820604532367931336696542230715171156103071393167862715045510419731545902579892954396527097239676521749868159880165044915511063573075381713399618500813008937027545529266177483952895374457489409240665544724519024525390467639775383416818161439782865933214471926029497165259807286421002979919362199951874923731124995252855373506957452097355851724088233339499044321966824214784841967605796626287853641267389553113331801937398891208323603627391094484896735417183150309072653036956732930244888583608143314897022018141513798590421776334956550365805418626202290248948450502101665156084882879093708869362873575381110459925486124722959683299719611915391154934618740612447111320196686755552888304326961605394018535051643395351320090310838970661360931210986570946534221507822097231989456089419479467063129122757599361908872425076255376588960070917802569227056122418687340794721121683255928910748532936342261577302424128323350174513460516185131098422269857847788413652796382938313268611814940783199783139764598928746101744388862345541247251951963084787169229062802489455688056326019248820224825241928557317718703287595025327061237856485666799455947340284339677051500014445791394351359113773801638734401352019456244000839652691152260199701758438998913874271282118747949746399532448551736519437537634634440153802616227387599347303059491340863070143857692669128772283189471284659176419337394616771020867443081256980828355434450108346738884328367528209546130605968238707705200087288190785054109654388757771690318758987004919670879782288021523448078612642791258259489141627952560260899852942978264041548264269266259061678444228535678693904767674459831927571002560174102491886564738345595977906899272290793819921421197969476197996575316272840238977588485496951251878162780339058865663228844150664185117909224446998184625621383028379200632419568750974751166441837517823106243371697897452347315591735483126745060033245324262751534258720777457969379015908871347250276113860959104748575832810013108818636936830393910849901761905876880957811022283184063533630975216293847185520866428671250196893627760753273006262632000404987041889457575278695103862060872153620108796674484942680710366758810709396123172217541878440118918615149158805342997651265133654163699595554219932736572256881117381416717036095785528463974165618265055142733275665644715271439653867814290469293336697425491025053612393990602655901346035562136079298589917410551090299388504214455301091776181409836180962783713339621947679194367227607302243576272607471811926739830663163591857056047349824902475255505954028048401236249099904195491182534760724522807556258196335200871675080012151640708082422266917342712553407755258130512139696605401334861908074029373872669100359216849415413323251403977943933078729699601448241337329726560861114233930706556427211661183045871988616398153003137521816663663796580533475954452314173788276326463112594093478750155546539021408812380488149221727188523683067258943635556005182831248880509346464123418435076112558220876487362225478372528379016354093004595219810151725617121839092352394582774280109690836539306021173941957939083553612287018371979861760244023529364300824487958434441046662895138091841745986320603983925448723041042251530687925695435126544857640939941850306762191309861675326256134348457912297773590367417094068737053518995465055931032228554680443282173284337713393331986159036592661678995827957680996643341581318274801748800763606328448742970282107601575053492601736121677445510765379464274588110456522369136556160014742293748128767822929867973729172114850691495499416222990689335243035200024726010898500621389374381371097215236136935343056682735083692802652148604510189978020629912662483667440712677940127111395364264284399110332543126772675311874208534443975264957004676727400998188732661391119504421213420837912590473934126805431480823471750698927527489958779932600346128296581732662058104296434298944793442879732783095249298628146008236240235457531502099216000294907517410857219546431213974961960176861448894383573278725452918819281717382529191821926404244247341183539062061014651264074089774916012354997511805628627370630032244164368246706982313192488900076462083103233752344858761082719926649215732856479649448068741287629201881024863500726860439317403271353624748321013060475917921841424268610732444614765381156334181617764038845459608138568529525212561461040979898706372768695765980377085516565538718474979421199297918546833194192086831493428175321867238949836848228960544832553688541751713785517665676646920612610547284921842020125095064194557231849019032440198807338028782732239523937158098029218157499142641680133919765384792276866398568735153795736828358982506077602118441090915927522169305524411674815510217951580035250466923841567984841540252784972460464560372091962314989293086695415783357594307316960272362557355067992728936909777638997752577419803781936251397457185903088974385374802757648647885747798626363971151409916742719419669778552070403129794014625468295458256829843385432356365988276605229919245943656352879782258191242386922337736870492676598824408879682817765248412769576882121930781416000723937281817068064086811095213311360112610783580800129895735766214527772404170421333996940608306873134808430386285507467508679719500032062758146792606427767007073333586159590146896586089901139848900029731224703230948078750497779939043604304032598768624167419095742518108288625655165981577793386369673595382427557678091384073733984026970887176874378108978219688584336832880084354767894652154401346500244854479285124670119196429408364674243474505066384516081536153923527978650389017985864980031912158889291780125581987525405287413311720351141558107921376154325958389899368575157400164240006774645852790427113646142715674263329018233600188764169083331974409404989792026817886593896537389204387671201539471489079981663165794933938514677883985780282029334108918658627653229745012080046529176273976200783307247608626058583887960567743627114545901243561789014613664247811275233476446951496458444206150789670722102127068328462984671498529749749442096771451696564762794840593909438135775590860392163250056958701599224993467443044809456322631196323513801549929163235622270295625226404148417667483402875119391650524356266306654225856313336203805836269098357024545388707509163609071721467094204793644431635923015926545275131502097466643516148441638478431663624862056666391725714311727563280941219345693458771785453834825286387449360520252641985112264904167050538708506652506919891518293905619975180764556361158284636773978987848275473829982450440266124759467253076980010165050805767537847597788290306746464643598304948127637072190446018609354653890410190432900649468806132519136666436533070077374281808641540408859177935474886117644322159057714648706259947622280681736441391965058555045889271926499077352520416530716553081338105390256617600183080373763872138633022775164741307577121377489087361929152811605217811622120891797045204250666617421167256450614634964631007310130822086960640886625501961833846373294335751520307187792974701169821733902357344360164036817611109747611492757581837932388064067803839018255010354449703674218875256863363630879234484946185529910204330519262937114311260053079073354688790207083851739576592576815562002857234681628393178098726146180073183688313338494311881714259544696109408195324048748945937906252328901610566794514130291448312246027740041284216051564009280246447584942818107776324410657907059229873737648624833226388824251709321218079940186639822367627545039741836379351093189174928619866807707105466723100100418741110477050181576462170883539257297292060040919330535628239133504512170923104022501763412405039838210997650569493819730216497376887312377473182371681824191847496617780617494309247490975451312842056322043171886217012035645091377643431136220447989272217763110752937177515465022794786574646287013874855903820262369112292197050598916630897651212105861528588720863034082559196875774526647008601359715625112928600151844499925777897536289798931145697704353955987315814037786990429789314048782827319244591808418349746679220979232604177439584680539844064206457122397584421886674695385769802121944075946887416576925567907801185498628352695414367366531460154109978963211842300136656276037696994654988505172136300759452533812579917161462223871477328067675948954365796694554025264360287160598271569524477524386996721601326900118697325309848769193395413311662081169786479639449371385198242198647402427915593521766416136858380616826833251159985843673215489739490515792724839256434441398721678292954287065720110154658131139356272877119589955790366614377029818199172746333201607721691632134997410245357556330527109039809943449600966894337486130314765873835863643395758316711778800773197777213811790479805704137137945638991240927738654965283388703451769928577499828821105350361014269386133553720131397983188957571681349512051210117900200678880653335028062324978760930897196013402328615386788163526216129238004738465880604037673491124924590659945676247430187522880109674768936725284077594521958120442766576460710628959371372179275028841049545608128399343543675783230201792170086748676257588681176590996168421620043639943786081075155254829502482401587131725303723836906481823650717726813223610340599096431892705427358828339087811446412737172375642605647371659267265744477058429285108964346473611331912660467389894104333249455954293185234011743959940184883439913367354880415281885628018822481620807613436118727275160646214333939110521913225143782009738064754285755026190587022129834393078365165551830253148210328768289070588338724062008281326850225429915792745318401102668889071378618564699621261033260854733382404300696783632049669447920663147833583561662441490393128562096760822106292105501274922417555651273431567608211389980426130721550347745356160101543643624375321903393538559807763117689011621698926709271917270505256637163163432771334412170182121231383862206317616304658540277673828375454901598219507899916006684875938874158743121822684716330663109766699709241579735620381712734064219245973744087517891600685662479696715007785218032762185774446378330434383563031414109417888029414638571139960140186209284595060155809660676400730875669388215397012770760183285035244069588046858397843760454346391101778778270310674607251168822166059688916729468747189274548010084741441320056559898705570164790368164668456829372136170222420847916534311583314298756121277272786413820212817927528970170327869236148203994475448183752595257391816785405389847330838085035203038559157850739333566039734175083534726577920860134541257290796203159329780651474770656671584113620311075005975670844530452365683245298387014921004344717937678248958191922278558457675806009210145717944205795491166898115922958790514714935542795669269434056996854611267770603819243234793307968656469200632037151351437047597319689720374254000841648228686819162545984350730997075586412857314328017483482242059773815143838810308923756086202476400224653692416111904950191114234823865468168728800199219205576682557437827903999430161951253107076200800377959514069557740951166519961088340089736591195626669335997883162945331862397857928221269781558075902670281118049400027901020136973710552392395646745705798447392434830124442361953207972642201768048407006389543611968537957276828220317171618927333213097308629166179826882597283306867614202362066125608315573218883516777110208979567200097460427492511106141779450557266922184709747253096775548669184861266776710067746251504711514588144113216006049688569452039292309125678764720318862279115108410716041706011538424954924952201059339641561243188217244431483359451388294616680466172443787538530125356195319747131702227282838322318459306629500414055550345920625209801970843542457040848807556083602596542154805583595550169278980455511372116572418969358141093264611058350219420110069547606105534913810642266304440712422788181898574622536074897938213354110695820784709575698504955131154559496149594662441649949334270692304987475272319997556818662594716812078516005519760221257799320648958085283361499003475123406607161899973078151195431612454046217353932879528324380919524230266444317307540136704053201944315471621299133981049444398442537237595277213813908374588151795303252344784619998540304899785750888346472024958360335915340314569747738916343856911211981651744441903531730029853833157769700405685692407913753884964869612579851314851591994770892653107359130197713425140656916393167906272091186829275434315893534169708046444249041859119133444877044160562603872552933885655730421730300369755554024731796014542487567223561657599666308390118407587071985096871371779591673918052093922613441639095040798953404776046369404417678483888706699995636172500065779623187129130806612268220411292207093077113122035450461005420878808400695425055729833525727930485696742000296412255753661456659210603541135808847734807319689663774537930751669761289227973415976237373657640987954771630949663965742034284542395211421247151350181795155241529997247296339073099366491138926898328324343032037904083842387120614351055254703300811368849608641550497852743068489870078940973590332974572151183848548079802273824851626413057507051663413217539966390176091903588631345866343004123201224076984408949448805357427796325859039047935171246641573815083433706482487999855920804539924569518791935657181937403469681443854817070301894508135899058557050549979353781157841812478516050052918913964917232891004012446116903386093742362350861365872910659048236626526119738830399509230671342939324187127954987982845499226586689203787176238800883150857043311290285330949051129164712939664069746875199513312287132226784055938735403212575043147184166295036022673333432893951985012077376590076274376304042378689110706581414175080963152616367526594595671864842868908752166551748805753415047606483004746543338810837063454404171717275483199245152375294485691550672138935481114282962604316139524742257427233000637807561951610628129201059203713504830835600275821485539691743455956509689444856865520839158654455177809419525869864805776621175256111110793844888178046106455894323563188271127942985133838904247672880801473612498476848137510537031744988473020533901117291498244844631847572411356583926246174342680220109169656907867025460051595791327989896041635560041212686606923548454186105979848236242366893962565383405386400397515018720636346089803245735540540724991857010808328975016071895327114562261238979188671525146038528445349830454078361464466719303397161858367239173843719746113699392256744565901201798470789380343647302594861643259572948092941010922830546484934183638387115381428313505056895832590268121739741550703141487041959383896269477721480657477078961667153382392346412568436481912821801073453240258897609790195808796421236613657312975710414985457763801264811922702136751005827134690713174226660964723828863410143275988881190351760629237123109893726930193750412735822621363682564376062343418038791295816679539773431359177037373656422531884142235526874013633913476246126833141309331564964754970628962473610242374876331353867928285592715652951593181072613193802184223320111510259148593137499317554738015757870987492463612947160298846742120143172156898262714996891262180904425476780675781405619104712881979454916584577787723590718440521039418644071755558839823997834527317165921480715690363880620605781725891955252803503687739850926341463833241261664453475211027624927028108864421197652045285601689631995369494863692656869690744250336653135010337943890810002371254391143846353299319088799112467741979746346585011644330613828687375948599514613285537945153991382010336071422849842638595206213217837072893599720999406648479500283838778839086932712882924918971997084025036850245615720865529839109427603298649363964794228520780527868660599566166188409784154925272548589765976396015829942616124488731298776619339867837815639974767573327743643071765043267500433433227604489053295424628540695191795316212591557525482829948151545339419434982107048658505147630697668943785223426797507860953842713983397716993541889488441692007387424419606890421239302513449565171502057170647996334282443753005324624224879294523394976663944383288311558420747571092952127630036057205990004130041897297554449073403912421522519250428868620493080861515598188380388511264198215195598665968635257122545339519141016243233475931186337319033996287492683989725473713781242883198997667791866994541444607489559697024795098770594260795005070563421460267183144762724659316425511642569073404838756762202326244365253529110651851371407703423409215001002189867365118590887104063814660104229126491876963504674225014316468961323209342050867001609653080920210118719666125586350987213155056071759705846128318087325771771499261755118206498191174784605215924049845157838444348650375648658374880180873098574889471737045581296022479467184548675567589879368168469157765077673470168444501831393468842753843393578377770277385336895586294945338650317461355010175677039531408428241077863487875661797753680295002932038446475076464424482438772955915402736672315967812838837281526278890076481792457519347751126672866125297591615029243963114441352621752720569260955966670210127545237610223457567477919907682092957856967090552672815658802360731590866260160507552937284028173385154344718983861053070322967289980426063336167535631264556344873412013600293958459837436594648884751267295069705222687283412498739872796462269718945928605220788991692053036803586781463673665808013577207052247914680434756647001069501106382570950089845683246838979022420467912800388409249711242486116830551137973015554618212453818765261653773504810720612491353883768817477259321824172343308341185222891517107938023004606089375632728050458781930364570192448076332520844605402083480553849312439340174004286663841042071768512721600757203502692514261516601382552011840441915513019269279569443354465713182439729834188462899556256936412278416074437348781272962488645000441229194223450263476389957255096160469892049245620648700398685019053773639509000802240477136149403005497084742169179613206066520019998986384005775548592680123550250786484106528737483885347893976302725501587885417872872081562934084381619023622743900530334396983037314301126978615001364453789713231465212772071259045388964637563521624760066202596445626609018115559573534418835286852391069594835638557315934225976070004374710020848627325562630594332495590798802977600893962891450630865920484696917166256693635951019846411672099261233513823081775062843003928890345737678693776828450524203414823080040956623336130512116212291984231725204402912266187090700199548132014091006869177196152350867638574727601600859415195950221697721516294805726849391925962960978869065382313580400952066081071688915913925140508808889099270264345529234637598489278837928064596105896892438675863879341173196027892016731179648175106968743487517692013247120924649282480088337665717938147251307191702480699739799577260935968982953474786579522287023262601297695038424659044920290413596711386336880578138957003384526505916112800724385368514270158255831517065330337184152639995726006654261596587058972498492509474892962514042440695530404303354746830886245425267338983040568269331896303990494901437829473375123840870269860210839781136115951590250803639634625782846083451401555091660253302400025895494272126650191208766883311847280192523516648956462490884771310827120404460815651333139679223071777350356663359751858640532864638264538079557897243423138652768929447250039017601734713477120235891329170081378022341144733787475601487806386414471584263976200534706349105397281369712055505567752139951718215507019370838109111556252690701694713411825837277480854467640305763799122663541551023673450125117939303650264887404027408506669250276635973919635955478793685344871707957602498502316433987504369838499624095701088943245040524723600163278163024537678815924133160668160185256648722235588534148345214860800496184041127428791862676229789568348552308274392356911681192575983047495712262447368436271350307038542248252622552740603251098595110120715316550996586850117203028893415654965399345820465012763813242122085766187693827564934768131188677416445632646212051809853766782917579361771236923006578154536897206069214637287301956148513973514929370134809945800824617914834835490009916894759080598505917307086425977041112828794333657101704482538193582926507377526776488742915326475814650868413981809522164896245188107723975720559363810147673810250210197071694567828581718587838512850548439149119014183710305977036519228291114190103929867029697903442760438625911969392834964591129546551241097866562859310246162855450900118866697314086704738340292482856541968651832402158211735810366974645104960041471667117129031069997576077916424456324811509810536096153998337915616624627890743940099066513567329211896436047441177080455611070368528102096596359161640663249111016798417758873195322901187035822294888559069558442925146184045748772955057604432913995945470852353862593247149167872811379363797590895661825388043938433255646295237358089127006556984538289143373576681318182907778873862943261622572773273790412443448080210426043051197740114942029686832080059252363371784282708812853650319527756059934119543702080602462504750644314948541184704875167188520336300583376495884367611501433626255377450743241646209741091600253250761641151069346291530875130152930362699600421439456199297113976633545964402174392758203748432042157877063326795807443335861769728303673929957024834467605382822225714562688668018292877233877537817451740073342132847738927978468118445101033780955698545527879028387822471955175493634945227183099496209351701381505481470407654358685473510107498128180576185506533744750368125799236328438085949600586989945022918779508219299009693732260466866509195542015532344130997617203691419410634792331119018243101178980786916440754416492864200812313656582750232350070823099538945633806428816757551759693458992713691464106477905380744788181074786174465137636757187895054208761122110775756064966210655354639433259843443038781667742580763237095854257772559554589800091227115745328328027313952499420251090364891756674258144180188960894240029891169840814112876749474996245186336394655326081128464443144878067610009880023502979833467276942341213466414801895527231653836318138779897039455104607233157295477471955660228676351215986107869558856953704358660908694888064432086919051655466982994351030084167795703469297454218489284299218330772454462779398428589346821321484939310599256545034125581551176755217941811847226134788063746920404173462099812597978812571257791235672019534727998518236088993460878457316816998693966959009354226594543815915866213459110684561156368623950391693365479243242069963724179608009380471129021273783639121376264049818891449797668446355586488990268830001547585729801210633073718724247189695828584741534949322817004213566328020286305808335344856321059000878470016638004134225281915459575317090062997850431566411871836014486617235879606770692799254522123653272574118782167914929712447160633131413185772651882249963418144711052633222084760842168539614251091868101878142299741277663733513226335242909260872688985163163882018599950114616241394283631743190922618536564856227714922019509019815972360776041587835281474432032102280026457097585068356425008116196385163014147874677416747495455021150818950576011004943981661692355162471700728481766132130014941983024118762073173815233878436418397733684043213404613156156026707769933972098762555219989153903928470566505349404497878469203680179976181394192640889543692295333548594057991970452325232962850306479825361124575450104511128177183269366549021897689753691090826931875730458994676639591073999771435187907896414883795302057374059700888190019825967134163733847294748686058686274403341072252233981942274815229915563832234715052232801398924262981301091198697667418751658820764611727041662999890514581596635545251212298104089196487927373997314987283061947921518883899489610990335694792398439516485908256781861974399556658040376913578772351752913200128199949681851330346638143909784308972901745529374029970770119083655857085927909589045570751232366230087923468476376340425222666528594871444513415847382264221449439525759110568662648643457148138412655383761827576330847944831746690329264091008997010133073662140818267354319257251819522453914055132021417583475871588630680210216694249499171255155194788275874802534892199515847763023205075190457250972663537237171473605271097505299251721067270245989158937385423442009539799599686293705416722744627029660402307492729608367582369006458947614910245703720565282292689108331939414443440092443398352924136786705707267388578571857481464132400181077433314457780667119071953788599925541989788403951072484010516346901417172026957375337180143127895639037538721288959972776704521187886591302607832745306123964256675779796113850860286569418090260759957788985666865023430015011358698041499489888453666325229472999399685665790503203981354564764811046090808902763889120215140504067864054181708736937862316654463087794651377965390903303434936098631012830480692245540448678248076147972206762972465256131871712119630343414030410088428797211729207710674676633258914830702864332812004820054616394654232106607071421566943885539440945791615371660629594544177352906215638132312186177926895298028208105056704759196746814775373942398099787043490168507596603887041836230664558790868454917316926526712789845089532880273046253329348157519295136673991454214050513866809475714655380313901930777886201530751329885078511279555318576748113275372412763735121692028334368410207522869956248269703195780088774390468883974044082406577616211587430028884328590433361111281226598366321989535935208010453189656758319816357243391036030219653224787100956425304217033963155347416634700841600824845920777559525897576781696368767186768085771950263767106264353724130567701106067789597068931340679124387446192021964471682938525593733146677298850393736863786155114437455406342535962031686902228628761411628413728445916050613921492290210375242551350585515533261974090086283432792547830406520349860412803717469296971263187537459670851716838021476425055329745762500879076794046490576316845244188982105440027532679112903717190339920288873341267639780176052025846548484772242013645210931791481192639817092453647546772275716411697513233907383344094985449911363241963936340415850611648957991189717748453230264977003793271547919481438752548162100116930950652914886110258833115443932999142537638879791329592458210136681570148083992552639071832519940540908621108815140499890641576921039932605254846174931482810598028525396930821278589039213517352540998404103817073830351436601892501979341178906490746982418895804970330718055292900377711813094744172630171607818048865802583696186290010408627917418206304445784321616182923084009122379540873486634230340582196408980495622627308135192044913543337383850812472950839478636256395719096405903931294534332370722570992008127090696016557406921055710879254520894609564782507029426712508538036512245948644147949000633604309977265087310293756885833777612610739908878118682856653136391824325762472655824359020558151446373359982992164734368214818138327195842078800779254653468655652819304387214920566568899918907126757596838749539259998554565537111880009182651998707478725157890584500202934046640241598017337282506540176418546728962588049503343847468539776172407437352178041756393726962938485536706266423739225472468424231366348344754487872776723189691736927221506596066067322753294345545093297831827311412200526694004588055096494929295127663970424435514754934326595872423593788023818220146607146287773898852461220629438130235920652062127936312627457773863356653528414571984188286975479862342961592941264205547384443848737476731163449262212251279908979807508334171944490775573769606485717232862926291127121613957298878897750130760117966581854027143878673131599363777708977732497363504963240239097651314800857592779525198569054014749506034409965851710000171787213512703447730883340975220100003522652931784902517743939229293017238112548327332840454236273972954929218209193614888570323645744682822384490177391543137089687986624985876574376701507833586939940709116497038421715307507375344344415990677398837526147632354172207330316322282450491485486462005934658303649166483192903644051659821208821321906574807464720047469905911155284524412766810163472290100175242056239185105301222449834155088142080716015230165485901529238692911436387255492098837137517676468182858234639362259210469953194012941183304152236158515148982596919529221980682949186923986536343948069624280267412047927611568129778285049021631250975074509460833931060280109358373951486182147137271667312099650221096675765274403293260245384596677812035244731979614843317196877854456981590232885930976373969635707714162730355287487468496904164388477254399218037668642138863313609542635053498574469448054642829701265366631303024367132748706281990929153646311561605610015428531370226604124077077590251736405073266783189709242657075463005958017931013438756678318245630366831030641762286645662955635193122891978643273801294022250811123354701240846927253140246455076910448373363187693774390987421897616057041169202479108896258110932221334222634594287601291595300901760667476975752847125309258965339307650145087308270261330651918961994599639358188493398765961942176734638041714963486256204914285821522936739797082021066800877923437226611372273907429917147859428123638989798550585013275804805143259834704008017422863234898633309420140810736328912527726188924217630567059620248517226744341984257283933530853512427928403381854506173368636933956426220482414683644073315302566853832363548346168562400886487195720946606207072390290724081885485409034134388779151503434264385114396273846684489432388529555153195920302081589852844289770031974485749531678342276571485942811980204805746054722784057192498517600372257445798410313141230719055659988499817835487104581426350282430554707021165341114229016334744446311885782789774053339536574551184237661624227509296440336862394467540547188556254236367130966523200274817582418839856854765266985455533174190403483354446456956071428677536328289171681769755122211927862298843795483409557174518517270656109354796104857893727581264800287845100013831695524300802965450586444949613501158929060643780839212717241664739862864145357384319291444038610124288212289536398221859045271771446519345731556634048486513399781667093623509002975968982082317810426010452488991594896355593562677855411800100500452794539672013798345680062915096390882223725640887961125505315602089134741327977319048164136604053550833110535632673837471331004473456497179849587023089143235578121052386019885627343891703299577652683154031081534510722302493466423118021099131846485109390201016782568417701006827898387819638104992459592043925928962561102749958594344829875513530943694081701068814360404309998726343788626418920042275961201802662835545046704889356097291395077786614462574719424279246016296580488005630391674696807968619948777387232436336513212033121871792827877314561190760583789553684660272890796724043707700471567098548179926638302509642333838138648770212113174225924562920911536365699133940445762533127422426659807478235919807011209316341337671291643250497998566821027577681134064463758700335856070556901768381389294477410456796434521888467408645836934013320692397825542702490151544824912557364815456248740504706670530635023392931132850429361489456120807123952553555279056255689377153823939121637897307245306753934407796402702357311352480664796975846142267398710345721667629599692070413653939068854794040939159268560944423247731827657179765850819261653985742045025308058088760726466468822973117921406479364298072397024068325099608798411650088979141366200404372426344210882749431480613594965724632324672643122874130421002917291404117733187098680960345394595064177275962216501781413866753564703539416222942242237946783250162616364223806508042143656397236076402701783532510665346849943710767874018866777095260275316092599039829379356628011303432200293576593188020700488025210286911050686014168407407345705059211165655291839190556208948129477637429776728628994427595552445789246642497075239617570474567154992624063760709502548032450559644414748888839553999614517088305319793787855655109308133586049023402167298734066474480466664637908236339613401271349596999471298231939276014561936903318452752223777454196427227030418735821100084272143047044383561555825581711524120048486141683572705398223848003900403248619956358824552810924790305934270945983767792962182742724489139987979138004398292340349898117703894328453072430637310850790609282023567318570619068495803573644636318595551874022786517666334462189889772137410452170356837125689507021238533648151457819126737740373283036327387395964493248422080479802512382607563615561460867675880904761254189560378902329910601983337195503460177827939377047899774233380910450303409299737375998825596223107956861036340407504211682516825787013489000269612597758010771950404190819574660409191010118625345815321374446707611390140277676490586120031364827005311237713754570343602897487261404169565611039196776491913966880790084204771034866431730314097819564644362744961365051684387865220262383435627277071022729692249643840242781715445298750002077081334086886138760922071195300681754914129925116917876058601622081649883123023580122118647448769723316073053788224565279092424794639277604048830311977776069647208259669279049582867951354171538293685892558261765118001760677247090768103732455727527508911606685787164536102206668582018669512925990755154168212383284751232455312856861585850177348713555847892520894916650442938628054801357216252295702318224973088325502336138476568440142953312633298636247507504260694062338225873421750062022312487502238551978656892707616128022092856302336652750045995770946499877683457881066437904312170552505639917123748522973072060412287666190996173181064404295175984373409126368102828329400869352358475843990856749471715444127464143832015799856221366577973978952456823493559872910317469274215064818783108592637142185768305578043948868418060594913170544882190826043934500657161074958366281488076757636807093259370295422224719090403409389028225975218287320864465037588476625772298846488967750601729415295048304956679569135649631051174906595453818379242698733604926437732461426092194036865637318852949463993856400572508812751508654262281145487264500842156779799955018116484284396460492504071379671484634843028071881034917352927262355627548026824580645367289850503033261910291965741572984297932543419880914878278402813944563627429818358902633573073478475710939562271359234323011194976030486722586140902254379206652156869346005741325786625518769641630200399449461325847182912484873224043971922009175860269043992884334537123361913464232833865340464765457541579339568812094574895237736029516584560442136786659639099659259549371838168058580812545416233558692612423781824117595914840909533034632508375243899446411640245337453319292817889589731863311209274387624223066593529019949001414580095582960062150882800879732497417429113713512639306085972644168664221590368206367281013298949726527000522860516233870345804925777596765359582603707143933261936145251460171107398958766342525109466157077329950094562995729168399893470004052184469225717803094304115832109046898241925134772436284218597541366294533562230479017552136788022727984307417222024119743104064949328308162942695999497699549692719004279865785831824647194506947445629952625662465102943840744738918980165605127319016945307448021424539527430550613442994123085737212358194460502938931845319127841749830149514920781646654323450252063067543740075853331667918944885556583600856881192350728622224951899563786491987096415559484141581186210805313940263502617627295117261321052091485046846912086675596255783844038554925168236532866098403330755676617460128462807591943582533431564614670127642060074343541928858527649715161600359763164148062747534673589353114509617094252124013493031808563026274543877799170900729941425435348188667644343866973974519894029219796987904277144573414811046388496509779745991008514816532912075488153210183004932718553519354100493939634373915393293228740880178938572864153060114151577610383890450203531733178968460003411855619896199495173606393355315329266125660931421216371190378480896285527060573367917151263730088601655369626639519379952315303696050898121550775290837530640579064920782029180075998695779257867063680665615786899523777748503913183335249654056488331672941090478919802481011640902774333108806375000924381314315148173339475296612419657613278462409774069490440967095530658940203380583805188121985646615392197466820478193811264270966850219594626728579179427085433061588822822056483903336311683672792865956060099726031257393837838817895528580524431427936127003647221915090326201264200545153780731547173259656864563138598743496517205183263529920901439952827349964181255187297341336734703420654262625457228064621642378555369369399243570976490578465866528090373183786714096961953016453558908007845243305635628210756973017694589900930254600243148947893750403961943517271670214519427441420050353015844944037103640651024402984095435904872770570515479779229159119871673657799069011309000403183290045730555174489558076213297596637010404014815489870837591511828351137992487587316706054597579056547624700363039550102777011701801642040163772946401962883296051009628804683680787375841925605015666020384817555792773334899721824652981699788428272283072714407996041328914747759303258004780581806648513252629491820340038248291785405054491747422862339092833306200304520959544683247138224226001991640749334436707079166493873388107626085189627275570381947103196775612415078485054378606337840415303068872003427469561992091849382311507063169142203105985511463096394406126117986900910154082547059976029670261122880549365637827110837636811632460793396844816916272422086136688526484970971415729679200982449162229701517380766979658805597651415037994884330400048695983060348013232288651325100981321883779439411804144705755536449299476753976646716320717016039071512309127520178657309847582823347097693563831221718971035657183944250872997610944638338443470159548969190350820320778656163193970575875389922629799036035110000760852014118927362389626114568678252453382812201210728050189422709938765985704256229211356993312298629097431134292230237455698766566955066504415946082685039281592880751303887570894020334638050840358906110288804522867285267427575987089712844451033106260342713881949156579075829582622192991957810586380522776743189026318767074648444638079731159372328403066286120611399630612825766618394849265788855247818181790562676005182568027744091489142906289302011333371087569811873771681753167589345161506748278023360155734064038182674083397833887472995912843343183211026004614623195481154115558926595431246712861599137707082743201869953804043409214707901356626691804343299030359142672914970034336493102233779890820709456433863913393535871805695018526104373768672266634119892403965441300676948852906054668195652864846005793493864421790343103624096380848831865219650840506272462711441094535263819722288468245510898507606506889615399515743321756786944514207879708088227458664233591341244586936183605497722197034010440050969246175487540096796791751595503981289421818882006289052771977816770249722464600929228772402366354927959719379097529704191715358272154173712980053434163230619310660445823191434586482743670077378681144179203989605398453705440650715948499765540404795038924430948352191666722705479554416927591808815793510524392934770360590549311501434584095153206152003154108893102251919953463339773799451803429423374501240250064037843493072396819305348197271957628869791864201876453235025007494677731574006642528054735851359708853096985883607777137130986564130585882644690685930554536653308285796700792419365914871739052143685871190336978717348616441558845298218230091389164198403016880467151284200156975346409671870815725953018648425389244813555588856397339459803649019939536743922185233359255954668438603475341706136254600005489066330020609392945496834382763272688108627577550170066739913691952713277150174424129225216918055180485830066844041446537374752317395207516088512500203966295991687427384605657474355594571588325994263558908920065786277896359042780374359762204320765759109047333228425200914733781154535700583260243594169892455225049843362151893206358576852512118971710123934207511922151360188411806275938207908957095627334607854425136050241381509735259331182323274060937928377425016113529490301603730950971869657977747268490554684174957458851163433155877780745094390102088557104942555639827914558136836769622773814981011695347829429917565436011356991363552296913515718430487117157497673932140189762728387955493416746892076425464359644716516091504740445834133815452028346475041908253275366551473634813106937159744374874004724981315821934468330506525198661600659642376927906063637297842419975850530684642199875317102612184108866688159469795909897256151615867501207780981284325318823842808222469384182539940171497487407854643830190595459505188763111553020663769668923038534895998014589298468875279984861540178315285138082457252569317293531952701904281308127297322528783725524538508081415523706148438111799535225525261514734967372669280528476374572787283770864872783654776437204593011224236968130659601892097833072485328098318072679672225632460367576400861024514379678308298711518087878982768597328588022634146042328098316077697904132358675389315499657680931163700626366748951163040047860218249959826330190956880250564947699589613796525709908877719304319204664448337805902327035734832490713367357253026349625817368615382522433656151656992918707035476546363386701065397485209997522008336938099265947157053613404365021584008533706547848976148586163596700597692035757404194491965753609218844873757374106947296546424772831248254867688065605845444273492268849901874329335654872495424173385532173265608664456407711303651574069166914694357844485954669181729944259831968539686830415415849131282199336028289570895027338615181182037531939902526223479817653879031562086038389033492427774616048334722418243884031400128335918568730228179328293526330982863900949695755581829422385613753698072180435402776441268879965870115749766889026751847086457774782950220341475177183174360197184111389334524197029754513855722187878734708638231236915097364601520906190494227111608648379035044529646958953894846859790963309217830039671857302440988028684615940808902345600089323254032189105537096649509844484994771417059709023156130622543365322065902809474426178317804709180942199174292682495619426891940798461046821685135877903657307986701786332266310167953978438079131261024169244585019000594530606888202648163061911359831879348122207240559902465039144548955315105252808040590068439680283814718056456361903874973528895389614656938362321327821739021466909516028452774897106598579081863281356585335348209242769375865103484152317514785154536036336568480890266831434140790514233517834085484606292182326768451704124736117775654399412121863206827340495077352378312195656279008168299342721544210901713392897827930324344019389460548524555747139863205285333638740657423081513149998807823678918909531606310274994213741922206096327837401081277485104528326260686987040474461852999969110092104997485529686312652626601026202225896960158014098138600158122249153532168491196959959503569438948120940287933858904123443411227630530833141018935181863890604013659549611499945979451766755859562636509322545886021480528774433892679095581050973910160417400610990380690712331700762724467603633372494693235570616083300158760134877614960100428111568046061740663851224144626130392339437492957663891492557271023921523005729152067137852517784064516027605401789467819334283195765186469696244444984503995085534190676800284582621287868529319126835010657447377936180202385499980913988331926306077507373333787882526192557554481293488413140392838643357409335073793395276943317743094285730388653471684798974737789058183222984819329795187290792387924283286630228432300355144485622018820699476252118037717182698923360586931433732456698974408438468087846169845926175670508221370341329547794370067715501524116798801180953673218699822109060122464606477799982276271192210279509326841099971711645216871131340299089405278816219239215309290867406940266442730665998705242982003181602070081155724194718779760567565705487874538028836305755254147295373250430570430887673455186275624948141293941672085837429067212496087539700928267883281877246261958025037174624790807736140736035223665453557542454763062613397215291465528588221338511460271368643112886657432937424959166074878465070571476964176754058803994286767479193628931528687272436357895257839826069617930479116207567894995892492371324046480260685993142927338529386231399697477231782632854430003079221161666993507902250361438636433784528942584960209323537724037060244699759059144351655139788441044876405454516235153642025959799712591246087817258460954366985688339880529894498269286325315164262698163242974821988631665861252207959526626788708222921315119302446890344591204630922058195255659064794552569555460959462592798656422566143566386572791876962136548197504933141263766915463956687411539951679308813402593560529038178696175051388206195141030804175664222084212546914007922482084256882546482832174614703073679976707803873535322275118648394670689877158333303890493575370747792702608052658944526481682506367317435112913247664894073129965181466447784722723143626518301380478849488435439120472063517743811498821254887859589845403334407239427940203776688926752347106061578549005892728564843129178016348806562152497259772437743945746956961119616787793149387726122017493928226534362535418443133997818023758821791682532150042841241008706373447602909225307505329383998237205343511712417950236157741898174855278218652452241155402593137393316240494834512283296724759268535429058326043569823022748023113851567388420009294487028955536156731405124391388805417386390327976028943502082283718451088674638060137332919027220458948993727173561354288797616278897158132661127413937049036057678106878501064288121609998892983963159203136462184414962201613121932470452941221473723749103805656767474977840062625166948981209563849986338928408314054424198627878325728289375140902830360368498172137562341439151469235904665399724351289623594946060034099504950833129991667445422562276701722787234386307459860608485540116985715550847823947618924914417115317211330537708804345113082009558021215653842944863363482673560609020507921948100259318817572976256157510161412734329371754186491183281322303129551821522013672569333713398439726835705713752719785277797031585778448415475206825251486151234780676742991361215758945063714032344286016165361724720586266931611031688916324512329413593528212184599389576835913429485215598443653417671132134478975325526136182842470694032375822162555035403319104434023151475092028112020828039806761682993684791255886177749138129724915522778239958113018492526228687163536580905221543671073463337490483620435580063652250092809447764682839112959330869593611641178610971288740265447739390465029778233317800899912446808784750011134365591006407412611418506469046241317091170138257631417216541772960169283173361972110811976432941284637452132058722530063830428214381570749285379353632339179866889668119822693667673790093754713312391234606384233917077417394954698052070554050230619276968911552952193356722578816039044779283577322029105292648167233043910706471480780398524624730845867926138470418802273475358809512647071352063383325731941382663891902986568389344788423489778875897370939297309822397221899228789992428485264401802121400507603851174890443497151618712855377856803452041399327814741594416063548126956544760517652400380014685698201229906929293171281531762534721278938398417914632390138485117028863468196036156499455587321552141101561343969483878047147422434276849108831645545769952886176684605629415421697207313383205863601625926231240301543779492582101652460571323318374514024773689986392871355506267398525040975261445838924534144572801834801319118788135161199638109903616066102313998340419244131054063067682777947951231369189178399428373490386737750574877832681839516604729029521957165878699996308678790257282291204534936459232640313806252018725349266549530836021926426886470076661377901877414219687994975551780427005614033631636151264408423917467090214227908001692550724655233482941638268590885581117602135189278274340026220200183222957347674560304051272204533376250881007734145466994169279456562847608727542505334043325253320326427515943572829913379344643261068939832350753439522104712838294269829331997680846251653766552673397029004567482861084530900755025906010656771283715549691382230804445059815437866625577107902969496034119177148048414122459187937858986750727111381894118819724869033795070476801678783715356046673148491619933132212523619475395175574965950348191494842106778388837063380329440760610618555474848136357361221423635163043394415166542124448904177652206605324957375850366719930747060513745338867335454494004192242120984551275049811995348085760494135685241652596626847995565121599572707906291403031986704379372495455214018700843480635903168945694410646921996144402870777908695082949784710656024441736530756037251633609487671130958963168177060486392376042606607704255975309416628865957270361615442407284086008846073420049259596438454137251006455150759873027849872359280172836886756612907142947082153024658619051449759609637699126209693573473472077669023656601061415127485463499594545130269261443779863006626873066159985297139218183330498701725570222909208139712515027576647893041987017069613180707929320699737447805202679114260718979578786974783900485735666243191945983731981052342492564504903396493462041165609906401023231236016242030800242715773714261871633738707409178405635007941755200457250236176287882481677045498514472915264241972885723149255182681644754726129557436953790365272723046934576562683363802690642453665365327048632384425537464944597373869183626069936514110325932253371549773320129627720544644313822320039596840047020054800947252478425677822689746146523115412709701428476903028840152330964398230521006878372712593319070524801407431633071037240948577892766974847177269589133236387077213906754138864734962215001733092950179791309881573988133593174728805069660236152630726584839930098011519270523684775371062697161448129047029816168900971630675359706600043920508356685825354453390434868087279203419220655703269886226190487425142107957501119940038562442690149337243227179759916687833727682589071690717789114306300775370199839717294488805487321470812461705445836175313958673913055088170930715870639351057362221523758247964466506181738592625177496598619860481574593516893062585751870561635372263118377720114996227890764169343029517414334873045881684920537271159823771615207459712912511284191483402466122060366293603979550351571664562049225582530447075975032630385001134126138959299593461021939069234343333759221334589530069899336746636519983536915083844590667987499431970122183480497790111473338583399252734441969755795613434283491746618978348073996618036833080834656929905448599443724313045394466644443958125539714701858382871656018422487540583296394585964569775230649084295114206398487094609430803353530078686508867880128388248645567669054107861772291839340217035628826178917774480143068020406850470626330950537643872721143209092866256861979349532517653758375700019552673533061731243547232380822152896832020490243427893037382364388665771933289122509951889344808608453600332358560656397095006089523806052601254106869063736641462570566248263140014115228905844143233464604497295544046033171568507192574840693466997384785535964455811215061509834303094508924839714217590390995090595021896445031207369394508136739724270643082794460446833565964341636700071991957029301950376393353546463623803302675570293731273144691453314869630917551371252032811933111339489147062054127447017467571147019304454662655216259962517375309385762425717902002215861210723625376584774968912600834349298178620040421824108774005614571444494615128796266876957117271327211326989953561281473731904178465817331857173560303141579725912305263883173886825579777781472871129281829153212981540788704871180005296940202944814807927950362468630445869851331457732617449679927475582612407025581758506270702924882191099034486314240306071122078677276961820912385668858448751654515764878844397439699986035828326677339570802062184114533533125803349403200563345279585924869215891362801100718549836266144795336759672794001858615780684102977992995273145830909709444670971281349765512759238309619532128962457894066322853696088130633222152368020660571642118298913170654409929122066973998307522341162581598734478778414821012121448432383585557233427022318033234307521526982125183950777273311547456964165267133605829332967073638466504955037313483052589533646344037624202892002774754197763994302906394087676086875420697115699886674818635235466974469261398212430425735409983679931534667580346917660500712983681397803475494614840445436642528433384138103867494488185291440562961372586141838593428015134172235842879684136254768819210390907310910681137679839515518777208995838993441194296291019923153313197907600407285992302560204271640363876353492197323605413226318070657320534889934325206712433568951152311295004782364482876530856105205872550427751050205627759748051944897979351160886298781860992323682647411669788801810169645172172061686936216099503712358207300078088576503708758349929263575721925658235727006761763917633147508897765462692793543262182097102852693144337569240212780548193533212913535036474296221670456082975874370779808736890783339893723069807708715542330800238559124761669329342516742591773821863639036097421110961240832497979026205444708267855286074494056121148049716224318691326546148724662408034566004119890681946617860176469053888699799626303605735059025337373081739305142445279951477605077347614550362635502030426258713737996208975190839395841527720195465716292821863274644387917853133421130190150217469504738403230133867586391898973048250470753978013698639454089738548864274145952834202281939926195974673698663339137309893524043545168258250932647050027052093482670812175702308948479027483816095539199227592927915706772128061802416038094070596046394543177445019995295258407532085802601190068046677110620894715458612674181324499866754094616858473138509146182828477945473414638815561722420311397820120220582443522048958004383708644887757615068895244262966793215713112555106802824223382880841828505364734838553823465849562922232794493076877306378281246694644147950672239868817187619440053150091487698900651070829552236900458249538535976794990407017996807003530818579610678518234466888126856221115066965855922557241580128549495920068319017245612507887689718978860937909409601174555420138388738275882319367108395783387681226086772691212988884372647786337512321729190058028955167740218827164227134789345580637580009752100955201823125030630340039713025660975530548661710006896050154326291178332513690711351823481419082074226439205645366442664271135840346269598593062427158017122509465424142029935776888152058172609895584780427121191477909165899615843395339031724296895984041597442459281217996226497792437870287042830559791945456242458077643673718027370194266494382664444276440540143598225774437169626853989980995847141394155855173958400766921611490893500597411114991319836290129620229137166132470281698931310561577103741804092255743592570220969471915267182125288795071880274710509282600471616572955320608258282809397230513226136594201812366853260315476867579653680595446633324264970230681840383973816769939332591924217335076330485197484297755529894816367163625117202369208084962924894276323574863094832440385899330600340738663686366286064220954054347783809895609455276310644125282502238567749050379200734021508007231871829574356845056417041192578927155880755047094499482424022797303245278369990196181441292458715319902522224809860986552902153431831362047768214607441274370061778943050873961634861379259459801397207151313471057591569200097624190049931567664867324869595757265201639244680901313127708197713729943050140580665220325797640034335615514537259194138182643424796518303180199190526556340125172422463166400880350486717261919265116919053575147906236899528328178959292745643898340089208617674821546005904331823545216260147222512825413772356991124735629026999696865642038050404184597490125514420139651506623137881757010821884578468534795511273763345399156390478378027135344058060835580433286773414992061253299705400462211976472425276666972284725309388346244666613821007818510318732498311600214499037102042263251128849256852650873733382789775171661628397785146106566984702975163798413805078456917194752928568063979663332902961928296475239190629233526276673700866292547194664965769913273914401604000980089691454294800532240527209240621810479518349226166207832854890047600523466062815084917390488077551166470346123808821191115920117669940726844234613851593536313026888123102025861953580782797915769027888379522548185289085054752517155421543769267585010266610489684473633943290419688301927898698004018778591853917216403619677160784278450103280499440724228682180810871801515673594712009102686852768107943094925845701372523671182214064202718358515707162719291700660345273676585703519298586176590139957612370176546252633728575768305480087558113292352386181603146947320764805995966692336856180532056044721722777843174991066098034596227651739086460925272676493210536592601158308110509997794092726925854031871296001143445634745658410183147323813295171212770990109078645219304117679258567041522254045718762635690620995281340247154182082833037926515394129521422688643901957352297632033347385886456521656418485133552161063075751500506953298929338710657994479381651521592990645625392667032806045951672692714311759183453234179479430209966035000325378394814555627538818624173287960579004381863848786340720626574810928499273909345828602451406289844087168183568426427686418173133261350724381666681099639474982549236306815578899252880611167904740071106635445063826374357835834678329769047096512377921914007282567571650129139197684325549236200931575095648570135593227634191718641364290541650259156027102928532680458271926962861150966565224746593087784449522758277368657156055725389666374117187847357165797225611020996345463757581586294455809788662507632009512200865721861049488193664800656252874912454118406141374373189300488403402812753512675120350606937277562305718983714412241324894715515750179150207671425000906679148681482025806738192203110361463262079640011645430751107418779037018717580180974953391417753635107262043073897170688068968483348551663035570869455475872833370470246153628463268988046616336681506914822200923799015714435050444257217568814946549460380444504391049803283860012480064134033068831043026578726533996088744717043257040007456827538310181236931859302038166018974589239742166320962819606800465822588345556372162337865750506745497716684168736986161112416872256119183257735443795508881837583610224079232534331875466849299376371067661744914772317029925620712728002038840407898621951789497699089227613996008561459629587829948204136836647207722638676633195738599237222810829409857299352466411008075575159479392672353215776351874256519182871935800452285563012429380516502363773340110474949453984039266486557168700605103999469517138306991482911696204760644811430954605720290946188387673009776754970616469298139349416592947332948692599085034999304208054133023157394261676604663581563668012256173466425514449642134185049131049206475471762249663552678990980530257276396762493607090544419000460762043850707766447619068141956235943957319650083902367610861192146979850433493481121324782635203243501316504987272597591459548739061452083792966954473225374290195256199076198931768924418889511863225935607787105833899258487511679553591157342739011799043656991089805796239206654411692516514061949206987414515334668409092909974948418478540754207805817424809551776721554862722818272844636252641825445885783436995075362577190756926962527248929790404560573993605808853676265351245154243064893973950632743875639070105546149994653985279593512769682688452642526239169972119328974616884850389244875518772389728156877287499684118211429378278309853753763371807196817494655730603728754827446392205138493051869895345739459550934810321961568377131433402695114488796369471336627097451117072999302100957352888868659326244384164294604682197491332391527888053676379999919943347299833131732308737403600033205306476368518364458470605575407640223332870654863310087638011938859000422431963991255220241434931128256442229186803298477730608813161152467450772959567850650956500181532490289469989703246438690872563497940943317524956507520487946533252858318350942132798772618885641028279370537433020189173663033005082695516888941468112634913496118410343302772240886547755157628436317118103832309602649425029609234056422222792279209422980559692868147766531544933778170004055790042603572616622200845860856333229301355949025149403928512085298077156895866162972286357718193338192553797087463622535953056425257699554973937352010058717074054738738801217450678686452040641268161917268042821850237239753722322203664536232858721356446760053930533261570960944772474934462876962495308483053372475425567495233744687114187711303448293337941577328548694960029334636201919542636020449892802455304989643256975236699235261014167046947365021665441284493423214015257601937267174731443104537468201818123509800196326552795045484201282225069778095169701559310881923042412731135171565188350375648062681367319679862359293322223963264162921531339872127791659278068199116747849677353409010546366921579069650184845122555849956550957836100637502240281999922841915508931743894821579842392334886817703625808985969803932234306359488955968069818779105748451813995772668396778598324358530849032542779191863183791354076030438444499632609093904130819366831961433387138834203953778547166748706040151141875058975724963092704053690562121454736384240341606278305219115047867463580203625097701218490127379512192897625975938076751493436779389884088525924088140638373523155672323481105847788722946678597837382069850292276447689284764069830834020510110829641231777324710000364974905875781887421201773892670256258434265105630397925669569572730100632684312213491948945173590079145016104847183785744681657087612204177315741873708584472989752267529974378376772454458465509788366459223196747060409783950501950464122692672487234887122974816715237546632265891442927850419223025312107598000274973846020445348551284363808876122231871142119653741965171906421949405883955302718800767969888877993192172241368995941045692268672721299989014254254862987284262063544389264036151633066800414450176895763305433310299016968777765067973196576238832349978165299530754010699027457881902844564500362396601817595949384248581166617271586761007809083434604667791053922543572702347801534875625994603340381169589976656300998967553097963236245340633134284411502646033468126897133939635833638826512553462500337200919495824470358507254627139115579895850762307619355486770264867852274071642947361093127887929133514852168033114694117436002638543437096015155363141307481757378773392648529781127566614717463062634091434734783084071870737170527757663845186652557406434252571364857069403433683784602030376500703990483530086471956241414832246052936906874227305469624679194630492331815939271435044036196673775990966388890586725900769957760707752223704080827854134789653579677349731833758105731092059146112372498691916254853825015611469988176313244827048896712636179504378329451940605266318716481694391835464561644990901759861959319204355620169539417474881557831074084142188913338057854466815177722374565717709998569285303798974543422960417348172325036076729327932397926676703542237681906680172143720756408237400422953048088907150438714457473688560820880868426268094509836384501190722942497339417005976913347229640004042134054571886651325696421341772026131738630061555499325855861236022530035385207604849317894366484757287336384077957988154615717209178018779754821282049709711145404948587489543222230516314608334469199518870450125137575063251173529185086514793631651518678480377121984792006521113109341081407355051827976137124606374575068916644039902372828485859927455113528386799549631254334263617207308340333107418585909632054472184774234574796636052731379740673529709758744949411526855239492283487056920882218398614644376796477607743259612298931934455905749257127920980641049589386612421884220009153835535644630598004411295053617307270387978993416948528563709132630123162959040276620710939391976856530242900080750998421895880798160312714785533124694934107919471438890272923891690587140151514756675705725705053028198399592793467198892741791095818458898368967515667271012394092496459553830471682922662896351669349392900245392042124759233253334518197881389149805875229269325624968682531125961498800402585256216327021671057263768606994893110481057809454836974879822419859797669496031564092394471161959053257177555376096366774854886823001490391919316664999431015558525517155508618244739197706170907429830746316037294034843568581402942111245348104112068749954991643430381782014318230686865011504697608274242874819014804436521413854017686447952181635679058807515628228163474728799977464028282962617478186160564744904937752918299117749991026838332813290026115657161982779715512185024116068179102993871399039926021934117618326492718480246751378742507826110369370835136357879941744164966526100333867242191016734374394007801575367554577517569087439927739771357668379258420746308272814673341742684915239523901840098310648568247176615547058855934136179684015125171481231964584068003090330921926293729830840542880476799003693950748053788208016865254525862084325359107057825081688113359191410894814095618112375235655376559890681723961711755285494470229732750720663155225749366035038882593738683990189218613429747101772806827776559402511409738464132650516925910975351850130023146962301215239931782437924017389478212922653926675861171955325095733637111850820895067008423265322209537062242173056435297526128023817218191354288983750043480043184223839779539195847842177325565062348018307251932317673077314300601295508038554434467288324213496941253326099596644685706258094329578063683725842474679934328674535006539362782040536999051100620111533620034486667756344974365434857360894668343500695337469558559391098229285668624711828937397545631883590962879050017506249731115349749551076536692854679902358366147505334622260624660703641509266020137003797086639812730300166746407645825616249595418625271041348552074928083610598934316908385438669755942957715623938831696172159209338336105275627001820653857751409280639713457170199987509468604210528722990768936327606044568542381675996308353167026774872185706632818948751783911162444787129590707866552058021318893625258806838765670254576478763281676843166187068969674905433443643220686504227538543828353703354543200974378761432864234292681120297348761782035706718911571719384315450923055357220352003067387904368304426562003414688596516928738581405855968021788739893815077038715620441786935559792805025211752943695590306592134296271774833941631321981176509181255210017649525324477550034251612528660588362913360306926903967007574550414206016647010639460049957012571743615791976238333360597964580391919990314312333412189075546752492140420376638062038829821293636277298728661516457122510270632063135034204051985102787114928125538871224436113987586650914367323964245900021157806363956452677732883116321225362439229804616208678517043414284452489490688291703533501724580051629348946484268946477066400686136388843099654619246586274744989077261532760041431343910624753495842641172895972371789151546078209800137979972033956781457183678772675999678830992496182986642902021833220057355866172547434369804287952556521829192438638884587149158337700097655924420895801526459954183140919374493284123186040536672033091468623852901988056025020205215536931027428730453075313722658525422119008627348805830207059185479743914840836941092835708110301701880661943918577501680947671720729493502538480966008951350123437126718808510561801079457305051869976332108669981711512670614503777490739555358049817028742340514213875184448733816923578913031081237492183537401245485367080746781957401818506378800436832355792867759206880723345772816013164874778704379819761418950579670722487523872915658311813614793274722370974954948056188544722074607649181671307517845436056574749510500578476283533751491918888649357344035481823779790007577632504233503158259771250854107229367266596973072897136671632499462546641007890400561464205161273211073882284234394171026256695166446704450272740893107169678856535462179977955952853150474938070112470244083474339041419746749216163951905221438724403243373938608828339290474250015305305732327394912045073343011433942605429834706580758727048514323317730628842261894053496087515272095113462168622496740575363325207785797990676698959407147428244410513557706240701137430525279389740100605667388301075516139812585727633214909602838699710673872622728251993204137268305806541262444870266600265087656513579413673761484645315094588917797374851167507587775277790683321556662751656352569597560068563263306467467519069387953022656272254166863480901627685803977286987677268719245332031966838322413738619090431472708766458562681796061965140225236400805087847884300619516316111100157038616884704520746597872241971319089735275925736935596575405832628624560418561762473135556650237693681842226650246351986100271060247805975349543874567633581735237259502885838500765911294325805915233398476713432670103765264217261808044945231356688622457071428727465122895939261194926944616381087187614968521568034993453972562337643573945624888170279656562938621964787268374164257112638182959684442786259019938466456691488353389728246158875130995663709016932229792222533668065755480362361512829163334744101941310943673626307093877315567113929268049942509547308671550932065458603938804519960541150605870018870427864164701280946817106458445397750766931545869213783853318966325815473579349043053941431080328700544073257544179544301417044541138850317967380624512881894389070407676215497199471624960493770621484892888020448228005471068724953278211550575608597587360488464221842492529381874132664296613968252300142790978872575717513242001364381703873488787516795177342703502572738837238542150805165662409627013333161810123964009045675841086895632118276929805372268140718279773128053012635174139618240085115072379931688581995424620764812103610568818758288744544029183535542921875759780441168717262197622722865627541453720075482763713091066254727197171803339186811342855845486549933898749585543016501203472320165623772460246349591303801923914089064619057690303999866267837512470493948293585588984602450374649442188636206206592663164218554053436504946611693718389385332769780868695619485224160949936732338702302420400309613801731948483153754689864259948420061944435312552859397936276483755499078300598786190138737915379576827059313822986672436122668070959030087496456322196691924601593380835982093683203556278606000782602904247899681638404081262302983785302198815339204313955234142575702936321597542489996057432312487821848807664320002843293698002510428081517506665393921984031068145726734984456441873605612461658986749082172175032436357470315781332468202740352873860578711171891996084459856887156657472081761111310699889029730858015725729654526999502562371880013705085793580321736075934135299866571224281864595525333629636649041095160632208247217088337915631239632185237892711674245808369695779836814913861869712617088991554483293984178047541785522343991541248407199105083982993215860039260497731317193950898450919336480838299180462979140027144517858053883850771432480747810158496983300584052940327005639203853631633535212496113196570099080582628210746941308554990399187926671194979347329574733621714592533086534421446604434201572315161281638085594010748478659678184097269033844489655128510484332405564770148475934365911200200259819573949454210379305391890726856717479271407761399646899656139369827719576853781784408153668257812080143874385826591905193707447565777667390573903458600192711272862153624920751837773853245692621505504029408832504264927813127623216035412374211290266059855884243649178958872694474109440395932670624023838028235124995675724534597538523474957238927097172704119745479150629034732809114628992091238495709757397248014304182611101931007275096100675482923420363908166633607426572908556566787458765433388760351268996467401810280804233205627021682610714617220048776735375936433074458668893704423036001667998661651863441622036796057107742156954120744825541630568897139358520729627314035804547190131605219160524789425994177834897892357332425945147647726452553925672687142151339593973206743380134477854105580569173031186789976749934383614219925103435495574012796773292167972607888456178051033893464277787588329532013976828754589176399713596229230741220838444976506379011698463996631142703871599155534019144570267577501457522409653409191564747975735615463834444199187884761169447845793990752424221593718919089570398821802515557205353101568620285770839427118081847198542614339972739396978382901391889351086936401840151540230593575850485470695322157732760433405123959637379791928205787240772441290386576894516873186759363728506781188658794579361041652244520004832591675312614733450054271338563588684537688299151365351187800761009696583713439497856383372012906506275468218280138692550819580913252665021928182808240485475216099323401090621820047599876668159060540139568397915535468902814023033958102208590591162834204918490929775379788853133163134618050254069501729591994949537918114854840306719444581173513442491375005185566616647603316909417967374647577133816510061780014415528221835978513267476851729167625007180011667886380474650814643264311562017852702403595956404714718737603451442891371697209252885450167810732955652485112085278581095952235224149766791003007570161803940380394226996463710028949026791616202636519913751572291757839790114218634873926202245717546566601039673136568520114785455258995293589610906429494142021867055834133827173750434037340526637106238269109691356693803613622158514032310068070807073186008811666225275389213344315543477733660417481053213076628620938357392962381908810991486453447085715288588848162914670670027723129481621026457753896991557866071062745674686320138976204726310481789551703400285101961487088201117615060638761738538543895559012663658730039532467341226923318257598963490859923319217255663616839843007554544490150250760605335052191468812819318891783883557533118838175256499803957295453483566215786179950953669944704109664289270597477045807942565123230325996125877145405485755328183255998596189567119362508474653239672543358180366932447756741131020134337593654925474959006231183834648354268945512144110009783252254065636030983007421635820769028105423097366695131721045040193081511030355277498996952329883270739195187105318477003211088929516973551181166766244056563076784870248233746288830335682616453293814498546196661726475581675386991494147255488085569918892767010859370487408854295899171363129682219126983533437284585384958541747199369414008699869992480646930343164955684100753826960863372367637004521979823537082361478634711972109410384731963724609009108135207042031822033639843191683353018633513216385483134363639213895578756310306321767210400306833143632125989890409679308645728401705158513974608880799715016228903340304264383920826289996968911408676093766119687435990118845139551571444726720860629018863402557696481516308069383777917636064656453683414387022467879126337698556147723170362037937889113775017759644404073694643644843073290633400680465680398462140475050102242810231885101847648363595921301112197996861166265553426469215412179117700277351644935155834015046652621476349824191325342592752352998783116207351344435970567093514701782921368644606066779189202371964640070321021868860497348213476867150387754677783079983403388455276214930655894966532604284542154209810497332044277179522006193381777413806590803019130825949289493497685000625111512103533764568333090036712961054143115995330137861134241632769089641479638786553064741592373020461116678801334028644869410240495627204328264213783038806972491490773652259553317224257349531105052864306172154329533497159486614186781083707220499215071101523150197071422420649901355505129343125980755184491848453373777071653796982803647806367232667778420480811041966092239537188380035171499037479933575321281564543888110786842265739723891029815799355706936770452685019435115721823308315955008385650719189658135679820836675831499876533813952246535829728628612041097123636179341869896890773015265039999942951889845118971235284280842783280366936737086094517117208124915430789900592023787994013968725640162876410093811214638979170303603734368930456336558625051546006706363955788856856820077898400536183131899424306697390112465918736585744173905783315802822558978479732331711496517469074384879806738176189623317102740326502454419745282602364016593017361980509541584329760781500158248941331577459567527342173570762360046508964596816986451508369172098652419960113199174078690209151845010440180374498553758113276739447252345421824754209714479056059227133054441023691602975186206789869825330265494574090849590236907497260953881649364676482648804197845519083505824223802816610634144406115019529519536213129831532051941719601967543033370741764445906974258892370959613795542028935324820586279730153076809294338195570816651762401491412098132261445427798695604824356053928715298829861075445132825367029628578102430209294373269868019114025703500490441277771394535529179736151313046127067440994258344656190021043631839509126623882726800155671254831003603043496902681651428772994714580097214560963993881781756798073556889045999475478337538962873409328585138853656502972630729245536064133398146332727638260278769401631449778615150356103451296354956454111456345194102636698401858387916942007151741312375111614019165560641402937850705048221453523686402826720924336270595547674616798523012334179295078746825607355935839158586208970368154818048692269342715882723213168276184748014465989125858590272416881858332581896397256621613359716228121473761881372495097463110966543247470890209334006490219624105488021018954512526497896035907496236361300945377769338434238633650304142400800162264594573480590521038156515224064524635361261881808375649160626267892826249206687680684681401742243022216067963779507991176736852778569450642929018826261806185699007437897731152764284136948355097001372196053556694804990537581812724186625601530470833516330216680187988186479362288218406214473978032265029601743116281622886925870252701808752888744726051740593953759984909190076256920247083462907460167585225154100955039491223070980329008724650591077345326090831464910736494018107940855559041643321868996470726289508468576137161447626543151877360371096002995828172463004564956678510709811781769042154723146278468675933812215603391776212663578942911665642494433532402416114580910159707265202349786532835970481437056026170520718885995151074961038399633424641143780883016575961311580060416769815251377432940510274083099760839613916655160038583705577718496222277639335207261875937451996623285533179068914642637379702477808072808431762343875540095519707708702773365103190066053950952305439284121272817059997621928883836033061328575638914784802499188816618611633920748879118017630534365870184234593766826962484350498583855047892029865875543100307624862922100671735664866191375658537080259767062718941983054601543729331623188336965863527889032911712138173607678932628770582047626342138487868421772596631034743504674955319249824702918991365871711304215115019626328736494518238983722010130537391953433644480209581460875678169698874860808876171178570912835652203528158156641857070754882047264856669304417020021624066950515457445998909903880589050157449499053046489209052437560739166783134324326474819583160766732267487038058205868231313586203201968824198287374078708238486345519478303939895395009364613609685807925024913748883057483484444138025049092777389628210708603890650691135688840920375402966909233256903870516409378818233016229809209344548969017567269843438526252956756972936847434481605259596136102470423192286163118751815648235012223113353582184447395400582198174613789859633039492181880664581420482198458488505690951894956009080648668907544256618781477576761193876264592652742591236513138946548616248736607891062258757753279925989121687508563697782687049352979571149815341911290872109992257508180079676931535094677480113111383699543637865567159735430783145175171066266981190851713367812319016939496187150421010047604939304148546367756409498985277873669396346594499868258817684525339635690361449323165293396504271145779982196094554946188614031058497040674654216779503292337418002338287567372334419809143295606402296543380529575639723944025987616072098217652251571369339036193885095160796089261372262545691339149966349882517228981063044405808176782456356436691581121184807656312867349672150275003695657740177749904749665406112916934953433474493118394977191734722735701247301961753130359483886295624024210745501990183500126975400000143464976170111532557563867026822373572078112884249358347204280007213698585682854485540200235909998488809477078107716944152993320015526937476148543625797322126365405708973395165133551403239866842094880593747441612653409655792198094800427979279623955303224228716018699621110839889183951999398435474762664476589878943561301696323816455730065750285389867416907704568019169381581020904189264609111876316233243384002232810887281359705906929161233271551122050275361343032987801679292066156768052009537708659695755791732449023108766615639064684175860564887651237457611626611667344869426794012373785523502001605732855478148588944738351529762761590368620922965083193491268551148110730523041917510251280301521878574237814774259778527200871044417620192085832557849673000415598130920091129578568216745574439021083740403351065807088660873198477757386934371304223218293412900546260351179614480566738327213015387316257967191523447428241855610184165560652774629432635259524502444886309067389583845721241074724816085165003530408320393443038363764710559590616716725913219543857642063714346500433823861299053598065918748494261594875207529119675103596530237703995747558505745897238036515361102144795023886194777139836757565031885038547084929337842616926893924649376771042809886990285305307963874165644097123470746529425855862814598569027357427022438428320653156980334553001891002387765601637693807817269142808029410715055839164629063351061041085387469395150971848359077028081939012398116707512691790347429972322673963519004172728457142521131859711303738835003094229064835017252796734462009241417099325555805301154906283782600973332952248636512738621377104579812014039707489587100273496867207171309752731108256964074926074719710874867102677350896605330478156788606443031006459987963878698151000531833298118748897063833045046152440185289553903740658996851846112721452059329734186586790633875635163008937203305079384844901823368552891100382874830766954080061343432920081865550873970323705222169015211251515510409713075557437514092264252787340497507379103295923049861450158737409344898386414666168116298870736930861041588205829087680100264731433102434642280354744093729735731215953631789606744220126608231897817211126378549829696525225639820785035014882376307511090896911290109971301423060718912846079863505810978034944588030800314549737309286893159809707453849018862192764521641071660245446756172019170096346215779116974998083940559026705037834241965008128929413478419843007803962146705213419338915504052453088980586558938843664844234174606988020248806606943311384469675035247730786856517870718455439710372556750072587721472498539081760716441078133610442034943568622942974955089230080206562110248027991575044837125608173901161467126200430976453319204611494352411907671086618472347986326598706907471466042891881922360272229486160835474095704200284693624316934967977992326114549195198679533875360723505965311124780867659438655498677630287046907781260859816040005650376462070115610413715896517879440819605387437142432576696264999479958116167395067021878844985853249982336092571263896369295482544373622056612240370461540904458079026241441382870423613629384272655780057610582372097169897852830628373634521728695929388246620724903249497862250162556412051718972001400606565730846219848748213261967877369648136172448826538935085873235589709290978598211768240936971177710765368217440538843715986705467376194868345395418869205489318654254195749800169830216909341707965711226022823570845897577048478346166296963900339421909897360788931183774306004550977413952759937622645674364659883658300816325796040214867585373483841673949863615435803715242272367075953717096912860199696447404192037230017273351290331090377784155106624923726344936720146677349336536204293527899159250237771409251973382195388989464385397913720153490347483711568580179241158157000835803467912577950921394983659299101438037818522540064921805830912387249467780105045691953619167672525865716105640931215196740481703160807335291288423113632004411685029100804531496684630325683585775693580963122115629534656626854717884932156161410890835953593196499930953028929855413264260986996055381249670193301200654575303991324509218366299420563367123283732126790896886725913803851925750016998196507659768234659505296613644436960238025877229589542164704008158790629845339200886976300554174884579468614110038097986526537461954953642937531859209037808655181635955028763814005541908090066406151761066134919408540700240107606674118508296955971599286545573440683241357906924670925045563357155854401383217484901715510803465158578459845245334888533400955109904971269613201392459953122443680688905197154827286652022274831212164258591512159962710434655231292298386404088418757219395767784267891939269178817981620643282988028085226577871373176969435124766528672329011237110256607126190620566623989588897440793623032083561129310553498231586683058312866067552746961905953545902664537116639666584120222445390423690640742921809163065279853877882760624198411138515611919090774806970280667856562503382967993489974493015529647014917023285861158923023873586906927017436249361785927303999710249361981734736538583990991564409658417973751438324033174251278361521982820080979824463685038132113632595876007167686651993093500278848098590792160221182705678184627305235345803358272364433660385057566535312073738113384064381206382478526007761762997361100161844748954573368881233284124809409155732685973558892010511572733980610872831145966501818996565143414369054065962690656723498575634116562619550401816519115004616642942763577859937115205312323457876446429443663238283244514487582028205671421218058779712225564697582484239535541566548021833678315387857126474402567456612566393669991141969733840005409852898702121586246290649259128018696577490614814560324038953349750845571468983927477441888466828206010506084381072307674516232236654590575955073029757961628068907635783124798751207723255510733598428280804070178728726408728550393849550834951709821729836236289026162129146851213311721166751276040087626161800572671516085039713594157918219836259882284302210670885275677888041639767846738724556794134174802787287215779353141948527136728032477261013160884339267301156089278142292722097931828100103210222273497100524356409690806872923087928198890463502691924047086229699838929313448934119730235298944908494856429210044957701511489608232907239988747662760477355955203939588599846836753734245442790941202983903613373266838941156079262758408510070693577782985173561463672316517489628370357387789764612080099379215449371287430174409283011867235762370573606538180893051135806026745947904219005096991178831256691402840041202092458457335710157027233041630138603680631305275884902000085394643896014482096088699084375700774684576806323855585862621814928829099723556074279606977517085299128573519354213247871301487004149193451164405691659637332853386573992175323573773842434357927317479096915071190460585940752752839334467053565866211061401567817468344619639677494917531984500767538046841652315262292691078306683495511730911190204728627883877476324625908009787295945566962885122146400650687532804210776255515467386300870716193043271324768595790698255393980053317940210082911497018575570915098391435136087350073745842805719175650873288646404152001544678600012926203160185409798397922398830046377808210803279893827119213538710129251358064888695474318944570808474329946982218757539648527184898000053209830808345642362937130782463345405659454070977873271361405241326152749611029313414964806949714345483391332425386062031376069651733867731131601343374522408821145188636609778703120166290202891901281865484063609172256861228072340010052580232739858878182112115857641356938197879325629654490415834764141581333303533819192528069696622879332523758243103668142894414663395500206638439952588616990971022176978236269597459143713892179231186211405110999960547749875639176607259173870969164724289813624061845668043660073843375865723705684880517660281163314727751445803479766481603713274624340153177285366401833595005691240516821276148098381340949438069226581288311216206923252182074465387332484793762055257254462592571662942456424800571250665780663770097293586400046996303097678897591711605626022333699532975009395920545361121343302169257318124069210280811825623964908416266374747763569058037242404478574852872969472016021556518428249561760487963418113791758099190189097512033244890541066681704677634618770987520779022770306796093534472238232156066317960998456247270084270741835111753976453095413629928836583996614050331645701142949515329807544366364683410050448041566358883127274056307255795738719789454128000072443927361235054175594643223006692321720860033697864026195890796011992773904263079107814241125517972557367538630904234101782127838589428554110443702649991492226343234051450004425153725766585830906486333340478486722083408338938823944392339368576999566395235765617532408729299833432427950753936355132235101983344287132324509087197688411735499304854745839624492267028668705267626110371299953998998305642951659500433412058024050786392256062153072310376358096346881189948688040591122728539276716843141120488835145657594727968548992503940374960459789706379094279884064852571459945366664554619643681078254488508545700227749834557564812740587797569621282878658479606112785012046166593505727592408824216782938349468671422128578826488568961225654647788048037227244192003419284283075164920187045651870058033029280092224782766885097306456969882221755079312309479910211388476742378873242395644277992783276898814520003485397503169319833756423522103637756907091318421270009564697240208276889217723025931681330133575658819464191768784188769496605191834525394420529217116881935185726329899671149327568631959689943987308548328649819731418522749941656615578029597563647257904394269035128526332064713091815153328530863865143761292779038520719778893162108325303320248484731307486972434345908943330005570265045204363081964184016703588702405302569729035132604913917197275168866568432816698435254949518892662763475427528027617393340241630712520886689899469039615396016344351730178909062906993184561889447860469662087084757953262716855159893978614072934776219499267541839589645456806133172138879360787678789747787707841017055804911526720147688470457086362345385454024813678775384218432324808508476869092012897818639806359232798703851793987294784205247669326890177109545472891379990776324309245881535909821303952372102354899642553660400183750182629939287100419411983211020776386140062413258035468310112124646602058532591116727034494475561561598865497945382990742522592588086126051440229127429218046010312128361430630568802202855598906996732961692931217074557407490514517129755035904899900569157761062021043753255357018949585568375875727707310615148420707365341342251316440307497741634237889005704000844669701863434561133578558350152941056842851461841141282719517498054478812116010457293683054183418975019283067147797844802304643484769692208175288277477014681190599845252885888996109677625114252070941126264605162440306096842693722774759462106922090116580971906907337420893060243052110030843961268111277125261164241895206360489865371749777668316289941646666693909455480027840788044248550008172419820675198210151272676955859931000637185703769924189116913063678333715772153207203933991923562948459106808889270340798486812644595531009873740472345454592419458442559127545099526955615200128841826229822076919216097845369554956198731535200515872469262384546190155767185586280832165634027927140978109947676866415613145423455007525858370846057016550127261804083920381667899351779841416989934043243133769330978229385216591532236956537791390018353134262557188413638349899670879033925923296127539971592486169039589463537638115632763249035267899373631089358570232025939636536455590626337639672594787213608351606714625643969471079055209704739839246842644087193881971628241315685371927788162053094664549981538829768721876267659496810834321247923450011269030434723990367833153884571472889489946982311119002071101291953759232059137180236195325087625450608384120206586135955459588036076737105323560469069431013721740042306689870641673384619281069821837687176308814212520874380273699543156613082178660035999557265806068917511755592822263492126974684567457323602487741959016044228655787099380941103641949030508732358789236162249872032271603351248434035387859297990069032749657704273933807527777864300346329929866764499628638837889300819480301846568345043262194980259414787078708509021734891826519023280887941127618221200517254570801151132520851070830322917091255250384817169140931411096497876155224743500176770901916010980584200294783620478916387444364340068958585580467690543852220355857125484565068990953408852141838641390113299749831355580730436269982180163648138541695663170904804817746177133022034247912749400700690430548893436155053046558001194128378912313216580770168229098823527088171917581379924604709579776312986056976874460469124639278698322218195251214108652831196406583352113073428192673426114475490189624716749021039288062455763326262775029868597516457824180370592684758976497883304544641952212593517547181083781753910458003470820312713064929771168269272213400470736976839149629667606709349596907577767884374173299847096572016149943389202060239578904747779986721102051978536455638971040912273161427203709366331425784436370181118587437613340926169718318797014795528956300174026618186354563752536766164572004065199513530997497014027029707690521650512024417936625741953021305510044563018435746194323391260794173781638212278931148882889559070200683806769023860740586506283008982140395640212738481058469241535468350915625867916191234212963715512961777452185207682791427260441207552213076740481432917880391710453211971115150376422565462230446663509125999637152142774093691253031387139866212759352730677908865957259363673240897051019764310974110328548050648597026183179592340746288785743689421879969192636283823902304406276056495218636111577726275291244374171568739545323262239068464429732691633494452926707745117340157909928498635713210581047000978941174460936257419480056795873556438091867750232228084792745041091969979378124392064186416415211305592323287797195939930473283325033460757741213253206308329281372318387309741743446078882160692108919317953848549310794999800159922286297050771622162818637840347858930673757229775522555714882754004188620339839094361498585473174665083533344400542626108212431628144844502768360824622927597326707888524487637618032817386363725233964220816145385383479092287594107034904099992919654235915896302815923330380619290783581383410062364176963240010110213944555649350006149186958354134173347539756600173237409537743355967201816639421693542759853440453962249659011620887890250225104274581926163425632403100498267423890522992633098347088816730674459736269633767604305942488667154192711476378850382982946049033113877633764402838600374798319794861971792494127186068654354886973203718536561662709838310479211368127600343644474795398585905330875262551329144212832188088079786598338830824594753283305523277527060759366879339572685315102315762406279653629434901853880337701686332701226081560031432157760479972668156651830838665826551704344014149392628637070468505900487725400887228641503455364966148980220794655764933607526928666729365580871678529311158065311177296902317560516287598405759314165970459227278320890058387257530114988971080184453744209538450833971346156319442501939803305662864794421639988886159205495567584409876799466054516508622488236156034963016292843715925673311639462467891743084234325244765486812493404731131135308878269443708739753009942567256224616970299295559099251988042386777600220864703813135339835376995233123630582560498761631933603696459638016606625021845431167331108343499091896817095075306765768786405918304544528695358025062961910912561290274034155310111315067363904239688021940122747767689330618360165337746017934520703496714044279942238776492414076218021180652033911999312952983897227066888478179500735960970570268928979835468451914425148708053690520367823644372528659039585079472324182290709779089626237046876159589913523376085476410259758238322107977349320235534538323073496037529028101713728558420108605081760620910418715345868478961261768697338658060151609289845869714493273064032264563638063868330336146676659885592082358375690304877629609370576022586410832746046897938753332670368525297623575296663149715308531127819688519910487900557177216154099363816378001354576620953490884215564504534278382060123982951471184352587025316591715100591369542874532971539534964121924388333251164420419289712465167794788948421842403876551517411242966929206490273324938831008282410448917508214927255609242823682052404140036662328618619705281497031358839104310249147999892068761008270364226702495422116647710191544354387661268096287344512555293692063543264380609980272801243998547682587355876340085314717791462037759207290479852240987778061873014914738835787762053005246223818394221153895337044367040841340360959110047967946961670985858651780999297283491882233042300190621446886998391530519571843299400881874855705935921937887152663700972228760731229672823936465312186909509674130611944179029826819375510778255264759468014038901925617593321949582535062240151711640108434023676508596586454153679015020376986135283331716717652168367664745481314235009004057179824859211523340820090384222149216385202815604453447419843847444523988950141729133227262386840698190836193637865712816421819872482632701246142351831803789606632776207909970017937163317695151392788876649429962555296569497482007031414914115633758143687694154932197324360673995852886007160683999821234815550831908323338759332443746773862604752413697290232073399360492162361917466624877351384248419824294837902346126443592021402774190404628740548805891122114722819615107889565521387230326448308121905968890064443737670658747540480047436052964764479361013317245423455692306606695365673774816318052199109694865468743538314592543063807435733395951968383692908312885661542552610648631242466193266186826735292940890422696257583859622146502324086697636861078294755105808065515501632767612986978090810917737999079725556434964120358233851256786328783052706339211109555044547860951683421120873468203198457925836128004464819999119036087284520644814954803251043341203218313632754754536595577053798874651803078978552989726817358192386178201429822841068527989569544233302473387831169478987986533384181260660143258251374555804440003576705623029726236938672115264562294071335309651975710282897545944634355011031970892050523682723227548795004314651272339149862989214787537679445705723258196457853741331791731805180790344371290402237973341468359679094309540133386356008153626354848908902230859330284764175428530817577946158018229449199730360201980832451906114176780645392757636989175046217543132121279444806570040430529494169953979245493161622221479161953096436187203494299805628020654430744254945973895454776373377764152290409074723155491185328474765079998972305893774435118840175011394601088978487741536213090578655684526481763761296977917014665725722025843216192770757577169991712668697068614009037018587686653895116423474388981460748939015427407820479893442348922275055741716497894411404430582829174751349081950607008847176638724477678497795787081472447165824817432896171085379351022964866806571392032897895705847987169001795719764899904168698427793684653299901892003579517066087337196983623167311102035675107965057007728403271114745369740456187744150579729358657839915927494952022554633070172148439082246098865510155641890602685740296377784537681259198047184762287904195784524533072506731567441563690897374316170451284040083195304963612809618268225293825404624582005008423106870962109457032388132681110138662474670999122293384853943726662218970670281553486587939538490646136321936576608537858087577140132207048728763502297683423334324340177944586202469276311400393784526211928941828783569946416127288033030803623089520998952307004593678177802760196854719600994061914005573813149191293397692569123443661505766373084503309042709081024452293131484754169011775285663430916316536548398824653650760689686915481003419872129974538229858718697446514841425491460380374208972579143762086916108945824008244809909758556104184528451395984688262264048780989948702135512070854364726282696465143309514273391332337934808478245550194525123824177844892471340118452708943523641349756478286442193639877232548978083786421528062914418302004482713999869677290385562704435050664935940987421729759289012587037770353542947022170580461815123234595911168480423055317783187254182196583851690584888433830625660041563290441146976518511571579811716379071986602958724437975911185358737010961032602986934561186882369679443993966832808601610505229590086564795651459367344144697463775780386372153302883407744959196895174152076299754163083711060220211537701079136559987770617508040536746373680126314867377129647767578986911176936739622480721755589113040652324647081142451833942103574670527907582505018081507595327715027755691961212262362099467733570258200139052429266789075993227375790293254342241404288178095456517369921718767221196833152307337688648020241772558576506403527222659619389318778514268512224340809789606640463827927615567230064961808308811980585746267636319651151685033572437305723505931055891346063431781170821410685557018265103560022989430245899936840807106416028695765212152063394538566675583799001099560895792460822916254913641218046821472444975237504101798451208808205219115172581229829436632603250251943128868378145059616050186769935708565424676552703093553511452199535201109257464508045931251963975008613771113129516603950846432010982579332182333229134245067645435577834148205308666048000067052002073986930456365232028778027936810053218593555983339535610501564802267469406911523931732339093012249246594485308781989219440341296734135761467368028150639229098777362647533497252467296085809634529358820437031453394228655834548831993963009515788414301617208332495990244600370321639810983556454036231461491620162152924053189898305581137442815090360870223096336080844543684222198188979906862732756597664966755405355893807065224828175856762089630390192172972771048917160749228696761225385364345643437015320269438865208160044993452424539327157866031630816723443951284936458174489082289128163322561533882041091773484640266717047155588600688847376346736767673378728784908674246920508561903441480295477598471236479136806132805906663449070781428596322374588930867293554014605431088020562699831079279398047102783445984726647755728757358289800352437937201914449801396772540186975739633096303014618624418531123043468824556401197264080243066603561417510476903665414231846224666124276660616928695612636889360831380376847447047757692152870029979306713320448357009744128907517578984385680257063910385732465034802279317708372102938281654001435270380331974679124267677922873498224648881796206962337795921180555692800130694419208284000224924313442248251420208502314528275083715726163298236168839949991602980103369060663369484037654348468043186479775449624459271822623718226340942023261287406628508497820592261620529629393022638104668078368298062325445193652377737956118605332761657639762770045159226292506555829888682395682627681127259995292212452502858367427209173557285048526340891604987402770117320530399825921575993784645800814644402255381670097956818104193645020169151613242950331801939059852154661853472470620121100254216531989061326484818431709897813805131829999060379346731492658493572781037536835686688135081574535285810884658016670963575960637090035488775116210838312714899036758432228374516251877271635401766044982855953370201746632884790091965676184452032903176780753136858413275998810343329840672296136284405351061088807479275382019192865981276886672892933709444875615196648725916078371490944565973540756988960889235882582385951962139630556737689396850212004601555061934766840406448940341800845810311022717190675955129872949371021352271076085828404521569696003409515319048498481996468938693181080806767829715640193270000125219555880789247759564190243972252332217903760891783229888925687958293214601446038783960366137964304591140559756401386840089587283484105947514005600134538498190046782843923484364968215078027030240980299504139637087672617567180794336573753612508764345467459607244550367995161221156284790486178879043435626360701636727968378394656593329985632644813650552076641124199880781070494279663957752268706929413966961077739293606617787550521241520317859325357951273134792747538831889346385444834146710795776222493795260085570654675938254372436307903991098689513111461408423849556052411267632210216854475502998426069719424979067432158895403502007544402492740981919857015457217637687233784474398648541307768364555784860763028966757248917070539264561013199922794569563668259997778534480234472710757691237837065797829970088679226716180756321953756243150567252213381948730237834271992767959752754262480343410543232666359251782295452088327665471513365128492463244519313095005148277924455114488382173546803939123991661395260952970095190237626101018121014248203756375390371420182752875325585357976093033117083973867405487485809689282940464308358749031356266661151055477384151284761305176367352624387839595091720958398744565561837304895715700707401900816122242737555350373558476422465285996233243491526613129103774621634057932536852516538233136311562728002824341813962384932569367764177080976525645046935182392385766156418143851114020029604643641195450830834112367345348544478093681879919618022396291755014214361888174230607887982915201991762698600404785020337523449456905814233727024440615381097595640286420148128531434911814886773417424807004290159185218755936517657259225440138850720598515298680132856810752967606395002396048335358921733121973192199291220856411553437048500490437367603843178140498801907005973554308610990038361878361506916938573438018775316594114041866670227298926342733056698201484307323545949829729896492043652513176766976267571557743412353884087010047906607045529277921632731448222176104320439004436888985753915411230150400019263082284071150309092539825861851735954360583338869696728296673806790142208879054323354983481282550886497523526984057245573788832565119150746922043596766595783774221465059029096815680891877324595652079565209988332783117753502708283875495390344689936597398078937572036844410491573516517314984704899153109624351253874361848229115371221741905385393143040429989882819045076033594959187462662735183170426625405161246192258711643590755478838433606333355126974899815492259227135016327536376099714407424807024764104111071120279502277392663228739597984002206282025873104037496915424350825732232987360106180488661840680418900322250796271861973932786020730397727914415834917896880206494475779545629691697855530814385275367559402302831778427957125299903249414106923140648047296574540926917556073997821455991607317690223248976081037538224737128826572538123195681479141286128405068903613961509973451173453104822023034381460014537570915633834663317524496099304914059459294606854313552594764565421459885959176150568209567824294709119056211665846966250686209703916508422904490096537681012599399109782608256548095296872675117500623436189207827456256283815226989434601952637087254548819352042853367490881841815093876958786869850280403467655340337126349953861953642064287925316631878901435365608901237840890163360455227818860233421932401120600402155237057451174546962986156495863992371021029666533291196648960253500754076900654242632274701935758046961517649450508320732467605431046552803088638463290433270182476366556315842673414298559040593372023335652231430941500110017665895282342955468100414761151837600522585826672311117878360906388559311181968283691364778488833792246808502380019936334813191626204881435411165218885597900352947445220855058968268290037441302724230977762088663190022318792398447307833799010354719940064688243391044509453396188088045974613503870283473347867259392614907732612902553457602186637314796803052460142902794688081577641035233472205210562195598160703738954104925186574820196455738777836699299663126138993001430133904145317077928442810522421837434272086202347863894825695290277009189001702729222171248265227327692629105010393874248630740577854392536010320932286435811090457181660948352593080825879467840330287371374304169821881950177553289605955896985667238797266641756831331770338788099386640670865177609333968392303280741394973928573433511193686669773108994695901524538561310375050417718444188720184180166908997059359262880701025427659102285420359411060678619496826825821347188307001338844353117020056046495776268323411584098439435663064575956795061150965592230192601183393611096076674021733133497418172096879739844308099252872096492659694407240643444338848796149664369156596504892601726931128441486314270926609871453519822226823803704661704076272723065739152467034300938415936895288019007658231161856803918765021481712007203815112759201367558435982087287953083231486949015854580359044806928577351155407450575119147549159117990167499137852915881998060672252995585831640139834427090871075809145943156416099321353952752122470200947653849185381834503718314804482954880713639813669767935418502985350516038709427525563395798334526368907332293933710957141610045750435014757699642898589111861418883298655738191633616154837919244441175248867988162017071652745932384527673644333684470488290861554630533561412705949904607552853287175761416130993445185398803310476867605493420829338562972074167321300227056824047794207418227163440700849461693748968344234719623192910645289969719571097904027482801633982590098424348371650370859101177723525378381177907435056762141985876221060840308331485298585656749639344507146805794478248139703823435139503922157250030717788448871930599811317528758360798158672812555288480588268624569902052056055645157496623008726351943008675505180834507905778499268873522454109108335785959146205971976097923097628556379923510066126843331887480847652952740929911876589700283001268992425863498003308072843142153948457260144875850103137488635943182045617679329246555246997970245578572213381540268858781037177266687668173009802565416238931955275535767738666356822878031368500567008704026957894621826288644738684076819379587872416933726050544218940134507120658673018235832556411619212025569971633764047341445246181455556711884090293235092649878345753220808298252049672932407796174834540579960464029860988800548810456175533222336905036047386175855042068484537204291668066061649504415333504038561800936098527627318125534161778397800621370432547984867883510345401675883036425783740392817506672236247920890555341719941809955410978788534601740696837141759124739480195737614385197983126656715748542233366160529555680611738558562528859891730433850480901982835623658847056722343675867979632058428447617488903646148498670488899380325949858529175196085499233461813816681709255214721653422910910760124006776407111175187073810171875670429113780929621273170652033150198798791350583477507683435523988294239401139997889986958171697770739963778021323428449008382596769843319923771829505794545085420751538699175704348934538956361210885007664538456564625649089832834431929966529056685941754973989589518315504873937113462220118031194472998291637846359182627824924621227023211873269701241196843789353822155071941513494727785240123921456730170227320881771974019389605647870000145397566288034359293618948396567870612402284550259492366159284915357059774647526778865294801004508995840124873735179722375606520364469417727811392295125160687554741425705218248246681988063475452416465777531399570977325554113510012722298260604403293927658507695109365744935851645596094980070569946586005071482443542730933206874472209126361185597707775243921034296693781320616318419757812198970069771973729242659651059917219800381325097131649649350647223016807090638927852777992495215117943177661304856339688079162779269750170205606558946565308677001664608633004599720285192401144585827310928619570727348934585757798839420239008419893241713099427879599109180005125151165704716837057703165374140670449640944552396678672614038212801957766904993264509347256365360224085974962081729407740998110997283553247744225705406239033886519912588658696908695716198006255696685999125268015686197042965895226446480640328949999539255973479822825225004940819890407493045915867872092450331135384443712107873226615398456920485899020911536946993896527868238028920756127118018847385042640951540288784482391703451988825897552206479428930600765436831322748803146025406142927278131332627357564336116665775976101774121602649518101311068281988152189769249286276851468838924519863417817016067801545473554367748791931190107731410395835820825004643167279053745110245629486875533601925828033926495939474604071736990320734762070259277878777517793001114919793224654336241330008071592842734133913120824913320289066536416166469287299098682639620068504618330263546959551840054638808179163415765636463433876256677469763195819487966687736089658539576201994888990126562755482032317597692467041060141623285805230027023853045469019261717375875276155697797206210351305962619669945632787875203973591938780329194733635387845060294839496740170984911165475948343784691839696431045124193097121089433075063936178519327509808002825534273891121130166732688882891166912774978177073537389028924193855700924837707079313194562669537168374114878824200316709921544147121386114828093913866187587275849243373612091887741061077005557191552446918869624159517680247695567693954099747000207499615854580342556848808627349166158437594590821280555679962643738498937258622663766118115103333862405072782011783015946752891130092253761647272074791933414230132887907733685300962531523188947517580496726609429108557608237483916574922862277765150481406437431569400447290804243561251232334799905566667119604700971262526716617538191168634085718105421078221455207315893724485160606756052578747322043410661866395031296269994878805806687999746560568731233824677647467163300244137135566072520799496511673597838115391632691471769669164952700695666426693517371422267330936514909778600236492857927069216526261399663173807015965448857323766085881461225399759566683312900818934469544288863021320451096179924839536214238329943613605869575309484965189632487676484766646864053223889614381056237985879163803444190749297890425612091371993583657799433545364605217628224230314750538838148905227176587324339610394388679664191188944481476414144610097823934713504783126018146233360058821110690295859070059525853416421074915448825255715956992286777931264370935655618466340813684482154918063658772877684085495620563562416419512372855171070797567200788029636411396501813608092336988817462176480486834439698921708147023708901618893437136409726667880421628307012524283250992667981109598654673428288332086413741908249686340072452105260245345247810410442578426165903559577665302691947251375221440706645210430364299897376734428540186611415024931487704734510051317226313543532791007573603234867749811363526294892019529787725908881129191158304237233140358430956081557086954051896115047357733515193165325733076165862006987965537536498082367001729829383203231183699572049157345280072988141944472633320856274333529073626603504765668104145069687957319708498848340723208496299566914612024914112015366836496538265713835984788814103064979716493109336672143025152963839646639017636718928749658307374012425775500205715642060065323818638799669414367025380806352318862071830057388660017452144715707494737230417666391487834908566431013195091474782740187143970517928956965297365036356457231386698296852510827107109353244608107541602821980676792287871971809751892015001053806082383542594708455168156942509888999716536409406273670832201968646201109451193954675768267717498093870855204032430947837921918974384163230379858302382696259081857184366441260947046343589589951594491023001481483087199532936984237728128164193288494130234997557476122047343147440222759097654147804233505291581967467283096040468503425297742958471477157118119647460079943471999377521293978586051079178670027434632016758393444624742640350646762734000580471111019562957833760385214105742888999222052734257944715460473423624452314676696536898002726023320276022494964977625957546614572583820894452105804804587035949353388125745826247046772602756114340424628800948520754757534870889845561962097475393536587589766427282477475517265717696467779706966986156390849422162756627094837273547494425768471247414770348226838016951830852745600612161597703032202332176094452365740717715375264782629522562244073277050912727026516673982462958556033811817440743186948730019686246000698719031497588050097480496359906634348295085741147377124278823159805559771935757022765949054569119077335609397654261063202805297355151569371674279787234022322290498389632848475895063398335111354627388601627238936631111086029498412932797401974024598553462940046194686307111859695841227322940769563364856684217030533521394295664160867014373657275263656896220996009761766555946283188037606897969947315121709305217599262390109798085201007228399160456515619426041122633668801012941242754861096012598891220959277297880738026544544778399914158256364414922471576996161813112314402476655092509889263437903302276534548113671507545398140749342008216680215755090493305979570804120094277654135262837408542877572258319903301831552528261184596660181946366026352239234359476031414894459446193763750645321517422084485375794301383742306276843465360868118476921457001547559469360287632375259835142656729655190630718646875589388702566013598605521386242778582294590186285962122408963787845365766430919046116219471110661913530243787562822797906145409947944407625798044232531658976411880208601156924364513539976140123074328466093385143997528201775686032665331765353156433003671188406647907895508738952374367277298254031847513012389313460713552760400642130695387509713573491412392637705717605918184546870765895784730420472102275306292377900399530647669491635596519126367568358523509559920869954012830080761738081502683534375607293354276839476966822048260631212688608134358086149425042310456454725772014780090286569031943688330333378519641567796481983974058065194506782025586941142894937211906546758334022332101634633537380964159377319828731677621501545033067554030649079152872461536043745473873217910447743114368468757540038748150043829104108067147877904534209938091087675673967743060603092650481980868121983228748675087195521783223390418430405063832582473719308402872265735301480691082707766133595885105479267958453595981911459106675135092753493919072440649944207127123988000907153011242444689538557467236564325974031007432319669379419228688811515087651049951561999115934862175442373925753189388617985710308091933747514763758230866458817544427571648127238520383497238924172249133439626520364995193121800104657927029360837639355664014410334083224590431174695683797077613959859920837398360577560430284670058260026640325223043647780271060972819524108998132146865069194928138564796452396416919116123856496939872461717801975727438488030242600319345423035195210861655015710929436803510669329784596439492988395209213830776373530411707081569825389678100734712934923465634890325900201898085855025974085726641713014821820459687914226142551733247469630908686642075396986076303839919345030581695559453213935740762933374230035462774697780933360107526030175429893309722520060695693859763746201231197491909836764695961329180176297106918959138294117574727805428922256779381233955329630714247120839360478380568422266235185846428829244865972484417822674191664719883810962746096827591334092987603928972529740883054653529110386934670733545572308366138704352295960101253832836242024726194523714724903114203723677988479032377696476051164445932466305689896954024425959774944095232264966244740978254944833991670031858380040147112725205533502020091772202980467990741443194716584568324363306226708926226350779447638673665239794814615844986807428137101636206742415098465180642066665004916241273455302947891775991290920013147575044288261732407691453298127741679593386167342806523103492354562027224950153767077712206200666545108217660720978476823950733639945083577673560787706465546049837317323351113916953671205630543510724814371571084377821265558799169526464514337587180864176806606618220195581426350182459094473036029113249204860421888309982860724660343594722287693009538745008330511199964608630907002929178278728358894211388840264924080398793061976766266931356969255095216524930201300782211280923605932200528903147051567228559983782767394751602868697801621706225080836959070428499818949416721627278907170437825143008651544895083952913936185184725572068277052339976487950139702144501308071834867784616560019965496201143513866482475785115459209016956186126905053189819179527823586192519025283668318849935875633969418293057087878032686872934785481605443505883116783017525346615173908642948249143175154450270892986393638118628206698220646294884153595163834210088678629561939818531832750973133311848836991230672230803363144694796471958091537479399779553789750358928473229126972913745935440829642377735803042282680052344396613115600839233734772036164456798398530081388038873013205968860710243175334413970520194154787609234720464297839037916224563170281376247212292531290520260127724492426313469111142447642169535332559577492178371205335847686219537282266003123605125138641353261899066426463581497674733023360891924647315005968186893763968554580950239063139237499496251514210560009113267743667682950001915868687900250076886674817884210921173923464946223738614219757054894357690916369509222523360659743171611136840246143077608611006164419867330485307605256161573869989329362781287451225402994999192838122013714117230422794560161592874070861278013980338475666953863743316962487625295191197145333878504372384151928788613549221462765347472558893847343690482714240667014711349668828739074965904925897357180857396888944808043859981389452181205458246565697990037557331843526892352446553861807358514835825045543762359771355623557513418228202620247893703231639279163436886446020351783325041652624111324353735224612337701349040780332689940365019119056421749063011496167441153109991985439723336757523377663289865476142277891110252634366833354986821765096749657287834848079312805133907311511877822931892393572350746994834039397007846259655989464357499576127846497824923430724169803933651019036897504965955926891585326018474008464852613489184477107880233746704335059576252210682330426353289294055267269036483625621041093670050806987640772823894558167642374272458834440145439579573579654473440818393473419463717560875915446755817436466327149214643205511009300629215279414556595899232732996535265767516421981118689931260055861319281245588780920508897162973857296946900612813512581491493598080773750187306352535993797316839605274146066774784154294414194928357439440388149919160003536478667440490370565562618087004265283538253271802499581723694399116593360695910058597359694031505178291026405834745510802776860605722247690041960516299798392361740844833949640464310263718488681267962429612067454057063437297917954852304282453147138435505409581928907533505149498135687597583347436198574636575884686829217389082312687048271294330203041157745135766155350564129533401166414301829158951959246657601682714005255934663833539904594274630471124178527057903011216455707166244009240639155146538195686593087769263968426731328702770946804511199945835167206644445172589833517884674153189197483703776348781747861351523839742595912532082685112398863797833452699272294348407846047920761223841949382736586259665361999186619291587025713598887313653364117021351644087680801228520552221892923800113695422483958898640378257856339921504596847598307581945031407656504939933717683383913180097485551860657143167248497228964942534495286924470892219156281304650984049154297580632031954566789087293051224994441235626680841952158240756562691512521171368206835966271579606330333119796470150626703005638889464899774120043583212118957710069360130795683949331014513980899091234220259808417778015165976409191537452368783858864340708591139085953722139761057460607903082007296895875217300657735834490473811681098293344116659171601839060116835942817471894054313039487168422781640630901342638202394932564893025197466637924938018040267125202696475133755269196537985569151806738664162780878255862167220143243843245958833878310159718068147314570235201941210399083219832794950407970444837842088848188993150811295503575119145694204773157364849469691368065000384349513732914120956880898966109449211191193922557492315074195518670000421208996696142803239508221631116256909540352260893792169866731465078546234634699803214762292129894849341309697616672642696284422762309523007887595899487055791365552977100583593070780102906402378277413546945926144247177042746289293614232588094000682559605497680096935994612099506115786523882936876528301015689367567492571376488827469250105974146291302761796201691309566207771713149300302165469536954423796751608432537537292460597173998749302516640701882247009138331962831636280911589935991702571670408589762290340495981053726599178911499566727760093844079253776840478454919534120474973145789207221745608531407761955704117705306352820733255159879569636387261421686846068428553966992270045270556564842828560511039546925386688784393491050845747761208701556819872564613977138431998134643198079995564953103801064254340340168541977211539171613371084733997736281413366574823502945920852745598004339613045907453460036197749841672278496826744304520642827966996790472233445231725311426403566446220178103856116388927905052574912164570157416988665051847842609698523540977501308818544994066538940974298152470442765467105827457921325743288341087130931101145435080791781743952572232628776879139357258571598151751474172150261447696984296012540539629776079279557553632780246150829030264917722848079982665773971119129932708543320247806882464554531812700985846006159445939415316650419137726445251683140030480993820279092594378347124357197569207351847909048185056804138581400409816340003392600961262454699637434756289672729784613581495952072339461531055623199175662233810562381069995804519474560587299187857862886950717400534458661524599660897352200069660828465977182978449484678995694099901485975607650301035487151873739620057488763993306129977190125878115753670144360523565972317149190472186504939181128434296584717505463967447225883111851705281157825447144444184973985007047687596901120360061651980889538228723934478275926789736746424610042509762155732096198995431185184745978323859789939942197709806284545413621172000567431780041501679810024195710736587962495584532923210514349826021825607291424882552181141966053002165979596173263668436453264826027399485992844551906437286064465422034891266936315287916650485972254055963281663245613725854507805599524373599100888860207641406967038300269898469350360523793034948962663644489814611131407136871285790412245827333412750309573185904949658901252189947064728420115712517220280014405251370091959776799492177963442022997304228605883122818172708488388170007869899055269000053626440615701183938993238739410999936361540659375789013870929072291732563365403755136143653031192115519136065505179663973167731508167902243434968795180419977735206747659972529497499564460702382183122300144207961658150831631676631564858438314305013505147275665846685872247600334270021831731969616757194557280283972630237355311337732993636849071247606788807540584055840837995645165518083238532005470679495206039063236192565774188470315511172540966561783913886117105167194421200464036653589982447458425229190677253970908965022756572046469477469554573505687994476405651634954711597764813045008406035913014058060165006280482257756435218883623880842304037286492066618038610355074145382591860121987193819453196165217969470266387593606464911929878683631325676814993730701805130819582688186729279122372587927182579079143713625712427015620885439604584543329649601228434586495321662848229390009523308757123989182437790506818076579986724873323917153424045973990950853918503954079115830981062179781732179786589119658774774791312961751988601582244812369618114719209143333562734108045878698019425190345200565047648487084512045263692605120630403664334149994750923731459375444846909848508035522387758283300371853383202746035376499265522865887749442653638997830234890203345839817922257305445438333576479350523427132150576955484249331734869380387457523328245116659567467608015984337918827931711225705944570726488712492751567969474273249997824958133898908539584341585163019030253314488750592575726660289893702441767760835768545590708787885191895776645334242575101261140734894809098942429054477338931577650826822612454203746064082783959315623939971336025044576047728557890841445443737589978553546578567470469125891264669717054731960185112714929590524692981221736495644877384842238445986217046896439664924854847219715650272793972473257654467615682076309089043755435268265297458127143916490657761792493179127022876538620292542984267516349994415010432982110923966490219869263350551425632497677662560338123147972483453158563379919880514311189954140510399024953010427873693304637124429653249243522074748970412510750425206068353894269155262810327956610400326175385615173519136734273052859349104408246808318426438913926199942825044379691347225119071296831877601019807365308379608634090786146876820058712168665289656269063463314453992699801525182785665038308344064606895509785961408608761475869119905890253800253974885180909909396988715148725605648652860244935061230829571294257329941479950622792318279608538146599466619645438293968595939626949138369317697878104206206678973206139580554626478516049361955813160415783423647161122874121888519653952959067845980130949606640892204368566817773363281512886896907900633065181989782064476158874914282276565490789533996873345291744768866852756065461432961625602219120514978745083413579454340194645295680561633862408704978208729980796836872091831631261022714079656639360052060184430898159438462497144620636357851952100132536831112989206306130220396773713140635382658225189061486455128768735501265712754072756574403347589645892928318386855306621051382007438275405484014476734254703923468520454292849352897703865561061571613191044345428564599753164078716395911229665409411881141013037234048501187990858748832817214071776698683888828250896341162596519442545427203065782648202395206248327980662414185987653736419717701839976376328832069119211842397284913377613582441401161656473161473616889547961731817860007699437480344642880287149623622157838316082353026859722231797078997245717292060569667074609515728729246247112699276843755485149311431401460764729143860879741535351280044538628006071120377060414854709566197139964904209374170040869527617147329564728180680083221124912909466867703179840498858205804021150932281385935403929751944437051015999478820804894131519759384228071248938027222604413739023878431255033919352967620509943767011379034990429753572923486922294202258197639609903754387563702281090044183203954395481661323574188043477564524850276820359983957094653964247089434583557278040445708381940450968847684494890564284896776293592228366036716788186864269807095171705718492221365786414444385231790724763262236255679039952401041040420565798401993977142841241915508889254588021195854316556877545853234710182533309474010965592410298240105887846718861763797476354228704239003024030836028428311325774862994878610985292633411271266261877584831813583471938417941888534650996272709563468116225637230770976778500033148754024943379042300251830713242779631526632573919383045502690950050230501286296214190824081009310430608624859496392610528304070646339910149388846307962698985436888058153556841521780639311968565712181398885208730098123092355208266043971958313226198331332589441322146855073296498446314513799601965826492266101433709869369588436723967340985521292884184064905897376716291444936429476782542754510828053761741491935729829051952781049962734621305063951834526413795775186314796085746066237591587882678237856385265190843883673693889134060393428792689491895387047311758557385020342162292435912171094405710719138061936820064087237321714972883918774459568138184570303494359347016033054197324473079859155953677570938074825258458936397209757441413274612928911132931004503048512676430786601506332998373124747312437193158059449054821091190639882566165322199543398765448353340539896731723734121511567419415711211085841613991149467725419412820718100381768656206408414589763131598758586084722165662195111900105567631052432080170412628257288659320224781045413324960932662433928698504888373594861715359834948875935916205782335932403572455354099383578714180383904220375835440134195254936338236202622774146076077849620506470444011181030459649298601720220800221731163154380899705419046946454067914663710802566794367898808817802030520501620236110981104432588018127585186774039885949148266124631169791556784883942704726606528231033344739369839660572645975750839670225412166916476251594199252341511129979386638684539664952341694205127410248174797014229501802863797111584667122480196480183835313739659509681716396560987280308448762587817289007386064619427660143364786191925293455617057225050840475790558066707339102965226399150553301095032182374444810334171447235410580345865810711231155451982155943079167930640251642478771744777534016373013693302155644569413556183391539380452232132734478233924679555005155588336963117941739147917844308319024197198481377775447501799999613843967486381571459541672743190076979645372368978213862838732565830064815508748332954026686414334901539036980031370168446229633758761597582352586013958992612286856793428748317804043763937194652079567873662266004244855771372144395649941407321411160824121339589649028127533881786482286267728905229622433392848917500125278099344594691278245713795027977249373735489647942477178854876774441305305966469014989445273914161057952848270903597006453153325755566682770901979737119680499577859896844807428610253775265650892397493501475808713531806925162606228270892245372776422165804623309606883359086122652848120152138907315514027680183082925277878915511654957438235620367260566210429738216772604089818675432051782126825783305705004037543275728736902334632125018592144252368933514251807658998875768881349773610211747607361225309449780522383331565358600464893476953442194659329609578862366947971872309717312596851699955128329609861252796227522252418380660371994158260541899646576448105347091328682947250351752901654868229792321576706684502280971055473368170314224456232656577681750213716621477251199598003684499787194169421956023106278513681244850266916112175023314282261982445617279854532266148303041269290958310484566855403150945044360532965113696685812177645551936329590941610409681780095132019681473840501658634754130038536812914162575352275520233787170503122500044443864253436608542670200844335073395876432008380250934714510074865746600621302487447983225022441615273324020702304407019489378534304236551748305378902387623407617685530018640839620373323299264394242041671943366717934039400269997944151818208671259203408932784266659687974977546977394452218671248265782902860541825416836154137353454884417860394678679547829249783316380675476293233941378311849212602829672639531944061368901603038337397941953366929765720562924538494015968801806864169460176406496531177610640085892136080493883020531778753015483093996056651659719733096592214004188660542418171442020317151387965909350122882640090444514506913899554850758698771089164691222310503843589574795542467201554891452716421118013863909686896773527226196144313821685230941738218666897816920293432721377658426815366751183481824836653601608113861746904026830078745824929067998877193405575091718588491085174190032983038202935384699500392753392738721220099847408976559825548462369088645221005761166668945228616515875811541607750048637217893555185379101112471290581941877506777058165939711707207486676365856268280253100840542628325936175584590926334132880943948885762866906958424478733891311696695603252404193886840499914201424558952823980935902820205513644363743277756464533247335110468412304497470194809665713547715527523464964611230423121005914736444018690512432586598827641387592521207018469726301981753640889051178097421773271104859215353765152627739098845572640941504955575047237795601766762784008758566603175961761666701107638078256464685832736286737155898815216235836217817200744156669556951864903874451995737230193335915222816100853056285391801050765044062572908175176287445505554253157932498266483074222058645121055198829725983981939374062682157216271587743473088899578387355278438865509871503837686406681609994702895315322160310211945659914069754464443220122188041785806263246455141317329481388565381672352594485339097573933082194378003881128471320208126303680196454993224796158731757521957900256589614473120487026127318054334402859018556803011725018645525999293399858064054480997900961519886582169902262388449743138341306263939151937639783760150864889180953819343877970880431042921723868973173164172623988460493528469846801913161144445019579592505988520788565441116776063419186485344339701900473870981527372495170041860006067963156582903069646650441701237135569695654352765225281579575415001578055913891595357573131184676547988411855244805921085721178508706081718015970104545002726249335077208352062296934935489168257005101134845755661705764344144514007024797880288483052839491819328510576142953536511868563085811844204371368092978656074504162652473941461019365392577980200504496088329109862623982747235883037070088837286888224065565881539446883413032085334420609523265691390255854633205201410754050040510927560367643455459655735793103819019049010650316058575255525755493139732545773193918240801640448899893850600664019803975608199627203220532522476308212480091333008353855744450868812398840896472648340868138655131819363043932995401812947517041249722975042406530252824279967560180459978759967309662951952377298875180729632452823025992367628392607883136728357957181459242393799049494046796106196267856647672318471459140319751527168655222372086117432959070096486162511390089882497797221591849222210973599194801835993441739528639481914816662411620440271405371110917166083548746095663726267301869639085693981984745341836516744506818356953102146686607590142383747272681689481815335222311649863472627923979274255171847379533679881495441675719631907822217471982471644229428545154175050975936510877345211479530591245487728590315685475211796801372854016534317826131380390420112825732122692419795162403650256393476159307959808937587054727427424112308631517952451677806575109877053213745826708379976271879852007894395356656217683638807714019338723875494822031258469469478496401028551575596952537977541952997975884215125047485275384973521269174321614715308363011524038911165277902116449309159901932315416617927957547885985259005308876802778074838648276778053822885717779363986202001857229158173792831844839143787873955461265977247840315808659371897493644652452767494547832179990165919973741461558824891033585046304181330630018329107469531591770490891866846082266953133684559648042141458556665410446798058223486847171008245793887279473987049493973688784152632639075594804306546838318267705043820991513323819197677423231755064227850304266269912935545107053425482991019559822599187446453450760630975267020323874536468950164182128972563785283137627279879595575321048759593214345164016958430511619481216404497787783238943370623409731960823373877158535972247783862532912940436847351130144619787401287611290281459243112545565099104527657652107999017257427015048315443746148471890150460855770571529422882576504638547709140511647052963354140622628687109366568648512905819880648133023708797936376428578964015421225197069070558844531894844648051918834562319788714302781725995340258770223066485433275723525343181400742348978184901672507797910550917266861845681285390498409246334952665801163868908384749791213596839995187911354055637771997631328990027659220396961055986629753435998349201301906536479562057222846458716133635036573766805636636287140688952161850583082100470915407695445009307828641125204283669912222953127924038068772067895947337464542297254259610303741958939418474903857775639420622909419121800471939276865570561053726898191231577430977269071179737266003899030087864512253051371768403444092638039923812941933535173074634270254193350320236849886898392200546021060336249929470159970622889284389631801314284238287568540797095937430489733706466410590408535872604906118894027780576950973962071392566292503444769829659726321430492831927733549715466308539099506349963066171662181831142243243028771808162238041397809479898162661333491443766329513006181959502118750961193843145107776025836441731573488634643720171374859606367651687560906351588331688163676331740705984444993402564606608376597994763245442921766263579100338502816502366169299733931240465917145582080932636480550584022117779587208129681592649693961667920885992348908168153677364333731975184278522976406388704234440684932122007094727871355457676020339066255291184595395775617436504959389671484911432490721699542617524566521560680127440329323915626705101406266180357084340731910997426080077974406073795617004381222187382763668092167569160447525092273555111167795283137724975354251268337658004017937677691342644046531456635079126696940184716724428678311920699606500142242351559855254601317367100870934223354804736121868041325442093201151256147165674349503027309556176732840540581953982069515984116923946095666414135446808109913808269622775343401130532094375284500225276049551126211833853912234468257192769089811570194370880085156223800305552679021814505432176490596097909791515958044106961090229632794991898688064783447795314068771827187910374179462715954706748160157862982456835067493562718239000774172458596802459104496280792482724984855567098034863332461719011711728742206512746436187301149551460291205488926112170038596754548598513619485707303961790399151400322210223718180775969868774900055123928708982483891736968477566926743223235118013258295984221741638346227822798360400313673760784565145018851354494186785726254256675057829181442217386886531218877108305434639002227065459193998748163111404829393960209240766972403525966069845460761969311370603362644305182832578862703257179573847550288054911066579744222858874091328728908940449527273228132831623223516474722860781118144124773009167149026860022095683183766635859025792840029345634002222715544933158913773793579533405425777057398019774430192466820894485576050340540128377569616199761227073775508934263132711465775250440482294074051480301650026836167638425250716604790128964438739459176999839374879284580719291590028454713556439591709427082764928165957561502272999660788479105421700673128070389588125031810403666402877018725316494413715006418435333510048062764204408525266233952203554775305497246206196732661921381935258274813379739193986374411727493626368824710518886017389233127491352713291103087307981973692204585796039520336743535695801032228255614423502619355984637139194983686117824887435169565541228853550374825762724827181506699116241178267495836591002445053557891742128571911790677187338592308811863783044010391437484998353311753952291163041904176625145293410734961468381255439669860065429767308854039997106862350659533372589567048826028417195260253131343060325467111546184467946755579909634133618449218696872348244647947177001034571709525936774912373201057946791759391772818309467164827302462894779492671192722312324148758636874690382874068638711807711264908981694833824903390936550015951062746667938043094330382020612309570174880866462139312053297905580364808422410051906176477811996469310573826814170239847936240392255014810118623288326862310904414221172513102727388188714343942102367674848248164901659744835426428208572380284919749986419030315088602895608448061580087851213039189986122719845413091468475306772985454038196998428947571678930024345482326573197371195598771912769239956524019314145714245521427839209946699289286517865730267018024770271294369774061127344800076666037528791194584672665362732016162183133429991305078890246578770893113589036946142868760106920588650738893021547166738236866615079041500044808686118875955335287018685969914592901925337407540321412483136732455668504277082957813917210418804863794508129091694287606804868084755820317427460975564602589577972643752655798528893275799121323111350639428792759122235812919744529781427141805230412860481019711309329314443333093140685936199884142902683129538604962506917971000453899063537650742403509529548414868872320633856129244890002690005452887063009632694563066334843133553342048418763634555573236737098384997186072517163493377056514904758793244386778782235133834561234775053548638861898795878499617083087594389271646340427839237744627409183859583464274478080886690181791313134218211670486363361080997287475815751522242594743459523819973383741296691897675702992755023412661964935343463682517435570990588873896772903873389382055318005203870401534727813760141835603343386278608195328705096523075530454259470417005881108081866958498591152047268039903146677040210030304569879152525296345461433414432553875940859982805410466915683665670416976774534170298869543925559472904551348246752663803611556810402182369169969250753111378900470456042136000905826759954110824788810098166057723722323520952633877813324103724568752478506508631850006277274115692163465453156036327841440853030142938895311599952958280167056919906182618648057692564638189592127166742575435002878136739166148523437060592146053675778984496381060535275890380036530112547412541454085205133544972015782955463447599750613429518856442856908019822614002184722278022931692017071430529250437095361662761477262840335454146974886117160484620705149976893406055449820943727833982629632745995964424872870578798160164732622513230744749899417097854826567259247272139050431981785357103547522219978488698427919478204652356216491854639792817344006046202438732888885473976956814377588625965177291683093706654130199386485818150449426287454069977308653163459072537247694229862485533372974746637801627110573935586155895673387662209226910203311157882149041958491184546854914990536690972091765881769846642320622677609004187878291315437911251684342440507415447557846523635374615572973144199063520371739597817984191886383678053494969238269961265624847692050839250441978437093329566544221705547581832602741855167409939607790176105704572896354882814710480698527528655658317225599746527301845546676694889039648602636122116535503683318754110875552061655401186857361928536486429749789614248655412944910379539667933146286901400933261588835220662104148566207703032230126744027067428775156596154589630919309220819903882380676687711236439987439298622610993390138020513760675601959382865254997122736305226877434353554867053924417095480467356749888221432566713036825140925325196200817517493628183860570434014728218668628328616365566367330803705343948814189414203317435624763160351518421391732190822725637916736676986932622389491615053847383832344260541994816252266565711067787845181572291471852133698894828992835606349374072862403982059572178982165216770369257410711005305071287025164128106280836850266256194568329071119324231093228736404355903208437320190687588033163314428414425738596443953435953323502099341126206737551156597442702882252107532738252898837085198796495681821902848173373001411992646848532843682373528487209170795927008977475345685863867076144110137011194769006939071007485950150239549540391998281134166704311275044172230705774392757847632760446340713172922262759123733817455828233182443648595208726444719828769809850127793949127310897355405985069962357508176259084160799397675629806362373835103777453707598202852963493477430709118100275001909884450794218542871175050988623906254255908093792985729334361741484252889455079417408885259715083596303184131971278094644818542590295697163694897958961014224039912816432535488032736113007918713117944742990330843777204815952733257341206949760128353944816442875325418607196362962905050380996284488220062093368443072692576913442463203682324644980455255739346143707301000788998319640667283136950639969288702261697037447729246979171261819240077785070376083317615667643366153368518176698724555578660420255582501894407677002816852954327575953237874248872736742163761684843892519228128967787805446714278696599520594254432910010313837628192440827119148972876708824328486052018038312242119963661622732725686252689455874409684714832904879217019768917601967762598222514742496589957881588033762422821635657843940512240171030525509338674692318059993575816675228194862440367145633964070087290566533660553734639876292045722421060192885747843782677420404174704052975007882820744832220041672215367378388348388987395201011555408975084220204271851432971751219636671420842487980083656946966704032001500788463576219549258683681470281209571385443467045150407112613407514647290019413568255468799170128560453605931313738358270535081372874342278199444095276159401919196590557796548578206999342280645622884212193132508182862621915589521171712001572044175871604753746713495449739774931592417593289610266485770608009388428663269244337547051677169353998395421308705526395897716605144957051216690486455226799153644608755300702076181302411034755409563985232856777866927873839235671563134291621973830011420113881660718597463541501916105741484307065020916713135465905973122050296955875465232257000441558265796196815038200973883671458038306890196030997318068923416653113819074027444849393598855864923673441261084845210477814924573771977670983934550932468401270899573560388767277999486245536576412593788967120732279584383843944058908558291145127803643672387572393566418542264799313455433393267274711598851887561852935420384427518157519241531115047101916698746041520874225389512117558931885110654284357626950931504258612286254037413969159644500153450332445825453754461166027523730478514074603667247842186316892270912421988367564212020349052177524842965569669637545580392207479048168865111317273451967542222200714237972269817848195804013649829592027954938498054483181806516696945955086020701023680665797226015365738994028352496605861962806706781664151583401062511924984258617739736776750591890220638299727680008044146076445964169287066919654038942187399660894444467698617752354070746467456120927496907380989534941374843302157739283333711714897859226197993825875076804534593731852178482388386346920013989522856182506296098995419313583406067002898188072974012511677731798500686455876195843333992312369007463338322607433725205272757564232482371355889290974868154277046200077221762436127670647673931750566678102301810702666736638544697120387888969070295110010442378051229018400416100182105891271677476981653966864194181092835894176940486218267045173214135215742133455458897946086731817533180207690775024517970589338097399752176392687021457354476834767459365646465440568433499181923576996199613740721205374683298658602524075500613326211000781331810375804752716325305228860238541933334131701916150654890546404190214846455426790526279418424961908348554101885932228577531796491399312620897465597592696844031758402565095697575871154319042782197167003581733606143352682579443156729537500817239437828785691475831339893321101518583698927447906445716179348301880024181954196539598193819794847733139788702432314204497859236408762645218989826593425158349733259329101018514650257163616063457122640487416912922000775966403581487495956808117784548570741008637586046225100836744576985957591518034239775808260661324631431173098459296120110898751926229976256125267310563283416743438082282108277781547466768184374990826046573578590981332123178691695395241737607643508585159551232644961054207296412706567762341009059309329326398986178608967969531091561907067364209661330429629339196313665751967349004781854950602319858631239590154268172429175535269905620530981665157940122747654137773571637905662930335034811730034815107520780322916024168127162572566297996889791033972675592374200186594318531698915261295344325403311230864324935255093075708249389901183569594747325986227232943658247882335310079829403476490513280263934312607323593040783432355106508700400496757355257144880362910121176706872927650613046475936302253438106098231063702897172690325972872065810699240206801610740465373888117900904163567408474002136294902875237371201394025183426728114851535775665015158173310364774079235224818822659592711361104988966966062774236657990095158278727557819526177669771240306971017277744979052413444532584909017588757437320154474834744574246001064180781240509160490857217290243771462673651480617373112369037553830346128649652866180682720089029016329214975746867967114294671003471127562421350704397868475810889684185731021696782880724535563862216837844642226554701268850868336507938368721425779212955489449600141151076731660760522973019847657345953018311608722086532699864821312373813267081802799605343147129922681769245188325260279031750970842179538748282607024584969220517067846467713844513557862857148728681139254347714989724026639790010740219207326754646512688465504199889688503299158001119836201508483623287219544616412277605206756461576716511165541318273807788007834378477451904617544588789151452254273774710848502064218075818237909986450528217612286014341177514374684578973836248752528796034889454522133101056754912376461116866464455476738553276133350155298447814635881040076804106994628576052731903794814754926022073672964137270509236571745071957016336080441641090350184492431233012195423896156250375557889288910664245111013536161760107886367413712218951828925475527636564923845337701209920393866232454833276455576767926585607613413957358506526859742087022548010483209901906379419624278942267475055680268047154585303570544739176114120704835526944750064602942425975885351671338512621767940418329818331203640603201707079523184030635980755408980068313988371760802012603533785870182563101481720253716975278969932213421279655835870095779643077411832815862479301965602446039835507696497193936667187566504067730728910726620494229658263405784615461251103720878545034435051456279319984832861926136029825296778490551353570073154984438858973959886139803300963375119252521869678146296052995874550812550193795408042740519196111655626048664982098334568999346958920906037866717171850847643689617921669015285678912236344964644265161046230982030844763970625447466835248926442818031661790334015619615971579846086879482119914020743824803914870765421642921130408178898607897418582098914003436141644097323111283320613051551691681555581958289101011077095032294941571936828174910987500501355280585552317380381501022063475265733917440684560796423847229968301447036941095715440398845102711820938836559770011150358651933282358009991728755285372247984865582678550916645830200755437133010009592920694746441306668087492208859747962401815829864428830676226507611027379540694941299639626433099359727782586142743476984684884883828908813250076689491736407289993086058173473440215224407234931460349052478224730511147257261121657133890983897741045498908345224444400904042398901394368621821026963302910964330067413371798009943793987755942237949168187645649880751266162556276487416239593459231920350205250017668913164142543813802877265148107443489738608635367118465089380361973587377625618286282292032717731139374809635068701135140770232378852241637340909785626341918191790966061620883842616054234458825374073902403710276580825361594681214918217144064515656502781531996228922200805006874165527628389449356522869778894079095918489862505413226535951548513598361119522731901864774740211179084255483377176144363294583685362644112961875355378137248100439161574877237583727612334387005142636243985214645282369959823785542102798168429952543250253621287030199270498876313116795700894885454097937582314645126997415618686599520189467201460831178942337944135039524261755233604693341493807798046525999946828016269089350481722881781579540953096444110136143871793152738230303675230911675060914147405863815741095911796521118021100222863639376486560848993100570793748296882218640871181888323700157818387141847357774469343914815135248744904082518742349507329186198167763725289985396440435693382276877614944790993436440879748112456514922788116673489284269309108950956281626699146082381684399515313140482903425188026500676412085928578284768582607355636770532544548661230246259006901583058177013577959186525444786169745663903651078448206855520705693210087668297756510932296905921792976175446197798888881009135081943569446360371995956939904107782457570570638302117775263911742237510184147402288395649700975572702851681241646891857088285808550646328013944489890297695214388966735441191689455890822625396654067386593555424280056121669635087604259528974013753610554744109210249262364164847905073947629486953659920582360975884540149471298717789707021714378743822250839151440466327778420417745194826797406293851778131691153536259028238503190227425963072166996295550792206494089220672018979529268663528254654726045723087623785990317133355785266148166285080040732772255617757586096797654981602497439858173754150843167816604582208373662084644993184709121417950024186794569906889976498409621352043739304426758989926707116813159821907193969462701796425655268064721345496781299224989777944203189307712792526642484434238236884690107833501777718180076644477686295542913866951297534332312568534977713300433533207555045392521315393874481869567059715562119177353201037266847749908131145299879170400066873407548472974942615528734263677939135606511223518757032565651241614422980118815532227553538588507478165813030004555785985910707598126531195365386987380056993268804057217623698089867871242864286843495430053238641122975136253968564348896672603399282918886848088681824535246157539833050487354815750916546189346019844431819667549060471968946890426950485697319879109003759725733512026312004439310592825801427830928529748131707485563995400648708977036722898092021651776698202678881022377335414363557338832966440707285923665991516108923478485822312545903375611691974325890982291485621943319893403363004043429134926872206409269099014076150861637857752293607860119628160581826177645536280850272459473627088125722156195430012954467463716598843278760161896055378177380368389690485300438935605409262429619881027277821947752314408499931387932487738643544666215835574849974292527943532428768355902455959891257971622810501923239728973122115606199977910535614383966082501999139470112431279524281461555968628508661140157291858183217357277966134314052303034917504277275339524927198350991923317206169696390950634333050578566331115522754382937058858237205729505752806782935390298459380778870656936056784996957157742477537338014596905454965505549952230217125141499112684649068288467058910862565234643941280339686289480541755419149287933098953013286985224094915578508999604814029512607984264214254874015925239453162639950345467495482825947788271932644729030664698428796818256280941681563395095965889741742387408898775247315272190856848360476292925332293494941599688474988690888984164933065891455960349520390398954756954113405934006356166091642143429867636355013612410489593023629384065772296021204109983269233470051112716140310882609873926970824665341769801286738983118449519127410132507828377297765893164316679444313745110409552943651261629073714104698024409035743972650924006240215294523441288239013217604110938992457054917168634153006201737451568603622686084266733901147940509539159582590928451020779169200301531064271143782486416477984360657726251468966599218512542857607313873860565186101932265406525915385299090602773988834459364114942314364088534573860602629450706792291554864138732425796451330028727810664850459902211102033073586491192291303392070540112212508096832655484398521657851918938741113001485037252730591566839719980389908210000278621215608323211025102157782297798500227977372264381005716939604128702444789593424231087151039400752462948687952712686159837001993352868683861356126559763409836252292267514456650172434082865375284087881810132140899723772322578942659369693470885438130706103531783612753634126248619408454283141749064350607491468821227922416016738348763726308500372340653012934814465180592671521343636181535562365979482169572691202183623987082482645549676336589310037077920909006618965509532610218950291113781103661077307519588610989036093324352823620323018605074466976637245420880556311511109277102581545566692062147432697180301483364269712898054276567733520991727302815335321989381059653613766731098158747871876898319208452322810321775474190846088010709909566845066138584294152335290886772200106564618005758416380063666393601519644091135188344991607729967985118613962909991797199039283055540324140095684480141088427161115334494110764880593598537777739136750030376012501372055031986424769558783694957012226357422485603576425827775711768477623975498647740712695122232619023786834628283487630448806608817833038425209273530537606183265310911059683448003770547436749262798744334030432626777289263939629680006668898955432871423581759440795644648850333938577421265212684823034587197646347210074045565392377204748551776191171145379525234147817925105704812982699911885148292687407154451492117245400661863799456656735094588313628783896196411043762401053308993043837738316616754102869743899489742942015261413108604349841430408426886131581893499649720840733348304932690849172327754867952677084402372841618914383332010178590312186865893227877876230282343841552657265159228678290845778511139927504861035875743581220255682291864846296366965429634996644463609574094814692696768265428948962072970907521288101204336472737632825832806624593875290011902308536319641371062423327997656217800837630059016826379025239725512979909697754094393659045071716061300080267749177834103534836953186878243668574527702972586664701293792044043812420586355141703584054174447796511885325944551833961859876145348527093244813930155609229811863138767915431520069218945788834837817073570822863881389088059639840713380027226771791754295552912236653416785573441115395247330874781029767483782050728972013925341405494778683896665623223223380404097355307228762779544293698285053191066817935857099624233735481550847383857215186965884894426807065941756016703536133362644860047864489681638083301779251369604615799824713081157611431791160441380599307538195306853603004238008160611736187621723546081012302197431778168131622349110887505977752466210639880255560727327058213893340409914737284432284208403378315122190209046228841071134966687948783900794920804519577171239499318297681002104167946288786073157888728300858330503645819072098379893883806259354896730061330083611066427783207746668004054271720739115720186558881722093031239155285343407402276576977357673481516982759654225936010452783440208699721531353617807362107475519249253897512871383430502837641206772942091803896923584803394377087279069982384141763543388144593738695551516434794357530333964164164764510364433021880818516333705073749784183836625446983135760982298959152014904807336251184455280643050033023791600077972651761301332038056759385598027623214655513137613722828617455766462122617188571344224769369857052056138098141913657213838294226463896288174987973272293517301147785830739190149569282792614896116696503293796713413505684726005363377196050426810953035654768423822135911846295597322718510917461655680581927005265066344242381756620210241469116801140536802488769009343983260274868799181668865093791256853829928175756319158229391527706448102190696751801018033104930759886292866456881345488405852604164694500276558124322750188632869550887453984902452652069234891900358201793597893671376518287225508376348446038593194015097724728802572197042700500014126274832161773227372246802207731083492802937521715623460533065857763299982028632363732743805222217366078355371624398078629293327108824950560087411860477760566751498099739807728667180978151142124328315163716447769805646969261934597294903838566678234257192206793325031316181379292791479700036108882712155110560054202810715202621884256510014339081365801172780392659381643886975593380069299795427848774736968821644468453059450521534219017995067166909199736553370634318610625448128840208899841932577663390364227349803044526558497020875236538818180560065924968990564040812575406618613715765933965238463114345583684328645402405226524429417478951190273609512195896584432981896319239537109550664965584429172905740223456215674659204937724255929687944239081131162774603032135132367462330518940721122052636483937404586962709268604510796236069309135621659555358069288342570111209605947156152418558609220194970783470438183250866248170318627383430472768292875401431804026980739407143405694908832331444325331932547326495027570252677913747441222235645752490851556221569289245287165756420991991646547609166669501527443594215320082022835532590644543029802347213460960720077480759778064490760624421462227437046318818836455478160459520641093556651076071859851646568016312304858535983934274172635031133246479499664029447500282980837050115706981662580666552410990964602789538158981351537540180344601053694803236297421093903115885478121039020381244187134810776952858200805707380599349388351777449366743721406336910566818104202090704435716485489821175400050066694315727100039258512369918516632879016707307288994908664825229231072525704084786416223645782475198466047227232272968371070707662696568700476426410858498839386722317085583465296591918543902467047813981344381270688553448087123192696793367317567190591784511835732203064831535144175415244877438571138471784596741009739114745088008552696346592310297643416199502028833850171309633536500270307800807168475766511825962003908545894118365283373627008535996304174621650696964876648096774409511665404628076212572650279214827869739265579461085071925222469294223621259346646850343611090116717956639100089562974661599833867013824927291632652308050603024545261903606191337091433263551285374095794243546682791260669894721946853764509604669547586531406058850331130975093877429599031309065348452086020432747829764727769788570858773309002903520016878351491876960043238448574295433322297360981322495921160928486114604595206686658053724285385587985984654476276225328347545655743026048812162635794262949672463626950034009879974239908262700294027906826857443192299229191687405728396473604902306294989297814683976766089134548089974785184298048718684665762134096354406919590352017242275448324822600387219164919322505756939503342647666867422435846360901510013739940012310819741102982768578787920485201588815053515991572634536680145964428324046537275670203444042543747297380428512862442981889397390989466248143861742292756349602434342058689857085626005380836500731334827021673578527194305280215762332941793949581184518708822969223252974425137283802452820235594443488427936668505421295556656725863294061243645292958219717778759943405519565064119208223786500283015213368715494140876128042227174538215056020679643149354867553935198959687830778864466228342898423297123277065851232088952503101916361346841694058385877890981581489501409293951468047246236481599241365940006948288449874016459849867607488165989722677367134070442473933600100105420962967595862165759115350577682033320426215772443443609542266375181207322455749982720819518191730397925351694064087668945916331457221994223945285007268324028234593073519538394864239612401215330855085028722066196324384765965663669381789157357535770071419792605310569491581837913162062289173696666836641798903699960402017747645751708103751719274863196242119355286632963952885130684006119517835061265947924138063162434456955570700836062211790649220626268481473359306718005318534393748292944233486780731016765982612283008302825170356828665786730031220373084370998282313258303540819073183320062356751560693732368678326486813944998756013455159213243145492486484732365506069232635995697882864321224728462405323502223322920190443766196006489223790557889128072235170249818860592455216055949468775855464719307219680135936472602622525795294401168102071346977973441281496400112994174380233668915576259894908282153425628208806507054990929574845526542506221993370139545776414881868766131180884797531004279467336829983743418723986114109727867201607769778097859581017267690740264784116752324110162711903684537836193488603491642637081137630754142946800508371959834238755824000915339085536841011441964113982673337346177608062969897872104352113106903935537883306325782649350605040508795698217624951146248730338739210543646124649674550650916852948577795606277074191100554264609510601178308071651173568243859803097961109893581847496107272839609911968332078927346317119725068126180904942200576192980820173087050959703112806435130483993194229383488647372116012560659338317025112549385014025462879812090368880862286394203634182712227974614478791596842644472482044574559697027337020335548346402785748383810485381313927076506414631353606764132728117342397698546106806258693854556236260933709548919242896336518604364732724575512907885958920204899060947318890113130961588997705572845439934572863741665251139238173514985626330209398641231768299735175168938361021397932425977863388146524313335924565009388222506842324553972943371331442573120161104518470684908389936473995046072815930632736496477063754873346761115302892084123642199144799559905268877742109356826305436709374771689315523149889581931146309500896506672331974555000019885794461958400459478318929697997072459754427029428751270869361446315060009976461145094189738287867274449302021623259012285794879892673561444712983872839364378520757081666743231973951521135226154895522973970884925370854772207312842683597095083662694951333530773676925665586773264183509886025775548133621880454391182459383068347613947763188978192052017816279074015471072939037020654644897847495985278596378705505393828384383741422550017980939848790149490082529879986657399806303557786740204532906200923406158970669153794513624406265083324462934632173855240614292429466747238597339305557363055237794137032814784095237916550548150497987302786887680901940983527841936786910500461228552080390375341962730011214132005133290860163771104366746086832986403767386076154088773052485521332864447308168048045972050191642079563513317851278215268748219938683871735339122588673508955355840411601274515681283095081627902281334234442976232999519388677162094739358423711661187488532093127632478828531449685889588566555963718678521572503507803012033993826041274159868363790673294275952530874398375875993969972778122795478949686468345289921409318572213243143848283392364633619917512998516104020133010419158435148788742260752136468325545775492110608014325114665388396381243974423519820947559484014630156409659627428210591494391906064862118395257049538930453875455800664671169539948300455927344596827373543499163167924247010897203102800144544426043600357222403042181109636500394100245413801642691091141638497335999389354126056492734912762938474796049344419372334535879527068779210195622807242513795427057145677796780716113756253490760924073498381684525321915711650509421692377040534614200308703023795531558090198751259288567226434562271195265051664819470357615648982654439027084978389069923887087353585770571642961447982984159997943381459119515134369169771886417421076437466847467763497074907871866069028383861956558161468323823219737428272162366993737289393431877557701598610691022214308384870008421348823668332964062645551745260334490083350031502040664542159874671333115952067652282926577680479805436455273600308734959653444729462473393741271943462385523154633517745050069828138303822373190636154161616107544593599972694523905106098149351463205790873505778490177946921754816481458768998626263985138018407261830135505656353170160267508326229222114519046354881122706380888889480758231249099018027250888907807202034538400199915583884357604758261396581640850665122411891290676520076221346568492503274920069679489394391522686173672706061548770936460526935626544147838763134895459432962750517100257028763688861511831146304357946063220753793321965897913884776690999772923893699699322773426518167966210840995917869277053763074376695768520662693735372740128137423310748467788156105432607723109004826382444438399431946931135462377594660357365084480980755858250341238107279705349741412827736219033743487921774377318557314054696818854639561505276352524794742459645445103973820111944206160686114706617639838800456413089371854961550489270899196040072948332922677581036967562906550185724140089628793357820155730526533050162881290119264361100050662092181583493043198748889568936649664397065968537548297206688103030395081598435204423293155850040986121113283735752419102082366414776495341562442806417775439037031593841056504358981927660211274788106512869960031300234287391843170797533627155021288874455119231706029845190345973564784346462429883638624737062522161872390787945405929017709015853617623459327909740721569399128912555450759997306694212780317868069964782022046945603024369467486113600573316066719012131191922765928305074971691838578361419311306283954316559283273518477306903029516152516922603603343531788267829480205976466168662442460775783239140807067419427244190122505338633353430152280958307701074344053447794013064484370451874151670515294353535615135028023475247249964312034848988770139886565338858716262107667806090236360202620532724849238299254690828011488649946016308418689558410888032644278235930422760479671299674202513783073948086556827656603388378751729343123855540158697219514002046873783119745543166950252391177015687175811568545904835324031345701856064842189640791795196002545092155251734334030165720553394893332984183434697224867602435143941922463353075408987668968762111862668010420914877542767482018940900066604475763692675601522859787774448537507013050923624855626017797675946539526841682620634048495286040691478904888732228084739596032789273364258836566925387744938620183641256504109519298459515776365853876424833077004055594313906421385173718873519469563035869291941726427652856012887479656525203892101778933781469036252398696161468957562549321793841469945971173668073059661485039864616089873998485998546593722109301996639664342931968492998993214827584726373217648875235747623162832477207968675384764111476239189622222714833794259780574627036863723847706369109570090266795914757969350307978704387977147955071773909585219725579496701921903977501730443014675021691523323733094088828150664261743534897253301067319126132692690066041221503011681875153773229493898869342839490787553484363761017416342343332701250318599580847255591890746052886069917307873870662430086966229924503011407831892592659363011216134269492937390627638068294581670739692621511994835185151071062985260447866729048771532136546157340105204264215030333782838359179123965924138351394834498670817264655379385759781651703843114656713553702269284549616000627563615207425276049529092090970033176582131632140551395578068101495531159162790224536966210150074080419254608688831476463666700107561933052346651759019053246459115228686703586442823393564116509868710960020414676928118745902342929927224039817728141658285331147490126727615407361934419417140736690168377681061297027608850011150451880206547115634216959999452120878926268342891260704157967844890091099604699840380999455081129303839956072730177764753962777136130045827077157465426985677797885019506586707135592774294530881452969543619204935743260897385071393028204646016169806271484796994665459171989752222538864004793259274773820561828511668827396874579498198984158855079831977720958900155318662434919979056969988369396492528535956281478635656314332142350156061726611294972072447410809413675410965619965796381426707927152823877327328608630580124745521523482166076089105016977192548490902044613587341262001378727113876297867475881203556859183638970298602919274236257791773881042139156201296803551837521498685520261387664409528345226325564765151460852010839854847635963530899976354522844335484939972351444489291884178236085956567140001534185230739023246714421740718204911394118655907220680059190457073393341920215254672885350881838755280403115356072290843285883280787841827239749425096861293120973734168185124402354120050477761537446582012992114414837428832574990793415413991814726215696345693438125471783213414596857226351380253562311490935632668881674027185507642424661803472560734815670679715748518920710103402119520162849178958669386132899026906727718695186941284535966228911870546638129552946066356914533007097750171811182315031754047517465175696284946935894183960047016997238782301321940849868450922039799644492623519952606129217696547271798781865352931930033457556598688605248278075542506140429747481510223101197816350241929416401511873867449678083072782472756359498962736343195826381847880328595389046522940051211161529796867189459380987125852628908938642413546951066443319746585147338979730536161120795934794385753154695744346177601282965129947464262615226887540046424416327599859993969378227791273486914353790173501220039328814261509120489319223828443225891159422131094723496956860963284425265429412190001285744396464917766562558049779534451427795211627093248119622655871862483713362485124618567381084416473284652978835027406025940036156832737294062729875025755419621314013989741658578054730432612098119881339713873221115461666086282029134905381894664581725346256428928373907020496566500590800194900777873771024989373974602266907623376864441868121577511408720297215091979822938892113904160626821004587784215066297075778907089641752125441610880355072693858302987062585749897624243424913913541770292309532234267264708519419852215524867247225864575487224381664956392628058026604565216146615881891505838999691262882571857228271059904722877644877921609577703350493146702425132891796493101390417821290375652233199452876824101697450406218318414562276725162575442285181865870622074450718337822792553333766395503720629213178493445961330354309716290094344229749191497454128597551406941401107803715790102587229657566005149181575783720291853054713914072734421974893670506683315523965659927351501665863636364417433727412230428979376109364169482376862987097098188370655874958684440179714020250993154302042144111062429392529067352119429132037610499398900627946308728569078148513465440020757870294208200388633406658586336436120216228350393882743284962272606769256894906807304466058931400366479626138481425843698047970103439219353982683979523338165285846453280517083354176093850410575738940916311846917799749196994504251399619271323553470332259493611436855296437082853092720662587353699127757326013552865555399726087947849994343435407783646316818962443942700405988498634542601901430254737796378711004693237203661613238285292777049118674859156038800998048735937075793490233640285211041536376749300932106561846738705180961141038919413620233108973843115904210205210473726403288927608860261132983325217931469475555090291154059540720848624100707374000616998265277546667110902863759547463240613205268172768405649403949332909251699360084509911473856723785551804249115874857898410391038845154855786379222168925682319341585969651274802429396178065023408145764855808478817543661452397009134956609871796806055572412167218025105737074434178136784065770074617707940323439597858974049898761172264818864727542737109847708706252497308729948035411884517596278398527232931719604251050142648425611762776601740781829071589077622692189234038671272458108202825012591345704439213421987296166925508711942794275511063070207306163734408185276773028856668589230883618303705681611047761505492340284241814993259456900742279560535424336128106656864432664538112838066162340914631221344274263596587968987895085979661342962935901450444296700576890535319769165283221625377192033792920269196467317590143461905210102855845483861963598750864681266816643013342947321615082795028726494138621096992536818824396672249687506092824791961519731291660246679179749796462399877325176391075963267895352866324948237775723944572426624593133706352871792143618940663061622602584116058551947858984926683576692679835044659602564756265047531921496213035559503067449097706413581473889454145827468458872299755792852530431144399884048548305365311167114125629557753859168919282798055297885674193514998263019170547152365216808914813657516413767002574002005579685845619306786597051527389267294384472705003453771488831799487497567006353993502593758487018800542448432144880567705669161406572195225680098657869727155818877854615142567490652659193967706223884864988293240176024100412250980367374103919263508331811236205103546728783221253890616337102548537991031204553948071246247587376017402926903404992583514926155589408671526538589983130976302680102853514277534567114164634013348870709354551580068562547102729433971968370581262856279553340058845117820463016816361564027775022418958904508432971178419686020835556674279271315638396248137841612738552904718636322173827642537149982095428901666631757319973211383818396881490545488890782756148096832633914885305509677458186183137536810952093734107020250139087032982343353250462162110882635451768156133753721009112485083221799757790280112531328479751425512534252513673656362896372969627346845275605890076556893631503952688914687677624309920629878425014893474070084783522001829268047535809579727477312576434182324935699577826953033832249325208370606271229852194729862924256530747031532026470990099526630761314993234614697701828244346259239330135458288080502724953817075008693905643292684844813091282042433033561516836380201681261969233225556886851218068313333652228140343593346176877131641382912501861366888205420659331120086379216591217219804083483783314289987335105256119606533794600682501637534906792531461706904908522819026455485478060144441068093057023207995458682657858497894777683918375381702623824513814807832182502008129834963851414559125779908887417035051406623696007843057443569975818750578946712143486053561936462222828134725039185321162483551785251703860262026501066578599524944592079947911554133413603106133932166761489945609393402304677812886461985911207492517825504835967569319420136695223598946720726317970573046278721986043991897365023636401546751993561601494595805017530651970354261119467010905374306490946839395758287153872010539855218115414378705514454015061000722442788250614236220779209195915768729381435623535109982875489166991843090920614455917504210232665219933279867402391795464934179161015389672138362139064587497972030191031643198220816085259324377823576342158474015081018659515964140226296652749236455829838374057316793015303129132095398630207021333619118293823628108770472667450223402766575630689057470339465416251196407650350730900673590237974560988323838862543877548498876644873490635630868534818207253070038124904578365911806784973964295838209114957728481258034107862547343757485425086736563569465471782539878095954821274425369220131270253915682552200466517043409900655527566272585957871620009348574416261255356227506400003828985966141858720145593426898187656028508294410451918975296538320221720189562940550750118028489705741760430790815401322381697555162684222477405865372507898402491380403239710674967816886553246633896142764974684615668444741585358957245516634948353250885457587831248793713619419496848082229242535873290942584064475570797802949771549912760418826898814754705566632863342317617705538296494782330838522813550956880373335807509773069105965348539313228558374444519013233900755186942716993468738615403480402174000967894151192721602895761371098001532285127136789633238759061739051451991899514280172730954600312702474868720504400454119522615968150445157762861461875972483899058752468361226626217398190810446316428065598665747279378492939241646157801425751998155927146448268023902443248437689406347820412547783818640795983575409394346493723323606676047004599905070757120702221700375054448186919382464776459192932802768979488496537075249243934872141253767474433858484622413910520142205155291989244667069777391573487872985307831524043069765201132422328753020543639545513058026391744938745840244689101251538649432615585311570609103715378153025345364372873993548042043301728463752481864730276291373644791632943414685611274752640100541166289057547063676477690758941996213743935645692611285159114280675668504923910209960289884456884377372153956248460594737006609667416475663306835629590736790276505216473527663417648565793063547573972334919127033372632460096569468620234471462074267194897835336153291203999215273371846086836849104464788207855569813712234690925911689038673596666634955230282556619978388500449797075240014381701870731301910123406588515234666578385032362828776965263128126812068277410485925202843716205729889732605602225130672959601978807335171708035147296462062248075399668261042358041156636059932355935504302483911721064022344375173615949319061482940297837966383955515721351838299951903534428700193444339506639742166764458971473123390220278718145985916718986293624124157762475761280707584428313663556475893796103267325590687743119864093067510368388360925341940345842881079443023899166387847434808756506672404982969296676372539308991321030920070624739545247009211110540942953839809016003434371592664712495515537528173163280010754243518512753849309832197361153837287990291840685952546329748402685095969949893378130005925598549759665600206211002658262298230713900292389347099906063084318085460046026868535296414627591548338474271816780416940357037456223136598030785018385612485947688167599364269451351940730872435562625684817214943094618277962302455860032774841047363372238444945552742599227453699896807298075140941094875130583023137447797134501835080221462848295352061466241358698518298643570055831971251428651516114122580540665961922845532803756978940414931173526877629550691106623048476164921883755927410718006588751483540842624727762695415384205732400946102744625296638632754345187095821326317536702915331303220416773422616806706574391710652054502620033874400942478793688103288380994201845186123048039828669398264518839150607201680513287820290144096895527341741353279176101293409206774135625485860916819334065964789724507994809761533546018896318554359182655788231587579346887680129289014801787596375422688969771626268074429027984179480706543785735644062118583523261164747202703329294989610072266760317915258644045698862283587386540228138140504855456271300233182764490916604011680090962261981743066406315494144953906628094305909659286127228344983890394046118330222301919844369889763046023260439127232911148242785918390941439522884532911590212842006097570383339547858163520972361612417753178089916138631028346986708584830221643032854547186482487606362041762088109183144199515585495352665177047629668966544603791944524133677779996441416461818674299354089160631426567723792069464681747416512386438657848834714935575467049818457813413796266977685161178396066764860681781534360272581182465505690534244195583209172080449869492194769860458542257813378282908605383590040177487544508564854280925843631647681652144354921391697852927140415823845296727851063777843745183237310802546533974551819429958415852067877098250232032066638829530059746239831058713599650497274338954531975769996429634488200765907632509401755562228573223196483465924790208965268892649227700629208509252106794400287316577760179154492721003479972939891700778430303576377746232321550212207582354734765290794956681834454426044905766873124953317120003675632075890341682286747766227142567927822477849207286810711204323851255898591532506801483136163835639250080325602658140546487415375835587150746955478487008903978614532079165925354058733326790127546991583331351492911351109599676799053815047669905566789933883317855279160487296474498670753709569287412351667143771971079613421986542815884809052025877333595455802679653516566530573558317651374360721974296973488565517469395502386630211350835154970681684119250760765598922473178933406835714250843379126701106157887060517664299781317587163196465611607092297588577120684800746473983546883775922083371902923812547386315738160529884892365007591362322443236541770931992921818132070143009381541717914512435100535919129717377645257814984280102295942593930290464176747808235309598521607930971200565787006961603792541528637998551143395173131297192484629153070770509242247712062508339285461360606628201837728078709224261695503879248275480124697634081886285986219990371325029735883884981210636382555925509605649290254794851195190975709524816249089704083180301359344643031295926097120897368821467253303103938898917634632142768557758618975954088884424150994523208108027000566144246745196618264686890446858970515190996155228079843642546586370505698730761858054173176485682164355663472264627617373837897699483283815947301378717810927911589756281382454532642597402112559331505389596205268567713045539959076688561932929822270243749456251354326261360017734173752714960405816425749097089156149549403816706771781510835998878787335574846521251901957809249748999481615386630611937609048874084655749208461788759876480087111009549457688282368108331276293874521183340887409957621355229536475684051599735598312894019130763876977758286404179052757414833942447512660883535939261631804754137527309404312147420534372157224238985381409842199980531092869733433396437747287340055440899632420247520729027282147178152506572651654296048758682879126739455349332451919703921014612782800663612175651290663978772000664898448928553654650693748506709355160607407862495597472403466791362885066980035117624130261981268750852047168843278604222101750387885853111870648156732140297486757472190798248815858240657645970128013967531990644457905836035080908510366279521822040770004558150465584950666172903366758977664831677319417198071437599001552083223045260643493845739983749003544416823333570514470535213015515064218556498465805568076663647697500614929593248509891987056046111343823439444789896762394352452778563732726676308694009537713556820736520243843343926853122344952146401163429310570220760430137263332115978132092690651121662333784637123523108252373201737600413007625239277401203450378957718137505621191203550855713939587501721729300977917582829685162860128016008191923701252492814017542864930379919956797395544995292308824122574814986142259160523682483788414040140859722177379462848843200277519738001805160152933050228567180797871543361659994605199525072422373901563559640076011694319312361048769491373285789934443422321450123472277584729163248417441724502188870756410845907515563169232620540362875833715932860020278134340886224055490535758263588255092891949411566720128594403413773870658940869585071806562615965652655894948803885713904306793310395617690338867331847606230965947854105533846410279713142427657922508124736371404669854075943994740479822766063816821391860365582414553261907383810908333351247072911551146429629267571088802689220768501945483635484963812908518684921816169032139651034502593658070580714946430508637300987400886087517049190094224700163449371536280179619788109456683596266155384177888936059733642924153785429638564318883706703208611071311464940102551109287560838178233543701031096930342431071090024646508647554058878173196646224448927285563598303705347553440607770388897484439318597080190838851155265240807203017160329793582020164309900760874853979283320841417748484573397287627040577944480494287291892893954571103251319072656671770123961493440687944003262417178596663265071717578430551186662339579593617469906494097511100697725992155638196409082548729532668496358059139725527988776362631913630670565274507009192007990398189888018782824547793206298132765246400530940196350645076166291754788669078689675026265975407027293888594125730405492924179464895651209882189769902586783895999068745364715019453969160907865346287969804077629917246717641656949292661341977425838173673155993669719615273409088811990295483699954037172085768885024244394769527744396425144905742020468198501573118467663036321816109139012357792451243266823545881848591443973291422210602823142343926545427956058719610641139846003954400777059954881042791872658785659295298136412971475431622350800448121564179956068468474676981895906450815352392065651965813311334943475611365225286002316781534561213938587146183490927030007955923411541306233533897556718814626391840078758603184820063480802797265726420892331739386820480401235832738300131181422952832185420826304635810944852649740012138254340795978486096239838367551426359267244675329477281674019042568808286252618128143176767065637211386305243299903741100176915195045567150417746414290428989325166179408376877990509109754453611580927534677540588107215770209540316666155737856236648353168455269347676482031592109192723735765807155813432322502084944256295047033703648603764820554565751650057302333098573706666476605056823108661721045488762780230155095920944097793899279974687675572593633954539895669000549184181224920726732033193763128790299758204303193976774521803318454071277638782623373589803567820460552249098473043317206314454811942271898763082680858375749900160229800189038071810412570691557914589734487175349176665755418788535904387486071925985488467554004857924036929645552652603247364997154622976637909552353181820872831612260810261926884487475076173526302671427014705694974875933929534789338011041559855483483964713484523582187712314516097220940536425624567813511807625451145213920148676787213390521506644793488243928451726552870784275027921640461270793602951547951333592045351907653736596000869203998786243743259765040272453572418445992165425142280502224304233618422238837561744935155119076511504584039269664276798847709644368515972060306670289177861802590664521003839731743646912812272844338848927901999322525380294526165971243666126631501420667400176297397036672213963485781054237755448738878132141596338890179945032557596897768665354151065137929680807696596222982167397031410094883008193503036745859611419346678844157667769933133061445044825683916570825640849168129672014334346076623685078860162685106137053666896397763513606479098454236964091295051631803734929911761979922236206888201657522818859227123689643068131288664527968216211238375274381157761144598412435395921603936894233119818937457160781402458380640284114909804842039947395054952286140956929015477951130378910095212332970634199032055517165966779891592001841690760879017682557764059610641105997468777478071644184444624179099507898003162927436050930684074637686423413291142051950577802064251325399296529965376248268003327561542477239502911356409452901644730172252531055385489371274822086290973836816116654851772280854488368270497576488536539053369395815634013069838451649701662094948098878625013320591668267392322101603072387188273962861275601351712163407934213209029094876768008819781615565016856578406767987277453266324635301732832520241125949804889121047940498906642711831956924219275472721663334457086652282634109215078966730663213561727173570491804919717071589391490387969730723888298409216618640662344874924482498670989412802157277891572017727824370343063227024826016006904868794626494830047586485026364581470236149047033837105846146828613278479396463441165324787178855952044161352810579005433785944792243380970369572835771165517220643507717733269646584936307584877939363063910219918527437320579238736232585780309753183288698788741151613756610700609646410870148804158396036711018956868338388486868633118930202553312051003235369928138416488620829974663522557516879747902752701048741276776385914691877111019970040631302710189562224615712146766899518324581187970418332434061629297611819493655317515129422644726416594326660149182251974037668651734943410416849264955747198502825401061361020251687067991925714943691232703371543123123817587325959747781623308655462604417641563396853119873866901600707161522722110179747715138004635907234648566800422495213655659584062793334804081478587260129659387197574414471338560330741660730913665585325054823485280068508108348815332449559941312501103478885908503136746635474077936145661724250918417800306804690118881048492651005632504264725119392727039832324347750176190903840914779128752871148715951492386758790333250245713981122467049183622845693039387557281511152167174584143953772443586535297251394254565330955206180901003036180773803638475437517982872433521231750282294722378490578393295999814794084333200932679112612932574106741330906925647542377791889993587544198763897031825844622309777284641912641951337982752743178485454219545673932162313540782307339097562266676602958062944292015274862477474561258042130604820964678416720493449170921624763647968283632427462164990408623086215853117370743061038235468603184852822837940039246985842888894669161527319196400806826182169915139235519962689378712147464647642831656624107234811450081405657372445574967096202286914306531352601854174600342051662550726068527208996808121555704569837351756618289125389747848887444049664304594524103442265996287353397833126091081655473687363804553286044900373997915172289968508990669589214685384596312597400126872838386942651177393876956837577287116327186242530879144725904397148070265922847553003385725193229061113132314725395636986250132527851139568382553893890031019321155007531756952814046900599640951520942591049578412039293789727790995735878724427810204281511414821945959605431128717414148817309330766860898061496905162067021837008116671913234846754890718780574063287349429656620823692423783157668183268532932053985790400726331609326925825592922077728846471816706457743689082929756532557231759314219588734901875749785376734602434321025221711921070938146382060731690316416927710668295990164333308587149436431872602001187842806571525330075051869530268757491379168866018296933201507917454489608133941274534690451354890634385583859538798951252764097307729260157288992822687485257874708451238453266616340612642520483708704253890791913204088630057270225546148772705331575820222475857509932836036200453666302991755602333810036777124456711137066405933001162249484898854472948793842487329684502517976305279425333078945962234542126737995870639007527991059270572536595036106318459655734287714941226003868050030462354837306478727608522946134169262664724440268493418270111090669706661633356468060784134468853743081556654916786028181660638772096719337684684284686867430283076119376793111988186529123440321982972776172225338811946813152992094022780889302420645265271505989785179779139335833919592845136048898564305628077591734460285637870637700941179307402101506600012273273889502927058484291880638211278228378819663609812137255950015109445633726643808892856173608570244230892144300905743263999145363840080817683068145420563811127999265728940361651277740539223540524193623592088957657710175128375721374929438013075089075047893097190853192660123041142117233200397941926694330583073805861715900985495546988148317466082656751382289606772371741758012789036670174306552527924361806713480320985540425880982465069711533288404142035413076756840723795705303697791126891403859122112104798536237786095050168798301306872797492012918187379590430419343878386156444224036028781280885008378057547392896855353767426367883645739087267436771945062618906747022597812529497031883481350806902576179842089685401601772375680884582216096002934793752077455309428189109818016495886945444185995357892150639023470250029074366958769971028516528212747487625609201110626633043376979696955725035315050490002253142657104939296392795785052500773077811468261308205823716133194929475097270443442901861190519797796112392663696011316382365905745891105521670771042839739216282415776485939730625522344163794525468551821570952437266276762113705117666914362632560098127173272429597890883346992331018434320772546830719122919741331227355687557129421812587451037862499445748068948961022945178509358180864886871213137716048499274477710346816336847323616842688982790828514566758092682169592220776026047077299865229951480301729734035481212549330072543996959237570813767183110442578477073107435718355130887229103213137722961484187741985669683820948023880189262283132735124462299275910880676394685688718288842685771965001026715911108120681123840117960649781095187758873487930892512693077378757787815943598730709486901985605001243287658366297803316627536071099422899165541234627980119176632014534312554477325242382305146042773378006999427891877883819880118721881317548690875328500527940469501945938448148447648429871657995368206551813362170791752803205034993352392633624864954035936729206498363143389307315767960791687156343437717207568883553150188360902135557885001614457313762064881335511816019868238912950318317576231017398522849909757094996116718838410610032960152012237141317077624731428421655695715788182548766383320911240254714094575919807649262672295094002690195954077037487783504160146750333230502616440726912461805906299347335582393440983102288340093598573093210543656388088811395457932726989115040149772379784159776033486113542694291286409078293333089552408596929803649047417336174019700789876296016635697957376242868467538247138878807964563259459285156184084339474388010795845269020858674619482634721330150416223120752711857563389576493114372923716266756798171437342839633052001802319794206474858185577009393612019531812852896500927556907990562896980857160545326360113421469696606278315398044120946095637066010237521874981148957000743605447202465826796707764781116294538164539342471555349404101747731066278070757819719167653931404271068842292344907021474484859856102997688134771646031614313940483138064818061844727546567549453192414921100644090029249189649276329198082265913894362295542966293719221027582537659884774452280751862899405327037715437399717159298663108924619068833451831975565639732652312371423842472733736476385994341471747749036065394845249700050118338841778015850911669034682242978342111627624923412471745027200937929378882208250609559156798331542324373786165752313958835935515129905420128643411408338198396102725834376999153164350166240414968119427857739477133786976915651248706462994812007550917532031815656022434121815317642965158998443725494525499422812505929732709190909404949999356775902724006856979580276874934886720689462532082001607429459968835503050692469161196014776335702968856486037745148426064890486463703408515602579509080600178474754704866950650861279849424714084759403732512929836688401814551172082823184965982475339315935748483191770377172569329785963907624638888414343926348510360020398550832922718282617815948635066227747590137465719607647979851511894367602480344080320560076882920417502259969001255491870426718161819190928074955275090228336586203577876075067054110481204399660712118120062912487014492489590676816187260953813255272702259230933242032529622261729522130347113744859700598349343728859241404461417016104864846261822972338098585056686821374481148410007526200153331106159269230222719506606273252791661493625244981602947163260829598684669087214155764446465109470931847952882346532806620096032305029433167719082890362695085552539239670706653229550324550102115310543576295939679794130977325210980049067068784152544875656396942525641899806224465876893551569961643296113303151339041263078712388986454902844114161168643135629608038826240904591799601677866132420344213274947982346058691879263536397075512563525685560937948811911839458304517518451706315047917329683002376105204428007123938585987266697483823201676002844265904507367572326605238087733183159510190174410142543230110606483708186322657499370425574153694706155546057026959623701687657680865212854867737022701804811657614512235700801900424695599287212193009209168137475988802400897888901442323142810458026622758329389611544016745541141374732967370620827192408256180808336688509132973879920774084785385614457366753423147980276208687401161577843601290991354260153860667181722026417036549603137219724271140642355592699910408751591310876625311808038156599802460576157206275692697723925296455808211457073190919723751587307101844530559339468561661657737354419068000704934922273586921865509985399810946368074549181825220516393466688807561428735910397883383172998052620090149480105242444805995704370732503429201465872443211278050510247310971328334919313798210840609295371171674365998958303728197500267486348756327354246524411416838019833301519925993045137399622984862698532215513051277935530114148204779752534557512257608564727144461419996414221260704262369248754219026215226954668738559278288581131283302050339134142513925700693130589966275093886991488113729272247600990314817625051850967930411388303752151191833884883725766980376359011780864035053298788016977793336934789167599772052970208155099932511281516222340489803151790653286687812261631815129190423558740670652119582425200957982412076948397665613078854216857921622696884636219736815959434678672264197513544066078759853058029847746968301919742436419990540298129503422344811824480459988234222880335439999995949649434639371630379917587809679839109866374781815363304773325243669224497514166510071757111125725173769339795653055968274613448070823369487982941770376438290812852982087519076552715142818622012106391253904891818080180812251520273944706314835950158862943806190744968863832720682953992279967833688458297879345036699951353350469162927694701114227380183408034991494821494718089397819285265727057449265661054556751490950707889731148032750958342542950722118541941401035611919182253828192559698171201661770505837941231977953640933783945055040734096805958191734414620832510715508143747687933914371561310542661609305194155769523488541247049702227782892403206760407336525964076873141959898539696021339419592579877191274331071535509832502650007543345179556440425120093350260742447823808995033003664957417054057074233855366674675589097274511965841121261486839570290812852678186234155236692476375973849118538895429933885615890667801479383174861020549164232605949406807832673830553459440928669778348512510125820612712099912776648404728761801226921753930184813291977233121038743722333523054846898382328179615978872929697627723524434112866135518765995649626675587529158339403222404912068968276509258620778884953823553384604847323392485996405861117488190738617322116352248370592031268841383844157474645270689908463034838785705306471462656531043143132824778622918898832748723911698613778103729982779542863433859732673741126939148965499112167604133564352169994081545253006942470298674119139169404180958684643513554479614255482983125447498730943056572438266415916037454041644930400005922768958166436976333826868991225760669898081788472070026539832195897093049703424316618607203978217526953664396792768553237487265419147270049080905018323800307430917906118606218764985925915579482045810743557175190400606331606044441042524821281850003792047773707929412476374482719747508035600471283561744565341516007135989239633498747647299167237143228757846524710877373661366771378852488395141748535090032567368035003611855303387404063431245964415104689962761002702137484151557549761850599297375417717097886096755536374970886211052939053453174862659941927259555702822834455463201847480760599573240539110940698751163731462030626493015219651756319767115946854282426110945555028823335452399133087615557690032660932248124902872167757199373014399958675713854108191730652930703337857636304236103282970665442021480678901553067024657952753058821392346393273550000273176839720636378629944260056651082653851562849928069621213021602185367404558489175020173865318258454535708092888946517897309946401394502515592970053479585641140025282551312569012388480146503932339983383380654047064054994825381696038186983069852556466834906046997255003345116747023334999500482067887349928779488207222086516194246821070275620750240401850488440531774560492432629079855549357825419584309184715396253539593764557964237230499234122599146494144001236060749997031789524515327005707480191878721399146695105422923288279438851419107358105112569563978998217806097000361461278585327951170173835799757341084044247130560257297731818981991928597462679105629396149921117719447314690773090293792492678738725121093410202603303075917402126765842430675471113588009046196807081277304386899015159749438969734227552357516142227665730806891898386846716406810746297950685760750673527458870987708206874052381505694694110199041436322341795482419416809031677798173149580086071520953900946264684935557146419037618839254380634608615327052446240212249613149547564055522253170904979420086418927474725267030755595869890332878756275496395717802787124946501124488333626566957363441168071692186843727709320951950142720203705327832864940800736830818619320936309201746050364169573911806193588595266413244426299036838335940331450103095831678614266392251123682369207497488944560167968095463110472402919353640607273265023133919879765107793113366107413093660186274596920870928600617743827027924316591764860638063640367982692669097203321774873752457503217527553047548576440322417155339963896106547396105206100389091827458969349417061954612556890928041940464161012776041244035274929146335013422210285070406488754879231305761670065922576562300252823844174719939496786334018120435020345639768063987745089508443415504961425543505797926659336394246438329433128380151968592864568217870520371084425616306031359782674878305249306407040852678540274380902333878436069944394400525640437640914781006780341420658038591483876903522915426945593570786522301855062636641484481801602046094048365014796697775561037109760335455015344788114565984248841121064010616271112192535253130988341191809547692158345425382362906744751933405520345396979254947821179038875471548016660104476643554339519141629053277178069599970125175042008578873348357317257147017106124878527037073908532137073994784043067759547999483065242529753512064163699078856516979838409662541163051430495495190650264317829255587812664456839578364756438691683081008876346876143971806838442456007796221320592131836031259270356747335522827895186137961843375648753269131320469668690346231598355419150964984694101139741187833704351495582964074299948834168147744505042567391079628985149152533026924521244407388480167533682854827360491805844468479089975793171556544670747296960086275701128520305277640506608839472676643163546462047134183281119950968813346079411882437992002545904359337090241465766065318786706612494403666353156325553980479362484475865943425089448313651656586765925673289631884086654533684275640834269429125756794801204249714400693777446689572743020008192107653229741828654511962565566476871781338727012730973803145793984378549099098579280847740337864729410317858712253529367954839066659040772331242529129178021261699808115276681552379844108469847346502463200687682029181325416294765953484458731408676592329442533656761028044526609722379844610743955320867588014717082419818359383052502142990755436733890626641820888731799647389805206104310137561825844868183208100983419992555540673558371518864986132558928767668142640558181401072820783953301704873277169450665970077633015832840719771673948277558045842125300366158850166512353998663602018234779253046419284594239423903848715176621557505923599738891276795697234919712144551180685913821327354176013702798625320283768706040321929408877538663007351029424434678833485628536429581133980617974795490607528706543203889210412646646240197627246441626119308645952251517086958656367910119890551671252719297979892135591620499134193543631166018114914788320094659819070856855809757769816325622671235759306247628222002628212059842978320193814705575483793927068590362221970490517318668113118851680056428512021287264269388002731310527665737027119458038399448236315578062440878324777972973393658487128320580231938570006463792924454189209960829939761141077856344127429700824659431035347984566376532182895516211798122638270123936375369575641066000286032041302018606814269511018358527402275210225980498216207651377859261050149993594995492892498223653873391121161520777485125505351259551946450294192157382008588619849870346220043123266209914814341833536453099637747753877395730488130653728364490280018726355310288067131835865649869487481743632427298792933954853938519738072847241408459489937658010444434132616573067068273943317277090815441044448617051608452937332648229140168235343954978734380992770075551294758902008298357208722565404413718102733031206978402076341223272282136990794807320374622096267331051574098555243621548691494734293824991388618306935191145731146066309183241023964758926229857277877648370347495591259264303426298417363082267288108217745043142077511337344262898752769252278414360732120027399100424063767992201871531139540760697824297925835268937628252320404876695105951420267268254578841605729975094531649814164228779586570547392058035593330268420160723994827086348099989936340707457570452547264335663372862121022593555957499976355851245851783053020642440961864508067624759846498074722153526381410709454860118057032227052631351738310510691419226823017292986205300768825691235315957625774347785041165597454287044846520874690608807406882858901530485638910429963414170490697822382912938907771365628807496474075346744196482105107570724219002230555860307569947451446383699396076297186043069346805370872248891698471146417081784108419133893102048763605230279146348399805570602296596569438097815354372618437145163257305364801117535290971112389618201818472846920953319133510713222551567566515303667524646153825171327238787782460126773820610232828289020917929764397300903430660697868151143382161866373313382000465354520653147518891165650134261184496134953850779919036795445393602934193652603458156866858244092393455608672354408417244583012451160393890768997509878127468662166914640610557602851546309386675732900497657922633122664458265350487359364302235694978027104904124943008806498551951523506766478230178888620754157460960635932221096421294727357712182934993047618349831517470490724007119216172109834440742308698712134774131763665293067933229200976724154153505321270978314176297643295596096195581730150083291675563530700352807019107312916405622562304041644794358673802425677518862049045393670912286708068203542101821822965867716710501364146171913922574896783731589452028525837223962142194792789965618347355778102804015884511433225276723971546642326924689105526568617652488857621576069449009032388219224810028011571945870624928891518898340279330030207429429590817580796598605210053765266280446382007583144667670748392382282812002983294737333629160565127160151588955412375526461166950905016008046589267303850805135448819721555890748257784190859049691780613710972699824437167109697451683941348387209933224260556956676926565734531364271603170282545341519751334334676188030897672946093881743977261662073103082033699374427174389448106103534703390457947321027890576327482593211017065265143998719490534035106431749661389663337999418359156288746124816896782812911942212162703403467319934874000956304907658836254786230959704398144585555257256671824970600860930422683476009255316503753305666111927408235460757805047529625493761338059122644328331787895047760718424649191554614534946763102166296652461221674734300159126667931277902242244561289523282465105049144915231025893453708282717941328421105819973962160677920687498493855724659783189247689510944866931314059902880730767305683682939983864295285666390273250902663291322066037594720967724603522785586773719982533788636691957276911788807342720188180610878181418164133777245362553028951865902020729338204513638634904593825765275524390357725606963204294308353141610259128915475945782878950043745461223386365122958189685975572655291490669088765594385607705058429381897669493810242354530471410560763094969389068378207560334077596260057472742221530473637972944477590245028194003213576531671676015801556311081063736063510470763852264011143645352220459654320412792616675777496093993997577381070207971617870802649698414893198368789624648319565768588562170318802897334062699342218630037224815412105997506705563364021945458902159844257482447750225123247244749462866130934356899400891921088946313012602376883360812464906530068286482229456160784182699572873989340101220883412237809879871888725829263125758298389858213688946380167886545021886138232235596190061638303909126573255563247987090583011988739495610334929910994722865901734586456243572722012920656206677601866413388807563802426647175506243899544679595291295239234122808461815335896336472732940604278210273595773812891770060308587929227494541808742736769527283553509896478762786684963489763826723261337785577834449395119338762488477099655085522867356058085017810987357665460461279510647547041679280557426712963608434975436788124108028759283831018838189492318106500105443973364702724486287999923914603171487466064321794785805817560064679090402017313605472192480690755674248611614415291079975149192803986759947021373971224534928284174337476411153623165779715812653694022099277356650596346175689896615020520318006047579147619445368584758628908034722398529620427671461025526835017203482005682076207583886151812041524159882897619985063413244236651720422891853492707529436691859299448137229970042289037007659160445949933162470093471529430824520738511589398903608621202798277795240135420474235204725537326523415564752355977196941559954515292790678962353582416162960596065430249042700892958164774246465259545699608622015651145917374632902841164410152736856595268625340700915454648417133109758233201800567547939115783152396772373596471768003799691463121688571305806537289626101162586945514548019716062035245955533462279452631944844016192011003315210768957298072247863311904470580908724478211350385817998138743245243732771428009400166415097094548526371650639011548496110950121409913269588249379838902192683110698883668155248669289730316048990600383779704002119746249127059162257686466811669738309620409376938650020641859375589386859809661451308118520532727053520134160627002132858743548496826553671873640575469816227788611720604951469986486101276801908676686601538716875719408870890987286035259779600924996310694014826269556831811986250326000389069781684497525777003588229953959441837030268468062759001098462065119033412158059026841866986141872389918419048055290631552912887959900172804899457561471177679055845656397326264506229236385310867049489085292654898710183788207009853687672140923741524732143048255087973057915664002197003175768753815604489378794324258081462614449401974182874522514099234579982863108908450172847409911796294736925676972226427604242275523618033012463713305642146263249568577160735697985584912162175748806817595315196454650366428878777697197705394187131928467740218081013158889272337327988903210209716147179704692716928165933934359271342891479344692373986497221752556905939536789350213522203291982582452201963103875867830636019782780725757380845452330062901081856453814809399809764318002478690135476098917089910605524333033725461896253608626275200489910530351626870740660600242978279566513902672925326878760740977291165514464056522555048227879141658754150517314930903664095182558244552970510431126330943560512802190724529528873747443820039278728202952674517102364995549528521235668008405611204233908774310497428016690321841997723153088064603205610019207230552243308116342255226767691510057786168901727555439699826708992983099252673106466553879952267612985294409173032454113334837449634174638427189850558718709118403484076687862984666029829586904463489446899627045229567257347867745762749293591766017219740579084936179747822658308244315712216914286254153094830635805320528288897808454224201071855501986841695169410670768765790012386695980929142147160013340544404192231556953253176141737260157394013020256314767772149824540422549908570695254126833161693307837972073234770428441440825544578967783990730684017034908614248144541335720547010767024633252383453114872709537697624326942390040053748987844437326513382499848091911106804290251205135836144852880377745068006381729748099961961758251933189703734631128462461587058225896605128155975043910072583435057531371990060829263802952691164426436993391692820871200294995883572572527307723978639273633850988053519390338020196775376621627162163989557518837859801290330643247427217923028922747503169046744566372439235266480672761679432454316697552497855417882159766561233023747443373137294660891081365729448041026459185403377739481693744240507808793417612044577407396805735925044020762817203414716487343570773646349106752732504882368939811499949641543914502663272800953070541505902094420669351981127801846879129961670861192726638992763525565672446900313360355573032624588965110789585830173592308448575602402934057333085287545178848965285335111985666696386016300684932405334705030611226386785308448394147206009645598780944277571503001065611403498771871952405499247666651980053959491118301187655547088304111397367617947790347693672975507551252449314131113743674915624084712823047149787572922611989012021011334074533730296460155679233628571523183509398643368492018487186053689867367974413658373269423653800446166399156574714027270096446249140916287516118711804168370232896894539165297323273352650986269696532810199793782410337671913577714269317072159267016592352159735449245202323845604533595628828120782908965127970675320403096891223148774925387273462819742350120842634427318600204257890054756562726546512872609998036997121491230054260513082048440474789817484031423226321491205046995803800748111821143265762607017379752514491376862114091524886324299015191211668576266420828127434177059063661019659749820464750465003650712829720187104764548522841410279492455951219342331119849520393091487542896643115479546979137971474154998237836487738497597658413956626244712843252222559874121577645906983364165066142110730202257962852721214569738852917986700952447023047230383622066586151362461952652717556242358569277716187516567534105550499935845295503954306381244838324597324525296916804213593136572096178223577252041292158621381994901663491431772970211980510177789381710882106892812319157199005759559922909227563204126865997278855369746541212893321062325399563977355502650004942394758063405838389895118797562178431455343680781851324249132387115084073073257320409525035404540124602881479601790636047383222278671770465693429027065623012692641589939651575709838827772238726766611978788684767061993861175610863310009312268207170127407143838720148674576322462151633384628363352082412110514069293939502905192144751662565708857919366310471606961533499970096616495685952255952260220441190943869240105283336062056710230593902990514023151167789096295060693345987099263827116534591501285329231432045442568143453455914966207434630203208874770798541122564101652384589129574065062852805599864542261654464311087536107350935538886247079797055224905874482964643131916903984852343944837597504154069756383439095242978049957993823589778880085034165736669992893026434804609839074410553138292295260341317715884081302702476556403282236020224162088335719720437610786133567075598012872580786771380001371262531784504129541367719514125348827144961269932129249715916285939707036907409307064593947142403355568676598204145334725642096914118782527037936147946351482315100062729598893817561994059370883121789770271237989289764279425897011790450787083823693969277345849482157066574790947927319518379660622258885766281345561109647816535602390577143670179442544616986589610177016006091485411071709920569500170464236652847212405642683641952298694834487320340941050760002981318506992405383979710507957748856579736683510580394602794584871863732767179968835682358709580938274329955597531966412997102042535514520982409002915953131989330627975536608323020583817722640621649335950272036932228182499484191904537288202212313637351020137720407185505076088533087178472036690531094456995281597998426087590157861636287502860943519819278777470475845387009397283748604372631116997899025242754116941435446209201598579014450074447976666579805772880578057999003653827263434129980009691207754335485946796345551011419767639231622737752276857017353842738140211447105219585493613106641709451418021568799311348810683175494593747654848703775993180081757512707443927959062534607473877785662176307907377053333541241579671271088316893812158153133522040340616630403779263822799695915441437027151339248781566365599223806326974688534016557992082500110322072349282284320582133498302611335728661536223410465991431563140599760844970070312711915749653641098058956135194584545221647218942026076919226049328579157870729150015083983146807315200354056413257987574921284015130776921613322585358005626331410891239185242328225542911731949682190718494849869898921951746989945970440978142385722098565907493249321934260626259629658604944305432354467147294489445147588831076133387417338348971129423515609558391595075380523247839645286502234181508653536210890349428459338640320876822692624402126768903606393892262638363845214560577324353065353940852177166030553035280548481369694857023553196758783524967585422563422679407694358787870412058525848714787550406102352127185337327752136299369753079354999129890473693677782291575756404394777951650222862517826161550310894588195016175843990365291190836279953054264204643055954260632533411292177953002186375535243238199904491209020074425607296403545725182843029820058016478357460593981900760480788800060286856737161470212826217092072289238935360363877474443973803306382268981507406933560092182061352667709343170497297847278648917010528788685549731904775651489228720726061645266297381035560529817386770171392085948287724560060958868991128078398220745966483211834067816533090887835868358467622019130495768564017067131483177971747953546346901513363354664471462872086171865775220460142383326105610125413220868573527182943068017956006048299550330465846669762018313444091081726016888131388807262740201467667870356208653027172656948935580606928740989599205205530277486605829047776156610374707806133967583033776904105571503501732664295893766152046693454740251588987211176159480446209252453135809227751958145955507983969464518377253895809719173003403348157013329722815761458990303665312216027807193647255390579952397443403203724916578130047758593208128483645153290747867584939117504784107335251558013032122785036988676106388311592164194344347799826965052115443861110678143644282681558077644516994761437562117854819043084651897276756171919996177337769250958163269468509306512913572737765228872378448120385559648381114403954327544327730890280406228589245726261971538876384045049323970826122083781044812712296794811558179488731799201843539719982173799753578565399292463526245968809640533378448360327188057646402678755101547952265001222239920851772897179384263733980594843744949121290118441330239472282291660251590508969647821818357170157103740039225952561663196971739031563240885636266073189489405095755198993619983187583711251677905779299507060406640821993394279059209196562926446082210953249515721222835960111537709275595427880727255375978862353812102958545697936792691679404901641132301074071057629619602076917349024769929187828086640117762818654710582906060235906845995546615775413324967275097082948306773939918473272265630931821513052841322251270633574115909163975876188646810795440653150732320457391119543837667180634032572825350166276674308617421213980650185463654311199992803795193765101482735501080891506917055614267980247338925269126356493350399836785491951132409919953452428171279342608744008444289340815479049101554284870296817560640753943927289901492259533296811041028343260842367397105378777393662989635023019721812743267532429629147730203803350070975433214420478239463784902543902004834887688564667379035219935159952439609576547285268100741946668534325442632601034940544462740656955823718279610226453704037621386694544939355587786770658783052187961106438943109251602700779799123056578014241247672017383321654306356855232246989615039512587031912488422740339351176188308272317792241923776824143787893433860927901884749957443898851475516190977571340406771884503311069673658563964160234840613236386511320141275952558280669549866398579572028996221458370993003220815844013553460173090010955488027141187383165827300355389423052245731544888135973771660571429804835434964536822270053691431752749407973819128277532863918036189652230729963782429736858770803486994224879544646637269284833047386814873353128869719007034562424146347240055509721851539347944269539995919243409834575101720629656722424538829467524795673466073795316572966522179523533505813137087371537727941287106716073955314100396716661695284151158147538259910361116480143477629655606338912228419727404256494825909991610177830429117811605258518437939619835068665442354024972792508376332284029037584641800802041817217513535743579950080671423358652567256335154790051742827009101852102255904396630710432284924199651525743321378843875239183274928102880697085002263580061316117354423791071288345703760255480012383396543873395679050750254075343996595716486741292818777615797572687221689933440142780722076095744998464179865993679336237289800561272349749922927832037514085623003027659101492204743071479710779098175875690962923404271080522429149488586329131468138882310795560810942277235112252310452858167149791953669985911358162462667679896120880175539307207645864746798285921424007649764504557141968925819743351919278091369753586409731993928289576931747405684915924405617958134843347954898024502445173060044839853249802731890607792474423642421404846900370398310436890019969409181661412008153202545916094907905061100218644649083385510761710041186777588685422186048857652026688085492395686628248598810544663865170039712677728289721431128999737510106467596286970373719125295946216533352667939581353051068445120553702520623494597049463541847201554339044770418420156938748575910584987042299413027448429298843634973560393005971621984030586352897679425936067267790321059242263960970794826746661312007861979979704506767307251434131877843790108427350707715319660451021615535808088649003666848808796931565892064098024050145088502176311239320117392496589925517066775807974093543317752562301315498666109186067167113955966662830944140756513215150733217163679613663461080181214989526977335037818495795583644123009019806429319272332651404207370928810228256644584760993190132688909397883985491873854252731494399223373971225995516089317001208218834027946397132630592685072046864112090224406582257225704474091294190442684572964696099043094017608933093660172300404310152683848913358250118106654509041247720954469972633329913338498904685341913897416524904835443124648769378129335607837719421876544124271830061416605819286473572354244267964273196093717995478091719317496044438704604450906619915933552707423555860299259805249183280906021708559469481326691396994830492956294262340583061353901473505173388699911610290122019830892349805762688390986059095315671011376440583983189011313069214682316551020328317168151096927322973247918322172235051130516642325298251172150911972197599606373488801859919092983142301906361455459643602642831871133370036065397805480127728396616472112852681049276227766185827591470068822792191398245430156959613641456733143816620159363955631405024466040971310527794688773822919573169692304312338233131258524216276947921082801540072587263011451010756166233885934359309347442883494167695433568574668940391848637179466794870622326644938398653923863524016611705953142482645053534866303645351410687124621438838936568038505168027891134717015655595840694899195044469136780047208388115637538454315709229091593434870508803869640760393120798921007727395474130857515365066633479909466395480777041356882655907614872017063005619400794912291131879610091535787825192950252583123179190987174991877082858176460778963038267516877714661479885050640371763649691083339833341745911113454696342617837601967689279316823010381370455943031931780954128119948603989968209153098635001557823756469737133663094388760933693434134657543068487172278912052638300387707829657126993968004505498552236361393708208912910296512297409278893425359890836248175478509293139563639001096957916131293125148657220516183283906329450418018384707713772703439795531624447306610892524915579764181181565602526925810837695811192422491920291559015384554774649887159974487727862000918008559203560931564265291782646691254586730085289211136320807131003547308747961179576477335390222632521698995834504330168647964051564138230858635760884944837027187999875241145973855736213405985388783792709894067906041016764985745632194363913728385621749181742641693901076718513685058740368942048396070116398192210154706871808333042474675887040267675193310324864849416979969459245074260056921913266240446056453452202327784496215514730498960793231620873360892867486014090714412828054396907344198838193142475007391856319292711774351684290637835866945233923776087837124428994285376489799657189452554979695902965658820484844344444963070948490520902999652857505693193527367424186185497366683765570114488859863066776853410937206936340806609371970000877391191127729027026420546094453192074341289514044387474256924252278898894859253808876860556565136181826465108670387468693658699385311309599578569378350801038430435019507795614177324522749038194165647709271399805397609813855199758285779052767699714532046705613758657839948542844463319782830370259109868456442959755862446295751132750862215675654838970493175207457095212246555031020590037019971818427469798924893052269479784659647081223436793370199033470820357074301592759172513194994365269928315820587518756540342224438721440845081278327153438203994627227322201742675473896447443433018405253089229052034591129347333759957445515486906301824105382358824286685314503753763872093890690916985311068783467074549311662378911779685978328895699329656767046211097224877339006930798381352293859644583554278046362326963324385727763971139060257659930790906620713030734987420576340954483577156832838191756564573395582048172933343083005733122109535288602768417907819643553069752758549324030632856644121874061592256184893310342766498215790587838445443158572187416886495744513235672543017255088333541662423602710133111712708721367701699367043941539361495684748072542192551911181254305489497485277152415088661909923617352712622684819328497015104826157516200027483310063026485349373068001107072795009279293996880769249830515715715634105721492302589985304742259813696962736830151851018689526639641225656338760797618618717972494646850921054715087019480412882016831168027162906186228120498484227995701649369445391446596969473875910162998193922558686004918042023372536839238069513376206366910040294461702429994387485197933945247957714829416008076425852271104626049794354810173280242194002188088636079075416197229207525176593238483875669967123744503803820914019904448850595903277812892864880685678415299963277523164509903540546332523969805732193838482677474013505343706164239200972011280423231088894956763832910784371118261962313022891685210822860026762073404596553261415186773895372887496712703988105438702275440840315265011083723041997438940734710166233038197070516324627470556998113684621243764361601500266495720166077777733838274836175415310607154879421163232563601879512938295610331969909246996372996778926571577398271346655240348574149447617903221770236479953869338525788331235119955069209326785637680660373767608808452289083771396464487407777247318292831126551078535526961293616070152096620448484161086820446815428301030833790393882950195386221307724787892507112092634485480333434423448105646652595785039605761032174615555184240495135084125929212882454971293690779902246418726970189203310003097377703589260470267165376380363555705969643519152711628570413525865382787588875898159607273232735151152418958475215233933320077601305783752053317291255686989365979296813114664727812321893228319024843024313190656912490111017484499506637593073196776813594386703869987805020925064475053562639056218756901042479757850889537654091931272454403255634210096681929234241589976481132312599744886292416929468450181228630285728446059672709709619174748793799562176744835415572264947267133949431097408520411632445332910233724396363629438235603117810854063323265404092957206729162316748841127632702008341541351263548755643825719146801646260049498916250536111358762394339392597474267237340258994409801743427708825753198377516834983878576318592278711732921561568783598933605403341100028713371281901791922930124455527528111578523861484490216157798943834270200348749205371854684254120997311091431745723377936488197637878022814137699759742611504940365344691809348650556164146182785808891153284402854829041477676630970399206038322835460986224171515290447486437330496205415372087555277586891616944273894631568355069887322804922631230247410685928541977348204681948657018194092291987881832091611027384657958397390286519247139430195746421473763935628040323542401044018487105926531535333094309327104089120218555090978372041709920753369504116825116466544002010535353438083524761794426507354454431290290373937983281969605710822911981353477330602192200518653738520422471379373285930294928866907798037914249963555552963031953018884913320909337711105417324466892991091145623159457887075830345400439941164195600696045713916935001451908072845408155192619868646309539830530830755837724403612484095545256909532791546058383524266835921724764214762839104195808005691629256971002764301955667827471246718873326704448427088617673100071368978719215905808266814541355528493742470247243952386280585965684329537606657983916043862369781236135346158259264987848300745478053608088782092382961731709527160150060406368169714603442180141087568483283431050356202804106193114192336941833636316606894386026051237115240570266721648457735316808398187842572627583369398715742068624229824803798982153317123307437776332981150457865447397270543502880541053868029212319117524396311464447682229631646582780044982792992298623521501342106137402442495929876422148297370615504893421557847314520901738558557990445492023732341825130008681388598143795918194315092056522727497902216177979806052116951077494069933708464218559445762373924686969262364620927882521513366711557762779333186672464845964081603986392735016878394400944795167186965916844321875368546750474489852871065241793127621915740882491219557292628901442953735603244935567599786053275313746497017464814816265794325933766000990581797511733724560497632229170980191164096686848629196192162392022725408764541695665090867633639415438633691001840544175772199382751861160820644199658592293770533492318009573620794292910483740964205881933992689899632768362763462051497921003884452445867122039667713248445217052269091689042108261414049108942201231594678359541685674806599377162782478955882842711003459041803993490283735013960849014943522589247757402542205638269466483341545413126263857801525487245387652077001375421727127585625567306110892929680886752033520020108718800223562081171568640090849185702396698765698743453060305708587422936251043356029533163896484392385584246011001238598965939105464687250178533148352207127232435904461437029875036144125559468645466505869048383967875644224343641813108718991606751243780144991536461772510133748593531556137246021991906353215945620033347440040836057215246082577896626842652440290955527707316089016187027801841052606516597068575474843021553445791997869127710978262758031608103840984931414356935251784641575346579431153587640059032340823140583102624268226767956805131387805395163466161080014792407143999302371626449943721841508876446271895208108175586937786053872093686005735907672405525522105383013714227079414451810877973728321406233411725774064726598574169938044993095203472182310481091424529339698875061110437480445607373022895668498482061108090876724278820944156846781333748884985558241461499809880633276374750608538284193252488442452141284699917589267339320395524922029198008372682560774477806190295208494115883709485528535649695344526042541031071213332025309628468368073757666293342745427784742497726661370656159372853519488136541142933736403443428912152937394918953401363226762575793184499919517172805010164434566985312446521582444421545081674962801621981183139122277482321057311509033630253318046160005398575720687567660328759930628844087364546015527207489139208638306332778196472125609019252340140990019112481972264868076121982206435465457928248668076015261914089132607047960133297751384372526353145845043607427409639066872549557611672804578076906589603444748161763850282977758936583537005525258706238989277407371568123956292055716603826657433722583934938089529791442854768082149342047446627600252644677107901452445143372563103743015142697303910458002409007095185840091260776775145954129342699097333180549465912621446848269087364347897173497374710884219538417100972053373243765573571211775721885568903501602101215279752002717150609823817774595106927430228254687150956674943405770870414107838445861954467479955133938829228038646911677073763717191088042983003897836547827716236680461615224112271656038337245358173338802870307426010545646551070348738685774002663583719237593416487721149448872341486546706112063632727309641990305678066090746686424410515059410412077236165714096033473972831913063910064804333289426125293085905784472911986907263838839479176643075375804760660642171341204329710233609288103155949830377508464942985606777801361721918700990232497836741627674350881628605273668409248332039257416015666048838762364178025360059376086207069889043290041908643570104479172956900862980959641409631255770671669763020019761059807598340294915659850084150569098374730945765425152324343033879270320170718835467236717607545666384592900849319646662533209802332897997648879769017693362341889947758360163455127753148913011925633559826716627867176533896916828766071070979169890801241039857393391681494791896908170792728012307311261620430006632455595962739709578533989237742608432082001004016294098496518008762510657977567571841990272369205903133926798361447382799849633804626062898810848714799333940824426393606520657748226635304661534482994146142712203662315464280816205241790551526752152800552560735954802512250533357319792492226660214958400634826446432412683913110297798817596714249568094988896332945757305776558974905965475409901640557192679619936786852910182353849386412082496600809327871192926908048683882383198073335616167620253492387603745150490376427222136872476141746804926136622647374384554715277862914918495888922658990191898704630831695537079410152596424712165330449920032311113510989105945820101734213306658631613684490122123717213762188279803499753955665059633195571774005210804942288865344821598897333811126931239772320804894920476018899285306106330320929472419297457870091827527831939420316344789188345057702374312383340792876253035331781819849473327349469047219040113333254257253921106980283979834496524775147607080305164270589797570161264600856737772157838463769272629528887655736826442463754944104692662548768399364295301536521703415975224065035178414294051414838767080929130384969208998835269768338824308457043580762567363124304779006113816706075699864426167871909067838420479648026182056744348610409628989241893419476687496794676485131976875876484478058788225824188304711028626446425485688114287749169317172930232693240779899666500148122661583414820590876329873207598244853967597700541724901001293622933660263315185683332938109603630460565440571808837571994036551618976784052256190260477401597989089876578023681662879848018846542396577005816188589743698667625453611074187008889468368087696324626019346115498627245891478475196781022411291123864851439641656392866335246437545971510614716551916977427958893869285466636030081976713322355032250365747254476874275749139417415345051104770551329706378931161382394011562628059187871977835422208047063859920035047010136628370795617897942492601103060046745296786827343056740052737263976488066962292048659234037793746390228272301233726509315126465917972076906338921854501615300712432111289891430844621511012945867412823461363381413018847176819004149324835816886556597756374378699822854006213812992127257756013154976896524327132732482198309756338217304039967113803732349374477376366892382605003228533724724110284314420260438205079994099643478153182767595265945878357839177798168278236582948850941616939225552587065496542655171920123690970775758495940450934223039794704416639750031927448115243659643563920373981009259629425811979233115945301110887434674249997210226712938188376943825877181027336523226001121253230335641295629886545551281214262851217140393795442197478795167494957372106407705512312779948488258973944593217306355468005296282171486682127257638036591282145138289493237457109273902396886192897393170667345840711640948640881745721639104607383820680077975536386602439455294406169616201856012849834584476100389945422572242869439929406471328331085314306658114975319857425939892074546718550283871366048384370506403168219809438916057135494866910786625840687797456075569357597338958748715334903815430294752765608202312108043078387825753479955152457455297675882310720235591195255817588780854854362372475868985896986760920929213955757269444390488035622852942575881223611109698363185902446417887175148200378135972411544944864774225190560885151017166287634639294409983830711379439132771739064065860369513460549975632035220628742418430317553141918168499308225694873128440980696774416615135852716290701367687482648485861874798608671348619707246520036516258672577768174493243777922239537618348526956352543715034378020479273770082298693867318890331188694595723451524287893128578284335104201032078238836393190281057315597001441821610502012323620589157726164475542398774516674176096660667888213127597593579303685187380595502895961325116031853898402973346215087449995566944093209311433234529586653918680061431198470130085238570127309722982151971554610208801399276539608872462333543585600747495293661189962665192862609483515481179020397638994620064947567358604365560216948679071212926730513656701425459905638313029688853674802510527922436754061761132716113753165150730614007118776580859946984234565437254040939999784696594019963324620548918830094805593749275696134216593242617488077357540591295925254204443189933673627275059909999107879037981689350528544404642062533554488010378900206910282573161607183316441649703896047693399786646398577338333339754436824335951691866435630698863169921901172754820733022497515993213412104020787012591158341697329223482795595745023019992222302454979023667419150739267250944147984314653120953839215033798559757340708120347487729195844118402817431708289345646899891657223408909158673108311861529068195926711303340863442077533562882664020681809442294448591807143732524773594136460487409243321289769471070050674825263688646231654492216238442154262848595027594677337035327908640965000581391472624612229591441631474008085346308433137602381217921260969205064477794641172804254239531778460895293389859670361293321717141489630892749874325733368880811095761446818920659327676644059157513649956640920352386545226999765268893132273786692841175766379578016408963381457038424949917497703019220487588657387769110797625387718938138208966504796647186791757711979918442570019998685959036660822081830009464610945527164803554202774802770672448303030981283955395074752227914376410812939486083503731978909858614580169945763540753188135617597607325214252445298447599895251073473722961498456039709204467382346479092413740226936594319996811262400335304749175404122319283409951226325606714254929960251015640539578716090708467868661293118107202918657660581634705633562250455985204736636316898589926541415526832582270584314525764204737174687296912004095836795519871371061187575432535760608941740583092699026565390131530071283809800344899333167012794906452171721315757106826486049984503754014539804479764981341013247856610368830733590286093341201944272021764366114556975871220018599354660347110954655410961550883469944820663125240335702623690644226640815256837405044915830567519099173595147836939846702942255714376701449014066068761477826717129402561743810839186986436313594499228158052666567536566051115304198847100865556933070199312446634624985658038432301188530633817496864413868958794877530116490013821340265877599943802212528383581405315518324597020220804833277521476907196979942072144387918069641176090854430275958027086931781718438513689253596744958807068295338270284600730302526589876310868377942436346464734501616951819762963607436335942540727931645562807560813637300668705120321384542191883031821326230188719643099209656598547909401136386815584419221232605870152404844734622977342401053710863426493542948533683161386065628204903460623556054030113753428879632002230605076661181949525484833169527653344782748941029715831678099954924853899438151787210387985478172461102738696792934322415540094579885562025104697277336710407885809987931335296762759517897480326405431825486560684784067216316602237897068939919650852733226488206929504161522203410003286239662274242544540423729686577644249901823171487036160783686503442108349131123091351342290682046892067636191256420583605291644796458899002505301880378900581303811255959096971190694551849269584850227955458213863811027567130614910394016575057989209086731160976597699130720329434950436982181200819759651716796658429281343016821134372615597059768388248879091795300983110745816908053829763104269106804246889880957213954418669775208336000781658460266895841571482649878570113562838656763846668736945209619388105764162629839053510381141264319285262844749752157121895287328736884175742279848628103016743360750969561257299284327394523915641704418191785019992510531335359527315133852163195800531573244990352838155542588463679962115932369674008748377806421377307125948506000759639081984112276299242425214913330330098969073915124856897831894717550787723209660867655812592784076617042933800723496841007554749077169419271050701203586728904134992646441075178488142991726037357459342286010771442256024209075620526503386257663157980507634300851639534501872968263071638602118119326243514928477535626248408162876268938015194412795533264013437744323950071512617765890600848540445373315791760089400124101698946158723336161319523583001479927105618521390431919105719629375768173382804392287037957629364635380685170105616352622856935284412890807609368551078262181784775519671099885176078940283451663708256379751563559647069726811422761697282363446795681185112001668912950680843305952557264721777700848369516788134437672004885729572830549560904596629619095721311790511404411015583097085487187593842998084046898784708469890912449610053134396085961473044469614567403126282669371258266406638131801480084500333839221039572428394943519324835694069665350132303824195281223149817027208719273925955120505716357332922730234512994562545961238753589634797859765459164757549755659251352941212566839882643638539125945951684526483068665134693157605851986534341390328083106644980626712168030321240083840625956763413682989670326256246206507161077167583527194705025476996143698744768806744204323610952792551759652004501161957818249657045546087259357898218154592494206848143819149601461433218469927547608888161618346104257381510046631574805782030784859584380301303780300128518351506444537777698227268636413730193315194858403754861828182808073553598188049312633381979003880351973678857688524808244791967284019537948331545310598625217596249688949562711954213175631806676934129583146454082402217662915400813269239430953606256422303159373139104589299967838948694785863358375767560791970961063346374730177992232953269575184707595085292527700838732176709758142568248353470609487153733037375266758837347128948829728310420181385167361578299756665634705892128491270682638302714587005568846191020299347809117148299921875272544748837298205955478419154596453022853421244823871313138808153940723915941991903870045385380719422819705278534076322545299128705586255104162183924717475877814145543017460554152393506003585369393828432018723039074581753270642131095346060391948834350034971317290537190917814664912199786528305548581981200450107343696718063594342397286169796061879677739058851279956557105402213553905017886725775575017698365619818122614112115264426713629755063341397347667903289196350390528605002115784906986352094869417812385298454466091811447697782379328993021165299347281730946363880553298761843307389204180454641905389867900820132021522537803823318249404362487611843106956050709979622336907780849454146117464631507081175218584527482686048379377927889004140074642065123319905560004481873625375427701806372376168834115973010079937426232410344188861909244438934083588688636368975267932045918565255490458184770130268140114506200369191187196036111836686123321611121588427515386495798671006523830389610032152473616408963253282770738591501732192621732724567614945745085408197626142871252187147898499461708981345218758300550366834031863002061761247379117324198738331335427587256109160005156923080857815232479451667467140958707200140051291781510657875703081875969177305167492762291305101481887986905089541912554816003866585859816325633570953111094424336801729662382306406538187475632640819863689892465132063318346937022558906032273572908379214035350865010086836318792304588064944266323946569377774191525461981319951885139531455203094801734661699439050881837843917224012220864746703884606945966874051141324796256738149498439249603463587460473889828928206769718153977907379079144618793872748653499448549517917528411130254949792708401447065892128053673003510181247460355893313423436139129777099090482344408005049937883334749116423138521207005820225107137349070937079962200684625704686666979207832736046843331051282742515994123775458578801659674515270137921082736104847589942082083617476408263722553923266156422729021957662655336527382268132274666733951480353854824773407578595619971080800371558751055911982775889831247628271034696281137738605932667782744147144687187785212816872368091274280861160407331930030965484625757065319293838674634944994428606515737661489281446734069723716839399783578236479776933636793004398452150133931529110693037285094950768249102663098460210375527246676674569325307534340612175841958940359148523349346524882375441167508623456352901164789577814962089911465692698872619627455178569952748861582510413445905684855882561270244199660315959796631491823645529515070847170789834508861043758189623270157884404650034515075090819840256393841528946517167013379645326270218538670884472265785564097075543374092617777851919480339272381923921171957582793703069579072390243163922722976210344752637737347479939180906199079951623242143140720586192868718100107805511908870975245915032624006284170805027151674158272087783721043071360169134393012609247072552180972339439107594424291341344461271526611406943260808671092167031207965788492567990207060470633057734495976997625972898682278943272459410063460898639823893663866986104947283647200380766633517821782708094920392873798940598462943476907349672033864103738314332870369276343614803029186835564594094667917736338371680408080917208426230175892452704353628487054318510861690481780943355640109605604080603481206737791546533761773377067638411308732474221830584099016263820575085838088670614666587899740674258628054922824394055752737548116969876212589619508375318668199646438118460107937988301120130336891698693975317199246387717519804572868692480784996329331252254953498860400322965022560099939014180691947321393162589073248803714241280294304069056525584034503851428247616635909423938964318056517222435345605407909616694372377066655344064418590945368911554286153139745970563692719196298882720187024613277560619355184761561504962564974702756219473939787878142889870128381370490054176947930146163628070100516640184383269120919813766882299217759168274782299083248799513519844077733687366828151465482215666032936927053719923153763876013391979728613329532734466521766198667181601904341944519933874373135228987183948361207991191512832423105514002294885044688254335820044052526400261020558236422275618665868230914054027867755432199869815810921349949441000639170212167141463357193135407445478541848569039322689212028932614237335053259331997850372576509761691635171436809086991750222765866126070116227574312872384889290893813324422973288836977632801734669750023286985042645465753061932393702605257249772810611456890964964074568411226811769072916488629104196904671020977979195180931945887998929004576836770284453446898164563662846902018200628069700793488449023653094815728627853000025544527765225445875633202225677078583481234933461987550631131962214558827415996043119448561193426250407420696351101429851383940343778352744303551957754935145265527795504154710084079923837911096081780070323113163495347809123404860029089791656714389681070353534352073789646059529239959416896358852398100241996726470712669664082800812007777083229810881787159113763139006091481267761265034901198243607264676412271895755443864187154564888137501739907188781357621078242430021000643706274983013551475548196608456106865350600356883673946491032327243133741155048400553854986862399211303134412869091887794818565795138066833878380482107003321820968240496074654463153769974472950752935382810036254406244440124978567464197943467010105135689604200841574726624988337107779166798963262749297764900158096331890467640062995358990007586358925858985125091273552469605102429718591558322799530200417703949795090455606706399120736674808261293499068342624475445686473326716622247566084762563484439584751589554022216323287864530128677325803303327428716219244580081604291235999903421022659258781494145810288887547062982658965756286789799324175154025963576892243683682803259205311968140243841633102239414624535433894869478327638814780434717231455175269644629098064809419111814064160553177170483171545832147311355293730925292683329443665657955950204736781696313408015519678561539175896506667271037464633280937595570550286809023464128143807678357616321286847635556634783470149106902953219292165966902484548647407095594226611074564007205711450481555359396912207448901565042794611967067225225890263375645639764250154062966959349362077609628711612585474602653199820238356539647920128908866994183656335267971503515710009430975338142529941772664982263514055069409321089077093875439618421824280308643833695462016080589695065891352382395716387345755463099175664387881334233031852242180212183086604981287711129019130283348620334065547355852243958656281658017772374620933363797743160993070615393549179488352639437576440359204532691631750245136088262047231356533633779446612642704877708470497680704421705794721189754604409047331315037410791280611891962965798356302167653159547103023921681051336964362097595935961252451826967759317716511602925619605548702042880472705153124982076584339495934798645069874210756817496311088718111637118786740969828965061066193646734940970294760112842579421403618280724686417404526454718971963132847768625607663030024162711780385419939798260806436599728890620353071699131461310231732797675636004979126277457903667698383289057246450098882454885102925856718582527766171197576683167146403224219690299787741400257060842700980785756705817648917779640688577742281182554723332219763144967854537414383766304756120314432676813911285326868562323951219888077341895015660862327714320413097692019406896866122308330539998848242813984828172694775756980440469015427941784084427869097479572305192668334028478753328215663839041593148093569754738047756197498722967073504741526689400751937338181127624927802978917590906502584371104029392129426293021596609675482035999818663883718129861854087344788491401041044466915394147888687256467720725102339559891041753384511181703220764225353728064456641652597704685036704204819184323459987574603659367069086339250574504928027465831500396649802412777178784325033027432335937953641503052806377790434723508019017363814463702354695563920241394439922122525080184306931455146963759461731308104442727502143999410121726396931860138944356734267645652369156202322561810485283633102031512683941073803606660617763079193338526295032979249368633381368749723645894053921972650661709318960735926583540988848957392045864171304232264381588442318358124256896924698909049120046850221332078674147630984908891606926061039727775863310257833913673614748431193072669333699350286635632762331410565584182639219608514329827277514890696677251969177745012015898819411289080908127297028321170548111255187242470737963547152422061932745563601117437849197111097581798317931067471659429165164108917933561128740629880787877665083210669147838199516105788159157528693036991824519495379717374612733214240384486358628173960675351162025744317375605237141966680100383157294174419367310812890258016954930797137018800043754308712178972145842642514187936575165728136434793866301474589424715320740016176365215263317970836390608998301215465259764397152010941457230187594830797562261885488935327217978653016283751337004028129977110055578049590359810792059716710376212375115065498986518919859707749331217521176137152214202922511305253440520644637038855106430128875427679028953415699679037821052191422601917446669631915507896936961048449535146086861440289622029737943006225287832093215855338992808755406339044691765368133425102637616114424103994726567261032641691856071225458843048017744707813694334142539696502845887850631796590705847932934766999373207335489399818604253659612717113792789299054196481430882644123259834149051760082516249100260267210688114877456781121637695996096601462446553560177231478280677482248496200120277470346279359789667215891261188366631471668880026347886300585364402494937290131160544336905713109194658494958359849589148583711839126296510104876641250929476659759766295321950222153741222273213945081001848382959568808130337112746698027229640690368893796844474479836728511712168358405784789084638864050764781216871109551816636288343787556674015824822649704680518489314893145719383465646153932234488038600411447144398128508855006908892965991422373074229003899227534552539531221894295411345015588100022200787501430294855842603815606532749857718159587123785741529871982201264573563851957742483112040344805843940151738798780472977226181303362992757435963772015140904805676230761294650424101767941262359112487773504850669569247095024979740702752942108529836923083084429610393865062032495806306828767783627788298440705972617084733391492745424614241892884292889041847529987180677407081673221377604422491066409891682049876171495773495199137312435332620877476807818781083824137472691023375980884424028276754118174468602255759840623130400242553271875537903677633757640489465901897428584500793891171755592732266365649275634741631058436370197668564010948063218273013298934096029362201943040136611583348798802015680186720941174478636794858773653676204295145610411235200263863800856198379682490745216584549986470443704391328318955862039578055098375523776889349983590565528127562025097680008559889550520774085762355711528471060786475377600689529929370510647052331733106117635220758368022042384979472487619885159081087017513638161614636218079893819552201289048553593075083563381390826773750234938224057668812178823043919412500884880589494518326735803088438104708093352794587501067821958388892844359780195702538540586257133525935339063191260343675161775705314204549555843872395376195323376275001772574609500610320475416604931510494874863685689077500062723437423768971563669332219893838893093739148531871635972927895452828827519948031160477027809826527493592298133188965311389014576681523969105547034249414982028808287891255498904308149247834509090356288258218732385647542373317429992534563974482851272069816614295804394499280815303678379573770304068253870474363532066158109361179234536912692370114302974729738445438566945990538167928536420207713256935730788479899654055948564521860053294000310223095637721070877551410429227817437388994031029131072301783643255341658320736205824805737225699376157213774484340971055007021431421226410710214143325468466978004306440691524670864474909938089981247325300382009019907435455430345041729346114744613893699291632895736943004525362755341631362250881181367212017365305467729167893730837787019374480178547682932826065272106094536583951290446513531986282330093729952864004251832347420203380031823833546489287905032571361687125849653185758024078644984356076076260235284927092442640994727573406004244326591000296671695615470454718613788426305813501580997645659812330216676183428140200138761652638016699430914790916375922087805789792808064168405098273280656263419728224454172443559266702201338601646326503388675693575444785003971200193930943363962785919949386212988828491303077329515677153581608427653723826187139970658823665587427399094498319030869456710737026526128320714601059595745369280732304129593377745543397336158017478797017944123791219296359600975457070683697025150614483896960639106190833435038665749165781121540216313558144739556050069770764832823652753763937366350903379813881252841308618719167499062979473466759034752791599884558446510507092434961387613349825298216500847405026080958025133218518947957136365783879252673382289800890046952343393037784159823416169763391722187868648508239751378943018645281903214898305059612196341939847076445612539597258495069088760146081423519445001171769048047011521470771620834269960968090323517577761201862975986372443642609819683772019130829650625938447877867737767905089370491101193099634946455538548585594665939478881485654169784622891420058614738828352926690098970167813335195780010566525846240369669369177195372767252989259984065235168879572763867058151703050239820376315020182026621395677062248945939872195403320076973868516452732457814510914686406010913054537179974824978201832024764457839149972113717883367870404698929105236172645863550879267726433374690150196722612449643151004624589032711803040403144466117670826210752973920536948659064082950117265815132536619077860241297289971289043392543956938539962186224551270778256353319906785928130857924533629419900418312173734977050177092531751493832326744318094214924565715760261595252217593428928968669539574229174022922543770921532102269016372807251108877884842684195404134476023542349276924732768615352262221442908665423854348902273183601793144460459112036927599446435203480730292227643199879294448819876546680991495709996674040305412589621402186621543053267594096643381043772023380335442145787357582932670747875604958711367332370390768687893311237919584456269015095674566748747640065631772897800075293174039301633900505172424170328693785991613625324255145421719180090526661735363145199595841424674109520036568406589805502437920863860169470232187196902093909427504238224922496674345425142219513879069140019927875682227424452944402268072492891429850721486704507852438794062708264704689804172238647980658597589728720645214672091215520091711032969587170916439740685102056604311973543311067783909007649319543084028829034264225349695882936303984317093110177044339126866915452456965363724779623636966234375368789013400832785253984245751190656595420467820708126758817383915903010099643137957787872777143790376286771070875001681211374155170611375210845866346019176797471465751066918675658710630279940599224051428732197373254710922396975917851326506363129439432551677714634088897206315403005971929689032715141157339599275914873580503269235065004293795766019279779037077099517293859946282554893331996282612734086856399519070388168126137194768301781545300574598421214999550308787113658396182977554739701629834701105996552256649212155417008702056259981354572228776967558678931794172467182826570741516927706284810570935128469464176052663649429738634180300392362829012274001539143351180028116882379574823064773413592871524193370042118486628796506530376579117081974920585348865936694121294146098742822944581253321009683473312662399533155171956345756106820735880126165616115663350251648987433109290740846833831836612324070892218085802881664576412591979668402131330029803986599862277670316467392091633942308948339661079413633653974954295202861984719061672374460712713505812522766895197926746344943700949221362497519895326632954470285858432371421889174964704501407240863611234522018176656942223520497130131285384642827499472844485656083167224191570507828523675850692982815588868233964364315219459799811472416444885036643293612463959588691100021756052297713041542394150692497165020442784255528777187591026726102058826024591050722524440936847544409897650028464191906906883733936678934692504214847303326516582964261426946166311527621480529901280907836664826116694938043908718371917385814013750391886801027406499787393662860728433131165625308789815841271538052671060312249386012457605852689926551765165941185374857507373682302640791778860102802969127629722520725261670565821288534487316060480784697317712539667223357520092964348730711158917061296253168147012454879612624517100909118729712183025262712519496314921707237628808543599760011084882623272423857938863617423928618580269715159953505456540737787019006975470856390398882926854900641632374522778181098920438340286575992470313976788651568582964429753764516830860949406387429875188775524705572782877332839704586347977110982967722023644813698299207903286379759382775521145494206791585357970406735519075519334282544120219120858947985169624040717660955677489873568054603394116975746899849516989105249354312905925647887393619247924888866315980283679529087621866216525667589810863414344122255685307462881133662771699709714043451668468618799401020270532107835131913166243197319951160646121148955549137205651809716106056025997965948421207035960648533577816278732593116675424772984733636683767431158516917459492239819109976088352595912445293526504355225163159861647468875176391498533907794976866181187091892458005973896692306774778232541724086758698869502939220735901746007537376614201715530793052665011793470128827441222395772236599780311690733108168056178905144398653683394170012395354539903109214913289051125988106730501963733308228199068965322675645740285385270324812664685876276718411985371046601371455820239659329502551621660690794032487589492987688038352976732726961138759735193655711311027104155340414581853679101646161525953335489570726320995341708301325969931230299184332646894147961742268954990833698405475874635255905977971842770822752199141595739895764442361964126184774062103889550189305345067787573984678086698126994476938609207152640729215043615518690604735214417167979332217563742977499423723935307432279451165821075422920143876931690109295694745459280661334563867938273643904608622071239285068007130227373494056531825637910901793496416104999539992545563307000179702039025205691800168508732231996174346445479868034932474454322633393756333989778333694306481607949894688259673787444520948666423496255296662491433110778885729226537941510335505759875915854513605806795531554481727813344294002319007967731399774070910016395929873351403212344824435164625661845181385486966815607506589050172472382976111972194251343211754669972557112319578431640953815564251312603386900965762055913742092954381889565230809375325028126742066805722958159170273197147998002183005905623599826145636534121203263805402196976108055657291048955076068219209435172646562658345882851070555915973568733840816390147941845829852711851463590474553554305312991119989180350956185915299576049148772019372598718191875620848720650980968974663146598070463412561685028489810971753210656975989870613746162651152767880964362866437559003238873222768839330361848564680120370663946643859138173923385472048892205404111508361240711873234969003466156713548595684294942141330829755724562027972785659988422488429289848838486061413431636602181372087182260432705186094202782257947757112098710263001044041970803726907088866935737984856085158507061325980493471448241810309022907333988308083740002293219508388268330581294616980577650492336598886210320444406104386792788333930615470811173021085371242399701394796712584298110447877975447382197627506558581706394411782745506587936633540607321009627872580858188926133939587590074503993058963609762036262156665718407247658860916237739471762279504926105984081683761894046610988339880352303050229895523058557560294272904445697059211264134275675647686274143403171150201567760924827661123740743427220693551909009180390202809575708637049166469742549473595850396353810807489696863687446676369862781528848525750215647289672087750675050315970756055789476466893848693031584945575669392794797615330259291162174028933982267295721970264687864112240051491945403006515396296895713909775614831718915761505900940242664500542631439508833547278195877216827556129367052458794789705294973627662035126846481071672584954411378640822159405893897260010130923894201284291752990360131847420753754532528353626476870081671293916236618592826214707836904900064991123208318356171263888680007023861239226582148386731608531960470243339807719563434591142434385072066707596837299864973220683160597015035930046181927507299057773541093149637881010042319447621861024617051591632695640585160068213094337695535228031996183578012320677780187207452794628730591913386972828505805764407663131354687627389447829053521215109500230179583583392580809105187564175348197877932021677290963781696221476852282299462570313112242537607833712858807836053223897242701649164223009625786423776030602277856686532994000077149136158192467712871915347524120253941921642639375736712120751575354135687939253685065517447146976840078074957443047290498150302964992175140705990902863462635164131664233796987314722564690854898898096198990066785368811474306222494097495988836233982072615916941326664057873974800233386992243724955355075513833091077392030374073382789358611901718827514247067302394028196310579063514241143817953078720508928165111634925293650665852153925898529122911763264124863799825258006006314779566385709797949411299117185050831155886811068398065764675629192749629682872392268094589326270180694103876643926047906637141887271340133449115212339031238726447375067409555383383727152163105282992760384418865304187326374083703437022109109542833120503520143873331428686367811398698310564734983892872315409255314071933845349522180510800189894539640392533009331988365114911926977115562585676657098254065271293217843472937570827576218213110940618574801026096358828302371010376270974122784743936612893818782160394957206328718337035182453711513571615347656911462974336426770157575344740912898755710437266049391116490428521155100739541693543753609468282171418238568497445651414943724338608663560648275971808268885917669691286373164686895517873985883459966015203239511172808890692599529553930236732527190043416055532934106234381865290561499351462769133726224563702157116270200605968988903399494042385384265642003443148600976785111924308258491062312826791713999296321882680881316105479593520157265541220975952792112087034990757763168598379223181378674088965253203462074227488620789850145671497249734225699189336099116891213754824191094452623720723795567598042804575308001117881431906211616887465669452300823964969100764008062208004721535741554616346631620205960387531550502425092565592024580848680925057913227594540977753342872867762093641131918430163522025740232187754993641503378326131416513439599696289680799700965825888493614511274205900748918760127875353443116272661997800064081071228304447635278179718533063843763539396925448766664685115475982626159959514989276229105686850638879011363407205059761126458719911359757957078449257379061122412465124937735797364914588655039883775320248369906574696959939211921952281449854762816087926725323264596784504601073319884143393058793603111545016756805501324043074025363601203952887832145827987457862431389116244718390984592227393838334218433527108402378031041984824324724857462162262405081824949664799548653938095373115274172102260304792497339199468483233852958034795075336011787638898648934700443063659167937015683776672735822247239935102860172151689797733034240467839230444407728733436405821080376806627287727078880272602705816301637036374633460925896005502470666586667975006269814813880628143273982181979948163386410519263354100488178321722007021876926282407240615847640030910501230227837610818815687357636313433366442862199469079612803763844401814462049523714345003014478460083201483304872535800832724640282409437379044765821940268492308297632501122957156228408134942018306561823992037969658315857005345948531200587588678098319778824561561888356044031005381487943148513597640119365993484228022052646130390241439549942984441506236823991723896380281670921256779060942532604589606132010033776030538438203982584751566452459062217263764405351030261082370897778744009249328066593908311335735435428518152421993492488845254255551658517920737132230828056105202540095465278692350952224907512454496330824817800023954993501973968458834127597412414935406211150066948905471717503305470346081876234691728865027383307170305354678896375681910521541271699558977583163412192339291433426174912152365037827468464734436130230243062940816264617058549023814336770145710640787618319414576122007079571504650393795177038241690372789947881346929460256471514250302231870978775181608099167174547973691532626158925074930096854502058178055153979466785393978346102054492566346108475921505658481416180398872700845066704883415483491249507337806416938642167161275117836689515226135663151069138788775516979510001792407037188508442698709497030920076040708475465434398171739394460131702259014492528500440194721302323391626600414847894582080630581040292185821011527632248571584392485925779609015030297969210853926850348339444930587224074526400455307423070234853959618810467789530353324055285772482191735714427436996232054617627739157261399848103861690867514423837130999193483378087005794150317468824463064502611895074421357143969765250267641664982872690424067664791019400292734312194585617920408512084985889615611451220368568192762989067279077640808027138006424951251516343050863052933993213651616281135314053505387816236720068809779881241683886954335266292810343108947835665008249819488914003043349509232605694268014861692738274873656456921802089080671292587000904780432009252040708523638844195123818312286542439088220716178356954134870437696073843416212540816807285283433644323577170602729211676136823289532205670575214064336130273691650076639082793382893414125523669855644741965657932749402281219551102488767691838554116871860355933397692073265735954107782091564772548114828746909316643497989407144928520970951498680470920731535917555366814878092112659476606551746975214317760112643248382485395391608776173587948362662843289377186474495954596476466030344536694601814412384486369184350513673308448909338000632471329197240612221902578320595764328089066812871368375398275802947540619763306535519710965266817886838611666006786928994767147542805815439727616441580896548678391960131962771158477535660190735378053743734408531522295553185546748226450495203734057472677388174962437623487930874659137888890415371762646672848313991697439078449037465844461635992108570996662899550497514815505805446553715966350102187775151329373146377788001505488743622752154392621456463750048746623571272462831736809670323718120665785725979574413738466782815628307779058942978015983932510435507813302953859210336087575872428568420854425814454832337429363382650948917542675832690649907324987914399245463526183360520131973002288597264129497133815860483427252956079077646868874940026974473369434126348018889443382239917706686157351525112573378243078831735919488669278730470106928927110174675737990791868226672169448644376696644384442395962942392752812287419647810891345191580368599499568864730375203255744974719176290695072276678679125086406666715386232277125742784991911803285106748360325541941721861394572257441410810853023273287486990542688215909439056932704645194837593232525718619878379893291962346625689038388906178532672523954514735445627389869624425474506451275276310441856838259277619223136671458961413504877127548568475924007872610624280393952008250757881419320458036936227879191954806456910900665588959989530877849900491977037202689691695139350167536434464213756692235388860117208453109410262267253885153543293952640590374742973890172883608023170874545999789067421729760534073825306108850981805479327447303444014394430552066583737226867538995458088293581199387772911486277967215256512748447478417756842168325771992381784391051034513164054097335670578629831711518199284551025612694746338815961161695302116217180222015889588807157833289355203848976817334914564371406712408805224797081240407924458496326035531159494468457523517224263502500125735885852470385957133965412714208100215532113026995774759965723034355378465446195933290821221434885748934526088754665856541722616354228227450413414909429248943297965561445061735679078918394344896196400411291506875484148494404719692779227894978063566877975419705562136207332249299536047258100439984154066814669363075822946754618065997786485136927888582914796359342953328264208341551069480333086496448500437630355422910048361559506325223864995061915933415792491070199417751000462009530403361775300951786573906294064845907580500573555191333494715646570505775604700551962448315419673162272923839954994430164633851045684306883514913833321742337720845762098546782670387120833533926965531849847869321719455306942235440858238671624517812958579996995562308224247182106595990112591702084525936016079158619376134415237931774606325210880194137399899860318251424472233014002155702323742779538569523816493207722635430341369599472077497430533776153119639590480903705475822954099550150270991790271845028357515597930357564385932139525422731325468580288810609078479215408906374820666806289251600400742701366776585722681402208264274578034685716153453751264129307292149632171468954858762958956352670945608685860317169428304912733854028621530790562590970097278449090487809525488425889890379202282518087135316404675120284340227754236156682308901961345842839963906826413215660143763804459879146507608037637124913772179001620355234468298593605832204063631953640950817496454428893802060473443901748262742051872286740306341893205959678876582771300299419902610813079183595667776305709549889027745965582628358849487190067260920334316130320197520409382318516793981669121896565506662971115670887688594549192836130546557898464850644683773270191611949311059204017571956975574069594029473868719314531933795784091870121036026623169089890716070481041594097396145548773992696389290981617518041860500748725867448314423243552368397944828875476222143881102831562030102856201924828621398548237321748095961670522075844453815287699188562283199842931383292923592963283098059707858720088716752631561902785386587408805034187024988586848755443187485995867402121503782974762891302734688527241969869063590526707479920644149484283382703315477325627401641950184530264750355228356024727042530607468969450440097543134032823179574501388550452801827772523062811469767344591366922103393685107769615801673277751813920126770566403019148210983394305464107971569331792280788922692196266397339426148624105986671778543342081237016327203290713037727377707833907833200878029885651932405011823944640352338749326291546677019107010051995987120957532927889678942672695274477421300161256593856811674806687188068936569586132801987060607150352727964192857547630032584519492523814064423775892689069089570306854688535648913171245721153476887618758265397793944407224227799556822339430636508051262423319091396883398630570746043159182224181565803943594226679312359481651606473586569227815390886796971044163690528501019170490128225183678761840067491769859330773173458977149514452100154558961689143674949972143428174624904735074517049513855917376820241414020194918469184530999814793682037889594287119582230721713066525033497874864720225556719179883726565213662515610959723007089157414159839324170747096983228834418815397109057965117070957530058670509818233902305210009922352804566211502514633720038882696025526485975503252164845694866512018832522865940835157671814240490337574868808869713711305569421603230714560710631590381788653375543762309705886853332235112009057703720645243562012427967485043486577010345859229743558571081855419740643949798264960321778170372821459006198920260658669616048315410368639210476670790887854203089196204947665201601922209826809475712912108671800792908087371779748728789750470082442980689801971735170009252194041984477045421375482210425875112987989730884561297745266073697275991651344498271503527942590499384819294319596209771086456792635834344055993099795369480673911109815434059395673420954234306643176350949072093825538460694366524339700644044593114241087249667539655258222481594050543296728047955785960499754667020272078939217735901079449119909236315978122550594916836849734808611071092154263427164668413670678585479833477020803469441744502576368873954242736699205826168668780661200713814907240485195125575396590983436949477968231719946800157037973430617396435362951078550239496863199986254088716149685361075573050012699278508453138208534229770637264908847530694471871161653143685529913918913903053117000715208013960504421014790201133163030247531189747816666159769832678721060988410257502263241337839589044125561167598724688526328943923501600196341632670849523194696854724641923595110107403217607735453279180456035129845777918187695739137863965387609666061237467918959328267025551726935440106867346332161495037523488016002975366289744983219139897345209060905063177236134020735899056063020169061741995374401442060684934448756600882783469384911676867233234430099436436880886596203069489207713648041401060703711547901671758706875343782970971593441014843458642665943237995990907256201359728060651545117831320502000054269879203048469914211944389224483369937128279010796337329037728006579283402350836312905915377502389520371262802928429846505561042893406797844541563069081903584049733558104754012430394300385168719292149206838913994801105215372489154197500808490609559401834774531871652892771682313373109478236610449080101208190837854598716542387883086401365682659094731126992436005130802854718770335284067947604097637376072108660511291015333086994945222024268573962098695060893042902646686097499956434894931495245350853886345237975200028082723767497071955021635955535184975620837128003935799050457160080244430803223688998746836913542401353260191347900723630543011355157837018738254358886139169421988690061052132159142460557818904703878436127789789761142803891589417099197941561719553028533838875786849635060796357490761209654912931730554921583778426456912913833320620301613222826165761567508407610723365738810027978982021033081935637658175168808666050590759980854395332558645009592512802478954707394984329254475406902373363386246548707890018216690330424668074247629614746517604299993028259570945810454789062421903915511389280651015990031771153603380456650368573029993079260308037632363180763795579738076230032556453461085202818797247480438424534895407175645907332546048378339908662900114277905535302362351195367586006364009991212140679279357642485466445053592251751364907073288671677879286174883753331179612635744319768570053518000983854001871555108176497486531641335429791879097701540122635177698679986756425790660793470367701430211014935404521463064028272327087461718066248360153702822452184638637472528307321513743750207370135100859117608242832644446069547670118771373274967546833662630565315251823497465589137053762119666178567535668667038479267499567672932629110244514310992587430065501900093302392582922862659491778231041956611690418820461018063924108250521060134602236416996338161190214957374980144990486706925140099505506895077653336482716479485162013367901089631088397307202716679342433801715250066771290589451204735572519935436921622610151832435567645985355162407919499211137563213541938666106540749304312434457135345974113103347302963939190130649603686662969177311897432431255028439814172794171454688380063752693009888684055433524338749064646099831565805290386687354883255697010323166635773953995161069839860442291154783624704113590832738259894236167911520428678650571399867210451286986054583896665965618661884384936865483926265455486210474486880780846151029233236522203035656466259527104338056872174695330636435227697417728519879500274613350113930857683092483362861054927311460828750876912576363069919949894866631157046510590292784937951560581692043301677750795503471812704767730389159924934842213046457111121308541513828961618497173161947218189313018707898978390473060005809603064404482160884050563458379969460068066457741781166488518944642342116102235898034731711856625071324761658835598665658923065836447522145610194720413278175355960302510637856168920668804545761671295758759640567810177754785260179210826367657479102070087985074811149544711666715790928419450962538785178081962726094111881348405005398485980210607981638514358041185848120503804381041543863742968378005653681280828908141224162109468813984246196571394689895176927061000906367304252149205967812150735057160290279713019107380953003821455660993238247628005088747418568828667888368869581600687440758803997604410318379371258710167710976444600230033811456798211835393192804590835524999931021578388041747142976617840077699615498578078351132373560464347166932599278403073620255319685454240049666630170697356731287922963699075362298142409313108053860101804011672039758246932481540121183077129902399789028993366154918245023497038031998651733356608667761868730260363168980443431017527587224847617476890610970077711067550902840518741717846390140720483195198044024558646436880024570875003914026412101304993233251523609095530232206217116569003966661066018358940576742607569962557927856997122120059106408227793493809795047769619223815041880253725104509610406901666665387382149986183790908301259211344947077612134697328000029746933152966478982011723941988915037815867078461026946366337678175370294920934445439518794243915097888649597539896645156009034286880905215021247700443545445957247388028993161562123762805342871446758638181979006689359029931028690702545063022835663108656861398419857337616637209388129058669152072626071554729085388063028338641268489010106690115355732090875604799384336922437523377131692743608586960191340288879811206924767617684708586259829061509184132022810263750175470417088185357755859680143880343477244646445587567823442577472336541619585540382243015612821171525361745295958496693939038870753490934993366941553746417270390092508067815189875292634376520517802289482205343247721690425986508057239014015747189409798858499383315560747173690171140109400866470957548695242703353892709742657115208184222980577483920086653265946611131692282620639548108685267074133631903909594948151844222079145678255208210952168306041705741142475743662269544189552849023930575080451949192057814167354032611782384182456968112323614717548646614970723316565838110225077848136274212869492135339245804283406399621589890059832584511003941246781038152616447414365369783595918418250934232793322165794060425755466111063080190435560524687138882201469747761928320279617669121415544489033997673829944429548077480499764762113526436724587877277762613391892471539223606605144906603195870671109166585193513704657947142499243938706146611488017389520106076355748745280860979726759770015881576101732527981842704309480186564551200908321315590521976503427090541007860777229528709542777026066014469851789333662829310144718957376372324773524744629257791419891963868088772973744573106178521053284277906534993757834971233389670944144534496903274026146169516381929877752490310937361789000839992665218528982276760989134507252003229064397475908422857561596016180925665707045029670681983887424626117857255957393440418014765157965536587498597019927848198610928267363760296761420043299071767175890764504342092992076795561563601146594083680728954225447816940714817348820208218703518032464977742966691259598337030926020872625000787857244767814731061924941143392426696866392533517954120885170524030167338254477489444562935392059813876716583727719321040020611334687773438087252183512035491038963808090365346829256726911181088530220712730596329835809416483658786007001299341039512527242437660114481484299354306719202466734039659242414560163392114081656986393764569215763998454678481305464359538856113416892105558654775276907570371618198736864826331045434216768978653054425864363819121687141177006116094587011286289387952893102404415007625510546789173766890249996320034620963007257479567876690182895752935376364879445236690173750351645909409346916566853532887282375808780323298624607880133437738457784127028132279910618934993692882766251536960779176846053596022608662709300121328145150263307746572551582308582349375002319133359169494447944232591038676436204298234249254596857029579603639345468519556223698545330970415685644567557659140412911614329512019538608544131331094859845930368488544604721733194648509784335280362632489638023577420799047463868478575943750642331065930943856971720598460891463312948999854108299387031934701383074873558540849593647106045641985004569096181726407424848087182324293503022486113665023513064080653630353148697570108436361565531341642906158311748145327726136043236991067363067317211652591338458914520688916951655168316944334833649427028851972007857070879926375277394199560891605905795110896329064545642142097554407016196212490032221442168956343788531801372080827042027891426995349430633368705254607585459133934918742970534567816214476203704552657496925840487974008152759555340199912376676393552334718209259346037977685929301417578705820189024623074973935743277215471522669969761423847640631664399644115383860903167187521594408740598777865872332773110708801381074460586230592292979324706375069847084281281778970375222646756279389375399772502539849362000151767362214131710836650785005118231020624512098800919841673515239039533361900169556776973949854463367847086566814357229937686623724277344012293287464784529267906972100078537778893246552308754499381486653765930274081934004737487581341927809195161467289055169007677264567985849476532889827659035282814379625542476964374651855373899703294237935244099828748975362232001345905955426645751419204116384758484192974849158494055492011275468595283995350397919693433862581048097321798554101569856151038309506492269008162033668528502792259810133322878824675675120749730296693817699090156409231806008191633397546966143746087777411703352806615935689874088063700556015951574175365918632358878662130391821604691399304828849705795135340510829411051083000137364093151014003484343527883387591709594962614528672539818141794312999412327701316343826677587329971105966762849923484702093564396947768989235736245982245140210035305042615831672082468384812122065640415932276911393944091214154871166244479057687760108049381510464649781679398529203833758971892864949534980358257957180871980263389689657168577957442375852231400738643701509650888861333382728145258658487129906311149833444231797213905194642864038474282795444189964010854807935512479755307741480871716114421282372410866846033348405461068681034335960685377324826062415981114209849994071438831340138022645640031408345460969458316898936878723831034489423691766496983393703356320098970422121034679200343205626139140578037025316727593817239457290573832978601597752410511192463875396003898405234267172786353686550088764508191946091032763177510694558208406308611092681108450134732222954948582827455364342050760311058907093648996717492284864621032006014916922988116398844113069722578573518539988882670484853758397904255089900472872322250469225604178830521086881672617441290476974177410614054710483067562132047039109346107944432610124645022418225309804400289551251212233707765973561455500426152400163714584734339021733483996972395893433030769707500929752344327351551586333828759663760699053046637530218822454651572082680967846926793687961664403979581983418457899657099556052715350240183898522847595602309364923404725552944206810553560334110455128139813915034910111624063904675329998070433346739705776955443876777310115425236342431229661978369648347359901750269923634283470555047036441556746238984754302734594761191121285282427579321714526857316083140519288725400681601848671092743326684136552114709314984092078958461431907716399570336794780543867050882563068717338808568264987610786669036347420855546219142386871347014617717058458399765758547554043835155979078031585083343555590893446836443119368621978694708656137223695277118759575763897099857545031180976935726255410937130007190808348056285199084064696824999788170847337608163286306396369841836266853192628115113655454186083225447393248192024460153052593513870320992728956627399527917640905941720023068663147669605770199030618390123477330041718749402446616798013280716291750327549069882516306336252448986651542447815639526226202613889135374934704176414132590478670463467045806945194397364097988104806197786587725482455501595863133510137591927782443598289437176730081533670573235633864734761537684435121983850313213978539990440686527573113862398977176145155706737471454368545929386118616873896925536928950574141197594293386207469369704782730059190534442954846039473039184792616856243776123563496644934077432514289635523070703665358398354696934345532784223985231120560233254929341044233974919322937747510091624876747154579400027315242319086012767501705215178791906160188612665792467246873100340953730508074298562293366939181537144794053439245781200414319199871382743413563097928534377898922609231012973438279909290963853184227178486456023270719231995943043440613591700458496627010660868228408005874984380191629273395529520301405884808279022302387218071060472336184190790014750723961044044149528458965970784977936478909108489721182012452074792547243684130926865642853419287653380850221140654063869660435982130479112318700432967244315634942258986065493837325559602723792348172435533026582373060921896460754996426092727319003783187344886341092703695355916362586636224336421259154793006244333433965733764369874402769475497799633429936741582730964011755826011247398619554711718716215717903430361817827692560277491688244589843533443381944829771066543677811607453424018960043553090488743996703367555114144006032126274810926724759546143550342301398509501408515599900132065506235747302933318667374064737904078599177308512601165970964902617662394370000776678468939865989483426022721491306953653943272649740072043189399314756722966696077520428995934558047248050767436329048663873007002786996674729594993757975755124185611513627586529532367763533772794071895660133941517823516566167577917993831647368850024394568802665745792697501595421197410683592566261831801921677064475557421537765993900643849276909063207284845702303170501773799239067395035133980603526130888850343765155506209437032181708664032291553553786533522111298433991707187067694363715373085504106858311810135192692205974037180523018627674972112603621659439300720336700646446660275906728238909334327523089846568507535039674503344329989790348815340993898944505408675862309493362083410245826300143417165812350254336336203208290461024086375258290971141573311209323656235987098997655522025775617843202202328540055308860911728065632340554839803714581729977084737355354124142314498778594883265702032935458604108912480888164321408416756149055702730228375878253256166940656808420624366803441847336872572165087233592121287191246156465207981855397240051971518299014351641907663232148369489402341500738013273866492083025678492277317866396870745482148137270728361897647989475299360735229119998527472328896239932942694319515248669736716116375497799819228940697573997224879921681752425488522012903547153192385037070329479340206151145140383685015301221104392348911694007156859170879347574538682978993467068381900659276056546859606789795935925307752494814882722215783736512551454210582830781698022443713325207391905904237624757672232813170329544349103416132531072762385765110337415318965194382471831676064865399591734733678967668871739960845546409941232436442518441538162545904911714430911413171365395993250855745015148620993954147156108478223588379377551984167003004210451454582975045298175395373903534545183520299153041849533163459484950151547125082092636123259113187186816054703734117769400604884796173080339005229297771977273776571113308108848596367789700957653413685604823787167939131979878826736773442240282897392224097508816185760341408513939411872574242735206782134902651583827972345377654146880165766983822218098072606588467419014370318287981270398727098272988177661632708891602259805513923349623495420997590767015078287730114933999361867912313707990346793036127341310992963224176247106194229248776777803737192734019221920487850738972107336680337438669713062875536643715193013148269884262304280699530748227501017225545706509852934475703849165789804003126044495564347245676829330123875094116234674352251987416314628448438998246669932791173420280293610849932998764381087024106803036776714657975052030213271139011805499924020385643061162164826546373939588242374186220142469733186105871686747214215708309359066986240304495674829321481017099487387003065612248257087944711747904101304546504227408238189798720823856193072907009507463316648304225458658388250567473205463946370972014871224722449156690303387428462233639253059202018907016831736926661930271896439189039459468370545000902008329659215543222174748116372704972816137881717414596860723633782622052860566753103004147505529444633809316134201752228376197430977685990330046878863212039009033582261482963575671978264369713769154056102627647769966173628601150285984594310017114755686939795179707208831846497330059525503163483205551900621104349474599317306735188970442292397105085321259861424867770321078401188972113759158130657540163258359869080121523625111412417959021986139495666763028415764268733119358043831854254045484881655067542817007608561890338704409313693587063488005817029887244760051427299404373213807298279008458450440458271234823739969083815977525797930290625721337182213599722516688424789731855940111191584443982303466174155048092101981932229055223491714575879587380138369720989018900863191979381615210705965152952520443747055052504811945228090106594095819427848695620602523460289331797117939382415042786898049486799115493298887128132739573348219070641021768348369444089529618818642283648625664186160543423473254595105586451728644897729020853150740640145248390365246273274347721085883053749152086088122345461093960281959235964063611308889595777885581169225466142985820143203506136196060523900679224290500187499731322946126078229376761540499297276725970964664931748849884425137471356127749045374413642076542179503135315089462317003781296700222307490201558046416089161745930545056416812538723143433914897820366446701036587709070603894278451491530801111554228129730688024935746196495094873289830586055919013496243638398699766992246885608442990713701961857212348016896288635134171180022201424230923404630273898138626938459527973182048970377327384884835270902732527529223291951086768388877411643015457835908253126600259931540645519805242040733646025758766821551034292049599308641927882839901121080096196143698026898948091221635909404404894389061992088281813622346156659641334017098398679818190291880186766046303484667393491402317641391582142398767531798234590541074877035394843893883794428006422291973886978974441786900715806155460785839814028740916436431913176474260252657445874733337790299787472086814364218935333376351552853045080599596564889265885916891920565990622622425154077698309418503345453172535291152140154331782844391925905877158537026582800419468935492645611483095475195087239724875728854473485094545078837250844057714012847351235545491448746811182890083210610633653412410650127467752621039874497873916621130891396918443672340838702114543861096774326144606202425288789013234732809561865890490967577659801514767285763322996052621557974638334390938101952130661074333108176613509000754583667504211244067335883579884347920344778236708180639558671571309993063473863490507036123732271645920113421209471982367494367705225814855352966996380080312138420394939126229969705199087898708951857754752035908257861145801024736429596481758060000349952401660487938005734198120987703999531891698870677022591032985166772201908421120250944110007338278891807301985499832580573965986466034815755012140548375428163368475680140128861694186770742628080593218069166648956826243189054636313660105421406782865455578507479862112908510251989957019274185961530109179943536195116111944445931324330774628597142663234053880651181472994244169119208535919937829200752433680775882791062181524801189089576469157236174635970118614784465021968488252652805736912930412339293519439795656214639401660547678948919054932645995341060576286634508879756790075162439399666046411265554342566949935634999055938412714155588107403854400938326616400632707873197239500587518131746533942655385268104903019859719639437480339161985418914424248978759729513312134310764086038009020008630163123050839137378156852832196558577172779094783278089730871611847103366048369955880212353063612715885899419532917386550162372994850666483672951811680527580247601431535521055581394830010595906770817421216842772044816348536218190245023963950652666957892723990374610781050104109473650752688945227887471946641988569735374021807902078570140753291063808922999239984178376529890784075586610672115534019268877222606013490004630426830945852631099942458099709180027702552162610880569048232401263774659739054088904988530740474865545735153791322754219121445563601078352828896772821390652056654856708490197946777421066342312145922963026451524340308987889320894045552965413521184046843035652716908905334521204214871762122402670554282423575669243918142367439553010153215471404607575209845460298347783427047383567710265349019085824329807824130541858599570862143471902135828909521359230877490488667639133356587887394745666439796987930197171253329097497067830880448084223092658065792861122920406646597863388754975285177289624596841621189306106066074899556245446363599279656985323866096504772088910833592693000194667162012730082807956213709160807399057188082117772656896035672786247899481168587546616166178436044446512628207069678071104141024095071657553710880987546496842296587334894307957223784945782085081539992550772192531033042152646905468900147375391526442965372029869948556656050184707428635505046240618590815336213969549772327337565836537740701194231732164559583083686069815005827675248761850896491965954570027930375716584407768837328834748649821194342852951736786046138868926188078923142122914021970918023053139977627938745544560739911845064036178095199905258567342358944872384243262104903506882083082722386565213348889891633370539172757686078436720503616971356112403095049204774042676873880334242926247625895020524818164266930037083100522557663606272804331009229410286517517174692663511205384887212342325185813121353485082987479148331347244806136925334073708052212417945050894812307881544516065007312340912164367343709640875019242864874740381439695488622184854325414837993666570537517418852927958750912086284590845315129859163467232457877892986811050413753468380499082840400715097853796520249484473936402302441515080610774766112449722860411112441998665870400193248176910015721804789107971188856869916967785634398888202834343844479605191822982508045728654712327460590376029083548732237921127367854358164485938983954537302606939130966999712664400673901869272554876055865364063416047750872697509027875555446186582663703827487609399679084244665279848494816415436379215297669105654284496448596849951178402900393388429844819474419114049403679589417252824998619029310355789056917478366487884010092385017112922563566372456589290908761882303701687875488179906518711017336950301882763957023391169636492704163291359810345571100023575205746985709133260226195495744052379182173847371713127787876141560168471733180945450148933358256314640046421550745841448857848627142739436308379409930871189342709485578585274105256667667464059310323710202509113474705318803081303417495687184352400446034859073888081551882532885897999562942874984820117542574743967360022343086819121094313338730374922940605928661814663316572383474876682713003633152848329872285238050573029955355882367395097863380638164346079615548451810656426672912656225674814582401746755213479639671981003553882306220665044091370529639145681883709995297531047544157561493318772791345107016688138433169905242945828320051361259023045255854271341643418808112538498529507670164267944086993618358143923799582688724809080684073803729430165107666797756634528097850660049254227864195281239958259953471570270270615961958488539965638914300010310975571547110536483895904793991309749104501213392843915651407521594797537868319031334432369031417590325036603435798396958595138524781947698308753686110415369299745241123259642932127125921965421060452388705515567448505493757190211194492336864162381489467697644104830104441243898977548287205953814200672739147831596191183200024667603420940456595368414813526480347908595885932620953085251329150205806115428598877807473406286345901400622174772164916388989064706994355992944514995905122835773763388877931944610532939223426004884639177705667722108845699457059553682187197958886480906827693058722570152232800964132091518348104204401434396805733463236978340084145781385855092756397231294375106787348602056460443380551753148337622570416132927868283753566541478179891949331562772680252811823567862690803463382526252358483258694252324685125212649275464375059655124740304400997315480337022616450389670599406356056433481269638158871676424634908569961472286421614876004219039220828735607436890834270083715442868127327755997565224918536202377422286965442883539639898966052663370184391124439320209230456451605188988628717977870903322573155880045520071563826220527484640235590602919514738865194831262191646535756676278839286297519535511041560543914498539918852925703712335441078318887800300832845165991348649679533870218797146308889552265346911406806567455970599954876443908318488672213196696613706501701812199898757596427698539174576808439094623385004183642013343314949884002647986652579949284860229957812988126567438173012740783014506098910431154895245508447966145715544639048427918217701970778474329484156888132505346048931050813440143055186395605963956556338054060669108580074074614300203009770533710271505591130278546599969040001962537526039592735995741368184789567421158794664942054569234003325926759557332904319755396268686853876089098686635245043979316177421068886287858767920986312305844636163313790302456772798963969667321343800366961079974739425570037496366272501491765948099291004337661205050793802486907862426111165522613781985104134881609962385254832384889065469570633490836227228138485436273445936938446904170007727817852098738766092229726464061615905325143896038421794328800952298133903008616965039006016493673153932627143700262743349208627323307059176755698420950300694071607977551774799975722349557834500763010835220656375031051286152023081056167313202215509694089090854003571490172154803351483264589176984917796049706055192333254012947185154780977049058811050203460009389358226940454125181840553808694856141936017738197041479512434069625661025237489777141709817837902730153942114031598748688028740156824816614122130367605163410744870184477782250324309623662905937035862107376363297785584925119572511413566996599112792557360715845877991187992663268638019340479251481173353729409873498241969932387494426799372360837216884087709965774274616170807963804046037827421099794864986031104511479855094648599373296410388389048605072374767694820916943965674097500005091907995320603341038993416684017860901753144451297836911502944215783564839247158884441760182204304999882168034244237212074884268024821992334211458103059227725129006566052221341552982657152046438815904251390437725431869239622130558925399257904811188963024335676393144635161687102811550037930731174170151805030436260853336105305379781058020591698153224302313344844585383319829455407551093685547965682825122159804633188908883406179701477321719181542735010705302409789802391903296668148097995135971042048700363060279215470285848542823426454132715283685717794314563847862988870719856122519731802620515940304161036335011020826700438655019663541160502412474487363706216296659236672227952127493392302048389824228084836943545490525002203455961127949974542014604550637535245550988615152331241065221730625808572155878916629297047638330270885818367488198607159273271262903433773125847860886570639064379082388623595532965285587539152374044765447959024177623346155247877395500765622254521347855251750069235882889967308353544443916914514870872066676765247017783387076837919929656338419570585747289631838138583238958151680585472197514577196016852754392199657030914797260769817291231848745138641872385747082801583533235370721746651995243165659033053598143772793836309727828104304722311938120901003117632874281324148434508979354589955406995397739032164462947234231323334182334161637856801560272078312769545447860166704289200147954299885874741917420016686617343632674684795332872105211342739896908254870074034117112134426886898038642208465011290129095911145936816718413802424708880359305900315121590752279760453548704711917051415228038252022629797747259618072360955374176082027867324451117268927759302268183343288750725317601603999597968447929240591844649466336008886105324360687464852927497358381159004844795767475676677743689979676481071586878952011125942217154692526810568706747024256173853439401654292218600146978601266731744124236142157703863730911981071298099511378260333270301299820051411393077281205321547235211464237244710391106296319128339058345483479544426939739060064612364659318410213992404018510478521580083110493972698004076070577770703292790056774890009636501643599292990888076427907139335321498703326077511779005486532930612865397977113605805681908049693567241353253710965238509265469606096564246795547497991653455552242877949617363207294252185982827348666999029473964244973897755971615466177265773506106919246312514506043488895081272198049516865867968403676700687203397319433095852781158900102703688217509736925425423500856020365394610713351862929996589787210357775734116522646397885514101026122370591195213990151786753832329535847334139450295213323214833806288084440498529285005587100952842412329271642697923964472856300255505263748463124078494582763989982208919427292272243189699239267072315470924121628094039467201604250148629906556731981423077360918536054440486792842787472058881964294139846902786914053898838056545711450927822045337177761831940586495679168000960785997299612258380375081552955651240359894144442470894165641749817213338201447951075182740164830811010988040354096955252195134583084999154889931761284714900421763089649180461024881570682484397251371069990291767560587222766061803197741679219814585307617352574383442457677119267781717933463960228635429139344913143806976516419239799934581432191315208617875233102393458763743193171302712839879243563676949374213355910800782306388631371299021124975491606931224724294192273284545408698081056968657920145518115774903934223171114856354863614419933921598540273313200620783253348262394312637429885941158170059913172933670431004028723881430614235028532280716409531119292238878519208030799687218464106610619427953427230679337936653096953987882135566088903496475867343095697840596026458828702334540525072181066575314220441573058481471604617801313526427267936005311070934993056807933577273965279016672864571096650376847766057603125393661764724184727155470650046631194999518837708613507342583200347238900320027869935441047097072474211245436852438469555218951363538168421901248255856547914413351322977778856511604797883060311401689022310926187735847250641191469770136377994900955397593100294656018776765379113331684713535173012428711733071641741828752966511201292552503020435996255946658341611115751875633668452698192462718502238165207620818463851521988738872309460963331735427048817167245308592817114303487713169642450920578971838648570348819565841124273116217124137795873396926232836290938735788519421770030224684275441600782141815078664056136555480621602228687300838322569788784694203118804966059063643748184110578351775442456483577858958803826259590327952651318339360951979020536766912895088814603466802389804715293794215361761438042277368813145279771178153442609172382285712801693027555340354454792671435428067937874477829876808556696286371871333601564905729373998737024988841989335996198347327764072454341195101260909962704073450677928873626263387049782971323682030077236367614855990337960296536267323050936112212807398151287165718781232821213014032825323504757316180475154247420422915946006415081492336455841161327613127956886210281881430450224907210874438936799360197724147857375692359914747484575100692430526633799818736189895157027473168063703634673901740111379969762869561956453562420816364262404253580296597882488566662572062267649697582933545871570950572417585253070134656633687507690097565709003582262226641002425035893315730198924925033612716920215007353862751067623868730423928196920434462424996029044464837342248711804503936127124344784577130450724159703288920528684332281612715096439291634269114601937026771808397083006277568021004813965165878890801315558614658440826356564971518050880957527856875812377886269211487388938602374977704041172692423888215245371982622271237227539365935868367058405989285107160007436782088075394999005515360185627701145797745217011425394284396574120141623275461001585747659065012175244550067432684565205880495183672376876389713688029609043152324256544905537449853960613811967532702075000586094855614840888255873226821224830764584827846531481046005229003903495802326107509661510068254347421620781060234877382522615996950662541623142933903522621432640456467194861182975883829127544486766605914154501279356824278780916607718630782600057467209911088761887119677987481148171754392587551441882631051665406964108805409706374925116520889832135617041363938972286288492834464648872631526180023342567285669121879391476351788849303290700611562592700608534389300302428191133032939724784147435284154118975730927162750533667495544095711390543150595827687223539129087504355796367521589220420882441772195769203041777951374344943141234868787504487783999587308033013729239885398677780078576727197202448540440897934214122640123309620695806621544872396862436701865109252628112508878069691859862852129492469552572660853376202396795518013989115898208618614619545736573332352303174757897346800361410530137694769569801187042585272720561114522538480438882168636048790272588785291824746576700276022284381545296991807283558542950556185532058368160465646344983228720655957810402976022092690361459028793679952174447724437831943646457307815576720123600906042827695090737981223922334772934058552661666165202180668248324620580584647002644238132259386709489494510565209631311358063759615448415511346192012959122213039496983061915408104694233990544423585918994334834994245109739956250516934483035960971962793789856229991131356120375319087184653622540440993301045358463477365768285734816327974419323298591286472263701064504087045383826900047491162227002742994347312252695620782698378157066530594474462045086016039316568200797549674750509291317291927375995278980969653745091960528930331279038182373647354451299808190683319051930930834641283998861938226851944398826531798950088568521495891880586867655150719076290836171594485183892211900107247939029662079390267680757176439356638981715396961473662610680333705741394048849989826531490261966133141501947557037757814106016181167018094604360500432568557295974220352550476960716817954312922392558049612740484502434138795778761593961881586623555185799067287062313660156994187345057373997666889722889986486231861872698571911052468512675018360884654755485738443903665486886845885423935709693385969937628661768062056701756138712971251360151010758706189860864150375804476760507128249520521355678594439416015672277065052149050504122782512755153667131161819188621976366373333518659594946510132596505657700310405182600297297269182156386718638402518073503685110730429091360186123092358601146916074983761785998496660271031538680419324497470639567427752646871950577300461486748105211186157035611858510169247981852834412328563396730633431484758431410322728086573116996963670130268137809456719018485495292337140577824072274141558952949495841856255497151364123102546135344167081972490874460641668170519083187076987976891539353733043596602264663754811299629956188850845880599989492439368839520663747410688695505232588894527235647761745706260749260467936858382228401575946023806334886475624269571125035513345298507371027649489609068659324300549703482017888488970453979555700097065880178659875079754527696442049030197018673717768439004208716538707004442277133650278559032260052732590051388802980926175528574698675070151466734256467442978194292782539788684517875884193559379587045517041706477203602865571116764871207495393464979716870141570272249189406836884310069972123326170193055606510229775895519976672048334728514433133638691439019159516522439323316007038202244452588231371265360080715990415240196489873866725990159117166442668191514956274328035086904883079633314869187947798268424347520516697432246958019161205093332946780565037072315809412175857103196214835666724837359539056046129898815775394271622012354789281938457921177321013846553976805606129977782025630181783209907218166110021229240013416999875615766925895807992213747911645566755907424211686633538798676824319081907693629748841128538124079934107763314206522100339921272548283723217771542788040492629984868175084497390931096917451852611202371659281520718071168708786761353859453450096074635123665410706691464367828566118425072499880851402589362215826941950478075436447966959617668745440738317518620582286506312077447673657908429010675352705240264832944996748423298918019488173000513787391680146336135589688733294860939101092223876270737122065421632796290084513825592060758571168012512770020529431153429843539164977592514504798182792231534292909525628457738876799770648460580607049680475780407771050730808880878651636735160808356722998955730749250890140505528941179538177077877321565460301480882454125128683149259754061901570123840473820196105071149313882406534195760381330808586837799818592102319784772714534104870917979765879102267601298269609576045336105677593282231981534975698301440434081724951857627442950426602737490297466939675908887095027820111684452501076675259782732296209572377228866135670754388275550564088937570116195987733510446773650745560626080318864463399469987488426185903566548652799509454734626131389627802829907836303031553493332351292512507394721758714722645644668629203809731657258659487311257523856770000623073686938336589346743411303935229215774369831299892089036399746368756773142363760476462804579510423886484769096316420804388949534767682245032875100654638387203741513416765409882221983216620220033943912600399839152405338336257859466786890753127033762320658561590734727832157137943428336800317519291175580893759353295841469801126869003847251244177052812238474885839237499717231890131264031669148483878321724724593755172685720852464289572333532802109585920383327952446429549466257454235629498157564006054966232948149484120333242471265775556828179937839858314039917990175454787215239621668424254181043782991718896433522365631136591614914672664715638990680177408557478972665943740070361891582083207557708272180123637604927427374480707390114061647502155945940268851163544140060882924367542221859858927828724977949630782854508136510673863639631738080193552531731664445348436308871282837684389828581422314524891327345913478369839985274810813923155251772544353472017209144918678681664200231691946788087556245886881785322108954560035226288488822422218525385025822518759595949378924018412441118579194471754880006429952528926021060712426172183083966404720098187402270055744926045452849391409858861033855068166661324020232452873908408032670247626728480160201947185196705191973660998468263125504185903875526398255651272684568990099200779320900465857417276101493120960972477544332320922942445667241359637834687948463316038290314648360009736257758841937744827052274125771574218521757958918698573391291228000944889026480115052353484250591447077751788569023003036365233496038122348048254601178870842150704486938812847556326295204727258511930403923360626291454930374163518951860302015773292143184114874307024122957789638817533182318062446616110918759640792213408317985375375072357510062567777415737422581052337268950376369428829236515978253119082106346659655070976949086314204407039889844371594217094707136549206360372105128528714781790261637017720790818431718915445906623992065038750377717757450252350796584329995672978926199318954775393633737146668122517184067462256784948697247288988116698592745037726092195170642990450546139239792458122733030822680875571520256828560336437212779233885143643893803128698091709898769317342192404616157107216336004872678236285834125097764592811395922639809129814913036170002790543352894279111923001431343817512098566040254891563942654161442265011504823770539237616875553386623042861759253665755935496479393595880120020399230250268317274552572643314527929888644620059836200775136347970556532984367992365064864356287030898241896509073582014591317744142057431928788986080385764535131279181451475093787797465307362689923712602897534702684117921080318732472007261237293591782275669233263175812207242445222017114171574707232286821703746113567878815370910913882642839948820633414609924019670875202538684022449602715976108442307140519711000317297732436381915846092604715738180607674077263150229374313452307341573160055011640553792373405189230547737719386612697231069847997157715566251679305303452861606462021320520188765706717284675128957147125325778843300789621999546084502571881957352456589676540859526771249317041616363109681880771815845144532404624008310746806329452355506735023321426476137931314060988562070469724629529739624823414358710764451747894511137530038060464604434096391060105958647103119727583705246108143550664598048431318429882948054878071722747906763053066328775195241656635069599991673634661264604899274663792601023978115084322105855598986716894517292844886925452854934134000147011313983348644759691536493918755707081771965995996202183037693714474664403467514810164694047597274570147464836673159179904682152659926022294178239077679941019261151033832340082051047717280794513704752331229772205603462072407422707713661826036760130834103341647853531774771423355175710031004920847132981584784189278209378200390282152192310637878696965749729969076055587973726020973008959487177215019361979930953509154424113804078096234851161212100824745696512315750315950578224776691986715342778525728419245805426069328242144126329605699204789453984414323362411466606623690037821141053515112778939894349415857163925626517254722442620180788736684553524597371661868215688180518246505796320986416934567797690398272684181273050561451894542561625141207371591692736558473500176413910135293346979804647028099272145977990559603890947765992103861665679984290799538782341299230303775883687507468784579269760552589108161604972418248885275616379294005176855388146108606551528855853264624464371872965278892772043847672167773244257826356308336676093118450441634847706608363045976900328779318987211370396234328560939409604069657736365192049145890690612603193089770494733815552977881648016668968005926598925781621931609412505788128318169141745487398358750503515894253329529505041238295638880860036780954904324632502831768455682499518866351428734015466699117724450184833904677438572153356873778932742462350269419818157149694817901179931969872998672432495736528870955871393403589232731282921169799258615206972640301571504022760021321855198457642940179922611212238643522248223278724184519402402760327631894330051368368326635080923938590031630984188326129111184619848622195591148712614531103865119938215123161183626758783988423374072868912449571165300647407321204336896165712671454978069091298679391200652783562803420365328471016369088668667965475183960444141065902314795685101910497707220306806123102677212745839253832352624701623997260828280522242915770015282036180837612688326654361520679605925314997323432652090558251607948445268242735371332926076278386596445327942858778208710060522356909084796056003762762732703167030518039676857058165636244033450019504447720597361131798730514133903423735033189155800959414029847407303276768692780850667760703984602259171018728153407068721791328616318732777002916562170374476296006795302183262865059398492111928663791375535233089884644177926086055260181070369119959689604359954561939611915657273349512978610030687374437201458462118033006881096427469771191686483256692955274657878023173525362063973947048051348463344543828421021757951937522257390212514067973473211788132573627740094849176403713774677669717840105114831232582507147906736254417305102487145196259529802543972419833397402278378501522497623749164509943323837341786042302493942921792930916639251986048769275285947625874123627361503972327177822919481067516332739395392761902179503497125641579813273225059494968189934440281164765091745142196426310577520656767461732151189022659175736908054981017516235729157069990264838081686665499845193504005920174580484631376953552443234486773602333530227162674372464463546102033512524596284201477014044541794966720292438043604802955476313086722351405035473632749167194653363019903306195131764902932786999249027233469508364121483457393621512506314630290753619276059257420386133043838087503773150974167601676355470084827338176276730073649733248770762074000414820277038501169594318017627889197990123095753509702016067462497375155030969244348624524855975638483284778731881517530707438358317595636996068090056731620388560684893833740652599006840006513112472497802102722622272594651559331162320579710578444483224995695623383002006681853059278568571043456875173453934788778460994890191025157388879194865064674915055502955516446861979187537683420595984257078465078576277067490418393415331407052520853379933538177315963820688369364270009303886335426704983927752675881090139529739671148792251439493343842223045008068745296539470126156869843054363405414013963110112561888432684756234730911364611181625349778023733137157945223758310821295829358507210110100216586025905283888764006836055919583839826663912582249311633355276498862389531218954055060054098399052454627957465330788789441639874810744067145847267525599774832197989456700540329707970559142061559687167490704559888091676479818898249921655127574942948208395494446840766995515360794344356743885703076209877953257801347464878035168857971535564994185428743053768233027350933484783058831862432640018382673949428609794255074971159506684234728309862413190199803861706433498893018147474748955712189621323298373945362681689486936748366480654101902875698676870826714563960341002258780129924783843310557673173469449750552681473203644630068386207286280278146669682084595096174015190399106426931929021342425672241124157026902634376873672040304957609488371636406905224532228355008669778118257428253993365856961750156178095691845059273533637214041226446095091521064223799786250284729128499039026319539251711456931870380224298060410020370994217238749288177747000677157289810424986953216138645227168900111581099348524638977775648697685270053275023376556880743216575479394871194570828046018775211275612342215575452816203571052975752175493343902294736500933193252187784213338918760711409552030810490555462328004352494423048167241615955925163731097429641145793538121986877250895979388225818598014049586106424368598306530855901228046462398926729525422156395069141006645993702777790402602726575378564060065262477784788651502341828484566183319774359755069444613925836892084980499332524783494128047276074710516274091450273677131557834082593585284647370568535783699123245965897018917495163581006072057890197342163537258232904979207100585806076853506713417866740028128076097264155825091440336517708163652388521906837797999349531735828533439539598229654992659390500197942134425160120225361144041823766454513573492574614708652508658381058966513257233244081644723639645654076934240058351111776090223815870595400214054641595240003261695294054621268865713098460396081314003546089945709293518264831262118847636128314433756518324846150778192248895913964978925151354963813288992902385602751437308294423095922206877908545840439252812263121670420803243866170382653011033437463286082052832353428331691560022846281174067531115879861391891914379102181087825867479088967796683933709783503435175925913150346056115721642895478440278403172409733338906281733037795372154868564527279609415018681468802039639927051230907229109517391611206502280005365212266795290281343078499235092568371746870782022614483415559897997303296252106854220562790140906629186283506544436244067487436666496818527059150268244641198766502350761491234084306347458495944029396074702033106208223015682378997973271204453233700157152642281861184250981817790581059735501058990016541833419002265769512021546504626682548812110075588103537353997482098143169820469352745056185197959609683317851486059530875582798542647787381785175367653875839444425743172335745295020542810918840290395345802109514287822192742532085412206056841481076125105716624786511712058239947523668464469388505680916034971611983736470995429707597369035415245639563159831294784737683894341543764125273736117903900622396478589516196048059485406315828411493171786434470801378124940534709945985677278529449333043732701101769873000510095580832966951527357924121653779469931122860291239369115894094986254250876947818089435294814006682845175999483478954941516913469397271523220587516856394421492588838413363538370961059735495231512573714234165378619063284920222976231177494270564723531495010698281360821495530630248798906934516847221432251606330078525733772271043704768541289173201223033163828432475625791250001637431060851853146862130717365667467379502248596545409351953498634893314396792188326866818512840458697829893490728853930983052805262111768260482913587185347657430975011040426875764289749335051315611119686675465053303051898867029137022556208338211525168434406464654110749328823519582521732682564457579714055448020475194772830210972062594968608536315896346430400829579351872645606914550753785559816881506152816554722961691724650742941766120607126038946820154453481044646930008726383836462204314832667784195322505269723278200252179822195504270081529686262442100425653838941533842483205098412852257074123772575293732183145947157533278787579345516647772453271113479539216327980658291513375322271807970250380502695848559460835398345305175801185188195212657678490161337233193433096397772254189828194614338403787657620728033389968271233888136848190545354883753593583096121017045905365846211253396766247642557090969785539266847817336313967684509947565530144066336718926457292742360927604496700347113171969081171305690846024840403110199549898576573076714343460985137135168037413322100981626179786982379506492832743054990989792510755456802938264246934027315536608292541397421228327932319620073071461548859471935375046586855331370827875970233237913803549754466034389408081728788626497450151484277521828269579227442774820682308939188739119496386851449195987084705096822809879265620920621545201646586698246226171243192115067355146546339146914909954048693755861935196676849274789868445243975719943701692091762196856283886151040491976225974811389987165880049466101883924731047289283797226713585866303881436725901303744283178995747257628904366280978776220919695034795512694078582398200528527203150285736199939753210554039020517729783355679347438428855945199468211031141390957648759049625561131289796676148159992722971457309575556836022332483373199616375859711122062131440363219395161629037637616501917402179902564129561076069943614952364513837210835899949687076640748313894278376534923637379622538270568783568352377167565704638623117090209822052153308963349295383571599520116676100143184438239218624496821926307413571131114903065982709067543531110259878006069293349027749256921395531133218919712432707835311090907848858481828234408230280143299529443545629091654738056135757481227968287768680235790891653764324694616532818196724872390800664232887360221508484411425139692914515988232129637617067281159222824214247507639958178215976367318660430747203113799598696766408722442803992409118502834200476789177271526629471567524291398050488627236856102228734823542959018891345513181223818266476037874720174957487312238719377325722236089409065543910076978834975821138141057074704881090060657991281849379881609512704857988041570862750185978330299722071299139449355462786858173672368675530569001237468209131756219724325148382594444732636165936052642852654771697205385019636471737256667696253634577078746475807596889983483443010537636865133946816029161933460025667787434973538385574402129136230877554017333566866651436077016400010281442073930949420089175997348489770693873749174151764007922423178250487659613698247704570668872697337139846760470831682060361215672886969549248078613858722203830295182447244837338481912193140994507549423424404079729934586615701374999777295545458000034587165983265319883973479065302466735485849222749087945921080619891321081191232123554078020088711755322932231794196404535732722362084349949659975599905941731422597754479207153458239378115195176097801565134901726529937784819489989159144001235887843359717957602129166759503481257447617228911141391932792911378437647048407534282488491039967024327443225251933027529982343837083584748563059121794719952119734168543571689001486971419588977258090986307135911926114659697609144951926328300154150909413755483400697046400812268315079455568819669413470681418044091183839643432420588848529062549462703874253334114468692834409825528015698647227845820345894605317129651349803749183662537814842447271082805937372220598179903778574727058019381537259432951931493532360136571826013573092579720625426169613926987719491012445820359376192202742388507877565063557483757526981659920806853508496834079333174985289410901333949014219172171949343514843843539897003995063533011874872793330632006265046287962094274888297752036565291275884223808950022133192439983476073190007087397728127026306145586339780922961468536759689011204912633940607780772467445797941435271096065797616374363709432144426687135495751799357862549946539032602421993017046647719346279355934254635297802136818262591911375131245245324625756166744265779578978653864869100087503486300505603901661677922296844938299200231966096123063223662493787870632592490981224500581571135208640156646801165797684259691097259794874443358726160343245262894465345625374172271639135848382755769065979050651608005785105912131914120134683172679760159425259550545254547412091357130517491405386913238641805091351362385381642058088851971716636000111056882165382490002580517195207543517500877522897459156641375038005910356137316437150113221608178969033322022749714646401587341821183272492186162383149545483616686671903405815686991164206415878647350260223079644094278165895287287435987377030347053411589504228917463859895552616916091368489554026660651778751772527755880595465182893637708083382548393253277222200706979877796119214921003931949855097700580892467370829539547838263719313791116664669362668465969187006007785985145704318412549522333395808418602701298937308175114896311995866339765411321721519005055647211298393795576269648030855100607168949957596203173128719706949601379012142885663942567007607255904041550047565125624885306441104127366528613770512175152458275781488859459722917217874735662998829202413813560484049894764964024678924987582709702732407245151035793601932206773095249569455616307236856686827996272654831507037445167845802196347052976351990570853679016324053870107929694523459590499969649779984831155814394970050115403523412569390201730567551805962009276244804223418798781735984607312883702372855385820212040091466435081859624207485995929561918588728500614310048382839325064988029508943407985889763249904434731065414493603964155330048026671580059284521694884961359661249643338526102134899191822422866140050722019946665439206765716316012101371220917836688482917521529188231049616815839068636414504826074563117868753606030128014489545128035427030727172858817647594375329620335109860154270815490782430248211504528134073509259167754844580602974614609393946097556679554041991548105897827994983565350310332114707476768979319725086666527175226047347691941276973641827170360887048295453862598820099599966692112783911346787736784702631723921408076152729117289971550944391409261120597060137272198837170501455715738569604877043510021742826243694114462982486872381550918643977259452873174647312121782304874948332102472673632230828088163914933325201767966658766926199479455721251790396748734950092329022635295970665939986051191232398689749852144617560757791146083049504575564334102989940008406888833983073389996720797545460048326340028744101496358804062268977756290772022278322477096895074489786873453418278648218265554911233657484085697218540284675439036128465850122595876086995289144382473295097898625940576744014305542695845762786238322156353783556603130905395994040593682617332069945528761280439769116647465153933832703305799337794561427727375071268220354199744156229816447213308813797574859594174576213798539443015322657898232837767236933446863070203274571345530187360118167237398738761474558160532367765898779079026730108876474656846642586278047228316957191391709401027017611278551557704587064127550067954188450951192453242282986893537380963974144374663402690384795457068353744734670274571656598875836042489455024608982482179693232674858574145583749523241240271994917896277203064843636306152235570712155716215065497019065546734503288272065836193880895615288100320389619376513684537554631633354819841476659341907963882808025449981250218592490593533731303561565552776660146973384320561380158478886002796157783758642808712805955096648152788851152589230451938131274955014359276749342619592218588745817975871255075609647417916102504888057550465794817452049533881823094339253483485071112021837236448728089265469756062783687665536193342485752233461454376658310479611987597425229913835627147813754518422498783031382084215822679897818784748924509705699688053811327740485008355292388980250746937540892549861741537850152599948753761416017460909075035532570587688822550523837857459915521391918665939489204610643800639187752174267458243985263479052773369337516163746984816224804543279768381654784596834470446582037289684351889769065216242421893163857167220756774252797382350884731294575625310380722776039617961968153093654556973936120295950187525249607613486230060265872385928088820426852512390421187615037940629051343620082047627259597404530609067921014023262401278969482314950936697555203483264479858526714275278191914941005153722329533222739558698168221380237020142216032041748888662909761021903114744453006858314314872876372285526074693226075037450006435050958866248915586461975633132225624631657427377084760104345056136180410194170668006075878104727364115892785687623757334302395068359124992962457132437031179641193837026512095591978144029576538237349712795433721949853947094176365043102368439883963792237959054363315380763609192830319227227593939730202737882931534846831267075850171082099066846418497107011133947551078733070564443117290854780493217542766221121436728160000052648218205375549300425622837936699081194212135903718363758430448168734051071665441287541381198561882228026213018227446683974168545007444242158639666660199301395938529341627704078124016022123639509636029991620025681278709683139886492222487788293533002929245054983950504383448861826101763004895729331823141601625752680729174014064514800232322405374361841879240223483789344203273369265957052690517236032319938307115554413783779470175774573459959768572941366884175676017753870364107158740155788139822472963283839428521371504497101761187670361569610905349366107973978230902335127146726658199628173768261782681792943401398522477009173816740802860045205094146001234885656931573068632179954771068864916176497854610115977366436087419686562877812978157550979351449136268020745591149499138770109839596163980494245839195480619089304595244309750331354513495710244219302153331710224052143723496160023503152772403431804717449416068398480721187912494431651160870776227864352603075356205291613223845061432374401460387491269676534387945653624858293225711888578794698454728282835340211717631733696944896639169478098795420953868529283338159846462530574157541050926510250098867988649900904796901859314109055041640572201224092913461384928351671176202659171380472014656694090219078789938296910842663464634927019783847727096925732144150857671885471162467427829885106699261338822424749872334807378076670093556572363563907019138005994546037337093870459565243069099889661005986896709736176538488020636299967260527227133637928595569281350468539240077047718716765061645732158664204230377916169449393804007107086525043736867695693845601746973810174250645733583211896627584731922250568600987499924219795814001662769371540600881380566370436362901001171432018683709939730410535476012980351277276228680977978150753881403644549039877082957903558423458698711482828555418499911892238123411113348764668900993361669430018053424993138224342976472639442217992919452048644046246653894663857006048551343975319185795207699722076616023219274448669694335446113448213862642742412304240505151789130014079906941959018508628674283665583104913330946815054825413493227722027409171429223276419121447317807175384776565239566155908723722687520479817488818704662698803086812576340395789975133805529548584321918064109879902787186293068977824868553235924701546346716551281314873263241345624316777074981212395721770154045584036985681308932887023976902213976144037414350649495828023006473831827979523924218926852687778499488675120552513154049578561510459708955816607553355286215477005045338854724035137153398083617396621134564344905486938594869670005821305428593309662710656183397295694959476546337132827408558571713062148694609272070586966330823567757222666642044592356434537514210349708900424356340020532732444440572929988606647030648077096629531167315495267027648534478468786468078584286173586272527709858503634565877291711543575873500491397281512898512735180671248087433783380252863953570428485665040709886983846631999185452975253410446901586046249221606865823399344320983592901323699964515388916009107271516584418780727051365168001568338390752646191802981729374122870408511366158480686335814894084891931762162767008394914218699335272941678406674875425231538301815062934117003255194610008510150896946861043117957576520821352698041666011590889722318214468930649093740987439398832109156317290408947056182556501376443296791460046663208688561157514346231174580714078631690201320704397548112709569678931284272791107133684069437471934654844778374376717311419284884965396376641979734241102274455662101708953216831341991935611934656119004293681995004903847507815456098040816297082019486473163821156144618939827217084299503492406694522953226398348402401707237285619526035064362185673730264131723247301327003782260454556832109074390440831598700161289199755672481032411823343348527548848294097204499166141711027667868409078840470634695573525794455319397244355802848666951701144516273013049104191891783598862142016416019734852521307048452474632275977141716277973734818759268993042955027099465489135371555746681378122157514032832527790650365671656924146826374464043258385798965459540637841250361630801930078752495944729479922248549247898392549130531997562325496883119892720662784279339264390772817306401677716615666392244931248676948966181439167058524318584858474909565442842022876234579098576621709176810535515510836051757334850490630313300486517388021821569102227826876976113984977442505515971665634346819836516060855486935046743990211595788135093101461438680571338096509842711668430869590069658167237642784978773757746513355486532320543211573259585029348077616339032097754089052366255492161062563006030915254523626480935003483823278269840640970914074886865942053174994662698968205057982181798784933412506292166823003301908854178915556031912455994393227155566706448888082083284155709797304246706053494424300047622092180834177905060629235912582954744349427673010786426094951423697212521658796412763859833992882310712005644920755258087165889689955681927196960217431763892491934818399335621886660398293057905993422062926805175795722662616939232968377267533811416494404437028083433670213955547427776412664877331829620609865638971569112320540318358477874727315695528069225334994514841618430665257593677176348894298300687309003677276879368079376322034060522521219175780888193835554485196004440952094423642063617898079612990001824312947838109770625883737161335791648183636764832263159354136706926717779173749708922100307421351174386855963115508410316539939637954568759438798785145640605412918486749176876819031283641341357469457641803503772348498522865217293312803272180018209200943241415535110235680144967295580486124185129360785379964747813359229248399797720169271466400041373809208363717319049205126759912194723902258816634943805131503238765261335712842754759132149049778191017874028307511178165787440573564105735578426623237140369845846392703275726875400136640067441771839587143150302239003038433852731301515699841352174132114250886745655648414033306588417702252860641133702180230076717582647952395622240378317499910348626322922910599048756732539078492293046414249022145108075224730481279616938164580554414425669277624286372329627256432272489755810689583007064365242542814723483240343177028984809329479190562720181983732596157547811778025352898900353310358577425763277982876330026705076245876513567169583974289546850430293028332628712623361538635696747847825013463324884137274800354805880520872504485842743534016132343908162013019227862884545006462473645050381748832969782995997681393662833966602603644803284861266540709594635706343467589214899490706046315721398478036635887916404523923404816578769089148959733786856987491359602855880914833193820239909870311289631742772444113174410000508559372164743381241708312778153377191286890180764894948846392274918585200614714511963645568911901664880028280871370413589887957667805767254946360993816341698738418685348191692876227949063933829666134055237187256398273121371249474444418541798036122218754375903922566409563918653232450221258113086217657989444167216431753129687357613988246620548307167221758780710141532797386632160933922148323496263036670288472249735000155144777654900258375404570415040108965447125988488307841887500059147472098509868562185303445336418236742882668044616641427378101518622859543296677511115303872722665730996358492461415699126428452352251801558458754985419019962365944337257165885984834272951657506098817512654910122730774729026856094057111464633004121310153853683812262263529067655102691533455348311760277531283739327333506105988980578853635399568275627357697078251930201592018280891907804912594890843278477886883778596946014479123210944874092492208525289036404878167126779776743222889076371167208358627185146424524015058433558862079933558771137729440282101938691872331583870502227329843126167056429775559348858738573749811386692317329045178282615097877027824563706696078994855036421535724641776009179971933525348492294961051069232931993059307716290490349138024278270683568080208005274783455872932906490253453446243262222594452468051581526344786569537826214737929521525238165080506835274486784946212252224217500703019671260709403634166677807655786825543496735968390546888853956556976424538710323940356975529024776088135552971407193735741343440271213910727143253788509515041273985313213966710998150805918904421071589911422914198207975540184376920651807354987562254177411870900893044523740092896590008617879309965530143972270453564514992450820372781826970195744055477099091992602619637929013200516526352450490858089590696490563662034515427809732532019335058603042149473030457999370890813864507744719387097456946103234138980506225670238909392335531825322344163440886065680741416987185774436183730200325186402931743751408151353610636977126448049833477117127522840378533004690488271113459488480880185936583259507771194008458860089113687800727443085209867677321004348160718201466051047451379083900938689310826254377388182120463814955520809138516834210683833371415622679888349213690591267813394010409638784509675649655799620753519112541290395462233492832222788006843860134078332797274004702514060148517977418671513343691351540410505107858202720712839731589750895398858661204943183487458483745504020798563663161400586779954520394795454184082967337039252507379461585254395792504055267163437169995818977982901624420670801053459251452665917413220396352554558196922764756622752991785049667929949261312801959092789987590599876411441378868925538855833074079043184056068568346131240656875338224658825819101436139672714433671572987251709456488641482255797867585800524790118908016576832851916866778871476293704642607587326632168197444051933488246480334422813870400068443691818284512001382911113235218567706475820557037318240248983808132452013671298817154562250206242859481002041782054512486345004048007076068482691665767341195655922642985030977510646443567996179690731425498182273222794006830367922256376321298288124194939111309923657724617369199767187208116936958605825779148933677648563428373509360652465826450709814439101626558177774562731792164970255093757072695668535924346762875119630163366515950110473954550027515233115900861830775754798452067620397775391600546807817676934882211525495344090783321653952669924152174561153057520718865417075101339398202416888494416425439784390693536307396018675178346181545425107570941932902434032740872864486380830534703107385567446860995165017932270899166700292100451799936545475166380241624421688638557881053345706452004420670738254446783935462921793357852930185619634438285714914399508968016749619693228016173728513866239748564136116656754926078744020862583123158729561406678322803333578996417931460740472396399208358145355974694899379273853492144629460467280392548278743945712736202889848748429767603610464777851317978480931759591831658735442469967756613992150251169680832136716174215920663714029411986082968229828958803584607952393473495098865505985047676781169398742356019837882734485826468075835431364704518742845789694304325510856053039560927554894346275522363263500877253057969443666814296307923614358763706384838425566090085396116174669070696045706912173790014325634986259616656936047936369329043113739787802846435415694920137596216915428372389152917684392522696106823060741697350845777890394104639658840738735640591272742618097826028143706441840677450628972186139991092872690159136284035934862680193467304217716382077126482362751241199653857252969256152937537437086338217302841014233136620722193451273885748385761894585847262945596115597415342958622956207195793181123506689281406933052216130269527858214145283886848961521222154914198286345302583518654345314094660283422578661883202847541833458578267814636506964699294840669651220796667281150179864195110491172118852055593143440977196737367498485113386816910447950218426585533685812557326440506550473625895098439925048117868247225218989891210561414363913039287256927560582832043808908042246444904837015114007860812095847793516225545528827451513875016653003839103972896310130751087849098041539359991709090930839634192734676530396287549740361052315949617408527240654004682395864358884989078441258135640960823734424461820254860170610600687326891279295289137515074146156053983165887744419720927897626127421415102148820267293467098768678739740946939113490388105032003260556275155237118098680132302970500784417756766788488963555637959214164149583421140026484401676349037772883495961811747541752402629990925203477557610888966292631129061276269634772139872728199612143957225848755037633321194552749267126366033316927074064288650875594455433948141890302591879655156926616838716997783764951510100554458856794054148873964821749024551940477871875511593994873086994831005049914595669218641395311400495312286053411154961348606704625582656034858322987010914587940805279469188556128068388316670369754323954706994253520214419227900973836359239600563137165010761670479877779170333731083983230549284654084581694359586892146998342223077388006767602861760549149579662954089369783342204225642893274678038739044296600958766090924469679158635612460391739541502270655645142206860344346394522640993488974401776425894820636950034436445688180091450538222302820645489391932055436805563149672135854910701803380535829639499648523805390736640230242319992853765688847786104168578368067004537525194827644478447645419632900935921874214581628454608961596100881745719251854375316787893334986985181590720345775159695855522121685942535425677315558175579605330003644642475502130236937465212899968349566535015566578646854814426547576080808661665096335805411055606998253029892694921203531435027046728470181451713423843548097115113950549112534163777963931168077982851705547115347437641117989396858191732141303243669809360327837340117691181529258371193953713393555102940444421112624786838756526506965510847358035232745955698598244219078758230375076273311670735187465587580930877670432042594366620703419962689393369643807249849243242138115898173542461337602377387779483477174881259041538517599837898421305500148131489609141811400364293803451959140575708451380273471413198745233060105574176287083021818811871810577858629771905357674888061614808143660151275304758656718194652189750212487099385008414013585419232407934144928784925122279436085649502281017899356697756083289078004004024353719077712879621651904752584733742065673934268509891714697490136584594296345745791745932704492787821195909470266104869345889568031076027720647451886146994804552185062026990522881775076537906342123906714335260547764622728144091982507994591997684882932058349830999687490936123003366728260734482572831232460092934080673393961640656815468859992271750000507778078590003236263244194000342580094506876945901695471959101173350131540826695213953835721734770439192462473331489626131205343722030424562678385676830256603968335763579761502409042488771917637006376476366628282422043184714558837903478777814984564892491201333996683668517569679252602484086406616505986265682450594330226874482434735165614630123932142833111462962009044218089442538619544092888536386292807778397916725229610075971175531034471466617952396207625411450357756445182841758853067251642527905526843720889683990181296529084567601222087459141542934483181754940059343958676122255426584563362802243555374347311012162503082052366358763863563214492986894069140152779787767440167497569452480802634875233210341035911696491161939687093738285052134241642229031772360056248626233218067595882496381499425518259730272074896392957245763010991331553353228952552942963607789533034097829442528879204538401900968579475469641981269452941627820275836474881800301846401085546269472132719420664623636710132700543625834651734893927135538569277287748093445255092669984693378215637517513990001010874363656591397139337034163436660390930089955185947312686961721167585338382504693973726672013745612282274462738117267967173197059736092238753328996207454394953136853863502389707635586633501550757569418988178415575841869655671403639488139650910686051536482903938399451441810281475692609238113900911087627723494247982954454693895695808723373191852415708722920510971082043531621508912171695827839568861840269822963604988293716974944995712032648417797000021703195429415809601112183746061659283509246792794339953881818065282434229108537525133967494280486312319331996097219920143233613167282354034318716677650575677028842591488187417923973330614976513262297191493037989994670643702547028078159938464205638446831845827860448025701001273352383799862479545672267371012415850669378661163430193510273571438182014363539484913908030976399097490411712846398859448973530421263695296653266736130659131145548230879676637550735268611835597805957442474351181347210407338709366459975907293193333176172178938098629969616545261354602626609438098543271247933971278227892614985841426212945404033960829037580644540708713368694334877192117032328921507414379902721287735650518341765186058458690552419519174467316312739674791043509752232943548595017005253697730949507085303702888485021411044650335761182840480864882831700365844337930699122841686085367393134772388020508084807978343842770572717050909271668877152793325662294895477018349834302103643668073818573764527801977709845197185531669063990347108536261809350953695966218901364851044376723723324390522736064531942239366442347075838776316440675376800949968265723712278695264434026096410137647716521364700307122002208272719421595865169296779733905140145268850267655865845150842713829926223866579521392488225894000598465278739749652129541441310822376877885507296717948912690494358148366300838673603396160842870113996404296553514392673576835194392311966931457394622900063667155626229342001505526725661094294184164262289783583001106352358826738724987758123963094105678518896932956804437437389472056062815518353056619698074771352601441805743966993045426797392698532733609241988943679450131071821630485044210219271711395722708100842993584409436148888268322375424174572039317156146898048179789294360332405318147719144521125421994314786640718113419170867185438666405944628746183003392522118054604124738901840498145571831611810085354148578542154318299821530881324224920018593192185320513524524268398179518242954623569776846887474855745225935063337478547188752177492791667559069000378137896723051161866742707255609492502870788757043620547794304304925004568283940315457716705524568396025879837015137325706926492786614650897215141390694247306038463117409337415897498929286252700630353225606372784646551860242082307696214097220611832426362521734480659427906790313233310253257229942897630688060800728307025173423958090690396183534229428195930602744998664271871887342342190655785439215995880911701854846878933118139577386241087808497934145159249319046441395613625387922799637689605004368151989061194212020090154981027662974072292500703741859762231843964146110262077445479608337738607598264954707276172153285251606567412216295581502063342799076598393578362943595050945038820299334121783280192820346088251871176921123748457037091637819663989261999658660181989140837275921436165951346793182118618349349544533883686170968565119263807818976861467064583011406656415120895002126184000560713116671558412018095672238739432850029407785812308777706804249748938360134967041118680613021597717404542480453635976212839102880209051369035388188338778786263658172228835697844007749557096799459774184441516565382787755260538352029372741008631006898092853376002582670069179416482381298434505038331014797496638414876217579100385824105875579284726484967410953678892598903779642949343093565584611016326866965645582205976496861475359321178228864287234409338168342224192305736513822465452150524664295851576899736603492073826458962567274645396709410253723103808532569718886238756532111858772967092356498502400812818985256863451271629866261326899837262194705382854699713700157406353577062186918286802823732303438471306750109286448095794309508432029374723546806416987692776698205357861855444859316086540001134170995365977351309480389213586037234253184838513433619218247351861507046937055247136720479917738333825946550202323106500063362574764881136171635933286200893975783997945391737663390877439234101451419130044347977163196064487289488589934798350607086976888305014707112688353508076823946002846379920519070266345568247669819834757161513893834031446555900052778221812156978231573902147622328160111040507187359139202341188763780667938980846206781653924112418222542092928409802020518652994389847373860670344671659461107230376379891177647370384617098237363209276242736385528993659620108966703703916641316959733664921683801128821079592291588165010001243107535766737527485732647280647746690065121830437842520991901540347141374173867941977516150712091129183002382156120975358867914555274848282979732680024268795698832825317250172175313736990295449930525636008013702790044829988201304382061898640457953368536331554111128910007459764187979398369510311782898373054031547416165779577238356190685041836959142633977956659828620727966218284424208591220528527761140848600416320140688439571254696806353928338754101735262793409301768657304639048460893270367539741843837464107643184896280524400091078459595402657983433691449417029506499672237981510854126129287695455763339831149732163097872896845196114900727717082370021084893550929583766697322077943132500290128272037138826784826796561004816922088694926170520315224058464287127708384569881520704228712096411458961156369546897749621980941484337553425086468809867403629834791632559263326534345400022393572267442831130973529234710739318035887106047100231446412127448057836839252749735847312925204751219011598968253616143636282100365857084739541186237526785293044660471493369295857882575401815724672310905336098086503655920538308951718530164175597050795459904053363605688678096936702666697662861687304668115071505141367264363314036431507311996948596569083911724782955837410323049723087930938727606745617383805884523941548530424656567672162207822019410905250288810871503626090152424763134590966007388951588042416389709277506059213706301640778655586151456282732511888806398609551743209311687712246853402973905721058384039339420816398230814910114503585627876684303160327546054996463128744727899270970929491340160751825035672547364383411597249571740526041180948521942987562140126361738072868366897448590154688332249488665042641817957044104972245745263964717303757342356094028546509923908044438300804128890103398406011425879902285821877097768041290988794201986920202046471417288475894873272835031647037414389535378697527406716063273925276818821564359789818742858796006959976271294547681184931384621513983250013636134741103666863577662320485940898946984050327302909932273654080877515488039712568143483328762723365773333660215982388723530331485319065702226566841471028374638490137519125976518221515111813647553206817987536331931688564743223308174539649202818484638769095675931781180457504216574186870285339051931440073907791880140688224329363149906904583537970260830809442523281137108495460305000198072644317758633756244120869520407947671436056974801673575015542879437573067752333764273351263990160839522890554017263143405206569385130346622065338324805976685897505867710732447718144924030613286013527302127202580266578997446266710819827889415449795112677993703679540872213895482552286907870131960568365028350429271447668427979446178082646197169642129130453051717554264367457231720335174702992779383137955888728799154255107993298264148913503430665677352933756488906775938105024772282118718915164379394644991256489141933753057147739923759425475883488409597555141630619514897647723320332591997524798388364546770234678909349111498959112865807270371163025616326063516363078244972399528614052341728487388622022431898226441476569884355341892558936383247170287681939457133749166092145665555394618663115069498371710151169117858510249490403191408148352155857203895543876481446081730454467470468567848988408864945302925076031731415099757696827288502736991532376789922195483045574828097686683779760876824974112906079179588251073714138639238759161668526604174276774562930641621444633422873413018831063316837388615454233219838142170274803717507052175228746508128655094230679066756041989685903878023271300533361611656244390554973571105616841744549989266596171362941511627645871375687056886828244652407459638853214800880980732449471774203823183367614806950780523172897532680754861787764674091266784209515810590683191310124074251135035667336363952001183517721482083801131009297174157183062218143190430815233500282308038551119117412623216023021139805440491891173987401468735024941461880363158325978286662772039984579883521205604461461550823172163563385167946701373535870123527543996827003901204208572644949539782865888393777143049590158558386561580711545274211051826546113978357522439589500164348530842693720170912621066377874848264374079342635890835386361279375279844087117431243261719862472340235220856716759337804709739121498422814947254428347464696390484646142754749182853645416555574332325531377979719561664639840757948842672306825321829387687393473884112989497629579176796107384266141024159955334971645147359488814716783002401733595642415487615135998239864202206070249795949274244596576361875007262076696951415657894797761392677345246580961634079095059117543950893843832144762033199318437163903598772197681904798385246997812682883508650973638363786207835302338854280694721185511560205458532530468565593636300745614670421988098948455456195786097160699176079874619191726334496612991039403111146268611066015938886570595721746343786739063774629044852234783830298705051617610514329530126460596031094360692416342613489657538871359926626798792963957230210375106437060142262302653655179910975067189768365015547222316666216578827928292809626703716393088044918178700165618467563357588046515481534455766928879641713770784686955876367233429352306616642822574522507779600868413973562799187561922805642853775189895024106245765920165029695169688379215727941845844838952097280904699637203760616171451694218367777281530319652750459969978864962165184883702288345187881463525595746670421818960297076195193750408459949704658295609530999163758927567982765299847320219055266174871078257123977129483783288224727490066675345329664873235902269623332634965084831760415465756953180836728345042246805365694187024770608809120585314996126611073301668780433062527127328263798828348503175551908877718049186280147659558370422294269805260510676156508158877409265760260524037535262584749941808770088893878105265602128561844684461411190387824809455503330865344977262994988931517390575811168314326789331106336916792071094694910851428905000498969059853239936440738871805311241084505142770146919730919975417570825822653077036051231369784407307430407227808122070616992371640481686543921603003611975155280497054124196420542125601650664090868342168841925047723275167739321973224867653277800365436021628350363981583946653154697402952394035061422418233153018770220369511762515281310118184842696869842960271019811281033046494730015874236458845947152938184083139662884573267136941830652290128029632159717645446025141283126343507040427877282736064121372032895411217451990678209404948447164072806007729833809763966028541770537239794331661193978343952449584176525862952669405892649839061788700205037981198631041416388624831523845274430423008231641418844148781731834252953096575623158300129915080195600538137811817217606614025639030588502169061376090695375042560090092838080750790826032067413044836833415495774607691337052616312652316162745677028025549853532321951455191770557727839180408521171545851171475494593477382055560574603852086897766256483355716242992485333399561449752759843864728252486600116278388963626934129591927159227071880580401274289141242625161220026701663240801197959052683944811481303826483934083220072119257180530100695950207704089964603478568151540685453068852703318522508148509659432765418772326195569807292746680447557522826417173291844507441084113749668827668243315458976202944226513843970320916387757370710654185281534703605367672236522679536934171319783907911111038354855248076853346931197371638777656264233523654530989507952822510943098728936008154830281841970521835353664489008463238469716850158397456710007981224898241615502706612915728531096900639160814567841109710539246774669065716630860568590052590688563502523486054305887760211209162126452250856316177388010393680252157309613160404986632677216968813915413270800651488093760926722038239595201829534957507718188989796980831024829100147951549037020973096493630475386629304925616828308418290684780426675467088790717499276501964851287887040818241009180426987159990851704459140355797912291046065987081841090529343603525595144904145326686083481908048093742433806532148390578675640907145523559623141807516665607629925464416679319019074128261441979800951366090719697469162085694629185364139908595558371616733300140145808688198172097048060188192158991657292368317923219327351085946863604629975321709795539033879569332727433980361379013945688904691601939611390818504378411940020512095920113951281858770792096415868366234563833631991338554638768603548944976177271522319034426641393167283945657948995384674454418637559734120003263788336717124728485854938150228722321037333661245046091360027149062399818290835015523940388010132983125994853750376353079463663817817536349319583410579946375246351525659336993900398936301324644030132735897766156806207825818872148646445447291233146850568704684219850776389583414059711638342017596432634767527673626013719980108801901775605609181011500888754320422393619160143004453381590174103699926219719218960192019146614455295350732740374136041427719135009607954796657994754681701134587679178274774539622667715028331133426079933162876959134163972722138152716034379331429604821419246989042046993036778756229813493409536205795826441155336973174460209585689209689380625903872247479745673644420301226897928086494554567007086454858863946576565018739411372263035256745661878403605251135919754736186621729794148925310535800900507876413859418562208806070461569087409314794164344826347865169840314071691530415649074468078671003206557139907712118484322753793496388001455894075806989506051988396609481236856077612749400755781326529301529608422934176412849647794453246305629180922538547370760376173074754733917740219417509330738913924575542047531584071812724908550711861642630786194234801264684629098285760957627868648644651572880035731874323732574003777644443339574949656798638788572422417100732251018448787817282219437085226260093760324220387562889184836906576550347575886522151830806150449722306717226719745469003287416983346160178989407183749792351072698890377981067137652576591295841684032149603924306650838194598909642089627010129594068954800990908343266193127411486265482424984897999347143235238390030689640892828213273442283956321545914989607873138148586532917992033231999035538119347553385975006808937467942142938381943771673619369030317602394515988078475713476299022841763383432805031219944229406545405954266087818011170113449611863809071412173409044628511662478423183243788846247051008928472962407058433213397830077210600144264352895483787169708715131133786889936310494966307259467471349716191908923449094108073712205678221468386480401792904865467613111119825889507090027584985775224112096746211887087847769278052019062843320013910336359666221508814296786939073963883895990515038128914582964302621900278823949968109843543364137028687276906599950640727188306836974642950485640422325122957864125206625579420749432177736148346106456710511097098303105470692661006496190108202376718236193478142770038275097125050093415113184364431720507175744812487223695502052731779315959649783937913254666325872572648552368561884163556811968420289000935749549540339542792573653440157865911184186198558969538817492044569185557851346741341693437262671412989119921448918541864991846907440206672197097161094429195023941903801058062462817824734090629088517131713056256902801626829541923362713847866960912198499241326154463426257478287008733036772756692783527946357994784747474216697481414635267192819776044357889343889310748657051215776654911418333530973602027531555425853683068902555278618748916804782895745575785909770174673924721438872160332719508099924951217532812516836418267066226070372908399239264655676666261375066738649495996542619255557967154580775279361480437667602080014706751176498488706155002670394943480131352177596622338296726597275209931008135201188926596634454365671395117894330701248077163595114906075081313930724585354516876227600572186488406011852182654947327682242062464682111815797627664122238068700078525729300073040682564833493576577485426551362208398074511359186226664314321124653263158038557872867482449246890259963266195676723705984590091303200064972437206059569861010482012075402336281349816243349710693707540864991010974952629626402029782080862803596307097257362460747585130662058614351322369333436855569757808046334817075305962107854362913469131088868808489151921965364975215986111972858551500454926831813884166465227744754350616801204539448538407514892612005793639813289974876215827547789355817106429236366206655670132044664739576319829843613154932196966725528746446818841345423507648969389715845829328053838221172245611561460451809102488445869266103595557015881562835955885777749864513217695551261880365633746821931737823034670355072750120531127814182189867582767660335313765812648094444425493709881829418468585638617438595462224375989750530958535507930945107003015527559337607442070589392936643641258238754811766343062372040719412334766448470929261965520977521558006973049731844793847122255746753048624856632652133250054214688308954653402619449745228414772305698756313744897426831904791896856046181694752005743011003346438902826775865273531948515092003726036738196345820441878642560867396709998334409794201863129080699309419551301006405573168991552618680719345330076582151693008041214198999371650211654945459196854825828799839609452335272746777383814042937276553243255571267479163281723667681238214119384582987053445014351763060905006424840504596338104357817681598338647712159300942711138702917967414103186863874694535365811256620301414377759866276487462724238534318418762938698472739655529680561670497185419885274287879887411483480351049039549925673077018487899340810650331970543978331897208113946990165693580282854223419102456354175046766742204472319906408863227998618693421653945414579317567464525258747011371506252327416747615301304839563213937892397373747341110572087055630294440334897657183849294080656805214018936549988800679205435641757554299249741393322033034790235822808702981126876266962207756434484600704571603934871849420149150949896635300189823086209151288431446414532076765546377350087214658867605404061488928810267661838313277925086465618843390748151161884052586954231351850972284228213039521083225199354926236882081716974677540037146326926942883792928618085945241764984089081852120490785841435054684167570540932723172843475337619985220998215243216523730501972671318851890850399746930150999266969275781775366140061860458270326587854301409244224791134625811346278262558219677104681297125710914028672575455419886238978274547002039704514850871586016637587273274213422514577911971997619551967832742935810187793781425079600472208342794262318440000238492761258104757527237089814749359142219365587922357261874614626521254047007399514444381273585025013887947266799791302827841664180857558240762389533537732743955705422789963268949325362060492807696728711374464896914108830445211608110321391900911981933980857626096083447725233045991447373788921990743810886885035712579623843219233897174465632244872698930613393939933769407319027644720852546507095442877923120478456266795680341608029094841150529656241655959234274891911985895813788585354816948684473706201776920363797758691314776447744119216895557305253173991392345277833929960270474879636195762980622901722436798227866696842341722611413764349152312835143103746174962251750084477490648344334105652460592444821090333564326649108717412839351090943596924044918986832975796933846994996453553319710476410073781505573966132100940656836188163982940228099433580377726215577815703774098584859596957517121334281373239753669193186267215782469928975465757352954761409717043826347207539853358082727493875844724944717815452342208467828144772023027230281033712394880507008813746006251926028834255708353972955821350143501682777387364624734641099246787583075281798687177138189492021430046733971844022989739674418543712146758286340458980258023885569409951118998726052297755044893012339657903911597147348757553210593927772968339955241287943738729320089044284163436478168834024287637513914891377749276278222939408032846465357627712466717157499358155571309428070950655250861275570549261067828021494602576676881246076095070267464317673906220180586636026637344314214340645546025691718258957479752322125728467639273727055932094667703041040849103912212585103940792120962384082657214136075842903272293701296983519512997902205433501342100749204501864305201791874328186916852436193761227200428618703397175875351824356864558977183597864935909996017953442855937259726990300069696233960831144163043190285843317004020660522544852105328491402078643526421541326366207053216839818344235606531911676390217485451319387868476663060306547490174825071978787655994645804686745458290743425081249751527780541012280913686024422741955283835033260561078246363733154986950742556810923410907547269357510449246309190934902326691154523165358071615851346101726125069358028825619192824000690691986202364338980919285070006559486076763175778203936008474143765034937601807503673411390793658126372131942333785282045656305837588047729020680830834467921357412614048608870086573800271159947850342835171911186780459448252919458216779414503152282550186097885101447569530541188236930048076569377638700747870417390061484595270280468781166706557040473110281130283387393444057734078729460140180513859836628956780040206890340980784636771084689897909505320282006659256066354309126730159622599207430506365244952525914997283670753330618397700965444978629896996667911632967138088573319971973165040027275397707931826722861388573081815044014284673688650126729909785452383481036251904226296018486606028424120335953751417218030642380935983772587824689652061846159120576535826861473562859759370321053182553871456307860718415987209347895003638142394655160471998498058497773003635207015076870875814089593389986090605102039778579379207360424736646610557642956878447151118941202699434034873876997813829947242660026236597830382772574411596149116873332308273380967512483740883401385960147609003203847533463668886712409106687029248636620613812374848110580753324595147469983104584138885048253424119315112978865761227884435473980782896737530961837186073343641289166714017182537717975010910450520506423182285511438856343423679814944436659222834893022517548226650181055835020134548734262534858804010450143348914872562879451156655034632558721376581106080785181784664446302778965632787554417569127046976284130536438722124393730774007958364799353056972357997348682369628644284060259228867831525835705384245407472709369569204657463761764513567937029472458850757487170432025781448090762040771727091701269326134051177700593428364100646121012110193012305605530267457633835187314456390476197627888590517844304078202541150761499501202639228943722012437929962818066305215921793634505144294686870385189398591718928887011850695365640037102006547501704477365358630495894834849433593334833038810267041418278778104299453217022185624807023648881569774529563022234812326566056441544866858188377517012551120132945510128925004619774791469614782296165056547434229164829172007171589191569578758355467808148857558380188594456300408211076194757972142135130710773286002711603549005585587882663723332241371830002667662285293496484306145598988222155972461887641837515732855472943351848399475338583189126281648202619468149764026932518525752837969850346208607379016855328848927808277871985063922289366722924723982189109526065112643085040630954462967910865099831273221499369812556387070220676840415328551941074463771972168563322935444135156301287456380526018855721596089940378226159882613882089800588683687330527990135649448189436857503386641344986450817360997669297777780882734208190056755947077931577298138736349893017504074968318856361179550289829452905584535239766249873269137636536923522502672783986480698617942324886751160393227565819245667828394493801389962262562452633071100478658547082149068374261619119086001105201345672809285041424095104800241577804638741871637700976667763864691575966660457792836152762962044859900653299763780956763483216949879312665555380787265984566170171312128401886785026630455403021153061694555563372719032513448911149340144094550888693820945979682558629275348574867661627330667491997886951605057959360915610922017211155879687133035877357280913705504610764260923411810052243916837099450211635059455916588218355943265712479178838787193370082878512856378940611552866364711192976334376903810365336645775530761524792463849640423037300426143523026977328408358101261646951077234179805386235404375696320890257396967195193800655843641218070595677484315833445489098113990396797258878741381350190742483649765026493567307488035392291533857983166163899522862384408223206918511962400201412960148657569678664875183791319123320018843660968258716246794153452039386671214949716045181662274822774477469758707752217724322810671428333902221970961511096225157192616474819614736695598277292950393924249690308075517705913441847262999069854803173915806780095592284944487954262968497966128854315273654925903692734661603341312679811858534714590256006374439067188721354838434012604904048892248881472765164003815194496088169430465818659881879110238817634906358858543149615671783561893774567588924126145603553052966065855860125271766600857311707234706116835083947614984994369484949998949765127614479992821433751004444850602322760617705264333236055636291372041170524359181503817029117517109325445084690893849751296724183381984501840286219015047645894253643212632162062056937042913777867797627760947535070342761472838372294718186243458191259097570362767665376319673523999228168432179884682879276292174684250315660313932669908318276782332272262331120762301826879723163310119571016500884347531183533472795646175663340426006457634330730309448390724023026238089315653366348214277425987072340469969501411482280441425026798559320149899417878574178421463198982876104001070080147548637166453801338007246353928881182238231132846484034986859702710238245948116157853480651052165439605628004625128679346347858801478774176087763469084836233022405742099296768089841969491475986857910632908956246711847644680618658964173083823434830177204275478184627063832846705991710761926720492579005012730441313442075189916133867594649469210814808163792922474040413884084274869620349233829000628581782434623211719428341252683819211932427613186758865536069024166878478610214729512446032685438643704453885537470642647284099745507529878720896520628906734453857299020977213244325925458163558705110024501711176893899764637661458273967555861414125263500958710236730923644523120967012734512567146959790213805318198646765787556639959600458745385642682652989792736752323283779656545120703758214400747032827344757457339358467683802531054909603802166433158024818295816078941151757272830398861428853818037960097655401681545134650899571185514839639810735477887813455546895082668101154258606955762436722575214116062415785085598760999884838736026455590992033309802513880219433308205637538645235758681479900747198626142280312194684526923797616224947577228677228255022418804252272671709550725472619921558224352455901067061858237695413318024246377597271329979581336415305373308520052060132103095583605225227198860542475555661894019280763866207654071672275530947283143345032282260526181986320582929093229054095958273729699118882441042651588938533650369971029698739723640714539885054622223782898225473534183966474874636792742501231714514255404031222945519168478569436978525264891024637673645056307138984349352873705714326163700300613303132108054459564957517248191131118852564369590331956561886527688956351564145643583183250962477924699820346250109929138122138731470793671025632536601093514040434681207900143493570184660352919196650523075412670650169826048037103085547903625314492651850607578821005086558951033232145648574443636347129006539159340104976015819982949328730486560782594288477609863768640104420620680537654767924971863919200336980808931956782838555378555197383853179854886901271210697337131460763211673729117034592620503916350374072238725197867590925675546462605169711087105503414840625259057839134136227371724353007425462054882408230245550513783968202470300663263724504346581076738781639229458470135371271724890830418626666592928274729566737875752151457021613128941898716980976612595173555930758635785407958343016270952172489385244739469984781784913871884442082127152766963220727296391477698895477936771508511288952822348583029237871669168603626229510510809790112449436907786468054388456345560097409144081853604519396055797793358442753845935224388860644442295506365740663616177442457825414001930599900431730311123462137324235662621891839414299941247788765588904915662468027454007619480502981300919856405345312533417320662201436181107590590050839277154053120358697133801642226842928046170590300320163861289920204971644271282200724166126457945859219182462654855080667729848205515042421452657576781570509304833278130846851360778368220782964172761875202998458131849939606562246595652928461761437771003785483694014761276082571662731845470836609876724024305239234691043937017130787467791758577640528214058520846096291201225020703340939249262945519945720356330266570505452122283040765524244739012479522216295500763630977702649041858642308646750694025958715835829418832539055889419952179686863796575017020997049190271709262366075555349414161784888873669723283444967518006017563829141084888958825902942490885603657894233677997848314734570997359977781483217330349369662738760951790944222135265378269675931305076233146525897079288724759564942422001595965352415887890452679304104160534653225897525284266050485326930032163523285770736378670534415152368988241125832665636189721155232268769954572370552197767224568654753714793743608531479514085484908222015140663445241185712097854662538454250267624644290843756881697134395750885309249656016337285459318963842702045003605108953748870923859333291040981080153075484994689243239699287015701523223078123176309299313383240115639735572597800001876137681052943858521590901101111263789578464230397617058850083490159827440945788167326268503240553988704576570662883424540501390397728543187499174931394940257731193597153604155665800005403867826587576191340881868252734832026910215104493457417848420028845212992085617550915682957977176969891065096006288974093961233335709381269478755095415428285235716927406988520271171242781707567030056480912342160252770178212526035372004166749230426433225245110568232876829373117542530500590791750763754731669877137242419241856811250624416280213638249851036898325022059279004842583735536829177777318807433393010586913432367480973064257250522337684736408063275661169557461557686083916208483891216403320438746339984461458921792145643951180389645851336190973157216809989989957142479897816005725241390861605869834430624909991186601067052721303185027447450663838585345755765134145219705627730847871121447568161954176785800628128994437452718417777232160427892125044662351286354278830850014377094546322834239982078217306247259161841801223689384333090975837385951684263815438007717847061968725685893767055268129336974682677380172173620768202032591936076772213509810905919216346678228793468735425501980318711687768869451007107470479348349875953198208829625944319065082671075877313536890431915062629312150359144733158135605349240172343829936804238689886330738310475301160192264711976417148180336176959719574569133299418240804237913807566675188045075233318014180178264236110494333524450348122714652587510282927306893294869880594670429777694785162744047615924600434802945815557120377695525401022919205955463022432172575125558219028622893725917066445009005363420051149530912895144914088074671645361622786099206666558741341682917946814725686116214158137700790151688568434294461490216822647312645350841006951055659484757075790287913019130202253592968817727965535778252943050939092444823045122345644909175634962347173716821942241288369811293808869385529805400908007057273140364246414029547799043912606427357334024048835370615812734354477821166122270840714282251676298632077764492634076168978897492346909171701751163599991340488110454971955808635592949978308501556863412438607130463337447846735821717634147716780924559265784828927080281329304351173297724456268962534880934833270524380322325647819489348382962640271176046652459920257708332863552166990187905826009305629337144686451051634435001795243891003769167918630531678227447443740160776624585663882859696128236793569157577599919514839804956154356349264371695091763629148588767926070146502188885223660487265996040851706107492865044073431091833051800051051569085780703180253121132111279978234011335822596733513397573122277492863008114660331122645389240117791515588490620735194284297837244103191459770139086794045695260981118646033520359506613889326352136697395634773304146020369049476871856973280405368291522509678649291911027082041597943810284747425266737034124905678342464090338231201817318606312824140203739991471263964009757551058283823734316432677014961839065416817797428753059418418586052294276134083452547286677305423611265094799771760623991758979716124828242306734555365743670552198045666074631522305835386818868957564701861816526631016606243730157474385348982893346319525929315619178330966880755425528568221919925549396502993209240885137061074357894987154612973807384410200043326643711824798551145502500426143050168455136759470774864957744825667252391040663535433871364180815216351274795465197155254307497956581037344101995138085818071368910745804378628341801694515428739458436371220342096090399098369448463713845618002801992864840603857111766595895060455336985763905738747474464470727894051543022861339095231195236735235412240440830021501473383288481548308989662052595889628478552405248612368284385865648264766379888767190570651564302046562102167867944941295460608743573542659274553391846610314859567404555538172903034350913223493419577025896000177134438456221937264387593793689119206788277418071300102037636024348005652657907795560702250311701306505798814647829990760438467465451331899939501294218621603857476002554154391848815260080972497333305159785243689389281231867035607911977406750796850025223953658679667878323486619244620649437365408747044659695845828362314546675746892459788301217295627136928642239510830477847871189637849343486527860234959322371652510360089261152934775029856611122541950963363825849095640637270517569598456732391920500184104258312235880307406266350506812534962913000052848031727774330190921628639479516884478302268940136904817692124298265603820798461150066239961105123343813990544119970403727739590806633908204694064429259317005920039116737327566911807455651829091299877113766004877851867622713225804267590136997050505989289234154959038933191820668023682028190178224883699332997440733126549404491328612282491095057325340732915412567140705017881256040473462999476896822504057969375457696935925031956959198625595356796149878145482678059895023573942796146912490347897289288653115833353178023539933191873747502637838260035148487930250857866705921973684335103869088764194256323442244561045764773557725916885544032856992629854816988704403291182378868763834693514515733735077624262654514862239685831349157475748654070731585337049772928046454989157425898456674450432839403073968996298577560368388488294716853743330247538003076058450785360940174580417642016708676129741484420375729393064881286968993043562912470691913993835273892570750061363691343412800284460136708420308568417382133304465738670403381959058433975533582695383869294421726734272260124495844201818195742182267888214098515532988904697289724998638871712059739631200004444305171897087199787273740240451262571022422667619697855709781720118912123201898253141324775109042800081634276855473372405882474606631722720652486879169713275295111733613284195784068817886430078638125463581673296124961539962144395353134932574246660800671926264784630146447853138094509962546250103008035178687623200998600565275653823064975290602925258026809715519301903358444703719609929810657564272521323569648948303453590510902039544901956596336079006894523748749661009217563185419359929761436238556150364213522580951799501655639422611385181674703693421633923525154923961697657136633579371205900508465649619438314493532183783870284487169192666766746369573207394162296665988842815865405840184812956519608196543925929626489972343143981394868867722152878509958207658791485095492943580841008167291141724295626580791400900811874051875233502892513432799771014946154971536288323157740750597137798078428342270069583460917822847158037811790526890668696000226629676937795871007500175470274717472621440858683896056560361053007965341466588884388218383680419267483992279157644563392193210816774064405592888663840449651745936454108982567432426652771186017193735383813633980856486985989380117992143422161964291095224318998125498465168080700292488096021727789617898040272783896727889911790874192361425561638144318910285827597433333075783829951462036851462254153342951624546271905013015983113667807810329605920812221732128656801849878333849382468819583311392123518337095079956283669037379386148267237464058008083273114512523217800299417851091546515934452558777919804013764048211329356858485415403620028725709328644895991881750391286312275232726299464195319571374904762087993758036746168062177384751967136818103500898984888375009888232352097698874391888770014497839339058931343849515888730655083268768017620576760563394768404071785177684899767184233347837571206236277158997092570082116319673389869680844677984969122704836543520487098181187211294316351689235182059099438898645294477175920760057411288920400280368887406290996483200724801029988201439189410768049913667329416757203352592151612410023403374202531580550330296308487670307826130279336549075151448763772637912292971972574423607845991102417978930167648428747034204428783738383374080024337685464123285509112045842665021318778335341289113407488216699920457362092977270488722058895250697871979036300258513149262082966152291846673033554415921230655066471036979040863485977247958080173478020241598062107920804156631048424572577160116023503631365316353164483458624131119258284038094641980149831842690999301007301910203272286354152722508360034503064048779932818232054858923294198126268265144646920965907739302564196759261671571270318980566863263694354719530949316990214384631354651902153958197823301485213331488304470170371556877622520077506895695286865478663776187238905964905842191253310668872766439412461005161291736254449082328688251322593109860837628161452470319473300878218466940756685580392326648944660899873043864640332216809519168857675484621198061944336678749706124243054509116377099276111352432004378099077028903779084583082450942930979491084241953151984096007663969184503262602357021646312404511779938830319832519218794043889637613342193264372450320228261395584055933792254861156101314711695472275966120660847377015001093704051926558439107214095305521467240843305981403236496086445140697896018309309222359657109471530187221318196159280611980070036118591561540518911390149498194167384461267966006344149249819185078851596372962310577764086203468431151284053403695625711510604626189053840690377455166283170510403715365507600142056432206202258277847425995379183047367615992624761803573403259856620789706932396988244019581241574824216166501858760254028357525978456768436162019570092489352038297181845417770788725623089376813411424720211575943578305140340363715966560412347313597764267679989847258430600531266523441220961416935598075625408148338463937142512853552109884531290222749203929535288037809711256291049419508397572771209623120142254808073148924229766254844782632093247643010999869032973801902845644038872909072479765910052658494363566124660353901284563396263196695246137756238400124555469887047017372850409448747592494555080117700768264180120544007844638236288221642917368227337372237032482485548928917319313776766571053460561684121581742844662075314936248862614318767148978112869009700670535250461792344475025747386450327902317717255306045807496006128146510131367728845990842902937270522179207831678957612224362567859403755027446287765805253111413968446627614953789548029474054798882842134310530644079323365942233604212714888685417887194609185565222286826625744713186276184128301172983756680161047534972463019744600295340803227303492349439089978605600991066779535103829374676070777614126676685489928201645939665109181198303737574680083713362916518171726497768214682850235026944916613842790894538394452334522284068580583033566324584741915013733830702942526895197681740300052756290715361932338026789921389693154417291721365500903033166047678464758348538278356472775440122318684896145483227436339735783719527081798836300591073588562083805318826944039373459934513862816757161052916668198966185736052909667362793099758132786322640067794058332221823343253065645888140233467209481599542876918679332401909363143364317343762513583237940604230495914560916706543844531338129271753126350470149312262763218168789557250045627409914518928250038143830535393374519320112817957540894357445450685263687955548540003629118398286758178095964936262906610265006314391144484013934283408381663718515695478382999849814140314149968253858987093768439383435576178149894306191353894400577873488265228870061733165846080599010954842509101450274853351082392830472741235892885921872229000934264673249781393728234347488983881078241875493733583444432957918781060339203520712780374081223594518885603715547547516035909305086341898894925533905365449413459991170696238208975315166838515266219616735010511055090475818926197589118083708470499948323818160003627360659776791591309812031738148312047912792408469412194343161894493836481195967424096223610462710096857661170207106762429933764912556413569370882546006697782951127556337409480974770598142969410150381993925695672234918163283447279709226855954165944903227099233398329155452243457052007350034414138253805413009330248099248189057401780157355152575363753233661045659259359173673047289805565528666712198285656643521593418024902879647923645448589377948165756182325751177793857074936132134798034575994423409241053932873199984270062492087700875292897653382403846081033038297613528107020637594760994539291779704172893410009572274211391309724218627353382743340979631670173096687065791903691538399838752726945450880575558632242556839097301982075458396822226963995174404884317706050167649450857029258112525810855143883149158519847873228172069661321978025065002722136236050557095197370922477101975990211824000997899544617428417385932762969434387128031555039080961444480451621391103736651603466073537009662308891190432635345246081551740996589637452971364336341440350304655746871077076381080638048924471584859535615022549381425191486915200736315192543998094143543131872083828171238795450047489702071960065502426567224304662983384541238219486668893774527147571449001310778241598728129380385803208733026479077093050011123677411872840495534270426512905520971829589897088310489012260157488240319146700067245708291867452615448915190139880533553407295257238860504413377955455226085998445483872677164076756082461508334740807779877158599212054304780582542031034406326628324708557595338286118542170014281348003857940244961785284873350020007074432323432291734552361845458958006742623012182236354443517999315320043323648486713861887705069580155416744800171778445621777232504662673658806635849534420192360149755431616864397089270007114146707193396170470410593472047114540849945899426299970190271501672645021433936714112336181345353626692690801424962554171642280417778143838531120655180827302188575579103679009190940456629513527836962819939040074503878326189473532041669853713908943682759546159096675868696424724463300269147908256144992155982986498777206264974204379097003072493556629516401895837268199433171582566249731369597066320141134810792420166046056989949859791711121753969593269019889493217619987690202214180461329964072667014546739288701922845404223350901960212704379303691898545881788817320307517445027302368562326872971132736868756767965490114146381437343457029556230862901518712237748592551346356884143379816204074144278174519524258357361880432372201099745821513560025537381153116671248292808329290839699870980738293083804427266013348895292817402781655745390447864004329297551720637261352334621428360523860137151423442646546878429230041285401387230144829932321753525707204010171970853301929065498863153853703387822794348027689329477079405790172855744917009801916064251645680559220934259916508155991872201483533043509287384883078288097559290074152901566048106452672514334277659692779112621370678471667711572985395287297462301087997235593230941935546397302473550614236952508877003497307411440387090789809156244149676116334776022206245798016702125167040924449567353118356264551240561464177723683067528646738540168835800818374766191199724043855216896359321350126540417535474312279606820500349558603881049751373109863152967763623149170423585138144196973430760623787997364067331095623287039958562761069943711448295929559518954116790076413011087784270540902266046239710442127361247377238524345966445591802685858852249748530201257916878837452793798633621435649956909221010443031800743416964372830349589224538119078479009319021790256794808752485258713139080983717683925745450838251261541574578029892252660455994127522980398083687058989854082811438580529452401159893685845374931708647500776040924159667150057363797571962195057616993488751960666439543480055504972692778222162231019382880062068929316098403857293042195746735601007726637230402142368448535590061129265334487268092709808666759584632068162745568164638753368946840032722298247151890701881694039981102669684193297233156140706421043598080466901385704503045755989575326120616709333524303065390080602221257722662287900676446875613011607042498257835976023663965242577542728968966635380720494561230278205040577421480084073521509694528120025232813438839731036662231356070208812970904201632171206792393158305259383897187615811758556691823667106537815863806123191214923178794729841754756120620857279138534736405972084183197271699011609202101969233577586639267582530468014685091609492732996860067762188058459786644459172678511806492370863848238974180726107368337675461096623049693205655425577262532736239865198949954673391837295390484527584663313981219786233715995647218992476440512972889543414283457078387059056413987913718425263398351867091471999685529137457446192351301955928703058280267055319366810706296571771519089795508876850007914989108562889020061482330255873696134110648234163215464524966366077773374303616166329754505634737401479945631584983846020035913460727600105222442949296378760326112094468645153594898415328121872879363109158779043527536798978658123208950505386214850732263910395643806960931014625104014233121310558710868661340113299370551826065532547625603792939758040765081527710020992091235755240447922179454405315400783810889528886308201748042666462134286981866618470102116512736615717170654110078108221258531208538482255550138971561902923723713131147770292095828404675420943920667688551946848762029294913406480897500356191561245162633553568092550093797910467364098698080221036887658746246307466124326076480107056325698633452208594347632399840825548556627504328007001513571843636096141453561387489027568072508681428902828394236158212914274668533404397789276365137114943250585043003733479874873087817654040725910728817174407282075035172023145614984919359870652540302669409458566991270260433031713815440899951313659423665257012820955613591689045145040401502091142842428088345800706800126234386244640641844850142717030505823564416862505187384241681516547785632965661762329518132212579360928783306877793959407012795219462208752827495037423018660353554654127284121841206518430561387509479759749264858100812716300590158177329119147301634788803108367165028305386592156723222576941916389018984133261658743334555754783570655870153410160218870876840036413571308931201714501865899149848508126387272299318240276636601535048552163398234227977944045052387577009702033932895397351470569596825212589493614623774417984647416162255537219875348360350777960585577432529301591113108628708880529615476197330083172465698841105908459866234158255064077436244225782019973459396029948323530156266295790633417258443937804304474004614198472785799859482832057945576319824025139103726025165429406745888201034958308121339262918490143713523712471547619042916287113344384935260624674164024134437726322292426518763028683103745732946972170917276740243517924675204672015049012012519501526997216224786635751408800773903093041964906507439697453743053426879534513537173976271754017701555204107437054891672032515092034313934037788195083567365352793609430650673961393815801587175544625887927688687774382286802542629613334907013570758874382311868869043068484554474338138626235629453890202002621134977974810603317888954429439111875478009080768771316650089155044555503113951457578569709609349894938465671229722898216504556078208401309189251225039790413727894614344595757219732324472437987565737956834287008042908490462809250296424948416077315708599487370816820755505794388116587690946193478050410032625480281651510686749440150553153889293976229469274475120587684381534857630176606350948441873083173935250663534178052702429975279654791894741780834475253348766309731367617991593599628093044044068673399699946973450801010992510523518736255758747979336819708338444007808689869990825698551016599854996452860124417730142034328044472440880280462939150035869738699156552048538381623447448679030003477710997583658300720411193719601213417686213803189693738554341637199244810040707054356317177710742602402624075738080526487987650053310825813266640259169119599311726557845385843171531414460859019744537030387942594105565264004100178055736825750952567943626350280767903987934242687766358776575070419556709526054392297382000038228137936552067977838128278798304284551971505681016100101695463241328093757286143743221633863185788811837720752659862349247719075683460901078175443058498615573516583696801000744918988400624926618305404591856926086773253965088490587290463860441023591614519480379528860782010106891059696604163520944671416080290692232026860807248496614767964557895876511982635053973068944868498321161246520914557190404124491950997431087247732460467672457727284465482694250811604055000903116637277339424543381785960020404045692754448905752182529342176947541097138322006519343700072343932113061506866679051193444047401207667464333468122804205394062923516812040702421518091681644662003796390597990769500392136251316921569929823093526754538255688970286363999241961885436678496298707407662013615404686529033183332295014730157191039232026477818168253859113132650932859576381854920243259331943111420624695015913873656334858700461519742363996578059764386243551215315984941443244983699431783352763171715063268280205678705488015229458633496246905403916380767835755612252173362006317686457328270378963940672144401411844893923673399645620632674932690493798080707344704312915859676956874978267786766220528688693116153789916358915095064214975365373551109307374270640243155109038052737412547110032186198811115377379257916616566982570782562654978853914246620530561901547595258077538374152026318468408833661920867281512061613799041659842858059723738990368258611125811445701555892490864169637079518386084880514363692373436357941601993938713671290241637001565801767313279397009857495144028202715125735825772046529097649661484144352117978104357817417725951713806224679892694796712297805649045359430791082085543337409908810274454377818408830346689935982605527721091764774277439080663850865297565511167155059344549233228354272921022111695455109434648895340753076210952581254995116298820307938372450403480682354048124717806885940591274179588965466094786065552478600170193016062784459535666258052141849989366579294662289122335203570563020482675619236264632733517623489222777582321601652430551367122974690762492264694156997552787215374183452773766553135026554768248865767366655972429439164739055112969905830932802773918268492442042274796666971102287946512095829062655760547646355371959903417370219183600501411430156415312635546758107178451990149150615675741478732507505459305436348010308163171205491865332566235786494540169764687905237735301624885543975292225890574401994542415612389896101016383194590072581024101633435570570329103050993397270176472648305169904810544742960042750929197040916988976535826909539580280676407732902893462612302895538772216429484639486941350912371726049543603182073774595124483428736907181475058887658819536417934036224845987069097104323113688526814491927394195819241631142565555582580235495792120836067673929019273995858996211597472671472376814899562161995866737739411957092743198377055649086611278576437807334487016538721864522524494102358683619247157088647540290906699347605221714966468526557676328838241376456056851545533828947994029160108203253292977770212745064920655957108664764796364663712320749989095510025781129266402138117142600754135233052423845917555383214416176029667014591878822604930415249921270171074338693152469612198672299631023790102706105475261893418763906642566891761483228201661967112602767671884653722244054771903752841562269942912434243874990416959660763466535484033405770009662826965299577163014316062742336894003096717861805633175844423078759312881875228850036752290944654631820458410176995553367265127941189883939425825135934099405761827856463245745870345117560675033003052565778725056042458188896673055837286064512271566058960668185383906923478154295235398638495588011552095923577184188865445835354423051548969933376011984645957940437998918592194073354180468398604156746160565482326641419307479638289596400195395180876796795533535258348744881306027659411293536377058136623435752109051900672900726356042833297045652926778916732104557535468792785273589928685823370587198180206145888419996467742755512942209697559399685507248558368444209212318718717269707520287533592505760691203556870859163879443858089119736486528770224253413103980129586445678339424027480217684930937589410525597785746282202809413711563093131404236210069098886890438125872070666928899717878639486528709915820193974189773690884444281993255237632760657584841738020871458925248437695864295605132740286560563322819189242685157142003485122601233090989395870787670780329356135615800754997788112820415615750688412851994661627335746074056805200240045387088309254164740782658706767440285190180484706056510911310670308124140934942621463586454072363171141423121824730745587112589970685851155428830590671025797272357852432609042206707162254837543851484522660007465041720579767075046043317748959610337982245834782196877124023248092060804196190330290002914642777681055870384598847565946065669735465426994687579144257987527709600097566521450156542337011947646016851230951315716955493146096793328673511121712777448829117434048670271659393860892904149821605916717508682524613283367255779478123965430202306036267257177044131017103484664969849301908773041371594440524808946887348363763197475590589528278981878306264956886410727075585144039214797603413753300538006879520276321850010066571580615961767114742265302941344745651472235664187218866114221012941844534797835846342953502925950391310823892886154870210986732585409381505805076769968961064838795673433175676564857609304955955006789846777466832475712957507207289044663259260583119099925918636228166501382956401879426484390771435320533227887408243934432635950294284081215248702617644287351181915554837145287590469667817609530820766923091559378873567459317900603009942095180118486831183890983647725709494769443189322403419339944167516908116518991699238543293766292382026621150006260504658144404975739108336183445579684495019327036923898122134960772590895065196950216691454589476163706206492883640336459160378742544223798006055268975804157525866485402759231469409419601668421571940038169431265678928463234907225788279054078064664040019287526243327327301847944501097579209038787144006798433222355089020968679617729005533529160693777944768640492303460999169631939234981696754370969515912228314966941497628579438543078712315917232625552394100168884243535578034152714263758878040653765336342022728670452546156993198716535083352870557878808551304834237604569353394803638746701934758743616074697748346592996563508178809311588495594863931729170862308496550717773730085440595140922823988298659478664653681576140053961700118257452215074168666655214569139211057299452801991941022500439768418177326458145834691012429150359246496315259187730386494532291244517064059185131452725372939706751189600801724206214828614078055168903764983310247798301349178806711532622725118276972769487673220701221420622200008737238990017634583872445587373650252326201520745719924858952991436823362164312711949784995962472203386088102372427563035036958472600612468852169962281534231067196479234699622231573881989015303229584577121089788967117107736700180841167643540777869903131241458579361972701967946320480301738730499043050331351568406646918671437993006431659575963140562231640647629645568366541698978601752150363687304805047848323791609285636085451578816506942966547809092970639676727552197793720334289452149980602795396448803354846220530335664636567406991818822895446162403636641732564027556853486873857466662134355191611171733819414633047487664759282595355570945106934043832887719128382215356567770696898443802581972391323646238867213837080990839866722808041731171699770112197522634638491867858101696823294502323866096724331534752184284323641368313494751777194129704497103258663565544332899597709259093462894161794184134662747285424388944823984043015331301657550105436719127229119441641662927929169195217253174210593355493581960289043979978601651114937599452726727182152694593098658853400024897326120000247325009497240756849232326347069354790871539534696579918540800699732354741993380158192381809238136107975261193782639284222811533684146384968636380584318486762925005662176009876585433709554630462987907837124041043079613352242256492930426649165853130010860705653915821052834536228621947428070885919562276063463987070537453468534277448532180995203040334205479832568085102886119811869214592573459949055781020833091090506446243322685750178761211025072570460021357786032244392004761403026259360099602302226488514310410760895925459260249587803408659446504366979940776648330741365478459130428245731224719653389721304051459063954932252685975269142728780364231078929846731071079280131726102008099877583576906722487623761073010040796254580644415014291421827037688460546617738209784936829537642648727490170328855051387317060471170124171686889742149965373081106937906712850843508053039348989931285972380523376639919771743768703614219990354111858597214452969823469135779108510376910795127829976940925432015796801182754148828038763398669848950115603592146533470664610861134181189995418171069416609421334706531327097288018465770292860872146743972354036038176752987711431392457945658333392314053586978234662814762364140645731149195637315065021290013510447361782154381653814888652387686057156474996004832649253705192943433518382906801255017770024684998310913553760271347268448629778718444991261578661636662425676598387444253798929605954148921846629864671601510826956772029847413914153720991305310926763717159782555837860979045025634691835022307272605489390572803018899025355520458211139979259669750652131031993586080904275299437833397297803262227974738224957055438579916541546255656353350978843807367685859403923012480771897949015871725392039834235505504027169358531650809001673670767631129872656495788958157989208704611193693647433691984717485591906138642948152351609165249034315117158982157079770438638348532303546224025931700345669316062111477744275479265582118084681743581484301761228645849825908226971982151408140329001261696786344732871767508159988351256106324950618800868026806178827814025723683462278604737997633633968744923278921380854527225632131126071832067206972819044611089913435924266836692098213301245519255471875418523483641207236811534876907911338918390781210586208280305240127215328768365548615254004481604886137142951168644456817191804044133933616873580269386826375572632067201985489698381673649911202265880991467295089614589440616550507816626575988522310455450136356841544102220997802524690811681113136494988876085463119136273816093023539034087202868498124232571206041727521231911441459631974646576732257727950430866055121378743670741814477347207467207545323654777515076064351703749668198772907057251788050140814418910344497178293131911808866865772806275877860318220006598966018453570521096365880887385859317843247310124971610370686294260639294874006021850746449509560406550834075317554172784634812654338857141583944043385488662671737987220066300039954372036307900362605790734924491519311672294780676002741289217947253453392765132643765757046281032669567372226161994405899570023444371607624359922752201604334288696844359700542301315462032947743736394470918772748814515011945697531689629397177238877625730828012741783189926405123243681797447744678988643240732967619196298539602556307661140841349514041766728712736614564018040157228278076844930918410489197569961880511448583770560523577398611558446710150515525855466011640957941479858204693825590323312275118727584110022421187543835044787683381828256215744217832064922268537708774884904445684470327105024756355120609650545778346363282578142592544779400978761035912410449795229921032897057618151853074844818565412868768194970285891525331604259475349055485322949305411372310182111118762038337001145209162835088346559513003452130517364542931167080786213214041399280217403270651225600735198516281908393278252205554521982762797142269285426342472750541153623442450805763396065522590822925269895604879623146418091301187322633987999364353508777967182883224558213798737442557300483300221260354902591605840380399176570829856598616425685758997937291405199305875207259573220108747147652307723420192416575516995602733123702865702150573188250238361552591738244306144512089389018516835419868442209300704165594760887183873649907316865452660873433545815732962591919148349592266336125739525150780959213827891616860139299505461792559063609593850586699731219984769098852591600212872268418710706734388358500981632195002785293207717977098886203737987245372336745816875650900961337056936306316852317713882938198732367277886023792969335069323347368830706603809691542153424298755818586283749243030644956287714559270325704744427047339785063704617673896742998606213496520096881200744507024581052394224663638622591132208463370980634239503252197009286854448858965436402044770692585780778828083285630100372360918590922065690195980287701396206522713491190966717028615792640272514647346825382330628001573974571965208488434419827293691277014407579217343752467161249628972876329662314084660902176275054350849695756821082436678512152679856558781130373577340211336953441010030197326163835240775035996527095502817289537011193781128009310134219139089198545989296876417500537486714500199670269055861308627784727635413840332391614787832913145424679244138136832721456531685990400012394324922128098887763197848281181055534707981276977813142561449361870738826991537670890071637385765826103784538745388239801894442745653036804677829028694572936974220818922333550703591380711245649847462154687837698003091600495988381745476566785063574554802222433531192944040333319695094658184095562188933891725704835546737518796665964494518443499355806726270469824997399302100546621841785277838436134366071185684282045487896983114563199623544366445173627277844321957335035936369050446235659008634851676516020586852590850375661572776538863596919902888169515791329517967759498366857696604212370066266128511873648029614321044544876666071383562722814253938813896948947979666760422387948230194705775642793896337625038530151611533507489260506846019343260512877483053644256843770893274778607142109107256713347260633988353424015252287425980997060440472807914377607398163499785006332438420632373559266371791119434771953039960368318573591329500279400785118055792851053671983243181225953658929220349719157232735750579201870829366098999486496897646172895695285185098607498661690826084369687677108447715589165712069889609828116794577117525683222477018984515803491451420980880349029178219378002816935946937261426752076635214400092130230840228628273739218542716853559423351132659254162863834122863671894365263180364679032178225964567827515425850856534182620622659141125216012657895051449440323435768427149661889456443103346915015661799698452177038396332738853128599975377203492966423347037496849467967853485268890892480313526140427177339202507425254133528648229500865944933060621596983163463084826034118718353882087741273486991985027693883188576307725555908352302008138637604109341483486316133857037213943713959314794200182099786042844538968719766902044500723858891817890175699956657935668278923095890695852579175955196296136832640626861336093484118219622770223628389957060259635561998963817927830120983448683162232374276269350716275404209966099776651092622001156088055285504853093960997291389191945125817704047136494223664408169882141169211676393880775110021388021084235397852313124376510184453158024336155893916794247525887466391945820424161576267358092838045577458361749038279086204166910494260212514042774660603429775580510408768125026307829832020306923428455796332273820319533654785841992202629513492967904838021484480533527170313225754334511631345697289335071674388895446824043412066819468462995350376315585022266571687476956974404707769584735360650420139803002869494771012570721356709558706310922918671436823862289636855972045007619113643633670860682766855654011474646315160893233987938257000766044804739093661089543751097029972154123043407839279676750004279698567521150613855087744254913441406725208097899516260167773427922040508757897328654296746979731283703033851252245450829335981700428582866253880896263203302730735667405543285658662529045258011042497380851934317219150891158611815917914866553557519331749447084196242408560466495321589477311578597124840180682665422016766691173209420551278171536209783734495304896286265613663264574121840643816017499676528728781597340552681540306483289314893178388447690275335872228647779561791779237815675068210531217791365167068258655759797414822401721797595203930260324221618426438947762032240297509095409353110810419551925688266752345046635266068928352753340978637893528661829162656721849016035388930405263435353597617728430434119528001391639239655765074056368782925038576526139719234377197296708933584823515682615877289727745103208058123693939421145703071116956037477448895044082872284774376817427589400737132734782843288684601417795855503412821664468605242531886490571257414873322264789649136036358720349884676252087314751652499846264006131621903868815542994539275684458618396929326855384560862974684764348783674961346069135966167996521109528345814881514459376915761673684036168436601230229989106704008948881392502018379351028629659529962866017167037856297334163371389102342747520056848137517851051945026528080042866878743302172074024627413268622986270890119761642813435359936143201208210630970938702871329009389356860845275040637942193483633360182254808097727994104577943796839532183126399901453893976309233256666122434829020044770427430097892094663107490900306646159228447260702583927149082147517989208387902532273276419457932408794236915526115453565785621731310913370875966812036873628453664343803982095246333131642324077857834681579674353870047793938230089108955509924843700472713449737655666414438831823830390492527713081666623921097407891235982789530057771210726550022027214396976501715317065509927120600882750103575650792884116277396163662820361478293136018744604314011298170380848901398869136854950314607194617232191672024141717043085142253241884643552590292842140671487246278872531798583489117286562616224998715745747873626801923857089535113318946463068462303209928650755860159835471242168857491058899977397840150768138037785517568785653200532507352380899754329570515456971570533771236493935943444728370937470964046744927217108010371509963333654342290251080548503229230768044027031249542789995201132978098903353317686593492401464356225463471645177738600213678005814682865398253267788287745107816457694493125824542547358276031130781647116765067107101594652484897093560286534108142691206251363306871739948942440357080955029797418898612222369462844879187517300300292724795180507284563497250891446167861611245965174014722501039261877756065096182028766504961384988556261205978335324900719044513239554054332819735124083982586218141362746008517318343400342924298331920155962187308751574775771031240126089718353435204139239497480898476194252004543584864891975441256796994088084235535386583419226604538724300487425225698034861549762988893911903585525455628030561288872508284312830791761338268130879070658348296937497470912311067034974957268650515942354887156242098628369246943687910326598537248073831319113418679017080283448303045349411955274225732128409268877685846648602935193995349503518567705596122839210393999611210751002564052247890152292529493876023346210700452475062658087410073439067331323508493823058217620228189992818354947633015892030996674435715405961578408621516482591721198565065586170408924474704046646463931720640287900158773915011777697045056330215265772129006955599439963805801015652655611720431469120355551074083477236092663691503026777338791368933613673992628170612297021454792052145986114612990190099866232435361455054524473020183655184197143701689153622594653495701724828757384477589814747317569049195674199018741387706392716271204939912765993706877104092540615718119264408856325098210598989333981757754870781313861608054888730258383754312036208318332895710527578478224174466815431222222320340673544999399770542598505201084837989101924638701165395349657160041248247399220793919031811487818029628952477260978374445038684707241718118545766045701847623034731319548514801093332156277390581735219940717362482675510818527773976583083984611138096684109954635305206448218941557844067651999216835177235253347710873784452155790264622801720847022689684168002986795857115257476607070702642780975532435598445126365058389731417170528391689747335997847813337869127035904798495763415868494488272392381304356618607375686066576371344745503483543337544418339687895251328517957118362964595016432161180651870790133624128673437380591605241772841045050678574912736108752423371531986363015090622424048157906968166292985015402556769695165780254120208874093965122194753705110399998928751322104397947282870256197562438108610506574976214670077936287157415828268580237966872572731240648298248510769651101254037956058940136162387644965702089384906639572100297671337797124920715905843763694583330866430313500672764064297726903765156754753918353446079839508805631836653023900111927195501769069100858808010687371139878375736013841075618111019457248131457259640548645603254527015141927517047273051562367032895547997850787062424939491554676510982765692688111042227202603302903375586970817233469093722856075556462456576387589139234645807611572734628168923733110677710229556716604580766657652019693606903809498481487578281074243207846658522816891056223205363162609552041138951557369091477816594024172135888576245887326688583331251416714777025071266275671442136110467995627661777888650280094258026692074488540993958442646387272981772623938934037041704940161052116040337816786520197575377472211923444126347389127478972209606362442920033279608525223462312431611100440036282201802296001200743744290214036313620631377844899033853612532091766466753800233147459915884153912879419764446153814576857428937187727493486732430782560099420022125364546304037464927818782095249975064752866806539956791053656481108739799689839850899408943512271981077682421742598090227110892206537501229852195213323082158423600974725917577948004336601904575536599365189380881191240328806457560864677180645100287386860723892590211202768003194509363240313120139618815964764791113736478769583198048291057044089985446120563276798431849784471914855601256113725185853313456357610403646247412654566873557302941175039909124394328905051484080975779539545249416753423455048057755954939672239597483869009765301938282727814645826195306712110268444987698163388640700022988942108061413595985088281548390602290763746488766813154647285001023518650557212138477563279399058164259338981221180326454775557191472915853976930903087040579634108684000871058240132663105020814962268818273749736871989880110855529921641800305150225982828040163837701087677532516076058562726612286903302462469818896252750189616647577140301182535382281039756834747127866201167182082771915827834252321445914095240254234915738401017870313332508573153970487799304929454878191223710168337973474946838863092807928966439485425640350940115520228650425024955348600114340165610475940824744408103237631880048364794355617068717066989610926079135524724899610630874042652905127548105650438403413253184432366371340664149742421750488421989705035285429296833404090337242896711326139567773359585725872868196974055155341375045209303196351638793141566911931371344746941080242909385478217141151250511761448959006339722620314522026793231267236101758333378432577801037669345137500032211083794219483017160800655143886321154629592449180870403260136396002155376306357442875036213086023986572484798190959869891151296011362955941778316154660417735587941668514556689481519511181791305563531629997621144464429671661502747441341304862981381521560819196573674043196110714158855961540189766135196957192505013329789131890269086929398395976246755099387782827455067353884383520813975313193077383902609707663255201519589616550861442959774286168364543164058460938875465713999309842813172353606884695251955340726407770489166650428441254261459226535050103502204770528121629115408135192204798205352394481326325699046802352202751173224241216918929758669716787440421770331320628835958780383921415049511857225470482217806200230418096240580221198410486746078631294276436336029969322107236226251370458594337070874692582235531219254117936919213164090701591160095483828217815437492592910111047999769590680546827845795877486596524001123426253301505016961360503909711235458289509606438598419467276667769418994223100305128483395110790563988372156755336314168959671330369464839503887966972293312721084252312196722651055254179226055550050286520446828912600368199651881360357308993894222109737466785959052814351894010112891624462651865830013307477358769631803365017625614932493092245012299522579896592274312679679405996778239722987367916042553860139185532972388960089869915432805568555674889189933133012677623025105327859474885919570300397651923865837903243501475603237578441186740371153883176888856118572744133001427545556022259670535728671921659417758623231264808034873529700869972151505426780201182947757895200032429673772560389724987618131987043566111780791523084814910773507149808600243293986201830423147348026947429017005929930429480165985626249124907600516933222502712840424647518219102572507150319381505419599318780860740664663035484878391216700762886813594723399763384915811561521202579459665101634152317316808638778530354894364533441593294539285916205767912697670193558434433810013505753871217995905710133780254047551520072392075724678175610508389485588957539340371281145395396094341140467705624619720507826042496955394794398987210267389292083790187418327957836901515285217810976067307435275138168431417479893095350099686090629660205013253225521375849260531022677862300800343102976206215587286222529289462081029694936511957695608941917498436072430052720214822168846379284892356814487245706153713122822775189932471960011447656923120413298996090241863360245170484002761870271249151093167579696735444860874039735209481958335171213629044644694980645969936052216615288039790450142311625516304265246720831571426196879764129257541723640886703965632604018150551668662558209383716479494626337917028314097952877116907339454792489257103581840053022750828397191857715609273569044619641144447278375096807373437033317346117907625141342470493979514429558663338925964418288648922594105980284303597481059442268932212221959304187187283347653448442483651121859811491447952953047917152729651468989144267026167008396271688001390784744149607605502048654138379079773627410445518413949817807594295918934229747651492329275827526556626800462883243529831788883552670723713944217973025486036603682481765453179499438649879455768209251382936585894773430162579174578905927290248847612498115512738557387291936535705068052343988097755084336206732447176898092811495212497141622397920984152947884871490826657561940177542494548759010373435848902716509086689609515110864110182063573943198548987660527230502416493187727268618895365921283495127685503079380118727821058206999313633237817994270972193683499780319879916518654413636655841403164170867147887257271715580792825375755580559797841243484504837825192036714661866783101007659470001574251067145839745476841965496537081020752948602887649138217981093495407888300557390511510449295821819273239661829947307186007336581762432918958242127951674781796125824571307966063293631631457977542410998794455705936316652565142352369531851223914815330126655572377904222349766056749120837814583007181440493367170972030304239763534605103362598404463656503155681666095235479223464353061359707811797973581352310143895134100284250733654503795507165986544524669067126644877734597875746176626662086268227488031704879662911910906436310495152572333394888912277338716511213362153598205048053952652213721149158465363944858110487242186129677640949373050708635356321714181428333142819451674328949699098222698855772600765609343251456220317672716998427740249130533415983899885842662685999575890052977800524693135601878434348048535458058878113963894797271144195188176828159609441020267706883580973425686458870751063771929128385412885173404066640803714303621080369785262129083761886836745127324921308200875670036774566223164508622118175609188919378013903523522975464552852193894622446419989771615323393591571504070492664469022409548086315832565967406071559005436321616178457195604959599984980151102124352907221909517085797274625687035268918650252557065832826507616642808322313849471733413808390104708995607483097983404831838830212441355271946623711030072509810428608149144382899958612112536622860998819382394225572754258285167162527819508994173792835325159799789126231610663285669271062620242187853603633530858406633626965680479705963539278219585285606525962348488645730015215879544782490512458534347861706041064557425483527533366127076609319205043627745044990496994631128882854593784483125324751611935971156490970156136222972773816129210725464370963857996460321836433846606545644273224589138553095223032183094198630774303887487556497307397639679156118169566760133420012210720576552294749301602572753992301392791732378994705557333484271122024221898805037794580435356812046079329540327412061588804380856038439343080721035300029091894287310174698289420784047984479320282787512535411304897900904918401796415563804957082533120224234996509052713682752478834997234713009997430384625311313150477264990649653401869200790795312385970167560092803107043657914986151233430983633935042727655922958315800899328298909138194441764891170010996041069392468798673714432013462362594325328484311622946625966458486783085789129905534829598808753193417203566599527344677326973611793876324954518688341377691486393358027189317779508851929470325786652857170352687554986097613387197243720057142780877682431859720328389553394013518902706269654206321658136440805968445899016335213258427049353173568950719334321979639726538006569490857566123166767200878842931866487098914230540014855544593398677916732998831122010052479271612046547275796837447195731557866621316875195447872608308994034337905454085348133314018971538222893133956658864712472522926885206154985970580563766669548167503751397948644538608297941618193498210134807975650296846142171565276463679053346642773153475331467954919287055646147463063062247671883213664404414972476640214438482389705170533606523550111554801676360435312442416030608435743744722656818436436704948929235057755057331121348497330610044566335298126927406935438014129787663524948615240778279068643847722219709469058346506406620951915008025362103243680242211827709437979851836078184000372474336250378783466526561296917073582598885718224960101667049398974380843621435926379848080871118151464958392978010898698036006462518609342036598910864258865545623122289478419677415188089874281795332769419317552031609763476849567903190724577784936768645178801831091066029994246376186641696432626262897561601164113667191147094177852113367854653985866274129962621114759051334505230168710765952784054691307875433770145932703086176180648023977768826993374422755098381900760199402916816795464907572719882561193293588224413170958900913501749725462743586465512977122458415794954083866274131488752475660041119131896408384219405723002823560818709633396668140208394164097536077957432767636771622648669568930223428665664924309244281971902232921050859675861808761139885893205786036670673795740915889444935672136621984655989860320116007436945330253113245638010482953446880044925203552963711885978990374879464598375226901390899332658000385747165496437054834456705623133609571689729523556625454989039243266865542080361005396367927699819949438113892218716911440296557120664916779259352446835035135086396333947171874450885390093049514535861597400011686587748829979949442625332423771356902697298198962092143030117260144006564149998225051377032845982222495801916882747305125293969589699654754586585485223904563499224578155394173552042339807999620120527461660012871278735045986063655974273397855868505681828788021574987905469504543021231371176810894031564337099711933310579091759966555616637424670941493165507690432622612033147986081405239431765382993978465224501218182793179227596066497187663463326193621098774963604933563390673789855448429423048530915948441039050042411836705342783917049214326540128343575523075460831871181875940928812202220768254083095939021903552557701349334861168299934315681083362567881206337230847706448839926517325836812377795914546378946458851638206704156792463468202317842741283620000435286531182328685426605103991627186307009623931733114502307895884060213580581129458889308455333528118278376477892913379104108183556417272476756716004593396400036058040634444840942413678595308081873044522207831912395095015963075191142783743232449947200545391657923582521203384629015241955800810819698105243327113199768327485879871992112434984401481512123064041134665666547600659806706337176689445261950514095709760694899220548707091021215443293402908544051368471048050621008579775794939641807540046581296616495340592410809219069444079413690652940639725304927051404735249946899928093173117200526585676940685637260273479234010401719543937187464342947747724761555666813059510596532692424311764160312747282145883500371487692075073669453420555067623837307688650699558032278058183269347427779844286396413093273333570591301087074589100904139471978015097899644059542953695627050947314638868620222497766078652221770546611701921063361778201792944423704616366313197954244879966305206747616849105533250292160753093962374397852617032993817043740832264191954024923588524649867731122509024046452797007668314846700489595287448175065671459970623877379584055058909365033478957872169450922740341664921846014085672165053301370874757033027771013243492066093414833030008799491205076742370114489083586119909356663646064000893173038108595093088449108191467596766097585287829515385949267064345430045918036607489740369593605608868800672954825519190665921151654046857559123096980084435045006137123029692164446172812627221556567357669736534150868193696415021057380209709259665191198969393693426689749855902234689589160581899742190589340829537591511595122288929508868664993397326311065603227391257466674006154101721747152436871732968999579748206035612426453231230152437303133831528026534515273229339394187277540640485441101616120265097002380254479023762059827427861497797114746784455789190654651258442387661642399445291752310470654303735940668227112111341280715086987840057211088294441127776787929087464857605284968475878382159540178276296523021441588913572255919038606058188922595083915724496957726084620111492583266862811439740676407561063607737989008461706842637575021236866933898434785998418760262619387909440634926040799887259260727943540948729033508459714423211055585306387379306150125066786485173301135584156405770473316114677804617097254764040333953494982907563339546011669431440985539644071679965153404720358007125750417418619716370955030030819128566222374104645881084796122949708068688271951923883286151718588411587972627286666801642760542287474519257292332275577517753839527272707610430937514160305104878444995942068621032396638729422827831440361305150293172888365860939881921437755022687115984786334106111515511833813418817289246457062585884231425010652730089258592755359111664993984681267088041442034495055732940462839545381970006086741892953109355941825500711061920585422653860215431679723027451291687175356079799351500091459948541028343054398803010677173727994034665185566177709364151066022620284153350039752475513846229521318301577057020747135052042825650760339613613656346572763945240983663001813299268283865051197401377159028951817756413250391058464429398942821805899552722646009049893323822276434519927352090691276837370042636046134668322646951591192815818936085556412929782502503116705011482274891736333015947426837881759484689374228757914700087563340321814450767863822690516494472472813232820275390247664428631431735474637376519073202856066520300061586312455577820910928861153839323549787901019202195628106813039894663883213960418708724067018768630824111931881218803629567691685783408884884502078411064614438804775769819239120925417830879928923926733830232472978032135478169043522588778252677270610873197439599691182122078702727402773731580265902613949949701566586569691600401992631415050065597348789139931892373830174251370907675275902342621515761144797659719830105901121025682194060807483192796307542895997612300993591754703258267722789654065731106187862487451424968806889351544775417167982852407298813927183333201073889741000975761245464437990516735696171724608557974273022518134817838836564684999686326473161817659673476110838879822709176326447876872273736874697776805816662701413529802562824809997388341888586132750853618982196838917652519974752484094660637854970072416963347529959813764133125862944554899639171080230437900417384450266063186118341372533034314132629217153467333537706564393399158008811205977167680961633022342404391862066365086989525870759387001834610768588402308181103057808006381666580226159632431386701179920409908464704688603373805027893773141837692500644816734466121960181112053164911875227716646641976797525740400977901839931997885434537026209521686546208404749048903413469246582744253297142395416318617154524192313935548479406787783371453522911407593556775581639533510919882083999242666989566723062835237157527824563538221640908623349114859250899675842392673138148015500224808905218257276625523156765865338982960621063038923324744847961979277045854831447383989526873659466557895932197651007592587583757195569812969513470447369591476248786610645627762399730893527813355705627940594128132122072666690229403505040413710280477281922050656508897948817094580224558024907779309124314071325197413777058274876205407642389033185520048326863339828376068890304070441261224494632156053621396541327985781460284047590875244739160902639205777651752146197936664437351349283793891306463902400751104564534764821972874287572555023931214983689188855221040044660022342400654498285958826714686369837384205654309098649585330911139047540235207402048391380758212707314432806981628627325393047383589812895464309370755908647831541627733390644300522778890653884912716579733874150665118975390989405886499038636847343648935096443306287297503808048556051221163809472345898512474703963927895170027781824363095606559092806275619501407450094476108139545353298992513769544505583162144274647080746218573327270777275391392623775053050701243324887105127847917024095000908143059074240449033221560139191609298486693404676962366050512139365384375133806401484614431015338994080196045727332824782236783215395245479912119047448975217536604483830867019627114460641391624916462657875824700254036963225546218459321047102458787653842209143033198596214949181622589556421087335201493240360759208535691280323078517010270232382850950661534378659227770531851776992808339169763375225902959391547120702878421393441746487646192084438527507023819901127824751846671853649670214522650723358891617335217402459389054184415527168457729033458322255894377578698818544448831206108876940344059613518983162847495929551964551193848335239249376962521558804761144107055119764536688996133967003537949387383891081633640773064614817324304357999030990410051974414807671963864753156940118178243390899030323895426016764330231754491075144393902581957541673985111613747253963954880594982317556176919804216442823400674667797386682787640096483923495997060219209511907720182757880816146703791186592434178375200839680242041306486879729511439591816492508539210046140606943804233059407260431766268539086835660685107826918404472779863919664762118992625841247034029613700841998293725035769779118268690538925228499537175297437910544495988614422167868238634444481338853585927118130884532314156444659778816245631829382272857865356491453180136904467725757134540258657986966735628582693666356325009981614548093834015024828716449838350631872579568624074100778777496997326849079144367860581516073066651760317304112876704512194787719282887031959313513153713991821262012294942559141123163847993457841497588809321627378778981260765793460313899382652874619646654325661857883122692984077715964242897700554163469863256137988096061280593281523727182437997014292838079483623868440656374717824123963419913272423741890944288745700476853634399287407542359418608612393978761767717711672961987018477839813730382134089019294401195590581480758303252160997881046089935804582574503018586455201121009802754208143654558267649345481137621276941183101268641231365284753006430541853156001420387385528478597878677772118864954112146983650736826160046529066381218319706201401349417151223996960558638172504784556536453744431699984473528366921154089874452170629632419777531857455808198937332085121691846377280555491062503164908466953758345384281097218224345929691088344423889952938797202853535224547390178667500101349511017477408410403750769357291486658201785440138697725587782123526929433047326594406366997076958787625125235297668293043130491888411954131546561580886292800102464481616305123584477337343515626346061195443778642839616573388469468737318410878631123101635267737727949155827653978264889033574313308052758824989604078551764357601065077452853851808698476182324375163335676365326869162962567216527361848570949837839483204040167938157282562353504064446219157395493085215937024513525583865861455354679497812926060276018032756262255292763476851226946371581356390212624785437765752734237761171030148863729160424905329364742127477290183962626864625544384227194050609174699142079235910269413289625192101589001532749509359280030809647350814495436529043342472943538397831995269513764008506065353281733040068151439551452309496597215922117589675961510255886872254191260894135862294576453459432435359574498862908645384976148201666747024897888812378838829217149893052981229942382020857642975996649273875452327349216236328064529032364997380288005284371072567218774330155557638343627613430714307880801033790624045796887417997037504869010862645418109831478164514105818698648814983719299074415741185492970998845547182098786259903575029805346328334033883562652342147505270850676700662863315449875784303356689613955983016409410373901825679432087085683793414186178636928910991465595198014057306658494286389567738767953727060221993693483796251277676723815441793967885212230035092048393574505769095857700244861744359010342252844837775703190983837461225457657517524959714567889577671161641945315726301064202751654908693017156467187995847906563548718206974992722361327170951316765219590835109618887319290454673363777248844550567548769189262451513553965184005293394706271671018193988788386587771366209108518285295858238875173676789189212143735898053650678641524849365925736131590007158314591119699314020099231518668712778557202983976256563602786836711415204771486780427190859668621534060023548372764222708941348498184055595198380271554406506858616941234640233872134385746207883551206244866378094671106931437013559668728863098453102171508436111033256633535735229484092890063226822036895273242836201147247430304213675474673595498947450086802785608655882586754550277347176031668878119557249233757834928391185601719666128423608203231097596557107353264540079908225771579143805626474035116877032724274184794467062127761433922643592300738666924071228697706656120575887743090995101037859147673130049597848240785636974120282217569336728041311727491230393140391575633498571948520888408119900825561316357578512741818539409278349275983580702050121687138316254250379986617489846582468689000724366502334885335905731895228737533809233849187696643481564410040532488628679865386672108742272346947104689396986321406508618443517509549490455632050379610405974453439293210336683027205727314179938259520269264657895082865011889796270424078740766617421237998543663789294790766096561593877963358373182758022833791991624332422096548487432101876934940108882648714304886973449399598659898455218898899366194403129080850334161632934673428828633966221108328465631317649378650526089406226582947303106111292749708404173048212970275934978900883446576747678441654388923497977961214523859143294955951968648998300687320255024456823553961211199804868342496910463907508791998909802889546165034446787514180820046002417473147883520564170192905853801872023715553254360055696542897650225489990666051827830452424428476733007403421786592405717960108191549488833355732829629844239652468800610050804313265630722134132301005544782257942178821673432400831387384080850686766048870405064580689243858550523512132528245271144366239873327603083220873744543708578297875331657557566559449643423123678521339816549424070089359497186914912021816927242170432081382194381128313808396562976888417196043826243744390389474852192294227095894133034812583508469863654361883734818931458829400886672799059832984357388147321711819922534077155779441144143312394020696107104659165722233656478796943642141846816491423571861587077739756762988182294137777753547898157085928758751675201768327574889014251918627192186695329530787535180121729612345080572365655717966973647241507204390099901098892975377178051884686433988321471363455763840859440263324872535729449627101492582738405582002550174684085581542368003894609486526335135512712249134078728158498343552643038621749472567058234924303726468242628629154418665988191860600414236979519050250720635022583422919693629466664108931571046975974886885861101436555668749392331108185744166706271933928638644481569917147580441656589758240700228420050875817518415957464535762819822297106237804358770574108097115890649358747028926351992280745353116217005545757720007595602063472714533481427010271996795220231779344880999640156159960481657491322534383279129250357416068035430902664185981787288035403307464158910742458562452692000585818997790155102158097720766478690338666924578665637919539480749957672064098860565631038740084327416148352318342950789679619178650749390146738608377071168025128090348006583254377551106673341779472148462521823429643168427713080248335122555630978465374003043140677806903467022875389207878399301064407689784729513494015032764881763434703351282623241848834162160244233778680502274567626114539450555271500841682874164974105890094888754655729252284462164844159710152790575809788826888096011463519097226880229885132148058931668458476824232485244612756630137543608599040151571421684189113243245777623204041916716521811873078684232967562950625117260838144468472385919444568166235790979615637398615572288923839952823151692140229112266574176956120246962205124942725740847045761423111764673639412656620067366306922219229572518651144171323992760596898584083866437352869444538062164087757353749030381604974374825267052145554388385547907661431703346310890858119705372723913072847500900154071233286198932668358487279370897931693071807346542229037525095479845025394492285955271457029305610666668379657011971924098740231307743543387021138812441905869829774547374998199990580065506647050846806652945458148389876620856109271884109715571209382840908481878647792900012189025951153173472892726690846602945747162376834412912323178887613409219876524889766155913070102906618296697566134822344475232683553936950697565289464502364927309311543761010837258959340185055580255859388908161714100224516454473401999144806196605339210102391917114627327405456556783512547405290552010182423488610972549321174879512554346969860973658191982646834695937600054145547036047529777763519444852653688751455206640715873807883883349274050138830273011957330321274009818974242659240430080115557713707930055335857571418321088498289791054240943647311131260121968691245352742190240845348356463529567105064945080407257262801885710740122503642245706080200442024815708739372255078614803050279632552070442702241780477975373447986602964157555893949180057014454542154411295804798756287092992145540579977045208777696027831292360457514865392931412965639067004637817874764207711794585840867489296179852315694161384875082751928003563832588318650981888028812449459166574100262816286413894513470711887203456207229576666493057051982510772026003636772199784420999551716847629046455854119004608219301158441663806268464976879608042850839030904859588072820813228395977822816920490518857285433586140111695273949650390735472662343619620395712909254112564285992184669424130774550033389700524284380973979569664002908053279964946356233158728781837185196322347555846873121674973354085464623395890196543255793958373160325835222126505443246005339550055335925552905633008311176088437132216436477566267819824945637206686404737545203766267929838571764686842592615351280125292776000872637491713352682005192504701059602523704594068478411477447924847622986097178059642937732120906332480010662514621227265171304755640319558084001904448357509182935594027401957032668922872072983009045021214811484656444251793843168012784284897787870391744636604801283965761819712691603006814192129203224608045272921897000306319828129876747258567759733757061072101879591965197139080965391060749762902405812030146139991333406892478184100172110231803730662999070771604330026762239379265398708598441237207443891114527461264708097868927639972963236212175872313886586234374873556528123568200145156272917099257045484281093264466920077988504728636644395951226119114709671476851225733108803783279954743810103397789054607758446326437773464598844398023203045320461854220429841570910369189848832990490032120531690057989986526014266070255984121975119085152500904934119196240241473377553824475835552579178765168811539151680173882701109475002067448272938789410329777438220796467101060492207080273524312688685086352252934736033234195659329218030378742976108931908871654633803617420998461036577484861565667858451590097568977115414445282466154035418807597981604753525711096007381720456046419095774675141191617665332517624405353567955215909498760213962099793128705220390636497901514554669608427738387334198583861684671221508165328871016187482789761371528532754210733035453716460232666010235353571596814960270741509116277611439506842078505587412555624390717374288525629478208795631428592214032534783597532923115045711091604417219157164407958346947473084841501521273911256895771055441900586357516693206980995548807931644331905644194097398581044122862285837235936615152975521865788940554188222359231999829329814264089118567494093672738385937696351389550192979553221009274938838976853025793467676603486663406816870983158197722864203426186405411195803838180442418718260236802588893059582259703780557550912240751910567685763628343565581262628499086183973405363795389367462973942556889920314922649674705079998188921782785463377303819783520573492987227497206951519095638511953516524407762878232434028462196474619516669591531893321615582104264619631847451641053544859746966243966342160925428789195740597970433607928966994255501641617428528982076499005119217389114300412788020022659610533613505686036754314375354318070704367705811041768685708246781715279738450422423519644918217602145625738009110720552787817360174001463816311648552360528440780184688497599356367526753807964600098633151509314852130167782604189257079738292749950197812800982859841910959282138633605940081013985927243267411302701795074028547472133520077287921749136236845742788103995119768272953576933469452250878142454639012993782816331799540903028832838647728980128412264102648659654916071912918990714388714648618065820519380630638412167317702767447789957295212034747057091833293297515295419254629992939340551782837330343562268015523518806676234968352514136154751000283741759460518098235734118030446954112813659633545249884414108610773092103545024745944983714267463746412941344147269724639358644637186368582112127840584601132773006473864016709933692726504937414764901956016333737975098224710671318532622617178014087448370927138529641816076437044283781686129449823862955846586236164359118409642389214321197945679173466822915086380542582278855482432298176148250152982462874502072440211120715537708273958487411053314189508164510187513530107722832871823618984004122960362538397347485437409867056899925049551705205801478494855002531800248860837388364410388513161483777346717056260485100255846082945007812290499450039694579131653638062737656712386712508583492625582672780085493660778603303279503487297279420936470333636271051355671932845413253830108878232547524763679623397532749227998231121494093763754101522349122232638666573751959675575688500188095868836868077899247620279057508104665695450157280231178765707261642667967993220144099827484514188287175184395401060916327127262612799396539803766071986570223149741438233049303390099534543946996096356442147126222373469746161933681648585085507690976648591661966808534112691387877066632667589947384468588250559196772758536971634810744276887494253655373185811196804194493677530179765095676067426092986520579302357266817904119551879641933092045473357680308013986588182235276799457906666594262846810456129248920319575110154628441306240120106849792726617771574551000657676417056440965167368746359170288401763261547328179957886995346589269184036546243854004486478546594796186964261662114184917259262015189946622256034432439147989033462131803472148191174551152368737037766797101993357908122971271633585391558862608127766444361633947780804768674461833502219739293926758968817473508103840461638066902272469228966515333971224174323819305938144412384060371181748425774787621959125083423849634282197126166076292260308308783739396482935360658450059830683677405952495091413626107119556552297282644004817471040186321583936303951702352697264516286894028794612332416044861858654563955167371969167060376723183352085081990857128282398684914223052285230820261783367545784118907942760069067033314154040409199190035159788418190281870894185701508973379738580393425076168311548590522304116423537974111789132345152138712379265104805282077561657414970006210961351215441131846219675322001004867726310516857067074202336902328113948691509732636922365191880203500798007437762505420723633514833383552844785550482888143116262683387526541122224490494848405797840106365655958069118556929766058391492548663453756451771232246005173341382191640964779465636466186690733192258637092043225682599098810966233490137136865396801732470959015450628824515357255706921259418122895081608879300445494838072378723761064039844371849160666079301174452639981210204198371751124668160894289454485268608443800157229685196903688093963020087835074923405402528804544131483854606122103265794738827095740624868412603514980546015081168476955860702769359132895873082331003488632381024178364714820419120333032345309170339160478474899841677032039501106973555332722200821857797811074999234112359954944670194004550095744307196272919942843109778630278565923934342354457197274436998371358522807709016734700536913032331824528402046293652922489916880117768512000104546099261306099450947212200772070553199612650650754464496544279180002596195983447794395821962525100833564057548408875472997261941561382683144594586613298462977628268815215524330055333444541753592437047058406788939582719378001989393685945630123559557151506892434507943411776245484051145458004498822459448180031673972561291678567717858516726145526157807021743561216718920741284374390115380920455273448330091143977958190294000538671339094983336412049376413228777408916028598351795403706480264411727951433859686187505016006841896619422837713761568836801834213791673468550564975342448274167555993114860415693434769458510402915954322475106962509847464324516690761725885454025030437984031616393670988225121434284234825901630356755423538406126637259745192150071993706684405815949970351304160709917813702292951055539908640455266760692433461115527428608618574402298765160803278770970085669120663643862315090893883138968800493171393606340891934064738028658270070206528488870764406071161733349134486949855172140194579538210461510427729750251603904116392317406048555080103953342520888489675554501714196066117474260345869154310566011570178588437296069510366346270611940359339844350747369144097059715484927200449544712402551607305586377099225081773623666675549765219509155571242177197889284044019863952165659113763692326372753768849720819342914825992594568549501244056046210273062004649764783049779381493761773320703617329042125987202169985395977270543401202235772096222407214072035806622813572783039691877422285911165854035473230330334311230531696846387603432887373070203542134769870716899596997260907259062742221869553337236400830150517834746929841890062690833953100155160759167543973165974798602497868318116444813272342707096830055420691474942814523214744521456085074749698624136700077216907674596512935054921068886564094556437308654210781410160237121686244199621796411201696956812888363668377046824420322913834967395810141702139194595243468445701187582946415317170270813194667733528699926151643542722451948617455740310915199465680283892704340793738101892197783924014508281662630667001912289154011185974582052796042102041369423280110198898486074800151983610067787406341900965547674304110603040571033221388028245632253090878219726777328045616306950270337012084889028921185922538578128348718987018768416068180527445251335925821365439926246362714424948698803111681618149372580799614018631835124815458187663194517199987725722158310025660789734265904592545182326242706711667195597316902548908092575973296593390649311380562822093524288736121067818635151950131806042189548097791929398506586675652014765724228333577449948429956144352967003127206648074002968265166840250195274684407633376357347046222131321375690780929610161891976911680630205202724102297440513505309158388622290942696740290173493306853467207370847006588367312280400526122849276188224503720183206434704880075555972946913280589271746814907553407402223274721377172155921350466978873039060501138003095518793107232105912386158479450048181817439502258094403533574774873951084483677904702123743146411553668402937846175670547521649710336882835028928773382622719731051560569923554074219906915283905241264709458016797080155289356586217892602404117596560158250781478530495744996851505104275795088143582225473944436766647226628563730315304229413688838561564117235595193064452031863943967729942341232653650585494911243753069913431821150065542995591144918476825424980035225333572022871514409235876495246676042583922223732378282599201857345991324196812282895831452211187702429348260112872306768545669173019039422547682284395297730093324655197990073741655460169498705417478194499662948997373250518653628772018100387010459926454684610729228564926584593006622060860738702823873454087119906382456125507302619243679111959924305816424501979698097032333954117306338261207160626741568595978130778271787148531525938856938490038163522910920626594533659559732913071764095121011225482289977987089594217915738963446909275510827067529730182040016692073421757711992487267599224743375220860229437823173744468902663804476679837926569400728921263927252093020408659728272455236324122544791417360507364269815928108684716044862778247896226462396119667815061552132347393571010222315572196999061705710945983879385174627078843382290078260598515734579172373101581453489588258246265301632691057194088224892091916967508856299422033597864517080050890260353489244220066186032553758811468323783847847762868362706115019492537130129106738320887672591142291749538413351108444008029611557173510364726627727032024357701090264409815757133824933846209904614475536193278935071393066696183729676189588785747371060121253698725921918859901874333452445702682615335194476781331409849316309967757376046154667459447467514608573624453099005443042719243810879813492005871722668552048662759103325243143060898438418597244364242775638720241801072501909786479597902260553131816150750520847473704549860978814167817205294552282165061799742508590540985868019059456351296778567166332723135442691638469623742801766474466643470226400807042375379716481733271077862621099612604779309861005986726097679157677296235810371606158521879429897580321771171160609974964728926761804189499487120584624273762208776560777424942923249400320513611138781083989717845997798298970496716457372003241758331034063264515128350579188832169752045920900296555091943484796643879492502706304358751467771408151420921195571067025151847622003378159762289573644910111413213515615213326738856153355573734580446845194238455894425912472468973247175018225355071698031511722497244653755133421279893387522695015400173129110622355233864131655503621710415456653263858944876550951906777246743794795079054954015813351646256345367770520519635510051758367045597542578740386025615262512191079747487625611998372347198887060707413766041518974593645863216647237444069283335250982705738549922937525406086765924907216871377646337031027098598748464133800134924657093135131867997129346376124232350416259538343390948833143074978355103793897080889951268154792853278573237363602926572804383319079116118060198226923238300265313422776238682339012168005489138508924198409504973437431807479206404756853392204188653004630079646880991504901234593885268048243622419279597381783982873958125346300845609910034940213457551259591908154412546308530182245291539888208898191817356688507269005198947543270696265525009730310491880399217513425107694126247653531368492538324360012958349028204085475217854533677294464203185196910146045948022151518987619154860004636058158820191082253259147210686167997719208106900290490337279804045709092855980647021530576756518268185727770016714183952818960773620287567222987913816189843794508562762999902262955506267805889315551529722244387721299438981560645787392409871447807536537068150854278208451898929706365466179055429256191451395586724457133054819109782049584674106822969579946611719334965813312800613944062359710785952619877836778933877241003939467037122764273513246700811774373197910900794910161735845815522172727124062855936373602415892303973653363443429584687273462683329350512907404581460841971280644712487439398490083197235394370215056611322425278996226555722939254706604096155720640730709648346801947249717884881362898299648688547856824622528701186045381745177103200216579707089754988169379590421448582994886150418226418135949084148140115914067359244572050525275706326909777511029683047371199510953012213690944854251742072133351339026571753400829787270946397978149751993559189845429360726582653132759014578596256274720871029268804169090762663351117660746404909944130961107687520822869637899295492180229301381645241825561690959949727194683245551629563031276800508864303524628182025154290402172640911057645626330152920422980311597599381413925045103601269743706387109532743615856973514313664606038962803537973461917687372427548645785388997423916633390775338879903229266813201215268804402626059826365196900112647960429225915535079532977228071838874769784196706044883969106601819884489783533813512313345291141675011589837147919751497050789249023503061541139543951196835714556440185741422671778258678904665422009170256171691351050029719699286316803150547962361619516755073347903638736873104468547175896605877752859084376883447077590822043427116496237937030717063749077582144136925869931633463528320773890501735203550646815940525453143963009562871966568264642728462344966873013417260662079804504717132290256016321408915278162085682863812375794627153070307232008564403494295640843758985767697514887714082907753410897343600713970980328317288044856289132119462896520650424706328260024500227079454023639177059720081383563111747147889314856299925494499725971142614696322102236288662822116389800136183443475823388367009851038290572328627498337650001919797317462684809331533780452053762332920961463065655527808135752752250966077576708005723424387040056289697218110035766919419178475922070994335611961893687202458014323134349344731603431058732816151124809060906763184393560318165711924605907351354935191324068511307593031323922603561236550321993421723211512488035868481221213452821764195700815633733006145997091662360672197534989790081471896919794839265317960063452882022891655797094906840796174772893340135279202228175941411101043186818001823658069499845667642153756249471974677495266244432309727108358354844583988997509460610598587429525851025607364164269665911943470454395671595553722499623306030752610631322839218405151053747105902122914783459327849530146047331604907994141392083915753818188520653710657798076436233300770363882748296126786865785415215141160882112597509674856592201155734311711431865655958564851804659058205753279340597526101769756054108935643195541862455638658567312816687622006514319262444140888316374242058968214192600322591944261490363665597763747527584670044475603220562008280177869096428921622789223941478620288613378413092739454224050557780903150491429141578207279924362324587612595035273064509040164202031983193459524428579868071574716559730852476231017671039634781992455975424705701753002289912793315592221072216260015914944158029999161735218077211468953135865313416857594582767806112448788404998682241074224141737519758961065229621226296142727444803334548709540502155533177370952732115703451863654204449294174422396849158514381695224724766585866155561272462949487325307960174126531217073584176279813090782682312818080527063105857631266554055130824003825370342920228273847685436230008516242252539713702919010862035610936642015102469287738172836889202455260358252962119799146766756602873471948854794822527957552023224211422266561324375149077143153470170928260612520505887880348589771637014390920392305382620014570903978378665689043949546959266082587480046371664998905505194648764959066684596825093589583493895233557456729097093554039666532487690440464912377995245860211183361559500392372373245065065555595140528887156635036243346824949406917604585231905335001685650535109175319571485924256226257704050416663071090927956122489524282615255775149113458819172194832238132415620871117780054333459197898809551788382918494841151280034767394566358702097514662942793450927144758148418088221744635525978573332246645554186935412080483377449801358565492284850698652537243830878600224603359498915636759066444705516349255790274144883106652048949364686086432424873375185921906617825973497938242620765022497568245555623620022888818621706205652583908402577219914463913565390465025151972629429841131869614104243425339650024859680167956218644129811622333479913831146228526627597160402640809469605397600714340702440086530039374801121057746307096089282709914505714614835248999984952653798298869923189847313922580023279833307222293191856078248103887690623611787353326384726869617853403982556389464606669011006088474375332786142604257254739025700902191971697269729527745533230688116643236857698871225057042648873517706203168566128264502536061090609155091010736489998367740564546762766987900688523600165231375869903992359033644379952930612074245336492173533587201728304944624977708581414784204957764450073785880589617178359425986419050981349715205082502224862174324047806717570434506316412091345903763658725256429244374946398463093233798464476218992762450608701065162066256900380410021300839539835528741092890442073619281437409957692600639896378538040938342995398158758434525519679986692447880968386042025898912023197693158384467769189744059316701628389026070201752514459596776903107385656234061147171215351213628917632504269271289687978148437708108000406303281856645447404104706833423421957352119602336554837394276949792531576462643865554008059233788417847021302264684250851238530708228078200231184216808441252338003719999543041218936304358833747996478985308926833082389617458457181290008531389743006699728986815732633359376586253559010653370641313438268095704822039174488685640314622190866878182539446388461151037489433058342364181301942932637893786191326889206370279651371912819354034594696467692967585337099742332380539244606541398157968777833816229316431995099401266315974054073381371676761913832928223957929812534485314022703893668706223752795656399839980678774960970729757592393507051503334249172903294541498122784639507133363107136324970081622779413082533925069535306959697248377542475094823927039337026121928733670903433270690825451980865596221389743652988595940172345778812411146140782853206802105253204980407165448483986517172803942656677216050121484846473551642980418187284210772178579163249513680885120386514116725573280889708490501339399112771218803332638762554934315360432363771320617934764073706527959289622519140707813072951129948985540253005999171845960084324918829037502643325457716183584075999970328184618454401124081390055653832873371286768731601204904670170848305938518500151366081267489381654442552499073906701876359581035934638965730541669985820966480049875484029132261470697507689659692532293487146804081930232976084074430988898870967827037573940361366490281743379076672830269432905787131291139004726669027466011990686705644094554567555407549960666813852661028047889486774054333202580568735211724418562927220253620210354904115361431647563162788113162823581939973332992568026582078791592543636943315144234178037654722261979556086508879715028772184859335571960664919944522905975081172066900168880849749018361369419582559288886710978902597659914616134611215161758834075687356964670124759838093456952877907589741544782432506475470874247092905708557375609015588676614002792666677299370764905981748746382638454852529259710559043606904848210619952106584344504763537740047756597165714745475485813382884085412545286009177676849196299263462766970642711275099734527690150820194530596434439302073326541224333839435484142547391091817597208944767000954739978738313882030846916678982278696853281502970166083944437186638218464256238687787762575507885864657751228114974623188148695950974488042768161225167196827967348369376575231801968594294967405861674545851854878392674031012106607461882016450955670977122950982548511850987437518851357734275995094586208630425600655165783757566316370778837368731706318927147636973768758769068844374282360644298959855352956847547603750008390296928917395462643694770016646180954376423758290901669741354929895893089268215686414188026026750431189691552517674851315995928384469476533523490637694216412097625759596000408825262681455871227347878429269085905146031339049501036233219181007539631335813657859161694685333608501822666631102912544921380211261857696292588423483957856447121530892109979853528121006509419214479118363949383025639639839664963269993585928228595995615386040152674235806422034910277789016634322811147774215642017963928792694655410358028366927355844742107601886728461766670695684126537477106847887126413427104552896376538498794906184605978899735262303714791307644522726546306449230045331474568122584827974984007278230199104544861797060956116832735769408255251201580639383991335903026485637883681816912808548309291257708662678115969581708093822259538143923215297499625880063278400236330428134180389055450813726807478585559682771481957349172124058483468954597091239848303609262315597579982357172595544319303083157444045288238329451730398798646897005734750455200946031930800710711586622284726811226066566387539160574678733306503807956193840793829315901124041448342059683246780776224626454564828857740837226361877336974413335680602931806939077216335584019252610039033405697348652329874282210423215742372179315111436113705459106017387079116177257157870752271248498577447861575874617518487616149216843621317175018089720649836979307052633778828321168047696158318440973775373356539297732885200408909893376839188919423419308593471536130478150874823800750010954033325076793382425886244402691031821608738091698085073859567689846742853939960141646600192443189736706596860589195616966043121960573869621280785366155676786368767153827899264324878691545961316028671684345664943950471166816392933733302947166679905726160351031354842759915307967906219526560856749055169995708503170325065659955784201801299211145344407775278935272703076435413672186358293911860669055816110616571502885302645974376396906705399927827301240026709715625244779740203192512843693921568027881825402870287490167232373939762225322026077033315763185299242156475234133962824341775182050126782210444870848518786021626384653614173906297433883452157169273130252164956509889145676865724691825648949301081808643895884613186896021853226866513161310579193439835201824104766648003997612447359200261109230355600541318256859133043687420497384218190309843789659055219995147839708691711130039718596776884628856492417722611106355495443328265349906039263162119784207642914764705791772187025571744240627985820726861480507743261853964512684507212798688391673689157122190840756543409475812947014995965457584174096015315061297987189709703891175759190251419504168154274579293159282216336739663282599272109884286378832360623282599648818201666335382605767806031180010166364840002085754768429645732805567465463284337811943951393616996974352809008905315462193835872467840381266558248326230346987624252524947354790181345078969815741071241726101576767376147067239060725829702883496936396124958495511458945123943464653223370864980503239938643864940409851352476439863472243430535281679062653078671395584925757547865414819150691203013529456678032988837917181374231284829059476366508352592019024344526098606238678837279734590005695310635321570469224455286295924491633074637993873574617505525830428996064323287727701680425473284701669492363171350810941351990965419720351372953530674952656782709914749730740994093968277644751740773003659394060544002313662007954378980041108449115761640946122177127518088974601920779189166172707907603216890447605576195037477149104296033506835096393664498556431556506639168238801009175964498027809482918276804659212952761852127260871346853055305063200617785824004869499537049664759753224972892136159640383371287973755167425696725833119716988239212493259992586004360218827987844450486738436055617531765754401262607635932045394500131109993349836458265386822949829564354733819983229045659234429922813568960497474647253204677014295838726263820349879085131084466820275765287540409484511067563780324052942865348597014741525890019720062686444751109124833957022173754871447232208735690771026194018248146031655673910412201786855794887243513905439635950649529512320025314927788427202761329195611872395964478252605252796910235305250663261194881569664988502622763043241681261369655497745640956650986212507551088634479803833166600172697553262349835546891063318311591099209220746210031166958963534309438880401844357065491418570378365250594794372228058081104814553802585435830115889952601703576907134489366482384174384474357511409188042583445619609623460439106935807933748254499038330060082994770275009672696994056999386581824147152337669307586374437743029554060618274437808858216485820505209070990823133986219680767388287903356792629946117757413357410024240352872335739200575421358475306574911283044661229162222302590487025831474175988051685089019524843389641441854878927121552977457536937167116332697163711779390127608895187360141625825132936497468657992674796761322061333556898073133594589440762641755502935024209533665801799830920455158243575392804166104512755949092756224518688461854239334453524122826549421446766051822586045028776166266802662386348939756255222922932323552124328472033674370990752141722464663346952275352801545128405034286881016244244183265129287238218249624984076366246569864636821283792866401136349789971244490806637547921583836505695954023642400097587079914688504109513552009933201690335291122749189116867374076143664106742236544340013101927830501803960699666218610122136182794784254601551044632489483155406490178138016208827141075878778104295687817921151105057632601563807694147979142480620379633209624683219848642285882280898874860057089902891414053351602000554205890445786015084522740129015040316845614102467476177248335546103398669430400591225342476753786713708769370317207644524617261113083094512438861145547637719338735469205760395925241464633226553898840730980295466239257533827215265502363790838483884348154937175850697489307803427886012519690137581036431995483188623474734743854949790659902775874297786560524792421903273814746084883852113709521381575612604211716457822325240548536712656237774043111670079882965174239173521408281070625431941985698668234838295770238746111216457254960456566992067775969470818889128411536452971636144315084144512131891886415830752707690862383469275124631886709787584631866415910084751109799650481030466537533576020364540203692456535857973810957409215347857392966919393418855202618188454041698751302297886094575934666449782285089340627521487955488234735403818396954273989519872650412737698460854980716061887449342648500992175004768889928245795772145614388521870288396364402615592567082862075746911988437190042902331216365936902742334302689862529589641108924986877866208705980323224244804751578368644070321420720426300944454824782235076781324841390814769823217938023522048722194151697000466353844173198109685088889732678343307269613993513699012964395744121225037485870430246950266846181229876432537367394759601618591520837960449069750568593315907613509604456925210952350993323171730115282981428297863310845312375001543759592327255611942806591537626761950959266757621767066260954333353283391555472006924684322229047445209837987546674210036638664914167973476850466810184986454424319551741684864063865821393282498489983363908514334542886515193454717577301596061259560768037155551514326562398243199147019322501567917656290273425363729118134628842694371605153440145202791244233241953684938936043232925914763676260423800599398132585667838850011144136328492523664339103504311113665746977718727081806107216576115546332060482275143142799599153262604894304128865215359778176476285188666276921254386790392688160080644704323343643226147693950264620154430689743301062928884114933559319365055968068674123277150354807518531196949800916757894351832235706577273142455604770123125286740005499276419898314799552278565715001900800956659759759585901592119630073577479847650267732369309854792773810181838563996197182280129913874972351015660783862644410707270574416277000871641562368484780056557007246775108931721279110073332619384099551324470713712544866770836415442497004769527819980725526776544145885968103967812063301776912937733782536000619976818634805586740264384226772074495537357367148881190654996352266565650288826715609542922673247828832508668544214652060440563871325663849165426425869854056066364040560887916502829136299456920864306389997240521962302974276995320051316397517020456003113163621381616658013758406225423787850602006526531905456740962751382487859800798938426811517456142837895835798658851990070659300824341556821674150544963142123445274550056313782782080287480804620186824217510068899386265785981039631862757106245626457985860932701026171050695565897679685525035448637791824307991791331291973137532378786174140402837477594222019301671090787814638050110102987758409445531223040334526811243412944971211723135142403850684930770812677186481577650246117857803261357261092739137964211864366843741602870198203311486224724176970248752848696203108974699257905308407094179935327217292288908987267063755119755663111350603876979830182782284982163574387100945821421710336057128759659329957140339431694242633026917445015049842337656738912491874154885331717973255226907627647894618222616814578043335507399296133610578932996902601897593136373476994899977044188462824442097680356920245831509162006808567398986915958816708816478571839033281957626380634588063906172557741152381011627078628158588585230957585444078697568937322570055565261187897481234940246170859980225413298125250039899613032866742653599643904372030953382008153044853843511169996011362639751421720989953532106197081146740526347263978048412475264680978651874030210622967272103855533682217804564305601735272907123151017189480452166740944202505667111555193549283622363270513385430012330785160706101637361993248802533944400722537895652663999435431423332015993483610765083509507433691431082732874898288450241834513169127613605500311635047966973256881178618461705811155672041850365823722774088466424012230927332211641623300942275927952705199062770218755311808704934965046384345500458680170802688966260240162352829758377656961360317358530709130368660605856099747509324934764125524786925584799385817864137042359728056538632828669313419157285072853407925430785421914112901425105774312369976626153602273504686658902544454641221831120653052804702705549413524041084589145007141316459038835380958641003408246661786841387398953442955737643049713441644353997698932531507308029264799975127280772625899398423985477799739288818609966641873705707390476466858968309046964076296781766743195280970078145392200055494055374966505175465750892023653664558204098153798921187579989227852298124305594069167894828565555330174797166835357367711902039441492790249220800094628420956733963748666989450609059935839793864020965379391564346629242755421860950201781884073329170307559810948160455528827402019661501530808535186047164573198349208031893562238097589764598309893739234972798165493392914728323550107640899620526828430394773740013973498857437939691386558889970250325838189976925428913276322763393035184444254528173990462097024941567104030970864957352318978533419532192894266527234062484589676994490752005607050691562498025857922959434279777163627820941108040610221485474831710959859314500516562140074228912324404037179286510536644874639355154118903759043226713789577754233212930393322633504110453855721956119628876811092784829363320607571800878188744756018778856704703387611833530976655511869366880963887555444507655116743705418349081426803069894866826792648871178906379978932304055693251869884977462037839024972353520251830259122078853784027269791697608948827811709727770366953568221221312791770597905022520630847194168542967260340970670284613115804452822162690613519670026487953272196471687016153305925101049326360794125875214584805573791971445113811232000081421931014632073964936249734881526954000475408408169486360095789566826680537857256159401956360152837980613311169145593202119877427504996324793493567128330375481304084278701793967977842838995507944577577022431232153540148632041306659573172484106965361148514334177393871209596195890360028196876369739770674639152306009966389218578670345290408473937577082091193691873236254760167814433083246279656947384652213048569486103573953307152105991036825084675605816480047681865550872431249359123088973728812429943628378319445787669011168088151031316802326851566613844769729865464190501898774770057943315085551725910370237159241746219986575380768711979199708391999130994525848871577424497644924794399655537083435452847315557237819378024101503093044658674979098236972627871262221109019043970040554126409798430918296590794084255977337579363888949321997247539987041719658272668121317755604323245456262886893822931033742771096256837793015676317719526577614750014531258648371098714895665804540396255938480181824679062742646527220001325314243415216428546111878664833691325361940890426157164124328766727014812321248818008348464274272215554652792434954931292654513232468044144144105922415795721511164702288114535270476216428644635489971230111967754951035716343940798180518452823069438841238485407292758583511853458814695444974740736124726829049564105850942924708493346681126975376151961022149876016267718905664960637318088449758555370035633566960965993774508630002795779723426133480008760484010864155467044916613620755738006487960642069026792059999673013591275499068895562532578833102320782645597265666063643881783141667236180235795833594474309576850159484116225328578294404508065711226969293956541515011038872696485624561111877529947569403482273414235353956978667308735991994314501452060314591810109887390785692069447454554531802648957214035013110048769852469032115376629399272368377546091959302567763094138882192922919075024903911808085400475648192712553171474237139484145916402757313543108332428562726992746127930522088786630968466672778733147584705832751263010316210037133789974739638434082352249417101976110567004468872409618924668073134893388232985675988834843690703760409837899906941255976995239658597798197454979881104432253649072977818923533818546811119216928730571819855993857181171308368531705279172016160436921594876075500036635979660691104171138067538810409550847562364034916692879545357960615206835730462371641310132136972729227892365566273252091715147960566692511901644838467413874921685148307910885286427442263834737546801835159387387750612473408805793204750466263709320112944732230159998020616907879032485946534041885917333722232271986980308962873982319707401162325606508904477339239996361853606436497415204083258978070743800012599904774363680012799919363932753902042721265414031799713116396878559289200686005599486341813140183668451996636910053426835259080913697423569377844833878320435204848016081570746972249858316537632385344239736057887242633225357549520918948843157456904019675369097494003091578149628696175062351899822773757016519066474504509988968252169965194911994716444860584574038920504360468030040041109046936898645442066126351729792865515609410300169600801354241237165496000215129378074929788196495873770942204060095259126007793239027193884193340331013557132760911196897677243098391468082618698331579497550233369396889906042031272807582842452686767708357058474626745459342872136351863111170775025865688332656393477712467044500500734945029113827430354705535141507686160170068653171213038612185756981130933873382490035055956233061127814534342808488533479458098653362231796436217434064749309521496236724090827132919318824344099229259481652910467191356934518832927803804813760055710824978042020785299656982912346698116384054070188207133553809897955215715850139750195773046219573199874206450355527170836521548713135532676468976777617312147281787037047824782109403732098823496243677009591628167360859325638122030065219885777207424494151973574178184910306353638536383375909175886578328281640715560833129533205079492851106047090678464954712795680919349966846452030706735536653798548821231945180418426909393748843345088541613943060310601294433922639297229235893145832517250236520963225977341348296179589945426462621758086687145283256526947551678472160637095723968413218165392964646576458840208685162185298235264315616301044756086120736435337592600173741643078063425124988947136199172844318492611378020976549879551378318245540074922144054906879949381545117120524033298872620742562871581257014102380073075644118483018599061821085057419456373258145787709947512287040366379681082675580297173211473174217407614556415843804418485072026766457984014123326748223516672648188686968680047518294165223136751514115434459778518913136440141966013092431925824751920801886882943058998835726195223240912755372441609255426369973955409821470737241186999326434112367811620188868424348568945582092106085561771518172776201566719671971622184944958021382556300908903149951505817993837727341592868449865022274433503596824165758763983523068471417256361931507426004379783863880690871316401371366373929559506800275190852849135983122125135581052436550296127332915534612729976275925044528682929144260868653251169996865048671776517232134011253607400994154226061897361748907483444453534242237908775565628341046809241268167247826309777200951765661028050209880079070242974764770895604370579421555459205894878068878951144042161317055074619690917951035772715118328212966906743356312690348152474185136982563647215704581868108242945827588656773905355097569664384902866959572232711226572782400578133191633781527669743920591649668477694304670755479087870787596325007730607601085247555200896686048888566583609113065237514527561161533403967227899383847380301240373729685291893515156095350251631346820721200786620785452467466391478126446904025286515248865633360849622335345101682782333290566636995254091651068457729039448246794260614098381250842198044865208593996705670224633643853069968928918012303043465433674085965019069034859072456439330684889174720244227452705434280320672646783409877812412665699106308465209912457069619986170079230641494935785909878535150133084822152116783737867929320097332466944232060529155293753821875128201445434658351423649717997820424926592938522837970543991808848362018881568478436696350795334743771845685273111664436962311324719648537790024866832408806592508644451064342683858900283485165799218649977158348420939755014447145237860689490293862909132393220405385527547188668653664946556058914189421248034118543386630985544523458199081274365674173244324526741460869186129757804467994520255444920726495845463787064817546393651831192951609767054301882211112619690001574903139876229836035942065859507784102548323205087596632495628456992325888901221144187452548699985765328372247142593392750323562709705145685898696977397551811907305465181707913523368105015925582454469495424490375780067545766832729225114187049660288139466368913686876509465023302238634520953172548130957996421678204404811271877203250034274342767481121533751251732237424302647627183128897862087240681411491844960193531057942191814855399369083674468483856993016383148917010552776802599195189578763017238297934414320200370200777550272837592358668338332519781669167688962902857793286039364061117289677041463093646936018171173581379217764181522229915753148668621342334393497253133635768033837362663232711340155007467465259976909005322940582798300233411898152225694638826482355646313497112536171486982129886853123459951483490377153242709630751906319447047850617563917447675234167884978837923488960898968409718305976448351280929225907791031676798680939531468708764369755917137859220439151222218715690195931692544719723668340273513669439567218080376949084670770643120565588613935128700737161171023132792004498940543189663531578274214308350674145071585885323211125144691362786382732646788074693249690626604637075615234634458621494645885459647173782639913044290911367612493757741116131099357605258434082406534210639133949322914817324234809041339384391236479181672022607960345274302719452036099161947028743327952046231032665658122643465063128887239541505642329387670240345414339406682609474210869061124982272500271808481249960425600113318025744949165517045554739444139529363518193791834288929019362798938139627473801402163882074733228696184577358416392962304829936622171768539747522384636913761824584441943182047820567161655587778405206352233599370825396353946079082186012516718396478874843370006660275243054709502357838093490446466547933345689775462620147658305021246921561402492665428999740858890460297283383953700564823754799385752748608050278239240721098273178725682640622901020888596882460029891942846038373015025133198882010244875422203090784683178447845947070772137312948716716407643264203141890022742019415079864627385548185345455709125602152067687515355786318779542026920186307604720120685053859277790930615000823519488708932502291325703067071584848809629071096499864258455937249712805413738938910006732919061048740207511936179516582531335238735241971395751343903687854679156574576248327466432675611296887966122803826909728660958846486456839971234345898345541922559217050255349679522398239900699823292061663773441983048847383177380865464011995010630184593310163423129923727584605065237667154689481250865425907284456385401642881223133823648564046806014987883897812895941945218331795038994036192798199275627942108020446359721822447548798109949994397729267071826218496113232231196635820367336249255701573151285073268828465276908505207802198750832110370222189459739851269331529677616229245540432362158669467222038592695570409321114510790253062516020930541336419302255041303798649678637631832816474998735206148427788919339908009735218901487064359484706882277970637364818255835666799689273719893280446879750970638648147961059679104583989354743486107138420756612665347789222358639278570932548870646892535502157176452585675610489838012517429400478826649479202971077598090283333417856472104852247486890425178687015630251446675321957389665856903604832287752636835918358283700752069359123770329381536985702680223098561262573648907303754671762650839516897355154764106536331790013717466668362935607444258331089632771086292992873884379921895840296427617320151092152908165847565585348002319460831282607213486060714522990481747167403871430199063517381303492960500831043875561550277114145974610403639280584856657553238256068604384407479891985428208673170972142883380264698009578419902438437647460470939349551693986748126754995335939363982883415797903879449908493907294252609227673462520660605891895813072962638614087323378050172509367176966862334328515238152159348244635369670638828863745190788596630431997182165831962470681866100655085036328109307553759287185863521256491880317875605841954786513095549193628099433566655861597679707186149946873843946799205515072322743060334375464263955481670710747398810454870819689710789185563430271966681276337566293433336370022010342911805874815130783131236314496128255952125546400536915317418334250141958302596477650775609436997655516624873547249036881441382846972841829512643007092654011277115390590709214657586425253483930873699796758422536095970332677861521068763888271649785571649733942283240144672163317784818291683513300686899597068126171096911649284119027005520491644556830734299670075731571549744369013753483487345563480032567134592592012830212494335924422422915155665964474335075138926639938774022996909789328503943205335639352637105257843845121391585371521075197519593988023158244551910438067828022340911331026213873832738165738240459004088855778507716092876421520612918268858647366115685247768847247654961228242035205927386363816813161899410662284961688688823848996958980504534005203712680021856176859370603101627759765768793973057417284338347159202599062555453210764443134550934487736090465525505804068336201938325950033460958528535634707156057448113133957688592786385111841137675201569185616386526808914131576716592720672396148739582489469428179544139073858819722155980798572142858564668262251709155798885092090962721618028202383740564616178557918560936107763412712122015038476646418037123085208720845331480040474384548746759093627190997977826801570434726340129989939115368741820171071554907857291313382125080552284225529361093387543657939799346487652389422231770278638757459169838689381633660326877657278299628451530752143136751068823030361176675836406554692640477117357889567617798169587536352586406709775203536565316789501360698419058303322450330177009017211404746676184731839255932428711617390440018359030600520923162438577609599206440954269749342346683559444517010279255611775227163607903190233775086350865867833431072370734266785646824781286478558621576093083745101161249541786806035057143964137089064518793211481872108780309528158563522843690024058468846932555100154825485189172420805315831578166169662045773689502498182384268341303168918754935587283954124290400073187781160248944930882592137406355402594229595947251596054676795653846359976293103641467497979669722696256227735086153024259922274559922053611439472324306725776411659952527347019660874586606311535180833655578822503385052360301351965478957321808864746942412495044492824745267257538299581298853644343399898046519684880019139207509449335221836352858088650572352742539026918334888808347458410782829575212952678212252311494984395531948592644358796290119239186531846108435190318679237704914826568469249093603188348832787927585650573892933983261609494811271774447160197452348351712811073441903398249982931628545971647906748758147060942417336437395717284264593652306617019727453182487359590617256818482672894008059372926317894698134375257274818322128994959213575743687301478566505629120319318818053960611854563570160169551828553414983342649558441782366246543800653750815209707312494095698004683717648018664059423471454892325616067170532482737104426018906291633140962452348001301701167043562371353187166485124307200480765887934055013128904734292672312818247052773728694532113696688614238368652300596243499433943483089225400998959998427022416009557368900158483698183769216995324128643484229689917237047130599984390730483571949789417469042831269821936983879811388349409571848802961836995353697495248916981702174485222341652625132404913475811506045866417996345699711787489383954525361454893943198778259782454521346684662389246318834829985427879584624937951664821477680572259071513121311990180623660429488787349382873060843020374583188476683527745183289870259738276928876037092088474437358972984392092769427274666672230645085440450387421134278018366892018171070476028992756303817452864368278815022745386391329511902559329267073512560241627583871358194813013287429007251443628363761040892776712496967963070088613531677813454558110421793053424634583825574933995280345938133868915082437705215332941082617983738553021767932342925878004612901505685246408423606704365927330018340306723322238910126947135833665510987244370499818842710107258539252462084856010248531777583272719145235684381422014288184583974442406649900112555777739922631308697328147971059087607916973991329812439729150458446844825192669951906668052542083026474012157551819265928761459738053272281439866359710873621007641471452718709289265258945590388636708680721513208857589935711398290020830220841976051871301650241037639008967437359228532891236569624976910253657209871533148849713489231786283601919633509153229098457864939449525754011568536208431573494290253952304466174938258594182633618084553382566985958172464704689313163598403335450548657190301862078206009393786762374694090045100259505176284416214478487482935298727986174168769199448055029298187074046696227535289612199134843520438707402561159904775816625003343392955650198006792126160484975124049966094677986828875424994717281176628762214010321005149801891157606644398899212341142278513108950247655812326129090348590123316685801149527156175794278272952371636494240485318968475839442007156185652593836199492314802617779591534510753975271418448515057770210542761158506757081384165262539331873302026244321700434279350248709370027314768011836779495796957941250662341681732937850260463876700659814734030642502846518033646246792864423673263312330241017557965606556668948520564992624132544988548610649393087867936118114720059382251882733913891545149533053344136208941023514579816548346951498665696585618302299118117799572756956161702980577453693196853725944926470170199978246047828496118451915366395499419342100345186378215509414201216307564615101752974363527337254363200222007872503460970840868193827777572812612012414133931384939390965506226009303281700561546027276704934710456131159674499073588487756293910197934614049007918650537031375997104677820067477785920371958302322127857980584451564243023079368029719812571397376782468493698845501461539089265583836305481158496031818634243791990952331380886735098656476815842026014944329380837283495924524462596785577050290707330284172967945031350434766186355098147048604807640552641231224671269045695395588109853878974888574283251780185724781872168668729151972602020321503110042961987811451369340816500986351926263611350552614893294471798114292224240022567713476166455095605327305090739163374726450982422514131789125177805948193362373052784852339647533615573978391079897149332697238102827455055497681276387741723365196376240576127157504297575884744036367337309539867722535974381903800445766539815387548719266104573717671751073084299292785787159754966651451074839252836790779327793614340928743473227964803573411007937365724479602989608996633600978407399174939767278005706255061908000260277496436541079401621977564662259625807959089103012383559007672610601039953386541484828679054061711193653334590974341815238346281515914188681812876403852745573586885110419073199739880039786259659169289839436100948929264311427456064284659001923211081445423425539956715131593708009069979639608130570076593574499797496392554178750397255145698935402321492374290054838927907105266601343677841748293006871611204879882665512252417823590798293646815952663944254852555251160047849391303697457794499141325050204925795452622053004470149849712139887562320949914083174702803429428813944739486674847975849651633273965873286812860543586470106206561850933379540039412948438892774327001887688988642273592069922530081239709655952128078597423566724692937826783916736530919842267979464080324377194270019439589284727386074729527964023209101975171428362216259871252384504642114902485805944667176460133357407930244696185822267328665128482543830197306049214265222494007645314087753671737950747545848813831015790141937991121746314379641815319782489837982535549675610234401518111034124661567362171027404592131618360381565008763673821088163848014555946448061140930637038751609473563597215692463641738579369633811398527778160784891701173765053610512606558761176769438232069618266380060271551818245227910757674164364237607639719447432721813770081597994399285330538754155069691076892134742756482245179703265215070223352809992326559831479793547911419368557540276211045974019142481630522135029259788406486010881232559513756125092036024324351870272878089057137887217953663521596984392138715604738622717407321478263343848986901057145596984830640822954940224467023802210074228189109637696278701126487069449477892768595215788492851703871677228384172310725654470812998979060551888461724058447077654227773360158508939692962910969051775823566026888841877874097795357670994459361102011292059868994865690300662803197197498221547606149486457016263506909536785127685563919573839199135317396379447862712451407349183988020428731993938003194026269339927436160304931334877317961638008670941695787520499574790329904349772289142392154408742517472177412120977198985047541829755968905685542868641923365437423478730487661766587574852591764993623431076321641099493859706389083214937393352928613713665738826726605322588605258870956231284453945145833898110795366447328144077671724540289209050244014739629617746321077949633650319789084315265365728344788175847810217653906189095962567548912667064758607529216374883170424983596534167647459614872609241845673512691033779836802426130334091220286940094630580314232078869610829153531647777346293292627665475687818707023136641131908579280171676945588433708108687245606297096115349199890709533511894370336177554981599997982015163679321127025654197191814112183394507644753194100267075821064983446424493094287916593947296086289263609827762092428137148716867138645582023385674625084420215073158624495345206835663297537260729881095764653081084399561845878471477779481470900179252686184146373887938091292830497326941176257055928525265277237379932845205474601817623714337706012884000994284046410789065895460245745377479908941418220417655960191459847012865119103717192068248041564674069018225264893185788237012627589314657551637163530507370206645864173246474661110264671633872838127613383182152529053068387249385339552945065839782835365704769122188329189396615289316067395503364095391016631749069366096572843300951995147416943196011136360218254511907769835856571837894667067514014693552720797542710096944933678265873230079910819122037045442061660959297678056970110088517514048654638860968478974568087097185667276381057574196490957203096615901605073260953790007085092060657880982945151881668813149768438452361114935030363814457238390518923791524087483911944905936371849481642833071701225550986059152990635954878736269844192318107338705716961039661782063071546236182532655218521191527452767782287765556485543950280872237347642797604195073778410679753127879687481730108687354674761774997336595090133770070487029430795585787485958146610891965840286527078182268579749577264566751999808000474867027283938095841641009485091936266231667471555248164492822413718555414221964788575936338433477881822621048799532280341782269984715238216861648009081529816889836791848300599688689207718391306316612703357859746037804590276661626844873431870947943418117507436496522967744197891691005206511124793693423564936319259871875371075550187006837870913138623468641701635947903623144748545899640202947649840810052002927709275427091175750199294175642458569572110062021582293285945192122276452423346311625842185746896854474288972725702211084547838025710543011800008524470796085843095326678918135364153581817894412394954644305120457799794945085276275572921173049923726057184552246110898843341840849202387043699264441757532703153691176374879996444534006181278766799219370927236157775968606032234392287422444187711849749299668237325545580179735216292803849484840276131379056478524816599148284437563208034020602332222314008126681440337961279014745132525093840493835404038078664641322062790233120732624202336493106893947098047863988441437541611673698239732123037216770522925703384889669186667875917874971883043241470881327453695797778999019491800012477102067056474962035576091937530418481658427089238597357527732657559442588101677715574619550212423523819797388830407462249526072844453194004496526495562437142417637511104549035914188886860946179059066620959054102620578130865026207955145337815684499607686965327663052389775132403193458485435860391654450864271605006103945067516907422176243850172923716178837079351641038028407380231064489313209341110815566570475611540002865500464377165372141604092247288179557574984422492471374267551855209254591397575204875760728654772194631309208006228513965849053747770965636436071973001065679543534980725194505510884062766921873053582027090688830415715908526500234715600672400516181153985092601670661041620480898674273526487283031804690939031886169587879348190879221465720067521705254125167661508662318417910780906655758005138086232616791519897106335025488071391031558420095864846117272758120335973631884171341578155761031588063650277714217976588488605478010773033076968751710963011940615556350555157017009802113837161594705513196003110587988857676609394172079805543670562239059500695346573936110736968381527079746578051298658732090161209313205479191512774213666675189815046520208346478312833916108748213252727803356247659239736005092522001511528076447744676618962356947638599236150781610834817738085803776977543899228382089398429824021227356016786339798201699292639605817738659501820212145496172081895374074707219112584153255326107256323996667123998174934077661204751387370451338164062576993914548119617361696482580587063595103986140306136809381998621978244698859195790265938808294428474243748515030946364045367662375302887976575663279335309412863134996430824311118201432395071379556765845617646109984055777602505291797188213935072638842782765670686543805877142575337699757815937157994004330263174052848829654554574371154126313515076848814217592203762866762827575934501280103297544821689040361960110446305712956053573623209206980719559605924350658212008117838685897595489163036920688537189669001072714454161238522027621205721284934304145698990671837580168415991580803530787650269054581327171123188317704217590340509573893884825207653333935851488358437507033938836660789643897870150104123765987902531687943411029404213849707104553965753146542111908884181555062887302744260584734319927769749117810863566173308315250198163592609714129646442459987492898259647686036121723716899394554563791815152739351251345445108666919304408438121404847152507390497283399437266687899556988398895362681171446356132971908537391778484839571171428703228706083341509781221944154142134337236538293313540593031321137006049888599032580888562473748506545547827822886683260815850144760709170819950018731572606031321876021498584919966230240460534118618832681366419130066162033729180171340012292694247024687203225676779644294882090511455924936701065409722498751872932304540408566625626827025754897450433120012011502571746458929900379430149556326867111884062505814161218504062239858291874721738060231726603431032173494513539971624370763717678435114551764964684759846848183324821213308375235748892687396182650857046079048758755585899735848988877898749929953128904853524968634999363133649901646710310300579519659714664646532639820446858654881125781498098887235580906025731828557304036034531099357749765450331188961555716837630420483400375407841306864151033152350632662123999581207313872363695889486902011008533670759518637462530658075742130149895531466281766126209097769887398475406902263103491704190315973604656377893695442621070790264052890664269313171426287975651226161383273703313295980389678296944154528158436102052621279823010522948549763914131219763352501252590509643389975232399735173999013961113194005403615167617862921912761873554835217810975109975896519282350299232976167048619587958660883179064765639145142633505036825328060511210730627300630611294384354284306929418556925286017134495020357622975415123283481385834035732738901070656191013125114131724532183337013869398696174395434278125115953469294689166989796111312515904693669116839619680699573176661999097866014379130738006658755349021051710665168852170510764628765648046473133794949593582790290188802015151949094182454305557928050748537214012926785521368327707829708787230774098649420489358362691437076187967007807230087342761783024467029794501972724102026550689945918938781428801988606596896010013408177691591208865344234784766922992286307730776241135068145305519453819016839089144920669867141626058275896543085341788328830312543113322125436418026216380329578331900746949316329846500856330833794261429089745821242335322522893140894448139510166952008712474854973510589750385923316444562621577997141078551433256039227650244726728704358231394171298615618509936677357517493952098273765905110390211737720522725066398472350528541916526263865358575532093572735835896365258058403039356636119289293252753969516796089351942572881860589070445301360020567503419955421484586972394003661654323645168684185381274785246474416051750140379935236316917371626121181913225009480438811005282452505144841245583843810158030728573985223856193630828149377205921665852495169206054284117951772843696326293508536654923669426907305271541595282356409303269648798816326647561608093032045393996974148674292585496015580444743245435523880924064500885764859454916702144880194630160500537498189080333140684218070393752806462358967932183456665355611100969023762667844843628622887741715674377543377362118983472321731362188617521922990853231321157905652550767015991799909957494196368539423453894507748755145488666841359741746502868432877656589676120601255810709504998398722165998676400079395978389107719274317061219598188587469893448738458064804352768974373919736349719727598797761115004213068940802862600451882210914479755577227016042725401653564094432110348860966529174531603376737055449321565972233980427409251007734314557085548658276365507381158744693604735865341186452312175466082479376374251414042304462816445097528286674585179322461811911371643191711682392934846302402541760353105192357904192009353218041746180342592878798500435356183155373714400544704631083844284532034936596568851199402477082822976037976899220258347994533233397430197911398299859942612926833683246605436720697694117549236167614064602953293230855464541126043284205195792547539398643103135695260529969295206992703729070645931977683574720907118766727159708239223354818477715569925857257307377445952299191055684585568642127999078902169426390235256571222707811427646002550146599245833345399103460135858261039169826251814951432298127000431983085363501382841449504900289751203927085115979524168979615634923966834533083945816969821448601484494251503821714401481005369769333296212554452080706591144160942046913267580570101201427865509844268147860904730058600529115306090972869715940905485894635526498302454549719139253603380202536716362843103252369915514385220166695533550748187040339686201697474020961909904059972510028302791886234709248425410376239836225085882299741667732145537565633936442472449185353485484625547398855011661026750254936453290189751857930946520056246903509036767894542522808794777081981702976533501997964575044387122196960433734819911444198642314947623814725770354950807391710966835593842954020029645546562191934225419026854766607861794947106737991392544983597048605080400492797698642118307407150535773062077386044921752406023584167545215064455357276941472602286404472742528376694159086942421447041539906149033294265787981499073766916229860062563635438650967713277226931430344767876965311012422033957134718487980480020404373207994369298426505648930320456368849859250947622588478122087876362228346636808908341267023774674793043691469690177748128193174910267664237845995484476198696978965887521799547190912541458044548287949763990834533541888303687287089341942867052265167528084768650160676992388502003964178720298607256308629353345628604989833352490284049750850599117665557009034220584631827375865726735876596166877679213216794633271778334140379176651118091684712584391831809371505748627885405845097758687114266774905677814248039175336009075807291212637521436460061900491803227306604468585947147741735993339211698619832147533425693752451568821493388950753369360592441517706512491131345164696702608056352238432934411877161969802889511405543231539521186311624260480634424865297881524415421252192479759180802777047510187612600454661873750857788547005378335316943316534501035216320893570621634766674540934350778182410653479429701122400368300174170782061306249577141626910399618105978020550641481287915745849298728575992014221241045482119578090928574660896612781467919427031558894783791279531259007834507284602493813097124645571521649241492360255761614354598299447593327527516160816295910790368467239048867073125004510831412680618603293584140639924280219483802627547392269455544411402509764306918820802573401710859033197452287551824996901316050278246414770308468562411974894225814694781831656879502413526395815296265214594797592600678516842376485337293838330391343394603684602345208468069610816792418288434415558246335774362169451833581531442308824161783523486415706463486724479517536090390595474202935985858371605657634947559665993575632300519392415423132027523559226364558264539351876850281499109122137079715787851483238159635826548801629247222306881519523255939716872961458794786210464203949250181950726982757707246687909714824526833380233625245592777945233852050814179402166809266937101890442778552822708020777163675623947762586915672699745033451819519346148435374331956292647132963005493201896188013703792682231648841536587677278133498064229522359293432967328478349663062711498731031463199863675282751126754712961725462354134045742202098236332866139060488997790848072484247956410842331427493928030174259404868849615752532921358328761752037086587622785908886174029767055874881404526500612867826654934537812341202981849528194210328355079939667481557483420630512382445779974745478729185895348316900256693666060049188035767224071767338622314086304751892995533954340942642312788705840951293117350984545851565719203088433697436046788943571478823716073993402278453158738133330938084461520644892935501132283082889015267091171072007339667040585887878964338955884791329110924014189202641078382371569726766923425073508887566587334416821557481324245982144570481210261929737148737561067620412501123573647875253552511760086701148054354489544119103400967252281818916028900231323715024947246185840734388525200207652351645854940920813666533414635159831516123426964070633753336372994351999100068707775020048471605982617962219361458304455704029190555790908298671507281734353325330429302233458089005705324321376310320092528539402504001667917425175511430987316924646373911953604890857268582455129642047444898973898682737039596833515411617520088804873127808889985271228626169275590394086445188983251148172225208478189249240691608864044034688825213925713165007690476626979746204661550995035086537569896400879582669492727833342489099245182582314304067253343010194629288978512387549447890560068354654165145588732934957275006466233288932119110418072887617971899522519571113479630906552297967706940394495546091926342313037187541517935208839923052849228526107463940444743791008146088359593705429413665484964954387079405929212473323403766380139639105689685043742070733704707990861685821700891516749120633002337231905703896832700318692043427969537896791870276763721247541485667122515183031659822238757758113961124395189836533493801122230251266733957988087480009626701100761862721290485762686024885429985404587581460621249437878911792366721155474321751189432019369903709814969670467377905828155063538118342767645720654154475139609351476676916467772322065495200582259782642593401113368832923506054792407461022281625265155668578235122512994840540869935861088456739765469338263135859934626525941003315496332216819859827546204476602813090430677752709777693541909841934981690007786586371487699945031710453152538499850113922453263361040489678521636557611982276693418818953331595733327537589802570878677730457364717618314880511102299551976828745974804220275276105576038708839371767878689265357784758006631657547894731399601442202589984283637318440915151851981187721025759676193674251863329893106735689475516322253346805729375809477673534298633596320046140871034937105074022695924097118778922633816001846735798395415258406272684261700562278836334514144617857204992102879646117724054953673283210252087632346468381128286035252204428907076312354464855853584899170390375768341128973598512668197019466123576087814559263200704730379169996873071794026833309728006742327562240883425358007370858557725061116668514188306983960060980642230556826258358401100841566456017342541888828741459583885077771273364033394836406816263328422689506504822094949806896927672454312987826015704879090545941564531689440890961503999029768617148561284452063539876911433707376973564715745115717419051428321074892961221537759310931725158825804070550851723911608110343364284990521638549479654095585762504373311200160386208130202876417097237961797762238459310189214247343826545161602777944605602912972692222130716989966936618815253908547838727124718519295228924676387536044511468493992188478279979786057398172743176945902061463396054252177279833372225285521286536005040995366501583176710324131187750852757565769173466182936530058482271340536341400273442147176118166713777880697891789837613774025793619344642371270981259927123717927528931875564401523504993896712164634005980030530280226267421550531162215933198223766743011114967711513496090740616213261800254618231220465817701886225823497900529109622430798980971825654543626304381376569091840915910764932574856499514044118304684952860535419259498915717975659476960016463100266745971081161608672231253640474190591259631825646631807270003971353844531885876097170585319475202507932347527799686339348218818847454092718136576808062096932452110074008156791246526021436579425744106211496892369442454436277192007423458702218005076156712285049933229772238719776925455464646682789633265706702527968928013410082480495193405330792416498163379677782399624158731839013510097936721258175613311097276199587343357795746248330151050300704317175989840450135479056047056754055963865760752178619045168640925368079023819265384024946961366949337429243115960402869919646698159445446986305170346916615221876732167572962410142038235390505059878602161836281469275136512578578548376715976233012449369271878139613578778686620836379480895800469345871181856287038797577956445063830456183646461710379479449665917034558054400885919885323707704637158252508005389726675303359352693275576911971007235085876843451442597227321952619012224895227396345262320603225978370899701653555240469553879589500530623783208063944623441065194933490605477441013415351202795381513676175385753258585887274665933590245737643772930900106550459746698718486162141900585861988567855175997297482931111937370748995103733269749089097077184644315322077448593171284839252555726241027225092362861599251509597191561982449115094272843070336298877348295809492197271351367675828773481171288279921619949776687181095708395963826411121959284257463104456560476909967773334225665881830096728777713791079540910634708112038685414726152560031778868227408939545942708641263545740877871057470953753276799469741215116804501673347514768157169169717847355046466691043394267625405928535284222152288963540690650340050495485336298457089994218449001116740150391410038648361417797613817833818745940748898134474937613768639740206803136072868567309954212140779638162101212631495830104490557339425611376348563193581020470784773648579311990903639068851953682075635944848604717706568789881105372091871554853222578575945865338768766756099084625692113855328060470189477599565504490277974796303718500207350298928275873892861569979086057775347746483658312765800192182136520261374874120734693394140963044718865089910924147049296110995778265430451859342934423404991418268776398618228858657684632222073067960767445444179006549435349008465838646169154825232932019279453302339636505018374954636187362586691348931487147438485534978000467812062340815988789221062822615296429029155579066678902709408270358492620854537434222344546955021653385238391362430617407016177345103688153074564010601958418223004906077030287029587316746445859137670820644927217115694045523364921193356435830871534880322530609696616325596748288019880260480626772059747893693886928854536276694005346965688039366405192230368160986971212519696602751295508144332502945131985534987877893819088135772300113208813178642124971850004261586302337203344110693932690446971782129661546573793851155387533002783994905861980958506564566772083890150970179784915688376676486196357331329824439724446258940332141484487826770631969936929868532212652871349562284501945477086733708066665700942009254396904009946944976275838203052939904265951082615486326892272389699193657258858944907387105455283502860706288563340339987177601786544067861624803503289936688601538932809984915238049126291092343704462843524562306585129422016828997875458500872864984716898362976495421361121446657536877399927489241703983562154087169728214253752329961623057048559549190865497697616116713649597423678270913301497305231072807874954995895095683664290946484002050500537095841424537003701290434458877252506697451863244276420602952525465041417820127848100550617974027069868882269841756526831624158211441624933033391865790021943509989437419036163799031040707137785461391684185623836501004760589724868653035033477350450319123772229617063016490018566583690553545776353460331943896827498994870862781569503411453556775619824523042004621916048209078673854888418098260836106167128981449019888446421025203473015048236041363239736662346316760672242695102091372318429643800708860344673668024017847330164237873540856189904500331721036153595842646839703894238375547366448896921472607256368923056358561021380501724679127725213074763493365760385048629432818651801613876957800234105503529998243021832250751292203942552366101772657899575969686671442242872159403416249843402643126849768803945124582368930457960436812675930663004328213460616698040641961706335203085002010715211075726038403138877729602061131369494999936288768151070800188752780272491515790570991523451423000933268842128613766051043120037499744970863883172418437681794236085175242396840460827268819460998893924526790296882809436239167523468273846660812661878870186369631011119397875563582810418049575217923442783183604889367392113042533484993862396257598492184326840521686589705192712178385995400418494009442350869349960294882342336296841730343354459387223499661412827118734058028023542661339574423844103612681298203872831227485437628643672786997519418325767870362433466007422947282775170671627095884253644388091428519016754409859262254942147562670045853796181612431446541925922888165576108556209596410288188188081073483494668780123908855631214889920153768170289652058547435695455123722967500585012624997964738407213511122852882006720867535741639866952962547623384421321339165135122967980128694921517081774646746616824138927606147703753858424721936020715725245106667506101579177251526051279304150613102202512083612850439186555326714122729781282159583663272242019826434647295429606049358718451321011944636567600065408684232782608770706181703800588376557793012266794329561253879427906875288077563240696200517055093971371959387393904410030315504534339723398119982269779847036400753310541242266906589277173924982355733922464004273319264651016691655757868285964012408615242093235373455962239937766411922607234651421997605685426628489389852865976049409952632050553563864972272228618095934012438047844179951511167271658735524604047292869013826818101392537860931036370289480978128944425039488621713060934968628514931907443196933293070216079178053205168458347651964402750070417902587922878687933192858438166913732621448739357593285728623089008800608831858673587769762833787233193669595678467048540002156626937596852792244235780705800415973354753335051665932088258158799292074056243187882397202649989083254141237457766004305384824336905602275857045811601900642450684665988230259545445783242734222166434842477871009033317525527723919506452655913714490584837306577179652158052744853395285077333726243671357741169005403738810008727996990276920015025028714902702479040623147238861497576588581172260999609290029618552249826252091578902014211288088948057056513694809584870951855795839593764271906351290796680219572453837170901457133189911293512971465739320901319723425622610786457310054597494962647897497704613173154602858130637191038038710148786581113062349812037612334130354622152002775224025420793450015708918970361459229345073595568405122884293170811755643564511866528628562979482148422356560120130792976420381977517375399409604981342772237618659074672122273842955549643007136998730436554490777437059966848326503477498757064494811354487966885820739199983783603873606485010214548539575322264173636386304664586779584063863428557846593518397799895710794891011799534961057295185679763581298443386828991561632184163875281768543739836620310665946001385629622639244926511728446837090205075697699540373096063693469184344881051350786063319953155440262608407341785532106235989896518561485492663025964907367589220877862129050293140024212540939263004378441534632807288473638756378052478318765587030999147304110948861438617802389265903579312776878497420918064622680993799538292885625234834699927188626204652582402932501970588801910948402983844919763674323496794367505606765643368176704296963499599675457018053644991100674783407670877564783655687406196344262821423976641658751595084373356716654635238265642505897486191782693559684610665141634720105488106745333273937519734250530912771593301030280532393512915068045255247848752970214541246628423350485217489966842953139078029468715034199595950016394314593011271526443863368680678109008529038568311368288347950501988054914662981826877634820566272813912840868803232664051363648263570711463889891982360948370528238649979806280543151311044027515545540801961070450722427984354282455113034126731206866395509713620065202752380785614343316814090722934007639250650362443691904914825428993500511639220056427564525700423815374441685225623496510725417322968779679623639856124723246823209577214998855600372930288738137869922002828502957600576052551639532907841985282937576121016208664015625881921831540713240018629303213500421386734678410635848975231770990036932360896102410723168515168522197227855246238975208956516560795137029083632572320914748372559488120766130376976690282654149907725155621139694513355456790671477805632738772456934789855776886566608476875945207463454285654329863270527126199310305846849707050821614048479451439828682897904596242058512268650826302844460381994681480417054506083031915097212143919715196818943085880364874260199951281127660040555360573612521225044518855952210785458472731835587503999420691510876499908299693741462154301346990376137845960635653334630512252823696548987580031810441893990616471191082163302361193582770689646083007463125554645036637961228854960502250901902555975128037070837521734552349835384660889684776191229735130677554608646733406007388706114506547067784009155265338342005119815388102144438327021263430676914617284822137208496726806241898020282161523082053506382122567497163858043634395500548329875887703033557130512145134694783716073082949232897371258125545414486442210190515678723522403756110915125031633785225098138293472390069721658172899251738837077971973032535682316366222832543313244515811507215416169857571554933708719384791434291123524575884826044237199961834665170982778221908023369355916306831050702278326428975429077725100184362584808431015671486318489048654260959927777244286380712592751962869556039873822727935729786209191153831534853065312462024759361573568274839029737134882936312181281674702636531943406368015959096622332505764435289662963862504376367604555681931034287454026367042487638594917667210076930755116632941425777822076939713357014449065109533488639536097575405119195662201029331247179937871380703380625523860959874284816075672250311164540388315788138350244191648070913866607961064855603348349574744251741390186369967305077338217816732049112478362783883725410684541526701866476683288683782394283103301194219046235024201419945298361378973717674279470999349775135956882247344851226471033797601026047408035725571208374563516519019419722112939179861702766200824710050098560106243249682565450610320493893251658809066487365562385743486028700652345371071310584349103426379408920637014260936410924140419958766131096643743058024748210169026159427408852745973736520849329240861959200615415594783965256914205529538867760449019675789137052316406368496650215085126736313831842018882078728414627564674296807653056442507230932977491224200989175551775386439964323206125506042157112789829449392706248556792729442497052450042698658986606940884459950827452248500210349232226422657672300796302655438137996361016204237771517709039688311977341428777200710992005429173405539907919450072325516655168301759443384681171439339893805573047127477056489692415235377412537259122278665348918597681588558514601250997336397788141603860918946173909452846323577578675250163535966167897151810045515337446660041226260994062993835531490367200177466739765564429087522133213219479410012323990778363713338028667751263192817364576740474889128618433252460984262162137386827202044046271512692105344308174025401220284054275575701741265184264839307946947479960908549107602490035642357755185932660361776895893323281683471109989976775389848634452309924911441996182362392794710964786312959792687091985818677142913753080092268888529475356326133441235401037039613938462083764641733359911044685306630948356645405540873450878801049308303743752618369439459998506511319071503859073253518938214485725295075193090206475643482725537138261038952825387845645011766571092646307613726183545642878800065019503276579915996001768841457893744611312172601838612014338928129153347459621638334749130639910769027010414708698727335042446369312067896635217047478893101820081604780893374268020862245878418701109478233245246711149684555778361620177503551643103431907909230087321431235649735661840767594225742761342792927178662686476438482083663525572172132810511792768028834235281482864206980427882774802300781679869333352127289023879310237649173520263364178719874875744152576807416557116691026839962079839345447802993788324483536176949906187289800740211036593846785553528196146944484601868941466910460408676000424117783714635821298574647697328433151322675932739435811933541858754775667190211536753895635991410075340962902362955213369969269832096933999702012666819664606156156919722086565964736609321597031689747214064724738010303953773627402564661939552955500388369807020319109793993589881578994406510970567385438077362051419768544587964872199737752975754665296207730405840908336709227082120762051838865174261373943349455970860169116461640854113039221816831621093116571319458605217992086387776543133221600659924570392944423954597986668168845206977612434289828760310938597906249351361960645778407296949071247110377439614591989978258982784399641995802834594003351651499723802123260736647634649479714728341247391447088851270810392306978296941252491684902894184407174740082142680005004580739330210472449819653743849843333644842223766348117687667257003585947294084436941813209974907534833655936451452708864396604620970740555254963737949842812645462786042370457927760014302246096238240663093284110619933637243771500626297245649837302077330350694321818965725483666153416052807589307405921482220909749485599674225615970881140514829310320358771154422211881023931771905208961458516304923957293242364011168603021383449431871076004943680601346849683576252130338132285496234450967492491794025532058752084152353692970999710037592871995652318499496498764511252437644753260053783056664435558978516634107620790967170950012902550917243675668028479691905041916727053603840041442113584017418079221351973138834349964629626825608617539911721231515623009207992318572404361155580451097347056126213929269836264422082547737933581140400127266567872758721714039506334544376378207996892117011071425533562452265125359723322672868735118959158450360336493247651715035861047454686872799115235566751476657051548094714811434160982364575790944510852667523558350449691294940713838804112398187666473511327669461164190283732767690589057829328929071047490289223147723371455496997929860059518245226625379174965621102897140052723908933431400726791105301728574394355004641459334629364890768323249514157885916701987720853308941628082934068771302703874763200744849730477265764993157783001117724148996159717410797875831493691843530380948942533113054772027719513950087537760615014704641287789536366763695968114390207114467807188153938555936149629258493247341180433844730050489489287818087571021877398154220089985096643253896608911071320550479169898608841591512966491891717603329041597529229697648955969679175983321576806045164968611422121106871149220098021564529159375633634333556776783312572990647743039878535659900536301681898314284628653448836429524210473709647389427754953073695671683818564973824716818712863305856112851013459999910930327082969755154032917568162771963570376866768254558770481314011270421499407662445856788264559726966150836027982155175879066141649529504134571249982002973749853738392911598122413207918608650432458221807419071146404852769535800813418258628883895778736068193505653020174564417766403157131447342247282376548538407176489457158809756840275619639628381203466652129704115122522820206780096158981467966986131474711409716366078484593075552060136723206046892494554842365670868231787383501991930702547752139786924879227077833216166801987635027060742980024829227407863481034356057294075619856313783517187368640918387514069250665320465751734801331897163971208995018167922480831468293122456480449883650480526171377766104177178871598215797868496569509953061461759603862177898371153703240411360354953538958321835701168489417073819212768130885152639022728248512542496076408765413347424284789242999113428633347951474071362921956887795213597124260902042404771686900636344339786626097892797460303921865903225824165583427253421525522234689619496702973124708748789390604351679490819318303385142303513644625193949095570263158816303080825885364789346194266775906157050804051454735690506818811379227202810574360198742301342713590026917208967566942039115062135395662635375382330371444951097317335123430210698550631354561292097374158592475081645922955864393590537726446829938887954570556925323333832854187896305307008173888086877954500393369376562864641670470161441734446427379598757153865861465068453782311722594906553989254590693004066322476428417385752968500615274076014196981322176312464072555969467787885464795497597245283856028218510560405293856638883376496754399253909142491418855336246690444015472715169062417399907493115503151126330900434143741985220472651942084407504094570979648400241566796728931393052314836883047171779664869717411949248110599521290609911349990067816016369787934357916129333871092933667023273295352151416037168861843731568902794367281427059543741275749381635506164104250271856762539485764902873050659571067761587813572711926503069887022370714977942178789102263129035976619287970365793555614364793811674053935251749911797168673519715062049425031495049644953220357283392387360304161740134798087573493353626397564216187420270427931747172638397757363391325150055272765420276081721104630681400456617239155789637294316778803587772527313185091459162943527223392948978794736839618713343762674452517579273903261179931433348872795608876579695160721887240273016955838685198048550199159469148728600619437025935491575547787451989535553058059954184193194185685438320093929200473346605807351300300159108155773637279619476282851518680456933440103092615616520365278514656774502460556628416641602538273553857651443809872042261380000575172114210626081934541163711599785939400670034941740765343296337546329698989083399422102252793402670321613551408595845004146718248944139768899140574926410441490771099665675080449444729065096246513063175744376387514679068494999987433771604430139752786599617274101224268098843533090370725579547152226626213649923504936060415879561166953680127051857415007145033246084517311912867763538517887711506854780732872541750312805520999460004033429401325443117883854996458493015793547987399869908036474630316078596062008381909939593333929845341496255436027050854150691946706162853885496411999315808025919965656013714125237080028977519576071772062669183483765324879082044898921222974413171779871133835216776636542543289968811211195219000927984927623367974569790273766547391421112314914692308284019707653651396446852597230790777409676632633242757217111112548334291448173809482704565273921886572138735191047859102244187716260565883011805715237421653127189830405579928483604281902964222665258448971932711724446980103652304180941448871818298137352925405916906464570624774319742054363793023426213823210454386555240871933596997086084963793859201552325085059977838314599110440064249119494875083722725958524591976655587365662389113240031134978460434613484929551673113914355342697243267485863103987685482464855068088012783526706404057245154734960817901463047399895111529736209495808429072118470790509912976694776858453039625266728334735308373749653604372404314263451597961875668542441088316859405169563737208829359378335041841299032964775390870883373447416106074693363673615357724390164932643855812815768179152862963460576719913625466122177776731484337040179969220016588176487878330010854611748924630106047220242269866799176739322478379285757635562698300022622367491827981243017195190706913261735363981319158526453936794051779796428415334810787690413204380777490962549711947187376026963772035159967784442025348848073940908931370866477323662776641507044446895003062578110177818902461815907113335553029476218427743841067555656947680604690131836225649349460330241241508101054871078304737143353025043024507170214680892833539736866572613796808972831427767169617122103521036567200644838084477746673622378336450803893502638626662628008309606096297132161953058537902206806570285086607177325001122735637840719363000505054816120502016442105712766114300546126602308840374745116780361994855661922349350645862028296871146534294320398180555540185063146831378011113628174336426095476291803952906497947425862880270333074041109045291536354006961700439314409263196768284097834218552391511544251387645835878944853036568097160816480839771481612523846270511004712926717462283327985038925693578073866310650232446255764106152152243112036398686330515083557044400999330373909896941451774713940122538679213277150863024139642767712586618341040651796911836043159678881643907212745192105288047335927762444874354085239279996887823887741941203881046940124804890133112622389629057328382650182509134030081016733845699572413184861991987077859806336935473022812059789364060786225271847908541125262817689562605474485398513733624920685120691111928294627476620099668537789562807916525125292526611081291432759444666239369552448510595533708919434582407154892447211316653178281457895721797473748358864209186736083748172968391659534833000072165044779507677005252129203430261391857167143773393109416221690366880390555163497663144466538752043720973414347840133225030301722615421179468329903736309930514884663130579939838221089964848615038088472220718367731584549111322808766948870661426873483945804337375965075397258844214552436762018950246802145441565379966944847878404425359798465305519599610793415267940727726757147519484047357143386841843249397691419045445722141771632594381956099918966028302722976248898104001058081747109994216534701863978617523460268079153347538916573232209807894177252434883529470195297810886207616767968307080833015194382820042551036486582242627000856226004519484822861489196697010104539066629503205368255036669870118161697202489750710262185285602824906891243507195784741999680235542092357356863243696560850440726251672551225105915872246449577176002693109845389683750960715408360330497645904939579320854134060718280352526384612815657781983150717811156030793753797296122845737280378364326836732958803123442612861083113507259778720201585197859737599303056058182447534899276593392324101953357273768186769494745180975914088989587756171273571146616542072429833722230309132906836778385302843420940272097199283115060699955644276006603569984456321252739374015473454396801777336587103838678813630021626758518000696671945602704571312317784262083550691701967834442620440986793771417302437162355029613729391870964140210090128931005570089615296923160312158781153117866126297874882778854588443801247808070901564076808895709469012459102787813668476718965793108597240808713673422269545705438746484683795200283276459455445882498622519471892351572091462341477263876528328345850654819743235831702260770567813694740284109213893141909530353840486166922415596415871337237793441912639312538931856680096544125032775539731807872625554815772510303506451189577166576945777006701738248443218309609443971957550471518740045999054876073558498331215529850616045428692539505900105880728470259186568591307440996808176956593521917234164058963048358987069685686978773492209286033187954447904114115352660231862672064922479721139238123673200686408732570831144862990872562072999094917299484711279274307188316280561472656324166060811318111091089726960746861641536523287923445007670688233693887004075869667703094076912861648226700687072344909312366596447914047230531475258432443847502363793731716977535113939939446538290281455148977070584093887663677576637184401627919286831105331358875237288270492821005080400221277078519383323117575747276547540074392499489026939422822045528929058182142797948444387019732693324141801102171100722159504802406940241517820737399946251550755106524142665741167072292080137501962613635888895887762677697498082915379277457857221255376260032164555470121050354413535095838763039680151965930188738123842091869353792160744688164181382709191648340986323238831338371928187281681421126879185476206277697853141531703062008458795164104148502708739763663170109444305997014803833621921715827500356023425370731090296578057970449535871873066431966250478469880566649488792581628122320713636796110551639329003332709429707973924195980350154950399925679638367996574136607262761077560474967243834068124543703333269824503188833721843512444140002085829939070801966037794856301573983325893688906237785478460681845452745529346953313921049556449609532133866214604665086262061410968380128714768115562234150900164485603449866372899330560662056416158567748648793376764278958438272674543948904253712300255232208719312247825531155729316001989738886818614251418469975280023671379662873589574718945503118533883275176817737457068710413887173917574637207265842165625015358317686882501744526983407758166925622883624168526693243710342250435117489928411948998204019906652256246314466641976644939908421311304387017168843426785602798081557605199931958121991330154619230422393952184885373087364559549688037240990757625683824306129823713769352061323765650822814489581245616793960405372267023257530132007322391482034511734466136268531144255513294252835642189880221341999403846840790605198943063403889597817682774374526112324625706382629472484284648606256803702021182381671457644307940602801515680943649676869406305734153673480378154202426136681933605575979242083173777905358815254031811060217925963093821471497397952161859562497574512498807528831990470771222874921024488309529560846728871819222684579020840603243557972473972717132146163723240490527451624258841478487471643697229469618048556379520306478578306733814629970253472680740732362370218292907613209663687879795628762568026007052469072544559372326072509077720010672245645079322856941580477448361695399160462405557470674087570268773675934157566903943165362629678771481298323637820696585923495003273148174529153402907079559252601282555083031924844817415203170354171765756346715648241501248019565072473581713273309499491166830863525587520113472285206955251967138012276265094858101613853796646870453785225927535190410799486265851162405788490291129212565111011403320657288555302834496537641443898779230959042604944519777576230018830636582094696729850226798260498207818882678386309040432364686797873131839062769725361236966223433811160526136941736453078814973106501584854209474965773091860196588407187955576868942651502539921033887884697441783190783565343196674839167926681230895187223727669737805065502964137753166670502642823380417864935119482460005469099641466545982452506851538583658584798328108808822936844813285335674275999264739451230670880813149236080414534957405353252400728728486050820436583116281283000539763498567428290118804567599497342136215001744447388033593957534103632175128991739634964383444007572199123885663513901379726586407027015034372080373151158789776163102010450064401467538173444964187328323846172317786689986938873594073246322273447552013758699234079554273376041705061942432842735324580117821606401986370019379454383694410415923094085223114671122265690753161729051784451893152581430869600362592939349550973720458230226248697454745655886235259379724157023478595242234189837640414937990638903028037533274586807861333692544354738544490534032419053580258401607699374863844102888461450022879282075724463556928898404280441919046501292422061527394515163011671619599533707292843206026207560537765471252059076020583280594274668802341543671388244178593046951847678859304102986917826848607978608350007703344245255647317174522825949063192701696968480673073833376214525603180836552392318084588976569135518257523691232799247695084872571149094829255850933072469280035268833474564737159634176282577091481516344047999775723109440752372422634810067975659526995381956521087059109070552229518387955496943446504083602170243114286084493393045953466808449758312284621629271227380260475625121666848797381533380070161184793991336503699594160712818859025144174613248569791601042261282295940148985836704821258567197158211913928259151360859847837534340605989155651115871815580474158651254256003420078077235525765497349490100501390125366252260251817460117279208920796572756632860758068785881560250314717024735057415617711510946269002798901095955099138060787805446615536643940848299962067765546988130763752676105907625275740114175930625772046001772896043221345022799264408859110880551044906235602537333843397445004662509451775324018538048786043859730396949879819131976189050757932969318758243862168185958831825661640066766273506551040576937556649327398404784271010909045314164249817172354576631616079055977335040084387163929571916533138965922054234317758131748307122127600694599637300171614747460784163497074799614751048497833970788158341495007498572808047124105419158110736926477588944487151619941766544341662247757754655482923055033393193499749471634562322199802289957227157774326094991990838531801016242040898416192207845824578343991566455298023825116137933322502017790266491983732573244764807618055550898421131690929612441991472085452659112821254613674150701957222737772474557449455480595494669641682836045497476988595156360350885666960369756241728418810548563326239959554713873918668818402476536597384189650554090278837804825334963028177600805597132585592650298840360215256941010480250385770746424726980742433143799942948060918493280911966008256747215430903965592802348573862678840037145477770720817204703531880410443482362720845911891515522586924890355674679999023364501218001996948954161140642087814364650414311632882006036673114829593594491142827870117511980024350315855589955120840632621976783862932243915216767885568201958273101854232595285795924636138781607628117911910651505376373744684168153526112566847146160087940691149190837788673389316479343000248443012125153877242364689012752382394581125709393608710681704047326843217677201764075086515488518532410973637515897884662902161668398787134028717936665550727287995249019905422137450360722902573390273597453871651430705314602631568282097841684490816755307766087410124986739093049329569317991229830482159034180552418469950822452546645497034270303669495012437916659896360318956868470383566840598030959134143310859879630837579490161156887862542169830329513899295833910704926690926185719534641629140988389953193345128822333134017261616492749757392168614621995433540229422309858734251149127921741293582150734558842319402879097055286188594521448278503802952716695725028101270955520114431435724094023110330717578550011742107606442400884377139775073275777350761608398352839622151513011477915756543775104878974909443473712076094921087659901762153372684124690839789228031748327730033555338803660749163262033693802228495339522753234426008974189694404180857782994565496582204940779773603592058342772086743576670045864077536219924644201956212548500001172156450412013281758755091952695912143767483576181860499470313673060558305202441279431222470155001839750134928504929496340785066967981949536072471661414614186605135431389564403083593883219826100233262193957639187257005942715524397930405400256003089268182435257432043863491240402385325209534577323206141866995658164533603569028695424866901895936195752749424972874127439278474549251535637654050662730811830079976303044872638027005885637164576778423992488996706179856719697030446001409859953163574551839194766536045656736901437273377482880748994391286394282488526632433015389086945131822593248407965098542524621041448202971315340971706960140471357404831690887050537640067148399497935443855317243606204329559443304039958526192337794160967245176725636903742148147553178270873146153737402910078788976741333970069962270729246465863086811050645750376013555759327633338106647090810525114340090842190493481090443575098279495643945787002999737509847013964701828308038948475002594855158311705396272262127736745930454675174421227895585522228513665270563655454957335328400597363908358928114524272314308966089017606974601476643398748653940371932932780598704997877854856115432531513940039667537375206539326988381174968835191031155299223611968526097250294655464250159070607175484706095060360697398648437480707919018432824707442411556078622514887508812269231438174814602817919946602233525874419666939667192361730911639926539878783766339750148159437476249072223772019056334558993038904861796300996819713768216173732471484845924856556469239519924094634444369678434472469133972685411612169588138729157453216761187024698086588099633069515375700342788641132564816439861487547178956405313165218611635732737770473080024906386244540057165851767621966851905631002451139544588316944772898917225559243545944102496276842981547963144465022587729157142656185014513731853520389674645021718392963038031236734347576094006183542846658701800774986887111767359341138041924317803063636574976281564775184521497651742242179188330328850055424613528053230029756694808328420238349481230457885434564593809873779964098930606843236635336587827828743839822915818267817312196839204099701238711724635795982559877041217298419908231941501056016707724812154143055643831184587602437140123932489566168565057869051492717421290414372258984276133659992686025828573143821221139070943174749189679526991602898809825251376928684612942464334118982950989404292384660447301144969011188621112168789287149896372917410810328758676583219163384335976372692324798184230865042842500077550700408333468312329881648165198088141130534685287459092264425754579965299465316738202377103966867846902630021080000077965686710136596769814751873659564431731163746658190447781607533382279609598794461850342174134397115888156851670967389102202881030448616319910288768012592311530724534233472626171828303074689810066718963289393206344915217926912668019470369647737778997884782791891471493220224728493390678410942248364262883933284867668164584025560181542917197656362086033609751628420345840380902194213090384203351690692688155156227268305483400751524682723521861706351806450406271363186312748805924444449484331098027877620963997361580627958223551738299602967125840948093865788724967729723364952559552884480717579365196998182041042407904023391366849196821699783179810119607292205196971721025381431819656907605482081853775371531727924668418114310859764214712274965863691394154540431305147585827594562571558736636684005150547465909108342437148126067097546898535112462835049302021731500372811155436370472035812099233728583605084328935295371531815054007483956745657987870161815844660093641505626745603973387074875936022115899406490929155624592552595305753432589421712340858035647243557052309056782857183437869645058421534564796742742503976756141253555071582541798362813103487587642268126924185518070328833227910806861763308948422187965247435895333107100718355164782360023342138724830433589302415468171465018112823367726940608980522961898138407787534242248926432917741616065934504684813364057585431701972862482220601452949148245612005696739008484172690563704592088719614504695772130393710815379455818302154799011387111480163984363283748696030756143410130071789386710816863303743930500735495808553807329586627885012996019689946389732772303103889912255021864763447812967814062714623353241523195128707218129304194771331552577085778771468845158236767339357978722466139237028342304869257888560588387302372917758815294818658498820342843492127764161300814321150978911024897016107306600197228936243895452298062094589173145253516030915477325119768216815030428322401838987618139780334294556911598221216028555544053902778911794810120395575353225356090796678226308460885977479547245070893772784828295745095061793282175654228899549491268900034837205872694351474523580448252888219275426790181542528958437438578704889065813025886167155397092048716207039185601926234315098637682989398771077780084043047479562330110517149886407951572585739365915879639695198616576951833256224970315213959650620143217828977150306083602726989660430480537512477143661500792977571003112630944681684184371831170899260869014266908591680918467804576373834807140662418976015484711356822564097856986020287185532563028037357593891888660345318837092715669069090833079287224879037673846005410556239074364787356551736231230438679292028550419646686612109379666388447291950677005254454532707347406578345143616464966889193691131469934291571117985294821457348135282000183009755500952995059422288102469880735008476189381689992532429156173394602074910500787453872805750104980815269335150281749734740761714040610237876550728264394254857603353038315346092280661772419090665859002815810673663515840916952301376036790417418714759018151736778361321658238078437777864822148774661256534232818494220844795205940283703900797736288858294180888937203514972224351851227426469975664018848251213620644125670161702774993463236567236598255124118710364453232366547897137462125485065646120109763457517044628065833279886649565652586935262575699463833003724970577064025228005450989862039069560373389777800086030874298610808327792668890888712420047013270962121781928862737572329498959270317386963526845157826897088024801741904305455852506603081636034255054643595754371498146155132805363786228395136721225858485584563930016839367897302290754508472936008281770411727784284051078496784210650938594081474404551514698673629984006890920523886080007760501265066461957840626546275000147145242483523974596660952573105372352831997681183578015661821623529528776406193190051709689571754213986527910607086789919922108437921571355893039152499579229120174855766176380500089458051829791534959374786984441774606827959633672962831992777959800390026870282293013528475166809026276041804552599075087682515988351403041949224662724636892191719167728463917236831892180022336422059219182972655993645730881330103574770839962947457147134502124706804843017195687266669795491440846808396000629868015016360610854631922525378695968992089076327026459401454899351095596899674996703413418492461843158040155345385528608790115332108760356414571690111074084758325228580380069703288261976187747398893695404291446723085664809735675541757915163486042851488520811872068054942065993356982084131858861140500843626969385069389568049318040229742631113037005899890094230336782389839572073038450101773242036309398042481074107317990039660062377310287790673718200520086106735697906141329180364491433758378390469328227147140101260802001600275740756124996638242954528016969791162097887683900673590436051748708469215767462992989994647290657577008775613904323662111263837230783040090747785814383983219660978789518240750315336437208802141721816361707534238919120193683944441255958888483023513771649421684200983861171245806861483152795689362333622717051489058488233274514975992596597625840218798515190478843885274791104727861797658798371250225714301659489895335912030695578751368859245347386649427304885430224782116056952880243032919278178613747701309172797591757203425552662457451570150079640657879049401230668605353441985150767257788100542000377293048567574550529869120040403266706364329896930005801375344051790612056622177589289030219942175108985475763900132311503283956644132711466473955212983914722267751084986264715470687707105018882943335268221984478209171025194658676538741131439799906903123552302886395096999761297421306324203452209546858173649489918573232478882343722259049846697383030938591366018732757552092877887050775488774636256684400611434892221279699805126509993101633216577240235228000568807069972691330185159852101443881632587581234010414312863534216227162455170100223175257773250918109316571395110818512911433271400768268803996233659262650660315466434518113186036810220843551100907630559449016298297539474841449779016654019924220920764715739291899162418054145935562881859808373129790318295268890311638808094171971078144535842855925742783164792071540153000420115960799642271382957270107971062211505347283448716229584477391669093802993393288237022507626406847909522006665437221245574592847322786922494903913038432335176248368582242665852371878582030227512548183749842028557563197183523674227453630051941749190126701232605277677683565543969179921247524690236687422288910728370991155878360393436508610014776669737203947727233897663049664697241916755303643395071367609902583490732909635988626608006458006908060536372061324681666845834915358044591598421866490723741570980740019219262019830856712338659827685466280837033645444052905850333413633226120531464576212368585454169374828095947260367832214279058992461979995148397193269056348799521677470253010474292774007070445207044213749439250388418765641317273250638326426793256972751224048818591846599920980040444274363487118613614782300497003963620593667737786887938348503607392050643626101608916693479276790724650467927933157997507741905975304105175963845968740440914916668224297459777532297073453293086247048094490023465768779207562484098351326922833222736342283123706212179500317480052933422670786346756348894942086016358230717766565216458914494365818555417776367167958294840365632782108754301390453727969963415153703713284130698417166726090734614567896990485069384822309772393703211029703686478879261584961461652528701053561712510983081965341418252200310953380082970801687373584106166027717795090887950877325894498100033389356639555216169045730615999979507224093663396627541105917789108015501398660389124147530816614632625625472820228379426142241631373742061680813429552830292233920697944847377864791626155939452710292604345672179355579727063012718512131607784263331314376000766245562711986056801549028219711914163311503687037826837933187883052770842494060878242178410835991674707574908501387940435039831983716620991602731829498249693194984504521028565892006776472053511236300425578787632173827557856731141124025746983339642105179231410032809350539241047057723961719585298468089593660711729540964175362735160929162130892301576823776093281655702201146034518135669782477136151135496620777461108770494347151044462435516208824412336489858861658197482708869099108072797296487560853805877314274346586125811287401967543631325701558711368395676317408395990502298329180816377054263547718408263925494374224998088829139211625690188312902113353430020644148010632213047502090461920369395101014051361697535721030067973614144699165845998523779823439000498105755287081580683335618786917466234329267445282442496232448130482005151982615233183206847799836622064172640963168631822565302601469392856102303199980730323174639020921273349512090318011033243680364125145273109977269745361266682039651723063728816397033612402833735221960138954482344295759536102622279880269525328985735516410387425157698028873929949073741222334202771136380326330727332488397152319956590136187366944483496301214484943699990023507856993877323683987123211083472569231361278702732822738363706403185112624257210265587121978000243979748797765543337746947852845991755000845808147982484694692649875597460590459637514136712905138063391919453994887570504014981513315741981134571568640994956293061515080349890860193734780289836783987851042480642792638648074742381491387587156445818575320694112371218881128339054841983366881360311044887055067525958797853944409151090312244277633717019207676828905144094099267031279817925848806185224598787129018880760046359958999574686003624511872957817872234063902266759749318289804194180774492732131764494798079452405507599044856141823148691805435532468657081027795638121817317875550331725904449214002654996635522844206348222366299404215378088193065264357312763529598988924745801427728411384916426847411515153417496443740273397880526895991682590308891111690302810401722001527946964101161615155781636930018367886019458847444419562101783917225275408351088326664291692405550861027023778930900441030507969346393089230414354448713488991829456909058522494736495544588046658331878742641630682574315379481601807456867367303872625977460075531866459964022436007754019977053713237031805787640481502872604407751368944168655860041585998682826694550853051437672669052233240578661523582617096924416263123905131225409803423092649596019263548675447669856048598852818549922318541096234685836099373819460268466376794813183032175812446962549026795645498097355269077437533105241945573305214956261095413098129879113239794672120332023100744817759101990663685685239922357792851311913931908745469886393012571814170226953202624804055323837131512876861433512395033784251818118966018551030139555049023831685365252960541950595948859105080150350943999004897618768948962818728829580721956065891336795190222914522618891526959093189100536160743348536424557049012576141346294769754766946602516774404387234292079202989916805987538109131619602026996765565227459037730563233924469236727505145224479368979014229253683484969037015349689197183383800496502412184175185706018101275427706468149873538879313692894164231418536471851413996156693389685479118690884284483325543823427275417430366737238754894628165761464546831633000207847507444232281537626999969400111056320574402761710716233053854204801930493786081562792043036991048051997176524367818394146194632305526953595287896020026502359683107104597017511441771166278363980666138419984275053916144754543460527358003998721829308779086832488097230280633018815198073096590387049466480787205299580627632517709305330009802091834931679254858077364549840886295836843407860937435046378327282466811829497970721220886311306666154475599306081150931858669794809523748711918838181254908643154663825396231628222897654284972437916656292224279527126539127786774747409167018580430642308668985608645514974838136569493851484027527688716274287862044116681876155937716361516166164734179456944861827730768409241393764067691930129403192081078754614860130519888424497516528893558392508943504731291482550470579036033360275810536368033887664055708597825729410015914755122984417860584493206424205688945183574821780440690549364656872446982939396309107812401955980167117111888134537944899398914715463351886110218890831517464247345107486932177168517328771540180908154273576185450319700953056242255246496875722421367499126424023327406048292047308631065109128905276639273128763596550734229410039656791683212757444098644142814628561714865542964377806644038907410968963341697956624177923384441762408279570729792967291650215472777132719796790097618200297102966491682296978135724224040068069390490854257069902610594439481371630057731714742738639073108085916116280506123818341546943169200517728888647208166838649645507423337507250270767223456011953023094335318025009798824631810027082889819591071744360699467809810188780704456425993891055489490966666317422005759689065069426035585627902110641469080850099081081487135826736469992575907694849040095900922928902029446375205809460836477640433794038475412192681556160963786046729874184280334473476647809637057756322203523671612363799074046632322062030632448428161835655972277230840262993023725802251897775070767421745191500270022885667757159911220766514275470079985918842575496356835274384577321461564249047819174507500733859336649376262296276967683190723348197225733461368818177412468023063463270582607824076050413394509427069212456570217224181965268049115075435331467819798094231382797426045836063328860790686252988327213868678112851284418868226417946964499741598682246025661444399485554900840722670995382978588178955928634953566229240992704102466938903197349085848836443213916285132681039138993178233029897806571494314272499352238123632180707512208982104499327913693834252655623788662344940618047378644220267814730036470569994283887873317064959303749305014113880681673781076976067905013297179013211456934966451779932216127652405245236079913809060797241578944024769027694235445271416788280114632066264555803429228975652127949585556340384264528844980663591324921861664579421389401388601707491531878936469218482524523410172931013500440308090042846161859692349281632415188775435531259795685758304676693130440397770682146186858228198639449414368185492597261051682580944127206586467291471893927589539326066704205069638248970411171087003321526013599298042538275727268916622257299199106351973940720324763137060467061619382885986968698626940042360491011824832236111038558245494242559788596214375837516435236716001467409033300385745997414347980120381132865154588811096746721776964581039810001751570135475724578553259046990933347158661629502589894887455176234736327398348238986654901458799252275019905821498445193136559684159728128122245475183998488795502208465631633429247631782366926169197007432944598474584360272936428166345799898422412062293779566287544480136974396717906077178284466223112123610599194699018626141777653757536422072582960766233470851121961372807869280314314104101951250096332268020101265402376070750833429773910271421891657932428262486904816374665702277349303951951422704749429674176493466019624205308560154247048313708665268566831550679637457271701897140133790965646716864422302340080077286403905717952759877794215544134217239554548770264986995056358156908900028332832312100740237483600310065463255245489994485435495484615077625238822646373885339995296610987910612145373938126361136793028076853800025329601904558936814945733523719166016999434333553964739892467182150775502138580362276685347412076081867351392547596733893387352687870218760879394229930525843819528892338246029018503543439567325131379038755443701393868688168347074597015678193599421777109733568297592547077736608627150632171926950840372568769911947763129089186439879799058793777674582363840280310406253898998393604810691031080046802629683675119170587868313476663836778820088115243880814019743384157132328808179463585007675496154890595968112974085190050396602076175278058005429786552336391865193890165726011646765296391707593556964182381215777031032853006188797285928729413916558187497132726957715798733769084351811546780137324916405631212963378563522087963167951432114062391287841911044647764259445295641985011576169247424579672829627896903335043282966911293376111262610912093394120828950274691124782666299789666583393230116970540466346877289374036715649131325780003428558131450141025184097977921299639386405365982057478559600660091532281780691077055307411909130609058461373214201944523178221680543025610126093799639756216474618490169448552391803078741546439662103836657408317418789409094953774342706111773904489861575165361117746356938577030193329421144729669388566822480649125860282206515385235973269761990790034251246882115958553369072039213613400525526278587752453766516405312939061407544510686745033996610066365731739198464769870706663366431626936029814596419544980730375893024983329082545058213601303745443067253534571526186068483754490884721285868497543069976359206707694172973725881804182005365824377689750335073345938613106196034267079470223235023096964254765053446702051295200270290256549774790674327440739417871986465404304541105134202621772461339254222683889471218049254583192065924313732641411649955974760120957537177187521378740215841911142401265313433623779560908497456113112626182847875974416522647795183196704478014135543926181810099954610268480375804121456473697824335465229835370630848929097528153088643607453322455337409675092588213280010373120474972440676578916960418857178236550048102709599536295568087899155945673091222441042524209733011320999557799572032385200543658115615898556130600261319955022536372195510364559262946250606703989143887464809027796687723502509135991499906394818171282824896266591977051264239699333161177322283546899980319257333823576561658345731414191348102764340936308398738879121468193089795271882659362337860691491999907339864629037066021003155283103671014568322717501954942513935998191261020751425914027856811491181996512708666832745245860075520393220832432652879285841516536333885312323970859395920036727223289469870698427738435317446037988881923326041201941806687001005543591957890896814803203330400506432327964050169638428108918550548732719285077140381933001542952655098453617325159011720871357275275014602762644821789963808648642007212162199586215366433353818697072699531128495187856923365971895539248394136366303508313535576541237323641699962974333422527526342701549843167328991470532022269648080309703388175985755368697585918734943055447707946037675726773328423274672208264511737483891906900259130759003499139698440570452153422402484725938995520237735718458044328592306657555328365206631589972340091751322091071529296986657116790123818423428941155820040527718546950840886782549229504452980170255335971493019212115628656762131510686441136618732901012437872500645539915262133054785834206055482059357952109469239464976920753270130578740284987777665684558005567852633988948475659309439847347129358535936926145743782301179214910411257284383646097293621003208079125387155070292449135768896384264315152869017698693425461652420767157762262880415677020716115431883662261395488274711089511119265161223388317047877001738486998521300701856089885656823760796062242401476726578642511453040335821925197356751516424478509880949592774985851130297679534086520463547000956998762651925739202081961549873149929631570003586109418850625029268400385570240620963853935895183144331202880927439385423998970350434663256993890222747717741656851590045567724225728098698894626813210184541607283570487404330068986748016420690016040586629850375370881065459105789476467565628646439272312147851907028374643282939577958453333437271470072097824404378499083753705507730883724576835597325039098602179398453525228459870371079593124660346951957380715321378017204199412269365030718331525533527521581434856188968735740487866318270764161748760095781057031930780103931904075567346868077299078404705317600511453995659344279865232424078828247390208244708907985014196395503115207410086325029108674068354814381043189562374104178741652007102563307437331517019929733066475159381417195293272535494439451785331486546346601124819391087949523692104949813403436848836039270777495223203638687452289297444225486769067566884127653047232462735421514344187619792078871326129721577433712820979648859702424334609320809543165148291436479920682291454186121345841343481845391562915649933144452689413719823530907820199221054404464528671120355618303322886326989297002816596438669351216042562454598221699272381461723997211077712170241465575739672473170542457941636099827818357620085668130178021002193747077451333833142766533126087763969756570784197380339778097202786127633819267509739939472426828636983165926490628081762799581502496735202679533561360217271751429735555425027069846866688145333522096293929738210094877401022087186174448530050524684020046960880716452564599856898518399126930057296311139383759515510126601835663599022634204787761176982856088800748336084084466983938792728089437633617050046268921361905342450137035525819982378903543777251534812835066752003778007581860534525035673767399641393428700989862633548175603643167264879008222159957728060174873545520016607054641821646653126744592803072548988961407256255698345329987310938149543276043612675067868010631480712663258536641089099860587928840871488167061938521846209003698688269102796465381058032264067671929410212285866745528270534709801697470840140222338834724050519417212565506155854212704542713434695116538088808775962090882119022448326851707095311902124483910993213500593621314342949974665577284613538159917176306867192368559311672052319086344291038911327491780808618257497024551974652481380106844043759453244628577878591720689535886569343308174286663558970765441209104161324198128307299020824655851384175311512800800492380754333463331039362182235962149975560991836599121509497820861951066363840765246081974431199404191368513211973150090898594643571361936666164792758975320481567401466355854839983641504218320210935391789329952464386266693067933895280131566741163732587596087918077297171032777591066472870764444547616437422301215659331772229446452366792013868173374461472371092631487907790629963078730489246891246997483180633879221006495297164782424096827728950866668647735909587816347991587130695770997537761464780886392792412700132610930819193261973474761726697122313958451988462427653219256962014568167404710345665568330207767211063008741174144698409533363028926333151268364442613296357414555920152769903193116849183982488093285388636596408552081854921337148058586034668301503595444132276723609629192291606471096542540941843044079183031699115999422683767383325107957270212484878310005950101220523493477461312010950573741244436191678355536360787021040943425919779056890009863618283351290879679497320696238781880642054389677439164048941485729544213008387924261890387075785692439511045031147848644935780188415406097608998432736978753714575605722503062202691417620322918138723254711148709106071755190284929613938356683417202634978634809099494894388879609070864576842005171923608688496311324779839091218700439059216649567071154999752773864969946343815123500454752815540723064524859164892052386463776058019498692327288494476749758940646703693317601084341273908404339886048927399706345838848655351154155196081446467657217305951718547270146614824281011426167513535074870889829144885877063436939197533325542210482193085677333628889516178154678311591983262708290094645064104980506038262728446992756186152550624761606997653981428578603188839413982320879639054149467036205600738974693085716164375590060632101859603656161427235181019765312465683383353467280045453511949214941987487357725387075268811931318364885004346133697178123999908740644681326773366374137770319963371663564937546758454441587500464839700897157718352610773202796012195021806271576164626601464329605914436179439132173676300805646688440294844978656944149332189260404511023405691512119294629830880544880439390601552571372867071824455371157029151133760738525854900227806058133853780282638003515900882417168139288967524067460724123449031124286614083138841049195370374644265382671867435902504749402320025137822858138811515604038560208016490101653262627454849703413655342000747353429769894382908667532700886057982692099190224345834905687972187565941660925026569007497544245715832206825289624153079780248776507890534804131992561180345569542840535030022552533483377819389110972586822464087528699647871136507581751093481644262299683642664955647079350812402033175122751396813642995830718360984077742819130245416001782501504082073162868445792532956091872649007182288809473663245369962509756787170702771218423308506640225852646086930718647531692560542875295449537878009206699237595159115665404665946161720276010349138607456268138422226146789204743579551621027226824854615325386129742126418123312993717098460979510499910909628668141791916272337128000417337282207907818823889177989054640191785847189871617450843030793436007742041267440044728793976713418720032217660097274247295991669735241347567821070900313504528531511072115353551071705264500983628404387948401739515886582283580182922695673258539789824387710137722655094617326919402709164803140696816014799793874249523357370681514561228906843891614181833665608197009105984250750558786057032390822951771250591857155057332854384143336842970829951478225627909220208596283772353148365189139935883965433121807659433930678399445024417616797794950822182212780265783341398355731712515654512248552137071294419878540165165191295118376579564116960237100084732324639973320292967378873356386056431454811331103893774945674096017449096793346273392639960107104856270649404183033856658714223034023742489504330816425076334281922802394232786106065806653492807687480029832893365923019125619432689963905921816977864712053469577146010817110878883985880061508525418913311416088727307773990978774687125236051985063575340061792501840398435126318033888495260518505490205182358567660034417686810647872098907623833761595158079592509901271422715671779631764721894692362395113691549819121345772458839678858094794922039178164556396706370589529166554105444480073248497134846139784116303331141772251214266619656180256687706464612219144192424561972527897883269203432747036921278874264376267584893335588628810522855283814144041476558892331830450947106297184120515709565123238567573071864072078147399481338905818330320161953374632689174685608457439253301109646947083824213176922466125681654147632235989208129980941492814239518596584116778297102770374442726048884139943260833750029399426674960872151063131264755002217358347280932601487033555263181222634713113024278806183020427468230480026634695408048449276747637826210110437839908624072842745397318498213798145076479056933152401267416591980979677390371455301212650280937918883343144410927502538993848466277705474926347730177163651115495011349308353151320060034626401674004354541675376724424139857114340663147674373087274630352811625531835067120341908308641493805836154035220727898650177047406204191596299281900144847997185108530021332389224200678761676149417661673271449390195145995611420831216592747643490508262298344505454625587843360946156988976003940855078614735509532014943488599746963146555170848423367285857572820545483141575278771542675093048842439579812587034443836621190676380796808718093419249082701015404683570465828280000892561168988158240192855281966175496346130589285360596295418952278216539529051585421020357368919570108149500921304700676235569008006883975379319720765667781948154554040275846146660161209749753555683824422416695832103242960331769976777352782447427703140605285001165014698592507724761471562802296709861804007546426517937853514495246495666415223579418171632239144611112378809181769704145926991977085102661330626229864363516946367379650121007620360954559008441474923856319310764140445873365650240628252598170728071514129452516262135405567446295039834363340700322704848680645265174301120917488951865626166275636665766727622822152950728192952277979729500030152774152687542081480339340074203517630091919997550196197454614631859620016936425028371065496850151008402536114711497339638631080433382084758507809578562119061215478188735748683232587043649617584134516431557439648357944328067396859256574314443258632986292869079927203549814895845748317254549576799582645689266932080854654508354578901090693727477840138760441961944329021081943340621100531563358436829291295319757462290128500154530609670613789731979883625483789845854133091036971541736390262267888730206085292840882215667204267363794712979791271244109189508416300652594056845483503486495448991735932079201601825844932322635048731617205388152328829128049397966633380483887164391916736541600966958625848547779976883233101090444650120061368891475295647618970608428567876492688937142385068347980872340616962120535615931720556266182914523947940151463976590740120339655414281676363647546335010088897286865240078970448991247244057623411800747195563932351624764397719786732718134283788148989892280396843753765172912974305388929816859855565515481920400646701427204258380167581712594208674887537553329304394180106467168517955392214340164699634379143440217812393691048384160937327003456314542143003353409886015017105139823285056464912754671727372033267865220955586128460989305829496820467282497994991083684814268372668510829635803838104682954120975287870177351759232552557698105312144066845018769252328213742145662066116269648028791476222494757507130427097953256179015396824665837045347446235003096179166967678850304221790384744871990727736999167676442128136726852116928012097770934418215821914134734002925515286044292115954632056535975919216843594757866556845786148509894214296563979388672113542756649404527779255730345343317904573068383892330240710385331702782091579010372417051663204205519940447908830370356766799979715265162535378448635935533578272638249039504880691041736655040982327588975781319082585708031642847407771131711582860079190446660071004251015315520965783127202340561201402588128098802077122305466048848366903868238979082028106972054073067505091959282609855695274600942998296716700204688270292057414096063438292821272932595537466139809509145459175246618238192845467983020274393832688807759665447523369306736667285697585525628238385510199744539351996087051394691859052109494166953101541800591690738708395372799162892131765294823624777475635734690087044821632578939248303676068937713833138550263538501734299382809464200161088538462753505765381532418219119457863804044325735139147893198035108144697916575430745514994230737314584384295506272823167119847386339226619814227284162282260280871968292245487665865679186079442405424025579642116824880860295875975727580056607464756455474446455017521314770333489104842957094993920246203429406623222807712345782236031656062089588107529892764004408811582543349558205643570566076770215788332996264213902235148878344631306887501175848882432424135370588595387538606665611676074363580224618802076494563895200815167564597656459426748420207983653525792214230921648881178756767730212898350524715309608767273915792600138427342469774408816938227866714372792355515523906795361022268396893711015212933739842548129923273690718129208597020451870462356872870304606738691019550245031663032775125794236077530741823715637169569275524184052047293338857843032537858916040876098138320997946338906713455551980125053469975154829686498525721112350420813244901670223076704922657272166223168207204420049441991607521137494109341165684154956489994661370898322776898214163285802156884037588634371256943868726925985820131734404136430215184508572506974500953469067034059825378199085372653911198064206323328897073535850262448521999578177641257128123478170011294714949513344600306137811475930712998776580775161938788360807030732569607877930683023571251048376952501885735817599127105620330186262211663336751255343772565875785927119521212025999628354404699333607657417834838409415834363410054495850098028512519436677919501773076875445789331941454221286976707626226526572899309166539010086947119013806981238298756840044407448173910962046137256812025589256289440715235419450673035000292099500005622446942047627324354806178374223914633838444481222934935448567144147846466265785163438069355451771242335035940488272037973575268800053252438486894476378463785161476306720566463802959157417970203886072574330016487162057013594829219528671096603416057063071034013552725293128841103076624946126906870907942217655932851632395799519845056548817674853088559316673974225957635101705301563809679081177625611589197514881775238444018687255142054821654808851556749876677328476447631589654606237062793763041604312206194307967915167382239188865588038187906686766740892104588881037647175600294286426717142671124152773139297350667341178410874986854666871410860120588596923534924019335422862132277687118672300409172286233890345658682228651423512320324843019994630283223252110008715555769599981776631769175999714814002438018122327479274005659659229604985771581552679186215513504770350190485011435846749581586035004127758224524346503840667704801993104868563111527739128068197886848711508622234187620261947458159504086151592886783354875592131464604377827179405755516542243503480117169674943477549528259971187723214356649130995117778882582423788940347508386806997613637122264834651220317125253794856957210347816806437930202244727937296643119540997221600154959759262011668672035147683349560271422940483747602927994112194676560266590205819502111188916508670577759789816386407929112344210301873046630134031810225138128182408129763152488501989752890311821228165382139315291305500912558560314767998436034252605858701165655017428129825645511937262075774767114312312470116943474469434741193486479172441022906311743458258637922577257039325224181119931670459655430017416624705712322290765659987622998306952193942216760784902418666915190822635253711623162736590907731305273725138246754628437999683683271072848178461262696163940955117666005176051689354896653307284938752201440393125722619055833042073132935333666676239346281216202362527005730974138498633021536041132962647817683524035723213196941484956865283178265508911459580441318023881798901398875101671370115846617008716992387368442797322945919531939571992835600078220932074539709621835558778090858016173346043066235785817812128586766506076038887539337620448960817672921965572948576370589321085396904942665986778954565160185542727686634917823074397603287822290497489009834164659701712383250514352727169462414849345120849902144157146579395831317238400987150073488730970324325641441508918766112131683605621733099558595302953052766767138418159565543694942713074822895038791477148906393847454112977393221251184370655797124879078362722547792774750998029145316106702664682545280935214010735769360797890875878167971839163570393216300136902836247785426236316532363118600451413400342368402206978687818835220864746368018636782486433966175296028327779820397023505139393451804541331707202104980641901606253275859280038143927812113956313327256025246426500512533822802127085431510405752613987213002901839976562926923904107160867537781950469985591865498941259061299375435621920545768418161224376968542166218376082500060329842023676009258839550055487507646851248742018084869951423374957875044235826745443875049241400185355043758669336876262715025924299982814337041396158024719977530998358761792642078261582950849344386832777635667532057836259377923787524892544676219072767562764154266343194089710801943773458275937471434053004234826062604742825230002047227622270277663418938926185259070879713097841259002168742684502087196134562361225682344155571208681724240223239068640209672952092179730440529184487528755256545380455591875450874989331762306857166026425266317946098189176416952094415429342175304943612357587805482601594568027186564081802445025047853385446055028894737983552569160908460431513071008595201577042228320076638746114423760233844891479324861373792416797837503239514830567391320065684037538366177366467324444779086713870188190166023856292448238509059994849737874571743500205738042471015846129405718571686301955032627301919674806871342660147466641506974387356597203957317699304086999853202613944189537956894653129602329019744553542259417885011809304642968390595413369301995526543015135877974005987511837253811054108330946137073714061207115779138236086613165395789763241274488020984543220648407966310714255288352314788505766849997132675589888390641797890292459271414584975605719312428197837369000217427145381766819742853518651254921900523875894317739283813936873388053218609210451679782996142863109549736708155969310041965317157337943497784814249593409800480436145326462271635847533568679983758763305431147010141301008015067372088144498269884015117365268467705783480995432857662964429372015315488181606592957139812970095429898100453730797003851882448675224770358941114827936771513075239308220663412462455288023601606900758445517069939820505194367920054662439827482344489995885700216464652312562662226243894879891388786809638831154422464437517997676413485859144296250453982095442646063333467998345909971701899386799558470876763784848852738479287125864716421535320074238394016782040007501941568678530774658550547940471264392054811846317842645035053142076564793908034211022674383000641428382094051552582380997259442546627485915659146704818873164327254790042023090288211965650356856806370754519078686232399632737985580625273412021412307152382825723967832489656499063848014250459580720584989306230135660575431592993554968056582277781796669944262086393444517557619985213107635319602726251750992606970513382062400993839029805899056208339687748644642118864690682546583213026929750425418232147376358405477884524859789943579915958380846431720831957442749177480829830306722050453983858111179386131920423526779512410045524070358900464077907156109931891511430423366805237712691812214835171628579382763066042717372630774969542369655213888746417927724361368756213957996712669336309941204006104618685245732816449324300956215954564440399179615498668007002790266262174603651292899291707163952143962814221934326339822631104037053872974364639944848148873147139318816218742986011469236313565221842211043662950155498002774060093820428555028809653438770472710316566655456744337173464408428144265672931315332001600744808626812381699323320821588313232296401752176603341981978519932366037496305605038249897134883261957005970810693401598327131945826700656562038762581730249210965505928754413184142131451655365250972568698079097378595695090669616219911796586631884086788547740852097789877572233996688964232220162970106076727329586906376677549922077865120497270308786699425669687164681187266967791077636248809027352484857763059932389536486404442692250548257427638512546674942545694533106480358334805042389096109735509145608540191819436722757689276848254729190598269826047595498371788052835595173478864389911573169895244336098523635253269811977575154396715597922658706099027563030213931385100275957668423550395636318311845415126493697654537129688124742521540195979243948527307190353153148647074454779661359347511583479155335611917748206916834498778206201567791229613937783833570601379358672769087158650338577256396895355167497880191245107724346742771229557049797313914079627532140170768441073092079975230125035123778498364499690285875236312118533748798568775401248077906646489061711608553376560932925487435410929549195478192142463847830745938476548822393480897576845512684882978613948247491519815826688885554075011354494177761851169392201125891672769161636171946871108292614754253350303198104193166765114383596971219132706186969724399161303133318693337973253279535770405991935004470705818540993082031083643312505790399333849034321360806660250579832328947727271323728490970848108687060228255275335676118246734515187150915173367467423948922862952129239615340690080348926479667758517325267965847604072305979048753341995077608636374315505650598277905847955090878085106296219067914865182260704889432331099637722126606957577270227181379988094269389538665765847262743836488746571493451215899323867370786030178934604016430712688149479050491735499684694277803674355090846274029928164136883046201143885403022571868391399473267843795824471871558092475383083884388405966995120718691433702708327747492781832481806739119171472609022957911856456810607844366437259220376180017626558045260246333945901098327657530654068272980973295197755852753856150255498738530756730471019541253103412573099535853212021820681684916854649057428942346867373268311695996025423458957331992258424727188201880122670509046693107940233274922338019836096241746736518710242949117341194243659031619818418324264342574830912625410283602811222446821461636334680380358520245655881743055822270266841610249309062901544631237119800690471078063694569894188077839151494113675751593007366698550784418808276977574376239375532402587262447982136662341015368518373912479290600564117115032950071926301105493217618196967416623588532859389177757646248565182627115390050572508538473574969089066158477906570843209723177689917397850057261910775737381492221844839654294356274387663819983277145923609245304526523704953574878069888952084000494124545185071049435898101127956807515270867061337423561402945083787771180831449002249298924674591343453334161706610574794651301584910147953107736436951322422164985221115626358382240978350837160559960657359055040591550802254664879147222148694892397390616749808653477531339031248373748242989852409157939715672326271011117379596963054521737748035962042985275685516335318001237882832116362835211160079924485636701086654418051603763232761380467053275528547448380535144675668879613241026029055590637093506752437774918415372630467725319788339405979314262498203448384403064812485084015536602379001468020685152833418935403234199271364531516056239925638787944920241903980357497330321041400487615131467886387041433197496961192824342696135422548812765335794052847150199928271129632370462661278057095835290696557738742979757301916381018402705312635646606466372214458490217118247452733091633415794525779424856599214268513593989977287051714361608202337601328956738447177525263594072477467464088430170077914756414785632501841154158714462849145869790015975579053547576228380397401135151922138287779893470768242029695407213784661663893954714494938122232752124422746757072639298693224764999691200293650738782409694218213608303773882197350353423579415144886025851861219899878258185169988558612557004076928718147724963027172060887357135439885873196176439108902456803087981160071444757225041847984123889446265115877673081708380438725908878478312122094791553268368982577990343626266863928249848157571877904232647878929310939328786861144908044110489880915036963906411739351388607334860971467457481303704123280579802695446271332072078473812326659378465697796860342315216633167617317652830797999052695351187487882395187277471532757307255054456304464034698514717168499507853471031429359169629015483036294634901394017503752856753944927044805400652593120324703530416126828170777249697014252683528284117199637151627657357617563206415726038052531299998406150862972607592391691113541242882758516263369467488420705297783284884356181666078533486920294182413458873411198452756544287500199899906325065354952926601003071779300924316162533886339819612779608672682310680201092854510915241850039560118792427350571168332178799983865568857548199152224816614437488717718092276211835732463982814651826745410214891247313178774939674884053665366452358138007321048972215812417116496729412314808815904168980651142084663668365044028752665786420557401612195597291376644751985806194743566203313505331765123026140159524537934971025465142499075389336855208487251124157091424913057377035002138766202713670786761436531752912283922571587660802187793617662840629476465923485865311298683193211826207592049993241626289367275775015668337495324040822513544271621248179621945710983977138364048487178943926203837585716237568539581546353181010252536215166877872042723550402932929735790352268125654647818670046365609095833665955692973163945884557873711141610906164882791119472042078764620881431541142080162601861323845441451447943675284902302211839378779921417103090844192804074465918763714268522415218890989040133625144335325828911973854331046654174721515676949303975013128649260631435247500066081064981464323555719235827584731635849936505026692218811175052564693323284429790764953132478411410120105527578760542217766326396925100001378880560825805097851356274896955219375247052486975796137132137543547525586248817014365630037974460946927651463056189140175351986988448982356349024677154215682735087369692958318548229252025671740580245106931675100312778252057274505908087341472349426324080199856298419152475069704469767293291214739923118278545079123256467321841445290038306699964779499405906806964339031663900740383423109262872930244352172263838725407483594374480402855659524162153687081469410760614483660968826595042632934017549606844755559825306687686006685268672461912638726503192812887241390332604466661185638180160949652642538511930537888180119396074618696087008872622101252849833095978506220604492372562971019204755917023318516590248074759712612970896741337691347029866185016227089882142194397106006811828923814610845599086361518051668578030277852942712369275734863853809864650539382102635845969827633354460276906765311843082284219942546560919818981311538911513307446906117373447772178700356608089966533827076506689359872479285993397169202251305794271218644418707066547712224149045355463311622270136169641571747974567509774114174168844285192580374617265358116842730983420490494514074675482868028888704482087549241895583017433093336193933325294138137790029257226554978517783389816759894020659001462876279744246175535788236616177258882275488567264501251642575065200362640812507706615370143698890638830376341421793145207811864161879028312478762140300610732007260644672456156490565620909961729517809574967042989978639603762833071976034390791699516043159338140430003447138465117716965989551343423759500822462563457966458711690799216910252765392757923665374046958776811955320172114253759932937361598435649578096005148609792881545209693112349982112255074390307382251636904769326924259956746708546500877750632331062730933859139108157168048786828758902949565627158831739916043104499553892366085665697210263096281881058203133321857356762359548696684442028296843632735040657492426797743444119484893312790391886808991105119380807852409478537256147690662393031398124212850044736215282468162364944783386787962979634046966857292243992871572534236322674524753018741359756216540526517489644491484436709010679656004501528191834940709871334821978680324547981804670812331772409509999102350735434486558235894971734060662095966037972438617563845308967508422261524827150789459928350436204114992824430080490308393569944473728036871134475546456205641350385711889983335352205243614549011642987530304893619194645838824102258371853001918041829351897549715776970886725993879309874126524330005376230179208342081098681409474260897226191819342049173089100847430442635023780443163552692072901053368803938127852076265600055017748264037676173733840313603238787278916044351608553039871511562374197411624329170221740020220047959225778139929089564184290362360107304082936338552664054455037914932926546059629337938349288424547702517815820288514716382610459978182054858215527271080960075038593783333164830934982585240548644627561020491555748802652378151296370659039003488373153127788399684093128323459379745825153725685397618597824970360735483468884124766628785628551870134466534909655127540829952379046733976959564587181771310663822099471122821665320139319554538175157812444393443105805869794977934009623401488012706473350923208554961860193121533374452603265455470549958916117973565885617088426089902120669491217530656048985581313382080372727281107083415471517586969515886761803519207388117133187185595580652019609859447556679257209363126658362389131898820088616413343864546531566146949723564428627883712122503667038361618041755935551759189922827776573478136292601501351052316074378830158412824836365356664970116619155210652032960064843296198518127228968258659115128888812278579387980368509063755616542077607483615695261754322957440207139681461377121951953158543081811384309710812940642735034638727957544256029320349778210620720151927882047212218140157529093805283201101832319712834083174216316267743101352398743401804325273211483778672664192142130718118751032217179169159862715385592801034982241134804666190050304921694636920568006454199307818650330448606178140285520530082682669788634009161438697411631385784058303628056962833043264494670113434330501279881624849552386308953418629605963708236998565779481902134568624300049687962439292169724159974587044815585401690328889229211567674870970956423734477801469273391402577475136558827532602639513211688621692496887425434032964427814855489599864278803637711663616144334978207483824835874647965493832365467685836616677921242397738479621722139293546601713623266974110567675929775896947123838953688568357711262077258662190938886312627008288127232193775537270304700979237601614735906096782324668784315658121052708134806799985205941749543366184845925041597905158377569285559502797996451701164454477307386140463026619259572574504527412076464256033958621395636220148097540094863560836569899901925754433800225048016105469577045437837251499035911377391519272746578899211609454258259632400146797545102276305319793420262335998916154039738913843078021452411974245491187958200312166003088536556656146625762549299168057703995043640769460889677288006441563104095386868474842769480667501604014913029556850352933043498166135417922309509550264726141548538501547845729607553295935416831260177202814083968002647769687149809342214906796161251871911867586708977694505787580987255846227689556171016417921357908002182056819318880851622208404289287374095208368229185208035732983636931949277678308117522596853139809705216378416587185865998536444580622841291856693241900708495624924271230576465463595445850921309738294279995537892266329955646114178314988289524145762816086068474269332127563225373740462603328507039728958973898062522393479972062977424223867578074276546917045750295786130945797086406591578929914254123819911243632369197996923823914300072140673596582477120894026035232406500625016451482190585735358304805964950616466953392576230501391469533427836233881850685399800049781308480427170388761017030234237321879902222885502798021725869481546259473161840208455150880774675659286770115226532016038517394822063323526425906518540728853410080249805244026640816787098316419117096151351347617587753711230812739792865315013447059502489165195434336678771674719994506417807896238448728767539061315205762805915942436940568519819903500409819949313145360799154322759534332330545657042560120322326375873086848731231463873550844203299047446514683916025196378630375742429600114675235574340017176632400293023355420904519112548167036204547900567550650401292173023848969610416976386215881480992207092368673254467861369278249546079155158251224387014810373163264988844571939277432979351395302504345715231231072784937855574514612585135265276726211063653832408317390974548971073843448606157886602947510795630079264894841444290231063364060765678683550647653852603612706187145578233579422497203804176293125635919012026022748031278022847774715155779606423729136900212717455662804524596008399147792554555725182474011667597618842627074853491353306129859853825065012484716524197576439241777259311084537003945401089291711589948781666103127052982844782268931888343570489492389458764881617390197408709598448558855023832879818752208963195573997352782583677436225382603495221516568627709294794774826176772011390051578113532216402880702759617288365528667381398488391556088861709615717400757594880406186490021009032019397253740259248012510874915480448254173640203323665067567802905930443413385539373148313384897319165909640328436849010187281543454407611839284369986554696292734145403555556265922465879172333776910152425053297563613965725866992645708287006440572720423098188972973268576263586967461508543621505861043369566796461732928789728805271315769337790377795603601740906469380460501762283207546589007519843575386542540848702632772187819273965110756380395455011360385711463627459745352236925194160687332318803939078458738181628004527086521186694236951591306378701673467668326375244268087858972666285887352557692193435076872543092003129776874022070069930587127271161660415442894930191431100684869699659288338254003044279315839586640757957407861227500424730432737945820960913496488748059145429987928660897832924691934610951504937442527373797523427031230067224575700274251754442525033693484672426920150456594360680591883745537787920677821365196279209284575426196034745863573521752232112951799718646891360832969330957417257669709789611948913179622069490189678966759713237752529529414301388142015827049344650180645780732992543423267522019151179070140147917236183092210686557977049023545256311067546458855365852828510398700335011376465693226465897777013684308039798279932490964752179306684535753966485614164434780880682735326066439863370412727081518059825887702435733724544872328660077207501851891180365123513991839522874707306436480619896065370138272578091730975056423015463741405492326626318052571111371340521794865384555029627812193246681541942611356683385456589909432221137166882461358349774176954761786545265689815102284876095900770796732629605921634897148123459377710390996519269487729811315945732250258548119183150372722996563096805757180576329830801367733836046675982167459680091994244501139563430853779501151591559491676750800620889767387639033598298738801820393692451697076103414489664572844672421922458330741199121736270328896471461763496474790165853900708230493623841150181627485744317228062613618533494912934904284012089679514285730793883144571911351460874324080636131170352069814146822021526543690264852029156703874301373085105230968370998687982006736017113855930874031853712152996243227875653699389711184902205637058287835302506053550753042727653688657355621439401162387225782528969571224582074698861449137187640334863650202243890247977524060990373584974283427115379728386795461928973805967600180732846015351004927000584935880865494244290677594237498121563532963593691307209025128588731201830898035437289875790697685777505840626790909786459462853015403011210574472905442348806291806094519317631961599259225863400246842436588551783416720055041916818122624303548462674072999498894603706825526120409501303481550074111783216036807993280012349835007625733747214959416764815736903737607880650862664143309330225315699071835812830464156135748432279950503251624787954576114957139296019111209890693764578795733446441478146865707503028003737217665095698445317991920931046222272417352553239907199912921303055625440262190426636929480208745187912888011124947774604331209290457510629872833534527700705009832493898846300271508373251544857083877029706672628809729496485756773753229685351602272332351270024372722822742035153156425136157270840138311336489120699648899481222177480727778913332731731474804598703530724556191994558988200651962770604518535788270644752649759069658511328711903759227151702574523995825099786788993459593950218297585797494413184679873903357131038972725036411646710367970776443717530022804897256591919165998057897768466499424031725048533328895966723513613550526413231031602382822371792566878567349209635155846099981531797209258155579769429118148971509520181784617819331238024825213751288805501885396728687175797256997932497952287754038771882120609498346160233077216543760601694601290365021546877619337830741681628573429940324440009422709145223149412541738040453840713784557968085192254814784432152313337980453641711246240639134839145560166053733827804194558869866123226013675987305996820428832332755282705551106145211728843145772295333764715696011876199713224866235141016728008379223512171791878695555077942641999700628352213348085565948830740221856315198110268910588926812832243127987337598555078508823325975975743461328764779628886643166417375026165157769344970773926776358655618539961911339015532687589971856976088902608989863472570055933386951880470065087764783886676289347274121760602401708303278139046271286293040486193057978488415735788693944704005802045906912516439535231589294428135680128643023371918683376427487840213325633844692546858808540693972136005738195428717363881198668508990709589145341159760384729507984083549100240885963718941850078612768609690079621914296681798117637233970716251167312000484503920199237943226921935927329451020425627131830104285681763590476743264904486298532515486639154957728921205811861744241978262783349817548386485951441629940245553573566958348672485907973124511754394292902272509745634646008330924252478221962147992450468713705053122905749046990858238333586120461447145622985050155138676163953685845491100414261509971113807866175816157823181679750916529751712029611919886288914049004505221164312314370466267977220154991547513847949204735963752677324438233964981940858643297788266235827252471444547667819928209695041252454597061045446850972819314476867312363057274565663675565909832615061403391392806319492302873241009513694023775866980320984171827677376233045756296972304826730407827077549875931059902983113250627497529682479488890224216814267131242973883948648796372301078649463896686755960404811629857895957803823206942645414832538389815233391177401255923741331608811785515251261154034349018323088308255305195041939332977364312636153214099057676834388492938028728615048649960046889545037517249454449834732499039777606613712570176021682819830451021995770573676514455698720831552510527536102661420869166866039940374682091591457603286825465836800721672807994406748748091025779713773244156560253568739197521751194213450090715124246301698882933651991870543732983399951828103831566059694305035644633451955990813044268095209677821935112520146251977655566947709265344031004924654283700004645299223195093612317840135006465737653046484766401620805959729723656941903227395369642033577268183782098876900409540062284412014614510025299616955406062381090342885223637063010522045854082317729354436947070076018383735579449170016174580479114435873915135024536480417295886920333194614103225794877282072508980710684203648202143628519158019272372130597833516889777048597984818141161651917919436069736307120972301245327000933719112133252775034764289778375629727412396828655246408281023547610231428817555244692882232068912955702124682189863896238618375814776045139942674461566433142882343778324895525335337715681632587846972049674743857217712642024502500925578771487656899381625982129341723394638447665281069891551554909835066078985875499379359812608492841674202087778344247991434851206214572047684749468825701158271875229475432347007922846870945557311145175521488260293667123454448593689521134214519184960412705267146341609602029126223005435466555548069749381742235936605830688603964478183026582295217285621982204792842892486261902780485558059696305506361399637185572001689709297676489794479558354690973688918523183915805446955293311685988108525443607269530706688830680858307592814759455890191118901598824472484302914067628742095900268392755869468545431605211012614579817286305128242497321214945101603930732651748649606425202510652036080882441485597377160296698638402439517715075176513250601480038588092832122546528436644952314796155544468478728762274798484457083590993580653630066251431942732976725029210076775192587745422495908744145361771250148066403227085910600971128270810727157488969786056842265687758525131964901102296340179646472358897010062035451823578997083605315572184717844318296052435277535269110586716954736356403425059273138807318796520695105456306019351779713891265015257067680159877308271712479588450754378670215332748280940809979125108108520152172215759318068826000722773349167679894071975352092714132393473053480578668561838692076997485309277361697620718630757584950127036977715712331070892793052411781906187794992534369393061211250963281702880153100376033009149891632302315694591150271512405897512070379383032700427555256634512278006188555229482686228981427225329844583521337249033894711022479454870049456878676392853035089148399371702048127745866098399788708022218790902369904862994272593011644026583318624478545431276660962235046778571933955141552806645309177149984640908341242963526244462428660664347679544602185616017113147875479494867737449421503137818503311374334877049968728680408897789688783398415531759464201130792826670846871338800519042786751416602123556779834007602838279605707947936306017558620439254406427351854506826591830156108283318129210294920598559047944487902244757855529041367994567580245278917846362584208236011719118571466964906736535709970356047910309827588470174399376610193470754608597469283243145655411029535036977780608458585703050494623010363463274097679025725869564035220576175799921947899776010403730118405067488674073282998113780770652882260794848970580619343743431994902791421544887029837227388248688109826641531224107146381224986406285109276638270853290043855678713762746942745865492160720023377466065292251474103722592342154190567732910255886402651243901767407954759982416162605201033049996839497295087117293478674981797152984835580949602380836447476620955097240991334991286743311019003682185152094535716123754235830393910482792650596471941128885480661960983913254291438193271028216665986106459248893927796467262161567548485570843963084884494979823548911537723947782757799237423173367363711683122869422090399933160827241009878405925743125469919443249416454493571223035641794003148425459135708702307307694065593441587015105492943873245000343398999570201530426948919022830006432408816474364830423303492932002144005685367461105854646170796248011159152520766662887288275785158501534998285367376609058061176987882318748881228421461170778206408573918827385770931183473160225997814336196406603845048473348658403121665034807866081889296038274206828055341360722600701871419763262507488272000731462383444083784329889377015139254090830901399469113512921740391701904066161699629999631415025754195844132310794699008493378933108966467535438361162139647680231988525275077987630396843788732644666592998503311620592764532843528818473436593440427043834340318490676053469954920535125740672314946346184089546552884576262411217800605738570774751356040418929209873529471168941941364681862757038008009925835078600009159098756930055318312961046782107470651926138145000522910226451035381515593149130469226501698868009610089419101022383516473947814320662520982525945812667473439837448445839930216398980265840724454229778333105285962616698500878829089183004285803954180375465062943848077581762388026508950769317792167208240015393255795710915511028033641163884006139900821484529793913455463985970331966932549797444267378881478841169920264483073601550004167725547659551426049685436295839188055271747151212973866749128842071661657131559797135703177791731989039947382867668220031474869108137910276126052549523860307581103221726122189517765379306881021056623948423500034719070019289803107087254184781806079232390034294549381990555923471719414818542862104947961653841078979713829249583935285092322643336588314514911391174266127690161906399423928721494258313745076333366033613680262398449630915060272633708661385659865085146796284379514547064948033793217562904171920561887375525434850135110621692231456257045059829990738671352365018078224938847126749345490264992803223144593981149473664912190299074426108885935855049653874962678272649509412139194718205864217158630491062676776378981061836449640164916093591771668743622956966418592041681429596795711481900475862240979649056644002494673750039646328568786540552880905886780676552582279497505871940506787228331227109313443130606133732971107925046779545124973054794832255653529987759771519119408686586657853287019945132227347820211467273781366064602283420175847012793897865977071855948029007151497132806700141838533791838925057150461874945052556153505321504231080824887262413559444381847475076879888926694149289306850472524207572869764594600545874835158580233801130203106989516552176453212632146083527743815827427482431217791018998739238817588575226211729239096907574051257989308137484114483009165545783886776611690578600665981382773626945996509774175861020862455320462398677963964689102508806642756964629146040705696846808262879495926178125476681701701510984450815184200595934602167297436742936781609460688773520404635623321477538017223344575888950969576660104962705651744352160462813926001591576205217250591130784552698299391190006605390780698427820024090335216883813511919571426246124615659893672100900903471962277984868834066580572305906030174652242762949541338556202831915109816568588998137271695209762236991038306799544626796830373730596876810377687228975660956682851781039642619547611836601205905632733026994029147265345948375672083311437364515694177581512842129696383605848310577460293577619121381344966827047504081053296909225711986093675516440902029399072352869874869580009114599160232697386515412434569957694550619804792805298080893751651499063919116457268346047373571772640189531287065516511752818768867411104762284970557632983636151842437270645726419018351630183660857014436485482677282140644601917025340386868229757465837232011365605106380071061667068074152416604496818228450822850510490282697554382843517146984022428276589353317524723016573181341963299594206696015950796699984859681042370089428906590904937127007254142073413618011471384694254910837566514819597685064437804729982460651468204168831759941373400619886538247175688613093231304674808961891538993209890987971591090990752618855228680784309677157161544515728895241217060915678074938765118191171177690418613688830473051627205930413722118404939675384040625554569674489289380304637639094088230885270558024209593411616890209928361573994769824675838216067583729138021972860530526993038420078353996817157115042505135354062075341616105845891351508699042410861601117775322504829218074332766155539805831940114995691635315633100338495736960080195934289140103334870477668586868475314866444985063387208032165610759134708002716743448345975785516515084750973836030510187678981097001300538880210047664567840742745070183687163208246610770707325809772450998617245650761338420101766449867312497626241382876713382032817152141627040386545261210572692596880207201252499493458257839094818798186542367853745260803709529672386074357128996046292575476632707009600814745193633602344803437747319929037864914284493888147635788418950405255394660460254467604783718628805848467621119943313012454133575755244307057015147730421426018984659977246098352938604299981576954995007898954301508509277232949267219316117569714389343572469965276637794431395606774174967989992536899135209982342668668560558559851251908020042233097380176886517487638120337822202219743645871837611772700896248163916110517191513547669246147833124060082647357427388593823736563466751015623938389116998687970359967510805793916065772524458783712018940207510346682710815696834645210152940318100183854143109410093286266441266769255179706324844996024707507782578283350906138773047866464694173192190818904258911171146247690896772693593730785930120352099336811687852301249056579600739896542447517273791666058725863848668512297418551396766686980700913353293867827307240715674988323659172721806066075499172831333165867104405004558710881436351427438518136607849054771209811349087171822000927859203257963018353411025136813374474133710482179638680131150325491129919041029130660939164837824778335782625821988794565010050573525185290781984195933805716904378628031424490781313501842548159487279435725115358840892154603885728805268980116326812268834165079874393313587224350060582131217672435391801268734676465215379757897457557259726331469770311718807883167298751523721118246235621314149263086087263186680162887084312005809188700033897818330123105007691475062470134811347335744747113974233407706194953565214418468674710111508713633534671050901242330431382499896536231646398603268021963090350706060950452082082958001983590861400356592351895630408187654422857205062885586069399310693305106663701595016843509626193970436285840289383539461953958362980986691662282334312408672642837512272495825950418299576933664005180253054608943944037017002127982144665714692808190092628444029039463305761431301616181038997846736180266952712784479455533624300261249440219611028779033265777642457773385466889523626526317105227558284045681722379936447019346947043008425448803060873763335491929261258557763917136552066792902948107797664725363167851101344682562967729221613547922562359909687219099401963759241105868717263418767460055538243688932970416699515033542891951662444269059257705880100231897033656078711880577669946999495499251572825831775298577553838524500320229525766334858637024133386658378061485026501705183936799147163778172159226174951967014729711950469441117896905345010171338087471812845533826506289704030342539392470537110322222644174913226508074364682621710687819955841619681946674673192473516347291993196992512659367915506253577215809580847738882347456325561879962141964657165394910627065523855920032785659086179381698379926095873036811378835437116877790359723224953727182603220675500290640963316218413945519760965507226701402448752744872338724199072502165515185284396945085776274772742641973240572137711706631387123165081503305367470316800898339197855716986546502160661622150539347691719124470427893980919443027898636200991368328781207150748323792364586458059014040375510488116819665094015143363057345750017810926030489157705738391315427638703387148315281324913473505364851482664455547092956095390053070367215110288287632301029246606980308362408838879140140317851947287027868536876725362361979611260270787938724153175252281108871885188112172968195642030472038226643332687540094092569632405270921170117791555911825285168202549708789543595303492732418527322962443867966838792497372988523143236043832936185661126217432023673972578492373391206970352563390686049065612485018137203389393043777540794911634803812890051390067754581888834533504719137093280731883385652369080785209556175695311043170138189151722517042811800416399321152207852564785854031561920070550187773171668942765019187918059057956017918785409391998661045609449037141218444956422915260898104633616052001947655821565400612428460147256605007844905714202481891282679635605816222802806127783680498798830436902961301680801388705472880836077282761573682695618817616497877872304010625488812788453137363155281349368617997157642505076157446170596073495264995573563975563584736358772071549696171292894294973491012435493038686897223070192079570624807242265881520663040386349250077464094472959468010567827431946710336111179581085602597240329050019305696307325775930729950770501507788110135320214322006513495751145768118469552789683975483455458019976177666180644075281184863190227070836634607084313415167475018297588488885582278950227996596908589423600261260968085272008380764291746876071046270827437816857609712643156004235341321636825899018146570770216766755291228815551809812568657285888620483290121520657809855756154433758019779561144563580302488139703740625795438608439576603106735858240837718030463061875160908004848795886583484055418919924957566371040877803589947951389563941800706268915452364318548772109132742079097763793726698119344326094069977893585329242465695962046109352679040945415247713651834546176670723102578290245501847789984261299443898406006064144019242919801979149827142499257187594494171924903639956367095155171271873206172629096764288829517483936125073745625763021006865637027291371284418633359885250094874856193277857997677792280355302507091541527926006976779899821283681673135911081620180323659800322930357055849263004952695535105155983519204423983632749072560798600602010653481724618623090600007888323016568716304026978095346277937112551422095507925942824184859224473452844480027781161350529693858093703657293789578532484221518757529511955303344938789494567478656837657407785051302450423453863892619682917011242531974521953249623075850982224490627365395750008376923118244428387685419061211388200613918871933093057437511135949881632548296845024871200652130007746598295561013429204067450433693658467332873107405326640101183955334695535178673372854087157899853077083493804663557450835413366364692520843729358286032642112614868507343108190593764201350178363809347033105297706712489413752014352984173459477130418485878288893795333846422073175643775350030347966611090298173634717017626038063547358594219812500010450783969195411634368581906945928784286709398465702357448281188424732480246700749133248900219063728880392803408495104979784372509990802712111144022129077125700866536470987902710117150904707958197881363714858559045250764849668974600872417161085320417231951298916632214148668121840775789456087869555274146931939612365530902930400294927305378094120967648825366607383744192043780033432673049685517011896735609579739489730895855821754101408236570673216428928260582503350920311406828627610964292916796491466005294593592746152395238058812875226307124576162674525415047732887983631725191413856218350645706186257319926774287368512427320618457117043848238689360718511427913072936153445762530391899437317557551332167276926206702257360438571673876063004382946601561955513407041900097488519217907114360611747817822653761602685750846494893511181595084177540941903318905140077092283178442137224785813097223092148177953782264134999002323803284336169032730068843391179592635329160947724747476952480099980327358373164088928969599695238684196341604875488652925242537572152566330042438878215594322443457819613691583966820329303671806938795377248833505484045242768950231651357704260825808365076684579166408659223721037424030596123813688275166800708054002704397164023014780500830728369971845143260084370184330697297803445105092923079125601520440077731167194541967437984824308468868041989075423502677255840846334581184772024132389039768317926562396388339994051800935904248974629338772062481326251376245870515441141066445775085136343965017403626140833008852448192713077913515684842095228558807103567558401404175768319919233026939119850690667612898394438465139788295251703077778631430799095221320635585590422793180443518230406692523205166844243750701957238807125810693660597161972038325390483401900110992368030725661732448618968198766568852753286159295752457991273839929332771667457255775193810657446529935353025432800107619895618412191472341520340861310819812966032714208108283911392851331365309391804271042695544507387201317943665064161593257413278720556369885403616013413042050552440518224760660168463293679998644925608665099452895701788117786061530947330473135086008195035258392137631284845567971680831706450638326512184659138896098597065985922702405820994621545317615383436458328369771395444012253408438688583409021997873810403024460871949221431746235287064192778083433180008962146362199907545645110172635536026083411853634060564171522405493464096810483163697508738626227830674700845967681977201774183711661023440703985624128747665082063297003129073258355688674222679056883376828323034123986724579862318254533771366583477532901215808619087085769052625847755453059095620307601736530029874963740332465907512942852093783833413062567691088271521003038761880333526403971800277738964668919066421708102535477276157459135065829934350262321295812659818048806962777549620781819765828789342215627852041004683760468067044426828738061557623212508345271225115479808457113384938161537185252251248049635535606556087472420931268107494573035825248775548219590661809697232541676466229201651139219197489760994979332115469723843596332622624825496968502251580352107549783671682442462353267758883403132923640876790553719019105381530045978418305273721436689015806145220858325378579477012259291092286054376879952384110671236554684190441626452769018982635811450040831938479968278216881025805719181722605982483170253902052821798998237899986642042777354174186950195877089882269640181482582628008713859243676690311989646256613503595126127116820679454122797285621782897932721755733525410201507196898778619986847084712104884430539007415915758470564069347927551986134624658092039819104743510922605406650313954341463647848766401288035817490774982685644986572456240276007607773412393627248480092742740956506336380129396299965894807069320784832100268115317838309380029880160822567179616929734229029290039331754814732623210176308771339624649126138220969216799488920327969505140135988959196664892704889018768871701991238641467078032924955438749355246116933272078314558293366754900203911907297599993250394815426647243409047752411299579292292203116180129575154155713818044460117699399719686480183743771603407758580312744024676085258896581053322235323889233498257683362356000049253427403446452364488216080494439979037353019670795049668241704552191426249658579470560208646515432444570948108278773606117891059727100835064893878734514437179242182714399819691186818998133351009498634366100491394291689035620488127182795879649071981827505669484460633101435286497332661050555771778675082937356353070148706687290966720506088662772934797151429683695104667099735056097676318737679971908953671534932260870946266530997510575090926275757476988125766615199553591263809514505231485347926309209157739911989038541223593991285539364013556479491647630263999688713067365650345785279786999641059078109799724013594798062782424880342585849932804112756424852362427493585614363739001017070708611753342898940837735589136919043711773005004326770403819461420116683167391211227183199743156069748109580120659361539524421957967222513489116305022710885461146933525628063692216257413500002881808484633664260945030340865327944991908427585275537339695496897518825779942873156610966933848779306544699831332492750342583936129985167552133759743985918320375896642365541660356671794711648119226773275557597050390027333785472358218489995154308265413692884816861665310050311618002942625485607144715589124005182222632780989748048698577356885282149340611662570055079957726069909010158938428801710687527277531644577941677216167512100201941485210706209686343046877406883665550411018331930857468567607515207804255007869185811343161557840776733367067782569596126410309016844950494505184833291078959840991088836057508432689227925860219314052796917321820441257148115087653385586339115653982079161660801361930910534503655161881360309172687283928664224253592624753515282108710803026612498585330665090355142146000678691211891239256166622338671225535555621612869435828024043992695222533160752685951063085134637192382340863625514068408423103158512126008070449149215361108396591001572044086215104468203074646240739503172712693602582359946352753029504197553414117790418994986070420639632404709147355262321360203122837304454279570803531466184933721056652420081201343477859085394993888246596318373313442364857442939193210098016791953408508799870662160716648375485179555149680430815416848512450904397345881871916899954062201803808179408839583113709616917703096788818836207820879393783481470987088786005963193557547226640996302624711421885469951423960288180940665466855936913823086921487700057731021222561033759887470272489431989419583396594670698381752531947614115250923774910530117896654548997902407952227563751443415816983893778881919788323562212730774314336439847772158499244601845288500647973502396148813122819076265391523804780929827867274663836673820329607874420066123827111053844641340210700385966730693705033883524619785423416799673854338498799128534713389247863612317523525979148424314068921589589236500842987915940448072628920703304034795681568525918269274193114465753172041343874897543180132964704848159910731596144389394485896918532504268968653911627069034945136844255281670007772211669361609779690211653348071169103556576073682307156698149909432488802836510296001885915034627573732768546163025929925119993793747842012869275255197931426662778355999573476245622872118113576356708519375589929070790254548951539251956652444149709978468599625608821095744496898064230790591091234597358107499048596549086527002543949984483517758747858759987741329949699387918184859378093372779486358366333332775443559399611789737021759599415365516413402339867622520638663805107603214858747542151736424810754788585624516063367313726635205789981962931007322007953600755248404416795030905280890145320223027773168468380184522396855257474977291938027476527135602584171007041110845231593174084121203341197149964721613467434277500671101983404683782248371075605562218964257306450577174496283612385964010220928166546919899973946820478584045549437396884365776611963047366999307896296100501072986400401589993505299892006580230994938987523563459977033290295879426597196491949712204495479054061925250888344904152990093839745437582276623269136258323948752501456923591697770866403629307164727834835055988138360893408142249316518000515005454655224924323119975055112027890445546914451065144281737056919086627993791593525980787779947644691495565327336899100009758826993986102234939155253240190646471250901376753780568801619635288129132833454873868631110386537816376075156635118167504046832373038099714936672734609894520070154478923138505762192193592516713811912869890514541294463932312492498186656309757076964572741566402581983052386954605973303957189170022726040853996008217463293888982377647404130735004076428454653951985272943126996252020207887666891444315848739830151741272468552329282583056426814339661547258410427719878884206036964560920915403293108234985613893115682154416756259244037260330777054410989749877528541986236430598400285363447689984353391148447294379639822868733199909962611010084782953556085237253600296098845922028976516585368150228031427546766292203811084635213588269974830508331082112808900257189879915382946742317046830048579247398866839184143360128569487806929544014696835077793739767647480512593658096200211502116194822750500993106449944561083900639077341889616506512491608814032837960651505100804208703570339859742742004788487084282182575805700376270583892955908238269882637570285414006867298167626866763402139356585355745791226397690119983491038348239699932802588867635787482862709823977360561401901844330888881980493859755648254516498666812823327901369849460489171672207949322107546911460655023386752992908673053757093037522634153638309781637519644333974861852819280590928228585812361966493478584570624478027709089886451117839869981654989230041581621231457880810495910222834904329051112454893882202769889601105995648222739719887054452570915252525783949286383519910869304428797007455534279231839756711653892088790617293346755044741879949505137528801587609972423545852487913830258063507776703971023217358674674819447941376203255855088870512477484184326303817317805466421217018332431620336113573217114849722765413467252549066014137224585680528898518530532751581419104830542953677491676017129707134278210635581325289227158137510516924577121578357169826131535395920126542110887379874005500592109698675403410580231906002048491272005168422429282171184540380165034435802680542595234109183090220584687998302864007734772714545324884005662993601047333622097067614834306944329421302499896687317133107849947363858185744075215270229307774104155490168768034970417953717271821918549671846105468264252071639653121046847300695420176868587572989820049210238931250743518518686362884084857424807616647867848666399467352551864023631738365622706373442100173832608133006453250298304647309540440323536952992528626819710004696749240551853612480706116100585914669850819577282254147929819304336782442784079959413164661363094691782870888744851422334192502967459269597357431923320039491489042351593897115622736411050197190459949445367086496541280484957309983445920040507464232262284303399190529718208081935689769993858771004349891114205735863953083093800688868494148088511132876717412607055204497133807008183128233676662891113848190950710445386599045895645581823136809131069399962891528291446076454968220583599238048817838158195148591083047295372453758267181207607873347419691268162613302555988711409425363021443398556514362601669709308918172182158597863882780602695319883594063451730829962352949703051612690262123903522710326595515083877363883110380646951083374575655569402877104279545574968729549142590180064130516972207579540819332367659723288192774800345022434633565696645031271266897919270773820295082392252113993593857371288771656568444829955312135836860419557681124242288163372938541956278598253564576076558759500319783217066954985807270722344888976881174466544766565432526589985388956472265518762988896139046056694375181353978998795930177342972654922328789326824284826015374295133028560411737443701286487201210113239814050652882858795153205749576595292971860234373680166280415701964521285711405281477128947854859052288174824644131008999788525465178951324013682734272902278439003586079368216531400962419347049696472352668916134226598336660259372754083900511292661034372630487509635007306236604267353890121201055671917828041302104208274626495589722110660490014924592554803891805745741175311575763611072509750249761450114777576264831191697654636971497029465490981776605126738863643396668660661321935494376339968586448451023605497744048684610230863504813987841884896753895290802412423303094536501817164302721875191697143775791341399555667550707616874718408854893807942146528194051259737711432501605672608604300287122021813680112884440233677165336040123745807071043417862134522329949149224310554880517674651901166547335014750171181817056090015922447432413418803357905364425288869570179401287442827627444850531647762648832805047322683714481840770754295841592403155263120784920516610252862628819815858039585426133523655429106802272225395997203276428383843912256340590989999727639911574926413536358707620664403415181028272384479426544231743581268514511646312065581433529904524589611247855502810747544815827781052112599332554097710392912001365838347424217990956259314993219937837856209189118144899565606300481504517799268293004811953254305124794321695743456931344470954256037015530768409666676379074597537712170439521654152453454640639713061760574929302743521130806540009904188156866377396002781660236344802563366488597129245937796143827420698076720171338373254952847067758155862283416745720854253920392596279661302590870971104426251468745364951076862012381477852768294461493789383809381191539941031322092771728148002857858068541690501492105356559990616131677863382175073667112496221112208331198852580686998098246965489370303026407616130789290102094320196272419137507606801162562444359680758972591447308829157556286567256073023153828127745941973098895195599081441277119958776927466336025236206660405550092836770749141972507583651036567499009356680976551263007832485546650846574559864549867794211752633844126919582574842739696611147877764594536197420072590444036253268774368317322537818141042667546373835441649521712720866424099031730974041847084488940560829130299208636185063645685968576886738025402049231505038713897903958658316335853881735917285990598761084788689118311851399640796614180787433636514390512728601945460399389749837612260300828125898621709230668910791821475623882960426188584341467364424358016416444877164991971688043932328894705773287434784427881997290211753599315797615557665380378143760071168112534965234186359236309658139786736052948763365646273462987460537335011156412137465009199654628067186316482176237364376282748381507690475990108421573935689312284829773176495048739350473580527008366157375869821627403590590991833433524982102554334893364212590407166782210182760324122178519738175659607787219485832072558844041998288034133117783019874270687689765370597099971690747521872925758355362213340406278490431493055355818074112722351932357127280056871079023835362573828893666793769937360490903037535254920868973045322326483494439429979712519114740072024714025687537328742287976766557240324824992982284432763852506128328602339940723380276928501922826091258342409940883463478283793598898921636337681327187580084980879264306165021698490854121916150176296461754122408320963754694702279581184969069062800489040806320746669881242155643164381815403085713968671045230257993029065802807594683194334477103305171222920378686362437464532287585935788639583479586538873012710187864140962350992973028372042683044868096407685302450940558389940068280127087220990293009486206194136991802063542048382908542576963689433943084856667177354862160760441016040159259881161055851139670743138781424144882719636440197050530822208909545905034264491653528129707622308156030023953604931995459491275053010172915032566544050442310586402379424136197061728973127175449302990913087175535858469958474670035190675729359661353202146160913570726948151192403766746696055989612673209989243031213166478138614916743801829142031809478740700397041928985927029809193579082224888691467491817501585032966663950218037906728050004730546965966354505699637802247990890602530049831885798016918227904078600567061993104027014552805271088967210659179303215417726168059444084027470437073224422912904995735271935002165667931637412066916819212659474565715272161880316579826514590393941807253712522382557946411229046955651425584740975579842741722357408056602285957900812454265290486625235041942067571494517986329398385623027641474921819351542278413538361983086748194198182489777285401685551440936602309543039500829964719605554888875851124258871141759964324455566196744485248367004479847469641164381627632144522133604092057569816193224872591551409386208801934076444938325201744984399793827785160730536675434705532242130372535047791904141483522883598675744864867408768416092016222088383108480635868276378461476121009156301280059523664403340992354409722296178664943122114626132248001151950556478929292194872201177467185611788701894786468028327722157491121554825895659479818822495679729449951983510424087258511845293885857939130306308436465834366998857276523457316033293617745673666588066643414062510652429102179852062331204433152074231193315959279914079119289451638289301152212776312199875523594112817560456249985990507989450437039478588436059222304606252870083950528298440699305791613046132586922038443580257892289877104591697309641501878508793548297837017640587237954347252065008645452510338196623382542374088514053292582876296932814123411789642853048444413640654375525801916359182882999432214422526134938070421837757789379711373784631735178849827018874858769895490675956078116098914784312217630557857153072621381110936519071244473356540687057440035267470907304183483230098021849381667072375713718925596904611951296901384106607395235550635535547162814164386391974469999884168620882798377289458959225193626382493356305059404702463603668344191098589885580645270078070444947601503217664115954049693733553676662932561193815832703826597970292732897903442477596311718514115753713341781069152739175318371562168217558167528882539123457848275344368638861066276692594335914029811276586405257387994459526535937532940341196304973763041901223394474830143325808940358717130062084946378023012742900693058427089656697258860537635998514621361694330480670803877643283937076038121705078250308086284828508657662135240361145754886189517507722665667826010776106775655723398101614972032358152220224449524468956497075109044677678563218809693429818236147163327460740908804619178571568710502796942900441514537951756405558020664615537970607351435745422854425995405114898402531090802840487474095615023561626969986933006229735835689965910186160131276159326785526269385286696651747473640931553007879344078139922511292169802889853374006019329977913941601696317293236933198882135430854322973428679352083113512425129211742307700838316140202423504668004976485671493149797954101117455800947384595380232911449636282204263710370493677443534650043731082230114352594683053696001133104846811026898626835142940083711545146752621738291082306398291629558171540419691982424247349317707550475886215001609146346678672840233300679758401670174330226841686861385325735360693721318347914348517718651332102137466749795115894318352373498763348253212998913686511701634138765706945833067748398280349109825230699639730863380841523973048730343196148128104201020428916326338619941595313466392574264959382659093128545037200592788337277536199684687452429817613614421319284488358713746878451552522666926676114877611695950608460211240207746254440203403745129107607581352811004067541387146686625335665264603817700093810497575242106820063101396428074895879056700682960307300355561668356908389055397021975723712790464360054239367083780878945077300556485832479799790954334868121296599339597238273475971950543515481363749708947842385935101677949038412011933107228128545840195575611758836524812314057798727899322303628268158900804313930803532843834530258407255639939333625428272157931838740816799214975019737422812448287796701509722031021546142626910821430565082267071450265779161261768634284717817113710369132316018669197480495361471742508955820910937156165948215290844875176195667475961942094057642902697372196078780022004515259900151817857030694470765882497591952607444238144884633564109005928647775736418226239005894960409946410494286084013242205393038947095689299792905098497163931676931027368410995674716915587566376438420960018651772669811196321869917113774531192940722198398375650230916817765391267856382026306002491003351366213383396748024404302429826832520462710949482802754915854430903885441242791987315343048245657173901635820939873601451724211322707147359956092838505656015337669968300603037507297455627160316716041548769610358820471421670045080632078561773766553900738136730076594674095975965000867820013215139942266099108901543815423959020411211796488546002917912818601154167388208567683281623477074548771104056474007291224326653360810925578571958041953757746239464768536535447475043352128237883345960989836012821764615269222121542231920097916262766261202586704237639374315167502788844497323694704458656848461339221214761346911461491607068746577916987744390948285804302336471945890390086958679178596884324478081390292751651020078672892510273147756255151609387190131199055298146293331074887022397446605381105541976762609097100505606001968170835153796870737643252031943807303096522637909643681036776974673203439962907950234644113756843275885603498205025269177534992872981728595169063292975054776883136849651508820756015297730000851466422613909530190356539093560131904867931831638501070947043109639497515783626578282612852806178017274930393677308260606447234657041027600824864005391579744077785168617543101803020311508339072538489743118293819192795395580209693947352254710230140877558961342956370424378748843143925101344719887931494906458518411961492486252422171187067780604475830010123420168813398365871357418226179781851613798871104605697959180091931223891550136959296506570451898283215859490759284512294505433005587081853128536936192818799590893173844687857202152741321355836177021051185248539958255524655685733190512259898943882353075272182120906149821074381259371471706653128237697656754940429859260144943687422856009018215649046711106647130227951392893222961416626872945515944313317059529499578119007686189915541509571203965999945771887727240668085507534223664558039085104770840464781581937844976911911135387234255046090040994881373835630913446973310757447514901708066203284350876040555895566134453387649466750480584494924701673077322755875177542776709165208870513845916558819930654562861133098275940401724316754355784597437763132884444246426123197771934204295104408494120923846917973152391686603082515092283334704725684908678968752914518841528636978345022900914168346633430581818298094494366435640781180096582093137684023818697261008328970143833763356090042846576106040120443885585560132789131565468246126151038838991791815479418465087662617525906582603270560259233706030446405434624542650286943738826891398659536204197842500119689772704817961485791690578668715575836811482968354372516506732205417127657030469002454473368093080141641689125717048946475017873656318184506778453995922252685758684003874019968020003564391860537498046495935073276264754166130511596102396172103776086251855893492192605728684917039064535710272178154835349454550245330781507084400240336893288782725224353037051455223710850820160186520099487531863375303042681201906613977958645720776571303968204421098454079928025558652450940263182886165734177017196652365129196080697596816650546333369632791825485788283878367227378449378969940916486807815738380985073899202883841182251232923223513945702591275920197918771184342031235947031359172757399445650078239986019036427113268051683401343462352837960993481044320695811041180595390444486473426158748775617182343384357253689478845882822918342557378809145589449527457753881123220900448492535804914998422207110145674746719283618600637128088992706666292535935914745241438118705144091671533730838386905655222971849266424591052255443500480701776453058873206963677716829599343380983430365643591989229325491456072955087361116927493712616691372205682372072068769166490855276326779456914270536969623390197748045778949218948799170944610081244470841052289318661861304732078237598921083583931323023966391766612696134058926555919431024439622115676147804965721869247556927986215697847497747029987746813846329721248908718501574141103863872777315614713994607903556403658190675276329909274064297066679663262545280842398476033901767628260775927595195828008706132491892829577605109599859725679648522555560655690622111183511876013660127921404398367041382815475355665539319143295617097712591646420421688630224930395613606936996506987936641666869381664141528679331153873637797556869223730089631769549550725095523000881633217499413549390755905337791398017190083663057569123861024078151479820456184436698757621071503991608779710620158905366808287742821791849917563530148450452666986934658168843634629020697933943387658972628187233529197666991085816776274812271614974462171997768602145166786621229072097349426169274029437498840324091242526910537390816498347118610160793215651208605594247019288510562640855459484803558220288938516551909667166166258333391448148367259490110242643151497455233812220592910129567902121932471467547972337936231394540524677520528209533623526799659971399229248633794238895454879492048389817912692943410876462066880844116040006738902670539712162446419783949375870562666590945145458079536874357523719920285246537918754173449592058280567603332317703486555143005656374908740396735666777621318849060589870322160716843443525835463986691244371464715471929661769545740600259148700611767714902138272362039968222075255327878616994436922432654287911994287248313649609494633861643210936274656291150967064323735327518066733207304325345613802135835169437666696373927268927960223311627231495405825103206405382424492067740565045879533804505509506265342952756841172431408954137431237603928168527347719897334916897828861827193210019199212528637825628682096748442138483592549927877949642506922737473369685861048528766270651106161747566227348260072233543792200187176742533404099595340941891436696072804211918478836735328595874737988854630000581325087750163353428186418997850552713318829290031251440250472411842558392201064088704648483477369315285891872661612994756740108378819814560519971711770015075365151485475569239913175028372260726594514644374476341606549160465770722362657633632221971015066377150341286107772791319245430071044184988841815754667655757259643282344337398795633906300270053463194489288909711242410293973854968085590116731228828074409194942486647025292570938846989794347082296142894719084886107743297935300866143337055046362174394260643390467492052845070512087648277676944414653028708346206220594408570456103604348038722820082340381106866330891425173945712803983409482728161097841587377263790086262246955400544242207017765626899902562829807445254954323636155662229349191553689636601006046460809468602408336737286136475804150022808098686115868115137693464396926013966022239367306801854123115043868409683575553147584934717345505863336282691169516004798899051604419462822463059781340692754112718951497531685149203441929481832501346182411266140795882080114519011837007926532128000035080251737413121763800160020301230558932054793350065201497124468454622044418762766696314648371404756583047636205961780922519361634731363909354286234337256516924876449494623945718261953834868315175512969144652883385230849172763414258636577494435402482271032656863709857921299614502534414700442055531063987689924029540612200999166042970261353783313661131288854889343035943762587851229033702918532048639673863700644104883726740847295292497601715050109680456739041787940886637200205948874421340706728507992967095417849171178122518125837371284629808588421748346805488109179416251068426659478046398394988475261322603594106517798975273106380862963778727333611358171276993865496792207346091611868732239455320302049902078056520251367663214271699908126199515983204704950056629565859225933575796050865529512165299622094451953342752370864074886188823921069636096394301362506058965684897427086070640529842311227613558284473412606897412943239382962947278771259244755237182878265502611147574474017110919853345892121646531677834123703314683384214750092950851950823235830210588503885427282494516914654765986669942624104262015402918856640796506510412338260595182407335275679135408278280798585311615700696876223775917407924796475624239942376815255827986569725409675973883985950306672084082307317855928189560339934917270639858668468284993373158577191776515573039875985268409475666904512373249367099769370694389799280329869405526088611307174849337279163123264763797601782330162125971678536465621171520302186394190084995167210774358538323480688824077224698254522682827104508316431924632764033906260713406894938139365292755295556817627436001770998820928119151940349809613666679521360557798773831881650136785416199362424755882396207487990924529793116766398353712899573848212085379291210038217912989221468743802019711042398055562255554743767668919003953054911319477934748822300181444835695996195829428702160783092946775502140900490413296208910924030132615291396657152964696428542758429241199779086922087169196453223179490508748354808184036924474954416432728072755801255032924351484835749550928279325769743844015380034261896147493761588843170825630376676979519517140954595053196895785142810742960522829275738729221562254891410926663458422584337672536985295369980633162415015324074434227407564284913905026461497773821241104267973950223600266995039023194953858637072076162191131797356696092532837747106146116553897649719919929940515138682107009594531297700405055129016349955763369185032848885495341072343782079480307172226453415426407888581953672412048500912367621880053684338344298201716860050782373092705118463907219477967303991468041193043459208172298106634124245336532178595165389484576761665367532938468912418895933604091099301068802826287122673425434486390045565415058397240926283033454101778133822780530535170999536319162317661110121885847484209753037298547101403038243307537180740411758744913918621746500327486630204943250551411740381719508677393792301978912918428288928989862605127036426366730015949344908194762304813179762700000162495458180592411445761882997755375219660218022484694083005003242688721867881010447283484649269677423065847163816970354957072294183577854047936109007597138945506782910090782901299763382039857779667501021824990178769458102308853001099004916975861986355948931178023016333936053585612047092649180130633008195520955108737704902787329515577500251986479414753680719454895715104478500373777447869254278676655353608407920901218992027107990389680797355969181580243678689852804861390171493415258686318169624477188530994049682412888747390564424269685894113278105958027488765741698294112089327485874063998271290940045705297367219477011605040778832816235617680581098892838539778096325130574771022583632664055534478756501687350971741572279466113041408656880192364365019770138902049430075995717756507280942910376137077045217287838587287835127277223686752944167860041269198035323205981919621146179306350556063104594964019876972532664890727143269585507620860550227293570227881208262652844300027407019262708753302968332184301125110070717711957789991707129533395077692283048477033262112285979557677053482056444443880880231825952949747918156176497544750169567085932740213991272204112218846481745775483501639908289831847442973385717562775265053205052514707146234814013625009828425724534016139778681536257326713001185645145643779125924880311289181478734559568266785130122417378915328477241471391161637908800340290292174282586925979626697902511663466163411149499417824121596227619819120851406571754463380397276006025612632319406437172283643891853274579714881589926812225796364974304095979597480532238120978146481518535740449929160392784936758014556766254849072233649421337729396865651968001493891181286382005278743411148362001680190346934008244471381449151294736464281103492393941958610181469273892006608938083889568193875550488410496531383690984207651903951595417511226533622262667318822705628117611594587212025006350692489604607315261661396543411697887788031897990289841418278971434008393025721061740595953046589996055759613586520265889829069152882836359836292517821551351362004234901287535137765417790713197446366659488396709969254931556314656422602609838866698013158633096291355614546109919793534631544420412672756074181691282705950192218593340778757308114059611477785378768934834129709874950036966843912853628053787196395172766955915731712296895011829965842849683684293017581699891111491211221336572222526634968784846094687261960238384087567837976707840522625080759979152340838246782396424101748932772106520024995324198997160350054826310308502331346457891743722369440698754115562582626968167792486761143659141704725037347751559286657296887703475846101841721042366401099555453575305404565697311119627156133274115457804861480775563961042984944379805331900144997600340769556597759023639093777211972492846868162394705237560479546214710061993373944301693383345062763305978969895468172722678331065225970006526100709100240683212341462300650515248485710400822519753801355565390324104367871403848746557278213309672198483842153879176006628872002905213389051276807980061256254061283887464118698671172275641743076737284975511179645275486788723992977526288321998003195227643473460669570536388419486425721801251731864746705257377477987200014426141755007825786496332967184217372943907216144677518743133468168161969712845082434345075010062055435142095684400791591300073248419406503316314733125684696221966613195410615788376930973005641813709705431542907072890442844467169155284517515734218936351835714702653523402025474815022259983720125784724002772521123701370316068700238771125928612517684226783427834512813362369231705246159424711475276116696764144108924486143198264150037323217832494855963689930327597367386057732766171617604951015651481539948111235484592953122468629715664502440914997508651487812701663366241969563338123067893720722520501171252704906561298120288892882082386250595946638185538085356936661384674718846535044944022950922373710225135320145783292652688340915366684014269963321176240972671604583397090263043083429425911687363395353352632253231245416498964160594054026969699242679850380487510297895094945603263986014134672221904483083997609918455115171200321003678111731137781734107068931281023475107719799529672739597261891591373826372205951596778348365819863713705830433353845337780316647481767106068746192000934041338057290284867870326180690196869591934367312338786573537950998933599883948648201501525154753893287587744350948352489196653513988128709491476011978517934644817628221840681658666094537804906531761875051223232162699665124557232550232172079168182220740947498535700552932854309271458717129197844257334124100925978945670939727390376070472161365099315243700399666143519731951220330170601179288011729778417086129638458662796265886927558573736079460324113781765467313730204157861420554890564396744988517386288131114174904332818206898747067577691155771955195387658447895684400787957521114834612346512367677493146630029483398682002083182336469848226773819763178787222752806449048684304519833128893013215592581632299984548763381425154895846684468454219848278493865462789964852844170901288502616070510036838171938591709134411934881422364460433430242582559378746895706230625436230937098296522550027743987554571417965501788967131853692536477277178225213571527089612602069969328478784726358986033710370308300194590085735350067545566426033838938750909217369296221173536611498802175927329826496247637046522456763705890008336510945641506447211416971047765798796789753206263604943553952809546662815465600778952380336284541193315246883792771777654213247774903769658027454965676540774625074567198355189412892871267837333057803448804839266163827946398391822216290109550783111986562404326328575776745330944016986864608233493663488907956852690859564229168880394926793851812718107069764119435621442707706468963668336622316581304447894764568853611842605228976313815400072065248519787807464290761386808049415678360501418171070117122135154490814584033692181077720268584315940183739046635493233637840226672325477239512833340815322011949092296118460549202742271412678468677601047681267722717365141373753490771945231153815978199943616151607408051499003027515786736297682266951426921443893842465592886321434780211629749776947708381525606586731472432156352579474356612047803719082263648966907887915871047106452665992215029147911685349397656633258573244376384006401552991760315831218239790072013889078332114088329454313479269503890491987319468402850078824009349088406349098495108899430676577314893503627351007566797159045704179540848925904124658336946533203339379510574821737940823027959353318674327526041937124773692185901031520210588791865928308864584765433647291877992083753498511445735524810730711792563200212194490860621538124426824518149326411929686955555572704086258871153785690740293567195582952201076501696113289619410012541819848462165269575425571720515696317683668211990427904777107590928987622996955036104772043510599931950780619730207434610205174401348744713022072079872147648362303553063623239873502988824300238979263609004410459371064558663142639906382929776861390676124661305391294155752457928647303334143431263241960998979460323976886786892810177257348973185777355430007305843863452626019973350758913489475500139520460580859495728913495248409184487195291174464621870398524490414076461840372260263672705499635987466173313516908522398406275628423834149063691350846051270813811981684368452175713980818632313547784072094599252623682493627946798351155604014316184749676049562493393979259914430742848671751872896657786818584416630657451033714290223490403405256222514642546813097737009698185546479884277976553026409017889053389778759870057360385633442621103006967932052091450365684665620267542469547943755986282219912687887422577963389367637221662705431287471804757471497691932277859029937573381219223678424099330871250587922978977376075746319349824414569063794840059648006943130706085378899329166381078595359877835394847505130633218601495714345145068541111715524872504005473965520672582223664354249460606635373707164707460511598027289896076971364266236321800328908911823937334601181930191943822966210178742270521811703681358033190189376178040323181139872452273383490399901360597422669015850967775633430802400057398919726721289815053989280319862484566611899136894808980567279884574492984921392379833222208593130579406475824993732988671076427665312898013325639583506710957463389380813558818401840060963989208493788472969670784129333147852981240394471921359672788028952307369681309764768149385716254108328465390572466169000479724176980064126608016634336905864066071082393085437427703393094236855231535469300243696832206659325932044333235390982277788360559638106284734771294289207307268323243502959694392031626417391090307168943531887951763974683552954755044557335287136951396161741757073522998463416645162335162127598824246212024028120167201712956739717677635776287210318636242025592271084759888454610303224435848127245121162162789860678863244045339561997948705386884609251568887547406610818601836076132842430934093034125554007295325556527475586468625515625951116189674191350147233078719239546566999992530561278034605879158317758081690578989758414662935735203163171893005648756969216922848964180795845871227927491443470347257017624862520964118859481154329573605641221046647965682826760992039358598493029580450300796095877377841501129348050567739132839938953964292234933993942625685014665752168680440598350015313364635501223954914588677201213209109652888098152416106597654082121942468326902873442486414844368836369878520311245193064101259039453066146811432025024669843621374713793776517838887557856822024997761499214093622075759184395392280379320992994344304015269505007853011450676069597865334667328110134936225424039744417051031874366891823921616765029582893207334477998068613274330691642087031241176069254260473928107888484635416894027245018651788429876108773218083452816257254322059433793142636781285576741520993298345255193108910101884541789518013076439354359768143664896299576391452341405338751241289609408560713308501753059566420696446307682095682157600914669094580678871843570278135106757032659609005862954141471365816815347600273396036163700722517390145107560161604176500809197419108904277749195262261729460332330587644499390614978250491172437802014586608928482146364921703929356813872609470972719976023648278153350723109513132164193540628258819447339614851856549728834255979527831761223585854049079970090764677998485488492426247213318055847787311357107350282042819879895692332069194896757364085867447297832573332879081472752887149479909034008977584091286751344971654190632502918668873694706439095387072981385820724540539698008162907348706742906223806449377716790443371081449396420520096403152240857085901123866822482121425805518279682035043621202438134130523234249319577165889359732489096213296872497560063294505153378888647893503270707444611694177479323383003971599511328702817462761269974181188636980462564075092021228439182017577965732599302981859412176788513097828430184546796224393524308645768038728296488604779546936897196654353844254980714286673228057454380219092764935661625523624650022814806262373647622271855924105863128442537498672000529575246688826702993041157950018751445561711179596405233439691002610785846162019510839234801699231515257918017088063755898116831992441856412717850497124965497840058854074079825868802343511626593806191358375078419119091307721153323916357946214452253185889085134229014982174047145782136822737303017901173238897146344686793855775271922916593755744526877817176772697042307012755933015468250933880117965859194188267670463664912867570694318809241213155561264220384993064950396939728189818032864503898770447841266664878101852738534576750198048255631480868515551984430349496743711942861065096754840561311271231882195342089839346893114891984286534163882393395407288459563856466982953573857482090178232014985144378855807306253284574886522337100043696089251634491560298967993720260668789255601524664747832251705224046144531388369562242301734881127355358087833210792170400861326084207040095691457580395639765368981019972537497131094416605434237347221606168659321054995665835120614760588165084748130371130324161030490888105587974108078007051481174828297413132777831976549692883832125340841678186211652536223433029541731643233282557997704574602245287101612822282272911864583926748058937191466210320417285940130927108713126787541570604992813830568129491509002330931161650445405483351287755575563149345526663502009214426412173843106773802362455584484718099928632437175119007039991618643156448731943703612678315458917166703191231274053069321797256090991827681494140166498802865204795205210574975546308352335553506420122715710956572713728044780518466128131612873788120272051747778755200074178802265222623567495451747450742068291374610243890724334208319768418016610544889124027286132540901427098473823911429347454025357049962880492228642746779739336767225865734028120257709668109819910476936290906492314993059328986958177321809969302108593168240383413547643113111600731314678609003033358327321327243061716362386350617652305362155232062399909983079903214922728298110651050761108351653499835481560817244883536620578689629871316284160983085669335423452800476345740906589489861602290581146430672236877189675659615787368936204697733743153377982939949541545860199663912122233846232783821070177004023425137460669421005156151870249862281846602326128717138580618175443685621004720833333057127471153059444640520493364191452324377517571752068237647577368978546553522684155085076780264454228629932744687768036956421401984702996115225345537248937877615269532358890597975917987402445223146164299607859964711008370457746697433264036561322431842056123770802548354431409666955968614401993012967612505177814937290531002168776834819213009511764222541210798674588131278050584622723492311917916739768703735746937747211843741463237420784453919835838021336435172778084565077350823781653016868944504756992779882175598416528243947439099448633143530558488984603928909605009393242984677413608182594642976858053690446663580727803352883699040492044757655307011494600099224550886966125793004939008753674656709217088372690283977796922974684372000411123252108374730735670594316714793681236657122199791882895535670176395201444474835283934149841882163024444010804531969119184139373061666642081502762949644107083359046572378126915223357659854820277819428800001751152593976053132596723811579481662792896164486747756705762074964012654502267089177187418467635131742703467075685205998840526062586904696955704808267620356050781459475754769553956436259990663625942954221845908806306849503339298574866963172254664595640281553264685081537219646914793834320739326050810810824330548396097793576213499967802030463812220250446362102399774578813980592251956679023176392985328917324020756199050664705565151589141885598793426785771226352039276118452526395972215364915272077827467995317908236043290774585138427728350230073339132842406034966511342897367350348473521555995956705827279454154602808558939233446921735754756946453546585248073412419529406564632167226676933030423836326003203332872910701995174163032655079911566272061694919980745618173181753013879285151992751281669084844773160544836317963096286426784202959872509905133396546594958997862867753822693813891410987797053965239324280079315872058623887563222199798781114217800096470205776745948117248291411795577353877135651153581083106976848744630986366055442208504818844800279447537023999848580688159562128117959462808192915453862944989949783848672244541309455203757373847102115787483708491021963001670824273906387722385884301343213335550105470109046092540681127414795102071481401699159395205835207231253257330921853449536233623446615034081761523782353271329323383971224903852500077320157500701873905052868883631555689822071680083282025429339304700328991374066520844392695285817429964196024712364868153518548611230477446929641370834436683051493850280843878386334798547584067251215473983208574437113562691168228539181727233414459210912564340177221389307880877024450283522490031385805628953070682770100940155043366629150903422037106940321000842156227197683842090817634891685905210693673444373959251606810435178785111484014210153483661439119826357542719792472999076938300799138487393577417766842179561531853651328641441386074593915588293646251140417157393735814244517497159696522400091188590062634245204875032249559104350039774130144294697989757906684830076973505034995550515766398864028407575102181649734605863526806389045201676695587378265930785843707149216075752659281033739334849308658666832948472021872887313143201507475728821681292313157916856718782648602231022438270126485250642132481367078326751991018394462000445049986322673298418189749481150788441280318149194012234897756817965419311483391164064983849046120583457622235193775219950089357980977743128801040913766466085238898303767397866378177116592039339616642167103323272904485706152363930080223765862887671301727963637607072566096113900638195993084546581888911085771463633813591633847165638090042471746112125132607570185088151643525795520834564247884401967980586130137138116409429059062435681002353468766046842863432473978152876718525786830109989264629668145450047906779275217161366255890378436099333283330424873809137098546027659108627670009867917026250193036336738685162706579309253992508196419829681923797051816887629020441752712532165636762919946774010319195647614591539653827202594589387462189479591407273506856945065489527296132869904418553972359127953392522665197404796833987924155741286057408549696495720612135281863214068031552594332196036146219302010978512514237081038577630650037619208470054526643983203806152453807877708198092939006461401899995366453908654017309997744334992234843207733612243661139412298797959471212566952998757389011353273083133962138305027522271723721945598812480100216160527870806394578535266087024748304484427451914453155987732432679519039965019380525757500481007558007498014251897653226355620679495725498354825482400922277536423696900199610727399743406757337265615646781379215977657467336827229300263399651438296629176187459048421301772397602448822865998051713800282794926329720138857055499080106758114126014952077782428002858549016087443276866861867194033334002391052427186672933475615911733347026308946223780320694503695154720748950807272112252918936239873076526448226710397268890113931012329034803832443441145704061404834313202657983714411679680644873255833108603986945910628973582432330494842617961176358939610171972055488709626397552140166136559656986240090704834481077686640697786897004466513709096688392397821454103148433082259232410230581379666295800938238966168591479613927715091186838129383820956314927886979740889963179106445414505774805055570384222107691387467536771526625494028971261402312362756401320073787802301208004898799855517729279081785073898310848281948261792809921424694749691056429504639073452335199816283467334769978792048683964512211355712040942636757763335987581497093206002152224875230770836015481797271589869756756768746284273953752742600118332269911941138132529304396692944691203286654092211459239848992789383583705772464171038639841584497750032336788552768497803329661913281177672933889919466706385984731449360477989823054131905984516278875964706408788012883164380782577796777448651771390892816142204469346773173835989837299632282103828756442306203148922899844977004654651239873230932670262497945592884155305248470845983969888706500569005023820419000159805776747979948392903917695268360258553667392017520195223193325801833021567510885535518361492335704290507844278935177079368797972567804415770105967652322834055567433777454119221192434134188912599156259086261646434324318590391591546700530733536247131101074284919667022400058785841506589703206845142351381865181101901930025585780007049835233359592226128102295807725890505885572514677832379276544888697573806388970154653315985579484892611006015756769050109084802865443938137309404971840540693774573372921509816564965348685080230663885547897547410957673792684561740796140757934993698799780921230500509677916687934731640698877274708206969539504725365748007387617693117068527676974992668291927835771454986183473749187556324710900046076429107981804180657815825808142720620498407943095059417424366784713073002097473918357727931835276304386237186877853672218167745994692469922885305308303286250404586260618558301805474427457323587648319900027531725970636487438506501880545984454537181434269600965068331572962508073027617792763444889594364469592055435562905145332999051902148899133490918863795117956149520988723022366005035239963105572581323819535540768362040199361268997156237756013639604885257110628694684324007041447261182389450258567081758688126938029126440479170508696943117923820206127218461536287941383624407082910527041766724497199822348620059158807687409506874110718361885557069773811099308506989050115081859655492834949434553166330735705344826591023944197273871288489187255413560555303122409496059491843178669816991128195486283854260969088590457404301214807625071956384848064516247603362326402570463976522492111731151751010057745543486279157868070050809169184899881644292341205392034779559205124876666286991263202234379487352200497014733822855773215136793613270413765643664576309127851044809234073888884095351828649716173082120795101115340093133658501708721817521559138849685702762684117363860871622482878145052253777354366042557372894422533649964792753549652246730012626080448949010784158865481678567971179689840598349893720836603895021920836815444939290146672807290094937007439134486306564043655601810396050792725947622409567168471757975650941263090644450569024851447268748024478572347025369119909062326690792444509530474614615224504010576882795670149082481600259477604522000657167104618784106026817215004924773100578066122343226355147214083885560362184273969040289068830863984496721429971088830642895762448460886279593900673594646221606189159912524584247860756656666310997059742890121396751193524226096090776987219308824693897828901736365482639227784100317475605909426631280680166540685003248049467554160413347282344889900607620741727106033245626986094172077097229063724454346722387663349315236738235397808509478328985017418826672512138178352846242316421188595670267423987644382980738731353445721166287878537945573326054663832765441151329110264800741284408847801617711454133468697412252942661497226619933285894589774058103843931712019644591608751061413373900117381630425896183328555378464483972936026154586444331794588658328714372999392073966385861577563214635328224610774593895579931809544151324603313332548450320650959059874300455661644178985747397082281945824524396150147693251700261084333984442654834959535995090499994174581177798971628464767983818225223401131086192849392465788174872339203471994203722134203437004269706093853465136790440787882379437159032148097371074678093170936643049147586667350788375327418212469434227875967750383185179356811850984407803134452490885425552567974828949090196386507386040529909903119463797202770545508427266954865188918202577325128118643388213974410019242802178366522086273868483600514118376501358177977711157630970886513286974015880826666854846790211457708167120151053476346249419110815879556880436947438313381047452585906476508780362581621267425650930600228557580206245463447917740939620642363982839130840757081175483459541210355945183924014352123686859025946387400663894281454387694394025478736191907356272808219319757331325616843064271520407541700807889946156275927223147171946894490247715642607877476951404694527428311346601167742528568517576336067870052007503020647161994761269238341207312883262643233973618175512057627132434619470874898409050389481821414088961720765753594298098610804337849647100985296727040684328545200965881817460453098880710060310434639957512849365512522807193076538253989250606984443174355471074242030224214665842068622511242175025102511847911605516338977891369969548897134548653137323634735607321116303789391686077181192392973141368511483663741452576832419541921826403670228747576059801417043331772150063981158277958359002891023558110421136551682461893880253700876918769906716501369790615839355406229239340116849333550276250585531870703665215588229087069334134899104192996988726311916732149313628502048371069789694984703845621368501441765470159196366014448743186705515995571371345854753025128833885368530579692325503127637054726794811988626416849860126316383711307804336252728500205499672314087335629161048724584037720552466033645907173818217065637847399590674549279855419288544226015000596775424262588184748681354986821618834990603818262995964632482997478442058759386662098779831756244524203794702306562781049951040026670561361257360276140100578485927918819627545395860989529602821505687474806902457039619298424908118921230866124383161504741906660937891011818278747598946324852858710905315088532616606805141609384018764430072557586477372564343972364951228573235511668904434066140887275492027466580507840577600227967667620206579047102590481301922013130068574839994659699904121634824061710114919317016031034423364568478386889534232905615317165392642149381971932401966096060143591333494508218988065856765988277525127631436892014759603698322590360774740391865138078815938542179210042428265660999380476307991403326852692837805506768889386673637624162183275725001647027867485485632902088758468413146659368666159547615758295476647895234327494740956279394099478319009051437953888072790748202617922603335055494498932892905368968813881235609262200929415030641092987534568127937836104750301478375931527410167826730097379219585618544250270246080487138934389263897418760980948854518438542314408533629878002969453996062106061619462316751649930876138640674910221620057934687558109206449914471887519623978568514701368349099418588091452931909246806530747303376675727132212934204189884561204104357936676270134125548992262527855195499087380052663152639807030995279773461331588872661072285678281030229407320997490636098749954155534477029066251240636881126325730608276006154691957767577283334625769976402199734005169841577767806427660260842787672273283015633941923539712172587402002292899805152225971778381050642527054179019656234335812620667721434911274834554283531496158588603587196350738590203715860639199551802236302853004534306177379150980327728207479887317532065849433872568703865355603778085502077916624879110602376316595504237643269779303654916278581685596912385596531590011003468126268783904449639717285774554921245235322117041271454416519854726602730511892446747110127206700111388747913312756052055598841670484527933127031330568792185749402736179763858161136184298440842918886991495903853223930797500554768188424859996070040464264884460208698369262073066310838542960727022882408323114359163413324870373574522694740018124704742239370033135774759430159845384536864363667798109909054947592738575800255183141732221163379765574586863271660525850996724267275171908292751629745020933903430826347415792701163087127921378951638201680908480060707888966773388788181595192569086045254004549365264352018706407493361991629096109454568037348818827711656198567024190630973113598173792483341178153417141594338218833806730826691632739854966975038442274654279140602343055481126211071319828874080996325313433866585642375598411145066160990851282457969192571223316383976863372583879420092549284803873614050984369281186561322667751180293913458090691564350174435000106352160515460815216720051152198795276555849427422029155944009330838657165728761704087196910095708120327755380102864468221037013741115050202072318835001851219134317962508986458665970287656354401226946598760788730937661130378260183263249470655852615798416744588327699900659709121017909723880116926045911455290298552553976823337232561235284425645726507818491198047774935090850220491085938549885387295723991071822890676895353686756160165139239533234087871170154327414177963817444486280330956837790754045786110784045282295771306294230987913911408951806277017557605696567889315106799163208072811454330420228081994006477154975684415818760750609101764740674271289017640766262309174325275529043705412685897776369840076916171419503845818830586677280918181028307147692037473667611149985002959275276865731653106380731365487568641203645677895194959540213432843592304950787687560070121359964593747085387964298493744719217302710623547066658975390912099351192342209758460968009434960731404436939638803798582804506618526503586775115361344655604952681748315441659528388320448811188095031250201717458682460324568618198022686826168910317004601595358293070695363043169023231867980534800992106206071229101362308484336318631875928013606907294578504963234890327115607072537425578724713991873548232516815259087375726219187501691052759412067081822491103647209478283642396096536627684556414804768872838983825629865679084157532211099747224739835266576459183972595569484321604569190507643817862059098946677371952135409387496040002385116638416092104198464282525865266188523181357953952663385075752965002910653277581965551508565946610769415781572145262439235588730633880267244083079221670017480282412399529844537642700155020285152095723528026562863778588390602912076411603979438399101448300787134823040954773257148375567117796200098253094429879799046086071885467005137030261317503372340433288909933945362888319629788084375250477471308412527688092296695800794104266629558936206132282019515470927115277467987152665926482416182160471635749361923001076967105745465674116105026919620315521304053393608688462145963536433854990985931082103031293681613686772505179348108946671479644124263528504964742587054342559467950312777380337236524838220208994529429073291369755840953675825137545066464566290959059562333759476549404499469861229451059343560422944895655662130394958108546746744611018556775518961734750975328663689724460538527091179574162382571673231742558199670649873814594199978124789711598473607554478905598169841614439944208622394644351055559461238949418230871744975959782075244837574700709855770107714560890827952358119317616638073205034386801673116168896180060861818517093701022535754194811001006824389628866984053030697826329303027905275811166596198586343100794566131240256132477334058487535610975170738954963769341580775042262780154795184400691305887048426074156740156421339272263713725628151841991771900343815365318006647307151832219184464162444367232607814948704699156637288370663075526089535397226403527747160157080344775213635018211117503228117684704842030877342565453055432624191738209394296394270561941965291219256794349131983596721518978395548584122371905021169507825774497964941948843547789081038748309102602434376923837488709366189319420870852574383927102147320040665397930937439821208707691881017260001609076679370977650095324230845683287522018184218396352531633020845506656770192782883174734048146327294615250044658249894972799604050161624553703780656928058469561066075563365841290432834708833567306115252647647168330522149626086043038568608668080921833370172953617611421010410545028301597357326282707600701211831034842241348054879620622637318039903009968059156632459344690144022552837655665764991707863081638872638813766084759091453198414224394643424279519070886352262116107735756983808814310533505024367283900360795438668444412817190822311979741102115046026085104597009404198432931604528650293536552088603469879995267268563874637756446713406490143999144870253265808015262972062428658218701913609691876007019599555671869220045076166602263836540319969439297406999187867713220569957078504441094634911223755788005018079465300812280333142046141395931175869567318731695650477803568154648206061867421078900515234585243422605860324288304972042222679170148503579450057511006186161381348912068503096816527964207184941460769410494689022681101448992075225085188339166585114134278412778418265259078405286119587739267928073483893997638175322576604702060519652906793918153559319353314520067777263142919126830193341434765600798189265219611169821646268441000796631063566733965719374852839207937326684263807056044674773361008396737698492234310243698993982525677150098429457670269951880299883175205271119192070135776175874150751258711684825933853455072397171409573789084814998937913268360886283350877166976724864276854387639456321686621403233302840681227292933144202259027878085950452186997226902599115776866630691362415910266772979066957079400374312856777849001418492578958943019813481478139943604015877003163835067141730622152016800278418400093906157563865044231969878127840693328861483548423703331856344534514627559539250422610579936058560740322175085152938034985775827372932514489956622449655354524517528431925535089409620084580339761407964407493976814926499916643779713851073938554416767380482774638931751474356130785025483841930477690710092148716347384864571208102971959788305169624269571272348783768757386683625413504362423945334859683549473844861806255959071430511542157633572818213011294233216138665442754300234121584792961954117250502811412894991763766600367385697077705237885775608678741091536202644505289655689386803226024000809190411785706395117095997065280934943585617111350860922984166602710800582300359382082400497399134268896585975606397387746334695459163366362638963539516281661226238996398457249083258927371036525123644106110533531507136479011997417564666035259131604940498422697371241003139861924755557719420568566613530706358269624668199857453562315215256897597978249061030974795250899385729116434967220261018172614372726197803706708592060441503616376299213157587363392381421580897454102732123291527312664227149685916387245463766066859831331735215545444627619754501591783233345276480124228546758311035880814420258478697259475859014495084966768761904998170783861736650391977096983628506168749018662887893490639775166517995386248644424938338102549907310031265036278184906613812221497073382995672969390417500529778919576760252881681158562728491093075177630711704505175325788113583063983482220309041101161260378987934416739645624592176647278535788173126255259636722327636701350950722780706889614614868855918720877625090310662650297789915236526227477531599048278643578076402088080887785229732699741576338069250569595248337165829696163044688868305174275273754540103580031996023568679556632355106645229250949536287853184227801248330629858168813491037193995943979650252239019313951657808634665140774921492306913749419157161172407095204461843507389735197423235978588000046235443276611374470050374902545523161815161711754141107729325444878113410131775579077690086254991056745518771990244089057627185045548128345724472801635160751771361981898270558594585354919983143236955269202153255943989190685021211084541097959615011463532691714676737825053290437827161500375882713302992709840723895779797353414859558866348610590177957769369590886300451819708380002743948924427976397850304375896362659391999627643401814854332788633414914783911277469951161699250530037220683485133026389069648528423180422523552096856636821859979820899958296155698153090699883681195757529879665133101610195616332135119078357099178082954983949482261962937441552390190930466366347488327016122948456643127007424797094396285969552028083986074433282902813405106498928756428504825697595690744064814612592177316996790194456827180702991444360219934538080042141700210806094624264693128933132334085001310232796427793538823299792118420380290670590045114707153023438482266058055840949651655237147006685958674526882204917150163333465742132259760803957489135052284912020539838447829256288332334938584077130355459985889541471542203716500312033359285130324776753804876454798270006815433355969017064489537072519288875546365992114532195019776565247367373924985111468903940275590636188100986972107247257264539911932197555327222337122680799897534791786254068860971010224394681399450344173797708654844656248791490854923152101578988852080263610815408763598266444265693566552968922807243673182983642984983523304410601294191730184795726422117063649379849181006395352622028996079082349798129215049136382799040435908696716285185311312339791568200038715364182294193222624166083102217027147080099987006113494206127544260867313639757296662467403952988924224930545658443377217483270002671035118241525880160169039987645666413975497046958589393961292366630491286933699999232440374290142907065522927584668034443109307025154480015092458748052991741240126923679583363362665590054718683494607643693298137297816509222166377322089652418954380327850193416390380261354474949585125257866616005214454600679111922467653552389909924097236502276766939033248751571617209637157746065010893109435807470032332310149659237143901163752668153702198945915888744053835113702901342517544959550470487676665307789107467048431215315630198150367824783764404065733738343388417352482584017460677554078263764895620172137736235555947805816977095337467546646063787216984324194990327935252538195599686871589445889236580559023273205880089762713850886294651248678980953388301460030442542970042537545378053750849674064322036005436905213916385759976929150015771767450959877168914945664502324477775081124738987235057038418832402326245549827996032086295695122384725638129978986860271944277402919168622869120181254068176584982550378418287246588699572447705084702231182943595812820382443570911518821081759477618584222597362719464248996091131810034708307067024086469688287042897568047098595086957864789919991595413016243096342384339627442471968471021329553990930472648658903151045279358562425806445524620165390545644344607198132913489449577521830853797707707703124982309954270002797077549203408997628858990722650846881413460085177261991540272973466599435595494776756812023654515316539814037483632440131383057843204723713530411475833426528924571632294557449725939039532024829555776732697260434803940103630417626624787055282588725531658256648261994134468131541024570377643416442561780710847754073301402227551751662670816710918238631525885243419581111681283859787848239126486481094332018916559934283203839318728049652829482704316599402082871424394986288957716083271541695031531120732715907281334033273508741903220731740101691485054624792717125997744790854569405893678334905327032797961408907919951349198268590477778139461410842444239265301010049039846309076880132421857285376815330198229622028125703712737789342793045612757138938737680532388795951696311333011669665359913192086967102610824598514185838651443661770068220097117772674494604775276070047987100783660195023799259594765601792990750753489654378371647039065238169305638977123845793990146579142336412578910307222505812078224187984047579252126132920436786023073555940706852036512177204719459912898313884217172090894406713803629985377850391589436375154590325776443582825779220081936504540091325864713878017044517979555583414411479101825968595902782731897959751351097001799839975302510755515317741126426944890152142537022942118522600648631067129221617067033927924716332564614128814679183904822360905957541267502021828167636298176437048071251552658244431108823072850653863181256844766952832982495040371385820805245865169034536530022789429937557245433403814106703521452909452692819538580533390368000489954119807231989512235478019304859104016031323553666321507490508258135075815591958141183171194653736367118837988105083167831709017989722020426558153764895642744593823919552107537530905621873549215340731883986765968013820419561911083666831256776843495412656964415839588511348485929355107115157552778018140887447665403045024811045565865384487539024680375290047064329753777405728056981750881251927444323905318281301175412272013856931913004636303167849281102762885325974610427719592865881835920869353852869315017641849888499683145584061416287167299136108981560417198932682671781741618757097637573362024875460621840221331994510972000111416081944592813817356208424903562908056473522730465944932771127590514296933056530657625815566826681803260534889985188094241866344877883169135990317738626800322662706420213627042736465924576665489548137678361528748594263409015213883360732447209204485892372581856736856019842435446658253725730676124333494702930342647395403844659146655176774036055041740308564145046014509406883341274131212815595942216614967699510949912952672516896118263593149403753505247079487608223821010300340469363865709472926430900613918983367725364516858203022746316348118381143251888068647543197578406292456931961986400691148635570094439524882822463500168290238229732235566907892922998151322410977235126393134500947135912400425081672386929988195291556826201396036835230502606785067317416587297035386823028621211499681283664787392248282593455774269734903671870104592728500985107547855664533552642057689703796084362310591696809196377181966618298124426228797081056886323930829487699314213022849370154560971639386742109973440628804690239075438244410426002837914416004202072796741360666701687045185085141033612743776615967207971783008385925895291291124027347083528900502215350318573233736706244547590048039442901578894917377630809841096084306847393911881288803761027853799496903643063550725141133591245381405701308324971436617358269023068483897628255605913693751254959640698175296731899755298130145189192634904895111600867174051561757675907122648719647291037994659093696176347443777840110041646771842956967663880270216711215868933784535105712694055724707978501501961935172816637235296453376921740634681908290996659378758768858563100977921983700543157280892385783811661134110045642237224094393006263931328203708811217222787669115387382866874201345693874010612874965199080336696454785685908247941063573679896391333026088040741483911804501609652034764325472994114209448485930801500681991934069951775366838975186520095544272616562082647957047408726898392958531451719296952657077435820971817793457337243577084172930653401269559727256974227780707094720256748155745334639575581999881791828040740010605558996138890222560841379715119287169840503235470088658915081803871930641791683371168765868882919517282707945968700929914926966596984328694494105912614207845873832166579830067342104368601940548059704751943816515472023150826696015099860449653158028904020701918524193691123246996426429840564460754381322127561794036276354394798495140777769139139261409451109734970291109620232375935431995940186790591193814899390150785260804286168615682383119765152390700754964107631673655975499896769315485042307862854562420103975444137013495449096472691290045829985077838703678726954779431236595119944303324704174441792367872910205700778695802068503943214597085249053499824931894793466130319307752945489678358421560373838662668947253437963119532492248472886402538256331400169579730585236032394043338710584152529866337215120656660198835351170215141463920629034635938014310083478882633894098746493018935194062729431704483980792440164811470386093199221247088875749358446355708916519985822945348906944622755275989184904888525752330981657586107392307881577904498321204145063197229069383309964290302452507885583763003859841693743210882662431434285597317161474572622214640974001124882397915745414052732458696452765424828839044071193522891760035909694144324383314684186948679318529170642799394986785551061325890100445856692675334319585758682322837348243679386923082546740691066731582539073467334442840162684374021063516845101700730394135715660760706308305077062393792553925393746463327132122232779765578711960327632732696180459531157068857941489451930486464565135466379074705894001849391288015018149939715535809952113130502114678986135492546888114366597187024971290203859329657550681826982872065671271381385534366271081256000350460581647572511665484066260149162974698422622807433477434402799887223651351346958125052650007744515059358068757312146596778841911962806621038945036171149424633731054499603185293174809616773292470885693632022282747785843271798821483497329163789887337997593889398246579005383788982078138249824611993381172617894878280020799349474760617652218158223297244463393246461716407355504428421022638829061060189156235568584510888820796226369131832870325478762866153474144232915987769805048832026226022123979080831401292253558738841464160627410863777899596005719451473915247069458750182076177634792005937651834847070859617028537010386642746928183507366371209335423975822424650666389553466519903817653785941645147615209465947153893231642528195746791011235288088925377135176734297875437018134191603294274600745416938634480186326281720286187147706453216087299701229440291558603154345553657681657168376152834525522647419942748582662880606756498436401689871041861927396542785515883808149753233009471872908384415558324764251383217320237713579771077260900147141897479517730834544727339732455082436238472980633130750089830870826077636869523232124272371580081167253555127517923403454884905111045594454389231049765645010213458509821221067589378103658442042446491952709870356383817162008095164557288571300842970853326360088946374309356893915337822577718298159902343773825394565004148466547943468521623191635302302919434709057348275132955041407983525628317514034478679370079062083934324645722288906434656763871734561395321734418717388536609643890688639911420276898591315683526788370657377333773206862512206418615466477892745821350643108817954038507246023606740387376170446987218135739020728538872866472144697552872573237480891020569494689151225282893776737716944798568603276012939182302747170330460424517416612617149305497684592812812481447765412899780792826769251523568588040757704024086992054718772672463561252120602534654993487738672646872513715648074771083643785509179288355604915774460391518079657048700528596638199528327113561055246864067567668368155262598840655624835517174370740909989589775819776470341090430391997107216023733583860755711551316136536828316652417186719866990695193983090668071785780321093852964881963775578426583400234344060783356216181562470780498907254438194441860780292395826342104306904169427631052989151255566344937212147253289431809765843708615675120245357779860681372464075516547667183402826195541706571091420021294234960518810324395963829810484434249085808471462369511232680561249191563334200460096798320250446972937098107708438133624469443028327026783081873373338704393985279962682396482940623148067313058194008219442673785085794820777740570967328204946630291210751889592291321938488925872567378941991128645252757459173182701467233701833291492781617011247362960221543701063551058112400499762662985790163145467323596843104857412065197289904239431201057475465547379181035649944201021094293184263962256115934365941613804759173693910060067822025685711426493086141136195374788738062394823813529345805224920926815843696836701734411053615074894738516834471871953786603565502265627567070539900965320260130320933952615575136218242816046475258795396641532094514880905255041289138356409546155432629414512988840535104559484015712986628858311461184138289966337729214155199041588792145697748460588228414021513747156765864017755401111100611353021141362422025713243434611870269764287165813293443062483791119698579172807314968530203754682043191147701802712640849763510996413180093571795314511737953930127461382775463993912402062352667888017831411031877520316240326457624925409653343162865014067497864797473596189411211653790430961625007554565152769295689402844846673518771522356520818225468966474415314963827479519702582291337336790541497447191112607799303258255879531350736915415596053921284089060384643746801087550430250774943346723880134033340292055711378688641234821630629118813996374147558153493489281946543185562626003043712911495848866549661551030253709442123154495178592269357930757698840118557958259123251432723735148521915798118077061864483970253951213464850690370202418132716491003838292993457710317454980298889574931806837878149022500464266919215231404779137701992413085701090568172210633392241725024921326277392191684877484314202434964313073671738678965952580010972317331733178213003074694150927134856027851794509453915017358257229157104428654239247940595093160981680419394410503208519818960067219248573140180678121667108476571432260363755429926493575342898212773524492868349655636855138128615056308929997203531614666544975952913295433459214842429763106583528336526607676748519658618082117795564760060830123875400963341807951729219033869593583170087209823090615299194600179325836647767011085862098216109772672290018478511256892968158434680829241455936944629919073897779613316912644258071581785979257070740455235460639242748608698583268247732812280772520996908633505923519923627640077152584412245078119083492647384779203674941370186756036317483042792498074198021018585127538881697473674977780958332626973034563843197802480241015217212486054259507096111363195310823182227539360876249384918225977522828362008470397647332671935216107903862310582461865512287489908863742265096131916250568530677294038440889634483252371024714752155707801003697279568675511174738864697885027487656067519946456703264956816637259758971981052144052928996496325580064868028399459732206442309093663806269706781143681194220396572917450001560665246814096038332896790488626512335537565381664225761462916404126934800354819640770395954740334262151385951073054306093608453486687055338258722069578096600592618069835656527599697343394483627482367946311541090139420708878953616001459780519059028325234325723568502049152488975226900360907746278829635669139853523583007232942882052460327491423159545308214540473751561110226064624458666998070777782690112520489744585359374453260446208625461352420859907564408819435136141494783020369253908631809380687690448463270561113924449009984750971691530570459403586522151110428701030532680360018198405656988522295028517381540911798468744351223448476184244549431915267589310766907181674131774472543752781682457291565608384943227620286164518400693859610052813772639650891874122303112662860276175460016975538441110810297666476015945776721456977771059569350012967036436690113938108696682378032773524131434308718045360580354103335895969325214597161926523626168741178754685588952086363364378749660706945314826088636047832071174298505282840903057573814286847518814002668946542744492281849229589608031261011370212610404633122682888859684071336053709368465962592014930378794712740768143483401090948443886922321563801011695971744932978266472821542294277186197608289424466874137795187103265244699963476226192208798340295626905222712544944764010046052102700078674990785234758972597027137900224799328458144476024290279818905206861234483691507713503345107279175620555519390408995166351325831456129304643608897612026032160265688360090015429775274291672789275180154631873765592538606635538514689537562623944245898029195491774474466789858230408392026293513666233545189189222340790843751623769231824275699981948011827603929723829244670865140492626954698609714821907904915365731607964689974158206040725883600709071459561391174330663756139056050197350259037535850436387385214500301277430407490463878671058716260115816382950376188626560838034390949701575327662272311944468115465557333105526787401151234406381708556709859371630330480921933734258105641212935221495066542039590568998169299468133610670429681156269452023521046134340821681428785123798185813038764517409580633639898237662401176057619146939595344864741346088329423582278442474202478600839770320462280777741188623621004367152130706065135846626188609911399601067204167870926196797481034588392881497974061318127375871699993762259511156483539654817516065524978186023902041126703561464685002501478356566144307453642117054715709298147005485203134000746762740107718383305909842559908610925159534080661307178649794719435857266809729700196665480927909653503494727828297353070353386132530423220976398564196367383119390891279873202733598914718816222827226609509196247066149890549774767131433363214376500147506456691338131985430727431524407871698852462125312108783963257521794601941146401463299223402121173781538581711427633465180842776830302313610292286857702420324647988935623455532766441762884234377879415360820348200074287694911357487709284311427358782153406853754028372285760981431679644998864964081477776673778725480300974915463509975591684022076634047162853037638389553282139340434062231731391162472403457584957143598390065774889333406492840474213568605097432393849898101932207691618838665693267733737580733833933580578172143486851786183942238288634899068399439654090116839460249709306924712795273375640518360125727477669951180053972624793985970610264627039867591479331314021915352780791309829511078011592072603226096480361370246567933189740560203620115430414981885594549437443419267448083746107522654622924161375581824525635231805748067890951150068031531692759090922885016101753143659853333221362787207629528403191477082755280732614991256756540305984030109852499128426599440059581670057191656327806399735898827001787007229175104969937778787292704002039646604675541433840913919244578087710231550452693500345047381234924425231067263651982115907930692539481775760562704533424871721075938237665700326741128577484106539920782296413501754891262818039838652621073996094044029241545723331310006624011392476022631463634350570403603992968471594470002132049270177547998165160416438810319009957340891282153923628694436520098781866443626853681781496224782763909661846311296353642889626915655536410122206333272249265163313256412699166733963882595244021587621278170320613194695984016258267798097623800678818308360253913167412747602456133680063555344847843267715156710324180952342521942246339501096924662239078538746049089056627687917914168174931698671843707736956735928588439390716748477444839268867264374806297780826955407314504252955506448718458507918009431301871338137369906345958516308673020030189208716799356935499136593330901039843259411603578304188279967447923644273428525572854059710651803230140246735885691991710492358564567614047656382092579818819516391174923762092148977900310451082705862398633773178547644057798073485262905037961571896383303244167323136942444949644250246623288128401830422851601183223362892813485348094830212357374620395755396017712122825811573543936503461704358599683309419419258791962082311984794976442914220608905718262722193220438964824093726603056870994354962250890568824192000081698305116325449363098347730564543556481361563681882687462579682297213723608483605494849703449007164022990429496410725095864925908025566539904098992405657038345252038094129774322166249718298571438509376390258897355665745080031160312806247476360178328960280991395282932713983019467799395943804567179255046468495110555352498730218710311444008237373113188255413953406283467366965760774976327118584133405153766788934725107961858136250365114327050243254343431463559671766148566700778034267413671630349155677192993960737903253597440708885424417047428086285528534971034418192658664103061017045647775323849667381353327708161539791515571190962619833457704642487821217049411991563404909113453026052137497382152578257440373557210138096251101021953527794054089855801169781358435342840992160749261392283503003914392356580861057030910425025605769161278275664372971712707765202812093819119290732710780796058216926521275457193130004805450908205220048792766398200160050100903925762239342903440825604047867423204308736085956540991766302199339885483458013739611765193623885893116809173191605583964046760134503102369205891653060411487901400837115531075271755334466435825762352066781751674370821075423961882304479832093954003100576238120159113485575014157441651853023020699378007598082086031312997450820742466605648900506774428843980247317029926774894683707303320131670921076162848630789821723022692377716258088072129278408643466702077257439877262926648095530064543297942929443752016902679583949389853767315080311860402327088310428088252039966149645530909215253449138854749995254482994304420840911892299831300600922617694616641298120694747741850489523527829237219414785911064473561673726540207421852803485379054724303743320337908953486486406356350961963816649862791548309265521777638928638670373487800623823409562635823789501315252891359474993240407218887409382590502863746643299383123819848853000164282283315680531805733581657061427866972625392103959983494432474791023965762513324326771370553842823863044744277505174079634990291900963827889169158066984390227074299898662946607828480779698948570195850140841094339651345378442685013340954963724224352331012715191601984383558286897690716319241939854845907695913970715743219765013783193060034879461856661469750958660173800025265199732935678240113422512556702458100533036285874416703855549251764045036702258076721387588729710301857387487339354790424708885954252550364225715882923758524053516329545436465235362750346113900006392646399391278205655578799376431973248573567716233956403098648135818615914505819779902507618597653336945991278546720968645666562864581901289359570096021122250581383006244497893651393834756631422148714040697543891752858245477304139328112096319675255491628696049688399730618660632273948350265895287969774870476437900309766872320562514603980112337233847326115566748509707525147012617505213698039439025748583300960056462492716640643477310947537189999829836185708490673800139886508694641647716389874055051817569779399532429490199061927660998203823198641733381030220736108231165094891696385166486443425007801833782420383749310918186450146247788816707254543784722715453472587959961157644396368566261207015527927186424297991787078951326571560282647156071896641205055216013271078890806901630689990806403778758452121531480848898161178126396057635865058347743010514695141353765040239338357961865377084933878060510148566632847234336598743348626312242539092617956974762348128907396593503617369158108728576989017775644853380206878940651457240026660147087637140337163108174834939364063177845419521384588904344537789341085161395463435947161582620211891159045982158359527045635189958703722238461915129746184360986609853158322876277899346745995039298210396471855545185731623830154148610622688493020606328800764405768040188024833342055123952459892650262819068865603854412083542819225882703706963539137865515763151153698275787429965973568120480692563191955485397716853817515588104140833361769519958820678671726163933663818998307171771399111672539019106787576751343231694024227835388056884525736351228841971128413628993062736432689472677147038389785855388932062770708553825651284482344052738591324856882223874700198759550575885074136738964362525266726924333387011985850663584027781426710358841068651234288666427513545634856292486538533720334490011252519272020607279516630486573049244287822447864633256458401782488225314615846207012487425170970333959274104074021845196173199206301845361301918348645130151621730982037267089518413872408859010475166110614765695101511122312899821939254852383116767036783107062244930895487244683408536207387610743548595077691058451644119592670842169047673768681901396934677057922661435992361926232685831533976491914547705649434236344133114567105100939502744237116177609085076937177609159793928431099830978171431703906031499982084383518019733467500593364786944415496446071977819873454850122583075893093504682462246653190820848304515218425060564974222103811134420195544857179759653477829127030721590411598356703081510796758068390668502028566574209878532822689089527281371608833940717377501714931580060469261968314022870480455907138752219114111718080204048873337766788919914287477531767334802896807649053597645431552977451199713005084946371951368092940861050963746204591288555242144883211363719225803770791094792255027319404974554512057556350869085437986453265774320865387939133237495756149989242599781937336282603961051003510495989270640755834560404120561607924450388169576249665578239175860250104686676650927316863985584383874723595561605840227932111360293674610936260796213896666955295985943597775549624382969793633709408238408569449776629120566455955420802202893323311449469948002891397505387571800097978889490981339817968600710315155713262765916162767589758150248404162393412567676666253547413443283745096019623380327779066633668445991016257668076405994717442404462039864835567030401350230449713328004933822146776920074154702438554619477763327295169705119242497645228960092700538731977329178813592713082821520279905577046075887723734881834132513979026040579168010180297079697461786987634898698689672012469690585949290416646132136990086029083913058431243942789793594443546529339613995903896456946034020377001406434040802886183688256171601198550811899801903058518773744516578472471410307134552571641851106842413541159253370057126898894605718070512223465502853520294754689771033177924638039960073305405247258468094585934167246626798189526157866006255563134853968862626145493568519391799408751072554954991594218793369797082217969246101854519948362632568059232947562550953509017800292885485013733547175767676626260956830979312758024012694212539953220084571508004641593642814269372835069270096630791457712540013052492111493472766234046569491252697101097899667487585934003263625037976519835349536144213097204699482605703445174753702620905924448818405317541181688182574729597905058103799372450873910936111848122322810455377917355908703618312849962226236672430405128786701802603634523196511174422307406108229186714851859022413730838958481226659302951958458528756442613810743414156926863481219911975768268524121732064284305835862443593007873446365529357711936550571929979619056848420083223760539094678485329875660836623059900462761106592240729477605864083330223377146444477421889917345651234497756542329850962169228235225829463160635393682901485694149325635789168921797404701155355181700105693433328555481568811634914009878114714757036106871250972733233070896531708613516819307534948178732020854732695441434604555081586047595646581678621971620641753547185395955917995261173322238660127772886973362805812523891015128365598495933799935674093470738459117534783272153800726749519956494593669316700606202593451748642370114291151488276161214800090857452289047215222802472512553309700601883979511071877665828208430607449550891435217479772590721756292707056507420325759425814187773560728791279437590925646265576444767873136878520269046683434318909135898569611597721524868134512826813728899033183729669146839162270981844676620599434672502193173911761161954508120895153211814741327846776771606024108363552308729061929322741755964586748750568463459313091822176556553093312122455636672488955492470967753250979133179742791955586010233922058048863236944462428874481335767641842756025528840620186946736764077683609143756932101985029739313394000999390080092583116829264711581646605759872678084185957619560712115051023180486975742333551277309887018295900963362620439785334284596056611433249606510960014280735497302553392119095436805699396796895299665270392993412035290457018721947993595351818670753824949894419588658652134559858420152642738061427176308014508200846534360659030058650461069215818691068663291197336302857752599320462910745694456611295249884455089167422104748905610833361811417992910630096015626126788308058428688742739919131351951923874688896054387149450727656721710703799998661594769820326084566324475377113024048248176049615547014639689534413263234726846840264955398413952011680926573823145887384595217000883401632990099657140388309447737221624430983931889431597308360265165878972263956899702329157489427521964275675379285228136728387574305644650658738796534694469232647817330734134152451542627852100125556244472384473464754994831040349584276981420432136653166734693925365569846844406437731616279697694163917847017905152755997916430685548952222912731240895428169055732364909764678086273606726129973157377553252921747066306684594534333023281477330736785520778564630685751486676891730416731182449478937116271597494174020902619508023036919427922884643880486778258672087064974628048736928770208467365714889707508601059297126740651338657463150151647553418679262416767196091401488324012271220778773048921106932106656758634918699235715768528536150591397028685207258505752137114962419949642596413064043917561321561503608522131455436570490469791300905291885553167605570156413204501526478157649195942491668201443188819913471281918199417072394436896896147753481439976791621109692547954039788673608792974382597064406908089289322618565342536299164508290399298628074124537678902511410574735339003866870409516408338539315886018335618537611357804112276222718798649099569763274368778496172243556041171633234495053357160245419092365748394410764852865864752359259702381031510276826293191210973910334866596297010564244186837576374877036590389448097494270424595237941904892816341894237824580391016920432065673234452501222003526467168108096628831372091970692746369394796703135275104874596274891766262454113295500111866770010748103866605018401667764799525853377678229554112150982059440548410035453220037620672996482955395602764918360908734275614723805659735305544206768350203288464822849080869668634893905445652982774742628617825573103119595640973487097682620465945950933891446144396204967850303567458663086624156771446661557457219284158842830792023693345634860893210602354471091928129236992841711710671670159544395857476757532670017303484821382278744575010933703567751999287516871249260004713362651770287344730371171422801564094086218368593762353046973566440019193448900058650854622221661410867411195846254326904786828095890333835312419818586712606856087120644471894031631106496406866186697810067439885247734052860050320954760832111730604831731182838546237687136133075352231891238483729097877248632760009276865022042954944557240630541590511036124439142007156501216718716377987498006649430827859606779370028097031115248807072130860210999164308454981525102235176649179284634038785066345043023163742131313084864321866897567113246004694109465256037666852794830646032782427717868017398791895717318056710493249972494672639754809409982586720631873672041387649890535130833051267193902073663074622324247735754049216366476979707717001955053074998185097248863405597306083407406974266982005011709775065074449963385630592503613294416205739908390739824310161321054346159137105358277822278658076141689205219924537962435112545451746476690197570741632356387113271499843051593369645178105188725241117320643359676849172653735146846810915577124077703154113511131777842434885899449698258800832313449078974022774745616508778356511416980399130443575893177634407792971944695278728702639156063359549766381309024889526249947942793643638621664537761656937038655420820177173715600370330100791251362831316825167970852502894846629348850368408013845399163840849298746063469886537477790929272739632803261011282088395702996045018473162436768375374264770050238369151488867690792515552019175792932984225125365720506238079288907647905356686676270694382240302006243209936193111065918614933807217675711969469654546020139157923945237942768529138898031255927865259022696782030946317298824720825383456920855863030312046610682695680009294230524175671694770927530794500258849831092046428112978234027927114690489939558892431381245522491051502728493296625740373523483757795019563419050084628588024863610608142293613393078468885063886097101740188227048143979109266687523438907732467494980222263174885201163708793603742506415842924743681291698142690212736778291443780635691796715948737172932901140049175594943979655820805209618065413898451271382158866468214502942568970071664894795163924219113194269639403244185028076664706634201399669536479698154304167637489138185508338889895123188304852743034784741062183448384525514286927509060250116518189530791727671820677670171223849041293169056813639435892425523762590287249226776131078516095331810606710866209515547362199826749562445372152799333370375842165693431119319514995846344606316205629062807599397393913007662941088127622053572245410014797040031110892125105506944981906045921349700774237724926413764335875284275939052793224574880749037280913427165287707100138055897377746042713983922505657391252296933699411548296836515062998243327009255461181764260162222256473584193646386392311837336156996813651657285596891103028016640077698287961745723229220332559914392330877491027324566128774752903756005371998257774999220062693757874486027059534539916528843817556925221404411783808241555384761025849054591416048027925756840984096207032044617585981816575544248412432442556523613191351709230005797685833350763700076923884668963518953907296101131968319369039711715414845416324645971346592683519925007406318434023441447254435609994271438134024795773822050380548607874935480852585658560632492308487169856910982837675309973114660783749393394494656219925217179172082125364849744734297506807154968733660690937992742793967884390092769608689327936651944478716679660824102869447916683418955732590832670586516607681568682365525267265243226837000470369979017319329018249754832278827288393880108204082693672681161909237323965464008681728196997743323842879750489862655305880297720704278523118814706057583833818623426396493892628518731365528798469635763025772771610172955238973410654216964324856088912524921829028026852122429213616766255188302069504582639130421389507588164115839525380624548997871945631041639221997484279085512457615516336147803212174188318930432065768993686455757151541410016696492742660596738739666172317185524231839841284083648799915682556022850525875762946966900870996074046363089399154794263678902721080062472261423960789244058263802832645726635298531923187805178301492696329451436363021573656303692746029949015877236239638427483318322058404482279532494390535657242813399048664792702092798414201368475467945169056324980850628549570408166175598704773675208067476888996425814329091474680850508941015724833975233396617719627101528251867046269850270121971550065233079945939807739947142157948941684437874353520623150798274257300014334668224301159266979957570196125552946076218048776133246562576301039650594203260103371217446994948502649983253583107361537859687790574270280673449212324852729727756812286905539769404961009678280720721181644288574223653734407875160834726694632530550154752390444093179888237695005177045019527825048990654806225066849494873478784195018336313840672943073046890222994643378378589012872648157839694832968929562977060764850783871696778482278876447559358867601039260798925319278810961405483752424944974589524386014814958265853383252356197709556685856576759959861832333841707939956674137258134874126439338937476890039064549870312292472221452198452959041400456952162807983864781146315540682472624229559260496774588967061002283216643396128685377002063991002359597407253255821220994027308026153883604499623560738611841454373072816237034575496406756890912871730084841478802671812632507452470478929490693229682666469490627249955990254707800865912571005037497345094605157838033120227680533266568629332120563784097369297967368968846745986166872915928460601385629990784037885714592818832835056075530974939956273980400584734196897233509048375108984557302570744963767826263211606252172506884674299060666245811527004856556939811902510899143712144685340041268811196153066912882124292455950448162207885013371020432729419713437339517690278617981930182561045552175118219170102000692052583386153084896144806283432631394034788989921612086225226324118704523228202049976571500496231423593204206655595781476515683477442435381417654191435885547301582418003243683003713991065810496260462529349413359120374914471678462209467582506384437557584594874850995010245549888529194320389172118837494817363887972169386106033194934544763250140863975513916821805793466519708685786582611080374597462423773755939048187395298507569389646908536968744058461598181050306199623196887200717239410721179166111966536887326441441683893887926370416810944143039793942972992841250569142731984812427114577904571752319739352617679793758778358151282712912581268358262290423150416604851057602899288268213726404732616175387219999371673632873522818686173128161236620808471281303450387924310105817100751640397242171178907413515923295606101709429979023895377803860132609775173702550284118991223254166143647918922372135558959285350344180996831577616080585935637347054317003411957802185842976330122946212991773392326542432487772694086543328507208956115650454143346809077827593739856481703748243941040375952147741834892584018856299305027946972063492137448326858969794498634880056199901589578254401941939744244671411295342048320363486258251148562712888944689669851403087917506796292458711750260685505657951257703466141933364337748152393954572596241235016304990632253233210208700286419080375629610776427438411994948633447309952639194278089105489364056889273932512538061262107721047541587259001854265952830752847275213537644298270229457270024288245452866389384158993354992899894764537311355649313994757883765294708312643906920811027324385325950013544794806015146058432799282067045098900614830647706325055692544706320405961424905669611154551517321544849646027745663698271503891509312961251345352635565641859493985440709485669363334526570126154349886134108102260904630229245584846674259042203755492802112873437469565795555184100921130903453570268621647970067520990676795862287519426444946939771360586076088709742029749133915303549371231889947924736421669590865414256263988982268945234795357918777938870889219664088228854502927210848427668185586804950017576582123222749013629018592382585720006108657594546035394847479856807365425273413391962618864722727826221179373470147016389671980297209334214070280149410368943679625270960826814889635744314735397391769103607976206845512110846854452152279876311196786154826002398344644477652416567350526015671095654031380380142383650495837357449573751844668825455673784868849472549055941655752814335017587290348894934285486359218022465918697366928381770695255983056524070648829118466843045624784415930261535082053961897851791730402845841651595179735740676969784487362308421393235952183994802759013300608303845676070070342639627972861471121427930233679493348253133891601066823791979673057163543163722711726037190129428767966795100756361494768151768336520467489730041880678415674386716970229576492424377927033121374784934044768972176968114921946147570514678611177207806665902773878053366535661499566424613568805246293604860928706743318742731685879613394908324101960670248415857426166881873836000035581543971985418644364643830619400169396732205900398305131437028292244201293829299738384674881755964845363136506260323924942510754409808576110169099222564193938243648320968121829932364387827437569957187721215547238039962317260008344307177077942046197564761719614471758463913797395263312709970184994175060108088794681265600111394425147462910418448495020852132750187215502393254426049148037207063604745300570369376305578246538925436411833526226618699676571560003440590626077750428243081860628936677958101263440427930330056548333113187757645446117646419753838435219963490870567970587206924232236078845553001720826532882980782857174444331897890099840733683442831538500179638041667808835698059270038969346730254184705592508542243187412295930363051333155831250252828452690715087707423257835187537444538860867830502563979319900970328028062608441387813884306516950761439797220376961854579261678272497531365079222125271921579526346578884984571594604193334487799393502499393800796723927164489878124764157881339604782204863988018972629828646235869515268862896397737849913182500620099143092814272934127094342468229869730640570023811353926479388971608590769020707358174152928667882179839137793445390353112644227738476117251588545350422880581835339252548261211178138106530976659145349909056439154751374392763192661238376490096958004098808411751734544415867522308252988613687989340339617054972053018208824325504147594674170975152166109172367943876954055811527831251695670137853261608518727782682349261624231314860420293433351871323699431218601627353995989174166931669868875553376598509117891360399873834297588833092566031998309515898444452087433792668718971996782914446858210065223624033239901725529916354643595119856521893299190702754554622553924187764231841794931971887879425467160978583453375972924415006455164774556467369902001449556306440066274513279315573576382368107452654965096441818928734284553994641436546863563241859520986591720748010301905305782322624285787958498682158954476723461696954224655036020803669847516601677469275755036074126812005725741078817520739270533835896975395140493739376045174090184310330000119530927134571885121864220608312723922408676073593784008113269392320805172281026700261121620957736367406353907281057242756558221922196838592476668457125395450128147424084396072002708689044330439802104772752497059118690078642156506230955316692310026658996241830004556962908647096032914742525562294358014232128037022397547693706405780851581135182583211730701455434015761729072587648035945357117771723122577146162297301769073777280695082842127348865189187595826528989659587748147774607846087368018412658954417927150381320050035793146700629024955504375877858889033466003659589960624243037222558633895958357579524546868053931116003815867347861274620068518977521352551593883410892006803039741027905403856262961218120453984675169225000728305864088705803553784187183122031736612064317520775185535127590385459790834572574177332470513049860079601677693131197651507084736436454811268818716282520710966492022231106510635610583258222788672150983441397771373755501505927606221256905063328617667745964386727559515309412537488258652325839885894014421740679187843799684413111032860382565282074345900978806428998660523522573639175495743180197525076269815807313890516393890626269614284566908898842980062371215548169673026948592257202229270859249145931680799320616718422525780597862466670030309810270586817465823925822078119752657202097852291272797480132157520245449765173477026533530214755709668201488234246792645528752347602106534017617657521765669832964396327788246626869268551874222634075959310233327938268516323662455850472581682094639174362269275693123108539595253496089259986013125125745619271206319715158221740629998861419163807825507634368277656763249216510378457891694167908672636281641218152504753520913137809035444271748883379952178448316261438652055069394639422250441611625746814013124665486753614227729488075658533404238561647179462558500633917568191251337153332936528720615261366206842212140802123520539479152014800397345381218201804274597698271489842319530135404572143228702568406568690336064644375033676663420496875779139442796500945987647062394696870078306321289710204767817072586505972611725609395163355450416636615468715276415400555415014989354724831196829383343941438920865473771094069157973614593871922843962657219092445757943773169955198613475243033950181284884524998332538192037394874199898879276815043077788303544238215022856211304305728881881777568689692100260115125659288343136747873489323081407760335835190012670131184549101401210274959407100355643243527446526947183140938696642374539091454322468433091078566593579971274182159239720476080649626204995292567214228815448867530438183143045381416159523536673234852899711012702210097120261037824334616457764180276354666128035400607130154096338929054758918145486117277938601284285531913945008986050660104726694138189602872650660976387825194064108932104842668827553880193463856467544917969268203395023536013456538608308401651490717584223241383022960832490760424689585285063135264574300274907375046633595278879349823513628501949607071052216097294993550162162431309894139413443424714133173791573307042200562523939631696174047755574231786196608462211463780703695403459579321708984715924018745772342514530579711620355230966031936503064852455999845575545082878440381478533021560724220504789921847638935151997888423865756177307416093010099807671806078744650364468512819144630154762427594935309207929132226663161400434840957351997386287111201029040853289818421322938970952505120629113596225284858103841092620480042105052882758995296725397096124743460139038518883974019088308464114379944235694910986544609558236457855167435757441013026686149653519647401799672262012614452650555387402778305112337275586309797482121062648315848923354909896634285277297392037783812199547147026823644384844468111538337624179482803578801416572201261033403430415762328609461994225433332885808909215753072446287898966921961743675431548978881471449436352771834156002045313878865017262338833151050361476999912344288637916204817499253205688797764624115231425044605086326255203635253453467069712601093558236052357611552316812337481814782751668850726418965994272128285206658036065478301671744335653417524565938769967906879860357064007603726357470766930692317232218041971892276496413426119402101982293118922351015376677843714567285772325298942103589442536300955456552692625207621682781655797791982692428982710508523528922809271664921611734938150690305723827677046923347976134013728863908243879253921353360512282000020934152309010600782754428115537615218586557846798228590561236915020358902159641706139794420177761223021874287063731781638086084594150470926135508938171373056158311241964754407685435785733834665231097517050492522993281012756915684889702667724363568690720396860536444203768729805532297936571209826978208826527689424264484626079279200542441661790591652569517900219044801809989832270755606590089972474230233796935063048493428860375271760522064342659415923026451696280343965669018868188310742025471184938186990971961474009879338281246289979007523073684807656369916168008169072629614373096693601092753791521223416709332625567682650219989752810150795683420172179451551174141896579410447047038648766586447217129445903085037284029919833388285428328874841727835578205821408396967800234216710184406161826117897005929419427919548089232734216404619949544577721211166575663079257435874099850346929197596813379583528553659002902496209580104952399666001065464067064416406741660513865237957898495284034998732595267307600314482509827197466722639515674711347343562265180051254606740137780899674146728709215799383225798228705354120572544867376957483612946723598716041786978573593257008848039339700427598445394783129581581031168259073087800311494294041630850919810680551672761973491313069708428231524849984105882506393629028493692980887389896720951540215004911590547218400346013461035896826973782527344877057995666227809216678249965173350859734923426077374812467901358926481168115652485098488090424182000187219930730784367922182984564986025655189599496727237050039754075564482811368596196268444896571537937221851886748206673308180198941331805575788827157735943835603672554610769870596670007643221534451901816103343810393636320605846439747718068860901587285625625411786209597431961705809174947077318929832356419265949717500632658762979445233913103783541453479283665290284600102620991924511804206470324584430261348629412403200979923922751218631369710394951431814683865240552041405830919143464537528010489585441724519180723669972777554550137432023882828392541412993144278239366650971792768029688441485653123549677279586427327853616031218631347298371147002484101975979197054045725583223349403958301277379787264879986521215896188046661138528035170666652186418791297877749191043486831781534398399126952997871822772587616005772935696970688618860464163981002260602199245807779845569811529138825268798110342610480093724860253027814706681805328559519688213950467010138209552187826915080541900676457579284294027298034947184911381299481098954832080686021264129741263442880780075334031934612201781952214214609455566930750272293437111818772336048160392347640354800800001984718823369139691534247996226066371064134147433506086477949663235654899983680514588571007039216479467000043398356352827961241589184461923847683813269919381494506618158652273002149252140490109595620570642087438776679025984786909540079965728616492432830238285252818536772681000457556973317040930691309087879482735254323154503968223180072994132000476136856445325185298480680525297242264063597790088033866094509943779881043497512651273333531178348492605828192596461910066011923131196655600063923982968099587302069378073781155273975972415579567123017384932451922776192054160220266015627813449075978892648886335420865898588089340191166748159637749421759396128133705205403881046110479259048248816093527989132486803256323423880732587315618067026328824044859740849551500793499862610490100439408933931813465148486039964089747926845617887447742815820593626502503832144881618335865003064202889207125686642698706925190886088180290443214157021995679095166494008646487790158512773381107315004670015922673044280167685428546109717372841876425669777777800355066782911021180210194565161485449732626810159846690773623222599875421115503103705227384333170179353834243887590742725690504777352654709797158975808719615152998404789277405226969882567097784224916216048915391745529559591601879180285785286060678253824920991182689013273085813313203561972585606820163020091952429302624470641620518636676589720435723171704581870589972812180048760578222361955514351542493550737353833043015257010823366548576602745588421851652881692920236305403697956514741622119700547139751660758896649242801842096963556334713313016227062938446554736323453852807062663350336443027243220539324356132170926035524149971678906868648315103314413445119808240524509048245761289590774068228078281907382912398379307880434833076749095413696057747434512601333988158950799211899681306884498026523992195758471176955108127282380681688393711553870767568209144488489078244857618818849393718508553720934597176303593390190669022560739482751004302411895247179640394094545975914395460602636492518957331379940504759138824386103237989225060566183532017496610675449082207799078822520409748484343890512242854376184844747444595738018667316677026037156928724888819487260683736650143009862298460857023865117171963953335099801764011433405120185283230221469651751367579060137800109597910406355536083811117205365724948124396611784294157473807025844973454756441393242464761474289931981075650661328546330573627864974871710225432607639989749923838806940507655814765487758012375953435665984777567236776895481775832503316945780971270930709852656619215200802505098269820191964662789659699863362710983753967689748046651475101512421304298531696611939349614514812674476395985476333800709288094076136189079529440017654966754684725662427145092504995044201196353131156698935116815129324530787246375242635353589903550737207036266338169897511764442784214164084179874258104096059150745347974108843256684128751896940769892301069567116594849743092919203427485603092833934160477275492880089585417027377824421640287689403238939716814173638972614297941506785627083954489321696962215918527045050735313361262198741730271796698363332545168362450372794266660650259740814026934621651649860441456519434830877050336937924969661612063703487589013563336277832717687565393529921003375581290065214013148808265909360300735718864145962690136286406262896719231661294811724632284673253861857407015124389190759134999417051629133166397322810170936040626969781757205128608906894253095146018539567021023306704858284213721458816018728115025605922574152206806675037780683867747891153393814375952579551668228352437913752011603521645849446016211008403518146972852513826114952213388208370634049018888811702688994780529159976104953701643535445369769080093981277592286393676864401427744879076643773168595083290348857114993702304506843195232482498261610156727586478313861085742746251060042287278737447263253254343203596971295992370987609624742219796323369196835879910119393435902011870614362913588625630517487818231140154373711433564975660243286100588317395090084011513464998055621499217583612605664614250667985774921838337920590664528006114794207863556814646797879994221491971948963628244307239677620382630950217999459884080315789081264770346782681447922262193311249804515920259919573019816218060922789079918543707853057613886460494793977446134261346197886066900549761011320830229550208556949498414734288358022164090633922898911643545703123694066624143320563253300280629708545745822096520999663588101213873805950344737436615456063060781058497713731408437489900713788896195606592002562503441022263659318595665494814504188955195111763865380053610982653968428265461454380129457038519870604430529828171425584435524529218226554512229722975942814416989472130560893712232748169688517764299815794109694788980882858347260926586166932545204542680297247812167729920674263587630809948824138383102283478483302711060178156819928979708213642286119250500876497431998326839842603668576617718967471671331166972402085797486237004343680477532852307073109904441273350897369839934972552138927575064182873298673028077065232456292642169363426137760916787955231885277121852598320675825456824662421860316235600526003828690934106640487185605472242709524003835402879021649044485561156347235593147309363618927080728577205229694816594465989754873493013772327203227204774293961637457567956564074549577721693512913276086677056487251982208060425704595356057429161293893219522398822798801264934778102608822314606771270140546350271409921425642780968104015402142053239507983870321689069301189768729902534068357686835652938651085184027058863790958972983184634234374001647933307802514957158428193566993001120938150652222106415756437084128628620391782155814369109338966632268086274278081094349879632811036578384255014269969394464169518148262638324986427324550651159235189714087852876603643172991335959690552699525962462882253577207328944191782045635954715127601803100155604050383730783524488531153912875563223301034590839692951465135816494496277390578127274567187486695060012207325209500179540876177584610759978712422818316145759563788815392965514046422863755333773451824447283451216523016288380675068876470534651865232613066185362022220408076615551035021635631906967555666102546633342506917977485875270772171176601216850599791234294793386551716229505807988567102978164234906149545090857274763079220142543938131196829893664337675427119158848389927553467535617139903818074381238155690942740437229646157554616550907797010137421593403107014598229210246589355120231942978669539740857032855169502301957862576648139368985337478824633071271920259508104938007005003722558099577450994386534991851207538896970091650787669567742619984581707866163947073045886231951630095140809322717269844307837692982190631581924455323139611149281498709560787197125645970186293892319774762071073827290432749911729042250010333172970704760754185060344516580114482868262868743076523747396450059698998089125909017250501530395291190997635264506747962180909814342883753618667265968072462491049498891993279166723956691608314534691338350588442365067394422354930785291677518388009624173653941369733417380781781716798431694925746085256921018810917439486352836551802957030247221896622508066278456364762712953327854894875330761265566985417878179370222273045202313968919140149175990953801578189117442037253540300504451228882487845887581370956903478941697054867661271202597870215216256792795866067926728068693881622183042841762235294049706492963343858102252958266953918682073350514615437401574724095376485541691558556499776088760721931657744965678383569933954557800601682600512684309561958149146600301646915970369803288147331658683452083236959725536036785778289754506859830888822273309941380926710065956563843382232864398629360767936030614592537932041670684029116433592895434267010511706508616883108215997939360510395906144649404657544413571894712111756220067825496690502637660561488341418158882557805128051233112298244800528972011222597876517277696353322697407843191024760370532429476795779034048946412586548266752254608585133542689869969180201876326938991905942162995334181927588291732435182525897645744371376837486950560600404787606664244191637792985628891323172384652922939213854876897860528621391668052321176421064954998978797100590885350197295457176155330415976770516513163847833616941366196551468426896445276002360770126501862281257341220672825554337189433760300366595350622581222214607590365591712761966800717096186840836565898164433243537690136816014633388020878239205802215746814966124951759490099340116298547798598165898899621724577763537763489580320266259980156652133117654204032244245182925259105504166721979887417389919374133953889342774874057576765554581505922826751943089102900637782666302547555568870228932842893969097085655286646150516672868991326356054642411857894917222309255133087150345364355562082753208574615352318814657658321443573344123651840855127977034493959703396270148267386115638991842678830818679494664450485094028555011848768931142186771741338397746582260622324553545361921352541287011033737816718650633436924444016900076326428987009509324307835245422407918611464571561017776427981848529012528869175618986915428088430883683676519519598079005370634443380186922725002270991304223770545355763454081926350958129122140308597796692389750774820799236980662735060180087833678554163192282215488145009007314652479378565657325107409788103874249013876531694386809075742793153576024555781330139464595164685166495379659933859009449152137755207869615665140417118012627170420841098429930865445875486103144396646872693190427243465114838343328617433073325604817267670163461896311519120233110921998136014266311879592289893562369597587514300137133465497024898079943420841231911409602759832940493136412731809356827860615830821105518866460891190717739755603987707401123094988397864282893837906165701799544138512501890119117885720669038272891467475420823470600181611371383210584138850753588349029302425856582489974917647912243781633943653327126861338985930544343322119799393405988920683832079890415774056090391264422131997380610735399548313088695379260657611717452481932692053173479122343840160180833099815445299508022573397624643636227939155220112536092515326505473042893308058679567214505172792861814803770499885246656431233251451340344713406364760976083266567615881743184869184830755227208832628159002467448344353485497555813397526144183079653846405454906713426224783316946563588194745869523654410010390099832867036806117895163039398372954649092231846192412020305022435222181675255389741892014195605822666767676838030565578458321668372760365045101923583293222860744265440799672175527134155343226520337780647580903351087302029848585530188847307331438243554835849251201644961741514538798174013733288471247208167531036251241654009334832741643669011373671626213442428739113614174868717373437195477742179186323972835604946178526918762151181795599559190016986575480052143797661955989761232390836083529773761109689313955663901441542123106115880691649519563369239288997908412985336424131708388562223939633942575370118468455005735529808498998070761640003865112350722263024736026838668168475521474133446794403092226251228614512807956951632947857983138222715937863565106881507980575890161396329648263343624451449840785202487182545044999626503542095615345674561952154742770743933716938910690949404984402005389913597997780597049292092548809640693370035035325392857567833230593336859833653855843460659868515955054460506642651778409184931279850090864643652403370724911807114813705282649441588768624833353248738262020071662402251059936447111284402831907620613029582282916742185362697616437300330894839004675668521221903746796979917821375051461083534737191985145505802905399408155453345385220218964100656486027574814720059681716574316200004572495728438610003225063350815008440772223900944076572898351563793511726215697642615607830092342744694763036417319721420698723524570228674323368905326291532310056368236608769374723736560521777455700076628472493335623541903903439610615731096029657176422472317820094287908408214249247299261893055529054031076196463937817162404685106253310210655745108859144949503628123983370690281340203226499281769211877818660501160522725021245766160717292345014342415631077498735569895089005597722533330162953359539159792996494844943688584435672019831952923359854429284588221910529126348353740244668348359241167511203799761020828964524009491870622112096747380360284389649189696358437181388636731291352702800503735935256746521190534372562408134910983395227126540467207778142819623113388570858322308425057767840160088191319472417036541442964158537814336739987336436479844961733831324971148320951843133153971024805947272644379189599273258701945710881965658790016471014114853585604247253990597413712747608820887516400846026640357057465927908085620478779359941670523768815359145289467813870316176330926549518701617646800775676166878359896362505837169716200153370318978730791112524273100017826763015479580915412028881437958551057850488122014629344606021622512344262884886882880077903200898214945747157672135725373263286011788562703296928182423806726311533094665025723847161304320877418568133945435330300781382139425675691439948171666649784447857799108633131582768615178530077293118093150953441481350811481531531476714927277239951510856462855553755900596023886554684822094839401688235869700818021052138915368264328038942639762401636991621818582529555837959973065777436530903095235018446957276467599609337505733491422575636265594438145866091916179269632108131015746851006916671022721392658150970839315928921388404212292566433230142002063246945212433957390798056980593035404085437581876167319145696922358048957065848950591920754299522530874880261101430830600336640647173699777266307707187798259307192463573667034503251769078633703557857275194414448017517390207539344950780442497110993303861579838582003153425655528881645167425393338179719528913403499305860982032182211480509562781841894138979597431691474210137709146750878606196401658694942485290982732604350700686819422819978580005706103889521191278159674561291257776159132050889337358321732736383294056815045067662585569523559783807122388129500002507963814684647557086446823196869204006764200220698723766517899318471210834820261211589634262124534080061742210713149411574623072222968421895414985501273565957356989476855030495049188665040474380268378948111355890208931007021107587529547141833787332959861188912691399604138826534449633496454669651914267264183832951423790682633415145352504521794145628369632383285786110185388159814518487421809540383830384944677880378224583026365366457715071253264117190259805247981666798415685287990799131821421743068140834227048425592460491034652494940911893500630022934358616998274445662267794000047299983466965330044286894047588788561503680781147181337810423023552763485423923861938197100064145894860993096939823432767412019244752235747069841301503821423966058336659443798725298564255200424217592383263643829870110429122637304438716776734619565164150906052000162835268559690488985045233981162100628366350896619387739240433901842544670944760603924763091774272416195341891200087908824191756953830646217810338047704077303424835214471862048570270912036279214686412879433603895096997758633042772130769163787257759510786152323195166216640863962394522597766663111185185826652854672697902661619955601345182251070736595402344853985972123261550280642136625796565518880853015359071414215791338396670801944740788404420210523008212638909655655173669461940043475747042428308848369595409967163303650834272101427652581947365413455029809380890450349235391798850625246557532217594617419784009795919222202924183299450282933031978780699021702999510638142496657206417854047835285134506500868388161785589679844129069142894268261177613927742827765596062226687467685658586099678793002764545998042647968333875036658373694679318236677784604322251099422616504067794327889976887980848858328682838449547918862435683829499358036455177074198278536821973003308472124313797614125552931929377912334209529216812641357784771154335047052728919121357543137176255261377766033878778754377086969916858732294933710140202703482596456028253667231805113602536352955815512532521343963174001646063525730861609636863375351449806156725429717362919679592332263919879433086022031980144666774955015149610317960116714771987364274272190337448486644293221929797277239498643019867748678164747329301103130483621494005359825875937076630283664541921777817105378216745488371208944192892341891935246491761037820612430019532081263722636269891957628357384635960162021325324921572367181987631162541640408147127818949642848072698069276547869320111689035106346206571132750016523314905096744964443897778621436383665969202961404726450876890987799357056191366503022921331555096706986019965578683590076778261357366823145422893355408774460698298103038235528213210446139823221028003532579832639646326438187552790556764639222375562456926574327927809301640030151679815954211697218152755277864502697742163104404778958098489501996589904691053090337267664844199287331459714075064540213104423460803042074983615949564656719733079776953470274274057278903630699425419145061880472988021835670596730849755556541549552648714410215982123166020390771744969092587886457232971586706239744408436818487621729444091624105513697138407377777617438382677261444952292270114447308262576998067861034652729373286208347703444745375555483389090908839450561961661537551911520009097773812134841105450601005548070055174269848848333990445039691319157473293734631153242529619608632613751811487892233833061816241797524064432994720335749898927648853754480101721780909624217750652849068994265642483426880475468632848062644810840083984669406259105966987784667502590301946975690916589916797829592694656898088168163187837911395619009367637468765082738628342091785240100469259867979330210738399894013242958153094720393833101761080745662877715809672030664071702359935453045572292071458063334327172792615012225991855216636244028449580455954392339981262611111392314984530471370931944378374255613626919068172708442569701886042226416067360006010291720969470329971311036008596821606131487432922438129618761949508014341616600300339838227991349675820252594462784852159346371731913990538901688774587971235219216554524409920986365466329506115308833021155337883256931958832513653486588164666778629703132677184790673984321953299347117587667054316954460753611727072867661341262288581493442492785857505868087341110699110974170483932890452950361306591804963296441766660182058048485243116866015441970544051228576377435020833077539805183355438734938634436164330772144233771318870922454288209406985059844630149694853457001740809202468281441411961445111093320660238626248130481002205944946116393452881428875854440903289954938900612551403483775431537655939896571112205966511806947036033248529748216349807929108591197254085795144119534526188221500935650079830579021223760510356513894104904535763714088737307490246381303553766070952424658232750420108655098539716574039266355966080566393897217263832204524106108947374109704220242231441798351501512237630302770310782499089430212846924663030582379432020599182253285630946094801924631232438990603864393842949164803291729927076778486922245567427970134650417422098044670632898971606625670030182353103433947200962049682108463121133180938608443272012940393269374378418812678935578013715968324259454002738245626929924316403667383044144236751892936598595048302432388608503931147499713556368754232135347731681088581411928118941505244656569617157135839083823162304936443793246386028241824646548388634626477476325861088337629826240476018754793261298875940985629717329814284016182346596904328300248271753533819148145341896852984686008160593322969536656885485092933703361351075407449098366580652215562287834596136233313948230336312784878980069587943296375340617649712071760135406351694343917266264850437738113773992792850921859856674297807711501751581836835679606408584764002043326595157687240327112510320258003978485617466345766754000175350938764230497258062419248512486185527573450188473108884551171024256942798217922276561253648850788510833926813418853519021700074194046194351240606050505169899305014197832853456781516745450750176838013301533137790964225583873371410298656452899641439961976646646375846667254143410158965800541488126029739154875368775159764551565291942872052681291160616017131131804228119796395967372747586257450563829658810530752250711053455197339256886573203352412736701242974020918924552626482761685694359456533965083710052482977989896057025305458054364765793218158476410865722994955728796122030136571086784264167762978998377411839604290302924986813731132071973125479967562720610179881030673275684074949201650012805692706514503747567466452294128871544740476215854886375516807252796009676700911494549686189309695409610018911356327097509623449430055143866721509194569645663484058532766606303719797673458075691922215453512927795682694879668444448764875869007199627290071272502668256461049736610959209198051643890621677712974505910803512701868538690590132961523140897357223483648658345648632906479168403761407491673444844137931853635235721089405827236429005701392339468525164526724149767541587528211110230855154700445054384214844631851529071489563750504667505273824217128020737354263003708330023548418679931227293077519840788585278123295888152253735761887228448396948915523531491770071171860851205976455746225404211098117713595075704485920832696768241309454484327068527024613563741541215256801449072789385423293389654578383019584792269876647980546390911634877756238275807711830668976496923575393033061053857808937390665589936559387086023082376226802005214817909528811204521007414622478417246681923842157195756869046005423538525362348510897927330940718777410004652283811870204063569976784857715519892805681793680622210862083195969173709583135102453260713978866642534546713610234450173878638419529490157652337127868668754669954897125145144963063727508452930179687957201970200173376648706219628157809681338433262371684376197429229009915288658210694148682536547965945196056601293261181444903440569200831305337800552219427840303923275673899493263860376920172835071173807910308849205539209904021574704915637239554714926091980611639865292458897156250710963696071954955752756343327251182451650085351436875237418973765681995502120850581383289010070696798556820573281807236603246309988156301442183907174441671720679587173113876582068290645372937835917359355529638444248061620622572938015511854506280772108210434915572543677105002034342674974292922790603336699606375806408168350703490662930092038050114952566220616005421590693318488163837864368949342325560558249157854554517626218695234738051346009749416580016800548796358700767318444423232681390409744432526009074065356675001581881625695157820845037857918383624064542904383311361481981740074113522413393294045069245402725506970079742092704104489123191206718751081590450142925554647970220257693371399679491709485762769050646402787277119576140649619025367466143532143343893709502589880066202868049589438698664231109535851642172765713316840745825665160566946044645046301285131102425283137606683380105313146175601595543519900444408077494816884729317564789678958874931749454152441235432937314830484808657891853754544369143577273471374569712855788138436954594467317801918670940707205245071391716739216596786423618671031958616950019641788610990177673530568327247552537142360441822617173957885325347656631545759039553210471528758017151910861913664485331429821950806679121278388087085050700763072464568473225702797041785802562987548257986924019989799365815025885424201748015263299312760465473544177927791112149582187382991698548401982067524017387954960009706711209329157789189730289022855878589892595049596096155903195220677842573604883639643784681256100713474118570220817767284684073380144418428219727548079068060257936087685462079189738347381284374668818372938890941381049428825469652572691454869820615434459608562648253983072508325293581341255119608873182877603599579929853962376331024092188304401017319032586198589813833692182291114542270933048028807469150857668240029143269877004667805726467883381740220382565807483629471364527722597391622056744912849004401461374498994614385687906975744640109349757416818897767424509031248020315425826501671439281306745140537192167211523293430153224402103516644801385488652538471050758431106016657432473028026592925112765062841533348171243009781595541827918275091027622862330444096944672044832861829074119092568626101389413190334552129703526958670359813087342230528423945596531830308995918714397477582904242234657692902307601850199931664379461488167649075266109547029661463067459784041289890667378173526288603857224332271761058490616276241117370501390572881552301662129537421632543488362454684617221230116812872396830459175478928766158315531001032365490647626101585953671600969599243185610604704778684806301085167943690486814724968782448467763466280969380602258356070350894149801947492281631807695014244122630748001881452950747352619284929892834779329005570376534895235838108158984514052766432761421180693431092409576501716949845561162522598011983476552831344556835475511423724002779608695738210579600275629335195100704701482369772467970994942010972125755228098168740008078312985938428749261328154249448345019912714152084171786914754465807081493209525212891899539664830380297545809474511867224304021262568484371118396486930209102696838819431234864346334835989440385619512836701244114298000044175244686963371720031095216240393817576487350349025060881180722889656211216128512131274119581449619649710901491362728672251252935243818387233657997033025819018451546987366092467333064464793641881428157751381748957604864477103038775966352463453944363876318036275631365296248079143618354533066545249646810237701657058926781774839281898500270668830658921106184145447552821356840256292122510198229842013742268957682106552225617097468182741826019256174674234766579571386229969452484514721925692406382558110200008370856082414726683398732337262796616291191062451176007698979500254898074000630021459524677652043498125041221306709755951181722268287864046169812849079407037112390435711177883874996980999329565684509863135019993572442719105898427389934619660020309461973197528360082027759067467297516442610484093385995940887131543398839159744244536454521092947262902698795357066178114678770924978812132616240030268377673580304650202662289464885844262871910580932332028279280341104975142095151723907658799516861469516463956158635069240653093867179854330834578837517495575207410932146799737360842128489508469902839702803862457312151744779560110850243944048986052124978585367159339432169242732936906754298807267533613939386813142908778981200862332841278486810385561438169138287465793205407009918794104598557729758698077577329628069485543761452383243611333747216614281384632843624713846519587425947374055609531567524238988380762240093055533628821309019680045713400621536085163653146157043899525833274767012994833862711553128834727276525142516661416486381172185497038122989147176940298642511198656824795799759167036210628980640242235689703340027376704708978207392782177045454776052720468933359720427870567149271192938753449789606034942802105262781592949965512677143881258016423014915645300917630301133238410884554674647704705448457570808331165078214500654029567179117016233502534142481160397472087181009902003983657581920654056843006438678446923165011728700218932482053607522279375220015451434520414352795473351377146066773208403105747344580918190984029540134963840255741009714286093617233657662386358978156367956265857726068549579670121431287713462190920199793452340982209942369874259675891936517589298121768048207877162837631168310839015109061498250350221952597793880737950887880406076610794288478275419194144860453887018103312484315891361189750823470404768042259227640740403962419843502124247611769989667968162315758361378389739986438133009785208175354540830099285641713379098782991548758175076950692066432023917256645788312498913509990040203404895402919800537175546801907041118615555036188162986746782390978602898014649061395461069735793935000716890628720417789585929355533602859623828549544961085544345508037013521270026949560001137352819688837416450670561552868398477840768751207291307865695323431926268858130875747085732345124648531718995876240995420041133603864643837268148927357839802603211065146482092963127589216930494174791877529616180074787972098400796099775327319609630539476034408201924538363286949130421464788983531002830431145074774412401303341365552829397633831726333101952946536135711186700779687388119224365735132283495461722051756940137492199386209262052575438858934045388929631085331221456335123440711780102488590566772887585614116019380599909189138320363002406783485181929119873851560584815163365301996220241687937092822643937573647657465409872141871491069480651543400763628195198740566450741123294150721051660139231365129344653959531605410641606279557010365744885225432015439259888001307789865197987173974462376534200910589418419104133491844386584730309011055524562987302482151043537694411912739709761276254109712560072074436176909021673271734343499911759634744343833760764887540619382085172505981397853972495238983167229852077342406477834440968133186246773650305950961299060867009731490973697723270619783624169472969585719115361404403653551197690536251995589427321828858936588724311023182863949715206003323110621516687114929247569236673733910730079417461011622306282194550013229299253361079437053811443756995227470445247667823615494800098380136585300959274966126479408941536160870231341721390340967182191518440266554660266035479730923066853425993852582366819388988578062200208586162986330011643034305338530089284517821279019498327308948073894733339589075800633352995287946913394137533893769180873089140367168519951472873067064606811268776070545083489687146710365167279506521781632921175239622880306817269506244603680871703540528656078067694245780504974612949916203298891643116448342668076196730415807331122630345929656775587092219189350639140834405598835438821090578903627728472919030622049452246182160491661316269602908835194995671167947064515131698179331447056078634117748826347374844719645789603792823906915413426664449649995745695920930272866544074122299842480493479957208654552054410144712104225709614076501622096553990242099889966363602421554735176548727215389724103789735502278821047094578990082289972424053592790181117233966234753113813887227134985351914694726671289578708631861394946974046543273351066387885947017906254286666971829308723727434639866969880381161015401087145002072795463320099608729889256263556406367454881845836477267961868527467556335159735628894894471767503620034013070735611609068463443707596194288014940262347327912127350394165598173689505633472979923991269335239579451045288869597627568121728478761258847791519258075520020567834540733964051848041104345415039146921077102153465183041403569202405682205850575424762083133777525292795512382181013618618086249994629617200863466190084554828679411028063803572103255323213044081979842371759268458744141701723154776365645124660452022145578823059002730768484884327238950480973048123904841109898680876169625689250418944126180607071365712002642382452679310701407883192084873092404205691336072920357520788573524485963669009734334323446836927096747103496203911964483451653652909254108635669153472991767857364668193321106152604471828151510220196608011924091779398667364206120972983849893015669188363598744226045312314073716796311013519215034702230898124367082906264540677129823360471732201080640837466228120997981185982758159168300336938593444458119664323677354463627407613935322465832696818069399233682214448582559342240932873096203686331908870967191141222444294633415064785565281817214757901885937565027522681455073591708789353630516677491331941859560190254001405391115115847717032770581823130461785503536949845642289660652285414688267617426242027696783617364541225487368215228506044530117744874039907767052372084270641889748211662389875414245020797749201800582852152911928079430806501935344148259058292375067436562883718164123621719241153854420756380799554393323042821510988019185607965306000827456794977023027573616090976611186099944374999106811523377161375839901747322422748487428598824847648489496486190558962109891394263321149593110877295564289652244240834941509451440722925497327569631742594075384063905243679046172478477248524753590807793959471058667398229398493430290296842592110345420853551220234341634546929662025687384928656850424250649956049918701606248267776363611280863820997671356464546512673506801572920979138816836397291582136054411878959881775054551435341305688623323893616234242769569014228675584622875514303350765833456115813335390999192067625404922596741441710021058660406041866145274567376897741404972052294725098120932816682098588743712446273086747248187770701200319195986316257784181000605487540153348466998152830210564482793938122648224383792673339052107667221496107385043090881649389076848268051050263955746884060201326138722881730930560224750123670891161238319195727675560921222553139321525468948212467389772592454976829567123340970486852514161795005674909362733086906520978618489783155232041513269080439173939274975003104869968626917191373370276357653927806538400213148111051759426809361907383290033129697958272316362369025906816519454065720180414464694580867868371703411291188470688173295187693267342886918562034069291506473407853923181244325409012133767525294281763428791166751857141066717330533582673030365605649588081197016972038602597697537089790940063525644295180061950662067719771678369276903557628604290265853928006835345783396228522136421195316096881116554197196136680567122641029428745305928983920569459928545581025839111719210070094477521878129069679651872707125619553770196276658405891587163791664144336513545326491198207081005526404131626565123334743863291256940642037807627304661244583850713182063307296565857526530124263734522112277852242282149712750703395388642323240920429228375207085915868536652773519327136272527604576443431464237947626533498303030865622654942076237168367584782569879383959072473431717634458581890036104053130704980984041572064347119729998163737626485432282234712598758906050854546094402582042285421806401797550647662508103431242102897424088447122880007561559678624579134163082365121028698612753617861924560644238237695296594364598834337895168817903604341245730952910166313720012502408706642972680506233341190620957537069422107100535538214634268751788386691650655366858913317321607059257474139728105908174628827772929525073480133487299451194574582394565447156452820031407821456151710933024374684458835385410732978656255549528813358094907445817385247177587310373884755211752076035163826905038841221839892057579964280604160694669431683423887328556783027294639051301044784190963232898713681576779783365106284923689261798478346049886050588353188255361286980411979073874384912599219847858770565733455969809147708100588310909889926041100388282107520037900339009743531846853589661767855066698028058646946346903577044514836138105352224529398119183820519975362244452060656887264736021857662527826636499305313188762764838560154170363808087716911738265623990276248805286417897565223616232614653399418613608559245644636856738216928047032119131337485458925387142323832536437133222997867247293945746729840339316978741371318753237905701561019717870103912070268887737936873761027876169012490656168184921757575977709389095468678426833993159588745215690906827501001816087307386020900516180213168099333152004829555723135004029914564333765839074885136843402442820156089596121849409802626734902381302148420293097683813216972013450373797822176650871012341957306011781779172696797003233993622960509223939629595748736618395575146608292415906375455365822262056777735044660764657507961629492037074726976340065387961065299721885122603033563961557732822091197687810212357604918639371101091781876150661750869207847337017257509819680808999566851237493887636532485000043578385666563417918838864902272983573901136997704386287076879696723530956767054748702095168715117866902428932122313477213271092769742056656447318438623137680748734699958145838646554941673750804498258076872178768101418519058656701397101347051238398757281293466192424008205094158322617259695994183530786887211020089126655488882762002675288038778967103466769391163017101985149304304191978273917839968567391272469353015246710968565570700981647455375483254129692786820372603455025880215513176523345568905299120156876345389448941026446393987035771977335880988614129166181401213959136760471824647475164150283859465795337921015246333328846336387229237573671782196401461275647848325644772250241806155025059210138072775730519484330781686108890320966802101073141195258266799542069197369008202889031435817112442223010550632531329414773582815586002204883379512430275535942580285205821975596543503038426354185826687172241534622098084717963309695702946058440487125453660361471854471425272333351973129314372313514728321108149412900544276280247276887705931996014400161847165833120342033349413574702256434630011036020170519563201878287805806143916975616166815259952236138631417121822896404087674335081721094712792394728780265684710594017928678559990553910499728987721433478533558695089273913366072113566850498688194341512666062798447591340773699228946141010809735124760688123458928864647702083225380568344489964986841629378869977759840134112156660193661668681772865252168567532613101322020325169724745815162298614083020344577844965966236505779713518447381015702021937155391139463537351316124438813896415118154153474929362904497955495665364142619044416209029433021327279318969401251977144139412470247885877507744336492396268826301427405417570584776838675083665428894797843643128099774872516824659630651156151548538320460187145934564542707790876630552855586304626111964118127323673888359072340498701701699247760814661107251422881563843403676432718926808612326481051967239550504627011984524806737082917689884212199436146584564111164739189070285249566718677543760604419395381042248688669295548348252823249466344688304844610444539716541221911154889088741854594155436804456574589315102022967198490128891827058554208915292827464839942876957419158506271379030550206115626486018553271790449956753065134694860860227570168531134022116959519080572009014904178027975996740261139823487372982992595424967655444662711271331416342255028583052569736825025543646436985723275295612294005046963012410315419111857421672335080674572259518445955301841801302890628284336461853215347324860729899885831802210427865097623761722473660790272509566023720728747319944957646944800302676557245094630878366555789208738261755693823743476064637872782401924138047658940290279033099220818607897582143017532555107273383045289776733082021287349275927504416869905926901515974051094718026069472168314695161842961872510577453334310054742505999108972695133246844437178794740905884882560579430523338540423751154137962190638111937866415732494730672345292321476734804767897239529085896002879107619039824812399250300763951360565899000481564890129579720101496025902507011354898623753179874172056236401407887582522812174737947111535310843045999805433268236377311906229155170871697821756397240255651305858338222693823997145981597800380842245015036133540934811283806342638584060135153282360975910335917933365372042465565137855100840220753355385296937472146456061637381271792494492162869248160212697754361668593555309483689969846907510342394463028149039679499346947552807282563870245374904234243003546275045114901544636834674690029950717521059028872468193131435693674018607694590342266294662211395174193740852622139050457054184930577181497807077650128675550264506548461757611113922926488332222542876409934786581748164806052053785877659087038204068769790752210712946267674585281357673487901974592523145726151073374995454338134212448860872874392121003453596927065147796456157162003778584690614392703467147616798202831597662008185049773205017483357664716005251441791722897998639184840297822064972534203467466367228590153208479323476234126951965155724235290296661265754809722555851657165570743160008210479066386652906494025921540190134777059219194680824537304116493823523811680911800829844422145367291319234325324594301273543217822599786864104517946458369057682739309881611435189397231097984558636365925106884357845291277403379769783194387844095198245273054663443336596629089003780708387488899660054389367835774997414444829719155405859837341262482341587201000537462852646932963667011059972152926917994590005323031928288338603557035025959551312853251954643495797294297901003471121596821612943430183872000096129533391626853113603233552073105235920712396509307658375759966337084149098304065033438401371968400082366466297719376367676763695278588628725057498380941882811231987470058759248712039378655737642771939620633282420472139559267541523314623065504125434129178193067791017731309290017698572814114629622742661686492109128624423695970950452980845333479350620281271266935119808586706783273833323764773181849792794514652735916284849313839486264580161286135343598554372288978018704821780503334922815593946267727514656702098156816004237686329387352200562055469609279700998987915381364649658542643449492454693697450262030194996435562544602660320349746645515212056372698263711388521875583263855977771797457219814104622705065223987437603997700974320685687865791598131813511957269630447318562072705801360783685973316484678727898733059001212496700357869785927477575294529849629115126615752634674257241649861028895558915912525178503097172873877835143683399491533246887927907738435864823258161809256775160699660540164814060704266549573227409422117614954946883422532436272141724668262520064800637230507014818647887899750677710810374607901322855671992657195216283411727313990145268673154438630835397950903464171294202853855532919450278085657533975535895677728894243994471630325392006497623082998093787233744825958212468531457387543282504289403189318492057572066182807763889867737838485078585807505795147581533559168523109724701286511115681252306001631508092159698915868618294774707015974165287327643747599653711112191275526156758606087935488336201141060501583507953518516709233915794608718282725825445779441567703713849906322379952284877564662905702093650036916562190825890629571553430126319986457778680929443341356754822929492561640899642939706548444711398428831753905230614655539377782565587776237219493409286167458649662270391006340223804810821471478356132184307070789830081227319258610542970050845930196757187757218571333941251024405584425750423496039461996831308454792954709826635035753551379037421186020124354552585231354509413457991700478196954393302627666086215832142580983496564468875508883670166907049759379436365677522049008361708798498925582862180882333698816186914757535403264493344129009018090281681096443129487255890153241955009749561029272633063665717972829530800489126879790282248924171606408612153365717657688293094225844208238743449409001390723994009380926237598323003834243884808261321418338820009399035634165063853611946197358126219297201865723628822439205948442032787673409377298391366695550036495532716652312611628976239516736536525784336659284308547765210172303200226234249704575171215554425669114444058408114602998944487501681179663772957235772149598751144002154645995137738867979867969269735028646913301498238949339678736444399917813700521107995066464329983630885796880449901452539463370711343747704006562000834458452452949192830259161667258547263158743652918461045914629532830729829285200059660649895971539771143962643069712084208084520006841612729839064151035987276726633299269269062064569361720846682458837593269548027244055318322336622897968209061754837434815388780278899182152820429987942554113216374418701532439482051296540450785591025764580419009736044992868909370675959896797403568559357027577158467926065006579763752167489622305364399622614642522457527739344946551559475880759842225090318769478092111958835847369112919382690669791040428886777000245254853731440160599187397584349257381017697917232065542310577300966974581995979646084323746893347561363509594170231419809621436056515905077576914176513132457598487033809925819880794839075790871150078850679901798027031327538327841579976382757787799690996649176424592763069117746288510528855341951048280371076555259163617510306493789449920822507071525975333514459799268173504824108488558690805579840022695683899072591498873993713469932671560732185490814858001649147522278209449517626829992041434786463341410773745223786680594827028007199130426228718406734125027993865541494845444642328826949815458224048956258334287744098261517016984653495477284973045032402217842580840444986416543683250184437109106780736708902159372190170296922817527566570732954723661574672581721488737943716467938291201594610995556906840235036968635136566103989878106815805428100524365249701107416812602178096198829898929640611469973754297632580445253860953285921249537530925558596680301372635971116208175343994430689792162241087136190020406044125583440320467780233970553440504084989866922044911767607204939830519055569609876007179434615687814297285176271916477746448923677601929761508327537623333392307082610189890088481653748976282800423888005775834957908752271591005146920038542314963552028429338937556169952118672648901328230715714196163351318424501961600835312677377118680468253757745273798166432303410328056168837332302582191619263723936212489661241852731028204052009565618044917215554878993999194718429374009422325246292150133468623546942890275017023558127445822224588828601095420567441551405457411391274094751183767516236093571204117848019953519300161263426431680703755839128094073323522391965239238023074700180925111880119960120955778731421298388659413051565756990223729987834784179689063245778298928369772513575578931139116313468538951271700406461197354742639208226681013223461224099570383736998085822660856532706661579297451273269655430340472211726853876644337285362474457664921583943568929299127264955069617190333926465194050005538662277318504791642254016173586478637177322446895600285701397179566428343494848636289607103245296175946372688992436720218748990639657143730273430682744761565122266470089381478513995372360003202336117289180453962885760568062767437590921706885814120863864386710171273302292473667183194306797956620211782139888203318500610602648538474755190752195534463240923123459164013037759612162836461601472367989946835891284152435707188501860981848243241179937139649335900298646235245885383220327851261485678664966646131165438114806364280139242874441652387514559221196562734477475060292784396210098903696101879032384536460706289704974371714130416812904408438376195789787054307775168937617919320248721176476508835134326933687409024577994987067705157860636877590289609257844485808225706535625834807627384150630516856947363972211353975258572738470071794162552962404082487624271548401041485099744765225791313496357655141627877326778245257687673138467315442731864363439918985845077539047363655751910359154801933230215919896844718152866584650134925338686306203345335020530496996084053448453932664337427188633167608310323364476156398197769887302485656939760583523913401200318725092987079316136517076311497553393264163995125524062019317742932732475990845584021822513520418232235255905353222550379728395249891338506215637006836151321247037091040845691759277924459216272978074768408310291606440290526000161172971113691084672295227674018317413650232807245894578972394234254298458656701976553458139749754358831601397634748530798685038477757782763125285951325034258861296395686950772071629828196503138096924703325083918174143904046606447784168378661404167214365863782319221570196109843954952062093360736417429157749046591104790629763464788941706299758768085954083393271338104701608333639904457339611171596151359059653619817833657704200531389046748181889454582193728581056059844527089793658727804146619075486882990211590115841060819124338791812226316217390564162587190187349347714228969065367015941524871061031438742507640190320628102346602605272249628631184804846890676988777317520794199822576711125202446829210673624192598847260413748856821922040741079586717233501248325932253048799912596725357435527910706592016199069808906168542511631940978899563577788846455010410693647599218033087494283330992355453668268821956507399655766203848296255935160924393436401563024454884088345743472765109121525152970357713568156149959684349099417336160182440611802005311564356395641182169578914949624626794848746472167795276696548158814319167573492960866691917395267359158578338443400939520269555181088947517178544828595308327638688851831240067404304912279758435786582011032147121106231285847456228993085260371088375523625044843270227901865526048633625248573241165580012105311201914602055417696611751595257771843011944977355019125487362291951798847455957554536718106436161862524813100245414362809902254091877015732323371251707921321961124029277692436446044568314527333952829337326319452187645163339555661761794375322432117734347803324825194347990650798096664930659250719648008026999225075981771191438600213180707515508448103311932756553851691532223552616546729050691912666451669198541803920218227013008409116613058277726096654599392898209083116167660008148548609214775717277951318225790536671144681165001755523622534837757371028900538341845847630954223957985277926183367609052172109003324913746223342226904197057314991080487926204717509258623537653327687698601325004869615627307073611650391186063320062266181217944986197438736344625729881890567144429372244298825618985320015445575526624879570758493361217362254048733936754231312028264987832542042167503764957868502167100823721183563387365667762090599652992219479394724164506706190429927966912678834737064350682155573016300767398603839095883942381804540635751980801940112483751284193633536296121031875772176785308761038825729000819460522376254665692008818100747628723258770067177479073446218164516390529160557791139570684787490805605979219642266386754906721204222437204515956410247755841946042259252582952493156458880291112067756914899063150826929691320963486422606831842626311599075976040655195420829954767821015086062159703478708631478555824389307690105775245485571986492681026549792497464423477711160070878418695529660025841002408949062360206778745883028922969975471055138012959903733201868489172452433558378390317398436488237877129965621044245399417546687223522013305377673939071362515827515735419574639373905578043077965122741951329310628323470095473015145408680153513362499795750427429999034135142879875975987408576321173906870442455786296820340277433331793111763083806632098439856975965395787807604990349356103164275500526834726743769000063937858210796552986755020410416419617340123815796666684979154349463558593762122028250777209483961050027885539735764994340219220374466210482136701495932573427454560797618521899893082651888334154534943700456221243309793742321216562147651769899471170008779343733436989097414116133505782433049693085899304319573867795382604498548329995949884763400248087566873681590138872766887886047179864217815515206544915605677408444822021669062552157316078840981366472370009379306387229553231170939839242656616798994305542172856494285375018857423845268185789056434084893180768149505255851662970336312357745016643423272012012204887191787873906901448259165756397958470939419047571311524939002388422936778674903613225753965301712284612011471828099082837770435274794018579614371492734965470550616334476106713583958176540303124008089454458044571967586858571567587794014403242956147124133371914874233031292778109792520100842440448239786573125402908201122407180317054429636631073324318297323504508422899770550750792545383533202262713754847056892185525734660851725635035852059871968331006355472022398373192377054895544569301109656298213324348609822465492961968645555445975035916200497557790857926940596940376810297149681100392393989502259262809776096431835018067617870763484989532534280729247541073541913459968285016941763435794996963287799224953171985345585129604757492922449126973065069827866663570329911596795410207411774717401413635171588406137815952996696013350067542066628761780801923072831377381224587447737831175115456552757285703022586215835389841091315601051192049259081625318411503625113269559081070506796047288705565846794992178947094432322648915974109972528670496792744256307477404170371169450942883321464889146566061393382359363408221381940711132972256386674792663458414763335446671355551390402357743634253190452368393869172397512140205533550846146693978734740893844258491972202624979928058635542811659377261987225028045635439519209539746420772384232807563435022222119031602217159792315146431197684525885139292219680237374193129500756728950441489141475949323939417354801051742186015545839353860954533825970369195042613635613780700156383886388472453259031111278967671674546751224419907746824574227325870768455319743743093084582196192206134441089280340660137103447869989062473692820001713800996754793498585864575360107968199902789633990661785684873104258692131149647216749512740177044513214935108917535642125105491591585804885992912451344680279942614236180013780225310101612310712662311098839551672827306249842331440122393677498140627506283828542851293055741679102980992639518433471227760440804868843381133428734810492241467901832809805748352167065264427731245790725691051983214874490637457326435873750841746557769422495977215730357684504810165115238685898590483856907817856692652473498018343417237437388940681084181375827508429036231458368485563317630371718171757097566480714886835601897541005884158945812072486688628474032958549397286061125269778403264529714003227244662294027319744025331616699256474403336504407178070186762816637598265041106480451711794975816584460300269698661791236340808977598960770866955969548103908492058814466254089913285223067411454890412217796663560787825230605668678342256375963329551192989022827726150028247652276772513919191939286750637986392916183457112015169034293648630059069227934560678468482120180849611212021463697198053373979283419016571536141566639139279571443314405130202292683271545912550983341646138998584696466328147387401950524379463228051416453449533808411573824287819212010399429717346679581294588033834669205148654069854704452344167637041851100771674987481891411544468155461430305447980398146265610609678800257626094607326880356841875547067986547570617369256388531264170293036027796737962901629765842868619218142116930582253741947037773105391215907572684030212588405927522708671998824753261299926776579766957569234181130574760301326325860442513346184196942243307792889630260557154078627445332114323500897207106695661177541676510544140298178877047709056964158774374131115021710275949529857972312253989798405714779528641479346611897598720900651642534455898522600355496621867324433288878944513307350028134619126320285866790709740377077917713771526364676433940209970359483885977768334235690136724910038807643627232838887604591771617950032641762327640560197880925590771350779442856178467965569871046776619282729979889693475188538022988245226738723893158918984227568411971230732059884724971042757643338980110087876419856406264947354556382879091612612513417370806639524185041180913322181920272623424187803471169665249241992955238919817420579756494971221583335127314476845943101293766978298438622701017421369122805938199831706987590635664936711855573218856986600302357752537165022628002473801072685506201668496526571729017194118602010338285055014511931330919755290274390302895112087339027581692141883409299355547065419292999790496792591687919568342866170496280291792787501018325736611516937697919207706241873600155519497348986984749453618282081549976484533129684984091274591393934763571963301093107721674474544828473968035773976674617643060769219247875021269988937581347290769416855040085816882602314804781201753005134643010352415085204981145712793869580656850366629683312437531250659796042111554376380046568992240294144545232739923138898492406198108651886929083115100598580161532518969773958883409257349604667864533250879823853057350823325165478866543724427735662007647081260964248074653521569173876724172057465449966036801738283630174005532865120706302347118433323139762803338294264534814043300754486894016081017106941110529905227781564449864834568538073636205177004798012070490092404111844310617323563838122900786301989744354083672918066942598670245344184780107786252958870472385992983764764154074892074060857448535670961103599724514758507925141881137561021044081562430084048535618298563456134253399678161720501665843483672989857517964531356591123698563565816323969312292937656208125486178779024395471685663201271970575572574409551924317878915342172000980625730272084485093964470755415896060746217391920451787411494697460293488842426745726592404176149978486732482055853353620747215749236980607024152884181411118587778016789158628889208413445636933267835826641593879186268644043748344259152958934632937010517737118076219637506998824728106901923440407721408078195218762360406530412645394952109972105847879334397407347658609021397126173842569237892102477903115137810305580012667582635218566575101575227779790783637486135606185991872678881560442861611121989771592239698887100027856050487511525675642771510999829175865908721603515201952186613740738347648156760222503105280948717034672733673889640807067168348546914239963603336644817167719250719872766827275561993520647881110464175766086893910219134245038583503439576516028368225855746198021299743481380406756456181311393863652575463156322787921408713293634896284383984243810758196171910165573517746141127464795273089928182708488409309216608074566349331871678472453300757309309803811047884350750684265119710968510854364297646107194916779724360597092919663636647723500653790122097949730858046756393675669982381236365186379558836569984114612082294026984266185100856083233848686882091910619738848906651961084317783808636342124436406105948441003388852136063384957420078700516493745908386238823847355399622407308866166156352909181032401550327024792982328676478384142814466737334454248690508517821135115490526257090759744812829133727795710309041611836136829969471147511563334564257208729270100294981924668559286221914344220564197962506418390639233201517519430109273655992835750247930400780916234605158960639989418810826005329290940467217701754966458849254667324207157755663656809078649407561021680059697583929153875574879101163955863701107301903951163483168813387480303875041349420867091099105338608065677246413832940408069494031944099518316293358127734715628578074803194548492991239194989075263174651048823125288760269765972742681213550831165532643979146024379137293768031534853680816144396931383635046369022764485515637344162010695227008163656992197081932002875969134790985818589690364958082445499376972681836781733548173178886966242146145413263777093341483981305235986337866461029956762450531360480522039569674096128867780811543693353584243479735863544109782263078058668951980637946271962302324028386531635151028134892065317838853193771603378560251617730954447443791173476168903909942897833244036494777105967449525747264192024808150999024690968893010957549458864295905867192634731360497632662160579204960687227932410845005552749306240648095630667698763438725595846083324365545261413463532898005530717093404686670941085499487252406656933841412866730132630100696976338524317626018382862613116283167674694629757215591942388163843674329174469909706784248916410720754409672555268102770367880124563416806795748160436328369030749460252547235773413988206479622384176460252123326354670565708538630154601662587755178157515011059849129732157095817154142779769803890340138548595040619726933494876467081423564773109716548310855654606342141341507697074149981687809367349789533899624447248629818421106990030401632488947599149891053194235751774724374749859601423527973106361072323967793538220944943864948236791893476176614243202024270560029962125447644037808978923768382891968496213938247234473877154849902071620670307084973171198914734170486508030918972430808649347696481359639568298691858792911129011868777071694097586630490344905509191179462446777741574074352389006421013928813099537209425890077242307038310390119729037826955058969939952300383538502683036921004444632615848804368241853754000663396088612662966565267803551376145541137161768660455504824400298727270108615344259780394633433030722450381262437239327326363488060803150353239045547869222799374214435345802963604284476143760926959655067578348119964723373822158523626148843599290881359825007652758705100546514599331314540331315060254540018530223666915001288179884686262198666117434000207123555681856792825231994440421212065717794619847281702214929185583120833161669899094314571382402836599094358017855512167450920065714907452336686086909870102712260210827775038920862975479203263503959548704314940319008779893752165266997479810447417314058640897706882620561121962906962367949256352878273372382203424076206954838474336825048264117779657727013633048736150772189021715469079550156304069814519316043656416697746536793602841658975268068305842809334769334288838124364875950810960975436923412519633239434942185158162975980249319467743513116484510270807264408016186406554762104008653087641759390207484395984957745318701594655867260050696833077882680162705797540521153105221869539263010285134745501336102155702110498785364455685931129251585326449599246746944635110974279836400804971512474933941559946282152509773446567908751259084598362756800555657076118964318820952650154623605455930406689833681714146712185512746681745664941788507767418594603887700998030294997785126880010721871163182594772209901375215578287627910440506881430074744502320893696576747905668414699846303542805047153649741135383213546212609733241594058159616770042212954100323522108396141096716322403460990673951948658714613833528149495278529171936160249298445787455226554349246048863580601818958854871601719404338790153048860489897481611634218738451492887925126956903521695905952748589315744130085838004646657018426619731230919479637875942835240571349052275372704768661561062809106370917800677792594915724710011584575042748044359715214379558949683845293408279579904799250077311677250755038423456398451861403996759182315310932421539180146305232588769840502300380334660151207426516005413249061083327053696804125628312285783356084567202878359272881415966671164516629348934481077525169768814569756980699676853109963182330960173311456688777122942990642001807721494726079112297082264813936704542132668641016405811393374596118813234669985666315766600658381839915619422948545126798863915935819742746045240811017158992861195818802484071858904857885879632400251115493921764714340636175405308913156136028488837576889959479235825914474553954978311739271533294581936875552729931220843934916040698057321578364708788634379813416540497510077083148444425047270774237407100215376245324356172556126911847465853178897681455638903181158025608591916463240729197857625932335825057882649109388089655225207105312097465921281981831401495101355107576604309299385212877244462139530312804932169967982301195449175200135598103952139211434017620792425750078979653940882822905368802182040569803080241073256577578735828134199135538433821377443609556818684879394272882449586071238887251129687375503514476180246518091598185382359314271374736485987229715658596032163270467697231502296530639103270462961689570832842748769291219431192142813246116431587471863425771994032617707744183991403473272220083747227537052531485371452252123189954281116699407884924234101688806815614448563459853445827818050673882514278535886478488510032340679514098447839303084938523434326070359218625436464054914572908028697057173403239495193324909540197422506849279431761290224893638760253818137994274736302085671413426286018532362513344484805323774973587378434726162496586641709150430324794643500207511482124521241678759318046629056264769138680595381569942062657587289020773235774080505556189792782995238306680179780687669023223852919605278897335612245563569750879793960084673032810651659166233432675402790574996541395063303526627015455800496366510992234764574108364266762663390157802046685852037816256597323216142958826409519490047141179370109147029032349158707624597060181965201518572211726060011253847061261574362741596739458771402918398798290301652619155048250337526662704892196054922456854626588795257272399095921282454749182810604506375414834330051855899797508519435065508487521766280082694975077394135475646486427445714315720124743909853164148739032704368311133226036423401223894566998668821959535163313640719631183070087045090428591838620275192599111315151851565945052232118082694926086459092327231625266721206076163762876788232941941193463693332188615862357301712068388375649104250416158191703741450266196008782723224547152081754021294681942179181355309238467539562951902763643536870189931648702107988828324073741300573937084132438396969155904509619604596697629273125986319403538639016608603647050370353091120670853097239018862492052662182961730299468773885820880498796118000066358335601660514473885406533172621148499941808181931846777161913440707074378768297521808805142129553862105541915193237058138482156933308723086565650547228911858369429691069694179941273873229364863606688351946583642165934846150435880160721917853179760253529846526256012068194012060675739963581559115965921280180850324835293216521647294960840491306132342201110208945912729903259484701226422501955514087187038029393410015317948736569623825955563307440251381818760404198693696672467688615873227371766307782981784251315028053419014027070211779849016654260466986274218046473485580685321102604395986963735277387113315628253762957114377663979432286208434969298425482709258444081461826007079052538347603284822729856002586346671824898600206239195349850276615269039331602299445758713583513324720409716797922403999397860829838093838261783859837786917480150499847258233784391768596962756457408847191296183510723039418572494613545632342481865282356419032714515336191033355889968951218478148070118937021496498240533883606591395225447367020143753972603842458973727711090810236513806966513629546856034552847425612972006332154071775851889721379357483592450893204568745076119930614057908348540769604563851069903090113337481674982782494429641848267119209822948659164420361218590751992334571076938808314239390695269521350395585365721497629915032986352440050830054288164470194868355048517118973097791658330268758022963507794147345343474809638256419226076252471624962275485111300412819893711000438317023577463154631326378398627599867414050801489950683936397087876799810036066718830487268363831582167327667208175695399901038575250864462087637906229511672862488397825598692901877892277279823077128138461005621721357270769717631315561401259635144996380366520326136195387836184054641476587641853295209311721223137353779544184244019756122034541748382479096842295500561527400528891100612744627992146445372886649500770008014688472063298839797948225330837435805586520007070388664421280252872047014095222716875526924200631798159590160729354734583026723341701232936677369112736148058136179352092554074049387776828654194794798966076159554041623904267084795394074584049162280865043118070280700726305488546737009232695985834252594224057142559494262400036576091924933823024053694438894666853195895558258899284912183444100908315457482630224497167769223327740287083421763650595835438448424798627779596190031746200567096063303644633523079437447319438461257174523967973194165263421790955504356730341336773126541175808521552937527916358381674233350097734271010962527542271479158403323676215478265411265212291028375737830502709369475267424382243836596600815847735538203060301134412099197184241781653431061128778129312721296133689532453275721632276280229613389061615858403619281105624341648601505382756292407818349404718529964508426374247731015871688383825211000656340428321269660552361446410856798269949361736562645276576774936098866201667953554697272552603012317509259526807158347897292111627066392857420574591104023894806221281446104024108618124401174478851135949973102913730847392521049215413561164335313149564447913776536013964666948022494993153608408776491853255760675317841987492457202565471517861312207180592485002121433527951610185894378647601474277054337919332080848463745059486025405500158680468238141221233198552541771202814373619666711645558087837234744876064319465175926381224013434820068910982219363261466387295652364565597048974365713136703939648761979475624440791470018689994723882014337787258099361331380745569339641378510883051827864454720326542928289966713301862597153659988299400904544804420311554045126124207375632541474435636799372044083148656320653870611978280110939483605031761512429138495802326764515185663792807469766099887856013013675277508595016718127471760628496155660649002362123344326061009067183136082291916224472324910992438829669724268795674324342133351627657940662299563427061635834387090058840406399788989511889533240294451924547591436555027812810039765645059943366523634055223447269418537214929300708126265337865115480320815600405791289887405162070600260635134228643370143649663986182932139880917622916639227607505109908551723577976785851670925375495820821638510967912197965143401056983832653597210105995095435653493252472227315472914744641927391372331104484258568306431044667443973037214583966406166839480930205964189830712166786371889467182851144244448502665972377644650149555402473847435623646186581201219560215014922731068536161146631343633447333423020500726045710150542084235469322952458776720264066702406330407799531316343848452131022145997168956704680102659667797564891518013548806183953782212403911319196934775605724961886857661402036071797607260189611886071750774978035416925017768673743539554305586409262988668762244519001863315370195267041108100081810918377897866355521344121361859826567261314685991040613295618011006050195142663931341250168707876012088477538046007381799729277142544160174400880456814176150038068607869068280154481990233332098018579029145205792356629382456164591193650863984993873648568114011050988204516110924802916399026428942847839101469355218927625579754455544637952319266740273481827946920628317789732168790165995972886275564150683798816104894157291731174786017749090119656726308921336905035309138686614771721070752067451095840669711127255105858010578285327387671127781802017575008661148197668266106630320130601892258946074897653154089615590636035433249661371760953810836201864021728249325722062523893222383806769865652095009745759706379577437050016417442809950951081158583640100493496691202051310234793359737317541878652076716589138052538514780226402333122803337881069108595257913985757723245791045731399552532626572262197516760544690064605297240672338773695761124863099017873319963874648868156009482657040685740982263196562139232859566786007604456317783436210239856667890952647629580961035005437771676543889080449488361052903870175635988087370464050731934223729187175602568915627787827336078149034781639878337540402885487926172757447971392879384702937620583147277877981527682643425646856090726147058324496802797714192600254214587603546720838779713728034849881359628998296245590784202794347063702188264617898089369396964764600913539205583166462272638804937528645102645641575818041750399149598116496734039923818024404300314583660375097631839616000164112453134589019223796553425262614742283164613376737252427933644607352058909466492524978632762731582688441826466580621117648910655528186220637905564332932759632647949172301140619914332396657542115651977874599257940782049877641890309403807771030556101022124384624511933186262647124584592416115227096431649615715519403466103963933402279817162625490214232385074317233820386433623380437175547558479429833351503490687783566387033395792393835325814759330586515013286089364390983333623690108272260602540526309849382022213435240556814029187115577509264722201608806143260167857154885166879113355573176649449420859444701460393717512234944673046199547725484773518695724636626563840830401110312197462323858060326963109719300865271828866616904008045105069707260935040369440355427283533862319658781513813475865833518309195634193849868887326530921612980501939941979330168961873218269330010236741710964045338586380111943794699904519462757896437995772949537069623397005338971263274563561756205471900926816642709853814071626321036161758447035947698175721403958771084777472678296823434192958638285560855374837274173463448749734605098383136449586793019085780464570471427191445048217030944652000602635567588694453196939577136300085094108131487399705128955184899571563498711805081176441565236203312367585899995633342669365132758955866143312322310406296974725464865895528353966420886568936799097774747027165353609586922610280066979083787005031806198483267393860994068248252900589703280460425721786079350766661207221238714715356225045952884910061152167421527551490118175309111301823054174742241470077147108886873595299325972781326507185880570561075048131450686417406395585521821423455385194975631430764956799846305568000546363212121546806575958153583019654158003802328541713656068089215571896328555485896004940078929126747904958769351341189810275605674198856088921951950301327698638536005130848653474943068175512865090651364728710323068261404059228707751399058203368989790009799713199911060094614261695953896503266993663619519312439470124727481789926541424572020689954005555205179014053730344915397031333822666623170934112246227314602431174537361308267543054197080123327291505613061981656165078038022923446533531738056862250903458206230046597473530126680224874162080447887014153573774864210461151635463018108359794003771277005270475615728012235106752989419904876951907926039231378219093185653156576388817019109502472420498350660752746237044046234004861425446462864763789728568946235853460781964918175160509474854132085830011700795746598036631768212921661320213385235504265705977237090692290242088294452362805345165142961882766844863072555009470663197450007558043702173563362215965859716801842444408432157249544008863946212084413159920832820166707105484650567432070050927045803255276104764727610783184127982534673126469150057731821333230365131396557148830357901463632217935191815970223641333136027240907075638935172418972267205835254654328172568302413304365648498699019560806002826622525253558591195257743671066320556842510502603335943614993406378497926385515250024287101652983932060768985738401858097648188626507576004263836203266667875931715759068824566777918655938836440912518778860629506390159121966748939576762880378048764457908729025904789764065464782716294927512040785653986950397165269088915634551759241262071414370474064530877840688161898349583299457762967247506406979817507140374099792562518499944608633851906256493288581466921174274431015440879752846967551818339701908340225945606351547569932490796402163742390257190463891817069228342460305427129843932546866507628663864414077422043156517207961272964983512981463384517506440014397853281541755677480992691016276721179652487988184283532808260458672321256305894253968639934425682160180307257197103214831782973764502544878643739180301451011516064395974193580347629875485549493220846578942053527523831379863866963104511420572599877625747740909292291726895360052327888101927807538061280965860698923039781795577025536494596129527475963453893287931489696086721260004347701732548119453478967530202276657574606376019070219666887261898493244047459210933139618523226825876795230086654758664961199189515135302950838295331510220596419234959363034753438369124108327581429549244279199830172801600060491898937575223176098396880419552798515712759309147164943772224337069366834301204495605020847744886250718766349891267522942741677823845480837056245404693574079578068425509394590292022032175796719530636528249225495641626156032300267113198100304798226685344257509311152114445259051997819469375960067155266780690450874900176309948741752069713347487827496954807373835626875832879552809123860692762775464922137220127338059625459355737449177699486762751565817060969109931212714601625285003346722323217137134911384281210323540391732722680012926977100763799485489934100473031845107641395896527163342052061790154542393254873645279054395569392755650979469314517743865837196837961543768615815166205954455153139403563519896169182570711489126427851435822517843261197255914433287655061438746877524907435617904334056025483112152980302981509797620584027668129578781060762491665929089775830544410768009320528470448803840498318866957672523431015088696631116878814321955307719816091526384911296916784258761239560946054412524483493363991435272093384258574820408163560624701279383037090418617404975397821184579582501126750966291927047516509257615039114681318311039258538496800802991791867469666131157475691132768711976703923345984491244451076159221047722281164473035936456811142885465087321156194415198395667367606863960006879700451479415322180695228274193567579074725764704876207530551195887148167529409546461621743231025606025938798490451308860236966604315158601736851819439413021137240379605623241294948486308414227712670778916861812399441583219935415002107395685181342440452215775005125935423236424495701978110969177087771335918334210834370153118169577972445851129060904301719000078269501279288958218010023659947451028758499007954549466273497901092468955265768819763615135374524675533695384363245180372566226789863616917913140252590617981042101768569873045619464306375356552089050204247623047431536083761581716229182825669727074774776885562638561938900669786617455915237797805023805532974701325057065231933073510040528944184259331105814981717096749310362476976815695491547823790426591939263619484646314819206954065917655487507859397955286352594104835926615522811662451932505501678119380401371507950390977143796458228077527565062531666342722672466218896533271952441420818703885968267224040229387144955024543062261156163649271114991598647286218457044372818652931092279243097107544196643750812819971532948157515438365617664702172645621916202763286015583656150599248511424481187563469018570892611165089860685952929467538640538258340175582639960512224616760336840583958494143682174224403563921274747227097524423188884862318224212499402752529126750786730564902327628421949171509725969955104296331620951756863392709702608749618940772586200326212013163512624834638653717937252416861129189651670221311656027110884508471306150467032762330872701957690394605584311534885438686984909939586225067622887136831464656492318521933215004838179927793503062341821994923968212694653301103883333622802907241390137621492969918604954905162095541391272857349150785376737448914846462651877977532816886112042266918558093656550383917472659452826004616744714317730838580956298817822266815785045276329068258250035179393340132663997546656678484691578207863721626406772355309518632124553818512417060456202595198125240502422363141022076179688410964469698396418407320465098720609890247967340332450186143631067351975879348805896629147192899058611201943010009686933532698538133145673901506014845312068958176465521277938077706014600066968606563703539329964443312974808183780090602975729335383835159726592903901986148012093710169792939618333647514924036715675555925226196557727846219461668281930900752192317795404477868241123660171456012152972969685082251468265047831936524847379338660514473648008395957229147838342431524855896693118729885232836173082226027399763663940961197936946565378152812841091207817636157081696583547545274785667605762935407815821034205131505767781110546532013106087977582226605903965235260875171950009681814236773208560155830097375350463991593427139750552714468631265492992317974993810344911773391076236884064269334724028170472188277773853617643768054353308058303125641300223247297177279352984159148047757394254357182379807518855874687506636425334192357888527259987656281263058330583085902085747357897334557655058604026046311133538610365718425230005112814196167370884350881614464597329767165987198111784780503597816763490213504358437036493554668404977831246623813808034158987094827022108084383435728529786373523769223573986578830687962730853854363251568570270676218760037454394276309364426880766221913914739503429848762090781894634150211122428573354439502105234022258800082846060380453178606671583553049535167936170445493385252056414728076911089214937955228006186974082473511996832173200845052290575457659621855326099487025372736755199463476998031572094427677210709703779246029087399644646496323910535126463539847033277066677634281742087623762970273185097937025899107826479780061632945581186459662549189224792448529837990581841021267630029933231723339312002756089298159865575966796985095425759215262380490347635474508808363857370042948718199463131845746253411217379595882292177865690788322315557549606521152973000589143452015373816925306544906016075526057839566653588691280036233874768066878407893033596221240463809557163113966652738971253821507964738651715843113506818822930120145345774298066769218163547149071995680656876246876414030639347652684003866575868283551017963028360331246830562719559536291452660874940431143627109606698371710845044325649721756053160350356566807414563279631245403751950109004513682878360768904181523555273812503333473699495277280902965084544059918403603312454903673338786943024964037663361057007906498408553151752815129217146876239086162578853849093749943736933873372804072510927821402190943018063337920107206870396495418386730705865315810209011123725813384711488281651613562097479260588996106998511451741323046549316812633828184531223146650627753488030257103921822190763327595431961572197884830727071447360705516519910232370750289922094190790134606853546823866077134306349671662025469560548731089155310217943608229908645662240113334716566568908550118102132518251249026214346943715657930949255612497617707365996711599483460704951519136180912478345112770093213567559533600966628055263824321282545444729542538347308146960704604344640358426038743844951209682744417925166011266239513945669849459359515736472497302665350084296552135154726434453424065497361327041145043374879160808225115730256401190565186376167716540286255785224408292035865013114001225203787490347939837224924261501538755482185116496179542792807828987074271185215231095749323309262559691321923640986802521495087888755355454851452191877046949637008904056391106336110190209228786411885386858604033514082018934624216727543855257610781955528247498334902219957300585880897647755174189790306245904064952458828337326663912757133112151880250282856978071544781367286903737539241519705140027095955856083975985933507690996862566544851252589675482281300601606415151755599943641472105959892579800390224908495762561421357821102699238055002202096863118220853580422170531849954360156526867433959788724481098810063899106764999255477443569578268140653042851007376064119664187110687809277902290871799871726848702402668908094283339706602577622772953713582383589134439510879695622908927262823820995239406124189103010962134125368825366750066532175145171600798154781817993081167032978848865057465063324878902749289050011152762040600270706847574858094542870554059917966548438503491981040456077638429218812429240614310108030715776147113809838533643902123326867132337175892130720063626514471984604641641740778399082074604805465198720088147500082346651642469304675287804934688625608247759277155533034460094043689947621644658552948004254171269554237528312264326649294022655940783213662531351990704316446864736718205363236306843236784893650935611196385898570738709881568569123829944497417027091008616195956790995714645851574426833608122932614327763911094389885942482132317888169057437925066058837940575276367838804077526015340803087510435549064551274398739775682074173988234729980369279150626413998874107244472063981047817674906524173962764898464701428059947811187739141305552699704476472397141005556584179389186356496936336029112633405844796569892977535081060851014199491708909003399908767319199235648645860085215459091473914188856637175016552217453759155821636279873034581467104393625295641276883389532335095434341364509091846050261116517584966240084576435311154165536775362873470890608511280821539579683387736029910392904617879253687134264756696186902129149252462385515054082696964594518261258847617879910547559287644218981901350922943178607726746385744924024671167007692027657803580996539859345650997047019024685283803778016934461282562029341554692212556655694316530010937513598337395902900956534559428024887564802788016837183257580010763486386150369125711042287765644047042633832835632013899156615340857409514959569697226806323402531594409460102345487191896101525581895537913620502637630373310863777658944534749105262566105749263682232354973256854121814746591006744113683297826433344642569001491010000814952567861597952419984210996127629823710901478007440391266642144423300197290994348402453899789005960826511197982866193004441531162598876287514849519954965089842852151517325774837446050905559209901020171876989262464419118802260342749156497009925484192286348023715259203020247670972649188774570020281627712298862737272664954468463719706901554950874239908184240940348571208272952547090316637621751250774777607346765882226153063779969357953691292621225580351934404154072583397099127970824489035455805595347149291718092596133695470620737841314619682337989595332153261426546110162909813239338518569901093819243526373398738363032474958123552630464905630685941528577157885362180806186409607392257075242183444891013129555197754045203335171156322597943483200802140217772255641736758765919372421803487022538308614706228578772695330031450812141681775208766843518471940315213529660720587691278391249177799741275371146830096509689427034540189645892089937564744221346482096375975230224702604956718043376324862966076050946766617470467241675929985198476134015836478476583731199869235663127028934594051497433161734949109845091837127218301172691515160017852397107842245510694540154094612391498366939057014860238760876966511082806462282085175168775056850792879878369226208416308699440770053570784023944484544996474937583227587051596846118483716608318175044427144746496898179227128859042114524008449062270096469333758111092185922512058539322739935295650967216106977022681272487804361045478971795809771993745545275073460134147239821593857531326729498271033472608156525406100058012253495353148323433593423475442831813868775018211061151234084561322199142183635611457168052113408329799703203732429810933121386426489354063711179353515077903093521059424673848833030683956270974743517448689834685931389462586787220711878671994583848186133248010216938468765003799818938868853150713515848213263678521648517114797979224637513798810421087562617817708905705217966882268118667781826069973447655583566363055837778410261691133300399476461419218107222736639677128752894837858303136352820876907369129062767772253709855095093105367617019810921841613116351767848088564402485139351672148010435864003636989311090302711730515826823967361396590710275760365504433460493388585081366088927571395991503650521035024811260548901908489092624170302440914411815476465232840301227660341835561225745319042123408145497314894933902701167857590606662060918236777946834002131822019004745952057859088087012902718018282802160036805633327112517557444827110566016264923378350247429675707630509309393097598194084336051165618027812935019427833684103103202355081590634113823163790524838260382185914879061089764605807820500943277518859289121096430002063100984818819508054114141636000113091591317287231586074792853681930212607704764564326357166374398128746818974076012419424105017494726897151683342166646331659203916292501056682541059649016134909845729311731780707460406735526292552368789841610522954915686862481857163917186325011051655234692592511632971675097898857254447127639324858658100054532420947244992997921836355683303396506414499517903405337768082540213704417428001990410959674663731711382549139379485468747969513178054797989663579697149180659982021295202847545918221603113687524294989021881497096978328212743043068632094415187947334120288921098724632285031244540984243068895136685257569062950061725297108164647961293651650830331304549028930724214221901505875394044398626005457008044107973782508924604857982436515335513680225737469088891203761817600240327606193473623467117945067929313749902459397309592224827080761071769928346599023588406623230039284831155103463058785431729050441687489672778044133024638685837096285630352718781559572643898701013136970752814991498173775676441063951081054372623942347172449945034407145607252975035296364501938026868202908937139801971543909264099521224767699087073948395823828004421343574335464659490970202820321968495469212761563596567169861840606399537294485949267236645275847011034252819791588117209895144639844087802408729983573380590251695853607251669265111346139964752831270469245870237666663671398386110361687466842722390853646507488254361644112795685142915374135681759757593184319097494666091304095289732433596160936980917194855529559451259347834397094638522769977588348634331402152168989521205060053683354979910622047774884182962198115015779091972290294568771099002908309239644368043479573547475845608318130741281658969075922443690013196216495629447383905400455935362764776621236867076491630791838049954799811506819453753990101192739349874817453969374419345244827496404896576260119807199665576813205111539383857794303312422105542633544462909619656063432008983402131460095400422228235000389971675432832115514833447726364773921836424483522411534388254376607749430044110776301697275649271472091309485833662328599252123851102748562660133223602976829573392463899921541465915190981587265580851292494802480593347568048544890306760120951598482623782538216992124224892076219014232074451891324230082543546008407648314375189989235876774705518646056429484756897304981582564430529021315656727944317385020913024582974574966899738755437480541647011028979503856454213577769367416439971105533668184509471766821429814006531057725082931448035909788200376325698522264350972025233925322613277969040816707144583757230958248695984933213959944054716737254294935700042472960193905317590138029726370203563313123487698429738058423046606739310407472725300187175286339972723804711043439939484022371274631650449202237380817034918640350746815802525620909896444549860851348001795996885878276588497164718834477929640551826016113495120026125974057984222230291715072394164451911140364510191912001482360576001401186577794675260156867959497767476053683967471696035609902776969588910876447562248086146989269658692836941213609385265514151883879705224866114450748880961309404320678562930125747611247950242326850194301761161158014557759736285618226402983098285727249684619112091068572382204389529231246374181130520208508974490234320584273193388304835116183251158166255547386720181666740051621836176179628513692501633500012758600719164416922267767821026276264980988353872628459363166267304843010553188578826342488109730859047870713292059019647004821486133912464761723931225393746908002817620420414623929092782263191250611835849311634824836905867028616285922407979567466798640889616562524808633948307906516731141355239044326866967251582842499772835426586982305778216285148553388006080409204273855407815992716208275702648165982619236514271886455699875167432369320107385551480943824882848073503520500430392078081694729317942551124507735370794150379599739044316864144660415335986957566869745212544230104831292855833938672114737421938101822416817453547047109601366243572599085801520315676778709667681828285546471844555380036694571353588612231701352359325957956928562526822094759388918487817470618193744502785278057220938382948845782861565926060279766199665733671110230864299206274536263977222242660147825744843741411992240105612035665680744680565880771476530845436230289524790110096755997129659598489743966639701143671604863606778618737379371492036962122156825705571996357757143213138438869397549039199435033121227516743144809304985273942233480343853958202868166467304086735158840301896421242439481768993993787931936546846137124426656473425295305112896194860763558576831118580744095262179327506163724476958837575672172614439531531730375589683756218800492244932975488156101557219274948216239167255780135840969079047471971929836633607187687693226364733994451147869995442114383065083870576201970365984980480305207803865114441773345713124293550108357298795515002734917604449577555003823384989039795258496473212996677859952373253508824180027353425151890081160017730862088027258502275868420767837724044778330455512450752083259167488199876708237702215048404605647669898650619836810760839923736685920835830440261811206212248766471528942976200617412379161380446595613649763909426552071763465287544652362279026776953666737356439751642664460339721003351489906667630967732731098350074817892386224228617870750011070287049332476341420574414586971075069494913634867697336673803806104187996092259425290205150251617358297429137126535739923050990457012899797731157001253456734523447434866210706953347580592861655669946246302621434130647776973659006282737419671628804603914971367722162088536200721905967674416193313809894389698552998047661033756276273949876953847377847189372138864812951643074752478438868212816358510931168313052946156930394051599137219572365367713738809712599909660090818702640537112890467857486553455417475107789535537964146520893676997579024346130501286416407361748225219127591768503056985472400955123339468670418407767442502003512851639412248885455177207362258233010697574981466909976282427853210454410181556633816934338036878785655554374508427472583333782506870674301662131857945592741483529690903219739220106377435701243727663648632752005585041102329156656385946869095470596887435161163703041378020466405734958827319293864219189707813285833282228875579600071533099387961369470454965376730839168910175202588905692998502610527617780537111384886716132937744341185971160484031891014869045387602288292330013295597444976905495593494365424735389693240167606282485453530504402207968013488454382822538265980678253802393756012689441120345440168929088743754118083365114989073883023102423448220466930585725151383891066388227154674601852045869369509967081347883909454505684913125186201555731826716933343990645299713364668246235775477338708270444716042093154596529091594189256984421304404184996351976993962185572725408103472419699741199410774452778359622966199997216541705181064169680214582393844068298294448312850444637576095583988720309528452977478118049912694935064486205307886465162582513052010493950122114771621924890241888283395005304609390141321287051965750203312754687537838019518481811426116066631758010452004527979240701531111103657814090598141954666419154293793118783648654197137976411261807098355411831594406222456645475402399267896710063359598406483930799903780037650547433221161968975112991419649246106876858441687453421017630335657093363792280096630886974972394943294604736161748917894454090723077378555441947995535761358446940452391172155658774956923405751355340262816764834576710934708870557570135497411227850304195565015921863610226892437021828983426486583251599610637842683130666880246557466505319384577894408429358935667096548048842672961872121240650068717290198035613767842703700550901821583150166006392012537560353413395114475031583073456320687035552953121003270003906072491556348006272271382833024516580883592689335362872245303555898449877469895470488277886784378497943874976021902285334408623884901407006040935699808630217351079399514309897673174243770993164752515092176497674077366264509533116479304281977707367643830007592540969045988353208401437178129032169366930156488813560596485419399655875531340645691978336887904655240595681052014440653948562636384201766838573392252730068073783767861434800636197418018828594833463507102025337464885156834781405096806932618191417308883292712231648152512382260063487600494081958802902961952343731527950498791427543783236500202031519148565648641171499582081717560921605102944502338181680831506638727772083980741954034099647072626257361521828089854977477636015603778156871383856568084610368965700291896008959879079454024271899376117533749287278416914204024201141089850658943373573558498219477692611325938028884550467219436703784357998349382301320614691365664497646904914504811630976392833611238442857098955119536094014457066354257827254888693498500287326013087548119204525612680231361150201736895522383446720476191390594926932839596934340301899362074428957208319519200482543597731301453930988955331696759626660479289635437816353459161800812960234974563812419527295766132395067564473818755418436275534622248756775339521055498725434317904649735967753518166256573059143441574169707748040139427342807409937817508344037075623242419600654575830926284031289573515214776818421317099714206087483198437344939401137724204006589318635944278449564116203381712223107012507496803783308687158510075859070667462436123679109955036361669956905175639863667943720229278994420297934030886933438765228890497999103851547828788047196173399146415485836963646528611045501138398521826745847885498193598193792751167237925506694900255399902503676254512491284617625444593269234394219749487653209677254139757707629261689823020888740065617531848935257972662341675046211688030645051154876047337604996301717210365785141515925034513197915892079082403190074964455582254245815335108394966971063282193593673328531774460627559770362289235273876680063779010162028780696939301556397076845422763316502048028716351949073379786701878435350415274372148240041902680056501222492520785333524408530907524009185056702380640434019866756648029351745828587919308692192974430093997644172021354082691613945438141325816640484953225686385754311798617896014189126576403248355646303103590174370519089815770795745435932659447863161837685869913649026619351150611905261418717949534089543997669125169856756938086681228128989198178280885590167905763639898392579024963253342468497823183085010896087571605449283934903651505836531650327267014372969715397621915328622805153845656297545870130499305753821625162736610458806849868402051882980376301917593715313951908733947004138384280991639734498642813492303045441965936378819120965676815696428089628082722697358457306455815799189928412951864986464805855169764802494942698344204097360380787363888561362155363698887458544686718157316813037112249097581409820912975623623576967988776821156148815224667250638374517039670238056756819877265059232695364523327682945561110168817648572516417122243111273431269973568261144819046741114025453219320144411850155783293621737201354220516796339502418631145825013111828534238114159680611748475569231565808064962770483414081268016524879162242949690672435960493407281940239962098146215352410942324728428430225178939056072592278257338813923576806852171641412123070728032182123676728256314984367637405597012686032061864563585001888483809965375577040572830867061256721214937749779034493419334348935098043375608521667254574639234196663777982750232695179147360936480084665506035059703733594513673544514473942491764616050837318247748950535027959614217388730204039677744520686323919243480489247276619819393356094290346274064437639740005477489238719599694776272063957968506658061556844527643214766785592351466185585610696212075910523716055210634067269453662407417308191878309008525166192049630286888837146075273632306454259756845182067988773004868707544305975493489012914356768158452101807544447452886999006351883545069943095113111468572393166819397003729697140283709926547460436327815002072573728709659732234793613502386442441855480447290065543036979552700693792872238806188250685301662651797087199972894195600733606220798213576761664308453541394155451227119192335176360805474891648691165809708234104954418766895930107163087613966536678411142445120559173411990033169447970381365176420098634016798931149327008344880383210582682432805805678308937857812426837264581493682934104573271804752156570046270063581049976973198716907492610021865830467799873290418497428920207947496671765163761565286740759920098212979850862223356906151099075356762848520421937546465443499534730051709354697113484374427689189233304480509980954255295654687261862488949797649984076565300805187726643139916426387926039345796449189112031554130918191083079097248908123645696738762899964629073669577352549672147206532849996495911280781583126015810656867622125227650229130546279716151939413807964425731261664870582558505747513964801924187055317357660703428528093297064155775627224840778437947745105423059392601265911905887411319466606927528288577658397992123889240741112853845783381761233606588135858658035134579222750077446070630369989228110905826477173841771089889620618383603524496138951300470032543171855977025633535094252648997711672271654683642174622199974741280092036844598903014389962639414203479790766233025219723763824108878608658922028278173823308089500544978756893368961565149521008657406658510605202679317836404613837187944524461355724313432366700229941061326195773527418028034649619054080324022116318504743992206108407512380962416826148489602225929876937357302620134147352121347374569046749574515804603253880745978220935562380925574847438640555243605758585259862954876969583955005578597910955890771350152656488458716191613717047346922193954363661274235469343482967035398527025807739213233769508372426539296664992328302854730327608140749094649352856463741100320302318185071309323592992651657926725857940184233920164769493683452781054500048268251717588579294247010477818493076445819395739469012718902166251193995670525145922008529018591101092114881972526636584953737906098411209457256604554596674059973782490537217068929739727150584405957429235125685715870892017807909750005402842294251242975413556580256289458581489766217040495454295337778847230611206085661590858240748567401243863253651130793238201898045807197005746352339991066109403932687887034044932035502875253223991751864405110238273549050679587205129919236753243765060455718436312368501002101807635512599276819503403170670143814127081870158144231159274776569826992310158906373859226284752491403429962525342607487167364288326090249346895281233130931082404995134268567661348885656084663285486689475382502314206618607284125813939787003303189799448491176069527732795257124176768363129752626402270347237475719117304703864398287432241473432452732682895647741324379475614067078788839421274606158160001185093285127441843222910776685742214793968550592066687088271286827373626773150867719818368041509655356856320278310313144448225200377153068855342527173136460313696441085561861593003979463124746519321353628854379960959815336737544947765708700597637713506299160330751422557536909285405861937973086022888135741261364381737223642317744600389054661252286218446171945401176919860033302054538225777095158631987949826602361157395449811672236693880545164306766667721425192103607989451947967966315761031462969965543498453541361201284552200099406437842624586992146498669681595986538857062997947908179785304946171999951972625914261714970956158945407549479123441581927255259277354690746429459836296303199683363007759530841699298050633694094416164973822778902365292325969401249001685331901772133130382211239527599653849360729438391578353050485687176790064437303720111443569623854639790227875388170221243521570724058396556126238104480017467419109703283296825197532220055993573443622646467731903811111274406687384957069548727528893312634204467262799492605271761894463648919115735418035347810848513119786750299613090319395166874065435260477036947273135782106651544941362607407541785253761729387373192248179106915623962865236529551962490439348970102653054058466732181160491470916693509201814096122156145638228726143460268508532433957975251555519642790732815990478987065245116161242192828445951403314092052941351730555286668790831461129396763142527690815222347820211536219321993769076299684070872887324299597034675112711476369448873904089962153847756718795188681696303658265645096343360392552073490431528855811692944088886532182343354345984060276959216486110910524478328266112959737479003647798532062622868724969521894263014453728485197471385321888176752510957668828390139856682559870604431272977521248977030429590363651911766000908287344100701680832466391219160537832456611755204877865295062184194960261989746413631814952270894119720166668511394822357254254118257359093923798843885090566760352036469440697428576829870204727194571494455660913189050638525083560700835245689784365433526677282259298099824088442690423358309294883817362693687267135216468228181257899005755095276082858345408058204001722622437319698730158573831776831680338831543027744781977569979130267002666521135451960805118234954794992914964561276261108788971935526678444532079591397476953724692593773196031973530672834919131305834041408878525736266732357960057094215457779529047155030165745202809684744761434003476554855289872601673515138335677531314217277360018423483936503954701177229778465593976459180868788691923700688146052979754914742847262827160992420286407744056935528002785085938104887356859378006388947638856981468345655164511480062150368044315091688394221941948501104872737772041032702400891531784213724173207320220347920835042644761320340934558639793495606075479347004380077701822071055016535501903397978498211537419538091138777887074961642978734870920962362493167544726660439755905207672196303454578192138651970632251594318124651367319931665810349910342632768426743788586608626388836857085593211766056529502560626986529435257539582378846387659454975463369316279801600790092889716340786567834711570879079929982689127102566146512776925788719937944902024436469295753139649625811515018476136543019647545903595988205584044386266432425396203063038880373956953055801322372172049703519093921792647528914695946501556752518535435020404496066557073960270754672162678873012261829971913472158059289224398360688845556142174655659666086738286989437264783393872541629542076115615774601135986691910599703666166438808767563454482307486340143883587318502420692476110337011540291322107751166776902881369796159044242856018544905818159360428393006059768252126120529354180602515400377572809341187231845463081576531539132298753657740251330937369119538124250599191205299687791800583207935776018448576153065411950187594806494261024801828493310365526431155210351860211348951686687468861907319348824236684473660829279389749039440639478973231827802342417753531649277389551090364345093719348083812223766869111957464862054945713246020466679028474662748610232984242937798673973554022451849111694899720905905075647619782421926756153795585949254474080311327777869628261249629701312150358352343453018684115406791946683850646762492144080737850820011498644000023505439631936489252678263638092868119588744349978754562799531745881834581477505640632063399009911131377589419649964900823914540780981932994564563229349926764218197748649794020472596857963734147591279613524602542992492001688443615518133885699958204682602721780486377210551703740632608200598606724213963795084982470745564147313299093098471131809103745473309532224279628451508308349655664255904490828296556357705832229692113449658831916772812425219774796760585804635938095945775376463559923840229766654921899456356826263137405360690739331822050480551118065005946066078076830465502730097004319204782633598262708784416608163933979517196613250731300727071216161004632980178386420452962049065212153982651218303742529342125811826210158460137567207731885109481413549432065438501796824866262253593540111197691798458874498174590017162645685816116522796616021237279545194935571877461397537246928310477491751060741342161464366062292735102386158433926609878120563261483939911575713466096726128412647239051477283083234019715532805006593542192116374806609458884433797675735445990225350456298105140371683406741826520977004563573058681779770535007881432083943651063786673529280974762599968449008790050034748426377774317949847968159049160667671225060056578443404599989366688656229814746687394287821063253712200864642314596373930024513318390600745990576190135511179253425249543112379989083060191739140916504429175687830148340730614580515611085149589977103471468625145400134064782491636239062500507275068049296947703152869071525291926600607437241295203749556039381517016816829174896454899050620249041893472281380841933836567652696538575431204795493937559494624860384528881182869033237388261517285049642024949739864411982366826319116047603204905780870011159736319624161652404957757354353146728308666389608600979454025575750682372960038969706320187725540275697168391792358686119711301877101048986238019092957848511279949058517960895405929916522519715373438793519434938508482890031455309033922498537367105156808448218501482217248167513707117590422436334705123424629161105110573968693002319383157862732182664163032927938080436008721157583680783077793689420231178189528423520156299995340804521889367954995721075922074364024147566979123540406967051989546190176572384188000271105972901447091973121795007419161100729243811790466262717938927084048877720327373161042453996377911555737649471890732612401753536714128175432463964040993472713635586821136885977400495116388727991995607500034396595305150090007064511353446946435044881293848458161479209113301022698849835862254301432423020063918661459000696277465757377150262258681506274379439748670064186852678754185980057020645040744043124274608496967283648632620506065887916057224579955764727910587111302201422476082230171910902937720892055153057290781231671570218528408849569314352867387720843116466003156297087597463529197886873060858893270328145897976425237935055267999025967519130626531071959441362127599139910254790335756537326245160690215259605863072938804574332880419608837527867696885635451796451621646330108306113257804388899121688492757963360370387830225152523510610018971543490735243718334847415141708506846936321585167953652608912405784241893159227949250433183027749454075198535878938517012135875785085179263710617019678336774957460884505747859627739903721732461470983102983050804840405179470629095516283985973183409690859254884141139927072609622234237603315876607699670774125232573054560284958948701627531557355113047296123629197074433056094881063235292817956710587336570221623991215520188502623487877784303843292116693428853442653677604440423859824139094393059492481288051539088028496814935929192377642574551602501769319918739207550987635952877681273982854269709046148907496990997905755241738623102673753230968732910354601923681802286201095907900582005980675771086792665676894722572606366597663513259329644350064450108242815466455578147595811318944608194221053355017468801582336706491655761632582996143590274293838679891206044469842894432490788347710666747604803355665138059689649822330989295300587895392027747937137122896321184086978538338502910919106449342903621010316178577537552550219797955362529477434906344201374024238119818215943172162455292810749421079275901976787550190500683611067774742297782327641632587199034740092518346564531793953634509711555453861782999474205837067185319737651113715273501230608549476580115744424334202861288776896590696488153262341868859655125911492901672993099671546843456172708825745105963258529407688179899302938189194385074917736196835370439067501895480145498919538674380403456642038613579159671709370399788526446533260963128969881579511755139857565733642749557858902562523055073320743524733015486789369008495582790035842034450749757472667472645084569967780174678252972043340816215669844187703666246301666478632734462326719031681017528573387597789091702900716585091086419202000298125956981506257437014971420683331448047581703946420605634142606536985004377730428151614292745167259639277072617489331430129686038235427824971268348516012457665807455182366846957990621525765226452092638470888370872486948109577860766876379797550253789377422451304112975510488140066664573609015590523994184579742687531817361037435317042266860725846154822559241494668440161631680040265847136113986967603199250357533426341341099725115654808548298493217562595697637642939965332337891439530279604330576530166775047646720250946211325277670430587551144276590369458853809385267350749578897917307885835937386590253715140141861124162291505260152771233273135367692840250620363599839186171150086333125104225227237738695764300200643471347907966033344832535567756729412969794437673071062490930096819891927687722409225001710707713790442889334439609543405066062012307576235001201099993511854305542297294562393390607129342750356600231295724763725697488654322844566879980514819262356795483307933243020389385244525098021565001571925193654171627635230966948133294861921921679072939004275145582328972057438149927497225601494351924226736227412459221813059129016369039540005705373449680596478304283594355703615228982010937920017454902058304070878443117559645499129492724697911888541036153845531208096819084173767803900785533246872654744127448340691170439204745034713405580798257422508706282982920657734721180156023843643983742319065934107834903439672941934990575722504244635959891806803141814908907760117056325217746701425147452789100449364822883055899302738632870648866852208328525268773507120012209671476058636755354345883647772352834761177799385289980499098338159931718853204495662911555223877681219523882051097912801104005899353042511436519463152242550156273847659282209610029794588632571132015621345383410480784737518445131335540544506401309166188164041022331679336501365282464371048028793117501547885600171393388556278860323300696768505635544051890649788257718601742397232571552970350837758277022013181948103430834627787630953300626080616220590341873604097580334591642066561853910822001565092351398744231537132729357291725561896582491894808827493214252849762597522164672379637080997076058676781234449675876624493525539891337484881621671139754018323216142732679278707539637012627562238087236799894519931836041264783112301291331970814117797751459889765958916586804193844573439689384299907359929325878615814812737776310272907413258728278150692208880257003468313742046129574552768092510522939934110288242957484368512978589890148575415401422093078820683736651081158395323015449917564758865163843745047366129430851730193119982402457611088410709261083096741932115394270628320139441885211296383439723285654376159417639715652525997645062119139064310600852263637715152137614750053718744427224834371952987494267137952814202775030603060834877146952869079933951539850458289060827014507454823399051734421246075911958334129275387464311646933338528796936349417933418294671969327063576027774869247724061534310366584263004694433255219664316465932114775582154376931523192134917846649962431672227927040923595564259086754890199446910737504291389289575727268733842272721142942319459880835433388776928153427738727851186742213362353846859758866496853745937219224154063153223239242698719313787203798519836803082392854255998624160334897716177663959156428413849065101581102774127414533572085573814848346178593962960200279452433031569274785979740447801310680219482173824294179779926039161702498127399875993563890914342899506234042519314404527213915175099650178844074499880048091403565760120125774501728472080573601805541902615706346928654119909005868150737098579060382525642966958636415586153311508481131510301777373270926626124703783982179080900319915203477781576267015992161631618604438436513157100314067567491047120661303173815002182386367559763375445821651670345313048176205330468944104202107919318054914775464247328586265441485629556938310628310267752705770379551037991994859929980610909465116288605748213685628331751400388417780307235914981407824737231882474415300574137563324917381341133182935011137855238562574669603099584122509402606195716874570728018826242914507100078548583253292357877950894488821818074495578925416806249118491183804970077924992193826044887952969765532890802484317863029446235943686332060138916788885340945202584227329714825167528295806966572878295059403243059991593129467302935860810694246824655653585020713772328169345834707664567906180142843689937723246770708288836711163216640436788037333019362957072864534953766199013371291882663837946198632806314565878044085179233391557430355917235041840855004394389366567421323439506561578417563591975946136711161650887228428986729254127249616101950887276180161792982480223549144526885174677967818147059166241289951654275201407241730420231966658908693342917552859732387400201324977760622487219461338779604166272283013488265035634496427508801486329755322285394264919934004027589662906932546225294480526249521421352840518668010071967823574416921507888016369678798596873493458176516515405931146755488345375115789662800504451636079981092563228085963980845729649618006432001644681381136591126935237544056882522680982368232763878312959426174397391396682703216136621249139995558858164421662193458022028620836497351522207892020789336453362772732817931789333926444632751925707474243345806588960669384773317778683213989809364995415832934222008016004097864278005864467237265065376033112087486872298657275222821841650788858668226096201262243501980064359927647893570498820388059115677846693169265768115611841755023983346776335379966412769914769827855313827891165947267238813986372522638013532044146632547803844191101286371134286450692044562971199333361838627519690371602381074162430134039870418659035171696558419351338754069083349076470983047611787517417670432679188375400411431238698953090922846875871046494570980483683435299341324045097845214566279022696534824753162953961334142328086898500936321941206275537381069938901566367132105228036799763642216863756248118978918558907988789925381885163669288270840843668777438419764191871508970776055968890716412720772358333667040455417459544668272647962404043174120769150910973123710122784484635176574856785814139510085157179589459402265510885233497533702367701336329944772038099918740540063265984529057204157653074330610906657003910241956480130029111258541779953782180941325255503127753842808444981155143975149010287689014120292111634778169475673847585068650972821963546738855917062220659057589680114188865590084539496520258222371817249347185238267319748193728810212489548396571127335868796439456058088060493339230292320788402228035956271121099460963652716508374226259582543955554868425346564062015481535412365630043077195278779154771023245471424629781411501294000569347423395435381268131691626760353428517839955110534100968624520376268052351511234132882700612441856022197933540153079245205992448033378541496647846687754291913244958631312329450601988889676837306912938559713965034169702161409223179330159837748201559060854020368878199558418034529211788270485898080604685617971887283125651852893245870569356718636141181571305606905820666420961196095528313799365288180429985249146003968782450562080707167187760827381060566037966824148313913364811882298099726839666492087153145991772459855250392068540579887021861467409363001496765446881145194879222918512260234812235865253496319455092510413524308550342436348116519105449824471906680451141510054289145249692197409766066946014309532376153149700731059570880847897029233364042538361269589506273875991328780235551621778560525854244896923019184823323535475364363992593706649123634356162291585275075963943994604868897400470479474586803749627605225106196115292748048165832748290500970283668099090350826186983328462467584414210096756056791160402071382356106581012416659575739409242639323247943176216575915290311463592757159195707889791278192821860080591148143868237289642507342692801083853270236519584344318893457219154040919652179725638666367265047970344804056946825195221219178033321086215295252903052625681604864122840856344934715218680059348306037461530281762656311404769957708664800669290135418397368463314786890565409140667439690749443338068041592749130642831081209757591327061392017149592781339183761362591642745131472369881609994440472751819618120330657438158666001713374513613533253951271328425862318446056800805471433537181291691966116047771370167966718872308402568467013435984478483347905810238883191443882800397073084721550902027838897731769074058920406582053707699837508560992431752333239941624118314939650994964727424925066830263207167027135629142931346030972209292090038592490299713828015213810062260381112446282958053537292314348954624076044547386452715890487448288115204298564082598971152657482183175625717048090214597735617713990287355447709725671826543141097009603623383239008782702846740133628904077475718628962430374329905792555150803285406897608757700162746952172257597504698557622220778231050745711065162149156581597855286685238210549794484944579777734923332542752504038289363776727652549642855453695231845478347702226336907795620217195860829098519813743573899098099974841591008226060107947564434543030587552741155209229122869098908190855872211594478298418961748347926560768828080076504485403386985604686002101238638400364746013434282949135467916393903218431623717357540806067256125990833048584381279342136692707279936944402195300774576436106139496931699785576883488647197266121819466293592477023323532624421492203440812970514263952381175474376302366444017191916415652004454179090326151531177472012087360251956884818723735215415878554302987272292944856954762978603370356399858646113301005913781575221409979709362034491220297663146365026496224107152770534684976781477297277038518617866531099040469626871121698331169810626481730833013055002495500513068693996849109131542060957591300186599499428422066770873733477493473171615982442587494508059667869913987521322757281141578439530694584013804648516172296695807831718711211214219976197249989096719173398439090158127125490169521268700013113257516908495846865502605728338848332105046473785451446140740209790572461107139706864098155421746535764069110642593283145405525715876604115265266415753310131150421399074549850494185510153105487553203609007281446577344281701540068716070822247301139472850943363840051050984834239643831663493848551298182198157552621941309808404166723859448037550594593979547531383412223629553867487192795913977232881859695950893263406329951797126053213858819789598904282290799961595335562121744447275788126221692664093502341970082430097079922867334826467405207405392101411866882860247786423189731516298577274823234914176079652207857086942830285064562688805307575086630209278981159352782751522883998468872087249602672915967671684131551651629126827707034450746416177120355508609325710639931329512209878172517496211176802454926679047480935342212806534424351770181684402498526458194053828249177016647467288523496945801602962035407797337248818321001029163081667261669010026372588577784059482698181417639464687373796187996978296924845990114043817416575865490287474406863041902689965234841360424856088204344281464338322847297078133010148648741550231646789134185422129034548007580565870145848794914144354543293271196360001163087467768497472562633107028397228006049356246899427431422549022366634477138860345212776568968523588232557636006708833775343690470656808436833931355622777988581995764676027612246578218708185346317570416847808253503738922409082207991442768163182726988065811359460089385995367686145971687977884115411537248018235046198313645477185155719148528789046315643363430219860920688800199312849436635829187647726917522978556347038037094859454066851759601271804797484288312834042425459152220775210066072854242412993253799883236802588435961681768955390308148524657539311771484001499253102707982516351886446617450913484096060792369589281302810535475594272978637603830853919491155026944481961869266304795958976049506142652347111972957371938993625776929820312678843723045933142525852355391304848668974681175526147950916520810993020524502204826416001276149927809193301895041471710249765018432064867651513219083744309621398685373404890753266971350832881507142540028907159364443374550066257165139508005458263055317586237937284935086892052346095615821847913503868108905369498299818382989757852006422733353052487684377602881703176849255021614119414681126731522531350387365621915391158293845326761178582688909919585676149360892322134169771939145089844870090429320687765768685226727239724581750135807098711960793222688132368217484700647883085566958682793661846263184696606800522735931390794894941508919231992202302836119058798584178436333826270618381753726208649741675341290368976484134823245679355661492031623446100661204985742642712893817323684750914088985793617608382819424512573896371539562472640999459114546986508966871195607206258003358424695808096745014877124180897111550332008166390033637485547035172906713413211054420733768835567437485904475412300532222215446263068534982867944131696744672455960782970202512846255518474989231649691067432188141256144745237409376739998107301715404962251569337140872032240409240665067457968854528835126393091812748031354877060481897528141950641134062742023165038264120868740884003343028900437236119801858416228633040727527903241694485064539260143455968679272092196666245438120764461226734566275479065810573224138178877947070087457855261714640799187899059465021407883099668672070598961042279765022597159119154446066487310510091338326852176207976127739762460808507880105909693417116248925708125337588212972953038381037190189564678665516816288899720673401718416435800568862186987354736859589433498315929439429375521545162585915719772939075863351656134555722623418342320677217589854002136923621419925950197312519047991491500123979022284173443676376756719748355230574518752716882719909216383505659141823209582140882462539300573026652721995760934794684372623490850334130683373365102253171355348839016219469238490533765971851319571891713657199709630761777367174250113730604920555412795280130339424587884366106944467081359446360768366256193873295552457555230893877735070228663457176067998519570269411850848017909684672545349324700193160825214620616599136115110335305773868024607790750899791676904333895420178341317886329595538276973575206829852754075096463622248718317654779468074530375258695921998752583275467949206360385211250617185129684414600613733970574571299832991775692617141236046545942941345903530663988556424805721189444621395955105939126509026069689549983581836968780883797408278204858809219455892292520457316664006265191054723580383427562579931325980721965267472248101708180110436747183507003483653085447579632801170896597561922929173016760346906200730531248035600335212778068007109745443013135005279954789456832997700993948313011965116211141768349606975252929812886981577608317878836453027022188076686225321423634334343718434832863032347594673637157431593458602679493474096843229067620259059422225837816382208999823396659563904193322100045190236931881934270047766516716529459499415249473200134896954833782192607538089263660079260707490673481711407530095336859339547363181174666002228972196737085001917079147361363956155388151649303733461087715209914800633426597589120246549678689384989166953080344953384614294428695235273208124765670944670519990928848374401814188082586052988540043498306632198034167129512505032452319482765562823718109771615830735112725265880591650426149011449638808523100030106927503505709063281000044561245118543437782240341884139344741198689459860050480545107232563896704249764652985220099031516382567842132572337100380903284255697397735665190073685157086286398093241463980847330072152723861974966949052153980101866428643205986945312143393304146717023320175472813875386287344256063747370781665632915671728363612951587777204853822271217221254646630943146380849823402497453726629993060489978050931988843234651182993708667413156586651055323598667745956925232613982697045967568031222327379331418170810774414225376581642433771384648791417691323772959457745072929696582379233151304216210539413171146917383630127014513074567393225525602592157810455459125305732164453821384747028024219950444112917347834360126316068508814353625814757371630985124951462486904957072373878548231300518867148034667201256493909991723793829069228209794507805440646065771129074092786728660492766442912358033158793947983629617785931332247546106697175026072101793679626886327900454885438492204227530393583928258015049587047243977253545829797430128140112399507315657278720779359720862549059359420472999829310021669580048458552995536776946202636676252478036511413643439540983687603722825553687771636480120643255861822071843992824612533423448172791134089567921026315369930963718809074023090172468971598986972896627572814754201151173381362112036795293099565613964887676927205307516204107552547202216499294308358408529822700034052181423310506006677781251994909523952078831146050986434132363122214229893647393068994392579896167132734058556552581281721733777744967538514736978747856015951118169012420623274296768497148959095989500760873439745235885001644418610453417052485914282727933793528226861792670680160559892499352323472075752434849328541655654974413610930219906283317844642336279781313600368450281664440651654607722690102075336130072395689128498962907925297139693323290982578901283797232576761158581845408191798505132891995530730052164316160534442033077785173578442673067374979103963940073258211278802369861480856638291809902747550275665202453144694972531343436507320391310108877972585975582998347303379559523817242025922361825086698676334467821316625260560618441882189857875491814774314613925582596494172265374747989698387594698574019416832290464546123756657416393298354897343210696545882555317290427639222882978634743949694705899944503269789929436310402355733942583787499358299337905339175857552384130958850679040980299025822725718230907865576050595738843252489750870590118419899475458652664480675853628430124098399538932175257950567235816911363466264261545015113815275497997009050094647941555013110228172559125129549329542057941562603904977993468722395903724703807895795365285796748710679391475994303095958959996301882853481530066102001246320355853201074415256673913162359843205742993403954583083529737213571387315620139509597917569906894362037069909427515083877895618578543165264204809746197067614466547379550899064816267591944698916058751875309472359026567902710546980327765664028082879009761498629304296771037508344719056735703516728105181791831116983881394657551441701427870499393439956110308165177204773895327125873357448459041615216774173927579377426485191305220202671993941346487478096657777601487406169826584863480299369564223993225501638197470711651355957986229156301803533262158126841539447317213160147913190501011688956737869632001565100531744689400574937842235944538249718820982510395005271196313059045399826776371188632886284198786087211091943550665183935625475956663209480832510733164524468995152587024046437781973909819739630724389234485630043979857594993233880230238165950635692583689036895232171146961316601238815562524845339338338427748187375628144936288941908688437537947877287893667704623247207952445030863311877572595707111538928306640140319435360832511295247630367074885608849269378496837531576112747948580809152584086301868626003142977963346397475277643155979840772378331874899822279864779100877799210606563447525899054960276568365885895521180886967190068912970966890820303532378407472005125213058063135169445771660224989992250429137100240514897636171469974998158693454797917516792100830453958201389375428288629941222194642302746488737886790771184446780612879122927103567589144984709955761593107231832496567791830165100242407332129910351824921231901875964489028293026669446171135190870628568603358684312491544087546077287313718089249134910939576169330894297599280705162812772659193602817130131197959731474142101948803510999733958318945732433143983220370625684028375392467195730455748826849340029071962457304174784792594229401107711720013063767601571119292374781919381467187543187637520571960098084147954916926747711661262773454487126689390142474883462799638845338464689415002915420782077420099398721514792113119601012003791825784407164320912275615108924982375260939579724900475878897436755982210882614339808141692300722765383556427480814079535154102011658951782148321362242256767839495519078673234850469362917133212924733462472509162812402075418015993746347655088387571223509647508888454660120335696992574613334876216498243958569342392341753918803336451647853285677577851844722228464392878179373213795289390201447114458137041231559429234339584042397641316376440084749529827930874149336001360609427479760154163122404136205954129712903363087457739019149627692806530701766018917612680732198107284910213815979013373909563690359035130379248700906143909434943695741314889625378768246629478437075085922685506273218614565713057459543811885507168109475219585093927358374690375672586733372884547292516968973980689374455659127810410583484188760259041066071530628683830772151869453680808251784722137921790147650214931643854853270429178759122899421583841965040110242715234642555871566664779355099207684800207354863388887057505368435760444541130575039687345489478753418065426677977249868938739528700459036161932767714224295511838621078272001118445706912327461309138188840524301497771108415904743231638963176741712538433778415882500661904611329577783916131502596615118815314857316580952203713129491076721204906540620290064922003711064984135047589941269236169797747449213863613826511751348098977101003933587522919100457231821137806302920076982339383581531592896086546825499823052897486441701162595360189286434097156748230545393554905181301420612740860777451136340905391579309293203628097451283650820888725401514700225675144608586400750614120382531628532108250559775118330159019430622479276912585114316109480461880812801914077992979931609789740111385333662422402932805089583722032328192167070110104410728769404114641307903005302530912020676865134688616790173851825868621325473453695035390698201008181997526841286082777844456886971690296476118666867281812723316956056585858972662450845630171532226604154931115503341777093885939099552517048964773385075406705343198442130552131335514357136529364311939165814234831750250501696039657606935959322130341607710840246415697679204471020540171910909638712727412626733636393523666556125171058138724230849907050901999388600189832721904352858545734799138792258786604913976932390946770246457323803863443216324776576528420438143600428977695562742045084602227362975431053219268128172393558880202659016961812558566256920272323144005406877481823381708733758081193879310208683664766197796396918392606276195554589253648535278260109564462694862153577201422360744003960661764952835433444401994702271215181776174886975493838540328353325422742846075090716126728107675416749304592416177380759989034279975641572640932129627945978905281991251248421059462447212274847229058559902159327539388904411125044715349650428262348043568159327011492487236173932030339695896511608751238099106280082767789258037874251177763622949170098856580015759970492374071519861385363286383879347563076027028645018020050401561658390521916130393847120406271941738993782364841920459677997393995526090239000647368382786042097604723099853765276227181338156060907787851622213224161034491782312320599285582156607661257811601842591294711644128423726007418000673909484697336793242918100330495657171490667819842912484117507999621157402689335971207577733259062292372048911818302460094189360285458284412294533897319228773244161477630194134602216520444859876665337647609818400335173744976675052780444020740027047246041054929182677967063821393705995588516622359714844189541623842395814662889012920908469751854329501139486355681232126649484087529168443794479862220843792663101582103665756026846062642985721973182497208451774873577581960656487096055693463431078481056072089137594286333730575005593496751784389114378923309341560190543749807672289584423633523249293067766502976828623798769070599758038499694717216550784447060503706942540711722288964536610791823477077561091274722569120951509781480527668855071012475193681707837781593648709224771363302457166329934200198550909729990151893984069024251632930122908391815264897005235194560063624640343243093139762512741038024891297036229140844802573972427372125053720216627397552740528695803636157508361045938034722243674238150704019976490216491323808528734252224837146712907395775785962951731106777824615794816596028576085705217841060784621043791895433733835995862838257190379467052701354788988980921729230914014371671733150980023369602989807004190396454164418537039507235564045816124454038408978448115924037411478497665836598205202714872269620103725353973910338107512703422230775206949282299641924461066352562259122248967497255825209836904935197165339936020683801031400981092258826964878792275360300908182079890256191654613127930291168292915217576251413654288315460536797374592308088860327481317088969359124839032624524610273891828117662170742539481631299769341289120206632190543335890847082071203706286593202377222482956663660869681718378641597971604957795434708386543047147341953272351336038062839328325409764093817878517794043879389321644401730126532585251290218090864358841438264077099907300539669188368411978630917624307923232243351943846205256725170569697347373866533130000203377841629566692819785434938943858243426445480857643213372113942559229242028491138209828633447622147905936060186736520271697739235841528498703032673009839836760993574149442395245158834645728581017946925011275071850702391769218983989367181197068176305798715850331788691494798858310050038780223098916946691089281119095983140618782601354260004825736401407750351295124717408607581194382145421917892449573169898016729128129105092676687487441787198097847468252137768341567179039076821896564794614967497853021760884583927403139109861288365131570575025202602976000093372904478714799514982876583916015647695090180551610079475121682115990768339433842787271186649770102604184276860949579822870154677096641927111716465097155873110037472182098893087254956729554531217739997525491024560634412938771811887734438604551505801671599351373959412735671075204522143795517392226527934330457541580664592340627194615731427470151534902704498314236368979034608318796575253727424537574284061834506250124764277247839668421479146002024132429273958941644758093641140180402008129063017879511166378958852885575712028439194199676399451643884467145360948918428208813834729333076079489236150615775795368792427328980470622090884551943072701699265480304587548390200269288693791781107457806168940880155502393270658638743911366302151229196698327521315425566647650737156223145939398417805639909506877778527669534795108641142447752292224062787182712671560423859763699140660715882668171558001371264238125267461115405134679584312082714348797996305951467794269298432532384716126269657686154116079376644975332941524359000072799012443384109361959686653875972065064315389455866137628537082290673130998895215937734398367022673760006770007179907671825106625646637340237553596449719629106001880714249746388780701479096341217663056688492581437044726600261524258220302921119108291921483399208750609522230130818111002386803037485446810933808920310990852090057007625882586795567709998392742434542483233672437565667976139083066012429921143683480252379888849838134721671578845979043387662952506117196293415001638745059314692513354179744347974866398592175194938571748590448986498450809558331408114811234375156007150830323697310849947286251355394125076038572490675421700093119081927415570237957004228681456159489392626524577317463614597859991263728352782374106746916141411436971425438854467333948702076799503735384095262466360964048119438103928801316928974339942892586104646781486055668802754740618898003157531422288991251654923685422159845036985151031608732359654199122842835160659359785348495978267502874020590016233365273067248187711827905873039880680450419798792399928490834636827100600036870697918306411939318586868019128124283102591475491346605332804297314278877172937193449978812577007369778398649505330848343299376970659783425205353932491439170837230717537954798597957194612450663638892532671471838201447673258776237099099925459887128449137707374103728757844415728486113108757589028657653719144091657258433003879142357424422230171705801430526535003951966625454323936908109284201257969140143392925942545504268233492932438830981424312451491463390860955544793454089754657279697072794712062151781751755898564426938919354337498911888317947550140360107288972650379777053195270069665161458289640504639084959434239163960068010779959793513252989502561055550624245549477063169321271282096450200793569743921500346951815854681167701059488736326155490897402728917191634549498641200770898031863087970269732656807458836851386086903479510125780149034998926768332894424653712883774080664968963610727930419083869429108318158587600037823850675683609488416008810844835155532753478741415211376346562641485146857034088327052487125868368349121128861645568509712582232497472330908242621242876798649872030668865390946250541793175650595476847928018908955738074467489575037874467033620429852819703620346192199473933468617293858607808475795138818948674937459763670133383119105652492760908262479100980002392162337206645036381071253020582576014194807382158664223812122425352366803160426924230049797876957937672421671985902286903202976880623643799533816135940170028651019104181497254117700343613467053080844043749917423504863853675091401744628827447248144216296831867877923466720714064292038552463360278017390400253290880920367597149976868431925732085403569905385208583138503559045547710116953920022490273051532541033711557710514390552045071976635825874166729162708188650248781268713410877880589700456906799911381040477692182213307667580960849916144362259698670460465950550426954262771747042517413465627658290682693606467134127338481731604572782615528300705788315485311205353354127994288844322807915001827595255102971797367029847241060041829881415921927876391642586747686569719008329099555495212447379483892446786439594612883767942097030493239441474323165791889450653951507921298639708103541754936342804382091864252057344887438027318412214122619045685756847145312587418817211251107551528999376889247069048474402495679399224480173743184836905021756498711560361639254241618684677608312230142134325220645626704194401047240659117834208898105885862726647608711821565976770069435968421660257241937557209661799182956566283362131206114213719553843061369334785681884258036497224676186279601920043637496056585506523811604901730703351380130514096313316470867779305134101194860044271167218181324154331171176482494316717058343881123968724272050796157767138497847686444019011880737261699113786277374694246962339567106865102805479643026253331509345487144049135001935073700915303168049413175860069951867264753218968793454256175416760224859152925961767147820521076175589360413376875474015656836630234031498250090764988013978409302794698062352286080922760090516889533831707622730634033495346176023268049597466628590877687776541026638409656140397930819759168220553176104392661718097118221605954607671878839709651894478548003048881621326133560156142953848956945855601444472318020375458603370831365599996581735385471606550383716747388774450186147569505028617583016083500183883365104959426471076644073444634514208595037416100174778582381778070278322988482923480817831164133431731080935967143811129218702340187228523965669226160220406925503992629369718173964783041816537041653975160318781541433181556435926806466054481895495373757241479212208718333102793857770610756142678115533202545510558936061726414781357476435729029167832098775246180448445455615743204846329175247337806539488124425838572460115128492870559265416249395115878744190056108043540603706399856313811708597235609730677077652145332908662103157805981705128590784831032320685816203842392371169911104931779641144236633663499251099405249880253713431033631716526151924668324854459925652634642470447472747937156212893317381847562958311610185893348123993323936275372796744866751167105928875185243181449396987160900322505953223776510796914194094665681579203916826749189550899086290051154477104423994880102361037802176433422521732723603248651819055564786352127179479596201313111527512748621143996269079965457844955163173304417470035066268809278970825160182766268800092075702780738563173089859923416214550388838154498954716235843176606786218658204725680644460582066601206573156030933496032373730681713382339282727982399230230921263993265408287086475012689155269288482156917197171106917187677373854094526365040846686426190471344814255841202084379899882868330952251154859504468637494558111415429563921094853900014683210082335840156408386676471973833419743528021841880637726983058615555106388017645913471710648470470276282401460853627652003729244318638031933518085810855079508067942062391442596031040966898707803531797948367554179710522395586943128801931245927141391425541353482847639740571693349402594394918969894145978476444550157657018441988282919142777937974125275161508285398554357620600338474469518655221898438537982970423071602166471654971736826003630848512924350746823527222506623792226798639901027814127992537824465715968937404328443670741893944615316139263561604802521189409456595817749866411531326839792930385371081354524183777429058214068682662171039539366806137469360744631163078684257666892692025438626954918085746361668128555066385555506840007112014315282380105092924934016481333737246040386360865004688130354109634137329093984957141111399667627150141807802505738745011941597678756292040583123180520227780014552888128929243674140819639494169975515259726567871838586463412264048401008234290629670890027480324977041095942683998448358457454801170984182257151572849160390499890441794265118069319171846343308167856756890867907942969983320469667811269251583174691329953604362887946781813251847018098986429036975960572760608422362567164183743155716135688095800571901427608621163099488845390777446185258548737550989288916757871186246604507384739588594837715830363066793757826545899304081824367898104065619065817422426283392767265774867700527950063292513064641790237492519518132788912269644914327751856818603164649423866721023079806472835262332928702485501628818025889369381483937927893811619501172276015409562366566703199260079537238512750463929848416162349080482854227295978929684345668265341877755485033804084292577386828839875506330280598905255380677091318253721261964472924866970754941536488988685085543130292600756968003185201762863432558104404658144946439307981386908707536050584861407576515696809634043346171634943896297517315959531004074211400085211651169935789491090413622391018725703250897277796763061691366019102131995913453117254221747973644232542255203943933741671756051081492630241740947570887377659339328478309119567051358092329707903546017951728686717919399795249926486734667122656578976240332505841690225844886284450326787299229710169901016089855138334514168361359797551109460476208428867936389814128583605872736692376998417938023051844092679444142554825255512621206570657266632996275280999890406414720663019968323433584017401584128968410747618741820378590423007751578007427547688543936181261934500714491296137739297800978804812057015285856360377869313354986783476359478430734463810655226927641271616881549325125416132028004268701870412998825051393462827045272338663605958018151305627926392223824241887631150403422434091040073081655099560785538949290448721791908842095553823464700050558112170483363784867716584275072570724268462445996118548054192172966588264957113009139720905679023264308474387004608124876439820958933991546155717597815045188529724657611154016302577216618933489160710015851466566981481772175158174657835824153902452145514345875124234220562148248898823786728798629244795192748533496887764952514009042690536637096020698787270308074354424390540859163504975710651845748736449532164850097265554879903141694526493760453099995146749429292117598619566848415252329725931450233035777929573407631560078449349281711469234465606047780749593373948739051762334305818205526155638938003562702285604525893971122920285476958394272016376043619395671225151932670557461091296530187896861752633018385322091290647929805856520566952226109416185734896114535412971337503550574514627963993539345077258654639500801168385647441582006864802955118811979118681168014607984641308878105074107870583958600611175804439940196869741055292131084774478869002897755875539960996283793889246641086166445267505111680037812439798359080170242513451282379775834627722198419111487637444111380464955649666173666425622282625629731903400522631612106696040402998735134404401829324391638343077009595009367560028288251678544805968280978794020585590401455043023632871819122869716165726295735337390155720549206369400507779901046783632054340945527579909293144823640669785573331073892232748309674324543585007334932405880783461748188693109142741499209242484443809208021943208456115846066655811705713125213844566267860601313013834702840582283922257346127453401292407902436895505528766664462915190966721139916696640211489075000275214701930972388426144137703635491725643194651657421587527819182122349675880126797839111228921575015015561858526437153384449726091255651463390674258213415803316778040836205173193149492345193587141375403004850593650414101674505871063006382255482058044867680905869295489169922662954969712355037669449104591501989683472444028674291736693517119669719583869253628514507479508380768372696519822386479750365224579012181595767015711042909331714499282084612419716889420713942672382649433178172829015399277584047532288242635281832712331455569078520167353344251144839665351936848685994533275226377645325213538858665250038772885416159851875900736362006094441940667687730489809687461643375498210293684157274178897368496134600844466693793813022548344012688302711025673415215434602801390697492045978330572895839711520380141423570610833336516121515988899645960796591732184872486532360089074081676271792618680485300544523978813393313060163493997214838965514440022539700975221784680375283476032480387843214064210936090406868427665851684377561600753213245778852973162332165006335824443294718698269424239779457824308430397384442623721539337138321798513681788005132788362421284692862338425507328147697813844548465528320777140841438582704511417134523785375689792646520954192835360653371704735675907111797180885144502805923056146993085858456236083787817092250365842785232177407299850296530498264952209147114294836345038896018473997775774634670946198367842605765560867090048340186212774755377020055750194443243419249966414832692411117257783693584346586666597937895018201459130589983365503774761515387763542925829988004810375101038594572364661264973207232583326097905995326587113104804407662072153918041131193976624925746130063419949442128121779362967103165425525169739866768382296902098758971514127224907112497805616641427379991458080994145125400490108941911076604542839055675305751201025915215796901270394961343882173307460280527398853542467198317080319169099210727293301810450371566034495855525795858278122460316413305619276943481160211855595946026472682674952442038851610396258158891363932220905941128415102540036885431402279525367217446539428543859595530732657772551980654637112395872567069522966144675518677930903382573561293221021291840034611738516672299105919005243209459240933114790561878755742312593000555737997236523439240146129681890838305616179762008526814209347723661083601872941672996962339738592317840794409447093869837511513225273800822466869228503406130260260577131805534015439263952031936704463079718695008920080438134416303246091375780477024392532894929278208101562220320335195046263403900142606235731204444142051700431947200883599180313487340376503077708741562411114401179136939381935922571405020610357875334173197030723229966628074221189374655680254761668581351207976608852786776971579290707116797943257792862549397883945008094717270014497209387266622725868838366799135030792787983039230413247550187048235492492239983758778001235459262333444309596906117202005970700511082413210083765550954923145713431805902436990878495136543350735800843987266641259273506748243461704590611677317953524424108520609789636524510439842655988922815299611765878276557092244354483748112041779873859403251474428763672063232969697525535170882551583958738311763123599293729078854819478473026009656046236159407264005786773943534385515084263876881805046913391177840668923369250080123899442674150705077604935272153320255466270517713192054605219901487147719987853473641221320699237448234726563910534514702991316789971050805894023149075774174180454216670483331865317904852997639820192885085693527382782783903032215237310287382792032391282677699228243286184369654556813351893160772371310293941953741083627118593392818788822356885397569944128431662010630618733442603751842942013653849040361394051709540103747274062594589095841105103414184903797813216480965183029818043581540213896618918780078443899719627278780915626181993955408427232509500516903788649297769341702580697389531305344782034399080736762548692156785233288667834154033284261571331194127249014328063009444603077754213766686682878345097837536737246538030300743252120701280610903911204944138255830783140367657680924178348022007679831059697583937567092623795454652760137204728495890804080391953951245843248166975908082508792458669991449048653686644242397025875176576429911381410155797462939585268981018111574458499296174364733705456469919582051234039068151307876428925570018047913673951897803054537707629061569833994390832490370684568332834811631222973670174911824755966011673322858705412119285199581156671893095249102845105171670227816321329740278150047232583836883430671840168663800449381431154550448564767434694477935477217551398937782210523646424267141904748868980772458669892603258061441638304761957333716560754458361810865311501467672511704416813186739597495057998844375205419802510477079399392400198181778016905249508692029003841327788583772430260679185522342833836391512151213282862611769693661803454659135463082729316185521504192440687963434876943250398367836589881730567338566885619461165844932681005831406008167537501180934307296707842886437819042135994613829533738360529240154554915450417082583438304908047190978358493433929643862938388167862186550775640006450385609338082543172990562246934078758787180347689885119703756781354504134193009265822603739808595931475721881556468324231431015298248342345204896603046541422202683882826943216933522175205139188905645945149123188090600387545895737689288115362678045371730899461336658454298022763239306314683387681613030067476038166497531875662676951280955993149951508158859744115921629579502836511146185696953743942872404680393617179223451492216669136976806430597314620016168475588011521859264763326907245954730168087347397053952205797900953956370431204040592886686452738628418905178000174214965683394772344376563732719909321116716129349440640433503401008840533171502099633698919882587027927573246431144455090663839785875288860520195164230365178503842152419467203161772728647033250606659106366627746515167559756148963145771118309943411579641888416535559566822703088235882821564316450858723431660648861668230922496906519943425703367997510091003172147291381150637434727049577839811948705929933877695591997658159261469906359942059694209556033187585902228692676202785157846070497497923959832831829562886693756293343006396091544694097370731782099757816812041112224458354749286290886708756838275040872226450491128784534824121098542078487300300496626009850398578378705435043596042083864017322646201022452375343775066593727586747648000921022515411231661116173246393982072414369876658734954017374829597693055401458797202290263449813926218015710648068911957282865822071001490160215630296295052275086922117682357510407154631612911013268402629969020843118459629393915458998924028953732406693863286771822024530439977878760283276963160563678293723497828295746431033099550333148638181248675628568536378031953356841802413277370198249604807088335868309311197929234376105258207397546930180248316172661389143293922765977132359829444162921482890464264898177147581212062946228978019914070566235084887578026892806429188912147829913366410458292567370915156379939021246642615418714482151429939910915990909932206456719650790380072308698220698242126003212048252685160388281298430386812122420983155924204918264596590474203475872078008104499697577184962292342820959484520795037561259140012215877695913794470520282737796515335682028843437990664871156519563171564034185631398488723610061151745415719178442894289425592754816663469371223125412773052037105414482139392995047479576037049774184240245991820417850404405563959608458591902792026191673367470430314354413238913766750097479610333973423006055767432971168839584688343309670178332131296429523444203929592137039127921532812548600350945019273442979571223358267309971863199948078633659939285859678211285477557956392193098968026012142516588380652562964971804134015494352606411252132303131606821202169386091520468402498094886710476085535067889651362414962219303658230318981846552291922824829693674214378535288293976890933629623588452184811370075337412933469657846065873964658561010802613355312409741430390275662116748281761808129540003866583300158539760316367038607278479721051664892666151024533025596036632935411046762134853765684452940629348831556742925026510052127420193450109574252228744923199903252175614204883979323901558987783167172616534690366223762095909226726158068424939655887148397667459563506970958208025873176538436901852775248259329819944570683589042161552282619124302301495606759204734125232094411300219435897095961329619665207515358759799501397904126649877198048060303080255568835721190264308846201584003768891189553974007640467329656787176347819114755272844558215249730870274855014481341275290972637298377962792036513010291776744381851914609978248485342077600165887864665817623135829261611358003153457324533901224690140254256535224407995702087255936745800521449684566752168701814744291907074154282175793216048117700060447998550433740889751795199631695378892684679798962246323869978705329505623546882278578995978434462487606324390943503058474427726630696974240147443602234394488575550488759521432078360496419731346514649488775489540303623890818859482513289789341051179361121103200285061188385317165926204658162198264892479024782077870861237401268234459376345960426031480118029475924070823783521828586433250423926262696143878021355574926131550209372215092575717319115170179075575398499761989441626278664448843525915337286666857955491564296522500730924507530915099659169987392559674575952461180548199455208252668700104950941243690973371862534695308480853586782405452222360729208571995838595769016340246779422624231954616010787114951813087629113644474791051197126592918758225566147578368260647120470365367067609272070828929664356527790238905807243795474619567853799288806387462175435613255487014153062608818461270053958814690793211061066084731589912007776158149109997002648667099266430625138672953479755982264035957930179930270386163914241337852009476559524502310010957658513661385938771212131368556141493254170268233473522947363733586354581345938476704283656565638195544127582258545237042219710744690556744940953074717235803760392132763501479785113160317626649281398227128268846279724808676323080969183824787505762488544465279718768574697483022491236264573211632729230952519899190481666814247232121319525712018916790057951894127278704871593070547976209107783233315131596006465677329896793193973526658205281546955595613466943829812414212787219684815154307771162907108666687321689535642702496502417986070881964772387470203871894771193304769897234276594338656643086349005811693493424479744046979730268480024048667194341966601006823227938745426193354878114516146596175304195397658476535899586766290488425075822263114997261528739830834203773151670726394015986957798931961534396276558324105066785968746338631509647012606064637368001055503045861654041683786622309759384339275466919245050710367717886870536442070431239653910455802780729586173773094724692093761386772610604089493838019751170393182832929640227193458900031604654406766233709636034045131967788251886625176607440203001580286862317921395639151912389486000948579500662480583697794300010683084609498261274355064084842971319018128184619833523220111342493741020639550567059272332540671672762366494530836861411912367910394709325666495052914809749882910632481208225470517706685065907731854697158049838995105310424342018405703311931803079096609117957655312822922311124895458931855379348361790786501079792904264950221785400338949203588793940903540383391254166645846093276268713634434814315428729776143106424029840678759289835026178479312282518632518215076066683059686215140951439302281418699079693554827699049909954306663502060490548191598115223417560832670424859150997270751972224589944308441771425513667189956753416943142747410907510632918013415262698647101512623930243569711231799690951095544944827092899804669456359887293162429388606237587577559833623449241170229201325967584433644424628285027645008905803484280418195336620101557648338239505782466765633477053505114585898081487425004599453971811608974248699768944054900894426386529781461071557195719119015677727875218685986276497186777997076472202653191226992410881406879662019185782690087222764901922381051286881634899010876799618475129254105028505791721257147396148863216575561609367362290520199893467630231344824682417163939271161129789567442984533558331684940484754252106551335082705584570481854616243860432358460600910620937616702224839436953116192795539350043687926925977787770593810409789815831392967967132454755945855397781962336087268159994122618054472999216623062792294139626416013112234564097503501123381722434590030024572648300983622040611762795955273060030910864569546085346635489636733840949302553449282997325261291374483024525040191459828086515658449348561017449236671443667965041634827491427395238345205990988371041266252581570463970548141616746979129926676090860691310966087052944740709826075033928699744779567868928050971638389393176693189429535313651614204958112107102264414406672467492726077103426805329001552388067738914046109392128015520752388477057711358279341739007082078087607852016941261678219189594511298595777760895313536344096828462651215940811092899791656046805265955445506894638872355181232842943843260354936815772498802832046603971604142274575712657650911314953658112225654416328991395177137891466537102248629047054036725381976365514368213050721942861699558077599017070354206978417035595902119123970913175769761883223185895685759577952745594015309751596400164109191674764247707194876436946025283177822139704906498320907011228357500721043132823471537152884591829359023166331151261716686076455731906246245552057590323398344550732349504592286503314546883618024215208268721119211371206734803187592582074862877197941319900872603060674244286030762697423223042025698674967673548159371829939678676159345695954115426522781817672460206668865795184459477530852625020765207439752100553148388257147013533295957136458455658333386035757842589443075344624954652327439370461492155604568808491792878163316122883522845252724048004172303803078175218182194657967608157892240018392724045931207335230912572998946769876128537564249889872275574125789652830004604863018882018466753339299763485250784602547529338122191880663447666121990534441831194010371622058571361069166620530498930599597389841025817126214416285339102760619090686947967786687965656677420029847101972483384188034249508795036730259324507775607707384581044652808298720022274306242679517102008358706606103612786857151209139003210126970492023269966015921901938429785367911624446673789322915251647486386849348476116507415164245252613257741562428856006354008261797095403354983264358833955003373345661578013313094369279853624676808929660912723806199701684334524935329615138855662221028436578959227450911071648283161657542851831857929632903587007305972288747504948267702193881254238610500678239005974073837395331777704925329135695994453084512278985159180157359118830741718348066506518773383212707032857115335640438260575176303977172213250767525365030767593765191028639641659154115669917799706392625111419919617717312927690874418837375205675696882720206023405948302129817936355147598081541535463746689266271665514584263314792978658707793319572228116468373982748738628948757983674874910510255540727861629160696119264767576164619469361272792924597276830474963722319250261856614529393145627961834250131010632281259312697873299066237977044548795450530835359349298142535818200526524656959293552472250566056704695211210784715342936326913902405940190316404488477565055855002169327287039751880480691214807779072366365973565530887385795268942579350718629108191909048464688958899424663082141541990317422641905640161229880074690670933694486203732398039624426295356971285364901395109556275904582512557834897604024428254570464672578385133802174640961892268740747175437476605279478114705021192254055651585806531641467412500846584604431488478075264534938666607263658452950600464931956529124080660876182794408864414239057607932824937463393018143686994983338376560667433496106824110183102404207897528041915468265709068127931877811923171494893881868909067334353595096332307305213292476280259433479647688293439448032322745460791554982304503994321535078608552918657484852769931374927221797033394066130175841667844318615138664389354201111515477666764447183081534047668605702390846141889304910343942619677766389390588658721734310705654047973787350059759642307716641678208202390290576159907174670666214782497573064408566205908646212001095808584991200747833739966831548339884248091789862368303614575258663515064559098598075931561347192571393210012481319158408538114869588172280564563653689099772657761678221711151922699181783347834373963470102736246929046989909424902131183033307314234595346110147236437762041417395712243366173907927308451840008247917387952395008510892345159036996267536660174743119408330556216699839098926129909787963455090240799949195720035190245769064609748113133128855177514764325306780382849330043094187525995695155103862796735872684887696770842467625240186977368391728055219273067725342418042522869162558160515199092506468656853211870920379713862549546978495729342702926866360717140143805370961175557210202662327263520724167935565142170096148842567923778050019274151153975088864541494648692415802903465738104727537213364551229349449189209212843290213004363177880143800468179568528946134046809138553509330404298017931337329008674301518513044844655355014032864028640481768628521101437467865119121005325218373479822694000595627912367136863660556612715772803096155794860211449262096638685908581560701546096036363771315184444327263824744398669340552569359825644842069777471595337328506613277458549210536350313592629817123270267376896935033544522669043096018646458731780361135754952144084882101412714722654468677864018520979680042778932528417485010034137090589691678508969083853782712965540061078310474841457840385761987760514106876352690021076163762517444220260954283250410675582829403185555235448200531090475489959897976384196175086447465910829264626003351996686586775564743453200364220980359068475808453675726288031526431482113511330745530682647816667657173957372679690865088092986605207044304965316776149776957454202932655638392421879121041534194690690318013718534090350511724719523335645828163424407725758383138394163865383017149634719467040640474212856000579943602593105061972086178752940564893626405627664922510051103432357881715170465896778626912864557450307911910890331256758349037289060591973016386518124529767287258795208893418974445607073203528600725003733270260396713547949450444615667082415615340620665180701987180954789097348466603589372632676032479782430656901198698839615746604979962756651461401575379464597499363824563650374007534885725281404804055597348831230122110501847799915081684074801663735117129793978964865166797113986600507141865508899225336786654727161238730756128171490872692150522369985912737993082586699441839132442143569004418171579047801230113294733171098896770093599914929657700092069070264979643869202725434524220673237346268515614396506398410627029310376985230378780338850097098308642967519158824873025819763637095764800240368125835043431738830205450302047092503833936515981719894042791912182656197280756419410048261002146455735094076280332724810051667699328422618727309901703544422055823090647695446075615644391405212049093032167190542795316138868973619379014875209289000311359587927362577592711669007744636468563598688947790124709895514244882249140055145954363445661847026904361208764591978191210468956231958727036338849276553325679797772198232291827232015558531539215563485218614482454838436251704224903653414922576134490694175257315073110092986980439838933394769638402837598755282338973389909402733848308771125909326123501956706152345636847442446782041376938816418815166736754257714782690143562584843375318362136253918095404011481198535969232208092247582187596638112870600641954980571196188385284491269663618588497764916138325948082147371011854331829754648766004197895490183826742527792254262156029570801310556326011803409265184408718675539371830475065728612648877101941314242911307904871771407056566190761050430799040995298728575214186696897932388174356800231528722930074472314195881589314403957089353765706711716535408121912264066124993243880300911541879142468543436064517637286238116066715332391081795477846144674687330815618621143053432961532577909334794897212727832138511069327676185648544597756355367929358175710586688822566592989960193531044623793335973471604232163004758304065586330839290455123644697615835645900142342407480713330149663984189381823996928295493485249659705239184032018389515243330188187698873356883252509800207012351118581482568139546900563862506953768479372239675999407694231163442582490030924834924541093178581703220670722315749242156986267368965753586409573350062816329716289215434057151666779616038334198942819116332377586112259473187889720678898521764223371978712542070039748632425457320406762713222949521422050390963584124478473478671962331847787384157499072481650642530752653448534759387517997945218680565363593934847825066447171457550397324915383737122287197825837413829923788082072492039619667395580118594952930048452809059498041068212245218594356327544687450201609105364295951449652537450099805789266736388070169217161985444905893796393688973091444585097480878479280160877839805699760730804918435374561046225311594119249117355996308954668917763812617365465826907753739594679948349883750505530297553105042234068669573639166684236557985239699230541914089630665614835755547097572521739937378199239720167932037161828606499375652590052611856099866671448546581803947756380022937342023427662003436011287083838473700852112580134343522244007778515665006422384327136036345714333882397055752625275281186180416815808271998411843933133160170354038685049543450523947686082118980492957163028123349706275961641830080569147869890032495878592839939183743861720028694011825839559819870185548524202395957313883555906757888334585241807214030914991961242275080296277587881602182028309837868171239956084326382253582423396459422499070607677287102359973988186563845581304513699338387857828926758814847881575539506401835396314268515178304725301593313463890408722284570839499940015124705160554312007411149988351600842759837035370091345627076017683591905304702234396536046749880423161121993749528645907982046543486792051623207796134290670748230021489885603691499518765908134079523672312979616052817396542211658205435669214451649293546614568353508510421070272264439457160893787665079619379794940364845390273180731389535020682676854897070411456379748432425328978733932065578509948245569851406019414323965980586213245325411786131327568289177091116110223803327616620805579413612295797455461979503797712079000491220144226759552947563808046623881701690599318972152702682619381058058669527368580078279464414541607963830179847277421953781010859386201844422074900646174703617972931368398867884802540899028279523328366416818284681386258591714704640276360111327136590102945762562004198710257977902000488513487701928410453233860905640843992829688052324374864725537763831590616325320353622488759654400151294624305975778816832115448554146764469862356977024157143465130216818155105930723599595589634990575166398776055828772195910400011629674826081526981557169880102801982151467987421121403853846879163157236560149445508646246355545076591291284148073656534202035659934497735905452319189802139848041838195166377976885244941172115689743457697806054020311777573856532984967287024392630087795295018932097142295969521586189255371317779101326348129957819100385924801188563013046941009738571855223165791364719332217069681431857357918014743350090193693940254427060476143781383216119057924249898937241793450797740579530541456594521366301871764170411608810728961699326125757795096132728395418809304828780425469486037803726476704281374613769869495106257714851522895095976093624749853867197977201656064056357713017590238311254652640522614645732125692506774506810200606040804598154696152318363199123750081003642572431313441089569224962179721999168244842414090034049081877808592133568598514896131067934391685785494095170854576624220526368059050362007746562898143772759874421061698309953198734651845186327903911977931593751555704395090618893845842835382096032792889112205023551764706892255044524549041404323897763740672848086905375813436089266739396504564657547664612824578135724081668728110430404741384692217097841988689079827077821608877849859561883160634942795674819428243836315719681790514714217850237543760119707933691527850326677671338223807646404900202159281680654062183789779731478439574836724582803808223370811302023461875680922680203851420701618337493617147186666753863636298841351226076480096140491982024286593742354639591786142527386795027373180890093803685991494082638793449092065060846943136919193671823877649055829351494857006372267841259743041220223363510322300318604432921300206069419242452080565894139707417694547687977136478076950106175855653637815433664125261584344477764259590399356433594633845541948535938121300826170037069805025460348435145561656681633074359297172237791483221208201757286976705510683175892499114062080585296648954050715195569027923916463111193663939806252017897179608522391242541467590402546140786006933518482759587361880630110874090203711018921081182175625555540842085248660167720707387960703777894521729228373064457052738813438665392602512436609781677687188213877581644281347394517182577655483976765452474593922243218453738819256862791765934210198260844745362747591224163986559160172942169492875768319756705678157796146850372503631781020760577576500887314403885201298325609854883872953159105734159350689315765354173852026379714173789872301945957748552340071025871081428969041200418061591766195135925714099202619627473951829414355425340825852460922800682849328953362660017977104625340902620294672859640677687062062865356421306698599674900373892083469267326170538250057133072058607530780549612465701541615715666788985109983967690130247804162291564181597145217263418380043396015783750790188827688230783349818195712979373553485522664763063786866695122366093971909448704821294760154957450437425282186762839522585551372578535964065009836004159997879967745476023090828619215822183649644935297576835758623719403202501746525045714457640788689865628636644365485141614858728733371088295653505162947499634644282998728190367715346394739979373259227204696323437950274942812002487886910059573926580243981799169805474695410187399549020377637947050341551213862308536804372569185929380185205471199990584175002758275569133066168089165555616818170135492335309210185390344014887372719589606859946817335174250351156789281773645464024991323778582945941784204636440681258034291630397497834833291380748716583363609146795165354707303290682152504101841643326769275630044649840920050113872627744768002698720553076398797086922502092837612121471445797657451846310750263315708850405958365897546490623665167286780638715832408022852844261307489810367730731370423053272303573178807912481104576647604205091631789609391088913258973845423849695251673119773643526241829666895588064970133710034672496231228381984167062336268417894088027207851205443583015241030638704413511035860156638032737343758833970757771541761183302839809721689160901001079745480748263529711163246990080546817239685241437732271955818823445804386258076086933281273386133571709247114122027887014716031023962367702011367366713705252938620013444626919871472522808588713787723050068878376077998560406482503444106375795798955981591165479726662473255956164358807987023759159305496694853337013046364724186681696984220791594423176487283297740190897407018001507701429837661700154296304417280706038674319800087553145639288210594351059031714549582762630132074589797371770707312418093347237825947124742334488345045260337037881170987016925289021589375564083582477148112801893437431273629457344582091176836617053442666000633561569810120175213868158528214096380194873777381268982413583728469614224979470460519940691234496290496707347466531899924804108873683503985015169298970278888738975646927714435762007863630380019389010735652072907314323431754222894016814138385331915447224795078190952459823639975427565665156475437986391063115237609597561154565518960788167755163653537187174682891340779908776540780947289098801449159763305000945512707257356533654949909183926848376090060058043302206770561832484443579932482001781792168383917359405156632931620434334386578335079656464221176485337414069353995005212374261469067719050838352260468028140432274156555867200270419768952178626495192863462627980062589146814729660886843717175049431695954864518845504856993443081499156231164708476318000839592469592256354943156175367560856095547829456705860756948450267794752819623004450077478712184107658441315103619242651668120641796022703360148830987611767118470848263614451938610805202618541427665857909794725014398684657905640652568494872651326111289537435988483334246133845561785998833337043923216081439263423525643712558169358279556868946124062530491983911537015882863999746968881618335779538832387772303530855750725773553172502270343199123719701607328027978877899340287949708923071689701910492174044131038319474175080011272646077254458040244616364689845905798641002692719935758444098579238311602955710894762924486025131228504064392102110142663088771956508876662633582523518884951441015663838853177613605226150783997418957760055453415737810359576603682671913808399134003990324115836477853631798040864656321087738632813499612854669016370116820407805382586788316537998585758811260123610112183892997464012121377845317720907687151119603958195221627094570011137512045186758342190879972780538430127357584385867310515945615189806417205827650658998968956415955967525564875158225548263795912495172775432362284748845804541066601238996503546815431269229422368945419420816427029026250269292239469721391627943691854557554473830511360030109638327712042097560353426980710717689321244061601145252664727126574571202535214190023090501155792032787848267573077984425926797927076619441672455707331168328947025545197162064408735945416871169478035622772238222480331366647851965356596064210885708248889154999260222703136397079805169009387528067801031233041226993624709341294284764570083232663189665854340075977755191182345723766307843743762207202853124058558014964112751775695548347280614899139373929421481751050706688215170502388118731624681837886892974964602546807796697811603499976926181826299596298464794463409011692287040946214707479752280419333950272734334237248153918211728051451521982662803975357245778103837770990042971369570982325974618903569912243581965250797746222160019856006335269731607181651927733672355547466856749651833181357077696408995822369501517586425309763053839483576973010455043649903360338911298637164208914900249759710168179180074533910928946756909562455570453441530724046856486505778551704774161514040933364935201051291890754332479355037560966031637329115653337158362247067473596976622253525305004305434578739575072040638806810079249590620201559203275265452668940739738543446223642469072328071822226290219321802870409530669704979698084138661642263168692281433181544903240155804269765642920605959970873159343304726739064780233844999706527989443714464703721388871334328029802794854687452787164761274516695348782792726615458547985714117941716039382190652559160275084409137874863113059037112886518212806151204287671406985313858506329917153200766402397326912651223263735638689895726306457445802517809621705301404789347659240456897118390041883557332024025384736844294110475812239397632796158779876825832265813278287470178401951614230900472794816047235004171992763978450040855833033010923609109225468397646680966582539071481534117600007052006099911716092892876531926864701123272616688010184838049088418040549330348708831375283194750628717882843793914052623753020360631451420096599364274808871474188185334984904056627033701127713744106723464775577987792717707547308861979338863092997561838736528506827089445705221580909687787134589633682265251758211410163635776765835644918115489473339071094344892503269726194994409955444038709133300733074311928881650287809943268934657437368117017618575332224519393493889564575283652619830471998914382143469371049828894483390125573164547571029085247868763023906697001899755609329260213212477742006788086284214979531527921711484490415619398780441522553893270706125604481429030350727717684254964880342769811048215305069391678925582453321362070141210596612218979062968095021500150595882331990929095068830711763567504824792424780579798712487448047709199878226426651822173668891054938452489108236547587579680037970594832581953542209899532770463254832779462122829396374453983632364381970533073030807349395860022426136247305636294575587039841713277576493588638543927264534277154237229498044605855580942403988391737798051728222131315831329313233123298755688578290439857069306435470647255869916428017378132713413830367777380005153419722778943195305493338049653049916123974766158565572468790268770248359414848989864010027658515468184441634336822324566063231583640028276721384544279545687275412430839808635173040642045419679338366791238038721056068745336502044077478108180554244538285053847026620727804269909752747323850773596660955678902332171650997304380827298225732917460289133783171547333818781219958332977733672591444442368517631260952427525916490450660292370340709765817040598144478779702790050972712925171210945401020467361149840928921687881251226282499383089494062832694598773688457360748442671140073636094693694698428925175070560701653792274442695856191132256404007985070434549665119188102174547905602391129682293347209778727404238700955214912910419460847131408244909656789968759524011391761068907811820853069749530133630407002352996029401450221846567432162319092734062829583337926919921890339832389576671842078235442539212987426940989484552481966952605115280880635603531992208691994794323298326257864348120989464564231499759968552668092876054675200590278670886552270879457828591735563854641009582382751878007583531697185934750893208620760856250520779151433285442305364580912240955933238354128318040141585396952103378477576321136702120851212852766605334779628455452367076123883800110031489257261448718676731361737942889105663341845377433047757625916709718026601575677429732322056760759621762279897053119122120848487623706007672088323466899990377886683680060599945136329999702128369213715642498496715500110577811004578679981646766964488308176345452571834122657435771390265118204077541355976016159405669525130498506778380733576523251197857331318623265340393972400225676971707247884025870165710185039535017602913182662201056348982416594998117646992530525367187515328970552985391321189570980140713484349645176160725577750426728995751995987509893088666698549572843843205212917264686963878744662211522490561449061993510248405628801183642639816720746085042832547975832888775535531081634874405557644424247294619329191502028708457586884929708202039328206200915212433562234250815240068657365858665663355481535171523246440843874758519775727241150429497981144045263739113296381652158557216725167384141962999332184340929021290257776836881949599912658039555987526054289998998120289171317695769024771249967556453780756276638608466819924386936621990317911055092244262929267039057299841728373651005931593671996153046693307412718776374650240791601158494008596321262492787647908936788212442708142050701678379150804962717188852268885582049079261092491180948024928865756450796243506706832524084557429054451050957417253213622015848713917090179795354391677079628782059906070115277074837317412710364906244842772084147767911514405587880356712743044963920191711703579129582190474231545602395968131453536554154266878959824249193360517025451753956893030023945921717327771871701163851168005346741662444401582468921893926073579760728426205623900220427392457674962979109804819412982555910161945607387559889979439671466847346188747321262263778245817317553647012169078970021844546214566065408786682861330489101746768052729321459919178326637887180626454961597549268746089546986956116316986523673935671338480923567661189935992518364307638758143847795010377658107333925838752017736538744017392277675578215440134442938078509639021229511454001593365236201949438710730294356877275560852013449167464603985113506303734606846448085928204677836702753090520211473927739394555162946721656373590786267280727822463536888218693425787534907456035451797884776228050028683337655342088105710792731750639666758194914680363630267858644402533530734715966081008021043590319938782924733181313009401552964121387242661375178267600877927571960551051235816953690283241370612681476540101265664758041332519090700669228348487427993428043190534267612785174058059870645302326677473497131460740664481844409389723142537913703694066132432695034542200122331760095684055889176312317501878987975646449462604890009758742257823304722893138536859923887911015666248212494083208525834070707478606534235105072215360217880781060763494845271546323315347400995116759277090901756135222304660383071070197422954339163865860867193101586901483428968178927479810174307722732055154808872626613903946106745158876003134610247362882573844302120636278334652609881832393881192419561132495561792803860288405362771658405995550497713667768611842722037884048109308668893127920160239794191560329271756370061835431150058203492368564572675409966342640149736503353957698804990805446975876084554804432121091019301660279116106697283184825988621364948578949100091853404246716985274278981564445361284803604264956133748023815929933096422864406430874227556128665163372813231803692237127436476860185878964730542268466625147521766660147541190041150278499119139295956647892742016388033488095524388720629281336594640329240798123359953795886076340322762313867655941990773117090804749475619888648122668342861436469588965401724957858755768578738040942940268786051854342690322469798624401877049743855397224447333187973002547712577581520070458961305416994057266709069887117387924814921421774544520136397223105534370888603407716578334512854360821833113054769359336383284731194230336122698061712901610854900508555329621889481145653897386655210560211828557863329182414225496327449874340217531906101421637854539838040687393506883282619593557512589757549748143356664993514062336538925131947630028380321290657941903500969196682521122129893684670906620696053176976485255321443626442265403200916499924824903045039198198749811987944989510005613740844998589437771523073946824673445037290283849573328083749470312459884050688315723237890568678237661308078542473830474575802782358481765094165218853472804533835043587417122884193178583217600170887988235487061742552445588973373902009400620844888779065919789833894596117046270851578604296456776850325518592240396940428689001189750390357405166116698884820853623206409992084925686686454023226954419966453365718032261993647606642931380496552335612356528716649368841776924720446723595581096485198026932554686249640553029719270998715582978670560516510520940924499242031473816148028775707200978313271975485628733584794689259229540992345341073550319507888097307254627035659823132486794679565154840695013603764860892049455115118639799347859554407129546807874913740266365152502692925746253665829623564703697545158351578248985983720398350995977660671253603827139704553844546115745131452093258309565140639500769092006739499916189315343844547638785333819040733389528756272780746453061534421033696309759689800458812984358791766267919705240203945764591238364249263125579059157885477444571914742795080227989472455094161946362673313150192374055043290712340526251868305889217768462798984979107391606700443047152482063350843881867026386291292044750075293144730780415325108555553530681122039572352874251313675303688223503435746074589105647879737634857401381746462031167920183336807317089132061675873301734933372441658556190496757825393696168222118766274777683799117041477039323091644644060517848763015474234547040998517338313009130983914848860661035623991517182265887874688090241679243204055683170049660438625615209891153686616289831853337468165124708378410120626474740943532152587978626307778795995498522284969113166242279099196172167667561728559646502816764327580935279244180507234453505274722442709025876248817353175080284641139180029058907506568867862720124235008234371632604274038631489822678443222389285873766551576941281359159299188647951421649364236832301038361025532401537271318581017616736209695551303786706804072210031614269944267189463769139171307877264508029567337138977418402961332432884130904192616921207691948130743130365730027575558379306292693982175069374642938114729356007562993131758561525927855299854924807708398591767117674067776143516485984995036948855555335924595268355548398218773356041164876970372327075865344033534394041620991424747664862278981791094274216638860903100005885367679498472991607458241102133800511311655451864587889194815263366331770651542199793129557414255188670091910303945699030124534425866868457088671431470590598700664567218802160750523657852044864739413130896204756135814833326119722043437502075683204402976499628323377595752344746326701087194744550783084788532910697719846937709532038651427885174542508283274188673466210030900965382538231280271508752325106895729798805265656836037887663123779207280238978091901121512220954547251889368237782989870520937199635833738980955819364250233287653696483710873541520940611929144646476490871898483516592396275454605614233851549188852872309235973403813573899718060672233799099517426827723412022261858624302190437644292753614171789232507702223435881881706208561399936410348898674336273744399106883473517432032893994557156390801102404980199806267042959500984027067057676004823247084623396389090189730921003138974226657732852031467170969691410470896198279111959572787562085258465427436184178220427169276047157636626204021327538973820796480023303629753593156002448899187391667497795205199376844199705945259405491829202167233312116553194919563583997632172936042606791017042137103343582624333991133038629537758633417938457251787411493022899960888320678270075323175519926049643487073491455081771949974828162010888736650655731205638511438760822603176241528246597520677274790127233951828557725476031899179480827293330395530360473443449667805676387637989626477427531993383367748050505343351083411453822488234170749334294936197860612222767105819857864783822443827696808856056266950078202419883636715469499124818380845928131123083387521870165825912904526475869986133729661909462455654180386170858250247423629137122319074466997722428952435732047628919990517036509363483450799144299522847450014942234778720321919423121188487333813727951280414338645582711848381659388280426790798047795613201066357664597572719578297918955446179672687259519059932839428836565937854515130083109301077015840061220183573552161747980051257852974711625028846587182190843398649968028617405290228731314389561584732670341111511752224416924945210242312277319822815481599577649209094820092899801839790489199324377903104048288369621591225978027472054305984057886174680613234332830519671605018654685055685909582563308324197292004473826361571082468516028551431187396768226014435205184061020294847212933808551268904948371025194195182796343020144176749178726794848026121832410468015243690560838265794406904470207096803969156934299749614466724329085244348067220054495888141073455161102953479863289689702708200408232354251292781699474917701240105851448005787296313671713105869466609026516424184946570060554588000662306200862406786828567585035076373108948580923021709295216310909934252474791279039369962350885078428686784417947730453401008313176695145654829859378563609825210781947857028121974881442126843709148636747575807196167167746511603722991960768492290488748173485072476501782045389268101295551631880609460264987117610734483808446453917164372417973537099324818622085365848841571739704229793587561305858059083841109298638784127618572800429788972187906743068639343634452072003611696685357509404630294623315011378574543279736580712249703150844212029388633686594098323685168925457986429941229407295084671335163396993259527050994588737053521272475059434482702017390513553253966653871311129796853299503334491064237476667539659477788888251961405224642306700182717921443523581662186379325631903806068458440487430738288423005362687169573009519152789070302663141759630960752616996149491937074711781421703722916557756646295701878944178153557035190154979636466563999752429700712999403125764718081592940902905426668240198259213440067142726235906196862194160534424723276843378222940584140797721516431493890728410972236759190696650302464632786116936578324037333819812331835019137302821007657244072694098210021051681979094491017012777023955037456969381822829765060470339065995789192349920975566111376008175737838063941036245265768330894411042192427802277287939071591650669506302598351667584681134093261729513403319895043226417197296940942772749690528293599820938457779117080574467225986994139279454433544677189554281519228317489426023702974518775969223494235919027976518017616188622807716111721265717585869304193975587771939665176804281732029531484267112901714306710781539074669107346052535207571729409209561931404390189250667094643260502946324146767634462394563763631291438480373878958182261597268253856934204129053333028100672381787151798912310207578073695544026687153415325659237837565915043140569998535297164607359093695489397434559446384259127065339512097928194949828079296928776205310760629529166893528346629373094297570424957828046069995803296251350528008245192234543939125094053327445214782535511964068564034159898833936769186049534440778701092609696357597510366151716528127955700056579560555880725753980883813450817150112190269043011458751544646894690621382936264529755286094080372531117559477467907667051335641660464651160254273011544847547118051089045780390491415634029884460238744544841817838016499840227986471158510310025696915141399510700413464106055187281824879488934041914550373288964065225503464250576397767775945408891525542679050383897930915430461674971410321426650407147626077895710591939510696824764178242997687353573461601483384689705952153165886669410735138480429832337401844399908037618971246170734764106684677674404493169086087859917275920209717773415661552847560375068969491968581231787187810939402319134992227890584279712921371561803598861076781970496909264939321311431424154784395504744787706273306929016625902784377244617012202665868623870343462741316017899214045020483342151121672493122426401210763117797838744146295301263404784124040624847472809622685012883712504582549425298822431480396018148172986855065998723616010292035453804515950208561873445399093480459216771424700083098406471944319339422020996283803845379554370078289354303897547958206891089314108022493106139237845235992029648529410360464892113995888467700627042558085929827003959826171362316476023349336133053477566511841945063211003225847119043473132085730263356520919082714740745356226253996761704735783755432212376591648870667193441073225531960416611410894224109565889573660899417988301151806113186318607963069448738883475308425700444074202010430367753631814720404278896678033176454981709454860926771686181517845744552486576521499305571345640860782670055903850246156460659184549853673711035534776918937945104203478119453859283298286418200000808439757770172986319258424936162391633257146234432907429220595532563533852427524817656664819588433279147312623134365516634580284302022342778510604111805293455877875373992287141278618453421722029287594505703474223877187232848140954511714870957523807342194087520297519092918763920843952066960096308445957863071589309004227761057521186159616152158150667897161142844578735251649155906863124131790295856291883601618437764387881447650098730210703787018091563545471919173520886391508070880069255402951416640903581323052004042597211818954862175357682897095904944524314864293036799847689098254099879700527786310460672826716392412879060763293310728309865867011993741049477982008887666970969763193210673633879415398704963025228026040862173905083932307200252361880259616651906184122924462684132983464109492058135996425025164289005779000072947644079531061896126268151942066748236263342606183034064543584249297055024038011304956029648958174628779128957951453060169288130262752006760173851756414168509338709807332624967564914953947727707291269202666869376702669628712989110914680201326063890506544822453655239480779313935410515208995068847094312603864435055819231339304586272305662190445086920872886441086263094343487966987007854948870673820211033484678068961227255870649107015111427865792912207367522096014960809837066559411013659724383445624142582565086208534396279948408703893939899951884054782529287545412384672497052941231744845556543879816462909869420784348801411685510858787232466824543790908811728918152553422754118581049282045950020214187164742249584566134666557587550761368243588926765367329601552416470895148035257054942068957233562127151394542447251913328890871873180231429627074187555765185164304950470265386226667048209208341161165833643640610083348457922381527013981924117327495528395008806162344191334163762248992683548673504853155471396299384308911266604453562927167852337856049830202620063507801834730735458772253131014621227744096938622822232122204087492729824150514322122371378493253849364747015105982786738587088965857917639292766065367304159034971663839138806884533135798545768841804785357305548715403283214893923917968592211540708080181313640688019512932205683246022053186751314197094999507539597901959017336415643152726279663244651066850840906559511798611180076423202072295106689933464083247223024142414030604856622378636574992449998635183486922876999282125849371338688619860183015383428513329203294639789909301470495605715555550949346305917465320410068310645110064436073253242764822189223687901493765183259598186200028170588728876951933885013373260556913811640717277944213135953192809229529537608199457625468462865403032661681526752841058026772078339034443607514488145691068360527231781414124839165972368479772451506389997006605605089678108461650598237581517873033963375892804060528642818840247425228668663898365794865866038584209797791176520483311239150027949235354347380989785935891810605789998302791287444459134403685221684762361601165394130472753358781904223370238755251353362802272276980711451799209737528681667498863823505504845644292158921278165595769370307702483967730827510235723614088402741994464540949626713874490728128773293514661540090246936155164192399601316208365847152835492309849675123628427338014921039441893308869240542645639803719005123674462267285286985191642186204813657098337743180491703748135654797488049291562352389640669925297942107102404631596576825758448981103422365740639416568977924110022251527228692026686882035760278920947985618109887470350666201754870403835249531582228414885550238894370156557947969632460365775029120844560368703452366898933285358966163930247537923726750973359312077933736819581970231921053482876550033595653887172552098726450309397858834738350336676858732240718453676148867315684056647306238091570381963777640324946152747614148015023697567556673798662751780634325260016068214019610801804328700799859837120877203384574321673398971913550259856214221827108399758382602846460240343186068502811124634350581763457767410582429223995022237122759668773264105002701808479416516052978141051408398688466345937240988204513859502290697731802046736238528547878964314800845959711759602760568663079860207801335553302164088917779471443736148815111881470819068508073503144482705470065130150185376046466952877308580999465594890901036462281364687025717273258005225434670212955349835014031292039903922223194205425428471543224940376840303437042930622583855095704025009028060664242809801189228179307633154837537186438107479392609216225153794207754571377181006221341865922681490242157892495401266043078088174638634194900513363024769907265871177627327596951972181379957077407498213230021597382933131643194195802609989714294870346197295582544123136214497299598259466807206076655525072495367874444738745042645835668654330120720039665927643178361524791404380009742088739336200532598228054755887846010755017643814730308292637567699044675311812122099438676595372962969331475145442699924781949523186424533001677952077199813490638368333648327584105024677327720641540742511283912561454041801541167564665000477903172871528251215327258182203032799028478189422494240957426376629264010748766031298668051055524244611432877474625163072596610512456498606826187735792537714990751088318939408121335537365262167114294508601789167534947602032493461582596878995360952576784177856296841632173063709434793244954304196157072726557029585979772870782432874706575875551572872161914825266976584972421461328131346715762730031990920033619954915528442334204191768989807798043961157738627106489700739282342474283471613930965935907290691587855521299538486095888347457550997750804285926133867751767779606523748701771711190045694279475242091499296742748600882347244650003962418582330964086078741789438692431228065018445011300230688876046413959582154182547638982176411539301195670978707912039738667791740477849249933796319771739246800221313999842527593436360757703567820979610052052516133821106450838841350574467165747212106135668171496302289366848407025210803887105346770771719554485622499284351607492783961077749012793385835969910092570057397246559647811177807986450240339266883774818378051561999616191799058217652468374894254859678533675722329049427027521685450816513908171910383647778889395439272802700676521358397246463174878838806008853684452031389122714983253303196540409610407717629897833174739594030163259093613430669802979570270732678953574897557967259387311361253464131570148309342552033227368209022625067904240221055025691588543914583716002308932791917312568498190805225738779144196557844901192645475694920634041281513893776805524074888832036266995419976147256772206144827604693259396903933565581685662940246318899520267954774321339386177667533657963132838396142670615405729332796260299568119543003541666898682938759570483634459259726244685327015428222790240178672338226354007307438148870902119033828061439735830837464592414415748723455870488929262670821071440104258785996524105323431484187133256990903979739666974328683901059345028205941797930355684637752255614087798917905160315304907290340732579340022344499399048792803315218631009280917403558769790024986163278619190321699462736038524074917343843620304137046947962728752958749451741780936222963378857652173179511716278308941110420482266812818718544592151549861769612380166864043308455014942685044387187170490670772198340351351200976537554866141987531470612836618005930221298497344061695975448860886518352312167671097048666535267945864971973998204088434788117318281586811585456168993588831710839511265805144188727477532856287195103735952981469619526089965250325340148602136752637335472439409338018210236051135727486412933927694598440319801425199322217255573329047427841889654157425462197966833298326253872790834182156940554141086296613050659588856642339804636610322780592239570224712181256209907681257634444540381724096660668351057962087128497579938744752639762207616308784516155394564645747212660244410541712545093448693677786601649000674887337031497210099275693035783516438075948689967488434621171622174484295835691668070443877068199479314637920554873126943546370231430214769956324364673906059172383037272161863060801878766488243417865202168509215058673288319541005628911607925819703366688672250384138371387479989182945310150268086453658280031900225609691176686560454143492073316815215124893519508465451849160838081447343965609235721351414481918166773057603881599513503229672292357149351189899828935248729588243107702358465917893395111116879531275833452474679349518762791395698997776688184935352141823198455816355763208523187407648554552327705546613064191716583990296622733893177743472947108905638852242074615992048212516551421938665022334260570662651159862012977461664673237061830759281941150810009773871834032348239581059405544207421794745566854719997216236786366853067570125192788223372252891663788862447318786278051191365728756814086161232948954141892117894041391672185960720032369058297258357725276576800261077164725104979625676499384170516293897765952504163830084274421959182151898257796480780563968680535135607452293994922246304962106414426946701282710416862432306242014262739748136381950028940096715633026651728694109354575334115832525207696030976522432394114459805294793000175227325684718650497132519929143568207068711150406134309594946109836230710125400036670503675270992035461640687717882435281679439737491431893765321807674507113270690061565387027575634472499653034029992859985775273557363424570864250336333138881101693871068872829332497453521758109608005015541265160283709082636383433089870001558931867922219331808149821854783920494394324837944056789779053214316914122807947771399725526536149931477306095289209845631569318803859176100791374288435943011600062523531804162763060243780168101429732929291200116170112627271789962986504938291453431024891036620600154420182973308433204648781952500287494693587872524213947323136558620527333047347797883039509039365773842735405240168931246041744530292986438280116802168051314465122190256561509459760728145109586284109743518596909799429862664486043918438171622424764800343677586961101588250589641304961449700963314756606081432233017590003673017086797629799286840578348639632557041454230128211529540939939845386779271009063952786129012827911458652311586011149191392225859633624151003473008425507972691391150546322649252766262986875208919251407842110402979742457793194034858874944147501118799893793481170524001806234581493005184250151927905388631775459886831664572674679298389263261410477302206613950326183680534540223688481707247235067807001543676717092430756216776635381777331573093483758314402744045976088061872562528728336413423088359898608914415369705207549878062249803611195680308123969487696973942076710434821969834211906584778165859989230222029784139386064761191160265123467965326504240004683873443797234411480285843849077830512388807147046639902299298156631282628289562389343540460068369997678990053023370826947172651709546537067265838967126011755733865648277268635727429097621810200125333068964257898172683776485035257181874557264978541427513650383221442212482046526219290272778976541519299939499553424101916791591321364495473204638744811281251608305652450959333959864393571502057544757915670425300290159573498049878212600437768696142243681977015386292478602881502573248897577495741029135052068952132239901106052931870823381458725180713136409952552635752975975729189021791342366399831567832887437875210545486949575056627599206328764593830629040542821463512074145075315709227955491666311114213325839705545122589658041981589620961543921458634567140011585597468637321046313608310422401737465003490541631974269803272871249491836553036862389900578040421357664786243046906289315945122050672615423521127551849039761932870708246976083489846729612642821452303796394116596685319344242079761320510595497732749674120630651817033590217719757533912615939543567234262251884159140211239376729463903530306117728083382463626918425870664475878181672995093058879431460210606903046891262353091891486086773381445006374413375154663822498198632883000525558963948099924073259166434095484002086023429345742480378375316243605860585864618501452020116846626864935907247225302921042817704848079793710816334724404576416385400716262435468538426294491826057620957647541361721212087029675907837966064893625429231139304119938725883573553946621033357487908029271935438410828104343107442571676536096315911954553952121930793572086933162109313534402683532136956796041665520055433504726489279155071516421807751838887331815193206478062591678338772524090675781929770474517658180223918470254600731694756981457862977726717209980308064235243109926794052905819303495644429180297945600452516594071475770624305124776661013753873806579664991453603999754024567949968844858592217968052808962839567752032830509061264431196646795964546966709350973684076103364642719746853650914987825500454044310403372003811998317546109018511152195145268051767240574876643496533657123928806626716519969940190568220682726522071630049495478047136688805372814358369717585311627415364127146527096790236740075747843640297786387086288791804872195040411898183871882987455340362168739199295007028452774396560953125045908361589521311776332614652688063529725418643365538433826212944997319625104699188163303512810724636317164854737954351131228942014256544912533180156004418355560770578533614841540428920946976135392109393920274234397751560100859026877367358393414613475761815539003462375672755706596049880920157403350611142888955665655620482679883149431005789239167661923863982543530047574529127583312167997520374468098443765682094847041394350736184172106799809318069097600932232822269636445944136552393088687886230666302922832054812349133119940903916375960524549999740671587825025695163557587658926937259894152537392215408837602804597371571981656366500262334785907448164229779308313878137261099414001899278668330668591471579876471170755111001146155741742962553928666820859436130632122765956794676129989880225661223029786103717349862984301489498466054098472962819744997564293310392815746503944380116841411422385619864876767908534773285258314735620684447684015602745451020013976271998491735194287467886917745461373051225850064970276088624849123573309643176111161771995214287866574016068887803394838605475642835783012791150088465337473184698782894775083941922099672243017252400492490655433437473014183279860251904337090726668730583607516450325477458053414360150954421569828764769645140912640607036380846962449913335963111236374928956332233035186100371775361758471147132167698985594222902616101737620675654604574821847969835879843820340841306835301197970614351721352503253373715371358431426902293122714460136074667234898364720499909792739473799286170834078096462872449700096229601004099977128788731726784910880427353056556748783557989887902903948611482214730431955216788243197229617530410221718872042031697778090686249509492642266010266785267380301097915979825124695253488748558723283182777562409028636813401498969178689579907625477982035975436458955942956294319872803398198233491234268332458420543507113277892266283003490799102671283871206229776939123428412644841668760310902174554481262809440820675472683361188031333962114490453904933193845996410618249947707218259461084884201478961451836155547317134066713952800285142147076787238225466048441061707166671373061440331269481398085693783991503257722440267240754375304734054026536474606377789306714569145472994762126327946595136344636633029033489234842818873911344594031695479814998297574609173095094526863153227316960362770289404520818102136524969354460499242493359197376371983933827466937281379433646080429205857493093622246546543825306598345307157834321307341793907890334286166663695410710025699240609001375070649846575050576617821505555839085604876902366948417188768022086784544348574979368988957763766703276440080361751110015051091001011286508965910808088798473050376134040559510314644838877966392443179627847941933205548251541305438495128318996742955507108071625463525217150434130223673819401519092091616412753680703836208666752194284279823672977250481696632539234914170266329780601784548112186542450086143710936138141326309707602391712739503133008189606038639500343650395077403847702555648996091943078980301302921270611250309289706095331636384013784914972525404867998339632738171272112656130385598454373527085343027669278097053959054279625113733203352715588833227118082464390712381498957404379224166274134793896161193752515678866890078422565653073059689914492436712982494306779665432786546926917685334783277485425659465671448088562647274567818021098762292048079289427987005511753508648978071516026996598425900559779937050706537574895257236406990740119633807616463828492039553113552992371522095719253777362115575191343574301283981771093680383132486381545679967493893329595506427052092201701049497417771953534207879960051068245673736517193676878244626194495323023132759374889939532159273016084329803389712131206215850536973276434654858791671457992676974142085530894240139218669276393535624175319896633323283820281583542329262443471018409844067593116215965016194625709554318887751319884405540130117057198630430837547048692402423491926627286468914961670040991191410879476998617467579552498134862494372583758206129332262759630463574315436572857433965529586493281597534638019525090297709530597882055765344489202975895103643679256783219990765965514814170200526528731142494910971914224362943566081907305733106645827495685375791016368334387937747155759634433156046898944143916951592270879392799895463169494445381370813952266960527221689416119957596241780485917345980546642630190004281905360172380124016588389789185482688811385326450240891185769192067047505935947525581565383049979650152353960466235668108105222949466129731846555480351027748809068665663502452643360045061209414396384310508222441382188215490027029600671373456637346771910994487607740265517905372956589462193392207453802251122630144578228673705138150209415569363287289117263172025976700186987216880840330240932722036650741263863143362559055164142431983059869040869659958098546865667342646895297372571354345370272655429488972356408000270302099197183073251053540458187166020804188063711108229985012875489376899036351276240058521166885636079049739787027955616636137185281123008691311814218542038555692486664209381592548052882458705499486271921597672096609829058040519184765129983139017442061005953318032865771122968610336521166694295447079676418782066851325575849086577824796868547365650420529573558055758861583164015756569893411032746584358931899733314852619244568316239084827711967619201078661769208914717963422872294259778726020303087125451740073395018890793943998866302228706446006233586572256291843172392742703191535969246065567298856656768448010776866015202283770539298210974698296337188207987408384358745609505363288414214867167762723045232045757583570976063538770620149794223671308321270170585701579854462029689255892142621773295666142000934373047881292214596305005182945327803595951389592799035838202307455595174100618773084940369616026469635625445712135962556725213871497634674010363644390349730799307929963929352662334559982929711163954140329899767524527858718456517311299277817668784369751027106414271423519704984139653769397618936682066729457906347751602364764028088871422923772912664067755611741832984963485089485126561947207517700100755997782618668861250677382910291997616180325748813529840785097662072399731881008777854256235050114228894956044336034527114978790710893267108037515088046429958206984668735333636604768275217429034017920862842229989764879043290090640481937052729843389386067113778419423840517152208034260749734005846298609144646037742348749190899171222325095826487792373958228805046428507419418796441674890717198340421225957744356533802125282352093831786152974127227518124058098579769386178029306989238934152799623233393517475720802111595937085802414135059149792820943685448569952669308678403344783349471308339227531860684844210735645739059078778160029856056810365193433889188973178109519029914940860083606815899805476435185588294726157731876394002417960562972758146987732726101779785827200242379210616948262760013785501743543232446586737586889610414345278073423895344232717978592734108339045567612609896824117618368132963150089936158562110118548070624431968306796498090016000588941428530007867676745448669940718997922961370350340175777836822395914311340920286791383508166309410664028430472006004896695438090274739012885520077764292095140039103856738996367619939916359043586503261532730108819043769061176164886892360917497929256781532914871328368355480156604362654898588444128655599409823072995808139665407429655680535163801458119480554108742045394908394576564050975499762092035563617564284115874821566344975446168695600296280679172062889965917526857035848708776432638244957447723674703905575657627700679791220709287295472424180806332532644661753226743874958018162195143614360682484862049469315945762802512509793245610272070307356975787119775217226580514267499666974809994042099575960678331273564161533427231692228384975666356304400708783964131196295977987576781233521542538930072585471922235452514192089908970397656630639740899693576293445905071335955763613684320815336215714355333399485957964657339911016113526775082992630012146924811654301328695463155857271254131848041684736142565153987274154657265663688499152233170696556682133477176641546521189898131123887455809351762457277524425368475218469053563427214759814905014511369835487057191199019366822045715824018206517039928108055937030801139323756277749236638662364193549363013724769783556474381686834477911094463710239600565088699571066936054461951392502271056499977342042299519389727485539923893319355318803584369737178925730876101229103937349916263543570730893121322557183392963123161362423045412902786107571787400988487732877141878476121371206346322484641930578662266047177381135076458054391596148577440647652367906195686603521477651402610716780900448301789071991897505972200880732384438075558551112568688106174870771412090027407027773166944143989834578536004294673342569202092122731379256317188934380203193630723709409756897899092938213036055043653831446810693173116806185552567305434736677135306456102599670575672279640378542063305403864761604307340233916367022926644660557190986167715863851293085925539631089879770409136039310342248825332189144638151326124483707678989405381819506310812272264292279591579055635119852923422407391313182767699846626169423841608146140395266544419642490116907175908632987333648370087673020250166575442534318791837253002021419456824617552220865721019822230660977235489139509934870359122135293346179835789763344179738876538870521437621560612989899135654759806071809818870704537914452866490612193713591830470185804777648133515718558836004584514440276410176068534877281173088579591165448278977555115139936656484339056987954230999382902745718639140707285162939411837127156646388467620401508786721821384603930627923147505274903889449777407688509464269030931046569344325357463146774559406130231010513268090752881309853649723341870543836542272047144844595385787801469786385645584339799595535809297916091317663460287580046493720209504833893442654230198121385178905962650828819811364027884235926295832350496560436668003723751676487786856408757928103543496054901578451008061165289911689200520578448339926499614907064306933992212510342071482317340603951585975641777461423263612582433882543080308485910320312509387707606036326241161312909236253140689716643713871979125470401438356089204246241215327226404751612063987766264681296231306703193072565319284094221131889973975030361811586601298938614478302668444851892594740804331088044808860874607534261923660703503299144847756284991271749294697769325270085020200666958876443480741600088362364008583621251364756799888762686687883716515588664138520248929218214131413247871177368737327908232167746747637198878181045204215560511371409073041651132171747416188523552783117097486306762647315242360743293048334135523720170181235705963244386419503857331885879749068659765611948200302950810312077682389797190083769392691765944104765921593401828089131619559794794820465749656658101850591192444355416658128294881688351276064748630476259369614112681100581174947197971493229144724051709168074605867019925975770827238776349710051267160650222500324396473895045049959002327186700793959929005630900769983284380216288497164455385959689914023939198131385389539146683128283692782065843932073497101392583981712879205334689851129350934755016712722731725819363301797144564014581393678936159713130591110277833831131425991237749773564717080209283869519060259315769841698287093232032974215914185458017910218177984296571892430080422440449480532008557198510089074664991804870333246370261089361665716998777996473012667850761716649403448970424178276818896318797608627771560852820467888927710697282792753528765318194601229296960202878444786092943343070600052326407231910468361417601321858520699451235948683046374341950398973843763419241455342189900947862022208041425221776554423601615043659820041475117453176676555580944635070908885320309308827569759680762881722382761928015894660834943761788556894518432460545552285115371154575596758946569415703270872993757115337358593193938791253003055819347809177147978676676915824185750721677706466881494841722209360829656718109851316342261737515385525182853600078293447977468655656738138479783664798084229369906226967591692008590862311439095040485217217858945126360333283477822260936662264575863728721255149795524351337871807860071177786843641600834825056112255247119021068501661555595192990373294917915915138417718862004095805088316809874555248246666105596974866031312168134051551964358309559074700273034422093820013766041389318040568437211652844326277917076451587036968683886400280661837135221604989722648930481751214471854891340817646615442756933911550898737848790430075213275644379059069788103765055774632819140572047240683613364591272499574398190078367426926489359242023141441969627018102190841671227047860829362493744379481287517090405686534657316845110406604801342444727945561974928474819109590699343732783834923706949878858460911079632532293483922963975452486359413960453673487773671234019900169184836456059266559441321297384956096997402141537693867033448292459900047260365222781468335189526638847857867390597007960255748966175968093695319814330864598826655867386236140243758735853500761364730614097431077762083252338082324217760884338666458907968648937800879172949629990621133331799175695722451494580541914434241981683093184615066999506309326353858481984397895697663421521023230899933239965977169734351640366136953471013400441066446276985176912732657496916224395489407146539326105508017611675199370928692432071701001462698157312636159339649271651459349423292434210591461242684208136627175039520886324538363582958217534752224108713813203382284919850885848682118096872931966669674400951741521185080695498931080719970458214885122589136815178329121314371932539230716766835322310103006426235910629920162171947431140401985069492643641750009481299843597757281912404683654309798976552230578265650998225775580387074575917962500487310996645609038450372099063787028730910781088690496023793723805793628531436656317434549076766158302146181895003047773169437914376372826971029365533766965537887988643610744997873265996380021867314126662745724617768224667607244311338439381354116161363573455817008369505852334207620071319560874709956961738036722976516366582247355852822970940712586935246209230201003525058565170698601269597668844190365499267289015870210739711537639138501386452066111225254081094308248283672144497044634058829886076531820824494066914193493962063753727411246447264306044136620318361043515188539333720284484170182876588623496242103353263886625638259439097226867301104232964055041218021815830919597631406344434283380971247947502550627613927651045535400401859029025974857920813254450116913169208617298848115218963243768870595276852919365421559583671740026863291373246169049052106838102762732971292935403872244862818178287735105321563855369178565202832998671935481993924656207492729592238282901975777069814041979947710535505681036646603110910780167492120759412181249124991287268445109060975315442034311101856220460733700859235057178871320301671089155852337938199081870744402732201321902766382084011798587566423672613676216518823556093920000832713778894565353262941876895778094825361015774417033915575350800612873107401796704837700914767580618804293016193874093385936778010794271748111715902136112514309566541698085791474480903613105625142499069299366525277824331940302132508837367661392916909285037040542059704174195941068007378031864414493129523830488687352280103982226960703514584383059242849731712729444888287315113775543272756392026909756909693860780785130042142569480035701092881188550845476852589879750590936830843880570378255206932424552443979622379351568436835604596912217020075019108358662938631973078717362680039098517293205205735408175871513004549818173916691223654638255097479392934452090664779864310540338067446900783032681716667105729313721386997980060585470518747587588917606512596463407902169671675053933039614082033223180659174502330796909212421389494738014422257658708219620514591898816819853447705554852010332142974872397822909797565618684588155990669744886855643722300997054861602363437729957857842065955938762279557024035614356210830997404226900243098147455262623871125600812811856368113668609928106956532583824192595043484459544104549013790428880990941738484959973856393883580678681822263793562907514127428604863909946258219922846229661448701395343286560999091191605268624573459214435317305317420571987888411185722206562056107834352238698912706840059964708802116841153096283411106595684169781978252838540552756249611615226151010895567820471409893433936531490630619857769634750409301911748200910290934681183508050019526527760358083294474874863669543375702219015901427170029264664884925594426790830705885366107539865369218417730387509503992316593131214640658480359706283699227267835452627012573228018715974104249089595266139815531940541106109422167060947326959318887216550144306863530298746365929083229853872050475810892510877594092819136010655429537547776706906481292819262831328994003226519903366648543024204769989321432527644500864538016477930648940165525051301956312953749326792869162242005863168508449998026614710399481937596167617015876688858585672309774789705139630569189342161178344115732497837786593077929765664856914419024612454258519197021469286681277042491363360958928521317710309412093482294560309265635083788081542484590119793053818781713044166090879487288153130271241792640072447969736182119464239273198227290676252812588745182808684021409855763182736458001729413270774302072997664432915496975866754700429231526155054201549970811916444394021224566598627141809166317997763926642494703701416682945550129252544160686412942236118245138583548440270220787887909639910243172421005961631648203196686175260721278015480369527926063730376181898495389674129290481256749858366251377041023567258526794424893056844510841737815927229525289544623389330312916306946099373911905695896718509033767813430321340556729932245978537602993396945652805241135895926013974887818158796238376531921963602921283013827210452798628789923179474783955774649709726470569371742889429277572918260271452738190932286555833229256189755421310367030669684562705368083377650063809780572674948728520287156300935969258005606132827221880568914603182394658346557042556578683563921935916267177634325159658855074151676572484371421181361815547660650664397375572218381932201220263924160669024676653443171144907059383159526694487173895466372812562990221220172205073609708521998217910007918513764317319912703484217504228289540977319222378106387212222015139350273079488368302814689593029952878011868995529714973571677350053186803109815013714180221472072933641147781386568180836971652343707231684996091271211663400837324319116273284523811813186210388475858748914180964413194859646907348978232883196947212624019625763425653792098665191511757084583548327160814688147348614618346499900141372526763202971900458004152402296953479147637546439695549334043687486713224753459333115570681727968062681804321851182326981855967957109776478257988353427049113100804681611254312872925537059538718705943752755185491485139730943594309437642925714097261881602803177990265321958817319702704268142441772027656232507117939638044308819294326201599653966239884731609666981964420735440182080838584828795088105730990000813742333749657510268677938779081730749925442461528052979577757644995110177293674999724530313554275452621622065124664639143817919633777233695506493899327417434807747352684921858740930247283734979130801157007250206107329370043817720723828314930625400250961959343663953999632891718706450793493269014092980129483301288477756296798635559109551412293004377044744725679057660087708466356671500577433772177480695382492629276997179357623247303342486819297106400119612324633110368920488176418336828659516035286561175427473638954666798834921023887926608229458875183243282383756809429842264082954140982088960407257391512194936213263396393613902180258598243671987340310059618964846376449263730906360480265291388570048781576669253256913833832811080283835392933774188782237575293290955978928317628906998029959797213506051127603463709466067499443108942243994843257642671048007084280707789368211226862532670751757182538606798114821144223327704493352696345083239824524819588844003607428841651027698829483292189940954390285142867119824048287110970065917084698883405157048194041317305352389501495502648521899250306845116761963583332664654889392712255765340896310516404548386422316144137597713292055831851413357267975435622658447958583956837204463906923011694160184717325405176451689048642607268039109284642750279521346505811397569622244044082329997188436942970844926283114881641397004775708050505742257915363347648117200286353211143537439175663659055709593179321868337366343716944281022133933636994161585440485125147686691981887082188941554774531656058616131806527024904852350924710358617207311169975372534922448040108538505788151538072087650340234141754324631110213467214071828986196774195103000302123706778829839209196711690108279105603464426332135998824431294847279974026332366769927975825428618227203850151854219168740716229053108048552392071984844686739143623419010470694402695352076957794119634099445512985866450931632419900073829334990656247386162262867069824470027173435439230563301179753688873895372968860394080090887178960609652221138193618045228219211703781091582858640420477053343394018245927007545695824690147239680493678809044086777765151559987631530319894128390687650853903107759254589670036801818268574863323657260821501878899737897368543807378656452115480827907935118955449089487150984253544406065879104945907077536914285227635888658372512184617262987957284800492561294106014272661607807355889913256402482051047225597287751443029464107357835593029739963651499187490951011687653602507695955807390480873691117168346244271185663857903618642942546569916958473565635979060758802789510465325035995103943067383709172454657058520709818163422761695870895155888577661612919772845492841912909416499303833853210280818429827110902752048762222076828742414369463019708166932723114764265214353409694461793052348414460251473145399563369706865351899930306433300202663718357123956014958923996034756506889022687520965198827954016632910413994885513597081863382878971016451960408778947087866119674295437799035952283549024621133666696047789469866852369064178262461787150558627948384927800019080446822211968022364814033132940505537328693221067634713176289054434189590364942635173821209371935406530711868919254793559135997036531348270548333055083931756919693733308583417645220253497139644223456279938129554364159174842475454286082674750886164522773727323252811851444913515427927054305963395154395000632100971931784007276048527619872828275076562118199203987488299374953382874398308801434176745139047479435899958804389829133190149771466210204080363411619600352249536651953023192957985700471971868531313759193138382835012026746837604010540940061305266787786027189151631350400907937744590936936157945285376280162012277094886285082075286902853530079999997397314794689555782329070633550811944440705469485925750013652059365757420188902434867555443796641996371974560784136098408188598596886939253908275146751386886390636138570380104121642918165575778542848159097751237141996536210755377491968285766837603100737813295706674245202116072592926817172858145794401623863654339161072877643873327247335541247069418039716890218868452197504616002373968042079750068245941389733620606225558252347331006665866082406176319447509671207808340842084399218135962262677110104141462659899375418317224202114100052933078321418141070930886943313568257120824335713031142650016391848999177420948892570351009046119866575239885987609810626287065768452579975676139279478195584721809847973295620288267562024211929396111559028131962406597212309205908081268392285637985142822568988141454395531631937985147671024891580840233571181861257490625490465446573270658537423859973820532502439678174951318832278031033551824350189073594868338542511922549886424017204264958399234556351450172152135852704149719640724690042301139842822207777415254747326088995883845430845682983848252861954760892930792883576156296204251946151318022493759016829652121797888416971542020975524496069497423892045209848220875732211320764744568712222336801480533087085963982603392813722270527794644887456039820851082815766357119624335246593098409092035477456381661479640134368040675527313530892906659932944627047649615439757991511428431383133034240582764894545493493157462036097740482249676771826413272169846477182412621151858412708375199643543607841155037173852407592596007957503333842762133814741983668706961401065712499575977485502935123196079758729586199971129735546712516435962299849264367454053328743911122726565453515208971078811161197128902277144155295421216041891792566545111873159003062314800485112406428319168121128231197200433012434177811316525817665565300906023117816438536208678034548533849068034975634207977604300325868888888601800314858819968726640668558095336580868394043106044290934681560180278027466684577201031675973631879941178374940947905451750186468060063373374950449182231015991314636779570179906905512081830690875140951875047105438291151235292940994110791935169145317052326581405742041649701684014369825676189702600953361459426308126026245682321915130615634695294607892335131192862892185111567474942951976016956057914071633874424348069298940982212459389835864349988076566796230038070327377389917983110273955889232572113509497663570782159208376895729837036330313295427163978894172621419964939714194933746449646585822514287505555790959167859545902613286718077732521082779382775305978815288425284378945383930765125266128007752934460334052087558924545088320686441893913838187324672865234466104064642988674431311105358089054738313440027630405278366785283594613840552072612520226472815186600192413415541949402338208994138375949497070097411253077189327999125554876405035247131402356196251653514371154003310210210624541665648257449940542366159535263141082492730023566669968036945081050541473341506800565486027092532436866196491797845221960657610066667915413672320019548780062937924407917793735989188268640220804502939166486191236506472582038903263241033137883382728432300816606026468262282622566569974998999219073358423432230412722349300143256843236167387319228862672401445386134169492606024581546748691152956535161494474451764283632065271744124011667367313864145304836587163771084699537238261858073273655034302443204131654305900292361557685505327426622515951597445847654796518774877049465528263256582446221288307844029759803580084739329464900776707708598293097191672795111414630589575230890741907649840434637324094027616362191349836176928240539253451340896315825638179325282316802670493570723635642627589666077336111195541698272409140648709574670334374844985017165966656804026742921300508282750496184223697036357294432589914050080557603778975829556079572662464994611661011115825505692401797227062434988092599174058522763091483298295901626646948345161168260516208152677964060645609494693797418171460151859629111443894750641889550393974998216919708491641729758495261052682894933383042569593065583050741935545801867413980853217102892969479500015745473923901953507011338177884804234122211726513379074502180591296072158704967479130591649699546810777950476043052413531315094110362023112696866267867052818467607467928160709929083589784025447450835304127388304060205523329988511944414965101873816928002036453470863218666063945252591029463175184043348008178053060400900456122323701875948928960014633648292536088822101972718010708983033756233566751414958233153149790967810994346384773544646123942358931755124094891883146920073855156383391013353655560639448958022323608565789673113021680823097516515374811405618768965612645932846840383396387587814608103267419310647016912618262135166957910937680237609238697427894761202684560122341460285438771329349598088693540530332971650938484091334900626231832190292388669183704268151392816274130558476233393488795615982966238335152058660599345339735707972500187576394335574801915821335253029530421563222992744776678030304938454315845313971229918645649692032009329905462601560461506555201078507615663251750221815792740106244518796318697512522202826047210301403884721988561525636658901257901621214820058539663313177092773013228011526890216650905719785395549623920233185202905590855302847224931511380107095253780058352905210013604979543701221845535370009681821288677550293000408610531534627493799960927626488100002066635381514631024529884473644413356571232740617571762003339878119945359028964104834810757432552801187911717347517861271486314268203962859053883034267980125783222836098702298297168901362270689725868304275613620656486920762034468289694484311752108874938721701164617866309444502331717147221588665364380612806029773368985182116509130508010972891145983062884322417297509629939013195226510170326558971973186733423833453229520105143945651414449425589125303060954911363350139818694569280511419399426992612549172993302653593270519642235570668598707606743086130411870153493408901063619889087919483730939348603011849119593971174931096500400935728069774604549112149608971332999524066781741304617487286816900802444011684941614572777565629722393343578461726624163525100860613421085529385113296413485877949632505338875178438224567235690475783471222676304429181095894223743823751647124849815282732370855958825873002017877366111960270438241224201424326751340147784284384617790644407132083463249461182112645828605404894516375821568976216078712085729971050489786055366437398495727845765791037293666629448479940227806654109513396024418571255012280479778670524169952150661772137715838895020079913241219969422855760997236981546614326722426765245373959036231065724480456318026263375724188362046682215654236980339546903667430967758113721909095551705230678016329893340110594829697463257736809654090851991232066326000151937370312585074068582348201665478382846448328939772266402495176679082357521966634412116196404849437987055137116390074847811728410273664174800601898590367290851985536000761703401593037358871331160810358119363692525018147958834660991826617565791505933286189360677450213141187402895873566937766138731053552067575295779073064922037289926382228821501978790023802622416651575449481567227509584780911231483204713796930408503333533073099072822393821182280777631646918455946736950957837513913064024896529259631666389109351029788132071571940521358923597808743756410308654992054742441727988456516116578606905640245227290336060027404114034078252571721160082973519361392158471709395676430628705083845286717898550685062613251052914791377974503297052164583526591420265481293042764853137690980847850220167663041571463965856425418300455165524653319935351779855647690939451367434783489300730986334949410582868836710426508734426557445817032449823832033900687024491894118260993389995664497110336776703004818699009884848941212652979618384772292143184620685981071893239921717944655181688256403752967714892934450339217848796212462064396585362069820999441406854138517448329199774767683126072851842908173137085600449355600916181970430819411595648641289042272069787670877317618147281856658891423164611330901753487585410794252433443368791202541660336425353210438243491510574779191439410380524635512779200978120903495450838591328567337696858492637011443969652361594239779733184424897131016747818568650395489085998442259155358877774930550959120314285357652730676085778784763481103267280883860567216959189173076051242888682939465463890920458255676742973446856558291258212057874495524012299855444632474606599603628965370797086421512798713482858059820957494979139698011160721204589977377581744181856398256260725471224330025204464619044016108484933027541760048494887831579737803226813719131213918610660619631827870845146683238599467474934932420110707336539821005626857964020838208478457972737258814238212066361333395628352871310969431176482073963922361373253164555140051472398060204470081452233013937264129458371348546477753273785448657818754398630868531647338793578562113968500263885228542253831123349525595788726327158362012327046601365988637593811289734832136538417029892655401014203219354445162635364464189737410652722025209120145511793396452756269477016283582929620834451739470329484943629790655560907040338980931897278718189188446367200270996387488042975205220142160632255846242558289585468293141342240544119091598398716901635659613709900004237908561892083825061698589010320583120585320131493142008131589487923511831910355461250225819376441281266505762959818137826611815268811936004070447838992355149673193129426908809401459565893812148631014778837070832253592522397053406892512169526462973999546780876906783293456570983107803867556864429780802025564400831169741970796890608876161859682362581171994048870935599912561050163609338226621562899166459701355743935811963960033090618750326016011191475671583404490903838488888051225173141249217817472997044253181299124733220156455076457102616786851232406336007741970579562946199564365793658019578066770479207160708637743302536507509228403704390227756550835114858617988750203304632060077754720468285701327272110796551907391498722597857389323634506785374852562111235859217935021003362643346393608032523750214054789146047820703429092127464972982675538124869040530764361479994377004680513595106197578129710554141708107209816194142672765746463395254540686217836382309620449281784197442780533036037747784183615232377753895373891399292337871752212691106326907401157143943764221449015664518408335605453622025302579757397557340424800141737147180806290409779895863171487548447146785630688175868563799853549919515325689734468815997941759524485715599611529010949745865136312688578274480230826128138810403140831751928874364219526140934282789004800032791567533967332351006568009847037123923374208237980335732975096097215009977894398576980819989653821834612908823937346364776164286150148069645862438721533477020775383239846361442257951569730826648530409988521897099349886541615018630500377287306779184818080978590287945372496343524464394361974112410570846929709419276093912446415223343774036281592570591275765412332012141167267478257765519307949914425433380077463180680035741050733198185517539968776652911831854564652431094146902433831443333596368661901312435881341137876947169644464274191147122328437338183388850575964991190187352876520087701443533929371016148073064141618727319334221136394014981922147177803104973324994299866102229548399547747344491761731545506756245609554643537464368025302715526043983362875514071652501374745194523127880512639462483421956231162229350618370855642336357819550784029907507699222993679640537379262709120215652331831352446609888591641302085966908637912348905535225807638432146380136259225448499496827209662437595192905764091479670729512296153816523004191237601300666749453543843019778854412900552051448018725520147743345928245004496806043725187775308453110919313864140580782220679820959305868955637474030599640429080607062200727325933454469591914961273913251830504785324249198861548141715528474162589596914232614933750511682345313380218133097809532215339993335337327036802417162250747847844820479301188048237061261045593017257825831175876132427112439481682092241675688629270973854078894916409136284493961004659067035673629942082327043717470031321060064820182690123362992899971702969490865371949565421085945680401834698732291242254275820407351472669878208424420099878485015673196258553061273990534187953558737607258014203435905105740700635987708202732914375067898870401637855120242730956274322348912033135996925557165172325393791877607576101328909152295837143934430796881479503574287747840776941800210443960843934010358565207442130500379516621275497836562685142487120844634546212769134869461800040373528984902092372393740360112447341366465799688386894589610784204515610953763081847861477988606054790910620650209342037827708395136950431056899132560791607473968228655186306142260585991320138199006426563849586867082211966186684434844370153366560038202404007517801625074840894904387228916294666798368096090643434677154227725235990227524350622229512874307800282817957497792141630148101938476389232324777156197952061083064495599963698117570164646398250674529432342149624325029301646980655609812288015353762168266210925825235725612742494773710371560826829791035706242036917220929851995647514618009892934152515499116735187997722878437246372634211123824342506167204606554266132218873049359043259324141739979664563116033706518224704968123062226354392752644295997804010278121034011592978249611404684853616540121049875295597936431175580112487481522465412111871226737950045326966744216600507684477866510827104608916011054931690347480196499739184135383607588137055926098051542431684456231779261013779283315386251838801780892923231929434770590332346192157319382958347086777364596131073762612489432210792072047124442739457839916589595868554172305046820803681605979837711879649826069834433163528674205904416023021358351343937350928408444880171799405440256538690514453219873977862991188638819812952254344478474195230438032634058950178699334296140128457544580435382621501811795274801221316854983206647220050247132932257738156477513301923292273358444784878988934793325891182854273701002287312323617049065753228254820087705730236571729836505331901334607909660928196077856698648826686924012310759108738724703751782896718546498849852565252323878719097786988613710279981413033845642340773889881257913759460292630217487479234330607960298288734182959283589390138035969739053977458837975126128755434268906033544954349107684573459461799581622251535225089865759230749500542090860812213432689392656448187308314145384473176313646749761821544636900468147015295539888746038116895373046882102855706341551156797317302268649140711962066586344717678977266530913375565236639502274757141546096040707251629210829111382395391816147454641365514934250243292477815401232678027783032904402968916553374381645120676594276848548107051264324381036806943892970302696915744827080030530214062519860933006629984383983356908480657821574068669786788334536965931108761561327575145945043286603645561511836019744537794896244863249884565266959972992903974517946014680231944852454535408028410870514647424632022328383997742927921299985510240558876973260414581455828431084869810253119865555223842612687412699160721237170691787245381697647785845602206169019744823750777795245781689392837085243687487240231577475064719342568334509201650166787646643482579093099416397665808634044667686998764805350596425455983462353397030783800516985753623112795883284132603848702719410366754869385225503634197246785353243410396695011771562984198406467116004463000916795496496804597373723893704458262996884348621042311627858164754453192092630499028616381780491427944109277831911019427904846587073505635922201301699633463735453705873215521426063592975406920609786595393179612824785397716216881261732734566307942849945705426811819717465450736454803499026281927835006074243385578103156794225377464956915884463199893307032282668447757903943619594680826990413922774388981805923033051012126357923816163055248123126017856289218511443822628676092639932326645749639327261700499216017670973821658405802794003932957827382286844008772776512990348155079697332025978025028935894597425678037209489498737917428585593898576729662543427310177062383339214922149814052338704117322025647833534756364684175724981637169181391831183502537322635502205766953461131897985621927150509708789594853076866982165740112265142719383553196832437240742603016395259462405167347867149658339680119917672338261389210488145888472986812129360942062431882626314795556467647097681357074687222364489021964152861834238461008668756989086398559093878650679777184922214488137898283318208297244579561034525988392250670366893371118371271511462707310384855407663601185715949705843710116742600084719616959325309823735158978222006206521261631561743294268799392870374315041109035100776177970053997241592674366110723159003387323182487690552104927943457572407666956238190497450359874284043986013879128035213572849832317554828146543508657486383958445576153764789683764884802806499033802675023545271436947423028353700144958255926890183168596132852564191500017811668694812598469755484216207140121623426057422989930058225401549464316049962897972134368724465074014219248794016150857228380534860714765597321205280697268639887616157406423492121978356823945503714269729324284683091863397497369146120365305682624343753770289246791978592051645508677870069221105705482715630104674980460457294933226109699941079323693133501955744703437187619008529024820687958774716329904089906113073668531336360919754905371013851921498553980787240399946320447277507863006959650700427664531638804371836044020831944869124953542862037429480435127318968800833455301891758899588088582648699632977001212400019220826738930231309341574178232528028398662879313220279796242296612009473707526111786828290532053846234687348346909203046051527974520074072449394450671674284103030928854604818272315095819036165986103543212309307310377820015484637003797283778503878171663811424934911144899883809739671988490101468568434968104714050126170973761746965032895663548991675075852724175172079362830501966008717712502497609969287774564568631538985549296034356025599261494821224771292910824603196742270618731305516844497275543474529323350334715964623080237532116342922497691277903371203131598514933611625957191012229372541349399150701553952786827178993263462614681451456498531125325171305940583516701648830242764543137549898078016740674207689593771506806350978555391562837994852119586447374386761873882057927957524076226770194607379243573723548373331684576427568941957947396523040180759243237820023154314516196569918345008205825506234364953063912155191213455872754522160982690949336562707931736750773463084243095764306217022516036452254850420435044477939914674727388386561729088316555552756170277585905988647581199939821540988784731229224749326965149301490195410212097675408180639263239826072479882108018917081302793728167983758944508820489214199528447349676197724773138138422653416058943530794217969140663610241208755645760136517507138862261402903534722109325794069950202312138130586049579128735675334689633318427151898538701852563247840558193445315142840484495407452543132400621783807165562537893356451645950906611640741989257713149667183128607646072109857759608835590994096940458605302743830844592059317357997164353600214366584087527373663570673278391988954999535939255998837913526290127049883665055278082712910924701856272123576868317722160477236341972806690939141894458772672394680851531298665443814947260048100449994859414849151275594330717161249582217762431052265916856194122608115154580358933193659879903832595543161041651793434251582049450542377100522460643478730587700313894492931207648548492778038688168370298264128300429526165501228043318034800017830353301161035698344961722282690338100867676190297645941382876479413644628491697294920459858868841020549464865726258874887910637198471059657563380670074643252624571328503269840404776483065804886073111409817423867178663399067524943883308367917549562579100285529751639434042036972857666755762468359789560551875106797490804831438498097523398990811266180774043719467214242303763386988665299911462729392639617103516145495559881148374319150281241232338477333365257162812434777731396571212398505750610279719438048243747872155882563604102775866622050463669381312335653357558882646364654862561835179936062578066717684577535490917186624929914821973014166482421787480328868158828318291704833365889915121639543683668910988235416265121558690382542346898613478587312436585458474336550170316101475061092171554990181372895082582302210725383038434560258345994872805957343530831446747157116480526207016791416535784242945143785400434579009531115190479845754538212480125666019058282208993810704743889672659528713573987827531184636189899587593342781573931094820460969300205995492656142474896406663614646268623967894959716250622452841442691521197909512830778593652763550802568609342271238721582078746175241617938400012554441436001311927694533878920489968061510174429334183635800561609167807072758654227993697671701919158379437800626091214438261773226833752897633137819456478315251392485372749220223699310769876023210560070241053181869546705096640296632590946016073918184284878100635542083587350032652848487126593003731644195390192277197419190265420143487738704812753348933298258267209595829646366206197051976438783342327482603517354190842272362097853738381317691464598069888216350559144891835672001684946280627118705117104001567745674235178204816128597429523231291373366456158559639482720158561757023316348191306833320379503643611874633492472726612057197704045423609992594256092523079477056821723328148473375948909600222792785510696983386504659351000363070184720701909345528529053198944544917972861455416409574069316537678622768509488713931084710323329669787766132365877530200960937689801567269523069183213380361128865190515523947730019812829429999244622341832311939404673916595526654035382902068297960055578111869396089426249608332774950898784337918852873256552018014185358939031607110485432373459609471299812298843860801648185407846937612589470105671178686885064840177395927064939072409121061560970311893280367329452992326661533667690211425565304945574734003397383042622612662020840263067330014676990396083244551823505098756525318753295501418740005453883418804483539531779397236347994934286539758422061954917154229829636120268106704326974362947050728255698582734612294035913691163664032823789358827463086221318105151316202149586285191232418876826145504224966111513342723143315328077868148809906270937147164105914958230680795766635589995362325280577387442095582407716426270883172657105181645989176118280120733950448333726795987609220276430456451838681062237004638524551399208328874215162003645365011684876886872178740776792161085151825122026895089130878377990795927743444754749657684428187600813060158724215952682038104764019216083504757181493857169861820477320724431149451176180028384132411828862645590324898109664950424149158568015728541308580470576594978623210997609279898050249740829067694488974726887769490111562547911288797318396743185591747482166464719337890783434677169122432000355122274490079958017332055626365890331412889856988283202229793754379307743377250179164578977234402930233745724623741486686516810047892512408802431564068310381872415347304120321292670023535508013112759484941415191063958823714441374156025427427681699228004760832213440714023577841460391134090349028906775037400237703978877768564540998796944214421410656029361924543299166402794058384493216039323030337231390321163399723559165713643620563369802874891529790176559707302079594468242509204905307771263623352387510802300118414091781884237588279541326017498549944786106931675255206382950117643702075096484374131289683856179709413712581175826175543180956082314236783062337778520818612831151825146600508496803275335163903920464078955770257380450589951741758917569678807111994121699453244906492138108440078621108945286917328676775249860855515290475918894680867968681588584061187206484624977349058093466166228376309245836369631408857492025714811900849781237515791835797110938476091876763043772388532934557622451437315302015824024556471533057692152660815848606980927284528969577026998963000986294793961462972309040353850854282387072380600558945696764805627012142602509303213195825477056290637564656567447237766452830625174842599807351237033356541004600216913451541369830946601710702425871342622948103159011565544131260410463281800611544372285719208187129843333362978062528087959802336425965595351417271195640923196076672293348278964138970936480195014203685654687233134115464027908944203879774485567865256076800589634250352519378845426364003882227072466736748537438363873085080318612727426343280378200947774209770023095227822548784089241198795689922490553282351086082427218095928458804038972778768974872461767293060671109846814758672352012098647652015644348747095767105014740782236123291779544157943270799417243815120498134658034767550007880244604187644299790363847338995822504582956153891531480563656956127054049165396779466897354850423651245574499685954384401582338116411790763793090361325837061148192619341195135019599118524099385647772304124870361487187310633262094753474354371180524756812071411489443611429922703581223246974007010574200250334360054101284562828660483002959141116846815097064480573022462324250728029117973491415036309506646660266458808870772477129251489997085244426712310865862028685321447924215038621238850628622905314625488637730740168165454151706027167806300541853133954458684341090467828200561742571997224982498115181457487125338240448394316400472529356070236807477543803356795339281506824170805377354784812841680894207591699367244917937602070007612524742232894117717279127683484677213795777817620541319661817285384798104369223307432178502622939123966608948882576481917769551955927283718599755199893749579549871363280675579928249087785714258927021960606310854497839936155460744585543228790453845346196941169904093878404282233288230839533618015524670697802662909456858373266399470677570889135669122185672464139913947874439775731163283140510272235910558211746123527530713292803457674715170764735794628999912533370409881353778976359729481898937910377864869517092696273840348191015004300591063037208256700301666626082136714762046114788344446015023778184307546753280622992294997239040043988679315505089419230686462713655218639317727914675248657955139813756913705120856158337409488498871138528376949759459810762893388517399187695016512918371717022779273999720045894067838434030859741361102607752433542512775450468259511002019297045622341702719540589440893066061352507683748015100902317474287249373342959513136389317609430834561298686203523890890224764813499194007799201891218291047424534395686736589375763309563246410699147012541123003420102013245067781349417858312369674168596294309640605885126424150130159935691794724454714575698294866961175994282262186680968796905059646081690145881714160163204827927498604759486963661019399446495883301192719628174357913109314884154418758531155257270270333526832048720421053865512299363049301587575049704774794642448127518249767125344234190007459217786752571930516735279599021123971556089764975082263063531985285293230509012360169194946481665578141416144349866701532778907656253760968703108129120067899176224914011480568285629907496204031876551533847527739562930904632281322107372971099256948785983421217408879637635619246111193448034127707827270420009057602915764350507768802229997315501639038910611535321566145165914419900174552747702508161406681953394270644173880783635369607110570631195541300395332974609936506293391178813675053889276800965269340662024492532730617939199594179344993863565640528336346052461888192466640410101777586580119178548332681133669616116343282647138109171022321091537034659681114668438847820519511730550880097117274071602736914566050621100159153614218598880941498723833200046822277803058007045739921128060818015137017932488157481965725725461609524680974768100705887661745184730282897319422916219426772867731516624957667534528339964390628250399979710105634466415232369209786183635633174114955562872459702317146784188175950243867878827714129345729356780290474451489953793409138486191684621552436274894609456786173156846765975387047686574600489391375587707448836249401206926856065712762347152065697221012053820660442575472123063300058674986919530053427428654548490732948307622879643095380047941465766350721206061164971574844277285339650937464889878434943206360577193090316822195594349111765505742868718085225282381222648178984880453716341381305904935270476174544092103578567274888587510529276094620207148606103755861622328129450851100822174173863837906942547516204699000542773121027090821790816732444118859743817748357618847434082870786651481062629422094851186719300883660261415397254546518078162638402671899443061174612071425527877528827893489104612149590144150321476556322352939932638659327705487070193609709519217055733436210002332563179192571602077240598298894816233666384097845368868034949529267027264319933288048056239457749745045735718271635088617111646686583808524456708229626000555568249473098235865133117740936692504339893985842783278553443377613864161624953796651528683256763180584831306436219518616696971165801669219001613118905676678303441834074892701808466396401721951171526878485806923448564551795731576659385773511335809114909270076480599763811144729292364492724590880666188823070796393121463149330567989965329588377408164846681747974965091735454487263570054644949992791244314255674412414535164972623614950822224150820200644648126317661737376936819371147474069257780055365520888638631492060194116727477294180427109162397283047989148520745403770646146056514924341308960626096626746815684030470927657442162608212330818426685945293275315161137864281283433269305303660264773072710298745886730830300881375217785392371291703075532774711408790352013539817511587557536164416357922801448527962424931262709160708937422993391631658924154884919983346724127240299392865757544518334730319407239590661937749796754395835307206542349854028346042216936587951269587610964692882893805559174070420850500444522192086611470017024625076825574624081648349954030046344388778580932253324881418227125831673873696478067157497226768460507788945645375136288101754627670366853779994347628229136668459638673171878197058176990849571314732471452908950291055063678821142854105003634155710650282623758279397694579535918935186443860498525052026684522852655669055296261185454098458222183767217516329641007048918233247279328251010643636891474457763837365069846426592295553643214079365586871362001963673791828040778808361401752256794886257589876802260991533903580479265561414765814567096507076565699278335112769098255403136303456796847961550721206401856433850710022597267862860899729001608535070991938079229389188930191845230347694128438411874203670979077877156173326954923955642158020968818684787929267816777006055055635428411989668462182726872313068210132612924731282662224520937910169171671455179368950101939206993381870918809259786583210500485050135684605939538243140362843499215204480978076442045881737912766848730657318967092945515341266479082752230561110011409846515465728404514310639293132274568816115843219880667171007603267029425214379958127943852059583976009271264715071713459967340669939346255327071537150852065734213908983818567701183756265506897342536459057431152859465014534931403410721356568133254789174196324991435613110562881718257012897803201909850967927120411952783651345847917757357880067753250984957542188654357715977509613465818978931780672347306691123070041013959282025381675339668149885114182106538292162965672930377638899807852266228614825116744591409279796005155714418700580957031973134304341143159537355386488847594269829936482137883171298809581903564462672813226222878588843157116825619197049523666032260739894436006454740915271321695276748594982230353624539933050649420599376857613562784500379685016123693552771686818468039190679562327299674793274657070380635946472726406416618471707527400020698277917581325933424457137703403377970144587802899162315116596350847316138558923785106269353905818763409767339489787748716467578694453399381605264521909987067895311414290412196528955538374003817548168241838361343075036882552647481462851709788268167182703835908078528732034189735809629115463956249560199310022699937801068277040645555246622052416245118074867400933740845713088798537082426775298181480128161598302290965769842813375258478434120987361120449189640419567099479228475541699102050419939404122944980957703147461657049276735715537307893752223779605268830770738896588967552114525518925165032861551443326144211305081017188951721056218037807681652890506621610339106676241187614644933924510565302902818792239610292631433048092025707460527075374825436975522918306085620077356451574918349961657611861092955252886816727777907471182363703552169323407548601250312515443572939409757014357918044634541226249689949022002225704656317824982229950509518355702302922988402031030759695517138585885701369316996081424580891753266916465306839787652233486395454767658980506426111287032154685067178924030169783563241667590767465726314053771173364673405499117023669523951382465203983531321655685490678906113889836547514239165669507031057667064303434989333894864888205967550053193364452877900484986144627144250964239626271715935001573996565178776735750046042178103317835024105797688262734910813098716145676519900661302591381925378222293840422951557973990387151711111234021940102729568354234778472999493524036394372468504986766716822336564281672381830654793385459055222240281860114923979879329410691075283135771974207528181440343687652087081467277372418655438148072017543459848029594824139883859268814344912827340225594241229515258095201349714019245868058643137838431350371085270180768903459573313188025461580071704591589270744714121824374716677322875723997352601975000132542352250913039079979809066068969330040623227964719486389978079276189385070203770288638007425295977551864987140781731643546763336244188773635283217798618747766756341309455240587973975875277781681575154527269088951231465251048489434405197430592509068915295254008803254655623641111265168645193863299987381430702055349897355353249752165255580636795813246442212660237672644845460444713694860485815672346464577693044114107878634312728166318726368544091889599759722089624011889757835867167463260081125566854868343154220888946925431302448055871793566545103195792713564704473721558435130771260752914635633060734766629024715551448906912945429675050457566250168695088194194145227335449646018262316231432017100501606664365192780931288668831088832153219041088242193051285659524250684941383916353530974190970260498390523066907423279771034448122711884600514249454132287131035622268491531215302614569189805433250324704670019231745039575441785583163255070576719947131059658315017010299778085624430776779725420874121166179996746251236698061016729068480363444226933006071889049763300661141236453786413638007291297506021472652776310342835987192094554840354381442307300412561681581171940704062002650868855497645550310550344359308693156608590401483577116661252953962287053302008719934517002783095007726748546674493715421963003817187443309945055743073944264477451652843581460031803535066070853980152989223602685883069055217053995323906993667755444729655629027995237383860044105785727748731307791898601190118218490631928547256458870433745335978694875732288562734509513850179388188489826764742307390706073958356285200517292771431856528158070939485570826094834463031450018037155186248397904468400512768050770529610562858423743566940153558730465958223657102101782936364460485136486559395415223942662708069033799742517382877401103213171601453942635507242484658218943291892775347110548946528605875722360542495613704510501137915778082418679777501978847002970159395096841913736655579444854005901305641097385778715039540978201945984744411340356899109269610574787163999535576611632744016512836325697185905323428134642927686783455689745895723821603089111275767410603925170839618544755148874277301339147617622208280928966194385440429176531666370016933576772816894349658520834066164640436313903415209548749053943855457672585388247563387201151623674720983181625318044620957398498827880456318033640380208549881521498461589589287633274843735314225038993457817689888054095535696345278121900578375033586602119554003572105847101045257616850508859040545205815170092121568857167100506767297006115072953648630964629307224999424139079042621673899012110373521708033742723397485670899761305790874509071983593633390420041566995193097793254029704180817895628046441724612943200390336548880828602039788558241010275167108066648831227495598033079195970680306053795234597078438451761422591388390522989773836321043134984538216972899917728617343902267094043818425250722578144865566371854722959408118439656947978311234275069393864982588780043055754357276414307652322571852148276934304764471937551830713862357940768410048236142812201140013511860125562672991655534411553687305196392705154331920979814810612054315747018738534046412208373691072413188332949510171001013922078603174083484908254991230814775696316909779574249420945396275940808699882688035557123080172706987490928877769169432693447622024188364067907427224632124504965009260043918964358397608737683915307959843613165364115360427876219794232873901947615247782380896638958340793898535771554795076042154246582020610871589463101536100096828331817931391114710657830853597165152069513273703725154047791801892103855812519955808741403617800919106087060678709697624334945433457011729984714232367764989132588196428419026187474168222245372718452098697248480212661874137386055659284807834573515586278210232688145831088028830192998930999110986604823056935569025924934523791549097476457278644121226360702035455861027612369967233529085894203045410086953123119277849904964482579670561872993514802060408516642166729870626987358293797833472250080852370431316832970829889892120001712753166727542582440691315221654812058111073476393224716500032374445235832720060056581415016846202179514344290687136863164905457817117550837044784891153698005139597646645594201885764582730615382950744435108604429482394930864995858086425463325232308720370251967159580031421848402741323819542416798672045371651534846416475919259174001399807707879675949172983598116602057829735460682580850121528859151239108062813269572399794707424328024176555229494367342328505889047283268752515927493740056022359869799651208112628833256054739374642244986399951459286860039095347335783197834709400861936711195201399399481623542061442052805590253358908315528511679607360727024358010566475966135829390435472817549944824261670230981654116725599968423956185915583520494969330593121949772997856691997833496182295739642775880573969348146495632539313949839655054681444575147457556556899627732358729518479176270780830099650997024112660627362846451776254489702304953790346120186304806665857314101991159088653241037761912495113949606353138681291930706549890080992781512065274619457250081470199682891601586435469264320312748156129027295858354544475032452757731654600595156998400027179027032260325257527245873667486765729870989596641741848750205323836497382325865145659851906255435456432478280693429938696006568926141864525061736442300638098624578870635554900976125170858515841483565243953288803957855157325760902820285035283851900351144662241431582797448037203852282377775174048646960249216283948244764509819569508273319192250204904401404001978292421318086953205405456553574722632965143834805702504321477871047783847537175953550203533333439100268801833684306338843655421294329182451374964115652897412484822436005340590278102748019041270919564242758418292067522819273362742131503020988806207351171420424472509869828207442224364388502744330729782174787817496121583954836609147979538022835452906348188272303897929857306546768810393639996273767147013851216291159912129160657697883765662000995772165536924291692804037725751230892154373734792938245021309402907930819566137412390293613271675627599869740811249161005566160489138218074161765810630051899124175374707784973461806934526235493253267956096955323172994611364997123115739734026972976606258884444962846882865196077307546497032660633312026475205304620420667668523251014111366316888114167200003459215177461607058546164699462508347621015112493041049088607153159326231751771359826754613800870392403510977108211103597737600340561840776713862535984203875272179395880402866686428672515114161789761992171791983841518052802723899887727909294047003272798837781967369034620765556725845306749313683261071782435748491864083782592501708727154523444827515564553442972876354450784933113631011065881242766023219934724092084272674994497734050849901893674472176004697164701173590314519564862591581421562805552730041192213721869652720162640862777369149493692125867983186867052518003911101170433046372505912390667832718818194123206523430337111215701840059591626507197251472576989959560371226384837866764979131765064756512730343184874412684922156060931878618670347159770156450792208458016537976192879973894077469762364658851764799571630990967104210001791994495772795446484564093877551865947409738219236108917697644876736326151699416459161493470191987094008113381581981694200714671345254434997389538641226704558440945519461327449312705107938284489645036758744343317531806968633804312552028305593165994016789026815962634719746213869894587875658474673653274697079949507631104842007562228318206918871842750705360287611415745690697680498152946327290335371599594536615902197360767037557881234926168916136468525515234490969527577147350817439508113338314650892324871296642209056591309785216378782990023120890924246164332758786504488949384447612930848682457456285901905272695435540807579843244059474783414229933962984322684385123543777815136715811827150820196593551612027962141462860619276211842408205006708408144492058054179403557789880559979618281546623956627475838254080281096019688609379143115370551733848432739048865050344966855017917247351632904188471986615088536565604533616903588478887497061379324815019239271843533637992011886854514378267419439816703144358941286714203849930375371278128956272729383433993157520045710643725682398039530882815960728007742684026922902765100535875385293961535161338179075289607180666294094454650305938853745935707290579366381944855452326960536353979407028323455644362622458317129802815544828273357078741979431647742643449744702736889597716267966575277497531772633448839185827054492749074447036067119065442326885719110843638004925853175305117408340335438845177425871041161897975372555472815851176286290558915716841912865264042489386668973695270653328351168190544179430388485734496346032644083311264227364601128850104803342612232491964540255107677573296893395349256792843393862019618197543341579776063452242787572743957874393849037430746542791580187410494465804350395223776219292525177361998569072293335859639415118443446082145727120303563767627573536864879582162505399038173413512088744476711647182122851413744275260290121759098199887368304984084415008968888301233540768236330761466945218620399546655556448702967083970173801711695470850627325238615672096698688958537754693157222095966785609789783324634017752723285213933873224130762874592295278445789811908154086937322891663286723182241805698146035496556448780832368031816507289513581175688873186694481142813972827614951162795581584273549253135596139464437214089087151611257268913328069222528059871038303241822037161771195487976309354337076203662102930315430872591748113214226063514888129138464154003819723272072711019569753514415442368211950920717890042491732656336359411298502464892365070858203692606704709060651200755409065667598587412092968515693681429184745434798777202296003992281364364113013267049238951093640010498375517627989712469206357735225201335829156547173335486221461000809993876425175542161472744181366749715429024140966864872027415403805686320173288616690463612623149150843175993370153131806921200633258668118645830628271340474706403862086276756485427524173775380569558960786838654856723226340549810627213428786042335532558646813177208813803479924428465998539363169323629963487478003047539880461123919782913347696631593114630472537344595456537180244209633414201395354477266071348141179826529351926035994547673808379171532246372463191109105295835684064744693114265117767492515904895412524542686893890384629379990546984093943298535390364954556771872413512398124129817103682004746288744529244798705581385295785190760939864929619277837521847892626063348553197939833837453880286461272894721881455867867738578145440694339599720058754726841978874267452569854128170390731624660031525458858929643544762492130650657241041235417703058868519935959280696198088615120406126050822617291692883016986193964448175823597513041501171627580598242091801551465196654209522262743901963834058410961817784633696321009270846121281561506260970559962579633627710983171741639699812448063998071554485071285126323265157977027356989050269292143936087513520822742821116907006775487344944460471507501449101526518183683927223793193294832696373935739858317929951581194177753403506503272255504729778913954706900141359479670764461092838123689209204049224226252261870577799813742900562039791568809964240471512990515147668417624252936631886211122009769194590791511162737289730132898848244331027568278976001257185114030545392627935437641565970162015068000785088892563762552193166314843561427705913925630780045649757959793235105200372449529082360383173141761507591904413040319017312391598932615211367773783728165226762468999793129597711182579675752685637054737065745757174162914480869015297013086148492567645227224225575954766761326187674021207116696138451925812319684703228825082510706422233652292041981469317349817003158732071507445550282357950039227526224076360940725965710742804945034794314935622897563631688636953381960151641115888229213613417995506965973132146915278724186633734262874340239865064269208754076858772962285628203146132797948459058599840471983022650917079621059617865773551294297930909802905750540257020685404470554293849939700538700612455993680392683475044857970557069862086647714634918127075851829803920356351550811969606050552103627953812279100395858632849505957906259241453898374351369391015112225734592376217441260651642107782392556219272787693072468180969970369073018728248688205550760417583097467131709524407171232174698612706381364265409192644022200576417461986940163029858358509907394093807220819385811436477212538840413089900683387326622356814135737660458449115395199613531822840900035290754564684952675878585837931258247477876920636135249238857058345923483570790080895511294311439897883636783045603754097434845364623046370072021322881103397643486669642540853297081851765974885742427842868437496744862838289295469482889946322976295736384890682527902386218081133541852329937091568645611584215928212602920927433052725639784467449748909697083003974562119754110309538064033364443495121757372914556078274286844078199788875558455852063469532117950791644669537710352709766705832815096297341398775701289408584238607647539689138829510754007604449578925401920818560388806152076643021600287800603660168164834552119808178544944020166914102123382107295002979211361180492520727995670463544185338275709053942803833954542006279975271545563139799332007353400948710165069859088050859296285128571279922384946746988163358662064422640395307535455989179897218832447997108284772450922451264296771072945757034231958823196457969841160268021991547174301332953575342028399915615186118528224625546809068245244934700743574505608130683468112409654826475018390334359392694206525380877580967654290729315991937684335786419004352752178324769240563790081253160710917456071222735628872950193295422535954817659404459568728326723315663595908151516000081784640984542063157600272513431756106975322710189990694166565024964109422699625465628112161797953685875540081500042234352601992577514655371035578654906284750058425390258247675047595324933262890404381684873662032791799203743708660016183708302534098540422543643837637894029084161472833825194823266918138255406831095551863116336814603723118027873200075653302811797324306697227907202599032503477259459073217130202838269709536901877944076841074763122077683571252065167832448818120380725618471721066285334996973132143025430058217899543842248823906411063469890693798896540533880275988373925986143389954274434239656340586539105019948631213204404111658606567621514220657207179901491876223718823021657999711712466368947503701464671635509467007969451939742779881114752679775401845765666116827800381954139122175010220596607695181932746011310535383610413794037073537630534834904241793747250341957965763541850134809401222858456208854493129040499500750692933256286439512925741252865134605002205138712909803820800012673742885687536180900861495312252820679807112775737153143685424711693404227413344206899064496116752372926919370193207085584183616858282788153608117817005307405145593790976493459663776510662985240466057946400433220603355075212795045526168794416102353933813998717688221804673687250644086905278153382937238087164938707312117081204918025082822429691115040602716888612554581125043752160907044184235805277229301520210576872692134291047538115610868044979899949497023719698932029863405843438836689737748184942287428639780965300812769651926770377340019382501785762725373549320998729309020821233199536711945899560971235951668952513309747680445295264184570986669550412069405281051267945061031509924367733528446338923809232561928765053729600359193055132330356305480682427467742431390589322358094214236300010140943146928988896894331508366013808025095411809962034484933842179702130224088584372979688975126262457522355185755424826014247719478155435396714180353519636572110025072111580284849299299931618402143452016684076292244387245399883402118799826510810372417048903720035735933308647573629800547577181379750466208003139120559656196573792287312915165613147388372064280597178058339650426419077655622373600460092491204155906936432239224742625896300015308054965630260919965069665504552695801392034890296536298095532166929778761941181263061175297910182055880384391124414548317051476013894248579550717086724230160307831487970271929242324216233774939328539975802089227932253716131706528139094902329407297814969576242317083515708370919038584837090802727986472924557853935731413115870010038839780646071698135945437382400950946364009950121349670373245842549022991197580822384775822529535937080549709504909009955915703504137877140933669561649538487424813011543510337069808432066464847724650237372802072560019813685096978748466027277217097090100047020354062027190940200198731899310327223013203873097236595968342636240100653688704954593781587433081368423032841046764093926892679854395086456190660418546666842539579601454248621786581097819688463403539064417643485084034839391728464468669719909711121524120517282258699945737518171239176235894824527513408834505917840565266486257271391456551969542638451023806916738759705009834696573441969245351310221141350021846362815224191484757474679282331492844343078026595731580097941833128960081694045385207842835108378462398789700625777460617499886329165479355955230113158283894776081334531304411457709496116281381035935652240150518018075425592091807434569310594301817963011939226386425005526714035778220061381797217434225751763245814568367957749954290298372336768779423309509608368010022504391182223575912540105619488851860016874798493486597572941035013424414708982239874056644006510116920161918268059463966976312110950422451068357955898557123823361180413763523041445010342208537002140658141690586361571481259547267267335209477630702984655728106567013723194545449534016095382589466865728586051026912326100866582983278591722119097278873210529809675084369438792880390081896481688495156635618149797306095220001298680578810721920712089833329213425095721667546901867626237721751615217652902179659414843101254189406921922071866560915569254691595688814304876854815648202593965843935400223319715663495402255616393799730212108512532354292297452095916239811922102928620145330391899505582990766109981449666174705142921624440078747908916896121964109225711543260972279936880568191497174917920102216692636494870081537202550594527569862406007580037686821941916128065728069912051458366896112249023034073398150906009689791706135110377294989176893953627842064762811023541459658845244613220256887845885230816504412727786522110738226921792679370258942581053499276141118493267928436474059604057535944859676331337063853148533773661497660459196028615394665927081661668131062896708012971643215069667768801514420141085725904079483625072272924783470582470499827760155891918551763320257233921562154032500965542136454466215692549272193945189878344489453465617718731602491106487209879163456565357225710133258264446513425150579968531779023619536715479719674430670058982051216594202008059957190702332875159974045912863172102703090625368433608094861101375559841547431502204097995658664393632691061694874011561790655848548197923489625416846653296619101366450114022159855580781653500208239669020195304933267948837519047468731234995618370954879154104787789603330354431334077978959601661565210277410381997815177628313693218843357212925440608368273142687789577575988387317098791650460689692422054567521619211876538400041879123753422270213623126181534032599824817089273537960878558896483662658790184944226185710328882350866320124568613759138877779023857157695322403345312897205336052617610262724970547420694358763001229189627492335853177354745514683822930064084341507077562990988313206950767760758401454341081794323081584058145115120325604671400055679004813902497588962397491977798842516543674954530315072059418659520371934648000435422671110806617859304023969371317510023256313465433875501213174407529711926670327196417302705285828076163042948643640926190610458477327883086318128015374164605819530530058895962896976737730322034479856073771318352523630099096017409822147412454136733678876751093019189223377456769368632498166092806176146797338338844779690363940077819124164391508241518912825417792773997495060906367433450457386288509147402822392500203222481614108854922148329215752736598318342840332132325193250773666320649778474924807103413689100842557620461261568293489856984118458592277904690983279964073216886237173108459166251859246829054663396467309583536060473387253932273060119570159304122845159659176884430987250419491274481284206324549294973295158708128545821106504305726800469273330838724556842564141487583391146016273619254560319399375690815048261126056240759009429558384522570911466970304794517872272409128218331779499038350183775247456599533237686936316798123242625047008500798048605869490992921100698979987900905736652276134818870369276709727787155223373739465936968859922430929705395680239290213772409299646001434071263034715540071358297656913509937515848284480471952549406427056512011108202436552036044526536505315515643239376340094889180187437358126439258225221109072789288336814164380740983100852619485612021659495494356821189673704366689487790346125632163423502527652462216920448393533310232748118736030478873660743861564109442561325494737570680320572167133600092019066209604416479333898077048539901431087277770674921791587205769678661073662035657842305640393423922867654142345530145668595607784015976642718959822865502600962476524674279322382691840547413590924891267836695307427540406925705794871890844832355117011110562324207207120582830446418399083431336810524432790521609686999864584918629666874883246346834074880968475705719526508085613801386961447342523764684273141005160986139595994306290016104669598978763860914289568110654719610175287907905288062799487447077550358596175953184300429262143246158329710749656964612610620583643804522105699012461786815720014604080638520612408863547743127065179928771421986910943605229175416355586501243344486043280253154762944314819117978865395435051993140151986688347397394833816638493114451779621517539973459110688073789536610046161500527235743137085644959566963486929947449037725096489799916139904084561353631610555110683698547578975415118480940265624350560249137021639555939615981616436242813234922655787095776310147314532821361218145653206141804329087699099081542520401988088226266924130560411444763189192980279792986562769623184432886032405023598192459010412896795142354057475764291906303967317066626794298363222506971646950775005647451023809863758562035647382669860967019542494639519310800485083554319035866713291280513396055611626587308085607067457536518777302934056462764521308593247759708947841402753115254096343743383781270035333246326318449946394676868986515607866125906888553341883389328782803814709673205019846820431529839572330715460462055292676239046538765583221240438399011248849915007649804695278334255532103197940834845961447252254435856856782073203938473908002464897664440091765808968600213011623327800355033201867777678079445712033799337475498394744616631345426914307245238386367876408192687356153503060509295761676774480305075254044208882915069846640946447751516429759841738490045367328794600470536846987020262589320526342011541809685407381407603571243199015035621552981200343375377992823449388547839690672964091876084679610194677356396277268598208197959260989973784026568146262205402171528179891133760783350288933254825703485351563406940121724161596161396731438346339990743343032279777056088464303202860808767203989957338212658873470060863779608202261620246709472094953601867730668711945124863382179674915234631877307140812294320510429818618653721427270338915503903652233649315818064546495832269960925193020756742435600050546815072551889559951520956185015370343193994247382980770715897133710552834737688216786815842206985937856473282964433127330296095649571715154236937447155639754416450081668338611194111006515252826319229996265185179642896459064077506334692356722482837186016638585955685694642651880652486159552435788676801875548054434650445207214234993496743703782223063791842882474070257551940842972706388411139395212620560182185579911684500125892581059119201953122401211342890705637709465710860162596379337980451141700647084860709345383328119454378559931005631685306819967598120030872229287187081956459936420837833359277178312549213534433945080658136955852729779925311378033742576681719267479198484293301714151670398080915817683263422499337549863908652323782755275342256886108286882095237655125033649043993935261308381958724593906103887151018247764543528540029929589226748971006287642325308959440125419564242510567769978860736501323823045074218608584041490199003683961501415284396961938123086410911154967936610456946605392335912046738898177403771747996542372595080826025980059098604662982664288774367438537909108151355252928246669790426548665369506477475058051831737272212977261604089993781086717866966996527069367800931928927606040666998774158672556280321571433741342535832176646390420330912789237395206870053939679126193010555068561365417507202556518148729048982545407567051938095008989185328085744359360934337493995762612253264096937294282683598577371491964438883532250762364763459658266430841484243938272061082754325326698631962038807640541198796454755523654821642812822171284409921589918455768673204815975714583253886652222096213278666339346739390150851260719238985638094016302905564033035372362090665450422354860831816724403929830228637322417174958219646030662897587880065742226650145165355926764968866071180584230064179218102386571260663947554712560470229429417095781621842532188716321389978698945967251441279603635085474897756704653211023933100405324173902134960466638918686692150816316975656123773957471424598477882102856385411983711834639470924389443525932244230557301431101432598200300133851593086904963455444735547494185090968691036004138289675522663851297655140177965420034470461863327566936944323849140189571252505773440853288676487448742729695686481031660738139442683638273799464315003887647133931503499217818613831365431225517860547961144522732614541598548076363932071930669410098225955247068642215746622627423120881623084176699327954025101686634784631629170233285400972447485811970700239178640214025620390241230232970955003830190648337766575349285962870434371316469952450521484253201890852167408360991582583599806798433998301268851718317337142729763630902774298346343733835480324338080980999720429442368959797184684420020571981598002184302524345509333672347645896971277719280953622478654881115484653903683647063748575025101820800012508264235913883437679659620699531476490215283480572791643352324321511945935704301362753328570913678011968273784082099125377887908898764149146943668674372714195872405403223827463365729725920474221177953374147761135561689417162368989307394501094883871506194734205549128323236552044510755245141901490074618001022417517435602677097572750696005508739574986453484662318534918910760372656168242207825637430372504894376550352557921612427616102098589208686352796878956789044971568960746352339129341295972391694417267743106917231518145221432433625538511382278958652281624257820282450505051883989033365478557283126337384359447613926997001579062514152573938534725787818041148562951776632818598538548147717391380494814872328299507904252357995086387178993250813342022695462310273476726639428655254280989362917919456653598367551914702357246427729339559161130705555873061422478347164279800046495648808111831409623062534753333628909297970611425227272358510906513525666330128908505991033023046861408055687603083355613122317958979177636636234565891822406289802898064936794562589710319575624517007083709252135043449697314611941173046431218361223118489889155077527848286832084659129045937396801066390595342969392755167029444519390900377204180895344867110793825946537382431503144146406077924984669853102319445555365473834554959017192415433624944675896830690921966779576992552270943241860838365672162407299586604433487738823429325079810529121412977560487277522665233799008254686490350316375772441633563718381543674134683352384535930641084407906224250273674213013669481039416571766176628031317228921211859199862244871442247534598411106817605920001458996166858279249935208533103441278665819881030159388405742187555575993925190867405723456027704477034128309148454947432155244923428546173106486261860828188531880047909641639290374042090333391672450894731846935435329527136748886453567849360514891033743167233474491791984612185361574538101699497624314242178669295699401608190941747539892413784893707804538991856919335848941517672836715405573743402186527554841970007298278337703110394653276632585085785287949663901677344124371454405990151877765657709308731965098986317829639961185449625017096821538343046552900262699606959822529515183836465617889264177828027207123763382481293167500155917620955477296326394289291478080881044764625862908409198519436955537546939456847550463042717393950447076712870248178815367666122482290879505477419413861075853737287695972783185391515307854328563027402844319252118598533365328410730451252483031421433602048765997423592578880916993749551796635805957458163287396555701988147925127763300523993529974719645080999585587790332686959832436938575271096834024805584796544188827468278084607167165238873373319818406797488988378808857063519032300927821922501965100395257592631785862554862968853178967025743797488686712557809932494022749752601418086063445889566113509536356953493847074506684877458501188150523470792417518260460627049414249135202820794316019030652809688838580346214825288171211249451092407634500152217451286521443165876083546217433414001846257706597786443237010693810731523950786214653489012457497829448647821462990478579960044760117039489248350282402020186820797881513622823562168549620623724342913736321668742429237819085743071465530562665209446802844594862958807939099541483339684438437597492744737762674299128100406772853829234001597050745844444799840035810414807949092863539795687374205838076468104166058811242242503261846140316878335620654797727846226178687861406096054673004901373726401023483707315822782122453380402564975585434787596572237237176198242791128407545671527394155235543501130916263523201429865988548463474324781422747972507250001786991881065064904342637998857990506228821007469704604533303997290666348952924327518587351461874922047735801301962123623971023938040256191711283854131891109620460690149414129825307739684812339396217508144691133306288486932596288340773296929857726121795808697499844588207473161770178101008334942497798036664165772867011694121804824833655248863749925485690865938116868925149149904775156674738529202112235479559491264022964605032901579189640106575147627281619571007329344483147670610876223581322714468473769422875154581001035463467281130149596614837661041814988177110884336607535941397939003321764025592899408172295718252175054915968595844321959242102508800975347015328866861580787527494372978495096977332672876398000590776652095938822644300941379823462055796968213443321972664264010731268532818122380595795820818509250882496755938077327811470787133593280249557147936560398488593949679326160703929463544845272824728855057575940762429084857850973328761640502276600303878217023841711031479838826933055894351581553476750343920123026115257848518168765734167874329209263484116545681095917564701468921734535811379044090582842246885939483011408543339156138651561139692933154948587029406283822703795084562169823836649865834186403079933777417445550721148545903749967522568597377502305740003569592794677042553635710551676554555305886329472698587784458876123141140060366997074343606589489580224285056003535137560139682211708481722002727694505633983885282493066479665131107228551847757671817259837396306448670660038335655972719407303767980206718206208727236149273779235308535576708656569110913045226685886611951213122655863221136219237130350851485271056224883098273569140901553753190997326024273682914419020799365867162208732267223448926944254160259861479839396794725212284805081769957708341907284882815882520612823831305131941021768167190605144050715944493470737351728568926081275080085881360170371071138860213625719686230334215406689356624828763163714737051193899962113168770330852610914689398692836003666551174558634371879884051873573677803142282879583153914889446924182564615783223452068877713423676385425613464070661582751848555195165565788287982558203665340881308681945312812946180787752511321876322643495544444947935755984185142107157901044995310925259539201699552009544625470800028879472281959828544092882508631848250698793059292481893421536322116529287431607125618014570447755724284337782879451700006461856577040170733812320562775606819218101672291922056251229239287030796829213273639207143482819687252658293916334204882667092420723345248025894560977393135513045663681430149682484267868445230042932527686934064553839776308807519111755984892180456550932978966128523687390221748813945903883094292140324543988389849004037388484218716120065409122714306468782388313246336041073427418055320887981382779747384677344126378965361640253679771115162270657205519610468426653491388445901642794982082782296518416823801356579372315200381247522234239681298621247505748619766199351575240553104109891122083177337533157339827779300251366211644083395216573900208540655203743369186238457862435451421828485585404894216484203234000376038949389665590962566990528510656014944158309859877919164641121812307097514271150188472000576235345001688767771287585683803186524326869870185955801768112524942859525360105831433453335986819358165819413134975665837398004053858619091948227180658405553495562154525224754255322888692571276165876916739865351668677204520341872051045820843875489762671431161152061836299767635819523860966218790323593081996721852953201489449216590082326035778082505220698727980170359475076641044535364324787215255394320568906713493040784609064322583034027061855970831369707771323323397507101589902740224204374785340946250532399930273590875812492105674902306588704936120097684429220607659545241352252384376285136434412971924545074839850102704462089393191381315447091817196351363806602020185610215315258133547671160022479064225756937775390905947246478810115229431884794107467155310033737223463787099742553508928685336730656744749746522593732811816598712376168402455344685259768314772154155998069322732902761211468585851102403050160273253500140175836021156623560167484739011633939253501339547805147890181915798469103374835055301449621445342387516571337021328885404130926846370781221824381335847566422744352006305284351424352332947259574458968517551717325535418346087564930896050789587175981506805720084406374394852781887492921395795221320223857166966806440030031178334667706306585747162444897068751964207548258189305180924216831681106230678763038997927719042488658299477357296054351490157131264853700900885253759884176304610470177200983424403525176584965113711659401431923461429506340836139179376592929149726701907181694212175989808263031024915919736689912219113753220315483938278324201974080700789236412477728618284311531048809996713556503651375545736911869342532720871429948860262680104897669932974794449792428188892712309228836303858837134875599305948211049942590832921085321871491193366824202299665579163231121138465788468354420149848408377291927922711001920413904840453410853440933713414317998337907536649626755828693185857577242654368173406844139504230966208480485651404099669449482147073209449073249892104301745159407322563646220825708393572221962768454679291390470512830902058497424229000301135067542922767107408905660397429481378069428776573050528659939783408745248359490959831197329363564709621257260805514582296524315690436171072711770312672940062422409731182253537117841210971587453935488456926120451696370014501911297614622958840555334870884495398931997700301576442711128032199901543788204768437773935249860995960574865034472986465470318588344235965235231598230727762241594999892339435693742641078718553217850297972370329464983895976929286286055305454703287628269687867658605065366937601344443794368641129346795955325705134664809793283823060398932263578020005345363354992240250779107324537908168761073054801313476820059766027841967205017726984002263585772368140826784247989177345319773387906643967886423065357197119101753641691145521444601480272348691736619877499498657611778607046735514484759233031254666555756120858915806884219816695727550433127515244456036828274259585625960116650006503192934498319268815230566696690842945927468588413394902640029086917304742635367108705105171635686671026893912335253231696717344445192735888815767943634347277339071755005082500469947644129182488514896163625061872317776135199694992475949169185328283345104700883894633201301233275581036404956590685295937224200594392999946978748114232854973219996627657864484551329639918164792019131708331017253644986190000811775846210877391881304760040190557194280309297929745383194155517097462854239374711944248475568566975363933929965302364835791925952241237108261210228013129677263409462082267455918175959581546594282555033010807177272751385976596994515935782316861334820060366977929466349579005740315954202470245099320892454457283297964017396882498541348465181225890437774907073067606853118504958005102831650770472765594558603133414362537350628010941438227997679297858237887699096038179384316934306042138372500628216657874550260346862241710656329128382342014460000252204313592353533447235842937182781782984505783669734154817972658324460010943248647582825477636163538584409657652334706305245351332702873929921264659179164733486749154922538079520991131040914967858965509682170566145842292393177330641352057641895238716977822968576051040824061038681238361132102679641942979392919557592025643145483898873319914259759684985658838184613064881457829750306030690901520350567816381974906209876376184751517423151018404988062177105007257928131383175065454459580803083710973977792474547807430769624944401395122184951579347893858346563975155247880633053140333727479951714467854787959423521461179999490713945208177825924756618113619109408230361038045878007750755244615637973223853002539228958069642079487662033463157751157811388812131959278204083777044197765288267575906012224687544720355791050581351710860425800647664595856967404177550278850734078585881816238405013595327870046343371841213269170386929911653612073217401900998567973234702882967225374831650707521166746525198008669372143270330201451008247834137798009710703901820103879398768027702559169533290223485321025468058338212201046753218686034778961891265869750087464402568317074254334184714925909741213171712510286950809619037868667193486577358492612764931718180264820494964891496647980348886709045312084213416412672775188177199910592474915144156498721984747989864398422763256404723876788311669166639052709065481783695929437121685625587119944770903706559998711000591497400308926403923838173622632542632327918237483734727257174553527618156739975218529334697991768335529905247235209049583024442883908336582522342813129231260696061998546270222413167074195667521855597677230282291035859439392831067794535020641170024265428373341033707389531778820646097059513518340457403840285680850997767368299732576813300898901107772301026189834109462001156632601951761508697375921041285573545087485173133071146878348674391428451490451745384156732007930019504153813697630991876711774857741743988520727367619222714370840542045479826694188264442294284765371002787469937916277050643456801359055572311555881843019697222011139968247476979832393921531762009614522497840926384470206572675040368998723707578909248848307423053203031850207679801313098624484673345318092839669327351875867655572775914053819511718249695659136117839827046544463588863426285470057284947800980972481416213022473444434263395452588858764866561819401954491139730039696672492729126955305893633050168559998200347217980198807522229015447964418508033746513027957820503283229402227795795358255530451389273732855821433633718175387486935087840877194771653513597110280456444804267023323989562887823956082778019960746889605220887164019391377804923476786552896961064998761907977027058577333498998409490204177390120910211178085210167268692212117423963969746434447130293045311698203660872318695664021580352490350305198589304528661037803909316675068213487807835796309635652650264137383471035517578062530467816564584085848504196515885300277296325385482219003043393175391298423862775281641534013131062041904109786467834934080489086068088146336707273673954633322662310277083142070572885764410505303466406792157699139323558960480933817224387016218377747169370616483562982364242500946901641116926076137415445291223158097782183935567543933723013048330210569535224100368345771376913103748234580329163331291772979380282827788499341846811496270123151858485493819517738302712117053178720564516778565444958531063074387066758553333814500240261722738611747338219742928494351898333207968015157765706549522483914191852249013540282211324313849521763469306738601576901067787694673201349076414923720126664775588629155907588084062012317737807662243384783973898699456094902090732709150385342270971357427630624928630255853187976629127844508089977176501482230490274128141228341715454078541564204106763904344000834537893903566225131891634654245284708412382734917132233630279731324707058377317007588026134108160469511936071496390298375484323441728850539806741966084015321553654467850057449705130378007112623628564985763799235827285730795275460949273256847750694152189281258325503426010096977822868417348558947988388166669412212210592477150145261942110029269121741695146099971845263575430880088546768905054531513952320789492568198064675155303206685480031061949375382179810110435353377584860457293662719304177201968170753155067010628367175466979084628057292503726048793940079833787079557634243959371906742166425384353031026504349800848393735327971899951595115927961510445663365483216170889888209329154635576543851488122530759830050738887509546418773916990741231069978909244367702020237806183999324447855232817355471098503597250541193695825602205074284881757714641850747951610518041891894975983571922295488614044889606682710890486822813142606735346281244269197825956145334087781466250792548159310485803027738224498647109086705352831655073133631332618583105381022291760880781534430285201025047488738752874529751590148085670613870383409196439185548782299452808457553688891598062360865314193166779507127828494370009255303284693821497678451616082789030154235289760522574982964977757671329534062008425418929095624317063672243809645365466577315346065956033688445924505547854529946486965380351070568040886728814943254434612310376816941299786540159840874875929776361135938495354542844689356887139621902671767061903642996376219737846659167212420849587727643689549894481359171627332145313244657140820493256784465722815332270413980924556709018104621757653368528227915057374345935852484167276994229077034174910427031844195802870143752376749326453763813495184002774082446183087958497377909088686209408885890309579268623096247949452794886333283733189091914241935779728388304793431778953994462661189860907284765626549673835303451946979313663397611802453959023540326111653357976384443552251439669588960880936993358480048024061423327170613875065430055974853609110798811901405162570377203463441449407598141771437831891157991450253023395756718762851046450538412523462101812548646964415451840005719739191832247741628043754286655689950308930487073026436703517109574554892887737915832088356096708871484517143936935843733670833726852272548883694543352058933618259809609858622647268694521186380995290933186304469191791748731374737710864053254803485223812199815872068406261052284679041575205545393474696209764998964602599447280760887249265170028087952182167241925873641442798152534847999519887089581697173417875194597614871989621509704729148320003031437795375674587985307577527258013315782471884584553020351131875863262028857231810029314380867563884966680920821996206571381420499206172016729483671682096559336589678847490965806036851292504601525865007576990757120658635995592384436329846352182627200426957627752085408163088113552544283179025559212816692558258378553937442709729591977534584553500815719443841650745154053810221020960468900418705553082086882482706501740211416748830490701630680027498287477294943398129369099664625812386561673486991370148604599972676234590245287967011557147451700112059533278168025100724091884486166470259432704314896849025448896045424450390786661116922193717131430038202538422443527188714388849401127775640943980265370467456004077433594645030462547249919866847108956170013597920611629802211054007201580739808392079854058915731974511015803867013824936735571228440216370223792933768639302050949102922600412098149461446675753019075403643639857593985867168703393676018566273899622728081638564162295917297812580920344389026379225444750733020240451022175275025222322856134318641394807233222500595773556163653095447890447983784753281343233842155359284199769055957347077527520810554120574302961782201479684876717329131652096763581879389107377245559010052505128672682671150186335202299567683211397861275999821992951980688828624317322079293067922669641304084918366134956457929829506883445775102055247641359747433496608731722660284389942714540907576035693050531474673947143323281760200994636938036907772727445559273287056577500787217222323335391849612486993603248360416788334755589286328238895828502875123440746281188390615573938592839228317091700589506651938000552026211964290586258649781399080732750582858530860245829183172566313948235545545199148542787318381173957386025959329420125751427101020453727187788984446236952412172576400806116350587133601266267953864731268615306303685770239404239391840268508253797577483413952146529677404512886381966651343904659940441474587718029096836831793148705452981858599945040264050180123429027096158445985891455084326228662228240772547001264940760626339461641363173368363928212462411902008367840178782797577342684399246759398675457022253929681791617041437085168081256478519271540081265923637520407638832184163218264571648075442416428597667381152154348605496789282624377286863248385036990363633314067360840597151924932114427349783760212805323407276995338403089915318247147363544266814604960567821230972742105930462621848792738180204759335787038826193694725759909291477176569455813707431358617515666516412088051856648905507335560348297415377651119222175270836591754334067792330673796387416250138435718620655857579763494455664223337503001683944336781571409504276521569625277252231778038260621883675770176828124917048906463505686939019763335986262791551940327378644121102868496575908264882021778118691816178929730525172624625278994428494881560961673543360554854437955701997137954571581161086127267930791735233604641938117780545113018791263240719474556178204765766421306172538208491118865654438100547276885030704291077521028895970556136191939026745036734277518835035838929236802416505750723459818045043314164987298599604233579967363391207798397688884465468974597615503709477819060726297571518098737086181878686453082552502398953179970350196922085467691219643859824047450002058630689008161196971928463756502477534367657223801310075158345303592807677114435104827763471039549914193838444207375154696234327262085705507526823837002439125693781242955475487332107631680626441353972312565049646045648170850277836903470530453828847814877947033908683511929442931117351354080190059106556987750314858861433984958000688499276774748513821502774474394726865138135520140533681986874223347982460489223546238215791049186928392898204086348816925914082390176353559678520230147181311540757601122373015139132201003758709775629181724295212972413658298280443445829552972728329061602580927154443050110065723399920493150919747179644822291530908354348072945646257048114868269213184860764444558658485193590016004181016510879103283240360140662012997821088167740011806537254131763816847964945320146209776947007757338712178236625831612777153890666398748390576850001235680741800714418098319037247497563936135039730216275905313826302093891110471601801762923527241171103564550667868377040332708655876746594756449729552401488177226354149646385854507926834284963741410458066897710493005085012303151112172456612358593554551752566774385996813963201907065477939247608558762521714481207095878386436077030703497175777696042173709538001922272615941771608108692786159558608307011194884881139546006018905761814858012910208206570388537226595919120777060419939108675305882089628641990395517177834634947959373034787706939048768397443527023152376262725314000989519813095584704640247974340591996447885718866134801871989535563317091899782117717128458532150211983246441022269212786205685722746697312863463979264622963876542055556708629745774933936657526109722076289285361219459444831974707333088512521545500133212192683373279833727858655897366718190206323957784594443284199623540891442598635020216004333665100415045849307205105256420562823461448840903725322202107906950205163836614700246655942729487817848480754211421517287754898325118092936135028612320442448951545913565530297682451802512588924911724813535952600767393335361986386013080361677374864585694068409696400596998673997357271864257903846817102357628582265834318217085659958788777788043250257440247213577369395581930485475179892627720128862457433455284311753417009313835178349208656470456790048342343688688731711638247729374724616096254486219555533593886830942642883525888727948297634411064967214083671633167742577542431414242945903782365895440582071320381476508419330787657267211241010372479224302966854042606415813833185273616571768850778778065351948659328112448792369372255882930812008735731008697178562907865528987573204235571989374041888487138896298847846521666887429965708924929834618198670973887696649288695792509620292553105857506713720859999543236079910684543915732522430038223507282823646633285238262823477917505142806015718514686640975406790719207718302075717231549107604512502671182479658966670460703564805870348990179224809956459589814213970510444477221587784968840877327384549630999179695174106196359545698789892551743498618842960800810490209317135037514308816011342416731404289722610437325597531650340758421281571642239729802176763134334427042789055619323798845174567509280147566758012421756350296265826409929572646063999775046444961631565164722951194779591297853531705476267302703923436936392073745556776148829935142239264272880548895279051387166953297779060956905214849985251717332954530226710015319618054272460792690581263999554626782389218454994071317788235503895087669332205266715076984287440891725821529735952624515086937808223778388567001469093012642573243750303312250774980231330034876544130558745755716121679895588233765987301355719703644938741064609106363920774816634937709696850551701507427653956604650218395554503554133347680728020426673607685979399368302661252653065889505627457330399458950467389564180869654661475300972203659417325144700938393440535822171617608832958005621091998327764607896707956542851059780975781013419457487755788164727266740400491972137409189047699615175687383836552317522792703464585770233413575161409801170438089312759120488255320307164721828070327393958063741421621368081011382378477106824104346034702280254955991096620259519423499690935194084838830149793937283313815705579349620132943023484109898708044970921025538280349569398635315840479077469628329689460922696251883969219970197963437104286412526434814342273154743576333305165835817637375534339741235561736064622823002486252838989698386936023172650584426384672315848739566846784422800097331087503029728698078694460640233892121774870706640403882494738198849663510485568532718757829729474810178294694030574673405581217270485638234902819362851004640536149060349631980556202604427884510788369824017358689811943282359679413423460551002484318945295560384816304365478575203461382052397950559260696376586711788097515829638518518179154553823188952587834025428748570033437810945740796990668283725345419508185065737959653236574954296191032127345407274168955737774312107555354600859802978861964407601317136356481223717675558499889073605495687206914705524236626535149452220998429715082524509090489605873096310640301606195695013989458590545041914691816080946894157563766270825707432325946244865826692164458995796674047696909420766665994660613601980443411705016751055476509347544167246492056201444755992189281812352787746622418987281142153944066006278149957922300931151213785462871512406591150592367141157951031195858918293314368812273085326180155197771586662668832993363168872373520897279062707268687468947252328038285614210520898002701095292611167281982254338426247696175811990233799625952417024976469816315549623596217893667764112068449051110161218642162524490462031043219525680559068183601116998258802080662939905578586563543802645536600464382984609508897918175737742200322089572592571295523435189821393772771482489501028685751121457657573835855614198010675020278967667720038175456986137698613891763876946424761372401600499131281022633668012210517618471874395062217331670496538248002369176813198854998419380565062822781562625603945731658838415273930004741163543291967478916760898192293014057606915873684603147168405233242179116151993182159988964866563117902953768064222399374185169320205804487273695928087020969230110660294211588974393234162710805679972820805102512451375356291497937647350380250568718856572528478814738301681709978540577133776719463729197739760019949176656072404074628593532247025949403523885824561811542493468794994996536822966863929987202357389929265253526255799249418946518714069672190152618071573762438073315134189081128739667701654445808139692332809283882007176235160513190276393006372337494299972083100197307487879742801266873390342449845320939862171660290919105811750936471923966349250886492002158626187585566488865284265834279149835627019800402724026674512315824089002852325820560506146781333887839935703211250925962062955927525426892211604763462407695011640819834932030347679494402436626852140129200845961235052930544523669542765475736339257325014970457651466026031790239810528203763854590434957208142895358869027868753334045634993958151290484416059972383694818841394797017105447219174340316480478471873895263587036976623967630917483004779510301343188501715366028588435117593826521126936130321768286472113577783100437471059451914019076838575883504655965227890847282471227640940744825404964022006165376474435627601242707267474631985160968334923563872258813219409728282552272628796998525911532980153116116908396534387194423738243076902354880960748243437023185246240899177879961102026771182776073235158649698613873038845268780775397979497978608809965626431537321934229863646606953489479693832342223625864252332386409236489052024101656132173213347192933067931906528422936608971309781750038548537193083931404803022367118037704876156430001063301874052713720811562546727747764859270329373975741685304540579043489305325140938469048853731111013351641255354983165597165447538289812148202888715708584195269872429998272459435831186212645684436011172441313339297947132793074093933215708111790321517193728249717064451954504400414442996655901917475348718562714811686039974504759644657294194357451057661277642964461513294868086129311955817434799360151766165604550290525179876034782973115210293154200011101000666041720324846597603325125499870065807548079282006404578914249682878228746281114003407554898292432884018462813130401772543857308921205696453523338504173827139023080509024735773574537286629763977771774177761790358525536238693352798421992852162865698713453354621782760152976214554326519088442563194954677336148190422335909380909725304761055697182382586479669990429094721116549481423015730399099699357251519448107250300507259077475507196380167680601927465030620406061515093624160402206700957558112427791181742040031147099822057404073838379729943192813255254565537873424919382217674211820994621832563450928893288845426470298607986914776055705397417009270814675497734693320025935004683993580725142498069273725535814896440105236080158096642032619948771214442913734785454674250725401696357148731427669466690990203056928416250997048809118384633617070773795145611554882283268160520266567026201526411746628182170901053741345455941014345383552832636911358958041078918075873655212781697238355370578839001118524491449478928233373985059117180209833898084118025496685957748463089156029792990390657814005037351881498698074771208249356378479266521859207957156106563500753891374902674606982576285759132800748056183004440096028315934005214953349711179377568257097315908233653997809421408179592825872745727659457901961758225921990922832659009936567145675582275395654770201570334833246276977414062098788750362983036917200535542791609859490828111186810072534114647336459106646156637522644363646085001811382939336851345658561080556100863017497253592989248208388959602678616752884007229323937362251163369981057712350438460910906342133692767267227107140423087424704829498601206528563687818157680988580866806650055835232575463633075713540679076540171689666313478504595925392131626452666266947399743208618725001589057564730772595937905311651472407332513871981915629224183212577882982253831903562975462501136314572184393945422345090617062539420104286552361323843226937014579300012568966186149815256195463135462038568497878402818169821467123979096070582952148885246973013330347555979539129910516667196834358867940218952741396755200540681454249767709331105241139917630130055534389028444431330859552202033782407495948132790335985713409963224675815685123280217485248616464251611810397456104260784766697543610356497522464345475380850317585683322922840644574488798275559953978465786747046603294406668475607245987106287674664563980438490270018474360244586287345230289038891198797844207709097777388975123764952917966025789033558888295311308862318772647520493548658614318235707096309163029765773754720503912821875805902291865119415567551497482733962402313194084513267655179115828804695436490074981527048045360095903956769467290822394167265100171280161441249345533512116345769144900959015709639213605554430677381020753002224191208734947807042295047792875945608209395006324497569341544687048701748133112858048653607707076346544908543371971780404966246773474094524664697962623224220233317629970934681374718640694282307979098643886130644957602189922331646538521316812377143175329483573297787900637645354468010353665460967085431027603391711656146315131074925660875380564321612159256666138212751993295324533507177435314393238813747924002915102041128922081111297835025372954708018273466402445316050250345841655556934673809369371134080334739845677746778531670206656859898773642472181858181859920193384507402559970836227390079250189889760889721448304201386264296785085381188069854987497773120010946343718473824379873796409698974676574708029317390482241123757774224678938258679139562673702279888954817932067464401583042344005962347587610587619389754344386361226706387950627398938346674073468445702722483463135900345684770115859580726119206146056778502787848203582104767577527967014806509474550368104916716850852458204593824851623303854360114085314904382705235613140435331494539285027179054844982551512843600784613405351088520476354677205035240654182153229371452039248476921689656783072438045066669739637433581875543238165310035247828574956050181920867209786515813444766567265289894731742816219162617663361640256414750094948676118382550288789038189050023372717842961160105193267995080082597474344160105092400953244463888041475086281306878156755332138670729922486596345173704756417905918555793702234895749072570190919363020679408428300252511939864061030803070883204865568108814762653770922493159255673104699773218037931407121314930535867161880821140026130693431006165225401257695200322833803019089890692175012778205357748055159063669256976043110444164417443900951166285784643593912041109688683325240351716499739838488449002098266688528839338734538036130251661234525715783729511102902229619795590866507726224387183543546760199648957742352100148729952921158998872870127285348702194700236263150826597155284117323753188627355329979331050639151057038245808785432358522832589381577481052038252261065909359776338157906971690092047410599651408503478457354574394804275426301403427709501192143921513972769237002339923778835548575853075783799365237731675711002454633120217032747806763360288998535854940625792985237380802994531232460218983887237707936567397831593259302910686191025816041612360298546943732594328919382341611540881448091847924148145797553327665760889952014275114920678630914013804679605335896892250939909623359188645682510887881744812172006316702398253250126910829632977113610834397055175492951030328666067945221892181423820107194705394048770414154001057713582084185222969087239296652847025898361614266471799834511667146913392145818909041758009662443255589606580917938701691855405496471323704481367706590679121044911443898430541819056556960733029935638681728008115367698843626436619438362632846016966733437580410680008163231971625004272086239270530465668006170277763994048987875301179439474352994953760957090479221287877398791670120436546034751975353103656168594964235757836200048981414860576771143191948703591355149661502374183339986035478995831633134261195310783493109043727289697928716497173594421787120686066218845535191353718467758554114346591872730383393524949562698974533189508021547397653630807689157898177480596193630839462483937549535812567903548716835564939388614908159153269054135631213899793224872709311898604133998644893851095627261693634836153432173453661172089094367403109377577811823896487677116290680655383564352760727296008788606077682293315891928969776948081639648832570320849758843744467983965822388887823535471207361948595362248714846384872357327942531525045459583376736344437975273057706685083704366182665511247440074383197231939930133206573791221036742365524154032161218541343640505898317423881757612158591531782224589982550750244024955529143944933022666822766203200223710311802388995595152470057918832361059617963652624809915249608855182403710868987234667781565089581073459780725975570567672619720206737745670526331358792203384862466310446598672887549437345230800488288911042049821113768734306161014078607866902207730540127044036252682396396681617243570093104258108613149386859141791876433691712469496760272610729343610707489596639347388902169014559094668767662420385179392800557424430621314235893398167887443632678996872200259387261616082579205823397387267504787859564541525528126988456647903278133440044131889106498895254174812990774858283635258620006780578979061379186751368460364666531790083038068630769412135728260837599132340539934235241484621114623631314797651793290082644633075825684405564341801647781525970787340125532897826263438343240268965139303938363003081942459857033048097082241831166462917105023199484208682489550457288438468043381517967834176299769061593091128394150115195213945806911065731651020859180654602940797250012731925607341075770332688109613782470722504211082788581112573288084825466999819544412052949167761702122263423781640818457093702084393451244115121216116410095962473499819888872539344230362197241152755350835421486863060778263509289325900254745527020299906793012776476702217410046078377161473493175987492052641313313069884786510258949639779449198969214271110440047112323109802605621626372136606187793134016238155988607755737710219928432435533075064573666837480638505142244913122411464133599442346183292671478174720451956139556632354366482965905691353871349812923000012376466251958185386410705400248767245336086265269632518169205679471642432167713372991128177932006094607673500330654696981611542538319223780554994560676521780301496315748117774079613165506992767475505262928245902217276294963311606040669269370345315515958084371602186432439681516118003283008345140914748652234129955805702644801941485345801056697588394859971880572693951858678219014939203762250704615978452321980317666676111653206355858569535877266946440874284902572437218436718066729092847708342971345297360921274542694442064181709759204379116993938334608311370614098798541558265628990303374918202749603480721252799774393145184291642499071575931984721986574095468173534222622798317418143751852545699129711816046862309158810826735373588544153856950504723929552555798590167804507304272944275474026645076339599841749662064825628969840690227454951040267775191701799228188840837246195913970067195391766707223878443911997153608179204863814347278317709322373458624678964442361069744733099707638103747931125262247796991596798422853419803550149228836397900299100151436345808010284492912492428244752587689411913741071917281894721724991225734827038353328977119342009703921846615161878255426446060411767230696140038202323480443565448886321100810443261715819819956762091932125309134111932312041633050157943963467884112181621652067400826570229502262477426309502861451770678004439785759462518326041158437094238485894112741833091306176942976151179894524701683985856447152643381814008912885277942577389370078131674743531322083045194420836824070570947430851000968622126088317906191103738757125212402028063617075315387322940300048964963369610096944943662225466273302386803645209782055701694512936702481575926927069548433288591166043806005830077640827631234210538408773353211355480125680218933137470284412622336272954701731275262353546587314090537333985937507595208778946937936750321804168706697624717392146718066430611124272203322400273709040561935267023080945460067805673942966960463449322470190184352815065710771064785572522652302356294594420615368191785965046046520517014016586988263688022010874967600972793707502655945501268856026072305137054497771077323040715261501857354021914087981437922867057668589766424976920649703328086764639445079387787763647298392326387480978705561527588958621626909377905377478429200651154290010370128763927259501447004342167916458490866119215190006864622292850718222330425351145297412526220603875108831520099466792270272160149085326112132240127662575212693373272477812437015756821662715059300541849767062921224016657330017681019955479525635974384050586107967489304510268739649545707752056963852961869709283443417111201260503681213301694474881585980866150134384175436581045270587192613693870098782716309705004166431312628823992806532607238022627125542628240617990627082406579579446508172684486835229174420457693194448903956110318142798556405332067320279354648152876554003007903549207699589795956659442444588069397599414861602186559260798796335991190622659183050588772019370684377556085754697015382931941608259821879289101850452212450653372747955816578903203698763329061612174884631177888581590326515810817073448653842474981223075700292033490778927533386677270431762668290315541197601340549167385899949276420759037787118673288435608751163696713590511687594832317542982554923691341111632577204543162820561215811850421851434241354987602078753846588063368531999198347294882335291519028377488138067593891332201702865063663701142611965615839410041054964375037391425147333780563035616531050861610926132047763336952299255362396856898382579599573052278081270632345099975451817052252670256847230323070625073435631868473315876518293603552234593434639056793894127142920891221026819559244798503913118508595350716808250628419766451950860997241263072758016839920919723788786604971216149572518539110012697362364091110689495154991813108375417086803321170669303267714916389473988638782965099160649360337281610378135848388250307230946189577435825909457260368304427174062217775364281280334620305806007362210614165841639567590950622536478855403649210490367769209463138579364929364315614791561546598857810069021702556549819759253464965680652565028763375828720346304039114386822144449493912382208802756128912688874249595815239638123596448468590359423992902286136949617208660424898193454640787393341578282584333443016620386265549154135342043126156036117591975240939324008239045978481213535644084712399350277670083709526167763890591154885484469256887483439975715898579307439828159038640440411894766522547641902872994224408495736395984677157304448209211947641631176803649904209352976112488393215626267774358957099284158802840976037917614284962402903355846406577379509907532873705461911869221128790743434475423453738613125627829573892194064841168545338839441363811506452320583055588422485691641359395084589993326343014600370078682048033052370150352661373640495403914868931724151327933992267768979073572118630855496929782909802418651350991604780480471897396801756828464302516453790680204175131572105801738319937784103422571892466612667791408775872590454546359362800735278432986211545134768876006852888118967031303187295817859748196547943093305585042099760013918818461871806212648136577751503813519735695018013135623145475475494091722514478747548008716080164109057937326899832857860641169231014125250770213144719695063426216348016808541546972954921514375805694047560524899187468255442023331772177922058349195202036863532377786287741416088722759638782218542831901882123034714135211458478062350912238115836928478508398776409050861859011897682766425504383114328792527116725380316208343370320632017661724324697569911686645995369760553858455376889207929225231750389728126809460734408530981700358342376319548102236926955136498593114260440404290665414512602115129436908908350008254265331936208789967141411658978020851205973179282135163335532727543171529520323655963416633054951640825979893175966420130550412894346694600598973601124537096318185004160640335843658884373743302847746494630223058069707169466609561431702024342600552213891225839181085801957799777386582179492591999773832774880325680995382640854259497180651863037523212957597305065063236975704263969015774230235010839032861870500412982193212182848865030486459729077759620609458956860139844702320749650562223441216629982582094962304398098469522036482157605872579573727234011227084491396849218985161749176579763217935806128138359915144843422613825486075120512435724818520969473316200445648258148473835033743874903869139006703093305749863282718491866803642429640853885894804876132908541516937986421321619689886118366414703241900404923287117320566789077515715756444114654858402771883813509824642688450211578891898436837518648281660920418253411827770791192126024324469244312589797174669936343765889433977136754996873737605083950023159906155540414685095081140559639476795126411726828189518073306045089146326416514394727342249355640395279102193261431104528852168522381858058923897597021892894622136594446408640188698744037413215801764660336211723260367516809705691302826062745886314005247019835549761670029821643033118474823061447157081664498890674433054378593086431315478143343369161949386349065757647720036831605676008380457848998187358126800237208659353537147541408990031561045976033092867628933298750068632294383932920968465272854999240453025642677544001823963038569440291459668443841964893735237530163510657712193981273449286984837775722908584831256484795847855484668055959141211239596076094856623831896807268540708839675305000083849313908003087524197985508389034905345499581942672794523441010571851187514569741356521504088917219219797624973484200951235320996695096773395042368072408254794034197402429135923933771286093356660972222897369354834998181931190429522239711618948531110686667093032228190388724819136490150532606288395527101871799206067134651664355091514752865497723996002183464518945416427852752298111082087350643689111221648634486054422227453621930099995841005863309965399372577314342716618384992231065040019850468331439322655758640193058473375278185507216297296243873474699127459249605867017525298365589632689087287990438595560561299379908025973140192744747955705849429360251219419098527318552255775951572568548492327185467283609168894486634070967093255292727037236253870046244030283365635067215240546426293389232069236939511142930330673719843177163323407263657659611876457026064794694570722323225681081035107021411959898466980915959836231208047886743903909887398002888898349740665484644730281434528372999381024379896912958942391163493135644309805568797853944809498130611912720714005402020895619790973662852949369263633744788572195954068667038815079559827616398263556063512528550517567365170048525960037430209835224405741901134827522087128208466384870701341286091378864064120912719780272616458556652457482189617359402217609939963156247011949149560251659449125280787159646168822612695552288109053267752104229012438311374243321327844806303475055737788190025260825820164012913338290405446116400937542222699401964831963064941114779738199363203718799241612610550847702940130487568115118346338361216852901645766572070813370308899619313918573122818321254979940390522536181839210194499792162091762754424516426975980482295759260003942476308589887279525565150410035054623280157387445626386002994800969410435514863092895090343571206916343708927711510630180113380309086757066990691488458922843732393751375202644330005224187373459689947090115528089526745921414769702391732400706944161971426215422033791513655510048825035302638303631874103942183064782558549086310150861361091306282837471791913965606508741313544923081399170306948913146774892462894810247772911022905031221811373816006025891981833642945623785054027487953981400184353075248477561043684835455050957904940536976386395923321633468667254702847952629159275371430607567682304987422417098066170632252303725141301587799412115116825129807556583308423183326878987859603517224216820032935635033336989513481101369628598664218685424503536002553049564097785640400470309061826761409352673364323082480280523496998375115383148280880419526666390978509951949875491508999925885103185564134249523999911492362507305506792301026349761515142149544981311114011182413506309196132029174989830555368271105387994041418257496150811786490705352564127305657337100638094406986710775669319659855578166772551023952940070015878591168173914456674044455073036519091330307943845806832606345814996528682369481158598288045350010901371223432002274183048239099469185353494917737674999759830392912865962543538861356686910967878838518761390425297702736237583535062397597078532676148478637929330295709725245101222616198254182213774884669927797845612243554663600632817368535741904782104086038098665488090461702950102863908937797490105466050365609499989121248011652254467373000411746107084274302470930568931784670425218335088444380633337869769703232474489963075299610835478759290170190531812366379224544398201314010763589546684719999174372730878648894905568815072455360327954618429891879916119660804889470249427921115244668898141149347480289963688833139765859179258133663127025298453186072261069419138517199223463561312284395303090269345672058081680977431892025986228733141467428966401686622288575811408075161731025956141545849793492674910802364085619479090197431472022178419157546966054845484335606511650316620277252609857112731118928037488202052202346380803906442399007007536663170135943491116584361375799572174650400886110488173504087214308410606266749546378877737311874214961136764431828522581154443796119186364572618609647885255169640829605804354315149515114733435083706039108694478681541904291204165707485903816966365913726715596552041410202043529146225690624286421632972783981664258991272373694637619716941540963515073820404151848647525108816305572883667639444422740900571287484078623135857251391517028686825656523874067532309735210662638517597780748407919708847514805337149319339921913852793715088398538830046781373025964857372838425388122426811956484985791521256833992334110021055788903776750561912074517021406630360049784156365909857430086922770883804502896921131951563731339734020278259880477211374596332715549460194359667253101631125401294022456741284183917674961946791897171853355541570914148242376008306880356246178381322765796699152429513017220701080812622800968675588628425210264345001409055760291263716057626516741152176464808522530356110855702440691876885131667074772851833942848844772683357413393816328981219195671936802026531669075774590707879083531203379178888147712945639815506439811467019178326530219975403649985005501723192846498540059691416410159395607307161633391007602484991938216535393813454077618193240207503429117324330417491848182186024974382412643545034833841458306969763613221565961329029646175272955719294047580857494206861225361155640146588665296867779072203228855980572229911316808915425420083317221763004730028473300983594410384303219919426653834474382448992019879722711219928653444826582494542863760126675783884137488392772599778179327891737654534969847538590256380416306513239905514127790495684422000788419550326653182639137218715649436149413661725742048209623120010108095099482960402165500054086953222125167885071397922614306678965377563857345984541870523492035012830545633255120372026945747243923195828902510824133302733791830110024482159143246391200947921153091010467803731851209650890286340759458249122633221186687312242522212167976897369025617586244021527338265372569812080278631970718297509421491932984010851766614058520892197360656438232266852847723655442870047401189006959503917785596560033761467135461835826688417999807760335103803590951334965946778109142748330078048515704858208666124572916927601530618440796056644157862272004116024550977647111118322903709837810689971647131467404774769274214830912236270767940413662951790167746494823993295088220276411144646949404439327851807581632138590211656349620935357504229192913038807189832757895418498524772075495611836689919732280313999674215377958887627642057531850252944867039438003824526973112949873889642321801384665453476867488594210212226520757597655416816860457625110021529832867683803460953806730004882478009467454220846563149243226040767781815366361762095292460746461688989641734115677754427565470791999675864805681630976657075770449652144946177473170507643149992429406876517509969511039240908929974970327723081853569403467440513998227693041507430990307916814345978447687401111066404052987756733857827476032345456053532685784634389840977449168141081656106819196637176827635577534673902868639552272246448996781733102846837836657636231607823801734326464692323546457428014926992519654517531659385776961244340211635752204196250920007008969520340281463167368299157540531865258154490678443009750425812259549664260717276776653155792767576270230746852331234745650048433828180727799619054810060459295743622778941914743332648637392998515087689239636995239983727061082568927487594995428547002576610552190796676288107322386368576734779337890844742786499813554656348743850462688341905620695974337422313105049545778090635727023476182696655097954397453916010181445520696152645525098568091033640052871634386398548644591352861508139204658576586572912135827859526982248532190693769415442897422311244093538954458633782359228451520995992300002144084923650348627852104856783580630287039479607383613105469837465992266500985861893075950532951740941653531130255398739360793986935178964274703936935062594158046512139078748405308260475721941280423662083378029986990710845473816813566855784058260490829541071361970689690737751266164118354150956022978555188475384858862371413782524415813466361691833770032721568340795276288855807075189575190858131159879395412537052244661745185669315336224756230167320447799048377203441756893063612843304648596554048699258093196452046856650758472390552718231883282461421195789873141581158894226147519912123473921085662576660996265572972592716947198632879813944065401400867700008546870650172564844751269172513125184270934308996084861404855238140265258430996166761195594195434726617030110591168312444008861585918820440162479996477864188808319675032812439423074736227299448183950304175880147378314675880702682488715503532187548244914310074665044134308963388213324833321736057648822874110129164273029585345186715198151356997494149536527052003666825860200691998736755668097728435115956759565963764479439634997074675501056546299748209235336832041353117676507485636782786744588336084690640162910350633960277913208964318728673768328342346249449155840396448692394100281555449236094449891665527573030244645664891804522273503915361211043077072774186061127142024193933326716826161624137990063531057217269005987745321420863679147136025622239393989857519337699950709175839236960989454587297501496089619162199688611683166787483763316976477097965750484642973255486088189377667952059114827545511857447559474502797034671245122328519529880208636172578304306140317641007966937493547885817508582474581978313751308681741348768559115749581427518566799854960762407632503335192612282309876229949037080740981180616962615202347938220646301079460787317491108008625654120511274222118092036467722409633965550639992410485702750345954069474890593056968135246616661820285045720260449628445570567505021719738996173511536022652776689889556856898870581982177816573558606662469208068305202257580636729105724726260681068125575135295946987392207620176360297413829925991188217482377965307816352546109493894517573741356608500017082689849089363964209770085095822393627017678398620721568810188463968163721496567585638097271061435287167407035490111250465217383291812841102188821465397985657218470225272814143967974059995522250525622031575632281638477105975306694417321782892426966811927108487440186077747560905716312556859233097192580850307795166391543356622389573951887422774589821292775888673829074153182062696437705209028789291782616925621059933444500779943869502798723803265588063021458407744230414223138120919439058006249532806387201697699432273756182680170783326890059440380877082146302702470957469164739208608550066027958877074432621179761410327611325729675851748364716836753237957307582946509275782078849230093395846159026062714011625377373386114371817590375588896096146906154800108808192278161772912451566949001660983004940227933794728018223186314738452387798126392370705140193531967405253644599746565666033757837404651499140738292319550742103243944032773864607459656891899203902277960826299236888489840393271200433626076681610926173390508365813003248070558360939670338238524201432530352032784659995551347080161066658828106676262611964006434245949449552376042725019014888748611330210073710431703583072731251221598401959224524191065227300915833050456468578756191695881089704265073815110193897347186931391717659114216713931979315098744554801547283389741707019904030370498330698613896469097242076665609910656676965557994431163421665592646669855270642898789399948092005304273839105514399092944853988151044722609905404895172633078659878167906915718983066673166216079724805719945013471289751061097259626143633100769809113179560966950817533480456922881136713631083325219607208999283379349560638778589158602372179385403774133621039397186723975087590956132235863868101407010137224939107425273257665354418613836364191252737088485085587117200780365108411736544050526994944363257251080467455177936757872238321875218831656723755841438940040872960763452651282922967103015294412304665604718809742597149972305366008925724470320433816029519739458049701073863722105151912316398369811140513904272511251736632662926750647620875254051433702780074455070106916358104932131648578647672777448064876535124866745683257150937922828183349063539171191433782200834575005351660119744448088132631865648580964292808628627966039908371827346548958831731487732332904157996633245965405465901693853444233902953708492673110390406436460477774546385070875367748313739238939353190729788593789315731597306164616372375014562384250090221723726697558666802242560162686161093080905417980205583198573625159364924789044544751168956413278297268934647890190174541610304214435223195196613747899744634246292974379452068276660883959075749277443841687750303676104452865230985283625166920950049654939718057524479710163409809215265741363217262296633360915219546692121639743515846835329570206007060018873501724214965625861868066936101794359202867932054293789466198126472397981632724835395674134808664349247957531111151452322109917632269313157690464141924676142262607188255913718989024223928635730532146236440235788608514435709334615010514542149546359809394792310366829403413334157167199573414824615248919343978904435794974984418423029500384091867731631891035779360871067240618587960078310439314874716620252818743757188280577741760133884359876336005779341333986034004347893246973818030083177104050954779344331788633412073841228419682304831053190109824891576687227410663467491475252264490784820786552921890350372275682614590214125540266243044084144773172011375280382413981634724016757144960727792607599910384352258622454210024623265887342016300400963097149879571552268066838294747639366591294493879316268214323092565156485840843184993291497007305469360262418238931013188070770967532771738093715071147908568600134079889337537903349481738941931948457078879714735119863883151634915859882153978223668280723855622735222489585380566366590179128375543468529657968595122764069424403389972814773872939742067842956729770403674444917200244018144422641018570175540647009648677258830658850140329071854896502211843250483189448689862927988079821596808794718776213226471104645833769264308215948854151756235504502487833201864379971670978519320860663315444914109680835772903306622952377487094915605278930848562472641744204993123432445064431034306788921139593995847811797211789956147414848237933642641007063763339097084684592956799050574453964316584332990571455278726090886122680901691166193093780745062551969656747246762892969133819320198127098370216895598581658082485072383414754595273428103983459086203394825825746246785589456137681145496146310728241242851763328551327445278995584604479443629454194253988242137976994501457226867398787734702518265585648246899375569759677285309016341692438420993306745312020784344324550801653486844935613349837832773146372648206283082640497868342615598210481455909629402699662515995782388440547373956606669056740793024662129029328773321146577454325920822779163951142268717114666541914196418143517689674668157655107552761795141740602853091980960316105734535373489915443533194831929378572668293461292653798477785906191320070117470925404498670795914171931693008089123776470454374580656386372503636600185213475906204637596776944689668257867070720415444932949673581727856494252356531433404925737773132094936396801987107955864490509533742708485591760077228990936220811934130706804883424308360049030815159056239704446294069097964587773468633920032040531401362083362115519252796567850958579016681109326038814373260269838956378426909952990098322092873929270962227260152506603726877466199359429261376103382012330244912752326565120868751951544945724364734597712513175237572682064039621730117277744190078157521184142347296123643970154822541973728415187206754684227362822609210836993191845114561549793039161643354662984368269325344463724718938960792592465912558857928704830584707394095023297661736500593634051905594013432061629514917014107413824569993566956600985195912984882043565918688064675378819949066890030923323327330410368725688729407634347021947650786863532847959127510186190775038862364417102397811961606543926730059173535424663413763664720875166545030713349366098781535267207200590681282710540689768983731006007484707882182782232491224946079862215181097782348854028167597116546227387089983503182720978889824429735237732213756582071776256770783922233157849590931494979467014125630420342802830939464205464519202907272628176911651060842422969036514747779772224548364680654029296315279060058902317614772380668266155483756571984206889049679821231338469425664326606723559833536634135807142724248984936532823441694327750835271171552910687034370461093060147853876660448107698762296790040170268111463324641912125657579812839451110756479252114259973975875356580456035772442158837002283085036645037899543772851027636362465591102306763752992914498884110236022554783223294393758434865351703143680455316093282022229643721442448485034189047983503051137672520126589364379692783350318907161018709399296130008297862152839128845682961713764103451457674957247825041370004598000870757769159855300320954527829331414431656709220863361120442526316905248276841063000599287346248119849147849744987808542136898122434153584046114955812546830025547122104412359870790539682410631379836630494686549402271349382268769998103338846499174584689012203164452831418043846279988580951773182231869929204173326196072188919443323824198133127982038543380441717649404205818064261452844181644371044199577134369353231989454032767768963035647781722291689965027669435764097944322706711984763586207041617987816828332960036625701267450581911303709321736651528984656796446814265214994748270773234434952944166084042833074019926297662423446535335859334328318164576269048552221128454739975256486290924886675359333367067975080829131046795998927613182414980520119299567638111367238450938489233764641722024350679041707602208065510523116118231098543798858989361059667035050912874570138435537561184189263559102139560467520708724866702953556879394650783002789715691921522188030234920515668031012090472786392829781856626439437082180627671542170174963381473810957214477581417385608807964212182077427161891802719301848835131767812548976786520437853438882145013674013379305540090240664693716833777186188182291675853056063155027530186539350825784555061284546940144234215974630728170830054969727323981066903459436115860573198579968882352043252679515079082109731670617336773518838812699657564629926740546510915888583036631589845914255518105115513018775718648882711769731919622019921590798096886859015240869740953625934630135290927231273866452608599024655466716103088956658671079535054871553779922851253834414561327219030968000123945187717225698192311241427117196965587359339886807606927644205998221679015136638977190174394218468028485443678607328647194429971274911777019282554241693340774796997572746290255880113859258486089439333220395426010285521289161285791512684347145358552423222914588690168119321380775331265787854544397019797221570086550207337655043257353709926420465539028570025468305093120853848119313432412668870346317201970186087032314984175757108361219440212601627899343925119420439245291168608161816675731969109556120980982807803865455627007720718647363609981383745795388407507930531099419662580952010022787322446981569034405411489810591824707951093124589201961610567536715357428352249759237670407528883446509987455791525247977540344709010756953712972625016138964140470784748516142435681746325491975936430920569918051264683441369066361697072397033100208200972973573737230679411268762663802277482353651204456928994359935411659213653506043774672489647599035715151727441663530973150079318580200640237918259942077939246279082543188512311560578028572694325758736138139665316357548145349874876642094805769010066770020533983731724926261530997074568456472567040973849847861864478245122866445935629638475018156000714308802644247910236853037191941094667220234728184813184801052545276761959013893971902278945987576171306117046919647865254657860865594956323631640138785241776531562562833931262704895528240434675802719734403070675974088841450358037710886734068136771729896292774727683599136165198334273291655062972796332893538216431315280524667649181465182969466607366827038094728451464211595193626508993691256630527624488487083311098122503510405829694736880532354130667308061274816835520087206240408701058289415268958865228742799695189607879234986560054100032858098575422444805448449222165231729562968163239671591841744032467347783619569965433418935453874167654083125477883305579219722882499849433456112979912886229062912035095832435255878189443576675391302065369903730072510466970008383384871770803449704081280541337045126012811010586755532927724766388252365903746156708461654496545220248905983015665732254856516256145951801610119416836313068749114370498050485855519982740285418081480941396881416479019874863767127549856961670635140493885560832388443806076503047154035256465919085376362678129420270637221079017364834515864405176393225534060229917498432007963861576131554382543571463877524317584616477975005814477985210904786188464486284463909080468697099130073033224407936729957280741636301818601453514401487475869383460881369007452748944953793122160948871956988470729225171719441907539418201765441840170756372962621584095785051490618234332453408849282443962963720085029759187178290039219363933382574994624017588766377213961612159306559510728930893478103183749523818624868714381535792081655409673349331897909805499078075590219526281783673138179020558665488324059696752105927081567764785284547119910842049027982639128718221303573426007285963306560269710791154551867324257523454378321109304189397881024909849289016998156839063931729386426131692988485735587246336547546009260675836162156204701687225274966669653349750523549568913988048439120971823555950003059730426581579428271394532060350628373603330231266784851610023725777167865263331060636053963002427725623567011033333781680289984036394419542425771300072202643649367265158348902868800348619108847709920562392995925629035634044822908466366499969103652322581811163928759413951422080144297597788476668468910730200956318398990282100526514707434275651192158054581828311380185733715856874509086444936772646483372276553040103657726168793861048673738276728212110552211472332746713611310998178208896290946238021952587715047924635073058907085829171671409284888817199221828922377823938422686505251923328517838307391508861857603303816525436206888419137125773524852169648301052654668728876233340182805906749182160954721110261778907143524846840355404311159483699107427468963677042386722138600648953482237859724038246072943499532841852109712923355259153154347802443439040043581508882233384454654144740348037777398713459593664250907232171724553926952442782173155093519885549120904140197752206404366153987340376571773998257662555265784170601993122576104718380544581875581698091835872682547785349914094847122773525758064261760106440496757308930333400141624607492999018375127017023013787722075627191901517370718350259842466757131149900829473083077618860364990097315281152588371538302128792178260650816658276164870528866620660271707249205923383682466865719572567209128675189021399894511996580444156963955177954401369119146258971322095879191160104185018771594934945184161759237170034472239175526086433896148429005553471110484050965521319066420462617503580341289810366563824690590294334786134362049942834851534213972094575497576700571767229296170000158221285169060495750126700373797605674422626991666659285159838155454586526678023309785702595759518655255691237403415079569396248647948704453040901942557469825392773770638732861577493749799751612728156786716436416194575201478785778654756681210249023721036708676299884357841970472230644826756985965095516813433535528827583923894552961371318501561328753733297991071234814410096477681874060698722227862287936913382520023012969348110917422219416334966527033457314358548303411576901711575864961863202081935686554628491370877028749110912651156488725762970823832385902437363322147193324963478573632305071056481153139962860718928491161648641408654526732302018363486920285786558464647448553435297715347991732842908836711108752695831267644418829796676573321947191953553436821991192478187574964969896335439670795315884946222919422948568588031564263446740130176233591772484242337425187458864963466992576484467272631866803038176970726586521526604209092099675189497850603265486155069926695755274159823948388863569312438203248485876030479201480566278792197794872492563947408987751066571709380134291458306643732762339922981352282088206648823820532082889194259660642258058145236996833543143908760907779756820770113504042346853522630693566555023675768824031227929250179904749169644425193986483447663734070804140577208227640993097285871085675092035201172146337239606185300210078008296596722812034001743276675370483721711461774421784293910772116413000048563895989685776780506322288331383044230043897832779467943052133254598678909225942306540027355147860298637770750375608440171516382204739392718792781598863304798631321550774202948895933371787534637051132051501041133422822353505851790265641915941484125515630887818460293602256507341596976937432475719760166937332220624502392595771563731773108943298287566416433568902957057434869702950015646415379947431432199943644454532607732537418136301845908394709319896126695001485453079788704406405831764658620086297422299783293779017121031905311909875209862439107392361140437990315440237722127621650509576155096707924778668085778783943840699932856732526799528148327763339349909499771732973109171597171907962169002566171102812544474056437340473631681000149300703283338097110570667694743224454858643605735394754768330853059693674832483319653031290075698112148662746576925949978800421161449321394375638560610876791834920568057347121459058598917274725614235552690659047675255792558853670250309114062978894759766198992531199461978438390002304496929910665370339845702293687159724243757629253418354137108697540825832109612401380781600864611462602812000076094912670311151421130707628867161826166251385139126576043595478905208567322724156557608159663912914757441399811000758454821765466750798716280979227672286828135013014038515461920193668245607154560737848856204170227274391226429361505126589080775315318337161780522919135580410329532618356796114635067060269621470759799008320631830342878196819531373353828849543870770029441348385035167261480718425765694543954261291832513940850707784290767152251583550827602621237009288322309270349245477437874572377515534260740075727282781936748943388482134395964421930009713933836985441379044720781400826182775814959558928820808312605951755456086826485478052943760323269882201168445303606031879352565400297486710200129315743763334431733044682449973885544159322726405631182338342137105083021155654998921163922838092508811596176243877539955727523166367013409788592738017725921806406150925484742052783217643373846229155405492707043667073176396793568864620688080387374845221610488830140575566442016135840455167377338892150334677972616321371316914613268383610566818479488913977781817369354794313539756801789514736775582310228925152489126135040111012316621536407937684756510539622045118887624783043459935605536921073036531091125618229648941968328787888887168497384023145144141728759907871673737573993789447606932843532146763678203878091265366247199339818716842869055076823180796461210031357339302095994198812321626100379459990554616120259033705070487629960777848098983563287004568268727135383102043683242887337743822213730682893244287012180913719533857183143144411308578146180784236001632398205798733202692675568741087328436159841975959373546869017420744076805927899136364583056771933663483200153087960300322799619858649002777946644549883015298631318403609035744417350361888103442059398564263843234970629676939907627599556156188455655026830184221357877182404193116126459686100775903153766948785687277011651098727289020017711947883616998070932940405428815790046298805077943050368812367963509407253541656407537061401698279606519822606218404472766344929427453601138419319298523367104630467552485451148249819869555151505044419429786845999743995737940776689209820316611237212612203157961054211916291557848781182866054004229572726222616956612461758995612518800735160526980782039377011527017152571193642188933271279408630091289571206110626306838408854369340291303176759129541824229745032956836846939213169858103811924562615671804664659220204470265915678158798326201510170223086716394761959557538145214026066525400766418691624059035044748140774983491531837170067983147812241845967739883135598174485753061659837940874311526965932582334973491461910818063868239029528901586377384517899009762751244727830320950911920981890696962759102101325161750428577269156449846977602048281503750223650566453293948862565373694606779325399236843134498343347663362808083740371867295956519974951623057559026787790136008516114680351350301154197081501455913323723104779596190421889651247388591660462600666263461918460235546179382231247207952830507090721407942928089054033416869730056768297908525205726928995492586888924472553000090269090074720472102968534054844016164109682789157242827553496010522048509831471112596835054307940669203851215792134408331444484074901902732928492896553021199563185870680794913709769371254611391347381892770422083103854350773994083438491560771290835625832425366424431776353066869933987088192120381925039213913701001100947492371529524306174559705810464511618922447230231484852476357363592275355595742162724098489057361628368077197605923385043996617117013226791106934397568434588545339113025091984370999599274269803353291742573106806558313712809536768846200304153833079123218689697232756426899337134909613880062191213635868022163235838184441468643103204552207778225935784561755213145867476817795992150657992296049898047783731358383938012827760641975979686612645689890234152332905917082888480776877803808018748282918020590433373779695766621633360966596087966940446685086361187973883681931240856881105291649944319665651843280392788297365182686689874951548041749544814794969631788103163212533871096816552226148077463129101440806152333613525299571653463293933853200526981288982845064519988191402871157651868567184901695410446727148467361569636273339355017523678134141402252603855672414052553574924581921618791728700369629615042500096801548408357680807803881457960376600916056632616056458063719084169624311089354823721529132169874512315115495097236451688720451145282397615218495379297216935886155854537880181870123385865880676288317633588518951665916909751245391677736528287414239000451127810750582524958711086921911449258962476085395081207689388070016540000788412984260980357116237548770515338156387662911257591842624849581675340329621954863194832263747121801429154424642883648845495843977160601218644753256003628736804261456005854766593405860935981675149295986919313674311653982817985536389409492292634156915344877347444910790878372761135755222823373635696015626880314288981416637459852631459416665939190343403320169504665831360561619160118805530345175519436023607856977035064601004985853250922905989926487936366654864727793184720627583728243897827276224067469044888334355699988057619939696555346953648926661330889674940436397831684180582883172585641423654130381312082418514200538856152054344125159325263560398590385965460489460859679152010299653792849915952217830977826027054573084884271447150897657027929614532757131415905202139664021806971188824639258501921602415494630687527875665914706681956508038107794221012328752035301925380303024761754564651051011902021612334222243955696771646359266222459394721033318271926732589546954763706877850724513807487507273325042946660508321689335670770168218297572898584381825268151724091490464130252732975524454701035066126957148038415838079439759949313283152952312570080522519007544901852905091905226960958480279702859236617668954218986678288029680180180058330646570702333793917835627311465154797430925124374291168136251645222503737985589690492791004937984273936788638382320430339365311696107247130952847999162430795384926191982709420658468399975023605912175253100983514214604901949659610574490692457288067452759422786587729933950355275063885837722558311582105413777848200709125460387875181572736758870417857064478966166245304939797115624994323742158583447222863671421633013799248216854167256456063862195339789281918429368240061683207582725772687524298107038558389122462045880114518723464185585195137018773078259775341494713375408956810632969929930378429816894882475845338230026412473976124611353109401805878428432968071149207635295892221701559543039978007908058727288802287384406062239614211041808249267692018323520802703731429576603460702258785999394874660638200086648971250013506805062515335120061033489529014423487527367095905167632057548334090200924957830036486642543563399318776244781463127787908830023137514299658905091778225152488611607247944968189564192530554724966207809577946656319036331972390480948626425611083374790455093558744165121525584892263037538211693609257164447420429222220622219422026073079146890372884478478212958123155916052793571751166145842136027174278317996096580840717513793284108090497513799243109149334684997703091795449424028991345551390694740662345809603908997790338081739553317227003379851607863081900275586435545957887533264661798916596712314388490836519827586119134820425580009509905653193199173891445262559246560700757390223018896364523223680633786984080524383929155190885454115636770740494909577293651008030591527197142769534844238585417475297299835582002456045657467106325257019271797068240715619659222654692680369684141095311706697969050058572574829936063125914875170555872022407740694309182329670335890731374595127380621236829507220478069318181273908994951255390118315683221013780291823489260870131670777966309386001797939270438660700509606371826989829886594002478189060209159873402916466601688841996774958072092530934607311407137886893304398359782346338335972986091835693207358665855473724595317964710695591012508278507313904752509614736892100499502573506258510380503604932881207151957202411732115956804995576547876495526132109143790788131408114228268198037451416396118768555505863215095796050595705786282774058615360696110886036842987694458257374766966504458180114808817933053355815983341442034427363129121278153068643641142206365273480132386811337700776607358938181019088015193572823729684878268177278347207215149094120947640836189939255760942434014163591757952111082661048181525148061956549351994733635182682758485276224696661376732339251930918141304405651985284364854443978886532098858836430891093152266334749600612531348116975437074887475641981003039599531722447406931206040522717890526086076690042385559586955140708842409560833326144533412067344652978493536651436340047151151820378265484296491748077740416379869348722970455169702083832404407221690041049768977796427947259953351305749961484334183433875101267183627795341538156220901893347960491364697083333456513669244302493238013742151699835746851105174883965688822079427496296382598058005251538252122110185395487428630823141282789877531075973727672091501429802984836078880593496704637164406454250130660944246803923326346196532171275421741625267331876002401693663109898460966875376981385840230204615060209862352715343897493116330086511127364555361090885571953900901830474172045685911690936101889667414663929889792007824656341356837735255566409992274913362349216257841457707106389387344725892047214530408736052649081373220898245435535343156400263034458365059465203538170123816095093337743308538229579057620926585985409221314509635518937590171502799713443320291376164058689404763412912791472826712519573031594765148090771654127752865131286541934807104108413482565041571053047691374907700450429531443497260536237333019022575636602464621673557997148299379158655060164596498935726712300650760320389336504067525612831241424103021865436179642647429467375573265863667380880193299715876443362720234083033529168941782580931233803849577266352034658121196592553215763338010767600072624773668018702487242488566781426713205031374561666625085553390855725745969058256816580419825468373582268082327593695643615667108706835562031008716735633665522318418813709109079868029402875844385102705297545004445458479655516083108889234687748025731514618227368054844520223182454514293142590875569333038325505567721835064516990742165243597318816488186642529231904747420866374481665836462678613961120838320100038917903135635701562476570858465752634533287010306244210245326303545032363644352040490760696899472246992596535386441221541882979976626914236659400389271900949085796305247962836275754581267257893647255546543464765005893185853915530937442644505221901036650399952389403952893895827635660446876072028912374152254077974263578294142102042619198878544500271495417994855065334411120267858198399156449253609750528435731601481178307961521592473456761616476832321214958493053648662804465093844806762572674322768941454260288024491928631851518943016593570951129789771868606281934412632421677398280717230680516917134160320610796714249706002021225850896195736136307773997949119980515151495990549208969134902392299662194958850170025184766517354207831916805467812402318229776592926765058081250880808306761930687320395992138546545899888882848798684639437051808067704071098506819905520435582585125770563307960623038472212495816017100897147122195125271638010936527050023297169365509899909006854835437106945473834152719735219681726259950878437208331215895420576123094100924209120947356830345616937008359567306008732739743838428639716115230257683786679875796763503678532958204032507310233948594774841719876688199809862300407166443383710062634303659647588430344026885994315152141889904860089165555465466655553531714308361883042117781728269512691473895092192474825633719104334894707858732380584628615199851956402740047005551748094962946088440619917381153304893252006039314605089790819276347273702986496306454238499610654982339481879745324836383477362217651812758187913610786361186173290571313698878024543571099400000308635981146443509069412983697443021136889831699081082650223111724421157613611303870145113331854791969176877335377315862275597614112784218311160348437926799883041010736141240539868976790954122693568942895935287925057429566771666758714212618110746236413392742446680503762418644020799239884406387369197753133526441249798452991920618258961661480774007078658883605035359258260920848296977961174714035166814613006881952457828326269970429528751919979107944953475882296816379180742302158950142838087018856935889356785154292375757983889317367045872776892046980173763590594493532181846759984994691342024013451287777847901324010320954574243855885878090313360950618444011669589638470817185623461253954562784206994194353228560042397589007386005802901345755680503719740111777383407427008961065846558695968876987003108448176474480583627739793318824320385130735739747561114989237822482641648454030821241380825130169074718289348890777837991264844984299624547419148551592561676647034866293374108324295339389089060565036929556048228051365172134751482266660020298036656185077867114687465865203544479456238358276324223045287633210977154060108446362682557015430831309863523178664943444523141112619235376088231670921219376084163926480166614426251266625238866799589617285745251837073573188701562937611971223078614866262452332510590070642801779137516399872174618045505058448734421284457005623701322245319823983919353514649848784801251070609561385728514151410469124892170579671128545704390021769400792545601334205816146185638792342335857937867581758713735608729992741387006660302712401918378007902643648836738408849474823881308953732578128706588619989492296108801007565210069822821071480458078903542167111930154120339004385602800280832227085416606491432385407058254408431830885772900036582327780440288834036873286816833500292329640958587986162197960303819541286921021491402680466507295053468689998161782976812759353921237894874116553048162757964255793453698484626300872785216435868517695183419692988837368971695892305185799889651287327258508951656673300400109287746954838544094855924458319244282805063590203979276620668007716555791938507970594564587836885603990378233938096243158255262196858929875197561600687059975556466055391919388747719638078383851917588656227953892112302431709563932084418803500992395206149744475195865613546041366335887266627799354267245724552285319194585174140763570680112936825439388473765170948096689137393863162029927102963694218324429178050710995990490734754134751433436071091583016763426556002454129937918849384799695918369269488837993443895948649191990923020127919248498319686458331597424915561610075796909755819879304915533883313984684439105463933379395183237641547311493799996648170242413124149368048313877880528090735697700538858830499252397091167480737541500315463753937785975892112780402746994955090372838743401234445977020242055678708573089291859730804779959419591478250241593581032377836704280289440171305106610869077967489676577745504504783156575669958698595514685032789110944937109162587148713184313529926156112368451252570749500810215936881149730959674929996777284092118092767734762418497108457394061209398185547693412911053761971839969297985321427925073177912661525420083079128148434555174768142665801996815689055542975423716300380016183803867043361306020554965341038225455007161577965477240458677960221689428151320442596153661059204983359583378447824770964615535379713437509090980453678834510439123228967497025491313545264259290737941499764247822881219900431514680261813653190209370561568481240585123611357647138985774864791995711466487364724366560399830978652512302593845824470496475186841128240890839757161463060956280569498373597381875641748514911864878097514254961739555738286532128703376316703407114370164927630659888426972680102013702734662981520263001469150059198734305062965871633454082887997360075740394175931956090905827094543884005859666556134659377051988867075912934351135860206111530824121863341566254033679979432169294567774300423713260288129173307689526208473953695254579929485572738749817149394248809593823368441199034034620455045354959549320556874014712544073084268884191926525300301990082976644373885964734319818354775522734426498178143141847896773171063946466929884337813492922750166592757839514791068616699517935723343874978475427032446219950448585756836452766946690539555487047736076189578698153587950720217030050603502606583981806340943553873153010670998961410005030379904481955622238565928125744875751097035868030675049120526489028753499955887976890827178002370089242579943109078054535261699941621646423957276853412478491064909421216357079823916559276990721222939852378138631914111649355729409625791766166160667377225303436151831995961517004784395454763669429415200543188205679517591538040124860926679876232397758257897738926753317471894453453420718805023833891480250697492155856520122630764670784191309063808051916135346039522907480943020227508458782065313226941332333853533726387791970740753923750785989352829507207584070758878407351146176162436834637554784899083626332816488927970386347193334824407990877101183136240094243656852331570988238955344075367620276670267905014964757982887117094643518257080284130256897140810862642313461547665540304177568300092144990884619134717383331606336442649766800139492084247461823796347205940641038009423398455634276406817100767581915367588786716069920734713157232395173207371221454001944241423263450659953524859666473556528714296889424187483491897794599322814331917649645522386201262592006367173626812436467968118122709248833875312017597954475535522272503839864659970278054023054963489876157209934647938113612290524473458556348200233556345175874819094222024690426503697186722179699933310918591355031942698595564967972630444141222917517042921782753257895567826630347148625489479404628942799892315392873215833473258012254017034851045307631116209450745493187948013746946493126477439900535885392785138510305534306887501479482397331530983643394166519294752937684645401210543845168114732343852514016405898024174780358411571586019478435285852761911857618707469735259150120443055244551071580565238298849064670670410984769036797885403363798996047339254172613200694272090487596474527854085980835717725634743778417317228181297397080988118416496368209301264478164426696781831244050390989329643920215235893838346566160388939963984182782727042335191341358953951519459082686631118522229966670169092647364849726619918159628279846110762049448872026512358632616934397658130346542401879192410178936925410632159485219739721368708186010591674821824275229635649423477976671947376670906327908232003127738528903942702232056206608689764700866453478250459861325547269338839223553345151760433337277768252991821899487872485631140337561793442318271929986083488648145311639171263361685573647060135571197946776173097961411251103338200047252355045745527765464979049155846181573377731889390337360328608822640474389240276169684813953422620368049079489174144054410415847313617891381424438433460977016929369007026447293762890635714538854258157177698386510381287372701727591575917533335909936810704277834073842054264307336397418291075591985982937921956685227989514527592186509227951251794161646736170442494765396888043380327316315631950330382418581936417519583065021040695083602384565894544978312133528301994536927686129943010831200797643345879962254040569594324724151424247564301161240957501619024873660430599035814309565797917190876984506195730557891788800876111827857003224582211147246516781024645336124592630787392038195080190833189305983196747591507827936354272914372205306195451073578269859229378697511285483864239687948826809140571109219163251073189516434360859493862478066091600345766905854458205216548319762058602257940329033909820193968602868280821975357269182910203946221594138232270782669426819215600687483906617844726990854773023026572272735961895899351994525222857078183596971026911101538570985317370868526712361219030801147685751452868026171584719131774401202869952603120034789858095113399158419038846491516336996622117311602614886607892678963665480192157631202683167968215115363007527780645871707864625722110549647535102982828276047338301018336961654662652636372699957940734328567970852418170782508384525129332717026501812498249661265435082192273906945077336953931305784719804374514803693323281941187334881692147430245315109234678655293279396434523867503119059316000295679153347164832631133087259827037281451289963600378214443626715729759699727138027024876191406424396039961552922070592265665935371551326233019970323285925418647177311370558906877451415254639275913279864941890237164984544668256569145162445145729566522323201548965851207268510802162876970989527471541144028009984577336329983146800852319734281016031022529925555244112808974481648183059597835898280886153347046872743705036102905338204941387286030155254466368725613639933195521168466063902406744866952122911626060559192114684711227262764084314827551775495728472950453184832623681042159618704748293506990760176438461161230402619747845694632835680671837585093697629791748256236989716876661878171622094788186872780082687297497896207252254381998928068444240052822297766745632630336154340963354356864764008618654923125839266678529938102415799305535356491660932920406358801274097894828855879660999604312363706992567803162154610649209039903031328833966531352187526377685104253577190443872946906297473270747068901419547458034433875363871885731704250617219327511780800228890006167087916655186759446321639574955489281287857439753944203798045007490954152284811111449061468470934890258820396601051136845349918168387576650790178772270677831362238262095857311376124611760431562762663970396157160311545741517195385027514788843712705663911745593572963980260128755722174633077805376009170160494695327495758388798256815066226265712488070156465114781053200938749360589112682112854664065658551379736685488308796694732993943023225592360307422414528769723022191244357505723172756617057389546038118978965935433570814080562328495704063311737651543905916689044338259774212984008220650637974017622433572025671505485652453219833911917729586637391943027773718884753001021590129279026064987179859591785262136235115893319564798113128047203421833713331311064629333616659770537443059626995451413859396106404923709205260943764245260471679209914330827789448253539387537280334014072062558779643433602572174250136941159923927176771724463484192782812941440039840861568553231815361782583253004486372242346636129316536356985650226844943717526384607976828053766444868824279430145906955300059518114928642163494756576620710143323909513591992099486004255536053293951365554268923385446286687919555865257731196580662462402495601657994739829968984070454574845069746929108891184133169420740097312255706843800787892729331241237657334912810256884965047942871339957111881307201291255408369066241018592774800987189263086642170861175688628837928469051757846859317186771604466175925077182491708083180203678223469776407355588015133540064043564280067470125242386493556414417251961758776203192496090750925005405302458615970206492544393690441786686756218882858927787555655049496887934205154170211517741125469376569511125953544086130081997266524259477849540739449035427951973218281558278575174650859081462855241159998618770745467374014327117704864981860421984103345758623931152711521751733437544639695915827521566589436096919135848551815852070718112249632921393822920972715620739104855579530642464533752025927219779248082339175819054119146714321875328261712361262074537233312423377692348008852944817681796435758522560478783153550763354409107671421844817396229760084228749851808341106838657235023004865305228994525433072859495026988402847240681769674983356675184504256241763716875620660738849150425259557548705877024428236363996924418455684524749177824711632601510311970383173090325825950598932162403383095687492672320542573296745954246655069275838036316098050728860712977409106230822729394697070649716959761410240667179405752996757476817987071103324499513358944988145932345519282295973529047887758211502622710827125939709218756661450557998181178605198589782607703600735982253314511577801654021143154539411315069401987238669101096556496197270003442234491542062010193235048030865418935835012235350036626898143264461276327072630882444103834611027770313335219857169668954987012114409494204741805070959500198601346804749806795541504008457106497145011577234734090103045635453182842662147767393409153264893776174792445164796165453331524476243232418941075523038196430505508745203212828862245855549835884889979694793881966522052043852226408059044666028127355930646932724556970989539576490113198086161857167313595711418223258025472612076295949454650580692789294501254478461438639063763583499377391140566536438618567230445249473660585103399824560417164898462048480979775304144222423382282255851904724024128775084054814562333448676028349820668097521701440745172813312237454847494144852141068752610445502352500683930113024304848562703115487599546543189188376138657262608367971305272597867500690643693474214529340404164501783618796242298663620994455994801582727078094034159646267680848296349246757281298729089298492617558386212308945107369670583848987813577956147490970645534298366214634885329470529785246946707060263316874247551725516765882763850055464542333227288951140219083118604145480520150613709598860414957659553587222623133329555595340733711430402999000571958384781948935676988225128370693371803298192889627770976421945001619436073869289665317911210268220643088679123205083683070015486615918053890953255310331759626250074283438949598329186049848685456873475643623871280662870571753249624192978459651309070360287691418793643472958888486397538327102886666769792434360345146671208505613239524139628146111262328340374801394954337648144657585960995411566461208740425500229352834789321157588622268866584733104656790556141054133694597926414445069575003306577486857168523996051713983878416809510134988008147839956509382497226016289055434390872644945173866536399876636139681102795876056687416846025160728681824106647508907180977623562195642325470928226406752358298952765363204561165406209030140779465100034314581542301713394555783107969933408196319873375826459981721234792011203676803546050776249813486482318538048506590247495069246974849254421234872533249478840345167801941091258230080781116096438093402732750039824522233306344966791010672293820184390913300569216444637918213845162263798705578467257766353392322245536502148706145473293504463819249696086056422133349363273990798093177680397710667563748709037889883099259651935291776250149420567184843322869012752287169190579254734809665497451162318658038665028861315478691209294165496508632271483017464877529057862513739956183854540032231198002407824852480321286690902335144147022981288334783105649169462587231477838277259416668209330016368515334975639731087046364972679645062795914908673322962697209352039596953140320737533119404167884822302265306538645581318694095190386344534310063549060071521735435241035891675111567851590019539573815566460296707335833709955483699386535815321865307978898928675005910220228338364673983895914540534234930994286687450298197991059682346244744074000476901750361917923889817706390911506470268619767643891770613110630787937010192513679838938789010739754271126958842716953229749374328099383187748593761219314569524460119176939525428342674260426493476686395094158431138362032083557975611708645245906471591457030506884590782567874249679230022679012456973019613017245113884761938214430484710326944437061998855092508017471035196257767902510711657555713166858287393510680816630433248291099668419004433607288470218037336616223613387400565407273217094572851928111930869919775345538861576539075654309453889796017419845233161701766049394001919846246958505343408714461519028628668515947338243120719819401596790664726134826418579676872421436392606293927689542115265834542359825714723078774646285157134195932481560855833129942395500618355728188987427843384276752386009512813401014508082288151436901180908676646123047344140503683904604872515828535423238554382189656418655653326857719335161497903183452421132497562506853213238981800163728311978154177924130889433218182633624314535025508461492740986123719116408632885178944613124933144588812226084617795784408521523592146955499546466116836557065878361389601300645303235841165036390893441204859975103033593538061404802180972853954640192699914334979940639902552153534008648625061141666102232437244636284790223301923099390778884339155024109934297620201391487136902536959810181710355082687707139466854494353157992553040805054534681108507556393064118562695666053738262438475496171724816178748626496958249107035213355532796442009803970658968209098804915320640778760226126591605506911214881520203942492378345750686536761514278589560408216666013426423373925160376688697057813124029228004381597084909526125083038289175867276181113037276840661232556237589501667487590669577748683748088385360712258291890740643300379986516336293865979751106909182914363579038735368999495438180043870695190394777943656108464429426523301020894067115686567411519166171829425944720535162258417783656749148397349765342505074883487260000722916743032192766322923157354687916985837044301234804342787477114601864654469880848635310031092043927251150714138519505007582851863239349178434231187385604964052910241088624128017049373009398971085349745119124350812020765358851783344238574516364293305699688671995729242623466253359593419224221253579799799766821543981336096468383692110292938075519111738529598681680267912284023397156685661331737115478092846308041545646757091658527369319980370018822245797568400252076298138940754210671850437739437875300900767542653709540860071248628389220341488338349186153817270564114179964157560795666623845646165609694719709715813172489024871786839813503179539796918696127817318396889327384555872035008556882839914493875050216563123328583113202592023673276120650446037303877452905060459599503275918122327544634847185386515567933668883438567446050767525579711266135757821860042312227507567901776756084326729432487916206136276772796922221820727609159917231632385140996117360300345326132489270559978208078519856944628615595105830393930036114927882602587742434500042499034457768744740875728472737669308440854369772161280208158706339044959324792712501678995445905980322276903908914821480510244092739516589257950750922916107758637826254203932638898114414733662038997420156122815814989266181165397972119568317477130411714131992737950557211112925485864848868942216285551174426169684083300980302991210364740453505457785730426246346618901042885712198232785763551397541171782723256054719312163546009419115624311355175679900812418860612770933847465929617818881491026709181771990843728232900566019418793576856921404130825099833034223795938194451568490811711538764503873009615901807004068098823410712321509912660788833046377765160928890956695935470132166455160129944788284095855762768894054420272817937091634800789470970166243297416935631027348582593219199749552732190799541160063223907122534254502166967747154744786463851295409004810935973346315526777565224919830281887572453373750860000141474461687401548543305530064712053809756458075573647527160604716758442897491619609588204674015007220230599825213513245334233641064476854710183202908025334517680753130121788707900220069192583815041740798895129037554523933695769929529314261003664247049342303633132006960902926898441947588846626483818992579542923513795232173762656440915308124449124355290139351785052037578618599051406906593696984809921537403598829630547592727917647871159586905000606765789017494765653753216358778586027627788596920359505599981579214807553185092816052796743774785495446742843388178527388720214626673637790073294426735230626429392550692720372248413390306912162122160626909541507561149333620172586525917332728285436295665324384284715766285343126151601375859100778196611857577829015010245526589148850411880240141839944281069335266376614162807396381699932413457082902077760200178430600064646042213541367807260864948941522048672282488129805155403971538030088290021949968074929137224564034967013624833398572049412035558470576342381350153905198657027670113830121781054053248239165366434333772755657502888783932388690185876079523223167794202471793339177723355785305879704593563441315123075028958890021881351562574266982780080875367525330451612043252306829465362036914253548430230332203081497491531800639832243454418396223445354205719752454509512206990246432975983826506872079127106736293678534457414634059960976234913377739683638512232984694848729776796767588162591316721385333461855573839435148314030449020109715336888366884202701725204251605048897440747351394816659168003969767968220929588462126366612937027047521831185795086609188826366975358585122372313782827751467436564308471448086889151766895769085560373783956243714014372782458948076638673978799315167544376856930493559956195832138615230400632973855021563407472040720654209724719430365883311088356356605344881289128493378522150199172985695441503136755938453397955572041224831905914576840312811736617856142207965136438434124745416766519212418959528623966261277233186077432061719503360324729063890586804463811432382123666928814278103821917113448769197004139537932012061883723199928824098615224432907221210908537421236247074363185011445498958687584677599063488126976140800319150276709001962008625721407913712993533390311005608359773625003242867201115378911972285819620847785044588210134573848567286116378167792947637782399415044142346062335169044173598030153014676470264014866087053505867539194464697587253269954700570573122004620253200478331832183416059598000759968253833293195942601439652868534914307395424366884395481015028669137697652289096583677363849842481036386870325241381793644558059283375920639483400277612782000368976798013815156984343678412964485847791963966034462288533374286784561664670387553830482771988012372264431034138222087081317432149506951556848495232481541194629092429335228751769033159880667381603106840832800540150833371545266067225798265815465631486758028137449861095905828285644365093935557929814859382245982388609342302085489324829701482235342709435633073136571916508798634596130316556780165544133663882179762537186355055180777577757325617157750734559818478898263482110907280544338791235278556202887283535353656436611411469851870958268514914416780906027622889943390853770517952899393604707058331026081980809612280951960694447773951388913963348009119895068257889540253030937169015186139082189803422717391786334973327305242486815083880533798350141231293993471945328545427870850747093680014780662623243437802118419598211527223220593774450918674915966618749267735012099779113947275411721101771442799049157971256097444381552560487483919679707491728691904092744128394468853064705749638667727018617019106216990132258780901608610613336924137509543583536298278862708861465900132031459116203151323865029517461483574743329207882995200610066375436047270781659983488710525186441890909054921869515561690510095985707023107110120366686057254673577919284351019713662326224315353152154890899078212643133435645547890557117622422096448309899008296084754551487170238009672201042270936502640389753108699232017034801821943259563256225962469698029440595667501644536478552835620508214323096097165225262178913781248887884602801711881162803889262607370730460207676909948771325979644746586827886295070942270787866252073731129983279009635996456926257994519313106517314880563978837237147798842701961676086356910285131048947305731075522705285685515292502983068383646002863840935796026394858385046866124931697506296818984519805667293936442527011233981199440127348092565916967018164215466919893808102314602034847542770316612857702029259568401734175959753411548183629571343340201273436413301726499495657823268021597321266158378277757078935867087862961102727554889186076460097279174384835455495006971731176506420364063071428909187613621628419902969682686659787508455198286468769934233755827550418845278526649308237608366007113852262585139312343197546713007176850058857161800976461821969933392552408057110397002367305723265763953389122537442526108316468952284885138178469567793387748458246935612013252425123656449369957868011569133714088847453839656534137965644839428379076092399594536396247441284913325693349296063936361517433553446473051677928639624534109312032383158989220332687363865918331965090794268131598383935465224623725362705630956807587658465784929592782990144048755957959130510382005981637910570380922689529772134777501559763998418602068838291441365566492802243327772388911432824224653870955112762583483203851224689834780111016638406237973449361007751665933760586295008569641834388230998368969532904548419791580895964126227625362363797153106773508801093591614026473019833858533379098934191146315746139635241732457511910588296554804026559680823734404209902264616905632536818614812185451509225410223350994009677512165132283534810353019337221149504070359704868809644398284649601382944793382656441622688183622222616910469837097202622935740887653864507690367770849549479403790110694156232827333093265010819182551309137139350606355630230976474872420393133057528525392960139371850387610257092778596512455732154235483738855774093044046612086897250198421918966520335495584606585697532111337029890739682430100950792593451328208798617773045174166767354699593435959227484697820799724327137695258903757095570912980034448972810694657538766715846166870982717731114985787926065724485090387276186960335647262989104281254974698318558217849569981499556791053736952042007627959146544095374035975858917701612928480616954882529738596098381700158513481304057556531665481260804581745391710874863111206168357952574062743049178789179924282182473063114207718650368767567242057836231657706135348175605110521422547733928128693529310926678517197599045928489949299224221340264636220265658901141838800494187899876079449603211189753300884906590779791913138807799707202827845139925911053605102295025426360133713247085775648708704364255299747526790742889493106378879902643338162528414675041460823160031495416228734823539000939101076064796636234900247416282758317738398832145055271633036378008673448813655023345312189167881999490840691655866430664745671450595044405307330039410660431918025755352690833961246289636649620398273829693737514428891078508067867602275067452627280780042444275916210654145609235760543238298551001726861848967112090914992343164874907244805581086975006098214810984484323343659010272855808163710099701472481621278287500715617657737976969498420113673773757788630579175383148870131618147281881171046021101738831230197139419640477481544459477209072239939113652786148543557699983346579803874890079987972548191064807289486629087940417765606052212088324232434072331375660295731610402634158079388901167381807596189662273896063799742653732536076977347036713095807488345784804834376812649488808259777326029595898356716832932770874884903916920824194325137350912131892440735548642072187571735174674552842621044558341232261427630405969625056728607804981396175747527597553925849073812879023807180598286683315681147840132087116258332730133785563435503880399445061897829440829084341693814605157259058208387629038102855667114800178184886510724245771986201692641329886087446188700218316411205033386678837436370888400442175884300987835218733488645353051554714349617461644828525678509650286489486552177650125261904721754567918946996641430725221959635046829964953535272651366794794449029068412001965776157973398149226576241299168886901903125726515688759259225961234995886951376520227037498260100935422719604919260120702654491856757593335380620479914986950092702402420718668949149679893022189484621833888558615349229050044018655662071228093288547628636462048704815823038004908383007777325082755179050648283044588243846760229105879321399980804129820455942676523555640906332147471023269865107060587716350294376579316422151740007277143769685380919603207699280600934965981615212852835633055996003415028198117140137421315933596538859601834858940774137196628721199360546816414027194749185225108835027392245407552730666431499495656261324776979163965051239235252825082490381688255420536987759999256567225283478988432548826320374609792538692874249707345495972447096473047364913752567974036976878482521812351820194314551457717530095744578210295924603874675308100014537451612415066645045389832822179692364293541646747449226092226433569231189658216851630513659736703843891404474052940059462032324306434052924182715352142908319076122766065843719466395770172661173977854552623122531265271475039537858093289914093348618591699047246215312276252782029426534068589198558530926798527025461631288727003398042592523621788243889675296101956147754710377088676142928367285603263153964614563450066804907656923286232844457439508491511638597684017904112901879209607094656865125725245766822405502401277073107357888310739052085269932508753265765011956902900694356993049127609830132569640560123016533377291089250267363189867884608705478180909887496971032174573110760513588763383293087315992606358447618978824169091607359482386409058370220193517838731632737241441897480777962429001340804065552083526909947725257510940560950804111594370490912062114775423813785547384271480545250099508578091320872969386181528852722757272891353173359165520545020442444980718884911833193080976517943920307496628531261219882204363993694857959140481376805271129697216545351997635979432437466408104297529409507089996185274685049081911050745770419554866342071560468699171524835992370059918347983488353675158707951296006178246987418963105963875681672066915075794755765617096042699294916357804056864916882942725918534201412592512737926597540815390095159956683932022455998105047434688400214319255957012701708281687106380883224660758512587428589288853403837925447008876479069561861895989393204178333566351885439686925303571323163357986982165186611925615435245260648793249668752483079631030545956853713453341545536656954091353587828764032482713653025943472708222608013940710551386697623392777358825018244852498975720582631356199967110817929002605338580748818725360586504663899993451648559964856876940789182710288226588126503417256486698320996267038507506479560917209306051493300498770610058718353586509860986688270949593783176280817085625532571244282186340919246496066685615572005643800185911271133252042993039457810943499558895657439572857013703802414443109995609613019935294866548480659212239515493444952315380725329772895288877699774397396563027489705432588021853727753661396424009666615530374584034448962311222016111599727787854934010221009265691361757538465676057887764365228319932184568824726275292741169253348042882448379438276305908364664869702774141100264677526302977251327804725474014504725776659459506472519911926752937322340209096213209675664158021195917426498979571099863304150117799080991679429254488754044402689868023033753608259097009301501337254160062267331730462764815616939738306681421216809784931408564547426788321598078870544026235675808826858479767264679941748705816064099043651959303235115341134289554430594140454720660800526109955533709941764605069360267742961450442479863719889394616419286522612546109068060943732201131194026929014439447681826906943497178853908345422213952189450256115676378888415135409949790041252363986910840108529614509545799275132215278578083373207106090006431181025925587732960867422448465103991951916422166473755193550621346884738993238976261703638552873788515251625242873734651314698750220648332485445179280633084589211166087335643696517401587182493451777054500215095264091952874204751877392031900957565316219131589245661387877401598177104941256014921396697859171209035131710640420722573986531388242649902209860702352940319036971148418711342866349123776572782076121811057863427369082524844855860191414936208906449405381621533495343008170222256357836936899845713084103576639827203124338340486439823700585805444252555556380919045818273221177958698124486866429505114453241889858094358558848886042994948851020546808366189250987997838902229656210531780227650234457495897088527607694372319811985225160713029841842171303541428008011111335466595979682876670869140171026486308005808561846132199137898896548654126270873614207266429654254876141294520789282030091282098060323645652419237960553949699800082066618313560366352109473194683437216346568625455524311295229413767595778568804564381588557098647269302679042266005488645153170398163720820599608465501765297948325104321448563793468126830850745309039074537083710711817894205708334164104725657046544736030733701770196795290724709161417591756934849801569763101401926366228009985368700240162038882969389800182414163815029572912219682508367486329637920420568654408881096812048436326486618433000151797321338828269851661107241764532982538040082197223233349036457652116943475299791458132249547438961420680159632281141941014643994407231138801871875913509526198998854135617458555300900643898665805061451790202585630291675977072316298416627197113033588976437061387364709905625521950818189407689778761141812593663711448936873636612435827855140996987768354267484718675417546935868904471034213161768806230279232503168414433717263515646413809135657713998116096760110284209116118257352433730332214934281447586136914516291053738091730496837328243050309613579392205403077290855335044467915058080301890537535195753392260189164468165272593533352085973681191324592598202935641858349070605833826512756614766969665321779940189068840581830743451410908959492372136859557127123507218043501903770327933002237252293585259686459301305667196962179117443931321740946597614760391878537757271326068652895344236359601057078967112908192226013399227160396824311351616060519168019251416410542372396275605594661746853792779164403831953656748391440857079548333957175174492480779785838874467078348499946403163762433234694778089649192791620394536803882803640497078231933845046680561828357713943349734985619214206040094525745394319736785067838196575124633249717956077135094299455291470752665373013028389591784657414593362063404298971571543906769857103702258391354435501171981629564367653221368445005142080015309002276559160763148957331373589093072090829072238290697622266813048018532686188658248476546975562016259064491997299900493971545218349553733193069318292244573509593215192210020330868990657634357186588148536499570611348689204697727918550638026245456864171669206717328805301326299747011347266916547341195635624204165438963056578029034175571789830497959693633544888400785585667780724807113456897069581291632746578296059112584071455882119439226855215367209729865732507770845315509247037371901744822920528859189147061985844260252207154134515996205876211557993285554889611207420199317598744915601797231543528712931011979344825609889005813264770054155887766788361562675484313110715102060839541775540927961814450971536731724441894033361238117035422879303974541101474768282138905658579210688473465292405843818159183860102278319509940311613176451528565745340249578193531811919004490982891981730016698017294559583620809096803645025899744387562416531596671339667238227684605876362218655378517440619764719353079370891042246258447518140139767350777233004072353382109220946069344695819965884242782940638914617291531551203467945214590894138076654765104366068102904411672324684322283393538921224295512215609822985772481790305925439180086377126884989607807490947293382854043244690561187475247235946142499195663488586431878704240827983931820486375798385706985687234548836156201724403047390682717424615613805109286851121728865772567576138514167871626473257584081934479770350760314912920839573020794278044549253973562477403069488877837578109211636071981974380215629573274529328927544631876799107855480141571356977016141563784496068477872614309721553586942201459877512550752842632624467017543684830287425762652228973545070343688833189463366019658708786402972771566639657246074045067454816117299163836146610168586182576998957439861158406358133434817629085037670658198332517985554069254997293442861814368943761944464800658034325329474755247686698535096939045645308300875591106041672363797051836358407966882162389380798568184921225299375218287484566468830729967286766233780717801710859296548273977884213461631752629326233681137176880400848073411724472870041759349820984846032274582466220934344043386480195993138104280820714363886229946432233484301066487314686141540060450269128693400521929460963871986635944318844225805587081302242766540029889968154103417404299392363929156806013770091174056516395406477514422886719362888682699679619442880363324810530108262721590999676830142561794878255988911396714098868003419211563751441456236275417338782061981291868279482014864976556027172204004300399544449908952357958363067678492207811134384965415062820621229276652305617385255228967965576043544227115580294323995618227923580537210061361683353550359281595080410428599167604122052395299357834637218138782388369393937025512965160493099313288263277259122803845675209436576648337393984087998013212116975382112399137029569382772428704257359218970129700643500121668326840896317325623796847304649444134039437438711797892537861948696997296971818988777173057105829329094029412146942359006283907438283479917987752111707283261848064205234990726057999696423462889132889107018529859334737512581684030721515450029935781139673087580693843754960037395231731953683943062351756716818642855484721267351811362768774087263447144302454200200769687114321369711907244417293825666877235174780514380727006762759783379631168246977288545596141268541388133375074773336272736235679146876038180730454306885872694676828688490406575928475111837657412288208108961787282247078450579653769932120991859244623396924609706710797739409423104997076502832395724326772950115850707635125733170208741994190954310661609204845152264506122437298112082791180325216628989004840151153310999354002617142486173192129806452756300583437032347055527660538231355288909555001527451315754137034969507634891310007517215040517389669448921368641463410778068024287954169863167392649736558226877730980980000325739961614114653734884118831787925895841579016366488841545831802195754577171279098725653671243401961146287906485746172279104246657685462724737505900106071887825707724052847705804793622401976476949983976475784334567282745257316965871258807895218457278807220704183989520366831155744832763539713566963088988940868086318031702187972705424760395881873214110234788243513153302602468067911085478003389690096704017872514035556071887321349099659183438188065109493461431723497991749104846791299826025220791057334228049379812711475907042638047559865716297257043476954586623086808540902598239933976866311685337777965053944162018654290663830856961253731292517968262811800431859079563029467244668168928276122626617103711331066103006817044748672455938155360970909621834108405878750016503812900544431088501922902039332439161995522292847777551933617835267058609408453066544640360739565560508468218068415710622993657720961016039021141903512562806265694258971814180388214720810745100801190215758737982716871284843547533415822231197233400090633928673262917334556539793409192632702697361233333433368580565837578616793479725957756709175730633059440204928580073034423529218907081352274105260898134330102801668590445553190456820716100737632421281346064940250530333749076413720270495351637361995198770591508245125177362858520935455247033811643892917590152240642297043656289550570658397078267044911816993024931370411933360019033029031088080408518949384206406524107727600760638362230165832429298320824340583249164918017694647718462781529467590509514246963465673052832703193288690354017516545277037932152075953852847113294129100601547655022626683379868688381433726742088410756830642470846763549570172804382843626924701340306031680319435366121155849992925747961613614902572178107020319710082425340754634543144949860702151607513155541743348508992801391011590232325926098208647694851275937044219206882782313941805740175404961536443172129221285461136655837645653582066397417363611505737409190294536637576866453211177801911327660096999660467334698881696712943335676254429730449766702353581184150000935728946303851926492474892500582422276027332876205693049816981166779191168162775244630924180288838156419232380803744052736288974682886321418749883462262069315952323447728728229249278362914172733730808853645460200472065432500312016960559868289960894578570493638231839753223720279740629990629333331862845939791881540058104785119159565634727844237070602163847541382434438430837111938164062126185990515446337348357239132140245795292041198342055578100865437989135587193992627742298552622260030630896316310497373537880771407495743557093836206245462830317026566826056875483443955547748201456408802595245239987456682812699053371726823692882151145081789887978915771639353083975108440909240797637000830452406202454227651751595263299700549959836471829579286199719808711546707353829244316269931156438641097564065310373126913032191727601550883047747582431341524261973108341769766339348343856551805371506759246948900314537736115662091173113888237369989421181668498920139366129393750129236090539879945860190329350077328497689095439285306393271058294023719971188077987816914627577340035257181331890329642156171272463284171456270257920207837650979091123672477752342244528533056141701494045457413135401620091569154478758463653609644813843498064239697418725917482114663376354997020912613605481629718609101832204553150567665352207577165448477005349244550783935761599680554425079149041012879577755147828209738783880036591447938994951884571596845412818836889729341966605838604356748711940914165389218637245264760349462045350801300393938800265909771771047499334879507083571202679722050867260714653151855765669409859425636228413257210634107370196564230759001959182228924837040120267831422720621189459180598028684082871776614885736638453288351424493342011837332708949921771359680785221556372443453622753833084290929982298775270225176004381895300164131389150375968331131502608810505314734056493075171750187701456767970968301811572770522244635998683409142323545749456576727798847909950214621788444143799576474966923200643121398084075573067404113254340590515760724852712269086794382544359924008343558579956069227422448352284497869555089355104911604972477559254947503642890347487097075472869406461079600137918828962545069391104977074838186745662870543706746043521085846435816146236786061600490208182851683233697273740568592475638645135410428861452074890916407577207318325980715062419354323485797589062030330683228681413362992526926745879824492089533337878758331656657424107285746093575070307561369542605744026112225866538213708748403218431543546374512168918590755049127020777657940947927842313187635599739110222846631495496814539083980231863393002604353863232258003184655603324704888424362543521230400414686833825603958450269484811526405831197103282378371182478633130896277023085863220314828567998875509373106465653818483476997682514402528092384684616489770734060869528986715976600060416364759478511633350861784014340606133492963062073242965653648281783092045232881249199645324073443672174709769199452085235699651925195851674841534715171995606455022696046223784117820518034648087416502321551204116047664215994119752404268557058245476698137694621451959375679028185692097360208140588234473025946627146594263370480929371393000306581308019471227701297307910459440158339889679147845321847970912959396998406746391476379145152148017012586258567344737532698685259042330992968234389278159248602874407113642603133318450568320340956749408916574702769738396723779264765407139452269660986159692165388218246832331814698743995855619810940338983472022919861484924160972903986745292998664622382237450194769509503630244264742443257313117717186707983502657277066127138811123437764455179382818224064373177717710374425490642950054500524136349828057805237935373986200798331674367184990189622456200491331371854727550391202151066845909342250483766389485437541118464755607254482216028034463928454659092158498671008856126860414240692830033833564592612342659367563037792295380803972140632745869750477407111870891539575634527579771344151315597135676086549721938097723724962402421348391894644931634189465171429357578740242937929171188794225453209626502062399220588824330538991649737074475440011688245038914809276340652814233638048127437016398367486201120082234557499182757855554873045486161054503655630375761844545140672280452059098516558166999548349588323162763224250182900271109693919359365918356522521818194199265974211064871804276827057082998084236422534632566189094081504087615701921784238310370598950678556222792240591360674360927841500265131625324185178422199627649431735841766865717328149562572430168548759735025881295044911342082445750079527579824152071301990131080632166418284450840381731909104079945934195540452291377612645280882472668947016773656436645867981229529105678895403265910906228146405905606744705181527666952735265958763254503677593672388391277336183506863590127903199971448993313462165443891408213559243087036130275920494230742323824802669334829944616544981179827513337849474818315461231938409536821661895470463841889640072619010203868135999873582342894992848197660499595799459227150303544807594620218598985249899093690183906513044100770645935434848185265870128298515779400462238075395301703363091160039638483208363459585270828017621533008280191773620087944861314559969479493950931127469417265735474089368563939014234883060174011257385908133267435570863924286752514689553715412346089329772221479868552744160730597980918192337704301363525608449153259559525597470304359718201502783233564382077297359235390372185824435606279067309443034524346879694495266879432129770250268530872246587642086003141064851720066994746071041075625939450000479808441162866840183306749919682323477188511554615156067834777741438138657106573650331039147176052719699506596779068838471011142245910990429698049889609892964600922704861395589661146301019563782055508923728858915035331119997892986192189488327881362981170437599059431581756169618750375102021006760600158084005390118323298104645971378974178121303804352227697242830927828529460994250876395124372845672013218029568628208378858986680574409793233217814511718566900569005919617627432206177785217734226133766071811427164734690945679924456646112954633923757616016527047143633377677939957407148125991381717384208424033477143460455616084530852809983337541463014701817299948429952716818395909841938511790403689537507544453382218339178327467047062809377650708499638625082902483002369251724730790499825230711553546205069905973567589943312226376250197941926374495753451309973519927381640386332795553592818739469363036377392759423534295558580794977461459220830965344844912785946976990414936685902304493457882425787435701299740966014906547021129134766139823212365266653217894774223841811323435415064124621213273131920487094973288114476112849372624510485444380652793984955989278284019907875163837359661929337703318103673266355233548301356576272736480421376988103021095545261117039891790084056916415885113763060195986122870425231186654070741489455645297392143527408691265921532757034210063072362261438744629224734038921125691394960393848141601758136597519280285105245758485345438396602902539523422931823512624918619927374874076205971201898956453196677982342564700814623202130543642392295747830097989456424725194480147674273848356494268710262711767671744960225908918759371475744217452543237437061893200348797345178610453508682202714541182422716771193588188217017726497234969714482515042925583137040136001834894294291262410312317482139085665039735993288780434915798190869639605809479602470641982994804228004226349925935675210933898314130652345746989279799610143516035279319177231445034568427424366080239628021696715511753889948987503255078816784084426376992954588674662870502968759430612358641951052378008271306018703859417471442869806868737149208256677674711426966900835984394877835973680965993482590011624726707424426230839369588811727763399006463635696962102700514535505117005383272619051923375642605072747413369616718791928853842784805162339217952677784406411752258732696702900981140602930082792964746636799473429245937694514185409487463174355693110924790797371603454330213204342572078953077971345939548682220786247833791951470126546765382555778730904174760350398919106937304725756283826408823287165868165716853340067872604165409180833516016249986398261164171873134895372757813504030104754040403411855834349323411191372708978707532057684398241929017668361501983924310162394616461084876883060307568188339508840591542688117232619021816600757721343294253159191257014106754018895699786616159878063163834600567994358044276120077543885756573475023903966478598634572031565556600255113088195207022738629886661494610447272977899728576382750856079629661641160276921501525518168161113937428220976560146577037440013883846285669571239295357615114301556314507902982973192873231382691142698073868455620052033689471927380101375104178551765303354790642138019646542147431575912840312061723893653343250086197519054195648105458573915930504271419953446461559593290227137738562039915291143544057696171963985747535316380690649071062274395387525377871828360661488346890808750707145379286830227580824346774414687255338114213966349852293462627707947834272472976832663112558974889389810446664499682314897120767100128438331880604314069640257627229974800638461965201150354400481728197692829093905596150201650092002847394083032074848472065108287456815459810578321157390889800303963782116305053574522427557665593074089525641156351216250896020563965115961629718075423331273656706711836796568241896113311016545572155235445080351157725704120057640421877520341307695943231853963624258596012464482186868661124065827986199920208264365531519976990776152700357748603993018377236154061450307587032157070372738282928371461197444035424740975291268110651248046063237763415422401302397246082024935949653940676810784350724207988074008386784122870491230409282086080768603641451517745761873922168467626164573324842487430850449787772222527830682537214286633358631643874510670289810582573709523591730042448600008903629228478815080015293397341307573451243586118886649802290162768449977588077226845898429405094106153520459388706684794904939675194896010383120440694091540300517961301466331471385306665820375766891380914835395147692569360596714693230990619642521112493521095999519510324198550600831615817832144325748124465431387878233046288396772442202750874094491473523601915430897783236701210795930263364523546475206797244335138770013341435070520384941736992545150297744350232365433309235612554930082986176498230561282751251134394351542012409363526142940621111382022096264010164588028631933727090304129411920436051106211470226141526959167335504065698688613666345651011095182361647970201599491402078542807518706811615468916702902952996365419556018592853426277828555763108868991654737249267764294773170390911347792074040647362898573849175692027834457159923298069134372088330466647813380868662871486561904695650325260040342539012089062147423763141807870871764911408838149838639224064150938362965316986426956332212007692981340656150409800350824145841155438071184649407413236783367277322176725521251349460977001049579326191005079779372068306562916402994139568405192561598408477810813517437038540886390841701256650331083600263775235062487905785208156413450857242776085085041370470703402344490860250066179129529067238669937338049727215176162013993162309868296912860806000127084688398197191558685960197250286568624853498829686782594654311216063456388881816018776897279692280953614356206566869336151184030326276923916028130131240014669587336947822447438996026514980192137147547029275398991932765637993854986631892547365683160322214648695138738444154565130889305832447370399499367984363339631386718283763886320705029423438287861472376621145117591370927785428819308834880484122514904241676989654509306984028519892540969797629264828089080690042959878754760046524936017235544295000847707045499484047207152187039679878099611775605504298020799000933826791526675558285308821984765167523448106924803415304812918084178333606758284110645657778607337684499990389673263507273607392471679421899787006922558989221481185240465839833480758323022037926714360214370303478913514976764237669096728555851050054048897233305823397874015806577225285357843529259530498731073164562430218386771462494599279590775275519565388472646410793453560396724332949108850776869831952171958420206115368741735795035235283577551274013215418035806887550009712781766332847983915512330302907903932466474574108893931426908550821785014355619451414629288912031361275846838172932424622098240326572499248569885189142427831216473111041152903409235041149737128337196758832128857441335305054975062434707237581698002458970319636599252750371133710702985035315103700079723276723516271037038017812421876754831317878908269201591802874857560714456142014648267980442878020165668042963155852537932781716015978413917522307354791222274443093360979437963499777914260681023929603032316203350297441968850591406644778768885507143090682733230974162988121010747453852191071986578531124138876800177570467330006303460668368473784222222412781169325119035959946521939226949382163194670818003115158754503852789336278293774944767559167532307645614608995865239779656919500541026882464176720924333023037294474880931420016206164492932920727340995537147132710592630670441959255168066406784242033934400944083368968395223101039731157999551190394847854435012779611908804380716105573687648767680643709779320615179714911395695565139515015483520009388394141840061217654667344068632225484263446966267145287126893831803300221954832447600881947559111642910154800006390422784532777102025777122727966010779648748034382871154673154079289484709571168597224151713962552156677554504640296608663807830803827045449660121020295502382154602001563606701068420684136646655736029825067210352208505633041919609701331568521140978958074243032486061309969903143906406415248007763786977131074972903095779235784667572668055430209558310400473031010188127577178794433709325189303951566725091206766836497572155992053042323586158057152550156400202265914409850861641729587207189110060900803715232297000964952385308199561794329645148852951112722037458731605255160045006446943937335157165518794983458494432574853345921271047552629745569979501292634329172205685649253267244859760941297622129540954723420608774029775356980606535789625751854541477793492980384719307595868153213674862375967863848096591829753810010522911532049525050151229646072284210065842976837258782126271735324521082098205455705014820705697686557328173347384903726909393189168566443525444071563805390927571040431792323656655328915734548057965614974543231051141829146670408578107428432669777935119256836940132585042858824939504081303766775585005891226581256347539606191960870697772889901419219606476764586370750596805733700087930127800366733347190976143262681834042535598293975926593901531757179678981692012098819507175223061571370462870447305735031856497010330722448519282109172068946898690333781467829741661157710613805672419825536137687272037898832372965219747311252844468051228415444604292617975319375300097909650596082905161379557562676411116076039143415305585102721382335958768338675901458300263993072922145624063895923105880889880290602539779594969981263508209752482078071182654019372468417960742191221556375127880776031506238058084548395579225827080994234865425460292285938285874183094713301386760259718115162935208100445065703325949088860854127589554424699450208370419765456616556204725791293496898410544231591116745747674959767276325798407805060531775532526487260182483660901330125342989911412413512529429214531585665422589608383079756872085267220421943102613175437072080912950617756197813826934696617716823158870058225489053532339426407161566156868980458799653524580542210071087760599562057889978516826479598242740746315568783687786533015693522717746729574543684164863314231148730548629954926344851254864820160696721865494798926469414701099677793797324751215652319661701985484711428413717831496400173172537336544113205400779088874357272177977641738919937110579250604927341143003775876374933215834389928075432638974807626610426563713582107481071236806631655237197920442624045290589645043059687915154247673800014505221967749277670544708194421914777272884803209198849590479640958591221379358457297356349898819114754915165912635856955398289398995855579612179928774240262147877266340305985382697692341464103074508317194125535665601040928717108602253965619031482000095315929842708623085726680848502571987421577477845788228946828961987685457602334159149675331454702698136699151485894590356382629282723752550654039259617550079809239633682568814951584617839668130570939223226651376767165204006386014020684123382847840362633225622153151380230075694278652648263624911523268716221878622292920348105389359718680359163268763977982767735191029827640490680194605530411520633187658123957109635224238279363801550208080102744117288631510454345941325776582311456885113038411736045089855950063808473464958149949782047901090233433745474411550390195332053007757209837496172239701707846220297055990261112518882525005106973129900691661203604538046844999619437885777513985811828022866774466592218989491447499290740356039076859539686760157167741529340453531368410226374020412896144984677721105185874877471167637573755955078564415895461191774341038994096244071933690062301758703594478313366029189712597152899357714791751343087942786063640928562519136462297587128053300668350115438903068606051849149714213590855573101821869543292109527969358040286064843942588252086119585649609442781269403152691476665351429132418231710409881036258134877188839616090880421034864003453026861365769063283411985177982317093542476540933678481261525914982369081716839199255573138961246116746726908217671820765672924274812077900027641578782875331860116220459598053053885049005755568875351724117619092836259011590217115541613748066764444408439879921016094763724611806471969523418248460511224493618344086906751374858101966849826638492681871420328264443576684892144167499311077833160547444740536949103048812103216616254625576761386843316897650707899950072761339292164644118748793525741864496839873468458729011203827313146830726981642131712132678149983932203389821575959400824650252810014637089851406291298186671858185204404446952557592831412801143300161453272981814428673655952573827645495208539129600179303514975555365498561169996050187044275581433103163209448718380459079536111414984065739785435515571406274129001203048844196314982306395177241762301105174322896724685427683601544184534979138764350122884737845164963561332327107813755298500251947870954306287630590224841423229225160795296930383667563242529423548706498462754903188426811637396841998069344040712733021375968566793709873509621632153249610281372513874610855750202208540185059074572326046978236853148626979649693537930461967353752218631589239013009535823292167876787099540571824762626539192697705353354375425196296184705317055892512055135233828478186781970748676384571938571693801356622254530481133950648504984466411786494342763300809069149925857859764394090793859306303925581383889056246011566398805070315655189394962927521701909052606476529869540540808630425179241651436200918324184328681135635355742581227941430069218206067632236126806162970699908070411484570611665304506817515425057940691330612621204879768373069088352549476458997672437938551502468294802253977705307420160462973736471293823453246892498511298730333060630813444998085579625909289019881150384818766202421786973554394917935265370586931136654403507719147364693618890047243627638499993624483537664334651303724812179401063699851017151692024847859182278286701977277084825423667459261851316318285653724139967579996405772810068110555461455116756433227751092382202924192162629417511234884856533207310829523119066989657675945761276119237068540222609369195930561683614523949561016802988634369555894548160976569605308354441129613862361578777102418747895155649638549179062845380619017474574660498666123875627353567358999618725907029007582929907964503011142300215773422903707278727408647353773105962537142241225011958309686427378827995231619781133177778673148018152748405294275550973993242007217016695897544947299104930564844662507129309446872093663222342864486276547520479299097081259904546080515955072520542387400913028930071812705883829031690440648238673772429167690631396133356337535796778690037900829512395826658811683374960810866687074933232189253831093416481519563739218501714332043895815380048902716553531800044189735221266911241895762916600782314506864154144997962383865834245577510207115972453454919529634314964065341517134004156726149164625840251552423249436214689256448376256232583361728691228853056783099450307420026862340617411595308520479132073622900232434256571658405521386613344217134396162869881354831942097609553577592663288555032192349556154036115976761587217007844872283767890335705733272703918678060515057755270475550320318943771408936801133238732978188244049709546385410166051116205677962161506494911429894929671531727508943801245922255364032324630723019380756318225650285636744387883218017102886049221062815836459373142030529493704713676964449126397196731693390270435503794683951062880625470437514081901740302544274741847390030706563605096379718996568251959653291487766538961307161818892501078957469771168532099880474001149172380423385003424786125662125295509380724984354436680243763625746145150021106919832059343733553066169974415351857340250801339634173469758567166698155837476243787386538188076379948600240865548044038723889475963902589220820836370065464861180058861062267527150882013201205300751975452793222375779161262950518186338911892406558679562246265370206555443044584571804128890276586960832562132942215767779194925422019542610059765218583379802005425944542887357325206023906171886868503101652571580716976217485811823348182414032844433952993710249210905906165190850463293541893748879556544526697566478344759461211423395819303395385654414132982930404395801307986025131871325882995701738342669554614071045403666516292123297818236090358181739370219992447902651801784232803583050153157273172561408013953049971014500397625096911709007890751287786353046288949127291898063328869669376423403364542489458703271591174417713244040737822947133484349872251589681421871725046570014568740324792309445987495563334247487334733703275273863102183426045863917820443734793218544243194304540266164506329399968065409183938265951004318787281340935997442563190671103403974492453605914729704108813461711148005055505224674600324805226856554445242444747831292684546782650004790513574030467373010421167547548737442317324598442379126133768859106730556008049756569637219564832937058574254088663473574909109088519958550701799796234952268966654233384349630390281762109511629336926211467590427426940143094949993115596497328640980872823566289972029033588910197491473628468881491886550240630829461352331468089344038856237958694639201763199139108231277986359324456634312071523676476948936817523619690396801752450202420392893866398241824117735739356107933321994819570565204342949915643501280118634841332853969079022941184714566088510631221242486564168128541376563290656977863764935219729786956363113193137997387410031971546702776724178613475789591104984248292708269165323330179507280943899660013598714992664373430605797449453373016466513891581005838270628528452790815300543998579279517239280426293773521903314415398530538801140770175921406900957935683575839365115161613539953100045096440031760841648615096562222194668282052255726676524488001328573895090569483788832650682994981477090156329205965683907299611152872182978705340069847703187457314949419863974225594043602735946581423226400361593839514211388303761784340813530739836411377175180163261668976050787266671324423954715631755733230109911256284320804517079058346137568016733456303252892642052097016749789037365558737822510768880023948257800053380299020153619228491911443745102245490123233730168358543241217675514288380466393475337281686990887383722169172781752947637107393193545424056526212983352569857902413771105833826905164010598589250730221136905778035531472613640430593746522510974766691522372627102032281480011389818510014966691134311047693998521299951032357458907749577688715690458912232129168253977785416309910463992772577036220867713488980352915534277431894432511401256235848630575480377402544170109006582688750783084214366405774179933717423794541514968650057688140969062330806504979032535605906590932192987737395331974121796426081011077986676183141265378125811412271518856499707092523395372967191522877748493683946257690510510279553277282921198100575981400533642877542481187659489557019262639654762006985333993517941507875718362730547341614053480952863178813449706491724996527749279718604874314304673390146415857411853724811014475507127169349072424220833280605492082260606024049340102780163701634360830642341472293206946144401740852972785442509121813820542786681651165315487888883978341658253961645354551704628770117257104955953486648248849068140588434712737171006071174830396913176034978723950885865364677157048699317376715992652103269953812773439400736012589323434271799072088689752292819694436666023386157432715928663578387824626929521310776905462957186527396265401755741899321264595743986029229184316825661340055394018560838771125484080241589005789166496345339236791070323602363009061973199118654116824834513249080715702685021891337508008759936049782123671363463350611509080730058011625730787194195869723596036233427618766269062920747301602998576000353432436433588032988062388157079453495367171800583747948519256817009834560372454778472352721183383649173252146607896772365336832838212906489979979002823864052485737302256712531970643503354928060690767477913980144864579965260829421299768209314287368896096305188886654943694037860609499502016846212354143956805319685600162923515152177678535280119984319047728015556972495248497834526523867119331003055652925698710803943606628714809764759837100680228594038048082867417284735331814348764193276076695079802221244408500881598272650439099382932013390679883180430007676945600152935563149274413847617241058029891502218233509639117604227157569703236800461658321738349632749951663761047626784734750020999239423762080664525532793985861091631863466730040472697353432579750217511773461117019029835649178618014176350780712889673386885621760265088686809155169831043066675478219708639684395181565011131602300014472026949616088564320349443288592898758224271493730538391050086648173978987680943797668249604864908752088253296110533152669110802460269781261766329811848861626445026327272527921114703968073332863509104300677530532960830406536276131578652106995446603670318039256387261452002502679108325275770795577007802185529662412168324376291693680291598067902378266153059519386269491559001117602419397712682595129553967344723907474108043657229833610963528508693484009452869009548704087227415526199359580129427996470331918227096383092081806993384294465982256809580361893700745808348201003354735388108694611452356552651253174017766621499698634979343572444378166067768826504525971524695014793336567627333475833708046979544127501019622991597621903145664698826813602292392340981529373697920413023428990841838695621052677466732302624002117500217737015571716950612475105811356078655396797476740281494436777500323042657624150835257712818697761268756379786368934783088214858584128673430357077767040069565464110550708477286165358574591212318256995601737867739099241786054611974250998176164140866004901269346692027026240801899827007843821952268314480376747744160758353639478017174452756707928583862142628818663400520679661130616742263258550198073209529031926964218162763201453735366499592626062552883915820102301763710842338967493312536831487659042592747436926219736888858844303453066071269340441031697947570954020693399648479151883814939361205341931466062911107174823180800665426458402119548261509851910252409427991144336590230317800767616449204097485865417548052417180395628499725702075873656498364205275257048955710576716533877341193558620656372243932737511110666971375970797313534347598941501858647767143563965796515098802309551790055672804734204268844146869375449743136523491816677299352092136469082115963076208561145977872445414938430693543444441865262896617338461397716734200286231893382574145054027526887132627078230796829540116311474945005063060042474895181327681309863328393798536765627751030591799695774152289451415270795454778870562272108282088187881429044328355912117734742083294745536638260343986372458038100595785437460469139563761332769305009207912747732899390932100969542751908083485158339401184050036558814604621049388603776447089915241942123845499998660574792961828569265438863847795895611325149275778205033801519533255122028413704244514730542843185232990874755705014522346296303331396813007825189983440266912690859480228811253298456451485013747405013609820452394567118715308950759690296500439996177100021644133840001564375662024246335710200698058310002689572100938309442494812190923843494713620772601299198165625635241261503724998575247577112571757716620609994258859935992910768386274814586859091213058649486144896354250571826365256936757929285411047525525120885574048500979275788941206621126890693587836467484496466692648586654822581098644120131676324913810016133438122348908464499052101816951278560970375874687673274333182051298075034968748572075510739289220211703034888452515187456498542870135214513532169214959834150181840594030032620067285017417425758649997508535027191518292234870637140017840803420633470498507309827019094856996071055457516061951708925225262216525399600502360028881362708443147012595932938562596765997706725204775419523310505660437069047547369054491744522717299981842457861842609423543192661725635311074937447534924048867762596234858579750698425600387451694610808859825041040306136775457499974802453889936359746699060355680165780732076300391827376151104998114755293152849313479796897993526640857308574609281775859162297889896129946766151991019384953051253924275927326167297808914981094649096315977591285217958107243692057462127131979723040698155274250212985150059381690727688623249106322998809428283864999462159617533022552498883114709807528455237750704709385177476523371977747773805407667788977427692762373355473814299388258772387341792465524534958581922205023314762948260450027973550150149651806901034597937690925546445863495445235149745402314658641003029395143261694381134705010851146835988299807670447660723525228425351459513987838689318091718201650472966080337361060750267060649905795331343378758126752972149150023442599759106580230932065728904941476501006775069111371137239174239028778225594583678136006605424426932629973639623757944774553504673170460985892604207285815437306436470027760236517518333770470788296106972507674564249630817964949995542558079727046760589262207327494926125137578589039586203378814109653424527035423133538576910416571776298126628205906474669987087848196299331223976525095648805074312453781898697089752343662128946963532774246722400378039924749394422269369924462941265239577349660140360490606128633052157046102789590264577249757519929193081907445874259703472664079917574093240335607423839909915069171909918707775537866945389566605937193501524927590185068836389301653738468674569022935987228817893843483900704655280671367811279967768437062888923448083211299903525520557833991341388151999565503409286620695611115264337407482375595970661789486457539870542153655375847727267098643867105482310958579398265796256351481524580919409073462617856899882602934785462775017686238444111595478901903058996880140657426263577341237037758526064946699153865666279724066556928120448962970439458253637441148736142914466004559625470338700145857756255222897057162068447544521264237010395562315721168303270887789700898760458092340442585313084611939658687960890094117007475359706487957535952506314507486374347598529263138455831954358161205604840097477045984217393437473602328041837980797426277537781319209282385198468271222335880598002155406509643637062321954708883142941874971654874183053588760430000208876094522496491698455169716293239291717806926254950673642838498322528463681080042005382805424864700400704385634217964996720783853121106529939918736243579230731305764958374915252508722976377487365281815803602417347674140415007320103018382819661613327585701881203604754459614521119005970736821834962754086036630386784324311123984916261638034955385735132849698589338825406727296838696084644840838500131070084024780736453328988296807465089992263887464555805015318354389427605848629190037597249432875828592209790427571420204889431431272635053738516505117480435052108201108502747631453040781281938542313794152456209702364052740294016243166306645600372811679859256536667226672958390034109762679943925963516551308160631628333492699652484840899562632670677303953929449880748488488729334841532783616180357490161821337926923580696386053934429139752961032753494820236921831369248368838402668057523378949497267377977340568024898695424264254987774904685065297864651776627743779336515405467602410115088735588741008032408478090423110696421872180827163077604000556922472697608809644540450177566668196488815576839506944245429992324908323329375526327804968186491672170622707579296931901012383563677691439572842093933743540562487994655532870778805274478922438424265216129055199431351033599315397929990477229842591363685234013659660044221460327553165325621294977542012019614001835143298699066144616106539841642447339375207759246493641428590690987594438432628307004786529468686203205979531273027393782271557452203864662364565094116981354950729228717117655493857757483119428981140107757583390483037411556599100218352320047367252993209319514793792564322915880871240230290742914724436514759501347251157121444055520177851781740095952930826526024780777403224927857597521394333011072221615872293700333114003746312315096638974800798153861202339775662419695308728498468011642927706018489641886531286407706520299329794247442317368493175327535187430387754707755299271717503164140654825031617722263100765958114911742992251684007214353860509965026434048583434945505977414642259471326127975234986528632012737176289054444544270927458383078985922702988902531776953588873293550233352153144290994850376060574273489867804101380965353357289861329661292804892508143433710874522284819418944381254859301655718841152093069215141228413294096248093592243543898846996626091993095950635155707280357740358961555361414376275514026675476934866981863534239821680729544367330789193815568791748651425143108331075557565150589349374412397817622864886209318519646740952765194725866314023374465165124016944170596406478530390022437346766481412846205414307622837867279471130076756824981527025143277050598252608727780786444745673523950022867668144473069290154946016500772683722527035712966742706705456523072980664196411791361003858651744892800980747639524521226758778611062575562059647427421941283281963961711091883334584785077331242222929080839474573140685543388060453526649731535331012420860964151471006250787194629450562698104532327128840241327407868081891796521876955549666449339677859862863455786077177697760588655593684636412030161247926803206063421216747424166567614139987640116410122003661040906993693497334333442757603325565418328453330213158018682499256483815605273809001512005345144675075044940062463247791285844584448047588999593257954621722938537727790664324736759017051924204897787503684716630601901913470754814199295642238226107105038665551009744950115392726746262697311031223910213089842221309595179507290091460198549999399875577387239146916778498025745301138155221270953850153722260655752302324222158273418307080433283609110278721697446783921024796839114323198842055866851750751476581591867884189343699279557621763137927257613194848299490241107508071095836948015766646548585258313917321629334186570785687707181065162663918701613972543288940394121132358292119004479127216863082627823658139752280975502667222438665060926334347121218285670684271712293954540544861277397535909124105035412815549698263536962878633299419689045848358817113393278235781115337563519135798718446989606424357471613556982321650701876506381126787836393344494953181757052168894694017276083057077282560982197492173819584595781905326294923723302960321994891503113058526734568825635233881712952856902053797403555418352401742141795885101674971121534556084305884211279805742403512472435367002018355099592635560814835533884952009278142508412439225527818744162636560509353725151558862376793167080586663148755911402662566743637801147587003979184227334485549734367620251624397785875147429609518124977253056831074777185436904991293991287285212117377996346252999269791586382490366995270197946454053102980829519141366930584609780351814904559056949233906139898401012625608285729007754559912486055734604503882743249441098620912633045355848256807472044284346251959973267378682733699937009187717758329560909975634749902005522162843765208517602287380614753241553922469071626511223935564080533254006170497704760083025576313112610504428689882387610837011479687171027195899229868308218075484288187221834357108352418177780926150091368632994325170975332279302503719351802919400054343740600343474503872158405935496204266165310044134378908525484336324395637731673696237629529669704883912776955849184471208926379714887312116821773110456516302050960604377011091219535638558888299325050346574182253390995704155659300531605136954325111614167736221760198253401453442390494106765804825379522084157970761648468646556269802718079931412790769274899011435782386783371139432737667605094393333563398917636548630417441355084490956504839132490801520076116541753037740129373079085069100208124833937071597141060871792328469900715912576006065037101568193593985557325468874574781988907233949869743772428615074721611484506342690389244599508926149359865248719498414890701184658076373627139661938746738530012739681947546351267134807931380169465643718982976232389119577125651257736920807457413676431445002955866106430839668249101856318146837383335603252963620938242500762707982144367552023074985757563062084925696166779245071736671303547001844408372593743531688279979012767473462833454257723036059831513403721614210880639293200910402108604076044851251942061529258508575229912037431324012737829118575441172395775293741331574846108217513428089234668117847103500444529425228770433990076362056973173128224000091056583199314894506798013577358562076459994969918632986403817372854544282334952664131384582675608440471249341162942969386392745855765629075014463062171853717957357175611741557796132696744746479140177631977005606047034023551664659799469971013918328035457879450049171336709182029628458740445637980918814371945540986617445083126493964081976528954858799141451197019294645994527299217034149983280885809706583220076536722804946161889264961659486964870599189513384915474972834809078464833057931968162375563700755551145184874623962635773668593091238021303537679515159436612263732112616775462768510012460544248724481907710598915272473400878915148261173919294095269113182460686165718675676106518931273414158681195610537050462686431242028783999457622117899104367592635647055102132534294453487552802692782536133202103855990513111489080770797216670128994440621887847920047904058848257087518756845968388736582783228823325486768157738192861719101304584766359677257560341200299181764589608126719796793090216649257783088171545959419485078699963587964578489658865829951125359178466895645981139929893566670249680815339201156573835047711023213864905776756547574781464551196786113639143829644345208194911114993617782262117267799150234166213485917375478749185766824020168918552344886016239949308992976717492880108780617594845305816749205710381479386938317099050178669241726594653899528702861593593243582747130210628354625904909591043143438146637453392726746427065808097969786060218696623069965570853454747453412324774236403882766257468576721782324180994949567943399986897975654048138050382455509119748984586086512185399133831188245505062394422626700565323647256800903859555996905327620462872023972583995396858342093561800986536457590209819075067295213092677931158349869163685038212033238360166472378742987329261645273571314759751885659568425724633885928238774356217228698551371969249255320251976609399578175351995594322699963897688489246046352296467608334702093030580961027749123393121082033923523238387402107102646133529474204192768659048221649959401531219642153474092295728315111559417280567534606464879723851406051566992445783421547109798924243920028150228325390594996656072400890890890140147799075928833744101878621568543134535260475514637035095076865869447948293487427600242569126049950624931597322518348299260782068484067639730200478065952226164704261470066209285767808340815774420114879659421581592430534209949758427191223929990390431620303914683671744858394831991865761119290581012005937732366493737853128254781012798824656908983041736216077026377753256986618816362205630246491577047699787343384519497323305336205150067307420078574065096297109480787849007948745403570673725230479271627981402493717826731087713996588236967722306437977011794799959763460292344946327663309680445357804598902048563553776802884497858226882610169955867429153813897751279860610477755490030623550314916143663361811101534889507406693011591851475086409924786613470029116372246699433753643985045044656399325857892556807858796060771470216642862753885144228047445772505467740297702592657562134398555851331982761297520445547469995885833465507397729984521735881334038150841002724467242733018671122989226728058808139276535221058025569593525921842921364114248084485286190250029047559098633776906980935948936073272008654430120167688896324112726377628123377208864490159421409625689746412826004628521672814451412552004022691940502392020228454968264739827012903034896508966195566613766475138738979878652870608183721608370053901331745847156233169577198704737384194234495692565356090550534130772530723710201632344648161635828631706641832310523887686103411738722598381891292733068507146350257104994092198879359277887187508931692567572430402721774896802694267195657062352217825462330338904978935392870275808317786214378569606736949908217384978925476391536944595787500888933836198011079563728657902345478879927386214598187560595066497124428774464978487342432110278794919575806154744198006409536723748256800208593426437984669560303569456782918511319457452338350347163329939735264011748046494370382313438819580269039639589115452090928683822399559738626915135717148786175033883269839167210965524895329016789516464419275132249615086635680470458922231007042789233274166777935043029434670573985440683053018808903572015257454203670497852767010532279639467199824234189197025993450491490179144521912629209004239053832796262139245915548853752782184705743521688072307484206464957009093812472483618270423467068569168977015632532756267047105341684568779763898990858837389184401615610679550455827838538904906566588870657310467183574050343156353932504605858488704110263048698383153534202952342261545913733323119723291920735527111832371151343136290451807751725800018996597864053033236382435109370069608000749914438849920083030805439075038546521765397603292710674420159762970647278980656827536008374759752633479433437031038888598783272145860027801665977398388482976185667608874060345385805381909555911979670248526546463881450320248103975540269916925844200394309320641694350455764337826044606365163427959570353328560870039155367622875606111202913588478534269807609694601724315014543383809026581846817212346429556588728466177033392826757509318478155792291740867317425551166251581464527215051511809275454702540146047537113695107659434672792845029700011307145188583396787228150305928927717568712338315675047525792919433689159334607439019358450063633787205046499752845020451236581234223578623081485504398240968254211274331032901309441989011942778201067541476656664162434566593924690703718059483463554417077159145439208353578146663196323493221162396337145720907030971891549809399268968461843066407259577182843264365088377018479538929638921537215473136446217392280076839537586265878763873830773093744217019595255859200754353727149342691113877371253713279455077827268836283236419979370365495921886910457065306050798015292276472507153833915833841221652297969021954865589342454857618123858547275431884718703552643483272832658409337517885919784179489743512995366773648526239441361555222318202869990125776391573300087863863772491349320739639549911970241378213697944924040952735683433152574811000008453951276926759836246636291826391317318008619616394440954882065751237400834429214841232923153815822461189632946227075087599933880256149785188592601479354755637930776474169877867234580448763434336987777411114045446061776130283297247132518764360661022537518485257839481923941272905715849827824706393201698361602575570982537273120554291305741234072439583244166720271001642813909832800157226499534617053071490379841258625840690081880793122189268475464595648931722965980973630813205496055699772865667547900155701724485411562907154867627027115375111057086987831883694328344891245035410628068604229774515551740477735266557901279014151893806546750295791997716178348582199369551571879057571625579787090095630356191140411165682750400722922857778292435623480523409600358648767772874618150465619127866912766590144334357414018311604839634449865211839892599093788824248061963791508226190365582510772628041885811063319441930171207975779077916057628881611197876071238856326629619339205486871655223279600027679123499843854246250090455230453299803082041260040743959154926649272598921983960107250646888017932192908184005065668040862097975584517751872594441497415355171152347700913943208969392076095820358919697721838305485857395712716510258311901969197888281464613090331985142232865397918501873763556717795893142771659277746307925499786301712278763846007852021280433382125836922512939666874361426030268600840656715682854786360661798813649521327896360781513683593203781966120513750784464119281715389289695700023717800177129315749367076373011899446430470890960443550875659704141395182913561452153425858815960576510815210487542359574271612200713412639107970357122535192668362174339150762299240958383585968398456454086169282355550262069839667778671640000815144248585217013485855715482898053015459893887100043015587984636690145461509903773755954460287197573306098112839004810949598482311415024266978812343546406673044361621025353238318916376139744974475805676108314656623044246026994925918132227389704792571029558444152808268056819361760949971898055279826501795526951573908420184364760356242607674891332288510625118708746983294165120427743859614179219880822879099597902110194148406753201805650525990213569910183077866150377400836664291975887763434351498165080822567730521683129972004170119548764364525100043628394066975075837562891492146935080574771556479537419075524531050709184099313055483723576220195616249676775628991657036511823596385861217769465016846999649619188807673473637138055574339418877287118992545127834032099423132465248385816759600366497394397929453392709525211903956227062952759149073811857168764770298841484986060628040176925617838986795081464641634296334441990625235828975639978379217810446616414766180170709308997451173206404677645092107172453972568732678025701900637159030244241360237780716492797919046283475320829814190094317404462797170668768217582638017568481450494291963184634414877516464354273107491772868310084628639589825250425856049327927873700766061547269643609444258820558642561940174825498604761451277130435581051332768902034848307548305164295273025508539378982309546625473231412686033988431067981686451407444809985839384195404978683928819588537222111262095163948445943962281793833940748830347184820653172018540487814485649306710303869141548360276250666095269877469202093684587382776460308926995081866749224006761464079259969863241765033115633235879649829739661908517329169805133744595939251553831771167254220837732558811750143153916944272199267304866587861211211843082402025889066764469649944637076036243235605636187761060797833163005066791263484515170573974588518039215892163758299515714899808956557025381248028780162070796256121410814246522833608503501296630433725153871510284442227337585553503629321323226519590148021990101568369442206830696408447085606447876727554145175118314163591054317269465331436415281832151605052793611207710845202563138562163483276278932238455745060028341140275700638908991385457958585811236871906815289053847524575652104237807062960695510471809991530305848036932174983458403680898474390291526331160639080509562546816676678203106055641739139039463357316852171964629913195376190566447268977067658906757106208188889608507304262743990414709015385882041736333793484224052168589339355948735916573785309876005925021951611050965064397762825490727804759502169180789411371512960229406828505137662185439087146726409386742746093980691046617754593922925527494941383156031340642640683253470665785279947302105197338205267352527571924408832096519057991460212479446001914027871110385589233635280742472619820307682845782248121559708648813398591767211352360961292146390809179585271791489257429390702923991883537765023458472736007539714199228045391206498006137602566650366587161875297002342265576055699219485911631572678543971053659543029433529578827987391298775371532168252186108332697933090010684251782840325166618103338133595637476313902515758366789441465537183044934855536733662939135299235899522016921213408399770112837812533868118040982170458038955892076858662861791431549238661210942274593211167399436970928174725737525125653546678350009463311080070417761277829971463706760389051755761456369213271277186132075518377809938652355065791792532727165788638829701607615858537291763519620288529467577971373344064884705351218639587161299349275527565275971845457373913397284012339986212579505222403727105054374052515024160658738166135354973143390192252004193255669858436758135679646111030447271391069332623030531619228017188459340961956771107960181863970082388253277027770599278014220139378366990511164246779561855706727118908869363946920847508843778453321125853483480074636230279806041955420337178071775188292955726445218765971429018568173133303167789394786434503027948905411822762653036597624739260951319071274049366575187760055386148406082979457564197712401843881699409725556126646849958339560522526302121502366250460401938224708142872558679157712730802675343187339549473282038109567278667395005523201293120912357661570521161014027596697149009351907501127898876547082997777282155409790558644457395924470655455259366909413303463565306666864662057051766342931222993455280343328166089609893856322640777684509778732222893559700906360708988249188368530007712964640846827417060980245978201573192932866824031841368209858324900879422363387455377611923723806730071113177280177654043102270653773833230668704427821873198807427141294125818407149159521559144516106299480391796122085605242350758085383435942443984417641262079385145940880813822285512419805150355144401951905756543086213427925967894962730877427341563397677874954969551536621553402514824854710404140439557479915305345015144681541832830644922763044420342428378067717338295402608665923691290118745644547992792872964331539691832465074985654072142127867960732418099450990029303293083572871438754592343771854937288664547447034067152428175602819408874260255316164043925828310645309731436411693324701634599352721816435934216404847628590903343007190777084473435524270339306144300477852601822405796517861795904459278405364552132880580174410534649104662772181122406074617468750807530755344371252756831176882211168299341429461967720319757790556451804372443337765834043370551077089838341508814156305757592741223817587754517983586449886863924383985025556479481997282518550519617107519887445905485522934050973513684684908799106185531725240373684035554448199311222672717064376847556203071362790204314258915182219036870799590643568428208212274156321099969758012825762403486194432486905628829336224876591901200787126026279789178226784083136018846532858969491278904699572891674712654011302832058841507298948358491188842581200637535719404379406189612117280468053037309116647926936683416224842866135633131005848898791575789594243278641868986898088211394840934222627142968062279803516821408638782377651948899507589518547076684159903125054777195482742201028270270778106749373720030614300436313403648312936686753861220852249712305075161863613641209700895009022734527721903664855201736749466467920352728269430804888538664726600857024157205128555889800903796648476327819477491953135974442148541642308845797250591011229884751963436329815107028583773982637871825398351676433754096976607037059189238431672232847248705849638355412102805029523826270959287261397144835052622740134350525895459442469090166415635701012739082352541466467701899741631345061798797120611929682108021569464755753279164130457502394458811551370276866631615591642672753247837165229909313175539408201209262989903047822948568201760263491036451289897444473926459550682505208513884700085833279971982610060673476049091184937529448703399555237217395244515840069973683564902599484641868103012879270656591528283512094692165469717669430756796307020731866950659063691093861345398210960745620695582777088357493542802617508094058365625892969580710689853230813375595925241200833101359688786525108250699133601835490812399319626075424022344339604245801382578448150982437750424043138485620923201892522222803578636819353523800162526540209094642737139375067714653084104689819524381918580542022593475452785930590224798846990766919402619283920321093589869721353155058426190567376694249744653108008179467398395334282324354823099741050882369599080205500794301039768550916420096816351593859011647357787888100639033579530976131787975302539474559772642428987991421252626464004785794901159220888646951557270010821098111953127526699841876466520070634905077369484805639551773225677536902788355266308373693328899192780268589898791308503772013101614817310566329651697382670979104420797000135805479693756218402528773539193526540961285245850606220972180138142036949318959219919971943287321975377502875323783741549034690412757198983582505081187243036335825418244411237838366902217544761697713029103190962775562962942277639656069827281621850863120345763201568265154891107628430976046038114852302989153579256500318896029526526859855078928224198102380716487116138372445974027563261565511322389466745969808990471852494983161134465934396700034104449731504044010546338958583953232826687286855924083718516391931297415900225248996007446602985712146195538693521704030500293008175161670363835793480000010235163912853014513926137980696659781077544391650409247134206395058053814437663506081674545576642122621091751667937230316463850173841066444944490379682296138829446467267077102170276488586107737011029637420902670346199005033721919080589621054774943462629823289540176491558593145460842378495165662062145291395490713332137320591099062715038092643889827960749083762958228740047895267353567932850397683552965042308623762609119489222474934706059641904222838831864533130367980420091192741961094430455502983554260880473418306203144017974207163046852788114509829011111864152861662504839631260564496671480766430733837531731607011555278833830392351187456365840970350947047720267287294123209545544256027758498977449440331855827042941653630058570597720984187159232219182781706927509489175871628161664691924846074631274586647008586083511320140396377959858504750950009820944218981184494537741313993036807612170219216016191319109971477911788421586077905456155580713037549961891077237519392465919020921841840012982127293740259838483465924210414764176429426491281729183607846073255903107192699671706150463998947105797262775627768401678752394501353412589648721135475809250243451395702130138670376347039419326157084250362600958962154282627574162168147243809347617205389597660398256278669754319492408509173752876478273489278689269684231981757547339148413940250654774981657636496646673775764421275955344537826207118504905359238362242017264999530160898506979625183672016265667131851269570131320208376081831996366079305507571140273225414962592708223395803789598455403891268905231309038303373516467459251338851382109543019513769415908206743308281881227130921130035867762096490945731023819947806868368381244170852108027472329517299590716393121665835107406492641412732381209551088271653776251875427542872779783233851800622160984531781891238730552819199630849721729580744448350054588481769107050353122678413237591557130670049729111305061939485515714501063356067027528505286254050863150799235037084928709115941172887360332428982337073912918397859027725318221825280334124350887227500667304326979791082525325440705055459728952299393405326384396907185550907684903312219564964352535829081471732956353436739489300523211720115971022722496896124131738630682671775511090969006147372683129401190924144077703912663827228550117843177679274506564295687693691087235057585042088494296382862458794788227699978403185329271025485479234352213334012400103026106047176783911699748383913607663802370532335293449285590406541792272392979718920268021860504037664129521983341959249128631925849963784405791394359767474657751959823128327011915697129414714321286396852082119976086850246808347818577877721088733907717338466069063399082343368938478983384322883055127567981110858625716647135020698827069114944912620843562812482340576066092972366273492081331455855706435032750123373594275763469957640837644826817680308459222802929549899937663436211723049968303604105669840037500168123665566335414469155492291174638737280117036842112110418575162831049264877127028003661269889327307400380456074135355636391889725935481563115142875917124031288246694513189203478738666495063004970070976337442212169201905314309135154798768819282571939665660795408437883352371369812758857646311972439349349978485776963351579037430726192593498050567491636445199705555266793813787726695172439580903475891565733929182034685776294100843086770272307511092486765286588648520839142100643180156229930617950994182912762251392359115958313453108149909397924282604444115990979807525404203731789950265294344409954865940968562553641121086215655324629412884618842502914655893719940135953783826660229168983567075803348046934043011432844505385639746513710853111487656803287052353111176818351218425759884717001571570740150604025694370490615638483253314464475278419317742531695817894510325700656948558608563916137575791193039261106308422932142078760446056846798151081613666105674281378219253069253338379552177422363281262211131196047128696523921352537477145583628330015768409572222721365063602413562751197001624410707661001130333985303588194881346269437097722806186707033926938172210731689510845450233911673271909094742560043180346380998959011792891548559800481657735109945228591875537837707398770603236353826519911160470409994788269774063842289873405947138099705410943050782420225245592364169813638164074425639461177174541686656363695372197138187937282938989499416289772919391042917214575644627015045897891389478195978072420693726378004352456425407741557828173715566240848974189168118578324109070557252489619081118607151635118280113062498128765876747021843179116174491784643903052431905655587676477113692705925444988088293100403019099307854317813020423731970199610709406023839303912059255733370020144071837568588907433281588095193295146977109884610437803927211166138951529896081153501168239873357342562087746326017421809110235919224103955749402755696586944211527492686287260578861961008422663998418516974928842172931491722452442549372877987305223254611979545675423217233235411903293927506354529516095472457744298123323886199854900059574775296563060699007076281611606622570346667867550770990177068563806662144556899372476942289655313983248740014891566420342606082562145374357259289007149876557437605011683277598073789153331753940166823531888295927145585596164618087625868169780218220394975407760077992134697697143124686104767757585437686461939046274257136554050336615588147833687649442642257317623968664094768170612497212994567307934420520912909918885938627702369478661009926035644205251305910083216899546515446530701221346155695155374049363384965782993303708797497528048172405908893294401895174803197162847155776618703168139882628908576934184143521266035802442127279318461047096088498830925369480125011100120147404438012263471796690461505169262579218852488086066392659409050797759717533520585309126920671786661483669297731974173753171917836764550058372041596069070487903848768563033404984525188019931073751762070275733011359219161374449414214872841156797847872415719893051697967451636353956118752383755564018909351267262174203590241812679622007072522503803561800020016851310511528530425429445153868001616915064582489135802894862845896704319248054061232936655842736455340261903933954981627783337262977545275589274276233731686736987329153334064935008273794442296597760513881152303954661014766779144444155481319100298807141497078995224445740164634408761990188576561012507548180264147335000122506556232093873518204122840518344844315439315195619399960833946609740847023561210034720690433344218582442640609402090399417781849146842203584291048848824276724704798812967865169337367839349492658727425102005093655158269077173326240245340232637776604884497068979455353474972131472767018931729604540581572654498114821043213193609672467382668660299828881974358097999100570620070757551297454528206476357339658109284161723314526611059126710928999653095775594245730343979160447275024440322619946084062263021534066387065733525042990783115666888334975572956247545923458732594609816931227833261448651659886133577615736208343683133158046265199995111079366577462049294736344423030502237664447043963851845902348697229172410156102107875730161138436458446310164558793232904112218871551756012480042485085530888861745836460753775394199072059754834560155713806430059975983357430537140951069149763277258102470195416431719555314325768582070530325546918119054491771977311259239715943084150632566574862884304951920350435809045986535798938481516465058023793167400371343741717816403197553782627101256136196921715394439195032202727292220202589229806664277407760677122546799695087050556527426686803241573870286737155049125020517661275879644658794004154399062528144596670360587316200116576453394091128367737353246406876651559259905670333259035670556768322053047250125072831543714472842088202317465395702581578514157500408140764007167761635597526791175078403259255021391170730014130935660713574912591978686503019764123093343327510942357710407483307312752754760800282194838243090681070021248222296255334010265683620869091988515311288660816021377353077810476963886209637070217497260210158283885697933251429000590935652851246794393066569720910638871201233453959735574129728624197462457079406629269998092688653183462619586848362723096804260379058534506484281173796936036964393611049941166532168138440176879484033288627464018549346536779709844487486654900676500093119920267675602705648617847794522394452756831521268162959868866500614737968901899722127249811418570247618871130908684908058345009104230871076554347425076484414298910703211593753993736183383485116643445262462158734364260928622807481972004605396287498703731434003424721977786464292161324859754438542285610439214418717887346049645484057328024941920928982590933086155993833739513353747447594249676319602603760721664829631407127182618118434337370513135818965080386135362664563379619477845568614928762983413539933184843989197158476261338086101528212669511601775692978232568800420576788963210379229554151581802975553634188014843260211159041822452404368306049414444056077988426897562494472476802049503670345255620303416225956136183101330596226760195474712811470176669209874525054256301173392336993926432853932484191041973161909529604857243041723838593260842056371850880074072164418961245416036414797434653744344722272983972247685978663984872493266091319639318363639116910578721095229783589363608437838074133269072857970445350127555445052347817699963191482084400306744460919162187560912680271872785310118229367035413431256883660489110810605887863911275919770445732162479254112886114068577715576201792995533934529652167969126203106741557447370510271010058463078960920203343017862370366893310796319845714526094782338100806259703380192858879474976420100866338990383057297606848487998033179829044264486119006716497787197826743482815015039053664018216140346013423117583432248118243384785431015961933760528469207783766556495242315516598670639876235610255293173756175586127856860007613041248280632293263806505099604760729445091745498638576335884277848144075082404850798632990552662583563328968129494891403969501196304284963076548923057328041096724694392268918069804906796010874424354489999165797892430665576870441567891805983619135419123229617547067182347333185767203120842905258566538307467681482185669685903992853372035219775444467243237966504294432989982932388716691550828972820120093715944868142136383416369706316142093930733350397592482016376451245466953866521499505315221197106952963604661624690331003652765376719340007255963850437825054280751571708112364710448226174251194832314624754827931335090506952243314727746906475304361583705797710938533223728683386844779091914624122512160542498857628496716490625607528473948073928183157906019455022388705898132765094447795884278564264033266961757491588161555914646175010091755007474321621074744965101025909458193893218168105372447259145672928446352029111057463174759123054370358016669755769025955120652393004455805611341535439067741227242405997617969220701918872281453784757013737339804675839479806925464147274755323767883996147012754403520980598108910401202237243200491736610861157015189325412831578457457524663759480171780631864402099588452879907443379867420748933431556748055014195329624850438003573153849003223570015132537239846473203615152391536848400237112171198549901996235367706549652520217222872243255988517601357558914454451179578954144635566296438480412532331041966748283150415837496459003051101839297657906334265218353478319942553914596561437610950206459894426750042470223512037842390596518086003003834908406419386447486407888613247816033945332309565443633469748177548381149103317320041276730463123795618292919856324835866460497081746114939059481048454173720393290615664792082868721765556425621418625324435429995156414053625801234478292785195703006527544536610188515051216128731013366489378988061822365919000378615326321064780495998979682890693348589643540691118387149512075486923782630751253372052506016185718665978963971287889775662857339796035508686656045902998106741104790166906058828784465299191595364043534733415999988591597511469619277925534949270765245848142807477278102069893662651635141634279357611700077548026944004944695987232836469096553479979520392230344652310979776561544947918077675154332268947333258772102839155663847810643932497142306714708122575976894056141719400872570220642704134922210963658062408956145617631806289722379263908002212666238164722289521741946006843094791563656806438540292362897560859160004145096062005243574131420950971307892084184814085227343948583966005765578124360783951203019387437966639484989846310102398113975296069342172448910620567029180855380971072632231012121644509790222532847258090019236595194157649218890049458934366213459439994208774924037896166245482238050166952630773096178150326100182575333827540357348000238615812405291064367575621062824455827691354956853955006842298067834602784964046388652183077283080112291794304780862322429106058019011617697394133485140191485142549205724962356530866300120407760115275997258811875863089620604280173319740978757747527140890972349264460209799502758969822218682153405630225397691836854610772255424440962000754855550464079614371657048940228256603108859544879690333434088815268291812035641114738628880919636062976050708363454921582352130969345813295109172817191226547019689069180190451620150646353236573591641035441416640697349181810488651417972952837494557003512057589552026600666972889274098646088346186726500028542260783167021347921776511022675442767803115708141230978657465038155756810496590105076471526296231756432621440791509450106061837621721898877725807902221531653036786152100636054561853062379389673867111973499312379616701476862122136565561990907361400791911755506210881944680084317145100806758247376905030273914000913410940477420003132835316780025267122907131589878673528006526325634865421100856747761357576197753996062109050912120376061365052114628859160080884953074759451798281458910643065418795396345626201361590173162503058356059199382366525022020842133871881955546977778587116119858460613505370668874858990820222833166564603232356872340851106518298352180560538815512667334064746751998713078617782396566061628550151894739333838162072256432387613354377089140979830414341160740976489278698154740978999306063024911977926790522238934090405952768138493751751320491438335020869649741787584273601683616339324307301819151366539538164836006258105033693473795066550895843472602639020762646074268350710471063246498022600175129172917382792285669001448718607649627782436951583659139234817995709734752940089292260578869941060984205219336918579680449612518461022581999659809903799600511095908641236615676907953481977057803032541949195232470188513206511123600695220198411720175796332664152058105040115579401700742157791004108926862405145482820744580233022674844014626184829050147233047801103905542636700357696778569161716410784624406134628170857194566365544709695676451213554996926834267590295030867308062103075625650439116749128238256366102227739089333218181585718456522418867424189267194326319233115455084847625750162260055343786265399415662327979132629855471848084880436188688321874543534626681868080976362355703456195090695185064204272106796817822813464421955752006219546204276700596585731497406190268691635436834072150256624268884519798264606477991264692454585049698387140867756045458956891240505998652451505527090641150190594374613274481749348458485732854814228002641179542483066279379296709825195467160991682126117655241566000010305743107108646981035283822878090396145320021721979019250371628816316464722756612095943158817206990797618052122725653627171294074902593578184164614636607407219944952373006662910904504567422048127172513555977981755533207442604950178836450885147761038180849118539343165059697513503000721333537199467916346356036681199911889583219111946160965848552375777754940385504083464937485186579122710394231818860490144185036330314114684032185242078351833792600462172188442350869845273644003600059420535834551247130942430087448533416096968677647439252930815528866278335842397220173859366330130532571951195404504024091569558143402217730149593297456623980135600878374403288085743140885905561153134319496397412793343350630533774482706994674035560538380427583642638564560068159152008326019370535615215176155955899816074485054838006445411667628526201037539742787850002584645787968776330193427198675311375362303695418793533647534972575104252785956666851997159432339281035993554445857320729288845384354995367132642994263990987269596959104912735247200992606921549562101277032774887817364173777220666820087490416507866467904487798186327838306688975330180332392895209331602874075010844290522051504761067214203124488584056890534986709585007405060656321806075573297607039979818059462926647285304389654986255757969398534151520323753155785435278718623704025455253509762277558982985684192162969631967762103580799792068408102402543102403327946135865492273397071409408998053648474582187849157993793324199748862530308715626210122590256180422453020481169928434961610275102471497448532872771107648158360282863563576868005413305764363320754613833913752929160705084435233238176534254424270206441349088418699221428502842958984464057579099740639792529900072983763916023069559228758459457546836700671295180077044356976512910470022189806268796334509302866708506605368258668418486704392524650475736689279604288622172254795029434070997843945519368902275699982643744470108182472217263863375947103022626880971162474760910404952193374804991781265471215745118750878888183884134031190944427001360716956735791404105768654044167337406739940518194106450671584506253057863245337758873905886874485816717195231545564092340499753798502467875866107712274483539186981377216510241896893011746991005631098089336942160556052429211304194863652447944477021017983367089027867949337226587730467543087623846646245442079452712814567883075650112580639734515837031187615976523761635205399254094284871253598074198426440417541472386004408282505061413177489595731731306921570669414567460378747509345499996508669834041617174817282437411239223268614907491007769234621387485312740202264438941448712708777757848011160385890252102859840410317126706309067030371959073696601491634208641659027162825230163879658719836266731434867904223719464395451529143211340100054021087064689363380396366055740093117345411656737669300428907399129573706140430152980691544181374672428497769527829472131130964728852607072556468546333851966135267476097480972874745734494725862429149321683585427690697993870980573419563887929837723025796897402275590929004484739068334864332501761688490038255577602663178205998666791301518973904249125872064924471203041068848377424483351907339968969137500647444886462664407250796767168963411022299206854081628972645202124338200133208578196147710152699684011479769726095696587029505342741741447943580191486311541516006264483525770742778226124352356294279194275079669429287489579430958427844211879104864299804972724352732819390914868867295656279350499136716211781786690168136214196776347860710198852885549619982812510616752557897558331273190749476383823732062913965398179745949565388132952441011901806692045973954936898628992396985257639469353862943881079825091803579990527590815216058862704879265190871962157865634175363968610638595157019965700685710113236849650865083329491217204243649960314451566790145388785934963911540372307424871006954519784161687850222067734034268517742628287870460260333310418130140017991590973453953181906134498762567703965642812146152498361577376393397348922080916942312718157411326317111330153766328757235631756398803054095949587723752782023497997891013202956051825106811714301538250714126748981495728320497823582298785098913717669111262201897626264439801988386052430107357592028637117640212597426847788056128758032553488053034623317615357212534700247898292677365262907293793292411301679150514004503065452213861732306047311371664315395815260948463703402997348291017219489991064692672510375303847434355465593123073732966152007662946074203809140082384451710958852530721234666926606227312903938638704329152885058827194637733300167798285916610389535133443418310241097705811538510022184423092612081223196184158047285161320208409349052860768904334089157587804358542853069265930103772851197924033417687630176725669644862811462977141079613438216264649108952089872167471925826621445831436620417315830527270382399449216665310463282610959537744086652509659938235150953475702754221583395856035174991267926532019311650051590172752363566827082698565871497753078344368173718082529449269882315132988234303404756790916605990197192370793864935166501054549940580909347355632439383155656514356492335947989042521424081962554930785548965683470606453961268078303608638876062504995795040880176363462883868745001436856351020383881395250877843198716034232983397880388840873212743462336901264363832884699098092617450903530484000992092385880339430449210424597517260324988642864527061421287667197168782119748116429886316487716519978543631459011760110027161858472120860166877185988402396429753779651641120296894715275876973323881573395484704968025265846447415709098269424678463249734952200925646667473369533504089059484820611591362268485287911193353669942655295213227344264725916306442792578998701139983532149841081142419783764962072998329007377526858965520168700525610301195826519705325295086178574742277535492301968536032378827525681921825095680176508918306826731048384371270833745770886090369847687209345894923350421262008717011439398448673145271842237576587468763533605578993651179083316590313375514391077778535919545442015707668194743173168096898947620902755839336048812427933922575868972686185781011756624906859062723281624090344644841815268022652871844238157611787821948100164865264369281284371253097436544455499677449544117534050222310591635959859315158546484527634627183708419250607362620744421820682261965913223959710311516661301850504828879612190207794893701968089272542471031230172247844442067968705703763084089311922592590074077864414491384258545534051052552422032792288712434582737011427590017437806662013000044972135235069381514224897910560921600451714999743776026690041133594506009489024530684901793228938855375112222741233598208877491671308021726158662554418834228155555273235993655467264478221917387112890423037091783218686403326719877733824394909064019152489122279610687291377146591736167710940568430861414887133541394603890746694818603281250914195484375530585770557085775024168143326278198702210129382421240247171529138294732691637748871611978497758508177526110456084847188830928224981049428670031137425266185993736734238276667022748854139657843149191572816212054045336697691558160727979479669152095431560293914062000643159851162541673405928618513889263088226752718307152911749145780217616529136788916569228995881495429244549592461314954732918121793420105759190805645566694166095982305975706952056207117005357147703755595956630465633713661723639232608141863578399478247093792779886173169126539958904458608732018663176815675448034395451125664329230887700934739402912324317286244707155227297606884616115572916936260387660663201144826828306847153821056653634415321144425447342823986187284250575118573213451470355368825935174477166960454472227387717167902455643571254983340067805866735083525700059357537195963408421613517310522700696304047682086459513619786067786964664964565918422771828726743328878738474575841698397779864290550504871774576128793517603486844524197494245398853867266272204322861320990531096200013634560442171264249828636697802181819614116157685489523156893100516940448422928846623393572032833014640454118267288664944093306895461179392073145996661642652612306280501631065474249651406576308406459867783454297228973788363983981303181991312483700173497849131723034440373453512005512722656698123051853712656368573119681799596285734080611869292737140605320282266083493270931742597814162208749234052273828740863776437665897867968965669043719647237401243119770553330818587935594939171464203007403549567678689927179478883392659429284922564027460053963600461146996858454194805953962805104757105100652483641912487232671663373507998275357110421269655759373990652297007295100954008218097946221775287112224388322793429926475297377750619335879299142838532330767192975893954311720924570593991635688421838512539839625921980029713484710763226034624098206663678866952269764286763596439807682211632733745627616078646224836124533330159226111275658331860873364552405802208719336842562117416152678048563008835431354801939482694752278754805716008319357212895947490561876252158744143536734255183295763756912814977721883531206483243042990607545448473048853576224235478592994550084788483090418902382442042374401300659920868137378213721803424519781828006457698221270130779357463141277487110169328986126380475749593923283799400472780571583000627489306501458103857782319550559627038833053382710860164123161483504241655475113939556330055270672180652885339063431168845862004274268004712671576092179254105084930386158933156710560493079912776620057519259959671942438582574612098162491293243471579213824554506755116688268096165271071163100464346309043149872414731924753279151993629174148712464358337796838815030877606208166396863242045528088851355218552078811600318285689503715386429730963691181595357586322061543712005947685346707929175630623132979363979633528782855545741835823329299206665258043935220440971101583272477803061310299130763420729108307919141992635494397854887307359200420586414752059270707973006411295534184871793289912108102990093854378586786119582275886422610168500754159292439903115470756142076963128570086619266258894954739718876683625574003947352680507128961639942805130166437824639290409182780662084980245067885906484271983032103964938433654390153559630020218257172991899029352191542710505209632007216947854851296469872695922744994396924434470551119384016629177714636487065244820632813130136077669953472399961285491359576159064450031078718219977370097330552126974380720410440785680112068147448156094186038222654491828922032226368862873495967201812953300531854462730325869776098711828375656361991795076522007236079135471090153401334467805906531918443679445155578477187358412524548798833797168023786737885305456929384196154238939138744183937895261645341017634287190000636289807245629592176368132429595651279127432096361305986778825146263082506524209369675934153746663270795463195310333144002623236302545324751004665209047160466262989407846004855595411940684659424099674126964710628327384547272653787068899145680380011973741171302972482987009120689328842415239079647466525654771677473433995600755591751002601826711965606410080665271470787489251118065471702898024369273955536889448674453296114548102811000736571076706545630875980318501886764198861147231746475731407683472901330443236294271540346525182350721279839118630859079638151329988947135171108723386968974463597229539939088196714054854633423201788548221681457328613172745417723080645161370228757337890299787335964714477389987451021222647241367436774084142629812150208367251578166618357647051178593922577272187047457693847589524059726045546705582595212740485828857639753743087652653471716485346571798983740070250819899915057879100306211453826265215375232983769550126476022794768026650887225462982492865818175653292280086549791958411899921464218963384315222719370019346788146963817007702280947095762571138469498134949618683478108402654602752909364927562970339111928090977808302774129231144619653998909611517569531419076534260126463802123469956479833435376751402201505851224475980046946732897793659773538423368491655388650217963948571244739519851190756058272252377166604070314091456598963953135634958374355992227436282803452245621280620026841768097060958329745404125000714888637674669452594840192200889013954492784884086087384979487118916412021130736371784585240028031654009192440711829923320832599270083908697468172686900994400680860812412503895291343811980120495129150221514576398900466261500305795819416120394972627385091401866013060294177630585043995482433345084223787513833911639652370677740190572542603748247683317722555810335168590764079452803271331912135082879226750922143930133815376299102124048559340494419270431469565370982544460352409552394507378749694475325511712876963425893121710410766474533809907345981908772681185834201369680310567933340028469737801510773025332740136611638084396464865718750581155937764568024691084063867087900816474601338278553614603776689101644986420979684945030228824035700140206316325737782613414848239632650656688333747908659990246688807224883071331093310268837084979384771327303530275239213294161211912069559192313777642851027814620716171368888846199262062936695224095184600526289326288592333516743625184333315276156131088992178100033782008332911824149202818820663032804018965367592055906712337607439334590008108536246358283328425030215172486153674419410091607026925048774980996528794034708856513112697476170932308047331112231356942389603154031228618137902116421874996581812940431601662036377816285281921563905199104640075972108466496718018792294558962730682029192643409375724106748427450989983643463881750575039542501896040592000971411869367789202574091456615812114748902915039940763819092413789488697533513713053303386789855576334666723947980054084066602721833243779857076689361959542904953530236566580173311101665638607892309718732012259156568642312834199711495405792123097770317319934893619143648258107517403098363507571809587881488790421886751557401835187851714256278305496647189899968219206595810326735285149644026676710489177564785892980075153649995509468566628596387459639591671157525690794942260425226586366997679930477782743319060396300528496019784252644503415561107776349526599463772456573203391695109084210746199663612348121440647273526501998654654301073009334315673422024292335719100144322541137488093781645464954246101921895177239926400038628989905579089804645827046751045668666587922271869229058125853806417775332783241511225853467494196470017531830727446585946580449701100699001963577005446131774870072779719220183503210546215510735231578936192870382356116898962485138925523766673901401434400577407724738476119291444693047192989933044182816384867293054685570648494982653168180037310551672931748468518836564566593221897639390345093240263770185400824372692215429213112370714084340728622048363339324124260453646003884978278487400430544263257847061230199020920565161245339127462863999216502160456297666844666420012812811095231416295120175438107147529806185737166490928862168337276445435821245887257691334468146294671404463966463316771055602736804718235517682278453286924985193665337442264824121281180244340200179210553290288736025449335047698893585022646511775961125131748402554464473512038951126216196737215982817448052588513691476385385288717907721364671282581511279594058334552023196439399362010827346444558902331644362850225906506595270403652266866391292354461447299550743563087205784072203727782581453453659665034841632110296640977297901505229282633587380878024460960944978631787257839161861583582630288600483533127925127860717881728437612804511480422973629405131674032326149540326145302116240773132233277756464270874644737453461485839126691159905028076153730897944157977648552180639505679119981134439306456593421711609129367686918688859073253917048200512326271484154435080204476856566592977159899109396382602708843145342906201691121791758515519228469990284380735624247042732955820123295563863625297465198435992981361903951943707882913329497585805786894610478539093978588009673188095298152640032562244894837004846212770990725199358715388500690942530415769058457305589353565627656275434000518294156792047461951453035624324176388717112920283199429816182305643528922820195260362231036248940174441189433626333561583495173253209522872644703295875046661567998220970790668157977318055744190282819821788943474898824338568954659523133560242504481534288891509133612695043121108391784534699686170908987977056795629513387035358039719821650720905360786555102741572889500899824639232435313429801764204907749374648843101317035206093734404604945171594223212271370064389955807995825026600721862523167093810518662670801705020263374404396999669799344035030743351925345427685663416844687838315298936349619064477310207262039817395713346873591084241760057217090114348375203836315367026884532747549018450521744197410389317811238978107505528875500499477640832492788875294275698352474320617205696832189904168339303026282401585490621522075686450693478978640561594069506339697436670090889990686724348261664082639289570410590976237467746119261916661473932584037579670469664661898731557901371488093509959450689313730259500014602270862792970435471274509563821745793202006000479683225681075651332490684985755780991816585868968185289514520164563595987449661005459111133719473289662598382010006694965401625881003047767374460876475824846618012182238671606999916831255105553674430901028639974839781750621061367480745135477628023113423499554601586775162431866265923798615178608456071613432448928026421048034065734380238425390806034045058284768835092974498913508439199904463848412039165690870129052528120715114221681538581080053319683809221475597463996204539201809154280299786405924800274207495016893986968141123154826624053754953398194684620159830648441121232770301371755371656731431092932253796740980798671531041002971651482068974371831563066682503058702953212008278481403757912613122114839918045811048195824264372760538914691048302295688700020211170282438308330597563037642898838232528605684344423024804412205903514394630735308023885580943036017369983962713763646867468043294407450681300483391433570788383191731943962314969867184437394938647696780609128739806642610550796930131196951511893727599179668457415709311428893407043151612235430877652156534710124606245589761488487775474764409041999185101417980677965995531201337730200680930177068217046357151095792030729836081814072136930518197280854849229778043570063347846073495097285677235047988903336298325101542676008076999805586375941368500989880792265543610922891599185053936118751371992046062330318364608873987769840845570476323354870090188006579958014762546530542108445155711303026507655790041633161185926314919721633950579668609742902883473645546256880941369793802684427329908371621797973420127408343176652063916189920696304011083998220595078465340083377339906318542402581210837129103768961922039515393668652209348754065001843397282953154002150206235185500250466837730854553041930616729935565219369350667124339095248096799976480022268087384360397597173488441798686479614229525758691036509188329895795477727346111822470468690342702321240605660950226725988558604139732029915320757101464872542919334156232147105177137725678846037990470735568554196216479014405202898003733940148779368371867840160531333335315499223202670426308629068015197554997989686126035106165834531370126928497499322823818003607469970822128208354074237381793010751132782388510422324963352091526035997338376035702890547709215712450401092805682754083712874901360803902711207548997643242740211375519323668871685127887204312931123323940599459609005802610979905079825120236339166914033461717724670976094136610909094026899266663925254941309484690366433943894177118176467548928596611691314651554804077836501878675738065665909111330438859098127835401309248794707023166469305439144209115078701539211353138441890093503457428483072000120101777117095740398369050064920211118051170720621818638198788769111335276185975680599385988344919276403773409804600931079646627168986822578198177467805800306003250437895966990539300450209414830593888040600124750087380397349365008693465840035642696797658493683022344044650854899744347127698230810216712908632518469959833835408517032275713928912309714135340312511178192212321542787810441300711921619453516849001923706485038078916830721868582442507172596523477847262279032218418719551076167867889231891612546831668555062404427912489787608391763124127700358447550729833539668297327524695857050515954868489239359702615239506793592323334647350947229420950652366366095117397692183413811303045579747837691472735217091903756296384609403541830597680555803156532893109591994069503915142179799110988846797989759765456892547587368591290353774270747927910460403642536258212136176845930186932664721810854408095698648365193340498860428283525791686094461275468524982572366249589265400400099706182380830357477984107502526268773314408478557883957263925655154433380868238295261336923218033477642777728392404479388064019278374004914572220347324675660694340353424919951841428477559342289587691868634714328325688226016776786291692401615464243465552689478018014307478276069210401188463747203545521695988693116481108436952180247972801449201979186956242563334954671511971904158226340030118683399027381499537660780042608765398021951950375494637078268582978289467171658399156818346069716133216375971223361643836331386024482376788255663657348225404890563144864169366240560386281823752592919628885945246638995779801385523813631647969787826054629905625335319831313745075939041997491666622883354212755137215560955655669263361175085345348780128359365699267526486578859112132155690041641479137658207199386249355331791915263697697704470428490892321174200762565200411306889646839090828747831996710049260399992305271235005937073044264383868779970087734168577082567577783133347076919840910318522539481062899976126331878591937771124001916033015318455671898002128437525322012697898538417289345153756130854761260997682983827288504523800974100082688958677187504968580192730615203496334629253206732026368780143976143220674943051388444225174444064233191240616196952192080864815190959132456250012363122333004393158634761434723518755467912724045951945231802162832645660700348034094350416375106277661767703104111238959908135877285137791003214634038842711142681559949608878789172504817456441939424260657772741276114167537072581281583383772176027449156253385309414576500523457690945596553450085546661082731582671061017283727757568493085605214299686004481101536844086826282115048360342388269203418884885310362186911424562981359589384941928229660941698725777901260467637402088496150644909459064485225977922700074750426960721660836208314833816265318701904507366479887947786360769210856467225156859043535323715183762458718416049171934019466131806531236830372070901316522771012049399443176622132667492040488050931680304062120635846672061386560178061143459580833686225417826873491006633383914658303487650055563706973065383102543732627385606130373145494160080504531393789106127442437561719230593258351031798805784479932704382268665143727374513934883401175466338565602605620778741864379447744007015064536430915073027965104426750504016156845221657955038659357675841381529642963714019438893200619624378149628955021801003111982479194612856908058216393428018802591019977373682560855644031990181956765846169320032519069095183428474017596372599415043195147633419106833912849695473721166385389936098595782652849819599508643613697010821791699152961677699915737101233478659264910138123067160698564044025377371186542114346402883294646666015076343027624555583448120922988534118157086235764117067704435321562433867361290923885241565706088559568606064523472311885208863107472273448840101101749939955034365960698422901021876009781305617903272533332799958587464143001371759041233611068015573608534566327122456567002108763623730122519295734238316720856703508055726665894788964898417149446230888701025725304100906162388319804059246265697342003398974121790894748622396233030579306571940950112757289061412971530181719757755464143415543304816794026042680001066488772567507527940958311456843647809725470109570003990661369124913071065760539561840452247371992131102882169274764960391786235441691091633432897723881847249933385178352449010650192998131869058282850463289813073107535910169709536140033837741598464519613578523808111144863543735569761715212213487979058663756753805286737562124966818726089647656408356359579494169255619923737472244710819083714245342228176311292919103657506276461268766583848394872135444788088460898776647242462759998109647425381600609155147417106577721262883207369766291696584527371257459112846172640352026195416006875699849125149381669155894382786428517412248963211536795642598751247670041871525135150850034934399524615686642777024119467343725859526321820057198803443451386633385565954965115772889888118059192747902928898748336336324094302682103272588331871808046362592122997709997553225511344617759033258114337812899885065516451347553937938956597507023445858927970110348418939943455691548543540332686152783639525356252972321320621254636534633217448898989170767178407873165816476079572881974951544735055281334035249686697554013193197525307852429686036739816220936892339527886675873391343983011942714507723995680083818646713631590198810303435046843119335718463101353380202576055657499621571217487083643198411540229687154038499273554638053787881780414138103920997975148978028238813387891440695591853428572226343814326715926354038983134794486991222532371452307475795315487943910910755256106314660896968479234051224882941660609480250805146034853099113771131624080329625867592864100281230173658799455322205987787135452922498644768646602921191518878850850978574439844941672972357606279696347550926092302677133243754552440397260869067330702533467531825922974031677159609593067932352729697420794898553196553957459298135182791040350522952665409750790262679922181244622592159721334081887120892340401123395334882365128813738714567402598907264479369035312370447902655300465078022670554481771447379493357894575883017130206279294858785352314359810568801537172264703336369152464533331179863789854575279431405188954067611660748044696861536342873195447922688879703189311892860121916524851267644151984530364379785631667461938944721725972522996499776054559181231615307057247137531007785860663223524412745693732828531051082723063290706401827703996657007226650690103752969234896219362272128445164032900116138335038004951825608320096682496624979638684295153419542448201192366016000276336147493996589035271226460113846300770915118420519172950502154192215765615576742491401334636007611650948058893554738356188503304207794932632580566088678987545442361841860368099492787590691966832386734466101479232709555769375529173397798970257900877170955182016137432897975394461634986266650718599992256379692900989667374224956711740922898848153039634294129801720900513037332133313317290440726220654249954873190841281580828577719947395208930060578324847712291002504986248870211665599288316293287074694243804234313293377791650332070109383585508264766797685442829971841691688333180470526166884868201079355136787997451208807950044657748955926241510830405242257654866213860969022094563108146483670142629887093082890947280186166952146864668580039390294829163524623205264331390329051292082868918745081839754605545810288216797362984653931492771760981751737731927048928063434658119666934582727907070629604060793610496558113887528466189850011678862761715686253339755688833953966020643587823237784893523373788890105213703706496682111455218274273466235622742573297202033995586613751298014137208777893184751019902153821948332685164620129943923648025301803411143222805488877623495421286637548664564897710247512604701350868967166585376389680584030031514455133055715385638139627448306220299875573189181605228680531104742523049955320137721188153913948127066578820100939924698765480480618860190235216172981924602883443295312722603330470109436252629656673434073563688781807031905046746683676244337277264607881292000818660558049760317685807611197243321981630644179995934676456092183625256214969840274925591802187469788031612571353075997003377717080135501208896063047221926505768946242792156673461089515096027558811795442826751674766591092448983720791981517315516687195911840976002329488496087265085586926502118730797950268837285231574852013879588871895368041459744957141625479840355900974738985323407600778438421447393283710164480890566166750986964700618171390380106623003600961771570886311447319371560903118900473570841944763481842339920140163351759125929835618973527025108111189010615917992333607699259719935589283862677333878791718589939741954190518684734153370081439415346646230395772277727312644267738834142624458694442069944410655604912371137024755576251740162205543588974652297208995723422671522395094955271342924513382357760065706396324391453752069455995439421905724064289680917939728108688291109589027000247644632125347595678707794223478759280561087413407106541131069523439119874894369997615213027746132692947424470716599141276148160082901410413405212488682388998655527500390844777260109692938914592633938021019865055950606658046522901688836687528390285137524338098892172782193837123079461519699588100301302477459991349688735007269621255668660733571225259604731687094690235293042274817418713487490534001266935849352450011445875376597287334869064687358531606210544168955588117455651701286330307072008445903245151033801945532093521022919586361840360467980710850572650705103140127316960143220940790106148413345518695187898473125577876169395874179598785951182697672930460640750172947578656439217098189036711733485513108635074683862063793574612736018634495062418641676038861675000319753822643688328861538422186538523544274484151594859655396182903401927982141482560360500093758741870367820904524827875249765456773111540178766233795901226210692784949826300431077523080183897373006646771449999115678107316598292773726011395179836688385575311676347470560607273233913644200923594593186026687508060223137590411950776397556100638834221566483653866812967331988476829146915076476631032749282226054842672672852487292471445294068911734845796821987256728801992884530246043186935907191229034652927208890086718819107286141350574509603334226863479523396836232383664505124540019529424241802841608682798984303242426886441193074999757453731128360899948971490930466733095279881691471380076515665620525946953159755781234737430719520565928561984331217744295609966319788242878268085385870293583982370424371252169278704425825873659572388560417485666719546739695897315835856498853322733880155457181332978683334502482858958899440953034850909829323532057386961208405167934941076663560364349063515821129175697809215966953872869281507364917844315399877935125691592595773880306116637769763226737972507950428521913283517378584228928501379074496666016440539257220665249986132964588338660941406504948843490521486407784124895578744960820155600248885698902912272255082203799948698023704918681672195820157642491125291690968037238701698564663729700462875410745867069092928004355273544188816551722938518704297992300234600345476187480683453043561519653257405823649486261069329415741706815063215101488598581333032807595328009378280388203700067754787967158177547201141041938668754939514424419302133253279857010119902169386021226065248104045321537794945324708328884823600210829039069086790881974101904838454727418117330444966057303558834812744898376203585672525073876350986772908789614582910374983678939782029956111039178436723657221631462562289639850647268646926290688019788632985151396970505915881440901307531974082376520859142499081686730707396231830606660134378535148093325205258040984355580168564505749306544216963275797680980749652161952072063702350401641726148450572012908360133540460132622869536883159239520440031130536913898899488482428262943574738475008212790860314941414099074589922739024711719309487516639027630007576244031199121340184918481151889419341642748411856436607992896220485016600421205356512872518436248553921238750784291400302410726040010605083496358199509015024720146725626877890267289356809580958374966848924910618944520241685638501868942553003209338342067127671932771173916539422191168942077059227694686536069820726517851722514413606865788569470303590600952563334646133594731726030882636658273312046376754788912789859579727984432047496475930796267927545417030804512772536825790770615318497214093812872631676627481047507046203401482605747495928671495950379830549489041223741251029152817057589507423580202434420846151547849719307608677282793068338563231834273115204872766709873682798140728109444817800078650819201843352580448818487490092216815698447947916343581522120347561062416638616029017195082951298980728279118369978795968494093477956172448428748671083395393022733008958754721916597902825228232295567695882545503053845830585000089538985189489109946139671144015273426294300839250823329174274679898165651542498308367100822980740334513701577628816499885691024368835231157049633299577424658923742352723633803671565859955607874600263853198694222351237694069510762720605604324919077613696188665648897450429557115432864502996312508793893211063574471872048424169638149150379869492173467627199231715479334726147900860807277102483947769155593451563310155650590432453699027617487832080285678126596353163003937076211567954411273070224519732392388190553460309009450157974791072256209378971216685664866642537400781923705732825613719037849416653000362066049577613725080053253042158307607018784809554635834584113603670412928065433442141929221067224066912764106014975256421268073580563982806963105513552859733335416490180978931717366623854659777380362699955819026589257717865562901759237512886891447483534686916543701644435297788410696663805433971125344584104714738693290692967479107696078866905245183123807392513053861173542271304325546178663719212469103962364109432513727874382741979705241485360029635168726947778638542931534858224545965138724781168077831182824787827722560748740367403261986674403411496419732266952101296770360689771083230503113777251410268187736809987473696383605468616509597971998554600305465231860277715933008284967182629797983708522368735569140895261183025692945886781559741903654992942651949885325032605421348685925943376548365215553725778551585244490252351475480511614795146738320622915508804710499523036554193437898347702522433219245528252369741358519935668467435527079180162203124245196040808823892635734039047660483889317150779769057363781767997969566144032303570398956799059698253589831896210009159137870896151370752092208423545624681226262063308310579071921973326038877895533661690984379636631647488006166797658405388689309586467805973711275045547049322994580310314451496128939230417480798106643119543557059988091170272184226308266099750967660597054679532957305689566008888541023497091011938494867772572996791263993447831242496115555026280190998269550326465158085492776494449728561520436090905193376041284777905622297501378760710147068499176045302757567599388169551116516392114951517183178438464872625587154801250594180837224193861792459847423408825416271394179591666799084276264395037246569484836261664313324716383205001300610297020315224747084851318013295800568847465310518384512042174172350977278397039318577847428763133043165786601505093182871081726233912756634033218927824519873401154258799124828461934648876061166082389442252015498779942258759127903263097001013694849367469450362322174323424595292048320287473088251959393241991595776163278481748475420519051709732535184044307560988605921084443640991421240910081007047210256215561179386590255542105317790621268596985476186549252270848355006598402716204401464922269236970393989421264380750326031262469088836490247527728020154796857585064470484503830130682784080211254373851602249085812966829911456651308612975723972646723844768093885309459548585337639424543995467332216824204217328344518382919174897714495637935890702226824672041871767582692352490971934326780538944951252877669807647406523844599507452369882054184328656414004350175308994890357230758062562897997231936106613468871196125602454811481555549792661840300267792084591708532852400640738680019862875527596427698583027268278392278095692554283076190688141699702766105228163256886101163894657729721479280735004453950472252724057962417228790671927095716290590955623169883328892543983462291553984349512826232304323465212755580447234304667692241660656206958920009602146861265893476528297614440184449808184230405649137164883399915006453204824927664229993331359317933910041244422556254843235423405197508735642279109912560961046231370851653159152222374486059987462750102361468721982478750931705402241450893873675080385992438328869543922891873620304808265589079009099817845087715395130995189727777919403211205863138355884951803359720047566741035677058306538458321886428548484059522026104040529916065871318546011426618120922787240134540852754744401541311852245793390938511785013802164187315894729389823677459236533232048848060551541501199833456403427426927751848743563675581065123403901253914236376229060990375998103527615244038518043683697328453073950933250065568533694507451918453616505475344076389484268513470156364379963133637349684268477690836426433077855309463265474207101243754034245999242270302281061304597733396732700645762093118347773642731791961935053236435091654827658848280321510801446993500907489585592089857859264311358433543839224564953877175956323372104158396075411071587740257473848803664269973367067224611233797486997832208999746773290217644242292019821950026924001876329871397877596305256725959483373119924645064083776970270270809570300719307002912210704430721713206977974479753300440579085006965648054139555023805825485369663193780996608000796860479767622903257426213102526239426083654476142008267298595561965246689655805509845735110627064064207165856413748236067509225802011760848505681430531667595993192016040612556925314187600075850337847388629230433731971332422640283760433119709786331231912939214481417005560275255412819469913665541893274529493221497551101540572292149766412728443653020766085070721603525413187255430640098703187123554111103602923942130520300265653155782314803552811421699258140626567301742238848952987114912639875510885287837063084279981599173192163564379893607130897839632992180835300640665090078994696217975284634769248108399947128888424065216933144903878689516211849344121272077568009881037331421355567657001424059741864341180737126872885068673319673301485533868652108233255839289936255532158359412613932210165150985578080911095359368400241472237644312816591420668072185992797061373590255162735074480544783857958471778895480266713350385891949819429408496970145739208794344258282939454635286736088354032093764362008703271185050543365487956748383608305336550756827543769219286746919196077906587304394266157257935390310088501073850875176077271719903234611347925200604022721655338515318911379832338031962949028465461461517744031478335073728275506289119836531693723962115275039798784103128685672087423976323414619313717244456016658239152109051009354710470491444757017074880200999542064952678058296263847819255059985191173674382608919403777209642118545978277808625759189052356447569541302803306345198269212637506408399103370116422584089051734530595278369748355090192963882069850917025875571783893295608476978157425621169199746214908135522370064461595642716779491302157274371814588083306609103009059591899548681722599154854671942723178744429884948160778225899026719285103816958600491914740769735237095078327575933820604877025489453249296595407778968084389795860589931025211053975037761401737233276435360301259667580398819300273863266646496370565415348920763218655960991477509823135892116017823026610183881437401586907054993036820277713230453301460889669614280022230595556856654516050798781978618313945512231639295533057790425727250779917259431004426127653819822977317309958503566918705236855903424212056396432364957981769599413319145122916355245984208187972682168445287721002255458297730865708309657867529100173673261657753221414978705583105851120797318068824773339094304743861645490317417085379275030777522024042348041076968685054655655164457498708538043536089220865463671234046811032637873201084766520036946672993893066312194959049588119809879546616690786443583251783117936139838155862034090519613646638382395348270721391759980326078762910317484885171149635745307608390362650418982457979701379951108006309271832960748357535452593889923509963850965895064688153748800840494872695535463201938043273802868226719411072807287124177526394949146383167246884475093273414573727195273188844595194424559458907374310450218877180399003979382957950042155799852205064124584466867578766057328204651061620433458144146584116520870668386366750779594131181849118398217256685687804063439805033482224550764968734698762926373002852590665018808556931089118234310306699198772856198719108023615935586368865191417523565901977351623706952291009793085819859303666766637411839545385423528271093082799850085865075043575187081558587969810960497921359383723581645844112171193200566771417414644636333861185647595841187685682612941735421366846944735157226567842457888725015572853783847539537108798164964622364748250930372003285434054246466737613253629342031108906858973802613748477015260039823524467268513731014413572839691396713517393299303833870937793938318922591700379622027636333072814998283376746824475279509485805273586014704253706856468812101847649553663062199158003007728398474046823686304258339740348649172830889119520597067383548560902027047252381883919548876932346437939617935108866607730204129754663114224584365007806253656803492586783035402990247926418958978947017802535155636375676436920610997514661070998125015388997948639156624443030177161367661796972121189568722447518424399258414394629611265717242226748873805821804741736358051697283098406520596711502490863374194849736211496900722408621350573894672542419589408554165706396797079654149059821742157027077389204547313345979222732045650136508424741738040827883545186554842079028993539790493892888769960547268792181791503301151604335946496439591446420126103572307720474072796030186681351684590008740177321805048389712455511447590327943326633181528665128545763180329697675733682876210629687750290566862045934478486305885606294529503551879159367485048580540755079912644315749068975089219237195223813682837782303797099528489816019604215295953873455399466483805285766211246877749411186079518083103358086917394095898842162250628503294731652752366092027641908228579742607060685968240949316097982466633559812497926753709580018891486536240985635014336614754354815763398886318007195048162355915464408715451433235979561726873568127380703989252664292763536823407645452524371992140373150074979615838222961002298888383368921960111666043917692524980122412490075734627666360510970114653518663479486686429466000551466661960562958673906205099865040584779260868803969166693745137834303339413759532972448791919184744153378700002840625352760193700587713095818003415817867149176711008977083548462543205302377603739238976643607682952363629973837087229328638624336323642278415148916244252018041715777252081858996133423960730912932026596622916538732371138581993067623689005999692444772720310567471574768949310262281481896627857787510908397494597791285483296322159600225975460934912336579883841573940276472270111330858985311007032186821244290156329012191803381989164668434505259275015400973346038545632767999212723913723165436798497796616769668963968024586600898580506093206016097122833180709866823070967903075693392926339443338373179885607792564893588629080853964330607735795573802614115771530634853470822394390898889782707723704350361289996406067334183536659545339117180014119424862314225260558685438038895928423570998712010909591636922496049552102274896267939046737165333252100367979223090970968648475214208749379744174926316802555405399284047756266532879980973233498622150353011767732618237243252977001478503185434996686297348220700981864607016463135668403337227300838744067844592375439549921949777702417925740944850256800533976488505083942621203577737926162802772648255175462305150513016901839969348209199052572518975854323363127921379217142877041243451146868721081013891078843472610387157078972630162237019602534688856970397907243060548548544082008980230737560629237335166463367228878341268604608266961391381260372292011566324638482262504972728743089834051566734816284913750754977910271208104398137425682890794888616091465277674324863323222891516778975251849655848788174492218486410373888555747763729086217128426284054214889884897863534985308540050195184003631670998729783812756743024931875302911686248504960688571835231457922221960927505363651579560119051271365122383825052815762515658477536892246483451590721374125500322963131116901011461023940240709329174469544313057439670816289702125188602300117029487542718328452202966551133787858069101574106202662470902217254134404468822606881015210382257864770877822925298208547392954674190038100508191384858788765691924813274757523523803909178060710515716971547595864324708322007759471242345918108596755120922432715010812018590007189052689028028111062544380435020987582177435026015656381127386008319167837638835778870792746051540195920527874559744476367892602015722280834842288027453628463558252593804765551101969045405462743727595711686249742736718838695718017162924945309985949315129694608477416378114139785196871005544383396476506986661092286070204965459065419532809069336338779550682956775008779386852595286101736723605831224373232416542620902021894432530227581327189418171208220925343803242953589512230760980419489290695042502885854667104203338285880435119332925989504608266671375738338356628975403924518355048988969858793693554055163699972408051907799128978022793587227132225565639796395988672980560106545377658293756245073197731917979157159673935664332779324164483173699536112726321511511423938022920705106188653592419307933149141920147060597265740042898056148549566730124329603045238176445777473264391265107645784834699160312113895027379026493987228485943425278630415214709608227679340960230408965890038899289456088994799780499306494966241405020454104761615885012285218554330987116121511579197193119459138457003849136021296565729997348106451302177580014712168325810613622568556543436446540983643163113955319587984630333951501893180354142434350876670119934906109503468937984299271064477810271947554795231372673118809622718860116815106593929591970720836845237922781642682130466812727373171730342952118616621033828107441654419319230233014337155455418368451033455356839924799608958799173308164971169172603307814928064307542143400556575646440481571123217145512038462277492117326813915740455917554847022238664277780412154230146459927580371132019988025773130797108780835267305522213021957187093680364325657489537913266985739368734904340758401989401873113576114645393004190662425957315107840622395241725830723975972012738358231025120109724446166658217294802407715609203884495789427915965949993574539374539888328972955689959774935512921858452026681980992950612468399330242807397174949528874610825642130115520234563279904711573481748492297416164892145424431269218006212547649233498877619721597876231676733649759643281780387403743343918034028485363791053686157548950828706353755490763781260076755334320951448899095137691309202331693622334514795533907008980127373533905374434170051067226290206969816875257787109230371627991940726876132856630871249818970742656047563808967298993514054283597758397416729033204296676648538563216546854625299529229040674867105801377440481224986453389151631048865052667840524353885616575122640753621750844368277845499595742165655137477166035377399272006753410804741392427640164105625839520511505360031509566190759243957537234041338233226266959196115079266213702496841623700861669885981850563444473952392906221594612644485984797034467456110759664975976755784250820620043327538371592511867975609281468173746409730760023563759857305812955348244183697815128117843656891029713207780693828113891572323634329009058940872053322350397424643520638958616095204014369985025165936827956957022071870725507030622384664239786814943196336861018677783851819855397429363165735726709096466904060592363311558200540254679080382481933516879250493928717698980694226199210670280947574571650824395793897440044939107369017006914930132448314057744321868943637641444393404280786407692937734115551418656242352779479993357501134784709292803044771949194271072004390290887187022222929624890697458363806119319112078241405866257577659164104753529989336669998216842682295526225398549475374711714739939380759473840467013404317959116936130126032496910941139720902947948557440909525919435169951646353547437299925291970878172755462148215985787738480464007079860054296012750560457785321570303978283054445966346292973670590035877909928918651906326732811232069687621857252628196145968482665394627867996179379327251542291647216410958514108218857809496920658060488628426356980622204787911467925087007628832856447521942176280679798410982179569532581526232731601670902047660082929723558457256349267025110265023583994612329843009748979321604066151146150813802495523838731431616634895224042193236032079541190356262434081337528878950512259489189986031727827556133318064280627960007148335917205949674774518013247489739044959677210451979768586056363121794933081207976329726605419942383810923478591401807011758867462397862017207468872239583383776864660985103824327234716470346933248612421167725607274065321123433340823611208505140025000136296760510452118888193635322651752810086090319958195584014581521812319342782969170200544630935274480774606197271492271620876329029298797926233503483856906846554447653482979536728026155277291730192943050298062304952420736928312797581364206613832712832867224034572176480682101368276148274695926797520540356183416076093921679775149405288919822988902344213646215128943550042227223728951232473038544923225935913202101653642350093491212291103564027635695778127043246856848480030963988829405360452925442806574224491810874557346446954737458127221579234062389137998235256087725267778441501650436942870003072706647449146233017720993045722557866999141564642913833641632391687118310769549141710696105773896801385255261013030588693869428419053003206703056138790195793666442210273384690818854833968744975557052981446365940901764907859035140481086305415249268605490467002460373284341695533634442689433810198125907953855456535426046842397698815138854007100621214190522556964160809443182125562538428980927545825825161565080805492841608807743949552676708274881717507779480343586245833120323154326083371127727886595024613237013028549186667840588364199461216438437774521288840770835007252664175668005033499192948921354304433388260816800185487485915260011111814408777500758564212440405818219116864366836546756408362460489753038908892621051933255098133622524223270390543436145936730071165105517478749345164909292959704556591958657997728181256576274466907042897206341515069370290621969467023581819019067955682403253580534243736848008170549956647698960087674641984412406039741313850306291147266797503866541133542517360761637956202744678896495124725878491745707447061261281576491800091808961748498756454362828408090323552300455905165462374589976642306933200572772764746587231954762917770454211286036499339037274761654669045661991370521828367715261176112810829067871170738294358444328667114821511469066326853208996577397692133375623319487575342742030219167065741172082315433530457022365763954285535766465276545915248848140890901867910856152372145474206147309656692908151272098575408855468847876835084513328642310645529616980968945174319663079333825114217238868614372549385914713113614570443242747743451363091491455696420183707720127523925783492932094566684142881814893916489629109063448208639309370898405091371392906456843697617685450233545035759132825633617257334809256669635485707365582978593606957014601139704069254632182811855201319948380736890896686061521179058045618710751699637298963345365350651081895108295673012372301582930226110742856754674899158580472507530650092176000419052405711493490073590163949789678564643785240813138133943095925952357625564041191819863600023078641467550560249277216494844950988550893727643363627174829758145244283853090291578960015070257931347955548380568440683877577452624434721461783397046986733660148314363156263921975576417364309955759020495485092144971880636736563269843014857327420842664201026007058602086024683419326569249503467251530038033973776363622131487534939312436418589395615401330218052071503562654902808242853900653551381193784060411655636431705024493670564930527680129758395638480355085982434510321126207210411452024721810509806012661227275178677447672853106031889842013152566594057547717490207450867024455990837924015227873709760448401931462695034619730731500952128951154844346349408708054485714975062295679443996581151643522522832133100268118875245023335132256710802415992520080342348479598298060642707773497690317134826162295399037710958750598439129357930294549269247839716465337752908075811294463262424144766995780391630410072880667451707119263432134229819466263763924880813277988834286201511755657628560249739094214148613846217312105593425560339013084507937149597214392808666112354773272701584393967275881198893134409444745847073874704231773750877712434358746077725897245671917780584144666669884284056595136435471536442307691218957710727965034465962659770917329933624822122033322964685033948381740483082850841721754057302558036899038984904177993082531868370018069623615067318856456526304881681670106551430599769915619920981249930949147154241899196465242053536384483328850103249017671124213122850651284331809993573649370472959010730906468645623897900622186219126451737359347225194115372156752620947762743587303514050039609336073879920191830798996623070234850523165663168163634439544743690535147125184436008274748216892805538413140211475588709016151755362423801267012381803538168832459602774403234060947481657621779786016968126491602580606008310087889474923975325016364298965299416840415767856738621609931837630341008368382464227336835180765187131734226101741918655960952679505503196707839195514198338045884215013036615526371881224055711683226604270381617943063654260321496631492546284396380817256147141835181297906260126793664896488777711451793599146619529941411323787380940389207237787970265850014017496153990394736418858071566266959417484004019255744480827095826070800921929927463520463690076393290258672322727328583211896033132255857089289980352309270243583264953379028615902751085783072838508304149852399050413500729627108932594767350134806191084073212041907543363277713868522644308726635748061145032913230731691835905770701703147738441871691540431841795407530126139727688317525902867795474981804263931006872683222834776434123194632473531211631770406099239614487970879248421350146609953324929967237401762315825100887112660973880214935674580828109636047286909736076938789979467754288119572821366429435890018956186299577090719438679348218620135007750304948647078181525401557998612296460193488256076973405245281047132230068235427708678729788229576385108719044154422283463500509123473275544472768400594640454903006593023016083383171747956405874514765490386723171130650572164858598291038242605285539611845754023831432934734149007058041029191004676105065204236059639477448953540131873806104341428427609319068372320091743968791948084744192741550677898572118114854537058071687366225138193590855177028399267004678875312068120455189424294048005587744933248576977997913578443007702378292631917637294481454406322524971856350652878225972295241414190786019367928314575266570617122483026751272927739503041927884176585910249773196307660221986964791339919710563741215487905025073488936263170451434161088349689643237104715962300324166973466168951945041208073773245260608373865755416164014845744660075149132220569146388672901222409669449117913140326314619001833838990070291789487223516315546186540248868878097567108076936431881646735768956449052095090110414687930444717554596437498052685210383039321318365880043110934181401152031188877033469690705800758675146478541421765537497963029287871959991844231382490830264134134598701902753608741398734041360187235267364039941464053705082248250285585901194335239824726012707928056535326733283534943420455901941512938998984988073475021098499150798870238071984179211798250975970008236632943653410760760408720594788807337107154220096284092328109400174022803574869983907258854634618375823649878054060372359095691441241713407417084234508047001289047322100817650808564286356552565494362246860252603663851134148856367642755175670654616270780742644914205412749866239935073553686780324726974835175387624170221875864150073100337920492556582321824726127367052920189149589216153864588335904303797012275204040287639634366161977154928153690238840894564918046558792277779401675764785160589110981200669773385353558790505212687626720406429133126644280869879396563552687539128983438647273721448975677795713445598649039176092820936083533659730387475059450893335655015417750297066358387460637966923274507870132095741215554808806946388138697226952522235575544354110329002372316619447103298297775351278494991704031840977313772669530412860758494074458047288589754728656638384694146527717057346900217169796208650642980075774081966522564600840090519948010348104059091837272862708456941143130215647230447213037013979248193050663667123934347830057674424179474477731623004155758900780755240350623271283556542905758435795045977226709341565955734773344652442744742505630390252884272745455738906710239905059780546277135861611719548058846096549377385663983971933831936922875802304727980614160349625468541183867349623467015408854245613440717357373852773855233655789531692202687775599379917722432730818726105792261928668173888040545460157210658876052128707831859068921653765785319842186831296533799817489864925092812811954757238739019392962354985561433255189183504712977546222457213585919174546378244333597228387500051580524316991988937549626944437012165283930008962518469752756216612049740596865674726001491445116946780766685664994011003922580681762216395490482620144054413765847919249128825662098071264338393627829232890554103876211015301195713737925604331887945186189579045547087247071241174054839979692236549075995464518138512407474638968954077487943561244095907008019191651706327485215126229020826197268604685531540760453087754451297787538735442623987573970540536599699245184517622566393104913934761874390712560647863091903489152265556905494458308417937053498486373831814738172034523768385540692498782990537310380083442442529801643343344034974665217817673985006063018921456046879258235098303227414653896700339039262994522616291591033785254382107482546919138644666212430524332680763785854637311030038170126028906006606609511075846247510072831134232432259543464116193692003309775549655876337433021981627220604656884327911381578449178804242518334729572954258197897388547955138886289783072206421778762218775913885330890064570835436229398624033586002412664271763346397669426432516936421544873987587094353561575713631656714162232230940858786440910158238228415504879767378159738409803750728277373255076737184843119359994972901524937024680492778555947530989239893873799497666731095199427642270952487609783293913521663138289217295931004938033622886275191346523391890289629616643376271489670653744651106713202253174114429370285785475510682634147448387544281132161375103444497953872475952183258960626835285362962681991278684973775480378643536220759616661207900289955645902165292390222607149510744222917538819003157949432676952925182809684696625810624584251370582202832890238194602346857169722149627538062360253004189467425169637536276342098960926752262376565759932199107914985848867830090627270622474006710153896505951279029207798226557823788867968958783315016231150654532806498480032001122308509925727041871339050549220229162650839959599272192170252523387289210944002108021556983873430397107015274447473045710070716251453860211542399563534719105534351042969364315676080060288566611104522467774382391202713561468040314816134138311857725629047232130425462647145995624400493127199702282037727804025562146546657840500367462459082441048106533776046310077233266732095726528114001988036303843926346194256124167642649422440177101424926047511131721882438597051334405230337544107830667926688557813476732425817211687842717620971900798886255701115930525485836392908779036112798043362062189394391501085444759415761515369401380387718622649763374207148034125936120512801208236442904436306506725781668208660216351945412938587905748113419486027015540684474727787344247767682391931920438498296098040435347938843904180546415025823450032417638455409703147152617580559933544208708928209033610311947593070096002814845594634374685219237100394975065905675389016048463047469150087616827218519479833504553039197919457727957230371355080305099570245452826517777183812930757761064012942021802442348906163290754333678424703025834052261610693778905153441273231076522731493789535767727063527979025304526042550314567358933314239071495708281482705206600631796829437222915063405675984294446026390859288755787622964904807567124388393840967569830971129144871180420955595201997611015828758121931562886234702899060928257446421041997139975975957289723374892518871359736451592227523172189123957391574807887699366806450584240360682583496726995048701051547965324957642187330579469233904001969016192822504667611808615649771838342307158573452933575991575505328923758291920722003589057147514812767586384876309959496005554607333658154110586813939487696563652249541776713815000169496734355175426751210965424246951702469524364974429533229198760940981913037262240842598735518311772510398628372780382292521431235283862691489320229017451004323673688882710303693768995002891379845510318621818901236138168291480239705804988584634462290973633497125951709610202288213424069225003706755627325506893035865610874881967169747544577877128909642128725373384665811577265725506182961537669995043104463393384476504626732911314620759565903951972123812379684112124507286615039464714849493495998422948335695676544803791391036786545826044947930094526034221403922970074989876865635891022665432622827608489137335888378257254927862246027114389830824258396532272422688216455973124238982892647099065261800817755243283543072759724072799111000612550656493840212805963010761347395845617288337839877448282616558530312770521926558978929648099822822077039258933503563795739451118249788763564581740078645359444141495284093220488423231291296902824452270062328667953516197196410705713688660036427556152801347151711066532075049400064426865947487475893947742023276991848516194147366622344694642656179613060580930098183886272007054692034251858511018550370684472956612852134709138965448455362435560594581001819363029457680061787797166627464455263603600637760470126491715059189655877769564435836049676496409613473411114422006637719282978596043007460387292013843551989591383149690075500575452579809218962805687427684260527543191290971565778583250873040849307479245841686295000808057303529154860439767911309779825584768986078677214646444780142889857730366868802209079307012725615218672119016329411332299697191636731147833174040105995704637824517989615107577222492880620047275538741732159139421643330106344244322547945888153132649301199171859830638016082979811560056611589665800751838625668607127153908398057633082374266651331701020991635913907528315052300107383083073628839263601932555347796380292987609681617601660577784234399031675894425576774788321141439690277522507976160919254936816421047885181606355196755293386453725733251569459309322336516606686520512159644356971896271773358647313635565936016906221995971462503952715480602283042715567772913018209939304165507568159547243501345378249544488824332857667066762812381786269015938115494748902246806570678399894077050268432517247742939246187648677757065429234306714691049310294760644071552983391043108317244010017130131936546128792795462374379409895274924644472769958672666554673326604003638320061907437332509018480391781621806333529610710083481844442234528221908496384909081340235125011299402667798354945306787416950351754235838500527122168012300592758166995088061807977408172514511766353758025462681872779936714367931828180959449893283336510564042108070150162655705040702882527121129453869108401122792978759459112403371192166265717144515501818689810163305317707381100942997117959944386290071582219372023890855802948186745314644957925758940694532388943755896355302687684701598854960612067101744902021015077136280329453132315255093299962147345747658321109287852386474429656689828335154590652255906525236496282297451726848570775664614330174262511846410440255754049730840359368175635584477130953816541418905853058776616523961601733355853248758516358188887540240576667614015226195946994503683049353129138931335600578616641522583622550085994705610283609531122663152230045010776035166159251985456260043421415177442144689387039231061619764879766204106011479928255066952905184665622334567506197070346212064835878100310632888427602458146308026040513391718360501867150816180874575789802675147349401475506995896132005351438853023322896256707446946514211695356103420651316805487450940366866489232113256757477557444667987199723907103144656114368713589663658227399329651815210546099722012965870044323812230853756452879435641540887894603645002109157955327921144607645777293358827383732341377989225601092797623245531275396907165202107726480690594113121780852757394128664803537417676778566819836306026490342824632131306727849561374564156795830018579621993766272034912413847000996294513276534487348442609939946408498300902023965997095148714981874387826121981877967840862627484825516551130975340551664315836177781977983405483586116046997306853803213064218663030005363893091461205034412446383233645836850155842014210943429113054743931564362484267287437158903469851907269878663672393287885894908660623813172510632996883604409343515837453316705530681077099257222029088392524423366114441681604335869224444566881190077195789546525234533174183043505138539599242081280411767537234123599862952010497672069963954956726019674721591465316021182115894056539288800283844177489449268182294578756063376488217308497068202109429891387201950110378050052109949413426995168872182947542876572954735631884707259550525665160112078040944890736972194130281798211783681244672491311640640708125719856625077516773274635340277449003500178419559503241806552588977480984168894663270469839494159941496210145939465668656752225344098067697471345157016100163088873921939291374309996476894547174100813215021237289544900316925082655894340180195719350875241398504891406741777897171602272152907471078311325457929490537488834096799103555838720974029764254676206659315530763384962724982750783546415466562834810141479299294831111779607616197056314304492467564887008683150875331121456466168484027173739171199267311287630264987130844593977253073315597087533097059346230045364561130323517639143593817546441733531353441916810129971455322674153988178531990386501359412298220240568759103390527156931273651604607830301189665545044858133173399044491066139478871198877548381029785391875544227475511398879342035159769081589176465225190364519943674862660476738765353543159622780045146715307120882611635679742088054998799350770246597863939722270328012899159908269072217584032921229863546498975791141588550879456465032946114446619484746441344471779460214916112998579097701621544278815234957686036196213126066956331283985843726072127224488690307332054875212244770482056221925273291485403251312715109350033496666541217969226199921838285551108102788174029818117957351507255088736445230618359302328563665600502851491536267463484970686165793495502818671167509839083439192755205915285414295234662214579297698850990118761949359033579514180710437699627234160146194952681282158104510696208823948245090145647015203525205413199997021503292412800113328672906380796547246975439053012680800247162799438170324521898796493059794665175178438002725700051687005777381934793867079239501770953796519766485916147640984886208682302804269380625061138155058755683782764666588703605002699024607134407468011395696629792458755479936110617891456097661165766435695579538934948709179862886215520622016193266826667191849718681948905915661821422355633521645567247174038485707471671644599739484135723153119208076333692327154032018092345135228805571298983452725222789811088297022419050351195414987413915392982364682107953527311423516685756642181131226437710218627830935063050476657320871244097312093561005982299379741610338995505572553254498410014475008537812844221933554909250754906716984199516348345793284110447560420629006596678858420742007685815508498268958456201692006911890606086899732053275737875604170766388187381901890534026381893732414666999833755351707170452782670062249140299431435910372947452520229774452906825908500386977282160208770890792615497360420820596521129724761188703471594145103929387104990445789548583560300834981899432490489868427750267712496818621410919203060322446815287417991787986986610385011718974243834607013770509101415306263348331306768518801946554685035826254351898314339849348755485657048555949030363791628044319942977193745532403504385946782691133526655538089590087679920078947142542664312695274479490855235951276886374117371906945598932042048317415266410170307859169634122963349712187051484402178465126034076817732427434098963445804986763120759656382138495457025153541049691578516095005154211483133904388268183813984429781849116003968483554076237495572258907958622697657633386479338677270419356692896474566818456357569525927931646743881611371213643364884390481820703457132767848644923782796029239783143677779406674338095250434281827371843207795383573629098419257152831999831308893534648051206230831952311257128354573722311027232764203599423375502541274619752256476831418577512866507418674471974487625140753748497074153700333402122763482938234867921503763696164299648337699847128534155016588655756524478160392435819178251636705615712471343629382890691929373731047669936867350023839597097776065316329130763583718296494339963409977178995160526616504434209998888136683890546597124967103057612072883623421799728040866411086384909430224444475959059319293061811663013422675877017892870176971504451958959435968494462371711686550215683973682516624014514303963508299411295871834190241813451881542242133698223233926012846003975102366915867845987389207443611627906517906275924538885062834884373453952275047209353327600633049849784660615832844368149072609320314681187400675930847948221624301956981920575974960403387660406670972054451501685954217286690942361871134461349009231053978195592883365592607830485834716099321929133630343881245144521183623959999122472640356177753103193018328257157965782477787754182105043948295117313075649051724127077090015774484402362609414021004155184465931552950613057094630586662371643214802900198901342452309204500576200199248487068978154523137654767508826430020426614223401130373356126936247787098721740674156305335246607463785764184066552489745927233032714175241015084485410165394950987984056596769621770960362336899725718059461480778081910602155991418897229989106471919946482773413444716110466053882167150954854749872610211935539197489583011030275626823581692375172532608942699715319999691274060195898950504589834856154911717750567788186595024376391891434779496868299128617744178348227216071273712510568797394642008632536069842960542823407822744411040618440202209823806595996107159101267899143661967002565549619190087544387897703482648059421441155586373283117170614584599682426494646688915386527151840271417635523537160019258753190810343171408294839055552803281550029543156796040974219681444834408464368279588091900712201989640065247161232586790368274322569042596210296789553550440247662235748895913801085401945914583110853188812640735169026040452285814881871430645593858237024536066459302310978184689895104099029513116056765432068047014040771572878566912314600417187208057440666074163106352504149188903128172162832469445160646644080274707284437244377905930052573062284045248185098161146492764543818722232149863706198511477403674861475401745980308938738610938018364545354110536508729490311776228387788763427130522459995344205588885156429227623019347677558971066678283547163330648385683100607638597730761522190116478973726646441731397191314267577320614845309897550594153471641824764868291396891070959684906986262059566559615959834642003996047153796565034131156258077812037190053079959018108887139782404052983955997515832393788236092229668893993413673697479389588584362463140401756902229703416513224108350681318746897030294256639999847910038473828308973540381492795674378213717240216046632035588938385062025196102617739651493712743210726023100068127845916058257656962733358188593626714209742850100444987047745636256504744014930690931098455108253489887844681278449620009131276441375009415937333839077403726219303372239665346350598727297372756199166720366805036296980440482686647585515194471647502437100832642397199538449581656379126294376393329828750090809192043519942844368414549447360624917723799883357427070701098517857582644441027442441345461389917923908685452568683964732658784957559942839989524043793729557138012113330518441595732892209964051075711729505443192596893447298102474996245987695098171667201503181616011160885769948583758886546010497850564271249037020032442443892153160192139899220126301477414958620376956239322699140646358215839432368155619485483293900163972187617201363180947985848709183392835498786712850320093265228104886133874861314872853647321562081453127910635181409558638819628525106464838102533654564953753755005658206286917644847398561176208023568042149519922295668569992501502331400068883506429035726128372313255256877809608850935913896794675116987671421547541823019743113222294611690535043310309741586167503406822294258060431113606502611493994435927079389849274816175147384198956990221584209666837102304901451505168410924763998010535326511007639910817617152111592367581930688019684848604402601289831438222746088915606020980543777984417592513964324012646405159719009413101227382386153732720947965967014645235855477658643117848042858345070757543400386965885809959897038259368625242743391867690164785722897399103777671110807164975190908273280095638150286855120679953677879859856813203043057267998768495840839162154399335967469620343778315531792850818002271543370929007813233451494150860997433945635623685589986890815455949177223201262529525842507858510528510919287747694627276425673367753400046555980248115879147281281823675185303243218290951878261641835260674274972248523286511940990459429203384835646992565968715890055040966491663872930718848923598374440481100067495444031841592366371645893775833287459841628869368714116577122277403076793590203706080019940332652756540540202730752171530845808391533374255777722694822128839873651990581773904639651678826624503237551929688493548367635410537306695011345647316840055986959183395122772662675905547536931357731384243881500666609259945483422077590887739000898514872110903828317050489175304440870532363572323836410117548956259987313112546969099175247791092326509261476614906540411175329472203016327921455192669172591602041106851537666358068258282900481701209822742865791173770329498191366920479326118906669048977146023839030510789903695938113208667605036862283576751351215886758969603215046014305480509439730715039785041059289782720422163460529149459325889257870265926266690623655220843536082951278763584129264633559215515633424004802137803901970401881401274964881220359564424401243407083595844974189153707701535518763495827135816957257416125409636810840314649259021323086967431241503694627441144166543408015125785023761072473113269109659915981454425206291496783740152486070731475083333606794957528750888635453868218261387683937629735244043586053205870671536197847596230024738391393205290144153081680804069457930084890794038007804472880117541474850183613341476653874877290402706812281938655143599339720003573199481327784135673736312660518335874043857618600785864868075165683940575010138465375278789683116326670084910762653031660711376815464467783402863816115604721618133723350955689784483582731299711498884317463302996449661500658278759536692189376300505652226069551169434264429878365414534936009912940788197132415346938392923297088631605000839676569606109714188704884151216720884967001895825858906502921243563316131448250031090925685769549394467936077999693496563258605171545952487218596063343132106250793174558670258025824447946249721313403464620319799232366376412197394034439183471118866404971667789077480476270709859752806316939681028892835793913112932552267253724501827082291305291248221783241802528346124992530078711510644450944200672953587470883639115967866610790573219424406780981299584908061592021263472669244908941523371829360413724828685597852193127483693933191104514442333991162310813101329211169290543396564138450641017702338066171322219028908267782979246170922658810686752636603392666584367979467426004830252392443826612793471806975397279090181808555618089865453207554206172146996224466635013727899052187907755781598315109482729192699661861362668604351985575772970657909701204483873976191357586153137736484867356851412740490817427573131086713549606964130492861860547946227841565037805415890776971690144824467543167143557053368687641933897179817999134369629090024900777782678001657238750846661996222125135032183030833571892414628155328663579281233262683833547450154538154206466902461207826309935179785383338316159101760608797781142281394337340134100744521580096292323051768782033151824458596648313626358952254085619472851507499521826011435506651033762980300001896202380025085219860329382062429113926600672651429115378650427233350764808754438070085628069289099504117024282908790236436723434840666449035028361475601705492517687786086430155316012742920010774077308451850528315433916763227447025879560588524053456129508351296815552541007794626829219481816872498531178647804345170192040608007833618717510269650681434100225200047505330552996706673419264597846667303082648218211676842580635242484310614549945854682509046879649972959845577733270008064300410457673467670213785857952820229614746995437307867517611352301335686170115608935463749431973286521369996014433227174413628331939386550546755430881488519365959549522474052346780397424239349739421705469193149153121589336289867512789661015763386226176511122739711176327789273524526297165430352255353132615772624978718947168756052019535598845278546242548233796195340154379000108096649110257924887662758367679883809603346998454017131060229854962617344190852368975180523195371474588255205611560492513258770971000377605754158388837369620695442846758964644938383925614568236986549246618564751056659102848337363212736095416351441954158861499768023557382879723244703194938209576309775676462327528861349374460740147333498250658534408645850650290622021789580491990387006023521811206513423287427206213165072887352234429210247197195213126773733002291630331936925075441171925155874174948183902683673846645995480771008782099202222412289149364083659067683554456364645909365423446113836108025569622617530374857247017598217090345428063856225960596114966724832581234797340063624549397706045517623184173824997418881838488500100256387891236397886230541366873595196824951498737990822056874457390084516256985302420878663048571554942974466383938137151107095984011484858644317389732225911142649749553790168472830139330494674103434327639651928315351226604870505698824262584132905152828967850997893398787380775054900261410365003391164882391783622886980115708180755919912926308459234565368068904240044377618859847510792765655317434793527682541124996524880585229892432575863703132803282085206500924048486638832010596850640980853810061887830944569964993255577442842355363187689743334021152123929552117816535109643078904363202249954685337769651348056932596454724740124387724499854023382926966052568028446433674715214089281670928995231231952484575612522353308754801782436990084599906829071450331681938529844068406150356279506896311533034876745699033556424588838766938918955608268057937630798022623833598869117722688148258755968215429501613755318753763549898377287289730321325115137204728441515601886091162132950836634759728646779569065774895904595788068735016382241626149155948698795643620418358358400156026924086240445922814045828206498013916799707579784748400780519696033050092484006411755219906312953614358808698903239351110632407889201246319799800591085764739443986553855061513032605182219169028528257395942850787496810804336226306190547560766133386783878226306773570972412307050789972452484267359656919242275478951643817530584319913701519068426297001974511973177753576356324555374261366989428596881150058805551256783132256688638969301514883953804038226483517763102580660309552884562768847159076027545185658685955698805190296892270189881645698184619719941805277693052982605650449407455143788712315491057970007801782192631219455749333372979030353286987054777261680567920891262187042084945332986035372805568644709343925262328750870395904747513619577177353929594001263460475856164248323264927143143607723726747231552954881233454320882647028064705753664329774857040738606090125487206643502233319378606908841881926848624398472189988776489135329370615816838186512528906012730297930687908431813395804565325736791094817183777903496579512052582744072415374481232020305626457123482077422349991987407505037827535377748005647931319514983967145352210399498500547052046803919440347189063034008691878177848055435965028575384221890342505589255521471624708873569391999753006253645491677884992851290088164771468492425996560432782465825247538846565260183137802164990449926927886772641940769816765129869678205275321522985968899148339371270816669195385488235531177327851944095117219611407598246695865748053539743021348023480165743933746658009677793920760032327199403394095025077911660748774106222873000448909830788087408894693049634376811250852588443514222700300208088852769557993727698678233618496877076637839918695959953910548817699693303663407151101178980815834945926957674532787562393576723235235697779310361075882620009465339502644419429346068563871648509362230215700529444984259943020980683436810632910180034696593699492792366689695882109242555236672541731678615463974815597623318257693510868607619068855377653667271749342014625936092097188959332871560537500194126393941908129129584194547892518309185763199503637819557683391656163678205579167512412157111503277608053914122721448888140736101525261795536214050200771100334246785041691896978455786448803499285444511494541025662822992117224328589518684424837907701592817939719839635204253948633375994179562113247403461251509758883521699029132458909504272075481472859832038093653534145109392443185715197519054582514097483767319605899759572180962307533905570304974741053098962005825415525842842648098464208838828753696077532522120876718806559035971401453144210752016108570108046709749768394136055115358360438213406198782134927115968625609216727463341271036881373030947902497932007627734050675568612763244992344720810307830043560768861013287828416683457837211126871081932016054246493984947252864249165320125350116142940015873117264865860940526777402394784813804847087035109842180724386680030991014964952623050696778516555123443725769117756368292301288723931823931166181419091158237421460370241203168809135648146402099686846378562492821326505227110848839888264868301314612724749338002128067717990445888809374286061189207669571587801343845181922770462386841829031079833252035206239078372269959127128771355130231720066029808700320719733904115997169540997228891366501749136208860229693195968761467755268423238588785454005104755279417279677341472299087378977231965755184842679989367103050987726247261133340568742171265947052279991967667340447573668548419569495815336201291960088195575697525110057359632044554424720180210540665209826137114361675472126147345359550542456410947309975044927051852314073251887921328117059471808885061704471274008450077674148742424609383592713231158930841315294471399316653257993744443295824237462130155414555994298254113176773609089666809010084247303469230701613730502364683568519106783549876870558506823484099729759220512556514694684592149096874064855709190816514132175219876307323398570735869192725077930984301943138635942035236444673423172079399281705739247374990105074004789242793334234875236089920669764519576654580922591875061791944407678967887244812326870986675848459277465534480379970748965707847112107675683621706648302219775505124844660736677687487095344923927758961404559925804610571793312537041506134054075801504206654648290094712407804583698313468668311070293192256636498480871180500079245628448894285788269625304796298240542516179634753285985338128920225645696004932253046129573125931436744802591869934441893170491008143324072564636496524451418393207933361048943333272270495488873644012698003912327968798211529690398979256160267549852429453681705311449625934514102891816401070389112244686833437310002713810758456346534569881009074411262743058314582618977975999832510860971614714290727603944152758558370078022791698063238237017393288806172827793238470963342563545465132565911021643735921894480386032546788161881577966724319860015428622810997943459334484176843746019650916333480573378215710374846052539095781780927270440428481737321326444064187017453545323823983375072647577541539887146200524821389763699268089127221084849455676957917760945563030621802165915398668931679895692747520086344133517714100623591154265360177920275630460533351396448029634916919886253468530700956806045678934618301421440943551285243682639222849930308745967403908042494434690455354976922030376498139817734261184676705737881478573240901779505925062574671278299553152660521197244433474812957822196849724614098903727698574397944234488158142266150987236972426627714939055356489984091688787726330648399303833362898094440182492274470229389458002640038943613570628941089197587329454913093192221844861117283635244889914018963737804407021694176634500246653952979675710683818293535592288043372896165935762941904711306248744818740739161644420339018864043253414022907487116720486773985747472222969179663624656486886772827728606551794821807122510676714242610931581472558568836838431562059558961106588250243834166925190280012496149886128603223055940530361532812299865646087833561859949513841344178339719331374520982148898603606158511033308441833388146606176044610209219028458188760599970602233211999458815340904990897510638720211574202601440704300192962213340929084219019284814720171266015468171806601906530610771369136775857663505211470711762485585862169637549469216418725267975202628131173925752526679550813337876308480279568972116564535688588122706536323626810313935898665308094683639576596539498578179937833622277884014109572092489225635998566986580505634259660560194575057394085139884700852737943390227350338246776359673881176385047397297293439897474011365108926055611733158909263370662815863021376469149427893055936175544692539919467015445859960008521438256218008536253529993107547315161721190803330174145119208146967582868328883123968912967669383952282509246479742180168733098538593983689649005016268040818206059106024464153532421722318036557789252599021346658558898878851212278838050656552226906457344126265696141360125190131492005541668414240296910274511093401739148977955240505412657009859129721207647056880603806774785530505298646740705830567784316180665245525404081390788344790589825163500543756840287237087076616074228602439009709142947049683404749087342000126903345344967970401945008585756180454751243222677983619648499652726419748659323302951201504285670757213802004134087435290496058746481574964991293134824197526603161929725712733245601967069451409258100587077422964118368094804215166499212732797895141392270105245286873076414836376992407326598281206761466082152897473646724300662793711376758791143499890440052174995770221613814805574045510453249714438556589308830736332695383039814795448606167643960068426806798178084596516445939743811490746706279004220847668751579407814703141973167667197913861226035609186887722416887972805847269937293822295472615737129369304554111206824951670112537540828181676326198654752340208273551167627305306133114795515481956870637007773608176058403689468233834824035349069895869654361765261589191830726853981441932022940982751814268022898776390422960250005609290563273422892391393623158827717529804602262147375337316785171118757946269608880066370840392748873502568778221792989561501305251957097672167034519234804446477365092513357161956819669300419813853080642998897221144831128531880296961194457868237173940186275569230024401448908208240800975748153944999391270000213180775192636509389490887227050339580950614269866142865533443095349450079772853908504280244049601150738399832044805188440529962641253401161767416015126464329964296290649989531109114144934850525104052367993922859695200685837261699110604124001693055658993125353159071114990464890893864087265628951997604002638498474719517229295260688165179905760590958436077862517617614193960112103113805539709704455564460047765884596543684309298956982812507693386307415190800931497129153052238010682974255641835974949512568276993380282781489976518798646673823476844503923038059294623813851238615421614100859807161322863813151983465384642368763648279144818187881674628278827256291129225094627904701199872152890975939126638055563676598656515611090464746454424583205332100649554816263166886073896272393471786060955056235087225634892693915510122279818529958157940104054743325849988080772646726531621593755093279088858709823543052056987223533630540411108358843915827067193933534797922272855092928835295641010283746623490247986997025538243030349274010919143125111268185547432492255588322363754930377848672314747955517825315267233399121053925953070039864425172940968374698900750282424007700162697084716946431499774339619986046772445293695459234119146621086476994544624930262980229974658383113240920581746694072717185240775832734120264280347164448734546324725491492776825009797203811014775048079576050963573515319238186622168078857817629648122128913135035295645189966806665130483339772901762548836198089379868533303654883622518175026246063477697623206137971659009610913021709042198015165123997308957970960608781783099536808034831928745950193206319441225349872659815755519748377314796055127028319920178336222810774483798654135902970923990301578076261545293073898512687499660831306935163946764400976632507880504013913779743815966654133819156899664532368405878459924737906788902495291705360537995309831247270590977832797116443165123988320853190308438090502908364210937195239941840011188303010391016428147361902582388212736242798077656948032385998519610041144807284274413914640461886772858725410959500912574266096107578243745866739024588664832704148887957339535901644524530866452373560977010137894322156667502054218142263685129483843181709444816119280525374699979751933425483450924015390263852179536177302584182514603711401241566250404338724500010104127783838495266353239983692450002328296692684819872995790220730073387114560653183382399919631303161720165958076121106068038819704619733017782609630110564952813620022261805541364672338321864381771572929011324487685045237931105969800036509624923097401516420365526949670154907060747193030540053994873041860712763126089072767853298471313527302132485309049333558906371814682447039973743709670887170547959256038399637335704033999334064359157923617689946643184877125028555119593975281858812880247407674622730492913898965491395678106085683534477060561569145561582752803015131269489481112374342184645187861705154206516947717894471225444979843495354215553327971556220380061132482964417571762762832477748924304746699437076794000489565925036016882785160589678797362909667125158955909633038763168000215766643603338483403599297779214364506416052129297627660722788595713804000622631144080933398482462480282382323795703435669960007120542731525077601611391406889079596135248020651407678457920889725431538615433025624263349862233694225036220391387731375550022602512994344136044439728020599563850060137874959935519969383775642015867355659929673260093952813601179952161570252600944094594432000789755107020947929386360140625497305543479751472564465710154320689995503911965183812307904308089530673178439310349655541169402837215251526663996005672272448963561246922335783070972702087265564351924600106457084809177460105847978771342736982484231230116197170182433828866626906126062285912294471514083765878170979504181772012102627760280950035694315622263400379796925302426398034415038176788334195928553908783856350767328472796879043294831121687027696773953578514415804558639917346715525653409268370083230013551615163102584617220605097879610157658456192555399985061873642232033687454322717072429068518480912853324348286658943779256400107125158844336115475065592326086348610547067113331800093192159315336133875540729208432727600481315471085784140054120623075896042642151517248132239254191748091691148395779654265972307648661288722331502638962507351225590678079494687684770823131541337318267619479544720627943724895899697335381301896190143081846868285970771252389763265238065077931715714438611851327933416965616149659939047775949760766699695566859927023997521495053624222121948017068285936736405740315207811418499251628151155403953876583024947816008788680457738458912967289447505764912456041517640514764981898515617163365099980918747011343491188688311227743631445468540007608370279895001255851948015141569720212000327550839130943499808840936785261216314905370632758528845785185204443458314807885920236440977479137286220308188151386918090019114646496167801549465841666685039468589005821042981370910230189332336944119078345604774892362865656460216882405889114430381015403959816102297206040100796246690801686687534313084300383846661258353699278333526117236591561261324083116565129956601277486591772129593859378254562447771668484225661843202285703085189854723302521206044980025876873503337652382623291334374050978389470064863643936882089227433663937262375885879052634820159988095692581851981125053245261818703293240819750410646098048475081256210464242506731979212987781224309083268982321268776819874681031061474206750043397619770399848027767699035849187589547779687528385409705198502325006299298872652200185872304163060182821572736927545475411886677496400021204994567412681478396826249636952866992735635304132060922029345075695519959627343988818349741311707828462618344014533376777306829322384239672428243017505093536490426559243319924161720784533989969670979607877682753412192417246723784473317984035657005247545523243892680599497351740595443807635066381563447964417785934863093054595429563139049030254809738786742660203980964539539311148760524305081705978453503612740241446632238676535682841134623272709688060536264089610457874034146950879845139768666494372527619080595413004015923701036902640265332187850036903136310439965321214975240739731126586164697793009992882907077170306105822286273199535193033609326224784049577784104892305476373824857887199975679680273187740081331270839340926202616800884215548302269157725495547744665439937972754579867352951511110844713007891718565351677161282618849549101046267220789261299747582824751031845130957940609595214501192525370518275687798964945739711870594310037972985268334993469794120332592251921267245524326759112234805748905287536281098795377485867158207963820175378515214578330975964039251734949829007855542485761061118523040255387527767493807872471597990939339959696290238255228963599914265855358718043390128755856780291363489669321360559082826437448253666631053099847044986788062826688477963906889425385904636674332241888649209117000600823197322156561278725628477125938884168037353623613193757303024944211145484778664492698784831913751336695548405500367720775185268543093333821364417588293975838584264808890874259368697252120086595953749923556143778438677934511719427462706908453660176244996754208457155799406369171386983259321863429914611972709674728993908904841784120204926215854994244143128422150180386629348716017844399577855539278227126793862599815228752730159112604082484385853853994968508492593394798120827645788471439191057840969678969383122087118473924245288965425021938138933582622592024517906568854223941048406684024786627994399833488509370296539447776528484554315962323628516026356972437923771941647117927110543847510793777589299877304861652486347577074691221265404453543997088316412178815299138728927522864377319828806669625824144848309755982313504587582774012514836211370961319576960929193570932186188312019039228318562613556613589017005142778793274571220265084450406653784665603265242590352501028574165222992534021718095494967894385175314479989636828525645799728347337788240179195926417119970457756253229425812453013320380253235535585074582697167487626932020681974445411131680687849767047707325184304044848086731685515676646801821226989354169905607990689368286437648353629991063721789483828045933238578818936113935252987856179594218599376517963694535380561122579725428591592297058532449668727284192597226234625985074003119279318819814032635614338771148863862554586307457396629566073101928008137392950517837478607987527331083477839351496172454066454856260456478559677346284102070394600687870499241279717976975579183552040784165696617985691307098517953272896666713710489804226231037074421256741449731933592872327479127774377148980663879376171076775756404723406549721353734614732724117927485903606765230207632853752563368792676528103609533914014873910105839198857903947169047328677467778498431542570633062893457849108064526956923744920263345175168541818912231779736158578877645727379529992002553544332113178318891807636261618137608526095727699086982559594696587049955011420848888774678022546840716972643172466745977704620048677921316452325916455682604551353133557785448513736929284263369744982421127313511873920010127308204391056555399167764517237241340418069509452532774365651521662288329656757991567349276628036774101516556827747759981459344291761986092729095312382987823151794220101444579801706379714467527986015943453052089805978503097529570428182423267733174602541506628639996151529261324741083864543487186878296827167163887745336327563950480357392104188689708154103826715287295221892727575184071044896209754669854891881298536969975639560690536939283960164255889780081155210197371265298503793591888510412264614628757133249802928595440750685197982539820446449950350051645373657716679897656997601994346322265331456546650243966481667159146097374828808718681794664089648406221346257182407252681272934685804436753883792989809031886116350201179840777142790665928008106240130793708034394757154268911784261190030850589458141168829501012699066136641479003229059977593982034583606996025077393475544787860427394815720095606561244482479732240858487239216720403705778409739846418327479646647462205908182298078000472090382031657837332464305694976000422871581513983030362989892235886307227460898082324554886472173471422078034799466854214506242596761584671207199480425265389752473599536694807461671154833606598119464578147987791822863972535126954986997262396999684813492175981019572861552432783026421213380106896075560813778244214546765337135382258731939579127192274632617459593150891569126852137899176923297314194156371460107449705590821175596320056635013206995345798193091726900723210923739330507309121374113965481621083078847139893585760551757022826482443710272985333305588733989241888941525095340694014921869458734491250568487497913309025505892052502473134223266599949251583387618103184450726188336389999069734292604479640913543586805764399013409292532345662765701476666250262630293559214802741677849956771942345036583051046980487004517613420816206055004876541635113001923878944522812405350737996407566683647126201099287211618571337100973491000845822648009220111521705433028463347381790795762640820007908394478292928817099980623947790433570524679628163183667463412136060156680806437071898988433899222797460160523928048687176511628923106762784843688648836981470859857129885568663526723557966284388024024803482586390975150609247986907612892114246263190939293712082015011717494408397582741080928834294127614636118036069108488860476353746793695081283213481065707744311394437110829763357844038648656936059765636201076668332143380399977261186973001592640195279534057271808239283008587224397479439378856654711524697432054346211016492533428083054809978828447607833907886774799410419808099663213959698741374807791601774547430818422372644554559567497447896045087952053886857256613502453533887120795282755035122900636248878295983992040906700694290767288062291482033332951824043817529720700576742773845422654096176833831018773791364534897377078962882099048327116209885751965302815302971484205918942092547162305057870792638000104803134621901870170550911192602132585277475053077329592784819744245689079669998267231210254125013327533776667342783796109275208907959005770254756113962158119914393737343940710849198185232999992072514523144660106077517224462763353688134832358989590405110231264438528913477386672937144694875383214391090459056662844714344053683728953920932517404146693731350267511851494067237124453245896092698762131859143933410343549007547884244364943379327748259630265400650911844252121847305255354524084784435422082970419254992573923215300052236268653708293832235127370915514034438891772889906905726649640182602882026685196886108600821505577526680084659800230099975556119734193769098325667531218184858018710726840900173420710362422351414461496075135343513817080771393410849194178493150755346729441104360878342307682161510248891944410472582426634927362088551206325586890627833290946257459345921544249769641854756477905577860269015186277057993121107249633149787291424620370645523844134365730372212136888819383653761756576617954454780427904615277092320689006614205665646368537477622733164834261009106361421880559393645586904236756160894582710529517595817053979968708381202548425070240361299436195624619284605609515995419063468678687551500849361918666019832783641632429292817225287236006580095970475537919147481215520689878118417278707911104278343686241831840057725973644620525689921813731753338003331238038933377736138094008029998286967380632954237422700740533886656319308853326032691298614893782685867273146380968518125607540178975391070535133570296957877384409792317848166359587448667861008531072370914968418674713054132873703721100319854251782598165948832136129898368075969112498772983689176596801773643248280560863254515014552225808014517584844931122100916429720624541539805354878595982674687054573394442484211848574502169222289367103042360875258215600161426649294807503918176611586885051675676807007656743760386432940756696575493558626966969358835741950905905269133322356035042950699052996435882426761002523262580041249846778172119600253234431186181218275820739512591349579886347946365852050197836155254251338216303377376398519807614347438026605452531715631473692783920138740344891756462139857248316661371548003292604505692033269098627420789075054614107528834035735712009562562916107809573286969574568714798255607114295660900190616346203342715120642895551532577109907863347816436638030490953074103328176978336596515797506605340062018439220038467423109299796601183818114142907591603223562555334409970218531978736941662621934430577771969643071063958504095592606661309422013930042977029634028748809841435410658832086780334742867400015602408573362254341804886284403064710220285720692720474457450008163165514559512816067888473875726831954354792264281194527531620702659011021739765601541209185227152370029135502329213779058101561455457557329890227392776027981315306179353581719058304782112684668295916760148795327690230359242230472328201570840624699733178335785132508219147175309307762476606430323262598082362751493178604008435600290589607667473630423497075783738785124082065011176529203995832575843472165709861796631373073000317815420589010794814382200712131778359842093738892395362787794276876728363195569834624347526623240376080790803628174404730885793435898452256931151367052570959341700963066527320894003561365615686425720470592603562714539977066635986877279441634351393376061142618893665816648443133104758838264302421330869130745582758558106287052496924316348116172576717859294583805464998463428776833406295264950421017354246814389703224242611018460338742469833714244796779814245771984627008538110901979465507886555982043826104838267407614593626695811303571382694166361751564402296364196797542848894604079202134954540441889831841742500076778322667928536867799435973492855622556103758815777990969477934465256952792380648740771613774055631218418385349168507694670337868829818336315221139495707028830003678598346150185577756020845130655462294511859057574567360934696105525323362210265232146720519415751411725631944983522008303018055923573061697008779155967831425341075883661245860447310919167616380196303268656658167145068387647661021090402385046892305898560406985958548386704747043819394501853266257847512480378105145687926771880560334666668840269759380396314071793546590345534745587070982763237822005005129945623420692441354001798223879902856068790210671483084491497362211545690630683764097498274173186962860710706248338461138125025484974009626234422350938942753446963085653713060220195539817560789867171336997243168677781841736082882120953797445564427868136818295304725087874622184642368029880912148609728332166794219202065715413653761252991977616819396248902882905039056564107063985109088103135234540683336017063233592671841332000173755540906618688368768846243684739095816647739534874145397319622021119780016064830535475242890857150653632461994693617717281346184891636584807763486693614600605681123184822162402830277228354933135298740963326838695460458159284663236811913028758617035263882726625810238174843046364825075994618524159588759891967952919251779621262412911936422914824807366893056275243962058478472559581063384831196626072030051862636155329306251953325619598367254685645339300052865023855879073448503118431783256495357307055292051702242026100491678829043129615759242636613278381424080094541404073922756694390884534846984342643147212916658368087947996231890643725388131666298790182754769106576473344961393753843368081777692447018625903109157465908335994806021204710387921412300730004848828169094871099116207737834272860329663963083796165012785396401164975346418653343844330398148525665438319692570402221659338136840835438277022530561671236327360602229738764431318822672390834129811274600362231350307035581227881704574867567914842081668841718407988405364640240944517626784280531614447563183687325385926385163117528124112478896197704077592412827653042566522816409791608608718403224490168553431781835086067332632319447773228213570144300709622134126903103473880274428993543471145295921298821597156956239968806845083267877476261769963804687914276881725508321529909000587579164668372495857258754286440804724373746002635676844603206320398597959950922652787344567691396631160038279789146158854862896356610769738705191496606142763341696090355981934001924348057548030180275194324825216321784510057545339358676396347179891790305241936646555735670442370840124564271214155799862652759445291479630250622074185137056200841434707626915889630513655443689017591427149474816017108321441834889164191588272482538588509848513955095546793500641063195075613656749573544507947669149209528673288693583749934157979508260291507502495675690221684963192716948110773142092296939048838513198170678199787717424603128382739017983392411950481056107074156121287477801671866035201604159785052980883455505697605127839966572204123535441614633440929736841564655543178405883310994692043021482735440602038825061447843139235149564955492707130506039043296010667883692885506361682780275439486009787978144274545735122736667391034072383620059339327616159269685874599919280679407551295983623815922612477740619181818745839819831145667725815508249912572954293619645082893838174719296589642792440938594838269834882312789160356506698164702771646597761421632183833881173653804747908098516970879014233899747290090026861034953415553183532032253659177491044857634875732689578499992510882673972988445545837223929620541209748916687797129293311593384936294857517882665907061163503812057927539317256405186824169310171677898350435634535800083842427632694290136039735588715543402767901639237388074489842431866141687972243776016084977736566659938169119904088886454405461987073634865359484653048863865589998326483258491552115109305429757307260917668564689226245007643327500260843693929977453395816479458697648613728658348985615891515226343363098718383978942145539922205174612604964427632397525451671108526104479529196362361555006628430297900259194388198441745823019375609744264414050996012621498789069015465234018743544365780590801437663352324201163106893782537394618888117758043014642484599680701486139411500858713116187052421780805017118405289850454618915591483050504328746428780290522969284172627110201578900245951775307883736269747797386065743167533677149158891123480108569212902854222060309595191069150814510205857414142830614486413984643195466276085909747367439341704465749132834867270924589731271094568244479822755316350387556127624364509329960012846106575054894255624010863571994793473993098427568333785252174003407725666268360200240574617579107078158482172988618976015244263818911901041005495801874359951254298143461300858559119458322358012584508324033634603461896275414201875364930590884971830101059289869225095690889267174503161841025617529430610566221693233915100705839184791057050652030497438981900345104475711143502149645206950680254884491231678480167075973416488475165574493455915714232373537195333789615586629733791173427246765742201348712033806152517145550213751656750955813579083628927717002772242575898358180274972205272980328836927191116312167255549060719139760765114920700568978436579658306001767043688001658117329987897193863382214367278872487399412732231627800671768340768323241221891357009054937333071340713796305798797841559083940844737558279824645068786306381637771371696857297365698194123453155934206326406115936210902740164451347335547517626432753572548935795663584253451382418988231379669084321491681109383625618845338212820982612153706599368774711197413347101917375081913295387377014719285224623058578059956700815864753504935293133336331152609532979706184694208049605509167386643207430205431229947891517555661069039052516112520383382405775204008851827009642172366743426071216331712741649262795307867840825592515131017638207673927237740829315462379657364398084706809556617061089314712438358745737926031932925478055137402214812568269132771934682842532869269420541018863327857628664565464394250823045923887883496656640478741045177483350471226594266737322846030504580341974133393006032745553562133388732908863895495442240466503456609786651511877963185164804323861178228472075706903701145692003994791636570355442646437107557943298290113100997832706034505932765123697105889462871012744847959186956565421534445980696530892309462321915829280378425876417063332285909609193222276025569747318245186928028613349042985227220766568059083091594759250305955305212900010774611844758524180319228150091499961371176216101168954050640413481963173759285217791436465480765629418256358204627383842839410617055068412730371025266625355056261945464311530163551922567788399875884629913505855226312760929136702789194767743636754667158006541525291505341050188685953258513265928993223245586095963327847524621861329693861597578388033609196611627095189272281334587506254552054051428813998182585300224203556666075298449113400160003851275395894244635422259236129411005523309499692740092847334235281029277695043065774040030719950695789557944989470974806785300538613942333246236649638492513130404564129571616329156860834133403488708862404577041376380841233001110124094748195734857563708951671839787845278333821617874327364584125866200758848881249620013972382371518003972510939410937646090155301009660159547095140596749102310844226757373674806237312447550844823558290313303182080262662927654618198266048336995016036906227067859739211324693283451203978325846050275043727273022924292004619534414485507394762858624975093431091875064217576210822466128401918946951248139561759912042843496601433370466397042208876642578277635127992137336009123012145384251895021829466532331047946414374861014916881386009549017612096141747286638847527080265865745269817899857063743786147668885613960699676181136585365769521926085926138373473358854244494662202186125010310341073047798614374548086342820391973954666177725761426940771837726532392355185749100747206021404306863251733308888431625494715400420929697161892484574063669312237905363931719855214053087472473564089844785385118631304067793960861833212831918097938897739381456006825201445474998330276222567132994266146469112544285049973681918842902505234673132560553563681706241983387059515353050347794224555264613434866429980614011327706635034884343857243560559014362338261303035808045652353022843004012802177323958280931352089498432043757573506625426767106818710309694369537312407585984167920353989134156162084974492281358229815575668239435806484803993356229401204948102919954938648015528068370498615622686548832860486434733901054696260626699398425381614200811264089555752710766919189082765706784043124600011928963665390076883206285420272061217388105451134075385802027271706364622592614756910873639512797416321706779357751979151197538970960033648894190392503517283471879907394962781615292251018652565801658910536568047379214886267457566140146533301011661622388129701867205665769321354096748752257450199942759908695697538356766082386618225842910928539592822301431302776886373478267700938334284870236300836523267147252710071145126735178195575512566434198741583872087454233544725318915117902828723605546715149965998011432827898825755482789201625337068268670031011958274112045314944988247635346183921379322172622577901615667266920536264964174376396102872978076185495988688676457072696258150780180675184709464194454100963602166498297751805955827777700742896366957359081803308270218186251166250264629322463380530195049936412827585883378639393116626291596984960316517022448416302480092397575054389928588757088339073583934052869314198908525951213849744303586539877242912925440512397135320274087147285377696731063658237155550636280543424660415287280244103484180573167706046170675050489026924658761443697188330021792652145491150574140778453035170721570039955300845403881450981798665981220463096134721896613723885240535462868999529643252612709791581593202567752165122695264515449953189198696456900956693160722772224736414382019985875598730488902848879759771293901824893234476557033931853756499979407079556495169731114796838212405976642195711100164679888811788736969803560038166969424794754271653756038174867450548737423246587609823696728635004542585974469543453741633348042039819598137495850280241158598790563589237154257386153419368304485032702170025076018858454269992856974367097650594751665175135091164263733235232745147724024576145991793408318159940769986990356786907284419155332106339750873508125960113970286155276316175244712712148587485821455968114956263598625022967408369451641180012787444521030040011898051880456683135803130905894057292609191767486048188693759507445191624234837029554300395576253243410255708455182466841477276578458182041708356911257382346425762080947818091808368805234320945073218021568554695622787793663854016384634609747754085568220399904096146941676913800449041984126585792697316707819925649220900424534731756907456136878895976912351338653869852347388247187412332413310689247704194713443320642935720764897021613811592487064036595746800271757569224174740033629366097398768989005700628606004399592630267998675604739719357286583659293403040692528848321094182599376295111838312361167042079910385553296101332130796206773565685809245406788765473446477364760404759275890898063355469023325353356596068372344012918316684386113672129789249489777219204334059735824255875926796223496620956144643217565319694479299067981917511856005195727485194926485865825703159422301867368789720488327587639212051848880945584546777266609710027020911886807992239821817036089248275828361461093245118651555004632227650923398441044029473814563105088217855597294434301526997741351064717403199473235227658190364005773368762227079811121934048414357516665744109107730688403661974792824639016929361381246006624671163533685485404059300847285895088886669542483623211112782163776126100032884211227065417662763845568093226605972117983661721520494563598144167656712060462058935248175391817669813929473443611670164913128939294398145776602023951266261014299394719147142637055722855028786312489850078872533540828812089201473892474174094227301111234535604504680075387174207213366699829881858099618907480490743761163914883435524001223242260028742249393535010597753249164097749401841213624858594244335877531609581211407348553933895372922326017046966305749417915606959161579469836009231430794302404079660690735296717721965871166266858583574421783455923684917102957890881069474349376942604165886674394993863125140965020583873947904685606281737299275557966439198828120981810586647296324203136677986783813829159661215563173473941753532227480006917977955084258067254102016856891658984384755004118610094529211405807703283817647843954430719314887867865652515687821615965484415318828336413225876701273917021201716019742525486098156048699439507254725079761437728915267029822753605807025684000482101369057708246604823042017297110998795955561630195226597866396432589339436912620419150972292948874397942896809008420864688671328599402632232116834881606553711369066992510660124152716227416020264640431257456352196520409292257813909882181666235775159173989180515529436683668632035001258585066735267133610178176968242489999800936451344341403899783761354048380224767357589814702048464902473907306727910748190321809718453133037398330409719101775439485971598180437443943007951429012776752581220202157777718239276322232569910014051761053361668067046882620183602094584541245303575059908895314354312550700523740855848987136571106209546887152655775773771758876857539512935177571226178661189692756552603655848224087645962801665825450704766401478462825742344208302408560467753247201606839111794943209126188872706279238655866972877413161984430943548432232630054706709538010253066960530307935796647107507249666081560220286240076372641381448665048715866753469272080979072972882967482178814006369531164225500753174123487513113882307960365918509982578222296209662551666312659650949785637706461170423769169624903938382602903422072648354628399692667371417534090161915007943343543125886016871344051095311646664681315216406623638611872839543364290455065733407705644730060517387296940338951121684252437234618471227938090429543949200569931331343475146068327337584706086209350873455062446002675278602921682412780110731754029497657514731798381661470093553225200331395475288499074984745377958824942787741880596319248377997741341899863599508109561817902580257551608781393747012802450679823246984613650197237740298145261629330041123877069511874680585613189303426453559897607621330108793955103857991102318678654639138674389273927038557011935926825318352705317747873708777324465233475058608305878147190745464841830771776140649431842068195211170288866327058924900320648150675547406382961085057967039671816249029469796856731328096485795897934731777108229043446439527406345641312722595196158888059150975162496953222367121299605609075005578455766521604634455439965352555949835087340511955182310627456639700752111359258673166650814307035978880711242752742849641600244146131499703877503193604459854371926915690539524459681607925562948594461443886680831686642237817118277936628741188812079426982189649325867055535735877880991534790613523866848177999565473708226407025223495464950095728116096993848715963500925428158926674097302947712060340074712071537659207486271298327128480945270143942282920610498849995008587392798421234210834419747398355310801058324879489951560787061414117016006494146297016156415135698813037509436398105987300657912110855283743615204476613979353945453853951633019737484642962713640051258692870280672134931770133526674335123025833999774548272458692103516282208996233973625239117791771339598713025570690427626396601156997858324371988221171659832498113924596932813257011822621317002863260928472143439967547539359269251219729997122491448554129671338342718788164355587303558830331216136669897921873409597238581211677198704812246342059247947467824051198915565577163000191700681562486516023190001202775761569099916717960174949146897721512582707876809220491233001103038666736501820970209975637722291016048612794003223431241206129841415112960194909211186545404074009726126113293159367462252248425614500724371278368756860493998519865797735499755113022581763697802064060406034760020006028099126850282767306561045091464927337962074989101995619707745742391618174012427413807494914757333304577391920214441901082359015021759983784778310910934878622311522678588987591963834146691964223193441689141729915706942386466686193696574346770354115285827498730447127956495582284554378979585309188532842167834714768766424671562843946274202856780162892887386650392902209623918760929445296880068664492791821044572486990660023740476646767437969169962450550716492436609835439722962513148093908044122434675499303481283006964724780587858056474519025067851454574197739464831910698811853515387234814316976729779346975101053776651444356623407145048790863685867927612984380316599317723845052775402982655734725514871988600858241936149834031881283793463366645088469802360138106457336356817537264795257479207345705479425560833410528211708684046425750164462439737078341150294535418639663001190834664114411076809952865088909950531616681547182862988590149419514545560150344951515016888191297140938797845712314447958712774672795913661524009224737116217561220441579625404123573447272207208857655926522143270242891582393950543936296232792187138862000185816239226899581990766305747236762055468640571282567708424142308297550234866439720934556284321857367611011699106170328956686853317266581416534692359706946593987662601605205848661869884160029325561215756793532845368929043257955601099024627886424691615245951542025718183196546247484771363158788743491585593375624793335909417906088584659781514039088414035407361862849739826568666606807222525188402004036133886515287275393343638933599532727291618355360789041656203479166315583206196629123541761045635446035334846666155096608943752984111606700442685814718431454667590234219685407307049552245008891502683521644995432398090974765126477128102584841842416251755134338606431168505026741461210907703568595349177279622026171643771947950156562383432432637608344276713319581180486439335923695137618000052752036860648085764148534663672154764953058252509411739814329449015463435647801006521281490514497887989020795693373196559238759616500579058229905760587169018064818607323147911664076985113257481083551561695550365645303320171695695375807350105220154775970156966177676626986901241194709055520052336946974529280225657524004192354668305069908217051220808654026035002499245912573547150156735657560063237546416644873340655026345687129208723939110846562423888837531233903954468993837554049857918055483219903025766424183253271572650682830412053432612759431313766736674262416963077613565038561070536399888405256989341401201774641883593454135250046408246419195694477610953523697123813461869242570459164537242283744398901943503500258820957348827794219473491008217760453718431841745903239714270256528958881250227827831876280982798307898071279754437106150924443443959663797557193046355837424418631389271832086037635780333808793300248857864015964038362577366065497293286523027813914308717367319273271850735217859842391764752644474690450365757207684498148442778877986321794092253528159707054136423479656874164455292020304830354063597657114266260456627728307986508523645009503077347542930211391969252654238245985192394416465253901409366566808558354910474107185878127830882617440386375862606578311850933473170052412116758813157638417498712634005252221175454356679933490376132803357953869024085411593066779728221328065507332109987029960774236054427754760668385631156010755439756194111952097052873641667503776451026885168576798308061933184346614172078001955771906682485018250502727075065469036736431644021508707701333195220254629053049486493010540406254449317281282541152567675886938790936377591933096187323027329850056411948145642280765433326963288105795422944676691911924107057456589604216926505586751545509544405962177663485640595625777829884598158789380580577898937199118699989392415390274252329940207814056218945562200156780335997061083858246234348614350279418615839853965671325887839440111969870991159818098285272582740268739107763518189882991268087462233076973254779954760388430185861808600868597366286974669485190273299825701084403734724641934249032971558656334049762254999193384124826415847864354706981383419998756863591486441140821075635010007036382278008733533944454419221761890718239921463184322810721521731483216908541931232453078087975139033052877465228466147892695886652119876500009627265455203621726227844880648474245090623848094574552612788313588679617315902066954231813266464402002912881511284112130767096987817215143498919253257349100035365785991411135048172576385093872838914028879683333519605120592577539355787723412998520735564722098130152261637814983466878411243143312324438023653937774480096744426621064159616379937980182223205434080972312215490391195205982251504307116307424969349851655136212070555998779607088514371928943211608391770998004067336751410762974542862060392151833719818039542031793553539609982327685961006536477175833966487301998987566293680581176090643117891841084543778793171420202960882699684358294414879180426624831210084448601674714870736621495848563217882126770013859755561477191345435302898258290426834521014514156516349875038023759701308347758764423096164284727427184485835658004194380133800961774009880831262825372246872797633065863881748247921478706571801040961419691353545726076844353172842622832755785000837981810797001749938676119381028670136584489617913081766117115150334974759193505958116172647206442634251958540368546653903053705280260433932810895890321398392152420195963233087840999814821672837240269637473282062516243172796296732167741297043068428978451353136381564280885652972218926462946722606647714003583079802837964183022319013209205419525730182827164921141961602372358326155652734587672793632675726253324539730072638390107779939007866954254535673012713833007737761580534756286766723069797920667160485121533300351608469244893345789710093179717911681815284100866398725411095497156261963860662331409701009187143020632831345974337567001608732458112654493658132663443637866983609426367956481291136881246218969798380779446415981341022045012793668372309715913318322408329969324830754894601774856058684223610799780629735660936918480904537145720725321576285966427175421447968660851396132249153704551955763948731521569349759158722280468377795002890600470314313529064219099297262051206239255877847855890992976353563144682377514381921566523446318934409875300368624090521408473781878570365887812403880120646873201619118442219436223989699945669366153565684006408047006917648667976162144277940905539615756851901773952414248000101015252932898374323017251334570781744853973619875246455892626890488507154423452827388207235822605619162474915952705721318969585601485823322870085902344812952381031665041613154684729414174632759548472852931171345414629212331763235620726181091974930359475446566832841862192308475735389812978954525729145377347741897896610899508905867052692835596763527502236304563863233087211495047125216031837729813419600507751877176862326343163837258964054163039706348603680670172804059087890086602034528113841503616024586172714048514683753018202434556484645312129974869552649800392007687729741718233111098285060573671243558763541371108157676373922795533707474722066465047075512839071839533429045703646605988812637548403727156572109650430384390637122159354545494458150750292053107088848995786825606803309827550447532143703230041897391613836226251676666438639549003529840858701399466704686661967396648251135398399662446770978222656428505505134213837501644982320905964066992680149570222094502686137007769339884284975440832172560184975941571188628415448004313514338683229931036083439684700712351984324887709343525468545362358996420234534033929843210629998493223769766243572023342520919143793966943400299352900703930236354521098969151028894902598815151648370366444252354007014703324662153738854669667337395874131473120959909236821870971398120467237094967172441517585205782487159628194763910640176772669849934872841300998512071219037123069590197637770952404475455238047075205618564230142773513021458891608852340110263790804838789409788614311928150714731996441963910772831988873020053221540341039947929811049931620969124366687704615215911435818584188152364834795358316535192786602585058851874574213519066923732634654300707760684861254988034422540372653404012158189860153708225553489185795701027435699261429206293102487631814413386705545575755939777661275879474021879358189518127011084134263139784864535135148547756994130913372494290040094690341811871985640658773641821548952521344159050587783765918198245885967011765282870060123400611556082354451276516785482869596172231475347208677419159541884916822444695281234728125183058505128958906363019069062174908995506750715265632826330527890138499603221757178901272700084851781510451812912248032885883751009467859678886124413913750281081837204627281763995835302428878791924250081708677712237977351155044627063303116278905357515703412283513878126216143113580790148429159294334731932260566520068551922086233435408618261397722471086713262779308913640373683411239385795970987046804757853378078190633465118158864892970079537807637355555340599267053707280100657118260115564107811055695488318723725919804399266645376572931946012881237580981995490579030382207198973143126681450398139060182878133604083944633939654472348899250987768736820217808877327208461804936640374888142331766617862043512003182242065189605705418629673905772972225157208622513371896833407546691619354059413492499809508127513169422932655730406000768710711425797770960265564041998432714006182386972720619821453808641705332482240562759399353928736371036096866305743285204646696295157267096466296846115151112246678490272946126922458503862088545209013270831651328434346630671675774861490460013935200288335180769450557089591493330260973536097090794318984708943295266585875846455353383040203884101968349668725579306364424707416381767360040417609709572320292524373785601112166485418133443066748858815747786545395679228190975078614542756158033642660820522890511915139080401161470461817971858192971653466853808708926454655694461363533999507667608557496890640597246569975054902962966547021912694551134896606654677393408635629133622945029428388922295046113711163325943700385349941252018740241808199014403329735338662767125908472606006813321707792974192626036503569440347308587794562416850382090970191344807852653075125713321933035853064162643264392614907276643673479383510757185493703023634076851429944188144303841598590133673146230297182460278710119034267912089032877524375048317605901726677547698740892860685415317359209500317888847661760113726733201075302558295129579346310094780061318737703988758129610183838787511609236257565419798864171383990433410148154183196217085124862906807821902302436444646689434709527216459172183030984749938766439610130608923657287831301867195509373627591642810670384583348063774081877312680856014535220798725579647955436346318799203442117110819622473279604846930375644595274109344813585974071864180733385942788842160162322181161411190098972549097257809253339553237309263294448481431877104653492964206273896440402184850050878812914505357750376751433883054798688131328583649146513789651882473414008138372806471741043574725798314013899285743933973942538570339237646950621952617267238848649848123092714206434845820436096405348607837248494762751384553869539384208787915455692909269045231552174593394935898837403479611383768533198046744403098082995750614301647198251411283351496179922208302794161519242956354126781762588995997234110567139642862713756715428501712994241846236873835312852922467728738376558604144227875535651701066540801454641126537820639616293909936660877869387603109048947217598838978920118037905681053384958731889294198562909048030714237224416144544571794643808773186985837667534773815555884605849814030933709532657934898900762386328485509330443945846199192087873744341813164930574093742485599522763524456835447033028797032459042010831076759727293244868927929319483416076805098731974097579578013944748403432315613654522723405709811948155371543267394704987623703986527120432498034312582478321382159602670979194638382082361656979890019519236572412948646951905403837092400000178607598201089222872532954682341694568908054380672656023605872161863764693185938313905081860561367922767925816352768375171479950124486702629360004226400563495161748918221917970897870680484298109019474043050239807004048954459027518019227489275971415867032701575117110440811014529494746978608250375474925044330281540900781505953477587002491544128506806570265969078900170462154254751718151457533972926817683461070877011860712083838936593231304905923400438577159217596549393389136721785616261289987288817487074988073858041607625491213781475023756310861033156987824779917373188663185686521319475034771116442906451842910266571062718524737454188893970836611303622186554716649956389873204561632019748431923755443743996084723239379957984748505676957793662426171216624007867757368712609610399152652229232245622002081230527906453757831966899911883715852465128861413077509588514894403856142213884467165597561295336841104698559132466078043735074917810754477945748146862490679172205437509467785758010583665113584134635905010925050754164726517847706778747661856105480508288900739775397801235625203155562225621532536022219084775611834573952287062187945400172921511870555561687181535025135747869603421843566068920053089222994737169890485460329020224229232121617768847489911908239497031731076145700604432049428516146200125611720063522339724149978396146773548969506313251194268924070760825534220731574035265578023295464414663153688011256730975695890547714467580504589415566754058192381456769999372868905245087975651158861958504030437679521128165401690008099259772095422758911185438838907635736994609601686025371878881330931373172648765489826238381555545313491259193640771159253507063315979947050765780050430087561384636354295674517296389288487178352967620572275823387395660733530963910298816491565749469313554570970117732805136720488552351912847540370559277958058165310518554945060121798660455114895685645788900147743170366198879091595885076345029765221362825636389358167303539592107633058960273404685587783653461287038430325328270288971199534250126268290427694400057033565287182818693919659529572246635167008189835898375193065373726441900229425577829298120779433520061128474794647108919188777939645578583773579177295941103372449654016579776230421296060139428687959731168711072091012639836853387976341142342129934847830368877473727943011485005214264484742162550189871255186708720603514870370914036559632607711148467730154198746014483382882879544991377871612329863144632689249670180879328129105833987510050788793300167129934546543601091550724258765916923115776177367296052275418783998917178255600064506566320315198890305645621715946374022759712921307531187873093917908935374281773292448854323856807389978129943442965013028317242954618435861663753899491262197996213670874446482524088804203559337420770613130225680410638009194818899162388304633769215982574259324134159099394734581084683714730342985060566969034890850194331155291814758229087929107090586327759052232384012981809457874667558324193536052392675319213601689691974339174427095821973052181515491579554518770415553822171484119140460238578068812699440980668665195885966224868572730798558808491775993496571293280600796645525780151483267928094039755409063824469653549564408990983637102021067560179087804792476370395240045963923869180797268200861171583556950660112406451383288889751799323183279978007577904995047677701623628567733898574031245519499841222189248376588743879159835280498166143806380093234330438984356692289243231167294618818192940862318499039850633489471198566512646617396809169584665846380005383780781262855814956671878317853258045328679842544405817224700302047073477380259664798666824663491110265530903612761147445603684336836095810498164324097120939797921583417573480829317235902609417921964399227155014072820505983593917897945819619788676281486622392940021044886945732501081526848519936542469077274414369476642909580837860178346075256715387871690861645488575623035537350572036757013052008883575366414903078281207539323047991915685611442741038546720023495029099799725453637386070101899030375009481199268468159506392249433686483674145664566855968225904490346715096986626250424742467706107189094016157689134162675911090139100207299099633993729204887818375620909370653891442392969526305948730570508836418990346500519001697940904427475770355016745286117609026808435529445589998754589359533657642437586441489173664145523873491469356885974164675674001365866781934619439249502706434111926464639567758601504238355565410534222165443164405520655720197287052813945080770698528879587105796686271631694043843362049967321283987802946764725633798319099950977549338588842091383517376315523782182645602121127388105069520479100880059994121350338118652700292266040658232135975831261581045480542875191345554977886133687275963116609503777304715434829003380906783433021815988574550207966471863446240096865309486578869611314974931208566334414017954168169036965872353687263512944369593670088515536908043282424171946028259388424675661842020649170854798216347537172386443400982860654905529152487643706178280944550840445489978456717483417617771035414114906507949389593540996895775441575590629697470619413282988923483483132198077210243102161699900606211753892901544298661210324577895198017552201794141360256042911314741946671552329350619595791641190424888768387316552215413271567964154244096579703688406164715297424381627188003608294095771054928151099499880592803839819531359242303730803206611868790007803425083628963704385078504709515111137799425091874266937668142486549921269111369253782822063603067241889936413431465411458423459263081188488476549091463644164718120244489231436599112815312789566366252393014584943843615845307462361275993091522067516435513691877549301944866107305987740678279282438965215751699536766505374040618778309993089620418044358049305392091999866073536421362130211781425242597272505236085053816604353311724737411575404407006767278305458112593709615572246589967512208236422647093114014221310968510783927982260734298510114416695858198027301707976754067452518831281360953353113198613798858899857210965637898231276166550622170470443558398590034189812926074417475867984336969961277421422913017464336883228886870791937711673664326161454616236479984975256136106542368812751484843932230792899559990073346280469519580554281684970217243630137459171961985109665899437646629082470446826341116782083166331955343262013222552077915031178163901026558581560875664325730073550270815394151929948114934589339150021939018335255823205419126638198271229503309593208522125041204304264159175644217922309007471214796680093120457585579383191569714126595405358301528500866827433150565624514565037546941034238976396355549839698019342912660623187099041110258289476944673460530570797655328507501476555967794621005960225986583049908186933156284213505312230700596822412501216543576343394755641446229509444650588431194948664290126491101207527757427502745985842483540119726080029504056907549014524257516749169033851259426124876662439663968770181857767076965142538859059894655552915492969968591290885360248363774658023334517924629686856120351560570673109450001040897112425058771173322116902473964003628480329991713811298087338275890353506436580052206335134619630903767606958852477919390872616100364098125596418893998717491009246680761807570887899959520198962158760514430305453239537117104633102406747410935443526280085865295696389718311318725368033881511442427876894538062780602770420482182915895939348271640611572495113204654106712249371682309988512354165221901153225698680138104356606705762387043057995192624509934994316389621614714218148759843163061467142175804933400248812439650986466703869955156017842835756434287597989348526079533149850721616759133054270868812676262328070385401428708302900694858492342390097836376230873454272747911107196430740342523572564934628650845848779145146717663825129967667717707102476901380161932915447493363662158725520175560348679218879356241650801842490349154906116813660054974823587696819057892804818417779229262321508315062095679868372682529659785307496921546437094257903067207581357585722281390435413263676951818150446880791402979673334322796470034230523373423751909469808333492628441161974338942599127903299413942187635790655362011760624844195906900633722305768003576300737207135626236693539520516561283985632053736562306440416983477356010456205239022778369514137254568676975117088472180062814816931661251926847220491446302968913890473142550994560343831062767411486145284864764366481864089800778805743795828083809758879973611365453216477626504913919538084656837021632544630691697653833087823982537230066372391157009062923748366897380585687793685224122329630981402175340169627839902891627116301288256144032459143591322932299827240971523103147471762557751673895891269253389491756765319164912003133750752956126428207716833797078970836199747706901915400872637310625780335765820272365433501019630086454833435930922778908525181575887801557945576153779439356425502993777087947435094595128306896738897212232857001539385664386681266171626821397503827899053199868386360496552025737426145059041594251857863744105181793575934616157573768576954784373604368337174216190900501698713243536118779569198266068209410247653316540169106599736632349583629597518462785461485940654209700574023395567075047496401383671134829478412240766637588058996711223472772600543312013775634642722310499834845568342937965252857808465049833145941946767313097183932214971127260040557063068569630715328352768068396554902569631668487611979671216795168123649550428733958431847109621341181874008336528789671376931107942844883864895984366758600788585671375679357999567721928919973257161235604925750514680324299940853761642275977353582684152329033453839805251463042815654156424106167843600695080069575605037009076415678341353628466820141823479697794173780650619973040501030800730770387451773758586608088116544896622290690740393502586603229368835836157605756233808356943814348126507546121722649563849708488771982810140245476010626458139269867416056994558282566297682568548814999006593260117509780796994505478384074182877786007652326844368891108754563122781166382613733324816901692517307712361456886597960470176842428184170748778461961760038494249018442789165511484855655835751217225456148570360019192910686044053426680709219049335021515602662533215514380115519228954979891847274098365743123471786536662330820876692935469423341301392906271610251935076422166402576070786290244680377292507615222718443172865120646180635873938079026065727448063503608781393836199966854743557152789963234969894803158995536539365533575118421284659485584530439653742702210892915938298460417534498618666499754182179862481748246157950622911154091059174728948237307541151109855074319603991799324587602632179799536358282067066839690087387301996569100372248518299349911643035628300987209795425366019913743106632313944651456875569844202404460237242101103515337864350586162225668742209699584526594727593493870594976765240583233119156410497986821194780856808717502328002646971006481811361149921723067215931594685724912671038191950085861967395336676290784946365151365522247068369144933610932251971018898677925735852484942629126596362518023102814278961835553660930945551941233646968339691198151503895540255901991292666512321637252158016150812370600667712555136322343499378954040188113259754651827284376228125594001658794816781849881919834405477670826320504307152483286199951125363437250071337710999082468553464252104691441469567918671580418485430869489000536105069604951687361402831670661730054657878208819349334576506042395071794430324791088035294336488264504236645169390613061766894682886061510931516518045288390073611233690801211689730724888149524311861712097541247275949311251010284311480472861507819627797171413269697350799194473201685348299850625259078131012363444270907925398757724454474193778585208068373775889802393683772158859149701006723226945939370793420014136334857924206049159278711140304527861049885376171371708810564874327529475075429766622426256451126648021246195283559523465282366659037712048728985002174239445361343851486886706430900326892689538960780450537522585036134338374621306357727940637324272312874572812034137214483826613711583151183206766223491210485375779740124019566375971942242021969581899313281319407070334904633392721544663068900839330745416893543105415830743480317175146098605417719640298855939248579865954400712541799786602382960547607944491863062514327497394100715423596935047121477994647635039324227392243547328055510009652158873190957753156177663943474458313204781027830191889641649018990792126504714620752649496695724517727530854962471169487874584019766991437273878322239788813352736771176894903644450572380561780117886988907477198591871268290145397392811493940037664054949808633637486453760551628305997703631186640027522514546727238844707497241089730189678747332389310429193732119578020392509621597913405061672990218780937869032882815672648153958535189630287900986362757758816887964180229821843176238857656513285463366562734740015753827333269384414427963966913774162259526797210139519572364211681530278455133187033331406987771336868223721358231404468672590255551202631019425355455693476771937045787154981210398733019877989149106951449784662129744216991457310567141971110185173143846338311513557606935562137965419132208133348709798757554947537383942712258433270289501227689197492432540803320254999718204135758822254404943400572510925131986757649953535223517302181134098187082373818177383553251885383365789045036265862288849753156694837362491792403502341305764084913963806548371863786796874006649543900157305223140749028833295808629761639270667390240162247203991469970828931630659557325467761722367820779362127922443875703513270408709358151071847722462871855030003222895029533554137055100956992957368676175491849590381057639706948968820331381743159016834663213178568258152687242146618646177356834605982547351583032219801656374732543528959461988158773455142544169934779276341485574744004975832214149722468131700040783062021529084054020772084844265254021000533286389727949668946860341530509594747021580981676023114894643722981324499349053604908269844357639372944436043936681394860174340120247472283507513973770467960213191914390392196889088420831329364428993920675216333415160877577343923429865157986205164421315139705394296417861485287109302323695883572193815838214219739463047660113476252795624240831819091384488197355866470099865718317274096811552952213494477271060406664318887145297807931446048466583820248358261223527070917278993232615750033012936000048740826261005822826626903546642929955696093060108426153076423090956278824448655885600295831041115211604048611647942895816988809291296201384302580263251836467032986688973923374315935310821882010404261184695693104683712854207763038292196481234787900953556309002900926517901345411323946024881911181696859574721165152143020488463657383180817279071550975800188491875905986622419069703408134990646235151635423785098392733345248627463380416452058564827035006941367654163801005559247445851989035019469008425508088117121149387667906515018591360095934571730357739908356836231741380763731002089139689412989465036212725649409375282110968920654485101122090726472281576609017556743263200036494751263493281232312419331701391640218211955671200424131610516344247808452942492973858113011972425664056658586443527267017465993601388654283498225123610049445768926075949156113657839050579011802026666357719326888901168420072293171771035092656830290828633141804195957219287784772904647546919992787461561392689839749881794099492031547728543738417506010572141960937473774726325300488363504979288592944945862860828214581715706378530868416296182378004059604381855437815796027429525228430946360859990039069258038047826347519058031334772265227865240220614085968339446911298868665748241412129527868301295832031171066103561707745943982561161438072536868697300856860926177053709487314148292304733055348312780376927356140976198587845426734466857797096047513319959971539324892235017174152273348907517872936484329780289589412586352981676229261315882139814014541565595220111861343208571219647920342635069705610956366942770797366838468567293436090231673055070045501351548210523299128150056236070259162619261995692701904919465380233032220431039473178661421778475410912889347380819196195712580625824632523132171939710691705667666257264642233878174647695521574604038240730597832237854140908206345700413314810417128969696189069805368969522804038947780432576977374046128638628692445547143409974898468192842439114618245511436590005774823644740987325989688949652912887230464106442197181753152684938152018842718366453825393539320650015194753422486563250016926057552898845900290768602431234347978607001972766103837182207359082184715200912795365208486688220354350374065608137666136220424408501050726579238201585253335124213950419419482136184708057479730410339605072294674173054767390787595630645038672909863548249336704408106733440842480477024338956209506607759575862544031291566352727875157255721272609031325664627163444950632061902477814221903033006972037229040584519223516939979997569916375272339042591097298001791937164755129870946566170260745446585990472214436995075303306672214916056205260011122097064110200792119538998434115906258039562964729840138142980416657728310704870005553109168391560160269039618797153676588190378992385039578996878509692831949083511565072674352688029485127010953629085901394273777940994152700432407042449192004066676303678445304355190820147676630169037614695715412642218154303612018157975750685368169433438414493183987823599690033131173885098789298076097626320489194076932805510121623935956269768601060970639949985965542903491280081317970573415076338264937448614572297303083279631849880325242256266277597334834456392595867575389634954955000550225253938272933365677005837874731486657415447278097034453057764824986872153659324032966748248384616357966856963508079225580239620727043035158540396963681041203112760521669304543640906245627195141681899736110683944136125011926183466927867410072114761076306397758465793800829145701986486523578443620131478268969456274997780377440662944026224688170696005031002290185691923598516636308615301399672591432139479785125186753302258990128084023402246188834705339521670803562282354923910831731391266457917317108722448131015785972834732547061337228167466588510203028525944679015142211008446155773551806118877329929764703325483659127037418810755636569558158719728391002749785115702825102489896479167821321054930562306294230535200092685502806857119906751392539025898103793034097157140091172740253000965789334898427046947277730021008631546730322418044804437052851149725170987083076552549509805449299769107152744144436701803639795053931751853007387981426185239023527547643135350020589839713314272882806241238803266697102882507324462534427316244817643866578536780183327135647900075947837095276241778018446009257657286570601416303400624219653091924303815903205408533400545980769227168579004676345565430011763323807395764104749283230350274687999132991600428611564828627236046517215191961260504968732161662802494762669479165089792521348804394168008250693048726294307160722548292253179646300051028720413544173468267018165329703429145653631997475062311110220280196785322166716455532132730437797850524046105578685257290428868368595123188215828494477310258875247244597515047054529886881300797793140389389595242523423488037013207275586794094770366706874333801523699183980200621307292110036639095680515750314696473355511959866099330577068289286016767230941442295859824301796281778479640761824704728514989608244900465004432632539031321057401332603242155307066436728938168711094637021565023730935629469737710992800982130512509667568282032695879336446120635644138571565984051537820935656853080223758704387569071470959249269045166312281383170236326923714634611303307139107480764300579278233091866139244833846138760027991777766702775358395011325788501993439296268517535642680962711594013476136629238200421923068060461775059622055165157926320107813793077430392733450147888183614445738147547055980996966371713762993834948295865982697758498569901505397793450109136031844541826011780835602160357723500427798464978621818841431876666275216171272863558915618651829951577100298888906700555909874358575413161232023230162080242700934766440445322758265834763011147378522288529665490614032394400611073487762812859697909218086382065941679653071933521084932185710197763746267769520244644773575447858030535710510230208087686775035263592121152946034224531287022848440899339615899733469305951551931422681377010320969949047782500636148425537744440788118363342510024612281631068177272560000219561591653672756313592777252986190346761300275769568893252158371522109619549871354867955983504595780931002551719335841993978904249032544852101844974136033464357810550305211110865107324736504491807591195572628808415437795663455279916308562353874046122317723201824790665704373544213895397697629533339777141289618113056338836542563810430524251930558056115522537212595048435334433550967102736258995594781779985667743918050989834414428192280297176095238158400667483144186506716740373655414816423576762625876682581139483554970748425753604905681891802246201294645910690924534779564833026212203104607357177545696215553989583463135880754265491042430412785196397270631462454670960789804083114538271897571497183159885511415985723957461695139950624662010614079906081647981077596988253791483418818072714443891065202045957854172705341415373203323531196848570749079542126576773894926554098549101122093640233194198794531682193981161026363942532575271424811835228049785394019542996753043804242690805140208461162749710969052352749501052375441751505389767801593594016430846926646189964079151325205247665926136687918871302691227661363184224836185118379022576600856759280894885253349365058558295201483569986770069073762854553196007816742643333619154526720053163742692153735367892236863298711997623454916680506854039968492114118433233155322827461505829475927544727554359988561022767733613565738981977649818334637499976057749681056851291531388625225350617042539433079844155412504237844976698098497400238081623197733626839916483436079914202009682049134644723119781767799819600414954021835204352920833601738359210229817408196136917981319124985909687275404656467859563163357237773318248122319918421139840155559779778644380406809298440712197329169397350276405391069510666853194686117737308518422722067370092363830559147345088644181842796982089929404149041703650027311076084023209221750308268599921745666482848839580023602650687747480166737271838217720049422229130660212262225992330487584206985457264100773931598869461975273069202086546901036086543773342819833097359821506757659954884916291906195487516023667393517118932077344112436989254775912645394591904379121833648869291174620143379083530016541576168768624991612550813498733092167574951868875416491066990926498782610967908418804457412734421786611103676476426046624472558777185394305902259624888741382269641283236763623553327082714935080857954027857570879825987933055528660705727212299525592333259942911978169341187925681790620617468041885114771226200031123721911691419626865586620894618688554322897095427077804257094379682285349953110482073586187257032801994982612935780573202480479376509436671492800546446990572795737078753424340648481430969679323753883876109038304163380904839212105010305220583833412760891359113522972881142277177778923039517757632594124746304674703273651758484223091413485588602273714827668146590768998015787754472715770791373128084770504007147531748205373526377249123628209637870207140869176863344196136590541135581171234358755911393735765345264480772983771068851793308333965794977180910399885071520910984432954699697781678820266392614859742147734814277666813191166028523077351426396461544857180590977245324279673075001949796276279854431487382826106612312209924355941927961196076103907997106493402906845811619050684843995550475040335137650453003152500095061389139559404550684062947516338778298088737771413098754782944936177276793138422144001502952344059393561945237905961655973012543233246283409754661515689005046857654539700379596081214642629745162285736093381454351246777788718455312176198805662588404005406196078633871432945595496844192728861253254029074457597217257606451740100278966485232091245089999276745645344390224059815355287493856910099938941334236321898938645997889994569807484045112944102181363093699503340562607897982504755502340289313123256778992478170473661910599796246236228040098072527855215001505190908419241396724801270127332440200434038652641017230124304823266713826101320481670187254782922980831743742493701734028930643364061833420385248186397302102337425671650441237076653690626089556177456842409618934194988937538537811245976303834266897522611358433012955416902344472107589355002090016470915119789562221044486193786869023622969840492574650758422109156203550451509146792545169642638835815593203389372597905238636952423264033074732854879982685250003183183675900575926071034877051769996144425442794344134891462139145505759274869881581958043413780915848812547959409948426041823075886179632545356479371213430517272213748571090287669693057216584655456535357379246257046880408698030067394133098002096106875166778982358594491331395173842107033790929654506826498841730101329207707182907355711095682457635910042544454232198034749097112310584921138418472928768312874107637564647557437600347536265380441366673771457817065015636179699474343094675365724577954835236697578936032751553615872662058918434784324317200805572238079129721957585998675319235792276095111985790901174270122448027544928672247067964599902877663228616781666846037435731339408930013237773387391182770249327567736607383730030108103953362205558444314576495886458382591071044288152819705743799177443748175785814355428415840537072586350635753372803854502400305639922287702855554958718612933055228633937103042359149188916297200835629345896044347780714860653942425606119106836040111093149872269983878063077517067783398936574275150475429505440653764284333655794022703109441727883968250311931434034424131897864665225258507861692882234827538198930009993605758554806851211468760889353274436486388799508446242221488634048849920476138764937663397728330804019079623010364985808258663429681767847274699820005497734612816525344705295932103738213258737351207479047645109630962258530101555154346340881145769179240000512568734085256341541050592456732768080559786605038548274486097699223559372993802704813169543299505900206913230447617312968580527873776297562039100692404040103988604288307038226714421131509399109571963657607972213396428426176846374285819649732909572122368886993613804973947394622910985287384897041054598580620217220656180388347079985661583963198631260143533738283167550703749618783599002064275892840233355112945539416537058955672024400475522584047150042942427507457782766921508969949581376987178095377903481048214228000317329998584300417207217382112523712591427268355074957756461291768757096750146854053576857918115832396920744997316220858213387929509525501491486534512544619265619450489603620105050178300420975240962053180248236907656486591495055064876378711983247425231083000308691406674752804291061532530004923449574195920531579716275572033558618405917780484064329279966027623539635836485893575950873229423695571672279891893216340924768270045584921201694467648856042610467063917140970460073277206661447519114727311313259699412815841953675607518759029984643952527860174588116903794027755639417287549889805187009312645841379106783789935908740745181348168661757384830769901476692143167262793305295938240558757829597340167792326132406452518741677957635561839440843971033362179038414921710394248014902608398877844755596392252531557693810291312947865878398193327645800843379613900700790255717258807921741246620771048752635436858152116962107188870029044175832784433377403273093332319638143038919543666439813201492360006949163071029641071319432610844028465812454836052502402178654299688041379764902001944603410178880046598620888905995196961483929536185229526938942875520113754515140459873214684290018064850718288300477854482712260279011639827585615694844829955021121429544688805907448883309255419268571038364070187933902190888791121632047333388428277540082262520717210036830996647483431235006829050508220392878051242521643512688181284955521852004283156030294083796592695261964337195176824192558029748881257177330233100881886289752220457655377737579749063828939649037341867032434398292096519991779455479888036984443631362395097201430538741399522260781674850151286971469959504144107252774236291016280752563757694003742293276800309966364751579487662298094866144138166468267986972495183644935660117054130120084603025980825806886412859566919735525115578729084259224962898681105388895292296611981398664834972914108580017561582156625468747355980825813952560351820524332212909668013860811470131600282523087800993876821070019842436785535557976896246283913093977565433078544952361292673749797145138176993747963054771369788574921235501717614602907961234741559151940525706156937945846792046691740090090558828510708758567152466362236157099938137092157927590949729180280119580613737804499820717190971470472946095103118610962722187238221564848063367260426695769410455795209772232946631559387749156325448410593523440667333673065828560689145565341517607292383468635650014107193573858750447302414841922532202794422752907578291479001693301797535088044167198595626468310154705957761270570289923696626727338213109619190602393494500239030081042002306898010491866086613231041151227161286936242824909454432300171711942825536019146477124498392993432261174373849229955364305855770025258309402144220831489961549519569672413717537412409257605243990959889961453067522236259296007997418389703669262652943526479012486692408624810296809393383734329805404610454206171636637671620632984800519079990901666098397374567384622366108593988421491752851817421924977758986830644247985109170382776558694588518378952848465668866570231199064533489539133519946248556450120461160679726692146955022041950519805869689610897610045181209606146838078257809535317201545263207594439315562793037006369321079337363964092048722182268871500341274427611981546341431715536692414954547265827337965823162351336018804023430007561005029241177116807921540479991443700785053949138178999888812461140144077928366040883691361408577753764932094006150092668501824760869456529030353471503912883607353892264379158290027241730108270313765227846816751415653999353278191629398205032217169092417981636382105211145118103097772401720021411325029611670995377717216110111456685741448354446209214037201298864191994095001159747101234744478428276279720731007589601894600059247468134880356327839250490126625814959878563854252188129970724892427947204473687887892321743716654235790976693180542605794247997630946866413346177039288022821986024505160472326700810130151138841741285930304062250987344282207842039902986478316928057691931715759049818711165362260308751591235237003875597045560780647611787260289930419513417166474762222562354594722709228493558825060316566586379877441455155495927880080582289656913837783441617414492257799703877717285985791107093237667654873432907522377834736180614942223041798784115776063576863437282551636837002055929232438895924812361147170482121703008856208195692525991425387453344151148856115716784469581621486959981549241141137904297424977084057077709734169333481624045550019988175782269746407055430651831249194636629949824428422442784144468912612904752365691517766793439007193501780523775086596060693910247927302406115113859592888976097732769061610767811540205104417036942465192055896562025926385719281808361588393962235644608402317616921830300709614880590107993337938928308364000166637915816521900380658702259796274462312401305100747455595809171091965241424778356099062916090080616913587615488620061637864003591141633997914041435280648839806441632238713608525943541085208842648140469165278962967624398095910556824383674922203820888706179554270783262124278960379106186352240763956881580323604981433242664810081550498738548127049650064942198675811487721203843698214929295169255175334955650891493416392193913441060869357638555746356126082019072311751027847008860088490404025181578302573543153741552187364396273183743838765000436856277114489809315926607554736317165130306024323739162306350563551609340055554929965770272325305772180770904027477418003845400913487308446568440893897224074605939567596239335326935885153941872330847498596301344031029893196706318937023225111935367118176650046633071730155801939915404831770954647122415039691852135150077154358998094898508301126221543192842895755053733618140821448722393931791746049481188411435636803371513846579950725980372828409624799459055722390002139233596828176300352402159392100148886653679907744077447750836613387230254491850791414472874801307794154577071395203898787282495849928400439652482449811894235196753472648011234677108909967760650130612474127365074818365263256532674511669292879924613959594058297532260293482564731452388838522882453407363916900733819026407502676689788841345130646840648211151259293875530085902374789352622689797320019980958679944389496066948213203985418810822192398939938992380485125338484175360186439099560133725572919228316339219234726816268862392441731329133281361972331818872583610729664671317385936964220937905194734248814151505832969329452836249677071755134798722621925524735620798076606687895977751106855900275764025827347098407152830696277088663016876218017447391133095325503997497585695732942489520833327173274688938168433792390562334705488555894036600104710559691473419600173645170923096101106339350235725819049882318269506691780135181698338133395060558984230114013362828286810059896960198464243923199857879753039474174376273388280284976126396789357007779925155065769260027886688158029130525376196210310995565197011363100011521095666076636432978680103538352253710603075846298349725734852685210304222713713371815545918459357485330796420893510641617728230410693618754327063632332133262452901001396449162924883616928395410390767023797874316911520569758051120266897410922059954848664577919675507995623936147189300269147847409520863878999317048868078852390094741096291113711905495371718979462530176790043677344616519209296517402606764599375574323927129083282450022158840034143518369646213530695391389483980586539721022420141761045599034632655534050217693758590512011911046554733891068554962959686253581877856880653008320683308054240487812236699130161897981821207707650527790429002533254918624048427629214587055993905821441130521946943296251436464651702199023501778723432918159496973628153365549632760777288976560015097448615983329881876327369806779595577656214341427449358962799200518233736833662748637329479927503332381305416045889080150329649223323171064535798523375962818451022315887518043289620101088710117551928710650577705676869989253625236375433058797277751592265074575141521281885301967029143381287904774700594372640354032425227140362086570402070729684649650115175402298003255582328598815828374487179576570984800459224569813056247712396414606055754549846643445276292666767702364633710565199343123461435753183301697957934726521780379811804291595087540660807384974493274360448350989346291618168312448585390925742281055954567275190411632816037265222666960007969518333549453074120311016862083076027911809281779325379400817440860462196944674237530099946476132945660516403542508233441680353283781980648031008058768550354178216197708666389209485667032553699832425584066112351958997639152108920731253626259700455832919541241289801923156826728127358436754539464305137851018767223200005954659262249965915807896195103817779787737951140988348674608426360750772392740586310304053411637559788346464560770317553846552303332945146166102524689630245483783384395277871885755078858619103331335498128570884092776039924988124814881203200705268228795880721300850882228530358301349670951154211476624348214446062967733145866199480714186327089624667663165351403699044901477093671308842033474857076851053627268095691552625449468454300924146153706962725882953776286990265545222283865653417576919725624413417966730541453097395863317037665525557148373326040464409676801802454068447547645854004800522159955814479178038651564944685486462216436428679859164767581704062327895160330481659307352841799663123968804400347071641770507861718874032981674767858877880326524667257172884464521408865608438664364703631502520670424602112016098142890345925248386076996536501729558342598729933513929739869886853647161172102816416279150410770473799513867749109833133095101716777208342547952319052582892481787825804375565583316071592369629760765730985565905063180204296381626523309833129972021153099580333522193989088958047795200368234638320733479462099967851201867135974047669673781754543898732766798570352426613280238437369492187375229120088089320431223730968919999988420601619063264073827793524064712273611481490503641034028572779964262895403320817577972381768701068864159806690635422405250572729331582419840380750313535924106113438033303614549940357151355345662298421118024477476999203042462077012765457260587650783621017580021135523302156561117049241933303554547005530183527003048733171676009898034037563008622291218447814401807731359133854763732931347238375583378698109979638033416736820154618232040460776923409513945478384571628725052501388153101588336987454811092104880376708856119596374814829605078900014601954280765239929206408986068286456721460802858249887560470926887082944894523345368756253143658611384867922280804437022235112538475533888916799126908065727180646391047454125797838910743597575509721925059058416455182829906245308296949808569830119231873071065079430672801610758869486345086666349034301164256918408137906419126272219185254773668348941219541868504733209958368500969044380553794561257246689563252103790198838951401258122955420514178801994691743114663576084593447126697545300118557281756578278565810981823252299600433701066659064100432591669662114439984068136139093726236193837682085187368351353670404058476460236695497155877234561157517294442003103427575564091105598608163883925228686791211928607302719016121405246307298320818771244059740928640325247887956581055570550589995910558557445939571917319876107973928166317139277369807964668015377489620987415963509637142359817337376622124221659797270743649104623811342602477722637138467594200388688422763636579831177274417772673201068133995828565443458216320329791102863494629370912668991490198273027596367411751942385330907224044764661205081705925062616757106024423526436995768038134478490250498234066858341858567481661967574822125123170868980517835595571879235432023710017045528039385469996658770958914371200755903457141111469273213920608327053665299239216998881803366197472595134789980998785003860206428057328773212137805843952076384183279673234688001415139741555673697941346241423327852221895469177691208796174132194080895428205994652964164849607821851584900067583110606033449639551955707837734963189019118203311666055180227437769885833882008743573711863259436846592153894528704990721395410115374219444075343662005998870684352626539844681406449288201561157402638518245376876413404346168635564289488057053128603433719639444237223277340441891979437142942841956363132535546193359263257167851660518487971081827616695486509549752214305252575391229568743603565957176495779296327034925207966809168093418367098171610060089050944706674944060339808208408389548510379269767338009080623817456972866261191120990399386787405817131870328742882518783243204802356573981759674038187042391816553415652582393832023006218393737686881559650737588714021215943113370635122006730399253977771695371890013540849004132546182116974036514989063178865500997720450511936119377883224683541183988997508903745700189813242972734785006818729823291844967054788098831576783327070984566631972869227103118738694679567776102614861936313194642902729013277973131460237096543325157444289843130491578269751735077026663729430361220121661625848312253497428873394025785289387910341796929376078287058072614759074976251776295769855526482677746530986603563456635036664262164141508642877029750836518807522067895723433053370770258458013561479192851967538416154629212801261349782450898589496347945528063323594700441575932626577218665335611988562291714363012472890227132862562185032640606699209645688825671863798983404168223437841207732548037928662795262107498518409183615593329498769085241719277714777246540950127552724645543390307916370789305354446883883447208601132428241234829597290556201873497738074507930137178102537323784496461126352773460919751518692724327439098034441218779403585095719791500123495159361484969657589953822167820842953587765262059824419140638422144690764305831197117872097882748792891693531691311234537735575013498838699504267681482222929829019867070875668862802061206267931639595752437644800237221167369299639700144748467028560942803466828365174400189780230461151016629342870269029903673029708375251513071095135223931002223977581363836287810252214026608808716639168264745424000271023687036457474482990081888374078798621065949871068658014216354548754345781622969741776638627441602162409424935903344623628634610991912011275272064242281452550504151653617994327274312417364960646939556560106777714455312620632748475339803079285169436167785991912745348242041041602234437894761346078860251806260335988269312312978949906354840957621245744404719053835733530548551683972039358747029074579753449757567409886981082788605459670888375621345583497588028590173593982116116897486417354352522423041967901409020669988762321701583238221359670276290465873635378892706290059865353944457898651019296318337027245452166058879464319346015486613384071563761801433084837386362882195728296673203316245604550261610876525758096470169737833838539910190452740731514163922410581081427468902389795616202159887094627330138381029546939088709198849352129475193794823509968075361606076740562232837303180742044547663272896412930634433290029360506690940002140895204143911138441440841201302121645460392019912313508591895583529524087812920690027053357299006463866186176118415221151621108987582718769196134415851597961785009493341811403725859522363964796321201267058818851264967886702520342648930400015228091718105340147541713449842788469829385673414296138035058980004776951816246602941226997783503598465943830673991382294178290326598894700977388049996831318531992135171485982325404978820751867858214899682037372932956529719228707605905693155404786543186494897295711253942439269604829582340350798624929823114568114556829968786611417194570527766938005270950260794385518522384144130794291518023028653465646112297784103424105149080868643087171308504648537023183901871562342958691554621478198429724559622961801299689808155024269384071162053401285365190737094671179813531802683232694121224269686524805185863914655892283226121573814833584284226987911799777425786145412871597102715141930287182954729141877852546675843189034726665775836778409515843493823273670275201580364300083965619372634901838762120661229404315564703091959908131026966098152970096780403596859216673719080279406961953409591370759463407766982296231592299905139995121512579963297463804105812203490320463457631770292234594899926696271883436859827730570114882756132484031584630893817885805325019274888024401875162790793834299390265538928268815560461386325829911382084550524593108437799179400094403894866805755241299640431268067649702920573257103796981617874020373414494703720693282500393363495807717500275504732874964720136933119173761818724795960870212381973821940191722662818754191685439091225798817466313921098284625102605302677980352473776055264271089725969762821288067908741848511546873590302598830093353653951821741990966215892313835268543034842099010595378470734757811087293722729550030201367936764147299084171560265371205313671504858922498978825349129558126354084895666930929775645819592413401604833127586407738457803156220260247542350191831440293684207251092466510828887417538315704171460403810339687820066642499748433964589330968434493782393073581656610607621957437353135170058803539100191674282609999389263164069013835471877284286471534636270078442537960350630831322524927440842629189420137262965964298002565699991335044457488343586166916460449432699067377665969992708267745186838985310573157768663118591669581596253139202441967462897777043734150444774244424233339748428618569304905160862543205936578417368538250315360829288405627064717816952512614119034309890103754907550765553490013743121432535768537679657214866138578305537253272019645592715341500331414247093326561118645862194631609533232470769714548950548541434831195561896853328640343769372938385065199677767740705797362070952755389288693917791634301890846051880792593028645528781992340424658729427176880241738893616672163230532083753493360831961842102929498618959326497582932928799522596301083158783552814012827443588243237266194672244086925957032822098206345562505420170316360756396488684832804280891412973621944000131156027158656002132244291694163243371199187525745892385055046296323637526700913434333435910086835031818269525234064364243699795992203159130418129508242086210651477270892606271908994973141138973739785838779837855637289951954114102017169913380585021672078769183131633969593459522991467829080012038314839664852834055089012788282819240457418947381330787177457309277658592238842471788270196249583016187922900470136687144565386705968814124840558074653993729288531655061338684885959505734523061093047023787498657914335360187006891372600420160119592870596420849656030267042270661881668794290608343343816167432771735973471419373927762620991301987302731016133079836472738670606849136555613354393485968150746537684692605931270439700374574362372407830445178648562559841522790151831858403348416615771240734247839936365877755166035786573445114268155096841593285741077026960443388266417951090783958236613229021516157125549406623766466046767834510649191599316322810172443710551624201780090575556685949500888139408903692424480910295271226634226433227826011790755059276904177136738544454410488483490911385453509340420615817691188793169034374161477839807029257835146890754554380547950471358575066491415798594903908443020714599322782453347140281715409992585142016865662521680933973092424296073658421860856968413899441785491708677430764767659280283784434012754781751755490478883741606483297733153625585497422410893852446196502637103628216088721076384104354923724435084988328487368014929789654663125808096634035445468070015188103024784323429145174150305496168754578005115139807753464563951426949878792414124887718029064826954647480881675379687891097061454285114558512468476639372426174044772052987954987273927837122930121161826975301310300743735208806691590973728258435753792291743454318265636755446171876403050819495514421573500043606847042628667879309987114627034405131222301201885316312231704555591556377730356076777391993551468080213826693062219050954133585321518972579254709670809622239079108951681016038994382552518258538620996286357943628763703004565965583649916372933746620904595378521216419338805752400135315765816881296836254586453012787764724880188619146104112828896588233722016332474157988403159107547392980650596958882729441969102445682548731934796813388542708611046919409526708036860987635811999462921114734326101601247493109857633744112014746912045556303694148011021165428033106986483656791770784335528298397948559836029148416876378735641571508814846807162842786986513239075664417551660400486906181102408415160280881073135127723846299301619698632779904083521973047703969774967850497141638578918774996191084130275629361600778405736139341088017020084188704438542994588947021150736873665861098537197100619554760419106910058321043922084662847706104197792071602156147094468805040114327065445065100975191465405288363135095959175532575560551196222205233426129705147157216844751217802886045255957619678800997753977743096426997908263640385336293659125225762997075242414653617142231793740677993949048575631350112844157103767943042849969976312037188328454196070462899094696657202379003271804501383120984674750015304387733924049990973329552419666780640194660085081869989246545541113764551389382172008850757670143022353420568495479490452289505018039066095040114605887107520645912873169638657804244890548452006163943378956569856969107028172533083297664181121530676162557710249010362167921275178036131391166947807728947413651530354123228934917716391596195600344520212115531705220416630759739928676572675876089758935730414886907714244263011724446899919886139778844886618822114603888032967451055519361287097029701054632375519938308446311471962006002929993505646139151050815645164517524015656325756239832164314590284690150065284161795334106063564190475264676045131810786109928829227698296080449019849660909202264632021633754673325931445711630329746836991611299434962293883637761822803969770975507673901871376499484249700548210189231658936273217670679633512522244997926011071787465204632948165155634416616254207265418702040511991272703662303935337931245395968513374946245758849146448713943690201125888112046577272192290750777914444935660864597885309172520243922397345701514069814976441480773754762222962337340380994351993777981367089862423404228450340048326757267817377917324470931778084376558486665332121423706406648278854789126104617203989815743740845471586526472461029723594985296167593341331087282062557991693792487343552830203691054016596698267030796723952713723048742553714853233505673153976862589276667827687842128435430837785621361875467883652478741152185073894620560171398273790082726588117110128434061786272983088165870425679093169143454727158556678580727108248515711702670384005533192939114715884604249839263940398766330648790587578155268439452937496197980460213303099305632894940392235073694605709962311449191846063769253598715795370041165513593534323352809561549806995099124724504151316831004517014350689930257589206220417800288680118663667935710114711540997381602311727809276664065807862149898218163294803253836319273260932899921966233971048563884346851441542580095982444331917464693656535281307408568374107243970658942746137567541916814057831205882714429457956899169222773289190010891073009373564306775467636678295017397643268216834019079722186074980967429721460058343188088458487707071428668982502963492872041742148318643887563527477013412885077902246871988500459898444579068469429207463215704449162698174432879239730987059257304301281482671817534132962807129573678485115432651718463422768455893107208000723877182411967573343555626426109374976976178011538048496891091947024466551457719452589452643270520019798147790822456419771943072171651288327652593516460580895730594292191223125478977545786117160933017394233614168674950071865762657556363503993757564792085731295206335641632923846964701631996219317773502051269050126375538131948958435936302437230918835165736705355705132885040032758209114872596635386895390548426116200759509247714598386178311880819147104654005685806845670169605762966680896031372029617196292574359123504614470842374257183477844923428438812292020220927189493001918709523281009861100884893648146028525948286283440746529457448009572453288883765871943583720764958077897990630428793338959319489008362623586964270392076404374586662784131397313626915618637117993260927297684132316790348754258846863383153950004102315383926875804967093056239728728453906159091676805268562102427824240456445969656761374218494208485199407460379021116598254538189732667945587306447372269851091860607898543017397474624819911901861374463536991438657498901959418284641271567653282526283788914925806000217761196087655141964689904623818517160262686920687116221989780302022785651728840366396748331952108455930575548126455832890226921276720128765191259925497185502767657708139985110280727258105621720812500858785203074453009475438504867311578628438131372925283464029263496993597797436402162010812245074907259738901339706130206481501509695223392698482814283447255143289190883591016806745180058995923518131858850917511432770312297850373327274965417596877551711166645886525564593958508830488336051222535463047505642913066760007415042951813267621801706055679009347353946340701334326429224211985576756774953700485312800536859781316969421247134830539411620369707942864483387540745788315537986500031768500443061855147621360498158893485255671591621670490593254939649438311403457834930867170189961801371617074478846977816336749985192238524894120218569986143459029249579817854606198869766982385070265676408498698915819566970285327183355369747479311051612067490237058611793200126757421994807329301807011835849551376436774574906637108935914868079886538748906153188775636232494712790110957927325254007210317093250222818435130532751948804634511623158036974039949806521426067584388948405686135101974826384450335936364212959196194000739246187016665186280952585770510375201669774124913393952706583650337007191845577886042605490669257173554430889188260234569787548923256473558367771842757969241030831653077573379709025238495614587833120752901680246815012682281497380471302998815521613668479775370584290998802814280797326475786995091949845849158814587699989960666958869765811032951591805254006781447155361756472624042676907684158124770125765063563938037468213919225400019931168124727103628747691036667991324147524520071290719820568978342708625013633562549097988881035238459218528442955228903896010669856796751953138335491308498846927835572506161623212983246486940390961100121070285790650927011128487245170591392858133593033425052713011341168942092998952382459224556272086317162535052901175815091716747696409561451991504007282064519094523574052136956043014436850885611762022347428635223920004290680660692814228922823132693689961206544162626813939348281685635174190728098597514699619833165790857983800075379535638200249254686613634073751408323991543811358682371505059788347279833082991628996609896840660517190856991967057051645900778831912664627942308491495372258488486251866011849072975459494034018545049805411623142446877614785572989317234773805475115667264663374086923512693382805148410974945918648425638837129359492914454380574059770550950160599986666628150967977416640615141656519617958789584198679469871288871625558975909185675547239925195344583561087314824595355843478794789050668748696638271203978634881400569049749410420450401627262889638368977523722954188641322509889405246308679715530853315521220475442952083625606854483932983743028749084295640860114484766927179763511594156137906913138984271342173845179230932497301981022662268281599145463360280600286228100725153983996269802994785644227902874625617133587701135514861871344257116021658968184319804879968214770561864192735036479276532291874824451656911068729077172782312333873908582731507407405141297971044130621253835474122454327377294397820625892683158359683258683557683599667392828396509406755181023645452847393617133330664863293074841714350937746187056631391800721700454113358372595820932085062282482872797546616656669878256771017103026724354466169500906428556560956451785878649704033269744402529279497911205724239078227913585817784869187107839076692924636621385177125384131075772038655882173348224480720089747159021094424295743326988884871348623303086244716001154187620735711071782143754701932443296778431649454402412513416380274086662692089658007285504332310227826843616069921699471560098303585678033893180603957214806760304983628161332008846111957319697050584554684536238628621501574650820626292754319370132139834324668182105365629880847460818110522443250064435805926509867640116437487895039630300030048648053485615559547752525858821617005639181595159639426274642058017847302814115535416512644556717215315775810741447311686562219107571562379521815865983309463294709427654571831085459417587521473791729569896820770414494810228576361233362587273756070802980442256382663230363599216905080563262056799714184360198023494558466734744205010283239399501081742454656164668767437335205728664212526186743170996103143967865614503581308303206756371849318848669986647604246043990301292859952809989414623635173313464682118939889680128194312898469288056267459182669603056058879660927074720990538028184884202813723470043777023198557813368875369562841437896007996477975979189596043834480423285589702305832697063377109142250446976359142994334249327670239183640016084900667837754933379904858344217809411257027901792323424538490734406668103845772336312490187043335517996082744719060332610227763272511672458932140421062728201544494044094605280930873746977045614978446514571261376503012361731523163383694164970750933496933017895154360587804933092302738776505079627083055265657349135716572368052688158891283946909218372345953950584963278686484740654764359388503659101660471628945521441124611339006794030810079741171237381260185822373127525104652857341936042320677492034773519468427804582653610601821630049094971983606680860019218988487376894560915113623632149826639483451693618508677008145871316372654150008694889304768482077502652677408511922921884903189130040545425995524168331770722059653393525566981553539663770712489671485015889946632811084675642973681488064585949014163237776825570156837490112612547291727974297516247669907534422434503853065120043535570832372574296426946634989899752934976793434461405480126884981483906661219778855576710463606822214595222810988482597470073372502398375241220184241125451401933295535690279740698856772116013976240755757432346442275316931603134997002363173901341362061537755126899029980504170675951180062201470866890958651947422926127984524988476336280963166099356339257974073545252274327154845180693795736898134423613477723767814615208816228667522183872958390538575872929030339307919787347698215784322519179685922687897286211351539447162872995268887936243955452542437058093397955428132732705655290053780246746587645419941115345749113813548664466818326280178630824197860251951018368939942627908612986436727726486289038483045400918006638537847056114811797512504356986451171607711421195784428049307262619761151676858526201389097767895837303660483107061674640637112139807552372971341126592537887329937288610006674935602082750429735265581674441759828453722960213927979710428262159893255725677443176335719407697142220229909674492098865215557340350552636028235097474370812377376841899541364677020495632535135242960316298549795729525629733410277169958331055220154409041164125496276248124745418603059599997815751114882668538237246403589465899312109727134708170712304155493117181609688843316842260741842283737735733771093139525344553749411815168374150139519085374709502746027975245974887566871721204396395262429553230181208902727426166965637904455468515179707332282302424812209999646852034586850943785993650341214379988450707871991271415324841031606085513753919603439855801009091520778227635240049015666446435782998241519040468849689412123230328062611153717877172767669366325544804684806928072563797532730708754732179508929609863787324404261088680002655124797166726687403556394511299350736731889365327678829233363500423955879904751842356310142453018964894544407667963249481339567707910638379983091299956471356826545767675765871280681483537004581946547342575997392793096387382999597314106797217227370893213845107163011730009855569340923328178124069655743342105967427497190588611656561764617358797571146640077901960048663056939493037496117642400812228351146136118063058432059630238902586769682848335169833018267588136987809540567377988448972986787872635825148973427625615248868731585947928168404693010160047998927267791202384442153429470868321189784551324825672208362934014826592852602685863426899939785255120538605371113433567588799253259071478855578674788751261319894334921289819792137968591551910084587757183033559231693660645429777983512155841841220129334293303005351228666868586186001211891451280865442113518512257375436345366038099049024336814803612816491405516454605940672170678122538159534753507780670062877116354300644266976018532507816321985305466461291020048095546708532406816986746831045130960120613296027732031886780322513061050061092309309129248381291997855304798677676093164330600996171632820895034525844313734263863259560996437228708349024007143003965797245869262771636309638746319721242234393175602867392469669854551694202504613292912063915070932701715873716188204447944774738390755363882194006550986254890898812991113201978871872674047594081274594998515352764056620851819639425630378923987962177058149868123351611761590570299291221848396275245280161413742588739331132033629096495071267169057738629094509465289026557180417121503757556348948187275916396466674709684540377790520977102902175341994388556130511899341048245783164372499948676108462383041798754489612844454749894696089762926692415103907163119660663358005762535261361872189003086581219613978358295905531427342133316410852230598622288687972773930103303209835238684964938759993181039681089398055428639518610911834053505170280714515569699268151211062561825082996577677343920501642319990268202229371450300864668733311103049071071228927200986950812157357205411622282815931348153713941236780324974687140748562000816104922865291783916928948543296062526775548410500810346447352742985222105773591654654061645547944814921830649428029036544389902290929249374900166038353086440274857539338190480336620871579313159533766102635619955671011029652697643057250045565479491048664004277833096795002964369080376152591794083224651268712431439648165443597813493394869351515644712585617824405347432618297175362893468840455027230708273927289392582723019281582433835597363228620506648750741504669896050664276831807689640666707345771184222507545735606990049420916993918790283751362434427826177559392123354545178299540146302212349164228941206612498541470829893428090097147429425527107321438024950124642766179482385048196238202947267666883136653725248326935120945652003852389232988543862273018229418469481559162377191536440332934465074888349683861960737278574406423792996137260886906790975734207097793796298676183384356245711934288328340115420595771720154172092621417598311839067973860252116843167662842950877946511572776391270176967703681525722127851699753288761714467958023059178490119598223253650134456845626042523403150787099324802947734511483609503944545226791217652548557011830169697845252285900187477858396221836662607230919970488333231683367537465244725295550553900347006727325081790499948672728460156508851463886033621946134174436064710995998137053196825688007022264702759253360153608815458433821984568119043234398149661539170758820334173534742634159713755557103992117365699019259463586164046166964420098583697156896657596179228475279476979782064832867344141986929054087273496734271632962963099393373706677308564401034749742662902103768618415840237550883254388076457911908510496867646446856351687568380691299373397334754242396382913451565442896085901327614744363579747780457008721941409351458442603300360056248653232023097291511761220985637366905150595114828244392197765652680676991959568887542137470434399262915897932313435274310679134277594041569044712979578740489386518543029583501300865636938090168591744504906186273023286585278204270364689115773775663456576312622778300432293422292072619735715880706126941355994543084334055732934181096920056377071339682949915016448112507740259802341644308786848856823520220826267564757930065530854116410642896535919896918889166199622742582010588093326905399515731087535404268205504131311741981966952451101062521926902852229540048377392989443413229058178076114476508290007314337244752890401355562227651291401246363317143193221604300429872720517547812399553720401748558971324696320659374555949217152171257784041806063426367817654464605265894996948220827111551457176421942773312053244984791345771173817026635854647644357155695650923145564912481475423104826113436247716105174340126879616621266385220926747915225525109719694603497642459290257361613588643813042736885492433979026791972349035782160252435542133546196617246604609086503774438321511232910325499789618379126323938282046084904608633527179199319751918580836306079304428368357519025193454431342338984345976201927078866420471811519729144118094914251723388982042460109041639722914411427353083989508358074171008190481594726457102331379434662124875777167556822548073128568321824831334566515678355780698143003617222768314504474722108688424735756334889080190832941023326043599335647765377537920501418428236304589334109717222935236300410485531994410353482485763723518389992119431735565389706315872463930599911071006773515178953289795091325227779669447857439734204898213685547252291700148716452372030309703218506622143309345100661400338742373407579667046056984375088436896568827233417411428325745049471484769835378088188435461677143522672658778438254086972758424421831836486709589986058816698730676305432937144272012622040855630868784832369001035556839952716309410584986600801651473572438865836334427061889890278410717222116968708302999568947964354164704643241900215614897661619671414587255179291530023745450029337708972147856663636119833221478187730126782788972708744982995790385612989787179570086052803543948762282465489585070982397990999771103302966803965788598002090924057265103891140644564517625732404602444285730721612029236670048887020416929077976647812785099742607373078980139319862159414809221748433800360746233029228235390488276808629741197924829612499977658013951867242728128375512827364143782922381192677599772557470589854156079335557541092133706351124310031454278346076653141827486090481644621721806638811388025811901219305638478742457465303092443773299801244651143182336715640213029964349627690191623225283808883109300631824384786029077763731154656621858272492627996420526706714238194845933917836025568040554212118105226045264994731974420265103205841002419558735213580210264854428317788422766495438905910889266491122783581692532534689206895693789911104023888731639588958053721571150589209750337966809594409736879844747929806446319088365397596821645552222917736484916788901288282086168901417684622152760099802404144032664273578403318590895500021707172582875595731572531602968932522421155502380881830817266416618245725757578157558175451900899995436708211100274680932908720268848207279559763069309293997117272556463643980176794388758711701472718109051442553184751597146611994835568036367719865917811286461578464156277739467261403039103575368664639236948212739313242360683701252812706216200417496490610316750387022136722872009594894829021897271641228462416782754753667039022650802900258063439497236043340694235058164175143101101390160019256735762541791633895210155503318725102392189303188584837834974644685316825500405286583477463329836866049003964455418636985300511516345277912687559063769177555540367424933675566894319098515876240457994198324022522088673226279677267342402454117921725496418287674237924397176779853673592710647487589517219688770316291155894255249956019196098669976592432176043744016552690583927229897064128771713672561802654321784469396057754106809241376370288066689328297364748811538735696968581176829322303188495076776397169075789420043792085275496716425914339448056936903842952194295733762511451564407621700845923469844699099623315330266371601549414717673751261781656572533511022424605965057958030174954018805832649681540873610469221778709592418623739467556765658910139671782520833946265718405732186277622468154217477607811126548036905776619497764697123869104215509226196874351678007612098697512686048455105111380802452179394846738906003978122931271969315946923380017600842174539504235855817155968688690743444167689049584120618429176363360723088200774720909680989374296802829489805392532887906944002565864053711858733402716939846752970369011892165627305173771782967055413638557907821839295677502533607953156598959092460930435206503788955335498209150178195556287048682405506652927950664332474933088049833536383060650139184668776398972930051515088713437507525926146626069319686444325242215416641226058241836433327955708834423376639865146611572174807020000568096051192744159939371726511951117943893322251976900717077871809649432416642131722008991529530490973379450671157511799930192755081456284837490339536760664410745315749936683419049310479091139605365701025857396906801798974733432672567122781664081976906546885904033682356290736094987368288697392599087016261872808201814156929162497178827584120373580721731403497472730169324419511769500194893886816818960068325608991013978435036109428931746203548737792301471543397056884277885446872075070142241362163443204051620485349375335339759007638833961898656052977710929760645709894130523624655465064644459232480455598440062744100146390703543795143314725042297192559123776486968614413097132882936730164705441569254016025864502902542955831333981962956826922227994548706243038444563009866325362937070183211608544310986636706924863383527315189002947003386457239169883480417923374937397271002852024896056172964952042945795936454624651343459161792391155097325126511498008811599342474105505707860399198288611114734351488171272555452801243231454013579878153856167166849740938114624714278677384015249211142183422675152201975149559450513891727196729861358165304788319717620218794747327178138543348581531557329184247073091121330605680103942963613937778085889599484663311269826561275811144631481544711920846528904261221840028560738670586870089076336674186548338558741127025009613400274519904951249820534068427988788359625343271065442922492350401055528571788516329927970814675583999905541784262649467647345376474656508334094915662134978103032560253458995798184580490241655696413638116759846728050700244578897285624564196954066393707494580896042012234780740079168215667348657951381367641124947727275158791778356040583127359217526430387099434653475456172761740076518872125545940327871597328992461295349403605459555920107671297503812536388856522599202932644032758919529486764697043364470965151829892793678293356583644472057473438862210806417797724668275971390530436747227229811101145281567206472580060691164087796496248306838535194146985894368802545030206394189663501829673202893233797711906778938522078148659737747044277185509640060723899584210594842641720320400763224934643042730413483339258810637497135778875482879090634590349226935139758051612059045292817026988477428920433095630382165330387547599895770625113573292684719847008557366430999694328079951984538941730122097881844372443549953352265274979821545480236557914008160434522191296095437848167769561716851712801912260034501718555234040034374120801462726778588003433861497902739590512056358482532674749277978668759019624551148535047417254541287314191693793294964956296498821356023098740684848908541774082644893143145790076176065952482399324437850601056040191562572137590035530493181923415488999390937638713437129616201635834598894837996034916092583480516838680617691453127800565457143147087920628846685054920672396694307818689022055090454921138715215829703131041046652826598044846819383493241753471994805738040506622828001933135563969935648145695233588958605196434078640438852085736796082531324509368609940040537978791741049104398608626192202454331414135391244007334543155221427387092417617953966752897001709725781742881120989305523441958054748741056865676724382651068925566548228867199794378389741506773782629745694808608803297425474318875945346980811042682853615867362824928085287889813555802641896940957793584730458874219463000400084783979981805431814796036936021242136832874634270858429236599951050868405900434095309008726280413525065005249366663023404825209715090776443333906559356032801284830963981212621567056875226840573169238895568244523961801142291399432369129919104778817374999966929042423222240720971156526057577973475756890789873787290503458020847311797570960483638763438576371089173328364996207164836841678166890929411780520374957681378169201141881867505539193021007995487911515416885223584184441565862997320643504045243259585746155751380816143639887817429270482891504160720810653098921491114016010988646326645095725890029195966974295351300618418929507928294551336121417818733492098740671093146709723123392505000532153150780435033967336877477319842537802678574699030776291381841474312160300601961397112005677850164084121699971919157772816153756667175620543969630796588790026708826629265095128492450618061835344958497628740308445177430342718299891442743806585309750560293086108747351004842344979624824555447212952269290766544869477064236085680206118924885779537179703809966307649167915952723603349251336256888308747068482674169584469305697664620374581439167994669421619186315685202374610534078235968882608673346850853024329151294452386760647614508163410256359146102712378373396108750260784610524644297172772568760050749756789667012914201343548196118950247825598753717394687470129968612059540829236115402113774165021852267834881379206942712533572953433475805074717573139927868103669473159662599941855560917062102727450751310101915681742592291719631851958883254776721480621466498589510143191075725930914010643522707529215902108255501898831432020006258635086047948887666464937229540729116377384761566878459110100191090830607411890269370806464302407449432404127238624130735837966427801735643476163741496444151783941841678767147118870850479773064866425386841756707790098815787480188162820260373196871415475878425134037098999303954340935725949359229903587557292832401862415142196099475313024042049718998646892049341008417464406443872648437358972361433003875213883084239754499215618439243485210939841179115862645255514645796784029419367317105088504549777297174693784401912973421725854431647384133971494556797394967234187220878713084228587140609914405665000468087036240930411511270412561620918172446176020167272398404770771178456179126934126726432348796219619603156424551225292117118681006349368723631624582789996645733455601320055044643117008553590217861447083727849211821552342015922499461462079382785727552427159926513887315365635094775409259647317450925939734913078036331040268245925374159139903330644217516118328010095135987576097246484888231126181166227355435692174361981362468910902412172293791039592184937466280921043132226897893309983756243277755306689639104836637286840954340948462331731446498843721975056996993184657985919565624493394151262475143849565083257138685368612637869972877113288161117541798882483788911865810362499865393509553670114331263292945314559191125264883463545440656293862218506513399062158348878546971850151404221530053373904169836055620842231984907534504404103744218270801562485844149573824679433148937829150909884135229290158761777409753358282794213247244121861590563417868287879812212258712048867878021511051370127848195551947588620848813140986053841537977065452307236988154161532152721119921255467040237319304643610164949259980607711672485425359529028102266748391232053115036536562802718823517026246538550522381801917331748883230902933243249175836096051444282368835360028695959256532807812854821705211135816670866937218222933097984745997490091528471890112203372884386130226025166432949269151555951656304673518692127773217165011981843303164525712466004234133436894306265067794820374402187257474935075704055715639828074275236371111903829051965533693004862888606912329729863810312067214313918159370446605143084184017877620435860636171274324469650358332928858022792502378770998004609678410780616570680980053952169729183728127510871485060264347404710112327141730353799150508452296981180150061050163339891577974677866299067972454931955414480485869488511070122328956464830050008332973716145446573587682390758182159475309808111569290899173948281804319042690737608362002008751530282868694025452431758148166056189464214736830460476094353142614051164473874709597490282543107560697665384909871576672635339503419674354847035038015165868305572565185340152384911161728769563630346777957569885596070375524271407685449189641686365690389719833984360126799792401484353665475455717731305134924353740418434466559093113809858618614316008410781497462816357625865757062797822816920826228916848866605080207845852286149240425954249255470543601143760806670527312108497742506915704363930221980049282120450513976528761828689618509118784285787194948724095247830687613656101569382179559148239121851934947355754381105875690057474161339927902867980554932810042481336122341128100470382048649222763567377748118023330410219053205371925682830693742292854293034596856003386898264380289183307209699496509717179157362662419769869984933472596828924838513416764892216427036996646923122269924799203181383845643894083962446421130897214860614578982780408882649953363582620269488576605285561364639379332610431311136237670279278447317898598257229047378160016691678868402739019184527518785454753952608025033321288018969300859550502733531583626113482572880040879706303088482567853754946811160880505311524052439770561711308836386493035888858359631705111793383794292849908169427891442143297729946530814002594332385938402074786263094984829290342798077322721931394713607061173936447938829408720110308254689702799671477267888609264114112150004412420468629952208093273323666983656906460848166990692722500519940057622337983280398019087593400560797897853720221856199692614689542585839066040893343752297519255593573218791987949268965073472320400111009213482178452775985419582526133395330225704868946649101713058122545152027511163330563674529884727194654779048714790500558783381412356711263089592005986153613673996609822473956987124632503573197615193303711348984307560015544799782670079989492599696332799749900168088567428830815349813246754778476395113282926772178327951271635356713873180585705967914361258990713416401294213477589473695286865159790677034185180934167557783544381968572406878655488364989776146240757884789106479694071481703332269052505060059638440670606860837135097019888841919516442592085610587841776298075841277546878597556996238213884886394712299631025220980032000282669164030381001940196093057425397522372663897663564190881291747353310084799921301778306655105884336071136647572261941971164446119598742208577382436806686250920178868426957256746354122586256334985702476008630762859981070721791484853717624119362393031051689853191367149834803326425940486726142305520903054979595167279321635520610288544951468992373070854717570804827011659157574134350110806624854823872929315074924025001074526795508977572715549916245607109795168797035229846923499788887171003142120434891915366781371144127501274849079717395358780902710583469357835049568077918992031076640343341293784190765798370828699991187922838025657992263765153359778289738520045831435040923163637013564342301492647492794998021035063355525346931788009366843580345069544423341302838862587672672654130651402056350467457450734959730829923610652321169378127776526438369898657249386326740007167712457301452380293934730191756113737167916650003242508408840010962864488823947295256947702565501583685727613038996663741187635502209559871039005103799519715091158904914127435155287036561500608615945590040022967826151374332391593175723528240123952427620580128306357810880336663446550300442508698691915655494928244184564596499480138507463719798009934437220048174317343026579866292895640413388318431004328651937466590050225488344627692120113254267547049305145128470103854124229836867054487473529944093067133170894812262375301613322625294352558456027590992485561727971502482676041935263575912306983977700696050599849804211255510658045961501970848274435770754083382766206772646730832719343091157079607893824797757420924678236256414289298729091550892829171426079664113653690507730387518046874721020588181826078088767159369720926442576804772302508755359813100497611272279688369576931169967374025352054112076261455793337225648085887565807759531056747545986903980173012314175266963637360493339093402625020186460680035345349687970363852995325142786204815551838767989441480239666661926101543789951805679608617477987521057809374406818801252565689916344689029126689490736247169087262937368534244541969096181815391059987344419627930576944327678963366662554246728490262916613081546262952642313417470682018652063943452519547207585523447708266534521866131725354151183818962072126723847172450884374929737978395686477875063057169106030546770550353120377547683239517660975231392411339981433569164678215825758135321201690972178892565830111472314753178476363079323018138619986876247549110735492971013230974722403118534144654687954595115705318271986208874423461695233023808709748168458077076020883868236244769592190848120164469277881000784606063245582399806331716798762721395525447982386068935917023782757971653325193909708960953072935831605349142701241717225256116655630186805242563412360800699729242725197831161572541613415024780848292189527380382136945067341426480993580339724488552474192754544867164626387805771691001593112194591530230239821219491885912767813210370102745210929694020726268165175602887409948049061954577484712727948251383571279686005280833912849916027098213035916124931533115944074699125906008072553951267378851811503780045292442002334917790671717173595574709358828314573679414588762513271156102060223189572483831182502765835832600433473163595429236747827344082305129061509393675480679510267415408643264863645346644801432195131531789126340941659231887045061304439804540298589822917041067465128419589190444090830536734157274267862299239905297891529013281665936537665938216666296115086305186347034514039089946120256940320578254058250767353898218894576630868641371053578519256674654780371737251923990633021374128220653977329074014114890255707227460834498110879146699899135661836977773153413843243833648316332901446754509976359476702488309435675758818249019448574702945246102796832803616600928516377938916593285101273832950690609757847560261117628431801414851520140632366829806090002611246473080392788706848011885283408544659659782649431795803527124883583540129455387171530160146552958060710890414320113846188803761925773986361103124444366406020922435550679188849881930817187647617516087714415595037581739279533766365499550468003187507843997709313085901529754809862108308472548729488539875236720275440018601163842993520106876006937684498883638192931441989670062846193739818831546988589790991440579031368350677345700920323418362832247780738027190829427734900651798545856210081447495182427307962348225334368997050237351817647352942378198651826609812273055290896639864481668421709521576936677217540611863112007770281950171048942316153966626635232824440569227034121424298232420746108678142373702494136055582377211259344011586059684885072803210553017138657908257405497182264683601867683382549617510419997772040410341178851742602224683008059733656406597294619318268958448459579684951051031934067152105508131340148175493060646703806154340444588372720216130468903969891540685320690549665685283887590254242185557513465915997035210238206652340150939494298838890734138972573998427201553201444005859379580213931403992750529579746148116428543627863537483709561178557952907101716664622878494200931744901442059103650833751752235390564144271573189027954322876262868603877902808550242634257596538263279107007810138830221659003231305106384347538284104569590162264538619753613620647195702976750940942095371744471602732966048585216655144281407148432388020136484349694206766214360670879029533651334255185024964074310254818419472301226685879967836513727239325026195910322534606759997180306072042189847711812325113586287906144802462723385203653068802722110633637753832600133791985786405278874380716550193872501002807408435670987316598836029218448437246418761531079385972232768033410749830405537027855261496662102748490140940022202006851644956266832101281042892881763670324246482014229200947318119652363721636312613597528324385689532771250584179989206893800184952385550450255953671577826661643058606232717612193382500388252975633007687215834809580783347241201119587876312363809474368425372075052796408398393550650172909691927007335441607155909675093494265576877872778088620295355126139094628317933232629835434864263750979404415050997725378259680716674341281740826686322648435293370006129296688271335714869116586983997875674636447064192797399019795624701892221104554417680393498457225736419258010916761717165901612042839798568514731653273484780015343521522874156300093325260733901204540845012682654109690699656118372806988304733106089259204364178475362696425954933621152362177799607750678177394887548856185111429583010720122726582535332606671593482418990254576643062822290696288736497560902473043531429757155017939444551255611739626311605144510022769433351324216703221823853017813798939845084971488900215417351117027837886974767717074887929023802193739719016736201442554773556131865519925518964955374490503837537914054496510889147072632931260480094886303512439706276893290832018042535634529036274347100819544256350968340905531817414431872324645304288269224002287018056370205606611645171423514853080891594770551961582622858671119029297880135651928836491722024110373346652332657701978073961992757790406520405268760861820052515051080910597215954411915548770728946543291397882096525669670723259213130701005682488182812250935408917026921792699063296523384933970312231099740039048157088071902206558418485564064582517347285637217214842453283013681676121645205154670948869119999946011206544669096846712424088955278238573626705814305311295520482304438986045095531621094788898479589725385566267487890976352382503126600897824162260302038621433823853204660082932415753570932202451178203532906465788618646559646801567181865061239063804675079329967021893508921789198143131579747745237230333594881748287088629577084608243930437543521864723414980267372552934235480500061797321541267703975011748156153500271825584105450794121895740072325464009991207215359263649921555673932290788685725648498110701951489857698548279469997113962634963272199067059921062693807208295407667175930112912973266316760463489547118061379081394799707667149740426658650030543536483003677145888441701717492682734989372686555880182838804062546133506983843415752807718052949692737204267733329421660703367838357293315497658127594210444637422782115654272026700896545935750306122386292142774579534110728837611216475196964397690688160804115978366847149699652238874804872711919389593193534530458946093174834698476079190578318542052059004392360512212975000954743471263494472083005924162073816389512752209097690505275149715624113710749417104335860040510663706717461453293000464439120833055585564696472732743289619773064404385799133147865211298454186681016984374016129011249302274861926624049924889851530622772264479778795898442475816900714852903218248049686901898670105143510191413659463323404302242920345622423642950564579633544335321609030288912643259250951007840751820350968110048534242532736587338838059572068425515645485345644533958743067905592124316731195340864406075414816423609173956727760044238139109367050263199151281495490310041850470764622538450284264995189949124050909669640545777837435882222887392306177133752590409719693038418130972584797411303200020663912448423816329803515594676122030521800423590430827623791164937904546974288655142123933298605409464176289832427716755478142430222058601127697665368965308024888062127339251504885229035329806108160947469109956256601730663187300553502120891989760345077127694090868113914862920277855577731960775846581437046422366986383853985157148655829695629291365667073143245239149413435326389543419798217934416693458312669008126830219374635345690104907233993194514677024565583092838315052215596280455279468482592275834433546092103921753131586330470434981230343932769373775064841311631162055004383054101594079254560285991127944463954512948875584089720241192466326175872146998509682078591826399721841195189408794958311711295502558068835943355486618350596830818528835453570359503363558749639528211153466156662695463898559198093227268350539119168906971499521183332737025272811511715286136556577390612801079411211066447502608000971859074549564228972973278983304478166505815530549452882974305011444572684646347482113524387478404829076128700158703503593638944916968378289391018228979235301683083088503553869076829726215242819349753693507035490775788687990626206934656187667285829616709241216533480144624517821227550654291819961506968646635405554210012831961280980930142394668277267387810007196624018060278544882473576270071966631978966704889216683867436409536919883195711966505421759292595633866370601979312162455122157613020502694603320212517145747191383146117276710897076230750352043997824775318871418944079723810973534053698087949853698844038622484793222374208137963220985571462863392674719569145294317303555746003601679134156117329529483782442638421251126989292586209644995266830140070600426983425097313657604365299107897128888958943227262837378037229629433079162382053782320890117560435373200431332515332774265709619640610833334870761557695038350187382549442424695290383512188105917914443362481943695490468050419753899841418871189176284742490395388531402480253736493354305031259623832728706233907748455411783291213501349712915697153734779115827996802021127498245019393638942718642706912113077726736642348792190455785466978319053102607207814990066669456595122515521813725531052570539832504019217679132450507672464432661055675479255962542747118492371086748470374301742873469698679088278685388997387175855080424191091835313725786906249557441987329350705344896475150228273097359524001464757492918035975454615519620589300160433259166984059836348795504266398265476977453857416702731098123505342754651069017575554877809422753001716344607652516655679180783302840567954764222943464123809199276229609313125417671130821741387585686450612576888893736114090584448010973330426407532458501090825191088905500246898673223553119538279487515498271204365069725843604288249859472260918077007471068936738820453515014437478858501654952252802546732626563282475394747337060689739145936717475042474428552092595508227046716509352858216247482888139143217376462181843424230305729869097358361136043606096090033687378973924309768445392312915863010862079273247046052326161283688036694762818245947234904614863341688281507188117477959929063506266331619870263185537710494793771094805025949312362018183300836575240115986921619962390930095198345656988898071110767483689403745991056134578810450964047633964520417256992553970532988112823507006907693901345725590356379040773497735896429025645016179423960546053325320142984819433221571911125123642565484711278574644842105121311227414773122201461156996441822794210238179079927848837718807144684390355169329988780092484008773929018496383573799764507632810976220725156442929782021044679363021081312170059246753251079941692356621172817968870051530813279512301778286712034104821782209487784829316436563465236928868124930002387606472557991445633416089428154441774000755664025592416598710306383298704722796877435651637824055095370753891560674078361456662474529009740829843417366256876892426791590575208845724215217532609832281179717539742368710983848474340916338923564615056480190793102548502931501163475442517221077159739328852245285975395260527677398124781125500377890257866106656828174282734643901285816678984777024509570352354047989563042929163944170331503481715699708503053013883102719508125279845528985884776214438301673049244884418272620705163068122708783801443522313604307193747769550093890892686544862938632356464648710730265536717957627582427487781912841560658081542437131585924694716830957476199693092521656231882642078757048221234420585558696863203650268273816913615713833053088671612573119147997050994819483311997492937469680954522946408327167459485291685806926362843940696992605901536990245680430294390905413698123010147152821601986780205823513501304162575544628319657581456532599065812236858964292136550827255536928921010188399645952793260164315835750088907283876261369752389153126532534784648962208116622335708837553698179198511591684606495344684188389667092899091292661785304080499719258236013427188554974943675359176272568874631221207768315083424613374737440688715637386049626294194189116981053795430362327156229264713872250611049405835517668437531035507238910901249821504299771716688834503619547236798559156464061774423958102835767656538865472833523391069326384508646006365142348267933500472709553644532035385311732135693086284485333686503850657763616117419367173947058013085893589227908303505849187247139429942675732761386365126086508901350811021092200680732713246925928668016470153395851707932538723445336919706868907696235406839192743781657343150485812748344682596477976684840495354835860168066951144259111063699689510477901773386418023626873335514300723833384834921629104486309376792693473690542368112006343234975163439077673143108632420040485682213428638771905419020633314014216998900993239563489545970062381600120738807040173289996283438386556729742613220187485254796275110494392305722909579540960400174374801543304389925595608685513410243691228066069883888454938571394211603872767685935309551509715605057901517771509568454716092084361739378693979172527493311337683940525578781077663936158800928404737558033072467593780250602258467051526505481221195538481899126351582059906513637978437025752182586189404515689999226497808892304722584795032247714827075796299566346352932041766918558157011088232881939702788828837994657949778527876595009675731146223341843093420811595442031070259603895617008581651998888859551500355352990634270838952030082137465797613801919052515731611341261882263876386855950967446608793095552092985911350413121796914684361438613961912373555803424165524759559881326706655490752613569269360746560065927262231264977937749106538205957967180903143431708212830558305261916083656280126679936448233697602907056922679904661367285849901866087263431318544088379148140501432042618936043661867787663181327682193701983870038082901202514188355241843670470457543899634286511918686265937080540667044095661987562717749635081619597468304147442767884322305739882392836156280856687098797672837954537930132930852358365567929933195582781445981578959711942403641595247333688147309881798758096800128523248507709973450933788606667824308108135170729011304522234273137990249477269503675815340814784264913790042328688928937467860747947524399821058120462972185978531187298801942613793835222067177269588956811340130128724790099341247853842065878476678121528434337616348653968620040450039460284054375235205698406410160963180958584132952976308202638310641432410636463751113337319884476207943570981356025546486943100611244737874948577658606265110002412073111591518526377755832385398958101341429299477273655196687614412667979281476756446693061682885332490799987901531746998681483662034945788916039075193984925712790840772458428110006281519135409704632088345576111113504844470825861289850654378450501409800030379292782346083224122364325777820533961027672711799478954983287311752542400865361215757903949655684603299929554460331286277787790727985008734252825672098409996723161222216945715722178112712314981630561715498804565830033556164589441199536380262359682444100834960861472245342132362016012321104794942974398613643771590054952418025330413507758836683924754873130031938789171440999661973999920454912898347077648034531275435670119033994920925700082909774311993724195954839246918066385208858333461927599265753044512893142134934860580639742457006412568638114362342546109962030390498309026254352739071593676001812452283438918326700015355880449360313336678858504418750153462825375662123667715477739948561489756975379992464664313169570862182481938119073527973290866802357567764680949827214448457822271659724377429065089908254206864644945862490039120538146415661876242779134170782618730080048738107817900244158282831198651688215007504080566275741333733477271755394200627257366372185707777128753017053526427875570777476773461012361674270507443091109703480829636509199518556981732701350147524704077124748550903899166075037939691621855297959601878353345007352453097857189652847995359597372814723940818148522200061728076872256537139235533893209794737642238837992139035882663955726084705710604133304759187937007183522888811183516658239067407643987039238088251166431711448528547624942807356346733087066830059963424317488114530802603370015332471168639853246861113846483367195166608059650371851641078632768369733584912542890960912170700347098589086482708740535358631985302777068946548297494851768745763837386160801979319383220116750445083629135921642124486132456879072503873763650767031028167861809541282175866550597882884320520968143254604340347984175448781419077884559065527041988740493620343053470711232256587210781857772456668899268692492060808324680241602245949790091244674366015099738112967640494617018697120792372839072343770998403617651857288937454189646453301194274081383467675041446280627717026621005431949411139983773342916055820241251551291760202498873271438265201145657923446803909273322742381785014967046738252280785202657629957899382465479319209470315950178240193613406027398993970333746130887565473716232045047135142180611920568091591627911605571707171723274853152135321648224230105994684570762590550795435815928984523183771734909574711101180860866679555344596400967504020129358142607140854390801909029642305069526570897326283004078134441479362022314072743335304531416275344274974709006792702801564324898168740166692681730602014319307658956812699148345633380416781144262867529881678239524532580445316274128144257887503699040080774473847410897792509364510524620588191074320070772363686345092547958090309670408959067192105821139134618441324581886899786297643602044496918613330780847014839498035692336057164077709731068999034109704619867435377491342129979424884119564175036464775446642013987579918534337260045680477911362552906043460566944138478304585617952939891661366233920673652539247145755218094855781987343239481954740393500731585221208968326102762336372485547186482322147990317192293187796782285502802683075681527239428625877811767998969594181211370928220861870458934209339345842417998529266698991343219422144470240883974312480249155357928870979966965892506104375138653947501538590087219254882936759732084647856847323873246716859221381207577578997913585816314862633496218056892343341298163385808662011358858906884361200207298397898747309476858226007034242973616741121097105716448456977718222926662815914538956722729971540480955211053872865290210645194866563866826428283281924174310935230772788151179327214499094227337357159945773295046883554535088059028054652581986949630866805506934163894471571588737282562542746176897643834158263753388865420001866850057010683473979380855401915376942100569234631583600680802841044873406371413253520826357275069968558002287959377091995301124621338105955651998476578223344391230959828674122347557969462442246833403871872491368384130454390690923234772896164049606164760919056038099998711102413106201653231193805741063225035478709085611647478678244775353653898443286138223464033726362006969158556974106527832570160559050407997310115472094446047911006201219789546981859444039939782393207589044334151653064985025616973519697278936035568781971621507422672537827575945040501063567867680747457845662238257296637073608760759604744941632080112310422633995425393793077019240879344817730280948957348452628523615300390186350006019111396188765915879704954562029933367652633893554277111491863577452604043750508875331405514219256293483741013165698477384173327637740622638425002835536543841946201998192499385648974887795454660149353714610061067398542579255749004958749412745708826459983763932500302690109470314478273704836904877206993782383929559422170631328377044951228088870147252755910466373738731258882778891447658251384280617696464714685256233921510960478889611032329486550320332019118735236932723921162000449093991883489316991439676087745482758202639271907907972471607378749842758578354378870441123669033968194292945454166483587921919461186262454729323951385247307468680160464982602885532214270562211310301429712751613368541548594597982871196147487132467322446845158982652622381058043277280960541880954318655214690131885437937591983588480830332820842866888335838111219435814340101632341167090502574150097201687119007919523901543066904592209007712203710890871286259796400161701775303257266089757456275849243258886334601113287115852776756371876844271634255137917270167754660709982139342579477640295105943532432154835806599573436489858944907102467219276637350224102886126442531299668669887904510709521000111092353405836881709077725240584047564440575923674457258171776171089253194531075510915750884947674007019047311070114066784856454281652524482592334951679561568746716937078712498373550542751560986363798703251008127205728692913839880481174480780056888532020273402136398624014773199584467746787599688035719213760143903371211488457604140803549721492699415227939807630252489464379130779845431802832528090312369255240671455225580764119490754291556913389508404806206006023030768568181339919206939152003084167543420683497699217425882554357462305479156048007618451996484795885680626362380876114637802042523118183009841792317165022934558993983416259318142722673714644651844349277780479273691177578620306717474734748121073705611452610367800100333711377055451624238907885171122255830297260166309032143991790186146864637686055763572159489525401573729641583630649278138914582779703852085946440206456681405757516822359354304997693810444452295271789677344606898594562383548355938791299068718696047898418177864517931478914383535364481336789885223209962701623287503703021701575535258797876644168209498577358877523721337088175460204698185014428566587934579943047561807472879558506827829925278428217606652188636162396804007021236442784906122431453821608879335037886961403966389694029228208132944744555928315407501441669647197697553900223784137300457568538839650392766372244354482605671257497481742024506022009447990660892260650819121582582936278000214507464499234452706798592228978024203350979939962091022695625478361556587766964902946064175814545441582557755233703549101365261600444952531543368733666930836379586119862914754777567767473074328364548138150649589775544732847719337109284455051669786163854410935521942720858510972458466274571901288160021597661499399879598115649865441714053493263413933516757754601810465033436257801529495174102089986910169151069006624836449282136874181592146527788892019363107811377911975824744639322631473840685330138382123885793371972202855624915829758141555222193103880478834581064298893235593089123052708304323188333994348666692189519736120979121006092752072874334657465166758316969686272027919976495250841619468088037395971676603738850900786150890646657544578117923307597324047006597050829901181964920769236350916319984107439836315710576430874417295692313500533694425365967583545927744511075356769453380776529625671751487438966866214850394866323787925116762891776714355381253444110334060623067057138054443705704179180384068106337514254455402968910759216522695310584683159432685317582757334830785214425267545709071457273803773351115071764303412396998161356613727445815398555519160309395835409136039400140127846303780795426724316680134054328073914347102527735196342797678435073065070692849748208356910229789892700679587851911778909406869985809070490614958700248369625706635515328340183142444797150940861613336508710417271247770551569421755393398369579775167842148757693127363373639656971097999099247206977528414458694734219049878083560696607229176651225411106594823464311545025314899384925655043097288375806998119801554939556607703378844255621167705196504145780884444273673627021227928947321600411251064500552263616436345595864152818507462869234346271906152916627890787399237130959276927390024187147204958998279502703518176524092548726295437744200777422924854069802671352971607869513551823471563229632603662897310514239537211214625657580567986038513623709001447680677834579089310502452357705738939526914780512596369752674860594599916214011738881357629932327504471663616864778877065986078285179800378275834383166608829673789655747304753184697102441984701003809361869515341384688867294099996634921105569640063379576609896568864376631515436286648352269727499591181246570703723657744519323499907566406747814670529072936515946058018604624576885770086552276142683594351305610265188715690086851478767185472812253454646433947577601621167708967974293430020906826350185115151753296280039313434347575540118556059417489421487843016823699448886396296161337621867763054325922611612913709008552023880372180059612684914758617175554893972094491965142058581276061395740719634714821967248785404127625619430529908736512072377233494735915175136352968506904278645204928933734626565360053974962975943601123946329719921061571588821139656405621062509480635118710144878443583157700123047322026397846835819286244049376673049802893663367774870413085857118669113578310836578536511858607835966818689278856864219553709256400246264102108157094304696097682315662735122251012769552279058057357204064521870995331587032321780631430260252645828035188727985058571777251940859460607120581400391265353974044088662618031325150450703592960036529132748680856728789323068200764004787072193872856622612121682784302323818474158890938182682365318975993641644378129774057810343938319234936406623581253681579272646817681507589626617283943951722227363460348385315826758936598259927627470907301131064015577376435557406390706775989182524320287263428132506142474533692993293806584996791318785970506502854133636070974672545540886933120241111492004272254275560355049162391778138256885517973528469182476007021320787434870655424200063055299090361634415288427641139741426378660644120657373564165854496118417187241013183302514125194408298801968634579618678225453070017628525864079638789303662922342374622299260858619512363059261774179549575961454834039084197864805957483596046295546456388031833212458756197940548328364798806096609447450138575209256387031237757876473373738141955616952755452784536429057940846790137415470421884262668715921943173114238220133593597996655904589103056071813803340696925469743661127917844676855291605695949500610658203417807885523718174304901426054215910417908833347545430005822436849598479803800663871526793618764624565407698802383530583502539105534178881805500162269738058323964790089937343587822216135592063691005539426408451476594797758612022950217635806119833474093730494905606730716866890009538045432203359079202488765796821442221630457689954413847078594249210843767126326450996302262835886269061502571927171374338737150304876680929438088512211261875027731436765296219695314716737288537653352516569262043703949913341427985337057382593592655050793705699324919449486262643204965475673075195059177707997759041020619817856042982139685097598455198274384596996328890979307964085212151277737800081692016876974729558312655236921505329822284414869200216686210965538275747608690134726752054892433287588866823578253920709224949169163763897440709903563611131362629862865434050539325271608851237561594526896450909679880101749015335259755248174162961195818949782573984138599447906829595621007200914925291057807437893805786156445252376020388225475861401688077050189575659731687729878366873673361461670482374236532608368833175424665343570402954064544642436269998774695787007667412401775178066477927374908775466418773368879537394054624269896530245206520592380132638992793038219946085564041013537517188152224251035666961558492190405425473592451808348900058909176191168119455831883685554152027698485761542426251050005515801789314768703979951189393117944905028270051465327463418192779843706676835304032597066902391220095636234003214620588129971629617705886466254367079305274974915070362751626513100459333861702385324991620505900745147636799752342711188186348712617235254354320723308976165983220760972103099116834632395464256013656397322599812554984689561848290022148637210498611849041656828068499559775664616715951680302837304243777313671664968543569299084075004694146535824621183371487040486771302388874630630330587833156706541452668392821733977346520219757514420739718533328701988342210406112159878484446051090075585586151872249555146671823980774743060606561965138916059263195298779762029534317610010450868268350457947895854842004894016790164758340003680386865909876477148959811212293676268463614659714298670539849830838978175423125147046112212980938949187427831257554183593979606372121681314994944028519870355975756302102092654139518103349715397646819793886435684358046240340388848694445008948611123781951761214048654334814616063552390669131815881079898450050580125211765866983850851649872683577355888247715495577745507707379306374848208280704214543649739861121548012936683427775131900846258745671469859688254289134988780465079052699171886961290168505501057278948614306447127566424608176695047415455811072299813561293066515473492571598556476960547911787102099352609463716772450510944190900172490487049884537493849367766882833662428010212854118023442213193840792022987269047215244180802907954642805311234281775519354715701797022742465421726051389472034435422157190516447160986945311674362580737660316626551536944553104716604125859997145212389871535314165638381827015450082072802417350619636100498644479779362010651763613041885516316183047585597283313704021174755749790408072689161330442419866381445149927218631643713856004537475554870259235442179598178390338414118903955116963795312757834423232754541042571050156634163901432789884105983901293174072160413924878412978150165189497676091146675507066760922895491771904083083914049465131814745374874156507171024106970553667200176917382158472148881195856884884668613543955088674768444616276164805475272564318883784113305919890400987890374893808439863129528396400337720080731599062115597993722427974810194764475260294470221528453124648165857365619538277518791950238818646893107501247376121790368056233432891898435510646704616302072648970950661010439733126320653212732359996725189598985166479740961689369915147680411234918200036572234320813951272835095714210429092850631434551681425957951299300210207043365290886718836673070217436459774409946010456265368994889349500271371849560073275315024088386195312837841758256205625451101627985877723841865804080624617851971970515324361556178837280241907873464957572451878517631036005735781905835090559539267731000836811489014718783882072950919592603779777699188753790194260061441576664824577223569566147691167699838149793522137501522680472687959060508738364009323806435251146671348733263230121896412033530037525770946403672921915906828339104951335791380586246894683949876540649239227073992422970672432469758904938398305052385145892305477477088900068429742380997881168717529416715947512457147295566505877103458517346993425086169837756078036212561407404986237106253841818057298258372318555440252473566847586533391033212522910338060262171524938974851026989858957209884452495527537514941100412449879014108119048466564787708881137121072484413747650298961437101081040973666497148103534052852498270064911393957043854664883475592827868601906736558825582119748603569968625661028105209235045802843286597102367773991609722658316969415632880078347252454238507690147497935091609370820783831344955522311782717758691652301238889214002344452147518793203076422642312498184180574716095075788377529912696716099366294976664096753452180278266491897923692642317941724769207750189293617692729403056637269566984682928396512727598437796760543572631886364468208730184709950492923051191630727863704115864740351840728102531924860799418541380124363691967016479561518542695211438708984429957542410289652672312139501597228432997940997158186318545549402503076504908559430088843290421768589312189418166903910502122163189509921122968181950827801464110411465647141649419412103053692805978853174613427772897653817419383892790062460052190619729321148747194283895613025151159378650112732452625771724447482519909914072864338312920294461929450028550678745091733461468235068945308949732900056293194109680540718273208269491863880958026394622252853930504420460137667428323405302518386342930205843053866488004899924036919742591416681513695943453007657757866144580372957703433899581994074461876066536115470398225171098758127541301451690064120173711448243579711768092920968567548895871195241204750596316846046309374679525628886558708696186020021921321634159924470780799810176865578379444656515008123299297312227471896957908957384552034221131673832651769607325189487283520990583903138451511170580302709000258762685097174632404629942553621919406233313134100774600996478783176588663846376121480992939843753421639939822616225260962957513733456459576913426272235138177502600630565128523539575159362573469997302643550946972979239626850885325875987453919807987160141132542634055626305206483097118581744592610308908882555466283911943445842493131500540615204046988269125950778366009948526809112624601306175151055461236117594804408869689264304968178444090527545995819892768570463387280298045617673536284430597235308790665536655248747701525032373802359286676142983617063351616581925357309584142826809068251135501773458495236084267405792313145374774031309926929692277083138260927895895618015838643425352093689962001661741604514236119629217380898909173324068205379407535353016154811373695827396443205061088975202411215381542120497816994863512869249610990722297716263513179541174581051120172141697444141250183141330903483813850638272760131053952717758768089816709189363575971481748151478708906110070494306592939032093717464254305126054583181179122108554569779972848549079094176410205889378634840731370184794705374885463580577224417376678370695596753391485092504483225659029322802092186488041086948373665831218814724290232692487553887940136747409217286977054993206005691867360551777361169026246897315352005009632475385325027888888250395555934556652506010678628517507358968489955673024712090211613084403798243188079489485465032602888880298638664411814873790596186949944130835818834597511342568067449760627347139893878835156551554324706702048513058730293855351638355011937127435501803167288906817493504902119167530194469160528910994900157497687612729005451065006709863161201953625269199845346099335136886256341974739001994958296847753315088003216100762109855718598107171850771789080837261084360305947470764245691558652178888477392084508807256279983790717003628867011830073121628754496442110703817590490494759357709846897458843368933204603455460007034179160965288781847802148796808506761737713944225456728671939907343029690824296017541447705859772368307897158549695009096930468405943684714833206665691518902742884185536546423720394035449862856506360862913892457729784267878031312521800216172079563530740146953260145933608343950203867189404858319544099795503747522049608026265871202310633608475653777718978447580508186847538183550073044321209388631316372832605055736261066319229579103624337379585172671824559687231554741759930320944108697010611044444730090246388567446453589638936828082854558858444780918015240095864591218413338329867185944014369543359710701596372142663152081613388205717019034046123231910913672606204770899977990626317837177334424089531882684510882970006206810808542453884453937890022200223745613715505447220526361873524329150082018727212580180931438788075387039048939880059550333954420943818705136734465099015139450821043696136713380576686351395952096233868805558316838823255919073123419039112013534106723492467578962205824430320649303523563463479742536876852458289421589359769446623384156584395312819871335259258181924963959641480898009026017199653217003602687090332321278364419159327951486226446142315764483195276172025402876574433869300387804281232900388497907203929228929385655348785904455685034422447569499848012737168460711639418875888402537592213040860034717683510989636310919246226275046715382764779683753874988843997849937948762052665163362136457385780457143811717482749336791747807687892727410443540671521366647995304179593391921113371815548503867290595504118025505649960018870789687468504914599501821844237846548424853576985545703198338901646930945303300855442024670814807269806218417633437052622764035656796353408878417760650636580484766226835236282264514473125809684758982889399411055617799086957344014224109443068211262122013153677114896160357440360280773065098438831912153377823542959206252733599508891261103794571536628336913071363732574350338683767209039412868421034621164366147010807151695182102506082135293405112785205842652641538869017406495420445957598267719889285462730498878618103967265673976200999577616073492170204906273955187826937181418502356075874407503457978392353225290412522345800417220794770576546416002629290133496342513823519920151466020572762510470839842620858093217977514473786345749246564752687644525433774949486649530540602219336946967001021177501783242666808725932630330049068505904721516644192643200773398451055819839572150586549870279336769964708932337277968971106926106889106548008162330607958465800436020702296031279811505297529775862942959743101183085857942191420143436884185019350322325542580155482100990626378555162535424601095182948470156965257223541941121025666469890337781275279556847225405960670323495177735606193226494730200985268092796264817761914223142808955944571710643226305176972263454010430258254905398771495302134889182711644294501809392366872983575581962794450539047379643009693767723828684667045453551438944197879019408347908638802756288954746852432619248226978904170096265339418979142251193707175671157427753060331318354327519604469197730453993796854475058795883597689110226462022219468881419185878326761695387307100462570281314163748051744299839491232265680047360235785145700954064487386050428056472511441531772032654225063740217015504839923754054814066426627438931341152649666863238623697868371310085163593611408969636519766599531625905346410056806846966277190066359893141869921167816729501750355709672243482452262914457086871598374270671819203085316666354053713601745001239122753535840801272027763654728246565417805699605575837024496526933700250281774637503784899504344665748289903688952554886390124786303790762151591498666504549678084112677339871282531261614709823930595291181544768178159556990551234332685461869793539897837548654430586189130601980178637748822319461237661754781119594957037263558736316201172571918734051884707102619455862774536083450309228446258377085837807288861841229092041026562480627694488096429598080314972620013768032478715870990671353536527791063246847178713600031952564295454019835791927768474136752696155294898177981844280085424313563601099932430924259151137745530059847872349104529247991388402505531659892462380486731980789650918475770609959341312796339509947345329570870957339704337551535378404109047618665352767767383394818195674189384312535477697357879507182578374294782989964505377976001993048630718476342564012612206217930489887244875462770130480179370779648424172868249801808377248342749569057622022349442218959847539333751005483952057257155865398320253206600373825159610423761774617212816304402198064219878544695870426810223190548339866441507924973944439931938792335854891292562634589102295940214407158667249312854783612252749008437849042887745706985720330812327849949001271555116130240346785356530974725960352871976002044822342782482341014394595140238677117769748062084242077055814953233784781678296546401975090283432457727653990172628989203056115895055634814356223680046048366778507947066825980339886839505487382776647164359374904057892924792188215870267101388325118376157902156559258520044352774398659660343200025276026525707487034375861807904735420299136306755894252948551694728880190190344451634336230573424036413747352432005817150994167641192383475884084572625195907556960361309955546650873173067330764471605215679730757561894646339297443015540241334395612340629238897466934389164976517536207156106860324745118318260506573641332792312436292744838400032563700925347955742998090944309345610186597074202548902818087841959341410074680827771671019300867020910270844834111358762244832078601645175016765719234715052378575146919322718815342279722353521330093814894907850525601109068526443811672510800729187312393053175707533639339739477563016837823810493997847363888157694570040280324794411953030739513296014914633860290350498048524410879725499601357828238134022765924765911241078614931457106133393756612598914719453624321348914996971338105469872137618394847409092278070350530267387526575094200352085705376389262227343675920381194274238685625437981821798291455789515625898313605683824376569468962941664500483368641198034458932331085696367623355488445289304497241883992900470322819232337196225342650566671740625364850695713228606770630739589103937763688776317483744417489198299674697921485945314755535939209328565484227139475108929543461852450866451548637375534391901469042106746476651164451300043916950312460480667588576607576932209760393461657626688184914373633700662637279753976732291591475067604478139529935961498669043758560561716343233083020712308985333248151872756482016558918520584348007862961583884670708890505369938002342680889788292704560505160989879533450353210433086362733281824795669697096502519988737201872147356958204800950537657715898760703641816889251745723727444933476961078883737127953716522766933852097346280725716100219564736159923894123020634171804684594742976849289366613645973761229828888933242878455335362200953950510170399591557857553739066184126113842748655810388172461534046774147356697512592957589125439214557770099292169812744486321855089178519875297695981946432469396789257716117107124118963506348981022142958556512658677462330790172373907643771668387588579425432614018976198911367463017983822385330985862569945214358233194150453598091727451058497151495657908090982189510652530425838571839988691250589919236709073570807009873844170994658358581765066098834603705427523950758845929027433040269128873973958185824541035931795941252151214776600885572616119901142646917842424078854504328830298190385123552803739425996432915310503153873856210016030745902930551776492797803778912769455493143141396337407639124116749738193430723142321442519714230749809135925750345286200901054283342962075940960602455877195404839084807648329903001176073871214164886868578439424107018655963660107140572468954502153937245092357739967605048883471109798358970287273075526741813327372358456816974496245454547185816627948344059844422574545409929191092481030101788097189388206277827642035856622880470753953653813900930933986945703157899427901447700007367517420112628040658103433871711507262185363658838695164284627365560233945514054300587362471856470202173124997792559050567762375207364922880363663709883160145818699787274660144395655407837091849951097614594380751237688103757851196596585203186377451377499068594313257926727303044012548105797998740015555986327700937212033883517107946857507888021619673165227646736914672067533355684319229342349781306145795123052802745671194003005969729247185553214893087794136041634826248397547274525366414344015361133711548398769607087341008599398995415450472087873001645024392449684617499814611180189404215091179747254167568355328206748570045991639466288613632764130628324275968945629884472951225017312055668322799162235393000584829107304844547361341126585539952193665593107568134769257998429777426942504415715187068863461467506212688128248050660221051642074986334547507354827156977014929695739999279620915323570287568653499040885252092919455060631181023455017504105602886485861947182325939604261541106725139306501755739660248927540758717708628443124227015079472654223396512091627724283604200273083749240061090787794329407902330100231613129894719275736685589826349115147488807130378667123323332331940319282050168291213395573836983143966873217531375120204716802411441572230518461655757455405278505689394770655805025759028345142667687222350770550360705958525038669372546884484677706977786054234355552933254023106765909873676343940322828874948314762659156176090553976933822138701516784597942728448143062449090513193696297150512285052739009075373378883355673735710217624430989608951060318315523705881796244674707113937601768548962311889778947057985670957072433540986326533370539600866568513548203038658005660760888446244146229314537873346470074935507834452670137846549030866193703410246278486937386440978379321061961265251543480414377606713736114342176842345106982412651933631401940676124977691895209294867998813868828763686770826286514375898201676475162135217048664690247465799875670872946493736979324887098517207233442179383365576650589087552152200503950079710070943289895266131898044319924118575873733428284868586032905543372101430230991752873853748428755879036442028360303916954766317614197278685479878677343443310409022377619850813145387709017144758516049774092223230810037271797591994564568884620365104256850007760477405808813470105711073047466093263678540534555062328481680846539662210825262646157273640584803396780943106055183858278191568345214241522154103556008291289275419201210582771144440357767581090029699821219551249298836574921702528157135894013911121556543887404884500084195209646096640883278424863415536965193202722270350443543697729598611489879583347552022737685143137502887694326395217820822758937410254598185294931220025747543647033315058157919280437662661382384359104263025759200322341504033301887743184887228323793889794424767380567862031352150315869446958697733604910441088915216394974833116682307536783519222866631990031183158690876419302972613721858187756950475811866167853673728746091956643357186966452244813315034701016129828394453446675240474762380334663656343882029084364296223323873908008169782280808999683921195737168479665945327108963465954476549854341415497160976874564893987934102505815105811739183882184919150281605371654979198848633794218230255763334748520453551071941982904442733218953839394503721803800558890819083531128101616473162302037676075108769380047500742101946923147825397303266745582792047092301296068212884614298773668891210841980720619291845951891618575697002711854673191708063744627050773670435394211134261761671026905950660861172051249370280741458648344999493229046380291283244882356628672131694150234561406122845080963017988517301939972844270890576232416513947216319355511109425369078690452943327387641958776108955268019383079085132622479256305959652384623825814265636221534859965199009658952986514380975634112123747297254964406432082962632031427017495833292546730841601491870816586344965964565137193989480029351700760429141489537294169102318123048251238375662694889801026683192470966567906205024879023959674133552441561564117506272245579607231640391653644174075929888557888271601874031108465380326846478020010224616588105786074511070019055259972520634245713634720339657332831036218691212664844715630485583471703602754196337315641748379359108618049478343600764355921556018152950702618362392917984458639908812821535968538829273799735778101356500805218424121274960956046962272221887831232026708007286036923377008925021249801786658353350748123370092911763417173777326658891029889220079278719275773062966568569137740365209449079552731552311747976907758388133124965245504343225704913688645104815077529585290232599543482813050860343012870894753347323203455753773138776994662745031137218228019637309166995384717955830760511340615530573631817141739348903643052717560318186585341723933071798837405625859771036401716942487367394451759100665254734106337667596159501666414014896217190802370305690379148763724004103245850818725018455123322922092893731702218923926464093886964123373403160267144596073516625816354228627659735661102842042556123086984870921912973875709078034304875274895187484710583468778398394877990935951414691574656112494536855949354219033868418758498633485571310214054146301155168688002777555441858220864318111140436726522242633281017475909273177724333891586807436737578628908917370995348778782654423284952750269606124313334242800297308668502473139120984700286753758679361461780337565785574608557494616417835536816068665262947798170824542945384466919722018816142241267793389863291980375245917673764605940671465472720433634162921263084776141167491964898928291493785084291126434327177377570399005990422793195940313664459650163132194380507828528185308193424525266316338485506341884936313307070029722730793244792570833666379817438385426481161865120932061909154721445380478085014978032224693789379058291601608539632759574259900293555242914233505784402411064733805904456385509897391812293600758675139577902364874598392325899930676633670515153207098344606818849927535013765130999624453005881915419512199480450378487508538979216647335351361265160622983174143961163219955630424255010003995446672181263296742827205214917369116972129898349950372832546188058412624065262863642532798439486404609077916837927151877460496081513217503098093072594717377697938748064113320879960419103309474867602730412042851824373053907691940293308569286547040661354330902430051243775811890617652131065057438870363270539566626492316925899669262041466774217420857399969374638906131044260893520649817419243446422135817216700397772659936872381230492843948346828416666636461026685081079071333044407753068122661411349381388519836025992563532083125255071538247374547251496237400585503125391245796217606243763719817499242259136362880840758209935408108918762187146139973191088540785405587401942775214578310597276606462328488061669071025613017743214356048647765909431567961965306039958150784177212443426379035678795760726378654159906663560971218114841527522304584842326190087925309926118676554827829123954701578392317735687258359048210766062272718441352556368045202047422027971956733153876332978713277156645584941364110459802295342350675951320747402407622601228181211283107116920711061132576230090447317567109242227613304414752290473820794454843957259505415538285262135713261633290698735719610001116254382846575712721848277041246538944594338173702501614341436822914478481981534557784903182504624912040261708279985281205114100843028444134877740702569168868949921685724153049253887442352799296036788965903135321340148811530046822806562195473969100287792849852908641251625402270659901158549899425493512215235149332780825157392961529244131276833931927900426671349047596676762343839045290870406062951264416273509460978772436814218263588648796046028080949072179051456558977531984115667571072444350230282141310948719670066359674288434503570976471391163733200502754022551418175787405743115376317782387207406216613833567817351832925567550702203104677807897801270342508947544405460234351051144236372808325911029090124704351777695685205174455464329968691225750784544573850469590558227624771970436155987024091053046074751618829020429675603199717654995621020513362286150850700390110092369975425286703811630338458888277529446406328271161008643665319935848431434585527485092938652694961733380187176634141057377617636531066719700167481009623418243895158328805396034649830103465332897562314892622877987293730946976002189847872120750189224190973937065336398529295474404736139122468766617227956166317639396473536638433863764622771833638282126655450099184141799519610256685097820291201091254733159700255552739366679857623056593187952039109733560645633923167761824805427774409729065144569125372405289298863781240115409750929490552906090031466772295839691813231960872999531436140243901219306814443653921287777758013400832087648478409363469855304831950752727974671670595251598664592627279224946314814693061518485659976980742512222089365025410936887129079528219448170078070091989410134244093673017391977241902698366862660255024082276877022088933067300385418111861503696648040456294693476246972427147620540022681443569022206121260706960362293200598755473398345437052945815457115767566487745548243655704572583991617203784708520070830017030890319633822324150141622373735485811973824305622635540135171687237177335048424939900573610024735484394750758892560133882280383842333840280071450904221627026310810921030625042046505066207821616000428695253460438835672140460711299130578794344484799408537815838865168625651079874538653530445989960924832130136628302229030675578151172784856344074534792534906254820614047109380647602544735150067965477236723160005217638886937870655067465268416226768892062825238252366567928431637301357154241057704972687223401038199310967969586761108357490112045035736045419075915530260377469844427255747295492142115530170679855495171016068851897522268195369986002553687797284571999782657992856686675959773693720487062066491452399184387401915442144040572412335806234807986811165134520905316493570792190998462887416664370393066026770080051945500433143575086819343097718013097048191812414256442975034893642653081551841762613402588261867538187508853554040982669736712931954385575301132255531158525522625978702463414539250516446559263156631771452004902220603235315346249446165571190932706161721416273155752925765065393610421882897471866021845287825011858617987880996850732593149480753380058823535907876710138878550849176771003989630546088079010947727606655326633699974719714267862833992952583076624111851346757751977960475247522242191384233207507538677343695671298375502477627981451332882302574082340008089899033467187580914630553090632303657020975564744907027783667220822842573648671926356885307915541197030629106927460317163626079015730078174973388610836272050646851115857567246083465231226975014353323084961235434203687167708714783519466361608710653786684856816971226043921970396622214100721205127915730735631963728807743022189996099836138579901066108208691132799499199976143274880628333531149290253617526289841781575036163644563620782169470687468220264476208807724482231508091435772451417575538038992718066147432754335309595658151482750364506854426696801635947235442575897334493079933968724537895279640585563648771193945807254434539490905195949744311198159843231070421597889576178388308387330992543400239733528600299545449737320592794015006608055410489941585769062839806879603848843249968673776027902689299511543056192987750304325578403053697621697232790974255548235837387364824394254063788268026068314887179720125948692638781178715930542436663464544846559954859436674729169517169583473392044806085450871174635366092035620468161610046999658855321556648109121579837317458513959568322437245977872989436097385336872331814460709018772836140057265315020816982890999749612995857926834947622688347444555950339057157411920191271729675664960443430711478505532648338937152872288616731666303781637302780451041275148501147187567825627203659455186478241645195184250715682284939483000215295468799644756498623619018835445734172028910646870665427175815471729483441673033827045091838019048932995352628532146994465719232557076904518402276686329640650569586354805662072547948570935499387454873969136934078229605777922001511188639435604960169659451099980459430214402657833104108118172615206959002837451359347601999974920842249227222366848432283695782386018924431460509560568493906805701608565854208444099345373889008576446038802690022675184617594924502515315657820643225159549883420823040566495630769217096671369595774812315475982626404864873909657238375952089674004532791932998831052211816131568719498746487603941481548188680058468372711445420613281630980845370965600418268128878339153610527591292030824407527100883612338394311317326003506906755149748777290699104971022700779833661398157141957946676368249420402706677418319068716865615774059624818052879042923616684644992277527817989339312273708046792721195623991495651324410012005489094273628799399034900370556007487447707886987191686167507682302362209752792791353136882499762764938355661640937916312363418215389382514367693796532347487274064224288161953262474915095859702528694139933689226275575370714986242815315231527683054371342417551987461122090822323098369861174578241469775903303994807690155206726182590471411359203768426889117452437951532676100202549906196981393383078236375693353443608640153659688471345119219058098557952439691565790852933042570837761457151277792025360413930404347710528525710521585038563852777897028947491021101993120310111711704944518897350256522003883499659534244041086325358641649470612249991390895601854815949024595682896218418979679792264732889802135601227032495134400250141349345249912295700203336421283429368419099332630510322443614982320869272206230688353146500884499977305034632357224058866363936449279818052694805095370451863986821931225468997304102833853960065272744296086565684214725069399686331191717009222074844199075148327923639181240263571261116833416287530945508172921459722013560881739001567785086043318145324359510793236708401768898911235320180989023260672926350307348119533489328089759419807277694525622300106517266813240279721163692544119861131567357776233959892725802226534091725347116444170321703214749828711721170300975100802423548407942541508594453700131892871986193554746566918139449209864636426485877960728308692310144226423205891557280930028618120296366537827881651725802634852751004045346821412941535503163872390931583796081859621252878644009533037380420218203910912951550473758952714966231252720934355200746533681062626514566905785177632767637613747254389912211274049484598641856726354362560220907887212178165339419325495015166228182696943878065576861467336430587611717366583171877769308678278765272168405521330178250015205463373992038789200608851694586007910322305151860757790499165672898105817790985739722794733760755254320717095924522298844760601303112782150155994879030571053868888383795825914782671863458678234389627877626160889501166357264236448316579996998187418632750417710090341566074691132811625928518825815324386089178609459272320025022027233240671081997668424033641397025484287503453555431672185570055181005454334063519507897156009432061969345186084749098319323109590185364197194767338462836212619813818776904804122348595448434346798769230283786717577216963834186689490866114359597420801121390674268809874563323451850386980092895362759639140853877263678623958513450843662150354078211115101608196675707608274634519009147323464991377525594394008444092317253586607473008922450472103090376878796088056402416750706945049974434250071502428025149729618286289202749889433525251662426707765683135010942919424167736137258597019371828037646660316908594484005264714427300650405865720046100220073124010637177721686711835250480933806149548037198395136395344378171929787001669695419323144568273642498030905903543960144236323408226155786678028893217098628651467505881299178519402286565187332470317861424050266455795963042543159628981934267337855154505599075160292089028651908771355120205207273302249147769165785467627663755808190970082288652702821630398074509594920370625367640948995213874099351532969517770730917164056583072479618399059064674109417871608855516455516613936623560145836601211684075217187511131174498595498765377832036260487772952216665882707290463938513808887459628516244375830066268019537108165745261562861529795256955150242139953635575241349795330057205066637417940199986880407250048377499933863983124868059863360350445372364024496612499750910360581244867236794659309826540144874582072326325215484062820143226360381048729033833281391779322752588345961247446908152531197048467897495689376658652252927831191411640175654545907709008571871406536752108970413891776084195174765128528720702278553236374067701302451259498934295878190452946954381168710331706867261610946498423701162147603522857128635940300899270463229001599365195754069483667741466400998329830309564851130342264472143166859529770686350513741406479209238200601148884348697395143166217214490823922493000268388463941291255683079242369131135967499192462029156654678500968831245924496416753218495683550317782575075542192185367790690537064142828775293176748746913844624680326239996869658073795530474396243779980438353890185851102245692457102633925675105246336730097485404460145989384981437511419838937826605520013267782925814064428254595648918510548561285774937219174939938338809518726690732681986890747261771321915718628430775295204066256014738486422814456157007951475942534639623504456499030795050623997016612591015446638866247084294586306862435952110329486024080764570015588767877137605095076215286816880298819279335560268755686119133433395980509512153491414676452026177735460715944330500503641624678485231866474833625660288708890799131991032140193844071026601972522782058947542730009376782650699157458748721206405079885362280381873269684479759843416857831527423431498128079557507323593620952939138929310905303790063682806827156281698591301176987791849706471286503109336990547677337100165706562348588535337946077185742984547982737813826931256955691335613234724046235974210276865362751743140354151617923142382890240784236551563140567645930801555724653170645560823836841794189475391127566751401425709781918400761880485329752828748538777383848139994823635994410751414943928028736225056873224756454125533472024309605620090617686228288974425550380930054099102150979850327549548904986298682232449544049011353996726801782018019836318960754907512405312457912365705996573360901214959891928470901829763808758472200591392198973700000817780272313515958016781031551052066937705210732741214497357310929951486656248269170779725716486074839814481415545465774198266031729565349771679468894030159924441781594567528567205514371972605738698345334045649951930778604938468932746885562576408469554092330933910264108152911278164421463400962400597685093010245138028993398807737294580729873299011975453240664710536745842079526324051033944288198475282070499490187614549598993959275242098994575946286435000328688935137725373930999994360154653127782181311086518338539795670213541192305119523599661530065638422383139243949760755852664093841199439840838772824081790811979047993347756896607874785717618468984049845695888162013070491961176198900957112220925984827382449270277533334066804717447431771653064391051126996939714527351422644947587124633919193745154919905663326022708621951412989972772470968708226078694901594965599743138010248684418230340558700192725225574461624728828556306615180223346143726724874910033442097217116514666886183425524885274304081876782214417423648062144588607145472382260668293683786887884413714151053375163462031286457668991724213674578262695264084343032030030383431717620976097585554223247785526130434716563583944270538563619584583667195990653932199015778157514865643624241288594785072390238631807463454259489062412171514691392781927369294451259115291526450075596418640759178840070940992222070458761725679133951235532619320929335572745989339184175788959741026351607726689965065509793470728023369822669869546349177270134309508653046446175506289455729818955455459039940494254010919185419340435410172821538582003015511288816113603486459198513720490722774591269490325128620767628434437825947647222060688884785151572763182091868484878726785806581463725546298662602393503849357193804401505252163960511686721683781728141118531263221673153381617970070199869111778451718287562735050271431985411724135157675535297666659280995349993004125826074048154157607844570941629500447837296353328697739304755235839783551660513397691526663867575257178975665789602575835543506994818083586035391964374559969357868395871469420083944754930147999475124617764975862010951336180585185895821121583239296068408718751168666276280860478737983770970853601829429183129850797296041922569085089925162127000642616820486509163442289771616372941063255473799498592245776290108043382481213926444495532659311382909116380767377064892252213223874462291066288951746028908178189341348220090370989356514594837387778717345996189088537701003453057266301836418590314193006133497289322665408079508687375230063717922645261129215678448841775106788109743738563992625779979631843502667548508706566102161701722514672461950975634621260383391254311176905215240745807145082716389234272029367505569528313538440472028672673797227635424254652731739129874480969001530147546278452396999163439907716474332722884743375387522307520646126050103778340209886664546023700490443771401432141969313957042671701746900382061719109359610108236147062884533054491342333759597686286339525130802527102286805284174456440815924291526800435090558466498154029640962533830236808989971032488389192548723953704740006673216614848714474525188076864868044510874812598166099610133773523751625028828519433956252288512704609944411827858115443261708128027517692353773766073283578378254911685988074189433382559459193419886592782822480390058878723117602780950312971864325907065054991486657145045211210504643719128183852460212586162279044958066682114015371936126070848949842935432466235938279379638813937055834554432493457436134511633934245397262099779336649183887660387862396588405078668177681473199050471080282097197622832142471350738471983401145619515242905505678884628204639917133182988566236762620311298232746783869971494139710926316357134344362793941044124775231930279684092798148026593290680164204166203571296067791323142958654777624108617261255407871892087777479042938455774482822495854378630921670587258752660005496044705667497287192169667413920610231979644721259283659843969759822523370206405076141373894911477055188204815655225255286837331014670464802894271681220098616290413018594753341685664706784778065272487951950218886448359883585559261891258151098044167072173239890831198367708433310630982791655985129993874931464658550234140344211609731761178021614610785296384424297764051811219922037798388630618679260177785223528258952894844465304325841821705066146149190403461140231347302284442454255668203378271827003162737115797851169394277975119178338516642221692872331538551120942088681507594793049267533614673070124191929157767011238506280928449981557722719827358189010089254763264073158109610470526923885121855805088676628733979064637308643210910319175680277146027989152291750190147655476022774205734524618391286407444547501632435622475890358614736438818571383327934778965783963936606467986694766039537705842731713113826621118639177060185098811584356373560155122270025854091890400039509869040309891679085178623310137105703391152843502370649149750113106255922286033334718573304157970352572848997947122731001509661869295083431927087536008164296432014067323919916698434551095468880044784490096682213873845145724679188345697185710356937205146314050086909223145916166159249860785113379903000528151568539487341678586946574276919287023861621497889450338816221466132909398093907565109234090950181448233394079252746885321096531253126445057226342367815770803307245200211888607561746844758805084770666263156303078880105684045342819952414378944041115006592860268770357436217332046093645962921952905410639941373177498873534598681644143099111700554574342628923420933023614816568688164035466713810931383867387272402045980024748855078947564662876140070628735835121545165676753936716340777835433822909347188539787164009520008348939605349361090160739645994172493281658534798761673316049321343023864705465941441340239215605376111326159263192135477146386063518232355309559039632902916295687180964492127429287244040517257258842520480652584036903397396863210045252419205075597406129178094856822609842187952083880861164701955531236043137930152449679619598518717850517657241018094834725576661779203246278763654440274509187679607944979618222994255094896475066859202188418965142086054906932814154271906560880049659579134491640405174360582239757743900908667642267666546941266792056316478482330557078744585381516025632564498155186441785080782560122088898850868700764891052337187026567551953811176073934038322108444355401648129532040042952634464964296576110369997856255157218184296979481912039683556419986216554561968190359034171208878624657414494854934430100016773915796627060058100822003028766365573545915872174434999774758323263922474081977277297288316800058282738268953853076083478628451887147449079690318666418650517074929165842270442197010613048568683851480643392127403228013092957866591266109871017040523860917945342904763977529471494413536219997505193057443377292105092395721705891872389069444289267534123761295987023719197583599226566680973631028823350764208847932246618302161135029524134429248295461356330571886418688145765286344387807258892389000053922313700930212540390448185441443242506683628984598018754786726268606543416682461626049783026610469435531265186723070747382815489213592847619614355928264077123454681052484618955257066020324087086878258605982155748351616926977801987189876617621025582482367053643275674066581536647668782131290339066015207885197133747450680592257136118031721694232195805096193434709708458414638278795456160926527448990278377597169542571284545023446263224095010582174473551822296843563653211125704705876908793245775282415906002862138503171954813871635434339046665795656549029991561066907563677866008139470999785092798600255112791839407514379666223990540098713897172062052562423326274178615456458499603171739211247250543894306830198864574300453346829892371657181432674735390685280251897201519768262855922526519474182940475439893465036432862472645673333811050214055762446417663658865402451809967737189020248131119076127570441791503995335559670447123143578532388309002432292599265081346423560639747144073626068997036932953153702186052944814257656455830470649508934308241708872849457594581903296878260874396345330905135101793986756292516323964579020211166620273057428469833609445354444958919072907502154600018036296609389724211185524837123950827243063471121487576330552353178983327744074822728327970066534503832353656879128974985961280474538254446452216471012565000509163271888129888423023244528294990743696239583490352403331720757783733190583048093826877042445904025250164367321482072466803082974926926065373019260235698129889765564747028966877690016477978586425327593485023436787448596687319240216430685915384937599387625481665630607507323927189431317204353112036378372311781862795449847302532559312562708738599420106540790154082827430043502597422186912173622677880452033508490726065508836051154757426416488446237792320821505312448418350576237401387830512557271928793058955091543546741595594858722647054925870259536925434175340102596031640107642858372751014744258158459497922068103638399019675400592649226821483170513210707234895856800825514696788699674440777226577475289937677865700243051451106403063461191513002519375558619098803375119104864637503785124888249850605165658013897542478532347237812241739559757136274701757481198175999171281963117736943614559437964315946178476298036641180138120034381695764694729269757987961917895851274765531539662918830308739545025577383326745698647565872791747137082629898868880558620267533305443581394420211668677843824989519902295108934797438965254993241016402798000983478298618508162974503864731694544857539824019717673416972324270177368419993322920704742565910224704403242907374520190180114154582452234895174416795329557984345223885485753115533656587377312109360857376850049019313916634348204315639162747772328487960310439067717241514147182610007646227570609289597109858197807673891108312085687499163677792119984589256023061558355330278048235311418150866932835880949049133853836525151224544493326353135873682312202611612966908545802936516637376002452337679254438377109888019575747064756246466597838351275790234842475567854192334347434878478243604318427186798360037925997942429900952022154061078563806191250770291930527986503552371306860530603983690908348699449111128441743321203761884809212950498346206909614726751630635585337367450394572454965098051442018341945257154103562836237796768945324158067771151781373117586917745848548587126171306494351613352998900646727734145326262534302388061799843042253697036106361455544632753363964323836073549517920209622266220574354823585604361722538008945520441283503968118401755195277306405781165873069034854810344020217226681309229943062102939181504766276472756084561705327205098406002075636036437474246787055047008314211848787803544022215154634007310951145413747353448048297643188326007453805799169603861680964061614198949134591598635019620580381074647780651069834186671693774713977367516585508493178888063320811200117789864830095866907196448195530096501883592032858918414990550932446692293982624108287918431764182726574319078621885948810128926380533620662464933594151126431700372813156152085877596919353828201885063642616851860550998899410920048899571547985474509196059080893321225658667034892739774377226084635003548613903778429237349575732117085259746889953319125763231534494218322732401951272674389562084172409607563435026350809856594522912831089363725232393198869773144223587827834631672000175143856316883969680748185069381918337095534935615154915918809861450416983118489159053401428098910238154616389187230023971380281975628602065697339874777991125287000754437708540220589113179225239662480197348722053845312717513839283968560418324707892456945312784292839659314206874435533871369395411445193778540561600146913644169754703794130912292493828293625209976690711676862046856325363305576987938301292428732035461452504542528129652854958243536424625815044385036645803688589926904861315434630088226378738990351367148756499481308258750134698632652065137693342264530680672804557234194057262574385304613216173426886328647803716341260798671635429115028881460718804197607257153308897059499785168317800722756540100241597717062874052394489082614113394281559252400297238234930105134411577860046950085651025699352191648498032609323709436197708597838526435469711798000042417575077963431460040855892100404867216947669333965917386164758152844837216176570385401084210237073012538427520401734067376848324870625655696471756608963275986286140378670665683045729286741783849626723575419671669626695405265641583632760431047180208269351423009552202791441572536039908597855511256514341763530664804643311282349942576999230272079661453131138820078322099317461179458977357177041328528235406149897943898247583512251595149000710353792455852006728519207388930106627820729628030774241202924723806230178743689219480495457595705033157965284169599420715771077184956330364698840099440127471244501458477361914945112691313690271629389218563923787899475018404641328430550400356731197954614943864161000363708658316624791620104129336985878939982772792560330508586006393812005586693095703789686697032843426636654121512327166982766090750382309918501464105042878032611812748641621748026407401267390918950823704164878687517687916115447341776875513372793414617948733249049598307798848635326879194462611877945462405370174313147828633615785594781667978185541377921136608568623165221505920057425277404575380243317415825991161644483316154989353607278946050757779065621374762395437195238403871158579956368175943053348221954120348289085343281855589536787874699272615926054086708875147527108312809873430177403267182630197579348487468992834676252446678546592612505952369244884088023324535060987309488309968245278348718228814682536853784744702471333939475733750752869045548911653621949983011513215344068675593961154948638734321454703734228025623000334456958944912577952143668945237787091535965422577141714251106198097746763090620693434525709996870085879823529193886771208809108410608002138281782328487742047372896621424238814084793483709071775707685653218096449694866679491105295552011174249108547529870100860359456839650425667400329543094689358706554590427045427931630441887776295496913470885475875784579819572737407729062034190260873388742340109604444655525644790625219305641379320066470277284921695260806078607498638481016382205653742175128911455905277491581907694907243746342021734953275109887247635286667269041648228351940769299809478956940387705887994011943525019777708441432228841619815544503559768230840756157177280994601416328400808499119164442831861462930752105955924766614155059016649998976354703790013806171227034290375657473373977065802809936976924086121083250936871101397784723368341411980338488572879032050038891345915261740334356533547048612862889772628752083352867195162084969241464140040060777234263441587934055045159802879945310536882785231655779063296889498597613421826792151862927922383497449072595287582664417490731168435886441223129668387410454075469755836605710839975660796268501570931584935844164056155591221649401460249781187756449286045482146747466511166765383817725870542709604733048442571946598400570099418879453908816497629242554767998279914633397303405698288618758925002170767501009322466251156026883681875996028947081124923273135732663538349482466484019841040471003232731739167722838218499584127829297600987918017828787521780232042979813761594026770625418127925717105456523973390018277568125298886748868122639682540219021940099756007625758795476757061021481655698252439371236297459821472548106359173613289422457025438999718650372265892007948613116886470957906472586446275151129769451342751864009714756621313939547502113110724530317860407158429986705149299452599898659523517634599949641785026682656815433711495383382369165965777160136575543923999655552470714474489447826941270703748842149807541697302957991835874568176655023568345158235899641757071545286198032183650133363883056100163192635179157115505627023021762365999370532665768201833857726318739886208321128645898650561433697367742765388732108939144145598206766849562474745610703646300577083074995958779097844583089585803248914476738554276985692914150636938173739731921155064549918172116015794053523123958891648907944020504272465356037271467905712875369852608055433920036907487345785167122446835408327079332869071901511525542253550466042761079377397589016050656420354160885242428749582862417127178624402592089346525687740693247730454302504530154188668615919575128677864651765885583302627612624357050334524818819286437997181722198115825485141597695825400103826051993850207198175122167415778930625045905541090083354818196585208914103665006353827107691746955015039821638249032927272728669001473456862556917664454065239810015929197694815717253046095452628195184058984256754141594847192274898555976653598416050228282709567616658663633361572121301336881291376487257290764981568629126224923515521245854885594394586256729125626563319066822228881733322399257508045338759038209361941036038381686901773261549741102396773227674543321649134238118940291696434154063869998354365438016228022641064844138155126162661639880185418547124630337170872989320108212666594574050315764715558620960980256474575678712193505111901216011602726496217369608855574095648064416178749966152731823877567565395374249100680949384652065479307662468780476294471797925550473742848174929125901443518012665054673688516827122991359285504941158380420760247378575115128522365969525594014747716238155745130489563553690650565597684549246585636123403477153211981491436381259344788486716202170903250102455332832232737112415499762062649932745022267280525465063492463341013522713824656515408640665931740110726688502739919342537941898809629755087180683184656160221612433273164297423614408502017521364390739457437631774737402414371315758282631631600878451581831873160168898332199317455445645040468294886506905160675996904341276486142797271243607005581459476707686522976347964264065608008103692035649731760306112133706813588911583409613448588101248802535302611132720085700414243467199525693761404294998581855508518051210398789543710806585719143142085548929728196937519268800526326080111641587585910231964574978697046538361964775541225456109291252116173165556129614453739482047536646412829384541992595366714082351566200017638517974424146467075631665332408476520361879246390373111430285019929621331207534433796578831356187404729089324484564138844529523711996882503322266106197165643908778068465238592833069675691084682827628001191824354567739058652011385037080441898005704679569318302846698399955169708562674446666889131281566085847496289796785455435591742262877305626037082722792671634146233724772978602329724676628637316949736606677273021281531767945886469913832591048189866739939869692608890199313227859523840645845932965520743795691717091893796703942796423293841516721642823530998676819942789394621160881462741398152465879515959270669384195014067181839184337462407917039527516466478711251022230835538187923371998012341990000432781270483923419775421840109092459943535260352378459349304991091919527836919373626393837739128693086532279464020579878758306970737192615504879039653371171988932032497438259945577617973308969213425920170019293043711588361300973433861656841664009514786085791327964943056797775017256558677018380494560270098054670302687368836176006855102675540105762780393481565143352962505115557225389323780825834674716917395957557658435966328557114522055965393796305634071607621608247905010001301496643489361255831954219591338571131134535201533970971675453910858127858897475062144785049647432934766290580381030901943590051403012877872071942568440224068041623787561952761563426286886111473438900225843623021805286097540017329356608280580213666098138926634231865179490543050408527193088846638193002375939673388745954872616937331746461538972482781575474598111165494962209569264897776754676867113569380558288875953188820091062789123954941978666219100384292580943048151933987904215170140338386436012676058340672687466748768647119201103982882420327929534627168656914915943134306762878660909375512952326699090298710197427946677009230872413808479784844325261358687377666444978762077350185593185165550514866961136478572290222472483044409139029770828722770889608981212370365026485040115100716704411331024534902370947440695628959597008483718224381424779611145295564610846787943449141072561055052706542711774928843212470198359233906481732617450437839399675722538778648111028885778598355755243063317822624095154554536940871275888924813379682080209778530175824711117674261505902080026855819717763261727905176279335423466408431199310428731214327552304964232051049324391756321594954794450585498616804179355779637850448712555688284785077988324594642555990323133209270332012607612628489700373160006985434157865370601360262688136927897198198152598512765272000327611275123877347484905401635156455593494421097296928886934998570478243183149342007837985084105371937944975459428168925273829401625403029581097825085906541817736132083571438286823051843773967090523721078095832962026588948340879196876578329234749648726228829884142670617028384663783739629024620176066452247345580856188930894921032638748732989955402309038881756363173775224993919892573675000998587955131323385434325201301765870756207147172956069929930068073837852160562196985680511295160609120044383345517113039588387860457261217984646989131636487903312478084795203382174448417489648583930654709371276709577635850760687859556840995392556955205068094900913170827925806328971900513638429905879406364309562365436849698684125101660351474446120953845122516366290180612358778065766689305624606874853252798451296175034968157001743364729508906154384691979723029490012108610476803907459723384342640915368509408195246618904789578180404045048301394081996135343393215982993080333013908417753260547240307481890431441135371382293692458789110044093589197250426386497923141119187041914339959839202060855990961139570078947402076536701836188243465392806270397028578337771063806893090341959046180507573311677369973570795346004795954540868844019841529495896362740080129338656182900604791248749360591693965773982849308633677703543815684218063701118384708095269476226177472801834187969083538926763464355684706190479929971095270863479988091720200579933279041094337769482471077726158041046804240808253055358220228088782491945423937405515814586855654803372223201791849510030323848397224497058675502829869932255255828661832241754020323241774057489122746670631139623289648392861102932979936908462375682286518349291044412088301109225062150480836898637069827164980020674163427104210283692980854238718972868842545719226335223703935328168155443020066394542780126819746259208559805172230499118153872043024025323830166415623608642262171736640192834224512635191123389713841784062092946944228650983261188717540936318760767662448196299142054506982962062047641322241402663980984030749852096155686290128275430630620760622887328506316619086648984975657457348331458064903090486300552989233311669589854276976043178764954983796638040416681097528336006737416825522703244025989519974351022320170566629380100137571215634646117263282346183326845086598217825001390214210360693446423926410627584227432551666027007862398930830276209643277611251188216416940862971135901991220061697637813908971010042033037032954886704833310582272368774492674072099576659734368490289882835123040054966103188625138598408356118243480993934227032233468864983138460823920294152264904902753915952825429342566355782425906700700919473770478700128915369309390103566381150885359204409373190273975823519412808452380368033680225343659386455937897813217178383202629275160058863090754738757182527398560360500865840364406638082926321043614643595978769650330310964798562911104975409182157473203676608764604308820549011601218125636392537944579849816079361485298782180252748089761018409503863311340074331182597961346636287876022581945765484213092191076506350629895586506355388324878657148087693149118810209868137346380948076867147280815204827557686896078302079846570772641344919715561301693085374623195363780746480187266541245680914477008945987553896888419351411343008121424931057151934051485350517149395853273738930196949683126598252500753905671759113200026081216684192899511814700613243595822680751799929395859866306420965291936133957121678572142039252882286782896737344843377917059157856995806184975520760339639667826799265889433423572701068695230954954254905199323114246589991399675786749612892753444930982814643556985519488507602218289300692327826429528198969248762013593460416930335424460287436900052179648844544838549044855669227035406976830219970553422580591372065251738129914946436153551881962119108365650308742007679536078462396607774345132854674899486774718707701647158998003861505582619596683996527990368001119987532906031641699181541102084905191419851339165472856481106842339262513223505460988126126138776505450043040847347628362264066434011127729760920357395640240884201881231948112784076834060340505101348986867529828755733269086349628575503899684806044512902624630303456308735797332706143357967714159156402877605401049455902899332187237371481025733511349596280603803140950925444691473142190129957293112587880764228908759708818955772384550345440017271204223454823858832042708522725819111058413501218730581811509168870898279227668164068905734510322419166829813869485754850837568335860227923800590948577915354387184295517227049155442947570546087404878162642306816217033135644807693842373223356526396932845328950816737749402370862203775018506804904650622579844973732022888247968650265280867531903369425026589858948383890680989068410641925933058266476858298406963568240230062102102715245725454616411805067679122094889656292542300191433734995869932636767182639141003246246372544147695769639081030925787718176388940854866376486975256682366460406748384593522121804425476748586241758596926583983585066462490434400671603254005114626670300232102338589174987946703036847004544569412587757048577181111398937461009061474870504984650024555284425415716140160408262420757260463188762549113995512898283301765496131081256112046978031670245530084295166661677094656809513188191846410595421602008346980459432768936890143504380295558460354659067000688977885173093571874763809970168159358474361326705122641818602620147256184885308428940264860344063106952170931323118652055033382537570839967769785232601032761331106313044298634984790058118918423170292489827143237310646380204570083790771596830490973075471320926011621329931923846391966462454236480914030943755611098907634493762875050660304338183681744867859391248765619032872104060480774526250718726673009993190566052761598518012294204283880050348543372009907523412007044261577649167888380389042117250443145393972453323311491793488059125048248875142109315754671460896290546188524006162187854253948926148827184824528763035240194233305579955208110166972877407075688934053433681689643084962249849856880761122773067186932470567576936181758854728998460625994943391576033373442382996862455399009459690084495356224103340284647080200325723895847401058400052019293454657097074625408619880042102060275854928963735019471898703398071457408225302253091523985626419147594930184446032612389600979783831233261889104557030394102147701005473078872461549633488734854650559841023386607859986741783986110852456332322464336551968585484389054195730325294726076439861988443247839136723557546163875166523868797097892673002834289844178501691251337012980268652154811413238025706932113106714836270492318772178571665420355037325636559808892710452575487982644960135921404084619570889669973465610707065169689486134025558878084822256464509175170133886925936900891584069237986323763126909360692060060628999209744170206564716878257361416830264143644468623969218693653813990638222714068337481059335052608993177241515774492880500962626357735345646736161250750144479419152866151426717443946417199002750552551951218015872161407549234779308292702648973213584173539190377261957483970299856321475180434275826580368562670271389582370322950271876498674325511386606098364687516294052841515087794738709124207550609791736060832442136985240292209829632457400977472156449895991216140662795102525756321519178837198797412785582526363324362828531004139619463167295044581273195400406239187781942235743603261202170119089503261628990711978184882664506685399273969055656659082459783320306442162038584803227348444764218156658776873910137555105821238246925194819023478941521675973634623562375855804876448901822339774191242887329380541055489635598305272000214276936226075855532762945376076382569506210476956989054120647475669783401988411368304228719881909649315203313053733613564899836193782669041124882807459973952257853805083198160588195304264432562210329920780667895404004583078100388899575297097549972554174611272021045312404964753968381970300307769495760669289691499379689003645924928162677101982317197461683107173442332194569504975024094374636547883022931834206038872390284344031539382525332896370085528936472109715600557670313822116036442732243299095421303895614569362277823220942943599296140656723455958230886435975189347456880915311982026577189845702189979890604145459538780130675053093274602331760155380211073291989230586860712983759785757888687551956886741868025811560962323936553076336615892780128061030408367623648832381177877957662841315796115632384514777187022731502074265782039534052424458484831846138281044020576770482784632410073007535305841063998052991712436679833543210404566547228693731322570547012057454290610603931242556475295084792714076906588360913546999017652539186332447625176106076269571163063130611079533018276452025204529265198996588441871928047336153976883331516217588347428314998784365880909640104937030433018899478213152004084552811187475798145820890662017584521074398018905858510016174218950607644232031066094470384317393237824842594954293997870226602836723423899842488975340237952019821041553612738144902675137827288633212960766637805887469124953945647930886638445545557879422778050354608650446386220908017948950384572357236627861012976044306609541678029082947118148199775840305450748684071695300106081848960825066495054781279388248318350070633614714647239841145822557836277272467807262897035224331332181260076985883962379510051531033562297509882599296019539078808673859647871315668506249819195246654192283772130338897982083083891466613491614617017061086827736164354704015302053988575580269885974285267137766445529353007954376149381225534186819490975758133224603063533478505085849272768855817246719007937191151768481797629710602355713230657358133877198917340281335888111399430858845008330132436453601619794381864740119951452117196990390761052086847573023839235882616477069291953856574207034681918942918337494040938362690936436303265991134745433659822337721894288658778865951642707528927615047809400804382509219901626836049051662963477539313374798468155621700842417839801304996047703358617928508870885581426255366331922380086216257831013167642282756418408115466059877541702760682401282155265313711802312351879772589038838894319030866453784694649949704631781294979562550346443359545537267548600843994430069220027054209147929843853341523481989573395737699434326261880178965636502266773281120553619585816139322027594421934676419695225734054383611708682815753639012873122606807812594096041153228577511852703663841838884905874825488549715533286484409664229915329014175926128407508440754180264647938548688209859452941425258409926873657131027631238693509043397986950029071606023687570792187797109725868822328770516001074223152585695590774848180800354446521286200508560333534129843593752859631314077095444455438993193128757087682290825709289589941914105476460680884460758337799574677873569772264864714795253835985724510380812143664961416185226532541372860053256339412500536364932086214113031583857844961723643817683018317323927983153401782210739740653083745906621284412532846536825803448199843365407738614649644796605293774870059626622949314701858032729032186992742604688206190838652831482586446974571765843725338667788145455833785563711332300044236821797204032458227459609489659772426002035869505417351349270226088639715145816399854672359640456535833279274335942883597717416380266968312095401964441207735641818778468328489510257424355273105139987867463195950708997062266633602882772904684183795203500084965103584326261917817992461754263922378398827554620489068092990070977507432850009488107982263861657143297769802671721199624606219385342798886170361956212284229919824742557210447609153833722633144068922943883461001899460376361494203677177172454067150248894204606903819657924775553171545854437156331156503870880492229344019895969065592002630505021590833930969746705839097319169932672362871648199092561284419538330624747185464825680841434082096663720402708132485557558274872836459367625831152005715919979285839197529846300576585147516851668240145131582226854885579294529855083851340858156693264124937238437760987418748932752341490927557355572772364419760944783464899656462032661359873209092678965377540681099871501196164860153642083032365440251553266930059968219263533116018634949380464528410486965334194979397471887279186276590636259761097150812485588507183407961550164633015905894622217644311453203340679376730649089348505340764859252089892471881281963883972299755371403412313301420351430409835386061278676499817050311123355033435121996478468220945758241051929646261922720253665518392191704755242988203949890200367909033061582521225161742450894683296226120611383408335226778448446676509414706495586447830333828320377591488743214751199096251296133203339809055735217872547292291386515360124767704162059500314463537122350582820061451261058242251078279153155311793606987654591556926910897716441149355218340383984504960465054471249855020346935618586587033445881855715680290703903517611548207264660528848146769654098157886456358779711731581282814974387569195340917331033440408668776976397390549421152598101920547656657185842530790631749545976956511548537428893188650082369551904536014141848243692019601370134194404698623693643407837649649664620668482484340111590833248229118599681860421246652753764386342708884396321008513444753689551358091089196004350167004063650645220684542832167127119350783964153176208055662048761712372064096630190935152009146052453714152249281841974903513409129518549000898046892463660626119641832462505271263026368347807130724104519149981100123109200481048415537509562771648008205882157070563004307405514118501252128953486134054993997330215825415932837108041177874497418008501728584155255208969460999223275410640893929348185681705016856048879410332593736828686064812453952367758351406314395172637409358340568207681363054857509682545148237507832855052999854645709563777522031067311986007297792698652758510221463273935691499112835749302815886743682054003157963649475631583277236794604172200565405806169385483561243775882685769817288913684829628595594222784068077250577136762442462694042082780932555940634618606263090623272656610523197568764422460983992027286120894913294891452272613810061185010695512529172268183741491706352445339596974458756958352049505883986383491542831405708856923200301519265215136153061401399885536920677473490544592958784492688856234700814717067514998269616232782161048365266299556581123737454426903260485261801833965983670156251291351804875584450947997853688915345328106977630404326944525102071139500889713630427084867373279778944396442632244710881396714941646431273555598147722065728302557636730279961539508878955000889418725159932997433883294872768172933822493913312170104287840673612367037977762513095022006443231092393687694682594705724121270281281298632861854253570771932812736039395308978088532577391391154290629080974500182500929646294290616370845095336496968505231112002067823202992311518355072097201675709085151079491549339062629659576134390370286789593671982976910356509927128204715561469913039230028563841836230382044753759055864324056267747186651649787037980665604697379357996584897230651927298151041132370896359014419868799746052685613686008599405731457638412918882967534574661264491950311979585199998459888447044767512940854628905594790453242974156672923736586126456835274672190669873989070156355010570019620791758815163586863881775242061770035352596205024682126220350841197523760305813946919116002344870145216374746486216115046161936265510737725902774569086198041185551817990523673628698327057339843556828058755214589517256911417089263583135694019346640672222127217166899481732461471734450828036257580143604021333543570665733412954626599861835034298828593650420003563634535027291360469124851440986700202771337264931316119285904762719277276647391078065472083783582014306949477546221674835507250657474684032188964555553761534362086946487126827901442379552907152133597398746973418193129560151664655658289532368820781537342084827218574106983411026231357082456299791655133242429208153914587173112442609065691737843195332081575642508490032197102205831471952944939519166955861458489088589691845389105673255951659383588928104952570153846757997220590120783362959415070796933324480703563745444376532155459375398834737616090911165239145190686486374871215862509031702103870556033519447518311854723548103674104032492069758534555235566634857677030999362383372947352856176468482816510915616263088265722174448092338030626971078183376367258873404170538032095378169148602078393157100032231221353216692610463670865732310815294268630071924343454379142867357732025611217644531445303190131012864574245011118391068178309983256002963870083570006907389183123093585561449267775280572260037973213123627462475492718222040656703171343727808378508496722448492627862958933772644261401396963797840459852089146728520715216860738805502541702843916846099844397492633810112836394496814043445102678458939897010541747500383846956095238801775679878605274669125668280376476059740407918768274484332266242818987208637492525938794524714931485947963520688342471598154078475929266217037836209247721397373387211651934364003864064085156751637340572109780595680179604268467595628389068465113607320548972680030192272375048235948220465336243458010577659445071696828423726409747534558941009692384167038487015323759704671669729399663418601467003522315415618457866109679057463998603171749463573609181238649162699986011775760070200672794449282293627930401809413661550895976271681243544162841839476888854174341668134413505276926979373444990669564506477132008683354486579354759995386495284567572737146210219756569620066600634412778434382484816169782925587371699279416592006758507837265960548529607936917976956912960684249566357185761804135218427298421531539438201271484158390378290998956300615059400191432231238829169666342362889683194382615461390034931372353722882885690315678332002693739149412011226436786986381639428708523661144472621959626789819886880697858455570888515534826519635648571427965867347701711065113151285772239006951482708829338852621968551212534206125282289039640762797529715663831788177402380871336896347844940943013869257419792672078764378356967686012597779265396077140728551650948125434735209998800303559277568967448339122937364700250987855630759955418936411329513302309102843312073836996100174758313037230029055814778361525739665401142595007469087864428899660740548286487676429786633781865349289662893110415117486152906886300157195191354142725552368730825220648104590059966885497059889519749743728758522486982081531361644548633149814396973683648511644919047879075565988101259552327298964442321959097577665747918220488276926159175157521984605473567624198987350232646402710669000869149300552854251226677323117580462264258435641150189362276437761015342187235626471032856575944281614650092971612065076253927303768932617633233057137615531486803820618472624549086098669824967128166940721418417622117334002801702676146110135909190855788106510964930206527855993387005901516492457918186044941418748077594712107441891157586629125515543041225275513065367804176807237696116764415650181230176250024240414320500455506566762636203637484400701675418774888886041103373197691111673086484413531198290885763178383449945043215079236773099661980011965583834126042748836825803364215767290619885206036294630835600429333794729795434220259999895286562891622853752926453231478802163262514555060551530730335343213143669079532555508650046096575943869219063819445124836528915116881491133461379915019434272216543684281471451476813729693133830486472212433590162646818438263539776309854043097619509854485994761597382756623803467991739200751581527191059709846480740364175750690332746749453189968826828890723861350508417769865643295590576329479440301178377461707395280326055865143716420081740174742247905252439621970155909864442262900338071754850484895009906170880259365183753838189916839554234923857434527075011324283781677754644448559252024127044300380427746907593796103631209343081923511009134003639294631270228319573801290292078225465893726508187975402854362376806279629074021831587988243311775439773964772300913059699961407027116059349825812608304534627380694899329013772576291780206152015565520074973878761373451649466920781272037144285550698607777837843690114514336624306569213417374223027502819481327946054052981463073446512311140837438402220053870702888120787409361292283123327104729966128250600098633423005530078044782282233532069097322160859639132329471051879119898842812708277328878218321601205279740997573996007366924461578239479003609677608745129630756584524370236370025204232574139433383518970884080160973062785723765753624739998372786394907695387885190967354419671855525923845275010345522335265388258174728469397033098173227412022489091129776657060669781628076089612900658319879034700880610729444795269214932767752755103806757300491692845936860633312861460894713356050103211427585484053797043807773321756608954897640570479144510825797900685416432304158411824028914589718494801380238963322552546338274504059497934101005846574346013212776334762601404398036370743328170427999009591415976152810553066671222228103939985619078544838310960018404083489881090344328278043885023044803553771867476413015962374154601306376485655991927766439439682818464921454055681665278153313077389833427319822342594251521901126344925033800934734649551782069095653441730946281256089004458524697989999260130447480430243486439711659845322090376852777705944704925201446899104299095002193805523250077398414339962177360070649702727693720073997431186085504152163306001450652366615660574494581491450608304071019178323747616584900306399107143482547228865200019003078583257449695602451343868171065978475999836646660315193242219329992201725899867745942975792804250639026455331847152280769357401142169471142761836899651076191315534986542106172414916853995552119455848174116286939461864563600013655985674793521644779780573513839512883444577327550263986120575795172815186398391043536368316267784345377960850913395342293244641670365888858574075708427871065556740206433189267738389266380262348800036776844926008702841793289869472949908546070624091466865905818226130306962981091423242198332667186959725070696973594460582765405813484410715299104767793437351397801334277305822316122635118654873843181298487008985085395110216621746813854397744455618018692522754932862868509962000628233026070684502707562428440853640799364112377474795608115148180182730488867340503204941279735655902713967240825805042456913530975812810816004899434910454217997969713708175166807632089978986043344626497498852926835730654613561848978315949564548605605642026947878991398713679505327546929685784915659958076653801722813192455436846603898437454951120067549760718418868614008268286958780097757791458922589386200665069715780659021026959332665966245181363552017262326149981680523551643952996367707929596391418584780250300442759010959293796260703680596389609269657459179242753079138365178803203459480637112841544831747865347882861183249713390103266531986584773685318084014757047174121531095710720254931796434217206987970457164073270982697612590079477200667966666956518135429582094579751490260350345088666471285004723830110839872904170419709948138371972117311132291821701526976525370613681647926490291555721498501364152502490158761014564320171696543298898257187154986182060687408078928111350578201346852007477234673675134979492396555973298270705479996633682852734513128305943946381617498307286445647115792775691993250293818362222510408286666518716516832557572145645637414514933226335584837685780476977322362068535600832555801272618430460882594154647564557437677463726585711980177593458180228885338551037293276885196273956690312362966476109394602084232326817760655625057681344283348532746235599564335900757041798896000936750054620147951954089111961373101829813913170589928783514204240894712354172479060344475002802034871337245134402050869388874428080250888233936233015978786605664927231266818531836536344174441894375661557743587282597200221746913627958435385465529353946300727719827205488468939433366745333246048302179384151579650150120852431684597222413804954345880711268314633348483313570429037647163685312920293227083902683117353556079767704187850065866780087688922553994075124214279211637192786373733020551707793207711747469620894993164268120154083585177767060553740111137653293524688611404087343083817613369753566626387959791152702151557849740306251288582519118563379668873070076312230043233031401686353766253858838797771635881973868991698714542136429167155709080874627319205153813329900405610320777298974251029150244430227084139608309235812500647558955781219312943561166839304494048072510185262597220083954721314572129440166798388058742662460743547247097672786628219329665438201926334234933617430930990851933436610277123204248210342225621185285809019482386709144330412884297888998714934985282293372780761735843601068007933964870198667369643128859536366672754196882557944181863623025931124724285831226759901771122759593494717867752300271069899555571471541820917551180028031885406136110978824493302493056951934289010420790043076463539711569421612583493609833185840143342292913483367853990423783191554110066436985516975686070401438837376229839394928048482624732621193382435720283527246702004816596127074266040004194256414104370371984742999357014042473662391416874827775032817246166330315781807762242668004730484985542853915358747127503639106169050184759218196046439991877163529408007372171699118931383809212648757770679538592122305763770757093563028270270712558970598627929466005415266452269972649423440323993023462972889570496253960873940063503031709165374991599625590456198076745604774112687987547146821546376869344066377362948163825021764281580748235696234547454070077409199219349977260964452102605315446362097886530923432051877555302910890662222276677475138983501884047675377262105282790039897452397712884098349352111318712793765631071426960618462498477097444857049889275172220900535067621399905039393829533612732411743511407906645397817667090397822831694686380181796921311359920737408879945799672962630981647291381564394271492687570694541397717062805547836243222018539578970786544421020899644794540474076914547271246297559563744997693828024637528760036173374163500131763274522217697333431428566868816871551971933208832699252695388315245501189332971129906554301493208791668411205507085386679910838331494224245251604490967746305798911198431789995134343428701609711238928743134000336643543329147595062526675595364212654378599529515572160681923701457203598066599708496870010486554921854074590558778549601680747547302041407755435756627650128030073465872587181696893380578771094129167687582671459612588757304616938219668195006175276660181366335693680320438373114112926852092307093894061906538984358011181645572976663058619730882798404991356079858390405101785852052297378378728599449151992543717810936352544784247173757342908925212286307741188486529551179004963593488830717460607501564050810520564620298872338883230721871454393095459488059827648534073783127917575576255599185070533143940753776306392615131472215357646965280966948483775652527802410415109067494616992698365551522021020096680918534319402284099650944336840014854674126944876712447411603475275522239231882136943259466142176884417013093710738179119984639690660633961405536184216601022775733897115690200604934109585672996677547656287858269203072114390581061627831771709918857920338639331035826242354659177744294431797063633289889123030966384748794708816140795126439763598781096546362977679213000899386972253869829773261297748533564330790948971269461826629060824479783952442756403805226739526395925429289743357441364698854082175199299302501758105400448067059205407353818981887289016609308972696566317894025772276952537601086027615690616486743181392217424087071900969814232178097393865912281826476989739471262200707413998320433801179892688469731837144058930585951780535270908029918428119205396611320719146293138903210352275232531853696820161016121321065126885354828714983383319298460101967361055253112817534652573255068690641281453537457820620818493661599614721046207297829437612000130065262977620944449003535480239462187094890358726246916305059870919846443298351947894323158529965339835302342489092535263970828062220343937114646820812447882220967263178164505844152513263143839810370878291445696126562993352154523166969612393433314657767986286271100909471836690922077355663335158900208138088266994764658122607874606831243153939665198365925597103389056907924146962984141673212543681189237946365174994613863510340521588625344616419929273736062658046768756296472181956589099165105318065607867755789860609552089485863890616257844998992786941449488907780448653769487023385261846625850114206489984799637283479799772982367705733697525675603291491223874446802432489819972845977652202513450911284715069053924325242017116720674978853980128881431928235044702404362879411530183864929262430269642959914036571626691060122251000687676023626019852428069642174795209613097972692547294058121543439495788418807284915984471528178454203684393118796367974581082441968861284331724729364395074546741632106743218953988026652521621205271368545698439717472968460233014406343908400266180584412558058517056590846062134814766247346098165694327487606164775258573018375685335619779659529156178477785716384970043345669536357689728936096884210488857019586791349130657922772442105058773310860156333063028610891754145962439996560777994966990977510758289435273580811321401983073874542219201548800556450559246022290826469809932281415984637988483375483981195807830988382639842087717107614510249899130575685223261396230662901224439745914163310940500485100065396416291266936340963507737807842975976033976612377027567651181197684103615014713633902395167355807985175258712639019607954915339116751125986535101139871248038048947650188141855299877472964682498117397833570086316252028008467488939091531389558071709135853545390623868212125589034588545123568848814988883167480461876228711816810184977953076632420313477743305061539273671340661676576951238044463236653728807962026011545999819944008040782710649657199929333127253190496106461770997933393587291848230119097915263849739319163648107649050923461295230803437012966538006042256195473801162222800413441097510977081911332141685691295541615141987980754252074690727419253058667222645966740560801154058203413729277606613686743306212787263978812345740499114999935827523933361251332204659584534054211573488731599310039078718345585634830826170189978804710979222912099392059468240710066741470113093167594822756344401902595744694413437318866639757944730811223137721842690145752174363565954809334724060086570102907941403460093496211066549434722860929227812135701861020290891836687456562138884188306528470977485537742617312523250110532367749496358522938316520937545787289884772363432435461815840349216922905411925062414423275526171487527616298203626356052034274218177574839512959057171840188004065432289097252392403243363665953701448955248352700078212111905627226224753103466539801200433856565447863628089306392343614695852517349611488119135511635520928346192004522056022538588131962727522682745409980435723007673067580361745280713260677126371021810318229412140669755084685669174179970301923838711142244292527378151904051339480330940801971256618259229400939002665141192986340990671847440824664120710109780017468710328762766233253976279245500936234578519889044373100393181657079238525634642681832963002538625655480355347791088558160700367893795679028750078455758862759442624554783393722468935970941835443093866998965686799443648615039920601601877660559100695773491631534325077640327368900168323628080863330147075336992775881877264003543947322858040370908200709237858542149003879736690294909673042987477726904909428600494319640870979479195236189863393431211207400485404332701864767237287789431143734854188229118770746581123336498809147458202909813782133808840054825747462298799779534396113609024064908679195934999466807111361046581752673039586041494270076153994235097387925536595688726254674267305320409390548447437338271384792347918851769614942002332315082176490531952095140568023459270763611377396810735907036164492383751008722830375564206292741541217861590824260629956951140781506840847210503650630696689147108176757896319782045457644318196241740264661709190216925094608829024799130382762075252008756041444676425167882342106095875837346504718715344603212718808338840268255612882778828427380788452636504482264129520523433476738082660087288233505041441302502541481515939902516301475699152688951059052782598855587429193480836749871236544635532995747986195341512161427655237256701659618088415225097249194514720189040790561449045069556879805661793578557345572138443312116963265556605098459281463661902298212851542245882628657710325183425203737490771673033899185911725054417638815083847712212757533767985936595354656572844388819283338018218766939253107992621500441003974968757475848843829970372929623235413108421649241390824380089961450130442795083967256817892678473143190567879290156763067308312974956435604947418913661342345440127286835793203866934993421213105318034871619581105443599374573448127566936868164312573612167860567020477292004005335675049433580298522314943527285236636883840502097237011973905423320112291432670948158390140695759765431635629438498558764269658711778998294853757909895354133665688912827282845047930460434838623944148145781235112202052014035572573208645413718022918098572285565687029103858384347833051944897742361265251534802793653803936382066288683859575370022293640359530722096417444292427039235343449001711194844109618198005173222753895524506547666259139526184709937735414505517054715504184071912222572866021612455617643093844123214875461641196523948584420953436597601581810363154610879788198688532866940272582909951956069813580384316530625274540679837047587978683063111821780642538656495406090904181493910247133462540564194455890610485459538422966512308937827744783882360125423176219295450496508371799561471919628418648139793378836764664479865065065432062861947918024495832486088887821919376389158481705762527581403965875221901664585317097828933071217273993702828292723823791138849782276072168621135446998962090666089400787228403922214170777371886941968296066032516508752386568083397964967584774255526075559715382913454897373377233875993272354976430435361029553131804852772364376167399245863459141892068445798183809601116313118566161262745133069227607580663798567890399602471679798676735619986356464358972664947892323189550030508656776726030125738533150218592112837034613554992578059182667356273098144139190909289601772243585522371870925621161361073693991631567529707126127365822762029744189778127303501380811342386437769210232775799351269570335543134093420335636976884328056870580257551449479827561843064775201356575664263414408583970825423775626753174112101024839878294457613707307908097133895676071261459119123122054033462785076551960858425859137574935171101812409534431673806968542101476311279957307754830095766827566483119873328706288057484761063524363517802042317588160818853309881556756835203768372731280259224472764687524760232427960213043149228234317745518826409867519131774293593429352143392157197599161454987722527995698571585976522197844924810185834798090638882020680604105872406409761592364045896353484373450081844008746050720921643126710355032424277852588061695973472599601831882814879901918886575537927854822859955097554401779827604408476120345399988938024308964165757056577056745231626237526856405734488341425500833177032567194122471507110197479886720488471537219994305097244237248165327202148133507416531687456692366443278665574630852557644502833223482002810272955579016477668574928448447402647425134544417001655032071290575147675108815704797981052531061786231628242671358929822569958209635476266924646223929807915727718220471740598816858922059389913560782725241467393384554100073169354950412487431299914630056677844057309850469830246892908626071969453817343088928317701473563687248469252404573626671981284418422370197710973441982242157959272243517999281262757925948928533752182572045256195824174607383522315225162850435113933832552981573182801437607932975336670447403674684033252528292001286165196530763924286535739642496799564877267304545004284498593990216979452403041109851051844598359912508267648583696531196929322716369178227623787604737171472469049759887713661462030803238430559442186751841757790485222121221958158108375333315964604029978619830336744663948554775228421406212757181335612636244401315671930526598259570271027583663278481005221094378405185479948342760405833464368064300364217303942651069039511916790622376210400211698249159337575061972829910407762776055130417683507335666527231640906527787220099469726204652419189544917439489549983222387182009419088635111944249970813698980968977075731953954806044848353189244252191619329317119858556355652696638837499558462593955044232175855980913977831231302593083302625447682695005885867161092882454774421761469900263630509305760680543946144298066822420951341117769335915294993326892569307996368590466690674318829677459924729878735412223142252197113795297000098944389449496119257780076181863660658125842380722084580670460225706937228303980534557970948627756514520813000983522639180756358082322801533748816742528928094382046797875853789981399353766129720404209526866302747424620212820319415306102539150818247023620485594523235096409892453205139578719596763804471493615277828162620124696921090084836280979935317593259371359314020660390142913959440894819537498206540338073465417079355609614343812291443070396505273524513201879587854938973342259834856310765484764654650780711505383562940165454985334211578005604161739464284829761769980381960326023989111022153291914736373806647227661966053432708280786870234489722469316828984268024777439156322428584084471219453541589995707231465557617683443685656174257592690572958320707760015339236910481632461026844601533663024126289639666288197211890747080637338841073490882670381304141741396712487502655912844221363854916138383129054713010743238921831982570368898885986570060466014860930560357209342988289328963576410468971312498278199978573102595720177834775602055083013011722225309530762877994717924768337006533497507647395211051520076603208056594467391035344016034537776575427091294959055053419542205310092505668865309637990259319370649233055204746032105015012916232784256056228554250413198361376429365276422635438175195815162019936728822106175866692224032984032011912416193647134413524566599854524097361697345639615435161348485227737440454850015397019306177391279450692172616111470953032337188461055491047154160834152937159390484008811567952425332230744198050265054975000755765134859935681373437913516562548201461490789531971520260706191843353800630783508553808075652635497535210096454675343453128593745458368457481269250583460325278591000797880476943186699564148846865426388623801351632573213565912080706770909586539404427167913591264849996078211733700831453445661459836414516591177004843648813605544213967247279269241090958692482380282307484469532906736872929414341846707462868879805946017398209153569661575664649197943866274846826573830247674305256551554779581070134165258841058508740738360444154645786736623470548493016116001915576410439951025954143672421060411355288868117388914249017868181949663952992309995600377869897314752112586188202845680286739539437858834060330446783770351396908317836701885580550879631839898866055084987941007228438778556870091012222499757900931063017936777501725688676764152854339399172441912112335729079459665397510540958769698596404861092195621205006279140253172003256062337064089322551788332692251542381522212846263335766999367095200412250935827938199590309212010631719696134968418161210051861078981121185090053868847496454490216629236120247335619702702210850652436073017249372984350757487239001816495252157388676417954756294065052583491276556462593443366782029860850408993662414576036354032160567943133205723956292468207754939911435331013285620405818829269822912812230207600425058808782460572369200016853159596314565681568997275450348520463633341497166817360019141406699378256460525318845884346496543702735625279563179812795229454640044486153800044042207939623534629001036869770678079843031295693741594811177499387930178127205182914515397974916441276761791570532556949891188674457462684924834502112557034808343412081805163401118864576767818622214577094018968312839429396711089095726447058604904922052566407534597092524877442793566015385985662860988774698132778063157241887940659786229856447749029949211421033126085655954817102418256311196935442393324036581773175822539289813130275398155335985144722734322924295944907482704732479945970228484503695322294390344657070407856915446258502652600826884720684208453115941556837521904655165607801818918341642812393708448541313952541015798116847243671038176587040662548352210172317556600879938470631795299539805333174020148761405553131438279017413181287178429737000429130371375306303176536406288285581959775465276691312633591157094870780952592728903076600278862939379551052002706318111172411906296181571938791296770431416278644158501720608775852013141167284932476226070618004270436471685549532356016842936856959096379637912038612939402057430327329910928387059298102329853478410316004229292589359128811758126793540213073190524966504547599435702307598296440207340168263747047865897553139745275719290854925370554693022949091733531747143565127871761411989809776632914985684505100196969164864724963187504119132540776108357649203948568297652266806050686934397151619787258435671545739796680510352923354186999006649452392091991210367087527259659899014219081365945207578887291899848710368526479712161078871343535996357060141917055117970583371546989618616705975430194313076736426828103777436661114027021815847143604307370288554493121017231052948164278346767794688015536587237548765164297233874259105920803672913660790804861478625984934478266659252557415350665098933515856430085233271368059307016402873323033389094992653364600728380710475898531478385740127579238862376934182618556450820675253634530995049439860113580550249219374161180401089533752672808390768378935512835309362099219152216373529851912391434416018476271246451610253153590802933184929760108167916584250328427386126257987049808960819135921029282276199664652604868181259020698235749554359069329787306799497008047292557127027489944263571451214831629391842571460461310625949484849485589246436639763090701286210192630920197410422672190359242872436404577185123921098091833310481271698718155179373258037914258650525173824522895715762768953653766106677942111578101819935284128973929140510069954227058530787505564951453167297538771324668516083869444825196270210635356755126003452113255276477019244152898615143343193775125518984542638687477131834522202577315888149351763228901741392403177852497996491694388365252721042138342077109495489289007661863471579064719948360798375534259061621856785453923936942179622701043750574263389416359770696649365656165104230126343510930053532799867982123826833981828641329626181108556991247698918634835039198880831383067157629458944935681534898386707870136507012200184617003572490564665276641160573642276427099808171025305818804043649047515603066542133378459483639472653907993250858094963448094666803619822878182043701728401808580809742531973110719123438556102594355264052018007503202544321937857432689520261884733780592841485786654013984275844237309383667633198751632913584509009114546597824618971033531466776439529633366611455880081861816411665301132726907212303115160135471820172318824360592420293808701954059038582053775696319679522535373886363283868086528043933795329314452464711491740135644458069160497650414094469283094385710460768970999450211678187864386485531567574050996054406475077315890405035834526384505415850404702118392197738137647219234572770428290748224301648465435651702713134859360780182684576149971096318325091607396124380389260206023437452086069830946357024297727182962403934327157143532652418225782152868933312470412300365504167114892358596045748458838403823819284323102377152424499232604130965060419168244359777428086793563754754489977847280010427957644407925323025784832016370388758917408973864865805519530748638506962635969618358324373691046949962542211174093943312417856453398134673870884830530790011667736826420001942451689285348809413526177641645287898351988566626134458849817726772639764848939338923786264194185625107748458733044458897092798629847901089430419376053834181390178714463004713661947641212111280428153627236507071580542908281006833634794402519560736680658624108871756647081721734783310018210606939323181845482581764195751561771951677249466992307708467197573325759888039424326654089023494179302380177830636940247476531159357758807421398178684904772085681992708560471271035518726515061781416600075542564228582188160866442753257187231644214097510664012549113464881112376443970938295743988306745520338754415334645491857083272598897187963090994386773439886130215067043489473078395526330329470922857881204935028900553092597936298669757674892520056553253225341267589171570275223115877251966588560128242149450321553310012483647536423483997227818168488914190568790205608766824015531263416316094926491937145311041373011747107100070400380289379281477668643567299520968377105766835613468356426719379126997857107817827761968534918090312945588153425534194518606501049045340630342191817696886977370398449336396782231470506871192852962375640889298516161774562402726159692750058206334106829155688293370164480084928730525138430161935777770233739850503463579351343237263157360152833362161663321046933563832320904123098974409817743101930529777153576175579809927407057705068694067324365234036886430251551453877423402973190707437958220315496224386639713203056879219619581824098891125263936904367081632226232348333000689864095851538030963436256371693224256346039395424056999204779265569615156714760661907955241299820592240344928886898134088803850540882939833278767306694091072220391470665931987701831023564267112912777232440235949184918439756130706528735721344124051697542855753841338938544307648714339358651711978067890310093291660246356904350378530638773654150215452299060188007831566660172012226601959475262632667481773201331240919207940966295465001914774708836448100652494896598592570120555260458024949328297689755709688078024703479749969341893213702878377040590927818945517090070436831247018645060633002344848127525239422256174954813517495982487999618979132624115590265275101232839352183962141877742749532338499909704446964765640273161276538863432567451365284653535248320274688432288165547561311371442349957741412659564424590905581374430873942667886293114281837901871970975146877255284113200191931544820216502840061755986069334244191322511607305071080794670644383093623812095978686784561661962237757586917557164616397218650567316172816323835478290674327635326577317573644375284935799188691046043800306544792010638070798971084241573989320797847729020531781212921108605358972878890460966824505621334490345128536466110165496844400265318335640955247844882014555865527989311260384967188088858751721689690783579478383943366291778098757552190989197798376357288998503274362292019973971535148292512996412409420962150173198657178740211219822637187095463953870760556248728416683759496285100535261674824608174396424736523528918485874316579770450085196456135949580887234244936553207361442142620707635000117231766691214199541228518538900616694463123930508594391080508517625753338455433953784931435811826172617708021808086626990806106324224625087165332375346730135394942717333238348078374209023109496186323337750262934681056543797104177155653585950064583130946506389214911018272362943149081770072043993405830882402416182087587813723567965964578082114970102857087718372038410509479809282457794334305914127486766318515995941025598384750692452591977830176379466713454093222495148799726022629647493200752326226751605253797196335643319292011336852141064100186231967338838661424621564528455025934921408763603185231977447809783334517516439330332096050664749874769538878124700215167883831960986415918892694274194480703768753409429083842664212625383912606624096060075269071885126418868340047825245863688816881588157954667154953114711359677719831416421948451015616617152553651588693796170175521670408576873064468302016136071069772217895982025647024832169759137733119503769176375930187791204773047753741361540353730506662956163266855282772934243977980511030096106855085075121567033419232807865281595887877028090011257835596972274564472572910565330515531128437719237401777017041869316240091626355832290971678799744005055641446929442674402966177692497660102146972981081381646366275571842816659267847758866580946051307420078681642354860308908624455146766616068331048427159460848065810121019748603406137408322821081195525700392620119040559170490352939209470071674317711939632037010236058065162729860594578261298279344377551880364854286837175563663987646192356493936438878684060396372116697124821122994276128971342806425908420818234652092918321887975019106706299056931139437455868576373143560452423654315334688392742062920411402059947390231724986579476786400401287281405540067943958534981364079775758406150329055979216785740480995255552881684993455793527314604024749295748741112082316864674538006647013086863906983310010383122818090861993950406727738398171050941244522297346143011159947392767572745083920867385287352357212222994841934844285160738903533056587642179221150233266751347854712652474581780460651331954603178357557267062386968510860344599880879483387082383539515052968488989574949702559617489522799204866482918625638869261080070570733328102859757498168891759415722827601014154111308973451148854612426638557093319406332812424818925294092167422637470582033251189321657017146342743858923248412900770624621927421837952501456690031566248690676473894916364599394003636484453617452897654412755313383223348988020876419611666008694056947957196839910878831061254544496213317277528848884142997542273131284523488987098391015536650628855567705422037306842041511201878035126424065213836590317882882320793161880117981065634870511472039793804995308986492519178285795572451690665651250513769057074798131015665426751374879394434712515696262517933256297086533087981775651486595778904373494853263401355029500699753518357956649952119035895865683186326968696794743263640432337264456666341651662150022815481424805225624960985083012073793550444149338770483362685205513001230973790824976794567519617567266711746072570712019361366548489112669104673637550447786234472827668713594913382923367071876442183231315684257301616735714500924798430975976685766091243001032818037803895319423611558312645263873445683126754563764305650186293022967758258915861846702759945309288936186693306366176247723421069625060626521687627789384996373079418496782892955363651279183923948688805004397890733292696792255340670682042268706782046015917600398486867927867533780926264669506919613924318403483695290633872777984719918736874613649208524484254373601081372371965174095022685064354816547726617631562546156344790614150318056162414487606576800661011282741379412393709360219989695287530440265732830183629484082757891792198418395361214724959562916408672728468145322484944979814060369173941745086762266913452650819951069395543511717893183134881709402793318419003633224424583882487850959531131799180927672040807066241257393168451383900916208474168898807938290041302082010280237550893627914050082345386578546206410383639042323802811904077860172495357357783107266870200751535444910384577721193364617168508004263192367773302115367896515482023156762446055409587895837597170378199066088525879667709825281398616595139722675938477315999096529162896568195583719232062740465626240568863112864960200707794656008998097240958979276432511649634493090772114713757787773123455054553660652664907136401069057072734152828793455352799374989493174922908585866528596542362148835526217840776966962678501958016899999591559183549221674050002121659026293450961056305501274424842862097207950557759933053375103230365619913587352517572102937394150844861528540570244478859488685608018561168515409084593068835768433561655533563195876733747523689940560449244835900818530191699842974561836120982356667868179288595100968594466509901267208669561347559885548839711604552680712815078128415974637728311834708535437776099855703456831099676653787227714706736222283483122501885947070264745489426842481477109296774773993938503265879605863086146876437212560737135129155297551092082975513706339273080384893349467532588257999922788247991627012843589598315876705404130930674429986200094913260561300659801716239403960627754445045439632576057400214969280504608348659366550666306132054110183257336131554255148325480983048039668900820423499283053507139182661285416412051115020310498182585938856725853629948462195173283312420017228937529940481381033479280911210102359477704239461005629777557474797165311697637469591001732274937041649899760748388887902610260270992306317484383929142724254225011182911558469455883780145469537952429298605871378053572702048351705005614855415575939724480641125297697569956074256740980925026906513296921493663974870357920497052312487670659103823341913066236470807290887056413397035361237037517353752679522593463608506498933392432210835372164820978997995560777393089020763656842453539218990582408214215214522908872716326097266552574273898271387806482709354525536945001355875406420988606152091614171063643886967944121433230141788439877113074096441205694818500349127817406398482980710555346753384225692856357329483181738503948959329018165060930064670140732927890964054621292279723231114345574952602735420382883092768098285443774232355633799007526964170653840001487351256176220046268810629673720845411330352753130590174469968495706376419669089641932899489882622813144823155269946317302165224305078103294493416220357845541856468929085651885641634435976790718341264117214065741555181268062988385110412361091498172109504908565157289400861434540206441173346591725378772449982658968189568747265379812510305622769996165384195213673263251917339120725026298363651781534994739757081102463527443921516103277776771675827413383598034968250373353078737356159237264623127112170846868053289944565802004290655206960464265426208928522167537790938943809481995701131655284856143104836459945228933560399520134531377206114817425033177521983547763498911779852191706178516105231344383921336596209802948310195294536616826439399737732570681113945051998979204947783127457294977520545159682988655116030330419443940162937843636342041298356295397383391708968930416274493420968071366301966706475701641133656295201225824278498784220757683457503781365524962440935479853849284209242214510849025151727871582704529936154640602674699171031876126620831200773319328365225229929658807213642365361023396090178825763495563627231678681556695278802046824733884878186513671037168796284013578542928213025381482169487520704499334778660199389528935649241438537647043988409074297905547683958248252024854554435797246209297166782004544105094112433295800410046841589096832721012164813456756716034657925034235874703972858105897410971365077846349930179901452094373558309706674047666103607816419405438951932776304311619044967551037466975940471324132120658116248673258853651378459635228159728712952345343588757336291932777019300398183810409267070945147845513183208575964187494507318399987758530944796614421260513426087794733507668407880473900600676072985065661932561874881032244841303837532268383517302334988213684318579359865002336518145013909805419436902448490125867607375063125947407487207705208056785668419231736923611948228850659343014384313533748393933079694055992783446380896657783847363515153021172079310109198791225686357001466000164519570209375165450131844708141656233755864194467584874847043742460686948260035085606459851582287136130476504303285963793283648938412818661819135949577348705313550588884655848886210017309165111937323761987881166431375112742687753494953201155414570256946239856887560728528844129300967019439101965028129686688984464813827495134919945660871249605675515567373080331039232477561812051632871053247790251405210934042539598334922915212010626253874548066196513915306266209515641721305697319086473763416296178539853737177047577342110924831169893349910534607093694418509659136373837536582884401552483587718553226491380589738526989990225284522558013772349284192506466652729427356321841123813188694625197543313271661429687619769306626665090816396608267182838900235777166201910991425295615947599164489237683371492355324208316141824562285725282485220169321720174052774261031728936121719219921422845271560986104433465236262218533457423174999913386149187938627950572114288622915279114264076318459270603896817280498219567990644740753034595225354624057748808675151445403856879662696869273940442345474802006719349326387792187222572509184314375031868169302917077545234329893892075133559265219939738489879608401508213151501947337545162995208647169482820475412034062179454400829578554596592723600857854727416402417739737026472980378207106373275173910374136431664092874573864091277949487903532542610557148620598096663727194768977162594836426351345508815506423653150929484123244261000940475240723364076194263816286250877162887342963776832860066840155858621053603929908993904068592200400466932695889127785742040830504996942227421550591661453079479995809976088562675462922235776279718125017667412896330140322281698644475656993221930609878046991429823719851526171528119867904306379816969236034014353921827495674862675492641083285326528538790458895461318830935818660262980697576879606666377411077913418515228600413923355746466789849253300405647456431513251940531483663800868245915116930141063613327286844825301444730678833587833669147804615375923281112137442447542068805803875554607906677387273260071110780143815016059855210577712396419360582233821672101574789875441850959785285754691465493286484993126547363842468751219834507296782496665480732933701465524750985922379442142117646348492383683397953452253443655783248566740225700394184345102252726747795659854276953797967941596266426845908750453708367293592884795729511892823910146622420776820337257793943557297846159464064374862730971218200053499544389204985065030038094309245945448358458874522693037755680838543327287253653602872674424640128398280990555188660059580297612699003784975506805798872611978451917407486396484345863573054443114745441710855290741509008056943239346765711207918946318158471196043620995686197430634863499296703554324180242550879349124857428437567462320343585481400745327392703502549403952818913765487774392563938016102661401239270398141557063540910346347025972290918866007816322586285201554487089865800737470370707446393692678674990610552329389993548510419190703233037397435250774600340124016406811713009925585434158354478047557156231642167943041116782589325227052869709727377639884048820610152751697377098444445023557440936830676318115593669657115838113750331716182130862559130054251878789909003549265911234421410008113059785171319753132493944632849513356732446450453503655499397332419440571620280080389638197476387085835539969261723313982151431208938660602483216084296571486701345414284416563727246932569334440461110447805819063738819061505289053024910941709982478068486504059388138172165399725790388376978580523285742165593250862202673800453380139998028105517724858864314197344188653033938144595530443715599243715728399178601347256977524939239664824519438990600734262355174230933447619695553248050352504666013897673281693894158940198717907961337237317207609036998165590121144730017160701780640344959831747427688658929634423050431230843863985135880792475943414371111056422501640653391526712719291342747730784051550507945389252477448570632298336414834407198195191865387560776420406090996058993774854009671978880109210312682563524297586881938684556218328033912696741927916675947622243703355508178313337421147902991505751836025441852197051233517536099373175349065200401274132681193052616025637531260327795221424109908327010113805815885378016766148321116276407135384010766133590318321474292054152776268043156062023205481867962795791094986390913500287598053357407279784593066532889725884147510771371399341526524265180017213004949937655472577416842771885568371016367529460014954558724891126149674876897418493359329587595016372030611671789597319112300283167123012314458080308913351035213261740361480321677593070843192278139714572420919698915170196619185600846631360449661317428518433584005454298404404630954493197126602073275528060482440760139713666470679703451623376081500219170523641762269730997101403875656588875978379989438747378767962835179943038781063457410334065634330954784475823036439188779359892753062356660140263368013905439555357457183563432621352441362156370413584328301064369548875592124347180794800533288614131449154594793834573077081338938287111610538622431236485533294769753263818560653931278409555035627738597517599207743063757016859535813821891964179286519549915023387963406184450552368041143476177479294892851396437096922024146967121843122280758068306575952578121910382198572527894661989608596314022953088537527854297763347986300560904609780030694118835312851534996908807896757271654924667370039759007804381009576274781299314209877379948289691483968879470482854831962405446272387810598475704507295167053915762239119402382621482214679023607277906533757100596510134230487843494031264051654636746413145808965170617508630619060335977103706248910029069988496565110132420718842462633551990732900071533399815207335089298067588358858411063765853744964131598912280361739482841632671650386298225206396788721830360592051814020687039996220088988626459400853948578942304788374917288897688955020125718780604607275580710780738269448242970186391788123963259603302946382258522532215179017569807739811171004534991252566365250366786759848457866174247788910395891396429506652579833101920511781129085501385240764478576049561715734061206166105661672228682518424011663515215322363120814418888852559246133925921057434731743869662690727452872887714556678169484307229270872811760783655261207011530905592449688355395194944947575299569619919810592055571151921561504412990070082334033708936330182064977779524133185765446267090677039252406428208546675138852270576116918191725461408322340070954564810286863381091670118375262171513392933083359382631727913912244675665937876914051815506571411522775922292533800813305368945350107291273164153504058231619038107876235829144541139194051770318768790414266680394262082567424722944670992618363586477121911725423218396318178876624654783228752435168868049271996438001725928900734354812584275184354886649142451722653915247942557617544232034627747243073258937510719844687744133404281060215048335011024234668663715131930354943561465109638061488694296428871180243088441431612255557640309318753569345697139737303171088655939121542306926386266173238690591262332390109539790367327435099605780064631159321280841286966344250424431551969050874723855402232836608420136259981226920312295858611498029553051168007993012969400492240949193245670882294156516584196941698589714897824404130209800512353685476407313631442616895462238418260086630778777648551544815339320104787858495565239417900968000326095129047485405182990015996693746832954770192811886677526969987157810823819380172144536856929859733216712305332073113098058278177163015899655978308795652326717806716952696530080930749785531026977751790103934424053414330986271740705668800516606226542873980291142214834847770644151951587483370629340751311483800417711580022552115407561320620033798668037300122670973934978249451756242368756912467927826684014850889847968582196217530766310094877399311542385953933240521067904987900352527471008873697774752294082460135841606661907303466797132021049602923360298233800996018281536928634820413813803675684411693462362350731372577516228886917307628608552958494339565586594888792389328658672190884054516016726693711636673682741788242445154436358830932135195267306943321856358974626533680774763946648526949520345971826268427971002206209888898594218775758856607187136079271086558069058419187255535911780551957620429644394191583632994976862234318433357654108201835371512472638687227128363289190898319613790070354532887661447228320927864869476116804598560843722286707917925918389291381336431792120590088182008900409691783603222127203606888356941276670112554931084115121561285501661553073990723763219988707564811553658103893382872924899156929524113150444581555801895235688673899758459097681957165883358727424867329981083774187877190317210999960523720995707570390968939706866539630583353861288814633125695778016888692487521149088873096346581314021975900013611265052284022087686307300106538079562048041125155656695379495442132177816845108320902111481193817958520742522412492542639050779139979187272875195999917382574475564249891002294939784845707226043348194237615607480188706607840600460431413054078246421127477605453667208239190781080787830256133812195788468059485084040072766649901506400125838474316306178968953043160344940283880362973321970529769087484585999191116216969559088530561770116108127421389086702000285020375419970303564808714976180375778725427215882629872240045277599936007736797019797402630133209901878762449377398771282013339365402453368696194718917283022609316899256948250143852272136408298782775620313492264121318908246485526756408482896220685374138850797090595257353608668141861750657827595124894956335568278984658922981587870480801870589773172918816898307736342757706116874582441884137802236261922938984106653454188215136918508389830853554173883342274405404817651681600661750383073960625176016572073148045680142068800005646396577848166940476379933320423579235440422098902884222441705073986865008437301860596794541876942318590633035678083907789398528698535942088581113092364399314677767470453690007683833100319398192334523580107791626791067966617716891868457942878826197552699438791110097830107907900892233013968111113867162666105477700752802860155498545955344396992985157529662009907129312895053323340550081753630995401569064829923128977469227337723245979837713596505568628279836728432442425340530033788839330104599209349706657913360881826332132463157089230083951592015003426610274961999645117716023547653864705937469881853124637219210240532559447773740430321256804246115338029346699279149684619361886490555397834251931414188086243948440869603153120641274124957881015003363844905993511144315498488104629613533364148178847182990379415768160999096665286381845122221664154082230758235379251649612634409317042526592630777287557306046396162826446325498295463595102350944723228539157880411498603608706414437376325089435825937114947863904029950022970862200280373454223644844077542455809779617155073505024070224857688037263200454539642751964817256865056291374105285063948910789783984742076942427715897957605289335107293271241963227191308594503439890098822784096943038833411973454320827518954399554849228567772951465999683299623796670338355678305484216078701730876540367650271118844929264144648900000818836323021770963568022298444040595775914013724169718545128457595417533916739058576592755430963266892463910936202958746246015308370719460410074722902831855201267069638889126372185583651932760858338543845105536120896665766585986824029437339514333608264099465207941837835251612228638881211753160657086164143727522641899644343671119727988682475024526357088112370752360659412581467507816772882168476358805048940712927629165750073805121535182628730062793062389192115927454880118322000209468994765722731724727575268055169320321515247407592206007427729954854146236045554142356672147937558200718186440163409042347076947352389501935599861161583507279290230772522388865295261394348447678711197592251342530969819659461096788877861523058663240712884707424277290742009487898499496941908226289828836421984786273192335540935991643026723703349509886755665755856153000072678891038155910822453818740135024796261137350681609718911718504066966918662687484615383907003995028062818976446305755006434034836757264840373702936559047869237606788659215800193845883383393836071590090765798828470474146279442045477264527521131272940263356102733208075350832498705907625873123026099926938839667655674898359272684144003881256029315653086874066779229769008035206384066141796354698425813000927520708491066212846031585331122216588970388064922458312893880812360136966289861442649614645279472511711255341756968837118677196511538360703239764176045870201634972922633545102682690661900403882480763761428345596856982342926577605079885354118260980358243956735183065327124203317514036764810677198243804992336207401445111124632174636394235702473758162563844403804988435514073322091211979736384151921497438455712958766236236948647298761308324930581136929389749170375513157170518248599685971739120908669886534292885116972878684838260054413726063184451929251321062923607217192916628296364024853155659945855212779427507214791542603584618699123726490980707311908744969188555374551126706687060475834837826465274345577352323322266760089948961835286413639119498244373900482503332931334672135284195282590553139487175461919955162451510538814059874048719078566880334582523923131220964668319959406638279867594853645531361677409120102799241191693219284755039112052959771183476022116631910756930858979590347142933396466598890018006512347954913262975492013716844507167874065502402443145874767809465697187569983954123659614362045004942270537146970214143286625630749972925610686247876387438949670428570055249547013822712833574281913106673633094779255740254807860730049575309966715523845836571585923570393627134096779168743038115861950327682304074687189140923031181969790131132242598050086899022363125706970142065418961359269137192923180807819295724348461437762835470499546323808484477231175201521659012170685994731680842126606734232214427009045788356510393221042316289419458506463646437099760687691672375394258055454666493236323774326067035437982071350517431992062046226186169904885136907384099213862565413200549557022095948497352147079034550345477158000691703095754919995880073474787285032079768535463544379778342114683397971661000464399524174677203797698570421555909386174358205292068876718546009957349393099648693478707789711874762931880189346177047636023362164966515313617326498018096632412052872405128734304396861471751561501701796762153677429955796063493685986114605355680744787407431033983290712319581938830697535250399690311852247608788909492944289289272529595121743348722203775374468283488497319520987509952597302474169783067442949477690379031262339678746448480218496288545446955257684127175543819819539578281896320035297238427675226885188330653706166889285622222953329578064939579559007116239577214734847247842733661086825530489689984935514520120153144786434141006101820456075233005730379934549179327457059194629222728846659752692555452883656520974232695420695094117755132757631495972088680350981895662468962961890661547512956649129029579290279701739620137182160444592129653214339686142844638754749760562542974241220369149765458911201952309205434000293475550977785607629887616425442700458539439725581537765807093204553457753361683966647738653970069434552067327381837836733306870997183051712756905621593017663583106890825125061238617466084051539653891558293815193952310288221535966103017943807553039784177095646345510699695741878020250251637114538045275894148850697706542149398010275358457946921652639873119567078586773947663741482503421328168507578481559909235597720107934953254038770689241982309659900907163516301195081919645806780497220015451708351021213551160067513102449304288528782230206424428822342085708746280952821561151209040305336920411618625335118691618855874613858070862938683244630786591262274126797187254738709234015662515267436096529448567412825899717366057312698075596840284197370062343068088727437557305915049205023578082105292807681341945572891322886433306006791176507115701898937467742556276170342764136484509122520256708343428774205891235942303694686181993673969881404447114125522385628520262412165736716302900625090519606927503266024478024894803446460320274248406619163464875633028356867091146851219207353201541576548280032649879284274726822165108377305328684996724894990057524503765848718549087108646748456460477899691916937417879565301952978733366996951828451942659411930986664127576816552950571033035083381261853675489334851296394528854003498684124094799047772829738843877280835927310844126933147341271564598661739259355750861748481320845798393362526419334102225107433598631138684610946334716174628337126589365641200144774203220751615923415833671687901304590222425999146607802956092752024575558156621604817415943175326341049838013819831033305809690640227970956879040218010616323128955269358471488228443142890284086525272052885826299222299485568453335919244457471948491282813539129521457034037364254875364717224910309571802104794465357858559211100530967059238073887830689272921542658974054247042068155399640470206251421487294113124380255626242831955239831804956205975789314975602770580788505263180771897296669198862317114759563933317762253842142599579426232544209908287544249585179322337196908213319729637870513854578319914233095240210437532347092314346864791447515016939871307469237333170896705181638280638074233118232788849475096663113815258842572758988010618647138484471957899272063049014394979357024929940809715705760020550257388574508343826037795970546700222277738535713701544666340731559809654728885217824983010955165208335175106512301020231108915558574869650248914302453168123157533060863676197476318358476522581920458985840943299943576783712059921204565361753651608939250576735541563962933194186681298381192275017226602760420807834169327220718160772942256779523259080600157077551520286593830420216353420350987213461333833965212015355535676654857863215583989393628012489019000301443559501602420403508636901539692701372714546965009042569017248329980515727373002375467377250446180942040720104506784165861145234316466754696442196945271407989478232745528969788099795337435361214794614770017679121565912483393462120117892189065524524590190209091259362632993194447392939370102247794199921083057812570678451549038552299624664811571068147873657967800833932347924687342347901354288533630842106912457052523870502289341167363080497370382616604049036513480815361752420362991719025719887587900219077044844069057400904788933884165892963491282587575799964312516905549365235645341590169917037660138217319048386405079533088653683527247664827003655243676845909686569860162874854077090389663316632158426691225895930087981199521623637833227229478206507290793136091086169820720608844365616694356780087052158598810007164337451843631136170588341611082469533355820306814272236039182591068767335610871708630952206418645717949214949734757671001217791011552637709264731775912827929755373987100988799068878931791145526674498579333517213299862959978171626747265311362191170149945928407389316708207976508094268998042116223299603943252887393887968541934507773020112682917178829616242067992120604901358643661970015607057961989016755538161913814377218333418313747445886287539793772867952024212566125724046867139236249328525375839944586227191458001155679982309606323767857123132183602994131924566944948024189375217347828319434270716318562463817184962384599619527948465951832867024435165228799677859402472259033914648962501923521707759317028680791028671770597224032099001726500521634393519863030586369829342807756287791881599871634699426747107006082443039884345882154894221650432375838181607766222074344453362170154231264597986246015656612808596012757601577496967398269907208313773938210590954421877292735560009657145496799582366904644113159327290773030877111195177392883595701902555522799123043120027189680945716655462757454155504957195521781257454688415133714224591502491695367619981147362178686761974573174900537249962796462391565282954160486819067586011131110472400038302802624046815494508802000633181253619061695928626384759081832548358745608670100643282187665910931620454413674617107679571871717150449727495605125996343300332287974909541758095254734517668550973869344341284722958608989640589874947037235761085981772021209849415849883599571294550824669055609627845546546241210172891074248779267780029077599910899048478891106817531833638374748600478815001643984940336418221505331415441390637875608755939855558948799184170406935916652712182263951641166573136752544622101240922851290123495252167256060521191523723139988809723293625093473386356500197788091433925498842741485316593779925875073622355993050722561885822039067376330392741062285961946825099350160822698055648496499857364076951503214823978409251989918629721796791224931595116091997950427678814268743181583179313689935143940717486607132486616095533919127162089131873194689392439256793260411237348511056388354488064230710710510594205970420809791168178328885427250016094166453774590778731235933961149682615577314165575579319415722396062723304600993863740756331393366968766016696991547328191428763249493211204682841128595241747321710030580545075429402062216214996108628020801185132821290438482542944965009429633424414210201208710138544849438943935206461609153963599543529316926136211164091845234998621263906724074519157034620352931726270970636454350055440748232873432205862006025366580821681019785129741497060191167862487235075498351016144272190659534156401716254663892636550408279133972325937232746586501976236432745095849803274351369288498732618267659064286158975474592615621494502164695197386688015929402813282008735258853231950832913565591192035132906738267699887459952043533807275936693810430615166285143749732520494159442066164070759686291946188743593749295493419178481130210163944828953114953293436722234267368059358786256666490509956517773253344667970081699305844564282271697896356760012089205443698975460398118802997847498245741214479248710839663490925050888609362697985336349857765668799065694482726208645162086158309437107204656721465550805388253550228878062605357287574703257165990294418454368709786319126387759559969081566382432645254341429222157160968991039701133086296160099156342846727543389318086259720921539558370686096534560329054769036220954466293411701682906070503295159547239210509461501427765255012198310345428403494411941953887479802215571324907835285111863271621128125360119460978311847565690758894698444361646238284042876042530456501808262003341457735671303709531578112172038758684282791481187908509174649796960336937444441886867736593696801196044755074001817753120849646475503743391955053391782656740336008049783033879193469184187701337022954318852942361521080766171008709343886534353256787686653503787056790665060927344082308041625490932030230737017572774031399834964058714645528860846842637451237336555576786023831626272115055737348636815909012359022987596757373938252255331787439217335332960885330166028804632740151891797797298349848413191841669716556588204734513814094506526359212295299758313700881276776062500312739413045157310030156542999303258926101271613002525006976817053703979497840551232010695420681097970538224288207684047577365365898237095270318241859801331136684869327978593925210998115906801723037586701965412547630503747939207327752125566160930834079767395506675639940984534227288862187081457658599759036519691821016215119003147487048881737960850374916665569664337390749173783087035905303729059656578182554841939463898102471911016635112255260502728551346434377550277269722348927459638594771970772197988646045628279944906369240259109661705603022528483649848313648745902189811462049335687501550577935340123406282408319089496045382955721389736561764439224694037639298967609365768716887207258077227649697830039158236732424518577049254144290992211178192163378715011407872392058644832795222724228726663675949397299188275260352658863625870198897013375178191016988190291191366777709517384788327605699087929944469650244806187741668012406199273787483102785219126014811789699973387122360323199415319612949028202103140190777894217236261819823412319189425854281522248435713188113547843231881163302316443308672752398342178651842843362007576089754760859325756912465292249589805708023727325835500080081216736835308021824403841780403074036838003662010327860853327302396779891637247883315742612342704865585397573663092632862054207537695501138469034860524686243247863146946622170491682100781497931559301129642767586769822430207729066360005829637084061583807669005660049217117381897409606930976117554010828996735434420471138279606604443476296369561262133181338253473570807588735697031783665856945152421851208982259178814259627704910355263418046034621923307868504958102334132278441295554493514847092272927490983486197787959844402376221812108062180704012807125290379877020394574044126641047730357767665727342470073418189187909409838897612514711409513196904258266890739435975801124564957381568358072141188612476808281064628481912246169410685363823515899495664372413445074203457368498487494710154984241377276161141455953021012183709032477259336877144763046903281703395882308505981024037387422258912872137346978480536668439344546617287130614882052396076309201673157968606562138482487821936986838820379668088784708915729831100756698070543152958163748015163183064560374996126794701473564811659998808841654532227311514435761488995186297470941159782902944828293486393359281422739198575060739933789606704723414964251742388852061258732044462579802227481209496580227244872983109970302210619129137539766307660634889967744291582174823478095798718005994505483919252260684398796092708260404827994374857903932360703863857967483043857524046381549801048260093781903556133348223859925055449942204560627007281798872771341307242427894288388719244861244322202269333450613313746588213278092046310411018532156457401041007799893488492415847757744431756105778209883313011339423048434511816503952454644151951260800416661072136397367640935260576274867075351503869476498966464785199466707915558619428525195589347529758994679997868144409870830119609845226239361620505140564811411813353526165465240847811944342881956788354280861387684840810663409671366514263470416042978025884468060290192440456696451524117575760831378546033771289778638533467377349950612187167023847047196238912221272091757580672680268156736697733148133910499190295523130135830281556283706953385563521301168751162637296920266825689045905598119062274464474890605157174857032329771811083510838042216699256106245857469905050514145214780803184026435902978915962864503667604797015355478909625785232715978682801607065173579727834850783083614725730545338416927976125980406564868216377279103694753678024765332581977096678975657210026796636709768693493834100965510415965860819972100247012858754835855670528634390351705726797015202653426996260477568777916791693424547067907002880197983837125205786799382054543327565836935446379716760045770860190844202390927104169030157804340593210633121327166801019286818459713342944934045272035637157194240079393126657850591542618153907532347723382112265956165365173424461376169979127053175125631122953697783926052471250766732217939524764651014492703146160917920839539560279290909278587600221478200511231844791520968169231590450234137808774905604553477091224277827496601133640721083931054432576224060023322611959044054865604497296047623597128336740894362482016527678149379280901725206809787918872780267970454543593848728176303677091348057808354808623686762346975757735294731073989889257046669968687385140362354998554273684548289679140402697190927386767377285847599391925848433957918590957076619908765261065360419676911474590451587386847393758635957273599983690671208048893425207754647374915642069058014982447321041410906415868422962176575475424245439062310506416078046809690803167719489178174681560832244541240370686300637556677391683115975554101072912607842733412434818892845709338778162484386148318734148336676144695043716801738062016159752801909518244553270734530356761053718743317217418928207487357340447616615637105182157314873708893609910788232002312233679717427532788075023087532569863501167005927872548431810442184092178177695961488078941954899877795324309454593020517637933187449420005386159303862678993783874569169046854636771834320338629860511299463217784594977428579400450722491267187153118177071208633001621137950803309117525642603067994276569702712957991019751826273843728604289579929145979186289782228194862769704119774395604141112478906669652137879479469171656654937159631651906952113163578709865796177841218393331556973073486251719608365032543723363291942583364141649640586903803598510672756910507214219645092643921570542713699319705324662490893066710985570272758865041630080668266009764548462808463888422799311665130690557678387007219807378973606575889979900129192190702941435178274848581162661375295347242590321981273773574234763805073961009850029956157418920635627349704119470745168301961087707765779436819501774789221593973782908323838654814143240311668802283196790933044562038442089399577973894541496002129162440628937916371130605544874265125435380189711169933604826939122076422049857060103312681553408822664374630905584079933392561411778378366164655258979247214370524107307302195115829387682720907245686046181343670825211196672361253037616242651882989305730983911188295328085825531264093396323458594879633686389182337905810753855623589201974925671923870720471293401767673603792434136323369676660398344669202048893360788777686801825724793276694587652573059272151634520521097244410727129227891904071006476217858287661224923984089455432645996043985931483254830957461503434396523993828851689742105414835773273522177482467909431952445336236876898104248735272332918381555975644625149136568932099640278857197817603682494692791039282171406168230142722429007835664723408251310702986928786041099946049823922894868492916765572827391404730378158362954781697765987666169147811701779608206592976114534841748379876164099559484039204096026652098915451644756771853604926429359985897495411043184964417091685563496616223784615256277857956562880250895050642599814822390375961409979033301493030433987715107493376495836767193374467040158444403406251112462716050147948221750306689855546274995344444580333405031908071689839331431614027954355720828440283309946073439505782364120844690977597845070272087783263080105225807223746542061090311448400837018245151233640312670189135764950067187211185517293539270504608439388907899099225351646901775234258615202817769365983078400352105186051757951442046152791930413299628096106213385446391502168695903243439079109030797362460449956399725560843731469971050539486021897227362317566055956801941333362734820483916800716550736146565965535958645849978780907322466886766722446988929316372257314264708118656740119431802598139438615065749231239741449941001409673708414750167442806182031388412969098737243268915597591711895991142799387992778430384985838823140776136077009680214498981162052208723304082372671884744212315958223792180863076204253233792955790350082337312801375379098756230880374970789464118753055547451282522180340864822379199425007316875456789645766255096447669828931473029564390242391895050994916525020386772857463904985749855335678982245689121834854802824991322763469216888091933692044557230517861764531668027419784081114288925875651556218985315909103681311873922717738050414486018482827085293236279524205647525309611583624779991285161477646573835133823570499690234076368697699566072178146503208699795827872914477787205686624890130833668487904431987141046482998755917064246807580297667493020387978268151251859691477289339199826708516779194229318315622454640312385816762677031712105323633213387247731752508768253156947083315268097063301550882039377164216419634861370328490130332670697570395352673623225568447833308478095321489441609668923267670244329340535721913313259057889491540710801277446922626651408892668684809460436866830079241616067923938721267032283618401893351251431767845076724150930125343291676678125278344145031487237986757102911066929625506954007047345614763274780306961910670422813857781363324744829529296721852804361377290667103556983061225218125823803639588798748421971900638573289530128089758322096598428858911013596145946603610041987533448622407842508392914397683509269107557004876928255636679549567772291020890482975915222583639290553808168899980441982579694148116013656511981274743578169962425801415796798270746770625434902023533600801914246696082208599347066988214555964248821228570525583352248564188033225973496821097031835623008535097041081004310882772552684507670007006308827979333251417675765496793494622268232681989010080472797331435697152434228384258824495703102230299162705731971580162071410510682484195572925699405620430138522367808274493574820301298713866426826835796555233916371536788703079472330241566706652737496981670456338590001304275488844156432185919365480379066390805711609510724804277116906414156896463663710368674667065278407330268786569432101799385744571037041272497925435463618956307575666228917443233836017522802880574056407433064627719853302539607550870883631663297956682667586526416956549199379255386504363421480557324429397889312214656745144751082128404278193032623277117002567834900039773380705857394989701914500620973049719743136116535932351564357167574549167101880658492364719763368584906594090794339835679463234980920310415500493984449119759096986727683231406105121353124349656731461027822333488047581000244689094365094064744086347946889485538330910819968877366225793817128999359268529306001447813994884207186272402668370346811411597474207344785117440366218614832546790858101712969415230965709880331392020348071280924600960661242600795924186596995206087404644330018998254691589679440164456091830476869081162154002114379440147996898263653821986747953369593861113290180758628480102385600227108073672301964045022300519170693454534262807851137790502183622884562695976178756270972226442759004814854441295402052923272058027581387480294460120856992763259147206089775758163540782187055145841659289040956662010559078320037254652880615172948641574225354530251700219097561129324639624778750231501118633867831534279957974451528795721979269001471409912700303526573211676910978884977438464579911378769228818318275794688018542736131597037186820225475415365119163201160776176963689436622611639160371238566876245319107518528050480268058170576099856763972943884356254867119977004715143306956715385198501094883862085917072090623030822064434864388963599870483043138482903184924252397745657050899581199176791606578855640378932877199132528653936955341043133404451105669768631543267887553275204702803692556807984525232218617630622715059623113712065318956797899333487109370430210382962513404455794074838777205240869841443782398569640905903639460676733807984985609954469726799334228108780365745914572870107850268043595124587008644954481531202033059961672720511303720842864181963085542851818800172515461833089042623587875706133294420787171400438392510474407281321619738836855807122438127360471746123492949868003274978993443565220078379189360110929405615872377437135248630302839784837997853433818681426042521882982385664439196164727559150896447364189716573949644962849243397039627392060947790464092849870622791515312074237502825696614254671977017090130814464834634629656440200803089182909539283337347410477033854250947231254956847326387634463881899833903109565283471130488527822527151521950074767742518309947695094877304987769603482421201145802417169002556030704738514718374687737529997423633187393082234813039306707509899462595246558049249209626762242425958605977076513320865000145264226651088328546855451877765998981848083848850827712466125217035495006987429554269917263616719403609055589070967782414342222698625524767249059788557207276733255712535180783191156371008332930646745375834355612048823772986954637749020452986597964714961031345496996780306006236416572941889785221879422148981435400576211165930553911331654752994835062567987997688176867543280158189177053296190371151870552698115998503063695476633015565080544006695023345913308149440536120745467258626600458465950643081931088858961003210577905039807781320523659085765734159051068042424191747108978724598929732281638797789370535086831308590977299361645832970238503911940027473295191600618534996748992773889446680550559861110309577638125543272875308402381846015469401879752208306347353999696965591091097224905965610623545320959917639023079995651486686050999245859720990172174877501280725503894869258245660213663954112761565853009579681026443897100176356280665896997094645582970522491095173685301004949808964836136257084267527159452655948885213557335775568014130713027401542123543478608563589838037276921850919066920735012440801620234239628754228984090461721806414488459963990770892281381836997098139535609254252176646541694497876115377575239120885565119475943479132730902096046344505014339513443846387831473417474388435918584133880378203628313494305638107364661581491426082715636039204519853244377263798529586828095230121091044987560917122152924008593580571207913135474933783462472946392226778665668815995814248873891947260624224910914390423128648373237101832917283405504348804744774905318403322888098606740248822390823886218817952998747639234984639607582426539397173807682955891468495498999791026995210762954651069406900602155806309355279251088989587871060451374834385559692653167267907032790965461690942921636885012457101285117255905540217457219063929424548198865178195109507904075059071648024865980153522236946471421827842045269940747497782984279949687852486385428499731307192376997365069538577405504966089318927491311414341093957223488844037894952620831690666327118852406304666619508303525452246478737322871304977595010995103130964126538793656435359313116825361748033281136543498801726624933805522995209262570842876859884195691499580716762752648074417519814098063731667695863763684385752503730185401238380402537761521663740614636025937531318277941477976869546932841252846158737436771093395661757558379224819066700526170835667202791086670800636750958991286904834143563223675415916245055117909291896617704550418347456383681711760247189901189819444439355218639844814214993819083952281567175618718778148180523533817916263508899684475114779675967267921957004056839359362909704830599904672851239588748187096718762890975328909287477098518760390975826445692214256895279954894553133363688750558479044555033250962886919782551347506877897704731004176033926120679268559685742389892782016519103970322853547001458290808855737578315571314917799331714005854797047695357845079504432253285858979113315754639115183132179514670692582573965097142596282418686092181721603367648933433429914605483348076767082377641690649245325879585662856743324703364070300437815075188393662010006781478103502472081917695324487425772725785392363471122163543540022465213039661809083159215103744134197722645427304580694786129556811412717861086893938752487711487738259530548379418699018726174957105291505440158919629385428754746823689971645084260244715542170246513644420150634096663391584039495749277853572216721440022174579813163592109436424143862449089557986230479736292683875486522439954769728539983327175740001210699368945652025674433091405608625330645639685193482007050836669485271278270122072878049649426151319991124633448455134552364394555434895969851610373006339457459435583058721334312671779691616146926335950335788499078723589758922480757143434715282984892440654699173572045684472937352134114640744557724276424088660392087403931432994220191605229834105425656081434696654706637091301938368151790562074345332462837778922950758949296172091170712013674713387637648168487075989463772989001607205757916420059973520492115975683384350137124860438236375033020120078185896203567712934173577032119159155736717220852841741262568319209049793727117287010201395301890567940606935875313483990599313564226753652765005087856287296097476973295310231363554390356648882290299096559946411075576295959754510537605478317338126392762250940743847766899533572475049341696192664600065010959739330560873287127489041775245296096484902074493640406600767985754889721887519488765934917784427930678109749764593996251188263963840272229703985623539844069034816650623874368974447265612457755552230402216944330535996830045273742595497817532080087566748543795553530035890744691176770918849379591658979650832553936392726578932178167789682523395337954544107689011923056347445184991950619400979830622870217937796342806431318312894324844612351584287836604902954773748241836053103254783543293968221563165381136254964025327178055138662391435660657791767067929077939019867252174769832773015252329085120643592975332523417706695523218801009779875549547290241567399778939748204467527283280188812927805869199436140471799941713634479885932719421785723822810440144646665214551198583985874436163053476842455618895626972039018112868789249815598836628843819143022629931104196593254254284573726088637821335159081467636653967174300827368292486902927299405543556454130564854759791461331993743906363566969155156697393017581349454227922922931318006742533060836141011687974676633042510332484799437153049578184818334921668752072256120846225223487077382916873621147674751538441104692547362528515889089139080462736839523881919167211364065352054103569527436509728175682259428223148280475788877876209506493216826295139999646539625615949017959900667432658217062839278282097752943163035337303187962973989754431958028439750938686058703132038998075988538661505076951040258759684044591714559300759648962265181699532362523452625565194389057247921520723849117726037367014129790463160871615892356872808933349249060988375646553078949056174621255801195534464279305757080430783043281002773466246070642493383776833432029345364881650410156974384794138368260497590678367566955238306378139047348136459147243061545320026409037531411017151004381700910974778830040103167548545469742659767628017103618490030856511649666370887520298389420323857456142718430102914588434485240682260393184646096908369205474926584177007809935936088439530393483788021010861904071403555782750992709965747258821072901848206638567611301379212704867373487097014651519462465848865797922965436453704435059590522909585860308272961926788172771023375264585816805997675823852034855862919823107895553614586972995737427117433363218134942331693842906869853099688727777137392015017433112365542152754218253551123084316184358908101502558974328686363818872616511476074242592011252094598345945905638745101756903288489393646546007274811240495336285336558040511956398729988913667472368254224888440195647977950412606532873747410803909854477080057118975855934154671204510998815365233273277746375389980934413789468421848385978402270728887382896172946118680279652232555644694050884587904326612756377510088897905408762310605031030586609364743963621780696031096377734390435698387534951207853788364270512588024211826911187662812853858597214260071208905972788783463859059392029120027801232558501585923549849854802503500127732567420769510104325621852915431420743247252480230640589683882493250791208345875555338211985994326698044658212881899091640518709334478206605933103323405367377304406953796561242395044793889051897215312496444927034498099226999315217654553303250103567521799477383525441287851221039175983691468233228101826388467100528452906304635408636870914592008434074217247770127109608615070509993621890501571096094450389768174780337626032427769431903422327231327701753268758698644557427322540379306467558625978071948744508239497606263579402835280822953279872260555550434883621735398809952148480456536280875880942394309787236957611871230239454167613624963104300730911267602043075330389182069267087781019687897604088345361935287725865568766008648715900598749613777464200467905802697863645746841107908078289052204254979398368319660204926895323182141675561541263099636424941677945256747927872034367055677863258721159781724532602012010502219886505465790971330780015091176860092296380545068158849974292693474490515195189355484354183024458172662896351869850277510514825408381589030756479510392784657909578115250976900486488426326220570393642125608549439054620457412293253167063882881023012644523425485124484951183074890469947650327995125131711607250417527384075629282671146399023650772565458525517671517444589373695564330611978143394129483781682950324976279676864598732347164230494541235548665527812069054965444692072573595531760063997761391924135808183030073377544601832997629536965556689169638120465151972408492064124001853394788445601746180076539432838600660435993054933576768283052646348395431540780875077529161800195279478553216415561138562375464826481215200106052299252519272124266702246130386751193023761227057891655791270761813502507498521669736803053478400015071823204016160560826436655315442949690759519395865896246390550803509723728891685351781516128258235282439372590236868298898005225290671831537062558985775473408435784106959495946218883552025104935982714507038675746073295915878336195332372876399582856093063762094091736423840141987039047852348696896450614300828777469123144909349300863147262989596633462408645889268324476057090385981910612276257253360711358593089570371119021986469134692187462892401368338081008228811841530263972948286956401927871076180976436083867598871068747571162911101007575516830264738493830595089258311441419581277769067345757467517669773155963836575100695656774428917806848091452849501623214036981046735987965714485918009412186471277802463667671960490422777352891873428415783598575960454076356987477138243898932994530754147543102639177874874957492563256704901364434808225687732455936319798296313072480296684015590083933730533057390946713857611455896703654664270651617146985963969904386078216774531706947548689276166732323954014071083202074125838029295526234186388124637238168930034986439396926118592219934519555313445101568346204312601016241704391304322699717297447582258148565295915885349390736195112221096736160707730115094523842819129294687503215710269848587343635306303242376468776491877414242454551696596535925224388792774358516473553935147178752883228721184178001911957115144822677665026525982729921788218961235155763010012313433628405419580298451720942162347760586891748313708160346396681279104850398535501907119438970115022972325810951861184307247602988419807189098417393109402917180800235820061054936456107539521930118346090970106333364778493842486258544883043699330025349172746201214878765990545571492490862359362377132814245358230072055328162702462624719772476271716704021309894295414802236509407811247582249977233270018892322141078500222664534016710936458532557925255004394429708979518042358133763096922830894358362602968071273021113532416769356969166361395560531181766032774327838858676311926325877499026797056777972815175032464200755069912972982364564353123483842448804510293617436839492825308209357436048813792704140812617315183660744751056174612838629753518420871609579211208929166601244339485478738883124115152792153478693467745944607856007510499327444953944157664634465003986819983195444422604425928848286604620922633305235505046919539443749959861719573412105378296478703647004794718090894336046598145882590845331271263222875278505567009915063327105304271789937620503031131336457145077441745897886702198750956117387068445319589633860712751409299788150819485227303347481643462634808159682883510562107501515566788480355042256947431342405159349804395244299686460201997294938197392918333691869773089226036768518433733897262696898845677349885227249621752610617469024653921002343342773601488581198404362804912248053928003592347332669319644062646041244019298468063842950259253314161936349529810031238881772998947597246637859034758802366285455384349397887416152744126212516553859117797921891849375633973461113450559176603488338091728544627671271405989865805198403834729248395768197887122525842403257944395909381527226597682613027192546187141363198259364397975856742547141191215890358801427126654607298306719489077986888073565639514834697810350168414152413281533914609795949020583271314562123730394356192420548358585967233877160395345961360680378995580918701122488888016117128968973624324934175835689291511706610607802687880237189232169765346554653012466390568836769410299912467528846461188990023795289767802234257062413708228794800584022370633208147087327905927521023925027771976775819690765286017421603882244695166386482251567437850398855285476187321852742092357186969210234124358423852492321033503295869693982883883751294989391375464526358573033761447760622560085706685995067975949773387937540491976512023601042063178560845373254819116965923850686019754558358085694811346528159194133085215158776425270988784312172357132793138670544989347341419415305384059748307917190523205563966020954131252166896056255172248342560480642076870853337989965369203055233967963738349519899937703801237082206742545321082812827913153192898627068847042230975906477092325368300100139908244623307383428244247314725964835061871440842647116007401793397176623219893803434259632604539276093431600116184304514215466819672643172137774263674819632989860574881471094070730802261917087529200993202916626400629565224632321144124867555678847161883013527719978480781956926184941660159166861103858605061871443758037681128115449139316855164191599104784054703189941646037541827822405079734940601231394906924054098645982660276248239047089524258579423860076554430411695480150755329159343909980292870829990773556838231616177093180717308978635929389672644445694043341508427253173554306562760749191382192548808516307949449924839258727954217017342732179214507868241585984325016493145113880190075760410959390203584094892240528634809031135025885143604522025106045019394106507924881552584818544861787441735604812292393757079072562257529231808298825472017432377221968809693894306953396520539480357230718028981384427048027939298047394926399580333298034428444379362797311685342204070607224334326014745955018476977106689477109787824343448243280269957037878768986233002006287846531931790945142366680864050039172986476471893202247151160210811029721160937607827617491660878649717484822878607306741667513418679168977455189435463137857220885464606041716529789645660467368175381491586487989352743263295533737292442121455917664748213800715559962919405159390108028595393213958236954497185046352823489398819336810258576175117356353356857498389516429933854076552103246130911636127598838206931427953332131578138888223855633160968896437650121722481225375842204793916239876595383838701433317842450048400445587346248584980268212746361771888961719387121754381072322274666871440429907728833501563015022035561437121994768475452788476768770276291000656988311125431845545634676491319227099770795934288582590889472403850849664411631081119936198896008319712231064588166946524160863899001667877824016618525433204101018737021178575594839578521345931502035547091160002153550644110648389896453561132849326799611585277974101371869766374084366556467623753032846947533343603765337093926945415170155534325998776698527978143485589457181606633133088517863365338202175862040124163154211006262788122943917869939885542806075457928809916739560307659953882825338848564160520154776284267469203717655334986695424314147517883709218028845420678776520668838256671308646872349108853284315948435253407022077991408042838185943938754639240223118559352551174417096205613291325588933923416010355691903977485797925730133661015755148097494492886889671942762810952871656421301224528187378808226137127352717418027212683662665579919028517694569138041545807866051761410656491074758233028193840560142541420308712526245643521073342814216089421795561311505788888694754242220958610945658966553494245776298828974025276097935665013344382009706233103246972580172625733570201228760775153269590917175181238967566539856488132079383334401660051892876021699630118790718731859180394048883341746076281045766936123030592001581441655294289733339479873877209874915621088706635924947979050355906064618470953975404294884240242741318917220098444257710371961138718365632162595355010983914060599135029161045262470125232561798847721516103632963766744557596927673047461217570590774963777208924674898886416265411031368614368294538712920942699677749834231553709778551913595634793686190475042574835257485328524990175331593672152443090872310180332897287456391884135896218624972832181003737390645571900580046284717737584204298236617702588289750661847672126978782278904946672117663377953444434325365872842338083073653351530031257431067317702356384842245477179384413675020759375780068620863508323398128901743113767202371295525099359033324889970734382606975300068453704204722376989418704163746576637052311008223591519803667380981844471268297855333141314680993418472511798678772555299251675247475419663072136076088229120128130000024826484781232361659446934696511551879729757959249682782759911990238162010011243853873375702212371328706431355560494776125870783737517252842276142475492063009412041308207032012539506911346051675806123928280273193227313295932471728923919090471923218281166798679713974863878376762851522210100096390005696383497741510244021327963975318160687762651535383525847226647969288556563188906084383401384557760797960913299151183313424425025592299362384461033785403356330479849425172037937281448939429648172853204716083321807609852378654564595430126351235273178563200320881123017715168265262709101318772185500423304335649465200825072561302698406667583539448489786490650441437683750445553210936681638186441587539637755087556489374135185351966346359380463868225084651654138830424106675822883728132196515682013150618652681790482428190968148151607418884195715540198832464079019866461885206816008387490188817523827422545378074587504709275119949488776419303345435627208110829855458673973103923124770179808225293528396272767387298669795806886463913363723032770894757869820032229626070819874986860432065741749140747129437250939547257143310781565240415597052488564706987846793207958801523916985243453431030701556666175268305377846356294747549247452892909208969984405191050791945759694146373188582854516510629875959996136639098436294279861598785312376137078269883178091327128808175957387339527315060343506609388386366646612956016026768710975651695730375785633347707587758742219191150321771798190532485808235973103217862694289837805871578984647167516329507022307108800657270979617742091692462893541418757912499599549144186257774441614304951505165946214366874252080705191324530068622929265183847689932659244738266687508392175943452565655541240465537602306158598625990116503581487616490919603190023668853373449433830873429147624571247934416905134234908415842335848074346727160767355242277308309327746062365685505182545971037833459886900941894180684445931819990725505008719648370045989017669681928149039517489169207637056644711065053763103725203880953693849275903885891202476648678252779931372053061784971287417053902741141318859884956315194012565597897234731893817707965345307070696608911918634977243484639359243997983569653367592458222092152989211509634621269788910647038981400662469083216954126724238380650810577220579525957711863795190669081181027258916467533295307676115233824538655237271149724681086758089043940621117181174465089133165997266294960226680625013690430439386814904961941672922612794350894240749054597034564975550480267668715929310013485700779231822552120680467608657756292061192330544153616190955485051420423026497789485874646501224754215298973560807631149995238574798531533678556448575852327896049002740369664018888189255521030285898368832556649148554653363448366072740636502567759973336493213396077050141565214662512994693806558361885547051164595887359055941404267802692736263716042783284412872708230323171411055638688675009105211754998425746236214888294171394429823965921339034254527599016125697914347422246130769013798055925473760759288205192143360748041549726313196750792305175578640837668084817672733580020132960757366690532342837613263792849096899046259180881115485548083729161282182653796516434123074572281272502082866590852879305358705601374421275429997730294292619399006307089685368865173383644910424734382388017241464092752880432852371029829012692516770957431522664570379469804247870749351180821975497648375902782642826756905792001216406937372861187530247725195678961588947602596238768539466682964692614339040586128868146528303299922013328629586652070707953193113951041224672110146970733610080737720244837589798740332703748067009174781296692841407967263532757240931196833171004672170287134070914570358541336396815169532520582773781703745784130866492317944929892749413960339913905275246927970820635998904064096915786199266447030147270774566159640075788641634028633327558221233581409074038621317016564860001252397767734105454145533465685614886601271550201709015309745800116270400905407833783931857055130705392954498845188245121335141382806412447021550036673535202222098020215359095741321881302604602134437589712699619012494656125300422873238334350905806718653712890694143592019638359945490253828407611691824730591711344583125078028226507817267951145088291773762358146013744861105004215548488414080738632741991529095550935713021334253773308295171988843508615007485078733684930264476957437876878092856916400591712948860586885556282051491619716659737247780611197677056730067880040918489982085815964660908920550372616097861625138571960984094571293334648314768469059781595419195383634532892318835474286740237146499641635590788008810729150274684785141215986360135579516140865926068059931393688944546409982844538539712137229915532090814332762629778649342769053920022119504332047788000910579224448003031101073626334958374897844949913489748103471741479416135636158827309817692413708496863990749267026992512865578233190346848375565315911628917331815014790666266910038009431873342407564207855209199293952483648956885435016224591635389209682523220940627116761163962487886796905025474378981521058517373059107223187394966356179644893330113325051551578841797312743039681014432971456389125997341402979997819327799879438552979592671569928761289487953675063965181012779442386807524725632842887430587986766945607438489495210482932230633173515965902220330951271568372796279236947190547951438499496281792022687812676452086477094234357477922102011657911972550206424877616329612984332087829555037674133401806197822646612031878406512459457044128156987298240028297632281786149552052567995039410939869827617465550672181533989482611304827763507854521982571073355588936995165738948512680658922499835190746159945522472561094717090123078242273325430063111009541001545674272645958069687451874560664328800283835180509508395260405461137303831982773318486271431215390907527950554768975842090961611135319350476633004430859403270810463532598533339274382646492197331657618600770562505346079091090180028538554477959584166645977989427636575495991061984111579401042742720781668575185203837793160170753955910682977757730254850471193994406862349246121902344534843916960772633273626812290960796819291064151175666419599521703841866978080789397561832826973477910937392962289860933578283874211622674024190447181706993832511855627976714212305100198732584116336613154393983312983125022997429184493841070943596821582785689109619670605260256327795927785616172924325392555320433316313936033127420142794262939646817810777819822659696575595200022585944428007769340415003218194274962577550080069834435885612037229871351948484107187250346397125280294841076473804247420586282269337903526960796925733844909286331519347894582333085739415129058303397194616630246522896868882290914460470234063176707166749859940556864592752346076386247308870710039705529964303733276734040821266934367035083601057898943626247627121199898212238215410333781470902150596773916476017577602167116371869194144084021773880597669726762408487744720661106323376762800342653473802234825294672586998244709363147825971583727062314300298926242929158866076167862109250950095156914031180805006957249115086770973038194469927630885240679491063887433812599056299475079381427204080779489963550105183368138095079319072052240003234956057992624370270654781938128570951256127266432571159258294311936712698304440981964046065473049003798000138610803945629018954800499080497007684519639815816676742944952812007411640130394411830445797677315871931695077474357345580161583368505786027999472671792364487019577795103789983268369394484996027392346040730549885655941158942896160178353785760854498454709092506221776854330559819520432188428244081641479434461939050600205999359963640943828342445921682358809989883246820153433290286680097904796946450768010018832760222385045628622880914815569825031081863180220834923191422293162900338399573043017537177869601028294782456069713121998808174132681607106975943865662054254575894120948205391118497307914439811855860395995382924727141499063252826025922335694857322442095462871517855331928097949730512562045419655278584319089767199193947149887634838149566293951918177637301235129040520522768578836730660378840618948640051037688502984259045282688364052376679318017937352575322041372902188386080448020513170637318209199669014008790383804438034298362502343822437925590030233060396810619773428708835576071155463926074299598591906298765125210614894100295429497302956478497135515781394839852108987572328837018948116001113781464706010815748013749607483850928412216370737972295948277871403489712638178979285195126915291484610535605739938109331726579399167303967472453963169373949250612739283648963966816509374035324870189941303710503187547091540005617317291354719881636897971892590153155260355208498811901853280294123968625545056063559925226279127341001272645258703810790379892508743906784649778763360680901524996114958962326079771994490477341750085443197837858156515796776483022172669108218705050586990555435403745000202417995827918403068152351463589272964917034043764443317475798554361432815974627805443208187227994332463208449845239576791851256922320380123519809695995919534472589172831846926200850252065312777950150703452220172149439140644879701698440719852880616251618201465007373330217195953032712334113579668557315509632311696614958470240278001678980046012212666305655617954764564443215653828469975469987808932508322951520767858127166834855654925658339579357142342167163678571610200412960333035610653621343850876451350215586981006491231812504864294743806056015341018192503619997193104451857071859229754806512290598410271963649975196239129166682369491362728115830740055262043643062413261259450163559106984790405327167167156401854079853160611412172360123634717228617675533514029018838234760441179229657919155215928406533298957830609930345097409162041483455170543216177059277464023539091125916591775126380038073326636786183267339037663849377454288348114214515486107591301099803884784403976285244900764954455621180007668259128555794160687382149700416241428373561500621859520085048483214763205701455564328748111486642116344750309508263296547400326398250109988230283634676218813659102126680640461834741521446652226278618928288387042101411468333525121251168195009913615918748311911546406709589684867566094189535875285491673685016011293059899270298036627753566207176393188642450762514157212706258497122618950846428186476876930993224747437381521506589252526213398268913313715041595282714976994338972311118509924291913754089512215355315521645144625073161983511317055749327524961521291545893871006036838366291617417085628258363728596866884939234351343406118558805997202225114430498901531670202580275087607488977602689060030406694943082228675754749475835066669897649204778009854547357611786143389177802234767562575700217678525124137477673397166875568448264315397796422544392082626142297320641171116940566350523920116419170199511910187943177687544118092716348974607186858855734230358422089768471181392023440018817593006512951174296833138288500054604915812424089108869644771802326996621736274477898315352030518136375400870518872948039291037875627976209994168347633706295610953540434491272772083759887879768600028007738042727664859533813699081802165575206482885343661167687565859721118121876671376724881472030645044688726700632893456836065703283489968176793316053933747244865916876578931040750458897303412418418601117599416548344276595640449991463646662200528109336973619227505913557997692132617692466718490219464087542425968443794940920513933218978244099220204107011254021839566750759346845356247984991243435194784744185958951648200937901627230139759841810438903103456891649191714529489132593956774519725715287934242923141910112562135391694178815024414842427250026292317916441590334421728520206237837180943585111455200797522455758302991889714089114434240284414173892555390836212658962574432765687415781464944030173967444852292952904011767445840902975720022297407505475971637145944507218383275734576767572501920707782611689832637279817768875340713561046144094558852850267801650479753008773271519859963500533437243290038220625132856602438238909010408715890002103949256218999808987946046217835988313492151810201192516754636919222830053183357866870056163128527832792965364682230140989894882195400648795947715195288692094785119106595045170803718618945158529785633243049121174449453675079697287284219354949603934241457444354570182091955094296742555517965853661918202096922423110457851665603053194478748674268730506276497107793428928088273433831486169395492468060599355848459344025945251049609696168351750461297678904984593599782776198814138423583460271068798820841705611023162967050876092073009529400764857691711923116902996734469518135436156025279016934788437350495736731470593674895130787308943765497815527401710153770242099905228848204675515227667752331303600739729414047462160825461247923726630404484064951095114685679567962273548636574981531770140671267361266191046359386942625804414278901678068588939083139451870508974009422246387189780982943536536854045939674223769134145561068606415233211777936922872069943145570624761142455539794248330893284610657105955108983641690828065547298534445570715956415916974389545133963134815888145216380412759940100556312744676805989036147123290995728597236221060721712538019001667209683975076163736136757493239974850917935049452328688578021731224776671974755287368017011342351710562923070377546544769385454687230891102691356900734149075271312809215454164912944377111391432955246644921336795202372622332988926696115792695484977542251478739336428342576960666415679570487425033229434424635568392170094157046961579375316516845484863645756877287777084530734325955411649780138480947039543843165662195160910927541946193882034738921193552741540588584881292706268275651580554956842607848859163994356213957675585908905275083065998937987020864140500471515896013734712040665016524003242172816818798251078621564056881291996141324221569958169587945688864736713666673088480581681266829359260175441653829855854223552681570510878606481536546010088322993389458470492070532258237156379240577232790124363152920851152307904543330580274234165432681454523174767749515539395391445393433551980050221507492255541722039251106146505235036419698271021596025514375882389256973778449705024542502609926575191640436385755856801790152246872119190536620058542295281327320680519909936370343714333991553990996406420807693533368812233316986022872252134917404979097441550674019357014808349224449655658305010377157938334480637587144696098275148815394115108616341691983055927614600235303534875112785975854092105067581650516192534958831913085214664579874957795182358142132268942942618362273986493435079017899953219035324548285756503700311420902787555562147905252290773993378871491543117607674833298817125944458086232645144024929721751977899777987715082522909304281400949672642760448898214516535428536157407194548533609591779507883211125871670096647377358293435555403533407287794288691122278620642169489326025488679899105845850989737427686425214875514282574148821004323906821038629852234002186128079127188686020813475378984016995835927925543121506096020382162556165577914706748866424332182134000589409338816608661240914941541462544120089308880914765608171003078728792740375875341579893722576360924423643633476475029820350415610657734223978214906171122779424621862033221209340579657319672839724384793678645957072229909917795341414981015801200618544709616192796707295841278875036592546247013719524881456990830504570702204537882229264104271907761964486787556409167994613402736170643089040827932205845416375339261633308728479468263973422058194395679446003239976510739164953564975775812802198205445644228756593844331465470231453663924153583197137107308117903323553064004425202718570118137977114902928349861428374193064315731192711852671181907641818862824740015392745136666968536755020047622563408981267026111259177847250261680625633404700836847929202963781565333422773505139707464391903349316766329629306984946382605567076148395254599288067004367181521304597368899428147159879067985486526785651994175960532286663782848064018898540369903454914177489863653030265773393138699920957119481055685345726826958926219403288943188725350837131324542062775736227092367632962921946454241708928671349658810464332963604515750768907003846053574368173489073704609176651455542302961927824205527436660672631221798032403448121921610586994970242891056700388641127618614627292950214363695033056663444164140453070840718493402774926212190345531002487097928436130414247375536544075603161341677858049067262103783793684221940409097774068358088083433408916560164941298903670485362710702118947452300284991144264623498232338965729557135819316991728697147167320326111039415099814122622685456736952529090123297332646494426520132695777298654635800347129789319319570651408526848130924891816428906887583324671793158801771744265527083125115280868175748111522833683466607860258848021552069075814045480251875714208056604733141670394331499608360086776351572678688692902935379022959730585563362301474323454514293375786250600078062323590601134472191125646694380254278106763574806932076585405177126852221486009535706439123972535229489159993773186445000076413349609996591625212401870349955080121509238030515893175710648977324688801937419820646534931923382573457156666379441044939380868676305308302462001755788225523169134865827626647471540347426407752058716165094778874045966169847820302114194220984613854657427012772436937010969672298959917709353737840458551475871354397467319619280818356440600438514483974347189608425487947463483100125287445477014829400930933608393553337586651203095827808004050973299398682621859828704408428977098398151399751172007247179425980812102171951859253292579129834524953882637665521512038550542402445318736329580725304420831168252787033922184704212613739930458473704056221438938896986016314350608208815173527455586262418792638352955726878741771679811912942062485858352986899618004258986131142112314770653028486106162015720287646222465606991159144441843545781985804735468456357992560387264140741113060883588936347843551584701090803922447536408033348801560802610496628406022876715964482946201904506369919917812057697323373976337709354078288665073548787401796943036104708492703051893778686560050968522798665969207574961367057989497922379906825942533371755095052209575026007637039417802426581716845936889741934158518306103012918566131898513690633588073545808246899066942472574691233233910656366587734991335303114762142359724970563993246806823368401447593478392481328894257372571057732044674755543947328814358034758539782513152567159612388269998911753797311058748773432517960262290614447213089310311185069260123785348140337005072000179862239399600452966833795446456893779184218256193033230990143782563915530641106185857643807001168287953058146837301146952591336387224929386214690832191113735896071318128953509993133908477307574178977613286477798628247566707288953780187587822168471909356057078193326679530097280498715034099537510330579922427352230697733301273821912991654285388603415055260692174999191538379887742456692552519026303341459794487688528105731180547739167200453450741627565829316283317197175238156515624362115127439283780933285755676359702406443052053074912893182535967624187671714069546728590393277790705771110414664019126131013888552795025038864897127727860284146762533882491775821803032094000260408598192159069300568114144698003090940574472198852720095889733926645952128821232603979676944575433262137566517250322628170487766346860254953445775454181182282599217782634340141019469211393789068010015689286791753636290723467363513843699288630423918675688578326792350075652793560976972286024764521057151624669681050691733852545232455479539340175596734782635520530111138671263844900288266020395293835966553909435738183513862494838422517360342671208824264657291616491344792309349973901860094631864980647442830543090456268160919073316971749549928297188397191614825202427246793752227353113888255667502339391951414225537353552845478519182128245972403367466629669533537074591764038837062314809301361379155476409854460993300373910474550175977661037145482948099088670242158776364931353347293430682959124255826705619008587137036221804543046263922134163451002896068795728167062977507375255345973938163388168910753176796366281986995238199720211851127793137242032959236688001821546793281796218617831245124258420388512745147128766271107698689195043067436369434371683603829897020270050848430712823514621450873497962491343064779647453651910986105144891690473489010555203456623819907350823154108545876279166398887856328279987880644039641945371565647651933698099215801518231104255355031651446857585137915452786473465864923486443162621426747678173522915277665680169360771347684257762208663073546201680555932842888349619348563069256578762198875553115450825497410423274836333259352012354355629472211268415136020764488731819417357019265118087353492403559599159686475894349807224615385881166073002817783017731815715979255404425840121194276327883384034136013207661077667432139297143553996148574698845427362359938395987248443652670728482127227635890429605481382560044922459944715060697849966521220533761064228173466735437398197618581073010680246700681728970579296293078533396479007802523504124491647202184485606926990405520211169840518360178375857219728016004177375159138311460255606206791092069186254038483851083274448376860900781696212243697011259955093159845094384285889325844205058802033971796449593579132726138434863663571801880447692908027840836001389653618105986106309466177384887848166826083735317781624276302969625460305177660080921166229734231519251324456317767749613538290935322860179694393228449253202108233264831945511669804371820530000370059254952432361166762425364453630470469133305821562503847153118617375538099005975019346433410248047783841078108301336952937321693844746777843569002978072667910481929053714817994463433192362026703700165754515704318307659071335016878369089174478391643747422195096724533787033290612102891066661907208888973381335875124148619298256213536416661821913307637765197335488934914389139144286914165301414037135729014864343784255532947614536987201347944671529835464849254324204688862015953447442945420738558469081722810575499600905111456366417443079597148824972515347084518632961392373006061854218982223153236709586282119932097090530667865180851813089856842769076634403955637895817940589433369626586653961142987146684609111523702633320827777530264899144798828700532408133810122175362073243449131278216590851353160868455621859492114274484544962615784299724132749344486058085500171144071969537545937777747097859594257662905555680906548206365425083701512694777524410866489926344669539862104058749660542777160844435706417582617595480236561406700016788044014182839528070522133317506793900255122811296997897352747141227558695468188182874082234922783856848063358266749166957437934300046650455542253710714590001561852052119257925389416349890030353471371837935963433895592112647367098710806735333099740391236293070529381053911675901284761597032379754258002219851898531873300377408505626790777916405385033122775286346340459664166960776432750826136757422909668519587813641289141902159356579339772823268627622783019079626348655377074251875191546659730472690229248571949415715023933805618705149729623380355639132468657446074533046193178386736060906793123848483602678186672999108854960270545392674607283953255763130083064369988218908169386703289681887899090132140997056246019551578548144968370104852833357140514050480052442585511104309242150478992672520003394399585974906992962431828995343384707934979729244389071953287307347034138652242719296450531820300642656150749156986907595893441756540681138942185401561223536736120917321286854814680894336308798355709034437560937267390867102440681942936447083282721590925446390926259411908654498763398806812174363667992409864523821507302954368957390719864748637497065670650406538381320795115569826223057811988554746932076409229617338700255932469714228465390798684115417654667530347863989615213025113259751548549952745835887637929874228022196076788118936362144293566034192070219952411784666130474326584339522297211703385764176153404286228250804278569027055565978818025598720121392306910992928945873717266692183800879601811730494785706441645285913287749247585219909724943599576744507910603119314074844512635887912903106490645180913265901293718304037240700202903224397659086111767157692839162157081918869817408832969874910217460941661289694784207465592952188336841306853782501002870846263634914035173789351108217662836347717160691274412914307850204516331271742251639756161221106110383127649112419928853842806416466652370734938529852769409024351140805062104664509982219206681682299254878247793951905467268775416949871713443279200287169783550987839288053761085039338188019217274943857982383123728521897478889606652501087429889643285389881788749950855638394367790048171898095449973143443255552894239030760085416289385737910124754399644484414314104568174846664686563344557050586029971768995817656021469963330120105418552258284073660561852487506899932882588308027746522499141204358828633994642787767555942161059793762478827396429230665848793171995609964565248309286303928044529553299124682631975614041001949698269738829398105334484087357384938470515892458707459748269981197985632163384113199977543287179824893281959365819128110082119090277609967561092159661992578290339006244969671657069443812832185337389470421973937703597959575882352957432008689498075992119553570247824481495060580481154684147793155255691739839563743456667793293409414678790643543054459837374922033419066965502468476082624287279415928761104608648473353047251169680235484329418111551449329194244355301680079668315101445292349918946313835059917819954813029726433207770567514054231561810426167601249389869392537516863392947553299494685164378832196785265552583715869656280580663935107092132325993776122690137469986257731283362197729536033682354270308307416297106325883973062056054558325080037018982945084488108356206356160986616281844727958486043157698540430195674514553944504976296736747581083052085453326788958686981033541342726980228225014196282682541659633718974700084186708938623778056474467227923154243754787762676541471995069575726923716168916839285126476841598454656173310420261672711060075659188395689343164688748800008025922591355244366897416088287836077818887374100881073543018443190634268404089024901823480315502412287264783970398517346034582350955562214797619702627926522575928023608440435528769363834440328359289706768856818624904252274266688695940200191420914233615099618853033513497871096422181893524726325141321955546292895003411286073446833019999339172854258812620294421740965532868986480448162792449136177850116222939143054254305020673995397547117083970943764535620963054338539417608272163386526792190175917743052081836083570475688001920674416103838534628891876694813616105592416380945035770421181009042761116384357472063624051879868743768279469767363691096013156623900208955264674335868502252571744887021440674316567272509093606003552115036796971909072304710794736843590072518959437383513712029224595732512027536559787566449737704283367574216734029145357374701473506267548918192267694555529397290454348845285652198016134160795781542263458559484164758060746234305737990498297639132581260088526916733174568652110436243402967840812195951761079214141537487627273872433478480030436337446229300284601466224622825130176825468117102926212931034583053037709795094106407550938113581893705621418073109098871580135681709823885554108031700866650584425796136892639757369846206723081862815799883517644803373979562549661845836868783344753783841597828416343921671302068206807288320875993390747552447453569772884479224803750313906054051835055322952472559172198237674677915421252743510290067968188738426497102777533029425080769028204670805337325189274599410315323515867533311524333146136789991156479202241121321518758619136605970719471916623278551711863802543613523163192810368007747625428566949527199560090759977842319666298109871489899302616478619347096810138696844938391729674562891150370654663978444425214343308448497942613475529355289706993349739857052992647490298419637516503002512943480986293479290189564473868670736350260879219225439050677723356106682780085771073615089394387959240842884027898991654898842262392471102056582931393904966375223174294564304275949207773173050568279864250446529303769890192917692072267272121473053387481040461431995152666872608484159395720517171107626862778752713266237349514977703286707388458848907504362523373738082805752227955564957235438829274337286944985244647273191522917499598639270670767218825909432829269247548064621961828030021901537700046325080608314277017608526587765613245226587621302559015733962976981202374385567409839290118904316495251907838033707938020147935850030772707688453274386887716395085956718208186173034694440094768808993830693474650024173231911242776694228469583819006296811511917296643157803740614774140016020178700005265990314437398180931859739180774252856039497943114864970709499239361002162212466332684397639653350030638883500974318667967736569351816099185605754651407427497898404264382420397751667872386635006023981212046000520293795945221187589979547920603133135358114760343770686574119388224836007763658445909115355721077241242971141020684951170323282190184426809623344296244254834230771002490613233787760284900458771504231554957771304733547107822948052685417457710202066442713008863317538044757295497907271150011718043175392899485726618572287627599507336553120858687555050487860848110765394088196088467130179376599991960164820855052256966985179439739745734343979896064138293359272693309207626651836720541033242626185163636346879661486030776818355331060579967317622757932608780641354574480667757712304453988962438334770182514718724477330231188604677892520392952504431636667352584159944267890431851917881808055663197598211526311683381517314459480640915135850611810858414405759885166230465512484128361970236145928171355930907587475247342707588863975309475271373770170102698710496189591368687769701822426495620788320213387927587668844957011315658890000181032160876036349847304867161273648351200461749326050477740672495029298517654188643087938262208379429208338828952406146161494304761585160583517418307132984564366056764324887471353195922433280450292096013266464689567251153599649398611970188336183079172245178721919788469659663401557982303632279216350012623519106580410591024728598174433418435238705277116956693478949571653402056611264722331377799153801780287380771383405288158583170126155473810845086927589225478772988403199576444455033501910623631363060378683131577651804849933817669503331280334565151164007011054583564347268658979306878691951135707332656584847731633554949841203431294760820144434661422257463222904639297395209670595792466039611180078970170756895617514458331962856596677670998459733151906807622750737165335273724237371248289277963426398064905542275386117429827210055506967274138169850541634811533904100316556177984835020612899698755667264205555780510497991767923582100919287474504855983653574547457830671426463496558199429359446151329313918672967802493117945336559691082347850470874336980559348677555955862204298329941408478916802148477090986169192843725863536685801188572023868724617629970972491889432927632350075978513773178081486505808516780398530603469588324105187275447563436825991603965139117340244200334888121016726608163014806126637851249485036072353016404194480007937394262425019168054617376737056354401774177207242275481082550423828890588362504458515512285504887980059237184858799879782381134888911842911176768478166867765981922454423282102218208331747248633333165576869455285037604337460302325020215017617607153637318332921445236977109504164486100914342548268084350129671069799393255113445397358597071693639427221405363676086989510328209812292771472192826230441750190098486222829059696204584604606902293799906542237055861945985277387305468476252258344540177091161078603770314657525188168173320210782973604251102863477248837580873105817028165675352942209707202384268801659950438655851454556748929963066157095583919640801351445183205616747955428225061840747547998534306085172603974556846048937259093033661002778373504723719052272566802424004903856491807210791265394981161400352652712910227408235870325247109774501172403455040583160127697513884872174395150481149881134979980084963136382346259110752983150018264853549461778720935173059104759173825394411795120145183539104484956455766913964416255644783734344901460690390824555000143693669439577164979110879502513259143222540020971627447154697458661109338211631768694355403785078535475623244673829305403460220385958855536775737704643075567570309652632086133764720537823291993539458181545624064126520996647723199306065139764784391105220379901989098060038948925671909916551326781903001265765120073998206300285891204972505689207455588354989913254962780232838991594600262843019301192541737218947420192173332284231971844230474870693341929975302965082409937486346503221360257677462273302057513747884983757202681131541311082652968628593851022298976690286012311437361357409875062725730755420345231705120330582398170374826521668415837732681478662725730276427743469386699947908893437882910284267405627676970196071166152526214861978656113207221739106612733158789949713821220161995950314617774258912936750638205060531421594435174015686132906010422257691494049920045114777045626719897835566738678106493162419361534420458732549893074296139111665434698754509832107133078328073223564063392720967669772793007628834827426200224773048776766656872101918047406046473927346372067692953495990063510118890453838884162748486807710680947599007993816269404945893516233036579317779972957466039468524484939054446632730658227801715908568973974777537406661515040544766672954589739389403205779270820229964015072484637663908921579664915498645697675544776276376691368497493373826819618591612683743073805420578131235027861932773735216759777940458289604410824617030652371750058214235275081702908139352215999913608932927559136446943668464995004946669716179549249183107343996608278983158874377890909532025713257973313412709910467471126679491404172543592913754760332246416827009623253642398694570389075115394647852867856657893828441297502151795746112519081428201170768530168591954369004713261165610317593359470672444535248188653533498375041111560977182162516808167597729744242522051184085459734409908652509057527253219854112980584335025829049999739966265021633356697621398020749003820301992139701518719258502814035992958870868801770929600176190231976658556024306444186211003821204942396527005967950144108796016850882097241108472943283777087458060107944405349137829800302236091936014971320857124782998395334497220387909119299862865388401475248031099822929729535238362644875656723865093848964310087659291320443982322693873988962235883369235824327839604512160736831958052787373360970283192567658065449732226956467064403996591408035959688076947032338837450928497992165696137635610796937307448035609840420725512690504062858631512079722342919017827533067990187579355978652067627868543504633078088799280855510333731388133852470844204527599825091959789400071560588527620018772646081806217474740388252822873316577134105704788759125568648944551725967374024258122663419284663867232667833789611272828319435020999644532039251655121233007402684935339562874439336105426658418485689450014259476781147136161015580232298858350836253982268965508740159732222352399129841358661395496739953305538234888477781364428493738931886017192054458990907094700042548211538392727909172957577520816543691488678594486891279069539747401100791728501969180233654330777351918323874080839335797725261046803647710627955155443732138527192903864761116702298413060337874786219191846005121336538375997917183379447917993659092153563525193051769272727112370739437179826724653405498640131068964242836491091010503693611275156388199776380459470320089014393188251148165054790245827997082809848385583538436242529684382250871321030491184190083147088849013198887316074128256842209612572790351658543884787041363713165141853709961701698410401617342364679240871477912423226618856639542097624502291231737035353630686124089527953849079035724594180393379075278336879005938232830133799238940418322346599016418337476026560928491482461127397840585603368627689384398698174781259889522157013252000450430327706597169063376091441980432086095214144059900628234630455076586356450478770004922906023030555167109833786644554260959708536016277542735652633504602174825355576901122393826372305987218049924284688343391893897042373096771238904336887101012032884868678130891440069890111837168375756681170424787455646534665664335206553641152833353211075292033904794249942673341919288207789435781976971725228736739670317298512187395651850736827883022616097113155367370353158355204348634820926485544323844991067121267924186775273492750514825389823089081301843920243256882987136968907671003907376720958766391590641681493701691940556051410849777699792800003903855046651645496678526976361981706096195505671299636680225851624011682075362192385552193150578209607415451317801296539925349483489264504893191137122547618421029623050163200416301788028918421399019538044357456772696656031308202037263479236233898858253644328607261412257161881069103043634932844198508929642582151309271795280943361705207852567499183763064465872237992717817790443613218819993005886479502204770897047903124591213634740123835996817197308728026610566426453482828124730553531349859622269197242973563252581241166921586725416331503350744224715436393059276048242684404201322113609033597138247023313721656036545123122317293617379571014815769076727680866331463725970720795398408019361726254341859960226010481172322907009175939841462143742098549792417392249116518195269824488505006816827173181320268836053468972490906527774443111565479609347990311931868377363216415437219849563715395075901952982574358265645780887371621126045549964139391136013100461178388783669278854640202100098415285763534703462440058917528352549835310531429767989447377193255829662416826307501197146716768413077022944576715690886039072375083407682063640900567372172743007354015770568399049618851588335660503142619925566396783889615622072218031887104224793787382556804056718914591905200066625349142275473384993915600560262729938720570766274214154811758013270293774238001901718751768487659500456197505281845766311358339990334284798164030884476653265331862931831577871857180617991223548185164259443512098757322451381430016793874188885679223816721948874289989750812657486459795177129818281127131236900514624699597606343542483918840330596260841083184798137344318533026265436775587632235745033638096276719487510181995798248334388440883140803959702309672355249034406354754576473681943720403351104433219762404824468786290692977597753607514395634964046828656350072406852285499274239575701971031379086844815809171873021630851330777940023768114726203012487109386176816625891627857271611979469123074217018511690199416723344898084336682141468113138937656608269803250783364202403637293802928768796717726518588214511135191335506025424700300795746754848637739669210685421079235360765727447984296581255292005502732061662011843400709508356531112014437961818307133736853549753176641270916518605905427352988050340170266840608509487158388629350231643744652095007868103930971002908309427125541593925512743900731245501494685259859251524995821464486188906067957828876353669093639375008295478300021178285922427338227812111467229693544468567609897075991767596165940101034148817705891617986829677415295411221083862845248489098437693562624461808516504789325222355246116383929351815765907091221114427972446185881346242925686857327155118842968894929440284032609226517199138057341719355036079126720985205562867890823137875483978184057770927353595520003847250566273470439426015576540551900515115209008815801021539723923672414752685421898965034459144960810970033623615268762592334130702053335102744807737870015905655765094367740471792453974588527677307146890629073204034998968171415549640014842388931732073993409758951082793633037158634799888273589200681196019945971032932446533253484795194406654506008402691678038927159873569711243859639277782167869102001497008428861195379715482327214726217015785360963221495503094307022102600835097429770599150653620264095739159849139663507293497539760959169153993403408844276143585798225417756842517866477499629799880205889229923006673402399742735373854968799470111426519255479008375504195912719174090622853247894978409656195681069297286877572071316682031771535187806458514215771667064819051093055907609777539689251764125658206850912863333532473017433534156431604365874470411991382638800157557348979135014431688786231796902966885396361816226477361125129090660591065923467377804382162607234557821193075903462507113539598652450363666016151831572047094257604388685283384967892524139765304884343048576543792670995597102917683244472038383813324306436971740862609255965508189616836425887086638499555402817536510713729287330394567700052422632377289943263778212917835273281021012898033998264921231597069528999578158400681073252189261299717619924046707427737834517960817242614727674681848755379492100424695743834423697652324676437510739312002212716023241549598838051324613331418192816115127272569272919560171303133179794315245973992940885910966019529016744434013727590593453172409115547155764423492665767375266444844283198881207087534140688697292839941478565911885571527765341740698438846263772221845698229377652765028856801687206320366023924839074026421761746132732765496617365864852700646216480190795052434076186151323696682189448408481778009052755867884517297607546859819517535802865184568115233495117143101289491083105906536036273147965068777152677623182195956063161623804994675402702237081450952930235292300979869722555299805085843859135961687179015549418073724608171149878086881631718629787481634654615512203485982124815093652763272477624872779690731145169316424771803221399755180980601191599975774999005336592759722694847844938401027573328942587865859202176686771965998227430750092576661383706101099406497682804319393453268501469592722276631987319542204551927948452212492120396847129408938724810888968749860315773483117321928064959507967874983185622152994726882101548331963257635914277015491672753264437377914388373107520889840676724373813674437318301445052043547039965389097433305699447878769750990011211644688994282123372054227926012765327674757211382068940541281888688337793197725023925010012042578210288286322943225874403943211827467767988548061311568733042655460785744021330401967260922088640228664992432120409543545527001426582236052797983748547078316351646302840899507395126721392935827115743160334035701184301399948761696139199661997248910323476475899432558282078429124642512220263648310179878208566732871492259227169851008918431333133641376784620364272178113945887333809077272719623230593622843797810896801223770412299373987788875059112659235260798240265897357988648575262692788773280220624026279022281730995957722962825820753819426008889837934720387332525861205783148576608914381456495755503944332647952973160462860943132898744150336760231659892850454975830986587949461863557707649174009305421957811478876687875433139174257951155433295011636093947153327408618896376100806016627379921100912620414774940422284715251261190357390760181595315988339879165748080747412524012009723095661618784347988627812652755381925939136516601602790333002316069084620630378795429464778394480405390552078936877398952119907386505129399413458189914373709130519514412472734394674234653488493985696159789866654901698176893316644637390170651798173766592580933377526625914548198454668628987604262661309392427224783060828176923544763770007077768159059026385863638618351040347095631316917253076583228582913298723692625758564899590308012713446741216925727345252774407694181470819207722379516937835090290879220630353326931781570072235677289127416299610738338555306567470307209240729467854644390298679840233854272064728618956312623340460266876422437198458626942330565980229398321508507618947110999827149256546930181991857021852814575144705241063252509344133408588588864705042952798625585811099065145458614237402723850918022977915166487328693458586677351242105443168196926936501756235506842388140384455128257206470154158680252351915587113889372078290592124988305891688878823791845620547877071475214317464775915864401130864220969215997796757330086660878517865621956684649974709184998391874760601873888247098985899203866606093812463963192369974617040524911624289114226148784058573231149621880878109096356175902066287301634596988020332146407657445330166334609185976284225949383703582310505914000236553461600865504921583586289992577355050138932424415536887482189017604812308543940096584436579093000323641058618014769949391694853877762994089469910558646487695656660097716599965877810056900508390018544619530916193992872948844497577244797469547769444447814490997999506663984874166787644325639489927679158379660021387410099867058587844389626535043703899472693511837617594499824661243547315206145970796566769571937982297459422591058636573570494528448518553695501365240807639931771659027617820560901865136090924463644087098336662873103084747172365748716395277956235685939558235580867619680356573749696412415723344056358232719803047805201911030238331215700227930969031666446459186432461572887227021949926318474152888338893109635861215476277233383799174366126692744952387593054409136100212119875721711528465877977302635719769806178448020732899108382379090341812836219319632731916728566135398778629895902422395733086723828722308345633108194352219319559364545831177734983172956819979388092324129957613369387874860314055794871569550816385824142681996865652607418420733657552957549653280528109899880630694842498256418765795451805068710563402729339317348982424730019267978774064499141092196722054990531854293028114638624741329209212131825403311787903069290500548694755556885301253692429028049825697041833936292256708749726822255194201577514510347744152653317760229374307286518057116540998766697974841783047594026268446984246791684069706494977781938987817268689101310034701981031289295648490146844625094054418790739093101906537754416234719537632899962745080413730100015800396052686842905284961615305641097923729670758439715681293404979066637273057776255456344802760960609436896439840425965313579700231955690455201054375111140266107729317580919060179077465343438694877783726320659929777212684487779069070049767771678502348243548905204786496231665342847319869191795521227447324509490083486700281150546279143250906919788397454648631568958506034543552663666873216351960221954550896467817923005767357616379914041881060463438530781548993479587108575446491614220311984271382069831725295780168794944374545806936847807857775988478243684723340307259335345319068909113710931683675704805548090925218420394323432558740633793778487465596989447257626205104329381903671208127402830756561748905159082978084511202914244397755140397518247650639522150889848990270085040299566052748208618606600767254268251390670746108949509775713232934974987775588724833846895548153955785082672070856631550509838161354783366598222430826604874167222135825668913460278331821021356530422590999759329383527542314953160218114668246208669956997464659557121975672785703109011533501031188999024578359137091114114046724573906308661067585857362134353955517244525863459655846165677707730336045497899096690644169627784437886071754535216561329204477008555681753061911673126797847117021489200832630823846155853267282570047106199267873007570773643634165120630053674163948906642388154448667720265767720523625795466132597513820431139915498994903220098763989124506777654783913727898022992017812428774246068497560957280990062649008558065335271111221567354148615790042084542590133296520909786575953881957742730654646785440797644946052169755416454556681368032976455021244876908803488800650372952110869169137686135969240060461309240690587774159958522651779487789553152299684530045151429729204512468883890437088091948839974104004682194328984541529623589506429506743531783561407377656401390095328200323724902495751297873871274631078585831971250888163041208697016690810197331410358577675546913407221919573731541994673367656804226791281071798416831031214050267572914129158377495111781318057469193018504897319131012689463007750490465206943743889718619957883567254821905660478848105934701586237433991183068648800200495975702621940662088814952158440821544693865718979153964095732661949351590509595757445218112219653174806953582892364252513138168533334209942557331822264965308734003726525439313362489885460529062903959957877176950576611869776607055173772384994117690893920384388579134556568615010553272023299483915419966237616983189167754576217911818089298838939904543265865929152132783415187167372773134617423262034753510983388088536313184314791083604665004337153120719180123370969695514513765778858971081388263360593408703178688545050425408350089074539531726763209840356527520524348156880393953356109154415481267244595054600110142209504022216234547322429433729673166368721795717840931221130659518576326142325760371929121179714428234790027394513285991441161498934272693632516710910669791121501441623735158852820560681947957634511867948773854687011580778452032402342565082759109232502029986280391158808484226046473276395066911283000338500074684543286180611591596030569916908585566996253228647778603292383824171825716237155696545974529663064526263896495847804504503663164283124689711145582129595039504662444509061688554943249553743362291848901902294412268114744980200828174694529722428976374450367023054214638076072343381587886652042790298542558215533208119786069824170943666785937816117069177230930988659242811660553132862645288935103035349569433504487250423452484702947084296191020761530405464702261650055594209823680109797147139018121515205884352551642815484359745257438378683009528344152265926459709927889338751647378231590249382299332663454501609605028822914602722148238134076382163726620756319731294080210214356875487487048511731007974311432131951299913340629061573432061209819610779300640778035039780838912545040278782050652656812420429762345636167415297835373010119829262652479860715365198257582359860779211095441604251248843310176032020974147212608669635974115552049167179594774572356271521084310748794354956165733260443977595833840984655475767285020580295582138840332973909548299442377372194041801193718282168775415195533697541408524443058390247415135777065976492567632843373869108670008692989600693596633896328278181068962572648566383299980979358912701468107576481745060091228080339998656948594352727555615285745810799907050117202896982667626365356131455624382705964733494983325554287632686552816757687377248830495605103541569998056118799769380516199580351365410037836389854596140953917784356910123226373228319397817166819834103849349770585878782689195862440391782000765573874735927246162761965505620411605395634890809262295998609225831291827875946228960743107825609465867409506745976905736270010119907216967362106870142474283345066930045291054765683225427641320545836160931124386533341552227516706879536631752528251934298521319952150392758805857699665127512685765567987847540401624015042305616572842328420091304342376941798045122297322241373477615535397320920616198061683693919986061566711000031153502941104682390758602777349634811212017439921900607220589897686409750932730496701461579752953927399914063955772940994923282233266655829350193702267711790187641089388431918409530507884907680472834086761609761100085107822915840770784414197173525180183368309710186319286949459180691294980028164576642732241500428381258593586380829714863054613434992369350524513308011822562955958376160069458843131767045866814674569631820992815180575479442933407930551392239000393919581492485783109906762304123713925195018536552441091098014651738080517204835906712874849038041582711256673140477273576579303277176492331062788944558705152297036513835721773960644766335072837622238714003914165834428687475860450554310574653375305753836649731435011480563556282490534476973754100287495899345015783581145810939038061832943189784879352221621331013477290022965527436154876533743898739298518994090656788732927807655256621431362862149707764885717483753242540552911688326236976201357578515539642195828163202651618071429871259447953092561448824062279118865640924082991840415500623409666330182462355822892432930926154932238717197820157074384214701172282710772174488031246625319636725269818560485010857478568654107590898544240391398283602241639189271356637159977784069117229508347301207525963731273920289714263456213029531763851455832723715304272069181266844833224213269429341086797826503111806043213252156068628044016422876633940873537495033186199403477186334080195950488104881562704445332171870167235603580439507838450174240941851493752101827465109438213750746668443077869367525918397030562153043849745040135867243009756979437448738316563650520962056985895005549585244246492872277922030669987947387234851889969004683226822063772703336619807740771114856713239982252580508468264186827754457586074830268747760534378601343221951155346823707781249945631602417340590240441587701511187418829774986074133396378489670643661069045341249031638516626360877687910348446783942363722862903569191396454953280631971968353220041010389299151648016238662825595650969813782412128427458551761794838861402699760960705115342210318133302347386457799218671728362515794588198973766895099026107859882152903542668244465866491016393579667755016781349593090594159397614193876834813423087917101382435206257671328178185220772121729441580998927855650561913775125649367421323153218373721682736547834905760896962773034159781339774022327934177479734645038809797270452413268210950846070576733264358687082457909495924153939471622662200503108550401937685491106353288620143365917231990819074407040818687389054170965866889158636119191962349533142340644495259830668424583262337256635145266934602851358699288928695480581588805791934693259755300050428137366276944187199478677221471958274893983375239289528812457508412530213921331655520691065722947168887427398811084408471218975019964024217578433166606896803664562507137335001587327429097235175002450621198305066706044040512711310410369924608491769756544291693928315639536958470138987510249878791239657944301294370325854812072529903060070170278177705167698984331813423290898562557189194461096583941602147658979462799587807003050900830441106576192091410163375603152553123129560829577286740739815073842676524019509394037546258989428374226643424504418070381103012778673701487112111548023368682713129785381770406241470342993429333241460764584528717049627351692737869032880818079047811277103840573117166525334567275239339797024985761806285787727618460332634120999086281482676938247679940023514880241686034390132895357309601365875971838092151063943260054135782438708127492552595910966973516413357454951327923483297572006409379474520874420831398851630756109782695609770002017602495810603891822071779751010859616889322526725301070955362367210500336497158256305619628951401652900614220945503038616565662046332802975366308909121659985719172601317633443642738654913507693706777634816358681379156421898798447673441701879477597033691717174904657984064212104169816442596507747721850833039656393771963519461228739819796814116744092818265997140267677759535603808013881129128148190322228358563407021236393541873377456137857781858205108064445935916979296429466768517228209991329435024886336815046482922101717634219343366920690566130124082837287304972256870179372611001559630365765453939125125617174126483000284403116424845584053616770659516120861750722927228282868477589986775669193626696735949286796412932143100213315243763023185145524909672422992761567854118498189808732009878762680205979793162247610941808584303312166671219251925442252420654847013774671480383470951994414992918074145753551788130920565876607199786472686524036518151731225683285783072852774378946577715463758592891337127609553892659859923397034871286677577354537237612414876395689771812847504703434250681188243586911057670498049480131010093671572995820040332225531820751373107735691463721502982948241562394550897151708720835477480597284700584576301817705231709952681476705433864274801508151090464039898999707578790034419459781085502557186817896944382362574240138548471320230027486259581372299661925182080200161159546419982877373180430295653640592702944349698496695267083350772894988835969313393880760861046225893303390884155008610746741929100537213971790104713779930224806793082440065784540447296427082226954591345170981580462757600607925574236890328524964367627192162534870897612335600955169178224617050095638367974897009045782169546174464716701426134424342646984339245004187244527697495119944671497372107144294408835720536308991318633850490850993195203086531860581539529598692033753201415046466317597822037588750040046618171525331439232465135344058037924114609096429592231128696705999698247742955257238706078873254858147815786148079572723462070067215044644536056747037573731927505817278125377865869138402697876774831108144475070092770400146305872963012376962136440406677073728672732503628995911019172890576172410283807047486959122684439915494401626268011853402199151167411161576263611454721453847845886670149470386272123455454125034806454378808748161070724608443622537219907912640305033811902144261557944453638801689838322726203912293396527874320806544412737055696137566742110460252614237868746655966525980888135409644617712700169703734427408614695219622705541476730120849335648288439719115357958026591254901803356659990818432207120186487085424763594398353774810962315114180540847390159349059811214013969404225408329657160302826409039538259967088477169953333043310806983563940968483657931339381216431619411261784995724622608533224958040389218274197444588323946145151151793751388355248295253455184737371391455033849671752838966113008167627271784318787251481100593920534916150149577233267343231735868301410551449260481037654346963778187996554449028009629336865842208491385042664587237704548048461556647696940261243504400152503129058410978635911011560887080594504571907045799739814735710845155480748049174849967085036662769525613506536134476660376336193683962498403685289880564079411198902265624208688459449141691078624250143959067990940476263225280085268207428333038700976597882740392537454238056647981207285230279839222220269884780725268892891281024945350473440745303381468500002912846284451359146527298141554584801735061334503617394962873094547933598803632148281952047888346097477813753314303577973632695800160507784210014099170884143639193793811283996938089130946180852813198549537694913765832101012138694493961505729411323054025897780058115966312236111040258607349357358385519039396619758485255053628755500231149646433726179740963422827395523677192927067004514664621720007607921418071200534933396971381832803900522884713857180431770416892125319112601251311118111104579502240566028943672269877279418167851513477676674956163373499276702781687961183342743702470663890966882874140582320390098623708854286804799643215215561077784526874147060481522679130868935845603797337147017467384794363687259643162894847038998142388338175591146188844988810372612019598656626650911684272651862219189331671035899620498903650762873680700381547825582075869642527379059961380500573027144372927069297008072547778756725720211869640001656326373527004319949390286224165083857895826887852952150513771539414704169784230026611657561977581643939119124410523047186976659934893983881658123875886666939488576408431411807499637685102543770784491065688020939651001983225900031544613327249396939065808303045764427429321402505780702122285910088611134740342050098211084599060731059000646118378896620226875673651004613486037048763372404934244541742411988193196341125487214073194858080316864662749361280825657694442510656704439652137266507367467790570329105714452804874806293421781674271921964257720798783386386995846515940231331438145453891982909565234768028291786946458744459156543841818513992743860533428624165003750367174098263031368666853035034779532637763735483702038967315138087574359505116250837520350997382355733935486851149157530952052116833455873279768869775905522338263830042210305342897455554320903275648975211311097759187621739065224380238474372368481484505967463204047981869056453317448279009405776027129961559231386818310924716645034228169387383645672570146935388589789927110219500275771315552361744224646144962165524813469288741211946099282277970318332665864751514440101943329752563674112748470107856808098439134470537328734512946823616469891295128156989435732730310765187486160726038052739162825413515725505859285834830658779186234388779072163274349123002670502422377322222683903499600137628555379161894975601404864634120957735092969649338534285515553357215715878316173803603162908544771718041952630105002153625210568635227763819513237271505951897072508492268249347820892911825298597188986192833198989644928463811020547179597478506245701442120462696494507090568245716778127924404339210865331265362992135489524504522400067838649886261376496093718954186468678788231109070663849761832249645673091880016173946028079089582191179020321706949324971276850792754871559872076342416206699748125867072268740466640216740471113993455794817217142484967229514429952101362470651476152726994379537410844636252177599540177206064211918842457026006219133023305720110307072062525765971317391690475203450168358543833647385743817365039192775807666356420005962790982184159335845652411237806238016728636014854132338971816996674830428097728699284795311688400897511431401099361941299657675717240146556401090049262682670780556359213985049107131442619629927183064952975601874083252322154430075951202192486447900427552032040888262184248609093815280397093141842661740119900083815071348225739772269932668843053351080710084435324326691535180664670007261837642957898380010010856704372532382007330222848829674390853002761095216066976369889296279214625610627554985142602763578866332920177790876307258710030901370068783886858546254891251191430585060546536326535925758832837197349000920789444355698798642618931681044917360047427634528972626246851964336540502655465463229753662306623149936547430880045907838652778664307119509536220851932196082698060743721799091071828545773661471738446150416757261490071681932478268529047675075973415927118080091603427804899286823950787239062349098156715231161234640968457707203880653325583975215622065950857963962552331079862819399858975124420837121009710874596905370266272270176557558659399379091369670579926771395199123414419201444895698302626829130783592423803152561754063757893915400309091906259362418518636590926851437339385838899030796707624881392834720796420628273745731159009505336805395390399130420965026794239136684473257226175008700210410794751624760832419609205766260728918639406360523944148991121700456771476221644386780704460891109249159577461464184996012060532545446404418928890175856550468202589336862078526481268818412514379683131406487836842953446166617212739288108185758226134194082750982373309691120378686526939215563444144578789708366716418898368795428353128558082946189943136144570493846157751506436164042047404756157254198215638218883316166260033659817228905225532760618283055614801932972687025078862223616780596201215210783033632151264415021518102080853516018528941750601971828591542634347527601542463629427772296863263903069764484125277964630617452993276619773751510476605300601793934383131753668756833687150150386058455233210016775570321224724052551665048322525116600663775292790560627709344427903728593733192224233924067765390618651632642655248014877314503902953185000904618737735875783830732795071137199990173880367461543247836177315159850810617397806233022596417017631672828630779834322277423201968368276732100976150910837355164469569204747484671779832492730471644972736407651558961376416415114587967797350712102156941728008768658358945637489505175485108060734255462281044198576266494363984947645789258316713730430795665608845657530469010107008613346793840009053545055984032340766056227979638663945018368140700183046149950717419333952834187039565018225435660602989172686021235030814552791613378387630483158878847079365027689375573184512654248906403540928356435885410695229998222372462340046598485639405357046375480563730019122335684658363415315467079212223913410355155216590732416704661784668463071886932331109660480060682046740467231325722424449038473166813671612453589132135411069251497258260152875540634172688212763205722163962552191221785640368885458100577787139526179048846837529097250363179375396669718584238088264079912248316503511009403941095113793145752147058198079810271807144205300171097359263339998401155197149878660506845421723317320484946156712815615075992895164706845942698842963419699731416352122487737936895516536753902432458133423059876917857844230253634127888043770375675249488105967585664071795218493472519914211932671219335766884680382960103571899521745143167104382390005622287688252919316038300331239350671824685652341305950674402758775357540276264262444492873396134079906134699304440329653070678324755993473900118217209174797508436230832304155229606322764886838413612509681767016487433366997178698649828486230618341179315203583923944969372211796708401298455381486472654000442318511299691881742316183957569766461023985203737308011505044793092929535023451907422795937957571117642706945441141401959560462485084847318707914151707650503233565830165815588610099046116548280849874936697787476864400158832721900666690533061858064906262763895185655925044635105444279607912124535122819219412695038758994640741176725915697643999431355080312529729538260367757448819801113330753529351967995504725134496480390718232628981526151138962181901834834379135012410822414919670354698969773256620361102634213348056023119286063058457074618003841090741132874377519928993390990457459416560237832699444063701189398553753151474391734070407526267452794409311586621476645497625105237966567810544499720425590530521956979194505606049788494498106905755361610105537977544811373142277849937042630511019324873465958190498155664086032746162731475204826020441536930466437819857741769109037367751802651389774303238985635217746992415153385618886520801173975529189181773538561088889721312418342325705298349930444038053959671175273432794117930855129940298170479269043941309992327927299745580895806526533174143252819618410134154521548314093229681829050573687228387440665334449212104288921758246152123064806256244757688658613110362253791806705553639147410555156917265158985914532363086816920566447411235455186099919645969572507814816151533584945074524279588575576315238707086906955751079491467799192904528621067622478426122846189879862410109424805859862779208888448048951117704820066766314311213240285852307734617407778643308303569431151104369537339414359138212675527255612705690819747896281292486741139397721540107749975330223341091335628730472587356666937099844789521038432594738793538137554012627210676346953026724500752622117288715378181232081833612539613031332870617827636520205387015183576926085877707726682927953088644121649382132971235614096527224832456699512223369547703547278483720644089551876894129236271633382683888113370950543788498154119636835300782684526637372403690761628863558124553762059392920288895408598604949372119948942888900707458614116387046320896369982444869455427457070516823123463825585624656778340414858604473724771367418655593533318305632624954213402193524762809416170569455618794216339602781416139174492146413354007873272004437504230552863014001356766317816012592383315326143503984489321023224966010912565983611617776626164274255256679187570401211782147620966081185678651772411015781556942797622287082298082405907667432473227204155749300066050487088882764284402038950922981039504358229202415361940150660267341265040727843960570929044150849772717274409004546685965435134412381971902817289278010453145211751009118011978223885379950134730615754198425149446410800018084071508311477742843938046589218581285260372937190610585625154126943186692382132344244133365301759427820171018426211831659205928608212915152956826758420508027085187188440884240668402883529280181312206884981431438939107515436000013987818568248981621335851025119377625158501039641282746397404334968295141203951048900584361871122243721467869757915330837789741401445239686816551908896562219889395584358932936497270745952643657016819699553734770234901354258102641207318157407024048988959412877149712557529509867596837908442212623398198052233786549550422290766451001159835193304289695189604224031884673451995683046353655742840531445924958043512743790298306558859079937371075079034892562991566028506970737918570389904777655322108485659883930495747991081738348867055021826375811675857842671705916078461581309463234641134367907231506400083878616130699876307995391877372374916357760239121985347084954740488090180575847835313217592731332277894196530631932283107456889975921482213765591520086367223665889692352916996386719239989310758697606886609985143574327281297515456831236765056112303263331272182048915933282901350662108643171501431122076469102109635633602433593874129038425730736512677857366805986760488336679177450250594520522543054528982580564369654488628337282501033396076686108108930155425109640767478364321608666974367688058350963191809511995290182445793611737589756330309796293056923650240270387328374733490169385822000021637311272691849869261141392464343927573569101091009295376789508126173123849459927759073500194747274365948676497477018630689667708147084187899077951980648723074609040373751766037243178480821582916016620003153585129072429169710875790221580803828191651463015036894470717837205514526193772596019623960804344385144664814628284605688783824128526478321779340864952781522076163192004313252090986096558141688670486649507355895984371415961162219810620016526190489695781846942085588693136635186633345142096497131314540155142512804597149776046989435266156019515442906633940983016681219791288494049250086278071919049155395466760238323620861321359564791686338908655404145288477024078452922764895549725087127931252983513709339178665207448767726538719645154215748337077653495042006503422024917558364380430192229361267292270386579595635633789249931482079805396213308779995859876478765324218468581756372247606029676620674597914454472875161898333096405682006714415393280525033066712522281872902397719072596405196557873528669900349025196114517919643917682787936408727733667840290415730058006101732608556248653373341421263601755588880138374541815566727892494289823149354851089586788308529269867433616796059003187619195373347867586160258503072645048472879004010266548204416977867208879436265820524938765384586012048274314599740558952735957824958542448574892614289397703628300988962649279059667621066522765841444989799303554889787359664734440960097458826592545293653708567230125069778261525811356951146810250579073929634513233044745617718602996194011813573615163099587510914106725210759387441151327261165178437808151280437591856347103154688655757530670266287735436526057293326156687540483945569059688971084904090135099608719627273988513920828537125690597046757714251447066752807466666708714634831214514756692288730880754409394650341342647925730719136927130049375133549665107405275356676623271189492817900844786649547821532344948695346805887836785981900980127820244419243751232200532484971709760873671536450478797260129480992756103653357170163234236080238076846486985309764490472584899901646024297788625274814871619305929356144874338256490440876912396856457107831313601893377049461984243298776459756679293466311106627881874272827993437454701436681222550524516452540675055656196296767800523685866723876518729490885248724083890809810147231032484428372222038837056288660870072330259332735617981916945765093211138582025830315591907052023614376478687512775909984952339893833505406159248034879002457395709066041769993157832346126192818298124102930600715686950998861008458537040300233690150717987111992215910559780605747966469549979310706537952392684560847796854945021810884104273715598736544344433403058638191669561869963553698327444913866390165784552384332206536607140446756006003362663820573522053559044951256897527617752510303662095998084708876965542459792453273209259785511787147671503483166059952126441724790561435133735117523534892199646246693814540429581699324107630902451648705116724541502939750777301419311809132865026556813092188165438083635595507228112655219465782943141676841021454697474071291889087453450426529492172636903260438990491228347291393527445028918301327377347401307726521872716946314850731987849091446692154009233824642891652603627784425213836538858213933805873313775867267298843096808448006782269671535330342846245275336627453899649228788336184878260346375972487850862462661689391088340698959691305300141010216571207668597225980049118931270431906978889504296713573390734621514918840676886902463721794934464968322516480362047304115387880643049494359327380826046924184060038875686811958402623578882058749998259648860799089455070872682010901841707168951827830455917254322085127239259145514610965062996153174051933632261549118628938192487687532487928304452616139729061166995852477547016057232942441149232330777619615568389457572347064990300317648088038854694372400276697836951482456999941829198334208071857122832387062311817183802551516194479770991719797459787994081102354785942302319706913652600183699946114079280056194465930283783868592407252540141539674765945885918468031382334539410583209731293208104209571046039184438822303258730457920760619420731921157075877779891288035137601711491755290879618688454949610123837186634529371064180425167938030832583178669769622156591416967367160448149210955420504308185910627530982243700034176530322678300515432551402619755302918520780332812331771479037441762198388127378114246796402254827218204100147463869498231531874661473390934156900584124922155613660639158140791467721068796081302905294232014134400730915856550458215895892762662229748244565516925708699539332283078384108982214246540480459664120926946997138092351841503837738749734368981812909410977625883476752491187908339191460338028583627009487685083357435343550896836238684994396769584208973668574933267437142884928038693410580182140287852282817950512971666575078400347206458301537856830039136687993332477122199594828125497048540746797961604641909443884436339654352629815488121024590953729184248333076027813272438900014351456130011612989890954198548455121344631390146236722843475430125727631206095694471462485874720293791984998594210206117949171603307566540980127992989863178284464838940647881248738242502759614830632138314886685763733501921775225317042313659947550131515931782688732985622712637146738792717554335958279287229866697767527009323654969126822367968636463620863667507090808846704186243069319267287892699991027476422196720695737539341076460172545870045564594941046556200919393344056487229920965431422229092091915138973153694535389139627943582046684533409279189695130902551471896968220088130013910209082848908769877755066798301087488962146549838333833294542583613232806266371491508588057853599804507853655263480938553181148777754327650668742771080856060065425965052242882433535557226210210264270415259627373562197657859101562319358135988898566498030914877764451986334467603354810128885520647711568382728107907793733192967827633527099898066784297654460837417882419123598125158270002051307108756760872099773284722482363801912471705355771825822241032328309578165397432803298915344037220750551685506127294259982421165201251242176394515624803771904752665972789938271627186006110199396847428746052331072573014676748657127678244125181875807340639397756508843405809244463773791205000875148298257814307391127118875685059501870129280826126256716290291298663966586653488877692718959529997103528498340540810452748801782745889451496350832402156035954910348144300367041964608822553508865627516495638653167884970438420508755017783370836539677268305311392567804237769068760461128100247818940888186732729181372616022208458057921479873631342899351145613558888050551688060419183696302179373305952417360471027875998050954176123928802354039981550709481953082752707518955205154329313286679302729278944584852011847515718064203521908615309187436345371024338016490673094011317501039176625098988032454416049650820691525460146349539106587297040389306424820305062773156038910220836764087521710034881177826752062050691818722855131131478592280432232343727307299373339880582402298142365402874141596783704505936148964283427564843222683848064395075228941706303236446429035233278745002060167146901562397855436212993342953607311091234171673781384308480553125524784744397716391916397341336169636967583706005960898211388490181824956323439300359464103600585816931339820917747804270156250326234051416232829897448383402871398272491912993061039671696982249854009577460043125198164888504472307945159060324097387104017914606799591722985091125172483456219845743562547067279634676783198098251295001046055827866730498618796121146409726893282078416122601786985138017495201177027124222979429574293285765641939306074932143340565420608579549066788498421859374738492711223433555744238100950374260528958920228678749833183901196319206347590259782617793422424849320431841697129663377503824551374769325335681014959823860054765097935216514753728060945937267853980627432494499143333699324570339436035717074614356212875766530325918872411800067340666931412060579063208315702237912321488004767184326015801418788452511064007818779079474178017196396909364438895577304501088055028151565349835877011358117873280542140003537918728872458418870317692065220939347001493651444427899516465581684795305387859241826271516223183360596042144369585277638216714622263214134506807558624024221337009856298824928268516201669477456059388244995984473844108026737232372782075890250433259367240411689446570037251449971649997434933166435963552207586825443641275053384953288463438622386382638306200310053445596503589940356374076591221430987111564944856552411036225480011455312176525751412429999411621932862806691704809615467188636567889833287921929750272630060317526109413990031962602104025888500930849436058244735157715036396365543687093127440535877025674198539693039902602759133970794970381211207263976153615688006812079804533568800428623081185808912821215665292327578619289899773375611211618682853670048762770181263792508974193427090092021172383125100245004596020269943191424267640224503048560565260455397422767921011339062881225368259084295650254369140377876951023734678520634677081507554163794529881512111712800234257590998472851069440247576634641315627376173586730032324552492577584595963168183366537995193779337097136151149112209653994706093898275083250415787710637732143811818484424586242979567834692841355337905360138441219896557360173813286887522721088768191209209304054215686643635007596281446745212725039664579041471805103966325297444374010329330004324311463722614127568375252877995373231706166904670069284295413392798187129157884928290292467468720842181051884215051959726796904628022761734619600871114191409240780738819227700420547628159589159088583210982857422234957474146789892462218688819462628905302672387776394421754356198027810468485478866966372557899277538324417948085597518739863108066221904285588888745719452102976290072375790346709771169661051006826222564034062878360094195672745886674342321614369598478634412773417249654211393040529113510439722272891452354958730601900968810200431324211478627446442788731447557123992344838044601936094108447407754901162675107020273139634490088948195590378103416300628944631996131356419107430508861206056068207672648642027658547923647881971969245015068713503759708444646655778382582097990750560395749165658946285714291828889634130632013808141937947977591702935705608176590845450081494029960275049045876053698712150739003097323191820523663861619002373437506336007547334268221163653960021821377192895074998543520682705793859641448978257249223551889108588447709875132542552895971269025106024974775231514977447701857273069253568123216520504891372008285420189755252557152863479208384997442686424689686049014177400285519731003882725430776962790941758125229793327920123169279947766687122976781215088523157268055983232603150862974691331448116045785918511056540807756901898796177572833108452200409373045148013777572253082984406657818133571535244646334980532446390543905010309612546328453085974093634341276047091165269238740718995646182059814298981012474562697016915406232155742869717956604530209768268659121862840637564056880191604275877108215729556141831667148889328283051280677140724417628337957132401411784493671284468625867312756463783993395940106735037241962271522754841493939201325732977584974941059425809499488436798848517949182153824242892629026447295023095731804223877489782489563972540797841867054834897632348651710161211653925860643480220182889118712962699383503973840936687113761579375490086399837864757998041494177378946349116476351571343245070521655326547414073663130343779014098604121852662791960948485629861760865979887209703190715190822813586982675885295105347326734646844921642134168660830148056798191759460850596262646206831176279844335548881817069598108968400203530414608803764936382603616966391536710288783949279891043550898844349656150266728258808031017529377375451990179495954092313451542589458397435038398182406669805928513720127895081836844406355094560624627116354592362035091035006587354733357971908118548725752881179106322315048898288169968086505111352668417469455900491327166744960399725437422031858948319248231591858770286199777062180460000456441098939518907942689569363853869725858060793301479122342798219863896023297726759507980845585004790053633780415063630170007107980278337624634960283607767321567865783066567373497806538445055245270392376690920016073708359760787338958779595953445748254941337485929145061507942462678344010989578409185089256717589015086698823786981787128343347030249731973299427274422372912709435472616574053103691195918690674047535407050941606742566064228456407318619871106767477658580569987238166392146148017072283795801904530007605270119926102961829364427792435210042284462807461276031902708950203227432904888331525314732081644321888907958464296189481300048922614264245247036430801568797437889829327116089701728089721147693636491450247879498951258658343719489468418570936900498189076887418713849373818389918939222737683428667891235763376211991271244592785843266297993052034827768528105577619108255816031166541146117723132535401423811819680294635570408259583234592719624814602249554459261042051791560300983135224808977722552806277991741058585478977788658312071767080947180077414057559455080262874546194078347447786500529290213818815277154230909119568958269673871467986452522364483388184054029002400327709124870746735386064419185538678403763526744718475789342862226277689589581595131589350464902641020694544023524987739637320818758704948648505410015109756262582157186087968996747591551283959209025867038248436360010034586903133491498625020124595799100605422860282513401185003773385551524389950129933753167559783624885724539183812570880859400478430780673848560227050551548596594152597144432652278067916803751514830790638252579881080067069228911083866553585297269642513966181000059590941622608813812874976806854625698383859548995405732223105948743741803437417333574105489472191864487780363816856675940683459172288740206934868715338656508019496683305098101478062101480025037788670151651977835186729705872560055800879735347997728954484940746274320339645539634232092527651058100239709728153188906082798724946326736570513391477635626733392509578809577309367669167169919901687571334431408777256128840528258121141185091400523192851062313001153089952460542757280446551931912722692877872081187842378720170637459949658178356174600402003107097397058040753862484180648425485968840650646181537179597203120582570152933594925115974414078425503194553670714475311054392690654505264781191325962005432367610355434709526976359302325302077695368340552206613565460748994045689674746324204771536093625722308199015778091151526591111180750693542856904679767553179584349483363035934180080340986463605683121101953779320433672985614883226238539221421854994434029691627934235674574401085185724377937179471385877381704053625978809261886059275321055438798257146644482261323987484498949364674711319081414243610125217013402185471320339704862182769963084336826373751417005602317455612831276012163725428981564166022603965922598557686788824220331823452783124693611193161646938703583448079907080846401295519138786945421909449182862656664226470618879496957537103302791226340857891588431158420170835667516983636110923153138003846974372391085333379057230621498682468825200980940343202291593321000114131848913351227333100857964983816303648384627803734448587347857180554343752336168750873181556652859480461267232551608449445771953800566235143671065943723790938021293737821693247170007728461269391036988330581765308472735331926961586917383842431416832637705115648657454894237809176139308482858925977795591245640921658379630610248948248767623264088394332362978455247989376141890141398498318980858556044332469305568521654859069773451635166852275207058639027200930007630808669318517819957471573109266932800878140279635914993683114848747280234861844592050501271049198611433229083372982607103433665185573367166194142396510637557952720122411391746004427863478117635241752966005323248087934423182264165945897662428008163413275606825442222062510319610499152619385087650753279197709686896567183904752176832281253967967994240781011161042073618174247264290681382000860933108848954183610134028038795142347521994887121490476528128547466847139875796739036637780141485056605808219604892029417981624918817908592851436866064057423383709692906775416801192126011682751780229279020044840820766569472603441900719366816609149772164974074909257539367861290990772431986752512350346052853263740565717575109503095664117297737493448706357415387025176279535094838618920037901786852857561718790051746510611916880042832186226547653219399501914050616151967401521547687584155623036964320088889394074977996291941071867750913934235510516745573385710405900792124137541219661941014994585936139352766861747595037962185309243371947072359659785043445172073949274534581524968540693801072964889628714327409549637124775406207790133533350981592019554955366376098526900377359088330729669312689551171725406167456165622841760043527512892545144206867050069422662382760915747380206143350346442117781308855366413443217043470485434057216047520721736973898298153731161820043402139676602727995105211637125194170010578843544107952913117350780075536212291310894055434940605505743891207371070943130562128195248480223332009545686613148088965953564833980653229160471146829187557440972638920623024275792551016789937899680256061203992282467526197837977133580780147253164937469097746920799434551683885003367405012321895658357297779085067135134733489972119219446335016552981204064758804237322665824922305873772756379712791252134904102812084808575644003799149075261522768060720992768424270131523438260784736164440384383722709857319527827753196313960095386915138215015425687322923671106215411142506786962288271777502145150364271533975209602831429018898855206026564953635779380870965537227120130857691492227085015499832634675493408023375492230321913566080121422054303856803780652961984165721703512131070570912114692945148165598416088817757235426140703254921478635192104868212399003866324442577232603160707269242225325524640817942864554634567512296507037402534749261682895412452991501122936986118166001594520527109900171457993029828778103907288228396703321755905392303869108472466138245679674335880565458193295555444093776307812569912921520980052801726896713811920327909199029096200395858394018413255205639305125611498599059830571520112558563317159258665688098937848015445508935280969694769480683044963613259697128572095355650895626588710744569336493079491014410956668587024396784851749001075046700032587451955484752052937379996652688269204268866314734890121112364809046526979898748628217839671597436423254496350371804849839581126655087465228368237697829149562428326998146443652185232581847216480484875266136095829729052907373712324329342356286690233934042545731889875176709807468086874798012745141365834405235516965413596986652982663793734934751606866760768858721851519880919827519235921056308096068485853846861510385119200177891035028834115748667571144077413688450947128643394234822624949860880209715766176680048798338331472280358696698859992389481641461067983822656161527089868449386985009230861840019379677715721381628196991437902745668219484438087479598522759656004881661018412679862107408790918723300930246193812597168777914605569366564628441597226944198541085545945392268097575122806063634997974112740649090916334111631265663482319636303260629333753553400605779454418058032300409317331113031705382771441752521890750790485563471905558820087909241705414660244456776745407286577463279273734009263069821819018379826092899557933326534278919843547657805064544117018700745951887501288045599485343535378603833808727925724571600095225876650046402447202101540398250010392099368650904460080044803741578000308983222965333714865704572896186469313568323831295586056970183235056184196860186778995051119116327087922983080349418079276003697602982651957557257304031513331472984316274805072735751311365232975498819532981047024892462005378353933255823082170663860210897233840540230509120162317345535133421460542523654905364758952465878098992322091598719450981705390520823611827075795146737372677872300062019250749138661776439974269859484910515835573630676298656726138006492929085574250080871401519522549953455709542133449891220712163291181589776114347337186078373790227284566251532417382677313480386210791829104698484437583821555019693697590060372225261655010516302571333118908543423702129624770051368823166906913924387545805765286399716006184428700757488463976258146091870449032335539297480695495786987851181690679927284645741183687709710694537282655515934262447414618700693167990271230407300199074760673664609361723658683841574406629047194578962173503145292207909769088333096121803527520401543216020815055136449476929733034967804110923856262068439600556279498604437921197484133981799960576583559469886929289877005379716643524812440084640383222755395815110657476929859373918429000800870566969261267175102127874322271730903269200807514855328194383893445504566474296740327275650675118486827445272591483560264664846271654384140734484399664419729595733197919296913442654874951641133479473374108084851740703739367374433225663738952494498611763644151577870755063034034586659673238709155263539372915710059593646898040943903549975495993734767035186452000887412788101799674784810748491316601482429980587352780783437656025713469686578715095608726929814270370376901335757746832226658900622980778680043584137645373927558928911706388162654625914754276952139431235345863661377206648216394922567916820490759302510571144610323275547070100140316721516354472119929874675818638185297883291741672200347206008515422790468752855923623100298510271410003328870713102545372790055206612560703875666948712393621744512143568075668951228298626254749100135945006615812019504488905533762036668817740161165754481893050600779864855542874847716262221783775026479998167440487787364310161269101571128944699128165205911643373905885302478445868561375890018566439781388429835225570185157007584289818550813314820067629520898452336768977111628272858206527023634696993252129068833243814461892756825100926767027804997234444888745776744171266515169313337434593188510865432614192050788314413966533081608183034005952244111576305577494855648609859631864861412215238962580581618821893869817987776687342576443601822938273908082790966159483875828633030837814187229154502407603989177207912822175721226132803450163927589190657196762985382488955535350086979799118353266968344362696252516378898428465064919064604639753826148324851086956120570402142693226027522812466381317320133484684693668539257131608962759285646047896214158215323624819079381927122439832656461575307796541118140758102582773254512288326226204471090007100938305245631815993486999254691165949434329555806776554439679520098247783100842586029139752545095723234095649802277228683484486594045016269973015605790554621406909817851821690783797626267352341352804643150047973991799194535671434422897673785147662663983801425443764021371788325535744312909595778227985064414053247310763844782162447698929368426269971312375662394103696495627650697897061216934158798544293216746180464236752295737180332612887230967508840067365154940171119112061089773626173493838480822498879885199848290490186970436543770522301044770406013092459849541379688813378013192683691947436896631318823393049572345889695395539611809221675484676731254175540821701018841292099558775265116516881919024231550568946391604333980316707138734681023563957823193319729754542886727931486355099790359585807457282154572648455393909260471806225035916676041154751091618965420395648590200478046775695759803465610207322641487780145547716450758579145491699487576601784493290529506607798285242462864951727042817129319962587189204617766814073769562113365507305715168707212747112675534301797002541509295601037150506146353448633974443932115451885824077164697589290783059041773076806216313994600300901115280391596506636614442160129622583171184495402211240868084935847560192496907297787756238979724907130135251868371157414985188903154629866777342678196336163543203490474155311065377577902652130694687849909252522053497053156014201189155535025665171799570348573357180028058240734315952334798517613167931184687111099787368651844613356108433113896910299626877380904110920638089722299511523619202348586617609408743269549426073403381644324832511332018870828445577173754959970295256347542394462988507694175246942344789623636081114381416762474694563898859933426620133150806206898359250674585832177960737911853844892732755159434867511915125657039792446275493611561178248295104490925142823141840824971998126013234718774743617666521080489748033314982099548629505250248670324826141436143774477589268334642026350047216755504774803145052497931774938624080202662179653646005673367013215578537183476039026900052101338663616269197437841383344336191061330090263652008575428040662720800322065068572777934466117839765698808405013613030829643304839940308661381451143475425949139644345703279805566804527225085681875028800921291250777391758447669682183611696159522626541536214313628039739428622666882938816535123608918957957060338689705780628162851685199166580253089935942160932078676970128034319274871644266791629194684519618632974066104393447254521416896800245665652808560244056474314285010924044477509021579842855807698847175341744853773786415402440958655021435067149167662701346754681084357684346583047295039952977411553627290507975212128181027384173039071840126184133426876906718982269891083498424608615443277604855445291420732068554238123628295503260938324856882268038314779074315244285684246046131344538063630176580727518074153161936228529894657067046441260389412665378240542015519439788428174119021255359666982887029190278050605940185556173141993653508113703102100796840675099882509923864284571236124399901655961134989607071740940252507694608369857901686118325031371262268626030215676579670228857931756567892433263590559496801604707229655766347303787316263844633823536200147792700784620999182321292856439825872985297737275861753840898123371693434435598231387344506208061296408834709891376519196449907070050249452244423453060309516913016131369536368000773215015769219209975330530324761858155825895026155272621769257064746932634036556670393498462216645437990395965768074833006938694297567751303782512623114041541320816682021932176237362293203531601428892366338082276206853378593729044417354028100729388378785927948457298493266128608982801500682836865018737018814114454619491725801725332899381838839142810819887839875170489307467416848223382355848892613632851890974643741204120149379335093444946837911544385811612514180648916957350348858653230152381060127979651986640973112799139349346379848659693369260975105562241080417158600599363520038657487897615612090515588764060844467282356500974538526062445066031543181915632631442620549913325050204169196695051645499113333667269215519498602708044054153750606173327969153908288627894031018183489532702795649914453616125936164488924253405623684158520019430924798371597682562096541997206966112097082686237736473416453480872487818001212101448632097859381326637387827961267409762043888077202755274477153845867145774439490546802775496097468414571802618515036165028729178478882920671926270965000966595880733820989483877571416981238047441738466574795100866451298099148896464534277016400282189181083838587911026981179687877421820954854374961343356558798926709994290917248790200061933780209305276843576318087726227888268417714491697393414592615690761238945107210536574560989140981335338994235519642101256821486731507505549527318131476642769263812552584517923169824575961428759081973923673780859245309434776221717678526922484098043072176844486006341695794398198762120501618408098954168388415943519668165302476485527689616280998640896801915262294758288161390378298794491964742682717535201647413533048918092950135513789134768604678052903591915690189240119553484759207175186221578420222308145713315959462202524387846587406948238152739654846738569325059151629147233457778763257936686020783394386213792077056397371255290627944777528622330253153098922545768215547572307935954014837748553352285212942987347860380787033462654100997056464374980330929325651745900287994273521532351034975044958090454148458080995178333552481872348718073373318528833171988573134735113738830690115628110732157951804297741273438903582094324553415473276239111170633961827761027477999759318203040739599955472082638325215078506527142200152882408873446815586876869186810704184305874023023238828694818035663819466310187101820517607989610175332773497901570268399674503141416647878446841727369669922916403060018014945508943592166979969962589425063144016509354216300600743840096036189614889107312575821035254726873920452520557193018392898506005171551220488751903185094131446065761024794118117228016467369896233006760614942064442870703531307218968241047978460323756245561537640447744934301077615255428088929565453248252966675589709717558186583131364494078705136861163725037298713234476744031788463555758289189853116888377527994034203891676302141914066451959999873406723506410727006462182289825041384450385601182337315157961497803414566255446079095873310621095899894734236958688035287626120913823141018779235213199129535420403588316259009498975247775434060507158755427632525232605436138376777372251256577440580494893484474334666035191022562310455864830671799397918330766163322793479733793054640712289158117755565871829981215282123857185004504919567254308833890338508120626310016464007599188089647948440890105210753117491628231548846111873585468466026075336405476104234146798302462839018160043418977993458206147051120283133476888677890627090432647045764221369109246497461210293964656661764453496508099486885871479716723432012356127442224627142660828308231379980194433467617593452149187625612289617079653041857368945397269382718732125740679306923490782483286712589110266633441694291524566245373858355520656255383220764537935027714029771917874441040026582526467108925265320856147657259650178305956781146013637228495912584964953430869654361214972489156357096132916832350504723423913474542502736305759918353923377509973069673286928813086155357842353764761529956135632357509774839311246012510958676221505502454198551954784623778033854325077277963761744140572269065714354423025252946566915992743601914989073251222396831665549721442317281959683834113317842653702933661467194241399879221717124012506395594793791642946680483402686859755040459205966195608072270225203821133799965798183620896476110255604571898876440439278481997681670031568353413000747297537009049274502561368398217909705369958526395458772748032811145637043746546252543360084228632123819431974823603334211736821468265882979443718956485263550152476513883633388794636266009286492586855879851929035348180718197486642724990440257247663281899198978217404737853704083252656891475478454540062299516560461238198317904294336276156863034060966777763786550157516983786594121797997517559371352212148395249041712775215868977779310730405119592591200457601072368328267330746217772852616732577854707743607175432245102052333259889871179196018402652748347331184830464640067181108422488419246913984664017530318111683989303792056880597310804233798292799255613197505988176498450579195721323612052751102796377727468846743944377579173542595616520372832037694085245364279552133813553715459392114998391671790806464148888437216114449834225996446980430242086196125543527681387420644400031420543153736126231513512820113856529286825966738328618786890852494223709968069639832022469856744521001499279611517329175666160859583943814222868718959924528908445596973495706867203044637186287886404528885800979870913315198447663166598867825674433282262371792211586681964744405157451901482719992997097664114437185066206176515855717919651971086732973095918161364278316700703082677802730466804964635639610494105457621552047912574936965112091775330591223081926119961654660748408670016112711151993393109811714379564805953913203574191112233430001535190242763958550343909135246882098185409657854082277328584842865792979379287738530529428769007730523452324046533102857543094882127797324803731200303442132455880830091244834903597339816513039026126143019251560231975205870573824372592427019501636823296712638781157809526125233990675578546730079644513885555175934489313965923170707799712770186122933579333135300221045874417070353869862716217655469039590023864348622214736485176443275417437032749419649000687196653740169868195117924469294328200915537743751877517755217057186184786018770359272201012905848790126455974262757720356132890049361784673563333866470737728179401486962546262357375397747028469124946951885209135464689126666780034834042493420922308368039455937987371494117721936862998658492879315793505607449609589971845764431014791818751152691919193743332763786273537784490074304034347798085761546589639353460143319472855851426553219854884575899051996364506970012306749101956333040265843331427071386562458472142911914344083523306710065525695292340512916089680785374021872828588851249005646923469717766348657544841074527806364962445873940564453951349506325842785400515647339023031815689613869228273831981701690962281767022329777429560913678672958494076581809631735829474184765563068994480263084745753517133358502481457063693595925886209257759770479054146578662380925667132281036573885334375785849437379008916454062085481060103142897636834762824180055810315089519849320031961215897151461949697171289482058066828865895665370823096123077766693068269066813842894308640952827715929761482545322005181503964315217166935841250114589386584037896433517313134704344526856728744651430344679930223634515803455780390883314527632962941117508526606787591679967602487414554897435656938656590876499318754184447697323849952102180074018938620065353695602887128536270947084999315388702490385271150456719769395006331211594764171109219158879179045094576986047946223858462978878847404262312699473363313738504454724526236263369608128228406470060514482324447581284348745220094165775772709711407241396046688113471387124258087121949837713474939305663937713873755196935161760957041841799720450229738990336378399333495931653974742337421454968065770370619026995714631789485210985297628895769268362827857054721357890792033535454849815598728560351950165642840149047307263344224200629173437271669768947494891155258217779535859639626155327608972682744152292309543655670187842977596223792158638296200286039007310933665363884291439965926455822810428462357633876523762932387891723219221180857617617544132977465429597120964786638108110705252250832797409108502566922160617409287823685665163988670573854858562470086955552512385108627018099293300366350755668208469651456271972627730110435854497483025227658290951138945014789673032605601166089635055613425523319353013837560935062769902236058231063305851452044237448520875425832054989499749267001339443858737591612739744599936495771044067529060799155403228397762311615245499214394302203385107469326383071309746358691217583125481064246083016135773766738428992549362919280902022426407658930350730971124257822919247846631739154576546251050066496755135181974349722845310217938753611099037246889173425271241980904938453396313141858985285628208247620658913392862727242449640493907918461888761421537389874665342267967405230790918855057275814366824465789368563452616522688405015839549378635605594479453237407177322329053939895405947957356952724162054238849487284855290669998092450011844956651133175378863331795046061700072181243981249634347830007745641143189003304007928574420103553323106394689027584107162110360899340239603296253939994625934765365145169599775027905754573925425327845029041565742074158299256951332235239936496547522671439052872151585699383961679914240227861263008065233883615076635551575719075186723626150424130386329677688356929077859836399089657748151892670472260769208143938614900584098787115407597527671499477857197457077230893695819695037756635636438142098545301418528478475174361224357156724576935598972299686807975725000273719619186263138138816956417478096724379503185561860629778157634012506009674330464678033428190464418888210250940633611083747668369850083865698941350128257190336601744864231209741372897224135054937026163718817217869072206335219670462575630929015182492113232818224300559463446195572382121295069388998485605995033767434859376009948123214383869783486430306534466365261868071567090267065015866073764940682619358059576202243210437357319917609102829360950320071379897007423675009746468590313781443447664438306271075633446127433691902834128614576017365445907761348140287857525595389159358296147924739160566869130699092439991679071714983069789521459948803641326637958546855388699384334785973922613129433713323397555289960855922871853709542124497092003412292115005187904841627508571604094791531933022736474661191180473537949342291810285247977417246003414710778465437275336472460706272978177725904087648839131272429525667082859351583684761741683711979647401807752843725818811934149025410711931634218093197469918501132195546966640271591935232409138874425825593369577367162186372749459649163202043733235042604240294548906422448019024107489919117048055580073611169495833546694597574757753790419918384856536080920357043444017582410407568520894756603381480833685917917572037234411765029617753480829910038904648833001865869255871666189715196550027322166794834575370856619367963052573637488058073050895369955558947768041716355195454841041439056058077700556788307055306682077348796205665003317763831448589196541023618951613568805243212974150271333785431042597318619809706128715358820338903268606521067840469106720305593856246066657106758890177352671954779758272808256180399195104337932275612684816798233684425096976030694158654639609459633109572207873116538515815992946628329401912611841146767141450968944426194173918100273561452639039169570455475312724966590738418569362171779719438706787419576349578868164695952603127445217017355761354456303267868430427181901713170548795683169764934991921591250617105277968027247619744180424695584183204850867916285148385573555435643399436511748874447069631709390672892199439728713742563838748417476063789344144141645999711186332255177045922172418391047594103914475558302118584675141497666605971299571648814573179051828489206323769236751640236483097956633805766269735905598879131075596242111779674842664798072638927853816346812004915358775480661407228263303178797484267773314021057762921044387952927921645867789396129627138654209452836711709205324204531669436595130344301968923279979034796912579761197553350092217657533498195885141038297603176902031720396274457839682997177139764257439036448412364120318958443489213774930883596186589177364644100212894837226688015289117635546680795542466334636595247970134688950968128225608462041883922552568370520021783180164263720351848560148830807990610540798608438246253444635285224595729584326179902263266291152252633505913407155954524097781468037938055879400972708300177581853851979388341310472388439180504158653702585673308423457341229701004803928943917722957121925983616409391146935513162619051034072592815750263173872997537052605124022402760708102371171292238857459316369875932924218624168017788162467841282984266529064746206431863723261189421564252884949909772695993203934174077168269997734460305514404896465746451434808409588677167221082939743334098882722454027893236263612277048306941441903475124343088590110636800455312709854490425154304767346268088735991948818947175247662438990390530041744873021700335153091964437468629865225930517501283727549892162458036426623877770795636755952876584773605485496178004452331607219796517182226058244074235290360264735114611153871668532205850691910406419806566609609063681184323215076952187293872945973581481947232273514969788364547768815324032494317989874615706170819364782370161496287323023873014488767575362425931917018476075757037835776571359314485554148522043395591549968135074886006034642335142294447304954380467741755154497039577071976121309834238563761218148971048182105066289467214106545805798537349844177803938861570649818976590885548723664870739897195582283080004712211780953804824727032195184200882741617425209598774775599946012185401905323913362246887040599220334670016280525059361152095353426173679615450223090725225960651987260048176671768246762430981084032547505702042356960734306580490962514910377102720913225123424948530495481330820217259113227741936524525276644250421115188027571193368547011105469910782300161774221850173983217860901462381172673583174246865747235487662328237155168393810840225505796788797703015668139390234199503767583161502437943868134635092000377257595796197103210849843563708850533415642551231569319486473656499109782673590354926445943379542113690921217430441927614617003900236747212573052979175977631449280031203945149636550340747546768237346983927111704033253931170816026613531018059075555374854167967387651386894759269259944955973950306012977871240311274293708108520279384514513078266249580559421697159098064900815849102723117765164865925511620241809519071218519067412719135794759325988413022951209002358709646722470127985864620851570947344289966171393132883823158891593419444663293661659745685871790420170695092918758838555564483920339899244781960456533048226851474198976732256901281080501746602372601308452606492454052577731129336988791711853488200683118264198331745399909256815409367319693883846334120927543364225567348530115908648423621987475317758328877293293992035460401273133859583957362285758132354727030029834205333718085295180803980552030467510662201666648848266831886078341161428124765121457516402890756876324872209391357433911053449678729084206924480140110379463146598406711196566877818945888376384968018256689970502148229068802925737926620440438966934931253030499319002199857265818663433151477816997023020971048830576399086564510455256725456819036323682301454559335796207558528114389537493442546257601567216802815217030589726779200406968985413129690793468377979108775848705964207609785176133485619224443170464700002101786607782040694616669753542647196117416420624332334057170382297366712275298285525392388806187721544846754441511232921108683337749028866426213553624698877505949395476697542130982526837293516404264069166787643952846983494630646617058915896161208105889001101305669649660044875241466058258559668070890895700120385122556610825699105499365701799781332693431780851274108305203584320275140119999756503199803488357410082195109224176723458780454971174999938102792743313257286547819791253772792246090627247600218224846000890696642324746005672598009628250312355397565726289452339331836047962113103684192092928110198255016671650362781713312151751061260518862426669364734543841575507090631584661779128156503914327901880904382867084474805280252057557113115065638037323153784869263966030539193327215800646282593462490773416566891779747682753602631496532034975502590493177701243027564397599746498541243691499232986490542439968261179557935883992128978478253463229666364139371718966760687659157436927524313508988477120872942830552805717214702948980130121283521578042383182809648855362937482564854577244815247150457380057424988019983115765412799678920783320503869418581337278854634454802622503216746634052281116710357751547411288709673043101689302346858037517882634163384521277997871283664468512711375052215541325726741481804641481441652654645183914320332646767869691521579434705545297082609241187589175809897958701004423058210670292356889858207392128924777358172431781457235796802494121972426425070456207605805000730085476114305078202819456016733042239772657864166138522105222671939903395343716635550643282695325368075732190359505626353622781929807234464455409250036052820303379575236092009345603543276210552877394237113663551593797293065561596099957730943694774634981708258980341670256386207996657846369384431405152986703013294011114015887907414898423768799809785251964500209724320394701438853398398577214995368719601768300040382963944377722556282935171191195365843873572549957432982871332133018977627276783410867901341462883556115127250237223930685919737830635334803075824473152653214117626875996722419425803035850739051282105706319351727022827245599535552815381620759867660766098396981544860317305108385428156817470794441248267797751795952809943883132106539583275335390025179637688950382568499032445036389025318196610974902141981834025761440188526897133860255284593243954770443377046150672160289290288036807194824157102342022845958240521626949069948594567041174779738257107605672229616074043162978368505742407017679829580732021986045124376090835094485474118531372656531431442919401074673450796210536602559662839437797154190397300816770116721690291742486461053964821353026014513983244260485862331905069198608971112937381568049972854219747814144119659598242769181735953101678795117065234497601236960547832108394259270132448725472000987145792596754270310596076750364093445481805279132229912022169837656614563916588967813537135035156882433923084840021594858203422855773034477961816182664304222146890167579234121494168964661516044768371654846218876647397530887123280739589657936982234969321714340327371846027370307735589095508109375492222298874861624721829417780494416562691179407040039494701690289040983398574333254599797877018313685932154202921013186959750450218483728577563513691547638996930133222355759414090294269812905352819446777398373486207437924013640318897573607184216932903718069573396557997054604922564175449599275261131320866377520111760820569554237469637235442355022376980370214544870524496335427166807113434989683872636545605742505039857761604075254892297879603571970938340914462000100748755179181527736218256413749476829311454620725656040370509619439510608785226055401448774080873997142500858316402902222098265335457381608984104534624426231162948724154003917107331321364854158646416164552416413565124316790201537631151056633606223724340653810874388271798308642924543728000669306917392943987464499969112050270112496108385888601121374493455905459658125997675206988380047177847246000877701525884041230590336243323092843847191145523869269858789863609954621761097863249062392413682743950087215527584689706514313103801120735882139102435982590356576332319256185486524232057028029283493168915778522750115553887899787717270239293949851650045688924911272133972424809239822375665300922302893192211350064450204990785782146539112380045307548812787580662799195053815234170213900798381508929653321133195030474199323426598366974783026743488794657584565778495563553661392208773419299486284678856079987101546963443244040879635007691926204082048544818325639653993075386411140793689063758266038830732158034455738724166326412866821769280497754356087688429548158420215601829304908155183985998241594393879340480875983754676886083203363429935204475764939161146209317153434189467044545485479936178151813910293317891035682125966598706635777242988302208514060346492153346277030328937196824973596768819634282989925787172161664906666948739268086621850283342698418436936422536073661935111381583406555063629565764832234530967435515309911943114642707427447718781276605261226978594767939048530886145728506867220366753361858652830095816569592914255023455493310079500175444936832289878206870389024941473917798955487978947595672957351940949675169353703666339477953237996768743286550143446194772935457078484913850751309106675213689047751373713879859243582151948180859102258096459239694752645921781942780235778331547783685285391935278483382897449104701314898103274661524761716994284544651250857130326429833973170421611323809479464857160913531320713849436659489681699354467233175718680651263746835135962887135493546553768343237870137581787343739918654009977126553779367455380582418016296377896717643576935338434934339484212286012757500549796706449389588822129611332490227562328289265920930790177908391155956818028756696137502555090144895749530408891623301922126911349550796743996772344260207875902700954973619372737634522725097112173213891256150512544128693539261509040202730067737714205805172333501753714407946233970021984706346486831558897160377050263476494602381789676113206841933799372489570936519881282818204774977636886616776191446836031503354733600030559592141393927696708983844973275279458554573412868619963008390704810111025599359208278700922702187544942816263355104045053236634653325287532271503657930451922025351825392887247489711357275280279640709820230799466162539150506796060336785084128453344855166463028680768806769629332436083773791095234592156455554682381776986583607222539303636868839247289285706008604260616794893764702152313277928713032336332327872090791970395870708732814175531242465661283000437925864608441710285508895612706107392768279780186474522502009231324098820883862795970705964532680621044434853415935818263286505864803204921590143763508893241538072770640445913607253284177683970662683877841449149990942592958599178620721965628658763126085330707829657864230322431331104330003639781951993879628752996577868212271587197950041835192639376464730206970484136428637979673774558364353576286433413981353814187445119349187695958911262106685480840516415591264700305505746646927418948389177154105882723670441911058417852850609211614126526540013190694051505098199922175743820502759003633760662989073776951926896974909322507950787534703956687124137115624942781632163767661305746373188570789303861206069082586642346740208930646674412766366693180836056364535140205390705822220412292940521656606256907409893154457771382785028973627578945715146513789279081219436908167365528955367030770502646888767431788172085997890190369904452384761752686836984891525493930285889375772589724746060117815504537623163762876841467895432748572919820463587313405013986531975671079981314567822874306250546734748150854107572273894226016157831176101053483799570520824897792332542736371863543979564062055107063093027978153963414096177829249892616923031444739201746097379489937092281944173615182931231500000870309732970785163734557091815212706375094489181006439418567262660441566297579970343482450614981393163687565542114009567787486483506516873647170980757371525694218427715760578057829778127536001736587888846876760984605292225828063642498326251560262942253744298957823428654690776837602166782097196178121488898983558527690621017399536486668802397774632283407337950708682858926992885167929534646206436692034731623710917798301804606200482416241620046880095204344490164103883949257733049278638183545195145846854889613766871189855750111242329819911340812424667265968936824883046985390271794073317160653739344822593122602135175322568231266208271308889458908317753397483942588968806458087046339986607007242119311277224547440790469694702359102488601265884423775522717710161240980351436322616465136824190131929524536609319534548325010600498057568100187454691257777931832533735386679887807073889578177343374294912405435356239626944062642408847408696133924949454955864804457261717461696874483187973942687116266529745795344685152405635885383707499358683507312806590439937543019171294080249698761029062831665298983711593101586687381401430608873609585663958942913431104522492107774836131591115621674472295451683470285349617699543143902866667266659621506835699894870743626681299278088692338615077601649682400944943625921392960792302046816148942357633377364036348686496416164084694097413543424603849329641442257756376987778032219012269556423521093052535279382522491150690215860475665345484347795223843038391134909845306616445279651813422896638058387958028957777285739053866312873888007621668385181245577261571865244006965787080775359379462151731597522480054136147102586546275119980403551046264981708612333920849887322016915727066503762403174067340852501736864249612365415398716106391943767831809338016832172658315126511451340384573035828540897816768570431671264469679064843890369220551015394075952756425061064280826078295746949730739758659563155345022746702519428013605667393435986640947998106910847394558392687430960663718389661970475094752796341971796096064469405341382760640444924746459477355890253983607813114196101429161846214665262140845363445619329970609507875462898822890279152951364384944376462008436179385210841087310405974052529715159329439623334687018074585437825559864184020213161395083162650371415687326101637787745911575155066251593551608126832023344979102564874697799335038488200452464332618837638282519915400643734910906478140197125668018653331229750280852733300947519299248773953586670382739149572454247723119061578840544334844744504279961061763121461182990354119279573660564992647530909682101943886839372747456165496506411176292855018030634009301595570532470101647148500252216988070318515786706419038835606916542897849275026947552303751457754832115803444939525526247382454905533408762963345066529980714669626851486846064092765084223904740315850291592032726442814429222473828561240337719800797210556856387556969609153383563558890916004940082458083220749002866424644965891205282671816320490606497466877795230368674170259029956599229876392777768405945568481225132891963869322598445402921664588542302997152861104265694835030480425216794954815342941822784752823963335134640851726713649919501340022973931885220848936695062117005646968979348977078693610102779425084805501664020227562577353809287384848600952313193921257580442790728764966713845329833816495953316508018816288279677611996288953342920119423094095725890793246737475327576887904582646477197382311333401433446480448145153035452706413501626028996365491136509415414162467358380163541921195924881086519374801033046340793591060964563684079155153833865402223882835372770752699535101052740821321145408280245605337382277748925671275749285268446514533455897623328409318852426016801712034644111857834209445424818602471687454220092374271465506051378620373058170347550608558565415278306205715626042278948895254773255968872133182997627313919138484777547986939337681254168646343876571887018114701022013574801576225173233546894879728710862672798252068334693805488177594962298094792236600702192622841743406648836547632872832585409219876013631312170548204780739916144234670787426342466206190305831168916852897337300714784899912135165231146004529721882972936240900363666183466551641645623837923018990073162656491232540822041011319348190234485712011554847446343884875278276558844606954168924382248355499773893353195643473083789672432790602373398060545953280336652111863492577682484105169208153032658881807879735808223050042464946182396462373307013807650731271131189590374551990965561633947368850852371492263072902188314286081665603113405736263009788714949157997644122769057113625606877630058083362786368464892243260211225942072472102418426555050867977076063867085614750064054432829310985111277805724148359524477383655067064137092476712143201079281771920091881629711936447095471565158018775703027055917302416991197074736359457095899971213867596473178775414151569099526709632167591718606698901934250096026921337731728383424284680773875367548685218951619336632159157743233614223503455245002796320341722825766349985584285812925723686141295657792284452246804518550262474274939803644408563818578987210578736117196963174588402478957865333801587695587202763304678852661651143983618182585135983795254799514500130215278804287218228681480324947776506771648625102000121664853257011049872189280087964708874186665701220564633861402274130793848930979083407880976612696768518231713368218815416898306818006561929028715167292706648619828972833920221007438330378838501444274312363698145109556461690779785557268672269551065257699721646135371729051237560799262648744831003349975355381503889099552256844184300488423151835186749897711582117572335401925132394369075458771324219914980782617123613871580508640723963429947771875569796704300853114695849943932037276424300281750806927220904073041371937305852370989497785312138488826266843029639734226125818058588387370631746503020477640944843352982344408450259319727203861324245712429859297137461461971201250921207507367650985250897887939966447285552440387473935205813150532668583226926926529126949918634849560995085121577406306688138474134478113056823050316937694043650965736133613250182357987813502751641132957062318686319749952088399743997407719875188674724200686455038182058723670126325960387458760858487099495300696867394708665284503713404760436375574528428112712035363990690059387101218879604560239326070186373555898995725464524574760506327086708840548888638757043347025017652058570226089226556108591868271331545002522941326166717563294376083505717493365415282204318113012953007651913516236702888197228045727184535910395717282066279965505046857860350089317248908646395444364543283686107720862796276471039472606074983173629003402156967941175443245807051937512790734822058806711145832833458046816757569685609694687948331048833728139221141421180117270866793107679117975865094850874383576939390644422176219752870286661157187545104057446086961386076555505071646787011435796558204130643508571411290123156351627048055437602071291061887559664553500142721230418511651469430528003068044114726784673142150076827869765483529800518257550273594082576302896717558511685702189862782302293254946275421542328051926966069599640070996908231101636816874822697623671690917116708462823245192230090877095316571359874111606374251876899365113654760053971428606696312705382305316558920467916423773500957732750394799520997460989196384529888095317985634095224913025490838029389294629427964178121895336340848187512399769701939539810515414461803804974965568257116190328482077521413214917164421158369476547569230905956594702069659226434984947302882978197165688908608474943007285278036158744908303864850889620482119025461859490951158991250158145750938592559568801178191508021916850785432834573930897253827928432044737893328325856053055999016604160801795320848602849972827847375901434351272045822621201880710093480701791913244214566374980006332472806822925391012631176508413760134009655528051856939788394180477058148971859339448400035390978635474039261681601556398620115977280082700012725047461986157068750294576885747025790063057207969411625687884350798967405374832790102194641001080247680265427647605521495900621781504936708166491513090578824605103523876791101030330105976015398387057962439327500890170816981268237438776763893611823438659893730149341494825587050140057427960365533099860499529986508122612144002082657293466230208855945447791774971047264388249325586816747639982183934285893183256567941007416544891137063074582986476758440145314118551467452193531078728338551445624577552552435788893124064294248804697388319130084672639815312752117668507078013730667735383527615676831596898858104173302022028283017024991188723151463990224034498991171704448576278041758751679484398243290630517253345385599354245448683187559818661544314197781364307695010024309963469627888053146589473625941918797063314702779288380827599405152186267026958934172078733942716909998605820626345872832846642729908952169373437969081125550573199474755496145044385506394314172176703196118527275662315719076639697104484361725888800415695266310035950689159959142416131514433966878117341663053762805373618580935139759573887380025899967773833176906443303023843500165992065559832180167638148319124415739664939275081556604261330013120551257503709242765305226625049410280021713182693034014583597512624026096887933183736249861923949129755220476724064208612122481745872630583081364011545917409378890684482897733848827401348308599771424755460389045447832330632282982361213702005902523715547925673341406235520523001773694882929716155335198974368521053509800852987685760819205295746784734530820768536741035041275877625048664391981503503256364911859443412366149158255056631873363360291966038655362290923273085609545211420802700496619843863052168508664442125314994970084374903588354475266617143528593470354566816559105106349490675056982682401186795619209232019249417283490187743979469575559214663535145237236654455646234586068350824517651179383956703880636260914123781563141214629203079359982240600051418766007683298979167259604964028320597035731525731433512608610039072823375389126196779114586100350788878546149958986907125906309709705042871255035153696318153565141317256792456177992428947898316386644579554515018416118013084662388952754376937412241265329092003350054573504083237143111193978351085650295110903924431021848993017430058610566873298660617816819886396209834493078263484242645273839260422280855475983302639520655095961575641643941061530051892213813378333326605565647021777726316848533794226134571450057505148693452603382259064703172510123653661603189060913547003944986896050598588154777941997135852349128707181918266516248315573311311201391158743997553865723394669624546593059457044990045324786138602924490218526901648545815419786759640769815080251485860755402468675147504722457912729818967640721273989025683521928803940361525256075025577694809417837001040762899857504751017659907394728731864156166835817628332492725751836740290627228616176039919170853847586940537324546090327930003284615033654946467385900535842971147870099877256221169255850232753011148358452292094794923587376918457005720968820319714174209243976071576745779886009723722818016277958353315429949928039329866320693818903382212077396051598952255989231103777669973759714676486740709685846093923027570554467062916954469656025456690310195631744040051018641380336490261886016397967555830798950346789756384116496560065045096696786053325181303660827853981709192450354579159519369212563722793960047606194219208378978684365388102978266893661359779842634432684606745668582597852005932293302139038496588430048887936854801949837172138722060072083584911399240791766873197455185767061213464524202949390517006677739571865632277240295380727026905905328770305494946624647316730470876164923123868676389336896838515357943383293639082905932606027932311446258514182972907522804096834927627078897141954641157961711310489306360720577154096846509607261913120435241424727107096788257264399113232521777476323606935300549962191138980487364386486935029344924458153839718271390807009954442252375020571164466731250307320586381285993981679632624101032326259177306625584100743896527096467085311041489541512292398364038265697482682758562601401399362990960469008097990424610114216630978683908637111844665493989018701009449392964463803168548290805495413235685062344313154639071369659162005683941994024482632486699041468518240038082084245996192696482697096072859882687582464367755717509224735188119475110621626248533794407131504537361818680762322315826289800544583791327676896809029178693466418387397176783828078015813485987114028554608138164499201968409925759130329711943948456511842678431547737218093968291598444145534072039323989806296734712752537302718503178788914811946469385109664165114599261446351458133643978333768179534657621176562372559312431784619027399610888779804040655105724225903452338884611929811170479011173550295269009449519604357457830555331011812368078920663846994100429618795312570906410179427354524844421887467734398424012918397769384817461451902492817440562961214925877951946401004127847348738374586295425924117008661547174383535581156112981360058691826607579399170718439773492148574747850448073545276539106579029591876827237600881873675432902415771840556281704472651837649597797089922062702459734821640634919335565841016859122903160204472602708220952184264844990343408310511527253621800221832497788393419702585920856627218754689434510192807185778365414403199308488978245330629992272337873028780434499792788419730247998138251951051500458415130482450839346242050686739452501703068249463076165355957364020038758378044305268987033601341758833169372367193575229019342362874124156716255226227641840105982207247863544821037310164119442892394181084589957510915636083405850677912357784758245442931908964704514833689578204510362011577995960333334170612370124905226827817173568334731356436708899668276950314892585436058186612506630194486910745455767691690006358546405083966787799037626879491932398904479678878556760389183188593749242498885992875752541481024450124574113630748401345995383689178506542972979194465978413967082892514463538281240510826752650480442461559147900519986523985739348863975936565377325904736137575122307511514453457827936433917533737805380639134399049570292304991214823251868321738249897248944350023396726642170004969602120994105383435150646830933370561319186583261288731129436173659498339220600048610248399506866920257335445842281985707998399146682800746105813429792815518824733581331485515030277855123029340123136458650215602227332402455121865403830156314478923057372806474624840965764430531138402662502785409468581515713142234113571123320996814109295008754642627044486999394036261938130265559067712821309966746365399233654071095136638285611517965005591141719820472355094365442483594560931662677444800494889394003992574171174132396992529147460913017782538210777032321605520197147496685467607899522150630347090593870931924446373382897878557665454339370369855727335662340881371607356557600262627450735744535447433068339098934691837478234128769036121753199312294495160491057799691796869518869323691442232481436550719431527940433501018306703896645545597430574422621654420126747049708198333720270729751513840111024267926014225913202005203301251466212529114162195644806988185020314012417974991277756653837123069126142740006690322965227363896648465636318280078207201243211964488095801130462053362205301046569100350506828882767666326756421965271495675318021488762218867532829643307749648384320532539506140139710745637442524286366823827309532195591749048857334309376175101059632858858809061341871268447290992796357901328899678076013210499246484631880040893440182104744612253143096380827517216304395870706036113588439307278677830726627686126226012406030808554308869510321247236633967255538979095166453895484328012247323621107493059926614743981970794018451534656099590424325240591608706002926659886565067562506947440580303034811771798312976765209023538518479844183988723619433627718150057104622322596725793414495454252571816041106603490578438162914911721759746708615059511016246604952567558661816633935277344988294242375509556796406767087887163701190998681251043421078720662197538891123857930621038305649242221495077706252340996275637271816447903883673301219655817528765506288510949347277669618090564245594670394367595145978017619210323762424744925585421350366355276492751631316241259612090358241801160592044810019414371461981985950023597502225753843813276044846492474964659890950702143799152765670816883489639129059885469208100485556284881663964657019347069957984326227497066443959479391261819082761340105641731244210530206247540159912780964294718543319196877673641150664693662113150933652401140281225847503200920496092999659452287113756277854909465953841971514794390082599613822163130401126347033425800774867985332471083773304485394646988499239384636963143169374748722171918940894588418289852316442183784149807299244110789894167417537460942924137504049478179822822228379591312939449283901908897282324046745146435786516242919510289178237678140039545088019285507721626387094605380445768159107683175858128209864105629980572826629447328316718767806093130843305042334431309128606816316301010853717314720301948299004880509898015680869675091699909811202955836899477978765003385406910147845752445212493798842742442981320454876098450890504492213373507188944338715242688743462947964428035249611958835146538258300305481569085733986819862166409333773501014857739103685442812612075904524066499612303118820479722954082307165169604273553648159240675054308402677886303292865640040095554660999128000785944861562689536018704347178982308451094617865632031378163920363484812159375241668892202376170523444591317740951622673563300851983419269946450283328826357348633140709948405683299332258814049083242150313023981697175188778362665697135112456221041292088585429870257858159261457705483207866440699967249884370809241525213591552395347976891643078428790513212012618575915271850770528427544099360305432177724584506642881335885600190202301964426267542969551546406025447497494040592575348565707663861670799453912889277043331444945531047317638045151770096226030673308853836846903856929584014270723581996552483845753522357152937193666429590953999248719570937142446004408818797359901571526762417462042071651779783353839173222649267189398857776707024870278871871222137488037062518313630785107715684262074520712805976452283529323062122839208093844251465093331712382575372187612755947183648899761798227976680132727199562246708808986116346111535828353290598053316036887118993435689255503274454566945469803048596998606312207622314323677622365686619396510856450950712728928626937825208916023376463133463643415363038207238112766927003670935106481139674266525290084777706865598773340911685437530886722672989228101327501683769667437555563076568209288409873495435693352211511186986296642592358019772640778288467482989725656160936130692079377694352706931639288902865242349441120514397833067564833518484770081265482121502712198576216014887179008497495711423480146498170957430089474868941097826191088263883710346453045578606786906256848614718737137022843178600225455457180630897349318228588981773748297199125011604167730618321426565679569565841700489050765663820215672565627167861235265750173902177067719426402912339175845613972904736255057589507978305600485924263243098830336059049930404843233914446725236694320996376540724792636005644660518537782464521520357951155201362152785985479767168444053515364680458838901331986912402722724285920059174781650497001257247359391844793020619730407141160087730868869542558963612659582315886869184450582065354074833376905700651658377411485423024810598318479617868456783350976965630096440962496119208456736124963445718817656300757133775709598374052781367943022619837782333496422931068660703818726000936215098867036175720869427084866007639231484706423468616882026269151032602157250246265251595476950324946430687088712052922515384117277157490432792364588491674464972568195196473368300202005239511386054212198755545425285807240882674496952217859979715254964655650876328274668005443504603912770051779635974725138351129727874460227691043855632195474921184147390645344315326564883731348956859530270653951433119549415251090951734314781261959935156476866528500493633273712573964476507731611629071764116431254905968134233742575927634040640303122682410803481557424844890027115034252020337046885390021302867848071812048737503792875050899048648844635791784443150764859865938317959572653594707679282323568599279101008983200912672694838540749647284711235519127046255158329629279781817642910045578247652136147074859631952524803079616841258232166759514625719320146410682233395980112184650412893524135908212290967479091952232533658196373571350450128123057391767874010968218156706265297887862946538905085156427463558766571826543325890278317567890493480348041658561800006906687672193251288097158624330800743565458550438600027811212689682138777892038900753049739254765128435506750291014063289170165142594257874080268678956634902128351091023773903210708745517473896708313259239095215566352596620442087275201389733498819868223421894137500468699934134051542527907228876533939525700042600988513027981121334987469357651127896406215228830302578635988512826941827282464065653944320644073233087475135098141239918278942601885950282418562287299436604156190027485775667618954328956336214850101681781044478138414239759108379792158969186649662838424721426121038953842486902973877243851885445970780094075594206448194767737382226101216609129270360123990501187999766620135370370575242447068706930285173890174869749720298212975501738572575753875657585490140824212636209836885136888750535452617499400392873188939605888723744276364050602942464498815185160612609916534703403201048792349606428906936408785629804609632579646953569628707161599492669004945024678174949588353290770105751195515738057645049823677157158868995061803093680829039936047472262842208654360093099080556340912405703504130141804808852105298647928629318459938941996271246296813211731341308330509304981745331921522761059148954015460387143379074734835912693197183593941284541191097218677930202699548674705798259045679725123167112320778645794374389729355397522779336784786892524480891141167408305932834922739397080094162305426142921027831439478636156741388077966870484287943916723558877478924901728987091239704011760508414647767721307739531754026349587830514101541781620936606195091145963353600329915800897705147237231794518844652381039739819784735929344997222737463260494334470471036735215982753057169837406473149976420539012605707292120198544705268240489666326566869933285677903441442090452828216265132221851823438069163272697992518691239647832835260010045042558879268294378457762103112349562489000847488102772992645411017059120003826313225727000492781647707753776392430938291434035107930869741702919150680443544136638907163161610577842103645870413392777643209722360000395546876233642125177981206399863747255495467392203273190058084946752618013513307397118477077658583332286625474944478477117157655513449104182124269382655457600323095976803743305860050126708582809354143903363381122300692478155030011731462095769167369866072701608884148178805635904506810969824072002703981927470641219558465371032448097876351385778219607162997282770322476107039379851596547593182799427075077933441629688305210069665479855237741871466470900169307789339840600609950106923672672256556973209569907433997612423023475190134087186652094898336943217793369914909388111251572877964400159152787314464489372140293690656246541943225356270043142087459521175737333426756260746739455511093289958663290116932177716993568240753425159899272456806615522546374908736429371303577122775469727464881815089602443437261317383241148760933734645172756305608956441449217235510458010699093485697853247885724766356115651000050733528942854604347298533695193107741496366834004091484512734816644597761763295101630820436150309233662946192368366182340999048019041720650126345695601146566313568290741677594349217421767248673835811216979401643825307134518529997232409025130451117173286598735918728787968231430199221815742212692580850463531870744903164386957654865712074736397599001221337091138002235200681731892042968794279051738902267760353247652329631350463701502486398633020311701871393451269270424232321378486788126032047290602618247656086032308692865642885397730620427605789055302087240639118363325748775538467136110657788981887801050237848308736373875738872317334255249579872236591975497096098129066654569894265584364537344676489700943640512497427767200179004436433862321926508702289719444701498529970674997704353105705306339340581894746342787302497714902349438481194793452763818837922976729316965809314087951583851703804576454659807965143789687674404688217218983075997693617948373091662235980433287796199699575884016289765914673018709299610526459106290795320807442769035553031659095461229796980131174255760452994454600308371684555326418691690005703034957130577949247261194912728817813931001116483044278778618219144308039204371550637840447033521721391190696567876626533112946131470694563998915160460781039141594858637190130874467764647662470183972412041510423725246421471542816670029241073075522365727070279098742392104398461958262932501690919196292456831269836872171609672196163821951279493614695731741116213393999099729667703321177426392400700129005240555438935771621481042494852868676337205591628593534159238942711108392785741656088527762764142215632194970103348952872477823359831767873603876606540482748995926975047863708798370769260154368091590954910768841447311151313684229053320501505635038003492407356872940306970352402251513904527929100443431751977405423919847592057503550767793444915177604431207828258354115266067362198617443171973576843554434830901572482714749859921095438689726033422075721156970783680207050105860746767977213062592519772222261132036586979566019634628300015972732641145904694863914007952484264868620519874585747434590045269789454818422750660594419216253597579860422701852465784351817972587653505914365377944438527899923540620047342069650550024018055201789029394692613796265419745954417844144635876980281875413114131152803516793692269273800354436953802826599548650069643500748529765308478456836816956579023514011687958858823874398974996657292676356260064800334612163530736707707045992385134684819559584215329933689985788230632174656868278418462540617583632618286151703448174313211062970781777111304171665414259308364526633584421332207486329675908846909574957537552476909383006878642121416499676869646561889836075420089125517290676245685949683011319708637914357651554498698183428090408970544425792273210165904931951676745264200148309931519850337060158048815812161552168116000896913379081350551142440237249809655132871088852100417200110651256745348893240115168810632506833172220744649873551994060554964772151042549600503665821191165991771778648373689044958364014911578033107899878508799489505907472196737884137593243736484534648597379732874427673359487634530680513247019913597663872780023408506718268981038507214027421856822592547081635144403055202362980245297852162546207744019588756447428252624834483946464525418669364291899454371340796840488258877165011111872494717016870308659138141663602170269077817845674027940610634445163312253864580909774349553485372844495658363963599426882896211357737630650478229603413617092557237844123845918553538309293903331518569663176938702107589934649428258985155072468632599149375686361788869391071733920077766416019767698643716221594746326178013494488644597269483483788226147286517613798426145200525387387184190383884666325371204480330481752576161747798970503740478211717147284432563237645669056645664936854234495656098055454294265095352031927951808947734561658230967801709336761079896587457017034540240991113871751707580433228854172695646719439913834175673288528182191605251918656567483006392876458731643406594903098770798944688999651281691269336335900960297092291819983688909569530435687574338733410635764170860112177266041037347926239502511746543084808256403441324584005246694907347414399298505440799768102739971474682588253055051680038454447383066286508307477822929393731760901958619595356583190266814276829105204865482766215735703528830953320417261551329743729247267185927165501411847532249011505869087495415826580556333783462941204863277711639709401688984762802206044340795675792473431078357220548862131183563887067711099725153547124592910378969805369915972872232561035132964844665065958957448806074673596763392541863378905424515904082769835870025530193025770262128213151146471241511445937141388620298965729520052363960904804743289656360577576367420202048793279245860150765353143320392210309085712501830583028470842949660061137672942215240827983558275660153203814399309752037033230953134278584883211551319206728871444592351500432443630288291818652353342235026405324864135947280431741662061965948244507766268853745077979793731326531237670011162201195046234667276557142371064517064377961619640617562919868167555220525385774335918274745349824951973648861450365688748588120896306394797999719191481377441809172810256199127851005281859820474294785559068195158796601112011078843649898511518269788886433150317765011486695842777918436235806051073053463023318007997998834338361180483257190559383220237453825313599253929554145969227240448033851185937608247918429136364656310334427124250497078571688091107433314225652538856513885922674671326948858818709756498348909333127036430010422916321609793809400568545514905301452872646842523420582000460937084476650992516915352148728386279967638107714180114032904713195306571409520991500408186683160429685777328795769417260563955371798099149663877876086185151035878998622261874818582944604789337727691024149080466824100419856023996690733690002643743860980853834637781309770268228014351172618958023078136098022146085365529591933128951416949384060738325255259562341273352116700549676654574757834068367909383329097336000719536326938666502465610763168349070121190987408898007609886809529198005484152041901400575103356194566571198147483315317247715962840612127140762146502794070984953077069005649428239499079698599938653648851522193795111256422687024796185742602438412510560030127201960162244395900789630496000384700817218594273912683454966166322535528288707698337716230145735807916151385640442773888104386839259305445389823491302449324369870522228006123971619609349606746588897162361496988643356284892138329825780076996027456505253364394736013681216609356842571850156001329949260036108131535442127738381943606600311585936033657417192753573025203449816486823957154283016002292319753795666694363765925219425628263833041686346073738363353211919814007912187998402860284028325918452120264637672609956366514281938105771053869681237577806909440952107484902319024467644962333118663029688947546305701458595194217776771450957908640717203016473325743367965491179544074348414139670358515971460432291025440841505833677789868781159813908164865092816546746076576357347071262317461823781463242274140713304937143651704236084197201370538414134561760470006401905791767368525230726547268974940889073521893397584452498615809585244783691758382511162372984484407566679196062861310778088013810606637928283478363188849687988903790702433978792403042136585992503336675260094732095093569232977826575172434354515284882150176849797800673877187143943536317186210635071491230040994208524827358523803551017976169743144986769347035908422533303729819737832583913517143244101066927583144688345900046770340697653732184993880396658086018566806033184344748909453261891778611195239950065757522543083207891806284077782945490562444003672240698870595100479855301466800284286995084982158326812591818703400105227254834131201119040641006332784732360894935598093319382741377974551971093172026177997105562995280197305053484534823299240951474227765013897892126391967475926155141062530016344327956778900103331680211847480941945874327402338722710320688057443286889284941386950863019437486032490689413454367280956637234838855959528886849688506083865031943098326380303080092848505579000861755588598929456398473133956004012095548038933219364827363086257700934673448176621205862758533481836116033260452272912797393680248414050547719883792413360205210887607767359318449795501416041686752575916639925838461190660876374851004506659463913955720788183319846204673936535812744036469689747228389615861959150812412614553366159185566980900541397124208421236287775591752858878354031413915569150656949645927358948900221412169874616502929232965784251909408658625980833622457315985782122780668305049855909506270384813065413681287796579431059759301722427544769489357302896722583927389748385016536881163262183480149462336570279240936128143400830457353144731201985848590964138080361352548537107857253917297257300564958431169345289626221587529309089278773517416626621161720037280491600774648521390681088663823028976406755384816087973703020723734077428794829273473265989711690865378262137466467203077973451195503213204982942847291514789316352493630786911853329886672678329112393885825013357154040094186784816576243418476768312386296520894143849071367201097304160092797393766542003928621018808788819866394947295253194604867970825848472583844646488082523042984266170831999563371644805621149724130253435644549583656217715265284367296133917725871377775616218299694660391669465206091090076641273803567154212468811614315001861189793950036405834001862291262877098832463510108767133538502126895500105107063278871201587711873821984640005826086595603405320370791308485919094396683374980503735537239225957222405682774033788131322864747248514555030924300760715047427460868756563784754676374651735514448645357329994192791844250034421761864756684654487678783982485775736966101296628330317059451833701819849913628960752788325642475731600413071529110251182451883934856995871091516439258317599976323577533281080012270792676531596281614947309017400892883609501192722571806380424978709709252425768174130037043654861188927703247785204773311566467096474050734242377517237785777836145787585460652113078096686483788362643477370642999395121909679049461136679306494146424565295384043443297005669705610608737533163307475652220339829467476745937323619637757514899329894709030959950030867319701980009567788936978322174003450114782139425995501369143214599042560198167664262483144353868400040999321836767925653212642010931103274309210275658009094181762471101996998243856685178641305899697892482001163872862292252906997235699912415746420719407766188968521789791745998044372339162481276802349996864843349198005319388273738508781786129370265040810405725716167178700803092606001535146358116081366853213195736470075331708160544610577745373370109057982500679626632936186535697726009257401270969341307503189458202356646404279099103766343337807801916489323442863186692334175183949870785200246649121651154738392209480125205411005849519131588444338949893401722527548336371850867094781459255423050745912079125090326046483285641353755335399546463962181913797494992171136110385372393618944557959666247079509656815205342417794714708075083132447317538549277695337499066683666363414346222653321811534955484881843481916405890763460016767932965308465813122416583569373345540441867927501411612296292385484958212179295015063055634900886029259663038839223294537486074630772122022627898905459971382709440155078465986501252923846473480545077185100270764909754738437551892276027646951064808821374201781033921907559379023601713801289785700060606851619647173187452296040107453712468826596882046837157591310204616754266126947266411840527875695251018404497667072814119298045775961182428942884171281886165923550879457351394335410613926162902852630010978414439572624675400745309252673254937385295722125350380535623628741002349908930937079208082112929292742036441585211880068556602833069515918989220018808733791073355067028761098601072743682925505052482446459796616737511706935809836141404733674667328494784221483654695150086300840927532222364632636142836161635408794812936096392755726384072574660851325913704081145354803277790635915117316053930190598021637919203298334304293718217057005761969392086152319569069346486051505252536103995734052473588566240654119753598103470969657995633407832412864801165774746790849279673379177156094674629797155132630940208030142733820298679997423709257715699946090531541860120913581950311229972165725365317015753435887317285209128378840734011836410764483498595129300868386003515937022201270236903844567115191117798622533955451902903034737338474583493655935071959547436397970561284912013562347385499056839950616411996239833123206217261309165140274774166727495470916207663126129012264436274450097669500815703034864236347683852874587981856314791247736044138250941353523170732578365297417784935357506546953033301691029838698342140465424154939337696982427271229191973395326717453908955616231621110079840529869390034190065374489834175736692726831111902199262911674439927677384269579619753327598337255687271516381336239543332497345569431836249873454201519479169104562754106099018060270233551293347510895860519663056102251351373488864365918543006152799167066853108731397705905037813839765944180390554921591590593701510492831112345199795074153464540923315369066109273858979394892430221410993131030695382328070562218149152458639548446723657500503444960233611827886461049810710230056281929861094606056013802034315107155373011212818726025593186997510716491038096400980983972788784744140306920344589690921999236370865460964819739342698595633487306464159894806578665813967220753046962536303902338613061643237402319990652784134890620853435854536805264495961190610497103084017833722798548280031803037712090273783569070291061202761700230624020342707921974986847944992805206962546627995886376591951240837773565640877984302162228711786339674513674119046764155874941562625085180503608797605385688090112424285626347565118837555828464935604501757117590729700864612407656007682760554249499361822464287064477088573579910625564470716638794232678557538408327452561325679971820072404599029377006733460921476638995318045622301576003894818260009929733532081425427162385995625058734697010175521477573964986793847052880116003149716967968851892776636527888310208372837186708989100691528898298889797189498504126997162830487647755811886672590950855785911845544986165054621959465484776411157943697723820237837681168536238400734493658380011377277315609609670070022147446086962550582501787371868942645375590668700738504215183753538282102756050382209309902172348163349561227386536536984700107602942827274568856882693203000364865190442463751213550225892004775838593379551396446516392629932525832294200561792517732475460637541720284088257921047090911540114591528403699087253778448584760160004197323492443055912043587975942577802414751687575448928349124274046182731279660389289864594721338022038525023585972402271628004764787457103633319216713023736714673250996959568608994276765804998775853653106592198105138317771462741702618600920888407280986228282306897900255092256409167252237575656874929549512801629035255153155731674172069826682875689777252720733400075583681642538892198276601544779568588075542894468201701430245374831573145146145817708148352323382539529346247616727035166170954583880893691878533904605852646214459754210965960222236289382259174844033244907689724221362288004773750020898705966793248696346609211699602505535910043649796477240105436158404036524702383134838318798038260561885997374840018881224996836780955229136127292255025342299694885184881416737764212892599585080105413439214066419649303272668219383442128329277589427899466877681281740399946356862423024409900617960653269258008966279317355610952270380664618754620783778895762565237214655836159707725567443027908120309002271495408858618074501113157573732230451232639508789401422166342043638723249526272491165785672128679671925421959741414671633863640521581423309401683126179150267406825456237170698547078834773509864800200495427738657167786397016192164267315126702950870915638614580042759585312572643038039290683846123196615367758048816441927724700085204597652762452972151540363341518856639697335808119329077713861819086050957252714310506979947022339297106143030403063425650952836459103859307466568891368090697817766212139242032320431739416063334232594443100785791089026289919381854627293623416490326884395569287260739572472395508107342951599346309364526406128995091732808598865041372639629435658650143055107222190574593915104091193558584137170280045953060990372651915869276825179456969624526580473481779514179377959933438933301913876635433115977936759831178508637068386492474564501700198917321591947926531162942750740214947399674029041981923932369825680317088428194101439547471645281227767403213744287639715568577216113063881388072160578721546037492739403886353778452970872872856595390534219299667602934244610594964015609780954687191643582738770466139513228208404743377454745541330589307869859345396395730824085055060360221814469953477752880046167093175788607788157899468074340558433382047739790804088238843786295014421130082279402334795201925095449474338993056775631604638271484900031143067798389523880658115922748678549667655245951413747650303493645930921859075400839032078157263153750723323789302020413329823142845320563474292541008204085038152073474546932245922856793565197642723688752450503077933452219562507908045614013324542334568359053940410484993140101690490951080534508560576426120892459589476059837049015680828795285340067578181815693160861516593590246760620309579316408768437945624937636116049758740202465863835084164720735521471664887363057635160943337851279088917169169608561611792948517902638476339203683661222684499665127330781707360737740102351028942750188440131370848429212671946191281554125372708021458765890081991600684240804519394936292304755080886272826243831298296179815363008252576944484721218057207294340232149852588002946668586075367682931209801451179413705633761028041816566708246442805575306451434976883595908765345723192259676859753879907371210661029153510315116344745074622797587923846957766682383279511635747401055460835939355178789563081775793561005117791073193942774773124069733628008330661558430000094987832245820781255366057652588910588803590929976471805700892960934469619920707531284820307168671651463838151831104180134736605567706038837515176879658371819892371055636872346468730257394641545640299041298411893612185334896701619381248956841320558514015925977680939934253511475195857667618056905290225626678661350169064568512361107208018394993086805876004289172582057255323508823486272518618567364986878653435960803224493260252361786670778144114927409643757361359237099309173330225452571892091425218109866506638570093123216756527631223512731550504663523947750710864636572343773209985913362790355217390977503158444426932233059043543556522888540973663230408708791249526962713466742866625216711459900795957147629248954689294300277164884546280221584693581242032966731893213652539010397625704583643800288554471213336692337967560440327403851752630089470165338854454289974117846201370952443553471821481234184176932541781655808740220833501570527574671059732357271891572354219305013309210406716494380961854159630845349376306164198732432358992515520900479070269833045947741255404931438213173168559569021436908864938341070434722993257042799114354997929403183367678326814193098858382899487075019680344138483803462300083493173670347532295905050238922394692948251654074516093449109986816102464196335735248253217968552162169124530318935592447969113649866405952580609425865744301092956003795391185463614902930951208121754986369464639932329644886768403131868590994883209140744034814572919572975524376559308006313298792496043158504265819550914674163715520007191099115732606891346895054825375938980876732553573415648376453717147302599684631012572778221416902948923611128986276932599182633089825781060571808825387413170894873710945478448950519401446249689677580160465398336103638155507582833163917880949150250819237632865748340431945933234621207545957086092161368276021433050791125186072770343372187740827798719554193272269720806701771029484713195514460385671782177530825652236920352912567290175870038566535402164234198250290154810808320663858334524810729004252543685531678042876050420528948121029170315101606126335275627998587430398150517927334159700750456113888876246875383178694253644643187178154287730811500234737957837541159056708328331932563437317583434371847427253228935682129246150383321131969280668781950760867737032433649693512146877014478568310045148699126117751047759178443790231870119884849313660979797055952155792157429655207326067348595333230640473431528947875349874073782023592082731346370306292027250344157701811474223927500659666064179392933347527664277536187808221636378452983722362598925688471009830036439898011276796705655990190010692181496668556794763061207765916736871045437342416169473543831622324695011537674044887676074878416817133764783850583677004767327382436927783614345347914707226918712716909621796010242013629587877851980127539272977541501986237200664008944404003484354907471976019836540928360190507998245969989780963040610107247191675826620227386772617272337489187447983990227094233175995142873295143341770241706862902824085856444253958364463771641902930412271067213299281235250609644643752920276417777126710864829561128707067606848107969407083463103728327456289710078674295240233304217483390484184326059030163967391587881536462559802752806606246863065545719576545217357625031438701612869548151980317482910968662647414557951546690672780072891725833870756959497325113644262878408115945146409474201498080044144633798593996768872702639393154263361842623213924316991381716681877386238634417613897676278603831334330928076875892022726330989339697506225895984268966804542716428352739987301337474650034954220329707305103141592479899240126287098368367473361069460056506521508327051577898970304791865204914461081397952373089060154190133588393684925123029038080079936692352344940347533845350285542476942921922330550666583992591922035073961402691573362701172530367229809863429125554169532720498882635434560426068484003658422360988107984881973630706231769297877688390335927646326291114425882732169905230830023715567320134051711089938963819193067312059372684863700388453647056045629602807445991610089259189152867959083893482142076434035663938455612435259991032618684444527383415792786163532517613850046489739162872141981521810668517482966379691850766353790884920402886727467410349020915695353408277175185901419232484855385086382875741904876013000760887585518679445678762186765916063670918279270475687200485868165274251759938984390035692627695469537257862974402462323350245629187425214118138616411183537300569350211761137085816030835812375483243097360184199817245811410511976040208607318811244562208585742467805565397191054472351354448849666943917080058616403103693407140185214697612933102252401674928716233155995344431772385775660680814393507858900968826432772526271252300392912671291281949789067818615069596410178275637621259807966823563218223149707899744880651009655680124698632383213062116069211703249929539559457573436823392532385044575075044593408930538875123727035713560963049813629239818686913754055673632328974735341115516526685097700569371943101974886166593764524669485168805533913987650101696139054145213598578306580596549117046586439000575040989109267551151870431087429398417412796514486730005087203255385684940865211280979111674384177349157419828139548130233330928271563404421998388467550769648192982959779109354586565653050882993218722062554021270877891800275790034881497203142896159696361515394185888360058484303324445235912239987740902269166912397927336622803701954636336583032697796327574561038849686936729425496420230730660201193998364452238423591758144622895708640480274225795328032873198003241401762469816640108861223315410942115284041399746053147171198783806794437892145626763819827121881128221800505774668047229900054424830049720676062739500285392701752362083762167731737406842335697241960475613810253053483260912148525670008817339926262246011980962319485144980161699639840998578494765327449801011934840260492520068143797625180004958323069517496986876179083585839487477020238330866055310374419882695328471995429821633733147577016039133191721992685488907120857824338367435950896254267083742116197894351761526083704323686241520704830323028635960930113041846492695941702808158338532530571405056203714432238419270445344385334288481857415753896694844168733361619611087129992112271314723995183916584751364670404098097331637036553116960600142883281331299995720014571226595014109872988234902013403331821627752103953475032712995046636107462080284276602749986419081474978512493793874073675105628888579516275917497366136739707173985256054835312800937565714032289918792294740960431596916899912936184928875304162869030951481895589277627823427372227291769291633470832045889662182752495549349422286727202142367532681157678251899965418068988643484607201327708146597197683581381927502250723068188406274439351016947327547351050803030080151014361225147162866738319343698686314018694779557341599752444285698774486415842410023192127376305209206592618332959162580632845845987853621142673511884323783731163701819058373949903049710971498330859253997169712825797533236982912147506179615536704529939540516571453862622638313217470040619669849925036468309821826687494878496979384270537207448185020488914330668680071130157836797919815534108135548912120335154233494860238816296948709817297802857282087527519739706927406464199529322761108527261248513757820248999416438726763206827205540466683027734402957364225306833196430247787288037216363653907310820908091784091444314010323756296830009034509414657651740986410170331795550471751348768444298365379694633106909503132708098680552355624667991989273393325408664042044088905137013287037667405375525409824290410826169522899083568544642617624329734332420345176493769486055974981977334781535029584233577469833932010310214524641756382101718804065571064198446380827504751506153933755392131641924608057927210317220110506684717137626065209930844586951932698109630750952364331873219083330643892365773236831196414102476403584058397167272847647081888717966950382402477243158844593599241639309534345239529436575252595798500128364838927160272896809841619750827833432949535976076872507551808521634892241839013482967126776412556597938851181990765755963108910125017371748046661382183387673870394347469055931175929955502260807089334505025941194345412443072542700710609809106605676048284837759917449927243341284416137476762573177668676426466937209198935826313787117487511108863550518440501632417780898265209533260836425660998007052312858821024609359866094578520635070515899778603006756755683995120795878579652169983360536977876359208600785679673293115264150883898417742090217040789951273206844271957004603152780997004292233504020032396808357831445174604088536373800705426073280329665306493179971310559947616768518781200722859710818821877220145016859427378455562419029326878515376789621924489704893754214572448873932368793219065354816760159672401144043358506876151870818511933410159643500462643486154317309443304125014624282472074188125880333484097652950128674297592482348161555239589241796225073922115414905924748206884837197095633573898496499600285063734080669661100009569372473751537086438387176204640118444269193219947180743955040449706156949532380790531438978438167113652235739399518468855477850763747253613575681780113494706480840641678909905404170950043955867139030024587689856608940275740879667376575667740942140306052156325057957479882576170322788156524317438627362990294158623345714495262432461479323075647421860591325991527841713136125483415602024791971391458420540580983450157561089453248157683806109503276732313206663559976210124401272046443315976666584024990428879940988170521682139733203134017925613101308432870942605231242399141265160924293903710053006727303440300254248943637871489808968469660332022557520176713516501240107146594525796768499221286615311799533478748511585153671761626250308800838149742249124093388713377593753603970386713274530399489835582235035080840554452263228972088155588366757681688048081478211954799817507591287631610548277130756433000673981467587417690014624948857065524651763458084392337476686058381815353254276753623330326677351180474187718161653225203527280667041344638554556843138370510386893571984707641593090933486505700581103405880006321478307430270117816462539574131889062568033629917522838008729984393447001477073034537216877545263740108693307407658251939271316563537540767991782568970872729943047081744000034241242686444737728625743724682789198070825695922938949194198071610487825388651492728487031027736868834887310308346567842000451468196639407018109094779883468771354491464783313781463580447690842609665223571035543553221749606697771155242602711649253106985132420683323734454648757485436155449995115483112798760080575990533498516085223274395295372831289553777342868603746180347203293986385698767479516496633028843249249658125106549488160984164866027365370751774113636908355925213267546064197851011587200981953236720658619154056738946450088017310291058598019074861007281685838950688881535559528707264330759446689342511153810868846775270854004377055251145656905841823180215562100318622234860840831304495781899889124697377475330960432682608128769591804933522715389796790018393240802484922790806284370775490890566253481818508409395626382392193150085768749114208979950026752842990265082633840939504475607157945442315607754247603233977252174334940890391248966556239068075817688917851334637244057414082198944187334156075469099782910886871279782075210450080473537124072891522680209829214236570068613274778186978100360841625597499837678256582988329380013132646505112371341409062368469437411269458546226667137697817692904843600634440111529272601315546210267044827430940065056895852336292338969930256011129558362277012226163076761102796876336126058733909356880481754713421563162744802693179470997532229046930123177278252583207689316947886847494179792955977057660463686196791899832771663249734477081303631341727065154834599025061105021672227145326577347598137697549725437979808725769949993130990027579697898274681364627459333667431624778621981827597391662064764166351347902572053417379589993079174480305600590339750262061309999781422222633985937901065624810837609040980742220935998518351431712931154102912177060595083672552070051622559323437077899567401205998056726936014599634812475020503608858717723603322663925532605978580898482529871930073294518227224424223175635056233628218626029439788501354032460845089474215087694996793807778456836110411038700165739043681517407975304339545593105564908909796653838189382749779049339630098185136704631308890176618522817514306358403461302046566817740274728833522468893337187795264597948307163355894927080999512838476166518288718007521127443683828093408811260092458655485280487504880059308324102118072753024069044908736322003970744055145675347425269400910275860755649310956715871247763104830652467343046800727065987823672467089838780640481716493780665352932365877320372454308668523622237034465173678785553063239478354807922223233361302993675790933096893255531760082423468563787145803113187026120140660112964798308125360007734834849071934349980352743364354070547670321979603444987409851987620163885665697735026918233778912543804643196559117975744915149992973330432140336783841950508028677602618876482428747475625084600924568349472342847047102009572963059814331069434074800152324069493062545453017176199000579751832801046590269093715749413920514651005734073377152900971727613512447575893360355810807250320787621260645735889608473783932095433714835959893867201644136440892579320784594113023613774390044355023741399447457975719368580243821303424823209971452791289668424808266745898323035293493095304449154515289585009449195741464294861441009130501273948900521377682219450498797460707526548736446674123339844034229702513081010364773742203267527096929238071844347714766625509850503275599864158319841995142673399288146617409064662694328502896078326868828562705426778823788111787512335514377645959480118701469433926127329256609780724293989754857203329895692519379520197125509248167105389601794231236350149856844445501848134287186581757673231951559783324065316770464614538494845401617344760625265324276471512749933596743802253180179924831799092404563970105802481164250116560426854138271763077466766606546116410239162042575448990120161432083496446818388037597283678635317244031407553613314344830697494472820325246055975805812064605643340110575462218363310058696721568839210352169041815518372330795103492897425993507227345239887327434498685355681455291444614869187977363666509049491842454812400928312270790744312174321332529107955900201339393570048756388037878504424519099916086585917442808018274328180541220411971737954567827932258699407104216091215900077854651073456049402084033403723143973727242435865123616054157734777205362481463955192195169393808180380947497504418413168035973418505540721459307468427038972824885461630725435361572697110168133139796719305246519260078478785751615230441505774557039190699380736761041195708182311035971637597535489771317377088707253908403830208072619836954140821202405030350625976388239314884885860086356931069018439543419630457850447684123027364503983794764908741508505366234210438920847198505387622972956390276154133905455489266578112614533853774435035856171295827583113602553445881741229942643721643684303197915410887669063508203516760105842752629542213115321470567760764015116988786995871821707511087602095073768808937361916477844099166575315226548280341496011053367815182716610232675751593197748160265527007253902603178192086367333060857246680896484927590213570580973989992739653631637674718200257312868911022013137873214463864379823100726101561573127352274130010966752056089335587228672092362084629737283374828619072417711944345790040440186877484899601174172161222515235472583143604639772447851633993553194051210332839492967057086474384382929288894396825298702220761727910575077578570781646794710104264975412753009546536670676355193907877119823684691845430204507426739026295831314703064732465412023579379028996196093291472095740210032044461372048869283222712727428659830440514291794028185745600693393615981882408415415073700135088680054384897315453598319826975490430314957606357392273904415986706049148975197289538448893563770947685190968919591578097423520235563112248654315858768370310549537514838169346532062138619599927095776825303584992797365702686685871998421620851159743634874529901160838666498979183041886430930191418206347868285437545671108463662224233458146952360385344373444127206405961749526561756160136511806792650868883549948477821546374203404024767072948414687401703548307516075238927745200951677808917451683699608599014608148274559519247168153754149432506472400972156229002853393677413864532601526889274024163790574744585239802824305491775445023474986472955251389474894371468216096411090034981063006720726470593260570457999889877334351407016964455120698035154320436189985592361578766752967910969207895911437332935282504439842242450664882509464301161919697637766160631878362867302921791602275964676239454889350232819794074077301697934025646457938853812096105080631453269133673193026050821666141926647826704867353060774808623710161043612048145653987275640370392153611160199065677650247608318371070352858983284924785825249523669447070508645751323751950847561175496847261174190878259549647676890764623029422055749013240206739625194159288132297699700405422266643609361597818365117276885180028182916932281631440370961467370660911315987179653426079330076859505197468991485952029318210172397145910311463678313220016221959522583865488660382985357336228085859314649530634766834973903004036357289683325951116516315102609601883143311532585961211694699734962741372628650268372304647728957319451803833883813529813224849598908761886950352377704316681207284701944282965355077210442955308860720768197889502691330877773796019929290863855988214151116490701529333916352507824712404690906374665139598414774551753488449092108869930805608742144379465437740066636772527952659824910340350339698193410461247817898580049820216549908631302791378952475721007539716853963044788150648587399244301449434040412582052633220051566539611058705785070769098528506883283203874495670861377344381027925049353235588121785120641858789610702406916688196120416358833545921798814282340521468477893304491031542603179543589576708161127895790385769583033111317906087419995463985600340629079832427199120593195124518994056207699184238465423005985541984225528373420726722856417340744168498561415800448673984162387694693038518945291809385186000559442033883905100666322248345246407744968893693946402085343114523886999594271527450754143955737949984847425971580940414123897356073587150593608862368179525028366950932353148834535392525703624414639104417501347200561064250911275428697266139100353638085517962675532709550678408735657688460944607903454043144721336734810573905215932767777318927467275760060760918253243423210506621956368581793785122156287434380819181357992538822870734234208357427512104827087011505612522934600944411343846572886689852651569939153973435026351171830588510250826010016717979369673718891324719221803337505878266039220312546181578160616873866441785565930061572540522386708106827352678781294005550618913162046795057496176449516797146987294234128326325806633691323555092866334690427083331680022445279102417022117987164370026874927292336275245520151498750317708430835200535655052070279096421713631423135242153832436094157534559177487544536152512814116734143974775054289687640234059538540342097294408070439855951954248276588186423482795964652317152447892801750076438831449222219501381925756248157019798300545952859928548598205410668903227261448607016926730461772226164170616874591835577169336350078118592969038449412494940943546993083259874880650972203322119975002070190261279380079896493115163571840199163062457607849273462272054474683277205075760008808858102733639258918088985998927031583250187788168545534300721677422335015462154687690966984734278618992963544965725081918657264933501478157480601210829691701547992182809984703927304393488940050249408863023456285937341335613782538084974184999811889216142232482788821947980230113144031588207626769975588520451743052158280863762195108213021255658428273464099787677760802861828156601944307626801704801171233435977704324651976636463186135415455713634711322535637360707251291980401243670221086965874737405258885231273555647400267855094641422950154942082512460491940583786360647401395278686787047324395245832268208051343270468529580206223806217217815603270401069171945102345881917340774172267454857895636932287021890929618123728392549822683389844699415737627046763447620067777916476830610211941925425096176925855423642756171972503451651129778926752661924972747395371965289734291777188630090865934277982032030051216005172963038703188288809241615879058078913373538071199866520279806530939561076577664925452510339537601693875461266078729225146149765553663248328426669975411768862462792361718189498860419215313907682123066880174903994048099029069848568637436204807817622007307342089622916520913526034818624057650712021229456916852483250952183701785189918087112721118805895898668707387550561812926198930890859664527141370237473815285393387500031588114933490792662819257656893144313019275175336243373131241897947784442534572812284552881377785707368398261305417435940180829588785416609656320881688096240858918360784536830016943481438555274145491802177001928115965636770155919892015957858999641628324898037491960625502355951637494193536722273426126745122164883801293459735418216652004794214997733877292155498820680813460574555452878906578616311256274259016388382904281528748282881425100334293090848012986852333392722764169230520648872690404547080842309356114758301898429679531204512575012072790882333299065733027676280341629139217451956977611242270135750789705115488592397415263545689735309826950247704857513816525209605943778847271095816152416757713446710281257234581162665694368105126686433307205794962453354149021198441513412115795288653590642408771858939936020198808882676553198505436503709691202830611294893342633071344963229464561730154659035085439484521512048783447475654972109528618065444502609677154993904550774176499139930850693627406212365309368304565750426628698335366366462188348214239759385194014436461025197045291245432648204012987133496394042175298386514109354136534849408800660999846409226366892354930501929998274466262586849109094233546495830002462278334951564251946996028457967449152258298285527185771113803100637938663076465035129214293235993724655285549686284320907157444254689151811608648424047008488009913193874923461528107545536092558736394138877896879735816354042339764120864674358703648707126459234729253366950950866507326692181755398365971980485161588632817628188883804620808169100038536341198044809633992427909355526551385446347935899401805732149338764214157696670125670100840023303626901755171959429820270607061079404941046568500025978650458624394830965272815296928013176909356801456695657086497019236275515237754641703858292571412118127223513537911824087175881456069143157226657018454522176777068232533374768575631140908325105936180943265177914014756715030454620011726082144885374173446502653634039021986763783319140194728887272023795253511708511299060253795204883683710328615797486461436256367214326597852660565692716432983025720874760231764944090331574704765041245757219258158656044459936613913082656555471525562332532972632226666511678024193149524921804496668624855960125580282575542259149756165480070060394150400368896287050321790905395856122719089106170392977090961668757826461961587396388786372544832595380049712535628665191654741220531751655022895401124486226968386128013521466671161261137759049544338432784234070903587138644411576269893083845987245184617274460808140396749991114906247439076852366064316254555549783936659570631947552965457742197655606500104095336049236056106988992130270580370351734443741055221405395118485382564006606086298690654884305478010458428173272482075624129924958179666952070257467688346766497384419935771708822031338969975569754734604223044584949796032090247367520455863247486971778824586005607197920885930933891910281854779986021375472140777596514425462886273260014425462108657255201009241270156002810563237334824946732435936274069294479874150859378539844279577444627678668311252132751966040948924019168214946653656713488668761977956218834250726598676817912742660465009239197568731056658931807573629760586833188190367184567692296198486607578926283574470211838961814583843817442168169006729429946033152050317156608876158646535045688832018284911126488480605913791900367730736524599518896510212325067409618342375888202515027430877316656933315871265715838482742407126951603878800267643216140375899849836890938889440346787092706391980913245025960695217524282855614465719050115890604930526646110279911776449824118723093805855311977426254211235689388601994868856797278926371383210844243921656389445485124136993916323899891026271692085488902723690872011134730888823744727891854046118453178043289445663790643125030374470688286823082435565389550219950076526492749001956888561137479332630471069343433306455473675528373838230402273471819290988058414327467145945060275289551837190595010214514229529519212443157276058857181578728800726695682010582854293037605193500580323386242885970143632985386210974479316422845247489868115578169664332276754886848316719717448212036150193007642967741592965099190549203589445890081881522123648180579581069893492534302570950862517038358332120988436118147471964573449635277634476774858331891216328900375273276210843433029742673509855065715045348453622394754821035935870085565009557192113439279671883946263701274734461759250749187613301929779887794631280078552899897827652111831836594467522054517314182007087492502474215863614148120385100857844416705569941868113141662259402389315187848203406578816760507692305359414747951545594390461524996177973657084751605098905868776056954045699942944965385381180056381822750641420854557579850993790539081172406593123158413259293599541536666923940373997325571690489779811282726927689495676367179937460986293994134540435499702781519736255576832439242799101493883181595002624258796599903497291652007618328922186145187061121143656347601410919781135440619129536670317221477242604418641692147865263822458523204452274673461460602350551377888652591387455320748488791765545585267484648537080232129916494260342956490755296546947965513727383880651539107217294408886342579459029984923485253528335592511904582023421173696400112222016768635542492655041010248354673399560004810885632098905864827678257575175414018503727777769315295879051890995688523800252850431412523262995066245422837693982167047687729649583946993001049212470659531953787873119817166523555762060452166247102509803231925060142797162701113483191049371193344174129270258699541963783801414392302583656496984355428087697696026273537274716696626142899506378316050233438091347692279929617105675465620584555749526051846969075865229276379154686898249214655268999742950023026570416692196162215651131056820396909922085140058434209819859838276620349032284332569535935060823335185761652304594648356679734773076950163982749857489360414320109640249155957326622274311916296708664401334187057970263512531243569463418283289851891452566144621000393453222913684637002395024891476998539768434447005211070450111892198974930909324796446167291698578578191288072306745718911234316123809004414657461429207247320241670559906044775394108050477134424078653269288043831864722228403880119234455406108672941674966837713199918944754240209595153890285197800992299641049852142504639129596572907059332832546100249110478845037340693437210465582540605119587867396464472705935342137344144824649719523891797873346947830632201498083587990878607793404855454572800541396756406330572674250271842028701308583897400714457950956940128185876098417313671826008650218177562353279693083009390008246672014201669467835621404498035165121726829929507555663052761027692403568229319549431389595224695010191806093375595856666279312430303303036221635832070564006190701444490599049807724285357716389030161423237826680794999069562152989061229524537048462444861524554696601135753135205958525722597906968183432446377167076826429193966862149542301720205706170978766601030571142349014185397669173314444396983536841238753476777937822540328613540623093617145234578953435260592677641330941195987811328553560305592574510823578777687374640468947916121515635612710292616718000394898772640769301988952573290474192986988077531234103439451211835959992635961143740317857649522322119133925432219069983280634434270045840573317346927287425800533416863278037712492719500792380477558138778633068362676971955402086360442174913274526293246457104768740728427835340714836861942444276666652132261657304142291348986325384416415950246511755952011986419429136063395610112567266321246994011312196882613294555291422795034875833124948109594948518210944789813906295518094169736738557993640942426755441142864084668142219206395505380600482812193220551718934174901277479688408498654773565458037431961809546966193784908186801847962879805604201197914362761042064632766870503370432758864533522331389074549344542100844057066915964021194984300269955578471490364243325055776981626012815239080087996730506741717605097227130983759590275182181199698773290106210383159016599468933987132143081265329390427964236677809288774002177539720072731699641630510103022039278507513715751129689453178380215422816645598232294545332629781104000881864324754764774767805958335116950333442540091941455244128076253471299431281012374248479498750943765574704635854106507469822336859430418295303459987443679809997683690036055113145493544019312860256703333858170339095202140269022428459123071575816226877021982541905353417208950991344236418527564761555465098977944268175230673447915229852330773220162899592633150457331308560995544803554920980308121331263035583597578368655412423860340155265358093819965119170528805463431452681711847480860888177535606042580895245360209256134594909372035950895376840405329621624320018146872396112935843248998190742247286081383158826799393744803730654108321417261386222734210160775178132003349391399682848269182734879255312456766759522663783348936828361048767240495639239387958507145704057565183775173972008347488497457878894834835465745483328451656918963821522218952170786152700146366929248617895118152637855273744798254140008204367403870678137652362897940350199926828567659032360121423911620538607748620194498907095206737977363214801091723686065847781359776970655170763635034008487132275683047059957245628790178135446679961512203656271738702974697939254523018020201757131513182947439931032916012245053486356379316606712883676895587231253129372851792728889654803631970144309440810512746727619917930631574667264529239563836947586074577012826795571919043821949911125423835238850818665687495450769716540026736371175773824337050150190863916323685629295292406463256592344130154975516314386254758326107033580121681257193484558408605173932968523953933880326965262699780718969655116396444716305300284953655496845019660109365551658690279818303840018491780772442477448517526834323654448660691331550515732469214775146732938255660599208820328013263783755666609384952850123787886529348108910928648401957239637075497739888106749154345348422087889185871306434508976754977053181775316331401978180915941613113142560169449219824115382727813032796754242260758060739589190184233364805720241911601560559735892369007004559121445632172080605352802124883403878910909085020621626193760124647738798428661834182880518957690306435516402381342486264883010216055037227969833354324299773145207711528762844954217466311516302567635580637832235839210508656990742037401685818458441129289467396400448886549047419338094641060760809066103087333593512281923671417187333906634658526846609898846614837509123443629073786605593175754634846924356677091138661698924039320711691009423430679143781285704485769311285744118629249012355428151678688720347861287551834787198355368785336666687577855102258033070702918325415068221404470622817000925195236443386417614777699464651356616673818825523252747115708579493222424683564812813780160801370277687642323010806397963762766117135871659381548192036645461728020756454576242324678971643550790049982223008354143141724937496275990890654202810271582595570657817805653878774630923498276924930572363847657485046294702082906350894448946652745692832654215697167789979934335746048861269997171484162924328869006796967162507350875335932773504618312951159231676546404747212666944205898399910586056210604423018811813016478083951942794987995980127138801477720123815331404571975271981195451453870842565198804261962872156938204633784453414669672429923778132417564789982578810312197306656970395790102740288489547764759308773089024365491597015652301586626646992412424693991304719623030985393666154246072904563093679574616425779389048192723900936069405288578065018909973379352890085208630953515165555454445721219631147637330232502747949342186685280779632426009477744263122149112340074681651713415495176652425999008187873877859816543712975729495022328723234445937251450668312998789163529572058498615264270467625121016265680462349229169925947521720338217254183248300184757773402001672374726315489413365129618975110630952279729835952786176683203544159862324090194816802063021268867733313412907423328255521603573033801298028281836862854819851100756803153969228683785325467536681665436665253744760794008509526250396129134674346953323438088001550334888152015298908793927489214715253933329336322419036579117803196693686142336870415540819740495410568570209492040390839571243788419643508524003448941147151891655961808172713617174644187168394373819243071672344586163406399325717214141439804892056492369157348391367307302238891628222640354398676543483942769730445786190937495743408919974278444647958371339708531147626222838424576092677690683833681463513406728561662939970657506123507359463652789551653218309649255110187151620349036234302204232795942239296571082115832957144950449309485659867294785366157530514058770283870266512173531594266181595693109523704346653449958929137121585188628553780307591058934150395921735049781748591382094697778504048914950169612331639656242758440424752926731595732401848564281690513920140130342411540473714785925799425693271415827530878556637332032081995098659059456425128156535033950316813604092530832490651283844715660624707367944475325180313345292766431088069575980109078038465123806502586488390027207630499099951809425765344713987939532837458323223515557094369202721985089485711081048425505070011478368761755762158338442257640623485598618370854498561472290906194302607557549113150923657370239061604284215100764214915122020288949777165197114825136440077284630592268935452535029088970145435980369248307514016700075246348232752190265036666828737944499989486961196488990101950059662181687561867965300433911053550762803973632537370288037335052565046255314146155452780841612755876138721933629484627314589231093351542110136025937222158896840394400355780404337187183988867239986237354235643700009275200211093322861113841528610598804564279644081414959482312157361668405676733734958276199483423963788005388430541629137164750330502066341076866196525721584342686228194526936817724082657392809651106304354875127196482982712859863368611494147245168832751000727116813884302024641342553055255152513208717896295854712958154806855168392369212100055209321877599912410058659079604613068218941445213165425708288967982213887206486050973533069839462228085998765135133913057534492581741485051653511299068637981539511727484139247394311092665761022854062320580442917680805510357700438048889599529179210559777979675524718623143283625192671605887286209010865819663113310162410909818122835015995845459736347480511212935466297981143269261051099231370959370527266686871112147459042573426225397227098691141261201310234343561518509717029196889541216662634091592979518029090430919073259511431912925185059171836748418779354687105586030960046816197805690286580182009703088801167816688456142848885803758662537152331132054322880277340346849793143699651675317934185825229928225832347038214449337225125801501777410420590627261767218657819815921607140580746290152746960381501981520983867885572100342718881629452039335359146215739100039946668310177011563769697254810761926591262600481801411797649182794000215405223988928273891842334128398830490619481810200624218437267374415755764912187724664668830235183618711403589054109813375906107100081470529557545301290238956286951160431803333490581057617855981136198668255628635164826278766659252213283712010465767437678879847895536096472077344308026566011936193620077780083807803034456057994886065860267675696783382600497216609703194963317219166785823082555044627571261575564000488731804128613273087830886041435628263809000925318911850081483054776472492861378966237939550185820575716400760400794230867672476765309128234391346936414601115793526645944829347006125370246145812651124937238405070264043521577825274802869253810307673987596950281192023776588422295411445498971127078780509552073230558123351979936896118993720714703122389337585883902436814135615799351146913072396821923356404439887311233448751402138399473277598468298813814361388331736818468309756346321170641285655049763408286493934128856173455693768679189712674944541954476640680453972128211778491304275815365930925003615449629688104546011530476713290825688011828214962963704520493567485763377995674041398756526136358403255439210819604571779354516326596990799433736163381935073204550490270273071858047457488105914884863799156134225933849024243827150333706077056860742068389971214760303666081207059532751987518317465608103308915222603781954452128429826057675322009439979295284628749619122443286069825061497470020349585506965045451317271426992624508081916075882519694031846934588325180115469010988944752931899857080259042312355940182075478485548100039069901004232165005625274643533925828181735334046289208136339887428739880861688986236635722690630664180200191981485508846961212294540009082131110336591532098830591272958533102567315658338665748457180472536808397976763470130785277504264112935807810438461154665826438124441790051660695298702838760947768431167111485225897468638888447297842757173283672395015678375576666609466174297912187639904784419856473637674062959789734368236153169896491995065747546797757654459917877188848871670354116854624216271029697347378959911195840260016931079308684555779222142489270752826155308221095545750980923870291649486532348529204507336647864825610978821396464993486561695949621981009073546068988865675903944342737816990291388036354983532898361608113849207166216142429567969915431538639214896719434552324669127555960301439668636253546145275389384641179325310102251879681030418191169701867217643129199548886354328740183166761588732673335127504077898697786596519529533091488908028576957869441536708257972367420944705032265561543328738583712728862761626070227325031555191150237574383959520596223817798458552916617803696625852323659217740879263398513442038442273996346445472150342914958860744583094878435672192345155272446707994326743603860188610399550441385518233704395337793168529859829391445384383793106259233280644687726697231010092544005008096309441384329501420588831131394250901958989897477780538759034764088680198776261537508690991977457101159308574750012234886807004769694832591486666048249671236142911876041608424830390770112459370844382614205045193537797710484380857062135571515727043955361946500572309825056399853006669354873002353680156087191489246453216794355062779481419883297472565789045212499395865312396878237267895319173312803759849242979545732231309364098097341337938959396167030616414327221419777536855010226405966054810263219530812015143020885258100756645526709998290796500511781994459747409920406519779125890054649628006543450560421326675693421453169533007032616574433289915984021509853837324656790809230903876672293518189987907839182475861405042139889741715142629658941197303040660255080812470011226399174844457077536586091579299787544412514778278239658022397085716408946383939237703742319198352029839828998051605178092352142879445946888184884109070411672752204970274157836306275756627418771183026307236234710760767572670151042194004701418041851673986280697881726351298781557679653151981728748417382764296797724977271425891380671212158248790696505353087094975703893203181739294186395487052051011664804740645032830708097927628161984532789922729658268582938145269341906587126567501934007325407157475881254561488098458669331639606474127322588499196208138146165721714246405772758255725506451670392389302004109092006225025469352031170443258729426255227503095142152465416733433308240327491450844144428001019704981678026653198668579458756830202339889352756203028725708283976624340449523763786937557739875767776706686696270945783369908061662912624084431892160189344702681925630843478029616774925090368539973830943577172126010505138234280874081890335702587928331830159382279424486910775802596031501770304048997485602818531406106950042238846102587825491796210938176991785136594416859740322038524027674189630426202514195288260276682946068085055621729721349472033783639716034631989937615529580600837345310096570144458934357724201521360395332097150424468667506302839868223637260626154147491781556414942841000376103404288995659294701869260943833764238065271496018304941067707136738577703893404416286361159337767052234053880159587415905306551985006296054845113097206222509259628709888592955185444508817159433582478677844109039348613891909556397614027783094901224345653479983248033065201690840826728092372700091942964997317913017468419139868219062814434744505037213994788312107404046041491842233581975915041046299309071872570324119770427006386721226931713450663130728223892272056804537921944336586156274541349667476024223795773728251708995496390972933295969635333276866537487233304996564390337801700130723372049382820520481562821217652153473443219654379969438469117531042025228875194122734890475575936626118267683613466382566053653548080163657481033003469492010754960381043632712270479201667345894451664790824529892466744490000295429582356598439588526530189815530313041955744624010565935078007287968251306634004725814163851744932954365209545161691723256690589110154804224070424071733066562413427588838835457578556235945894303623534965720844248106018494858347770436088234337084372262356901998077552582436494359075866183797864815115625711429462062301223542973605593042727813959259069799717750636017702876299128779555356062287605122333374442531389982226880263122768396140211522050146380270896321979410477478494532956190656756664035847524266386074628147885075077917582887138723303984549860227523646388798274902523694505357838662643753443915574153733408944453425555741913511429435372503726334417630081992560773500804439311997714485576502910801173002132018863861534776743902280913438006365894950803352815273380587278805337423904784507409710635063888959484234113712760815468966993437472610072246841719376947194460045463902612405461616255749376582911573813477342327940044514267760873939732360127476286693110631857187942442871486303699375601991121633640541276235862519281018232535329475214781482031258573500302441607849285896938287066380449897683984076782762370793421892796259568132040053703697768764765429028559954821927278353563670264147528929685200663264284025288990690283637047379541830678419534436731712756476915696190602251802078442810543493299068700753151716786259459141495525769665923357503334783247719887297735516598119697133777804069204189222090929390883217228125972140946267623931677547753689441056720778502936487120144831882677581283678536071525434445655868777933525061171859968618748643267577484559949055743499290655598649434269381384018330204975256831387269230110634357460014634712731760494172744852052415077681835776771847832240399718709680634887064475451224292583179351386359455997644763718903978408233181886540709973031387809626916114812192098894774756621402761188083829611950879148652810376943715770541735933479293728417427977058728113021294644975421756461242023863669876768181766819154084670002693961629800996004667699355827055512538983888683097979583503192517910001178281197947366346475940491318542380955781835612588195690445949218114852479903915214917802815834600884523552256601780665100460478182426335708073065528423475028441008901042168307988400099459190003938930988380135420710323626546886687865972443814769496101182272787180367565715660035797681297534074354266448710212239450551401876830206583123237255308572162336009437733608053512201206945396244722661065382656259303496495633830456047360263727621861694236850310076641980873732031327380363569813664767019844786811205505488887928695236441660077024438947238563420972130761254411919294638412474845093367364533259057304653396338866963176185691146075821050535265259243372952547139488976181370593995154269066840047948093175244639003534251685711714183368935662581005341507981848696345555680002793162593191348888860618953183189789032521729239949042568770896327460644856940869886565823422325758316326743896973767741911074711499952504727683600084552509358023382425766760564541272193568144484639671129496821795294243832511993416790697073681802071623439291003244635364047037281793936527749422335861095717170271368648848320430394827162565747327744403264493330870666120543567777647442689039533109127524350079723208015071531209179041238538302236083092175214371468604942478083843369080730062460340992012821594364585103047368646574624579109591141723327381536572265523199749555244851876536333691278712929755042919224603707662908859552917353762592530671054665332047339309649655049462254950112448552529684523957791885274972829007629173306945588716569633572386299341217674488472771040051939369435292205990490198092705584329558985382915347916752464465158431755144196298353311509924016278485707184245350271218703856072464483208666376086009869451437703159311936424651634187752242260742336613182364250140221729109948830725749871556766295428809300311370456555862320426368771898599957702339120481531011361915633478497011291555385247093683297910857708097050413647209404768789436508791398540852606921481921050228377836641011889689345094402578463307666990605281122798892936147727339294304794598661368703852517634746068432688193832908884701065632409847930376544141099168941428522621858977989648161677668674818988106288706926690299361989063113332961525960089399853646573433415605816295921242254041854868853597526828682472886587452594029724303589615171617244899707856873680192468069535557384770442732234780925493276609508121063383305564201693218910588307284346292925998659275679851691014391879508872796170066693483148629423966299056780409222150348798443988669585769368675236958718960570932435385252053333783656949900102286115760457092681825555640892393713410674294883089304360448011051295084067395182459638452263289911990718378422658986648493924196387442564417819736542686043274336012526522281365475991964007592067560436150796028930115904717447288235946607031820727065695710234941686720945262439532321887230407056912212656460130633474616707800646177571895917519745553335788763560267771175131884200223946306274066704993287212891455882569123438558496460251847008046050367233302724069328113324108654577297427271745889909849808404208296329900263336854959992852323228979024267008235535851575206550457943216641153092534548100272517035465631829749564986259071536215182140119910182534725051079700735602868309848241566151414540114188856713307661236367929792455631923591551821959042547167556381689319538572047767145146598323561255348933122164267092598764290506495185041708089124650149664512169218361224829024747751847537328258001977827672498732253266551820782331940678437974519573187458706916978693852376466938853352454625059805213743315189959003414862955966836473385296860922953180955965270385867090059951027309805705691322001815998271478516024203670259834704029235832519185001518863385408719337230827440611656849352330127995619527110742857002793055004433125942261535238024308632566850018080235562333564432981021784179420442093271317000587676085238723720683945254564449126651783434851669768161688382952232599871956486525958911342245317166267768263229075385623082688503618010758905223624795345549157335771499015831054581700495931112668023728185847229947844724133561931706446502497698746825126570971660999931355544739386048608862956628524678133804032254926205569612098712323361997784939166247787304244569477302038285214828452674602003410148261097284855640124979194983413551924212352817939027973556756788058122674259174133304582784485736409197930327805662956689496514066149542552833932251708801497033546938490853588575616894301266292688112665174450391205271220819500774994082870760416221256958154957408524106663459831790011611917692934865044080697535163644155759093179271636083469932006031525133802431225831058673979069520137793733069713468730537555184068212694975504989363547128118478343924238506827059686834829616787820216593441129981964835257127046198229881759164203531541860451243020157299111285789437648599444630799112331266112266412947921005796626540096213958812776051216328810231205292831518515640295834871732541360993561726384378722619036052863079385332755016322824753879498393171854810032494590364586901816275420984363450833726383127497347206759600306324681700545876326126195737570386808331891506358950801140783324662155487082083963971699467135828627223992642800485148397395179099046843303980667743794412433800437145826350255034973209095764068100926556467353643044535419369537058217197434222295278506083403761558905360878414946192757281557775727345789323163124171896694579738729529507912433176229513737943761000870118579358573756345235319273934986341059720787893280637846982868907250901931634381631538714600503391497093495002514891006894038053297256672573049281548092126508105581215761697183295494928329560136813014854472343879468670264080070921397893231016272698097779032550734323483030033980906182375186162431846059269038983888271665034149972110851987347627361614759364492142582479343168409105179440593387556514600242784239067446457237024458304825420514844749496006977026703325374994614535931654284587086619745565568771972260458458260879068110194177024974559549292338978895094745093229984474880463120015947003882249475425789257926386846644265152798091368556444685275804612635990239726377551316340262794718266255395016686397924427804557348485738991027986533051956902071928597782110156872660575444588870658597874373417880181532920959739048699883256392494575080480301830954811030410572884153440457754511848148497248199419538643397051782675521813644511546630602297508943774169252199750646545298309800653670493050112574431276578108536398323661106403455686680252999237827709183454430668058748592727316595204070887790982882177687602043695731545835515489392332223016537385077273313814490785596342836774816343585365560644325080278080553407392506729972562727561125841229711021783697951816894444650405909870523398974867006893788145168606100527054988868881035136481580011738456347354715975791307431360362639245641268776332314373933162726486145613904552433476607868626980060228352190989271899822658433702577001963733851979246837677684919500431628159707382068115215900052523260380778629420160535582519087376846879874658469443020037468708742117234908440774687894943024878918963728947404846838352144217613777247594702543670532797455345804313966971683254829570680663206750823867072511478926622244898329848567595143862440942136331392425622278588545868468592331315376639995489121021053288990546964426242916452961450413948337658591509354308732717277914841991292046999123313655681884433767652445062406016490101880920223275277142853032848007809780473555209657631503475701182881105699654192806721046604474887846082349558007472875243751794168265178977298041214458774389583048312048088447218871635845140929621730344742833154550910140285187706398383864627958234618183558810947452138982087898350399519851258841217077496672632021037779631108289390044199725398838001909563781223710441520138208882595479923643919066606297281873163102109833882250269696012911597158160018368661600565564348922746879668662306491547078564326530633049363390239650306618436909813919915539400777095593435829244163691372444772569471742918828068759651598413987726026762020784508986089832242639544192345796386537572565015020036767052830628119897884464056503039132321582499090725500699111006958229784929824333468141092106863099365660508882463822868929565804851717642085086453868601918228397325235424612409327247995408144508091142178462623648353487879682780798386338129309062017322235836217769068609897601752542653007847550068155524102270503265164567019754006846330442244836342518398809229867324900592815570540201710958626163196276589033368804042467753679456585363926405830335448356445718874917745169821675746070746061263971644575388257710289058199839697858995209300011237561502703716529412150969549719371280151456985123148343061660186108928634872101118477174829885086373754691764862238139645935359348674883701265743716948268134858167735940258839938017979318134488313026841482100705500847146714387337537002596410817834660434315919373067123997447434676786844007802729466218218601451055207279836182114641213726589191496902859985149656803244847836439288471317078123187950496705649311714745944709653683026057875157745545003317769522370128805674131378590537858612151443442287969095943191196164727411960154336766231739438563218382248202206588938040583003327038397409528878879419958549691699324973039981897758356787614545829265551608831247168044090317536128224578715798580683529953671194823856067059922931508403483600867302822682231635817851762199676648095601975756974772940942969720972849617148036837095708122010998128729337752320958966690506419052905863328522639606239713492123646969967494309831755822202338681361863715913555790707471024425995302262329194083602643533785104833742496812834104341331533484152552967999206708518818859437299897712811617252688499118053056725223121996509865451012403107633769516918620656661903555453097078029837840636675210441730363149858919622110792927532904404793691413009339181652356418784139667561064069446531002890016963420982148830717141167328048425418585670264289476730521820641941664691881490305772079851525064058636752205252794997661018473725643942065325813020887113285642382330482508891132693111359635817235824615913249083564762619038921823768926138018089921259317547439751551314174224576101841013780300456237053845334238976032138806086539273976383823749570535545791199148460174002728407183456731902913520273845204899224214512766709490979426177963649845809571039577011249789438742871584455167363964123066308192803404282324986969069557659404896728301252276648305345076040759266454561509087972726553910024525235412805421437753851902022896197067403413724133009035516142913322366256657197294945112483816574791696908378479585579566004271008950466276162951592546346575893625275084830917227038830588813258784608708620492825916767090071325629186005249789988330937323442662373063073842536713002211941860949665816312231459308566105484046847898916277019300583208198637181049426873420346282805093820606701434222909743130210782450237626324360256485675302907291179207257673095930901249246833920867279296714315557210882773694022973468778210249390998218353772801082209969938805814154215849783687696768965698529314042205194485601024695532313427893233040780500480556010728177483046673680519464324612147377936256815255240346908696148943177243642123932155676153575962413439735102669600579905758117577361795843711769885027820170205823499505649214075968000657556818731460866023030187678000813399867551220146527045812978382347201594780116621151504802087339042086221468475016691480690336173540711475619199142045130929942487305005892430143125596007512369969757199837000704756258778119735456699858935114801637774390596133766678547351151898384794198639221259032136775983618747321889504416195582731379458043586287516874584702853313938472946275367894529406877508905038304973651216574657577652470960752594166929193197852890416867466731436416211511618981884148871273487946417129513473648774286999643654454162950033875611079087147091240520492006201956501543785887814992978134177266900063286990724040035893598173861061528299393231761184898976397823637974029631027394429450781534268067124720992583095371299617990186412522020114399781561111462559976565688708922844965192304208146493365113864489704188598318076648018169988642793858611317621316786216431543028536797515187678111192662247761419351850169837715488407672524823971041481013215425349100222424411617856034079073433069593137012242180980812080854725108574511718483916139336708462008112054141895000392285400157326581685378024663715174310426752117954903386448081984577688732197448772789829857634533162485722483876771049262937291691756138379764123811021636914021862717862783039298273636567029889895506206758876165920992096489791198068907098541022348658369664346483544703195253063591264465253355445724465648411736430520459185986900496540713038171965805027185821765279557286872933326877465058724387670125425529587213775998403582413567269744901479524813044703375834815431975197742926089601330894071435764745055572518527046656410729739191278595916054788146768056141646844457681163055346180779585241223455351692408971367047291718603944004494867536061140348293673151915542322468399973221150079236905425425853028179782138059367088602230463954702443849327643825852873716159816628534276047867647460884985556381263065246737649893360041152824888609553120403791317841396034463498011261556384994734331036179993945072831723025139692980288306621345180573352364880123283391561420798960439583575910728116104021951786759626241108137532020271495620601208517463742803509337502295545352865881437314358930048714599198900555516314668043214741508264814673000277517014782129244350694161915957499306867927972087349099131549323369733964529812396253467556177759550612633736535796524904682715276859925736188649482210283168876380871130946278084804296660398271420625717980603934406455733206556567633684748228261406190905546141627241668586552950855851241532029142301744407941122110756463951493448408013510047268305766123392779095941475362725263770653619075969769811926337025102852035683297075374788134032068114125600672047287754047515604744438485564252543781531097362505973995578594171204376038292529802151089339547433962778863883786734605926220970440027183055567000776376185080998985592298532164282446566013367691900351350344833577535811916974819618881394760832649203695441397160732548830422716841074870364852602531507033989517923351183422364036234706975888691712309841599817177059007744762775345730632365922761006525524069646204803771396607331060185309983138503316928470756448772182710188391441752255778734446021632515087923237162670820333536573484531424114728883745700779525238930547069274499409239798215042233228589186692695727279517431030922235804352540912936319457339228932513634391707199284134371525685916435177311945862054787441549768742000507911624273090832905735291495171519993706088865056375375572770215000395761725811565679381260464239029563429798583139270905611524587908762867757541865315429669419984519114670363070741160577418175730644074722167931697083567131849234313458396081301545325214839873532425175180506302367624779243862474797351231253789001850547701730497199385734133513628547384115509378382140327764591655417445004754138583743510900852741678483187740014105953571424669537542697465971463136046605266196867191958414866865068775094519456986054335659067001665636573091148910913421384695780928749520831895587444488096526549507741257810965453305534922644016650231587250242939726555745684798486303544877861728457566253001012137109766766564616202937495190612003402099578966967332083935497543526329653332802771049219025201142926882077442064429839997233410164338663174266586767196926570777485579215777651621523528931414267008272400706191050252801300898535683651715630899035663478708614481888589313806586910468806216174389634234072568911370940062228673474391904088956180547595972175466475993695378401882450441522372241417060270790320046464017403168915430473833160738266156737354132841500732998928642178707520385720716774519361633724368042628282881846526060132615556856949099988639006061707188271366665317190410100312869976468081548533754144433813641222455572437483038039365690679360548911206819130406081760854551100536094224520772115810412157103594048487615719285030720759289055913260132975289501372704229568874059197141933434052208394989213195357071819271110703095572750840364675106674847116192979825676747543422582442069665247259312127806477827544528877358594072358071059668252234791951208300814778384443881693276578054012390771900243705791787115644305209749281051010494178343973647559449247204510645308989108812369651526814552599572283913862596417345745476452036363139513523981461795634703607898029538212219625867970193117823751691036960530844080838317986028144299666948871038274050229810729285834248006706346136808114457657298678437229342091170806417979093681105114182538572394167384382251704981491581709000756211887094910610558516790463045064535800651530834240183924593160646356455820075043966172281385240655517656241715774425800353083464710150695925749292089241149375935432808828590254487162419018326605655291915056114505356401029513150566851809070615442121103080524425254353099674433757587545627518651546377631201057876235123674294912702255261340722412669811520346362322092972201736376548431806852266381032122959981011403016511486460968015158255032445040385922941847433116871005901439700430850189782288227981569808760002854511619819093245939963099048691603386607772057492556818836320340891360771991490756535126584114860852323923059428731669784159320201693743867222009780722098553101958606848079874427600914235969391270480098324875844203393159323599459068476382606219134517804977266123759849419828977892231390107990569116968037846224286926527433749892944900015321398265259065947874835724844685499705980947173066713401674157102008579658199015528054426357907467396642673132700771106433489153382112941038637524648263686767584543188584768361002158015905815257239492994497287467590196469742342972345682773911566356479986828857837726934919197260341218473516655587664724631507474571757524725814402203519167588842113796314859878742233690253577167522194171289403710241168070039231932594789828841030321954744861238583169175996370235136848044610568003222419788324582118801203817714461258488819916563879982988964163318544879523565229550987530071415152428558080795764809212429967666195076749641731005321329411117024063056979924615786673419252087245746059804083081659507234734428942848756509913371944003286536234083855077675495106967313345748512650206870370744308842486026034262289685110631797659209846985399625602908573187398584259447982308004405630657015886202810345381014202144697167755881959893370529682353276999270086913656657565528055606346522137685901396758282025917869171068900985302166515232587166610971676480304376364061354136057474523103135844463202194463259396963866518849188085365454829479014324941687912576061102165992094742185935517440862121523771086045825669849571647441769277833785807383108573272001228714852624657250778061962118507879697545353026541170078051168395926716553008561535347223509682133540533445156449003344398545376168483957086097177132602572081874076420364269284211312128516151633829540723425712905098161872848534870632891431069869059868491354512902261164037288596792967245298823805767355198918091513365505765812321229063913264915563107197345418242840771783410019430602969207903533834713191822667025851936761483818910477688968924066020788955860942301431656739052551906315329691954172961996256128996233758987074987218064148117694195882951582994055269399241669148022679078322178866317192184060480450805019390870021537569598003087771103863719823685187326463058853209208159378127173425701303118029336126786403680325860134940710465557657484042133985415224127479522429767584515113321855742609156175945504707404541988660359290022256208772250160619615879292800388825671242701210334930281616866584210032657140152197345282162318077275927617455665846902292919729223250285033014214906191182194391162716388227793460396920958416497039892942195888858546790538328034452211660991045689463464305030224187527393404869907423531251027102726280052380331088494444238183573524207229347552904408395703169392303977361773901386768796608300223386155502856982007527577807109772611306554429892459112678555994217705348736133623232016839795406049925567690112100775586295274764605803192732832913922304155115922230121400973077373058060830688663606923812840751731369184629861408637519007348082499610644339883820516638451239001497766977685796490500597111720849698865844783214894635693909076052505328530270549624414796327048066007795945782923529270137084682981880440771264387220720826773985420676096029169291008390909108119471737484309698515723863084794170457749464912816399763701846424005358964991162166046758833721079218100784516412267072492588883743604032949876493991051430300428845159230924404892962129926071423383240708833094790499154090525652106149141050273315616104341073553693986958926590677763921767512871803774807532215330211266871902129234108032404460452690127615423376831294045565887289373446930100580804646848051387856190859997002502597138750171695450082497344254928629619051290600442060810595930133172066442778223356060071685502263584781223630683220022338228096117333705363332666178679947528715676123477854828074609089070350966094624531895522807871845614222415687545427408178388527436697354128291035368042439464372978196210374086918483235525442935600711149909839745546462452736539499695444896806988447128975939283294089978641366121852896816709217853007972293202916992427856734476829109968653103927301434169662259259003788280911852009955682541373024138293865438137662601940300697598276802662696148274950066113857456049318484833670560031836036966482161487177249373234234830801582694932751300403461716893249193236153726820461702278376695190520523926321888758594033632762433599095115688761455540223022827755658285332900979674194200243236190336413648716946587288036746972248262890791992420588426726803179024037104816360713718764014440324034896102412291311998308961287037506357432636619359824304987518054426956178847153691123457598659830199594905315391259036938553537567745103228609287635537083021594280542377854534038721842397376410645816048112226999158954487220300727877162492986212620620682303360213235524844565492831544015548795740936525282453900662274096655725563662026942688687957069854530397261813383687510426501154047069231501455396321179613830453544091304149836081473602144175116933362250493124454371810997659552202106436806828510882835703660438592880826986872969420449678965329897507400732123825559082890704300483603068112973848204931856755661849628700689063549795781185682606969971549811281962701388453034103360577293449535177472273437553077435738239331474526111114599945898726253058521905685384597297326717616861801425200835320298860102505305816387940327798634185233063294285207965259594701362553925861713268594285739290202510574893478665241982472738180023644860407147870394609321433298352454576210126677985889458339425583820513549795015555212126838342945453188716319768314858124448768777562379836760450124587273405682635476331064518784142632756401523372882104089586504978052620021955914948771452855337705869543795794878160023114136674961141156044897482061496389294918280154917353542018552024990034990678137459094509212179960042841164967249972241159289534247501001156056366207428333758445058864905363247699290050869493269444236668263579057503370126075567680522674774677253324998237492116864467232837380616934059594310498575102445632846037827063605543959893795557812733301716890154668790116137027492181648686390794081411590257420657726607940343371692100843761001663447893101419429257309712712941516456448057773706468943479837546096241080063589561760226884528835781505197282623070076859686800850669435087242406380610801880006061017108782103739653771437983230357961213066207528954904037739127756267367276111059422524522600917803708129646673138822915373112791689983542301912821371002850220568304122167037447779758152847715357645229827790770874821434966800148078595866267439824219223528817597590199376993733000466598739591798209241214379744364294987541620812658845448857886326597304194206481887563647785255755967389471900496274108291897569117247341314317124941215756832934987820193835603106987740291190279760047766007864814139106972406227305653433894974565906442829236349621694834303615782456630157537435587305022815640621386554662260029840071592744638714585714230477687201856672220786460688897537371453871338883423655111373221870413578565616173585464432485476734825582098391490962423649983036299392193343824321778295132631040750249402712924511892308388488562971503461129761513532103627524149633050904498337313521593420114163909113941395148254709390160916240878094147738093853395881381193780312502100762651970818176715162621286777940120293739553639520113316634354957863050051093578085231504335101882399154354006722118754322582665724580714375343999195184057328111104034268087621613908892345679524342919004431976468861571588890444361027558979436012424387129282532344049532002568509655645117485987096057862907699473717744923497713174686544153736347470155522281123132998474630950913584042106653545864760760538420924533772012499318021797821218776666771079055381616010720146395326085071075420892351774734855708499999719570264468668192350184642384840174504220020365340980563938330056440614124207896587691945883323255587672038603185656284486241649086649651206302312346195624883861051621903032592514095516821501688474275068227510068034426008846460429337292105013343381742868442845230000114816972865267660119169483985023762427271775975264278300437402718638983893112645977819752051244371539366683888773842617842813460928609028383061266627958574767326890243262472439716597585253364983566092959668205305392209079120954631942690548017893267246356456661963615603066164240395272218681690844563549901134367693859858477945051488467775559647644073005331416908095668835310562018889643341939034101084911548153333709549093844002325431060802306458369489017693814881329384894566605892380939291124455730547682695129429417334937077783898928171868673105752658782909330738336044118644835158204620972861931585160721883710805177621108897050079742207487574873404271064276267417057677639227588114599255833914428929978990507316193368955374220943990275206793211956583396428349119290126960410592837501748772217153882205954885631403963352872579565340154512371887138349532995959284152022069203970882403810164039277349455296688498192512536198985244890748028133720416698960884920942414246148116774848616653365903386890860760136090310930242137775558065797538318117179245580052192624397749621953079734974581483277314122949184369465242308985245870810439343372172803946843499150324434079939876281026253204218565505404866670288303977099355823622152596635940778840310026732398890984657350615538566274355561727911733039110183210332756365147014892548619266476438492460007863819911776461520321759393634864246259980385842541826225870980878189581771541267954343437761950441747970454783351477021761571391731621491683598176374018602531750356049120455740134074587860668655381409091241623531442973925605617017362201466211871159347034921595825020612073546992464170666534053639608546754134047591517779851929037208885808079633979874384599884604337477662356362352006520544497921894983035583017675430619330931419535722558926062736194102104654890822346720018036843180083081717462553554984349335241173974480641751134314996057253262703567285559482636729880615738730389477276215577540386860990079981313393519541181208337775619939783101271476785660689368707374531109022900644792773415512410703070389518590448528262757202779616525574789403598118682143919103710542390408425578504914997800541587194749604671337750568047665019940306225979874288000694624345430332405759985522817026090075718283638179184753884239777344532202588001311877475305561758064596683437143074338068972311481516461080681021799182878678855543411917790084011484925934931846535072958269453012668771104969469784838144133805302402044748588790483611661011909021853439737508352607277261799635550916341138147549982190485206681573766667138644035677960774731474208081847428268963502885736895600361603430218740974437988910717303537775560554222444114568689537546736031870194861318514452412014724294159044989947061747398382883796103212791448173040215400489476011052441239355846416535717003607225946363661108997025363540522151568855366244422261747150437893024242695136635651527746534501305694121652119196487276399047065922677256213541411775165312482957468434929049819010260932372782464895237305550713754755938726104242240852420857066044340305098210587431316246857473040053382585089449651587034523013258563597681314002401821133785256414315108442163758726959465271737960180541708570656171295313939563804006486623302261420138125482750969511299362408168106246120630221593037905763374006853999980768648222845368240571593477376556504995965988755016999004364975181866533949534284650436809417534100214141002276974099444062390012718544253669002386091452782337158422528146992011879632657689671666314904235933706413849937565466022041559032206337781121531825411574203303337270689375102179237655557594806315956218688526348325572791236809667112111278669484132472169269623855758421837618813710316141445950035600282493329237340778793582578705392086894434100582286924849435693058957519464233973947510460958149641487034208208951707089912568990579790288715017304180164831689374175648327106678953904753084178165564818877672587088222310992525910354388920979701434550757320998758879309699448617241529746023368780852344954760734556368348320973116277203087230253754356520437497952901450916922301231553010116419119983337558983406527610682934152995050195582846518137403075027356123027154893564559983084095405694000894063053767599725689655718853515682288030906498305525742463006772710041022543818591351081699295881939401671940795732493837481622613164378495935794089695504384895082630263913146738634086391654280598630288147798202932637864951070093784182471209001087081992808776596590878991702671483752216521669857483461258306079401800494302176137746595961895412377964845040475172204204135570111522426632436071961125755539019849349809634165991650656218054741464766815869814281936877054819395530653746725826175322201825034191736262998745629167756542998322086022247583416174464955584273167557017309778742909779931029789425432375152899393428688734662918740803123409587537408035445573562536563513647063843766149098899058623122481861591566800372656871132778522074818940631397802775743197204412335233437059846000164104836667524165198352310736803881107061263315701783989742060405729121173193476703879361982514151137961583723308313820349841152326186291702190033445205375534849343866571822708464616860830742954432255044439650822583805023986508206738326013429311957441744790611397819768549881959780303543963945801874949841168432703831947645130597063906180089405321096203241886085890178626574856392862835136565588055225646454200702399033886275018497473478654357688112812475435427114876175898411380894526805433989677684494991658311843928622197358729402198061673780658100015985659040360422956237384446066018527778553747158818712675614118986526532155803832834918415994183981205133251964177286669241689499974738719185772876123008721995614637213936542169151347751781989574180282425745769628662446737970695110196699018268048270579582747003374113757482343485794927221146120256816790470379816604938153618391317541890952758781555110800531545350454989960484906676485848050134894772675154254208450035794580837334362319761094351720004410717958055324299054557500055286903276341742357261264522760755265461994017587801857918228359516822435391617871140120315639248324886994460364842631497081244707886494347104555942136543788441594024635281995700911937176799883718620257176979368512475174994205263891986208875537275146427912595426501677188619328963860803076870114843039133772301590765057397748840225042999803898187177117264083987935648856358225985208965761153211272510409426304624601912403837951849106040928495270368020880258522373271232484520881776440611816825129720363279909224372436224876217621498714750816325979923645443894861502773077616284647374813313691251357917049707631195192604050867347735781794382925203826269751662952873808684270493098850944280798496589802788373226902098302560221977507659628351538610574908321925810669487458013698771650388501036628368615679498378930151476405132900252258401954058390944592171736162764439946883682169189359244514393075098361610635737213922939207907496192919330624506523265050739617305223340681591398215740069113164426216254857073067820940532232095923128801834096822918273827953703234910695714839078836015930172445382620775977266113263301082953347828740989764416958337824336654797308672105888986443926350458894819993542055535877892064229602369608191867541984740981409911846188123660746113700647880099273425114867343473841150956160641193936405724536140943149752490689779963076867582855458625478454337924870462717949934291307582040022963507304956926702702049380789752330361401723615343368450892579000601153267502646664563039406653751431650620864557188430159812145749688351878420546235480271181750136905104971740356405012499063455570362579443791549806011504468009666195258282537122252228445384562447383301581320187138207749384755209121074496466465545882363377966957892421938324685580300063511637876514235492667878986115704238745674528296581920019402243407912572748517607453873690104611562599329730157405248843061236146244242438498574952244296635334754646003661629197405745924347500696585211763666102775242248099620331097810341578781128926213943714697102778035783128887724229633006588598391545710913995310423443100445080997543303515473288513422210215542608233097289652136500216909499742494254588446396231208298638484102954942078058349678494158455761328774820045250649762472134109681618674535971263012245174585294813988054788916601071051350713700580957931047792452412902046022225842544659357294128431701601469747074400367688962585017020112834007537712689255932398060516302196262916778885972154646817428730982145129963593826511837237191972998791960269276090120106736571322222698305401222435291381724730046239081142640752742717172144415180575201669897488216789662554315802098231778980596724334190742245454518321197351068814072009549557273384524736601374782995914424556205138764697783493639903072986238546439753700153564281609650338688831961690534758573649593587101966457506010470285529078865203203732377227113861492293790574781785644893968167615992081250848572263305825402388757842021754684556719242604940578432800532978525477796927318366918932193525479461908532002459060667511378420957308662367223191435126020621438203526402634791921784720945932149225955047031452636229549674715266088879629617170964557247825345657826483008024622978577317652253620675852745833828680094132232464561238036323605339451565347881118083865296376420289283924928311336791183895734341612850305419224591906312515059799622836808729553270559360452965591092235305668274852706846033124241725081118238393485161245997021108746048495146189467233100039839493227099889627767076229429606450692322708220218310168576190399627547859289926682234744260166449347307221933065785865546707575552151327282238531032663614249273951005074692263109583040384819649287288600415505448889618079652429367496959984164882640155242332217025936112127773816800670316183187645829589436724513602083099829643079701601062995715166710074250111836912411273938116031268717821030532220662188268547667265431950672444291312607648038681538122043203252233581069749353259700780191594100495725203191615935739746569661882576217180868634923800839911558472064950134053699046247158957816352988266892739019679232760296661753126182390769552130969983277706311517915421886352838532845002926887446662367817851025877312099217424730091073131444351313703202521554534260460213019416312452597477539045367172962685914813309655272229230033707583488762483415894708270778370245372653583410034289402327292866205884275240175979901934856097830868781604910753123057805230791958138845920442966625446163469327443634981772952472705377885479129058800385535429841619285073505334067710763697954786083207370460128892479695718470259963396830776551506431121896500102683031962757552824849985084822860181849959493411128212433922631302442929542193357898529189182135561432956754052313616929344895216864112620968876427080131818731549061560480308121849032219299102278820143805730701332277561002788362893076623708322984072317298392339270030699837379021233112310716841132621006902161988616263160810891386258841615722211326612370301612356349787860366889571419319264247379257892181855334240946224586088250581210188148149707230186611388227847267401995594148922225775581949481193071448677213334077048171575685042736700396272958120670513376165013892348441639592053785708318594679912872388524727818463474443762609237346854394891155306921892835945823476933902401512087932015063041694715125040602254534833952792041199572967536554807010859159986244000163239726901293748114976155351404394662211716643018521644530611749194549091814786437007971306829621266843498114591551238285939988766446743790253517217576973234734682549156822835935928399237194320963058710048096358120465499198007409348255550690649172631374564077101923802013251702213310983189682444832980248048517314407392323060140256751537927641611341063285192525734971439688591913903314305205894535707938374557072033381463823497460439704456556565798080207522211253645744949594651184760912223465944130226602710930496167477475747317392586555813276904861467333396889418376350970116069659391438700080288938978013720443670834278425645046828621513267453483802165381981093324290663691261718041786779897605023656651776160000830197525439617696170385799603504669856310247637022547575355752461207686779519269532698901702727516116485041980817911718418933633903519289213626081887143931975310072398638441635233590281720253895550110481982011616855518164696118340411515197543417525065070038533889182881761615411641566517704008913434923039468648147243778190767416334623912589307331206878194349203321124831610135047664305504464445482015153721529371603250518598768144886226520606870044640010858028090040977684766727101352151933521800121424617914055219286415717170815373484805705755024053799914877377080509248675461293547821606080890453028751190247320975649076324417696964639990159466177168167463815813556893181888097907905360711398999760779421706171782300297523883590408901390464064620419458936479826696443707450840179779095374271669280682401100590743851395655866979869309372279831497993568165876956887067936360701939010784068453405771439567976316287377397958002968150360921537434504203506007579909716955866592462556309342804483358208788660676382216751722238197121109654344213461351503157664361684538481813252463406143720060675234110409457150541903245268476108366170965862858293781631589950537249707858484066958991593198326254563782036207251163062950981325457076610441429386845013458326615303419729437082293368065969563471409778679111755718480087842456763548859898064043683458267661014390417620479492746446075143391827769021445989762611720636816965826620174758242886393745868779803366381756732942774859939874518881293925745214998475659052935927560821536385565033793320328285989579391732080601802169672135287141177168456948119136004089311904675472693388267732048894794073728876794592322876723165309397320224512708216265407117271079292305915047160190341314771371313805864084911267225501062648896505847566239760541379975976766178654577867540144815553824749579126989254283230106563055395906259494804832097691408941226400432500951816715461919647071070916206911161561461899772914315202428692622363685529899986899583358771525030039462637303530825094556488874401867550855700405294459501901663101163647118977643286099161546279740258399647986450035877690982122618227472514618976131021941204914683524189242757946617439463146545471522962297146784289862409391334674132444461784658298363665382102997042912083041827752067750232109611348289942709505612590602991260437823559982112363581404891665666768901436393799761204434621803974064122757739998352841540706050918987849961027496845519131154795798759020803843806674005493349371807672111423993372648005128024361409404691213694984965702487885612799818642466368069921653802297391346940078101850574367931580899862935042192583622446221339105289706948247548541474282987091250824198131075269416777778106528155202374578987851008789671014001073854972881727618659078484564996205667746664733855226949510707778561188902311291601746169375088964654329044018523487739951113590351646753197363112449564922606512559179580838328033923721424390119571645555323815226214976363692659061596065277189746767038037901925967360480578857694832198872437211842193204777934914840483566611005981275090060723096761251445809980395851162799885754300155201681279614151049801305240803851014612403034363136849352821732328147599223224433921349807604549436186980046823899823384834142042828662634869652154656246324341014122590269044274823874211436501578791556684730645105182504254753513563353319594420396386922608111740397387023036985042871615011412459404620914659158186828400225751251733595367674550323746946267735396007800174211403000405454475250586153034331548533837653092798500165320344897486836299400488461369586311531084358351313373050309407693982346544780788933573290843897334633615104630847433049492199406729170337340495518714677208787647265331028663215337689141094461393111468846631914055732655978606511118932736574348420652981224392189473313942642615753987929437513228339095564867090309333950700073684250324899210988759011487621340124265433215610656258453593290265341313209913753044079446951575283452766346275226491254366964949427687490544296886378482597878078706869780400851491401402144070590445842709900880503700971862344619225301673044443419061408842732101318327157827488414713874775557416945517344776773610520312218620451345872550386714092630639555301962864824538674754101429837835656506509879128880139579875845910596680994513542685360487862191993863433075620236088479182190474529398932428562126573683488252069808593098231550999105292414357601163021694150825366000103884771435454614419588565809010945503278986980186799104672987803331418331482880554750899551004349850310274468275253267867395893827793965083197405356431083914784767399742009739203399807892700569889788749616323315944412041488909566135449204395512529126568180597170210154923598895695511740284708780555552008235014135883416050435516642935780674802704659927569122758725573408945357831936931072756208802706375569547800651594169588544694784993549681964300035711037519209976985749142150720789949681240245036866534832120851295402396595242425811519964199700506614227885863695607067129364141308611600766291020807606320004663721576282585334536006189695876386333018815956122001549478638565141638285404866612394362501509553068923036978886289346068109208251152175864357449573336071588545351188900922439084994681931262830738721469996826752520233307658303725747746823939404938143611348694109552427608493619269106211727997298699002828808680558389950654817104788117730385491625940556208290032262747089228783118769696838964117834942094833272753009526065180343938265209115976084936465763303785241871623678898487435727351655972158361451347963373452237840986300195029089649664851063679816348809463811132080128663837754064936218388002770876102071277479312943629758555317799388559430109210995220825916786793451794056543296889067022110695669787067403881427721937391774158723529889669495585471624977779634163688813739963957105285120170612988709562065389056278730279662102074206096548339140399832203117482997098758946239652828849629203512994877478719951105525772044460414603933969461702059432709149976947717643073696673468188357043657864637462075009545535358591761922068635740136190094074192954322310142345218382274199391382312737276546567277271066513959284269198267818633066545594675335457329498706035742146083492594952617961538411531088083473815569567384711191265022108439608278176159555547340363237522626290725115615973141840909139991263931189044063052762528729953451801786489534353389198422386501340255537078188518112911286565874844532818247193296809130822388180424179930762998148188763153428855887414104025483694733643377746064146129932460959466162394360830028406044288467061314800083477073845845530278318220575059890547442653308990597202472897418311436955152717730140112380335016482690769301118049999606557971966517250928106672568493578387265019065773157962428799389575867243729382142064472336503628848877276009894612320112122255610741683180072750369164049745294862726449092306636823723657355947971953071791174448670280691442708048994011449967972806673930267944030948969078808463707141905686872322922516638124387798454076455651477494099460978198558266125941720688252349653120604411384903380300715292809905968012512919774216186897498335987860579686291187161992284530940960074770890825970349163225909068673398029470991484738650417600304924289721789612868118621724229183337234221724219874225406136330281534357576282382201437087317217429463905721095016279423436318657826958402096586701974121816496880042183322995742196872012213040952572169840050493252539973328648826921568462847975348655404380096566828188244116881405786513314052372746246232637691768403688121754929338937879485593343398755626616887704247519222139010584007737673040070845398544283883352756406801279128024467410816367767080602911757740735478147821417110708992674954642547159177830248007551426355618632692438313824267650051893017755754035309790760912493568280046300302262205145254118294867744277088534196663405143705612677929495643361903923480777079666292711074165682858544448848983522649086360211955160883300348247513522641433404092442835301621984447169820974635889752149604819667641307793728892950759646168098047481484947988832907336104710241174379267280328280230019542774903131704270037841844895620171374304806684036067877273829130597200749391232151070834454023758895310601243661721450688452140776108533701821786621759832348476771031768447496342992561977272267974158839362251682241532878762406800821191242467591867176256400048048067068715166698858666244274578637382483681894803826284242220470472786984708965001529648764702393217811887982753561567139269550709339488701663476698004214601387672461376881260313971102740304979957140257822174375803598034812223814777422000091415844533773070230655402412526707937849763357738575383595457361568542660619680966543388264158733549237172764410536372602850008086994343069975938925903354090055483086804283258595605077928978235286552616058798747664507439691614966923615740994388969001423126039779263133596665226754096215304014941585473427831450660621419800048879451980358902793061858236029432241018318329736996932798769725852291326188179454731010476669702280819843522018713466512947020101103124584490811083248126557761691913219055281229986791693916646743861646528556484493925116603382509858075925206720496511212067525569864505505468794308481252838303352072801520052920981196936846060519954228905734074265602481522526965532210764837739430293577619681754257168780586094363964665467771688467237794499068959986558481721169481057899219839072096552553334389968646149440588698739103100571009181150363993636520559337550268666816929797599423048066436865774022974114055155610013509454777915875224292310318326675167775929757903986668840993047632160763170730612519524236368740606622521556310286576096927210981072713975961456445218181084082016154523864422331581619707792893725463516417963774372787903220257172024959780052985909737506314474811770522727741728823826421526411155174966499347224130405909276525443514234780018952598765235185088520589644009762390391375019625974443369434492332422946607689600973456571563396674804692395590888569219653761413473290079543470729688928074909551763387402018878300291501755328558250360376845831281769822544066304420343468207294168060728819219979435645429458676881594529267113759941432756782161289446557549926715834973556564108380003446222916576863004212185180161631599457256255331718303874101392376790642209846034387881913145559732125769107148075679561243311037854019759586535986477290062776069635746774264271499069486631111270815124527819465524228830807952791175107561992159204216919380870023865991679452180239759532321627311767052960219736869690930064414402020382817396642506111490030475250373000745376221754468173860820998953174560619367661781995095001844069148836219177015600267713817390691811507458666496295118464445031001771606083885294539935869731146775727463109116831650091605259752120528673270147535064942488769294347997743211927583704668174467697159239059806885560632784259841387513126911541899574338129201084806349109569872113505266639106810797303499244629349922024541221206862593487114542134801688740793039689024240099193777260706296512195071808631414203401509411755016429188724080112188254216331480407491050415883251125462668412031380628270063091920921656313840122709862207560474000723377026433583161603249865644512958448738625782430574837588060358928852111781086764850921180283268974151713503411878644113868726283015806433071229651978712790505240366555996276742314402401154019729456161860750364198193175069500376977089482033973602416585094004146040346730751530354456114144848788568894618032927888297618212289765317983689469828678700804312566128122363863784110506678260404689461491030704827207911898673092554116521668971700391892146370843924353543859999174442394765245357437701649086701758688699374105757611764311555420652953527918885727395680089766541721603232063854036253103589146458801356418357440524793257726331007365314798285338332046601576702710695076629966227580061502482829835040874791087737293856897077773596562703691848841980144228785014395043574062268945808368424690193715277336680672623027425441376754741460110765160348699466635067573013796840979470230971055797858848280849384320775410546967388502261594025829740832001347517390758281967986713297753928493402902762603699072597958527823539549374281548553161200676430525817128532275767151815169637495786536800658542698547647762899862868830238844356673869630095596328931127956266015159800971697693194161311402238663922730754092940758189218157399431797250018157052074507957908060229461918746141871384177102602127270222025033123451248042992389403874909755832964199512411830285817860737313578132698789894587679448501225254052247352544992862209569261689150640864851254709936462344903832558547509747108967832387439832805947129355923758366275828797120197858233779997271898920988114956363838937478350480730003344784051245604435067705905236750615195403518046571775483886794110128459491494772514953417512569341693289458763525336090753731977799718373557319237893853948917265666172058338769040349566081156503255581611913171765977605615876769342926669665532822002885058706833880266985769307561428437099201537625827650632021883222566512773396756492238754720609337850025709183945557471390408081919078617326941212119371957221906817742528567531417784339252257521535678831052644669818137198004715401970872012944521912856380554550020834857613307986929922842201306985261269057602733409426823647879526998084403580251069896321013111752372522143776471963024083412470555185239289402661271146576447330787495672872562644652255641666005232315994059847423456025215688359303148138671985909501346031200103067320997298059000236735015941375136175913771337185781559799375938365667695031472980481354031057929294314326704717627120812689681095978555691730545653979476731103985826606702829860388144028944145818540597508204727912768151733006923488855706524206516289286392269986437662583668440700876143099977736635138356013399674001959594493361457782689534674281846623956505772543552385974650179370288448172810826286682619829272974012462010218247621946053600856093863124802315625998426400461481166539732966595287130091393939533959813579398289164914409155107872763864252876550600431467508613304350519442378230642218326607624780943426072662033628032807031698333603103741650041083466920467451802764497352813851017396257476219061136281686646515567242821773047264332141878790240161205862563014946101291830462669104027281561894671236596586184111368998466760863094518140257374843309173151764291568823874197143771190074209488513953008843379962934053047126644919177536319779679912076644804560574499689347282842119814067546879838443684883511929030574055595694861178364723815894682041405706304985884996785568140093570169405334497723383062559034200347357404980038068247474869209004049011225258434952822787842626073302281153189511621072786340107700902403017735728485548077052370068610059649914291065150652213456564838684897150840587388807114067854466532216236503048321495868599391728508364413877314045061297769836992030163449152507454452756404349585054636726189089152617864473059102247899478785248385667353272560213063092215366866138103353622016847126578328043671399478723780213442780301957833098340876533474101335030705184932255422958769287672070534859161259279817880732224715577120250473560699358668223987113506470301297367068564607319001471691322870668470256359295979558709520875487877338798427692305325674575926040883399496016059271816924795036750165186628122869067857321583234796806021117577380478565759527021347709836717535182200404119657266961955069990051662470956420131235524607846484347914212589361120502918059943303419463531066547140171607780549931256253918656204046964013332150844077317069421749436308442756023546720245823769125799807150959295552693132571213036531730893434659470704443167336840571276894718223694339434789477509401779061741784282757259541122346042667441399153655524612427116766861706070335857274934643840196399793832607697550850438006082825961637553367141393744647968987104681486257081869406022519591711538166472071262507090549309180733520137280548219808619381694107622964507751502068964989154146807709892302398003375496798568081572908683563529191882805900292952055967580766451242164531222566387903954539947462465561492625324111361683272960902231371294155763245048921077656498647890513545706445269039390840109511572421944447449267143708182630650545311100021846678846736325796477274182260209858297594432059897156894166717230035671686009940091028506171226604964219997861950248303919257805832637137263111462778344876068716134042834947672973141760332513712074865012167401492471604668954184137622564740193691232876200260851268348772651349455557358830374249417808290122583319316660954001485017220154405378331593703065501134261076277971636934345596917535664974639948816912661250942516361218000691372161089826778294898766285214928085672333342538152271541299604557092633689410072575053814466880826598318991351631953674478036132673051075827724831244829335925777658301006479048490583644594067671750026904897332582346228757131722462649190689104896275607812265328485191134695275631762973746226732557809169369483847480502910608348030955703634718872372131262764984612229313460512567761005763192309152798804291495556392196629685467449570520915354954342409003240007214352237914247070675866352095312833158411108573703620557848308804895303454767380868347407225020224124574409205919963538486252754266713748337670028797602055235867686970656521211133047363372677041012610059726621761949381808657557641080779624638333627416275606976405112260363296556786233683038144580613912791041622353389537428789065958401091674621265782133286485630884844138751464219604399418329432239524132228729169240942726468280368010746188833860194265854148659412454690070800926037322874128668271014417823628248559945186634784446473323902989265406372110188613808423987101430783310151059779241061610647174900887214254272922405492366126399184628349389224941902222463805697768524363897832124573741968253668540620479279366014559474750899671707058855077907750629878651042399361416528920593365701440101311357107847838050971945159107219253619771804650855159015690200115457068542511643173427592102605724829856362721732645767488878314054730068423876354329054707009042478714956096947010338498833891129762822947446912730849960835972411206101843299942389559296112225849670872336277489356498638471899980685537242300855737027910565462524813303347299694056553766852658210477079163533462280264091820430388760280828538697773328200139080160115064108219272787818760155169917124601759282389854587367873235645715165187383962436945418222272073164229354721863106196665784923324329121396864521901906512010552639829333187470564596560483943044360188607835661782031097803456394092686740252132978069482966989815655838262726365393052028306067260316432271935935691933717772948724784947647661031730071723770397928410760416309865042952950512839831694633013432951684537110419051579534742345258257005012055393310669728962080488174929843486214958250355481987390654140085161438087430760800366369330025917386420749568624673396029963036531874276248807362630973596217261748158231183282358919496796999093262576373974635964613178291416554197901522323167546772665595614051798771856425488864598251772711893721237206145412394920374875245207574001568943828671138022041498588779362141375615340487330105184701438988875952499246043449208061313894351076957315475168343888158875608422563788811984428885865889322058218552107896259556807860045653498468964250436518299916533575359456634932329965695505783467103425921923256966243995606705405717227889121778976098074637682197646448458875810259902546512406518280617425605174888103904849452962766331547198060094354662563929470558167433768023423690056133275856721931433821807582521101146687083298583886026874373597224834313188376457887302864942006006506667840295869434298112907519760138463648266456184553365851374788999029777462407844603125268839364173027658544028911434683040494901707097411651399681802723106557426606328402089593576430686707509897827291335652944736528386578655691606850921846746899030872493440674322174675299338216322476737024096438075553784116648159248453212753273177643260264123698431590400322959979265974181472535741165346883777133304913436568559999855417010694152487655828061300886011959723005392653597385007113183611969861072095018799285077524264723534447020489124823387601495925764597778605743553420217756045383867203314225235621424753871183491453725725729157069162324906597890992759905128120089487914739182917916594502018644135695725745111036328253023333927665869759679530354249937007224667825513073764159804833700825488168166201022837953915754174200125159488603196143499880916669213575032391848862881980431577273092119666597651093864859407428135233810496435114533745410898728319971005508574927277511033725650013875148572278548966601023021454939840027222028293723810520996618215714230624422919326222006528224701779329296604706960705227135595486050885587207962635405811656338732805126320645003161383537308129106826887638549820719785494673576836430914413508149508240143031989708954158852331159645822756239272156198103188924421650952951025168672645957409262551781114171738322629072854385661011581990252188268461715405640039873079349268183153316372658759014742701593292252610897752559336640571075932751232066356752350573737188668764037478803035665862063312881636692267005247094348747161232693648914962088595696339364804038878722161062944574326142966097624462523340293327181776810126276584179208383351450414049846505028248447346415521895601385157902432072813005043721365701376487951982159832477956767562324895995237876389770855081440572601577574269645005808393923021322308053570838112215208199265956045439113517430913104225061444863905228086460962401574048935201792254929275723505451643467794706229467762408968034276179667929911143294830733320554845420866947316117856938816751003581994704728993144115960494915906504175728722538145845095981627008615731224425226354408852954542122409856443754401002512072444065479421366828865178137963494760334139553596558373402553361916054230442729526337999166256123683720447286442507152848668475828161532301462152588664808717628752639901153567771029982623523118457968094783558283726617108905522715984230363144396919731127810073105929586395185308170975198668871789455036974987602789044482879132796859020841925258728847682027521419792828907121473636230980530285475419728284415216284212893487718375697607869904910453752653942392679688007412882911166999972203603664034644316061069206248530116439675808581622436420497382727544605954593936975287820251549052738659021044312702756181083110039611303028251826697874928987520354203471226676893081277466474487007898421524987574260229587394853621094902023518431203587939564211531419353054471501168937712524595169432967410745116436803933017168106264746669499037448130309878692520081743111998661018019853036148820984325309990440912052129558505046518779442070615534767476362278895140289709610978957072399288954467006668581736489521914183366684626282806540993060495652576700453032979902560395418297966408831021361856652633379597492888054789858136966488888056331291864357754001175408450993676136448475794988954027446133807899234236833021829198612764251076940635244352250951596838341245199791415513713061505845639123841170392667878423056201478878175547979588643058313702852848635761016095653744102404936931928912987318234519357369935784385657890398598323193219985868776696368247483018059494723166917796295629326189168343382077108316764616209510339451290216950986687564533508069170456091353506803625547376506512691067894263975631631360947064083165611854475142769439979127721011387675478994636337175116962430789834412521573593560557096475484205325539065391640831543877431130589375670079632465883982456830598598358483640054843367223427582109052828888947517538698704748471567933561771090137910870551601455433425904530605525062305861070823861340615352370200678633968828743320008253442142854969914287325623570178178803712408751014479734575058009120310576202251633309571269381608030403599327107752957695125362367795402392780198073917113796963307082043305648066126990467333080658087013159347035828745258771853317790922720946436710160397868953478643544201802353141168123174939959697246952893492398919740950547348665186632862926649160914812575449086133658799250449029704958632232509862803420818344135041546583129029349648691428680704557490048472770328967520107176432141469741534548576392797945778963431259394483717315276084481272962528031887973954273336434878421248913202093123117316796070083025000494757697246713146334987349689935821499149725422935566874136616670110373776979313964336479193226957617993925755769908229013132796051640449544983231533028040006252229702457722158398256198880061141552560392980329080362579133040165759863680416966137059901872861489748758993737766031791375067177092016164677981192465831535059341505485585993286173696856568031686586682870232696218475777666511469685900107534549884206852846848541598056774438691263518199989815122454088118268709031445216861352538764764746229154571257121931077233215761101765950531367444857308538447939326455354855549104794595697158826327941243644745059354645514168089561630367606847905882339853346807822601085960463346350749483093944071700164676776919126444649625132165100994900626017645910696232619110036454915861324023872584658602126362596528887799112932675937636290626246952825500674603500510476990815004988394923698809294672516602713898519945164823864653654765789480457905327932542784968150000323111559807823861330332314160925360438469600842637148903904486575974333929455566605734336452412148086125123808395286762392931434058350676677960273233911041347958866014084081090769506612048218079409158391045702599137192731251591486215646490689270926404792256778139550482422444215996475892474295802600294365963645567956489404928452170661180502848427612285143640519765395722606373744261391522826639694073024499772268629652479414018354549823261531888426300940456945140416278200904593490800044405735714106856813278710505399324546914883648296600667236649510405923039841493099285648380135667075420218934491792631842749003820511206859342422912950862039378388017951508258779212269422786359818723035331430390584330944746519911750120651500723776455475122684618890713722464730210076655643787445680440266099663502975250585541243556546336836261420194342840626060596078771122481098733764237322380740223671423592182294477946454481923984550833561464476517860375954371241569058958702364637209948199303679326440265163935276662969331497689478940054193636179501477355184148474739039104984767045619245963049602767661415194481600761518306359720203758467759549337591655857669992976242962139692330708921105936764816047027765367710447743010130074408247498681227578539827705749016821877060268809350602269651750950044751164642497523969031694830958334180409160330032291099772529619898859021267223383038194137169701891150682011375460333488232173454065577974604325577698021324611474341623645039443459540980692286016862988995164395797524579502903004250679277975012017752156895957824205887029550532497509447557963193200307471483220477654167646410210474910073756263666173760009490385761351516148463840714626119119163387896424791104666398300132924086783354499064191725664806341161360738765262680174598158509149585055111390856205190170404232858773876692155215994156911490177508189034746110197206558839998174392649159937586591428488635315152888520834093866725083715230287314002663925504437158975995995858040732586964003329102315840719726517872142266628623580290072640954110214635331754670362972609217300884619308955241466742504649641911599907547045653571154718066677950812829806910149721053856099144010925934621336185571348607022651454277459675152897644261654657253999411994172397905856163657231058502158521835086743014724849750992181757079046449597197208653141516572702357143650139024207398173624665265005544052826066503767969771716419004227365242789292932446856479433817441358786518838901823397062821332510450286242493340868420304205505747120415940712154496684634005627457042654383651312819319266884182177141237739166137805643441889517204547884811887704096823069177388845493775379495711568192155947859183234427962065779870360448374983455809137144462497822319550090364560654521198190461139738312064162859187854053609335521665423612948695645004049429647812138542026253913821919793892833073297100959519739764303269074124706859636099961844178304428435888065115383598684293329053258815704695229889688313507488234034506624579750040812094732044652483725479473092742614874123217290512256976776186343648500026983685426184704475068329172854911702110432980820420540071388777365614084176261104067071640605487854694106051163875051262703155344358575189118447082490934281426199438877684814817024230166728340413975926112899252577664737384959755265191650768591955431004803456043398061665557991673556622472219318672405268837347206966659354323579574033133201005753950299622432455751565250762743985968057327046508688090319872498093013811397936207489247018582961083106666147330736243216122990981999762015017172827785816839122583237943873898009530536304689593702019923233973999037763229905482684991773845127438831954137622643931144343750944878967122863922273145773877541284604091639579520318930819992920861480827896467042347976249957660471290227655357141554160650121763568053442943978275318729874079960083215624790031619271455121841794113393267044377446884344768788656648502241165408332891518582629886081235158885640551570775856025184172608596454399116004225066445406789925094016599644099899607113005010623764191176449319746632083213600727895793645983444916172376655519448256324300452686415180266111897992965884845601214465417933984066679247944684853747385435410585522763988031985346876065147571981378554114810025211158228508681508260625438667374942620379225892355446318026442623382119660087322463688135235163722755338449143294745564117492706662854549268195817234774372030630417452704473665237112577984342654205879957303524958744133603950355464912048025910850848018560969617092666963373308919009271306976457538395592106095412938575809120208261279069413148184498130923841239259445218393018685990029206091712281549170778129626077564886880448481154739723843925747770012165032785024674505925306665397804315357548744054902840471079366268754079163842534873329987993874770933022028116709267860231117921463761776204119006154994300548674904966147640164105513472620326901747580079385166220806532446113607875620564206994234524961569454314674605688996287169981165427057393530647789524019989924779591512702178389063252140372568530808004600796237946307015979157017818263423385323242340656965829846042634287925681583252121133825923803022121016283646759279851445603180704315243196790909096386370986621657433587998506625598794069234227136321780467734370860077783920546353928221367243776181465601368284081764779212479540625861055924442754070942451365380028703871844406659056418508286877035096928247307861792890019801703154279078637107730760071131380152984129765649984626632754257652418691719069167022352147222876252088956105248651431152110452623831817302225891455853725035751040543122353654535730785929664109702011348781322772070460491270322741527757946665782792933064751386350591094378118520975780826838854953016556991318545320583706456946566730087337710528792409224389876326875800392536327377953262577652846537729166968246768172035476126362110853961088580280183834312356785818621969877028807555362965555476996934358641487214127891706734818659385407115439654258978181372098781706457096115098717831427227473786924011845751260644321410899505578371198179606691743523860203834355105722330076659594467041095846228703300062103463269945529617364095553503493005540000541450017841184953904664935914555516430731306839345330156462838137580741101200243166164946415581144104410866391381241912563478461159130791150429768942874984932843593350186148669857007332080081889944496171081964160789918417756775815311857848906640047448555684078650226519994819463886626330418965007985778569328020907400712397639296456794308828297111273831661236670684231770409475569888848152454550560135151531920104667655222052788189701488983014048375990147740344043218567905714897819482413705367008843315661758776649486818703752553374820469301936628052078313525100393177161538521679742823791091995877374021065040533995866359942931649091386225189190763960806894226461351890392756487309319519620434573558237314115780559308469746227088141727832137463747202966478928901968036285214584420645379232912976764943781693413139995947856719588261832380600650608635808141884964170615516777313292767047120741555093651857366983977968550205461105737912601766798566898499446270088416779453492313984232804570265038649115764361962000672612790994269294097178727025174968787468955109960071913676926084016734666691639315952243007087241226719295054662795660633900895256597946981477552090051245549806751476160535776525961175426047506521054822827363560332712096596377527496761215828515598506252875579356418902895168797767014367198793141985218031089498760491396923167038031716664311591070771585393419707288474778941693473935766277905171002208353054398766781696773716870905647785536085247154860827250066515840712874910622885872128408031506659657222616889904944620242781836948695778927196520194940230498217785338255758691104870324422091934047150162767122960257244809438823882438293350303656005925638727750537984562156055231281097642736196631210724188418538741426927587222786166223544237176164327572299005830398144793834342346891332601190339667465514045771131709912809740176216858823328959344165046105320395542637374685435538272522217054731619522848878795883140812260119823720990532891892927035600215975459771624898198341158793694313908880126334182313982162898919086893094226227760661487509077192999034345792878919153967651668698255184494840986333615416628428439586729110982514373079245392571673412441908665556936572153874462001517990671066562065662179506204675156078799606465340539828758031585661856519955719692703127230646470596191330994207541345469939752880920813920085366811961237045604422655903231169079260644054969301565448903283035037713652887126406729202757978279605754734970512918038013846387636022276211241636446566547633221405994409778244663206115182418864983351008429930123079490962587878757717664637354429001357817251402706782025102478004777598740290817283033523655701203838941475267899851903218618846163893759310586241259004171751417592225722951061344248673542485432730901368587121662440234637580037769367290821884820685599592606617702416411017413738080295261010081951177896167074568935805662462364425161325270159120401831024215120384690706797100542763672064614849933217542111017557327113903388107540928476658650035604387443881879954273419944260805199063665990378682001435056692216316989816788781687888151742140426492779792656920252149507217188201260101321693785545209942385469149064762082571993381400761222269894220143851037091319058549354883222178496561083589417006445614581757339161651550146112530488560987528585602803515663744371328047011243255027500368284042494593480709229616347178792642407727108195588901202468610159888422352446482389287384144188536717164069482281931845184412304320886046165798315673326311855079413522881362534550714279414932578550622302770209207220110891197798265516353942984919173005629472081801673399084416012980276623023541526982784565226121703193830957172734818180446069489485245432296888134948593586910132085797440799601370743192937271451124658688636861951800637310459883342478919046879750264742973568227909824718535755875315298217644744331191307041762405121598209141909053891294063451527545221893093501308498406432812650880382741461400420001415283015719249181907276332448015502180989650053810442055829375495523177424587441187134861829573734411121401985141131601505282084639064887548343744760082191008074246436139549251709002779141615442304777787292567886811374479518556557457791364872670702997555048536089430464148940160968826392644661620631302700338200169297170978783001896727604707244886810341366047710120571545345439097468865672462734542801609230287316635959850012832751244302643517292659554531560078168441353784478068006341676840532459526272298159397177589957489875103226287109604170865260957871846874960250256054874364783586454273335980798842253505620661140763253556124645192311902890666184779939797123438935436770800254721860389325146809303851639950111339063581522886448249388026596942441518459451552565283112019630903702265292842530425931330539513780628123881042639461869713206375442299601310144660649269266839734219504407568982016538624917907120175986584588486363551464465705290607641267403926487759652135117640125885187694251134890401084773975726858851009165537522373384083866576150128038371552918561778078610143136558767548239698999201009237754488132562499238072713159832995049061153212115105657640524373324235394259860532256501046232362874190434088955283156074815898498402108606178499787817729775616511155495262163937853469336964111066141236689274884042070168250404270109873435203394585382021083295307891448354316493238117204157428198719719842114551074198248896185254647072169874249234153004052287849261007574740902452809247718758094463875078576698813427856894755420185946190166085426200831866737183726067394587950997915370091647548542352853600248065454083254415024268583086322302673010647939792181887511401818749924162913560290422222387511210318363368440076679707716472357059367206164319731670657699521292741097565675309660311567853695788227384615769701933778784247022402835325930260460845316281151694188592176744015690597161129448889398783116505221174417456253349259251150124484035724207805674109599986324659260222307074602949520992989737113482552389142976214061801935996919747079437655561082620067379062346861573214840306036088220304147127437181504342146784465498324113010933878997945217714459209348468821220157498138526240964673329677701810254890053321974419957391922678729050945998875752518107976453702707096959761859048671090716666791269056906135690882966510571049497278356877585333829698198321651572340571578843357635099205169709417995327725650512175266929536412618511537994014650631095831509294337589225201831575427693824650489033114114950208367724813645626383684679992647230573288522215691456054088063337722469642447374597245084244498330517611674182047104255776476272932323714975013864958411856820028210201048159879233158690525181713226769868419534375759492391787797566737057972903029761480331510756177781333664677283741185758421739511109621391017757793759066732547974582015007284253084596876441074478978756851929621355580612164315913695846782905284870356192245826990545084593970286818056447825056255272868594052442440058220083626798238462412725654648030869124746547177431392925910277112252968662716971212196170763687529723925764212414962948565264950238963927084432568338480613136793109414311323444178090291737874388705328906203578093482825177931176366107726562090630526161012693125778864865795561480613898893245417579347107705846257766024795598615687138902149477256446268102924110819383238452785679327262687917447464496522627142319635934899467773613317857862870695964951641107183424577983830890462995273337265063282391125658833516625725005096948244441744856965864223527819178221419096117149650322321279324262001853100794146980541480176191275650865953743644886188214243993207436516671678276802132407637186539308670627188948184505879784553571222282519581884973879437414341665231472424807072336907040811261031467373942172506098833793735679376922410550237798462803389411301343656811203048235463115345026736068892421306302184515527446271106160282224151346491830313254949349895760948345496078737168388816682103607818560206093397624757221057158570327374214361543971269784784734402630318815695644687008739852526576528118002359708538363156050040186688536213698396921851781695349847124177647668451871122967184637134575753093198856734667718194124819587666063590409336917293477180477636498293143645687201788806079390061242749632999092563099317754086425518771993308210405355403752301885814262525337750645930513437143496206426072188187688671377155065981387302439728921618684207272767575627973980152489222355114844578471477676135007593484156736778870509653803849079092384835669161638982368549307628698195611522467192297173183758730461967236904388495025135771032714264540107512146856457324236056707959792251593851025663605492093424193364337749367308991005719258475905449582259442624084858417969646544348020622824190890729308854163555770325246222891008664446095370201984472318881242106564460332594364399662767245618718793311226221673600272598698016705348501814642863746253925681851703719114107086191382992009073686261452917818699150988010492930638306243336140381648138074767243450468661325089047895872581730459591558479202668191616924378570382880910697179930058934758743071577497521595617511852101703357592196426478170463901572570634092057126692260815048097391501455133008476251966118725210677329514934566165578408295530336456240967142945575454060934503993987618970176920012240047416512373420067760297987448569010423982178487496219608186763711458765014034969855347047303030540712846377957057107443226225516427562136326696768073825102732995350166469313124650880871868868211558039357235933630471460158768612424168112629169342983145295471452385555038678785434499016112385940056501036667788569657317679130056376298720754830447029485212841477805707561229881303656118515524001778746265645091925954581009204212081155862228234135847465867013223668948670441350943446004308447523153188819399887409513412561300833049760187187549918030320273272851317125127599911057253836484512314425389307440864457578672967903966143236534634311037374971508749512236268670561526141834059164762160718496316152850071577283546930435584753741190468125307796055098603904678563166554657708480911711450725702563234539192042159124984514752832137252404648986583759114863232803697003883223516351764363238187672016323993905707161239940518554558930156025707472728158046183963868383974218166397446244981194220504303518697565181458683669103187404107972920574122900654771853012976835729092853663744956817510972605930575660306629367087277251712899696682228591472763954471335621473712028496200134216643065748075861156261539917863570316052070321955428375259219179735081466649657421174420996122372742043882052396474171440134991953238080505127126816290184654681816234625149916646096589513523416727485566212296501488261378413666996946250516499009637100089845527435423554307158352187832503220982164249132174520759382495003341917659482279473989017521976564258870239656106156871660816333734299804874157566200106759812605667093350084223670246435164192473244062933310484525604596886751306920972592479420179152806980116697393484249248149475394446005646248757265009528857286052333245602720599463708912614374864253520251216346706845679812007848139068911833078912733397471469340363045140619989830384199495116213158421791915496981088562295219402196645773096972827392590326554578102483239262367574537879747798437414946721036104404245035497855385770657317093397693705222134329399957028247623149922322225672949356409640323348688014033634733518836379723893700305651546324173101360101976670851180008230636328204538677904324031895936467362893803383415261696527618812253827802856445065289335893698877265188093329567988437726192727327156595042426091196132769851466023207565307209103925836504873334967720172657977871195904770693473132369418016249759402499991558041283309253173506827267481037207562764814440005601725782237226642652892183370255083766920444125613380472822978685296431414224104259066375463228953455715491166677183905374557126157838918361358640263410325607182190493521394661565229620918779735776667828150866266357767065102788159166551001892642253959433801496750662020901810718408799111058863824329456292522063699043593448355503785005507180400083173262561827034534846472987024020432654878246712458454718181678241455888357399144392527200861649780057321854950539477471839379570276658768540345914537439798598242920099499127682124210725354913621275382519089835786301070573024410136163866287854011407366318349815225783133836913168870741558197820285980631242808977706652546115333716804833190978033554329697213779189845954694234591016806015751932010461624493379392163677345326724171165017619710290966809083669899778405000819795773218350305981820281180112887548241524467690488572981618051369612618102804944293337674518991243249287096462146660632270437071575792979523016401198939703648781016967730016255476817108504923521931314736368254145135567377255863252840444026480823911056202735733183815955918538885576927626543639335693738837090847481380756473851049438972619263143428214270045147620500390162119271181373693646042419197754985888085584626256872272294574945113981388235284645917330378224598279649610927507746963855777076355335527726229784103812399166473503488348333232894660590347244477874531597585951242644990620943159629294983776409328033550381415150005739617008826825668989423916304706690244522189317383144368699693015400404214806559739188687059640150532014531443442856468088821746729476751882530652960351836215727501468197659835241772076122268524968940498599889920138415439671558384145876088487883582543032699084897551527750105552737847213353735999509263797078618170728339501161429571223472046661676104477377851200796572535292083569937699750424150413840764324783317406043848684795592444128627025993296211710315639271592793631767732690663567658750434407175492176366485774209578523320089000446168295022605347882890210641200207820691583612915733334917258101761853750046547050568015393608677150966627170306533095933872614844674878011449046805834183726556715672871944235851048039550003948895165752792807989598422948049557200179852335909117132571148437852595039512499796619496809135899053460290773433552805422423995187624397752371131856090492495580038316602476501561645852931403214800794985463025232208434120531062108552001278373256737076966966971162645916164885385942463973954409647036791157613247896574903468923844097873819175838582177772854895243626927944982142779729748048352428863422358893403137989525377807552171996029318540060273659508870177192956560152843998741093581463009458625661444230918499384406766192574973659710642191118298035853170135017029745469564633837327994531652317721165302724898315346284865748412079135937240146623694409567866614459153861807580740463803134961074576950406818118502267063755801636179433213441884732504016516310749744245884401696811869927950878008196412140322056941791073405078258969032637520560859947728904482967297070362596119158659360730712319377933875030474410647876347704863978043070180815940386542219468597861494430145630868716645434186099287573392453450589101013099466838063904672835156052486856781739873043651676492773200585260459175744596983185354358667536187285792625064485962209255133846465720530072246204490772929370420001173374345977760675895511250092632658341083236246418638473866684755113332982749251992074495562615191196550093134709815110280286254219904504171118975837716804803772473990117050641824075075083100925712915564826366626477861712691797287842651493903306090214214588136010665352469564640228448229721658143109346928372786224514094676117321375021731133597632203023647347817987950741051614797216394259992901938055683611335941565135622323632584085249042111141320594155874371676322500741696853074754140622810494257678194217921060051717884734693251635314209303871373417014090569224230157853273470326791934740644887627787262834888624685109563885225530058853833405367214029698110145688517116096401627525764833003818990928861330219727072710931513255671767480422683083172921419606121446622313317499357613381805729786504361053144058754696846591950822693945029979549613458359231272729137842435087194941586202398271632871313696944937553813357912091071659110888707025743946306681542107041096651200082382485265586613463230578749615118897059252839955068495103371517755238344829185543315684281598122976341351255822013961490874199263106409541122198723180341352467847302926966544845458549664257031749325252353663940491875214994505998518905911754613779691992076808459168228889677933309464867983478898078185199891152424697925450968064068983886016577354431150378066858748978696322807971889239095969231576166407162016246650014303243260899447434277746504027223153911753371310809282103249761279961185253489765233421544757329952900931085237712152479822976742244576718336044471967322920820976726764807488643553360218837860920803430461463626129706766507699596766810101221667353940925434837618244542912301559877412743220784227139764048642747787539858520558981434906002359689780946723908985906529096636988636861453615297519184911714688283068380143444338681325337322864964265235180361199904851835230587407868964498495095249691754117500968034169855225137265377795207349227620253384227913626590139425790613640634103222411526179966985184274426520460296572614158556385974790142630780030648821437114098187028875568872527049975784220383704376024000832041121159314275861591633029514218910686569163509671845735210402427874270337829014612481278726835836039873615040465367575797630470936605172639600223091797831301805678603212915821572059770938270038506184701937732657131676055436831979898252278526841401916677781713339983105100046727265523388793736305671212039190950400069481320262726078638352119282486513768013541551063386340099409213323191045537978236514855213657233680668609132523821991449911944883455031849250698529681309134110780603539579770303179608942975806273036429734836653603427163030223105247237086697015066839640304500024989234979446696836133689872784562498184817378465717664349623905160316699784627549266935617171595837263179726012405750746575391565250771813330069488765030246262251811150370343335654339235103263650435311169616682423484045394251683548863866345838232004039874173874020918341155517275586848751719029575610265240619284619134135880244517156905096874951007732310609465162479525045221923054551963315665162171162026763955491071239182907526866234514573511692887807955167307528197109356488241172667347329054642135114439553174834936692040725454501003477385588364081997083261511561676415420685879856395341865615613539193692206267789372423323605921721358699615704940955656367626437959257777353912868133430647683972584193765202190309903048845272014495527450710516389740044164772267982651268479733393379033052258827970627328427413444532883094390614895279011553159519706579759616207837771845193289430522467615302959663533530148698683516206340841528368809871718677874432891191436730851204769277748305310177882069500941225888266212804894194078344850724382311619215530332263597356722446049699463983303110500503161030677262759428323748844574050354157370296201635427923417267394439251296051984351354969619873590807267127288568707289661326969830852258399139205253465211326184770935086299705391034752012469008134391916228545684838479068638464375547177601800185250320734292659584763819866186648312890824236921871955338898810637473204195645657798691112992467058520673937578196171651242599360936721751699242242934011555580438625036043601031110381780721509629544916325408790591231955266371407017090578689942808472095488872094402594723284530376546005214169680790344450105624102031976477203144715696404566772719486718043828994357937314860874373248723614551551210490544051291414826375553700668877585315532309356015549510229959791258890997243042597404740408360925420791863063984142935463009264929003203154912979517057346694982095909239711131347300414134310418686860929630260088643226246128281725119899734012705344579269904799501092847905917922716515204624743690389568821375794182784324502806888764578735028062592144499643407257643745313433056458571411301686968525985183577965553423157230058811845983609174006171566582203829309999625617670320333302570489321964482961949048406516844153193531027526957851944138412696036431463283688113034410323495121442203722013405866593487614949662041916971857648320888835356673737050729734193984439255620614017865866672262152798422290162363237296128468522779635518948258336611366876145408710020171897307398996807135019686190102347672637097197403759277883201612400901523563236493672885258029993274584542096558305283151066399475424317108925554051733496318433668673056084527194157832530380204117398150784756695899837222803272284820580777160726663185271882751797871858695779152829574664142622544116927322668738843380613123117706919875690318549172425162512937033276030666761762632920870552846796592235404435060564681405675812572641714879825838350994069136182900194877129850752069287872976016582402596602667151246079204562958762677135359803012219967735160361085385208322808490251828448149471489895106392735490044434067832002472291104399455084442874405508012093042783837747419329810598240624580827612148315324072493428511969228194776043347913630466879799755600102699360407622686744990276971482975896669408247645757630485503974664589648973482727322646752824842634918313260682914367468305171999264657417820873862963122552693362053701788127198058745526866947216401587883190998671901466976282969867544392084385672173387197932795842269165978308306525396137462939166901419290773683091391426013546684399372686902707505939756290237954388872880095156362288580688647268280741123120182357111014363691984941365883142134303281668124754112045826569111783345912090521770939238915576253192025592222189134158933873077084171735167876714596544932320083347811225306136990692634722889986752832265392804827825470333990860998044989306419156620953515230959998249034892181679987907651016751555143099718673625147325349520060293439425304491046793150423135602073087920429057740359546681102383757815563049269101688729875507813945396431282768113184936918861054625712802357286658860823516356744766865539943115145032567838121666370858969812932550651258114341972492931352461978293624798708218752095611813008164170859175192156464572943807219355649820090831925199877941430361232295405889583517265282299182258870514834615065209207567852606408725912096749486192575760060114983125476426613344856549576510938701688229708275562370648496085083108379380200791813815787002916549691805424871522778975206626441551234599494906680584196105161546765266884991291694807197448046470959829860658915288000785629151915970834016976699177864250324664091062703773254030610298846198378577573951343084252931739990702709191213054284923862886957006413761913665628746415382627068836582196229182642289869322136111240648812600285172778531475330961320978045594943964057765982091709296637429510310877324967514973128767588103271201513858353361286721631869997021300087121249088372984259866955066089196530982073487747393307068210878857735564073040167208552621053512294235357649181868621869069185079657250326731748634138723808423393958673580496481346396909330871149408217887795143915477961315833634719288559472385160113660146502742892923610326623161044357107661955312943622849552133212224967882134102445366005222884259465145646452280089631739180163887555842584184413373394711169731848340963767223339130066715582387855573080051953940173690349341379431771821438971178136961100861235710431837964805500336345291450412829212396410040931088946249510077917623075588411488279854752613746959594791135855502633313473483286091877851050298026953348785260195442740640801113824567732343519912708415058052606876273444310841903232137813223184793253563922808498482994302119803400421992215250162525205481486813249222939146961645317658820025981004038619774648733565145250461755316826161556336075572440754727469827799062303977202891777806965275858065198909560702061207689373474092228450247521501732328591315817525423421787781381709018089198839842272081681739762193637710144223163087445898042897695517956062166552648355063016753485793137510780219992079924655825159730816419531944972409391839856558559239206676359355517410902270144261655612119438813618038743517128950015485749808879790265665900662060717168297973154273343225007573894119354669940716883799498446858350600020904047581687691856262142694147295358279770229320071408599852100906139780825876535367741251218169100341086532791960749466012091330288786649188041339671063683586323542817738485930359699153860575400016835495107043662740422386935694000228388294355094435847444120225959872961336128924543785779470227884213143968585440390714724222442070975784627095544343725378542959013517129659500000466166000253443221161945790295105938214714708161604593983822977243458425082398828020079075893968274146746492610397749122498911087991933420836421866487071570437385866583971228908551535388711161665973067910304845202040245241598966790573707767176610575576430758653871404276998137437437643019916676116879026504844083650068337182146672879930737887805998953390133031657319106894106910028202573273238136057305076032805114105480560022546230395465203337393670000605419059631092156940320298920204915947901149674294853759120147912480329464755188017701146677552296764295977141912387392653625019510799452129917504982164806053318554076719367381177464316791282674618090309321357190164163897382474496306646819568109447429400560220176456268617879545024956231305342257042474475225730046537513152531550111412253548164931950234712989477276230170233223042824593728171587883109999896886879174726713392009821277479953177745211438856012857232117307696589643456806992131676788636368144572809160899929814598776248866821069456217747267301770284138115674309868260446324721034471614676486991383906910799113989425710508627301866817529805702157478664515493318838084844429240520846559051883927624664291687818679292514614781765786096968182129239240192978046800815167964873275273377252665039114350125408202155649426095366280062318339820877754338479920631403546150193958883422880956874027926455161382267223894181984386886839814929610570135025424270257724818893119179677379110353083267208712522569797694084792029089254238041530760858641261454540067441201367839841749132796139925384350804040317311110616935790814858125313528725272987974108165501144212821487202763523371401275463163571046234081336460501819462110482397848342079199788542481192567731169149087231604040428187304397702626753487848561271895858206547437953273949329825749239508837644109481343539855452878615327423821834435673809556559448054078484056689329156128901617328984416195279999382651742862978907803080340961303722394680866807694343576205139691309145097871349764126566834371570070797968036365747193338407368463378560618043196514787329194428825689832247627833795414699194946771749775457670661795039357085237742136099221173527262550367790930251012644723276566177602315771696282056683855267540808490693568625971368485102059992991838368471447346900658271696526210014824334571451462714057366630256300797798793462306487773027233929919020462414456192935216163108829800276811423155594210997484407967650435341269183765749522663211152737951767451866331424529771560959947159051353110563473087093636065631309725414989876752432376685458606180044321375059205382868400441082805252442510159526428765058920090895511949475079787438158984657452644378406932950133955228833135291903911200623437066417302406401509611750839742493811359979638101699311709339146508499188149980260331023234618550938629306532933030516750078627651142386835075064578760498034551172573776397713932687370767867949853663436696193268870208205674660359361875509014000485264003088502461594852463236617705239536009725859388262078342475596587116568852363129601051445493524255321183229375414434883209934255316421872469517986742984007570612305081789430193302568492935339662984346895653786525229800656641874427650372713045387697754227642439749363286534209865300168842391405720576719688054052281459288824142947047459875326191392957745782336381825600758271625835580612055800701297945265281612733912182456966413334778380460730016762015044620009580301889346323542236309539468763241377422029164244364310109068525007601298769317192425198908786706925883218131459011715948344631242661860946411464167579082859051962353540643234496909907398066737287267624196163038177862710303619878958138493645544806861801228929666360528856185134605992570513468765790447882339471623080508815799361136891976826154730182736803249217320691248116639986227483392088478166947485607713469174833988944372868766399979978455076649007445522279612160491840577226278324059834662587852365598620746970084028267116618354539068327258877512526836453873645030537629868266555226875769987808255455857167863931471498677869743131863847147831406714830033380073683158188113237897121177932778340831601144366945479059726423196745454870919626839907515772303893790905181759978253565195917622164441737046497123913748521710028528481417871283941421942212848225944879239940170016449450308470520550648859854706014337460543555564543662644977066396139511699407419909212721786172703327359322264079479946812856412918217114676153975753362608952019816647649998294096140777233480032594186086787339800042676036415233355629534120329839268884119377702485701866251694773055004028509037970488458718883064562230648308439449451836421977244011424069060534351111404057346387680722050571090727174718257784680121444503847606608674338793963116298074689879043746341025275215264815227445801242251039350343931565410187775881179818915824260627434966987478777603242202472350131811977293132059437509891586650612404630537142422332738714942200783464852712222451247042751885283403854960471075880569477571048570173757704157749978704716553827514318857121169488734776026702857327458402656828841173728795835598371073287836431642189149308302460618288984015662545080832177695661323394966987912361789971134155836968402799994197970845486758357490551650786084943906241717664278049709289121506020552062401576298901891086306726226334364095792061831758143670507047919732729985027053279845305704694669075298583431725352931828730241195852279954398492427299796202418577259931610849387019637575813318149316646479754232414550630894209168196073609508131205989474295808749739651992657430240480178961170300477041118193591446931868629269143654434148111384678301004758118855417840258954004748130194991554473846124706927097905970175986530803868680589155732992670591940900364589378228764611526703138562388730761118752237590559350288133703748656820905596868242343698777171400375639861399132486419534269400977675408852529965963856979748593300518356432437952962693178256996275909115805911889653858021241287779285154054895517091190272784239745943443118410864123596535483036242145413226808332300720103045657281369175582770836826184558846151585648632172831059721289980443852278558958133407500480445077160040495458654523347532437112032931736044824928601323298581461102333359390757044451606927111488170492274232442757660485744732041963884956345913360789404524492358029021567359281978980790883878148899612143073821023788087840238602466184625009951355418706504321918377166220596115670899604472240039454326146592265466648887044332932919212370244844011725638761001359888292084915366594554717260608248820630594202477330968816325948254432620016891468909587213398647088770615267851373673890305225642070641213868928138238472911523288067822445668227784478229756520574816394985862876142692626960192422019238413756247912815973177733165482849993060902267730459558677026021252512368849366415333740595138744082421166762395673779269576902448285447569155262034112287678353537442337767231991550627852159730043166184333450968802532203644511018990931526169162938197921082336138086583758295248006104134118144774357289277146901494107130000710382857644471951136333728047006765144282459942752751606044572700431326836842452772633405882461216598359599655316054643631660092247708215963794647297535370704398615126591484760804270259589203886581852288478221771803430848179746820392589690099980033984104948839634503554810231534915734677594649214331526891546865460512007834432755330333383224397676000255972453240222659639107851342145223321236897718168361542167855659565383942175761663617874221273994991422200243382737697657134321712254078214238410469395519438812097032495881395461322737874356020572413142230272571833812736594578803875454778939114283385491853385648557121903180666350572373093076958035638748094249309858330367395301414024032140407185953086084384498518456138739622520927529841493013245289202892264517183493300430213557727243746748972614477688186782479105861267304769052216040482832869515258324389529498691644822581059965570593055802799893743853750014045613067181595824261099969725933451198840804656488213124770639739165919392080385827084789834513023672393760804084228059724750842119395578640490866572655856983043835059524973949073825909775031210928505844889734542093677611490035137030731368352052645414010640525088250977492257133270468540967433337984481376380292248354815877054456149641303126141021475710843721660193849824734775639450390822391669626254817483357017662158110617414657839322335792781470656102627204062281509061854710503928089643194592427929126455017361412035261522638534247199270352802481991708175937880461462337511296902512170016692176510121345370443543327501605627713149651604608234340355114326119037734374865757671492859871169268428135673296284715078587146171375473673266228883956270160564184094124158149410456644669197517069946152447981035657556620548586351425390886360539495147845269608967662802147748225490646205573690321488707434316761100973153790178151203436900883501645512058022339379770251859066145161886093896252543677102771005373376766175279753361537272855114714703167897113000820668608665863436778036204818612645783113121520279577338528149918199539527063515145148899016253206965779653626365189605667490821138145113384273661782482514877394585397050002704908519719160307116228396156225199322209049097529470315412592809523113376839864553261737770992697228530745962379201858301933372502899691988539833831260526668492432538345074501307993281420041155678305356734351049877503514533443528636124750465873684940086009147434919958742681970165804231429303172597387897736908650137829207875713525958557049579441199783101125675237271711816579299105000730964529213540329994095657686702941789212394066766316821423619024703433508539644610099706241644902145711950204775039904530986473721559004205264709722706654714565257063631063964038069566145092076800035565063399562780960709299134828468724028759497320051865036606794622221226517190066276049440602268627304511234992302387324166281043034822219823535945552153460020521631739623431453955320615665505632482894497841531382598799593032958163565154350608064735646914262235782431431493183414016881771504213547280430702672215611050061546956626044937138607536473746889264047533200197099975917691407149600226225135035166512991332741504757148652149553883898258267635984933468161261096911919245642449824093332741277353426479692948711127011237414446603815182649692799128821985384211753551003045797530765223731981650345529177300535845730737786200461061838699933251382504284918173574635028254625698933657832331719661165514495711820285708082009910054992878096565851028124189983157310381189225849914074040033908980687426498759764425229421222991815637503004958817757175885607734086054177581589385494355362685513638685517003577093785056914554364888091450201659072386721998574870720554089333321189619910109100410051241693943037609510893076261982875792762949428232788774259169438858327313310418957223267683853580533118671071830897270950394177329220031331805742454843469988867853434398896992390306286254963998879906691660910953435026392054283946110875876665654900209353122834672680606339523893455156562028923528211675688332212939354431962158377413217563531605166110137549838724530337874320887910702464390895463428304760888108610159056826960660834799167713485649631375249232971817146990401512835638987088534444017064429134568949034805139700791239750479736538005025284522990155338004258474560575411292367862710316480523271293303500542714541125068710265986931277523104464544486565148567933907067407851543610907326701770449347930050211239107443340734302582423651690224370636462316160560049284806291046973514486832502278467645627548219786499402819682206171014723747537228510849247373554950011088702491004003423991014861999920369779742271072483415186198232572694042245430876040896506026389684820344625432795528080453317315089043013438989839362352492424498700624680853077426194696196374140630882972206749624280378791079110044647558152827341855937258847466853279724388699286692722651181924322997264143070965832443971749058350712629132231610714955258525162740824162968722112484387020594726302222304450699797939237414390857465773992992348952719852517041745652736991679813875907466584749840877165368098990750240852084436354049050924346883847009484753576278377001800986424371919529888673573551736992498844086959081840787822168824418260896393898514777244083843797042406119729863842835603136838261531514800989384204294463418889963451357693210763195547947701000377927491500502748555918646764696868037984490860144612297048098898464319438785954366797076445037145517359523906358480016472462179630548110206948445454696020811589333464258974493958618317662486194069631116027559326801360288875482455599610403977009951898570412811534010604268067923834142672665221579559172000785661930492914776405299859311630296968302360632830669373080452393842264904919230446228619175978966276419157667156431576887192212835831831643235372692060648888949188109322273498542677809596546305905218317736056225250905788928525605959427954848932456869050006017080535434949951486691857018907533107588833747592358779603696995698617369718907148163643235876496740017950734562108923238411498728929854565817981003860925582550003029181994646305256344118794876577457896043893329048358256406469722552486629575610696551657093667278081923573069195086334345273771011126782023622964403451618073043553763107927381978297713828799727220844919847445922991923852981975538228393531266924121602608128360010519543348249210843315960494609164276351902432329015873144147277907404625225334297920656766869206070493238159279360491833940863265043545415258864321296335107949555273816920451697496700196943844481734724386945677371529358174832951059290738463298662237717252233403768499695650095771946211912952536390633300172987380890335041943948152843706525852056131007732500181738836483530319820659472906536098951271512886412813341076222356592966292533122443119852487381255543529083544489130379307982512723521523039206206877492462599210711700458758246743788699979921638397035374864437866112470933584418735208881695759598220968226726054527551538285857500967878590954724947288255365311956908079811420133539486819420240598905581375029255419436245931367276484463825168146400302719839208497719597548365499525333415071372779231756862064423643531842711991735503147323071430711026934516022216692574580132098230589079972404912576627628816787195767067527676651171931718322706251646893615407197370580443652540842421658045021621865859047520818308243518131710828326193121549938067966720445734410618793955196013148142380098684386648644094307861246228049040381693337913947980116022245224752783127687790356613457725381290031140360690084238363544100818434868408661573797573694028839808936266411045242452977512858584998796044086063566844693144656174085396950018523653563654826601428551396903017205303087524278451354511784743349841179748522371412217190369416287453448785024402400598771635440211589919222198653085902058884830101510348532694798875811226335191563883082605133334211451868343183660074817386508689789515105083437971424723368143878761662020119674921928748425945988292968239971729680378904901374894519226938415144234993868271792162147008953391332847104077202384896353825995215426921426304287256727200706876710339949210409250623380359848963124853917322496220711266282679088563738769603691210263834062875993120470389520995885930347271443798687111331503869920471047734098815635872438304504756949421226811100819674773223252617988073182283128806558964544240561512239056184836727656216448880609210746261510506398085741959366742726607196165276801105718708064693572066451428336158260222774981471941252610376450772745874317988235324993872588884621658668139251623999689245161343335252224541295285139098151106375409856090203610947866571667023161391905411361419954953401644615935848956349013078765259875151005942749744539598989669644058271713985874336843799172859012723276723605919726999906981645248298610813343478225836730715044495325955075867110286118248917066058040789018285080337891828218135494608163554283032559322873535249545530307911470748603580463840321614627885330448161464891227141014760455023699517661938837890626393627207585295466038538338079577959495446125477615687094849072779153415113074761410840833249358482810677935513471385984480352376991130797800595714608919252794372657678986455033127750651816766120449595311622794670375122952569106758854721132851550011803381957830297552822203528366015443319986794183816781157196945410971670242304018965824563349474189296440818701634171526607216288680070228405832680419489409468326274734322150931867674457355560178518434903492412248421193111878511722697245196172671617073420814148667645736539469653936269569774527852759041979915849453682025726244801702816075106039178725200073709791564722663343595309257410931199085431485052985764731144084556481298375347947717299695012190103252745051937689191935410404951910052621016847914257927684642554524983679600958225866384903587757869798731785970474675284630780066735806902445962053112032886119866932366430982581010360061433374562553276922959716625374905147906704453851895449512763804478057377698091164009762445547141565174756597958541199001280558560692195786803689160812689175617793672529567827612842362976645712996684062865682856278210696984574111187406882017325097021524222918858462516578719712959833424009008735562819095242660712450718727212453608182461648711738298631431874239029559642358555791783898368407250655681763668279772952965467907390799234690143608613765078351837857724607575702080636404690039899541139554250088354170059763357638586452200173136589492872793577429564258323686752611837309828864647431468157357473831057880553646603602615874556544499364046635885330113681127350580375172261262688085624013882635838838574112247765353810430009554541135833344127393145980885350904610165513303858946258945366337502942232471563393580499980915859818327176270980786439112897879807047858817816551846943916865653196128351786475525664306134339219170928959422468363777879137078114267130420297765582921301393147173268856689245709151325676526352526217862651881224962927911357058065840176434296306399729547702353965434330825494928460155296341998750800647965488003689328956439989070191877332731437930740815478940700885838568082898298925213532157364638526462437038870706857767619923634435856019175457018143754749885427028960283273934908450233319961000720493844628900693625474764362899819290422030174325768741202975904822146562966933765595798188942513014832760506792266007796083567438567553485257133892771136010520707179601917147036962052329490354997065971510725810891149793285589217857028736275764143191786577298623781899584457604501977996305756456511490795340754484724601805870300165170430220934897243457605302554280971106492417946615574199243036594980379134455908485742534268439669103345153785490254265629058077606797121909743198996643844968993900546154954728103702750643914086158768669260346830956117245989081995373507443600158681212780798997958313995257917036979815974918382864172526838332421591603792414113745536515071362109134891631892288091375154898188690330597530462335077565478389787732779463416263299532460362432714320699335429916115667484748110554857345128005034316958142170541042794767343860324911776635599407464259926365986682720020261154338414951482274340822668473359138395812438387556644981211582052867562469997395612788975078794870466160163593901178865648204423243147127262010575654555495247197755377470141108753916522306582506080927132528127444957603900588113761985016845065618487523511290261157649160235335993129445190459090840197311712629173937360728402224513702854333955535289978898847841496508256356716114155580505391946013696306891143966454750714480128769722337599123297019604995846954939363618420828877583967116640056703843233412468956596994932777100467361533874402485997558071453399145427582292585584217382156292895022373785830711885814507106139488767237207344326303275868506784810330408809880561937457973852973602833894868716604244479918680487975252573025536374369989929404978627416001652174790885703393183333524362847336258907925534434217665244336385727144285662652028483956470907361995475930224146099034687420986817711392213068868194608668101639293275073120551668682303373805864677803115514318813025654635100846880701993725831120381301712501041629543984866173915020493099665897931521535584303246198086170961804990766573735566576533261921022017342635270659271462905374920216019872885482313407425266885071060810473527389378385163370291696991622027184207098414978516169491717070476951839594642044135918935777094873391864992273651779610763078572641199541690444233885477005430257438516381884451829864323285337353915850854649776584917784345069175736982002606676772414178406693841558868997983623385966273983143386902532683953234224993886927646806262345840798298974785503790286462914347359629456299361165247531594139573113651031268334631343891501664246704220365480595771023671823591437319099343662564994952858606674390215231638490898140305115237630424295986224106349355466999476546917796131914083600684269190847817698318303159564273283239255283822138336396847624216394724279858631537529728829902404065453084413632950860628119854408399143122571719809566692104652126728028618877465978543327469550072930647954253410726047979256528716402371133060638283736865943912878249045313642577110547038001548223424099396474088330879732835091805021218347480948091957998541054699481753810098673040428664316015106836192572027154249627505823699791308728520437184830352133161884916660636062347371563327199449194816485656586447959920788632196283279325440835297907886658321865327814128955063458991983895337603748370077586554651980442029108028656510847572813565450133021792555868627146521730509916974177684535877585978103317872564477826394894382308236341104031175571427178289932614132348409003450032131582053840206843604887850032032280662342020457061797042174895383177056168763774907744573643765973122012122435893607156812156895425360901253743270643883680088422479759830184242910091994469740888360656363914360155808279659420475621008977481659405066350999311359537052587210509019780460702482049295834815719657307310992610308186599422031619981466811676840625808528358514448332069114016505979242736060621718481191213117175031351407486288775562639828376926756840301317355506151874967993159758002032788481088716639574903239801907424157397765791278844995954884653813022893396325631522031140302291068348998577151934314801172984194111225826490451414588266576554078994494078108513491086932534855438282538031973891090769469230180242153058898958011280087445323570568635515278451070548227947060173345133738440105306186383151527796145596828821523537062334984393158815850346018573121210774903032672738902566189377935702980056416793786798581813350086610377965889969101481532604602401076741219298212565282406341402215829235557027228763471706936707229952733505908965634886870403522554083863377713971717900483972497216445430912245320483071419363902401694000658325358358180535615847676457607153554182019636263618794200768749955834971162295892171263591043230849159147783441763806946317480764854243718661656273550326236759388379363624946488082030855824381131780414854370552455070396525788140108189132090516573702070013959505941736001909837754979189128364088011560635370373545535879940632236784748494660433620632101156253196961050183047432766715937849936543561178651981444331039960997303924251367789383582901283783376912754721534174077598324145769895873044596103835709364715293288269517293926784906225711713702324410100195100995006205806639863042420306944843311311117719781510285140288355177697157240500855417983898255075507950834846164025382316400477900061901067080900251597705055317119497127688641400046869112669920766342303281131598564892454586264339081997272351176095137108169783877897985756913643747026919359100208454830874744944707295106262662302734791504024640408958532250070595586135631250153130705080442832910859910654863264873982114109603538865625363501950423734390446514542389159705482489152303453148087567940718509322679541402294888179752954344412012745394468586769389668382287031732903477031504364774607872068951230984087213450198433863980008489335336964329814499104394182599336324068015920407383297689815315207057900669192927397384482168009334183761606849461693799474017356666653355892775850451304232234619208223451706759467499558025992611302523399065171559427338083738685537455213401997623741073773102810075149972139388055807495650090341739341411468272740582140334003071421570349565408100102336988215614308621184582772538950563078179667744368669972588648653984151468448994325670451227657131623876327178669788560290161728377901970334723084488683637053195429915814260368167073596480656745296703897218934438678376687794237254803815513210147831836525487788215028873078173816867420078991239909805680417143027440942788825112298084465012938658685110182024850730109831747077079847046114718581522292707412548514576081642294270805614954701900222523060543242959750538027892832861486183494346378420223063201387072843660378035921320122828624511005603690891074335722193980493334028975847647379541093171549103327613124597439410496646137826212969499201690290285419193912067658793098782368683568662376040236012063226066249004886640225925933399621165399228297184825990194463850081735581818797154510774570643680933552738791729174526772708725803039561547521832538718177371902612556138546547382254882599720259704067104829400604806908803669605433483005900659458382876076614695307875421657974921116909926137376168832938804552318308152670963795546057887989773802554614152351574269026403087593475166554002186705646216071790657133533185650051958756982440622914635340079746427763175455566345285572327797665777974614867118208630399944623116405789700691136193823929598875005861034919627767519029956415724547161113085609826469480668753768291429946627481850381157165937883757967392732155015097900396284541282262825561521597376403502964527301082936604002517888698958283627535498356850122878663860032798685062933573355446336167014306014786547336950543848383827253226266294778732383266103468764529793560310045370551567211429558334626957619316541002306479511569757888905335885301602345261949190681491962579397126667396793048523448356099173897339489456692690632630764893199120072596744316327619126753473496999139489716532781042960830244399594695589073748683105685081559926651013755213253633599334396502078765366514590735783233738180921449731215126175810070053838644738762209669334094776577399466305269164221944837783973066996978922572031121589466427090867842788922562196659320305109566533609736195755816075792587474538386815980195976602281447023019838253259337981378628424852637100937036868959604407524191607521025656144886569563790274785541122504714409024042861306697890491511469754188695959075603714697982593268198181963762776363170857570144067869941102912323985694721367092817945811133139421784815386060319139209052975599830888482191384815313257332062404306984622228972217690703618548887108658053118808939093283138326278657241362154150280506600802630233136586951196281872926890590300478618514415680761819562546769407338236012107630875033548986344626042753385671293381064296978867218901978583049335769939292158071073685947456893975661439935360649998275535657758068978804845214731087766279650056834526962157916464883543769579284982837249339490608916004724831576269941874140141452771877811578334802678835951873438872598584242585326174098770726018454752856893727900408844080232845048684717643047061973604032827823849462373600703681884210883413749129725620467602760993643965501659510316054362164927562425272053512249915407809107347244789899418153510920242512748671779215146919997577049192227763612392019578464535102892406029870822201877467676397462153334974983051508583626956190392448579355528801571467326341485447648580128237688713840323428679192527555146345416953604987386285847921730050099871505608676999311057285212457575290857983680066713802059170662637171269790293733883312863064082337444156590543039707309874556650779155433479694076023264034421381739213605845668982756190718078105425737546743216927196390997173234975281969863897489568037904486323846430066497966647866139743711956605061179145719058424660613660667192269691681422717382387987958608936649144042178273090600681179489809568543111623178129419859894888032745510913819808737693506402957350022988395024523372735268147084007130695137704383944361542003888315641095014924857940340022515972693190684270425399336936325359897538518325158786189798815469464878926841741890564527519023765099607151795070279138376262634960096908963055803352844392823957307877589617887579154514483394854126339039683563855637156106188672927742816964592364699952403626515751326798033429569241572018173600612510966503841677923452227967213040981656607724238342290080087815215733543925667007337975641705541656474921540438485976497259512847150905398075247254440663972478422515010449765852019973956461913382455752569182432500351778435162526633893470754697845101207792376554555682666133154908258040338629855048829139216303661941547210917372414272161130880270320096277431188217592338330028539545324152241297660771947732465209908682837808811705704958070885901324029205274063146840352283503317315509281619736296838438302125437710276056178241610977128129455519364815162322318603640821689019117140114775326240631872034473685341071835944042463223597970518803801397473686207472363089991547970302734374008688070058114276783909457025086779403078704842476457355959226583910537449527533576633766836611684746969662723498429901686190602381033405678285613092169487370043504029642798890847212913654551429314751002313562752025535896735269826405917764025310661318469588575731070166640094848047962865283743185339773623423610411798602050060764018369945553633838014980178025071508634548913101679521521332884775766454993180725672866025889920481556042209500751767527267620186350077481629674142131165282878923485009768333888249048265741213178983387036882469625215183476913397303001249452851850155553380594485385626463538062093359955070875163734575694429716980769480784385906493552191885305982358151268870576320779129319195511436450632869318499460085305707093548867931018112987895042094328600565452802802812887769942813629562042807099668317885998468690117361118721852949696452457275480924782559171626908341867398128760292670264426000658493953049489525167135688745021517507941829485024488052646239133298493202376659701634084276677969759042589957324825721357922511107628192177767539198996867171699672305941644437772137258196747743139294828461592727328627345097161917249855615508315783085223475365430933651688233356997938409108804440074387813606844608908984334668653925841826553143820454542807500547699291548093267755861177948106208856902387519262233135904780937953440669703346952924730441346277073537223631456396359385533378006379920563067859603574417469466059325418630512623804083136792142145188221810549333660872074052888851441100427340533023946921286390400889041573975699649694158633983702030908606501725821621474883406046807423044730579071017913445942104367624917279075582286546293607257015386718013964228336999481306923543275538039032142665643143360025455386357429415941027530868430230188943357863186667407384858159094247060921361949275892535850215086794979061421941273203773922878723927203172461098458212305681748530248458471308742810775395615714116197517897148154699176962793628531271148807693681075660915682401113980745298274644637683794260220435980133170716720896867300782108979748943530086971230306622241594567440596549042123601890541067692827724786856827888569272879817072835274605058875418480490620949157330454179795172638243880717040948510191781801110343268700188010951417699928194694284630497337969327236675121309516829991636541740688359851940178116532364425192564868695637708622858948866870918152158806021882697548514149735036368359532034241141671856267734237041679423233652947149935510016686113873822372052695456809087994693823848793548651397486781885086877868566027545411579409654138564247901395387655943896069332343118316066823885212324901764810984416599466655236835478505237343762978326252712720197620008405065273092660757296713211265291324126906607219171121796995742232467324924677218909695324828099969776173653810504657965643366222226927198818046680272029342878510290527241694436671586364036903947224606117409893246967728733338843051654573549836484347345639646935254364803407938080315326472296165042393615385066740151257017943180430488494532760189295015597089721610120165026033642337302456110841126035928677093144833928379000253181752403802431344151995182176161216644162370491165033540722119172281011324766789448389156110177689277092201298480173311633846663844134973852999988826633251332218634957026352964148916590017881029724324955683531454470256066899653893163361411474970643034569880312947117334452231100046844926258405461065253367284514642614625275379031603415548541340901175476637760949925740728474812175596531399764064755725014424478710422834383004695645125160159609084704061516206180038050125466661702809204387763388250130362331319759349019099796979855069543400906834933510983338026282946670275473188201266627963399216686389701694086156473614250333518926880846408483628511674330457906916207965034809305297014465419658381368814975706828334402605006092004279260325431528721458677484903439267862593984287269888078101473869170918407925656124702509655989177764109951872010433482413037686964351925661897883264723710053990537547376534348590276068437872822201615462637762001364648115222129925364207413500605880834224455690233311677786480481150345448510559603740382110973904008396993975276409227838342366629882453571789993598736492819125540440733021899029835486431956912211127368353957511847870686188228506054887753592146187927482947816748066454007349365500227181406690405053918454985347191376587365702638574491206895035081897262341196600758903596949866223807412456781522744253321038618779813852240458646008937788899654394363154782209422058438856267068440053320301302340300412888036185013190642911547144598913870169407760496014705145413766706241545669020780148942468678076021421761960004121853149078204134734431397092137777735576224921519296916099573298286548456988465834914531318452146104723942076784004527113105044162909358550938416660478746690697481638560850725249959964377712465595970778792925862127907416854648220987924579930206223426720379338349991847324719979693989219883415030081757912846617951878682788047658949951762807774516314606938951100723827386619577924398324716594761793652352090383111446915059212693297311443292090916430704422194722246201254905962157759017937974982957575306939232887731768254209313225802052333597722587695010085827287965615841966242529118155949428473874646819617529367923700595432807694245403570735209407466955791954535833342699878901849936406675006304666117828774275249531627926004722585313740271803895325381777030943722093062089500416133305658311878413216281348136047778215266982995271911443448436692427992646744301687870852129042725508544954072588279665640521095673041348385294890267985032117366677086625491146724250244365307484833247736536851123362957241527701078016906975159133092126106223948260379072531513889363312128873756858275566934896357317597354245265547154043097782819677741912090046547553644115063249043831350167479525902813499124754745300110788209581849486097882158345231348630727503181357639929810412759546707327416923553522357885731179429198004201476787407093081475542549764225750098784916771007513656570818250917608397391524145079206302406233013801586042720346150964170121627215799661176374080456140535175979937624240583838296408841353653596030933504301194835628643071854811668880750852319466564637399581387896320132373888232714330297464852783826352901713923519506474571163338779360683815223068886383164744330268384177157881274674379497701347217338292809173204883511148808899070744537230676316076640403555102168820838612687538130761151820697755757670462185942161611683168476677227906096940783303974877332605135012415019249100931040944853982404138696930856657591198950798617515579563229448130853082883015898350489550989517831940444906939558891652859623427817757807731970378311485917761883644601171588761722014064438874043066279270263716864150856798542307464453345579118708578992362545061066547144143471847574122593339430044054964469285941233069077493847005520086870354140656915612852302549684486720741843747635173079681874236052425434588938362903999008487744821250529911361236174131573254122991848717464463406708406704524179568765858621757078023430217342175697765353037117007031109739161391676297162774175741669408113410542777849950841449022030677172828973713457934431150561298069174623280525531469644112284300046676043736630836184001584718061222290572316074441461367049167531105604032840754397210254236583551663387503391073528925622647625662385171953505209887682576855993182059885484816389736042851702534277724300250931179062485620759503474022293633296469243050438707690944136572378512963619518985755796457027235523951111772267819008582547892679416115505992923113471482256217588400956581786812471956442935617912433257112207615243367236658484945548546498214171275662102174946015119354300547497417193834809251171836041683469421847180844551894837460898490548013684462454141981285960719745009437510545130590838268700438037476439818971014545733673043489010300373614605846311002608567268735140856454586666220404103599781445369245838617338530044222645231799476487836141344421770959000451564262905991257468321399470354640118924028666280957807871197987046407137161747682337578209601937145322041741550517686482430216643842303014326837366565508555532871426257497536895074460570293685253847332803841468097817682974632723513198194647121481987349933275462507746968643354456389993708537142259849470689174895652179823838345594704396236130137625360342363081580208630801252525123837585475506195614729565691932914514926264384622288793612421733184342092030617370499460367462233530563130048666890080629539662104448842463000058717516345333718753537777145962114762268941493822524419823587858888489411041072895949747536962727244270918906208244701637867672629975126299939910800030513012663276055913387711894677466167843172980658496189698996019942726574572613262098574081015246278866341989430817573862622942911588720197372418141136978925001513694261974407226155495395424680525861588075918864381758689240623909881435419829238852118751860659497863460115950633198274357029764440211610764423044639301728584760151589539528051002775412902004274326898072411909417191410106884981942267226352572015967770978609872349171474126048359210100140314683178827640327416134861609076946538270617148158006885143895135483272152342518360941388183005159157205893381605574580442113002258349992250279546641438863206483437285804346266140774368593274546578919782827574495014722398348062582345727485443722240728778340942791808870320511987951418152000135044312066872706360758301903539956493106307576280046784542588351404876517770877202780509025423427424289228734015454065252511654608071415505516886889023943327759901368235004053381721166527032138980055744146303806473791212536100725715317771438310742838782677698467378374233529480059881732248049284490832839623023543160930069069115331438750061117626782206079281234854807756172345723755312554907602614797547135776698005378391265002160455343125104587499835680806977445509401625492544701994417853779309934724284218165587535524594320194851950492191160162260043347612251125572366118765381402042482118999909551780787494642112602946179270782354546624871617210071453225953898655269480289381824974129832284599150549520702070712454630495388289511479125784003514717383225520777665416430838927001044448519388798670837405331528871666537395295727069740251374190890647894449947136080891237951681434209351118201285062037863291210907713712276762123365231400851325736140374746114270196913042341578544685625969784063034377735573290632748684868475298843446713010873977003772650961842659087131481114027821609868189378452570406813902145203100259639359391203575993641520893278602702315762041028878326608853367094725307046981261477557538558209565683729218873998159548025325213761645322733149832275568985920697385744217328551977680547215339229414285764809451204426021644538132378642984203066886022896436142603828393882236528775527070598670404311331160122257444891251739250044951469281303650178799073170426957272772182128972747750276513113184190850679074499336354117520229019968601654747515393631701961011688046069085843441818030114068154152484581420194486952499914308813672596166258640851112085854560589976961933244739108419246245471133305670033746771055563180365215397627863248032105731280549137138887579491531780312533526470708633286633553997520512362463044518560645727602590803708150576494942379189071297567387042797064678346720164082731413401870018850650508990907151032910184516652849750305861047978217150631116454028803178726939031038350057944387408973134648864087781952994814295449228113957537704993431952149570725060981229069833248734385829181330796388530317394517003897093144968997103588366101810685043665014754052097121822640492220249153325068352396608519297871632967469147366377075393364724813658850156752946499011788875222082868564873989268823576114960732373645377865056344551362581807745611072815091067697703295541686728843139633230104962133888190175347074700814716088966962477779259611043760853286493642107494839057930340514646922506622136288951998394963014515504343467640845702577816952866417228362597552571251326405263887819785134348803267083546668908557873546066869491222169540595848453115311860883579989341529935568674911837803258830508405943134669758545120851145213516834029506003322826706594475999139102757512234093622023033226351935050584486945490435641228633825763885589005465984676666894980340470675275125356948127875110269186402272177425657204383254473526485107565488753902789443350707270664087100290706379327992403834638147600717004740664758036510837110449527267211622571074154925874773699676868440856818715421597834206884011761699519417669613611629495183523127056400557995020767615076754025805666693781149711429495767546276364790513366298663709847615967218956162491226601804423532316511972502837852310240682885232443256262861332239044440924504826903380038595174236261955975341672483210251554960959536375853459706575566796106848100526738839864201217618878430189776742162528502251556317339179274727565955190385630360886924798716813756724309371166219056634907529354690472467349331078321420394438034594214137420495677969764105432265518576462214041487271549400171981882021985414562368597251862254175572656711294626987161057203577771610570162848366448407089181793908941021775302029944124570995512947011014325668992605668757007156515980627388106038718707453965699975937767835949726632421942050790375830676938602226945239472603774327254721136869551366610082599215300954464346025264306505406797461964365950193686899498524923816027098649795174354055605942377628524673534587842243203951044902920044828850944931442139952811283326733166909675822318247089254348596646056588542347890197690124603423854309324354271746984557698994447454792242305436999697639541258747459555053931124520675780245245351921033009717985358989936030868275550303454478841019844115512437750979844467103293001042059094308261876268161563142706155471448432491203328644437295901749872036565276863851278182465697669020185606412229156360412709513687109217834502471891833172963893181090402247832894660459938953382067013637427080853781729063077066689534487336662531511614334448972944967018335105875562682807857899763354465717212675794827258900143376977273210270140603830315359859561511921062273980807829718738087340572598264126136032908980860162388568939257765529484022112642632224771844134014807429708099097311569688076776006961077162551069356606691530563038386452136696736727372908169778039445907751618843788952872240599173729190823793875116445998315292283387389805908271917390669546232509669016922267849194865747771302718936331473260656960958381608490994469917540315569552020370605787390417353865292637022384518525768570896293749599775439764368059821608351617777407401590181605659220827769846189057436210324374544552548160031436235618451760632126318850070306822262240103961234473878153327229925291028216564234953595702830805519318443738307657991202941558123160728727889657910984812450018849811772222058432496310358902972207159936975729875163913904997002926810885313621672051521361878140005084257883652361016349939559133777267924551962167037569286562636317805582055688441977080738845702140606827991073997430809944494714734795559107250455082186785568693894360035765285454457732614709174869315711138706656600164628717266969563113221509820919632946140658914197397273729659254226069177797585810798147530422990323262664914138298507944988909945434434536976813424871894634055832298652996488894044118010998622984245907845982186778147556913622571885145717092246235138431872748368577960451116459499651021939700566628571446447120057475367912978488748527086481666325160040910098240978102585804060292498089270992483750151260603533551014166740395102167328060635721327953876006925055788914271680786591683852653907581522531045072939355131497945454732201291835042619939006956987054298999095824906711659682269831477566312150802823645110340195618165787928618563916900025702566679385982017163930788478541673954180358000577733915125876665926238717692274073739526275417107968317264166490627432153537607269121378465005932548986677864471142049198651844370285236763153012430974404721407875015257228157732289523540248228842132614536199472001815171445065301246413183727351320419723698272543965450764782969803131993415598631591308683041109322017687558192359525387826058959787665369932047452587445974756440628782490292815588750818334754515094665474291306800210903922091880364186407542904057983029720147038179146117995088258803279196374836740653683424397092737127650463516197903587188582953628172901426388752094942081835587625212155173241226122236102715780927713505275802398414248895591280968702657720814573521742672676576007503749541289811389791267785770027618040558775277372684964209519914775827165349611801611067267435050926102512894854545277479760839666015447446262840433566917525194949193517875010659488267100134162616074583112047217388231289774478958938413084045044121378876463023634915160170599697242545177195515567077185808348369035296436206936147385415656815581611946379761098483971993269863286546478202959416370765939116094459493611701285243288762513486529083349682885729870516487141164158949333106294364170312318296365263442798473706997276846901117422137748993749989244966686461665532253208173425701877349089547428445597716580092086218239455992515988000894981295372417600970609679904080486820849715155001059361109923690925509147140371682918423479125308940586256033116864613702336877423271712289496179260791365771103053595777707613588356021330529670673719087894687455556995541791014805017037505833680440893234833780451918008478015739000648386347988650391360381576105561198193015187149190806943970584584442545785135321458499639058641348656822230062511813188963153210741950034558080726164532918011745060491233382357771053321779287111018178783143438128975003191934527312072620031261601535329254765545692174764892514607052085567703413724290398764342170624632356109073814451772520706385612479693308990184652105230923594521885992514807794306290525305944091379736251439166652200382996944519746097418842781319454865469623328844532830952491306449403908629608499820148784882002017944928059212216961441657409314463144213473238445669433184541156659803962960732829704858627853179634815047764478980645139312901019610983693091045498037694041578593133254614946202679386806900633747483944136386615985341710978537122653201013855487364784407394451308979631593790304957955812399929473732858714733427724143924106026091585850424158232402818175490244504886345938370054234320694254703205760306172538957745951615126158320325660072138926044910071905750533145549144665068073826380440072868153174350508974077607919513821596324601734652969890619777373066285393103231533042851513843393932583031152264376700834879302605047949940403281893741901784949295728009935409095368146031037846192620664762310018580478205278364845584418361303419726421094140028549592305793504436163993301865332602306164882884531123413192833074008198941635308498538684496775674218205672893948505220306073833625458942996332552663470871170108528518433695965001677099824534703955525946642435287695536177098501959453218706075196922672429128308279623567155275234642509665868997210091035057371626125262890745109095514025700220100446687467202431713944575099626106844448193815315063368624660268566592364503208231114523094396199548626793453881791572587724899759189457867633261412160084829681508292449051509352199862392515908633900492381741101205973591485408900828448656140182168460962260154735484870648245335636424384705709932164356927488633230447504154073428165054103461730871257326349419639806138935149659851726286703906946264501128181046236609936021079756441368260233121964636871648086317006294410462487426963042052229365097273383706768898290449103819958603647596136920166901653539310516718438745953226813829153637106337699851210380399868531288585347736854282452868878343170970739397444790672355089715666099577441985895228886759263158578603019343246377165521843558993496773657587202341169128088465686684517360887782064683529909971800340235353320548007499372854854804068921784768397336007731744002113268070148669589376006602278634055388017597225823522804841773601312566848117476742791833180526492427523514209902367265295381646766828525771201915700191360159607191258955783231932032325332065850553884164875339834069052846581478279614179930435050793150798843254626028364627380393705178607595702286138337333887476363299259888576573660976779839672734625864552478438526248318489654180772563951520305393338355090799572113876219736012537295876129954320113351370219661974412825445812201418439597259704009831795911166018582107914494477469494363408558872968555099319443611482894295661604553709427260784221579614913251155837890057844756515970405775707497748123695114984655372953853964042444690562478001493516148437719340583754565457857191196412342845217175805564482302129250720894961425613827113245997388365306500847868489370834851597222758432834165394404013152762031627545576992786536143662615560495712467177851389068862620950508988019606869547569439032990224906051028696456071873821137535495118391845861067209383616901658550444038215377167499199751978950260100474511222182864109802036195427076966035185709271859769635525086577056563593826146794543691951354002562813475366768752000497147532991630033664655723348655040340352696904303113977050826164796541819410841201572252701417284016963141362152529357135325603586852629676449706719578555127142556306395552259002768908852039233393021740166430716561127829758179239753879917554184334283372569109376821008192122171053284282375068190786261789652436297924646822698983092130485448411579572239677513841556255438668295660600005798695197928496502246653953208979121108772753445162362517103546057502701393849108009777720280971864631959572559331031482093445077723718551074619342418866331535775816544023404053041311909700099951853288272606665629890137760478912559633942677125538588088866523450693334390892393651735512503872892712969665631262263509579653501856095198850989347353598092929743481618631954217876251209502109435070295276058740885990597238194723181326395732607857248091494853129922124162360833653390579480966947954560901626555551054478028982015825909718771556194294828440083171340422967574717508362634816229543308062663928451596732211280442406718991272424349137618672556580804274448072741343718451181763737813864252448940576607792923342536435756799054359868261418505984074300409726543502634816117378993064394437680846141664696941307498348071709040777487024006090439888516905283526973176742104767604427111814821389654843865156082140518491262778651187746458918922646428549587554097124635755473948845335556618616677915265624165035640030316888504146367521686751467420267680791642690014066733733107042777731635699484905657560209268656377095137704865010975002531779597193101175316893621987343033762539017109375319015877528949683328959673232332949473256480504719146064261243766419375041033462151298360441844496451783284239472969071365787906415477243735415849915120721215565840946053674953013874053958206741031636070979063793764036021193136965076255215876275754208449572507145375744639475054474829880829966133943321552473173370429816876877570307914232148347667840328696230462483238378880606911081759097657505572866575796617396164077499330623675124768873898462316512439899020040803198119530207713056323129471470881529714946388866987239666236322768662687184316009762628355508836520270879437295878421760913795357435260289741430174445334970572439309917657284800889534421433598267035429623526038983899852079923085608759839232230222693402533916688179236527537114007480484568305049070181543460924083418264238342606203920764577451658492375686102667801980984997415475278663826664933105984073868820110406517215155212891796595196582794890195469595809966981500533324713186650063874389630756527404822813686191540135721169703337309953658610126974545242563960605506549348448742045077827375178917889443083348133376528724859549461362205040700287546759974805090598442703062732228206289264163443585551926096358967150380251132632852776367358487848478646825570072257838346425670726495793343873916302227146517996037819269809304644266056510477416677854540566927349451472148091767480891419974948826998931993299696716675809427852054218555469726810616510635427821808895522806827383063931643997247826869289674762605101972659098577523283356200902254030368848504987298462706007653992238984151679246862449184896402235575029657856851810263444504421405155022712075382670810533265587206208452152023530387341365288756834548621364445893141464457840305587709058690496131102129052027224584851677380424414819638197232375506911912684556586344478749372773806264359265562392120025628945423043042179099653626862549443210628416261464815269079675272734343975371042544749569008442994699635111426315049588443426296352574021818211339588006251082038358969523639749112019718352372664953737562429973277969005611421655158915672284552898225588934992921533224286972854045686231559890655115407534838481432309402451089597885585957600119249645980309454435619354990798795827167571712770801372938592916577244117877506625770236614319304063398023107178965364063885361503414355959174149589487848516711604248820082538329678616170620357986349258631358494987558996894661051793457242858231399166924501457804451268406769175955311305479947165961297887293301586863858992703980764502947151385567970697160138558072775761929781246654628494519855593221170243100461854088696595383879052271699885813203655622012410827427949395987512272664275625623313852198514425058008980270867746608557636850650442611261045213469483775872310128612252757820302154772808056104030679425440952400484685787559439749790182107067208546441576666805116577170637410577281784548605848549809744716203703208434985161479342689233284848517597477086537786476754589103897983985607582843697034009862120179240096665126159766301559634285497165079493171222780615989012930641310630204190867162377504706116248460245971221406428219497979010968181297130112299062473122617953086101378970044255758062489960740977275267934544222208521531329733442312661916985553712472525890322972066760047665905044470641012398375242239015263413621645026710860010627990387413004955242717040074844263955850930916238375087433077536470483926673837080232074693195503624307756130538599189636007705092868880322540915445234723400115608447715800943633779829090568025259164046077036181418230756338015992517822855242015445057104815256498859277921006611518810656134932603569117572874300751252879931202777086772293119740770131522924896271550553719863293867339991044864435554725950399202536307716604558635721860271121643404720591306650026975483937653654357722475287715679447096311333051164893112804805143173879126485786043018337767967959305620582524514851517550013353983017219768760363479603641366794262793262371343875083179694888196019463623035008261084571619867898531180139072073177779849733714689200885677927779760582605779277244250287210057243996349065751691449482039806427883291378613061401568112726500348677391694089653076224062519076779757575276781039266080159482902996256717081905346301681586401841147345229434314275518299031670521404762109700036383802032213820697084702114930141424102998511214957699854768840604721667375443403280667370801537078567068134175908511162858566307491961186020833103043508672740714774225995083430589292953852484423104715017566722728871983317414431779286219495635231223025883125516221171353454573212151190735426315349656062167334687682751603468779498355871810124753651971252987494984197145199187076942296956552796026722454041222721374057840364462195653156104735770903474032740959796808417888598829423349246330956770797694580136520663747303691207540553235200196039966736470059517806211538945533548104938998474497206190261703716122588774037146772906231900986934478085918813834550184571127803296634201848241315170712151327711971697473813903098487793824771326143216572057509621898579007825116640841580300920378574082673783552045115227907327766448664827830352701820571555938697542717146794057742185150163300072988136095898485516222400838281212452711108358487849862316236455808742450254687709293085884981747876390177119663320811562117423454077950118298956993289480387646467220305061099870708722647754616086197620219974186891529963284226337526499796996721343333272957106359947266174748244467866815143969552925716411688724122094282218921793733237046863231092737987088160795584621753616476068287649708315353291006812707071847962236822675230966568684276041833951572478455324432080159444198705530822101645035291739500135910000832801766702410252023658854092714863564608327531077670865723146363110008246878905025846701962203870722902983066921067547537736946221080138612116310216305799976625826817955755720771807588646433980819482449023785831244970195253505042190126523953484093372793192883122785561711554898826725374256350823059286183070548130290107255533996443585877674488379593146213521899477935633827812587524903052347277996023407033467860117645720796424130212484521661584633059904957274230135840073963930480306264335035835519709327088079822585468197158729924501957999208821629876808540549578853190238107482611473901700613313069630409866255078975816803455376969480299960556674617551289467741875000176788085114027603182722735571639578152272456455335923721054563094741580717326356357238283949913505600916381388431086037613140232064910518808153708460323283779381571142297620843912911339681960479837053339133730474357994530767613701729690197747520027183229642280597864686530699698703802475644879560989036247953261206798776106313225461490708128203469818033434390769388349970066905679241514407061412863516935166454567172928189304288491726005654164496700119081243765121828544601154631801586695984142928218710529782248101432298117188274374870414153065706821503426752649978462854313133272189953568892388226625495591360983938023851115311328057690476847961626101955686544970371478381079771736478383910924378632646467854601501988699488707841507214924771590828268865570493836907240164854807393359750093376532761468196668835878919197737066494955161254795693408828876705642416958406272517212931787640402141521149515801200744738362717197640556354775295682034780465550468985903379308273705449164324505438863754290674574191882803018205188749672698503459272661249858929909472039835146554448485904692232636640062189545257846926675594851310750674997532097095984604395554794594989925556658936439014584694702887917481703925302410827974042225081619219143130801594942364788124374641760723852571937818903754787056623222264446633337755858291637629121809380681297336946356240359757216697015205014583356218551195200852508068003708634475946523617106932437660788441250017068802045388111248792817590723070903675807046921059888943185005572937116541790604216946354586142525755727656493032389197937422538784096856619500404791390222285452241610096280029318160217907113860971154349544955899985435176507191822622167779872877705522743465228377109965787904784836401744726048065019162369034392677958652804721210863135239852802524627370552242654032269975153539180534576881221570740444925972813943678734800081925663530073734768384614677902740101292330757680765227699170294919643119083228661626581275667926868655901736797842638198423557555901230913030320907097401901205975963490744827913216787645206972196796078031140951617457052960712414014772157672579323314975181379313077891516393242031762727985174219427713282498209134486339927832108706709399105861257914664797593023209449149178516811730917214122400093787710193832969293906668883234457540959188571160652320179689510323534600503766950662272474256137567927555857530481639853527085686661547607837542420341900035244914164101749786472823713173910434494472931654594276762394138843220222620964378580911046331163159583422531777912452778703277686840504919559583635414223544292308310173118016755717694760901777321905170824464423449379175771333970870207603296299698795470371287075246069613374671107499532107798349973789943732710897581144341292167027789659273101438675024235677857753655517444086913130674489601345290687981975463273824660975438660902350163600571891141705526928667771766230115395411023936023936173295236175203233022176540761344953253595923418523008450757201453553951698592410050883618327937275717319583797925638929682022655284962022327365494107094548233493180097225428019817592774982192149395125466510189416793676563160022872155260516029778635026942646782487253632123132163115949633367447870600379781513476712158658620603516758506340297187109677358739708071849529974077985156880471079100347786253392302700007171807120637286045227692456402108132593396864797848969867453927622751076717165110775916729413412893198054401321650641734896407320501374738542807812353515567139596210538541031897183449581360115470748035893618771337632999190637763178635040571512510267497218274649036922291543775723038161370165927445528856060125199138377097674033681038372940855356480453369997656218944224507370662868736271456978774505210930815516360549884107326678930450391720814260798132707657939145260373378467641359902090237884285051330702399676228452232795101685156385668589846411209796475349665930046793279097437819522944354591462130106411646852798189904065062328747338570107079558375796888972711950622960679866481515121954269922516457615066151615722736860417544573548037001229362203437239434313105864246894914496173148445596129191806172646005432147440774639120850311913805170096700142828520060663989620617118039393566752099632298711144750873286571173032540004183324912772828605213477830083933718025242235088427367377544214770604583383802003879465722536528067466275362820081961786248147389613459862580656538224002534351771265383111787654908007367318543780112468016414362652039204782273058427598729990232888136069609329533500819100956611387783140510912721700318592259559643603122189873961750859541153120657373522722839957220088852466325788398823849378516336640334768757415571685250642486927239455273550706113680859129911661616774921258038168903335540341296659282472636283522042131550612535863704760347797921440915261025875084095660083838818786641341144231889241506253074975457723356204472206213329787391829500600596697314889062198019864810096919358414844974959091681434754349509071556833563673219469108167276322889328581498886189670718803818323331134150131154308012098565115406374349735475780067338962283465585334276529725428305811624570025121435860733402340209535254219397906874661613504022982930734965300634338465394929313221731978622203123172160033084578467484799071884508984467530351095543235341927445720992155022331616857029679057921413438060336146636321831950928922990784432869748490987832314613785383402286292992733007109037453770243889832945093820854308000199657604813018743522645980273309931879467247792741707304340738259366972582348182898567229409130001160807057939159497589074585528243814869613001735377507961543670271174371718910148158897507055006249789004556563788002273470153262275747979550113562186456188896273059028551940894780632351182211997787465922729846988784753704551937332966625686987547506863864102853813232666449769264713734179075561054942761337601298532716098904465136095835570171924773333082707231247707725810449636634655075041089702115940542616780174653283316116214470097847536980798724860719913130817324400907415583483227050360113807573610699032683860674848734449252533028589695880978787529392966092688428469675269433468472856182774058129790128471297651905055792003760983620596798256566596620045434016207695279863636517689516176375337785120569398255033350441690363313431711961298390158358968198194380639566639091819501379208341924100232445571213702279582439706977983301890273738625412413069580955592696982443660266986008459077980919435210488839127231486568059934531430427339637426037833897103655820884453798888934857328121930552604116247077712752552426830880248645772680198630364916493344165143751428653321825955845400404768141352154370431488900354437732324782815231364960378095196640485250892472513427383195497907252131324977171439762280639659110215946320858434919627986699813166515832467408429391053803966705679865396196072472456666350154006383563693031680084093490131352683972362561399493938733498894181147774849205487395048110826494534354739611348705470059547040598872103814100409092843993175062800066615044854889379777464731698877188043276633774074144473946070230555423722739263196967856708193113056753636149776379769357425189900967172765321186021235049334851331195078992155891584166759599638205514118059479492148227825192562411152915519848386259136042633439397823384105417706235135341402646514855984604097869498531036189855940460694635451236326232315972835049862054625014123775665863938278323778030385719532287789084610834891122889577685901249322894530093618334637637423340398934845609584667005766830995951239257569003920613780484793550518344709220531275339010850599209241916119137575007612386992080753048796319322227141201467475402090551412800299219378661489617595420982466276764130114178477587058661040584143019434390699507372081311308527856583241631248374388023471021014309349405212625689681615874426649499207376688890986678775485550975668392609899949305300883611266521683186186406760305507701278234836452381036397492647542513545647393955096121145429207748531902060911624982536125414099255209090010213196948153653376157333253440700459529653713533240473347696242163695627060814531916745387520200984555474638984649031678499630706093904964015521996582994365131026081938060056961910486539978157658743335382976919068161333147258025062737636568174866445538287190929364663050904125619973042164263037348929481707843675494429024464837623710906107089479007647766283045326531811257884478164375192862270848874070565366841068472341921505538286893931165370763078649228560576362646367444380366322000483778979364451997748594526547967803467964031730426406385706616457089984495427842752632370781090759277261142014652043713040783659851642658643506908867722294495526203480850627214332679829294599092157944169182272757158343797285803465409447391428277920232775313889879179320942853161208902118399573160228604285533470715249443675547145661033333108821942915479625051874523182330166495424390131218655593415750301161254030214192426147380568837908313998122495060192967575857558232372752615968875935148335598135039465647934429313446341373528507647460128326933408660126786804844430394617358070862578974977061135552933593392078532215472437221005842262425376866488396912544114379000362542831310544368668087935666055973391747555464686678429575457689375982457500176580601549628424737912132824611127809970748547185095429802545498888293173423494803438055792352356973588397653345913254694779121844194715124262095984190405208477782080591787688896460113660955642328873697966451337637301173534869741163337300862783012290557664344326166055811305131628848404972653770208736999563366116862976573573950026830306811429076542422723801638182714883310547520903937972508885756931626330223888592584332421793875508248678853768118223819356348015229973755098437097510241714890414619331255645161603763474987719542814255286662400747758751997604650294476465065291835637250392869147002486653680513184543014084303743022662498642878486792198241057039054689630473233977487972769834336475153586935304204326384777464848163591349232071888086192170163825225089610501368501748796884497084930184418484009960618999543615867664037473200095479995662157326513741470689429551176333970264795911495620811439709061734329769882511670057912570543002989188911973078614322069994744294321711508692077503736952808349033897826239003896510294042073861515614862585723857533928634906189243250118565693443195077892100040806956954696837235685378685343813012252449197693717478586124373161137806604542263945417938140669492032944684744347131727768855560781020254483251000635560220105503197621139173008228783852575648553484828256362939766928408947347836661006531120872314002248564363332912595995337704983472870566535652273061700915181715875679427186099636071804902638034050558809036056536335084959757563726325209053975634375963859121721863609744930314517149974061495879195988718878886709683926226868649842176534238724091975682118948417532250302874724305783149067259685698637343144463156081411657390893725570642023563252715056599671793205981879534560113133873054437616272842547624328541538026766534065060102136394399955665302379262038576858458980926170549205670801711908940907311133746569384434634956664599931433963906646895632709871987338600228246278716866544555373157383259390004543986946718702218481258073622512828466096499470739329716728611867867596513902720027986455504638216221499605495182286175304967113938381100786178042352186760341640903302630179431472192641291826807743788175343702209650095610765085258092911168764360295413351288073764717990945936568433477459862039374428327746500413722787069894099591383117705719785613854692560942814036470058519150042462333778133086878027940810677579926501225861413949448416870454267683052039539856172205930984242086386303535270546791827658363587940945377899577789950476147010416649200533287526662889825293651476530123259597896157622282507378503616443264025335271430236176402333680283661983122435382991534812744371239900581934451518407855714483588984009222956881625268051461063215184174475768022561501427305949358686527153311010185730061279856826868205379265854628748273782162668748827121545091320027556051512162836676078821727179256703947035525879409528145837735227929811328505268428414178653495341256529067395934098877227996829772608903163064428634375859782620354062615732307768117038017437317170280201358453023020728127081234230805875092127401549649890064116870078497661989281604175066879222634276550217538230634205135421617426304153307869379614648606709118630237789211678954837564818504838946797737280683792588294443124817083266765851339713826210160116808104090683956752056066078562467064848883855708399898254693258672948496830644051867238250120709637324662399564705089665765225088949470781122109261562074098321831069722667474225418881538792240208285471726266055226067834040977614027987905350242545842448595290694679874023669734610132320880547720295947624034853398600134664316959373148112819115397695703893967199276602668607206236815651945023950090397083450131153803013361996433543272485881987493041917768233676722631296834411721642982258739489978864690867705273972281234142403821380422968137660791553723643466038952373068531393285387858205529427919026904956421864903024086595730350594384604116119911155386000778838023798801139869627505936059164343333407821493797331035972244083487459379488157534212685224712081142631359368792026293434471702589404394554786325658850326250474359135172803365701494355404994158434280789485342781000465506420790928849810119855663962785283925775821922204508836919537975023389425831909386563807458956943505047749228224309677982670557648263882057769168045670601754285420265074786095037467910930742102313447614817914802825034166380457263354489894771072271556594343761366952023785430064602283846303954748535558959223784211722642530643207843051156719897994708594428591514955640379256857559106977481607965056187258221114850935658634993105773320582537950223579362673501295629315992188784292756363342103865673205353247490962514046291821649070989885808562588065098472259468883188769989708459183228671827876586823629480087216530170953057863110763859491774406176737643275933749710147181749980088626506606938677010334772689545102486782536727901461455925648841385895409189521430173520329022068656826623742498592279084104064643544388249489822392084047602580074223528514999255651029210819297868661954614387531715961442264386402937481090182180236253148648834993975231143999137418685104645263707908499479055108683614260969402572470179270858757662939700685208698052235870356818096682113546637674556097584755827294999801195439093261526395153717155458152907658394221159534135565489170075952592564797559042167930746014827935945856019434558661608354916786464559830066565596362542862329322093376586547622924828386216847488424946104673590153448232430650680956991690458661591775956442201840430585588871456074243152961589389587834370536701475206676148092365665304076834905353932603119504437476374106135344327318225398907266766183683574473868599722477186944111787523285075964027583488130961106688291108171274426916917315160169898421280236936925108623921518779986591621044852692397049369160879581150414367434879128843427620387696118839568349609802697925770805820746022250981692343375608508759500385163723188682966225313451482333426339459587732229824388188580140223590337764505914970669661508382071994063799991413772467323256825820908455629775273632494850000363698656355911537604517765761962636168157411598218265340591800686627665461134549284492821802680311533085382689071465684923498793460196142825329862904069228180432753084377420496889165169227357814531835307947505498264792027888066005460374806022013675517026443546026074571912609063392881442137313461513298704678774975863857308586813216346860141943586307566568014517324333803645268174518263815699131777427286000883369954663405223287918868496005159061026023213342962021872905573169832938098946002284136070476866516226746914050597986043662309827176163583772306799408359678798660006392803840287103997729476039868253873053871152700374664229955230111838175177495760919561024896321259094353275601518109148375343850690655783350466778546024920369008810962516234774283662568021292428324651049966538483940317718612353832061620739819905653126190464173382195818130428123583880824294557777550259184970837045321608482683316716037816422774141811181476741429068252332923898207983572824949194191885538764046050397522638462167519444578219932302329854742042596341515198755679707809225042149523719367547045090519619714542606678761371014349087699525731739095963735888207690113879333248169204946559289860196674237418646249196755226029281086434052993945597622829328000565793168939986340956745599182141147602129833829122344360908038504758851242845596659948429560575028390286136047803452314864120011080839466277851958581223894271756195591972316599380063658197118996710676257853098974823306966008527854737452945804582055846328865884005608194165764609890322863538951099895617550732116613443571635155546111380545391811250682902832027062644873997178945524018221783108301508524835993529746401687268943352612108021758349826176677345670597465500868557460110790456950558024903730077972820030171587280269555393971907176838875512466740054903377163589420852306111753343166639774648615713286263121090387382245138574638488704452907274883106412345643150985281779985756920654427069243515316104906111835304580626914581081530336974740457448137261565017431198953527863592372699602276726855526632383639463752039311632680724602533866779860544887240087408340664743937956155435545120271955057591759840681191421991631196772421954881898362064823795631235182954405978021435447430955878868491224420559630186026625470278805192392878614514733953961061052333549651233202421057842340568422391613602663815444621327793559968400549868257786711210518811850286306225075252326285247310742771691597534532277430785274761506965777308586266011524100606183676733231183336217467500662992819526182148895851006041914835507941866044021725570309043700049626225932243543808340067965807356435566871043677168150990387357918125322432482138501656837122277122794413746986301289927488280404185506167295978810881579372877593452106890939599362325812963303448049766136203173730498009960149190139295592964396461437566636664182209004983418942905304056455374030249834453857139224357116116373391762143081681095927098024875285957689226648943860842730116571139571431327866680583833018445343305593449981048511463165178925417166690806231439534103507832932115273412479602684892846214045080957026034213425381805849056774994132906112735724892450588240198366775186984555060528671697012444556323817299398937005044472699533199468790409207642547833916071394004478023593395881135710777498870369300491037993646399409557037471136919475903756775265047820544073759070149342498125993818668202467082858265436251307603345863656980369990047860663767882319405911853254485025755884310275878710853237318024640194295008588017345689759552103174367480605903910120973386211931253166817011183893217945004803460542479087710571892819711193130301595490697044681411838491156711967224830577272930466356032173640454986989321603960348970487091580290882341616522836584460157023919713835572852766537619088725370859535733366093439359054059673274459136827282770344464798045268320577907021196247633697768486221860611789474771363870563901525428271376547827842175845945519423715622932885145302980552015610869549685447818932112000641055001021703231161771021778077802631033641119220858112621499656423778905891273155258643468700275120307356263488022085741964834476488535470718864965712538768653306111582257635487470507683837991390900224139643056440219570932983386778150732387623358292465063405076258502706643408240251900597277863452115092136972511662245429374702931691730922147804765579845166375193831344553270827878337577897473911270195024438484755521884108660044427652298710121632111108233419676011190538627210544582227150966301528389033617647258468016815123836617232811723804271421894871952385688806435688902481467507289472029540548130796528103775077977051288970098214517221600357756533201952321372458612077133565006844842251828897805615710336430167361720142568588303337618594498065950364721427337456384931201437057670870941958597843915353739864912992420777354502056760483952889555710426452154714928688011557808097105697461923236713064536559433381108079448428088277977518949621693744468106085133610452264346244312480894339271368189898952870962143749884041345272099459332750091804075308124795035595880821483787053360971875872334386672298459382855850399776809682141095802199991237748708223235433950035261707693958993500259333521423758602239285313825648604567091840581735526646269192216997949846671860334821364721041050378974007563989142226427498362356174873812841131301535402126191090300700913682385747441371619652455262295144309430899821640759511232522788275761635695212110714238384439562265172447710375531386634521169671550257994410799633649242727263094996493959737412467532224933181741904027046184358596233274958423386811093882515098607067880578948516927367973301984770213978540283700998454893735763885491288675274579526283014800172697887410285076237302687346448432783819024731946834583098933738171994935140069614738403645702051153102255817061002004096114664670453905286925226626960203407814876686652793803690334483229409924482342995928008761858422497854720380928560973932508982755654699748704391491140147907148152961200357864280962694404219900234577176388230409512191865573469485654988305002887267710106127922509474911054502193807530207406982910638949549949616569035375353837310224009136626276481011713492463156967238199994561401847426033385395078704513604302905827985542546943841798964527732492718169875189581474572319489142962310981224822252806818976243077964119677086565444046677729547629085125063006313385295624937555632775169866586476221341232887510986582978194910423927367295673140201548787839508154224130981445292242174424962345802047206331916754620460609778131289055420559779464976306511616604353276718466586364366399947239294096909526686537365515075257071926899059999240931607834296379805280653520540893237489577850178448830671366379204358521400974157309392706957308355574040009758551724110978813812016619080920170875443891388979072097202889610914723874776242017064607913093183145011415955666675265322470619958821837157085121111667106921611468287417182777170222970188752796303225757389037327917169085628037618257483415360225738439131654608561583952452329763682647979366225725468293339580617533649353355648309062063599652780768679267877778457575949013540244400899687047773869402546184658384876794878331181256840953098215810451819886530240911303887319462765582298942391329387775954371278657981559412460738015079458210740026288550499196742321523375463345001169394849591991118601719424521846707528186208805617896011272977180064346451642705034592815437161429492234865815954507430283992643114632374067433683652604214464246483512125410914408879814991701418674405399954492148893248767129597113839901400213940102504508400109659145054168439620713355402114182569168301794741629683169473881378537110172780682785895223911295445729501342500597822711076068853410841403543983363388866229412034154470924854295862230887264481781455380666584926361818624980748069081153908156472168413001085706177014746520312857449994924712473714872886666608014064895504884719959068050717469866058833036276754033799377427897026185753704770160652661226890294665463936364543062892559241430837554940524449361190464154416970553027184382085301516983548493224714613057629186110553880305161355194242916272701235182083572488340068820308596119047792970439381216635065578003678007581774705145015194300804027622363387198679514358506827683895461730267403582260802758312043231199031228976263573345251929303533315278647646900497199470116120861447413447484971666466728175808315910337893861947495992395840539669400974922622478358076270176352447055767660943974599272088242511967951649063018998292577467658545163004582686913103957868175652134675920319742921273415501092359939898852292455859388051793129100987233591605639036984583748102766108721662769882591441866061929432844107756201501848225680284681904998288686585119991992762690942959782098319291813876803693246581533459084286584423752937878481130573685313204229741544555226026538492755012809119068416642149763571353219097838748092693079636125912980856827174827482742088370292671417312644571710142215587730224466572069505125641661344435593760468873006129673724762141057496849036645620524724357996128578727814706954915473153499459945889558923083119848727500751571224604807481580527148544743675963398886473726560955405615010890185731688972280565441299184937944520024648320682617836022750492304842901750433887210327840952958584679537015656185832461050955726660832600507670524355739291676301696295918019194318876521248750959911212978945280071832128061606174057942646461281048530890498987765266075866936092255197103691765147423163079980136327247523158412971900798681308460014375217320181852453828505538564141482062687067989925056533061198002783424685591708120630807976190969088360854923733211123266060264808107689382047348444529611199273044854522106492932322663585304617050906271935403142998594710837682994847910570038015568392252637313716075079649481214979264852832994649530280996918598721694279383462794226994244340872979836544525746673856742874861455012484432982574455859542972942291818526179056928838695657151350983431260911635640208136386734861158672961409364200111924783749615067546388191571230172892247112731082412939000083043891415694373342758537927240155327835971462841993678482953353277131453656329818274651841361650635107787858648787048995750070348169262822604275495271385080616273329174543922462638599663055700758732454858468909362591784003271773416811348225512720610506736493784781024440703981207802228925648080060218608243283504477105633528080794546763155013895424761184868773429619520528584679424478969390866875400583381897507027064677681596460305339314478022529146398377605585084688284388184112206174761836198682959568385474090671460451495947787053012025601857821563753830603149827264556727700227322471729784235081917617511185254311342717681446094793382551378248409145686906011295611122530611854925285375813292778520330248880518655787350529567084743546797272860961460899353758093582777239809162913751805502847442899152511634679753307017703714600835520179049466264166016948856928746240531803519998622033323481580694177875298601945436697437304746656248747685098420363344516309243067607903424348255596606683016977563236288206946072760156901691440164527503291056000232215326897843733085694679387703838031496780141543967534188972629024123987827945616494900489872287567049243439833607599410976567398671767328658537256724070113477033738145621622125603243977499916362881440877331060583280715134359090786657833954824997399119359261466203919413547254247534748952408197544777842969037162528100934225669694355340778579654398974540137259903514576866698761495957097122199379769826325914019573229403267838018756538992165479492973753638440888729822630624927391462598690230973843552231327068902059442412642158079478722074704728379133655275307822609684866493801689259223385682954301396022107170542866123209621360618319070193292839074013295767679806806379584765083362040606238648240194035279445910395789888259180291847152556411813641330555477948116598916766775420942001185921711909526274291387853032777458374317323507662072757661195381856928451270075004406951323755086649143286532993752032325797139287455269854616583757131974091105013956061399489911233692062126773163251692502978484890617937363153332465242556853459349070201714575282694846785566291638782233417352888779369139067384599424948776425129129205506243207733762584993407152528439216567837046684124872823538321850508648067034945432276139531495084059657105055055118450068624852051545206590022834924640005341307634843427348703824132864170731593458328937379841962601608363707054200343533024621974583126353942521934469000034483110085083555314322320578523301977192234459084231105521265420977615104776396698243655736192980663746853653832566753709741747771105428750346301527055071483083356433116028491479431831179428126579289057112505619450601789407483368602474640795791060269719570773229193408050760531744984759043439906833099066595905288967158404448008921059638776462861604633088765673036684084055784865843795160933738807939999031753887115106460013412987523736435744917808921309030129670058807084180823766684391366517194712190851984771948503704943555802750420966031021308758289998230884923902583742779872445104703923527940097535847626859082812965372537424002288730571614308287906908367537706804760975738367534812715327165745261736584408858346618167725879720215215705253523646977900664998292609050892076607403024014714594778804038142118813930341260517391826808894808844140739128217767239195271865495687106704213415696578174425485361057942082704789916101167558353801595243641482666428135648678445224965509819724461701675832509275045537393842083869140650970149608390292683160426212472500651450710488161300582401135386819670075376485153562269022040425663708941360603427422808229417216888767519467851853091219833057952981389449014574215419042310408613602934557830058945059433311783035409685503649381537699525806365978880546405369993656934697631875928085541173397798273767210085732184526115327746011231452773087745600526826142167929645861274795865621142661367186900954003012919379356088797498628145623947018268203410434395007908097876449385309775560830362742481287040112195753551727501027222242465377791054422323245851382075405781239458531155392933822477483276292333044598236891111751323699890552810660589054558680786908499605405128416036236534633195158898254917089933453186417317330897826876161336449479144335629280123120801278759158566437476637264769612614843466595152384717162381379192731052835540146073080252511287984580868794739628860652406120826705730390701891945734694280834702314096648710690676488933877013072911191133623884159730073181567711249358132885450628014806300715660212269574278753796452020879670478205024913881220704831734598023307519014519510571442021302363876506339797469879656891498141132833653510816722077152429014997327177688364339412696587003459698933123054586599037733078367834861531363442097255221201309297582219728794087309275579760093820709550811304831453356378605170384994485445519444983437275585452395246083038093527022616649854593561393624516868634483458074877826981864761962708023838483401290253038386761941558119698460236233140718877603634970732161292936063841910142754229710934732903496793670135577700928514949738401117452057396872215604402875787753672941565412128610506160535407333710571599737965958024661772090696393409413207470297954770887981684545523765427656891140107833166418178415328920835933933886021757618798989003169628229917083710182884708574109481173219344041246125717537332040584216183294909164705939324374449414146556471561154796382385012276683270859828408548824897484661090766022072332300081775442962941383460575595755261569198267441085254103513902877105972041270224616370814777011646908018748897741927034194485506612780293779318381585474108419574832463921054733579800625974010572452903976956663628914409546720557353790449620073627680942833224518826457982605440777809739237884382667782368520611628684106015091212717436028255312388797377253499967387243855115504383468306407581709480762124505656547640489478382813439107979242228411449287535544752585497040556276287360749128519639085508614196689547299123428493841094553179505654360961191705835569991103201326799472181189163570381107856539311410344836906305267005131599498830740423268137569796583784339598366091846492876280996376712589261582692389133202067287931486273479514588206047155404370807946108166615621046748377714025423758485206031458199769779863270922449021771157122298257020402925887034146775783738745950868581120576891091539109054467652519009329503708662625124672561440014498536257306557055450705905412464585570110554702090142247188829141068089218077841673589112131435489605449938180041352310028215187293585561879802532588774536835244347023453536770622330101210101575442263424920473813475546340689818352055449599490618546577376733611139674887221159603502090973230880888994636631854211980632986886703700306737800268426570212264510452059558747872366723212165513558358584795576727443390730436465605561639541960775537121521551793508555095887219383477473456171113684775933891258363032995314472651634337696277464218863332232338426329737502658397838261821511622878481010671683093611512628885354456252980519079280604396746566006651811264085422549593127385217397309735227079596507744422997202995986193204871722272035622038807806170341283937625452226698318232059473348978050618940480662197829312765345413281103750890897918215289176821479870521386971155170854749027851140242985516068742079857226118591882246056296649889554488202267693475479175219976359121570003095049058942825171433552151891894102632523646676574276738542279059263739196314074363976461088852501843230696561056458283612249982842533890854435897272464937250920377771213285637732025121129513313897312871936131454259855655059098748847837807403443232842455812581161684382061694876963799973647769639037637147731861159432258612009453855693237253770898970655296473220644219988299051978212199753995705061399529426316651546145941670089666436481364052115890817375863018667476156398324676669531253580115492388851530116036875174394656785456255749697130893097098147179049839423024476914453748837690728087041822684840288877427627912221043705946396733146578414262588326765807454010303843388853046834228707438087699863401591014443389391594941233592958723648307862832280695956391551796398587536036005231254352974134802320755487984188558898163502164777094913309539050023701507215051211426343917531635801832902184321223769336336931377282515593756931558905068845162899137783911132793272403447300452790710740190815661007157304584642064255034545427848075686705234269129924912212031065628602966805582646480555226249005476535317674953140444005359336038194828999009722905066507983633894604995044114360774414615743469759541419214379576096380255758695528995166108057635712388153796634914960744347547746380748075952735861598984469208341835782981776961210090719448942675203472262332858662172141685818103592530666270898723754684405565757707657225803265002329268047998104991668045546602119198857470775190910540630909224452279410502902847533764101055160201340537390388234600832737400179789864978322594909119098326881128737339044053339334409289766287649404560266293166691468286491493675276101302129843375701173652569370785790824720412486198242383962414146950960968028085058787925859169828524781885611449388212922423589822095402957671188124882209963598297974050632792397080712569517525238326522990337860208658063513513582439946403241553814992815784539627447067711535341830426573880013001844157924653180289470141539015198970172472426566933765120886288811521227832882225319923600896007280364393043321583255374891699135292564639389927159849768772977161333110628141495220657421919254542510484111884821325481403179971083277444147884080151055652851152884166969411198175522488930512242071386542783930429062790174995748757419834333290914103297002423600783424259177272797971687852071883541222164896373988903729598994331592105743718194777713303297033753331568313170476901709027503167839250702093271089008008086943920943120581406698538669755819532790710673348798124634830750069366788887926118125183449782925098460274630565095419193610670296591843336271972962228877758300169015996504086713275181347431586694346420930106713487297051260976285015967416716716376891605171620558163121587821714189678454666757518188032286660830354798759630529354903070877577735664380043113337994201613907210283949116034931942298558914204970750924461678915761325741668885039902006625715334477750897549785363877024748692884962528839882831847263056312529015453165768536854092673827844174660305533092673893338403331035110424029611960382093084382019405950819739995573864077148177627064735901670944652008426199876430413846364771735506443305170520993710563559907305297729930335801878284487275478820546970236539381120405715879333528991759069600079739071797826729645522814858376046182403347796077972926549173922526922854435097963499059094193794360158313320405259827340463166054360786987595864651315132646126650435827302143937930375721660498361008612848807768513649013948465065443884252692345795850982894192457116660104280008964085902921719986279681980993004623761002600615911080527006873109062021812820432525165571489804211464016519992656318088388081073102354639932103529448155223207806061661687182815264460867356270259462744291129529163647883817686449415917094834907503572550299671240357477129420715539969392552750499905872686027496271101152782323541579000729986605010959533567159107461356739962172126385395811976761376335289894405004859731175079304401340787515348321050222835263844774326232052619137039379818374073625273247170760246691945111463536771670460454340460043117610462415948314938428167877415999908799780162267508028291161563602791114577737585260989566016608429356254462360377180293517257174998890119723631874083473766363037486276745391550883659491860908681364861675808186308119122708290077729060580924945033993453543846349977527365569481732576255047980823789424328806779918812716077135358050700130060067551155639821492632975847392068849018598732757737972849238866050771566863917222844780773229485715004504870556885587031891450488520414304527310914167965545804294074317285009745129994099472436001431467494564077119638864458176435518717616400501681081942879372400797197253490180610124503594532374743935362856289787630380674704478270553311369808269934624474601552928631520141231284541279298723381308185368107760551827512590509844472476135529548641394658573559671658632481236389373495511458515291772769132205883749717119238818009790179444019568934988583666188647835592447233637587102634306656849309895824489204423994724476160276333292231248344633995246346818715929038957292673305955439903943438862959242140701194394067115910791237516758010494465948066203540880779778658100165430970727996874811736177642442923915801672023801170143088127796218370787051931283344155244819022287093989515649955927434795470519350361380177105081251603108093015272606639238036067786640275836143628619048745948343312767651276424182344796969618746162661634883083934020365378077890564338258207545117706790334001094241104935184053552921153893525475607839200635498807266774955501566409744822387822654768399150269395931950809459896826239408382490746802881421334749967284553598868147871895798473451127211919368862949017597798473263153570609987587024298762496934864450968755732755839182712890281420931287227605796718007087036877675150755988847979107573081083120638046869652934631264860899289128459352301524293711981154174935861803049013413339122297463257144268214946717176765676232008095895928537801641559131102475014411668639466295597703249542854967153704773879105195385761439057614292992770761142655293665642430875811931005013170764819868935232984474251419040425895836571332844737788330850732705474636627732674532853391780780835283320209566034705726818975990103830088596393476786779607076885926928679555744793802015584318458100994159834680467978361384746472814592315511705348030931798169222477401774453912572583575624648280404546269276349775080113972121746704543101786616672531316623518187185049431840405561611415689004525878488959988477474505624710312821950585594450361462830432819022386866372427846786303227729494755851288077064989361498427845921353594942075409967630003705038145852258017869045489109425475952618900089075108758531252489187723866453486503820619903750566139027791825646064622955257500429893687226600383573577082581142210705793303073058182420595689513094777522345396271874482589248063252440091160371309412179699906819168734756942220349570743038830401167491435931674436151178661405837168495474242216117766922462750788346930493591211598726547341089672561599990007194878401927119366395925086800456203594654919437707608309283621373542412845494996336106227572450244604842572759201489203144257215973694801774288457217509569271731235454729796560622184948091191857118500341783907895148196073170259953531746176591245044004217705838730458481404157719975919606303818273215639865185203571281255988687951512496297276676066626587901811571577235657428169549256065845372969134418613804800249173690927436533229536057589857243205417055382719287212249840593313112128900217315769412608874018094221469853762352378177766029839675821699295695754519593558814319960770300509822349455891198182205915690263184900443762298961826274117163437518414096247315924367984487225012878101101788604734755812030549529809769332205438977606264148767688367955665774830927763957268852706121706482629285892115310167489247852582824124798485276339336324812741112769023564824256639437588955353885897457478362388207545511282119842261433906336032730175283743287852376256802430494900051552496042262228658066089774007756016867196039443374452519562812839902376724231747180819749233165610453829258371793539269726608448557122982254240674558795971460655168267856939290795651551858165424684458950123839412394224157841728638126052950440194972788254059303519592012004610766691292521331076464998081452724012997991617410762364541913729487572599602720636766890100316240189365935164461632605365146685460041672772581861357857775092376199725075946240896774907916938472079096030534949710287113091885744396437908136046508055632129530430660288979198777910372548306954568803341457969918880610068027848515021706758427362305742907214217856443185368593048338766257086293258434774767485087718399732634869279908300654665257318266853141675033738571090038206474332020041820052211470082355041447064430961729876616252611890019502766927237057620370359771420250630659892386646267543201127637977048190986721278588762390664658768721934256839973112891906653716498099171807081741926204643331171937603364811357073687869790557927092307280637564427736303389411092680352108961911782634237477016982472601830936068350715579059517196629717497452906689768665176897431209703039736931190766725402737092731328527172453474714752430739663214793780306338191099592188781525634358098535920240843968247511226202838389470528687492361053222549835981230738570149565232422590379993809758190736575624660172972637413242668558886268818823787299196908821841922806834927532584291471067476738737779833108320760200612971912377259508042354707965117199288194048034162568905538985607199369320097259261768147021991844057262865394453468391268882403208142171508814875725539539854750180237469684055127475648744281228359357703993549449300253629569004811162207011659866213621289972549382732408110950843371353932249281571624686068148824437723198756515079684936559559472706589142411642990343527074809232596469237418455180017927678950590199086904050649534643226388162405524038635955595594290720034590361493643140647958952742179586148381119343299145970516736276633377043910925768537583028298926274484320776022891113047738090201287141500805706547977591834390728249516262885962547553615369526207421662316572790736181572251101269594388390530731223829508441526533756427316625367209776182158784080785201736010749874532554622063225232441640753896086329633534018935940493860515135868084441443880654392097220799115691856684646141183154294716613553907045002131360003549022552250391960195024446776364860882379918834694069414760387467074507254191403398863592893116528465748463103983901038842925039677977689224431084946315631560642040279887773450866575588663396413374551074970163904882644782731984370594201553011875508050185581992704626767480721856409040720814457155813421383640377971945223896528703305055155279253792481780019440014185356457581367972799281785851676822464785589403475762028083338704162616186948350018034768717485560029813120504635531470846777120548618155175290370413567390601851450316325653394257277096987144335430756786648229720719352229824438430741602826142226206058621262156953428771589538626814066972872099544236592194627682790090521675299584740478174911123090534375036560209290395923534913139628230662982595886928902136412348977104516764289682695369390611793846188285211771966610059761975449511122909658618683244789889950542049841852599988918383533104205494856244918423066897205685047771984793955931124105199151135622159546090969383209725824956060014403300111174497378794671139802304819983300530483017826150281780725839415772125609737720166527924494792268783584368495789569912147012592974172359347639006320280219935684244956524172903294346348835826750415355256862080069063758091773946786645733397863822737234103894747794953132951336691549609008280889435335022440409938462527384283745259335727963727424884583335350325733128076237783711452893312961500977159696207777875823609976456734816287164071652621121579734491658182663206828445032181409301578435298440271487322873512914463460295470616738486186148887761076681579995491915974696527344064517705158818499960629196552212738393025585924203922921633013258588229106773412711514676480804650888599723278499032998965558761690520344131154579851336583921036935583965929830527538956844993282276057372554450223832846096054591808622073667141534864909993978284904463110095348290725777214125999366767156904608641941751424461220542954994412933558523239756300875723473984372452374839465475434360267543930490723278515096760275727134661132435543226740561182146390099739314512033227055695234450243888407869189117853559889159965820541184666475620906192272402633963418449639992193206044722464164173571132910733036251552730722818764446459713932291869325181775261150877302321761032066568040800065368824572658597817441456606638150379808322100374602671821628314929092499152590289260877045434259796277880250053023717777443439738028690465679786776257463973002734189548245495696510807138337962759536598710516173932150708827902101078185746848568672425204199985320216048874017853988301011049788741498419881748572157752226572177765976595383623361094290634604658849219669291820988953590067649280510432168486139901988929083064780688147448210887883892877653949197623421800266379349029426499500108172076722398617685576938588983015386728718465797699843971080901582295151643337565591790258837148511277370154713454940241244136480181716333741375289561219880114698164534860940644028584870986246793842050237408933651824912045252855486326590751243508888389715350553667370132757393358907950163016938999782818150824557637348800219849737047203684012896760277072656714861447901753667477935082259320566614551857905093732311133029216221910706739364968657158818118613728895208011323397665153672056703485377365493543173048734966323159867193482892066510100594464178570967003596592632175657724153439117964061301749421078696563885980241464249944592862247687016173892048705934802252192471736937495755862223535382140953417406228758871879881303464028527017633560356156915759301998768290281102766866071468687928670444892240206998475601164434730810083112929784100283677979182711702718221959902148565215372202756630826348050623899536249291211562733376935204869173274643298964564000927305755367120799998017269677031438485595763993223420320082301971533969482467106048865464956826522266578982490154755760021284082847350395389093522852142765025824369074249617589607448110820324657564189375101178197095672023466696451656152407324264038069451149585098394800125934005606202081174748864081060430826853974509954722330704797594511393849111305808027244350285303223772072705698593156508950850166327728399366938778560989495511082806211179807799282133528529560137026629981615142939173922263910764665600147200683195052397515983313236055466204194037634789860243549834757472703184051911900594758376096438905902550093890052437642939516490993405245281618777311652418796906010694337777256998055589711179964023181241321683895532018310203358326303621796877409385220304666684200842653358835417406800255119233630617246409588193937420183607918012706908549653065093626926042537121468200140162953798922384583630250176544772793451104899106407125307029129778414904739011139152676676162705469969176543732849244005428293094750439189627759991375277653065667910566534906317884488527572802500116611671882980059621848369463341667723158514130301693742250609678651454834678167566487561523435638212779955747665797724711846080349934881364460573134383146030102261367096620537305927105016945499073332851006662207747769633925371582437514426080831071787832703914148893694148159541974142328374609638242216399300912867000614341224453665434953481318315678811155876404659688773061688865021385357182569567900787943748528363249942070656718907330750199044934153689294036928646445323780170457808123314523568593639075702476545127675715322217421721414892541622697444181324382492555465696665991322370528825585324249097478930046988732838780512225170657441674511852911288664602755762386605235406424506730982082106125050848066942343165790023980475244234994004634911548734497871699173764924638030509134221773504811703216345177531083307966947938972606178895769726805380610136713877017217173663971521513609446175875427156813166205352618698339823971477926876851311310232455294520517994611881025969201584739899813704197032248067508703074244518765580729541723004528156135100266796731102147761673761332291115329986656828297915986414390069632981678369585574552959980372429091277552015856616491251233199536274938705214404289710158072180481494954919800297589022938521837432499344773074829344112461164379595295306065178154932593317832922299484119670484297661198541602199674884093407690246724825514346802873251731453863942733143721622246174292068922087554520819792009989866890464497116071482197990177643339231350234422250510269631351145415533983478854995204300164599630579789513133792735054570959220297063025980075074807716927303595225838713284103245707899975278208838872286171950882397089816230140048224820377007160443304778243886408012972139893401278069469849399130412183944910065784779948497626275760652853368788120489363309483957876436753759398378319477264311321898975351027802548413785658055438774969682326746433255984786110862348840292224992052340549401015058826662180326299404448892634497113201171996445364423822025328929963007545181337102069170540056622586596301368635523240214188907225744392001582084457796512832676007178045104379290094616539182321307646019141820853358907734300166666519417350477835666398902146597270844371045858748493739604464150103717623161094615785055024471544783941100242140596693971606496911292399340698000550347675280588783151450776433901934171898117044370303670305817788436661185243164699378168552623874087667060388255879692378294435090729677350489018812352625917766272454795799138780067318708850611605453430701736432839678101348644372587320462160612693031114081616615091871618734729248839477198430020913568447265261579215345168347142013271908882751647573821411828158328225736020350104938636586308461078212223408655578266344736688453328462972480478588965675444238557098299585555270584321425513517272378315386351865024787650797694742660946017514897247314800873224495048813778829851189267457478636294206410233880036392923280963410136415261563688889991538718137941274982908555213192836898495619336793157548784369672363916700140057938995531692150762118211009421913836492968498997124569072130695209139905332810086355900344922812018497897434348085404777726223355029886372758479003718867666888834364661363093502649072433967194680754802650170711924765200062083115914103197381801753935974086085937062525399573997593280454401840751827222835771689847306630068438975364031814133388106400952618340326866990740353808432041827877953841184481414873685653301165535654858717185183417285954286791727069545456677419080742925230655713783251423680937181594227055654015065849168696780436996207569331162345246584216895122341979061895809947376009283903691043968364934319369943334383739105994208218945875399894682586951388867841904644060644795415143553320985711653888687599393195116210311189685749428244259780694318933570411703600365246885492060857167955863584081716964616833231844917987539958652743023773620692548055258883766206821511666134043090595552390528290683385487043696814913131714427736712396416217616879327775519183855663439990470418083652627776764894396617446849129275079550776952739192848703232988733541902007078056256468607213871230766154654935050805412856510465907880435943558743200779758676740069155543057745382813104411080275920923979741898252568605631423682439523152879062026072350165410641233412845473121796997483721293449509549713291189696783734890923657505686260218737014931061324019115876623064019530216897213224398642401568108636435215109857582729718519765733025945823613434314571522451341660724345681641195482622983085396498719101897762882677722405830579465637315812836875670617034751755829280318233854200939400628432379710306441541637738247876428264143815354412921068715559201723516952570914008656664808260475583140734567660170648125436208050790862009965385108762186427756399476276570882666123011544827652185228235575841348147777998366129094608830604227562702027629809282253963427906359965789036424224455910750902228086042044190065797208899140748085009505542796546704774319181120204984033584938091832393878805642037019442909408514340228047476751705003812191507949282441343633276395049534710845001256503005316229200896277286092520715434000338306239588579640252687497288383397715069690901307131272355936922921870975509494816352077253776109890799687584672765468313944328626386189147489965799087582609270377398020810547178515146471070119136864404378064541025417579152250289410214350511055144953122028793525332974518268991249786676329921162818701125176584731417689216791151310679516251010889981870862432201635288757957348450042914564111377818733237726488163295924367487610051305213533630723026676913923914511106081887372406573625272144393913422422476500025158203120883745139580600577970398910762463124333621083661468133979022703247079161963133459960430257384791132117450964982405056782992690532471079906894176307171088162283893726743650141679468126916705195382004621435476587174249464149388932607798451226102658667991424777267793294973122774874569391309678570712328282326109805193332293347395980050933624509117708030268742732821800097980406663329022436920798028898269423250445867400474396454382938113353862096249498464836261735269316623605841580684246825222083644073253400514662650211382821838450727632136407059659960101752152556279254077136389648995590938415022685241477692743552235619097204248155977556219458908316172080273049716781046003257298041128694751118505076211036850328480235814310045483958883415865378572769719904936534813093807169817448382456708727748442810042827354668926087933896274794375225908961281581971208180740908407474977003476553814399437242682251065858679160064009383669513540760209575035746831692324605795169808338747888803028881700867037179690714720197190429565313949314100159341278319717185696865627324554377881575670975775075151643755626440896306681049396254967232950395137542398712351247025440573827181605502426004060026301934325656292307052616370326905630459080890155623556846592905746241037299569483242875825644645084221977588891773445874963508772688484347179397921245116642087145943074896045470172686327863408877816424081093630509870479586569893906024077781440278216513287438623810824673610527564475520557339286165571313029799074389722103085160952823645573799285324119420448219090555106171584205332940969716858024358787413588749738318125696772249528344075383304104685738720082026351633136637989516705845866765912436849656254430380168624459178730047808076501738864131609662471072734338237460237587438534636896966504091751297982842656163224749648379560192277993627397302513938514053638169783817640972247682368614488533191383639453915926186917428473479816644522873499478005050329851842874631372711604027000360791371035986401535124311596139817874397817735468972756948510242497756432274173983685133786469558893162752217408651087136497973187635855094933928875330193186229361034979218766246191678043529147100763725203496346803877864625302453379817303002061155043561247342394309606248544871541819615976286534042871347078187189330336518042359502686507441365830538675568822811903917820927737320085540590253308867086450233663598597872437307843141692670907259786656496874855946225883979636252236720702224963129777634727982135365456284728248308535085651430997710263915885372694771035103542329169814293873415168921331232856453224564428630677157750373745397732935430143034411660890260297991700999626593597885447044875092238186285393557839486394968514220174163115584835595983608883262702695876191263004133342291414114068120886792667773936651929190589950500017221674963139974549742003003132360730025358933239514925426773881639114973970886081741532169502653581320500445796826497906219094051510344413637994418750404795521091887229533778114176272496746068406411994036182551017881762159397366006685403132048896523445239506784267425884123933375747409712659546813728504933094972634731064493844617432423850781006481087894265557441645634788229709654523180379261204051209334633513945949124538275674632077633519765938688008996334751870107517122801085148907799550693621829285746281296658547347951090624732894766599146031881655371498791685615719040801137252587824922124959489284370997515055306293198921860511147255484007992484338414036743501047996413889708528490420027295093333045903727397446856072434638749878479739302913056639626241524548281622562168781236356275901963026156831426079458637512443834714794384198315066972631022505253207506904882969160939498541883668738202395988949408723416613254162575314775679207448287534140954670964801934194089577596862888907420143147736427870227517886256455256057075803689593120419083108332648498430941463635587081859094434190580065485607568490766088618400292688452948447838678455104464977016631174516059582176688417401498600236184000977473684453508331612809436010026610218080403796586566508364892270213895691813811127454268085157589910815257353065733316675669364082656883909429244241045327982346964487356161387591117654673505464236933998679881787007945807517798670586828842447263292231843472858553437915674295194473648263017472434681489123019371322914283083038882684973366878435831946089434118764849945435651974752627426952058695415322905690947529015332020785267163189107332843307212055031815944039042086377976330396678569300811095342298744056740176138176651081866396702079642138835580520066712818878306880754549739095906934316134734479767905103705318361017474247360155292203972717572806712326374853363993331551155592779718966750247904225319347656294919901837085618686655895983683720476642506908457357941523896022973885901060420696979034846894534612696495426534255137164587739467608218585377480608619593608349612804955813534521450300120618030065766059704392124948821790627021076725793127845226853013003606407769057946296793925555004371678829774664864173318230679451355330364324968738197839324902350369189410932789549101408080521606156915779958127699760357747065126046741068774823311095339730827398587815703577194745544374107854885757072468413753038851602527518762558252168937288591109913399402186113202750501991441381272627587450559391254503662182316234357884713427339617815583422217119158164655917586818307935538833289834739991484525622686064574361832339180266182140047164361028404088822342993677864925631729613380989206651252086892820764096899838958483717089830571399410156068713858317573706355181206987877664602096754501503161129728966420169124025527588571035080879452129441672247896100408406585209710055537779540387560893831872845725024879850591821680243947941408129716326906366562078732236614197684442618846114209222759340805464981142772736547844090129766081110172202321772508440360332597536664214502812708339460912784352948004616445754156982207268156099194396248636652398553893477548494600288691986173043464834962778661981695945225061790202437425123296868351533644949946680059334829403500941797416726080968341880916790032713502027472079853421179597173913940925456583246623222642350357668205978616169032442276577231018769111274460355517695999303550560065380789417303644159844079820411354437293433919204609276319644893993360607272724225679855551321616923631419712366842423275499029493048993849731940735877795739412158122363773121038853817542766047134163159221280612256572749143285939221740933364198773638743309822402534232753183299494115019327223750704175715662167566590251393865264006900341930267017948351875148086909760519450540646352612956757446217811004037495287251445577862105594281594548339917027425918114492219448954882087382949265761006113263917129102990362930601029193264577167340192848352677642515932386500260679436944565920523424157523716267139940618887663742784945285675395511083414878469997359609328360846711966433829345192207351704873142509101267254773234280387454887666718781229018324067892000529092939676277516769280780234657063663954054745555517104281782113638928957140082580612303865330138057508550688823493805761147185830598888387911214596684315392242116128655684510021841331090271871344471015976996111292134040146098729734456059498053137483551810107810130046583492967979385495940388108808434915483915625832106244771381332348635263684705563902727365603524090458857630368820363522462148070302785569818566842111368696451982722763890815398647034040034953902859370328812064765336977423425618291461946839072855327484088336507466903456796747704822892920337077819101229516238202419278731602892217757124339249445661882435109531835035936712106304854996878232250982043399918747350544502346761180668337391528471873756120998332026251813152007773267913071384898055688679713634897393856784928151762268213919995662099427171686474031063614918220740981730738932056819172113489590286688882925065603950585507095218757787926731233520442538042422224692053381967623190659232323750968586215271195043162167233791267520254502128111628108378921508078216796859527820708271943155273431803668617892165856649460800386501659805380555548984565959795577721605325914522168063280629016066781447176626828532565707437289624534850633571837304261435376350849918563581297365837761392150566478049209286121258258306131851014567538847093644576471673427593604352265966499788256913952304631610648462612424775664610923590381803017716637402606588176088886198527907886848603552600412792245913769667762047529548329658588177977302574783162643773892162683565021474491738160984093544710819605178599596462919474574303682032300511974350485874266558512312979659729798471816183502704996314887767503036212167133226669843277663348164349903441848702924363130629019523231871081575110980504025673287666653794214044893284229234727941408349592371156412470620398435387620580292780419832319737901098871918373730214809915709004686641695052221002460294257482844455886542977434479745431750266819604971895579810298022882092596842498170960198908884167525960938910420753385593981481738660744476585016003873006613493814028100298318334721895725508977808721048327770822575705738493499644435584918454208668192373847437207691868199736116252008115683472490898102335731378294208513306407991102489783397976272503810248206045954993282055863621666611422885542054218648877560357307282532056325995102058999055647399322460297244160817575125002749760138134160526941208030747721178619594139062092653149651215602971894896969977278470053925824469701036014579127297873375627597120985748017964059830012206715900023551772490697343423489266913166527705453362157390443917341757328331711357910652342262599375117825791083646778433346170792445654756276600700746075430007677925057910201555619940442431832878122689676072110027811357904125272657804138762148919064803750427947096058894037594936782283948675105794508507089511721553381787395462939221849555149821678039491329959267009123946880565119288434194800014773448521812546683527897227551130864481168024007507763934830113650226130817594807762316384687646726481619920422208699900843663268886535263618836174519482582753977486191841100103572214083124634839693700974406915374022993335551366961666241440634879307058147104162250736054033183367995111707468465858999206795754914914250896093479043990014198571933085081088985764058818850318772469439459673239872885567290212960186348680913590750953091718719191943293921264978229374626647516485190907089507212356473882771735181031744833213567830657124575713608793769419388329705608056039293087069264154963675738418294641232672984921058793929659011963026447295456495521370917003578156945975318669085299361982594334658718107079980136098514032064815618321606246848849787263496535975670422536890726072206586343075793832973580197871619168746440040798955540652027289274873313607007148855703112280402743919200928696911041951595476308802944401932949941485915188888036635999695716544542379075360121380847664402780363986301297879082548370449931277890783403522143651829365244226411556457425144588912737108009908004343508745040519434195128268335100734362583850020844785688452586594711473174116886029679949859418802865723837409071275132336362174990579962567760829365975478190168748911705959184841960003298854693554536436789146244990380372332504679561230916145724750034569737357405252392848899323012121829079339471202290412003811768154216581630363407092694137361068129652295624359756701623450123964829868952865122477193918422017794159091619823863313121981066332250466019937447962685167386588429181551429672967221489282368057045223076953701123117022439887422894769539459878416171240968832896150946277616381132481279786868311450363924209998252416592492923872332436339295334479120953810451060307664935867542827291259497453936228084202879353251900886401492988918297883342358127733604080619035642471800442074376998531212517322520107690982796355321984175132084469594383955031929489656151592605430072289645194597570565599115900504447238643082143221945523696823883179885635547930433466504427353943755020588102494055211491891923786917050947965157613504588126383443402064728811557083061042479876895468851671250778036902118514764818462021719899212567826051130977549313671136263490728383339618603267609593059081457405170963421270331649764901966380857123658214034065333931851347447341913362458408862188070517050397515680338871149810159671217856292666324430872562881010966417403569440397973108761684564876611401881959056851981985369578961954201956704109669427024750838870366867776118748244911464797328462250647902593970886759753065055203208695713968164584463056913078896729082042044909092593915099232783488315507431142303443649905909333970463705639355934413909350380366217421865375348472725697005829695228001799565173634052691809908226887442832688610068845088733041766884173031663985270863994292957851045783726520392859165651114641805747758380997273565076759078238430517864860416610058469031663400637642550234179053430845583934602587688687352033306828495416520565020236593144891688710521981415293424589171978227150034759429093709501194210132193285637937440165957342989645623415115676361362310563405654472330435105502845525582233610216144032840893234760919349882686352022877247842355526604944127590328480502173187435542246443131826232582681168070916494830795587703306763163594399244932814862555948503192319676790133448523221922063549478447867541488150863913310041008751144048724594793533890359670258937314555322734230893714949547911749029197817348664723769582576627204605153736213740828938042808446748044942604655576327740907395696648505617601287333464679530892337942320691391884400402581315880463947954900623711918376847252524493142794056448249562581051458302582425302229771791386703873930704674604816171573832971861330357694801858380084710031167651131118101227766237710846689198888097117442429966101458660529193458315941356497338460741340811723796927095494361718902080947704097784943068029603673571232763044143835873484523470274625536759246019806215874252320376184637616402862033659856348286800524463827412371315027455791228233865627717120532359419259334966388356907268402051908973723687323897962675475746872229092268222853154915816450473830789846885936997170129563173920249476731183750298796336903918119861190233351309555922022683239662262917877570275856802679671164914478682727114867925724413139482882252960788483018190976726107484360025876539974991659631785601605111532839554750956244576081882526227192580042516573394410178678972750352595765330758631712047839336943494205191619031679250060195136331149735753700474775807767548595238866912830272530117306340119257666710861958665085238899282344908807307199931535220897389022141733929386778531145632363660662724373596242989538146504934544899856310532081411735486437642509422105816353138982633449099296242757527952483758612776763123232007383358564726623488373018785019715593140286515212230390894024131139257243942668845219837536787187128739843992070700176620084052444676312592967211608750668010038142974706621738990852873933723838075601197071002651546170394314680980893299533289070266128397469038949570590342233384514075409520075558419217437736943480020508577235599408879536807259667696659223888652782109505330649487904855087637800619612686527044260831464694008370732825165911284046195980261748112925092168447291903240462269837519540679116986817846318810086571733155843257510484628393148599394179848420161079154915164808024553731307303562035533506747261191294389360088481901395891630402393085741573936402976790470630647307180944632679090739080035996843168099818089668582758910455360795961442205402405583856203876550369946623011924032037913856568900125631877578350347229712874406228947826410842975197553245684033422229913550173750651002170568601782844375974206923611491508937776848578193765284917621004107216908537507063310616125538120856818934493414892151903889775529887396209443355618978816085456851006027424328681042009846291246078747876574522556522507338879442333282813941034550196037011057966844942271872405287736728123623544350266439430915660152756408509872259558547016845492424524711992319173561852847764681792426286487141719839969989560768693026481879890617633285359537480550252934401386034068265413044312678701867196045461208184099793768451978471616472120162073170228507382439719404872790724918699106566752125909406201177196569345624285456084932580809483535944203597963354252858601423002999989472077078567542184454820839602407944803962628753626727217150785191511004639401740780089517727780330744994164779651412526454254468589989280367491336690780368942953527778598843005815847002993040933616012288336721191923909122615131000837597061286695507695964519691325912074353628588365931209540759097300612602992024651097944521301845886465769327195360505126411178785692817246136617223262951647329333990029474436558488009144023900511843836320025318082827311650614471394589277891610427764115672772920421420417274100787751665068505401882322218453214274664338090569803435074711695733914973026699426525335171529257072485305978136258867240742941674250683938014472404670704099289726834642596172785336327642234117894170822963264214799280053797710146799876866621727460354482016530935142844236970923327895415300275301444176158227770189458212571274552355159490154278359541040561908944902473457470690014981003954893016025918723620076154539341223918452854960737187639698308853784893542032944124123295989169158371939644247703761129270340578893880820265060421925348076919936463214961513960752495877748929955706590474275909478025968563781391415567039277363239706948303592408160066722929785710456567197722815560409653609031938141427812685203911005814879217507612770618916092384277687591881979259863308986185044897479261220946461122904595868099158621479462466564444622380278158471458890087763820033723871597869543349234382502670924709596516517663601933774692822087516641181639749242508050449015675520455752654262909247719207478781370743151411553069318111583896325008625982352748636909933197769320450646604378034418590392155751901122626448916054582821827254518455870854044964446375610428792899156018067515731737878095262866577284766495572444544004393778904407019739886296618833102920455127815803819799796646690224687154312151146686107091227239685415303300450846225470362037881989434978226857809557292124195259755233968107792559312944722553085763109161970700198538382664245849317925372636185886749009240610475953071034536108896458767515418902481177580558669535449377180767370864938372660025232358870768074734501848152776399628204868099609736690278608587795454520015344283757343449626686396633969788009356374068358038646876657176864573060131636908533096262936565148136157851240278730334570404982531756095241646959217503453194520416494992246804930890781354906029443094387219036160492530746067270388563699080511130642475531541644636358812553854584301518060244792487983532043694600631887311344049218289705348149172869617154058124727402349272360137427465811249376122297235358825572007188665569538378647634053956627135933758036298226824401293256632075847603499572608836578279955471625707845126016912573835353229830700219334593876784629733395029667817182895900013661194246928262662844357021019465232521684235581998441310034410011029652493594215925601850350435332649897893992360973815557496412005668054684060057911159101487390637318517473776221918559009618993177076267099985308305475215974482751354238454782554353245437498540876484117290670213225681171557889199859481272095030072768719260946705617768683364472959110914333536705311643906236581612424001420345683894984522165672800150038009497152861998776158552135028392853655928910534263933799393810047819922968539692311068441121700450371996283351806391737459308721338093608528835539385561642869349382083025843413850008802209856920859940602406170238330177477807566767041283179583580832367801287420917100140294154061414788225818577397387323618186383244312880851790075051548267985587684211909266502749606033517010505694037778269166027315841948677571530803259036391501685757428147845089040459716922493997291519038206823815736830293469885675360333822654890832624809241894621918479139259100556363062034823174787735637831839261062487757939600154936778290844804198775117631568077816834447119320684872887656707946465099233914315345967464291667398665658284378452222926423381066107042768906280954446210664192161697439748760383641447883756335767675424002471230911835307338942986845402617429088727682272324255943660107298325628449958325806821330262990463901895098867577277818798081465677211717973906052460441199075577151367003198074510050678962469185752019625417542865826047221042310935763358010866926434885346800726369418524144413905031874244526386931987571706451870334549372961933092569619671201023296176451855976995985078749988480751981398271620165344553099133971025851422473621381857740088248853900785960353052334320039483149551886858808986316689773298675789545999139663967272027323249349806192353876933233434313027511446788929502991938806797546413035852118723583406509720424533273825343009986543512708105501250461792767056700635615130552991421586062971474980938331488615313547728486776589008298006283187348118500889318888535792314319093671938212090247702656286658956911806931475045587294969662374124941745848678402604010524105240935713180753529314984129104516705103047202958281359163000796201448219014523231251917252875463666992196083810511490882216845281074704053484068315732616749759015736609128598721524606564315810106128537265284368323847905983189933234528144688402128656870711837114159771626230250006397939311375072649919680142374895922654361082058842011213300820887320122528279323785338932292762845053169143454244335523041615481886127225442030569480025795433548995494143337819888732672701967315217887718019109538870498830733509317415744011197605453943310433021692213475586979064866869640420498816205464771820602768913400391842633993628461053206406095072674350071737513777892418112107237860971525286758452159941923804967897821281656855071576722332005406904246880808366901279188624130795600126654209625497394056611562723321679432988450552966430899235915720300898835752928114567129753886293392715353716794335125797379401173185037332903833227344498862624609892800574054232292075613147189128875140150356935904515963589203959844876653041834225284653814908338594502171633094302342439445718126969271462792687445650114458210189453231711076558759750543732533873133547951069406938713492553056036189592138251820542839335115686729398714338057648265437309537925214642170118566418541734253421520456537011838354761320194306871258444864461014015088535512370012394976776677405903821301416854521539861339968007644484926351326533747448237809336605392939239761144577710777732365930958646404665792012239560293224081067458890215189266244543153085557850451264272678392234014104017785895900298683196501510920176275528970660213235659439270088346280665139963259649318561892815177512049349284096148655616212112378970817922805654362494452334337267664256520596377837172542476384522249222043020158644183877150062689122225609742814629386504827330765667560080997107091668959823757793026719426589339468178980380951437969335876139787137523767546933475346692882257285348902762191995319004568019074795082385780067116475245893771660733280913260230142098934773567602478042572772139161688995628991232249815645946916043961191240684542234463022765517944069249047641943352468476476105971115449867083048316306254939787008077928579642243469236687578349573732300655291102126387134700892919126662569724695714235822588443044252753245105741326470515740542271300878631432612051390875214076372175375941964987930076042366438333833681885114813480057330187880054890368737470270709630156644029473529339835487668490245773570367105008477531461107178367020085550324805492462216435154494726005411140176337915354120659612074103921691443914427187777436830297160682064094842612833525785751055834629348507254489105915575168081565428525990490406673708253825718955134192981063232650898955448652773037246683513453380140686647519127518012086945607244236121213618609936272586908252698433824693650582592597537156374225699459170887257532046540371492651857080012349575726617784698752884025388406028515191598372490876160553909664681054383977195015450174773754342439845469545055926573626611710798048089434665528989344089759202646758504014703429892455636840409417117432505619244427615401172485738238244754788806952408710378700226767014172716773321762763609118962617483079493312089490479516674570013699529300557175031770797991138521824284246705219262114306539175562933164672964772009665053222094278624708356775608592319675578408752539460027904048510627898169414204794759203926512011119515282471477241250165457214028611556293344188640355354843281154288052502114565225905485467723216110989141027449224753029049332494364792969345898709664195857850744229004018874305760482356874243645434212962606736262695050908545364119633448078588019652457724242318687612209290266441653860570137247227323743988240862708892864111190219329517772752668240036831150177914468418741866436201247618725676194511753870291139120388747374129712451333834650676420136999803181647957300586888871161185116144479894623477329637986461816082134213108675438751840245723131389146068113836649449344287608807959024302665881537685696120584816759822890162189719364413395210010225614425576710113491328324309106578875271942467012865244692430226527630452093942762998937611174214530809418061815529574043156633289928359696237937110407818456651133708492124245942944069089126553896542364156738860408522194182374861793908539727650534027175036818958852183799149171331016099500958223000601185488465401939613143992363399597069464491428153353901970851297525646977681655795780055005561429065237528704332146213271282124227784073595762441662510419078446011813178446912805631855501321314427553460352244225151235664903247785625820804060095192444653058020079590485846361172673214424213987232154696356415622274088520227838035074560816646326307665434519454448767782479674358529725707384380378066936534091446166801655883664814828930341131916629329344879725768732905592512457734653316581507882050150603016601264427622535390899931984511922694035945391135086523705528363588000147924287426310901252500450947280714591458800754695313442244106102167776628569423073801129603290103007124496030682092829744681130160677167538617230572227935647160123353724052979473355036369776605952011684852824265942909483576591890964076461830250759241088667308707503553292875786776738386401275283913676939888325757984967501869125315172458864729654059740108322416957981896159610187161597827332890956080289815820720818255300865930893161158076310175533630227742265180811868625787955408720899292044404232155715436479016688520935668914094550972310834507495604489659377020591574408188933607992016032932189796553451848069169565745487374054409044266064136917623921247817361006467839753008889851065557492870032228126024320008972240169894298635026796218092954306402892152382335843903820076755148570683590378831268118864063953412097627758021200035254763227145062877977899136955558742712186878618578536691830632300254127987004315458013313921887178238549108940566804900752049482242866531623230776127663655881491790235082940198596836462540637351090804272007199302092079823421522324609928275137069682437099115832355261989666374399910774127992657002515438495983094387257891757198742349807002821910563075955193687989487618872461331006552233351097515803156626923075412616607407282021172522504720562711601796312190117506215440784247707168077072532908924318558941090597217641725842374227923804436623892402767442744799863212931923337570347303857539985489363162959106513762737256766152939775386052290360431254124298035345515313253500393107379917897089129813971853093960071930544680000497003732573779395738772162920952257173152598545447388017686086229259973084198713009131909349136196423926402395912538438847196290590964162085669708318985155901340950357125713893762732868468554336177865437656103238298323293603273057719280630308697057163414594243698081176963210876704014301090024350175761769138294062033870642641185316627766168718164913622468144747683554231640750168512436464690586186845845086752905091096296778160562842787152222351925198374664601484349303317231926730200046379845777479424539937686020240280481455394722284245546687422327485214041546495231714692158377749595014618837471006557187907184990701864406738059236028441994564023180435394769101276560117262442859415812686472729063967386343203952707298508588029249667293635766231654249719269128386500161731213503786387925296958571402446711245699015771584413397967610693478216967424000220611276323976919108398900700744157244970661445041566375440837489457030475532559846664041698982074361953326020226003224921483232635864774843294172301153417362866351376286397233595731213071449960890702527699634256246057059884789600360416593109089581347765649569231595366851091141756332320980228479146481093226994638536482248178648044451019513438652065591454561730990288723538528206070877913328758487562728744195522396669848445949255028614690694453743942076842741580734738128227887541500493222968434338485153474784235754409906602253437362684078108969633784212870380779416999000906803406431605172042899873847769001729768719850886384823674013136433788155155116278525337448515551645570660936137309647212756732588567354096780960511485108709851726467499844512995438035315985476742858183109293752022093660666360782258232586563965155384527621636291770828723002731069082496008820363042793508563113274891689702336655622516901956939442451882215567156778138756279835182773622630795563732843381974351217302493180941417867732077880667751586837642559893390385580702904226109272434972318007873078778667131720097900463077141562013296143619087895512444593702734795990252858482697468665029085421114898744124005644955165318404066571791948019184423156119033887501710449678437581182456033591808025237387460968420558246806387664585294433976928142318412438108120874516510868441623539865050352839853622533216293698460030851886999832457597972396174813245506163738355446002406976644928215935794131194780896669827830079628230912821452650104804426910230833656665124816515853697598808038638247108205163558714559412214073735388766638354960880348270880600669269979921849745234715002208242535791104087549666940739516933579277729592924206633742962717808381697364876791755556369450389101755505459705972373963169025958810375907175119975497252108014053020212187012345096725819804764271908282137739866592726541250420489498584109291684149410188492379306776140371637647400455526652351334177571272671517749566726800007668835980087559997025514812725331121849712712128076927873205950408925213045573293540882052369932627044090190209752123426873068385746323668727625743714184528845666501099423088990746033498962895386551884077652966125909694290535133287353093307153973195465104578806775921766521938778492097419404650628489753910549298163981185024820373429573282958456616324673743010391054783513926174289248449311248405620976432140741737698899885796916776607502675758473924382288326773696171158359896443810780431197869707365924955909474244575479860996953433136425931738842653002375043254418149387457761638509883849296811600894318072941943210975043474576077555697134398841754479344053537994617923615997624275599550332434755264376750152485954203714919558847234120734403907514595440643778900096388179251730908187550635454290822797143250224057000964367574994999132956667461243333241292654507113247630811164585676851120919455801931958145790727232532407485224034629682118487637119251610599926432055396864161567417922381629154577311171624289431936345743442394134108587230751123481973402342415786616920645498076574174765373803307818591311689966516923486204975341577851392832006894068006365852666285664329919639833422032685350143914867293108337223829165774172190602022129133454107424449326705054637650993313703930755941270002349027528257748050194368252564217709221710539617469577686524974897376598850861547015983628386994640783249130454541138033644034263432552173539331175780097395287022448909606365065324513217628628397766526654937175062109132727218273337002580922964024138330578574079984416286913772271477498169798011624461040700324800975481015844710562101405590279401171222286704358427597293800754999404694680957868761640506939062397646542540294662946192608494200150219088240170684961095232201859803373752450901773986687518558448934540089611776189377917066989799516595830023853873361283699816602934521148118488559074137055919219904684065601439666525451940097796933530142226698507023058000551089009043222749102542909214597356879389055278937500117087410290193332194586966282942878202638040603662645072662736933462056533875823345607445673428221843519121552244181635992883969273107234240337467691612677953185927090929386187547519184107514086989569583597410545257180328319635600481957222143579048495547075814583761148557918518626029559396702784925431212690323273038401625499453267153975483988653688765069058891193126247610518551194743858142929016415285523684993787158552320058447483776986987196143014604132945377185427088905124724887503458762607652409511995375734050359995851125080701562085754324422556862932653650309713145864822852732813667750586358696443998677859235353356773751627778039400862600409091934883527011685171819986670979916472808804559695751638150005876696543744604907297143931387507000751835567887043663319947885380085695161793203456580984633627639602849497407913599532078025820989551775596148708000050385080046708152607411537001321864979683164636797375255174500305900420114346582190110587831859007965092502472662734141219764748325535192874028639960433601779222260089745138125176878687801689312616555099453837982819526514515089821943599667493423952902874916621066210609164768279964671078307219070258879294358806023468321459148596466869427120090692779161127182986705290949614614434391855219615074735508874678111129745631528203314673880459966090101718876747537227415442359028427775666396261764486901469376480019052601090258229201503389875740629849587543859152675987756920404167957147661140639085452905511359694493130785074118962030905404497983542605167116041505223189640156885841605231775001726204249739424172326857113825710167190600551792923174331766789127379361932132155489238513086553434187616363146368912396351882499368177886975555907413067510456551148386606958550821708761392730824279930083998109244763076916955662620988788500886158082182685450693869589807602070260758232930536330844804189727984110593111210598297919572035783744136023596158964625344022754351290201418343656017141117034325810800063348181278601557398009004714362107058267145287666042078857943514098416322017358146180686401582169281570922998539492109881664691261039070217525406194353349275264802003759795391373306538713587810361120524665268613005391417440034583526078948791582572371317434995310437710284961204339026230574711489606212010521719745775112869294828869227794975202777717627631594873523064840558793039681322621559491798788472063265223500412717496550144336831111841234601787980237607956453420049588032238782918732629407537077211060970118347944371938479502197997076108194571524331002390640347334931135518645487865146120381751236963894605336192774271623976089639049205714054495272239375727210097951150483666443687844215885752637211786881412454621773024357969614349671816194712869598181875295535813663473930854751798142804394461784195363635622113971575724865481812609096677128423647578000587452492516780422706649290167142584495976964258943233597037452054960691459823698418546827003637193898040749253188487028880140281312688818801464974569092453748162548757349608691755230892362914609385793886557627694940457240875477314470788768637804953247986965374019657043031915495345546693884887567585983170008455212111574562362589238174165014333447282530819558089376090031619387447478896310763820940398904026124085089866815482428471234436446115799878638483027998608197826497192226301992101669568551816739941479613282100921678889769526016727425307424577684722351623371443602562697818842633835443550712223392705282490314675889806903266289595499277963245424028602347412085810996917211381065738818794282400107850107873023149439912182146692124027648236110292104721617960952535785537570004976513521143237652242953613362410669330635426398538043548346626319443514779838518837426420857143369640668847311973618047884449178186781173960789239507225316514651773157633592514736658358063709815079410650159349072117310221984167889564909858028624826627829405628863505180318695837412794226494131881692990622806694276555649439185077105690944352602946508226560990210937227677772595226393856367341759357493974702188127311898093751455652265004808401483178078469876908840838465253616836948947551421501173154691207985908307801036867037860354634364431148888565754467664266360953356796787793218969075267397236893853383593478176815939524731288022624869222668190566147972337656244654995370892773683070725746994354447666500853458215425363856386870037925521057249848803064004664423821035718913979445990687968325279276169613792597114345018517015794852602437297456975745281131624909755264327398182915272793335468410893099673255607413632197993313309460207406741869799746121113763850772643702614142411693861098206227725895433444153559316880475090179093020607067348625415026904677561415999036542911004395566852233083275034133308998925954263225549198849696554428675055128517252697349243977379159550047930258015794628074571375647120836825799985538803289747821001125021912301066736324754543971807004551651435828832722939472911878019523016310884195796400108485554066104375714490221316594422180812568235261149795340286875059875407476542510432815963004377376498476165421884684250106822725598541886026704421858255367220097622061610238422741403876687866577052777068640915864603383966904050475489108155501736852362380759578557566650289615953843904988891298387617189437417202237844104680771892829036160124023272078904012583405096400777852707116688773845163160304420819169539541632282266923283013380805817134219024204517543662414086144176212938135685299776468030510614216710194626442659479427375805578629672855602429756333445635476490084905722462009501831122467889205599792595208350629177259457867231028582441815224793065005968630305320302678322540823864355793707253240419066797888176354552249394935969888738059090460567736126173761691720287725743905512450416486710220468744400794454278017566050131458892727886818357486641749960675898371483730376274865729782196159942526772100582719316071878370708470698295169190559195511539863115679043372582714836531026404671633683554696693994021622371072790552398693233825839347570441971934455231813940131986934434438034978308651299376390347508702169536885894933001625181629520958596512123446990127917087854166201504811950240729437304246403575188663360748244290611690613933772482871755490756591040688219697604958928641180006765243711302092060474303409203680866931180358930953746806852091802166754573453987770703832112449783739828476679793452633644122998982436380800259700991230511143928165688807453591565431159461275467267297017732087065266888339229760372391864570014648009409543934624619308590560112797359158508270755519037745074393606705959870546106721992255974718963977556703640859310657424740776320568995104164964129151695466022514700568770296820630960647008701964730191838230160464353581356714093769541215143651477631885095788844176758882749087604839536847365548885817282555726575372686958652186875899385074707048505253021836243242760368537762128745212372731275767016232645100537644087062222573852068942960422601077307774114896691930580971913495563584029128714503021786226716294683001574903565570457047735178931723235459475368580813734542643301719088095951186336299296117272616609367151542784842933638147368703249341383214150618215270946066045066379728938892523087900997584139002264390341954989149109016788487001098193299324830882486207730681689723059431585354685948622941885099724887247259930621448640736353873420130915716077960083229119675775373613046627023430897189203126025462176496605985520771055769643082919449650611815801723644520681251436786148929829194935968951262261682575131957092091404456654105474978856822887259766466498064714078438090813939788484322815937681762096559041983939618316595368937412845167181439136515289597450627737395812000341050316703778111992548026365889520419523916084507444304919327688104663218494309892442838503022984958185195601364758562229895560356989996259251203942988778041664845668442915151922164135773198612641053937995211321780688005618739297977527786292736122702815302530517170676794553102796623703458140555734417259243849185282635852529701326780344118304058843207747221133736053332479048747702000177475889775228412615632837500031191026193247682438505837661867749826387314445520977100676943376289002279212733709298608466077118626318982412078332407008452614187216667531345779538624334409262411400364122730240379779024069271888114517085927238817018785585571996366478447074641124853872764970927326628533175476994012854328722029763184159010355005266625638634679876140119886076204757816288675708678270826427322822372119173089331350333423543710202946907866541330196061452752192396960246876010723808449868645849427639802178828337538079555763094590661113229419432046961683345658536004847433649308627875280355891931901327249808198398649548880323608135494059603157812162131731543728694095221027259037931690586648140043515800802263643225183226390586587826370209489828091894332185228901997019965852274626809318787486941250238038723857179281503187599640264344144856126986184812137537541142054889662066652028148601642632751631258690433916960757639867694854228983342186886176024043824812818123930195192620787388710109169110402516591006980602311845940790725376973737949454625146768797923249027770469339832969708725268097440259691945727258053738429783670130728962325515233972635161099235108272758686562159410085273668006353784278532258973523024378324197902771907622120032576171360050387929678916266587920058203185272991022202067031113539836123428077360502326353001220756856554924782160213708809100428977552534527414630284749331116893986096918723583991655749275794326761786325367537455985806900633130656525382282511755121470650785772374021539038118050372593198915106072362856895973633948350865508954764322294047671055878799986731180593304727263257356323367935122840407240879872402358454767754977249939602699602821725220892607087899964386618309572786309299328759042818694890149524755099924976656210881578182521347852085588673599175454143353837715080657580530606112518163540465239850758915453114011612616163747243718811621607065024536414136411169635076676169273961446043655398357976629108351922570403216923450529022874575991174970046796813045247041918097173573255172401325932089462439864089651277705923310222840285611923755086634572301306501881242130304883245184759217357409848901943589287514941763035770072853857616676101362465293628482054926950582900483995866220922573948817811869544016378051370360431387716724903586481325120181027634505986433428236521468075903233989500012905391996910063274366936892854425014717046094232705519205137399481837530120760055140183825508380660526107236999170313377551559455053267184536403357924957032305432908694366601719356354135013368726458551339881930273764140403407079036619349441688969756717759071855736863429299944782937862603270193214209703573199790832242937198462949470488000395107272446200247850628594195182966396464436927953435012493431000800365093877621002641823132702135657903238278484648408185890951611462613126328203321599817375420301408193630908699990220070045079829868567281703945470659094884585436027977121576306481268866022054054077089509382845526665366601624144491529806622290449546089236577579211806735667337748977642631549878448632849801283587452033531176731161349769096479848418325730093718829915139141365629945393255901467994174045179996124672742254961504501854828280620421533622186292199350534776888149601699753031705961129674292770824368681299842811113231977167074803672658914835981781069517631183687381696496042827642268856769164953007591263731921341592781234967866700562955878144688081633717009554317440796701781136564072370047380100309491820414985135255548817153501492885684898619410462393295681578943701452530713917883955747197982892921850211456640572856613991936730554562912553692756317831729820379356481457985376335357620479222024105116804441028718391974052488412694254524947642520032850457528480511772411444135358587295871828047932198551845001310779297951403959397470355330014752324322986583825401305034296042679718374892002152990523275036454210166142861881983700634012753410274230597480324070713929017648520943947176297143516955893635822427899102497908125009836291655676311820343444118941233906101865278805629855686134787323142991208756189046553387424396024236271127393644002937933083900271654929964315034912416290488490301427100283543675808084554973233713503127395234355528373350676228534330121242965155316855120611506284746298534578580374710002275369696013591375877111184299259756707768120140956298083439747598316241048837921935120830534649935333762359319292120709715385565472506492479979777470831607340351835640124559829852450740754684968214067765714072305707493075091783114302841454673152534868139706982585227895454083048510883780484625909716978636943650532818625710410457151530276819016439037315388116589482350726475529505157298202282394988695358912968189287251433390545352357343985128724384544220524367038377434096574071727773052396775102769446487707924564905478910654391604322454041042474059129819482082098594107772787806338746276567378831189254276390563001227737817167221118017451401638679172066579540823222564239794137580269503158388260552850439692984951372469630035002484377005113184878219240926855844512319235795408474538433854499154049443082727714519461578919432371445100711106440292282879742152849521433250969087291503300002447221932898016612138286811724957835971422316600478701353422548641483952986223993191245767328857630108327939414070996928791760225778646915239798340091135979524213459629165057680636375717956158829158707406277736529915885903585068044385470928830385213122177458768578011500770128625109779234219405947766512665885616515684974982919617478289031716761095545364563134333240166477642771714128769400463569477700023825911300989878780980847282619645678734444373417623502421121444233120535750216705676179495629904168011104001976272492786618174658941413640811193573451034752706401043105080958898721061045141395759637804616626077876437886216847791057093421969723631865736854246676828993252846162377129202760707633838702674376965935875647449126600247830251034975071617805057264330923053899425377736932524585713861145973098346672798898473575313939991705709421518463578557095921570589038405318604788664830513151847122700292027276898804063763173592912245417000984914006896212123911658488895076314227092004490342197822533778017887261391450708589488285641306188266892295504847399198542141753020601191372686628084407990025440765405679480837710158088801526480371720299344808739676639085962235916926964686026809687277866353610339568629168482860700665830046140372087368806756946732157060904285835698790767944860272892899517690550468221029369814624110789318566852722032791255602501601732281327198546557625977208730437496236828024932825991564214666618036557946988416259535719970309302102530691095784419912921071939091874909330896543547355350842428812793187321874156305798265273753210937861857865548995316331375158532820836452048468526665328783228657729343847644509299105673445123763987622725559381899962563558044812607110135504072440506256036242566319335070324949173115751229857096361483135397523819586703733883472119735661760810938957218668379271329808960988209110314222883191498494042280121341922559041423565044410933661053332296157849857187170049157225610066141780206089833354406559977168394966413154041461943492856931735095109365404313797937538309536174061662838046828982207393435231962719289247863345542903606468396171021946291087985597685180179283008796125457855316500288060673383889610259861663832856905841668091223225782785525440043515028900544798893663194340964949573705790166429775665944551689672886554999065812838162649025064486505537153186753386106038451385123784016370101510844956540854771107708298382796169378482172148281540171716484352787480663431039826248645404586150508362889331909124092977949324286762463420725578717705430884442864399423896785287838928449491910283857229693049840014162824938050592321106804661539919360394588578481981528580876478243957006792448853105247839144248456769245273399520045417615756964490838063670662831835663070995969710813914772235749822745696242349425505180753755418222748365227495482251393829202921959361246058587183909837609841501108695360446219888497279050197756290023660557596086932179705927531225841520495039325167695721813237882038762141344345626066777308644300085696401464146462251265743044778935207103033400378448432430392966140878516450561069821245374377023155182137432935138542412017655800363174457781711160048687127154580523855693297179989756732063521649005876894790577855069775375110381662400080104838228748655530318167026712777993462077678053908748997086591323305174059648282686940565703568977988350468837609103981231642723944220722912622062604630793215203762568005975001680988982273179006257687647180052494856472626037648560973420905940856248208165196504979200458319743346509873102808772141445702073459287920761693640234239420398979618111555660317433666199007426475498427582653375122782017593472568610311591744553728603470024498919828539406305675051396857912335100178056878775984117315963012689855172393992612194361269733798315340201901027599889812025566075215766748056879760837383657748207589048799095061065337925556701872910464625120213921978388361513055863631933653669948078805544445065875846254740553216033924312712440000827005500863513162703650318922432717653752842049821207317266690261559674354364818002942289778099547150628118532929145147244363383365542488713368927943967423691316055998597615455508959649087630570816517170171948267658680779481277687638215331553267130120997537995765254115279368249162935317427403149843817060552661541947627824382321869240123516933817331447750528122198100484142737889564745895179892005580471283084356122503999901683571622667164838658941920625565247866846953630564918135807324381523174296908093578963768546658236163254135333389029138333220093725704034825134201456331551408842762740749529787397471265827851603205744203729778484225198332977799867879556554578403559403431886417371818005299676997622065327117733263738231036005988930830181534565249208542593740140849204577138938949313888514749061436056908366359340689588879452110859018252126852786078452298592072807779293431689023479085656371499124694786274746898083751223823132730293511934031409553286455294970552939872847478169370837822431551053214237424256723534508972130434520297993449302080750120365028182296562049771022048675793420509589511268624761302014073607076789671171578915503448473701824946449706158456322073266277730096897899269534769427719424427152568066406174265524054496396070565224479613992765953007711189956663340141862185220747129012246526463979391685139911144763915926621355164268575532894169579482889451265444707825626762765674184929199799296583474145478165413712919955174846554373681474290346171968067941056007303569595156337665808636693105351329740957604017096662045937571143663129556662134977296900366560895224618486174029502236655778714537713853606857180335390237444464202520188387489969585164882886553328558348921228779151825898628901859845932679445072611381466683704904084737024035367237640299409449816581836128085520699404496534736134734825606872179848086636370489595347175273665835261094847681977157288062094361728402844988959296065060240040343304708390159265679200105211572188167367401726878031889052284225822012980551791848143855754761756467436558067281985382751248631561570331252511622606967094411814126105311898680061666827034876024400024551993158332946157397779015987620281986383145930164261719087939373508903212930936920878143741387138208738052995013511555383757282836687961610891338107719164066234967240578010222542977218154862165623873198257022646366669492222519908710098383644281178817761880532090292504659205374240054738977388378678677512035915059702470743241429063710281344617074154256200636408750288349141964358800380756170437565854085954585425134412150895723003555150928548108638798486392708996015295292712109923500921021799835640906367914243732308989016335797846313682288908632933656493510713647874552877927990424981427441196234416571058269041096992855537249455675459817839119469842621474925434570669926465659531121604885816097261880614471197756343849400439325112783532864682558968360435963039946779471951676444094582000131101577527905464692838559117266589400734842213379070672232686406048798264378291336415727044292408454395513258020040783124495185661886393205570917355530695367973830777136622980510451415403922513792801178313191882075352266772659573229089224939193564510214007057438828031779025757603876776425388812753360940035751856296349193484027333049468531749659491042334576626311202072648428613981262250222207603124888838865807896846663324821600695789629046412470570534956979830105367715099279262853142067031048144976252340275434736300833226575452865475677438661294857495970926912897822165649211156118412894564779086824159878878079547605126064857055297617397767252520265000095092115548443948808401749497613930896905599417070764768948141839536290426586601801975481771715432591012563668271614451258425240287776886262666142684666979093109377096597528871065266298749851673298322753494623740031974872288275212457458182666446658436874535977144213827572783488235382157701193465745032218377489628921628324891887355962324037383059892995970512198194531779156057255587252538311546888021602371463330647312199202628360988718356435418773552315397035887193840233278821554263267838268364625728484608739249724969221990680417766010321310498910695823615416634845284624931668479927743942466025274610181079597949135835496720742110374125967458059603605818425023361739260289913808959382156850606550447760774000287885811986348933122016502692855074985319828860164193385825853987216781232424865293387081742707857288168720441689967756903391637689880692295099205034390003678006070815653930249616578940956591853633199011359274623850383052925364505032599928144512285921780915090685182123117676690549260816655833948632430196293086235976732173833926262593348095702124396645418599402316104813598886780294825840009640598034485089352431160898181076849961883517385624116369828908532052891360331533023287057467250497709361234536183354608660639549509429498633664887493957415063666617458023059351789258916676669444311772397189095023333745744619061208265575352322186340527700209541961455678517282923821763419753595861910592823628931597003128405750060892145810841328550407457352085558649133923212014527351167023977314547843552438313181215085839985110138255998543169655510300468990187655455651666478192596511666957273801566740789013394583885737551772166526351729712626748279797727878492754019665496511724574409394255483229106879448273987050185659924514141877517705403479234272550495773107994824102311122214316303537950118720457831319820759460563314854537009079897471864890216839832019314971231525152951137251872188272429712554599019470550665443953755494638385546451486249535984109812346048342116776785698335073018918039154279256801976438385173741494459521123212564345738542259682723169079037560685802734611549019211537369359015840114643966267387807211849280099406507859870012054476929212024607797862668783112536514464523778314175652721426316262116943528331976204135589121688305329110041971943350990330282916711787632401611165274875081986256549723870245737591152687926145586725782987379058545968443274075076117503474439793073628719614980848048521990023806210432373311225357877599139335154241078307114820851952812227545957003743711739160864368423958048934158992733725662708042966570873274133202449564262246903977949675916948970406339771393982009089967308709162463835058084996801136837367198398209249705907927997818787402286729235465145246702697756814093316535814941523477667015234701191887476767091599223948080204803565084246817724610398259851869095268623183460330639558432941336692781345728840669017885345093996011807346031308482332400742991173369032324613491775400316756872678130981047065340690321877612916383978697418875334008586157294242164864934695626739916675271015194273909789605773369054450015888673328331140642330708752751584476726360084174083632065515446421597960092354485886943022513824065871338022434535757444125535617314090664645139759683441038670042331606077971345817257589714170184535081643272592328056381994316562223938091115658419841407671443258645936974527541329252971573762028231002270806959385066805254243505660458018295701950078119410365150093185214174915367368190848888434147113123630586420273334772087200608051383770324383163944312031394405214771151083086516784670221380951085477865082316070894596923538240931014692159767397468198232266626038007587839627068630624157441153066783290924612354479765772446467779946134792410400727671567629820750643311868833013552281523290765977744303781460516619924134768545872229195774976392583684518743061548726959281988600807363664156831637596232270132358978352999934480331062460947006799899681205784764893741920977463247944884659361854586411479839329028015638388947119744064279008189222598669517369989762048786743005852478005136118161910741472293770149413182992119551495374865035774172526282090079647461726505738910025467154520193809978517774964675626859801022258990806293002947774752538612330365809708450226734556167477344430523281058208256801860294338748672495498175607682387629265437792419135420239673504736063774027418674269249925277162946630531243996722052145070187131172703193440046648720780770469890534412715033792651684167679754086318773552514999038903657614673512181535355802052907143227725996303567738290445874302288338687825115042644567267184653028672501255176871838846770345123312869012873868443416373776269912359493708287739237019339122536177626405759613038612306366336906550783364102469645492691220524593751225180212923178636689508825329694887409745625822563444015348322617500515599286974983327255310953406845999700776230136454120638879807545394774072350871938622904626755177700078945069570424578467262371502700366359144386166577973856465314906536932379908376621818419941586251543557272143063030897838309398082465292362926181468979687177591606302177837976602168280301569001409758049963547671296671448719055624339905608430086304508585906348347699058904686328125066857711751229589612436593234799994947493455216925119729757086824661305040662774561458512773469397953223193366100043774819336743356712572468848180115015317424726712434737836513136248574000072807053278392342746997250695026312127116000541821389136060920689261769473597310405524129047878881757612596009417753089581808657842183311607877076187715715537138543947682005324435937977269875934184226431751303580361526478499433048150961528278686766714822814787210457787684725120776265250613847316982449982737389989055442649031428869160869360844431224389956465860480067900840379631653077438909790624147788513158473583286084699239510971758056194353736908622565423076506478963928396700100547251701779625823838368394190172724019986574082408914237044985379255872287656942117236695365962571094969304231457739985306618970424824646181647217680660919082480691822250697793667771014492442602269720065700101320314620149362705978125526720473894274362683724793940756944480011859262438584911213056409450347017127090859940497370182782839183858692538098747352466039997244850918095902671849269367950668930197407823289015162953470585452000346078231012961528375338140270722030035596011005749770268215895605752188122870014919156974672101790710303864915879323981813314613006135548731166284718666226870068151331400443962027268302473005726630546211142985677039004941618246766456789802192038684471435926356678473745885802244394868845670159297289378748142600338185607378820702572689698604243328479924910970836133956378396532878402467955986360457263607145083300526712440666090190184858001122519506366652878322735875453207587465178856150595616837333475919472695239321108419899241293974594704784775841874480935732947330164422603794867998224451183169669008682759915919044664914600470997281426331532522817143661134486059176881454899360480797263862697102597844583785388355323578219262039314287083796042764997764951584972795068631001257121465435792211178132793057148134723349350906737675463378628385162412631316533790029667555254456534832124188156853049027383546833253615046590713519720004715662157398691152210059690217548089261557902244030390598111279889204909891749096813709762442040757864869902631815293588566154216909069355152239121346235343029294673519429866330128465360893908089168295285964907802976231068605346514819500792481664312136529989883579759453696024215977484407778301529642675738197003334460842032169450042453739117721319856432769624875126133346035557814166045927311494096552804126624685789307116963881012092812459681110751489031808902001369687041765748097172760623440477195518379745187661097322771545942577464260651534365575353258463568460395688323200658968056642107369515947218800874565608545403822395431912063602350482457892027313726923329646219173661059368414439795211019673014213383683645245006163080798433162027629333135769928791906436319772742634456377664012639508288878376573282036700574106189109647197408794746462480517283680788016435404485553918337022423118142559243632205890844536828074162459521295211786678897759774697974611759380638407664648463887692842093054423046622177779939441591604993732515923069855661633401387007124652525783515154117688877226646645171900793209730895235988875779672143965440104861714543665303736871395726426082988798280328940548451977645492655402834397545325525698506839505388167754770291200582137160294064776865725399866690979678350593454844818601698720715924707559771738456710079659304802143056292864966068563798843255226391451359142410051002166394743356001614944055005545505884053871039648036887619412589023214344251177402184301069887695584087449921901482236998412798465001294524327197877165691784467919631672787915636772440778407630536403922928834503977625048470794353255965055869408354695184785186165401569818464358752992320620000344234971625549337134294514116723418095394276103432194742227897067761199775905342220387857174081291367034117324897453538050082759547143885645868149542857868203931598103431382095574784613633520793413911972431222434235712297903502275245528495708166756705661023216227738116329224644500108683293433460197809973904062985333234015250365261042963591178779471017235764478057336510805301768692111652574289287764679947837328673331566033164646813586202706257270522457647026158238972648161025562261764320213894430334391328897667022083315604471783263262014741611904130430800527693312984924347612416843272877496986303391824133787099345845615869963461480556478322425765159882796550841246363029302261253100975281580924411662834343031632127842336424919151141207528369081456456745618127745020639720184859561067441972017994521842510944820757608559840425690954821385645955940889047679624569590201099787003910197101158352232460682338016291996519921351482702233305072806846633669888040053122242667552328859228534592441229588871903150165527272866109417529611885452867707669748067765205537036710781765021466735494539285756533021587463712941683144220193770188385721378012615308968377389169307780857245477988408202403361700994980349426508117500862029753727390546352508807100203532097284328981031391828271247180676081481422951536877018014301662530450920983288904391245417118051233636636946807188265115324083358433605396989362456908596970787648229171928238607949500001130071546270910922760258744440435373158993901125963995219787916019335946040324360790398494131530303298183513246701880109674067245826610578871227545625957946715801212977062605772730054784346441158333623505962701280219055824516333866165810035054290456319278705126206322839933245072169123576757798361243342621641099598652453170154624601886466977082017347415328925976829996420227495418492539092482292464811039647962104832637648665384648498790445203209788494750662852807344176397505975299412647038140332187145746488774932623665444676347425957962194808103143171150833629253096383912546680012340898023643141548141485944945646587847046421212092831379753578890089892539822632670438718787543781730753799866096196251644076371353190227381391003366786559464239298632612649651447765612983013676643038094702256100575654405518280103152096681377972489180972773131794576649414235608133815638703283065451768095689235428436803752859594567048619612686575610254289826459832495677478384662149489557199297673401586249572021778205898681886993335864751111983064874375899223194646791369562329343313352245588432898036106716931367892485736456538322226027568133725541558557395961936164202846547599587248890096832249500622406561286414484804395901149970344807713468623686560374072570709800926471671707126583094908989135858075801709982786765242572362126632815740826749284651798607231179440143422695974802229790913474374470614972052902992387632802663727383911334023724616095390747122755274326663572542814714035059149852758833943168657961865390144297129736978062091280444353207880915339824922045998152178460764607925948287803090700155786891952731867572815941557535716151468258934197626620543766887795535486792096995076455014733177204012884689986807357497100024672455060288949491812657638577785024259917249741438399809631243747186323126329997409703108301953993272156284312869685423635918779447267286425769188133993618828563842526885461721579497507454089590107089123589629513255890249994344368723115891788235635125414031936419760666227930425813466553086914998781041349874978723891573099542181857041354975481314146323383959844545661245944200355643987192349215127461408268322672582270440725196059240903042249821122966401840095981439973510137404478497891567071938314225070596084635480117390729520955494295858446199797552247406356224465912885291467573333322080482973084932077676779156738986503568410117432488624600596464473185068547465940439737989408965423003316533770955933551771083916405830473865071526868567905388070963622378728736928001001236918137162389099508605510933471488048061427446744261394447639215153355132158398513873132367211636044630030123379949541521436436685095383677009272360958311998591432074165771459389163254930536351045638344157815807965235168172725088587281633879676760112866592810352532785457182486834830243712766013261142086371110019019653921856634414638680632769649736010530853328067681003802566512147180162515773260761412306668036723253852607274850280899938200743280200030518262817790583341883169344820100717607476328422242136636996296486214857894755052580481076346488139286291764292412334849633117688022925680462073722252648516431008553284760008138230426913871407880642729104281072639053326023610807964152826398964704078331948610659313819733865032578806158845434035810472912583051173804270419027959949182072435755924838327283633261679588746174242129833323727748483203231022012119451863337677998639989388268205218416238668700008121943746907314328856533329917993923874195818054592627608870818254233048481669848174499241744117231328399009321277476764373612900636740904240138117133398005877842169194609189092991828899603226470200145273693007306775603178270336711771361602898868090083774273642311735871157604361011308795608749400348653216973872059046345721039025081322829607699854012202643347489162034194335708636437268381578711678255008393494947258146041497242952980320666243333553752325661051054011990596442598232767908256629505911403781042691743169056546061148808323316084188211726143734293081267678348202835718723046980504847655176084543891890900944515021362081353968896430415859347915251388961366885741747696117709104007320652829886137106834781503950322365281570038188591799563801512268659067522069208762628643091461263240284666630678312255281785047992733114287823198733973995022713186392833554847868164073906620730894104321510111883738852403376854520592950439613331663600647704850590374015619883201507889819112737556244361602011550809199637323780916946500119174112380380963147421095605800318356464120962022216690617123296854693251414426526501768096611291022943706400301524427800242566013908431576960765451357080541693964458153100844200114309574917640584014397294054618373065487192810743810716253142279271977462900273015057456154396977081574863240162345311332268336273117585246936001775629508173700511219667813412986461393671888159889287527109483108429159892486477363035504240548110332228773724096545534750549485162310635701441012157683150813136228065057213673654477937851672835902697462790609488662724907715218789800378968902090789894255112064596842299786674047130504364046893267407762017808388605071858321580114872370526663353200663284928855789532400859873366288918445342490536964653409817874510102275533546235439148760968965217734576969082871681437861163860753364484738577397397021119703259148101483830629482555125913228516317976587116352422557253029982378243221192793986356656023847493902742582744516163452210303636151596495657377161610750548164729323057227084833950556371664079039466864534797497425201423962632687737645422337191693225456926596499483373205260801031081739474162241768192170160546102686489188931500425682120124848694705927634555644315674554341624904335419042191968677109817918952970447364874926887951418916020768120509512096687486943951235277268760938115410985557512396412358276856326098785205658458816212434234256599455086475460149698739350996529689918649520601528247807911679402201273278418234968804159652757022871729196901742593603481656307890335351738089770581498189363826822591704871928424946606688520140708007131194002819353666391142013986290389813220521941274524084085812358322584157649522157734324863071083017109267841260036750253235971122681604281134103974181906700244305718553082967751492410525665891810589249521934071754018475227649368787659212737947620203167914518161880085903056792441007667461925827282950509286126373340097978732319430733211104172017643526604106433300585350518202910451315105858916794172523352421653312072800719211933588363850836005610727671671493563121180421597432339666491272720357629436037399319693550532990233864304583546689194193663475213086361068212725112793840078831833870272624736138467641077049926248878138086282900112793696405297561804731677329706773514005745898926730140723457403796837562475986174455731934590294849010468813331993103593730916380769733190603428314864440009294432015072374470152144444234274627201403317039990807633220942005637314954164127067968757884470034205318807781245723216735835835845345482468496709688334128718334247450510535543631618066379266561542378751741335627508617517362444686396718692127112407216530381825816605321282408194281952042002012554233301677775599142806123029648991743870086014496285507540101439239980330307779816138813731312977813483924654690735746991803660274758076682091783818477037784329601040660413097835952653220078087412656967476671334012662048519095227403414236026146403420378087192249488355144450440117403419218857985795749098991617319209922392086225374694211788836724697691567167009066877332518909287248108389139398421514204344620256629854033730859395285872450201121658199742613720769939501260667327386145449555329574491100133469129071622700200508903485733193660497530213068020703539604940937316814694575785337196409249577033764356802226340030436066953648267724422090498996132144802698209373333089041694415573207064119171051917669405636269448455430672025656600828101623750569255341833315837923549747710347869907028274804494380741254170023948730284121010428943629667285962347341352326646506690462596402232899266573730429858448348470405249914603744690277766246911699238285820392461407293112891087396913918288938287592799904148799720986005925436796709453925070579492187615446360615985864663672508026455452577969719474954680104213902936500748669843288822044243405909115406932100726501343842743976260355902686448944857969450649086140404572220552929751786507052319310608426096744261968492519765830231816519708407905732507043899039711471021347100015250960436875871358273248393346023230648977833896046016528241932280062894735849428108658005039099083825121687746298461927431699363890776246453121216284228292846420167431161277612943358117594770225878673671135543614385507734686563333493417216958273294670813893886713774657429270798084976220127330369777260097086291352183802874133593505169639265249644155033256343314224304385601196824692249035695995719141529971354359317649678741494590078592057727434573963238894804983110696668794483359840079066957279809261111546891571992186470086906975028689723433953689905453785811269904485647596942791994926006937012399589305773073885348627974011784952729199785920294138026070120880537586544744463254675412385253984496883928497127033762370577637213050287107767079212438443260951699660443081963064383539068363939448564319025760857287525971489548819547852101517734326918329728129739048694915091982902635436542695084666250120254826009232694147018764999935611982903325959639700222646270880635498598577939912456112161074294168404505430004276303675127507371236587157947526420804449522571318909744642029828059295086745674004646395567534835638507064719377033648792452497460235835250310550813368088099494865598313172417620616262910534850969115457393790192798848443347337812841679718468205470681706030249241030912872302824541657933809440954465261715542044352108185697319053898731728924559184603250908993532785742795953235682159320505559801166773908037582899645794981879814344672566202839101942215479056097686668144208082092239688504398094687115240841218095451705073825657827111936471152378527355017136354741440062251722417752798863392799997171670311829249436736783307436679615790354908457023779442710989711270259077793677823773166149754371855879611829776732258790017233679044108549358717305989399916747160100609804447396718658702847264609604552100736530129915126631212593518751620733336295571485956451928760267517352876275091061160182347590780848972360683500951659856398138164816233888252310064160948734780163718307529258874290336426089507134173877986932435255543182511008952675844328355168275295936705560655970737612374686613875821818883937608223548200264618818669577693592116861149416213560695162266344736286716687228127481130694063365626618945408925663609222814230237743887628155003790629661418751343141691341220890261510737183335515162442635024565049604541480986049145581029019423676224245141462080633902884455934559688351687344359475498924713164667644987243675513060685400521611395272143227164987518878759031278472044375948571169637771998657137545674686569847314818253632359966449995549759770180256769557686732676550262994492035780248730063953075974250649729001294703082055825581697665184483373170858261632368318757014056525385794852798301351845226056255022609288528262455691032236925972642684169445814861988450828068735105298797982136085984021407434913488562666847897008874672831032376145657142744668318992075742792432724675436673581242014296728536758381300098583596336787883913228605372775876996604530904817657417439019248195096339719758256659625508617029166186025682963692457034318664522436176648563549708221220589590930242192484764179594732393900638322303899406544709279154979180357042002688069075830094397448872570774098193053881971671223887906927382185614225766054406189016780546358964292519602766354029580053944333754886810993471135535460433610096557809393925599121217610803793428566535627119988705789986603876428035186020776475012480960918808073832242842056674691113191077101567573863644454031122339111814879389734226760499644329413071932563489980165542790858225760792509893834691115181462637284565061414337246852601782121195657856744111197207325325363725824525431851544877871157100948282061975656368228111063466789570570714413644698368157902850352492293159753015553917649985609997324411193261823322295673474937302248023051086236550306392512771799344985221127681032254534532433177478586924271642279277194658987119513618604919264542654947382057593538996463374491807975252886220066675118070524421064474227195363449260565541470405311564096094588006920831768846461964734174292749448534484960151892822291729752587664757463002926616555569320591597233294375824176440321105430639737959820745480240980687143360084752805899653869007894471173638617784997350379934621596197250878150909927894527143067930322107885258199726343257972483513273645518728109767810017162306938095001460508882473360909550674790107696565669483831046470822607814178875627602882157351230475389453650245050140091737440487401489959907155707680286543494318411852789980122337297678275252952061835121724293532413469959808619700151626378799866215183153412876440853382379603414229331037505578932036839567839953651550539394291109188665739071332515334332058431958304063593871044534942221580598073048292725492157116992360709226490425295174551600939115424862620696598154704669773917830400462042598148839453825245911532714100950629495170666619214873312889254621273087458059602730244458422944943098786331895996263511741634562778793509104687584275134667837047327762674775149584832420714426040736030569556834112997107910544739265397182245802260289897543726674962048841652610053213293179650294519886770090095804403608172315969460785729945470304747052228572360922378306517377334430533941608415969558001137717543773508483854863170233322000461628007288583945732405981764336826065409180790114725492710485698116296170199262771356773829304870091589423728765267109489469807481421913474094204555378229066891809133097857474035570623802146456597265085367534608902967314920314121038329981385914340138449678217872288771295729877516788873183704509680068285800178544233801570002815366505028345910127827904423985227449561208340055576714882566349719136932226366950931435404907663662512409038237799370093695293074574276270923141505655963048355338413036954949717691870250185192070469021443741135877352763915645870163455327344791153097363201671848874059274487127921560652482108804907846656027898828960160382316854658672480988962813723753590455985759674980696990867461537564649381685380296140681876498171894117190114873558099782703141598374402618670968529972920762614891668326988717882279333105994115150662568068359461458476468795793394436612265660518148774221946005475708462850212403167835906667675777239120839789634165853996258353960901576933415222666531464826547082690947155279035407638363565243678426871385040615273740776693078342523379655143823848377831240230593265453774418368810292143681052276541619211335761310788714178479241329691147591861175170269804923062740581200550147904506738033343135579928608261068907583648249171164200915021813873373436031169636326248443571119746005439688924268554029056357246145995527891910425034585232634265869593989796348877479693573795338512738192485955484124674326983053222206423145430734901296803725699412847595599428012930493363271018103926929999897441994852198414836359067121226988533861947654031429807935176538150242217694853737548697113169893089870874775310458879063024761959746621656625837289842024264095281532954513097472801307491764596276973631568976228156542600353606158294491835612471175121200510605220062227725159028892256803042284556218340720751508204031334901157482150350741492906869999727345581786576539839799636951726477875285675903748289409936883136652822205170309029428765225070820192131020677394060423020972983415224848735862798840439326312435385037143194958262591181444409571895891356853586332734381373331652663766486006255442361626554632444522703452082985421883442971917914773693045786374804887218951946222642706471410960435768301446053265536479564101340680872863296519473054635062033203694298192306233245731002102602648625143965460773355445152362121118049070053672602779133548609723571985663487811751749781078898075004424361451118397779754135604638808044277287598622014533693044011206141339106993075117256155320503662582015765617503172213099727285106847939102293093426709053849531865945666406282090167417431409346818029615100246184139524918055725407400847285339884116216064336035652282760688225240275530548224079556670713403263929566278815209950977499693510902346417576981543154762269770779914798110420288367494011133019361169740534874810277764934295152413023678947366395907579887935161732878279870111806891804219841201636770658180210995858263029140298025746255884014681870610898200345366130845394688052922711838738273012145111680721610820802475287052279088194678448344826427353934328851552772458885401061390776253375657568931927032643593936187726097394763306931232957940045185279130992377318575840367173436485950486549277547503490865734850978626478076775071574903544364019631088939468852610826172785322633322655403430584504934710474696301210514503777435570764792166988255292102354980324413144175421761743615947422400321521227938235637355873641592998870868706442280607269276285263014692555209881055439315832668578166471298479914318689970329597844921269396134947696365328772355723078799328188318027281228736406322378518868395181878708809057444151528052557832754393835386427472469606993854650749636923049749823475606933347045328805115770906679247830405033433885255436176711740614383608091284292031220618909517019048069518959575315290819323363630808623595344427572470249117825194651797461916003825788209438908565722329043623678713721975018238820223997443234471481282802439262432665903680782535607987139641514296415899182293515192276166221123260774488500892385854667587912766339168012659730817882715791679484960721473046323677526204216842065337499017592976058348319187327756264103892006467673207694960298436290544646441579864395528894298708914500859635713238535584028493351934660408299629219214477928872090602617724102018789893038462469339616305615705102493560338531350456849099385037167731048276059425685139573086558686143452549270165901430541816430571750741596553286302168706636545777090698811706169617239880067111613461207705828516086757200960928602673048063627121751958824661439584149874918707741746148981232878217162257998286091436409539407757006821727230880271298272898646368704073530528450762098255666398393302520714101578982738586591269595420805852438480064292132302870482435003576698801852132499882024964341140235660435138676387477441019115414629202844970456409312311580548180127056325237010373943830599017692052146481018894451229394686407713948265485615306706022916137219032394470374614451684280647208902568362519362239253037307472505158550266756430035005312916862641601348246065956986891891001257064802925025903774467206745610384633407244101147026694268432924095980872306111812720681780630372774963774734271778428634678376707410437496702029137833573577074497635916444292762900290967015727724342083582766287108868849364307883883911036028974334102254259731858568457249407950561408528109951240206215859001436026818331858970229395647821654577475739839813634260647446302337727568500839504518284862191146640354605386409274564882251443779748666914708147190535094504200374572146737908334332181364947173413701599193256829235627776713356673263671134150443951986703391103204638668106826009063229561426867959870389681459816036898939684580330652140099386758790661070232258877118325971828865171009971876643943823712425896198151648486627873340815337996478783902344869003298229539036866390512758107846464410418898937026458426006027642256540231928242326169570073532499466133222426957501363925971823120168771878300597868638500129237105044290731087022536153919365061425428820328277221589025007232314968562759961976623120152874493672462814202467989850109922737933845119423445987604754766448581847116487096272366753765313533400291245844277939040836101729049163711819682959145127614977025694300177151054536507722065016832769496432325046555986593854622968825556136143961616235332232084722703385107840075655687398546793316277362880266125635037634127893183398116127606423612552178688171128729366570532371417063914224691063978194533157205287246379918922484958679528649982019847903137196764623964979634104315503169482707623444312842326502036595707981776002649495155194448783594172629571224089936654454632339462890293174021234915032408005502309995273962585503023139053689434772777876748023785760592181724267854005824860449465103845785616989344601121852784947815823867102319934009152681770027138676213602036398293308110231252658778596773243261297188742239031234625336995786098265027982950175293014045170171824982876201821581746859538658152514196035059071146266059930952280992064040462049371897033022869693101530494537683968112500160748899820919819257412512377487133131976723532930558387570263592123720994504778419378632494249617236496117862766158823825841014445180299770301557930680425884803947926021310344560519651627898575575777361690237210776790879171583515121146555019385105421842689970584749110887039271615710144817190483600028993903978966745715103300437838495637283907724160074726612962823527322677324237134853068469623642742923709165098891283951205961390831515098273506514563446210864848760000668528040522177917586475332901463265913022814864015895999912477693056110154126261070438965086105749860047760350334650431235092627723420899531189193465905834154518740294899013838926885536590263565128381372195577378686819859730953675970733554383827317221386371083713934811825968389850129469755044540116292340905141496563147774837297858222582363170150561854892945203282920322076053631027259534385802192690776082516450931200365147886064364578726273738775770189475560504452951436493321743577149001736248102283951345800561046010828244444400865065646104021538639191857599529254823804899878865967979738787681859569507824082272210846152640594121636365663251417122854957082947607440542597021775809196500144295991690621862047858745862589813819454416828680072953152304142776373750092151603100856433832901284332596908096223124213532194294107033555206527374537025321067246426218326602448576423807919236232081326544766984711443304628015895066876931667759524662643580535772452770383953863175349841860304877540432068889137405135250687877560417900879511740339923738348383570498831028575893358449470711819637663719389932930753211248197916441951894189522483730408003510687258785208122815142608888588161830753272072418722494555276188122267895726503724622194168490838928944139434204425636541211221691361592774151251502853368489424101431776074256582598684683356371510462666820710036098464334609889177392972485406044390389559017596974283030905777203089352283127353655479591850006208957082904408286619973502556731463302466818804634984808251578462240072687669631728884880496862705806129381471126605152464821833011515409113780593438782582514261122423574499943367415499562374922028867868133671404897032663652005209835803133739138796952073141878366865237227883981101463581087122567101809302828510768976841305340561185631849841106664971208489875587629502402253949645646737884903104431273064270582326797277232238686571239659777559813578112603811766041345639890586214216249446835718962606228350266414073314343032206846558462555217413265404956443059336599824409403228236074340959278292912952230035276941485315384608385349199151888715420514330831343990614539714630039803352713884557178753044815046046309541598872743952052415449087826785780926626030896773670347937539725248999804622821817183576970532400840266498390081283605693391541186318185762735572926459622043997019448835866146966297069443429542419149498475239781720983524731862863819164012378975432934413083477941035088707783301852431169487563966906511373048074487228665786636049215793951524553990553448758023153923734882434216387908573695912437817261878309312545979392445727036989682038340291465735868447633353588393443662265932951301858064373510712460488723497577145211603412504339436685816569645623588252086175314844635507326407493271481244966452081691563104446241861265974883819982432210705073946096173780395822670402180464007872047102147086130707097878094272749204847199959986176557216380768990356929569635826666903438630580353601345040275951761257770981419522883555753074050306041924560371579596177949842447829889352265481140487141148227155925542611871611815467132116717749167702053441034444010101451613368839305492511063433398273299962411870321640616284179754617088116510156017976037980099979682007989561801175349027205369894951419341042724795445885681362606989021465639224384098538576867512752487911380340380107300288399668369884738837194281701681701118964416862133965140342323204809835022632560287407146542862482161779349063058650429553597335535040058617901101473280161476110541019172167641850648436554104593827792994019847876049169310309572355952148217135359263632998564266141164569947173062927028356441548514736788894535362953280048854053240764595140147951813434089089150797350494185064235137303581874929198803465257207693525072271628198552710097045743890838145047743132913331134801016330177156891086478548756863181264457131111046045036505524213710986873208768701120001422386726909428608671462308763444033981833768995458856542169290482338193279146797405346377919787403421313954987282798984582884781818039840725475163458772668699139646196335686968962974133894034501351418400481097055256145464668718074311861239325122079870779660749604024078945973094178575715012269804006266852737876208265402658343201817262572547417700692610834884285091768885972546890929639679309100298799028341894357029549105516141591905485594265156314471342219363831251939370188248014570820580590378562717046831518637276384503626778486153563542847456424561983060204986507602220905466762477073810845705174090702048080512246458079153774014080319112498258998702273007044370923143486226040398370230963459508415661713668618308261211294019926795503452066692232985125253529855587525852973179705184305730763580434240851396025747928559922119556464790435143113805647623484981936039683331478281489310458219321048421739793196421262339711142468399808820287459893964970315053053322215498278586771460013808369342382795322356734095735777856407017749966674717645927658662224429707969926122945928062292690116611288575398096318784517783589836829570191323877969110480327128589964967238360367199914946217547631756922272842224756306765335951210449866138807951819136356684310350594281360447552377709308153528332060859610019460646810231860475982604246465938003954768413496372432544506264051636936318013163944676319912889875905825548299203966489112623888820149121919498655985139088036044334370711229708426562288674614831337154160422527736448442175535862486288165849241343340174963614398178794707263396471991707133843253005993073451814222191866031272464287629942808243178193529067599944283661277863573451167422536925563817806577740197860226036496435395723642385899566764016341580742085165235715494640642963632441458959960486484317317269122529090876471598735894134629879193090134306869697204564266242638268131052641039295032855112562518321229794100571621408355461162519226604822250160124097968075137653252733604646353487653274021280993697921336356285657192672187902051459419814943067423621039587037783193327836215417392108761280171355596558355724480571177721572246287973001320724456119221453761503230661681997577950853983482098867375797916174576149709172091102224961917200742582689073396385650490918511075602990901854923298037629382409797827202845710216004671074298924619832964097365333640887794630428704041583985379960708591380641943488539136714790264976861829914203230471840786780833211671684769216613767848131765779776560559369914148906158994962076981348337792747187862883291175900365362822148852129973845480919993305446962347929975648117013960926821398277109446350714167636884681316867596408294343510366342675320087607911020817695931643890777384759089312650517902012822701402950449011354797404745788255038878467593523578792028710526097322443962691162621674190757553655696740600130457459496020293710534159835261094293312769458664145876743222042091506423481225952010521334042917293451254986271370153134294113900584836614187272737423248146036388857662665081203086996612175422681983584391782553554489154876091347423742546469565486317439508298521191010752172640874682523723566731320139540699746601804385379274591350221599114442118113394988956653504875537702952637602288533878661161762376442678829649942107070824034830742350116520451690904430741612985834496411063549780366826629784116186544212983622107143794587060092813732519456800165196430178899931631677684237645223702671258652549889060374537902079843193981482642327488702940148808990347277812776793920092439653620636192290985767658701746420484305244870295030916141451135527354911661734930739886230233010826006674621609550321490966254487992905058949073074748177471208758403020882000523223727334921672159093731767046270120145651607827599887198325991623985388661965373382800443228977069194979731626416508129302199803235759517603177708150975195817880410387496298210071398743633462051851182801891482553892669217187413564371754532974780227923770097973561362938348221564725679981940130857542997449107658654290162648522872724204850860943270513033347284177893298904771546313106487618149986566165933929322477049035139396386454685309560362084755081446097821510514335871263159419643647689004112187966539752151438723740991808731867342160712294243643258104490935083186294450846829451612769612029135130793284181383174330091151672174720801094603905456616127379703567886627246957206041961451447971061967589724692073799887726314746163766705842935408009898014068994240113847486478284211535567532897633519017072897562053860187552897873788612563086140607937188467799292615851374086492886085601754813938398281620565510746810955817193995983831778152673583698489897090774751547536669877030917850544428244167953037203114016152978225461851792765540179019364102920421949447960687326161614169913592237979551007608165325768447683485606075368648334975555553370402894685667160202468875771626603263418946892509721301680542561114006302656876604247222734307885639659965183008226073673365257138875626720666546785783991384454586030170771980445301804734093700310159323796781930168427550052606697343435290742930162085222033823457468505402227974328555951745449705614653816684702700130344480201080515245464392698272636517572148977748951280182564618876380689129118900919785440080446176283638682156186462575730899095560372209223146021486287684047507189552238893209142902253320254605316532863262795544540865466373896013461448098338780168233730544778418359988212145489325800767951571097809578938500809413937150778176863014213901510922118266606836465441924105501023206397051577195973477563363621140273484801797696035596123999646811440725777757733589269558171532500504651625891075491709802477674105079148287492290523479571425430412489873636558515016048166819171272751441978564721183560195703173101325327499486831097646751167829826379554789943343174116746329526684809598238060182257299837556735148662115806273920698424993210258258436515349429635285936900178260492370606730081812641435000497176153244811684363923912299957020389438273671947722568731545420409859827441695751115859849809856303929809289639810246066341996210512605373613880840742711678230211005880615686747825884935522094691873683927182579433904442880403359602948311708150970260805978108491368407515168878097950307252914920334272186317090472272811373439579958088168749880321978562649003337377565282710270101127380127253340629025863214226102505674123383452435833329174980038098951020883859205032406799653906299800788457598455697734563454499815564155042068095442583509609896762305706945209406115823852735171218467977306099737928236818999783765033791145198584824394995188827673082935498643423556237400042742527096404658113040303261034406451898575125125825436468060644506782070615573564710072833899758945494731322583697385267624832123376160396077009204974451714360371129656460392277505945737072989122073024103728899698143321068010098293138458601504310021620730404903983244108051798812118657867424855681526437091776405849179833038966004626721999068257662311776713951240852263212569416003403362490626167558748039332748862916474582344903230171721128520711454046215241211399165914993151578242700620626299982081555789237956061104956724992006058525069720953288051540720792076455455408460795739544943585072037484109884767832233746374187250957747901986307595855832704707464497442171103403368615560891623514260291358078218097200786299300090460268707644476939690391339077792326185197726956144533265560410001587166361804924836145736312234966770743866106038925096828214654824282332075087251167719859608803696510321453775194880799622209424206542668663962575243573233707263675867981460551100551142293006731949313314790839314985417051316868098909528926820603236132731663878917094688250014852482157567418946234951740678745966846531074612072372132411535406928275922506770764739415093053163515933267026832473897318122026362607249921072427390843988914870032390556682187873352173962303925932181530480504758301377214362027131169325982216132705587495782518388491449114574063589039923537205891350772897953137201333858453982146869680974678984374364643768100473837184717353759881509689596486928157984480117748190663355496972375623680889282282139032141014348039770694784662130383598641831600789226653224576561429318606395251650755435672711281293899237191155482022434360119781370843147421910436330747171464344791968566033015992529562778149829421502113805034193713395926877811691329045391660173137406911076131581871799884872686914855104840642678765967263399064781542198708749510796694560206204615073685391967081718193867070764259098023036575087569259018780170238521834537199361471564027038284963473171183565612743513692389817785347025069599258999672356920792653312051420347884551139088925240739243259094366654767797472639560540235488375540373831000265073032094841912489540660774095732325267520530717183697604277748390401458502888803762070780896846431854091994378408322875585036053974035537558563916589884360522763922355015014351143069139579986070953687031956543654198787926873331462432673134885590303810195103094401139649159098869022115422128428220927841478334840811981476114372916704068459656428644916118552417828360529090288171435211823555418770217107134982680957558510836311855319176974346111158374850415266271554487039985242840774749823795361836640271876785133835992487551196977189098515143586884012121038083973689188355735579177365397688611175470572802135280605127370185354247415902780320433172145251728455698019284792310668021470872562860077218703488758187753835234974452459046594441648527631199882142962387718232744125072571420417651346807052577205414858473299975530581427169347491398530818107029466837866424352235180444075056737993382590476232895630407488793581017572905035650616925313299638770867626460914552161462894205182561016463719833542360118435883861975828105754369240764707076415313317860442370029520211508320541855788103450462465804514250353768216991028150294248184497442589220675595578700568058128312979972313281802758318591021503698480283623719105591549316184342694934232036359558284414371275502421696008688176509603497785232486108201556138403103718816206843327054877585912070921349801198585898200842473137309074692504497504065652745937940866468436304178885634940207804266602068915176662204850374558046195450333735218979822128283375818555681488186020559903228987454688334144499937595488593733957000334240592529872297540637493755098024558363734462514598115231550370160299946152429802579657117134529384087390015421603980560087919429838835166509184153341219459371383588885951203772109522865701297086189702543535573572895401356053429606308423661877395631518554753551173801975318203549360650030654077694189290487162073999996316321674602789099389555602549034129293813188869659050903668359900771967000521241449079147411855450284222471873839494660303355586051651195021432620109651864224977616332276371894677936234088862661884543277390396658427322326831684478143449579409157101117219786625907132782277193204583442371083167906189682682229792294445570821417167183621309813003889498777010960977619277022819716957599810506147607324339547755258954296187691183398949825565517184225559397606445036678466813411846022016009742664131270524919823453674875363485839807653005120446546778148994418151987317635986354125398000955242617955410969856416420881173822452990275005046658543090450916654675818859973419600810248392943154724971705684802777664106321835906229581407383543992512315803004567805734476184313180934881905330536706377719267862211524779676665725800148856694191731430551220988884419148857697075606651457521686942798931196025928501897743668490205768303503749432001601502373986548577730118417798192838044621814111011394729238329208564745462106251928337945169445029162813645927529912057601223834221035990597448985761574963392813063264842426776418675209565817532909511835310324538295119082205577746315893881735111272186975396185807817731820037955503377351222246296179605687847551548862988354475753754693392374743940708062224294137437993840420068449460355309642388755887924651174595855627534038740846980606252893167152128822553318905294627539918150636785686695459194105234078847602935676849850684509760272098014509720302349125563279350581053357829521369168160728356421061167608931666475662459171116746842244020374802121461803765537172358701872791812765836058678224089183075741050915380848623237372310959274443670235477253629262369245940824285606392645816568267054023589029668669524076607054076090837588412901574304036919209315488864008383778214299549001913303732531868747053533481411317528535426580600625543758165967603333305061495801340899706108557987151559935233438869262523964051473537600673109393651110044867021667257034141668336824174821933297865468493540108132562526973559254158058202942976775030450722030539995782206668726105976899791711710126505904323404449620082270467162910983186045946890805976765931465171766321996709500589417806591256618480136891168838083803278414774672380461602768192360604778484061833119412860200781661193084111620383903245062148941024181332422842180688320694224426805540750944228430937104307442051029845359034287151606484970075831821624941476980803271307601246064058815692187143287935162056553858958340086379523531302983649168198492375034689135853688050346555942755844194719783056755250159190810974485394740476923081345508174719490838008983316574735146157768434814658161628738887153054178015942575073992716502916304726664025643637904289856423233399749063671903662318064058183157998226790550743693515682310547842901595661135669640494926604945974017245547764444477614868767785720635560096806460216531071921237288355531336511893227577476936406224707009026511855018652371373563882313684838996760628521705401274567571710789237345468929170447951438213603554756143776625055417549645623988523387618563865382286910598946319514745308772046433921665550223115453509913776067308985672841971277140872488273786136515623479621572593747361453599552630608398571800832320078896437137827224393954386522575172458377607262521846039434984320932707135982834249153323285065156288608082409848814115712431823711850040575216225719808462770066482707760831798837517764381691829654009711705851014065923534441144941322015367250149337108490186089138937555334177227999426547349225585983367929697515007786832652478430575996442516898852726190446503920399805467133297903226984645212127719598060061518278548486505199578827020972550383138085951380907176323577198658218579539056898094781177686306208456758006490925472403271413990411779502337185778814803924050413643265127348580898567488288798759293889214077543281527393416387323984304041924177328698467906599144209982154965560710096927065719837606843697998429114483637722892449219294913444033031756058686293786728923280575968142446730097154651092772191314266145747882311314884664793159394715934573768959276110840953767545327347347924617070125597773994324707870682011288344128128387920891553231140712781587855516570186873587812216652594496798142393467672461605667887256859887317131556270133148078898192706900599210746292306100657879060488772515024065930249084384384005822148990150930792090777786980673913900535335485151651737026416229043952106641991268100047723102615723406695611034779247017975894545556716514617953024358445924212362904521722689780527219680520534221693195038248166627696486259024483322491471221590293823074126664471740555950575566103327142671298701343030987784735114765261744840363897009557684477862758623755810546280967791878567416330274283129267057522541431785188562843247304441773891391473674657218460392200902908608283936452926197168321825897716478255174310555084251600209859855730611221455944368368920325629097418718786096450422504622493571752622770144091932395293243167380025308304314383456495574436951091591361413991182025748345645571126321433512051148567004347987209401379099435509659674713490674455118988722411713458034900877999120868519394274390891289066197553765761390682239940222174731187406866728452560906261877665720808594231875677015400551862466525190742854635058874190730785576380706760852821946121597955743234913624224947090887760467500379969603581066713253394359085200984390890495514946194646105098002156356598350005505962897091966286398259128265589824091125946940446820586154227832375595248062142349423354994462782891369157598430928960302660241683592065939148276358614039979698962720095892522131843335231256655930561868138498221405445582166568558073443983840342007868457464117884762159007689454459142316879273432101527012177964476399311613438402352337421108762364433288138682593114260158140225578107774496376742022662536512620577730260370777458852343006188729165237810963223135123304679236775445934986650838411299185842359268299627461621468257277299621719217342875391783549672027837153561535250621690472051411629606444422455288712499161674920820993683052591279571098578114762349427965759902980929655973342990055026362631639954585890194506387380449926310032590318803483522263269079297999183838695498176447941785687773327656336895052402326444293135199405142227306889581639353411105942216747231557105370205432868655047805153118773079602538420938519584501146179089468042042719245046085724013283750486954974596571443457394141242845898512528024463428791003698355721678429080031338005537794050328541998178470608720055531558528599242114990819805676814898874007190265750290571360823044851813862797038582520654249201207219807311428789483184451142078176137825429146132873869684691215306291668644333182558356690926642277891439858218042797404493607917475197456096597449810429654596214864463781955378208860415772790817733528439968112177257360710231193172107954105743831836461150667777461984079522454048567355048076591960229456987040117074418904785982512392019927259230235315347048885864585358044957711547761019064271390393724946112937610844688823110021456411381034706830378863962394352283093601814133819741937227834700061781182458327087346542496053978653991972285130269611418002045091736124328561658771753613196039124679803667643076297553259260674467245224432540156996934841422603990736986534096955157823431489027555613717039466765953429242795319785722842235048638899301139616540421301931476754650127441401766920162965247911263259706097366580196147366915599530163499268569133274208841088223279638732605533404976227717171282401844666034029860426766109909519970423213763319593384014788901121822105316897011465221959441666506890780750398716875084629527186319334059891435184523991524495487866839745588172203751813029816102149405234689324435535984012279192852747598552016008413158225890815983712920201169410700689388487350226912963297052700858056887837938401142947250858000156266541702196505281276071727207318519606738930820493890156469102425548594482157537455251371985463372596402883929820670464944772589690537554567852371033519429976796649314292584294154358878768007459267779647672059224468982816163492726478467318254185542287921100714932063983105937182769436765117971985584200915281431428917580950920054909022289820810795619646040010699247248862430887053345049464842395764822976109990757101806900169878844121263472321261688255227118582571266106683835735324505008959073920715719722413191048906230942177278622644391723830830141764264974767344999561375580991694449884477417035665016572634866359783274781242190624784340617702005456261049699491392779621350669627189721717708502935519783356162555036079836100347639712030147057289219731278766990011371014643293741167092142855692772144343349634819078186922771586803499606917499505477551946031548763938426042793339980266793039392016416801018250308933131097938527389553424607672451464491367408157486301223941766658257438443215688842450232098693398703904856973225868104968404423599264833965600966593906686481542225135676495540980468020993784052567393293641351636342661623424622616494949622929359040737369048725087600333445774824219373644215613761577127173941542282581773540131782719942463241408219172169393032709675280353113928921420406078061433826964542626694380521204782037494395621784756489132248148075305379602804621908566521730350229626761447615189201496225510169190694924820229366501265280258879259755706711652131573928578551836992679552004704385806057070216913839926753050063698346141994352972862299702768638965831680011173765977040803641273523354894391445332263644632418297956338500000298037634188321432704071562979029960489250326670857826921122989895897801713168325845946448270031872684828768214759690419343714908136675667052677428507675856711381873270351610875410175501405708197538583248131838329938668235818816648631937490606052881884842739369158117843869416672463898464702797901326447315948423700827879404919454050303244638874799745335234361389457495029205287365608402750607584842802109914244362294119839134600271767476050440658941806126606805416996468337576580903545083601233071522712260051906765604557022360896955091418638927470636067371847376897267581305737073377823988315777534761634845426772380005174514369137104140019620498865308549683630223206656076156841814519170239420738199908359950362070763308871075505062297907072993538295155435052187631711482615443043343278278045624488892641161016795986609633677871339816866980105459314565398871597315826464994271392385970305970413266764861192597267123957304593975085938121123657727434537197262487431694346765959240311864982560106118307218155902426246328170716353217986546208424484266266782839928976212754410418003433229744424666972758752092959605350393944867856477870922285196403620962595495588575020624436167363933937867137358846066405799168031990482134523898477576322892373780599425513714862065823963951272717063732208679290846495871635093195485583787197818460524485064917750704443061361315550651237313695181725000786714100620141033450513680210904553019064172050677801882210706266746273626298894785088109114275114749964172789346540167973011144629780068859979601415494951254000700944263042303801326700768879796062335525882907259063092098272081078887157148201043246799739096673191284378579787498512469185748420365598923962038316197500642841471313869682913786398484017382713631726432751793133665139391705615259562907353646661979998015282258876980274079037675938745588417994529158363714228208483085796180957288384446757874002297140523342479814723428539197544379785317559497312074008951364407883962192913208011714834934682062708922889361610667218691241616631856029252007888337418243697225999872845462651792753181650753425353648321686731206086752985446187265754480970548249593151456365496511397256935655605136225202014586624648270883122236762692410298139143097623692320734783675409194908220473114256785989459668129687914321974053931061394422432897237298525550891180549075014531543380428208275518865774993375098415485586485348644320468444566777159656163359071689006182061283472828782055868246297132174660944101951387149876304189012513661000339716657071705300501634217744085660014471393332866107358643567487337760378725318716863951444569297829392421906120295989381926633108105377494077669185330744690502191528969754087749342052129210544484874309607583735555419455813868737234817984889696625040394750446413383609203773748870114475057694018215659970405673772745410395665335578506486374952111606317090368151573628004238008556550302743834259759428084825565756325294645252985241297862459141851739878255145606310327817525580375291759910694930110311845598665913767251471977644267744745908392739433049122945528769850912860650394437037503443538563790076735099592381579330993298015430738243823275613763024282975663826739295015583944032878523760381259772409452571573392278008198101317721922735372406351528860881739039254422487586812284233744874054586105564330023930579223538921739032214130066581916805173874450739222785911887322634195912952768488416713480868122434468675277770632534577431819215706728965907265697427280887441733011104050985549531392565497988665933568976318794283787039035896666270891673080132057999513435971957217108839119394925024102047302964302236666190390296822965081354418071775509931448612763846961691557808746919221924002245899915448742874116001990158278375995124320541912669741073624194568625658042983569862269748374494478562063089789991859167551626342353179298428748541572195072278343931767585382559012728049050460767015630551470881233704131678797506620782665135259616106118683464461633654425749848101996651987249616929051044260997845552199363441713323700700256588276513740272246041722681767753684609029625128550664818184154669287656842331834121070859255133200627738773967493556143867829060581047607025581035554875201086142159784604217907598580279042367523684054773096414613886207146919896640152796873334791839665373196119436685277840362227596926820174346834983146842450690648163279613755531911734271184042465432446090551818094557293607840825885271989983044727037992512390626123838025547175219785629441013927425236273549853179062497889424656177640198263870786816120143121310551760995905849601114960604176988319811876068102755130006419599761770724705543058754855560371801744153124103521089834365846546959454445785971891372667950755013412977401782479363883140147898116572518622075741406918656498763487440763980626374498580367823330707078004301651955773416866322349801131250338373585531210548201053671446358615322710640382464456800899307988812216357664929235026553620900966338157629208018703898361583330690042146243288626618913011349112227805595196502236308490952489377711922426973776423137034227765873626658372041749657501239807570609764084605863596429853056201843216579571120828317491910328310357129505774748864138001539172046031364553853535579670822391553519522646728844662836479870601117602879620527986950374063534508602752153490796614396315227782133890434330288951040089581128889688358681102677861808770689026802362450577671999782290891975436803462220287037962607461211423630338973325948668012749103474978119057337575128805554889553544812648247620605424555392254640231977484250582831771705440859624293897483140715431418028955679020635346645294642865329636412418288855942922113135056610940520844403396030593283146569873203069628201766223800412035563319668310951211961514673990826354359978449387986710942748198455684896102256048371540754151112936057953979092639361035874573808896853421339898451135447123210147568151942440554312213013897592851480335862544309462281225169999909872998275861219086661521716367363194040512315913840017504814455608458707065668641343825428929912966491814321721500524429694941470205042109227794141618075245664731259972617537549598602853927833283876955228212850680460719635638444608802518175904598316592280766655389515845899368560840019696744590945080131048243503213275398901619459812362127173204030641818986505690110118229887252503692819272470085107623630687937150206118982579632037132348243356826459606874712267063946547494266256739512257650629354278231939916870748366388560495257784453128573990578815056828082156409208496892046710073671632958122330975506453958586963966101601505187479395480521228858530234434118121082583250499354803179993340496770698649701173976930432941089025194681583262554565528501802663742918928571053838756533985632043414596944949848064280819953349946455606005517209278707034562079694612700915134975861610840068081483923497117255645457336579691895205025110558968118845611736415257899837164824706931562868837248494250142592403572179485904170147643081212591614864569875088169317218587560747643252477492650786502388057772593462601245965195950653217003645069331540982628079860889008278989751675306378363746972454642399432857295796771595350238468658639633349223773615234133372249062606190057445903257216868520003065327535247572928837419136483393531913170029929004080755917285820400711842922592073832900988379814879570902214092964106872076846110103260567254792120378788004724755757095246502292376812106073448753153546347186162155686114156115417186582692875644275078410956154173652917450041470739707809267714937925815040275928616239017105913370678114729149682217222355224098718234247999575386505990157850463352597204616014972396101582055175589658037413291605818913331220432780625839106092168269391740836718688173950123732935301985435670447775370864372766359223776357042911674105066735310934919516451122432383151684765281903070716717497224444241560900952717974719791905979008464083316830202020107254667877141352144768030257119529303806675229584761900771693405427986580255988035834726447138830748772185215101486207316254073131737268357241928553235690113765689114872427284844219915842669922780917608363915064508271353009391288162822684399053090919458326998544788690557899455461047220334572417130077744717072497588639158713410303156212892207282227585401050663058531686304218959999691344260547632629583502643040256529092352489446703804227604160629098630983479781861034408461472498237576992937566180840113295386414231600215455788783697466311616580363916560601973387806357253044470249330273156516734757971260079767488212655153547271277796487390241971240353469793703777266803319640680231985301223675974202161888624987598579527613639894726788891517299205115768195733118161098664758965784374493205823756262274141950922755093462093466587125747941461373265610644175702102006132866848652471098799488148325552591430988254993269407440024917930780787322862527832439298307392391983038668498756066429826907079411550335920608192320241054339751046519719084887583625621143981365747031314637718189880954635931567556385880027563306227255360912006175297517055339458833018734371456639445829325563052339337130280602439567870496450209216619530588335273480306991083961577684740652674070622674235399191681266579749767887993726040727097901942440829335415734001037792304390510323110967960873440237442532323734685114836961891638055988062015159333373242531363134092403256049181551049575285980835785665305405956757331547510843689984400628669895562619011096200608220148701544126296857822561656859083119235952406430681339769654200956027094274410072605889077214685711246602093374367947651307791397050420634904788633793041256158444505706671681299435767533552184125039497817992222674124427425923269588182390614690857288693283379741912277388054179920251931458071742511231199673522044642190268955988792860642907155310339514308375486607710280672109482934346806962528327026602073607714018348650893108129583192544203631840039992991828260234134118582672719323438165281711723305920986176569676143546550509623608411910116700569432091973523473138995942981351199492836796153043325341310171570220396225957504628252420494312522025213443138564752778042812711425234593922848440362055080900069045583618106409747863537837576357155184165018568668050738862627965371835112454272736566194727027084649646311033881591309005701902694236070304598904973113275927289211697889534726219505431507203013723837989626711091988663479682337064290026701517507512361946735821327110275037313072720060362867292456007459528376401614419804060812804006105611716695523308578781037183658910512722999811413988391538475424704259550462423066756595455138356087488433977728211547737118473618085353446830842471872292832045113029630970074350110324941980384665453175771840743599095149501488124833087770580658118191951612756496110970103050211094337938147683941624497958579797548455732656807123745888741301728388557259013862025917459780694960486446902771376976744784066584061430342627777651901522516557636048830574415645779863150260758580695769219006623382970341152841467455168197309452415516600661581032995995705067191828327542726642134520559977002070573419821636632888014224557966151028991766805950903746020082542563211649577669380241324596076637491512614018224818233519669359458861833532239686308052489314461255037453950743715185278020132490541203290054509311395879707806756273329132729466376566922045068702489784186508093074188560068975362815045991101687762037475600943703127612563805769896115557235681334073524954648665295578086968893814285662919848785112294734667485833904767404706188692673080567008291709780540792251664599038799663700665362154496099183468569603503936319917791289034368387836919418573293689573359258480501351412381472422686181246556514338123807224976154929107984725192817291242961574013044046650410731235484408685494573749778194532761198087831373834248703775535500196818315124606669042336931448048773905693086732317846443369026755902165188652298294791772534738901770292201975946188795575131098800885469639185305521427557144069247526019027098528939987055636212078396486333388934440961559950540428362629140286128716945660293737079768080655837034458772617255851164124464943592214927525056903593082268982694771004689068017113765638472508816549875725346208042689876658423713847086520972239429699556036278607163691549628581684178884982960117496895427578791294423810559806697353701568827052282095527346351430485659486963937964372117454906769746796504836595175529230553784802866304356156610815873226595468863298222035178504422773211401078919805876814523756367213525933866022144190654602951928075242093762517971134756202810613429836295459849519919461254244741283195967422932680635096868534624484214678979209970182951342837925783577849780744562527530916793670175890658437288249545058186420784205997073926274013592944356311346895287803728976227622152538435900660590132095413368053887075404070921455283015085165680214056234633609146452375847049350351087800826114191752969207319713899696287671375716068498977143131583662714616482263896446187741107057285558070763208038467073561737175169400920787920593184092887055461419556844742184003526178098587691490605949166633241345532705455399943415104187281668757872997007862646612775067467747701209046932499825187309430605565285583367547905181896029857279646688225618197298743496147643701797466442209737778180404542285185495530930927465876723876021550356838160191264205995679893819841697192818249185309204957405851065268334020830727890689460104510862471862024662620404231813642724343313406581560605755350870910576070751129954260182919331227281657991233453325398363639673579426441375188592341578424866642737621095728321108635268012250300344666822925091732061641210975241132976970983686179292869834210598263768051780186915877879770862599764197541418974403693002651202739441717137668947976732141471702191878061758617373946245093476437596317151450421591098616566611546672993401581593529186053493216841315424972496752792619114304971768023177886298297510444178310381084368983616980459183673836219520072123363256631120280262272636809351155571501584697404853833586893130636896126703649982260234434142378505758956937981410202416880433160958166511520268679187039349011624958653704992508086677610287442138288100529461252223408752158507060959813563652650777938796941156279946321762917614094336752807636225078100183681164953652137718857414759088135993925049418899438616116947111418723635580638559630566475059860581021957600076773958774632433624212565811398085719774825371020933977580323015652528013271622254475283478168365863056515425643267380679329412739785105023262499936514814907960352360693812335677252539875796408859686254415085680276825680637388494614579422595306054847755951152095899037308345217620632566751314441856659368139527172616048105873367106368407407571288511856671198417283318359398132004963678277017336126123116129494196732457655621006903979065260260384471956734677658991432356859711913000574866217035656391585083889668458029995900659851595203397973740787753794720301949308356019167215699217033733216074897906999765431794644072747665788185188675259682368692458909802549809964434998446945141718043347190960777307232898978000907551427516708400151157787926109891698203966580405131785766345176899818243704946249565947106946111091947629788487782617226219339893591792234556320194829792205151486666988510490613421598691052957318569328716331075088730063740602128943892245799666869122382002065734789418605215833086110358487440721111029421769431903999580004450986364302613692546807225669816025499515214478891749673644287252120130034809758223542587003087272349127617702456681819544004687407158116153984451866235641651124625179594962703584395379967689918308367793585837811333400160339840134446380684152009057545065788759807840961785327154180021030485710202498020810353635512113821020024994319556844351738557788442099039030813308623876883274270705527017438425437270957407310696611893282586325744611782746054939020227118985866540786905154566270543044092700368869273401991391880332008362241140271759894517107908231388162451870866468533213129460552800920041325815990504954496407134685074377213518033048757796274515137060778531680859505565447313180613070094712657586218783299593255681861546504690464193426642634523354857849320535869819547315664578545557111449202461025398780175467105707385051879255503296160249479062080975313815269867889343638497419617710910980230099171767313074075729337478842480130282173775406482455279360717169558223313185367416896150872947751481853438723981417387370025848630597961451863832056192878287626875099387838423752244029070551025763450572758468150008929795725391358809268286469058846374835440350839910024678107871123113123775538046525564191190051360442013547330083347903263279181896982722917991026128785874569305181560756389895517055731909695969256564742244821296441737798265671479357902372060714336745420280127236699323329572837375903348482370057082562005140927470350324908277264576224780793589130863925980765458581317862480330878514272190803819433354700316116730041097774353822786440652129405585681374839989875317588658302385234361822838550841879819885169173664603899973827731533050750392116709685431743940370541619160277423033308287388541819690752187309032171712598751586668022211477124285081721418644234509330318268505532449084355503168106020974265230703059012550215125420179217033745489258814365643487673488189810111818619887705103401536004796551057176472516514186227471954327156162530516233553277449640912219928200115901760054440392075008021918575521328107576698432559236623564769337197464597952063968403496506529824705141108241072308538980667099100771221978444018049983542038502024190514597504488586995110888229820520620898700854871327644783489970940443441998688696324912968293453195170421397657158781843657422859647411805503187934923563327515901445798088608048244057762384114116692033485586416456714413675941024266742864959612928461576999177553528176306055741978961757986522247506509761043968109267654918107646214230321202631933380382011810088563286487579114134413002887100509475239833090131128208832650003849319160798360783993620524916810631106377986626751394986876880205830056291136465216908915147600089884040756834880535494875929688709690299764027262499726010999010965841013217953072781468690320414033410282213697695649728301116904227622735176801763046842492153214205426254251945558811316108097657483413453246653718713428516235312414831204740879386527395331877820595326871148068921661990061526591163326469762420852957532818091137580438814841837715987501652059375970030551046306832657316954131477209523327006367062653069623591910090981010807243580245754963149606252764598270002527318709850131717559794792684401211583898388729653581897868942349168046589560733431553840733598618327892004578152567780760937007944717596452914367583277431230910457393873880579393826676668421751000954300411732042765057748760030701261949150663902569128426217485769018124216137233030692029052953357800835275183549289153587655009102017977665217009128371623304905195725750657951125321425918750912725175320310416805184623267554589995891082026274636899819146466260780821459658166570164020488243576181439804701416419136779930898338786175603471699896868528427022011143501470419518358421262886943236957716459121761613831756190684236943224782040741261266638895759622694484881876940419535377055437841867024133448015098382142194888013488437422527114267004753938110436040359033952624108465311300959595813418541547482383374065131215663117258309013353859049763976208010780033625420195392735837709401498155916619509642308774865522450543572839086064624789947265130917823828800815549119187280364593283613744748696639249610946438470939625693513082285628737899812069839904376998965260255831234976720357554053719204307857626933060852394238537130702182091943032916031196640635618415247346210098003498567731011175862939151534207378273233982800720853465091314130866985102706392584669555321953476704660290779618832680048194743713152736006765722932156808083243063664476214811977069546620512976400586243075467414873723936200861778148187972598687761846645105003596527602017752006530082082322853038679842282588289128749837684121075522138159621155492510810216093415896284664109362591092831870372742331163196877391876125370012035023200698900985225265276583639574443655280774006992493784180496486246950305254864237806436276800581457732961044833570923345069396706102919545945450772189613842731185200452973497690626664153370682969795297903766739963987295344821049417451184768201471558711610003638992699886226236892285400951857193897577496384169787328284860503205159024784856632100255684788585602633793870493394499213460294985364386695609077764322734672488300074887357067726963171150436417365673325094450951982405132440721864614365137746473991075125683892222424069596394130662593741108257201188046137945359955936291190539666810097799750313272005320741688865579774188146644710050182267273816836228402736812915491507238408663237633310803886286186019215501880742027566313687801758952634024820332923526939975411822529485943766504325188264197164156102865470706441421585310804342079435210493978488563883908960523966896329525741641188251307313394588407324143640920826260662028684558115884540024106463539260835283155451983600340363568218992350402151100211826625035174056892476819455461797663544030658789236457926429551964349087799547399796141393111882451397342664536708636673343815719849772653545167026261952159264828356122721156882314198446416124217808126053930747831828586016752032346456568650015664738567797815896945479831061914635968813410596731007513484034486385087335640452372355553951178937466696457593775008460394151629972406829438918726092474766317563781258824492159930507920546978348577008958106352528456626117831451964551977029009668808607343259033204955927199557954565734144292306952800655649481090219751117322880819699174957918531932047594584640260735612069324762057372358394565567824495804301611735223067410758879682230128916015934718549705016350764410573601178105388911029497871241402258700926141739291580417366585865972270415194021392935546079757759584813204395772991974026289437603398457731463629131779785431403708055673224228995943731823751084073558856053362891654319624153612341310194506420636209776794479930669308450826476991025560174845391127684170312528326200290329051512101169924834768988349818316142309205955349715929626126724143256026712273077123581512479022146686305441807855720648061643460528857810208616425104502468277648376674582732408855992095539969208361689550365566326554701486805260583254165256494081521293149757847575478624882732195820080542700057836341313565111470263177839042431953669840813966197231253840770605150592397364930825005920445560556331204888804889498703032851213872486527156825441192735831777027347286923074823284411229563046537592609450641658500745664907073236063125094928313682632879529458165433020321637530817771919044090201663100095677340133881961277970697535838763794122793384104517742927917724601568108270604991571682141040413324716938063070653083521605140786118789637773566851014019773143235648921997364516553305141592266425147467553840651394013439996485838358134190342630732046112439155584711070850386901196173914886475844621875249891968597020029334071190447564997071105268625543458250817646890125039571170363021662573511029001243363613361531094799396402721365406171274518198128832468108232502551516430821874479387337376448414465041039645937641390735558904929918263455849241399000763888332418914857927715806302088494547805945964691028186352302593350006200959078899294076997137821020502598237075270939734501442673797180167860145515222263957932210603799363042030696878223732366276935693173723524058950302225780391077441815505597591743388791524766502958288753440528486772246021646837031631573080431798943748514445403591340286484256986067119539089437616851856719097816778545216456644336777258331732630211293138989386452688063668575015144159293633465940704070951738693131254564373109819554393585761504069237978410209903795670372751595954508433258247775312600304623078105602742893837144104086851642748112062140483411618445998092655363646348534840922702101310411836239854346272563239508546644902619989354264688547473713882228078929446403193249432993384454185864698170341885745873880377883794524980942807478151453436043725364742377571430218919094786063103325146158485688815202611971521587878201129663402874767114955059900352337313074812748289782989080087687518075881676132181316867400108534443726890284044364145216022387340046202839620538406222374939607233543934072533306788527448808721028662962656613552428720681528612083689148859908871681129121885861722986236719521991133210832848348006402083078348604819551241491409638088278408758348949616147317301017106208804115889185892518935488489714330469827156912840568884781550451384614641391991927999576199720510694486164150422258440633986400910013302960693227541324356463257999693253344749063717428509912421707559287228219709534746867679338467629896935970885630976204515345484141498233735527657848677853258374947606881316653595510722572290080276417102328462138448047611053293934364857652838417225949172949960559404644438091150608268483755292424096265368149666807968496870243377157083687491871402703705124542283350116258111722142184799528156271820754435182285046409518290989137394476492494428087586494046501926273434110325693252692104989603639840871601399348524145737663784512890702208778473513349582176075418223957315942839042578022269625154799572257071246002510196013829112837388495482465239092094967732935191172789612457434825723449521897093307496794528480815938228965673204767049727353635241147525920470830186362287916112301563153945036985209783255611971015642522930868207746439253266393192323208727209555952337836421724511554994310639205677380043355756083651284947227495611253197619118700055580277796426563384502400903059858710966518454903845703021250892755754722015379599572268383150105565809997043825536349634486437098063688156799099932312249888323256865109819294655687490403177105026803336940281898910475817911809042909965467676773979383333770091674533279298742602373429307290958949233992119660359071088667343777197020378801499697722873337014062921891849920407008315711286781917889046840478922703775676939123744223816936499756766589498750795229214565456003039073255711052558645625332782909147655842890592472614037977926837751134695822877473685229696228324137688739282834102250738870259603228571076705792086291127607124087467720618457429004506392858635546186903741462533660722824360243964166827103002104883271634703586373073875354961586550066897122079426555330950891615014935216585452632083280122482967291130840208863717957134830097944408172037874760043593155800816663224485978309829572497844094459692321062697788279236784825229805899602643187491503638216098269672780019510718139688204237575424078282625296851432502165832132985522892060808511145288641153253229403742696880672287402117662127816984877356224406172948106628041014641979033245308877306609006216446442156509734699131880132189031983635197783906747678820146235667731156052027940698548279581954403094739816291608113627735728860358367431902164369026962062613462607596703267860440123366592200880892761255670283167172642190306879085347052625282998710599428803259555899755281544891145761617092550139980528605559408432573557708506627218296963434183805158153586590960280369406140504569618124032899897416232565057651345540209100616761453495202718658176948769254908294722767356884551609554673645014243482369714284315842055303153849318946841938684756133936772593213034031829545812741138929435962108644647061871687719937950004142881295511961008625971862565848532756042333801003743563836018029049640271684388800729031097059885321785916159297859185749032519858144512971892939842651055383751372762620476658469258672405514579140126455816383472045504193649627556320505594112637605196308518123946051372164825101884737204353392371375923121568782936026480616005237644527841374339445523664530186446020322895936182577928901327567772821618387563544729784513119202997433693247977790561985927076572053245991071227559000650830472643846611762006344117678413939802143363423874144295441823992488777609183397517789191343431786570624479574199183170986946103927678450516956464317902191864255775123687103361859818199998925847935320549580842714977851615003763488075063685004718043572772632607781712624953891835938248120364896613304894774469903582323661025100827727879225591236607759288109025549771871746840348634822898591255909720795681841676797908240985337691437532934116731669117858073560055191823286077391611054243841238403725494837968184017978994741986957216593698977778375265596534228228504682515752424522757421370873788424596472883044562915668313364088248874739407577034853013893238363486005312021077505919515401553203211207139183570571880935731565842298084324256545593337212868501751728763453086840333208966724473212574609905381662394343453572105672982665014423676156766628811322287407641418306803068109148121631871642427663556567828412387738335273931628101724070461887911441239130054908150897653072451842637800481115896145247427887340270536387286859489472117854415620127089983020609123062930163586062371775577264227627772826310165267482090653520815772538751883266593055059263292323918003228795602674991897060822225264797936470556560508694505262864846533541350964599915693862917083674151261803505014521316789762990057164861160680507034951579538999325954758106607961442058827325085101613831969812262231497008679888492407004660183634294723850266469964960227238610388716238530253721287193899537840096692628414127038779909184042860914943773140633280671304664763869129025300184674364067159689648433901492889088294171446353324217930929304240279859695460163804723916085864517286477667272415287007122964975200201563599690176520165740871011083426736052754625150495317226921222169003005081032511407140423701953412871970048912226442081929397218614718352123820889100358072558255359209119402197173479126870037703763519927299153591331639074600749720783737373929617365768000917778298792969771286315119344188592365276625842676164854082044415235779892217584353241560488257995583264502183414561749337719936193316579106276792496136479074372910885651230942181723042408160909878602758246932464096710256651678581526690713768035857356415383974524573014035435854022803668051861277493062949043008853128136479829915566959363087513463929178946835114449381266253265860167208992069275779491896274194893350466087310056971976713061588409732125159179868163268337204468395794163794576296054738334922497222425320743025551972871145263035419258009363030942640170109475170124884231871681069231163562288508603576345421253528702493283889460122363484929348894873063786752965692780523329454934976922674839951794094318752157612435025721865129397099664959266677790438468366455873859262204972402070493716591378354537168035603887912160905780656055305987135088236568762145654048796456993027090060056434031502126868028534694101491396240437878136951984506408243473253186124594181897098620644389465071092987087594691979939328094481319478283326081368210398042387176610760083469932761131736992471119853101307061258935826871279644902969462674434218600134218800808076942644378378205437576602189851119943524897974460146264977356936230655136492460117428570117620713219772750951026697639614721723047684537712976925209766758554741272332106154502526978430049382972438889950771065140567528337639495620612102540550728578231864158062893448723288896516404452645785792256906527071376059066357197814198125823560231395475745391679072331661590927899690678356309831676140029371543599523384970790904204663765137717462005749406097528647077401770212928217538994798339889590136452279625334580704805003923096056249932958260548325945033661031392724417505607766349036686625921936611644583849461587221835915205733101996188400213001437903856694464388488685273142471332890737526357287703784236995435836255103772412987653635637811385539384467315154142167964247236890673600878736478627348510112683115711941358590867674850218114772299468750978757973066409580191657862938623809089000595441309305283473345487131748627968666717208682471405644690750144737747970899006049894586661237705559255280347029892144506309553986165739618560983268776714613870587625280000661948110447514225172694466940072573630557248693641525478585374193791281122143079060087984309004475272094286742083060212702349131649141022474000635955437551687765422977387199478880550808999240646000028428227896552008949508881918077890032226150442395427405111368707472722498851397496225110026221316116177770595990153885651900524703016255476232056847637188383589134330805070494497318841887638819776696273612761110971463241369178633823508739631324671652360237945011855889698472687770218058894849090303776774001515097585406067005417071038463061242329023643825774073669771982796031261237861854695033656328758116312458123799730161165969638913193203852320530076094769752704497908083551372687844725432047748757533954139782469210396196511629490680429304239743767137786719977314001942334413603585350506532495064626098954582356941710396760199883998394048131586534583462076669903032806100799327233768481097106839265321847790803652033179352827291389206486467652985238963246838176627499933855752582608863614727404591578202654585744232700670774544195326080503911012177499501778926611447050638070530366146246351495473160152434806886568075892641185259870015640750347942120774992198109953375610979347801292902720710585599394838867357320260795654126259412094043742854543577795564835665406072787129582133746134551799231178148006053926060842021179374377155924954137434012825206254260149413928187029103523964841438496946159758435309669363144869094186287664267562875584161566897637280879132296608570110941360762879323527144799019738396882893410601866727441411365182371534826194523992961985077243556216634650912235628480330764432781422450103604066388817132322974458310489300343071751650017291212974351471811957626428305160720540610211347991015880471989470339559619840384600921286313273109214895392314420660620501315425085510506539238863934845518474185506263679442114406465932277262359458648301354946807933434411852804379382581098267127180927570423887251859503268897679684036221753962604125936336095561089913946352871105341237370999434500897502186583818289061693878399304005457159996039289178572179792439252111014134676533275604171283447884512453420291437681047926430393088179664806123031124594435353854552783969180776888225542258213865280000196673694479475560762886947134295716354020159149062130079274340687923439306664844849494303956109019885899966616662186628173916637544797413185110382894502630154307864687806824520751157273761803205227255452083429022647447062024325930609703579689806663568570980997135465801818695801521347618592866388487215342609376329145605571085762938617533067031088222498831973631794326732306495264935910371355082996327327773182241113739820328749338756396168146326263600687417913029483829244906913029224705491897459987621651183917907128005238683314997437040177337690569558044256338434162930698058027754950204386940092455695502084803358286343645164100473152279615787717934422252286728802841794990448335209794191231160434577323892270987591766104430996602435954179099257027165947624822172697762861310285932388786948999723599488501570909273058688992408599751710646233942998786512758892714163151801009898910923845671674834822498203976663701778190703791701361412054956070497636568522547197449043687376773653324193700419906018809326566879732117538254768429221958864991294468537670026650778204143415042953867220373234518536207110537363680972440134756708812810106665447653741167777301641558105473049426697951515867705461089963535513817632610866442472337412426109543998240020980474491076617903981995772708684383163917955148729035293172136835281022215216482647020552927911651834947060397372693617873999345205940398832189184479033719348645515400021238852984254094518627030230435327924250100819729112119552133920812652876552445190121517070109756719829307119742747452876081797411993511087853313826000046616457791332320240474713063634844951748873121800704934025439332732408783929560088939650663621899997640590726320657825691279297236316087021739187747039100466775780293745452603825013541802101877617078551653415341293019709607758100271236628247521751289390669439374202822694036740164933227216758377018787742141477669042512390537315239830926806575032418748508806560083184844333911773697559846165545621240980072302551398449085139052807658737088314127994712389036203619361082349865059475161308676179832750825974309796845120366697761387940671853685889844217589458693735441561773217322190891741215239374652150028825381623035178538172058617103482588180543443151295824559783553296946817650259596720468862633426278480294962966860226304049303970487882142627162789680504472198350873300197294168901027996811938073866674684553654231834782245238124286377424165794736658591781130794553376966546051274481149743639818874383552054374877150335689113745307147684885825558601320006972942192587245455259218403511632423873871795887899462518001749551791126181684066143259590583931283620374449576748674804266519118885872298669233481565237262840713235029884939757215090216627387055227158463728576754814259946042422472155899391444344523431289421986171341134496669402453688652538108812223786820618624428922820949568723387086741436446520387888280025064479891226420079907223383494665885043993983572955698986552363381260780286733093969615793146051317663829234966889511139221357472443896792726290787379727699993508249769186381040827593793809207909625310417134837787247469412061182658802859189803245049237091544654314662685723819786246025103274859550979942831305090683922720954258670440331553920477449746591148299881178910625251513382375949487650728859472249969331872598566383142450535970708961976877596904983229847340644110347775404964390545650040105607486105234402283796242548294448906311121934122597102939807901535769412101643877896677676168116676791944192209034712524673908906394214747506875940198051890078610182243055678388442944766101245119690999966577059881064209844181895773374716474681504715821704938170507172359264977453857793531036051843279084795142011923353148644970868826559184360617941045643802990987843786204837654349892451918276788420583840840976446812016038488082677847463245866594699311865486554938214215894316295900907783669389979224903159089080721763825116800650878936190557733590673568226608131619962135642213250440315721199709217795705767126660654170457855669120835382300064403189028571816508607534876393362100441616533256712134550544670267068320748040118313374351284567113951792689061756351139255689527544787382849629177396475500446321277427076472389167283581598164673870895632029250181511304042484591019897144037146045984624262380707932562619557652482094345026913390317138413811054531857683911316163608941407999374849588390216012868172623168878114211972431151336527159220400764298965589060236932111954453923416551667528750378370966691141651361406927422298511588816884876089948019217594618920234076219164369425563580727248713898128421082791968313198524504391538739603099809818513569695407257943833405148754829344700123862296501043330030332640252792852523771473890406902409405017125219002186188282115297683731885428817633057589540659140729397187250075800221518586294986876503293628066487599912203603556889771946231939314378607698568105189469097703179024759768374960015974887295000263320904944307318176909252296889722611946326542172747852883141822242466801159401267469909696799998597441003870729346000128078165760082102585828782854488863661672909036313594769783256658328121489026506834658641853813073862638168174687994812302275463786742255787983526578771299414169473929873491566094178821913815858832772237876548453103735011730797622541109113178063466813238117938340578829535847477704600925891616943706877655759567626494657893415772156696950716500402419025667977079535870228761611730777453789778564030283673221600697551014298213339510693504141946170292416072801336981639620266156808262451563454138598108061476286708480880295678612037801591725532382277021355340044662820959312078392458177906461487664973816257191112876474986295624856112400240015912665352547369548129743301922705158053047694200756163055557063379446619434610847242930469344891767673461360936828499045120733321583794113136244729685608113993022676137807054683600286979375959465058695056729413032586549588547095047504823502216870173293235725266196383041202400587194979129928694811741643404075453950543226883599314079860328261333343066396298607513538482472330779773500362656775419602047148917736771910133514128598423321228187807694327724441613501582662078163682609503239403062454822771223278146530844954798572235968217496707503910384975096896869773023750325336119022044519438748738040070572204430004846538914330401144040571139299177004585136748353605207836640587526072012282966761275171913120822768340422499346762538609337974598941248679640609210093071830422955759316024998141862830416284621688414828819424041395342509339256362126469647307969317746406485621530208857045651435998413023795569140727778056455328135418304130522471934418672482846581862600375617820269189577308483471398717255399039770102172583673609042497438410470479456649952968765669550992857805755610749571603013254785310189510387520069661917952408538364709645555420103462246684535963640602134447428715642204475916763390552134439231700177454204461680528999567617036250074534649688242862642033771963234830335149897164268826143328469917358063301691731470287504559568216094867903686062439522093999608502730810428000962447138902661198476489268185147103922168073936778502709135158653741257322816307737306249058922636954967101522923810203311644638060724692164324838429150819039101192857820573577100981187053180742457374595806846357564124472254339822519644280759275307281441723187304727253346545285723546308697297711187647304789858563471851811988900063897742693574772444580901380812874968602699849309328355363745919932133798755689969374964113412663519771902169564449886608786847818816641934986382256246989050928805305372101460341646323853699120496049448111700080497806869239223190489272333167620411168953692238945200779622323021249058729398907584930070200275151685696608124940880961881025777922137410114490392568121604305262175514509843399881670786064737081153010209054931189824109032296098642539881167014733217666826493784448757549095898569327002978135816290922872994202694325155277422045827843426246789149774323941013647973542690756565469631663094395643724092705296973317187218308187299078224108722701513254244206926665492512857220676439169688690144847883727768616552861471121210402465764413455877868601143911420050955013508094628666738260991597736815987214826704393220885920269440213582162928521051515018277473978242926320578372027737733625828669018654000434210152411808236741552622255813153962147803395250229506524204373015445232847163690522416043699718101077839521290584770155516938183853985408023196803473251575503652939518830409480675626710630144245502937040397176824313280262765804746513676783846305053423333307854279787773507301131455892331132561469602563525051526305796530259802257825027947274536647616213749881853384537424021006209655781091114351844754042158918356863448500006496524067363765269342166738252028164926925469979810106111694287442937182420792165473933343307099883114379535488310710619463899589536137762164663946037075233244605893762007322675794143061291166014729600569520891556044198174351572723365517070900701193253431339293434411035390536777872034787621638018670573758287234064325833184889359288854967245083533607720811291620543173239313057191064416762519783614804565796073795171114626310182476344506207921812449913517287720003452215088840305198226018635391065471645114330879257278107804590715648921386632865818603588462480440805395907204149478820484313817154566324393020596439852272451252858597513746500126283447361493603271367804205993363214955179652418257942280792083860439282106403384731895147809213132402894018687929446281900133513248886899957953347075556544239037582909945360069954593526156618024775550644522686383591799661629435449881649165507480459872697667628330047315199958028771317209384647645285488425251872331040017309888644635002800997962348964031889294008182425245990597086838382958397409674160200727925538937869611999032012035583032441323696001259867859146068981107621118475684439447643055515564470495395978044345120482943256800438947182656989221074496849771370761067891259008211194582526920678270063036164481928417170578857837865630330754104536929902772023499752297556906986926163244150679572683105367230347717296924717101086881474671932832464046229078270782790807583221760741787017080429526559048704451234565665691737218484058903641336983600488679692329831468923414406386352411047664906579451809781180641766989649240955182557862599324030472691616316478441150833683410341477071280852242304690595712428293613803518529443484082620437992644541071081669324539700077401463764308572335353447513541926025299692344937311069457150622674605012149252616970720355266917139331881363590559426247605773928217927275971554433588090576493567960216175105861499974433472342114662066619434892627725006827221641798073409200319566211946626982808898722796058848311858880656357711049902329022713088335429261125469151028067023832446768606467623336744072749608806278796488979142916224155714034322127572485638377634881886697926966435517193745044041091574688046404646950276848700679267654550337494708538500949752009087394151699391213458187104298449023300871883686647198138535960387064956955585867562689945104154302973078180032885985175941243302943314243401823381565170862912795774161984193501428291381335265013187560100151809901827045907918900087292805001147507901717541010507763192660131682602065358521582019383964891678551046688063210903734102674041439537200046479225841826554180538966617111027768977105513681199071743612183982357541303967700069282372535030714872211599998144603340529837419341028134269361301649718267743613346028916189940811694826498456072500191625066887783166154397312534238539444515315779690176613846551539173629935928069210716664151052111674115277605526303387800037253187618740625842718648249053922749686596565304111051627829146211306223649819719793292437847253937547892210970894011327556000817333317371698644613362799477638604115820820334806487780499012242589914966772564928623252657008043474604432708379432485015599445252858223955185247639745922965569567564648822545908092046063810765469525718984150455824602684663645884206977691982693205740478636599745108235748379261703843359611015012690696187471544493003072325785196468310669177121686581476663702275414115728653072780800665661939292889981248787278122238640755193371539642633867436526320461790271150384228355651585489170473238131533721068187330618641157231089574373486132558648045243697253347881017365237582945913411020291530517938959644719996079900223093053083658583307307775224713987639908315302023951287778668999385685282502862102313593003197555725103354239473668491118550353507334284036234833546185596818689055988459838961592368027352402052056090187727581761916471772507365071678969120758891567476107942512727036695311941648173415061852800360288635011675302284583297600839660278613051697598398105215501286229502691869993024850934620391711827444055544037755849110558325225538421191218939638478758239805677793378194075135606461496890698889100105379096291207669398037026327644710056646229122522543908859761138274034578407431634740837698806316114308450737503712124888506724354977789018873089865991122095651516257567971581985614561544400348167322894585987386852950022265238501158579382426243753542954342552532167582435126534816222132118850680377668263917208301939521788893904318521697012800557131033311234240116676574764831490782258400395166736556870996373980265934499934418032247589278280385590453978852670195482193014189261934982094473379142429517695252961045489241792948053727114187004226968900973205257056542253063582008096333841574663608344405873929942786823871889232955981165224316556989549250318130808461449898528087476480508230889956950074732570199501606230068962016749299758826385921925904677628953381160815376915058571511645754138248334615708236615591817921162860925107843850286574718657418559745303858251629236183018298304463117804679167559464501316104324417559156191957879102000186663721763752201095445305003706989260929850980923166783704526798327950292496466719453128466069464127651255512235662344674831224283792957049063659926739188316597242727679203917075922176849556164207297653608299119474413349918003303618600248031400477414816374764400678036681208498112871153349845643569084384868233211869713102215016708783313593914615453030016934332013386523847271115912910358876100344265851153215189498728936292100894166417668232294226734118647879034782677482036373134855736245428196174929532024114476815838907865211835231130957270927857744700268057540705587739445679915881199093945646320679366423188818267006006292438196611384896733849654903623825797255728017428313394024227292567882603982062138385934218953072728083136902979708411573643886090019274519235657211581373807828650604474204962231003294470507864657796883049744018579789464523332118068491802348329258802915969133975625796206582713612974943093187473963675514006155567768787154709736567893768511626947110537710777605323926193263611246486345871421195377202731164356197326266648458435532122940808025855468935238986646898947951218719978867625662276606518517880274388820510678465685053507711386884536553192251522051443593123902024696515699122879854332473432591197573497480940825825039524813101181482527380974105287993430237399016630142530526233378401736117372724532774291931391014822419202698379839796304679237064636395392715555804641794951311060442818892001594929375831916332278200337346084617807409464336434950548512715403693109021396857974929680833379289598367572964971187323767699633361570140736885023445890629913445522473591611762560034254404144000092303370244118454634061521201911002808092444080960652395189226155571410578047541496067678513629030506796633172460855362721718973225400444724175827759200148873505518721645063170749812633726745174925423351570339755404211902013510051504990481406303691420837530489363571805384193524451846079384521906584241321498664222916523647863932886758964178629565544928497631165851753128724481693707513917683443305198442798171426291879587786872445626948761705287431740726180482945422287669412630556311381980325542132016081071834933713033159390218613680933312997227304033719917682694491734042462314605147305116403977380207459875869894030956337727959995985696345141966000771502089462509015484181263070100454235100367000604387797059931754124547853025903160880044951812978218130988408135938229131617984022782324078185541398765935482938784222210058718667876552114294533926664947616088431721904237254829948688572090730025228183148543724434207072975158888724025203433107301420558695218853655962326290062144074076896504874069154515950838271696057610662339464796574118778609438460834679654406045348591862792346415157549057699785093680814674869852356845929939092953095537094223538375488043687840745091727591806258941489572289197389436359322749829105963907473399699253386104225877137775566528605456224639883211902952152453318491632059980873020724056184993790551199497380737361732089602615689851799397055578110161868722523434377048742207848088474302973037863219262143250933823664907888531324212354500527179305043160468217837638991424073437627750135839657355524039680439009502735032640344758222690693281128336814581552274407273864487974139151834223619102696168266457069072253426856893671435006169184622743746669473143387453158203141691335808389833185915386389724222043003531845695137022043380279089641573082227699864972669745943866069496501551986425037732890182503828999859011875510210084224795646430401203744576709418198818705140855179486141820155608657602113656088049107725461231991746972289024171071158582757982237370712661227589676468062713926103471648324944110788185499219443255961655482192520898166860282103069858211168758554517121348689286836637432877455841174329206914704192115259620448624678242101386119678204521462407798954953929514060006552671984647928528741480402995780487234390574396074509024491073267460626764242767895576587677995661821408685483451697140424532568861650750823785286452737949020189672837052776488730572157783569932481159998833576295324934126600909323950698505262920733175581310659345744070364648423335399424754929301143102329376111411807767340469565330297041771213966121444419409584860843701767104600375053820736169395342071278370919138871641064524889029016240523426851690119581799564158632029681129455009741052995469653481745541332893152513435713800743961007342434401703488656517636213751343714024903866829987619138042208357397027320434054084723300681955499862181990042223950239385915235859693970026540942279194264542264804984365365654646037069005846009316895451251629646143135467320380131150163155170614886945360108411163612558330204412410073848522278268184902546110479679568453702401498926088127454334977630978928466687125099493868895039532717127225179629602766144495562323058671282500434485398029726059036238242708242122758887958034009009662572276729461522855431322933141752221744430428190771979988739963557689857513933401206944462751957139811978760412953239537993243472941090530180998920450708537045076444784302618834537192002411383606011394095621596414374853159200105715545241673961605228598113205043174517785322424336232548710946647294791159769981188266126089340326479337498835724698265899411866989124078245209437186395725442282877483689818814443302059444295730613870384685198355570233389974702726501430302240526762011281264489110014278899813408484657667198751678131221453738924017393869736021777345568076382498808476926542042115530596623214852138752455498917976975871634691873641223953080372759905727238215828173271510766066862530095841778436668784831295724778972298297044982779419373977483974459088029564365072279176534678085761658305382636823164999347298513443848115795483336017184916539386002029097239648667728407336453918367911151402269957441800348140659871742578128538567947302753416493695101060723074478865614764631379085810107100577370817238437847739922125762614869125046944189439380952612033244515483282111963582741622308292493953438219873951633620612155878491625607929274128876955032055465262320458230461405423064429577767642391517880765589750580198330012776258869058341696965128723863011904515457911823486306989669191819341139888752557134142257461602983479114541128133825479744121411020648357439109564551490638677833816677415862351047558399562221317261989499084092704652703219831399264724089566165599394066074189549412891231753751020294710645881699096931552903160506727660962266009071039122779821821586970913183736842975841672468171010636101597468421785947435923238807097262297074129918659344703004168218374411813265931282461684825647320598350068442091820763249417901905844114974845653386555556984230491806226365191910877512511607684215984300098350139115654777828785022751730872472378715887658147688427414744091046606076948747947575369235971293858532991187904666469199793342123943355864437953859897781441228844953367464485286802385423623313659085160490468520751154173834788899899636256672538513912387901327196566985548540007765391749993293666012634706951983570220019250905532323098381010609236779920566683878644697864783739944048207674931971920049743155571381471048621876153358192862100365176167537625889812068533316858571137211127859648354063616224644118331767339860879186893277483577919730871862158872293945461283085377660166664861337584098098292470408839717444580160284598618670754857038302864732847751423004593942989062378857637294238549140861770016547133749472739921121137105489769977301898626374478654669364435755870635266302299960183581773834508221921483138388142476634355944996389147886355269828213165456860342895717681987528512439673770157576566814583926750641883209124185047298913708964067902787539719943973894600856065075145529643994138680255905771942419128046031539307933881878660930424645456123690739869219878753685977488201003583139323819833102022172645365064002589718139930498153437018506731930251371640726125213439385681513503275961852941909997850721889439133649166148543807679655392850902188759275159975517885355825539736170991050026227075783253171171666033189596253532915173789951589613649313492665431287537916210353100274260086311385012769285831304956917951936829276691613728803346917407547653036535507156703687879727231081795032578678192554831072552659787101718846952119300077465241716552036753309830820613625733651343725061298461128594244150274879704038853407139821397857060962931548447933342207992088696222300047095713820119315626087572637931921526061741342331454753257166023092899893392061409937004663213300289936966750135969972256159297099215687561247426087199997625709508134814770721093623712704862604899169823654368474696302287676635624045656020983959802778031836186796098990687479692850105996719516885494133485588491871590924972046995571736412433168477053575506793310410794625040852744383499543930465344060728384393501060469965010690991038415817708391747526500542348017389466612423252213792353748381893093030192038125713969975007281219075935211147885193969455933769842938204235753030428771102756234110855085619640833092569100359004995238373701774523137085127535570800703742680953547910140924837744624578720057099959582811961139256889873642025783820313467877762903233070988129402790374932901249201486287347588340023694882823171356618712347810038586466218029757441830883604368715006123813889167134318729540778680687802359953766060546117321177455241349596877723836068982544204676940805548265951804650777159721745799950708679677508219785731955467608994938227324528938213182591531820612872267206908408284872708468640476421798323268662163981077025704022299305807050536391252214313349947357431929243711375377493806501658333123783039931554631829320678988577747460050692502934221692061254249161799590299556698874394638151559543013355473247686343427387217729491823254858308423582292748981828077074413863112447217162530894676600183495911689265875969998896106879573826340391391614433028514349723588906039386039797492187127727362979760077918110094360150987156051629979603910607923153387875706735912446887640629569563099098515131476676480797564545382225196581577151898719661859258698637834869214614634921649539075317429634115773029510904988851903948000398123986703479918132883679684625978726809864488255344539886250928087639587385202780971291699664627413092597374616693038584580649965848065554175870466680275416858897905341417803879354613629099183448143034483408058149083856095417309695639308819621249086967896304839471030780149782805090332043606365292349115367506473571432236645127836143267662725299216092246757039552861847297268201063982975579968984679132382832002128632714382165601061168912838211311879080414272926957362011061143636135794731720632335218288628008656751022543165472600628014612409265819416748216836074489982677888123336146473365827013926824126539688373991687895240840392729428721537194727503100330038079726631496271746766137237025845890281201149057672536113056337292012432321981062830954748647602472270667207309900238872804163469466285414107727052525137971249153017206432568153802463715885475672660431651889482917788234642980724120348541640776907299020416773934614760071650036508294366889319948672047054525753365842963707494351550141986346275257799703494824450565442236177629418403514481221914596320529651692596837021868775050691869534818088130606726383350355655693024045234420736987835291693173745402638641624011054931868490772491899176218464060047155053064510572774914327153943617771431437195212840710834189679595202777002880620278616363092378754356585256651322612541484962202120647473468640132847930371687571312007618348533634236040346844463089069353270914196993037882090341974696881003957778413625554768261966042842136362675014643521867966552380476760260375971208845125714288268187636660687489171473081959884088294874202167155325462343636888225422119148851474892464880528407892614658846085449038892938626687824336335817251066402543234280179472073020598632363639126974440700829289687549932372771254229510008320549677810486077996797248493718193560919598821131067622389684980170669276419085927654544321480350605933775317789473979767088784390447428994793257372815775204601794837998821869975103489400953351785467058929189674605186896029684912994101288268407346364214571911939340392205727071277092407173702867356489435355530855093680688607203199347707537771707204366894983234431765347392150589005163215743535229476457130170507477712108191171645555280263002976800596642852931030924118869458425109296834403695774758656019945912846893158832863576911593852371277353494925032893316374828501165838173481696029900834149326834107265516807237261177881174439577218546686385985842528938715846564520693322909020878109185886030121888978949585847206138362864154906121016595122464729913185922968000435363781634262013182417260987759301660241941558872157689517948983011261987071974388119726495801250537048036316079651926088403162308167136240020118499548774474618523267117366367566209574429778952061950973755293957617851847777934159062034265030578867174118755871124817704875541579442126329020631005759145201080327720644200371259377195016782458940955296043691530839290344645243546595234014122804518480051495282608900049987475199126672646802560696948925298773928181250941326864444642432469025881300031104310288238382910934588777691880308936220680801393476281817401360161991035263080422449861539421125915296180188332513340720389305326694988538552898285094445373756333180133504159211827304908092151863590993792126947014098171340453437690762195597053231279105268347848777034818722410025300165280409656556101798458025664978339337485259703402564046996054645388225562585444263521299979150727712204878072644234099644913102805226483185674585639138147846745819933322637830740698572824908607231654620387527948000123188458934565524245288837987121831899600226219779665898017626966959551659726302697071273024830898086290404643358638157453449445319971330451007982140655825068525506243161695326224603379338947715247120539117044960297877797537465161474625236608048740619309485353481283384039711918369016124711911734477493016139975926548183927635732357079167108779279775661772878088791707765877446694913914811831720412884368545240969060543363220988429532906788535650832653372118192241961280146383109253829860243344129574597462520928468104951971183920886789583818183986705984708921391467758734869209824320986812039745817511215663118094425880235061730178143078559157525794863489007718018374473110707360799894682451664609739787137472208432146092062547308372570907842719684452240116536787042996458879785013690473548782554408039014332276458484655875909748630371369216405461657147375678575996799487761217200310938314589819593855203545507447535060113313204068595089241635763730532378611594564481874659546652770425035950132727522884979148718265743863118608036069691651314610075608027121379891515532067706172208565083572799486954326908633347097158683849663930019755253025437967669898731748563478158772810441519616809455243284451657228907955634996043313788097755113171871588640695580037933623084441203727409854198018615135015239223026762806854066402098933448869191603032884956161008119343621272078781084631165929816593291981646189793545799077255268916928959736316139861525423095587232421017055110693225467533100706341620798590892393175070957155954291903541532449685078022342833846343249394251292188845565026742365898227006269903493463386545986588281728928065763681509805035013822933993209269018612969366355794893691779055094485170567662654421723749636687374817470214895384712531611296681800698698988189398634948949366964306559662367818238727894239121705777638723867321580390641825996424153436753406723523426731362220739736975077593766551434796476547348836401838997669218112245146623273674414809830985727266804194332512737491057203289039629479910035559355025197559501506345806111374125538296899984407971935682712954243876256495921680351815827959891029579947438559614864004783500038098496712780036584062093108299647042707550282740471801415286413707006803500632905163786073271160509719367917751757099741042163210533996638419959338996318487593433769355395898077916803835524667012967463308900335915008073203237516986530622971442202602918128559722089429860927157633581714995797196857126657223685732793321531924489728426843800583473189278591749804581294194862839846243465795983890017677178987701899995914136955983890378425416763440225905056289401312683316636643061097591059698474545384701980740687849960715854613421826500368831614805356675499582550949499455122222922481505895553912030782756880233181685303127914595544368430520423585591057850718923299672289399425174117462624755462755619459303764282177740813874213062159952099091198877171899038890213016337486416737919933381141193846047630326434494660110270516123765879448841598447307107559113174960693408237947185796731725603655626300609682195587343334196262685164381226824248281860736496570614909639184410680784916548328069880062300659139706999602497273056971906929928828561174128414475586396052408971626142016037849298432376149209439301097783517029686564294057996073320706539789443934877399480773375292716069029341416613736737224735565911471231303031327066842769986519278389481410446795074362233079095699874365102208337861584671303668238039658860643966611107869282170980297063672472156351487804786617047450275028867410133034738473751253319711607103474127957480034845388896862016665522025028420228334589076180211867993695062124264549422250507577508504468629710867344901771052970094365729466465566043559531615019676155238847802067068667277020420180967120538283266022711715140540024752943788892201153316739373651682614870493012925450093838068320008809354497229681153893552992257254408311822331299372109671192349972626840246140804005188549594281558260233867639180106207270654565124996576382840471187333540327537523912724493792733971065387581249092010010834211506395962273862952979662613617697442203982836701518107139930568581752977364758659852418960877130733811213809846548659664227332469621024411219614281182306795603234694937881630862475745707834528678525509610113901541321984967232962730016669602735624716355008861160399414520138007951532525486524742183816502524695747297381933370231150756333270969472384141060597118731423896927633809247448794529436745578679810471597008932484438292251956500274644395066097818644801428421742603246532185484998315206110944121154203553052596510817835689146448874952839725415334317671274683113600518007785084691819757121136605885131804031892473319771919043939689520926872399641065014479285027122937620404501670466200958776278779743032982048732761686335265920287631566520895578875526824436130256008819893271812769470641925449721092462712424054165606148261679432678808468042052618084475548355890794671559750565417424519042778454887850773168574679199918280828627458422081631504490295121534498000667496364276130956411327759052470485517381197210588613571659931320113480837890339106869856873914006761910869138479082627630240616675338255543976006843764340583041212680771103808052778899359725783477841123926893899362961451105887931658795870363063914589905483079182725468947498768266718866508455732741657925847973215854733021369228996275418160803823612692443845498844870072417469298600979461268564622129185527004834334887485404288948035282085534157398423714157260340034120102883101305036851759581476010722860878085389643902838714208217471553686420968369055685641050831582254909539335649560995965007951931449521826754400630691441329917914979255476977694968813828313191180432606799144674075041740677730963042598903796256476123512427589590494464815373550514884352414316959408623326166498472605926681578394502014751157408846712931866942019874193476127756390174016215800520817809997463042647977119150838369702439199803984432055471619535337559810725967108697227595723176062338044060809670078807896282663627805772776809696787320392147775967716326128020313108968475028147913746843241797981146859578764224894394225936413129650941984369399214169025073867436672182467462183693546941445005820646446976470825139779294880832280084231558226877522625569689733479373687077584917357874031159064273582263743867950379575016131923425203073818802673226929285363171814965052368552385215915551294801602135135855328768750014926707943642799903191475962696958656369567593826673395096833977380717435248247441346150502497098651874613394942241704742309869002462921680766710626283271767435675819776387669665334972834884026137884882341882651913671364498394500588783212580661307692428523492520755683244309747333483808734382948059697314233085602616683660754894052851945133294590264205161454433510204137204337362160898058787754059151781269034734622285703611718926001049354104544558580014332055866106760931030848848871303001883068002561891350531375011309614137527989250039256280370062864538830676165858304956692931989527754718926681086970733110506363857418204340497109731343920487998210426720134599546361040163511338381774541122383660569319168034206467436837908020467085865032675850886341676556368881139920739690965900054035557498620975634215035717530668955063080015157475792118780309889205962810595012544673482907103855254029587983838031004771134115871213189870289339113314369658460105688842845811188926972508796149813759076124363513667087257351597723531938526349207856905307392886056417501341601280463531494437948866508832982217427806737312617382586850384103123439013813291784758721015824550864144119619787658127495157464156083712973387773592262939744399244056360871757141518193696475388424413362977120549163615121135522876972502410193509373883184823413540182891666813965998883767018416917948238359782935566344136827731189481031697285884962709378801961856410119507240919303025441361573332305622306718604298302393007940664388717408649652370847048129856343416304199221301134902851645177405326850455949893765978996036775115709834642836441730179351506750864765871099496518891017817128533655518031659718112095325055737158173527922499756921176492183805354042225936853197074108537284803475973665803313518314957727695590612930246511573417268570066709420849997592012632709538741626136742171719408644858870166088813940448672830172505910852876078296135921572524326251463765559867296131420288720473308195636867624932269074967526576043914210536154072817445026876352204826108603914653904216697935015736926776568457063485752721983654467280630159132759005866434227542008817989469712679522590734043091137875633917790504407017709836514668081167962002563527116649734792365052076730630537776112175781487700675935691941598223147282077085391317103491242010014786827125838027141580999372377111476918086351009232789992560387844012430178595999051556951691882666132362471642959791011473851410485570600405014797282687256820619391429169071613042801558425157750885555310378538318552892989924208081758615250459260251306576301095595621282282723668157002023440943731587391002920280728763175737158131519191536228931931601121376716074493990969319808259450939277416685480414568759592052756777423649072364875147185756411299427194124726067895350541710763839906167279466125918827370432994723698700564594446731382324271893114843762168866521996476417257462186630069773440134163656670692615088857857916725765914450728085642075922002465675736924666826550140986113957891857649546429701878167436188051010391276488335477724135755146014753306295161543687520153211422001467859549652504257771449054015215904699303975648937602001701217167890612849000179694932122969976931408852517009288606119378613171131267929578823838765729725425882719615927694167321076731291673663320253254337528944889275834228281015620506632911988122639730807135387308759626869257105176451935875594720240133548521752941226945737185419121065668692163277048047226915481518861266782698449419707532948085482643917014965486287918893239572754369261178185910060562088518318165985842450354338354415251929995731593132365434766746846015855773913303033210809975747317609329409601734678392774179158246646672158767669056894539650318763235849695221198243168507266755602687647122672090181741909282563570633899621066716512563300350716034899333932121560665519793505646687569456359779375187893744727154452199586546614822795589475596036165727225587915412565326111224405097134409296401907489078742096759138723923641536028971889656423638975734694432707249544023336960075453759152617649718902377892036456924301374213844556981088126584936327217734300141965993242501291136756468865996286456050018364796540955077849086419431552506431355158156853096381595375315748490891764635172806988199399633474389039756696418829825338995056968478195387884988471434756051254873532239382555909301835849879439470745479392561498717474704923954030713823131801357420802213915149877000087213347673696964091971412514464038763051813162882481334276700476054687722689659072772474588059438902371303786055684191016021971631718769670989349083081793000919073877673797236580769673699393180435716170634930594562000198274381038999831187041069083787986575039754250884603502744799687231582394480777699304936968750020185754777145026635626421878135176127528733942819827272219581785290858778905696710174714845362511680732289509499170473996792093789314228753059042592316705283683724881530932577456135824039679912627617482514364837725354231557266824435762287640061847847826442296787905083781641427491958973437460485754484194964549393512811087905454075934391909429767770012500495108421502598010865966259526099400684895676830061447203766355283919446769977112558097461548860266529276121158881007728861857775974045620065382759815314521163746758119984181774093370508202923837670404150671287563574763285851778675075030472768010564395023406480659633933798701954837015931193589511100138950820036931050715330627462141167306966210068615205649622120258596969976410192059944600598075143645376643949075769204494660908761072580715839495396880611570875031187311904690305137679794786875940955296071340961732397838724039734249395260931255670561127093959169153167220635272985411570744364876762557710113489637460472472109494021091500348830180679865001766634332413781751701387837517768257091078622641432397415467871857925255917619721161482454194278668027297384764950511419442542110383331818470115361318742486191367267200676249258269520927288750747477842441745728634276834261207125119718320886081686372105575817711023218066736473872781627937499953759896075940345163097927815229387203715589645237261787741483759767900698312370784866775455493980772618529439445406346405281003122650522560038943899168660525777217418039687028286654851444540509855753318629464388252766339162538127517532394263592021049725803954240803691834951300563262932871688657088858150737535482841397642832857786396875036370795539261218271880686427655914859789158526255007764132453145273836999459854594214951126312521999242084090718716265667538162872701459442016352866427935275828289533750240167362631411147705825565435626056469040934193256774582230956054909897868007725586374580933952213899056794940557920695957514313834477648565735460309554811914353468044121470894643725101947379736876543710954670989125039146249606200220051480070578743083236182663830634238613770318642706343460636703972992249792578822027424561836718664854862524076313696272123595434030125152796816673119458708603879991588690428453011938527517400347818949088917489418091264755471066869554320142496467250334900656566210212517357274696993901829971978704973083916798932617872903167034002088193342673340494388485509665575646553205361068337295208283395649822458831615900359561410928515938051331673068543442477654706706566843590525697101330801113005245237025145878454431315677749320572683934172576358539388658418194087312396112593560690705902137574406416064987733545753950933009324747199252563641070875778562037670145147551348011677046245681436805017298757079219837211584925179793896004417583565392669052920096379798781545188733231585138547059997946644899959948044577178863579152287596852861149297325884036121691199397145662864115466840650254040443913397600751721262854482550920281769970564592308828226234203768028369589793354434537845545187662612151413458150777869146613025584394015589415308091817606442864185722667416803187585423884378847291081075199416569249429512980710167901659023944605669829840350420707657943709455592898201760669022621720970415937198495817774179089516592947996751006789922762763317171565446309656505322596893546214836408061173702690729648920549450529172625029066621990776069450988357615359153631196747771592536655376351095533020184906618429108383263302010481536363958680218738362065204160982740942337658272275514624930024200875096094281682783240149616403297494498032491364701412835185947377378041890810318384868970593949719732918558732429642563182375792767675409194531060296457918881562098997559408056704919859247355715152918792749852753754491487165707671211609741872551294181294160894058199661100071211182866854805920634847908593218997454526916377769058342192452335780412817208291897421283920519140100389314845451147390884389847902591763403240301115869584578942304107496210147041054381238682909215286860041508463578334400432315031980611068877521056346175226410708321804106860933580986063774138371177075831223887406126988652179566711969108662943201341061945894265131654819962821130428757973093795907836673794912061014604135587896331003140276908852784851280381670659798206793500758660786739744333896532723158321505588258807653808768454327732453233359073133098739460435456883449690776983324609795960023048946697748506902251539081262963785569366340899460493205923357541224777018431162061994361250173997141985467073735993049209425915852246250663996074481004633107537496089958055542237777864810876857692464916089618603722907367109142256991355357035373218708173419588583026302658033526203423097767620540462434008078979482476771484203585300216973431066159648578418040278834950387606459660805235277107264946567660987321395029955495235234094366994906296573259960366216375032070859940895941992841330991778122088400796043892640106979859380154820837682127010939149155637207998307969428075445611889796786093135032029564447591810814372468772430883317072363125603987234469710866066193650641597161398785064434209201091672916543017882463101627675691223482623585763249831422358264267931401216353270439310991345298455450839040869741741852992110468393121452923269497762643961298299746008659574670563080761057105880982567483128149212484900436795798124216631410017411591917221397633996666635112903739931383645249340933897486107870932068862952843598113019592848678110522207422220370106737496595253568329464934527768581770960580204980402192404957583228782669903472036121263432175763103140792343286008139498849300666255918173079217791593509835146934730607158274422493845230903099556665580937144998793970482121518315642732475933274899705687543365507494886314106228773082516023616584340693469849198090901158586099686141817767878441497805757378687418439441278876277636516892028590822556190416406012622310472481301943289634528485634759981505065391189355617804553469882682218846062517004906786210853829522944265386716959363148890779937757399048250141851038488985512241012676633982087671768207795014262861205925315745861130694207987686634343649998544435650303245645808218844522385668610396967733424452620941288804414504468738992722073989342571465347020095714910826867001385666017816828612203247713239924441387533955701340132722947370972946197134491505548555306079176047490964875007824760923462534545088141448102251283126656010539301615444655534883288429136820426092941386719563949610623726475381890434216215392688970838706064747221720616739721832834553281723199171405247041519365220377219744198526784287079946483000153571312333935744623958075885990080774602713570794587631355466744192878089152249393717766065612717067372230582661258259601136771401815520710098303289322239799632089889406862942822790798889377608849832740102575822835669970083698661605768173393154421128714456343608550127297816363098147386983618295310627408439265615746999841223739879219790665517305129527977164555937870380555657514760686676596903312509639024166951634173784349885833963278962302768685761714417725369190832454421095701150476544916055300613029651972221631983093691294041020449433707351232922161278926889632079748546678852865571078133993067975521480720494352819248381967745330656305402446833186460250477398009267568223312295540922740314358910573418926926027857275841478831408377438799586784223486424883844084741436295460421448069085959113069088221565174574133031646123938064942117552540108097430062239055748967770964423985746446178140569026409593080539043732053215230591765220766258042202003664036484746774562477183450623909110564931016724488952329316602872732842609069861817184093831217256525313124767749377204893587517593724013541932268303850093063088220957147922475851704863491342989935854280613723434358727775802835176051982625247013134249219231117068470486049224070759980506812986957330209892462220569693522029448209114727551713250409865275548060432647794942410304415314713515543860702437633391712168787610104790006854059985670323988146292689826496930351534077064619117285069615327532508122637442509036717780977141713961218385348402336406010096652864831254729959246922790549099520096918879085111450712698180524857175748249199173294242754008572511185982324128867096494498776341048625435444108451732885810468128864781664400795424587375759476540067138083181948779588826048904937600337536580210221500065353101763412926073602838477544139360020817916254291337613309515324748114453442200548162949266377188899335268870064943964397082887785764800370179902542887665755068061789173920436191654345283781626706715437177623198665766186747113350937257367361698599344459586318718804595488667861982459812669103557684087846729100778681463124913189909281584069769343401288004737399236487150624320170353979384474212238966737866307119340097273133111255839811305653025149706557668124353346613496201096056475798672098085531681473353408500643873149278488609208023060999879366679719661638184058228630481008614728562599406980240536724630078375000200579707160209204128047352699141773713882047754679872224891352252902368682327156469385582671964089991483942276917835289319408482108914821608903429339450197545355303866578940294633975682769725801549364115397547348680075231843911510080881054038731239429426448856944720137443185550127429814074280852824797339702542371422251687937665754398427938224397722305027367507709682952656217571974525219645819383731887973339114541120735155059120235065155094055914391117378802679958734791197227542014097753929017708053054899930992013883172292436966146042144712533981354590156201969617665981867008612202693689394247392689523292480203544332561441406984285261776094374605227694896823084100721781485414048422883311247853276360095166459179928531233576082012684680120773913138980385329775756872665881252219697452700393762396498984389625964598891791042814893740925938978278753513614893164664847824381871467422250735509994809577403400112956274594279096208962525960978003670037494859820680304676738091888997002837366532743272440677306668842597111495746781077352659785486714108823867175808360342562318981549756989951149118927437121506066155226727773446282197250249068524822697274663295616017718262445828844480580494682466396278131551939446430771762530617024539427896810079758874975111726912424828340718382153187930668173788263909255787672200505150311537617397932929861274312677818896967660655229235444025991990639750751366437312785921593202770195247214858520763135950834914417806626637049705363574948834515941717397092878188053019885738904839484117993244069257410647684935917213625003960543415889851420029261530389486490249753954447601442648566356997608157858614687212275605591472485627225020769779898124290467750607237922133621316514381490640374731156010904905740149936180843762372042632017303971065670862262427975719033353830710738558593434946977495786416332636171531292195118798732961620154092496619942061856397170300342471726722135234116887633582855440772090587886584433879262660376176022149166518302385104899250102689479903793325824821858050396906677734151081084443154748087854533363986550683481745256984981481116521749967106087437502256009921708950896588622479101470369643020266380019516730526067378888747085142686784043625277531415523544838554563981208655703210864846471736499647538354062495735354041743138832008012731772218715722994735519035009118422937378033609477842058472621076513361460424746750618073732962254808185021201312306718211291438829501795586344468819786666723573380659809667173029921529118644890997500211585576199968364310604085464244429743869714111358221574336883937753053809740639750171512041172966510671339207004232505284769221778998780517319907342780022191203397152665495096606188951828217369985478225699449119229742046947263185548855623620108251834329603772812110994456216649611823398134522144281852836183756638485191312357257070368678611450435577992388937018891078454145319932900906221967005388791238636786184294073376275769742330293926730152536956240311383283489475502565652904493786559023746648949466121446345917427858564927482836864709308180825124626257003333408910640247839342629651868949874711452462488029975773083296986997674893950337198323481265402827843671299096250018458544960821325337425827619476724107664392748154864798513180733823612206320389880044340747528488843021320454150558878033170644228050075182191272911082710798721461126129680165181601275717124764567228399832187446776967636858768818009431753638258499064486481201057143638985288197711895650507307531743607996335247829066663853140971136007971810641828622754099826301636936537267544444785402571351954223030686406380046391724529483191249069461785643686907735996232382830571235022515733860521779187501461875054613608009698103302589805292596604370525153100459662724339758896518062087291209370228753441491631861890511663479985687270375698671109445368173750845219902453117846694157781276851629801522204271693957818668119264574219254475817535196066384489292576579385813756355551640590965536166990766582839331180819741105035789170483668243525741434316199421968884050090218950003901844402350755204272157303622378320063829936421915809124743690246657969345607641659151793277435842658770252064692271901725868942252905488357090238696182234893774967614491621521176773010352789395707188588225170625236993977303568045905144079769845073293885268896930365285051489949072361980938258309186013435553390271177137751449065647341959334096905094110238846607367053957667982037714514005647869306549704302126096990545328736445463358668816855332804814983680869138440744769246270285330873333417862701932587022299980932803120996873584642702867464458155583004537396756548526058539533063866347210311295528429740640501773229396215278744333379367773745233430395231028267723328477125424024840065817917168618437347542965695156315013958043319342928545865939999045783708175057146728860831557289752625751672841312057805534260834810910579171691495879689352616538538042044663683530233446774024851568221600976398186200374866126819601444472925042931771207223946505455219072824653478017708897085582375391790518573452005251190792541194639232838043104408639302359775221902612393799700031160027611090108672243804482964657118455186460006862067154215781889328842275355650700294579941660327398222064288614834884304806586525120412509399068048673233189792834379466932944008990096957264537869099569385980911064673729636508095087905389633562377336497850852275675984213591137336845218991332722196234119604743650848582469283579723290417620972453334180323072103177378501045718019977854093485951861948546599291860036988647047607641247435641418978536673922447738019290344063102122966737439155782467732771395775431140707396009091277934513639412391857503463008620341342786339881067928827495200257276276408133830606828773472222698411689954294900812955720554664573078177951055252423291322477379212272789986505778589195126297867010755471429272553148755461446176416751720632964758860174010888568309409770605861960501820858000980912168690268824863512253842396718302414165863470267935210446274531285051930920469668496084921373124397833851317296503963485300339574554793208308037711993255260916005033259248012579971249473690208329785905578639033414024947492996324272556580872812235130310397334681359640784365864584892399870845091905049370839114462094696616317651860874440650827803086131838299828982948597344652863195154581924373128933743517346334086080081577509266691531568126363390442072764941134116329969061478631321738376245541356142907270458561630449882339729609479287859358666221963930501796737791963988978972425825016132848897939374977321476175304593287276658910843597069145070009047329009754754299125540776319135081576506918933037965076565139720084795646844869482692313371387679340881807451832499916484702554792065655233857182216259037501085129288100347887370127234920035071469204593557697135210480357844401378864276265952700381269647219376224782221442687551353914582526966667741619824565883788114608432638996802621966235724590387513118410332063697809994083287155167629984700295970256784727628454663942591493267311599169751713045984744551556577609284326237915549079411659944931008412618782324005487284647381298565592868934262022467426074537532691029161675343239799131502759288382624033001545680599349237978958635898889564166143583547065817351241788996576509809094162962220704410992352456495828484600998368449930924204812624301891944162396639356334586795606047040163424500626347740276483899605923470634430493098732423098304431790130005809854560038514255856854298118348296195280776611981517991905103348644193696313223169866418066415798661446264062842580043949103268358394432969591569123956021985408259904962306426970615216402125550990991527203117453128197589487592055695772101188048560465722397123584001470168320730117210428946029643400977732899874433434731102493339243399231289766346120927089756141835103955304470608584705087433333879630292909108271633843606068028796182370362678018349584540058473630477837641928676424786380349850507111736372780689218729102296176050788487879343790214424255977966794421258777603453021650169128498419578213511600505719266434883851524902029367494703501454367221686526573427170953714929742564004251014070043102938015732667912169982175507232112633967687824560022501493913897559241076332611967409743725552820823112423328426317759053872400826455924806765655602748716808800758626384723874948949194676610392286348391247833189034501527370995192514351813846470150529333289244941090505887558467630834812611832194453910708574488963191726544710018742511305412138366723010334038873783270409129270982302828649467489761299825193652263829692997917878662741019005361338389575924123228799124339408603507524346707306792858505625120545043449944284148641982810578362755456006180712806071479873748310627526597426150037979305308540558995964047070332496853729149803361342076262072643329736303610186003679732693984923543516742994033654022688023216130410573792605208281411876711789600000442323627115722965553873904953115415489141290248490787247966580622270776911926079033089583702433548197781201069540514682995443308546703737096487994133589517823942060627765036911509967897326372009662252456676201206582331584796231184986840635057194613344785037927260074449902150172522948599026616089376216832673851276779999111656121565489041544127145518826478458139257363938312044267565761659209027559415682799832008739422374445243488202221128516757425944372721668442589702942904797366535167683876467878880589156820291744047177534512363719181794494327727005723864858573880921291225349686323142334354901644392944065956627781860589634268115271668940949402614283275958540268101671277117172519034477104731010197537777006645256593993997277895114563582184942827717681185018257995007333614176296687521925080639249164327593319378690825124246665649662526319269193443706745197875829592340190285131385741245346631199670223608138419178280223549477201779773917533039176588907547605609599105100881029943460663631087538317392894713272143510007207503728411867399738268400894461964722587019843550970926111344216215129838301249071113198938269140801765145834950303086900163237647681277082904986280198323190364727622408645005331043757389397976054257805825255677900232237949801989033934517391854152893779012482396711698318598745151580582600084187611794362465012962923197584565407083413205461210677705892065206722308278771698038814213773032679134101562844199331967327813918759439960766436327532813314681760297761531101518988147928633163741592381678695067782242083666602026591200046151260183767437044133696423575781120200858104438052700579078145902914560995023589232769299643513302902567143246620784852311917629279502438450891741530497561863105794748617553505154706314626119624950976689857401110564646208587024996193758806885072158838740909686389185544620460113912138690334534751578555361223106262859536831064998593682031610668982228520866730230285966140065807426750188293924920485397593120340266797722458851245739262809529199538164388012189682470810788387418203010674980774392461066141181993281610929648826217821075111342696919181928579880492143652888950467934071765303534663657518206955892025098436564405574071394008737112232933355998132589338526327812624652393480165993125767567897492347621765252575693195885150307346087881605589031618967036954420774889762281605054621848874039664954452136293629957346540827349529690534777965779757262200393588318947874410965183086300388913109800441401191508240798734941981921512601600047580472011805182144610470195059395200613100171974047062487699032462937710537827294056122337880587249026921401535973923820721293751115658085784773993291874978101761487428349139052241306262365355654048483233078816656885272932484253967588834726967083329595565125791704156472564340010459297000886116572150582759889841156706194582265538230756448707548437395700114242299247613087662322246949517497796607437960355163751033884509294560736848788620507805155621628392373917546397512490745775002912509672763149085839725856071404400786189984352547354498296493106254184091592246229127083187029192768216941345371713168203854512956872764536583780274804006662500357339389788457137662327107675439471780187907610829715276005605478456521763833255618326865202448593608394286156781362583053058532983622225396259225428463994553032315788843246537676137386534564329735246947339293308456191849550941155298717618414513407015207239760985646736642047796635888544521312613945207475080298597213378743057610053840552973897118358392222435507908919852375490875415978088584581574037146952366769610489660933322363493743338915728565371541171409418117567349175010865913577283831134970194646176057389376097693320254810682737422515971908603401605478016671107668702004681937172160896766880708089672965949137672631145918756459886541986314063260409946171152563505439472055569806277463966908305426828217550563826194106559696186367186643495725734700664577619509949092810972464177335239489988594300802044059102378383380364412339628732277566408799122907518443133671351330447961692473594582420703587113994453388885917867518838432318282560192427737271309167036814668917968187125240345022955261732569170040310348034177513346965154518809296852840445539058226281507847980654889914451992219222669307061621402538202915300923527071939891511742109341353796830883944822949961112966989177953862502058866179821647804070164769551475450999659768453239575016946463904879943188657716485323263230981001402506520440763609435219140962243194419120923041694898975831815725162741921392118894505954382847592144323446014024286368501784191002535413810105914083497186103761814856401515431520817598814473243436194601744635538339295027524516520494306802681052593327337411057630266668467997239173132352599283578209819983808845644103553644148147482773116851718631704732671806359465560531156218073253258849280875097649902362513595502365404456499569027149100949743933433687389310282839177405889643553926271079673254149990844612023819416365822800651386173159181292921716889516762718424967033734112843686748742383101233887199858889990011655883953732188334901604681151953187806092943245906568096664108685715481011089641134529632946785549041519816912351971225618275183102255924558550102387655220946600196929108372109507927763463340815404442883077162114675285466022758062380371232411994172125197703623036213900791851491973141892414210982660734623070760196887905686931144776726352514105390710611819091675513253988343740659378449034558037543882222742922466400758448007938925691644065312464887931862170745128983836532674062793012841963495778728220460507438864364006612237638301474578133413431403306420912874360295576968090326702550541098054454613752336221719456232399547425769599249373869554710057385872302485284552272636649243263285176630753621502207764817289328050610244982800533801877554539443281082897810032694849512193845872396908960800737594811286729899433383063737785848293684447914718453927770755867203396729234859067389058819136131218986352534512681448833382382638194288722228663448710307314830727977038965393375903160335149990760610402554491777096350607064387829157042127375462792289720076885689154461166019325972139331730931023347427372525335568151239021992963971773286296391204840939437623508986383898307501395396831816114885246862624594509823571225207941600150946648065962845650762738153260234829663344867872483748379580431628274979017518925246489162754830718125633230773032279898979019187918104999733705318509034862321458865414977769984747563203159705153437846896524447196140837863850558400290339662186306641254326243296680501132730258882451796324031151513094920784485375170252943460886157401089708220857582032676931689725456450757582948469109843362866761177109684844238211139957209539304151478579640350581932383134665247320263803265100741393847886342024687220698969971678674671965715525664467311149278533360073893143234488591900109532830474856603745109680275965389002640170301916357631253977439744337934035812308244075020214384806689474758149496388046839817184469322424638739831142357904089744144212883752693344793080477716116255113408035805497237579595571506777151932653521738871451235744047150470618379953594320792336372735665823874370379392416939517057589464514784639715464741851805005483827157031534827864903766472244845247326726659943682306040265665925746349850151261854533575195728183818823512212919232164041333045848781807322807215297724554313165448666667936701945057394361529946882190123036108828440430738468001929557641082259205778213247755011411516132567116271912810518803426444468606284882265003311847685903990262450268118960043433824436730048975284323188008384198930576698614788594888214500948079730742416746572792458083814325767706107515003503114989747633709509756750856224859704903965701584628380567446611973567691624675245172797395485031228474760238679280499135597522595755670438186697513509454838080144481799023064225134055364939374345637266935158935251794502645875912366764950321455321750679599014539005003648012528789485016584549978276100479355554753474437102338097271497657622332216499966922088051516917455159344114909561398091009143703698651525238159284743176487090066800250971892757900879828306576101608541988366752889740270024145635986789718400776709050809513131208678459146083672719479477851820730195496425784322943829174306522082433841593353884455292991256375272611291920804084455779879368034052985830234754370360522684659482355359469907983503798904788524998666064172516703454600047401029550667204693876766710441017157784695169966913897981023375955370245090910662715757356964255071629496545062532921241056233749723405548926277078578325544408271933286485379783594224715043951112778692757690355624231552714083996278836563736894645902454943899266117519886399984160006407165862335938449601542860021014695932683595154738133322511715426686084200949643338836781505568387688212790778888185379572019001267137485815277606282233152636450298400265055474408178607406325770437832627154819885854041463829601429482773983450678332329080802047925208943225718050917268341819392093802499859030406451335189459482271371735692816217772530481081109955750878172601529178271417137160398113953806145814859439900970322839633740167131051123533671441128427666396132928044858595156767344592475536465056293795328548488945982062499653618614110592255354165385473114893044814902718118687662544282814588512630016020552048685760125524276453044701045848767942146077770635526924305905650878350622910426580229745160440732829843285266850085137458821583472416647063993862913055737344282718070765396618487803181914256305619098602774116377000787126377014499960998689915408161465863535185131242194528045689515402260839661643228181170559218760243137827291397993888946114455277411055304983254934281443470242579232735351367484324674478960233424366910293609342654303160598690661494482019709747885054221300655489152261337918671068331707410972136389217086151448782142941778991203341018799403029966822584952132577821350650219867689606808887130714146535281442587021020781739766508178812177708223997518614028717909244687306627141907494631015961168548554479733633093035574712890763582837078382395865873775653458748934946044613581977229211985157649517347977841771728292362986737427719978349402583530246483766120969292083926469723474084050668079435690523266704985285735516512772306180796786997934595169645371668510894877276209900373044347059194877227534084483156423300891657074618310324170982182534736114820421024183903845109786345832063620391280411983504405825772621669244380130041610401487083525719185839628147734954115291872424242637695273016646960100701610575162263413440912765652771807931224771657789964007953597309273760879579910445381397609690990533470334448473459665914762587167023093743229735264735739829607553352591145919867385258068704254272884805633074117394319386614541614249844567973117920681201662693787523197223681641043656614140676648416804052486910593108827391936755353463545068650216151253296316329156531094368351331167210348623888297252950023899719817215198992505325042452018599570126333110263103044186096927334270894403733630458888519594843390033902447616920928502743766847446756758185338505302838666164892282301895911745482252635430060159863474435644091794877718231268434612176003148607914722490416114001803160259679434482465788985357812403055107831143225949957575264070446003285912881122220704562278842281545383061013815196616837107810744196381066120757841289807863234588897382416229105797972101063392697538098356449503319311210184686148096574253635426798542776138725031685777983610712740323696409803707468454630563330805695692362065090428202086316315512293425446441598464011205768322566531025296290145668799713762949929833442298987290540157600730276114741708345139865640396560561951318763876346169350835520777411381940874543514687582593539410950822178088632564707481461703001229533588452208844318915151998742795031243411417891783641761495728569657511398216098783837265398840220335097440029914786245538921909657149802629162146800486057834212453251076752411509365686354058800904522650042528500121141543777025899220338388195382910746051220890805555491993444272055449425219458227971502767836027967546294715826796601963120554622083137504546558943785488786930905909672773160335665634808042294080044842022017569455548735884773681925015039334308988059953124432141087892993257519244567466810420951571105570853061784727162900377223835703172269572512960511074704288837619467831373851043592992771754276524924449222371311000352158161338009601445207275961369292866529729116290770450835680269737743595777105434307692979067782469209079470849870844449422715125216372685409243480389247171720045291507459379003061410751368760636191051338724241199395079339169011830018669388765010264774492234452425255733359850830223282493966479815362553163964023043092232929321746670951743473632756135833407409254172875814946820602585763418493240392948790944366765053863053278506492405237049798979743497681347933397621721669202263587841718035094722738617493997085835102122836039001733417200776850117774381550303177809336360140885617764999728392328522294936171585725438333706591577384309677643814249523295857299559857706051873467289989443013077674051166784956535266928916474621679501397595147581881896992187690302739202771768120343423019244041824376329533935063593323551471042758666361103141787506434795435328474098695864175417809975200668626272609812089623444595583187932467646450410980821702593110484301606047035382437348237911490712427331216510630978464224268587240882567831337801636585549821634526522560441732980378562976421098874390247474303786764771857398848565539044582276742819277219451769808150978950041925120077997104323804781883712557386935480055277693112492263897548158386672219626896655347672965418058011734490436274978842362066158111776684768108237420837260655531351765767550358316291907077528801834921346158773652069491767829646023413726284777286895559115369217721320321804443186015036102970644710367387035120905193890416510401341505131615523791310547595423120881463346258197503861091451127592940934281320328792265034448716274964354173458430868020888396333125241094216561850172077090046624009712825328078665626197745770419729300405543523691063068473459800984434000484100951502726135075538723678250594340352507808469729583550967805988451497722297465088282416358405184885256570011010337091934843632815473852720035769498384509535694269362243809479999936854688843322276765049512136997179443327411705082617814039612885037083098936777502952223869886484437632480374064408784944049947910756647618799671915964700551206637591997556956140963723817223785977981885485813452558324276012314177312129212403703224899559666785488887809857274488689257867979851629652793923172488617601267552271940620504628474583861905538678855028557394901458777166375625808010440470421082592108962737091739822597274193937380730056999390355693784367055853557827303573462229563683498632252486599332151848505712218408396931387381337006228708441977339720977660401014624871753100564810213297134339582753315153421652634163050472023043149873109413161084981895049372057353095006904675874923550416337991773348218711954558692630177242830601935235456416459962008427451669530127724462383382620795927265771639855936006691116686381357726698968553692309766773248709643097345696712946401786361455904711801193020688061717427472036036527049871700513951201013005033432810461402801446293639210519025455519252981668262855710804341725990907381921681247122065447909419559412193076378491582003137397536000193829265217869297674995630209473780654587057446821653849213800205945046501100023664520217788015032859166376836866144695091569313783198630716115918537379112764747562142225810462123600634081557961357751856071472370837856800093142097378674124832433819905945939901556147075075031369477094803277115612652047827166089069116482191905932781884788371782994045658615169328681606261952368265295309590003354502383462754368786093035513566310673525219130973064712949301074049513429019662141286759637099251729452564844673532224986049133309264669356229363380419903695676705588635072684738540267596409067099515830667785521879508807178071699396741244102282357332167796366676402969392882830827504199854260184659020267373404070285330439409642132043520868558673297631654654516858707336539078628183877660762703562811014403305031750278281455859950362248361160873718114371747857701781118885692118143282379058635040373320551332695342610672815019346385614279214738027018883263943914239135832158424350228864156735989906011667119755880470521639175382552563576464866435173792813981532433892085899818997051596816055089125160172812699208903133594866868299211657020223052336645157143993244970869338962536582034646703112269185578016926399982141062226844560643127986726691095933978771810235645432209939753070308605920408192244008475591267423881467589275135804418072831352610420675278675389390248233745702748413429035400528482735773524048462696404152871578052293873520140766358728174258319707818570830299145164178166220788004323800326742381915643751591833344302778949478994815832510415659276475612140088518679407118399973065951943896510182226778008580851089264282527892891789105691836180027465412146766962308759389128305622063646521574375609276524133351170933855875416019686549819548002379136257475889746143319290406361332449584498613675684432078347728658364915154541887965028268528020927149364383867690131990469821793458571322700372090359608836727954553188210587193475655330097989730657301501304268950159317859719454499200449629452377764397562831950681287077608940931169061315592728188177674690760145318233198205743923207130083439595195803392858099353237067292512167962540298037946964408314427225490689263981749375796972962391359988988765293152737673559733958131543854090594003092295537850070344344887876185731635225797464547333897745901792331874701996144093570483951591898319621883373426940809766652237509368545288001498136169285754499453440991999143993508463409640103372372169839696627791033265770399976327308190884618440305935200845879378334652343132469210402007721773237072861787476631644120780729384712652026010224490077254590422300454072141421864289420646105407811202238298981504985611239350271491830410373217712673395578987891411855648812603681143316342693252021158285772449014336101398124444112462084945966902008682397714843431069951168731592310371928799088520249085525433520655282036184107426167063952161880264480150337790793303230262127032797261904032910056302168474245627755679462611120691045992039777362154513474671495052110975916284408267915907555700198052202769127057995811698036059120599691053426349704609410808079769201584157279214234782685952845085523559028472917348564315923469010245924235012526441313511035411867827747026462100523656890523886179484100419231803425453416090322770189822336006277526480635897386910926550136023164395697468294287494875981675232704060759404222626918895311930852028713280073558610665005154337146269093245119772031224329863511664900144098854628336854160235532642865266760329804965926751664122191820889814325988838782523293793235365324514921398077813226426039508064455985834568010823025214799047448693962993570314024083820237760783606567447773817883076625276655884464035445954266664148040624801349341952128626543881008889939435915851348417961925447210818835838934181697828312079786843094115344697670500547325763912547327336179960779410094907990712053255385606594132711659780185944550815419130752865440972119150647446168835500685618268798099548859901708327356722717553302738818431988663144995589169211791214211629628417139870720374075139284503826425390613688099827518707615950293622583889063194048289182257849337467495149284356672485538019401642376187938845508821209268032611360782618602407782552687061760721904328194812814849226463188102165550330067937744233268853809090240495381313355901710519084444300681408715583444664360959987265506877170973000621524041748164827247495822093075363161819836078457818286839310415463727267864638628956467535743362266183852476647986438201823140822599066573290066090649869076501580594422836664613258859411399906156033503622671459878982723615713727993359934353782289198920607098466385295810061728651002729101837638871490529575104437416523125330267775911363539373446156600953228521073795018271639240018175534181191339661021137648945900572517197506994988818065693753794898845910689005938110524336216966159342843418758188718281402331712480734997609384779080538228692034945151689123598728942957596006003565427097312414153612513237937473461414929341668586530773624604151617638951772379933597109429319428379893732260980075252678977371965618076117377480735847335566366115271721550242747175095266826547282851968697161654214926785708264758266058775147580913192236078762185070989869513936054909436825406224417845267302739646832597279464450072160352944396208369740399648550104292416547202766004421344322558181558765266406280780960179818832431766947661285274721290522092053922473210073394224408575616608526839988229533389562672050204315676242388707217079376419585563472246909439922802600796442459781016272532374608098737220468619956725644694463454775955783262811710018685388361278333742577488949836157736984836053984760738896331105288865615926340849460881800257014666243989961532179274442868236545973774155893109657845363200510019212807918640733700508421838864853131441175234827957885844909684350159624708251770229450615515274355969815549437521164172388112332977247219226093011970823045719990060106435485030401574434662533654879674728747296709678400758088741008697541772100966997816313529400904897016779981376282990598249288504040394883420252391368850870256023649878136561608388421540986030600776308189918233320672722765642881787426563277301049962190122484957295221939384778795759058686187298657074692307578433147744437867647428109184866484942634747873306436333033049478946225703269460119827518801017607442181621057314144112457589235818431408150286247126916122208107545691574868969655205847199569214517072860644321133667211249322354305311857511964896199865690728050943805825300812790026068962457588064101725955729001040354149823550665711714647483729207649772793524745123389761243618336986749467179528143367796436972677342799669867568792247068167077940464997669735309240516516265687277325199534032607723347579822174542167978944124041366683067757221692524704884284923731254777473883457855510295459180018039653872307352616202057325380684856162386559666386295391262578947821337227727704748299894122766869881273801907113632574139031161681145003930365250407629073138687230835695605415152270354727556101713413010184092197104486623575774107023523448980594159853544266207500533914165645795493476253536683042337914593986552696566097757439351181803827361968772491216555158057823462202208615153828254673919964652583434045690937027926658770994128781185658050102439839643629606712897656611326902463288991857459571764107550312950508235774729786326653249980059224104603790710919215142965513136266711047785248438975025806199089244261245958179323268976780302781184595213727047011946719452249538195689733093037231794795375160016469531105777314700506435436702809773228167124905709861960686624475929161199028797301728748745274753545020635866609009804711717142277616307982363316493111032824242903928405575623329436299865936280399504461299773679124197383338712322388339632067939881473465101272506705569347143412944374161729783139650086925327905014822761083298801752298355161459018000417147851652084863949093799847747889883422689037775062407836343431351160374872605136393150724350938985273172779395582193853286672775481778709376901113451154409924614179608236428411979299962071243251037478096957073979399128820734851149623232784814795213593448079237450237184123834123924053080245111889917228543952549586084297215115445612153048074530330828139272166105983914415229339743235065831315576867525025300848214352872531695591866352786079014431719720915241635374545384035384375001888584459848684639955259296694972815895501036334604060680108054011052965650512522931475416848544524732065558128631927524801990654869239884473577007991071621776174694502363559369108066912369711229434976801511139775266353582458453300679643114293349915299191809730257322488221995369932112759925389385118549214569329293402837169173290648615542966349572753490033486461809408718267629799383456187610480092439104211314470738075691341243133214156249414182607843881811833542949244743433697842807683552379980651554552868771503612382969833490263823730095423904134643422192074164363435251705092681873923437632361270252364355907657979184660510035333633213804522059080788919184370208932626052479553100324629251224179656888808532998441828932299788366761987434631696853771307552486227236018404270215005593571527875796701637106078403210881825509530501699869236845429122239837429953643838109139391652669993031484535846503866209607639561533393479780932590286798998681902370404209893236614276538294128040430425059469264989664114258619495504071298899080832711406735103710187375442272571785276214725649049082408913235755592471152263325674085173645466322264766465310960898953520869583705074988257446920794611244743208282514197352584073597879358739640513347845836461206714057330030946308089406801798388020325473486400333080657177460369640327152702087363943407097065213998611544287808354694153385334579753541499454700224376921288313812634629042690456645682837841272382043027318257237876256591861533861803225735579148883252244504309031083405580029464256727694975641758396474823985435453318093204265849100716656124125777067296328954298513600156561920532623891046603412001961494912256079276147701548965386696735184926300914759527381128683536591836800859646728904384824566701953726488688710869075802158374869865579769805320887613007061116521807389486693890949480873130447364506067308282315797271627031864100143332951776372181692576897965631389328322329258585135734217125685110136333398419994479901747579526412951420950933335879298863462851696326078108981928187539455438914053766458433907110760286127154977407668300249377500263561403012637256022498859165254465070902442143240223125959869440558966867164252019734650746701952922982822124916839983230480559500369545241875025542046521123854053478008967366589212777319407263347269692499565310587912944114187436208635030924924347949117078983796449736895576682385100180456103430492093277085352022006195826490159255232484772547898088378733547529553539309023953933570994729176185088969168868663482158047075262113608243192016287190046738963650027918949769064273532242802517185072231146684521444753955348389634362472187246310493034760000834175926057797226889695037985917451732876924118508774958754857924693956085778736512847362995953501723586609438452764482556449434435584077030966715079449123833687441746709072191354627361151709014735516860500224304397811236588707187918865943216392422276752159027607790008020957342471238620208740143400105589092954212439113278083688475453363076340126226450850262588535879267581238376596945746285662931664354903791734345169095788029847271261894127018876413031614365511776382733582462774780627674657035471284567379141786112992958972851744088146403000802118850250307769548713015051040319516783853135557472367765368278074125631014905333742183984051911937140382959387639557924683107825918898766533301218772072630658545855751856146782169612665572202173589175675726669614853655245269951094153196416123930649795233283323408954133916081000995500245182723391694623417512082885193987701785491185170749684566716745618145857843182397333133129940441067042606365672375114391533340530786479839004623419338404219173836972114007849174270711815939190114791224661592761312257977031675269807062941038473704864506343670791001684051620008067199242293940274476738376030088300181242324723280131188273861500177417523561404621038324124364077148770238809218983994960984613901487514366633002058355769709651037952110758834700596902415428519061580148062237959031786155006239679921215301056293891669692163712006757597166023321583498426806951315590931271594045940672153658590625266825295868981420398664691354620661765401616023664356735326655613363281969087581461743346797559462494154087423566628580111591392069955600605527451278033934084890589335716650202061475780516212637178550013191738737609300589079659229306320887038450937321558951139323588544676118798820739770601289395585416436210338700765492644195237073122099427708722799416437730134790523746072462978550924957673443021878391472148212474022880017987293237013034697907973381225763776620520028233433247462850595925981884064877903529730944644021085977903568055176667630407579823332530189829813100176537921272474778626499670304516341920119969234300749748507531107004273327868131196424778074084347764826974869960644722397197317440020612917493597025777365995660756710074546495013803715594204856805827201404538705462045147925397180496022010491834948203827089656278162904247829294773971505069184721981413423232960782281124210337955430347327060087511261045489561384407169859247791576198954745640511681961315555413535456299027286867248929833309291614185642298602452151671065681629393349462998003175075236973793770535214193167306329525818310116411248652009179752598896512444634731314510774358579025835497593466273912328283006538032729079354829447664680999986632228318023420490958555692043906737327226226542979933355216504804722654679492616824965763028005676684404367082625173700719760790052501860770686901678735867515919390616961033564617453141967669316448142278993000379714357186003806367426800148084639188075182622527128364923488040715502794460242979782718491339271901081536755338132595705135550873826345564268781695638605324885118165791735837539523981759910976053083793187959174763041427443214503339015182505921436038323850268815634091393447187388936123763465443489279140638801555224088389830836004617687897597489175255656503832855387564124130390426142088197873682841594910353181917092690534158059353967651837210461189649435043630753323425546234902519778877402680793734108184491217934638752714611634359282273157975853734514860014131876131598798717160187383046026800703502122677801658745079405369233501542324003097698068715632779358469949044711515214472711665564294245914273166071225396384110584173952468578341152170528793222343363268847308511635720298618806814167111351422344044063426056043087104915333243939121880519265377837183332114223377019672951378364527315702756569997296766335364484201876985155801026409456046694560212590533955424790015588756335261468056378209666812329641053588303489810478243930782635197787614804551630237750501769866840673224311819708859689396451010229994779414046214792956470162399555276757597684595931120338421758125408550292475265126945251793700459848660547518307109529911147119693131952896498020773480596495522944464204935428175707265607168279245771847984144760140452498983918450571537793695086849993615249708350321666368518868787057429102288364530250605137668369015573467332213673188734815094547546721975451240590900579354292679853658625588084591316217060991069334410192720062470003918486238690382335174775165574113512768318634209584728348543034768332999728108387535005293794130305040262737338777637552608897429071877951911040640209199174276389434663542096834915764720535305554679304238224514624900658503317324441797089433755322460658881963313397726296558142976837301338841938755545571936543141750002089806289122657843870915331271423747041931945270620092085995537329043992301266753261162979142483232374458423092392895671389930570403281202348088938464803942838803059824723104534456569730718228756876830586960764591941945478520087015275570557570125258779226180320926071679613470323355690298115368925915305758820305388534852408409753500154262742480334747014839512499551943656871307816290746439964101255625123458144223304470333330479416055793471295784133838737271903152259882674470388994488227352287901150890975376191926208954798683372796542117109802180086819719871068084609731317476607255561591224023396932461894868270706613326548338752940898273864957787745476276739246214669137050307960812285026402258107155707217862301502277234055815259914621805263183164256953428129172062637961332654725269659781121949770313339573289356995109454214893569831782172615559252853914005012563261600105480346831499214728497744863103518799325898002516476869866712919929132019534154941388388642893419111986899346755330768379756953884239612011088033979730364921638967223769228490455223273542566137028010644874210054948633723289739384842883861990723664913536006723147992540083542049109916196533167364321925924956750634642294696346061893717858303210073884414328851354196228284619963200390587742226282145275068303540663500834783160498379434042661395522786180640893638390830485777007373753044301813294395261696201571025530923872690038921171510036239934073684958502689292653213481225251474291299041336023556903066897166754176636173745234424800374076412098617466943080963788065491462380843565288550055745606711867056360933495108963066234817667780289516909433519392039338013516052504976595648024432340295497258741586440943709391820750494471284129783537430418897774258000861553040715803737329833888887622331445362522911697757154249616080365721034373081231490643680154356774890421492288038997903092104007438102717333961983095472380345892502942012146297217772235550572376230572656591445263342160294514512478199687281233603145146438047992518715883795396636738500964079987488747996809693972414747380842492472216182165909406681270502245455198731842715963384855105298874035834911951331185203412169101555869364561562905953518403975098999336516631647091969973057407437612806155317745267596805292572834407505087419145895923606374580511938413415583653742108511932563423679325129111805012792022440201094359593474741054965672277585297990640555000085696834628779972524369601216249508238489112729298150597968897669862172640045294429923170780378160003245959764335733258185763036530015321886991449901896771140489280665093958505268147049540446561107850913069039918133181928917277197782912905285169160661114764632989325794283877627761332257605209722555327449820583980198894822035742894607945337266824070694650307313128224527798948057440715988713898978058310846215778670747951726522759054891033302009278591107249877007319549977860725412019361449363356355671682913714038440845892249284422677492001919670868084278038785718550966135943207473212998668198480885112923363410903229059970041072184022541153927735604160224901959836499506895837418030232898133316554228932571778128533278630781654473659713305414828913716547673142796732919749251995710871901645233164522287115491814997806053375239100000121268718444242309427183719602982514401364564167283978632249870018949986935029929286201577216571792108100727240118390121663082377865965156801339023073982724418444391541290185660914594270350171086775115569986848070294843572436108549598136055089307132747349136035462214071653850464884401780815899610509005329397956865409422066127796915617254146296580598099339108972308469560854606837054702485467774932240406309985723286576690491065036912478359249994337542937328690805596073825346302928336208357007190824834240257644894948555813806545891361406992641917541055036620982847255065059426590055905804382677865765785034473604215723159582951064521825171709363218771598603482521327381030879641320127661578079165235373572601594174506001001674176657219077186099398071417667839471700590268633178060467596877870146644074057771819574765420629443415292272843527767114155128101875872082822959309297909228738368198789403425295216668509455764885867220650191243071194543731119547506177718953810965925431460574124729007012815127682990424097384856062926600833600115950582659509149393458981933544427740642156257572178012849365165008008968938141176895651004109998730549906323745465437205151484619195086809681122512653378685422065908935383685276036415184358902827222799669377685947339784983762208255289362754569084168987014839152581277961983568097289300050634172505646631975334615241261232331599569445571564446927016916394138150668620014321653725718576072802276626141448159828803543261422688822871904628446930660787393680123222231268357418732377779663110588096985921140087460550458561415786651085759213093742035235783036178429672226422981703178422367145861364228962841779302386208952259686362468333045862810091230018575275539678354676683809378274219053623166137790540767728278678369666161755051539095905407803506002397948919726098171180677346893435522764932016095132669524680916523168681474212673495460378631654017256303281970875124447237772486439204931320953043165282005573581643682017671668591180601796977011051645963968490485399441815155640848934567271511433529778524356377416126277538052270430514693355962122888486943197782575054972222545409030119109360243965747379806652881997404174299831377036218672476683143399689100817293961352104323553857703568210588254512474892677422933210826696302088283357415071860319076733594999848601854479804894225795570536272354659971143575865565315532607430003988727580259057894031051507023534657391630788639664669242830114829811142069837480701287498261597731239804516564367953650603244458245406326965755510332807751510977227368857577123933628880328685229326491478449266928605049591265345023420326587310908962854873527219630953612654709479080293611454823627677785121420475754432392779818223665229309897843553269886744809288502496188656608283740767624675637430175476693783366294295456336996888320287234964103384541291338990057457065687307364886355738173045268719322261709050008276892957792205652855640253085273211329556848337657846197187377845600113984132063606978790199519985889147180165459904097858875673655719783887086614139523570462174549775510073505132582744761660716943803747508233600426491036786697243827713446002253623732409340716034001500866255469801370932132086809236208354577612802444363459476420692515569859960443381224015772972207014498892187738389555768631428244388781798109612499493180070037165836905156587611021198690424982293804029964442609517181693912631499744376693320085337234647182485660873977330794612354327694397055187912022588394922065480341126161428713875861069801005175968623141384499884193606302952050104294896765483251410080656431466645779003325531536295067230051990494912339879341628120084058598466205131093144928046369468952106733035626806589343796967442865699765685912404798515699132882291051903141279763504380921347617806263678495801979636570021671423875600874476113616912847199600727426280211331475958243911437871204325577443531783298017155648547196856416108958602857398983947468579770758252063750707927131058736722549236841942424740286523071035491911795595865921930681829027827246107350245351931255713914502215557847772325092297126101522002607808971255410424240736194232637888239271940008059854709414542026306064342159049088084923758741182670481591355376787957296081264915371694539705480819207713606209129049768518586581235588057365964977502856666832931474582582348405032014337029717200761032397058766971060909659309972914547612618693428218959883240621213814678523689252343469790608652239226328142508124853968366421680943349315726372872162591775600036117228001656171165035307490612686718872415799089222142388847195661481234389253539306455935035092388497723406038598196142136662708616888664747612293739201326898294937264922783933517264419191652726533293312080312344588893598545979964951706729617225228063144636787499656693620409627796706471523694452067592690380078994944256115896149495407698655059933299478263805590731510534606627040220674237777742511884695122337700089905620131370474539129810735302902808569854217788454603715893093115169729994609750372723882391713506404798004061759048870525014029215862936545804714544324220221070472360808742664078529999284359188627922932932334634661175602225858635615690757752981933443963332679743340929211030057373184678086509374583989324680931231537939307849264561020870907497601433593218210113516573964990388515106581164206073787021718732059027528709425051358536744613851632152105945784789899129501591148016839901304877974051249082731452117269451883479668619515482549757156901846408762530541275447477931440816585105309987513826725462063994953464447531451414186154748460812953618895190102500182471230457829213943164460437103185736616228744375608753381065987866865810823099463796284271003028528531387638844769116439561436884880768583072912652140600391068325502695436978951506468877998188194267950472666270395582234923896397930910541180234641307441626981384197566678889228132865785187368421967980458531820350199648083540146819819608488434365621880981408966492491660284889834954532498111699500231280209504990773289109672509988633561859412687981718166725854785169848339842789462161283846789112073600396240045907775114900815838815782560672227135265350902648382263654489250119426071501740617551488575645823458252436974620157011272975279320536829271797549785667499545056257260588648893118614532952536690769111626325678603464527608702294848027725104899252133029980619272324196008874437291376440978281872248798226521408201925159085071928296061134977343196156902796946657179565333670443645510098112133912518344806719497972957867113620132473762684613223385607087196071218316976573757099535283297142508329373706581019845945903219498452312031001154637311618311205118624020721078898048324279097245110154898057947826535652920339503406192621386119059297045599229333538239284292903921519550246664798281147984642031174264435307894703506616290758383633541425540777701858925712915955103265607759726953719517668996685258758334177217185130533114006755044855151327308074352588578055201329925934705229487390008207458321363226208386116940515035889801745838682187714134862286886927517908270204449611811097387807836739796434481119358456592838341378190842342081047524525362323661521400765118610390498403309085654047028210136154075517843737462438470402846921562518388223253588667032707045707037806852849499253958175331153609698711628062063506930924245028988310690904440123136864889818971095754915329210731001573567387644880580860604885270016605214284678179946649148052802310799899273915510810399210060889238527101868274556048639847044428161891456112328223454547407578452005357399610443709019361221130536250693815210966028585215364529629094612341454327964115600766296763072416643579291492859099582234282809729472499911324602662644232626371134853365027229894306232727063993898093379677913487852954006620939593068199053569765074095110772836294144043575236925252441147244441529300763153617109141541533390499916260924115683557401107716415539449520265781407121867834493765100714825547926364653714764446277009543641066491107559107945132206364317967595543172382950405573100182435414558178688745553119928117830472022576420262133094422353600798640213995054576456096159830106289678421135239598389826199119926065955058066308708410973758357924646580791908469212923075800298253651295838347470329390847489862571904886384847328683600899079340722055898680095029966708398516500178474344828859869424341664132221167905958551832349187637826473681062039432457584964225147447494691923486303659278452668181521007051761674520163637069199279663872989229583776046093066358983211391948954075338852617044096174069690260853682013113693353735581958342393879298651508028054491035591868121415770448316116478790317147084135040089368300482427949192328368223865669221735064385066673963065365619661948750419600185968625670002165823034118308447249658046413318616049105122237936297817774456623962829477870936907459957428046131963425114950677482083708372180752731977497801684925215464151276481000738790517200547114030966883268469485081061902891320796099001975590351544535355395226225211901826432202188845545019951843402598108147392491655354108826845853256423347295139765405922940887074263051336564670296433598664840169310548510514754968685978507105685823780090808608577962169561491706015668624196885725606519816573469615891465964033198788444852526054321783680896825439442030375434239351286954098308580935214354866352395229670649530593945901028802097247647996524560074850556492098350592459503330374594690798174694722731581346897903709624755339356563559179468127575430980269500861116347307199346272757219788734729636424120075510893224467686902772923118211940786788563522681300757263265123886413581634174601554389616541475488876621325030191174466732623397552764070685010412720575633016262740229336488163979489850798437636771955214854848060580887704217062880276233782614598796965702280644669934520386173786010220507306516994734705425321897310148211384127949122618476822657745912457140981053880213148093981433227658691194108392393301427143168502661488544586816941533802893917664934159957253520367872526874178420896072681363383159431045548053097562289045720608682115603816393372196948054045222722840094613222385639719496388921459237188365155822299942805008252775345389174369700968669583184529956471445775963555420167219130100323448386130909581707048916505153262872695736397898138651056819065615250838356181128811030198741873478916127322443047920329180664497144043111105091665962584847508889350287797627934844877974512915615311086044906696817194548641550618546879709981223564584921438326895451776089856658766463564704574258965116540558720783847214237042131647462356049380299494923814447462010219131840997159353005547021125813228996623800019996790641151076306704373273601788021567435226601946536316523833940104481345009859538646365663235018375603448126548411857230933797849993265024068915288538932123303553380944553627874592221826744010886439512393419866670824058418821513818518909724574629268159240559872187316657743656889205078082508436807249838472401162250712964489001928503752580482434031115791140008836618990637459075316711524871296323644876206564565313107526895716150995176115150168999283021536305039714889632024201582973767580439975361847948909086453278748254257674968492869235553012844529018416976881967038614988198432177048680542900907583564918731542498407174448812887287969169986919439771938990295793147237787966058523156298104804794472433372291672519673998356327064709466207880886043338700390585164532512841449075119423330950025200305987055047463838816359727916942371062653739704863769795414129101655970288189080683863978801062467842624228654489672327935840606703663051588063554979663420400721682951089533857164739381174023092568402917300661504425491809118952563960157870879125449627242883695642943524099797136070865353062292659528630560796953241551002770447491143350001448314287759131169150419774599648352738982227351715424095364084826657137543588133393119407000208861512515344148812907743657340146517265232898947475154561969093906839036920061620422690083964114454057752371575866898592757820238274829427273542987469656414132737828376886710723305588170815492377927286874941015609658529806136130996926490595372089610186225260041179425429220734952424230400309902627580970094501234218121976326007617166579003283479837355942567255684647338415502825657127636870400548471358729561959478875512021771306702353105209778642663131619037910655432983046654579426813945277127666636350205885162625359350276149640354644215025157649550709597877971953419372802689289624855850439186718493017755160894803151267296784252801878400626165408907953761868365464810545048873297450221361083292258729586810017364615091924208778771139133756385159778717538451695101014231090039134311502536351060505533456213189769886027326468983432458860310133735911552480161459677567098674221384637902534860730513730540593116120580542634268472998613977005240464754291932990269549814166171989286789345636314273585870601153424752920538870106205188097262020569201718694846339321000207348187897076022206258601507146256275428379533438760370845704010654356308644636053449846789795958793051068957903270684340022096741143985181835360070306397160015033600757230589266528341023913691662474352116421895655174722585647912861270502764160713255119973454951926480133869190949370615213689707751254810590872004065511563204796056108493333104821267549939596026679482095577095154918055999477876142964812719575059543334578508810219784849095692135413787555521422189188126759473033675150943787144758961600339443369074900347194231694165564764842073995541582931721134997281355325204118366381781746881239013648262588654639593306627048873821229311726989541462388851902023275961231363723186468485713044231521738445438326879459797302676084493632413912163836246810917442674948454700764076377526208234799170765679041976449919495393569459035317281018498454932316143976203640306488322025098312692759630427512690643399619755391559307313008520213835118949051895332556887712221780393352775854714575756064009030333422966753015022807510457075059263294305679238229979797564035681785671737011915058416196617934077141094332717752892885838964218399237252154057279684602805403868152527918371392756742947997192795782485893464445087616597359931423833174114041117539304203887285757942466835406723149387543159388362391338144518984211209527811463314149657911778061394421792964538404102804965868079306401051904198244548001230642870244065922884668197241675960981119633070028850780803787008122453813819299772962815010408670658457776485912215265440737122031080943701315366307090571597194824816143090829610020360474296379770656386845775095784895437036793357859256206815943257117377236687756295001385118729520339949211029146955377875864974613141419615995551782863948578133330312081779485976943468850404014069507053476318320356930791612867317667300194194045008794674635054120426656723113944527993390179639710454722279176704075129696707262597335826263558771187427908173289644633056333061946400288370926060416196953627638450417813170053108582885355491172292593340718259553231582943494336318120527150637814337751582402938300974110362850412330044465358731362282985263088786598808433987783647671299904912414721979850534924514294609219143524085553112604647071164712830746344357508850674286357484069034921366262517532183699257973951179415854104048544923601659832820947493847513277086435093393904035237379218661282021466826200179192853983653688481692231747159568329354067897756806306743688396907794173144722688772435841240387774563990529313143388875589253454631046911883028922167322153944280785164685713268051068384719205597921062430862195329737184971129301790676050473396786082697074885988639691147163730297532533618257014713859245231654055738146770008912591349775973665368586098811025763824724190086232854391793119792259783381688407172282267763721561250187232731710896820082402952834082821148539867583424430016984428598410747244610347165435629915449562473444950084045213908250189530619002440978782843713450828137856662733888732091744865302672788231034602810024938475035615166049600362196673940150372250664065987162343302618470407709099276901244027786056605845886376330320224062702482428225845498547065919317534578366000617708684549756208571480954148011432663949378409547549686514017397405448192848491974263712354603527041749827177357066615552896534401712856900708522676127737916026608220930090139878392594950453181987777859034831336241188402840606653242020547494043736774371830111746181195952159544541905768970110040805912745226865164222861024292433824864305515307536176850758491845759640261803775494533060111337703920650197900774056662414299698143537617571247205009228207475103033129248034723806074311346988406621190598175750658441574398098071141716899677784304767094500117301352565249910585318566036557203426398241431555013385917460431450059992562255056398291990519159448433100675109395252764365343734531895677371957727754668484351204850825055577096431273734123980450769574012664060775751008788252748350594912758462051228089955259396675505195478021802438550571283117584085835460766004896146533727056027295927260179994884285137704051780118183638493917003137604802365580231644087360725762970223996793533975640257371895366743958463218399770096301332703285403440588103940105567828998814898236351450479700678310544731094899109530792899268275577055536275835493858589057070662570547617066184476992437079062003382315475970842910921194629118331527295681321658711051938480559988135722875445046097120949065227770631864114414398255071969142331840102623796170137647518204903583862032391517846872161167105264910926874298044346454653609300365424399718299039310424645267925528614936421813954295629721004471299174820593691256505268806461114174414533570913260608101477889136953590075999321470433859127062918065032298648915696099411098809979187666989247608875737960196015505521170977926125095131413705454653460499081889957726554744461342221573975818502021274029465847953532925050899650428540783483428307698683231368593500419220064826984032100305103744158371539160399024924399537774423405312590223388420635601077584538077862841645864698006048953908798955794822433403407065395156825854853591783560326925840867558664710892608883770242063747176471101555200350740529041185450680519468226191108841522893477254979123170548544438669821986291304712544526783472270589766480003277759126479537642716250145615720214388046343018943455089963038983097976220386365471994292277712194008753224932666150447048642584595989705807516165939725758640118936024274513633887962869057632370496332196537225770395268328963166002575258039692782367723411183227706032489337533366410845520949299754157814882814990382720521239797402829021770261772408088344090867124236088629348387777214770329049894737975406011791290794638897356164356372562623687335743783461242850372903311981353891392618317063768947267949158794376225201224406484701310754057056994311703434026264771651171236634687170019849803572490166430094433000508831770467094355571321613296388994516902250536097526195590735632439384431687162081753046929465865199110987886596258567534350378595759720001889058751818487442669910233015972608141962269780179597197783311596554868102310160945710166241538711262918569200250061692440130122387184586362334428788967878277727049148533417963495197027130702581518586081618522561283380191743185372552874103794048781271708100986314738145232285241470889649793488286725754163273305611573453132967079002189939054084168459437459042289786206889153199799958271597834607338131863292760449658479535977175228497312116156916805709405473767757483975577713932708613371046333584721686832115943606365384528530084637790921364571148648318239824920369236716548902782018276744288631733531557835370529032018171120790486750289721808906213531689842761906726563694118436683231715879491300725304781653798798138189295230612059620080974004897838864177039953238595675278002456279245698919520050600244727712265935919701292680427652008727677973707112033074565449882414256077531056277786988326609922034434411644033540568941110030269851625554114846925214680919323054298755607810716690173197581338750893724454303506054689368983632438470533098155310142394609163499139366021268915876760419291303632026413946229518005515971668897558250942774951736429352981971444263713788080125807860808936419479785419799844069454508371128735322429217244819694256732960186609211204746750530240109909739505304096654111564707792286161771061801386794053574187381411349460909980854192379746569034504757760750114493834455249023822344019360652779649297133977403431064300201611782832423052223975749688637769194836177711982013393475948231505693854385385967078458554193569226713359128393576484188735561204054198978052530874680207457421499181484655310897196315766271948322013616114918193550202583631286784947198383870198269693253011508429899066126146112329693672378146792817396711459272367322636328999000916609183633376046508362137139803228308476907523667553978432538330303515974392362777437359853497875036294097490535014015129855438423761862862959008777369906208061390955485971612772411469160987899144973355159372644925413919786106195543162174064687714284142621342345335652296018590219339568015403418437857919430879815667400116166095888295043525885116675779517601658934082558011399496111462082402728032306419352325141642043362783657594437155433922967712406313318286014961618311043443378074586469348062304244367844492540323300253020494341547545993197286389501695774731411098070436249845637837848882044477242132005517610414857992100893097244707872907991908713281469335645330891717864788471982531647295109949992799699611023271911628860373572077366412956307139957982811791729448775964410767475017937143473843232277044178629127056500089129551853098643340450720781538448521009064758427391502465500387816247748831283350826828665204606937353778806807369345978988214277881620430706876049799126114819026327220942192235064582596244704668848529373626790823627698456180485081593677670470164964281277438694229820566484436291324270006535777401455860968802437947207998023812141779742174034864546703179670426223641486767601179549075854947128600290745228081444199945659942679609056914227975805289458203825062820205753718581676964128201642853737056248338763669287216633258604289239373039207907594406583841000024389437893932393811789864487458871707899356226231753899887449379437586608204041798634633882357719765318619328480868172462722073174011847156376736418358614836014307857423339980093893911587120388034129105074013791843756873590964705463475301668109731887747428170854125658752559438682638092318295210892933402068514103853757701175505579566701293844711917826339742497156806562611159429746165680376218945703867593322789353096479339742355125280338513297532040719879920372166469806618503047519698435637725172137616276118640275068482887972041802879758566842105369260338307268249862873814944321680127070573892969673757656251806700616048204372869897134273497396793918078470360795824890236378961395095271998021697636495752688927015612267446885769578311015394551880580538002964243280890317683780457231129642518171373452735055954344488657448735550836929596452558673070122630031019305085733117329026851126607537778678926529604871651882267052209600968759819462269156371334210663943754093233812276478761427014402583718499410685537408075033573316651637437496618551854944063665071154671592556660039513475739219064787623377373315495420217870369130179045628840192966599930878599537325425626913337511945567739043739654209126111016508735113703337013760959775982102900616587415028565202655174308789176233630387447075190702663897957971346451717427676672993038714551428894587378564137008593958870451464354566504429448359750156785371971770566858511920480139471153994079890331099616458911527044677566472096583199860442255078991237985512895456177296897752272706876526012438074162783804607977330465370745519684053560659918497640142322776707415929441874788089980730205546864094035338880265448265312691082766322847003851342609688850848958982357435662789229590216734584667500627261779212132776877290148828050958865291454573843310349137235675111065269913858802583181454539148483818451198189659077071161795345953628184184772582693648107018110069110769630876211038776734353780642114356013881966002330704569966693362278768618967182606490783913305529011995950468572016004960215952102366531799211076091464250173126822681556084158771708847380441427038733360094972965444996453934258299347517754522020034106724499454244716338275908065467146814981575437666861774318984295093218817520461017912519918479599011169789131111281250029681046636219501617884309407191716748693170092051426691430838407377011366326143225027402843715985719677030112239724468727837086185157124346661237269830329377312405646157599510917687603201025563459828124599922757612631958241168271421183481179079189514865220244456396711294305180347327567832084178216805056806539785145625255117201820649921750857229317037687011936172616551849273482264574670889760674257810608447732448892610356477092440457407547104124504549806428995168411663292675698655551618961813998373713122237225259690549464647165057430581062067398898101892373701409006124783331292863775149665457478773841151984108328029802009932270008944067352725875188121776202604974296560851438323236959153226121804289187171000827645400737009441087614521305296712612634565809235222637509891253926704759084948082795658513036631208242111783205571622506344045777541559405235931143640045689739289503899877962055573907819925594835797776277207177238447539085697855335040033716956688966330731068845519867891307120117367702295701050741127846207470405026793899956992606169751155542296173336672293163012572610029416788475181459460548455245755758815295308415387549368167100982300167677303434591238390200018263412989205101200191079918715801393312019963058252732097576741301869253620335845894405552699421693161560515378431655096691214807097983437755561859869880420945114937294738441027799425684705681313258646228319230767670565329686433872488576509804564747736830270302987797831717595333983547515457613073216480148301384379736302829370752115335644393787557898659348887122238379480056609476439961440088089038901551800036696037398208345358053836142069725970036528597902531011483919448217512719033817052836174416908800975701173430484060155779899201117325878346218782132556724816233230925616345295692282722371850371344471142633938806047029613759305923937520001217651227942675908242057321262536152837885784085929768468610551526868968579165398760421017695345592425911094089639757339182435265692783374705361933712299483612634323547913034376012270882511523993358793992470041232211386169351852164237758151406386046089437879265490880025637767771028638022342865661613516170134511448037446749915234506438848774671537894115631381556155688073597687160383789178053072325837895507857898022860205019143011790650864137134046838472949289900127092414579110663324177303429215423904826066182608196118565423616256446719129662549305736928352164050678708270970658764258131919868794257437017179196939927022590375384053280873164963870860644427194722827473239218665071334870283058734109983692188637506878836010597145106810878820534395261089392741667671299863368748608464425760359128842504164038919573475621573520822244413297219498564928473350019736351248294664436437065865161354835337825630781731911586356711327019886931208676585493152359584591583053672748719179054647309734628683529078088438436914424362025218113949730257509307128089647020049008000635078019451822794439650488416158110525845138566539449714383924036200942703284002720394209382164219590028946178936641677068547018609940526078383664999003992368658614932373357717867401661394353879963146044266681391770294932584485850953325008251741655565444230662829489179621962689994728171133411120307257967078082846859265400521009830362290901474447508821355103014932492917398869372583013226827399398723839054888294448495565723991829812930277832419062107029563793556419615352437314393098488629979468106793664939856793119670246994832752802316934079812722804260173607712222302254961884908706112578458433208280888646011150376274468878466578998507752489668487850479106152637797957138128985938079864300870136269823764036006745050816302801133512797093836813298368647730154193604234293151632784157254199388176760404737499885262113504213082164598893108301023525128071899002317664441688745108337901983709113012154261666417135263653484934439027889692871659164824611656763606237787009989551617432802560878137020528113498936170322471734940833007765947291447675300344781078727112626231903524008658346367286930097881694851787656093436178757741248373002923176299012971391808897846328926296022113679898308518922730062623104611700555848223342324743551755190120330808592437824337442324592042571795117855860712363756093895698335486346409085862500805449719700848345264523230415543219644837081958837894438670800481401076208624517649388431137889695272278010227338466393895671555740799413152622850047920215884327676564726669736738260213236138339463667661504014040135814033894531298594429027453940024627937949850832342903806410877457133122551922206515122093942063435749714998106123939576050451673852708147576003039294838623005738870968530056335323408299660664210295556336276410530615125396214003468941680449898823195448042772009532712656253222431193995141263908269170900403982911146259894463741910165845975087847821257781171677884551765380812028356354151950275919848200405876974537125334034654614799323634061308845363006752328562518819977111307679714780460618676923897744793215834652375332670066277441946269878806747668510428077711698548328678110974860667993685863249879127070361960556971473390256800314341285015962993768383618362868273621399811645941227491482228719997226236386354821278225194031407055633342778861939782551260958607751412932675765978489352443295355348154788688011336817121093204780604394493003597271978279289088085402238561046479084792627441843940419022339133466867968320411241459512670837472804021246674479034642485979139997981870266021906721771632935388097183111670833606790172030511004849200767054913543850782730178178636510831250603656067302996358984004137691507850343555884096477774950881643239891319273621590296122698368685436804731775434426205795248055637071428647691247230835716209136959616573234082934775282212089362201862183036682392707737466431924496395760805041983737539487402611063378892938288939976239539985614663796265044366303917128667274840394229941988883861108886070172558985161169186434966191687730509223925023368308406389101274567018762833521099920714059093848866454069126896438320540167710912562467837299673170863001935021840039600329432611352458531362716202400280770427292786860612150160426257760038010801264049027645998344179768687319551848778138008892806425275335071466598074430256227403796209224655513097178424080696490064506535919345880369332595139528694964075195367345035554656286576276905955649108137545221105652862344699765314505360040613512718028501169314163562099709255244509887215487838218650170642124036598775202692100360968699232931082826491542345491903181671514670141986652746863761837159381233076088541377494093595971052112670990400956640291354317220320718625589055519532517334476947065761792556228361964524838464568208486469483612322901967101311657621648008007946588610785010892552339999822314343610927066088320900784599736897767677868557903762117461402715586600755622674791616166242552718853167063489448525956720071864720696954917663750137545665219847166791129169974140246563960720630710395603675243570972921791683588471373855949650826142642803889022047790586581377616046500916681341010834262416404074876162461968558941500509879118471145461120768564941484342303909351598750314047903133456056542679592423619112861699544334597632355792964166126246545594115036462862162347895218398857824369712602562431770346106512550967314416034848496683441323978237030327675647057631728294510419926419859047645855770090781763530587920720774895126110208776052558200912407752322322072572352388727501257076158603582630175584297084734824419089027874383496651190171496308523976225193010810189425007209445734565226383001263316607350938568851097262826567330766311489730336344305782790256218806342134491033406338854479392433453018907575787918117907278173573772397634808976309376197444488736071016930166068510630248544885215678245136943642368670777848917371181503215489573355376223312430834199342153954534441291780417275399454328118192427058333163589361507687302141793564398155925360214021725969519642657277017919689255391803878081322078502113728839093876409898886933359517393641028944299131052725921111330311670840545741564495286801103796189713167019856395129229332911185929558857825757224221478472819514191232137965319234555279405106190869505998896697609109614172780585177183041007238576621728161794027179508095934955286688493817271103439244617023460373512491235745936379932672591402199516590452022046500981585790701481145702463691680259106793614063363370720221415357490335888063855074368017757053899708508320258931549904101257375692035486729662578802390797548333260302291699443968878766627201327878672092248503429220046150721553756367051677092345260678119567166835114241418513908469859275056001373478369309407462131120080772736962960564674989613380100628097562699359843931117280075367958337035871773560977306823178751983791127128491154183730410977618824043882120318048875564740917036425709735418736256119341686792450444359354308609225395259621840299295123363683061684888796529877198919931646960009881902447229388160942145353548036582825410737946543378756456291352010472126038592908800431350337481758192809497534420285204540537668832552899109194132322828790675677771821646918279443036493157492986384911701659165857655947483687492394410418131980660124561557509993346489852098301658899994921309849503084670689726360799515404726507018517576328470761022377268606092479252793965643998051797998431791627548211987313537221525799123655029121822710145188522354412682333398310336965539574100264448992560946278685003343232521321663655097245536243051253480576924251747075184958865434351609638332604091497968034326291508275705738327551577204092310860700010156444929853424643909337892441822263013813600441830122273435924391952615269348144044776425136143437033456078393509003541094299338763616968760257455600461219600457552648692344134974851924644540700752916044514556159346600401589577866738555601345671699145401467436920362613697671202400227245297995856730720334506792696641459010436520089436920800527527844171236687733514576043411240247867041346936928098491325882703234762302097945096642995493073921872798638922721092667809728493605805435323889252323919111611204059020375575165312824271277790508311100930812032313110590118139872928585566498909034139443571608436206301175277166461912490739247117577193996688020265799728817147569963166946710034134297788334900933254301929077121207990001442424957799447245993280918387549548028737012748153842903112797137069115146155806521661457759109160082294358608467519033861286186029441331869574552617010919684198115532663653536577749269848884821680140693425448741117346359037890957434427782709486737858232805061642729214408238549100181585130914178207699013023580963882228619298434713963343948211447634967191989270002094169917114032297509165505334312479754286059337381569688390955034862779817251925803056017472017142595385751113596219835359807658242207154041596475942577325397804870386984711485056154869624997375343024235050465431453508806804877474048021437409243938560740116225671761853608501167343470251702938530203439465932564855694416243941094643315154931058288853976424521315828055076343550092140685179252528439447799850393652038084348561238559712828734562221116387357516056543027441584196805267575357903297806071353659621103375821220306056294377818808030966819612339142494280354413646347738412111331024775566351141599036493488098734674073539922917328399936375258420564235647346560843492646192303049850921728225961993508267292676719793862086237932225470150404775054744938300307069804677115585627289543646032972896386202942429420891073907448767295823549037727196502733911395531000558295424682495112142374025767923121658789466555481958750715653695319861025509587721689418577098334587040733521073363988016455259543638135412260761168019868867985820576703560619778217534625688624106023620070482402785831893826613921914718371691828415892676928868600812631825506744234646152589496031423111802061660405830127083998700326128461242166469792918092729834493180812738808541794068418927730673280019125388060580862941510058215803705538765712705036783272467232605994723398040078686749513830759869668573056105368060617655015528900308649805985185370413558930100030579852459779552464478574861078085456367910463991980350533804899890268711908153769806460041381955479275365886231698139953632906896382309005184616239281305905263981656173621573066053597201102982263615530118984320341047919330658042461462404597903557214079385937681417009456254620743073869222112171258459079020564781839244308000568535975117467353542355698422626926463046065512385772309037765123013687242088040438558625309355525957721860661782194527976095683264135752298715830278116964047099146800713949435634567661948456729885238978197369899671117400881888473158153078433699789110587228743751957748967119011724050743104830770780180298531443134169784776037183378717340185366835298926816770097232526086743726012010473538392253572922671010785842530855608130416658567017123373910770061919372656869135084226235125710396302102823230612184350093293186324995920637732909714985084005604679323330034782239404331377613386177780238753327689596549451826576903695312206323135446780370750288482572567300023896776085240571626260578556113747553002305620394795013389766575801755434745218169568052521101061434081473728941213781846921757473423711813413872968373667942053662086195626379110761505654941842094016604835316753505382732619607498190241945214187462460581293464616195841584782185058966304494069645392698771669306145325434314210301749935074295463153904861375272935486619576806686351655742839549321925920217919721815425043599286933910407562890408238517664660439970564601496700245640488262058474819839333412135095403848145727938277723842399731880519762741667166276260722657272314354574686749250549230737028859293821466914748320748207619112785803479584271348143164814644235541668509222227933669561698838645545709917341859587012937153655370433572640066359193343456845206611730334261777081745889000849734430640252223432337494251332337996898685157143344734198256142975328818983840131223667575016696495136198746825264106169581529326627512978033247777968278665570088703240580742558288835089438587388786063732489112056293098042441336047232373932758292936895040438400794081086185251770636195205468582854344707409954698720468281630975432982816253511291688057486837942173849704488381136777139094731517456985592732698227972829639135418918789355782809586132365939750084297062781486230450555366205765010328318827539480178647665263777331258408222978745118975213241575503937416472129961700942721227892245858161874952408275869004561835949544567033541115040769730793943401668956123806633319274607459189306093254899134040831025807300399202831216957979663110537759996503659494242353498947155895696371560619916439955451587727476833707489224509281292830002052462369813005537174411623201587669633231922337215533031493291093169855530346495384562060469490890952610297171290380982819474648910870745144128345236583901667080368008706663866731316340892739470841495584140321884256455064155840155948556456672722001501035878197889323876986801524381793173841465525478545020765598242536020147674555262293282956578938249822734401957067630221795483035670812285071915592674071101704663540150197621149159261585545430048836520705556681266858902186760466280378076099442095645375670067569596844344767928059640367387996740582288318497244590470626226449836371510772205766557557602782088188256733850739844701631525779067136470594158903479654330129620545544266106485432425545232019912888025239753988990677769495944433887168021863499844020028843632284435339149609612052874529797063663680173924167606897969308160411486885791868678959987640801137136700611260368782832780097480792943867910825010797224648631788472629745647772534465090634944527940689473915558535763514556605056552591111293032490766447170186550900223673208187341213873377554511355498890371225140212450050420308676805622083015753350037024728570263200923979945947724027406984992077933056677976031328073958885735088255053546307293882719685028234766848522442594502852600894888020496385684628485597219714817848876845282537211119824733333148932241072668071062143362819635762509915272376544731863990036545279425927690243490539653360235707541556516328464206827134854095479013947845126820292185141120491109287646865457963373325571071028954750672051240240023274980044359986270070541522734008144398947518563063183894528350458793564846861963530663472032801144015715079681430346908121949716338411148000430337557855923570205078657068499868218534816965545811201871028466934839326733717684910665070920684086043341467405152719237581802213708802224214298063499287977449831468978341581710727786388370003284401783620127319906111424157248507775234051955194436353905698243365094538013308431714204442145916812019636054924678740719055959579617590740159690097160585532571319365653899194424848807933435404157983252900678704651814228191688087760391878153780577152388974167589951515077465101786921462165918609887605185302829984603971900853973355921024070697500328535615308545865553582145587582678931199186976463144920436467883933345431243382536271102082289372376180717039629006591188949957443065593684489291891329804691762364491786199441498260912965129074007424950626085492088427258834678773046253535352404931619999674701556982443579420237216349616255235094451348864653861695698478321091616788838152838794974173768232100925483479246651454620558028736800571743050512572457214193015899568040032717278791524655408597148165536363350047274017366819274866811514695914509095304077283108085265422938803646688691658658437476761667774946699764006025930192097484987808223529337102268474763085736017674461796045309239037430986209937226952635349689650732115282860064211127817389279727979623790136848477260308086212895304619581739835854839880937134019792733605710415686118481016113797872259603439138720137620357231021690999822064094087856792879471713772869602755751102601771285681217552877723863307516984886955273241590659569033005034661160794367752890595011881225632864060115034196317701393870579532507573690680776787716455793389838426318352580618223368011730177427840885525576822192362158518924506588419990520192515456185640246014598900864400645525027825054653950425442848737377663358250833194908200973488772094107588414240915863877770252338260959472144497160577701316535588716004663994795509518519169790681831359939929523949918513863054138224961240321626931232071613569713274327580410036809170696476900863873443082712736996808470489790043833727746351177721015061705031270635466225830130249135902190394390945028252255458897671176562117110218682770741065930622874431141433690598337817709246922860957032094470188095728013258528461521783450422726372754399102387107974851327395831238083188202982358697569357127409799630452945628111666894189507219544911870885098668759582860478638388116025055330326333559157086487068577068025138563956323080645908793858776640298884961037698876398135453193439094474124690472210577411558771927083502431097828378975822831462193244472109784399949397213658872342627894995158821133835765157818449789387566125908464950061924390435991861319154359305015827362273252298287838013044254036974063658026246416104583372426698234988581257937454566109932419152154132202245576086506919500149934859720548274908375556225374036683762333981974556152247637532615150183052884576721806461912337118965262999332887801200795475362125737887850488468384164773360076729247596689403006203034679777251262189498508926231239961708907612752422948557852296314639643344564139175766432767526642090252345218783869833372937603102326833709834187658553608600057078969522801694082818848589888849066610584439420946576150666760848130305354560853515689118427635097198719774869862012136927448051647562654388019906753800095450904042573501787923356601547026128270830167416467576140963521981050323659163068290925639387921851093906688311278857548447344893252918874880398398702524734824449386601683474585652715213238751197279731249198365498730420732579988463472993248604432441434859640613599987187399020689838338678354567023702356596347865717438305352506830661393145448420009627978542700630149931185578780788927722274644699407936303836170996975741106839806452207788386186326170396250948785671819649157573033998884332137403594512934512317241087515700431294490814320366715470326025577498030447810063514573483640841474921001065020685536273248925785823361454584810656351206395449305434908328219611959405558867759818130804494170643649796586527021771446220457884615967109416700252684593034299703055731444782921429975215519233515956288787817974104147922329415252388519485057198563089628375615583258561119566936755028628313132394387247407131037591719097575109712533798509346210400048319338609353748196185538792685820307390131378146745804577150953023422950376371956379738037805054733909057808462220045058601266411190233186761942649507266919883249588259066210042224913062031839629652303407279338882508050095911621583162685623748507593302826170479686209896646012992503804568791262082974561744333741297764390367197455122774846804582161340383192196632273388375487270256244507184596885358581966630794744030307371572544152029123986939976895698813034334783242040247239455827372756739252237090028144747958595301967027477732281609008926391827015260408776563726034728564473766357593596111347456941394681517808349520145800645738241477182427906166273193707356384125922295973296181039235228086931560153528052721937783839464584562909675780398232597199586106830357198033869802981874387094507284110290709550370609689762690273174782266409772587223790155244314682630745231996813971556434526153072929072310432659492601544677242688623688407765141307335846825932538149951924888701756872641287813282972442699981172776245684461610801288639800596127974094574570842130378068340351435654246803421124706423275359533376057390920870521027268889079312898838102145553736780001517900625067073016821647392251688447949278319789804156833580490444499522421559607411511445825088481244515043629463309660982732528288881297303480698558532129442342228716625856025561711474748744161755967744736495527940834730942420421385632435645202510178473920640374324230584987377787545896148557567117916502328738120496184039324842588172803917738344464347791562558818718883592409618628318114199816692285606496318466392926424222578394243172156929022464435256769969577918642503123020187255479137296681045778593260750915033855750951421493234241450629662640651386253485542564701903306506708496246000359073688717035860771202404469801620950333699973435152379332908752300796843719355923755460705687272070448303256076697376888447119028179918584443274779200429417293016130525508678065691209405491326528323552418306563042872445791021035959162819948632489240590454287708746049760229676573752035142431021073325753283275572954310566336109084745217465567696130450579013925186291733321880622113428705664375370015539868850727158569866931776549277708221725102935552170541312302111292262316718009163420180949249550774601034468511502586900045747053642558094250659988256694122418420775015055142518741769929337611190619200498003312704842466142031253515404716985208539911907190704145641286118929864211674578108468645009411531543102968880365860497093963785670705849230615459315223833564606063109930084634258765667198390533204530670458598559303448415963120441072204176957194498198050813974571960770538906190643986412556886140490746955922464757328811764204893412718174459668947638905755473337466207858335284881956312410174607113157724721511102612067896774027276555161621699929595723205806978589274992095048613524421299945230814663790985056939418939819784600297540728071556028477130080789021298963960974435611119390572951638288228213925671697366925224175398340885694983458691152492481281814606951853856639137070520073693067032694803198326077863016708605619185603308759424781764991948935630371277042070966136021481001756723099348749267288984366827625684232435429001329319810953369181841262210064911182586120292579874004844177753169785726536600321309972773783484050500406937008297165358120292533066374971236226599608659367205950702857265681058092908182484698294359254090973343368914017146540039592001353589001799432223751496846676693144007245510102042506316550909554849193640460883438437751998079794984778376978740124167939233859372066832567607724181801121298210725449092388590174685221384207895199911196168340622064825822760724247661313163745726593112665024726528285597393065920134870230871160930519139037114571496822605625336250720066669917364715603862649849531226230140217780207910261216610129360531821845048965195519398932493518064988108942623622395586504250813123391633996331055386335174952950626910656589478999642565563260131096177614773192306796503362010263104639434751527778169228787874923736063840149963821195071928038996367590777442027403404022732624102656131099592696419449729714438719222528905553481708405163657022119332695552219078554850806700779348744759918016134017329748581968208954698749354377631546915465599096080220026998565353366272927347854421114162820807039018164804432404545709056149285908112413494902589154922412200451345669796644462407686336607927016032754289465293821840333170924893574098691445861545225906926020796713000132265669342436863902196701517087553294896034968971571290901209517141541299636073906394705586012422093609547853745992893833044061299950930722351749620341917081363033397079840994660273031637612632931196400893739647767071927049446127868798861930810291664663852445011540142121860613892282885315039940614786006580001000318036894241793328013387588065868280652551991187652978881683974955307653492349455391375954356946395129331124366121560094740746874400091725822275750113523272384486303237586986701904283317827248273429884158178501464287459452272946443535674193122131004581054970215399519007730808145241915980966907116277823262464198094513336323571953674120543572775956432660305635969315698555840830776533760145432912022814305501356562814844378975523672327427700373194611638491620877186380566303863537557316598963151127198156602482172285775994636783076154199937098733877263509299108558676991233342342527943674941938332572932382936333129161044014435025955740365509067480851706840294010351759116725217805970983125227292542043444489282631543834198291303873827692529233604143082564688380530836644465682755803410197448144184612558670804847826289310265671843902059680728705760925912849830047587800127419091191880374230642841019077535815487379765015187637188233829121708714541223944331269905027227741750210617184183384553347604162361024692696568330830912862962144889027391229939280734393099305217693661145964426387350786248076220683547504688494460521111822182269455593769859808935456599735960635673841627311303079553955271538110480442509594813887805284715090022846256438814943339194821846282833776398929253559417339584726710752803340113638549230590048060932623771149632739598645980533672477974786619271049455936544507374125142284822240133304386395312250554952945372305402676214012056528825833546573252155866357698064185304841475190326946307386807823707338541420971495620319585767445045691209652545013435866897829017060324358894793820261002931214478726479474472790136232617491644069968525005477914130863540527667129597189531917434117051912050376891064330335430374996341503649816488702989245904845159186332229138381914951754019755458943523544501048514116575707525372827650591083583376382615007153530464468104930368385710096018265389316212709082394128132269053737847467023214618028999812310220613775619069817114389837690652675871231477921322743439040015747313498661599116277032335982012226767609571378601714937405557613097148691449782487309421783433079373466798841748901726854274671428457473481700368874076517660851483375455798921398425858496849415078411314370846053982292576147937874579807058828715901606229625422172764459930736952285534403285605979859683093218073589822889694278850686324402696496164263739619119698616711023346886916588707314763336408602214401225511018851334382953779793688876422317701153040378350182670430843552404946684081023097611317768111242696387639740596393371525828652109982812904068438926679493182991859129454683085390521858825626406982906272584376556777787271755751803127189442083044724608397898401720486275839583259194653699658175663225364602743718955214033710000623120606266292427536879137785481928686899785539340335124251266562092466193334324589689359412332029995481407418520693853027368077118336146847848389162383664984749446103130657630369937056903017129912437558721353457495548121846194652121872519774562156892941457524558338117837473713641036468960802369365333795022055272204762439966124138500235639793890509338206580558398031330283128674523036523899929721138180260737703663987423805082109050324079179430539702237308015769565141195849776150998993433938965799835181040024773893892314127224582243379511965878590713270448517943121186840292093927179756546381130635785320200067241374088670014518799598874068068599058403045961519466712807070880967861782115791890713666333874557692505796663804103196035097216846164323582783366937200373518611199437388069499724316997725833583415669301845307333056593005671653192931898460987253242173567089303909242446679859161095278724908694742348179051273237932601221099927568615206077623964510307608423512649218591929939185034873964753335534681244429923450737364240992624206666026831627167730944326843958849232478044811289807883688977857187235635979625915456064459863737776307894927522288066865756760419956263263877870646303507968611713974905703464813849866687934646374809602408652866414132790352144455103620990759747798673959339740480454854488467876950281444614759476007709487980932341598825207803172793341702694035651999364829913050915031356981653594361698317796875612345887989507804319106287434769984609153657162260459301466564835202411823459359544581702874155281483156085370940523003337036878470052879620004245873291318285860432981492839425124851499276041366338731585350641531941650652062784397410270034838296498171865362826611392013403126714263179808203819829419280037000863908781295497884856378145333659772276619030934651866307299014785195912930539247115740116209313803489313492634634931325313592992399838304985557872552536405842473158138667131629428207009647193185196488805098923864756346705793855953854230082998267240524624037194071181288697504761413871915520455961695928662103560109512113556114893398430242238244074314854153213867764528745495437444551748324739697052549947731224833659787839489469965652668809542375913781886726108066888856083917979084470483979646729835614270260810183681029647241608324983621459160458106729994717724974814724641992479108147695438771369944565085999328919158515898228690679928535209177308268424844070679596124698550881329092911861121593364410585221604145791543191291156440381597730620472716273388984621266994343844023008059605388250072585336773167716045994120562306963615447662215018902768133253382022187554420019544209633183738294445665744242981239503441429604498221682615444180154805149603106687026595179443993486239576096911973837803702425481791593516086629755282861695789571638582660397227740253750400189820993495435789277594354681948818705122285825774981479657366107840087748174625681422737561875195269604791294508386952363629006419237922544966692219128584065044345729448465225607684480746181536008083784386441864824958334821097593594428678162861182240023107127934906523988587182821162499613075095854116135725214453156480523258649167244179552713325242609816911124719662880778661667390530974613191092384036961815171258959945093935289932082197253400543509368467383237574443927776299601725287970903857016926216246368608703753761798930817574770109165441599105233954038840809576886369625739448590867496390498381964558859855105013048824365816814164708314346493708305366984507539821593268777675759691840860923879342582431935888439723528957642003958106348938628373049672234730005477422899685687590608584949149093335661423848883918968251150942666614916228341438194878890096001947970648679141664813689513902893078002536259964459397342584972014201966596719148700808231634377332067086734082869952378170081772231636067658352896071964606426782149944751100802519222115413845806488101364095264509535244533400893522040909235517617193315671655975926737677843919152756436787027431340194396111021700362688203293895015066096985286567357892279530768587726638054394035220052522930279063581783710914899080634765854116996461525311559713113854155973792874834422012793512968343794606485008196039367816311265142812125133349464883521557071683475295616326896351173004319166644120757700047772232843761044101837337623848686108152098410719133905846002356023017652092609156946866412235216444358318332497705794744843205697097646658912336346562704225133055068444420862215428972659207734838450255728575243107853997409874707633204340593735887882011664936940692246652708063666321363664084784635823585607030325182141863539867564747652506875933340425358298846651101456409440263196007685972673758389358790656099365540885324969620861753275748316883590639230849530009948178328442144295740025657430745680280885640009025902292510725879771919994504156098823580450089742770442125634190786885170091927299901230552752169626194573522466972928828511988118272320261336227686217637719619036281737244266657004946990214763938267049345552797912832136091178662018984824148291445560717528145341277549078363557775337200457361669496313844195251989623595857419177336280423776676177974464945123820124268318976277394135903401259923070513130759094152951430509583116896626075993861988732842103897419951323935815847352761394933181728932565668175373811416777754587677984929517476159201244992554039681156918204415613170005212251584235672023107213040002081544158115728062202341660952585621695127161818793601362543122701458697215346300753425538445247415121540181352018623050371602273326615987032274833030286313592359045048993456933878313370643476824023996880412172558583039489429361280833241690338103688603078185288495848829387828610527414044197184799331735994934196725713177105441515034860308125848137177576422151188717406575243472830779274279709329100716846705920296809444787862439199633221712058468262187882294663061760078053003104177351712734272331680772639066030791871577611078084241709326603807997042519641132066409993441820031380799888881169654632662648365319334314332805571089219262163750109914447880722953386611740621621252095590309790875650064748209513432775220721734608938185187959467687435076735759069029147091402938974063061404204644667819029333909335527465836895768025077448566535529429503876415348223575503887628413159672501788161746009493049631888302598556099961221826929164659655828527541625328957484143423103170472541478725870771376772792379442614878315607524701822604858525327975362717742632402036083813438124970842430924905778378564216026705096392912527914172411341351473775256421451576690340149008068364379830687266470633559155162861478620537767333401007105229081482843821108175335704740592295955997210963080629834691011339538349770272368806069001492363190900341102052239622748297645193400378755203516818357522965393220997538469787664119544226699518420353967752690398372915673055744902112091012172410697902569114703738199026016215355136356099661224168150753413662721432481325325062242386846530536640465174047518216664216860745120993239186921222108034965898401088435509424100452805783441789097624640184390619931330206073668299868583932197712731850010712690740084106972051028020385230522790230619814402312497258538010709107133344471415577307349669655851811747916421988892655607310316014360719970807871736737969714405899539718980454013382072200186786613659108516949458962042656434379407817797203188063786353724838270349923618306446550059271744103011482361379019092509947720838153119545070878322061237045994036109266484954774803263383057799473176342263501582154859370680672679974297467013679905724065820064909339018185042636896927554495013537263554856774526470489004348153573811973254127433058263247908530847352060340613642793154454783988265681383927762023734795086932624177205049606271492187869627273035671599665966451892393165687439916320595904965214661815847013231457399921513681354347303687214251082843165769340975041272663474949867212451161523424004528539203511396169691371212245223056781664674773335760677701914068771570452915835387108656058523060177162681229548913284025692910732212509469560646079858403997109032219518003331699828782726872494137425229264063443860141377496065580071828570802517728239297484479435164635158779687697224762182359758439356905851624600973799753173961453493238883842650875665997390312145114374134863079899745788554727025133657546901973957173161614002870717464910802029667959414703634732461803265892701177958844006523267390758738869408772877540767370962847960284500879861924932358147406039298314778114311472284625666090667314453714256365873040238857196906661783072068295006367386053408501340967991620142235137413993817155096630448865032234369874859981990482158684023193462269049866704832350564942540472774484403424137081584754184181176988492829088772509238526842170025536243709174083313636548070350507298365929010368755154195408698635473259475722696498790175247815670405924550816424526504832966165979696235733533039423268187388543975705153935532118451462184307083621280927981700256369554629406967727048779802470175752336496849480450422700520071723799286192686850148994383662467338788394116529912770258470970043358190170821861361178891410468510550218839121478437785887033131113429314129122446855717563992149394032274835424497874615148668386365463508875065827144415181329021927878744728274661353015127678067340289609365488648093638070919546023750434999662878676395622908947426074838714227784903639501240098023700660975590622462955641787050517551837220079166457292674139199173728433391392435034817877934152396413527412863504446531468674123446309095097876298748149280136390434243381167060697574050506722974528185601525092445122875453212637244716102173855216937783734533191307732797486604271675080120537502235199559594179299398135326135520682070885077699633950013471276875495197579459819419896155343683805789590908632019509101956117901475203335142377899293681912614108553203167109752249229849537670602105684087147490885185111751482384718250962200659624459705618709148340864119670567489570674386816479523042107324523003500641162507388387275006219564279224663151500944024578514145116395274427058147354587791225261528835644026131034363170578915540633120025855900448637589301531581959910822788197176372287849648144095781174132445750612407061224467061365211652182809014780003075918914032337213430553450585448023036556339981177045586804018066230579575955213205677581060447994550884209145468716335562886517267107782918149752220913618327923232785706626516669376313552645420408171521077048115829915284134100945694990268484204053756108655435981474705011117540516457965010408476236209389420065093945870422271024683888564027001581421465594464745884375602122744188959693830067687262526935041956242357267525749943548663313095495607868462497419256180839330359245742553448577403928236994422134903010052837153695639278979584539659647796103745063514353826159997261446254428099604967109375858038754897252709114981499901782790376534782011722876666572494759595521543968450406778309615284664738103652924434558678362923538658793334011826167568293602818535804769630730770613981310881305160358465326822959650854965073099426221131600091344293413594039290040920330905048771388799361230623929947798045157673050859289981227612176417609556630466628466450041399704500103324042281157440702295478482155084463410891910685295262994904410865653963261148119380537992968638005823770116307033704837527852347335252782901088969163416498713213813105206480994866198706558137464019931936979502380577372396944601887613099041285007238634518581619523609238171544563162602356695634904426476523841128096506285310351994442255008913502625376157069337076909370974877153767478602322385900878546495603762134290485369063956908110736842260688985415442751084011733229299584274852225545006863772526181275647572050960779524710663301446864067720986853286569762381871720207196780557984736603445140715279434882050800255325464545087038463159399471258535551445873266747295660629447291218223475203002183308894001783172749452196265900035987355532319094771191442644818035934474654837910122139674956371531146160315770895278765195675098915129539059004274162043304376356377813364793648945774416685629148868470435644423966305184435224681508125716692458983189136990700263443694452396912837868344728464378753414101280661886693013462932179050636321271072213795427066552873275623397499848700551115871497642676221165791816505019112944902303922403407061749559252322086432608117648572479593571020786497492160269983463116677505983248933528096014024733794722789140555013049290566610817381430524775671169080754641694459712204614325723895803856986582506414066574618359505636940699740532514881054229228996081908249735149375931293849348698780197479832821240307196903015523528345071867967423189400781227580637235946935359964005844632295782674259382384168101146004584159530457215957800918323708659226853208873573838697814321319624244277460699600712674866336235458110748504229662644277882792905711411101261622306974958388569463243898909847024172695919120871717114132532143198507725790903005484685254153046596332665144156584367686508107800232276909633212047592443618130752714895254586841284841772681023050295524991665107400634754902122582421803359821954707098602057562665894469915524317864551633500374100959877988253832712722561982329117249963472887958677850370294041818537138525300178818022197794763846891275054187889747752242661671211434755318140041915412809301076737808928630314376959455464304443926200977307021532537943735393052594601583669394847710772004802736726782630375280731666573309591624049901022079509616828742605135007019510037853143357349246883597710019720339415769525695921447430446354010088236127457853566963051732563689256051743774877968328516862444309140044844321237821448902226747098275168359408979063616150220639297219037395061906423340420396806516061518905967296000133206786785777903140909728947760720925577095860840268011365558085949954712017725360817529513434911400670597612781535029540235338627476021298308123680674091277988464163403213889887162437194298012663511320068186522044630289326584091196215919695209661499343200731939455869745403474903309229445496308756310612572882645621286475071259550263146321528164456939065362030362569791730040912314958983653352565309174495793095323374830189821913592630028115758683472130762581894416746948222888247947643947345024642305109434721824356104059148309597687601853317035794131017968851347997026040412888850465648901485124749354567582502995794026142253030336487975065972160805330746918140593851455950485257673105019891913947244801369947132892479526234836030453768606761817839924986901325997717279443271181345570112452779386641776217858088625476956520652015106874588547461206729132705550716200177042719421871738989139913837246052133527420122475308169369895661737642760700366073462886469806876316591327670431020878363303681011070476641323717380688613533253276326881025947997356549717637247356072264835772402593359826183181392756178247246329207675894910579096658122008807202192785879883255592147159661512556723790903159651099513266478420537181452008233970342841907821102742439249701998090398927446298073205075503310807669328041378090153673921100339527587417339921201830413855548348370645261479604675799710470499237464708193077924914929064375900906649452921196585543505427082634460147311307597045083298596108286763379319529581343370649272505197559704172964554781236640895257033329045935524431244376588825985469482717489649612651106632841172722189481201488116523968823376908042753171631111450182624384957725409886540484307182424163218479792605918206304399482393406698023908449167223126187538450186646023148776248340569306814286513126637161413077531777802207285092841234123889017788244325650410344231599613152223498978399855764875398870590407301904746162786627528627764556990168984278317467247209666691617709745571726640859363719573549301925810658597351498389148790409018902228826263223549305714004548363772853951656192921995557853426570325914359873113657465277827657659970133252660902577644667292258430076885656817539739988656403035673682761182125232921171520711429751869293698552866328715433688067594719260852081872377712192705327465341334554821194866868739663254606314473172225434671112271095967539910541192951158233206378822400146550340802024824237180537040349010481824125782571954039969145229417878808269897222884144734793564241706096534057039190283541238235727514677916777109946006711980334428256257605634989277617954569802960232810059810107922249123009733142982695426480489964129408741122150758116050836697178716719018554430534117354225736674187296841234847707858973609909314577054955216201544909686063148897238898363373636271989813623773008429025348421291821294736500571974655968071251585470333401863225896850424520637816898113815866355389008615648747207257567946448018115036170870251232322409857141678364107485340540466104662876484571893035495571053142496677972406478838276341881763095262847881011354585644781407768860331231623540043096925260728556958683552083817422968067666508753183527559978946805574805569499825915298438524178345110752484517226900519922763014633669069066953639969816389378961849687239924336958644246757183634506488203331683864939782375994655864050281611353274706939777504724867410401906312868348991996891796402532287813791552369892755753173038183629480592412555408997983965958594147982543496380150535166331900981037408904458720181590618703285622618687239077408855222732022918448774871877394166984509981642092710486291368563567105959844672719144119100635492424029476836502595014557277236632185495623367175824094132119538190760875870280303998626724611045285899418429117372576820970104487457514356640153783042336146648169521581822133433212764396085826157004920836073260227612513246012333447121358763358416759122042494509715957843340822391480700995930787909789718457406384058203687847796094695979927699463208437047406137234431856545158769816556350070947982471816255756001250070022499871292588644083705222403940303651123054322373788580035827290999997228520956596377717107502716895879359097178902304118577868333892181612610041789170149102554322820642102488618934709435334570596253815066453614475156777152324744386851022460255831013436357960105531823350785701601166824424058886120183449646090315566188002561677143224298460310367613858969327629133456661323053298888981173365888247287344950936907560882101242612001128575638400549824683391115116456180872599277014232126754560968134104009198308982248631216966881166491977531443342703072753487042397296933461247503080411907029328372176548767012304854043404334948194159011327680939865318415190846177140556164932751396605530894326363854396957396998069886406513691191534666239303882557701812809853924590049558723007353747958649207984954557794767355933868691345195583677948963588314810060612213634192128323611961390022344866635985666525483099274896047648720233233944690460081752577483967726575215960036261720565394279456837845910027273805109587111411734058301263956483455373938693219585070455806814572029044373895689980670266396707852289793777463330072012271044215231725943305107360768418234884856716855286735704807107463342693167265040843388812727804964360741938673754715829939387107598054305121578930658705068720553555347454988768620714163005998034975017206269324475665300442246485879702052959564108871400946279361658113955794639442269477080614591864483719334815128542730411695111098745356481420565741657603483536135593474145097604609900748775661624037230148370977157157245359517559803550484142063164218315058779651592410185731102945294887262409315360827827424393875795077209540989009970231261318781825247958004910227710306984062437648326927565707298699860467526724101175394249598002131305466336551403682500389518391019300408556442360401394537146731098922260139527922103279836553563492081755352549379215363782076032520553006496409358511828543731698443923229071244179393657062826532266560373681133321511788268655864615706265397591757234470611583790686539593585932968451982002896462494808096498284308320198835303730414321335282901629666462008467696395856801253553808114017360236161245112317893714508806583939685080769525116995967956471052916159935256392792091621720216772644357808581049534339284171122720443552102770139837228896874484071531872105006992290094164204171021624832762423834721050643412588788762861997789959159412585749047888312427332392112746325322756499384330868494019107538655477964911186698532342529673553457258775368401216063646183416724467418684843689840981271613809321336588800064457872681787680915789298567272022013012687126807453111309359375841865828296120512860643420427829189746366450940821223329254178082553401237842994844931460746481819556905769823571820034664483730884417682654201203404869287391560363890358351203906641740870823146884713560976918572203019015567134070274424152267620574281638035743514809359240527545605130661933878115237426006512539222422073976541480924380402325108575402303103599692530004092727822679833192023147871798852745177738268580275394373771882284578319038093563744904524602419030254198158215180179240112959046641084100689271851146087399026063731634993137047737070225100357283416178597837376480430801122989372700902656117393976057277895098957741388977242086526570245012898614630124697580182330201403014035296462573220526396847981033937053824448386558374001794963898325610074648987460301704301914760496154251142028229640504401704166284557837969878021794479019640171954491921584458683123490406120025764836998150983036131589528147990551014009936725972049207949260745624226763067096608220219988038517006972309750314395138666034252909319915216814770190981427253264862104636347540845047743895914545630576183347504510150161549978584984946251171013682238966666320133434499216536770903501915739361973504659768177384537448832913169279702243790932720266876674635089087212612055366100320368866601718720166939941322037986083634583869515217828113009366239874613396536577048625859943577244262593959648780564899123903504039779172422151920588078222201690480269846530783524191248806171016068141844127291073661920242773424693660890711401176166162696820006363227175274521253379433826695841463331459774196470823525103972371617423006620873342912019481184278003859135109861655030783314567702852464694246915391352588686847446726786298006928117114751482915042393071467567613757979438252304719705822454510554315244147862605191636871074082615966559449232149489534532578936132417770434583014433209934832999665960387873122546354986753661327170324445705770475297771169220981161557341259447674968074858818693399740054102946731780731944342804636630772758008906396799043887941971053669156665169313020924087598325868848962689379844179990950424922354457545535828843897573396459556426361042119730299226003631397586593303631617218548937092215377311564360983881020384859568599504913066947335544169117729212028095266092659368877857165416899719027812075009353883235712372693355959083318866092184776559166801193657129000277653731998714049450860215975475080937376840864647560354982423654949138542782092243434567596062028886732285789033610592319856197867485488967027932968794199545552944232576145871237908515055764462157683484022272765630589418280148275472308386456568029279321969962377031987527344460429983672630720471199257560842644213223377134903190992103652321398459562605849907231147285950065775889675687060657908701949076990645603972368066762633150043825489063218710350815285507369428782113003301020835778140512414257509113703660953330041019465465476845982976846054623128379861177804412110295663510883696659655478248024101749261151090790874143532636511596084424171108226904259529936896020844916612620665218966470265162621389236451932906134046486036376212815304770706740470719497778456994784199968972393551050703788161129747989710937757981131612243553245810548569497004971361124462137514131082394528958964290399532092430052195267511405843783838997984056143749332928602541240226630440992117197121357747887428338049468938557250834200028032677201386940943884663558820588356055447909581380275494779522557894204143454789383747660443531494451762923895885079507874662557580748316066459035612958130476719966768308982584203072966603525067585905063472460973720614644487640690171034572334879767534926943208146748227446198442155417205892558051092315640559625313359348001825680276073150984883726820980030337052772055946006518761766227607071505510041449781662339762783499907108580727489408730411068566463076428651229075129790233772190626479801467485473953049979057512781892484240791993418289270752415765250723996347565072326096669205720563349583052210097431669740916058408721026211731804211394996444734855044755621628766297423388461572117065845541970699727281549673302295619730301001223325091656014741317806311800662790727035416309543388209403112650807812198938776544565575803921058684485316041718920661166833441638010181713063034039160209590470848587230233919207432496266015299342031754967480080019723312752959438454660525729702805693408718381318046236043776750564491742263854919356025004771174547899363417463694244242363198925733859872755116803032983233940436964410979112942593373826679831863990838092935294203996238128784694427079013223615429478968469154330652893756592581269948114102233103125277339863790877686574298869001492356912977669640014686062268099196555521663962955867065265028690684539201551088835456833365188672934731209113201833779567529739271944305750295411586283671324474607631274451211270249696564857001006739232236784957721179262882717885990981999595973227578237481239482048329947839627785828599467602523441412752516533869410906493578150933270757674458859414573092611513973670855257708820696563611505641581006256475858564169096019009239457527432899523512428170249372634206869768875187779834674549606639977808932085895805431188567961815653595927964743770990179576720587935112545956607202207588616116654887782819213106223729020242491441156310774910538395703971708663424615080323375158809248640940361488204927697615961084085911517019496705623279390393377058185340555234756270770665705786292188666660910928017327724693711274215241809956932197667861162253599687787286434569479705659738084258697561925156666326346472488362382345124179907938698674805330705763335116318737455325184030058895269076449800701878943367791114074226143300189916564821349594120486437149915935278668079985621878719505639554794878629248540888617298448155498869169836350573227624453418383332975883433341995120891764676015354939069371219577966881571283764497039213535275482963029065604009847114328192778191452057981788303794547488878813099120502200527675012681368637783430426153324816564658886887487884605265755697563010284124202649448048001816770780098512695053934483591741967706077548548072092105840866907693891466040286246089096816382138872598445993905004901237843788046405790337497781426801452746993468808606662477378363186405123056348671594024178374653538025701762681392055442608432238705489249995706876665779197498435752053314086790265904006881529883641055761719775112340546061941101469863990328902379881993783602284276577539565318953505864378633457459190012926367095732405026529111884645357092453742049740153994755255346684153436971446790927896081716426757544333300685447362398506687071093264251024945566602768405939527626494854665513804559404646690505786321337919251761131957232449599226443541861469974646961118725636336364792309472918893113753460035778208482996579733004697583379724443438315140390213595684586618393051626329605094294386593556471910803818834310146968078580195830882425147710524811470280859975070810435614288200351005523950087855331141156638908768201191294059530303784222004179116936945268480686163379672538178757320614447653353952459785244436865621963578391647453717898218437666141760774079349197286828707147678919325267206448682472935482123538802280460322873292022528237205679338616670945427541928636557648420880178752585548959561766851044232161660630520724829627308292575382176003292692491912346123741588041680819006194468457443696916943329712656475016277284022839221211074774721705301670870606904469273246498132173536391452691994904131783898963038258740851813038469356196563032076658101101670252587350013543295135375460821804188125131334350653403739558149873104257976182162923513693013638412014282264374638953244989256436509503308242252897331628758893469701486243544313359904662338591473130439250607718075991118987003968786008296105745338789631338987900033423242223023924907604453721318236300123793394108198966555272636240717315657165739850399386269957373394439914750686275890098468776209858681691639696652989811224920533418711311938112445504980890986704151847906227476856933715844858903661365198612664195770092866541854255109285327790417311927688314605576054655357361826268401816187072596991772614625573066741184518342966822565705012216411360006681237313286377298372885205019596718976618394147584241915995074590872532634840242563910149952494497930143187835107269168176363625735870636444874056087476814957911005147830064136406593962390730274484895746236700113405584137785949340559182205772279658244797690078415151802712243904871807036600513045036308180274265128486169530538278912319847068790727423275596758451921931328976276924025163775254720955592396624860424983947377181846494628937700102347111881456708523195614473040118400366184116170432600088648259369103221852617104507356760909194497124813925670576278541611436627643036209130733118033117785874685729927096487975252289986097118613980974506310904609786234014368509625123934620174526550165942409616747834383541538290115800990170952154135877872031586120112971539257893504356989825563438773663197658492983014019971920929446464667843258024818120264807834900874044808121106893837528375064630407618092631754884879607122881433036378039686496572562687211333251098040645902630197105364105877542976899556001251837182352285792379176481537851822165247938150643993243620219536647827660705533622507015219764859759697490261049035025833952006711128275958679137957563733333515797693477433313458123886579826487681127268443265701468986443562996508078505782990591706989823042914646434891543938599561097371107165475322473583551943575572529986525629862836665162129437878885333237623514720395926000793163736848119861714065573937515996293338821244640260584466874932354832998074521057491806443215071241284251301422099055813043319528649555071252466288233897718554543076033672608220723569455885568727324833045488603703701578184401939086506013112196082283586294487944039568934736455003546248022161917795866755821438924479678781596618578561642232049866273183789948576369425086390807319081658921763277031002928883712031499795092861030597953856619143143441895286127391210422389822781525268143168244709038995649512658718707087151150226230638755895037122795108369299107329994120400290832422882889187463766067748043009775558095419161935429893494244668691317592140697603980761470693431847481963557461713053603456297789623403449092617137091155252065122001630365629516801844525528899159568364411768948169177103534718577658886250676436090645988050028738185458824547859488200070214903516774629708086583216574899157724045629446082974700648756013436791445405750281560039229426895509006847235252503138152040453453689676372481425754823925525886649434893853683363015751574529991620972247837065665908974249180993126301776989604146139571082534024192920634345049694036660968183124440370544775669321159224026243231438316103850325581471957205293173271722375428272499277861918365734277187829066603800144871498980796241138940848427002255691436291872077652399804549969909088793875435083581138466281410596681329531940825007468818007912173295412970078437894248751983189436426721528591061166523628210112357492142594114863995035542512379605113596503318500481426495207590837698327385688174944034550114942329273309345449228267959492927085672443005118307472354457013917508223531457350562728521038995239404117880641531673832806816173631293047723141509577068321773449040524361726277641732667348041260214097040411242589350334571479670773905703237528533971888357676347381797227430012810133079076333257685284556628383688372015427009942523365775526263598340360291945037509802911290750028651305108731828464272844069601164700131934552541290279545525994199557544548143028378752174443786261010227325972164887529452735101953623223226343207000647005700415011966651883340513372785648252767624072095470580715342462811561347075707454083315329589331440517721562301357924030184906533838408783080945470480333214176962574611234652330125308827131036324802904106270540143150614363761513997964133777586894474004983198642666601197211190322090731457709925973903441363325215718894256638748863755236789197825352387864847953817080337401294970807187511607775736614942687018291651524949389931848849556796003861783361059846459834421181626534331087435940028997230165501352363645617260301241007871591441193759307303812264256937062996654207188164442186499795689107561453337244377052792233447142320035331811962678612158139940885883275891872779760294972790030548556263075774689894759482461555595737604907801700566577298914340052703930487550778688994587597071844705185487969552224985976256481447612641522603365323096251295633990343633602238361131212995956937875947651559539972939284314639226862010982401281497322462696961573147434156377268409877359047097794297772722377707733117571827372371817059001115976295985606196098656746220141344065408516947678381792777315019496895300608974672720217301368041360841356231267348125963388837698922694977310006875863068954654617122858270024535968696527426108535882101036141390424407068693296962444724804760700894081164852127378555475640085186462336892159979111551234174400719142742709612915782014363516317232212459781658856372156366217675772338703933667519140417117582495993345039977469307839956501389672044179235271092559549410631053613119865386149731096337371263295085557340938989536363326663882236540049010549428789442729459488437203605836472663322678535427127413318820658100360984605010546469639643920889032495291076420682755613599153045648422604332872643865839785949241156846642115265432243059618815677024627039738340885977890619542033397132082081517110242794684827923700691278132421117128999737323048199777600235607892007777608997602535694690921776604875244082073114680756360797335283376726150747014929566881267776360337933217797469760199141540849355397589818687299382016399186609306402613907414940596794460558526431753539560367223808790611960882511383645607644101021775529909672994655257238691433576581543573143310305235902790862620611368432632374446333628257241829825679482751201174687628719032537481362954992326020701296458061621211442063640012536206537085352418624000501922331492219484504360883674542173713719606702351969499652115621035049947323776947872300391164418411504450368621176490852525802738960053116819635245287827800228757009317817898109544123536831240711068622859434825973681487171372936952670223702892500863390182499170598823882648738657034963846712757712517179556165622448339612211543906128361956894901103716407133970173340946691997192895374048770414287747648504352407597849804640046055954012604397605815752906656974037619671106716463941465361765257498596358423990729008504025640065709471053636496488377214072056116713794462684532785296410796322760283372124830436904968507585706874747116529040466256003678584152861722909934255529192949190164663448304103967464289027561555582519819361666020488091030750459597274616082103516526637597501615343352506628498739967828990794798224774402079133998052757665578256577784974437713488618043082465061879700872163794028607154970631105995403532153725252088615909328490629541765808277641885315436980167803764093440681419426442746107716936148876487908261916776927219123817520900748719577711065728352079811828485432515223255713797474267148968746120020209298807239756221598203554735019860351179201545898481956846494526443489950645274016618543959266210217370834844995085324169695328728052826358992060421900496562236449012119691522164483561806874208687245224882413544139036412975058694601220317745935947455830158878382392361427491455161176543604132163228328355178265218131294090914660006111266388598040782982286203997387138855198582279851880344166630856942978731138600455396710485515536138880620968690375033947376643132579504741724484565416614071796660112130292965906144881745713286771330357199044059436272010554522793101293441240197514368802903465738090024496956709191179670438328492890364340369651127821463367781348707185171570815128361166795010011295535888958813596761275961025119988402283333046890238544373058134763098009940470532469010392127539454126321159106291254496059751181256471171080113263750196964609913934388487399947109417501051187682955725879810894791935612802819277232572501510495093387196734887882017923408896058155576552120462899760786857973357251046696905273207181743040252948483869791144692774732314718145267229538273090833291537066775030138578492251244483127202210465111318455368362259950259588556067019226552994951766518784949013727725060614323218628349943880526128644175684399062334977085925039566148610388663699066517618823131132314936582308413406380845775034034228424224736615793197195559795752244324812325526606756677311757330177173083773748315035148966204823885620256580636454647118784689267048959270039706751075259586412112834957520584881575573890114188895612056972453626063432671126143685896401243115891672792967968345830116415240512863178200038247529496289677650661794278525362983305518616815197512457525316817628374687580260980625782228606883347603249583708238022552555501275963746751441654527292046384211616416427451967917355502912719624631291131087046928446064042569830224934802002375628258496514520569881329982912574549205100027451706310849909110476504198000411296729546198285464368878603420738606836931984284144525175970557490123921127500203264619936344903144648169904889496443509771148486645315624967414952533483190995370273151776127008263713215219946052394202702594692517671798234836621496877725156419356131705168729080941618041785121736162514412897909416233394782749673631517585170912283505611627860843129406638295986539519437243649335279598365992462783161007153168420372477851969613167192924012154297283241520574429077558338524116934441518519059042849063437600416406470987938294576491694712224377630015942385463773181752380653231413063583755793838869711790634134716555703830922681209190116682504830666179738171391114489968925091661663631227819455912230007646336700029437279402986376702820100629558215721824988972280100509641427956261439426151584665020813452765429552875991902567138021871175166852609715269388600080456912042785193289289458304160672246157875275566786824495038432408983983414481432512820630627832981939101635359520628110200819137380358324222701859636131397727509334469249329112363433670984482265939357412125095073747943516766945385279639161463435251429607958681429382749583378897602567415888130867876553881201161466672606996072683261979458891059034996376552496539085620180602216258329465750600371132097799101340079352944449665048800416805503071499346683727182628194825734574087278818092160956728083487686087179071452992910743886653311781151050776973575133310547918298744670870342079306868980093758774143796705572603452443037252265743305406932999989115014202775988718215489161571299356497164136477622861081723048598715767825138524886075643321335680871576460263675488143705025184383121760742112061779050254774920665951371530830263388293274493108311363174082425112279341548239406650758181875146762502618484374758280259615491458702502949935244825186420530348386476428264426808728393539925086126686182321117397909183641658310899815584616626902484510125034791508056026533906940921420541975686703444685795766405586019534421996001866664399551572549778097894885901119073581871763085849881201363139786736880449346121623815157035142651583698969442589559870189771103841451860570155573876507876217385285633808706682378012757334868937156439243100429461886530310894362463679786769393905156656182149955379291862445729914440553587470527862929408459445133566793584504362159017254490233363915231249446209972012272136881155011668308484882042466628227453747923245929522311560494665644706981814957970945095463346365680102571411343903143621210147595919214107178208369870897184712930977035003324036157014426638368767302330543224590868758756929594387276206541553974527309310585582862613780407159916700988757226188704994978078060096653404713828563853291177815398857065272663011976925249842630222392584095891407202867420126818461899439404617194222565689977802042628791732598717740369984210055618924928487643588237355253822190463109267375924494065457229287741652979502549957529929414455693657802670497582950709829377984675556028558453412970023464120261789924821209448116441758764088891458369330124955973416702999990805153027118965194015420612746183375959544793248262692136482144697179831101754170784664085845294727617565817269972143502533039090152805377759893596389000968183323592247121677512067456416086136578051499399735617354558792512495040236688299144123138591609526590521296576037916707496443019559669844080604237555895709954665099910060448312032186997230480478635959806031002008737583802860981335060682537200934647661955948160199630713479251502608901654401601423667442053219439306038314044986200377906203400145650370921569493062475946034456603015279427520744536605339059861184933866703677664883322105605689134281488081193835782384525007551261704162665668032873825523059755564402948944126905724240255612129293725873272363541340421344311801911390267413942269474297868316309634070137255785043732428605209513920055438595149199657446834060407455717926520227108326224120125638400460108850211804391638408268023542303777696255401204122376088627088256510861833576262666649197598635900146868403721239777699205754305161860538953640524093175035620878325060937577552068354757387792886821348504955524716957566620374841719309879374150680811948658310463740480290346964811233844107215561282485244950367678610152092037199046563435140198116354302632969643018590056850400877486756094918398672492813933475432943691108444991630310925259602765054759139322380963201238640195115908452877313956231773221264283979674002810509154711448548286702888293257368846789290557745392633124042799734282449329422774373278909058019084890158609041101192019112617971281292869773071216124870553909001097334674967857046608264170999707755072189426033241475133872090922040375860907174883222424722330129322426077723034195002059487277547173364883998631991380178382712506111647459786517718360378902829676440590206924622088657415666847819146495145242301330895814775579819355997321927002205913949424154799611440860950383237274254820505459423586224368988937193800223606263609846626602994028508378681345382736045315429886814101701745221041966553931355113426790827140263169736458178458365190799790968990300207099576460816304146521403471797015213445804806610106189571570434697599640645852765636549910959928854197954494503808074143320408007399124420759867092597900750749854003537989700520363244741350120117411365614086637845566357597179025231793195128246735485580567390757417221280611663562598308278466798576631202897199199904968011312858683132753660334328643321122589788263922496116952313403033410855483792029113574454218206122089839211851359292104639746533361254714537691044977959076324401258178417227742546910438547444472977095629560702275076993104582476059805089724618539909389032039912523196183694626796234641290855237941040468501580764659429444615538063917803402403273502867818451361430346591832819294315476016967878210930471560537586799610977806462084652886052653790725834188351531959524133912804653567210347614293505573680180171622470508248491862130756762486919331099443726703027917751821605294393252685648016227193620513719863416919371966697876052814545531071830585293221929531446583946290950472774446694054738995179812528904064161869892810043199552661580335719597362166302003988574497953195728621100810623790469106135634152195607423593014392333343581054938005822094028677287884827765374299676396645336193125268893030401026043395833501216430067132524489627382996119082948758515354359383507930586926200656298141030446498109043020075105610811574672818711974991241888688857528516033164075112669996443310524655724580518570977820794055726610844648093940297700610174629398891608433427380938627074968777311362217199233491772102750704906044897785875670592218728305379968674581182392854171759189893036606993370028343809519134200017365327695948902969419785008687702759734761679197065104254998412321430189752478214516251600367478048873836986882008115682402753259568917923915404229101746504619059387410850518636132151953655548226787097326918716433282750578669637850380702140449202565060585793078821545712465886326214170239392793110422238056784193422970551218174728653663212409337042270982983198602328020278516218791184439533256143023863559177489784971209316605092996480412734408490972673503139994805377945740637667127730876602820463705063668630536820085927816132974280039373252491187904761877296561313735919601635258738967817170120873287461754948479524863464915550405154526117608939245571859734697731252982285527407231453330008683618283930093621146055462634443379560039326622393374001393486855146531413606435329560935382884592103158043749115690802498358059379651436622289483853024612696583887408313091397103745111955035505691529641104545522450884432765554860154575581699089980182309466594863534654842287124350424381847598447925068016297499639881162349410334753050125829384294684981176839219671503466778988453122065324098862856677572432197512753102609519456757119707622639559771226701208860801983514551213330104046547137254841723534145226597628277669573580469235410753841290705176672351927333253561937214325750369552517734501445780499567928163093789564139815297453699619857464425482895864958938878261761353701143211253468896294126571317418715013945101796263233452496653776470794192986498537670733815181448280940212704330701707442061899918225022666139082276566992815026338202290652828094529530649622843703861640452845731933703850566473532634684740079964509502589344137915116557642697146099569173996929157492417411609892791397700609801092019582887515750064695803026345959486532181487391832632583610491461954951612033435459714735532232941224766721770057682988397490038295445875194458379156811449360680080958587380664844423064344314680007477541942475265058823894564327339460569866523515538634934182401770896768769052384255022038998663517376490961675946233474852311742902801032371606191063819989947293470319491369657723857213679637861001115412365086409542999948085001989434758673375219639202386984708514617706438958120761272116242097672992951990453590787102489340338716358036968233728810743491700947078881653293420826313102407776392912999903554630551741132416042892937430650554033726221278925086220540776475352518076536535156226772220184373579196391608801916939939070561042779986012660959233421847161146741577301804518862932171743713814039456741610191386294938721368826053016407219391558095183778015790624286221921903309099408537257087368171077487330755060054360069593627997465273476556060800856312329231309901595809009653305449584132650551457993300991709858966365806223881303120077810111302277950088805275589562352612137851423510123145030632169232456942186549134061330184604368599957373699451616248210636854191811774449546053513320507395851003360252088885935238444024291437563005859414578714734124498401579197756825990683398228738964081916217285938364133930991262331277371189454822361751346039902505900131996758083685926645176616745584859734417643717475519573804009944320966484213766271026729344901403074497357004462009663166141240662639809424521253553415300910069947605462751282063656590182186916267186080971371334204532129152800300685754522707735713779158044788515503085829289664941186936692605865200782438859841430996744151742443248835261258271409341622501890724829418491675339474172277411900715214243405167944978536870602977472985098777590083880138523539633560986527304543776342883064036045750944196089559946276287273226345606471752776553245731687653466799487235775710115903191128302491897816861516036760838704481801144950144449964541313388449152700228323096427933065759543036980171401957850832633756996313104124076392705474571761856139977132281687246224292145878888459126566823945283783046326228711681261458706167928573752772988568117437768921385400808459603653314788733189922003386716424963911281489451044690460983522574384512986349977593463376509954608482361442283165144791873574106715257286534167656394064016653799628846914282405076679313936768475289584018330740162963557027888434583329089389089282740938706736845107245907202235044105083857748315649887699782483389371112655864219327709514126155465161185710285358457501520145160130684820874832412630135123133205498660097016361340960976976330881036006252766144032081379083988381224349272786892118180238505929118379937941660339335171222212923579767689140520448164843834352698081346714027070406044911692782309833026673114046248679859329269412222718492492952584901407775230175984991918070999239686173866205721383465702208924489308321235611454771208624754046797583827290433674454966969836474719768511913534645832266091633915302728778138708672268703927040122193065655235819688544511561643485317210242253074951184355508513834101422154780368242712929472442737787505820863009600000320494779221113545047501064127133847142303019100398288741912223061982674620956530694345954307992775757835691523563796849670812476278541905276256996603700723278467618447986556424337296496222527994211886632860616459104038907170782305049179235128203611608290797201980079433763104978097592126183206112198863475455226419103700049227233042135478249618446454136112953013919481277420162630881807190604363426541663214645046134495937492419935445185623241361149669734473830925159457533044266234179473426224329875115604622676815565739868926194855022213982285096496823647319387447355647156342043688395561722940108443310861695318848746582381244037958271848896609465632128667761954585351827921539694239543981448627239982021757472990013264104621094452720962842609138607683066338460316838856778980404051115092997441036897529280354773329088354251984855558552945181835121136772366372905197933753496455180730666166759560457035127370947317580155446117969083597655531332963849725651806117411569041487486078128114271396234032117326186724112593669937868423834764473554657713018091017783417169086697109851873563520880390527402176925995175207305295714827056759171149226930837424755110541107063881657918533645761249954216233223837332159063573484664859472479160632344844638040873769443283944457882444018882132048773328317013587422259029602446230100114547797014883682772675749484945784708173029816571361451038722488414298881904540325209462651722735152350016186845274020774088572563554247768510869071341449402746401431667194466877190614570047046690755423450785131289760983092942922699427142111023023164184093591002731053624195096955879966781102566575112409461425645466687536542513060511882148168221706975360176243509917148231470846818714600676972251982609482303799547719182523111786591624587314502764864822789715879743188462774903287401514341635910807795093184439090281810690582778933666868287085032714345986573453115197207641133251441772106972402913565119926560329811289955677300740514318975314622417712782087647745643759327492002796568485686797059936151556829442464032357522826629386376566531399480113335408482518111100646565821157516057093878298298692743163071008677624209226268208572475859192659072596992085706515673663661576145943707184419180328312573204893021271016921979814595846187235138838125928638705079389350957689809792852308745917843018612647997444025941679388090102208757096006014402971650503479580153371177965853744835009144050912669157529327624159081699973932619622254357706545139555728772625666027679740636068909938475013938084844307877901992595958697252030249144751266972338593420152361902659446131044593345138944312689759855905374284298671831735474632231975864524583355446384746564774654427331705336813607635760260864466288291562677854552053451187606737588021902188177709578442360133281570568591115431320583833509773915495099147883170002472202698264765492161517233557362211484028757706103689298210328379559246346008834029688678977080482672525592946189712571762159511548755055582261849707369518551771651474682362562745458017120185873646900018163210035366127852400465809554319994712010816501689096189560251328539648417131465467516020153093446295272912643384845521541424370830841684095697045033490193062328319349013930966918231335974469731475806077218716534046483404555512579531901192361492215136294911634766275547760872592493521952552290587429806667706693956467822367603956938705465027593959518925078771813450371297292643637410915075113785399695532552913021599624258414781143603687967373191810930559373762507822990615379239460141414405570215130697081473801607953719852633429607409525646944524557505558795967362097711704863412361106928645042082560425366304061344715186844411702828745154007721559562680353762090764682052897061696662886527136961926396788712008901993502308354705812216973729635672058651176781989867979678971703749752889473127183479381067712173177642948378413545100511825711693728116311296572917492996181871046196682887972116427456994792275225424641536238022558952283665958804661225238495736738254653014169409600698064406470219463208032206530461073147269857206356832225355550342865669921127045085609868372158765811017716141702495848894760873179392213029426992732836215181122913791227458668088749922643029034088999594291156422335353425580887564297279172666778570652069151720383439763736995162792737349285127260449019555057472581645477950966549374398138170767772041338157874963415668498002194591796326232460650020631611545396246231887678759618901829722978371835043891677451277978408939509938521434096883293485429880458101543072013294372190143697706574621958062173754223805675476901059903349026925976647862220862017163230413956241213606857183588869680560105654774145993615077418335374704555510731173657977467561756031568729029964231463102176868371751473791562812081278508785523554447206261762487788876767351449007610733636649823242801338632280332124613141886635195383764110009521638685780199792200937212724041645443539323326606138427201484422868577156075163613673385485113706215659198552995252088861133049184351534565649465010534204558355450392745039295469726896678919934830898458941275191979335874730261652598534038330174242365476907479531409155713376667695889440935591721048846377177591350933712080519152815264359979697025935292724991963904732963920559478171946027803260219906441917356603620596059601895088394948666361957110122394186336527171825820001307088688911136225103813114899043350741980821495962782937478300973595613389015816483003033664467924207596526628636271433959354544453542966571748045211899214024303293974894330079565179345070481006704776412840245150737656892675684822333992404924580339193986486043804288243247350682120683497927941850538594306791989364667271584475429129494075360341099713860137315330977071496832244010268591906613165078841504248138993854468369472269843088283135073993315199679078076947632657834237135986542826177146902065766828524364378384550657365514233596969692899277623352314969866226333869330207351963363518052875221019924819618931614471700608847734529493680800946492877339243897267479145347882632273095100049546976999070422860075106750737492993811764652439209581341687620268025851971830424973572173367074753504265507222301887978093162364401793972604994963975302402857546687740042272690239161355861941048023284352301284992855086492642846224789800486727519239120242813434828657160685020018291996643518980493961461710657293837196165928357472017718100962931094021694771644475693318005234228759304144226030830646365535028712915591914833230435973261297938894602225251401155531417597715233237815550780871111272579382478339762434859867225192217854445854677416506578980594792139975087078102645544207543812766461169674983948669621067161966938149992372349847057505292451033167779872447378848332233591400770807461411712718630547292303780991920622647332744455929569127778204173034805992937814772456912604991046020574515525441426247334382865598424658476237908421110464466884322588978254934362750605297299073496965725498378306257190091548102193658965341577191567803857325677590739407749489743053368314482212152025707255963209890534627216803397391560662851171690808867227679523404964510558477414124749832129980804254292250664615852947604340015099191004549750237307032464151808253179720611388126919671590744041204544696595266589934292342309360732729771661081980582596245491243446618794191010998065855060682946455913092705803903563389644962296660039085461372706549820320666002041106949554798471352425288023676951439849595695605146063707012949917740769048730881402664717713943561746846137882375955924520790743922558803219961607970289494926952365980979668401397484302784839772374570466620874089564722320512417889437018548429208271133367183329190013558669046221760094789805824800760600533185049246942132316414332444718853032308554363517632829040978421358449671404273127421290566554387415226206791701779401669663948177544179220411919152375814069817254135396519978403727086777957085662242950141378382216350587780220210984679725540632306231648025552729117867732003001077018869880125727398148123591530128872336979745112569922105589480017385700609895080449749529481950877586234762875105823848528023987490085122913367398864587122952562824206301407320464064860147075527404486875353095166538501632006081709578457330090435833316997205199803218709531333088600802410777774570593405683379025181153924698232765154959416225973999965415117585302936826074788618038044395384458905295562033387371495378259825995356825137258672655389181052572335838346571738224955798045319062821078005113760440172502523317220557122376154965519061543705292782674376520040048951136831791842070445005010110535846639631591481048174314163199124318044027876834605659592436974664368384946528420631127357456025061223945803631987616400967598891426588706182724025186711176883295578165279084826481101976170060568598935550033669091606175936336945490659452407445851045068700333599355336594145211651511174286367035623324291751681991796980214276900774434407374625152296361442964327901599445929232237762856151699705127036193357454117390017486941146154796357838553132460845882525937336809638992188964582725336710673690134277957923271890469995278411861647483739467658685834482748977764711172170525637113546765940712984450917536598275371887558609008447176097269260418838494999085762342304418784463934940504151274349077938459676429767371189523853157668288224537005340828922374199787958172565790768534248288207148507310767874551061904261963948018666994546762435867920831344272202326509504246110614774458267697155683736448871423309997163837912139327737338409060964882456380086210599873649518711475420171142700074429857652441666644569194108327420286240266812298507613628751862331934272713801028522664332094621004838948624108134376152248355072012566309739722299605150744921887093738341064469577358813687452299998159675550338948390235976148548041473289871389561240542002383432867471918847798946721946195182420204387700574493907657316671791407708660366158041202935930783391491832984111174780890971391229388513192670244597857904223212087341199249970345707947271595703775845237306058607791860803512195563077865979207376812573666826750479487093200928221342920654631302690331648772123188839377386380292364105884488648752779389592667023674835854583518669519477019299489094629400847312980158456932705980362810550938483728701623056133356252731444865804737031343248734108246130687150148366299629747239035351559271497454743223310971201857316582925947531149843593250851324199711912511024523270549606547368658741087199911916387517995533092283274629997454371991296666730743548842984906604852445456510265756354885733512962833679750402805759475153752252282066257305044580782656641129720391848325650122846681501965618578595745064237681183654875137864750504395746360767602880619468259730754071488473717384456426174200449298972382019716764899361165233726555966627724846421635740879039602065999099832416815359951004293507761980768012628649693087321458566771149299161318265345722515894068068434525005928701231135883005372090880320587649418718482783869578708281141368556175250913572348619808084958259627647563185712055037370516442274784971473675136693512722428958632145883962714101593959658609418254632743263469514369357215393866459929396733691089336316119848220690502886561644580914954056711252069797249477016070905146915455375537609360764662204033690035031602592911441646890562583510718891467752531570754321130033406807532770697174948028004091710332528074082574881092417716004111859955442495191690328428484798704118138970758553763966435761321942396774350954385858218418433088804706442950331992782965092124314548767707885452717939093839469982157351301314724221809476724328302874763474292959004379275860280979970645309927771850416467805247455691282049654833705920602873651451479042555425330587795983164218390917896084376453005212915062464149020988365639182852704766946188598445158784930024598950642435515135624234357400668987455469471276258092622429346845759463783038657245303336578194152569085055479655292825680678446459927498244726084283817304991334896999846712947442571226203902162445230115480754382606491631147670087050037822063589106793287976240479513625466286469576799157082503055192994453326086610544929515465005117872347228428270041038090447799428903901953834181402825647530321164742242499250641433132095889015881271161235052745624904061682860783231385070123718943118329104382837588805403782472959599276686629238522602838404868244106604606853189317870911079021160523968960267995829157812509140821825840100626723106916225099361431944419041992031675174716708310983896854610510999410606922273515259544101518415949702541398327268392212844089911161878953329488359755720885046006999145650235181572186116939551794983437688757173155333334688899110563283083236356325675169655659954142385649595732378106846235829776151820246181468345140284299663211407061364724664126434267285230454337893547942827740342251002158859682231692742527851503456242475295826381733536983650042225064131602189598913675684607557972227678499464513178752579238933152607664169770506130917704814680999749466108664294171566184420173356823821349821611391765679761043552871360711429516180461484511979384505712000047805333348435542344105928573528299401143108683828256263517230543137011671991649156727466713396591467037823938297013975497331709500002306907486586907383181392902947621678653628764817155502580768464695170708788362021896990761270938842786349513961850600193402759698707815891256773236461900534841612660134258303949994731273727100262673062902879781052839420788149086024503396848908094449928194698516484716432697659806680214207445583163481693044757974782193766351546830201542549477714653138854859401119297518380101222580027979867102523935746304062722854912307214948587793434259413628351484478049141415882609069154742247347122853599694958220852888288662223414592137206775168699755252347028043370629478323402946665474435371252223048400041452778091711445452715015794095496971400279479380726959732134891442048176675321925375207345869422226997044117322358346306102656234382084193177293758460953414523202295347506158183776145060187811802110391332726797414365027325536287711528240163264193295721563427630392746500178186098297932107844526799469333836505942274333292038630709251238572775910602285267198761822201877174180861516423376562826416692866070053535967873402465274420799277507647309246262512403773237733937142752913340175849462121301395914937893210614862000394162819486708516390630862450322687861054965828354877466717698587712490654545362004865889457237481457663056118781108858903810498579276123226514270961587166685872074491201375453837084197090938942315674488709394728432257829552566312975002502193326676655236770939231657641817604954938760004513210610586240869944625010239604856550327127191004185501648651935460524500160727261333656308747590185830211797044844615899974299504180835439277789457438304790780730370387889153733009746854109888649978890615113415059948295131091231651621518981138658869272465269784063728695746818020122383735167238933836569051825713004886190711484563722216654765321402717377142788505112522600611702320383179281756929062360744915358602292116886268874423694609941106872197453926631503371905509356570640550671388817421070097156262543075806639235863645827273096674730982668858823966120620692882010782845852922739176740941703014727268964352273735904562372505859404065057647973365206723398878152628601169075913753106934041452720416698602630933704289123276925505370387716037632770649724540135011721278611589944287987806379724979896000799784917350902400877775269841644428268409291589213503500534339893869438974974459299306569426078949998241249971890543803772357949868069254277539056176874787608863065458170431913648276397281304090264210913859032546514740858501830539132333009002032291361695382345995887429111533646791843279759161508287908449392728644516318433106027621177773660931676275435252969677309424217063642912061684500203800160489920687256575802642787558025635069769543752680631013276718512637321851234895447756734942356218971259982505346662222208643601428414896276713065850122116991616982337547919629555671893669663020695030767614962981450137826716647635974872256918624782949839589347069162020348563262789200282343598974613290514467856895921342751107948731088558180386989883086636113985364873792608259906403261861542264397229495499349339559065362458937254140670113245137198527565510090725438764673362065437450163702811033472347698388311530740217206962970597838716796448004366541165736146568246414377096896910442433328908617726358588980032843294101919031567864207576430612904838035231582829274052257419194119925625184464443797478962721285512388819704042358565840102684624463450031691836611654390422119019366876812701817027833808252852910794839202809975716293181944857621453202238949723913621201943408550322662591945682775446307997703119624098925490004335799735608035218795338908241821623340985795174583792394737328472621308566725326463632968864065433328859219318354351781429146895378476398810585039440208515727805746978228704655181913447108747874305722504955998721510011383106125066059330847671529861052777570123816661724486000498900641373879157662733176939964903716425458755888601752336172392108100990085924378147907354323933853383980061601109243395344493940909226967106654561495489662730832789477207045199158049178959417824710498404869698382966026639275390886659024984168882848729920705235690387617656434113830196700464430747806878471394106410005236964683520440666148680808058088803230521114207548193093274639382260943605826061277299654726211827123406384242992880651857006940427559124458043740691395369945924299108486899199050225818115473167514015680114065824192486689974562977535898663010912018305481143608398379534358430408400076831917132994532726218676222313166464682306973658671164001740372508926573285566727229744173032251554657076816237890583285582058973627432723173088651702891400174459720058136787421739066971311670313345177573117940465360390348855964170847161339914165054391529495525070735363949795760847390574698743561337382454530314662647588850095106856664604912033957215766194279432890306885628015082665676941140883327808028876831579475178173126019390372906838619326551144587067798296931783691647237514197629456238591061484154858577724274104524451443572077956566464523984095211266404695018643456711215169635693211651304182199200523682193370369027612466146407028971453796829194062673595187734622939280292194388325315705656611501686917117520970576449490482486891644143126371559626828679143584715883990075789085952248446794698752031904541902458790893555415566039147978517471102178667717042355421986676442694279728337894379101217400600840402494415817668936474364176159898035537330764402475139895623554392009354740633439455332616888177091495339200876310628104508071436556163540779071409188880166092526751780120805751151909235823133876490024013733275024519241509789507111980390611398959716513939243552784694117059543378365951140884654371990594911255600603741410707893674996456163453208432279872951931796054004095069740774938103327318050418866916471592128482915556679996780376514643411494319570630661605155389834842975957026371390250972304528010827083551248722458695719693522133104603445396688535342371656077432532715183126414653099783228239496798441909438875584668438665614323608255998458564018021279234241278882406127239322726849036645755026373869308490700973382095043761416823069557133094272045236664364678557029408651682118844518107173646007850224638247091379382076011840657516182310487611549665832969959893515854191315410375604632439347417075027197278888835924368345910616950468352303947424145879854346737191591194341179773588138544864353693357155631643575775675369936949448159361350985788503835255906263473418824857485196316441739626275479058588229881889889417375917049119077664281381645183217685606733003040939133888247009490705862714651565315271312391704856905032084531619368021236277782364852759002892497996584675889670640045709148540878765670218671123065330077882088439865329046458112509387839054986621141643186983672701114501463477100872222203091419349740756632247964269957948716308446652143035649773630828702126592260131661789395453794276831193166176482164028262473030028738329964714335194779030913157034260059055555670932091609012500653255192668805389335552408409268733413109753041614107032768567488643966447027652278943767535764966789962726428726964577744788379106248206847273908996225417140462113039836678515643510425898615369713741465599572403081362944489928359725825982742795144919712810958160067864373846570289901423805237231578631776265047090648959010891441651893047618668964990446483483742827827211328315657554423198346748650965469048318537537432390067492489007258272173514413083837447775009236063860668673698194059476987694889625068311209627761054393898770590466355897945728496287747289150387049594443489716652670317082652246049383582203010377873310493291328930722188338547147251338362131090729351045931562030628309264784372537804498872437442235854644909119409927029766706104739486669797280155796985515827645487274494018438420622104012203657881275560358650777593969553857341897943088644747099366375439476919756982296752882335563081510271064017614878591057534060556791892378269666371433958458525682052203802701424980920856465566221617406589986354184876339124736635521302238503692754214894935897638510544080769402658145988703451160304305058901615611570506320159398881349144390734978957900983002944630283143851974361482584053319910961870119286514662647471418800322680175381726706766678200464461006181829084985434273002742839492348672645375946917870359212497786911397663365126465773508889538570695691115548608177376333940299779138289213657975942546822659731953696125621034547380273419739165764013670366210292625077773024117811862844282089784559211000677892618655358771192801323774273530828588076604548041857703457397741673350163955308299085489179364901589056106216506059286882893799550868409661381514973776059799495357239722780384533417283689047567706949674209069276218807368812321432692349075058568026365124039998200204569882270279963716043033300643664479438761122210710608187066277875903420467016743813756795865061830653777616657379930938087927320792685140021149612253002512098116590796242549626950792938626618750983791735194016265699171454390016201066853350163829239089174354433082068933781989215356434326363862934363218939076459619525329783961219892290721706317908155593409229979729989774307620981111744172205546701933185414584020955962547534812428458078886135635437821841900598998856718503433455677593316154061466011091097300209346997174917153186818044737525420160559709565881052552423065866617515659387539051914269266851743401575683803368123257605662879677872379404076892444412199079280468604232018456336222428480427239816725874386840357006138287886541096516246328586993429277813295009917340789709823517612252448459752861520224784711618173129209380812844229645785051616811491482148569009357784698015940241766340353708428498462798404876640968525122217371631888359060829970666140569784834989382637930909390967307537176690143868780849507217117612316536554752112447896893675678182861192406489764866075386071732483677798389039598842427410667278696007078747844327977809106081209912247241944541589356481491394525731710316490055722126995412963365679026460538249699935028162108791784459250042461646604892031882524599420907060639102852003004270480246787954266293147159185959135149472176302830110251780096076460315967308550732115845336944749327556631912693511001742514318888634503567040293268344287642015447413596456300886354816582641729422106535008525157217782901169821374870586928479082805831875818186812369557978661807807150848757384683561842547251318186283844668218799270773517575823975044778461653629968647828695392870328901662236130706056033597222767405577700109631228529834146352032819174327844136822429983797437361552310227365348000139755238807632665698117292851965885701192570323160278094262813231417884089135082466441202834617290958753236890588177678699724574223243656089598655236780123184346783398866393494017207898244842496695536631254527107171523367996501792993851058728604170855755365344386324167892405800662504941233833972768095623983480632948905410630296903465771525538774726134325087417222736278635850979313073365709812127703315667841328557714470519557205519066644435723574380976499980049754411098074823689939494701748883459585958855398003877132767626483057006165526410438648489505046804974603980989115405671226793346071573486817926203092160906544724445180249785242955355891156662939586951128649527066213149227755494210747259370910356935179617169526401828076497185218639417086274743392876333231818362287801522242856996935287882286460469357807370955087978538539460801620629641588401420185273884723462830058970613162252654976840565758027747124180850200200366600226085362820205862901560485932176901586238546264450782163966780153051592913377093533414143821945326049210009874276619159486373257031566606760357686222690565542519849750990328455442356449945584813183797582682451386383134348306916867428572430649600940878983804007826861203156670268109139778861866549340484791094634023470795927607712240338067141098999081694283025625293902009652283887278311810303409198387501699186264380226890351168341016394563121018886916573201551112954746747903190326303911906098937121413389357624975334241682551011058814200952480135194042706769096462692507965635478303092000980582109814290836638486001967231864913549068705785471903287117553712755974093528278997595493662919722967578257425938923796113851628752849567688010309488100603268304822326955081489241359734981094276698057059396010312102686893864336945424803475125271203955836260541861734379950284641819442593968854268112717893432308807137697369606097734947827549746866784935114932792085443929213890220633543058658850194585704921932674749484177198457358210673182083571975302627117216310191430078108062215136497646233483773805340369284135630742581893429665099887565099844575069197749491168234639895521046821602276535166183616097156671956178475017788572628964314105277461780479172168589678232042461703143400361460312394542943906916762540267537589681681951032984476493450105746966695508093332420353342000072245711485692089392012880895574938455993156080805359581036653272623891810052954542992028057135190114589526275351198420691665358709378555628250051854721651589539590887395023117206064494941131167252232546070319744489270912843184761201651661397931136433817941696635740019199976497031071302504514090945416566744810756289786362381495206973256377582825780767581098436993799121313962928926733730183681749168808711164895626853886086169359156615136484732130848085712292647031232837736549711135190622379247111639400402020635628110509453348892064064464220957218272097131825718711682427657036287585302089352653969196072454276754676502620917969328759760673680696666234156993566696313616574226925322207553046993121725442416292749585398555188204198203398807038336874375453696999312996581073793795252723549845618678301748472983139049431293499544781030617897116415027309901699572126521945469615034803243037461598583880660898647409025504624250930808025738301028662170069491083249052783127168490203310954496129097413061386740433422370735850984360098266786381349083157461008265531291528745708381995824171036812849593520842072421187319330395116192688174736472927137316896792229076902293729760054250242279153936489103301819052182836919805636786595231120676328270307661557777187006784154345007256996245234819557615344813707606484624372724736008745419527108562782882483150074938230645207965899679843465259883453987234108764831815791084954832034633277589606111245085427095900433859290596270927533292806167926618706034480468789205870558958058580309645362813072338949910837554631798019206661820839215579778109829412899802061920241216243867734213295699503867715227768596779991867613149789689175852564873538235086398669669038316351485575957697702533115368393653381246539232293081531973237277699839782370272774510471377540682648031207142341821772942930118495616862857797592943985188997765675445755294010853083319514813587685956872663406892481352043549054916038331682251388370768730819275655632850013135828093460683428142948704927258765742420217919718007934247665574643477889611705126353635906574718457700364917350460889441728834536193535557032082193523798209160348079092309919932711570356055372464055924957908810743614562232266852872440973453181812776321938048263723709352450772034926987145429464701498872162139635527934813241006570727181132211851850626667854474162211765742070304893512305286784900406338135706637010206575084825331925872168030051506899573668865530020898654541111259462189329137512519681817227607049897266848879439970557478111159003798950762300503022100930620093313776609642551006534030029056846713990449859813423242752198858962068402764306923995130717078940157566729815280473999775500817762027027150854387292585350197544948521850735144890935751774261823525127310753939393796047027492546492816982515848979786359428121996297650779271251528580842915486228825582298256704949061180107656370660866259201759053093210023712432423395277605562788851634475167752779270875324128499404173125329680241127792463330350859338617488676767562869907678481726528555709986312565377569305643910211272811517734039980512055002981630651768603014771977300835175988924541137831397654403732670963106224577411113520929559941527060349377647355955703050656504584817627119895038609983717074297404608793721359403468460513132673023175171309354464266631748819475741059088644167441097620793054213070213226341163027154346398133127303945493265895508219001157647080013270561043284531941838162196488320891707532518367286284217194664673576778079543578292176631380474389527966205238908038909730914432612422052604320128629558545270294247798195167767321297454434655305577392390362080296462317928388772707022102864587163744959351795977442536194255213773571645439032559891132386586533196064924436598251570546094846298305367006264578164312522379066760684553018405133440330352780799523219046813034862478522087841523056400662134574290962672034124517854565827641764477068815979568637569688961256218466424896322691083838511768309914350478236619101711271191296735273623553066725237429290079866733298090993837429647214995376875581317038370531726122822754970197214711594921660350166024208007787128411250106077136856799660988702959344798057912183843928383437272340675808920034530148570272381894361831352104031914167836139894954168196006651701749362323787538457170603758289243423455591688155200831382967361798789633239367456752351708986835734288660551099873048631965906202754115278867093730489003049986386554668389669908471141538383059370591466917053939684662737840221754436325498580053558245436086993171960240816249415216899538226563555234584966929892984580275507830917990292640327289379618130666831721569682697750831594334831981238416352840286086319148531247453317347092215661952044772419469938639088355940612295555729166404859649563816736159350285156371467483189978242124295975162178887635362279702643365049572254444684186416856483147490062678920996285675809627039976590947622060341344823208791802248606164057247855951392718592809421986152734008758856441583676907938008526589339272712354174289921828136465362304651641106035683517309932197328416857333229706753018069420900669392767901733059853984586210564380816178225133194169216661158903548628454678190263017109571142229141898028939623294344203308947054816509019050142315097282228448320547699710907845159883942208900053600355017666246446896750730970425144923204989320729916282417507936247763096685746128935737009910492119219953510896990525269961348128440163279821233476131898243853281741173479620848855875507178634102518148273376049440050667035223241883957602350641769586109050280789151159009809990422589721773764561349923460013352340051453142410871019972804602648923332709419150124548241473444172797481719965608662464326671629161011050298563070739455305439631311091478270100938032230740316060464138173113910462467802941796251323020559431928566710345518671134486336530315337130435345308334567374522148066566689473031617186472837789464366913518199726250541330444728808359108523441121531028494877402358572475981624194129187429557647258130560953925345226059109021467953691978456247199533475424494889530186564420527876605153937321026011169426248002868724011626181622966225860794800023008069016049724511902563619487104992701817777535861314958665945097573422512240566286527371437223508718903770258385943877535234751115815337335538590948477304418549472808913721796988023295399747387601179582670534442929647546608989013791318805748453873865736013568441390737290191963976009211625596729591273741166796835727367921595937404557223740790498473644472119868673738738185182934976047741699593626734480008497961673858345166880273509491911822432261143124281653530659131711861571184605920599694680563381191901662130587681296332752633701154984010448994428270774254947966497812305755059678292250259155931965881891053376464481183447568101205783959960145541126575838703783018829613414297377204736031329676815110236568859512672919607243351684572719519554876830875788542507987223312526052847538517206415127785220125138035077077720069993778861261519463739578893800040406823400425676232885509234795870887253900837342965190130191555056177771673944308043315295953869671994918295337287488417864258989226565525523858437628658296194229985933590240512309905355536015102482876926639279923994626087984248744469588670037125796736011930798870138326288628383462265943009226421511280990985082606165078559061160404415401435483900655348475997178156605108852253475536845440582304551340613127076951534950118684306001345673359758650672521666251605084697150780630290499638949995632326255259245397652660449237811680832568518772886323624155217511408643231114275555635513925932498642851047968138462711954833886511459457344852822441434226963005786949628895172358657073671436658238489179403127717879715333553354306084431100988392278245376249865971849834760154503038678713933603738624954057105553558437017299980809976125145509538585737760847924042889952703852698109118186682219151707750652129959194041442126942096583472552529888453475513902112390217325951621405721742825685854189103672268378631308986912914920238170165708779534775816222111581232417132383467152765712166437952784543164540216274187416343109302110543324999000676414456075082172164687869692949509405534389090837044537301089232139448174214815952431052836157451271460183741808719917054368209993002071009234464302565386770871900909652729715468882468142123135448880589287122889655438070164011013686526594240952158159967781125450034965277344107831522435804801626714484950486944010251766393105687574418776053072923514572300378866674588975871088525953074929663342189539706212480720167991012080652986538912977382044402324713884227068692190019642949865731311719760362828015917991597963726925216027854904217935274513159622295877803158758897634370825348392687394329180218288432338421960876818389778461219507261320197838868585500593814749508860402634159353899483082803483607736746272689959781098664387039494699345156051415535126062958521599054088601660888813070822824428774635809220476211826850080934313859195507103375873788919701903148238348340012181005105108435926500937508809048386290100459196380840262465108273305854279001482159275425893794863077424427198176518167790654317576018397862898408091347569264397797787974174497355599331383716350778742046870880983583725233129904565735400186832992006994193765071098069296488389693621644776605636816191186538329800232040618075190277779631160677101559215308432052397850055724484709516552896351233901305236989672787037682515018947323701838207381220368978235270407347504105507186661602716947919632280404008863056130805557683073107347511621351000698899736683860276047681394498436488693264559853029501332173613212767929837220180685647179845220111584237123571091210427374869827089813997391006832083939121716418401000917171064789290384833092631325482703705857101029762101153133375846454313450219816958296235461306313071420684812950052325608335105915910480090746165053879565073539640476223292779746749006009483660063684260407489898319786768308135643612867872497159176584710555096070410387619665990218370368586173678972506608039250614217693872245965186419739864285294695260873207593372582499521769024863988526761384938824979620913300451019450845237080112865297313971095946630652033973434970301176128006317015438230686242508608754944785543199891502989021582705232099520685485870295514928553461854967123349629831923500530988099904009510132065846218671036556322636543796111818135962789745428040445213433347293473838948020571244275389637318427719652483394579319815290526480939656879621198519039371853737556935653942304166589854428983821416942759661768772427417065652542588195414350435562679870586368381238857450544340591579303974213139412866868740090603883608342833275699468028868115892968771632591105655236124744779010786924774889064869176424441650926233817719871331739420054262164217893613044640826248641836610746782564668882642797340722991102900163337490317982396875776341310034641075147816853603311170542074000056376569832658278728775340091018372977624160370785572044395601429479821395831350183014666428618770700042468986243403563254135741673868935229070219482958967504522197922119196164241478116209258705557318266143943730685511922181823511371694793333623086930254847569560539615137912054535008492446093044719633834816968121853226521145923346917958343834493989455071548965140841822714312199255218975603375506520932150434016977569556897594973346766968496534763141458150654456765634354905488621612999005598355225615719685792655523491026045391766222728204472669747647551845305724489179809652987467954975146919239517891251636441464923418042529141980025067861372926089490711975240236281869857540009167643217561155231669511888491995903951191833615639540646485126265207778727962020824965439103973059399026857076379410730887136588822202081558161923160609855395795368182038892157981930190825683881350465500643653640838937454009288616704117186198363660574520918369040046716226626149274067743713469146062812995084759801407279011743895612471671506377305246226470718825138700825103686515033549218261171018046668983220117047883481622566926366582725112632888680720297867987745170454561726039768812218023044691178435226455829553557699171834795105492668454787574654760705515109172736526242213696391058945345440474912441052383781147457928369743253475056720438713930885925409736089354311823252010290380382215678415404822603169083496336408845989190227648051973996612567599953825915124739706007040456265225888220516108666874615203375853436223240074288678539382973148961151507627649732113711471978705053071616352128099519044499154021667562696706010128067584783917208957347450974865785335298536866041981628968471492488538686209271060111437029645253156138751854892745199877843935537966169409067442586737860346251390897273757766156143420820990465683288661790682414132593989548406920917189779812949934080518077932066116488240396576646672987700400791375675142832387318915810942145406265391267545509596228098592131836664497805331525063194187085796890084198809434555622127277733102031353613162995485885833885387287882649927091203496850547005440153146811715365158662299027005220794651686518169701147300086336256783827980263014982287498468533665593042267102499481048597261971639491420441853503587979562158393470081676895116271499252820577686023010312676847904334912158011690988496442083973085379969421004700111935621232446183131664136769513321896644289944243639894957633190916118074905103966301185140037250968643038078882149064186294316026348556412556153172306673958982325392381786591242568404407235835915276318561226225284075143510702460382427615350559006886013821406457376626542933646824977834262937070981687241049301883111526594939638963656723515646392175708193872952561391691102842384780770181345163780441097423700589410984461948606647383882089916015700638382195985479617316182711442016383135444293655285476550466435216208866237266108179789440030674036458022436325084997441166070795047918596704641333739951871999740668462403824937906151918096695975757602536968860089300948515085219497167938337935203834229044897972928981847724715731380063381606659460227754842510911750269803963473833112701700646490714647121114077550765372509918100452143660206195861541148407991885401182204097788918177830157542407654598721886747159002429833440477956109817005616212591694113100447465150574694650722302951153473367721022284259524427278443652552219900577413046845072573848927272002841597845394850090866860125368101658882796936173492759528644106674934290414791855543904149214894591246743706637545446406389501847027197623624190336307489453185047128940107211009540528384507500228608945552187585520184966713648104207888860340797443933557776716897009025938056090631445547691086203485795601534915139457321850208772605283531113279587593892962200842304672125810555401079862034152526355592552561530230715773425674940691693751758297188210242318415944445418807818521161302927470588579089365468692416973035614516307348893714548944576288517988575162893599420293763009935054465630345944594881472512451870843012001088592607470808871092935395624150399283999994200772772682306032742851088044471222147182193768789028917520493794614895707783890173462348999075731315480797043783469686976891394573323032484415796948249905568409794352018463613078004371442684427586147178889400806993983292623935221760575636828114071162873096659686601454998312117644355327269134482705779203152330583042839481793289129780941656990117434992277147663865937939118165648619778068381596210802914907221171532281992357403202392508551850303989418582010694228031288720415689698034309986517544400104602489049869720263171535350982744304925351529086400770761051382320315499776020532707553811087805786671496093110563095526747674040150808539201773311412856455587568276097978704924143647468586047282288171990532659267436826884205291958031845874914580788138005687519954674033272915107038299218970981779082156701201813682258582783441431206275171218737316597226828177718343478241977841516556782154061833064629903214843918614672017737934536366293428543393357558672419256955234466882022188919391085820140202766049399685136786021242967757931793006255279013512675699241926685683812903427066728790927229016419407594798609999105743939244864085218206356530350761759124279627782856549156342895422278714974304494004523895844883776496129146199713869320408859645812799633463843114958851203406691421365419595839800910167036240387438889425510878028750146611069623410800490471556772291610674479448848364721335906736828166593949916753807916217319288508426348325555336055586905436988441736485902778189087561371518782076209060585331169218637227276769323072871912436762167307098190503152614303149904152580442006874645084158189438505786331520326918147635622624873290144231075699791293876342150914500520819675890390188884306664973491647766854458086105411417547536145273323653289145137639935605349145196679233258015835192268370233040276939043677942108058330958825632815395033740088178145399970834310576044351563243701201568194463108650201380651109199217363821645836407103392844274961455505886963664450361139409345668099033815386384816162777117910215394928903189507480015559392772898368691226987935823918066177297639872358203110747322949916771877785342246819166229634223924005902314777985411550267627395202509151379759812469960541967876039972418769155103572831767433270880180645293295063963137511669421685970565181933898694462958876721239519538532614952769852440525016090298414969517069868427912450686995882933792898421706610821040600364978190444259193115051354387661359471045416661362825688623810017639862237842947774012061383730100048909800600206038419687653179288922551484869381794586760191405688810833908379540253356266424069648173526705758352236930577521640872511309943283474176130983409914406069149037943315471974910502780077122315556939444041884166017182273927803114337904488241961373945832854961655386088437038424676423394251271951339263895848334377852711072248429272253079883043526821939595092529080878128763909658389517934359039189806260777585804531314471892330402676038282753472766497284364700318390994429511351629266987580448179216231051298766822972418772008552932562666945663919117649740333782015594033619773412481316113004466668827793198507637843717525070545447971141799183731181742078895187291332099765449153388945149491916118644552361002076642248666016650036896989233593580601709096542248173080850760778718787875676910309211970611805319859644290924653491623395235869347536761586299743597830110397187823087709140493999940162594694534025990381878339926041417656948968725236121794905607231962707791290880483321350551502759718553070582464369654392096333445478097483600226161805569954811122156710204583038486039850860815020868184146814926520083375708885346915609573331225727567230983839951007342571994608131418983297533432392763528271117224719024322931139707423362139768259954886322297061237266349643280524485890642993383232418223704012561069876364361356921290617381467389594577171940238750825008867444960362152703988126821054200671926770517853452968296104779622314923504980390765342146030465723937780673482700237534021898633415518959800237882712804189510681688249734566185879103287045718195667296779439857789449650332976223718418293566770430595090988273818455736933519698767983300298478118431045428605503465388287997920553740952667226866760784504376641242740172484257347990289884456617413987767066909422523555877926310353160825359452503086682826476260092966990861767885028138229513001034101421765393127678476794343993585039693997411362053862207349705393972837967322346901523084368640943469524405289457996516230963175419492863601356351750870269444729510246403519824290371861876974052300008841987858033844448104994825177950412769555512421271319493445665021788422563493848417424765167088488448291381757053558986339807784024946004993577342563463149123935270811995505129775650507184211810171617810704086802335457086074143176830991201368529208411717420934435771065801804651135092431107589536266401406971785611912557639156095108728854050600072274336527834752646594203735273760634178107309483925323849107415140683881912916946352309022544899763651953651581595456689580605824001468555125930299938780961878446379621250556680308956150544916876527634161662801056927107470116504076858291607774657639958242515557147752979766000307239623764416552865269558053922889994551950381859699081894066751520792400819090007928461968198874181720291207309985115535268252099509373740693783097508244806477865053861860214713007734596040050348974053447998722348340686265825439178607716848349577351522437385842139145150607111021134235840412323996980057375777756663250136962107325736537747959985446420745212616303381306167768240438745779907845202457121140246372866803205612694112289951355227951539618277165521613915647705744339860736784370431585110521141816769908192421987766841480680469650972818438588028265031805889246355326784039254412325524946995684976168623930737120907435503043912284928447846633093038348571492457963751263111556627313866645112104682743168670740437339950299247067567856163575943735469731573912786670090936531108435478943661298247149772059733905905585668917519979072072006746566857493173064198480739453204701328588626490470702182424678464025548809415658127700625530428029422687536443611306709275807466336005622534614930726165794563429462881435902562388601521100773564118846739735479004865156401273834406443389357264609861123399011118722577483596555967787408137224491030166091334106774327773714138550450177465912155547565327430812673358551222020762216107060403014280224056906794656305480006925912241129751814881635110172391559705768623046691956701049802965007520474155123007893023731421757178340075668008582731796867317926447990021595263546739275492860716583138075193521031071670957963936223667137773291029628922486972043279807789271061930960233221551619241181561258588761114187975002723758154632540235869904091512055483009837558659775085000223795240770981599220976475782536469311290946470403505309663940939068631801103209294975096891272771348738858151905030320412763459542026665850992956393949370701220567842408799297932087523085400380059346429413620099101514175847017238563954513744756178731511156466849362788548084330402226265342015742033800494196283098841539823498342092064805882517738153811168606971644732090652657331454980792545572389616156244685722140740822144054956739172419916601228928591012567351191723453021399639330064841033074903832280325880273626076276264900883602519430535416813028443355467055644544773469570620574373498168333765459201781970546192805478956364022488362538668869538318496117075057425592712442490371432632330657455045700904491458791182915358196434494757272372225844541870299721552733683973013164095218521719075738444664696912124378163312688622955317221125791494335681846903838191400827293478997807177414079623401339819184994178120091087084262665510599457423505070773461966690316643844338030640978268630611205209361639622237142586859865376677188524990935405500642125123484050388273476883540778596752680920504034726517779113689811958699421791165178668110811590934793458560888458330872273550554783858297628120248121164396286720695994916255436179351658048379849588734746024644209646333983836137960342363689062297260870328580609159640792579863035326806368049223308405528260107947116524343232566011900577401460473195092683900132282565196612767591174250973121971547576612343395414328450153122731834725956501188151329876263983386273957823897274495552164846716578942136616625286830454553488596858502540130764952758774590191010893947913992892376924326967394833607956545413830091116827007751120460851144263384320393494287964747574928019037546390001145722968934398910755669996543080135324356917226301853316629400861759212531058396474872138519110049677544368248864613015713690368109929436053657541057824093513554531995171275181824300208215441433878530804954088525259014803077240775572991522840279822817926346310586804737046234508224438184768604667656856792838891984704410196645366662746794772779053997622721014875279585530828494242040355852330946774669168362789484070749431516767729113934324293522286358093065902721504014614267505027956858959521516841464683817679193967945888235867615715721695272108159946731956890836580196511694861472220061587120923015999037912742934727096979958092177942214326630435803376620670551136505054981439389945692216945108390778413481131374087124628472228022805988232604904026992268856771401197107271824532628590777666778403397926812623162697508388885461519262194444787464260652186438213158449052045480495839932114974844915177693856650011872652201700601738317916735282344256075489869326983732605458254877638582626798431540029156010100797967259947335742594606689621205959251446651676821863805924438145917441861913647284943204144315107527188056650642920070149396721352891744457959417030673081107149799922380840992040438715853716272946166146735552668526958347395329731508549990505820622717015798028305383695353147636770081196171996989864343748950281176546637711053839975893558087700057507021168862030075790801615024163471811409769569048395101232324290638616038624973290516244603610941804003652362258704631083963375404924972524284321621949256509824248452670914515812736604871455844085966142703564430449340359833226431468725988563300119092962992750894590024118289757963006506719325835195485349133029657098353419028909847678944152002768882741108009427638522131666163052131737436071347237074183032093331549999689536144775429159123760521889500150156876006412745166799805722179912072183158908444168560487446792647519923108238764939189107734838073397201318611527760605956558477148485688641216903325523265414763411654792236137939995479560522214072954401260821276473243963796788071230090035980088347998053942320734816574287238761561062912506065731024380593142632293622968639750221081715286257059370928706644254063524115066641127042836817042164089350252141846622132704024975532590218762247601869987534670475607512694984543609101043681793435960113438001598174006353395620342610411627785011578346667015273554168446720297164784862752584797646734739090411104586959209038906274957815175687666043658370365069021733980447443161195837516358359683438621250277462884535340976877844919174529321003096637262129982684836574836789775760795180574095714650123697840672062813564758976776376779594830757229909960766980477295324785965636450569196681205772114381060293396263612055448625107304919745586189769276288317562163463550023203217617888314845270099867874084412560084030591538783353887069645456609449819678637553910646460539181431341308588262149945031391899680550160426539713600452670821587234191339923081566476880529499992028900904393940713312088279960008543384747288996515762816195907145483033473779248938297370176950428942860783869980204351539728271898036905238359832718013692458405939374363207866006803074260199378478825527345881616043693397492491135510502109145865226909989487017599861074452559936993903284211397429281713920716557323109336883933746853662607812127822450411285588071658383886955494647350856882239714906565780282453894508377382156622484625223164741533451102391568461023051234686322715628469467676312550787252404621143776229687125380630827654069106237410706133441387987701099818971070792884785348193253233361193540614282022023951025488887195795618114041775802149067367903026011889289273666659876887458516868791564105388793156196798405662883294050239446441031338674957537892922012408253443842942549969952483238903026863898421054209847926450202661396861979992043467508503360685495398513641887611363624105414955324328977674930144486390952281443839237130379521186472567859776908079561502176830135646963819709256990725929789410842208517872812292222421641745360812084345398254680763479909359280081948658851929453823384999380855236175703217004426621011847522947920338115805656281153842261758828019158808170824243550313019657043656928969161314301493785934320261558847784647132719048581754658096586831836321941648095485709054212336535364719780518522270136276099513333519473647695199674364240778159179394114589014536829207215247929006425460872400116599546223940644885237175442395618491965192782369530332136024812177243443350868634211706004402085038861321102552452017602684284508293238060597247571591607769587523505238873905667531463633714223313865955713561681063804367478951866246512737320672614519391604900555282157464954579435568198200652085165100278623073947706264172887240265666002913681570615770524286320185456015256261883048706679927276658674577310331859487380753811917421837700233062363278769569248091854966912030685998718850745777021348147694943470167757008064694956357148289314966332649691112015369992394853342725233636549434560433282189366861291353803407376197035359754695099270740321684187659360548731498608371583156478276443463629188426842426439025742905114504628444754445232687981834005090416779164360540300406824515228292219464958289524276256118444434085786178894192435891526391592790335760510251419469637901740358890121765796267358891174313272078092778387140025408882557470112630407739204834235399806700700173701665483716215833633609962433774765027370522599415746069621382512563725904049903802959260856068087622669912520939475566814379412817664875224978079710890095157682341680494051548391985305118674668370371056939090289136053078334277068611422764269873307633499133414571090754981533064857130121349502493724223391402685215065142935453777518491000540579703125100235204576220743782814119992664939745558456414913427088354005654317801728950024766158645452258193922749147743733849359128046139238756014361701551037667209538904981190603154655625996472561612526493993261610589299414372827691108926039427831487565669132601780406833498507039432548351866491176552759759117587877395258679899675210389832633340619030301786340200145855892320771186871795243360349566307624657965978188874405970556707530525352925835313387989194741512668925904840891579628311801696453206298848676708305124928475290048650414962022595347424698368520762548017222414749109608505342959153658108930218019901770299672720907130562448014878699686561942895613307680138545326643844646822435704890029616656829305046710079354258320401935172526705399190995951058295377580074538948641435666493851629986813992648826482049963792746266792908628546325448418893956070234007025338687298956754310986436952029483693806272135499624363806228247946399012006003667822375485491605932797589249705631538500320036311652286139851943456631541689642100554834211716411754120193781322129757395488670849399212392561024010699227503532254290327633405021097403071296953172264734777696764634526792004309982222916700096708260270687324825912756751534960343437481491077966614780524190675404437979282767650535371574825353730883058726630214978491217018654641252447531919821948370420754543537552836195772436538949305228709084746738050409918324973332762372703255488906056351906710397822431893821557187446767521886417604427906547474319765144653647918464368692026319158115881528477808550452712416746356316426181433324973076985100116678985779360377012008471154946905929692600968843738887687966984294005983884548297502992255062694834709174192147616053626995189622920101926487669895447531820312278004341693621615406916901163631084261861787839840832044517612837578440293657948795407660942430992087870462973135567623836308900326310369027807207596200073719727795131616601851835819631358508901259806719499829955133108421641019776340972204999896806900633417362724538185077902372369910388514692096912418027598121432925973909073121654991661808533282702600890395021792778102447331656638282907234613493752646981484403841301243293844778567634467872688341600045818445309744396479057965537719291675807182181747846646167635274665924257780838977652776290919197910248591155674130882943954756107808149686593912396194651522050444602514224066332947280740882547652538758786052746664026216709840605770318077257617443443651218730152563168033177891005715199563318376351274929674871178054896856744370504222899314739507644961904330869575997040375198177834644442464204150854218228721974283249530890120181686064024957666354124429861466325494431662023471041452380640146863931775613330541313749255191658613629617702624800688378489360870169350332703378968865224787730346001355729711189253898425838587879659435245733215488061662455636946010588917210866579434750804004135415160164883774778304475098895772977255454221956927574379537513001410163877989071539091181067006948458586338484092409722270002758489960361323350927739173463567023331514574390226821820198038710395110548341565657304338557657086066662054141998073976846684895988685656778695635333848981841328077723592551045043099028138471591036921383847737158471301463355406184100273950410195587855865490703165243978632343318984578226245960522829335684408918286414754035004275466942691402771364365248980420745248368905747955998439033137052112694212203774872364590787806123307282137308126444435372679940796674091871858482007849337043298639504461909995357391553498133160294506560141969622432251893436515759349479386071208661289868603668641683604629271403957542157752939442176460973248885488747393929998798889353094354416117788618989848399408801200144169057349727263749212303935107090025399573742295514617077100459674978987486072262521131773077358991119587958224220534631151929368941495409633080660535479665161496328877543395520770476653140238335662448631463856514653078413643941319687173343659847225055829899072606330311994537970675289927689609123247024564136382153747722559479153467705083371608726854420216665722071896876627835876919822126434162573246649635339322515959565400087228320385672576577965847477903528465528283761136009189889578604271608616144840436060820381279644761136428379869811548879411053327461966840955523745071123014545354775616380852214553219550243843490241555987253805386887805187706052693596883286097604662380579997689435139184365305618076157735023712915105878997096605223840464469309987986337614761873683654841184950751295209828259783763313131640629690893969294885548255747185568512289728192425548094653464659909164815008546870149813258720587729484238806716052463192908590042223923684020071514321940745774811792733960612050361869122708236936605185745614154714950728788796466048419285122441406736227759006895600680451403970425045114270077767614132354901689908200707003614283036016059217985812965288178210500556282793217258318462939284587092586440139866484841726334813675599993816376661406995437747951183512857716688963105173940733263440317986387575198655323489817448357507666501400989345287531415141907898441196930502271649927093978251538550531898314998806776674444989308390444875585095927408906748433229626748701794361954055749195584584193158772935159951296230660012821946054881939309460460265646091455593279032624999084989950741370279494016377441251664176274532684978992715590982069913031356825829782553306753260805796498044036261664512423768473782345936698319270644963984109313819847716174537541664473091874216254898695929392868695886158329494776635700128998876184945124549036320878589633794027672635583840075179477344107945846464514317781855012151886545101852380791845288194380229683650688764924743229976877618240034324920949434885952267511325168875970467972842204242934610276634478346767021350632815026545126016163599239876807331854956973705136396055970259308717621121895199287281602572432475738637787145827499563010716879989110023193311662817444892308139639979385020412438183316319249461534666194662772776845193737543587962850396377206181990720745467564393459370759070876800594070150951783975347353422047807231142461654348100724657912783373228937080958142722020173025052892469396762409809777452322110901890433397276974144892683475273263034842765170169196428910321930953832092672412462949287583358208911926897819884171966648110588105946834254563396801529610360974330004477094573479380023368486011283872052468276145469281679072848033006938985164575178229513461753209383958230060274448001025715452347513033667386866365492150177629344429008543980141389652494834271556972745245332592377526556585782464832901107008427388676995391112982457524719820990616511262969310895852278729010768819560975694522830189546650698099778176532687485065338353458350256195125130812196886533664010978914443402657111218151656845120930754053542064875647917756926761869912575670388833258462211709980804968456629536898594333607029788154691628408812234194209802536339201487553601179587246073525390192692372316795230416660561125964437104571260618245287421953751166763063464777394082043417466809997682459589158768886416628805242436566320850664677866212596943149654557782314537713753788790619218712256908566707926418273363739376632626881617346428218036861670658457147505484946026169345906967575683600369212499310299430333352112889257201874495273121338948359465400848570866714557121873001845782444448447089485037312878419917484961726117425407092344484008678682048783116791283516692659034597523996432555112251200451538963001917878841862193097559176779363232448285964139135759280889798224651252937374403697805306244183828598555901256866174738733790902741036424546337827171102241514355234939369908674719934983919212339215602911684260695269115232964699644809666624173066303215771556315135183836982326777317272096024519267358661245591538816562784941951261460109676390442644419863201368612019420948342691864410589106447114273848984562386291408467940012642315933318456036981894103036132456136843224487168336625657446648619717036122070298998634043148334003493071173084054167658227240288636350919440269837765177825681346420446319142544905920785741422304415826566897826950177445121123215890057004134211465316622071221845142552159796633928311102024793263363473800630762966350593888787345788359927831470352048116051657842836821525560027728456758905557943420420410157615861546354835241514901032122203159162674883312121375202350940462192282957445586131049076337994583799169487337016290340372634583328188015675798435417491139855642442062556236755810446988304055789394779616805581423297361685964278378132591425402919295853694749150838616822672385308582766265258891736386231464690529327288568184423199924838228566984482434947129336068226330049014656258873251308547480631618843675001312180378977616727137000630282500872690691603537453959992590008375312463744103798112432945403903858276808110447484630467647493530952773594165089577260910672347913576629986675044998446856319851087021291855637008857107124754664955923088437098050410114393626262403917422667442416791961270247484450759620399566775944333063930045120644412028860389384340961991029203143618603932258501902769864189437972966688671097136768325176445971067077842788989483657975137128173748252857464898818439334085935668963457385832289407505936751544117593280285816183273580120516175019038230799899090930888796329632102986006318075650996217626579047330367900984254305889563784883696814187245409124057050782531408899582500631651093677136206925963805009213943801073538252395059048446407730939387203706763939943202789295814405824873243020570203944977349190423177470120973783335335257016834479813060779763932054709087804542435511253076744485786227699464179992692056688935165033808403366512896885688610929172255538998682463385149601264118644905933764947739098488768135100511330901147670633226394630388788987105400928320832226589043928275617491530124663024456971134778386967324446512781649583515579055748129517819970201058408848206314207811016657072099244056393093847313959895892344579119884285923424676981183900050862154510422365474698356159214549743782302022433837069635492234284170348329528011379828654029289321688163664187868749795352587547446362979860728916847915609548354002039063909682997276859831391777794044253533979658855335856573377085589715550282857135048651858417747337556455428455773563537253353575221004747870260205389109470511456672566959589304473529153285392993351827217542336931299843704475701636362444323604269134678973936294695304609371746317458640591504138203889537768894640227990551037078056878545043069061412245359589818102136785464189173231571135851583051097283771817031510811609875801350493943638883380900674259224013235993493399365878453482010397238032072374566353912591257360031177324673578464714190391529500851121410190928641201912364618821236065213439782953671296069223872358317184125254887570385103348944261754931745908565597409013280662622438055836948241334659194207225134022379237048085470544568489579691216890801783278300269999997930261821050402770157235468122313524460184508525284410892013737789583068348494184602678691405165027903922161436182651622638034423801402093530272970837427581300307088029139376525418800630016661910543142249039338930475485697274257029346661407536651509999935727750565154551288185281285625661493484793370803741392698270956233259030129978088730249711437896361928597507238706125933000873282797246031139907965360844559832888395891607981141197366048304829727511688554644339836384904526646802020148874764367265819046264556975032322479974201422244882476976905909232030415510521721377226909141189505763105615851449171539768447135627532575043521056862014971035618693604555056645521200437884460485944075332972343082032492851604876098011335560377851660508264604347808565996692444852367457341955276431184867440927974431661757809038305763326835530760190116529989840554718848558538838322253932176362847176430964817740530196533668319266845335670954977978840155452835896187814921177513928177183813724438310820938113954102565209991504016561901511127302170730866368542578463587294845121708918432639385472640513547426622669310462066220256952913285836134056390834855069302551219303606424250678744975130198470434597925702423000935293863702311527797337130973592545286637620510288674174657403705746510974784527354222181622359282733120476418297907931523429754509069207947086773907377067349774423034818137425609776854405649279582217147648930988576992992111767465247711893808237431905682278632333229772752166670691899447127403463480565038333159262584058844540721968940256233731048415306448707699002091358566524862981326052621052332663307242384586383155838919674794533342393336891551244356231645325346019152527380370691040353616847584706244109596770126444138750461995128747750668690881037392972996084317082708595066442419359678438402381517429858365587901264742917567760332716565915906020035272551573938585967543455315548084932521430185870522558537320524964140088849897374804574187952930093572221320860243564034706815274686896197331217599567583483316683090623084367869322682380355307665244423768090186644040849768151263566667440828923490538718344089433192518304046100760386723118647481985230994338435391701115814632520761731360480748749498411764113638752585300701710833551957434640633075157235444154443561303109699298120762329851401100680220095962492887445499876529297073426958613959406157532443830651930076154375676952109373634295124491647741533441289987070545597858206051765208524112729148635905299634194026910210224685332290132047795908612582503928444541148177733790317873381986582053950256827565737874813026652278300716999570010277017035772093427653137652194607850744445740395152322298313264525692406057764255311246338545081665411307355297908972399283710330779394748294413972799368016460990245189307331734287148373693277780635773106242472907746634388377686164728609144350621927245637862037209107359725410532728064752447655635512102340433576450883983305596100756035056295267878645044550136317058781159826499236970574868572402320637709308329202840860201036919208720345323995279310681379733514481792871927002079621157313582894253198042646952995376477036576006449041939674625502559643652080965731597579131060699203045292370920208481397031264243470400932248139786632228662732168174518900633359174177367414097953329018431830610379039608585456958057603840857592923008858673016084544243908169684338575149780202070856995133140091319176975527895338094056303881811892892885926134570730633083438559553628958705581408927579088602439887941202988193475291055427257917845906779102942426337116871043838818630092857463657389852547988705547062062060071550041572478456086500367587972059122430619565951394449060844272297757189695409334724908852049575757233937654534975780879112139914743987397835079407297998359050364573264598468933827791505649268310268346099573352168872337434896847487997694762451417980660676252096110125274210946102539613422439088999469797189186373067621747877833888781735441835888204674139081863183833056646188412663891618430523057284816407292554774399207468603332519585976146821899152047368943684852703927440802170180930006126153560457285882093638873508763032003621540821180669728741692181202829611785298423816838123632486441028094601148067496010708459343288738680982862260776641856044140870285831710530392772807922867730362091709775095658752135633117402138110511832494971843978531023694821275979622559941817036535342266163082600769064073885086776662161799493264907965438944333979132738806478252255980861769794911293585072022425328384939239393048604363114213250665729546467799060142513270631731123457039239501554516176073115243242828983470518589417777150585018759927830012423393456497959167675318171230925738742349480269687871403838709309958856857576342455690630808594256867243405693396634143842299898593325442324922647856123932475649881935565543585715057352178080185462693927925441778275239842746587786397347052543264653359081865232078576132353388504068424380778126807265937914172136096663886806949392288436834860745449770882459349759758054494509991282797417278161520872414338607112509900007561351787496844053608561105999617359089529291999468527957262674057545025449525746206409397152532615348109594670071643853965638698341836509746583995458449492839425271818785171918190244521487678906143344708166429535255697851400948358917137097330663023813124712271509608990420337395444478008859944372012864989412782028391382723781263376884462256737010190167317221892758380191295580835302547201739705853475163802231006306429354683609453791719189366926242381624410388495059257507075215336805765391971485810975238614342339634059379703164038058530226534441398643714235710490987160555816169715844233182659686332060286591676192821998362874965666823453461803425514210499319488821505101447664152332162642570736881233975472204988843975051883521463782566175688398087145965227306746908148915293674496475160085666314491759058203098778829330043730246109161906213471955362280393131386552727113837445786839029283799099185930686147549009043232776158459729870629763547262715322476437220514011094204269406464478484283564708133239160695513913721161566066889178859225983983139208358495301880691742101499542639046524353006643902303752983573752823920238250767467374461076306971074120325974507864495429068847173101008500992004105070973793160329599615113746782161804949933479085767847213870383146428301508542887473845294969152353983829723982128559330412220470002448074506676536757687941665801602059225836244292442766456169859811606862598672577660800859112245276768424335296124492242231720107987565234906085341595475628257347583170103951632862545212610936759951316516218843627324527348937654894497150019289769951635450050065433993477282711237910370261597204651043919349226914749061707101249481281827828237626201220524539619163573607748265739839724626089802762024502734822308576791694517709679590249111760273065668253129959985471602161162979504529065474106771074070688928746236162081836315424787496273258649184294315058849616828213105247619121066923490960871751426023388663640357675490642529301626154333516378131070573950371819464836658213488805572270332455323603300913262998282705287757155077641399580705772960931754648458082994678418383432243930568287093600629513050685284916380320720713924360875430588966955783539195005385939272037149732711649605506014676702925663902392223761338670517442217186796971858988121665536190282838579434082789945331599351554267045359990144528203349248578163585150012616908504572197866759373491335161341025300885058169727333459610090455664293490024433633492058543519773684644635884601306695998788702947789920950562020805125535541686245881949810453735259266704706710535890444972676880462108093711491528577648408818151568065578689875894557933353081024539882775139817044171049369052462949575544711464791112482356248782544859617635737622236018150605584892080478935919053566868743074775302176403938383561405693376591511508803558806323882357309797080503679252005633044733423338512418391897720410912728908251142633100778624364433438946548325370414637065571382997688709600430625387709786027280935697116882405458700757205628916352220892805572029825264148270864975805584351114380290027305337951945181023431244083570581076869397533737161218449052669516671740110501028893876759885199243247616758519668133975748805530310987388295349679093412933995869260282060945832458854493527455223976998704408861058443590883509890942428497206703817243215837389887439242803993287956219009325979569468904114663553794136436020785219093255254924992585119448632414743352854671326059020927033257358549363930471114579049243976692258707903422306212734486694689849058518154269680208340436922040867939723639483011937448952209317767065313311681779198213968023318610901663131026014094063383450981657681866005843860053678255150693845088590332514158774117563977559233658842407190786522594960849311458035945120114269113179926175430681009770997765725643594993577280308594426916652832788441114746708193678835516440626674662806892027899881273192607148714612395854376723763979440186568496925669573557973274001414130908598627843357907543328858131156149249951840607297731060559990899218132682825640620670105830203639745734537884493711754996762513375934042865278032123478484755675722278742432993231085097473303403167262166531978062270168102930695829503210164649171616541549779807289814727099045856263686194484961694504521776224791089418195616436288232978014574164405661930074368541571912926511971266671368876484201927467595525777985406730343188975318525786445718755613185932830060967906621289257100717107386789433147854684594706863532863027973036872346383798393860334157395328313754895804142533308241021792027867033406166844923812026491232983104158140775885512622168926273616531875161506779112919631287549147788374843798538262882811419864948635896927109629524234573075634647621638609503907216488062335093674096870145771321851248025215940404991971105390663784819256486658456570031481860469539617452511728590472481505204347215433544354990523359953925696816148853763823860914154684632489474498214347717834959289810283878971535535573930379040086538096306613512882028637127118503689216549389668687943651098666223192328957766624625787315311207963028114908022546478851621613261868709538175483604736728848630195231641725639856386697463418098869371089780621084749576544103803515330696056122581923227144372420458805105684261703296413679258806655469301095078463144870565200191531233412111941555164307147190826560515878876621708734711422411937252228002242855616780363701587253438982190498710659532609315955248934754042566869621765815890059342214211132354573026455263447883728491357617176186836631016320709380306973720630294533895348909745557780916309565393438116577628392800348398481174180229430943031524822122096927161145693331375431690945112432094290001976691995498750525449529363757064842703061161052088542200312679026565747490492300957061532003900555742500821464961522736073245422333354316446777040209177362392532666945053327078314924631111615602028033582314009613151012338267237785587423713790455481339579690049609776969877496169859851683382668207788539863299766527213872716899600685948156952746154754527882125618244048833959446782370090343831226098697107726234811672275516766843025081670590697300616183801595797747228269727259097628879577373915726390634610093659493222663080828861327998843258253530050454947254881419436068648459974511720039305027687875298804304865717645064258072776065604611422621058896215537594022267256036198984645672804925689869728035808233085555989449505465418688314015441210680440100606958402789477140582501961050678293256045994619742801118760781317403146277951671357115343975858603419960055043072190726461849626331729933737949417266739599329125995749015554819385979657434729883429162967163012428196342631189610526714072099123203033611634909642941863586884357779883495965374934944817753311586713166084668729213514678547076903948010734729511805342218666412036002254533684322658227455851234031384673490305109337798737586210399043576133760166811549650019377646104857661407320782843385558763524419548673249757893399091320605343265230389476952907550115729928834583888882989414880800501995161552095583346917603086365637747475768439946747210448982215705563364347257017907722109994905350261607292681897758528949375281002490942860895785661790280383989216250659209839352813731416949941235104882327816269313132611089820119217239266437752858008235957035942847031147379905038977892024322604566475910037950660295334586293232631632408016678995065831229372490358680559664474903683045391982678579377726562299414276544418858148383221731371165996853090716807336914575108249128477329675205456689067202479056450513884760023474211339170919027748000563362814022373357029921987312215579574618297698017659733880352293816500831552194334228621106892996432732486992726938609669465022270678455364330598258582597138376693807939599166231748241716587414080382529992361180292294483980548377199200240928274794579664672744145437814074116212263122228286299730446513114524308728344291101954395169526463950927943410625739308725654893554396687216906697703483393664923316851164339783438236170941631389185143524249037672972756897923908966928297547542480024665044266269688196902355403402676220815229890599638683932263347899043376492944288963426997393929256634859004825312311753361114945872039947338864537653880161526528784328635878499953827202840353189442647199093347879514125367240331194169127194468664733931338034546452554206711595936277448678887574037298247459836726170954165424427336993190159231230506741801970333701216516316900225470815563102535956963938391645687369977445088071836204986384047723410300372670306607980188691213857031396338956613189033827966880481604541715962537920664017153893817029295744691213726632004865767872828609207108277741654084935072650593472462341244678017946138391872336003027282929052387596616824249372400160846019241827497051672746697068318815603717453434326761391357150789172811409130120242148710641956457212030575405685701382556282678211008706686909558879866925590456424844163706200876657888695438263141228827493151936785521369832070689836516547535016009453124376238760963466118194099825266862426149016801065666001758716761054243781385393127919624688429447478785568837561595043747930043902092847970741240833015425238052380385078811475799713425656495693171625640780281294386413511074329429183207303331464724136058171881580851320261272683575582294619702320999025761887966787093815655490676749347297219719031524844913349096792114395972139421658887192669503323159514575255897274168093166929701225899372956792415081860737554936648710717282444514706878927164141249013504324740939685888407337428969897513128447014844393503185817991119435418459392891452336630337927167043947474170891757394267198242966831554584926334017443769336721080512796313089094782830932254527536531745671111656442651045506002840973040386568459797096875439170458650479715582180182525367138580401354822908199512064204622001511647135717198148911819603420321408840321239621276274715545337720613152759522615673691981675736853521991490936459617740571498668575385651239427797725193621156418863429579950783354638691822341175818854518152429810547063316282204760203990246623974934581373172740607412395192865728350498678632299729978644388754779893511314584645201893876734673207145877063401970524338447128157861999875056141513625468831262953284859001899038089752034477222220230479184115285830288865255329167142838405976321549747107580664188207897396452152949428512538898049010272357158098740974647504711472042617646762465521778531879804495974459493521831625691269088639395009365777866169829442822292544737047614634634076791297704995940517894858723379486983967282095683569211809094238686627854910839155619273695473383389295667893114439903510364602816717504561975982326468861231992798818874046055415316144291566046603792252190100849086981423860907044160236730381803314433328421401466244041318663222972672139086563327943052246121535412483736502288606545282937952937990726241786118904810012518658832074629781256819158779644635708453631824149841151013741672896014650179776443516149203955105103062916154024933373563572400734788302250434290801670880137231682801636532772434419465164635781774474223836068543647028479541817264892358897986346245831711814659579778673455196902172643678869787807249398125643037411815702951825213399854350089324025263984902870762329728221510631858146210933210942999023804132202717894778699900830176822284936056381969368295344815401406125987454177371358505371113836417134323775708298168636581232783687549096255829047636528670624029617953961006410171139904736194224926683998869592665551528917440329002189158379144084706833437087796199900292914719592461961044971067656760011437378109993770767606580630171900057880461557267579746117276881946523227714872734910641316900050230491397478864295360171825850352507760832319476274418857664593779975674396692942098391232439245970138298747617242772544229587007982480342006455375894581615756126380402748222706264748884087809268805280791927858482143039637834404210029871814026929364844318305724198308227328664137655830225124502145565232216039272238199085395372711056710709424240584161572373365762062681920697405528926196079995002946056828005383735617388256487492260940661904682542060138527214578300653170213159468182895177660600060238793213531748579717311543643137696042119335427337888249529711913447684106489305565785816155351431357084846052836960525549973788520620170786566629373741850445887323172099532094011238541882771685519018292688964839323355926914882335902907419047199463923944559704820662371149789908921647049073315288745694916192925224839934934965889352283951457334120246104684356560087594610315065953736750985305477937867563783976618272375355310146767791456502515090161880679510968357226187787290837349320692185579764814193049053782439747183626199112106347256189698676949114965687895800336060465056761596563896424120070329179303620489550163234045372034295939602844224132239561723086851979798106529849136559033552704693573299450069785455064265659687493955027918423768617014656040778541570256798993248107421934826586694185758857607483941478951208788240187743838233742579774918700455303737653375316459522081537522198867723578215418553012714408865184339754584752635478902206877445213989677738078706221126856336526762119438088374418658733605992136251829645510766655548138436317238959171134976344460918523568389270853176165960393580825193636505540762383363414890257576073794824462751514935266415338127584536693012772922444891883308160685591359193509349679653228690299608311379816497376446105147980979845917721221681342803625877315063706411849591187924433952351902610823272797465922573656096422149206769126162010128562918859934054180240557486430710198696102225255058444687995628254152944202516148742462972629501113745958170670459563816772136455290364479250822157689227793274608539921497438673041810355390063428613657468140130169681372475689415351270821714294857192368160608534409267383037764558311671754697941029696317516776808588696543256701775922998054334473571717094853867797457641507462030409372664961577130557036558473084610617434148446503661975850588737115121955857735592469886050704747489780702134920486547998275836904365213249881720591439722228744969160035786270837388924606153759633869999216414665851920529823867829676043837358351924117905848791136491444345711073884482894684811163147901363040741714251944501763666442674193826304265872750336958218236188671805478941905326140834936539936637487831834096300951016672646359865444321562582036170793385250585711630567222508769216686692792799007460099251334106946447823493068522709231423931811939475197635145459912016004536251390760264775634235760933698078087613687301888354760613619753182656019183016553972335241999560868982336781012339371396704365757420721105717737258404286694644284545896612448926086840526312068778069784937604569992128420377893621984367595142272360478092342093558109740950603601905453495445849850303327077834048630544024966537820306814251264354838578916239830375055510469555553247610228055040585359856527669282631330297209807033867137287585852900848554430154845961815335613604437980829802812816058268898909039542866230007623636053431725815290731031400702508757572286083073746046161526144048155954948260516414716220230351174015940601724345767489853506236251057786044271058991892327194260052350920552283525448072047605203816839815744858533619687189333343616414791877296076701214365421031632862029204376418439402307032706678288918213530900418037742388263124742891349586611503910612323422405754190546569856987260477487638946751408237539059320617414145503760600013257624592811960042973951195424245861034729296031988597494081419597535019478258986521192615057935977535203328032652826506994669922693698700431207805208124997137174246669057649836267304319256597328957667020392104266596540895249971566473761953047189382655701103533409303015651042272643930853027859355171259503046383131925262250902724721781493020508760695231952827263457866021375614155287083031568742613662921185622120178144650118740960483116715035032170534572061224029353910672232081483969110197538885997971753621889452671978281560546189782145500210809992942942673719192822743369989895834606545834027264711693354916609108515234890733587689508681736782504792801123759314253876789792426048439124110425356656620633144630614654806503511285446772769867798302166328634624830258863275421939832973074033073049751166312914370207815375147030962274597548173203870306654607028899088972657202158046945798254893886647795275852760620547497028010485874814230910762499630573330166888153893145675525190416952747875500287004066236741323515506915013618001866571746772067809415968605172531953778561218820728197854960922623697306778287541692230967523013747229899563316120987895822112093812764141741215428453568419531745838964638304118306971097785819670786139568273362348648158454457561786092007935495870133344637087586490000698651454853969669408741830230241977885642932782744943020731102524722795705813559883617802128694279079610437526382624132531385349461449012877047605502465553594905874409896398979732765176016007739341962063924480413944677692692682271535782215940155399410082369204404154731711155446733968834206782595593582039397503748484534914761954960912106709290413469724005043533507777888687577782103551925445694973553568966107240749118653570861944247650239119338381900736163873328227187712659529316110404716887353327545061691723665777076570010742356473732381572167735281239910547770700222784619721755674472975436568821726789815492458083936839991480103026996440700432839586388212484871117888724226630410728254461202622140702030772089016676202355534124197251394070909902848589375132058263817183984877172402303368184811654559015749216061801691927884947264023966583993452056066285148323615234069165883039058901823615847162809900990209297265039713391214836688920460117737735577922671947421902299066070748514533724312773455580396247607365439862707943195897020570960568028019454708037830501670534438977879034082213289244251334251457025568391730004805983954510327883142035026188630532004283272036612347050765586057241025834034503956693735040133195926031795813345714650223472777659325022816252073212708256228310813148599065446474013875321633164610568337941722761472443503133403131145634357118369405043763032645350801451042142346512335960205193444648712348166019347539488742995639613002327378903875311598815392939436721449481258482011908646485667607203645843685586879590031763688325434043677287210355196902600121741825004882283549532968465853351566474214427939875187907089830422002955775922444702069412381479876660123941671002937218047133330325286670882876325807564694699643861939650449430690471756870939015878011306380775365652219063986833258604103375518955383029742219425131078691484220204276352138594351459124751022720298465012691091941461593007842020404355719580355452874987676842400929015469214650383027722350692539706440886425253732250622826443743686543672877022541971935666597449780594774070587834821921393064491832423665979165021510428951266753061345665079719310621485897810859185651254860470420172783387792033746124314988126878356045761484270642913665203208314595011942689474867118527968108776198960936396479306823251983866292715953661635744974290681130985867957494394696635347423008271447584663235208236332295216990661952212335134308601454113353738524971824790667065559622870931850968246482570898779525373154041225397211891601329199037070334841266094020866095178453085452379992785884980232265767165306339092171524667790295239242843481331038326655910774106929346252485663339672500888944926437050368511588993331677531744725697992248893730981863426124393061519315634065647073781764305135143269198687939598498092732352240712195374224673164850342825645751261099353643032542089466307688387516278562107122223522963177842996682091286676291211259603460129183096023236803497178592274321362604703821646471349499609964914571603456277541179384268800118000740293728899256838590964224618888943814127119414925018075574016215921983814989201166005373714940162165467608206835669799087283911016527611858775917711606607198837632423533148844136001178904966363608528965977040932145848869432817731321495883781799261312586412533661280140281553039479646090156857483255570617150615618027236404593670329075373439473783987965414566382823567034125947325605812355826325379857165442861502577788018981442567407116712995300947619365834394481422804899131673762588492067694091360589203804415648617551541574687168251305576600808998060507444662559048663442987191075120390256843288128903592667596016033601984607761674227072142360636342094923107960479260582772049928431404865459320511476848358856708497657308477790255909836925720250961001002292424727249522775133562049889594692350530104790071417710659308391453510821406238325369401161511043204398934736570524465887499396712431730078056429178098931472986436466475089146779079554274405175073891642982920869979260223966320514542598942922925095615768940705522067978181122143302467956139224435498730053639511636916367089621335328614968611834982990764313588172322746114092566455630734894028960845082497439630497948674746763338977237688238256967814220959505119284832909493205417646602992847834094371111993414965575738267391911680286548914624211725446554074158889704368177312277752049641336967771596057263929802338765986558264994009402495519040435290561198921598290925656088813852881509254084937666677337619795351443407129246172836015979223364894548502934064958035143284617168932562527537620652719307967625665691510511014384097777446919779403273950031204522746624789313697251284319597822355509834179168260569640806174107579392352127599945461120966841633777072708749363588489811237263698711290980689060199768643725061192891674406179452146893667034925803309396032577804416384467138263804020049700053397402047211910228134176460779144483009417069032210882505226111730676013036941912937201909111632543426224234872955489571408462652627530323510692883479319467659307512419577289535692460344600378394445892919797102505190211315406370809220569070403409330365770449218330308684078069503057226262461713485965551768240555792586211939890557908747406984537270542783906621454071476702661488325063002777467844095317361309792506988966826485635794278497407796027274014392772627979270803384031908748507051202860550196395620309003961413359775492283033807683067069938960061368651189434539144443384755208090019539894456120259486841718106412102183675365447000753485209270732522280369812243302954453221704544326062787980640563917181662348333695858400739109748296994937611635581994945077295925592502304289511484148715497001372159097115493849594827995820598208710709541264765884519714877463614458655108634810883015979856499215016234422792388725816999702619658769730757025483204512421027013098157390432097942362789229810675465453921031804084017856689510018609129844172221844326563980919212470497967040469092613543086370918991086127726148184816023025007210786326038662744392344125388802142555819407533975701324845908884484833527950502960941258094693458299986987587401377047238946197386876568018480734958010570373091516568602650048637415671043920195046134513099923764094359442878156920794869002746999775605530767285554623518479309903838397666611257761030795010418759271144887450499100832269699458992212460702664895504591532182949756988870917215377683261014490884584992893181915358254475931365320330289607386482412890161263392796264245066747244355490152700828252521138851749919378506169915164507123848090598614518236802317527422677329912618286951286511581262613478668255492849242465892829781358740759629601764206395734572016022129448051569806240700111825259573123367797147200590444769022263081631055796722023386924662550732308265669875938745213355127907566096893736832836888363926091012237104385676179301008541401696384187070572556038063162894608533538485707295336724821993769197753032850245185667619624604541557532666231820431529653662700220761818571315573087458603263783944932111059466755947562474553946782697156435258323187830710980773387014924270962880762947306800099521976928813865020045210728762194035171451156645507000641964426919849538568313580698639311761676424904251751115778268444820409000317718289038161490651567908168609814369253812719405067742464511963933323605409614829353955568203360250461994172166572435008604742989838169339785898710697758231470969149312929245032543311778918448136477790462657136131250535237864684211610228336627960672778302817653550916440394293645217450769496839245434262528718827896587875635446345564941159869868663594516840472403702389610779074802243488518973185714707033699925403313486580277262170313368367585780419284995854800748410631235705678735531567051324797671851694543538938202931161481290776286587643371112141043661592856453570372959667327448661611246479244119588110179026033873383792450559817546809882862049960443805840194309766732336897261665402857300401026383027511683883159932867219862416438806664701978622753557635196528449833670970210478234669972635602112978191332544264818100500670539353906921947726986832419506322356004854590864986975080583121908930566312771706128755511300898863432092978653252100907939740963547482045754489665121228114430100603038329813740731125814368401959438311481518523032261798980223804815016616269625920989738368608357449949322542844868642489615122280000889262897139503302580723032183753338381706209204689891815465941051311029313259649267978522289856251300633379104181504064381453775634769962700919286273749934363588189209578592768515461450743553678008959100774232068553013134517100341007539518592513869314652080933105944548852385515452750835715420510982565820666727694367635998052381346933039866575867328210418123665277747757185960230500346224683313911778638044734599418324413512397685840331073075862668017141008472518343376764534016961630766990148727228257737289027823379229028349444635567134329667136322170103668771031483031595689969596323039394683813812545426787696074621539651152438808910494725827760312743092553953812643519140790092017763803381353753930029043157073935583260506480359848399695125821031833313117773278937842814754573948308842171869227985256966282478158500903909176983547557304790541142106470070733129385532347991518545448452928410453947770535281210546231874895177459094166681290660261567149198749993878181856414673131735109063595989857980365112126561399381349823945142566903116537179623098778274032447271952513222393724304718720903833166896832253481480468807448859587589337586885722883586383233383524522021938277867444992794485957401194819750598892469428100882958008513682994207745535936499275838717650032573184108161981765475146044433108740127686254816367652925785549476137865079787600681825001103826048018413678056271654231175339128136554613776898808822788707071961498867999965494123380231688374005794740570325762035689120135030071041431092769788150516674191717530189159669228098049753271000462398530342189709528645315241609228855927989374922880683967934549723315471412636055387570929772056561435098439259523984034813843832012322563127469905276155599603468273685499496492333173913283143678529969565332272842711962112281792294919536718239473114733852365090993859597312333807756862578353466651026437584022718541932483831826557944460148662325302634055533887172625221428785858243033851199119085847045034706301842643517169633994976484024920878684150354258190064710760287151636666531068366255224789435127517943056691025987041462021475211974489314806715029098533914185852650427692214870599493692245454964283105981237481623476205096125291798370454849302592959408464888315661903729603981405334941120319409397838384414455210402391772182690129660881343772141896977339379333720084945702963709662506765342582744094014583663124474407245805803185403211738768053109126526656369459141487018094916697129735618455498385708182726084594081195253173225773639446277355244948780959337039900614870192966014412914213866907094082545313214678173586399585743323214262834427339476173272802298481806157268009935635555674940435537012718949434907548290056436012685199447527302584224351579735350638072373881868474462669642098624898551092255410443224199331046524072391976315139593198880305761686981236408016925259960677423308674807399655147957004845019477230835584961563526171511153247942404896805114942788818531671913332045999297274295663671880109007872900846210905980558168115230418264000229963025346805180273103658426452931172102120563146965309459607080318502362130748485512717970041202852615786662891003241552233340498530929159775696395531959882852361490120830306696890757795086552091165052302444534389222290892586949726317425502424989026783438892646610262337733196259999773273366055283943043976977318516588762202980785377115756764354942125125685628873760917472417972244310219950986748494032033624590025415918970994016139799127720080553805966548830423258679226848641544865708881630227032595218496034000307718710518460859832314414112295023497703002572629867687820010027773679405641986835655404703261897666916918986021556058454968008352633263310991085354845755857278276605103351129906999802401647921183146888722360206423211831964088106863424679290934407290669025675259750570138664340851466055337799431481460690196876031510909877351482384914428338200901406791339443908489791833340733355190724076926676492465937688785780878155952241516559553287170493441377484324692042489948188787520371695801012442915718112801550936702949488543049875549796186095485891424521764833561841360691361228363034955503883718875683490982854106855824556893296751875046233804597924181683700704962164582789308105127975528544760348704215368329744400750516145019937157665648595115205153937841195377120201836388239079678447891675533536650322735298917425810804830028383624192281656071640110306071710028024342245647047410507819133208823610616569009566614538319198473514576637825087627955844970283382320195056717545852769669805627182427451742539034333846323972448392024627623667666417778129159083436055415660805014116273031973729807943834538367267597495300510184326502235615821756163783921246094699280965364189487474813016370002982745138498980112817061673331805622867591128119349982568001243030197665130430200967052054755860865594222600039659982324320593390084951043074081521186848578542392211224839782105231733872694179213896924417472986579167896029970222544032880990251735385167938262751432255502852615762792381784258295216713091504183559110532720670613644091499939994018217271653027547957096968298100820047512485704944045940764300231564885815952272299381686106129534300918705417976788012578485002268282439997475052438324473150343197161337087458303478436117423918734716099882378967398984186181413549163755079835698313497130242693083124141214390043282139483765284153383863936552281265519470130616038065919781632988017277163780597740597763218692866766235167306212679798221967310187756913359298363123090032336848620625283437053366893300047713046206257761849360148216236248113410917659647272032676437173296729082046814371754308455165717243556574020517964984889471310356278156960401021813647349444022377118589407561981153776475575330214315199506440494871983219015884901862050460749557930398350464398023518307823976427708167856612376892929809362345770382361346075456301874459536565645358110725900180259893231055646925964274408951055114089268826049097774283116334809133503786303562710997139101746354646405411208447290113799985992601524019554815386168970766966841898351627613190046941158662336880726314570692768699222650890159536588913454309284297645956509385124383933119239293995167995237110783551605152404504192761815480611690136494385834874849666482471586921369062809656143489036230169576633300735649868175466284855173799962599684350061988268050899467119065012499637126776827390890319709120905923272782010820462295149253112533628416945652456816305089671161659679314498743357280278387569280902493887609114638949807504155721202057309563228511732619218806617066648325794886594058266362142280616308785077259015644026755090443647704439064674626844360729761082349577076163284478415169781018725052584463160371825510144230803071998627494845050876153496484359812610113143610743385410685109814174077518957448882920912390978243342264151028350259030157595220032667585226325352305712126691300887038565491922404963377865132876931142173559292281500410629612255641124429846209342832599095106526534584647485763059727659909170745472292292449965554186832890095707498575038317562677281861640520279265518042147924807976766136740308735911214053798939521919217826029304501081833758202569440670894787743755392728268279769180547579665328068892370384427466640268118219739510851493490602078791483232955161398545023468283488627073302104459319748817217402976562425795312197105402860081845702480330477288630835977029884725384707726478277114848723303440203604383826101123611661600222891957844319827160900287479290036142186910328241784610517209111835787623543114072466882935381556614863047799440853389746196861112603275847908700732026967235290689576005849744020014074119981647188446217018971478831216446484884332223077520643052824424416137895098942277981662133837226509026335629554679551042741591827177497123073659504205459065251017184391457632572047861723279212636942383224581458234080783901226451668577861917548078496445340044713268885778121838208793178323088960633473295649437829154160689917356130798384706960021973780685157815853527286236396532221312347155291443527825060910650915580419743879939296232402897987599434799988842085638330836360938444595229036306531320084534282837434922446128295403010951272465142595155304759913977789265352499489585126919912585909603700704377625157591309475059274410832318709107391886942647626057333492220332910578995937565817459671465384812380035642707853942360957848450854246775382641292743481224964051603963787456113512986883696786113090829408404284747284626172565546322154602241057830579952024125743076851633775297730622258957973457020222322617014683667015392389057239088133266721420417831132945719030221414584745585420020434207279768532484356614485685873011807226799198913533260664754228617567601214113012696142434633155644314855622265997184938724672649421290503511765361703214591325590006580334510137662520022157591936502674467198552732672370427347804252390470113451203824528568636998999950751755834470339728507909375764601098789304392675453336228251107771454906647800823001932799039096892164890582292893301962358094048218320446865727937787538638445202253700738277084169034693720209802526182465637592709902734418084578742765085791164295050132167585257325857012845845767689812915061762492800761431776581955136428753954611877004185195848805914295522286628676148241713019797454167072281261925254967942569428152897640446555421192941333398052591696723069756025288988952475539673496026080729509972510155853462214249401908145953109663713479406988602105653750397445534941084948812379541026114516728974154210523404700578631542653827511408855392062843569006811183156312047351584457583674707059951708414040666211231131003998397774617202520163677309860381413530969703936186145786111651769547630237805647202608700006213967936878043838165304602799490365700890638963531329235912024060607279470366267954109531599381277986704419965092625494717502710352685725574734857102288787148450473059116640373636542007781233262292909131519701074316694188110117741501278497661293975143799668925577979115965492634015526408209342277462937749990832255856381146307568986357987862861561760115420034134831723410010812627130059853991594688523028364233931574927169969969386532049039525086888970615697849519224429286778153717572188917275142757084000881068977640764008554938528669090259025900522080010546689538393067604741603889579888913138451460992447669373070509335423172459439974565071024983188475836532056647771275873864493154408123112051787723326663363668908868856720702136039771002626079721522095297702192625998948666654936774725109909628969394932655313241904881763671784557455103153763428731644765508652159411461589108836395101898405471111961099780806268107255962822880813663295060401023986182748881040518399949624216736588752265931916421824700297469841299207520397370739004176170480077734894569272391041397532526127323838776299409677349942505124866999817332557845875566427721345580971652118117069795562098400716273856965859038061215300922379570112137369665399306276555348418346332870376013207294441403528254662972524498877168474430749427131238537334826276444992359854616393537395525833232970776441986041932119584996278556298290745934083919845100469508975772564352033641890209356153624408123125464452808490756224511344688431371543307090732163195383162156865604392362335351702173078261189989733310298875350057146410141937558231810134700563452901654157819241097237315453022213673653872599430887023064123802098836765060999279481617090971704312644172634956228612186665413533257765657519382619646683389620633821141121265986093487159034731425482125537819667847874172801334083720763215395752506009554821693274151877765413530695932481591157515389175786589942048443569774025878639015106604953299981954275965064199059589191731841038296458379825258091603372025191050127249704275883233727673268809836294215304938232025928860999470528700726928502424330237898248298642188156897078094854366697150834579958776197394492736653298511592408608099562979379456936984378642918015066279462453569415848771867396136093842344656051751955944955121309879213531505389351306551293882044974794992772774328891017448352610147052616685622429902665162789382294751056826715291279904810428953786513154762572440227711880449511165389057102345739296157326960066140165523644197992238812884760783005916775180677899826691027332837703488429096594793413927931884546607173934233710097609045109960471067996089263136519616572781476822865316029191017177322380312986505611328236757881324171910226179582127991497445746021247485778445416588704400681015242494664981782496722588777403747132569201679283582074909464705542660961287785408269767261270808974220744455242835226385636928856688384128022103246301892713179441738421093856630756043352481787865104305341112334786647512681219145953476057118400004958374832579629909935098421577976700368234777409394893651236647533428086022326606815401353141107747193236942814681369232939166140361640566172241727243879648478093578231702946810258255404327752455553944986011344683232633917081687021359292259741387256219117894453104529040822095319812320396623887946582065419473114561700335272902449043027912565604694176396887598719062206044051935338192370977667025196445999828575660626427493317009742897470216442920293895357638675659407623451882491495653382895398024159907237053931636452241248739905139007944450978534567404334102709066839234932501358024761329626857215025931639234908891912240952540531099612742776763158909045460647137281236290884669896508334257236085504313773281946290413521063455933575214988413457163229114271100058945069673529296451820392416592100455553243608562172491396551480625622304729398546639204362442138286878982731040327936421556530280950420605342375559483077979248218462746249306497488100694590171662499294314842281184809651726886787472707605138130737746015748835206000288355225097195654455854256752615635046125818265862988112864955733406306534875310791090218136159097584082985841846679187853280833247680550249835063550116272660381250469239418151256976146986196468377884302931087279904872553111881918623856931113522826808518616241058077855149899908254266407179857018131582660409079709746855971287500128432717389133825735522388482844243809433705092185126596645186842783734307388153806904261643468604823955417296093036926276810834452561309062982605657238954986715790490262683980623621070939185246061692069633609085994778502052008760858980390370428734432050013238850452080234012809017970092220357882054072929760224087278098412669018002129846708908195884637160557769404203373163677419970109172024690719102953570898120834221514472645776723787581804022872612936752707790887890190177234793343700058083164496369636601439645097745244913899844363406530760010828573560771337422336153872354278607924689557294144326333880607436892912813773535029631979360067848992212839197163550927048352454054315911120719827276895150084106374432648725086363169866109364841965736228830822798535349313796337919923113786713155710144270297897766058407307088251670188525081439861972892785296316221154013364688192145123766946545671576893084069098309158814179280915777153604714390519356144208825553792144970775129105740980172482693436035199690826717782182135305729765242515852192121548508782660123759320496188187708626138681346679611051459068739678772866961715758039160701102191736561247787290261141950380791448835698900698765832384238746177009116921152034042918265658988243370326733774414103517672511868031021524735009310317447314155993613644146545108167434653272062648334179435999296166753548666878357600952454525069083329226521440444383476360161726456911233572392182115408748830254229471278016916668594450167884422428455021444337419933793750011670830647662996962145905040096277191336528311954148197777509979238508105752844059786438795260031219313749536642330762523297598275825967647885644303259436102832547848272913452660182059635406586467875863167119462093485787553956200747306545122443580114927567579827868772607654883241772242632901649640668955914878599783081070174043335289252423193509432896223103459146104238862010445035768750665448858352617444980016781732860653334324157864673575430021087096665933286186467444288737885824535858145720586343578501150508153725305870693006835694795914821599608101242480067870893251857267178705031596547141375433777101090880475121538525756300865769188300745417073912961387606462603824688088630847483324405748431175251305662673567760418170155397217082700469425302993915373204675560428376675061965805113507861077719135805709666928783593079137322741321474628968782994040240116433817766405953751941410010493336598721562494406042719862287362520232754674303865033685219372232929727813406852353397415606574505131060070096214853970908035133947013481518024736533217663215573013231785993929858409488157193003927532832269411201089279629634207898090190417526901044126669296201477057309767649081543097216642646209180455570860586809322356261794441426143799922765535114355479509100587711634125309737999743770784503987077853701046044037027558781697357133081477008380098710103912737435520717888618031582093566278501467814741011730134008838019734064116688271470551776984697992226689092248362820332197938005136463618644219115755446441344963771044517149880551077654097074543576345636528733565538967417430303792318564679184021219788221552006416268010514463404364118142719294586872934324584813196947062367698372726697460576151958646129575928761458933804821017180543351205037959794785959037084060972072116536688935930674910604096414766788617030804813025856740842847781574350828867589838952851427352456738872535494140027421828102992902824390525036115801233383425279259916295374431036853063680813781609236533502801158857497335882594598512754269012700829811720033667697383639815850786008499109942629996115294497155260026427478725058586959248297153567614466240649893946868200357020851973012012316696236629492831090145774296263414835604319847471054254220313905294736283098457881140028242571555598403398796434273457496621196668914675536503463240432691294699276828286586561909116814911923914647012968101393578319998001794988543236453403675339845076350152229419929128141389100007130769395092598930681517904527998432946569651752872159007706863003060912694214347848968548958705359791277602184857266427610303062775412505399285872650028830283020355407973583608350026418471711110627827681674061124034849135493946574499717814146967774140616476349136875906142604281704893961572444036892079706710402495654989538348691787308267636626768506526353920089427482884296353175032957444563882754163435758407370985801147528255869178223720254968349601101663761793103210476157960565674882504120276284945224278785965178976903779671451516459291393323335732936183554828180029563622323978529678637657305548690846773513717764430689581316261793482962183629764697551005773265761036318214736585462289415471574284915461093616733496971002771807806183955778820961524234478678838390521815233204942181371672469482013986825131663428823111734037074835153984278863659813603274797277954769233630567290562789892205233218259792424708985839834873967160324682987196288995441563726842757287262037709563964131486667575211636284920915452919004005816167896220452276080509503297716083295392961867997779589965633796126065357539743293254257467737044821348426876877066514843668591684939885079389287644858708170588973658519958882806334621263563270740268534894351151031071026883500554617276202969311329471947699784568132035389064685740094606858986921161724054221265046094054892672951048303424066786106155376325446740583930163421641459048979704293556127863756726704282921438818532327551409595175029656628392458370599003492665468955292928572780405837647910996325618259591674768739981038039579409783649598343592658139675668259620712960557978390851457475145296934464076980522487861139783941988253043315891300554828206878705699657706647217004227484457432843300832650517390519179873837276856029356145575706971563213949532256412069024037545296879734072254466017134836102570330410066791096597920246932668019654951763920629605209864565299925729985830085390158321799635130255522176110949239673392636586179684077889067508767897841128971157112445527651751280947788047110558712056055036201483328455736077963660689078523897549792632115302747815712894309575941425165637598250528194553575644904713011045946914931899885355217666037378089737772027975603510846526112957850046748732266548877038860935611222462935031552278749328222366583265865068569009752995770788047486467699614772418708060914231154034152231712878677875859743367884610114880767617026934894426400216576406573926155198007097320073547208144085638089632234654796615217864765181628800339547146351890544595122986466840648565035863060886633892564352847011397579402436676245374046947744168207048785137899739009776955187204229739079365229449621334767931751157015185382599339853176487572461645284668157714654230853534835541389853201651605666050308931686743187758730010619985740942619272655080608973312329635068256974743767108245119883344774236248026527193943912865519237318549127913863381650500349784638507800796978672374606486908464925407371140837062510742999333272637173282784621671576060216086044108901088329461879122922153640729627474133251242996003793163320226216489249041978965987981544858634909528990280791032575656386187792012943729005578351323017093745682873124526157392191147647594773616004914987393799873626074791098118811080076516330854077988831063296636994713033115433922675798736290510274600022342197829602432003781895986293109541763646393043926870404192591925935363532784535137719144889044706734987440482743350994039416926451180277172287572650919045927206560475904764362758392738211778909623945643553821306367251129892420306547524821823911818265996593914752744547090488893572560634804771020044133352804822651260816597793184943481966636053357713310787580398909326359842409987822375373276439252702565310710105670557035264821900041361666204371524686970714962399240110191306202535856029493349589739273840037118930282508519082244871503779774660249578058174196165494720558333546730992919168916144912220207118274059054123511868634587592852356800663196609177645389613319117076509416960721480018127360647461269828333313279671077651999908329412578214076342801912023897774272922128268952612683953999403879763191995396361905079979453699175807631362199549789569559612137831887834678792150979345592632115494280340237121354332117616027247600625483118362434123676280008988303968198476698341511359443833882495966074996108483305798518210112347039071146489269837502440968047734172925324606861717139590024372930291836340574083270459925825306976603396890442497162619130052262716714339227101214141811884226551914318540711408557341045874154487184734353639592767047493105234784876378029389852654988760289836384368447011226732588567080058677592179318863449018128219916531915419197339669761546785791607736647667489245311407666862588235733956903986675093231927959880632094577920886174194733201342969470684593162075124633160100087504723217155037003168964895729489255990781935184808080743319358943470778051291660917954227564385591345768876559902217881398934297553299593240303607344525947250378468861397398564487908965229787381750330619305888573526063025912194103503156601322438458005462624540057057329332330995222073356464638235136857788965218907613188676871613575359219029207961661042195234287445783339560812066935515751154887072768967404808756596055811035173128374389681115023762357701612215211245898948705338300110277549664618765235603353924784263661982439263607654386286926160265128115930287861850266774305181203404295461080410833016800828356119220835477831675801053155454390900767569057869829447826538824761255142077987970508607628617962738898515732742931716081894805893580314959219097293569957269532239404489902469614211271226167010764807370543996316531398509054255290764229546652712434052055936484855282910512710088100250517765141435098241305756519231159286453301262445957549428341746292646785490993139362358093514772850639496430729761660824090617618312021658018806184729317448529627183867104787037337810753993844047747579786249536213238367577996391427750214917166498330566037258576410554844283333135079941969678877692908314340264145319161292924686720754536290289397534901879290688732029548579009209527959298622053699962856517550622134654874427005801269842289431326822031434637138642745767613195157658194324172888693477377651641369263239981256169308762626021223569512627654708720702173551937818461397200590080053715964294092302553669610086271827880041027873809338671236567368265038798463346600763100766347684738872036973216190931673306507329421089750591793654636461738348825733967372581860570422540148067589144939308825417843140539983679247278317464136270956353350431465269570564228871446902830000286076780323213727143779107535439180989693362247449956460528617391460248171086613040945878426708604714517003099007914068234231462944806497063820950336027912992755769167138860626391503304080717006867507943112193323205914254545641833121443335812841819139242636996017287416259198491403589317033330083088211169355372537312970606267811421426101957164686130266409772282178725827941808518729392742739082920811021848526699595359233411735575094448470354307723896635588553730548664905863625239616356305879412245003439209605899605386317533352878587545167063136706127590183455474147517869758900258017115670887336096748627289515374869794538565773374799302630314276186492155826272447653943207486368384313415132270458073289653976890782847191532765588449770649857129428549049772295183505461393840871763731150987898475679474565904646979620080049967323179289121016722349971566494090520261190682429981729573738501206219071246909869443554941709101696565777226610651123522772211823494579297847711319545902701109740438702388677207420891613434413166797968442883539182818792035309228351533730405251027961227126972258718885233103335115744005588055581624779468329918648789153830717846127856232791210069129065246502982695693158717512387276296220431460317618196310732153104353394373825015770057136852379080853390944618108158390436444821577702359367996837532376470077919622817329912841489927955216175050379386296277773125342392987815261496064883154620403104874988489067335934699723756865087397619700489129010218275653204164225825949066257904024205497608354987690831121439315049408131774295887612802582388272084521282964363407791093686178105739426345953397396507726746697962092255096660517636638588786409300086874861375571137478248296578230036351349541034897261996000270920832483101177870641594784743328781067804482866825316836614870915391290464567289615741510663711527835458929786620821000399567910127581792710402216222732071295462436002167653178479661010001978639443018835653945428565891761125688062295923568543636048163722217758805112138369435096749639803756986923593841149306978035111374084218905012531562892284437068710943200242046935224739255283019883412896244686540319502432973188361121385975634700603142376403287205099208545577972452578210509094258547978977959651180514261077269008150942646297085835983881923818822253208826522107069517823949243583385250523159764042277529996018478493299021291283575610367670323891735534640647686581518789827409417571355118211154460838674964312783283907459867344647606614647411720600818163960622962097026352059580841925842357313465876520871100223955933259321215840270656332620591958948820137522658607547500310055362478580002786518842422296573231474673702189261442176834817553521930468272427424085529869718625550464902601675326430920208401095260056452951369186352196177412493344664898685604775408219423133964397615907450352981951253686841038357717560101075759368044029905666341763586638097206570089773801099716887822581459514984930402625579721211073248963814439528025243876542675773871600237301562676534393394191480655898427540924673313297284398434008423347639575953639381696607685655249213945807051706574589294543202466804224556487309051036234315344834719267514971724267372242663770826326726045151287901705147898904483387865953269206685660344055422222058808565914624704748490479144372181153010031063997205064251456822942475720573185295548509392451328696517454651758594629263125887095276187673412574706885386328295777237819826837838418922021550385923269826196054975223851091228928643356994293096627737505008280914340204778571209867834157207867547684637318516421404455395745373639350679240490596997330283556520987368693402755792619060108202884170928645937569481393353759348680896191691911492915630850827469670729772689004092973924157858400542440201230113651158830830463800382130401081201234851560200972710933093821287445669095734602826348883867657285825944456074328809306818537972633256097562045540594482019632851813366458909485404667154665367084052733045870441122842823988331493434500607987072122803417256476590460971598666782348749230824601164396845267695324913034374813380380800480877539119733610292158117708824360048274433855952730138176522806464180249978685613715331006707469496528576284061201576650925696787681469938225825506526175665610544872069590449665477074268347254391652755662104531714505827510808628413119002228884633799584034528105482216680822350612575746927120537291625993182575317137374574115932854714872011050660262515044415784955112384833214101705447253949609244067893584668086883444473652363855118520892692591297866127885740353494161697489275642247562608080786172215833702325041064811331417495903275981682781798677290249678594441017018258903624515629695228208804688098311624394013876739650729497588772462082004711849269042260996711435396958736571033703750267687922349013730198157886471877255520789239778954903763200085152127920588402414281591714411683517456992471427813035455164403802155332950754850491650095468095561382494804070197596572219236737916713298488330237790746482112712146871401923489365268034079606253597412338082190063200514973410473138536929826398302441990347285860684288848341870139725018382254133845556134057859770844737869986163383041301904496030619493010385229590816599668782403406598396756078299497456248003121595392090580737269161841110549223594207137882631104269928061027459245262299184962739986913796388000108337426163982018819766099458680621946682482828918042114900360986054809044790369985263656139679476303414355778808510361990979775302294389642190271829689696942672582838484103511343085548062718618660749868173120194141599694048792296906663666810744045348769769657732650390984564103931889561345209587629460438726041024811030118286674087655507567690813161538833687461610896668390407329297948273053115073941095784675046900819630081807387495885872769548991586341479680368133200305044835828789639866177252670522954652322003653695853989235895414275746010919319427669350503373595888617715568314532864732618683508119998607309039074796489220088482990901900016338112660462835604874337257961080381209391715629871875506872050683572016887025425824787383040455937372982799330646241305949283312615657909001301535016401738351591079249969822766141026545455715262156144166006645427088733265864989597947851739373477423030976145138782819482169368100826112937414711476117501315709694056918161541487315354768299251546906708844879219826698478908975112425362422492255650558999099187994475534071997783355209302742977382222838885074264758024406374031160992172818118700124355589304549230745407922863471810329438390651992826540446904718027873215269022901817102869635970981645335357928475120597967308768210662440850180208380439460279061362751683827962526136300514694123505195095821794102499075393198094779198091880883045110479663562421137573712338480024797973581873646477680276342385024743742809344871306765233054219305811635239537900126807255773720875780412059792548373683463667800483378249683389141240710389153856506134416121784931672502768507478013007337112836088794338682797578037770632195975951191676457328541811198169823951938602452808120309679558527780755482223390636301549867250158066147655778351108032096998894469910420405127298964913052380188304064802658944412818829816287337415641501904525265719860131683162927747709181060282768284132963373420571020384320726931568084023955281723693082075580638453283591366348386439886319744422663194872313564865018805121347941154237880577436060377628903812264184003427401452375297422256778356390508442776590899895601651183387502714398835993304679255270809413797919089793293527930209103907785613790711690057226951051560009509123970394396478500295991443397890489435023033541659615390631868317135842793192551616432668657837703927010407868221692200798434152847263812812966471735958490627737671029999361125026010649907632773850085498418800443490236038118860490432739424999033592523756538659829302531983214065030786431069074715641475691592730694349485391253003879662394369155859723961901108435227909757813061314846389200781262926138879924972127576118985735852675430820369315226363516135350181682796713454837570831004034007842831598643815248262219539849691269824467772827422243920837242866863906220685024257675725021911388193222388792567926709920583480065270976305908724188808964462148448242932156321708752751289532142868614153091278215338240568537857309623091002233693007439493347182190079011769278270111675684238588553357573902635086885352910584306482693080020683122261146573851342954566697953854963858199303540852435900270501788947587169633625040783693986628349725043377634804804081165839437028285632004858106629657236644734529939791492945281250227743475668366665230119155147391244197044387465048496055475999371957871644255979529095722088516816995747525316322945190375535086341640176202619595691869682721385691901666709531371633868270292201196193482655756141267912133252968609345056833243268593957440098861364200288884073147465946836988731760871192790525230836957937114910872117354892897323212317912421607149097254072313725073563370086001402625962857433399843307141091782440710369775760834917073368918810062872894597479517882728492131694780479680634771078277995162186765888152144082416738284516536225825643680829717639270599706509379067054332103228124568155401504998413281218132987107867328260255800451681195036190464231176617657577921369083840109913611966137967766704255164310561791576051764967514064572202436419250287476137287326509652878623460080539291353672060947920389906832498423642516231143037831249973596231449074261005198280061065675495625991272338077353094698805422837829740551158033094037264342267484740184309063376314301584074425102458224350294533569505081288758656004717576027853275708825298488697102965422518325551422004233645668624059886635550307727645634866705861181876281597519020806449100279136119497217539747781607456765519059426670135808825929411695608099538057029083853461267470777702290556134265823365803510403127413119356639536486452095430196240631544174056760240973937472388606621908555605996352533852686315189677918124431353774370234697850543433440494551125349331316996434806733751941084349144795289920660039001658380804078016722031638932937387238423381102422608249286018364375317330280792658201698940388522544824935777708823790120202378392043345973478080301832381813562016271230194322907850592226596612733601627838675195329483252718038987803922791077940186214201023654358800629620462995203111512416953791538465959143214815856970714158995453772338774807242675730932681187894639950297018418509031913413824073381064794317524756614593293200071090187965929975576853076097152245559105519288741315355055405930238629258926587165872216152765950205710538048726283406790204523256900701847326548129766769583960069315025878280058989031811696866114039897107293221627092658159242418400737345025899896508127106996819666570171058126100797372229696575632505850835433992418946272539082362315401401174091039471823461001488701447240641781739726412697532004298304984789968454092318089138380571483377615911701249265030898669412570760333391662106787164048859654372831341929540114069859914901358496869931560931106879530252843120396972567162058984799925468426900736457110811709691572888079437989175966231836102002528350755852962729895935339538579573313262786616476742137546884246158774664109977256469519010833017445342021418796823065643853880138189404045632773355172314268034667843579559470547481693271810680772470647836578887807751424585643306092956405578213678339897240530854179029418604105663320828260965060759290863373495690919375581646583865382847115697495128881803324821941678082533840823724743839553867578427216101569449531477731443793692967079029733937400522062580659707847621726818128151006545141866285631922615382756621771229224021194182326914557053270557939523638203834876408977857443867493529936892519824818458719482604543162947761026962423457696772926077730347079513515952375445722335102765609408226684328855400029740034511816541619447120654915420403704593304421687822599565295654690375840884629494220110245600602808767301746175391597201738241682688961374930476265470037714886939658244490549097967861093685473371557048346137643046636897356438342687190451224499606351335267477555294898235291286683101211090724618500810189441600556843564772419551085183511495717092538532575530205415851891533476788080518525677524743148659741962407774340538414451332813783132676587681739425898907707461961993226979150399093462101438674679849104825958879114305554558866915492057720167804176176598248842214517059058491169572413649826935268009251678434361184338419474757678031082221878176018579625823861808979967745596871208054491355994963283209821107478411539974396167901333730214771194022069554741576076544828625430531817941385144761214548864710931010996507884355310069620683408307594263102409057779273924892243976938254326335057088163247534177020102367570447128333741261418971148652474544749258068994296048498277431943452988622572023840703161146457009641789071380268649763333070379871292355526861113552147520917523018974682653685587447216987174082437957458284703798450915259526181836625900551143893430540517432099888751889930240804708536188805945528290248171361782817740138250798733263950038741216232692992211511998783539941700613602448218916120542817040920321075742521900246172887721714593670815600082935145086312614083351126064335695674067215611555747464922812497934338100918120547657476712023127797148709942006068121052381540836740887623039245474219157239657261161604994403565609797279809733076085751765373511952449460163369768346426576274587920530781926509436691545083381686561244206919312742764198243770844960197831418381020427313869025549907670080765109571455921371984167166461270999910982404950420931793826637314868857725034279945015363404196192967035827880713009477761859723852922633153212937230366603119554714260479902678083352970882294929540646180748421304805891981270010731321626516114190489379912928143896972215461904828960164255018661724694624494960932470535246717583169377689044315686363771443262491167771249821444319521721791617204117937680534047980157426511103427375889450037389957657655321797526261396344677697862577322569057584792476182357212457171310553394742636182918202386321288231659661491776685341640895398402763457085210924886833547453753823754467976103420593887316529252832605797753263671701272350946715924502199450798203647198884027279416961979285219588666791085417007131821338884772938485610555019314951127933912074112558444686595954547530588426619694836081713893156527749258118270096519256509461446584454298123477750670214999468853793044523042797105797465519072381449138834387571935725368258137866328508609133836015615579199326488627053783147401965933193674594587602068324326653780715297739153585866476057512130232500160030424505963825381589368889813265783247572801168228346920500174199103460803269814216442025010645043733313058372427861426750541809614506475954048572390020242242667631326274102763013489176032466498266606613094640601533679749012929421501572040265470076873542927512886298944934115306215968990294189288208997179719280071455766551239849775011228975939781632532355300246017214818791463757517079949884390756688989159383069217950241972757016756554603097078084027047811052550381212567000710813879540367012537959819439719541260555541740500994018128571815351725016166030553515642420173407800577811677495501935282100120347088602369300397432462074910569286399619290894224718959901063526755173863495020695818806097547730905987084451534389463169346868245840833085111305241245776996467319500396661635839563427838830248397887718067749865057197943140526556050540545444734001432243887373123289815075791187684993405106086433011681967030406218359387241963318129613673058927667018006757014332986147466841167517477057988979802727172810466184336214775353710543239978855944467741903961984971301825584535405294176847018361371175729197423890336500507282386672113946823672744660747731104829132188577716445479879183917625246208677565935379356108397033226378275553099659953774774320706851104524936885969088438025509063894336118306107213143792892682505836915969745821806411395491244527008182497524952992522824119112294109703218761999833363182414473361731477049633661372047245690270302373746770487214755560526105488252906803095283241053066228395043530400196196898062964295444361981598444867434931492842883450491033074679535316772517617972085505426543433426962522744470012913067473865967280298275529149283978706308045247822945810905323577628056422529119439253722033609828319104286451223219828109934371804424599841840471572832219344758525142322567744316274324829487171272413565439022599938368739386608502724152777051743701975039308969491022653343773135597463671340932413986095695052143794244600210512804603621585653535337281010329649993525177429945357664643877404566445659209916760094208016986790844591399237692962863419791206006401579437885098055253868192551272791875505495487313078288764093903970057482515107743027624454513491638396590841301591550241892539911811234525026995636675412062791043456567914900655019250218044474551601703357734299497721066245253517517895645556153308802611852223372897256234713401784596945117089810275065112287976844562362481210951250177626249280967929342385553687522794934023547618212866146843431356083572527085596725363547136177872208080498191648819925938700908872371543070550417662630750090592947570221070740628337238871560959467566912001074676669283459625410359469472879166847224703990174858645833656064209136905409259210862161076902097156322196771807215780663873307212584603883799333032211016362360655460467988708057951894964620851508807087961566532671956659304097779794444731194303882895235295832049631672710124660981276803714301056194313587394385065173031914099659953697805904743433085895228431631333784498701520391510961932588554109391586217307816858723310682557373067794004033092535011229731818661559348536143959711541311408117440153895104497228551233013020403649797254406306267695926071411363589826198722279551092609359151242829689993179233550209042703353248767121014893679334927289013776700774956852726478958737679137200832812351951468757529016690990593994989783530874737402384387045293297727084930954877919468765756654087094986567011936984826066537435010691759779980047895763921301680177074201915111618601951649891109146168763454092788381157288582617048502770730692795474779086962606823321486013784597432777997565425691409827594379892893816605882305387798338815446819472750033544599905589359154666698179878343915018063610051180658913862934235707573861953985463474981788070929117070087420639252069162490908921960058858345203150576910650899949022698293985188904816513396321527003077618652232128890821219717088692898873751610269208800973578544382120020258536968080641736646776945439473533708957898963861171621291385378715495424369533414312574797760405324613865879841961261437161862763600133435113331158554998308371088551587417475382816012879180832443967415957404213201728864260400935013660198987685242035888219544892358002619212952397731158748112236416070798097379315068672396657704608496618977698959508382243241842610338363056084617599376982475010529606515742517849561365610063386420343181741275558878448032338767196281339764134700671325447572634993016035904627859382887599545605218278493889912598211552582437230045420166648222424802785478688226316042227351400774621636678668024208146888168659227342072598759374598045880613803568674305929384215672412938345722519545544418398336741139838103772747203733782241743961576910216751292146024208999920786356420399619668889843562035055195500900226974437554326623338339757292296560841155109689102259085994743452051225966897888003755500930512203510107410208881276111844508196697780234685468030165509781366378223091554154191025689777535296971228190825221900029022782193876902061160960106609907260472316985685045120592201713486459792215388282728128627434589711329517100372665906187957576460351707638714040392756475707789898047330981406081357193130625539785989445912690172319982466583415010547212224245115325587922672461422037255629940744100956438729647986913702206919143092793491796918938779780365140991870272239909085928775145021346808795144041150254391524081203336016681453116738542623152542763812691755275626310980172255152088357749121134670336856179798487560028809969318600210989434332563186078371474088177350306099536969589945852812380292818349824836841187803724269215848143088750223319287396640404546142602930696524438423689203248585229625714126639103719621698546471026201381564336767270940937673984595569461444023980169867251926490618437106622276240631062317077459749386562151544792530473413331530428590662974509812892741817150931567102161664458436360067410223000543257851806221727540214095233105122986234069081989182710640626174737164115839042100622666150205279794049925282038983526409960785804530386525634136141359538761852599241376630148837769116583467630551579134748674603994865761648430576816194360805755941332822838604920837936993645075615933066247145137357556958397687539240572860070701219270204059904883911247981883776250752918490287016576104684652346618025582664676639895313061321191997187755931112717277639492446559145837707996075297858225787085279277678365787878377348538449176765848638729268261763554053241520975098280795585496767697366756210761238413386033152848429266085857495610773264251171705114697306336313878489038497628036778602456515737156340094482506668193194357190873274321178043783772524391140443277783854091847846051079482714161455751657086842828016449998225251182896631949185789033522929122649488615730976039803836031938067880587072562695904724082558819471960117911935997352707893168454079971544847890983078233283728607079017707087504103288868542277626018741291357756366140565058309212799871021031220882486472978185454736560096621261523495522532921892920763587646283110900653016872214819941732063954959591118020571928572212113404656077767272832787077063157784817304475440874181623522641583401185782633032058882095932555395794582605730674967336035447340454213314553763210251396936476674156434180032542367999740126331592243521389358207905544357548866033010026266783227664365705881335346096221248397893983796598133509515296117137680174672326862244446120921171367384431499554864913896520324483637287845318334578273581514861399255144512061697873812855694764708538321669922042050572613248582005256628757061223082006467708364703565006644198952038912686849449114935299971001044606265918623156608403647229933883882451478610997301255177575267349455355914593981198521924047084548215608798020495743890591702417824365867439388454943887765050047229679262592103018267644504397700656843464631660626682826582549606789597767063835536583675323178068765629246441385441975288301977638624853503821605313575912540551221768768773805613685440668433640035082230523185953778130177009959202480130738489144300744252653647769958511188265424010870865029925521257532000433013330377612031262616321147088006672625749707304451372846475676243525024627721750426336227207026758660494413538690358201071257791520796606861194677284103405936106420929968299062405516412689426813975285904126692594057105925692825872443850082533206398206363778673984520077452925822720737270675370223690501527249350606286535759022180350064336083895047236262973400018243172303959618018605860848349984204843410962000781762000993268968515712182479057894160388840737374607090312278463896212128109887598971621311663054191299766469174544011344852569124162067594055477570095334540263478190961989608684347726587828738402309120186067140352031158635929315038085691942462538772961885599591591948640895118658916724557784372441692813284415485250603350975639961653164470770413229578705541499036869740238666554641869356873708705165507202618741406960184071567299485888312682059318679158746436652882882895604188634027159160598071100956215782814807755677680288655197293862351040011555170262744843338594705549061467807013791206378007607627581500675403271014329135070262174569758800845009150854950505926180664376172621364137334667350569450728918624603492954459349657197626591167037361408802098624146916679261777059919496995867738946832434011230102675784610578906988230094113081434050384437060127272914015543670170919572547005768914664995758389053884391132414782992908143628551794374844982086998443958654055576175846081721582188291317876815870943939772828376794905879657792447585729438960509828628334016537838160124394724930843665660417128316621898917367765226421536046292368459508961110450280699754608169123887015434413137931493953586638406307241832834699928247916670820627415195780294202114090168344004941676550407903947338234854761474072451932066366146749961522277318127565444081760707738115362730734492862233315189123597132505170164274668896095784321760084609919740902498995901100051814181584358931834529774880905114432687572594202123464814312214224812816643766576043493321686489070548632665715520884975354749326951198764370749818455794500475982396379099440232383852804263713388128512122237974943661738314751436700486321883745389526973653256634746219843563751436934807996398239347497673504570925894627059487501366559333664899972638223451213515714581330749209263809414887704247463578604792806948099213420833126403519977487050330738839062236924744102971519002650281072454821990578824572568825896244743952304273849525634014030596491837507556353892656155792618236173460204526579964850013670002549320195645432461106861188690784626942564962170821743753923599689390881882699339958766883544068746490541027946853554795996193581141027326264392732444293526249629906197464918998484218279538772461262046446810895159139447067462562958422781221367234810099678611123654358914088201859766563799038188054354769557325186936904403424148528004593929354788612798860367126944749509397314448019592047939548657056967180642927181056957089523130847006215543098842289041798524858713516467631906171470252228488646880774132567263092407550944260389181977451632201273413876414149406335839440246282179770420235477822147320460641465897600742333012534498911269988017036198621687761042436218205313196634610951042412727905206566657032589966777748841488911512040272531296801868442281055959854601421889011670884252056906740268354034572441186850768023642747420680953138248538840340788675117653376850737645008302983299444845175557891321041527434918761811210074430537841052531560074208518045599732668577130411345380419539044933739047044907355551601856406381131683499994054350490835108402540530886009594451736662117131018584492061596324504329411419916225650012598052309780334579831119969000168419065664819392973349637110684790717763745297844747237885782672007755566607713555592753332110977047481040843308184418421088414050729844328142855424689393816960681895868045211809459529607558399577714390712912870828885614579627382280421450875837896870649646554645147517708972452379877836505981401485875748598656700849482031517097739902369807283593411674640593342599029653106441318234520613640409777196990505044449557576711666102905078664232414065653298194563758916971540965967771836414795002730459523178808981126721026324154451516315653237723554623459741782209175232842722094893223780714037514862942161149854040050108587486755612256696267953984300751863536423482116686342016749564419983627558769500852423316490005573330000316878933591451781410592232919204436227270556202311954734640235177403257943712962131008100609775368104980757794256827063552187035933395631385363485835107820894173820677935571838748523894284905669704534699409857278845219548828643513838633392747988396667787584345282591618276720408483694854788015091521274377271144760665680481540726066604183879924756920412542390680824505060979739726397447427461241625177566981842076115624879650354949066650918598300368781891381096390819941183282975896492007751266659027841356574874033724005212661058828598218561226041746785501337987693266809389468738947901056262269101295579512068402249714637179746097163500374576021994504090936741969388107333962846045119584178254458886488472887536678906064870262362807482975279284961981124745819477837871233492236098875732002486446881568698342359626580938172694492228723601308901335833363162144187609621790029019290097587435893494088026194199333831541687505740007617085001857754157385727160371087238723529164905581098807657410028280311933256462651679142824001458687528708390059881628650812635115938671655073890553063090686736843490346396964064722260598842159989592631027759689332595820890779409053225130481943797858408282413840545742098117730509727193671718525974738515233331368244055317271467262813063726718819615195589985152899183624709615097432867183844678727522978250570593528182838076584536796282229317702884337215641041713095849287273787410292166026652734516199356702149601531314365477984695341758876008039660890887537646260806294446434262951194161393480862197452370427492029677902872050078738525452162625929931620389330923191889272905339579690926418151462826918936914604888054394513540186196241322468709897018672278090513957602295392523664673269623468065080562420745572655753630948069702094044196572425330077536774894488541461853169996151136650821279421833359526153771838405315095096986456757194826903199529095584250444077440265261213534975602328122468070670183342336882929898417464875360556450723425932260233186921895439531848036798465212750155327317159409238716393189863839249969578094171246343274068921438096182097271503582931127489058743857704007460962568952662203556561693291471721608958524456991759177054792091985618990063938978792479591410995544524116466761215600041348753306153617508271495617050813100912578887617789222637672815199713845032853940745505088906151731573866569252103476848105712195095997994460147021649043959852424224022579138347578946619651153548308896699233530266468291707549169975770517520562150984258800358917932260738302725099603733668782210218649785398242666042885346146171535915596358827671627918456895189405837052977507348302065987464858700517560890555444832647259328001268314208388085629600441741214125678251648482776200086065019160276492642731485175106209080943673125984184218969741544203645033940988356816824054330302912012511280670950018417878705333562053543134300525670600610110766556922102920747327011631680099888815905208191905700272581950871718662935690827642746921246056175197410681210414503410504390640315199251460346845135156379146640987462597740420022522664617642911936897801743540775475409236966862865184550962034716126306387389682083639572556316769970538334229863707440326320457037893636779918232682370778626325624992480928249734688698724868249635959833227980585036052878511372935443708532362370833079434572411091946463185856227210697930975542209679030399574819986568457715050681238651876236289963590648540734233198157504946718297216248712080244404063862685247742381092504547528013516801163469094212553066148971747273980487216390658555432681448246785666595469391831251010838518298832693394496472772346658846927956680441589647554329188514056750989058330778420706125454917785766574290408820175189928009331905776234502864134262820079479573017911216302917344708718213143329698648642101328770555000825479046407378973076642047796967954422363450187528076721770291608834457937579087544013639000306893774167573136521206880388631737567263280565704006210157515091686517575652635069843141365794952034182718776779366887237046814251098092261131752063307269144839534565229555829592644975586374435070087904086255576222811381673550532714034702282352361060806674570833399796810367451024665244534915055222843713061333551652502619888577801909853983541906230569863206642048164137235040806109610757155842887803004855211089417757442253971422203999146336661851175054353280739949161637548462156600980008793507843971093644244436060385480779521216615839481940211570175524035195350331159705841787531972116570304482751043067073103559310271768684514248609021563814894033219391417755059547473218075802490329269555917860428914790941117828641552834311879907240225457426509942283871126307272610044296989913492534948354206272750829036274673613025792668694051121840056183923234753205660307517587195867653140763075724418710776348351300289251962316034689335022083327881206409693883317603559250517934625053628822424168592734327869790657831920868477448042788991457420378099293643891697050768985163583085211106988136067372891746160303029059674441318259654736677487884929733686461849671923905873736053169559140311815535248001696298336604300749736865701258646525837049204489390206853485516968186291770160056774140135242734589224767433436495219884377072418860648091637835281790229165472152028266495151032157169968835101249137733108759500988121066139778318047809992775138169689916199570255562739048741440023811365905085729799347110122502747857606598380487171770858202568927503117389761975116828926322355745714166241815624356507199113140119468202066822351470078662997644378655254626581260716702010387062180117960406778236806372170802434193995195531964422785352110031176018137321907089112776737806912979308002814015306444272548144980485300049253088727048176385992698155353623729885860370330388158432281204700885034568867767748963729677358183084911780702143027765271587836062908971578468998837710825426057499469079110175405385409719110394007752325025492393602542405572398269470150665721322321154312650646613584378404900051551031765008730945854354032917959325871993241390537094903898374712340027760574391348071287880499769754908846380071042548875840162987281294153340739240225501154570892565983961958913751416250225572614481151698586008359045916214386233434080447758295204047719061832897786313512748909523137049722261091313981866273685247360066629791305165155063270790540214798787810313633192546323115579895393804480688643773580277173247504108391271562148213880275486592161677460653566696938759409199558151446996608719071282560368401345868756250391927800846040621744321805945766203392783334517277396825966091958064765740588425935965797542575843862878216583678235399174751211436744409832063338873932240228027900029778680456158949297369379819151604089868158821191369640043625524251100677917757071870728435793126434422294695270796643820112101594238528712218579653928060980047841764450286926119618662072301705160109968740733044261061070390826837756260034206133421703623744104837170666026362059764111435394186947354766859120609125053042195266006993795758231620053443952909826965069608502255124729617019657103083636014588504500483568947796267290548156987671596671415304840083315259672964867047470518724682954389053060992299821501214450321022003239564430676754004297687271782036834655730030188772198410096181770139945203931343403645673093991134738228518342051249588751895010781743163114731553683695209759315979283186075272503689114317055679364732919142584807833071992872882879313090300696468889733161290592279702363734054395927146033211985176840701870162535033762341215150496839405873109605812920962316719261538721263524938678279440156141416651355168009437445362957795463582237365706448240613098303530750928991615754089250341835316482420696300850335830981193246288457076800439076152040095796150368473165424553612329313822414669648087997302849190558589685329905434878779929684450876926905167147548213792674335473285781411101551486163142300681669160954870441642327482580916454468320260767402314910616444618811589751978733903801881895103433202959144748959886859188440080740845391832143648162882148866240843746293688834507418818240016337711980122927381476091654716981441586472524423473742970872523184678590023199524206991901391260807274119451007627280207137618571119849433361488959932051759273272718062916748433927184825450308784958690884319704481660018068188294581172841153672488056913690893943472321288572406330841872282873257183187021261721616665331957135726221852410401442338172484955748201649909318750604457198915760898611841693210043363014960065883104991555413583573839904689845064199265498315069449984180490179817071932323064386173373667218355059465567632639585572375352888020532158879342543442603819933062935697235691129793882448581914932280415061033293496171619934739766645875335580589834180538506684204616744065329717527204737885084618561352451338633079216264099698264989379416342706752780258633134925452295637821573713358160880744749815865495694202744307080718238400186853487192154474061140644796581313307025851408827303655687534050699905515216386619922383741404976441651327565200418558561902205288696278185764881382862923880798362177867842249082912457718606462546361874238858552768201116420703607578652647572842697732751303878123795467812460035479677308235644635279990219938136855563246513891813765512959776021564106054472712632525009270507572554430951012745141440614522632735987154293357930081498229890703721252329425656758509173155345953585255708340183132804159459622352191459537853885051823736217659967253602524719160386732101420096843981375340665044918068064183666468440364203144014688750738377880832945157283254164383368792179013958781735940517297930695244651382408111473884951734978975547167002925553978582907397351036588336341623777493176612330772229636409132333892117916567943352531157944869274342354193284359903473495211561135627968207246535750131260378301313331763346768547977884064294033198506802864101092794447708707274926266491712482642465054944926771660085055359156313231960707321497314769803481454132066009681356935037880080926016595213978718396271129152033565355042545021831893231062221898694615816199632460730190634494961280129684660119297704341264923931910882404388141905348519312005124984930325568521669193486312844358185484374069908640355511063981711294080423746234408552461322385795751841218140998056358542393278678249823749795159115739198628121431742545773729510787855861245832989918064758628154353738989430582363972693098284091473005992868696512355561501389130069664371230468358879357832556136447361717541497985291810600335354216435667018762881152740656197910211805589153672648733489417433412620495215682033226466868668703954229836242847262421526984237352599391903470836360988738905484813410188133322038216118350692430993406103899386937467506363938783944674002015245050524662512018525222900554376175167068990072218583903501327622388602965834759548610311918702591044610526701121393423398652250108701409305564995698806518237342548260562957821980216746714731327633849595537309728949443294479507165112452945519239457868578136751275958135860718170091665418948572699906945761750701831186248917548329966745574081005284116151125647417901217816322461064364715081779882463466861946178106203699041911780194330183024087595376428622230547672385664613674585738477473162792187905183103489817990894282531871193932365067967184847664575087016555710234593105560721116126292016156827728470410150859927179027389389140626179964129899037620613170938356573083098290829874343324298259256237318138443588454972569403631532906056205283483852841664657303605820617195984730632130018147770184106310043181964216838109971020635596533874887202297424246622512831080702699128507837892734595940487481029926347760680811378406041212003298442109173811693130734388229181350553799032041640507565908453213657779464181751323664525153832683756644319524648023342363050962716286935087486425942222633644353026959293591323221311669247261850713665028120850261160295470766416757291045017647159865179500441400480752368898249439420140775369217502905361630925941614642307050991052235811377939162123925465591129539577775300759785504555781759241382009953336532006340964851134679830235972119993255127276856661298672273204941455376588353446137763135248195697310702777590515758912376151059867765648081258451723921219595636790614668952694684701252415180197677745778287629425659975627179547572461201832040122493931814646817495262249442593631046728973782713279765730951606253951703696836784256512538773355041146451008827171838718935506930884432560153605584153134176717270518577716174965784774383786993430415371723812390748291224581579563117490063561176227034315002283058618782629946048550529410864507644281079822817393772897202071441494049500411946243516969741530003716618044154517342906426232655360515481986287659512711614501958627718771118355250351095631492610922142469316493720864900632884932259340495922682600621072661205870233144965884479285513742458028976344404005637911514840108812105626771750866272198782625107954053935976120917603999177788580600056237060859684669952488092835894403192121568039844733916262605018173357543721725020053927594550694649997763713356795681797001663616480966837176878276667727962757825133444440603026035738490319999934596773664195761024340836168184735605128911646621361631959992589711849434164659044962966603033350534959126166779122921320958178060608685122292758544811112878426269907964897294075167560261750185917041320114053456295411227829701475472559007660265201509525788536550219773953123666966714417060568650744586549482091256105946105925641311192392186210596067576311994951671920276851279116499145882249509468022084148820203473504264785438420390052249445452949410909798591476757460513125107567811145354305711781787002181102377647430439393194771126798527131285763073243797042484321818607871960545409096664668994673001528152253596394685183947496556304249015377218555825571177991235653005624696657476617544504388572793434660435624243246823106181503560483996987908368070010140762338584783738134875835423901931135881156445193732464735451715683913667509058021559418056558705756716518137673144344182400687620083943256467068161741704927194385101722823008139662459489850867535086621424339255149567354263963509052256818356842116675808800911457748530552148233242911915721677970665886698817833168794634002096936365785222855033014399359815744958500084035055054933848615295237206740668279931106091707210812740479443387255305936272177532113238189872708736037787620063822118892675694771008425877182068763126841321804948990978634703196380580898472502576645126926658287820977622764139469521470558026867954041688327478678119219588043033250084069992438398337883694235502326142527589881509079321692750618348431051761062260624329904994256970606819986073908611837457535729955783356908151193891269405726727305161275668585521444462575925957775824334540517494513455943967335928189870297225613490966399115966964258337933561076753851812201890962911153676958012087378172172924205247000601796594823968878586809433446461404123563370274096392266337911272987212796642138221733611847914185540749189617832824774330094167010039273867076289061847646056057661992985608371151468652887258223869946736127349515342965688684077416621981112545741772230407509710951285870117466909915571855902312274257414498588228915348297135766450898434616171066705462464611547485428651218160373921832221035745377848935833206775772201572039182462328411541298208119739320660241566870403450632592191533613883093281285813316826624042980198263996136574333136291935271078994684969708299560883292458893706842958761850466224888304252607852399555584345431094889216184201701961632804144935065943570320369513435110053631527167198861553730507370626591232536602409173879803673116766660380233582119396174134987698966967146054570170668858310759845042034523579319075578116843542168805186636063657912382479430517560324339053788681573655850877850775977892393526874878107855226884370025889017312857140399786174713413743250184379405954574169127630912115697578893150764121049429353118460617997983415993491168442536199411850961719975734039725568606142240955074675352658012484658720223152143895622275506888753779470493629619772149014466571272337944183771463670728775435514160667563269470489102487101547723093124248357631679076805567684564032587666177122259966439900863232849923748693951599219364791095338109064125970704287539095320952420932963116688092003471718592313067186191978368353951667877827501315395055576994775834136774185633494262141380464664572683044170906244959757005677845707566215252314644533065918231093701560756360518925735483086483132513900287838354685967774901445762289460831120189164225944519789041480674366957653744985212382125859661003923135284181291378845418512176503103024557180262941985339271458519453404113759638588921631921321319461688815442516940693203695280699362545946919091634614622512851755293675614239494880816954208850774640663124250976831061971331780029966905184863883170454926653921830675504733753211149533130988389949709181778524908978692122914136331668733804916354042112347695665042642007074630110277001223134128007654735273651470789149383507131688505488112652107626065214386104427362289607916490881125957626115436895151673318826844206377696698954856748637620689437442055744679000148321128460737622077068202337394241291668877813181194537154591099780708054151646221455551024147463536676052467558489889284025392415385304396714226833685840071833613602106483250291784074326469290226000776778174912296226604071101232476021266857768751703328964918625910949796180648604958516520290269219667367262961436907482343272188784430466896617952257883288604904595994139200294823695933713724237634845801671128813891480093786325472938586587056830974992856151285195211331920734805807138988277501673445508947268942111925779181696750954418769336038328081405566780163958231842971739955248391048578954166563890908311583246295395575779578322634516312529039306953219941236670479894439876217270735469541948922196995810207669607865195610300981350791473832886191288053369163651445522454815517279180590120090588296449881365725686075242534851824865941365531092784497523614879849037204290963130862918294587214638811946192896825400902473116844366735160979520675627063607041251267741429643381902424237448554948689421533418833861388236196724116676890817459419101472847369542237125191374850186615936739511672291270186055097327755013065636920497098669308824213782020204696500817855801965929559442312530396812603102167300002983408237965851514041501889591910988682435646980281660859880950000156370773558170967118058261589198032738663159840131279973998872358589408909194087508802184344275193143813570415069748917457724986101508573399444411333301977062333152505810288353184411717203162151554876384972303433544688712679164242588992838096020707594804257008706367302215949070793320168484193843224528775340954875218754174731389498485131285704239490485323714133609626414758107406659183811315646512864205226295145182984693728647640866085351574058044904531423734401016266483573838010795121468818574588490563389702913458705754355208524087273121926575847174203539524009162850803661791384134107148714668557463302786728293878366548197095605672341263434431798259254730783441225028458384062901211339099419909827853484284795387990393964358541128455493898747863519675328485168710471963756881555729638699842533488554789786888264904871118664973069998100360329582211119654525513228011929699096990026428730543377127060022695278522348002810243667918536349121705052335277439637448133156011456762874569807298354991842953695952145295640070627320571481949876024440150569708898253818362807211743013342560917105610219566015660245011007201313471198614869607155783685258887745496442184158662430700033191889948965450495938576543215858814571682744380765778483060086681884500395880623673505774349409885221119400129374868949765954719869632039087211529928009626004668487461830898714239981814330187000896097771661395860165861393466470462439668546272701442974409563803168101689817789312280311709197435966152016560075604856519750604338719717521549189173706270251843190603956412098328996184975808867792155730534162153739644293259906770376774446551854608666050013791167802074115424640337017908190537129669958345549526399224784137046042790415176888407347673999864471548804437248382757058073438244277557339416183022041353400647071538472662866057337569963337584938355196052212221721999625367656589499562078160143728984701871732230850125103495817663243613100966102829766765169681382345366776350132963545977165743040173755392364691772520948720375229249987795130295563025074050930318459013019338771887679382728395477969329471309691984406021175621924101390207855061845451423062023205536694767127563453888492792614893181740032147538625620891862041310151967141250761497718990516012745975429776595628179942430454338425402395144441449437410519241909778850807689532148777344513289966129559102142758444090822739194553735907585227241405986820464402196014988482457694991747458965235756685280518427050233328489304164116536225985493819827992737383306230585508494422758118743266086903750096710682243197984201378860812341694966889830451192539115164954078261810382292578850150754262555962279479185793572078735565227065658803144328211837134191003284932369560906036738936564305328727968372455471487123214541750305644534013441006548307384265058366936902342299061610059350935113715141839712537703047394671374715378298758859149758044724467519090099573910040796903075303617467030097401261824994042082580135438491330633470714029179860090828919254343275329700056875339322621403925521244244230910320001404421407470236070258413696730970208849976384462759297064087100621091309724616212361537137795698820277525729763400314830594276728025833315044235145932151987315117941902678716391559981178106647172120697173999425992785752756398932345802337552803203295080161409485737582949944215966888475408757323990942362725583070238426769440182305384134422507658410013663689485760506533289637143969424675217888936361885238610584209608063928649957071995862500394448610528363912483825630009154195146042095270969196525938500491185169195822322204521544623857680725460339490179950884995659313181471617945699023432872706648120705350169909977096102797760670387271284607693536636133595237218953012256200489206694480987330009473046720764974435991716331744861063141177148931775373856992934257799720450948763391196891961714372750011948319773073743797908528577106996886532812919601103770295930115885236690079981986912894809864849834849030933831032880578597394503541692020070156255624232953035482277586870114019771778229325966848117646892730760257838366852979275527759273692975646962145801898862620248707929905898923852419621072712035655749304031044375631962783360005384352139798044968864628433829938959135811132430098354813511839497696576889113977028467716847180421742596939695111188598080218800653340878421295544772258390635387347479480117118964905533000630310940558816042097494315214347723862027148043821099811194311605531177916025960980053567327153103127942301841329558101513765783406999883055927975515660241228517484606586151473085315002262176259214777837886289734832588496823824594782517531725748267172356382784056620965033621302660457826460865501521354408143828186258747564176359778483188983848666948491051435011310595646495428983747131498121706091192559493400850849461411719832083865905842505727859527296211561012298754544495533340164327376540635408997039046334560752247449191356203515541594113545171315518036913931955722207806568583360817908898583535306890488626818457833513228686627975169215528968236448633477568762274655212293447849008955462572324927141723981052794490915702480409933583362496426490483438919687801434609912122197783704152165713743790788116278487347349136896214673269978311583172838040631094444766739719658120817910514608990594568531505985078016323485696733455667525412708884711404232785571586021911668493622172471707493777359986488856911713867062741897209405817143977341942399107677779795771416617937703081081761950368153699565824671070781049266376549133182644998916867662675176307087258579459876353556197842713191205907881788635236738301228635045445239428160998117745399820632761270210094996188843752661956369773144806886102764327013384012651726115037766269840353788395539083526541053200594834495058411200307844388438149227834029213704180010776946341695629321340956544101404721138181205587865813639402235894843981869549697329413237347935238000627110314785617438580698021591357489266716778024535437874160423122411568989384706046177304887864074136171210581236172295613694324695385067386428348243841181186174593494778151754592809791090395309548153346880516152007293291902203559729960316596685434448430554890232695029372249548235878291457658628404123257119791508186440630896055254513719237921542109895313892023673754718322999216686583846578168488155631710973349492850050182325978356678305149262378627492369332624088388550546820358657147850359494824604575472350396086758081629947833599939535666181227317947987800792958353438413067052072601184125116140332321893815665185200156323700628966316003497017487143848316349665707333209880126549751723394222080939978043750940470279513791431197475046989617786369224006503493393916117873277176218668768784014036498915376567135182125135562798774618470440108642799859042338720360341578075554823621190894763481809968666211364811818373070526641944887223431412421568436580728834175735186920531079081996488087192159156565115939917753174265213316075481753647583499014902774788825199503859380825653731573060436083990945063564571315309772568167548045841253548473782831425128936962010124056624875566305042291674095317159952951066207040324276170337111169092248871321081838649980082565886992885825178684321250732393853254038505837093215566747814476012088614395670360712121261475811118505027938474921397713607365928879706650150059093963553487968841461112292299894741239945287356751372357021603268738514958743392490707026077337276038569698384504528185159637069236083068175068413115230801491799723037181271707397228162261211569976209606557852680994511764087217282066945444193274039455250989051753264953526374441835552539721727594844253584627276196900650257789189692154010400845388330496527861495119115420600037055814499929108807372692013989695399029321520572141416841988637240378730773718245471918111697243706849607588634361854548848810637039874593896983828748820573231802183540006632568597109068282972479343823999822989052796669936469573487782899836028968180225462323367868986350333127697603030862228377995104270967410777490142727377734522205279729888389694890751494825155017520415098997042412600307313246355517329223134430493685477155395905152943109015463869931485547596285521294513919370452416353085735059480467857817226371642193206565517882758273435622862826287025035259672776084225468655311163376091447076129787149802425221319558538648382228567694764996349550096662925208612356345948450627777847037248173701404698878125087785060300445457443768755718187541393235178718036231985098467817259485427435599600519752761553917150256918866210459114490689693406882435842811027492306895666191571731918254696745763854323370679175753755210176887136533181484593883526830807372086773523738553206387699424149357961003770774771057819040081943963731742595645336070053023015341185842664599731152731118074496300744656659068422544534665839322471851373353648402544425060602171279306430391477968213255404213713179141247823814406520874399589608572417254232432849577780500728851180373131252606747103072840538755072956602822194780291005390379882061045025491570199703835739985724627162016504302399360157566140233647658229850194098578807213140315083494624769402803935657211377850345662014737437018591063398539595373252182316549149272733067187012072066479892922325215413755715072708465613601108497739333105452622469158131520112270262356128274828769065220239040318405887562021538008283686597546637001725889117244289953745211585334749175310688422501449579874943855659712330361064667694670977288709836812115137284565748663383030796533352880393126643384294488351904285257958806195405034581119004165297341920243885170429035174512471314894473635508938403642573562565178058492872281114716738566018547557763721494068812799743919195882531350678555263910422014776522887560555097937000621298146327286349006134476339707617367878447332198718452672275105844693188239377690611532730663470614981998644586189750866614961964966681154234355324578424277967442166137143653057321855036849086640481625871948134470997909271826134862570862080720813645152607930942029860222784920079965341928873679564265360634391755836846676804502369209489871168372817266715545361465072610461700099680266275985666269096203190036219281601000268530646722048616511438420312049851008780703003428958208536001415151251225761171376651419803608747916222528861018469165957736489876648732765786197749866033153542065829651990930679206611779429468924813991879915510988527251800004394321816035093510448140695172580715682953403244524030880344833883939546206920139184548889971840760320003440325522438174383814027580633308917486678617976778844874656164059809436404014324262714571407768793399141917249805930498646217311628233600587344773992670706250150085177361922660446051230209769160930745446737988382342699147733696861265081801223557619821462556968094321739247783128125354378541324014467498567983506900583999604403299058526815758252331654806521508140792137102933753986563146122595723643411424462951317358141106320975792346361540739972063973046173759429662844661306115187294184647410751077891866643330508756589056071706313673096294795817300529776342821103509848746474882470327706182259925261835934679831643060292185795702373335289066675989916030345186939828870053683337452441794197658486889552164563135500833981208664707694533718296270541720429918416563492357521700159282921098066762314690955164465547557746007116563989515127758460115880819357145574004753044169489258298603766733182114793570230317419209396298974716458972550441917235639048461162835382221210140154192287477102868073799693688912115180520916307536128174672665936653657018400898364077024482919385365956351392527853158715070135625953559284573527747144085406546363098086010784354893264469547821481359475337073309529779588213992167480994848708196495133145832387450811525709464946459596449429093024052365856010494344346863485760572127161978047186493833939582302706276706392847738999890065273988101696966221664495535896786057424136351356537260628357160190949501419587185209908053350060399779760290102898734053886981224537254772584973479642927743251126656744154553057347206743590966979857063301818620894895449390123546870467433107779394631595669517976478064060507123073177208662555479215976614145894991228800924701284897617264031271773175662084653377077818552862742278059836469493498492376568576822766906575118203398629011403811023268337264307938671738967234186144705851384725925367828334963511800329697719949433545305994901543253887243266103967594605347900001338773758959106661500879048601591907189740070304980827139300824791960968565190438546146264981052533716500708963549167794930593812237349678636442779737794211606359684256671388335830554051475929467485491585789402215284467046857402838865535596015632166338230396667123425062329577400477391252019225786170871264720451996246857230295919638734799697675438694496267768778363693411128315363938328236994835626048619238947284456073934971054677026261717780021811335763561689378080367618787744118696494980069237293355376500914409098466099951157903873959177457794719215704755505337743012811426740447802085846726175648673416090027235076208150888756194476912676903661936876849620409700007815273133908521944641350567652733846594069409222329120734261209603011190008316078540699644594999914432824241064843181813496608538995135338612508811700414283225437079438300207033428640156713199482729064570201844424332026060647716351575501720624162134410411669367997352187352572790370311937803798994317071632438830072708262707551793709218803744807535709477491049315555723497745373328678328507025560456593314073318639735385921359785459884684715480729562068716235636074494334550909364369633960153410732451295359829115544039749088787670209792637858804170298386516465521296157244572033212862348727679006205165241395681895937708665238708806396985850034012003051179847894137164601685842662641063928844462377367833089993734153929871797637821145854358065556341397390769582057639609606577023291779935654653749990469119346668352828522862164177552697596952737461260082366993463753734322711971650132171357103584214322002950920563722448171311844735836839307734174147978029582186146117534405528608286427758450035765688188728591684129349809346227752686067246709559193437159884130492742476420040265515993623530384983716427757300934124848062049196252328471659584268775273573850003243464559398305040346058715642994012312813280521313900603654816590961870659117301249419687222546942173506609705221377454170022280766478070060292157339683057842601627964123818987800698318715168389336588137879276222739039875108961822381308184667647302889661123446990141791076510856877251782643989918789884540624872888538241315566011847966454838365725243262433713785672602251232975835371530956933193167840983523573073003880975011241061206214268631202161736661399132674134677223458570035571147722670205400739841990253747307312287915641547080911800668184532341776157882566555384561687734300095391255073806543449732762233354874390283349711381804554499814350193769967413595664166657742604833093235620054351371267118051621170902741115249725047336693461792619406643349577901835377564705969592219310556085236072341579766869002030471415519079739665849823301249364701261695408227554768009903565873419727137970676093396335027304106266786851837488756142114054251570315096833997801701524238158183777032191821790256023968154697687823498333742044494529338235229006364811356760629781696887617489133661543198767962388643506844642720877722615684710628387775632122746690654669450767994233544708396371321583096543084210622798054690884132368884691634177381597666705893891750583546890253804738650343297107542721345577650559286353661879746767496466634679805619457389097679442394276086701408589664295754486778479463478879690691189292491539951229719361501605163186774369026797325405270022038810695951773986465957602545868728895662268017283188143979165738580892544595552780630016443655717269513568698113954001414347144203503059103693561976943839494297293654305830573074273208734949895473760283531770502788960675171259565214327699156672762214848107627969823892351825881414006943987682919823392242436619281893741143228142839326375294638520327792585278251818268160676091443194809108472845765605773872670630633982538376238722955894460221600117192168883401706456301740151574276026837538034089775367000315247093550054857407902520173093299135846819766917897996361872929528492838012021188118559882942747827729298184362708673308270850502766977147858294188166067380705158864897046711800185676645496295541285261471367280684936663964551513059126175907171171673566511526908806537344608467157881806723460165959879647002446973470915862896469382594230138079518632521853710235271602379314040643078913298049383565780274107144107071255945905425966716333176515421740818741505176515659559381271212983513585586540976472743246746310145089276142574271879078072186522375643121034223768535875995926372329784718067023812121727093735407445908176257941446396412881890298706278625920141297927714679078986056389221684243489101937766694456149597975508654692837378506924811290798851379442484068944594874100195166202305969927260185787355870208554916680945574141907849961157230542319086609340631125690993845865956967463666388853306814874231722736885752299043289580479311357353804558042461238763302782094569050180227401984521018873218972608432809706768930266566233514206767110340611972502656766697042585650214119422246594515606744976930661103388909138469883375532223798522843507036634337406516001325210916218071056894275413059338939856732524544999583177367633298654133940526366278449257458054233592403534717513754732063336892369907611955092223900396397717557829035399033068942443968083295766994417762875931062385454497092785837266649055232666489938193139137163210218163207427614910312592991201985541498335894270815410850543108875794269352949881785694886308986994124505241619573811351048761051858515832138300347607188221159340068624570314680093347393193265816994167542596512930638748713356336508958486720683409554801984232582532833224792249693308314213164698538453429205655638045987931856178855850293700907036827437288456860679457496214558214255640190881828904604959312488020379365422704609543228532434238951456582329118922707851946724652950900123126260456834387110109471911348010849266874183590648167368009516426174807875399564323434750171384995728402090486477947373473377364462556368323145510281109868361311722686092303079296726485497281402794473189617643612514766669227259828140393376404568577480609116324405992267086084999062262944973005735814789529491289865927299714032927579471667495708352607606053415225468104707162397505990935937414391879091976857723082039251579788046343237682347756066142544740365378968788968171107261813008943752987251356476716236768907047176132937009964526390173191647476640077927469433282472156789744674871271919190245609532975943629703478102283455793688437581541813349192995298958556607750046236025056274471200273745024455925441457149243946520919593015828737703702191135387883598798939877502963603673495042983619664416418180593380147542109877908250779878590628480397047751731371881440608020188101647815670357347095458399860407840839359447681177417638960287558126779969544964812130918262903715556257424342903314753344401941090574277446162186368698380474966132705487333960122697555873179881809848600494388232411142830334809524946003384163321935884594892612713062642678689087476961605883696009639638612153582169710956053872152546169970897581814314270168717963297371366199410068244122964628717897024180305042829461538195524984233161910046958073300796976652364779512327638850367998819816302776018217973042301986289432955603257409758691384497203103771415284138706630415133030134247071727410381214212927926929824943398052199813702074776624871090279758138854851074735082783381239886836935520827062002102350495838939399522767968595451978234336713557838516000910625033656609904529559980706813319161345609787599080445464484145260609692442826364913339088308018843095148641866284778125460515911219937127569873896591463435036694886226393769036552703477702496899247680273573685383830864656727547332456938566234158636509638178663398497290291504735076113908323749718846468481184509044898027032153541150237438093313941904225636295388205358963495757724705206076426752179920221704743600560200428004064415090009306052198953554405531016793948902267630793650275192959525992657451647756533811243985315329253269197816140448950405821137378324899286206488340338585996839087970556541498035795389357651584903086086674252732950967403610784066673328982333077284350952446321325414589041631029622869649649303118199831234022404670805021823691693888296388222379435713304885937526724783935234388078646017917841326847381762883609358284534254239818191895690829318844200938411301901504031043876592244629107982431377995223533451586947120119053627735612470440076083732945238480922395920990171137254617480700393125343951076103665027076107461359809328093785039018027526844990864262775901233965636205211346671907558426902700078920811524339080203393600957648984907046141668689843444736673349498160120118503313021699564259381200727217013330648892188053409234572975595369601930797750793037427609321941635156499232994255136924697529634268512400443564180248967884714258348019041714410678958399396380866349003432890995897716951842617198435485381869561571825134593272681744294428900425737564140922312195251117126743887193597445295523334049154419980356122824317575676589220326220793404861771745868952518089102422930265485655569718954844769447279864102018317602761180574773172519618749530499683615848573805327374083699639921051250479497063282129224725286500623834946540317016658674988378926382943136462178698035326136992039075431534286713162363003725068158205606779485282605573522921773285613259487967394248768881182711693554010220297636642310275835300406440702046468650804507613909998297254196573736008079585912929753051522137069994993372277740554717299348853498853464227636055044168485792968547251040314116242093194319764489537758001573331307470681566704779284017737027525854552948047010809318233475191622212217111296656992227286858950632003397924659511991952813909806994046569067657037733791820195040297631677020983739059942212374342663328861596518702674757266713827009657947272032388836727185066658938431606310709241707614286157243489666181657091152766771670941775086323601894925621964526843604760553782281401323663210082192954889347196555543810364979817322771770054766343671855630563489556516681696086950259547551552301914253370907105555021246478377066584917955388837230596441249983484167544322903765097799624559717966167226444806688143679648421189176800477717175201977265740921479503424477731260200164407893910475599191864607950646027100751110692888098897857390467797030876482002335310387763038926409413390116185288372125071845375309160192608177932567438109768739550688612128442547328366344626680106814033424220087059938023075820171135260855154470055441519013212512371543578396408935183189377915642924993024749905810089644896275903344999907465055722489548137062702081498321111832765717756607311716785277055504051678370981956054517009837159286774913510729533347840590428494319693094602823902192911417508262244763574823621488308606347560422104735384547123964866645888589523234422528647389757207619031865619314325888734940740098368547406293442216343001544731919203065018746022807451624683178767924101797379580905841981582482283889227474616042133633295930258391207709042587208423670457356094505849461100731200394929359968007838050265714198399757925899805409025743255378162323646297613393003628581636263642336404988383891321430175394948056998576180282998358657541473975646882237241538762816587864812815274354653443256944239760026567389128766945278967632685260074958557323150741500268391814879975923331987509200639850321333107496013496689886499831087334229613975544838969272051823675838554486437940991330779872191517941442633566466247234899978253815297736399794879351118717260746942252338017905306608650662805103211420426793300383028529190326930279568582827459124483395833186358498176920569367425532053384140812295834469885974530734515951814441951879012949115242810027553549476781177550915955039001915222510679961930319699399350391839770173247898297077077595104266088280071666649401091300597407393945485979809390368352085562851222440863943841416192963214860377464044223295741895986239082083864702004013471726347728732720121393877656488676601023108833988559883555397067769821386328340652520833061489440681956130454447071683635763113198027589083784787601245472298380113271924201423457898827102090909492248529302560429939679354377443865276186184397477533191430963641238080778815976090761471592785948874521945944711883765214551753039610619404804689992671535685738688280018685227417390981158076580023061160907366021143280700986683121656607723217728973756083093912410381508799348520912917051282104868945435928631964888538227436016066387079195011410259929007172083895800591031842532566464033151193561638561077449074638932340667923070050846039822296906859567455592156371120454844345658022539498756083912403933252728681297434401769507652833163241794960748939833479502797239025263476379445590729987503638253846235327383028860396201692374536434287176953742680126818544161449984266571227362518021342153685949031763135191741348403769842263780810717039548329265170787544330969446590205695004541477216795639090096265120856674221888873424978648897240084753773829707783083239809047133180974571739638894789465425080998540208050440815631562754360408068425354062305433287438895104709068309566071414043113352043783693614659144093130113923734607773218325380458337150371236372413610281972723330363796368748510632704728754964648227230480163701097638342511344163297472160689827384839034802191112651914949462511567965185993506226202973875376503355562308585688936049228130944936968120643659830955361114445289726807099966431590692445155565490248350570470242383295775837069368693672835735818961304040897710077678331185374855632314584245644416687478111931641937792250863497454275520534786890160937426245120908096414295115065738282646312494608057364071387697522044587340885304405397233030430859387457803822337956984834795591082272109183657375449606516678731319331298287874240644942749993172397653999148469637445938192651810031050739837922557705076461586283759689871625911294954521422921748154699587176646307894577741649501486221161168943988654720463645832912992823860849128124567664947572823127281962792311896296931663267820731729371340494763059462497425383808168987290739168901791350560580054806202670428820058787125210309263129245259616172495867433608222574753288100592701566272835366970492789051719589918638641537785390516273797761809003032757563062016248857019835914311876707940925992051198701871200819352985331528617498864584664244826697665209013657706464562727165805088453959632008562711875665448247106985168376978097270051441176248834261232495868938780385086499494314615727934262493616914110593835100229690775079143676774610736173201027230736697525677237702620508316547491837307490956093963527290718307943516994090333629917068011551788192726506866006745612549360650066294029090553587313573846885309925893086783425259545800072665208609090147442699561732651254019779009844937264980972908744015939450979657128862630791233283302842176519442113350989921285962046181097970120272064241062466990602582554099326508542769164877859779473830871474168155174625613482854010843253058516762661066127429807656813114826500103988061513682773545662031079705427792181032415816074168871035743203899234899294127474655982950972655262286019759299576706915008692226262186949784291217443020063472398660271621584809777265248142922044975594244603373209533900712534626898133068184942352029986451534703825787622175933938797806337083911762265080723701527506756038498992013841694973166335645745087451735118405773454136233955312073537686263166949838622611019200701539204668204248857210979112540120159916105934842696079259273879090294380166241870937732149356740984469880164575279957768168786940841227812726143411539399642205006736650512714295172329117598968701367008290146723086585790677069992732326045794903552438756259721339375554930249492098529503256745864939496702302176436327351884450974505787498703426345152993517149514055765103058251883247490851160259654619903846949737421726824297433742373775272841245700868817303154696911581525993960570740896552602127164547329893125967142021073772533780486921994521179383680453435412327343057014341349642077468068027908409678286753041211821965818451026963119394750863148435852321301833235137795494267853647298573711356326553736665715054853564539068564550581121029573857732564253141857921299516496529209718877578731838639175333764857254765078224942209443570312870110639859882052798180349164328588459030954100626772405381148455501862895624693918258146882580716740211379276132759308318719460370506870043762812592181606648671033374539972256610571113032931318679344753131995089146424099282601727938325247108532777138310768695369821888677406970708861037323299140268538152403204801309471426602890562189909065420466188467727875792404017746286170073511973148187685749351040566020148172970129405944602216110504604775802785045591064318422806288705540090790023515788727484914853580321094337475237721519468983808584641854192024264492117922237529420663934649524822595947435642434025866901672514723865039586444432637095136232691871107746969562830185611770853887755574501599032933905657549106716883144105816889145382893650576007527887230435506033835700491511905515492284551605603404684339528449886795674927286590202855645553623592131625906992792134573884843009164274957652149634096594232542514104226609299771070098046576124736048728863237226196314685742093131825452861717466300801158636025344676044677013065365414323226929042192691909200988029813843435399754571951404208483169423269037024819089341848833647649040431838083651594431510928769644035002424305759653155196726883357318151484306967604297089560278922242248556244337362382594115291018953565587658779249138926272571293946917209916562163170010343379825568492042967336953672849357776536427853984053888321044829601460176191860424365306186826220230336367771846003793445272311276348209628790436446856405473491946578562725965204423099245155047381005294537104593390993330437176408110359398194380423450990080557968614255711523194187200500558973652520334735929326556764643485406236095809025980366081944430769764268205419528548331007230004552838128857181947286292171559685269074716996640656694664501116059722024397625381054257460026905771783884967552332560907535619061778093258963299588491068717641091831537213403144689597441081315761389765576274278605928285052545774521740647373338668443356609837293681557393132089846620016736843322848714381585266453276259349218569918834849606761525357864245213100038177117172965196751162771613166979284412915718739123124052424003290285679427567283500640259652448831032507848335465140845210285144762475412147938348285824128841386148265580941831602210924408103925077049075677651289948848773091595359375156727810582400579969460495989382413806965339924793531264502848236499340017479906721200148851799217447072939610097424035854451692636414999856200170583880528909423449033343459134988770051790499522275865843598937843128610555269820363743639036458198083503732818206805690812325272753023615860218857503937984640230347970668277079355717439614554785174078085290080769013455283604022179968223231958490989421123849216193975648320605008964610056109176663967238755953541202317830631741386218444481820057509968372364783704069245782652936191500232668893432267964546789874422643156389053700785251707290825822260737442511877176791065276535404078219948642578722993111792544951743224604423464893254769148383083506246753916494495341164314891285195411888323189093561890265693291093423008755836994036347023012355766188698965541872195787644705007091410758998543720355907467971698850063922804443464949698465509162190839749382063236405454400380512552117895768416236099356692873769021149181086515301589079014479925874379558961675330527822410313467847154563474957511191670497721688903938785740132169640727260875933560103909166051027571238409936337064408125111623688062198165656953243685566450307985789270268413029218109722911316912666202360727502696090542379941141200992442222909453041574784243865117555397786632939885646053699755396954880784483420611782964254109766295605789370107313202067616658632273797403267178825487135750886724084729439837467427738703282067250074640124405999352677874033667920547853609404723584204010063574790608965522980756629701925244916839920981617030953430021855786563035657800800598890485503796562870788038833626451012631526659491260424919705841695668227047904995284897512735130434157680191357778685379712553513943720355315503025030188380848546029794768569507957721580862054119632550016575575857231144520653386651962180274180195762090833373939973809974131619617888665383491882517392485362256875917685382817040747542756961701067643511995403271025633470430952932644527095582815869031454722105285537033010609036301068295768774012438982127669980390478395486276148191241198418249923738341564683749473217602103530823971809720801762045516175791906716576950933626354492211614402770530140753653179693006992589151377710018159814383197655350565772229580102776267807962293245541833682444543913162272192186655388040176121717052915626157060834778817472471515266321084840787246752562418653277983628579495875587426776628536951290317466652740955265194124479898427178599935938807578268053828417257238629217879287971101957030180914941411964626179640990995591530522899558444967215548752311508114970551227897327277114777855393421032262601640456515530979583213053669312993436434730294954950387893885330722311276023102576042804793247189798199160044778094399212539060897209843192299514101895547088602563714836332236737250363238117594896120913773448685361362489826146600591146738408601140657008375144183821451556975443332775263486356849821207214027598465069196403933815285538528911308044593882799420360876043758004607057517860963301256771652943895953772155948512244471263320670448605139003246140906791185811811353094123714898227781559546374791337888267769724572417320329813489359896872010807001204720030401287488268330955511711127568505539827653169369106747189882454456058539935544985859915986468642721813514259407229033320342151256643212810678599229455363719825436353086411592971320454945486086606610808170924813720612803004744249526669992627747513233202453867203149572196466001980719713567176942564914320115602209714948942673172931825813231200031200278856994874966284762128042601919797702347305315222281277172458255102102241805423972548702732987581893704261022108564857382984311321542239337148852295252479313842169773549635697440185139070913050135041300606294903634130210496827619796335690022804719863785271221456015357162849231290296231350237708342895053389319102192680275792071966439334206409907871033259903183075772289876867701096447133860525190455808072553991727401485921716368803915064044003444169263777046112492076499030085468650068268791925019460713897590274712019154585821829969436368095225162934766806071598831751037175318462065754767645266779066625344546937967291081736739709928085776328901884725869535772336039909432768021412605445086504766116160475613757944052842686033172138483304928695324149094401352510115381204912701538202420299624791976205517502632605003472127502627261164056239043175505372543248515251054949962032600221957472845120362517459210619693739628117911921075857155242595918072128763070833451289247250502325585493078895484811309327293351789517525869264618536472701847740830286587942774324452834715311997806499529832457023881176436212635499001796382480755755687035849924759772051531599132921223814896813069973656792842804508261499346333389763140389610297637696359858374093545658300284548734787056177386182575548616957687641240383233421460617168690919966949825463219175874565546327212043457094461459381556732273395866041769785733561294857499232786967883088902599082121639030601137143762804623663037643475315373203418755227220468107740618426832615611504486104999815204682325309305235063228699126206273179760709824417357180973281289846319868977694819847248992646407165577552977296794190444377188779948437563839853017500047352627465847469329701017115473456082622783811041769999537369049307034880995513602298990747582984212722507114443094612803451901866146349788581443942674651793704635093438980710447968506896561636109266166158442980412501856588922283315745335949742304006422124639415165475583897172552498665878883941439876698430687813544526511086005067258286246441461033159192174028819141813633253057316306489925455756964643810952919184419648917183714358745820222936446160027570649421848282952441198782906795705733537816101550880922861298412844092172368732505435413734198345169258414331016951213184217683578631711407868894866262178817788008918346970066224597007191815463402684599538638255845695882020294455143431871624454253514761937495582000285077095096218686703163857728018072640476551026596989283582817118696705204143226799735071830181527201255553177180983027953219233297514619906696279656130840264191105131873852629651882159435689551551625575726053171213700973404709241410448492730684634106967303648282557626165760731150032482641076639232537933097132767186678151883123260061412606736954850771216752905157623235603102881732776649561742088799201788770854347271546122963784555233161161288609599254331351701446015731089184301615970237581926552366005252246683400962560353588658268283458554699464250566715633225905811591266224653472892445765221270256478343765261653266896642677760317480091057144803195825871929892725427757593948105062048566803883193488977435681973487997306021950918740044566101321642479498339045728089532936882006647368721453079837767587204189859083356898208807484373198105521019544569280001431965152600051266471354417354911381009028035236935962709803780686609216314233906805993071532223682049391780606691892098630218710256248739869411675924111931230544971482661581754001114490633830356906887611903079804673467576112424654583998037769891021651811805584007329050043956850821664711825777459363201627361241696843784436141835027238236616788254729040768787992555570817204753325270298933886150408244859219973989410270298882437100809028568967729715925665101365563909038198032956331682385911038686697844996580292124945012114193418575416156473368345945894104209106901719601840327034729041779067827711580168445338509021968552027254682252338069791664527493558365032137580269644600803576184905512299585985857188283439740996100020688492495694804488881776422912719218859171476796159428465024305117649013727480807998220609896713252595572948256169420319641306497698425216744776610830577868558051667845681975960907546182160724350364562397525960898822243877642387841828748540408662463569723596064602947538248340069429788169696485848699627796030832107706782110876358028968375609454997975191643439421364000384420094220825812237080580514984535772716227631623913568533846687431793610310696435252081009065627311225265923518709850782197576805704372262209316833892376687596135087758382987160053727187643893765698300203855964371661767386624701113036283611082242778750454132276008432693649670498281214018679299816412410927817099336370022107632596384072060438876284221970149325241761850144475751396184610878720796601961604452176454541310296204993093100952962193451361475043956717148671009345018101297555956389869942362380966388821288954887227260965429240554359999879799393253915500955032272950180256782878842960060860247916790524891748735690891296117438224945123744991001589636431852389219599440183347632194759914290950486027410631108577964508803792095680234740759560216205812091910043202216508920187295998264159475744268228242035921323542815985844792981670698424014621750187074170871995414906180630173325181870320895611960394063406797464973081428673414581873327074860461588215095633061182824324191223110965544566471757309742661161671953489623313878505394353601811389143376951539951137363508599802565575900322422695209116207236987025489379118990506790900659285951706700602883641056026123223840610794484628465544279187227321773300169988840132749467216568914827708744147507705585081774008573852670591175557080754121231303665442036210571311682045628825309616043141233398282673647852969043311476555982536995464210436299524993180021964614673894338360097591189610884981141388670229009417364290937145352725509894219198645918967693275286778837958555963549145763935465765720462066295518328499994246931908144851049088814613732120076428812394264675713631260421528254268496073583209196877583342241637665886595750661871929569647735943150834073185331131293675352040572888104315240686710970756429711012204007799226572917271370849534186748136869706657483267943085626369022489996048163046554946894147828450365893839068792077882667137787867181359938559257436999130754856001340997549107752849930874065025716184552915007806382541030937079886769970549490223091618956850492568371582774833043920916937317559154098364008521735354302232180793624516190386367674694923721046193909553256896557082259544340322879555546069773334268796521541773723275849206957599671711264367749368818640286538890873146141495370855059218225588361215771585845924646602679205171298619092770443493197174731022092573263931881220917156586602224656260954254781826475961455469885449872364005288896525904641006983624859962751198599498932113440409862238445275170708312013137453683045346323095638379081373158214269370222947577319021368252861254020639751280012365167055051532868140308181998447508917085602609875380336572375476982178465481393862974360389121798188028817994232848855954497591150172263363896309753407221816337073061859590094285228857560040775031506098454757346752929455579603262869076657605864254009795847999068995285331723253595459532524180349532126894787180911537522366608549854881188680934910975126166501034426897283319406010817369604868031548934252103387836170819868196056046216629485002777858389808997515112226497621078665770128404438067967558541228187754372207404075984536093327812532017242663026958912917211169174935507534270768594426311433385150397336814586862458792046882926143605354185712070123643941268852534401400465448484287947554738075983268479470728716105395725212295506485854358162143934675496316926245035690582765633376922972126750133715049398363638147343371992717962472338531016651931047879807514733077896914148909473044383425780332547402760374083588364279226108716179838469338415824454187951379255617841557898017003051228214610149412971814789027179963244495324163068014347106066511011482247949624449737294829822968329307656027187724991997515706275518503814522691477324419624350091798809651482434202216932847194467618207718785591605282761025260020105828027267643321266426915725929478102831952192198631394471684800656104864401412647320236613247530882165955872878794005515995542691732599366943724935480313771052353587865465973654262730112855424338423140612325464792321382873294441931270703720640754787142969571291789787820772126027222097597557296515034217670426641477579955836958442928495098909397516313403812048677219598971396719979166652066890779427861932822950685715639616436955483837675762544345161066842811738971876864187587264426887723294128410799706722502814153012595427164575676492108272896140909373632868263208581483897850314362614711416562664016969018291933289197705318935526988770868193882448904145773473499977249041410135912908196303790014191695586965381316700873360211722836694437571858822332104843800483729734979343201381345779550879667563493337479615006606248190053008528862539945298690311366993097939493849665883224089802232086450415110585304983117068292924746305986141988011835170864008883352436740622385637044137433249813650678670989248936309597283123660045600576976107792413785305353386038074820695281336525547925176040362245168931957727476854653639341402648943401574669640774064019282285745964032500784305922924653505656764768213743585800474387381014449948500772847469591418754521205491092473029328749003033786109985852795187658580513020570073198646953809269343739320570369248418982101090154623584754943675182857028060924710398804402978397585634657849841936101881372975349308874873314354609843774860957306257494844107256471445655567035995177782873515856646874540829162576161913574961843284485841399863854161617551952434873226222882523247621753932026403291426456383399391637320273557744036487000240432739301493455557541995774214638017307135711835628169589671042953972272560250532424273154984443513756756636477501148269730283869366715260507461671401687260239738373847403111122832626182516779444178252137400442890389073452695743239977012568940464249040393325197382930452865660916408188734193674823761334818991410542386988779141378824788622165746166293037596449168893604432952702685709350867890092859671942738322343172808681471029983508232940863933786743541622875214900436664782191961334334842384128638056486521329506011096357869266313887251747998589781284231296538858068987212960099319473280372133019208522679453759220993462750636693618604678391924883953166530576266719711798982680905346976626981040546596517445782475693345699319714663071088887472496537255718624801196520895520220188588310033749100468888062659307787643839299414624093899441242557462206867757865213584619974910856358920878332717754344945710244116839080398341296948985349996022617748237867391539638147409452402224716516163556214787096024216460019437986224201711255615684155511598812672785707576986137113116007684532279833317976968416174842102279993567602320501205742979239269566931667086237403789324267110567127671181188420648012397532061799022659131083418903540079257381487148349075429179280556305789631965953638236288355546504789550305635815205580324193321336843347396897961914331785456305639243626387607754001128246782106684827195140012595227230973899212240537128837310788273067880720688440460782319926684044178281663373847232522162649411611836773746564396383170289256227234301964322179438361030750217927095215148763647975171107474906584487161989906984612656491254414980246281500725946715603367983582978510979129081490682284428033131849851661706331375055783516554806355399339369565575870952931765921219854003755180613302481220787259650575063239907677861951670022297004272664968353793048420249623411903736081658223438155666545660202886081481960398653748763137430665520662538514774643895817599646385193797408948833057234607769515719543426770054071284816315984467615946717647705666538227729230062467577669090806825299588311357050082637648221015667845412105068457656488367978750470416423146832250406033715220084045361666984358139154009739547074155571793851154730697659265881657807705826339628896842150778695937015220277302549377891949499034750888427178525712436866681881417312641127168310181984502562570258692949213350974128221539540037247949450814860488783730861704434565920180070519495183577572528042767749284855565455666357498857709908034517878686625704368102536388577384454066455897358755004202610251887231397599480872377500398461328524943943197213073327150041648259131361228341154971546858556420894603616973103264846059929697450213180638521234315862845784353604255584901171387619339128320361809266600510233704975408911264639147558641422659019729899115885022440167396349082395566944827933964868564433032707241996961286737638890217531827116438465487962047728541979497065591216300590678898461043124907109717590254694815597292640226735798839746795940870506891974677215523431777795192416284657067572010435053326796468718070068227336243128821977833136610137065428685685268607098633028909296149947419082486883701983780178787196692582515601658698055380759758082193265217352333048716104062284153867652277601981833212991209240315851062841632498564553034257376904157022318293973542919357874454298799983182437216299736345626936435052576955176172071693385476237850336999804948608540239716322100821592349657202189260111844133883916403251326872419046097567174178208073637164496343275091744104728151728918237058646533515611339454551986791225052180343388700486578622272508285006102356662587281195850571891548232138250089379812116776938596642875116368185552097967144737864483640105566445243914325361255846863480207445500914078216501598213152393568404615725860070900007883527677825944967593584714639333907789472140987202692618953709044263565579937573017547186782372898845129750167373476132236022129541380093813702409451283572827959982312520977136485356893582036561496284309416634927802318798989684683393443750929254420474952728451109497440935628586007839049472142410202847060712126728257178658499067886113148236475436223326985846096387344578973196518056241472108483802591706717182256936379281831155369460894791976299886020115205077273051895475950881164957692702597268266550274739649966919957721678507895571846957229782765287564492228494348233647196798259929562050405014843728215521596757444076618834488506263257719665295076160230990493171954109093449227287937870685277121452864917943938364199149446990014650260007833225774452766271368797842373067311607513931192791405413359711599949676166212084552416440072319381294154322696821254866706164400407947642560992459488985495814557900860251516728177809593381541578236146446934710132553943622524466302647564829048768146896524700000100991489467388687336642210007068219843033167493895761756871871375621387804593267243764635109226735124282904285686826618149143200430382637029615147031657798742900901351889407859985154868074012336645182216219390952219913194129624397005932869918106868554685482774588528711493576801997676282407918410787172520171986636384758420300522136663737831458033730365919521269899086630934029540284077402448955060265722779221976284427431687649164689855165906115111991520428507899925581333674846648533168006730731048139051011045526876449849706133389119692737084218237912171031392032488291076779334840683899993613528348057353833690297343681401376085890391800123801358594911188313815430244684125492902089572164578764068441293040709829070965427038672757131507025151108444926804050219106651225640129152945167997551771201424841447284407428508801941375584763992287088491927857114630141071900225177990097131644754665794856813606515516844528911565627999525559232116396445906791155022949521738841449974034732126048483104328882636795368437659938741098516919188775154057019516855116389306737463455579179512553784522468817732875256041009615869841276011580808997640039450605067854223975601114254306661286294891849212612483536839945247259946111566711811817376250674339548149050833303434420885409943761838157125996223704376282768468213654566221819539600072361705657793355843126508699437120658354813532133891837350168453700240021561122853412813427988075679644250896217691761360687788859421818539680318563644119380426998402858455400993929622034611829360596482030168808313932448516558620714422353056015119276666866925557922240039278164900400637402496423718410533407068164452995007398258891588502476363362701559668622191591226803267426783189166946932067874169564226146262390655083682204759802853564420327734858662767199503575423207034994199214313582260503043274069248152868375615851851606473715014913918799500766103349738751483296703573344525058886194434336471683145645387993716623456061306149035776478284732868592269370792970076378772992399892321272518751862240163870736395250359371326318254957391146125549392927909930187080189223342057978667369471654606269951009520979329456659195760552640756096708641378836955099561604516351496913651126439320953485321089023595821758816154158959420096606735819003509939223449888056478346822250379839421620127518768676471159116908264034666042965056879989429911688188764750801599508989555595130564058028189982059503498074875219482670378189684476040553307604507288881667967136312873826215614731904971687927312479557719040063367707365310271008949792857293737471486838634171143291369684882686982375474332068032365486481503389853198186486164218063712471197911415534458635520162299459078592512370999629403220098950135727771012027249621075388288894013575977824654112228055990242166270589800434284418950492919658784055737957845962337905668532247953894347061676993931886926751399746646884211370625336332909550286449973979604820413962363058571759854947052850422879456081369654544649421781446436657958640588129863648544089197279082032250086725836514124558218750393639899790674602096506916408229853370127567388829531048949784621103089218376811566190050987695778791491118971252561297586202572559041742143570000151027196843492904148151959956432806015418644412736084175920899156215642717434011048344963655434507906743077898477475542185867290904220796683484040064553051258759094236925186314932213736950996920534834589206953228661844292628386249403564044428683350802353684319407156247219630946812470615738786297270549078555745131244900798310930713122333389355408334383264984175745174241757422084914019679031943083876153843910724997124008166137090614197764575480236075761752790912983376117023093694713520756011931453105941995843757350804138433778069299089634195005389808372565179904970602334906316487162970828447327994317313953721382067412985893545471367728194990450990719715932399240963080580996006956024775268764474483619067818432183412222107992019889739456264242394055610615349123769739233192138232426265498664486498992879970796729336842349791977246601020751732494285352282984532485959647986643736190468391245527970951398327211516673716240454309940001207717472644667105102935491970953130143786382177955856931268105175451973347047276492858466066006530588162244717142583351420209540350788666185427274423253225833036370101175910201043500515583121749321321825288860988681770490079209249376573156882702947778579658276157477999445390497988182266446128586133078620168130595749667242790990427965001101422738498889916375994300666418931305772270150510189009390872614796558782613077483451363612254870822320490187534113524722728878903717204835976504729951081911347583904836751916912483896267753106802232231435491284045756026905571085008615802066877352346399369227618399704250475897929750383774771872846425391496268427717220532747353632563945851855582195546766355047812937014696575192610713528357007825808576698417369779087151616599753426998857354981840189098050602809553809711991166051697316386996395169639066904480402268216583706247614743791869179603710421093108242871572193671925474165575231742620452173559368445708795074615806306548053689846022132433699939780532553061939416190936266956610400569695806752695833134258762746032907658613154641866822000532388274909781884825774957711842127686002095980863512560152276014970607328774092526990324749977915555474399330510362729690706461769035312765500539162099914567915272637209856608018706085616945891299755189257441930852058756109367122929370561092041890700484171610689566562191471773253467797385363757030202070256361733552113227382938394105599821810380096616624992676815808100843121503553343586593051992322661676318278445489968224536221678416204945997583319084735730174358752319501041541085361297410006442153626707170983995293671780097230580994618974130494769390763275590816596904084313179545208153405885447047060224623382512393260287613435815779622897932811768270832627999384309450438407927801276900894164127280170266012915743908752890484853069696353353063107273590614239927587231023856470807029551547945787404460450065209772899533748843148572240703232114322826105872758918953527091634925802806092910681855313815896371668474113051295035389704278089439800926474981847533173137025571530641912367324825661322194259082541956496882178994442367949730902512247091502855539800079139213411154077572272626607847464605922477616076657559340599907666568993875090429527027995754390636040525824730030323131527181981511369159385655707156106606169240667787723242107802531888492311333607151248904500997814065819091654248316308620555035241531932822327653105706804066999404276673676589358724884958421097395686433997969028942977765501975061495461957146173449801577834640234599567378185905131672718491997972063262682608748453182275755538747433285431677909689225951098251834201115635884192972333839475211779948952798120974294802697669639648835072081377175651697041260715905458266772166566395185820345167802476282911415248945970493550354948954915034534848219710193721045674995532925809265406872004268110377808537946395800630607757093543021848419834046047712233059175317536260541802285762294474349133266885392237186542580645321006295689211597904636061551417906637730059845193549528933848164072553323773296385136009067796490249906332178017947548962185344411048973300592281017816291246118737929224634640156924115707639480292564100450313725830059621267529793992274899592007479821738208131959289135077946434202575713422803512665555961543666260264158023099691408283582138219517735765503902349973441811857872430773136196069681265377131665227672118083771316797720789738224998063632563073949088070969787957566327576669198632412480521901348830111771882491762691565357597507576891619484888782059813127015869054700789167353097882551352130544946555046819228831442324097504785107969863917820852053500132403294336871637290737952935011106932472137699715872574205022217923137733422986422915069824318176315373931583841814453356577533155357552275975034079381183662069301125418537977697192939372557320121917300845500373091766441606376512832135052911324562482612211912033925912480507385794584027081186574201762579599357083687877700091922152499320317893982806528427498220466861883770473466070926805737306358571305049325550616997555917468524383584335398872470226181477892970539530887401743396747379996265614611571698256770601759502354469306525408373787891125727751654977597201609763379117088789468293961235229973601963379052812256654087945418691102556751635540600653403085181314360112003701454454718776413165620454154045192084104896249461701936719050341980826023551399623475407729487751187255263545537163737604939906937082024365550726945805563310249008770689737997450587312373693165962364298467566325130961990222863374594262819238299924927598282331198159249203173122498403408187576934480135111576079380105953427590854026350605833421525333361734909575161691901465227116057406863533876246013972268607812827255114613054266673012484385724518646057306824775257333754346141065176703181646375216360979716991729838190001302217353859283435566832087414411472267719860418273684906652416323782090213875228966788813457048212134453131356704957554834337157435571228387049753815941021569816796330587114081928125411758362997849097834949061131158728865220174649300778641102774644992605181169204171754322147488958465542013440575299539520827424007997585363778875034469056992861280012372669861964783027214022210740965070160307911649368976499340922417056958806713062367810971070849173339414169663110198127850495597394548810451637090135798057675153869283261795095158981510411554088229376682520051894853058935260130824372094169633725105326598274001244987552901963197596400978116281032781064305443248800663120553750776343589973578777842347625354776653764944991936803369272003209196645632455226996797411893676400624121237053210619611234539069682628668323126638330140585319034345212124174001302671369824995009421627127941662780269797250002359215752033151119565828527812448534769329891986845895377263987129409388137210999984812859832712624010864621225386350135757921089486235800192058985960728489275127344835432309467634546363947152572328313219305382072979408617904826915062132173076145310145041572996273101724345783304953622827593733751864285693926125490533882236266321932466527216018857296416842369066424187503446111633104186393919229456546870758458818598641492013719113546727351511197357149373040032758084331437015031152056709082310900736678244309589766120100568692121638926402720883992649601241164782504206210739621824677189426142282772345620686114043730983796405728434329325690754572951267310896316263594980639579790314585808465012079416457558155493643748370247697710356895858717873222257581702025159453457745502632126908178297881598162142307960903975088674214777523785590113601582959568740394944298839989385773802899137640327900169494870317483394923318586283774141483793317871082528309694906416216163100838024638795875895471867648100303680464335617906782436917456846364677262488682573666115861674175326666643253615554109072328229102831273273975485290730097906249558552470164645884210625537784526117053259291980416951608580330151988006114012080264439366670017505658167163537570238853316143026391828973302619237009867441944259225423707093595499317217993543886946729503374808089712022105642188417192189061686527236170939525572623536087638709368694486199983311189628056084204176407345669955632581238459784265213387617016066973552344086288328810339185672367935921188055303160578086591876761894317416000185493959358269691564986563976784817217364575037453408703215559690800039628343825250945738717975763778860181795691034532761593928995414591544367452812481744763251078837086561521809341510378308856473354310314287486541457959005054920676447622044245075694304165155260158486221655269135284807534205427273659703742169059898059872929722894478099513957576504759392295464175618137049750084975060233654530926884280626729779035648460491687067012110366310713542951417525325595518518371813531309139184172831969200197428072336150530024296714450518664799965694887181860868582334490783521584261228590856072540399562210390491788826068312384268272857003351501369405402158093762945603611916123466137111436364044469533440619785806144431503161595007644076481026826789012090066229174406010975070724975318860260171706942868908102173617450796612088919589942237350916058813142828487057149933538733675334915671966768024850612381578643409050216711870121949259294246705763430286416860910311391863302524695803734637207529917553361822404854538507609713407553728084708925695606342596298375793975248066271336896419046219511307433486509027116092731449316854977597849414397259185919000110346270573088276436174435856300597521420615051824126417863408871203983250905391310361729290576772576783718797338160485144167551781371889728552782820474044761876945104016476193807688306584111492905552909384099121761958692772228417653181124427663823739871064987126868322389823234743039858363295955392406326034196207127499520466274548608802927047397741722663142923972353804545562888694898919296167532839906099896152448555258973113794916140258199619507558225510840316745142831113579779998038026686914908351508923566946512311118785399203467676978807530230447217430313148559376429936939163844730305376607416228524847628551106779964761752446237419327408545079483810228510822101220882354940128686744133143315877510401391391850570564277703298186412244607733215083283358952929956684861945474447307926284607652145648949132239362266264442058269943811083357296746735519008463223079941847637460346159707666666212966839227805084979265935591508361027993863902323017735650929810691423071816717854918024332075107006398487030470078552359952958164556764025628319624624621178353556746208838445995799453827454420379980569665230587729271888622421099253561147896821756255895031681047916087415667354334237712430853345111614129019984601948271943511608199594386782556080837963976247967243581985014434655935490096299519015008191402477707806284557327561288029604330075812474651162412368304825615847290769188260321937425575017854557970876717507444120281296177989251974575374549311272408845277020084136945663813845250066789781461656743753002696169976928946392716375977632426230164969308173168962832868265313140846440098974191654399734646088432442670374787089788703318402411286445925647268616245122773563607075357335738888145741710230043079730728101837671902017205921595112787614452074036538475201102921115514228192528832446740847447980843338837001824246972489325211955875264551247040516842196331754509775742463318353465492348462640293940994023143429404887935110097987365792044741332097759915499082965810128728790627337743136731957590055148020494706137836081047407899676685344777496397774858288551443403655784412841406750343768540202787878209578719246639021853536644873344851157107361347494497837429147559476720962403018563964840716075602865260447532013594636675854856422610552511088006418065057943974573278894351997888552858648266956208785267718161449065077984883188670381857516562898475666375516882880646461886289000182645965331326602890882609844906945277126212579047530915528063552274217479733214494978980280160208081631002697880261730767155322903724958324073774046234785675369753594172272910708052585732990691232041575046625253872129152131245762678310235178503650241942182470583593072742474330317114316306219895857253354856323282859260056477626645320278488632911888403531170179401611009240080124311828158870854291191877598519543229838811213478216631192003177603174418745537570318148322469428106095899253413616217745368657284177999164695456823633852164313959906094377824059881546283092477167339835027369120017133170323380709660350286877787046880332389443543677185686483147987970517991049085118523141208279319918326909822390860297719061099429798493929239094948442221839577992215639215694634226177049228763986136566667764531301060749137072892734078797491450171717004487599869900908765112425266539717409959384873178445913353182663621456799895451060149794783219401346136926022141317792544729628564428841319495384339998588297302212601154172973614814755073852161539919927341090965889745034352615347814529016072049862301276722063205159228644881624778491748325214183503733096072838354271455577532142578895863197630764124524878811535588087047558364603548610722721904614310906303463120500243202544120577223963029489491603846821902275084700783259488574184789998396334301135095240092289436370735094667657700035532522535171884896769251603406835773731088332173593110177540311070507415666612136487065514400417594171757416663708715403674710660858926680866842901268498043914882633178764698216086352431004810737759606327443541507669690492472487050456257406413987848767082331047653090061656726506485839355050798905004061474685522760172312493264765795316844967979595204278241687596913718603144879819372767674001928921778298665785786097094572016362001402900223418867490136533559825747377444615559033817680025737411290737464444847024877152794308711649533460944945992768421260961577309730826715596492012581418534441717215124153081569153174555793735947152605957746323670587013303963789804056182444860884183264242617213268406453516914774402172940817517250137941830127859844123402074365536339515228780389210879540149953502644081577305409198973055808914984805351877125073437616097157800322749266943557403520718768054824147710739487808359116805422492748503830728905485086842927830403487573106500493913604672752550537374655996620974004097106938893985790134515273239778748399409570175882714415163553411170912845690318768338535763752302232745689887477076356149708411434846748809807980940296558889035566914990176701816669353040031873010893794594867099745848765187651234420526052711366943967303132777144171932931545871303915361051255176147720205171854920637134087775468580890358567313439258469315383894940444023065796479376373484086105227745194909064021122786428955429186587980886415037512069168789880583901836743094368770356142892974864649691086233108530593519908103490385329955215211053940486989449518576806607744374049241293584581148865586263522399206997764931768141012397045621086255636165874458354195906716957723123672494069646726130728165635659267710599946429143534854729783029307031348250563848008242608363140764876866585427251504945349110879178355280344669045360825121454925922455656718052446249733632562649248246277907561337484856085816400795783244486332415093227545020818564659188066807439901732936899351887553355388664525624735596751879293426638220849019319442823435432156087877450734505938986382499585894358771966392922074703061303337888966002291881621918050653726820513329514194218172690175021645897457022607231062997103517359393386042716702340359505912161758042957009700817561914661051046474655826912885893612746681418017620170826000477118527046986944727046099935390986632043913190218210797630219011576169577131686880237208325199957128701971291468861053637506346558583449542605783952126253565570551639045987130174313116550301757739581948198828423604265378365491346155988750461222102088903996385269864500408558386776611159391554270553596960350841650461788909025636782224456752229725436794321964811066642118847653094677991657680985196519444727070964437632372238042297488329875095978997501775957047781020378014097426390149516445459153322427480313007628622630217413408781811423473432619876367417272185892881114419120138161335058657364313521293845245591110396964632590289134780563964131265589232933705070272866830997917822622863631014072396256468347162134068124435590640258529464646557399389871367955256008249734354879570786296231390810979015642599683798066767467055012927471163943450316454734165508845327191955462790651199565853251214353895558789328089506990394120757515098138314351187577669094905526269283929800572837311034834954973705657432504164616029477608017848875494999479985663443349865791628672485640762614372553614830087655671259516829146025677621288786910878803160425860982921774601290085322570391098640504579350021601472049402077938698994612183712927078063584630210594636901430039457618302610150298746678320462369048467411009023811437812145960165759983728651656773367669115718436595543618286161422118141254596912547178413808679059207083378860202678179125498745481070357357085749893637846678359910252348180810527754082193579810121782918503854609455069649884162880722610743612391598007230430312217142231218760669116769827497524879130119734255688262625689260573263589163678444942271583740173134369032547582714329904449098305522787484123636495684571764302485710176475787686528259436236294562547919691299446866133656805571411584680629784266199126210913673444104849532946025938432291430157705048502624785751369620082198484750846973034830540527415022829984386268147662534668862369963737055041455299559318848595741308399703911685274348070025582743299366340500665091364920970251134116584177320222752819152268616390013690719674987846177411262569738424445117427006530974984800079880222686670836294915610249581889966336627383743540942715793809691889525564973614611645343491714832919564312307539027952428767346128872810162826336109123574436196415016765274451506991133400554633613623511561653273062992897214556649185525976658850535282167323663907507531190708853720647447671797759003716563637918806202971117182035757333276833723175165896130921717097116324119951548333101229191729780674268286222472146583916355330841064107955611761705139440597971526172271187883360943628234806764252703030030561470583934799612621129964986660443938703094234649988685860828817741863312952968341950424792842449060686586788694040810059553854505789811230710587762787961459726974332461157596450586535198490600768545220407186634777404945364892223188992479176797723555933323805170227759278533163645111457452231239499168111084207275095174898335951456594596886424106085273696195560090935097933926608582470479803771140315786508641435285567685431862322209780656251337692618815299479839696147375805914177255188763113714870934299638428402978573049789405582699856630258773935463045259650187716685304257021901687865050653760407259771631637925806654333303492327713335701857305580920916158163916301659422614753796350042959008525941716477325661309226022927772196596313651553868430631051550930051701172826140175947262027782420218915849520214913343536552928925958958304246488391649371440888179505474789413334801711560902742130459082171506447229399100886284324888917355962482151465921627222930633066216111333733701081069441424028171250198304719159975536626739844726574905710452632516489537791883128634191792351618079493098991691817400879816124333364798652217169066319841723738246824674601477607755404931020934410724300322650888398844138755931036185522628102530372817504534639782856348529545325161551115587722253084492815211550472068851898025572053033241380696949498340032288229771754553845263860356621087312732907419573299153400957424114355252668791337790256474512717307365930074032439607513705932896076758962600485031710024974248508206848837477668308358191014033114057319591478526922048083963108460063419225543192700133918049430712421712526932782633158733134756798922688759626352524883447246349722648407833351362726823125592027257552489630501400456247263026106173335591695219084157188847238211659824650992716257309261533703411584948739288055284596605487195953662925129025597959433026286785241144460276024477879631323050986511077125564064641629099166468622348233381063422129696363842496456504331206448145877158195713369386975084390468260604325678677950907263684214355784435375011391744904227935634841721493519576225519701537813897126019029749709448812962179952812203771154144010995623121789823408950587816407082380174158705606204951206057926083297338202939039326462521808893587994718794451407844083253871339175698794155302447309583937257457262342573563614194488515006511324285445371212403468738531742950300133563655721048838394533796340165309209575287292692972069145105869438252595263061146287797271762310665595733599746583720089228130472571595562170565065420932242513046404345059794429238277715051704577511087327458004754181158770320408785889079738574909291828626074655207481526475285104667678304004781895452520987268979397125984240891166241637895940658834681558693694231725671824996432381318571711735652201709061911924663097827805588322400766694624594031981746662411969368693462382506219248678692555705745130037718472034464099125010112566255580989705450528434479171447053487636279805574243967281093033763011564329390054845652952725646285146817969638835614603025365106744808699915109625413383830147210081435701117588628782803973284463927066970513477429735216975543937535796429737333659781832420408955527343070074903127815411119209259575795110928874436183598179521470334880769232587173033252198762464275212608496129765479150063271763125684445897140218980034124402615996419714445642756668593600220876246930526649122227808813350695861141140609439616906630547158137215904754620807069225718156222988024379874087828507711305241887164042112246813395214201645153615465543611211626328135264823328106153959666560641767111666617583124509597631342669750800836429900165816114810794958643466331274537282057739239431536172683348139087629881746887404011752977115018865674111125290475776044634934568446483983027024697265225891790545674294332974733595681016970945392278667097934962545253487599962723598599302600281358581534782837217964306789693962624457631099598280052374586564249011949653931614539414180174370933333882940853586005957260716104371860926541948199258798108136867092002207161878836604683474765659390276185641682230039328261592016505530194852960487249877501536727499503220760524083859689984090480992219308168831298992625270079148845158832939041521537512229580408039113319843961938084459785302257878392128554656150989062166341045351922990335600251671397294519162418457632511690947577101990301925035123129135740709440104376124555097781228815177271138035249909077855735505751857497291774276906426284553150618145908633038053599995114885830366954809812949686349241482261338984831624897968466532098477258078271250531742677484954347609821862368917840662310305311915217759860924959180869150173948797110767338181740616820660293508431976204525577135274706815205918106612678838005366302136284707758286746343378389995811397426598101755589481545744071737408675801546816664435369358544840066721298500901183778139071713155562724368177429522862533374972461076107753109757327280017969744199814746312110780136792272833827249691299718380207180210014321100355823871296141973003710082862900172072160708497645557134537918712730534220411795037942756110173450606552484184069960766613332128294852109151336258617040716253319400313104279889730005572378560708088007821334052924593432874670368631206230687807397519810252998910192656215746121305833274721536381359679136405028529463396726395231202243325916382214842944594223121865973651243335637748252696017084097577289861623232517696573238949258084816563803313401914645457671020928048065300429534080327136695401999812870855997088547300276313299588383389777939342877753446887982462487510070768309410438023293815817174936417775479621802123661317706454655868314593943113051563008621277013946321826861666059576707411854498686356696343103811601570648831934099295350191877571024037786218246864225859158622630198918682189295639565211599485233468917351063257637032230571982529961462392514604119134502513934241382492175823090463200602892773054740604247013395272303897488583246903440564807506593008551871385438033375757775230290172662106409700859422752060117378781592853415008744622133792445775336072478574051887969755682786134646603887326881925766935890429368704697559096405164977903619445864590385960218973460231369258361803658379880027487864433200392098673489550553346568641318336732326436533414977136744127172269698447734684258240507870427574498553587120958888210797338679577262902647752692948719474368610891793832444349749541486694248925945285541992727228556896655523969228990066245596776791716750379348154840845703159577842198664725999954160588127761207194966752605528718352217943354575024148386599581883385639153095989597785247097410639991648979533392500162081424045535814051386753005790952892509051160258455953215302522191229518847852480059654739775992332880571021230892549946494055935491965437929647822297987288808913126495786814854659613464227285867366773203399083858842351298493801807432777360564299108157505602935049193455942087371148520086359446606099022601752556652144888947963264654135690887246345728261438739021163105032754196668389018302841448021157852779814862068937790547375670537179102196617931470571651824992189553196913975424305102151758183780500871937960321450037432807090113051398210389151434560020261347144869610842681789225336388619920289199699009846370722394279390156817878689517879412586988664557631538831227311943133198366755864261493253463380012153230351464333695806098119204445039629930090888682888105286231440135776816111478663590850367916100115537146678004024313104035703271835523583765505471454688578634588078581727703404244657978142193823948750481421666582163538388366110704989640326493282591732022954992201356399851224581062129781109307905165126256135844756113291518442200447255096189869816846643685899971962305758091335158551743426824530455282769563173457853690265705829018228412583448398117233538238317641508288089013673932684885013786781124440022623823176366034573134045426401391236701711555723058540703353973682921469397542058777437290427260815048249621768521985511182497088777652446249462784926999340277865648037814071046102112705449317893388244468845231476734843813517290888190115742665393096714704543047542416201428079551600276813303340985276331730055099818140051100678330402828709639929011962508988485009404950305599769272106694247502512065844295144076761089899130957437933424588407910555315565257719268419339807713746939472262242964918387514247367433876124150812261642338662235474439732654188851438516671113648899707928580596079451873229685815672381529544532973301348045392979353395208909212059202542578421318233625173522041611302229950441337205287944202132155104567206740183534667811222249018270495298930916646470289888304956389894581214736729992001927036909532941865657792712227258885793592132748369573484491835376570778226913376661950888006116093804956977911985760922344128170044616592599838037423712421582361385226668564702619216226625056815377436732054161280232297033739494576726644906355459627594699439919682260205489460365888337829941426638261936086061548172270594245464711004891795737222212625855326370627696840693729521939580107241868809479270184158015903625204250945544372775065876998390762707655528425438711219503030859592658465186179966386243555273492470088507232540917197919385698299177261179811347128272954743689759363148372463379200433741516810603827297052409725885668276863149565413206395476061672182639935929066795006787141141620304367231700687685867660247483999896315946202664670111237757162074929598218510941357626007499543940187334317634489567036562446800011342260798341288233953489359664308303553426733719528372322441423878590404985345214121640492672119619400265373797646726715924182116355946894376097593502787466933013372348452513644268823538692074399891446715892887797124968140166244015668736325017870970002616246208890648397527590369705918261295125667286133415684687480264705893948809921669942493381727982741524989457189288415632168641558040292432789254110613003357767424295406907555044833424679073742947496052797165161547864702700419994597030179564062867073694824777689071366682422829793619725078016142539271609313406600204001213766678612610809601163667556124837783298771719786965352534449133895099967917530073222688448273091493439483211550969229139108257836331127410956607418180232888698000093910214828237044679448137621270562544219773828399787885845499669524672310469139850472321989643513174522943850362320949811575323784194212124572655262289514662733980069420342757705141646759419596853762011249813689836903729884009288323284562435814249061424593967169574967750115204366370863895992668966553782671070485182683082185012601079670477575957615290606340587035141271358496103535600730181867784694454659527655751720638395594902557845994299235107362321249249761291138818810549718519714138286777536435809821219135700336960904468946557733350413921945084072475793098320574954515477656502216565073265296090434909723825579863111458741612348887038783805374584858029662541886147675804740814264658428878719016240239223289189930314553069603538397732466339525551121088403403398614066895175311425386942127869711265076784290026639991337831355603131164784313312729002586633443117859597649486943193088608823873759376341982483841605215197742214764721894064726354505066545119152368417011298686996923655227580708176509100037473700199854095677981173515671811276017809525656567950602129064518477682844988177067193225081286181914069034675380928774254634249970719831396953077774122370959398842408628851902793943271316126706262846198392920473309832991130930063681459456126984185924480587778353077363232173119904014874223043835538059928068767403810014516103882906651822475993331288433445271847897148080080467761945643072821436335584030018833549847505372963871224735946781656592679868756030250462694843798863278089654924880037170380361740165490908725168054614001270600935844544662936403034158183736467074423784972282133700213186851126658009840912195408235996741696274545294010007637477682999961169093463228072059678786737279556251862669807686996226336490323833231375016840694478030853196520624420272750892618422735655145260474153668927145059260260384647030076178334212555413838100476272215582467848532265011572394825959865609994323840790434356172497673417731249630728996568494450169700983317399145224165139934780074017974276633992209793755344528078386197148114538263645254725732002536703312486940077721357579061074979255492519050012009589781171458574205940474657996164294373553043321387841911646848692669927353915795657509067775737481571558656734691216939059155457048293932172144469915374024846978519990551317774119288181342912593231641657286965375434646794548417343224534942141671265525893123758876177157087885196097251488939566485479267370852572008094933730136151898663697950436510878547621765621770971340693555627037276938434731218832970828043439038213199263255973137527310409631068373065754845799849040619775700593377885484710785581731772387457969730994716601557057649968848622428579516481159755840650007466926719439765174144894886009515794674245950606247494873861107361812699873950575427381574860938715230635044833477581912937440550316198679161955741912966721936265016007171471004618769963749640928771673168627108542107165845402711965718091929145022461634210847847450396919311116029448633887147277756372780919239589743475482383478954983527749514744294809483234161485949079946221144233358420898211469459196183905928633085936508723759753291009991535129647577158414574010264090469881270991422586057729684756641462750267489965772139125221125968994973456606921507447723274566400240250215246561251609301311344382788431376818235290599369034182745591628113805392019136286124346273852686024379455853629784516733759328103363252117970724655725057875162798764841421767412568445504089599288465258714903553267619539342575436851113934343969864442038811695954637745947822317958463136014253692383339068048492012058704304919873517127930481957668133384138042111215420151099943910598396211324385943625129863621830185492418481094163818503034415219577281387659948783722161117180681819331819876020509810776631527129715322174007857342259898187167125663640502951622995984149393639429909671966157000692845764881142552836116746766008971720975421079282965038129326467723085152772099490257414092098848043920126991766948429876365019531996412281782126924144301182748287668130814166947369393007446506074881391445046420982761774226702381107950878889840364174580412813761013627008877130865696595035828841768832766605039973077464558760500222206607560410579757903276971782377707690617960213340800518045753115535392215783828201109051830351199236173526366111053968202784073844811602604747427640297793577008525894131987193551705176188849949645082895271478448099516973482150851386875068572990148307937676020730696930938930939381101475623339071369768570153096912736041861960281232467392658350979025033608489382055845785606261012052979381514196464627428503998909628838273590148517922198542832000996205659575481763040549903032257387700563398199515928452728507024186423407716960554443297404553537809247494861067934432825976287582455883581364377514372947989388721258536337892282885395602764061693094086463567293276042181152585283455768724505863145787921928387445596161785571526442016584963585838427178211000065887375002132573811344058797843064437167416543113350132050009523306800605655522110056189911828353574847562905441514701573808026967511421214556005533693106811663626819776045041888686515904232067409674066242246597902861027169733722895898944898073684923572204135243368747731464307057202144227338201403246736149371928883392861673770468721515987035152528513556521223020719455809400133677520524905398144046776049004076266428357375669451288976205544779095983121660290763705612083470045844544212274582857781469997200105562207631170864600149847262195857280013782117812619446300191329966278684263702607651757186752625202633536507277810568968799056744017778724878011774313744522154770155123421320996363802834227246861301851599635086497960954947744978451621025486734163068363220460800738911648182317236323531775783539089880650965825611293845422206815392839206688159691133019782253088880079456208780054540229080407043270510584646565179565550468138074756329336818685546956549973102841301439315152411774579238864338664266029150535604779225740442393749331609896952736740040347033435448669128343575355915050826025388317259786956723684594998483685506974342124594223805880896392485217281067756320593018067035380473571933365291327049277900796012682130709702689603105430669541184154585680190961299582726098031246255463642895634652559166436101623255588928480527711917754601325192818824582658005545644424137573006528554769967069455355565911199859405908262562224657056029543163686624248302033132309987057067536857284399644083308383538896512629870309643918341525469488992517900511743550661069955799726454376790800805079802563278580551266618481650527609952896633035859479932184326091419371001671714050867249232872275264330221629447968529002818551960923142359056107988705768903187561522441931170645933358397635299250789645282393986950385159047131624055731213968746487927344960247774965931179088307750950215981870597248741971790576816695549274489747884099739276235100178999988452611012527040749066524058767720908831121560953470968764412769513887436830034749507854453088840873983357882761559831790808741619934921419600267531140576643576255990649424234319156943770668207493070256418819928293576114116813569067829144537755059860142849085481330565707191590138870712818505539185867600236310165837778769231777476640330576848218277160509497121532182061113954945185219363812395018218153854462219481030018099621736324241145500979364753425721556210648836065921026882137117448264027161945511539469577498639310122774205528698376074058430444643030459814536035813560544308204923023682363787379162614755586610210140507632675052120946231572278158791627321824268869240832895522775042607036510943141932954521754375455932339238716237377024493131854759501897065180678214651606087723974695357724031502672247210421556846482305011604478229343363392618580189298539253589256651042771338001263592333444901606506602430496083225459596063099795456590913826881299913524106915824623464331891570180940929367094340407078008891708216969663422504439743864789552883581789668921441502502234326443471681249447357747912922533124652846872796126252119921129608828602240708014483871795138081811808353796421291770142289359838488446543100690817296518789654257600265263233744749627562169597262182715143891471311591104889149431233985939877715494782070340854656714019073683442500457422921813103996855214275080328632875279180694430146090939180187900621359174861919647206982564854716772401427273064224450604143653787087851809207191336550188306158057536116610916412116644649686126711164359315136701530538402626113633781757480081919487517046574733534644854697964221558000704942357121761171552302720955290857747480191207231086377624903153561495775009833932872563906315730434891776965592350313259155272309259464626549632542314834671698969555340753715847688973735671098890512741877393959556010255980032501981732522308394748880876968368979635309721442348109439242991659170575813067761826505605853266260936949446080494823570171563390541690050263463655897546215759454432815533610738647494267832772428446928681484305337719129515183179546283422936954703537410841793267693333957898459464166403495352758689851211649567270191348627424695967351072685823334432616823914388116747278794015153631661173540667843638519019596349857326488608457836333036725556999039923744033737661859827906399891538625352277272728998819973124510760609592831139384553737636926645788996892470835555039624528698100392581337861990234691680664289568465900685482162374383266893401249441248971942236995656418250334337444095122065919186546491876167664726412191782107494888142913571355563605015419120304379601914868210831170881841853497508713013839569224737608845625188119732722607802587242861538597880829365318996996987280225527531643478958719365160668100766367574205027932783988534937051546627960105784046982519356976908092813194101890548266836273113128480806514860509146176748281477033033229612364994048860861186126744554923322767960841715202145335936704816267329566992810123869886357972823421566607172836732337192435553807057321345139252075606518145674850822992051188424350362650914004504910906055601717998467683756790286437973549154804086907355734780653660224651153029881072897247799856438803549051526233379341550329262076906190534615007080574103487505778215910048864188596592040392665283146473774301231162050804548048163439470698767138537112898533623832759230970289962168211309583260713553644541599279987416125571034043265202203225038091138649859759335737004284785155714755916286829244011912081040561207081944119418110068790651724801806141725297220937923142611066998969669250383376244963461606543976610504339341583004017979454316104167189912647321469465986137755502556645620443792917921010830595979557247050041119010938976132831654246360788364081776785059813097196416989957040101457133890452537725496413838191714045838342094574887920727854886701686505228410175209401800626468565612078880703484229605620517883757221284508424847492353600913597605692471308208849089102301700447187186046734278347641674986012652618664963235094819002163884888438750224505136174198852678017325509774842135977387401631727403864085522737528879340064312755303216416861358672928131136977287781336856785172629191020227597860013046317744210637428911424709456679880009990513156269518144808578408063434603509161246783424423571672997631214147568292881623971104657012501730327310600288557823335227037632263544590929537812530058128582908078073993482654025323268826693125508715226571123715088748232328540514413397536756268407544098362929603168471888140702827488971740805666120779095230637356870839343290020368865869996856811802838046368292586831348150869185549449761235455221440814902497078156724798086055017971406333118637425745453531706082664703383127742505850905641662312826929539125001293436484758971040181963263980692967144561919420539021381315390977708656912911711795142068039765173627054718131038201316826132772811312888385853581601593858719148126633083796759107994659762738762024105900790829327879607994662221114458318495305159651231650398622111330099552498672622846247989549667057773149170656413338130851471336589535684532953921203910569445054171599632799918497368180804605872014486669145349008467349300443736425330150384929428507222210025636753461560381327577238972964033974086538241848706343073447352543237107361481892561354745316492880157673776746745861615724583938703268829754088272811708946201877834369912706900728777110299429660078457481830975007407969511892908726918447828757585041210290727148021812044714289993510270894120044727130868609182863100668987070397381396429664678859046933709735130734790314587799880195945351040663129483838107991158504388251909891309292552602101612077347415728038874272187721331662018784122652698813686136820422982322004512834080605728107154858058639932139632210175638071410987452576836373619264087674333106303712546480959016233994788868220198221389524805649456111669554900610328731212567472736695207776432611852278618563654746415599310333349716675600633459779617943988861249388773844864187426530601830231339145392468512017556382588252359254258288952507135208497713040938406990165301658553470191172026616743554251140876449236913307732533584745062438501081316328302636350421198612334398179021882729426325965889670879375098153703177017275845521002880863132757403016601608354151682750646355667131033377994273391334084807631096797435712836724329637968737995172985405897084442480737058548991269781157001803894163800599131969483587824824916962591194159555943282695601251698396784450975211876263020112642074361716008158527548990173324035803627206933748344686109722353722652877347004914850739871873077368690221622823830642729353714708447531493202000142977564049342561845202744448837136039889279579587534271604219449821762926774898381422618111737500486838800564052712363304901741813604257242509106868650688625320698792173632135772988907525296899439126556683615028358427037577877633498947247610799692394062503828036724066594911400793513182404473119386541938981076861559050919799152279096725269576163319783742751470566974920102509153006611978559046231848297155499098940862050095859685268840807558569933907216668594691902722025537161335097865339173220959904099970645507795094531159708827500567124515645835831457664891653453447893728315326291744960410945933843934061253871280508156783906245594819214163658340595817390982035761652863781012765893589590593362249769092816700115611457624348164529867785381152111739077531851523369123955387540225067415697409001576248099955491215661390969526335740213586158236781292155402473333620119888864133957930804366449968258394151167421809784997199500338767309808165251021442614596008551183479764152904497038789634457307352682633095071359484436960529815901827819779477116601427119288583140643780659975262821794007931741792425937252468858081853953203249429700335489077250004188573475606758985071623324058658917976863661870659142601311751874160642039746447686763766439442219224303951289871756947309514885375702017679097971322782112371712196062821445472618290951351403255614725842013476660663338084595758289434255243055166409095681888620313295231379518748634902134510590667728007655104488891588472073442274010152190349761748373013782689168947794887901997052390155130964311329716346671471900301373095564207308217279016046935431732357538048869285089865822480511670138188614138691507851687401173755245691837539131754087806291198215679033612162573002780764892893235514620594209218803986191737958852725356212263014918812190496986404340119611417108431905912000255232310171137057320474779323839108226830834202293511485080798020919012601909050438184660252724453087952739085014399432210284944840876199622365611897297938256116021867702277467968627594036078159031206467989028476994082703795487503875803798662107298948233059188278151863477803364744616658817535177854881610986737526312074481257085166780393057644673736618963200501572166006599794796710514223990520103126625735637260220553672926295621536833370381452768543939483543913576236085200242114751501820496501684215664477948501493677273224794403654238209598603456142545772791993184635919716755575815683521302331215047055181169417361963113750824106004855496838603694071201198152806866876023603496327049025006812039469386611679456983649486146152696758768439130981311098573805311164664306846986297478583498047485116073298250507280222599180596586640372597746097372292610511583220534465396640691761126690802872293900558559720231034072842134695809927707944472910127747781074319751562199653219509155494471791865539543949352147317599187861482615982511268168766424195051193802986326500447518186893613403950431305928953325212002411492635129773377290769823374657661284363290722652908792544511850555336831852073555929268600725250699994689478106341250558702207150083637218289704231698642119682665489024696829249423167992404119436448773036372361350155754330788167033373147863681423251886680338125770353990507733761098391001801819137821351292335673230392379691619836500169822268147979042329522049486012767393145108211896953393984204651426158202990440100103644161368235749704158871440003604838889498960232346155398013190219956877174624038120095405234974128627837543892649789604143379596865218410105926648243712368518834913394785994565837176507196149518669153841273888597874469870742335213726124773025277439901195323726757458079499923655010062245108110573675403399582534102813181514351834544517658857926316375746743515255714588400836961089691324894714955867505458977902382397013606639995925551055071719069581451105227046545846308586246994171025567474045154843845925978417206334288000144785106172358007165857565479579121860875561097553130325744732630061046680595291566285646900389197647505418374604386805056423030556630210813991413358550870333977208534628970615922379217769654708012595840631620242719865309140178680807718502834901429140481199266377193352513325564504072636904270270057966808499882262090209019443218842081182632890873091103978414665237499510351065020626273749469847318777785929684136735797343789288763075101574766484358044730281490184602472576061463104332553476624443231763107905646708204147869763691922514816256989681813538082239503120804146812846705572648292385634028357010386811609521123557089913991873766877425851474838701953660063273963054024287592013336330854980516011906313923764079025625752587813344529668257140847438124108989191639278172125640305477078058695216373817733274568362689454334117588986886627485071200432532167748995203631324803002294875682134215312330980501421600609170497777709122700980531940403785202460113698857786974126829983336138932567417342509817699863302784786031183820452178895276672771614823167494121287173159304054664555720434572158889286241218893658678933329402493344020172607433842501081495728765741964367817400541204264051490680672868632526396263038186481555414368230335266862680969416392788960263845029499948026518083108663906246739013890977899364629269480936345859503691189146837004083925518320251387555032250312823129310212139034122138990159092504817246587560589930229868097508906155471480966155093471121585681803920058236197841157582559348512476433902117369245237300728785787776209518122711658194263299249735630256653947249912267158639019627713405860357428111876533759759046716149388370278760549584353346218548606465687258596470201782776464560662405341607367972758567874893337063983720953273786855363703368271450195732953595824376610072810213972412610065349056676291700506905389023265235343311182947129104764169520667019993084625967536025262240969276713478450347252970231160231350137908192587264046833437461098833194808573037245730513570242420735542736072397798738950611277545200769130003104063279898421636160100283418611081542696513287656098248757683436810857514319569519540503389487833828390231619350931550090458133719987241931186766022468663888019081935800794829299797998924872085231948038541810120728813563241249579985825680675765771351570337433881064436437150452801871770593265958998812668838868545815734511561291907555167237863907268434156268586491988244602565574852604656681317810107837673581977452758503314956636571160726913866446397865187829841440725880211539544506229889973935038324540513588109723227681479481499286659258013626867701357198850956427649014112238100752673483678835659230793631928011895174668768940307148718122707739328876252745895059329784574948228083655543420620570495054914483589085938651418232049619670308319727844251986778403064347887043713927929108744445591218229780887595136989691657198024848738357449576764627113642599131047021388141149204962209516961249051357357874967189441717909294722082446239482208761775621441850660775754894432013813275644006610519033608321903209308390677596657106227688397285782710645228892443783691599796494822529352158528870723549890701982359072851467580619837417795227243661932181321015932816346378058981167541978148559165709123493553419047530600617751891059057000979800230867915191554211350405816807267121245604247808996548154834776572160821572955949459535883228084916938910568408657627120612140907214164153433377885327297803293876932466202978380342785841901286975067957900762852931147285511197501465345574486420915813422284352299175868032796423184096114028382407392733382349563519135500831847845503391170478110238686442886817069929304018319987525765307372987710201051401899119372255062843853239250252713556341359213908199233657443329030614455860885604746563688228225758185709266040703259388740250883996096944758197379002267629586035080780390687686988818366069487347776092291693100668472764225187088082727842501307400446917245566365894194664140464140722056456363577501227883391092763236734896799512905719911958451701398024086404372333946981937814682317059021707731937427269392538661084599087062426034423836326744591094091441245098188983391526549416675436654439070098891086327044929915803768534997050737799549576458297294436911377900366192884020660484594414006949837538218102582160597231021468440900820182605917805712357079373238595189606360425313101972715103211548346681171678777039129143072507112754157444685509843483392855544158603636424498719720969177478633113981282826671350044543337897481765032819130498691955708277858708948598120280562305251353290881554440556886445971878699805147190735504072465985737446256959821120092355967935003783134154409611427734787404394604190634755892452714629158511180747668457462444334286872164759800561320086449967753752395697185226951384118460539382535144141159444665293373071304130198275257521353974999096227791572234444332057418916603974801246812898642587580919806331526320087600140417309377118675140613214311821030399605993697691228427722675331727863363431484162972364527309907223528133032588081543809292709238200807139250367024226872113316336905722004535905776651990592100496897873807335065154460738503011576794130667017181181548823371051898384375414388656581364867476116669872003536068670460169910865326871444085685867075591237172520310342152926275159031458043723045905037954314661386718742766145491935008621768714119567392543622693811742016191072473225427309470930021051124341702702912431913245303678471749675618702571807329156359721078675288932026715405534367399383921423963750677966311137225112539520762776847465698989790892156519770033656922697935146293094588268726829738964860853223653160011336021756312544228432721189857922035771457162191947785797001985459970918521777382525759198805222475678344682212021265634212568149730735333702526628195567563426230513770902988219374035885415480382368908024446251745774251508198534821240299116839587361768635488127319214812158613055181195206895808590677122915032338738632532059506130217185443136262632583352665411288676943065927877563642122568341005311563911443333448496543623413105159487992322496004712105692009867391343795337203464607688387092972845170778272797056158604128323652619217163631322181399530525329512532005605013573703186985908814181335010948246520270568887995195525560828467492248412535963132176984234147395472091805373443893092366400632333844669933989344708228392029990226366337684796415099336384272688021944970437717926138453587981692366392417052448257386924758681092990551179989547431618639153330252935077103579342046659276702692654168708083629937229232031985034993355611859200190913307663713926864991555021599572310031467122819919306829252996701839375436229869983984867086420167216030569972723529723883424599662442704285698905317563546281867615100662522605223249289631472576597322203846827752120821987347703716783553751281586109079473035659051392443828563527191969395578428429931354890671700297958029037618262845758892334730605364525332208161487442947512354466655264966558005559122451407912750145795169898291897104774458960016325612481445969106092651573324653754532317254202071399838248830044949635698860516227006951759468049940676224775620924498459704772681950358695812146410364867350085408459203909876288145431533986743495663496099579170136232411388610146417239265344230135458299093312291643829184897658585772031239702778304739042921741137843037743261065182715550928422706594033755408339910456498144731421363181889305661804781338724761224284063086720914737289329925350642828662466658362381004507276182961269973463707585837273520322750451530543570058750652153161314993633625913884517078924027459117704524515273445981080365272317033975294667458891886139127724327649352024356870852298631360254096353234286774920252600546647576351059956828324862010404514239824297018068876304451744165359028046681073671402181854032035058933144136295423212017804382584772365031143249376620074223077045334921808879093268256559557250100061156099634744176847996274437524561067820252220649087775660347824664735461403176263738856477901359707267137312482347280229949954486080006803097562660285421579710929344383826260760280842858929002152663124471826666476280429941985732751002635960155192901208759501357545477059322360626034325029587972808281363923979029380220512499473458617878495726073869354441842376449010122386652659741409088100455401933833816207108102553675234001252836201650329742836532614130420067330035606424584901425185700500360088668065366603864158819056829405819505077423724157863701329659554813318592453240345757750681532795679878802430032904983723206899420478682072174547263265395171153659120299189209783988075943566134580416732894830131465960125505410436021285573143526999930132367534380453228072320486072717224814074372740178515445890877402285302609375793650218880174768540224957325360059583188637957302272644491144396015001112050046555161583766348079523503985281299529385898247751707735811126872904815979678940907219094876804367388873353146014759863187412153700159584203321728884538246287608497872085947475187310396285210131312225674306862614733091431673212225337707171759596545459639007685427954177170642079875172046253901649966957524324954006299588240863590663878626751229311449379667053008803034326929829616740891427765369959432276401787432099186878114697923523752709491719327994086867024859877955607673080569705246018743187002834824968486996738027500218160482038952598083020680952076465762772231623078614955352001032129205411239166113573396516778566583476011773831921211179751594369043720393785409708007406295417078405895456811937362421563917425390529574777223397673188664402522420027987887567293282706627243708060295133847648683320598905844948384899777294762202342120089975541950122134669551907197863996930094153151710709587451598084209574332477996562590021272029791494245810748828734058877367453927247078548523968502950755275668317817321378494153389882302386633121103707450634433968392592259508411600999047315031639127531567497026961775052141942731250045541828961852427163203966454017045341219136907601868943189549420799597895744403431011463468032264632815301654970356777932184585877773810223252878890799240753641596080119191480156195699058330547884383712553197165207843738119078472658548475576559595922802829458836944628467652991163298498051354939206664686221820479158794959696846939301705627494834710502630577413343998933959038563484890644008666387534731534211531314216637883526704067756066215928048164024155565192477770687314612803162520555850010715479905085379318751216570084469059335450528978193846621053269269757642549499379962575852558954611370642268342985835791322122774325016502941181395857961606761829167111345415669912679270945386119810055993883972596259843832033237613740432941529772303729872136068488695458143056839352899487178140382134394142477995043614569176854186543054052872460204304784650972830254757419852512382166273240816983222151676667337247575575124904506055041552652401165860754471500777238970617714166461246213398593847790591617471794628433388577597903198641823359407308223165934963831673209909731361572908655444093936229287367296936463622888603430430357148979959898843052818858821041485246491022368796223308960940275565598602626855414628890949716130360792985977723142963831292510110900991951323137074048084368644523802435359011207601048097987961578856388082172087070328326192323679159092317605224725412788359773376487473560971385617657060171290723323686292517494129130044597046044345529951855193048985413927632042968115291950952723524431980515264212909547724194536324523545942428898424457669037034828372804762877032915056456124116604563693550735147407811901871933040593489760142446359089784974855328267939487739846860674176063873443130486122884949220684915437374170175472936525093000722500299572371315356992084915014630604213034494489674887857064634686391520789446098570229725816712136190817786199755768453690619263060280093208876908583284752546700595203402170325008832092787718542039994964016973735877682723953168231451131563154881757451321460635319099423529146097384035118873088811012598191788461580880188067357394741337374069192973892353050941584142164970466874215514090492415063925924643396246359764841743493576975813763008763004347788230443059928080729017720460834127408674679684473477066592363513482696262994342853779895721027326247371557745288567160824573388389561322312864091446433135208682154965230102538183380087593694574384230866654867867295924232665268130151689477255422769001626766807087903404185047704224804835614667267612983003335861172353666378290716152157305879677515726386821713231554013115954950360510243878637789409866363217945929140273553593828056053113263884132982464553444700415288570215641133582572957693888948332689537350804324514316941447292994820931180376377335706383728734948056737759305771074545893020353826861325668961651193448016729671522795701046062105865641863617760412932889349754515993286230946048456847053844922289055278002726197808440973790725811709573525864869242345415312402655941586297749855490805749024653118398784685413424330001744536259503539907072856388631292452121580074471081076264325920508195815818328533988121681707233154500175146505911906648366964557878081804611555243858463433706000888788802731663525884599222896635897595145986864173168685287789080262876139700307977473561734854232835387567629423958022464539601779320101890806792848606071233580728219718887862039638387095774193425217796934919511300053864718945658780824397475283802763747412248877209204900285891200988554855147184479517988339400293725960823181430077701047127551397073952329939738389366283914272810681915460517189189278413357091581113688291966815051611855946050343906805465240647428387200513129879103269591487056188306666567901787123880197254098108467993872301741164818730924968020684427382797404201685577429813578793315872944738720759660130811523515862500369881352138911635323258152351415001739387501690029625832124749954661055079586902720802208473623160310279046367379171406127076192959939909126998500541476727878251452083213159243108177446608234952185429957378262102855543635943611937763600042481831494633807069141123644108086457642277114074857180962285516079163253615343693292692301476887611701859341313407948352293826934380746699918110290978901485561530705696613303223369778708224213088315294735044810105140451212915182569321510274443980346332412897036699100506290642504756819522017278010820574668836008521953410518732795882814917719334591463924942012829146895891729088078996415268294311536010555252537529901751984006619316506309423237669669377489347621377595294518682518163607693847596664791534434179623691680610528698077067799046710948899556003280685377721632678300335928291221443079968124833280411290791252587050251051658617412159194732316024242636428628651991164284166562346078710093122291233936573382500813725870523487135987216496822372783568787074083931455676009559270682125780323012264202394480826534323942365490505094595989307537391191012461548431008614708858906891605767303326796095313551991197434014241255391496336156273588998645086210746066306990509789031243816576554246608606390186289608292686585922262905490627655312467081578965037221891651079448724286704747953136066942570544611599148226213297776728555186205411098770867779224001703115712321656643863952857610784654280338117062953181818214132950438073431111452345520580913842726632056366637552914712599770942494127295934235919381552965982700651128397489426192319072771809897560247692640366627879477291563013262004777782750885459008611025520941703774839605652050129556134968983669527584538152091659746834106469296646596983281052018618027356684145622436829987183863881071339658517472790531082311407108242316890874354675629970541647582443646347635971856232670799765601750727213998974676423560215338826462093364777661026194201773401362907549611618194538540923274253151666957677404635069586557562389307065348859901966710820336548027430889273387525195138438693813892651174932813766075612466497029909596522138806131009534600444431718950337335069924189949707633716816770746724424164039760769753698734041907676072557621714278141768364017786624429482005968606645643986492003392603478194988327301531464445257383133569754439404191255575852433522420628405284658964948385305012949747854777698592011482181189868960899245614048981705782496740943348800587225657149407298043034686558086467649333915882919245849790318738597068477595114350529534844338642502909700048072659004919835809481920914020472511671944964109987559368326214067521325593771697236510228696628602969603753033907721519165776264035909162431085864911166023248216567381109484075767025801170011666679745430277728481924211020369015539748019029732062592773459785707476762648138049658896558692942731630798899924738767054867696944020419602122671270182113274144417256906721456714655265839557253471097657877974579591097038617280659341135816853337973166292264321608219394595234790907183020317653140747251383043934598389547891487531394849748340323470293654941608463319932044517769645785379250965164690128355271711079678349046644384525743915714391313640463209071363526781004068909825705960691848783118411495965278329924846797076336708799933956215560142511219004235100604651962060641600824670272951172046988639232456450927243424387315140248989189046841548271112820130801323745925481439386622761174815995422407738772590081216440399949339120803801817753485824876391867871140197186034712131113106187853448999963464797448363577996063444682665460459868432416088340092446488025140987409339285944146620752751655264192174103952024991083137705400977824989184998828046088206281207851972177743740415210415397475777875042654437691672626134213401325548482801759717729914582489090186075464723389026022915981444655697992105936383982899713855276024782873930845698485083720730894760223837379558056627580961699361716229150476987399654903224621730402244246739699748148045435860475394723438114226722405275624759662008832112147858237875912667936261447091506768661593169270742398202694441369008514888382904760062745053639496959288208269875565635466346403767727032718923272976797832406689562116021802006943060851979287615176725757140166651312630111354161038872125440282630311203329130586160795002982009176770318956949965728650379303146038638353952653929952002283528841165733423331086666243227684551594358880629898745810770993502489078512672297839882345445353333105084049525608611080015291086896429531843435539937172707095872855690124744316372603641069747460954196212392052134998839025885730839442810113686678987294784953944496703600395501300206527024295565795797177495918899164056785271888008664431598782676905475698387933914354597986256430865132612935128905001652856784271444485785948544615070983961137092742729498488580611779842285512035605908171514957191484958268157553548911583472362613070923493719032435239280848819030784654236183393049860284040604191313304299537047279663245056198349767608967710260576216734060939223455004859004982522675704525995957315024648166467713201949216085342447894014734209825423828191823297362881998611059314838904681966227798046309233638264465206655747244566419762393778947972215022033072593612406155692648671572396981689109032278453279349293659430936176369083796191617422337064463387238505129260362595195819674209223737228772933876892638639905188330037329972062105820285534342854551778199745092113140549113697836207642894357862020471842262750833669527651996599029767278702825171028041721588185613587042947766173547796354921265642679810168580773527538557125950578642934634378938875981049102229230403613996391161887350102465838014051749524712557748337322246535326591939238093274245806280424194279824528632210654312963185342702631011410728076629361481223345354829190190110114258559628537036713589503120343392039701855221916187557505403205609285368763786578023155717142560656939052112744614822945079872594413396668706269890079427699147097137600968874578093840664693733629781683132872666110682713337121069606321141826493551353766321281726998493601420718153377695949921136238798521600541015918473751745100332197532903859024993051340027792330174884769579947379459295310537442998108940388699252983352031295142337606905481784298856981903932959373188619017223039065983875863582699518537942613627531688607467326155768502221913106627380145776632505547689334396333325753288126682902473221858514207971084538585670167047899049574741777820684062945929895708114136337106025333830076043551077416578916212941829602028284289049883185296082979103611907860593624669773634885658438031994246180624252054613851901799100510940956167040940078185203620409519535296947256306886836103112856542079350989859072648039643810230924029877811933499215234490425554396122156275985780138829936718370917897728026411551181182601340689060953436753579395415492935549891034023398717737150928013673910279564392015932582475266105569487150483690215702125824706919044116782185395826180051931956720258894725399713443554345319735493745276462506644548738578598256743670461153603021198964152344430327441474291731207666468779961855421229714912333235806330937723035429906536250826297506286909794662156036899311778904406847816643818446527168026587720863326520356876745179772433128700926660496229566134063920006522925334801850952187869234810709334965728890610983851896557759819662588049692423720862033427435767382402051009712572194337733327579374857877057035941504343591351184208220045392706585146930745011606858338097047342258737972638949535285330753796634582490744472470998449145651039394552762092472663242492866385094244977418196042655801463125240134048448011462173438964660545289130988748848874254146827557781129521818645796760726877528810054445679837512457587119829435758622618474410583163646350597925127397977120998968601022899501310095680056532471245561547125024760617434838805484969394276499357922695113249609574396331561204947084746943976462882369216281254605106204871473000708718409834604526438353402847950831738873797282954489131465856147089868354443992885891452752431956951639955184329375893393809821145883512116160789679479612139975849060665326546069001077478877644294834274859796721071574488065686339477285043186912469179128680606989780448126637837626326279598959192241187036706740660515490721537106082528170286432629860520753667608538669470228403679604923596067970255427424963776474743070234835286607115126191964848037848105861293887531758479483467833372257621253607853034738733269774642643940407407630457565621145027609953058260312489980497740071855544340009222444610167669618635647368328901635747628426724378631271011337259156279521873989341497772662520317307936875757567664237074976205676510754264488446929959940136907428609814516004859552239704068669378303451370216419186662831605641552492567380230931551994085168154486525424813571573389548044499631003610042849764062994677925576549740901208685206476337436655033161326886014837307399763618495087930798860998996200580563539938688560793548121439836350220715416816729754882760662689137779388440912077383918242119802981383344748662870469127799758426460939554669244395455007309492177500582019745136072742323920012249940473023056901987682690919778013575601360592969149389782642466609078117041193221631081332507353169800900084236463118227525087716837808492703299952143287212206801048581138553419295936819336738375934142403357296778587568406655781263735517651840229778380539146739819387867709659893714623652814907810444490162168363824332230880606106548218655159310827767297142891873582042745711557592692802111963179519534810181373555159711235436454366833820355519220067838157037430266115189546695981457346318185516274458945382038829647303434286631038717467377941426435789680679093113130543646087034846875705412025618359686520357361474770112430334648313767722578521362047234932288647233896404986587878174231315656158719419263761691888549650273213855313757441760875476353148396632539476804360743596176624970371651535698771266577856711483849796141507449196985472211122657380613972502567767978144502896622738824305352364920421090294559754689507228608568596216570568411461418991432393813356648611272861747973021415744882316700002665432702855293789900796567844929162105543819141213507582375645498604967283273177223293568806633923782767635439155923093321916800153339868664344437855712826077827718881002351597709661763965944117329307980260560623037895235530401875657399759511979193120525691585099166561105797436165018611268924176638172968837504773627834169200123408298081192187548989408224915251893493763887449083181969317494384428714697747047096435615820474360744810250563595832257342045593082696393612641240365353574836638948831722116743824369713903667524696446971768079903121202524209521438237016730472060782569234140004482110400317076180488156387846187790540870257131040535517774620226301195056624703322548771765199651951687748516873543078216869286000760634046222644947805125679169933180623553008674344553023511221783858201207079058278539769856524364480921677182418985839515676371608360450905798269885043491868824675233632946630287584459093103149855350359913284602933129587575781740965750446245993941101374186290628155928007165487513885857623793050875576524886318408593521410304868091644887945049682849408100603212361744685071861644846974683142321604959126931159620871797258175118020243372470950981720477222473195484313189169688233683005128165783333503607568663047810597188443726867049979604222733468267847290253428805041304415315702020352642169473823208284199873935135415692670021143921930028769002719783449642098692095409188348981850623468832254733833563444213138304871284127023450336679466868483794070742899287493807392295901136802231719323710714517019592369897325998334318827008118789068403840470273187419271956817941708317195190423489808374366748569766904655554646505536186897320045283491885222758854355071908313307611703787362038133904323879573107012120595695688732758175366980391007254769073956810352870583607541971286342064714572266175177493524798050009475067496919624973454666199671954775015578605787297347629523122391169943422484423833698474283972795417064900364311851330729029352938212555383221967534441415062510186918070726809380899795868356486531023758218156992507416119773328503900040925588108530302762550426279309431481673568675276137315911462191573638962639337439816965170856389856971630355096389015843255300165263492707750301200445082223294085265023200429002612647408092786656544345968511501871505593079377013103496130536807439324415593606534452891919080872564060129966193508064364721801403266469070768278774875986837382737328490682345823061746577697831166495733002013978293027024411958371762998870925033064198757925883462354136506617596561157941062386703346138814874107990671196124781964720140211418919949880209766368775717314969167933667706604978196460945839695034988954807065061168744133767722741540131543158751394363941767865305468259671155153158161492634615112330842370976968676415036161149037723990910687379734358384669986008048324917593410424749293203841186162888830814596658718378704863485884590754034187703209442415308322535962162357645694648945124943796142734792798435565619241608976402747103497598453435587965349588604771413575255636256668520822223970741917224822052847456724358183651850172739596436415525213415676500777939982166571001118889238294076560268561867449087339858138471669570833275332524874785508543810459469387972465452146921084960255016078980767132324454143168387153888539074372260673283330593381517952624312656960508507686951076458790938733010068740749985345354174745938350057400474076884301329110849072659205317594856334064575260102450328760454548901462299399783282675700252552694228153476253011758771697402133368934159449397195842617286345222254273904502629892112964872202173873395133481139207791472771838746251704554164916544282854209285009940598452210827453721480467108943906839433298637348636273459456874622139448711924170239835352699060132681668764752458916521254804319452559807946151482340881879294768186902321516627311155279118259881152477423568052112267781803823296187320168010557939383402268030471254188824065958302173306744029458482768862287861414161919126396750787951503183696206741827054873102038249689219297803353972048370973414431932834126968837699228772594199357095705760160304536061354789539148817425033460783135057498620597306651014328592584902115508266987331997575038151842932837111997245372870850738767976211123212724900409357283575356972231889380420663101134305222267902895062108393295977707833429869337760302752290923587005826121012031638546367999181530172916429467890462941222703677703292617792339406234699914919595074341861123563056441263263267989063418450867528311729474122534101917224931872838902180676386959541351258676535516051587262077332249549752621499673787654267190644735648622447665349158576510203883374899787733615327341630873247934522606967577763424638384876397603776202229559891691850894716729016939212100139895454876001283310514486524913675434733055657209415364023353477518771427820229737486584841729248865554842704259310691777276499335625473549274512749167596077641978052823754095543825613985199081267363768012809120446490133284470344123514984540470338416000716174790431213359784246842016235995144128579004388877725682726688349270121954445746793180008908871924124247725796986646316858034583712705746647639245472952365458747387885947770961753004954841519342141393135563090500464179639049038276264437560536768807455393688486448936967322284724303643247747774289289294357515157247125318405085494340480504705438676145131989160841682788024588138009000437996868695231328013501406892753646964911045315026750536615038662450863589517022387306252581058964966992310503859407984257827121408493813658025334154132333083471539726649091569763869785454038879349715286639306322962347480557099770583893182626311687174592046186583588863604987593986791100678816527152523584357308517346170738110895351803545268360583526179454142872706354484327271129493052023074012886549099261177270214228567302807917665307188326445854470390766589012316920497917680065319993215453267825337751804951010245961182160643786614956777621721479308723431277619804067597218556868024560235732043051538251006666630917952206410617986736200733335876900225239190504928759146923038985955305429770809357748532796602014158600033787940468435499724830097129901805439682306063283433229090918040508337617490074641662747165855277043196128180512964970547080350265114035790901144209797880022118786969411524319380915844869799189398844995590557345165607578773511390845488981074275491312664776227870590706634755057540207817489888957451984697528587453338262326618790085494402033274639812121604100713042743791507889692903091941379321309505735917631963924041789916479857856203029224624197772298475652851431558366092816258638299332729782902205273016617193203756053591736109981860720640072572623853309413774454556588185064366506920250503457000213299557551955458041179607108583739826041191758939993110827385918275357248352021718828272110993381492163580667428350044979841512025921114986403299036703993897488919762744929477470929440413842663047039051633688251547580438541189621750141931649790763879557660739608323282263199593605246103150662965887556561145799819024872434748382431348123263894064190759122661647113431565131410094121587962129088285106202753625022347601573056843435191551756596346570322051132925806564136580294415191323421080134727205234552191876289903336063242798352935714890358316481494637660628920844408975754263559569901013767068013616499421799711568577380909724790824352332469180738660737307246434912904368473904467392224843921468250273955659820761025813802530511911980768753117023963309120340871786794451186325515937279689813830802633854039430937959924472159744153556574567280403530021755833354773356057912978775762370130322775511469818336097220932472410953737243407802223446250302192630973490826891763565067103932526354065695219922196858338140139322167814063803158809045578000922874521744283565092123982665015867548270095737784841983323917859575563069868742374135926598520568242359643350521339629690729064818837772903645782146407109926254456740919247341380270669820599720953067633219960287949334325679117528852319641114539369803003999558141948102798317586591393285076190079744397257200078901928469390051721516272172876370434791251067999420015264050537789792898801403093438029371000167983921618657867833418754555436117614335883782687413636927768299279878462140688456484992935315741035951261045988809400123403638258695362169581382930574557501243606871542785687623416683623584071807836085536711797947482941901047334455267499777373184903765584810548367281895001186031747365268901957389385142479168755136920873075814294372275261373449069438260254323316462149169909940670442680433288257395951949232476911986190554374513293322104827313467661858970301040204122386757447942328200069494984055537007769970250696417367795764798644370469276822854614322704776578094478828378802480751320641378248154182820435466730446342164105347016636954164442243505883396571757977292733750032901752131367679227656838826053351608173648387029434801471208732936953689598699053958513000183500613780248804026215903633433235030968016309659728331033270345162761700872693076882281258943663700789942415984670878472965860735329525394266704399184431275934614574620857363875864907941637223831614074653357921446951369125370081532504784278843062619654661093075684718169130412587222091795925023086343971712427707191770274669402338536797168531763991383751037973768686799222601532407073247909537450009571948760975707744299497034389259020375619384519915001259820175030905672720895450091835368631057541233524307936238319961448580627874109126978265433771749561899693082156609334486940989257530730094559797411631193700135589306086491594848955303332674048313073428017360928149887098934835162761645118390916375551952447348864973923666452480658409752311239046056330796925877982776074107345512757486574534797067424874823552707704664625795036916518332059368569491693679415145172790704454705835167715013075721266069122546800648134219970791991761833359983980958949555862891102819232067500572539758719105333871139430065569762307968987282335288100866944084008561237783800756554755092209021713586244926022184954610553873691767153919904559535993636343865022521902278497518294798880910562433854780225468436006116156773805953948133136667757393599696314837238689937385205743974471201535768538717164547147802143020671977599613236995354663691954437900883455485462918261884934080085006441636222034798716232040468319627999940686063979429175071125076452139922459798565224524386650864923185527864719492870073828935509935749334534697773629975569261616693917469873977674283312366135511402196935614137973261774750679814266576008452225029860982837967900365690948517537273652600194511778391174723567722551756558705847329020173938743598633333274938169864797461605898342243681942556574633596754239481718302772370019713713815745676518126038408674480772126383009846352955136384160252908678785958572996128310028772595633622040706344120179418366044392116133545816605383273218429793675085797591279408290218589666021016561836252868124010311275714572485599398284458898961514645905225523680312278416147176535516877130629693490040972707008999830775002149865510345112963873034075231349813407694985578149955964007145376318768286562371731319874552694302400618952017365972678469153873297278287217617155748085549232098428656804070813727542846888256989164506658642825392563470067029399008113234373172249352488020339883909505967810408394159457915098469098527780858868177694569150410808243695728148646492721958858233807943273185987034549544914796220332822440755749835714223153705578172402262723870238633177765491180845539485425308988242911311681933841968450911972141114676524347479242267344022033037935865610495772908816808261762907951286881487701907485735680377702633724295012681128169083858894756988220190738746589176031051334746642305045906027546864619469540318439792275630531588274413255094258781973518982549697625334476583544960100096994991933196583579002925827915395308438774627883065876986231729122500310404298289121775809581329922854688175793668629118897042052501869244060923075462289622342034181296592925805115442313602587983809495412745439662964215177132523217845482599269463556452266048080732528604825302328057172570738095787053383981773404835052457768742914552733782555331020017515923092718182033304956303357779167877213904336449794794463836236928246956040769800660958951151489728920723298358151901528918450737342832439139828413531098964571297895429743387108865454010642118963072515195693570470567702768062609815234406291071965551835127998082750497109759145200911616117794198477912240466032052562496482748538023436532535863841343394328245593632119984222411034649259627836944386051330564473818169173890683681786384518721014294350900831229649822206643344721251370688402036125900809672442040286086119845139117352513762866237798852893376463640762413612343601999981305772554372433078611712640476897118117282006047437806262171049734067979331739431265852515946313768762696086235928323079119773608882831458290865134746603764867881532697702292599419705418797376924740235756877627916393549968752097851352833321163439225568375918088464408090567962261574704330888890437284682830106795019655636154719765009946816752277887134422766622935215226723959356327776975764762088733856014764536499796052319345324397488855035021173198836086350019986563744984476517410685399222368194636985428825532855478592391668168272413110377577559988616392593657186263476904584029962937369202541617112388000361236651490413923084826574567591770268810475529042155173383180696882989513915078861487520592688796642587809444898685710275400702176465037062632606087678802488737397571070221213664959770338481894142808591091966039722108626437741164357710605386269851561969551729179500920329333355834527586368038965611637913535449674659512600200205110550500403754221316343658912900496547954167752744270869115603165911100701224342403723112564987928069077732294690618540728447442265581432887950092934934653560517088621639276154894238973308771158858078062495824391898455928075550372505770294311341607671689571558728312589664943816888825748190610975079912851509324465585524458150910364039399333100971941064725122436649604460410044092624727903164308259269818946485577663993414156427995375284453978937144328093726889418714482592393983922782185019941362179024040136335578582232925679544703105676450763321738484470099115813652476477664791064710931699477198001009160355175861779875427557313230748255049979871990685632167644601187208634824809476010238503033454221892827949826047360427776409793439354974482854881089622608578112006461144519099189828667611317628010515721019496541255166350362407650228173558918455449373649523450418332010368616121455821026727326271517102230398819437141274540688328237112573298346574765254705923164163453679746096429133311007171950822145554693060051555696749754796400975150892297747146942726347382074998342597922226524753428806684344429379512188416502347381990608932004268444123929152904430556852311136202448706667984006790111794857846639719041037326290145319770157366166521116357058287187816320624992948756768446746560504843256023408476808397868209346524036356510417343362744850173039700093791881197035413254840290664166541861862429811378614265891378364242794069095440571400913477233043241555906539532969057923531636075441436663061237689686852442650724603223366199282365340148022988890155998822091754690637618316860831800621748311085905405364309310483019619486328428283675537386846477053955300977393423395850565556780163128607513476187068115682409694645959773348970250511280580800188639851756300736525430425391967646192386224501763524719038505696307570872865499911442112962857077966513968810088535463037076566958233557631854752435685413309867059788006076743865606651603148490811387717428610818462576968576156605967804851421382051569018194627059661845512689940112452976905928383965314878223382263297393405577968813962158804657165533244916530548844551272248784902730112823391987882830578438506570759651479611402187040106473429034026272489138966768956161615688317605995663429248717555195118385208409504597980083945825030149707937546869040991687088700771740008070202402406333221215694223625397552632858606531164211059558621462772028163687827936510030595289412464840156785978683359708411644011407889022204017189420776313205734614763473804930584189721165678671662123623717009393032174476850839741819872035136097515482123309822688426981599506823596671891642802912428613206556375232693605758691317309005867289820023076631858160836773362622248940584388081390037221739085321265514338589730401634113493209425966824481282885118149048233377179122472312891656184637416841578197799351402379425602594162735276997332321711848910053218472184638777882920683444999822731340757865950309303711463024243897139662264360060290075813939591903047768995616728787988170047385744386358252518790180359012961218208455073269498702612731212503256782190435496128301389962615570978111654939570584231113090659402562202405958711810299799119966587123768198085925307893668229598989288072980339412558735309778386415503472419448851669783699032050883858420719250533399718981576555622378798429799363750949512933111956920036903551025518533902066129499305597151353743094641180583279784453068775105688016198514533781365634027432256608286573833093125722250720784953345085251487512385529942276159174091622454783705194796071525820534308464089545230688912004410062970096103103377688931552129686924566025192825936441389143140024786277347260681153133551839620040591222898489134986975034454965240201065653772486348709495818505804951117143629943856915743099011692824246898680867081409050431442534673413941519915363453215134781984213629082786091091740217866418046130656792194448396545346322947153072631485691167449232395131779229358140857300456654917467210812834193841125821449383552025553809694591713265053155162578116334700739673658079127110016553802349969384470431884086502844174877543203044025301724020151019117357090231825825049562502564845816383551907248751938716500989476401112913249974709978607828011573854110178697119003707689921604890874895424030381289499047710974158315886938205881518926849703619277332340620281699651334443609649484879670191814259799562287539339111416080154523446574779559064198930100628646740604248377574720558320116425899976011589284953424579983320422798993942774330648799435704742552072654614351583700634296918040249627942702472856795218489577941076366298528327014649238417284398332095189724008466349311502739696196170173698886480240689602616126007746512435340567665969714908574049096350855166531462777262557648677763090748964754576487398979641404584373098511004474773338307238852694057868776723015440191199020908604051018492733058701088848859781132594289489343432229360231702453962908084528975727675724188031931171148924576177496749694314378334581701324573543903374685044883461807751247720251452264238032420110223628174543420902694624549246271640776324526268288258692415774973146488986351649730974228356843348294893510001767021849104813364180994995805083365614837319320817621609770800284732775347031337788790430400657259793874580603174816266158059323029035346940949545878398307198628813805746074755516879246443543581073298348228896331182395565616486277809018484233334248050408581376208692435006089505269353878444323104836595375553043616774875064333908794414519194075370427284368056722097336870873710872851374677493778554037939542287454788509408178202562663127215862622066302260985595849879369091292319244544515033507635818317681842728568098004844178380198235192983855046904896274858472633316166694753436841617629342550643262268422361354287100903920316618958462813351155373046564383453724162110836056215536365664283963032479290216071442074414712172744515285052065894299299566072096407835215530536450154226835299696851001422174711649362685864558579604181282584789856818404583270041267664057074968780661737924788522955985216228445141763518420806254372831723764123041908634225002573046929050867730345842446697442955734215391614988777569094181191838485002453158297449446099251729150737176197909384817208513255643020046205776601055792380462265148019951542573849337442939740961779326075243415421134205462723269140655452850157320194924820364805723040205938460531315580121839217646054442010140759881424304468312294947638540345643031207914050829278001845115758005611970181116842093786465344290962378412504076512698607769900250441856164845900381731013739514134483052756972077804199425983825643807114469267726460706753588675197981457342838369090043601034160595089529998246603397074963609869257920808707832539068837021436577047096672508652875879018077357846977934007158828310464358926330222612623713643679721583207826283997844764834008602111532328712604393501683867649993942930778134790517203500983712827634562935499957586090637167748039594674706062652085920887396126779071554899569862873773913176243341240321253895543382315867403505795434188569243758468468973531901211620566453283630807302734119130012614273336710267812662105779349569831250762700474028872529208158020026698362888501322986652542858218940799022249152079692457478391732479324038712327790018353706694430509101646122546789799754289023115305521306954207646308399426650287359696864806295399902626982422684574118224984260094113662399728067391587553278109774656504074783833609413151008123309048526059176488951407125950717164952604465771525781350048433474565433586377993292735100154629385403642969143022368965828230411164251463381386398394172161578847567505624041620933127958359021627938401711899272076292678408102430947243471621054266387247300024651998061190772534154775069492461574283126894781667191343278532880171659028163051389174569605965666400458188362349018485360243447656031944945625040245777016945167855784848082269412361290190839678736916917458479243562156910300745737828712310473296522185301566543695836979566561622369154002270982972852522208970246538775349356605738614105338814042002143878023476311085308423741143902160304819431539997542630831368336064583923195804347889363137755113546367425965050980521473478339508380586549679131795962988510925211490759478668576793097373156771880596563461598799582677890956750241844423407525845862111268196701877890565079108985555170727133263361595064664877836984197923373407603824986918454818017897723069651252729931898824113757505917728466303055952433790777719236352688592087607901097029178822071121019909914786740673880901082364428768639470300327957615313563821819107689447617861905476497924550823982122133625764600653082349743858663297989893293447242140434419641387802512209855914809838339096199165238684698939399042334080797953613824979590788353433891539371081382074296261596212365068267827504150402547899814632629661062949792420220663895921369971363639132561192472306167295939754480779174822958232825825901789088232166506610317823389900142272182496646323396077810921591869441154644135295956940994838005338215325686273060012478209411604508071231995692453633887253355563339869128109193306170493208856980729189387302186040393761389247410153280861053349267668968103983238516066928978167056980679253484065974864661005317668170198698318055006436427720876555560386131960973158101465120798944603307516346267645139289461998341972070861193726988186216939026802088269343042348529376379015398290093655460594836018225596100734785693512011602464804649640816417312788614596463866734033079581362602109066166952398908357158697028989438401041470495903169084929268772044998548302934775590378201463028641820220579804385830295284568664245474080659107906271828279311259230962295190987884173943996952720718189709099245940673826179513878839944446010854639946648854554520409878664517335683206299419034451274837155533893392725408354220601637305145532929816676099233130459260778479596832291746183412462122527655025417957343066017100440374598793017874649398509838562449346517066349053454353381477444108630793624242665256592969591091087050741037327033745870115427240724729687180471291061122980668087194601218002829722602929403166672645889131735406165472761052343381405024826047009315137928345007891242947998928673472851143920247952322281128106803979712712176580006983690426522884322166038699719271067889455859704670532901710794568294093100849629661049513929342792647761293700217643412245262438579084368209961805604016516152933889258886954173035621289970523648319896861245096739048545899610603165644708203211024037702533743108898331863621930955098347675610897252615911101119852387360194289719395196591510794285599803074872391434910189992668060578098482998071296526193643730159616869089890394692728718955017207827691203644885202612045845705275828899389462256720422162597525930318526416150019373775440542884846876802396191434814251622448204526924045056689857899066333677893511636376778730574346862161904097752412577982022017637509010674035359861135727716608247280318631842798755698489716624209606096128437638840832616486576529209680242615101112800338517636478041801740170296599410175669909645794320678144132011457519304177810603453438557479769381387487303824291835197822622650688134005592768209382469124834376930779316641078416199143725636383054783493038399801419358723042942549162430819082931157056727313055170581400777256286828755820007272986548628929848646794715713361409731096729131322448286791152801584322091886038615646236195330569582059003345934748139103354553881636731958375409327093901013969531979136003308974109214936098263585313077797790497929259541954600444413843674143433410463407596658396377572179632163645087242389430503927471023046350783852089515593278751913884157667265657291893525330374278555969512671795779757370968626598553151045510275723496143302089384283259573399480270056606979415811722577890734849608742205486732801576184607639124220001565688746368507435314143074455586367793705867462036492338111810407265791756637940455986913469966036654704289116378075038936651544071478010833174778433979159786824183178105850738055117782714077832865847506654120487370120002056163042022725969154169312669559607320538712629852505336161979141191442594924908572722624247027025504168703012877746499910005664426687716398032274674905878267550030461366929615812943562673146366681769416098164007941712359266888346107479113594905486597562683596190969226615110439519153100191067914510273336722746090434267800952591404067063677413875165370321706629096538213312731031862332717873365311403560577221574846459544886663726441499528186246867733059031822711637587440303418900672522755309514224003806623098725721372615367037846976771025926218633292826976679221851931872590579006326932942146932832495713617525522113434799501032829752202864993818185386906459750145945729119890511440492347092961817957823950820309096215895860939256566605017336482659621032489525630346695497354996133937666106662058312925112522507897004486114993050521511101635275372189085031060894078215617217356363828929130233423315421124142728264769166926295065205222402831943318377087635421814985134228216644829565374325668756965264220159066106036463172990172909725938289382011236728983946595910623619013992999740976717553203032800867764139521271697285273491995638447986108415594502227146412989972444201271694831174604096393875503384024393020211233874207409560351273033592969404626929947678175301477117620856155714580074827529699381977723609423738847390785633759421010575917490802275991814338404555696181234376024138217771138159776695618159255968134886739826984724758550262268426891644309550006889833931857946983984615159801813204224474455414182668114495044189236501820023474740518738123499049340462067676502961285293511759854511766227380621884320387829734340701527243543576114595483835970850902952168785436937821501599767583115833529210792650198803698927364139395469082180098902824222311443211014039882069273868650933730940666157342649682073360336674207634551697715830264792713551270718905508812793959333175027848689072624474885451903255974546952095882595345018502911851592893934913162050047059530514172543753382916676200578903083195511338695018299925782770987178120870016335409601718641544432081775484212532931127940674248598252973305499881923469929178061936556606461997996167784109373384318326692335567069284215340701610066374866455447603989875540773705526699657091817822848679423878362773765741381500226235102771691849757456958398868813509079246708691173092778921367051738672592705315526943698749363726161916397759433323321064702617320248546587782409319204818322801315114917098746124756629659077182663320947834521265023672646937235934911042409480443819302162068253167694159672777045884622478053110864390579794694987216742475420523046805681176296355065522154807055999447180062887696738472661999490864365031528745363593293556453892113227012109905429179237204330435257317004672749505875584031568503249077877462664834729359609748877952040852659192538832035583175612099422459983126630518553997952680379483813656334625187354304514626591243667474412667028349756109671453832632466724756812576243120215076747589217061628962406647338618071208296227064408107033207287043699573078710059357789290078729837438353221729010161326615292541719026879365868958178468387309299291993830632361524647268406887705614791023225313902546535729967422081426601014625919168535964305187237457835800588371838955589664730270853707807542658141385571547168779481861740822457404570328647241532420089722628538756222709795121582544301669188031306930195381986822486383619484943468858323844762959739408527523128855935442408921926300372534348126024385978364857395493704237939752863221316574579064128125846974947103031898759995683154699007592999358192051576150892922035994499607541124060410750387880612324617763835837640852888569021208157407121452476091891003486432068067929788115743128241636185498090595006374717093166705198350455740377164307105183360655614464817344584653203636599486255552587015349699362688747896279440283583293840586347958732914972769239797357720911215736819801211494091484206526794040118072235485565695521838895522182820522306401444272441541439377702324609654240644678906050952975126707810317088192168081643047911175353021507806132146022359046589210558125044053416393257715936679806070658158173180611307327457938567713697599437708908456332235466397744047010305157819121794347412495227914782595755068092436242824390541831022339566215627965543342751231633998830059729236726169526685750774767189219171959424146209619790147680552499846593508986325169313324038873275186285181873396929156296533805533142386284790946282068155277504027674297909067866741157548445536575892032691205640812968785828740137943022557066349947985433838763364113932318857885986575497638085245547014301749227145759004122889371572117094034293411910410677774394333698315884031567140848642257226925743918708090990019611504318126976170578935056773659243013643919052741687836982435678097026048700185799999755653285288812207693253376774942965087849991155866295858510619026842175149175660117390451794243246741036550024657639367882352690878747510254050220062533845930441273911735402680351432424166323903082938460362093126985078633880126034682991450202021683640166672491640635528422286229291582639317883164063893121251079396719599191232891046511168911659453578843123250665189533616447439275997036691268769975151147038176336744393187286037627413543072069648079969539537938329830357740210466863241216385515379283428274770311783514036608572211993878044662275142464123690847128112846652249321152450440270763316406464743752249960709375181228995127940685529767403289922287164906334862448063328238156089683335007956411624662727880787631722276921239676815546663808799586600543525011167547636834177839649705067250630147674384270731375851122370932781813066577279146695292103793801787072063206493138380154692225742452420663865607140775578259929925188583028844519341324083150008381091595153533318264730256112436830689731922958432759382882617563939512311133857578167211059264834502488604196453861574303027243114384333883820560084946618113868457764407266541001404853124946970223984004207765412187649468188693203238340302453471650431057374619209743019153310502685662485822798060322854567910541349486350461151764374186783556883350039842733842762816460743181122872114780315675697963535572726091139862876428372072754803035160286171824625164004422558026834280643164535298403163630895236884041496434163416783216311315035136581952160592895055979282599222489049725495719234731813451613321621647316854667470955595818409145221642055780578613732548526492752692650794581756160152566760472248483361208461562703599168679421751620139722726198325011867251992761015454969545079319581707891455970197985434087629940580355837531930305711235986025721232063423601358922938987389734038911080196823216056835083792758939094881991210735811158571684447192745829627311389447887147678456642065437848237832270795458126289228002130069932731351365695842778378783568151153570342847985406399576805175897073897463305089615553427810939314892595022764086737887934661670351286908061758332970836993007389800020941939987650118885010462204469653612416287745490818046959944756229238723209835418697322417805614508147333263909067819128241073231098027749653855831626394704606803214269052029121737214153335887166405924520924594488792247540976994046672263914950867068273300603018361121130732234179290660804675745308023479353556883703159606231508454627498170011038900781300993824180506628629820258234569572764226463121765633735208072237493203530160106057079560369874428707951431380796784979580579309510426844811234104309504214169310735341170833862559744443205028115601609179046423984622469277952974997487600697456544748056711851716248758808119557706408476006315431774018740800059335668728199390538973659662855540733855183783375501174608044270633134227856704336564956617648926555652301140997998314529335645874874961813333193998926510248065810454790061522717575517906563147707945950890368470776327140433296079418319713795345880949366412950543768002040417773612313148974815466458410954205244519394739166017198554091468949086130448278715610033313415167372587761642273933341236716312926809560193455427109446457834422494405399606740270616198194070469455690481886674405226221347026653932177050134754172092223457856460370997831535010627090185044910092266948906461672204561715614682362596760114090446369551403991795933625443957307007169772934260596773941579388798943236581039076910423669784037731211919911365758531630966341216445653513190770972757015742563550581409997618047003934501853874879383022489740219207744890785742727378385639928128040505522389491441896186347908676177624501834188646098851325009761155201901920584285711071370646595839805747337707110791308715614368242388690312663607427823799972304780664715655861342473330529025512697202055375964459967674850277498312105375250214545559101078173626341471153564825139284643168321372738103772750956565405516607883021588040805827979568176699222033388980681505124056191861770787076510796379507304047595127173719267221455161960674639238758544748413818019050301266678402811678926320084717436805551108324477812673621326947674492545771920634684446278153706618353523555185622414500618536637073168135583352417987406685478187962228323062782399000519790722253351302527713251883696942052575154067023857709098975963684719102925337794479402419655458617775287653939102120133168517788356422478334532098223395935233390209030185320635867977408701887896602648837844615977164512827387894352470891376668512105683694922432107430965366666052739364383956544585381619213939483203492753052367201114378991803862425899206146510416695767511665445764025085036669145672655722096737834701674748233377430306465998303354629907668575809283888040203971256652100314657270714731053186066891470677422119496945599651855175433892577895653353496840626607996011406122911113853905263571870164569100095058637953146636876634669667315088376110158355366554811604178396299621248284327306311011387292439217762818604216191598604191239076245100835839273980974933940627131682573774358252975326328492539193847832836617465789223126823162895862624701380829790303593152778183580661030511727356721053164050348841707212605181738383697042262284321742229894690354815302014959656232368152888531882304149837857525492628683049476739507961422657851834974493118861272094770562828144216872708306202930109887142545280756562196777811841171876343082161262525521641822897302351476937209861441993219829218779353459681376379268641681658649108348042031044226770132749257586507272216751763645740283130945733213227367413287332749770510423545427871231101515388954517468486006122899005951593090685332045667613603540292837528371815696250839525719718346858930133654765613544189144796522281920292101806247749212967218677837009501664634161811214341917554472344742621642877939148930645179227763319198475587967345943805292944892806046739224078582499743979228680945383859448458058376294814145674560533213224734391007119619626695108222271912590306749271434539976650251172292341037073959227519428355127007900971730249826429415648586257439355544266799374049384667514861995646928919381567044650867263203381594287463010347731185505446112533213465771675804793773089929074362751535320628020359816875395345202925208101863577729159745011043727652511121730355043991537936162458121980563085473844831742356319359525038376120078357203245273705234260304303054621240905214334151580363841550213829241653768008204905256644998794682092883749072490420919760334351204638015953481641286084988473904579315272032582917416014130842194263859055776130593140931296163145210575743231575434709859217847121612773759805993914625168569268219959490447313503899571777902343390095618018968532691286911781972976632466067872346562201299028984174106976005463717216344897586101422397991390401009309636467682383668704127479946692352103996410900853377125705606932193527306674908531010442543644173039017328471644116288977585357968425872838470926119803138639680232805336685489481265979935717577332501784598256025893089035677038796833702611908965904525532078166350403498109711155501378063509123457857320228510721361116203176593536587851120576542624131795515077264142672598431296308751004786886372488585402159408415261125957485549413618337946277715781963073365770961060550131783583634618149928406426394328928828828306122382974619565733877991434310142348837913521025947879244742863788025081097010172395961344227656466521114463397647871603718332468127357610246711705460865103255085029435215749501612347684377980625794512737467854890157742543383186618912745949637783688549607942174626525113214751274814098258106644718207178258348841117874084067452134346819730109950194307488860022994672053800736778740237934455101054683651001452102540725849201422536264285544108664385220389490252704627114594784334582715868665887193427445296031754012274984574933098542316834947897740758757043563023033718641085400007158084791655138494511447907563073399266795221548530683184005597912033081173704207809844167347018832989480172270071464386013394309348483749994123753026544981809078289093435872278218705102396307666263975579068997550538768010442630501077237594184335695020046264079159764643848246082242698559367568662680466112322330782357648348027603713705271210695162117205035894420485242096196725661359010518892649668013042278961884145971177003683886371827210064248749362226189057873571735614999416637648838230178458274752610806672261120857164532000335378176397097116657356211465550124934869738799039957414403715753113151894205426915542600224240938269721876874378947927474949183857799664363553396925449247115956169479829025740286073679413499568859503387186282594867290249336933262864681189618787937415168117785722080064914564090539071180583482481886857351116911527432800188399454079279232483852277823108896090472410344653692311974063835830338159794220583837034434052417265692865221769510824246197083241895991724452064773561853656962385813704123039733020329650062318036750614316321763128859433404460860070509333261697893056024932160875973309296207768061094796602586855231876149088390318611146228251589684724130942032446985749796206012863895997167576182407437899296600901492393344664323071313192278484630573018772348996552135980719143603778410987470897275070112415161516846592788649368051327497481226591513129982019374779426106341677152954484303867170889725128429225104343889535084529445475143032240593073115189491203910281461423801829961821868877694893390691124377224035793546071580549217556162837763380117310375499001792209847316283701350238685092539062525492223497676181941609310207999044254892412863153708661759861791340690430598524767395745831550180290055798053305862276597910779468061812707389569874889604115978113542232266971443480056939930430831027398272507681401642436810353520815172507076015600961251397786855549788954305826654332440971094147364192351472351681690605611153350377004955673682532470236707300054648867617952647254259706998407058717362216101348269370889995286504940827635733322475975291881502615933593478144300840041961401492186919334699133993974412973223935481167232900484446138778098811748060589440106764613612396644404254567581523749192703457163449457290083158808420465139482523624596279267169973497011678532949910756243291780250753243034516650100943642975379755179211689760887309952402520099452143414859554905186071217607240837212754055377283475203253025335921384692737936353523797382412388312208066520339708326906588449276360724678823229708509868789929546609255061454937083091472189616326978364844920886831386884901702137841978867563274348627166361938597798865765939061678800769240545767379953443502783790574962401281934176127490258945222613345327951600812026469962072861597840070300958587682972442034779782185317998363639541251693687968903273398797702261799184426335217248046517147625914575354386196394391962750930807732761330988682897953203969144032807514506298621016642605920221097023955341705589690825315189040404382492041910894381230592776157272529579915375018414109792040040419523505595570350064782711855843043079191380894451993434018861702878840429164800994941474121117687879872360912220973128929889929920212176845472796647236844787052521121397216323663610543056451274872011180267606156403560224777621165661893889408603833525734986336250060423036772567907212048204762557616023669286257937214110515057627230103901851908853247442973351210478191622749201101507798983836332475722464699128409214923903926272201507414261759435067199176314501963691394604807443012251633262655517142312525371489931733042098516623903676817192965469984891644452039701484956678979656011129581236078820298829502944207728144617776669390227269821825983006216089022934107574610287332918323804531572077784109597206250500899915901292473634633015220212896831938875308085490251196799456880493868294005903014449694590483821739252003331080236977685012031916049655306686134262094331968135361537374085202654233157053276345983800561471539194862625825139244841749349203747631893728153813679175247904822743872780151628043948539114437150234220998452162790669628554486576781993932530999238082920547936882632699136925361335969507281881730707934166715510790159242718274279254410198916411284426178406991731114329064203968138608466322012818557194193632250723300778521556341284514924331334623902588627628697938473568199737497522055779061499640931233499130658780834484868700238830407661989973365513305776664210593531934893590330976079190600096245438667329552695375434883368012355148508811758011678242630780243133197583081013162475460066484726036101572153904524018986322704436055439057104305739439392190169678486456918457176078971421442901996487073026759801240865911880251438044079151160892326271986910446830526498386261141872551620431520596546336867773125390939766251487703529754731459446707812783828017635381126626598559542296205703821790102789630930243872271457142998587238971645448797075773251341651514068317112067542064793790113760631742647844203844223489021054913314125554127061850115904730725715275725827657101251820126588757083025460761931966593939589231553364431224444448544888703583027616388957281374139537111270502872620474895213908849787415466443449200919238005935092128658951872054024850385953638088836247235367027685872024728143955097727621824361920571176191073385974433649273748456831291169081154425763436489220015869458345564693346315295352295488444888013539600835285048809435317857805882370447691194643897000903982815728290153977676138665582015583271174741410921992349111605750430784944787357345541520661185337806650493847113544133311921358554955140492205573322302111567278708224562215548308509470900920414057465136728940825722689467729095002040836167273659725630306982558113523493435692355372582446419833186581246897473963531028549962344477535094934916683472275697412932908322290412507036494409769342892897033304362574808474112569446703460373969290452383832473769093486457544786072121120257294384050565493362328706504378358691640686344743093012053896032442954494811366434674587221189323992041762054315525759633737889687162673769414921134313834999812848591235754379238829861864843197440911093012998138464189118013464446751024907683389032033502373480160309840018117668482959409292828752490392202550875031858600509638307462648428782049151755357840764876959743795422444592265926013266345888560919419836609192417051301884413246114896356629798534732343869529438852619119477431665674503591583485066280859895009368809627086666444182487439220815794177384701791082866225826890354328893408090153361237914059948681067347144544947719816386470719247730545008794302193757981599401969901461789202733638609663071173841090700887404608810468455972803497009512137386282544624080630887407164573391753669046870146149789760163571916603617566752245086717108883076931105917454840235554478046939869954246720306822310084157032640351544351127690061003977542711644197447194886908997291417961936662482043328003319625110918201494275494874389295257739800184549649672941918254667165288579791001235734522624378655800787294107661205945955209606920287330211821053277960673347027524415021007530643172661687196816272267464246569933751798691299718380736585951027888907353082938899786841433185358034992626470818923767903606808652330652793494567339685471172238382464306806565829101182644091039237870492647105759452542249021511149881100880192106968374499982127400074478069251648430044243214052674032754478102789740280543141785941376617791041628918012537186886505243375890025865234931766396653563189585257696000696631882405081011503049350170579786492997377329183128498320955526596760997335834539378731716274170306483126268495937545329069936486592734103618189127956115595997607555316649072358110295646274596310402900097128061100642013096586144794727994066130658845156604390367283008912757452468326484546652765276572699589256115439864902122110665386014328253446879149918923821945557131337932842469481891897080804079098908974027229362581941862548906534393154245973616039716285768093316736766603229850416296821694873680576734838758269472200397697339950981137591959851242971979386557945093340151600375901371077741201404511010329595130415768862269181970704893484270497871634086595798184913321161983004089255732950107635932985000337785903090862268299934800301849025325644579983260752414354352850312264310665212087781317136449150459868126921991797642424325288179946702485593254221737876574722439473958650425183468907391392792457978617448588217647118398021598914297021693525250031573707189374403488040330627550947696422978408719360630232335741134791001745583173829693284189074764476972195815438746492774831308431582771458705474239100953100299041897334364536022865555873747541856258558224439850994435555813774609804630993177059305817448588076530931269462018581346949672862715702712167281461254807432955350768432406181015501180947316758332797462354581956864321997300589577998526461195438285102368553063542480734448736262694007368104140740202751294274289720223831131403727516432876945094186304519066257301887577233565904169272611031950854149335158251965632090120953029951058485858194756584783752005560102015243877099318188899026275633975397405445266697117377322308628449827426231734140416184999637103364482973548179016250736360461699588382075393167014137543975229817829501934011200806040743790132050391206282705521926930516375993748237405777820185011319372038689227492529348904932430900780338115293416248782923965492507131973878056902266913316594287138481107274153974929938345039255790561368775396323999604473305432171087305843778017111287599208453636878257587936857346810805193579747963434909329893970183561117521697520998237047551406241313766121453514439047111976910619949669542127848933534248004899545420944503755725748238512775785363788421658502001447790792775724599600557942856670606591416845871149492699181136250097631055927421201229398507362594770478184126729847564239499868617281330140661385034225856014803451115841871976765596607094805221097442938115246778404073503474828411504422689543536697971525205315243165396862123936679471706051408153571113695863736616466060854153380439388210329492214154466936709090096803355593915551618344416141860821547224343151922159632681027133978154635018514984483380027031397158095716361270109875460014918086074122918472015667823747523754643678883076737355162757301656976145924929474014622916910807394572200834828174603402768873732032527130327129901231311147516827472559761755587329835406680283527375513756682642314313947669412110510883231809834076624953544174280723742628527608322741950799838608119453446664351597452569075149109973966334059489585196659215919933131107235482760959261141289010230058060720970913864470674837177509300258212330885644654395720410033692771792616480173467685558029826956565923549673582401809569836658790146821222851496500886811355375635213024225021754031682046567530612811849398675158736037647906685964542660114672403451555569710081302939401250306895523567886798846835282274778600078126186267279627194960774123783042708410819011679719193518599042157975689387580351635754237674008445558273970384599331534973169446615117300504181156464093607847482533378910836675900880581920615495722666758287215656241024248707319178136636576514468163032563904840184716029123781446892052848285566169013892473882324376528126243998765043709273311373891283788777397749440257289212474578575716372396252011852721684469656247742552983005939970551059111158712835691610528365799988952287157001823413018869272917172596806725607957345151679291252363322915083707307561514280210624892772985991576515036520179383878879764141684805350799303852050229655968532434121799826557759887059327147355421780889086380605509767147490080243817444473619410800217520617460259525802677854991739708972224988438484719094660076943154110048270150470339020991427065803165169350633764702960216309408339949910192719324833329041816623379358005013121413838505604625356004817268085305013401155652956388037542588186752460768496828342387270664689795182787874103557978186546410701270868809183323446423886443140954278238942734763309217346662674066855143899296227563546746155666979635633285133746311875940046550778642938152444602408740141012114746153809738129907923477546095981960879420205007975410771201218881478288057660626679154911970772250106383091449705330338316042318390499629499425813344777461157533110702473316324350958617398268911676035426997761950279460460465207489612992634745528679439975211519317342598939256460538343854689347150712636776463921070662559393431769743335735051692659071730048393503797778642104144634394112072045401929114673580670370897839623273755366335235092770304982917152380998674600811126358430494245526743662864368804453968200427092572866393461160306723562198259920489758620178331483018329256941156703777587666988753416494385373735935775635311226211372004370669800480432152424923317895721004843924469139646221457358383410731961009810453618404989010421679185532791671976714542212495500183815352560185030526399730890761545506931802936142298706121687160458724479728977274120864945759524512066450198381667091742973862336817661203217746025785063189566204897698909644000345562610972965612723234457894120686371545046220760782485297590385599548483563838588519888525133324454662885360489288331668045304031346943527398258860760309558266108248806518931118661778586873077202246263888820698728174767553133060509487067408276800566125217933644793599550713649454941427046441235791702499149067652855604634324393828532223497793534638415313574143142611711624344543786809560578505184670078530096165557573201894236994252165948425772754318991887741431973588535608986307917563421928837057439557491464568628642579192261278261429505791971675187352448898321632801331991594117181405969941291535465234963500431204785440406177590714749110163383524397644390906022934859690895683410930185091466898060498257207605001503666066420852474944163984255797929244301338669895062766877986940774694316706281815811991015355057863101053700141185317342765436755559112226363623182437863999661680362391413910989273810762355220601355121060142993476170111606627533748388116347658369805639284667180107455697047585530468824940758351918630317726218613052638906328282365346579837648902361099683027088622594800869680353363108928323331924995792516399428478413439316433699494381212160659129175821846213787085478556270533159944554029448171297195372736495693314104933705165929202180283124272586809867774356713763579206692475142489306617392719123604745984621713381533303300964190383611982713329102550666910350169934612307428825548448961327310991002877810252294392852068215713043823796915776803805542476225617167426519392885641598173449641050862400437787696533457511561994392789144745309869295111743422392298392635988922399681776814582010306129266743457816676752974904699286651002005026642369225916965779777784150929186406487200538875281598650819069723174306739963508866842930655153669062152271265181043793212279227460643019686427813220201920615185454505844930603133051470137600148318227504564704233215094841002512113497218571227521925169118194440989760344158888799790542020593311544321148647275572451742426196899084487264686823043715965817771847646740085885660154486811528317196137772911370188875420465241478059601688558719147181955819743118472003066587416642775193128380043611716078330628124366603792265607966336852569361356478204191740974077995026399944876673544277115922159292832854402962234167232083955504200264715965884970591410652192561957311508724342046190563484230730833462701470094888710044868328840151993231732580752575805710383362048494066305995779025615677160831560902865833596418394982197393246227333568732839728730929537258149324779861239838452290135263254773376089476329306719402048189993164415222573095984167166136104356367055881859331188021395088447984762771894067323806509332324339672750583907977616551382065178359312153172787402254146955738940339552200871093254615729011988632700349402676755368506281227783540490236840468645016654870468431792444496141639425586549013923293252658337768085037103019675994085279237770224737996581952552327114458499426880024495343663958575198588738105504076495098087635857507704794805612880526527207412760088699153747672428455369989217010464328104601859759299346705071209784372155551447301189317197749624741856438406488515927324548185828857654417450279772570205503458115188271090629125407529036716746609983179787862083554834229492018031633711351890700668555493441224257356534363413014826345121895920649863601274129124556932362611508249766930256216116725086606003309153151751138877521757376770191784271556308533625379297803371778443392350695036147609639078389049024075072473089939496982680532918392655521484178511346096288238356294163844115443871097987603240256776761232935765799817401457224344284861011515718160643574232421873278517306302515164924978800865686991863546705414511310303660131308845153541559507611025393983796291734290152651378951954855306625311227376703321015379225186525277945212022099458247319161372360090848219759983082438705999776742164884089858008893975561286799085690423760438410451243538340284413907066256552586822679739784309944241949662703815774768923329785216974503521945817334131917588880630709720079713011801140753506733932565332229901691587121287965504741513614937953577647764252506148135486593752172848789746120761949884856719712074630185980044090066742234994767166676424860991063597422540866325278041019004081731841521868830038061199924994974650980854644137015858419804243218137428242513849392636448568080570488907474517207174707512363770714262533663682953674106148504882677874489900510728846212238321730181246546911240067396187965665569803992210200963634016498128663030579869157834567315262264526584308399884469792624935848372037860534420110021595300252650620460197539938761249064460153447216237603741626191842594480593317260950345572523268301348426279480021933136765168604554486265354011210852594178329836454331015916311064018060042215482281147607082823581055992404062634985852931924783966570095524485019799144236312806828790434773645449484534089617132624030395639314084933880442862854983808561575863997593747398907961765040704002801819165768426921810271506877828676670409963725311148896934552297724920159531671520636768976914138254880711102005498080351852949098080477089810554051813607994677541492287446041024018615239545888382189706339131365852908955694758604490132957355233102632594502905612098037501514482998013918580526649981407877371817957547272283348817673717070274243460094747924110617827860033800873334118212816671439654219197746154741784877379550764651668857548476857793415785348468034089370742535624653140300622313885322562491069234819890047464269437019615918251789452316141491497837835096887956786263853521629148585182839247799819650731942512161411638927579205015917166360096162008148956502846702347753112153257777060226390537832489037708059684907817841960190074622320386418911411356302731279987220717828256534805549215341955225515173258347778284475146611270938426269083851747959112981144522291869943352928701126966420178789175725930923740955679118166794355756119913973211100809283528419566264832779366732165092320262221906803615168909404733729210402564096395595174228601204125422123495853341458275811377246021051035781861880353573880195088477085292065664530833233431501540548509224697093467567426157634619801409683725330645848657809333699387865872045497859891864715291286881073846887769455046385656374597278468725366714929278451739582088894429107839892874070228255916860135338514083743639532640199293495070558801580245407518362237160485395128464482314064945740718918567095293126804906391214954897041461799645733380556977723718982424364247161935861761923856210210905207126059697294237501196703096829401010400756023579456485769315834269661574104605208595280565317564234884983097209225047034657129719341523205928917962064327963822935235454427616079875027927721822548444080754025804642133219514699148830925765921667797861064759861488015096303816456224336490469317127181653028917729894313087735919301541580667495507450921761252661625363836976630119731339165698950697077888261717227938264888442227435973141316340894586224746382917420692297040440151883759214568759391116091009955663482326444280750629746762979364828097836466203887036298755421162227550758272708127894902171963795132566497705764888471866901495809130091332530525350540886210838192199551140094341428911162963930346403504903737993916373309688070567222527719215962123974572118545821514511692296039326352070888728533610462519201056550328838182469189217685366366303709080038078074843474581248838851184131168063551389081177364589079707051228020974459524596211880474782002388365122700022230147144338481584552685067593851663075795020906027551100880531975472359555819616948647387426465198306010837242272143922053002575641675382601049796806875805923599456498347104631603743280573662548720308833794978436440842660539745116075499277813598253058266645896653095600115220435001693506665635570806877252869928294526123708712178643211577865628726801040739512738609871294345185134223147549609930994634405510531963363128894206143360828505979298295412451648806341630673887740355774929223819969648210114875823403839373479869923133105153233441176534085388220802912350622045983319300839420014788925858279984382640873604777793235810945740039010103730382257865623825041422174144179534971153951077724110608960854903039119031457239619730289055412900242921921318665320358040210249609508179446494175173654867076259352791788307156853037887886751123378371210279563032237061163873883897561803038756578206818820003026620149908122204648711250026831607378050089337840584763631723094418404126364920140967228712659212442850056353847622578896990428178994712547246482437191211924336228031451754084599229022530557898669743185451405593553451850050683743944503453506750274464075653088053169759967578274790021834785151691525088974356037216440504713760133194387158448078068085669269807729773594631672100224320303856358143200131318150022287410342833485171931737876022634097251945377110901795718066638454788865648112903835984135398338914994110658384381180665845448288896866921450086347946314280830083163007811506569727161879266611760864662953660961219659690229779891002989826871851826800812292943065685263805553166928038190643320285099992473159132300177738645030352513413320036513244159711083806679847664253720202468501924241160980426774955453547138118830598284958663482345767752653819313247206607675712384430376451776990026506568395872480445978774576913730827731750465831340526581617590622624430255454068398350386601072329520125885221650372234163601332606502463820918820060267017568175264086102637276365007237080666277606079418347230632140932249589062445390195294705714101876247368443581767205835206868821581154045583694525480725789278938192619629143090258934978012526025998052143257492657464698546539054700849370265877740914566453554398600779113487973396980532954877145302886456858944336760066325822756971553192586818497212144995071967810289971565680843131704310646517248132770427699223216375314516195773123623291771903641628224472189108214135914203294900325149742799736775696252420701880540604942991917520708698740511574243879933112761208891199225664093696100879626530176314817178254842945868823434173025612396756385928599875806482512662870331697027188909963169293296815884012772304774929980461393107174189797502310414042139808432899480762302097838948779686408492049199730677274058498715400331386362097736660464687825301007919115310838673710460122773343474925459064389033307897973043026765117451701148010991275517621830747988984040218773653303595759302091688046912054388484525860677967621314133981149600639079496200891010741090394200964183948499464664990186039749342994705418544585918798712959548948352617204765688842120595340776472057837713063781436984532485668264248519728555015247624214105425183348952987780069585614361949367896614389548699051594308724292284873307803715661778652957290573393413280494928124874918027371590160150032585423444582000521425684673840383129725566137889525724185262234099349033874290512475601959681189783380867213755717268404017355053619605669141024028858058245175779898817817156644157889383050966990364046933370327710606265130732397578701541540402842278192129493675406293251659825560901958995058596889633660705540342138716003150362893087025200748630678965699230810390477222974661908702861298243276269360661739410481870278924699638010575555814192780259809905989040277952545522232998386491234505379994958323726717124186270832172751164596691725174962128012901213900049526453501695397526738847968352146216242605825689651734817755788749554572936641932748931087890830539924487368967070685356254707380644715457416807494086609095987276188316385047960703420867562286523112349142718864289782287271347312139782133526625900229067843755967659405855366720217986329272913249845773727302218726929114143623280689345349672826270591546105236814337758773616001003248710479233191059334953282798810675050896437206779075148161342689065216038251819198704837729665582142043234447917117201960151574983347873583570852922615233514096023194126220173510460625142505909990608946980563037726456129050271115166447016668141350878410954682015999829337920363048118475680698124958617105249225131593812590277892982613789017399098823739761801607615433717694358556422365148700901155379308369172112033608868565789671868393703972487465006479469083512336016507402484705413819837242638170413348150799314347677660436048848137019822615487954316495259416817496452023693186389909343800853507650252095924481177733205609695896410345769296832262005234091410078763924829026221702695766547444523813719561028134784520996329403717182523035697004832640970371517893116641230141922092303785507604803608672897707483666711527570012514646016564033140910454510593473251573935431778241072078738905489529250993366658476267165841764520702231427239422467741996599543596486276404398256423903120256078121159542374049863791521748347487613525440884781874538046151731190352891309728822662303282955655964335057670531524456495213987908231247797463332161107926992419910173124530226093745612910506341570539087018735961912628713219294855729772982497261048179738532519668510306118689913293797284576023450998262987266069604169817868952456096988693888187823498320751964567306183782227508920380482185559941841241891387234405150449522420747909231481784906676316273705636133838805134835824995811244267149052001788116092505909255617820946777518508232173631609671110502124841457987697381038476349814699028361248108403373765620835671110637209928769727610760045309053344397320945389325305714717108508620888791731488449377056052741106517749835027403114226759377695637232720798621528913441314347321484301083475148473612336021323733423952232177795633622440915602345256464615744497118991350091112047470160700919106331636989992263741673168580147758891834377501278597023698236730859375886340814547487801094803385389508193979997452752976141704523687439853412923821980373562046715017323710580781909034098819471628168032507053397716713271128909508402254253612131892722013550077167691471956318233595190958932602446875476321070205879074412135050340741841691987277633780620505621103709789315705555387384161897319938246611571338384546472239330737632978701276455594067069187807326975239398419748506710123345352095495348518728610510342522879087484954033605901176229811444525811676372336321580979318355849030808086623688929323244417592954387275498782640090656642556143507642864809431582905511310335340501327050336360676112458282542465098001281101846011412034114787558504459443884091706653152546237360997933648078861136293693998031829003355991508792089505149944216342192051959784248463648852435863772394774957967061596025282211984671079368140465409008411237282959072216818989554791235979117201726251979185319670569376436690266989725257435307012922430799543118933509269533164695318907934988098614614409913181477169994803862677606790236912721306905704826460743262356348030603006165105367740092288643762796807643725417754876957992200891796416284895190845998914078924926486101387902959107843597980497569722991477586132483107374831420972756621904175570759235104657257056704605657622303643731357897554943111009311434970344658958428470642869982476228826684493558376328817271840290539586288465813507109138138365604324202440223396880904682840937156465828751504433905186839088546137463971272344624754152353168086642728858031942645703221689134013807649087047353533957234227735522642745329065991700639209117319269226771689381277012372619410640876424000706198145093987884375698313976218841585736603296945243594395549522535958459661501447475055237067582144906950694013124847355663776518218394662180673186977474465634852874729072548660167384514030302173368918897161276891276711139752554677954933231496532486418451837941711141070440499406067285172888993262592743173805686389224128204320565138897862456595250907703438001066942480473370214475043944535608736731344238208375765037850707543593441900994687586915899049640226025036110538441491107741800730499381536812952924476538211481148707642315796215062628042276676787265263184708561190060588096940505138535364644821809337631986237228232446029660570244925539305348719677497672594253021694316968181850388630433003318972587378769645204401202115992816105025341787550987333999983893495698584013885839293528866624220915151484110300571460976658484128524847670755400420133884322637218873677426600524147462635214049667102215937363341112558126314210643623375037502089086017161188164335391110457777786309222837149500655201883085201131974658869226920737050775692910543477836560906235736096448294948632166537796511067405758859892062512137487921089701881416479686567017168412410973303987458414359475626011726457199306828760489725304675522927286795990637121043155122863914121015861470186813766607080351166080124391670319147048656538638340849341187182201441968632992210771240770837329753287708080458250977535186332694899292911294927322485930138354638100806998447004442960109859762685742968060880669342308159335467758227147170338534638731712354012221644085323838537949359286915699935473903055875651352320612596033271672736271300582792887919041943877590738904494672605273159492618960638135393422238125577824052498567930329126337422397235174470504778779015190423917928249788210463878714546715422835941677058763162421577355306630366524963779572509972267423857609007238630707989411028041038235456297715481522116566986346610913641924689099886485412710593636708833815072308480360772914452820916030355061175243938274188832218072318507164262371605886637728399691285886053989111479273620405717429266876267189794203875067067940440715872986505859728546339468239753033952378185043937107374387215944894097252452545977795204666391459307415200311219742954671294490444488802490071452067439093914733108706609152671787081245844039824776466844008255943531396359856798974935908821319528526602587911136053666119405458400052383768672053928661463049668037086289960651046556422000194097590545883591064776218299669537782296258255964513380174176692326544754291847643600209440929891600586672393961368072414833308717256113098723580816036284780505205948816451431604912447242069176610230616767715294996319672084703557952161244278743182066036731863378772096208837013489644354522328257401588359919956463499506686349150395154907828376806068654841542389697471660169741005232131595260637999776255640929914792242790286270491080097080630207758284369231914730168946911643074173836968380805991211804393970948530893670606838094798337141319596914961102651522456614833142023181080244789614406825151668964512238995467049850283396595369324932948458725194108479248825535139233487241733685220021631046579379676548511822404546838011936567750838070128741681997947231673349702357073463035887623536301226210786080020333972068342112123589544658325337103547187052078237083516768884635040600518311576083155091398567399236276651542046954649060325196403102099390904667306202037960605870964411572924572410377050851778229150537763839327012515054341564280435595143668688393535771392483343014073887385268765142775930001888456015779284781949967787315946337276615848184785989420555826655790501977560246118544478296139852146347099241880090409356687614811752732604272607057682872645227763512685754626343613070757583833341676243902271817603149786616692794811582350522626747052748711599904838726230503787951434176333204106125396916092312670350019659179208739344285299440655525419483944032582861756114457624821971903854610249724274320498685449158187252307476232220464742877750486678026367171853412383780347205859311322803147836847391982402081861368390275839018838890604983139462805035940121219191840450613860294691129285035836240287715128307472100650173025476615234320283907682562715789740137461457478747225322671877217660627706799023156981354509079504282898249426334652392332761555104023248876575473657769606578259563845149614461669672729632528951388270079659063135508821845418949309320245620218330146458478581204672570082384297808631781949363415166095901435111785590277696763463353490463246033852172957626288775517920964499150949945073289577484124568192813042711669508028997746370016475257174537186762204796539740995018220638961388647280536701334796350654147696734241419546730329546971699107648009058221364774876092078922905942527512487994686667850426357263920916304964844596198876243323299412913045800683680238353250514077198752709859418001820066102204057346762362420936124729579149532511302337419505143322670425521363377660427041420109110977679293582364435828301095214204529594004705626224786332157718797579743100215713568334643035336638170896086771315344120746440081832251215009696386520996221832549408936344158491151142833803638290354738569146796027828514602452316755658113470826532243518308758797724686812932075703926309169981048691359869608503283998946239246738991804071301059697851107395946606679264975786787360114333589494084788824648242575889059057440153902367346949934828279350271710285498710384398971920051862042597213662911333641833145087905015666119728738704510015635778565883221468917159748055152546506968486389527500604015796695434406287125648671785667319360860791909726265798832983653948499172682558124193520217978096811892837278855561439757319127500967794785258305152490938660537650811202013048771159204358575501701486621338747522855732519621971212922134812442259868149403044323992347948856273655323007335115860020900726934805078405442671968798731339412658532229854014304271007404662127423964238225052500640441859167106399831863095572472553738392065195231315000221393749440457241096930754442716498401095874835897771838694951791216704701053658698703836962255323876012691430865769804252847317521589652756004510516347630863277042307866790037985905979488911896448321325238183136290703433545177406480814861545156582574459558898801099007729360116198423753415930942329787189731038777481979930761564980585416325410109577383699466039299535228389228854264231724673238955858334795713212906641348223818486493977274475231955801520645291000810204183043529136642024434350993424216271689532425128634834695111619014730724133590159541853457677312156250705487124702924176174777756471849170304386491846728991293693016923190839235608188550565120477782376250171284199415249299210036739277478348835869635599959119451810015869334329607269933483712665370730142737296255018943534132169043672257821760606374255896118126204264873356854948603862214424481895880930161950890710168711068281671241983462279651658118035352517963354357521910168684030560134270290757698214551634528552849963583896234787873276368738157629913223201633998757020383003495253459330513682911919003910761503689907248204974222813770567981557740348730123808678700360541894878979829298638732930556338261222210173875128570402864798021546047097731442025389965090776837174487915402653402438330028577519723177045547099203368013180483576323294940417854197787169290505372348900847892928083773105678539213674697557480276795544208832006539451776376381625996981353634796381676098851201141903799491207819509554347178928330585061553315634526112405465151698738363890192301837293963045662025907847651036365711202032102532334873835105632451692169583909676691778446459766233571257445810457543711193744517368511070985274179070708026104973336479254416994602776295682522714478331444732517778195004203900829196531084044838926532523874897171680406753028211565780812828024357293746770549155981817832741943276998780669558678027763515031706542116562703956200856165645248365169751652835271663232463295501470792939112162534296234199582488712467699012590220454263250150764951068074972393712009223812165592372245201905947429378835530476620752958469692150689766901603625253347112362435872668162534168257525648366621861937956860285788106407094005392014136287786973947683866188624440581979045895061733120859425874114268872854757845500642965674015941322908801188375741245249966976777062718031118379625271770358157819161698061986283327817725358250851999762638188532043870365207291754376447073028158174491572510663778124651537725864464796554173616488795197181169123539511493668764986816009855205207303246399592498483448836312414427015771162201208354423988504272594902381826126563342018404956311192179241083449838527767213216121744576206220697383878266846344137848773329502819271179741858256360639131629551554372312637117534378069606972176990173165201200886432594684265850400115273071875152173949407615566228663442395847188311855449943868664085267864036778625671138643412381170517457998736653881202879544041180955035435178370925764199263174604728609990801678048806209741086787192653006195339275842156147683314396525023443102483902017630421182667790134958332453757108996582116957418781570505909133729864646303444967171516568779265047838036213125033788739305521318386195193372031895372036479180502923326247625572572110096132333500599588817266740832868322847851825199698761337767535866295503016630438191058844546095166067571018016683485472157724388085594795945631068466638121572180166913150379911669556410243841415889038113856416750570289564543614747068635008067400236862148321285452150201274744217335926720977405471602038105484043537671245850304552605873094712759235676146419487648172517416088800498855056245534319334132560604776605677360581381297244482756941514750719825294593886246998082998158158275936870154628036449229834105157960760593163364332578703381055023166752726079658322813435539259042681226431374005417523356269761052895023756932398199873762348174605419778082917620667416917124176242996848445150548468131456222249397100641566450665970279721987782009121702588543079185565869068188505048763966935509649343308252824195620152407030033333987184670825192836318816775861925454582734756392808535400632296741308845220392261392971247303286369784715910927611171560537096231396849293844083895421137171846683565384470643627928511803079479995706304875142970785146624829147182790769262360198366996566271570321142371615427463520724623731878552551326858874429325308131392885117715792844022830052834266632674811945194955640648920931110171473577073818513040979614910511948723620408008523763399455236499343816117117617978977860895398845837350705296046714124633685733024282847698860555865042525966942951515856554181302154033378404991737968889880827746960415747650727865225403211384515193693949872604501603946903059018056963436770112609676841048156750181874834429437871485228381028862536983487317639443303305753170572287801662330808247505007779358321570346112069801938344622134296904037922555931600249241843978354988807969699498187826683431366300079106417012448609555060756952372637318467556669345754380837383507827410644767083552013064566690643277024929821930343533401261797998421788021148244478024899594514437998436721682820513898705106414607899195831263250646353963695890547394812534718374905930645044266758316020082790628651871447584766049994543004117102486439595286141145723544704273895009842006849357584820678545241694359786975583425842001582745785441592136145954376275876225133603007004267990156742248772258787170632229065760903196552651191884626509163287070337573630229951447260942020462375945852305573989640608329318326265389808435872680531109767388545479801866912993924766283876560809399953094464746854210403797866569389209745170811246287463016225589488650989124276105055535913931256395090090821607951833964207645858882301417096900200169012765094422285290653194804362918741368354917650135067198336746207833610544066993884157451976609332209842671630477165831869213838618995934570157920345930454938899610670969571462710298162861386096574396929432852538845717902703020756465138083318631021977955634128366292867910694089373663804721093649061077345227147854289826296661603459772756844327678711254775727514663373329612530015969361697666525290209727062610052807835896935626404066116551897523528714866440929190875153676515318851352071620902273642317786857147696577625217045530566193742058270820127068070076113663251858559141611349851069162477148314980802047176256989869643266332942825160291373455122037857754150518895514225842005612508849581991998971482775371605221185247973732307749207897259046601129757906219199632433575757645160423929694637150030591925668997737367232699889198974717466702700205568530682467484750811310038048404837565625574350476964491706373245835701939960265617767695672554941647017390343239680621311925426378996189123733882622257145530774130240936626469569979147273687167215286294987250016181871522086387065775435870498873050961368846272656554478957038327047548087942867088823542528532058304325237534675500294397186209185354208403139144553642532828251972808764061210569271906104296527876480560395712018013957774811655376311534025533445640883972522593277422707660660107804868651353534551250462272687665180950828935930008426127948807161116682671510897351694455305618363180687934343483088227676517348069649001540217066667048466798967982175325544927731482796620424673207534139350476603836451818978522898241109697819510814996359806365716251321985883648412773796476801812136053070686084931386045114906404413658525709310129547823142687159164892571449572079799768889475739325312733893311067736506248576928051961408503837552362671490867425102057241445639780491273723540589012619658847074594155438968467579489193094763125308613478905274265926550766092619347404495888089954219052317106850506540715155760133182471461993620825638425524796417816303471832636876399886657220003134382227718811401758391947953329513181654954528184821026079385870541384496792490670615846847596380852268445983183526902752118885532416938494954250628527022107214750252013642261587391818571068549088182636434471473994860949979232742877362793753807707500464505707168688839890906195137599540164610867313246812914147726251235396887423188215269424323497936172964621075811500026285506307061007658007133377573780802992162646168956637080629740182502226651593780585690250626441409128885263691796828894444387296022817785227525922903398703650158922110121368302302158386371977253969722987593852341942657567998181219876837444975054896934327320560798286372152473336979978013405075862658712232429256453465057765663215828877834649474759620153049074158615838774166025892760209901307512613258647141649527770143179899216592016852825490301534397129022157914605106502133044108773163900517622574773752561210777797335116072166964259962916441480204484267678966516694185374302479587310219261562389985809587317922247613075636927147435831501750927315670673233421539919683485037613308930182844311995207027879208655523071507877441483713308687328183559202021365600457274413163987049877814668061484521315836834780982491105212402190163550098078466203576406258237116669704310627930047671045567679548801355741728359308213118815825177387302002216612100898399904790738498503591085169069490605855706094038738639599063894723463648085593594787878102990714518575613798492233380967754054141017254568463337986435757272683477487887802892085021785880802223481358417791058308808888358034163783036244886943759649944803294620593950869138941363421377036609543524405635938734357478567468650167474100006597690354763345273463844025592119904693436385977337536669199620164639706819670129917853558579133479725291712998411529421558711796441471643363745206710606635206159382393926009893270957559059629829982835987478588366360248736062785203941946801879093942559128310857522924864208149932674150913737937409642696834934901444992222311268316928287662449848515608644395340080310160462996057943203165933389183549583471808988112432929570841943168133121923359102679209767503330919353028200205554979862962873095123874161607485382579634565291085063497132336176683981524038199980616512372267143793557349908188741078327043076158390300262743575289825176238012053471086828424691271654292787927306820373920058930739112534414007536464750919115224152218980059542513122422443204500024904163454473090434619599318077443216326360886307211906907014439978884927454691250778890834005896455822703679897492269546696224787700913494742030820818626949124501837310233733358710092231744011473456556340244886884406348522192574182046811759411471124552346410502046870447055721642926083194809644465668372328464139406795656685485936784564585617253797152417528958554296850414919639822607430981052275847843498793647492704898595275211938146908972888662602971565145816970604139779130012245099409628912544860604769954377857546142169296421771174546637414932996105375788104705447038339933747529275423688430774122419421057486958317910185446411262877262731442791767504756469200701529986709923112434770405817631637813621540502122434588944751332433136923733109059324541493785312726315968067120759446673880186628389060141009053608859199237963466014354184636299286691189861105001228962179448294126044871363701848588063134723181126497059262965299326488884607078858551331351186948562064352098441233432917611406520792122257982276658452335701398716100505556073528218221417913885615726637585320247484616887732771649433368593848562850368108664548689831646596456730358485015630965967504932104975562526610405380532153086436330299481971941269222794771963594727278307813533796871095487397850160943983746497699467162843585758219917139856508179940150239351089604794737467507452953992761039367057451854114811199877262003716473851195999393003868905808421333697355475893059287207638292806119829810316953266620804794186369861696295507470096712393521985710535377966959634149835370120671092146134398084166694558509749281952431895441154728336270695841889150755063114595973641899167020930078238998179574082484748378805480411984097640318499738045728768808163651360640886516736592206270933829896339820173170718086582541257955925811988118213342986862264367663962999812326884719144842174560028316965607286408465515936709480619964984769144604982396129676374796794948134928772711750462548828140678169337190821225214267786143487539121918847305845440278512293653890790554914543182294078202680648626587525228247642344136996809423396371151574914753088018236673418232589753195437831650521802278649812745857729363414469843248309042622753966905821801356691789192190123413287277809742342475277698630523409682775097552831850093264691633122189338857962078168892481707529294290129444056213354518342185253898348449116909469667676584796637636987208479756611093491015166536114886858600223388293561242400203080255471636518591506186672001048681179950967959903459705503920920956311814704209506210251337306319399531658363561893051914936094255065154543185581000866533313372338535381760929188440668895553584656652026542570907351998809562286798844859417312931193626438059969750006790048612702060191382781494430083684599281626004239926232328669534234638989982370719938462367054050024641194164661502282318823187459066247336807902118691793262963576143778221485714487639521118080538612423024227589393924871488708560661785997679451700210687898347685637178927112512822515416270679178958173640540092203847021697277576332543396604493361984058772063373006088106728261411278794603168085552482770025512960385296706201295831094695575608225214852913726111358159245468695555632590909265737665030672882271614724541771894971378285433714224135088984689705076043043197150802666560478348131583670940153387240645168401546156052500360047111802463436384066573988444166379318117270553318531620420266647208213764200940683160050001813973271708858317109438686208377425018434289971116705101674436877899208479855612879837613072667468479632479238581716070016260577356569916011188369052609261457239021202808855266549594248803698458358755005449032658737299876937606425188458377331317703055694318826878769250362278262496320963711904915698693889120863541568787234854111841513323980624092354091704054279547360614984449812557808774392010350366253762980124925087935237899238559282346508435470607929665227347697804163304046264396848039193315678266758590927246694395511495732944242640733351009487186581810393471057637182532579641503786588184048673304758816990045636968396909355512297622628198741155025565274240956980969758973905516677389807294205076580333040938986162575090119745634945328622265237732127537579773812153541008753871584084513434601141035783253277344583067430752848337477990862874435885269285023037534697114652521355438244084287970555526827507726073565507589390508122805140466917106605948193107356932226096557577982594123355381842985699331279425104191921191398929938096763120018496782793799764610801996087232533943239510708536687341607739785158797260353025227192086731368404629686471285612794705791318614745870689269461082600957719947061778537584585427766441020189760894538028609878059010085988176470055905773456925876564873501731036072537527763594278519172840646776319863266664946003114754868860543435844808769824847645985271287082221549020259548436737938676791981245758394558409764565548768249426560119147831682546927192435062057183694356036018232911514988180235469222442411628115300937456941004888250538139659033489600318291635098950880640021841548645811618655774784706304735542255392031925873085143689876896401823578785236223237042903417581088058991769388843817614180743141509219206970040508987781420497135036919865264348692480085108905923388881850262095092409635231749065726691024420976752761270673532176161286451589109228299637771866801839240031155376444999295023038456660457638131552943053017497396385920913801495400313757044290450795396304249247195702795334794567495632430200257800464646994154021504292973414246643036657156208063930769449263078127625168665025936556165508830033102230180947282746727301460808944441389699363545644209908642647062819288546735507221988216726795072229808836249503743063204391744363297395767744450322009495122498008849660920029835865759558083004258022926040102326274247926658327564115659845354986020599474962946130295083460929449212314784829965914618039268240978606227497672799971793514591500498150946483374290980636379490804454450422428077247090260686589180154258424867695440639988414365941901353819548834972311825569875386761322292366266365007650658553060195148361576837802927606198109918201106289392650430691310365309280428633777082533727405542063333786763661245583066371081738594241935322898351585268965268805076895066513445657378482824780722195635006279908317375197028875931730303865405745154633693687074583979996586983119594022678906765335644281203852503452630062038152262992464213847021861463897348811783728007537384249171668743330079683946533985341077291355937257613523671743970867690383494557212272698563496266582630094128539087925360516913627467016013606503860659775705255386585612669029459881697092704603047920296946797116352376177008005722883144617131352330294096851672952034331547269838796860444959590014392032517628296023589104931686905477489757106965855723774165130275141903889665520977454012458336498038853186537345198075512951188385813005218228583875622084295820454502128215561570438040579453897864548047522485400468103570959855097792709471217837891889050343954431498551950869956968209462327014959398236864420307307309221565370236901798844828580163283378426684020615152134729729283679239114671343786186251101788088995915657188177901166940626839734625816384086689686518012977221306786418702957433397231914328090373746301962640391097998433966369048768265874800049914320440677713871298816101310137345798481162470369240486769979520526980990045296519802727678935646526479509083413402312970491303073932115391313998149763153667397620958623018528570560711863339624664094269439391883469299347216167425690521318343512041817263573609926537363402379424431018010027541214442326501418490298438518498108989855334218996415624953481663342516254619680005358145993711427286978712767709096311449802977592554617195315173828932412526258827585157692436885088691476109354437995122894660274880654530842842602903043801389386262125977468736448381122028002089891793926450540894043732079309477956607202817317458908079671945148260242857020143644344513588003525421475953532503325823922291438348255719996681185845724743220371081897402923206538717591149103360316045015576988291433273631428582004096660871363646300795215256191041420345412226951058079396454965830109666242927666097321920409381252164571407094345798715729390924383661548006351499071871643620968203786447929971135751064733340496842199235007517870436815664935551099854486286959029068138879009068218427936404957392108061945021118202310578498086049115004177108948298400591607548728051481453756081036741307577667898447924112965656608283448849136400736809345156018530783353058053798419731060081677027077090131934850434180696751825373015102797405752665182649007708507313651082137485915431000392272399122192350480059040685172039475635993771321033667101260413935651217307960188593618844917220730170469129600773604335236825215928916768388911558473052398926716742673875586181656761228221502740840653890940039039260857158234705107481348770837407507015067205287723516198983890318216820403764640744926997692697609510502496564594294784510597145615954841698512229118130758811911324131996787995663925028649871091694816084644131524446486404065250069191112007851985060842768653010536199890270213516620128897030836761839909601136439933475903884212549221655665280116201222678666818312198370415941763928444461376330208386953414815143804819906880612436474384675870049947674128544704514417672066327721046227030156338066161162042070533237777014712496665817434522606708881889880116316796344906538419881065009566753539263009874774733163107933772136332151776389650378224384371622633878912695443053566958126221451996717794207892508476738167132819552206585477812484458133696503511308101497045389994836268422797916080932439020067362080957491929043495233055654052053111140790302150366130625897690086839993615347971545215733193464117924363368694864258132422344256849377108306093724957128129198357016422453822610389758732124241233227970262861296381098433171104037128424099647022020536834146391197637038571813038486345900934139508772855488126625187393995523875900464760161163775791673188971675105583585639636742661634883437682675709210702294836773944087861249631473086345854736357315304669904874068887018777500198548005524928364729650904638681089839324025318318984237236589785462875534659983312690314760734500917974587587854141056527691577825721323065985003096843072383997724755523269607092799336612105586599699364940578007492404688634119803771122888271562456676984327195403286155385938351821408608518368626921674616359042409812602184770613718700759245707161105135092780653216693206577383171927697709497422295161756546798816378737178941502837432849574925460418341006206207839432603694060230249930210745075427479125305792903055418836055018626343429571273192753640314222696070976104362421833568260787535615925144680750483592584385999775629546346023089583305299171140394858998106914293643988807035575777760879376056744382763907289876698468799173943985528518752183187369370695365352098059423478012512251603005073904962589082015962370544479135374314345071765896872642573451370477992080584569809033165339711178173793215109293902990086218749847920813182692605870714910430586904440042075652430525401821582572204384709468935487945763969759195068254879046826986906604951212216868954946124570917260841589392220565503369937357705172518587986272490188902974347898937261203943278436546053562401021983224699035481074343765460137504613518171696898056408257555535750284814283994171857186416221505575036601297445911129898345795838161600514728227312809756052976416670033475606678540966141410941228104414262673737085441547761821296229440063350305363653654040952535079738106250742606124154589997917849788309002391136772575246295153445184407558071088587539100952804728915580492760632871844800633085649481177036894508952252894681650984618360960154383446615562077543824381067699997028929699396274690291569770128997206314495481441631209239031331669761194101123946807814310954304247224064126555963601276463079183029678805732721768542063534849267911061297926331712427825425911856474423873457923499724249518708625355062842260146789581028824630485662871877074931460691016082074350035694564280256835800447554668572706366229928063890273036897945635919434460146990962917828144465198443906858037642705454354468822304837970156099525420734709041818165021155047299163297237910454558227891496165663817434460198284774924852315378642166087473729926790970872144277928546025923099290903581679877134998077411271306332092485182724713355118937842249106767850320800006595583300211233180246759450824611357588792064658960172959279136122525349793216738449004349212257205672605529842595219205550561719735488971608560007209390071757238987479391209383302393128707600565066384133476443292281783712802486719329407526748784858383701724759004518973320797458859720123303497423779073027752481036454713776588665846880887143914758898583002144071198923567927408870900689482588945199400162543839006319860258793593259397315937663528857220017773447551632637635265753114509515055402914247197434390763640048447950575319265218178891028022019896171396925954718062701499857315582768283539098805072825745108780111952517488799928945355981612071817287707277448458907766149950934690169943364497535392415401207804346208919098277888672585202529428998234897424078824457018787392391986662182528926762753985252695597709598534953971669862614005302793779921663839912095922195005796933498417778272722595984149878847310684911816326425535869551327811336914343681365257753517210489780861398753554776452333337614441868280402732497432986127429264079075194559122506211109711815466307576257653919018523678896890776629193015823984136758538589474702036717976340657899985498063366571832335364224458329645339074692667946556165810887542448535278207483576774845424428182474193252348356364252292425942216446294012516234058115303135869645628591740061371058337498460978798366553836554503822025127115697322802680661637249619848377755379515801456035712644518418764595573108824677677381834666523276417214454333395476107084611755316786909477646655383460310860806789936312051552678750450157647716175144868701502336333049428404844539488843901000029638283932897944973516292060559325883089040252358902715234544096785974608203756631554384953797220163204393419497946244503559350544530688950613847867517683967192413403164843600467142210436464373795307409746718875489667615854593404985288159718943343649803980940892675773840685871835211591157007036114151874041878419836736232643644555850985711772308447399659682909810220498501521830226537755000296223278356169958945472789247342729089969976697974709562138860881064302256115566646601774844706389346649461563737608464523031574731642360659752792323741755549058683732584166842554204134178959962225831767979071003885355035149450813064750800757958171459168239063122805409520038146165719586280811867566465312656724809429177024171456168901613665781700451584584372414987614588760651309763565860028357604091526207093722023261599683583705391271635646094389553131387697670241079705826447726159098755813458717178723697961570203299697496787329563012552982288667515827600070373120142277754426589322966855437842466731275890671479281403392412788726449943335412154001983983281761328970375158306270147276087486608953640974941653339183403316309201704232131134810041335584141570182070491567764218341177241560215038669291543547642733737095195571590282504750108790383023906903150470397376322638280734378359666656450832422519116005094589343940107114220095497999406079423555927508533786475190838737178455234132940912989726544620145924150356848566188603188570084925990562541593438086048053076053342812589162083044182021505626637743323463873380754517575359856728305260400594510998493941641819125673164510965720610004279324496188174495076913320469240115642183046595049867828983501200830652535599293082458197878324358176372592788161099843107036890124265088255713109595611069088970012299316754253680670307065896194579122084321203946806818872676127291996693087956717699629102009292418400654271099620135828447349579104789529411632289533074907264405177077165582467757576051228703873488007830022126618882870498280742762548793098945542683535012822391047965688096199683658222192323096275540759687341530171393189161693961886363492536720166476958011663877367048120919679986243231509770968538286903758617836515259598068514382829640261491476141168133947010986590825719522194008804524163672995947228839149950240748228852421540013390841982453395404821566774045310379432217083363880695214170400337155123655605816776108867505081458214209530855576896702008579776230964324199908401017569329056879424080801934510431804325512200311028907704324359482877056745032430630445640354088474035239641205389676895796687188045870765118846734699505129034447270183268249227484785614349110663263649245941427563893347690286981656314017189340536941415745054158784424680180684597546392671884157508797386226561842830033974352114151519419245663468065752807393469478782794551555354331711753466288083489870647950832064445425462068936011829026528594779940476422308746021098685824892453246086575893067446568074335542014325173411673001111373848190507797635249753070776178969140335967298898924210794553935116814809741146399670612161461993098657628073693926386583323047980174958916331057250225696489222436822269583948764343016900050163485437211510811893314301705911376763206375338971710933449488467003003381666736900432020131256141239934657417810914999130014719482206470876025068942688919243073625203000213730775255748074330211002607152088969751672581981278242684339601153494267400925594781313868322376455070542444915494786082595055061277313300455302535749231085578816373145939852325135248714452255342518873635836100466845075276423514027818154870512919090133661497594948343993387794400065761921439029311312885180052937202472414801267811168500502996834282182048066139048725609901724406581993844689526312144449398696197674548086331327200892138690724762505814040130669139780393809407904748450172737936598312124170439833868074862070643127170631222352036025870375727278266173093825713497852075603476885107125501929727907374418017865909415659207050488347389878664074880590341305528390828847305893464500181220674705194903218058716861025137988872424971422849095908462298047094563561345070572947092143139155103816739191393135614993845332597612085070102631722342288306153148234735217872044277910169570243274744683565558284218081626241610086294526739450517643634995648218284293310935344873265196830223277091192522063457577840894834058173770443758434187555200827957521766657421656801711158604725052479779835897417477436932763819982784444700940736519877598653973296193937367181450489608973779812921608418285073952635727356598014981396436400117506541710152525989268812608220577697391904459750966265355418156382998564030575588894431060939852062191078614783575556097746834308126126007912872751505714815240145859976063598936494566067577010190409203996865633040171481788772672122625446208596501040699165440519620467460128629435417086689773864878123007343288262568157221201590826891307848158509598150392304378473922202225014928601984556779958528260064965046522558522298610204003300920087817246851768287418097954937254477971510718471261153999721089884072571973778077909202266013393081040075680346451919215475744803029136930380050874680169778891801419355370455109785303556522720486030225529273734543394917693158036914813392236730480428774918926938508749767178186801202024342242864660485340395609513106198290204279490311221185330932685001260868367594538027234993746754363558396492631656444623401695281708275998617940005839506070067106281340082392788802406160688164326438186554348853579458216524579493021884070656764368459042335682030799817639810079415906142576888950499820750287828667631021255811243488375238151965220857382647048416227245563775188125481383658739314870561829452927710382877966004541111776722877587410913443255519931326374873509667774366941733776178022567705932352012953716290666565468454940824047129489497505091227135898417695477890204991539269075678940684569251467973369315301331539606939059231442893224438032334865386148480548817902130756089610329221994396097953115396874409265113174085329710193868658922801812525941929033432106954959366232784579260558228410318988299183899507676209926756412494875308533262135582595504984396689843339017864850399683555123139213300524571907800445034904110760689901889324315205752044042374696087145831168462536448331336069668061318098736580338614378871218985134535843836781453007422044577679690852982424533174395111630862812494511929873954519021686635168570999471404553416833510709629693460028568239965066838946046568282607590667038569376444455965365663272790211145060035219858568020183497001289076239415854918913887803694334078256795194593557417018745000592294521213529856917271831644159747151003451294902992661187855038017101630547005702797732689775248614244823021369732603120830066413140963460491153472133291784708859408367114304009889469518137463721723879578797284385965831308095016665995082988056788373752002943374075047594307882788985812164376356347858135268389231113736283770681198431516085165881811305422967085856422372161277015681895363032710204425711006546822473461376813637736738351667979849133743892181895091455801081471134455720614524543713345541468024466737153384815726099329798462314953348597288758009592440143943001037051416092176953923416304425376236798917968156183959523484578867515156088516569360488108056329196953482839529570703677420970912955585937112570306626273978012689137019153623979019010723035074779406770735021232283878523550357401197687435092349154934488971655434549494089770294879165303675189356006129147592553714088955542608517355488805318562656291468603704895515685253888036297835201877059843642081635379804048238714876451155076477023410986516503653962333950157756102575781806141956388872333216989853076630949658731864620871820737021882618129296611720561607315119074660339080773035081736810882298940615059733686502733971166235586111023916319848889398795646404608364596517983068972825199671095093176216410951606968968077252727778337490244504885272755088993935601471352018116298107863048159675751632658662297632094820426820143881349170579671211988850459485586869661449245868518141087997880820573971734413297643548075129531328739953874959890131533805018019575929378638164872651527643131180186688962665847681149937642985198952644845349736587131943596356457067092946715758732084154114369730163692230499610243820428688631269663025025755912225330071791902203845039275516346572918992680658241315023971149679027748667652912881480798822868005095080844958326785547790317110041070600826948515341513880132112315255396416411629787069652735721990624086071925384955328270053791018295136594102874732757749255884180189280404959044218270048558989040458161348862877089985976442484789050287727369607592315294746075260481801620409514757751193877776628149118759778460564144687383885924823689265614966898338563368847915688450004044055600863598319277944419058262521569610098877014942212223840788478336661962664156579847440031782495320591119737325687431949912537891310910375631378384915536131494121622939899424196184129005894158556175735734967967152670341433173775140844637780709459180805881790248620001990949878209062542110269578764427673050758150225958168329122360635950748877666978707850916304619422790619691386098558699667236806915701437944818793987595878809702389095675762966270518023585566114889971187205397211791192154352234594860932724535151226826124747586498362410310428257368396544560523696400795023242492489805969053664555682460368596871784889753663107261347374646039996294531826554970395131402483250218395689589888432394368278611805511115753266652821178771550671346804594885342249558510187615669019961510003903176292373953958081035101974104626659364187010478574773011411778935476000230723986337564494664281797453398020088090103701789842696181728804854289791256454638191802020078633330674167732873295911483932257268646503797157643490077600475674463284764283797680337643343584128372300408684490154212238492093006288050577652678322020164768757832370084940829377874411839776871638947526783834353365484059422545744589211270044178724656455320511471359453838886889285057195580627236120154387581669422317282071870449823953844819405847961580358816834848977382571562530117620299531466675981235522243253815373381273566279725483419841831026889237697721013376872053760496452926168491286075044793364573843489930265106463211279540692282287565511170327138527502447815196967067282700859016870144976669853244732569240146477328618821556905739885688679090628026837831559194703558745547878935606091597094292391227273227525690402656327273061343031322502320242803337285438112609473835217446431429300438044563392892942000888794602123144370809162884811898411588943144144649327956392254958803297106361532189888312440454682891173772914758563949759625313934147353043663896996979785922641668752001142879016854382639192645234200504171951916267209695059763163001126565038490211767473912864991881172465004653248181270012070054187996343077130575791705122934010693505533257786962455108273496236252284495796751183311274169680335261485143194659425618998573635468267400816988104207675758093235408421891825646106083591394103716700938469011075866711924828525476550675660451636655979838289367532422045966878653256877292209932563844501817589394010740481800556919429889215922764911681055721313800344203770297790599975485619924812186611218949844577718887632699670201389039967415045706131088194649592000998481181386347117171928414953849265340624979404136026765587598644223735580595409001216205199633757826856682002324227636069485061510300833307382978428474924544382686713369224248397238178635145313948922685279431955325495216100671330978929717151118730550017997620154947483964932046417192949598386654655966043198736368338095030809821982372341360821346913814972320870034358155249082198024366925675396961238725222816114023901735503816204804000434934335173370910781860184505350957702891545487889367147430783925149383630632744222157207829241392913501830891753673572236421796789103188282692722262938216448653071791761116007400397235337650852874005266684392124726618686680022921792911158048159499287721025569979036549089234633287461519275308777564092606099581136635206889950309951169746770344462826316203594374240008330466979547398565261050965995771591572526836570250630537618511509316506154586074461107108834828230826712605773320638819558728587077678817030585128180778721469193358167117950442601394406341481888497086470751319599581927395105673048351646470963156479030824375723117070254374148785727656105711007837311882746517997566922439277922600716110987940592257434380274940851039378375001377818505250689236176175404561267357750443863489731516582066735263127057983754113962906832726670919757624449250189662127375860285710395895147531116639029114774976726976880498399544922534770877099664567190898180070664558457605524142352010491874502251967838326035138894501300833935406800617886418611575302063645992476777232564462350230901574329210680453692071871858241417866722838588683548341467496838510190555053877941683585656290377833585504929281445928636849600437926915124736414057996920195938809064517621506462162711042564432086711352541338345854861107215716555668453227185133681071737427635154896602518959880810378273533989318949112394550800059671812600319286019403854219473022161567308848345301602003094358953186540155183605615529373466597775193090490419399079490610772698628756429830353791704559070839266109581701123783245944718170125121221906487280310674222223358509125031166282558672044285083952666715446484838973627876212241417281684048341880706847122983154400870985987451545261484332629423912837506276068825449896533459056688771575123634533931504448788609407336101728131304134185958844182009000155520685030593505587530372509454303031109857836260952230527277370984187426455138384365141911723833442848585453319101776895399683311811540343636246927962207851439163154961388282822671190797174859524234086500944447270823485348608956219197659854266435423300467389098425153303154738019033692316183215833402027680667111971453909234596557579853028210335733415392989454381397924121881545028771530083421322432121459161063432140043315063308778828399894763697696391823829283002805947166087309913314013109134889478608537602057141948527999636626324627274434219940317277436166047610206102843904238256474308816337386917685690744109423925757471328386689122764880789521551241463553003815838885452852806449516219860646552419092674564269216153872291594655538914376558409353295466282154514496863309815314804448217965880354570645527787003666117258660182161620261710174341491013424219177383882126331903233411471626401498156649906326507879902583160096449703000257219398433908297097182231041278931553350296215942991519954331536126480443095994073754215427364835455788579632005282037249278366188384397959782717078808432017055121664214170459377142010248757447793293271165449391263395870923059472778919132995249583230400307076121073772375273134377388150418918486552091333703161530701024062970141663662121880295872873913426480415977667051990824555120528759220934243739746987331401014349791290310490037735821996900889420886424033668229024962590539784154389143836511500669521220207703462690390097070376295715316693782622525707277698005840178556045528620262318973250840914834317508051948878428223353052558518949594924595002820009661814901984105891051638570532317514689909891937363972181949597520233637251661663691974567648876473643413923594034133885683133239023806620839054779360244995947792669662632623746240565188110622978075099520559154150625145829029063179179305884737870910422361718817458082986537324563404204234640983382261925923716100763309383895882877008738746989643102932274463671396160782252740576693487247883523144683103856649500960900758892749228098679426426440609170604445435774171711557760985305355420082484702723984098299940026345078242083536991591631974645472724790644022541600395695926370706531562869518463180055916335027297071271073886480559331138306233172021549774567586183248205406186364050722885314808584840867032802099979355847128500098768855564036242468059196720588461757209835339231740858088449389080337656168460696967413014910835468981962866334409970161749028723159740840289573001052968167010604223307982772234206360914401447016947087967040639856459767191500303511993847762159288721154908879365177401808039038148478213693101362854582414855130390849108918297085990199997611763059612499133597722487473288735052466021180204705228041728743639067333671053146524023666630930058000484064247176583789304457004472684168727067710429988843185948087852591844108579515456438345147892858574235954885606196207313477458071004884352409380846158556128782565122436696472533989844176132476069259685381294528931002316668625036707258193851400204504784571341735254288984636361889364562069668500844620395767331418146851334958758873126802184790603964048109318672302243907386350993049368173571533284412551050391010088931042273872170402348842394791068880871018799382013219416240143509654134696405511130844875987429312421455385135754182249709094325426745647845692682779170916154185828570447783476145147329773118610041864286059583905698651309517204704142503266117823170208366049039646387619318831565169866933777723010513115116000012367554784435969919892773809807215734792901020284708543708280909081233242695998251044055583970422146476400656511528794743692771722132148477310418664139855225258000147463962558607372751373359482653593939676034309830282491456832832140618217363913719212601038124181128324435761574141316931367015027527250214058282105835293481123976701492597950706319758889787122812163958098914180644539999478015439934495657413170773613157435845396838823222574940871230163527753441404812433660137206490385093776175408078370368453994600987657720564279962191797019644602034506404545679818549304729549460314273402303608961980827077871864647641773121591719403044115259638235686304753263768956809224900433229666718262922808855563159587344488456447872967751278993999692986879307207760881971822492901231611572130725435197695656444229080946278944725213095054362287252747807743724516078284885000048273685586815363352244535590633316978567143385298157314184271116152216039529344871558616911767668811281772378790439175904059697797907438528681111039643381068767161338922343387486294439158042112515007812057431222050841215018729739279754860017049894092195843380289957667180876012567699565851346742640601359887976855686781730100822041466720877764768499450688410001877634578496568113731046844468693395280625667331627899622395382167173486805419205785521948655873137966144078646291288770204516171187326268099658134576716040437019061041396793400776441999638722478402120923726898014901873885029356420347044297994923282145114663424906453600868883363808000067083476427975620497648874272219840985836997284934371902300844541001731668569904983202310631052444445579604496162573659785133282607232206065747051953589136220074220363948483902353914921264132967335107997658810576427741633379920527636421530011866962323355546434502131836151660505548251783658589780283823944721949789432719819628011743077739388010095586719704426541596772776592257157382613224167972767564509481362239388953949559343156301775026821882215832156411625284929800105610641004401059789160430030849827833457174854401322556449213612629626833204982333527059490517952886173096783043792666895014483623052257660796741672397071234672161506897964824489244786055706660831239909794180119272435566327307360048854344772649709158169966675961830714442160097964801935049664830939138817926875570755630824617374394897175850354158118496588601167958651580112285110954521791173640507131458998104537209929950086522129556645430228745191982896163873127176676158342823811531204133381448856731751784442357742385939734426521388861343196245818434141785777082977649361982359354542407988348432473252166908203786779931728628716563095439154318713117175036098377206556642729535197283628984674563261710228597555857636864347131341324519387186839399056123475702169838124351481748303362452036626992896123455925092596729990025854389574796193537339217400709446338359769027278173811762563781966144557963559921301057843650115556529918531365629955449492571344602660356849153610510246414760717704486567081666517962142109694926160103415406811454859941295233019770503080299612313024028696812026666815844862469248737284744519564825891160605757267341279629764581478624655695324673695091424363375658097886631016066224294651838252508893388858710767447231717664181025000353472435433896860247548507209280152234259854837881152577464441388321635942485921822012261355150835430156670647593677046970635031937032044232343804674443712145867793876958811165772872355874280274193301509377529714790907901293091210153187909512859822566866099892299817544143580575700276127528138696746006066952317749208111982678549641426685989870722865917658747668497738740616876145329577923622255574142390138756807052434232476259972828497478397885670226116362877897983163565011329197823087478113811404359417238438125623894173209388752973428047352824231976466064465838875176024486485876735105711143935205501058140923619743643257047809088222886100815020881952022612963151356731903191582108643669327277506230788269946065837154880577998493984885777014959334009458271649941912336395447466302302246128719613973739961924508337298405399855454217842858225371237951512979858119793805143708862225557222798446372988158275010154664017256881965799501365842863128787724237706893419337832255967334917694758235647140825826041320962493420208203223657471902051388398554962785415545860875779315087489301223819984529406001887171980854782675350761362685974034346710720400895503899284805707218160816920257313396835596405443905454175003055410007578663202263487667300830068156854235238903504100286564472887540895093695613876083615178670252898860955699007380772563921584401084167890225826194679553774757023206488676658930640953880741639141106926458429012945897946427567676630440697391488666241255787038757846553212552002535193919127683789910492859489114291834357026547706399494511709912554412965646569691724259531330722990597875856659469274235890427924164048540724417440821864229043402772405444480416417092109634567123062799040937961889014385044400936086719764748851829787528642932032787573473571395883687347808846848281056155822712242793597871250958389896150886889307086071879519703324234433881089831424940378011600772513865717313994192152673914188214141550027871905707010063813367476916840143110639918492803573596729682764103531803825967909657504824646893611578566024619947277542283635729431671746305842985898618375414708639744330912477127511723486219562983812658443378862915291183552580080479042247566117744872446040858798249715697015333497431129604849619693842791400336055345972507396905103992353578785745182742968174069024378545116454762826748026840095074431400028911602603634073641112799946988041869228031662771290266816292789522055110838666012157940760678638156306651969442516454898378733927313393527069659047917385168417233667090973178984320139118545135684492458693142157846056305855665865254042292627447837207101469845181107135918071716216538278681767396199196679371477366120839758928606294934048187036462100294321946498534438103929968279914760302081074324431210219784759997043540043417024729502390607242950344967706826420984454191210800161697295651225201737533714375640834017448558752187792250504640373232770368005098505319660409657361244242594551618421128676410520526270252026235470737829082985906219820989425270626738208770331870262513915701684165305939768943797450691518788893043108281325235060488153709106495699611568361673152261953483145428028569438439984054362093660565617799093343719171649377781417361163102763106056054527731391533168274941290436313764143375098766782939223647122030551151866789496284587682976520175995965576675484644514409281467373408414563101373431367374783753156514600486107768551666757882918812914545613481615110418477109744960027541362622275584812119951473267556128957040428502296572798658675316183996021892855200007537568936445713718380691757390532040477565318192004211478359101813307265845347965487698546002459589934512892369660252064337899865902900302817753175251167800181807080391157253884629176747558020032834112217434883999213105445990272313894551058918031740082979586062258336293291696996891847443597864983867492173774271968091835093930756455203052549508734734554395151973595312111607580119141292002427448414707244282734689528331148633058391331036541103246351151829486333278638033880801260229829380128059160759242492807495781356736172724363291379566523744248531700684960206753119562591806121035601503144995644853802125837912875861335400825185289943370906849597978093779575911572156148108903041454029388443415052191022537501883970950343104572903631982329465361657326605855126374456065416784805880331662860894873178988608573533548203230553351726330804978247203998886741277835066346632446359821985694029745700998780280120898661270975354671858539836857280762782505061673774937406503604508241887637099759993791038198008508194770767784061936437869424807864036305435568322463099478799237970989183363579094319006895964225195506764665423893757212547808382882740381696600255958589081578117364460407626614943064253881055202763308127616801903849036410981212087412435175331428289128790169182624974565340247459407568950318327813297896393325331127036037903509080086127192836211637645868794487648977293457829107620680434028101375166391676520381884036798725935009334856411395302504186011565675945567422722013792538175258754771338289991246092171338472504825378841673810606624332105463501791550542291037443550293961089588773629691844394846539570501607880112500090854675273775962692773124900704416393277778257160756696100213694837569654782804987351715606967331313180168688334132244198796717386264765300266738311147915849081845553629209835061987420644489265584902729064912119669019874620620299835625270795219728411032347657788705708522906871633728382976445060686119871394253221861345110443435549401334781032571920304560427499951198870705172941278246920355890411585001510326620682178626297437456344559407155029634325242681505675047568190037904275861563982511150677897512500197112795153885629253435695161394233326060234776303597854512700134235970410971452000738670988603622959601035004247861844115456600700905678776150667951110120069786209635966244147130504974084727334390058741910702853030764343350555455824568339257732721687247632306162102235311613138666332694503137626572907125136606981191842242697734422535349472836470089778000346757784747868088463181646039548360949193224189277443120488046308502914732164093892499940479386104882495025931129504396043199534371810768222775350546670374152598846650950479463927265073142601457493196311457763275106648321357967199306521776289499957630724388033470681260318599954706902575997828378709133941902781111615401210115405195729558253512214585828227644691888468745085953478578507627228496407065832535821139150397722455950054716858592079259873382646182170473858914518843339246462698359079141435025656643833987021300876282676897569691136023437590719305867139321176806043476236260615785478097101692878505444645130326737976960954824733591752146204095665893740586757771535088279158977157255041717222238526237386889739773600356594818557146600850344487407694907243823277749921094512710056675684329559753151984155603633859844569335157786105197400325569833252275551280059442025181438233394566163967792735773025054697750733648566049710687886495105622387977187059517107490085212937376154891513121385159625881950625283937117578525973691366349933322976788824037018658220821541647180966591498527104838755637489323056546977294424106630683909298475212043135590848482759692587381710382678994002434981956999888391998337112497961230661819475363018832557338948964114112676254818458673342485199127945155351444994264128794646773050280974388886318526039867945671734661020213022178168317707853920080061070952807248992619398140937272249404063353705941052992909330024839063968607271518588913058805787664684845813791425199646238099061610787850365009060645347347598458123745627254285822593396484547951425777796365208101638366997160380230728590447789101447103630461516472945151085218611397279433929075974224644532612620063808563023220391730149999634128273651572235424801541768173180537184569067620979832466782722503695207249310087925067927152965944404477642829944169071281639325987288902426178685597809505796602815191452157508901957502396443929385952102781731229785927977563450765943197363357920692968183196430860206255665916223274494807890087389030961231933455297800952428037185899768857349864484332697347074650265025664759764964374570031835104143004083182511526448489846291557044687436119660159285809828394262825848276393333453371459011438089942580519055084880657296891373302396538917250862645335908362022993083222028652094161649576414449687085421711675556428091290743912899438211978537670965218512074188073626977093054068971937377070867944287811008196817759395761173292813514321129543089852765015138217853241256390893090977155446094835568199731096718314062801680602401990746387587276093548692424966194761154906873732238122418486593259998752280153895820204293471706858708918275956889749586841366949409758355111210782442943134566025346214623682940941227984027240941341603533909071825007279267667182366419286799225370946262072137457038566062284711565375123495308445898560116237273500492485043706261555242791884530794583497096183976548209517275133812757146283911879443908352466004050125450451598898653613388108476245359874944174119737940466966777289038483352134410473461564477671435597281499232686444421389450191975818329058947373992868322397108392848392762353469866848115818908578657469817973233941812932383849503078682048017217659396415106667735595977738760054330319457703767627251700478268492987180834953723283950253192603292933067939960677949740178914072098530526368821089729799848253133306676759479020887307696430862015847856645501356745198542099121188048107440423145646590746331343639691029968827696502634867068261276222601013088672512251098763428173883185608107600706123789093749153700658116815526738976132777575604968965894362273265849987883856312624382321733211897723527115945102983420122920538216494088035264912072203245480008035868319792164357225574522261318484940883098758126962614961185405206008462644399592634907483449841004497170295043689113081951764738255439658603501550409614429856538796499314022741181938716564111654281164097713181604083266187853395084437509586463288608376039360198797276166959832188102540882525352919127025471363931788424866475707607587555875120357409088743624656905363964064848425168910671141395204290640885511417583876908533993461241226347258683577432314938990022441729891957878904297763560340202184426363770838074335344827294266832173822199557415385977924483064899356923793426662815651439619227933634488039775242778651040997821264772883781041236994100934575492985447620185234600474532111886132897629064797206350104022737495892084111800489649275114902106585770094144574523995126446903186145242724360309477843673720050795098400795605283940528330749358534658608398888799139087034576084034411087047820176960238480207885028481468098923394856230204180722596192487733612711468394111776641813810800131676527189676496789262837697577868365592078623897524914936112196464619850507384924909234191006816117476181187580411008383218933590888027202750651134740121307456099149210913174462740345555980583049034294857291711823899374703142188917132250761076568952292165565629893633346148206773008930060825909134510600916502851645105627122536035400956257339450911453303100363600373798331747066911557178689809228567822379906474435745747986585939672694317469626085274588720058670099151662294371614084150937605665352476042681459719858043303117852496071697492875223368659788781575874379115081471065092578069451888421217874665179509223148599715825722665077194208795536285767042368247329571747157867159935862382187112691211265202581519996935856997353408188452839269930395553608438414909396884767064622090363357843304583886890483696037211157084592001839820263735096074464641808648676058266986851866186568300831496656617135957948704488349397776917445200161546159258141849167776903033635007229745792398166933656556471330686101288394933659330470146387954111643588885535256175402140954338050225759622835152294171318201585150836359571224399526724516331028998357656631071255449800820106756046624578118273888538946293716720861785472824839339854646253783140115385692323463740077171467185433468125277109118614302449035847300639652872756229867756107237537289042503256017188079450842093330319676652716425620667950854411028449285637601475094275922826256901898713099207499087272112239744446667574252276665809310565974746113513299830305449328716327421098791271633116756721450940295866616865573587493703292557563540196440317862056583079684020582921950174743369970946826232207137618089387156911092880722961137078472938414837916070908197768884665393832860580469601109952142080962583146533372063041662665015068004974311899394464514237447696588667075679852678758023828047992081569000520942414168486366400992377663380817252791018830248749252610383586878717984506729739880330211261598476101223709709942806514362384180241168218796151867389600047747796240814932784501587450815917608305073979293930837844603675763493314468244005363230785459000697112653019215076692545121842983180186064962161377767335103211422465793229145374381089944063495967987612135000915233788090482396392969523658862961921175861456321380361179359462946712212596894379402805063679090142494798676853978384401707710996318634587900176045246194776985642511924798492615059151683420397328389946996299591673783909509955247696390265313227285884747524076259084283132909240832056231547945747035237595906496520416874206559066238116830602513421442321601795524192164010397899733501578511532209395639776095060073362801895257764034232439654240035915994625290644053530800122893813752255892329807299339910896880050908401953656653811029943325522686779873134827327579111575034182481610910154810898921550408988520540634511062201125746178734883992676602538170423093720529152487079387976630337821720902382606743260669987110490313136060958135037502791292268404128129677850442067365137034871684284501070919946658480707509043786072412322326657565072477801342254763053580178156537823908673763641899741999035206884781379706132584422732962170690071870975561318366910570217342657702409486193068164241898534140662098073946387971549045433004131900406257382872791680948814175016279731184528935132050556653266913659344256207747435357173554752398322660066428690908589319174283383891740909593608669716558771190643836574693587034874798779319751676399724340122433098897683088011568384275781911098879430700945389329318636835743077852375850835750444136269829715688921431943274512817606351039182269170386463975044497737235368536989894573718833842530478214828088104138082295270893143918354938226085848915509868486311045936311763140867693812055468897080174887606397754657043092824721434983097880454715278896529411521967151507077777838962827444281760239437435094770056910656232070049964726560533011834724382059895060965429113963752932098353681152020687241241137309345115986391333001095922989706753493986921917675205345090036554405098038499594687094537814322230752259238379198753734263448764234725582679448647021498239658653950127087612388589758996670576264384648996835201909921041146459942974292147175318197887204942765455915783091660883426187944324965178212297412442256956940861262834070238760652899751069980302230342981470195695619356663692193434997080117186412473350421030917280357199211632117917737285925536165185303945441703771942636576167680800557798517995690478390190183572593320072535729641622326915178936087456825169025982949617868251104661556057330783103083766518391633473796651874998304792660652569420389737867585977368367127164373214653610141421236355187163453218679675645397057367292683617542871911075422465602250118759482510342667784845793703571495058439720212625180083219378578325594719911581944543157188050630002436375085065226865894484918833844822851063423692634430599364558806961148358713011815664392403618817227308617826168781944718527005241514859490260620157942997624981636262667508971460415980413022495642891202888622901686929047852221584528359302802198843704163382391740701406266987300373737954240889621926766597060499989457084567589285121784254184226709854564553948424281386318283250451545484001502792395295394263191568613801718825818927444230994788710512557430971880683819285473805036919211550493660589748531788688038408911537917796998207750945188263797833807229903829857903142009659609004758141563221040397952113387256906827429315896859252964507203518018003974224910348726915188456381511281795007942881214608110335769560799403081804890238902708973011776206242983894034990646683013907199861085690213279817461392037813003595368167181401504630490068289257000070221287511908951214897454138095674631468946403582902059828201941170519071236772614316901639374595421744576990163517233625875336778361585475486308192592662395773726100770171616444222134643674240440163243541165217384997765176367942090389599808098234412304312478108685052511842670505508407596452096298999569379323480060093733937172717062806220378915684236414574539493873001599713037178282133998027139951979566055441804866318237835470296532429075953642346077616972174302622274582878370472568317711513701531612404310777820351914667386804087772135535711758318456010231053818223032152441891677598178790981745917353162996372395648286951793629240945362512807866692048060834362158365519306666753039517706074879001880027122013912095277905607565864110515056985900455797637341128587201711194698535334923239097455891704474567532937515512234818824367288595640209306528065058494672885026930720630796028620631119316896586067810632038270146327506088433619892949975593496409554737122791441750137581677108331034099889995189087259241823132392748373369295207582265722059148075088023985696459850120802304733816257239019178900931381637357578586260980909538389820080682540796218963831478603466828295374518003657016715904136436754805762651872555482606759211328151040107472349298207606110413230845438293879674982694790301038240584072226336974609022183220642144357814800590500805987883985276345732434986102093020586260304525464163711700576172815116969601182564087631113129684888044700214167271236796590410103922507007017772177744838752277216683396435159614894768354564573861849441165834339548098569927530630303889893723257905190845340495658201187450572945620041782530314110718160414538307229710445985508250141544647772207016117626870140188918436172159058605135546521033738935158102345842140498208582119356312347133248120007015072281312127568607067269646248561960327025594887091794648010738701129643031286459612077652764703985005823420998148101252748525390223618520627540683846625154271988161602364553660772615388024346959959498616038324971678196950320763892570761152925108950811250919940454398032631281712331374770950834702494820773051098148972316232808449939260576920356429761232908128114082347567872197745446114178092258732137462470305011609797532822158411466111147482146124440335700133303244513198901636804596690915818807021560929309079781314272434531006974759503781689041935454365421369982939579641288614989857613505963557140708458565626288848267428683808539177372646373250524163174813504449262532472094236423708802339405342191272018953753494727953512706110943306855753055457188138533398178217327224419922611191430732518481997661601602685200483318200937332286314414299422305884837288869154798713686435239190150072640428170140489509608039680636524737666128110956743595433982504133530088963804001653151069601978690982305159563363750717038339119894151765741485456672649456517110660932838641177721551422623882830995051456751800817996446428651341891590301719186257145884645469425284504834080248578244531110706842258346583466799676292102332331787296078165251846897086817641471146697828680036549029341515244514209029192610086061504461770294447545985852982277041854213123506348982054434190898725857687546657964879183329858530721512171912941308091090727405263690689064866643933058919946792202060953332077179361937604373957569898519674029569739129020064822027120545273552389114681606046597833882001209110408390073623303271002568255725845666254087286808870851288738150030747567806960159214458876860653399381339823420424621945337128376505799094358069398282972964096884958633449116529026698644449075964864639301565418778099813721576874732158645925022044443871223124712806801502755301728996640970885015599608448636347099200398110255294313145147937590491460706901458914824546660575239378411034472557098505376563834319877625023145915456301924719939990421617578985584831480818515906371433828579188018717918289626091130488422502991093317989116317439278409499180742013796650609373542737566706257234145398183148477843429106291807235836666979923417739868867445174962474416408515865873670400268198366391263120798058533213024698699691937676055007194555736750096995954573533486254991237982821898568492999998683450968565877039579465487911999002946739144420057972045643470606457860095512839938608893006211697131819431327388911762659979406508872920888788436045543709399048625937191672761335407316623199680032769877790866697368015787627787729875568308622740441616881991629614132233438883308890718415365797651055241461744603372493045962773497063442217584114557529667486381984456933126115292075267768949126476781541793963885635229797679061128519298716433289830503635583614320786454579499245924780130519968630344094143324612100743601193998311814440190007680437286190779195188262865676437833556638973307799815436063594537073271045309085997994028511273879009663171302287980986377398638364163340420585972287483201163287879867071094731786194477544003620411858427414798294220708743746159257766123814104217622768630949659762021269549010143731507671440477332271117607261298332466388410823111692030191418953877731798985027861376079389191003578410796167089355507344641321519667525602547256087235334466317427093511853910120077858610734528376940493544454280616154649678838403599115121419947981813007273364585858856364166387319241781396272559229624669765994924800509515170788092081166984545184721410314280897850714354313164805306899659152032942171640343277787778036070447369718111704351484586510411133142272928280808495141697284013389564677575272354867859947874558268096592056213891121433935724496636400164998630002411838531218404373624437363821511051641912909401951956546711819442612534400124168387821508759761577897205776114426734482029905298060601579838235411549212978591138159946351633813128953089618218509586354793418258728127156759437490557363722754415449885547978790387625970802631909169028140061756207933355578628119335459536508219051529712257090402960370307835667110269139449234826480350520029989258027389078612480710716872023668349190888610484337205064190748465900531177082483327206473700880818244530779625108244770799854184480270473913466443274533348962087337200615818308180041783409796150343193178604901334869788704608240913746759522165734892021187811103779514535755675709019509635395346202801139907645437918224378026580358966731749770246659327419499689872148120638860545365790494590182534744288428807996912755332949267034239206330584181747023695667761860985858719864817621458272047345073178212650705796576158147327421764834180761261044558729951624128241620867427206186475437492841137628894748891082672263242576823866783776287098320181819085029881897486148959395177802277692126348743252702521156836979897717698319411833537150920742744285171510421714453244926246372732140611069999180781016883932874865754190267866888905549291560816321134488737484785367145044438392063857139464587971379180328611903623727411060642350569311908763195898555236115177825441404128107365810318746855171999010292226745568613091625125313914968008806320566601317338685939862506724584754091847351839969238853664484435515755990944629107753837846160383776304653578528572067126259893623339357672051661204602035407607747432510350590263976741561455565837604346176026779651003176040793506852218806411349439364724743635236277506846387766463875940118002577907715244072810907068879409728309006959021655449722939298998335887934508567467518436509101106390002058264150532377625619237993130438846389935741778691769613628599611089072965642132922321911707072577512045117000290337319379507987156968098830551888971608578700590991733802000836137108748486460494744304040051395330817923199989549420095569806278825810932480741279441469498690614785156703034615339485309653582068391382580141723724397713742884732707067167308467323723957285089694537373243332995298429157354278583437774313676727060339981427370710248970141542645046136795484252976425956330840800772143054059900779526449198680378942783568731619786072111024962253524196511468490140278096838563075923554525220439136193639338056585620171704641289224376286637848149946770035984262893865244968244321683182698276709034883624524623828942279815059106553921249380575700086032811971656707408691529380632517267204004275638320406482079620998620826192949758089718926521385157527054208344143321780142936535342336949033266864635773366900279915872856225623653341060441259928632128454651155987573954914238413161531422742509914653809950300785994992467478654044641980281643679993522600980784470033604673079915377305459807163981863155542041126226023924992691832338365849826318641943528625863497902921008620809177842557423308672018231011479668380652325281995913223381744567355583938598887314830666395687595896449072519566890965731460380579653652482000434970082687517375052319922346258552648482948642428699979106331002546253002417118145104369410248518817545735327268733320775401222649343928852939102528056724387637615477710378145372202071967981062304861344407967229766132085104698448070812725083298573093343153578484648537029889388549975787795133874642036650052552003679886568048639080141421555157443955386995345285506638632933108094673449626743438443114121403512178894151552637737423063076346412140969637874998077985368638667061815033810746125305895735003323555709822571256711383207827145750391964947242844550352648096520381120756426854563993669137037157982855183889541274001524727675317449384740106994995737888818999780821654959557606740967947740682215162563709362899151348002299903112048841051716836385302622272009924794719255606961664505452466995671272831240691166335303293994632256650282483348485428452237428457489128455219122962224212879080932477353882188599618973076059890963871572712333407739503397513177606979396489872108339898351062570678187329446074220935191573096315700568052161249473918045515015470774543674881464735984212210847550761572567326277700318849427194302888169759260230232841800262420656450116601494925119513336711696629541274231979405544049976152349051388431290173700349504317402420156221592918443055791051006021851820119895900309977110844546485153683984830485047083369253609509511489063586143174971417536862018418147573436206968206855488426882793564764669917999229797144079565656228372176597676074566834200434796972255848313412942484140101744226489294231753375247543215179109981239024175189680939578888851655231531968015867775910777912742884399634560921229810240550648832064805298792646863974922886211569691646260313614671835302470682110456681587932234263070882709949834476664698033528318716631674370360390183206775653667578891857564327343972720175523342382937858383092495275883042854058364608203346980294083046953295465633107491204406845361505846531331722300976798038323331727493976256500457225958369557396171167484429748359478065667689525972269454961158409902769561323968805614781556820864500182927118998429440844375463908476408332688084140233602231205985234893059731103105422954123456607230777933931575291040138408141304588529783966712893294996938791947217557233655959778631939538630685597145197960627171865247644421118672790409580073677695490133800742220487948163007459054108776772752372905410562962232109098573121603668929392100017878565576284246782868431299015922387783129675338885534218566659365298329352345904593842686235770782722086441325932270853370615598351837351292049552520014497162384773396399163302893690601105997803478898693716672746011385692438041536142635139890871585420289763982291724144178872902164586903557906704198435118017286113806276415523010157116196509802236138121227362362447582577038332493614664689443124067987221502582946323918565757662486655022580823665708085759033919081412071449464861386159485648796625890346590714118352971461950969561235841567111707771262316609436704509323055343760481791835468400803536715360716198345384514985627981797868530142409398054861770736726089650668092823981521895012530850982647895141592639651473026288046102938948278017807173566583568614165651907530732972871237393129802533788159230696751958227956531486786874401518860640177423817815531299947026438056614872273368971978443834213974947495880881053014383357314178244290696804470928998540382505347343611214348388313928420980265609033974513038873110191032376664838994161057816428337658180110350369215034630556231784640284899944102949644709045493382812407179087900497780568854366461917026923676599029790682181961445990132676045112431672996625016151106390256666362185121128103622927874322559594235361531134644494754985215531075687601499095951971827113763929112973046920845435720569038288667879591611395804163030544232460048161101972336673314670906390044603625343398893197118814099064252994216757351573098140821048609166753229243828300438299950863673204411818475016537782921638944551488607268439183837940246000037361430336566538914533105482443357536835354373287231011549385804824674870790865684430219538288099415262364360378591680193963398782315081990760558022502391678206656975114303938191065828328549571098721807181716017979217986777274812691539175905594496938082390717647765422377823279533328052129249279430664253786496507286061828857882023103691281327129490445490689645329535310937984545530388762430067401669596527360810665611851494048923441546000497291979965698924881496452965614738770036714972597493661187005377877084231046642895300018797801804946517113235930355141165754940522670040247339479334309441214749145018230326488779386602335649112439692209254024842689198702735674834788088423855074306911329597015690693299473209245801639615863966701079171885231001393970002609612084616937709231781260286027516304660360011870867414310713485595467267139195594896792221417123596134755268273168297654290407683846591312511110651424214845491967758878572448799939103128124059090709359569839849374558018582024431136213027502785025821950335874042179245246189345553843060237020568800731927165085080890820209853465697424855731121801510498326157790139680638690081082016717865995445984584613581511064970323839259365542209349623183041300643700119655099538537831565752542306020641796254609847704180294582639802499433473631671406440130973502343998618654131351599455412178157432294124520583676621154673219297837712721857255573051923624447052291467140913379157844290701472181127589756676038649823588155525775047507420262590249458585625040696405835085561092732222716286211676283384704150043588183638998218336572594308100760684224764078841801432882195253104528629657379057759240195491223234028040318893081377268098926040782394274680629720000149277838797557465232844416665929110471469379805753397707578866197763073367743390608662836582820140943847384846862449820066433030902676068892231700298773397405755401997949947439202736729355180626074795437923397557588349281927404885583132832145461287943606794158453363128624818839326113449142914258999964318709475936994334555181124361759383377031215559770269476996581604311490897250968597772596168642413358136799031525705767897060482822482010816549468146783673411789478476683550920238233163398815292230436260859123003549835376192649933160552809926978456856115022733235749676658999426808020441117759069449076047364524688824517734861130298050065829887124709439992955301799395265641685176912602759029872347383321980242881221559723735682963386452566145608822608510483176564110631878614390580148165499352774043926041262756133339279516694946166425199008238806692719255680754090241752501637770891758318656908460624226052400681543809122139357570249715338934605059624154509009346417309779473110277794910014577362873575884259331661029325966663112245386460296389252877274581753353826623501627301097703816697997368200327763612883379651341197713139912777788610119146077056415091752367368156708902582451394635031794088152240262795738760925951815244820597153121791899305144777660752499551330379294851016771727848565195119549293248749499474153294885373697849705446840968176542854740991490158953144032330572435531845880202109906010640926001267284310937756463623530593147047126391222502231384806492416407075647138080423910406525146433452915573606344911511704000806133718571252587891804065416704469086829948695262061829854145448742915204121264789979627297751130270026711273711402206768791177448466161172426980818520332066617401722665782207962745760864394031202373615646586017223974750556292642954256479619925619666538172208884642360605085738386280750689698434543347649257102416609871794078798424016451132902454089168463406993182293987077144432320072872409866622596892845046451520732069962960755337754692922917743919053728181014917008253882926123637079884564602561169795980442859501824405796910739760091754105567583378906893363140253835744251939470626091042385321528596634810929285300154614919646396809547176544196636850309867641139534889435104593344791002209338804098679488015519735190570665591001859611110382685180355316615744017775207767917487951520926959374627775242350382940400392693947916431221177050551687473760247664016000598634308788665336628056703668834265596749231792505099449939095391465949899540235652364054427209502250304904166673031153151765515723558164011360528690429393351925845300382493473143759536515573969090933326138606051028261732377308985502355840100058542766885235817122281837402806025710161062228103643749899776974158046913595063386607400298568700712785015484806107525404389385570156669323185486201006918152759521246357492660919047769316013023291122407490212293532254341718418167705087308950839932745858150016183354243650488120326133648977719904797906044272034114189297411444923758501494758240676836784377018185743846075905840940996111307100913008736921456565223195603113097759529648564080291600558977504867904395090512119197618311141131921806143530640520359808212465639695799318441520178404944001504446338659035361276304182060873695081435894917444664133557032896383514998954928165698277439312613613799425334512064250151751265903770718192974373190289100392820231380686624843172811608030875653487033266585775490069044686177850157929285902802999377792505470805455537458031187577338509579217856375545842836088860507319222981347922572338332907247070260436772053894335960713006658782057303875012429066041816302226724773179889508171151515163169249405391662991979054421531271113640540887456373833373644752010745957829246313914010223112010953984815061493345366272081701421095361033121245710547438735871034472458651296550350754316824986452373238013121104942383918244497575636996049310345279243474629245258291794605379867091386205383320547916221045536009933445087762001399852498391000617565059768914552725257022758345302001700996658910870033186602218581945186727774427301146732768337235002697665367025613459656433279501566341459879784036629058631199789518953854523559672065845624536693088857932854730501523916006177920627433003148210461145942206729872899715657881901175039540747223583359672931339227727717011286918713140062696142852159124294443675653214524923247842022418618329261514385845284387580630498593597736878545016265776441772507745352207920764706871555581296481508932153383689235805196803393192686410792636315833877919441469104585215505233604096738414247019181634425133290203698982256648824677603655352836281718151208348038961111934891294222371857180666935840769634807994390044665730862799990213549900018958026340005561003444887011991060333832497642089311969555303340908332987057420097399734010566691174190193955748725652974984343678520949907570850087566360062954944585565048091559956114688111732278321908730116552880461830665805152119722054408079010858316677620064573951427061977602781256361051956676909877560465587955439039542628814070215912507952277545764580713067685057087611969226422949055818787834391476434861284039282844637530480374290989333888513630570002436398238958280425696254201936833695594920765216425411104465937345575869655237542621189816940264913816119218090331221050386643984029708733403646038687801072761712063132472971604189517795773598493565932982017002942427147893934834140701199836803475260220885617973267695864649954375364283918382116484666807136009754304824112385117380690789104057747359404508588031080611214019860605266682125104926468239366792733900258865344353143377136309633660069880078941969365732772942963340145169398443661601039402331409523156851076353780799608312637258576909739809827702119089506825103344625887663367260694043670088612641766947959045766706128764823398103370223252241738190718295132192277746482089563659458580241244905655602479456492656751742802414056432619732756558190664017974687720147875555503614485254222934074944743096766335315152072569859214149165239199036731411173713975598631499033386197751611940870902624636551829431594185344380109885467854900580413964317194565019976405752349390436190131791875267661123627121377261169736704729265738019883024873980018299436437469894269101055673211339042597311607967599056617744093747803814916902227171935721639689072188343711080069961980928224378954950409031030451063209782283100231623934748715824823340518271431330799510167017889706780767061912233974625781215218454708006495155393931617005213929464130011319577084812392986598619368619287369524425200748560662571495456580907451235890861184271176158317212417334538550014425946294481532003482438040784361925022991132118123706775509601658835248476541636196179309605858433701598338648898363058025700575309686197186346151123348714559049650744703793967499480557949165706251228946722791873198538869710886101699182379235991758256009369497334458910556603737721448678042478425208389356782078452171141090002541272697069429825034024872778616561293491066071155985113711347519992836159255373254808848281058644298471789423332835106648460168823356329573507442536366840736697387231223365416409659860859868456411087913917701896474621380189339488529675401832251582711696758341702343631707435721345605144137569068205051347157334149580841429481558057139342537170116865821249591160524356070444540564625314390807027646974906063449586062360680717681586004696969950826609400906000012024060122832596903240866125910747679681538409652117329271540345337630389510831370011482627327622981153968344283953614697537750700676886423556717483641158718315035724887369028179837502010491200112209535546765002111905497850356447417339499166611940306272773989633465541622868688265404392230661266431175143073493517090681062932051407818458488822874093486156811449811947136275379492194146005069233848612857517618194983372600322167576899216057523798174838513467110269816555695053608135887711330457930771600457902299442139539237942094214028175382161537519940270500443799891561634384311193478952488318212594201502788553333705940813316235818819320250148007506656962254614723322895260247027657488423592615898536813520581412828430213444369318819013552879938058665980719135901321872095266103798544231246872515860942101938021294215873595449358199997024859823872564610624829580346403097673526852342023667410697062376028780085278409336200340793459197481900840445865958427261348613238811053412073930232323744583897816638739647370444569822982825181574878850761540696756873663825080631468105729038154966145019952442961697009035446886260612773189611764013857979578281820917912124834295992506850811777653117529002644171849473533290031037747026603112747842820477568451390596926228101686990449766943685767810904946540722198644720000981085965346080282337891050243383522471535643756364443047199923646672136077649516283115947869628847970228718946725129050712745509997613335334329078690114415025197236541491662140081224328846817242737816323355839879311976904847246293269223685206829637265541193463253505649692236068425982965570358834541174492026794051221447653520901574470681058500163189143838484094299371136496134799593690926041005977860954386432203165277583924084480248562679988224989611050498548536575000482339397459709226866395735315002518231739349448275168783774118416098795894813448111664384472375981407837633263326751859926095074517954647054875310511456070471569391772477484272916698294396653569546057542815057300490330370448515597890491662836997600226916137728383492761375607194842620057978052329375807153004668285244910909087032378313445916092265494319692182921708782767388296028805557800377384610849601555515050148233957711883423538536504238334665664842857900037101089947810873093665242634677380330933502172408278073324915205566976974799079661096638264056839430575852227951553994784314370279090322402034290106252619964630247959567144602704938815832032952121354574562667870085485538499693145685823754237190195164137711558711762486118168164288745101372435996564339862271347810366592304270903454818140412526167910269853235029450094229810350727781125024817622877762124265781517219758148509969275243213817750816572686282426948166384441381895866309613078889395760623945694492293291834208221872433831684548867607143650467492484425514344181459483343102814857599875039630474902425892425670258789251415742880068582047962063654829628467916662704881888934674468185614050093979558155317939374212533763125330397956081459058469040694278293130939292550150912335302473898729758953777733695608432174122208489003897062963766158376184919535284574131956106540920120577038076526426872423599942176183619828351707866991634203868959283460688986450626692530231993997178012601438099254444432554198150730803320111823379071786595086726860010676439923094475781773846598591655975936198285351053837153373765380660463343056803777127832486324990597170618621691490870943254345529476679703832585282607494276487094419457291686466016828052547781417309368978875949888182996458270844200364243732118401852945732734477066059505916085396471714054749531340030682611424468675902557692272330148602696716681644716129980975301407918257238967802913724966678934309722067129053185096597778098383165858606691156559872814518308976536543448321654857167655921882975563672101414508351824252430096764006515873940671873682821265707597243200214822099598679276804008120525723734893527203317967529007538428608234035115194629759404871832100701166460585087013871098832564832928565635740994535087073937646121902386833292204069998633203049906283142447774705287680431853758502826879689387680006794322186870915796317527671940408987009088035617820931813022013315120149413508061980488128049449146810707457035846278493548463301338601543549194764673156371567544820795642119155134063561339873831370093037407636181846819830439898385198532130736926936837899907947104576311518509989656197021606138666015481496052693814265175064498131479635859230181320500352811795790102274444889610316497676525181241227703425420108858876551988108330374851401491833177034355961062739037577231249022180240862764375004655168592781751592916732647502794159274877472934115760263572159887675946064645213581907473433513055405077786804058717654138145575113960671908447632457208137474822387831790447290582155958667595905380616645027486697589632068413736160813957524380707207151082022534746364222027374543747549111722764962621928330806138286992146894272869573051286437624362066622256548023994802496494678746189502218103968827203308971550930904637283834407092301357812293792026603809068719937731181490515207640715523770417374841853029560722072696575554498360292852971738301592931223724620279084168990309504433214496790472093357300312195361547728178829075910625162788862709078650498368377349071652003318766997870517953834015379818234160333980266478410272392142516483388406890450089027628306488741448321872032448709938220637097096067826528153252132563694550914430113572156196834546196070021283349492884659840315445619810810173203409171059150611588820264394561840309637265960620671580685716105881513726359476394784183676062657258238004273458734749261611416130853379387232969487528088730697915043215707574921428777470651614339808723996948610013575644416297525601094589139816951226323880437648447858204163647167057491261582511529978486199371477935325410159925216592997956748314225131579720666668139350853716725324977671916021810359704887247709216104769411116121382621750150033343507688299352156198347503949257067593285075936709393919734009607595138204245581469304074370773028915099093882192859381220453106988686379134011199587167872773258015572249873988205834253948055989471305211338466901968079567666527212826925007611018660868729880768503800551308137386395878420973764945422193859412278902106005884180780013016579696550558208605666557704159067849385204270478794031736880370023738191217734944987513735714371492152980547654734432801110432892521876713089568608341606549856051485765828514082256494629124060175297160880790712590297915877581224945317066725057070651028852240370724773793268439625434110172568019752980370748693756543933575962888952866137527481229437279138821317355232512208846536381811392385507391562052909698061633941660543013213638621703371336465013770505268131117677268845819921141398112043528324366294271027964669250675623509843978400187774790424303790567546541335702920532465624688451150490534125917291645067771088228854828994448279953403143129646260144522728826565271890543607656627006980625975974843472490900157428351491773985238083434906685112055619094251113967290060992014747973886842730956985273400022090279189490726500958777290455570970200035352400599508937160800007765159846089859934824555480499697294724080640916015182918499699465163149906667878308797568777368585845996721617517963184542636126030187181761137151346837713295014559188377384270054159739255672091775749702902732846243691213457420251706751374006084531667836692185571578366890643420891667527209272826208575523268196341038189595406394593354889643892847965052639955193897212725799124073255131208980931713242982716592507563324962278234800830091398361286317608941794254569885087340240799703078699248235321036716641174709272983734568215015768744378828211496398490110382890340306580414180398077880486295274088771010425693086226323008154380618312340031098692718239109439364450119593601805763251042010606423412908321562335939841921219361248824773065825120109381549268164385649254316072001562588944440063813492075866175495885292625962007180787453231927329000417927037789752118865603851005060201596763301046280848356949144720005281008418336380923627581358058579185090204055565602317298636192205308253694906142184465179350598949015921629444200331370277644994310531446151061697110538374219977627242788774750591485628511690282772169499056395207964550602274294006511364191583437756414306169876357090277063889328704467605608014638476968896584564892615334854112308542646053011480160105940838440210029961635473774333290309039456020095291081009495924642108082511462603712555432415669945595036250855012768551640361218761188698714495948140252265025192488739622978683386862368396889887567375019455392568911530802789016629915888279726295091132861999597033355404543321834292083210943602365257289737211504809242852104508746650739857217733153268453156538391996398092816055261340057029828314085780100198683108106452937648997254231504922641313567260330924180155963707520559040899746316040140196476185863302991252081961159431869497878667364453542256994545448845954721218541678184125711890606835033539497762703724614479485448236078694174516340257988182516605777908532084383003651176065576515355174832358208305060395434525902477373097027280424001655357183535847488979756471552630511334151075493858621290708923947399215115798688600932109793550832941771657874023648609230310674260515991027087854992486955755475226282278893108407102895088276003489656739071890311299045600622759464554791508733183637735806505582392994406307002590739632727004430277059985918463323708799339882893514684090069419529507130296935687011132396255740386440179872412828168107356099891882328414726878840776877614690251277397018011036824182160026502803985680134267370221021734424731502012148501992816792808505822436309496757599542488927880412849856056757558313022181665607577722444865003866166826108747174509906994464516837400975139626392926813258045265003473887254548782915130970563393813386480905350271138186036394286531188432098367005122825616570470978838768379496070544623025273183710393567979036871239461350615250470960403874117937980827003458809866465844639422201590190513183959281887107396701374270245864164756056741798397950633127168142026887448568851156674169051863190445854552280015783937484252291413545105396528439660071261872116065308412076631816264487739193024990400025232446710778355197241566717791019743727392614643788483119162565002893400995513906415408277935821538976725517589362744690712657685710896064829618690565967808644702313650236392957470594162243575339557563575292836765720274448452716357724107413990391522148763770735802711971497292695371442117312553401541473078618918463975209300932856259695677737387343673471716643371559396127200505988979241035768484985162011115852312664066911172816796215045695936103321356630405296120161094662605080968113919760703854241969771677875383089620184753334652784792160823126487698328888441660028523225675606796302967037504796999859279755183738613292041420086831552456702648205002872574686882733588371455101144397802151137971260301709236801057595497021562765679013613662338819058823471481377819223068864885879655530422747637814323086981853630518474992676459034237578949536185787985794365192507785323368151705536673462727988703512890857033870355391208462340527186452612213292060358294441523828990646281217394927608465641599708292477096412478866387654639717696041983163598128419142578452730377971279607069327577601970534800049860757173825606342335865106617335342448234458104800218313780854375601232673290951496735186616818970502326099892743398543514192305365519187149667050048148555888300683134579043289402133553726674496530662344651542530439084343798215178901404132984307493021978757440278035585085227945279972825827601654792264082210308477146921575716036859405641688857769653494163586083716845435921298514944925250977575163689036187099756800352790963786023074294488103338948385862774963715944548922195008695643725352218852341493290260051821622770468783650307130912364364855932205918492678595574886686382280271442992350249370396475015084525654491577051245769288879737718783896102160290803998550340946772644493212105050101276850533730398883465496980012990082854088174773822094875587576894349647280558456602515549762208035840376693629880933591324992273514689494882221642449333215701753812253328633333523480140826582014324017086304478565797178043750199248160946907132670020531735209282150428777815713881845655698424761803088202951463136403697099317096599703719662974556735940887494788098486277595995160619734897393988320000331017628038308091426695936176830683053849202727369342864744343445759461676990779365066678319203209364579835371479942074175127538194707169005509949024983572270187219494981074869549491928368885049415370525275484269469430335384351378667987826592591627592868502312912567225345212537158911916626121719479043715074183981662844039719124924725478608831647175564968809223683978225573197495524593732096068834997619580453837088752742859378490349225012324958672008876773212293183489086137484999083663743370259659625184804253189562150817397405208156680800823991384322184830674442650439934729897569045552283824945104441571631099993848171105074650615481308813066365683904424859340994438869944633986643784585319431565204545245970236632763984868444525145668557855638677097625829946341498152812703933320446728919161187510512511658727210451523878852291861110180160752322990865420478022290911910692354815718552111059611398323698499059815368528572602776894595838167958440224657040438465970468107245405981008555260318214094696386104378035163788460189487686826360447159475146645770515557148062845306964125190410758349111613987894777748292691474696263003289146657598610494642006513347181907371964954951603123990185481541009089152568473310358749575447646745561454405021406423394276898799766118469707251088379824503098304655090847594967930476182155181861347113874729729178683295140998135827775875923362846935858036817569915073184367022005845553569499585702690894211341963572300756664830443681840943117659207864060425432102157732303296997972816868186940651132518006357332739250964151766948538314789209971322859820144268617417899579584856347514345127155957322039381110751902532239244379988720331365463814969116951457252009775786969652772582327334128288022594079288303922353664945697951187309877762554594811618202808236272820133243789118646183572533129782424069969093103874675023603273109532538378524428730048513473518368545670581685613511855786007746338926693927949757339910753185316739814119304539546701524349750816571349596988328733067345735303223072451220352459888997779759205780787211241162830620763499297126937747356683651963603347152579160427837404921913590940505529669157605547415565727345532223504293269047633403649414718519772359426454585915217509547070544153424072778998647568868381089723837411821393212840610668136102293203578125772442477311039492023131646677871930986909134835655471820183627625696957499101598912919895403035382390578992231829534696999438078704922541628763536778951122065708931978728313536186320421772610905751646934036592545765986081398883345248212739711864172994928254645191591648505252663684168312437681892790717184252151664971651163661633552165898210946891084064990768582727328412759395714953172708822190435552979545205837585362201741455166095512821100904502646224169103074998089200118104562650231165954894323200575118373937320615435620813102943941851529273658576518904352278201631415354729740235218077821229116827247807391901075964632070430614610461444244928967958118111504413593572112682938913235155428548193421858223907874785900727934142342720744981512785564242841218342174665369021183937993340826405934805729107189997253303719409109135532765593675985840226034639254734112974767819519282084709611096381143335483512384154423646880318674618310600215239963890755494179498582569445777253090375414262364067595680526151122033416761276497133820424065664971531609853909230495639297188105680909149137305219759909123574376953943509450636354177165497109342527856131243874433631128143104409157534315560803238385130594363898070597035469613692324409549515665993859406880489114035329288076656260791048018103454985647123339891106365041592198081515647244889220770444286180939770723434026316013998804191578014536904969722097478976765772973251394763348037055881495540781175580705152757028053809402802334217158967627469827899268014221017736262943898183971394912294298605871565862037220163314211978513121033844576364445740084355345826008355231244037986350996413672437676355563271346663200081249047118825067206885688489177374393470844914582153010081793496175369608821066334026010993525381436309018235868017229650013584561830238975242352864707477182824724683824754334306038694966802762401430952389991470267813897124303982427887211275567803750184981106833089864300457039119395411215537682373794056240026162668154520945014116379202742738177603829193768935822772546314631193902027269819568803757227903052087657453325459868775336507965678843124358075203801914924582464339219417620005132500717147537261479438506958528212462434693352150379707919158301904676583129766958507830125023301995806681641505481504837107980317931056827001154957578218805356593184902019906626655651145551406421318952864990800958810549297570250091134709169770295270039106258318940367105914552627600782988949804944142043848787121830701852749400569687446209114402658719937428354694705180615851450408247283784130581483037011959072379369971411872465855833817476670414735658700451605903749195500417910636935254292531132944030019467454905594336376642036386809354633081299456074445946468621552692904367727721334144157988226122076405143718034071874915108162709402895493292066273150380052997142037547593189949928685092741338918368161327587582905533336087848592746602011514768620405706223403195042773933625065125176766179866009797037311913628026566364146560367958372868806529547381564532291439434831519864011191207992111591977595879681115072540225059966371174946295968146466733960397935227673757289932363011239119926929874000036843665930002835043562016707498191046895182975537965892110736343050317636255974829833501679379312944831186901817919822562032130459161258437305736648781652116058795729693612823945256519791062920787163292394492078426692198321713624143792079906494539518046706392331303457407473720504139278572773973403363697439236133253599960632851380958316393732492510050345618056449968995850754478905746681847161042884588437911705923582113290466596901919084518978734367186789302847648911062059179021863950864616712858275793863640616224244811454386163846958531551632249900775107360130910772428047785131460329180014669118715182303994173757405819251935125848704850119291887698789899843487911619586921336521488985354661246559051651037166950532817805218031795227474346870812780983327878409001370017082308214963166548303435758960055703364068276149707171734341840489739091172425776543554190518180002322876162862284857148823450910182469180483627672221607204708754947940517143902838254563757405295402920877503076504920818073215258327221747644635632018728911482357695978139438742407127387400815502874088776482679254185824473377703165850251446155248652007188222785629760028304220583932550523554420350893730341843215856345987827334738365756550370352707503240046352852089264351149429494391044491754820217883610560782959373230556056270861859944258469884260405888935652301329932022519272789846588348092160756921911462585519196288054979200072281645224379403853067010327440792756741054611632294263791085386772569992576914848017288372708083190920042632401310174806151258971128534975494503547491211875761647525088013490023821061694489299157784969098054724103899462201815532204687519628500693726400474370288985224221307725416678771603757739289161057129375188379705322609782782731435878603852534543196793895728814232023599929027745656693578120762189014000538586325670067703436202607563503241045928144574708072074896635605945691634537697760276523689261772478176202451840222678512042471665836948717259336996563732257974010162898778530202346102376242592725424428179845519701507074518912390726642202683521703527777108106165312489326398087572256993129248976773973878248447146357494850557455970061187587399674711449306532703918014558145698488244116817362570788778946475714484419292663466069146078020475212008573132810649889205364480731704546203687858950194443915070177989254718836375000287820751112289678451724814844404374493763718339638566155025563753859076848217086772079601567203280662910065013572997095612915475315311156077350751265426481950576832542245671658706202708277481539128614382645202748586198558878539757390666950886122738934947964710382436704089301112864046792341036386709205921489040386592568202540455276472810539630473025072684185260311697581817610000905585519572095393326326648959121240926987224284012222983482176554901468177636842938811626568220898282750960814132227467512305792015202935386267167143616585855638766437630026023870443121483889299463526350079867415978505080371298138027244744190315142813402828276272693252847711178059384812811924521870366004019060642949960287811861046751320910665447371095572638946558547221574507541306360953047791532603562932879830266219706799384427448875817644606475032158808383259125904370464323889211174833715900177522106719476380470697114735127623337111274854062860539863236288743288483914257219517074858804551273821552373912692100625416859121927867654736990150687166770591320542575493783558323035351392349167546998312730076774130074615367200106641059550716029550939694735318245181772623846918454022084699635810754785105784001264775838194018210666476170604628858303398679680688134487105376952538284655817755243142882818506777148667645584534565668321736498274850583278939558084479540867031454649726361914656653435943565854529025524187020318485170664765483801501829024194790912898086140819964674983677622422232439358378945457047610322449923349863795426655480625875668903971930414951879329841226755232333019146643529248625231364981073207733835078046069903954979328516313785631634154370035967781418963747509333315651560848699743770483191982025412548091982907008467699590629371538744939555317996901573382121246674931248501058971045746024476067419568667104173639479186879307857988655408397867874102949501761376173512286055128958382674530452130095379093446237298532688288870390099097353818135456433273345757574589017212850192431776901087371381660302075085693695389735037720246917378599809875396847966686829426402422394770432706329598277856374335099358484087879207121597807695160797721746798148792529087891120247189276171245753474924539786377508636463072730722210477325119765751733058236925019534246499249314499925318604170065356169409825691137266033099500495256270263827672679059793063834246482674734871183116924017642461390340333870288148660074560396272885430399133520957618814244222268906154315981962911292536923017066334340410952284913391475398891173379129666469804715991154184668911667012847743194049096286373927410780994841190591372629850496095635643808147477811400725169376247302415590765362096450777202934572010143299694288943968531703323752772481546729462818920251565956132161875002576607731050549935478140824902997887297281342114079412216601949839864524282012041803735742455203003619554801221578019078218348704605413780036999037373061120578691461901416962883594520795686705630936893507635561886971081405291681069167921826060389108549140447702247062925543720558115871386004947110847004902666363578313362973769837427012573276301619825815908953725999315437760398478389873718358070929211681971116732182093095220796805436954646507460249859864493907366740630852403735886843538429979333804573585939256371219353027167524281856917348627462362992681697073377428923583605869225637188993460778687841007787181162443761452125234716649258525069295951293133479024646792398977302648224351872418066827537332265020672400915838949820534212454995065981258056917506226778537091556420641117262408373007846257064486170733361374038517388814215243424706775489496312676480180025796052746172984004206149120959468782400953077455588360225581971677956435886513894618475966091390232305547943426201507554184552650230949987262325031999077060303014389822794461838166244582855526710915711797557468714536570030370060830339600663433708618934110278041387747487590717538017034652662052401335258498569166167701390879544351640511901345851049504812225993737388542885387699506819255476859104410220375595475131325770977755857345532352953848506527166865834194542032327671383848606929631325267224844344288834053536890643610681883216420091171031462497893880233357884380329411403949756997511973288197457227738203952972357856173226029873887105128868517182002326453286127733286813860827873364805612442460123700531173788374273775202301483269369983062730979956710926150216411385076200850991597110316267570440088276469860419360291908846314900570448543672219146250046493813508041835907339376852917453363324051281925184021325947091595338834134791174375136560610108891206228694949618357876999582902173613436390468592152679176921156518369333753268037698586942290530853157306542517793846947513497427274439293022510409738258798832127337065499737600732857487753361589194800082420536849659045253468441393320567928180119332984026780006330037870964184076007826110142291258642363529595096996865924248146313626041726228123502878241288936499382600103768805217847544740884694652157617167969986982730304754699008785683539739011591955474726121059367636513562231725440589321876748250728290939624393811349576109405448282861798919622691936631030637676812685146281046889119820186854895568610174407837074693196088133508183507026323073080280730967696768824302493252230468406773900803986070109306851979668431816368920115193388862332290208848176595964574198571307288318872362332233939654095125827058141969657955612629369319071368285100885658536711395030899756273406365551345272194210472256254266158429448413079401230620140284393308621268651467549051264247066669114846628104320265376543967734770192037413524415348793007706237942039894496968710674866179801885537965903487891666286448181338743965398477753143709397238804304601343337734543009603674712499684551758027942412205662257394480734388286666664248092071485869402670054993030472840683296982422780814724119643343073859038573578654701788034644686163845424645400633743202934364463177997115968403963318021562997238044514484587436775333267940621142592266143199159103773281356001140235349885366702408556474448314398221511212588027055481155097933801361857736866796608279102209175111472403445341373542493265129941746667122505094913973521200437132253591591909944718168202207989843023852013450010642123840336705961756609660029066332921581012283029239331559663257799711235113403638570922185715586166028458140081544920524788598906470453233861426331059053954033504905671891057364805242374054240160842235796817281338786631553810914654143489851565749396545048345535635276820291798756417090732371080648620412115061493594942496781564031443110900582850915300161036373290603036268877634191283479801845103476703793164639095326685184570092243378327193155046282463402188119778034365442858820608820342103655867232194713493500378417353658383444980853244720596535011374739684899978368228641013691522805286586899056771546024343686337495661285588853498766030284310616270689936987170702558961856137910551050706884366978347197022237246505348020957166906940415135257308895173617956995684654499729043529655748504845604444199251593196048937942157496487707179091150031422539882298236008955815938054606117486489397640310024686455562917329480758527303441966150611153469253596926665016728752952182199704274129645876366097024370852014748361929774428701367372374675344495767106721059019024756734730782882329038909457078932500676834110070631627957121183155700577202782256344324825485717537294975757088275562022726724616828612214517922339440560137257803754725133220315654266281170119065685462767443044724041519010504210356117380388844135915441119584644357478366704969297808035390620225130852186054858936990656794882726766796216030346601101816992670337310585826568249889580031379101438594191893833495918814050783389453641940382022022424569460518326044799999703926652188543289883026628376996956508773851684011004643964568322106056258295163609932236143032669168197397708657981187059562449546682062586812545185353903359693313143540514454323079054553990348194354670516738234860571772352493505586422936869510903146527421755311798065167947833560569392028552811906728032531872380509570148555276262093092880628749301435647331812085107893356603111604608850935717108880485920741946859715353616649752561989240071442144335236081839706592617506489812428459856524967772551587622176915608056527704322269294713944719227658604574830801636724226860731134709122297350184678483303855157668216924365113900560425454259048917733443657293537071280149593829248273927033613320720800937586797177584938916925512329612353978462574859730031288176019862123578104092239649520079508402008121716186223310019748079165455979110482382596862472137129434751207527345980634511068738242007435088573502015515412454504002105065008558788889139150138529905036361991917282173911275344509641989713739906979740132476322893996090699316107000083345866564833906607868122401580848457529852342713004291465661128409517810597353998186983164498758318093295903892050408903098867933476303933047605186297264107354916930330434508210184891822925510262039293252825662078979958725880606729276375586980462745527747374239993305759686419574432779883856510108079278440679088588615674611991324637200643760388827547510061240784642851387589249002983423842815048468719457605057596760900575856897964363708371934624742364799798091055990859183535362203279078780413409304259956380466727817259417165136932469553865866641934588789942327069232673194277545888968567217819364101953887766690619455070677373332107535996119253709355732770317026938608837341328305010265454091677852325145143582424360878311434400528319245223137338336984035495948661895501801287277483685276009813573254576197170142732888079805578584338283782750556088822195207873173045735664602480663700534138599716426648307560978806384938172024508057609211212734672712448566972893539269452302031593535471909092715160975678686534668075631838502118211455358973556577319072175879974516792456778259286073539337217706899592685522484543252161122276369762700610978725885007902726210593100808477459100855685684199991078454669647710198307876464301862411669218350226719191680739590635796235000488624857776835916360563437524861338858657703965941647960204115198034695302912213786959776387513032283487553109532700632490281169758303813396278302561070419871914748226083336118974803058150003147476983340754798475475949450408638270398946091625513293700988166594547109585829709836479682930590045934492346759376622369134453540935297088424780603177052802137574755256127005957823713727830962010980621145496018115587415780391985423117314729921166471294745950232541243324716399365786395321662958304513276888760681505598319302884635530152360242045755738019138646919581248132065105261276574458034475315485900844758463780196685179323245479584942507929953200177376072939868975713653595572144086456609180090031535173810442016262219047850952127542625904976403298391841062925702488501211212926047795474139634507563411569526543080694612499144464460868045743602864759195905583826656373567435852470023401478747146291054053073728020024678698375932624620876706092659699953906331425106999553114776724264131191494205150758216825042957577409108849213952190424222755092963345198887501868004468737122256872773861472739125773268656520878053913660290358892813276784065112512778817197870299613135213526241030254575566412363666565072053462689317087046319792145845073734234113388663047731274859258919044529064311871131077119979180911471365771263670227618586150765980700016320250405359792689336535013771434332358206621947998690077375800393186207524317792351184479848211413116230081737846131190439963217531431545997044386530167779368431850337938154198032419741818883561889944689603416141997866932302996731997026263026379611081343197557752036622725070990600070276025846134416916676035870815409730147472913094326685853478043473957519885958902841889282524315487314309395786680481578314590238405137233209938448107074635270007989482914056755503038172318120340853435577269557732362291977218411038153659714754212884853974772883488195496670751507196546546655963996254617688589250804104018810945276617271608155792324637199651836930557521865694336921386881953294467114465642762838545535409925160625263215199818789686840687619097495952864062956828393284003365479132286565884096352082885570728340641526487735498895033781527436742189581895103280747140681269646697884231943142544539395311856491601301548753205464695004784037917236041425371151597066027886795716146385990594399277039795324005810423222621207098605181500773793100616693041086534206407697180690665092223339750362951007112005662567245715530467993567856923863108297327941446205556065467927363645721670942502712525058022665682873544306815356153295687708699701544042805882310225451163582894178333612586136343046123954962470550546068065154677743543909909970766186384662336516193830006064767752179001670615621766910390218711766263024386427191686653295549593797852190553451729224825567996776216421506754759172836764762746616386348087902854757913202726613021434361372495690616966282633401484631672266117569441990388258264486006891437305485795934007746918771327028385305867855323884037735335232960289196473736780799160249736274196555056316580311405731626191693644391353477651782728099654471926342262321306085794270440414547697634142090567022538131045247837451716992678832392874954377708612686885974252917639740679252292613215527568543078445708347245831399845231682834568488278175402463467228921139441990041050370803401518849617362093073753138322560733763258081932282001625867190850295831188986951345572500773227780890477881235997510050114223248778509572713059205886497652598547393488029754973215993346053331444646507490293054933149278817181888302208018362699213756566151525699777579623208352300710405419187645243877804207637472357207330346777206884514031931093942879819250958182247213834869374073792484062491071938420049102875676639228044820447531601398106093866343015474184843462686231254500402861919048676966419947451194663914701576970624563729999616783533726269168374650038658502732050539925001183842317753742452826863912842197317067113375763835133615720084906202369160935499075061127462820588879025868091598642332164264109513460201988186770129999512570484729952001879178844357342348952876835540444633930086036000164230528854295611010827683471070620827211875788859029800596466456736865492351585391806445371510652803152423654815653345218172602759663601164064957209315002662844973045991507040113963573746124689977001487077353361374715954194948927318103603321804571224857799102218605933546581435709369820200359180694887472863645674583896566427210967172945872044087690726916118068215437591939062264587994291513091322162656826364271717766706799393779859290234943191850769823683879594077879926466258035081860580616847022883353853727753443006735373949788123100930680259068889710770787537473193175457998797664281136894692669867210636447748701355683657516564778632982132946338536843218369099843439927475639866033155985212023960761200516168869693125561963238947907133155779245724008568770928421873060882839464387379139178175486693865902931609436760622817259738150001800807826261317589666649920480254490622968731148176434057382439064666122710727608245817650397735662511245117664159630133274541240252504670453484056318368933586200941992262071690999900269328486367171215950374311597284238920376281200040561459313129948126450367403293147590877875109502754002331806854133882529517974410326379271815546608727997978120614664352659025981362568300263632785660721873041560143484837017253598778642954454558772143812606888338531029785480902669070797129311362072022386669107539839046267839087489483225035552719837335536933685912403049195357219417522540884534563540493446800540268505887193434506949444485915230593869200082751926642021229852195492900386367831715505468512641732914536161054233687523059604761250525471248488511697601115067197947137586702226176469822449270507911592319573279320466263801008146455051755228700830565702811957033845430030032197129214301171030832616204827400735023168038359841347215966172809011515427692435388797047789359492012615999140984345605650841718636482120240186336929711133156055364661513862224238519208444025642958876031748541426366048605341335194401172531113196993238436563858814726046886881451224522717677054257659035223713782599433906614093513344821803440310219641558256637675431777455323688678815070103088402441094084787728927128002944271487246677641195462335009184978980969056433709673119652038936483890292714008988450226603610357504378616452435085811969149779886051049976090652350870393549244530575807627993070668758313390108124298241045090798384481384316418508140108408291141787252269964505825339786837210044501171308408185136937047245354435837227121463834414108802488139067937470221024197991860440778445673053567803528404095695878398585439322554957316733662399614942381914658979393833677126538110912871574196882290405968618583176933737459930296282422368500530608831111837454087474202754554707499780567304363894516657957411230564559772961786708956588221920139690692987204798084436089290610457383244732299494985527008533329963031297210464617494519116414993863824506464215772046192046712501105593750726907042109708947363817600560727257517700866562697619504249520035725043363538300788646093709489050746748513953340398573359702345520471680299158912191195733683901602050843950714888191000618774536868436744063548965602031857727734424605662002424110293898677652026081395918759657593136910726485850569668190923310068384943311345240533112978089620940010792972167534304756709250773917567773772398878569251054365520576558978259692815357903213526027815355774611543773191440071593790055430529366745479094982010185003882097861480811067730695262145274897345062416560677778622742903507439915787389215141200375866668631232903470366744056723506050426246657734107693046788300623572350628691146681874237803085206344628701499222100562492893019791303744270789919402850559747754295351545794295924348880930268653267466709139311186090904864540436822596346867177854936473455139468359045756520019715184715625455601994696205067959010015618058030186094507653449198177164514551486217881788963885481319401204879649232363380325739904587578867538543546409106893966540981783115965868238449830656509213293065121946141488119520047553063002979910711545805562550395064173090913092830697073600398681246451111839693439743576911729893678391093917792960818202890019571959155831570788889072664769913947158918913569618358789412601610581757103373228975757572310384403051010786037887981027813374113759987598198657765139708823397528458961756654096945746525633881827696105349184003664969443880216110294896398981342605132264705984517278744017676552251483973754248549303822270516373400835693680506657240252401489237741138795418067275930736267888020246203612061756293953953089137175591111933808524424645632214853866099716694030193098526924769034530210943410502549801554248515416619266468989126009319028301923422893110687488448703349066766370685817777429306572914077894859941851666613623361477540750105587293525473800094153675551188754616378968641092248876086970221416410528660016544589562164089601877911368354688986694863695413042188505560525358254998674277963418467771918480655042781925448430889268961699460746681907442130650555434106413991566261517257744077172919386563455930630151353045174475755479613567511392686815564231261384711959706020251389050814855512247754390919557440133026985138690784747935221857940358506767812799824131762515858828808060488442972487371058758904373629162242398362456489799348866846944298994394804344894230515907078256226810111788726576758584762562491365290182400671154287034402673497179542679371948468513396707319677264702735959483346192648320149864531707541533570555550516813432352510955136006920608349658649771180327021420190404060016158457305101791646885496348511587687589464494710938807661519108284377925871640171612973074936737385298187139226882431843969964762052583567248351253598404461470909578527453731868513662756962585263216680024576556240407475691884910243122274314590557276866546375258347836325488543666605504066834665511306291709708247846010323805061622549070308169320965559986356852231979719776748132445151815795050131923386535161095862391860913173651917476658092445087360626050451543491954258560460113421875306239734773873758907414074608597113676252284951238236608032719728145962966377794179163581069824792016664680847042991559064042564079931078444594921573415544124695727665854957441071600080597070190056008879032395354401835971134032409779118964924265669691375391484979443797888008334196100243409880912857313816671009136768487231077440764509127044507459839604159509115449485177462533759850481178845213157752804723595366070557187539724749632029981650548361891056653597507473867395427451169989514963483626959968452534631210412019755985857776327051889438704514771729023443441700658032818536861118713888214633023032473439538076096944268115734060633431365875060483770649106591536890752454608843800448616712786731420158066899501659104373384562858348890598999915665373461218081884889868448972087258709573060571430872520574354031025748349688865330711769459361419629559017868608843673237650172797180051953921811343589242391282321969570019662768759111480572080257391340212295296897835521426315704875575981797654409783070997563235538715155595059448046163932530625289869638634456775084177263070458667288839955885428818193722205556558743987483800508921469885498599925554210635407511421587753118538916256743531430191767697076332205458772298453325935435234562649951188079815640581357250805694422491903020557188792687062085644801467115464692763740024571069619974412215675928801614031099195787579962179967424596492018252754230568541351741614955518016557868119404484731070836618394212813220401465300976700158560347293115182172228061525723438602492015762997321184641645044572372520038138308466003071400040431509406929545468265569388883273721091023218962463635060344192488020806073532667908705862135983306930662732152935400171505901857951276876442741306804049292553963371300671567542975287526192331095940230476118551274578797688225806411780643736374947633082471955673371308666207726431872205319305077655121124580551464688100811279636979420665767164155444392963327790172519349263641491467556831433144456079526147949166312723909067978551849307444366782005682469494113270992095452627739453879105194548326163372974467212659382290106413413084581277465550185638159750406289055395909385192135045205118632351432982744577258215585998181247321703496196817196272982384636499216959020500558398141565373697833685161186357061858936086692189200319328469476298498330965030276903161058672391237518675419164183839123041938766515458779691549410908023003882472332563895788567256663889304264938836745833798259031895700824448185006455364443546561232990452518554449279748266163964770458398336107728033745608976126415661258893428261025984574006039904893406576839204503996877304998254527531412349156685209395349137902197731956845482487166797654757764774982091694080287031874154387362015999426928750620002935081959681658098103532850056161236721778228368073504216526829472884312362714888350866224053684589748819004228589972636098020558046044988181314186058903065493315351372998936327983493643156688976843840090215763034433286334475846111101405988858735224488355392708171631360519007765669575855515836875868927201457720356448107910592495310412465775033115850348829541694476595063195470247147033899992917794139577325180296250976374810262151508944280650533830155864812315078637724783492757111029492771073067246723592568621295244269340292176456953637494337999760203273143148531855101227930370344861955961230832623254467667854143634502905683561055609609295548288412254702336492691317218689040984133233477131111595164568298106157610939165735161378330700221765929788264255907857211152988142640363427772609831247890285647620017185648691287735883701365313901259459570657957879078894329238171762990861576911564742640610554109841538166824022204343559515985855786605422486425523787642644560601864290153950005083557392746706948879342647642341022572357495816902319749408966146621333285084164665958982428399932986088690410874866381410853927071628845789294516477999473997701085603623044634289795697700512047465621435860923114757223858024576280522451771801242673097377305694918337024578040411827141398138259200686687333243075720650355795155525712773529169980345706187148578564090837151469603370237799164685727347731982364632337956201284881208630202756088123719236711689649812417584252088094302239610297925828282669283861210553898718887381779925668138692067829348629442383848421781063809811636520632968331582035538754273889900670409613716555931058929424576968288002915011190125197874334917583714752556214497514037929524422582862081027344696563022817940286524897081424665108735666277065264925503534016352765729042558390431423816342680448413748636977257763001258103122913807758761474587350636792862275668724150109619583983678933424778458391237290863419028326106499971604592004461143110201186528414761302791313307312124188827617843518062352259929207195983930757809558629956963015849549502741423979382525475374174719773625683845959077618253712453571631992489286514150362278096925990690796811870760992286130620213399360313630894128393841511921555257505615605648465159891150358775453681588104348740758239807799752391704477703030463720545960680426075248475477307464938009523365000460412738594478515002027585975787428469908408382453060114551303631260100997339022047933697604840526225881105777798777311706367490253112547870383843049306380366464363029995889979930689015536438203601925303182682882467692241473821844903779575633512646634497780879172403997431955013991686151449878343595366996315129601329044920694082145368125052573205103218821329225351149855866908190276585049815371656538846854926742927211719639800787145653880399781592905776552895748351343223912818855694908067380541996246562851275709883890965756809648467399490788794324786762358561286936201643801111986965675189541781397188240211930778933059942850345333930083128099997595060265422426340870743258551802623852978814313189863456038350229262197747597596788987024868081940694510764855931183393225805662326670732496597636734852386503042146362527479243215700319232266279040904350480062461039895754001720085033774440203671709455015009079332284469243556158733895148330407812725715151622815167129804192676875148293933675854245797392496540615046014050264802222393660150755797700179908148108641128275499311462766277756754227997943837301790124704993564668994908267649347454937539241553385955640012063404889046924107646187493178974616773541740271572587892767410376813522133382197613185138807923885466959698013084334251117107518021147367450929019203140043003293125586358336075381786366238856095956437022938587473535050196087794010516710573854763047358371596395605123454622635742724287658333278410018496971799246883259939959838690612728287458892005180922108764972935700223672361418462462104758759804176321111914325002112783714666078094649272163948727448015439532089558191301714734547081668913551106739403294748493297899588114883440511734035766109345960233437058141181774768840159099768939793646557424097000465147860768237454734631069526935524527420784604435148605331432870573685088590280596169698345432643922755335031285305685887236908752504823454936098225951474590028463372419311731086807857174821691140898888141476649089941554297785629303749389562998099327205216548852634899409264028301360247376817307246398459454814503513728552161685421438835544070370666276038782430361429029125468754189112434559030853580517403963306634731182643827474633587554891746000668430245816493614926187566982967909820873104161187921134385372345727904126774873315494129770080659291494575090131907867493947393081961237229380168361931750111897737156507090031268627095739570589232087704564577541763995903127375075938386688781930613394385628187173700388914885172063621237277722123275342733796597617380463471904006295759867995442365112909421038551617923611654702062391042423854468745140127753080997519516212350395207667386888891113359983111236886832184513053364969818601092116707011975576748328437321027744368595653626502034247821473495730393264366131484520120061851320903050483459772977153138777436354418955129211049481810827729719536677862302992136018918361586477995300617659162770574749850779909765587115963583819119792415683538184039243970416894063650554975759410609647368107137807846234401157435486734435599604686589274097630700007629567741174695977360876362262683878432059178929498632779635021276880390897258506486669994903981121823804274824625875965242630720517560889500392311555723536351458888217397382994567297499910477993682875297295043290440063006850990227493526983491757344988402462137717598941381970399105481829811148813528885507514339707346702022594532167637282278248299590336645058383717606707335514544680792509843476779992840173571599320181547476736230167002906874793286185296186463630490077535676743567826431294019959215805635661586590912533620687838521788133762310253288452525741513117341025761947007434989297639669252786313033603563368092576332596793879380557213470067258684971980294519594796011489877177525973763775040381685960064877849898189722790176994992638996270423678192964833438409778095975220164677109626614734503507563208510209771126655353884149755907776960296228024307692241803697964338569528538301031914785193747187044602105864665951936432911568184018384866834869857270215803719140130934173430732137102880488633117028233677659853825440410496408952346469929029402813547911267637209041409106077882934894774801174808658553775954444416595637713313406874506415077768067721210699155001506014614990253084707806165859074145925828093099844835104039140531292364512878084692806997462530604376957286756591770042142741278697306027501297961668572050836073292820053491129743098611749852616206911485326024217479977490567813275224549664504573732447414348001902934287144617975173380398383335649647594496721683732957184211082712482589797837311887083955962963612779829695234567615791162590781117405417470441694644544433550266023078790707449396184731307763871221126526617059996626640004381977752109133451593191193520112278825660198349701604882498906952211881658951609952963064984397554558376371442031862676354357754395889916581932462927180705374820134085347277465686692606744786115666335410967590430768916135963245803508245977509884811869814833987636799157037320034680414597606176443712367467189107557922061138765847084844089440765628332683405886686469143385441484380073105694082951934669645044277937241055421400980794032736966045156907993418280251334534123316581638675652737997286531281562879594120637084682741677837155400763775558776467162764332517731632277280668440361884796906153049588668445572828173878831494391632686855847775332356273658328147514900630351009941369813800193270992460403686832184997423895373684298161553577455986232369764545242682514266624539773085936588098881148639528719267195200977740307371520143221228203019979879641501670611249256474370482507352658987927324939334245889386904772941937333318920948095463513520559235109104583232870496227825758176454504514454632116972161368865578018207819300008440420829040468841554367980922798523659833084576614647066915871850591367606388518597966112621304054504250035002307047411646053995097226689923525123602589637855276341793292963025009309081988365408382489270437064918724506549927781336972636488891326966016741491093829819581804683994063646970470705071534274950967081015246673655634141771891814295575824265636976130584373326785756015738436996279983974646117601998438945064094148933951278086653824325179012526742325879530560763191021284538054847295351036613133945041201477268570814667998116143598897545277094208405938352306112055740078187911373339063968477694610505907446766893691287567946020302929368748913004784769382512618023137189693714747333030079016319682150851135159290270624475655692601685796309650118721979972804833023799190450733036109775320431389386311521881693203914253714591058488790725259753956375669394656680374026462871363528160272879482952104338505731248410429085690450862433087823068314434188074431083640884729235728313441047678748453738648213391768956144730545624733664734302722071432495238843750718093543963328406714817593352248247839438681266029413465192816924036394510255005056589497714905416916118556408805854026427029018650939270550442454046914699980667240022057754664598452829057232861099473107930974333081984415665006745597365298568910878393207204047834937972341846521620679779272299629465565535965618901243210385679647971780686268224965635902582737133979118348486499500564591254808228925596292330171792839404400455097565781466439453366184334180033273641245245007315804955904335675984673243235491163835810713076720353861462959566447851105025418709052759938561667661564100809319600082130663050614989416713927590422881967856080612052967884741821750076752138636414684992826405927124127588090150072403801066515831263995383400643767535716148768748816296060007368372647950362196626017970047182540925790037340748521355044330135547625978198367854467769770585640045848047720601636710933704052205219053111412900613970421557409158984556031923243269433588578590389237360473870667943396501614644100506268765392122951046215983789682497519359056929818991417565753206263980086511370068247751578263686359426929757644676447391668418355136805337284191974053358448318972375765741855415873716953458442620587061829193954391982687933908226610177874699730924616451272509114333052719443828197636751866448993042618517055569764748739558869180758977024310358268304900190464114227353036805912304552027900950650674475169033052544191778051339759137049639099638938388514076437124010144199372485418845391537168056898887206634190374897845533573962447662676308514843476620512254398675844568509862703001089515652904901170289215092548181921039686377467545878122736268576093505214452367352652267814855581837844723277107729341889940648303795334805650228473927065767151311599933851621490124317677762270687442263088559128150436787240836934832561728379274391845980664074235038897232084610483428538187062426978477129500656079198236257651611235573579527746165366092651295790562810188939414591213689271712269342181624643950894395586409921436205681602854796574517571938562590082512165037432749913520473076912348925314351912580077554065757809618005412955371732705630910828112026713896952716041524336792011580938455584492339346893951341464007513671807959600241364773095691283875244544495401976525789438416670889846741016690298940130374513586618942064992242001944145122358025853448882747801454620582709530661779635025117534711998371489332107579914361245308989232323974743688373675947705076880972029677142842663049139476331757307504924283204652357243137025411887717623299757764305884825268597128808711673819060860481761928466578308575258843599649564454825205017667594501889250000849177237612399035148445496150992574765974713099075510066589602418208200311219828695632816067291654840169050288803096802387326162482403954129753768877214960373734949702443998222906153909267199426389600595173693613433000161119454584051250297786409723883508266956722348776221377266597406983863293024825294383119987855849528536390304540407170942838387766663021320956953175472579358764066665490881793525528536703807341075098009017841752722951598089344123109482594230694377739996333783863425760840547192749929530684171278396800186063854544235643033459693391569833836650153891853188111232340144155064179503620584889117606991172426569083407676901646724573726743594591811476626010836099599919750529080567677106554224589988980904663858705581452297568180321128717252200637929836054456969542059480869898425663714200638160108543783951550331190757916326002250844056155703023502320755020762342204906687281962296767426505885571664645886533815166890481426090246516659023432285658927371293928959003443000350614174136631737274092586471107630194365856982152242823098285060378790020057971195363660585160026448633466387797592434163454717852120661104813869715906509030327540006088652385863999689498535727752646821033771818651553998824530956829966399052028140886188335256670783073757948397291704148035053656214255410352112784339145261606343746127830247776566591887012302846392217473899658892993820849744975884741289713766113533736683125730014584858210941156357806839784756567602311319240443657639068571048388368311527421196805051553689870058930596583682266926237980396665544899611239848760814134062674103428826382455500430537901841078901791687339057679216399516267690577745850897495965098098455308110724066827626492324750598754524753432124501399555162915155047324498739074386140427190135534197278263628237767826342655521270818723564769439826107362520379517207550672030004322573177459181760479510062360279122438155076108834960628748327710586711721535881548869463435506649674313528543864526078305517362121524218208900490305027227419128326260660259775421780402772961661537654769549974285311184186201432377668465755139258027344956991605535523093533819985780468868402475036646958976053724991590565222349158550196090834874531435368419854623432622110202701314992094685778686367217984094185089389383314640661882289227899121715098595629837113429846261257574041216799119242061306430642188490942151585053704238925198732882156399416863260575076488540837183842338828513748477539082494661140403530497677515173011525617629227497680171485860331942930598103575010605233849832309461011880431230040176702083840832551605314545856886946937763602030689412184823256789676541129665956250941010512637867230944744813143750036110477374756301348931418983977955413955015217322833023042651241622606000463410942516682815597735658077106134381094026467071377394908947432702253992989873581367083914409364163854486056612973809046355153232376103465152465553727116783071793635676450059330428265365473586212584871176935100984521736322407462178306839885958626201920886744467304264853905135305899150118583943362054721262218227847995574118484231339160498934220347100807950267998444739887588303092966189531502982502694050550783693907668271248699588731756474309889143593578289654152796433933140797816755359406879125873687299552012555641037134374798249649914521070095536785142982449046786857321713947878815220117775125057138843922871189214771391851942168223899677169296881684141030816473651227205232126743432780126469025889099651894816646247248022469562928362954780447849336967642536528621403867914193288917119849623895351872426830714765433395969380936708704189931049952330585513243300243096676852272912344665883833639265204047137804112721372192792576784076680274076357522024015270936185276399086215997638332928018261378576018702999808199948651121454805566405868268570586136724365000120297104233772622673277889271240189862262936170218908108291042607804893273136558234069198027552173071289299597501040682421575284393178296324814290537622606822981108661117084409231285198562712787027683685268642147893316051731353499333439811772323477368642050274592530046928966800054062830833073703223210251056308123526343022057622450113752720435534527048768468230512670424055509459119695418169648586079470531496429591402167808595728073794270930774936875066862894549341821459233445693309078862405977494846330738415051416266580591315706381999490138487771488976721709990314241360893774066765213937190827329307936684219690575136968389986250486023312726388280553159634418220462178793624608672524871675054313725855624022301054183582071321441369008912898067273820652218835989545272795511223516177104665943340299746979042071049355030156710089351771816991248459836797470311281862808493938182757169032314348957726580380277144477439927652139101574747526427622630709516051243786360930095583394814005785231969103194174403356121797814247531570288855556895119483431563853633555927083276439456871236137987603372344100195060631553950229204014312622972308259292241577449114623833494778806835623194065720930398443520769942787849972421810282159445043377223380844501518111803318096914249731128465402383694483186728193698991692136973764458822193608882529639365385636889023139898623841823598998493037690191869122854207077487742551572484645890790536860768850261273220899711996805789374776744534294795374363234279882614242501391466057209203466785347919856443270178224535121430167833698019435960185568249780266575261135682245184923394200363511404730057846920478676279987147153482912611200932298633230221524353753621073778388236933118589903648901931176081175716647901178984012503946303816980186047784839921988645944975544548661245757101903301596916291951889782616111039267107986870363971428647712468546297761392403184916544567234205967742012112491520476498803146002137214160938238043055558528006496440551781488904912941700871863661296221581118249675811784113500655375640281197748586938498187287958949454891536846573096413745229410923105413167205315029304298279220051443408180587312331178189342126372963068634547403820463649663777328501418906601543764606262268662956351575083551072217086427935247242892336830801280252318902900605588002257407472978997522166770611878667220023758487370446023087785994721809992498013600661490522420520209514476817308585432223387927728240825105047379586109475757687565066189476074882013261955350812622573802678312412461009223447200535879634809466589043483236814450935458317114971986453053871789098098155930237088119120141204136116682358882802750191146933868688056468352881364043595051575724675110610746894297410370687440922918003761766147262395571662795286145440798850517715945309697071135590497581258207969224656750240776138990204448778529580193773538686228930440647559896994309611312649531720610173954679567212740645982425599637291589200448534241410942900790397795459454534347024778491108713189091064801233363540599287185434152923614629798295831601966773847765418046555980153049291009147982161415844152400952366593885548747112319861008746176247507011280569389159288928925847832481315659942287595987862414601965517863584986791855035219998011290861989327631491911334585768476201636152872156808443224618093946948908273416751201452101467781881440767109299768886565954727372247649814463401340333450616614748416584107101435337477555444121067318368782904046624304914489167695396834565874521421485823215905743178362237450225145787991132249868287158397948529072498166495067734078092725661967521828164782054695433904743597813335493321200430615345229215153519969584999891269716080998011313508352744485905245263604028758880265749699154432218029167513814353360463192697782045322629187153718091973435024180720030971909660399655252934793049960121570661807269429879677816870679047564432955649688200158484776798027716967039426087539995699531223636733520762562459472085823391817696532291613895242242473946078711857618563555111334043123720035702882974972048952222658259286201556370128024175198275266129941231257816057490435294907722808205376981508997065250679516833448774604221628692295730552536668488578851364244186318732481748750144135694408462067946945931024544655908763495196348148447117160072347579762250146034181288042756827960819397973968335124867350374691869543009837721997051433336193124011167809359336004975332242081085806912851803911522557145798311169162648101475005353066055205071733625475653719259739188121644042857201881426875111369277786098017928315860753647972618280891997588759105411617907663852117192018814632016801336061494325645540151898914850544522817877304987878982032913176080013842043066678444802068718199433490577672221443469090726818461634176373899709694630680737894787376181689937904440088890573230118036647908081979580929176670693210067589341417107774994626269654044264504802739414206745950609460056520026511324532476482579530251246477730946201967271239645260816468620778400959524298804867225826077211542210471929722086342688473633996453341904423530471333818168150052755936223990316454773551994096633242243845859078001968215478580364241331112044777125617432669278929024336200819246631395112988648844084822019666545538597969827593564909392937594835932925662482518469180499801399975827964945518819997909761639793985480924864690746767955853568031866284556996841530237404768141866146398475455924525782252990147588987707105983325184400493731327188531979995101307415030306968754853587096056406570996273632412966437416699441092096461232638282919279802018491469183394553443526338368087071196192766379768276721571827088618069047108648867482024064196331326781449995274525735188777727824102808728284163786518829502368951345193792050557685342767826185203954607075897418435885055971412690526319419274166464012993365736970595960558412017105164217896629004541328257197272222924915212630002876169875996508477824799906463152521026114552607246206659521537635212582390115067992512301815145432068517569743932510274144673976104464926419147218681703230444777082222435122555915091117097768080518511878679970833312338724267719456000690978501907914315033514826808968451930275500184102263310229711544876244645000764951195872080159869173399378417417458661199217070359688308840789885200949496609216673768889793295683556200789061347626078763973042223598170823626417664851009788665175485280701829547418772447270407090509288726624993022871772046545022457299020090550636637616373341756537373098548403889640167132178828384567307543069273951815151063124816919874468735725311058556711805192076064344037388166905806176402844294916459678675473201802810979142681610410451922060753289377618356763054354970326441431518403698587956970618658012504106512657521058363111045760034948693785933649397662064070269517502625207007737138534554754632720320647111244398421039504020823667270547977450036885407262989909205241155624085879147499321167714319151092029689556491293371207943876967250726960406450404166743589818813748164345568048074128762516126331263075425273632391884777333665527602202370980842042937363317673183932944256972493185941870626299783533169258881241384288302880679611717823200294661815687611460816066249317325890419091551674349036730093674780268305115171666983239705765322424126375977482215948011209328702606093129240705219100016652912935694298014167875759091677111894951269576710219083031382393806289313773042193721636269017669669711846311921005987297569351190945916500279325320219824665780092247125709039517538750077226449462672546274061562845954204933385385855948815684564867018583522467949696245179874257714883962448746130550157384793051611812277083635508413295028020178637719079248938562372470896548291822248233098825810412238305986238972213558161077444271376245660791725181437477130402340582550061334542293997222039384520737139155393524698772914583641463220231307981530673007794830509479892139686309304212736626963932886520517804829678372621789389726577894653678847107970661727989659696927736358968575762440823999960000390592399382595298052197146080675125979288833837760685567428722837723631109208112956134380733821403425442529832662566191344299442746207104788035038109928647410124171178660107547061219981951562721968244553664404578038739571651854347493767375797514240721148524315346816585349058581077192923053614971798497347636785469356061237088864041678167667293079508673801729827647235332241151708507221157743958994914959602195928989529002296008774388561940448386479060602540966980463266541397813909864549736913912149080292167522280991738039046251031850040147729392385755625296732813677080925973790640656417414424105715246539763726515196668902577916203105480534221253408609881123032536053949170603313553850213680165004504148025092793315889155541847111244620370147816298787013817550218546510546637331540634788281994838346502612420160456991687351463972566020194390852227396141571509266053188831770991363355413502919495075834150500328936451416181208373401255359794907729255536992779699323440457268844149734787617393928476271994835962594817194889172577640543495212619654303176455542147160775023803671615624932704060201405709725250986776772069642467529327457944164426531538860126709553553898776215502916638396628410825958756554980976551023455198595028219080755991369857767960643579316992554131136034592779516734926380710103095398789413828925158500429234404584391593833671907993778975139928840951505065935794837302911894378355591103411797355160921538437192278838284381162791109629546508925879323613866069945559245970144862395714522592504045554259321366509489614171673196612537734309423242034533540011765490249368312896285597639686455983873156802121494755587454582710071702572680414560631934356409112832483157133175215227237089896198271893223269658322901023800264087225123760963070735522925726445818119325340183425987045430232073361087364116474703311066838604198721003608455086618572935181058160206119208340114607663991082461532121191995961599427037710591746600001645384941457474373193301346484402216036638181408870538832506782951062295472495388757268364781983309213203181414230723089969282023566905686957328863716254048629251422736999790781424394915591927137662802656812408945247287156301706397252359069916767964603151059319873231944846968266916461241739018377809089757951798012848748431417964620558727786713633879809694740179734741306213135141019444734772532528101580527794874185967013077004338012688663485297016767158443336830925258163821086865459452051144884199938547196974620523710977667322320605806432342637437874221595111068804577070531191589398877586899431352990871652904032712107943549465821967331437875532078042904166287126539471012058407189510252854233955563818773739158507118041384738495680053291497472721734718183741700732780690516533340972301724391821964509612627028611091712167879802696589934928834594279881282230708353910057603311049747458217616313527638179622399311417548116746314746498076926746311913501735477184367976091673527087348946837106088688958150023506718183612378340376796558154630339074656582431149507387626467951872484866282458120187768464500070074012486282868449463623166690892497441938645145631963172107953250415760070428515471785439859112940506831166206644239884575817688719105304759281392227446945433689547328012917982945034130744630092552306153926942356829942812259564290466992001909122769449582715070635837285880865428575010515665049779207847471386525131035481360823683330291036955688966514717518671067811913213445894188485458197191431372322567422901269572987595963506554675959529400773016520522319528337664919367875050833878116755269108308736315366414496656979099882139666355775521692889101798106678379224948919149929426040435918478639222591135591079291862223600311598270278619758158768399313894465459012734953506305447139300687708419450436508113170638664800027922009188766537305712862351865142296129054928003686244126556972240316427419546054100059228001663540004126868852609681794755941486993572718426044495329281773096848078888669775073775884939317142825189645241703490974042785134108678864546026078603596373583338364274265659204194073207825788621784472480114324488448974395523025891059657862769705923806242044477664040356618032840301988005148492576042594834280410200497151572522743352365205445662120666730837249621026678978093631522089249656796104915570034202857266263256593037494160033867268418956276612812547696701564759784600363155969538129927669989781670664358188832681788491756741779369258569795469008031017940710910738410722348589786776248606650449951653033622142400297738955543522746031307671066200146110678692966330005385944914208937785598813562498375008398443260527794117763917017244038859176588743019402138421632204377475211340039213384953626524977175214576390956618236183123974080109907294833464386304733190981954529449483265515940834969415393053931547289073740281942944409172503552473585674186115760001843771281070400114077570083063949656028973047471480161312203662024078070980912911467628842392454193493370674893657908380472336201746402379270994657730932189012530653051699714105754948108850871974654711443095970728167930923075733198976756589239460831804765596625559084489201126927707268950148985930337951304389186087436979279639384313285971936117990092517496824512821755510727309822284057073367744555285697296188754269890404607639754102496633062802771049078192917832866374772613985008673943102683969971467920583276594708858383728744164027804567971444157384691531116770987662695646867307386126112120462063050371762823343385248302643170557102366686833833728052387250628850733500246300597601964741857027882278508499870653575182234046134904188872531817374974544042639903627266562502750469569175834787050418782946576817311296497683967565078481179635216123010113829851916779429724364319135344463426876354065456448162438409474113804219414445067969454379219967649400254325281994202016579138846276073456436279513991022935167411763737107268615865318906048574042869275466655056908807475499980254899443418633829504244436799612249495109124671164014724443692594848168475976050391790189169888646972810613034514783007441710342961938720175149674290391085937897022718510951839231281882639855476192693442705838227165668079374660244936716018650088307279351271425855131103602198676094542283709907879712587686992211236625622482101767069685904632653551378641340114708875310062988267873208590568268866091698806421715876801001224653771913911254001184700963401949541048076161469035376882835468562436488778641937450568462303033113069000343594089470433040487040463690487774001487001385345992383440768979080319668326316545464728827782134605777867476368523611200359976381251733901867309798731401975527336747769227833949126227969811856250567132362386043414610597607105788571897193012989871776605437262202200090214867063844179289146032810344238389856074998986251577024564734428233197276488086018979084540844772595043199117405503651418320079243554381814773873948891076498189939668657232553289352478759830456379951858517964225177920225521389791057571012800750574795497854566986327603365612216174938831553320952509361394107732612091165800102375863182161124572248805089471516573359198681849170706043299239133810937086542372074170517701535110293426146770994040421520184712820222091622984327839158094757642491538038753705719605204188085483694862007425715034579886545968323568367046530466514557471963339187884412928525304909918309159067408903581946824614954115176158389632870545917845988011769920384411968892002243760368316281279640639237697972649310142364812178464901650127289583829968469057651050410807172930170882355362787715954996773982009684690614102653104841674667927887857062537497257978140680068577455154468645727103890349154085506512376895290482269982875215928607184315148897580997813877049063752728105324888645042748221355520824643417329754862737938304845642173083863362493876583845819319537724083284804290161500923226670487398185073613992335965401449972777044911860545279486491291665402171302999370874987040045166128039422917025238384889854694276073875026285195661990273769418531363066945027171469097166089047530647571692296567525307699142353018245342847247508603141902726997675723673364341062433409763462055635482203095690640210378848493822728195382003450998790646058876621321373091090285804974859536724310522134356017106137469013468321640029872617998027789448184760973813206862614975563682553792878352326108125074587606933500733226302603920514420914232140882323368351108477231020436119781021095414560701919156207858166750364565123966768615866310567545518190547932415357961182696841639680719384195573258066496324052115089941776686509784577910463278188039687525961972262893109706277987072037961384611166637955117151696165642355916295354486573783170880098866981030272538763208712187322825806728013387533174867611885840316759080667565430899753517411520894288249481387631739468012644076914930536563143829664599782490794953719663838181904980233181210421557800837960394660186113641875440113582701865216372107761925614434214689630785180892105479719569331109488338421118271643612131352728200520226462543494888486647847387880581644434312273159299004058724566428631908351876592600668169317526243299375860436479158826707869139544007136541404312723617709119642458657770360810378900279811285376036781279501794993048448390783783597984475361613750138117497687512332851301186804387800409467395198853765481083668222400407675655684735472776352315937113574161996182552840654461454832993277007305020760546584450395105787172432107126992302961625390352817455151592324011858379851950362161541394032557892587366925278485798919257226571681212946934518058344436009249119432441689578924229873097605056671440614096265729284900126180764348805333966108544102911497832769061475727067725337503873566673614953614865912995429384145079883056064679972088148871692396913209979992822681753133263578946260348902015859491762435983264529472066878869932009778831857003536243615547463218804210324025036605155700093197776244015317449010629789103766278298970507957480617291465712558743512907049511184929407418515880704339444835881127695253011183460767103979604942824624260643280578777660571533483507324514204966491780595635726086263782902486721752036048368895015721200616773485356754532664034486476807675429445087037426242874829274343470812956676809391252796582313623728553853291102526729637010364632789574290879872285094521226473183798002472354152454782759501923545687559198964080448739804988999039012855101480483987109719698114372356447889717890622093381057626605611974373940115296032549456137311068193631090792150206075728215123207365522515830553571865758240514889267102913814152529240875804947278894132216784062070287830627943552123331529756895476571811632527370299720754757801824376219238392474416788265492946863613061623159733306001614721562375486104594328348150246225560900238514795344888918877431809165374928501398034036331572608222725279522095694933735943478389224029918684829363058827124568974122852530070474376669248457564812898149722186834787156650215072886487113046639853425395463217917780623819510756081023792483035970356172835532627437465630666778469528089492255323147247602247135444423820854338436602709736353239261150366057050426866185696117607852101399480235750388769316634073693936268488818338986331110214202486822760652178882800321905269957624115684865745278579587325793757489735624904063357143614229855620123936225097748774900371224434114862256311126262785093273188757353900977139859934026019948796809941050789710393395734105096516244631741225412186089906811023257045721317962216165884809129532006122004937406247953718003534562932934206018154719649778971572013319605884449794948926303459616820781535695649810390150153576456656190292981462795597048752334031108417902159280951766918782494124924686048606897923774622906104661848593703602929350283511897777740782740976688761980905273657416353663214903197464373678263953178724451797648788617336975576183321905410764291094929712536788827267208253834531886247133426606753952630503006086437324083151824367880056437677309184012015315034104607593471476727170528229679565972714870491589000632310606228329945660591580216856840288551569730802030087563188538212134454087695049596771375193168651282485702920851366239017095730293319164869481743837536154466602785703681322445352352237523804042296928662390399732330409561267783101476034957947224588017696367549231780160692400596244155510647409503886652870868264428535042276276160996808455907037862675998953072534912961968621600161851763618228100685116145518854586086871526613463319778857996268331934254371555382518819574607414770838774774368522543675986180206355725360243129765781285106519830606992280323396207399478048975721687638049970870410825116548477751912767498160903728805441931601029340905723004575165638388097897152586367376230412818960115763635331206900314243961019738688477381613564555596781860498873957732436948933567474862680446489482302617118869442039763886057645244979080513572822912331226878001585540453157671418188565297842842039532912439091756495497664574997906075659340322876364022497610029671065039793000118761368358976265371328782883641610020481824769814933994955554736258120351600044401338102620082001501646369906276251097723464776602437343238830633421381652020845887225120782910175638974326159646533760395707893007883510059831378997301985700643497214535473260095128903098217240691941142136839626595213354687039840403829876901561614753845239819554572548021729975734494189271485349589678500779525231354053597103439406519824711794381335053664644436000273574207470629382689094154470848384932409474084168702516386778623535080407181415960662334361353174625301264306508892639753298155149159952913350660535809107536471723407742138160362478102578872798435312738813682369582998364082887995687058007650594780532636900921372738065425542362013448791333716204436033884234669725927226070901466553976745752231565057067121699804128604752565239364814098013938104462751234828036686908227087347107565687452644546648410840470501349041622708149503239415611866718428974521323072024918454642688016195952074423649349007258373670255532098188591110859174306383389270537367402558558902823223010936256982494440317362730537401268746743091550420232930482235012078586533487868205472807855919868343036824452587064567021962371929897270752565574441766258634220096540191785674265391080848932001906678054650579222066925500167766535086282042058555855052786833667800422274015912721647769929981513803003697218600069160170748053480046194128374858520551393393318463927943513478717295914539499370395180417895813139733332093823874827977680180240694304541842961182960109212305503007545107883012929635592969785222992445361027372171344617636836953126446031059273781653798852736688136517189514574307461993971457487621650347044089520638197931518354830706024256451403498617523186887551385523837915009308231354631519317202784885465990618486023687018238810956826974000235011689330054802528150996547333661133379842512392628293736816557422989280169122534928835333376709253552821106008080012216137811044320531408117835184437595718457193544003652080071910461890229963696347577316325131949662584354438498137419451957510214256782138239711109497624986908702769105707788899780899196687808876924605566161377592978776672072020072423113542523948212658095972248554258602604146185583497743729929419686743823713180692186408355101056703676606868861751653713555133687859044473926216213045715403610902980486790400204597016819409993318492589871021129485553054676829302540821474342138699989632961248468890966911040270919172093401747956887560207009080337657278417709756008725427494478622175336109762079771661178614544319245882012928568522081926519203671853756885799213749499068774519269836427432050836701086691455724006086502568571492434125190877486875479261030388452081316947806408519669062996825243751643246618649912228770743626005300225829772191053665458533440467490404651705343790761997982805060792693533637651691902651356431067410549063299824374095312214301866775092531999955483441665072311805545477302832941307339826879830815674412852891151198500102321666654166611029835230174945829653799870578607247143167987052788183824532599126824339630846137132023299535263479671829286442036068507684823187928676107313298872792621586843222122121735532390531031827059239828560002748199460624565081206071490023707312405257613919072949629836812992173962994303120669873385010471688393889419018229881398722205477437019764023722882696255308152739355246125082622702794210293483459582105876976624669226651078809632853192733977371598444334203979447840804558203774372927161894730819256294237001310665397656020280889116868472957163854533929265558945129967154178630572823993056489564956009047800018961026311430781861494732464427207535924462691390550878979348165756871929904837186688788646543597359304512977896570195207477065016057398436450313350302218892537055226616559897764259749700898405115727938003750720427641123513985102336136053405511485160142077649315759149787812046823450014857894620427059696533742071045719780919344812688723064757529266551112501266552079011263122501559706771070521499428165558569437077402552611970173300624224022884905012354634997108858070005379086922170615547906467376630568270038203042498100410836900324866738596751542307393043243983118635701997377395163846755772731617825224527602060601780799645414683050723981021784158411828833083487866858774066858586027519204761942032753061304885029590328711367149404621191136173287817835924677292444828478817824612698837209762768361441907917488090859440861768377879321192714607693513428477163413468466596715176357819468553670237693239940170566965231652398356391544506209068024172531369417337169285820845424399040395010325084069838485806458362916197190874771695232821598667844049265165995015280960091248994097596018629485330844012684611432118117657195485308330610706925079646202934793821448971654551304066185036019790767222972059725336951132620655358200265958015521976490079923796428297856713899772389269332060353380839730924387581837128768028607993359998819916421764138406174786494264087792639206392287545426985570612121669945210823174302402732196254025031475774644601224945297330945214340904588623889809138578860791794008805702380220602110520090471568876449148296878501929757149466340948633285030584983947337416692891787985453899532670361337653560382301824012972660593731319227652749782197185022634063418439234540433149377841829164549874162515848527189824758401457538339488489087487635583435583173325606404762902483282910561718696264070294223863122135282879892344399531092121062270614540088741122477250321452533796435322064836787352512939490287989324257094234963797960909165245730016246051123222439094447304706158372032393711224026369853829602288226595321291304988018993648262019299387240103007479030480700094695632602017961929386905106808647221213840787583365618623677046034896485213166324438486179731828805781237990454101854157870642559226353004006952320056655246197156616388790320286502702103701996063170510490554050454764719335250709486764411857509149949675090739440824239724061893283675660507770331065880965620742042336301266366839682715032944133427034989477925682471400224710363365680428342229389297162620101645908188659306548961208019354377100467789758653304244427620868084958060077394307041781820506097965952590701367544268061831036425245328183460984571104613519597598535917835004090769079148070477727570414599616360140257454122269680264607580903881022193920618541851349151205735066057390835089844566797859906549063755685819101891917127549682283007659571965997582874407813710004733012312625490831884748719751740791098222731046942486549118706931622855921077582285098483124593274675712462685516759087443244126169751696604622051759846517304949084985212289723260371592152918675884026417013569918246436250478926367070630588284668680766848919530637803228566396029174599275890162545633249988896723283897747844392834973617240836088890982865481187261857211042956392917418887756341342170507835924281450424790259563447182484700716498817411730335149289198546340823990105778507441432520929480215825777023412638777231960810788288010197373343601488405169932016812671416163533876643217106910437935200933844495804532140145207881157016181061658781647582251989073428040430650602180313741279183446507081731673495858670819630616875073355017091830703437241843480043163292109453489176093746400326421680589201523219355810653678302374940365195005129313712873763756846251197105624143416270809581300243348678482821648776990752490614308584657666173744838610415025393640370719821094537247384865806040555511660036383179713696599804077555779030323142018428845774760360113620734546639292942173239276135048285949793591241297261327771237461874408954170869871707173276006513496712883164346533661403887470145227219729434683083795942766910894625742176887683500847057660116779342417975657040063882898924676870159151344024047451284676575958131111700247806817901627100349341836617853970852037981782294093698800761252933797725088850757534676263448562138073326905416169198126518735616158358967184447926295552707420323213516072312120244792981081444319573937999593364674423177861500187089657084071995581080148221020441689744157261137744819646033212596943607106216734637459055198050862581309430799037219327239540937127570932046714235724263310382159140568116654400034587049103663113486342852672774484949787222961839308623516612737662847151199996092067793675914276622752698009439598213377059527910560131250509311784125586708699273101516718705527209587261321704561919736077929630646530829629355329347861301271254318026608846788107769525073595049023571705760307858017111728138481884931705454482152234735653683424793023565023588890235922175716722776401383512871122430192396851359298052009457279729595964252053708540257142248660634256175867887552426011890361824110701957597427607309345027737763523784097343223453258635079096886587590205529805227561696542178350625801361355534285091311451876065367193653775220392030479500724120465318824049835415445203974633872508969074787094407227060937727083330868779535550663898139653009520871390406966601615805136748620595483940613835526211488365135850315406493650602989599541805069941445382452914721402935980858894455646230973281163494336823944434201808907466104302778862111145463820017457388709766833119713614055619914738522133182994520936820322162372449239477609949997305290439623905837085604011126782567730302592426402891371529457758224589456775115782496779173547292032849940556575596055663538844402488801073903310488916617018171127492411169148920768892105308218959224863292007298964491093238429895804880948793531843107722726176230518074204373066387894643111974977984799672087233019929944287480864961393781145200803292176660821748387755833047781645950660702494745429999702008022662890341089618433461930516579830864640049428093066629646004830116521470783533094540051422282514153151545842329744886163934894481058696560887354865971163015908360784579094723152566805120638574624046506513342132238374524580185324975853650451894285737623521681661888459750436670337119380281060889892459771417638353383664402195624790167455903092235568211167001588997632449678120032504711385782459258824752453180956121233265613207415287439323878664375084642809012784601026181577497205739115269473616686787871256190137154921298199774665221846912810246069497933579045696152852654793322131714847875938044750618716500720312826378317110768507642666978786639684549033839079115112513067535535086123785459171221804003957404627425220317969678597199227937436800374432298219084508455202081724417640132409502340048151388272404049891956884292041587960462713090707194496779694851203461282806544511242794811284331181046059582469930945918386273068080994004417212178879456671550840643965859012794647861350182949720084643635227849065275491470541968794613578510135387964330072608764521173418934280471536638798357593136796259960774114799327446829112995544945438407128632514545516727691403323546424630124974770930788117120845926173224608672205710146693132199018153487987749522162246187756169232802693520739952018930693166997676907021729198294255192068234424386054190776571966042041589845172018887409257813158184663557836799412905743318320709558699935920093742488220924976693794379443535607449422635079591558996453503827500576588847119369771885151231598663633219181000830581888811770663883498929976802293264750225782762219352544792716601108719331839340449702785230172444099988883436738483288486069776019764618541260068172071455358409286934625215840131101725783258925268273871055984875091456722286981220235602152499091689427740838115373472336670834953499961409462033679024236291275730519631375118097721366784712421893241995161460645963826139042664947352335580537259598071287850476068451954034732114623332637731440585289544236219428827838331599940064043680529258544596058743313766226532493955032769723443710598934803658160555561431777761072272351563837966420860456088021453060476245759867262994411438077843041136094317346428993659972569184938409397051716596047372116819934556784347005172308822456146349068897031559577423560671851160662135421538690176763129307510473849553720577723458498401686347871753444670519691650908971995028841543299280145641963217748127808826299078219193224834719437483892801753819898872689631664043139469025736944150732952927478040435111919964669735396316829124742772132109906603605208259960942121003211885184027676785248632784262669071190139356161181261183987561908717475315849312895998034510445663152028680807358277623149027390946246815095588134883697729012620638369012145118351794783797598341978022185267883496534665792131975339014878067729806694534405734134669840297295177103692827005826006133442999784881759019683696557917400797880799106202173876222942900299215240239306417970225100107256068896733106800798435629097533878045958779462473911357023283166369108492088014929952870274637540943309365562838320073623588484941296832179306758313065077584561355931007831485002175443589883269378395722903188543992694126863727282103707006866859375752869716226638210798443251294871373108860501168890236036653868556759042708869797131997363221624977227927476864610029925956736173021754675711587637349723757280397485103757419311347871752452535348477103555231398077660069589300504317001689484599777252504499416797743941739109808865461257512269976962484608957493534971281714834353694985891865781107690256485249911895487985606504568827346111997220148732246283039409701260048533514532514980253292319585032366308444024890770615239111308268967818301798360985913870762638136376231183438750279407601097052648845745120012578991199516752288322058463760044995803071308048676931016369818566534438847108116150557790638078254283890858961405308401761600685953512238910354350808796823376840656412061122112381873959514295879542440462323105993673186732209574795940003077764742442796609418924535031428135562433195538059648346927831744893913704730533571572899058272275755135107462591127207567666076479653166352537672852889766369799964734382250725708357331909280992064591178312225529406937493200307158909000977208519262522062322846530231157809868287646795202640407467714782409615636433059846775864778438179843529779294429613382642465793205731134027005221690667733559156732577725939800381304886509740397104014733397830814542453664336871916597299157993198852388688058224913956069495160853459319286235794284193679390841672638324482327578227743742363966669006662760134181327298312099595360742702457945887613839187769378996746521948780157705776727141541811220046742564476611832730576996503605415917066108607495609223702985303205673018858551806045338846585482719177515455039609206224172421699939725090717122944216797054717503840048823489944011131716229670831868479881946231837811395957075371167912817249849885040470446946100572713335367367836963317507269284700006230408780468825659790790182120119511858592036995288425955363886918184552204172038489641221858322301706824510134587738990130971524745657075328500315448515982047088746122177460040460329585250417894049445917937611926275066404157209694694033227436493237267888112223531905574916660661116349903151876752201506984962223948154145755953131660305401025768837625760921734528760358761714449013170010817561160092180762633330591323215065885362104329347338795143775018880462175204291543651319496440667503650535248174071388910937597803221453895495455980100521042631882714854053126869067953250167722025022418328274494202088928983910133609402890772456660379359104381591180803693097920594704108099184742705221063442534295973487449125394246811120826381084000025733876415814493554487136619556829701166838423017346564789484008452902959841629360558500381764612502068304278315993486283102370774166471692958208290286794857987038197889538261564567538209240213951592636925060887149469940258945748745268467347858036580769283569767051728303241558297252342203435094864510820405490754102889885258308088127057722303451291536413007991733497542410347133223564205004590911057586311563656302651828560104955597264756091641291998935395265735680928750106594101330979848386270792098234978923415992832730892064000609662194407440093026562430046894660786902481614909463997931168108230093757299640011379394013008716683590182660130723743812547583935197976321889967637921086924468804685978977592940587483481767941689421034182502224693971044954611700440417360458374878820566288662769683432756890764729378714268796040753625612641814424126865379528867788790720429582874708132709107268572222035920400182878286448581695596060889553186062599313154242096575288048542971093597401303319852716657279240572291729886068627974380282466755053375039057554542498785042534785881379093377583732773091990957192087027221463638060014550337094655855846335231436863071905227000208745637790588315760993306089059225894248669141632564602671390199675886678353298953120316878197760804307494863435605475069544935252559832145231591511877353773230665054164854487094091961967734121063426102015273802533232772547362840946067924586574084016139702191864625249716924204996142068094226971479000665124930686999432088104743299857233368651268139154928793097117956298586424927922169173231689623962721691396303544310110346800467184046790046949298778088100348457928745845821057878176574991956287270732834562361910500821916720520361960552913839932965781432306974338227766640649632842595015701148409718586600233095629865724564886126805563856797246391631751904965368365239666016537504675601595931096169198250809597265070732710950847776165761593942659618333171955130574667395175003495029026548283311941458324834859398713602394488758178266821311438788194047522663717087187892906621056465145780265152758851116389079930441877271741728453819541344868790345577489662374889291794065867006446889727072340517287012804069046405776651601405629886596030194317033354653051668296470668253072863603691155119799605204785980257262340572255298324475903041629942546665238250384043407977379554755250225992961123325755858078875972180120463312758988309671451646255270401052777413941376879214421109639999044960702877296042563123704919786429769990581264866002380794801132012402618372521646192544284676684952349890540678227500057120914318927398940214046304535520513720592249730004067681652916484643361009700854825979713889415917638374589338666648924504742881848320255767608107451040231733171304223758360747599787329630735769697582661536279015419696587617683536917922018446719919816694930896017691787581489226659369617823246234000446899862790154816705468741049109232166944223798538103835062902567516388797330902680805914985439374159730906969990786568620331248211571461963530381908855267369911295426284429443363930171191833108770257451038708265537312545504965420865237581017879179582014448329477422444201852669363035976900039682139215521557995089649404158355144647102851822308176303078290369587776677599830280379496682636870183208448245262747879346712979912336176117363901454848900227153683907512999151438688235608644139528186351817848635277374858264218335175002676503317172876452956532092193710813256807729290201794730006940523240179296050109523097627728186715942519212642953230189575690658970629463898393200596862432746591576242216094287211976541524065749862904266347643097160254891644333307222624577843322908982852840939984620107848071832402832723835274652167000950369200091653669466262513084312549500336533870780664859504997917298043906928749749753840253731121137934446066342755084850618615394875532921663703971439620785589493505482993328194907823973528451785180051505862929777849916355273992983522939470421254000851687304763286696767297420286391402232459370753763432458478173901727474317791927355725424876149489213697837169495460273630084478328736902497457613768328179649985094291018121829934308022404744537082771925957994932789110530009688455155710353000217801274422838435963294778864282635470798265838165364977737989517892023728134099844024613003538982023641901754899523733641443016940408657466233654211051148176997687370210893418498940307856603719395120682040177948128960682996745477003247788596069595722139492028752870199838525640612970062171398775284915350204232249131335150260025829628730189833190540226936146683358660220879286257838488505895169917929859034971332077448359938058743764910854970068648614354916616700760941107151997290542024872653399815840451450889232180783666217127742709706082320906490132358496021524669781528098404031574723255802467566151191156695918930294432005576254121229873098463256155727938524424935647738429856367773460694285494104594593436772018934594842216457110984044574157092179077355844331288853288945474051162508986195993305180331043799432764936532555674680581620157216296680252792748037622869694790202167944123696176036063498145378110545462327740007324797094272012665626473921686594507803177516315802708127360111642062992430455763892174927367134636440939946581341840141157067086962567067620801392300735564595078297553461527194867748116600192022052750566367295836872156170913392280634425666413713635616415887739765171501735827662672844040086961288491729359237784106109083884764120929214094428304463535196500684462351035750140404533903826074736527119160470999584168235518081514501985436127907914087000189734008873275199417535085530998920549699294003965672378625825162649382277314411118343758188617700694274186485882958988900790561759143058679903198867114113436593285844555065937218212338332169038758461863194321325989476782668040355646244259541122096654869362045408734917824808545187560493247615414569509634614772077839349479048467701054049287830148695646930532999219969849444691256285272532738305878526306305882461572519002618386709351250833382571245563774653481690786972866049537060549923749898759123965960048427728076000814465546891279242890592892246645634729046763209525872526811856577927618441222201059706781186593839352607112777223228291925541113908491523436477705174883602423464327272082618234074560894542014089150217574753255682230419824757115595532924617477933781139576386911047106885921181423825669762341570935112098949876873823972059532864729423336113989470633450117053415406693253264721193525472249068781697486325496375627517426481403563937286759503244953005015551277248177567554525757633817333416369893977542451393314871973466887479088549352905202300612930684481690897954725159438739537644706361931525198271616452537402700123822794633056822704868562523776977346461125263177437579989064801299252340051910890623080321256384480703865019046552484965879613476668952206639308327768027661060704977123412672631155574941553963720839997796270774042576894264856163916240565456111722461561862632134750541774909073567928520126517992794095641464172864856303024207367547828579139072559239498449870969283042110357371198759237637144564925241194536837224633663190105019952307494486412467335043110827972827951284590239399768927909167741717782964001751761924925354749935126800013086444535185103054982282546658423463028715590782110534266896148608220540621040273659623294161133928970020219503765459025197019219586684634190519633059457498831218371885877994121765164070166894055323632436413704095829188669933061060757734753934117819168967245866118551590760521087368386434046379126810792797274970346971582952923471683815921033752825042627555426849408422959855130141385451302314473660716419318784436800304199191665389021126338904870177682561196032482840540177792929593696823450262589078327819784295700443595690600829182434203888227649798729631127077999799662065738031175204634816704057737346209009209714206946143417190478553408276607605948725066140403253437636145758295236219248349672059197214452495031855322096359489954771176301199723557124292509512258177569593349755061060273066265802628848699881335197109371169328173916161956714449960554914836871381511648720635692331989397460086442150908636746567805337061585071625129779743817896852251810629300786524354249101130171829867188280969527067331768857781921796527396414780267698359110463079983684414198618382350311407875777734911676493210873900133315520843800321779673551434788274778340578863947075695236345339139384315596841553232096997768259146383315109324917086791572778352805456794717503737619635119892477178360963452137762639153978221637986021545942962539411731454925934114090682156516932343370610092779111123281590116885210854474410286772167472543143146766461822743663684919251014676138268332121736244579711218430611472309163143895355103682749771643721102967578326694446993820171792613117450910040164174593987653741526762460952173245791290075396280219223147786828260712327796783439187516021414411608222988272163240191149328347042458153925905409666196959609692782731525756530416003958229978946230124998917609522914453155188972848363378989763047539707981275752009751162081742745467241948430194446019571030190113971535147509070819007189388150717100814797289761279036607926368384930811365499649209415773184442160857494515594657975742537432927130193668952565317780785956769471822265829279972706561187618243342564580669140550844434360632609257573493026144662641113104774334617127973196912947859488012951372346291376253128045088844545261319427680178735925820539314221052902903750091667240968085104802317846638187397353023778556534898050135488391001482099347988337470086030204761843153071419509097763168175258730434172756639046776305451524000002877266071393428736091314506561211988096274044387088918379041112596914654654863216680401236472146485766584011374457492001837275096983135583126067021627911128958870883990890919017182570240065285899723024171444024856146539373915598950302805801503850603412876216749255602321873241304747609496941082005169460361246497799010192393204612111628331455890653639747813989053345248459401389904207691803848894261791430791785360390764525094024608119960698743395208107415812901615969729465377512504200468535890513279316282027980022767725941342260801842018992520629007199465840137221283224354702034359137336592134860164178677447696291649307061265802304866934876049700053292003539356375434268219957570560009638815236550113654040947789319695307106829114336873946159399614039443511884942618170467272626642424848649237811352409039315024941724184024017585197805867732367497272274001727512718675884108488324461614916007300217032454205818420509824355390493944491731555399725490037708626736538664868923808915520919322460379177382152776110950023712631863999120383643921420594284706643155768672799049027736438322029770715404194920987029280845017610546449882521562553175035897011556336072179329378673520113105888452801590736734742830230877640129115291525240912578161051221386619986264569063209461352765318595351552930320257292223332078497085166885751242169437939779024291163547666757933786059917871498607524774473964452773367501036593363040474361661869895500975540327036847553519648761302899385475549942866540524420320625081041889663614221973633115564932253523877600810237483399110471598553338546326708131589155823878202767503029908244035980972798847695700223533332358361765037822267784783150049790724729400845116934934178568042188847088739364237470697053869651037672447194989594441949659520131922016841630193905748346255899598436426566255563373980053462693846311269662857034756475522293530531882745930153399432109037630598322259690153675737043476908742859112938357727870646048932442842816613447185485849950546752618523391922748582562493266354297841021744481636753668130367058036342772074290085804762499078029940840563736871818486894779234103390148258785994071505978622069659978634794932271539515178645935672273500340617732777000577925242765066776667347426078225368193197701914586220617999615965051094199124561288922568126273367811741752966112596594744199151696074753299383730109501846958642724907430056944123968142771675380870911670029647964107858664194657058085800454719906122677490008116769969863424773692955944931941905339016596874735867678837856940978060584148188263126902016622353395751941854329761624862314601392615774102409101131866472176515193632706252520892976448131755355830172446720333731114570438460412560280885377427410218206762559398971549904240665762375593325270334171243288731952980957195284611835630137722056165670518421312697652856505106991636777894630740945153340265312212748154613258862427112476246426099791823754536166203660126416121516695341021062925534724813470371280201914315170354453307360714679029482702081112699579012860711565538904707562528163994209901216341286709367821332013853711626145075478694949052036082017690463259976308995453246969038212443537996330475270316179685367744063562154652902839533221656865352005717926334029009816653958292257910783756145521788186888878775550393935947992736963975138757442417545730846375161121537245796514732565339821710605953854640459398462032983260778026133373093266820390565057877300566256219443735141405905872715171994254432640028299906631363421347133243345552015411006100588319575252726992689482262293102870801657270210487379814484856821256533557145111679545457514875774613736073877422092083585439913401891346176393622951062899967823587817458052972961707355385929491212616709827852888788185108148257651498314059122313674483742760472337910663346801423413426121484047014310008789864952849287025339509631790056175278415850868550629836692792340695684830609328221724139821004712164471363062795467026647332398170431330113548384569960061243615926867918470929986272233331575311347123454585529973944527529609910461588262477317890302031918320261617401228745248752331782986225489705483015899240489153694424894734975969917851982306841887739374590520351439615923756889696221683685444626322522793568721550700372737090674192176759544837181620288194300723528954198924574698976339516315429951680093189702870703774346614226182970315254064427746179251432331942389124133767824594207037764205902590661135856864812642183529282010119000843191004513486012390779155242716333499212834352644949955274292419980706529970990555752598159632536195014250377857431686904814379649099650899026409065799177373301004480618863774980807377124728513650301581420469844944684069036440190471459706492024454449361068320419773806289494226779517961882704504615038373519557520287146950830200050408089339121547734714359468918311227180673117857206996148922051441159754208430751840190436735331367400672146867647496321347020744636912827987785829000205740798747614370357068539971907339898138869052580264757171611625366817010505431597319297064333404050853580771201544938650768283786048686873644864189048654142081836971023793188307733067690008255219595815830204258525089808941421294742446147150957578012991781881120329680925045744801069753212062101024564115601806462876566202909086400684542560693537435904550777640368847971242213039075570168886967861531110026060883140149744510551161064210313232704709536559675290562035645396770746123724871469790751633618143607960762410683383518090655860416371402948696151942478658325814030550264508114487092360268603049809272210380257944634040180153281918389536803591549880136910521028557495291255247015660960211973857293822126495196672090825715432937624010222113133527136117081354392218997061537210599612957409660883557657473994136494675910008568274260268031956038225964324437054841840059159867984132092068489711384890820871207019403177144441941562051527062293249707436245600763472916005791738026572197188107725213907406572123328901556390262550122721669082153794161839172424019192080939511071344131968069428428553604663244509324412873302374269637483157509117292890659264756470210541885439394020619231695680544851412829988680114960457369478917268468798339875612988589095666019934517001559717362507384958109616445645577707941590626868944472347799740046994828879614566651252343561855531578030616833477347588366512044990333350261865255402717054312668225239773053701362628393714878455385499512739414103614451570532694432224565778675164336301504344923916474222002293983868927101663090897962216726237055595788099642536710360642118954880122953013062540364169452740155942472120258567207913493244705251866851407312164635151462430148878098930898912186394034736946114702720537364307659978759203085866442332220356218918228352287593222741450687761726204674077570703904553922231317062032144509050987849379839029610735097859961897341389498926066018007380858287112224340940054590375372246525200686141926615186960543872483787776198579741082881334087890051977123069142388142298015182100639263115542041902939789882134479461668180080037116845490403239452244181945371833641260899954626561875831314480869330653815113670551991220111007047294671721221352098462496007498207083001513106467527118105694366743972137799933584157573657398202587502175972461491426554282826795843846178802961800286694178815220453713779128580283388148087838302102603880658070317872440719422362017136675463086317264548456044187732880118794532960994031878914440518189427887165997528369488857522216570520347463548367924495273603294138725153314107178168606235122580378029632076606097249628505912851982659978473531900845181010205776983464653144280764772398173913030834016051275253437333395828278164554514133911288187025639546482278557117944466494527917699830794153355731485905570614596522984336677989415724232730008779794893780097313473331734733842971087154681851182923774745207289795778804815293423598255180743168376148715543772868316652765132247450363327781641563958387583907242872737148398124108779991577492481688814351626327982104502058858813784056688830773899017541500389182575704059739936980216779079658088960603739994937207565024893970623398171532684011248284730364046218054919326826505780705422469927116479370767591374018467432035096692092565576885545514357458961375109368549134497798481293734135946415046026167372976633689694490620081013551432107534172170101519616020660055514631072455282513797494528076985378100136855194638249423522502139299057232444342391048885224121055917891899808099872629608152245973588319640490632766301862171317947521711143793849421985741187431238972099876205392640748415969159233479152281438533121091542240621328760524203580727565808634102432318170916216638078687989617525144402482473139053734733897385213226697286309828461930361600892009705469820379826956861242636912772589925923700621950831888778108982711425480793062623498869990306953485026027284849374478758796913202132203160772456246259578543040474956538687132303217449837778225140994479165208646102498652766898307217078279732174271334313208787419720842872208104481893053488657002857029796833058564736145245151535692476760981181008401697934759414839388844118485604581165836305417572306896038037245208733369352011810666119769538077823201220851453249101173487291542874595608973615874227885773494313081915366430689100493285147992603847624290224477439121512896290377208982149762917177577088024794732258578997993209706912971015221970215661994457443610487757308430135200749815053187228684366892103285406586755721899259869770943603717507913888663335114693691179476071954811440303887496703365563824490452517522074346939100924474409603456377183901452279011976609302892962705144444349292247048916520823939441056785156166613562694881945635262617694541376043709704469412744945757572549462087430685260376623844842924363869274068091476026702483160745672122574594468384869781056761453101941086771827635136331146294353927693582383600738059687299857510919935655603560974870727235149091250476462619203798477173017219481487152011098176656472908555908282563530409858195645707082425901489241163886181447031886941926882619894592917109914531632320108932966655632803812866015102394176788014229899025762495633923715027246291313655275308416159218438632439012038325023587444684672089654027630182345406578549497686521330067418521040982249631575728219604918907196145809597387126713417429660334668818745680225689528973188262310239675023865354288258035226537690065943056152364966679803756203086801226270928668635597944312619536004490257250692909123184980233108814368690934172328612473260280982395086442905179643327307672342943834375478911150781719764286239397091214215734133493252995832426450215133309207130503794492685130939486443219712721654762427771425492681283549548240293350275318036498933409531998130546790537043824082457573099633883657329006734904284783320334889639843898846870389057492315497424424579333680390788017598781421701679435296446299820822739494442072981960882142888031837904015955994947533106568580878214358231679829466320106965787377028167057308428514901261445117343676341344235417330594699895287264374066834000825246895955479743105636439943527982512838298417050206095777660520306238353918180148369092135669955904809060594992765907377693891645555797056980252064528140777043239363003897106468301970901655457295530988785531656184856168182467300402745014406712318385193487473178864013615063186936555836279441086315351102379255769942426053905373214127372697768567560233720947957232725852129579197580780462952908054190889798055060573753567663050540887565280584849524563500933427628433131670549249492080864110811206898467383297245157377582940520283821226822810738320896514018442708799857229222367915414182906102707786965709376548332749261052344496488697103469105902932229763864475762438575591753515284968079040765103581255403398979202075227004779701705815244662973003228444598852150767811490619845205862409822129089975696501689850424683408658289082213838337582159298088981463360953199627008998955406678802155373608534997791439502783898145136202900908945611567697005206583832152154801343502672409689437598272518284947125185614395544476872215931936894160490076926923305122989549407648762311405862698090235056607777978605656563973149138486142071753629835591201346310996647102941565920446370446432031988515163648591785045669859754991201955502768181392033741457607184969181353773351298465833904053669958275257440169016309622376496874616749026984524898892977897571343995212353836417985139807268492514166888310531161723205504004951647091067570079025552226719821522757342261712430141374237490431630259053932798323945632138618662625295752416619359489329118402152418468192012149790436916661429840623897902768569813592389408319550720114897963491226996489408169072596156965062515369083252507986682800024908866068147223894028808900283005152207482980865597858300148885199014981437569345330769141381239990272403538436002291670195834729550065213336518774036263912862012113726381904020055302489202445112087751103947271628072980572565165435843830931597680622081203819209198300927285440811094052420152561523362437833410318783583969700537932931315087400376297775605680873695656997675431481933290278459347213206797323005836035205451735679579078147089295851313768394489723780860798205157982595966642474311455951039833816300942351861307907857997220482407144616178114299232031060183968294421617057959636131395042640404911257410154989873712129094447967696584028778812849572320436286791791568868355287460899470936830291286674702792275045316969871228211816908277092661005531063906227277700948574967788497644968536839886223490591277264016670411773714527886708983447125099476319977495597533873025318046029267756884660656137784636402855147992037036156236165510502253840276214172864817909656016910626285845599441733523292087606697746198390055722086354554673971032168890516326711939173888999816759420198088635590203578038449922726550086898733172226523574739866770747411286345721618680964091575614815086643588818744685639583477939698173382099343091949584154228124804099622393262760170530755267755103827649281231197170941746541816729629184516464209379195739298202208427370463537420318968905272195617918063162643233774352089250645654563101649040184779603867474401511541838060006649185276947669860716340421033398471829814469449889344187897683292287210811524642914087930204307563266429439285161352080970627340201774070621287191971961374735233451201362148365115072247335036955125037542884128421765471328100054599240443697876386061766633016205582713916428165685688367296262060353418835303188113543323481621824572558103883657436706061663656616155790382849646729536765807882210499666627974510137111175223041600942379507107733871417307516200945479674353828959796577718525404216852290017832309854443555278940920417224120240307681979522355620522043594025113508126772612496936139529948002050535451315474587907565623786100559881617616223680756166760916935419472971388644384064436337638312579334241416721559188158868157263295625354879797965204008955629881699285023020470880163133767381187482734087650627281027025175198329804572874121228126548555433421893488015031651641791169693845991551956781780163261955240965054828702550513612261054039306228611477915966093181380318588029746909983890757912619953675211890318988317899432818204502836452681034633822197303413075723377635605435846101679003954455922109676089707153910239387886288962914763221134809229117912399142069891316682076159196087878749382141828566522333449446119762847020139059243828976434157014885837415498222655057485647061779429148339388999888746033592516241044984512894927493454628906795165439436658651519593815572285454285895151665884732567998741109992925768052758788720647508025784745094437118452882300671859667782768422514383419443008145074712968865862125170309350441131788444994744229588504798496921716160658023751082351806531830726720841226518763285775718130703637251309085583253925973603303618975934561283947293056754712900391580015204923302049594650716599830484674903973177610427177413962662924702344742480567870371621049176135890596770392227795829001439357264156048286114508229959053436315402971699693222340046703135281371104558303865410403307810856604736455706824438989056602277273640294489018179974946302490442694860895931669258395965313832735271746631324723945428640266572733163571715126810982746524309941089858724470429647125487926007679658924985308248805123713815622829105599801953474061308296687820079189663969362450602684436596934960980015819801286662774886968167532504664545908797194237306093461443587862946177133204670329119415850463437104728270701669042166654088770543726300512562830180988696901777892968182011907414809474194235275039955757197340026422525536362096479882288444935466519676080153609986076108176651276066123364536677765408287135417447531498023743407311656009196524297288800975506076307745355397536298268827920482529510510469974579441968137245075098352895059659943588116658125357384615157621086386391925031363000729003706265965954509931049936067655271494096146301621450203675638219285474069861246228118712735089257811853964719221345626286936492407821991452336095222637276735892003929962333476488050644600292743000051344926088672777989994125753739487756432104714978087429118581959383758808126861173207579036857734704339530923716256663474325740326905830453427386625309706355885934125854045846541935331304041615747323140051312578197318517896516257018083320697681170185124878506151804493051654557595312865338128839563508097995746219841910601324830125062602178686484561649010897924843955782723964146489343253529811852591080283914595486254011389521815655212828956274314835427500082910148023474653004503285577908119416088084565726892729987849199897569559449950227319492460291189083956021207183176582851729675076905646169007351967298278034203513116551403567453059243337480269899446156022261456426275071716008062324021083082889706908664351286689309624395299505629654092899395672405734963145086482804565831165814505935842503265156358939299322182448518800759077319432368846460113843645551829162239537941777328004793174188592453413628701641641187855858435844890975845695196775974419019396482580099260843053748049844446157316946500529694612475170136625130937014302189979833577147543419706197006765904222625578398625940196905831687359617860176860016004075302257395653157968521981679419259349078040357135137216632914606828811273609063014695576960572508149123711680370690975762072605536629605629903227532203258986382786001897279538908452067313091760314291849866083066587481418763300437990108325170982926631199023094218523922891957685927960054263506662972491742742262346189636592845942237080764060168781495804151147770952782239862222970019217749231169488330329246441571516878504146374724345283413376246151029673407607649279919598247562375213277477649197603943800549809886435335505558773687968788607900948247576853648155768460759584604739068182120328233048247593038032737009899522154825483404591920138385431958864160547616449824166860501550100733649818069055964996976839631401397554821901363516651758157145542755284091524605002636913169732203668113011250930357028899956329480460950249150969724686990715919427552967108567331884035036296078874136820338919325028650883173559906517637457436089561704378624512390283865926637499505739031138845010097233237566499742306391145720802458001269535718295184110469502106729326344828938608733920577261518312913466661075168526327683779745211630382682307295902641670901397757311651758439635459213840348330582903104972108148436584930838427413208203762317054320411790391746910787595680161727605467611789292306957516247482909139720440798918864531786031227291390522201810852870741852907902280241543892036543686467117064182387761315155687288833995472688793673242414545664748961314892906100789814921879716626964620637182838960731446444937262289014596985646181897657694905367701256734654393014881373145260092775603359845557484286857488428090654256200718940556919046597077743205440822488802132222417173863073294167300719336765646551006132649925985938114790221628549107882517839553626742126931468696947766134682082387968952720557993251806383290020482511936655557686384929631272329700621934926167969404056315465089993404951759453502843866966657535904142893328666617346140548649080654841966284991668976073887980040024934805343678020530293755347334376574123502873853749584108803672059241228270917846340084348849777747345920366723902872303048875321495202712844627696755498629605309098107097321141073240632861739471061910772916453188743137139163023760779017690228685807284820164187632410895331479740189260693225671689723212824895437798933477593360633007936271526953240217885925507320017402176720100318885507686324895197908019918123814024882059814609164815592905969713435706743693481553010737038971730552325226192499389885254770672703848725419690516583101954922897480170307124583224610172938811030340709596432902293757302605268698599540686068141378652445341772069881293357996731409876959111085140579990337332647862390230603755818425200243946118774280755494684553857351458143943667499202971965418891383821186337474962788095934495886498392877126109176558808502643643245532279184186997256261948153680564137635871214568417060066734844643143207577308229944923809293562656467259378603540105963443664503642917695645871152310983047440380869893641484974455848057781125986713004507553926123514097249010786335614714208704693613207163787037287364032562277331265551726894788014628852679931268174056004399163326062695270616716898777030968354006811106053717810034274149667635793516585533289548914860622267181548656063835637718988672697250821165286589757575662610789059272768324441242050969326599252593370586463951437112430502917940457387123081960599755476761455482061494111198350485002049500145274620978963442229965344858715177225564105387302273346590916997139568455195039441211242701152849810113780462144672666745199429445532516981384897727090394893727724680497578079530331187692760833197748661411892385156925255223952495087284285019228830540189570551529782650226745145528961151523296433593475251389519136051361228469008006454198989915759012307421682314154887104468284136140179116082862856159647513457602486989025642996419166515618712784259368702090408150589263178766632379888623789938748228141979004835705113861957172746089623248177190218605634364886916981684540786286495507523792217117187900949595866313157596039210723742498084382810840681795481908416026949131857471222003218438283542789237144854603166014381515739596423257225013053848856977225366507665417815910114616831694629999218160139791477882046838940650160025635214306410779806806940881249005412415993478463057002018441925060591207606525888367968192724970696156774635551116012824833417605087403549276551786213389343279891025972214254358540693022167008662732250807487069805336459042745810958182740541517380745157694279264639080199658159653519151151296280704975928745828711419785734178776004409858685951291133676647500476679642794764055917135945006187654668191927524942364696143781352256613817741645811261448056798250907533464528849873757650346703539222242136077151671971145864981033639461949011362985713593283811710890989692394961580130758894929032297444509989119023923711921165291557985922330829347636542271074363758002262436678789729528107517279982821371871076640933268783758664571304476501950827721140802757914848768990528848495285745114897267649915688959283104070340813193485539565250280376468605026496448062581111060526532885203717966269731693662848879656131080423586152233411502420831168761355883639724791477427775869683627523949332697372833989052474234054234278596153037411986924564623504071869589002315679054368277657857127892082589051086271060100921110689398137557606145275914643430489015664090757353072895266061150016480951597769444381848537513004453735288316303620629790796986508761933304302558808936417921396956326866199234728470853174900212517486978659067962246245884650899849137524184061364454890617037813462060650770876352480180268807935414447276066161431735153367401376017211305653187219074741046009923090846397762898649620372095081425209105842014187730460969264050823172280345988882510062850508920139019007103463935203739618329857903850018233623563413464993979453136811769691496698124509186532727874316954368904422363802870814449125485388783826143547910576373759227541378974071753240819438271926395478084754714855160933896730035756925220113477707441990554957319844624474329913277951001161243007874181877845030885105265095362258016019446500159079269139389970388611937389604204803900160334209074894639088352952605332387337861332864522494852968343374181521310250574760542223977896365287893358525987481247572341395626399420693004276126816715259756221433522158156573659567371953354792264513335899285799311892274290536385046931613199303556375066328943413893546782876434645156328605345874671864900296591238135667887479997782614451314571843461438208662128971389643574291478071610631915814653623714692575171856179760542250837399437510247516122559417018285815770011099304140331613632431595446425537011311207334413792419628492592359000712602002166295357717765062913231885359793204621917450249995261605683904480180914707861867357782939758392447164392209971207338225234768424814327797547444892248600932206177010274384071283789500862480947712969962323458931645303552194924872588534880280688249081643643917454307728696378943859192194962526108578964134662341479529067078194559602447133524700301332914420785622133790202002716715376296144084179324180724084886153359628226635249632060941177417383259736209883896321706500899084299496160553321660171301634229087316028229443721888395097286354522249542081737911900926553635482768344914014992720462168631032406058247723208389846485691106896282676321560202597932475521517138235075956142994440651675777300543282021204172598814110530575524936752755524948568025547988651950067437291797243934065678419568279610957678678367527970177956050081586937018133765856379077014314559222496680498517281296198415338632261604181183121624820411164856049262630983383576101012261674879205098885577947770664338599015645821811035173168190243770650299134690173959883401883679209069795108959384210832607565588810206462672173936970631591365238994410079416654017336365558927836351800359573300502130320056400161592100807187991840155699425962332667935150278597156574390351908446346185685526770636889015554328806312249347785286291755894933855864102675091545262125446910381688716618776142379036384460487090053050301586022561308257475304874132957037259680033993640087327591186850251671580859905199796466102742498842785845974732631486826845684160313620000921303720018992532152417661904456189530129393905583805990726990606185359784031014827113368333551971444464101615909064793034894180821862587904930133211347662978325494820628710886943968445601242271307296955345040456818821485891708607834374359133159977659605527544730832935039663012102158131622095486042411092085585889168842529233082254464927212786849213813173343026989439067000591890463790693344982508971549967225763085166900860736375769990219084913759828251112861191395384885980382827186880276259825696139857127723194806767786262482114938191742144539505256918474076530127596851631671418998645821696356330921461679040407013274375926662819370483135635943057151589540007733743270104706892972428371689094975882681300509388039048701249467892543012759996965659240234146823865457424895250609405945016283424129512294136722252888051135564821132662392932506018548071326615267749936338710316212335306890254659849365769687973395010865820293942535816768364111464557060022803187219107011422358017717702839848716506565188458566308807864383902691314227936399332079041550318825401864271831774293722816812171521018663720170682206090442698516967657867085921510882424041560993499079891820868032830133195029693751326821716431256870562150150982599370035115326231975304769473200766854307395413456755922278240031241744346759055929125501739482539502632640892720261754140957597462000373296900036091206573363553322129885514891537076804585645254481863145514972672497690395653511498977102637392346500467649422562091160478547475087010984394139817857657083028340845711605030482607571036641175007277256087094455875705008745516972799723008633097538479097549784157067933870931759340066181847612754672799869731255395338278826778256412323866601271518296720310106656683676382502234620663147109502435467883956522884805413050331682966310747887674217478069915189234606298633607712217236647380079070762626868127146458071358142264361187512066713384868470428387457325014380855128678682140351272132281067459616074008129149312538820522578018809689168452048076111438240725364400555574856649605891998511358419261954319116590582133425219710995200264808898822272633569124084204663622067326829218959550239322363172193731789392411790603658099545546582201731533834143065803210417076745543548125227563885482237881248214121151851756013952922266046305729875267000308417565885393290620661691313259433986863712462914356298002050528547547880995825362742287215234807549889041786405277898220472947870020545468756617325529009423678285641483752287399390054729820082603025716060644908952902688209045819357097721575381013211348543459011027885520789108759020541994820829060857825535643161249094828000698884738543015557476613274180767596760974700569004414889796607900520868659024910118816333521566867239944263638857667321423662634418080467883524496432964130684575216942198994729313066754814128983439633818544833404436443407177706888733896082688785221496117842724736197877827498512810453054975532747994753295139834436746948097484737997652878203769371967206932334269558628953346029018480447477277052280674680569838090739293977709245001260034851269396140253964328534669110212926831945587926088294805174695027733052155920293771245040045469576023089498648714775390621403092932897404632105464086291250515581624013225608736754024477411214242281564397664600047148463673160834662219058839550303202663398357854770136833831090887962934082085595737692088431162710335732639537064516199434152268544549865327403729584736640312247663002071052429370581811024772870269856779357433886799899684024116000542910126625454714214423807954802355443952765654788426605658228884745609393788829444947433042705043956518601424550558559470319468337566653078019708109316765737134471817547511999340530188987456715920821975552411039455130787986091636913782460451534927585131655197496236866988437391840490909833535362706235778105846323400432559820341069144582873902228909569798847398205135879725244045522264917634965947241806482716213786998623529073843001757285147344894131064961022069450978670597459308811452200750665582882516025926084117646298375135735304541746696417551108823604522492571034055489624909385068203242309945281192472035579363296539020206663550918995090839932345165135362600368454563140188281686495440092223889317920968911640761883477455368420878047757212393769410546342181456411406339621785875013434130400708449600795470342498550067832327581113867132501418840058591090363964178143415754437422508229533614099510191473126130739016384984504830209019378559373881642404881871684008403984958740946720671791103449461127650485841476524889416971613135625304472112875579346467453337969328064408285002269555311869971182719708041802056987086002140383920545640202888307411322467994353783125642437605273635115506247203208438106711431068637538991806037430014559696101586653119078864685886273199493508404166509873353917143565899479003613824533914046560287559740431197515910391373959542196692621538084624049701636021088906942940578181826337451366643487918913582390962953779471657205408443507506614936625572806072269282896487818787237020761499324940116166408503564485818051167558593396660058849175717199715056830199575449376603247307779681973610236789208108266985240247657950483722373244448492863739125260449064270377039883850015533543165385027685860681618205418882801979234531231657748885818107697772149331826926636378447824696629690715068649426963303734969751401698492035284447137873761998815644388844024576968183801629561834190111126803316013461157899739912373049635422379912270486981060792097043680520065275003988493028469849170316286838458859953558960706024007721052240363611224887160232735996374358132464705445699588055376545933626601839376219739142796681766757875931123352524966216103302755923336219875696121297350560446116788890335860504892559811399201208042234287667433170142420505577001489623562424156575900170996118705130900914473372750830577687900278320486893687047528936042381595303983903151888489711233157296226024081139311249142104343267649234618074707924594348361284476303899633055657869222173325935006079653586597269907851384076344498824277454471822563681390645611496623219654170548766306411457659874851817006704285671529405318418854482058503385319634821167175382605662526207731756037210351741825330501889512524340220061802874039195033840247302915590007392688745728378798665882513871705845361699861933985735110962534235870150227288941049216956389936925504547881784261569270730935654512589588907620346854991636485874315013776655491026085329930505106875798404556111870518365608806179731607698011830295700032138574673309006489634138748869077346700573555459445670724387662459156446682678167083159432276315891279511395404810380672767753775839235476959414657408530056468012155649412091095763473967836490247420397370629177247014994385686430872054493256545419443420565089753515813914163859175022492298806982505994680828147614491569794526525747703480469379255197125597319801626765733268904067677402205715562001160745803369413121802578130720996669283358040891192535553279405108730027149886671002042953474100572136308501688325175155401314643099704745517118114500225085079919268960176069803308842688588278440483850622002952042479263695243666676350027636127591060527733619166839348591856663118187208379201128096229557901079483367678314492938504878076297625292039695791359820351267985192444116396818970387450320303757584278219016838921434931653028969539172999743806794576513492716812340603843822447934820678982501425175846285060496464791276862446061450612964085021194217369887415225092664669549148057759244808734830120958996906130579312059083743120885730122907716290092100546417045509071857133528193061565912574841458296497720419601687702898433589019234830909104282874261693836439555170183238281413015866971431148496520881997819041498071711083032718763101132057845147715754246307462958852932253772551750147155975314828593572131585218379576073106964613539248828371279729520832811055403058073699615035041722635719416705246944372228768081365679440349406210150793994409409043680597438540866623662309161904860286329087566712658966894758236422773663572641420152473957880543918046131617298941063574401076198427256972589849218667945408051286208408464126725668432807948854536411745801079155347299694890280903638605437907390580057920532251486201123462701271507392880104793357907563761424318313188469401950354778198131481500481534455637353713343786327036261921489401309029614168925789597362608844294821566582972525083671561790379645238256335881848988429747742038436712016133528901869306028742330242890149475654423914838754455903458465601453097685525176223140874453955265808746144526461463059050916883813584724574618300962536718561121822764417811629611271718567799916723777423669305665198471338158084331748857474348654970836881553678774601083075481926950735061692417036837844183491596358848786614076123719849656550396577049006315619061677703076164390953941509340512017157661124727202214056918124176032905525975037349552593817025483673299564622135770691366501943308524044457191142695800885791182684713209427762549560619636795673087349930130549205827077529209592410683087236444771160904145165793552533489455757793995084856753254794683384927335364502815586903474148597266172371341048338642805964154444251436699001605823346415611580807615040862155076462578414865683836424497663433637389957708336810684774710616405205613982879653581907760582228839770430005507059770725817481277405964102607169261753844701726238281346260268069024400556055614852863988485818736540143046648355009791422754669858765661797979494791412174175448908630122609711428953794983801993841318269324410555413429213770118126808342026732086511362559639149636733863252815363022598809806602717007564454049326400248020881317788396034928289479459805329541369200482205971870912261693648577932614967770207875547486544618076644748736181269257435442653934636756137194266364008308274035657074294295401516890510177741936217528053327145934840586600991237452768861386485932410682692026493876780823429255656573111061425188393528024467078428655724337146687148664612169067313551943505317517743842233290492060663302933984232185072808396864977330789136031812594393533180256100340352527886309233895964757587571723158647650656465587374434757914285022843650935151726960603704561735317016954320525167326910257486394231056815147212060992697523846335964348430149572797776152741124911025838932958493822789682332487023695659297580222208104995850712370577022617984674309821353186455851843719121684682562622354054577095526221232663038863067924980949895971251437334643147350052163813246374532798683049945750723403475428175661632359496122614012653290242054975497276832747041528912974072497273158772820206087285744891451486357370726235413053945908771103556273434780142147895190898966377209874794438561736340969600782415233234165544181494428475346515983421461169724698704164325672559727177070294374786264603316812536909201568146514494042703606262759548889694630235909013113586020896791240833663235910235174134498769116500576281122942010628833171388902750596903518719700594489374099868472998242225945300121736030190169679121142397925120620662208108544322804672740843097480924240978301468122464272516923670012788356695899296012636474352356423647814769437419962124842476922572069508097220969222627538497122881333494769700899783852512463807717543947156780490625102923110097030923479158095172285048235613538864375605004154474232590920453838333257452324729735462118970147380899689551850953481026428256783428437932060177419396159660556994341209206701836714360042217514689710425818833208162819228563788487115653827059961177189458315829117812001043284407275438983342852092610862735110467560460026063840453237336968809923446873465005101478956926137743676156902185684469932235645247930377555733070618371507611406171072617593431560980077943828743178093873466317856063874593357908946121612575009150214025763044058798183762598919530070240957542039055545438213288415465902127891607590060414326872356286235070578350369013844666332299729860378305258924315843004569576336179946042503068176066314277638102860174460191929561481283510973909394833366908325172792739342179898284995459284357622514700849341570204856943935575829654644315705430688968839871797917441570038667050767516618412948657772553877510033817786274314330712710774607691561298493595599269065390744034798822650226492787845810232901012988953048366160048675830221374439222670286132245505209951704068783256839279740339918929581557416706554061723905354748602818105701573448224676125103625388370148608927375277506922828889538505705983433684502279766990665196586757448680605505911688592372832905286501560678756781609345918873603573852312843979625427488109542763928859283356532737080785016709605054755575338526358131362718682636813273675689346817901172638281179183578910123219049020049963143879494648111274298924072516806319106580105138099248982036412822597529595423635984357319203173514450131513069956221321862485252101173360439456117979567814391429419675873359879262146326199921490581497017907564630088278907960834140683722134020892903540336289714858955543049742696535688882108008452240143529614943349533171060199159038752578202943029722307930404897625608796445211051241957771420001201329306370052664918171674487567376340932978541856648553508333574546416656916231793242871228966624675546971128761567210649302494341751167876052621947276001037455488773968265626235675085151603789971228357690225992873339314464371210093812362906520019679209059171183537277900010387379426574809947330306545621999527814358928970444096816658287314011308421915860176767636886290951914328724643782913941127575162665723748109124675535861549237103206155503596771051030986158177609217936598651505492303456366032325137404753864579673976868128731784551511238001341869843759839250644135427085272336174738607449211520496032135395087860314666620910908168641473146297414769836013939478321845079110197463852584526682448834591867978623127623252341573260541182054531183395212155002996611940156518872745461543272964132430018998027889014415140419262009291020348451120286529647559864980506147070997231789573427202778139295530807757669209837760555401141373702327538891322510611805914311782204078026536462105578051997645991598999494323778336273653343908457212046589335855528130989605052873660321443790396861837176461078088512821233679649503582991638848527140247638797447360188193108969086211923918778132901518434292866117988377752082544707015249294711958759957883502632381535786841749357020572272380458129794732990654055649943745523480418804477541946320697701603098548293000058206164916749525882396832929254203341017242324782765200801114253476108685781170261954912202985778770060491391812505068477797039829526637754237396915815624944133532726802875212519879718087414913635862246756286119244906422341105878733885842595488069599804967843360708348680921101928281310840405684463774294632538127457139009554647470870730515435789943610421102220321541103716733205858385081650327189755566651274344804563417168742850421707334086299041522832697940467719773540495860322248734604331907811761969090722593795107817092775266408384044516965664469770739249892689564895754676196979182562993831024221560414515117561420660623148028703716136507391854848502455844921139480806475879433746119500621059829211428653100169358218547583111364712600135643599860371036295995067538877829180899066707956059792263267845826717778826219004071592497497432994922727446108091648432714174106765752147365753058263783126596775660320104910672884672864341747972608659665268672745869906398010283919018133782653729453182967505794598219890649270059462385062347704920927068441925882415244231248761154232233863602558084380402489195399584374478382556893637787806206931855859966973981394996020823724687065720778327457251500619320548303883089783587764633301426275722951527310341202786821979256076835616569978225740017255544029831835753809783593072030003682846862398544836790843796225302536289147122942641580258549391394090648347133406154284234346321076267343273563087949223472168839000554328877163534894406539803786740382537174455149958682470656204008561242198009680651261948478469892539973513513262361113403518254719101126684673126705158801385450261626827376410955043571191492004065823561844100717693676836043523483602129377646354875032038760355133430266977497684128059668977946711569403779098266509953357792034981063788349919458608380593327730050233529816924703287317034108132819834037568541569630686106350566751166270102579033793899608601785767361624080041348558098278649200290183424468425079920211813344003315028183902023901165315771865506185545968511408227990331168043186761429006732018416373522144474937122252618310531794771766395150762881653407131252305289437148666997803812760998380224850383106075578811006801306954346018552296670664308615074323085148074922552419207925199092857089894572525199476889986558453740040859748960129610042124040220439904439479027870580221057321776122696097163975391110229856329188098096850337099817284167040363302137176550616859631788230014754332700180608333050154732032304558368997782974281455177984852510628989250543529522409802657707780504956998935310636652415246875889588124921849520251811042515705669966011073363577325464164933754676301828296315899532804979389346393629853767561751711236885210798296556193568263613544703990356738275138605084796184576727951811818910290397617369439893838576414811658310777043231305228939411257869842084115297675577020487065837683720940024827806116323205679562075096781528232709360924821607500201740588458141136562019380806411284608672494540049843329036219588793355274677423410520748988682248917067861936557854716512888195468263972302190983025888025641352377233452240262333695873254506967992240287026025260866271159743746069283403339503100022596116725562258546119935799238737066006115220590952120386171785094079613901243018273955211875026155994363811469394853581308840293064056785348832731736043822378712448292523757455757692887388476550873570525540179835069537223843691727924425566402292842018025936844347791327584589730528389486502046492866474562968545533687406113249605709644050933915045096925298287213975034676332699283672471985972534507527065188552207395161368099314414688948212662978940613008204566416535809858338011025069879073257661418186142123347985870462414471989123681491532715792779880218427256689457695379105937607373840124664617773486528891583555524047479521430825254805609108602339003824468636477486499766740284229178034766246736954926777452656178308462008927350209841893574052163430673850108336449387087578137083089280699685631114816753263850447668919336348345342731062176955422910635955119895588340280371503207420216815000555568103789479387979877029434536634659568443481551416337896109675661238497050920045363781104753228268749014759652426030682255422758578108968869717704748680470194251190710911937223275573030445206123123168878345648979336148974326698062914881708986832276628337465447715526756598413046333652043753315996439906743911224459183830762366922943875110797874144138985024303321012465268610022474030110258212238250506334406778418579423296709764119786489518526709716194457635043063872951464595724324546839253110087530373683338257031376682117134809719530305816843912319252313577353175070640933498786729337020876045439648811323548363334630306491850696663137800384091536584541746051604082808202264747515880241380369929552784103275228625535148781367950176620184467456801516456053541741546388554183074581469236115048961000216038317198539711715443987573343003516212626153075318424686663279428683739754509938745592717000587003753608581021033151561088519744266351782239093915179881710327106469063849000494220956313086804270929128866465119370474362548836049094730531887796230841741397131325191838905220129440018184851169595674328733624115155060870817902066690263691836471032147498648601079019097855309938335721438014543770447734093743903811925592623371535112019705468559825408090004867925851433797293881180073463836390953463907991197241007951759629906989699206160528149079004339601729702913395337610486522836361287839248994474531677107915395859772443364560464482022459683955369254012616007654679087534678190251678261561485168360071639992261304310554659228685919032931898331047162745572010056056328447742684714860098280033940721329692725151320029638945040054255360354090252900491938452725438002762785287208548989161146174004959614572802451186848214710780154636392592872816663690519096786641111681337666949902010368210334218201779195966475356314554649485029317262460321754119053109989320198878416738330555426633931681683150893771094891040062102616192747714387272617194422670763529802675535929979803400844386655648928383049701337506414388235069203528314562252508535452033893464633466091272328800178460974725420184834183662441596637649901338114215876395472420002123670823219552490996199174196141911036654490666262238796236375451388473693188876003968811731001518956098758544105977005747029552349101866489226125238632153065927562551123043549285443815471560817007664559066598826275132389383561095192899477670712165811793703873941058322793211554051190465616709001772305771423657366827371786306885944939110277418032197363897515089460303800167374019060067576888808831775100478668736914809702365469666100078248664320934601273550171565550010593595972306545092304915569745997079517202116693636630295124294159474994694672803283850479287938325466788591524603297181682279226303363374702280394459250166217782965474187448392614553837168208017857849196250986940743655845623765433714504336968252633298580263249907036556383196820076296772706171001809754084121050043208713191316839708303951044371682756298691721294115340005576300579602810135929197927366069456021012749296680864516621131633428867476713830885242461012926732895218003897499467991143012270419962772947159269344126409741767546639151280550211648772400697753739807819618249898072703315745642717960901964139569460432027103920772064350217752979959774978686088840536530903737016372567222656798324465499152929055149540313219203696851767530675321487458997905824928638669976717405770288965994151129743340788027897040852961548881714672030235888291828605777260629362511827535975021413163988484945015726400223074037477627927073470358582071134523144627813578494195641518088568807592379223322512934509779990115524024785348429175447781914488591001046688936610611036610399294958279374664616252161289890855107158470799132554786399796531949864540433498665634383950925333769865174259666037623001374407602573976162341694801418102509062019106749179684138676399234942058374044227133942534163578007845080602167924965344121028418542029225638846136477823535186312277817699304857609667918636995018942608814898332735055095147929281445449378824231370751700926156356502859072024714093430310141717890898210464003858425970304614587981112769234651383017423472245680981664199470360684991672338397374994633830597659333456651440704909507379720395037074370568659244181661571748654371764120764070942012428262365917889181154730093988774162001565219534834231528640114912787035995105554085439331265511062736605706294667960337720558982182601086324012809659526959364588357265022634570553153029234468647406602625453291063660179514468352244021129847558185835733540833976250488996101320716556146112995182983349612401238615682352126962014562506068093493079546210204027827829235972646292277254711117092308021134908466307022081128421630677986377324646054157449122137367056079035760040893479672563232418025786804760460409388957600979229683200722698409996097217469524149108135907835225980402038586397302415388926078115353453179646307966505128870401588618799421768130255366880304783183438714924958004715127309083368069006563420959929110258512701347677816327738213793864125059579989009611219420277009665005154199056351589440339120596342722989192724961076667757214921843077981661085827188345676443026022649568256620810486868413078600771141565311883284612232141684340291039525225799571698206489187568197082944686036275243833520571264460703083550577501110694231328413508691614942824329812106553485355191393568975496938921259715779918343218767561927242399142977728698199072615350481129909884330325148289459436648343645588240858212694897298533980496150939696934642370616039442403594145179905274868418389701980482033979095798788322046318685168713675578070352562221859969303213108912122527665909145351839343359216328007464291311900513017465682516339194171709577637979580264933762137293254375717598761887044655865191655843956410199067888399504722045720105658239780748090160100505166155099664017529482904812344491465535208938177905461663925956448911468289729655360245423622373875800072729827001109482402782751425938384877104080476809110276144514902013831710978519045807637660905147865012670796927035028290725992688195416539591767618825996512090867531214438590081878014488808453343916120840505397413971299480929981568277636398635917701956959751713556523655952724878603528048130582490674379283879774909271410735838366878372850697853808839153232801529135545234978861203456431216240906243201389303560784050877820573456608714669585768185632573006582879238495302398547151791268239107891359195504647542990446413615301714247145139740365598780921955248919812207954734741188701091084267548494710232840068088643420409264489880555409691058253839052677429753701329745101513096750585664002821311877877509451151263678991511239830918656925513488611125679133149177488181500332047409810738499056179473737026367362508312624344516595298954570041902073035618755251189805665837798117007224437491786621227632713572494396397312898007053180839819971167701745002672703021644774587641163420056904540761266808854691007418739708233212461247045733159249157401409041460295293716141277081150251321794075148338144283396258219721829348617568369173856655009507782301880569717486793083633390680344434567107152315215134474634185000376623713442288044598127004244104784980036679173022037729945941696244528696290402558024203735517733784802517744415936368175643702734730455909026713285587543004018326815716263756197765597630252097001961166277927869696097288116821938544482607625449416853899196673922497288554284894300151675437784013263308350891457985599282480516630298532941614591207777144489133923461797386669705719326295638675394002640328443373846929807507145897033636391409493560456565666381738182587442839529695407241801451902168317832068117353997825260321555684528777764370841111914861695798332080067278712435537449128911033707832778427278376418583214736221196758791760262525294396374024056172050812905741237545700469320377610936171149777141671037752436745863981024173386154328349155894635221781797529663283713669352702059774022009423164058684796625007688586917317859320545277979579036714502642851447045511776814028703339205822181526905285023478567173504824744799244484824952245205002304929426340829829708515123712271080478873867489737821524737935084599640594052874314180252537529040027684213784550643273726314771314623953725022444118911169983228488166194969095066785447996863462587604488225379773972100750107024790175832818079450345933010407480998754410219495180073859769874724822259699315562745386241261733726751892061461292943635977172531850360057693648080463185940698623362164227746799650097049360245729482121578587821199086488926764826329881729555434374973642945045812049501468148014203187188006630501094780911993305774362606734223340813954700424704089568794432825751040010586070874599096688419513657063700627583801001861452910642683023621913073659820533587304005992063229374615458238235759521298713032579429560314523477609728045361356763472878980390693265771390709717606352414264384831440434753784612294983935164664530377781716098899975376377658223390599575807265969025283511631999646633698679323739073078843935793668830605865327897782852139560402473333366227780855993026440969361174622569176324964353503822283324249941354394195827521350059451747927553202980734490848166751628232739628912414438561842282982514080200120305187175703148173430997587594286361752922675404004928984708844814670736598210060561025652680745277021475299113159315297907658550249829693850875000924773042705532359287382831476278493725545766340157082196903569103604717171547025281990625712520158224561364326039456983857064136618879261283249934203494309079075855215629628418616646824471188209596819312880126208443041975333051243973246131156360455160335693419399788530089729646815569126899652722543697127719824163161723861513365900329019297725774876353286763038523287196564008775529597190780313653388595101499823694129087822150842028886793429917832094563549566289258298086432303198508522843299182416138236047582712161426631172128066091920248988482105157422289739024217818392550447468377707278577610053581738866146977428726913468444440276076021520623782973576512429470751326376417846635002684410857900708620950830967985639680581055657543911423143275025070577692380190977442460666115135702924874487815385733482604114135912142948971416404809726416794799170270423492384167342100172455386526221871362086335585117141237883692254414511722305647030405341134828505684831067503934028095858514210300178682111462775587302850768512591263386177687014767396852563078404068567014771276570277309550076616918327798993153612469982651393917481993326557814745191265278616804605775140438268197113678708657102932852722056054790939854996675257852788286413910304848912638140073855501612312752691791741917523338478307618178659710538428635709095361039292865483517730186015557361058704492918625246906068014626150818957400685034909227588941890033851254434268473073327414839894201117381725415387224506749709706342814879741180916280601653043328673941296767328838235008855109535973829950247387451858335098327946423416720089230843591499773408265204286183765586600697557477019668770631230254093969972877546051506224077287152387274200301426101865661736872824481444343912526608228827300479081591582650397617946902477628499056806122398402960170248548989890785596017896397200846861617846796228070902863526195916432034043336258174303633521428197390103540041078671762285828125590582173378433702916459471766024950522648212647326021591802841607284546645559524044230796830053853686696762405824226229747709162185904271985138231981774457386919275583999345879129118032540357426823262631124272637621610755694087337093338058403081822718232839502917294544734129439071181365011746035104627567556797275087864396905697124570678713677275614523648775803694560984656197320924937459591306515669523423365459731822393307827731924194294026578424610688590966202246785298451000895232873269424638390155066590692964050814831940442698562526312715815366472093394592486278108618128935754187602590533006483248885184098611477062751210686327078549627373417024923005878906104117626510926647901554709843411435852924411843086124068957753544857911483359756151405604786183963402548296698108716983185522204985120972614138151602191580321585852866077622442152956516137913920290873147317868124661435681023567273168190365221503688589816315997593456354943355107915780108203776030422300667528633754519615693281688463409997799923170510787894916375323355130247154625554846434588916092093459027064519896890341737950539768236821174966123541602405049223464950803000964476657294507704873966605212609150601146884783363520886204071895218909926628166754793674607503600737436418769064671602999659913887191997686710051038357849623102520038377670862355195275929555954073264936639808144959528678724599623006356341778864671044151380432385218436380638803349540352465644301175428825651571600619569630339360232174926809949356949470908830372566737949384311748234927802923423978770597338681801061437217728143592395124271794918355947751836947965069268705581462669461812385984443930086411954623138481780370856636550601525516766463538210020114581750190492697249417103725543639547922306418505998686405500408629942701163644415517858346019382010349320969759979336456888569954454021142508053221750588202488005354498539617069973995655308017910617451815923718216979237090162086556093061338144365750353754245148119382319208091430710160676305822039046744496566767366701766389004037128181077964480069449515206590231713034675420737134074392001848287239291100802034689164039461578108690381164815696077607722790043995142668403325774963857824992922717261791965042482763725752347376745489396739022446157619383849465563303257817947431374336458330617041832222777809199261140343919946458409549386863314852111289245014374806905192552314475032646679677767462926554277208277090396369097392389104037044542654359119351051750137170385689664618956116267473343492850932878078733716107941958330129042309442934130048607261497535776092288368119012076047471533085502099537029961160106480974796693525766246260705782372335796147122600231814431810345813356838262574251642484128524809835169559747405835783599833703689984832696217713728739945386881139018141760651459157541628196644873519766429889277342393778796037533449204759220813344978213007057014896517899360007505672696479954129184067823271801467188250955945356580135405264266254370219386713855160970869832299346113604136596009486731350066734675917712307775107650655035036139069552789798285524161554036438529625980137895491281947579870742612273741754536292931153267248561293428563329606268234258958838151837820937700176068917129229172461048045868774990546276701247096254896026369348201246303885200409353407686286633115925685477565277117241251535459183190740592394835837554321910169082030539796073992275018116502662822724862264901125227788577448528220353365654417821722450161181430389017797096523541706803901575928960357163141892316203629989714421529480950735982902634212150754087546735675732050463294471012269544231385835308567866950513333330629367321654040586605729058708240509400888520031162195751676114143314198030316724268998510160696139635986591537115321408660078362552963905084257150514939970831592548229223449943069131935201676689988706318701019468694487316566891359424760850167527193254063630290626124451832417914726828839646073942008565916682495625364781310749270101700993180787278144797135281113897820580383024322928884226991613349032579589406614470874306438094825450363932153949635309657102650421905725226582749957794143998560230120598581389431925527491593550464360939808634999826358470070875729092799115548804798952050482868421646108722250256263564872371881917840787898780349484135028792367514540696569419231765122462969656180963776482339486616799416122963552847103086683847726520984432482353019694065999528580278866196442235273983594591005470879300803594156331095449648290248719411515245514996759632410843315032869566674415658094821021359916696499413826653063657234569696131906417940313823307651922432668739752234927245501680730654918431049985443415395577109878230588603648322430814002145674642647787659218309859179811420776220856835237254658959168794612827112101149967682957081536695589479774116517542088582374404860613248429443213836010064961955518041314631547556927286369093963182847430230115063682547060492637656333344259139767332157135014189887347800499018479848282174723926544104375761932865020720309840550465086366747125070338121909090940213869135828141960724540917205994420118537769204259885255366514082027968851142859610086304351104055918358587316289323137219531883545039255425230146754865507806080758256574607551544993882122706408772195536377006438619503161307992574761012020779733198157706709706664373013222428099813148159146874385845398260858505051864413458550108196326188513193657521710035306384812589290171527291643468788164622949613100369086016591455090636742347496579311875949303122451826664845258571268156005988366370748099113053018555709841671327168673198703337951656932566410782367942467416624347032797384158315899255862517312704737781019028537234826420178040453771042051216206656243304067045017286096360146157299637790360495062793535348177719238643449790762957311983464652616342495134295878496525779324659159629232355587749046405100499944659577721261423698608539425297265629875582158893909596774375529414284432522633258949600946168592923897827098924206724540931316735824159963235380290207151958780601672430797483708202973676797193247577190039553715840604250622580861148931634105729561219091807023098473014947122910971614860950417978564709250681991973415523281318166191080639149179504475750501984412684113545947708170636741754098660007899573205190951897591486777600238776814194840080979781008991514267169921008370637837833172199932442939547705879233143067981272359432764303469218163751872022205907334084566587370249649811688477835233941641195388176091252409680438175480360873140787342414786439792718650288690673389797904219422685514878842246177268324353939742333348102072566363816253396115510909381981730046309437536774520015257256924244039585880090427513698521788492651488898914225633714180168051326294899846347312457092931168550951325534458842704076950348496171853568629868948126698387944047753400801594148207015067010725380030534392827305726488745087551027175719552966390487214243720757732683361014528140465641421473461306198719061241029267636514861794863915199361282275848143901421342844207310675926933839896923761746110768887834256052116105919766877403050218105429698829306845914310622835152142738030387433388003522032978733891920791093875557128974732928916764236269598025354838254404673179002360990797105103424867519655118573122458437703956587570021052973811261733443486063812208368450830431456020742962920870058837260461872304522797783278838071281225442925613889640169223312645923626531715426183050681179328488041860500638198975977667039764301460063402114003071697105946200171144404933855466749421634780509489019410239342246539088266753043903295592505130837142130833793766162541261667861060971894089750134449703546447107575423754836630095494065849606478362528734192717321184886279052706127847347671588332848920787993446253973195283847903221231312341659748596705150518987178389081041792452554668383521358427639451051433104405872946410274684604815111387263177896725636341825662326844889953680596612089293249912531818713871536865587248751748780359594439032781118478728286735725858865758041666150999127642963167312719500827536822161587354462021403060885043892829583139659682579544138099582846241183535802449018697805101171219722938127613430465626524074479673383700629708286810706168375040853647831236869914360354894467465155682973321087997074943664431261270903139511627246292238213278329321250467804966245443544847043632566762210401960293632461437142339131475473310907283142376148388572579985956531305272852906937538334725859371299477180010112692681659735923763369464312934209335604214014362253288649430541648181654727381910863218339685980944110326633318325887436862195942529453117755363164917566050684830998675636768112504375523097178384281393367838953985218019116332746145738537550475553850294967772713406103880845512358449219836053804024953085957853175706659589060475755227629614613784563354760463094196952339815294042950758777839875812089803246849985302516040528657415679207689441614583823198357753547489111221105507050059431788025289467736695337336718860907271422290963273341891206271215741561576819163337946429347833204395437185566242319814360089294308047995843373176322728705778707924305506070224476906199875932046587223721423020959493722945191071574699732187803328557399661197102494892699361083877530230485493275257301401936447241024405859181115610160577513661159193571812099540361676381431056235319950850397195531163883152443791190239521967954138986837147858091715780872826706797794561298431909057695764239845880793694064252142291219700748972757296995999346984849882050192017600705696992895138228374723009037213264051527943390813644620676780851997071629868396062266794572859020415540260284592867141466891597976947763923104427076748854385443066207503808197175795435416993058301684370163888972192804997226360769259796842675205522395299182519295961129278306207686045149132435700625772133399708483515884276121738846534408573376111506921976522464890436469127212090766278658002873484543568066390578908856429583834293768833058580628673837722121776523025773052079884375603668620819807920079554399843242629553817561931969749278230381909968453187776778981356051093152319241401007315165017448554073545381049997652159178130996900099925924641495666278393444780531241934340407696311933289916179082151242861904687748941775359413637171767090832008359346507232305852820610640966279611623913602378735426457883780192760918399515423528056383052074122329873998290088818082360447510172062600557941635616736299562077654104766645792291168108160142346270534087198547944324931059611981833282162019818480424485960554542744376204458097656302684116915321715984999110043680618367590514484390317057356371039299604775509449569906754694848411417481500543589281357572157795961805921085357449405178349266861550818676422251659216683109219892272361334530778654456137993172916944571639209007342581194916319654140787395572493312332517832710099403562621978427853049672348409190556364920239471703541277757763544659826594631250848739574587863385108268157091732013379986111913470539123733392853283627067163148674840977529668188100499120091151781244403603860401835688548359169396950493299407625689267505520898464360090881668073060558584086958281681038621565028148529967570994307860429067158483643125293400437526666197255719969257559944692691469561739859662171112270142155733840613391450926429154577289507187219116595902672348773767083567874114140737421978178303566538218554498308581537739629881700011778889867781669157618380129255084599421953004808822391054415300100710081606945341899297545437055095851259969507677813206709412481603935108986181098367451230636139014978852668182535990835825762123054057637290777188593352254783500555902490592203138356042868391493746052453849383868893998591810149052612400509734239032776312927213420251367922821818065362534820000157831171176045295484542746792270838556904717582691712175170867562483328080669602213098181855516344988787431366780536025163283979216735184676092318107209341128015011777090462753424951742316341821861426902160643178704061392213501639762321942577612533465441272876947572536800156707704623996833090388907598559739802576701794005575700029043646796827902764852132829126271135700300428167512612362343359710865409122218073232920334114818567102461231807334802446463121568904723409720106033634702126120603050407332217986559547626467286162277483296202750095130718967925271336448110148164322028500383222376575802789287000647508376162877121489102801573684114131444782389613091893751258002255296242225619795429262597907716232870199085038402741438662979654486912634835991550770688589584590699427426903625525802554301556389713494084791957984195390030051188391523022165484174702242580761727546107506575725696835583831339311543418510448023567254647450460584763488908440061832285484132694950488509748307257430484506178083346580962226420914160635681811819042092398774011807744334589460623804421015935272720402743720530387443759399426525205065973421435086005272439263136889226242895359620728066451560570928025032453643010798176919606135123764849533604078949163874099649063194932583908288971364047491885352088281382661945027295798914388771507507772428971898709931152889333400185312855940155971155199496461610945384527754702906185871950130829436906435396362436782502834614265792905277309398384868775560127842507581711494206487998906942871553142127531729171839306497170374809016811716529876187102141766190670796116708813166225881066907050322968513729714420495561410806069816093836220947226976997790475444363456588710540790585346315481860334843145746694834477761397060593161186365279553719393559323937893839771946805008613499396681832730607109271764652357187276501780887619200356357889004825183317900796217724299483331154135305967301904672722053881435324676174245773686747274602156496939271680505470713705056680094466892361662664945478962873468843753865117700822762951610428660734082793471382870214781133519565286602601476967337947630275502215821437821353908215854324112402896341555752757378330819996530905746317678381288849076567977632446756241813741011981464022711931239392811186795130097083572302856587439900022283110449755355808403796396363234543558773709544872843576176393435543146837557880689850065685248833877872191189027870879220171717336436110149452098428816379375315669985086620738854146688064675552173148739415132559729213937177695444346759265504094786660590532409889303135620506221335130223727219376919381965788881417205304452943640836823349458528139032108998609418680439124191279052469104378948829399781944832745346782841365734140922097166389843235677032850018630881144223489585735642500857025843765269340764443604306924821037778257755128898174791055472381566750285786132344650595881054983163716152682014538876080841908588508464972730114868399066677705319232330486532726459525760885395126916261386930054502960313985795206183463203003770773965285493042575418136892892721900679332032156222139553430327643842428301669973403106393588928747784243869141211697801188076002631641612584667334441197887737405486997693519660996140374996732616236765482153408945788032073576274076861488627230119474985634700199266912345338317239434736771089479925993088471422802510469248739350710232287703639113857500008558374674637486735949573370709568018071867601585100041988710627950419137363445452409778661132389087272511686938000888244677242961825414583439246001711967552471469102664097825445966258561900523524209154105002077810190582412673156905743886206816371556140656846081894424595448599008369484677564126699049713012942618672681430673318427361317358429071540104193706143277770922493842947562683528604036737490324907938888047553891949065647686006129379528562206949855307785125076433847612628831323129737331517778209332786659817868391281205569721208387359960820701474097112224722464512208140015124773868996373940029232198302089392578543419868306219670078583637021626072774574365860411586256505800517528353167520598364189427918795593487718773195530489964532209027806581296972744042117274113853157787532827350934775449588601957016798845771518390908783475958333577308891380093330813710117845046962307924273215588286019718327963092835166794850305408031945545074443678559732858265810470280615085064063940382283637159535998965879301137517940321403333846554361220991161454395261162066917169468254958757533691527309593943025434584834906184068745868720182718394326381220714581750731524382800111614433585078404410914677758246837056735666568805223863062602337286456589550485369765642210002015608075043140760805260801670028750171728714395455858332433892984852234935361136768658396182352378277444049985849109258964024286114046502385567070879609849232995776541658394963108647974883525107120722338697888438790123428192322256304668212628094272872184918217522852455277321891387846129884238785699437288685995200199593215635580881325654449727002265998966844352721156165192298320811941981899503648836975739856924555807925515647860685097988145825027825192204321442171792894782742523482304220674172469631195055355138425987350653946671266693273982633344066787192826972532554385120079267777280500600981279641838857572617791182088671270265012201673752401811294399987037260308537409500582971930513790328798946580027510543004850393216145760333468032136365497021059790877991278526127712010745362254210745826587997058160935417901027912785782557207338832769643679800797605326900698151382441966453908799296143078499177865358826448880171750958514883486982435803834408212663429394668668984412014592148208867075575780161327406026824142309385728738631082169466941374982728150567702325544690713727967286938552556367328688302935018622581125453579131045624398090560450102090122212883436314809533956808731594713199176193122732766697541039914777955760471146559016774270338081803547160924279991835671939873935799717804099498667668038018147382474866076397117187418709868371082277034667898944165369239304966331438768451932001916363290299669093640765059175163064374457809135867506191633579685602397497927328834633147198061963441304304904325394657719439705064348749286838297244672410663767338687057730554088303401886225044367789704005177327808767612097058591871137341249106215467179367335547585678067106877800581028450898442083822601867902639665379418524639484553678990366983727319909087033911681457434302261484292003237298807316188406760263915540424423685854592396735258321140801167459643805871566804355967548812030800474278592224268957449558989516929369936671358242724132969401281294461900593603065634986890232649923268775688781593617548074662788975744773680053411641250122289671156059641406140538624809615269527345528937429992290689688288438688902763440558667034683896837303284104449869344227321241744662038639506530211974900773989103202979365916496255414990139602882134696351917626301360838680772563193121319019414719457833388668204205290758604209546810728583138952882450238740340666118423834567620794537853192799841185458553724304019217152119839240372015455391907391965661411145266136137790394426034704519889431820571004730378782697447174218183344398764243869135983702433726643559916083507086739517722787861709970393147000288606669530335102650877816055816753510584968590917423093616977923397211301344858738205688978604760168233418829670114132948986405454172512173214307494288393429009928355369021802264441197594158997829759912297156073493592680199685960179039102382068531589566746111945574257049991064983519207588098627713105834760697895321429622824297350034595763412630008142412160543597107184723671822315181197543613148269302040762000723982000801492701452407841433874287431277621413756928336087900779756689310665623848090638026711779329152111191843167747103443961043971716342297032902656005151890625378454813737487514505690991667681482774265561460920652744495490424531542179811108805740772754945989227091077053995309657277898577099361449765752596345971715255443769087823820994228367474874267012257116973070367123919516847141578572718675252594107325980305312388089805972208984094709491707305461516631349497460185802212444122459682581741653188226691284164049779364122134841280284799872503100425733601953815938721212198557845075496114717989240229002672216774673091044915190424212112297498281636739454130391459964037264645565206879423330122920559548794273219205766967860383808990897614543829094673767331861610628714645829721396745300635363524608844152274371123220259754657024245557325910973076904655492657596567346267790379913243383011011742352632163592113122878357583690301592561752282546440351213238542875458758519782319413518070084272956927752925662306924211219529189114496462245044741509812162902881456097807827974977231839373628575593006869391051784894070070241260496538283628338103253141529005991818006252775283670236928401175397552016841203093489823228326034909664817556097065842575922540248629272615885193684637348874952728520665120230371119096674568335929483266381923866879823471120522165766596730887612619943258940006838743894591986221544560297405337825487205606154567896945447548833054074086651281171266903193899527753448765625732294801282690646513559113280185803612383180989112262127543104761214735757735290408109619111606650969471860277022203233528845446399654860309046465905607041428347563908086726048648478737690734998019233252300384819828351130071891568991333953286221979420556706884409628807049099659930962350328722013577742726104584804288376286392586713156323950436168742786616016665125719782991096876497224791962838445339918449663206207259785485883454298183525988708484404734555275095433201345206376763017152312931413522941149487952680117676656936832150256213084237341233693846099877219673541945850063043450895986290594439295882853877435204483079548888956124537382529470994260024387546400425944285872067943040932565975555820884406443473946919799437605489563374800035978239044953101318937648922204470752281701490004767064961412607074052734230551476643014899936938155360626720026439596566968077066001553583117274826291118340618707432788560683395387272875987720931557276921395324787254000380701788194615253093831637475585621552434081242807771445082901209281260095092608719050848045907723156655089924666287141063480471204448780063064958125668353986597979520146130195561419929039870543740347116939496721655560913485956321357281025473308323833547239560428123168843226880319005031793780647242491566195263525307723228898576071418908000911444963240883713182648670468541690925840955660240677577522671525818674053714498774062549416297988268528097531441691304219516687037175424766009196042081410373986710883299138128236973998067976599054573998149723070652269241581778185800773623725235484126342575967462496211905318927233006191816207759183068334355633507878859553591795750615308630866181214225401487898414310643837705987302334291052343769026591189155629571549896460340844653597762666415623504130325054561513744940780528208368495431167117657885160006507380911669372646300917824234500148579553684771083498716732221282787676975817923730051842226925724875794267913037313764534612289136902609213505435059187401845054356472563413270786373449635041980927895154951440993927559510618291263200858195651332083071925811018258194400763652674198033657206461008548532040991700263361454251698324493104146391975357592189735382110524205248471605069785761395246465539553136312096863425943235502135695351771693303470234742837764720105524806756754049170131263494249664740230952534405533578484073103397420770624861176482066719021652894878035841257032931113991834313533447548045410404211568375529463948577106401156952942919287576127289925920150673492760750928605076029720822692665915246928535254254638620568053530361578328423406766084778555547857797759255383281934795561915253295063599241126832428065043717870793639777924688187604833217352178076373002897236107464959436431130127905684084953369969261353043493981672621884816946971380193550153486076462562046416264220439530351619312886980087288416619395237125155644571394997283418529067146976164890373937790848536356909351360772313773159302345990228437145004475507744712687401157792685651474440687601079969204890485005352043131277458487453459780256537236707002486205281159971312870610326732645064553329457475357433071772706019446594713823953304955309639426511206550432825393768706702146906514243200299119313910214884006925572086615426632929820025692087208405187806988309330082736986733226284561780030369877964019869544975303040644501990346097989640581058696801953039173007406591758370979217226026044721245395778769856859419660510289495517412257453378641255989568580617758658278030463210125883427469637436264276322413681368535320736289276361898044409372815306825299233388461141006040216397490570718752942005421391874574521932758053964117770191353028741297754351642357091749464690359759899711877592927646001779019852759373685128464109856176861311951915796865441832274763704556822483502450290280366583130255781216134283531991920510913016905897310961865103546668150315946739628928717647999473628692971769714925573995917232752967112590092753847854002768812916183053083587672898650405696604399805854027353066474820244259220603531388171625701140415785157982752435170541607082439765746347756053168603762372760974719004586033750277241759355460811654503690505615520936289426663254946369674513680551585342100085092661231116164069843881587370226114188627474997115613899170981144900787889088387110057280774293969122391803376847888939177185111232601578220785946362372283956522396523601957918596975157338506759253061956394785062004330340117846159150710648363642237019363803706593863759583891898463882841589746008067681238300962598789472410807832918053641872084372883298964684696171479354262743234744018783431114923810820742134119937366950810463947236385940363487252878293377111659384923148612037066849687853608937371704942510322042136694807626316863908428449330307580850509088170189436658626165756702083473814780133829673263270320352884979085818265561182517034400053813192961143814109549575937746975206269504042223524750308957199824091490123689116927219128110250951669467562892111444681578122244495107287714532346008809816685275671588129373430788419565300901437331994285358861742120883223590478207763248983546306121622749641384247482808516408446694478371601319725031451521693025917810080626366103770221213004658043704370755694060810036914115419527959922064077847221744916525226776933353489341798792686468874182730741802217808864691430589298200147047390111969314069866607920799454262735240642318813820231827913789121043289051975154274590457949921534373264565998324573265959008878883283026742630860594653732636702174036144481671313872174469854807741074421914310550951209943069645582424658860021906599000617653722981689833535424220561701307630473950938631636766519884192488655768001383961603820037718027285802077778947912330186900609904111556628920697602891862744200049797226031479986279139957726501848209639715281566328543026020479723605135443791174938562857979084869233735142693456644113377580473797325029314065908230390209584574658613464127818621292901121138102646334264461166438675385752280174077858132863482627609177194494071948597936349602048266905542731251071898228963326034540543635324806584773016391193897347578036182222840556390026813790316188688609360009660429385477130097832398910453600522689387113711446738993476650300653549287596267241543156510753896220632706960361448069531582018984749900993299627833988890085870843603705678769513785785282092760835788102712136531549221833401185115165974513110917627711485439384677439140637095701195668376618189636342857285290548751764444571316586593767959411349182094105734605392409348271375763883710589035171212736070087869723694056501721710173063366802107325647280306615551419280064301991754842827702197466907002758876613778257004540089979214242536628216607959170815605408251390264308108454465395049752423533762848276174804531402450424604284912118659882138442242233794890841961253694820822805424745926156146888714179153937799224626027520753266458154954005706008413569063279990012046096991665627653014010866450417680129782844053435144054099985959904527151438344440899611622250561032761892815225660448768737584503110867854041758004061707640337698446947231135362219795675197053944661492821890990092661009969146377369107551560542654136852743273775828636471090590700385110402731537178255775608085358783590856783019628617024141825461116427332862300739192880167913326794026103235668932928513552099786618374289880881321144764254943406396298293505089089075398895140255533051074168966272150385169792452422041728756479533555528509871418704841704573511582504922515133343805028174669838268198815064903893651172895005322638988952393713441903675416641275383241370585738677451494571836618207901258720559928666892444122525543011772818587041063830842522419054796777095965041481188099387010613783305059643854415802677938440724077217915413430024526994106045873664971946135614024608452769953549695282875305985188696200203520960370700001432558638418741250172505758598959627867018626202291300249885790318327184909428797904629428416705413797510368954421310920028454861327347520630596292199882030788379527368102389826757542917297458822426999398899176205316564472490670348977574514550520005773298682296661113528423019720202009031970690741417700125580349264184406704134768509112379346434512871180606726131984202814243002457505169734179206702477352300572573420732625646938361300609991921741343092359743690001698859790680336217496623274661437421359146044791410024361149598974784446296701347981392990970644667623958564741043642920365559738164699184799841200364015743201178005663289253210619480793407246001101646551709316546078162699354004339102663327320754720247855643671984433666887186546902142282447976317015873576277196061914451575369965714077581554002965746114444904810765119838805892573789446231715651717674120418989763323588580272091772414983692974274376054741769822065988084510295176763271781348382766415688818071778950999878632780668282050034727943088739569643236198960271379157765716398429235191719469453517851200053635911871758823800397270423551102713950782282825585626557369544661497362342765270804440323492351874498555826822069256082564689406048590956802063820378128095775966002943285015970683074069927068287154353632299011180502466584375230846636716636160665564691258808467940813535720310444582566655061303471968613250752461688868188422407306203690311506110567333681216075252321635905782148091716706520484561086913076954962924770029946916060027660014050853563664617138059397351351626119907852936598805832458251605483283440307032277459619769823513856350787855885627444628230271266274048001285596052219141475543827692117684050887060390827195865549020341142201786579355165028123616466108505717432408237668631164057792736392684307258210455255864136329665306999223001358309772075530294881478557052412207758152771518528500375020573454729166629507538088990831427559719345388940952298413607637391768916920927072562843857641768903757267874949181989358669149516262806213442087171682548692027767291644033387072418478870932614198330789051062964716150891922527672955488336597970303390712857583671530223060449733036080228290874712303967218748940035454842502891900851278758476764460135639656410678562340526309607592126787671998029520913042575345958112396265564121843687666702610638619140815712181224021683643125569980727209742725109450069020374295994474311093377572692865214362640104191439783759874191004835496559808464169948872547101980841320464912222786419898982049195331812912048623602156174299175581517297444683227299575920605286053090585448568147410045623448341313764977842617682215590304153688511680864272993487783440796650889675054584303397666782787623037925093921637534267600254696803578584804598695805045027795878558863254149990105476570233311830811673315218175172856926962366231673095382353910336121916055166276496419605597079084987651234549219005131536374752885995818387630592801039633918339289908542162034286515353090760696606681522319341371569316395247538620075165560883435661128534722249337785702826818164278888298046969236349878508695061072108083241120172018481624115163792088856188912484954314161192385978350834696504811802717896908442236471903660867328049520041908718326423563768461829565915926709058737736851742558899044478369341553660270439949008527735821450766328719913800741236298560852414434285972644978973065947512523399458049195095952392564676028798495713976492143770566775256184231193438539726281865332563032816274128131385404254077596733678047448109638842020529916828515691634675699505410025458649618367198192674571344103335374456530058247690540131833183560350847106483609573462100405207076303234370698858438358887996103455746197397859950374634257832753168457428915185693978745036522024237511463416383546375040980388372938081939648585992648456824249771131653765192868503580356312580581672561864869470578698777676782112539957016229164179076104188662525361605978000698039101037265092340058544295228518217207632454060197412757392217424014771380143614435639822982054649094772067141726967821331890169190163985921413683995920682713307507364119885463408054185815368032425447331369711294340488928543722573354030069399034993005726507894542617338853007835284365192002034769786106475990813583614111108925485410152901517973264640201043170062337713040601281540728983484455178513767198424860360247709359457522190853613180203388416740163261220565543592254462138361278522854278490256364114909200673712026210519985261552037195495572698521317232765415394044553004702055099835737176784258152607423781523872791267949512405912352340660281249487972030838105955171999272536344025613955644383714500392040892978510499734291299982167456601800540731535133508389284222258162526514296919237317759220038702498293680420385076582455537156111195680051954224130340633868686470270073514174534253376856167987027026321116723656478627691459568019416786722930637264117377021519978539090200155705774686637168271198267379823661607157934885213628566177480372500204179780354930671979015827159809566563780665633279031948373686302008777515868613344427690058228202412317113582919304934280052939130668840323300668612617088174122610087437560354568320381333213205016712512310707544475459454211035821216434074342245263421606567842630422322945626202091311765729854498872541703061631959335544598364008567712444341278829986125838851539033815294725333611657430036540593759208083425301477713533757127541633262366310979460016944420684269608674104640094377406791653053127256149134409731770248085299612061134285040313838226878467089596856522425311111012052160702820951032020680421953499381728740615314418442215534204542225511238102821070640108784611282909917550375880563734867599275982443466165018534745991309047132417695797475531178226819504404866729262212225554985121913535366547163224145875599642392803369709491373989894772749198567108869589806343582384839142772464241646931510554508669411091426524910400745021402980779842607317921159042238429280015415135663982965031038988665312980342920132100165634068708327484299872443117886368838467736367321586830786548473939967398707679280616389194674749281771878253417427555054442175102765373836034681503172147510341329323236178330577975777444318766209629559296947262133242246045116555528991157359771663155759914681318722304320207457418953408888600766257448878272899488399702828356842278363649919764342430082163351964059021087104969004644680939654453265264562676102542918487060732428273155929149101378323528299257824564516892886687768715305228493809723087110600381812822954723039585899218572809590075049799697402041727508417081978295392296482519609630771608415559322114848245339720331690107950573575108811254105443070223768826985897917899578513517251692299402437944265680034465410438370034498148371758076299384452804863215785229462636490675392078207098647829669511063467857025672359201119180134676344929122473627995132146347291859688935753014768152979286798789687557127261401302242068087666444805397420034636868764034361749901222627165360573503762037736581673366460052313957147288290746115235376076838679546559333136391596618567451358728079386476383962506480074360372725227331858219641869565879872122769227692711439232814978069172111935601248726831446366470590973161998453861584779388621932342985968883463570325766078743878952400787813874598479976906395972567313517093710274204815386686606775104457251964301167299060589930409641929049321177417514293594787863057296593193369737158150448485438516080932813545778061877026828641925313890962555019467894720075157902190459234933719604293647323891119609148163284897374949852803326466410948026284858208856024979200585898657988657414944781366941372240138438401664544813224455995007120522454513282752509171781551805085345559137593814583036481560053038229352642725065221009463136320280939726363239377501961102659897644222675910941880428909823645947610241104664126388450335137222390055669658326098480949768931120982890934586146263859229573636910855426470008639018895565257871462514227784271502271576120239719326486054301747579488113802481364744782011061460952485104947294058443731423181734302633249499133467250480820992020540189923161573313852229568741306337692422589309586106180969692508556213527548347249717093829215091132289877600925532960864859181816217339905074390852191279382815524352597004043292207769950514171869304184077438914333380831932020013750149000356140252629011807539224249459610030366754948332150679237007274634958884182965081697776829479987363806784704761492430501024354541014258749614849680913782418669540984999126445544146555378148403897065428362739235133733976163719076018659877256753906258824261812551989974373796407614102111318392843024884214436032497954780773480980734254270843059581204184470889910495328956141154633824280820910946806747481698584441875037292895178921797291352416220196883882891331135504564872625683637994673134162577561942293784612155947591084443280024729269538251125675933649214326030920038318979266195337133803553610625880327744768886439714625432856276117953310647684937498082406581004802607186311482004066623757054799276730685583430763658629907660277174968347049838160924504711577813657774070181768398126906433960079737956029007932966944821332255985314882380353138984252623642486304007030873240593889643908202679491108637669007488705948163779717764552440839888988090941808633451068929928825623996233010970001871891212211515912434824308944774552816168635297745512125580226108879405749266594725218436052943542363207395253789711274031132325801296207362663115927328404325585932029856591882381168129806573780278262117962598031993168128888099441928344521390339828096356130564698156133119298221369268934813860617936086035494809842729700875187859823921693082765971613444659864703247741058435639059328565350428785504510643866487105066175314517397240261572220435164915596531208832159036762630083775992172312302812319922709427958632542781283228142780332252084152396000376501859117047806295855672409913273590858103495438987565591445263640187405330489588485586252977518487809040850565195975666371814726922361904017154410237613785087094293201246914605401302798689884483643947251919745973716088360789135701934560665365507169274085886823148477458456528833866326154071420618711578228782374782892449583718278615207637513802271854570073196701094429220118299547562921714692913727115065045571851599795152565419801726988115586732637429261167272957559186105477190603988456773653352085515685486304004329941296066149541380714135030144864731733249546682499215423647215707277631327889507853448026741807632569554117553557263683161283564280387628863488482976088909169273995101139345410987474966077259326730027451896789462709911876566281217601797088110207924971256533582702967786755873471616489888289822094194385299544569403704383997579043911316162024328844037311829931929666336594522844365328687079543470406219696921204651044473488190163294553427883662884170753850944663490742803960653088677303231141567608078953797178124593975553109094532366362543291540285156672119811939823872334528105317466740974648361324074251165436040014623679174448539108191347240047057855344449941372016702499186731234922365274628207602691794167434440694356545461652095537222638399535729882274621899916010913725936799709779579422301532216054981661536057330635083992802482387965265878021526142638659264059555013073170174440533630404602243281196179563353606333367552396513667808521032889262913978819366606734181109978704612248306454370624112017038645766162559526877646287918471467084178777904359033915161132287840838374032984328681673496185477270682819548212885000594991099716863079358077850202243077525695135355895983856810991651958437801865446350403714315856285191125318736356249927757426092429919445741778486742594462807122338832399753542275623444973267541079930929084053856019889907228438049942506948439311743032066624628223235544935522959392353611535397959580521193859705321144891281571907083433197354033701414507641474584186337842092785417100333966423882746305841247579813564328893946254173181830696537518308986928674352447889890847329034487140189900994930852290566751532429886459437561188970440321384492076581910626118314737329043761107685592857212301679168615541160763317030757581417589329042853330844127468329109166857046198932200467121531515855705929371636007822307909311024171740092402589287517934385204528707315099558516258696049732502445696162642742000728161831196066147805926049549486986826843676223019482762545168807344961962821067052803671169331354262383305817162599968201993315769566061081271648469817210845979842378172308650833247334830808814700756214496369146343811704115736331438600153615343318595691914272930251342209848509920990061143616753062134531281041740703151717265830381234150935206814416262580761118983813473520361532645884152090834264220327682926831208979514211521459556792442767713753258972754699729961722347981133748777410932385875163270799276891303039245131009563565989474553557063455939541289449695373824348016593354315800130957700454960166058313880562079361039161049075354550159859939883935319975744484807816931670514524023670676303056378038262066565840463275231344972778673738235772974640276503254810963321397704134519647733104581854458653605444075855067409637458842564670484429820805795866776229683288972224695478105599279178504263699750453759469569283033529449593071574270080757198187759244839442614628058728613031909365032622432865014731833433749937064164814223638481387780593649034875590448823813858185793379543363637544425110170951692989891829535076229037242402558758260644868170838098082642182284807609904397672931133113303504822475750129487253073896893894896540785764668819087651430224994617259323834735982741032277605721948627370285423122209183273129773714139702174682638877592980532572777743105776669357364665597467364179895505361885726886703877999944838264416146110780538178693867894501084459021745948800272031160604874688722803120432198782303647616602263383250641353442539471806723417552426168348222040272869361279838705706713472856344148512350414701541848171583559689650469557322402378165192676735971115018663947217711526813544892205977414040838006170244544799749945949816219624993699518171182883009430347543272930582397318341986677345064848803445497544707292948151710355045937608305544730191648232533793297649914174729827809001289502298182260670033614500773818235268810577780941045304199258804567348754867692809284983285209460634104516319892761989219766509897439819612050081649723500173905053618353861144604934654020582946654393923289338613346004980866545043824234441263385392459327488525927339937114373455727835193339888393927177367644625440524206040835769852801535484095687253965855851580054305648641366484134953635199557833143555259304215469140898375672370647630843206630277128688208889423955082448898914122383386317541312466497474783694516020339704929461191913644078526776816970719630810685487125043511786882069935816790816546471366413855219640608743079056953758323380717344422853252901430407559077327613585708618126871854455502193001793833424190517859073965594090685136141774429141905310511755066497929041352290369497082198563547634475829105517364552058159875182232491825370667177267053792125078514613152621677144282768683456470606699188765388481474460787889245622143042472900154467126524845374125725200117060791086551330352798990751017553751463578957155607733939411676406733746557067135098217354962454471480801440421426758898310574911487381344288072455660718528714867073192005970742279320996588997517077405781345845872853547947284478427960557143112235865216908335693196787248529469393318537782963562735071120619749534555888935442821071476558339470223977822706412579837694334092653911033581408794230302409066080729618906754422584493949569224625481892361534544227274202380887260768503154696294179594077224858532691882387178734632891878581688474055406175439701418541569660714557265746938514962289507544333126440992068143799733368291501803219562943079178847082302957608030384993308922366584286304814118715164824474560319517165985532235587757065811293580578173015670658706636949103068669588010379862181421543324829011724443501246039931769963404977817340176976185799202387601359695323224537405486947161318034141638650241441676596136631094343039380582621418758849466947109285899263929049854344564878214243915906811091895994135255130410554347372252874203774252020383751509316768514781669257387144889144682874961350931686797299707108136040786557799893126272010120901268357523296173457386666708881281305849859423704005719274103227273371067414232172770489407195470353550964757878776743226331163828270323512993256112798107184620456890508512176812850842060821059621858970327409146008499174333773512099271821954113151086894311594861860437544444886105867746444374657902769944599352099896117549717497060995617618839049237689298095852605855419994221371762377019426067022274263776906777585904051779372195117259345401535190893234918300276882796885451643772207126318240200489171745912300113515318070895357146549256449010283472453502540855368234234641823025253592032360261042010621676438551621381910698517072509486048176426725866625372028273032423998105876660019766003782686893233454346117710543941125325184025374525585314657388060298579921191129569614827077941774824856098846485312936133863618870553361732022822304164711582346227095097484331875752854725617673042985625142505124334821184830708481541521789239195020421781655643524949228386752588620701256119109439816612846510800955965931051342639502178374306132835680700859022065700691823211855689399649791776244504495648551706538712744791744976366009517587451800480146420527493180199756859261580919447245076356885889307248627377552933907660634785350014465463452950909566589309241591834217403305832060441637884574558136752922830502281756097499268784425075806894633479412283529174497801612220728426262224253820495815358129588603840369827924835128624040753951389837336035757367102232719828230263080258189078605948896220012935340094733812286800806663607844924841886202249544077457063139306038776143551482559507010160202357114125768427222075035351303411284607366867365753284342095796372366775482340152682079067062812353850497888685650938216970429870845613628736909381033978165489299107210713173117910527192513058852217293376262530298951955582096964392907023408833018677095783330242081511739456486394574755317429027802785446800014536314807110748112969149669268427876240991231471737903449174682600643521516297874820965456769509863011749479225246223760035428730400971790167383580935940226947565295326115225755913734117856852594215608950660696421593411273921265622847389725679391110582963088800050960998388828798146104273944522115388808318375409854999947000442273132031715959941539804295234372359093285901237539868489820881424621630457366792519200210973951932975324576063769837935388364722476889782361614470078704776123762659989287726076439245196400257693106306823228906307886498411274014394404092226035451532129483572465843917780373896769342004153802390090658778346264503097037185510308099337628678149754332741975850130684345031225120375895460965350433559787116597512039571123036868146892804007215307500421586428239413160657060043425391656670050794705395987624883973136359859800483223195548992418715012995133459416607460255476503613163297499885941198433795962490154597637530144315590487941515622853946653154232904508069676337973925630044039528868723559417052055608629184832235791779064664574311726546604079988580136496126734106920116421781287885886057240518369085469489979432985445789963077757875970010600686816579303036727410103797108973724870247816368795335497010832673170682316198330605715768391354294643981593922255197499350106318965842742930610003879162629424017473680151148769668189304895651092269930026744376326624552827046129927702955045011384488041286218509519906173009572080616959045569803158619291250084708974768967862106647213132232503728944204835931494667660984362439805810278695129192210399788325518658546956331025981363647939007343743413271830550989506834362223549983778612736744716919278820672898488277452710702625809001254038828029525396666963318766261723619297707623858252380903043155753473029549551277922084884312494758900147520606150243821496483202394674631507778843885454029937325336023287654387764545881547253670189362938183715527775857585818440276512231345648049590679978034840916433977401860872930221803440217212651313372206894426856728030147662441891155163447277198593592191815181661283189209608056320421026243933971024884748474478309941976595766637630359606129275707472500239624266552388643357516081126894555315944060562585452569167408952475324778134744927826585375103976168462600322310749070877331685269585252427705701588677981378724137844651980658153140486692200272061016480704329411658018729727522553280489830355551417268133501160371710392571450844769686721636182838911065290509220679561065122588751194195993422355620312916188902644009270402722199640992052795563153763520548757254316049711181744106730359709854497760434324667463222058989736813602033232748847090235024732044188981614139906534158318621779533043182354774073501478161294984844331897866982947305747756219302285523934593863786286307229058154471647383635678013619458606021847693641174830591736902618007560588336463819856438993402463354612965199397564969724770417137205384294225359572575687122700448214541668368903519494197740982085170464692300011942201334049188701579796944432718772516038783167885853741251719042611719004258084322019400854922099214345743710190282069641498129793677429977898897708646576996304739867080795829215245108090380606732567470132394672382490770058165744874038090149801734963908503330658231712934492457532041259836769713361529002949336865495829425187168608271822862338435026004670039523399982780410628686480892660489392290334271443939808539759063935189735613174128535621801587041614946997706963144680864477032009036551581761950167540233860036616904266048009195842639317781146451057922082963462445725416978782519562732770638304400609999515986615622546285807430714907247724561621468585481034513812979781724020829040305835367814718793526250671611131022756481234160304189649309849802353427901887325599236092671635144202946558397613173540111382545392515791739433809838966860082632167504797528650108366836450163630557793020463579099735241778171990668549675854125514334518426335421096182669208954260869694272581847922526215560577289030895017083602132256095310595555198269819932909669155795154388897438418858385056170978523038714502582826735801158334627412075172298595869980025925044449138476915832828870165403509157974561651399410676776646411811554547412497671933902439626576827378491185980320602618936001851384596848160571848081915777083387936299642488257947717185250276009020116553980048927075077987484361897657501111322755850752959682011153185110699115851326714331842269568284551780353512960366867258246072478000367529282854260761721835137463964260514584402291510469467618460318006361718859885435739382181087610646761886738344017388920467932957127393373928948326012764528207556244037005560369440421856327174229395110070680486237949291619045022249697622820997927478595100652962367602707514513255403850738323064408726109461542264520890423603424131057386375692123679345795956737413749232141889996067961207974487895314468902552108720837117531413483317607117543077159300669100981774382315307859576470017061121295733281279068249776185413087278753428584413570117315356171191217404818052868936234526415888089359838926459329147247758717458342628312154047521592888244563363878147027519376463310857727946553612867943400180136888702533662504320336303351235007113290772216842787722092192035139321019551568329448407792707224616608824451613235626721866458289246362419869362763575219079893610978155187676317552809764682437494497689548464045828817093442886965159274169137243743065964225751451098048283427735651500733879624989660742212857128620503078386422732494932053702945634355497597391225487851208114308633181795977091260171525683193715683797785545653844499089181665264006598724854984528630058971608489201935077173169336299394577868845437706075159858825810420347808746301666954732404029946268142556880628446397411858650200340905845564225063350601676157451226072805045795497058747763926766296538995902699512041628936863857121109934709596834325166828923238050442500913167595510718036983346619801189700430384139314962310632369969957617767584872492125927483370807144972775897744053252093761316927332010825748433679969477080277712744595116935846077590963553086895671819202261139458692776581627570909259366483876103786226922834168307614269042924594203993604697833916869587381589668428400535456139984158809954938533710270010371456687345788039119327232079933976543944212027001380167780476919085784281260776760292989557306070393044337870740472277297134031476824387087929423530649156310435036025653949766062874616510414176432122829308826551295747766193402016273827068206357664441027759664814033132487336476895389115018739308157556552560971685272377488936663711581478920585640088258238657452161250807506780183482916441920559947146047897031728353168135973527212781827404151103293977261602473064382530780455306156568147116437702893690503576149652199822131708688908199241934795741925011498645203533467444076264402630351405051993134750405610422340897702689469486891120197911223804431590562676219946185952434159052271746825215406255558345658330128800119088695458040063649809192780543320104972277621958639628767889109406892139876916879565320446324179072819953207604766140716582325821799297303129300827703156529216970320132799158151697218596133273758162949002209768529955091904670515977387293894365106457003386279779341532854886386160066885496014372944606543695517088625450512672719336237434282952558387801202286703390917451680207772293090945077880493192663005340055507783250685006067601297115923953465172675608748155905904185944813447566706847842185028381535425617847563055950134959549605673465417513763703590354933791249146747915141165112190795572957924275318114161147560202647035198423513845561921822209190326236984186965319701630438431140291408554777887357188347659852500402723776674948600264693856628934615948013044602768965673155203717550666141143968104595517919979378722534994468913146855722866146078992021510171584237106947799415541884429152658990699563366677700182301856781499344468681412401689606264551946960586459355945476804917852468275794484155708469852439417183666978208251610012432728476158715124026062039169489194151453141088671606850251596993473598704240325024045490016749782098089593282798832040170841761865040946556111721235554501743573530671950979842079986639300181399178757295403253503166487185322825798983740865672318029901554034590687661539026288180653594668575967359969525867266176706536093856165288673058798758822537935265814199965068944664513323899646174969859704848881542401048617878373085247025508858562216805330493233145989947434959973344942899227298186572893071664950758960656053204416580520516724569795161311225906953229127961716347139691661645881061426942575204974298368575529633599554316890366498672397276000373626305280576609469170776972138508585731873813183225201667334879553624724223888654735660827551590489436694331717420905959411386580593712726015262834221246337120371401585786565672510078198269296208477644653997838434278446596004597424468122133292972251695605609995610988362272711718412903573590665688379534380415931952458515742191966704380538265313387791323693665941859154043109750167471914073788858397358531742820084594578506289375502658632584792666079955139703668098337701751304285226062395186666309513359222457484059891808762338267660051047714565037803621871737432650364209283283181393541620653342391821224270913141711152781205894572975481569201225859286021088324431107841023219656623102995081804375374280830941317335793257417037783419727992472042865958448481254242185844397787891553651598436068772056669853128386828708014384763186986939722151846584386705271616623257901109030592968661267957119915265813124094326059312782935790205624609103837797469500998461418990945379946031595470043922160498658245608118220956981100045160457417245051399229884030645213743714139605501204168579371308158861081453167394547657120209212707427585109085440475684747867191623519496849294670229935249972392554880747319390890587722628711871078806223604586020945116422021529941171722429119229876425850124486300566044899980141828499527249966907954647505229339922245066386675837671889803282932993947334318507580606522423983978334505544132117166434853676458438351212569801792275647421163435383132976983650609398202915824906117399530481912743892945093472228974008125287961875474449821071375455919577480751447355614229303733322305742730159867819866285109397410663864708636027524336409036318796066682201295217795054433262258129237812734220503534804695946276989859080092855441371161492960906886319205863801964069410058203540762841672665584363402713516221292590327851099314993717351539113888441667128865737375185329328407935249250608923393668545959419224126659705120416726889525574889823007752404135229842363347634415466371499259138535540014590820829144832850091089783382359126848788615076627438533999317841462315288297354176386227056408937766678881040731466522555255477177047092328651013347123193327193580782394488567412935518402512465078768677949411519333815460210148171447549465945938716849091660907209690666172794395212472103526620799874557590352497870052811547007305434808482007241244286318262085288106074362195544801154392812014598463660501241279486020937302427212365569293956527931377567326113308061100145946479551333743103639176550897334352673371182862895690044036891720268153158158048397620596191091436334036992771819048713709245919296485566139454174933570513130001323237246670042190564284646924526050747536298093454221378301807581467348388183955026198241969678822861805266956769276406604327143810041248182018940026214106592234474030388366153155084464219921710033400945000462425059533962748743861237247477067277156477520089836897392725206833715781315838653037910571739291630360762358655023640378503115040576057832477591587536655186177661335931151867369316172944418902648201842401887869123862388418935682866794905128422265037245344435283414955499643987574128927205315009371785822675879750104486402435915636549309889931048974386701693640896083039288949993157668327963900504640455216538743918635415763727157456225833555580641395849583248716934787650512348660374861898334656403841257005177382353488371668987327199744908253919840660843733073775652657473631088313122223523451373763411600848410863468212435404415490675026120917086147361073759685310208974733583904232524666112008790723241417508435318535931805686710147525838477439459197393545772461093015098767313610789220698571938288087245753424602288184189365268055259366704047794755405221854930918368246250777941185257158187097589813538405121120412601248574682344991177294851334422051298290933800043734200278081155244235523532967608817695065807787651020584179678589781390790931760709423845596376546998802975343706434551443790608177677313225026150722131168858412333210568807132948596594462320712071800654947123757035745097401629539517402913963260955154531760047648373087048537649046467430296976964996796798576508683227419703037268443976667218907541534121681242429438397464623934425184964257209627981609300781801740652716497188773387363439788880301853462481977853618048861353957394413480764066311214464020394339360072796988085921627009073646474075854620889627151712688559812605993894974292564585209975705834953594761222862855472433235371142189113973131898943837421220349502064899690999025931249101338604772934934551054050770332939746533769972705039106748472810459171339835343682291505603115933040642158201999399061278066041083759157467485835736935548844493550347299822733690938770224824638248865428500706964752210691434136987089566899233747563052317767782106002185239896491127462840914262692643311306041735817898195900141683682951548893778578050249493826816874995888930918063322609673628959722444747790863113658112284511640026017408345405118019725984393316456699424800409773525071960792901744029881195567579949645489592394243000122094025627530225209881487102800445027662212274906568912037339321982396590397334133704478737028003269909862005010629072841340643280321012020653021555176593095767337213790953595069667782373710476006889999718006124583198123693309868479529619598008381091047293022597229414031511100082993532522652427139211429135011766788708925821081708335058020540909553295987432598212455449271466665350194165162211756521834233915552339030573668377182539256729182586869909217483275642781642805753529319282606746332905553088475730074524707840592589959540368959222933175263851207562422321822945049197719757704773043989184322071971808393200976000685761584805323702782160505436174116728943226379208422817697868797188904194120685464078443215749206426867121736434790838286292159440718748203665569445444274116558699358993621802902440612886672337399279836785774932812758412601383587925080755135218631359991073369935391480006873284485351592222634162311666654445081998483408468263658698737147800150478271254717303258082662881677938762788083631451597821852497663438956920858160758370745757582959796579982886794086477717990198063458285416186286329455725129380716350736317164332731432269321353876130159578871921143972021397923517107419365989354631597087865278744456779445993081752350416126519058239164664089731790762710066030684530512046047516654235281533199314778162033064648503050748505684839162858497659083027773589313251883824887462945224688346161782602870473846634661856594981253375379628513591904458371698358187599842215287259034780543501467888589191072733654078018417934325216725275293985851316919156975595031388334455252151760616378605212722485861375239062786266723933321127329243593857902642613896640222607793477282962313854938894786342839905357230980460000912283092525696408615205847477633710186927216898697036304076657332447376402392524124882441583130846517552992930171982808138779795722750301860802183986588695067023868726405038623959377020912946274577073947396199754066874487803260790250324844688773453509818553591414011423438089540406912669429140063482528853472852474941409307642072017154308075080657228485710385565349199316181754946944182271656914431017383830420650880564449456524732908249511734825012869138678330198834143652909468112484472594008051807446116620802891013361127187855806178756230919531645510318383451753800453650945375815031628594178672773624527092748290545375021619600741029025710983411019207500440860584028945569096496014499090469729816575053031104441151620989004470662578180815510519663274935917226866459852256114694592390551292073953582034994604337197451100966939206241233046243478566126364592493747444638351457126873288795899089056274630692846282360382735108240800181491107003880580517125945127289989321787692677473260897153948499472206202823866096699631849167655310174191502644827350242620997929397783169172574459733992339516084440454361773139337939859942581941924646049836812890524365991273192161930704886563358792343830189162365389337656606726496035320390376621106673971834228974201823695612519518411506584891234220346996481710672934300658817754891061094770113312003826823572972283906918236106483982715471865577378494323654599384042187047906737940658985833412304935942783045940510018150956960029706370201543349308709546469604846643523055543239631078070603690575201742343428206991446719425918321539219067258132167077507228520915234103476968128843014055837812211342850879717643887215482540778063664097894612633657690271478970897794568516211110017803009167507863416629402375307427599758481989475687922806534388809370581388874273694065008699845915474678997344199258976931961057725889701554417723954217118574945264538917043259104545313860014283085100811421568042502996263365723941342760722942463672797996308102958937191001733736759891479675055546166051036822488919043591525340242974219778588025677906806881777064783697947471077906985005361325695837574950039779480825862273613002887602331646200455708990238302601096911086596675798139456018951785173545607363485892381756986917057027596208111837143783693861385259356759741907514884757667114072171126779103650816561308846591979391203921643100460190441680203051418833332529287294696570253438168936661260232251858624248665602575026599094988347656113498095822202902483419005751334928473146644636540014651708606680720477943850377923318358143660087253707634117278238105208348558458746590227287716168879287061026135003547766237585177220071894677254710958712232217568390992937732628646403569383319171064167402968722579037482765141257745171316327133782171323924582817900635555210810739447721223595064016290124034151529748306664769372470300983196560027760942616151948648597023302943911904013920394040661216615900280235027039899129857063813472434800413725994620724822251619787008571417490415181423688146423506345004919644225112522874098209100158619702292154107964208066392421063091040445974845652615199800870234832590400996741262206478720790928016763665490688403475421236828709701071316730327633533555360485814316642940722948063307789192202155138330561742855102854287819032455368438341313534788835673633396455168410025559621780839038176049287792328723195785942048306654610439796506817372015258944167874860768112064105879047026621733340655032562667871539825948369935339531649901004814750383903284778276118526548210843510805142736421440853458934490531246961118101689197808045809347390604474539203145445030661804050359140107119729274174870059739145008956662566236737138942083737416769618938873338301313921971191337623888258396683563960070290929056173173913577853096055231623279941024375802106009657741854983404053300426603692797165780173145436037482250431994360401404463400086927206226530001543112336225632031991932215512825223358628967564588796651779857848004333327515124242088167186877525276297164095084416874617789911996165131319225130226051784739115840839326501509260627310248791435306219843253058629839064493761318035341578339546845884601826012818081755493268172779332157671250902592309359176117472803826195589251841126889219611342159232105222402016051613216945577223500370532064164570805987277716399696518591249000499365314322241863969936672317821270924325566487887857546189738930108651752085047120085832827469318821358912269779814353477649196437504629907174219281707586774341089683854583828778055590769321901206305129038107213649928419273137812957061632729912580512165629520963854143673063344958377795988719826032719800855491357848922800616243983870071053557719759068881716718810305865328642633697954709332299332429529690421502763726055073607325188694749207702163424647759934585131845466274598333170420805282597925428258463468759477917146654777327632072047770812975332626751967783840481260337266088884871293495583630444382895554093462553489715701985965140452651320935925514183097054774050043978967377069442791480154929444730647634517132469656737291093542916888873499060788647836808642842736047903342158879371652598136361305290553129466867014668828846958921363264959163055681695205905861489814338194666232640727021387677922854310370716158511135943027529590708636613101946744914114241495346150287322329355498025549251594087017496025617958953751431472177160890032141836768574354802634534243189897180553015316784646524587093926481182566292403567172736670719204569037853367391758739695434458180488860481021352565398004181507183770566025180823996969448482392650551208020117514003490122711562087529045438089612194375707361129388314846498791701946975602661801487685704244963216207275016787954020455086605740734144244205570698951581928053556817329385998434752202660961363714467359435665927483928433270408764802610781829353353289532510269709508960345880639914775093579190299746149702931574782736877382213569262113676744979619550534275849859347069907548326155167455137798807571179991852017935198440514518112194749017290988170596859099862356123497313469867712064281328790356437718482834204533164556778921105519078650796403978677750373236257132530903250837244179404297038678563841567320249646042771782472939887442994371972824566700743783730246474032653659891792424867355475450770758311454092524861918294123345800734228316760974791503124939909120743308061926872365448116404879382330100233216412242695597217061775147611850957813392376702145310538840031734613852031173316721291147137243732799517598431726669608064744428120730675993757395532760168295125521314427364679045240745740714381269570860697119316277423265555900548291854671993761585369005111271874169891867329172280648455968694552012562809353511385081391207042257978731584128571810408329092332290096161047954200508573936008524854983993722829586536392743478001117243199269835975788675399148588466943146590405447656242638911883450202276431960964069924644571768974237448032631107502849727038188235428850464106534620833297695838541258671242962486161502457520764126343772990115349838333573327412420554666167605070624269393493281977062540125220554682519088961903330087107513614195103937279729692462207393867770721439166612714289027024989606920765738001090347366893618184514180006974467449620612861880508260649234608429604492233281556457774410213256818194782546308771753844573024935477030646491398665797210916398276592295635138363959145831657512436229241212352846652648484134827727294917060848761833901725071453385255522664664598111795932763653378137686927883989114328307299717309140081339713469627409789489682611772260218708806954324634734845567362138830040434564921276154023146913880724927315415980178629303245691901650530381040162965393947063338764853336813891154906240106547566040266476053230815417232638079890355413701878789877715051806476684936501879654232214310459334427495776278242312991376879552069742735707877744805991935659466879658727348843801569089348348784346906245942088918664848571550011033220387683938263844565369291792021083153682241738425551265042737407091762760840081414780530922538066598483083952754891110108190706577455145498929369954968640577933952999542274356875981107016115426030802923075403333535984881994012169158071767855769377366427353547129213652395749166971488354424963288054001413017093147819794980353128251819284665243842486898266813703193400206521836617723416775311867615092621855714472126386533121877131326206813466376992125965620924607204113348278346129390277814254954989719848154471507804946649804543384263276909516544530824539849996661535193469539070966605473549091284849566863747116943013673669513283673369564710096912739570348367451681475247886024118872576675228226764459769453586195677542507770245659533887019786352517956034104457775675467459307955082404040179040601173113613779834544961224949583191243300269622867094866857063245761183922143170803760112932541618948919385431091404572562155264826143457152131510666529038995813896932181889334293819601561017085437871022223725383150941402283304382119916400711697254448968467293032970160343119190828641220890618891561772364950929726076588153889370037277697162518199974035058990451784841339563041049843597708514698289659533420107666129350974768052131148981870737255720082095279472934452087576938115731301819259989554195803521465782043054812780498056240874160083097693108877602775983773097983236969257743083942790398676642926738168773002360942867706702504819145178607373203626666452153731442994022644248930842769906963596375683572124167319634973812212752736477119379111745157467236735506518250777076587849991950496877282940715382843246890916209258830712058270587146117417063155699415588480340832380868354099356903068794409642646932510413206162483441789152995103877126501641132564700013108178240089822081706854118689420530619357874714639048740582528668460972130664861622312125411726630805516580963828094854168966273390518598355260918066518695298435171220353384097942167644470202932144851993531382606931966591167919592268847102759458121251068142171708357290416745982928279541323792808977197920522673734325640143843859203800844338501404716374539304354041094040898409800983630366769140035574786904248261565369755799246425326293352026557006813485952328558249405744301161677457251275217713430019351600474065336755465818817698660390767137918034928826545648521477005838036648729632179906015711963865654580864935863650990744435903035664492746974380885693256748683297081609542764841631977766254509081520583418330086629610454531529748390479728961865868931207322340978980369103561759915244536922606290046940957046817948902304117267495759948601740808451618674727514935154816483434822583622878892305110229944636737244958818664938881479222285733231709853018303693459400388512596218540538157749171442428760876604315769401992646617985769443562032111880446269400684818606145292032352048597411303116633829051219109381459260489324697826455237965658002668381826870427761258055273400430808762367592109416960271796780586975719316564153916134428281023180621998377736731614642891723600980037660835992554507806989269951286486456762355049023464940436872620295144376841945428855614813138660692413080872278445448079003878778556413016664784165917657328901199793746425519192650198011710084993969369741165759782189042823784629709135515293920276124066233994007050382510788486100836464734879169340531643795152751748163928435297685367424883334641580171443472169380197947730782756379956387969277219518924704064688003265144437619631108830492510969899125076923963498614620556027861007787557725037956392586644718552436911433698103633950086736660170094121856617987308494971108652910237542875905602883588684365864116206136587045902325336514891490452994442102987238539171462270173532469013285601536698612952098184828500910586201900238368992522461708943818905668711207998227747215299841956184493487288953109428795174983333705602568028879077889202398405510681372571833283960504221798280614896676907060252721598985181504162993565748347824958325319278959560843050899025972154391656542394823098710849541721661582066509036990202424901717421564226141528306939824435617014439310332128553723388297381080347404127954920705591628448366285562463984871749034380269193287286123317164814457018891105000628981194284343644433418095787392228797849448036864735445022870678220020944652023474433973707925487878114116796619898750910467377702180582420656149950186311154814255583265122688872934311354017412029400289672900603975213732651961717454833406906173678099321715821044347599895269481662335593351298751565403963773229497615849572416406770872534571168657445358046122728804254905571205765235342672330098724450843117777122012762360329945403065455049199653786343875450331878875974201839846463691258818128696920776441087241871231843078267516311478054139683612885386508208989686979240948581625934339556998246683181680586129363636327112345167109067100162734533809939102137674179647055470705312394978297664353192119904037582652224456357295869439851493716446140295750225021886222952239188119852402014038820730712532157268577412604794890944389276654883709060835931032594899320531917019836668759248580688578383721232975271450110753781420103502760029710238793004858088375084630519790157953378016130393125083729776984447629456978244383857863015030417627035208710111996014312702116837008914840836612252741267349521474331843236914751412544283151919140672867884836672570073138834710464226145667073752345839410361557324259854184634094457517695175297994237520706754794602370940473790734340566842721649688596133000083700247984197154816464945599174534745587516021354455112601759836378473799112385219605127215554328527264830824087719340380936925626642221185876408817584969772685669425690761028108333272940119943139452631721746616050559853444048216330145845247225267330625349889112934774485449518579849948012672876500830239055510445098028369665881115269759232061931326039928325685046741156889066427412689901576713584379213352274900137517048918387849502477174426878735139023779123937846709007357921273430572842551273822349682341809178640913672127546628298245230796357649271724941043992616056688256573997432210752999748186501681584439337602957069313111892962801653608223248349150358654996557165470468818618128375315918183520279821900643055480982226253782310930200985625805115285702334649975863254483699511410718194369726344058316042347102948625285229057375873957735468664210953378413485398962801607718754340349643227261706529544534798015769286878845381100370210373826774022208314163899447178570722432134225932694368804696426147685687012359239244456737291864961415322740984706689240904209601102413717723160317452941074618599338963101246616343560384461037494807254692407182380228876635754861469599799059296908670034467239326741904388802007379830068211858424186807977422696972609090257419348220329615528504937869813556486575079584494514594741528613861367034293161436983431569698736554339954460287337357340485949488165059000117851887924295358016982617920103250542828428171212565633513961690933452783232838368541058495872566428520656496247221057346607498808482402615254050623885007617983513394335192393357214620334855196395582547459501690569462825300309293071027627068338842361471573677574982214083223919242932332768311182954618589366405889888320186477360969194236537436513092351453928197767381387078984661944077498139726141178611413307397584348066914796600366453976206426455311022255032655016916978822102984639113661567209323234694550832388943487097208471022671508679923915126578155106248068053073598083145347601666154959413345103270391225316039542293471797251939436978932268356899533456452942991332154342017479976726506166447171870772716729443424531314693507021475817626036146998347505579066902484242647526056529003946348167669025779049913728938682547574361285506610417113688725077540364630432650061334422250750276319314544856641373996779735394246021647281098451302139188923192538762786449695802105631352669339890803136658139936423485639103312289084497844340945484171433545725009248329772063993853458235883441970743771333236823814237694600441959917532545117346183387751555802310502373635812540152810771424217819139270792462767199763505673800679049650512838118805537629883682549240356770447889478880974683733299099932539400772857598238767019798566203173175498612339599361904956453012911790204819499901262168455702089017312917440926618212939158149601940133782369674002869233929305694672915143257423878162826456717334998257453250083797336042320295703812213700226856827758466923453109850892227371810773586672336956501541973646866981265326787223100239241086238877434474045914209048882740119603729993590112654852416268333586573306668677271052296518952739742409071920732388178950763548300538567335911152055784445041774346223568009885202538716180344629811916048273846158381910291875741725197143682222659273205404218508902733504955998975527149804085653155988495251810503305532792468247609533180256338348592528145759491777439317209794884236120663421554369421844310558103616938693411248183298062539050796490001807976718263607225399848610108562363689266198583036386337254969729603208987794554197488508953431084544979095491043555008926978290636582265953855729724253640846138977827217883221523661333758215359223622871858287035595364133858377895191805683729889123889426780086405261085311091663957026796932159092061916638297641605046424967913816144152255485284056272933110432756099614382658566447433550990115702636186362827457833000169111099185775558546314856810592598977377426204674201570645483129287406920391065866028796294490342064777205668217875517493539553457194400245620397495278122741823584123164624504407626905125071291392326609179619839378133509197717540577848668241966168036218674485661448869753657764000349630429715787935432706017948603515839268366681815525111639581207376101629054482175489591710915345172987193797360781460630208401993534745307783031866249010885838627887443196029869278832144439963927618964819394991935312054518167803444841409281594585634905419614072200832630062684799358524332766584409216330397312002764042233205379830686214413346096248264158025493147863038938615082251160953060778450422520698926877786052724740653887417611282456454728078911003067953945374913806266326718897038698364015853274775357725077461497253114132542243910636446584152889693544040781640549135984762390321220142619961634148263436956437933424509885668052157552271001665082516961494321975469900948564655819513527508472421698140552286016260654295237001067757370153682560651332850107504018121247308939213438511368743543095579999010402420034150387919757576501820017059323150703431379253615753190258244459598121819978629326770930030183937224026564203714961690448317817186133669334989664754105878406739513559875204757681362346715356399618478516853159664280522558522577147032413128194958540621146342147658966122027505243505666536151580580351164231021749289666537411037188914741898956401374399833246730972009885557459693478112190739250355440922789748687427980394496235704171670727728636644687654178741231488114936070367076571637224153775466399626494917694140827443109666781967450216853482308490736089923106115011458241685206364482404928938610958057823513138559921834744607574164488945541259550319568338717886040640501319050679321483368255392242369475546901478515837392108259524706241587742779204203555303171970205708728207003262196418879126785232942589928244431810656329292984973700538264564248282132844727548366684318955879884175915828566185112948886882792486271278295932305620769950855804530459426542216830973514189433025842208587406423313115552859217222447692334486581107611595996276228672776217449629750298416000659643770737397272031596133087784651841562096768536402944964658426733669621066846118142572057197158314093075823637540371847693531904371571277421711292266838998302509050207762957663506916150146858596814487950625464598959790061290517930563190768457226119906316604927691555397009326059975069355831706922272014588769967803706414631977579208112176174426159317783490477101125691847101912950012877825409220930912445523182536581930881387555903862155389614110086685166131472366988941096783040895573750892910283826404796045347021763669144088819751175750316021736321276810338663312712844026559794191035723686499454506040185637040032430868843550899738319870979460791278694103213008077464555658727762639144388964751179519104534043517164357190448288159872085641240940167808235443226853414207435982801607339589279001771564264900102450199801887516434455804329054399620214235590046380466385198848400271841798292117846351910433413362748049091267989647505913888996730395891478145182506825104221706048755931067363637290279583489389897004313192485296961662868324086606365930169200065224617160228479099090518489661614353565809864624333169078528561631833221996883921514319125340479683293715366910221623284960954216447967127645500886836343469386492690026302298749145083979000231989701588414685571797080049006725871045010120772885580191530967480732665068286014453417930953543911443783579532448053182233732714576658899294079420541141764225132354575320671874342011600783632270533700593461454611869797122517283943169264421464183004271865835323214131542190892394970446965999255710251059795292000191234301749171911733340505307375097079322555251793885163781106350862527503016793735418416669981305742090828862610174620805759604238843899366830735087330259703896719186224408122563464380707212493139390154200851265412610737815827533199611536697527592964917286210800217385757692664749412065802889447021926923928403694138876666054531256236004662139719719782683482902570588095253263517413956592608446013566640189765111180293555931660952637902360322149486161697874473798477054120956922046592614662121771036266812374655712203284787760964195807764223700356783604644980594730897643041743118537671012280938003924924637821326622367172338581664296317659614568668850989013258099087821594941957414661116261938207806351465175259732425888461228996845469748360172436423627777030819220420128059010525755509781136695189642472821491965242414255018478547983298381101205132046353471088183314839485272425804347094672958771946927043375228372163748160566965787782214010922787507654319821108037577799706005594568462920678236624392162418192938566955534956825408181991644028023108237098861032606309815807486370473425044596639816062840955300726765525915563078433611265155681318224761139031152510119232706902064772227358117318963052227884778655680935425547380928281193597109269854650164634950764872007292941966474941223407994070006822111698112919876989147819884261506957408202486003398593613786845815849217743886327150443967946981175992759695701125816775320504563168103105925991064698723974135322875842418267551648450171485567858953320464039310519082349676855085727849904928901880552559878338577003224938695683015813833613473874779755759172484244228819479548979819971390556692186104051270189086496908960273245649863822366620745209455344872763818394086729243698761080784105760431667382473810317972562392924493366279241674806664602324303784849380559011431121988242678525259873289453683732114015281936052746518206061494398775193314606453634507968633608255199781988890959608119515603855511785293474604012928194128080607256304219200730346056582236195136494675909192316005212013906985234934421213387758010135103851960006062879858878134790724591073540506291823484749109542373555446232193976343683786864652250708633425995274600390868185308295830295395158479708569680551816195114571698360294515789776828254305755934294164416454587146778029057074148069344890438536133912190523408294344022515127811762207923032665353787388764504616275394649462032047967870569134952101846579250087445223113184350656676273261499811335830710032646300681650113003833959431929104129525462726563173063585590190910370725076648628092835372111195016776533883368970753281218612205155992450363044879806918945965207399192780005976375967552107606629709310593134483974940838563019453728798921039863652248626364839467873668471442058642541392323329313787115345653625401328319576556857372261552944739694076889787608128966215790741419277885821098753313567709850092126812790652461633273554240585011118240883655195363315890608228456726663866056837560270027052888281102299474499727235219600654373842033140875289737172599837496820964033734927129738448065242038652354473714529586976901036582468018924073404765128339490087169127825405171942474841174819290243666859336832213914039186194128349868950726016716638927831450148995337123090594843269556511788169034661061459387135414186043693582315800480790209588700818849744260942251992967025317083750089134425346068199568398252327824145291247045409993851965781274632693850027674968944726113090667131251667640023676626306639037656672527203623589248504387646744393410293149581509878152414540055938198620304373863044181681486012487664366341079008627287564016630173119849366406388073957721281032159299768397535396048750555245001900509085367572161416211103772550712197612286855125137502026111485961568497305817241591082599121909793510066234452141104130672687076529815995323284029872439901015194023312067367490283823123890646896153365189887208610412084990949743735917694709636484851085705064450353000386791687952834259497524655118225970800729166685061560986653587986952866734133521678756362508047907030236586732088223385362849171076067162522105851708545407283524269725019301653916342784368835805618030502442626604959364521391955189266804065575464468115232034874415685609418353637425759435311689344168069223147210297818288249727008869707731569785611723404875743710538285541545596033534047163252493010389339295829723952794985851021172065301902890893577510336902261506391104370586678550578350513861415294881862236972610442441141350361369509922959219073068758851677715180737489152581411780628595298369507215341397459128030370003016682710073544635971949947690908920549873302986018594093045531195993771333271502740430060712005661333753571967762240147355401902927637223594551191326490018383777223968734610160909132794419652378175701914179499180448279699703956997131063502364957689532054218315248175415204856222904940282895470616119260478786376284637293391212909818921404045284557993555645284922066738456251667275837424178019113423743234309126055410067993595465445339100610099082571064590083632077170580056942008067616271297081558687336978349730675543608570442528749136573483677313395578151868019483356435868755499192708387333514831059934840321900909968176814636343400497480144819231075191724492982249358018177804158237486608733156453783035631994782097157325926706378721894398049615569647098857407812363689490451510232590196553922838118118988420109011697951238290192133225575030012603316784247241980144295056065609084680338628001619516185519327329735599716632971826949461763362223658679228632338554778389684637902923905989455841268208870476620005865081714629903290098469346896453785586293245267310759851804408488848354527027020788575142115299488245937559322206731587478686096623825482071608290143691747294452296996841703646239465430979756279123580740973212947085880654113494896066598045117181687229707897893075681222022169536895406468464227702325921926091871419065333695912361749742673269811109567027856634538281132156303584998095191169411512562389738872778512469527459999936061164291067007736160544203288947720291079751975486527597874328274899334321843939023942310897868491802647005208019311958523240586792571510740253432444588686236769716840389655379729335442401558649316976734229753137154815291378257025471544411698897065564892683511664494829359802889045840479262125837773443797220230949687947561055621118705795002882680351013124547506497772835617406570261539579799935018938042343191326739175707852174416145254144307019595991462565419749042518139401339218626591104812138549378649586724264790354839830658039687051190928221698649138993513427310869837628599778271738106722186381788447350202306425937418386608627397193035396590210615829595334658528527161034292419991505799982031725376963285332637063659898587218870831609355019050325938085694462202222084647048940811282156466958333132773237219460033950037626828497579592645829839861837283410964497751500000739228378025951744453519605754678176253476093784900821012737579285746155184365545292871977956192309718378294036435841726209263399080904444506611501409228363567330140390404081046037699297893214418337917680853295378311861922427206482974004515156919653562173476974750628209890455164487897033685199949535353487591083296190491352038068754232897365034465384991842263461906383099116067852278904142378731434250809761275150149836117227532660215647904714462625530324117155639461623347238371407214458288506384072057151063083746532043193841073682706836308764120094062807272613365107188433399008587044144631312835179961698205868669891230833459935111396912683067056636148169966478367135456834534504405202814964701812634461024745533756943831228510839280899649034770235180172813153680374869055998601564022478874416877292686943097768926324144109960680386943043532011942299527320610616402418554917656433027933370917201501216158327270300736496715249118013104139424979936923034782969819996888930650058914542367236360724672787827214524150746018051829446121292959624502277470069229784170709631468744983748058700491029272308317332713546184599907549991384382880667810782974947363820058343591319225855092559599838786538110898306648654730781066220716932778172586915774212500709958997632122184003968040745292256183423781855963187325034399997650992305923015044884160062686465150360077392728712758058674797050343989208756558766546821974724128984126835354810131042913719044782771472823570496321615676894229985980312874072306599328440295351583189370040888124271578952632000062829793663626777487245283102648013733171303617745847771079952036308419016512722445256127284286024199715100887811345675313556298679269827712629627922627554683780381285004497974242556583351900544725092902051934038387015830950088373873112152316940689715433024789073277725937847425345571714131056353719933708690479535477075369053505549960970380590656922512648092125069614147907406598187667061006683921172066748140464056691252060818278838749088430874822833096468043176658589251440393319397222890319210903209181417819993919906237473293982434633038751291982976172491552970502315178920011392235005939344636678060296855366092767737879356440175031437027591275098919874744660554112578223721192448069385977125319862634415205849411051609105386604499788912491231010090919295054736154931921639786437332175573238855345513681634921100310797678390192743722553721454486010944854390959990566230160091690661843981790994657375999723802976532882904089276654243076425087963000027246821775190972936054292456925691223901471992393357434134696260177173544470028061592511999446669988480171522335042560408774353674930783899211699192476581282214167883598861844173791820684025336887182260949113182997473995608112404525820822802706252026279597514265517872921780712106553065518281580632979027574945138375437977099788726513369206304385240209918668235336236255390125241598507047545978127785514823789872030141777086780441538190595594467984903819809352399056696729936409238185053792764085834415049551330243006012220735742953171367253195164199484448450917390842225497587814846355908042166551116252024229680132123314605875479931735249731357252725754228023571347523521597561529757941016083034296814672007698558837562208781913622088020058896641921830992671048535724669761020997606946268386312689917417894924634660205082512679734772879364511229050681520820675783578673848775784019977602547458598074690698348538786228086986537675561902870029789871006391823054880774394963859948941300842633691178472801069501956605563738277969871024828000026481204490577724271877193106219941379799466683203588885440656550589052047900302012899680062593057684774882027014374203609477742202542764153717600686154867979931230932368011824124153389638626317193187509632319613618631098010178149142831592925181458909019965089056702704750674310711873972008914764954225375594535801398127920526960529730599840770063580235586663003442502416288548091896960134660293056034580763602325354873919917504667424673790665037815258954132096762208584764570388542193341434402964190133917910417879647213190135822603355202125228616978845279855795620935476446052086131557156541075307531713008567562814416759537744248035605954536464129466114945005358871804676515797866676339875172581170878759025168359689331017279766205670630310431362224034526445875175717552106833953323530421686526014669706782112276218979894486662337938239966530936928843793334077958012556517027602417736415218709291659405540423277656210009469332436825949330149098685087977891179192562826804643103524729619416153304684367861468839598774449270682254325686788154236208377927146857200876922106132125674404778188668517162363325324580834753649181390649770131038508905016933713933533264128876533106213689578794439678488742162740859442418914041560329234854835564463470661785048182468725961138943913074665392787278065351796191143312106028528843785753293785114815855466609607538279697031660125694335287623235695801578935461303946187794863043486652690108821519698911675998303398548742802578972770495402501655335148748509087452984902418810746570893966529092250759002127699192342370889104971629788132445447056564326180123656354407353625841301141441270700459030672563376627933030572204387197155107113287690779057867755602441402856201075906574401076912469485233247578172150992544794231354752057686265670807453819739495335521474194416975750849618332670485944250075840362136700245040208413235253031321047769016390019944248945832652919646153467763797142842908048732087438468377251875557289894093692789293784725794368707149598801146560066464435021060891953130867774151167257791511041359524240575155242692360889391236379532881110835841765323805808015330879633600195725086104729131222944880198149168837851937263249655538045195595078892602651666072320179394600128597378870405436625458112724636097475263606400477646300696137995814160052575873476997433809981332832391461990907965784071400437758449308247091212343386420961871894843330661579275721359545156735505880825468219442343837318315147535461721771151064785285398304686249318896000887697977444919199671349699005411894732301081340104079874958556340368722326845788535568537928847455359194906909448264657872974236118874630362695740330471194071725263287653726058233712507088778634852638927921764280865999555534075533911226639724976079881830680152440900779697411061610144287337787776052140620376497980716285818167677097600431191917855213080258297301763227249634966624902792807824448482468283707105155655294895443701039293287868519713214259667620214948207820525403100874557411085487189847936746052201251640395061910740904760057904610563403959913010926613945542330922359451183319376463495200416358461314312462680604920095718275564304086971379887922252258601697907105673558855199180301112153156994797861148604957825087388628043179312477475983972111532122818747463882735108864715329103893744066200237254366714200453113232045728267714187706420926145732952823157328686738990669368125404156354103904227044412670014082007817308230449637337595385009981235737423593093457526303380835718330763342259560708162833762882020597094234354628656299659198799561171927176956703780713921325996537186164172189820386914917326530863128907734868451467134029696467567022964267791641182389370366088282620777750765836702006199403302464236788787790100670805813325784150700458911838617444866487690774522226585946749705240115104055039761899934155809781328610646387511878401867953799369254389600212400339420499655808997402249577660103947888174303605931027380884811744288780356922347766384352551470763665197373911812128299754955597652405924431363960582361022961194691892121339446927646757385151518129966761154022589306558992212055068336945393710939641125151461702683062034786531370284052377776390723077133427092225761716080628595202898347105147653988582701440732542611610290039451804989287581047008751175161586126536996539938830800267934275056340555132739644311519494704709579186313643527639272010552287053850792309232328616861564862114960106446582472157238574144403045389985657300250225999142398211012355763980733152278767797491255024642390708835261365730257041850916696518287645235269482223101331433019092508867888110361406785691181431117724012660848774796683710274170779570430255573304198526678472346638390949235810608952959821013046296765628491589905811322623936506161050178953786609331017643441970016045633575729683358510853149604387380341928604704353907862224471257005945037856467883194891844095222291966743167040502001457652659165338338848433756870961284009785384768607277786093865262119950092581479779655022333702594808340926461516753369782379837027457460226456063439315710011914433370250908851131215838179817139337747365244895841389421109418310101620626767813551231431679246279562016408647831621635447956630643978836488722076174965656937107023680076008993489759973070757933305383786051563508932847586511457624394677375120504665400118600851779921634770416295327541611694451350161748188724189487661618005408778254051244163316641043242725444937343195491762315609834554727148322474358731651363449034552760173292662211129393585045414024438386325179756190312461487306464299956829942247865111145817846003794126374227294583215410260633975550210985036534110909974592246604669070699312193529572179748032566816361307474538529114540014011915566142810897213710548970230566208438197762784869050709762052050493097800186128679188249705548010342988768891931986016371925860876578037689448842987106891801440654875127995664188885991104203543654137716700818594444420879481648011080443339618006801894564516255209775691976274736940520917637864849406289494761189771547398804572930020271030250796331761939281214066984973149439147858362044996601153391045111797527920352586112378079613831846095699392853888832984863815595025281264580024546739561890767333640517291404029240741948991016018716870860710569494714303870819171890925713509788797439473675338483414068796803415882774390018249008872953905894810332963719355472986366036667927782126351217139919693733656118422431983518012002998949234593369925788742000625047906011568729958932278564313032800903840627826845837812020251415590123910376308147866031451803064395360208347077872048440753525921523557742856081443738379933501021110916697930145874905217554337382290067265672155188274314974533955191479812048823895760194738550477758913014400399835038655451058315744134650018102789027652524177590947712127602879277763236084523815349449541114564313407880852111666833367362850629778407799398668422788262800978965793821357586017909953289663974308941124715531622759859586854976589249314991609010223442702632818296753724266002492752259928148691002724189705610828465881960131525910631004155127976040480835922483764890999699412806016674798758005957158525746469941806035992794761496272361710853492922748753449302894642848462506885508203837997902726463172963919094952241360097157596969709726102682471291778606746948491391442792077168166903019118134400289440120178875976833134432811894472621500239995772560043974641341437056200957722112906152888439102166606122567197786816693829920614782772911825933389243566512032140465708643726520786587754785647143932787959342299989652097359408353302332128127943031470795870580277338237061412092912740285639203077559308120173720828991372606071672400151630701213132001305238089221503645226246066261806061190364370805754699232083182741070727431869417990000927707271573713803176365152963125702645638032296655646339253241545171559795959033507764923424620431758483919810520122226121739492111547675994108586007200938870981868846242584004487059644539069684475107800715461399367270173244561466153635905671874314407451467447410994370343523682350780444181157294852612661262955369005737989104196589507222735958517843287821044535570273453578445823254182744320840095442229139013887450565776301196190929511193995763461710622835852797886643881922186024913796837464647224563084037377278299900708614807564704847796198454829720651154365866039998081798621372130853418698322983453705576540943440408463650322181147566422755258216826367678306283233997494901551099386559706369144519534106201060600001399301605759251779589320865995683528950574261777571245967455857522405870534328222529783902254606989382270023752212567807507602791972741237751218807761222456178215147280751536570587307403227951752747746050301164497318211857081420541866953863528556694271519191942685357930975735949123852191546881863735883612644560193836848109202251048716770718200741635918958855382079035624287108405245307708511625825216349784710872462303432780251720512872155560577388680098835815323163042375365773611051838121049885457874520478406102299501750288334215155208315644980557885340206968008334182843665336138371278679584658129335177843134655167509006262861850549066650090753964730250132856596270209152242318168798847621596633396852074666201800146439910470669222770716888542568594351357872695821000408717639819064890830189963754684845288437444726818518634791574217414445065215237305025295735647600591526985176256169245000344989799776617726298804729342380089937227531762398123246235745278814170933145819733039009870783146643998673105533685202748477390510756393283389144414188939794567382830096868324674788690907202071973045169570210204814328808675418056324342788751332248316924055781142267516072248539280434665438037784393063278010225314012853277917121670728492587967827347974890163107731957450001944149889667408325243908912984919685187305119697537217708416597735559634564640760362888414668977001102866259616860958178279378905194832484251734966891517688906839973029292257822542591063043861298667701287392663128359752440993107295774958223920624745217878211017955786331838264810754673043557889152476726722871018621260954638676223360745430797792841065957855200174772089545815348016296414337351536017806120980551155962387209224990888247119999470537511611791026016247748779603062804967966058171751033391239849574729173748708250233003950263597506746686143145465471405641340789438516007557948161489189500389859323349626442136919112878887789615791170625497129254516940808858340273969002527443901364661610993125602011378964316969058830781191159964149252386023420004226878006919128676030310928812507360935801717753555444072401314992001119013771596723925056152987040776686858135795618362197546656049910112216296405271753510996548134366376018613207131635852065937943144204501713132562983246235999059855250931535727528218117437819380030901650156296426063326346033187486090599479501619068095902545114087909921997294323626440132849491731053676269470861449447027311025484829463992537649781554424035810487152830228452263912807992857876966256020116216647750513782649954631293619456517323915429029764922664135138134810306755241442619577550179816054983138937151083588799777100435723238274032513685852151759138370907618632676970856849362757888102567905844918975966753485025608655095386486469073330911665062563965815250144617944334237658629740860109801614927112887648244959522568811944536307305821325141598876599494319478152219628673936384436050275817454232680373654076555233291317625737967768136886134118043929469337695098527055178312143219185809956368011211886088652171379060687336099522149387920933565751357957493271242050943807021984930833325222417015251313180439698927374257698265983714222483697821671762102319838503445287460675564978953891046109405015373757656618780394871607895038718433034363513607815419322469933096792176335166395469049362281947427551593271094841908754704654745912611378845508948860641705197657061670076944090172438093428585332902664651235188299724685900304998928873220365047766129909545647607676681583998136126970297250252610926045988545392201415390710576580440440796730733112610256882989086784247273685656379850847342020942681441149470360948367672793199362448986610386175527326242456793922636235569120050275667529583325516076250365364760564500122968154973753709373401584557905917578261607595365940464583300466623857775934804670807531215919387696540968266399990839699609100611742760036463089299387945745907956328574847441902455621529126839622158231425133206674532259990370111427511706919472316410941881620875581586365376990209743369095196755903506320709862840631961666242648798416545286346665163493579427926054220437058901308997792456322948047709528700970345171948096955455084443079383004092803060683871666062729429226361948486866204950685521625508334108390330090215154662197984036705162233458940710222692829126484783326429698896089903032531167153689741592318537528307074732582756237449571564755101125267064092832331437312361463864534417803191976167392320972023802891557121893303500793382827534819790205657315858674606715798056077062218665874809069755224556689279719217065996052381318976946426941144269356211374654441911239004178281405132024472561430943776134675652573152284645553347068814868198314034998085555928466963882587941570550771241196425515125266187536960542589575822413831424806598579198026686653531399720513237319307754065980374505562110424895662737228788884806108828381861080490269583282038491557779339341670231051182545440310846991707409844337744756168598411678442150791941107699627388094349578818861836999105943830728475624743838175519303829502997685069052344382358052112716315322079173006639626225409451159853508002916405869969259944565668695722070728752469302490642553648647546463185049551844393689561296115622724036100639567799612078375568996314752665583692793221238894613996534653763833680300295642809655179512297762955345807858957001218996259962347758824301191587143821478685767520930574788797009398772342419237138189728197990606506945919633312455537791695025313489440833958966249295623696644967281550365313463354270131685218643320822547512324838726874489801105031402322303728810141437686948396781487996197112376156011686516190189593453296397608061450489359883274363470843494312376057643864655447983575399257819448132134020787471332229477014379070698830481967306003432567870299525650394492097409996793740815020488821457927265454747867720786046587302386938184760542066921023100380469178350081637186051884382428322315140120729147319818734606600830776378161284877253548736480563972704650967218567582037299882104033430979868176653981121902147606220958783983489145959057035157674501153407719170795114193982242226582490249594823124694280971729119677175511848985236834574790897625622791961532046293641590351399973127612874696067566538453850861926301674296414278790737106795221011207164809084737288452882044404883427908311017257646657532105524758285321122710234956764346907336085372487926644287487389119098847397087219577527758671934913249492994767364627819414452405763686160089895653761938967617653292591030834607855621618366819816553195747263464206446894193452787305105695656758880563815124729645774763575285410849747564175182779186812986969596549532590658657763962837696115920975607747536857337525251875888979061857595474350608504483507947610624148257755684509871692585237826970257377663379849000944215312587491533148053375382285811246190720504176603329327107926960540540506043299258718812037500722261814801062062299623262089707479449516003803394288281154295659668104569610661856959409577892581211398927297688598134378189814768899052895300328112385123903161652490549296639540647914999209110539238914510747386640913767054121059940340368048048990196578220272285595354188744883965871436619631305124910616077270838774398781257329565742722255381188274984762857258670538176724145454831419669095282240140081590325665253684273498183902660675023368316198763633197957211391890757162580839366307496563665494858859551745709334384503669016203517715609188217878789455426498006767009894459697026330909826129402572916552385427931107583653460718716328855057276104755473004938840484743287831144074829303289414952705910572042929457171195974755655666492669313020365165702515639653330269254421149532306132154852740441400446097218500771593945357636056377913270831033228057250588936743801025882540090539758852031040658810588482665681979525551805473652388914427360155195184351631173661299351515564082046357201770419895876215293151603715303706845826256401911172225996337297744325488926304968904860468696145018522910455573711661845224070793924924835338238510577872218823769042883168792135351375537296092059634877830161929171850306691515557031128935641925353367235439537427704581404680367507836156688995372512954068664967592747580011254395403651984942958970685308065309289511950184260029334579081787176184854669271846859029809043054410595554457876232661932680418403243878821924292519710173476793772922387358536356915635349408311860570524072547578945381938481784565390082314084490473679282986961135466509418645899826843694244062663684257099974547951159880223270339675241171505428511494522241299341073751708665799188705829181116318400516525612989639214296093823711497111405507839533910939762247745226474434783417899355930804288433012518222303507289947965398123458627556498236037844023166300531745933100061965889624234045489310661855208066037572179146722304691737087502718378182552216474931628174772622529222940611666850636434940658524503294608387117337204350478792408446911910723348839041764595363013343341268606447376457756045400747046096911964320245717284566690078817430870738412955325824527609022498190324068170126448975184291081715333318658005971573101293415284294335918830185978565923916562765267111097856898715840749636729128806584455946034286132426041987090531895946595480483889584526139312427279912073815989866218089136054006474968885776621700981010321369785805486283027652813960105983180133633203832502429673656631294434412364302761144540750829804609539195405901400096088160308664494552185708051511163537142970896999464865448614216341877856080681073976095480284850054978737440644723769517239172616132874211382219726096996065277063890363991504971615349666003314572920871596702721461129971762336955305783918987436985532775479481924222863445972371193559267806131032434573008534738251967226959541642254266429137803890164366473731187029025131939216776879227369329398475725710182736741160666800471275173150149973504600463802007633680204295192035759834679435207834430004378206479469299407074354559953407668303058006711055342055368527595758497481443527582828824346146318896052650179227450200388236808346816910862146881815359376764297283448792358046273090813202106116118125322669223830785280356310940503688867583806622507396799355878842413953808897926355918580759281924556587830749114035356958663320862221102201969910922557596862408321020438404760903735618937320957202449078733662435304488727314222831159999004496120381138034451535480630981131529463684150662218002552284716224747980460183135932692959321810527956342282218062699947935692032489449476945234772750604418024184550053320403500242856979144868191642503728065645747220598019103161971170290950212280635814172982608133023946915758807936716253979487485066042012001268559338443245990554717068271295967434763151248516355609851909966248023324896732508316543390249362518802421921541874951867511641721515436845081985117851604033805520694296085452620094666277246484389034888028742286331826428603204009128152236774935481217251429544643245721870836012428890292589641549346567949606999385786487554756728417251212878031455658831917081993296249361833198904537215652425759259120299212381718761759369595417809303842049702858894749574264331078448429643332832850540586577580606352478466066285240899902720822464103412095400220600183585223577597634233397023316981674151138091407153266436613659972266526994473128345677244252484984923766262885536359892424361467171036186657002021899977486009029942018935727738662908303805373175696178715444238591956911834471549085507135420773543809782087794421923866398631613458711380061942662329166084180063371813217530510370596106873154760404025692276207419344521280611406842169346842790752477415912654440953411236887903622530482336778578028381984423290022582478188298629320909426778370792055427088238111258240709441439790021479765740807073669853261414330173313316950310386116126382390256335019120353971932996931071630122175791101344582780179914138837479079915149736336161069530874017618830911476072164402856245594736659829773818216867481737040272819953135647891128882396149811778001272110740214657847379295816444692769299755351516127740794749982432021249478123643928304231137215742126330751910680562197930945626284219377887931086695660995055184810305597626247096273726062424383487758197593264750968991734041382402406395644543581520376466314569188960211462548195673428463383245791439898176799639981236593094462318510378364792734385333389302244155067140013340860273502152299253527794359155074119266505220275785135004948103504472046922599750825400601368255139866696072128833184586388242182980112974249826262633105446185821412677273494931019432063257648956837972998337111528597566335466855256216671944903521070710286338168062623563182604762000635938517444727651727896553025581869870699795584859008183008081815209281049690726354939604138740761012069344141625753144669559708254707263227541056165040082007809895140166740842284191207427188744189663847566287517500240301121384317057803693170723360209521372979201525469738144354867118570128141877456119736747668312160581665566245640705805689998400952988076628194722900544758550659926691915047514230645271856935566105749030566083040677530095345678816369604468757843468180784697411851599133220426845798703608443355247214585664014882539408774931614744216250897673498410877209422078174916897558235139394356676678403255041920745182308574140912032051392910670890340137089146301459116509284980090836914666220755446288447158939131378294236416274477561651894496656798168552934480783531150399045993468492339989373729509704498820744549081862806084124545919524573078622990967468419462446098167842785083593343477771893432102797041533789400484763334569028632976268492510274160737269081358084391953990518293890502245856969166018957518166067689753042758872409281437512994305808527590245241771993353108258800822510092634264226587646157713038256257992835504768123514959391703793726172858059081242870923575529289608985097394351398956189789579195725662688961228573553207876314119875121448533527199227980521472130409490188547478925946450508112248593013974945085468510357633289874814682310790343612256533423461779156991030227826253923680399859220014446445661856132197084882099324051190638105211943538354238504462184917864247005416632921872684039838622148967559845803139627199850933776845901968517786339507588636266784538601316853104613568991066096843634742518943930954146747428857767982321762019701918886295393680487001775435863408913398097189450132586070178891248619167581434468916717061795666708996081264802060978562622043806811084772918884472479731252032351102243914567710056120603099373432002300584019721609041690350842791845964844660721902010996418456281201176059601782885220165393005699135769203333909072912736268121157114720560573402040211818780362954187500619757392031922786833196696870366989890195772770206449515253683126162353065465579611999225670686663243054499138580011226926400754535580175272692012747101753513117082382285721131913494229799873719418364322628632969319675634858506895380333311118540879787786478200054884295132035926565903912050351129958613088596915032709219723958688456338423017104691580959725993995409302588383968921919536653335218755039735174577809892919612064906348720126898758984254042363434862136698054577355084754330959210429831247330962852559200151751184341363345574449007715904917620249025110495456596725139799860623371272365369367498392494095212871282260452027600260903427776015824270204728401022164457826150021899673225893459992564765189672809413574127729655493335789069483988912053656658876990805082761358457151766000605163531124262078367378898228495855007746268981591652965325509087830363206997433254196477393729896965876466176168238950881539255376143214345828867582528925748305343927013235426788713155952022588228391102770945215261735393661218787112759330179340951788267425891734406437990479895834030231613167245911116630153285919669782977404480561106693970906366193497627906425896956611003575900828992761061573769458685401499357246362158635017698407521135150738997451429639073456449509872981666469110113760301379509361286825527049589071247159253932133553313735493024509314569410814135929789670684364058628717459997281667626140087340863471152033859314228673408728633121470193910558555820402131214211658174961779862518320725394727907070277898212329357128966576989160052077174199927119032636954986481858966421385016976809223841814355509022686869766022450706315934272589485810554054385763599264468079191923503845318916040314512322038258472433292534408645662785649357799346876140681010994580133415695164150066702651276120088600303916232310256737075096860530661196432545302798964413151187873001083982514105692334612833846208859294285982118792645490488903318573330853865820552041825984782398037927118354603443269387468890470462601770976099942874909760948231697422440192959627785653925598375264324835562273318009635899618954980106254373348654177770557803292395890735423050486778417025530397589042151511509294533539638486068317242935452953914952673031292594633192801252478804841542138429057611889148169942205662910813501298511066348650418841962362674101608986645354042062230981903980177517681035629248647301936806465457873563652602190670529482990457888426212654115444399996358561488825807379133370355514544713764057404827848092292893310288162478701711528231611262673831164780043826800317464210110003006825572955632380704229254670666094803332643640726006719023656150181846672550609237239044423430820294039325165819217941115076709116854821048829158016683411130481195473564016098087957077282435956158872892473874155574048863331539075779495238151934504091772082105646384286351258935956083859574598779834857883063601057293047478990395198531690580456638994483155137703443006212551546224503007147197388467241897147876212949449508688123839808407280584167005880584338003129194394599592104273172267335186352044627850449683013538845190731338749328535700873388908199267198716837872692725235239970899680862627919795438034588267987021981607421122290490476328603486698201785481574811060658573573955421538116163347038019829284058217190689545755214287387195243595282407784959778952288648461473504698730195262465603872012945578222783332619977848625814436365085224151098120677858323210862145439126296445079116787298472975165393479642211597791063460390117745064383493596857096548245495867287565225524966341194828272397998108941919170824855628831971059157266547086551628946413172972430723409495519592181471205076721543962669176403121272008314481125492781294948325863026240685120053172876587372006140948808598882443097661005951206938369562054025657808224004322999819095779774125129457344096386328792647681639734180132361762279659346983581914975781325351366185604768664714984891526284382032911394971065653460878517773074153443202306412975215054194169347610623206079417611111983144964788748067713690036569478200257153817967549084891927842427677763347272063060384772203063317066276738233497057230534990092448673485698003150838271175474396480412000384730023478115743440590837043169617877173870965679545348487269240303842749708465357532455029568436097807195810189036888007045557343863888451434995855720448478293729016406819765646271460834924391005164797386369605680464303838254014637037820363970438348032164038572565825651378676515110487558522266157563538513041478656542346967844329502344183179232210993282985465421524428246766219245524146716282020599614727744829894000739195536665439283060778855522394435260017438736466288011334288633592659343679287322698208820473112167966912430504280727386479744900740544829036403879748484710906329396705222537788592778476868713043240485572756672068833335560375542710231678776906587472632165039220710694987125320986243770076023517585033689950433472973205736290435464348351051851154584106898304606914970713871478260599278865963376173365298328923256792770025605325007655718424086186445043767929899168524504077390523465004613617132499206899292710218057591946680893670323446012606760007122297374323417272030434560566220488530423748810707187648987977483782953623383720707773529185046869250039768080147212100744476571781945342196140739253599097776042077364574022950610768967799484403809037020318909539926018954868664127031415084755077312394105956905259109162004475385829023180850381765972955277928951374885560989025078416090333182558526513976410003980146467950143009008923317745627216848051671481565400131517521943413285600529654379993900067740548668414341963761922472441325833277275721144613053629949125916611911221245206677396175300479084502751806573288873121512335811475654445824613267012952144788480199926234250193582142937437866680934044937773014582927305705982570010141534745444675843101920783025352948373832771822308873800392202479123515975121483176826347913875710658099227426208924545001100739111279723003793578212800764161592067387135233450465523917017299468542335018760464809223966698249909472052572445660712143750393955571233550801521553644563561398255279365302584830408569470735114149088506069126461367116246909149458630816531468639867737028998651370109212601375654710849480191090162422596890017318853780655542698011161459047101813483591628001677050944342788215886161378542762454632114034479913663357524020817152448627268756019852236484479750595475175510549063920313837159877164834563643675491903934839021097437450905989047943593817494458051125627606505132891989289343448973839741531069013776182966211476673950806239394866557463653861493367001436596717921783378646949705569634341095066336964398350760007766846356500960718469761357479617425139792589504264240372595726760447628493384974838576442955470343764365765077841745169725262168130095088844626238096830978655280906837751903601817289179545744333624777672658926722645452135621707659189600328496891660644835599493499455667753381412463595819693501257414040668213137153514403512829838662265876483468242608143587305337662881841887603492936965853683505901458575839865060200687873623328353822444477355288205320553000671264202483006709124202816090274287844222251227928839337354397832773254440778923493937543000288704286494761813962092764783539649550187168796745106124601172580247568357419016151656540804204427910710033081012397987668544405171794961186816909663478706000148314622845900415216105634049926941891837608486555674096151672700465871307875140505844121254682097174254256461006864369914903505473895408119449966476722524206600501495185949324154192719138318482876017768380010981502443680164845628453273896469224911214444445142920868104777884959417786598549364357448791311442819457335848591363069476540217854620526940738717342685645239976877725244466797881409915864688819390934277548725778077953163437115833304622166034491776880637463670263224070772700220854622063738493036580148248162908471357352353363465421103155158875223440567266944602304084603962676719541575770793179267262602138597693559672779594972400363485079471121615296934211938851874060088639809992626371366488071621437703305039666791787298169803183282177060992118012747801865397826558897676829104484824650695872477257984199695794345103838921429688474767686858953486817793929993392052258133925555894409252613547667582399969050183880575681306437888742952427970575900391426936362244425996349507960603914422212194921321694974387915477550130479421306605657562841561305149009254685731580329460755866194147348360723847757489978656746671648185550263682740432302777791645783712943831553482740557559795326498552027379765725291069221649265258073530903726337667812469213396975597948888302713371476981716924588000652029362678134684995772253129001870512286103979588396108423469315753207528258029476692303079646688841871878692191381233818275618234700173946575155376401414547970321156501555394150635662458574723330715170139134078583784731878012383641263424668203992546901368207052609565304531916452332055576788812271218136505272597000229531443063698709371827946845843775149769134260687096056161482012461844486876910449809326290809351357902334189045517654062248890677395194138944745875082008284099652861780143016644285866773531658349546385964955553343570680722606950515158465059302484208821537595046441300618267528116005841930872456581689313650154981239870657796629483655452952318691047893732594673722665194722954911587948461470499240848835800871790023052138789885228068465990399955917132390903272819418140525697377074099735195496709747075792363318471985608335454370861827627051224922199894862964786874436480199498058110076836841923883188236191791746722693572640029469512845697208222355789162802051255243078577366394103441701509986833242107648849225403116198554069133138981941037657472142794853969667130553820898417962508346987967577217391216167828426669836105386711422988660511224072808881044553688680563946195784957277659426532860611638821785264603212954754520801102609834430797880522407351385334910404516501617531762474668774501358351959601282171167117294774878069057730630691923869347063920045676122980541655826995723582811815066180561086017887896476597200344369096060496231022621746699352654916006896985661223860055213929449872044215142731302197831069780136487789096391843359662739427557998339929604143698453688882493979477467591763877220727924066246343782711803031485804652439449430749618139505223391474846608742730633724375115341586073282066838865643552624674483954317350396133393473703846549889983135918397769417977662906984237664306681696628406692831823412566367931267073865999603822312706503087148156390815397273618064451423864701828902329225151582469267691743989741569248808876824941184683869712233320266227780846910365646441059381870244860591245294964072524351699881598875097792257310770708408770304808024003992835887144570837628830797664512428307611510158260209589827431759198101869663211677782711709695615053811527379534918552961404971577096542845218391686113246490769302059325613983938193478312872755083922118996498109552298723242062574123683427602302209576980203146680126007463606413838975668894947447740033805852675671487513435285377575027115860445521732073405051242209786989784518704158953940870894035690043081508055463753664806108805799370772759029826953886252222382228820209330664210065177892404521879723493476193159984211407218547608863124023179728090840850585440052972986828632324496596347177223658557471965679374475655209013521505552485483994664918617985411419482336622254171589696961041520615610019663240520668055326528458006131549003076718726882160817333993822179430499563250425098948855714556344676253448895611982045866049299381254563280090182439288843893925417669662339590596344329048034269469440491198036925346364080756710469958360984452345056596123623441611500796659490766708751688010466974219441706480399235849120840665602728450243760554394866172537051944089803720344915264294494870558244330806850643977321179042744919668895160113568144505761445391843831722830874103052770509438813222475484737169771443972121837943797677048481701563001191255951117755157922499816277835788399984580974957156032167259241290725289097310873157150980467286955660582017362645336538115027873585748989264684188051623304537836709607449253093451840227440462808095247062377827026484228094058105464580961833641860750451489768522121773069420832806596794377052377329997683236231469778352333336830244577779918106239717307544486712990623384826308808770325491122942228521886688705368026295003563039441226474082268508982679901524088976054791634912394234954386992707291667935645851861949815289983034232872434104241973255430527016891236366897055819479450526563299138390079066553037202740938654012838728921600772001756790090426613669840653239513812029592152915154721523352567019663201867369642925137548576809489182097496193837756091168181541866732263731101047356170257587635629162454484252313666707181564421118675970349789580898031347388446140648541466328645157044150436719712082128729721226659761891785202759373662707633939338721333988421248671808354102122259724118925557034646595513018323136638139563792893715641119069909933207966131740743212830229700272050526346160133395747418864943375285241592246917679047496761598235823747754900251651091534714392236136786141381226657660301207937646398816395262930790922193849349455343898765376906595698773110228416891577655804951100999743788672992604463617449445342566854193904043791386813958266033837021499587002785843624389136993666073614108752696006784769469349119214080585040263354107630072837198164576210985797646363745413680815343411483535087882914822125054774692204309684378157840389233517516616801743786149454344174923044890459104183661487526498717459577910918157066835871980852223232103182639392890026479452460137866091917965864329419499476737722223959309500732943400528394367008163863700648219253822035897483097418569424931749616327846361743484197900409932395250011760346899603639383819694400730004241414247623575495067555731946683693242514866995457421887919382233579267308257620774443525311929540250436048588817679326794120519945010171474252536797887385707092005408161773100778255909451688891453748417951392463120924204996762251966174905791401051790610991266441807962573977309066335281400870720387637469443555236738105767737093343721624451160666616000411270628671399686972463701687718235831214414155996765465574158800034954725730995593002678587155188063336880680487905894912641936156959291844909477036879458413027023378464581533952636940272172662705442051266113365130721623055363212334212329181900529856648068111442058507678871834514256474016815449839342687860324488064669543194766382653366950359439649707086457187989415741327456007024525659650611961356626232273618692301167767793866125120578142830406418818362186424746324803035710527977103580630725998339741813594781863772716271663882320404893684861581586592159859692423349638196218075559228140200885261696558971869527743776235620144322585707653465821152583036948936403519169818763830390902095823534922330266985639375667059185326531737615338398584307528564743622706816103007574233679162892149733271499244355964575589445191851102200611512606542210992713630790742215368440724638374557285988901226283608511915953638507308244753871535382936689930276044194988753548892053303988798142767888985538694803446559990253388367759084009716990816391429465059616628750146251688479955362019200784187139701730525571734028378303040216103743468360603491987863574973721610945264878974096308384472616681020158992970604913076069125103146217870715841636169777280189061588065720535647956410240500572474439096211579142115865127304882315630365142353311177693833746926425153948134772299487820783566792644415351483170819938844550171663494492264867097231487986195901891728703920660551344011515785791477879154985804609079682806816302596920010946136406568329946261264096661191561682767227910579733229623375580663373245888137651644065220492554417199608041981918629460457632627569770783739592631838958572167333511653759266894783195413758915123854905832960098127629922683636662460189925073037860819803741570695772329040601363183908067505553403325313537802578113814350988481263668225313993002365350642075979942816094882877882199220653969635076237609615907848878576447300646417541451506809575387683954301342552710969279074135195645497170767952041672269909192109554180195558335041907432022857829919612023532442768709045724455017866769718381345464568758097756127272097012918819447387174695065351080628812959974354133504661413809744536884788941505747576970616020495940372592840081345073924319882160140203571887416429757023218929706250333226234510051718397958837270352890147710057401060373430348931620461022913789164435439563637940545640309625883285157352241725142979426811941126873558239666353872713728194213968732054355949830187198678220134303281280788867562386508596635316437487194231288114584957304823655683769644831189524115409960229653370245647757394261226559240587692386909544951138244380786412623108257042149032976173909757251383153785280214522702567673703127870251537916189660600506589537427038327515290851090095034291106025023391354109506470801516258294254835322845082248623658684101066433869156575290893962486319433039502245611886135324839336995424083153188275569647857473586570144727108485874872240483605323003054489264406958161982840719325655764420076287092440559615024049776625907867940988056539271307558420737143457642986447182678785630419289889903795167551742441024703894185309770718063114496544328960777212527752299072722171857425103069251973405231889639176178490030709257534085188032405499782687956123095917018771097834847335264079703131915687512520598310714745979452205430799241392730222739395761542743737994266624183491814574957062536746704351499281054965483430367250315010862044832769039973403373623849212846049184494281270333753765217656743241809487828799041029526635707573092883701141604767865142348278098627125217348458880462775585992501813585697936737155097790507338823080973784184192181320426864909548953158575163505003016120358634413063298807484293721122680772056866822687029618012622694748699888183142892488122820347507523202041822885082807435593757532312944027857895662195432968540053512618477352941409781537377586521618671997324322255597845058975944322136516475348145513170208281128782050104836423575509065037114453572056782578387324905942452249290409236552022590328772629109109217553987298865702474000599574124457534420224044072909598686611065638401544804872337290944849247582718611921421765097643172039910319695596154452392696829394681855921012354555632813968882505233837263125712188510553834568659648738051950019026628983881007362805533089451952855855090661460254305735277199598596589556503050712619960614780073176782342954030041334059520678914595118643454724253822096308181539128180545878100691057401298872444220643397744069742160265287422967178574589009041105429099811136738059494248585050556813808637943891230234561293610504706144298502068369753300388042056601718346489758838079103694526308467166506518129015678250224894024588778639682968229891759498275777518050298255174250859840647291948338962595969513269194016655762703171119965499792620880462211339113420572810067212053540068191360324000073764586868607640941670180862248581367595366498358498459241817472363239004600009960382368346361962392516527602387617366452947850254078289396232466543476216344525667307578010219134194779728332215862879173444555017905818374041844483895817192817537543646222630007807439829508704866941206496361031396981504132938160900736712588852135939350376565728099335182007018753550045099183777414238784615828448039728304209822249737868685219084477624808467862625229624954086473355633003043336552229349079328329193515258989244287818054427618027439257962624751562652186258512208387906916197764389377774975632633566265791238600178167763413556010183380791398920798034273711944892589543466184065473306566840946802250878107618691450836797475453500211378208595408540274173574637506243776552435171064141633891463005686250821421356944437707965577456014513943421068665832795708291887312431880746492189779533880396598414620562522237790778616639026152300130779805126002421898456259386070495545292364913421401942757910133120617361625086871265875036452649288496165199235724364582487378799607526158578018194426046368780903806225491294258018308386443804707814951893464860792677081727487787423275417294738745573192171493326587083084414961651761285582755362116898878429727677644922958175471775753405582888430939556476490848874578159492388468827920590478714778604703130446923418591553320224544659956421656739869208274904516981829420791469927103377372662319932662082367630455439913506772779924786753939315089474321693765607015485738875769661329742539753140240168267330115058984462213931084386887702199925372440881608576051666717478947349193700502898108000368889095671989050620581522971605275512989806111404446732065732898737864419149503474003347360660050589845369769171702975813064705061077072445613977463828917415151617221512344226779473589026954502241452939247071491300519645119255602730436035596399065107442954050652702236957295308841559086907184327238749321642365043128080859102681548386496822906631396316493384320747880358552664190994939043012023013663109470867300830510084023384838156966052540108998460738073517997261361295540293580216582902949367673340302025710847493158028574641051017378191730351142071899853476494174035812096199834136720735560061230585377220713565524061796139624300809562132654721622184306828406185150117629821623770961518508933496504956270584730544462759959164966158989712658731374506009831434511375815012706648977931665398195184195004091148921956616782799541594846412501828181299946008087039602104503334783051461994330037865434242996007093973818051922175100293882535523631632193260577224305017301597662884648800910621409156971614261177164579667419118303706573400142529524941050215816436049837125742131171959289491014826908609340211267839956125091875538381916582110925316767780142907773377009619678815474190069609025405591092465258104986012512320323449454818800124746625779019491327258519373473822472117729844883484993264882419990059455860752060496294767058717295793614645024209507263821546118361544376442295593189921145729100610521045895388560356928680442379941674630182140113588165715598158666178667592911746648316196684901604885006262226426252496464365090258397776654655063932230106009998692177233356620500184609389201132305769375536162061320140943253037338186927922361687391818041380769312351505691561504738595230752165196766078963544552818974989045181619539093722264584927853873004479783296306706487465680834075710148087219213953614077735619781332325423898391697606413564644657340385644660272926390357315422109151050484074143522659273071200524276873465854447551297546119841640320334247143022408792498671095310858497678192463613767307287019723237875961850039964344011255426577819195143865786643824426886678775677440482940925762019539894468510608928738646231412786843483125548649535338388352854568143169032102873598472842055921829479527743174407000395092434145950471620428221619771786448278082924533326571136593932769495278757411159823688177099538126347611591019440312457139594377011766487901793683571052601089180682862712367927493622608128427322980970525100021951644594164152200267747302286829004572720597721288727909869249140138554539540873126275852369584184618596501914603472885098222219889771141511852330484835794815167339642631165827253706178480257763981223526950853563193648752674238353193010892297083927613799666499957053575813528586660411777757897136544771911214838641813807861635320240111902188239656981619830181388339884340763859515989276252281751226452318794462046463273875719865795321073230069298761780373302094530164041972988336307773709040577349023816407795521356305217034347299797890471753962695798253508715162015567705491050078055101877615010056654403228455921553698883338617303831303289213268386448973075283261393374135278626507510947895468397088953582685658812230776463706926055533181971309022874387046466428005170210915151925418891085717677946356435394070113382322714524110466411979222822945183863736887738296671952303614237752914879764678563850679406274253970895570966645097679655314981561123326016066329224866636852078618857995423491990570412554663979002895805381119790493206135028425910350113848940859529054390574986640648093897047427457176043594933847752532944347623157490974427667699252333929807868009537060762516033404505236196186535340168728541492377407095203201607741025582561030345484672234497803951836369692262680455045539610078041986826147145985479835043826518461622853045184872907714633360060073597289945205388074373346790177686252599548606218309951778966734330559093086623710703936047806697471760043996344529646026819371322552372379209244660796972743883771629431010963415309256188751588900105172312022311348155296299210078457702494596809087554045344643654093495717175210595985560588193254145329747582190687768450760065092938384712392000935357315637514999746601629200579534713560033899160158531265251089155847671060835530513227511989470784573311677715354626180252034977442053802493308607501386947307138375764159874295152379348901340664197391694774812397443709933787498542938202258402113908206466462843742941935782125487306504885634351139173940705906665990762763631470543966586257849531500503402679668028050527694575892353456149374257203865703264285524398452868144438017005927459090618748860536310704002179401094187259918260833627229524089628564123724168299280697874779556432979541270738809833155547726709585665195127744868224973911151070172847638473875404221769326557483514226655979946802575257589999340028201365618652898604221759899178994580619848215083778242136968793675268510730318079539906206489418075488956106128598929163495488936437174892063249225744439071285365375823782983712517042527998937490287141432356692156120910273555658371099757530912401895794322592944581017464904391993191592778500410707347534155109395263066827477615080976792423141741141376912171486239919151668053745446835221864969022992745408278862274809528097613905163432957765541929850115195251622655878327491810732793930439183568747859211534671276091587094806514448274818838016341962084181206880822020040402044037611562872552982389435782094608053495584870938279757345567648545686341794488674478068051503271222045753219893073269745411251444600644338033836368043036607450885764917372856971272538534718280368277659418555966755294382908514973801635553941180901103332329864731105688456213393632910955216387181029992074203978719462867411004103811454493672363837316560865575784916799543018041507830549900312369184207681455667426525734804640155350181774170487886293101951278327469905705162288313864129956839218200597884512771133161854722084578742516780906475434587064582678175053306784229912259411954334163590346541789474888966188952947940195895586738790114017021586186351702453391440218279874224445986437506871688616390763087841228809671208773773754498593128467904429945426154478530481600877181863745172723778191043548184316923207397131394060898192146675786581860187384160027808150205769831112074734796336406900052427031706472469213731372480783396640363677619159979213966711591494376651670172120033341270307598642093408576079036605075013997395838520331675857601485054312175770883194101203023753435419503596968904670555491732036712927277491598386470460703807545892409445199648056956127328742116350895449144720182753900499115235184736938738862309357028835233450539948254221689488492178072353843289835440762864054463249273470146859243572039668522468112322636767453096113000371200352959089207440550960697289085818729377741476522673242975705318392651901160649909489649175346080728467487013833779185979408304867002756712636803848790579056882106761199343342083098422366523762898824388753045641147478472893035227056199112394033498028464272847511788970098151198378303325241517303932121220898713964671582476171269084019109441868133894610186928551242542943756407795601794231972565310643930987832612279603072040060899864254651900981975955773822204218642160164237595014798264251701165178064672975677331455842028466758402865744786014301991717567003969770235166445169314646425289563875694149850978135279944041248389469444475807674738591599708464086116242607902365393884026620919387340945416232133257258123766485142598552095953990292787815219823905097277969276458919503414300294227459537301727825540386121777682082032555816199592648155867413921050043461390955401027258539768542460789815614202998594264334578488334384472131690650715519564668189283616513673032135303061648975906094186392754445276657884413870177184937839866047588393001829585670957728420409266716385120978256913932392530062495539619178466814958812334457004825988511949981060248729920656286646867334206436946389742170121620661561362026522617326635407290122961413055962556930841281808376129418684603924572217603699030201876538671484615790255464215958210398644981741910035165531376219856587360828744294740308795900499128315444594643062571833821270923283858334401166811464037743409545684223395121703465152693793430744318124200312385529160152214841573600721208757980677356987763833766315114371882457722171099995533054539615645513829564310291076904496541446767758004540559087103349648437676465721758736678777787606481247765760534330258323229094817158144434691750684765622538069388160429336158961514123910692952136324032724949640505722706409489971947609523207417716441934784022232349687972081538521919562426610877675110684978649032228682993983205146400092113335081075225025494306174514098154819565882233623632392224726915484122962274066150111274677934000525169239925884125955680352483743738088340181385285415211426247561054792471818745232049092099515243289539793152582454653106321246667098238931102203540428738848954325200330918398866635166015244574296407416386754863808904808181067247894052567630034752657165702460634813600231779820368927592996528754889793509543197635077117501647818933072318468821543129165109456555802951019226896391475799881896063205117445565631975455884795931641507474895328493375623102537279633908454269418805607343917551272485676749997776050353692266730388536634574295068610024641639329020419420126650416993438273245743068900443484890850122457833898414996168918664638226029719469364815295947556968920589817200737017994864839819426897104543877784304682386464854252044385544729771255342578651041296831178151133814008665679175746959150864220345530655274570689416582068246903586063644629091242696761398044928687126277079544229881602527183295353201799089213328394093873049930815683262228264446905459496538771017212056688190302505337815158084388977087991550530776326748843601215545727001523560474803043271210460110082058759253029409286388478148383293591745910357293667094706125681608793736202329139019446721630913052928529128198343786385891909811933149767397419503191110550769887399139764466287759351642260360252480552667435128257597374534589897888470950746166021472984287720377068167261945153455148452772849863049127858227256353219936576646449890417429386349862653433533215925507495730829339887643553574068386069276150448855172546647423247576958152841047438760027701549505673127375947554433151199577459856580473764411274759841197204832686741174896682705411619958348585748323925799134317016945747111680956668953353587183635965188758950809687940742966861565521195460631001563674204216418605970816780901895356950904288798102054797109252563064076814164345090690849608823304047513158748810451903201936725248700786254234043668758827563025439035188075748221667490416304730726459434469370644143173761125904665258174762357193871110919617259584182821655482819891897127937281137512488452799761529074564432151046281663390252440228982663238159629920336593530990542342966591352358402184565951733724550410323876770217303501856200967148532029489506601334805639492387714386740728822881201715279722399044915629839997385667458076682849167699980336868461475130133210064146602785742944445980572486509097601990371481308695784767618909273399250021177468343335163796734377515024069658636405973063614302762339126818230415466209121993187466690917101109139274950280984185754295912082578849652783000537296002094704737915573279105544433460821054311937508305422151495732359218981904991814738478925287204239716281083893091317825515370799063004337332035425528134090358718789925921326666248848274058443173054917102056773857880326211965999201962392175912681803084651209050915219318906898945004367708889065623898064994413533840025598462463179535063054139509679740987211778862711066465337172030178927798544453188750424503379284682026345246181350013215492439332172356851378016360324923330290424299693492579237635157469074846653008241577956741527321570778444453843906494450997174440830860261086245984757677446120321697031239260803319308290822040250518176231988252253142053726485613822027992141249868139140664986557803260114772623243048077982946129392389494689929122726911822663654514237212258577882850320588988095896281233462157006693903536792297507232697116446054581193261344213206861068286661808397232912203386052536151055953251342720410631235063718017235770393694635865448647554575725805626105550172298913969585275003819033915430141244315465881586686944651559149789034326880295363128979208262406325354270118828399985841793305674654345961321385783539804170627928052614243762730308176368694281771770564271787394415548565811718983029340600982732931582342372019382380714021140124049470810240683481810277409009967167564376838428180168900118980762315288699855045279407574397709371372042520829950738122147479012145900925824244402010640399228108500417772104790436611947644522830077196759689313234809416475734766001723075141012567172112878231442174626612068810664003005396190444101150243603481677978542733522928807035333428587082016319388949895821932648590270788058531502808012630602719141356078644031017150677183081936139658724331033448074181562810605932371009154628599802188169547317418391822159634870612186718550574067198073177809631372434406394767658019293488941046993764101435919923907099183456616800446935154633192230363475322553129132701029769920323495819617204312236091887077766319001403861265888161821741059715189100134112411299666826499613154871980034484574481705640569113051181144280966912229406177400679446714618788968468581807281278208947619655706581676409402897089120617799374643392362190132197364484462193782492516522582860515005886554096216519722067178305018300987888292050092564253266177045639784565175241083249674804341699206220127950654857437615649126287088280455918802669361201626858622935782346485488266298002525314719073291158748489836741567672949843655405945608569958588871046316630600529692672682063804910399383096857421980100079271404201460223044046583927625068517720943263828720793656310230180875378925717380481369758494435748344183321984853210236000590219684292121256947327853221559724995176728812348887409529448653655753796837826952709461911205169748126285788497640636224052135255680735394662926804804028941168876139771989770524079363177707108700418331366847050484876906853566253179044721964121807726347213381730457856388341541562152374674532871186010205137922804602204688468714030486465335803615064169068524350676528131145459485925957157611244071264896964292919330233187520708909661960009300357323014235644644828769792288600486367926555043231697243415923288805862802054635781607790762550997395740946704720986434018101282290217205235291333637923941224000234432835397493680633321240149826297761606331573375665911253510964321927953843117048061049221639958445139223518499377704354159330857579491626568912472811538790398939102627387786324147755394914106730845522229341593435069410546757946709976812783891675419623565549603858317583043880201636681509384692353747018799919901269047520287480695209883857482480332692954678571122802641417042883895611041377639970386052741291501741431808051572280945796571224701077132486686883203271096069386327701712460286552479808594312477429812768061615982452874456757006492600673917019721488101442778474538759130562490815426443921760755163593142846372988718397646235683851118900227539285391536959092054723133014679696822106353086896318673803690435629728971867927295261200522877894827058718777805834276172350704377929739665419710883890423885529008640456907924651366668598750988934152798639402685452761073550785001671405094454214391225037117337122448212701953409813672239794301159485784599848777371278721970097683348606393193117925771842093193992514654186402716426890123570311710240085229071672013510081129440257752800725034340530724830673063552013216335735792700232248861075675072047766735319322757676154758389739566379852767584578332532874210572778099242863390467117738558690022995537337570630863043281345685546069249367375977140047303230941813069506732279020252420909276923711425431871665013841914597761440840778144496555033336333752122166786758570938882256304952898882423484126588667754657214452034047057554618178984571124085813935636409993148133935500966686759198768781800116141255996801537829462149921826409769691290287543869649204372863434386151321239490735012812576457011072627773053545822075741157462378753620376797976581027654396202755019463404331072110776418294179892141578296628837286415259179018042373927188007332269952136489768514868962103478539597913352728088526307109887385136369026691604704367257594726823671942300775343388972284930448027910623786764646642692253302159986145569595424113205294874113739544701621453731319189229722622827511701932980639962970011594803383873528726692429403010585885815393839060643213799051734443309532258334310705418133680387016319032002955115307640819624186372472604430343539906366680530650661001201757636783302637816558586975983196614557726345568822167045092211543058292854523352144989380264395747525778150431402375462189793445381401583404747400335151329822095493442978628245446127177745730649479654903157361693987304486589001800392348653059028717309153093426824508102751416846661599667860296169325429838641148023146569577090126248993447588042760755289821271265290566698502254188444242336884104663113552381293225655538606737274923258288659323841695619700653187983320995773458882060964016497438518528314191490559082264307274836747649721303554810015645693708528913376958306260248744307974342906666035917359427297585789799693664059567663763473325399434442663681665106756053537603145985336284545332561534834320017105221349426733321914804346427194635332796447098385463696378827843378766549677883700237097857442903891330103411530394762932779690883260382350306609399428141450579553364236720675920751250635336043762551398491774324662297168043956001336986286801530580574656140906886396991028335352152545410040560199507619060667066541611319221659929332648816233671634924784321181434266341934775377260863725588601666179181655489007200781486008461312000489602389702794402727188987794688348485076587008506928229903474253412608005616740228324409474750436528411239895297436961290405810899504866231942796676801291211823917322225422505767705542857572937122224821740164193597626970496798227689327920324428663575012135368835939879625830370396906697451482461198507087840202409164476405470559238174638346247437760644626262532369889800485090881816977542921703193296539793065099316044363230793514942893709372191424007181258826637331415866785103460977440105311252039247012680214418177723099536396258016680675927971057331861669224287881722642941919081904919483348697476950677038328874733808514642203173712664171436067978519465834152325994567884354823820662149565280206525148156537648269719617618648386960133210836164939768403968378171370875422492867674706763667747057260446437042375564217500299384436565520416708739379278430653618020425213083702088669871839676912745787579752236644430019912002598044740398364088812044913806860583129196197719717635497892728710312112354834521125769732187966294501064126566389783169877477420191890433320853805997375771373511890717020086570368739463983802727822171378285336539989797624973772011573318588693908310136184471090739551490771057070571152067748456009179074861363519484970268745293811500792583726130334616287788879804091941851241438075363074924444034174547169311618540565934284199047082455418099321181918819133129050497770468195295329570643375335015049467283726349354085449279811428646246039997932099079320966921621888708723741060404675636847014936355205321953720426155623609318574288932945081363032940868415227756904265037274920049131582623902502617522814970744921568994740213684828290388648940108935816885452113406851562654274566150027235879020697989479929792175438634081959623209759923424679377216954312746807541587352285931266382205538077986826545885821203012053596556089988700716979029866690108637377380330380579878791072795011983807438772157777353133442577590065818190372451792481134733147694889012194488441553543039441699771182694459997837278950439559277638855597504865178932715226968148076840950946688302718627650357410274655879914051701603689941312481126097893085621573814670411865219477822273685304123738778420415874404922543272496249596744576526609089790025068171213144735144839002953337173056594973738180465602422657361083863364720503117631727602406219396864427503758508572648183868961103157072379180695230716315930409244554830361280096075118839188374634470025183219551186262660206344211078002598151462657721161683901073626552800085949631752139776201492575823450788354050073980742455851573220212063856864050002311604522184543428329548438134247609471065372244552684224187798283957440929164273532410477117333728313817855726871121761775316586368636177028291448607136627783668659401445051819105543430609917590397124777804501781343588122371478734613210424968751906099238990514816419562421538210363800727556975885408577720621443422322184552509252610914033602888022388551362676507204050632722887277268911149574979362238784640681115601222933254958622120643515304954815163488425567180738145558459219641080806065746449820102728488092555153972713360853372043366499856379082701675854984949142394943248547648710299813551872137337045890976948079321583831472617472894685265561825554286975238785868720586891421203257474045270430634989196206293074926536969144112851541970742410303286027230465812613946545744175489547335990795159950696475530463195781772387416660315172768311370589719544827566058839382567428537538730512291973386892533347458271286419349180515538049663893510778647909642906801056785207940790842081843102789094585402410232343181713013071259317758079918560492320693203195897591076780500725784025735181756387819861089884102703541190283813577232579340292528692078386597590955655746799979287127007509400284054293685444099170167886473889874308636489784529936754614903706018476908890334174700368227543555654236931552438668076972264601886620324660329910533639412377229642488234056065397895561134634201187148914567560314706968512813005000646771561230699894835872933620731687911860417719620622581106499242346076925345126243603164521353574753534556251005203386651461597803040327658390591733872331370067367331893237769559526055191595126609138180749402786369556720596551458830626687143524935294138592938427849239262251796984030544227109371482368425663379773559091010972621534643121941324206371302552974731358454640457732786456837169443033646779091302944575578544655676549467019777294977242782365062231095838126091291249475911879189636668226130019227805125538225446707274577011834242781336955487524205963454855411440177065470427999308183476531494456072691463750519230210635224113422814538095196853134225491898401600028788656219079520329409198957036094296357297769929446045327518976744408692147048123961524925792214434072071824546740094024035403058647435729402149914398412192068174727339431160194324673310512106502448490549576985364389267108474977128825690857111985079235384192825484077806391618837688785192358338082473490168218332406796945508234758777817033379528156824583679716106110455341828949986620347667233070535219565200947812149592077368684735022189854521977005347060650378311808731940529045466523575484036597334874201613926890422376803149856838231411651660285661723154080926975168746044945123521832765219527820986568720865421333427500693092115463949760299263071857834571511987329186024596246713709702147432261816245092639855676700249965143459766172053085657915402276714114089865184607425405735400928326705622337473061806110344244769156006228203698886371766816918415929179762005755294069421257868114542399301044023266950718816856832557754531679219626118796933809647351052036891742680347073533914669352187296913363089148768586430089963200970118856252936221029425381458534578090313728432179143549345275979964013386459932326289230754833155062715899040332707539041969368873688577928627764909724604910688216194871693421485299473352754098895674007503807738495220260256248252751337601625541621437558545636840737751810590722239033315939757834674100289223758743944219428979659393329964762738225185826682392220601783981971555634056610491739418765690989542575340942987580667899758977814381616225434525922409440020731185953924634942620251551579843806657105422007170455400060872513182339749815802381083364646528767480256275446524390163295730997682720503017693453001438674791306016505483978071937070019001712216301416709865248225647582635347382214180230554167475884991643879174714563165075024089600358709729887661632885026009493543511983373426720889891894888059639863697003607466495007401603959525537989224024027267938614536654115466964413602023851605895094824647181838016078420594824571315909773082037745029009376212677915856126674328834369348018593278432302426605969510552120391076523711173165576620809125777379648125919246032326329494998329319217953401745770324568368241900718443191014397738801368887326883628637873252221098695980637441083532791136728119516165842045530620873079592779560349291512111435658618985112437274145708471808912333576285282951346072689280216028751626523346198387771868364120191582288198023349903145040419023975528587696897144583385018755888742634434749101203651114455561571864840705902722621495293802160848850570230010191892736545195264864209661169371458951404004017578809667398259552146336018240090613755860622150091164192005610177600617179899849755976067409089508843751648328098150163892194207494427402486596678837213817489347455163842617147816489161645892102032235221653431927420360682285416298713362798984585488705049365665353674473651728802471710597933746927247407118118983447567280008533112160235000396537691635795383834748709317453381945944661266624543434713167315491414640634374530386555245873676364143571406520612233306782709906869422991426733953288560844504931482636367222363926892982043293041612152440462276691487968514766119850907083201583860918738250959039285822693148557979764394237165800447567395996771821862990170234893545329461830105573060951242273563854429018593464886143918124038563584556449002163805621883319116522885657158952158369271792269874728983507963105692709512855545172128351576750557931972386579503305996832910334100006212501120833302730867418477068424039627560109888285422111201693946511243042680686732688860603136860495838051897882771959760179318016449714401179104581382275507048050136227140735140915266362485916441422195452757224400536655017899986392390792843395356716859454433755586687560618431582537568156485110638326203269951986770379931331752109012480091770039750537696449582223428507521068308043370230945635816743364742719096405177595407383582804430501779906828695908106036098926506100962182947390201692597024016434674151522734859419167180837823040252201949007741225875123768612726403875367899201483055403700586525452622494869046526784738401579477193490763254284373234069078689274903989399118569587550410417882924683781605316674330472082227884213503807991572038525430815465629322642495144539905525933320958405783799050190728566818842132431846421282550990960923916171167649152690023143410970441554576389162326139161622914942208987812579155388071753254268570915306475546034668096297454722044335751578799986192116829781098389446714986485055901798524211085324749494823737710635327583227296900179216014078927259006023265003892952358996979821852847881250922207098964190831859735146790412236096101951083721244758789332733484907461024921892860783433748906489642462336908924067065289653108715727416574535887840832593668613388808659092631850237535914067278718497071967202825008126884454503242882113855427611612562308750167908870366940712309475586933209823650441210418077963446494382021215261385261902327963482847278348544699773628635372144803992103289917111874560022404538090195679371581483276952141532211409825801332594216639507830737882120020364961384001745367706078615890284233200412611374928739809228312511425131262643274368554918111655871922697812848810777285361221188104256650269868208745962446724461465458380611799756526693268282631845767899736114489805249410848101278623123681148409545608521422170014303315271401451967876006599758358839693658429163999147635083583262628715636969729252130483897232057268840856387356727462342093430769300739045531704722400419860912683554759508818258218026378381644971924087821689457529744890650099919282433406398241170909659806930183143217481991253135248463895370652338708681432302458273399754159413019285553146448740984165720037125670831952792508016496455719416915101230195530129205949429837222595694130508741364254680642335003759234942132092683255443813037935156218597072518180503353523027788685789313001410456944002317946196664036150529519242907251636491276934851619733502624508669278980757167609210640081323451868636583551575114409852912596997471606476237257331892928178600960190164281084963521781373317171712921477810551030833954102476060572955318568359946540466630552481158348007272079733208820269968235261378353388604664482291812432302995114962782479171788093737356857273717898647385331578753514657004223389554799438831837866178577677951464256635455490694713650654128789449522658688619871016176997490645579214594396226624983446560974723767554819109525370875583395919322536984857860811651673427200263039693770410952611700222895242849545119943422376017636209826062111697384163810206863376121045361629731942048180750367177822347752085781621050343857645454571398156133058132009171820582580666474910730509217729821704589302010244197362920882407763533770686777338334091678066461311755352704699379054462256567302804100259211950690309023678723554203092534038619153891103788061383142731800342840825335101672457963604925585536463177669349291340053022742452054819278270652615667318113106405005194773368526804380192009830136349695171118345165469073312833104783310810945043092278233050110469064343242795206760627468855078947422424422809695995332211510000480540312233755809158980839516749709883720065531867203408145444195259708327722312080304925629656616019661669400472118143316644943535842467982542097611651692647782862535733632715377477346052707798034471310902751514344996856199278586390137282906138998040510095181608564220121666858279927983006496486192424973745162619770258873507143379823479680953586258201651291750283659934192637736580041398757309395206541892131874425544754381700944688999357877787481831565646643549066624049004188981118906027487844850140056023543147053022993533847100798205149659206461548861229654780298323674272419801989146088928694409055076609015594410821445888877212674411228458301209296403349747969982437115374543820190610110777363470639781885930819218624512362590811588076648283873053317881487123652762527118142286483617218217165397098547604924231430713771118878664171381190656451112521095773949002066753439267451751588378936749090591690442530074125324341404685542981805240883493333071077339467305857455749683014525963564367168808343529832341322067571671294492844825030266223600254906128376073868978892337203810660747358617864101926833162514662234708210884034880279522563350956025933531688783045697483262637132261018008279997425484957932224481993456400702704793075080233592910358447251207430543302974561789644370793446278219105243474274196055923019820897301186000860076737737437084591730861404429510989219462927620539718209475770101325533957463643554395967078427324693914916668511255197639443970706851610485623775430268661890421101125071357232559994351805004928252392739039891758267722819469673223012654690092588084882676652813054637554030185462988208213054682397329830656211570293659759840665845285055831588777121535189554449041847459906588659149115567714891019213190059149304630362510148657049039914995393670179144769515833105093734465646517875482675624039084738894672211209818904480910310740524113029042526007644738896593061177555032410954000350143256757076525199036351995970655642941054781438354482350784590803054743348425371317746317190814917205435552719903769880916672962501695891982858054221725032610205528348649819967834454824644803233614890026990825204023530712497695723379060726466693837759047681412769998865386652423503542665084054826603431379987765525794554617285800797727096004981473699424488050280398638365209164927989664790042019922303807135223460283188004722762061246054352219090468278362729777100972711659213985628133921572289084129921372811522279859935506226606942002034715158192989088639892680869568459310307278612820142376502564498721447644095721641203451804598246774881455122550668590363170001435588882173080382830349064720282922941244351782824487313899941645587190627850006475042613533587375509666604146971299734992582445831717243425463661464899413297261133352333668065533937745986646811706602747180322929041296056127851225626509012985601904727479970339031651710280876883989741677589327431262673550044564392539355923537484825179062137160422081410525978455939343477550773975881315632984171357044298326197346707333075097485378480942547680459556823055009643831845673107349800559565974415605627747580686556651230965076062495049749233040053836457725646589623626152105715776327649310476377267295148453096052509627615053820048576001858455854465748763327310663147636521496743702864677414889825972714823627850898183531927126844282927632052847516547459665931516111304028336567493617806302084134313591919793792426168116449395435982002855854480590049847991007647668517334647365294404693741220026640911727023243965563545616855805773926687997154336171377594550289136636120024316508878997692213599148646594497520239052856734254832323558030518410645043342920724467883591192780122988237528958705112051288887245026831054126170933544270804398902694507558580266521088547533773428219793972531864136698761352719312280870189279208269262575007375446700180350288005833567413789815666948415152862524875945157658322482006128028375299547683248293868576845607170827415664032372963224686949519366014052591449525095208967831667000438636379990781062968406300049194183359305054263314297811806441444461621166868371871876311061892446192098675903720560220340895941114131365659888201996291790011276444701372607083351284048986309160884421475959407437439960831262641754893454325246147115368423492140124744013710706286290214758575651199179053823767052043016410470934048041381906666973234630043243136048269550719133256403911237025154794187305647211452196155320181787280192490856004994177593035833677795059171927845349064145595849798956899966346651241937079484923823152190376343580172662014342733815809328638699957678153685367192466930631386857168848666730280847410242561957934338021627174379754408110557335584234028244677075942832356486944433144328042470540092554835731754200453971938182336627423553680177718638060520867983596683599622901843611264665606553790882694012053892801717103524136558436477451209509838242145054755539121704916266132955835119531516564823161790483834874365774991711929799894519829810198971576959838858449031041580231670884734628973379607162342666057870825100625974700557449903885621729549984373424899424875935773375748233910997723652363115953376524112194010750370379601377698109475694571197905648587493396648072480514129977991614814482100412462319205219254696527812078817384609130750540269984303135860345782074518537656126128235565856062827033487145486356694930297147034016316279941724190089202821362999345106666378702227627833630478779292157673433657449578709722079758398464404557110356627812635622960057529393603290512117967142096131532105695741497327854380497760566399679304353168216712430357820738118854260909737443215408621559983295006823978594495197209018023413326457715779083241258278240317896374604229054410809837395778743257660215106425440596474878904240810135260019824196293835394848437951407735183684505744590847911482873745699663817847893450537167926629179957785393467994030390088331994320485818278306343556101760160280525214458093583130994177570307591319697982676927623428900220862468830277917105593807358987651440406995873300318455958504079383692743155114043083377484534977109897287455055553393188901177472210802209543078968387909111877566348285418071387717848104955914175203557831796738057321421035382358465878371076954563446711032554461720332789062403673778907444700384773205475512352534024461757522841216014941374476191820458967368081950472595970325319749511549436357858491158970001197187742266117200516652552212032313622469108300664330209636043251849582257968986667045327654624505011441401857713069334457004199724304081498113281340927608545393301980721450958431127568667289166042840971995024322154033932367076988415601986403603966882733692019099958594122318487682331107874996068329860066499080619874128422577548360375872243619028060643632970455007958050611946028834850714671686680151411617281862042851120343244429913332487586449588374143428345209333552713638870881667403142604927099549946579501442037203492576756862171204851096757036568658663810467701023698889269422497363040316452331334640685115757355764985592063243135221646151173603331906860848496422009438647966659880689570763109424474026462598836974638107405426594334588360849939982551554944429168422424088286464662644664961734025620359770969776608959918938059503657634209196411838405583101525339215053415842870733419740183657638297653747664404441927602277406384262931810844989148298918981460452439238870247909092519036468115152426660317435814141232182762979671001475603559783552187128411768615747697080386265736277385855901025259491513867699534019181476692992430755696996111196737089395112728428290400061700132589308091338767632291252750409170117575103137823538057076314135439259842499720109169633539441944267518034258980246998625467849721218798735596295192502342204922146256298381752646380888556098434773747720010027602964612358013697263068442796847683789331845451656094680534208420152930976247106057349815139810883027050423337826091419184837023573028285038025406365990277787391314984323189578200638621143009041123936902091094335975973487908490145176124372566350963311545625127263164740720005415645105663669771352261174683406518035581756189794701927332168203227530584564289419004248547227274304360217706327277335833120933706118342629617114562466312979810031325184064861669138923059206459834146174295676518363288624898335575697604180348653283458680071888845898966844860092951010833909704201297433029171696647783380412686610517577616794605104047592573706839973013676651450429121209598380583630601807645077640408568936818125027034545261292527843611785060122772558797611431705494223485004911403471743882144214838618238130017638332141850930200753852897637763252219424619142959460799565672688003970859349509254487603911915678257740468649601584650035448545414834662761598436125255739010740252150627696955207205058637661177493361637937804263036830556008494743565614899310978920495729902935376828372686211603637876758660971936633104177971396068662150130895603256214616338567457218389885606561281142423215009310776524501787286822425621271060254948969496705511839358679842051099063427648338779059158136638683215974023420764564290046450412461373015427274800933023092320794296554662443829287081791117073448108063695067804607004823712035637451007959166877468643516673749998484511346946675427317081407551667603596081289109001876212163344265184268580608898984730831319780950027809114630853569282128140330367974927593397861303141856746412242523658517288278542784507004420911641132486479540507629821508083524371617823304040064419215537163234789193147379161924555367264722033960733640661793033796571594293854728611432879048928663976152578570247993966391707217649055140543043408982101424398990394032303910912383085865308425124383378400658181410503087703795130877138313465976044333984712861299293142389574543750218110015795286434202490709384577804050672982502147923455318148336092887018750974662005592114730298409446650536962470543181886792956480576302113333082020208512963549786955303701347839422365611116642105262440104275933107691857551355478698736540988920593585997369710705061597608822537635332057726913536978784158465147325531829612605343629508939845646114551250444684784037355059887312249646363386048088223425076084995614670605755856932242181033489261191639414075322711706644611385802774464356859865091396443542455304164089798120117426348321450832838334518564789620014406874348516790341353396254935356161455546556925338412386480713328660934446533803262255546355723904368594906302795241783728980113573200555632556000452599547769830482719777856831249270988867254987484788566686925050009301320960725916283223837297445374852974518224946546764664259722257681404518341502104461927184275539383436915543571422074288065445342493121357757652504763608528092199213588303090608763984474301545729429075849203120934406170708053250074576186845447205696730739778538531011731295988278735589157615789704771942834619908250286017874229180503487746219108854529847145668741262481382649355876774366688120347533593128041231818327600279695869969722205785628576668226792435981712759354062306276844919658956408625469677830111121923251914185384690961432109850528693694332538503992756800963541900099089524688338202762722824560919064372196164205521209963702463327773633926371698862592580133104781105316764422689212586567684982253075321462967892350258755784563470039799986989497267526374959892093253985237617166358436414377043736674226435721061061223707516499427413849460996501853713607863645529074219922887980812508843901321059123504358905751327693861178757614278982081977001588507263635230752820131494681664243630157784217239427980592199226124503402503265680189403803766304633217320299543407328524686801828241724844043960829010254660508411715603118309609860678607368525969756277021082407297000945287589067792545091517425948487369555746346549740499349643551000630300293664654780947246330144678801144072031435508611691438021315487067018858364851705535207782972258162731780655965826889882706227936986331492537479369027727294116780193845323566124071834450169311276346486222906734850103601140670031280295760115595643242869151933900425998740118666654427130330363384100460003553841178021131948167790058859942031255582477216805391818968832799445185273137523027529312702366021103861308364075733919102501175316888985098340099602473488674573300660554187105997499065186897091940564404644627675168467697541973305232662254503739083840454370310952998606366568873714315706034023752761076917181678851423678102332355710993978463682527362940168488529172746339152078685049537867543681648833251253210754961851816265926257026590171468883369376717950273816775327307452874634220666712764190902248372047815696762819456186946074352596689443860919822106733374392706871608354192644721695991195317860301501128406301842909912698760465205058272483591477335623761656635078642255317240312070509741969166208588884132917547216450099748889109291618000670489359688441349252897792175527834949753754797969086687809275720194259239649182418739697189111305938380302464188637941505532653700268253838254427252459767680918364832670370039299313982510636955141781081535023873003570242488133146965408960438392217319984789617111421141979030381858559132453793548372133571235930563694551106204415451996961658320406241294652844150542337924599832343110658511687956758741369381714806723650152734652748246153904385798011724733721731848672501469613984002214614380894405408978000478303597452837559302808254410647497019961476581182276875270068736601615653867522020758838788394694883893255888238324287265636576607242558898789673475927141851818899323131850272108912819189842311291539567223147818796879493324431940053048382680737710648628971080913964490136702664776613200837246570586019829012583719202380587836729381155740460153477810905102965280369156203357282682574893393373877469967037586982924851362565074581220596800526017104529531527246754681978654571860508538330814003922906140048029092077031582324939782245564650493834357799207660746009258928061364489789479185121665543341917911527399716533360637853989871524394794612787426440780001248772720852559040181552551933999920244295802537057389521338940185681634831076955966054569581003216215560322246115952646283090443220465738908924007425305392805207910673986458396182587987286999006967860318486406376112104214487132761612910510302703254589106298264530100326786903556925256745391092450824227245127636085110695393075803178476017680762033250339456990647632107875702769579172470617081327288827696261116308277984955564723940523051365256222997510152996443788273616536446789227958345498859725634301590517542883280674889962343641325737583616856275708832522973784132136892654910822332585083929741042397454699653560402129200250570031398301354365495744156593042548581114065875386714739603035552732877093565896574110065488544391363724722196377866999605138976069411537294749774221539194528458952501486970993011551546051366320807223557846498455286004503805579070696548858723289477733006247348252730662495427615506424958897667415119463249871416609891370891990245819867929970014204217927604995210491343616667403962554058267777571501558498742400359032393640796850360315243493326293475663504843837189844302049831930963572695271255695157803444319292645936451999087669665174303351049194134387577934714047273149706757345012327099734416707075591620300642134889080297205985849763227695541477683506291480629179403484144126276157730479481222811459119080260952049818591384365198168231871915721570850380854482545806786505761550277910018853341725857276833709279725345954110733125907691138518490551934313105705618266624630915036407236878369906160094083507847649527200354080141735896975816600691372661443362220635473282026631520525549689223461022354170423368038737045754381472766195923497846796067631097848809016460474830245905526551330710980680311766666722712136525803780285197391335984639442571484517660089445187622700008070819474919911271696608553793280165072189235378782902298303245543650992036973459621487891514629301280698852726103126675841398041207224781746613754596927129053787306934836845954872630122128308329865362792648524497098093403506196496275200349840538901175299972528585387197985992347010829005826590665647360946206302768697383571032034332906402619479792668838239428967613457121626854275844082362333734697873389636791286097622316302597407379149212864467282977034005808085035094323732001051498975219844272600484640660208726802442732081937661231344996625022886672434176560738731509690618925853584041389327955300969444186210508604148518746998328780972630290073489191516776177888370837278978051546101411266187165564389367261508288396716840254423430320151847555352680173050974830707196577618319902263316277040087031373912935244155642681945737731771851654746558379560157598202109847836120118525931842974904173612634280625066394296976249534976928901253842353951816254509827714952558926068353454719522460845646826383462297924128195794823988293572661094224421527143568647687175291202646796130418171502445727903626713839275029549102166286451303791459685653251139285768814252285075167463267916761236256248965074902086607633424243815541115504858987314472368629955900257135645813252759049791222386496614895701732930459191320500197197526156792997805110814019363928772409282757097941449955074100396265844362367304891778730287402816913714730453957723348445102523896990817367113375562209350697779092029429486401370228596120108779095736709634442415859487877376798746159281666226264666074149631472427034627192648024422283964711321131346332730420908561725544457792166063182231814022902035974585240797522009592923251812709349585018731049284430053707853374911555486271320433386270447108224468583741111813711381093465429736153225535955237575270331050470548388408908129240196338605015887357433248097082383448251358139855756643840398144203505566843002448624110636952293548470530752817642889140825963195923089356411134469069117628441739395917740426174888909769948729626117916636548339555590599113233355772766195502946941746783716102683232241316572689161624844003559973035498764010952474957065710905456177602260635508785257111913430010672778146384977507328562016239722650450815204758882925293206037052642631496902669016707953788744509268781288772660801210530722446466295079926347998860710293104440134458966837192776630634688248712918003846862220331932519897923321676965514962014266178363222134289265194121677569438220971685061521970796732093804179313170613627005954294049475895443738027138588366678242854759962037194124722990293820460303166083731856917954080659957173659178397239864099769477951361295738344107292615948908640809878281435012852805177808081074832537372279621601956482839162861985560097189522568689593631963911682169160899257307850016349654512897554907065684137400747234963707312976019244067213075395297858456356982919241050599584699815003527163348801687224025365230554297615416644596368535054200628887203575914922821367184750379397115883339946942629824840831415775793348643687818860873451931142433942546110938465025166164514781648152902585767806607672920963874576173129698633727992888781720304352827318024893141191503714623081765155687564241575927392146711371717839574254772115372161434667102908059672518458393195155902132162567896468143282089928505578192681754265681958936669984499898536960442754835254325421257241559874661623945553827621001597376692595482359181315089109763829481033809839302653060711104084517796140574644156245985396574956384388212208471186946944929819965070652307608798557095821069382971197654522411280235842335767879255430346148043653933144025374180138298330693218651324443063653699803615119967538126359385668881893757682852125278749783004873773121702333976235967636969764792618348736893648611783480763553341997874997592855935368916430041990317740708380403423446441175124067643208365008797798300379267779919510923358418625313116895444444933727787660990570653451625909223534125113677453481714308001371245971021553318491280491427720271473542511272160471253619042869349794540809768485198139971952530474807857859953643072343400456038519310450020581708085432241412786804314726481405304426438878245330898387606395500326001284623574957555621318059570297060780373740248197701945780888413769610216094362680157702076110164544341213877086266352516205034011955297617497771796406184223577916825904444727443879380317407670272806897243432378893487009124813391914167375808497515323644460859415788473647667379594510250253030771830015715669571412040745791746308820788910591399964752170185882856070398848426407607594413942915781752190423411635772903851814306383803091797468509575945171098185181347291652438479675746842158682522549374957404265197172809437233532576922394919424928956555201495958479355670603417738066807352531544576953769851094319091590086283299915654527790746302281334763712132170329596512441951931944170396503483389199748787609265168508803759681843793714633162508234509614740250106922592955355066020853809508622416276628481442904963983732719057507738647383595492107482311769561993226730763390167614355066942348816433010141518974810580016593762740566676428721602058210087654038568880077676035893632730979880069592488382527242277628759446197449400222648657698350628972055198068814498803067532563719059886091669798958401033051821833381999338841814986175825016704848073660328041941264544577541537600863394062436173054477184372786280771332736345086797741021180176327630237109395204607159455192466307940408773264879390448898251403992656924830662287318118519302436175661992176963201303500641981696265330431722924573950658820859616453713264807450130081741744800102735107784190928951047093725269997089526616952798268429641320873892345475485382765760454298977943364911970812980746481508501118913439597973365534574543117465239508737006664156346764954951539377364399911587394669387340819530678318629315426417457562314085765373651447051779511822073087777435629503996426390144017094049171447928922591023707454760093548969522327177957184269931182449527807729248032558596988379374375317698174904727235191630070515073141875584891815293272981020025917212580957750975541483562385232249539277302131511200207414012361031456509044784285924471840790835875596830900058483384823498416466923301894941545634774109804683401026983986977372031237593510226929785446008285925713869579165528695805707059531839986775547061787706683494935635957923925751102060023936099070767884564854900157125707630491176198390167639780422293644040987216047127760412387652967737174907228779199402081255422468362408433703615416257554496093236356571796681954081882310979346938742990758971300029841422055975369912339627430293182946614242094655325776344586954430411208721451131601721547259236098265539114818488469227599747832066151981127927176039904708816289661079869599626120084547153094386785144201176712353610925840943801084604330234000149365465059013358114878083593048986568262589075687448375918217287825057063701642064593969319974238319021230218943107108816385983367918492622124446151601405762351785552997489147267927148163291049512277336232090305356696374511184936430029483392178403945753518325361348298779281920152511893885952771675213333906311769339023290391798398206440369062265909200335405475640551357645183432106514301535773416279678489565397797262508699213745183084308023241242925239172804851753114734091579623656065375990943435885743355720665080748330145237082844919768454834350623215462416921169461170928011077917694356211111727874785408863996289060013955730740109095685585019230188188941130850502293294101103578218924576861494709148098784382579678816656589473404537704722278328966560054166449023275439170234490788155388129829880387176760654028552080384800860726537506486573529883886135116159323630628432360570561618049581503513105888754513591644306443598340824748783638157690705253464195186812615530350639080734893475516397753690287131563153803118350820419828906156499760999447043816499182194251139580100599337234120702154490265453437799268424100518737121902161750686962090469998712216606237599836290594639025112991206903918082890055169565152223200765157701026929093518994611291137795015040241633143295814801211027271941411666013338390758618520229934417151417897026217328200264144086464285514578199672867436681307286230323926346482281805042346934496902222614982675426581357427120051244351150292399720202486332686807391672736545014399309063257470287406104657562017175926629668536294178734899691036044217651529273052939815778603443592540894192014921378969057998078044792438409715796877409103916646218864454121540305872647445168495091437385247528882832521710426035667042341409401902446988668519054233065782720593399070771674061649321705144547554531771112762206834989412544595575805547219080987367243611740926155351026572586853369617547879299336357123848904674690931097673742309196093870010298421642405773262502636727182797728089846866931300301542806765521575054351767127053798289064293195028301734026775009035152965335782860964507680677573407958429373681428393647411349266599988747297092429573504057855510914614447935913343757720428422625251220460140887646434726665656946714450462232483850562499239017579449697754976939239090299484963619305285268507336452610648324130986989930038957573914657557534105811460582413797269250482081581409316587804213212292638266721153057102509584265693742222364579336968438492346065469917033391972865793571533149650735451182508254219965442364881137483773345693482945568280477486202324479567203226473146925394355426562702877729295577020345957089873410320265947946972886458002931311108726781583972486340966442601307570231590497220147385556799556694605242092465374136683220405321858083121065851480994455178315246028546461250157437944931725590447269416914543676495393127196063778864307453221818768796049656112123421543909333015541466440536807239127843147303951756989759219342890970107746685522562182910671503402485059640504313418930529415394508665544464254561976089264542479567344631056220326392281915907837846435872061978464610693220040210961330006483193355490350194703602839569312927244053386242514433261164472426401065779026978036759693701257253482640940735234713882159790121043860183856287909750832518790219142231701056767192342060772635430813299737919668971352978449646136265896483913669198876531258339425710172732536998679845555774410395956762349645622065719790797879968653730839917127622412978305585238297197087161873677545920528826994373544611387974642816318806307817486448329354347082576444397372057254119549046712209899628589591049586420792284866945123526587786660856805656990854267180776884389274052566705912061947491745468361843333267630180260399018945680151714825751627453105622253102398544648929470976075500622657005228842937602257489684910206957605356891278315193665158846785829180211956010041723251951976477907071975496994578135413974229660859573979373175318579898818707716262218828688364911287184959394350280241264471997211109926854794058175759660300805194828656926598476452683886292005793747723403413343870451400924700267095483188059670990935157356872523907119730567959109475059237950775242948802040217879434300052091678179067798960528695299124497634847556190814447917760862747699138555909577659265481061060803024619393028881586711439235092955342372963772531342062072652852953743309771281684244286372684818023365884751989426131968412520752047300949317347075055260247640078676039082151129321094415527006469263311420104275657996949137037689308526434724859277542803914485335376569693538047760519449685764492888899381990661099271656281383799011902235909475164720250349157085806556573101240420343840074754022769816202327857687516260404876236220724031185085796904558703213358083805685852292138805987005501733842623638700989851746328267887715432872979990039034105949890029315246737865397748487908020821846206889470984714163583273060126622636656576980347639101686143403673615708821873817713256431355126288375148571491917754821900659909377139617341372763594059076638415046761530486054389957443634391219360367887269974944434453118686215957494144610396971610191589170067169136168847689020244742245589793727127952245280181025219447611482133987142209628572930681543563824028557721909806280911811985624228438606570488689164864072701229015219126420990940907438064677709278988150301392248356786838162928363920659115567326484091465469225301852256137433955406299224257520692722959780189813383165137039200451167976231379248909095211561267443789824348321510447081329294717013987198177164260699420681549792085963376542274339197384731262712773068498547730725531630978160985235483630592716471475546820070332426289223534489370033996896668672399852691335932906196134744264526327842622966560488397130087463366597589069912184559533528073137416052242699814588876886636920723326994803736768076530327360912125192866213231789721785244646734835928956128031130927866414975474564443831937824947821170250954713366437523991132353082011109670081660528956272276927437704752191912264829089971785585411762838952853674679177183369198716119300828320021769435555160339381472650831697377868099696010759513190582059185969428284665475565357289817599527719958744278574664009573599168219843911861165127279584825700114856856878759934100171948589760174478810153156013334867161418971681330901381515905965658184472972897616447078129694290808372149606611740947772334974486191326214603240757292472813913207311484629897102479511365801574399750579379523990564697238198617569260764906045129507511012776631933077927597277558158632971351720500758919541043169933585899153043785057954870175946523484762390992363997643589537669377630957269185012001159702803226070204249019395815759362778137853261534285606445992663326439195670541176824164160783089961742391886280557600957702251908152209720283987104685797637119310029601182969437499116532574194820960676714410911190295685539060791708351545266772624719873344077997623067993893844451922224829549267872073919406792103503198446885250720564999901296375589356244469291242152874834781321861535363157187371744094369944966861361343304965555998885050107521753384826222958643886133919086569475470049777336711235120862513606851424773960150869699922536354406688486316265127369838933333174751075872371799946548124566964931964773329975779014310194669566709967296859211936432295953255246665590542552836631016622929141937730363719009252709209185956848527426171593581616490930218435823503307584013251855730207662632124060567296046521331319857673102455743433423960987410811693321856480330123691015950935911232735753036935129322044007321229643272818663237006859889147934850328416820951823482364408855070811732151264076423252608610029421260914037967129529325989654649765788796874636543927680377110835227922356298766939119769174249460100894294503030226524701248943928791188701777575717795290629192235850499556789127471110116544765579188031623149229968112569833352004009212719370913351371707569431922347372171278388417931420914697254489440913722662364334783172560263962167595977261838060333826747518804130331335935276846555290167825140475657057335027327642983124328936231897040407517433790910074507823421941264534800646592684208299693769245472377896041729627804103546301723538274942937441760468592522736617239050028084571689634504587575940191700969208947494538899469890716616714017269718175601842286258888280050029275754882494367067089630186897362294976084550398419620366973259255849345987743078953551265475424477756316755938938965493634913905918299969230277223604959225809770180779929753115323983722116723819818826535203993589714406258522585914280825732706771614138486897276929949011194619588135271075854110296454055460546823530230090914608386306981794916997496303875817440670797111742903582801764307165974364375610538206168044216408755639734974625065257471712706348468546302936270877635326133729557331967932068778131623649663360116650652182655950543027163729991239554801070754563613854036846450562979849318495537317193898609845222221131694428015683042494073688963653373761082835279801420395616583441147891195296673988777342574851306399605898043702823008865695960004075056332350436472607032148684047993652623998923073699301213414238571766423366064588436462730964439472003131302238990486328940986999803050001520209116185027823036880622258608538031615042206270860088924695074050785808107869174121583415147404695379437561623455827642540904575254352028585461242923903577449783276893519208928122903160622211794933725181863251280886126973962768758791344509290335673062872296901275047231511212154989014972406127864430823757201157259875442892757472689745588721405253054761165762412159757175308030893944732349941773640107696365855075574356532912050252579115834888676119968538696640994055918488604042519665177221341193614537257213644310668413573402904366040610867235122692080749055705684571699369718408347072328728448325429207868520355663879032951368547519276302900109381273866127739412485976909526791551284683567643332193882207497834283833069229323543343090969033756605360582235854514529234497599887163837628969881231805962460343127285516876378324889032718412285306276909313631697091748911230421466136021833634027187111136702050712480829546297423559825126412074190079415430369473130162496709292453571288877456422409791733005754353663694727362220196931116122441985989782012110419997469558949452702888806185900517302462364975239466180741695131548452349458862864466742144707880024069538441047894554053425196706963335613709903378598603377098714379247220331194748304173236336590092511597779522844082000702772846669942445939414013511096467863740263695661280094531959583800721707450600721517017537426891353845752313336255199811983832705915323295825264804266535569710716227960256795060782702282347960675723652307860332287966284562045368128347238258762410652788737342328547776929446869702841393564964063973296219924265653734385345122597494931446546152434212248420788474574696449280459442846299208822512498678357210709080273914858344808443578116629813633773188635101235628839334394195318468024493247794197211717368505941274249913891623118271991190277754176543551052972287901725912918656851603272393283824219695405332488430503379834303864457122470602362990022272628429317284209454622048146293061227475487064095073059934996802141638422032457200098690241486838613121952510772176070252000905683796145362608150226165081979648482629972556213640252972361880599906974244012878327897393124267686273125897609900347589370489504394464720940876209042093740824240883110320625539246807156544225423052474873347058354227009899719493450854538993157611534011669133232110286707493832941185082858823990085674195355823955486251909897020896624437052440496047880217433907986888602902680108766877782836535999339394325017313472018583077508234057823073065905334808449046046563928226431841702793368170378361747401692577505334901402485360316491456202342185368107539305517270336900120859165336565118525627402295862436905561844287946038963573600082632305363110546366802124351173949149732817485850618451770722613022751296925550668011527950492083873091247062262481710650233346005559547967453892261371637835541340289079706381905412699484542086914927820235692896195390791663415337767837427641905482235212120258205606166324058081400822291973231468734434562046133593679726621630188947517352581892884952768272420101377428013344171483755685698920134806930871443661739074679393623230817815211865136968272899691671160875657751647833542754414228633159681958434712115532953886721063513810404485262578580582554974287553479047203073087305042105413497719561568307917465803595123882938057352426144494829990659381585088273616040202851800893450588375810701898312348010321848764135786356842536177206351900868625879004094889735563150274245292528112714314204443097976410397042324017529460269513058267180527862565453964702839668419402154619635961257532692374419806216479441946252092321687516706393931863699292940596237536395699087355736706279412727450038972907610863431934352909636067649946353392836153693972664414704852029502068220855180393080879212996936360234622055239883348993774808119582324752221891248285983329901470536127260436204836361131580195665181327434148246707224223911628626914088357332307678132653956807143146109246645164957590722200792071365615372831102085948846382209611685555066085119130445473446875959409397656531127707972299109252191164264554177300860622166134507022808823717484229427978554035359111082026950645079418123050994337910596533130903000247200688047855538131720732945264760453982204405353551265890817017214394045342786016215964874818247532944812865182825939601779047050363962306490302970000335261889890952256122487363239416795579252029698707919870449714949858203127689498131124349354622540892007486617541305806127082442790375084436772328549858369322421441219642524242805504345661134515086827585198865104809301324167921418877480957523889962433105471883089973858543809770141117256940876943358189036654141936993825530302121834327802012055316355973407256025260706447179700350301072384509955782635220545873845265435572813021531871113578070913543322802970899152366213063375553105313790955800383048707261779729779081920688354688855554492568831612701307421847030910425422529188024708291214038704664116041846692250828850358656863279561974273573146254061348940180602566110974695705147084396887473283877965432021060445055453147422327779566156498791212840235050918666536609966578985104373167799258773496922563714475252337992175892214150006941191619782475040086811483105407683280980810964405255906778717836509405268026394154487195334516973916253673010057956680583310873286562992142225598511575306648354085888677159510404856426287056712558633424496873885306594449306494387169728266443757656557884257866962088061178700915757378981084010231609451944530465122168217458947362499416585210665189433198042365916653679181472721285822473928074340897942037331486158132302693315330448424101010764356215095737545226972217589936420583817258117576725812095301175163073094927806630894257103258943609628768100274451425140832739838945983949784595718750614362672806213963716560204596260067872488879842769286621615151342588140337076908229922416195549720885791326558219312213696349565047141166905032144031179781725768691050012724596368883589194032219766100377552331499751644363652209681316850723764880517393125471606861352330276682617515650287343231571673055357294213244727908319040221851916679120703383100511440143335826600216788863791155645429608109777728140540365484153181295013268319101404898536987784479784248484044164158687370989268760716454288601055002608473736298043472667218742682086424403271776377706337855079568760851034363237821554604661288952318028280497104220554750036839877030803761137669300178805932834252736149243538474985344576311195366175278282347491129413367399517871640987979572453816657279636639477994311804741077357473113782422898823597102471718191944495921294724399110629010479078231451025980705030257438821230029719496255998001318621921215792758776238733873477888623485420579454062719215296831326952352946960933779731534405255716334020516393327509149728836527664899157924863661990862267239726860894422655685421091048715141403729993001999804353659630756123056280999827095914296433685800528575399601760791105280469508066887627770913760377371222154923643522416704560340007195225391646139346528881581297118140092767673375869457737090254600285779281852375526974381677326516805416897553180255896921034919738129983088580735921873704273562886114817651139264736937991013612582334486875009585924419285484238276933533122879794443402096985593201864490778185287488313909971314939963867340839143345365091481520264840619088612031816518961026996616529786452742981475348182696187069058843130382267250615249782809284221851925592117283045245238555630699897194252318893173456561082744694002311270962373948848824392667426989120185176995385230121037351879616393730839517242978887052850712776517420693145177549907005511717558707416114823685009427001854288386158182640231209575357679621578764230756162117053752318565475035778335907421946285336621631021853764085001722165069511849895486980661959834656446772928088502442748662088956365216188311703863478579091366592397357507735920837788543388603240195854172351326733146816067921726127105692630403598699039094656443232925049223313178932126544461281126013591063359106719902788313404637444418773872636382780159863236604649116119704207215049990084685971930241689765939668885063982104063302193148729058418466032284002845732089796855804221041583219643552848796455365413440229506801269759151734970762481099673764638420203039505097680796042701719222015581700181334241358890938300784314046782696154096306238237591587623520598405496389251803099707210050984743683855619010726047869209366012897887311262022659485504329213742933289411739939844113051267340359925427562796774973057699408967668542721548860111552989322958575352479788093922845366565664619328377014161432239088745010616092580908388577609497232711231264050326699551502919798328656460005176586049853176414033196117229762536198999852315846324411302369904775825736496220583312336448077465073428015171331643890934341193568555792768914498059784061759680521740127790064692111739294912538042000904777144827950913106026491415048897205821782779479212960518759911154147345243550151641768464433866933404258751063446775772646950192824832833469577254709237620494189578171082379986741029694439087481036275432899467179036178246868963150202234867582143363635590012324880834180453821014390836571855489149246757886944166991475512125650214856888254434082770483853778806098543656149311008339901694791727050168665544504630924231628239740717411975294394113003101829826691862157341250593009373004927114361205901118022472799561029170974771534840299252321829354341601020080641474604797816542789776037800094000704273130302139891069932257460954827465496627255488161539330515978321225521498645616527085339546194362576115752060656712669263286623258968993222525929927707114502870055460411262240470065544275663404720210181041935520965494418184999947725351709827089988009656019554035114161466300588456013388586429566289919962992493369585409007425590387264634641807244025546414045076874590926455787300468798817261521967780828947914651260431554521394959803523679426360148314566992630194117784263673256481528270794311585818949470641415577668776454516912627092786673974037786199396858940211300514511580982567607114231113442107902213187990486117897535912681751952097033869844330198340302200495624404262266897632256399435150347056038232435006362568817492788511429572401825589351529593393716341418304910902901651003876278680965169901377704203450357590013807744351436925567722008209184987421026574861077987457941738469061574871306200715634668969009683830064100930570148255298310637344943245597612273376391080115076437570706092967871338378504700703979948258443628109463991124515033324776121724561936346539905665128663505888263632098322258078757704150761691386663114096481633760746827790372298594594922819481459414555837114549650010802127132366608896005443393240500977776144076217411306939713327204524865316673667200599517317054065398939194147956091771483372902072722857673186696667063475072279080504882648862403570823486343035387093451800411594641504691886225459241020789004018783103150448852820244807044042484310649330597960160215759782030559141070143819264384458629363458178316139185399857276903198864718416141839833315796469235710045901066779199696897271697789035994187495807966720523894415981238042455563926134349309895671106125955852172477341539874682317787596761609734738690877687349643708161114914424696045653965367155118313501042891724577869243600117610810872495494446920488403539625817495542231277797137950888278868676478372873372750489727174229581796595488667238065359917665059664867699544142996499363634453335350005783024428411698622076032700887828469800939888138155528756189230352441194378184858262637883219570906880479322574224138742467937487868748823391242629818653925548408652563241637193177249024283743744555393484804337626505597834011641565590318147120402741663506299701966204773379369899588311506026953243457193023413469122559922860552938516494740431680135183924453116974461413943853089791169980903161157431859274322343031567661992193425266098998845145288795323732406734955100403752786646101364880578434583754018678673081740323045318059386250854771990578353727767030236667286507456297774260648501467096617343055318888715939885429603166687689037602289214791333636680531277592164315419024802136394768233598709951680700980399815898983793302168014143778644957935421257095690738716545600025742136598067011880027204439376828632201514276413510286551817399253171002895596226058528521893527490463618803180067281027067791565132198022265336102310519654604372676164440369391734010490693411700693664476526011858427607772086543135062797592913181304337075112413977755037670206073511745607279995020974745989806435232283599653247379097298596404266325367845505251849248681560719443351107643514070875850973357151922526202869269501487930237574737134351144156658029105923467691604779790216184063333648295783573392229785846332905767379426230835928737917298331671558588337561120317317103708090017151439246676087350833517313180581269804186091817417816027598446589040296559865753676873107931229585463071951174526611321563578385187039469281290380128008905991672058731402390194490875958437233718915552700604897348363404825349063148999142030731731515441339287227381177247453224984440125893729055899361724965509004967391430234740599250969531874929664579460012730889918070604340763197095270679507392608354818611123039940871506261855944282674713835239249323971704989903426427584637174325376410467957794671789996874079864604238332655472433352726069063154164344615236207851062758948578468430719781379979387845974519699129217821191922599118069772744107452514644788859611971143178587097957319923400735102592623789453755192006048877956432095127386033380520559626463639218593161844195893061649033759306080363028995276983216927985864708098063851144668868026158250435875958839575843497426977404875063747019786987298077461631096573084648720721428561151216892901205817618906806182849019978731714647958139735255167272183638251489542771212355526619555575584158305070413858087213877915895482293215759807824911691866730250828642953740308883689608054998571976253836816921661957186763738228156372745339136281858205708781522351128635354933180712691829326225157033994815843604769687605250526711201629543720651888324668798231244380567259410368521941011236808360530450541885676015724886696013643709917367899428464154462548901128165342893694675864372828808358178825838848424514538903262468650203389004116603906974335305263458111145350751946228926922560365378335399534011159985523021463360976433987168597543059342154613337544554652812340360033737233889737777507685888727669726491088620020222110128129528633970818194545981939284650352228125473323512015003709467642498250065280224723682073008901387630248418872628654923930285652807520341027534235856268674294950939134904834539635677283914553984085852603973169030734183574662492324941409901678868796114849221270352480477516191318337697182250503360721854762241213953674292511791657761267906135808302395987771314888402713543453552144867347899090864828460710218238508617446504758916264858015029624413823139494558886719936678540830410909119677217680508394417520263264495576706025728030695295121643122929845160892915633133866597669294293958536822168045128359304608806655596921551280332050256188182487352310330246893306703525777137150346483664503168507513193109701289629258728070898745430651277969048959911997493638718663606833774751295189159078758532098492304255525359047205821342921311530013362199419335249568809869927974766580787453846453279038230130912350090728058555965502443492139158052532251514000541316967914371330802041469204280913129363041263589191598683353409639852617938209076389590396876833033093208781385813706196994709322886073819833531336886211094619850486384881877976153690808326923984280469723106313474608331924531496908831907536622501451419827017343098095589219286240325111341084808934144175722209196507573112696959447486420990701422693124394724115525833423624632736492806693852329278044263644898059172505968351823212360482755009668555860447698910167559238217762482333166222607511680373954507194794364032081736132676192436249335191700625994455034159810283604861406205515575475830992385052301610523827664698461132937183874117768477870577329221624135882355176746702987336593987583349896041301950597419408312915074683805059476151342126184188745865028933495383036767518770348511608529713595740434270017062830518952282275865686038280043799177527941246605331465669946910746506215399630056275516030663541030390596383964732085206895855595400750315707807357830584848104862567621921421203307413617134492766964412987166893586481544601241284975835328518194350775370309204949471059152082328393002803123741451428543981646927700838792053092426098197735496770587602603391749530733573852646192332194339343159637903338032961024699215763086192605891905090612575505253081950412372447855611222056485844746453456018053390233970459467935644972807534982489145592081130517160097919199970103212789351656282658114079350450121534206400408875606520911929880497173245761591211145678506474032277345591537086684531917865510532378466961121597116825460376107035313114077595502131029428159316561957625826494207666609752957593376745722199672217098315494021524630713902096698915763403178218185401984548424082401915063328399390807107650668973709284859069079747134192728963092319637310072534769500415466709070858815800245815535397187197093423418193039356560957378961143257711110698377809652915294486789803618231330229633919552686060629998941246201313462830453605149111354822513969469660179999302219332484265110265480964239092963463036157124400770730869227172186895102286687167303744179746883842984868054342766088718246225832141363066543200277998185985505178907292437711256290775497002646244086481541364987863177791706779973783032166061104761863086935644830923733411678755376940625078467095412598796007099451205958993510859579363011358505724978670755721741434109407100908231386012584396522049029255981973880829235375479594278731674482765135635474016975211209797519771239097900643712368103102528474290853898295018883596801497193029417093653310700091327978807888384354912204467982159238849382421335643467255228152701768315276151832358699833626306752173726810894431738217424348729476325551558553094313406640352493928687207660046061932905681932981079153262568845359978951136362173185721744225374847958599725777550648106430058459013900300786999369124344111561249366079554944720275129705654243038727584939349767953827493301599099258197611391540662469332373603561303438615898088114372426111162973486194705959784632710724826792410688330853915234957140678198362959042480946789745677202578437313382850338210018700590336495124066484717855993592962322353447192782320094690046246306382968923929558457192001542161041889440702592864676634463682005487866519640093597656775625230885548578614038038021480482537332366512992901353380841618019123993490419845772204437523403911395138818396897028581213038673761008259939411290028338235786198218154519835229687468710616579110025135115781488238517987251285025277586794172813204190052418808235122499022233143805579904861158893989551424407842136700502153953282086815415794356311922023830196392605328077860940100837929973746384753265375918159668832545205250760755228974506348804547622541626239057555377441629761443820695184513344712177360831558534669389847613925094347046348357548827428807814789480762790280701565267803820952994457085641981454236200878950824637790375754515069582219870755380256847389212804051006478717239027023436785375494549058863654708425509783178959225350373166978516040800587811345089994520783236204744218287501932017255244512397135943266896442301246485123729002709707898923860244305670091317615389454398701090063787785748845386551841912712967517921716954488211596178169011724674333839280938739561367231533818157157138562694855846464477585646305340087215759608867518746573575364057972672018960631140303641615851682895241368875032785497813417661777936065909253691404994926257573347919249309443396407309612306619073865301721382006905511384818095435961905958480056347226334550050852987840221222186084672139051809823075246143421972429811429757078000188202658795748329599177877018089819740373156648574153216689859429542760672405456989139437705736469991883852381450882229474493567709763365969765243924054360772705757788084879604987963069187258573384643159973302047545153932338782088798910586481665857789113122242447643866849664684212807361962235281807969880524393951585822792196067408076467442446281592084499698952409587917079183815938750378864996090950186274250570691197240014730358770370131485899549813025432544988131851666422827559205494255177194782235424851549057766556991050455790218180470763340096500262509192817018705878392981565018595108624341707055362548446253904641015580760631730232322990448834710605261832967801565483100083782235507640975360074481145372368248664405641042777013735022701441809277349508640844144432110672747208837167532096507954082594973449558935811446803967872090034129327183172517145186541997856482735834321513767902654699006909538778726427288703221897437666769042545595069557796683510968520810500472183916023161510441730823715066606503944980279055274785098278008241011097036524755141659219881243760892884044820057102256744100266474197351670766474604753053401623840282564249267336531006801936073924216361091090113878670251762829001762788510529715514645682098927555981296539974179780109777300343985519643123359115018763972945290230877877151031041981858117489061412212592633678715905514102036414205665864777987716228877954536701421641914152193410112060616033334554394674065248258528382553960846151323711292480178559064367942786219196326860832873997041945074326397936031036022700797737475547600528455349464286096963452118572567087361648868223467875818627656509445870339776148089179261337029409938900227491219031392587680856330693971724444209135928443843342883059427482452626173138671329724149190958270517657590111936585701452252651925980988816050453873094436643240457525614839056416165893107115670489427490167351926887862944799640688486227996823497036797585351004377062556568824678380492262101297698614072320881110691539132934720541080596667891856383417321459135935243162129100241228610364188022968877652079165073462829312813046555131151617541680387876634033123775939386718465357741521621484052604146442494839169010508524476782514034919621592300007517968822192187884957715303019894401303900265493570198292848598749825811890962989389367946715200224279965404781296158093765205573166329225821479826848459177501349909011623011756136110099476045408525633745597646191153222547350073484174040422050976223421096314639572802449233012236088077387879887456992918817368840210076344264821965961900103766080759549649504274935142418849994633080820039138865542369840544589159068140305471435485266050272059668199896813912546823008069868140449137925181938822778974672962732198270720702116337749969844523246031352158380613603682403838537541463054008022816327472961072131721351716062500848702791439390035845978523068816063117546250844200082999011127723006477404966803071531186407398838759037243588754603742496871481047245313309906259593829815151822855112826569978036875240962843930073920106048294404713058942437663961586525574928917823654704197648354869868358443913237701063732363067315674815822347373059452337551626948507473165905216460937705516215548257741894197868891006872086031547816532021079911760235691899160054125683597976835395675648845957706777288157130118675890656851772430084902479820867972976697030007355584906646480065180946647298978421430500819873047686464604526360649165014738617848873871134612777223025442345707284687974930109252478576599344187042306782355606447657378589959993396432556062760467290454383185728323345046229388919305677817711239450341694074482930505145157099934960468486535099138811242651407474922862946314469219470654918593923742958147287795954481757321044223684502546677267904300718775129131191076061786626972716862979367066052351674847354055735479448873387405699710301409439216975787584803706672273060943405001429318626712478929967453781508065629192404592064748390905101123620474174479736538612872618000707861526728556379234557756911521375141416766113994233948266135939685561929710523284057972959285413282278932516840247290903921324015674580920678158413789903080596241223377255871924075263391783151916327058073952850856966854309554525477455414796826015351805054492622439178658732741815792519279433131596429739566846970729703673383028386362871848525801632206865158463997668127775915514365434496002792416149335875017465053832450049642637193404321724448845959235961968423971803411730664976585721360973555370627769491564919682371159649829905735056649817343585854632841299962980004151162610089036505219392033589498774605475796810955669077742141906498995675488040287881226289631205217074669363843051558953961108802063380467884183270803561273705971418427253717523249259464235985584843265010411258274171300910448577755386689921254111949888058888589942678182208421777408222163442802083788811357602044553514729789242002236043281113277370596663602203071856295946432808442020092598245733964555063207773708457242912083010447412342800714382130106451326006916557229774827474953813151795512885729785710517362958034731117395963021369875364521262533164853167828268225261713937137529678870011972790888524723267616139933797871226216718240742132941408832107492195078372227189357413284534889397719311033010949427243794772751760134390822217328545133307962646614348778801260064707280817675048490793379166534882158649314779653515836521485152228422741574860993946791406705077652068226600445040853201669744714715156851210281315465280147976910765959519576579743156812902748310281446154732898900132631853173061718498328564887890164148356844449565596246501663111983724676758043693642058616502287285862661947166611912756147642987782787785442898181840777805052456945130481421929563069306741025135046440722769553622009873356285430412116580462951651029963940586396643593716413820261642063193013183531630306432345734230732465189029108051105161081109557653756429168267501733720114582322692866613627321861831141108604939820849300020904411946213561525008285440097616774295574422274773522349155815870126828848436640699425768308817965379262102538306954174270781006397271837177082657660056226112787312228538733453400179480645132709662783957876067707937833576228096573466206535430520470557917855957677739193130900599640419421436328866257347109774688266785028775854771016353799058490666238335310448525835928448134696296702329016118597050847808503655540032242773845889105951537547917727254677022821625611648200808978909863317268147731406837228491880848941017161362783967343210199348559786071895060335425849892878704552705854020582401928852015890240135261608434604625848909963197546465998185391396546010779266761990974231363281605878851895949526274992974298776062770197302397279763551192398453577787053321967536530181904523692044334953565346200889761370897608543115380116062491025549064729639152273056223515866602821550661693168018488092158691042066524587095277841713177291153424746981666728991498874803406418962832423998004207700236441373387161222376226022681579478251475268464203594432895211077814289192842436154343980686036543403473258759513085205236381278485568660500479651805333215436576835225332137737872561258005166009133833693047442384400608098006851258625421622345903438469607333798344960215589676825116847476898551918868054390049892490632482362335417347813457954033632159039399229027944852597841395975899593061389133292324463762743156761862180791949756820965937874718537608460839072142331094111872546753171893162899824484440743103614602277176102604996703633592334539956062673977087537016515015599419458334468117376934343349780672293063942332666935593716904983054449073757901927099699310611203214505134919892330849505192467757254846090723720460389557405315746355030185451048208845667430296777081190170768823243770506674959903887544216826273755815111675875635000370930932090190296111445556119664493115835322343770034205407520486759347102844763454218515497870187844276507364589195376785181514014971484101144455386104878287214191932348285593314834080882634581197576430493860350334946083408420318837696918804708273481009214538356353699411868579516134699317517326191301040471881632600864919062387919074519316478683044639375693829907255066185540661912798317251791706542643888897037896523194918173349013936421850022326094452356321746642847569432805087311955890753041963207569193277143979494083725076870137744730130372354426495290323775435902280636171424648841943206925341942367530579535573638072877849668425230044248034557703404534030640336042668976437880722457454271195177858394657109766163456712259256895143468423861338140726196655255363827730907961746562503056403425674651902258293217934024647745690340031492427009737087236103964744933919423160284353333258072342176844232553383549883967900442029471561401532568935297063526450076849550407481105063436547552606326593476662017804897283993621257305998593566728562914234309027329394278737288898068463459542496704747688218655621135518695320699738798746901740034743127277986407278784845815870688915308046171554946996152241231631416496397024278274745280420764445707584174791289348325058904341276210101710236807967040661783857658428735301054834511534785501915397370582279626244233493488460761272463029542453882678579669563456664850710881639709094671168000300121685764992943915975390355259277403495539228215292940645359434465280520918396943054696387516614083763534495499922553979761978580095481480108677901165016046791652857604142278811405174161775920376618927640797312248862717892929941583216299185844275250354827065365892559419401738979253917154161509837368698473819490680388167298576747504569136958940623497754912178311656063531336532489572672467684374121352051268588221848797421937112980646243683498461753871487199529524164690111140654799462763739544416858695149926918623926325679661880429305154895696483067336741988540059487619550199933654091813517361084968733685375751701885053173811324249928156484722549736095081597070881647102838027921641291013688683191324068832436380496021975257338132416838508056788763337651278941840353144285298235008934853577776184043723112718755958952887136261987712200108234097482271730240907349583080915340784004230596156411128161306113936120351722390804273720549779186065984330236629189894221165069391714899985736198872387173598093169886227596234022757028111890276134662754926095279683153561613456032956583536669094201538341464019031405323159584791909201137735378280537949171616568880349361183772758703816947932666356788487996824406716732536259905611272561924896028037162088284937191018510710908922641600500289788088762083214530972202768461995443417750555872981897938951111056206671586302510854094983126779757151273842155228215323500901350974695717168063656339347205018237834397408028668579226573642172629861192442764952964973390864785005957016905880204970280850685431517819337227888242620149908876945428497555513629778032323998386359099528271064213414450192346392895495544765874061182645597725647771660649216867933746696806370178057127685144856877686665980961796481986649008719131322363640339375624759831616148714614303893620179118931120664894602283606633571352451789863058401422803247334914352241739830553085684138569004449640466616335473494887700301811712995577087248005617361972658645898815574231260181086007013086262559543685035893775416322552528690748269689708960551509158673887159624502585911689146112552055563815782824504150169668648837534089755258498435587547944903353246632521573553169393926043814903874845242730166769517598527263813938058266931127610858946954198622980936933843843338877263551762817796352875296064498247556478718602247393705093228030610123289680053642708700048585431619920682263227039308925729557000659131845718092565562596732144090442904638040592460695454824828896987091318785310633482680074476323020094950203919777770453386756520605352102922956356825419438994497248682775474163625745081956338190324470548666304962994845560521809435740614339405842543289434651713988781468214082202546558290423999195573687358380321554671604480945608456687801267970731334260800342211904854726453392470131203005835039507192559649244085393902732954852429730341752978365031702444114683256763899879089587225532868254975164630756307808808409978700315629177301217469570589593110726828946057337004589061346039047934309878282285217489683049990987311590784446861856538228473040561250393689580818960257593528246020739126739893671385912659738050188383775188444882634336755279092175996103974558083444306425860454539880798777279430899229689416338066142946426574138752518414430656802789227740251435470032978692479845458684348302258260782437523229078397229712393271334408783276793061709148092149007848913370291205859051143203032718732605793298396370048873230464446681927637677799716527265621688477170370660430583882678148668224570845759758893798629190473143028352148006965866108143716641918626403849468714174356904714648652369855342888573494759818214435389830823369973831757627988322294655427189238220670471872399401160325626326495443569885115402279967614673136527120488045665171714134895903868479074373042364083329485047428191130885635101110689931846489918153054609040147087233739223145945019413287201514802542751916219012855411716966925213370106851894151430916849336420192405022615193307509503787320460846321512240817534779788730818171273119882292798633014625995307087605383166169873092435685569891828470793965595309188031905337955494765165484291420793347683859351388580157047884423473747283997807286061047232841581573064760832964330066634914566123129913083422129919125525662687692867756441478545383530716022376175770149463863218681173332241462098182499127158266037491379688515855608282616639358248379285406245284954039416945979848237472831983626932530855225888249529553820717657507724637702887982789171590286898659270536840997885220488919356854669956587986671642816497005115606553011819547901249964954094949514161249638080915478577317448481764350003286876631995111330269036897116215492004312457557461179304804402462160114631934360751998757038424506446702271995106206956078089060219966581799662060145193980326175512351201990731733921164441528593588620050943607126933293426365246119286849230305962668684093206522144431001406988400618896885704825124564181162826301627537396974324318800186352800987727158151985883648914101154671290369235942400687357903569741770560809206636236231508165792754855836271484302952493285397636391866208774865869005695197910010457109872521973681995661918055607755319505748700483030626458963312202042592628464930788075024735237779213752032579400032515052027757099363598201932866412793951654624467212233576048237534360277809552667462146152850666748164955384131045181553903241085188529333650567058035062844048760858712430500437863325956136377102988546807023341701622556717009334286112179141217722355452476904433124008733210772521136280547780525478593615181804523321700139810959510610447302192673011303240463780728949814247834015995052087682870598193812342842058408549046913301946337850987684396929413786452837500622995611939563292267899602300221427828003836310881473355485751333656828618337125952156266492499640083232532094152650115205463288837251953936856302330753050924737706518798380980991045475235009950616557788077228381411732936925677986492643051037012238132748937057644368562431541265499118914310044837441876114521487073804624813446227827448377982495302084129331962212223927656262588390492156565038210507817459459712246763449952007219872393788137094334296036094451118466691968571916349231737074314218443822172770458521823377269631231678569129671035287515711816561781794044553588205881787667173515197422994010250372433858276619469374953400254608849649408409941273996771663361775977700824612556886519566328213134448466183876746791777810935730683324060770874744861683603419782373903547319417780086147573420650913678096769931765387292541749753332398782639508436965246661098508866790808560353510503637691027586724094648767890912083961216957497025822420575559905557574231428144246112575752702760409376030223997098099310212464089471313547953083044528916573441460316843384396972547942322311086446215604327828175702935231307293922164871365508488276896079066044985416044529713022241880463627151788141763038288735520761568019152585784101900811466370928215801496710884889438123884425509809735239855960009757552671159485573173431264509910293512449090042107978758662825868455881790996491876557245630644755526952226121810762384657363524472944118960788640477474842935238264083649574610781054693918289664845571160233310344714485631724489111424134571406851118436788412065224489542930886604932064410898180822664536274866958813926732744806326777146818331575697262075880093964644707376900231282990859528593651966495513548210961163476671864397799246256831706660017064534438361243818474747012094766228398101704148715124219563111032806937998591220271470067285249293032063565134051757712861607522515407125974108207575008880767007747175252882817630217584217014322929651854226104777521845813604031585610347508827691886113051572650476556811499482424776033471320707070974338584818177217390565354189909974440167598028510400123011701297068447601396354631425599014175463525785020289878013322819651295215250173919582119405315389516191664729163871435443745172465914286873684520927557872154152789625044800336784096288725701650315254830859131439135194052658715885631104146747389536232881039126709859883112774297980938178763253285920363350621723135963158383135012094448852231847819734419533135739350944815000130696828856299648830048274742725799965773970877427521602212933050023018105097690883970323659116360562058062042305616320282375968801771805350610044019114659229262418874519257838054928427242384080061554027252682751779143051980069923459679426128530888337801639605371830431210117153366946865930916142813070463845675265175175648345745151235885796748898940066697184663718563830500213614572722095521381803637251463811993464523392629637537926990449163646397320751822946426874569117211412167626858106652184225032679051242752575920637012437318424932698452814599074668986336911624476145986889326495415053025148012350398018175784728644192211760474046174441810279382932107636801289124827399944808740181878148074135087608267065081773534861852508064633511826018943417286046613215021055416534530005213455518539917643444943699185463837719496791129006311305745147754486190307977657487544822167000601308833991048390976667215735677063621257440536858129097425819184679044525278019983189673371398806716679225772662869721090732063461579506573940598987884534630426256335520939790289796058076042294489946524569212879647511752179934202681773109623300786177454645005171340733345824684743295136346829551774431379980757392329668135378443321455812649627425668750561076857356057535939009646137229541770535903539141898254232097647661841646695283577466257177401789481870633163613372137864062532654683908467804783082028198921322870991590358164677370869756766581861418676849210110291463355433762869814904684009472125349107136818347707026464396266156942606957057694523418099543363601636036210450035695089641392515162001965649241057193698569715284691302131707200475061454502657259335545072532468473704213586783344294459876891370456884177865152142679958680015572506088253925896339533121815964427270268096612997810760583061972490361377627553540868719451519415727304185041473385469484163223131969260153168957072883015487528248308248926170247918811537500524391201310747792677231312678529486638009654967661110373195244482804399555608711115665039968899159719082864762387853374761511571520240973988711142766002525379636148916884914445000869398180904646915571129688470096822189953115500255796986020956415115567000184431613724946694413823492972485442801452668219820549151851604176949855063763729623095122604955227648431372322495020722396572004745499249128987407544849844061241326688520193429240645860674768095465723520616286455453479645443226909457562373120512356361168773892860652072992886000987064218448548081679113836206486518702615553987306450126313276411314346713700629752586070278657098744369764506862347528380400004132397593476540652480668233565357546377231860018845867361123115936584663578688785838402739689366371757541631043268038810269027586971794048902279948728487065347203727116586761763799963927707164098494306101576234267822927680362678130443626627315533760425390485483224970740708393565028962283969123142155999449577807721102015127599730828611602878699329573656614598201357360689169495424431142449304719973713554950143132785242537908145845025481478494414540788218466687569131479574059279998744920189147398189114027399885950161308564847993548750821715451243832030818400717544388756290723020957365114543758780691413062652398613760010269401854971488266717894282069338179189968546301529827654093256300303689027845900221979356854104811999137339875203712040945484049836748280129704313865327838988157948879624003853636339313931951446508912162745407430074880060703856775408908233296572609276361893144111418284155988310741885732180347118721277290133003594166445110418813342498896584938144664000357711945087061973026247304587105621748411928278534324800267204046314592244813494321163672905213459945888840810690395562568935639764743752838407358663094583377007112523185494494973733317424930713889997691472964589481614103495174395581360966251224839177499473410040457135914466249151020303240178743673354229300025119380586884108981674625520784949058157221293068362729773157941787478068198652214299735189015684650466763189257843852736527161576375965250979755410198382278163117340057449365245299476457394719380567857554520881141501625744217778323397217836182596657146746735431319818208902163816157685437685290095508860195071349765686975223149306108834302933439942041785639280373645737033999503377158245663712145089742273424257778186345204069800731760857022434811927532666930422943295926963044586622574508285101959739853171091396844066389676696297772710575003577121879438097623488252993584256389805079185693580847232321252513813427095760191964719157584613830873542322192671180242262186968660420176953393249595357650221769769013268488640695910531290233226955365976875851200372142711037409939062964875668959542133364622785316447841623630057669292572623261744714517962366562241243039639527420485884049188996699361360535263161396560896723753233588317739358470637010429668008932834517902655563719428598929733388794448783017494070435308574614739532543250647782579693689330765387528326888857769316802286037923560455256040084468745206288721150928527835790298386790227094376667778756916526813817310262329519014664242906923527256614484938274670216899406098929145643891213636310780709951685956528761728101616384125303210645424816422126985980115515566004334688292694474381629337709683363321538117474893955747692031393656604962033077448694830652916975300773972434600080018586574616063988423435516839796612204792721061238088810643262155100415231843396872287989473316235922677673650260341876032229217986621227342348595555497459476002372357467756119201793270384464887093094078716274103022321594049264072761226177904985838112043492480260842734540761183232723808700114315817923431012633713566498765702662796660556861432181445331177763673101179354056844270608106336713240411991076180216187362508198413883633600848591414665321590631362876259713066368791010854587308264416760911480670485215651543779040003704393965200331033508052622300527464258797814355102538243710844385888310631471605980309563321828464148626029667142055106909684024454948049829842171375236011467952392871805112423539186483575898380581148823889403897123429330157839065636877529660221778949877969699907741023722507556263583473266489470599285374566858239660223328442278848740406774460222364561999594582375143242707064053011553809236413625618047478339059676828036153327219580186814961734526402528080825214739946147521028816657728903103152573786912259641251355493171659468330937780433087814427981781672145140392070367222914738371111304400762141319795813237719645294593183762639864315823488647319786137727126750962734256680087471324649182379654635791072817193410377637745694998901923332483213337871428785323735905580252519919188075686855798594619726524513543657287041300013184034648808344867014065408152432701637609186976725499248120584967549987583588212045570402229420373010651569637444003756849383959221926250281444823795006005481524390161659926909310654067760054742565606867266679038500782498334653283402767953774696806114844194541035366415062767542565721813397262049081473479025956601050678868274299711553025424524182284684058397971467156643060801068449899875478820643417384117150955893111949647458337679007376470568138654190857331439630511061290617941167141197812791189127652570656919025057440270441670036851638698364256243552051669042014468253609495914493038978483904076821339709552466859812119541642639200899930936198995495629116388588009018648206285636330295128201412956331359675320074367014509498663318002757416864151609618650623894647334917438273677881525701626930992127038799919067227846325287131123808132218479745200807046506594262421615410445849413887701591309174224463986856060040051752454158484168207213296115792628954201789555819918806767149421490352859200931459073077886383997605132139911897490832374139925947148333049842893584169484866619424104508452423256476710346248124935031089672942485391097287788609769552592050768644199342820796477542480012644780826987313356562102953474423095069443643668587643784992357320380349636493910918340129461999309040097966595988903818198916317726672024036560716474123871659938207914245934424650465862596113580828653269923496052412807034909135864008117331003267530521457625305447868261422083908964472775390957746767214309213311785071691124490996855380664674344199467741212132766363062702207131505352490745551901819536607245041387818627960679643486717024711621344611809846472918493397018368927438909524478193940605427277401943290594488301717416461331922688706352873730735815418030736186330177848481927920643098545453943523934135091528540079361553478519239717076505919576723186349192391059549604701730513415891464913110480086205965823850404701624917243975928030629508768038451185231493768474060011386172928974869158917006496370219641648502279062934327264135091570471959143902968051828015856709788259531262412092329194682019216289568000373355602657214903311625840119960904403827530069154419448626269449667332934125847411480161438208278963358207127962439175937752401417096253589680929849578913333262878176687801902465618955902601148661262757352729890200395105378950735081464466298686819786089049555882113138940328006021883238325863986623729160482470529999540086314337162380530118676965067671552673915675268837200048869325174516046365148993204303443206332814612476082493618835899823662639541136990712981916098200156535375693788546145566509016209479224015782470977084638325524225833676445002102141870978962710420261187275208788498070257266566086063378605140747455328459266570026179287295541210956774593504904179483432564965007572778203839270012931526165735724537884213543644919737893881752532256771759804273884079008498507046537388510131252100680444936907221371863771360139263926214384791739106058714133515887587604918071546045767553172308123678224754967787304866333613367719387660250949924064677008805757678941629339022119171849726732957304414589694406425735193771916880708698197304248437039549036728139063500107230553117256457599025351338294789912159373622177031680749152667654891883873535036394484555536857019848669472599776850363256111558450470246711137219151035470568109791371785279269329307087051387956412448927831328694269641650857600360614989631557055827964804594075976007987184274282189193633873424955186375077780148407044808706085637725426044066256707006626054215160220592341532721858660824416708501545308132166889832437398879251524656328266318879099197242321991656287649403212977812497816198265533173338868371010238856242552115439452562589138598262683077145778222506100842653082709337532641150100517360670454650756323674982029206578453039746670161811092242201168263455107384065310717917567154506460453358208401176111750373023238381269664239177628301091529206883092421126431996113917443908655241368591125160152003867839372706860544873133491295079477137448990476554673296271702066554723202447096048060086256168362657378540583973554516047329535826764630807688545246552207124560216360935767111461893214525886238388009960874512635602988681938383499891221301524526785283506873158589074722763810129014531966609355166376896388850639604627909961665430190686058624817840701258742915794253453722250252844657972822055063346863550675477027236083261002024734555414933785845756358064797947027245828538220453390426904189545243629860556089800375485037253352129228294748650412295313727072462202718798809261028580738459229903634695106805635056662360221400405136438840364611866468402230281912491391452850489914546328442358059787569726196402848157889737276575315450200078850295045478045228837505691871034785394722352732862078368565300909813225067744820048787233973096641957335133397566196248616654284461957425192320988815815312870759369961455499092162617492598246735217142152858202736267335392774546402174363809016125315841508259803703252820919571576345345510864356607982549233217409409856285672575328321410943809465500576395753357500017038801613416363468277479061020613299752942674560057893400282626893228612813152826302885936086424778661414219832404895954164038972920445449077570025861742705157197709392453366259528447277055301981352927647330136167791234319601761408978922302116219429204601879318269232521082333560514921673199780378014048357343101374710576991966328901595527489822180663581881876579327610605948281894291295267298204264356731825390006047071697465968891240883747851921337274832491098188866851739684311537558917534190245285579952959373373267286868424756120029589580123910677358034944080144332708180704452247253929002748171137530228371139889636375932412372901419975447798456621853515502247363834589830998567586148446658442900254936218455494868474130467551059264636409871954890738973390895943023056790949180719997694120164785355727806531854972847818310686188800646645677907657099870065372579207609441912248061085789876043179026027824124763758935875144127260056189157332575613170402805823804879376118960560703376273534493677111298339389547834526215128058284635298268327471036902612083811399783737676490034193521722822497782708101815948374717709174357720337549178038619626513274256074863304948148162427707758178265620331615069080141817137403840267460290669038836339345449197038358291547516570087784592828726866478705078500905735679957289897113564054913080009229560033863591646631833399393478488968634143792527028573528486339442235048591278016576519640729433877143638238137657724768098235825925529716488261179559570374189763273129623386613312822860566399615597230636454369194815880969964984410720826567610721085097585003825357859431913570769931262154664535215394895009393446849084127345397868661848067884916617635713305029324663020880384202349074073396454294921645602388526302126934832182840523002800206989185714058675484451439190678119341572078737785419518648147204221839241872725764737009657943968477071065184601174216480716189564826996801522640268233224119366885914645357822336826411739175126097416424518570024519704181105678502789700131918791028213202644709226280705193746835757683252088296991889788344671066967845547759817316713891749900501784538916870553654552223284069317099250403588275872201131394030698380616562359262672349666691345123417831697186694438772228437861652390405003036392212606049897361275195355679177454460924060559953463572240111285714945204085387689616715286241782314194440510275560663479823464797933903331589187535366476907373154380402076592174532523666138555548631401676149940472574713383284671842567783055066911037062203431296589891274945259992339170268133969347365565508095247693752699589893370519327195965707000936526164724939915387130373332153817648595127602289534995042507721047863328011170543681228469937425122234893693008346411672029116251981323218569795322295936040231302512913849691143803041870886417337722701250782024135592176340210851915508728563795519146622472223037087920907023577349041094800546343588620689291451252574592981772672746571323042256635846255416720183905872667749868272539149703208926633177665618052686588161470174764972315067805254748205432288734461893705658425334699411327967071272078905073988900091146893157650167236896771740900174632821522154537409157199224768046756235193182490182570569758007138204639290377313476991639204569349623784212885821157491228906130861824082870811948376996254417259041591504792054392870483265677258012269926364971671707232915233352872116321095662051717730130870091574995188425909520294416734381063132224008717119857578451244442669943401733161311108889263304135675732794753007708929152412926543496500091450982318207498738133939932086141857547767140468546508237802847966402479889219447643042742773059268104041228938131931618491274348087809363089094638539229156083873044858628127221417479992777323801099643633235005073451814684820902569824666874734373621597612072882912353714008630234425717313259947989450403094916627163443172693666837268359826547157630942786661244256262524426128540268784914707638394306279384885336358392283521355388586626024124442392750158808125258334574321251059249662154750255896778977798653275577761074497445172433958091394188211011648802765855960471713722595943578001454773879899518127348769893336467709073710473556250821597310487895171506411321564420401441113694376880292010233293840350292084954530953945346323160103271785074422008698966190925174977111950261034033310733924141245212793698904377937863148136778657397895557785136134183860555300634515841625308137533311210001639036724009145195896967853386838174721330134622207396790466255507163358060415300235342898685085086670510129607420621307797645016060234754275552486222817506917220194563348398070247654989593847833602377887958317054182319567653435204580599992106569687148515029984428512530713760069818211098400619303425102910144203025585472812284532538934661540254886129908538733299601486627560322665256530491043023895349581609877177487692159977479327066159502290047211949848707085412123270649425094090820708637763176219250413092325985124065845880572357990411706392039478841851781412248723642964086029506435777550130578393641676470518483990575838093242496490101007785975220136482201191439014778716148332557555661468048179269334268446102045985400103124047700748456710352445717805891185229922976457419777529105825397293841751791399698079681913310668862497700019389428119125074442372343023515396661491874669984740950131940411126580914882108599589290571776492908786393173588674135094931014135506824736007843010826265151963514882190721638696097077176751128902991640325137825063903249675953298717038092926119623434647874188933345807352561005557310934592478658308510764172269168109312767063928171831811824253334207942560526075675323304010576075451829007497185026886596837899230511079337275020706021723068318594775041016446106059943387661242059819657912185782947264173496640205297051474364746057229722084054803998121965167703835849362364214417898819233515459665038822042412114417084508798888287432870761717610868537666469235848294158113285414232021889106872746887458474920819273304895236768563231636573531847741535281102480968367402439384384270156207277114131461837252174632067619249204854022213168309118191417391623464633686190159918025072784862795040729122872649200618477370314244695237582089624796777510702073837325245350627008723159258042950797134332122826309257677276980335731038328074590073118330534658959889381398648175027284904889178851116224105820028647550385084070757385187875798634778781720337615418598072150505126449426814089216725656891545615319194791773994824948344121414846422036461731241318353104224218588134668305305973788694885808842330280721086239112938784300597052089276237620700055741436374347866636526058187434682028937299853133579401228538959512942998329796625761167637413269958770657341944518536277480313104820472980365313894748492867338339970599661632659173887436973693584716117189374536363949764890668312770509195476393755522345343618036291220210199346782978513154551088932343320047112020988565493245375985239771312639402945674508930266943624447058295146058179632584845737669369988935040633043698055397730627488100215794039077918003330542933851462011782889306339149277564628350532623186790732567497452818654717991447442740099245365236442295107418623844275694480306549747076042002749774079079656652703488619394300470598150993344171913140409651240529374170590133765967318426593069967798136774568490747591404611362131815158674786785747890425536404540720873216923135317177118420886386529595985429812885416390053068332792968277649267464431020026083461567568039217453508065293031700443605072315329746317525625597717635855980085881471474955319449188607028647390112062230694539654147014275856107805535444571494143702686679128679469595635630392830391093696818576238314417905188959219421193935649846766886772752688179426644549958681289102600340256686109494515402064080540854618044372205861357222943956837715951289388585563149329285022320930281289490343518898304913378816194310395646829317199743276901545024798530200131930825334979281120151080015060721258318523503071403283207130057137873420642799107318721367105601959708456546253015513199804429584229070123858505077414205580651711064925604865821445444275165215185612834680704181779411104700907518268222284492441309673371401330717516148856603961461332566052419981249190343194239335673340541226414621287459609363235334996285419186051821635055620838111597490215233400385261227234206033909558776352199364775456689534681101871138566317269282820283270947889005834066300676955991213088507109068697929770129459987351669714564950994895877642363614095203490995175249213350117104660815496684872641524071792199234542213906769037212986362574639540550544337276062456795862998003518847062900640363551353022670214747307775926110753702341790934412088411159699871082471078298509124164343820105491953703418909945835655353297407439747748876939369809676821219088372335183282105942833993322136491866424136435077009507816473783854828059762292140945801014852468653097525763986010243754716059817406087357184644425531071634994339738347323818078160460293281968872787808758741790225002151953229174153951380603686199523124740587163634006262671114560883907532647632207445228318728098638839656476505189136840020097866744927930911572577415907774299828035938137920790823776162870284078254669621350601709042805382482754371994818045059217281180285697984613334664601775027922049478952296643596293376172642845384680648062653397393294104313430535987363515992624663333230083111240314316927594945862908276270681687459850537489259706516896473004109046945136865607089805370323002526320908984861308689349053591340485762035173009740548976258254711420669191453897852025561572490659804241116161030298582470174902009119343402872845498017079037517083676929419305004738233728414330707218746977187440575804000023357516737497007675028409925703235897582561776263614030711251618536610761423871543723773997422048222274490759453283390182205122036826638200446267809036293263370898268590832319366655492244527559286068503939550921159556727009421172157380598190671738855323056648571918369371395782381334055947074565836918905092764128722047943355028761733886073580434430372274720876039583278505140660520202666657085550829044093950354564314622342444179821277885562778431764579213248442730895647312323983238013386310083654910449291115924495367658707577134549683482577222097631326725625538347925407559105225537202408019865376235759224173993295660296488792799618686938547104546334786927681011975707600644582318136121942027832272948749209012489338190942646319210139022284524797473710327514979302685649582136133029666201711096639836897195949808858133558875594625212476987204680545770580800141584936285983964923748337222040029971205252323858424510918622655512061132563240676549564268585803982810257844326202902472339710798316664467872889234609085427571206579146365651189630776528776256345163584003198422286603068714799340221576846786378194760991151305377872605246442180075648474135443612613342679514689661227270593607737938446994545226805887388332147885382959245995561458577288994345814532837812647048253785875053260861911082053188519547663776788493317192606080387315372624950782744994094758333930933728942724995880647256670155632038722252412485571503750090918713465904345789040251488284578895805402888650130667856586454168579679373781774346094475872611336251346641398466642316795697876895793907136835360130266691387030035147968670262548874395191927481405039198848005329147382064891922562149413811835476912865528856801144963139311074338378693990683448635815855830892751266195313113472442127354368631016408703476715224352611061247000984490246842913693562874844606428759166680274154346945944026825187784022813183734567006853858246988500600278713028335036855721895273924868150709859196517496693273800868731067791781784468753205919373369722660201504611012699204837979423326427068199573715101061613284065144464742047171030521302077342562359189751827294306504578743330798006656380910534391039915160669522220102037943841088220947188622838402285010334564482548212956102950032925617392052327060859814812104089619780536753988703606767941340866855116111618559499301308549035577705525296221759533329934798142560338265701541646810082717465319145066214250466196753782806064751564758587805216447668371673635339884747268163081117379176288922662903964621882416963893616258563912419127095289161367100769356500122957014034301930565498040802834505760533115430566550972597530600264546209229957497097673729102709410949634594706077878269951003385726486102735597371497542092960713401275753317650252950200101923282279173774896436297128654843955519297733641993970152489390650925296468291409916371214847996691630953432867912912995730122604295543194380076946899711349774497780483400389170942075492761120693230694966911358744694139427642174220762547476104842675995652250116886337785325855135372024743950909408034343875138427778113938150265931480874540745770799756432243949852178744383934708223554499235394843136039881826025353752403350204062717432994860150349834372109176849382522494314375857416237687088694527335971569179538766909782923433028236059019657460063473717686558945828604097680763192819810967105726698704787969344231729098353463436015291086503477740410333564496468338055046114019734085468712710302867807811735478911363800328148476869582424161945119102249646735317331365406335599592245006592133358930865557785646505977100414996555862359346090132529818728396560696309876967921127380741575086453953089474550871588351253134913928317299541827995381653590834161547047937719730051198779142489352118452278584866484064704386286036933420274287418629037305147051544249722190593590384643566111597602313267717729908300683014162305460591063229980903828562804912748673067748284658464046998474736518652104312186571052920124496612025536908148387104259526879995534714518761744624423558376303809795304755712694726463903215160932371858994198945429154571178022228442039148146302142674565591883330776580713356732612393535493124010669937441651971598799385365027025463300055878730191537605993196790891129782070399132611859403021914608080668862278488824814103470744266169289663243534395570501234844117099122651666581163868547222911711079938695939008453278702593254192925125249974710402176768578891129656193089470966297900782921215347756725831600267429320275054683778416476598698637240813434951335785724445692446071535844704468197046894057129443646800449675980085533615559667152523287157830848744977099149884063894963994860198518686793393730168193728763093102665668040109705674481040841890178275639700972070972739136846548821309810195083108446143322348981114910435001715090335643240688029938934845737725066963919110292515882056729590587446847179080043423244790278767011250083763790513877635140314517848161834482053472446061202108388523288110412079781023313036424348346626238528761926077125390297207682839573146642248178868463728085639844444335183776549458516809494175224329510622805413161958842865410386213949628009263055055533907964967030321167826245214440948747658699480813141176037014909806403717634669011457076796218941507869526066404106713765720442629912171562194558812141350105466752869749209258456140365442525311995642354240867280165662254148734331149751978340079386302646328008675592787168917112904049688834079133959164313599995145836771595809206380677358047361554616164343178821442449000600497375159383632050654189724904563237510615709161621074765657268730002049427018549005092287894597379796861086430449236151051701473447207636979450604510083019069210043039785813849087936523035741089152519459381134090121441869371672892226365274320492957315597769328522958592562185582458109820094591191280161532304822560588472223998509761041633324104322075291012580026712873620623303583680193619722394248388981357699025660645504691625950415404421164010529514360081170955199687388499565783924444818939989274059409869554874212730640174184336440336159076823024804639041742074145057980976594482119159847845456662215353482913772247194227370890217941043818042094034695332048084006932290598742322762456067186524191495460581881313619300266790282240773745681696210175061437266077633862952466403026971502706094109081938163573576264672676235481836297655997848286816578693247587713820369196850735453974050807333585757180567448966339395806683635339961148060992746486498241257876612583141639290287593195059955756334115278600701489650104921294112784934869645880703312853406822988363268087687304077287521127380223066833460322748575373741957209578664580842894091062601285942327777006568729948585796760984232171895654569753108222969550438938636278371297172785543185571955035841502173203560349171559658247996732956383579747733598441876457500352170336569167377105607257140655407612896038350918016578368774523116762290331457853608971432986137564170020506535290475270186967559111839115793879878317407627845488113215229749893075190742522553381139145224835048290450022761367658280903083088867331427857057000013330737377101825570023050012696159232378669459455639613319402308737175612560080670776695112256458445661124884049931466628189616723940796949212492600962714629289844832890377836050898558724959886666441582013439165852155320047054206126800168507997538983928541475986188501418038540279558756035153889232770691806943617053304823969231180414238208519476880007912957735520561783341140479259846688734302453700748567126286943083225441042998690091601814430365682364194234391986651943531666713788032376471420103946323794332955243831375467691243714239208011579384673390235381840999698150389679652113799482854945262520413587381262428042854296685273977982323245109255664265262793764699674549983575385473988191109876185360842641001008311097327040444655926040854831401132555940794652314863857810333585867085185981398695429671187431581122775432295669513147650094437682393436526883702076325960113964639445034222430551358396595208000187270722308262421648495659743203819944273667485307988115325882734921012667097646042348329604509328522890343026707836120136870434461013809929443167986969611140433944146223361872106905572066229426174403560307058489041870676082965197546731884966173559466468174296948203297906182187386683854979186138106361888134381321720249810756147002764432826739184032040153648566343029781672409457850262970789321655682814987791773369935410602325100972439703531533265659389761487266894606095303523618792037520406650022713704951260341676544930221801036292864740247370750500733632438534471293940790149143590157639946657738584957576960640845055337695359846030235676204818761030826386187785569617684933776595095843523924568232610729257923975684683572977410681748908320360637664080601028284813396339179154444938285937686184709544873534481561337742317395408980399874560024236331970247012997470809362221581684836040432837860755960981961413983839377009750381516021189763824518848724906159936545575040641014189131424965702621436721597157440293943484688540606648790918994151438159317204261754872261053823607017026820903294033701428510930031785976775793102912195536991854568395028448044872808419883406990654861180067327774979891106070796001793561870490197881313252762405763591006366727477823013690010712367356935635484349958850462651816620762805634956906559279934545910452726162564497713292348135420428963838916830680224065209860528332916347026123549240472031687549084485895923672842770214496570071184501837013333347035206106281708189247522845850770152680282683157597878160737953291071429413333720779868368386809817142141943359120067234009663040931265981938388704353511901685220132451594499818120005391410753393684432359423085145975968812761179330338108289249323697472214904289702469149996442093389653175526530465622078961897054846562735215049462485086460473140002549066494495901608600181957324453688246611202461764564202249465667146380504463171598947483689591851527042060842935944584149168123881173432178628209115629523001951436749163582566017680414648411616277185214707442668269523662851645765164384035461413148316500909744002714972118322119377440151728519850534933697693528071621527968039910345949418650710822429165917862969312675025879231509759109168932730743234213009685431162479261957097345934432920566056826489164178378800018836128385242789681521514893985101191714361670106249338346166084833003133478988875811812674433684039260813266476695026450208068208745262758289980229603775341349973658147199716561323969916442715932610129753901775466204831206478873375016733980304913021511766293166522570497057408556554305429369171004148798713902194461147277837751095759320819334605953758258072797362717636240541751278957457972256512432187125144888997614173153023812632271319921644728524662655335964304737743434552405639868469101310121854501408638935318207032663182078273096414492468154524817402856986749230179099068033280822343785915245910119669283822783079561737234871694697920565204880058397935744323189262800972242963799059572386985264063318889333635774396163456900344212905686730464336322809699884278347550150494094509814602997744598107095801656213230681633691950412749547419956704119839991552633582194182077961586408957940828704627639811280397473873424400235514486209514117624119070527790825198114455593235958480987418082669355868578369103970376866128100631782060314915088754607247337435430508735802228514154500350773548241818267935820742449817459940327856042496942515650600150374389741668168942783026531822438680262330639879192725621914379709833323040083332615452918019265430238884744511669080568706946067076730420473702190657242139234730306164453830127665257205511245716126303675759216251278855816604070752171947721883677879779236354031283869173740973777504889252053402366374474201998980603493008360237961916656662142488089980418803304658435421820661588530499751211096944446401540428779814213154191221002243093636185472635816074518496844303312211197135885158454516949875334184607046051918688910682291612635880853465614537601186044230668743568725297706240285843898644811403008466912945701281889195175765125264531129770633152493009795494136058975602465825540773413803273778788024802886240938909665336003661247762361056101735342443184486007470039691600275722122030894766741523032706123843342776562857688415875777063521617529479595898021409863606237826363948056649859968248724105987860526563703522928609511485529564798174251920426826395670977193081333884688289690327660922659061378189747907970488022439891513575416855949523702767199433587777430103905947314472223990464641620037210442041366599643431606932173862015847481708722880586794607756560392235866480239330456267130783150684175244083843852695950856009092960851802046154982306878492851521164425919169030797865120652941157777230326157842725577204018026669954966340896056926617001241873622055435461926217305759793364176728934134395885199143108028165325788308004297749751496945723263025338599063596941589462411400537870678791342300142028635014055155532117532024019225599585997275316000995508560242305817186803089781015192917406059439021528994568564192659320939945695955237986789255350339520053340577434912485076043426808149686945773620584513614852908996308314553579158948110504055824498855188547216174612509931204582575565856533738822530328679287091160702552973901820560934023634580359577598708072552052046318347010024734305909912166967714851854073203073427303202393844932537484640167885581002392624272928657819389743944416998996420969939639562943897100307064317358081907995784519587058052351668009240677341998831575148146704826294212347788380088066901226017721029440929918273871240788095736654265687658966073191371874741757673316227920666816191825552402445021400363342427108823295770106798436758558140170854709535716048874275808285815536553311947388762226003991682969785255779031137729668667958582539529050935114871484041782546294564544419890477272158000098104086857684169043268253949066027813190436789349632596473011735378890711314753354958667717668015283142932423227957041286542048590794665576554913964122542812903237202840763594072316055731337603263890068419759426907155659330044242074163130883653198932195955578313228433029420310155830473422706932091104918925509572717754761405470541190097331478380307652687359812445820559534770919024080147962902212559708846123678458785836832962311405838564553269667398550974944787227017667020760714135699697346407788499397997971976227911738214177751651823637289157091635853011839760396631271398541537040541704115575584311661993931786317487916814833444885594616370359432424392420092736946795567011696624211459726059925164110273521159804530585700059115944142258176861011170313701397573024142333647245969090102493956504471470109413181139487600029672852461979056049245274931556959370132253452063406740300921149075695628561983293617340173278030594375580778122143716621676285856403040126448315199297302218014079368253804692686572964482923070766271318878888112484861918909203165826757333276481768978742517449270031088626697116783544057764543857486853017628640827386576771377654278177991059298950838742107622471832448946245516850252444953831127058358323396568003826346982103233045709358586189862414476807036783200888516013165524238497052860995553381625843029319257263724639919484700763472529388362609819495155582335778046434216724430116630925834413935267686570523506435766376235800986059451749736212806772705046851653596869128148053146522573375434683973164613924946104575219466573872029219665299882356015647464620419036120865951208537554313703742835188057167473986841949779586640006599336582107500774850017449533659904189405748643007598305282292135962380336685973426533292317395541958673848693384336342700032587618466226499013888725461499758501866575986906497076382319608930602103981089023641195107419009091103275381354915512398414334184239647922562528743813101807839607101571538218765673740935832613114175678829984729980348728619459033120577175329426228506746709072104058956785617773651728340870884434162326160542064872557049151887354846342777578722223363616854003426121278619283653224725155244219542638859437247647533759108370555160072899430485111783942138951606138099424834703930768088428720913010168165591788668336945501005572162804315564443198790808552046901293621003963181929869208879369159124520410848225980005720293120422031902158157502086178663763603794433493877792041372794267116274363897763537167729026982728991660436434435615151353349672979670398457470878750906746149895246939838840269950899167160801391033841749732377635113956054497235636860274577870501200432687561946330271332695066504988215105783704625565655298218714307123764340873604310389462819286698856940917922272432801321990728888869561949067698413077944254900774459680418151894610424519328640989642806307161819728368889343568868969078251030337379304199499618230698485435243412335028223552505726038059102152448424166433185584399662213093507230179412160328402590230459414635438363789814338969534332069555497481915434854018602426094198683569617468847700662539720920924925772907610627425265190866347880452942318812451634228881335252933762357390741060196365961407895897419424863306420804285096102935056328147768689522753516750773309612101812345923189261384819531598109940391685299164602226423705932561428778198577269316220329101004198712652316477305681759198627356638578641454887081828123195734790679305047079500975188133267485809516612270094750708904647936643235179559296964250332135740993228899795316286568827732439116251974079749967776268969179654120638779453463873354413923039892681191371926893804770637981261605874338368308338374226360739773784561238756504839788116321530862202137466860821531502297961834384624758047203575524726346874063173939037364054205439476314888797632971102129872515069198857721412362180099179871117434754242901105066199077919249005626701093480703020868915217105758247012343603082711850515589630443710622828603486440874059759565663673577064758619865078500604913320037448242981560831348397110967641853735095806456527084561646642173035941178960528730103300788151122811700843676965414224886991780260542284120913449187892052981093487391552145150044304697562316546729216651401188744315107878533094532925181699030346278580964078850538019063059140953632857108535437210635228021764873537577580324076352203763566859552415563877388595982739964065597615226638783039643392970254927991397561732620380703425952059194030555867627403869796118691226851651141851416525167971347963723739576427769175254910688846444435577669012397325509639888427526331044133451157122835800869514357165949337992816335937986118561536029172699100760667886130255633020154278668332325403525458977266813179205182412127829328201833926859336442997661838147834898601008480939629571350494196926695486292599782237936929222749023599660676293467296562626375218078455260172217146827654276560682320418457916323556774138828170107765983174665482405915093671723179958979152685714865291700129575472848768424637226320113165060928997729096536635910555767925368838867916370239212042301314173610353500804100746565893963533382114494977778375403176116860349394339168447912097739669897485779793278929263789297183666221267994725389978697103023233717510787390798245504291371630195879024579753525604721538555037462974626478400137712307033553163413914202978729282556253935032548816911252138756789927926694142867000874628433489523898720152941045050075064346638260699105095374142253078992502014509780458061450556144700275863774075833436729933576548431997152739468794452127958494990195037182765701193315600964178598321306865225597634512076281042959098390280825699476252402443588371705334672270846249696679708205136997125326674775102884735793972161778747301897639589953824094955821443286089794130602088867415984167561766888176103569883054029350088056464563238328949421882863765264016933015736357556133183881742301578478956286080366299193828134371662381545176746320757803099184114753999674518887942478778670208140882139740625070267905633716776021655605433079903067252376941623717628426576340951681400606909388877120585192515023548885224262944425470221868398462256537778951362563249909662616075885937654694711667544137180380621422288084388250182267584249936916037687261864470969472057973008433343013744483751759838043692618484481814095872123083517179599032216478401324689622790795301735991488501841241393747965208927455597870924048319942520822306938108602113852277862207130939620749984108711268001197180378749009868072772523295874244378401644389472430110807101169206144834543860359060082466333001567750196114882546174160911203397367349715796330129034552533333762731887181260763443940095743237011409279443023419280414213025770824548106790260271576767214532310436117209362647577326461254620539412758145137553051309945074825277681091064218892909596419682462853515687420556240294679346412112928735334837198659852186701966495484051460126219728393125897700385817916730597255934865650399543767887381331881640680152904484566587724077000830636589875452441601180951199809406369826086596336264699970386476939396061604231926465825518291410854052259430634954098255302718460299617757261210318235556075287785670609090238316874601179155929860381522643648820743190511158697159887065400286227994126559924146358397511060479618435565821066628906843550066048079909697442671546058615603881170946077055800101535888152676932366207966188391214244867642317078378582639825526604892904528237038281990658756620784040889647381369535857029159036226197183209310107325994125587411859966268063129105424176938524516881477638218226235226275532639323948329751687823416511931618463419740981894419677724517747503629952212559124452773289160991374892114604310295989687456684924949625903668060272719008512374942546247394015159914702720814655750105235482778958723246214870762583862985573634546830637553902580600862853682470190972279472078601593754270467541717246834510916019923618513962235502964339802794770241070500146777573277316978288803387398578545716602494383483135663032867188331436207477162659783866359105926252128552978735972999171670638371600201173482583655788055315308174154452053882010712222908809720720492527004629270307827629901960104892963384179079393210614906445442077533553019472700181477227952375626517869361211452400217687558286575636538316768164607032555150940005931402741417962909461790059772243653319689795529091749613851949258787397054535330686368577092750279910776591985323472358292645907549686209407477669667003520370406824666956284077508394455772616147479672669969441859066465821259831766656074409476218234714160369014106032755203029122901969719203119980028064984239507775547687842368286983045937407079122847339830227019545204821126508303862143330332579347061101828637928244483872147818186837223805915564702109913231095146686054113454003701128303575267740232534260611989925731263306162146080243790586924840928224854533077127484280061853132540765380535595810101196002971354333065721543214255295289475766144691264110875554516362228948803021051329072556333956360661137418316934596759404481264713382693330330903593323692213180097607608786990568454091094998104333841044200206527005615335035890411681670806597061084258184525898280927653805752991554852571385876493377888540738724173198569023019396069753011822146952216989711377492502958838765113732957747863361119381894748252708538930832028648159267090731554531632152756001744485974415531123364499409199929489152683946952270377970060876795886810080922815066569277274298777631282259091945389222465862627583414238688619182997590927375603317217866972937668738750277747230391412552748115997046992285205153361067232395182603253207245218891429967165480710900845017290491263154180452044236265014020477958520923510571306758168878370023222240575967625549350243984335171315700019108753168041730886213797672063509822373615698199553545189597317372215745326848798863651304588403344999794177422183228334850608637319949139813236464808650704369654185603902327228739303362718980225359475538659059751869083646428982412992798654182972915302123689412753558876102928398038885358988600800757994078427025728964012010240164479584786566459349074610521350130712936107341345057231421626442898756539194832957274574419666394799523140367320643154909375159121806668318683392884610895612958179347951984529227136136372840912604000419623294277061417221917233723545288548479544462385994475967589828290269036433053763486004531043276399802333737985728911655971748195389954401497175014130767524312316981979909885923333489517969207355193088739453933711335870817689275465624480240841477901556045743903446785481134124688890559770848396214402073851893691368500733620940244592895289982930125137680211824106165201321159695500911810690028473671859777791661673620622168215753764359413769524808032585195788180932699913578983390449447900979989155366237214701420328518035071614185289503796001813663438428062310506886365014119107167929472096584682923835490231583210666418667648695314757672254443935842178075213949860091217882816975729678419299561845475369033545639255783240814826686940097874359981102827103456092341534645544820962078059392399865642169632732284607539995446313934359351179916108827631798899675020191966535103938080485263002943591697274377765731221906876332526839607580442937974199692689350162999950204838803499198216838663375309978546948194236803155704137497181304540995864846555101733861146778965331041191457149340802082974542549785417460171727596484619314018295383358280987259022773049216246401031427991093751453662113355869418439164399087510736875664463818807798349760506719978292916549731791549162174320933326701654895473117605314721926796241704066518537324509029794941633842364744141400288394876169407768496385629907824788098904461377491553413569836898999639509708042678997449423075385117406021094552623086142075297689791110074903742430404937623570805732195893697278990227416554409997100104307330595855293786361879982561735792577922660212519989880456574817926343653521958398635144533018371430599220596110878047353796276387116122898500154314879212792183017880376752576228011467167540365534013321575128284212950400458412334080753494007026080908772797207152011742397971985780301791858333799757669422793943228811559271052824338833194367373078302564631897075704109262279053845024841893499044020837773572549271424270711134213335405138939000914198783356503182745973225984705233234839477777657061993860385448829331679979576753384295807650946188161075819939179422024252376061554860127007610873592436372518103081174215345107428560770361261613569900036154204760560726468275167547043478652695489629822316740076161810195172071230090134168396362748808068266349541593785819614684470845947617971176688144669686200816751296464039605374586608827261957792855226331221548793769958237215949329052420380647698420244704571097679490790099649519375727838430854892987073645044501420068403709322934757395712538953977953134685476131672580486561775539978986643214790938926004380840861736860087539626049622208521739300194471390565323796435666492374436770598663602755303964256001323783545320691294746580535134234954775097663677467361285846422268349230676934108314672545701096504167183199449079336664070529403212581903583222850575776360224805209825988669097887948387451620973088559357906194962091276445870388566457504458432159510261938263983755792788892238006579241516683958082486480989623014605853369934235078486764210561850000052599773985531238072571507284914757363363612061154468451887424572495833168946013271331646210731066466622268164826146882550555470748359748769829624396559625586205329024550248172759263768937959206238863807700320727583632740937875924080576377326795340516223558506024793751416490980456135485110282938884121882602225386555571502218911085046633868148060352075027052231138160098958528925581272809198000962702423213289385427401051068836572483626919376099810720062516175297092773430309404678636508914961021776396490170180298484502011042462292172742531217260735562431643664791492007861708989223169761525872442232229909693672659914014814554994895557072159258429716298605656007036404176606287870479974019335169432616935222633484563189186970576293219117241366382465898084570395424227506694714741724594522534802647937074160308809178190649304938634261098320481359945040919555484614965151802171474982520183503548967235257584576818790393620810818917232134810269224374535807039024024911524760394030075216656602237540257239241074485964263539876671357508581806815566435744741979276612612056593711115902186292470304210123079398040948262037108595578056210362322064220434654494956755850694365218999240365976065160775432757402804537070674673412062907349705619587986295523754109401766555522740313896461994949429905701812801052940057583336747176507616556453188404918344954542859213106065052574646346950213130207429292805482291101521918307713521486726842549153262737182894065477171936512792607567072188820437958234172367076014112902972821703492170373572080782986485019937467158066090923460769090959557806237199881061196942668062747468585065400658305599911735097934251323753419823858649452115909391331209405596330775128342644302037895191911168799384162687294212508612435858475778802676647741816589732752297533770050797945375314667309747860767704008008524259433561211498012170651925326567379493501354232526572968770499155039231806060933000148715173624004046618462085478607055083119869970289560090977624854042938200739870032544110940341735782348685170463852965465278450478648343662664917416425718486216780524316317280085700755012809699932567600716293465450794133889339541273911369881346836238580332383155083461999342279251991721507204002810514566162890710772811362854662657930780784928598406586149949007912096138148172011334763038900967172734989144421119517775162072002676276130075423610233217593479158734018600185647672608098555617328815531292637354576719530782425955688266259187381939944884518789865088909086333076661857050200874461171097670898436967376284047565974427191440540737988582709520559606700512151236494574830439025932195603808417992813968696425404647596916956385146057071412932280189828378894356648105409836638419431577769108219975557274192405252080908651548323640887993941944280988717390428251368774696790569595183492191022479804020128498637710016569424980038941417253435328219128964677564290216964426954889962287366513949942595837778265970496180289337233662865239270776683342829955695773105128984403366187717730925006100817784020035958717361795763307725467876317294393028242892402250670496569218286267423109212890417589617192793803558113567269964213742121371793148032509873135402842650153852519683737383355350657656341909718773468433804097881141214870282009694156629505830162020763269066486244267172773214528429005755565817080825800375377452142741567479105778626131301910681559078722245266282300947321496059301825760873589766753400233847734026852895113174332719067978410024285035907452206180277156338144714060117672367916144452914611498528415264747647571399283685434603772115025446865293496029082303264471878968487685503760883274717702516669799806635181503419433558987693855086258463134478133445624152344718568594190157441060902662997778204976772097116598619890300496435322164291427221457564795708726309917822125830835370235060656803344012624607026443621116086043429702647219530824252674655271145905681426015875387981609028434199618409599293649555178037241419918815758756528914748716256790117694256103466954135075427818394814225477511059371994683313493284713333918382317040456829769320526167186622163030635570722301865591871322436387193562400041111187153145461333027357334711987062034036291638013356641582578040610298972515653403988876717955993000807459554479076909041549863846573524680857315353751889814787633769750808108497459639661960386960775651386316739924267799686110234967050603563842834134171373708665552954929320188806001080530896909841838653834328250136556071968814450931548312314662819868481741271406843293374989116659506739402328855801465376786640479252035914913964159036661197810070868487460162140694190088138798104259135395383983834121312009593691242479463633774279980628368224902719562789399477060421423108208482435047391473361365866853006915330354025647844481996967630576296478353035173928043627241827324041052463153506558431471973520406437976604876635406044750667165735583633057703610520552367353511835938765320043906724102271623584387802957178867847422728326012813144445183266359287690004806606294379306772007773263176786814956707847910166404594919313728253387161258912631364423359958904257206947866043396317414274451408326602981290225074940012263085113454741240336477576046798117194330976022008982917022799020795499609768469292042195817981847678282259387525052362589428505164925397596180652420201959510712138166472514841884879252483498295235465314104460615253424852904606050777933627810834079094375455056389892576474045256758969354543352683973633456938863709814507214048233184990654590754868876273459412438856165506408013944508597452277851641946788264303451485217329091730746679436477089113847443664841511724569434932192081137272991759071334553012360449667484202576375534882387879119413302052212371607091711208774087071837619194760323414449619375278350643083778285685748375028213495601949597497625012340215162077750911102482874196629865176711103182317029325302567368243620153350519049180422497994376413340921766081168557102003465232203564212485117866207596201095291219600624312690457893498549344842728732581273435860929214999355232415303992054104324418993516740723324089925859220182827399128596187845868604786024983792947492756740518318468120829279323358152394686502707383399249319056760982189453817805884993577516601216926408662187860654794956751349536427098871488713403067387334211756622565428335771252591692664732934254107895613521552288847517268622477252930936172702865620603645114830713730994639678607248410382383290376607103923228793830704095125096606027522018396541741677755509829924639345631633890005581657948661471590638483455224302706243772861302875370935959084566771343570247078023251389204341439822340265842667884030290695662782903652150643703602850185665143834647239505287295776650142010729526855624478070509012098184103320440726488046781633996778728927704398993449553184052336341016828419430285185636770629764456753412092449978494442637948699872189310400953129404958635794100371938575637014674529845981757721048904426094517452913513456693598390602837892814018275722369308585162907087966053770300493036867230364177286014970110146842171507550291454505429618477266167270910691459184214346745814280174255429546639219690464336921025537280982021266452456836296277626986068199279295204739558772331237654402203805237107308381943670460674873828831080832802686074519231610984769435356091274445707296563611320666462739930169298371970996597310193319616710378323581840239396058421853166670158931402321607105257852470176501606907798813489882274205948907751100425203216817623708993370747122894542535086505955282950053881382447620801596257555123562367181219678668714317056315743458253024246634938625501915593819632877251721730754905498542817680399738078994733622412053658889983091078162777072177654285821137371785385544013135183044152894621086329463741337588214350585249047385336007355209047720594545142583719363638090446151115559848166489747954760694237642407839072634524313100360303456220666459346991765879521458973219522052792113225487588058148397024365209804953615228053871802096464984642178734785098188595128310121198749135134999398905711486844179044463695800490510461702140377845794421732434178730542572538200922018640271396018895926464714935631540302284267727848096352649710390133484344901441762951985931939003372783426644593659192738239464539638353226708608051301123815791835225296100964335144468201021727281786710859066446977380222190293278932004433995584252515060959253364509562392150626896688489316325226900156386058254658744307941374547892928976617606410463892771330398198115327806901581395147263502898551270197724376829322495487024184415136753588243819771365001100068870693519256159860321778301879879202463353292182753529239067662184461458245568477084419636178529062551024363683750170577383124917974645230478481281469337784206591191816548580141333533943785919626343466982971614412077900422850816018315496973894898074411757592837252904798504899193630325571716164744113887155562789731561913519749722861314050087073175785425451944819931000723683249142913431086615747612159097957271101933452131923927978904471799981953193920176052855625987104847887941849675794560476978446084192652347769528434310919430304527699911894549910590514548795025971787856043718399532588132079650960955109943048254281292568583166960211132531545538347961768852298521704397283009009129318074656915347521982964619069788251658052709810057042311659724061566573320823232118715011107470469635387569746759942195785598329171864835186812032706486993839361449431124295184513003482341474484806402781130889453256702836269590327685930415647449538134125092448335220964985352204715738485741348596371415135120768232874748598465926264422923952408358140424874548707836053869071168974755207533855818474416600195507790311052135636750383637236159599825223503249788621773541265535423844382534070781979422988899793169383159339044345688555040796383585798427052878990846635671075464846026754759339709947378534170535104997526774472898130466787459372198303251477854758310586838429843055463509640438704460722449898484467385371854880499919924484350662824254976083067654831792733856590024659722394411094048812292131053544825831772510314887444020290176764448066919307536240673358077992801788636231622070088912215265178498213336213394532114220065261506819909030673294937954999662960853421923436955767240819622249892089833056697675102344611513434776141487560236506250853899338828324330276041517866894261821377119371075372112481674446792401834088371969170904797661297966364453392944726698549605071731812882219552557653297391701364313085447950446837191180776512713356040157586981859568835249487988955299532578195619040919080009314485955477241894252967687258134522126853381454745956162205414519273393445603313303507932300388949994567777652383221874577059546677170110373152376965870125130807566623750774450254472335114396268767487117392856811205146566386881172791695742581827290832884321412212123381241344221242300946351173688874170392924484782215711387578925538842025771510718395455588506650987258364652377117889311106782687989077952128388916111368439128822529383610070708430426555176608871895153884522140447968480654938216725941413305831698793162235799925979369173673540659294251239510775470246945404862593332199013458370701387262425046704766576259540407687419928271896693718728707905322151985172540037535231029648005705617005956176009737526539835764205409116076214825824572084324903977167302580527640833670698678261689281558593047030203462727291875965896913338047269233292713473133082043178005725814222972785654827139145206074245828899239904934886486115364642285720429808903228242143088035025569305171393018165179376300495211131957140504799897652754672614540885333159806949782803319462003853414414228845040223173937188339907970108222356352710308692548923874169564908180433169717207737900918065948652085999996701864359919647222340296544326957616278523051638820469130475339809662424962021481508410199959867991084643008019012948910936852433518449888622085444664447128565055163634592085435113185477279102083401564956246667472082344105973437954554238030817559373851650938974316069056673460912275383533443162450562207037071374165088986932915373992570898009171570113116624651493552102777782242346026135208904033566708766581601841521198022370855987664244387992724246369299079565831966599169705286596436108765958605507813917495691970805353101181459773557792036466479122308289132794531017666557474322266122684530841814672931799883729104334797775511866229782481004976099159721831036793756396372588090920407203449321434641600749524030938503283394894140228591348557475291395539928428813970724251944585645259017078883001895228846175408240258437659400868911676312588025835148114830854665507097560033093460986919246938479309345726393172973696510841847151251111204692786443017955497759036856887709863244659840013390929785635405518866542652185089046406454699250236016419824332357153521335595540914734275715539608442726450920182867270132778233487480329197890641763045983704085525590099433911520695033483036503993127361059143931435343188885134078645476727116090477402318759741050130792220217340451310332821902965700025559137782416048778571457509856002052549186811056292710045830860129622179856936724119975349667290781474357039273209896376621649726268577925026751563095213019531669796863058732683213195787715857100248344337894930949157459993835089523684790309758243919722416513859107330137718677941344425125729091731595219299551600958819441287620995293401647224286711378810262538834671643785894854405941409871543022651130682080791666875910236383050447389831185274950947183981095514473987912881323517428700001768736176829880031845780550423281690011882373653936580763934906492269090518624721449880153034635739405439196598259037079351246144412411607903953811681595721050436109953731158118629956913890077745977307820510902177622145859689938222434096839641450907737366650904658528303896301690841320499663949386997989425505038060314924395585416390852738107823012780023309568812504676690461681958382355779051007968950556937312342281061023731234019326247715843110512970686112776139760027706370371232211718543673915479184842768126458539321837702829897557704553959641193033756039039870725174293583380140165841857064376254594091976514843242573538937286629787675072523117616806516274593753046693091166264214400222766841732041841561810272447066115297116102774104508968976376317419476799393396890349357016737408082597798137563629421462371652680845653083220277415295531285305655154690849147541493903761159765031288967050668474788884868989447998981128003271470576258319946539923227059732247578193649579817810734592946140829603677612398670471563616441378024815478100420731311825207387491047458076454644807227524681969311991219226088394192281879521670160395026550674266478390091266599379097859802770750186294544595564534416695655562192399649489468034010776423828812250507600252231490209090160203697876048212840357402825831973922169451603150982944832025610306837893449129760016745713648076574856224053987388189369658609731995018287883351624632048992912197947444627304192488094282872158413963646376858634891442695915874320190715482738913847365417123648165266680889982547754898332571076466968388441505261677489038331847860297571832699774983604725206699904342432644761485160508115423262750741669474923158020013724683084539957115737096537599925828208514903489678630322633345786182833866679299429756844667332323621877185136806413083725244627102627718349442533928089236089563357041747124947663610920766997737157318496475357709552069800576485191909681357668107037057748369915035587711659950373516394069495391969322047511370603022222797548404722590828941193087733714426681156732296268098869572373477377252081588899587302252934580948986274260628497858914708256453958398222341328651953356688362122411800016833176720472473875916761928240641845682547011199805408078490177939845441775664425715085115329982327470827899150751040936365316378611109437584834784558582874674389126183450897054733718622014103699068419486525091893987247411124264836382610400130180849248767125335048307664541209615029749573986997307712039896556928076208332794174174386041425505425511061431810332621497739073788873449418136073291346924527030770610995979803914983229776755337837013382813473825919302504647537648136527709343949318722635562605424732132410452206287031437367981380811880148455470794577730934701586379011211360813036750448580729179369606496229458112445259218471455939398044930098569573850011822607417384192491503991255733933254607265172232234031306851874141449091332136806797532022650146562064321358880713859831578342385828807815026897922430970035510999513106612615143724130803091977710715093272262632129882322398557618694253242594482190119946215585293946581789540637869485442548809872477400811392446601674967777619219624032639542365149125149124923846596057603074934429495459854400390313334497862218193044847392215682953516327127664561069639630836417499872659082134707753299040035669906080187249885044261217532234525720059568272541131640074280225107450458469634432862808564285585424372115780100691886842697385293060105417154692525139611833139350747679037413707582092490098758002987854814832808869854080409672131959051179869771369578160481857017623405057974282765195608959789799954732973696719421825800191213129515698655441620427855384755413249020655216053049523965032340531433426428202411010212391038871156727303614269329072985567378864623516743019317803642200132557138756556247194973468087742458558932207727136811314487175140812019797987646149491990858914545610691784221774256029894213652521705040489494524239196124297212038546986964788909020550175269743393176762727087441047122089987547130650798412301681472906762164902571030557011644298578563907306373256718667804316848537195520503303112953792248408681633107132964283535168759619568713593721446724206397451242212635068867004785797405974578366883182752838228673217808303193106059973597881101792691191498964715432659721473545072700300279317340341018158327379659271564289887676452318592321599551296134554358866989429332598364768839329619538204208527344370424981064299747998538765588341554042364317185886123661396616260440733283097442061668404506537395855126754217719651240276636442390465195442102470845626718384110948574228480252116578479718834577495136071021292116407193007223159274087091628330478343133475323678661435205650009891033498398418754789806546126202728922847354657676524746595914440609817739629342860032795815431487373330853698888308427968922258771092589790204577622579734922665930500648985052731589344856297684874298869265147186594273270129197901879787797350079987521844719827719664592765669911545789498531064370571000976949526771138816445379911674426260265090605091998286879549013209985393200251688067500924029344072124121684625542739770169664379000223941292662381447136404605276811591880156313897915041610076843685785320860323205844479236399307782448262654345170284018827406887423502390994328493010450943357426187561289091202543394051807422125737873031487900570444700175697654611282700749069699138367757119494107863685792442956495573471344809664915166360403212623608485441367457364568887616096396683084243860164470841632657864985130644676670384604022154857170856032794000571312090262634331402780848316413790208788434761649809197816980705768829499665101595377605801898364227690671220293805148048965854022046834615766162474298494383410517184029497242441926218955580365950307727291535368590777842094450341769334525248676754602536627734879896272151959469788708489144965041100094360525738885202536377886257365911984335973775887862240734194594995290476585255401960504922218576688702103054165968827330000760994445235233174383920671069048497439204666919381273807863813620105554555965916973223362117458490957835072860710015123359002245760433352082445314626415797994247984020793965808722763398792032424908967860583239686025459577075609446858007811932980840739671353839520172540316767376253234073102220352361203417666014523405571227648217432097521951163246060178018059770101042031237294291887132625669726977292135589130202657926783507376343891541736177238575318542310759046217362867886181008232006976114184796631202572294839411771169520726656372994560590065901269929771920917093567968477180767269959665734260011327364496545298481750285585160201907102164955465340003101108813453358644282476542299573500993179051297019894073365940893493382182008921198437364397141040871057095030709223390082081053042069328349916102710227627761911784826920291803351337451108605325292320566849803646933284357811188244139326638819651710272294221036343094285080307187531421597504007911202293024243230102483315264446667917295383538630123790207884413462649458325479145890783644861080379586150601771734363494275587188753613195127057236492759834816712320165492164203784437964897782175093453006959925401067126931297895979811979365115927895451733624046617906555851804922808311087977498453607607722296338067933180670028892345464164237292652629108684101094769350788635246982575807476037666561689940322717104337272746818370802363363634501128642593669932262709970552441700662613591800879004859936743341742929023157279710810417661457385734565030330405734973981755720381413584368079998286334970390384329117980122554177794765615848641497641973571989036756741126179291372656382298598800777966756015173124171669401219608050734249746372344478694003231250437248804136970747133113142491943029008570112999898350113989808079551077707105904802615406316160467669392561454996685828089801416529886850273004179337076794332072754070334825387935180737613333173063578841158163133189084651947970416599763938838315233455555599839915607268723402007325986015929671103093977562789833868786809414141775616873651354225117230912189275760345669372957115106448288292975053375832809132113120434226540202246184684543444226903653316580402584261658447107993257926768777723552566990843640164315719287086281132344562403836071961583101320300797271427694584321350414385724279290240714154171359184465836347618650855529241271487287647545110911477565319442131997068870766271736691157218309001666208339188125334958383006056477776237545901517889722550526004015685470809153153203537346966673012490954948646143867562320462839602572558526925631968479987894077125666148729177942803878816153712499212786649462016661974955372407560916596319798693226260997124252686990841217120986956310118872061966906321675888628614838824961509579185272355879268562029871120270271858017125928642221361485790712375585021667479566771138838551894053973236091061313534314597201118076100665254351130132648857073731717971482287390002903615604586580583187031601749811601041705900848092049251576232888199649292043362709006810824335212562851396690928718514142118621418479170878224374956713750285785796450258200969585965585313408269135552902496518569061538924510493118154338714449419972713657444672355645443249172127859560013029408021556289103934435187780171896249448541354380430523978967321872304613003402239481459356430729117266846930370728596041871837623673067183746533659976366250741896992067230618816514503432101525704370898683014807714340091850666622473727274565413035664589671079501778278842217815979566330611485664231698897195719196204796366909553460868884781739541520802677681495651883604320621654653473471397199624748785289396044001110760689530272286038674555681964004803238907700478580240367109406028845312391364039598909778987310668512376270840075538341880287345209665809377655923358106236908129250259960527516609765851375794656489729009849078110049013317936364585297968930772006521311903228093073035031536387903825418268388619475960221455893810981765456465981065887954316005190355377449258835132640156800268419764309561527851999370240093925767659139642235139760353870032635967319611952427149587946299970103304904625493719382138836470681156911268014179723054131676498126038176560935961100005225120993525686273738920017758079259386817907667869326211877476493190850239086312886847791906874879454848680177329463195520916299064162472079006694217578012361387371208633737832206358031079548931445549154223321223823044143062383374924357021068020234711783049180724059388822518300713893798502599347960784113011495055890961991158621315713389216108516509801488933690495172900975313715816338768823947399341089111909154754974656039172337721155057865836696377609657194530697916678705671498191931699834811979699290468686139210949179672232356947848279793637273453627179086276433129366039824895182591596831617529139892751591063768601357057824817944004502304319197303173414833099357307655905477446240119268733915274848376693434357206435118387219086586465544807515909914893569276779702844046504833536400028328425650769671238611609144457669242896427630563371416798278810356767436817330912119929124557027280652165388066144274776728545486345469563862613259172654799423222375126790433561449248371199962414167115297305809599969114197004633950156564936179328771613798494457282115972159526843441990266749206239583163197760560625055464884781096429529451648642876644372103977737896858407773979140991992328747200217084813503744260458626980663537309037511918833958990773053840811184041490812417266205119314567479531393598182619842093717808218493337058615975451346869529699211247058039474800829426890581826010499127279947386700186268058989330508184774084224812723687779487874067614323226368966712257855383394551021224206621797439903021378594101420677825209281090160328101387962563717491848139410912318819083650722304398204625024763584671189656935768734159955074097639413523712282132806580526004252641214024039220457839140870833784960510890323669098876097276683136977476903915744443413963455228229393823768636830828256981876888090033168717314201285873232946491662548642460997680074006012962537516843769140186656340394097866622547204033529719422235790496173999914819770783526018823018647820723984289282214522053235254244250831693163472439949747786672995062295314213590110946613372361849540822965803781725241042096652434916072929634568790513316214826226573896275700970237126402553465919167035045500813278431327329071716901189809110254701345564638858403620870172600784719032007050812201294256447159613274349076591306396506737894514937894102229421456036460152521695519557591146511496898166661796755494015792682916461626839425398037422498342347850320841307430938369217754321360298238272885935824570547419413191583984810784258981799901464838802095893141156229255510079965008895616369915687841195867336783086814071802300531099661938949932220392051105302024568590685282306624546230752559869782018678844326883243244502227225217258918623264303841282634131374139836853561826000901828984087395648578465320320062212798273614934044342987596194078418310029531780638925971920944446629292092071628522264430464274945787167030663735038855645121285791421041535905117436907437264371364573939745157749392045135349513005131527120754798999047831652013287956638513680829932961602830785030465036373562017172587612903203716533596888607045793038182672480399671447202537224901015671657358510423372445938177687404265131209225991854944768832630129919438160516417167161938190492119676952743907987274044707712095977194452476995532437590620139365011644105745421401384902803390781914125202804561947891067686238031469285583119653923035568544300834955128152320968195845325933911749724956816256326080479495854122339613650859459657697680617041469352498983652155318217343794728348138722074687087832319050833099472445796800016008846267084024512330598651246111287515240168937317868076796542899099368750832029595275742795079122439759038165920317810036968004107493701988401530768324602765994694770692527440774241422273858896884505678568868353613736379835423262077292738890321622453171444132007501399438561846387054382359562528345166732193247752958527587111238875015102521909392632593703083333810715940992754262348513687108721167224732962849724845458535516597894693138850639441949239996441428720432729059020000236090225056429702536128116288467271659753770074593376598988785444397508904410846169793548452156665006094350933927589679915980275689165745180428176644134465324487620891085284467186559804249241147995927746188783401538666116765036884771535279309933364665842062558862686912288561214279657811735600396705353168660476661299172407186722858877777213863286936049433741695652850534336127133074487203793119969156865941263789116204257361148025909132252509759137891128111660690166767186243246068065155600947027811216272442709075822615382848536803014659149906748929070486979350269336964100061856502266623457447046794250193801708457102443097691563994530036199840800409042556593942511405087655113633936004586368449271817921153571606842231968955823728307138733079932576947228188413512657180465623799475805218170073593236247640244814043608467962490178823005236035946663480890428175353903633667044007187114794376550596207587051899233842758476523855960406660801954817740312592443016425785657513174565339817732731943811029771213596413102555839356259524691565578990296060918749038191799785594590056751102129799968329858025466441418544552250387089240961886729681490078138051757303565010951003437550406979104375907539381007889839234925887889124174206857204407502801200960869321521423017976117634926714040536426036992122697515669073385580857329325851788519731748879018586576050187315944615424576426939088432079761287005920688413206369277086328892947911712090080480278853024122784289172678067710173895138325404237878745691519293170727982846180054903941689758103256461949737407646921180986239701647307720589586565484478588298301377754886880671226445678380156534443160543086602053528816683725461661869532908437249087988451612968433067979925323776538450207859575135122192699398873900382124686712379188451148381636205163836381282612106894530808190395043200504766674493289667151498773996002115040082907701784520081758509574087351611901749270023965157556452831184700313463728266774373554732521240227331403237667707993671073110240669388821797070479646847317875749584310311758240974195139223890147586293996885807935175261111992222941605455249538488328863896544873366240840478814604203402082479186273643571468296775811681918124431042728821404410202159651253028123392191422016015664523256206765807739861050596922657717251731121741008055334150576954308821398049863767494055702078240113772328344358838268277389317314298516950220725816214993079684496703234629894005956608533362484806462519887128574127518474643009804404904494544694079005599655191549047188316505097872900650731702196537107095934149602530654784201998477246914359261553246148546233680700215414683438156966261491223165437319613299567033230044745040559749405822465402105343432442068717809692932737517092177934233519878021068526432978363985750532054913484733599818451497792396735783473859039022596547388804604529080097615947397562010425118899737859113307487379718326569222105707797490666377959720538152381636760244177391508310648387962402279973784357375410035382093243734271757380282057395851806329075324034701488923523289344523186604498056222414834409155629234647493121752055955289278881051311010736305418469187267156976381230925586401588183936306380626181724140566752773395045939430318136887473499917486646218226395366715487458780549233557294603232597728731590976826760475701033527279742852899379275026289365817441532606073416531765708791566807524179180940591782765068768289164539089552706469792140161973160156130139869322237577378629298506329824199770451414921596794023952609592853457197310285979007168599082308285371891580908256765487270640127687634863821838497593458910205160485575011405147336924303912185943602506278408772109236808939996574604236108127366684202062773298601874002356001716578683351826026057518296072616315171596643276025422805489437716528499952000705246318198451561349983950378028852211613487914650059710095727109656929216064822299465095721705412831648731977642716606484358283710103063352851093455956718335109109232599343081303043514068293565293305336809399737113920589694867133462860767052001806474890968376243071769727913667828266658126599029098301936226524298939495427227241472996867283809971154412429744103341609690214669595948427347157742018235492043289633911890579591000912645753178828987524734316116230180258701000063087405618985049474792886575794584133748046890176146335839172928204466086379747792026103401410185579820826222604561202197153643455151646745764688023517589360081641222310906824047651720518549894666106844152083821826379060112900363778271525501415814376025090281016779503045810270284669027880069926533519464333666165375547059340412057016920236716219311420018451165758200101351648049551005574409198113666205632927041816719974083157279286898493957248034786520567115182658065200785075783298156003027383257909777690251517428130027539993623726758960999528135200669499470281203911860967113978739003658178189388229352461914647763495483646568820686863826730804854726202002907689498553516047910690178173532304144314049827728525054700895173373433881429713676040155424290497820012741981813660057225569848894741657079860090735060049943750601294784274427621708844050542062284606289810634770299632521180181293328259417844608747040626911566941616290625470288057033835410329862479443575236464999899095262265590978326148355621465187686981220733308658189205346695744206473478323567177570787125649120129344453425374837758070473976319374396625947439793741152163809983167086515504666128674272957616711250751494955108611374806120632522564020754669247365940823721494980254576191280180312827779812375963180931025572859330179678161514141736859307482388771377091184933516474946099279411973514459606606552282127259515544561456576208746870017401433819223661161708790431254126431758033898569719376867991878030783620351532700127404710157635812332136778959305385171357729802382115776580558716376750258672025496828178598459763987229694435127841797830245870921726511409367437988554418885300032992750344452655319395830613036728251976636440724936077483313459919617971118366192686359573054388733435500941149165677008551929046568892217502886907199904612331377136091355233408209198541592436931066270160082331033140465319481772369027547887695251414917649243017340485314251266611012424352546365277593413935737828317216621911517043191010883132523654836996979493098186605897753685694865690835066100908150013407524266566020360516997128365172104325054049988250035907091247867366808295606013443311724823933245146884322233286348621342190883347971600431486761301632001579511686397513090725750040861685037167633217650098569484408917677249159060209796817733749111186297512509875796843672426567482205236082127813008636937569520524748426052057246319938154688731570624415382628943714396287665107606050843772183097144901678165510034564051045674136311890843078157779775071485827704435146022484006406831308434054789444814737022850883545347121043029256071188477036594503645657279344408511243546979077590133204785034240728311023863572542338048507777477740513233286161130689469643680502476280485261717786285441459112070638715628992746153461816972881858058214688075186715346155974039476073922300119900002533375274321033375146410206378967919159636841729179946967712913214976621862164932359933010349884658509718084496057714106536385409162082038505550732464023044067655319808428709560450698045594462231856746783710927020846159145061755026631898922620215803713883372229184737888363949371780896500498105066213906012490885640023887047240506825525501297749470783483076557352036023733074392623564841840767109555924933291050141294420142769888633929697213163911057093831668109728299699441697081426700507409174659341050364638403887184962732318361192758156652101014031535012417170143465722982030008306275097473581121478672573499078194297191274734873817636072083046627370186001082161471314541637159668244574344249043443144829714009078766085279594039767564843894342592176831431568746547071728378473939436555907329515856727901869070754721160629538351504024135840433718259134816426255974162685541913553603698373605470084137393203792572591143910807611260971876142167841647071451240451650031663446567498740680537681557289451001780331825206434127918718642023718589145348421917005207821390991698380831522316658628609002582374526570761042826239162456083650186297613171191409866482900998027845017629186369313141881866609913100257162201610843863355524596619143721142991966725707118388676714580086570993590674808658141815836865694902133136073668307982613155336084705743689857289316786772544763751619236115256222608727146007762400529229907499780385018705338344249486010021711071364628418767376955524667613571953161041815657599260618280659055663913946444755519141921903239932064661159138690272820710115236814739105861345828132251314182147036103090167298912021013754882099298584544037793794497346764780564522169130525272931119775929117246161392888449685315839862130335733949517467055551330317439628324648574221618879042613606982664021771006196221544019093739239748032644247240847057074277788863627468588565733738241148550195128936402311300419061130135083976435433478459822081255572068122977619485229691799537522869621453605248804228095274307494984573593124455739986168144344708453723821297192392533562071045104304855771797663291866436721978340386499549967410505716321229459424663271526850972226701473280233325389422165167667183207528033019057126291760370316489127627064853157178921757457106620897976968408188617953144441920757036948800813445509934567578888551143368341909658081234254130191003258575013108880237783143330188984343985878775905672802022373378077820238519832456959306228713061895660422796227514955588630618412017000636652518368674861530274461865484062572623539389514214260513290128915304661575804709692658371283726776169355389025969737824315501055146789234748832514192108432726713187092174975590538795489912143493872025534135160988300542477412337337107656230357333049627919559123307302950610218468583253872964573477792100932541119374885082304537774339579941285561707616080958150375736477543838610703047445276220548587602601512892592040128894625467659347558943377727879330962358275736745342815642514610292853243846460671653897424931805332982478597275004867859211570784060788098061270090800523680372679602319006180610919074526741444153563961885193830424817689716592574890931820233273566287664912034800712327319175516814879207141428528653851532635942809831160311392955341339298940555318715390439355402565020683401866732272996195438743894246444588889872957412352712511896890667762105071625941191940636499949623127008312046778601737110609522068207914370377984417328666144516242494962342458965513593635265692437762697839235717927400401308260155741256827904210826509097357859032112324210194006590239207612689493175887628230739213057817396191483947638430297538160673266007620951970797522417651762204091585955766858030073770184443173299611037992685150738333160476321913469968314589204804723788486859609251004113630205151560821983728116374579847774550265959764365655631100807831088309367797159684387493173580059435540446315564359461790833206346385178595976923084607555389253885893623140298595343553194210404204251405515655383039209024919681100311060581870305252060831784763887736628292251340802092607306017297385058124268713084467646270998045849071561374147612308941619525769973863551035896796600387060012350412899741090803920283341269918266488610666333921844886043707640252604762312381964030489730084396564930981864180897119135089340330876066042816031484684944866323683569982792878143501204438471248005250700289199553805391451122288899210188889216091937646893063086472169638932635953353389977806335004205463842285981065791117008533291445994112004233924785985329046114531755239762483052139800305783370128071713304112467664664956896333515703867754089536554708439533922497631449343250453453230712510367594879952607688882477647462814255098607992508099152467389548012125222615062208442350777600974117293219900634868399722974024543800051001460730281034220123390863144305326650928515258702193598602517782884914960901455886450901447562624828517848228758607276242298477550583183151699404035939959566528207784827992083844255220222801147083438105381497582137332165921178509747684989370347872298349613644235449855477824025879507349360953734498938394076045019472671565515178626879744184739906961752195414850969962301015240653903576894835185496747571306438234845661618037120075632503767436541289868828441616299016572932803213420264452928321479339286053286243081070465001245282683906857846707627660208701038816149162958607639755807998171565340670470988054913014355048997993306812520478967164228946193847501875803954919738184940909721992841098063573869324239030968640863968855142843871839675198763035059025017464127245582177860220506576012762320728176878311201191641253363816030784256360968556150883480723589021258966589959725141771678078085541710455641989198935149492248176097558989663116948160909078061235376012765777257593481553774546053009710021663991396584764696797536879186364926730403230282740925982912043623900176829749003898167786855999077934354203968428706551282928770223391807402460536822603145301196158977279736873819328173304060253236207515367417284382922823402987501521165010965393513279932448789663569062536300370165721148700657809023680746252850398018230935905155449694372779459080552892975110948818729841605146954145019205177374356594856398515691708141723574150883595425297192956617969285216639639358651992317411272920951542220798703562932950164475033887845747473843671514032828443521107005020906340606996165083217173004630565489307954393540226739184894515611984041486849399102049904132195107724400335313401123183742250161872270036759303758711207418420047841446181270222467591984457816085321444736456258592397879820605883819938847002901775038664000433149788583489545725159036612572791904180242773934086799079932693039419804629322923787850994931684808869721859904470397761916993010013585075647953676825366573648087129662552944638328568732481658011717863119487684249442836723940925097114548245819018194162867968444072652636705016261333178016297721743819932151046187264184892571493945504687810667203039618946322623343914962988657968121084545047463825115292874700755954687544509272962900846382108818940847883389051796597380957694605074065577995086522058996387261580358598893281176530061491572139432134444074052821646605245019725401932127953955401568414920433499374518661566136631879649011083934870286718463103037304034958965846494931976422891006136956931873040972802037264927870291256554222321507045781184764793181200110416560795868460587069608961529130637183024498529844728251563625618288461786771119112286708986486719705038819125181930891479260982026411199322723602653948749328681878711210021049813301570295664966789610817787653307363445920844611501806659514214358363179758161804495911679579702339878989573826199191283808137901797539397435805603636081196897166629358732026067556784572528588300974228452209065264055796931051091746990168507428844790950466747654670326870626730685273542776722542231949833717727374290740131568828223802840920820175419273423986824537299026183410568095946857760624292055657964994236616159038057503207712924912077253567584565208844896767289286067195558860401104415181127270011240533772260172131685368761616417933607619252866053528017619037113463840898640723846027130713164208539668055981453429394970313981045857036208262740775390247407162173506627319251824969432538369686759009782707751938011654916367840019616263292421058182043548145746922048222351209706200468151436695751406676938752651776398621573360443793194418710946051480385902653385895620559556170390185797974604213596931727455498789554357900685927809103887986341968467410670978869877209834915900390535883944178722722487649160268218736429760339512140244851512547225273776717846524898757780023527426905600273622523318583219518881303626044500503679609203983279784365620275935341886973086166037993789855684874677337269163240234054525381143612968762776705881250573684611419699453444399706224986608732232536182384989470316797327652794597874324188387239830121956057970570110565206494903638052147067971389597783526332621740859751308009949319127835375663782290295039670720669216199901870388708037709013288035706082574085378108223569813336715868808776018935340680800517098264740586331031033976590258314903105901647502744687696014203071924013742505900408228793056485375018649031387397657445357842508937359642076367260458942706725476052069871906866230070040089043223713508466183795962821887538813405060042476504630993771239634252742027305664551033764010766772239077151393655155919436260254443776124662096884609283817707144026154658239667888025858458481542656743023465231423597142891517991807316705247850895907450243568038715652912014594927654288910285977633668219670721940114636977713034887483350214859909580091900438159331017514956360911067182865327721270190930563242753367322279635014430988362257831325214205934659809628941391945803022018636420630670437638031439019293003791426292948950453380331666526071314170900897339714734982620242397871809633846188460992950940190977278399115651820470564440782401982007648021632324452449946299626460014618760846397218932909799510584311752598024700575975369521272685714604031717945824498155082131937556141732163965278538081104125453595809547347485579436087961028700624524354365021055841897629421844894222310703211014213282184510637466881846193954261071608931574411790942920522993277822315797955274597649016879511720918708501457760317214393806412929817823556073150960900263619136041962830079629020604334481677750667863281550530393539745003163665953313211704986011815477960933352438495889643857100625569468322595969568823687330421844211645405576434331538136669090225276091004991561092164208666756458199767833632767175581975691129769728671175097753934795422294038491237798395998251090494073621239071466168470929290981138480431831696128733883007682818472899128583882617102772505483970750717421760956902291651770076181968100938729053909189488123877834130125084586038528686321100236173956264623608786560204859450165602233766235832328909906723942969886814117941927617613854623339748165625317122284731448490134062560778322411920806373958074885372765832417555997011125277456657485011262484572012296748408308165880649330476555266235989351010596752196540292974609127902228777973772434423371026694052365627125090922296571479950285258965147953619955646770229336378634840033577131517325197551481586062583197890715056825480136460603600544343286079597735909669297045444498746946892396999675751792805172849508221706079353849593555845321736518948625954722651310731578306046925226562623269111005351551835734924830332630446669352720963126000067323842152856521347488506373452923407856608124645898251976168554084197420040542562611927691459933506766706299629413035044435783400380871026268288029280417626481227667908987813189345050917916861992059665750981912142480017873779671195608141617571017024550165545410818367308989673734226261011195884640490409242952463506972997966673818762920407313022992729654258821301242453842976442770267900166095274757636389463049040824597394162020333296445151167345888437284164862890938916605966415858577808687214572431823049732668739409476383756583617962366770107075098065768498560060964800387855534551688172900009461944183317568166508070652764536217241089715441077753420334744437668929767318481530124276900755602550357334496840824806846839471988075627952454556213261010350354337496507759929718545718679693394964104045123214960613635073887908489692563300474578222050298704230386113972570987340717859831878199915335124021861742919844086290205356102054255903590242541334545570813854435156115092583392045248193318775944511344214589580021448941813270196622693084180862990068530627460025335258321072630960325868319782094897812786333233849371635684682652954208740759478233524345697614867694297390293234896275761045703122358899161231477874878909312942002261978350235051382357368080017012043597358354272246536798489804903817016421042668312590695936564172217300190431415678181289069690749340260609741428742983426106608661662129756579775778757345705559779155131681224103744248604545631083919048562293744087652288182073921171988868991347747512189921318212374816739310775080375421198007319382679105627699818929592609520116211900117299004771992904460287139643002386989337702383904862193229008560750651860313184330784538785635516982846968235330670088129298889617166089805112212077888749645940634312581280364049698980444701356794805258597575993007696899822727376296898312048649914868586080103434200398335788517176842380507227731338640425878601141344643482065250820993085267318736340742893955000021208643311166305176016052660876276118523655020002402594894012372519442405077427361847716368538657802405335137802504153735240719826679438920150305567701737584839773464243802804625006633029548075934392497933330258892429906921169213573271933397016420531108608436833764319671257575334486198338584295749070846336957088618700149709637301362760945947122696619590155001656236935034290415840517810705248586195347749155847759266261389930380717942332335827203121809478828414145479035137716696698479632584044526920497972507800937198059771374833025213401605529084367957315642574970346453402945960373400400714041133009379124597624306158154950099076872865939735085326518128751361355725792542360191937968626952869334368124067340240990502128509394283863248912090189209246707102167707870605055639042176143562756519158006707508910744509367903387588157360992936596692771471450324465856877291722780342492926307941609554527302364964751853189742405484847699515870581824248980920581235963516653475615660818917854396636942295732634945339260993547353388819645677711250632755633623283831102072409885039709699514539038430651450715039228469152108971975588396864711084003211165678402309672357229395896697540312178376096440208033399033812741775348189665316310451544840021967743199926702360415044762074116760656634651888267698938966212032572971092051883450188636236658301924346164122599359826086129302773057053680267562180947890437013404103326070589372032454914858496789836961375810930372293369890016456976354741733252770079064735884082838247409048536021094102391706145081003044099475968858306943061862626451271163813972961828561976316812637495454148062835458477493882181724819306043307038658665029668969670044818961516799684679255032046879226256460181861338809237751930042784062090952976623961328881661886553180284818236272360325406618512495771282479159431693415734442829822645622000800174921121573675737797743196429410075661657434367286623215588397734017933970191805335923837710885272278347916567944837550457504238294562323658590918022345552046380359975631855326577340264482280625236118966871724666389633509785413213121448015020143582726985692949502767354776724310703160537436631970170195921190995225494539771952630517854694082672140039250604719310912830926450624419138116442210066172178385991701916873792870036125141726054684308229367865370159643409314434123352237950984557355113932348566718821205290157033301796583436886115342072056202564241312438920257212870954268179932186257363241637031566265544288914833575280421712763898198026363956825657970594594657745810842310917606735759488122564072701796298848635319044085549874231803855651637477861601138732773485771678542159851377805164039778442863582667628360270627743822977168273634089951459968434263696507467823053793957634870973206334542393283255263469563253095178567759706770341985124467363033625629233762638021296791075629871351383531637223805481996099732957933772161025886964558140533121845671942010238362636751025497990397166465933720560223944859145815313018520413724538032432983467740221461133918115316263306066587052600155545386499288979498028637614581007094395096777407407208880879995108933045925066106476066783048872409753838353695754017019621518829391914210420792317509079409325685166226630428623674252644230712285712918493540118288541730123226937336407628274632524227869777878983162449759663756160615406176254744906673337561178792876413730692834274023885229784376830420311751402633890759914116305975698090352662898221685892923831078360408828978657684857153689386815035645311736301461268559764211803537377289637087764682632378613731073074990527287195155010518228931900882046648477614760472548729740015965242245086871329134154169134950185546934051234043296823146596608825965803879852585235978386411782560020171314780269069978563713259087120576585878320701716770714898723645144935301310681649685212072614696302337967558051470718095421411297835784415459406657743599065453289934248176024067575090941990130570985731466919024224564427732542833970350146196194239828161589824693601437439089023694827234076340188759206874527497557412281917947643327934875470966962810863478325095857196484762464256064998845995363976464766874085019503736485436575022391750148178167175754556551890944673831757014983770852029755687698351211004482051047657066501829843893241766844162139430587544457572653374813952355760303742732444763750185381812112118762520625097376207052929079185318950455617947255370734807663619244957633779557705590482853712429984864199048992649411197921686458265745141295722033412932655654112329132238287984089314789429556670264007199178658668063766726982319022819453637709397190294828766449092765066572034042319025445475399370340912116192275273305550582385863638449468694101162367438965232639128039737644466639756310864323735019540217723930035919728333827814791697209858179769147983326395910119591767143839900308283831755128714936208112812931868365411174601017900988919852787307331982833622330457968544894332403257281965231566545239837045314524148838312203377463675728895011522897848595226023546679278090964370281349742674595406292611698234340747283232482183797708996019858121275527852042368010004808999790449004067441346250497954910416146460125820350729728714633002366570556663163816221325347869969764137293220858069415459896055134619171404691961803910472670154489363968894720624463047989876221939359105267194003448630872217367937091492794186916995155707600457134406900927405533541334719519901198616586733909247696906093913213067065737759815063907665446709613367608479020376860219362196594071789431436685156436061853285764692769899204024103775648526689833729480411401478963977099783971489619539821836185496446489910584812712681708578448378007157868383943650327687381402350987896997498200864408848384948208948942668916895222711379311689398248716007918500865958852294681943111291221628852389241331990502994985709259778078234410060200979171687214174897751107578622075464708692356967264490313850148055483736594890241669764058435789580861665231825967951027311783536366146461789407527915034500725619657226416665385863315723574613860057520033879695299448651335878721624241350504603528525976912591241474152463481980540224072637924620503214017897148445875692660313676744254671547893737179232104947232424219277146784080619195247210737452763194729771135780603053159382676513661948055434422276978365038182208235237514406123047703878178031448984579585971059671513889566333513280400765765565365579928715624673940255393758163989729366761899942991530071437515617814740030906417780574772441574909848405309966942950791179842842918839556159751207891340367498505116573666682499521941884889735316722228731533846552907256211655846061638295660795732496546611714855246219679156439870402586170367039087019785459712940600680331327899968168847322273301302264263538863815044024560467647922341670989654657648023178200471391084700283204771141908062927403571980393478925993671511083664201200033086644991756962351714905351416591530792063096916546126458388337874050289697836045927590600743939903826409229765560803777228227781033715451351771361302715552353657783758304234202478431238638085200211830720803254907435116690818713042539413899331525443081866619400805995246204191518945011306832716055842843750610621411801647754577041595023875031509810224104275832266979067932236781323343311092226569017230470743217663248821060577052931723999828022860354269645954212941942027802531337286849534495869362454900713438290263338355941120057873347978380989798573065306761256222459254455060477069753084355275471638431487009243628426491993055096751944042122761187744342777003995405246404467295322630651255858654035359273494927048314644377932579130599179490131013072421409034302393496153359297630123111077924930849412948951227139424530334815850843839990791527419073181735665684489313419587083366435445247461006012366828947468220925069788372484238903743311655759116073445780044192067790932698902773319484959987029693684427244387080135231535580309909770982316094358262601190700756931066773527005987995585872444259412995769247184374125233409128934330049434173330363770780142440067474108943620245886660044285886015305468169390278463832468878750393803905293859694189167893648663806709859888318306735859202625070193641771868963301512395430738535803112644037823652382030742014130045653717851092142224426938188635315508506286735676005196471781031651048826160196483219561940098617413253791116922839529408334124274604487743986337047235866358670028553493955916967582610026910781508204093795085913371366702333758794344482941602474305990924292669174899238998318062562975699937642498031064320609187720836214615794744588978310855924811406807457144209468146850166683833030259358709272924598026125164571243735919458019178923143682405658629936008568308752502277204073895759012245428385319925210644121888560355664913263483234463515522547584170754842207873682116999926648101984559796116275761839879166894316938092161332129618538969491533926600752883455689505738582068306604532779629956458938787615638748400570167186120317135364874638368894703643960349389898409148965515085880862424990427986980464147676512503836530208627686719358144920052599489582496621156050255383942894634180679174526160722018635485996991008216811693463412201635079472440418816710084530701978846185368440352585490165600524696382567165663746667242534733899007264453287487985174113703107098232349985843760591770212112868495612167849324604661833854487384264694182135073172347178755058975031956257160435637320369762604718160090535624106569109784778677074708670889747688542133128307577092444693515835988311118750928237015393586402710034026813309590245252087134477396511443316041312651936993327656475079833026915297083280298184498625331521188123459392986763941971584218234556771184303759746602245125206250467491637402501671527057416035462874193083491616341567482232154759061608428750004078548023990566222122993203262584473219821896094929099621528887950235815916043413363756391179341586599148571302973532962225384622738993445795766059388707393143586956795472476394198110682061981580628321856557288053330306978847268585830032700988602758075498803610373026797611353243678658274648461590472289827502051490299872543828431134538854365760839465387697330549332979803914294363028702189430635556116489980115518213262180041670161536297836276502160977739467927459571026909086066049636329828326615585442656277034535496565305987670699217227691651920740878778594802231984507858838186605577612498109715150207976637747822238830094372437615050211856738213281816518082904664262194844042539997327412565411230144289946887259819500087265888969531018659734974502493091831923416682490481385897978138754550562681102635553730615852909372654987854598592756989929100676811959373199018761154188909363331727128867524803647322478920728921289396806311103406519889706354985711743945895715994609489939641287635128202948162980005763683714662235849079337104189051301245661794088447528253940009588035144920406509163771599260079577078886411662445118389988185032140508905229798881370930090768838069253118034867317055943115869059511537000204765723001894535473053718370693220307369468387355416419556782812499931767300198316982182852892959460766946175232990729147467630704115017973044192710222371944234299946422328506871778886475021579046706419874450408829147403994654666762075194773039735038243558854157145691426787113432264860513326798006238940153133097635398759635597741209108234278609907150748193241877014967338790753625877678628768901834250242574928948254507355452461752452846190723920515591682651643435516713881117872319256133480383794495536545724438978197727577641663106392663645811681917271896638733968956638646301216354607285617171299152713241965561246049120805486461916938867969219604668580342156031893654326982553320073436091851634153700009718563070494428483435062173572176948985961045566943364813764413198307878087052735529120442733792950106954323703026394262364519675096688100665704946093397828090272475703914636748386492558801329118748295402971581465415317539451620103467962447928810754161258367817054508416373200454670361454138576700059551625200238673072766068317440150799891979426492158746980194107964670648642205805320439927523767322707525339349665561485560113522762507182200503376838223289919900099583988923460539160017166025306249704762254098984739820145392273969695402169015870111947182683819303357556025153082970622106470137902769926565452172745054066679973931779292477151818373825236940705911901976858665369089992355691530909073838816590065367506422215472938107235130615780848557097978742781127801037574420055393554044551464153483476701630128712486193757095133602856235896633356589768722192169451465008969867318254290012454269824528239645324920710990533933971401842613055932393508546096363391255299272888063699544572243591847688458273391044809116216774874068413884025983942502332835112082376174900929501851714288782455483490454571798436675766765454023223339732266763839153463675001876530958911293204292794167198282863189300242265234319188313092571229866357326052543182169300909292428458204221306030841921110183606290996120672866726648977080654412824081567196270596816595923390913524420379462596879618871917237611922010838721314035022813424361099105957484737944401543033370468741530319980139833942728547454235992063219163592434145078218953585823957152026432477160327948971875001259912463977555926424873091740953120837931119831041196387455359051535729754180595485630067637396426660151982989497318762596483980209965775148710755020539512562659249615249495269762813432331205158758148465638852903066348289546325231672400123378632636676019429594698704251799464621788709043528291440356734386580524875128760018698164880710194577261355812584761322557680539863493981681864667198807547049733778123313088866629122038926216350307504660279981222190691699312386611122626979192937414114360782921570857501716002582633254655060572139626077620903657119436649594867559200827176847974516418683834678786665863135293775871790688710224208214456756952229519898028672695227123031247876726458560862295889819323591419611105159803623252626531225746132309669968448317454151444803426231556740563539966968208548956385412556950758371824954276485710771735669756509485314636616618942265875956448408199436387425556443408815650647216650995085968617491755246124347159470946434572566561708193407128085937630440978852112373636744038304508711784560373121472974850796142514099920577248503306610605647459874176336270536210951271584599513574424825901180140886746395898243711848641238628842675244229540022370672851839388287185869837759983752317077110770046722921370123801554054253202382617593536552435098286986861628082003364059040299240726530225409509664807535056834728754601192267958505989826944566955022940529174726097213680681401869327954044881445894034140909493131971810657878834982217412501064139044463009620843282360688372789274945850311105869440406316991638237630654998192420052844144624298313350297234471348968701040018735131996059010244212767996295691013560151095091201685704430724707341729571062145682088702383091249038890962355853083341183409153497257758237108767981409280202900457386727608918588988915785009748317840887244882197228885997733644928609746494369883594006133314445444560943176430752142988267571364565555073740642745556314524230609066255616490834826036055503086872030626968176978458411501081695989017921571581362691197088055065809319785900184208829495265144047410749472892435861597577363952748171867190036808598979086396394888035406701432175165330123489680116100029972935498081168705933819096596678955028769883915638740577244304310864021324630065094762995250619410886576849200681304566225234524789380306078462387784233743371640296176968065703511119966179665108989686012484027845726254758479026785172853712272270540180252113326322918610132036813435999389359524809762745229319952674837769658015328102154475258600007304198807807070790716748408526919741967472568839756319310838131680931040204697327702268604856202017349136435266408950514127734864418436763535276847338195342166170441682780344907263142467935102393178660349815178617848228240355111598162170014548128394511074708827058549074972920757616704225359212667842041655673789306377737926572435574395504676477222764252139019182104823569880319600042054265900753159671290481497321865135716379016865219990674658530886339759502647886527674104290603600346964041225257097256456798521566645002449502061798786255820796469897861906750425388223566435953283809894730650024282206312964968034129643461287658973505153795183412649099449125181945734252396668392290304894900054948179562407369589479553152466384348687311012376861530004112130771119584111002657332259209693459139587055406837031191546604495694488942318924418704342944659167834134796470186990635998545952573132970799744650911093594963879133930968516924136192015480593029180592153916693180638814176348123135668767589023106242698210717892703114892883607498964279837781009912583230585357586743275192918444524098405603870321906587338333364721060765680479338470168756939757719644997360365870138804394611192209762360680096396697213603775006348492480160008914580874842120785149428633938024523307548880430304316370535413890923603313453746217053113840819142354204533556587752172467052874738548042404578072041993203052237728158620489012997854888730823759561544066592769322394065139213210678886064719590281922872809299407560765893313332589971853555037448487445415056559230179193920954031770175560690771121354586595038845169015571429747632959705045535221510440049059160948751948460998993945563246299925566701905649112904052654972621578734252931800365407993853856938480512914624536802098265614266414286789012808599853364916482076105470196403917348831804013778312834796695770121951264687611537421182744470007787184149816987318863748286154830736918700164239032867464890564157206973351514087662564336055200383491891989604958508098766546870282441334535045975500017778589294899218230480838750662100714871421919581885584693768604525382408876025482537564914030471633227172210985382716465390076117490969589084429425664528192291131601619104417833874871737055476174746141969311439450017372697544800461807044519193716766474648711982925857885162122784441834522315861429121548912696421592574517646353271619112522588304094882504789725418360015641884181800179383746806178557085986686464842219972201370673044794666203448036738351848117143948011244425476624328211695624548512821127322476697658623562636905059933346928013095199912741220227880313169575890506552519285592830805654008721136544980107906775024878415708531651721250951527929420280406044382363128692439709796656938440468705273057352636358179422411727213016209532614331629581493826878769727868879640212896939726541822941284581925357063450740338972036629843481994324468777715907337679134026085412697137930400723370492339837017051725273359430026243036340187062606455698100411711261428300838141535940515577464947632765109175928758931865267470617958768638730006781263666674074619597669799589478421257689078189103538948101594949585120808371007973893728856921509619248340271786622035516258223985094571072038050246205662448153177115681105940616142227527183160779811204747729233231957516357587745452715652484175333133544019108154032198261009797479765054986127976397360899922062673036814940303441774336984341354943748368746185381436110903181203197168893745933716991206972380957706446759818965118410749556782116088595904936587765913358225770863822008425591871442740994440746040258777156210053398296659401577272951079016206311457781771185042224211477747653730859025978163844973415237970568821851658819899478093457206222523497074169228234119399189655232271991405320304779788073099828509403764655766599807138647791411020724942482240292153621170271980766393247369106205506493186940511736191127189488021948427448838120389327852942302468931972992876796443187900397228963496502570789866961163495000980327400215241228780955265749557206973265490427896286352259820483242517650108264160094617668899143661187722630486053154420375580250963204195093427674178962210069366528923368792301972340369095295849206014402073870513597946084254424950578377775022304603046523139713973992829236024242180570434026746493041794324359002031619620946289318826785826127136954424351324456056085984783783660777902837099151445663430499875173538178431692796899736311036265050832689473166413728989391930380628001041902185634447262080819484839295380529329433695398739707666063695957269214909309318595804343740135980673152137523261638084662721432269986120658843362377961976552570989845093674022819070418022548356176627212290960360048777460231248764280276898273214701976402799799080870156586044048394940825627281768802557715240597996591343374628330370746820577761710347640620639515460044237340699348323678334774979208503794301330281845081719215018060229010348234700085778449363841249598690836245063093434560337359235373157371415856132276654682451978711365451482745251542978467047082633613879355801409233129991354493816848942636808657824513685806228851943321460547342372310401566521200686901101796492708957253041203980296405031942025501800927780726340891180503807571208210334274345228938377762612438867571163745131867329436625724894763805543886404339345417035353224203867850493224417093858009144119660580525469500433247741460160262627589296085896126808915000269205406306002055999400771992906602786154172635842793348241094061060158704907789746297674947228144702314993169115606814640924321919836932506801436925582389645283219428825392317637723265035341590022805872388877444666392719660571209905920624382990453758108263740621405375581281551020379968528283378460135655495234353000560527044320682267552834925452227804472365648779596049302198254328486762343932839924209937283989339702221235900869298918151731926759391973329117189346346759044365033216641092872817389328471386875494703552809024959260553758849376356708349110902790370969260971036967269311418980143710229803451445607680121807755167569429572428755928872053739778270009947376820308898257736864292327747526987314963314258642920481779145018471655369334371543060661319349297878860059153805180273460766036874136787619578837129484380536331851844053202046671720403264324355467654493572463169820141027768982097642363371127953096426699745434617314713598876604409230738475213459325436195000951182058928248034339834062211448819460485799719554451472970566626601525388294167297782138434993528526726434856232644859275335086644013306065905737101730990651215925250495382068229346728171863684398505765767236250721064153811552559799655137193315410487597484398688590515650271771218119275351695805052215577994039442764619814555179132216098326176642065320993674313301623668125535366867324301192308123655237603016673094553671764620823098406420282453897312077946237948386556433320364528991890020664447606492811037891475319725914534182862776241749765292884300199482683922984455741620708062076067678962982382062192341884135330746499577659693110415575378381263375688566459644256830108710587557693395865497961007852155612429982593703109724597660537643120481825861835592246445393354580688365420844783356476040557555442545694660877075884425139132112615775658446342606686610797874942326398527134956811881241147593937585855935798742414618255179253867251850199839183510542635311211751720262013120591443152509717760703855939684136184708125464629859470115232331396737065496076528679828506796136254576379488245021191949964526603581913339932492150768744052149207563999865766760305673190207251546501151520032559320921398660864865661580879467013119260742492950275873020408230802009642811903384692628353185999680520660656231608546506181416647211217774784797275046538205087514533559432441514099035659904205626530507588961974521356647821942983582337963922982700262339854730960554284569819282072918832180059035933132974144579174377848493697266103749739082205149188504354646366284672833793876979641955390512652552450309052067753402795823271754409134620341890038060785792851386123925622450188256209250072937611715684140384016370889421310912839329280041537604740898844846843353108595488845253894733630602391404320237901364458805177700873487076504468313737324514856824417810146795927922520913178709325053677174612594193001472085118104743588251584266227324798589893485928385078666470723030097639153355790121249463450270339511539166292869053125096774190989668354321877651783331223630867201277190179403000296077644361372789329098994967009809416441644438185987466622287080854277772529934718620856173081060591993017034560001640559587649696334739502740444500773791372282715312645400884390228619780401981327980899225805296681131542158382326720395283640811342997530396676434835934227087725821575685060170300161104569060319681766326083108271391201157000087661556631360737194187199455204995693666372409619359501763677570803694995443888606445475903522179202133622849283643621001251165962359991924416262941591342611020981943447700872798980845270035872792787666960365632671579111658927061635758978585800758307481704666735062515469293276460484957583352446023166733488673711465033830758715334946000953402534493558728294067355987929801805935289593637469051135307542567732274102175725124282085221297691825013684718055160232051031851630146992255679785489974153231851457492029752153388239074449974483296557540026378922985660081521635774496235002480808662449510226200147110756190320147961048746170406166167287604642439697690259584643906440613527251239792676295530298517363295765913325625775697104599103542703238087090841436182925669663561595747796670938362994525715294873739790948390090515281572242532553340683473482391550769343412834813490696871744459091610111999375456692336350597189258383597914449191025980550462010639081771537904779418623510201592136638047922107008922840414560789141997480964997689791791274265148736214190718342642309254096741495487795224750919012920048811244698390834028911208232694125319525299941404663939350425271469090721957580429878771917832692392023834029012058366878435259482214499754600109169808148401292975986390584007781109465355977147580535282871866600851993385550007269278870775725015803883142492578243067730633420361275960843464831182321297718974865928924225975371112069155377576664780296032095840620605813879194640522038984781200146315953477483346335726430473291156805441668402727859487593750880758262371692528854350970950986546669488690939690796266734202301357485195090831370346655093064997333504492606959358456933941275389626753314497962433787376278114789111790216417452801638110577118166591513567974734791176352071305604472220436375225830235013677251890374466819305537284733686790083959936179800043489081431376564209454764880900012208364754952355199207623029797572948770302585250082319398903441347592841210570030467164306032274131094307298685744479934110719216068765177454617049958766363884588045793606047714618585635338079561701727678231167617046765132944910385271524610189116932883530142337525453806056740031090126223467030634549356353414375626148716525519835952052933989352345140654793447687471240622329820709987826213788046962820430622432414674345507789164857543572066977876922346928686128913441012853194065847585417964712567669418524318969178159216767060006844174473000223796748420544920794827993242115978540105168087468319415237028675278733757663638289491815729237541876827753802005607772204489948112436532794415850361268292261071169610101639055801087209675590139852628861387943540106787720373000148104387292419467140937848315141008419580242089223559319102091154799027960978563193300343930283081290738253498999818560505732096763042388742170306374083690226214705320839921635167488851999403800157145688032110025055293468067234551187915683961272327349994749053034594760849450777561450922744993186936820126606288169864522542421824620214267280282048358127554145949450735531790372889617481906173374004803603377390350339902852805252460464625890031146013989145516068442268996365377505871691647141764789648638137693828652063930239729399191796736017657375977337403057341517571822856280635581467263548736893338607125709294317336487759863286361864730292854986184267430630737125550358889173095116464872393820690468044337766404469763715403218854131602647043770761179917878543077475675320263475228858489278513599338250013661556938231917859929343906587039146750194050260654153467555190595511414825108084350206225964212759286746928700451511588580257126009623929196769290104364339030632821267414514117196364847944577225549666659318091420191513028941922005955914168452882540376903043218111553170257910177320013630821126512410141925706913732455624232427076368400520247177051805583607143535892876670523263440631432780777012426831282416211940147637098291583458024106615836483710653284414869645118472178145684430144258276102660493956967993153888442082554278059394234304573269457584992752839433498794057989004791675861507996942062540899669278413908099309953103990620199783357311054572888950574970008314500881203964206874254025219113423825555506817846286628039047957098750325230212787972012145015458309110656591776688185100549287938068014185070012682918873569355739385257706639521484084132966434053918605537063193600662739238238376954535643808930317562850661674536072862510338350890310788631474832824020526916739542373693084779111684674637533681897030337910360422206680263707763210247256709523330501581707612837205832274777600925865538202884336203120795463981288328058381021441020135181104983217963083534071432478807466918236475516458119493214208751985282820747369952952591622410144903453590637340571996025775286064262478487466134055448080687005065429128574615746376285712154785202211997064564448768007367773587876322728785821974577449371184094528738420150347661125153423455098744592067915279620813602176651113029047040652290875503755202889362126411747754389812864761870339042950768042314378025494037358195461334525739632940508267314894002378739174070782869514865517196291976973625567974331677483783830718799885062576604889172946282938414216292355039116715282390645254872585296223201653514390372942039213880956638861163033897084358962753715451797112956507163066147726290716096929614313220392301599057531616363996765615370701594326576185709259405871549162348038110784954800220323040113311706851459362616210043209723611486497027081940912794818917997242070667782083820240345698329336492522664181143817290704000604472848991836934369167453199608536021070858770504587224381931477518697468823545198844676625171558775355043010605698455834164611769826026744307115502973735526283050123133338565985183534643282377492959651917200992522215874576969994822442124976966457069654763818170569856493416999097810775463175803848132332646969735137664281962989255152298528323901222659883857750204750404671929471640061744639481660189022759886431095884711099616479531695842720443930465586376985131339211735072208300417995479619374091429110679978858751472234976339051286755359719228633330240329359901980564742501001939297726836914738933889882773100464213415377554164701641248408954066049084879137583611068220565472348656111567181222962268217325389327221201732435134938501436230010160822892954041957274248285540818542620377759088905279300322056530274814626674831511038027629082424243666989017710370135013199710353949432670238520422658455804389038890147293353205250295261711726181297129913472271758863520679594849442677582850969964590793526815114182199530893838352751047581462835909897871998509438648018783313348798968819154823185094350284472906349791055772334034831520346571113976239726496976626808994352148775815920799610655926029135562541858777438684599785467437753059051453936131694104850835259861165318035676395109554040068007101318064841610693724073053161871165508144395909747458326560188937068908806592720218585320761165924946818083998663898525382494164501061069730990600532407901885465695143971976336830848126369006828493788518176340460487615345861737371906324635847404495143957486508110651740127047534531124068748007758351556054887761901833952020067387011367053571287600853726440691376416831902566426168255803305230455590790141330022156638181589400025822333128502988888502350686291812875299021247145998746908022720959691286619428962442166459044384438450665157072518531559094551904025758563772245059558671894735212520026136055422876588917906279196375544502828751902386519272037717324577717664824323554550885715653685345219419280957293707620319085835592781038316051531314659599675787892157753887599145167097845274969862686480892942500272888346813448833613685017036925576737887719196483000048695114755561698850992791652892840241711245610053339194660631690005541512440333521752556491654763237449742829362240239233768941049801786805944691472138217588208261092486113828383908475059265138661097590705996607953326615721601847333259186146723130948232860593925698271503759580789885029484933585614306695603990354192229788177622563664628228583091313607228005648578881544016422541276883528262105403616630851799982464516451957098648255774946381479652157636053527935780919707176864982180891235133202048230706589881813656787186175982628408846845084413922500068793963024554804976256581935264224789602558845636368191259675211776150484322922901994322123205637611567086188117304373347453694918261051995085236399089015152222543819164875659239271007380115403387878662033342585938143371543664209243962173882676537877961562151846142754430332012020139194880273477322215610044133373998027015985435807183126161778743536328939060970396883756364522648147211155755163822155173158677193297213343093779649428702932503567936934671372337845913087652929910324843591031186271171325049187509549690691062468900580391922165480346786658974020816035498174589320294066086938270741133909278994073694688143458670223880649321360453814920564370760907956019967736763313020744544361669675097670816490681941798042664808664190424198355999766874189456397206050960562986258379666643619084862252677202935720223646278777427233083001749482712250987996672502468185993120278999032931471198386933396725835345526968081919123804190337933648990883902444925055835018720016994764932361835506586202138478825928558921939833292036752340577781926743730039759532683565176359217401342501924607812935456366385536739723532771380824222399033378359770920363182886614971783691005926319221420484616620033730820207239136068904915442062521262420953485467632073625884273614945604149642693506856668012984800397029477324289006223939892304993462511484293942758733586337197998071289961916488772818655547726580971370505933697856261663053935524343682038341562432837774119740531191763558621803986525272733158748374028838564790928005944765410911574892149064961278455396187636037662440753842042251450640885610124651967581018578604180957144345433885315657896164759177031817486107476919088213603320198389046110144808242940042394869242986040216536502229200497024091690006095340394331230616495394533049269270598154088755804609815396509873276007067086716291769733618816048139328705319979418279093791467987862334602548265180928941531139148560710331360726052362051224144792569640179528936830857418269171013642623766160961294948705683486578908618594716036408751904422388278383354357746593952607067935679942041052427634688253045468342188344772933969096803596068554460495101727280526627711808203242165396925112046111958871246237722491883593720171433799794492472451901845359474350830449359061945923753490304359169594505560879804479743810749805945737991030379778446412909573813702237377199735885448854990987710245309398700692334314458011269468557987312669732007597429640585773622477805751542078467082164324452309435002155103291533078096611356369028963002778561988021879439688693221597402255652709884648041702157839010919569541313038569610303299208562497645283397411413483276770905319255081093273716438893606795959575789022385383191140280117907567430619866448280168069315472215531018725852801396737835323779083640194110806540247833090482797491077630031643588304589529808441114662645645560698599934039835492349938209865167613987965940368531866850054406303919939830057976232280082316535295717583287148464923460734007348198266143313753412791855723988534228328411378014182428470565543408751457421690791904932500769421718865783358499835349003784944625747307459693258745506753210092209512832295233001256514080054983058486946877056706546018143297277827846480435502529962293306918235064717947131821028070257552810823579499469518102910313631766721785097842412460789905960098238300038457986018934585042784548640166687765421822747290639112554699785482755894121197499775937674077697321819457317284375136942469649566261130348742873296942245711284245390117731166806091612457419869027803304234437371294038742241187691642343829962682303438857707704933662737459375089111442934999921090486452789956922274803574899672075678109806014684311384430286910263062930220975558957938089861793005746688172873521132076182080020685960595492091149119908920299765966328119756257151347490391085235350351849744499498640339743248845401508545384613357844931968081066631328230435532163286764768481696167547315876634802398502751048381269325432164851896340727459995420423315352289498233578238112527645109569262880226188844731417256759571161895093171368763511473038460959811358928218185139944060299242653128759038988018389025937519900967667305327517822532205332063363863602980972476732012830534413086660711436290380519074841432807182724850387563502337349082266046258068363974369538134058574801681357088450217700224525789302338406700641421142360048116292724439799798802982178696383966755372897698347004085454618534200805359894189854129209832260288413048419295109303812831198080617825481845315736071027917963505642071981976520074379317866653514725462198888172069172881689288173546005638069557947486691409421349899069963743315128125782396271996320594999254874918017322126000609835826102275603460249375434811802895588918332413567992358321593112432724531212126509145520364925178672619998640333423871030254351411069102903784981265717369423193477128396972357433542414528990696904163627004171127073058513524251458528657485727812305139865318211286194951306095675728534040217624363687433717149661899482743157299324847459184689343661051884125470559254372124651542426280135725441655355176469503652186719966021222094441638644091343791365986532561011267954971472163805578120917555129553233440900814849439914764799017485259154848007085971066705068914710361697773754607266609994804536554529837429244268242318362166649087732368827073317969499815667324324154218245060397667091003357535849428251803269162524500909531457409351747721660320808846236229407152516923128591949047983653083970940433465280562472082549026377104812596096889690378398187999222431227430823221902940164218636920259930007249389958815537939886657407736919889397899992378471719651778564926613957499102785430367673358550998175269661755271750362345426941512886483970352565532436534040867284718043654394807113206154574942070210269911154798637318967516186469446955768103306443582003702948700092118843527016157082624417675921361319328012773278782904161728892509256619053248427847084703732911434595410221486003173779653740067976446436948936268781597085157797046120587787949135572565182564378991665219309945711024342969407527721009605665720654139719369426380275481454077656905401534184051304284808422317499564666519565293032455359559431006972966737898757613464602670745132215612856075966399085393168154510320459643467712806272781884835767588653446763177349439669232596890251581924377784580930198720821037076636361451655312352310282566688267935061074455008865592745114660582549957267501880626604262625340435404186080112423432421813120145688127807264280764784558939086791631232337857282926707380927115264698774784731189493428074951407277346608470285722275132199796470126129562656793423000252230709869453312259924319187084799348557625702757825617508103999422703644874388077414858339695135123828158294289382032157199613910570453775814645728570767287934472013280412071504620480265245119719933575452234885848319492351580775449539632657774203536286061039289622474683656914701129867033806949494408739750750152390870742265301424101984362207249783689107327342868644465197031016149273141536136101830314471282697235174651962178867002328188419766807663376038012250967176582068980263797435844902107426490061180368065021106105318157619470199301696510785567298040584607671069665969352635603685912712142792833689369019883422514874331695834328531259522177259640451743446456454322520868940861840427212077506544111218498116182507803329408924267897864678482758555126093006940101106141888877059962452036665762617762283128610378786739528408562545540307061931548487154631320913886427382714849431778605301995826745598961020634082902043793553503001215493023142496892015153852918904190480208740794235249467721805298963309186410880887756049771754943736354579078000843543232318587677465072284285552548952279489159180079020411134035689430662441200577088457427957215745967562390228684047380348018448378548385070076918131064195690367383968498069454655082552690120713267528149293595639623026202497116665880452128098901146740232035043036640790720341262678927853746948977212467492986566090857465087149541182929616472991608896388948485775163506682222220156379139445917509209733203636568522860477013472214903027852112974871250316868807469205825066378559520431838266590074943695789813341544632852694568884247442455312004600470482101179807183935389094737871823061026487658930188173528935940929911409945678262458263711429421497518118992753548630129035481198669337834922845967816015888339153003050788846629630778610871376913410010598847176300136636285310215411648436017975858990105325609746446980399112049313112032808742318957201075741499215900196281426107636147652328864295549975747924819504082512587757268980000500513456210156825428764430680774028890217996490272134285551668758745703553983395668124650476549550448421807183750830044610166985566085160300951003107460375034143205776229774175479368146250769044459647917385892368124200145691336170280099731437473959002864325594871362677664435393351650548087388688528012280372791527971690289660906635526508858968234388654287760002380526484475415693671509502196100166796196331774069759475224788213657276912205631745319989570801351227581536650309653023852280659328917187779537682417941135167536086639772257815930787338348975592267121818750235005812023798197388505527557030044346618455821116953133769474464221154524623240040856808189586771742758940189733948894810679274666028831749100613592200097631170183387890217503416635862245984478330237457401566512775805061442578632284044153059575542576215339914985274926012722830352423312517943386295220759075361955504098829296650073137778998042339470455967789661582098119077690833735263140898707342342983305380517169711920780307850290281249494267814995661379068863968698296115549093322108478129271222088569439651262090161559731219338196645907053427262376321765889509169862361146357663194555462617544621024674689100902391382757937675315269986172532308608417587000656214097916698342189606252821770308616650480425861760801561219122494651299137568085831398065400766375552802449360172271683748809186855766623800585930367176932201210675916373568738411831144870421494325281353751175123426773001038934499701626373597983042756135725138378719722313426768293650285951216311010971494389686211714377696768282635406914304363622213063885498541925674403675145929713722116955920724787920572052320419201840258079332836265303702098607796432620833282269816061705282658784265030928860052219214831302678023733279659096490427366397696060098583875325355048537554871677636222799352328814838465119132132596722761830280049656683109979597473226826897400423884615973808410332344480905732708324232660754762164394744537707361450351267242649379206507503628311810537522639757922520975783451686208684084193529459924309461833305685273890992408352349124985674768047306899808447839929135333017381401272570177823136954187913178131255868181316685057455157935220500193331976201602127896092222627248993392668060257751465515750566890925765641867274739391418585115096686830215902109336627564215997497606373530711338702487164057604908995832282170686323993142094630372592674121922026646213622878167074814896231270778394144612741803724404870272179402228634080541139138038513711279018663438270464763742844187941961545289626845597112869331318702885508738985810500769284399023622477734654583507523398277624993946515796585638076670901013996142401034236216664060972829554328468108674154777991264126021445802699348930036828731105249431314892042015242160279006936867546608343971639311290007004636575586841725483844646479224990911014519175454837929446040827499535155103170875605208563096144088714560210273010884150287456804845440144561538102822100771188134643675256845685413064615785367627840651927726598745550514003523270843733112245231689831542443428547915997168828185819198483982496980812945450584208612551744219218683047898617236916884368246035897862283512451995421021965553920239048121501530198216770999367656988134673698420023103990924787254366255552839995108339942598787749343720496643092915612041457645314090717274221743549136109316909329214688433840858317507805771366504228104911817854853623176386776965437238538041566365956076187599736444233744145454253250683265146508268334863472091689368094694454159611784802588938100698235655018097880889734173366968161984971522108698049275374198713074029548737296726817511063132337567448814084346611630081185787087042517602680877540681730579973551832095979133578683860011322242173302871151996144315900995096755379784168384155948055620617900441434044736002005663253928006016338488569612120620722794736275200009907313211753789219357794664053308211471344887454553082654535824790294241891716086459951874869696620852900018950883329633574620544578719091561648352729960877604052274271071844840155546341082299424369666737147727680500721521949871950402658188761174505041249573246198400587840010920226747253841849525677930689478256118666150766632496160546497878598722246893666779868274696617375413332802964838340067373974973087708354702625905706613613587851772731064787063171894454324149629773800591962431380168994684439146776128846743039463164997726308148916778673566472932812864260578113251035725911465532103702377336800037581423565578182694992585398433739451197400010176865922599112514343705851969278910797740776555854199053085572582160126810377225046397211745470792443563558091105229675640746872215447744184387102257991272137541310929917076278295485379321706292487498842665583661994213435028521543210100634575019563019296057913766024195608336642171697441120996808558796808834562138719919749617309643074693747998005997237633467838522976481111237582907469350954393020928263645656378932236630301902910661244717416974914139343431939282298382914512478898910952936405841656020408080319743938180860957145277054601322807404507695134677909489272661067998055319862680195542644074911867819360192297395140504029034192637182951213756765922236224279828393100739617278314832004692112014020025132615910868695394634801008033243014483207876809310751414789084438295320653747352433890868808618484069760339793491865060899565379370306976598506248310706377410988318625253475820661237792170024369393934187155307542698702072912981653761152408599028228494282150515027330276485292516517757097621184250009179436936875443698047492315822017026191229557048705470117492774092892670504146327842282757026771321634731694148019716129615557636069699741101511561178858609649742900436904702542083200067322756268834102752136650438039082737702975935147200780499786408972917756741870366605880244588483486039329018038200265611402575490492930694559677261590877632024458715736087653706021009709726110721327556823572045437317016797667616727733091391093204905159133780950109406486437620865628591548623899928498399777192174018844113450594018008432959650083197177291753026572158989239641480135480768438437680517256738471536836224487271709817509947282208949483781163337891868084129791411774596120737965538304772770059217057134960808802919370341052183261516897988585631455054185176527907995474841757781033265407353523178843081057502778961995038189705825589792607438408030632819420684255137686742518566438841777313692471032484017841037240327609011221955866488365729622440848061481080753621243558114917252808380903186669832269569583133701687042196614487208326245965209801529625021331503094912781279180244176502448914333483535784415475220748423069173981768018752233894604294677553414984592820029892512118289658127629031641903772001760870489738448091107349068443818669827675097469845766353939772347280461679975310701060717615900035382787644953297678011695003867855286683322534174270150596955584090294705537801204348766672161437041097032124596572005971008935337812349980716556942688777570927745689579551335298329645863511123392897617626855394479091757552376580551156866904384879145773457362556803858988149063018506589032482214943471385533417891041193211623514421094963831089867781570337257916465065742997257011649844872655230349316665517513516644699708651681310869075013958239542084857899827644528131506839009453120759724869453422194500180362187961328301525072771878088328282568620858939203223651478407121388887475820600620732393337599259581146759334836303735905055567890731495849183503843583110843359709916174289960712259903331383135590544734831121967479632412161222628604204779905028349031188335116324183424487523452209911133558012511669355830880066893181580111299740092170110700209430252194133068497918887069112996667014806817213166608249903736099433927447987634159688272520097029557913302356981007700972185075931743564372647313006280970559584464615222210140251329713560509425449058552624721497202530981093335654701854668977119379398458805981493454551130446880007744108476532027897325509446054984580411355105850469699306297530713972933670007047767096188988014837596164931212324972088859520002864961535484930539079887895759254612226266526718059538518204590725153307363082062859268954278429548698279770050693315136389012922564974236103371910201756055891124757686283565405110739173416914161476855041122325807827940464496395373669544434264357259500198993897654156282953618505954246339445696011765058929364049583134809092812223867184449719713924306153127489202851380833674480337291735735855957798707769987188033207787505871845667853331946793679617449935886433698841430092741118000589151213464283625921504628420197805834249229103937280861039914506920118567104263989401195821300421455027162706283633470195123801710420097499188367356989122885001077494515847396934272778195751423951664494905220427383751118664337259621657589478204779489512780027404649432578828541230133166771376641289228318024440214504305016298699595962560402056076563408388355843584335272614819591932518849292525217526610941489260850589587283039346298581268365433391078094028238594509683977002815183412421808107366495346708899522934438955383030068885275827404811277725801662617157198477967971169790164302945928575247306770525468726919032523922402451971382251539378041030198318004300321845840395829570637354818146642986780653437284641303069729119484084764870396320491882006164184937898248721954857440968959806801737542696864944765046432461945895820125741294985391692126795371778074977282811496444892139145015991631407320179583354631766898558907542402830167113191931394942000353918124190606960784863498453410242160941258682994451751588363075684568738698464999467598587249129742618450598026397108670439200354027125954453983635993636549295134952102504428887205318268513932311714121523680204147098484081350147778406726087408160669861293759029931381478174891913507904434571699970302291231809781646876471737490261786883528251918716693590667049515838424694597217051375102538893690884212163878440028149183521710671422634671390871704777804182151947028180742983817924343015459019327750873247919952298125893543463521363316118633366570959066934117479219022568368009395320619474662070217202031940957881822204100518378937355205983476524009180807812058952224719047508270316330813737653293483549238854066575289469663899628864196493098768739899092647719774523150599909058289226141146758685054394661367360823901719577827090791556497532013996266427027722500092283637977706307148585550496176287262178163791232803344605440772160649183475567644302008700175364118125831760285286057471165084397267647111069343571247520144730838667865234302894057256462433219614051847482944980551471683739572507723884542682915127179145987774340309555726811281135901583838513753214575917782636825328855118696218494893199626403916150130417642995712471146397037667637206183667216888549014044942830790624364679876716824890015674550656397065498093831470080423189379685037385890665813533265113389244063407634322125426084351233134427679720556928757916655041401861577262383127053635777418065022115352225042367883264394737403996862489438077947164412495320106628646120355528149667729072058759254096569331636884144191828023302066542565865098220133403065509547678827970403357905508757560435457559140159546951866190085397070442796706385517003730996582313792552337939629391860808283846578634641299001997802404266297081394665188698785717312808525001988714187628285637031467807734404307693893390482429665238948640300568046953937482985348733564632451023840135186196099294057778470568156561894422553457677133659562354140672019700460777890373461773932230547075064968057574476438427141766064434741515931757946250335296270617052663657296118855611779788846805517464957693711765598061644427530472056724551445861391402559143810269193255544599715244857898371805356168725824050497273184715057376062222093182692934078677679010939251957354544061080345656806688730202980382003848715326631831139289459290578228004401264446966337739749163239667945624696474154340360108882284148947128007775711511785528938233046562384070375072620166220752821437169682608022123282484117452683900179369238719308519734705805881347550395921167147466534856739993697243379854162280271587414356288846747014103205985976707634765764969288261343592126013671926171680467883092455166132874469937116591371414149650918170034491208745796176099172295409430995260795453041507217873205240397950429081791131473223270494076000678156399930864954621859158814427034909696187691355120023444291122768060728984801510629352008395709943191376916445833621503821005642199884479794040394956213656356447191489608296256143552353956937408552144578243717108898092926881426727000643210812390893691091909646522204542802050176829772575511505360671513129961535749683680080323148036660342112235352135836613129554239347308956838249611507626973819744209498424435106932542080679192542543522072432450013894450057455143027982308132549888187496308454926824815241490784048803210546304480641803340539974449088671024992671763865115087801898831902950548543572206585419283886010509643048682549623893180582459166191939336780347711297805573698704580585711345003645069349417972424688574011579228354725086061458009366266770451142257367751284405221661104106052413687623272626472896669829194873276016382487198752948417516343018081753090154621365306994645116036825610259930248080853033125755507095760016544301578700401043468416262722296365586133516347661981536375775262123868085706209044588003426211745180273092691976408539071483675353512349866790479412727883160514105559641703259249387668857442347575125771883078627614476959364623389602127860146341370605018588399013850196461958657128842705367468368027703366174715124459245451373612817316258692588600999128793616690164677810553767253099073961691718733708000527174586897359214463382916607897666890278069453344676867581081974031544675398167681931412517254132260315068048126391263167855974308278323680895726522706622094193913135517827370743836432813396324718530786907718592068968450384819690190437655912444024610756735858080696045183664102982036099859977837327305011720477459256603469813569411039766589812702685931325276964413709343288467808450610798685562848173190836085776804127362027899459774171154859671760951372382652938328236954102561248760134766837564539043443981239486074134109304072967812606798777675085144315408514915071913779847573471613862220349493531426838781070099822263551407715669043915635783320891418260717775739849869490709181061429317343003735183212241901145794060100052047017215285994698699276462035918883557943356279308416536802464728848245554755177373659582102631535743962318349731745194964492367388779917570190799706665998392468180620890411829374290623548216701341278358417815074494700252139822028129106533972960033946677657534172889934792660039742979461131927537882258344138416048458343780357795969740405100129826295719403413777177178673603384054201605324765307534116201763153132217391983413145345209749703359735087480738318717210790179600100899360310454461761113291513282819435739865293519150003404024547081858070837971784188005327192977193916081884664390221791811747103347862112696745373720015757767999031582875131575215884804295877357988315391274527839844929171050156215617788151684786320321596850476337359802087730469912702338433912829140995227123883947066228214359855970760927006322067355093084576727278928389508189678990468831866952042524084811544808424880062478861898894533444867452707280016370433145012185770189017430618465513576449736673010445451297623607882766972695323415155974293426185558263323786295125111259049850425722901541275473058754278134964194904319129568232420409242345884362625312370643602377640482034933371968463781235264561969806214640898854298153651934168255514180270209347851400212977529447168474088259136484495686741375406455510869167906862095658035734310373177538823520507454571096685020357418205205345186265043417254088369845630155228980073205609271859799488400217925990585522989993492258569366524520736730051597052297049291871438509311564368743213824199942527756871979738754293397227112946254802709949484138213103509619714923449818173374207073675966715465441240860533448718008516468740137821392692139701379548496748198512228897357210909417069161568876486124657820034374986899018432990802653594426090044639783822728685293400427504692098912967178970782817781207026390773222265836549024510151432986813273603827910808673584402703229338435112724090012174626001976547589878744573602830199427036470024962263147950535418579843643508547690897980674555117050427418185606176808702064445805558021446218722995003781627061496781106816311260188689801673107292582993252010988494232498426884735967438391359598911344448947681603996085651108087986750167213358592647320207892044813346879235340588979001219588674123798338203747217532053333342193854914529323427137704450148552091231486394890581361521953350146037994548402434088390697572574887477463449472949953030042154441285151209478438298267359012656077013065623605029386015980893424623395603117651909316897707637573250861594585581228136029917858221115578022646819665127366540888083738915260591857099349723404235509070179752397364715528900358854574246639878662878143042499567481075089546227123765642057121407418911709752640340436998992819840997233576846544261339683631421324663880795812029383301107176184537189333260496639754232975067471598775968011974407552105914219746044095763933700317026279323445519043798226153907471013554538551730045897391736209250042181285368622017499935972416521393289302042009040361784847157722312721264308687954360749718590450003039242109534118905765028165605758635491840501799725042381900016937308608668317413063183974946268069657023887050198129867348619517529224649273337639000399724735810035983113253355011704159042642457317960583824405867473423528141769543465715615769739848886113990711944051575379452811731740316980919141723381788404773145785340285595745447293509457087575823820106039030536082286265022112598541559392689476765508612282084733584924801824693352827589746867191185299270500159317432817641331348229441239152283838251117487487156733933979692501077796636068827808075958077861402435969298634597028748831873308299243431720341108243590915117063930242933546641120287237430372792938267332103441178965175415108297660080425196754274101134668529806151421144822240191617800709979305953772365807193983600759278919967055359831669629996005842328085772130815037924143745392655954386068975824902439720125859399123148727813205720888045206033027152099213469572422051068172131298508987336730591642211523731640022628779259523272882618245864563265950900539533219470767932139116226271800755335241830169259912121432955709250806298119239845501492263003027105478814786788095352061196965143788043449156988064037624658353340077492883223840145674826960363766757216073114096389105352790277393699143775085430597569626605559689214983247465046200249529512757161032015543167613216726752206388886064617297544867750139919201166128950865847712763930907585827872217088486870341757890764683290442313827590017538735096610384068974957107846987385098944435300777149962907389722669058460065610687230720744820426987751878170563820875920812556276548640470614907048593999063640490860423228154233634156975011261492754478575385642552406203973959119559381932000927915143258901292322133547253360270327925898447214665542710572557456386786310376110077981183915316938227192896452569681955098384297105010042257377845164552633843328186088934735240135512691702206366837440583857437102978478077913156637357619584367293855865849197961041502649019831779276435118555582141488200108362503636456173770502633581820699988249086084851324792204429777457438982477870644670362227691207056286567776449858907003096949592823901984648928354282771806537519382785781348391505833757172115300589817916459597495707889896604076436838462325601049439293563281736259715853062948785639880585171904469255444357000891364480736357274159691551994453100854804825634946813810743169612823940524026225747793473052702147299013167402731365985632214941110107807166539857149360596013768281380763833757674772712179837655511900114945188677475461385765260587460064708973251906943161793516793633283750661174279648110259718855836800385187454792433204108139990534937762841831336016968450204074594058216343700884094070777630516651508357418374463128338727581529932434255994689233446081103491801462802390461895546636850629244372688892343807734939924211687066573801520180345470395473467067588342429638347981053697589588708086881040604556206874853683902442367952857374609761976994359245169100897451410284753685848496422165363772719048269610213356912782923847582863835208633760192437320683864743101558681294921632016477764442302997374015799606390933655869917886728718878693457465309201695685861059420419467381810287195780375809592389566012281787212070541389466291275381073188488396312007623174251761927849550960965653562383626558606901131279321540828301035330297559807983259688322663313246230391038609131156044952866341594390671983823355535180549276546612738761526806929479789519886586163622323775417356061940628742607007385105786663260108003238891557724010170757638657078080742189414803759888372018067521722161800617389007086482891278795152590060808704443865848528250493632761654961514832863638914530237891393108348232956394834976467990877512065380835222246343478885837577610729854870502722036034136557175165142831555404414536129481190845588260999768924443233065909800422874926841785560321050122462449352705310295064261400922717660865920617696162919685260528562377135901607665366924179294394252361712782808270784590330814757944481932094956648481191186431341125530136815625653593894636419060272283742292548655843513387772888063916425381420472109596178819666218871154165621809524405388065362795178239641062178905701455650573254193255300009940199279359132356147707314567954879746022982228612371187115660227457454822487302528106704391536431300840265854642607088196728204912065532488083311067088989783837019935517564981448570098091233608955952959124596251353150946230041772108961240844328467699233954412111669153130088998969402513347751326665970297371963315104611142662809430202748735602457329316533716931045587614572087059484149235412172000802386251497905786500488521388940884693579349695415088184502270138040552211443968350592673082249462136871239124772215181825463495589414654717754520451212948590637924995542625330290070711385414720561438876857305410252949922143035068549738516248275692128706927928951004296782953497003194581615148731683656891697294138271035529856088209000296207652081999430995581661315586087411668847610084550749247610707282063518526103449899161181691811329700019690956714454767948617964650252570678043838784756800938677011448262248528749120024412552305458902583045587665859042568261990794750219307944401668966628078078676738658115144648830165108067942605848235963920860666483213207536482240093041326159307231197582513653562591997516935432550581893131592840192689732151523825060992709257961701604239820695426664153615878649861411963061844691956437544942953191959460410954991318319942935844010516212319302285502875757283576415618504986180793227501552146115267207461507517457331603140316675653345370273761497350998593106005234886416910081664473962416582577521315552604754253589166380453461467245081810926309328147872576500374171267549164781407170396160481198346440291198031442923012074883928197271096424119611640742914758547161963995615674555990738814729261924563927248825066241352507612643667571522033813190476065678416409995505566770857287271030707539859786969273382272088165641190169730486840596825241151072684609148524528126834414230164264148851837734012049740732071092068345641907571241595334067210545511147590781932912202766327978258723136879170983933738854611476012721919053770703161841663770031503105061410098438228370311320749281371185501630911550560457429438021550884344452849231110736017160758988050050336790405247132875655357200156297135667799128791298064670474875541923291184342955935100614129216455753317817474107969822343575126243952440742784601738689495936584175243052045698308042302346942241665483576215168624481978082887112216057234254408818606096675449436233743370024655121486952757274474450755871999927497123420756832269457461644225237407292875103363266469594631052246978125328101616280080237465680325425772273435986570029234639923293249430635310930088622150909668111853127912790373884951379143016057455344478578905421702276190820832485827803336147054852410041698500532519948241462565530677687883663969916020860129575058517980502471135045516582710020006941953679309453620720235957764340552843025879184101694440863760041132457743397691973069980821672705130287055866136059880205186382397571110598562196460782842880531198871203430612355859653508537818129093578294423362375830679790512327308083863918665625430523571570111303548494895949264091205877248293497315443858280569980388728670121000077397003001935692031879067213923738761706444435398147645024447751314659183789211508660764391456538240494489853827169368177501396565648386328220789990941496057232830298974761648325599588373264380193801199958435122597510150374976578883613477502848405060667004554814985206098809731726728838883608682402253069355176926206005728290783986190238090968239946976388584429892178099712795140878840465095352207436185501524861026297935197105904024285378500688682501745610957987017240708520650677943453000369816080498589587645779364600457369030390370368812793872632978988788300492131161624273365408288520762775334471638064039565882867337125204599336661686557177046613123344577013417447998181318152485657410950759985191231508451063533269513700084122888182757533811217035796998430279106976334407649052383388543277788420206856951658471548902250001719001880084291286248027052316084670187728143075097238562880311163536127285312072779477938419576493828395578662451057481799630163891988284850171278963270989913790585475029277957702038340986800374454970702259239980059738831909509373969937399536380209623158214988481397970692620863542909686132168553039299403374733559051374481016919102893078257461201477762064721331943916757756107026256913679026983370954204108182085306504616049624126905248943346249189588096196528245093790211841319703102257496394907751849845254848165678517895088429385454987342097317921613120924810899278105730410405785700344330235045911461122748604202189189686361776592160517743430215574926934914687609387419165283075804186704325724147798926071654915442956830807813332011779212133202254808954695499031026439458676155703294518503791272466099049606018114407189880374168363442773199075093599360936760622511757165759438107814463178585894430656559428221353967999990034867690760136382826483870019832001748961752663588379188425589331398634732473334433197361595473233642123548467495822499521495475614093463471468838993844550267499167156197724560199823552949185414835457353682024607858399297236030705292672916389434975094793098386928178688232172652738151527356343942670856234075839548855250088318771780601277808386780241028078395764688529229894619468192171547896366309348159217979490156739519102420133220366850359360321387978466531822058009608572548841845678044036502209031097612703719284819093805553635683851226016727696697459466628465917162977774607484146230952640035120094071651974734889030507862005594837080802234857690267642013088254546634128812106664921587843387958349527083759819964874623707710793757801814174296446853577242328441649546758863455052646441694865458454485795644646527060184095867929569162116458161783656961774578487094971959625694406880886991536752925644990190831637518636419666781868270599746306771928769605370492407322174320191649542184310602492939098718766398088425109725487203985841982948368635516104674304689019849462524182178353734725573037728176023972007404179549850455270265473343023552197293774413013497717373316459126995741551706208223944601441702538295300649971303102518124680273470402869283161157358912853372867034745079627586642533926769054687350808110130868128397608751765704479156262516268219674832744687695251715915562433035835062732415486998986251631740538389032927327343761054056557638912141521472374467309475651789636879481936619701837206153076630961285052309555549209578922009158257005991999847304883259735545075910710740870464051867064872805766069228865484630106831268870109165891823140347101611183325835024582532087874893526966790987667036712530166186822617461871957932348478381646750358320447439866645406626709240948891135692255413130994520486253854798166216782656211297398485058047237395588805910689048182111086598431842445197970760324824205373981356390078205405236418789157879937430086195499912255495522864441375987999665283493382023126673731159740236166405423446181154036556820879721887625737192266867506331325519030279917914927814540212137938142039359043015075440430479459085073361554999759058094335159722792950975874521272521897945348831373925550417326531250082192108627405080279008515676738893276271474677799830872068784290791508560274717412767009145347757490926892346574805386387272609650260767184475419456831261154568443796428739540006984231634721130311850599030982225870503794643966939083758259268049260897591693269591362828521251583947271330979845537876754075523548093814228571902696063959911927488002564052032000643139078265391176821393350699100757552942280830584303467320663223230510802516259186038199747159173448413437558317420962829091743290306102528120555638230004079657483658165849343270396189356276532406660699432027088170243314874160105924893173538610357374786092893087858675792806645862878228218669121451165590859217774679651932187439989230089558858772857183541460314556157132430308924927855022941166270361316026033312851544765522523223718078895748847589038638892671891557915087536113439555896391872398527705498318268066455937011861736404083306268687656646995303014807656848442893573731736526668233749816135010286536541070825468965076048680513198704937404986874555464745407122464881932679025363545207870408619805889793327061440698304045641372317090312631924470510402165036420009094852082114825439414634281014128859938391031984710508090225762792778458398165207741736073739764639725840779336601013703756781145959978606012157903584046977581773360015340388925026435902211746961886517798280366069234576838229409635639319423465844076223178759365577569676056611386612623472846470907367846573283366172553756200999713893000923754953964523957159016121129161764889319720198571760814069951553654261896124633371508510013404644548112328772066449946192594787295724107087866505876194212741050923697412630881547031537850872401919796263453033279579919840411959632997545312435916565985362016101982756059230464528893181586773733194058693341602228912290361229899540417754074773111521135795212268173686666966846332692364983346239560702680459563540775361453908527293077574073540357838092957331188984780357434709108503160250677941928975639184076170012691223041392667374087121465091040010123954580165826659113577727381285950509132780733652182740900577751763254254868723459547489564473320459042472246281426318535188093966453009128386454398894346910038497786309568495214628897745549937891448573252184566341022645482055837129415133828110084265079259857084373468850885852564448257374997960641646136086017493426106263378691718437330090837689058884321609893631785057025189271394800433563999446125917260994634940257512645323453431324067724211610517155632880974577703760735646898034560126409496994251892341050726276927270193009795294798362233801254059551861027160776382191136270214856124557626969940934333791235622008674962413172320696135361311651024583712193679539016915918820594331794581380975557004313429981168597311398365509686150935126411695921255186241349769695418167626740960405716164351180213684712638459123338704256148929698164978169083280642056385976314672459868485916458786131576672838456294253653013170967426294163883077511047552553469424356329015964771373027984955893975056197930870493108658940493111354269553563659318032370515933071671221518826201919874010223013686204402811311822922863571374958892202454487109630188536809175503458844467223600475468480692443634722940904611638159329136980533183063806793078216680228998778174517161968532286382190728550596777800361406613237880693454949286414067369635025262943825470198912297627799810156464406708264449537633897422935874559959980733275784580029756423056332661683466870531101281691701162516516008411613994064202247786590966246290405922115374418840485048870255672797126580093855243422357878768173257884582206152263709240902752626851103257810105973605705143954029774787493792818413639202162576656772174314095079679907825188970031919298427735235287296502007064242025242591045768258405756669079595776846190253476599498282933945852141079598295293306937067904594363860141667309014122758274934120665663534624609739634850287530194606636419340285522705170521817112821621326998453882383792282568604896362460260806797097872629670026255962332498151458309251023823178584817698502705581420246656715471486996670862954528430499495523507316728030177833438312803867088952826699199749459646158171638319265762944447962243820692284342766326297971215212146779782475852786410006252733085217641812887308156392176082309609544719278778546740312247132958348899722369198762939306315131848561500882708784221608677656950349561583817162449172836269256410561489607872772450614022544640498824184931565326819603454763749536633794714939738012833773957549059484764916630002139590910928981116206937802084800249873672331762778669208768345313891027451503893540413368065639040733303083034900536760308576242749029335796508715402142976098825043831110289477498363118709542079654467290080733542404730735023823761038728974028716488122274018745472225920995485117394933128704849950662092900363548803255914805138339757372952103066065798551562590800984824343355540350035191286079581289003164620793752157996612430946118855156198179737599027364515078257129915932257454860662469662327010090649829717801539579106213665894336535332230316460482809019696732191135596393869976481167424231759720449088310342548155371356099149380886233760900966769147242581983524390455732554596124104959157313440999041612857909382448042463405213481889262226413780916837225258937072585428784397869336419645672839405126709085083297842403491111824940721650208738887488823234060307755246577323227825538243663140804602472072728776707228672808500904081961247236306795349484441152014087498690964973382687387887130329819907383839060099192296709571964157429824006483843726645715911329269718840751284413574476653521678205725983534353213008841554564040983530834792765328435743224363188983420760863564258481454847826404342185124624073513166669260202184388934046611675804408945723407209655873508422509281143946114084836395876215185574784623332077024153254679906593126028432151415854191184156435944141959675333585417136779468493506997053616424180977833108990532671704565997722107590119738181261381420983736479690678470031741079964246837794869994592719394982305406879546769005857781454385018102688371496730320522963995986031442767872682509906121079213255369343700389914992297178472639725410403324245260677141367296646934138834066249682730146730087119210600361481344224701497489071708023739710102783122026396891345047844899307881973770035533908425954291273302115620488566585689448024999766186369836925169202219024904811362783060450992024130991702034585290089443260783610092666554747525705592236648692355679651433048766902677959987903134879866213909949910598675562409451397268855084452320120711965061596424120125215182682972972057284212721811456144045324287496061691705963324928121768608357712439288449456732403322277488901125936282474143157842453293015886015690922316724855090059620765384959500795072505852293752257795402622329281752933346925070180314676549101874420319849898869838913788519163103547946194416103866673691876705063175387161349410102113701609155682553176935253828033013765928381419180797302324536420503298958455097842458273941829764054201117552360583061970169331625047470207122327264061572637948759845677078955444652407495910598401900041127281053237127642241936828816576618608117187622156296711333402056827666065744409952258059518185284729220114821858375157364199513824358875251394060476656931635050928145508880410607739887201228044931127325943569580479908681258014154115022854578441127108677835500079730550469976544334554456097114950262106948342868401704911304087139198131310741625755337107387237092547647010516142480450674547472409109481344211418879075707139938604357712102124036755889501922156876693139007884665876084526622577234936717570853733879454483469948903372562040238556055783206561468204080820485665268078944431312309763240632455448431256501721083201265204947921342819555379143747868122366925764110053043439618827858912010953191094512363135643994874237159446882804327917222285874611960485985937564622284808379882808056290354264890566269327278626471904348084857634381285883979810492804536363599069177005628767674318640450567411385581663527424333961275019061442118867897598875827033378287592982885684355700651334678059768640470599775578294879385542631441853503398651871208896846845604804998934341350435726442651956068414056271115020006850239380727734192656265310255420012908410524584935732766326490807069870159308453513689248662517014842233709952153824711769236936721226489783956958654797276961959178197257731653517674554265077492493674089952352493449854647206115014683464981301508807973023298030816419639880178237843990538085759129528162747050026585556877781545386864515961621462580523762171680569815208224026143902942445210356085849455605940843591225759462506334174600907006040114205099930777769138536858043029339639424593678178600032523596660092777893677434038719930963885490727600571451092941639559132417613997990289275018760440428995887175671577319987998092023712774712781177422658282840992145270056818544016187566047046912395034158278413880637107489214062743571420926138264953484616578437539098451007801993055502163666191960905350750257525032217137064092312031903423656541469718954920503910598551473440973678056114772788246502575573424097057554071145600630904522314646241542319287812482072317512755814211870380499553671213725497280024703956456481742860021430902962855446510131391898034275420871785204118061298854393498496414956298190847692776730760132383216788880711098148193798086173624568493783095200659882274260824474237801483222331395552428724265390035641425501666422940512502902327368163212317214323531191058852975858019919445656188599292565351190956646909330447177056268439190564485591317519420281451473212969357459047023728838262956259619958460089326643532962606422682159829311882270318592308683663833988981783187862160383266039441896344413847380509402548310317865768984024575572161970738931549426236673267488054190257789567867765407036819082415509439682733743581312895833916048924729984312166654172096744508786476903949470805464921105060338095513201661754170759044917904642608053885943506459682512330324040520475887986532306753926898978769626853891618897081925703797490595457410760389761492981417889724763655416097384374939465495401455307246847215289416145773641235253929581265834508081759384249015113030782553617924230856864459000326687280418863794092318932021437609967772001057619495474889303826887019595512126382588263101387073521042714077991702402830412466713961654050723933875899323209232522174298668912318839630251990071638294011045854811794336087926550941407411259193484927138455308474768286539470864546166284983587896843973357494268068988895862461394530796968213061309530015835403939208566153963998268060864056886100781152147967690448183664240398242796147373261541502293568712102753684368522798197447860013223877695954182646849652651757442476479867861242086161598856109488619428933230176920802606627157751204464151958042391160862003207128251333791034602477776179359870404203374636098720586547435999469679401815213320709580220035190359738856147794536293633753681589576207451743731723246642164904449558575919201360499218718335703151177922530899689292799960771774277938937509254674357411600184095749728483879023237459525720597754563323236420759444298378966392670052336004625260550991892676457545240638402627242668494818268958517881424026265913061542285253083164959512544742073356947990970676762715645496223785914458980527473990275444722263445882712465817092575597841807230245067632536772588469789588494835154731165388325823336604642439429713638301028997205036584213582331529811563478577596967923071596406414335419820416516925024855152698989492669303017755832077797946716889176546199687059630373448784504731591093199699282341356412436363316236473357240904365494112474036940161021566794413908324338289459283051296082374035988165822251575662861852140787582077184712797710760440820619483177653234865445389217968675132635470190707833290083823979145795902307109266317204931462434816115579684477218732037387552949683355250023788586939747360113439602134594156416758206762927561542544057849605192096321553103474344226536883458801816327911960439379138932936577112111063161854156247649278653050551740761485644581479389701004035613020410533703858730835994068709099538762862348359857759789131955430855501970134534031925877510683929065472847610995579009287921502193465838379592785775167493437648094182702287670869200885120948523109712933622019378021453785284414233474158804125990997716094981536572227324362320540151951254740206821331526766479608079263487484204573504334342524876557194227129847410448349690923461502659772026212862985081310799546314888752537523057934334157806357036319504755948766447065415429268109046447185968846165732579922943707060610459350585129744173700777053678421269236015943422779227955690787219699639638933278139222604509994804062065676119701034166553022445995210867191142487671307657866950031718756689526934992936329767489814153532554537040483517579034263091914039060429738383397349212894990800364296421019558024603730033446832623347293879705011975277679688377251167274425232863627927471965098394082329448410251708860257345345694016695891274494298034146970970784731760028163943081018865800213361315674512305221737159518786821930541738505476342433069464760932223423223090412270600530054323684468995241493320914144699189268127338493510567091548338355162548484737653436899398391617743743648232650591759171504940711597190468842942789111717847353041061533370561408973085968288437240788188328837545795893470211881266663940073209757964272691144900462023541383706011818343819102970250768186955030381247272923529333507300024456515104365538660855298907437138965493239204135611537198174222561921944733251553574104618961446898357940444368540034772958230963900040558370064828898077550474687985859732239496149263431017055101518840677687035550027500452277300200371881335897316560113397087091528176317282957345843673505797339339208665052811330888154539178399552470608316309711851182767604966462705352408322274205324175851778211427609895490532776990079127731212857458793714297482306375822494854660486780090600552849807032903480339277639658798070796238809097996527412112311946786288838965812881955137990461599888745839572915946501271125470887536901963680536418316632996774840334153984363936249962373340405339080143234376561639289182173515976627082000478055599656414112664517634471750941382074539462362160677966359945086551005663556169192722173361856198074739753184031198470761948113191583509354752520266067786693532261989402085551007907129691327752918459285912141823992725452832275083092614365922177059763670176484183338173687627160879153093797237914725025914919147489236340499971595762334765748143274852906427728321809320125387678561968561869945152311067061553327869591353919563865869721856096197080308321198308518084879395902896494183637955298424955710923491115640598407969741559922635471683863726458031235385026032987367289650837296124279961265412975034463634511897301033850822552302366282963155899395231583661306728248706453230410407883270614031892852928795587512834027934581564797677778778030568946004016269267252169209646871758579326435115501495530436907658297058386294150932019842176915596878415850800410894512525329331969517530472603881606329243501976073564973851718810610158999062652717553801723927712070752928776102293807658467623060995328161618104773799867388335846794541755375993798691548665730243420871450295472195228279885341515899904281421759906501672804792288062590417438112838440970301310395225412024671823181899567752635741702069030957785454252762553492923930539861806260002383747623142884355152635119103214687547724905502952546026354559510584092950771554129150282235318000966315630711218814670008785761517658549676283896626369547054025930427495789861859770914246208559003727792745794994305469971372833135418334716007547776495161988935651407912175108775469200887249354866180518436182210715071274873835422088306310936326135652704453342096953755889285151975948877147865978055686052647980327927816017552604273392080956137829788745501992113013593618628258284658135174062905700327149978841043833520539243268148134123947540804351855457200222355250734685370404189711469239024892705591648652043555857180220775964722999865950223577027112224363273522836641651725811463655621327978100209605457308801052428617853474340009981384737586457686249713833039530950056949642847957355956365165254948167506003558228886759247672749058713085359245006371538200426072131287131001297449131544193282332278790735505672097217388221519800230800420948930899478526876617842990348857644355419092596553933275160774159810521312479552901407395190150847608201050348026174248863887563867173271561575907760774686137202002409481759769455197417178896909438417348019050467917429216259905215293608254146029376296312485829539780184725077497606062251474527249438459613950359593282023535027198199573297554262111960264537589463108448033039160227337041109629848372430001889014441124564754442588790364661972059540116068480258786101869467968686929536373707816854223542591852487330066420134262421489813136158556216018875997154741828933348304468990740694482336465459506169641396226806580229446126535626675708651346400836570231884150844087162389837480417063824898170473760910200242137300609517911186735952764107972086884401273998352271158367069202767540988809518799095737337034211267022015192051664563040283520590104820608724060119805409610562349974004323151863660424743797325874689872013830930902859692386383462446278451011125998314411530269146619647386088236660427744057390280518996985039533220585473539980748025860666954297806981220974375548521580341965734045117886715551811551847657467707977280645733419401885055321123070047967296445936667910293630948484300039244413633133331105574932220970312844464357444525048718344349671687476930243739939414377827867146275768516700141738907463049608905658651618138187338217168016543874702120415410884624529641037814614288535621298877839969750501534036059027546070889154988236117392887466115959865158824796398701676904097835282256610783940084724271751900970270604899316305219238558957461795427468127778302747783867292658620727541280857039644219307674948014815336105771265162718252386098398094419767860184223673628892300164752102259083840011430134794349393031039872252100133164165516251119811516134098955266577434264947618334321185195750418435059288766337430810527615930989248096162559069763021712163924085561266497138642313605908251557909911210308551077183764132481045306176245312559602149342628570021421681720125386402693839389648726154205458308165014171395192142360979136918030477823009202376016797394246112009113175451891421289519322252523307470580749500895754624784878812141939516419789182142077181846930236551380895606845520079591290666366023013595428847672401123813877410296749688469337859160543107979418515502456158240397805727502303617498245535935945613662583749246454507464885992096336908934610368544949733724355318423414387549242821475404372695616622181316842312927377622874355419207865467757412714168583797003190337888021775838164112373687629706633388077659475643119212010693996737157851425409632925721222452629498074396716864752901210992222374155542622316263328270266666750614272251099417101829788579164050653047121490333333430231601373900536613426729443686187160410602348333145533683943483522115539909738766786602542613828093160939500216739381276850243295090305616048439285200502765352771448415220821409108185959876648752332534564978707419457864067109285846722296310230870470001156080201588015170749227448368243076924763173020135811167055108870856491443421105498571174257804972664443043822269692821472419199320037320836051061396820839410615366625445002178706166313444449082388155374000345366420346042481128863370839773806477464539749987067986109759679873134995914721802766674020298484925907752667885206179487127398602507338899336938587633077844965781389937440616972657962975443572158103779836294910059439840311920643100666132735141585422446242556527891075313618182554257825950489655642588779334819444416550088848746510876224365310419436003105719056792507549901666901901637395324575972884099063020899926333183970109029166156783436109362524687979541460218460693070043661577963459211347349802359396797334330199781470567078930525650754729444782779737150578476676224839504333550181613853135379669537322895906031928109023643321774169341978618879749532884801296198837248219543057163790531240283643390169149044679656360185371478585654612436416746913657277760627908513473835889396982726421302084361483419294900037402674319905916454236697713110313701142244368518869181775402678345430675617830394174874896407159481036874618310112536736103672019999250599188032400210271065995036681433406975102659257477063726278186056131591199251227500343914581036018665017179804847181101691125380983853415574507745816558977666673443905107972770227499412040895120920398118238026790243560333130418708864604268756988553586044647738378977642642600432460197526524883762281035655540095473883933880389448747014255916358445824045199095671598251117829086928056967097529181483518390868207338782465338278066837842922287986236584518919692715839449712261740222640337172204754244147173825255922452446438471392717812080540589482752356423056595651177179170632775701451849326551341767438171872106316235018372085829549678655349721208073826701723008356205372935576583926391558657799106586429509806987000182528324367977188973586439242640628882220949818521022836901673658927892598163419699157838220760880435154780220523959050909518901095336183085049954216680770156774469276227529140370015532395451399367325530628777687547522050469878556498423200148898794472354478575627868231872803626778089281147166234367182872565341331809545698677093175854006951740746576468288309296319506205649355430243577643274098700777524528897740436661556503889239930899357979544549601489701118271200477659957127706414009464373153308652917095869727933556167903482946841409167426524670750814188402399538759147327482842712430811027758358889062314632752121962228980691903833443170077292020360966872718827192646063707262162377319550794242687515748962828878200475575645625227946416486340917145962787802874206093486777529649021227808937820884248167784880456742225463148021828011747323063426282614307335808074270851174905676366861175549674225936702281141999247731421004119888808095960610095357262553450786706223052083213440627436105420631122352833562731450024813151337593784321382213215772282059808940265688102413762791023204012191652263861839658998560739112293870684619957713332560850606493334380833399159061938053553992165925212313825412331803738331705307284455534274958854339348953532870644591859272942834321043719950960785357331517815640303359691378074747857874708345940022687915420819967497226112726775620969691378652350780323560156256567222283524492900963693294301852960794794117789848238557032320571402339576959953990524112615946049704073405252186692881144258090427315698151057943337146442432474809088922618573074061796254725489513835408968482177987975018895028727736169471101938399851113258041034951259440478781020813722626535520156373809629497238815155226711990911867186213700261628212758405027389370118962048513870569125342538329778653797310483320485239279682721901119196704806081010457661189234790389427542996708624569365536852846922191274350666680518790533159738638663339958086473441201996592473440450825037117499741933979065315734287290271638682811497647311156447867270546296788123431903454576002861879263568781522611276931070850554360961360858226815671978276894313008424751735208515570340193052307338607633305743105831336774156513905326052781500108734911748065987344211890339600153261281440667709865239688588952233555762868755700193390023543524083141320909745804813908306776334459128912173755950927749519229765647265107310969764718354475599002582844709245142867924706197822156242877347031141481889132564321250905225395919788161170128577922506869187432178243967264148913220567100950132715780367546853882816106437890959247493537158505445266259309086636293442892600672021003738143123653244352757036133212208748729376937337746242942922139298865220222532983086026084079074519344217101415858588961954399258112306311657291693967784144775846589869983707768260692467624855237692191014254326530077820514685992727221821198324666309924564965053455759771491190780526862932776905056255938308476798133953116303696759341018774497872874667158033788304807398594306452998104665139123981550205120883365888511356434661065704192421724791384427550993688375107108625964407504643820725209065835852056492227899717586318240364993726025251832939185299554403869699501786264697637020835260127030781387352226290242873483227911014938333914112344138219309444651782497344136658298663363813565966842535217257715933298558913018452875200194366140014524356849570863856853441058897866410918735697512552232404534876261234608165293392900774930117828623116585094699576883064384758179070354879780928800717691558898495012239898763992175221417663639004483873786685197716652702510253389279830044189872603238079774199019858494019903133567749173517487121443024260009113474560672609413426941719458500661337442026876471398688610169733202517312002025488521630533796061106233611782452496682981084218894510894657564751078245706763037653912637616417874841805271449669024032229722604156581915285026903197239416107276617113860049170587826607023024098568008857644290811453830645923459683746138317434547212435619510500127958679891550008435046219067435367841047183185904800141804976977946788995909305129499423878165219818619103068070319914237183572439765370144513871614010126078262460463307978799506144205459506069317241572196880651681089122720591278654973594330745599020388470914021327194079009277860975367516931812817597175010877818929145806130242026658854014234733889433761087438759705197241688383201608516411341711723860150591008528282713832652763162435819890376141857909870994617918042383029278077376596481047710530279391757219739169293895813899284289976547166758209363428082065901729820944892362799932267626600736735388684255012564922258885349385947565635303395958905028279087390166219188145221280913495513158395422594737922888742041043579326444348039669186787014447215995729593712831796799016260996702981379100547227481123187314823704172815524260785552841745088373328921061588667915015727752371502708551624511680898016366738016226916336202683436297185881943770141176057170223753803853721485319754336757302738397151350221970385439830846902815647841034812519899919028541496142931762741993076812280738901642054999474147858164430075394489307336126739817121363735888320253097508729985778049211351271432753474209677187388883905438307678700923249890116694114677892772597923769558484338785174377768784329638053173510765073750489427877064561431705876001400371822194401722983271363132065313660991371109945445808168353424394019855329351387543480530987583428492442294955099155049868174104168737935900733240863260341613505374383474435785518234162649032910928364513359906003005736557625950828333085650641553944843170097211607772719553627716598429481282943847999161486486564837498228350003961736005248827954129883704791213536843093790204500096421068649370443340410563845903389199818392000144621520815171173915447389703247383320308927232483289775347104931166406139996680206598979355447629310347814533786663341282359836622316954119752332945513109368294642949627874613593068438745989144393686303708367074521692900271111564002853747716958909063273297556661568301761663324668933022145574388308221595438254200295070453282121154272112211640277233965163328456526219454093579722719585248400869759343630492559413142835870834998347671683117725575803458928592769656329572856867919861130536460266194814522555717372394789012941377332762483722334416941601097504244681357533819835976655433698291131703641747611240392226254446699583191523810511649970277281349927308981665973854767178470637574720712472998672814931011141735832076749908566102613528576413903895053949785455172450752765415515555833017574685669286470315199467424634727793832877383849404656632878679457903812283729658481110164230711392583713173198124655341747836556848499718997251632481365108959598876412608721098481076836075944968686653026327900438613908972747167155667701653265088618780571289107934141333367462013906398211768408347215943592210751910528428466533286648188564631576311534117008519358981606646504997867222071746062299656323677782171747979514797078925833465044130959841576404419218738568889966831165561570609945855194871140737831015919120547589245391975235375334740961611217396534710774831730654568598755089622539402827453001241147937624293318478219894439710367624588818871421112646900104837304757290062618834187454536122506499333684026365656427384236906494527181790449720770397732961116269285419533669692980669785269304885537645151381206759271695655224765914186381139670424330353591501730019424683517752749261614526040588727824527700479156950125651501027884085039068005796808150194830508161148918126794611457112332165796525941682481736716441317075458945124774765657147946850297140445364936697696452725844429471552213365451673797906223703419923412152091144491469869216341873308751041329080362356358026728122968562978795749775173645711586300208066586587816840067515264175140935973313943542914809693687493775247236991915663219834737093124248543773283763607353296089647706517229308387842469825631783083972329346374425303915784899970038690330908396863537836880157712437963010541796748582346781880451467551051568539527956945220417364678275614167547082395485968361907752538117206480884638932808522675031547563829745115639465481520300904010781988040366407271939549336472972766721199935750371722086570669639375291630105677672457226291670333407677077589756984973793276834359502514820439201107895872614608637933588730316034982913562354448656099897722703892758378237626893906212503555298790142513381581229542174505668157240036994147922351524558196360329912568910837323172975609615040046441781740240338854555146630249054694831910087205070416987248575741609575165085334654539677952827513962140520721668243869759422495014275746193320723552799630614239660279822586045974786042046022616886046506611568504269407015883027453620009329356189305452324383985864747947814383587075069475132364735276526507257311527237848753952295406415413252771194296201545062706629884991571526840400824109760403769069779583019848832918052125979796909888256014180654837964877220776468063511152521386857930713365478840021543676451098795888248531018975419909789283978778771632940443118807368228048140149039279036285159337662175008211549427361227327992077576284830843320560153153524630712885434296936691421295077552311438253384995585403487776582375322035274903563688851389406623802467413015789270435692966621428109464644640911456351890200334101297403796170069882040441589213653198964082914197394018850750309178183132050465394692391489838863020228586636147398656768912273361764668246491253699136733313819255480635891534683937029760832999191293048028371241386193584695696200567248005358134515200745786508174833367876417543091121479655183042571665070222838195359761670234613553876090995813615466721509626006776532974624515643476969999329547846198628755156036910562168599637601403858933427729345907548758029831763729299253257214147904416073689082986281218653947908028730748696954930858367583417248871481013394831324320820552481032064359233408736563013750532712707908996195801580273282308245292494656818175091642352502559824878836935325995814993799866435592072693770588942463763069272642545515897609710701458740321369942314472952483979929200761024321703249729375364823707740581132123829390126787938118232947474848226596532416009657613473809449864524344045155881980395681195272074266936390282157026727176036876358845917570664004980933364295752998446257711808264750404138134153640675347200549625160991467095992718440683315212961792247046699768622293683984016025197311556611702870722834829065380660314176353594744663338716376212282679871191634942759639055119592653829807305227195837388446116437752571756351092836945824211995712598456148328200034306928262823681796309112822768609082926456597222293119258127413206168431941485151576197479923858671302331392202951198660966996095814880549683089862000376488965879754687843518911582950703759866404675552110787767345801512595976545907257802260227806241929927131595472197389336575976903269513177134587613268264352801310598965599613207452393193670363872713225214321918106491372171934141293081991348430146636521715037580899042464324266649461362128645345697469059867782499403232485761320867138694166541753915823749630624319943050389201242280124428328741551398449033410118916381677980002885212927327394038164011366180813977965681784316945527246499044155987076996221536897436417440851939856918789170873498854744894945227941137785480388076526287146833074869150489977786223929532347057002555885772497130772031617165563680113623621912474187005378615021403214109693030331842645248406593554965460952261450207065751547707460833588378672764842503117484560890175155262946477668295532126971635849144420947974385867893082403887496073519771503993891878181890747328747094239626678320139589897985008611888705663851657732877310891440742363529720707087024982292226303406398087450601390974328681741517886856814905930924605833492620943635850796376859594387107659691466372127656443319566055218038422560370528824728319771174096120057281540835007810735814059599313720054500628804376480644962607076382484096832850749555976840758417702423878619035661484412908876961946386718976892644018445703138252645600698106929566113210971777140805458048900294893644682085976481702312800664317371168366953162642484252204767603911333906402226441643802392341901333117475628169256604047658031692940650945691368204544465785487134082530552558194288228220696027225719503312218763321463781700335504524400581535364230689846248587613624842638722411095018849337415013866721318502935307913167238908844318168383229130884762261800456322769793940368886100388670311842275317680827288479011252043575059404330947939783331608417222513571470642465101542796375738009212991561508351350393730306436979942453839191651403653346453402050128112682786045554271046141929562749048998092343681793448051148590209559710887939012582815103061772541203499086569620611424040996920713957766895305011746711242592277371248723807182125878267051781409756387967149118587969506265785157276134731568480397256553727732216173106410345760460384312983125758807177905989810274173484335901159997194370392826838025614185629541247156050991179343317041638981681664506980214826760845873676510347890358023528873168750347514288783998338371766871008435637432011841503261295202975382812459436001983703051197954899630717545160583612038649914939731422972110389525550368283558115347984806348476083792640380670996021926560283301979100231968009876866861143997749109710688136756428064297606946293386672422990196323993490496187271143803684086073144321240209504465922371590278124026295182149362846686537786152157315621526045730448403427815381110644532963131372902649746187348500332864812212899702802596465225705023211357757460385513950041543302761742322183003045024816964457971398108706642947977876400975388544626975312822684312179927695848292437416262220449587708640127006421242423430969939555686310407721383376801048028259816348903047935454356715241681474814839426573446348901266576709692587148377858253823703930023703280891441095059112164777663807352716798553892997845901658522060041741888945895751079797668065973532738440317493436263770121402642670247670474683959554897726425832612768783459652784345499184155889171936436392782280774176500764957532625265788156842710495970594218738801776415196820217116271771835897477466702994836836716016506170743500428318990137107922367762867043191929723057153181384667936468983497539716916860864276134097273768662875360000445873835157066616615637613983055982545573965559724728193872339295994109828954966733920574507877969675838918576543710444744262340967134787757089924883553750401468041970367708768948376884599287744141068286298354185928084119319771912202884259903716436196883459523900855283523741442492098558093108635698043448759640968287154220382967373239355381104181649506406241430583856102734970135087314672827374774184470856325436263209348108078647318281793526726752563016108215606366964302537336151830400477911354227851590193765607011071284197661849734160343111956970164954737254390319334178177931070538060134741966521457005730981432808785625005212187841997083892217590067009460694603339227799322414074009180044568920948354549121032849970286730216858313705670743173547017870926961715753558840139887975132145167911984531998607856472493476995344335770095743743589348460263253768146121350388259314796771729508218978051219394301350502439151700255654995507173512674791013430434373954745392003430293109246248794135452214105664056079180219910615854542037159545227194538788916890358228571786720595748904221145019587901289536133729945784274350626029599229476544380327192935703714398527794902772875382894241179953529639205321649581892455961700033899250027592967424716437542802617758573206987367918749094624843017461167869838940420910442992895017733766949618772610298026139325215894290662718016117470857338721245022665091004819476272490146092740839707280266556648663713848697261513616656895858427228772874834428224412510144046425469948987882191834731300331165796377569635143951800416590915844664826493455712468914877220551348598220099019664337647708013032799654809189134992424340576139661957636379092873711499372897653101178254539695681416755915500842016067586542521658637857715266279752974716263271388791601711239456062378270901410397772073351981040598001978255680237577924273574615311280651465332772325333053584850418318167928285563500758818640520228353895479818539936543374608027134950097872146376494454757426119364363185693354079303020656742135164682735792425735477317428454994356937399285091902665095825567979191004146374277561352500096234829014964296067229211761731451352314508211124652523972677807184717248559569697042741984928803149840479917960240954063651746340842992255915607107034489850986283230256202768541734973408740913156519165225711734814853687430960650534711138963600092215445086706422535027361537515274915318478808534804130326297834953944998106124505200955420266731665298573272905648834656827039270146730370716865286823456806833674773793468163960518125155080029559293236266104110506876624417120744698286399180938455937683822032910871378698086173789217456393377667634914616802267307026449152493820003443867345638069566965083571427305109535876785363181704279559851957587055524163855199366723575241047740077580849365228568980951875209906595363089313174611585064903550052146833679336685682376534007981178190442501144271424957414796910845940087616764852483562818790551971753770126700984821857380430816688093384620674136832104339599015921977738580926244254578236267361567437437854206052254684901172500118768477831263094313257600969181435441375332214703792695612860559908001918311539828632829092263580530370713800647379635179710927119329462823988069084797034973207314982890399300672804980097310551863827988619977428090747232846879698019626267746947032930910522274282780199046798485952144863031541989361463290688284405742586779560190229032262943721149403777843269140860387180683530106621364737959700099030317610083188835727596167043026874150668257312713409095320773622852282451380474252499373045770231797698914874269095440256889100248000069458575282522870621120590967793735364305704488448386630550609681869810768247065283721126534434033973574706147656677318916810220639763838814299214631562556914146405152133812325698302603018057939938006933565013632964347643511690851042197250547444993715624671917335745180273559981083006325391235211653574529277233429942753761888995464023384451484486762226331498382525123337827593035436950067423769212009417691449197632508151612798399132021562542500206448237173153504355959767583921635099288404193373554750730973824809988900469529951844562492544625221547009789755816583025979673705023577428988434552995434588202865580833061019100212404052605058867662339993053733042178282888084975571573517562541615018363306005463709816719177275797192401298873362270963884437018541426888925499679586794323640374754473614724093678553149362195351083446907154325441420024210921877808922204573842415442503464339827240358656659285097563665480714215489712655612028282693527151254351837482757215101775759529940175809905257364322494738794023799034698598376894997499245782687986107518620773941080185252405461106599004205102382566309571940700235585739780458854838343360405219101731402469880232370224222401940652846279102431471559698297009051313493707598285193198749756861728464459934815015875835511266083502522219641209754543953453465005484224208091047951767370718200422820731829845747799899406540012454519226120464029678905660837918099454935763258972085215837362195217910072119299910631786438380569078688347147351604937970103053864896284732716966164099079456793748891688876593918355939764728150975758355833948287704237855721336585876586365412547869664476190638687263909957933802673173486712983997918295658974359370508640041844833852334709241658215678551855397420177754939637416088546589788796994818581992251899693533683612751089442227361904880145355140775860805637919015050335262895279572054489984192941286988160222124113503282913037455871615527026944169643016990988293825527776182832144254394441056158288200881523183239379350053540416579251199308643031006526276754284022678065607622685877572180607315350872267283299488140877356374919589818448609739968854801071706144994319959682511432365406876697463459422988309346352781775531578675049235898616029019370754130688061943057236467389104545405586827598319784223552746218948987028624576087925451473762127842917434937224247043925696189228078473984532446503281022557139034167318502951725463234403572691317447936559842428479393976847356113062410472748271871666602786562101768282923455070255103012922436094255047546876454018139899883979940787533776980233445162542241200744294524681762709032648696083755498292546552774585755665082374449070095039956155546255549234089013936343805193426357176859318213947214852970214341114979764246333274916458132245844076779461237676857072769138846866434829974271633757470562122657886050213787489811887222725221932892534193571563424574907984169329133304885246459123873136833505269619661287293616106725182435214907153191463021180848950505820522418321682318086429247974816281548274754805243627922777270404793524878888486825031768041111120981858140497881185859413017525513599623874950352702484045600348176170265932809465877003709526457244832509385838708418356373738046647586044929640807623787237939799606228853470179351582321120996925185539868047524553041549508110447909546571978309344031472014621924933444383416414358561460147262284192008745878800549347475199049822737743950010068818206916912174130905700895737604546765758820943323141814802965453627875003820977068997229205535482698239124978526385761023265397872355067297851519468026748200926457492873227637039878967130033566256742234206678861444399829016984852735023393344586576679112035616870342617986326926345550049602085222807075234842589987574553797171329972159308448612797843081728434511329717155948686366690464444787506380522496767844835408800834475958384052902440798396424416320456932621256661303726202496767706523218936445799419543148066669471395313410705036010767487837292766406285486034501252870017044497300918352541940211689791529669269246513630733142864665969193756024418027661178822324624584882277145009874483894257300366434846689772902910754128347193957749234875456119518281511223392485220038705809138951841119668186166601109820893661393196925611443856714907302686818416465435291722061665848400315777862468174685969502486858682725970907960005469003683864220358937251949672181016255187016604278976200825417212414005093115992150892054738226763933201255877507163292930857012762048815969387089334884173467493947855726225697910403402201759208354143906867474709141528733286107835580152247727933902054163372109375064217644196503051130116692240432580671906425339198329818899520498223397323228465221265809848567215332680749543008501560814532856625179777722388573929188895145532733489708734747168116305144699746511999942978628710854531954459498695531391446256954537350761884132156515400958108359495785997605121531081992267003390387964407660342005476496108915916834250619088253609869905321981262537925626787492758209555791386582478721844305452015676154410846855485898589666106980289773629788503618094736399853844336091183832856660136531567351036476371705457321613836493961007684070334239551567602448412888713686790313481957485572933535081754284019329260204406262481013233915185443845577545216174560250207580459502263948576681246494780868254304799839150966667538354768917971769827852620116182906525173207645384989988835993755053903584295356079755531157300673870905437163172360566113585336357068542778605160228723420536786447280408342497668549738933704442587376418775651707539715918665837714197931159117630032413988582384613901836442882012902103713839236515597419101342572705608977862770865448093688357393586459518993252646744828478362214209750705003040065052310615005723429484269045167850729679669463727773105950790481335738375597678391367186042472846343247462649145895756928401254440279298944872051563398722401426886674363513553538120926907472816066198255304719209303413764696084928063779200891312714999915918545225622978092877680383708119679282469088744952339031934560034789769144575846532033923169677718977569277470127959028630482707553130869122064680753666904935702924393801968128754530460078877002595106166779763197322808573825773819513284687861049727918511154155670381219689655060620324254267266310540954606316806476131922776108051782548252900633148147483402388854936857837908025119402464697685403100481461943526193360672530643932025792323977784232426495587065531344132114323573894364296298442944403880905931833552708443823270586286623362328906246893413111787348609217864256511669408400914319282449060025879226427829882475646390129291266560748462696990779977627887145684002836783414315699496915903855458049558303013941917702879812265721815530981255030284854829685460039342547769643413386908861149021563031860732436914310654964956149125099782396778572389725471258592108468239093096721079023026824760519584626518431415035238968746125276027614682104178566481529725250548578269759455913796528266688500057358381689731816947012589150793696407018815152223974177476790737872508560098392286798466421769918218500865453955228110942206094704050413188465558843596230591687458075104557056895153674030867509171537709112102847002392946869820542484371695182820506667313193655640002950762263950118691503301635021568998525225923056198686809213905220792031574140972183608666354757187015850986888551129379024681602178748200469408272370613576498668397509721264713027194147050523284712614561901318922299741458887770423444099547135665296567906109929048750554501599738457373278685668017880707928291972654698775750583833559684818305550855636047461511078075183219180839854229190593228537448952409911617494697654599282919656774442575211384414112399059512092080425324697986993876848289445439043526870238900268610249872290321931770749807755114479473685889916757131213053225504518025334143590189369238968222149805671438742760555806541436175589209431971091441169332146564607725580585723902643580056962243090707412588976769516921284469108401727240867654633654830829325682385399707494363737584956737319688190482205912865606325665764495470249129599788933690925967076141811361496383213097454330158109741697670179627547534372583195236794872911100034575554849074107428934566410664752866099992599457824617412036767332922924985121239932874558032945129564998215998933464614249173418777938980271184401074325846496514681461218883765452767096445979754963067700330060125377219029174072049249278684551928573159989126486662185978577260771802697694369387568796139071886192305117480591786168430846605792796718075227601264779726647461245983124852422517223690967410215887131157257705650929251378840831185045434661571999466928944385826146164867043071551047695848722495830028401238694060416483318930498993716826778185471411252418823610013353388233825390297313101346278719723304244472329601412362955706983495048763346930498836788876290986909909903003095546371874427417336765394139804285474255057234858231428151680999449121804964649795124786847220576841355384827020282259174116269305617999109856292995237439922074525364129708422528969812890118522769837383724079985021678633194555143487342907125083022138804024672810461291589208521646208427760290161873935272303204909232135712926376790045213713047083672504428733587899922691245128034419872064490763933369749691314776731039391761441237650070994996071860743382946694030993496538487738837263129614978695124534113127319410358587178837527013606335709007221352274421785069778689505272746261556157805396809179361953037369402062529639831712685097679570793945428507315770575514050323867640688474809085750447790413953535664499648132727592764715530531007455757517603312338957400972851341812266378064259569060860728018940329542179871004759014221707404294346574688226656977438578638194749850588904758685495772585419228332553881083197943704379086116010255135725997728863095856846817098055619199695158756666124556643930072979945992793683596679096679680338261785498460177443120342650846767122256984927957903836027235793965682425510635525912073844832086610423205351922721133248121199117594145559451285743334134234714729542327738110392468060477641096638736724536888637879379508433959901558548881242390635952576041561706593698364707522976048710481807332488755992162475518041413123247918120549498550290245942871148238962168665575503562249652455169097588747651642544716365239627196319005814644758303415376550894253810970497268825860934581496681372989152742565752087726674399757589163882932959332227388877340310556377560457354250710100317787967862073554794713727696669441127523411167089930058377599663241648927873732819591111790276702662430071906394489308690725773214669917350669223509207084587334335864567295176691076382483566373751546095335046177361022620611093837194109185201382702183966054315475501587737592963881067484064045825128172879834365445163942155470981880456994166598138395051818640490048769156835409038694936803231796288481156516407748611581044460405320892684489020752281544889225159573169251927138005309278852674936294382497503956210958707217380963008220299990095822383259902021205979565816757406100664701242128110767271444730142139937851867856497103787988506675666847663194785853545889312509840696538233832321461085296392557628498311576169550308120617678728807846057926650760916319616380750963471193918792049806208313617269285356568116935916588039314983053146572614634548579882541243930653753987647527487579767603333569812706718195446275902046003017544362941143329299139115333824541461169571533017805798966967802209592352325204495478757468475698256119033243471477854030662446687897136177495618215800298280414472272044551361425523712504877559944731436936448326250263984806256626911315009299199805692660564174416991039323796019404183320091749503439497198488432243564551850049918326741641587139502377869094455228839581838296578230775187353354564098591456015933575074822664832908649286667284242236083408284953720185375554434319453722863464809875079833717809384233460581212825598471049026419561793247435167951545718499025000844271566036235806502728684282966807568396447067308923955278711559090579999565669309768845655103761507286731552880221327263899277305236554786865672079534758790286312247517265524868229339824642281493796074872726473853024048746617474041970175745929689963257484024633224597225681121792664770990048095589991636743765700043980965090472763170624605172196160226466375033808599073350907947913110646726770935063233085453680327408394601743272533589770738131390787486568259700899138735477208274902327704372452840470241561075894167734154648829391938599003988180402793945801032091569646217710463531778717680564567498024919038947253198173064337271948538563363591464521075354079764096893602370769905894461003315006627682009351838172259527688544602127796008984021008478794307410725721522601161772623599490492337324974989489956307740896225157825465160132451696531729480072918308614396831074558679728551491734031219137034971400124846704854511654240885356109234716989560653263519091698646254808869024756371092609076460764529170353271569013877314566425359967337808227999774940437904851553017193534459773757058964159756502060354360931611546630779484446332518353235210015084745859046252272453600776206323305980241842598688968613509272752105091272354582751039556307451967523833880283110077731513557227153213893868256406016038411382327448795153606714794594447444721906705707860079272345666212725152605401293676427714140981644740496573788099376694487551159615770490619477863866067080110574392962046787051666133558015649754551076072938628093147196089374308005896224099223489176525226363306147984641815587421925843447443113805428468334781444612540399070914177525491605276596537149124581728252365974620990497505239173774880311908779792349529646484565927790829179075113348069648826658520866009121165122458203128650595497981166145559599289971773544809292974971115218348374520973345360878813141878590173572319352713659115416101841243498564157863878642649350962883485348709327093346105649949991299268282970601638206993527099855242592569197957459464091251024225273652619221063164271192454848335998212350460461446384038824555423700986005040743879277623080338323044585318643342513454460204862398821036258526502701565858610529912216417632313099232249294120942526093676688796987615962797444567299788226685361165642936365109210854714717457628156578959116875870438941949044550451133436165171444411585524156849256741433464077661907036751378106723444236810923511246159444010090010302754927594931436936215351532322478470867481859734766559257953353528356696248186292202029077799408592397506624608043706593712962121389692490977468340821618937966651781032753013476256847994252549109240362602162633689449441464723993169797757628087505335534259083832858349237156532586642108945968050332000901802439684400954694835105160479984939631327054778395125995809496634036026638819964857719183561561555516521402288832280270098569595059254568806218457757879766978849954822954653272196855789626369307864631292352266376892952831667641423781035301699609317086644361281263872945591155068143465885949531786540646140409237977037395880376270984674017015265916098279577434250700497062137702118255225596731158321145538685797779556477543233873653197541811617620348451633361463664530949100561408791167041290114359522612919557804224616970586770867226080451499588166640044799725581245866031836574038244486993910322295549333901992856937997533436680053990480100448888493265915502297053082898060465983283609686132646559123206699998997611182789561184879562776380847581628183154633273085557268799378676147989927104496285137715533063845408013586729655281825087079129334747188018577208262461750740653392058040809369753714712957133946382871166940288504624628743490808218002794631412947610336655908100153657544810405091584736844088854780437852369379804758194979528909516625245828565975884244311858871306034933093673709899665745679552870506209388583512480431335663644836927371415116498923595573844376424125432059483792161073464090360114479878294675384510312493180915614115753024540777266243814630656700877975685050534421400742791962573962737259060498508882774451901673057456324741193313596877733231032376479902176958058391881181053193853914809509506671884926683010735747857573726523456847924921798658656231857873154306422377393329248942048826230305581554838646282049202056980162139743110906186539341846500917464960378784786555403141093762694088610545234926741466030412789782869369092138228084467276672280957372181847056356936537898376764528108065356585949541736226458762219499714719085207707121535154642342271402685022220151139499284928262986694565151377040103426486829695883973602432453465897653651453856393030146601363936591112372871808980638727695365685402491045673160546964969162316092021471060918785503325262159798356666455525655549763411826478543304060849060804519793022669462532504522074851426055215521621606541119957994708721968436158345140703615773090989456466832239750762838345769018078663673084929443396642063861819250394853410049310451590895849432668684052064728283482789187821723038890553879827047176115856325370641818682488094623563262199170932361605384963841030158030178589971216240524599423296482961836048083593971741048876378004913660414660432172679373628305066395351205241029746794537987712122279239472827813018736499096853493596697954808141793789677418665263889941127445781213125364241619952711171156493473626161287649420300984192111857772239991236853013834022173313193046312885739149055823506612324654688175353484048713734413972083506662186467498303423876744593073433229546567731177931475907848847416921467028506020740276685354847894132508072510919641440583379022808499668129676991439130281405796079953630881355672372045158786256946823319680376506904731035104636241329448969732117024205104258546547468597439929533965926750903026594026071235914533043435764589478098132864595249185056723017044084875575867842976565594604633048737590534371729202949062334111429760651598587389884598032455673010343728495528584397527163873843962376614439604462376923563602820136243723232339996393933291995648254570238786326359703763101411331296814488557292214148781673729672586853033382773039238228831966378853681528597042622972086939590412609572011884182624194494555420996365027532528358707901570315600580976999703668497360451376400572324795574301913682934171418986701634129868683812883715151565690113449795141495467337978741012594229665648138221497537940208667481268846364169310633443787659184523410896750817549318063213060260360131852886503097979776921051387791954075211623661844648904945367260952407158201075997136298836573937086534169110695952125217250682494893518787680173945452569308562607518639587401910051621352672426882444100197843163124779698945071624244298197042735406517344840906496860450186010689316977679612629249445352649954800054160087911369058619326098759538120491918043559341303591872805387578350053270539165562741808627937416129288604153243882698245278772128518789269445872232311686095868756531580231705625900295576119533327792799719030978289887763969339381859296214963289107338880179132886623368910817483558360889690410923768448241155027065033134147977448501136902845807801843598390689858723298468823660291926467385594771206072750611445051347328344797915648923900531448692097087330458041709281611222056724630378242506545324126064224653226033956497674408034050674026650899842116489871357047041313151099788660388102284668460754067445693526471157559105390666152495945001314369134853607663702448241674757624276560547797874483286697370419502765020018780532140382534725554277603275153832240333306341015376781439422142669320233664414437483560713491685762401038866381854055974640566212411159244656564078626908402306086888335616611552423334620416929992164687487351422377332247936576571225899188181820156652187680255406731618898495181378661598160319485099930801349507077256398157459583054368251553108410346885462527439256582362559002198826420112909848101252051865655307385330924198951778955489101793185177305982204187415315258106707576368664424562514192499241901460605560558789878169902003195093498997956257546495985971621570217213786048211811968347974158422706740004218775057111284140598328984485180524932215132623943961998763027885191882866812833126878644637364441597828659624119654288357008244143451370434058517880669014318233232910764639340508717778917990505309624091389843289338981648349953568835080737943324929585720380679455629661883896486650639640238315276378129339577407020654245402276705070998248479249847022685230790188844214402159512855379695856283797106502493677628330000768951403499001734516357977728102596267371537504790619445345323536488407926503496935871776409813371534794855009042427112135516077959792227991008955787819846754844800156259570523166276690312885929724264478911609057702629306152529396955328172606832587249115726357134338343807260957794569766102267805225419857102770941308380530418571005769199080932528690031569778524720011199632729217809533834774594629907792934563014549486174285420587629425172405506211656406109016187336713926035343475367652179114003406809951145542567589989928964495570687808384226606654203762939764458026181972330487230031475113144456420332109816435769268659231912591217441420851209591273916267491761621136111922239717310378654316934130990926363846911424148879640480357084866561671287919434903792269966874488457441909135345216909594358222498727219056781288655427492022103859556162506922525362647033217752844357102523257421831431284128420485395101602655898699505622892945756793661686907145039948777594882813394701727200107272146686830309300596665265783794842413268089034451668827986453959597868707717771362831915745579056375569972010150130227532290704126359460259620293995909195867077361810940850519175249831424484294412046308496803483487401243312558481524633774557221372449535490259944040975561921338009939233700812308968032854909604596196663313457150476079024958828710549144293554905569607232873562087126030839802740084248278975095270093156270950418369692209210852303918645958622585371559277400458985581032833562739294397076095794545895738335830739755020377306074359185239588988265672597617615032345087477691753368624018643971081614183060077641304294890541326092908920888219002418598639037034695752420432687349148593531079850128220702792856940813530986754706424632134778132441723476027879341854995188145087830973663216688590482165763758521938999431990395770322685707558229592901891913703484253656361943012439827867235903339919414104195374260187230008834847907400704940161332462648596343202804977645023217121996822889560138787513016680509292387186819960417006905532641654348217018409669733999360029365870212922099461482794550365091863345539809642485871613983393142089647242517598199510919247693767541679036176084919430985630928692242737183858235551839252076927497878812812738983302516591513578068378063608085547977705382246431122513556526791535410208458050225476849259950435286767723233284643363458581059953559185866155113447340679797193106441570735304775558080395691248121159143393433730388560570297186100765552411757136622659997272555181765429682156099729917425389873675675027399040074798068650509432612270297127336918237700465831446083402781396664696837422340902360130840730029188746572234599360422316528780044793358022574580283826762396922201007633477711937535009125624038315154438779505350703052339099510494386676458103163629719022996062866813618955830921468203119091921691613320666475409992517854908546886973333176532264086792535218416251800962152675340697289824879396041322255284787540298785389186571413037775640258353702602793439281292625299770393201548719346394046238357698946341832439335725291786038698377837966589599755514818773746992241430225973656849331209716142722509769095689125677550411243763540793975166376681131924449147924042985947875697503577800773408375833888353075260342393129527339652438706438087820539086735892936181667682151912040066031002281871258401678417233912553777522760534808639155428984095103013651859681272167014688135677664544828762851751363557567585259129682352616204498945948159805421502442201057335533354913685126406740126589290428642814192783968355446315891269585961678840663305364734681361454100601922138638647198202647310216051922073233143548023107077529689042005610061509859136192346370750538410832084450774190338128318237618619877412275890984289452407450028115128049694996546526228867657865905833952731246254879655422504666113717810255564081902097200025174475632707554741453502575317705551713175079506119964185203039044411158621546480185569802316929564625828954872690861074633592327368519639001630887487046166640279514679582224958509781210695488263644988227157181561400721850974671531398209578088634609808306418295510908955753019078410506309424210713194479649266978689546621238238478569432401871413167385496892906601605408464092850414197968051213462565741560243075662450520316473484078381201842694756105983085924747307767080792937809240190681057949358836959568112468828544718107291107006751198412803034992543650170243555143151971409400237873662472166595615122297101070981813603326456069242143755237957712550956859495076781596794043599628175559199394844719565890552406220236906815134774037519925563769520015305673741639785344757334354756665891203880059400093066790055693216160916475329556294296036652305188021737595431747069359623833802006889740298352228727162711632723920478397510335513156057523475067116533336289887214595536924773438827619385454073894605239221838953429090283570898196072920370041966096433343832176775492672643686121941480798095297542327136503929613156672466290532009658341694035338920646936329605057328165702981265533981720822451133197369299893880643121667099853725066222985507615948842650803755841545884051606038171387329602534450858484774046150466984369235753740470100633332419896790209006290061304994893476812696963517849328081610663111876698597177881709532604684904918281484443629992489110812799708084625567267160814411757288909039559979436592449884301410906748750619025178200378454661937005492137301471092285571493440584767320441756132703241539077074759802955956436274134214812772091549792513119807048392535463998533122533434178429873544022356578499057209668684110084656932001135095373565999115339321701911607158077069541978619751325297427354245916845588802393828074578104442911226665160047643055179903596942035697381381710245858658334566031906181192011570115296257260981512309062084673388687062425223093608687845778950041961382864547433846784862572755904278003900441746615760236715225904280033183163758805219293478950727879638031389888139964815443304431351513481067351831865958520038820755479333492879295296611682349074671719403345342866930893247722609514069422855813639171444383627088578805764534179388706449059768688440912595654385642960907531624970449724973814318429068030007931517437314504736428053483025637517211043607538136423861806826545310825878282098677680103571091846554214073457596263434313829821743551510583429235949668704583188993833384977922678086363501963442475898930966319577254243220607200972433091791132619950012684627100827042342373480998781975107627167530598499615190240453468715923316407213177457811440283996276140235056107650320039724808870365268964715488489114051956917375348427912813244667055577521683051542255049416678579885430392902694703688110529224133676271456659586885892530900994260616697768139926886988347510749445533719390885167169405297644275736959686826226726205317123248635349269355958566459848144771153809822595267023620612322528213743160512387361800937359517534706837144995393543381518580782986273179568916737697371507713858734323496535442370923298754893018445272479803697738941249933331342960291474744795991692261611130382622353773598842440299377755422575846348206270229445090716401721549726702849909455662907901014732637345673719000217229001678678174064857859063231775357369816641447809483424315463808880050296976689021080493039067522066654926473426095875310135025963260825141946109586730728645540300683563799028690160120294239011035424116328016836148879610645072767654191318974318863450056555647579354198796891427548744743057896039169785000324490048531971772505321981353696326577689447783422561754992487629617802133142710368772654507568995074780725086171873486641577501230115724573828158114581753738724190287699380607897316903084516333147061822917909043584173982016390015913045997257673553524800409910006826413685596350018966111502662087857690848330328165759144449655467639330296282749611215530657753247849890953445515186147652550709275898818838453831160033300866051388109926292301210598601716355404817380311713151293082087996345538784975376530586658529377529321173700063793131573308537345478786239221977929360109584999019533312395424174268471018516608518397697160755446202119900607272550098284068109755109866780892473046420741644711124721210271069260286463338727165648668434312764271614731165893403365752140783184959579085994399940833831033245600812723215307417167486753267456953341016752776880533837565805318143452032452331808395160211620176497822913602039866887613693588861091145139935324694011174237343157022237356770107418890795192662703476965330380711290038388815673056072962928863316947524903358351136670654221652227595549943227350039272704662742775198149917658229809528818711106641461119622274520153838526586778842238450301398178145195313758224445382635228766575732777722031836947466875534111548246436068906287613316568073779740433844969891672844255763241583019009107825026350293397183985236205580207180961449757652932614333520637254697841050338505621944469602268437275881113223181084898771649187899003475010533265300383021480962769255009576246803016321493698824976376108290653483880099760433168733567069508147000772431116111327885290491632089144951604422988477942504354066319270676906618425993638890019998396301715956537061026887754485885395181910075019540962863275400222990138064396569901012651718699280498145971203754241779400428530324373557918413704402520186261149971660550890511942961646976457557270467248342935061950882517715693970481325089593632967212922783199878084914799149695819462791734254566466597514313849598173534064154271980149710912523272624476575045685524249253515118217184888381623629799109678777005633566282292774489012662862187925710030929272072058501067020883825161906028526719890944846202393054234682045437236446723934132529221422071301705415329790175217420507206003462440910898440706430999604559832466191292636993922461543495291508662137157768929234910798371394302218511290058813933483518571586590856597880898523220115243420980427735310733502189335189846026337014886363919356010731761243549633635372192967184800603847389798658056917809233699741773789865015114483245900489310489191729476975184388117760406348177859896389286062843549965879709296282111359308786952335313233243373513600421076073491506925584201169688260375089369044242877434100923742987663201844264286431641916192916337857040112025843014289625422388655448942924789282657124969964380531631618857560631676363012725468243393839013960006575963082701253651227630268589293558373080627944466894542745943433224480326898569808419759079852084796730836414353164740856938916428823240623699038072897644886659551045340490354334968020992824514901401594101335781282446694413493140464534321655762711940967110740359790477041921477525992548412089861940146455911108005163699485964455109353107556436482843788398673595970352672172853220754409348388956754955753206252203356203535809108834696492267750536955772039356550363451325450758168295613929053596462527989033800471048050349301270844120407567164184778288495276054416149163686996276666787632674624198038099757051098579453062901584978077833262260383591713269683904569415111370320402043110681877589767968453385263014858938615293649990654508938324352146559895964331847057990046663661023157456338269267057914701459701497305373425720707684402951846033482097513314172164998970594026052648934719969743250717474793295827889227968809029560175923052075481399563759482885794206864781823914173732931617825271307566453565550674931435638165359058115982598188093573304870549617154929650611993843526324401176091547184100566342723806273756462277638487164609620289577874616121495974104240556834049978785408292992802266131119486108036496901687979406578150756280818025905660750659699815910206122184572088023731041434364549747794597117263982433863955501094010469331517709961391228503371867884058821437990777943352830420890716223326862992383880491824442266235000596349247185467726986309936824303675304561183170636440253072013143153904502137052774122950588224552827198099370723238120046405063564004020906907431409997981104970455574732729466837961822203897006607644443753485388669428589702534598029395348012921854052678306949562413769922175540562406009524361440060433246440675867820477381216356955400463935954967419301017866862571709081873515341548537489289292613990696393258556276029600542045628174873456322933584869673147290439430658100303019922320721005395605951525163054033697867471166682477972375507429090662516831407107459013087023650005495890920844829749746492431602469655804403359414340276309094137136979976696157480886847118679965367603347344805025927548597261028990283704568873440663816033800217991569387275407965611822961018737631810492463761713736541598055490656175792127982034735847488260109808572917571843211143660750404235467457234863624063315749832812589130948407072941381907049864884230310079048272317833983752346059331932146280209497266380382939812493325069246529962782195023426590185914620985205577396690394107607949821563326254708379416746451988675006215074590165732357174779006144292182911885730415168422638184028430738222977019758906152788689714680224100473061613546768702203017366582860620330051476590982195653594240536557875213696822553993340443936804087990283794576872196174407775327675975464234085149384207125802801422587301755323293910174525888429680941769316271619948927527310612701978563734682191984390756356183276797831655184609222793202067089400966246508278253493053036243444035142286801219444320096816521791198831734901600325894919996661005628287005547173799961256884327766573639428599446317627475876768382210020217324651186024702293694623535977914462526483329140643870359814156529896139065919846526130453484818073044214555699594670017261718638842265471693591585043463657310825966781814481472723250911127807963645869033257495266248160135846697523266957128204891295985581916665256408349389301438314672039234566155933659814705987195174709109607928185154501060236089276725854619175988972202997982903954134166914428944949086798236874161855212781544793728985880949346122168918787694011439709558663950623668095624495934377798422319725902546392762097809817661735834225194062870015911397181745293659003690763794363643863807818919990907339426640356625088830167665516332773890579174952324667281805467972325982684608532132700130974871687368118651202415429771198251946857545286660029905491369144262964743353679121810802823339254088990646135834095161897046344436141620583689019102938301695491422367108233494994805210555325344222399636328670376780313688457339879089550818765113275458410438599795755856703163020250044575179114785335947829083877942320001225023112913286841408390390211008603695465204658034048512885773644229209234216694457122807227401401517324132641540745514383649142003069330125019262944011415948833166017389883535107312691805506287655993915105047094772739513522341128007988952576971976136501495164901770116307884691929787522458274743859260257749177933746382901546635818989067121570469798368885124408456444493415270293083012498545291615089519067786380318558488258382712965951104961987992778961744716066646419735082537928693650021303350599329610628546582665714750862622816409463422229274573591585704646681610896376386141782726060214540951342173011358782389576755871471421911476741825461288670862710644128849987975309226473586226654122073236207453473328637975140066710450385493627061703559711296534965563107510820983281907027714725383158320688554706625977633781891039272850746082931669343763924027883652228857123670400649686694105397495298026590844573866798883307840337285558910860415507961340460463588564775225902290508137092814774055502776052281045673169867851359593778513664355338636198795784039384668196257823687444966675173474651188549519129323103007132955128443064490568748381601611438757219008839714091605350788321888550656049920899798425705678272075810920312604069834304094569992013330422271150889524053374737529309485749108419954308796994649533307740012534980524695386023836566123084931277538916549854894474185283846223408500532964312013026857769230054080407357243417347437958865380589725177809302599769633482400626146477379027025600312223456373009218132856404522324152782472833473146376981813625590940716970834410659901284909615442006155302511554390686868637328298966623128189527665399961156094597399947084389876397780232953068742581134068598672723070763307771874755046663670371825896759590438619759552089463284820439745452132068517192911646538978594845269025327969891096076326119771561799764732982200563920858622362370896363571734329556376525773309222658167869096781928049769626889273481709079667587357705581839959480575563907856792893300816382124798558018332385380523885081473767683431770954734058333936811147444961465285939992553463197510829837463397964197225433083136004238702016075211986409929538608033393844955574485577510646226189903572611888445028600380440516751788584867305087425541595725543700881767004269510546650882142562790839596885934732011166116601410039547391996969302798072980784601379855227151414989658340557394414080770843571957259457482482266870440258349892922993935491393229056238530237517206357400842112857968181640291781277678880421894793724988895693281304254524990261978922516195287854519066405179563940281388719287884571680049203489213341856391365290474743579773293237739017060754730615555146818693619693075933283000039182860176689952185450983358181328268638264912682262739101715420501491551251983363706643116459328579482789126580568132337893732294909071063038287252686968846347760905592313225514192936095808423222145054656468696353175915162855735823883465584001805792549604010059859051745324915727137513720059642792810072723732587367999940523239520313707195043888612222481716634914395692242661631983988429326100453960636664820202307103560039723696431435004567658937714877056044644259120710000583108590780215626586815172969629590954208493855759771946594682224147506355975456925002158949620024661323915553923293444338251080697620476620177355943289661240534906797390126247995600585058354581554967597327454272052294872356946694281438188295914819768246478113232454382165299351842460193420141770785538437360372337346013448494785995306096640025632870877478406373243534954426347000287728672377001418829384173488214135693982458839163663547809987713700179274253092515195730492125667991381046359180100894543777643170296337950539609334013035289986255156002110237004936675437446493626761890981673534522361182211404992712043779970259575889271289875156066042257617086639918068235623725900491563235624397883519309734648225285566617300742496191219204216822886872306519195681945837151770434855322830993775108572751423184886814810897005774195308975050968408802562929221419281757056205487780106749991111984484903987947793331390884129610561153397759372968534378143336484811582009979874440500598671156354986395225380301316668464763545896577536993555844594934719940934748107644527458208933878420854252175824461669624699699961976616692636876701637010036813658948388634478587118944552547899030347635712237967495623309813401877231495231358904691068319802526800517112822266487272885950445415571206612742894636970579607179846838054033671143668562808785333124528830095518651332498520685533759229420928298087689795433492851527217159963158474381754975136414589807113223033957982303444769024347707520919169556166069988110510284774561764247939067239849039034373473114452825558190165395332318194436260894327232252031628601339360626177036090453020358596034822659563559196342063557104657846130726548725117964302202241615276272135095567394565624809600965152038016395187608447982458283269154338062688801642629210810197056238568450888309911623412032053884578075907453817368570669757508102788875377044859144513153684144158490799713800588273213818306036487104193331300261212813139208262828268626764716582416892896940866628949633126395475928917694722508078936316312085647787353506986799054599680761066991898450717581397279938827006465634686025879060829512304734902527119707790111554440919188555363641350883612876475991849088993728966822615450844338691731760848713440818103373980649607245127575916893779951053619615203647825776432381949196707130553322667053291749464188242225384866277017869066679915883379734244840892322292896111420816351142020298055715607980717689646888044705864466767070529942939858597935392592226731942847995135931839195084958027285863374614471856089805751085690083164308926096655088261343104653139576718096455652139447515571319553128068052610851706041734636030529338024332229890578523427538584110910668293829112251927762678357256563464873343487234097371878642778763516799726774128783398564460217346002255160380507687182976939693585657374490063093395528973938064351130667467237312866785979314495831848557962543397781333703974194760069699699660724275231054851935571655995488708149085709227463587102546033175484236798127630257633619862540641702759515278290958576868215983404638844301070846312404406041269048786358671327820469314126799452643709026594344867366706506130586326942131800562224178633432573902325671307191048119350446593511906233197663188420232100755384185019103744731927885402315641945392141025135499772320435189477887420228855708188058288419525901674830666739833403923017306004566595642855301721846923204390507097412313814920053355217549372957399958106595487631645680168573086558791820712064329375873164267249306409590083164110351349630639019986791233310531744567710031492742831631150682180756472574376920458181871888123535540169624136555094270923975813840280694415645318481871890973917869744018288205044260165979010731032109699286526009874360649691567437518735542521479644110081256015242699406825425181024296079246246899570228890520712626935689624615367427233432351290709125088454386467648478509474893157181337007878165817751652204002458541215077639187420771154088483993684070944063530040343921741178217924000809738366090031307553214385574974661014571271247644312733291703501907856692234369756897236313443670067028777784012562713983267980996408327020060726456560265756077995557989293896831223237740814090464431475593674263741471982225028040259975442768811211697625857641464578155193405938682014028891792408958953492784935273764904847256693631771438149058848460810757311147741829882689617752934512587483514991634269584554773634997546638767510022798636219137037625381071484305041429500424203081218642819874229770980458943284833745756326001459683325839004440732008181895031330087209337657617924609618027800613588089794895185935517185168184090531152999655467853606427268255028483450422973497406074137161995645802161101840972130590013688505966276241211871730175172940003812565882492554601046515163735851113795791259541139404386660671253290571120124481437379482420762751670489822159325720566189843965711985169438145084340686901957345814142709002266023561542433316501294558852686188520837291787013168504302922447026349413133188702520559554619582175994122702021831513403079692780069718033597461651068681948233876156981365527892763497008172533856033481943124649174586277442218801898192035449706871971027431634824314034502561935993438308141808462532128990542796603304386415760833968138118880461325918316953110963755733120430433807265650927544969959607309153484656157585387870974485674729512473051072617855722769464785496102684652510061419119785220794802489889945328539512983025519841690012271792710515057829970185194240701191691557566222561441127605164951046865041787354033083521749659304266366511425156711618351089792925825184561755681000804985302373449446249669423595484735298118481628652583324343937434728380848278184467558078274025961803370567153161289713452754641751289082696386446610093476005042927971474459085942479862586178604078593427619613245682038007073171370483880162055250347044038067051618924129822345070896233529896076126456867443028439162714812267989157995791775681411778175660879930396652493426330017409706038880312849363153412428011058542543940040968367529176923423417235416426016078687240739161550258183936522985675868943878768538218938800545167238887201401726599774965981065473873300127130273430729283067729345164842302720744631989623102478287221181447414745788815867885843119455294284699583353040317421964734984294480053173600987522021463458290812317436079606834168936377402278473089692995520652937279238335758942729319744528542823151818526481644452629442481164001643801834804249427505592378061966774791016268507822962339627587880965387150318854528209023704025997081557283192784800778191492811053942561367373066861661354273153188190551612615017491384976851698785162454401500306361526449503475552692734164148909602256720463403124137012488450352212288616276365340390336849316904992663806055699734118456040621172262892409152728847872443311311741508307248407735639821130861879944587663411280681518474642868217139294905603689920898464374651301410153361757400214033975913715776440504556148668933884674952727733851769432871175701757419940883458283321879631178033540479161659143495898586120438849128998302766763401998015168821192778640476634032655822118661426556815153364151561100308728945616766601595275695520324236048542525691342861357986232728822571207657363401211136864464870693645730197275834585951423836346356090315716159356917821725134551587717408558787577487704742501656268829142969130121773001288971199767966711043707466947544209475417220136597402562707028335261754952726731156656394456927560010554104386616987804354518482364223709744487360079400597879567787303627595062514692820265701857230453964790874046842981959218660775384061154804846242016983438313163873411150148306642795219746949957631959589886303658538377499837699559521367163277758709523273242437735441567720496126640372484564331761045634656287623932537173606240465394898413919359853926128650082352523490510193282218695801016448701076788397578743679175348900944547528474672208199508713906893373370816601752490135790275360647478690767652499459897334858485466217886543510123018370443183317124829188623836186829927814320077839634217147476345299607611163594013525018490625253896543840452899520192432201760352178375232794055431799267301243049173773945915580879761974234982085681037472024041024552088877756705745979490566868700901136700828413732225022656367473048294148254106887951534798390478893206595799675609071744773166156129871259341487596082860509548567930592478092830234169062318791230994963379583003822857446085953341627632845970605379157347568376065459637253951819692799558486993053424067697814576310418790453447943055289164448130530738233535250998223651615452113692854220596674211887910741502072902985820090792371150586366479584126194883952075073192294035435470615106058876959955489531730447500363037497021924932299722254539842758592970007999263604530360795676390614760655045145513680232121723179063558855983998602604740383406090631770552457682751322741203970885391711780803719869300729673298639891425893369453030945969542275402525767026923028951610819573632573599819404267087938684664389265100046504703316406076178265768995412280323687585168155126677787977132828495393098007147301801137731538187279243125165599296811712427704769693863997868477277993706424099683432201988582051475565475316648183285679125742269699941131714038111026523689459107054569645688561100338060818778621099580247908115629162504935925531711396890531707780666908212641765192861776507140683817160884326100610986242556301781173976740724156238742040017663115820231454205325531533835281751776435118682734554681633575396703602208633941942321466149027925769570780892207825053557744254330772976189311441409409392421688146866338265506804130926391960579782862871650786091192232039946982380183612589249630256661099494762733274771013161386130521420616626917583110635546091175156383565747595337303453152281600328957743975999715077653114818526156082077246737467992390732058885380187939366095548401783112031331593722924502018035033924395691883673399400842822412148632964590853112998026658978846091561247138385703776482240283892267022521993745027503121639190977892141285323965120125427571091702202785062701393021435419821163369154809021892162401649134385622770243191943073629369769652313398891525354277151791674673460204402549006655040973396854678638599092411131138482948518598613027539142096504185230620174810737221837636159853710539887411652509015192139737562278738406884489540017055210161685217122993959478581334782696112023968244117620985965628841619309003986581911559052046352295600984743673928385181968363472432461956399411770200906195452446045691894781972572776221376667089561187028155280871569215197879521718814871561321517962896817307130974779402275868143209784748481231769517558159550858440749901244274222752385167440590544697891493249933630295308929862365323811564083665182722340854014998624490288242056536073265990760221069607527393927209456459088921192170629794405884967389099177129254869568454870526708487613131571909491962265947525360729863810165038397488108276481027278638922456046285053553377323992555163495774132814775723933751472397392732719038556318714660536929822069774418438658606695205964116030692509011655706947193362719557833267998530385476471469280909085333954945301591177567014972000998553391366165919347323953339313914823958467138352855275243341858435632620725605024576974888240374347837008176051660272788135736186625311652082390361199616540818348426496826411136010713873816106475658749601217494017359123848744604751352248101796608082723979860798589684268339601233870228594890653523980070603965994036605416743424542956077602558845861763743234676229046157644876038650691197930307975165879766108953674943235875997558301382956895062258397739138070368791073122209177887243607524158577700690303887302024978334898861840490824873387811568996919994295866980256094712343040970845481384200223457167234197627894433593951883795241235970205979803912575577522954570673192347424514620813023194882264341969639796887986873954984175326089901222668302826756948613989047807044170370905286415950828729473028537265461397403736083754102127876865569753247139215980098883303117972754673901510305385899069795837261462109914059172778391180137263918135338285093621374276527075072403855579499620270820403748802883746665286966269250046949472550889551944806262654045804260736222004412004784255611539984388888998219620666600182247249524972184486297188502986026803841001637603103199418542819026109405803747158614304568589484664906356467953856330324632957339875812994907940501040542233799969101509825177516022121023527762629925529671514374918091203195362028660683146664558586018197341417372228628791342276998186826945223816528482613219913785965503980813700139134019673802293889522809574227605487795074760929321446786216081379362164258834598651997056848573786326001624239244775503823383556868520260928324710098543656695282374172300493947897917577281058433754421063256883417663894303488989155601700220353007178637826641228346079602696317305086812079800327826828628186059754697945250329013967812597408459130502325250982381938033168653405102355395682507500058999231895757726043018661166651670516716130722180282311179441144748425539435628407436841177618646407828089100006398181341571653110190574812599314891639670402836865213740764060813567206173008655961225657056805571595403784032548561796374974977786484796705248386431715382517379478189465162572898400847128699799098988540057908070797177893354350662000764743631841824522284141776846679283328901546578546106439492322834883219464271355121517374691767050484548182461274072227591824231496366002801713808381482659367403788981301505613610006378844396400561190327598378520553755546968162874399010284643707986534078529921716536904561979381672975045551971810016418822865350789814249241650169424804958508120664151398398793958873103952858870697144376202857296636707473570331657438545461402780598573358829798628682710146696705621806811666358705592930611381051101838884975982129153370238836228992744495133160139080295298887324642278979511053374108160115686524960726731773985184628336078505148812800148685625537692739125225904740501139479448046199040136142159618239325679395593943606181123407862358029590563505042058135981960755675274999703589871508526412143720345963097312474143338817758808161400792933989832640792535970990242982317697965809640490783336440481255181589777344180928681050298527977202563561822473436256606504879699614361518823657248595453245910111565055720037594869917337633328416436765369571132090444657500902395523338134938059161343213193059182951321738503561892642841501627594346261414304290803007901394583625074649797101651499855972718753093512130785825719982796341193255345347578423465631593968333325383822574620587886863551497883442250941384849264438187012169360109133569388823321391780030862775127308943883247108666547054393326528935190421179625709850305724792606113225860484057459465811681275766997822347023780596886177598588076468769479119080423699520531014254641673080733988496092206276832484197435384140887775188696531679309174607131985846151001823472365057976094411270143330377633815521534475196375420635681611531542698625670525326300289035826802271358924254302440107424598650294849202789933858194593883995502960344068200400787187603018785285456177002320788797235589883287072292170103001618066353092677870353176940683920384631310937617903252764368807997895228578457395788079713030389095360828939406256881956946762540054575291338267720150780612280988847234083177037948177118331640862011439665617785922582533487627957041319549887387758755604499484619397146233029083283503077556995563305893631972768654572945373592496201889507772590811205043765069103243005041993357961020131255240581642779367373088691656787803169495293700016383447891823706202370406370633147282409434501912288211425023967654167010341143650076045001168141784877197418810837059013202175779639619960739045012840201055762468554940202516779545790313077642144608685159224029563294670377464881988928580408348563665040164442738928261963774834269664375606755509976622775235995791293684446533531075199112419909280921276143647143527746238548774867968530128913206678655038161840502817499026837201477549250038619155501124797448930987242195613245306628301430708010883067142659955321326304977047369251078462402137032889968122893861264186208436596076524922408669040033973432293840163192539380261896990858975455619863168999525990702839952562512312512185938245130050717159645240401939541200558430501356778358875397150933705010628924208725655607332582214792133462321141835370835707901374296687477047210749735607330524225059824276681681027745645347300321446001046694564876992579251932542386783579788428177301588813218233475340499029094182985883466474167105141998590356586115251056001425198281530956669058862995655391338013277782519453237565402763623953881705584791447397588664375514055420894829185009443102562835443110133907916185667952848081489110536465943012355175554859428555323361391535691398416012668609302317455114264927309181726003260833123382452916929408069062982608231157379628250428548775441383255489050670880792157215613362391035753957870931229068109464269659747992298494743125788766684861550263559935212777614415746844327061471602588801230608671646566825296665160410681501416744652110849781586694861260712251464150409086948175265510326356509723862217338234891454432880530712579399218957725621171990776971511635121466348067653394263602991742591001166451565882776705526331677448388050350846527029524949103463751285637556758296082945571236068864492594482089780936507523741239273397780061402465070358234962037081406128261343551073247305634130223369447344351973628808545825656375578354192715844311337294660410893504247590010173556810177919361982707448904751924218333827054798319325816261357300751679147019503653837577861530906203620810612726490920710755544489188515618904198622896449807649724221920603385801133461656948843770913200934184898640389401951492432090968871300674899759201923482847123328677077140701779124367055984505157893777467638075978797091322638358608805495424434096882480294771995880372599007664657219582694961419170438760240584630848096877403967843048740740620666607477791406258210824800402036927229410836073706943220721545674349545204621935798979873500728238983288401952444529987141713355505746057124263081444056107752594213957113863665392713689977248905527319683831803499998255662313538591819976708098188694141758824518363380032729574246338037573491849046321162665399925755683925086420191023022661234521169186988267878913487641902661661228873444930977737654406371306636618754348849804495330501420335695379150280462358161842851900873768940706206915771485695980921915173011695466621574505063616794987376395358907911744404854099756328248552628264949950434878084541769940761222602162754759621703465757525556817283230150347560107283555015515638612094943815087285425538959657399058176400586279555109402515936696482096882225054239264907330705809118872367170890146736346734670566039275581360795885462694157555915019416731841952918666620022312259275043691182840597969974860090923867591707607250197360493084168143560504603483831992041492154900372687285258749943365305117614007974542026456647246323726058263214844362476616323568653664996077653861073955587261488605233605649241873122495651495589289684714343144078697130400140770617230685435714472937163480384069446735391342403773237869571674863458549262461501002505334982660829958766906150608847391465655194766410883652915151742510402557975873932137520201619068626400064883526640593263823325546387302417258043105069748627690156711422541464096144355569910385031782925670873766193548959266752119778288897103901208068185411665138324514372857675595516721697105251345356745558282405869483647517275220588125969602788809997656806147472859275528314318012486779415620160342976549351333877544005926646947180004541007354482910910242872829297817428642229335757057687060861275395523026317347125389348326118762677427462127308746391739899877798523154299932462430008060434941338455905967055987218563822776674673612525503339711967926466797085096444052303242780933080989118862132432996217856340375110279106607067276028016269421946694469056924563521488084519267620047923940859539754881107945843771380589197286134793273776341335121521908929638004786729100257541668766566679481682654223783277388191386570583161194918831345678847758858653996220118042951225234307077686063256166072779846290542221343867376805526887835919007854991866709792230119324129863625593049736336752538210948539066143438577719069385145209812505592354206409244014895192519436965046545887180195577953206993732001376877729045384809316647255984151032377895585212056149588957259380165863708300077304602270519551831263753641237551477896923916722705734750939578950659353364398576717937480747147267687168292284784288207317402824562775252757015939838065543757802831684963934751462454003875244596509824413185183735346935044695306104810090929708756570743595514607357122132564247033244967155155023798159608005271057755208368454968021089517022116903192375399562226420513894720192597443065102530215725333832245167518741591437312864464449328813435079644390127644280337040967265411038068715736000903852773271788243554968708475636186776259238966713174607017872545054980930294032304713882107130020492771154771049699864574937394113664431266368838958756882400105231022183411924779774641680789414714502501438103794482002227394416600668062230324633634469295988201198695922317463644308501746445562414340468100525085025525283703366442942415988982608608423847806109416098221856018017823832504783834932181525664291424431082973909519483288621873407481174267025274594809639440094234626179094108588221502129532984384566011948938234159032734858963829743751319097063032103893589052478738672567433306471472658671977644573775519457327137164180107290880892246723848990348480677328613779659603418644289079485551107310277155552457683511505279491970398772574532391952898517774305746303465966146466792083160069660571946755259704973219790732912720356067499713177320903492425792787618787438556532025406729340246232859846107126261156890806442126742474540658826622868953902657575532259768550044723499324979030511567515186522285522127671492759608197983313619970784865832122787238256801812725849168200878612907118124077059183512453003930459902071444319632568830455968003030148805627881348060409142869771064573932033249281791687320837942542442231284644568218502393050889499126651478533048966104922502457283967619220175350700723187195462218012798952999715659389111350279661576172092978103849781973794403378631313644387177219314235936442989003104536117592567022864852518837145409836171809708982546124490887731509098556200007363998476247450379770642304101221127483569543806931896376671122854673544429409305216706823881864872857186162175202704958422635818489436993146467283964275361613862024440651884337182116529270268954636808863226765463267952750386534394227974378021013633624636378425978004820799967239095067173868795017419852989014559522657359637582224220277111380297214514088149020923106422294631006973775918238955202142694096558924790781526967254281146019903923754156966468918343222620549874292053929258299901104443402294690542211010849017972668810633683868298722526342185451341347418908127790196055340464363634484357074798019642220113771799494402746780176220406477052474329178112618709016075307404187321454694800156994913493953537738843438706600571232814376921196390415200310377982609977720231639992594460347314064107855746071014400174773155826470712111576455880059852245146747027642372124046418491959546496808003862886289598823268156272758675281635314393898383610836755571325630274648659829743981377808997571305877529206469126429803028777251612838660420620888810064474287395952570660785645140997489442267641340833490004843684078096432334546843244797819965914405370936135108505959057168400225835982953079976210574778105279569217017905678301119599994000995615960270615757133352610109808367437817584065668679121326998097899519151063836397001159316693226169842572926380231808455814525862500261677580132283456138565374233383926109750258613233464483289161396624555040929568907769766151273472582480520518749243951400412723990475036296765199111257586282732298923605504552760051227573128613906968380882860266708867578857425689584991530535121508195984681972571409005314407986103138362633517602312307515412592113016209291437836021726730005832824737448919703758800095025006620730420652489983760834961517740316764737331043909067041653726097521031366745451515922619611029391610641350023395826979972241990230134275986769768817664488895861912066668426402953708256743057511799983461813918269535856142210530508694135445777782875570897079572578458968985404290676009481246867140783089594221089827392743099403050990831932401214396263417428755822034909951607430903339490134731274098142001133519487434702698875603654282319304354208819553489127546693519435747761410058777983883978124315934063244790483839338917820711353513906435599957900219614412890809989351638796596238791717269959414771410122524539275925230525480474615780894895420281724818586016290096743302246176368348073699680227237946811017062069044274686931811737645901775266743503046935515906275513194381524219341470145447339012481732575554762193491376093104179402867758593266578638564443792040967522621699020932434287985959112774707357885672552924726226051548322551675322101596778535886722327863902317481830311891136806124582166347493453659634919960219302137152139055713201565093238849793390383209268387708985192191095958195431502476672067215832935432319218824799604916121052040759316695463417560086589250972210022050020324762464791925544407571803635473911976606484182588902506975830201959629749192451270387761619918364371844787600972719712450847899295555490723354663225270780700865427816258385923057462203168235809927834497904268137855546837088963581747986371511811152807578789737529221856339990502233199211530192622406983313483060430113585732098834140163934487687227403318993899221911693090575131616528737320934074478624911427189974382767715053330599419583398963534910573839899063653574872806164592095128231769457289925021517994040549692156663035653641803013132420266945125114888691637127361577288898761051476650244293098727435451811045552427276743533992586074885082443353193169290590606554268594450677355170104573159185970700471403804916992591963416210502408313260151205160482689133912315090508628729970790989412188366274303061696039593327105454875994084163661945479793518873642853963501905059119376281804631581962149691585350328747855209940112310857814813443404592950006411959692164317163491701877688245749611947379610531201942284653228476585287773740459006221994829404064439407921241306169790192219085695780004519557409133322696180227000950095933748764089184169112052225931347322327603498128291776384572009681492151912209025006061143606933114284456199236306639463388413087915043863902020735062869532224600177501067424896073971499856856445028798864366317472028201627181319258449139351398855738034283368816658532880224724231765433163324932015321956310352870900528832481834946130379561470992952930116255856954968003402030903042542508680326976550443513673988230342353973923769024001399869255348715756691507811308438068102082734365469064025328398376773580692761480125401327983733010128850884742710276600232308169559017795451130391379313270960670546200118398026014819206055942410083179386742065657341656745016730798682555066740349623373468417474007408727536904556028588237698856979131960420093619591655583195929938880614914177041948589558469007767792627034105598663090698590711304997394020345646731640722493515476628406941747880869643525848772750323040532599406514483962975544603709054345857741926889251919252900963118732347683756769496110613550730908293429640594006909934308313108420991186907231458584832702434589546648800417103380002198386208626055373118912159091910669577238103543686823556551334250788275335522642587471523766704766525346838024213642070094091255098439388936190680473411526776886578582187630677667560350377730101988954174729218333547067387144760785986742083795310411416276653672178305699542321614670521971265377234402219059055593481523056668549946066789798401881510537058868716999875397816634057775710405766503544457514534578532940774904741054688208429638185901606254276396470149186341207515409825360459611614874501215144061225028039135738502519536495284277992524934926680792936076759938010362338619376006526193178674461633917063871197078871342017041485252305479145152264663015958979200427454993185829434282471661230802331576792433363240356933472548338831265225756293089478492287840665930762654538096061855338109185874120322123435110810298612184186673185673422406087963670068408745519075123952596902920591764027604350199823703459978795429284838198365330840489856451554958252919626546431179558586537736445966250843892822000610238088653798976099922643818452396625946536457966866577618118244141759285955625998768645086420413189692739425520484235804297343145516919537991836409552338747641033413389014055985221700985953828106890867265657923623945085322306187380402618105395424590309061185091554681170986810783981257405011476061723272678101395263026833588667011134448426351213907493801848173642963746863297097593493319502774487304396259878724907212836256289779198484897863246704836556255465995820140601061816312236205956436381890229908949888014201442158578216402786940840343735577128654160649303181143982997926584496049745486696310231608454547021872374113129862643841768211132421096541216543517217764146029207799432471251263090835264327944090999355331391056311603712493749178568631833751034550797461830571745978806663503269828307420193533248242330856941226289799644282105514464840230472386172835446538191431258191277067110602837147998682279270443306460712092449665470127774678785467090285299875906500786095690342933377798970251831835240657185002746039157557849616220836145252304417409645607704097063624663360047660793199558807898135443339506294734377043705069000828360447705765087119412465030391462319070166884086014958844882574497016325664435875947958236280439987957866249178893931687070738265506794854375924800257747350570876733580764078245867711651881301795843262854495611434997682840394647789558997765243567537171708350506150236019266848004669428559778329111982130375894567391060374925690872969665237506762250898191800410407506288915902396300139437302123240797485519719496962737360092805061638629093598304246466650741308943046072013406691621304489686973271330773960487133632013838154392583335371891615901102690701872718049016938427684663889670636777544146275629991115194294889129876651971355870284008636255498658312500748724144213111116899483593896075770503501301299136244570198306054834232182663041869232085787207901354862378458142138140871512730884043561455219177081996612396502146843889207718959553415549923841658198718967511093886685203797131956070996329065931134484031719421934163893892038464615557215641962693443246825713812614841539356108152523804833235952003948540716491736347721778706015734152136180263576047774441149137586127817290825405886538872295617651838220038527047156125529583780508980854845309339807900679824050333264085122629932088719747596935298584777362825236098692203389911275216944264258961789992496275025324518869409051550576941792766173818353256218370979575920043247605826116330364856568110619119236109490036397501932604076418531504576407606502825920247395912559357808282833503572451675735223628832561871913347759781240905232685883480219931948901104946240945697653178405539669636612880885842338906953774841007001214209075095861180783492827681739600692040562591719912063177405351176781125213170911600842627370262307642089987683372835885336961767523783622967893811052770730102889860554490859992895835980151869595407731161016692743056487545497772546880959881723105703108650116168808600293022396511113349410018619047116343149803783395367805924299530789433732365381248797475813174283402609254586590832651951324199118186540471205893786316432022696033191309912349809936855846083553812250449706183093980933190393082449692954956599345203901938015874360417052907012661579169322683323492336888858599355979574516239538375014113197075045655723956730503179681790319417070180315174779019605411759716442026564050638966555310003785374476092117222337776633565076845899187378786613206881173540444281732155168882558930517986555817019453598777978038332393242268449971338729598047874916401885304368551160540413400476335822376981897471962775241875683729835368119383087708150634253685110246614207231037255780252842493075657762882983325676823722744573190089340966558237312968219548718605003265866023314908462586992807872091425825973824741194046726011943613162282289045085555840495053638347760695907642707484587781151130598814722990982681503611657378516193397428053220929565132669423436674003083421096029966366658088233419195795583384475504638379188035663158375976449403478352204625722603853655000521221986487121554226130745898058793078072043261631795769055028039112869986458371118228720506320103467636126123231009301320446658658364033375745589125849386144638303404801876071175776195639807780403039331384538248293987001603303084330695636278955223532577577807266653677755654448724512455095177138208624796294019323731048292194276156018843743714752286148503347270315770718314905716936494269523545412490633564837998209661800042796013769636072460582124871289530887341002752710868250119968933231021047255578332478052402560977669638039528360217003129596745546901090186355988934847518542091843718571666639488108895671441022547231417820712532873844803677167982659959200089433170111202074647120608038060200410358851088991363070218692791078704323817406705760324913261699567939368778403785708782792943006640891083811252191080634870233522239450285229327781152878826545687459396208037516991185269059199712492860651939432379767617883704757952342034224032041839007082814752367730639397686528226008425071366875779935854975606457448562040417304017402461852205431216587598908976472301206464608419286623241628307762946286650204338474195176376307572374712862432039148486096167180128540407147269086163563881105110361188830015570085671675886532252179711269924941250924626797729482058784351521230402986307314280891951477846685026530844100166565051952972011259996907786392001845008096427224017655609201767928673110780130460863130541322786022474318926991978064097034224156799702463153321832015258885532548842695250347198023562474931785791050156390427347166525792106725152011247533215080228012192265359647244031287015842420291162483409428767008082255628570723218990613382178178463084998915433500696223424663395201380638405704412182549511071529598888846596142935546218607371415095946081569542782588420430970538015845075893380163737402274330451449900358013883321215339006029299820727395862999158186254651156762472484725714914322698449469471554012345351870869258590923789792845109349526568662978547349074377122122170840992408293081253449723711963362291729695101826696083657123232506501266130921226404855687839117756621707781412110832324606525264568507006827458489108348667006917011058569948451514056963136618975789342090324639382972027948465359967021365670589974300032654488971057617317667853568023539067804747942261418208434375305555049527322958349023738827349466760615192155509288120045256031469895200086476156597717499716002404424711918887760518444884831997581012461268770776704161725201537076609043572911456303013274551253582739909980962620195984257020081988789225151954102021762247153494615976161465553378448167256100616373771635742617221551325588757236942651283698924981161290480050928019562257006002435115156917982150869682825481794148089576509162943420063884660064740866714261699059081610099266700131655902006952003560281680657915885199320364248738823701885398809872489308632932463132456332293501690334420884856367170252984541948608022485764538483184421570327548067938744655858237268851163726204594147335659657536821112605406504381043598252929460115105225696796863130888280972345878814772500715330718157753638057010736630845600087815920745765010711410161101492221422692785162892697645850815362009444008878146621772202833665132913983612421311715380806812297175422309263522295570999897741284699943482321339985094867494514593943281058281009295338405296734207456734419301859967708018019349846710819615040994471069252921657118106219852108770149853886896931724437855905237301913490590547396360477109060331183311149050525771691106740198467475236549299648722482990260531537092138335909809752279851980988345611900344913328008460697220715460830184105281229261735418037583511787686716374105460835505707692048329258799393349712656681782919652354685872000173409069141240543570709763891144901494042428167941983993464964296702630390259404555051191193090368415734688915562670112904586029718739269540395252109913631398571448964126509252629564586507666443285663416478431563255517370994918368554973019935423272547318606273608841077452701713850516592294753001252934192023669492543096458941828669798121078610244551099021388128779683386970575230287995462232405692671240379404512132078112380465523259038197618435682402583140281721715020152454966023892570179979001164876491105237034311840142687540786056117699978815056544011471794271342761627211791691805037463567181676231857383953806902239263923615918325333310334134633414690741759625602140958617373188625987886731843360001114341355042635293600255758149974455663555276646962859490168311822259245786149812845734619324343157797288223005850267475821758205426377283425926031314004572125239162797505143261163695623223744054009387957882971013930780714272527260198324605279970235787710185126914430648746320577507453685786042080344494269540342959991356156294524546095397349328135670128803647383868469797491161123086931205435957466319282065786677565541414273071658347534256648932826198811118499436806050910389562407238531132677580473789917980296435198509479944242866804070889164898610556350776546700569910954148470078797747692320087584332167155495521459399780383555697804546545684960351714281392811127322791014003476790099434909892971929234848740597106889399994339941672515869882865821823510968531734494443843641930773338262221686997046704742337296783333496580818202484240145355407719292093905772911338119777249121159943321920470182318946130440901211608038537289381867139965709685327911489014661976962173725344400333687949847587918771268780116891021986151024520688624846439516799377855516410808488419850988811299161638599098442507416556665047086882023182507600832773618066307436369262880115440366161347116813591924807974473436650182402731796834315651125795604434576360494492226517683347909902200897920194355219764346543356999884064455913350544013604601586467791206248539305662076700248760611631354788025212288230851632601802592054888463704993604352988527689467868227844337498088723884253745256254472209383675002753583261002141225569224987435989960023342618584537978927891689188747096232327905680253390573299615852626934889901987997610644855891426365147208961370577652676211954953450469399276238192457362134603107537569715260520462901145035642598358295065742750830474440117916288423925759080950988423941313414447466009280968427608405304362817717917089424112926498343765368337689016471840733283191602747546391470522367727859670605406660657927819166494895465329486420933555623689577320214304839735312566842074179281862747488511685896839452400779845327041932744833389045461462690828872936989902769441667259629955578555136404506962502495661299986534260325576578946470511626744098874452596544462756145085924493257595376021318361992028140932480555830775652848235208005735725988918470763358846590985651551516402880986641384672838670092994684821211805540914462599961518818687748365544126139151046926765020089605928941249927899346275144905803708549391645566394740408373256270001978865648818835716996866648767395663134446413727442264967708809651450793709510990050851393682974402045665089972957656106758622730496077579311510998447822612177460439846061412200438257620593660127235311128214616597951237777002459847697734690440773221779399770858323226127169477357632025251104897594017199527589292526894787358780377533601293277732792443981458488130520970682618471685277613002728227915907682409837370918204152260965578915590311625246767328036238738960022880160827870177512486159929128870127113046334091038549118437737995999787769145333918658008499380087288977087906371276213658914308103329810373089898178938675008227671855325391435270438402011493039193529002955181040482897495094129660494765359151415095646661927360871925595120350860757854850010808372086914322424952315692917444324487146950887884529867977452997450116946464887588824039464587476960968511448710890795463787385658179393136272422452244905908783661127247635330408975480259616748819895919773846409738308526793010812679262984111543191358434365861318273786260424546064102715000355525236398829297447524409537472156194190403570668529922699282225266585774485759062896647046998767161379648953456603396999306738836687500404002296775551085902517461003472760276165350255414762616096939464064978771411315020346266943568790685377741621892073924599483315817355898678661792944783261557514246674193980810798381612358758216879732802326107532716507938940103491417847818758090916155061318786867340319607232018262115985272957142689742361402811608608553078589872638926768788358157473754967042982080174863878501555189541662386594099593255140238630036774614678896464606114400830788001377351472756351374492358187863885539757902686625391456243114603183315093918250624953995109677395770183679905426213922897127228055586259025476030377832973355939356511330798579523815482098534673443433515369505885987405470889888356044098000838725364383378769956991713664333125812485108248483568669957374482185224259912949767768565155850912770955338084334602958114531797265602636194488556278964290589339915201113013970361673041662852811920983976276298937578385461027475680389481343702235785058885562541625816863311427429911610703724285115363211619919172299802663945939612415411412850719099094254669446984623357232969762548351695149177088139627475563858436124388593715599937170401221790478903405892697636883731795777265359275938195987207275988469145310011627088216636560018351871508243375493801860774636175738602242200419881581180672911250813691652607308257354659891782507087909295215336902801240441540243440990984049367887083385781967970486028205224856675782676308278749024351233770632121279867172194917506509810617785519157237568896153002888012735683917817192079227055960407221753882580319211140233744885796648081755601628696489600073275570135041708742042791652776471054478945254126836883881096704040625151323435282804062472550861638528135506374249872736761826025313318767503854358710782068867636002061118109610066645853303609731897564630584603361395128050421223229023413709207321540579155438719805063114626586568893398140380132592368897557371033731812124218899786936148260397873400221763506797986112549913916370596633083414582817623287302665328109781136714158095528717014531543614742415610981127723004871025681915887453405807928217710213495127341277447398230857527746899010647275635476357070784633824729411319840152577818697102512706740466242553836757981022779742151508325402947304800766678646046724407244510539135753470844897350758465044650733934918689519811450567858352391485035904329519816319915034837478963431193980683948934683351289359993897590833144794486700165175015778495953086985273171612869146229248043010380308777119383145711784063250067261298454524273617456720010571851861115404893152256269653454351883711079570777728819101451237293920254566861025442275887540100398135370911941004398708617256478850404478542586630005851167066484375179680926276495653979262644255170442930456948491613065245075388501551386052582726705066153233437945428430389309377547894029005975665270425060801296052842471179665660175279804578828049399252155989198795508392879390350587728363951402237397070344725182230210063676984002241535998501305702781018965039054351290893283525482904084125728984541241494425730279710913867761937755082640351635424603382581654786755593493418327543541695146357827963667725697798459895726499224586632972197748936530800003386792240586416062497241657906787232883797453456056637826577077643060531926408963672729870137063284764638420734293504227792617914567662647840104724135675535342275351937473675885841130118825996995920677136198360990579211803176923578310710655608063897332666848909595088372933828780962849767265597988690834324045737398262578194684430679971180561113806019824097011816848645171681691972151793454288041404449582113183323832523342005581765329663023258633809120026147683452861161521203790949644668281753628277163241825454571611147418486810452722898957867505799153207643769547047992086235973687402875224941018433209087319968636099174546164893315910432149856191918950720299949849767399399663581200258878963381347284281812030798518290184226314746473576138064340401082231132638768811502197237676768925594838836150474872437309355628897942924309480144481543806320043000358881605046984665857171680856580749295628246899643516760922045640201022175416627534086631572111114035550333422130391211227111490957276977093312106276276735084372206053086261170917807301757536109916586854130940964868742580079973251528499755728488147149440200429757089208543640550930834374516042644088482100004499943443881231797866245216435190445265059486226115012047259499977915057969031006066786338779702454062934611210850646962519315810792754839311011333302757994801041687572261183903794012255764286296659167579242652023609056697259772546906723759589554382382459587656512768410308338649339960142833012742531558404668352404087122786564167077903390313743356667682109824217571118647589935088888397906885756038566072456376743899199694835720927553160235520095174776975599872628568589034733246544008131645889790203842990913696739896534546554352039753455647096436162095140457695145900631910058487616277274197568357729828193071056318572156011644473658757096204075464627057408676461981040948512629307930326381444737997055192290578265695074989371925577380205777027578788429338279330660144121616547775982659313714952532443443112337984468111757322932356726306310516870788021364153087801935978318695909424941929990971153062083257463467272301450479690674617368715414122927272517030657216187488569067089367995590351609103055600187830838898724625206548194845571194378260747698193469844890317020746185863072377356742989080112809923337329717427846824215469490603551525032485233545222798179595826298239174662526747773297609682167027151298715938935354575211462734624137181409321207400961991573668293170684705661284842170989037138807113706657313267255830765843188304227443372037023807853994618409241591969981348364401373375273803480310953757332488324833295578034984011815174016668992036538406932034060916263997094237614744429390697531892909457333515570046395676166522745779286600115354161035674566132563279519683329866176183544655465677321206586799069665098152261381636840322645430673432643643870113268017985966638433962549366313195803092935290804721514266895069957659086641784746113218132336515000075623711118116524943442408353953237904181356207339224634252206326853588961831224311530281202313828381103831047583842435463102052611724710852911798123525135707265071929371854365847519607832092629188759297838782832867590144661796752437039556685002328980718155372730596741223978015154018351018205395388328717685674626493559615174951567725816521105878309602167153168369975966661348819989812197977305872661466290236621291705773993594082909983933883216876106586963778646596072133442048520299008304751818343243247200358761899064043766436926436084487733302727784840006916927523981168630820990864933468582805583457131747066463938651946178128272291518258143905687024376156845197174762450908576781496282357926188733004691955042054527484275989872730858794056134375891169584056782285049404078608767373959615453506916003177558417609256069383628926785460024485842645427842974082248167818547445430222695279524562242507678114982943146152589740386512447146032582849325790767249156157985546031196088868782705831961227853255886908258746710256027791518386593539458050990238145173589699547937176546283414897726052419695063324508446433466400296868970989674979504122863088875907750103897934144933076291551647078605794938191490480493556314310136676213900337560391455190380717367644447139044280973890349941908909513149146175966548610082349733500630007295140967046159894309007403403371164213920022008017404057120905374958744110860288891792478943530580642455902448036558321510459479341826933320424999866107632008281043287797008192404933523362755699694194675510061579811292288649404602006367050398390206012033634115795157789750900350632514457232613418779573467555888408382566213310047138962190588700388166845523828742005769795736851073901390041903300236364047908278025190060847936518524307335991960881481979400368326096516072179659225900403823288900580970447511576737838930905187031551916996993132245799129134727813611355359762392303700892523017912573361522945417475433246160576841605482540709498916539237712503820827243002192456413133119769731386352757885188761506123919531822648666037644936263931808449794384813584770622487044121454777085645682405499121135987862162028221552998348449442329191899278397391158100300543223270109337212786195160577360074940655622394541215089510445155052132147135871872948647615570557630029635356386057572207044529793659016908801926111496617975604211110599972415241719981338064290448827006490989324175509860962343405780491766476929390863014482054801031861687099170782286543395606835500456184284883353582063883359040039209197520693347844277409464486119405101171403176200119369409521022126589060577605185837844516093530235519056274127304497877500927449780816935062867968254042933690059755238315362818395074026431194639331707897752707550317161854835088424870151227170600857051302938056282895839873548439272304636013350093896475993901425524668648745165252150536517544324573992381836625478100972212707275695691934649165394580612871061103434037279982236067564552152235747299336796315787777199909577511035845416119845920619557322285377091534659742163813087789034189591828203145997854828046502586712380052584641746046527898660853241699774187708346826912663433021609260968844004523350119796407430807544097390198218476098361942495707534864420527604808745128403572848680879040583058504589993062051223931125489926043297226179277490555415393679850330708748549556023075053821104120769749284772567603454820768508755482930955086868438365846471841568338666011213526216605032179756904789036749919175588606908236236552578741439715151385745400682434994498383734828435884017318072759021104285080804132373740186428870652497213853020031739663145434445146555023369288502902200637256032577002927435150086445529519427692183502934465666255562108174580860552488763437337749627554488623537935896618188593304648648943068141454355867438019073735591702103322697096153751007239123793852868295101651821282240235300176826084099089435722441496683156265056741494296373837938853068752023156803116535041192723106137300516506728476038563209929919095136445412505412719926349590031278811164628096717898230215053156253452473260869535204177538676952287542229959235859148653143567330046652135868568118351544852603343014080027697522858474485506178901199934636267455426836237001929850456640209738353212945357405722305476810919234150255783475052667006595764201478502028323571333122302350557888418939959171997367680424837632676854127999179901141629660431991685346434864484903334073147415440400282260086188268654927590599214379379032455883565064636985314856364422701980809631919542059975247519317413263556262549595417902910294810520601964927446966216775276777768071828345012088834584718935630865219663655299627018453004767483809603966871322911719623051344263026278377705530711727013591277630084718899081547897677501372331957441048816683727112545612492857480564487924804928561015225303444061836939336205653541019980255787585064389908057857913310621701092621611670831617925149938774951884485278455016481369924950310370563816465410151885928934576200614738717381290179144731739543737735565208096074279055502130570118910150262858990612742245878923822618579011901318717119204126097528779642040082261246570973280787921365874436322786693521986405145254181795746966538189754453158499224202906891852282506429191979956026989307452623254024132585630650673259330740961242768442431697994738845276573111184373916335338831283593872974533079125055951352748074167092613978131170421791694639045028795332064500059707524403439908914297025192618892314863020449306510761862718582598955979601547352828005883139372498459012529810212704365838498650341724631813545813374109733769101539617275676842667910659707087569035272512251810230193605765528636532699651719333841511805856566276573614819720652209095524621209050100506971395076189248514439997776388765965470410004494624931627061930351257862322934307676796280213712064838194087696594907687573195333209461489445001408134361119958434407079123521844361252956196132737985124347074143736422449081461185332683709464013153618278012037893101409075564425907862748667765810684068444223443598934957648332733676343414346455526566618853792469707253340351632930874928259345867203477388718444155393056153547328695740400488096516976126285740143880433579178011847947529687852271312309276866291549587027472366401907423759398215770723782676824117132204038100421171737264366254097382362529813287622853338820552772578976471954557207697832914769638596958263527350794565982186863978167423506142456083935034967672987779237810385149319491940277677970327477129362005671547449591045682174747396442652164349917403516787663023188163500356191276816275365691266415200283692188110590056391506292388102579449849129423006004554264851745688892793747049390429155142468561969418311183651162544562975621062167585958599812499587446892027224997396385185734279273228558767215081552297084219652756628813829059149193750120074157950848186991539632019907223291819565393705119138995855431212351147535551616866667435728840024843032151072865371600643959989784284992856926064887460058983108216718613655714821258694472127228283735263232740984643890960105807662180248222324192934122334811870518107524587838026226875856355133203965175231228732660118710035299110710209761540841630781641785148166863191770300370260854332888554882704804608499968946787900473235262188220549450551648292257149588639817926842907978909088634662231761008019395382053203003261579384345450555867969496521832087523533671648055555807979944065090829651386739611145268729177708432865351396986324188997505090161022032853460529504390713111438455318964129114888536743227227779716417677368448412699403920133345707968997343536392693140755273288379986921729008524534906218029928101084871782536281495768118269664003812946575287710288785637551334832751502968367236241594560958269205200895280801977096183772698530892872478668248277401997825408850146341908685084965852603661204894673344628741309704386210221630981622287365544739003617084790555994010135513180924706764768160640599907362676532788155807695520256290731001463549246657260422128326210885208110762354149523421178483383879794301129474840589214207610331418303298821925093652084207706450016589032392113693965670309816268386129096263838334507087779723951307409058921107213120708618877444361960853511953684597949022411551701040383010473238396167072628153727727544953657433164952880267214898402083426067594553928360716262898361816546031773611438150089878958178347769759584983500142778452325644718915902661154825892761817284894486491893120969515333571723895216249722096544461058456648388983760291671564667265605693868805549617556343950368657866625216149724106465216035717691372471220541078782505066661595346804300744100167941934340851978575653306604336172304210867977134907824931676737436905428169204424946231422805840950028535315984801030009026108718459668531109960618020118547370256463243132804521131727639135426095618570746611537025975241297491013003034283862707770432154700340164391066125818349069773621537179903304705329706401854821380657718878059260467908112982121381868518538365599579006508892391547070095397355762311766729120399610335269177706145187177567770192827111982972511143749576412191472593387275347823204290694590074875934338031374808431765528625804644133891555321807594997229034648682856025318256743932820160163490844992353736983335891308648837836686646268410905755577493811921223176645809554608043022492854866967234754264059273438425032127797971606488433657437060780028261053824531958081621776123095791438558433979639191790693408517474213401599445384853671756882769073390103583054258301047958912947636036647380334834384649129670478567386839896375037838594560510102132931919509993244671644608461498085017414294369097043276441145790411846562859680850551437878159416372424378187745270664868945125379574953588221798697179500963397651244883274571353434638366989562569726696845618823104367911073807975572855158786551658763845224990568069921649586604507613973916169859980921834815670327136355081428329029194144411831800319555429450320487395143391550986267391577415049734520452129708500556604641034502841820457982076550234455502986308716470607712909544834665834515421444049765533399305661978395054631296203494778857510064102485657254187322395622498574382251972024953045306439369566798684831283119165202469313284212400121240333851606769633935842399230406315476545619823119651365679786835052579751193951580073290194156429561663097424008754915522200121088992690051506690341987433735670745555694544864000393135341085321687844042424722615630203427127119910431438027430370339373668821996534325381024532526527002676768552301576217265359021441013758128989925548994263509853336829624904129326052140306837392612054861660971341813207883115318114307156333023928815561065586274623804207989996902215914386893797214295059690291116084221474683862321711546806147617541392785745427951538393019087126437607989585159838251778759618466372242091162956773417570927833484492950856273246708231926634245096313494416287460868298178088787285278313634936464061360996596804873168522938445284120682360152373139820972688582836147691670489325240299259828531102380607632996961043107857828494713645319648854002579375402670159293600463954124495181464647511272799013779430926092674432110842048442077164367139027889959423036109457329892940776124326107044285738692226126866308797866871839310026576791175814579063250107470436123420130487932810424236995916936211130925366123741538891450885647665357757363816407126470508763214905788151865143133974459569062454920769862985087904225949428826125176856115205004201806186194930767750543558994879013910077906470255819030652552577934170926200458135933137859178747655624079944524821985999971052134946647137742795511734885791269720144850340257855646005742256230214314155163771712077963897037751376320241120043670322244996977082899532635757792191361363278865306340910904464635710259176218548157881760933065875157860200042579268330058328655889547818642582851462485708499543958127793151908687100180505029576202232350850963351160818527206234002823570916266549577325424666492151498471918065272764687311322678173846867016185254026082897367711417631176806262270928593664463182445993974137089166465528669217437560111145004615380210311310984851967093396567950820882174683516504432179238315020046117561697701494221685021257148761265030754847211394484694011808673934633988261487122946246972348012550603571667923491232724825402335421589210610886466227665916749521446653509647292643553849706820445333171716140855751298066929699593501603441846179591755248442037383347497499787539812852389843693065317959475211312263293546910559421557916587885236379266546387992478273665624516284216273223620903199879557038831144831006261163627066841689209030996529776201198748413900429293246215693744702644376884515816459489564399869449613168904183194063676111465804896988754169065126395758854896180801261993871904604081496534340407001315912014999225365063829843528888675765271893982538110348104045895520723508694596987746869651583367978494545305951951514031068497386658861548999496417589205953516216177802019691420654596941056887812724285229706211900624972383910434959378667883684727363044199008220988872568375938596583810648670084191274111302576478962825018644824695100262272125394051057842634468142539952816562638479402324832156134148662154516848239691235218291153307944979528166820866173228113466517708648852458195171077851007821727154587564877667887166396754682852985229592744142304780071742152251850432681459731326433866159350096089636826510291658757630385908334891453282655289680498904139645854530133586463296371465935895992400037604762686520832029863614411653269804385494394916613455488356853927476460411051077224506072548502239563008149632396229210405325050038877515254914099258937577877137650640608373882804219788690521531654628560299131823275080085836257837103537201169556787591317563224100871722830549391330444603191850106939948896971347109077633463614929121544707153447079238410702674018130431217303581969833789218421434457612602009495092980008528003760594761540331690604453802789416330538801200221679238172019583503183099400755574482226921245721914744553312278922038524243736707358622134281115594439140924381312904362920529406234177309843115297062892433504300894453462752340771801777447720018522040685151659775155556005189721641580492339095274031446714811420092448742037842411034049320023306530963167753289380597673453403933377701447500291530358437911072419311470277566669978245068355551147311294390146953877645170369391778232871357292614596238553961601441177410988120118131159105391974695647824445626373610540770108562264405842253705782456501931185953083052692182738217534848641284997446794034626492279477459498387613825526285467735132257155620629846338072847399525091128799721675462844065155144771604221243675951590212170905842905828767798776113936146893130515133189544637961346400711019835149747238324449988779912333455879405210752509938786017108184987167907380624288699673968027912952165027694985037729472645842816615699160013776891740126993907585478613193086843943375342681234454041088207472286902993307832483557356470338895705876057040737821107141179676827810585124629247119410912360970290560832922983776116297109781696372754941413568600811002503999531053625667015255475440093271366773112144492346795803257814031526346257112354001591861087554193874741623261941286941315396009768438817066320649669577137123621829041412553764185787761641649100414924418749525091441391508595166729539913720917259938480885476570279433056460995875183045133450955389245482313485613218547598536818114494285791031316002626763033783630323257890843409514732746901491682232208735895078911446191890790472554290644381926003792399338506339359972622536197206966572596072538976459449621497344979241426890018298498728058756942694289442325978211824157289686672053064570375010854921255322861822185583957770365972456273724351078323212866231706013590397251686186415275744900447451976587583442111161696687447607083737595982049859107853132736457755263716862589833231093716352588339441811254195880502643174255300434128806596469267032295662639846984698692202775817038738242304038764983247736558165859009156799100110031529785678578128461096699041678650646116729884564353352739405580218809348111427631499044439449321304845681335897629948237994035761667651053828054957097128997447646336533982677579542756311651526349201366420246047783173842961361047644787699924202190854202828812350546468418426279392264568140149910487773993656462537181652552114859711855902161064341900148838630876146227733834747058316784252042427676429804182402305633543747106240247696951786937411239186127206472207127080441700114894407391459041059811208597607355208954791443076208341968839532510939843253040703985585795996891006920713438763508853280308811880944644606350266936883716498142483512140942929539863837591612340746710538775607006972463512352332241515664093074919989737390908193408983158495781414706433235189574096955626666356756195341156622411847932676366808394181107217078683063525676878222063597082095063632922056597053881349962705382220870185830442886670727671354864595469496540521272203367893481415904738511670006571834592817633857344592299308364997555858620108718035611677360529991462460261774578864324921733433417267401349165242641862377154607225965582649951668353606217149634632315705874300852763864327460132866580599043698841274995056516975523116689636211976824297699083486401957059451431566047846697357702835182880715703659350033886875148599941945133646517992367123486155192485282437135757629098807325498559004833933429293494346034400042782067012677156098442118785784728947938529929923686700226109958381823389999672981696190190051604159413233772441107866520895472000206438163803883428483168752228144133239664268761417846167303921845164318146389467323612412355204253258693105992724882474725736464213927112868443834437216112723924389497946948363784332520210875139378595707149094193692637229799256171056670342871375581249736071580922008444838028971901384104566409774733731991424079537131664442246912905027127596895906403991565234821705983362133519127439015038540884763475942525567099245089663203129556104080225917137988166647575262613828659729739083593672074984185411551786032898867145367049078590647900578594657826624838241644956847335143921272439445206348492030337072010971456922188206801912975463602300279811824527297412278089791083464825688514940781272550107678693911131079045325992582258620431499626949202927483662539126297527133639997060970244191643519072528370922915635221990072739763585548423427233134035331819132212913187327046883684327357617520838838121814400368824771668283351908187438971844418238828041089546698114089624311718015980381677265722311553218275509299292136048261797611213585456768351522526407841133996779187341033211544746576770982256152954280500190526425088780085670087325881334998421125902604842543682668958443886006845724835161492245599457685445354802689125391793568107028609572349191106387285196763074682009499017412294694211046551521376120269672632338489063728275266669480728150989199571415561670769935726329839083755053938061254171407152166828015185088500081285583817759425385550542821345308916541650657621094479936235866870746604269906749126727584096884116702280608725652141184966601657506772614933786880393483128585247460778191745717360407834629965004933169073933485888246175419085567573122337144704907088813436337108742993024110283316713619311748556827469306081655747678235341957883810587555579936438514633144489951283168459125087458575577803005988299611231879839312470998519761851543515404640755016242530217151937975866351182972223240408284996390445048464454232536556211018321605257071146170335845739575570013400917575386837705467621058750942059834902053588801428035842562556868506100198959740667709017976482735600904512564674573439626154642125928302482771581456074366352723720095557508659692281548490880229147694982904771640901594406406738597993560845454959593072889760070225763470600070719670696273067148151834883548505379471706653578115435875103286418689102772279603000475890194303068324372010501297865215146687137770058141590642024678518749794561519118847125777747857703452771146252636840648443074421271713578073336263320036283393296282639730361007934260966849412368109803005713869081596639165811491038270021259277139641170781912897172265741578722207374733443738807761820947185028013636668924475252231829792346346050587342173182428335237005091380397224162328901382355055563759928349356209544193773455338477082998504057557099953233776964389452072488107535617947058629041404181351905957066791061600759012039172939538860758709355576634542764602714048675769423106306665946170711254088840594073314805042433300115566898925072849158083187213836457837766194148226757218905898928154509452010043991167833004557000691949933119538274101020653734891147729848117641846146775059447438490108321463884118219402572876874363371663200138909994914938377467861934071730917324059748597683343629441024301251233937393546520747776729440541601394776478461919779770533316692262249774805774074807222644634887856394740788865021481301696671938988974484915714257238414672269971905769678801789322066121230057518462945438961383552951253681712016796992267992431613961458998218043273384944836687150576295992837667618646393821712739443301012669307093434601704174690521351651828598769981456657713844662356214115380266899575380507119228467930383431231222758342570532910861336263797433897647010857164427051796864549276786778789101875863910843425115109065581358920975626308525377902233075243599146898081721734684428484374994175245833578646382608208316600423145551840108523527464595228533022938919940329883182953434776577814870544608498594862657593066858670627833342302648954357521869717299932566893353465489279620318962915932596200642853004420475647462482653849625512549210482361937811832546169141830688317291206483960151330614197761076440191496741248064969919447926144285212657622402171548752138457848348594674201848246834994717485624678500922982648432384774123672659419007858193243080000564729292954417281690705751715109544070254203201923225381312261326155906667361699394369881552808625543439287582989311936724493406639856466858110679383196338298851447030784176499869883111757120198585082583687749791336734764291233363302060159877202116230671703304394314633877680732252503854006939812429430804443364732863389021459319489119966980680913550242045007840521166218967486370918856920476480484684414410242281074714080525568694815422005551156023490243618961128951226226917637081725788067767773200972496270899371988588789684951827079488030220626394845238280041176699752994311624274927278716909141107561289928762462332743507728945574299550257963019777631792146048136125926904195195329937159172886703658981951111075934485647161959426263347025809605789803476535345150311364713708520797246670341164969446481155366494103772394901110060461174972043495400838067751965122190097630737732298373588826023814595284033636666954487393827015531397405137579789480029835709684819487833443585834693450704655153873259133038517198540198238957635187534717080098697876104361119535996589677261498450849811847950133860844984789626715099023441295428906112982697053315950764234868046396835933590447931710807393219847131118500187326842200033795329677948866353769815633417499417674678210655816113810368379563347581568437128973724738882635124949692560728435100887481421514558166751682554957666691602606840387948428191438210002661878184674518758679918936584967922491068328063838772145577782856186013756612097079290338907707964927996735146731739379944830093373125277475321952415627657919392985701763816168195277146855943679849094845373882698295153058762752075350267441612546199848010406118911187112999257011462241214721224043464916764144097803400662377006664462838008610861667149111536260005759486339745662054940630295144721696619242777992444522170086810093986715678927081044117178831088293895677805179623906004343644988562437518812148068950217614593206585898909763159928733064124651446555261828650477886563108486106798047766119585141610745056397383773174765001487576128470191539751589401392093616048502205160004892105443091463739443517771146261950629895640925355101001073180717045659061368723670286222359165866407879473631066784903334825140644536636624543761238538980215080757403478691141229569584422574128735540107426441761068227172832411526077723729565445342625403433658157973839467811885215930691504985909634784512914584161983470532251822918864682567622960985311985542055817397673710898222710970296410034907641327206279068750388303348244417004302913044479467224768874842082134454083514699043697875666092259667216065618629549426367418088321556749386624043748827829984585868620767475107488988699697400874893980535509107572062731123930416076413495945680311985162824297605037564764793620710343841829188980822977467253577594189313181748265168886813662859313685982060645721752088069156406944525399901421001461669315263285319031607158859651744632618311791740634459507708606343159695120036124397035120666435042418363798040125114651235728121574393976611974270837684193485298637464494703438462633616249645646634620502444833428391804143666713560436063261020194448866938833340933647856869447571579407029682815751311141788518844233625425514524137188291093539739399170336046105253467313555096459943436979687577609462182340939843027539298891706048484286787300207915038472988436006383408670816367657960813272279904691856372898037573272466249724186969117935452631092090511709683654774257211531257313908787713475795680552709344173418266032072065760197878076364376861639529669394170563343594193621205879584217643843037210226569834207048789173231126626895121350771592941149414444157534180586147598907921043434650034598952919106944890196793431954822512170570777615755542791879987800637301053099448522297529760233269823897232525756704092528417819732602803724761409138379946153852401930392234063499681428932952145173253435174242526700370595800778126702405740382708343583498480357817441523580844577512290584133763977964231835070649476250542899997185616882565288682266261731397128658624218322685158721430024645714506387412519409145849510961075835288050413986165459950333204426914531334401878486171076391633870446573203833666321052415642525325944110841978926945862686454295235640627044706973673076340504603463090841847822942627213352429807470771191269533202654681915930884320583300243468233224687110938719076344214184476333240901593841705071073125353856601994334624900738357008932188605066904441290015781446215638835340450549303905385184875957013990532719313790359032095640807157191609242839609732433901080248159680748109114051781099634192762273837807516425228751534518733846643075497758174065499774621135285105578094130673378776957242140090971838431251736290046241593244026263478682776811756167769004549631447182120332063376387063098128025599088768499604364474156803488317443756901984853572239203762371088634964851352092391102534335765522951237226105927152957220358879153119215603646250527466773860447456822886565869847692251103734077667752671377148762581557183613100458729617009772905830852106323720212538389903769635716522145044681943666192771023718049139070807550836782364302039619036683833938323816692064929158980813031368859635662178155491419902695555170360484500369583827587202677254381261025915184292792727583208741493581914775454540709408000647262752576155810699539920905511624136953798041600423772203518762795569114227571857743103900888453095872162494274421624142167028697356975099387363175218118447583828178580014289252606305904919575696988799948605148722297292926148711421833517746619154900482104767565958689024699475716672610367843723335786308458290209221970620665992523118179508007860271926932351281955416462294595712527948305719607206838915852007819996589336303946904219206696082819963192658699530271840139405813138491981135411587276140955258409014716105394392406692607259275085196689593724857640354264365800741353971487384939540764367438645651501507057734093301661974064516670067395932771322588609417697630306489905864442455954538830023789019540683775877173926354886656191457327343094841769645233646765029614400744143141624567076646750428473047312696954467226199622806725542098789325210095571823635871427813936956910723337554625708977391097888484984818668890983417602488097838449606556812909403494244601288826731641259125817707271994183630261627978149614095173613070494561090042751082857514613584589940593805184389962376873045583564375016482454260872157118874113077768264137024838468431105638145465250447654122348371792430850492293508414168206372762275978797757904347645843370640085954967244557484077264210541983916507473104969288129794030884893464309718021491043417007748851127290481433946036682423870108818030163080283494106163246593452064331742434266648034011419565246928507324791509631852688350742814287751222633127964844001251541284963585498916255057359790820602398740486345405305654293116281601238462030414659259283573399965593933306165356610049752259972571724512709336812285478826698210933880556217104339106059249678203139230832104944329892740621843731881422036591518189934143063448380329720110780863230737886079115658930536798623859090351671687868460156396218549120189418152395507154050208716092421700788005647283721332801300855092195005730181685992980019949211462982815007217342695771575600267660028292193241688784164474824182694584505599584599992951387899550873724033086962297455138782819689407802043433855779801210888587551560569831457046597937917246228350819626689724830519954091440455425799619902190765531812601944910092376030745374912715999208891231119758527252085736498894158509681707272428059218732820719945736199019573061560695359293247405041479080243599428145440384723732399402382777968834212663391914874776884863290760151505823964903402856881651313541862914526357051482384027441499410810141389593619564952433870516441216786042898836187427118979379625106224750589313723268804715789057276210970446490980235448525032711900097094404526769789287468347300819532537320986776570400372850080699437948119449037665423969070624185116936243012078598749243159291269997586065310867992206033140538979098525204921148319081631298914293877037635749460285588631662568755899938085893062625429341886916579438855230205408724043561746692904910112603645383970263239492545615694880252896667632602584788462709238716947551203435406833650633935484352557094437761151684861776196560217361467385350080704830646856470866515132891623461973835859085769277257678334713429101522692831617240891099026751995636755900330074701531782897411431785509308051603934920525302464082906801298631555032864264760694055795490132582402533757630045379877830406755252177330077024642927633607490158517479082639405503027084268888392675075301888227225049158033978646373837320920322066388807964167599591234259593396339740785823595250643123343115325896673121252056085900135782306421184459644726931320536502116246108972662295022185564000534477808736122412239180252280128210289810125845308587353478408116213349637530840269921676363511972483899541879587082850391676832806621564891013823377551596320934267467500188717262439766992651043049052948471960514476447989953526621635598350912075505980614249073109064701940028622874314133192585329992116439866363991984806536555259911335811980170689652917804365585265699063029696408415003399541946689316445383994521501503971799578694437852450501299740705935735624805857668228871384980078502325730122517187121344983341912131131797038412215125727969397326668942161534650386691990742022923376214678784850674038650557559783699456786800643943798595136518049884451594952514439137843938657697515235486520352316221583984080157158335837588703865799582587695424104296712385473700729526902077224468942838840388751080786243649878514014091121565319247948326703973790332797858223719521840799924271783536575979490567713376500021265058504640448018314080431933966163604727501697919854962480094733101415489302657652058441166185390040598854926747522449373504484327083486686626636255171069703786308197739409318599244793645797268289872421855158159817124603718259152180439232580624618168093358547679854833162517826042923251050631007773403999872467666376131918220150058164042664181214268137604159728406143095681566958598346430955595897386989096720301940129455342891583966472585819027458225557813880737319360110022341713128038723800498550926322153690733475009834569662406903611303513648293489138238396236202307986219924231455769806156026740605709906028032587602435425664754038846653962169886110485822865473023324267032945098359061628721821527197191844690507285934300128768740125056423413530212655664109991497039885579609662141308912069780283890858276801076726332967362929385226665569568200648036036765616825565497151285918706012337016128218880692109938485862389903323078450009792486920410937565116891661066217180561945874099398229312965208339183094253519807356925502626054609532153303361530310659155131885693514234894558752944971378994831745684561941894905267177904639995712602370810536485264724430797313682678423204476365136241186629465726091934395439885271495543967602453895322246684957475375989000545303998726810646036484340733707315607164771968643668298904025103473547435445041762280846218524892696601145855952812546126426810568460000909292157524105545135040203167186427787076655330268025779909894613737642584173480703713077326745447485147003273896038179661936755659831515736257593236660703724951211763324863446292683875973202715352820135034238174089983891511322154498218811962478403729292550285987071092716067734825897862719386700233808991183935739600723170449354414968543875343294795608482512682030069262465573824603720647266782694827675919470833481339789203242132974925349159520530601104730062697829036732896721838336648014428043985023599231900661288549323761517917467774818304958352390134531536620073938866912739906196486949696803271471517595629571039019314285402278227236932709369681070463043835468259064250058068349185235610730598758048421762146461018132685819982732493161559520955145534696357105541188201292692680187924258320494560270199663423062198722615505317108327879127330174903579873271332930431292365940335314273305170371756246290371658190831384015903335481447625238408843062084389467436610634909759725407193106984748493059740980946955550259012642506609233073217511936835869717477432699799784232575766203726988584239108711848009886252299976631456392718898727381342689766565244306554310662999993595733669105675676157046601936447313128889818983313158321357822821963443980158070910805033893515031321800762453803441108120095626728606880760546841598164633415916472128328535132567371195548458304870669276023260791034153269715350645646630861220736121603476254430179624006211967216696754387115643810323414706529352357274595116851990151379829236195125231259877130455039509468501104750233641077067906049402634277517736504600875523116175996628537231159641291665063848750804610262402238535121435216429574384297185107720700925980765912983937138531778950552147384249062752071996518986079873452762841305232265506118153827953555888522694213658882305498833755379582510869735112053941506088061222468561691898407585384147184588618093952097237553843513032786749808187374147811383306937114586430448209279658828303336452917715106576302894946194572230106396987203456586373333000653986807184926163694817204350965904573051541201284061340400390007070526332960965154090810303572040860940673221980832749648463620893729135188755162144036250947212772869677570844321284817306596535683518022618277717397829841754163285081681796820809836327152131692878213997017212445511616479652494336584889640683201700685463723150596711669757655162249465699331660216749629143342567564865860481416969755202456554995027638411043537218763221874283106180980898078863498474698035072187927376896626575729060364161581634977479856625837751622354814500262556689873863238641662208327399899135422527820772753682793656104239626660571325104421615012486761410298836170259401918570758069779402655561647311650544286634942661213850922015290627530582537555567895732402825337014520217584070225623837740548420763790996632416385441418199774659310042773184443328315242178777396747198736776953184543935209356896508017293144598536273261669975556426717769037022583248189727350917606616002940049894019767670242660164028512251295830553736337020292998327848831177379465535348906503921898069959182731845692869933325056877585981260680253604820546100485778925808653952877293664331077103708519945355429007850859957791903013172818693797916840289668370296835622284581496089255939328989225634182728648260764407718262699138691888199897323803451787745032440671684896922194291330439618497263864440964189705077245652877096865217600270028418239853582877963395263921144561734446071585665054876101086549733492249636235672447629854280657634788839843511026186409812524663485859715671590297729322418528304367115213659915365613126805866093041863612266274062947787068055912091920914478557260036183459141091721617671774107885513331842645280118227815728834895189664535824223199955579340616388665796287465810773578728846217481359286585186309321192660869157891425530883784885550175796168222075993426020294950579372287603194282120729395340744684783242795224662614523739805088212734803161331478855064659177453704811449582572380528920169018540289391847438697660564135577008602275594689464580146193831576519311872061982364244398904993519709141996309586898599793290402096674409187212306496544384988677015524872433302757689165868338424099432715650371162601865606478541533669631386612051515712774968245531860065454032802600180820287961442382666088808892707932416281450423385100619198888348334669538934091314533827449515924472169096418810141184741490771329648629284636166296753282600938595983178028513388068877140865707309258513967234784182339149227455514900121614584362877698490461942623496629799324304256011229501036951358658207751311173161509922485342276410969248229927122289284612211920938456124225603689104818871296598114810836009835761248378234142317192620318687044518800675744574715955321135669317703815990572953134627780680757977296264562673124344550220973203437362012415805903910204209001294450364609558012293946509668779690466523928352417852038379153643296099752629940030433065562723004363128515766929094162375052202330929234045514885035938479814563314048759950192884999625162818948234610974124005595415542413361641044417792714359596782004375717726623218720160819538566188880333675007689085006238083482965715298844906602697138878787623499650061510157149564221753994044741856674429578304855931180921220113282769738566740911076248407327315714435775163772987920674906305876069838031356651426615078381661930927057609057334270733669246069978853148859956126324195374245165908509147269419860977669843745328353991171547605158386998729230647193151002371865111070837604337254192998827015576786572998624987858264380283581547899787009633632244506629846800062474059896906573426102257349524064087732723041183368893687738387959818891943440310224213227574206372110712369802696570385362190149478000292340604141357451770797327999585367707296159273391212871478519558394669219817992407730802221134937568213461588443713981255884286624622217697385866136411830365399847883296129106021249373336708921057853169094613025863787893347022632031691189419338241370361106592685911288491777045712596456618951516043336465444281871602760926166562821450988209139468841209842818073581531515617295541748631073239596040320427627738181476233551672774122203451513855287687131611204755678965355286505843174683747063157073361700676246000347366828399999916281632781284987431228262780443673751665818944971524404207993772957536034658014496374260681039635358229855916183463746203830827988587721578900912352651936840654233577005891863371332331189406855053923069337947883591250597753064186744553851563631129847063168924641968881393725929240131506200212774651263752476770221212323543325523080793807449133860375678202302498864077361214415292983345643386679297287356211023099451678639557059026965511044126219198696573212689308580431092348479231690382493345138698326391837554480007492138625087697033904103610132868198155968605873669986278482358377180032252249706908045250739152662763282552876617147271694705001496281890978062391936720936804212705048319850665979672034339076088195406452699204477199437151049873586596686207118201690738451113541165474033128169815224290979201796338635975458741715301595697703589452817379387838764768198405188436699495221743166044723048690184343424877399489733901912926035820535464782533452570841653650123356649309331841602026780880984086429727476657598865949465536129592612526752920788940258470805120012650086227264630205322161051393361937954451957211527541557010268285464300320886553808051651216393814106720975013744663036733548145972925290249836840523504272432410850660590253554192009297208601662440003811033100080164370086314973827395870916691331612050110182061567239757152113687324984080587132037278252289280740504287975629698804636874710993364515146196401009627982860214613518429517315665523842661784158451772157767796566008968239917671487644862031466023523199253843535494146743647673906265545943981081171002343599651898426952770234465009268162872780621623496233159660840136528114779701912121148721871235209461823499420166802968743007274245085408081043108570132897356013259996979475553358442193598537196854085296142306159557938369149532363420189970560826623023181515396523012647954444258665333578746643121928695226609219917361308570191434502447912334719944804828153797510109949179517568054936451312029864546672942956415326252016008516189018932178591545875698755961374899656500161838739424420852152226109146798256082296192924107556000036455203100956400723152654331745066549448742715782071618159284735976474385956125525578239823400366170225851717248641521397621252174801856009881128331865657330432303418804535155498087196767247701052619545897901723168295593277272726697677942007256384443028639885860165707595116607680421769079965178247606289545387588617124855984001430699046058083552165105746167188912379058809829132048424826390858490682099878663452275543225488895708302532022216880455224864958418429642464462247461138017464487490587402292966030249474906893554890926575210407898853009659513221705323167108339024198345982153322653612659573886327763558889460110717935426268615800876172420199674934459530902735489639429047045065493057531313426417997714641918221445812331521445628716265941319037962187006396192255518904339027104889872619874193913413918908354439466225397184623135030628100319047927152227890264727972901415059049849729744373510170635752804642785814714007496197372752816251451723458060495969865565213131754715784642764463790366160546070779025966903283193767926094399923658663520934503346196117881120627673010970920103139945423745195819929469922445756560428095344292202101040420687258383762956966139136843007618134167832110195603846157383243042272791845293015455210740299367352727929600453941597978381217990502378194034990755874604750051276963677582755710571408495900367036463180672698065504918292864594034359868166084113332709511430801439763769522873457386824763436674191286909231387067714745542079132746186016278266324036973974507393329682973950213295495597343872409344930118468451839721641885589457851594055182394670399263200737909806978228261101488437531967742481031845810289869097170330589199272731065323364565229823338871985120990445942807503768751054719001589254411023153170695544636185726392457349966366950165580275255660106056697807549479746760766915466228610285045574011300476423547026569362103967355693342422828805661087624315454654057099973320384784121238864669981652747891296574108930306016129048498510651377996523521599637902521770297923229124999600900623934619564798306935385283262497223431912147270422949639891561417006829063313981514703796185593358121485594300786428684916709988408597221940455708529459119224518477573885884261343919777027499621320863771865583893292580024152482233404738681863817725117155676591938333701963386035372833678655864997025510179116072567006402063103342799294379250717287896270750683875332539456851539700724285133883564529699350730519858402706567234100686920683717930270059827353320032761509710368873351920550942863528725722512270218594212252367341037495589993394954153270669885808264669745589424729816283820456088595163852590431611386792177104327423848350048344265139729038170912807650027252581990705858762101426901544159761743153183785750807623759892557266750068576862049354384671710180291485458235663872251142932684536723749912407834590260624974449234654297229547025303302212035846686730091534366947022729771424921130442092263234810658814547014018077344004224630073893098835787596822427419520824081652097249127870541542786291798999832970507322367530437088636432469936229879147242643603413337730243930552280953113681097726488040355361000534005400790172218903494913513037438047116413951567090721205789916397161722521182354774289535829239725000683787060860051614624333931333613975075891181369702174260138592966601394616368034416605982673451544988386991097943366831692019684436223887450789168863380667694508162176146059997526171439789389175162887387464384920421119293897743326093759034446824803697826848124855714883708602977109210145269927464413760860017938507902471491408948942495580950887583174969143777131187039316410518926676826096223983218103610156133111200484949446216388472403886208163233098937569128843940745670691029476103084336664854521524892458254271897885648850448275431141333331623750969327018436546971890973742977096792453569686420742252953142034070338489118372903347704978574890425181964823825662781383187400681146629568274402620637792258688668525956838562659621923084240449087032626029225939175600917110611486217291004442576437372774184739274074766291543177988186857377354157433195727741109710917252292102384625197632221290355215395029437190096336880181720255674900710061762222641383006192044337075716927858625505651872198757766223116720813027658261228099873575342909659292276037476186428674748983340138966188552815899882236444093222438401625164481004915336178205580904017206697045320618083749232342015576418830702747831626740717831617733915966418927836764536341684613061782680075453302699450326644380843939505039921609738722322342604141117009574924459904287386572322207821191617193783547243439438276144104414666562670984724965668234066875184582452601680838685545692704429335643823278162221227025648465393869025887094913366768951792450259657193318354806638577574309190192392516804113943312694262971355873448815638567710625604787417351995285516505992021424665381221765797934498171373855309585229587278799816931118878353283284903620801212088760943362094888201219761759082098061543698893682016237976231322289077551174464501223922290359218059266329246435074218483873054292166943860959473575870252466958005989239061620969852175148401697228936248216647120452912859692645998402249319802730137787693659891530626413847734516337267902341541494908610576209679667981913882791534847776880604425735634795536658475557700281366997319958683250800311176290265477821082323013497808749421807135084175081442427781245758891463713347799246685443962836133890866213443198393038755490686914688140068028214384983889485147305755267132384905246280559615399135987269446248271568084654324662549005289017859645113301282973696673294074723910840573447663632469188663755844291119655212041406463364827562631686581159836921271387073645397044549838712626553816860205671991667095873908869439899522726108366042055392368878227446577554908255168598255465761703798917197250726215785180626420973005707216649858059809420895720726137370891485300208282934617943785008719336239455992718838935170708099222650048701470079980321013026208656099373032624777164448394005464951808644142347386224171679191859941600300870360635839619547952961831260358917161982524911372983357655135827701369580182664354140447883754795701308085199509978727623023016008831202324050926681626441588107598651217642715120951571439447273970192904032682832002549584228615260357691726304253841738883051684343530444681225000541093407401184825046029718376586391051658502097800039893800965668427615804689363267449872744596399278426636894067789404860763576953011727868907057011828108752462014522196880687267804641075104081067881589790986256311480332468395462062342477906115448601376487040555563034150162048397962964422104099692230454644670595378564873784746912663412431471354758102862874623320660802430169849066328041838065787956123205234987087273950025356212562492591540998234333212478584465890074776740050164587019484226942729500901142021840379976234064560845383443125767977938502636764018517676900848778481466915790976377443631631076171234091216204483726647741953868205729200906498217370038042139593002278305592479655109148995490024436245555736749919795642132884955481658585718946200260767856261599841754023907272171687044058759115848184269795136631171436926850696722670270921648189706022785451340133251897994512364260598384068420614275987408087927738191203647163789769042668067764385010590102945579168141495299658696716437611077004270073037720568214832367942108183021868623170263377622170034513984124960397281191029414828833265791355272975516513544363686185853113604339217448883717807984541412462737818962979330681228041986206551468619196704867534715807616028363483179164999372868780774623808945763314673638943417490599154123488785896157148557708695729197972130983780871617457444276205105658444099385108873591652785167481910296198021407521426094519774721408702501321277888288912056889892060592700314618002450194854041907997000567253859444422190050389636982229132660735892447380073293832919697049534484598729362681932406824713502274710255741689837479844320798614543525393792754744422605849680047925756532496322808527489885696231308049998771001500373291801221708733359923528089455416436116192107488062204687145005429521263829049206540211866553102978924024442767378302957621547715658594142951250100431207034622425407083183447629661352394658433575001014625612518469438368341016751517188922727491809711224976677379362766779836034712310980209184088653427929085349060475007438068607353855565389403583590444613401479103926205573501226300738821088816008026927190306217828150603579511692065078760577609565587020409727718144164472125569964203157210836905645428194128809080409421765380897414319408526164958114869043481026234813195162479954062373608957042180007408971958620912077157857535805489861071000469582626517189756249269253944642769692651227764866697549112091965427669347696465689092030488207067293223304366315315743187342673595923958205789859815556164659994304840816405299186729970339579145981402251406148751378628853709260661992641674483436096039794316831861607674381518996920476058099672102196074977381343273852270300411244804927904332078230506146421145491103536292634448628977007518265445577663214459251302589942796558647519186058768742394314408534521073558160582370987589772794060638663326244833375350922340516824331697652266535725957452306348444335791904129116196415621100870924871995106532593918277746520881026900833252529442696156025879628079714300159924636258950445263881415675478418242423749337533944215976311585170921831037091166365778336119193821107890366826082994812404695848003400531267168575429136922579286579604444469410541474470661240750257373169508579192183676947118341072111560823349721565900141038929833978997631346672877077913280801617987235418423904300884410811301254864768072870980367043751739493617785482887399433788648993975255971781771129739709000994249741221444066193632691371102908263528297124331518490949783116566308810161118287895937640097950844820314175471548753401094538676876334863523726158858168222561932703835011595889107569184333446195098007358080021544318855206296345973878369696453043538329425787136690129131080186295079374235431091564315278044397429839500390683539896210598295380625071449299472128805058820706984420402977810316686965012148961561904391356941350446413023654253784598067234505492198382400048951698645366013229918030848694877801581677801267565647465942765140404156293546082056425957207916817358650485870539272100463495168653484594406011779150007462317318500430174347504688893540797629800740415316041097724192167179717348357534286951642935305925257967966277108474776038780478193232769468776932667738534362323908134298260475018751405796133397966870899620509617821059104296612347431066182963260168512960492608573620843841082513211912863382110800541876295025866380210761206465302122387852068539829071424654281779046633509286901706327535914191164196117677627877752597419169473668985899871467112094775290089856864106662371443838582563317636887428559072054940949258725854134387010613229317999460043509050009205409124781532852524782257815107909614634626593013146036306272904440412522707232608874286622156256857472560707420321912255702854817526303856795709966989302904059638648243142845786176424846431823224865069858758628181118765942909991417022550857750008810089646627367988825764851829924205563293012196487091492193471957183485052683098996511099146344510159919935676814954360614727133393877865234375315215934870341377605451102396544431059209296279188385181632609163350322849090433251952732331516903675105685437090528557696072500991104396114195539284097103183797769760186212363815321271075247460159161827571347209077170561223824064493866025337000580860647399638580138438127131771259672749452423517844623872412371121052858275370585324282694423953135898485925096115852181659834494480236797459111562400770330083945825327572014552183308902910875546017863501613895180683552307045922088918473259113418248621053786075681371033685874294385898450333270308249098497127839490624406030329672116965189528884130566833620623067045303419887955294001575103727509592373500320196531441316804536319134237378313021644665377458586592125950591209585728088853178028003403917006491793568275719936463157028379739516279645683259738407949519015611080115946582383580855752481879042451104806343788576848606778340629418255669583116106189571275117438449449579648210713006058677962615073011828297491368160671807988800825687585501174572941541267724460646750726138901422125521812383982676547896646219556028002826410019105519875774339174088364343164128934609946981871185293508858595631419327863171187685292685858046832546335002960681762750378690907909915164821729544618043719122995559889676666625640752568434266981193803989036770118842898380902787757650510934370628987568122163195771251531052129556570828330376174294494531393504795224080756539408313641066674609711236846171421831587877519521753609686564430437097536956146808371877813417209575518780970795824904231739525026176663701870532290439254632362190938969788327526245939959771810153238434677432118586794908486033678542906952698990086521002807235003707737052736943365645770018187103123280688375721648686207174305083406539352689111873314516729169607241397196540143126420742387367599125238099989513168843380850564668367058996188319389941191640987320125447111833002519914767476720799243785398451110166697157824643994238777621285395546020576462360568676838163387602084845272857439189951769330429363725542123691412791764046479181896891155958811644697504506825377230824081546706461994221138446374312819311851479255891420515681631388420451817718349461771701173505257305840330536039845954909865032399231604110641106434273293516323827467168610535031514862425098625926610003798693286342814528302588959592401861616339259341656350105939304355914424107333180833571003801365536576040248638998147766257030601687287163917654682652020604999615822280752869649147639844995148166881411974121584370840641855640186517492501709591275145008008104655395829157364698406490900121988908210780214519525690139985998239430712258674013309187346349279313300401733471196946000026006804413259773013697717195913315781301982803886956414505962696183851898683907933292607759071638953877625712108403881659013593076313028850448133304099364944470723158691743491596271894545619985130035940136702490683789288876594293606748622796737250256443895391484792511325165947758204854316709899570580308224329847178659706230791215818242634248930934145866811096728766754714703873401921576226597561145156343629161663397150897247149517894628948093609266402741614817007947062130917412025590787239031303960229208616963256419216297477863157759988953660634921664943938576726537631428499725036410416231296688728933746212634523738023322667299097944610689579518458426982098421266024962937968232428306557237054092781657740898905748723209622169398310487558777228752827907961590247142712211394964862749209360438079380978439837315313479538023555953425453682453954881505691358775025974246927644797293925395431060688704325540407006581097362997180567520507316773790498790097885380555196745625405238260628886384152447780940182220951164092472270031249883861252615892211668989474053239085916745318226498274536071171347869105568854721326860156576527190216208995410181161093888748091820962016739239994166014276205944352984808874196120234429638060797952439974630793586320015756646501919528134679379530791214523838881880204802587056304877287021905751177533275365223448036837313983955369978370432842660686700058958294592798423456865292027703041800080820942105506545994659205155797597227442891135999962095689649918329765315489589979268492295749288812998788717049241111079623593297797334767998363803450406056469508919481578900318419022333738524451534735614025248222587582812232504778381577138695426118872760902533184758511221100082386598074862364726475407966660225492088377005439454742489149169230294308791136970534484263461471462265799644921615904829087428320636907406983227700239846592910068621569636577924971078341965624075917150616888392257622302172536254260316126726525639132205190322580488278530412063116390621349755759295225546607468201562233626095290960480667446190501550401239511529944054246039588142722995342394071289687550154868267913745038438171530523527049897365605507891053013157287987154422661721063843088823803654788824246622691700161424707343483889298966053147382405027816808123128299588081590271473841899614013756932292540150291265831471458341266795180893181753218081105414828163477531665002796463589838537747789797154723898642243989739043283056760694795827171466018927670273840459599197267011238663985234757241598773792391013072692524574266826119669482697713496336021565646474689711815321492199369872465527815137981367676354706676210598076014276970772826402319294574527277686811333489635126708037964331734325018736298713227364201466730405567902899364236009653910143448560716337202693854309898049277995956412627432230198409533188016662739628455609450905568499747232627084077998863786817418464136378314331044503709534908113846956843508498907531763792025338142458332559666480188293890954413792966368676879603932478469535480902454711781312669179546392854593651416727360391883685446415391038548889681407609448668941153526042142803466497607729547323679173649873345385788432436980388044897586606501145741315060870909999560874948108520966044574026761827391142100965759905718680398868076661248335215227654907984514428705331283838409866006835822109309411317179984244376705948636934926685375569578953991881933445901710162404652514366959721826182148394330398384831034892496457199119815109216622253929211395684290327876265251082605408643967504244367582216705809713581298474084124741940560091555768174097071788078114446383190630205582377828586065009135865735528379710207847423049910270078507659962243839844703258694761077487361714600800601257870691725105483266276649413385502576221102182366443607768035282091691479709404645608610842974529035430033939558106946384349359761915598188612154624105577776067248018492208278288480857129225730910016868461651441247868506614963719562817780141381544782530663788488231242114963924370268670620715678604929419009404738548979869233650967994181731360600114484335914455096544118229859273314053767047749595823949025947215253543766476594271052636745208825088840742324204184663072555506442705975664871935439009216864116639843196967253175146408076213956901466727800880972089901921798237689691073803048618390236950058941949433310572933596199729976819669273078766494488291607083440741153656834561107918283911775858048164596820921144135619011064584573892228082547476507567905189889394434956227135617688289713977041397107429795498178863234888819249628570627765614375361149886453911233084570164739900763735333335620307781037585029079318970672132796762426352459785933292145229394896233108034605998981857773168379646366455511418054656767757000693185136560405111315218959051612816331302206394579008644023742937658106570795773266751908474552526534603988266739358246418763832256436223921293250567366327517611895719142883600952403494527799970226315785280394115995508120430750555693868786613116714386239195227563890117103835783885828160703674030468992072670440829509765182620434630307005217149530204114560461830989565644502898786200923861730340880391681395398580829436379112229991654470482582026711661000061422143870488839366268270535150380533923967253853158357673138508915003063032472491886355444271891971415151130522262697413028935470957914269794385177871620675659596429996923360096820899190719744751412264918287242006676706454109208565978035185561195309005823935674622707534904451809406877148412574210941823882085971493791775916600365582973626414921330846089928568368492537018155313850102340085325148615276884047879362819392884340048477961268937048208910346098634469214007684222242676609418967415589509963487901958565493254373262499835838528780524971806337488978205686172145705639225417891800001987113542242962502711113947594829039073531106197154939841213608467156877016411307124306089028887585220671949465640738751771415743164771407008445601057601699284994647491498850987784186535757796413243116908448325903308191001105125577940577780145103338268199580677516672638431694437229530855401076153943843016396179077515820665379886347202096561989405743421812522420894544535194696843689794009822482591216300376591186775584398751770114417529439395363206712830237748019048414834513434176426525836417651080681454125573425723293630365140869636726716608096518691918537264461425888423488899052885473703240554674934239777612763968956767912519545903886085977224561584389712513978525033972920771614264867067658926057613552477932530689369444434938072829995180056541561034331673558976572001077047128561235156804122239694492261365658399998100916788352954275325322900121499863012310663709032853571754563920295417786390930786684985071550501268735043718890636706072935454309049578518028176954746836269264034946919638444352563421722342594261468959946187174174669723456502555345450303696683403254673900932873865457878468841658627236961358640543174710844599145299960375188376504986429333848465046104991718891976407339982186167964744184944495091402409298204730343302250007489854539011620508847757910152010707187102017115833197917022724446245768189449081268940192555543423572804423302319165152266933603522937164784524175282549819344248158016747105703480674951353865997942257721615484638262140508788804955051690364535896623812770423994421532684193061441005197505509553464512572726463205824252212591851760908309261714352900049221627434501801379270967091641056503094808308475395188704579598963648263661417541512705104133248515315719626387833833772782168466794644049647454351563264178586137759290864423399312976664520812096415312202168934136952106090638412235813306925043016606250064167483278372170196033680761565703630783606622296999028585645912037336656741735668579850386644660411878080659310208453841736025479164390196280503479278635514577997160365711359665498801341555063119079476041853180126180542060003939591374193499113254004138783226482350110970276344549690046163047778696924333615234936254334115051577726448947716127511907396986570068298427360295443531650045984159036172749076897683070222161520584429227093225825035766766028530227971634072894767439639808001880453008638340104750057767838156066152689729887328126346528074922916582661410202798386462488862501809222559744022074520985544208033330803363258378130560973882527348792417310189026129549583602913415061407163927306220241843964690886132220151537914636266621728292321325649945473931451995930507892214744746436229982951167272692131797407463085588793351496936944993726982096059962038567586487652600825567806769653773630468909659138877797265688018683491442078882305060850334091909799890104404911905334234488718410290058718448964202253933617106823745313854701887020222988648921760905163654220954034780266563820195578463610017468392315529840511712456425098692887223617160272588650148655697558647965337044967615226132512807427742694164482515169960572389249068075156390150724440783928000882790719731494911205441928168204267965422603290897421685150271029352856356376151865594881113388602405744281433123429715756982625436928339990592564617706140550347456627180048984626188128197067914154764149201949756848963400208547330252118840447358347811128598310351340293923565675209853059882879301065993310416727829954768710693127044500108189321036252842403099779206041862947260775154291539166193167709123746836814260146146231295569002331080637351149526183528286229157642393973721686614118384062618152033458275326816102057334934134759467238326760451576325228132850126715972100128298284804812172177345096674937927062003593929577964338889349899814298186845909676915702680452767208549944353357305549356113938368354575392477016061460367706444809575285692003058718047929542945765923452180599069417709439183498342224314952651662949007492097649566491645775042691992572184136831122505363265199436165704620492324873475101893614307533032624346132760787909013934967441045499636235668741584568262858093744219449229280985658049737912551831603046387554930487896663875427391410800741108380931363371120757712952094845427419755793019908291755904957685082371130328824089794874531590946627531931039048858357150348360292937136808224411517174771666972722031055252743721147952381971966459917229346791838225812803692371477044547789178148758071100394790843360892680277171107731454527927631997916210127872272397004512458672580446946580240380125458585086159048571753981448324481753402612269022152013990711658864713462928884755586960138744453062934675323470510280852450593600199332366383277846159014577304083472589516046607432125874315716675145667268302570838491320363388393256191382225454812819535884859382999943980267970063130260337949115487252758705425569361571316291146135183921087347408397307385273972598854138896132947167375155744926564606163313511233111424924964323167545715958222067912667059725755952187980366257195615124730503002442615057802894568229063940517406303391080505060497314676632575183499845687637506179013643236485766188529849175032084974529634264927140038412762888577547770153135107918001924036672687808243313140152990523463115214502388409214690733626248122042094159581685573974857366369342676357648612660422138802567660682421797613106121878904517003018031487580734828382181260156932098819325975511862611051844472411986466074687335450118329007118786845513266181570873010098152473009002355173253457684424341505168466197853193559778151320129162581399455050272089880170410649919676714338576058138871114492359401777477938251415090596936280396734755835557782920952744530427036000652157164502575915013981983205551393818188651595779505324959831665505955744284450683049583309343669587718139532641978164924368830451204354893564780213541451950045035881409884115483132505485276632588527154037833207263463269167745325442265081649179976017837816568884390517559068488380006976290360178436936915848368070871194607405072031115476830777304217315691321660244701435202564187078092297157462250473554005624788713878147995719773061755360321121826332189810646638626227427141053921565772317159558154171486705136345021880024194670268550980921449598231126329602116202235591876997226132260842967423785354315282936770866052137936336553774947231380531980619869980352553245381987443745605089223651322042830763259344011548843587280328411937707624270103000866664568138050454057260262161613666072459618187754275223757833141957289016165922768966522683055903667864519484935034922534465713044130475191314236645736827504695407420562025342348546666427315230375104764549029264915385999259557553578312177486295986707996175703983126232129811556112867050259385553647731322799980412235979933001225364862521445775288552006193841610561447236166302533184765042321606686910523892104734277520383186824736222307067122172336663657421659404712237503119092632421567836242003316944046630756153635288782246977644580009025624438798787286473650609619747519739862956970063800971287309452860702328597735178113297818373075751670998542918895326781278522137079684016318519636207121859785486535881407160149265350830798859384230611086209614041521247271658793237049509372418038991103092296054927425467243579227211386927541960766015044683001552220382089453885008849545479517608244797673982137823410712707541496797846643577978415023317864632144754596625213562648848615051693098217131158520359258383500477848183200286265359256669857636167321157812697322316321950990250098191008124153844401342118709724923514072402803214999852304470815062225301029559421044188199818369901704794360980603077520669204071199845976691881544952708768946029795231870356397071897525595292358844475509615379107668250709565850193192891338947065950224763191381784437766285863196171737285965461943406372366572315539491158760339593301885081237668008920767407998345817000494447590567379281511556135449315922155408942634921811361823202733878113433293852557016663575629591065806463862946570833527324169059288277541284437399166653724206373556612069486075991911381296692502998314297282792658272902225308230426793731775052817221089472675648692688246238521873213502026755508113956747645654160380945430771194776141083570610054576842379713268856422405290188052962658671573384545055237641222125849590189425696611386739202992767055880369376561743156203239573261826187382241138403526231960949445753153909939212901609899620981807727566649902399958509724529972682734560948990684263377861531162023806479572539949538587513999605007452918665886784827850471627228363009416922270405348177352259287572202323072026867044850772599065503493249385009383430742174807001162079608372210764155748680398468919308234152549818212132648326486783836145757686760497149520612952699514305425244281136342015814345943609014314220900364790511934938553946424691791703040377175611203821602574287143540598102955360393371918121355648562631762103368921812307022134527041182929795244177759784183151322477358450542726960037039559939214148238292264841634567611986673587962241288462159649341944849932672184332398661129509396881719472435713324874916642369584422109722084328408055839618362536761246035220197307924410625517364050859544772304921378979524186610845585945205265409046384950244166300127883734032511346632267448933943136804352873239521221181412610769324092341271474592006797443254151873715101512902148067306882590228201175626085612574543543897178601688886445605710168095108344154316405923530311920126539651958499476444234298043848775178745090399536722161607064898824174179004605656987824509136137028368959944567332812542573513397029243732986235175668581013894061963435595455442058661098029365451053258340808182738234878114597946492584550035008002228291405638873602161563444913906943672321132672419956496286603199604226264922814855186964867338263501062998645737280010180491666245032758360994963671444870606130654522638687538162663394087025069124660171993595551076829586069894519907612121220303290158427793414149148720536243380225206214992320184518595213702328917323520765238859023916086811169827440950582625225271145724576513140210570578757362096308307830046173883143276624139945275760416590425763102937078488390328886726203597398035507819546643114808973807687672070503250727437740457721164275694126807265191047450486702489381086893281917532854682945149148651512311400088770698175913263149240524101649424613317973216791943053843442281795379899394206783557692893908508030149911327889533732013725548618831726745714493752403867126268786835574535234734769090024580592119835955232184449611107734466803538868621592158417572524384562120967737967822686364655710982622659597538599593797962081954248147562153010679072267935277919883125700748638600921397882860024097345933467543854771462099568691402613701824267810180482183586896455533527284970204846434900782235471893294732870947507959027969913226600650542952574080851463492213137139275173737967227896832934337770040495272915332912779369121830394048668114111884663125495977797021224442727492414172933530829817235436132695116194242508544261917287433590629682038901761530413513837594931348047350583552458957990136264316529988500418161507447969106264370044687511308881611301696963438618194027162598043586712187084484569234448563831501414267007974782467186582638313353901135930231839120308182998584011181650078815846984197781222726945464391635139884268813827036123937119350121307158382177422121274687231880440452328352282218223343869651072556517645465530608382618725392564326087937700262075769342729120573825691248371661423904391371428188872877047925030769727803486641024634075716409808279162214587097683099166001599379906107385708092345420538707160354457018117577298829129791049218369670239504514099232320045845248343499242783993120480300171900970256474484215382310028143006146228027319899959610246179747920345062983966918649533075055945093286091393246451202407763150018350989383958442260662841777160844307605155625855549215098196677513333903321310161927635754348275295848371023504726102165398371643664666292401213252936621304910916934643782632208419296826221409218281341169976552859643297656324241303355249193485387924445460250581717630747976469138939758538670853054638834879552901960314442285004742289027351489790911030526369106002063052713013406334324511385748827555936034346500408635650647898257249277822171097465524411949696312839588379532987975350177297939750623439335212972636569897295469958825335995447970266383212333202986512535479899372188367639974721531254283450108380635652285570035941192511438839314349935170293878841713510083535436095027463827331257364548826743555399409374127701189389897943750387154841325000066898054494221186026343348904772525468187487848895093518929809791301610450796302136226419640210458146185753158332313499294738333604452947643080616621877694333298990542269223771443493979690062438804910305891420885631515202146475567915446311452394665215294029090837072173552273522422983060332707169210579016617451662845834835389300781614021459203777601569429792090636086424064199132266450284295778450146875072062814745943173578395545630526466620097910928506578649058522771262570876236891256571756779227604257981686522745261026327174825994845063374596357796954109879351874308443806866880202953520794693255210368107388023600338449899795482205909910187516810312412189755485503321999977231311911758598543354830515335735052212518172419910657498218935454354423981765752633082839147714400064103120680940603753782520981571903592767343254241782734141021214747048231290358391190077690204478122047652893212838822612104511989484719824617165611628753391425325810415917716448485565414705281681385782862447739134194109937727962521754925378930189688817395918350021031832406323705445438174274938845088545904553854541832840970744419473210266211787290174243084325501569507976434844470464146999100261994717317738903801332194963028915156356737711719774116520643173798451585832755435368668304222424050690930996207650222007281680997663089468285103768553085323640548882552938728126521720147755214514227079469081520013605372519479950548360442772004330468965903889291647273395921044483125417670776724812134772558926447570355707835914242306293900636148139188742997949653781108823984445411447130604844050882742573652692310712235148213936187132709488515823429620345335723085248246327710182920111808620852015990186317611841102689651278148471296645471442658042445743905264541886930964422438052486951608346624732121976876284217084596025711328054753087194866478179406755226987390692617597786946173139986262181236299204111066653068494373298006628257239391540301858694972148889778516893578537470981080372768161843707633017061874032806933270108111153218437086172476777989241605742951596923760100363889347854967570800773722812052505650053871695804499878673639133961344407570234562240266440502979191108719679316763791277261829095433452969443903241172903414911870159687325102921497993170279657930281636291714852111881956630935395251649489966120553748492633491375671151007099008117301738315279918121453414297584171689875667920928703669752307969982672127608072602537465752122816154056302745587506210092397816944842882031596881383071878984177986717881876802465130320549719755975241593802633418955609434204592802243004271337993821994807071241375332553333288356092067264037415063624743471524840595529296473411085671878046591173497080936102918795603943923985804369406889291062461636242240135711697764084669007278573177944224993292122475233779593836372029006457034941694831302771098353205979686266368329907576895040780993220701890760358517820309253277258219294788480098052712787463243943464102269241695819120938444158502412219261788222611016727144554178574407174155132942634483703615472666987028693694540219428072765101466937283084964246309836878107094902346266678405736607852791917292333842606612507571780681280919536673034770770472254873042640688272670285786686270283289551996116082708616855457771278708468168379010384174920850016175928953268789877969672186025697405783379389209548679025438620641055736365424833075275436878936738373970353446318737388628739693125235125337849349298622834233196142181966959124799301316752960085040130033991505036954851162474768366982259013118293900549342806284342772051643786657576748277790644778323271424146906518660271420015862760288142710364241896961834445831415149279467207061384436457010828976025673855786530773642187527292953787728224113953558065161986730103181522762762282958282558359032944006853902587947322643194588469992928366395614196322463310619684638569911909570643294989170305550578729220276321810151844110349246899776850613531826068674691460892782386497801917379136067720595124119010489662184371175742016637419250097501561339679680397121436133220783967147041499965867532916907457820410194536272603171886046896253694139655262705490044791381575878868633219670784402081372866267377092746697782716028131861155100215354513045407148759258685594563012708343150838009994865506531986963173080155549577752206488088501480819306228837321697999270139962780281665627195223727130649858190345122478003454115831587403110064079606051622062086679264416998342377772597375259366679618024037724419192576705080085091347225474098836446378763104598876171954273223653912913693319809382246507391948249148818377131325182230813303761783872113833986874416039864203101496162523797764893517242846120186690857611663573483459236186020322981969261327211302263157608292169431944977743682295841176964446739215723561947328833217683819847596941411915128913094465541258829032876397330463067561503679740578354599370293966977539689328263452124317059778471970041126945624144981581111033718741021578756473581931195204297446905888972337923165611202772246482712204469380284692249538104802170862160705620385273728892213293245941780425308870102174871471559980870419910140515716298652608783739490287177742159607425293632694980900234217304120702384127539529853559047060704754079022879004118208587872613167312398622850150652091674877038374435732067518704074082566483457670201685335072152273778242698079284609934990008368906169174597946303740391868776952542274280450558266764212119033684081023114509435915698951696494277111931138531550258383192373595462316916419057315574088137803708099476222705302347084940225196189826783173322946069662308107449974998940466661522241409659997765952686727998951865933021304017735542902278340204386632972423560110103363810007006035689551731596492861613529305726623812261375257110378720354046766513484565515732124023717642007568395606811346354561592956252063779187532049683824786836871440407185384478097335799019856871348496382933961130634959999597183667461428776014343681206191765819309519966819941256046132223051897296903226042760289594704018080638530749374432968697433892583915634931576630302005605616424707505110302401975939560939904813965715686087540786682167728132957324757728744260335408829899365692165954815094934386511143281965567894679450327062361987426345836746687098886287971343611528248118680674950448213450005181281687443798361895883099679920699278802677129991420957169439600728721886353989938064968060820299061481582164562495751851783192316967212657968939451437731778247290431230058373184809925585180662665824368433410110959353081128764049654869905530897667678568936435342837943964886262357955546782249411409515072534522578586800275185622344830963883396989331009614857113011239673884985533645467148390101306005872142822998604001160788680110811643544488141372288064493966371406381335916170296809675591031933863229758217912358788962346552591505093686857260663384430001909261342217478824493729651197147914060206046244436271527963210697979118951645776066018872604249879208391981049094404529960953329146603926236207794851509102335936486467135309676861193244933748533401257252191763344848165422108925284239246007209704241912842667498508182230107126686905051171528141869478915146229580269719793236066021437994675822427727134698558150873531941826499530184245491267139886887615072570010420350240815002749488800000571765885482826173131047473872228366994720086534464312978139713305255380410018487234428109630729233447864070537272999179727015518223795253240615273544625221614276047390926980811526689002276083774598324651602374014301092571481738728600447086058891681108082889985075499181219841099205381028617579334866735963645015384806001829694549134057195074988190168765898307472342792045908741945937166296460606226889942818980113632700353480421912323190121704533165332609428556284088824231231469025873220960944447662249168289054520526526443977445051954062373009905704797694200528384202777699913312241356589983637148544954480090799920674191839102982971713293481874674473416425043716976186985306091662283621290472469188438396229563378827793313247792213934422084167701682130532276851150292273118920022748791632967135183835413631117658101223088546201409559370628641342005093751080257630297435317361800333715071518415571208960295174005463124329468526759398399471553728751279058319497803549188599257793721743512799998324497018821228459801824456706375872230888679333690896991423813420718411806848246235780027919779060369081484480592501787286093361106162973658235890643070464164539748571619581629356327670794071962970840174444846836847761871666442449109945389949275702768193723575887160454187446786043116194882844214506213223804082864755824281313559918315617338634840844569940508834468513944574345947383502584487837621106951221334572795080254705118956695478386854488074541368394824328803430589749588389631348527664903272458700588426839440399680663371664434134272204488338486340681485562818879196907151233638112868865110366607079823377085965294141069570645306800837924978021804452729765722886881778734670959257578051904683779555475873667185112801337516871056041321156909215608481018024368757453979521485676784717143905086103031427551101735338056427941044483204636935753891688951092742437752239595903708343031411485824698141821083851729811880894420331817725302352863456656106364148104855499539371090759802659693805955653883183200953835063712582350003203792733415959934749725796107968017529334514869108443718392498677432914469175113310827735348321511326670052630392138803411535935689625516517965009852314482270994887496532513818375480221658537856237313016626778423539566289772543806251689435777082231402228245062722444198766456491677576309761707074574635188877242617160130667012133627987838709199549364268244228673161172822812873748748206650167635733984302294171494991933506360610404668900104548066844414881666748324848054936832905852283835273332744942794813339690183861200513529159945257070453810925779031094147741635382613709398800310135575369623453543490098052883002610454141034233747820879964256683366767076192075195332153384587743352960940664827199632480530549121293397767284457342762396906564645487311068015164033378260439858218473152239003201388357288138902718284686528941294542434216393574704382868076901116845379522449121079365052218297135852983772831409515780968572980060992258656577936052713631434581289834122369182263723213447127233683547457724345116938774157884483795520407057329712877903518574528504096779029750121903220612215775076315176713679778765358362398019171014266867295709901377123776178509621284986263603230567915580849074163810352808513224211914868031260371394767531739304511149327671702715031603981074100445640236009070608075842760561008720075113535589060060854723490076092170900407758750024874512474916171526374763952041414996364983243872582779186317383646436542829196233432059387617436825731231460992256080193849452869224015382527872816175376898783830967021389845390186200029386518442100407113249873148367970555412645048396917214819710130448093860682618882842171563283585798051330091989054696279911993093465548158004280556715654099601651842182642451038973222881897268074650126237156045821647731235757759996790025158508485743711410793201451497713839744224115740959043310003667088641880478523309628574103216308971244367277219886805413113139076965831952005289283894360515817283109857445588590185135197643056566693183028858582350921493535411336723764203333780986536427668797635216117417628233546175875266718816834894419954130382664735162658224550063328008629685150389384578071183502591658650236634450132025401609378955517098139832053212143293313380649345841850058429537151180375100460725314201004903808934431319558763909057546145881846535683456733215627051488731543154252442741650982912532839395747744415957097678212661256207905448390645317058316626481422820823021641610123267909244640003489237191098358779731436831273275176381838965804058869700602280055691393472423037736659119215457611885674777091401899088006958568789587829131088496897192441345649483664487392392845591440056532622769325614920986083051635633785748387751144768920942416246737373452739091315190737716726979343885411953529402863551156979554421640481502375979249499860221929053393787117605116087770503431176709223980919164695468571328503827984111609416387486612605492538628320727680504338375544233128077970802192418943761223578464038249697551605233151304450506887047573030072627837623816368954917942669310648117541352696771783187846614975783602934871211234048612881871570550697084824728876561731781395664974036390134824828968923374403525556024998303702145385533189696397821777789063130367810311954109568740816170853938906769020153759558124082706045053977262683419858336623823677276537266991897487115542837158886008855364984572796843587772662280852061271226831672557831920745666095629468179879650614958792435687654454775246867508295350486724980254629552086474583083655234230304352017612977934624932019283325152619280009623555416612306960071448469986302192371333012866335097161366982332666914727705296838702440807319758487650229588107431827269696449346470777188611572166695908056826973751356137961211774824112864120067891219997722657225096970616398044327072372323723450130184802209261746927114814764013463736970105644488866031048219803961678351428333914782202877043105493579151344420511431927309800877431398784595287686923199475473765610868123316826452879135224711676179155478908144003076856847533532889223991236114004639758530229742955890157751534239382555979613715921895767231026177507176127351499780577768160536609691862604977586037284495597774141933939727499869703759188844241179419049580244679209997203731414740221432511065127018217587968766556213377315314121592357253319017877640383588917129134548789696202438521377446539735502690793197924563246378238555231797355024848645120444738643469859180434359834868281367554623392588149553014332444165540021957931240697985556463025603115063771271576573023039251473811739255489580524895641181228206336212994090004223491003801307849738159418737103438199818631982170783911984614595479837799196746870408749431490109206516949743868254635948217077558080811363816727701682171810783145450078214717074407287124301855114089241849282693790879909400033245956237241155914621442352276971761132082330272463435427530188443862730121472950704359872945013181265706038411710446690610340153308504001965111398077684214558918102834144103655632651064159735368773875299596501359799464088826344654780773766107147364300327633446755419068024969714381824330112689255024973458563221363456890269781089937017325441666788590877675412563877512246850345393757471893744769287694549056674757024827610141311025064570313241457216458319151365288773225251145942299409206243773002394927929127127564196512145868587416766878000742524017641197345849262852609998506288341001232615362724071843591842249394112196880544944422265632562995384650889184924911777217101694253694879503324606365464727322898043028243398290738113495507926519227334119169044558803336098006354118820543774284137524171877945571154165082338831859468669525556339971969851428433735263021744285676027396939855762648026046501418825216534852129021214047068081932328145339428094849095254872686315455217617763408492233231951530458903682615170982163754810513503725843574453101040948071759967573621513118736597012946469575322000042219465692384608715875530845027251248817222427305068168839216528805199284546136391148372143342227035424510743276737946286551935745508657192581670148760036667845210102910049704932068515426654918132141197672221232248169575039105238909461734037298104229165901870345071738818473728305861625017765820319470758865258090820915748727067516998578162281326454839893383234687770304245212369203888057701819699980740166106163804390645931652199590693228579257971550908966398364535671363838161234344678451819319107717279954801060019239681873355305561432710295791828546535178052366113851014611452712352348354309752942848086600383369457960908411973339585931396350645405089232511257192146990679133252391922189918936225505368771078035265018769376101612165039959098197292912198621890880568675229676108152283420983591071927603682165225572715810057495175786861989360147620849709072330050418574523484776359169475154009049239885866798223815459529687555961325018219319112488860964609354053102564524908796759701403303859881209143222935398851205293378211637223764434117947053952613214973950110701024816075276683301910155857818379386064480294057747278624803058910238298081408428594653971116538415171803001888831601401355994152250413176617875649865878198031605879655558211064815665949066577358338182613678019566935717532857403784138520194245643063576696313026219159715770179804550113818540845207370407295373693438355535157766448165350681185355091082784489260285805864186431073424028980989545269738661439799268970284257258902151851650810559183934296703547311074529999551229055898959312330437529615736579065178947195866963632410055854119116097131213078842043662515123101721168470440545850305202360169099354521871874018700925424558333725786508055865212741527483184178261817655153918740121037009153505492604629289043472567807147997200890792725381434774439883190533688655427508085967912301472709924788090360585437701190184945318742632034278757385650286208747242714693762456524522908574450285822308053552601120776540938375797831900740181664530049352430875372491492144447467252223596757444862964115218883729240597145071695656120969532720183998051590428996411013018943696970507246193437300617341959628220036530518552665365260051913564464521763133105751293493780964813546031123727165461423415508466558775408051432932903198289268699901486198028030443048897385209736767929606241038427933657236189481467523954746072855380842582194552903515507091964360911193274023298045866823885326401905795318950065915215780039310111902096112655091344837165705995712576297388086426693016410834173760485206739865438793614772257992879647660656816161261883188408727168888835005139016312104025378668883678292354736142905835409593124248971770431766436073122742864234062372123549421078194777364574072850679848054293954296580293177139839072842823920068584785839012204234467054523161214897101828718366522303082142911939345866124933111011847810118458731683674008765706076222149309394407039626798356444696235497370481331273193830683427287370184805550685272888985744174100781666531577414717379411852407572682227235878208803355640944776195941198926562937047480334416569379236981247531190310389850565414252385860441598128572052122370147998927507786903667993248527909361572127726168492175862657608932313238532696145180445453465501892174295463966735268754729567242596210087099044756572786214933766021285360438731247464863922578371750351246086295621342352084029529661620425432729252868971352236698054934010760467470937755010284860442758993039969121179569936483657104334248818334589257171545801894464935265898023341554817749793309319998881685239048104205990168713048300129276869473040177644724868341663035996635142992382284443499239011838199912178103538996378192959125313545455906630173310535240602260462578017258533664301793867740204124292912983509224296036225473342657141181417506994083724960379558518587634227710085962967777112218362769726045462311937329908363025573692193427254898764828737930171038581060852761033044136393286849839380610893475447709701964925170378098990535263095644877984300082290875129579663556962709395673331183114301350083567975329388832781811691383419712772080577982350748741314070482887953912038319481653858017665797152792807152912519235393620426510644200470803861740727517864306434599954357316346487611405478167058564735816869383164271214485586380921462300681976192062282716466141760470362256818269512080853475130735387639856365841157423627621895929853727277387733855498438974375869796300737685206765688024956553379505456788882850894431108772570158756812368711843372008957268998594772301278129367355336713276034947046413380903050868170753476855453638357917574825352568963384017281308090685088702487499176377351442796051783585414355787674109977051125671841158116232852753965575911008774790055745165188238303876303803468032395565191448140924035647007646634504558965020483959975265469740376845071012444425479751035940429587763162834749438522616217234169579085381749425586274403374844793988005539194918487417103116794414438189872185149262620354683281712816391417882838319600395169897779389070581442339872895829178873879668125710935919251926686654747501587443460405295710193006188273425481890113168018822914331132217455387190164563617173658980643393210144701959079826445394311960017660863782717000472446603781096522058880898881888007079422709714588029899117995029159087486988461677754626712113095297033383743841690974148944808085975233397618411291328867153866576257884595333540578902498082624277322798879324857804409647330232122599499964311909606199683540859300003406011937303566864090193877347762493759324261458953418646700850036756250900097419695791750097973922658608126132633396592605481328105341410880217378645405669890741077986991146725188513251751992707521356380997196123379659024439186355302282225619083133787863407985488412850353676538687739858159540074894150908653609935754387366861731632826450691951028761790083701286953450530809856179965434540486361589076154637323513715390193947912099176532977419536381296615118545347886780436517214420161652950777057521907293566140092211448252186616845017191575128891896738253027987211246037593054122791904422215940809322411236184720188858558002882448239316077611701265222720504196638058081955876363752479006707083640077695940993741697239572636339215952723370793660858294212549815678270195435623758275081839125688443874379651425032610191547518999815225833202754884178661322089913211948721269190067874089255202909783690505567695389168062101783857155519008979655761427025218738313998043163119330461894031932089387707495769696215508373090058261735085977171076516718659354545148465095592990743603605240914318026694759602982024743859069707771698761152877862089029313403331488658540599424965703603685807074826015086546488984924603445675569250745023211386440222799602894264369167878029419218106892113723321989144869765123739006540143720273696384449081604455858562596092965348218965117477375798049291507026603233145291269482947066436882164555968336452238104863881138255708784829681136384619355902041948741635138162005618223819184907948372224938843373960829820090836012026642319408457056335290517104170345657638361997339608534157816489770642324409706062592653804410227181383424236264961492684551198596701724399654962784706662073204676974176192157780402655146400096322116931934205034062943253336662941421107015786775273319037948886456173215137449922280974720732833503598291983433376186255062739072755293921734362352982813435543544941796254457846894242899161308746537565448284252023550726617265961366832933788077918626428200882278212000962693837480272875369598311752940909839185376760334499218816163109843229237299720740048258528420771984104118548992392317476240852147300163300898897060493421696309173281339128023947824456715072900264938672516882561330018688214440235687013039778114222825127591759753101036232388234800269324841504429516411582904344922091478421480771669816190226167091007917274409780312312185756728343779068570030699942007703147444357602516097696382474151779620225686332859092430655266622424228961584511419440405866874662679083792325893538702973150649807516228867946204039742868796892089776297901982731163278926815275032948773835910267689264789335619585157960098045260324309651722365224044257015268538152877373262950198555702101765727895655131992575652006730693278489733230301383543726683894227051869653705954970562495933024960328137776083841563080655754510134059574010429752556427186411294574768971605388995944108601764616222012796910064317953102577730366424353040044462504430692597664385809251619121240668126506965425991753342661543708684860947556975123634221847977726334422768961996652508095932399881135265180796471144114856329309773931799010564449267852631927803172282997152451744449998075467065311684961526137885946760253552951649194488382960762530835978842745713685222531273215411387695993489493606822845536838877335830487391981348905653493950277800638661647078103492988571937094341734738543842330193065295350650718619476207128379543120027454764412346709518808858850662062164702042782638122877434836335741092838490199992540933634396607013728211729742002429056975345319022666372655334584344216390238269200743622552415096883082050835822151024123478372117724668299491186459277468953976836830951929523700423556311397976375115275985725570675209305349612062406203123940071219492704718601576836808665446883198171658902906574357028945497238477021779848505250386632645302522796741069779163779743019151311279786825245417302296881741081062879129814228746265534726769818066762104632184070365712712791582077212980604416108343881281190182146798927467386633104792636403710924351527750588301226858363025584176193242415283185411514768834186203471971643989037889555161310620739285947355897918070792688232205169578207670775007745588210360236921324809502932104236697909500168564489524341685076466184884565994094624508548025533770087572310469695434861405264858706263672578660092407765279421975441844346659318510440127893546172765520690033108624585082614246873740299156612836894842139625569067771843637898206726416010751769994356504488078509565342815684539635584303016445371926610785336183482563449548776633343754058086348992244025548800088220934475194252046607597682856254392068631485582154718377135369070449358212277876897758757359117749193087218639716241983219762221754588339001596783229341986049167791818120705730997309137550425740766712844519268314276871474600362716669174724984405373027435805349868962085266947146553249215290301436012935280288973773953699449292988694409807959562201980922302942771480828843006416805797038013978789409598625742281801422132028144193286788810971090645263840549093283267810475532119744887745126727983412916228924426836808004559434923676965115338793747275936392372800164258322620429629853722376228473150677548510399450987772261874033942992498806236876077454237282651767447207827174011730824489436912958279350089111912066736322741415757996914632082064442423112189476770431651712632942487711169166450462304708523501746794318074287682348112250923414894523876529239596250342590358830779088127434861099862479333250595908960542853451727802767226452567538949029948157120183670276966508816532171210392251569467959954064942126235884836536846979947419653496176206392416945623504432873885615106900008084105835589978589498030426651373612492229629031774468663434453895228368385681445251707973679673815391903700815064757138583726003077732067700370378836796208573471406401215398160894183298138757019483582049861302625908342524019988255865636997476805170125719579075795845502629838764954131703454384512500524584151388030675355533215681214945614689937782927555978712673422476659162855185465920387644266626882002692334102092182233321205098118880898312908752695988013765988033215671862828459088943151022810058991968446124105834985100657287819667874683025011803911695635619049012029998583595141940146626786478642893783866357169859373686900947741940064167587643569136501957246952409762908582885448014908628996436766278131562811368569153147975728131273740461977917946238151530100004529642492744507363196879757746797976062040633912788429111085218757743787128380263140366320802128457405631397153184506473637960278686687632146240265584038660969939957043339019209461784501427450638269262008288365034230243090941059550513754508818888205415397789700975096799143620916119475800171733730593674754770025080052005401195243271353399716692092947361773668886355375008548050641800659999130999437546639925369053715308029870386566246220577385063091166105601009034754964487004454352179314179630652042476671545570508043689812443839597354472999879202700291033133171392311335743920391121058216418450968088778577263368245611237603574645565344660281849183734735154812234095497471040425075804707926372999797858768184048835776252700225602880348724413301056781617071751355148745945500830154468145497645424932117748916074919677546304376880329350087395021292249587192151587428494517986565401230346008366334574298405197892357553786181172519168958802702778571083036710730182298791044080325139299777162809202192915178650586921392494420390594576645999803522810733302868922933929181151908120074174243922280175246915210278863898679919964741052466230501359568732770805956723072856083608169509114714571347741521525827708154734224108481150530901433213629335282071309884388484975600841303019218155402864170901407366171100330554353318085946532969085825418967794482080632795718704529176772045992135425348989551841196374944401506142035190909852213591291268018300252493880572557448826211439568897039340241760184522871885321957243377470125578990100072190700409943164078637300082538895792840755538074051041714658688169672733260132792113888094254678647692544389580630137540943887718899688414164084433330538705478207396299572743691507616699615611750220912890576343372073884179292859989539716717407422248062503800583641401420807437423970445451215467836515566581565211689234564260095500506686677559039436200434435851370896076497571231709141856063153023371143115359447833921659119210923738281541575728915760500494184471934142576214628636700318441469137394402346791739721398153192425598979410879145948318560948253813605104054483395034987534153276580590186189278320119057517177817711911320473696194446046450807695086987214372734528294533914547846278334053779687657537968943975836792999526347210620661763709818557207067839674868428111191854777409047075390486460496328820607145421840123258460907506401459931524629940391445987369189988863720135224723003682040041406552246252466468684506905536142672460169901980641474916604464913465508026698383281825016856308953765836201818817000900625641049581868135060124586848075918431060480583149078527485230518832521931779206263361062042769595442995354807126363136624294014696326974415976200344497231218279329218183286607633448848962731922257807880163037085432543305063348765805479310819292757320753740159179073684649549289590729605546181888487447944934983157285439254871546931543008244828840620344935048433613199810318225166530859672314875252722555542607319488033106597378507438472439166842596533268573716311372555618633340927689078573520469458461270151427251614012434948658148608544223766348026834698662719051021814604176899834511281674298652510125274187659449490949151612169551817967542027466177536878206581593176684263528470888606923859519102359127212025592564061051535851249025570269058331800237603845583434907991941982585100310735446380368241506871680319141559079044610971172781759211621317978881132472980789089396657891202501689454396657332632142552500490982469750503540085934596814025354189370588229387781302659694889234163773207149058160235840007024530034591967021405662007371686115453392372121926762776130480871662010142957473567095199601992114874415814103527921588544201935889852623797128629758320642894849217952181437562444811565479090836182981530513575186255208993636564737634494585401209095474332069135056880083349590245137659348403849689519037219202838030754314066749032528209546205123508103862240689395449934139918319624356910040644527486092699944546331426909155161606453455476228946104968697760243813031395490953953405206198288026280641989977265468684693831544540307675656573153731942027712346156196076176215287837885393271977484997660486068693232527487597817830773549241720449819781756265945204026564418403994772262053972917555571157798896004031813511972779741488619539961452650827100702427794747014356808294838691206203739143650808059251728401665669870547406119643616856229454708471830959984506139225154222352290932332723039010970626546977525828675874400214099472201937235036282025928791742604373820030821300763515458497812216607400278760531349741862816051033509579813685503191232375627185403714261765423899485693676045652920614142423318266864696257045829225265590049716872942478332150536256743743820247893151699777265767202956892224951553979789583388636033738495031652746628322101595009752908138311539522904196547039401078591333923643458815091688791305837340675515144616428264375285178150503831209440162236114217027628305052207377529406589272259047331274569500491883809053591603016068186941075907787086597292704228569589618796167330442078034181282858512359052371194403881996923093213711545983843916990182754977779411934339023980000573767287242864319028157210771977539715813205671394760066307773277336367118179251194630353032547838455361218940651529966165516348886217263694534790876093520453247713448409868026451935286942083125343573418365253971684408917741513613687045351635279399736213403351649693807237260993502755417139788856595142464688239915254089201573378549988693601615621739270322206807112739439508421973279786802474900378413117431877861877473517745212012489458902277423544571980384772222393427818800982375143610779063262142853384633394969659762604516480154705970563130257969396944490796053106409039871141472264274678144963845921567449394572020524490534856010737387719077163325530138325830311836726533430632326833448803219408270840587576666093450408574298171760294804980537797324840765318267829056258881027070389522632584804991117292483587403399807745753627471232739945663772567101778206442221803906306499153902568286548620657496884716050193822973269650874996414051559898068482861867439910510026158240387346761746717899374983820247927926880325357297523165486478599500679652214781302952460488170577132200784440268547323990938289252915253662752765348284301469763177798869221060114900412346754830834798025474805616863047653787916347763455938351097694397621241877750304775278278940252550560277726722548153751011687592159935203791753772920731597442064280011270240352756202471920630407228964770648228652971719841702391520099365749653738189536616035588309769736116386287051635899139627252864460168186323649603418658832576979343343579003544667910925987462709881575898471517172046059842123118811141048726165210279253737973842358060753539400946369481715936401580553006920663496512606116473658191991011601064881463769062195742817818616246872838168671574987736776829925457369326574271599724079416305788066535637354641970031862614604471046529886498330088686743720243335398405620642858504054437007367609533429160353745498330415491616611312102961770319609254488528209459036405582932294713694035073365724751061480799361311594864926447546861189904360461692214609657326647683896669344968814329203920862379930515098690199500491274710558085444808892856646278778372636330121228232741515591068232305618504509046810526066029068450576183289554442858543400156179112949562856503195135050487875155451512091286754982074137961261637365302119513659969204602767085269652850888031502319189494350085748811240394335674461674975196232627573545264648793534793610720129576275449650863337361496043387040451042590084882883972765775756986588758159208902852667817409927673838744982568108607233413415920347376205111463705316077124214343350397364309880995703999428930165975971082721501457379715302599023586653738070606376094480393823311329402122404845838034467267793174981584655459062177583815543050191473063033796437505057271613040505997264593116419029586974621043890354812701974491629783348341323295354818024893871023532477026951382645494869209137282896507308985690172685849209660308084128821593795651879920875724801164062641891852467342621576723283558299491811400587014105065940364592656806469930772476783807596594493697811086995220359624736471382160067804827090011904792831157769601075439940734497950972400638991271459191965635390327717719713787874874859544460090770793628956177502552185224967349143566807811396773835404927325796875540182034782343401288587342474951215864769057082328536421677479050659124120690666978479065504558321870028207655297099965886956553153775388298028114388033798595689747176755983221259177092909466672961669803707395821429948478779256031511238098441840396680534083226453309660309112829581650981097933901223626290145261527697094971207214478450256880143060259610814185359850256889182123128305862115304029479467003363267763237244396262801830914035496698807599893079536830194984777470587586541377497585189162693796592508226244927367911042646799228624216757004806708030914296733362580084261259507133855040017990730368124210593552927018256217891585774898146191044532983555743220499553394063408002252976315581869072862629911592411214414260073851765322639218194280236962981087790779505942191682225287358447686900639298727248154786234668049805437262990183720799254992271357598070628416209023267091768791130128128549924806872368934228708006009453942682502767676418529814272368118361448775025805960303815387996989480667978847031075164586182942645664675279956898811335183282626833968783384889219407545002992574855367693472259487398078023353615417943600518374379237598054280426175114167000094349996446825093823946244019447064292317916155346756192770599412358356638084468738241700788860312930445819849480232206732959682289970279728125441045235322239391040361984750009342468940057346365687435420816032393522058365748725814767324080469702559593713231124670558376317674050978790494341773200444879588473232312577883408979173872597241963660473246819849610402702259290930965107952363088978426193739958311133195889527168964327394734889301884815574226231453289414021426705629856560111802885177155869200191150299740209867672238869823833725817137894356254111386726480608406076556774677955719193398215567642411090719742012608795632147434636638389392983042235874940375953196939510756572055295094663847114892741824293257739315669555172705268153476196873232105606134902084737669546352189344364061727912569745697114338188229612405449581176520483034786398026166641686776563944278247468618450386561520107928434414207830441818483872544098404528918282898421989386559202125278599312536816288898532230415883404233902243529496585503770671438846534665642083651294898040590325401721186405152230267021474520035306544606480548726697250053550745185943981570030640816942236281599563932464999498705059065408992150459499214638467841615411674926512288062033108706604439205573358044210286490178870787879568276962281749407341493763242767127405701090336228226900265510274842858774720529983658250043662615936259256511724812254061092663714560604653382004697817877767911727933589578776174959080389565862325966079369811300276615020543957568837084156787374940694048694054675807863269068878864801566884050112795741967948450166422968189532084722423108023234535391800405700906518720398851875829469715131167214141861109499043037709939215690624406118460315552319720281253522825254223072812355761437950543941012826780649458193622821677636637041042066683962553170050154989515370402639806247770209908547924055138288019817114738948937756392290705618429732552549223744031977140059735909086776795644300586872100108701364364627908772698235798299026567077552713386085644250891519151577587120566825022953561682657474057315062359320797813009749306747681958367444081374607499942136298408870635194280156546563355963242353982891956539818258432949259796567193417414181824628113165106322460360660683489722171479891100891162829193295334909217960412238834329380867748465989461203552396544912868745466130084100632464617295730514364042639453957212467168262274524277901456775196708640678456689015090364108585600267732628007415828633471718481526643020548720898376299000641870664412217020403634999332753027126731522836033938400982199207429670640571742046267172102942380415584683332432202588505335431327069744420374057426772842395821048228243830619950829095375610220861498706727985877849274903235728190407497851395303065979818218595923578421906666837331197475770475682367797920823950586744289848908379410604478325991162784572167601907869126640664102877984888643728374222285340493136134149892020756266613367723720615111462210201104007337465621758122636202444247228071020249221418328843361875429056428183619681767537986331962017371044527460436917928895389278722895194402453320137953793514757523591263307002193154118143737186756758441745603194562590689143876486107790718064078273607662932578594342528909310115362528901116064760348686404890787840890994943090582136998217797448781538185614675118207929324687504793705695784150361513956056052685125957922516705470867765070611729712756661471943409614230673903790036570810230681123457149033824882084957728077842589587361060630382220759778472969456077060243718470334431435805534390870422864049361780810454863923502756341688702180352965276219706361808468990705839082315456690785276895052097850918942890185562346267506948571215716871982367863701936234798583817327983883347222398025246114628362368332527754120305526702517191240679135467943691010949464635945488086881695320289606752225497690727202505978595198455281535218783036442750410612966975573095134235122513031605700297765397923677282454584330790293727276376359871075063777035529870397318145700474025053273688724829780180829168379872844880703020327536906060002919890669469902415359318935407581237164553738388678553887354740024556235268263053124445634424020968980780284382446620227161550801017361891266603597055443228535365604960245139958889099236384873308636092850398429969983926633664738607899824079072311417358726552964396724702813925249488920147943230656213353378303462984112122155684153510283736954907674307328477886389238862491978394247031087831874327708835670163072171330038074954072691275087121459721793886327452595844501438355631420536854742500528497814712111225701995312534452810754915936919896927587552277917137654087143820464548963489103904628866468998680859308120789873648486774874831525855190783239590940421169262538642109627032373895243973921460059059356107904020036194316864607587581854729089719135489812558289422809220856010847540691228123765228597774927338897810398904215128607063126352638230127460276238534876653021109654576556435460655068580280728494600123636490914394932400430499940149086667203576693414447703921120962070090721133986203092454226561143956624584184484318725402693505627922145952659307210663274099144818955247949989842491283977745413507403094194720088781907972571417489163728330879616282782861902696106112973122722574499148896594374452912240948602454662195489918683426550689996235952307656521127194382460486663315680967632664936473019430927897772476598528064461664371333944339742871459226648779782777933076732198042154791922332952899072358662444191113856874253131572824390712743327418440949603269512375182197713211884397636725988730964475392899556664596494546173217251458759675598171526814379064579817217709686584261759493681224092161964819874223163749486746024406093755456493040079911895942143035866988936987228855553709924337948836456778490756700366499664207189278122783888086469004170596401086733684757245750026849172623950484619319693129774121054009027277766368055313121507177962337359621567512951354354430275955944091264867659596307366158167065359746878970370974804324807323239609568280324958505996359260682745497910139089327747960704915991689415275266807607645208905657540727677761023697317398866642911820664117826950257740530127738624901149120833641467205114640837004280161798862807039523611077699346054478891942521490820092790193379178964685568993937448847699582131927382254270693992184782116338352706598171884017519696161371095465163475799805364690999171857110354233831832360098872664217828316383807172990031221423711435249825241087312823740797466092973243116574603029193414717045855124362455065007039418178163365797903185853066264472169980846614552894389886371058974197854302870927487143073350143848870200066374825345377105113607076355402189428266768056213482533438918258009001245734724540971791505337568531597580669303513191111992884027532956947339207368353744346393840441820753693937076093093649318581192075155330118967071630477469664129612038570676361988973347314863705206804717987221762857362981429771242313839490554650839307194222511763199180920345333012546346163453340691373297525822579548882682892364253997051901438336721474298789591538312842754455944103110288381186488589748209761433748467978855993390093589255546769893924249910036447569523958999388320336236918761461555215358286706651346577308452565548504318501981112999450239253893197734228943048142970390485138391660496748246050386732093902715190849600756429067905683968254245164921433931249185499031419039025058890808542283048528751611501261951572927944681408728409946050186462815623440493985840485016543865516535824625627549137516795752109426015258557270562598276660936036792826376862719233096363512636945641331626204503883010330077715193892753796958213279365800149170912643551931387129923816033761771549760955500072721652726697186217878756661222234407934791508948680894252064895750164938661253178319186484948144812822214974507482949385785770191936466529730778052016546418851253873965390448202972406606164107235445493097720893982781777057579014790088271837148508912157315242516030679948632448425397098787828913276008022207361321813031270683712312523041391079295530639990019115393854846246620037096160641710123670034278623749798950206100829427743683669916272513454733625609837725098206197592545332164949248512728346204254513992683938957659275555098747667942832130914360844558768893351360713333485969065845251633259583326645328327458486473707144948197020865385240048957030591940270250379075703539521040659857501755160170062482452001599621976045932879337777641019137626231968878754819323560931118988779657874486614343811966466294937393999454825940920440864438211174213650395630408647987549189340150965540345840707701381446081964877227636213566723856239924445709928641089617155655582022078582927896430219701499632981058726733396691253601103902352018953540332617154799861580165660272000762527429231090369246992654568014665668780451703659142736342767219454978202317272160876306213148773375892802548704843847103833523431122686360127942115343771335453145875379977088053617927791757634716847935731365619766560545974883300261857985761862351782819685130711513058290398837760702050367268390887739439727107830131832305020336928263382570519068772383143803245586588284835547694861525872475250857316740849973066767146878100027358726814356551645253444596004486904888204057745279630993857134723257200789244175075974865921065390524651103536972664258518564527357546085477687555433550400506022161176638892830120255754710613404727312812377199907684010324668676526794448796898557009861284226538154871651584913291415613742824927551089662694590111177906830875646636803067911601548859708229728250598274372034445354646068330790550037877298589081922556816204812083834947362388832799293317483724039825634309098538605863076126844139772836622341293658001979300250820446335812830721791207232589980517980869988110453421140985638748154608438075387558053728219357829373139190087520930773489425300573445603527159275932947750217125699914406744235207911978238721691802501902780658703661746566845903556820031507950221511943422327692749289084674897507887404465324526282478687544843405808638376069460873762319486779104356676799382754676653560939375681234295846215842265536684471437898067248006506774466007437649193994240963143810999309669694793260186584453484595729140060962585027327530497248083586008091904781125222019261044576823903497244585096324425574641616531267519438903037826573487831801131990677623529741038522968952900454762585557918981155785191633797283418377663782039587428865597007179177018584950173913819096645420643528349383971303021053309893442685306565411476521559975391770680623041118082531621590998112709495803483389847828601157416000197763545314419602102923249954058915486331128575772370515719612412444794554693828626938750781443813365864385848014119822178559834223661417149736507254687868775433223558028601540053258477522068562229236685655260324243980080682227818743962613180106039735738676437273086093843622894250344467467298183133800545048979912366156236537859239822027694571709673414631326330567670164552447666526074533972762183232586461531801996228118102205530506998327748984060262849253903816801783087363564229509648406475299070169326134639016278856333439527622757018508083207538168691299521692359032808499318070670852597573541071482923128702449095052504618006186884676475529995110501801944403630536709724319842114399983150866871086081365824025808720925046149911903960061922942604351254825783914134862428625545686451626605186651213432103948941522176437172700880308432847035705974474793552991109565946697844358864486763793630933883599053312303296619999178716193260130004322348643618120421515877222864156786682014961629426741085472030485037071394210854801293500473167622622127827243249231972512396925302413777699420327336419470490368545822757317633923216991923046571252356340642026038602129007252231043483976682643601661474359725035172512267825578272129432123203688869167904181550124189769661636431035458672999285404609245212457785228909177953842329901670624778583564186259560423752986090610167523869185263490303013931569808825287816322027978263702265254065931978135036301761804229445087875016197532363555660586913270018942917235907906285626227251174935698993474259737266862853901331792213568632392737538198221267490925699709658540891042835539741684991499727026310314133196675118137937695452052209784226129995287083354916117686151766655116752725512304279643601184697636712070914914189463267350979563408039795887451703133425708034880467115384312315936016391622950834087073186799670372027998493637674348599157795251157763448794785259796171836527387267112703881100732731416299393957199847821047238636387029648965424958724662451364591118461125500030299766742383874166322483064528772681164940988080488913358681028712073701442816306957202209859725950541515156386061271416819610065314304183062386035034594457953205268036901187667495450628006571344193163242767894813432937418484068560355827478360112454752224737866284412852463037232760307993674383172247604664035113012747745853386845391356586930668723735159771077071306350813084164574208201091728458673311210675572452900168054117920309498294480157212462518676057170033657973056218969396578148665672449951548276237592386742984809313364604604490558373776293915668761004368846097149261228012732377493485695591816402243250256622454802052513916549875976958631464461894684858253274584602320641293112457054021498136469212917884750109509419588537838148742822742283095679408891641168553662370613157941912221528376032465009473354370162101468907704521088714396649660558292511892543473036240672024965156084554669128835481406950179975500601660792590007798820041157625966862779433214154600141707852177940656718045841660627052711712857501021858522114612907153690271145864314223986762724923404305001350831698746157108456646802927503544647662929039949117932610920406225853344904723432179545515443357562080330470113274725622331099610751787609828251313365039439270855394190294714301337158086800935641897437595173438492777575136053406235962194146030993064852381549164413931388663758040632720254846129014491637897917846894185921054452320711767392392648653848602840522961161866830343354973944817955665354319642891474575151330948549282414331566989914054497481013552945731574189783383664961140436507361840906877631456070387565039940261238649929790323766197003382863323412337961286220668470866068483105088843001425731590893029791098262161053899373922990508576432602352576603850274939890419720655321012104719566387769180083290942753598425169503093844538860807150044196794124970872565309613249296626949855532202426108012462317836617528742140052419338627442671052204501920435888006455193892138382880248201709079664544897784556370967016401267707435811731665310127114565454582475601625390722140617882749090282392161361129519488103887352686600218133070754672483975724665154034460991775398422518967701875745268811082218248144046931339833562583036504641857180343814682891192208228740024459180691277212225370563647738503003862779763794986665586403987748434391931882588549779333276895735012905354944494649646463889454165395187649333066278733809809325038470438630328896285135825917711853735216586936554984943815445243951106679209139549399321829421785951239040518954076034791434410538321929301516424758524936030753129039748010996759748370084907052243214819004511173388732952163649397622628659431578717762664428662629573780330538260343462626920648849672112784420645695267497735184483729333814375650955391768613889402881930379371485369836523135326448535051793293261832426434966587484166328196406354894200708720148175877549227877292382381699679013549440939895362240392420051997419690690456530886106528505649057998697377004835943720988752279345157574255542015428729148489760169027910492376705510308937914176291545863675481125317219766238739944586603795597277798219088028596114611986431574343424704348111579226459903338878731753344508358999134620623131451790545950989212859077552188452364076240956220080457986994674296779161462838439808147895889358674461628729351036404219705806656100065255111935172349908188595160609678214531399335922674127444700314295380032999855113236457945098100273402460962056334851033494548323712754483840692111522721302340594640168647665898383105853610251141543801314899263862010578389616797394043807127261581632837453566748396392756641537645648888279258034279590054506865093454618436106723291966131420624410868903790174954016955324564681652168238628760187847535620394905827435031019277163259127101879925820711450228169065622492457294725165284190430283478348545618842803128309123482274877499956459279592165863231357855190122878036915492498026136408569420755933128007134529264666416403781189018203525094098985081471596262266539330952453513743475697964298932890508456409485689903571744586308593057452865278205712339645993581991455000280583813798538233227235481483559290111806742211894502834280638825668883108229350165153824217643473625822815821866106657406641102043451323565539122297777227173587225264403544304425383101713567069824574059525652061528255522886343327827482083870561981118233111227011860576276314525938026783279725240659900754994349734552810779123102204943440964560817532586296372812502257319059461082430349702684884311633751861728171502201947073160643465289565081955493727614439780792228797602230816440494545361832731638556954301809570088275214459510306796391725990791856211772285905081222639396321308894018458381098472336800418574614937510741368375802946680733921986163321530535054941319710030957994259137871023603984746405873967687438827934880508127256398431947090730059957051386184479552879163745142789933062470603926099956737295247173582534874720405165086214317715759668648138472351322930390049445382340185918999037493398589868884409677061079565332514266598533470565176527727733843369272443592041788733133016348545499000737260061660101094748019684479321183501001579320458549393481995711721233044561749727880647890351624226389722404538946482309105934150827614414167604859845898136640499505358847681295379453285132950306321304446610745717878607636129563062195870477269924986723558446821131690714920011714372103044696104018074116326593933879753476455713334902562177041958738219140255821483626327317285005559850781516775548031558705122023621391764033810393927533293466651451001233092795940989542146520391554311913640962521815858552438388816336320138501307291393399022646275335905348611238502392310485362153959802521896866507993920278606676915099181600727521482939095977835700745346702042753450393726165774359348206548476397426812979381561587825639983427547726584801566018944269550591635973382990977224629490576616114781151216316717817789112287793580067687655993524530896014246750721199775926712389097504749103781786354076257560393597272587927028538853911646561479690050264645176667501491038877744403213679381589906668497690281572698146289739972261547141163426112374537972480751242014643781265284705751009340067703159502131924714170003306756520180551094386273288497384696262491805351809254241259797754541302466855579633041964090035738123465227780292784267386903767725054833085753881474690261763866746243859559967283893754719554354471992810131381863312422627582971531189986445585685705002439361914828942738555407886574391291340557251399329598796502499006562170337922351286705960701446021708427033152878083007815067880693427924576493845887120724048817943536457838450582635529926778733745907446672196215701641540061459267399071192509183839316292173654744029180549655493059613280869314247197832236760615667780845986197859330789947426613658350544448212223580429281746435932649946992897768805201904607639398285214490026602007663807891144468731978233830382608414233170164028130186122961906031354351125307799466307269088983457504279947345650204835421801463559419000613288939210451716116730126090195915046075778873014047154087514004736631197771571115111050696028028050718455333304444460607421174228733982902185500328951975067481044481559025425199245267282075485846868701810604181716635892633955938164201555771615681509330847570155259530675071638239605227428094561502279875831691567523626070962560180520289874276435103028667322893656942756504788643283352926758039696635549120809492573972160262525715960648062832758349007150382931710378738267923947683045740087065927170352724759792529837918338796599011094637653673425082232780557435981502749886685231896939455825713696916860709664728646085025907383789016036435237763891430871911637459432486783043419866008143087178382925974084116981540248151765361108952061984285802120425694502009304426767387957303932409720520766104597692215459977819338336103927825619631761747412860631554628169014464592595520631398475872798534245802534083261115467879135192227075707013831252163087699021218035461570059934947581334013432414623153771960922345157040395209335845708162982113184664960988063241176027872396313099905303122351420806342581675641152203280095221795016556942345301620347802573805555182869178464263841534539632634634960943094351006322032695578301776185108260428225628567279762560427856696522194914331275174885654763534843901048869428865959423981390848965775596363385089193488592424156642195872643453542239377867341590721026910322808206124208110801893170774050709790117703062636009803887035092729089638731973129009029110510653110868675388403283457073130817746992010441134319545141420961234239915396710832645367756063336399531416420633459299860196239173356231541200771029127062909264907533909750628016004862109616910232180383971262069891106530298795675419074222699661220290342470012850145257640040685426340916933856770662712633909476991398779412774736054078082054473757310124472775866498100192163390192591645539116355446399452306575811207242512049389470953518322754982436693513249265695744829874471925057633109836949968153765201372295560322820134934868739392217641581776260315130362956322834734703749827748224719633076451690407481294010518197604180200518470983107021587411836505222951182751703256982486315250277919794995924341966046463682991653499566808432447603270950287872400090536854068915032659078791863203562803693009560544114221840576750202831209711200158485706349543051025978634500972440809573563276542855857951156115230231050422663087838436428928541183726043118298261466812682688128049916281383113700852471788742684036473256124467308062917800220198738363384929494768484058989714692551536784127506113257201950891093269705934772050211873993421890866588765235712267577684521895082604171348744320904851900336086152158841891853319013513238851607850835796178350855384392889803379128746667817190879793167296443138585084976113532573402906610822038088282221604539275064016705433436515724535997380444832029668406593590309117015611885442552336499818602235807536163896979546501101916100815101164074680156392571506447462780290489062111189031343053863471789045208318069285692663591501790794176002306715386626841326934561269097419801731926630809137496884645072487937476487344813649797949076695135390577440071717327553315975337867503593666852567019127291589672287391700566220262432167438279074874383973887034474081388567601023790899825307772227388653641711322883222154057922113535276272750465137313852252269726133612154296045253496722015012737129645834973696278791939025794522644280008457613418666981656674868085053334595036725754558713660021634798127364041552631236651267379203391711372076050279492024588925940301133876988912246571272426606149542479422231144366668262980999333000511022231963297804183106988788652862530858786577709746850252029198896410044714579640613318193817108627118572518917129859105250571564385922056891381741522876469136878511315811031998375876097987177125695390306062084784921863118171977292884809863423971884975058292340981590480546009159741852509063159944838686096869639043549353056502226721959300576998920122741434353222500285252113639175366059178916853546673943734775790459086791390966773944431027861149277225445302876019744688631254906319217747079738851311396224422610285461621989943319797363772128996372070657380145325913612049233987405214685485836006113942185915754964070794088158561479054065993960952350035481211503494862723893632280348309155740952485139741511751241046579293060466602715107513655306233934989285836057330197482927010521734027985929842381850191824742324501939480587065481834694202666078247359944134933214986841036833676528775997384168950513322960695365422021699593848603730112338162263677015747546494091859325473211383867232279257965720074904647219977848264984589420992563186618703985055152957790523679182961661903750865508491433504013090440070549180151264821553959093462771988679665373727367738858067044242856881768623580968863467117001393915503804267572655799995930814018840019455578690694809120101200219308977618438864323608832350015140546185018839770956131004872050126054496312744539488628603248923235769146234900705746693580967860813294228351050958526682370330122277300357139932448726565060551330312230538979668616813933212972344315614275607211832105358459658846577802713613275887391186396877797086463184823066229250308320139545167886362049716504966334273296458299043268805568052596543435558287589669410897430151466488374121821793558606281975589840004461186454395223529378671511738194487743987149463737924512818162368748562436007617496597655923061724778290339875598251611260739398335925762047068378315992558254653535544067814848670055032962468631602001469701344072826127775559579556614869849775591910060786717031250611219666977974727642945945319525183941579511486160904381919941881789205194168115396344534829723916159142038667624427248310988948903685155718499370083274827940889993540059893917559030972321729628746642964102069903030890257116055804532468418327099581614590889694751572706235966433834612690362636111637271221721981947452669996398859880619575942368322888564064997169752682534680744499061514234899326649819905697936958824773924422745072318332518722393438395050382404726306071690094791128510597646797714980263879467990811465244534631547428321844060152258802468279300013451362143039422830398975073736839640831516894996561815677448566034397403424591331825508280807378672774917566212504110634439504542763458688401603698568619497476000095349238300732034130900183671492551863422010259463683117045140903123892790908596090906424342208044522069809245378175932077718633848913106130468530525091813870301149544367643928958491472973945830007860730124617510425707225794032209617705044120974267269500139971429770149393875917622378249637243518871689276185607439333072939687919642195685315345977107603254045317223821280389748406275345088832488687380462551124440068221304612693173625993528931804159242442511718753918334482767485777681155182743999480496215408682324495869850891595733476461945409046331280700180307576055643971882497344326857965039435694783914693696095804471860309562287239632384265149941886890470370021342145554935079297493883840459087023052427506065935703448309269204078436452057490772136485825201679292359253261542096480473938296795797079894799629465917734505928514480670523942009507285453864847452127184610883866243327622657218940316814346071257146435776283671234987553940053742197108236384878838277709016029464949740824877823915611500092916547455619950136956754787048965376148616702741702392839557554140389253046378796929152824634458152478571781391582263675673106132970347362275362713345097470732067608271705103346735552186834165855010496423526874942948788432366030826178845669220301580217398905522096645121498147438414033432874711870947016983667218445938859831891955910986503596691505596228747391451356587843979060361463530819420776584015193821454534946687588975341362557662473190740736490870146780279753216867269249044138766512316684383015539038805359713936593590210699738731170572719823692687120631028590556134708007823991454362574682399384639676375384787766766906876777019020914992566102438092311238384926495379507752005010259851185818079153937184810506003252818221169362800020668673211311412531143540956206009192394128038850337333049170300607081965647722618935822679044796408071743532435213178649391952423652308188959950265037031785812961307254008544171939159652732586234398101925022016650892249658707904052384707798794337198945896603684785599402044549900825637680360996727508098786409260254142293406932555812731253896210400189394121850805358763080681983090631645824708873649452112556925338651614443538325213757527437501437351055345161618282398233721006250751079216676528994869791167154811716043615227924444741332774123723902212511138447407882523427783957965091716934473363960103510692817013686956850352371100434598943244360064584554900594944071474188803195697696168963102168543623596076081754677729454495028860557394567522765406318642684881148549948553830344109792955611046317743090474330257949199005649251870952620167185536718142999144241959771723547340891682793100389459585733623977704579602737675712264000638886443966202047798809320596733697115857665121894315075690081550153313697503925086377675622476743411686018740690098536878641832454515159605123222424345793413228963498817803889449074585029001019218702255556936623325036819969533425517862321656189951987069199808802724233020220484291061624923245200009468526540397112278798194762559844419615933900223757914011004039971149001138416730192465915943049725887275989142882134392749036540138334974344719492624711846409509824710106162831893342360234855751878105487200506303659129798727732054226489692286894188985093980282269612604748409934797379631792089908926575917917713808522528175154525979001243136733113161146362661291928519602018961567230937158722952129252017771951758234008044976542693736273604099761393297632524605445791382058811745005430873459309018857198752841774396822829078948698843392091409386306433600208492179203639767795935042514903754160692901206596965516915371821951012660104436476849546570685217527215483721396136009326201183431393198243841542965060428664492921127698561463720440711601041063903401634873019778181742074139785496190464530146780889620642404603195825818348791589258942237438627854698852488904248399832766043340764563833485771755069432403076908255962015426421053417449142824981865611317417449938905514224567494184716151189585686361974019097895932087696120821233370991486840363607208810036405760017604909976915082695724444674718199704753782837840546745016241581144897966409989727405983020976903879676418365198438864283344622615478594997592365520932777584930117259655823742198410568016707759702608640609128885427627756716956258287319699269971144013397766483456176134904494384357446989674833741503615870913929271527200566284703890690593166897191285453351850068085291382507678304164577839763734017553817539920872790207023334971668082408518964509163799377622747740418551119339207561825101152574416574066126258214962927568163294902184788357952937653936351409058860834229753197515119874651099883607837933681433017581104665165133640006222687159941539094927347472536147150176705173044229007449266995432066391469870531971561989788157528864249641655239651576072929096338253613783686093083541813287867134160571258234040877270947483221749997425273075841449651185042209078486269158502771994067547106242508055028540757935003244014683958561224811824733674672644900706281899810159298853004675216083477190978699214900069751569593582903202205293400544449657797606427745952530722067556018650898066121634897121880709323837488853971997262894826837423550173521937922995305303122967008877410491121031666178789597548541568762100285117933979975481442235722310848385765475180892665904707481939926522757914556756709743317123655570075613779153695221095697592756730835317344410236341573819607332535872008248156728494519951056643397107032856539009564601423436374085020761983051182660447770479058957013839410133551918112505777855767576294306701640959716363486089853894864190145232136202682911264676380236429973649128856327644447986651563053712161152017612884856374193150721598971609891064549472224402555303915250917072582717850837747609502740162360844460797295017985826461816467755698732201078649720716834701352478217739993523131579774338991720548220760442131785463618066586166697914388735804141782137342807680996003344093181271177161829221081487315357509053386887094436832582132648994706039594516669094973461230009020142718427907751803313054924029729836971256793016957380567706746323935729271510034099791746027005525973803688229054921924265141505210244870159569057344908126330348558698300258106133607616290358918157716901820073915732622477915596173876482968479096691780529358159958022208091314973959594236031327375551472185191290935804874356996979497387337542710216729655581329410676751225960658550250390514565413878239527793353618743446159916989937881072173981142118991899005796000342544731550936089384705076339498806367941287922541305940156052013326117492189535074444279296373949716056985211611854091279437540939291480544285380150655423626287319253104421262966181718877831854764366240823528554047128227905881467393464537441335567403576075098763855658283576802126867247651653767897223790633943944952020664557693683366740992467392324405716115410082984987728742232076470537419628242694457941786154426805816819144749922472172999182135464122663822902874569069774875157244610742177266770128629292855790631857185477494574103045799833699306443307040675012639497256435362654473115441506658084269239867306095352569959344178107158706408604841247437183151840549983221707025945157928995711213537496877135865034755569671979186308156303119277977595303510702037598213840772920714460608808087367525891324137875399915497943898136721895596248219961928636303500063560233115649969200543543531821705821195897449807217718766447590774698882576164115845092259959144487022944825753333384290359467815266070864324315388807717915404035902093719272499679126500933738541200967394484248521649887048331365483036666175745285626944453598163640447329635639726706665516063772099978739076500437698994925073967810592582924561510943235654585033471227402276298320563598550852472519807741165600379262191490842618703946610397239545951662519130392529140011179380271093218076226946440061155580026588625567581037963181427181011329670858523270048709345335999113875436224876835983507354845538151389278995400123193746176042017811693630158532374599189490698317081697480726902381648838419782855631547264253799209368293739805401170260991630130377491165111028513329348018183449245533251042326768777830131134954980593895449355463400302301443725751362373161501230448972745981840454015839307515684419107107151529828342140536814872068325408121412657816397091499415138470726825036218532702979821343761392337808411833987430601891500957087190332682538914404002373747867790634519009329147861075151227870274288328552463625293182199802371773951712760459212687754472427828609970263994352291153225317782394639582130795924436829998876222165921671376785126159658393125433744483304292435768024749954646881003111521075216236317150246894009829139336944545647985470014478392475030248312853970693975765423085310303981535348523760466335101653659064807762312103302086283673251584633337705445339718453934281717203379855702462661652091386854577275198227156421204433710717742302056639669575958890451914452881164793253736782092851162322389787330975642959059774143827464193423288641306623660074027912638414555380081746805305284975594387494024302100124266560756416009983817842038487855136530271209414275296595866072036203419536906589259817510037962494632230191109326590695069525332002706196493452271058019775229751666433538047665306039153383630724249109382244123908373937175861964302354676967023103491123058449525470886988517947026008722544347697871913546243235214249937449294711425562234980846540258248850340092692950402126171393376812697991424959466624010067443715696778781254546265141170460587182230241559052923791514999886434582804713046369655837973802446769571611673562498849498048164049305590140195150705671508873782261575374922758176098248816639110511549187718199790047518932119675182566968303124071057760302080756720482777186718535479680756536120477854984826511650137571496779298338415067407901831871490914511447949164947552717873606132299127343895987208993417070687139908365669490420461131367175162348599209784095100180193531881300671722505383323735114709211705136668081313994534616475993072271830559322373919461463815861503788367570756010025359513684399577936007112375906581621813191801923289372747484545919443360061771993201664032561902447966803126214130926226247278298422208619553960993727308018627787410009286390769473796513271643623031353578503580617623049590629412544383238050665121698337984985739571612457872073424968907650576885894994416867952945202820818285044318603231928589671296245599136571342501934656882358142903520814406250861669103474643576036079300561228609409245931881165513587676330696649350400689790680796867157818599072906636073318767107331661939424479987099804989472454773066517211003712852070117986626607863913163300870585703694377230638639879035068077308818367496914341049336858516680373706348772213616051086861756794496626511747779048591323398869449543584566423355535287124328445592259920307577254000488538137208087846924800074728593415587169865973017584609835664335872753365405577505886887088122241462935329285892406826449963622848562300996938637121445232221461865093740504786548919826868141280782892974432540168305172393654014037416745474455687817372036889148661514847396926567474271306002727185434018504749602240780547497560459903015448471203921275030818409283941839657622098918146178582657330719573547493269846931284297499379376578986255917627458632410955017915689217073823418096538406505993704085938364291420573959116688069943997940066491281871818838400348428655294478971891172278097576629813030990154008488499198667061110550098987014460896140679348108244159469861989727855910734734965909374239885354002915729985800387592462087928412182908557620340354581339829197551264408977815618684200852385908058333146388074545303456312128834393297425313208505341688800918120709429704681997872527610974086668870551732877965456010346562936959980404683699311242820615693786787266260717584881648278517370534229330268971649254076636422383987441702042869947833787612280312678836561122717744558883737533502109823975519324307456751293406675309990176604655905511643414290781647562083063683007240440116419800074407746472445855557419249948490974422951427489616642470622071654264389991427992642604315525890915509484254111286469470325637886132635101600886838614287595999517220612382942707152921930922056614393275384678962021459479109290958837641187339886208377869925427821133531324173954468687954714390855601184472419205730878013902553432788645909726163893530849016982532693661731056971950065170432072061962998542884737125855069435375928303141340614735441089248806589534741335659697530140644007700145692990860715742131158349610692045834819158384996074215739311217476794714572975901916205443459715325659638617599371497302735750916834957451153867251948828179197170352051889595245752537025315064642546005383376518394815908969375555316455864511065793994468502746878914149294973643677829549119792500640343764068299186331086188387866315488709344384136039668553353851303970529148107339830650827611720399879103561145971253175532640193201726355628646358355396244095918156475892269406029438957433813469580676949541314759594621043742287232817976061923718893708866958830464569965745376647165927960292282204988045925834391177187927017919200083890119133463937989553215091438545356733864932449202874678316844508629642712556404726221966597253756341609671513628055359853751491649015022632305915728903209980437483765558154905451205442727018404867923420377607047788769961190229348480283586459927666901524657104816063286823458909636879434864605170221261140423423441736328245271881333949296971766592875639877209445492581482130050151984794153448277000710329787465104337554966751396404795560312298304782863950427547339290242920324918093819174320057727729016159408162857307665872005244313084733815198910814164620987071229409226710217657455357241557677829793931437180648087725551785548247067741922041044344350022424001955940009912645002014345025749085277784330633708650667704282800116558630504840340891781420441154007558559504886614857146543113427054003764339825661716536218997980635971526745287410708638248961205109877035917411024711115493872497284389122726314202980677094473215812516170630712556821512760562784220859983450724695043496190439143670146581966672781582556763128868365534220411035112970388715088519492879281745016646228636094705393650514003179526580989769900615053244654495493984279006036591785201043461698901152709384516210932141214510539913112128169860413749195661480226246611055840245561014166119302632271971364461212971840427163397427532981897596384774694213033602779950348831835171127722639918519535352540549913836516987349035168090093054246290951998778220595336565657160693726497943765777866220638857513498523320963258063335390088437992807061036574722674189448542226736483256946835279754904919603938148611944567277595050178395158728835536162369889218991349297425361591899355237278709263050979890526681816414892106053696186980983366651577997878305847941084649003174980600312782511841041122697152625297089565499969604326393656053349026677310646082843019893382734473147503861863732695428531923744322176731579196443253729989284577614220679146291419026754930089347663351642597602862275866412108204657626787211021625297745384721335180335722818972825658355588836558193116155384443728217983125229761115849532227846175727173601833012366316147180226655639610629179233358783833505574598131958043181267962694322049720068442173861579941977061949786632542781945632921032345620963140691670841507882713582259456540835735126868749953110621417187004417136032824935683442489600815828371092039711909751978599029121666796690748218975550401058696791252233920199056274463533387850350081695192359982127563715534812285710501211505829681776496793186690271400011849627487524801738777335454183753715555254923935613264219764892359832530241247464435832082413590452498994015506424623641149607415480789934946840050727128827193663762714887069780695126188223183688869718229806446614595366436654424023032775027762401769098156738426132980414916892451269928346953261706228734801046614626834673388831096085682904413539772846124319074607627884428948998269871870943359726505012408377987440214251666336010301834437138134490538734092922140686286542392578796574919196437742995255227912673054938574562624122404203345154113833035482973100487073559970889907637537960339606579813404259308825350656506833132681377179288656349729869695747980722276007221144597164170034699147078168616374851872771092761880477051422267799160895588958745310078736866296649896208974360713088523525578354705900175024625168471513870264205110117100592259650797833112788253810954554552326678220108216026855449592474889340753771724062106730856059953448657528470783134648371714438886436918590652972770364273520656195330372949030805999515452269873298510335126148336081323951540979049586041427698860856364658683925119952312983151631859773086769743158360748189520728447892048328420193174507337576929641690132836449680942558724486343161619780052005471272116212098901036532288687672425874093077885069617473277351220054758890037997424417248817385663917275337412704814669336630145476715124473089864196636664208087629969543075146290268960736472025622855435813273697925936653285659633509504937624474178472122880638597437752055788291743892696657558182638515091161961254204877622301377999894866830058492029543274182899563442103780728836523614430649025962656307580151236218306527870662579157708871010338379957719410699089616553242751656443316725112304195014060093846922909790723591190145599371731287652622499339395316788261366745386467771806416679993812863655768549101696491985350514772759937842030452322925505159570972995621328842013651582659846745377637116962440131845613290919489785408359372918700219271282462413216323016679569612301507651466899546284025946934539189404839087296805407355270392085391831516023603522188048324171517543360708094205254374924815539525266421425700486378326058703867389926662943242027379704279641770761156089504636186196696055583637442512965269822119752939869989839391361905136927345308151810038292802576694484197555909949674834866526251577810865326247976978285110686059902490376042315998946563858860396017661267987258368232639919337518333907226975065790833101281362413955544600095543845411899036938209369709217841948636160450817690319083804944077819095288029793564743162436934656111396803116111075796243392589445182596886689822056354001565977582125656476023663840789270975828887994097193681847789133532865626539595598752086835831227798621967497293665875071463342691785260645383680427934305755632152486803275070287483521413535052728696497164730836940864933563715412385605493951419700255852503240269691208297314736191508798212367345271535552942224629954466476743148241727453071822560006525567155587939174176894339748248497300322727847031626090046127914974424749386372426487040440400640687366461664701946496072647498893987478824923063644891698066888315614687185422894067211980846903039960060118899009564559947707956534727003103479205034906545208965472156222004645671829223691745596493590714750119538612281890942955502311492173164221469485191463936750542523330483918535984404969640183179309711588723154400076763434557535722643287798996082334970729686366397394489510926850816735007413406221317786195332886740569315115076222921185591182921871205548433525948042841833643316818748244002842794024081150393340178498744083056118371066026009405038537480926619903520138874562633220669022863916354694704335252923015336577911202422410816986431991683211536377463967071073393660030792700902186292058461125226431409590390273610629326050011747862596280098475006927097770193282372466688145462432140444639669625335834441897173100732804543278429389613349440406198888198078064201065712163167761789577974563682586380356190058748389412869804719796736472081161641816647193602261512305516875080693100109127132940520129976488883973972861103269924697726363523715740036128397377444892498243583798530022809086234867117084462105948631093681619234880020097812732506819178507953427344905770632899862475862919287555937138683298907636517010403806210915899638736721567652281310550011148655211475631068689393074897612788995717971785924860303492378035020612687703473704787467577103438051059720868681812423821310833204476070513928790748155982814666576601081008467638068790881141053805227620936923430052591604525569855492294619435622010371591151908337109537337285721021689567493429973119860330972635558170235884648702375406842278912646352894936756670460587436602295999657954934144521032026153695397377924267568302968437207200316423543904799813244235533308940568959274146162811075523148880813674414152495255692323070040718021815182178430891641763717853918266376679511892475102359059619588453004448693085918696164287535687533280977808465558255561188755126894121969307531835108403789931557981338384837079843987628543982029759936763841236850878545974632308679780525402817599517238287708056502856176756943097691639441413110958381063278574486073012642954549623401413214811656216053113197023082749346563136683210635835607895939322406908848381297446722255205595601162213878535559274978455271400272205040736144515056636118059498595474559734331775581495776778518646513640180484126733997239810561875130921483510048185059040463143279854515574344230059377412130136648232235962956929462800352219622963288628165489932724027171638663788717015868115749022541648650260414097735295656193715687752487986838613117770619459466190686479873539402981487644670723154872519121460643019810824827112998017995719869830631296664501945896207586874205282576609988134236579393553870732300893807541058286487075252555612936856828829329570620843184443246206136644206554422207057231607094231916922912487878070548446365071223073214373449988877944325735951229616735454763826516809668523313754057953593178446037989290299286557192684507254236604199208935964371945379896464167769339390680551629724299731503068922278755208276590439889251336096660314235258182089232696332264059610818001044296373664347309850535417813219473386984810159086843619559423298069741102986923691709471140847754668862542588139303958025956504195928067009530558991203133952060811267188611616812634381662998023841876723704256255343154968065586608462099895024981031622195329308418637345124155280965392269130596375011791222055964950350510476493148517420560683450949721636289712227539683879464341585388602456146814114273368866853511717521015320383658339733174433117720524957552956261823710861638391920376257310779395824935897452228255235852451432248452453717735730553026601059003260945860393066088173053603973395668072208894983100873432662657669680523619368332214175530192621578982631338255291451772966373504950088603580927414127623024361782857726335522441816712979375139082910516171300028438980143934814230518340163103975197768785493004432167031207640875372954749375581842443135354808610090906374925831043873284385795925177193613455440878281723329644537652557889627139539666637731146877054266308964990385974459111573474567040811918543054890041989457532986653351602626666818656137684793005607753108783157320965482493504553303376821924022023927472807372622005623054402612379891837021650867882030100865963086762644943360903500952879697139705133836035533663198765014775834493294795067154028866001035223812583228757868377356214614850949525857185997933098032973239127428325154151846959131460100796220599352596757046862955238479076691357982216953275423824559557332147420157361585005574139801481897399072651086185665682112209776012793491719789758352094012161694303851916871872490709218832435940650066463289704022806627134791936333487252409828364357865193480719400380315519240495306373179581536991467796167186563665245466849011541082224016155465430158308223459494394230861128062417350292219915312787211868132557719916619892354098720188220064165299155272077084965948322739672300637635616452721860331363284058003242280780021685247453385616786388697996471927394245800924275030935921741568792005175670791189807817189034302891531110584699756495197392868263266416751475611750977543788453633692986572598382158262709579549518558504222722283355846562542429929573364663168453500489091471972776725087677532203599665764187719641093813706058678539259566613949745510135574441164369006556653176311320813846403379222646357889773047011671653815765848870391279940542154310977182165095687148623093301597762508356153546551393679696080110377618423490204563180230143615766753511716504817229806313598962047504892197256247437204225151188619794985356906903608820185658715581213082901061055980619183334342587835811656271741320925860191146674751949004648690610722802895094466143204370914029563740229611647939666965757463661395471015850432272678019748499536573129181053257295748723899979271853555591767654541898279414828625061448649979329021136263278517297216234060640256680803092734241810421023762237843640652103790922041807834136692960946686706729360529805495107415889467793117680407056942562375331803985753745628058609003157819141498977350323341364098368854537657936992177136569572056218806841653992066149855217318242427633944660538699582567769170133064300116030195182583372405519897430333203333190582002361493674742903026269789148919652269732464918038812667718336400626279999592285479583313714708412397566413862018935160295938630150325419256472655447879352472493879028501452261868456599505078204430423077363956530813158278925442701567702212490677242883807815318230126664651796280705074890364905237478376901000886353625055622992388490384056578648102636623757098148477479486280642912692043651446338015409416225260795647508751229143339970084374017185716311637937837658627234072420619515921635922596541168793725124422091089510259673297818025112084990474641583653196564407551879420385659843030852125839477481599135758858240663088780579826529157597827716319668860379225152589469208367409585826867603486085813635997471424166518109990985089946704203634267196149228355760880605802379927183402678509604830974758824745766184786115822482823556368834540014365123525635276433891573374193670343716924562346064955724841481386404722256623849622812737301789838911796474244099970072534663607506199054864819816594260625876650495024433521635042048212046011758236047539273374990898503224053522164265856911806832526316278050196343898860391440399715000137702478388154094004551354115535969103956313154258919732234644737589286103736192885125504334078207926278579703346969870759914861150166310438730907766549052716403357715295532943950813369122588264500561092122332944665425249854595863454825639332148677425074048200748860693421881638569916306992298653547952906816088676503227086561376654483524174023959010738479168429911823942894812915590734800140364513667977215956322858261983575266984238879359409266034120718614191323485427439038681952891477905814483707777971653398703966744634959424349374737402001191398266986943562705920748103287412571171133712803783476165349202887715963528649022139157782911120617179747007121702945160525753915618317118368408693166730820161620349405345499887015466465836370346360001147837460072065612445790841271686158943780618796422821746595103848292350882811686453126295893446194736029358293759112453568171249857916111376837962339666638912353777923928301395552129900962984137340797399578471523292233748744891186689188341237054392230288419475663521102204678451724366517434014573455618132250911283608281359609971559169437618576612601233361783119156449252652010127582885885353081330351967101967084036106444219288441493152149208323334345758482022083142935751026229537068650355436116914356306010489725791464782350444200288580756641024157297031862851709681006236964224620011392714858995774801294890226452092930351398569306919473257631112342943559927213001292307247647771821468726864007072535034820476610817752541151457999493821957973665320010883607028695412398052088336065903033898007312677046020981395868009457871703757957232463742003518424670940421536377933943227978875287334594357180337014648659642783065637108536915403721609287747610078358699399482818811188851508663843231548263105391335800682104972205766468913167630812331928367696096784254683118223099935511357361804575471691089918158752265960446571327963920026933809147360288839646105393512141406944138954841085711460234080149644171137716571257137343530714875466491763387904488920620898009332626760547246127956598592440899668873001697966972532566713720002649800143864492863589901241840378086378829750450716023843608576805101967178969089315128395726403453935583243281315144583392981865237035157800495064650891994777549909623450313623480041998170861562326846894578941181204949950674712749302827613453917954513881171625359925391543372318171365509636055704763731351086559235251765830446031592517018604031441561547024921050186879599858312859529019663053249120136642694556064234464512964653415997738125875146914354988512610726422789412728496218752295018479879300913279978971708682257946231486164098703345338413450056971907416799817276204811805987666893114463458626814869137975710068241197443512871240736158239680419627753046521755330923244993445079270399627685320667620658175290728529423065838644593590093672583632509640894660282497225467902591548221240474756517230251371228051513396822139837845536608574345869143394524714198017937184302086565723445625483238424725668163778089544120653386085323471971022386055944057366181433267594420655191515902856951531081529994815338232949893793052718137298290129786166960778375445469371318470526083837232391780663309499183836546257122982307651577178467274786521210302008430185277867940629807646506166376444520210505072008619240167536132906130991202113488639978980614779733168514146228747060710868249594164698367776895306797214342855120040970441863276387785222530598962473668610557011050774465662548273885449945422769628057942022428433167633566411234769543572079179871086209890267790113196477837143458303649049276978950980782174263284947259461882738150691696360932256953415150554264588162630861202063339366456778143888277037528088825041786315923290491346843289025828895827366267857261063258736305307771943977569196822424174013191084296111307720346189631856710191780915651796330457134971826457449348828763760543132877882370115400223104093054278478594056482554373808426794531727511702722660727621449600996897350787707252356986898745309536137486923397917431233311534254154993285004319076793049262550079949022255717958868150727278359538858960208769342584064762857855456239127486080992663199244867861377787232603795357849059165253838590691670485049675036623810241468323737955947004218757495937095291147951692280159571666830604579086747805634551901270107735546379424206722491685130713883020846172691820124859286185768984856088970081187057798601541139500224473444165467464091526349048373884710920901715244697456173951919201361292421869363682781953590961172492857734104760546208547606809021760086357541250171634883163108018221214759862579664488158449992396947031577365340655444585860768443412886909839688421074219111179416770317480275579252250353904898844750116672630886052875220498477206508565500672650687234029923965036571608877377177119105341038842705685457749108292993065537761208019065704377183483640898224963719474666489127124181695415028300539155162277623684730452548308733492287956188892765322072939133219505246154712278353874957077038630377470813041885436625448559014389595985758789924162211447354068546176147789814365907487863387422256992778210761390617332368854892642309014324868905939336975636684056411237276446189326043799282806235114613274317603228157739770500073329113865690803518808492608310745165776142587404627109004970225269332877961075488917194271356044062381332102175465079048011845074616537683039181043733518630442856293400255590093274799069057672758599691278063550785981389197326127913597168034015717711426427321263106580893441563223891155595592032704282167263259663886922494261959485121495058216284422267555143828772038227850774205792974682222872555465467756457734327109353809430892178381534523626377587070858079348036875967910937504409578192600199586267794412620237082819001052589336643542126550647706274024521912489771526978974516117509936771390116813357356422369974229587165718786059769959875332873183017997652302545349214638365966850397101917224491137559080638019200363510915310895208031495776645437289260275809989863388184813658290065329305143859189927481391681003361693990360573952865497754846095799696118882988209415923611026771625165232599822272241465069532023381426165212790304453715352692878562726004816424578700603811272679587863574922716388833067712015771415786280127727349784158517267998626003178942508486730977180700460099439058437410374789850930283705770886361521483557699122207348300376836348496196112514214446210019167226608780264617814984800716869134415255383076513302886452271777229564166526213765276423057269251631897874973552961148896581934577275150699131736875209809263060812348621601348709482706477219803831449289410415660211606848233567996701379417577252232417011010556839168563532246066505464454263903057328889343046092394193720143203744285702123051081371426111430964059620571360624873411818088108647897147296194123577870940932100572942279648029145409365816196036242934263448835715108316299017570254119091573854389323341641793207822605785980533785863218367969371501177543676098264897247165169531815715259647237042792685074005257878770190870039708299749449940992703505971567981113309529517476593064321263119599506097062834874958085990415467781774835640021155598910050403197443026808617381845697696291756676168198415813792411580775910528408147156578437697905793177829817064369689100344771550034847413035156863528581070721994241740532305457283875486014356740616528674133310076045627689487456277084288151230798343077460553667777511084163659751960805212893618482480148643301833065174442432356129655308469713053067447699052932571869395454792123379011850519743856188267006899653583223940048938206360197305001879706021473347969299873901663722652989302588012846896265701113933808949406969019693066303030436368319642215478609513146226700920014133640257469339260713654144108924419003667120697610024635566041051444741159212364157021438861295785332701890366632078967970189431568157577413598342912001759187727181558359496911981955896309221550581947241545895570108073246379699806114652947621520003188803115751117413528255256021709783619177479463017475011234240116147227300206671339532766837323632654028609632548569256944500538729396466037861686435524085694987916945025990551502449986267607577399905855363588898055182256689895792710967484791788078463759156676642340716781633323278556576286387026804429045857222834196189225684921730460671155815115907198637190729751455051314258051172714579432426771766441028161636392537747305489173257273129168451927839495489244748435101442483797709679560103787565458447262863007263952336072133017202957560301583411870851166413468273866686391630147891957857336693924563488276083344041374365497811259297054809761288846723227324523419919607419219820932302676122568387097789056945309648757337121998349684405541910096738832078766424858356640388394076868394242594665700855157933272949050343514350975553244436214823127332332385498151234612386919585297283206833788259215809774163560999480665843026451202590386965582260238213205654056491742724260413949477887052733546893180984649108756528463118764345841027926674618076188648756467096464934272285058298103162356593154428442988636275824755265638069563571799160026766789301549591078244575282830854692823027180474906938837280096555518774213918740356427682149462917546424480003620664015460251517072525236043669060370336384977460310505012101648199410087007779225712375617780774105831228122041821407376350419809066576408671477468229862940452514309350377616465106505839246252847275750190468740410495147583174065795053493379643087977314248517585978347705410018523858706394250387932064608692651184476576273297973088600465221987036431867401447070075890755346818808735159943975635840448730406281262719223513390094541349091657146638116860977341896355362645206937100550269580613500548377607651104531469106985961129113054584949567997517584381532190451481348019018925828591269299630399691669879046535527458634747074346170860624600824596624313076014135753360973297146142050416220818857542314074854426193539357408562693337766053523228349889437080966716450260269026209878283319549930424920666259067149558969177115479645480348298394972118165248644238943424867680266615814136249505872707444184906519487296348577936181313482725522879935052874955037169983954150881955950811646820662411196219219112032481575609383471007703624160343407493743384874000446292571954558554694747019471986634704451910176784887521789172833917119514035616659471530900720562148163681910736885863826788349015106872589855055043555703407608515371054200090746211324253655324228136539759559221205264170453568154343480887980157493821226155196585606978319974347495415946935614268595868345994389956675302131829403169779801646780263009931969807518049171310881673325505896696012889601883726612577303236608028186273397619606782665085052363648823598838222295642675133777811705643404333320870025883395403564786140991294308069439558296156056671687066740156424096632348392309189916906995716781428563165032365696972445625264658929208582036843553600694401752821667924212665176345753068695536742360193421743279788167463115144115072885914637155817214324110367347636788879886932363234041996769033576598514411278803406239559794299143460011499713766021548303834246675483907218419198659009966087043141908144600506928135717783937791626930030279108314311240459432636509835260454260608831308363574893978650224118489438591559365959211382837640256741330765125955641828529683980855495580944365055854304499388175248860089671420321529291836915683638145142080742080673434000928722115317627815539011230092557042035686392590648708852625947216618440619198212091875497885957501183402590822584738504432204225290302741897932404285466944046207674794770857897386810080940058925871231039874390412547598265029941706938335230213245497688386561188591585426137723540505567273754290470744407174608986218416690543737496339739859709191962460703794490458910853746230667443844777613162719765146369804056342076690396036170328261791969523549332533379771845736513729914647269826512914165809433373931417448883789220167837836354983459426412931469273849163264845019999079567662962396009278330824335785636958103617210592836746537077471923603376352128090779308460178472621766103637333543334659172417612863816224468649367427426277324208026266111200454172467926198520702106700714455673962650557294546784738129589781164368669048377009208212480339924590766821136539338048826162186908250270472957472635633980765235618092368192848839338729602655890732389863052860094081038557601782637956661369707378387865684822692843138493950693844232973186016803854483953286688839272821564163749158607300501407613514987370044329798497818064238948863950668267721134377913078811576301892642288138680674248841047000193322610667205568740167182699783666622735350634514075287502976357896429935439613525705097860248231380904298702671444707389122993085901957099231714334276387872831987894972973607324633140146793461162698603949543115035843837783664466720923460790831403776311171554284468502560408778661225900861874591923800514086913037008347644998502577105664523157386704768874948938537471856833270514255258767354676335422587031550283296035777094921670667816262518630610290358942157449499775177994173913340294671998830897039356590873728064724877100731897770742310952649067916756324341537574997556497146765464260030351458287564735792088235905869075342954282321096637687816748646089024820766684285785647592546076548377051795952988641472621467190966699532997794001710884614514146925639916033872254692201978340441464345560903612776295896803597969148204714916157956460287884865987353091782189387882275211010784774384448764267069610889702503626844403496325207647271453315926012079669357614438363941609545222183180376350269308520211775721857982702760787288929860528401674598568200702180394213511200355704888446847281148793367385177477458868814863635665714351299644353615453364988592884808008078190363921799618890916238843411672479785971685866856009773821045691150801914210717348318604208961155236360482435995210994754226543592699720862500773322405568779699716678986170963541556535267337136897420646480036427138176406175894762536719172771277929914365868552348782407481639846833219761896835386463422368551775525936547727661691485412832115948205035764439823638911714750518684296857090561394748409126147256504783543841019766927048705189751368358600150708857299377680480038389388875962926135682217869145698748274853290573859881669954707019120872894242581304976168152318970027536237849430770547681184268938258133137084000289825769586065689586193130627648868218234312230796270501408244278344221328206506195570464229162464656471866734843708988408666668804117570627794168172826618871840551935874852688001507035703806066331628803154378324044692081835190579884587937883861796219155386816986382745022910321047065316210979723787937766130393411712153359549666035731239023458065860374390826795762201316831301441332330479160940438109262555427874997011461777116034391174253061099833753894397615080062549582401857266200968644266731904894127923397021518135575438211478456376509129151840321097298001587795242201471657868683591824607865527588740453282301629563323167745832573422442123535913298303128835443320032273992745370751639509879011221696302696460633031153127639995685021987466443212964547319019494018891074362520707129726409257042365037773175116342335009710793622553083360814618465304093304483297340362705316565826201541434669768106261689692503790804931610001759975934994072359413822924682749641326545027046214596352162952710022423708435731311547741259353973988157458293140021871666432393859322996853156264019024723219917564431187442874567564574348652120699081403320170271858241807200419503610172579506235720821580025182383265595861630597601158302643827405693013310705122028096439995813137126024146473990950622602439305046725834780600592568645038386138717712451682517621600563528146594271205086869853421800841220416800365773750240873780301701033009863458371780577300733150362718762001254924968742405922640743856305145392482688797315669043868228817059782939716801765524543317571905518557838907733096828644288905417189569669372302318620582775853140718849246816428001921008905168861225030527849469836663884376994842293560187945978146804413561836482335590370955601279389805464168371244473183521704787953648022431920707259339559346469815710053756139106767462345159155051705383832820921572084039525968921025534564470760381955071913222962386097426802909182156201391995907576422345777852226022386690012500026829143251596672944722249071205812343761074298542221824432417090291861925525203102649472974293067130199276365121283460073456514937725297717657195218729664381272982443640711168190423406753887109352780132293752677523300560761786444128804910903993389366692672294339707505309493039278862026726455780367368104064763072059962774807834138387002856830971833905270731427994965576469048056844114592091065831183686034840951307614883913950738941593398307330675855530502748067381702807021454899972842350711116300496119685313507931947225995558651588593588824749138074774468452176623179012735092554819446007210171944036629623021848412608400312962951315529076089937053174211757625448008258070817980400225962362734037104886868113454632368831502007253237071120485066751316751515016035517173154227479764548175699069174443880773224785564664113258983915714231427313410127651093590725402775664257433988623142787745481018064230923119321508170841762914634647020448671146041515158582170297877339946306614463526313108262308425722243893304468399120751373813068611792479942784248701376420233872453480728500093892119670346489325319595367818189550608327249076103867971496305023962147231803219273446357095889206214461213751085051633415256226999100264679724217835972681621392068173576334163138845308647781813856883250245911355432762856657934110176561284389656729699265927531630042718643758401861678767368301784014459302952398858779049981425625051494854938940036952657055421298496220124555097569350381623117645309018290852773856374754828390591085950718152324019833200360679730578687930010873364070679443482668122989043811863637163644169431964256981779810755742451337798159916957551317102023939032945385209254423589207052646555495045120790193143965273330542827248550594033183137381808095802419535648989908713680885494951741816031164027028344618339695190211740126098008983427177925036325218539179316506380641802831051369661064564436260780727207539413088330902688567616333550259738623382076345231611556017551887866411314720402837303903930077524832290076189770400764364560058786046655460677172202311372588933536653138807570602345294409208766520197460186633283304550029117065792991624919837081184572862736401719805873809276806777081644221445055324722030827997908201527515806399198852855588178112459861825168754214384309488051532555541684657868529603982542967369300288128983445138607465006804058050807562784622310998930552629402480879541636789030005905136170206911490972038238374957549632201762259849994021101752797690580536492318085039946423428257890561836437890210803269970742557411309652783659324493480266551648427083697276000007932146386548175393441185762820509388042290341901884942356786677782281686288439370939359498867485369405845300831300509428741303690379011440365552179778247257593786719682891920570352099739602244559091710649906994946155793370057205858558065177385074842357304893100735567435493170195355658406706670302580385686938619847168023505475690489872661298789050925087372157828683493305966258023314583635168115760168359257038225485538251731832954256095582978788249994908467510310575539524189884633047508741758049051529680504634679964166061389128468058505341987121217135026462002751323501281207973978247281715591807312413654708699149037886364449039128587521055263939625208102872012353058093675722601372719418085022891302493117383923925571859359395570890945626605626837435913488979023219771648630673084574098647018243293890036217480732567969868003273800855680809690350755265057438189086470375760345273870466433953225935520439772473263040313051385001615364073867285247409575812524848503252865101603472264036396952069534464935349195196057376289582675200398764352064165605345618921241894746895027345077697600160340761700656511672868664664100531630638871197359557346421740372087632454359239175566805231727414125842745559076019521478329678237724815048352933767878069641236847099752247396290613444430845931508483971669552807627246379855318729790163541809752014755508069036036541337341237864581424974882657983467306887849496576061079121897657291891879442033855866651792469949272675535174891214465888146370960972569909176897974018750636049591590784197612173527374361513466969466179859341548630978150455084029129418350092048647295716195840836768526545506782545605190383338544628746098168847803810902315177085500604327797774299794751872418671214970840846471045049042036773682166608661244239348814013907463207295149396594199594800219894866444994841213215322945290102347990760853021040045331551139345261589238613985160970119061707194520543512627612763166726460821640683628823124495078140994899369723504240345349261493719823285209235260821327665500932083247326063400975625243046576860869479475801908490075801608491121421100350495532162781553035227681470977663154218386472410163567571607479937900515416001682754593565495996664819859527669267570535254130369960577930050087284540686303242919089357619958719194426995538475273074245019900892797119329236747018505094282555674459943899219833778144399782888061249260808580547390886649749791242351511716813049790450718222101656048603255882671657399970010371937521049862179050252593835101028761311317607775229737227488846537718513393513083598231234637974091068923113884510920825406333070669862900829250832429492876709121928351574719452776628038544177174259127173054602261695888181680354972657414257778339740423471989893832317645908508204247548104093992781899283734991832553792568064886886534563300953121447111701324910890408093009660828409987234103492380676211827818728206615605629477629788612943405560326761135836635446252920808116172195579619890208957735922627774821324323754800951729373392832259188091234249226656391620839567175828816718546045496961921440369660951646449162631906649774785227807498573699787768730299122806295385893499620872342336943670315751403916968604299001596991493796306511653907805743132662194012677094033558357041622433668051473045643409886040860811208714414449292022541369625541590020177079219503261841616312635925462637250548736489857770587192993642725682005485946701025588739239226177948944751475427714705655184530479443142091630044030249568361289657331657134547570633077172198609327154952377005117753126925052697276561491849955552874520064376641126596538549980734156358740139740807432346429114113383057102016467377953478108590204011463596462571699453373984025300554664106723506517987110992710422430441322045567702272162757266223388622684943604525373995811016573164283959030001795696871777455243014973001225221433455231031316951061419358621253435000180170183529144395185269652358151177602383489864766496107550634387608558908908907861021437771679587226129813698299034895309277746396838630564523693895075419494746791669680403706635181652183197700335142099864569596576283353485785132017650974914614010675990101451317030247794172896642047776194275665317880904799193233512441153164842640754694914741760884206387075346905752928787372491581646818047629326646341051586081116852857446750855595062163581823989326688439581507990447099693329210028811672305878175676959307173791544626804317993608514533634895378208167158552263950623582548579533925880423780197554928125155790230805030779104070503162273139568658215293755243826954529145443649253935772105127990778118768898260137557611168808620707651411761556206752553657749861665710154820280935760332852160441692909619657896432662355431917771640142624511664433687453218694352230727163386730326269508836260379165114737555334413837351949380971139293586431851243760737236755873304121284364270972471638636643387334416303535123037112875198765183636809501991586560074777933574118651395245814243661156339496232996648451460193324191169213155198776431734660026473888774759115890651720947649815015517579897293923094043284481094080027852888532230392236267335888422001753563186757859114772139522417087984076169287420932438208079331941992409862612934160733985722006205199174701510160832122191803173356177855961289732093267468608347183708976130128889729673040950364459119772106951445988238511339129650042476219071602957204167944444896855235188374695338162477511823332128667133813477647615320604035575738017860812382390794055122215702718354073985702691332459187444137423459560727485058252524209093388819463436541719662930141132853754068355445897870482671344811927158218460427002083002303629095964029826613943069749672444002179195868945082961067376497945807326752289869894401856808327340547100973773695447944010056895626569862370211596555831621525337380437619144519704282269452517629497856295312425890623131806688403186492099331830217681837141773678540685961714595100446055650030408067568699795328541928956205711259612538157124105272468777187707842306094520912505409400095634840180796643408643401432283293056116774307307906516622504251008967487332143997618124292225742114659889507909096423424383609250563088692143446145072099709601949798982502333811876059186460429586298389589213505135048550962473151193729220365797114422703386664990341075891916005744136898753155261220940362443936643143236000451667639221541937027491257995921205859255185844665776915719841740644733836826121578874806031081374361136130304578229407288983918135560788058721528353351514913983598468042405971261225658342562427443250725332893571029393381617238359405600717248319260021346168748589613357238445190284627560852868669990503699540434655799010749783676126087161893835411497552390879771679096128641722368755564650343421170227127654971566099874161093175153288173049011143923617882729746608133404387744562542838693800683285555238565054043404938632084520178512652667917129382080399330411233266020300433258171506059885430052388935484704974115384586850947193520906844012960009404156247823626166291369628798165692025817016383021967828980143738155595842260989632791224566013696976462725038425168041646494786110166760830127481866856177225939496043837458367893425844587991921283421029564133236399670096703533359617725543634409662122125750665516255779461006445848019721313688765613956624970556111741557374878842779918853284546195263503780447204065859755433200822320068611304192557329519692392873001144528529018513067336934719024134573793719814418003999367468608905466302754987441792443055371197551690354737355122864765239883905107320226188598451795102736042533847142393768654170674538776095470370507281956234246975269730730640648500238436453591360151559174271832298775650211297745371138537483426546547854330484714553588540218063756635166230619662541505960626614876244190467693437287302532714367624322163777612008353593222830464643278742345337583314093620411033259958829226966850355948679869891526641483615702372751697840936634064099463277420262967499134127875856521884268768056748015942443423446957740081003401473978868381812782401480235139483434143071450428684489124859473878995424699316582667905645549104721322462483591978380047524740648974718611061574654612790199950185253160413176476485449712790012380613126548209385820598764545870718680942953697398182238159768139261255818880323418744028533994211411269927742529286027930308177227401769617396458167850981220828427224073837955544603678514154686665929043509240661866508099987295948065902370055277814616275621814291854069210932152881274344350022792654471255665199151652399254273787674947101059681679669535924905304544344868268689633923192946986693294375483653244665166011651318077083814656403994523429654753476011264241620419762237555768757536141823790558139735157154681866952635576006419379395381030595794809821530731340636341964006990526645474411803176258672792286054053882390240180402160319788717426152896061743571543476937318541374115184364121043060335920583594297720087837836023222592206706206658106925793338793426011265720834870263254671175986065353740799845945053035154409473769073423495772224722724127522957503228681311739764964244211611003779072144404115997533268903927759966092872599201418414336214743500297227511247609955001334564797523177778522680803966672779464084194932025191476986806440996825939434057633869684228960885058682240696938953056856060530802749297511191511690782197699629451287158108880711134949565271781639241594966624862549792882756322940964543856940836167610284372653727675471478710891420261766344233879508046906664559540866222745345558103224745638086618482873362117855269428517441565786029069496951679381411415467660238754453860989824843055713108513423270326982150031593305141408219243180940445911216811256058528377691425010297489136802868862589842717956094475606967410850580316713413833265967390064018961742485175114651584918005930141204021302310326687061686243659804877333033366196452997430702721528299501432300868719825014990790938262688019814102179228692911179353532682966610910038152649015236669432719324624506378117828917275477236825696523245416729050510897354831998627825370679700064456408681737341155908357986349597229547712547856411313514744213878374016639056029393976520274756452767911906627306694889423088563335682277544412413144197992185125486390308592843181662681500084296495284324918980518348352037674381799817099914065961127434701921514893857338376544912750149199447397718514687872502734280957491612851229889278175549936021734488166735469189595148329122221721542237029872842056200769088728500213900996006364839604989947075772283739379029343646378312327920655963817799263594513006391238212171336271512456549903886731485555060648630872894398269592032975727862991382038524761049849378536732535165013566296476330220717739760754146878634590336999520993427892507328460668248041570885619437801517495890462340426746890694934425814594231712497115455477198082642888457691171856257638333761582605346240851873271388715129446758422708522292206845307030579645631085946411924732667101711790803147733700969627367753927212147156236152524121706685014015062386993868418609588509039227699502832353948197359808881728411776424979172498205189859506898104112588907693673042785492373861059100806880254958051325917407565553308569169281321243597415831731196836186704747872571739638916147966125344051074645572688127295312616846777023495658059080993723706242322517943742833122999813866941734746376211292913524321288045077330672339499489600051880694364322246322274604760759214830434160547313435024583941331732140515718995292624791519184723703429280359972723437527891835596975464775594215301639556699895680606531486554992320291094300698891796952144334526302675644358722452612170272299700069719089628057539410820884242474479947355070002384920984106824990705605882083180391188994760839017681263430007609317043879046269312547299282642471024381772005201510401698968825840929310391840056753196086147238828971548741315636750017876528012924272947065872825431170524263265289596545833738464205286664138816953186571824546589850965212850652304267326021854409572329031809004716480537490292176041073456016672034336703590587521256561585434017893603865977083461439673415438431351749975829833695395476341020496311711546135471772451808523748095797423139982894707824739394488571756249405609951515212604206780633567978437141909805571712738717391077425110827453344262080099619940064402147492868818096543082601709774703225844757010396655637782473579174052982748168763960218380562814721076792060376128412524560035744168446872005668520369407721343189036562781046331467812844313334687736244829801434530995439521547790380898443591027401181983028198481276873470008476654105104334822645140480371770296919066855242346234436393619236622513362058849127709251540489368947260060750391232846876011258449729135689639257447829998954008848349535657893544619638058974933216568690369420806176178464473646475244442762834789001586827991204855306534400632678862799053653976859795370567029610622763939159139213408775233303881194457590869212138059480913137436058101612599821340794795465307742216903867991486399663535271565519089421687075828672632991320320532299992845475350939301049538127394286581018115744253037142932270708863628822174079735627712734917996105399929876979696324534081671794106320530161243140782535332904756768792691821007000225543405389339489479955637364117283740117875620546809328469396105764492492731527962649416232041377919521275305620876720014641629693868903988483884851461704618237979171089493197570327421559369176157752999750799843424940102281119152305511720729922549655660625382045007678495669844907539021864028676095429865232818188131817777987906000913980941198554372603229023676925832171903096544561446253144309649696569085378045238780130965795535979120878800589038484641927211354169077925515697350188381547545036421205347241501868501240683983473800933421646596596918597168438784274358986559004067218206344905885350864938697322073308502747520901798391357205471114663168437765974380357015994002656736269216027738447848599974714764400296250220666601476040186430103879338176477044903358483363473425526345520975342071020540466651409117556787914863581062079627129603227339186487605465309471919918976031113240242871953170573269829461271928827536646338323942259717974254952976958245285303486479264534074287122046225858988685451254727772836869180297858988811574918061270684378732918490101993153689131651034865876036874783468812055698922643533052912670724310478657309255797746860681773920149972461718274415285973191045488971766505107232946514870078917571635956472573680229670342732635250239752388301825582157677051219047152162911651120531676596124605466122224510012073390638747136218640656883322311235779069490617762291338942667852221575357552504123168419696619009033785165664129870103582463313701507786407613014057154833584448699757309794451540665994400546296323187167950563993242722916362153482430188839740168793819629948463813678582381434409756521972110722296711098771601187353322745178367527835105846850833207726210693777543770627631264846942798232885346374809748450577075291143895646390927370675214892555904753193808961053398573278655262894263698400390166075653444713415044511839351804424424782024955093116310327783703208455479484242006553655789718069752349342076097374577998494630556918186570686274610362377693025313435589324372672839394404911981158294530855569983839379763682243376793843465982624077916972037823029879330900370310248119022331550344466213370973455326358966039852016171290631226860515836971293604836836600210226962848912355834876761071241586103335500017676899814968791368247105819710968887781015730816456809280190467969723922560447208425787742929460558003235725203154293212626726706932632585610785355675725885180395271366157980599104679690389469059331086441810142693142249093134281779614851880467904583860513969040863772193210856013551765435718872673271226970532443459766014356103516003561722518482178681688465927962826759643205253285381626860231211156445970240481361499370235425291626003971970693681529252465661521738825161816434546358955240869764161270278419484738925608578750096941540537430455636492458970811839960809879632831698461025663826111402558700781588401331853040959976118292624845612536218912366795380131653541589363002235871014242855443349563506328042738072791961583273841015065673391008032603793290901877430377036426961980212161440878962866122386969905628547739064384789767097933293182585423175787827515051937027750929845962912889331294423597475872552131281611611313384877929789037759910432946659383582375445276734530743402527918578775165200554520237199804205960188433230373046981558321649412128765435729569839312633082282173124676622147793603971694928016390541890746679393971890810906293092017104952810591896448800154137188412360007021337639384382002213573136946647475484675156227951186672042923863264047110604516703581739391300560293402841434795578064317387773067962445252910908129249368399248388458834473920955290519244716619589350022298957396880143292525482029599806073318295443221413999054553075673961711924677385157629341613314219475497867316591225183946118002522899599971542319191954146681280115587888275557372954104736392017019303912796279495722065731382610975056188579538497476629437481565345868339729462650673444536623600746104568797704044216139637343488254546273365154371849307815896671803982886162411009122452937135094879851828523221831899671745012780674206810280498194783273496377893544429877077529795121779184216113699628401014088061923502969356654104136059240092617726292632725870111827606766717039459000110920423907158331273393461653610559745069241858030401987089585489775576402975018325657733493753260364967555488915803816787121240453100185302910695062492997364617947476285420584986867040833763502628562108431011410112182162732199378853222453045812817608194771966429818151418396154189976746728703522385949276206940580664399921666513266987998874072347386254088810338749473893340206088385424614212802801527953550031160845762364428002848120442078465341878568702921206695798330757252924270997670052358366137300573125176284385812989075557356519682464325955395193196604801933874642362650695978863495701408718764150412682981343453780743921236665068345263212358830741863700769867352262962383143744713877054446252034850760105469677061089977595602807985431398177992614095194772785944611524173567809828970250433637295729369034388991478742937871032151867730026325587244046390894309192828723104838625893726683754800892589711602852480935214809936864570730436881072842321530996025846476142325628277231091201404862087466830523462787946324955236654668098772095658620922222888038722484001415082192926627319031984930804842250130358831019138448023076345194346996212940910787984502525197412821075280701913255110879091504981254978152857599384959390213928473901551386034861706347598046686072311617795625879921822817386928174990978849563256186281565875033331397608044104966700802252069642152318588176435369724404357362365885627721119372914830994077265024785746725244296650216641270254465119331932174999298128202084634261860855735355798360356363990295342983553871057554226437625627634483689904438933280300104617263453061657607308087518999522377149134783233692631983277017282701136872803522635166690072755532636220811001571093913260527751845182854517345085228428665892336447039976072428786621724677328063615989245330516394653613069274396182005052069388353581918813312524855283135187376177365007541881879141173636055361456965109317666027176403776931042137092514623727150686822669853282541582476159849142093496944004136101891837024141536097243340988724283763876109685813560873124114819353812997398011016377673140724060520989875507327253170256818726293106215682025834733644576624793837940021367151802617271988051002772273505911113588738612642980637924664605024713872052489610550340925586690465260979131658118018329082329437804662782995793703017970498454989372103876346917034321458734519968113364775884060529946578593455828937117979474211191240848732986787644688316437070947266981603516902693518095509129312605335678402558948316513670560528786020747996829792078495724460765090174446408505438660639763950699125329036868811983080660125642177910629216238128663322216265861694251353636601383859484431863257316531902463414752993414370407730159376616338977842554607604741518408416445820951712768751323692600102641570070859187897155135885987236447229147374559689550111856940698508899344618891846674061358803199821487910069627468166897931469968888305057543961344254621497603896554220450900622893525046268725153815262359848909235544025017079949404943634738744677487510615456096778389529243199414700837772379766207297173784433431975525799983896735257800116080432610567270396431092298421325571248171909416220337540480636466224353133512881971870085240506029578253918829410369338802537469833234391064285801507288316196465352596504913651936989974545757331985402822752229014509656541089055391753987812895069146154121566305211074216874629118395612664779698427646163006381830529041378677530112158898132343542016602290877434138583544007834306767017475586489055379071599010547604761080570212004997302476423069862682008099063664287603178268812070778924226887327638959945866368037139060358439494183559417040385831685562987785151428548028616005746200941950430235459067467164030249885442822064589155157190696784138080197086946392792791879999874368779226844677255681023262569712710519825074873897564794072478013604571918789723983888281642182521122001501481891259541446304547575358837183325471683215507917357478509144469301794976602779944745475778092598699571690774811738325852533259604639103492707198066657583935580032383063132067048997149135791369398161761558779347742424706292422111966130068357177530936499220019948988079989981056959588453322078540602150216294993686594873913067140905406524139589611004160498189231354044938566401221709804917214803886980902024920132394517817592731599749792182514445164766096111164910063994355005695210906475413772246384358455931486179354717821510478987820978597927668144764850646970904582858298407517580137627181101116638681860668346949711211247717481454334155988013421617156490147100701103196554839094128032008558324654442496652881994130700796380456885257481073929291711697482822890671124328882606039820812619983716149908264588027711355992971204408906691281353029792910206459976116809755113459567906366876962870659436465495517069227118587283218344928178860382689244181534922327425180621966144270252806001598591330614531650491552444342939262136846852572980379465403456690980904800479235839654426680142467586928372734438366269954472970105945043347450644609781426674227475645069070161489778123900091414976280982976086820193682669956010123957461880648480191339950491827156366760596023568185203787818609256270868971914452946718539800180164574768781853309007814016531332564389367650115890159689246943149404735207803418814614623954794151130623511997515899098304655881996930945746779005989968136160821363732273504360953321441603187163495666406056877075112318979625337305571290364304431569431908046967947448634168151902705271066475860144509565129371154869674525220927103661104564711973322033580437774746485564285118461899085430636911378288416647399125890681411782656303757153154984233914161794977763688283478662824925751887039847826660615005559553980824607736912121506180503071358315908288486384922678350157498312687258932808511744161689854671893711187509821879984854821259018585840328384145584161593169555741874110827385450730943338665800004812993952417260827756927449943028975166314530212115092997757564341953421622619313831586479670488989037216945042491926693962929640900770135930273198576578416825928502975816233728390839870470671430655612611896416886321328233734380281873012297710722330196365898125753360239205546723566668802276817759339951937011515038495328946384489839553534154089216977516638669020367735512377979336753546887309921421306644130357205357944377876160972800625522885927313807174062435693420733666028547348629860610459463304942657998680515963796886141284542404441181730619003876320171200948555333585344939545361434417968479827251684869535895866576031519726461199868188235342704225837736556663953783446038033037922653516995181078748796467543670647477018681276967523394254560251041741888042007707044814107314769847260041783937238211416453599431755963892148310972832088077190586843862718642285169427895445260502370772710507182962247100949548268431364856350681023668717090929095291585945950391066695675657112122453592475719020418240819792618983454305102949655691204795228811230097332662684766851601778856454616644263813011952526954816693148824276442794324323000064923290842951998538597396327714724630275605053508556769428833332728820196838585262280364768821078405810661650228907683918441799022927243168000452517462457100350849759709159947157756775904347189307904383103690628185833610367091673391838090559153043290058768363459159150312112840788502055951976362711667877394419178776578496870511307683787224121800574046004549529571057323357602898248185623495787013274385325825855820736552116599112397033041608272892378948925272148786198513801085489717576060769537056029082686926283770929315983911167246820292998168044158340556118474292295907419241899914202378398996475166681602308833147023727316243568780152690262010742532294025014700112283292407422809102402762404714072316275653151597646164111656052208062370293826084586760297252587210342587141499746293521034768087315205331785419697535772160338235435370143153771406501456703977986294020305218931666098433837577516747963050029629724761217850640819297829383028314082068404243635070226404480906968808914186581539782694400904962674226121067652621247882235199601308542093058356552311221850554443593383038284875412452218113784983315944838492831778540525613738079759274808963313338552359647200583344732187335648307334602445230218407271457032524266588263823802720755393658510893572841537086238283713747759786225463453312876300432436231588352204682706354941234174812946321360410630022052970237716157139408005233107276577517856057413190387402709643234542871021588659980684215446038349109834524261374997698425134249541002358377328365681736147274317833461497398469611721502006909465425841402270188062850214307991848154070491025166569732914395809310018795874821422598183620405365464541564850303690478471362825546181189151589997917078721358537457630200432985341763363772396167975771308480196207472821901613976749643207954763380245346357485945521492435857492722700480304814822076381840370374411954651801363435688412367779542131924653212966499219039467838556492391976103559105614799500398814015669080786858333048261007212556228170867975036530601092437427070723614794265298154561862418424053451666346785959888968381370454488732327144734113813946590409856809456440209908094270098610428836512550937354967645903805932966329048214999571817040365505416696185911157861614552615833616714920639813987802563976987118294917663691282619201489199268667313838047295812473370553759885115751907648120991407684936184985458182229066431935544754554424428681788062997879342987417959187678733906560823960248892709564051035288942503797544938791363342431852666653814944188584210171691209733968809540168763566017217494776614295025640015030716719714545162647474459831701646167494714730324646800232656131865402026407188809272610386269405951521393082451704427628173874480099776446271236271582446272992929904447149730806714621970635737348465874196365409436287127953188211221994634676481607446727198979422340204204946439843667347662688124003131710001584381862310691686614446322188365584911242800893502380113186213541816363399028475995638213771128483533896500069074308079256513117832109456285815391383489895044497060828731450884350652362261978204664739739909682107656118781412894117291048660397292524240663323439250983430959638570495247139180853549474717912047775782979622107179668378318656122633237149110384450889979402044643142822520562220724901635853742551269386223086890695286368863907583261016776294535726740058590317424453723732094703929187308373041617230317589646700038845976157547206000103916187197398668259874287455217578619171415118396300995913427045796160333285843691957515053281940002031138800873571948075720837368124368627842028301666867712739929376059339202151124767569077512088693264822094979529963284857543545403949471039475574730969536002469948540310854968731896698595586421038989431252547588612271621317108491944420893799448846980356890241644789627662204398452033640173583594190277145643303061275689945018868974449580956740048491509060388379110163580335535551721520918683068345289508926012091710561584170867191610303647578360985676578995123698787230501639100877308435609750534788032449119163681559420681838053376858050497159623141865147145658143465944987241625389957517956606036345723238439435394392288432972492016305460556909978229297068399570449148492117813178139959449112611354428402469681336681817122302194552149872188835987148145951974049457418767858121025893418943595061147333174022704768506075617833084149576286751589135331729572438419563209255970794502224120853829261083169916131426804807294047104866917497275066835310380104963254215203712222869772672942434026815667828314495766457687920331423782299357555656457034014855320284989122954257628674370164803859278663128771098295049832651276863916643445029739993072661637393400198335086782827843360743950367219825201206133997982696573675626106036802467701628332689983160123764658167914163452685028010073016218879831909917727726402913456459840704037777169435473073219753729166473036111663145588435871326585429594777894336214071782757843555763161955246408760048392251765102544428923959292753123084457442058573211537282481005238239649788791521310046247821997976119511220644690212787989201280861219743312922892572111746093252984824654363721074824160040498506297231191057354269164640844858678307703034519970765520408308998756466585113890830354230110387732756571385008671195606300753658838886141763534984192363199019957777990021257126319813444260908115778800517913233812089157319608434145539832772181934597309450624880372138495353922332989505392669672317778781207998010762722514000305913019248940671064908366744299136848586861552216976303161953111190992916836187248761618581211980377887862035534689391710866122015087291328942602043453802221131278638666948662134749361957840511542447822127026303328524952642995271901554764294765347013268045877364187610936735298749452998365154433720570519141450124853589293677785912945524597467738562931989660935339480994966954703908000648301617742335716698634527659872929793595755051886500010402534599929516313690773077057275962764454541012378585396487915499025436877090584016723485333390813686047949537790941584433310369205569527939922386532777662596661673265198364450375706963876448083421849610315281410132701775808627176621407595769357406725226620922763194695234645004753302530152203308760000848365544930865579933813553391081472384088671049137986170529377550999761803559642243168982063462518267487562811988198272602226582722780166634508139777516653023457081015153935393532058460276851995792629588191158974560379620944247749123349854498218819658570833706734249035508187059413254104998263759177708418488606599539762908060215824033898373507592108390787531725760330607005384633963045371953426536084175463403610084580556773103836746991568512135979130552827396002232342928777996772785513108387114826744163186441060007845881687060475112091479577653948254621955540459329651026521885674833489080857116453416284615928292023176825666938346684814376572961780097015046803250839361603810924713218084412343216564545780297100342430498710420668311561537242787045924280171315210005693856383641476002148654784226158129431783035534991624968795059219629214177776477858977362690745483862248706477647085576917895005077984437007424186677972267438812292020401299916521214295384589249042294509820094277650219268841933352701235349114303212975068288735250936039778218665126866978773448229263011266297047958037871199026593238385226759504171741449019727546894906993858972275878698921396260871577416400196677892941162491995333894035327296254541404151954842316177988864090411800424947584741021414954311830806560960263103533311064179457862995902274042899094624240249845527703797252588741095419125770267026904521824800400886739293408729012308881394428046963398078694059113492768003606909577520715658708649225852269312274449733534479758504685630169887631636893498817443665605459056838125663442493342900737844904080169376642819345334792632098733789200593269002680890522595821064942074705911390086679537283725085297039603384845223379856453476997786990655357954261644157586572397991242341878926262745506975747505294200019294359426220908244398701019325139280518566588652398954485331883084864602999564214695214104301825037566546647086717383897671830003060783637080531939124575078355691188440365344287012709545968163073555190047025626381193546391625772194013666547314228090823633587510145380775090235132015213943257424042426626210874104351144160757172016194724940685052814525374938280805765829680346441990294762703521218414686691602417020918284774489556389366247944275407353875184122823946027365371689475081543717127676655703651741025755146219094100783644602990766652444661498909212718486888998383860934968093181743690320928635689832604261090244371272229747965643904738916315493937129860449451013028079050207494945937571498273754896325036655179355740807975451997248897138114482521577984626399513706962338465005299558739756409435141996807022801789204051434682038979923559876720024146310556976905460337394086060808376448166917588571524679359224203062743077705862608943709258103101784279898033995731764482976632966795124225537054576901977618385365436403811679761479985936072802872099634310680927918207220355017927242594327845591134841933144856167703061536429497155786072739574189143075786735284347496935801698954028603124308441525205648979849628710799879303390298165994416774656457545922203032073182456055459600021687382116658922050963522047232899558421395196296096655695338756680205854994725174976633611490646338879270667062482788998187747598577789041352374876256364266477473785163582077162911508588931101402210724514458070767254765482598395680304583729729334339358900691009390722879945181795928110462805958472089402828124087559584348458697864353266195891260594325443846357278229066929651209974235572831066132511411376499945760056865597219601272668347866518349728938051519136840614281638309999510716787662828136818052546729124407967070705648449813646197096255393158529327122112940246184085065404927732888151735204197916649609600505618162753708685086501253402463427628088105622513063631374576698896421164402282782374262290240411163885480261374820897428735132483755648094556860761907996739186324333239680404076230570243854710229585214588167468334832945030458741644526927718449802986598012919422091478721757722445994487037647783371763011073783436811712562703209892303559226451585652851986872529671917347525452078486795117841842049670505560841523408482516663503710211887317558256619886933233766010304258072110732329548393163990005558295031514734939403837672648998076492221004486055068852265613242851152344424504895158937533966035689544820864419982726566817622754206068275548471301437497756749286903373990306051920802808176097432359554979896675901573171468922150620669955857927382371373744866274671101667281409795721328450298591767728049178269860902828317266873813188823051875932496447091280969353315790942908721581868825297816214064560075328770838609107190728912131382201426946221178376076673474230595102207395330435097163095785711384576536746417297372290141376694157625508516078346542513546512828077689166422468190938408535598177505404493834094434069208782306354342762834421066478600758089858918773981749991911551321317845677398588729716544809993185486296867132920222415418743551429159892103096130129821510327882466407111602415918605713465809637069084248472880785904353098501626044294956395989378778839549063745743363437613270994304156846678460298789912087287565060881402066874602009899738303437809852124364854718047010015591316185528135533022619076653109407843370169910990228128304506086861102213203646248710486579779415343534792232236525047325798113878354575269988997367153416138957029051929664455989567945768244131347577227868246823889826241208018155145503948816072112736118742952148282467757800407847140069623301291089822398009970387151631230742415459823163637170414389134215059470931417685368269402450439034940646694988713309639586672206208377272814927540866753936481924714598354099874332814269631658316246489195823127252275640350258353971474479831678764919759209914061295158571326674903725028426484886639415207986465239994895134854856293917296810032269912841586875261515217554811308751902730027573161134816048613945664831268946165911031738068910572550093820140492480836788503336763657501302965706782294446223945494952070615925899086279592825820475531326742822436866878386216619309472698770402927642989108551474472307441764594390954511621012429690120083464587137840067564432644145728801848699639950125104150271199287910061778354062028879017222261980452855126189613274224557819749590160727127333355241799494839588087292393618110961296939030276161037368112923036251190739569957262461201952530916213904484706475206430598801828451728785652048548410102728342679958147487807762409304026220755006520710783879515988327645691983937576543324959181141226999443128406044056231488240607641376488337446926993474978062209675222046394344146936763651738773854483779888837353073534040650275335395176390281837114470629037920660550669402554339886534188063877044229546823507332462322720154203445666657794546516478983308486443248029713268951138202598872737163121438205629994547304094307595819032318244475410633415382650820940407689695240084995362546171674286024079868241320449451633286683855845902654795187946624541277782245157909526421798591699067892376584818033208977663007724531463694333444939919407829449002963060503660100608447101216464241381207316633667652020705921213666993244801514759814328420256369241815098886425647085155954598545610756629132629739679550495703592225856317685375832827845835618430743745474372970932067350994969309711549806200010895104548594863614429962471066916985559036959496848536212540795848901980132739561176781924247812858182185099916950532432611761192739172459350295361487386786181129223065164168053853875477250892470319078654176389457089592504232093526804511171103964254253556460953904609149669676063741422806028810186744517599523505292877850410949964015178202458675311017921855983888469926706727621549946630460439406736994268075920121467847520523768070542463501124272561696086098028065483392902049195634509502774335727166335535289921767610897830680512707703584882865392106283515665770769928373982458432051715239732348119670246420770740580633972577325472524299472017885057025850966604092059495875416345467639612122947120666700568202834990684237925503821558380284509468949914072339242775274811972559202766066633662723072421129171546091285440193076775149054237898825775455414100965035305186370293853226540315419211027379067055810995308872556870660281114450829108637607634435215122809280439164532029058434263115542865252943805619277915118549311807400475687579992065372803258549627043104601594132202182759512820598429765020603635486207925383896541493692576389395197021997769760630992455030509465004963393601329140707576878981230634577054075020970299956075353146597261364283109578535960058320558834420771217348169467163341387871037354106098435599861338447553672379834280094011541216246066869187897045406266900844719461437826066849889164384247270453847753469585897093844214103933524314520422751969591645456029146523421317773291747877601566241714577822965506714306718594774254786845708329837366434504908769968520826496868096776419590190259809518824339114575782456329132643442501889576269855666575328775609755417871703895075844937054078281474178753627295640848760006838465824724981428292022915049055951115304652268618262394094233043351469879462864104619525550808382660425911742112142442649493187218832923110671121299670105865767325946179102386152069804557306551372335251874246031594633587871659527428973174176631657844377924055391223335337073046499122032668026761571219652247581568595864805586283799721166973623134769063839976047683782600025264242467931589740878175406460444679614777128030748629844849052209771243791323721876713555406163186835311548914684349887035943711955988171072889684878860186843581175658638834403309520174721551635474575563903581594490446510522641398114056395883406285976648333653462357390982542212551784138277497042039442679976408581442759929656084340358743166353973723211431723825057236428970517387458206175741276573620294943146804361319926400976332605484355618373704737271353419733599072052743301878043341378824409849613476008155795001403510786565125162234246183940326675825066650160402090538336711803569536108304040272783776799710595828019123867490287125709154941006608076418183029235454146702853535600847539301487129537582514537060948143940055431261046659367697945268873095012598509512810757555392194219049010090251996905712320284913465955474278685217899097042702927352315207489600321409779481603682755669597558275673931460865212793228482626358241832014138595373833888725929163591898365644096921476950074790896666242718955949477842469158136012891521475572005076081481345434314625031757795284811914836407263140106132022905739161148418872352963557572773539222465104950125627211558903429408319210179186396848270723305783291365337533765862057436062047100069832027193021606264595026595848368774811443914142909726268037901024859048313854920201710377150936036157795943931734424847607255700812184636116052810967268897756301836854264985544249503932616169018388676760960657035181903211666566654429889658381989229794381063153376604578901885244646173108918452850347342911477936709089446010133997681701816441602599921965718488219504116532179892693320137963755286616493296726360686811477349879378851236227740764318152729799178315537182894860043412238708400375363943639519074747768879960520994561781534087088902533933502911068606823371051059237606920742848047440420863349748023643315458678907479943005134716356382070468983816173618956928865472175411238675657177116090379444539737364142737643822522109208566826785132977951638445534930802602148096751446662865876080339068516213369240875140151199130144595641097123233395068045011842232546870221868130724095669667855532551009502884643965915014405765012437434311068829102456729184837685640951478023254272230004836427097985284009259117122717164003914805553734237853523337144842885240332955641111270833016207796364548506082054037213401425946610266966822726462177505686072749049753523272282847510009024762006583177192100087219730197979404936681384011265994987140914470589355524402143967968130917168254076986573415011665772502319342342308871632615534527735449885420890669664667760943296195626597272919799364006273904983277334257577289966348354268554639133567245822021721991353320799177841192607727826944456441152684742226911997373878145815426525454364377477564184906344239930330145545052874139354545096057994067341142634788241487523930806498317867192656534752263293177798968920634193312505455604639112407799998209250536509446278305835516162455346364700489733330255927895284580675000312738439462876347152465625484050921603093108666310071490608003374242331800126305061502570769114872100123691259735566377799587093747147453276948856593964194353929279728929950869896058991306740562344890258536532922521752305943145371468303848779186993790735534084197582906243777488018543263011522448597797004448837903797994014788571305068937513364217758568038369435144845282142974402504112570721172028275714865734386389447028508740678065610961214969334218012729706499463137180703748356587455189938701925426426006896724104192829935096054834510862398141447627837668277595175051054891289380367044110709416895696563529967603678667806048095122330934570710429463863836638139683783938772052755666093976471305152399426421208727198797763595869385930202774252018023411475107692030188862199492255393370997665393027443150499402978784078623810404137974664385923233531826252731804419006060299554936690841136870011514072835308303371857757380373705797417804009840281616822629153120456691868924073820443804932168033936727392358511075564444942950558974468382339689159935461260756213491635557405468271008099465526889764740751528757509022078579112815158198521291447713629324149531451481130986018271988110672111907486839810698659900976883287852474079976087962873624734134971356342015985215497660119151074589361280147679676368148267998233562264333533105039126789637263588079194316984849049337817592098533569878001600154474714169049243237259125377109922968991383546900128779966924724973987244502729301172596740816446094497374328053905628529000903422724752413188539375751102602915179703347320402848434308113914299436736982064303006377164231106555226427146372417950701117695946842016247026413942092058211769441594346197361853830004702353456007785981431640866433292345831470808468695941266242407951934912155803460697240805488508127690196507878010169885326075520823080059855705833939015810529988881957557110633733025237894589903400779911620248128691885532189714662321350957191409509184472191528658512848217949889309110315446255901009745456285392992804605580968530108316645919727165615203946562179804684546293507100331305333626119124246711807317649306413814518345409232539171820916596835044146035565228178575924526813556510624245591218721294581382917896779273587536316402531139045505908549959390151003892715507350676776800082650889050531913246395421922161438326464904985253582434937624958001528497927827044668906359932892937945308356751007131274556765735080583726644143180848663517725698458511416782438538943649324450260835574658784901317029852794990256124613553291859795225436381002407611690392546720357666084665865086037845376813989791976648441978176406557199177356106223356143033899484786499256120550014315784588678356969783478402159130144411392934156109930415367542955405958640130173616245167839987817200177830019535518609184326383782104872379367810602054793903684282098555303224341857882771453100632545114666164064479254360985577568247617893923670628747170424164339833894636701075076557751742486166735944065276753968121741543453532016417297674756525605462457685838756595736454259361043336727290926776012356612019846966149664083043134235618206175033138073789673012198063256848158210576718465482079238066659043352574938401248168193974582397462259006573929999525022486037728760327197391617444075762587108149184466998049982595582027546501974712549632693926338974781017130272879464860388637176781700100099520074855062565349575161612799527786265361486280181119854472020600591758312769102109155900882951775435013809198658937552321420211768937824660330630302408887186745730808948746385283572644610103022772690561509753812312035938364121167381529226458517830896744715686643527082069900384934370761660366152450049868178233996741693722109610995128628602734979824837291501960070308135598551885051614849131219848078938120692117417588790471571738861925839850879428859372518061963490546423716020715667746169260528052106780410313468053992977437486651219695135681629786644088637444514720303807267386099118018849232107592400613342042095567815592608986645922790977461811091882075365125100524781572206960826413282428319119833134795295939261997768223790214330833220213804598409182462289931111794611346403143940164097564457141534231414187998393244963976603093642094179538179611742783945827070012856663518088017674577126632696994558319606223995796905974591287146320130214174014129738170159048518880309834914624693081943485294644415523548481425837561964795990906673474228208200504969711954474818242218355939595209529037924033084727391594216480419544385422466660968466076285540437469533192695050636334416134797997399118579429994717117151495579509927315742706877259479694820820021860427422838468960247568407899503536833662298974595666492287011630566153454877388407170458059420963459239171311621645310280007789809592508569387343221711324055213094582476854754726836402112119601410716366277208659091262937291088757031583959312928797322498058703103836602019139618798051763863696830775860402997326018480904959661169810225581715723325955438796040476960812702209001283312183405298840889609985840431978638654774683270669541947887424125910771330649484988464816337866687872866368585509556354372458334719274664284173556682916769912564162254463531451454617895555807747842665050430692712931929009245720088587714210611310612495240476628757635582411090595783601000182676031025656715329965894028167622612417639227662340710944902612081518499214438288161717035561627553796485318638802229700990279533834727037639213392734230095227022102688390146752865672101817602636343960825769552463110147976384782096600353926009179137976543091002686135495418597523065396266793351072338298473049143946339036649683622487702755538453903924066791195964820050928833443695001476683069260030846898422088852431378432312096561554342173082235567919640956552027898166785128558027879243890987130592673407147285864129166317382897173350742075848936230071061785243690781778333152328586278036623933366384162689742197133129356781825736032022439030514089679877269078551171437213986620344190045856128618514533092289259237700794234212748406858225471846711198209796647609785327077783315580683176724659969225170238941871461825894426097289966553234817777422344645769467748371524708924840915815281821231419054541497209313350015607347038549939782570573717734887175931490969930929694979153812831651880911993450686052350103485533810816257898778474477543585136857332073874688408394127132053774271218636960185006033759094749826539433779787109447470476855507924156269961470406680376770844477922203363295585791446860668320730804296800822118130614155304738037925402106774790307804039917033926473307064196191463885530755812674295764324377015760534265562888847498200721761978302073236612940251265824480065028244521363109847554545147250069421675759631037138154462893052780074186404931007494171990592070596936088480277259520979792496097269294661626841490863211248658110173221377240633475107776829730878197588256367970564920936677335950156822140913625030306579222426152573635460248745706774070491733924820850280036469364143283216343630954626176163162625903233934537503513286366530179470350159280262926884389346226982688086447204583080667647746316806399746517395650149381677655459662441246345656830877015806111611930527503865586401045594735784857024748546263095956889813008169439060710110710677644927490842873195416254757425254252386894370170186175480061765260780731135085612332928271204121649924455481572999046164381632594269675615872747511405280019416878938937039889295164812771875919625714130611494132305677848830237305136506986586837226139779776322740624496884167506278837924554380647426702580748586425243993731871835785837810589236490685838638112215041932972051498487311214642149620575461148425609677293995052111677065011475407973818552465668042596684435576164507289187537405874288968615933408231275644019372380397215458510488191360871969030274824820481773274899777419074513169032458730193854692421326884423428863630570981714073154918607456960068649416865976119036388274578662585135271425245252154938713665052808052805998941339791409719772612789986312018400990429315374806177361605651381342397337569331614568628942692429820595388499807564708416101583341477473228994262932397515227300077415978660989545563170325919622393335422470153010717922557800483937650861370413822847103613414412024360391300097121197030308723862754487668127052055278660137023730376528206622446539220124738045520574558221710886166345456297429153102031184426930511069349723537416163000599490683054465169595457817855808237077468043982949222565330693464628241213412293209853746371449384056392095491911149133392714415341412775884012669129465427733388815997544935943828278863773888991392429278188641828379043140883479726446976226493960235630797532505267134901193137995117045414723105333412100554429084090631475270039531765347964835937314629799338435872889361168337706713185362769377638075117589810706721165957924155578420993657304070536464922774313143702135989153301227115776436331878683137593265576741708158568217812618855402579929907765821559653093106531247777968979832905614534542142635531470359428994079086389405476034092327594265126854132258288300400718021889224202645238043342227312719039610367549479556452533162983245445655203283996815941792138565278166975068510344965326397086025577363258397883393095410972189064920726521282764615776858512238472277997247680323142163490067950340303064041456948127155602337771221739698757069804246792715046931255112673011606908709966664043520851366753132375587755929620146023274157850970024960750941399987128481399106277275272200034756643496734872292355412968027883483551814514482860093985874898257925290394529219551947649319811939489485531470073044333977483902506953778633397052117820874878433655671497308782892063078754383413171715044384371365223223369465187032337230085541527975644524661151323433196052221811378404189102153687880315264045917000021189213328027136920808270271981090984201778704587259773583048631566085810251436709853587740667691468982713707724199795739102102268806632049692802166750136464660464839922252332105754643483739362435426399681785446968192312623328282248910981558334655977000061218246010042837531991288971247383594122388183762018900803770627803137638422361524853314071411689855589398400358420577259882863275442648171200106403916396689561689873667593008986866741703839656650486974954829484189542883935996764709079181295784789313932946426316654741805144636968178576368288352964896149269619970692137599428522719782825380854736508970267052596637079112709779081573908564479484143753992776646473609932829460511008042565658970325214389924878928028553003411155144888261257731920494926610987391186447047974075770282926022180830730479685561097941000993988573061032364745102479613386559794154891168116693650413803918667385734709073537328560716585719869447375388898104555292026622771373829850163322320271473918384602436042608413410461157357782391789334260028559429726760123418948201926698059942203735406341530731970148496183899397143082708715151027109012139600987072508385178077568777974336814436132715046668584874890645443561662714383425856433073781574127600914138908324540764797229867523384942281519023739788220339522760127423678301534371795694029645888135473823648778022804443643792408638732818017547935882079813782944874893347496252157260264301261902536772552099484045602947249551742293647873455775861861451557296157480477101714720297995085456055950327803644195486134393367698234057154394493969535747759362411157864715256515057120460489713622961383407592708248162203458110411575780559432415510453488087416292693403754133494775007920327142499536354469364928890889903097416740229943377701264205026931707446224454229617231143124103922810094515593569618813934102924561519640129614352484490024904229839943729841990197867422650717286335638215547725313152188639644587980708661512334542648046051479033735077798954019434732662238998838211664431894753657573411381385008947710665701404808539201109241308513959101845044240112677310222617217494496548561155463065038252904024543154821609190875309849513333677210219274202399218557624921356817191846129259354179582526186832898960419127476711172839165262876918367900864944944169147045291417579631577938764174892191978739876252698514197587033115891176200917559777895761617887542849723666716426034630915135505097136969906795625916190972070249440360671022040550764990710091361586330889263181112843281225136791510030254039498495701642427734436781057024679900417907698935110630417662053344190823963285293104577527097839830454144556701114091486069042495543174062406862217591039482859390574443513888705309661001669098264829057096947180271371100173715823533086283125948158752035978326240141277268527321444217293976951123604521437932756442295764660189023622301388927229619345668614137264168953464713028247629890787114260695752144601512087903498957971493139136091806728655315245456531661788433600996923540080659853646162609588647200281197903555511234092940326572549516733330751237504868092945876926336191076083968824433149470667085459101208884126069955354574607914488760544524601239685870758976114384751224448556239768904646648135833538223749641866268539638752595109732767240449317841580832571609188398858367198389344259125600727372679371965692347577976605785044644229863297101697364122365513376220251738703767387490976139878020275013468973862013318267487014694569287653086660388701780229841468917613565171242463300402549006035510702127704943971965888058145499029759442714250754137435014391231490440452716727841903500043900058601907108146565027447253411909128688538797497732465252773922800653862868855111267658402794256496469637795863552466218683821641108085606534960581653216347762301580184911266852845576528779604707278552453314253678631189841901633093511127682057812356561352318468586916444695739426212361502410204512300327179968291224696184088856116286969685555025122224878744753638829770638929837378764853678413372128609931771957655832401236609442930915530053453443969393775821385802569547942880563249019281607458797669533503329750001452166807222584389589645728254753126862947447766751873535484528726864328879641184420170607990558449549456757759753637111886677080956375069781636070209953706585295604116779055252858585925426174070956495491832179031400884426696733889905222280958963900959312748535639456304793050868276585400957699604347840163633865902792182518858219101703442648267458731308745017382158528531388111056006172532249227875358652351173287520514981061995556758169380242138444905204763860209932832608117748616284941359034248252029538013473310859084609285828695214302654734674530201503474320223881877110384532137928971331167960393398483082439201034231944412858315330582785255718267853578086085530330697420184555870339785799786471705506583390274749507790068183189861483784709520602640021653775538059378464807509863087606534032013099599287331623370370600727793054859228340990697668884988738472860253907048381088888400163176485387963590969383442975779155219458002733607304263395927818429787617091130775645677525405361905279138167466856741735760171991987759490878069743331555891680115813989116829762289818665988511339094570727410439961204222917827810471555883649631434816418616346319474198137487510777592468146252798263241476310222671829008413468783832479551475982698670573928298954926286736347644592200677644424879111521943386406664833113183006756618360093122720413619574904313500977337089345129194731695580916182821288101715972410219166254771696171799361253799996201817818979909698235070773287817497406825630748205936975447801679946217360243156801132409847912970879270817587298489607867866444191481065988880438712502007710214952764747448942049085961523692454201304518113633318471817614734720538906711701711774510148541747467580810770928168955665645974381302661761677885902671119247668588478187553998061266244303589345042753756925004691914504209503358423330363208399458916361581838864998748569857509155309578053141291745304488458726958448450733725507492688663373577071675829402748663114034919860389886616877463774025566994770922627090072108258402116834550604591278029225693308935476214177216903539395564472900657200761301654380538001050226321908726723391461947165479735530152898650028605770984266809079021811883757826304194110555258239175845662975332729106344006325217781105980329566110855705721452126280925460197206287315330682137177162315681050098717923430171833593834374548066814498406512073312213615496112229298537719149099983441545019698076287040693548528777265349673947645171074466804043875749931435437464310445529559362471178229657505846535399852848668614092779967775459046554109526751727658830661430674769436915434116438085065682464606501766853324800599655149520728269953229607896054722442532867497269713077891933466224371331931480598826518328939406864845338193758027909400796862481139302224461190538759500509383407654617857847272581994510516374630351679679547253439514001713226392017028830846541559187366029760607209997442824998960385917412150437935777573475416039894343017194050120459853386171749226159369288769460053375289251071258364383133458882244433839144840001222655037085470546475123070919712248419836335452090036037841963704647867079769931781013982741388401869576061647733911108406289837231640808761053278676385509478944266032779896340283270213814858617491577566987532302251101022498053664627476889642207202614308136152841960296755259528311215627008480245094816018768043030109576934921051717633552830203445792308451475971601793050948682689653200633675665870114985908569429285444076835322439051251882795181968321534424707351657595370169700413709536463828517504773679537509866889003898289804700943070145223765048989371500829270735149713328755073064884997436312229170562663721443880718576016402573828924775785008007858398378772045249756488359775119203573431875309510317150776277625885243420016024038600893480490295159983565763125893369186728608577807124862310950916507613447264827875034686707000050633237911516504134446097837505005910676697811247764371322236819502329278937653069631062447050243119786620934415120320183099727995005765805136211404177786126382394969546996759950342780984195964344992971955657877592742783869771504299600796810788217221845647982041540496792881339002285139981246499649153269324587772129689746892500841179453505496256320856628051292678248324994149584908875990595331363053022248476734772266637346943576720227105736925397162719603238595464197481872797501990680627699216114000465492708211491499452327478288027315961056759764557124599143751536335501427829713116741445367467253162875337289851305318415163435171414374673218248087298768329676092578727481784654662987702268726879346060286184086646656759764912937038299816381372537530146772662601644553613699626303699209249777984450773304348787892780325856766386976883372386683058091246848602571711478919168911302624862875974739540212247745284707037637993705084551127927285953936021283259132795044699128622813776632696105976950436530801996877411145214296919058967179243270501707102256594466186908245552102864175841950891134358946736008128171713690882261428333268540681589741330256570303651674534916411564855768676959460161086428361622873089416903950566632736174266032437630388433911980269998523675107632370747177673936902891716771200123890212064637359607260886538030475757865926103136691726011545818967974028385966103844526223245194571114115890360252319611328129580037190063063615021629615261025197407205321842513984780625115384767311572974757365898504596872406961730399087961465746654425283777871900526849728948719580053885033128074096220522389728882083016281567665090824898268506977814294117791541653328012722394637577648498859911320587709092357980428956693243769725025104321740800472733667108966748371676418812732433508161970661773206104748235393320322330497057715436978618424889863801693341259466012403299719626696804455330391888880625348537632917456763546414292767372438548275046038562278219920216114514612551094744880509880072246465141196635100454731968082585219432475234131323947315228738126062185538027582937942392918500280859394982555148917178961386186695905944904987428863600457556944574458366323521863934458794125347230131542553449370909584057014327231839917714041472902430230520130747295436558968724514951093254182021343380218012241309174375215500072270342811481240707275153436423626119367312933056249416379916329418080500836052757430854523333924982767652678922702100930431568249477050111567558580168653140661783284832611633886417703114309301281453638562442697894877710004042671253525650408961469070395308893698867164247280357263456210430002423627883158543072149877804911867943665992189879263840518048311548321854153011816427266731753856254657335231373779517355903076496539406385375288945906910087359130762774002196365653622535086636206313519236995269091887305175295140545622762766546843540761618494563483348867033634220197857897062223527369939643163740396999292320056615961901009404047389001305356720302498431091189055770906596592585248769459276586497421623652858310241164982033008374092166649617879878749571715724643441330073386092523053382703571050380477096510472686528145277994095005981534516064964620279947860354974355375799305421681115866482302392628617388884639483750750682178844121038585979860557985792476061461591442265216896697624375655778150354160005876926434936752306388395468616819174308333420992817858319894074360620469296279295383792519941922689717284362623066131797806087512615597090082989300276986651803606053695340300560910089761733920750980063758802795340108758046452487794942791295185094456010947079992522773499798978250167533554727295840634861156651601986556310534128086757174472248289460857025347649155322262842102442599064276295617097270664584367620257232162406745935767045591700264822847847628736210346139442287575410764898637716438294716103699154138073611024043969471916560044565439001825755202944873367033419896552859727402097193114447920228078911874312803223236246549691116809936927016852056478234278869603857417536195870549129515219456162102881432416732428203041250022228858142753428281398169498798834690574262133031355335744396671957465549823327312601586482813927210011925458303030550376395873884252093509272876843758323222342017081527973540726216251263829434459051284318950129861676791209914139445911461982454694739174675107623457878369877033179999851093997877855273506431185069629934890453159556372310080432200348435164104028675852323848672743214765438822648635899100370280997028336604773731303477511234044475736662988365967902873467675573984092377044246809494750820072610111388399477106349798805722865709199592242153695739956815051111506087936770851294919381103894806981363334507286271035280476303517733894388366669840575651638692383262696146649444320926027052846503286608127315268062801479501375078755374336793821175045131653033297709082777580220631693736332271795063405941235804830147377200606020869682409079951448472277345040404298151338030957151932604341584705527038891426364098622941126593447657073813499642983058015462573137219007278037588095599636242920741684127658672951826791442744743798118155112489964978654583326782277672646087655409785578565291257393721262859913578751614433381694434625340732379677665904475928639522962465217168393519782513705034115156954809967875389084620660338006323995153496717406322820371496755350296275013002739316223028099530385416780536920751990997450493299540063283668370436557017539383968424352217652781783117242885582676417786273317513270201957455031774577905977419696960016815608360669034288491105159671801119713469957375785397316344010928625918413883823989357520907584084031530099195181202354856720039167338263532382987213406369059000181100660523022019635446749525624247748219481250991737850088112882213839298395703778706696965732666490195037494791218966128752359787700887063680063387592196155628851272472032908674232641308009352008083217454338959222546620705764383027357483907807143327340473799749195757592161920892570849291400082253630300978590819597865916923343904209070523147142896932795992424854377429803262290584197335269433288362968012175824134135401800146866921472762760972281172994269854957655465103622556233995239590522319083766965227599243871518826010337173600261213171765707737165621293314967813397787380752633952830470959750325419536054172771964936547766467136015234505272464528702866863453884426983379636132764495805129723592022021322216691910360450060242274965357384717590176103115107368443619893818332841643828497886074995816942440216889998379148765581283641455061389943475044247223384444524694679416074973078341803708480769615660561926100865092781476110162369920857052073161786185592078378290800765957660605759597390762019550285135297204762185879922051555571082010171234740891509396388749856084570435343433429112148037136358633275036725250494519017624919637081395132681068824213780999370964121536232086394074243675489003719774412163261318602324735003869912165602377690302442738035601120296402949805119647105008914423311181532785845692587324802680169336338457762862755108639519512077915060338220716797553151989200147061678139779203463913293153258651518785658721146417999072415310068147650771157676445302322487229744503967668724594651476300331934772603689982731794594801545815658791370845422743794405106833476823114336301609368656887676894443615007209636328931003730442574886887757922479621291087109057463216595199884528572326598160142933661515596128865643468113870439853962231716745319651492817686621179427655560783869331222783315220426201192314380765038837759267503975798852846474200987252878294390845149129492499276686965999102423810832594200845205211639318607898629391613299869844118647361559305651422349442019197559034397014652860085173248067406811036382929744883115541509373268228693276200513799092170106823458387231761054297525749772326806885570124931625578145807898159300040646411725092318736728853071756858951813253690155256637382823645756409445171363381072625219592745817059521891037252877446977252481482090200578085391672350487181605117378658914029077573636654538660024998043188435824656976622324871619134129133080093570772024715020523605930718080851221680222180869245415311078250764598876882174988558669677589406496561503170243959124026810602249515297503267956331656445439317944577134465976457727708200739255773338656894561360279202444716172159183954300877891035135271172052896068258056631166177905162145039218074236949237486511194532446569828618989858118817010739637718368325155165243647393788037666448477949815859658844207097927905603281964963283807111685491133229455452483848747276384971221811567826488887912359473346492137509710932205386497232715778987896228785593288015438479675790508773276370913282600588459226687751509978198337762577640206911741400220516877039339631299412667169079091009505666614220841385783234391857618861978798195530355411906419456795776323902359611623332185600188441290689643599305850770270202781472439556625986911468193527778596513781042252316367349277588607686260492154984044509039613485963702295378814460477396745095365024506387126653452990961316417565138616100735463439245977303822304029697683077978753303353100798301296195356166468745074746055106461216229039304747663713302110574894009023326460526878955193892876838469441839482627106902755096437245932058664664655293395835719604232525411427023672501624599571951454470834097320954341037821614129106687003524447183230593868852920947230844304005483781336577529814887965193304325245929694747189890222326197236156114846840602039528831459152303722726192846152743289460776885422982300103359590955399021476588554896573734664842151157546467521947014043553106434191263841154947512492704382775338646126371168013472120523506996000957638709937740225369661810655586605867191982510514646409817057253070157412777252620695831425024761547356586860071712710103703292846035804294063237587493354934649623843083683119631022909624064131702407061606812091498360325186434277181109103081470564477015558836998355232790781666814826425433801773565733115749557295268976082892453740576766172220588630229875841935306227590610497604949283176800679779508787521439080207148318743172960271915088646349612423080736936443989951225604223293477364318710315878598646898686417952172697791476568891120502314463214402059049596186369904411560551882611526352385654680570810810582976066219636801422487246388127202312901010400488657684994419025282484686381593440980749694583637146971570225898977497371246462317583341229465053915300023905389858383601303598758487559055437441397040487200432548451993420648439673494839942793968959915595590835000453188105554238564471976982821573706404638490103088900980025561732431679611511340905161599199453363816679381502340965620747810776427116432509360165345684797918577301479938993451659269525484241645976268158055836519546555375563774968777474766890720541669046180421823738475307555429839293938498381422624963660723291167499192840133726393675213235858454621078249068081610618848820439841773996045376140846545536669836482068284953807839248543966049214764563897847767914994843842881676089547270709755580407179212879672151286086341766741950969053014744705676180187103234738153157042937610868001534607605838834539261571390625232120625314283332732802533457036028356414001798905006195650689037619316998085432148953222769301761773853804228636419057070251571883033792026670013586609565610443500230647458138860925414998025449722688693810067935689706026475753368556457131509787233466819744843560719067434943839667427748479289050870835793918705882539345391080457805879865773168338265941719503497909838707969864236959298495820272989534685585589992803854706706145150449092187933029290979357742262432035290426006369099834232444583957331601866568322846574219928180563429068262717204577221520554288031602895488318366061504027989334995245658462415226967707528411163106678968211518437609542568957530354189179994664196713050551426056192560261667841416368893532600005807047347401394421417584407464823369181923862033891049909578788215607495128818643614003798794385832522751316832558526804806285831609329090739027009160046350405840880828212477825205562754262121509069057166446726681211698469813321910111171642358033718225828665390759074459784991136699655308280761136921078312379621451397669910577999281826295262666770213077084100699351648202501603822310834377583517002884343480024313097915802257378278704669382729698358186841637598662061340767321314367985386846634834392921630452074658496283031289534527405712772535848980065038076011431607708334930942951027068350793422601156494148510038188483353420780549913602259725918723503908353498609755845228409144865053380354875659507014765493714248103131076073104852244776875734465899019710043868682746745297550077538594540671278584660322521421395680631042596918872757194826352968075568621585311975244509260668847661674262358043556630657013990288481559098603374683466669366464234075093299518535252585631980224876320624589386508915820124836413747438644980213647177053726318403287517158105698820335025732573720443635541439706101958471042747093648532095433339968285757460751049932162460727899048054535353960708331419721334902701186283752797279069355575178131330465824000269143989778334945055354822019399036401976680355116012389393550164889223326710098824399515668190124676294935253578057570715550539804856678942072028160787965701407665107524398476131631196412859551978432437369796458451177172413010217770856357841412657044568424638379216166908148081720995955615768090769090785375456462391965328767528551836279928864420309494226239757880094965903247242280042765232310805838356940090177033993090532489850980521696728646884698218452680245860807105935999823690967767478427299723938149593749638133955311147852305790429178953821458956458170765268190643664296547406768340406574328113329922224568966302554288595006529505287004019197516199060275879738538279843311745398102761451132316379199027770433037931526988057219978557572873610632366002995895293663024110990983007862289132337741762067233064652735606856371421756177426192176134134651128915765826769323921801655223898539160026162336568979773777877430285111192824524330142041906683347055122723820839112442369837843737750039540666492180565794379437417234205175466965882708180156411691341803888867113360478363354161968740541023169426765558140426144604349679306235249038047150615206504177949435723473836685520367658203013794129481529796753847690336577888870422009218579814084269992662891663773546947404334993787980848129787031956232313814697270697088063864597201510203512064492197500875251213906881292523708533803648969803719129819327475761723208187266548707483931178206843616455029467440478848280628667565244964656426503695355370530830214633908839334053016755262581182192933401361459404688646067412814281566034888883729849388104065405049917138204323565835401190447793763464286150748517720446391795439300523857627146558258829431770604421690051437717526214266775664548438468506023482695413925713755435209125763390672312716856857308421459195383184041614620278778771730244915864644051973433480612161602595630283833427287134086453027686823190999066825850258485341770999539220462018735134867850184695267433064955914429994789193348474155929846267956816509741432431819856194365333109238416724307603990795078160999450588351025569520959040921750219993300563182395644548405359619739864087869275319214717285294706125637600391772024490985622366887840706379202195613921344227088357614301113886014410247012610589870268228629439424447564540223831615695078502423961920530067759300223828058583765318588960587416921839095631441136676724657695464838996136519051208595393864812221516932695018794482438856808294081228473804542307456215994446787756092696862223267786217330373477789575217263655551475738107085399102294194204635218367343558221391010221591417867733410023418611521148062086329117070484250214900767178402045426934430259992883270756385745474317216120667066190233055225516722683755563475059598200768616258877747749344313705694001159160172864761022122022123392725650777864448764974495688529770016303849595792289339925989097330059850672844313469004372528754912914153391110760748753357640457890248900123754340022516013411049944368389420945186346597571079607632365634803537237901366067735253688933884887096027673585937617744636912032060571912112647171707374937483294034966464252573422979826933137760465825458755511574217168781652722783668348549761988112306124712814765391477821600496872744746863628035459770695676326459423707624801008384684464387418788267977642427949153953358956401612633953455807593538362149963066448775807621927860999960750609828130339292839734303899506847871244606097143376450587921286073107832233069843207240822201327826210052373427955201455223514412415829138912532417511614173454790994992252556356609703878126601191999248081742714160474041319968767025771800690314001073653120054594721522462445103789827742182221619091931037242235442088074198363987770396194740437893660898333764940513399763374966597021140289210705821709343846995641068954182654760886005992917519481884110813431736305089882205008590030028338697523441730942486023365055261454400994592726033277098984434750166590988435045568348703551018267794779751742467071493383982752547879474711223687827994999837610620629101342950278388453670580159226809025409607973680237298095704906675572548414974036941450696533923229116677309693144956797060292041242394766861076057620689813882106401688495743289450701419058200086109501106869208102289423489232829505170827566835350370691136086029495208824913232500233791170705211217534157878183588856306241832477818976311475050325105211339695780756614155858161907989175838710226998044930285737578631035704581850806934497422554038266876633486594252859272101068142804091581480162058298015231673467755642897738431842550936800263767388924501275271557843431316338530077169595001108558014855321700219972003097780849599406568357638266359085382328951024147681956518100334084583244845522536233506175895276906027032412599556430109134028782007783577889221322556018045561406583129562696733721665823168047851722532099297018704916446110128992783532539010192814622305677810076817998156688548516330016517732938566828855756912281563262961961781431773245767473727222023005040810661530454426368063275019945073310624750792149760502016309634130015578152241860295576288185160864162113288099577977180165288602841680019111531619434892400852637202972402463873872813049622531499160547489348532909785246916564179941397980397045079018286488160065088576310660764287977938998212266545868690977763286626420418164909634139299699437543179961674903688599585261714469390251144368168914619361210176710144375338193798295629351755333287085003603648411849583322627672756729089088098338092866468307674417293799489187167431734628498960748427579262144047530665359780316540799217962972972525254096621008657323764017938932713073450747423131726954653388123508099269946100760193993826349524511040940417306495266157858734844758903040409081846385647276241418706779633563062012944691263830145060692639082943601570905893063343433813575840232439790778205515702690064893441275372876091549202566246783473327234374704727992750096154978279244740455956425899459312820672442580805675735024670023611048377973964140738793622000443330227101588618776186526693119453488272036923745439183641804449654725755077436112253598508945352992087900968778053892864238225825993134334058120435158112401982405032242304608444625252975709939398920136498390508291241462491760019068279056375606354732772150215396652919746844404237842740768080113663107130652744273638909202670974082446408410457776714134155861285863674544549039334562040910328821996728799670343918102778304783640798600960662543692795239516741805444725966754015950460486076518643981070252601298760589907896127720450454225573467945258961241823870298109840137759126628206870915759063958318721537122805495908239893654931649036890350995357040026723778661267343291233215697819184136238991008516230799614371671544741146793846900679998402051211438037194757584006089665432281751405111562672563941919414704063368104771271242379322089111412722811316758048188536912242732857361403557016439830237402770772507811612612968742406063996939732973259320758131835098671143746650040976071517396565115029114351357082108111522695530466276012545476198816830132493857021902975182442124939641644106638485645330564883308874250443323035608930117072309922004376284144751257854151080365865493093566769768594115989221714815772969176881762721758183052323945010765922435323870100886554978098374768283164423171940967899313402913931651147072945550594542114261450388569362835410831458902205746989724460084261213149461105766020525668997558110269576002536655213939336062473668382466444022171358159595337941709321194622719223119647903455045234408871790381011218692828722072201600799650304579358383871750409194163280641891735487053962689443433843638384300399963532770067488695237355244964873051463470121641454355273729548204350532189820952471348372396405811163886214880338950573715595735819474900360539969013795789515232762755886879120875402720073919513404733529667878160790349221358704193703698905409742005038086610242333839436545475516070273808078737231871553936439160478215703016402249613653055845976054055731204377895448678758037430376742333413981954227668440780927310372296873246495238279035539555694484040588640086293021432981640248821506404558917580679121560503280684758580936642819366841460686636438687059019535664200601355037430810158147749335333709501241679189022100948504783375147543647782709911880118690903881604492537592679316017463397192031038863345242620301472111400527156402942754003675334029837159327586545868664096218013687350064934315232959974975651021706399686734434903388719893796307536169745799428664009199969093238377273499375581635727761931866510798789184568057992187431950629690934900329264423594196855035201114552274119183641249577640247751863690948495303293955487595084256348065143436531019714107956006756340115640329420486817817638257323269330095518976279135685372435247930222357717380133069030912098490365617185847227344360331046972835838477241105351977526406643436743898497973843483855076921801982148107723410102463891102814368313544199094229555498471577316359679529357733706948877930663145674496572391927537981159976090970163520338646646705030131006182717583244068111787828707135800318273277063420167210199920854772273800933351165933179448721202482154833270251751359401695313958803990344430216989706458987547068885081391711274022067472463844922538045767015424780558118013971406992904882415185499225893350792068371711884156455449187342847119065847325223091179716722900095311669347970224735733614314774751565822346972298698392350061332106687753497725623548664647086096501691290294001229551084213594614005848373086458425997134242104901658879307777545737311748317876857173707836550964347701738753279180939396014649524233584191364313250011370549531778482946836531157762176770036327351556151429606061606890857897853387801097064211319339570434820348327350775001411502683804447545428310857632467432063575012287006923707925120363799875738577973903622483284218649494446050263981411755446773347590086977430350258156311717329424728173923259137403056615897774107015940732619707301603892429968711081042128918550436284954310293360026780306203263754942936538484554727366681014040647998386577440695325135526003205435827332105615666270046055798759333607308022256689854915699106011816877783569921632523977639464208821994251264267650546035795716813097609830705982715864333545953244914980851147847214306846484428081113568211659479364379156655645499558927707534620827251316830028391576908374634737133505948200690897504716653446287536182669525348518486272627139014897246855816715273773506799621600093430639278670288184228663558911655136552110370053722202194370337730110258267340759337394902891596003271157395433213858511141791768896076576448428969388111444322382830278529889919889161878949500494528553180939447251489702361085854831009374021272630174473665943723286068830238512277613802523446930260423799338190917720009995566338847931465263717031983893582812499209948923515926732509634386952811668339470355045165242992524143029210142853597129227496877547186971581864778631504306799753128347267490823747443769820282390390798333100633723971442641370385742313246193252806333975128781891408025394216980294101352979354031355175245188226050513672297044090700994900440605939930899584934585020410601836875510713108062257208140257045653948657070128306255565862553119647463857732023025227529106881335319009686301978977506715799848814872407850983316826589921959714625445662171104434483482518668721849165433100968056884780595658717909623140646450686473324958293250734190112884565203011078837987667032060138219869994868956279032453195508395149815628583803395159725768484164922805315803553704356520598310221803794108256230750626706222601226436682631335628793807959157437874436183059576515565509408567325594991982067373711833616902254447012242587112200559980032956584777164382231600581632799989998835097180993944998351024215477018157124968238726040575584406142988694210582449965142670762327649060209364786910795229671769182612517335629107334032360540703827632951558565854926554782573475219534420902807423616434228018788223135565240485618157746711708319701748568552321643754670603685642830192994262674626028482599821438507895185087950026659665280603107462058127730909879111881507321617528361525335041561399859576689640386852266173841207092071168460127107405794154910561895849563201432966237907888622371713105022460278622475344366886579853852581122175921246742990456738584494676933337989674320110323513127394304845296899023743016484587305590600843356176515993860125376166037364208040316236852985807238958840667474384257109960251371951113798867788948118156321660771710105532180844281787113533638331768090350985430909981165081243242438617685276886808372601827125250603909168326876781784743962443166918202597736548838758557125652621090982537579119111394722586539586700806522701681586579216761266294258892710276613094264458135267039359405337805023835455229066916454475328647510341637295113566232037197236454739290433565857445177716658250008354800259841540940556999536305339586705644684411693291395947517846049102629575798194171734093405537482851317937820692683525927449409796289094068915013565441517928926708994670252949977158363642692109599195269443041100399900400816631671604728255028326995711057185489830448579895801430777733058673588999403287246066216871835499955154655484721831819349273762594911939570938807637102886606863803503855118915851296924978925257254174122162851874349420430843077924415020422150611518758267631059595277806177533221944063049264349311466945509642352821589561213998436670960339923611513226354858878501377555971269428252212591525821285782690722397172344191178319058848459682333094883526383762971931391856992539823195884023362415516631763011319712933894094928047166416830276660211065503762363999671413012303757202529234278529312994306308581886885500049479914599081812066202319533150792249370717915951333530652252384178175347928436342871234559393142167103833401240243457135863181997486944772199332512753901615173569056613623479167454313439681499225880313762710113548713532879557331964446684685244417726555765084659868849541463161308987499339268519407569588340393190536119119519743078166410253816421353921167537087586462399075108580428229390196200349323270796061261924884147026468056266490795464537822483504682576001971417927650854277173864626647294097096634423501840277315920578820457546908053346939223928085957555667823884731271445896374871138555445021511026801712338657849308667300788066531529404462478127335129088272003792819122795615661066279046082160372646438563102506654498637109945526611908562921323194884203582845192208142062899609116449514551794993085132789140495844308621259542797648765893297699542845687516587524410990394469395066048094401251566544012759188804002735045227821162031104270788425247044622589173013577245842014135105586762831686325257289387448015361911768415058492027835386924530888390780069826738602374973690962038442514064609732078345932003252430662854070343399749065449645179760334092628199288516075516007869466447945588377384894340694252599885546392128248936045741211446184024367749803577922866729754287416336694147360336360042312704227455500941350390687823032211806093946128190785424738941496764978457789170581158503917169262819782753785897025918213323525556844346179261497788737613089887481725515495178149027045483988314318412365715897613202385686471184104999846869439018169401327334187375216862219632847609985287338257724061819710637078441398535333662230977181079349323844268976915052286154883838028727772264308887978911952402107385207938505741528361484016695274193670163126668568506808719691118500010190259439701932936703453826756668432547246725296656873210992249765611323881379384084188559870240634109531145022612178967915107415102783544187534779430183265539155457383852346207053005540500189276741392711635434745061902557170682254273548720157798411475155841643306693401147021477853751281585683978195635184375104837689548003576643374621531219702505548977582042591573970302580934551121114799607885292622157366503020084626539464606746293354378811475331445855984540799899948948764262685803814362890229133044956743719977223536912953512963489807579424247188680158376545670512363108600607360754290625565826249601693570331318872734894255413280696344610831180163211427343833700816274654971530803536266874789206355528847797607327429738556249811111452318771315573809117918628712580087054520486757004713798938197768309517179878084077106896610211078664550773987068409751864513042635347049222704511175481901726709191900496440018060974995999581226880830399620380463988281650775284657923500944277606780992427313731328715374718745420372545070477426454200768108669904184260931461716792844786893125147034272601525547045175335307360606587016825704271715621742854721832458628582494079318416568302542520838840154978353799713852693085182989450045501776790496843438609450202293154038379440570094082010306511044814950067790196181173183692886319252017029119097270001621723732997592734618003132489488721143355592270252285389363110094358996790624393347985027121348955843213190422754374323353596766883263237129535892702531708994122554372485921727341343179267419754986341202032115547755685607109208311584173653535572650945125240798097452164312629031567192175422960699177517990741798209877328661312365076077185281937373543678392711907947094504495790348679110477349064602370584130175093007150098632314202432163496966324481469013607720342179463307754390881843902967599765931911770893822486976682109757015887698657460764054467433871396468229678037445431191017421979760174041498520732858424258545887600230228675459782913136517690098775949565923504508609467008592270505188727047293828425958636681382407033188587517460986961888513170224859188299111066152765895696049449824791571562477768901816313921028682187988741372555564313131911929488086561967367032272900637773975075285257910817855770280551299050749730096879609267045363538956995237766637920839140198561419775998713362989762294295067364499386815426745288015933520384845582539008979789480975105421167851597786253167943191467658997360330700956152373615998815540540143412173304719652965792483412830733371677566863583534095781028222377115123486678920592256712414990098887544145545977941508867211424572502443704382841120066947531613141068356612122746844894918340356120259287690122245958099019066621301619420747008458164951759348359188040858474397356247279767405490412855433709074256069489837090352395040813187004719060425151920449158886432366030170957398226170019508402248536424283375407704786511557049190496283815265478141739795291205621530711465068260549634005337532201578687378320085215033714858405390157288448035210691513329337511779084142334120526463257289356708982792891729462957498801616054418346297217906145553705514683738409658703823525604357677851771357390052722380654508798793162364244683955956627165767938446149555472760217915924442055917258222793301509279154892865218638862135192979376827078970579443934296481224638648912411235140940819898449844068349555936735944617427443261041396316043134628729536896698927272288204350133460660825352618323771475262435559922896249881488113957010225704914007563249018733659940514978659156874369648086497324556415695876168752931799906649925141386757652357191020715416275226197897463252641727184114202982527365312359748550315521977013807200503973045841525501401555264980190911312812799054224046719664483515125249692071656807833206680407160320113532616204223473246287605553305078261695018391638853435331026207960353649765358611509024582011842004446478519038606202178369298041165002810875611365730250509841376431732440690221648629842157512022383570263293093089961749934267210340614844280602923592101224175834539572725879065187089853990059892087761998551977217547076479198672919581009689802787035552537763174098662426957542085723948768354119541871624259133186966604172102647038819851194635767315768237930309185270471829716830205609134721763561759953052363787773849189432966495962786509020254139630952403690226854964157317946617702211938564626751097711784821853992763187002428481392837150508432137200280674508868384165541592926475090879978107269962800370778516770970235907309840694131567940955156538981320785189195869488339488963861743715623507577799816495389517344355820213482287802252779384821622847371631173606452974323252822704552047701802157051110629719735378123587620118073741141010946093475886188148333944975925723555668036339742209566846792212191757136331725212302703280303369290131204001784290801961042212590892845529736550229441006859280127042025751242267730357856935567833219469577275603227303770794308170163339117427172141132043854144153716741841511080935689720140252495608496784680266468923299993229233826423893433012147070691216880580915901530615274439533492043372645821614330833471212725861539081746993686235646103123513748871829576386605202720348298477388082089618912114356879965412174316088975217033988857901898059225712965747823295243534896160037626762118248103146655528380071231193249274661254881619867619629665857520215465371874311113175731126444374957831530644560947698708537705684433989604077743458585605468205706635759057660442535422714028721606527205308075034020177865565284697356814870157606333768300815314483789360609560487920206983632362670209608620860290551527263484409881168429523763927193404365367558303124579153265376575126455936393613572308433552904711197222141828816251720563159209928694417755464652353775207683874977327626051126137388697362924719780719872026581496111618242534546560053753015865298848356175094967205720899369586911130263439538944081652301192043350277246390828678807772566788723244544282127365748556115546353003015902303129181834733508919119777837291024357772985634853397737010889232178010271127487031767367272311810426248931321384921226543051136824250645408080342711078365335939180953639609131908107756290573963263795579912682091184368087344446823925547241740099585041995054664010322533931548856238710322097250404133313643809293021021886021157312135266255602245180230399898659340037262707327153874717652438477320954300898979109934076727502594396806701959954147179643593474416461524220364923691914755179554281994835834999618824771212610790484201849944830920186423078671570525198232094259170637815134123489368558619712256823263363468587422805495587964389193288809339498788400871023899813251924997301676522657714977705371311034974362366518994443623321515751218227546326527220302662307246966847502986625055899529191804472728363548424174066623579433979401458666673968397133577722786266040190658173716277203405048010141706679982472828975758487041347989516327734962147246935296046201733799766913358182920304950411914419713832469562528128237036412350104610778152762489818696285078303829810861746347195500373944006729824686663783993086493658455746754357715155102195103742088551695615716754904454325115651910952395536055106487671386723644927247621844875063300656620624302097826362403852813068007676960682784870901341491972041365383324281049397469336574334715728445541383371089699742158261014432345730183715943469295784373996113988826854084085103319797471626779695191096772138960982673304750034290496200895493711481921825363830325603178250055321906269674331688208244053259377333979888767422887366497537413121219076031228983759969530309648536463645577987247764404683819850284366451841543679623917062276682683158434870201431221265220932495790760114216359234462348651654217721582926920845704952953135627673384338303776719573589309704863316676920063928697133259227816700810720634729802758049818157404396807834145003416641918661902865540618716125094122782704860998897904534958458944287074272350061752608673482589377196827294959638083275833529879909307492090607187571487524607838792684136453703508981970067533524794187372441145132359283847625008830955009472802012619638585126034384484564106183796790455790862103296568169920581555439535106142550031815126839631038671612760106644076802723032283858746061337123883272055144855040740255307191323954182507362193954048086217333539170485966379238117665841826716563212756056814450858057888861011109412910817751153218727033602554096475370760635560505374087391000453810492482964898443513000630629400787689949112947965764583527243497412281848590535453673150902748330137407110758605109117032404126058441755902825894991358445159720862026217818851671790399269301764084320993624720281960911507895989469632384530794378058843473786260940583952881848795412620748505653985329737869379292877567988980750562480704726820226990348984859411261316921730908455013372774788060703856077566755624522881836857969578032752244386181449325429544142641378972189995281683766631486202979637494255036071241509116248729287160189919492454704020471139510105342383316562007680316750414333153661779868936040971319872020011559473120322771771744956429622096652427510039251180307629222893567409079949659056199076778572641568349947066070605774875594361747503758484414615314883960104301512009111738403716368745991474453435471156260663399960935945563314439622618923795321439672048308905067426342760802800665242733192289722136806969077980948257029273698565578474327986225688038856162597703316376910138259389915317050515761598073098480361607783569977402948017184738176757382701075088023496670073993061108200601679528362925596364182003977082895277972618899947725145461118136541211035704848313150881031745306484207029991107358232476608384828339621924134164073640146727785603125200272308194942474083372718445506308181793945182466447977698372138256048767284666921280807149530972503253736925325338679068822887729422631267187042725406038629854108219101800889967841407918861047172149846142228783065325456347080185537578164917601402086061742252221227632915895958460988624541961421630045618415467550648061249799600516907452637609360392922254538209315020325218466536313558237716827400043600949314003523981324519933500326208483014819643484791465668648977552322368177149326090972932922479756033057825845652702062530318843882048003813741580044302361923052050972010835191825399756941535903324487711725358450081092281784955803676805617767529736989925184021706275661804048038619598735880404535714455933017286569971547883165186479233309235334509654341604413084348552631695698679006836442837768941010634830552712199344234109113963497221052198308387854291414243751261759870194257319845192952725000501843382654385833853592967303871872440950858592158531760120221700886333745973269083290635792957229037086131391409970766483627395987285080536547192524680164369694566815897465558784120847238428514770223107792558703235236131271129590933315643995502662176784322499661732306527480075648646044976991840988680125521703759643666987564633076889788512038116626138055176068944002350954241247855838836424417661278368013829391137582520736921520099979073357131628134799864020259400877030027137743108786081448971292681969649262522010156949889889282852048019338715088392951932571207470336486376507400940678280242842967392729518382904968588975583767513474107985111117090853792733736822045642883669809348656196386118655720652193208146147856662788312415559182139914096997443680999624932521342416478848559191790594644543764155268986442955021006089262427150299009937409033074888141434171513625820702499722835358762506976095145745121367556243916728966913104794005602379045548752606134837796460154102881184545595189025469319732385826935696453529877544421348474560958955037117595582113758805762264351241009997566217928222729646731089915022994486762682236733420011620058319611281001442383609903719561118789735655857329888172710644649885532241677009791346075885653885148979320803319437792380608899347248349185591602082987274117830986174949211196793730120883740912348302415546666330257348343420167213197827694497170090706299237506301205391827160735578589571674320012160354510355195831508322408113699836563233802934221109830814853993137340336126820097156828908440755829141245644605630730482298182159351126427376618257661613399909482156756676117201967473744835212108028403465516467715992592977479876881251503984136079895250834880469600197223773396355402707502943303326569008504488914252993975572485266791528808345417030248709212037429619761454553838668293535707003988932701762259573915212247935850101163431239713659994166930434896808385625503242307134191541406663479257170973515510285096280484186987687816411078160541009823249949268199361146922202017353100594943179624337129087504281890052142834675115123745740266389099301543181110458205493783179373026539816237344153154850400585156372784179895784070305295489935077285181350542532557138142498874912784356324649279236841250468144253606979035171749148060679005021219689321220143892660963892413732160832443469827963469553636707600627179281046238718407934838401867663034652304719631958957803039666413963324355837989830560558020588039787271716136873646491716492199613093369548093680304689439863737367592561165310926883596747042390487692791695157995208009317987054027409345964646399347920001128963558828548261879727050277277922633735282257692382647407206640673854267562896442387007125125582441019163449978274437314202429248689319209463051397034494920816415047737841422323330847489580774799348626826008339636794908557855381134274582584161563359010815889148628658256969347960495336886610138006303793454660483593826981769975051841288207080133020836270840036216787953539877152925619872040986431768304798979396397424709752044496908236819707648456398392699246424366719856191523524963753959496370193375640150071292677231473321768701775085147321983480668417214024133683359609987507512697940955466325752397192905139798931076973212446767678012796881307306816068262449829233157032535537779356521489566674122336429217059495894187538103780527893818687479247283784433380015660411894168275085216394904517944854560477572850762619676859607048472857546464115625217560891949837360373963833323397642495427805651360007634825029625050881343944693932592747081733412236645909553364898877284833800653540367037409289620468141820547869771640216641510118229391760820673930063027185376270646072432595564568540491103333693230534284206764865633817396637851579805502619570694422913408234837881695393388044674913800000707717498797103256081324809952350582525187925762149716521209244997692028787834842486117584543802050381328057184550881815321865779472246340144395429694889267430910247407316345396025196697082906412815720486227030265400376879657758443446128769283698601875719242276661476069208116083485804986933838148000496089085460244030738046299130272435421825617182962239966623356099122689737275273921262682448763237648450319807917304732279348604336462745757837054278373261745172960283455181873010282737058183880709080723761475336054615596266440524235878128965049801858642259457719080638824364670602209887548751996883735414332189517939326452062538676979860203716558205631517991061077037442337972729187566192049407789779656307267501472895042011078593916556145341135619182448385851050626820870773078153636631021122517137939289154904466674277087646766308267955084338500564448446599956690534381676722507997946854592316024682038926955613423486853494755211837057089594459587485266660809787218723921423470064677420115503602510527767822001085149655992562657815109921087366285438115904264073561272074849898220840172322994413906960137285852341616915725940901047763936498263265170965067708480811433560497077967833304460661400491088040583420707479349451974722531087762875720217525646277697252954715062720959073628839559247916290493718904999621073186810944698258146675037001422764403610269396283983102655193347189839835997075718560034836218420069809705494478152728482332689772009889146471868852733214101949368051439338799076701456019393772670972719603610282330716136281130674440773183935360296313051680561715373308869951968844067224806733805201104705093952868714051924740101050844372599505383023392132676528204781859668909182061874176240668545029905061806783577706487183253427565827490683525498373550212544052839553290259905273518489450362426479552064682496475044370229332837026530699022632626150902458372809472169750109596485046923081048747455825105047852087605982299022460087423825323664682447127978976469611034530402151599149657266616291675170218371169454164919848543965389009053809126584725591376607706924333576850541556324123858861709402937770849798621851185754263284349094669698010870349826208492601162300499883650281106792134947545718694298120193897044541255634826169221525089837667525722209612167246140099200775878802489720588792145447572227800465912734212885557481233120253938871396418312405990989165366653027827755354727351718349385739005209331608457730966614196177924914065583587300500640373098885338137217537792626247253721903897687356537119724777073046544196898251326821615471423134117526674046968465221596809242410733142478095571154034265896763896112095440570742331629621811728889180599134561546538779944795343164613570490526714979874849355476713649076545332985757616912293840684044281170971479100928954005522290057925333213922845866508310556609211553210219970388476157628019997102259522385990773354473056844418288757987511990604827618716319434204644730498095287729609154924999085350767658279578136998215381889327370404223401365543467302534522772132586118358157959674327764688895084265881392814448538958611968322987630047885155912521285632355853448441688004793492302029842521967927735205472808438683797695219893975452682837584528511984219063517458045964346042919222036004175198977998149916555867013156564490119487458293059204071297134136511422992062226488095460500651755443637496119638253848587305426124620491128779242605347868755007068168439737831154860734274596331482112286537391255513960995742032795450688430646163451185166982916281285004154783519253115163479482985360593426241790401940753364465684980630431585437299606353507083109323526754874075536042931811829460523312693125035522001207661909901525447591196721568014165610564464481788175226095687464612264990942670635359616591514410497946657639443355955702090523423921617819942766554595743987087414589143722767869830843380201241786419021712631542230226508911436358559185316772247055930685151816355786792438060552496692903239302479681113142205074862971030422640415302664160479205877680702937391558380664295125852737467878301497772835038495424709701396996229058781291816100749559535972367150504961353065291601771670770944591850956784038935975660482072652654885856294754316596152460972263672693437900969900247075395455754081722459724967865088927777286014683393675529134086842920384738022414774887187886900446402813020970628521639925755546652606525597527163639479975078349352989716581436629987546048011989695509388989565770670611573747363545155938207219360137371399380756899555615956324138510417509721962873224413632843905722195897536971107331789479096658506884877054797659400223534217110007732910330047850855886746980708890429121218558566804545168477384084859913627105824843351647676653268259515136786214037800996649409822485223031708708437655586493119040320227009681915306177642420920953643040684791851787400246195146011193904848932774269738331226360638027115030793942722389037291301713497179879145193198252338796146559037979222124758049958029209037459426532987692041625011998105883878159611218388744621886219647743220737154352699133782211109221852468123932457909401495226018495778084174876307732706519420940710400712751753767325852768682737546888122373554295136159687315595581451304950240299833640253472234885579288020282019809484601710389197412257693303140893644512982202498783203550568282613070995435143931006208582008291472162591864618561776792363487912907310674851160510006019737196243862274627978979082707774048758389604219025772007380402457047567007345215261612588752033273003273825834208420509495006301025040360819705962226905718768876635031763475241211996986606746023386921668571364107678171270574011745201809048987149768923095478058202859507167545427172944516735156939375620938675028119979632866587673105830148107969707448408551759837166627130979373863733677432538265738555101933276876036336288402954584048526804422916107030329227213568283568472480180221788478266790376206755510480598529690791463169306319771996687418250382120343103278987899004392000872191853738473464595448548320691476144304695960238219266274266427985648678272107542802799094633739549313294582596796622438169831183748173973740375207715061911706684832757658299413360407981521947609763340732443096231399256105298847576299828302983428343449135738840080032462379508386576867358995690464041672741387086108469001007747484215990071286279796097777232805692195446586967682183548352259474632423712380273233884886172450679781101114321706700287052672858888488278951852151036220738752429102402656211166014425241281952097549893827589877938888225869834231021603628049332229150860015654095464697327119390148957633663917580760833997501183583146010843373789128295163831062395970265715807252447204564863755702164395792324026044230572362779272747132937701495356335787343230743475234647169038680254786869888097618511169317717989227304414305460690448899234643611145183530701802577741933883462428733130565104759061965021774979930343909933325770120522147007492703404283384408120098153717608231927345380298208407878985655405570062365264054557093659395266250155825605111419894188662373218254181442013565549164400774547218319507401406721225661357408121119409496238839047730698639682806970542201236157185445386129417320321804063571230127946846492513849198752334281624566723200632215610055477224483975438534845621996553106210124858658467019564910684949369843523895232580550747763144821693198691994039963272501313706335908344998776504417190565623621906448731009370407914970242152749928812640229764504799859477483014175333840290020956769046544514992867431011574674829116979065891928065687812479430747393916359861620338562549214157612819105836741449760502680895898263010923921186157306389349416948719222036593149830081775271279518784877335068227355772458424986703643000625039611571078192693225643447369923914472347370969813804940942106325914349317205076083071779392660436337651397586578290699792507757826199673527490199147523020186908492787862137691482593297726021725929397938246619044125852146878806541131321433617233087015966601357327397815256030540909742327102337780822856368372968536509470221451254427112069544371739929465091992200386787452836175198278953339745021109723789251142100275782693551334511042472889216536075931532035701649896663508141141017364624626274192060200115009235610262477490183272393561031834535619881693400611140232947883930175706127155418408685983169919698406888870990947027993157400640576358329923872052613445920237669363282522632526336730082713356030557715220497512144767984494872530921904910572170945739346786929886435523469970696750815733224020852457855011777239755153125711978872522323435770105316403148621281170076862511138813608872526429697353226308669842179898669581613152984493578981963858376124576715455271708762163498933579197170931841060997842408808346503050484787050465300859260725941071687622274303351037704692085780001661473920166222546295620245469285321175990425034497959928267719388656582061221505001451085546074619378663393224024633345641856418101345456271445890609920501688745745328498114618163549647049075216976182485528065965970323236026386998060453880791666489761912986137059494034107394349030052670145947443729374846107587638327002150520473685978155222946418941672158917466126571721951691561348743212984736254912575116144763181349700379892433084526679014979023390251171844795220603778144322200347567841560314228057842187726794856405725513690109057951111784741504424594034954282066857070905123810857573054354390058212950406733269264764835932428306824845704039893994732362431377173631711493208982438498414885981654717567880673624709317557620799519355261678151943279580189364190660544014424802894933070065774500835550258887002671480786671437359549474826179028921054043329672638278324403892179579265555342376963497212875080898011611436140169326754941291094485396188367997178146269389531112297764188529819109259900105096329781908984065628442763030438412130377731212194512346246535591957382834222088889696828361969124184796593514927043744724847505143287343617031357622908136901664967257773105456558073709161822304675480548781869806473466691255284056236454177043796775855095702930499484145111751650084428808319160645427118160364625638724125501268847126943856834748632990929988711340270534229057103714989305729712823330353635009488752212199472526518701106835110587334373323801733864453616564051190815959961787244542670103871740153191067323352346799552970083716118734759196532426761477202528644540781124723391648129656770768712719950673646612967553776768504075396047713923111541438825077259331953099252029031846791247430377744153980684050674434077258078473116490853980303302600158351401759784551722408532851843395351269113619544369707379824216037752078524797863155110702818953887500696682745530743372195047376777685643349793466105013672308553380798284030917229064921008969093247490039949866782554003191195213780611652715403178488198174381977234544362439824384170667642672412485280182688235370799959838386493340679171894999387038514241060334994328583761826902586797028820117818905568603203694404363573569105662982805113775905820280223686597928841639404108696705581979845699941544294294324656413763722437218073078505062469129457544979152621764424229078325072672790539743968454891828718545442117086894734646808275592817419107685442532787933386392039429250919411431259618798129453564053575519333651535924814241857318404014007490202644989155103361637165709264819952742355682797882200912557610302486973404571640647648871558577351315643029543025112112831767965641849799581845421160225475898272270073490527962737703449949976829494309297533340605233475257219146535565483814758440988732411387213344377022965615761062213815610521186180529890757180633892463564396155218902304542697145914202111856116809177793719758937133145662349952428141305104030628580579237971400236466962109451446229722443530701430620227071852724378183537474717670551537428800618307410898532478109872704697255481641753657423129124161547639860701852386378863112916065498257162035933509583801356994968881836484494931380867223084466300005597626072026026843317710829145112715916741448305858886715676731402891857172404069751924074726068304548948565335330422193055948459401838395403049332072787226536389653035108497273913027482094966125962540618098121434734628688039640520852998182290145307877952986223859185825542470426818201684698165297431823949315770732295114655149477997306240856328360081224384120048481136444279921304971326658027007276185021957537575917607153552949013530957308877679554880880033468615052820986085114597803254528179397439992312759006892886694361481177482856586083337851465362136101270779248321931741148396509588668247349294499672129857779786887485371808691261622372276063294639898322874792808012117291282753327284588681584628475279715296681491944154755931732718490519051717158817998226451823145131739812792005485194648498322118450697137886350292915971105134575042694378395731778030405418451202397955233621301591967120473776615976810185919334804444172382931881052433563235549054463917239538001241067012182671774981757742062531067820607490044763138845659068711587329082540904478545051231691768365698706095756918797304170901419464899387561073705190578314298179763309850320279972877276679702127209787109834135966282270586579149918143810648086538566778781108420497071264361467327258260845703644422211891637131103312433525740319033946970259238017075843156879516828658588933583360100142415761078601312037407351435674283787448129071328772565620273132264212734937293323208659389287676801890942201900268770654925160330897350580713941657039558853881429028984751996994666652142454746666420139273995446138764485918527690704019192136891209250494861542435326786034422899715770844141407049982614321766387027228921879771820373890333951776287318232952772204895952099847625977135082631656785500149824628321867393547183669939050489844628477163676186123106769641025258438498450175152869277060577148346595796740113581345993801161508604662853099814485306945768190217649619789116773014546584420986105745814488900093418635835357374171461460560279031625540772096106950111401285683211003766219165288346289985312951157646265831506911149130235210216841127214505215227258604269178415129967806057708881052478080239680831327573373328439752250186056111647253026378443708301507726801264098046462255900482696674600254426008650012151122760122537606580019577938499141419251479901477104378976697656509401832905065477840264756018826826902699305745517846064527361317950709515174552417528493387797040526717518710120489064230365565180677341717004423020880028614738612867679770195487143047174903545845271193955334223287414520696817139159166850341045419472733389688294329936118010969802190120995572814802945880595058778767042474825883692939085242310169217344271769932189118323699001777290824187528976956451595493463267150653188779134936775102020580996924951544354614124315649431818125872709998447286693478501613575358224123750605061252541546603959655103663861577463775529523743427500732466482483620860202731072857756015501391595196237222326949398884993151926689231936845018888790867366167724915521254284936051173050931881795389566762075088725587135452147763919754028843508338461210311338642456948836050075960828816908909976343830092536084570736969663122011341613942168739887188480055144632749035940144365645789687312793652231627736775708111713272566612000562969720473872264838065279229314848994588267148089127906851163688107342887345309755955069107289012998514859187830902534636770016203043374422716450081383786258688268566160579689878079473715771367172254914653034177492259578795737406445988614705287644231483643003228634209515533152361607034568877521585345408002920533998173975097951900804609273573013671583129684567722700209167061834920541276975386494091002587975332211469328975530999405170955528731413649043726903622113729054267461916872318977459071696230089104902422430647596371595880844488563144096521861221787606720012932134102668277034263801509588453151205336778376717952175857366537910258526273770155343927536623566052231429089414334885445735000456038517691837897722186188754113788381935608599165547273191611439415094484629519955358051716012325931457033518989804076247744512624692366519130865649804803789637525571295254967182687188200637233019627685688797175223594332556505470935179932477920395082819556577073667388895232626312002871284865761066152804639141866021050809445397295401887044024566809233642076948786640956045812687546616847000967184919752518312010119281217884058176767082934819971007562635553096290870026427254956092579548737520060438989664369468756551984232009059681483767780080676360846481381530352447535162743552893399391169571841748673369376351244427480272980753501437216161115080686303782493736460337375215484203992747916675202292056736829349957665254349830393778371990236839202964280368942802450811112178204828799109180545697068994408844239778915832660221645165900140592902747413297082787960858551729068798355200098058351174156359484818172491591601717082501286462433156976083421059844719289894380451558324659219649159161271012721635127826648718848685128083960322501257910618861283210801445482912470408961031570937569213877011487073951333175704022339924797718440346577543796071938116598506505894187853193107003198365930400793431484413339340961178811955864697416009962760629739548146770256537105113026720272836061276239709816197716592820825124322492917742961553379779790207460950056198032571967366208690796464934173131043328578273917950960966725657194867653957122764998811027150326660870174792476963283943108608398357764405403404462584281190288100769611941910844445190125689784329325757468106709874162679207078073598044520549378433996706561866685200224766874217201720129536794604650904465892681258872643232045643406436534304754868732947225307472007786751687951750347010353900858698005967805371918927711972837693219658288929860718604559223633741209014133896993491451823414641522464706152891774884175183231804812773249280894988167522670895015727995338110462951113142362486545649849822081072985881801782931436954027249729445938710688274309260931257703758557784007401560419872464787878862409890994139233017242287877831231833752706550075971932267812498708990093202194096730111302910402299355754376057132299063237383215695998729052185434273060586872390850482037686303430644460969134414166619230000039903071173813826198610244116587135744366426650990522030179784449309653351650809673772294696921435989544114542495700733193075244983231278520485810074664526046143514952730539347127643300557543139117146861981775671850098743932845377710371806714220818422263283924184057205908920370293261984493666430460881123350650899649199158139132792478198885829936267106343436527390287043797536049468798541307953755281390106696027995475357936200415856205579398903294087276592619191436996625950040686335195521641911800622825828469223587982413720247125313266290806038766519723965822202767157538575381351753682934073792087988085697207985032238948951153751721665830702962395993635732942131032817156101614668112341996340454603262036544772772423289865744198210552861566160665338251857211033130829414541103072225108381061902634066025876678494468087810076531628873469880283438443103469374069507904737723520873985005246271674787387708986729585764319870512072538145648147295479956427300797983867649766196385906923250679199983217081633419823544653253269779487721276065525245321430149870846726457966009490869446960477346494435083744997794981237731081463233359569369757269158406336542434271407586728009474975640224882409898181055522817252096755532835763338961727934053188218736479266125486854590521280012683404139208052046308136913820062132238656304751812945692028783485404772821456216121847775314846291604814109382239775175810624666380377737087241286901728808607314939237831110169834839580626031537499262781093641632209900455736043079100740521848855495602601761518179979879437877944166535708235947622463373354343109115608288182821733621334179834897327150418395588001825439774086935400872960481270709403107851829956629429591303212258035740490579093217114194341050497318184835637081399216983346276074666991048036123199154122856247673037408839875961799466945885017085685460372499186812278976909631009922377067310423664118168105097117357500634454024969963521536154216998818676375450353381491491548972626286373609447795856590080025103663880496300743886545159257828631508482541259356723632948086899232734181627665295465909096300359282932815596417880034931952469911884874975098386351034642975218168130829654138528730073136608930542447574346074902015783034746640957953642759766462610605550997216977413457259609556002552644256806848185294676289623482528729282467387828438396817607154359548688878579591756452029885343563709556490428023783736236829935496625061798290508777808872362318693130179786372813303351653251321305650109524610494687503194212866494973806419603134541046649192395118523381870263426521574591869546314507541648731667583210708061249083179542581791525015147697951641519690747437651465332846578918614709574472933028460710385848286729917347619073309117322614426847533964091566639676286467543063851224715549900183125689766293776614959574829993745283918253954915933385957618851102290049432209739355333485063400419986605458687010072523011052138536779880362179719339676426285427646926247707426273789552683718659391933291553616189290564261218412869223444176487903153242322825672239251945874704973218290257299303784420025615448902611796654401161944894996983536472935839543295575887323851398280482090979099051478463233181927504779403280157107233070403273738534379004370760626186204569871839499574274853811451544790955619377741391840573808837731024728244643422191332253548572630467366950496498480780402649596634591189258836626704070727246292329856241669129875545733538144252163303017856705123061227959898972778420429961443849787537695945618584488428770531074313672667019804887637133651156088872743702037414517404007999075153826172046214382802392673223915051939869598870331674275897346315693920370139582659974036501968613711037031804786295855310350984832561873508027391285393879960296675024834816620516605171313247512837958922798691739317408219027994393299937187047711951379887113681190086974227070708798840671420570181726069338448440830636894649364747907022599054938219104680703958731337975584609179970346073156087684985823721500311340953733072182949579778208845240069868556319527959812524573175346064870176888521435744010685647508068943691298943575028136505163266309489217009853573341677310120756226033537545443404450647276560640886957467203453344611574245971328845991256504346558583133480888844324465499620641858884477373814249462454100944333108158440694482635321055874318682534360125282904985713550708816873485448285254685010765803525385369651201872060050542500021904031552794862426951882345025940265478217951595333885967345587670756852174453682003206254296734295733993144737358458534715695939206509649517629872292106385909562386782690343676564929138651244281439615250072895711747217544352541768180945031067779250420716431105589557143815057282698469528542773206573106034492776551478815880755583982405216582281984312925767095078232815038887348867280542834294967738349548805331842181618489938966136771898021182136879114140388009946087969424280646896767053239476942183124119124561303856302382435583190725723973549254876176612793549907809031796042174414713944180975761158828297259049288469228048232281301729243493449082102223140494278090459009594764120452063587675796395376339169595787639264360800910168641541664001809366987420721354845041104609526874263853344707264106931643432194791625260788598456804997431505126120778845936700358478996219375458386027584038909516625211942252274368128330813669298877238142022587521957609308071727409525277631721232003893397272769838637706908065278885474028120359947873242032482341332839111448352037544299978798953354432398938183533599211820275855183740657098806512319942062742308533345268421338509691775417771106060113779386370912290563522367030624641031600294856682136292489561993423127554538318364032128074748538065726102227611387765983708794694510138030490293501628131762886933241374146473812894427723696789827648646114605185459731420954611319904780676256140214188238300236001618566913632631045497986695482378328740660115484526344341833906561374122443400703403872182659237191883738062449056050406395567411615629154620687591730371316280405425564851190968413728994763814035276787691030807511098121486603847194968899534367986156846357787204583828496774150560446723802124893649310272861485768045139374388059419447613737731560303541754927951358013818606165420776747621747223350815247987994687016074026933467862196662983151955509575918884333918585910983431395359250083695282998761573209018473925296421612216540350635888108311641843273282908658549899842652106787441694569117634548135896238168641712821512835408730542081500197022916154213453091742133889755431525748351301273548506739208446308524354754737781049601379238295970507318166432607543575634031955809804150730755633559051633998102676078534243328741036118546537575932124623371663756567439132284232398421728998845801526062025626082262838189633625513883765875397059029788158183849270427350415954641990652807076265009116574313216995439948201628416454601510946588806584735579543438989025827754788540730493858186567476426914595041347846890878080804333707918171921520211308708206786033992615164870301018302676466539466082934334834210390027355606688606432205496366036324077642144437366687171501941532865277260274530141924873767449518653761619098643747800226602797791606053009145988923588834549562328451540759709232735239317023318363757602725294878256670327552122412081081942806886399184446861512067461454695830409975531235992722954121108657874873810141467607876200479892307160086387913920711702980745690140431401478916406141221620020184513434858812080973492823222324617160936620891613558259246707431164526962495281240818203844745094510813388553953877299299569584269511974810309967307846016686987373275949808670970704454151974315541277548556840750736594796640817393726242660881955713226827952844950533075080694072976269720654773587617028061617357207784138167198287522767257611854651228946826728229092341749066696631324004443111394021030496178395523271380409676921363168134634620964714321046322832089461752327213880547364647861997088760098686674679296134235310004292832838982690875009303748031707179788965183804792382139134335903866064835616843272467514951520949717169137427163796424710330117906367813360693786727167621376475225531984727207363436230698294486826697694752312748611687053240551881936672462392372943497954960925933893125710894923957536524400097284211550855492396673360562467652998028793144644360853619001619210470112353972924146199362100566348275078553267635776604451072597088395870364295521975180167480825641982958086941656170057822509438990802627400199844247332916412410574429137678826731573714219363883159912846791497453364877491620307052288730292954805215751902697506338407666838520403024991061101124988666311558023731852279595987045530673615401676736537574910793136580801975006606829798830352265416954059225331466972389148741940632890262897797422694265829307041166895391274115975790026243653568337553750205462694009109751387490757285866966426173084113154634589718895607531249000491631450700533331320633681710764477094661456176726338222864184302306199869422077372643965316155936590432162374328901372190648782771876625566139499876027468344439012360127704837131859466244585739186272879743609666166244049167205875222717711340839648020588908170862886771536115130807237536457678165989084393882334443414505244974501649944818400182812064566503395078733889582486628224016310154720197913220562423301954592368067063979525993329182182647641567943749841701114498667511646451754906185155347878898125692028060522382152582121918015650456731704727821004250793646632340913450726331812566389916914324912247465093445957908179205004221643165060659838979075451107296225824701303767069409689348683695270781398596630972531106106749777348965288529455236389680075469436136797490171966814128861600584057522096606064103031055576764455924466671565411481310650453913816292308563846943146649039695961489650733145685071523080785890219705062162701955820686302211651645038115405789000185681556601888193678344521087912855936172999166119781476392652547542530526998548208445527089571462696215294018004595801632759630882008730534797315739029945035616788712994281250040729092392890990703975722223830519113683395288174595643258780808281060537892401481696922033814798433102874155065056453369805115939089447029602002496040941595342968619370513268150216885271049609947001143028181458014778589729705872826498238679500441382420597408936548013388188751048068965056219344533314233503780718803279909661405606298410690414996261072092139017724509181135950468202476850175280010974388711663064529986969129798456423152561900249456740103796242015626869572371297488373680657099166973157646429042776504434654229028229137711877432003288653702081017881406676286143965373893769583594649344362970749303101865760359289801248084863397032694826308502904332214329317013748025302624888265117913476605977877575024177750112533094056753401791956705798721492271763745265247800164567149049828191199606011958177499011913486763731382520416994327267220480651391553696320739243896225374581622132710308586256515267685396404037165900415393092098535509702820110037202619758892765394077238535214094250817761231207994554512986002459348164641356685762488356938245803506301236201434540795649101532578031552906596496064467162128693665557086235250758225651055257309895901892028966383860500777018254885937591720980384427347902987799845509450647396939070134000007816103513041125395909035098566558959448626611588251878047699503602970285664429210894398319380099491799207601028611850553964467466730701281877861141293363793602645897371533629364034178124152318098790200019072281717180219871077518616934243718676003212956580306481942680387044096991520654273293628123687479617851545915358037926837801392850270180561240921266129799226582921834512917366589307198777943320825552727143417500403954667191687526523164454694317131563498385022065038904270804600446373598642844229567016249103778476267617563938293776537101039712419599821022770752362244426765503189176315311072369092013346674829655910422019554282100510229378206615591354123459378671463084143796233855134056042998394859345769352101855858490829111940534354668786432311203922499254142904239988300037056239178992924490628656241717363294283351925061201336272515066173350373446727156284341749410812578189799951750642428219638020278303301140663432805305465821834447685973523347257965675995335401211406166121456770861842519018151167215782624173677722601123749167052770369688538647593655058547667766741951499884138239289966153442608981699941544859426373680576010470594685186030631541343117281140935425356427264291430802272489548391660165017555442267037750570659696690216873651403525991308712264185089983784479602873448621692156746091713005212346578768135005410726412616191157789607366281583192546938613962960939036028280540022245189176681005838522600175400993626861178267084231034863050101650127698395463191292830039315563684792775251614116103759852001313559287940420370142765599944543871439829929669681768923596095831869495971702403563247211632604819198221438575678166373457677165102553983292134668184677094785110129172754435712349784060676227464102735598049062408316850337199609737566967474579613615425118642845004913024621704918459996516307434994175736248482311166825625933912244723581940934732137004556500953277951642365297883599532089059127727106679760326280724888304982999144326050062854516966351166975256224990405568190781833584952178057302930990941975194496840347687851999024177388815804336391621014414985692217807097563349187533836680516691576889091706717658597013153083551545064915267974793532029428086130279987462643367379129933608458151246139527297088135967108829997492005348546882314523190765972549699931570280383830558473276213550648566552636105909634192133356730966243096529239341865780852091107500587475952560598392944181900054876467268991222340907690062313275380976095992595733716609925622483922272976483458160670990194306698156175302063737507282678363964251314702393975572636972328160465453221524844824904603186701429154741920101612793381355556770160099694355527494412841666637952654860609165538835412474079774201283214595709006378580791001210251081446733303834104998448602356573178208290627144078510414369647762644174011280839889306556959213327899887427837260830362274978220433727393710028530366358901265110600013809490109576544833518471330076987288042528999765071682799794245336739192776592856370854607474898649068475900334545664514480547794854925563792231821959399980475239634724106478981055031204129060756076067853682622698057525975845986578588112649697816052421087038868593110748527625957327162089883326213150745860441161861657516249916906255542107867915789163457301828851085731646460998428770360576289266962791171059487087875805546148783447605168986525213725181506608026964694470936560547027777947149121009080771583501091388514258309464725007281472573428606266634587497761260028199078554744035478051093952629332887871796050480991904749511673581592016052213891687998245717593070269646897369306203763952746009792355963465979786717812154535253565307584147799256371636623896109569217318476199499194414672646053841166196859451696351759570914296378727978581438260545384176432303094497746148469551404876989602317006336144959345013451235258822164227991127630733960848754890242689082160507332655630348477991886823443534704285391974938770237748278578271774473056471486016492039381886386760012383978198115186595289832406157188578781517828267932244764641833427699359767499059673101839069422072812692684816001289682210960423723926110662379594207351305310839633055261982966114272563656974571858658743588278259773187956592210910931791942577389512719935023760462065313404186615940696480347681100134595445209205079509145804951319855433753763395958149133107236621824090679172034518006444127346753971736886947890582446854609778000884329605608415603150006882273960006803489207595300368986520123494235797287371409009669096795710403437978870234346835610540909597277299957310711469332311715195089816850347417540439983442182412783033500452694806699766101144843963803713293125549484572182733598183082978721334576011927991300187185548602622194098181010012885900634682494083954831481107208374340072458386899194431339226405643023228376929889859968894525138797474177126141867114631238067890641724415124705458587737820927397247779068919228440977570356193862108584666022610223413710492504180357966268196894061382780390189132466941057820090882662156179538307292838534452624209809184745363961453900556826015323706805155246664851733098936055904385311046181478195540913606709207568674696650681189329064993789281858559823128934335921446603893354879544843886263118061823611546839461006718793736686608728898219467676238764095915588985820278515667337267074025251264821212714612086270205367332993709995922044533637503548762857748463368924196784872066802045549186108924443608755740657897401251068724814629925466886753776742032621184984659670205145540411262939631779646928677122217328656984417984736635673831731596026976289537939973218694140450723817217261132468529890644647068254086885876581851048570871169959020098496211347615888057986549051737623520681518999155163204665761636672826668773030074360197981094727446521227049091070720373272132364644896003410799052013910305813014725417445166871651633996176677123903958643002613176957988490459483190127049381187799394867947153937306184367311732401353526627980321012082509541998655710238906387069157837721146376989630058817478167300573384881240810142394030976997110334003774901056405775957041317991442461181311490045964492986389627930931166490522162505499523115859480516293010804247331826287885708776801663479126859328721605281306803361570517671043647142543114112437176414980040317828357446295647465378685359026977810016962576493677924843853661469498055665346621496309513719108305218340250633451353202768796407804065189550425400543674217919682002403817496452973346277671609703966215947990948591390003080426000167176451211249868570836779061003074263505202076771178538574914667356772181589588886694706507241818863255267453603034710019217812890521399822187920985820790862842915368987142243136255681716088671491640390253365961830313199137348377896754541920503164280195416255689416987919391856987418393330920968390042611108480717685935849068721750864539967675729893621329091880059220999251810582254573105897721801537914895375060937002916508219561950432492291637384823600713491659881710208392073730432854787381836602624570967065136289189823439982021103436058836034701638851980253605608661858751916826652803872339410747578402348160804697740858189199169792486379650674343381079658014720931461300585874788992655689885998959131128638701295143803288244589845005006790297694013999429656373994188818105977499551746584782051656042875174051031762750379803850227536955537293126666519069446600277323394089589929387709213619716940329820887468438317129710209288688110771892453078881987495382863068769333540693554103746986266359963648748972765707346009052974151204107191762936483772715400627557888344448495141472350851322997946338311258497976423376864661056786523695919376492129005584394969587980622923158886224288446604289121063940904640628801196435653023159897164571553741810674687016537855129195487163397470985173234880247572686305149142388781887281652313366941583492737150184199116576500620610690949351734217137399059919149026567694548349216965516937274586735540882656567616780143941068684703700836339329645865685636406629634445324503842718933561105337010183220094292913570740035725853162779280833382056262666120204337978169717616444754748970252221097010195591670958330186366036542478309514689866649745493385428659476541729247474096585908980955935193739960761060480190638294537639339282996963393071742915859431592654158720024913600326983001119678780484310162070379336414890850334144117178632925894055534731201688109508014565804292975320320188516740752720691862999305615451646745925244501869850575257822845833259471168813747458538197855240380347388966529518576452825006949796383521446864991132489682324407119369609161593076902600890853583510521823472220724087531049511091819761764641922130981546505165476694295675750187001228889218559734813041753268552826200758486463977312742224406804520720327495085060423920745048811530592416278482633021666218776142282395158156146717299264451860235310641858325408951688287165845607273303658685276591944947100116388458007222886215871376588246675125361686497891212732279154605653558941148202072387925696115944591970482092481104655064019010316894687555449994274688643261193233059499527364021771407217090562232315196007812581542415972177926126930542489371899991256336688916127198511082739106993283212763674135222357263052046270065395464140185750290093004006169478075267080662095047388307870601230485497587889961438088306908959205627943405020368499774903573276937692527031532088453171855241738701519617048544216569559455382844897383454177694178424919457732023873415323078964582748974435229687468768678312159119398846302840461314927428947409605054395750356162643371506226335928583294768391207098762428580498035162220435925523177988814415939085008251411531429231615808975448969716949883500624001614031069755859324798583824965928066541264505805617425920768161643715222127707563871056712687552665170013133281394166931682926998482116598974021922575032900038551788807711600412190030099402578367753107810606826369392278588515068907048489917878667096911784661520953106035942519194701561094175344498272578786494126698833660526192567830070559417204670486778149585028436511517929936819117548917614998024772912346053245362219974927537834776645516279613200233840317944833017863251367809100763316139523356505637315765728315521029938611329361594825266943926728796723910914082305580498795322916910496656905132417090791164274577232910476348550372543382419241276056477568442504152907496060422565787587579661029157366534615323874358667561096792048036562160128849737562707504761999871603169193659541593917596493432938430555285052252132582838751952094766164888598356694584862975312027234885812239628203954209994958724438089678757638953640086275770869250057305421840169158605104085140364797818934313099200442725245410889272145497022538102809292603287323707161065608955031927732700916521946586295556616379971317549920654057435958807182608497358450764333925184867161723105584866837012645023103702864653499522706504704915151234881931769262238853043922965374331864236299608459234632509479407939819857203572698403373849603790090926887948407286201453446099015464679594723014061516696665931532482054566105084179518071719017871977245049921462631459084780482027150122696013720285458106238344232341495524294713886971136590469393919847462767019536912318249561553820712288609817242816311999514836877802410385954113546290016023306201731760104835377711624782474653345229910111435892590103692568738265313808656624804597692551393277280790934406829812809311263874682059777664176493238929710724735125563444760904602721068227260294411356122142851107680742950625683035525078020753586766024792381232104441223213206519515428876396589427485256303141026167415028505031114653695239543556816559267138640353887544743317029808402483174967975611634541334829841349486864711859574533732221454330451214275826715100347693812406475826332521494563981792042988735259926258198929385283829160878851115010923743491133065766814898965530004210014488709703874371416405651464157018788564771169562095022528901860093808376298934031588806785107343817416354335318489799559925796451505184283503557243761527581697184118703215082955373261524986385095298712775718027435850007112251029523979684549073043819148818027515327805131829747275908748185120533380822380202284086543773029463476614685948743603443690597216706654144615776733757203427816655276546163884561320689452795658290962719707416316859628464761849225052462624245574111937789138386214856367959468545232646479811960594176706968467016289515220139397507027923164107082386092886010542268545298400536126426383006666542141911349203250697559288780630161899729038673031952928700766481046110540988250953076278561013386251901361200163128540907754304091066525404198259054123777919307879024089815503057527282133042369603116551294097214637571379699512629453183613327862185679886530826666003396127261564706654211782531820239649519677082378518965568788773792876728417613295019481819988484534348425579814173419882984504584807417415052978367547333372843829861613695414610805652905244825808702759714002108619697650235014493419290234530341358229938908631823967850704308129256458948877116413115236795430007168833904211430475499617111767620785057115124117334924014980740348730578442959812407222305890705462518073376012035256489039904662076005453752133789369443877224783164891014742543944948027927611078406888368795742758025465321064070547192198157496432641130577513081566328526333653032479139271808594065950171375961435118760247756074089044149276093037493418657916318560692119852957465446193927304896086214540180716619619149357027509608479639969314622319044046106403966926872329932448174200707805035932361507056653863793735882894263729594739502975238969387203309494401985521365891963497429501698649387662960828452997602228309483094182740387350584762322021850005248965115392749241957069147683714321101828649284174202266796543817871746237614281013056830860457192811420314237204632360355370749063917137495526695558785133033148158359931775329803700047366730778253169494424372358250742508260029869847540964834215082499680588858670559033335680140113429050559568107305539520289281543181190461041494272519571691993913022609174910638139015588134479081718334346819734192673851970688656298527316684113908373405579259544248665953382839658456845423918680211386628200013388563263761861249381162495517765004656242231817364015148193050279707495540874659625640199728680126930256308461375760705291056486416329258321948372818234212235916257480999755871669213936526698477298668707704946877860580489024055360712802702099633753689601443972747822028472919065408833813520187491013135495682289225289137858358567723020232745786545602444712222531489148953117059211099589633665443510105302844044781184669221348798420652109573374808489591550261495585988816204888995977238654442027225370550133403605257321466597294004542597688131115534101411680950029531281244633014977270150028276899457049903213722939136900990946203647133245741438986940821952448943050927798206314983347600932725695956262147827582008928601827402953798712071138746152758592049978846829041045070838069155175413740677834909091317176195150865324749254723680530509582893924173787204613666810751439058236428924203402416090029864321141735234265158904496146273711273627123076125170425495302798500403102742846527487888809707102536503549026854493095478752051040173843039875553291664004202618261927327857147088714756011564209184581122164683575466991153797881181613683859918616257916403986891891023467546093210021230624772786460505451103391950167983678253911744627112907724858677851998452892758722439227466357618704906873615409895722482428331668433138188410988120123597951406211493933012490150048821958889816482585122322760298854358264948282546620999948034797648845398428520004975951006216260575997311470224536390289005580769868209139175729243006804935777637943827372242656921517828834605192502299622309010334326395433507334973888828464773648370988890266845378349848531472634881732288922562714896138916486115069318508517093857763698985585420291385992091721051122009112925236646073260243732738177556708446409050620216086828056341562487801404943193313897268162273753901954220445237431236071799988911463095128025033370396652161349336365063415215694005085634872121190333787934738072958207259926896640284460166800314751175696026406720805478913143279815993160744639479320344868795857270519356476151079031572912688124704541476933667780483129372199303971684402596565627966280878449425911486031965796696214224686584177002802360212629463944014368347856949817111713026990953535138546347664135201655116196084584534820704229497032669487185600323285724572027933018341429734581562776696494239596590364282792931137539646085774772993002225906649131455862475993812680042132466106212571981788518167531446979336973812998513328292739147457237322073236325591760452489164638577682627891781999275038458577246753931784167895441604766852732547996139760949337210265898353270951894971602438787164763558640695559312247469856164826038379231032137152553984955588522900191028235356143036506389744960715153607954835690496031111182860284862971258021242722120059802439578954106362670997861967738048558514734838441894111745486665056093259553545448555712692780066750274418258694346729809605569715913481840061138894093560213287629066599067057578075324721671374454878249871227590495405279312454300851519873202390613774462730299225755321244621673896613236300402018691679744659783385158571580444898244087079547463758460664407844258800667089302013729142782522798508492590829724217595168189281486312718833055854298819023271863509748216437410080784571784517000440229672988246039688378185643533821149611598996417254994132904484489937945016830107189099801462654413392984616269838673679011806956093613293186208837741297038125136050402449049649565071687667120067891767782933674401926926419203160221480162853586291766960979131152023089616270114852269953614226538275421516711481983342839121283158526610873329210613435195503752117758257988844362432381251464012393465148631861575281081580825532130057389602888846904278357219361339237360483681700466566823103901104120259268518231474294490534362952135871723523732159461518381024908674015683232459909646297356848331833088605039900538204621386758029024375679214651798758579317802826215138473974762062188969859600594393315245653934306044457246304057556540169033879133159436840846141022380605740250402317052673168770312259867736322242575840861868035809308578874113157785628366001118864134123423335042601253238927733007291908156095333717508406230703615983946105910348120564753581346695227556369094148286285892276179806980848932498095004416029946886053509781345566710941108678630307687156370238903180705160596563403312227787410542321169018324340403271788711005420192555192626588824912972886876257840605856056278356469850229989123992808660746160299504726015638488633166061968033574950050174126906431791615720989469989600882228796029694167012827025479570600924253906407894463829758898108780850513849177584104410763839685949681685214767640857729306861128491651141802210722303659540091535960145490110307963064674296805068153782779842684481107289018263724954500905211814522377673995943809350954296613484772791668682179014306781364555458892484675938692216436266300891702220697654496840022970474793031513639897748251610297864812583421697946334694192893332235562975805828938870824040287288113760525020052713173634345635936362709315142451901574919610655574348150732546718600034876586819137967842372058121686149867529393483454926625602685935727430887307777136230652809963971776681451526352291476912388371837348302757047744007766832661209033324208459033028767099835957572118555852857235444623965086533625002653074912886447491418430310388227121526990861768281232120048083829481621454737126363652538443797437011318074906415168606265635655212986137094997375116843620172283053565823884400231468313822955630255096758611194033442172363691431291887099635551680892901654428036958830811902789133343424055819575096113154337939144095762972372411786958477211197588032460189199203441366388464901372719373441397650441150167508154981258705284745584701879752796715829864869626692693800578002157968366733346401662408947488800700120167158776645714624947796414478169820602430043526113758168224651032579056437388312744042091583386634515002229871133693299909295735550807612173843352023211039796090253805308886051259047082724249021394467523694055694842832388997461839705780907787047289700756286190835673825205252036336897564812821139745909083310686522523412532774091365017794493445620914864787499215719739438936327206611224078074690266303750840184888963986134235709259876945701863409120838995906808293143302490489466440996113878758187178023100070337727094083941520229709295424759367377180563867939618661657034000263146514710217680948912210170157765558658047468014116170934738521931689734754076608006903583027798744960261131406896907457493274743254672232751900293282781327483456988858265971491040937241267283339424759512151887671825639138824739782434958201485884198856355572157516534640879792925277531772924851149751401167957969922578919131290409362023844323957028219244060014693982792131186803546637727449307484258133198825599563485298827303620097273253055261613008710888647963982476414837354512870537547985676091069316231950380815702030451301070941372633512882375119879742660578755129041024862396790677148456035732704469189516623683755277126085459504421607596259479143304243751518962787389304094691373543766871264569327638591715498817039667635716370178801570223842861828418129037826126484099707285436726948899127828066929156800512965269173628552391367414885131644295752903138897436648473198944168179062979809945185182841276862760091587234629047843976282695705801989288066526982425089844017651626575656095776466353390638617197113153811928564005288055559244764743054325936621231185917444133377044442320367295877341826352331683547760853396152791674478343897136841764642182050336026248453979865124446619933530971413411183141899741607462340010351344494365129348910775667856875924712721402949249246682949702320366375655475769018242302598146992400067017816900380495974753739228953602909442605922552006462108539115029013224855351341550044528977942310736695150665102139433105797698218077973878165175700914953299514698845801704061843252141341084157157233032341159773782563811966042038636027119244565965843206188122733038165616519294951661494825149323179903717183168280404058866999483162113136965551667886870568918567852276697319527972666990805959065919627947580625578751085016999320569918877991390630174937541183613908922751945363019058424131489714859938861138857868809060524643133813614132760148553326302184158503709299649440980598774961292310973714545417139898957372458562298757400470699135351058137362363170652535609046350606421181707433181909885427136856948444673418228898469986414354654259783997593360562216359054219433857013398427322089004080770554292497266629282094737961104760229599808256897405366247092473542698934727161488590370183291807356522820563914723832211730641739948179524759281888352459319471031709775904607349984669436881461852816354642279134589229049656969708793621391543638763352809536344316040509009686896195825006173393498272798985483860182911627078940587317448970144609115685463792965409781107354014956958357940821871286145042464671966072542304423793292540571079004365743985652948420276874678872766318288165418754213029228518140010144659665138431747063974402222150807970012354126619540401798282472793798617488638073504320560376368679998783952842598307377397961533290380663650514471419799195836715083479683747747069141278443167572661485937084093917048721716530484976510368160557805782477735424441927662396967312892226027724154925181500239723305204571991560781769432111523179902204878092054299484436757637163890197861144553211722653555329551697158048995169611549574475835611315599155979796547948446943872950268969540143831640250463458007427096091010605944179399402296045151942770751097946330170117839769776218293094219841903505151711636104491063231022312385323867440558210371538132548399930092498054152350210986279953125516624283467350198522531261998500258371734853902681843395630426107450590289500805194553377253240025209658129649076042012190037660193033803285053978099312153428730080834895222073098725660919071408392277943300698466604156364976549692361271754034399674077882735183471951179609031610495776404743789632440937699975495185401567908665322519641719962799296771694892275062461236487745953144195193569203780223272848293173002011869471584434150003607112808158024342263954483655087142731951519624263412001984721489193342599509091072042734524590451463703033206747232695935564991848326810806401020868981321525775534320430492206132764360396620507027498704138029419640547005486020565554651240008080740340442838918801651984030662323979684538657125859772137525500142232232323963120413078820706976176295038131855553641915083808611014346321193004018486901909820887010597047963902059983134552991819348294942465803402905916973134676313462294581347468241734898645563630075517706036154402323775618390529114083945052439860710295288381759678654830214106298729901799077104957016361142705240605357983546061880122349686580533451003679190839605592871647891318816675181108208856128460698916001903450551879862386180776690427778004841252262453145788151054777164756496984808190131656689164785344382138173915759448749906393884103835779679867562389306561620063478167363756865641952376278782955103559463789868564513337984132863494001475756278829080788547638609000090702771353846500451636807358887132377629253382742708031207934260889960868756642366770936434315863918484550709491654826433027484277597772722101117094035824831020094056341005678065630164313187358801342086623833686658838403404165269337482397869097114597063638240547101014115871865563779040627535681611347892254311662023882422535843225039094990578942481899303669130136116824576657913822387347334066996421740793904312954819697861316081251683641005867481277047092277395762998049281585827248131601034158512760940971177752741787635497638378191217946276629456333122018993239554946131928876605904229308477430603046774275183957090178039446583860695156294727443797271520679470407382970426957744099499932966790059600812945859962615078041807973279896851001289125918843223554544432919948433860165719904970435765674184935700606229263492518024245956187303470604855844665360361721085796575668802278271134061364365756981258662217791222123236973022567955395105410825027448695444872334983553294839276351523802547788089369759286462267618946261551051535024189741076763124802547570316843472659783521100058684776853157656360616995816799407800743181204414276590404724736400941387609409588425664186198188800913243811946932848118120668299029580559003414979448245988144568890055292608875859995991137609723719048669766853640218499603978559510901554931053046384466768270373523119473403460984044107707370691176545703080683379494695972921168791195719379137766690605038468796403866144663669991854913173233276079828551315151272158143498161394149224480992731475937129729651224925662462514140641034888221646560066312151627754274303852905053901035350047438000078447775085640139871669932003783072819955041912496111346601613244897090698617084090858334402424165827772894663572043282277272996717480907774487429127087441079261223657243407315702232904878517205295760568854160815843901081199398292085817166938704898882580276441277757882774213666608447373628465433151228958368893764729953279935844954375915224796905035549439870185019647852387388945177221063780245561518008660888957762448385796310405008432449272170406648205656870121123090009763294095082746624565044724792338540294967606372271161693182287615863208626489786826569382927948451744695407398421567803081036978612811859748399079050860405763705182120234828291266441517378700102782456564294054618940957797255009607660892976507167632645824213195976476067139011720518307621742981872937535912228939832926388553750826223943588729058264189301690832913032665054405197618068197793976011283536735902815649618392842155958726026804272265633702862632757518730911488312738014691657289383810569250859371547042333709454508333896566214484228561610793842970489703759298640672985172118658972625670437380202686443416156629617037396127359246871373868611661096571464611143722557079445287902396637376832093930777592836152512660232284448560159186852116112533216961411027901676178652170933801178489039414763287294113900473619105748309561569588603909165574771443408331236392649358582730413842154324839901371090262562949067975332249872460838824856549132128463386414594738264907426629732993157365457445556086923633762918669856843568430029719687646108363084147605625092123119891158086503881235891422689042444932988520469350629177196913665431911441956776158223916981289785674329502505108336943507778115282061293027990527196934594646766667952304342610371807716173073838225458605828849933155339208021863839718214456923258715380334102626457628158151868870243497780623611540823539482461385603440212453869914736715224076684792242836432655841971305049752582512132630635530379734371189331865099630290906104355141055846297791277750340515138583022867062143391219106860463413964100230442473302353769940252348649934254741033488075714419685466926356625254480998870965051933452025496354828848583454734236954940775915838862048569256955155395352886697351789715253256965494661779011587605752081245423817135856335376775251351858111116517636478052237363356384976371639592929595036902310684195364684560193456356239751721838598248000899402385302125758154711582373829410268580888464298391756996553657313019727111888754370934884540753075608753872124169238234946079380298233490554912076846644855739205647036540818717082774813484905486151728877525153345279382177935343475907645720444109417727559146087213562754457574556396970623728614992046022605269362917429942187142572548751464021525480556657529831842595682477687154955832211306376852733703652814404289086993469412873448987564614585533842445254772778246701522901380405674725082185408311792289071466233809308174061720041049715766677308194729509112873740431613581960315503430064843361116793366636272822142187716441987132561981689613031816305005380332101913063182700522535288215353957947667736188079626355090063879929275483590026954384800612282632406363182799119106776065200252877077717062431713261948496640364887777109499108347266717008642314366424402687806929497323295660317832284996527842439934273795244446285820465625408228937781197271596908028736811554134895132988875116783967804029895043163244055768764186765216052391302690320051747045229641697439040335713308110577080573540051374906827923331124315283782504892273024153138009113095613798897543958866137738492149154854479772543117603330406119499245267693638996521423651620493564177413580509300914042597041166512503276364419237400236061364547619794682373367564575531788405433766530478495082220103041081960200505602848289132830394550866185267288221257315652989850634461449699489903599954874675717851161319997625299950090652011254537077339273661625479488282434313989851634106524909199388138805365016474081451383241631355674543627669525383179953999855649058002597257743211346351235201766046371895192761358314213492395443660563857001669688943134542381966123647770343579774492550932816571441331390610308614823773398739595790648510316416692774109624047850002191553040105114825609868319532333122676178130514011439174821274801678702507610297468322730037216414782678848215835754983892371336086603017014200378787387583200188061332446023595845030889336515701303565234105369982703973194962089523007212862219391529723076608884279986308309643561552830421589780112733657808084448483543285042607049497639247547805159718389135037751102143138276505923057457873730243579943392834286075298398688309849875519763562513073754488421286150826518388678640089970497223528619304209464613184903320841490971172496340224971704980445684591226818350556984970231809297153956677291023409221276120884717523393802341217176424378388455002329671071606094083722167863492454979268885877587597940701830617721357564822114094347240395153743221357843884366093022582412473849714287128028761010584181783114312191940372070348969521204193468870655766175812290910640197564234587790956076507375577269826207011590502628670890651263386076543177031919297833988515485588412724330609166606344198273629274952345917990327945113924238088615970517184483571772298159710328799984512202082580095929056842209209731571027549519770555784536834341915038262375443509181189305628239889269053015049652285612126274622688897538828912987643253176229730672316180455031050537286612100617122287252807223428890434568711330151129012492132622618912091821816113238772745090182012627726373711808104231928935084281033418559212235636127517128491173059914255810810827580000616739633974678034157239304130556286259143463902254197762640559504750550278089993251234067931824655083979687521403589741365096892748018928949226437187544514657830806560545526006664400463812068833300136039501751589597714016883500748887395438536313390142110282870255589590947222358085347238124087380964602885965957600179338991364763867425335564062852758552551710200518812693581382570520643080547149333641775213254877377166105025777908707052896347322071915457271937289774442487235889393623952719913900780342615829297611257638743478892500162509167995260023755684040722022660171728254145389477276539452393482333597787442333000024956471812391040727174047900118232417092326724952250417823763635762890810996830539334756289331602337989180710791748505419626798511497767249061995390915565805762400882073920773876950168702034595004170180482501649345056809551638318659194713872239241977395985041513562895315307652120902577150977584435068330194482503812784855554436836383798553311147890596667120087882380915305638990694941957840524601657124889285408838280073313575862464335847640090183285796157422076882321016426565582154167639691415831802656890250299987559751782689583688065040476130834260108260478002513816862169493539316955338273069552962803191980881804213444171902799800191739083694458271053040684912504966950260511043918312691340304259280674104031658173709040083332140618066164835307221360154338426340759630249441789445543542363634767309534770993085984420230480267190659341745855324221366251640109227848975100933280367042465935199042045161660199950870214629411897190640817138868846948189188208090724843680486304239528693731533419033198288219409907537839520648787961581245050147158752544317025830838634347129098690964863007073457397523241360360813684306076923280913188702954071487538465873405634656038607947361544205747679367776651123625791612193252048710086586802266354549186054682885271192249458787528998028936272086909366258525669616707832543148911618078878042393892418030024229869072577157858650343104312796736238807513415704260330663433035554732901002667830090457027522610625103165320711166381070356269798425652254082197203364548454623601325056076770080649519641324530309156401337418917020335751121904146708088752832036594219926094765647718664368171811144767331267859842465404624663351095227455836015831185145304718297616903126383372145215851874281551170701096345012401217302387171249657906084415502439529703526956789876242818060447752334124360601101401213673820222436897480986717357264227550910952143503039770993164382205833157716788848300310295777450526369755879731551081755361274738204023696455848120100940142063407051205839542091536035484616213254629385378236584050858026901057049136503066388100989202775854356087804499085564439383303246632842714066790358643306300228060051143083331443810695127764534275986133424165225242241034611379544126485762717479746342187929626430507103970015986782427737562674958759947205700870013470998647278028742702336651665419611475083341434662772249428662352447121994468975872525226031790883346994924906451004637769404949633139637262014554221511214274766171338791300798404581624780656803482943830174164826370599231593518977104343403700278272346685159390511118014074741582396599821299508038339825830562536933864838791050841276597546185753921664245073535272284485905594436228216110112412490001235029136768048246908745390400683378002533678527182138421310203469199667213203355607276063664983886073446294944805276594934931149305433613114287472577832725932013567025519216966566356721410764290436849301198384269791326600249689255521682989944713520529863177778519188905828228238393223858654486464741971002239824768668350728896374254800665649773816256083109433243051856051639707438635285680035926772594670710201160553852954304337948479594272827325273871629467825786536759058835559974383174195387625274246105927975080001458523499871672350178631153752701185612487034884170774776920708491581149124499888892752970824779177081745084863935048997900564454307551106541819909436433011331811575690773785819935347597018690854434980477141870757492160199378556288208479701646767117816360054749669369719032608676085341490851359395766650026199809730253339344301829497171523203580664917584290490744996056079289256644653439906870428698956421202066823228588780752490387169505080106149029018777828368541989137249501861933745676240048435937848565638771208080794840449737678841305397413041745583339860165203267504011360494750671941122684522400464038013500015113610361004084328686291571018087683449899412847374587904345792305239802477886874071607030248782203222957773458203757044945928502867154085310024088224695004173896522703552377554046409030474324012626774716410254765597931735425361911970356947702728492553646783342230549196378840462823234190881159604386612651142011484297283174198028774017097597684203959375427125641046507928394965593067648319467010015796599446015608372056498734411235078640090635769451100809625190784560271976440037692883419923708198768436658995564456381527044221218540018755161522898263187464574873033156707586652864143443007645214846895614716045101337503803605385692513898647189522850269128732302325421273960523997739950796384891046714940355074830998075337376510625206670530681400694840336901781937750353194629917728363210652102078859301946632523525326854168496664681563553287764388904425634151584874760562700379752215914159544574325173949639514482959453219466034057300116895787294705700341113935232587152921158747943959274106667775463403677391052260626669046207557349499651472591333071786490093582194185341098172488805138889983401648429410797068852792264766870470637662542192082743232772548426532708669107398072094152754981157231757828057876820034883496127685552103040235367781027361354480510710666072480022652963013962395792325765648909226962090108339226587476523419185750608584303926274480202800263540533602360635269799080858125407151019866598144796421237163158542875585441032363341196361044171433434186167674757788252113716257849943190353529004518818993147061155568656762507502330989453426164428887079829854516221231707978351463576199748839807260189809965963350038524880643037505538758549936555501878276954069281680514630217029592606648784116307146802274135846172464547636962934848943724224795320889394697635725045169365504271590387321371910894015495365065389439127546919471374246617042527338625874473389450190048448143581283876183349309925648694797019304293341366104123983299322667679250298419674027579593091689189215471311005731032617343116620504742855619232825890389024840981008818035128630829845849315626555558893361912254270407221625867351559161651854561480278853273134355969745293163281950448220331483783997265283180859317217213831196417540039761572218485327820813034448001954958178471238087034403233432564230127319380049077964131159602812469395460498922109974141277451591983382044565069910574638864254007661446890122164284821562392509058336168433482424644236586624107742339384418695689387502436699836261179204819987720151757886118855992336668274509571906233778170936354475605776440639745958236987305209626783443029651308037218847817937816558527038344420355532304977091670619878428176081273288707202644632096983088554723438623569499399700590748102179376960099897326049697923674429927913797720193609052920044558591960554789432387452269630139762648548832374932621062810571979531835512355955724770838010351416998193314150325632302314365317610675196709588302461553552622344204269502764952752457609289384002932800827047662701254934321228013339030068824745994568336455100926240005683919414952483819526746431098620264161185505384615281167186074766978601205119725981243607120015696983974692046125940854354222187734765907109824087226119359752523867164468369652327042741577030429402971555539792967370924598527308882853910805543381209336402546151910632673603888432335038337044219349107523837122149925276644228937101859339029911786232542722596426174741519565301980547926318929955944801981988672819747688940251411163416541962549653729737648595755703148053649157669016524171235046414731237807887936000513278650425114873315106251262990879417393919707302062055447760354550516799790261213089232987960867185345492413914442631127651923322070182259221789005913313646037113074504998253633175488463442595506510306166216553938902704534843640676532745852189176614078808418384364815905633550037380757049689222438406327478870074125262477834002755974562259515023165491512808653046523635997388242282121556404286567671413237623155930304121612281830624340906729273944622688986021126647730725426334772590907047802417736909955660442228315747126660867968040628410002497800511647571521435650498042458728909873226916891170921546136830769946154631788352145619393660740256364063562786095384904733298601920702671232421354845784975722336321156863217993345678816336144944788238132456785837250233367659571364975230824887519549256206914417788410688936511129211510781711020261647623328727784126949604989623488420055686539106881618269833920424225431050521860939903792201240895482836420411209746198823611925401354956518375459522362675648648498310790680211100195620989308453674507449697802707497391752503679820664449241116783397346063912643042942294188473099659235723721674109928922012545124049129769104021163939010288741281223428531792261318872595767503563729413734039441199940781065546627403511197873892747314273023493081776502068311753596648450823826896826084261917019053954710497089668721210659153685282022970686978133575923626644555292639953635173296383404069557414405324340754660200291314402513285514988992532594319954882716758570146952482376085960114214148558185140248351261742065602006631828406391458122499704156303162696284731379653430889815243275115978698416212919514600429612097563270574285767528942686078801003577856285276740750020558728011292068244630505920195996841680054057067274530039430393029621620237803246651630467544674012864214802810324815620251419222604921664139561611420609281062870227063726042092782163182836237964510539436466635379997259645043835787908364116448632195775243843030691830264453029579006655998481012746339167548492265773556472137716509057353322358616080435305967645355012795440126744440321915623347527773651121504823184838710480357260227585245763481004677516474970171236241476132308070230003263069182177343369870463452698771858883785835726125420690184499903027401751680178417977579364960196523917654910520532349545191342606426436382634184857202007668150292569427040587159025851558369259601563157095098491153324966264039671797424047024663401126969495308824488874538532889208826355976487920526893711304009958263836717728300390132185614407471562333533092169406627071582077999767554390634614584793130393116894701291896760879051577995115328027775162462951796851926069134741468209286464262191916775936658447504396121410599162255496275314415353561506062322715441869310979528498716821853774086043983822464661512261867795816635734664031827212626677383603322813737303833685275031945454697429904096709072699964803926871360438598675555024635980965607318037505851969759295314437111325903404774947385574268086109232694924954981642144926947516799982308496310314985399417603884865150535034175642391797080346250763036562731973997005668804688070829857534725689271016501767456352509253988705937380058226138294184067292812690360235644533680718972258309242971174220170263034677943619649946436778867899507890199879694410906830192060734304754088847405470756747027689424234521906171224479629704625220867959099052593422835692337255975781079195511869979480086376259247823555811621690739434061043073231140368399217006049342406883080388519031271714453684917642907371992013260747093434687302793881141666420685465737567487947047764800552027062000401436035649720290054805796410839137427832905310662955043239702090935846158129106481244751905169056224375464215722987001141135357994886717332139078013059429640438839661762115022757526310847989566728404461441918044055987305138583037991583410764932775129900037879327349848664289213886531711260326753888971923439032448354404768818560305323690438913392334148446200060728617643810480005593206419816796431188982797240621968286611161539561320155961496333259331746054699456901060651802616237835056840730722601714403439304923676814540440044785227463836662563074643728219253589902968310095078137223119551690645791854983309699891283187493468163030519992122752123674818445397270084631398876300105015792580085587060884293857017110209339140675940326754820271196616765416373322994159728937601052597316533132718720906831534822805687937962448526287293501552924339795415808237229039515052786286206878788429149716610952221418913343668226625172477214388257248558545482051005712142530577809358202190752488414930828365220081337731863894037154503379705064406344348795016961705554539194795555655332835322033747562426786404916530741985241029343126234652250464249739203513828347120779022863934088571872512361870775352761136184437149107952583884663573321512142459558278281010204701788412130119863357218787672852666627126490028508371804005973232949397834186970050723378469507435113097540630947527255021681856519736749625934731378457499262716775427235187504613652889098235810341028282263215898130458657358215081429760843010213935595317208968816420872272939087300895669490918654993547889680360546496862251267769771083204011441512152628809683940382933591337646962432541095518243546229882529272632972018772748746897790366124516796989591948171044349809455874195678682071423593474477942924508342791432715580680966614719549735057457940644534700580518968836658078324847911187032413144201488157512606005532339641950966414588661828963470380612744760606026148204574306037967900815120841466525963485356166637197296514595260363891346284605841470176927426387726880210537080130062105251159156874720965604990268478048686321095375078579550130034063923732973965855731052785336726129573950879626596988275067273692392194277952610359387846614365309662942455083588446712417313386948719232787934579528482808768541226295250522892416649774901637411178121812322513606756676272146453136816674562247363203864184386763117409377309795222327433420585930398472489925706161966280344434186157633952063683537776911839208943517564853869071651426256245485921930405540010511347986222257895172498906641523024323739648115562298079073883137657299112884937024688757014584337132316339357391399271271210867473915003722546831182250259792539948587811370319003661561837286758662080409533101156533292565549519448841032715344642955366352016506251980183310071066541625503161483776673698461905791069270819076993056463129916921801163953033954349252531181462885641228920835252856979658815900210217944827835680225347328973914050692225906042963770914603246576389718191853530744616514870424671633730518562228559082380478055360089136137740802206532324931234993421402838800885367270956568676184216678736412135598811185001891083889555522590604853612704936468435932693157476137594388061860563579127164207999760205510972072962423323493889024628217690578348617831294705262669964712368443900545040030836841657787415390046694222732097133953564021390692619175318290521762915215055725321715128108224429518747417410694630511449392294278727140644805306759397752295600129059917095183712973837962100633342917582111973520509351216965756984675138970084470151378025672770846806553859455803054776555510704150436405678195329005223139700748315992346965138814100615769612566295460778729726120671270936596884543238314405246988025701936151663121844587188698037418817712093627007734865314099582950993069087795696805903881660937421469052636982356800640055667183154719975454138968629655635150332191827537963838310326878525505793088880480511339237772898530252440062613907537099624392229853457523752534299847535356901428224659103078794950316779722363143697576936870551644281762856293520223817084675853725698973344751812596170846766912699014848338566262468082200237480754287947562186001075683939159799632664359914194577207245401764642673239791413210605747581464103468895675289308764505908043441650758980881895687662806435388660873194782965216023843322116144761100742274612971607203017569839710734155042451920218855634929816472582780077769587649727782019010296330407135804880786314880505923843923841973481292181757311591559331191457009790974992559976739801441129652967432439700795106737236617828472700500057774268637345866316080177250539771010978311502286477546986511545774884783825613439830246073220159435900040426980776923291823663362130524404606246792074598441662518516819180611248734733427871833667199718878996755531826508242008232420198965991766682754345636756119274562904772948553122062948787652799497199444468124755894547901148639941974602054001702547964306424491820032372541998645326524990112638017157344697113035454913326490135577175089340570358638075025363590751266509133430213095399777705603040913224219780714384368499989601817756571245934110619457073046661566705556742116596156654888506520193037765425420162278733795888561803761582219746993845902654047126534556780018268993688201330431659701019211805796340695127264479373153900059776333983171010074549922794818797248594812248752290013299564984125273027217501705672692804797861280124293878755070906419572509598239909707947817664213443755286142302316394789669210903075461236617254403093494778704141371977185222727167970648297717653708372398738099258388692164762782529358685745517904332650993969534534587765099710719944200397429638032105141345522677856123936451276916396140095095356791514402655793034881110148438038499922970102794690698152951001855622325972308260280569736494123436295589736213028819252515054312188424864068945978787304060526888667402751296780749129260447923945102441115020266662854186453066490833743739040598980477889559458524056743524954345225641883916521926876464801226650661951511676158626806309244983861478668037290068509378523968867779986251523491661098835279553955179038510254012901349850525749592414274810307753078304598357886093504822785065616590957848817522043432517498847589112355415699584264861156784572662115141507125400797349991964465471799721461510251183929460780119915993796894827608524036090181713560806505501051237161570207362281374375114230196864725026900631508057251045299151465532508517420868730036553987659371768065511903266039518547617399159447892093975456892314881761185552571798405795613704022496416935716138484451725721517524056518198250148509242118553919758824696792675600326786477413743920947676702924709275229991565728678706738432999884263458025452062788773002145152329600240747690081758928268373918680752226617215705266302992965068671167431925382214446592422451135317628967919661468191131170313900936071746567501532536281477697967047758036142949792924224355163781784804656024809042129779174776412011115054762870239683660637620280743714184706464610052016938110216156248046135831363360024148753689144890858038355977442304775501019801262420217475205167033403451780597496070981982091266956279188024274854559760795322439024453258209443207707100995356238051524929834904118253964545883029192099867550023926081434076681039333643798033591667026519077847412633004641523757790174281003960939169844271562848441151899270949766172051248991679556139297557537377722613939342690407318506520761154477586129554378470518855329329617655886598087930618711104287648551239329538258863433903280056433907939949564534278371122911796177888350284327124744330385726707283320776857442064204521411178374152295068111763290401121529134092418357615655512005588880293045240873155481275431341047793675841462911447659803717077967730795015929798162477401956493378273562920418728059542557388322086264204942124701185062862873357534561402282499594912238933545666880162335312250404023633359609719069836287788872738139475407916899798048478907311309108710275932475989979081007229742534187292768687801473862987342893340111663189139338588542809060939537622483391981564115267465229358352275144243947324458745967266582685455982969740544708353559271750046825094648365237639253741557112373590442531846805077763413002701492860565155857527109703202329696012943098784445632082132041399032959698986437621617366736833015806849950654175120487502567297155507454858448243457637629340707926888664789824785623931068593012999184718132216431788870144809923573461257389054177199112462266888414218834676445260511144529785754203900707193280357374373485573187413788207870965012393503492832159405729238761088984574788454240540404842347044795302822271265008353744287365464542142542578361173734436183804297547237577281853020588432886243429071068519752072168055889765710133076983557931388367395264074238538794493054760234543113449476424017156850750788901517353301177996277717519324987302124086270449876849284089487987849464590879372266850156574225267379935934285982819988431253962283883354567689252900892052104388307464753875533383437558733410518122013603709627607598587839314409613574093626383419056540130344273261660261376350732180130930277010992479247633693020481434696901786294519746700330917056462903083025603030344530038642781571003809023970221063032704077290154650937059014742943132075217458214761715501832998840428813268823314299483429982502676542839118327640591440103592468883085270260663344419185993560617995515325665829980499295282024294482567612365824540531287634071414951764536730954728973514510647645988591779620560898809843488491327816631718583442007520767972331282027479254516389248391764444721569473551427457106807031055881309766584284447201697561431575284356896230751307165970068747843835260398355617874558422624773295001765649398687577006393937131758068528656512025494342352484979141260801412008638585690808594878376047112043248199562015337631320469154412726538780924350423797403039023450697298155714813715099864608442239976704445500329502763549066433242040885381681291552443335303146259942156564971412264482462147269457910292941396000454530447118334608209773485941260660736672360930809051770927318285353177797594636926394773389688181913335280853731558803773328452116757425760566232843348666878803851944459158412380090340024448405855203797472227095763907556673422950306672810223576363820675842421914345890907419927901031901767279611180611107653818305132296624745047352856518466089670994059292914526325093498905762729597433171908566012371508906664989619394103579419401899785415285788667200751307793202882737570384255390368755529354474092200757316068525690047333605449722868252244607634568038287269002267794223188766652080937585244694673011247831517618519968284142004326181608120454912926343761916290146202378351585225015900649218187749404042911282769802815839082383086934701320121003006693702152425642978732907378745816741709306985440671689294784394080807424313113072770649368498241646720627137589367771585982354259251815444005043275761022084855934579878752910830208866606558840998998478952563522277490700939166446797503611957021172978258903198632168512702712521846200179817492563342465951677704343807656915504054162729422661487235068831015234820537052996917281890729529555013956453007055027139127945910158076409066111982023911560651356380364089262473378524170086938401667038182377041349546243568840789052604421193652752898452169479584359564324984122281968580047422429782100406207950659851746406668871691559487159967094088370351725854757569858629328410879316471759336965207331207835074952850190994340806221668737731712230191443492803725462069368151272694903785637642493062241655366615772044342619603103015483840612276592926439822345514139567195100221062067090230411670139589614180644285492872278457479585642493370800280941830732660153507864949524572621243945907540847833280236500297710663275654221425090608012657699603366206540550127443720401393691739779852533659994912900641757454055675757131438290947534512889725593665743027619893347800486990454547298932055917665463779791756096575984486457080139589162022213200044021813568620515881874206863232406495142192453327239770813610475219834427970493884180172077844013338804441498490591295741404578588598959448294674753321706862830997622678608993801504351139630824577141215300838365617903845584989367266871352539709998641027248416110267580101596178386844808922155081609311002374132820330450672345509050006800807248528196136897007799770880710278355332366057750090077981645370037143221691181439492419594325122741119993964486227725941535153115804100815095868427997074902804463496797859799088833221816296664276842896426391793583590101005762952472781722833958025131560784614263293841256878315450474120160750643091275981305572068261208997426392664331879555767632043050923607905865274517795743597760023739906479246933915253940390832556263980234242227866897867902442942105529963455260917377519735645549094798791141315388154856914487037403637171844754657494986860417478682535461392806418085676233359119615754776514522167242132018650340029334025729353493439298725147212943648613504748146305291648799181762341816597828141936682532481522117546266692724398974011573983352787287806689483578430372557864363004632654952502485367112170390535605620298645842243986092207580822213348970173907792617835124577631196011220350733494594780784575614682986693404530488108479257562624454510919192413182214646759614864929199848906107472105282311487366886799769304441691448148472233973652103489046247816477866038482730497663575285819587852379705584900375573319578436266592617410496333163216835584226318542399566460012291750634625000739225954177453093682057983670876734574069878796829816150887409658513713601246631082703365172384507932949394922551428284006313453727836365779332299474176732956964681001650793286812834716943431370394531126758084430149865507357337436780684686455515512297172225231869079647727550211508544776284817404955732242322761326616805239342987109880351402115307775270708157523297728117802896496785652196221272118136613489192670380415148681315211995184840248773671753286204338210233643712453694964258130952629146863159816777711576985964304233932220399677656052127836193705709045996064511745562352216892677066804567688982032389748307359081463773517293287566757193925476517522743558165484186362577679316549624293886319801041665582461304453487563768187121026956794768556939403809154514053482496775937559313176884770375559783392041563182316427315843408399870219321386345042349241243236619786316662539240352219676253502650857795362558928842243313658354992374500197429390798988839764994787680100429491728508067265146371186098320311198659320236076214739881199873408422045336198500588147657617215204995361043126710232944860409204335220682841955032239894252928059948398313523620029288576049110587852809098712288724641286439189734311936512441488038303212519654515008235053781687016800365990824548758281706325364766486526680986247850721298246111961418370973757797378224821846515652788942779504668982658580507727723932879961158847982619151430438620993296315223311154296784113015389060607545735426740851577778093475241020322152920452243689888836466492886275919881753590161840837038011600655535923324608242927544365758174980119301323606002799342429510553958840509482902731863196336436514768094671177530585704791631058192569252480283103808350396547495850148490637803171720518877602435168939481439084858083495589576943750847187650855444546498923773593128310409720549054770863058196112532807159044515847877424251559383816232078291524627504542539285043396566101599424197729698647719825235602878141022745045645402455333360341961285336871221396445536397226290041783893667154911292714665542825315865259093644683558034926890390217672346740717959388792716086163450848815486250616997903502793125029518459203367197404957442526609581091237382978146162759739631623454392302147202933182337177156277028991575375728801225079937941612671402461207690613449649781635368983385219274867081897306680374788848733461034201819427987536772924173296185855702426496834450499903152600512954834519464284915281888771675151677887115349559672609505027457910247255727453079807184413745124683697545231982238956490808271841876935650098232922784038850951246105105647900380324970531348976572346687825144616784168563204060932827012749473154124630437800841672280923924171560320388320754172879313464459233979200680586096883846134361879445094625213634420433129723003623646037961799703203388918932464999009337435312582119473277702994497069393705799364329308438308099842413593163878146822876926167241182016606562346089921585812990403846767196135545128873843574122236970093283379439286778045930698772053065648900296275902751217411863763583978324214738945201622651827729974141913513086861660795751607730028155776493118514974598548871224439121637918588645866801411385199743633544547843739941958882866205183478038670110818744297397134572729499088815792396028422470603655181348928759647881363493488893185608694426920931661762989931127803258854062036513682247771788879584973037811012026040760501994323507756144201002514438792075472325538275123670828814918094265442943906121317888897566922874960164914925918473725708129140414411045296297248917373329905051543040221130492582263379927744328061969824962256156951910878408134302727823105077747064558276783910728567316022079755624967290306787969154149324603819686753930321742708649875678070889592258669050969376230582223226842568748141561345675109791574256289701786985794549546653519854782678611731111272878018483612318307533739942702149300030639186505622472501017742349280746553539340645208558377851793338626807841942581672499582260098506827551025421199092726425348642427391914006407778230910216769195213484541787261081871719519224820681927284676582318405933892182818177715926473715851602873892727072352609897801997043066425269676245264365964365171134648420479056731271735896074162958865727011902116859149765993560392216714201567935683101976913824860636172084259308010181879005728207469948611647351970809615224440201646655260452563906564336288370375505288796380510419098036835717959302479420786416643053059099874925444941019053603720386495986037416025442268435800694272922245490076182588931596935975407947050776951885618291345251068397762823152555610019403023551950358615337708890719982714111916575829822525185460213660671058367817624039299330616944052359802740264274965424210934182021173421382785849471638780247614280251699247136483573821075431539754756009887557010001650273924703883798439875656374261459125656969683530999144880643778377358852430372640677430465890849575356594677581827628958573944286094658499887950781900615897166818015943985945939683871183057071411490210628791669156865492659109043674138181011152598457436773835745291550755295587280035712225122506458868147501633116334866212079134004498038040072135317833906739933669113798541783389091091984182705344727621055507822814298452880417693470517854553832905053653066510339931860164880618483912260040758253414728823798578108672353094565717906199822530946001628745888425170339509996053090680886129258467478519524607806796391753602092483675969918819863171402745787538101341744186518848074607403552134964427231260600236844334785083264445009432567352826446118627041211164220253969543474327798709243074258495240461273047226167265311406860980288614569841078714324199196350400038224179512644184606487096158462035831464954524215877433703650016219659239692115515284804764963256123805467151911305041630358402719851673673615686591654238226548863940629888038043343503504098276400387030684921839588643449258484924183238803063237399636143927231460345428161415729841536496891332837775323835390351901690899261621669406678320988271220141992388973306607523827072521726081200226463323391898686481432854054622464660868046390615213684266061586601244423842977644996560742176467821109772830524097579612029388338036624019615946844439139781091107385546721173667547029271025556400158462081288837355342275438046982422648816764019524684559964536634767479679705077111456711687564942956485809329718523376108229692710776147140956913630584336925342059991907602989996861467298637496922508932044598211624799763409184464363530509604873277391468151438107522005694937170263834604224015115974554543927031700991694674729397094053158799062931026168917495438676244013076138208554855062294546430206660859883350680647036025754800925864008037761260967840149167519943227135937908973457600212644758515331131068746174203540831493453336274721254325813826550781027931933171568209483854256462652775683843445065762828836502696449176050383237222299962277226032043393996173585511731960932698718587285885785265998408138963036125156924690655647100315869948842268540002410428471820480053538871132551732925861214999701586869841370416571612528444051711854594902377939004944038996009177043682757776049100159277303493435403450074561338714285505009985539596761706914186456060311384759405756891728830961645634624313581975797657076678778996043495649601667959675973748201306914085307535687268604697262729698542537714128794198916078108898354033881701823931108136128814081719189212953107029672911994815887669361054221679899255562414462348480569245341968491716864145730885446047272113757949400353058355102591661637856207665432458755445602097776896204914055523188634229174597449216475928999129420154178985141554794726346287002795191603099440122795938630215951251202831739062019794306479896481223119786060414325267756942542215776198862002153388472162951969478767499504809668851748221534303481073953270052558015213841008725170850446506821984944585572895337729185394058059226722820605061884148342564138159288363567577930691197072708052876850677362304971596356967740555200342791217644015040795938790002727508188311317436125233190950253234409605859800503895940087375573866536158849699720010613641075829202725715460214935842050229434721944510836282466623673724479040332783899012758591691991595422808820030721414264762285384422916213312011069027931933831068041091627747310689623472817291374270543928501879887109173174995109211295689686312849852727487915017869010417292565737907937114918656889026572829449417772677609032482636285729823998286154801100244002924644789664647750781573869759757490904648007698664879182805457792562195702587291532808646424882381639285979967081916007368488921560651241556523442226220636913751137708048164324508317668670237722086119855071158782760439468813726346888343786434194703734198276069688501968732886901095749021070890037853891762140628586294910628638908221118371854957725546028600998287657367782286565528051291850102803474401663032500191480058252788504925424223876189020330071819828970741689445266914326939003094795555359295353008429427249535276119996000359917606400741696721097772334883295558295175530038223136597146621848200849895764862266721404816488267298313097207621252389705474674943374245044407411813678522723411716456902348226794335574372433053271548257211868832719328377987264180925443685581421108723115379132843475897462171705252053380690120217215498444393883722944887616845104063193379161906357675110358836215063517153480905026092794060453558949619747741568315575293068398997708505713287033021648989833946524465281377011742038245584358751255818727204150489572720974286162426384058155940270407999135751408309920477567418270270167865283459094069739923647026001502048048366615088363424490297805268737178926567670824079402392280952982201266781397012052972443181738101516392614069915130582150271937049141958306770468712743184856676503380540049293731544857444367863935954994192191844551636953299398713424716076494825969046484879269662067954112692480735477973144459598857574285055048353727486799172081281706852869859914288148506615151884631634035812696341727495231872590559429002002642804695196849421849941452428688113998456350248968596700624204789100664380906658100541166020473948153449276684764903880355331009112314438704102012022454652836683661413397897193323705099402396432900114878655973837162668850332575785485415439012057853186349284746630460958220396947834694489405067307300230437007314847764636904712152779472384913719206227687931389279518509223652774652278846770180327376763348775605653726419476600717265000064358576063112423739267797225701786789805674926066831209017028016848699961714995804137607775152952367591412877192308330663931399165023649745416218801960066803290210352623254541063008831146010473119603164799516008439258077577433099344700697554924849332924709868136039504272964051079499439715141827574499600160260252936225392716021182597673744984940563993899420578102472012997936214332600230430497680749619940912656656452570356950656333716720567229479165243600447227034204886834812925215053716247359750401209604440465612862584541199035589048645599211506755259812260301299875386619026258910303337939794113875425631171996207143336017865697754067135122267453691208146635902561893966714718587757874312412753741285314881569098543116287211319653767345891067375118443952503421668700059950476942605761348414013302540486582799768603630177149236523397515955552595380599860052313158223652765316652631072380102688294122108484890044789007122644748932866886554746832635399417263169224693641313280851039249242719681659399370907848667117397464907680309515311200780149887179350010380992065706833310738501519500503206729406374896973005184829413443410195559863435616990367998753229410763080719074853985540167406725562947243761122421633627870557277473418308967393487272498600590761736254610461677721239942180896140404701181745448728743533996078507434871549618290975827686199346481018390906482800080948021051428188449928655424015477634049687959250575189599307309736318855448056779813514342019043090327476021929396978121274561915172609211577574132579243501746025137612657883067853667645273581267513281123978382832687721414474512406601340675951068344112462393947345471350929114034626928435805181690005600420964569383627858281396915561997006502382763547187804530683614285200563677724013454330258970019040268746000799348999529689549498978066463821648002192792644048003359695012511238855223233823332339466464514838499909343733958303593165558299792776560051870798258455621934647593966766106744064494705238798907599158897961017195153234539529664603242077198091111880482505077596022007332558347371394659897402319557557307026998041744211978421919986569923017753073552652327427795706854577519225228858961772161053068802753549966023597558149998339175420096319578338704022078738402298207938577137206082729230843257906813853208323695585220085804938108750785716417191014936609310168855674387419627197477734067527524802067199173560718272512769582247575749203297775916349920633804496581097343851511349054825515062466188918945699969601417741127573073877528453619293695755908319978748929379147088060860905835940784069230752827917947843126614298757251165389515907065635802326943051841198100455591686429135011258379996210595027302133403244655304815488701343724174625679589532465803474316144055246001219957915330077353356523808259754544648418765931546394584773898647436038377494611995995415182196805244749337409687650368262463137572487785347017848405723397582668554796295463243968686803222974533738979584247831067095054495881115952117171328685368292067051393261989444807714154741709863506462888458972552526784403477627066468843889997686334150066094327672591443557586839960926685568248379457373821446729673608842379856915609153763853885169664889630311609517003895214024608668752326048601258260220205382603340526762481382739566648801966798651093884215903111772134659577065624190289615004235935725453195852795868267456720701913352794818883257432129605747841374093561710234665799862703255950783340750728784936287912848133137497877711437872849245698847844729718573103236030785175345906413015535641922943305406549216518689887551532588713132676477876712210731224215167573041704857868044565898617731128123571957667440416421264569480165722193066457539087730161701020597874143112879614824345272863798836194847130759555551516191112407140713685810994916370956185386873512231710050980205796723294475421106829854982904563724123986892997084334977329429958930347386872118482102021811554507349652826174702115788930351847638725418190071478308740031836837550746453269608734337173930749928122133660794578091601942298385196684616308319190260248534155431423763757207539925656355102045995121182536569165553398430664370932091439400137529488043404512913366623371240856156928333954765483059599865153564938928308752664259487239805711207395097015630888594243625296266541006633899285965195852656210144749883159502518368664144507190630072894823681237696791077258262536743399938496859389775903858266865607524181223952303790118976608719253508717543780855557470231203056808797620292124007027786661349914081680221572972156069175878387360925933790743893111944988547215913142185601221929882066908747914326614526785484378514316748442441435055238153945518006552040982302632478874675939960426190809480491572261665838453182110337337541709658138099596754700615729164669764461423973860773328730183615613618463551058644019796726409881064132899082968019880931814495906621816307830083769284132802911901548346844041469130688063761520082160708574675863989800299984554390445355149911299505944369102888686801043541468904709473205694517301803674543422103477895950115576599296767008694976455311879514953553885218197539155757651094641419471691385484326836731211376256116532170663721207695911263697517903299363701238729428562916273394543749700001885812717500023390912819026922753395531156440918100245300570959047400678158024696186181178269094293321190349429030171075954745465800749343630600057694436102540190463561124257157331304238380411718917765424526835868946448834507628785086175820137298640946107279233921123662488645121365867747053038873535398585928097487121156033392718864767142383922476007014522362303394928343173066500752014328405470008293793340678261669336979908165422209170573352290539864759494296442545270854555654621806642439777001202796808112373233901158788951250847870945087710397248481218950909418667519590092451781058378460255497144253434481799107421462382168484477659528816657554903235022998556478210493975446317290521741157219476219892577284005588431483118424757261249441817726224203635504691385570935383479176075069842618262065102438145459121458050562812165511547193754772736717998286946906488885548533018223857257392146117078574684994530910431595755437122049759632509607070117385307193222840263792554453669081205706646910785746071198531016370775758767705547979159215510583355024360481022689045349441021124915681276145740337693240763148566794461573540342448359099446249030414184336143545754905793962487191850521144515516006231494487871529779674180626327600670499993344251562438528627454669795270245940463418496579426145655466558251068443481940149455406819141568496826274981990985772831824461553366110415429431562060616193005277250398894910762155610728533605675177264641803320492637179040800736761078571488887018889484208148709121678300504320449498651074209511645877689067538153016575526123748840835435951297450508318664806259329210867611080948804828193712663803943522942996729035327256016231680309727973965680878009547727442017511623770957202999913268888320769868803590187656956647863916910363220936535591184276105478245984769788502661113835954285702664284718465037763218353397362296969441249170003852479767305180971010786884987807976346311265762626333321400580509584325064663500882461691346056012073967967102573829105195610400877335807787561452515443326623586230018206435374148570346203129803478333265897812072869879250321180855919629253355016642538415168637939407051544054366825194469675850439929920770977324793228709627341030086573778875124753536814792623926899058735599031243119963728844618074000065715341040022903527839851708536550713313729809137609167351661149352382192101694625419851134122145179770803401423604728334360690325382973740156522171936463441535326150426854446266701275493120975912940700430636430675059649671769121499175973259630569574171393854764492914927385443012177380967670165210165169492962018066238128965499102812533845890015106933026267375511666102622223549986142901193961319848036152728748132745579838660302453904507860126689616522301291571142962200262280961125566302060988833712614058670703954285813471132195083552883261131402689310785415303199754235112170944124739804479125272026822869842188451883872788004806194428526157532649079517039128361504903052201522276423926432315630510287599721524297736092948238507042946142219794467977152905894004917110000551225415386801326515178572090430741365091011769842736427303276316080881939870036526885525040225093311088981768585729712671076900332048244225211880506351774604764066017224333739497942652711240462401250488920363667762719170403216204749181393830489357411817123552962419061600348874262425995962569524086832351404340524395529484503133749631737843345229787521667232599921139180474545636245219215089634020748756715627598266053935807006611280467970269796104782301340447857905083240572923664570692240183692231946321685306282696884817281489978797362050602396902610017667112604697767015251856738054642221153327406411680817756035568988654977886810932133788004171012693466238627237222699811524606542819773482008325847740230816833913393532567516870511409581288637875214070595784200099655331259892191555692947800027055295106920947511453704093957750498404928680788292352238467588559118669019041804750882722206449462571465993996422337938747238317359649623090018103337496719571549539283948694890853313462556427288565413429982925464738737024019148075185552001877260696177990256103098274030607438884424289085617031859782045051736473310807709166237578039186872777039019962581079125523885849083136222758758234899225004973798756153969660877529057541817485416175600079300338459748994808739147822169110268547137561127826265059846050263393083309828197263848096780838072952440087690998427103763783076879072474616330768860531531637865988827475036879370263601819752491379852785159932615912090317046535982254726872540194834253157702148353864863597558718501203269845940007513594752106223935381002748721467689489364156509413397296522930534111685474264811844583344225249026445963966361596643049188413050618226116726754914338779382819717908911925495187960390794857060073107127261071643269055503360342119982452362545572015706776392684043640476447824611269609497720087832265252136990927274353309667646171773414696055928934127122558106470646329789962325344104096750141194587724318157935283300120404284297296565084300023493857655666957782032134855309938538551591887902876905946716219059344613666627630461477404977265665571597488503453129111814332090743996442421702397870672347691531980992704812947188748678275820664244397431092022964298358709587682361584685145005687276364982237731855702749051663073403438546665124603212833718133336917480465839065189910956494261215044807812749899205551780615424876952985168013777124200172348859488008349942187676484446985041428541475976525344908026739230114127097220946884467672395673499785208717319829713901341573152559686259491330819752583581543304101024088459336194435861504724957527050750258421100869523720114817779399197939807556651034418686928561297101332454956422898409090289702563674519641305635602574197231821923319260044330965727681446937478745867214045893684635099817365336032506928380169454609988792060362479834682155271379550420733476579899249063380131160175887480187293555392544344333729332561189596146852256312643801091573838653298967890208023697438170511466369711856893820746942066400710986025208494433198769727608215366078835728247923980643205167169492095630968439531220194937321783060726908203355892819198959802561313593944669709903308747745272422914319395139048322664068465390462775704603193076693566574650545519999828354410421751396497194929259586925924795130224068581075999549379384209263486794331757369998319307507968921796713983833356378094413877538319538439179659659827562852404675652609503596005213911873447224118151702771409816566194980049120269395624739881685238012675246999878173697579164188704943016249220341833651620199158802671680941134462684620039264711548701720633277170967423405906802349806348680793471708499088088455765551802131026915714600175148803294108715764433476410952712511834047217442203168339619857942338295838361257573114409962504696974168327644707670210918809451640840008700210276374697063457319164432047423738064212320895660388133634693417587023583732882410231348074283697308096892749400768779819017725872368584200494015215497633704933919280955981676651748483543160369480206848113720674824430093102907553089117336601634938469755101790225868177207602117823396133065296267433351621166442060118031185826795212024081352648935750084923213820585763348069105155050532287858489311373331652594882974426129925136557672242118518424025248487060562901415001174172765643169919603856434486534185715971467789737865067067750218469174066108413196823649780807610547846718934535582877732586480584817289748887775060946070469692748340269499504299756888685605949864097740052917090724852393966364234380689568859240447909865576886098427082482793667575328923239425415052084666014576120155095268317634782907133969852217232504391448628717912156485120627568945926874596844183513221511152211725110183526838615957103082051583275823101988732968050669947554021728501720186735254428007867595778843561852092432288345578036465697795599289922860152101810432843743468491095913580547518752308019003488208843434477000519632938476614334561119332234248396364632422126302192089672681834458733730073782543134989692528603279498863132690795324681350195673058232250208743831351279591731064923297240687419483082993959203830947070010865321499019179283105288503667642197837340317000145886926576588847429812625664137590932038776412881814616950843767707517900904059130752529837659723301775629528829806007184504944972123563918474134248308010975083970580006532364193946254615203504236535272082111016045742872143237280118912086143211066590437338023131161824088132001898250607546896776961834007055148351449254761076538624284953100740686664744477331275890261527578385633535398859396240416470342340670519106140338813668771752557643982353741570841450504478174016032655970378064275842573675780642205466256356254208539310657598943265314718008227878076226452806587671904764911824859649894169250148473085890217994634831015255847625870741282529687880132778728134632095460827822108214905008041441670964041510442393617458281717344236029181697367145793226932614033925859310045624774691081646988711948683208345351570418446310113116705500018477402472964964357680982329401099141659298614357250642932231090482073200506642271482272787783136125513261488088291284884917309056100564229903538998622669626473491332304301626049170379943609812854919185602154551985883223263009981746834440597240912472479440291433039958338955122382473060547552781208261503043903772838903617122027577110382680837124117136484893788542838589621223534669919633090918259327762814493613944994490428441639811704040523272594592534847115548311216310232599396482471150549372626387679630687086235086949954819838133269204380750767704429487360127478969660706452772278812420137194666134698592715062224825706299797994355445993920205939638062168500230400863117927310008126632819454968358700239263127557534541115518991155259542285055551260083144224898632370114697177903680518427735335149720123614870471290119990836302912623165865218804990380838097819138847077561312492985374257222487688920139017328202543453059036987234481580417502665656032751867204492639201557146462753859149968065835415950289062235586490821115832312383320883742643632486028664725815104370911323159084979871825884375230986272254799471772500349621613962338215546729303327275497318145086879835335770989406998218688180409955983100050640922434657425473359274638388969949335509526450972352501929546736049331098996562094205141079424140599296382591241263737605879507234412737420047702314591793342053251231045748791808053775490638113540168761145265848787233358745646724146794035718457630147870760188831310300138460689333738750730617126680179150724942334729737044319726028110553695751249680555380824782889502371354880740327869703176431080849162757607168266803805983504577850892505464164222669505658683707033827201593143818490670276501259601944731581979308379908711138038362148768704485443175724547321900088013807925283942361558951934652143601801981532756419895686095791069541897301611929897432306150035477622563641225677951647621929877430013263223082459157225206033841573777562178025394822867628819005038003428623935729044968076024549945866829159610846372307504922585545915166658501135266647513635179354916375192180744001043080479267007117198601413944783374938793886222539174669906032423173541568261151874879566183994930186468656793731919917577022703021609136632723523898937144548078756853752579393555166234830189919072028950792197526868489352731030152576020333122761695251719726229057822574080008102859659144886465811181419904018717052398355556476072887916198509571358615679325430165564761821712795031765042095151923819212743267533393823209504035713133367533051082353850408442069829607781441538766357525193991971170768309301332485774099847235604153346298306803439915668304626489863887326551185674836724996219188393003590922875946592527867400124214225919337844883004996485700444836837325935442712379637535110128449025580952486432630829838596048728972878453610494242792941646829320760607525136268875190227823717993305566296496199889412885969373203090421115633407075328464216476563750629991178354632140637265486569015569577148581581886314254109866327385427932955753770054570001107747935266086468850379425806871820046153063210722904085089604740418553132990735022135645084993592056777381518678185994891805089780479963976215644630441764545512334349355048335711426264512283069678825490698278594672993092072988541749573621396493969084350493232912342179812291630431098060711124959639043541881698076347890169967030875621477902484822653529059078773315135926294272856692192381148300796135820466425818834893566592116682120002387973740094816765801333181268156879066820693762104154983188695723206457733649787764023420102630543284405098511794779186889818740813669229228986385073622204644621552671789474004732776055982005065499849810389085151069937603598699727089809325051871553907519934059472890734548485662299085043527158409295918975644687427116567579575206988454393984778555023833902022890358385444833446321580645144381665833597665168838287672985639602602688580498979871856817954307991170185477480681734566359372205839787460010920357724838773110729510169143388704252977135969185071472214803177979250194128193356406370740692172381091722771388472529087913573368525692197379899018699267267262440804486115399234253038816673850403359779348409519743398645398057753499325378495761797048879244988317621007564767704766832755467918455759809793689414039190184641674730905255434997643846242346969218179044061477262436417561742267752612571637926813607916178948007357400984304008392651213117882269725114894872595201422754086473505968358745008630886311711942425853658211416956881567951392792695520567753065611301157275155630764398807970544719312922997881433831040840056787468941672147730429984576105655076901651845366999806074643240410606299053939878763482463628124298738296864256133768730868574401532798392205610330983566225673575004048691937690112884397748859955677400923610324431312931878819369805420943220065721994316108862169773084941503421038241253748323101947404969356142057212730032333548509987049262625678707676551486414615092546030397154373393318487192360319221442831460157269103164594198502173068544693730742990792521397251445175509295437932197955833329873894164578346852967200855929404873305760193114788764941291655826140054386287183378520690274006509202613989035268039276221125418413263495412150028411172121166322405789235705574675890496669062567090866579814066747745764250763250893474802534247740756663198974604525853109980118845448343974267305828215686962267382576449292259386468873286709481856567382777618048566224963584657746004579393032289549673647498419810456498675464719846776029559541783161761294014566111576744534936148027984825837469164247804433288178428435518812052876132845232314338818798422802506920117836847910877472287103083153367865759597974899725911239197386131012426869830401777900154203752982389884973395563002767401303203572241246502951972515391705489695214559505242054024783379193563211306809668976419993816093305857575396878004828551078818274704743863661385243951958419834847233459126480211667326242099241432464191131063313337146869844363566367490054966261433797456082835936724603651676090585467869275206843305171780172580106948419725994860018337057066511238012980201626314471159764638248731282535080162225573309854067620927853339370351224025196430674281940084021860844111584877849555979365018494247438101629686632542979275919106391350624491072963792490583878562855575032378457143939265867541522381849314143716036820903306248517281198599739957563524965245873579341141253257977834134912520287244098921838160774585143136352439902516249008784370924594554757616693511905939730914505592996790003589948748377605778734613838941816626320972978738568616722600427982791052737852202197396218394906064889103041250409034799620157095334772624778354112162605511334426578280484083909675247884015703220208462067026547310318066993059916153122466320103674348540568310859398304153698286707863489797608892780180229107005158428177147117096856325758437132970069984010808622067113759090320942625334809859384293464695079918399324391446497835749911139227590432253652565790776957923522122226081932932168017914788363522857220265451497451907885470339330675479715837565340942218873467520507592909587278223239999524476940725545096671784847535409571158131600551590810331148911877717035327650111929308652308257424356612844637407537911062242665673344292223819123347697818948982034822998388955195840175470584265241227655955433347121619957040151197098179476119038767591686819441361169515599929060445892673863994989419633524887594085554072416350025190122213837805562330634034061292043515498242084054566227261111294101789659062683979029039740255569049070207563548396835669264750723460451431714786361766182426995790169368752710363903146210259571439598121199383653798587340991859180910929888359719758602905048754038874275347882149845106434687131919696466887397698097986318857001212943018004746622741133611147544199925028343841274259800305183003506383535689796211196903507265811590258853115000592642417025089697341216611734507690716237333669672911492619026152208161802833585651493003238734356644014543278896512257223061947373872574375642722139449066216377018276700257722237706777996969427590883914365612582914873094786078471079367031230587940157913582895211367632918156867128703239136098352525655521789257373175882461360944439090964341595328313286683779245634340187349881436553706624786163026639921377312337361506669246556376559670133676208730288413269147945405194423035775372488406859966501835442298897686372105268974881312180551593138828089885891853496811193041712271430698192271332772594744133247095770827490263262182248846814251124215311056721824161631030075719280063411119312025344834229808922885141351446177879249921659343092176998472570498917373867748480552553853219462878954584347006993401960275851177140285502855486681779789467629103769764774132772487415264409565630916562193308850358762338413045642818874630385031536055445490749498813902725030391080967209105318813119566769114563277294693499521059946077333719382667778195866929841005461315114887693438475391068868175973811415923067794591324440890950028461842303742246839488266664206512565430281930450526036294269062208922905773646711150698513685956262031470371819079732940049361620654964508229885107364495299816628960370243569369185236883970058117460567817382313904368645197849016030120010101415025803053169484197568229891465786279199669650996008094063063175228509447060473393211235407991748027445331936085303302447176101269412084473775106065056824967116023204533830519510902882195872075886862065778073260328027621665569205289129701205798180123835180782199530433797267306096098658864345739072502163437513886723204825064808997431084544682431911313006552493456439528140953807213149550874772263793253102807026873111050347048988469053205297418314394501633347113189768357562321719892760194037628794882775937842133562145633505184608313889868007578833162576830194218534023354508491086852410461654404500612665505061859458751405714245163265259253857406993975424669178645616610018966204891862421150649438007004956719891603859103422680403471123387382037598576272393486745371605603828145646096553238830931416506860758617569792195076105890938618267822623912076699898578874478627184414915996001545182898076249696302876816942769918478057166694813800508896610155448554064904656793743513499643484568631372885389704990981897947367821514922797914342483730838901211555380125816918775760970274961633149667198325719091821518142767101172947054142217728121341245054909982559151031931751493796952134758230635172893792889747933503363025451075571461589837933762153331231999967328239515947167064573374637283354404224580761178589310803291047010338001784151986845215958965556743532265506467377562265476019641968830595074515799875543934863031490261672301143538106089864655606371033695341109392056161193366724141393441437466293008428355142053880487457272387889196344033752673177318351515056568099952277792806221467284003887724132172827270518540254779625822623607233389966639145394828792329476229406273276636514065243897131913649021314299681539141708061266524978029497075478256252777490107828237973701088111532437991937555717577696126757112818493472411206303886820277015546797925340957786772719911058330031555456273339764845415556442960415937549003713621679989418453578762696226454088910093076002967057631345072764380423269474810603537482025503204329846744661355900774511823069540497694631912219973755358548157980454911114770909594369537881081720179464560541944196489969443876875713365337013637099856438719008735961073340535811849660203988104203293673679174210423253553511696332113426408082736124257192926020781626568883985825033633531077904383042000917657624960176799421651379587743706271356110543707454718017977546321503459425703012334077636862195113544875823527623735157325064040931970066839989743038594015999205919148234082426158204635727041155374371359960662550831132286301496562845581734240582589019059070482640415334286067058034871895574515568362615888799831291929975448630744723490630720566837317783249766978255161559048566728823161284128609204251859212192361324465779932932111566097285576441916404931041343484384048323956451836070890238086669255380418035967758872464912643946413528606673029731922911019828819153088341295129302781785869148376459379621528312612522321566892661321869820506391742325945616974473160544406006759334690771440026540337784665427520330553178742272617049859983860866770749242233931139582500310651798024920954244450756972190920665829065820863447595605277769258394904268395408502862901253481370758106829043532480668053908368840179740208103212550022594170417021065967131905996110294052777106114596836151553111862602878139000965955417937785444753146843805392992183643986946428125476236978801518650802435306146153585421131227200083006323689651476571790185839773686550412340633328689760591634753034585473839324608719040568014358616397615151415100914720760409972357995776570437807897539098356049436139909803045467330900136333312257260714593709788869452675431894715605934770895139615112740539482414709116794786547952944425608564932834559525641438825731609137407350306073748429036243853616889048238700062486446123026983403289964800677050844841829434119526931710603285172992926511236096186718824972950158604406668315613264293837090733714864254749889231548617665769060183523369706078642223978245909623950835793843858906198215277949998057319526498281543527664699289696132825356199702926617979125990610523706276873621753596880907095662189065507534672126939031503772180459368476597100139599824309984586030888466371637863524668986913607914811264414013385667691359357246991615108803003023512337662791246078842864343497584271789841876379437118646795758951691159400980188928229192318536492854281523018920277158567760670039387698939299739735780301040368505753084635333738789489007840597075869951109749425589560123267663665067198555719393574261250984570029354014928491005535735419341223567899993152444278761110759640494232628199452455254467839496592318645671264154849674700972106366281948388940926635976788164561306939303849992128975801210490767774495206797714386655427240573793335714326738891375903902787390841512199605070957479830394259736293921819432790934265302151022447709599740534940865398784862603551435162271051389719897315575852990884894564662756441070493154998326804181535984655269717036611789501320458198999165391819327026195440949767845380860148348752412949219440910379888716004732867032792351437538044741542293154449453419355314876327670721513458685496245982882331868230907197340581377460005281929436184259211609611686677709630398797022342081842111981521396429004067978036815075040044476611834153718104820408653348043746372262711642564227107652037516081188183943811165779355282755649225803882472784454324322037453837134304167653639831179555640412590599956843819205174974674341599070543738826018462965700934359881351207303033481575358783067039675664040254955159192205853404046832756950683814987554149756188461479693220000791463844264003784946973124155022183627578338223930620721266548602059630425904357390958572275640929370501336408788169618664008695317186456881705858382131151458836150517949692934532842893738081856303961792355650755000289942072754503007883886298724259960357596048925471405579766051807177685866703120865511953382191916240352230191353431735351622056839613781072269515802208378198170541096401649403438027869053208371499060169599028733036937766402532761417091081338516687248790337442437285287530977385392279913014544539561538383556219961161608315118287185649976129649523072836315592971849852034222801568652399201250978674088940750914975890728856838078867339952859055890903687197072201997974966748236725652992683754308437811090964801591049970941928412967065098442516039337648962265537821928484003191088211892307890742709188070207367905306195532420657211437489134849903718982211510681754186392089754068690158482215996834429540754993190650705451696494834986528703324366074290202366686074805642556327721512915155487468192183528739812416052657259408163073189915077027130764518363776129332544018830824131863592247665183851078730851468398240944905173109792213548090409406709009062768162602238717697626630910054735867435938788271207239888091463066239703986437847623983261392881611666669127204440469682312582799810673145833205551410792094063848433146520929083407270545669909036210580377214358029448499886594408209393046869832639227758117800305557807060047221649504268071676652440083792102438329953801285055171629125939620847711357303972554453498874085002707096034239306731102266728788032025688642177522192036032940456652568031191430115915892287178178923563179593449850770596843391540967593015098938546172389073969646911076396825984325479426099956694637991802038091818456519471986441372234327535362723632839657825893208474059055765387914679654204281406290401982453068128222674483276936982832217818848706966083886479397690858833013711873568333842514689856500305567585048726604007158396441372387821536125001920123938500040250018364223171917705755846402161204094005059636589516504884391529022091468800881374734764503850501060651998303784612298117491231679221064986886447379330826510462936778873713116788217956960220811624040519497400097793408562727741714907828747057744287867771416067078448361293688089207404094157693112928696975156676391950959870210904241229180803756742035411678017955595535492108216155116858475879650938492391387900657098955795979210065364989129960904395362598976997818252766438855601661828676020182915476840122032693547922056626514780611401678882952908382565689214711967545172559033041522310436811624457116699085287415095142619092074182657057688411169089972436792256647759239683945310459754953381889992152983699163084673995804390069818436663563568962479145447828130260092672792666883884699129294804810600519821007880973788313349531304192155120380945821493052228286863689218178629012875887612948025890456556167631134488975669712021152794522303622096322568412752457847072586602366997334952768342119875829572352566636215962450442671503961847251828214474242941362029466405926661661119609765134982541955585229572316746859529003922643147667861363620481604348079603039515446360207402702878031522122722170322830460462258808259481296311195229623491545206123550135661483919827260040918490722500661612747642491172961426892769437337376150158382599402748199508657725507443991562305997791451111811561200263781704861694469075888009491819908811112208825431731605141558069588233534274794291580444940198630302924196279376894966934408686815088847597668579854915306065594654096314025183320579041871505395689777204271478861387036321643752345508420873133161531740540958397546297450670902576552645067295088309714948377931090071439920047107379191538250027207902558942915524112125535943348261449980802103254856156183808939715511574332615252860166578453494257107681471358601942221066484679264168029948251760778831452126063992625108725457691972711430883316619292391587705019533663730448389100478214475607498966100966642075353460870428571985388072661117890089586408309429499682825696286804005620228735768815932765073172580444136060029406052298420396261484424017591693163444672711450995737282952369494764653085533176810915909693472051541545248316877665244572822338384874585473078462616786940387699192275266953238468649325555654374282184480906548909891929854632792824141853361152348640851834379229981277625267755787543418459669367792154191440335591788872352779833304433689543766427892166166700319267184252598347991509548712039541981932995012815237214890328181087913221313135405011736328408995813435117875602719613056657085569078118221886287770809666469579921918602860783751393772360346714275592600262311445054523120998836452905664411024999123665483216717771129433251884380673184888849855670336334087738189566622480480606279158195565926978221860754184720393370390900989809021950903649790645410548468910683185259504480785234279062614219158674192299008833839657159072927351137605302299036165513762878167380761472247130541341853654917329838882663847822521984164606855046224943813043068330960408747832186320964995971191858176660271427425166333786974846192934059502965129082691245734714306935744893921688252136098667004516645049800487665031976232377679092569973517359102841814331460008781170853132068118049092380081084604665282995049478176692597537977904997234748822528197371757305925885788265002109970908794571564798140915370304169985086542179461528114784604489765688176597543221153555082839483785460118309557958349240401750012883379165750506111655266785024625254899086679216732972661655716785169076182014828160614089345343920539264115594341689962809152218256695428287115318194804549715948218203233696423423710424866060271488913420339036131529270783215383658591463982719839790844532205412531513805826465475842579121631987678203692738829806498864789093488108654637410479977898228010468822175009556521619470775967474563679883022055995779904232653193495045055795090010301518017434634161921907729222750024637418555292685521486095085642444508273773934559303514742460674986886487504035271187042872762581079612116940632903180696375169890365008551805159669902037785416909559213852281803958305385710990728239627331639326002069083696808010858656742964119121460604796700585070525340389680280436748183970618241314996990867027132449863139134440274836297661798019462869448379297468383498024700864445083876653451231583705935681445013938864524615316034030476845690269626232903746651305846495968794994732071422384226925738107472866906438763542875336599918618179406412198780201722572814928289395785410298023790276845534874592477689089456919737792844220622963926259615992541882485286627954756684739477028121029664741520384844528260314395173035350488154217582341798880021021379595458715749618321881195648467570376998464721738030498837466762000932573430584523879972674699186416075915390954707375979067063867975885319655808075197989622677688823487544877781280775749971532133931728010385388373817140594130101092497489055136876441276053493710600463954796228917517574085938109930795469417707598985429064176650777624786009302360898722193082863011519752770376770673440843525192306452989605191974937727677116150342107710365794630550796568147670857841502884383041426605103670791128744216626746329310515315306641333764066750653735076964973110347034008364817898489875555064340529010346763105744556928868837420039689016477615958318121957842114768406558302620316310895764278212562930515865200651340247892099341861088239865589891649814539832852600202020985678637644804875702818827048757535161870087020205435078142619473662495246943879222262686605516940815849513138302908406028944050803548562620129569297830641660307581565252158832321378320491428397705940781112741568101106604799880805373769245938586424607648820001686415158117286304405958854653452478322285710691106109195192648748870192424227937524158467163939718566210151971666016749747331338365490399151135641151278181510586235909279435143971204338691479280550846277861375641158540761902676898032248395455934718088541860359486527425665029126235748715091484687020370207954785436433853370363118868913388677170689824203202258745308223552939424118591432531213335664868820268976629539771669704610092256491520749788476452729336874315891765464224354184431488891867701536824304132294238985746390083124421866209666550988047254550971885947456832255635390238319994871556426484105419291585193637422594468458928731197520809783769184539237619387138258676727117109941819815257863152033043657129557695700477714123176860381711199639166446193581726046532061906943175665014229562755248147104675526505980185972288816711283061309373847548669539568237224011835244777263679790363683864287238204220191554587009278454650979615971135335314495361894995296154322868541067534655058648331684429044008341625313156052652081238524498514415442239365424723885435758746115381981904271276219418755716155596780395884597886488168684993579826734003722700461295577661871973578900614730779296074963730374908692917601530712059038174122529669892992176154559857856281102339624536210303985912910878318538148611497285124439116618490368372780689826026534275405847163305785323113128833557215213397217789478804464414930457394502189664967842715887798527269377726222771208813043449686748775663334037782694374582776972152344826632751025259295054717726765813323950518466951692680425576535972670063901814581736884261079398482253386704482063154927539716226597369385112321936022968133231940691923729821707149484033619556081818061005654007761924116248872786254854015099691830949117938876583468901218225613275185886137709926004572485335350136755867387059315388741274809686315604092891158754774440374510685061099465414904422227895598464954219500527768921214305095886983845493587415342771754379679908030174823642379665859502626134015570027802524813556615978901114423497627542115970961481332759091025702895092302197358340783926695249523673472873329772990682743784555890044377473025175509214767561469028712906471450950197479242561064530519493472099228958745661828421198548586302427228888396476114669018122439710811393246653842574273600225326118483715850782874281630457812646573165765003309569894055961863612826342073165686816997199272504703313802414347033184806498118682115598677248308149477316355463470370262799657518501749615364035471736709829281631580185781953674275394469976157673823890360271093711555348316584050631640350841805278444373613782886395092306808462635650162434103113208231516493613365745401414727014315853759143400545720654101751268317043120428178899554692128915283278236924085884585400931483898229082612315158546681911576381508844420965811076978100296452624146464213940427641677986759084064279086817740114151987123920601793307233858113603868704802591838909883082140171146056464101032591634959421181137645010701253320116716380792760493631446994263047750135902759422131852575696854579417618244721798513029456656859194515751207678117445674269375846558336742583738655486000472968912905892787018072837497183886147425986816711657618102937624302705387435718910213632506363239242814461893740720729739103875824307533786110899360905923424925520667465287687378173553368652169437791983161024618009612839566193282912597461070725018353939402829594234085042070243796487881576229834339985370684296386624714117959621786699301519840685940641102095457281933285885578844367882531623909224655583247448047090538342326933851580252929819703112798273639704775933044246475974580909569085674123392748224826441322372073702490131184842900433189700395107505848732231058984748206933247512809029674909201549101229304381396137015747408519653576466139790263606610710835465517561958888390855045354980215606981381306780672664819013169235891894449481743565993389304937207876626840498396154393179746065371359810143767495306269872555876158778028047102476640277053467174351396639684781836884939737624357487073873466614575869430926883822186786668190457140268743459125873322515019065460627700388511744205615668585932889549304411288064990942433865274328288560298815579129240905769216865825272678902982988290910355179317095643164001792946623616742239788377513505651183754200596159431800595929266855056847279837342205181099542864596926312028455568964787711258940895263221303103385017047798900328089465646423042769351432354536283047607927095088567106501056560359923610512729467410450663036513425182483599285732750847987205102247274772754106995768682907072404690796878693107636270061977468990524271282683938416978752432201431572901819778879776231301766869837543353918327311985628487610433831441160249347810072212785483589573745873193041538437190621269044710017688683892551974818522461377805320969133360723552414058665667652846154512552504423127726130347434257076184357446521397003641926258111063011317472601824335435168320457459357879559683345623190207511066138333986873400082816501146302884527290931127748155282011747122630478702140687466850800294937389781441869166685394073648375178024729631332888333106444123604030205786281635871484806201361368503472597189423872349923899238078393845972021358758561363374090752725374896882478764526861721123875656857371054281157703269907520725229511494559727414295625782758725115930312145813208663773657412212585969114588003581370718719524284176886648164825312920562889610021643097489481879824936675274642221901475374584583614592362330495777434736519180600621533659841045185965906301727032478781224541709289866083443168416836366838311244461014283944718592351024823692660987754836833763039947699431605415571347009361891114067904756191449050200625857900078191195418557923354329946541475162297292413363230735523378556183355999113502820568256217830529327747698639038470174744058621926422689608482700626448409132786999832750209670239102169331874474132934466753417740880007163751256582309618674894699096529848831962382159074665323511494451573051150523480978256424461467276611483813776793334266281688745841004003291294684906944673115630451825671480962840057260055430780624464822601519487014762844969238644848275945384225076472340323112239837121886890914716341358205892975310295892526737192986329750879334454967818569625138560028037495027141564995501084367336122736203074971636600892324890818443436393298666099953887576106499515773073765187896487177587130859631901310637468293198828957134039778166444978126940857070098508813114122010151738971880718598550561030800998025770237804042929801491604939018013825714308936048388355773951465473311514783769237481035663603403717563715634166841994108480513891267287863015055418581879983837026559114796730640254437546017597021260448437643621868831049531078354360338222369340919691362548854484914178648738339702118794262018602765866163104872083988220618253003348066788606854984686728992920240813685940353419427974893561762272552111558161701461957294420684993068163480883728586573068983816971077872246209585515603446641521093731563186960761588870037530626508942062884051653334002693693454163551324840324458621816740630792367743934214205373081503875604296734565921706902754534372985418379731224211857571142322359929889836212597508336232727810184789147883267929039380360310629953015176981610528969749421863230992382147618447508751515337477288196507003521695973786519710527389410994928995183544579326765478053130964082907971356075774199197344807961041285933921189836833015801152118539961098361841250847254348701797650792660535874359579702313484784506909700168991630565012552736455025265386576351008123673452542844416236674802124526841135772497973279104826534734809304677123686414375616230509752128258428114748651942645371812399004907185961798034301312806699655059541867688324939921714993673727687446018487632972674724655076928812978235698532648272931922110900630019275062544714852372528225732520786295635958196078946767730232589639380003393372233318370546925782591527945009764405833205807283891606328392807694754530391840564600876036016968883224913059181442158275997746103486624523000952828276340020590492059240199836343425802629994765743153519174481760593367238335792048432824757495232840205646636299508702644480076843960977661616981383196038103711608114220889342597036824825012966542693808365689264548586304319537080434113398537521473513189823883946351069531456432858242002255288976844236701527794732144123178747717272158041755696700981852480969303805290410702568381826211111826300782951297997527124053859716583273824440894378124723501443025744846333341453279362920041962738613074671263127642256167721037394299035477014035533285097172496562537583515397312846624177627770665354773434064573899653456899904714771026837267049923649058374186903370278239366159856343748372261937294291285858101291850049576706819806340787616187282001835852015763363896812390532012236925923545786665823921563855659472236389557503084862954011508465657843748108882928611710082997263406133273126907896747692063173958284872194755736897685790053930570229371199599123055628617560948331218355397647249902366709920346417600811909101438225191363736488416873229740943928045410893314018862523596759565971420334190631577201707341868221466373951683109573730019823048032047547298248101346677623006999267161124794155999020684158549267830677435966267710920963746364394129867233623966558407339860455927312276992533960932629701242018055566939393352669656668153530359514718021313374056382249817588114100973699349793674177578806338840552934886066047571073024719211596518409330082215939873987824073379043224596020711160883304055971423368664005642023222143702885490145144343034610259906221219821897133439998087711877226946374547873512255130536711473224915844001213335618280342069333225468961243366750262615850185341258402152884917657382215675773143989708077972235114995081963890131206337005364949069069504222127210631590952490589441193405433510948175859417705202175653158045180680478405759795739992217281510708927576109394651332926124646657681541009354691645344234503825473826107666249627799301104842139436958789731166234044274494780594281248394070762257684795606743759515063558711211304083968339564199602823714198176742796340915833431075421070678686616743334541764895391077905885370099328187766337842739428310956382764235805119363545836445285784706881068356043442961411406024673435090752775327959480949089311548138649154930565849191150490966274341900110264908060686726527042022018875856435309250730840722501483379879277350941848505973320229355123929858590183882953065468745715278998298920416085053723617277061345595666496306355373845280540706854879287467246381742934951177643756856540962402619985835768648640863791730145342977709588909180911929907525538373233964705824276219281072445753642502601502415786506008334083421354993726254877683361264660466574353390760614814424298926756837973790453640834084905509377199874354814479657071228239189025989053654776416941358375496813203943388002921316082418196123463941403870352167879939266322104723147596638576691528306018236649093458573521747877769820759518457283989403721850864494229571051751567758165432646394372406137364939897750176054276832162509952944286254584298747665836789901287535608687225606084425376639735886617867753571861831674517212964392666421825862915700472086785640385461242745585731188954647363895232468418623331139635743272576670095097465751348216978276713947207436081531868027104923599175146431809067142021481413341969906986156667563955624759346024193195442838729001778094163058077132642276121289677104602113514433187255887684858919147821716051471325506873486159734269018797863111564208076146408110059132427969849140864375902337835504681032961815903699041458705883033932067730773909593102858143064853590154654884357852918643516654935129431456338086177167866481096523104914170457539107221647560292814017424869534412390578831252472328172367535998548934819704767979672564021344108718867704714739219261824459226325627316700400649347380640459993022701155182732058541986750796154534662968820751014261464861761235853982542391299574179773269202829201375683470139287765078873921645419312804537673908085736219924928917712960647049056785242599798691450328579699371934956476361144362411020538343532691137432873486656770308492178819025193354507943412474709400301282425074976384502446399003264250932876783119307201365105749497310345034192049080012229771344094244868472946808325473727520454804947006181610327148096814033390695998285322565459719472280263947237645700270144653891116525751560528532029179685362060485666672532725756756255051785416125795081272767779782415513253731361125153261632051462541742200352876120180580244549759854278786871891831098910915045340333654777700974166178104273463459440680855907466585117089298097776285170651228055878621254605631107678305489141094268468006714617855164064913374407268585580943170310714242366258750203071450249123706392375281407909863937225911921338136293196741981383088554626060785778364103962938681887146148524747735309021330174195034992051726789201601921831024842490530520019389631989169371288699300057224641224288260160529572835655114786224658480597413925259581791566268142012523813853412982513001658049534281851709001417810182965207673598203571219650525019743874475255527140632280295991616208942186052062779552818002527890153329328904974411350670533460763318496391666814882706640511549399200513862957905325352783056343759943628596817111623420633291049537137456695698378636688030694482924558989732493457925369422369457482703168075879723133320487437798509440063274083733710612783822180178112654724609146223013253103200334571892538449989440630128018969240150977082971965442561753904738685855932676208070851300389916755531302763435559181698272760399394783483642548646848479577026769808101531774941965996467399836039480028505936969937727820487637448610650666765052221056520806218882082084564226962108680007023559373429476501208389355923188297746882987196201182202559530036660708580034180784684251096893106315797184780031063432980653530542830229459412871530472247021323093904258100238720697746151940058022540806534533752873093065335078980240265596553670995753537295315516183688097726587301968409968305539947827503540000637500688078453559643281969566384661675828583261969777867141793967654261943246577847119265891734386664918144110056248324952276384618764245182005306137318228150743712965788699326970696907271530861233383819505012203200249749464929641621995580328696176207824619113755722439313923793422276311278351604823204817750829158087058096377732979673401216574566771391099722735650330501323348614358873120078651320971410504285635275280417857235976765284989206845520916762145765322156117178478006955762526784519792152001204290349375452750821472172916537006772629181892568708714121115743676070679324797534339540158897699651875683212247966879778932571664490079393223643305581132020028512207874521451511787654812034075407206180217971652412371448841333587206093649062118433884691928807106362973089575333225499245843727241945697087906944140766945885065946029414015722715171189618464140500118723523444027919076231223145877712249732984661455469897337993897957515699108046325697671321995490719035994074350723056238254337455567966366585744178123854640980680646158276590993169733270979309303006828477656447236726870206092449629821437995404379195932372053026430640257267071659096404323003061597064570474548696149874002347587238974841907077509394468807059352673143880535588990635866969795736484551710953415317501448333160290507063758032190704259954736532815492119722025557301302419987405871709429730167351309395829903288366185225833283348543976054878977549762845161525235548158287411560710676486638717072884917262479151653840666998332036869891427706915493923820291754713389951579328026450431887291981192454973156525615658328217513491630718214890538468443425159445754456206868926410871159397176720187947401780030933511894333051025498987713085766664171113778565558570677640669150705634269599748603542212977591462283017305508165729358769696006148990391748723743858663691989624785748070023183771114321573026675734660369746183909657202757119564703644107744757136015291357842707980066073077223277725773253546629901311947823674332333097606937648061924524818964019104197656280884140594314694871034544337921690378109306466175463031913749614352943286405621880216843835870303641106878666448649889394053835501818134198717477720518196623466819668695897076316338856294759959983702628515887092886721242017743578791558130585658692006599877347159667367377762443232485062234840505270527831669495444155001880028292191871586718023330667611847900006686631396710824940254046589357583386220106468337376196661991151978539720529626292969039629035545979081595316388269919290694312759962411596026267790924916673164596093294651566610251852960012258026297811927087805034721416928736020887710725146298637105136112363446067729700022744578724824556940255065864656389960319365974280584997480606507713219402508037650462212646678886725033077044298273175672851079213736702262188872531952671695980671111846217865889151276112963889031578832052531568757317767542503101951098242369131488808145227454727485732341174195461189496529507735979792926743631450168084154654676947635964363117677386574906100087458179150765103371240591198353706946976917671932969396306488591560788564644006338609994882857022734417224855525438896333954781298809300089612225579936475238940533522681648710516958140643952957205937324122363882480499128960895945784391140159553696980399402942520494159175794011091472171820593135354349235001677832533232429480574056832500251515983984381429012218145059500949627192921321086750326344488389710882934139282125311645144144147152331474857657947921416655227237770130536223580912341602317314018912807932499223338321222121844653266236822043948328424714116426547318860957993517128903379830665060499884291684710398616925548159149250364883953884653610628383959639757202254503448091523387644785887166036294746280743460339735251923822684473613140919483552959081885834790931847719671857788134200476873116380605541030980641698873785594378628150285063283871111121473078874201367362355093533163233744793455706338271147320008539490963888234019291369480305464207641752924584574163979730719882139117786370316230427802851020571929353602310165999199599269432600206251804287324844137590425847370248856992796580467322959726045042780962497715873151824173520976493035096068069093948639658173627344429874383548971413841849108165228631342528562423552937399456447120069903737036504492064804723248089044564603464950679838779420390261343990833442112234162327979044280841340437138256525599167828097581313976652153048630568953427593541344967849190347435441575971700812546986681692197357977669021615986701938965545026058106274236591126537970677131777127335171783164477607886723257489674068010871917604830232011773260237800008342514620296365941178135828070594626703094560585923552772847272063266562800310916561928070231326054324841522830156132958950601976415678101701689717129065122393487456429229718700281016522221439600816292865470120546911420738460171278580093823162372285426495099155417331105282048765496948734204864806981297819512954246367040806629103753129766145110481881874246206018705669536934078774123338635291863243962774022731450988465831918092323757102343899639402293480454150116969368692943704251991248891252689293397081755881767027407117123702824784425476234611647694720194783383413283930568368806024394818561042048667191948013049703357333863314033638978983360847887001121993394747390493806815155280577741096388179277186342445814468293110387505366108091051348692018771154362602755792260039458960106797508900320553899422116556048585843797491477791691303052981877409183108523987705540714155899942488352559335319357275197001415364215764108456062518284975282030291037517155831470892084482562002288904067573673197050323157935625714679334929153196750568088679191281207963578981520937926280671927957449119699913543277527256150447337068726997472202044296876893408258830215506251418108800665269096111370044292891216332254258783304823473920188690546003777221139805193757656008221912668494378052130145269538469229643309921175488369770838658543629715468439473025697461675555018466080521781971201089310234250897149437989493101795205110344969269390292791444152496508454424963846140985682524551901914327052450496912414058865605536965404450237837638563111280799802060051937475607842072160052818588639052410051755835474035503840203527582609287460202946788799934183604079381159079521963814955126328227276824935158931600974201303829948341755379460012242736291374267839321401941591378185770885841930872518986553140858531461301957996837063466731112074133947304609162574073423492448614613311330186942097985197735514399675156646937270184321216152154896486498116851701711183726490965645775471592750501623718944568374849923733418194750470708289760843410559935082195948078317908415219778534555161592252169163736898056360969187310992826908376359725074280283442598279286177216121332648164594967500139394422723698434693073164733503082944203725375727490673384042400809311776515417338145488721346500962366766138640688018065772053445785373937345486576401153013776013282033745107182716816529896672792114763110896798224443640858996924099979886845650009843451343507186565244734768784865927559620239996414261649005059662813373173885057620317531274915850700568297962437606311026633296391065184632224530014351418364944826121129838979250534358010335573919246299904059998443331304465243210488110867718799095529774344718781923025521330593471744892130346761931558287773525240710320759690802102997052330454392131909137014728645482711008015257431159003546704792161898808067264980286800874008594713644568788818024843455028882537134789348438906771015227160862610562420010660530439044982475201154149557598970125432305534989955991132366530655952084871185587212013198681992202580033110181124660193851207602511149375602474173910353786449885262999101709836381384576842654159716881471808104985627669742966082883624230775857804430582822579042779148359816851418056051102362820157756746214188467527023730197225480864874191913546476605295493489534922816008922345967173038989365877273942469228047965748736628187347331457721930620480377459164719464060273196022630501678019206882728411274474598614469993037012775156689392422765149013382617939472320304955280705176685350213266423178246049494127845529816476935210907371039101538392365309757825081491275733691295447720548063162781190454645128938124482520178509523231440599162426494639368746812602098224448923970716493371022071317307401358374928782784497338034314368861821371916957452708431520299480001795121480160180900095408142777699705066738112907094978173836711271086579550646580494507132195327418835777179091969401841175418420262537407089448580275035329725687015430121644632754916383022852636495129738316217772091762500437760200871250979132500609593306315367857587583313355662859087648186211396396501117743950644126151890814926619009156379029408566211685850225777924700561246992572950510649881259024469153222148875968872529426632470346512663530081114791392272918765616877682116690327052269969201054036017942772341755423183382676198882487385880038982522961984532235766553974514785479048945141347856852358579022414268148964809570439353928549306987405804515481407936526896621955564059312924606154905087446144461840502241097526876328595443711276566834831847332841492174442529475882507550737884424874838099316700919158931915501988299657711880571227876121602809202420123293906350324430421050849419289706749618681306939724214496645490114544732766230510258005264039768709537650821060664941945455346778782898589566346357018512657117169835109136400668314893595045286917723360027619730464171022098385075392024039223695223300310737825297826581799950422619391974771690715900336217061547934289515985312477471749814820628329101970960055610889008773530334816385033444158508601845837861072362027324528045876274850321536127431350450554708793270351800803562326453193961899072711774014738237852479449389354523183344684139851801422304395531330365196404176333732199594105137498489640206771793644111993601756033385833479450137654171780210167146632242541587851813550979929519748156984993280301386156446691223322828338393238263488248123200090453012018392120123398141177402510775981582205109855863516885479666512182467724242413605342605809539917913700258979740445934158557641513737170625284594043664504952168575195377275889840131063441670696611517957349971083950485626286032141509494944678331301280916470154486934920546490213549903567164787738244202105520962175342379757121449656731538422131284139663162181588339290018368801559449727366841383611631910681746271411020978037627131855138345908540167043273066530082043425747608986744611042294566106284653565581267032407412273864389880050568455883415429666559322933603734406255232568121535281179240125610545605612593035779882868294649357863819084201284179167804871507294796856748140683074529085921759841481178360510958960023962137650256394970578368927172450532513128738133870493612716004402269042388285290017949778777279595433205042032203371463876867597474396742841000704214481374791777843226895103615343028073445024761381383575948972345089186891143037496765649360320176412528321574216790777100956174026885162732230259172957927942994294564150942281124519914679278529587736827068620202567317104016106865098985810633111900572213109785515489897742180503948610257171162872499689082669461540193199687917247651004636758527543674956767794392055738071522062187898599694286677079671970315826085277009284084363083425422771311892827087896201488556974562984482217024008062467124464823501402907092992208367864336297675660374988124778282816518594441745745072754495576283937746575747970278410789677001311056467547077949255655487531998907942410643540705179053968455478278785399455933882857593369307715719411568271817990286959346498388253804390615932714766123147447720352896729195610774762629298006517755146622295698371092654260685886186194740439554222556203865274789631799765626161467442206760295903072085712495405643847040263303265434260469733998509573765129497008207503694179308425445998940417148948798779489972698757701939535576623375827596085734712560611564851725306576031791675557882004309839028795601280650664680366993542135731169934421065794286150546984924279828261376450353811120879802914154162576962981166740928570121439784775717309831385022150320411284512542047058883353595150453091652586267050014751428963583404240926773994242324294403747464077124142142674106644408543714123662252902925101129420360763175402799661822831871923401722861644113706940957320588111528782533053792215974089112445569267725133872247655177445393160233979669372624597673354056207256256772818907135560247087586100735698808818880568614384714804228515391656589906097531289738668870106693892621885888590732863099139227674015650905628518026515958076495073057867873388121351622144948695815699905262949286419576461878148318920660199422551318323986962005166647856845054424535386600002178008476904144393958022880002941626824562420817820728266692202485691191878128496303795410849824656439795428721592719980085079385270035825096918497444305616875114185113261249279900651544539078369274796755627513068850116439492457190460555035279703652175666588270510933897773344587958078245150481047193681444802800503507172221239481575139044081853962106340036804595396063721434069212933837698798691186006433121893243223877619497706074377110185174674730875810535356913655324085286831484253556620205063571865864175900211134383933318163278294447946677578868175414718158694971205731296752791733257317169790618516375343739612188734452592084812513896934078058034049535306338626095796202651624052869462447084842493104228911804336024585517930384925277200244328058211296156861217859693554142070319823385085703111797992492941760679141375921486214012741460085606099403856111305641431614626226925617338796137074646090991042856176778383588557503097992874803338771145803642671533612097584654093025325740316567549196767885174645441661974901581571778143081985936610317234265451672545262152733684361965789682867579528615659383780328330611660355061054838575931452092846136498444726267998590833132219592741911808074360635019439791579221430879396842217034534042921488024834138286948258375617812323764119481596644739180587605888425104354343652595958704464267468155300062142570110698127781578387004163258471034122710168638743928830425119849895086359106340212587336188104444990891479718980261437548684161971772410788308463793209146237167832193716963977528125883361272022387576616321513926512104895542263957711272611627604726088923161033858226077741735897471419780800570817461125580906967366495587796616675441424607769797126402523752743312700889213495890556977787636373888593362213580115503315961245438463552697009466359703703405275388989678924297294484650086728194963978492913525044565352773602062725132373982931344022696039286017737998870543195249692961001102448059657590954764828501671939407359969410626498323070848201617608069654532396572105114990869739929975333902510140239788110731244991832209656230501844136505031521326842966474734427042583088558548962775985062551593078915467840974819260552191495117073261311990173062288921048509402526866605156913390120019205113889611554376653727331449981572889491284960232488770773920028695679757490883574637054207599699683158617089912081374289129419411384220260059657362257118783078635481887820666324948928361334144998985697968166351885646039499972103983832149558583190975672960347267303445315470641884220372580062926840586281899423805617676120302082028095000866545232535047313914325493008025184671152238002041240331286776931589136733743885260343618778667887382323140006431327345849619837025229455129885818269714019017198491325853428026048774525261223404963529745786025387198469699842006839793064996311640694071274443619796900136520562185883139312129344738011313462344098232193804944461334373773486066643494699542677410036377291134968169642377157570964778227552003176555232617969781730373862881316904769803281548634289875943367876464590304942834492724755194690612786934575523601727872351090590832364611542868610404504055905802358457418543285489805779463365494336790268274499150129283844803734207719186295042367033173511049766984589292063046698060104785647264101925736944718265166392434353740147529602317949433003650151531968729192269716197002800720724659057256697833923698744552760557283056745960570771300784895334628933373173457723295504437384716316687646385633011724420915759614848344117837978970875978733275861084258342953047188982295182120277658843136473098841174099047625722374529314100477155635435377331914993316613297159625342970407680862253702222876808377158209118956702619129835879130375830378176035492906580920004482745583513854923275730980570760038986760712567115161050388101704422488471527579779025977860734495006776541908874754846684658310096807876273797314347884618948472179465448077476635251468679841149494190812260853846536976212119216489895827906399210063855548680658686868944708352768036741580655776030135483099187137326914663759680249315773767360590051528174466334222540869384233259375323564806138104952666429525421953039828610445403702848480893226267643197218455629231784381004258588426773743250449360931075967254245635892152594469395096086622781534506728871790682988810310984768578005657958250472119162661677727325688301931420395548626334967283637244161320798772588244477786770137110077580773791415433394877010224090801662098655896747294959912873448329398677252901122203151429154578437916638261474437421803368799339140430898596459154666311537800522779881970788198403656899271640411209510171263151740655765964491799372608677857606224003544812698899733149820122032981845350032194190448039312232832171586458307853717634563633674422891500745254034373891730164206777177437307069600089180710298059049924002011580535312874142148720100648051244257969392308751967258356595987108687887107787411227048060206576944219501072533435072146810824784489320878972651024974875971388985341121337014098115440216698467222968733355689758740110776149870908282974873581381878472547295820488076221531934345087386599687663930770608044790354753983685318052246416568222266876428070049237767577668055745651329128788038338899558639960407834898294183195720235564891219976400016231691420497345242371651266203019697030655301393011251956816393794204719699091312770824154142870170566112442807706442658366761553274164568169223438395359625840600416868406673728703471605561732284360545946365830611302288453155615981069925145677649802256116285716073972298049811561243289698385075316651733114958640777658919471874167076263503561517731584657143164473275457916505180812769594618869260870371516180282705312295073564688706292589765226169020606708413796171574059120009837728909745751216195973125124885961196797292838142543641703550713372042250370010094498203925618513629430705906922137452401538147772161146135976049177918709507755681071833592871186769115597749131648732669716563415645052569570930973971942231345805406265371636378363299839744398437371417706720388627257470981439245527251927375629577285299786319291588992164368937415974882226953058867210134927355824595542211337394134452239621883019705592713465799819476824128066678328123067669737236161796111388998959178810863678820795774403000653300355773595658353959742383042161230715012371349778200376724844227426874325896720020167713106534699894847837584458520647116262337070758570928402654888415828131692001883094089855741090058724139012847873661772073930286719918218067320103669472885947528247899355050456623599677342426401499579303479868092854194270720958187319001659175399222049914028724984313943612653004386894468007366285497788932963201616209627807000268419116765076395412469211560744190767694712621402235464551990317572321869923155332051541387838422257713895803830700317327173924687167218857545368531643436981515845895478914908749241796616259021747576128590273765778855228593959023077671519100670698058362880914246889969472765949838316680060880326605966499724392049227825000202182711570409487899628977119874805235606685729229735841596307944085876244819676036010828283577476220319069575907081558209410920778749753831950261079122892382645636766244502667470635067316576559412552634694544866396905308896551887499047352701254892617229344267713706426128876651889638248795221407752115051849403990969378076931382677181480260400179952976694877172498334380171070170642249778553819476667455771583517393843728183213844656718577507377905195823667175066636855110769799577088725460139132229802093151852318794432744682048310662208358130797298321807243426321043350657098843928112318822754189592968593410554758066373931105880447884674543323658325346539754372569529591285353867619254382076572241104665644794901471130306859473674710548884736827121323018372943362536138371431904070269257547020467680771490867193008543871732843734343936255573903040104043858330748534636614923557172818092968143901083767335747651114422838552734279168069152696013562858563790275803547821461509305753606180091936595228892957018267046772686121206184392700343889943504088027637844559030281196532096423900006501621973746075411749951273334674824603991792514371815322449486209268110023010740013033138085389590581123688147427327293457260675331710483169986442912865885898869608071424882613832978558002558931913283040435708283743111814652549873135525012121829856139400226908248516453873959889144748302467893111128011975261970786433172846051377303982059386451825403558402435493338039282881084623348326193773703483538167023457608806123817799014966553122629364706818918787235397075035166584448432568997429469692522397687501573053674237576311822496521929033548061458122943398627691380183012119114826174694705502483707126221928259895123916642269315589619328411458874466877264504432602202100731898685759966412889079794547913188963163292747979741922930108207137685792120594998343210352644731455267464135583012172710490647063966764963576167203452020880964079347415489295143231087989476197265720185074190948840787233783566319282492843028805056511827618251001420856788626665636010636247853767728562479821400202766810454960797562287217083061577026049822080657120455062497996178227385060915459497665166358746360427660056544138508810518090345621012470471251798449524247550928833723997046386829554669688333462120048479342907535524470435296377358474889459635203418286368322438331088855126629024302186288921952382776121015823643822832497444312276681980262729300621609397580648782252441472820957785554136903824004206409506962085810244851135296725199026412090191508236363230240849578988716703323567360501440857200913942566705272690765940319814490919416257497452818157338825466475481022023009059644352823257254232499881858543165676631087239780011623754743259632093321606437604490403931076404057841261330817668894379650727372639901692835004351053780434196380768927548625790153724040312209928713362661286782421822936263663546834804764869861298590745748798781883761801953066291615243574831507548874818198466510134466850958127473036818895411049362733155105927634858351087206173263930474350314562940772992409978237656100327901857916642709700341677595200046499820891425681291191463430441615997281859511040158903337868534801103290139139902914998634469915740431077908448617667122007719996842279983201580517569447834345286471133873027733395290525453206503989888984378831566186571100514076120555872558860158459070799870399238833784545233103566561713058793523207346294954790259010151093150425081586419993660551105801314149732383135213322500712205118756016954953156122882407599550425974932803974765855828737945759941463578226016112671285409553395070101498742938750530623503880410526567716494462377013352677466888009134607930647809615554314904938152987978998250702863507240727508935985021908914392479069780099772386173126433052118210879412696389724450027371685937956875236336776859537612474789683172380802940803703823424694127112577684858955772983028784904309010094514137719158143098106287436723891969838686300230633085303871439250595511503893697087801411070423863079955013534574740887982746318940891589149549916630342918529581993556324202015106732005846383932117077652363121824410597172683650606632432089227531706292435375909528361453274361248979760732151164941503092742262448026387200876182390485655268988907402734381397935865839339932526105554756033755667452950181350491506583509632918665385975360733702406008999550937116960968043845998619157002555283519960935934267038492677850212811398143942545569233833298610856585977477458308209415515833435843680893916525145301623947203577935522109023261977974433695621801182333231125876719209086744498524960809004298254012685577150376489722244169222052025131878164450559546367469745701529567664345233271936346353445577707759664307064981952287639621193046427803204277535996699829714063867701079162307733677769772596699276427557189883270473316722018369697225174079825119242023176428608105532612358379599371659961213755527679700315883126961157000157503494191094335926752771363561010558857425255563182530577069479816794368479880103461200887822796284348400400095214071325220476528911855543659636188545302820220797163334390029333696796540158952768294336673791295745449565280530940801760877550157166867323755677382328111028320135855612110850125786844019746797721191288108780028627987568639957195628446748304137359586207777833850915354240173337607917488236973501071857502065180313471870187362343675807442493790537080519068576484230539180519419528212685195808463848080555019068434523381038034176023710292971644392546388207209026303284410138084485009502805084602026884741280847548206095457178757880392178406577080913324305014492464714656322004236641750561394474910821406354907008319046959903364998109892876503041326674123262344666938312778693851753064597807227657626707644347838629783431574884568356566763634051909737939133779641531229404938493918800585016456372909970229511627030942613849623726264138796001914556909476880367496132736351561146505073937984178622091103866127374460508871057252670912082714833139417891648764504041380863203153337544771537085802210700448701469021058021653736220505922758126142788729054094954201890061091958671074560971035067919401724411878465950296650478980989342063416326363457653017434745845145915266791717854115577441462490470974411388498454722311414537650995041368006502768545881852980566735094664227898624920588720807043846022812189550971024239825776419077984596218202449797548148347190956239513254695619635156317864446766234197805776852945397260749656500945374760531664320141680878993538298526368463671462307374816612435123125300669030989073348458615570876006676795895251734217114543961075008780745625649818152188841939997211875640914500424205372487824226732625365343189916023089719987518100567594152053008851365282337251486033972012768612382285895306808959806271293188696985096832191670473944751792146984806980036535348537364138930753669233163158246295628680164383025610878188553329601930867204869959532762341879506651187975533376235312685625332357220198830017099679702261004653361305667730002615888416391448958911771742779799787488571453739536323651377359508562748139577985700326831784687944474096544019965752438223120785759345687531029310560048852294081035918563631975192986519919374113687176935149948186140472879199029177202084613934158903998652829197814173576402323158793532587930489572245121363100004520624875467360438218463675435703296690698622974006819705407155461724191564592301847703368293748370956694963160973102568950401719136089840246174668428955780127739906619729890329379234840252879291043326407095812509466145911964836826451488775626663904899872250290987588674288752857937436281591989800459983083434772654785088103771306555112569981968773316489057319597983379563605373342494776547000971128927339047767083009333564748620378244360945599104575360734221654633346876564247456551193884056370363529493372403150666753171624944751014372388641355829832611644148833070909061932796448139577614521013867815385401160052685805919368154707427967023283603149883062519674920953207013272940884645199859596532048696736714219237308273202966838756629916240556936215590716405557377958370391228635424215844430269135781881119622024905525575164454565844575544238760364791591769691160643017866593096808139899108294726940562875392578731125578797513202787694413255574158027542914221249389159800668760183336431313796978265071753432093375945136719296477231263853583340215286247238945380111150223885518345100170914832911332656124342581210683344605157985759214912783106726332678103774161969185230943496184128620658975324293929956978993814119184482936753135693797588242261890699029244119239703370973356517482699353308136661393887579984841308289070093190172164478780806354073907669253637418733563188358338286247110083910848558013259266636919897423412514365564586024257260242506714131383025780028818057848162095838334348065672522731950582304442536137337943688181861011121755213198882151548786987358280188601701951862709604323515720448038721727587443230969026744749436075289970832386923669280247989912162849241920866907710438884702042046454761958838464967642819140281959738171973964536012841174380356074431838204823266597207846739359974263721101894076146124708910953742498859274288243615414052167424796550663973739832712056255228195319722789706429504469165283567885306116777400424191380632093020543165872152343082241056399004168690396198732728307683175723875815959815891974645444745043388428974787807594330368361075949016146876073202190387346783844064041733524156650765269871181090327575157259945222370075824768302968565034687014695155391568922657493905024909734419522243937787376067910244285190428629629713472492648270567179900086156233592381536127821672889331616540895090250889245027654491149056767367715430852853029671647442806792316158353122342135893677933731639474337196323984919248238461974917195449624170012237397861896903000410832342480470426330826841992431278812065098108080406283388135694236094392854625043664056320910958129319757641030538711929290928702645159931556711418477596448159288876197600224343978320455601279898718019049826221749738548249057479736085966725068559908310094653455241976599863399909485035580503919075418694901602597538922048098809096546947063104211174069168208094570824699059776207195574320525139103918063664061505761658384200558810615498907064404679120744364703875851707589247744612598906360502772931248394349248221369289984618555137712012310476192109811228111439501139970936581119859267508363947136412397410397915981029476240122839555006047852726754017425632552161022439885218146053639502869856265790933501267221804162198174898548324126918572202457439215989646078433872537570335855132815369052566755763188232637584287290701352762340544452655398071371502513289735099833691895865081157361332215223837421528657147233943266497829533075551877418793381127845497759572412868511628639729444638060553465914192740204166346442008454376269998941758747228858658530375792902255389651174918942942260521560315018175451669088989515119259993259747507838196664189778948135322983581886975240557243999874027482054556977048714433088023565993540732683149974052933705008482859895843806995807201438047584426140993807057093524264874603523170471563212414825581920083296221901624557879351904061635121992355653304354337512557837998419910893979052023065225353932266680261259341016300437497656237534567567339658822313692457083317544267077201463121132669853194162252553212060736042159098027958449191461723311000205699634512490535181453367003032764698669551881724758850225388020141644582235075209961205117889333184364432450210639356617710683455007074837889697359814832788956115053228679201730485460442290874220403977945575357325411207787807252042177006738900531554027939390468215939734637942914495832253188114583612399900691948190850353681393574937894714322052914658161017644257427141245086469078619297116716685067353473214237920965420292107506165690165996940009981934826737597628841532012908593957007635545210172848651658013915614961883731027618726448994758410694113136674783682156333626675869299721061443562731647044373047351964863422508339154570811661522863463920397232472933980485140888747022789736148326804028743983691922161981455090878077152001633911963702000807599066063278780595089694096846634787524806973945537545456055388765296016081738630058370530135171709296903607824262934576943529940260919968192459664114465854244848725942973723741136561516733060431897508847504059259038947354394531992443311454956175107559698312174883908502463127814354682271062469244231879772796474800888977399141869875713893784227199632110856586377953915812185717890756463583264514163713279121663738811679106849194589408182513703480529943723820890364642147500942746706876508405415551037903950206647829364971856031650615930719427107088323972795082026126348547751846121158776460404023535045714061283256067275048709434983772351799444845441684390877839643342377544017204533001596531325772273810068254375884771857355675053015127056195806621650076278691327683368052738988527019833322262021409025916468709958672305737254276938058342462050156639025026302292576290508651485743393980131717952924301824909707723803569277005687267120106416795903227215979703596703294087110178179383004482901976797175389590543750423444877565783009303544587435066460971937295217600559460581672307400058410061106524890804152573447286680999177865279177437631875569657975984117861258980430158944040439918933940953905691206182360059815907485843511604539286269365885052076487903364037807657519977670418263675995849456941100661264274858762951373722378791929092876106807883780615359650927245385911973804062006480314431391680732283130468378370639153040407935943434712712518291305932341390445037636695687502115469444844524308684560929183229941490442690468818920906557048914327831658090651867736159048739459898381058340297009034863231644892746272075206161605489163947484590141705600249978034247814927995068732320010122763747226892976208060436836272146651172422066723809801030732932058676270295911581210336479824262315050889448710957437477845331003796202747683669264372080333161336260932276101051708176260038756728613291404482049312878827514450937233168943552318914847608779604227607601753424996356649082889812008996428345115387635347053250810989440119200099291280546742914213079776066892693230248792752338273328234743827728526432542985806769294040559005181110343788060816244687987457752220834930676947258707103342503491355421065734119482978651374495821276128233888899689390314963618514590075963075672411474715205645184029132259045007549784279798724534957284974775357833952437153212575683663431584898114789799463016255488765141625481233364831401849156104747022289848874137691600795543451349545973562982127968048620549243289366048502056036933018503132835582296728867149156727626654719714377964332312417300918217877367137489907685437689631901019865525375584909947950722540424233293959524594706469759346545363434588980396946649099282927131430863793931765811760660774067377238913538339363220605914007407453172951160498837502725524570714075335978050362206522445679124053227748950798541171908141791475683637944895115496525284684069067718521211208681625072115362430008198632289563601493286949532865010879953748652424105889258789614929035979060903155948911790343300249877644629223946050229017510505002159684073617060387779069726851500405513206816014615807731934153044126076441909559154095235937065467011466166025334551144881169820026952795731545286279956142405787296284205293439491468387484964766299129281339148088860529312779055864215583089110249448384908815673993092395403335172282684214542528221490326523104290832539186193151833301772102934345494661424502375297442706985103823117341869497966008323877986138433613449760639306435621696409581015429610871659264497506175470086569996406634507587920399818225706810546051060891983262057612991360125990579942842606820810557638871721667380384001983705532505427052449332108059763147861987947457233498367340292626846153297724470103273688906066374353176648717006635958595158280273514300020865982314712313667120314707442782711860054121891461618582459809895309454590904909176696394849804870235923833424581646484895916497547561535259914484173031786899174381784136383324138402544974267653522618735553463669307728881484217918895904541539121837612740353186071617374375336449703083522949711682585785947334665028796152803536010606712028062957956188565316379823011514573449019992093872316138816089569568682449480854412003091002358152059777072493082083840735782178352645247799534965217608831267131165134031636679038373075443637801126854448134164271160152182517669817825950764012565833814524738411820590431967891907394937958128530630099713135991419400961181733848142019455996996641391787017899017867400348228794997077694370404950821904808310663366674008987517055917067731938020538467038960287730380501628942726118398032671020244617891753737604135991728711019028692991954731094252866978965120978838024596731796153747671964843675910453726360443716018160928129648410497958774683129784642131728862769602593711058040143878130699115375086047175412102068267884698936483278171676301897270150948502034575925943318340136286717592282366672813144472414050448130985807921549944748081137212577872024272504051924718011010863901464834429127439788240356997096996331736619545591093738372888944545934973931476544141409054968074523013463815582236673477488637139303086649568477854815234774199383525354535201149472867639820219082496385856401375915995989745456219055254752092456189979447308453666728831873837118975206105862834797631318251236064900502620413916911089108542442879940345841209171434224969431143753380190721031145732103958364927937026124450363107085177412272159226407430467412713143531430087748447545558570675543554396072072110745847224647163213135875310510827145655690370935508121867774946700575744702294552822024304619823162661972569182234638231822060021227735414031633072596799789649405554744695166802242210069102490482999489665965312930516712506098983203394495189753384216344399033409177552307420002326213895741628694735181733255838990733768203084315998981606159439722347773530142462010623568238277863301922562033332092985439808333031934468837819190418672720173033176639694450752087246672634723905292224197322970674578138204398358482386429661412055696428784397154036395330529431967789404086710933606180452240613428721654123718916233225062517929142764749639660016310710748113236974008254614960399221218914981441445612633002457783323288025751114608539908710592732301482423093639230956961492277450328845793129171807811598997771844817918327714713101634008444397739910640475908963517405955243369218091768209186609179065649175053264074962889986920985799676623103135944386066120873393417632311154568081521704501767789986176089137265873504397841472530803776281530266731499705336692335395351416465874929456100408140730016763841520378261001563559415324403099428598346865026382962359351673387721310167411254165730397443440098584742634873446313343045221321701738439646444120026794097520603864987139635961400507648323206769163727397318521979837564562770696001458397962838016889027474252507402534048827835703057842374922657971137496881588512116606140775141903317657857946263402598177475509290671549415281436415427643883319010455589594128043774042592024996122179987430255568856098302612181930836576576038781579324199958437326523814577914296767570919363352019559004744742468550436794110279408103340859571851439997000975320065724225661107247308982043434559972940363716290917977319937835843373870321158784342743332900050969464029519467471059114667139851287751966396878290145480641036410559713474792999928131871249522137766318938293742378547197105459208344194314416093634835721557514075479676925260717858509720225476503514952694784491363201844111426591420580838951103200264949887028973923164363805890948659839056743537186299083934337559777770065547453364232947316708639550372202084064702890649472984437969208609891047423018583352406283145985693700863685620158481329884057317029024640398832448298200689475323251771679134478720667642651961272163095511437154234013995303153004226316960301859012837862046786086348605440501822902146211395926931772184191316321296523108029439697374584320381065551113881733989670971941895351287143304735736685539821415109363561247118700781194172242788107022770479804411181072083018376287553138944148563602781677326624264979062591352158010856565187307684375108436942118695828319446528900583970560092428917423690345466195311564338172760594559940862874133694707163136338560386512031516985033201759716321869554228936226168105017773777966596686361800381978094716747237296092585441862153581195367947429656490206620228088348145893487368427427384414615021697105977895534808701835658275910686538585367424121018933126468518425013249349875237805293656017223175792778183230439976419331028124673372595336238899472652003772174858525863903760401408644368414462010031851269313174624234000180092695594598433111937333866015881574610494158542169676663821191042875877826870546800667123065798243234762334082932646970860561342937751719218666983671974296815910591203234848644210090245498738463219883425114476282375227297065791331193681681050507105898474497250020601309800679570406945760134451269497279689588559881527974116297726279027771655403606993788326731388009650677868117203391560508937726522487506576280112357539013548053854791182995159442649168845425548451599052365129599182552790054516279770131655051196398319470798888234912445154998565111352100117187264750193101189816698789537759936781619121156434806682168778879507697004950997472415512652866579260350542218336662874934199765397287398113815892104195914022078435278452231157454127230927378509040955093271232822833857167892781471020253300286811927664568454268333823113880252651249946185967885886291375691477412546999431546887647322279485891382310968694931007031781376772017445307106097392768944718298751219233193252053582906084372001560087024988527712757849049658000215500262025741767057120248881303828610320301781899088786012124605012528606444779511929477445040941202162034137508086738769616808824147460284371236947802430257531009262240415740668145928608949833947334682251409302929879527014828727401651559934973094653359819355184065242617996649599304737888398499017458401538229286889931061906923955215207716047054270125618476586800247868380532079352524500855026306805829366779739660117974797927998280664493986432226464905417081133292568913479318285866041424269002432643994107906474319067764060400783159605141768029604121306350886961473311741863986600140889763220261112414415314468451945234124764374592654190325277547580138628871371241932090659436520227756684730433663490912391420614370195204663839151595830322766254127037242871263903154994392595753368638738187293699498400476480770307289258859301551460714838826645091350356798407833397012731447877056437672421003207830944852555365926902276950536091803884733041919025739472884507598211748501900587205009011580526326378459044529019338562101947474398974441722352770774295221022854678399413825721767033725871670931271187534633024627321838490444364203432003983403808176062804943913132788591753289378561553456092904419358822522003991122648929529699148789727145247697658979994966856842517557389197677662972753640880707606179875349041231403693008949021807696668715721764125851852640515544343087721527330184411567726461995768763132875341174007930429099507333094787714465435470483149507566943208667575752796075795502336454544331280642328656764519015827774382951496625825986489282212826984127740638729723161704276169640857270287197816500988707869694695591398868892479935361109915346977717992086792427116863144774722609693911813200344297639031490402877172008910196253680927959724961945825916140888323949781048829851741992391463764689277995471315504219847130241680734969075365327529855265981609656256935805772541253873508202058125042142165961332007513840098728723653206920415002155068421132789725521590918462346964306386540229109538588545011665205138227588790446839548786609262248801246883322543970093432286280452450689682141492717551220917089122409938005771971294850546332536604596330802041689389283258859578817885273353726317596105191959074777345090520260306317792259819683881426220281117038109704772118425743517154233912834330375435807441065538179343428700162955939094585916184375378185845225796977304622241903657082302843993400460493671800649766194120385080660883054298960581709855896482509293281583174925938501536208175105259484236492508378969644692339563063272668947339533020109891142067560641943787591329594342070345742401306987331707409949363290137697301682028282525123199446070837632447299101849112666261475350304886827253712184526781612603876161667225652404562769526755216839612240008204464009137066630979621055667006835925738992085725137110834955455536377605054418523311188298858789466082241384844523344951083619740232300278471014209147005053783078807312412149031100253967614816760842829207258597719712079995521948700150028928261835696316913425140831755399544829705967031480715280227395319913049850466193162277661640945387100798848496207616744342961733083668903723519405307776551995707993413544511438228798952903892555018700826227559506862307348433538640452556439505160549483236901351401065770438135498275286684791694143729094374271313101514962670827866624052282647641717378957219403179531867303940724980930290892307567796802551819452959667999420052039597734291141265642786238660656927574184765282178954960842421552781501563750144190601249781129020547331688470972357955356311106033382098440370352007734440043064566287554204822277815733606096900347140516521932780786281457733516885502693308844356984798584795017101051896278663654611557156472393116445147305512274819250962657290846924908654218645685405665630452078531227122621082357197554009960472374813603312714703439046275919698851249508519727598074590196532112548937884447284411009271935778351972753304335949807292018739903252962453746892092142807901273921291284148551931868416072225742295897360766869266474004533923330569352216877366324355518438925247963196440101022791251495953849712346960395172177417481366666078217777558853810703672742991785025261055668611862809376827761779276873680854869298149568495516794050854013218526287871034083425226117995334368664385592585757396716686069010142086109976500890236702259230121704354403431883690142871154277508361011044100498875991947100452204331462663243747636860218578825852788557249894800171504436485380025219551795860029390047855612752284996790633511854565713447959806594009855519038145272813844811957521858182242836517044748900652117669471889243215103512706612774837402443825901193760722806149887410426726789976750353620662430124140906799471255102178277072408320946774749938727251418570097651472808567350769765778085410053971935410069523212553427189400992753566006955988328470931315190275321995792617957533978507858677369327912584371552043867981272141914864794043864080665946915302125645637386760970605493619081471235216837395020011997143237994430488334108014570971257494383637887849270742094654325742746048737988837829645093514112471793720962303764762922432875843159677515434250429780584935748097154823419222351389677671475304848226001203797865121007479735694052066294141249165454044698449822090296827563621508407872451590088898936389379687577145546866948772514291638486852550629984626787526743396414329783255036089415456082235364948624390766511914063819415559333262718357362208459903389341345790240013159171451605330608770848636442510028464034099037162389924952172710057073996811897305241031044699891997810134274875229698587490232412950697918849949141531350795141399815135675759072768445189809713171440732752224607043173581522124974995622582883671438168090657732176857999204363442300312001279142259814740582563218562795974555133368242045226386070242184011219557292384174391378162389066170116278376892612767967925284075904553256789257707351729312908297372807920592219599233345141240013833597595691768865990877797417458233302067247728317724621325534948720665136375865850042308220260911773152651531515142360206591740490643000785456994640681566695300302695128936737197623630810918974812981845392092603066372247261512073184987555687789530373976625284147900672346341059210986302328355650535825202734421073892559308756503726459359658766149157222766729423928997201741635320556639494572970600493063729935071928137917791949126118346042584255556829225606819664057994541991397373523985274597736822932709518225652235819328850248607151033783031064855673818819010202932115947418651354708062270342406636677069456891739328812042395213455439289417394691922906360169482723074195445850138995472324544054616289395352594456667694974727265929438977628478163170022831677516110471933419425285647841288570509814103541203851123938394636696028532242469693263588193954803976262653441055569093619867596518261634646017189818197878612740879617883936858025281239490835338561382001266407280171937292728540395117860559256443948411354129628610003516827819408450669553786781925946208528526182578785818624372907964120396644731304687039933390887049324052933723751076130791794684360998213353383075530187947594315283231265841376579086226928762884286370843118287835541070469650146990154894476040878812235984198918894230183704881917763599320906242137150625499733701006773915089015859839787853622864319900341755957318008811717357721089833735248620539019007662345024362455768269877882335251056457235148034935985355012773951423286579944113519148893394174645788550082943557006427244348285188400814521922784501663694173795968274164805297411762128807861587693545376424930072830324055188872954753281540197636704065814134346239663146472808998900397132761256142201707161931694666487334342561422753602216531601966084434334693299388208780376742067542961780225927532548856163778768822016824925865376340293841899653870702913423626076931140695272001225816266050731997591907606607379377751781429628240090358161784282291548965704335657109932018307948911657897705990921842016575963808024399973450378919908700025572904809554500968889485260789056189459265723677382933092365113773389172836412745489752226424389374451797867563579475716050883661562403108466466644118165166913422692546429831517353323050874093240241895624123002691925260833982183351666363017339609431465218884493175387558446501157659732938652025998168659799058255957337263066001098852544609424715285803584080601878548520352680219915419763811379431765099754956159053007448036267726991914468886659681631867112585641407260120036334179089786333824439435932714841944370592586897043042456119838466547074316990088948488708017959571959503318454432174345562144117011377641881224505428216001343366740103762798425267468423878509020944440071375547213447766117217719639366354156955706887933931945448437968888335460932027747949983628872613684776289345929655235251384536411778298450548904889466068995597158578921751747554798699496402684887413231453325935996913899946367208382708036588700835991894603393335270161246507169976442016462341262714785243782606537075204903749362724747585507033419179813857370133341633644662925279011160333066022899210907597088215379358562514199942700154424385731758043910264414592324322390758074793740166079656143158254639700805176357288489365755169075694794416906776382229594972290813185070966405397123501829769400360532444551247095987836420914327131833893097978016117293769610882428184516713565428734030588371242604638691501967865377426001316610826631071305767089419635855921203191944619077082349195514711799863829889684202080583052133965247993967857504660673715405277983244378205632009396291679413261346124022751360415829941519980464025291373285772886324997788787846265255382013977217266756650551560230408945471832109189096410861545729846343161844080517403369745791040675157812984153904479262868118790160097023300382175189231390378434621323829182371532346537847366882803014864773250083519300943159362656493876221651528581152288499346151868493258642660244578301331760561532442941007777792081377634884375611986797893563117293150625217742361969409649534932543817647077393322043393713591967753982982331763441213604194652281956731581553473126200107971416212240433673879374635891302638732242365215794759074104878473635515745973428030887495469773252467257485118086634337168903371182148057137031344968156474607973232595284920692140883985093327739809657111313560332819071535404542579545674162455403508561100711214556321190384743496345711671468047969392327416918618781229848417109116131734971264742164971727495758176885523927530131322729183212270711842699838509891909734233516113671204582233972994774874794437521304871737202615003654091386907761949534901920050416769051085623771409817899129416422647898228008039145052541472446112646847789600254416565500940753140262165512805110579214477905710350223540255314288027072389400584753759149097052782147104116605892393639092639145898166281993028381755283669648516516503440971492138591707607571364059238548782719876487155574361830911739479674467151697849370211122786972187204808281303936762483237529385608795249870808938451361744343123827028965840710278771798194837578158475826251663818152879863631259845968974912756265853943188309808063041569640539282316860055161846857560317334605190303725973404843095777757689824522159713730392194297142936628201594800416865528620612998159361036184001244329193714491959344996458697406429584840423447823707132115937340082538289618330233571697574135305154352564566124816837509302327133043110639731045924913550784994142996940321977710746899417402371621348273956869859189848791056822406335770305417741141240857379525567284843216186438748396255614045435231595486177303808658273316252647039088607503022830913925453892520288619524943322340614012717431121649929311007035804623523493659978024615703444262380289183054412053170328725194548883430054686302427811121422419595861336403214116086916002380678017512723278223762324079951275328617949843135851333235280939248272999829879492467856409429993230618026500350371465047212632661216945857842550645559656743531628525041120648738948018961652621928735053323121308246538373603969221084575071829933601252255451534869340350408993231488494040247332644629554316638510984030314054415179361138546698445609006211198438288511145091940006584343769688945760329032186256350411606143962627734871368275259050965933459390294841354425989483113172162733089966553632861067126898510859346238344938367704400548429366296436661834189599201322228954963818031949957226378958744259751500959190423987929024076702874030489376144049376451746214359151361454653955169951098226171312991317426768434063047327411438272684602105183592702243242508037281901293563787789482865509019287296982724046240411989969566281209983219734005675733733192732247085405700806752406800409229457175895807571024231329307860817181335585153804197774498976398766594709614843313340550645735243246866251939077986915994748945344155361696657733122696691446851757605708119632584500744437194476476194490562720467178351505307749564363701331000944437825425940375829920714541817522199722716921088609605208480152389440283081193724946494032221022620132417932237584417552214623874027776451271092755385941686597077151356615189512636499080753151904817139568480007267272511401255254232325928049495166997419553262495055338201911936499770921171623146739717387710428481461763645347178153615685681013954346688259870891911751425683812338048307669167293235599735838330927509427084503002813911726802501152397781850832910159913317122005055712207028428555932188300229533898146310425107186040898473992833502459303946310146595942778382721916930568891220287635935083920402113542291856613735599140379025991022538675728733918156076598644079107512669874765629128207812294219013607912901123535261327930402704123977032556951601865800399667050424568624408734197725988398538644276343982442377842705343887581372067086310591608597308296134022076541797770070837742064810990836616042731075336625142862227998081006769590713156517243829090253022973668373610472642318955145624739285411096346446383117504975118141831992625204688314762525606897286810982258498423501836807246517242452490127945861573146771738491772178078813568308920984098284440392414042748226716781733767466275488101000816635486559762521615849609450330224127391653540841661815676194036732940848204222655077520929311429013884574493202655076981341692700358838743171833417549030460527574836346068940415471957209948358258210625054778050323028415679091676386962426444140888496002513313367656322772746446552899776111750319537743374537580124048875982341949929863866881668458653441324327154537470288279058988448819065922777179867541233489287905617459707852116327653973299362816962721269718993498674264393980949077149418895555535510882460598597908538093806262560255292615017180469191847800144731372457374609483600437364701908156791532369222891267129913517912905150732202258778052019628516127933664877196196354462607882039733313566759322829899335912490061960087625850711941781950902631972613671564057448191895359105212369115855863819287824880250218122861419978071260515170864124312377788048656703817410097107115811083705831192360562724575215722521628214426174062280851189078916379131916012524104807981042226356263500078109718108891623206015856357467885731713098195847142343648038910080278703502489580881631348168362137546453401535446006239492591499302787624836504801330696265079355429258233609157894078385007092380693981076909003948347019958869543226161631855094030073912527868619533540801038453635087195285184024205455991659787633204947732355066416296147509260602225039801383996821498128239809934659588841908004291900623523066458559488644543886439145087233947230744545417720298987870748352274458467443575636781580402803854577437446658344240506283530986955852440457631540641515214698057348757899753754918862410183812756773444629669779128560445526801546500984630929695105883244891656133138201205169053046218717064079160072082017463487225374464450648271654076766319563662846281149131511492080842442690526545464788349071523680071123961425236347055331541732664087227195473580482798145705941781968223015749238308210108156941613805868521852753222381078114784097931222529155856043936648515274491382575583337894433225607824217458022591537607599071881627901448455159506230971108326557300180735910941117558010878552292121069468336508971679990557294115252855877479815042446377529762199933736503228792453472294669739439825536347472387625976835031639220997189193651132788124373161623384447046253081238843796684544744790419084585892300584095589929570536403778597051506119778104985205081911243748908956894040355262663633842610666963767088990711723421248179493030390727798715539605065936981291193678046205182438233882563060403272976324106778398277388744531771212881406168732651275012724012196231500517353986360323076744777247395594505093039803651307339597066170616355018525569458778089636725439638029693012643792226469923633373141271174297901067758343892062991290031149642437954764033194362077154811449014359043634145117812670934751650209389702538707244246102311176750814652720107765556759656367621728565763285802071991274446839465712228983714828667103070526967102869603229778753735501685714240777628610937632645238800147265708118512304532408769645742182161353492037117969089562159569998188947591001305343404332493661792035614671165732408274432786586500378738873966792759214536671400203462060290400514722775385755431714028817493611440092678387640644908328002315393161055254924594589628294100703141060349834326730418345552477872099588104088508405342081646713224735536739924286615896036474051095346301833539086810443506101500810983802933854537617154889990274219320082773500091578951108274461441244385421875261990259651920520278822094084987519781790220140525127532688246944788341555532347229235267313085480095432095222080347325344497237491073795117599754373813849742799319498464924822989574911915409546224851450608490659771166645783854031142066527220645487553203122659376710105941852711561577930661576113553054566050391024489152625408737419155450685876620143028032976080001941266125851160042939425744119250383949659021174904027945241198022519534806351867362918716121443909695652995105526027183911957949384216597170912588105882225916794165978669286114449848224825058530333993431250080169021741147785347202348525163797608241800887830111445894026266680868735273271749716079744632912110541099516184533290133978566025297209729244820111455523660512975533314346148208872086216847519804217400916309146257779005600960647334610191675043043392904739266632479255797794634997059145798686272749044297118118089937307305533794818361245295146858884645183746457133290930045938979169993030045322306017900247938437028325703224173733607401704543164935932191344204262881093575859718071476009077533881346072022389495665301946508598933403094641501670974753552653324944555522089540885985750500750737622912529097219362565082292055487825151705498428634738703609522634802845996625116068735855205763925611737691999734189390470267584436521014391081445087303523020154068767780083092459753420316423928567338059772300708025282340595908337680352497615842371493273704535494166668518621227478662692806408982095512216749269097821946112084337323070639539523178275698549738836157259773727880897749893180063422517345357816211202603684711116768626226389558718210022481981439826458006928491044508962836372205994406498821636031647820322018027277716734458378488570314193028442735876258109433677504543694179423417068509833752912599878221981722424905956615791821533604063432525990360203558871511435034416130231172500703352834207952398417062233415968250241685375895096016144209344285902354405265485838382350757872824602603203844445646352218991405638323303284897685851991303616785715438950147872033616317503524096823322740074440394271337184480402103666684781562504188095099267906065740905981184252455378819825049343910454592602545127954004452785218021775045295322857577175465279712587251869322607558043787782879762764318503850040374087028614847872321521547637725562954208779920352355174982551257120763313515079534679988311760708842557948009128030359616136717801022871733354850938263243483548684980876312106591673798571712393789994904630552070636010303129653808915991094204532228145816007888113877763192221989058205351355483025063889840559968722483913860526468689367674625862670566979939303270565152369679522099733634061521505331395747614476848086071893377117396854480786557741217483586391801364272170425842220943419371240709510276857432061350408417042271064092691671382805793190717285023718818323239175482800375990469922386439076060859258522606810777385535429768444314073509692689709200568675079013530379169338323659458642988814273971914662524487884975614448233035818573608905526524560260677391259541347182686859501442538074901088760945646938436276714373832977850185810554672210005232125015432310916498020714526442232709879886347084590547004558472046017120696563080701804587985255010407801684370546311671895872449614390529735271462914348714979687531281371181462212036894155869888980479510654228771805925860107977272806820945623849979175640442704490887841039311433629469678636059090696721821838341534469135251839092198368769176210653326610706216004851064253876283442095535858362559707271600167806595730745281859709905682043202151857818894588639140512752800103260448580346488940343728074646370311853943722591990400071891404449117406050567972390624748593259605303908901447401158556081348590741627830205868994441257470485435741884177770253935152176536861948050405371282614953158622159084946417019698024360150662822183744501453389297740075329381395436104353775703382677219671487395151502722046102720817361318522122177245431518180613014137009282375664359646735334889458756724231390505356944076150939650872743372160343352490250158506923793289686149970258524415925634123838505026760042108697275096804953125089465390500831704102330183151787503778424596430558920207300376986888845933670897948115021913878594864729305535489519462468345800803183629421411909148892952506839521218989183489977849914502646707154703623885568121119738412768649004152118479103103378183477177688187201537894404403896480175618243259954635509223705272398644920370517887212406139120532918514007071192748809525627454884082027712154648928512166344918431094298704393623713410525657021052396105058937688916406596233832586258222709391113614508899441014687174724753147815945640997488950439469964919392401421914856445127613577228182642146236766087454786121117362228641388542705025688360155035738991844740554812766520631475881935829612569955573614645400036372280533787259152684661475122395845887031524758222297952375601215336888331696514327170912862107205355588174923031486706567400271446828357043901237161808021028896650870911413517956237968006219687339520649089908645222834937996459310799208064460767042696477349798445939685670461958499795710977956569108836908267350808258577713042987286717613318886843920986249840355358153956324509144886762357961995352373307452330223827872091903476360053389525882742397328086292996626424427686424373933840662161581740100590883442241397387790628274029261194722843887850045806733637395168637256129447037687901397397485253095154748501060805571572207117492952899768898557960802599707070757144625108878350840346655788810988540020285242932439694411512743414763766162790066625761499321052853643684530812410506585819425267392782552602537005124329899782522365943879453873133265796496729659079427764131106511608227692698363709979137073398475777600246942814104039467517596086544604187773664314486259975047707514815122338382069249750521023475137405851418819189229949283808534268681152385191220039688047778343240610072392769682655169456922236900369952056971635866980033069682182710192120726497034778427766508925035369635369949620703962205247721316487005362662661703338869234948574381360152944154678238280246080173285271567810678417976653037746217006003958449523518198588474339875490415272030700663840583340273374907810824857131674819605706479998778291636234563924040269255538499146032673112660211960885654195507192818090140398797276122420557002694714146898077863535794590829110810335967590134895394497581520300522265734991154843013376778833924330148453319477105950746783927884573800486232294229322338550563510980948804369944491295760568004219856102635372508050411146787742028847016125214499874216651774413624800661173022118297782510653275358137089428069311234218707650926745916527302912989989570506344848345595826491352675785845434404965148173799126957566172743084652956315991061868380383320429974899345521070049284535726295637755269949173859911026652056053415472815451036503702218381030840088019019657252245305097364260064620681779776776398714578333851715276627312226249667220676054039353987591353314227561660351500876311296405096490515803533887950608187348851278126377038337184825988403434606941652601747420316545283188101423869049579951251317518209712469185838338977871163147941589476892698721918804225163508797510403084080521512280325600159139082408673515493675454349030513920629892430574749271393577383380787038341108634466105397155235649381289276195950422932471420783161359675949841843895217505821254717453807898007041903238308677880484030310523912743978660331599092674164895242228733210412026483461891490237650120281024086965208265432841617219655117644664658753013212405144443980836827305546095666514436347842065431100274514545798411259509524966763856172951987218000092294693424397214859609959619762283404553642091508573794014050735494194332259106450006548083124857941536617912753035817097649091460202255789030755502163625894624278131845209503811164004040870233732624699049954422385230212597380394145877379619348849530498053890554624948210448611882062970954464669252264145096472088843240979359390696230177002130660778759805971721846923711837680238088745726691455795533588354992347557227786786698995540359647687347791837978329808053102767051072546941745422982672950533295264108795129907371063784601884860140658531578137223285271181562318044219305063540418961221038322861701237770332144442226429714906665586727924893286599297189036183136380946125548843396684197992651898110663670498718454068547990835065930392937877263611758192266044917959242147215860610234421847961198030753097937496785590614427499045465072005268927485857123671746363438303885420125985695614641791541204563802593817714845475067376914147548714510773514086916930264630811341272289684574730511522689685750631064351452048315762861081735062602164620266311166943552979243331019729902248674300603593484616567203424269690693630759885968287543654884471023888061402306963338554843525667602070144506428907746794937722242151020515156331635721035998706919910554593514078562975816383129883478599651181302930172373421451572962109121908029367377032825851958613243781223523242044519691018014790945909613619024780555504178708578390315872481975220690868213977621716545762526994796070464854348492756553185723342238352378373490865042559887811008329677499694489634174248541181955425248785864574131018440332479000705282055100475132939293265656292175061472841732325598616364713419392883521430565618179981970109896792741440072076835507294455001494038174806874539305384205480681085338842905948246217475306289365666684600734815348600650740641511332393110214193378461923593759515086145081249847892683310131726341810728332455303979567226770092800954104712367968802476244828569200554672976671597455889053153102103233838260820275550846622764682813419087942478498404279930715410563165670413428612571354966366226552234382936024701675257675751875980023980831680296020123162624134705518916905586347956369441302732461165902887352070516905594212181871375577306891889193091822661751188748484394925562727580635742281638200289723756498326079816982559574411730292639606721948928167658901246001048366552899872643469572272485532977367227985674822628633420017535889155856128454228029578920653696553159954037836048600590446516909733429687205033394187369038634213438594942771546602041053000659023114930441810864340834021656666175104522902301828197492706251937059193988786493883194888084411159317673504536284928242716581512727358005363461863756449543382831043396404280033630354779364201497153418679577581643778437584638473682739126396464165772750492378572138127698741124885019461597465654942009893502056488450187529904318173910926647063228770956794457875844301705375604737517930526304273751715361896779514326598573733432769997093883151590777781696376364701641874584590053914897892493095704288416259275332460282451817105663172798810865874832282086902884397603295999027039859344547583817162490135603127547192654044977140157091515448788319455964231541960800320846758456243300318333615513082147708062118426712472583370635899501633324426433085822260664168464962820959899635410442968208988574097245196089478576784871710746090501663843791422441498597081008489885843517667807454976158352965974364016663522198485717966606795328908499348466843511477250628507441427907821594519945328937504575907681283623326204047823674534267742346468934191743881146315501685800142836197625581766476994870877537791589527209505982210794919803028651281086997822790537876023237757543594901976142752007544908272410001008913642029096894420774310554527438265083089691702938584196300884596801712245795189651801103363117949500685830274049980883434833801122356157304491831324427929759756547201447162906389945498580173381619283847396849837196725552712612840064881287639494805193474198686768357246788278009085705065436441033193290502084119304618016438014829460385756051696413990100871497968038261523505106839389279465606172863858376585833862701450898080177977292721880392352675834151888936856802297697960376987111983685234516453434422718083170584894007951298177092580794570471890385186252482893451377173685301289842618320752393701755321591957624823603885485017397874248274411920405133262819742397483772892760294722600173176919531749969290856935304709887828656714941859980744650445679858847742585742876257975944269005987975063934361431070995139975994531190721939143585327180570453154785259626988689217618560913958304691273953108831843952365114919212333542086451232389868905761136772706359434499643546744194287062871337842894245207736191213545284128077122272975070131316399695087540759661520514639829020619104474943922576591480933924246893420220020721008961149057568882501102487668536101200741594806155691552434910754531190371223969691686023483542025482476157511377062068773914198820179843435492843274657353029422768005439983845404254542071775499688797650047147793155906023552113817144075397328554221676350637207404480643561901882622414187826482167041293968658681629834192653026178070947048891741184924958723218038471315791244991960878711199056605840932514629747802033771912584701491325065765975981854847354554259310029839379264130091210166548800101377201259266904976332677257816663461165449465630210180417540650236683887081427400913195388108399227613784101157625556661992502094017754236940744529248601239255617303415832743532622355034094512378868344598908933546281375545416936383191438061511322187812718603491093732173809913432557523253762300083590626591032560412925631490457059607834376517355257137039341414613411760908615917343423173698860216748262168219172500877739958715182267235451308143719081902744390604990990522165827478161646994980954761538339024990035502450522033872461989368154102217769487280091196809772835197293040406203832718630783258111861019667514669400024508538958014036550694018361743558206301459014937502811418272466852115299235067841627148321156623952288841153376579274717461552165985333887930553421854712213932923357725336960696026655661945890552836201439730277124775452498301811363405287145162486935924796331111388440934025824858657880454114408578161767674439026930574764800543268939859752420838637457192457520275062884392243957159015868474964350428297805935912081235797491463295038570429803364978384464151857358634247379355519824737062916964728507257649120163466268297838862668557880218942839576902869743437517936933726515945389317978605878633341529873017712771179356235081792874084862462228806137775497443467425930961718520344210779100368423170251417970133308465483244142507783085273686817871998613399019555193799391934904584267240548869512597525269259914634158169791490957470978322223826152085946750685927467517095527697080513461850851601596469958345120952460050214207222531878460215611010382648458945175509179576186465068121534378330170099458762632158014969317751520607409020045922049776844086973774683603467865219422245620446852974510108084340482508158073085244391965370788158951400130035643990314576225806675531859060047351611657087682658208485233767367502686630868776930334366059413337071114022662420840544296725484945084169775026114190964889240127037528206693635219448950328264916634986648434363702793420833534343315093347708005479069746911441715893718382919080274983893356296125130403354337661966568897518927948738617996520596710565147193779325115797021984817505324610620171294467027531578054142361835373001478624900167301670196968379142518830039570505590701682094768385243013788381795015913523734739591128440218672443001798625336154236769511772206863599729511093795176191449643102066926512591219219235446494433150755189270314963967255047943516178525317009084428197416576506667874161956984670046908258120209477192141607879871120817268433199144235406695129000626906906347869259055539210564403540720236453330963471889561618769608715798384155132138883175871324266509010703211476922124913799715180431864976215743627581172769182344857481841229842982918319652267561141419359593528086230265471880933117076555360021710460762950963891431061028795566502414359797093612898361550897171959428206363429805469246246502712146815842553079858865677002378390505123867279306647867353698821900587623220160973936232100429450168379317429984485718416551689867736245347000849517404731281587490796564941148541928866261803643052904787277713098110975310007479090899218840518369165594227018913756216605969374109775829758833430142973611722459498252757065081628572420198209367682728690875702505550174568181446111603511063803846049375799332858691571835319190525167719294267485066741176962579827845239310821101519979668954039003153788153499824822211902600409320468440428769292496692592274159112057438086025701664908498850459763591800472972750557396587788003848605646993394746040385983039287391987764960853586640684000998338920393881135514614627173560888802345863499306555326517750795230001399599907974991730700575203626244972130778373944343156795640415842119148689702082461261142402434343387873484316587509806296269029527243921320245498111436964448099610086266543746030373137116385331750060410585137882051754698185768697729704735856519732256112184451781414171124970391572092660929549358445219202177794824955091254756082447418811334585719766166060201560651964443188446746783855116217428935607278871868142707236590653163924123426968622547218420623956970478522018549840766540085080656593412683898247493068857070021687699889146091139610112274222646693225423667701604473666394291418675384981379104203958073065253813292618447782245972991543141452723484700036540202715880367346031783850025779937694079978145264094629871313626296284436126041679990731226389609233964288714106934944433385041837623961246428382318513817408467801136736254850582352854926780868923412565654101475011258715477297176354933355183180696268246250339294876746501271815046510812667084031346910566100892739269014753856609256490743701272009060188999699363941300179796197771970919035000183855848989615290231288563009413650648301689340541932072560264954067410083948278914401288496351881111696966739168840714283816683471752892703092665181934262808082993442401109517692068480755143977381571434481158924155240758741331115598533898142859131878835979861738452273912944704785726773368952425874106566943027497122064402775268498028296749722323409502581105105858529985476093720205760886209141941856408023625536735236223010873574398548260095566848112220889315215920839587467241783113078594489184273671740183895540978580640880739729483500459629284163636535872600826027541997384494903655423016967847127451287793463309685642389038872262235713805884275327451632385955483944725616132156746125822354902889083068914652364669063436639910608768495802489723529145650416110443420695844307225151412493862213987774431223200270853970198015357855880033409218717373689789145157264591871305946078986372468285820550869950475730328100564452810714175411873267557570178046350588222514127559476069797942720974004517557738715983576027308659348020335526995408283822574224770006445559419252659954815986778216238177866431526589455895305437674176543169684576931756706643886042800120738407556211356248420542401438620071073980244187194609484895515204033497184544538548285610243315112805140833113791135018297662648277442930626135100208567308258576173678432723030958998754943851888877141268724776144632175901044809326890529556061165015271788837468294291863280995430559300182702947971459368518293207071259519631506032863646341707287536169599563990540991591185760717011798828765722511331733679627764350487449510685902977211072353802257663251601790286217984861220560531730340172966324431538434426438438554938701781042345142328692770324801452358843513802749753580410249105843998883282236255090704659341313000732052360210739828184924152308769032253791341621253546106757983741534534138780697638548327546701574127722257165767166917408637069338076233145076203131423071246141315567273331518083992309839181075673675674476746257389073463078739212682352461378746842067259773952594015846464042515569226055933723699051263507021920672675387862921704996567433005351876419158066893471767629784535173045780674345353240871086109596022823494882174125991464444383670396056989206747116043179041223733832080671583736602097477509971201399815390829994863510271209008310410538426431600102353757688053145085794156564931105752146455150751820959946214792025058581682747307291200443384759810012657668462150954951400077475166128945316662969451935017761330147239092084947879028177618703349919678874667150537299471630526650866268649471242267526751304869298915022066896226367634235455286316993526496932733376856649168408073465592009990215324273116483680263274992751151624001612471694783416267525301391628601626755122704577084116887463392023667935300848007542287773125751395970625173719916150943293442030735635842917977255568153852981080476772287796186619638504211909086421136796879237739084241701185131945958237784703810615552050988330910985394090958741564274476497940891563368117147590406342799486614770145506254490843162718401832288572215093812918672289740867784759322427125474515689543292169434175980074960048779603909544203600268459107937096171717494075742918420362300582409525535912401889562797501985419976059288047032830446699802912675930013974858403089111844805866509123047115620147077639786092208734941844419620834585412013000246974680325473660624253286331316753303705423389548677945589757116696634475238280427920796218466312579021689805192277832426759610055500694922323989566705800947998595661354379640363830574113580921599749425567098440794619494981185416104754989096169542015005050693518780876496095682831493192338993398340903992878057360903291259582901383571729978518178077253766045681429409357308189631333021561825731623875271781742605963005384082712585512488032157254668961976793536165631940869980769944371823325866238779047687336353668924418523158910549538670208499545557927275862759011733370640355741818537305393994314891289775639773828682806734958431848758626355395789252349043410689545894220966174044662512176856036676748894249233983787048588842000712767464996870305346544977858432492695289964615857918506474639740922112414284282347657908794335642190360505339862374370463638402098916527999020536575967243300945838142983432337764663294680343690192297350246116753632270951440508627103947712825250391383567548117271674015890947963814207166728514420015948461285241225143299013547722311181562573331499830024225130874287426428287016993360078482658320463117048941866524452423566884693730852531368479427722617991070889198951209798266353177809745563367638442754176283826174908812451640060809917174729997807714927483504602430287928074853998924348371978881047854378533553983349077881033222322448418196493218128774230550985413631356062487688571250388926916140558119929266028295107221573564943834577545799758761878087266893809641825106697200828038885596309696395290828303564210909381835363977522657950855459906403489443767622757523027936281093877358974330459782775504378064087561107251868884729343744058229679627386436569475261125358476789751602584941102863141088355893313361298336715324434448696916887229682722844002741591391446657630865118418400914737583262380311679998360385927887641411713544155794504337766002576430910274757914669692879935221659168344350923443449312637722642606509503328136362116081589016336013033097978602373388753609273980157846910957185630279125358042455891051471082932574605671119039780655604321300405560983379673443399489423843349463760288252461700917021418732012546793094046857990586060817054869842453178025696251932474000200336159703677863142628303879315131681543283246638372094819160769016636040417507308627146787129215678154988462521858729588061981512980782262160091170684689128539575019964420416268545827294014312898087009199399827775923297738491254373541199495709348190794861507936908142439333021070848074291897356253332478753142363669796396566896546932762157632936534896388718179500592746898888882874463299900091413989115607155538785196427865641204993852432568637687577821323114206308174160647536872523093126768229621142321985128173689797319252044732675926120456351989972091822634195061445206622851025408816460085877159393360493510262496792980562790806110298111238046421114762178747310253219833502668813405849791098424522251193695884373079895189400482872967286238632711544180226389911657818301316473509742239882511538385617997782692888006468813488779361732705294888658750579279685058388503921221064076327572867328246558598625269659747810030721658649685160131576835340515252389893934805288321138744301454520713825018043992806692916269063889624888722675761403671442997909325303639731608606604327856322886821586330231026654821993546804445116415370426234056514178451331831460551584116637336044147676696763798816297525776892488054370363828743258555630292455528392986102790534189414989047698485438721001798026050834790525863702947302919146231506555968299498382369985603778299271462278945544948229023076228976452899301537039923696272270403303107347279004972344301326766379481203507722530123782619219757677012494945270855220102009205042850177211914842660771064680722255601735493416738023449271149722243865161706646589174238233466971345152108588611947419279285316419395531787002202188063409492451100447811691699175338060589479994013066690600293941695745991337793287486682967907491494616898332031924095596166654059074474467470930506088059035960529915947174402608633553552025599383262504438686396834286032511776940552400851911529940292690534552263609181952328942540390460543282801699618932998290562294505766341963173740567737331223047893994483314060792835243877865665835122278045472326180289295277993663006146816508053780524999775302970506936152362026446617703630214632604040587757499542528845553982570064987320584364573889694656527359503366051529617997912612096909243671542821886918899771815193977755849599271623447296796208381380253268652125971929731278931286767389721922696897465645175252635743700922652579532717290268791319829207250617062941358363009717066379009862595866244125517896697545675111033506225151874963291723722611620616087324961138731665931053754896843892209830174403853872922109951578225762679765053403170952171113099596627714267495060888433074820166887534047026247040408100267806839179429036098853684397695348011632974637536561523026622824389599332017761309476793725649842965297860116145050630478092515836904597142854182649625367975878838747204498346200286607927775102928642359658214457869996734730735930865202491322619643559604008176140813641220965942231888584839103850912043269933945585711338759816180581824009853841925316972139363036872280161850328243529379795695975948944540907051903212596705863430718728095831469464452950909348051997124060141618059963647485576136005574844242911726128779819416804166176801941151231882317799034339013212893318637942244906551527750486005194951974968879821926114228138519318242337061355757907375386252998165805840290515830170723841192832858411702329578695766190153316543141075073026776628107860613732506760801677745261694484642044285758888604581562471808723887923561001350512804854329418127145672517162587669254020986609720172075452544093668500384813744398848740252146000121855003877793512067625333663095588944601855314570239894703447614666927754797920151671883260725101421481921035127707947827608562354638803743575541709473640967840187899592572629699497400513262502045428570050462257208205520826251603813365704098393488882612044384908230502486114300158016992570912390181546541697451595783075395535761845910357811149223324164933358477546670963488408005927406518187850861794239565897208059202488333444035967518917978284147565822745354061834232043965682693864954193489337735660810310199673616821511377839079939979002106679126187356830233135333721116369634918507088286506228326180759501856700782905332753277881396625121749038335538617608620711769180871484144508068815020602830646225545477781300973678786304682633426742179650320631017019061020475317028921367616298494344633689900416312642618889129915688587951553275260086527653578440343694786330986053528446305827092509402961789120808218203695648279311458421971558862154524683510658219593983566483958640992611922613101340115686652209325462768793326145646262035722549939182156422111865700268540949244684611538996335445456593998032059608986112509248313282438658220004484026401228967033948423365609000679985200349797733948777400047862428077039321996022146871433162976039433999773314270187998117099775286595920885339719809246923962916453735213884429211424691320695125378270441549871253405359178221338281205102648648830366269608353932191074758215392201805035945790214699503422738950523501714204488877546892854829163241230543768255831102142766183857101778947989056043628974424539974731540150744468713005072143309469359578281352236219191028686129705818900770124015214367147001790034053631839073913719547937037096640282379701081571990987384914565505755183015211804719787196970550843370173914810395953142026529036561086808413686806797590980719177150423173268930928436437389172330734338075566277141500522830543780293888594765632655801612106725763349948026636869638140648892614582622571652222450435785930458356539273904406968366769898918354009449697356632126213757280235694817106014734862850565832862403355614866379181199703400387972003792769244880120805343762628394067809420971207486940142080105701612155974149776901386151268831848924653892717504671470945857002712882055395598735339888185128379026483914176930062266684643330059438076661069445269364904565049891403581588043076996338641200707451369282825858000496212888274404656839479095158474896997137899945000709069767997644206429599419276346669217468092157250766110301060041287525880498458053803815119153057308611448862017280034863751233516055616383448833285684554969215219803293778956138949888477147038997241350915879443620696969765677694205461246245019914045389821123894220582224647659632175327400504605216934627789614921485640557037298613487479968337812361094627287545763621182783653353072216650297317530573313394755987058289349343414186576940767716981359583315528536845023569372091954999573253078127931001625171968899857489802695781071229394480041138446199579054577151632659824227156390572544501632169087265892882450258029641870336323892584258835337566093948329210793210389245507023307468465445653654354250426711812081897115361779739396131314697517950024646021094580850163088491627943131716222039442126119968118399015812766732436118246634204979703178261421422749900272744388080779866021344285096261200133214571508674017785228856060908091033786806678544257195571045799066817387993420112404261859792894562146204672486308584378520475206292853558880461279194710497915479704607270527019317166049870448910139134537794856899950093348846292105980821704442608608650267291732776677790177998838344938910077389716769462137617983278286974593820479879297140883164781131825109098658127058540651039292083161982215165709759674108336222040578500438444018305504770174279701979236244103918769087846927314195001060749418476327522767450520043976379035039996434104234432168058498684270699831509629282285272642091165978458752223521601981482285868214962947744095435086367526950157042893302782551400864652089240381040693827081179329839585822793561370994593942828933106567876257077360642669976925156520642058705526705587941271680372780252451191587001837383761806779903493862611660889200975879141811429749745078676319331152339113570304872646909872194667437912209682378149861716101960661778360016944967898232954029968320433575982761524013668075397421211641989111600789583800125900204665180951348158097594282677438356731761006025671946353120435025383332872057969181545942219871721509556712288505514491429315019344052949514913688765816891745927576930946420630065237212411729711239101394028153645009784194159029683599668315625016190797837843384149615345257038583739434945795646822608307527900874028402013823348008319316290099345301213585387138576184210742624352173299978428972481029938621738431297951140595188908782333408728935226399734115827583332709735199886260578503416029639168858567454818578905575148130423590282820702516625600137355959170847313643846077414938492753701094946093115291565123112190559621751357733168596112609120739624810409518329716308464402966071835095801616977221667049054236257086308876138463115353042286509650431139141653050884159808512148797642582041611873480218549943815614799481185831808998297476769879063316370618842592952517544416170611832632619991057583137234845414906510743178724209982569995641101090265411869444611488738631358016536479703703572495512662164123205793545334820361307947635812190526162094952982546225765066030520604297173412903126649922071145249309709264568791934298465916023491274255451821319101620782793736852991446043021242432617953695931589972235978715528657115796675410853496654870385003442919590027350600631395161986484222973987805615813543636894022321860046071606655783249763319246873068562607080276607418086503447292242502652936421751120615866918979970294657268751049193146661150507042890775844519359436988931617262030314471788562806016942420632815862663057015252776769665051299245904627763182758690366298740588397547830065701978420130148365359510631236378786329560794501484506437439521653891385641635901377920906648496354302873760956125371016190911664435001033194106217426259403794031009911990120591344229373420484990964750065758365592209541056571495120875028253436774583540653917129722018358525568242981139241106149540422733145244902701361606427207691589647982633953799323219409617175730522553775939037671852674415091251544608580074255940472571362388465126551278989668290450412342872071514460883649185812385692962455766632544420986587295754785890523852413004988436868135741890392005277379582136104646228386418031569636527780147339234954143558871900771922326940206328518808148861889008323167209257243747058099542461071189807679596883826062682729995816503447256559308303706488986588525883062778043062007385852223430588386154485967853513970364409349522392427684241513509934945762126162257950838899917621800788616847631995768204646776517638624463543604334474150114221861946001854148031525272984321008160551893740375904681494001757842546722132449236978336731795322918801681333419290420732763866387461666625086852737400829599669234916178710807351509822076105440493209699225014337096957382918506851779157081805161104061410671008419627748143943649645291129918532478812386657462297176577364113766604108914220713165459608881395318275295843909652802248808752699645964321622412876816631524740684914069665233709526281386828040087290992845753753873690194627907142508420443663410644484783697354918336723428800194293359605714667938480312183881908898252433747985290675735095714469560477225562769965102687543870608618423830383561674381721051669794130065687013520744966085433508903016376724355529892515022652587278324476942121400480165920681678208181247609163469870456978753588879490548411598265798160105823948601682906173010827975038260316395636006746758391752820052657383278430888007306452635188357383184489459266804731306956647251145206222676274257180276632204390130413589123933314576707930952360196506812164992765212221101647060983065348912606152449147002349076026636494199985545677464493427592699865786708721119079137350709940316977822372733045633340029784882296354651273563346332190287484203196957268192548291608173414160188073405018471206877434371608717682663077353897311815674395182631988239667207564542818775720690343463063022613114681807827243402598444922132297447993685892762042507543212428611369018719731438067594945280057372540321178168326713598871994647308046588084366689039944866851315919581374763669626585308054666996520159600828031117373598578058005559535918538565214713918946794196741127555944683644432011081475901397465399874115807205592041452577838698605678335490626748321539480280299855481488894509263589348127091255666249046887055641707417024385691986304189512090005192292730597338651947561050065046768806669477909544481406444844359932063545526719082724544582721416407437146102627743572629272952702851693386971849679609222192185616353939582740085908649447933488990098522281745405539627636317295538853354868895616149982000980094054699552875869798457851969990156649045007779889892037468436584930713021356774330808837204795195485055281659158671120074318537822614261406105292523756433678767158600797519506933019942280091078783649402560886708421927843770493418891472368625740055971682794405817655915564190729520377035451252458144390786393298189538246990262538132709378458525309042567105305106213022891447000769482239090640896897126399622449383909683755553099642299017659429613296422916183194763221629974678584736036047651592832851174084107310669585985123357389720879874010874242425337077161050628558800394764929998743406978669180175996921239583860426607782637972662469391888172487415595370832686902498187511050628261325613665930888178444982690947662422574730074288780273381662061900623945290055096063891329498188361775696771524945454974729027557953911198880840105423104983207263319714029845362704328649810198933251132131235855832957704913570180526532129230067702696521133951311646274733371526792169275541404562260282272956664224409712590797302668052043867292777543625398153458585507177172481731844846870918547841871020478619784331211160127989223424767594766070216228773862292996067488594665862328512801715273825029703203723746962278539919517554961471391684201502190373320936400451178646996051596764564037404549507991363968499262045013416296530752426835588668375619014868758669661474891212485619789286884556906180805468535214163388176711863497695298813143346077599507422335841111153439021276420385946569378784895972506139216151943463458972361618467617876270302439829632354371090428877523616103428849849692213822278515331501566264504272225208966488233399625551424583895438439195445876388346624015618937739151703908054979387661698806266432929829603393457696841213889943429137469984114329599793661178804059864972056232521370449204879345413603218522661951155473227111853789881629550578394853558361578566023421542901481528067795369927366883172841825984596167890582206265512157478365538493631471610988003762475959103868460169742668094472667221892949003749483040318717571414850948595268838676406339723565286919683375056824753410338089482032503725686525478170809188222819565873905156363715767181523719809072061621060767677098587130539900145661776602054587067241112773531012867842620344602208838070108963152866847163608599953709436088900709321530232524229594661916052574158574441326444922284931451401342232458373808222298833402190530316612996813617725729699107172936487692560020267684539524766022977941265523891053509856772798432588784257224589809901844782589011618832395117231474482255448468412196424830498297694650916868831800783124977699088918321796225506657869824085977105016669073730951901817677021933429603362039913997870115578793666222887589593842826567106808493301560552259260457482708076818370377739333087744145734301969485121570474167400772270365915805716131993757533648321067299883793005079345678177685628303147578003436242366356884780513269157129476495791069255284286534175906458479622367619459899027479056694096916128705900070430612304037152902497520938016854178921113051156021133067465137530284039251532450598876529295096537607220288105591353877077498003227982465328277511008431705526517635215367084116997476031938469396486443700499157392351219010809451766394929115240895542195996853799745662526170042494602339842387044244909254256361505539267451761720459844845883758646143089698456950655770771781775980628947695460985822908651167208101113362775335413183712438329083361194838928850077085874621865374080031803303212879123195008373413677277714666776282240288076080945024036047382937235066070513895842193366753397667221084416032825608963183417726178586608458308244057192863416429673429513198752187353142301283511430623417614388550852421581155280349041471523038601289697306095065117923391042927523466364916367377455187108973084948886596033499471320347192791579862344150112704497048064528377465145244719243309430474466131969461194763479322549751021152802186856244430470868375949741316382955679167541511988197917621250825548726211362183841992457727642483003543326372631762717884659534704981344292992953831851958414561975806957513434694533371282270817754194109715886880244976703227568533983308504021985790719901310597672912997148570992707347835172797945634005517715364820705594701107833435157666747597190547536930076745843910447082469485317219214787399450116339222045258347051765897840229681389771372812467516390337339662963674370219278638607226616574417249018335420463095334619069901836811388525317072400362417126362299576974374665789528441532432968000611538042824424006816622657653257209987538998156236654065561201949558924752766899617824832762457990198390427767477838764659219141320446109626986445584926025869642495422066563854876250414876897121891619445550959902294930342277361007253536504286320264578995356536408404811337826214561034434673280636197761326686374395461500923526394553762327477246725144330162876658923152113846931109642560506259158230564023296327950119508502625453328644476062048297039715173760856761486305353879892564084979059023906214995462151629213812086241216130227946390517904911279880717953194198282764146047575899684178802591116844260291127792506605822514798790693577914749386064401792253504288446648244699041097333213686406184959604366420545960315872234464400913935490232014332218784611116187793132135842321730087733429186075438046858302247403057043308496091091173915210720300505485444979813192858497499823750500426615215851128148965264445429304720240743121373923449268315404697129520677086673540614672997009495184306032011995307279052474190448688415790043852209649360206310644909438415215477406858210053552093032984391017075008857185662987450223898584467850237158566176886792607771934440632607087054993467705195038490510543341729531698651769164682563932297290180040928893572702320874224044855413146097652315145602274925659322379274883318440274434524559364156644045811226719438650179652514910455013524824233843005092802336084100687004508008231990120544034241555457719279171085513801006953874928277203346535840555774272663921956568450977188876457265301978025810360729456892240090571369102980429244929118509922669687261991949744333135466663407465201128242140893611564017640864104844064323587351487455302218465325106956796238744665622846899956777743561494818647018198236708708459969571227758136476464557120598780183692054014806515836166485455267620155385301564889367784193884959371220907988281994890129473125644874598631173816282234267634386571336866996043069596955459314865723643078661936904926385473510654633335505035888702075694678990412156420456334793717603522434415548706045376360085983094052952525212980973923180831304274058491594088924808084617805513223163648919334622161477822919602318865921236426097007811180250835826439613234289683851903152578537969194209786418309655721857674874766848441986007955456598355540056146641743622132618572298060687845037497977342340698479407598085410735430281656822349062039511738996596477521152081269368645389094661480463314218036167100694845653755255756341888239315656837155564225117125171972217069416402326538323127081294025780014551812594318259704859282265747599432804780565964178655674907574457977209654195108748771210507292643053200263482764519628047355478463866787716855713436223441368040770347776591462435334020316405878998345515010405790094899978247038172594431317066784080074374216164475565451977802580075898896094913706558754453225674090724594061103357744609333962653119537117124466284500937366164032778062322555521482999976539594662017284065199442561526821625635658520216066100596022505502319305040354172567101929508288212545479020092812554679721391613138411897622653193191470020417488339117739918099360117152932775012815988886267451877079490433550389794896198049413326355401674898716517592449120379790207545923574306687877302006788179691909490610063288018399877854827557089430788872605216757052310002540752528619609888285711946819790399701133344862630567052158826712000109376276461961033136919738308291150017524794499995330707551753091046785753745864439525872107274513217345908365778899941764225172385804505979886608746757964712974279131166927693801324831344513517973023232307074034437580431692044845405242590576208408885689936264614950193015781917949083254648559946813767774207479283995469624593234890850281700012728957331766194302835701902552035941899817360585611331637526822920516423695214910402260853356927154182193823752000833222482764093257525965199822986966437276970150784056262904705929109698784935531518675322245721044728715164842049390064128955901712578416895072810744556023507327476556085692760839821898963842891337922481980112125925812536172977829095535595997256580486152807396409339746961115791742220992885892855396983068501835273188485400290910793788639548577200319790867799006793707406367130674029108892837081050918947145746570073831509425912876964810128969287776429218431489154479519977495685927672471986926268795969006918573019692600070079318562551375034155892311306795747628087428840781963187767154796699509454785694354537350761477702148476562121156821587774060423640040730570869370532679057475016978061853037230019912727744362343931976304326689041776053326622619461373132408553006738947060306490752539925932164536773659679531603420183792230683585790253958661484816241542449787301298053341581465161695165996096910054040205807427102284660365720142558350018510861114905118840951048806926409837647003792905658061236131488687824876812765734298220079780987769490748303539461097145618082530606711594841223130477644561528381450462362376490918394676405334903288194322875904685449359231201495641194025131900057158981683889115878843819461558299496349615883564500935092477441886441107598523249706391563646625082432588224882400707824103783241991552758199647256409072647368748869552116188022411065431683245268713542668009025327111669494045902184277566432595800883477943492814069416638573481759096380809275588228687841370597777641917528315522670421215931557466172956057208613016373733887514626003874120021944852880546802311192005479035208783298306257492010685294811841553619835508964630391534757812473508884947222022056595951812814999729421964380671796756430531491282442727341507982121002541800451840087736198130833567611382906275055016975013787560511473404745196778617268143230254746555181894390700857548653538323003575689728127862069590891620638260229464239323613492860032352685585001890771388340493945837636084961340857134827173074398215599937691079147991459986421679664714759380770276786893541395012752809909223275788991875436896531019732479519968971173591014275763113785502127820068725322970990464368674413490844864978626950794374487877301351498530570577337745136286234893729295189996632790065636194131830408789016230776494300913721374578154379649356645941605281930765107373479125131554480671696253285135775683255221781494876592387246658835267961223155669250123906540795484876168550907315765054657784109148525932853366778000005920778405877350992532896716670127533497045352680439036788847150145096897687893034819053193708458387545205801407067913488106727773182377029912294916171159921149909644262898155918999149632765163145482333292987390772222806855581508693856947248673691557566512896966655238426746860543865990715690503064754588611968114702861779558261163892413436632658440304569914407801446007468917241717064611893233918637197638327140685312707819067157612738971468991972188580564972657362756983163070054135398178163228277466204545055830750113871213769347046560751661302500533026927157719008894725295244954204650907052447784930525900418337049237514506117632574398577909729448915994103685281332988869164885640102208178773567694239959263177775942269514358674688005536022097895130127570080043530224241222417768884766532058371167499396794153318250250058627455269614448848064604835705978676802904890562953018316783258856375950927078182823178204371049878448902777212497383595714675788409218726586193796766515773542830260517562122228627827610488394671105283103855716937335033387659299061526715264649511121487773623501035151422755045314844260857385210889375918129138294409929431976308112683822309630171570073644652604546827004103233459003836206038201718558134280620309090850159187818442953777856911812925644735855624829428957423084804953289649110535007779132239765536271197620969321555412450736934944292669177856800682118733291643288209926053645469936384831779725950258682261968444399252384611351344419567163981189702264888748623454027076311943749671965334490702616712140670067530179355623549965450336242558656175049169353106199413103675397767534083495775659576462629646809379384074578015535589324786758814928780075078392645544115823989979164027384950643441243602499714560635912651063225672059030580990534866540493268270453685486127602621334526256914115230377594188846531938464853948006216156819951585658837902619328355141470313449187661449679789583403989541571815609399812314066516406691584257183748014673427660450814965704248946148056166455465926439939570826044166924329693169199838274655658304114710732461657416407603498872454849138618213821192156048788720651628189797885320516234361134908178948457188886409978205066129425098739169059182226294844977999676837293614101409476591773142609465778786675455760493338522960669162087830909409010328510192556525120644201165889305694106226368332343463170361903421990416535815204341141320056634897380292195408960646558156245841642118776596518814855994779186952222226545583245533710632202688060391731789688478346865403331541334256669674668705397010329364069089950227076228339306299629423108348109303320230384315674228715308471072795962960724981531565766582604436157203998578239813547404155433591941156579807632116429967028591568716227907916161235541387666644173527271478175272206001730288228963838498602816221814464477958484634558206326230765517955600773218179233305736417345543043900730414408139858138230700029518382585056968278760218764669899184620306195390624104185391792632748631861386858474437083661975715514358401869550955111523543004115038055887469784692197897098149754561274693356272208230879377545567361276380107391520877578492743280700906110066707346037839812154746184740898429656004104737837937282880975930885927767081257218178485648423168157611945422555648325530680176791757351215699248658593620342482795990319293695708831397198677320388454881099943978079327477959732139593698174431142406905395490600408500861402999703007563281171143278374605330112676768449623441946868186359598417527594801449910974255044385656385855892174680250102595152738280034297964183920716742534885846948423622888430826099681574039081666053811572246304240627824238223645588900160862353691871253322429633701983623854325898499182797420031965830894058340484024713048726625488428254686761458920615495662021439108379576720350279304101071722959096598277811419035555221765620347996128444480152671220769879312510119965748718968571520309030604676498341647042999607863361531986344810991266993850659462700517990290932842835542237658921458374123906918263665999221968103677420926894157600369288454137288245027043994494794287448837359770034448658087668609509056133570672556163615562662847972012477993625033401394886295165327472683186631624939173914891816094799985586652652915357190668726458027968295899581488511526919784089691511778686961026760808867145747183119407538175992322658085658714362605577578119395198669954942728469285130974589403251579962161939449802041768944343790361614389972847572381511989459012601864747957497898884301700128451619105036778396902853852050542863581172903679105198894668587280113903369322816850573195712365633774897238632759074553241901189007355704911199755436537820159016815300399261355029493428423827930445243220606210346697351583390407315479925554348805231239499557152974196818695830336172325875506655251074170370076671306070830942041145121675513255007854107088701166241036741007980740610089202647110544868746758010869016908580583543702535498155239302341504876537871891250298180975043199215340293689739414374263379886323756398836869977511108154121720415893489059853263343060176813428953940368307017376431844234789940266452574285712415946267544606354870296197524856116702715825432170142065942984031328034188700904775976970585756611253863043583173661183064144035556576155777818626906318980891799766125429799531861615880542757365045876683766624933838758439944057023258254368584459194704912394952029205016839481968419255368128789023324840987534742826789939767199007750137659468052019311052588710024206636255536353165324334233918329639374968601201380778996506741105982946876687647270385460031356780329802154051797762664393723403817977387394176556181489434821983579278218779847668166999628834496923440995009890043834394388668615694150201001885854987967331877312721422046706200728085349099295345743488080389628925577038860367294021439982753472542379166512549921913937145899564365838798900544322533576033876542120062458792423140940175414254149019873799311450712751300303443004093936642057112030394133995846357394867528928726974926505292706470656323335484309385207246225241124894032820113758804944974295457479781461399713857840818173426757693770424628842548751103195969858343719940864918563539603667292791156045946314977454581097412083256898532480069399095959581922136290937386851203019273241360363368346302360538257392891067965567710993107948523003631913615654189517213641239381960104950541925647254486877101846792856601822736124000695618964473229912188834299716013687914370432370821463631071962733819606419023733767203051410613705144779983584534869152002701829145339163732089526264456819027729232652610887644956265631613592730693250420641996693425234509037785069279867695658860250425427151285448863851809670047992979978587661038908160201080149982758817540868088749543794666409100148079232844709185181004593839215525760704421629126896815369191924492905098839178225700701556372081461360841097990271684939568483521604944907873769906583358404295284100648307393619909859458461153520902055869207751636969219184047254678982744889982096454599156154420669550673419529883886853007349865973968990069676090721896737019507448629133392985980314740272883039682109171026526170666499989069459971084029295999640797470584551033191048022906647322388910844749407255461447650101264424690115241910393233215707549763601499178354144206073140946348587714521297412472192801619415659141389836037779966364696826864104839979439239739932989674625789972623339038238729976809073106421769258884802978135598526953737871870079357640093489006902094869549098760312655064455518751018789144686718637283741148624894518282544763673915380684787130038246068600817654777986186283696610181414974231273288141746407590613494860035875239650749431619237295127431834956843601262519297350218264796201078188837413936805195330227908732753402678727987631541248100643904389925705944330913917023843656120916517551301062168792032375344134881631545569951124860242442827265443567975021662106193014115593069716939321299321700133239536693496033030922524413097779454600726007645893987272817501204888591511308242372082630844981259699531828639116877952613096208804645307303012555846520985120290039545051888860958004260796169357054594513223731882287259015271328456169956690766010323097917698248815348435120612069435950282456458040468365132728987496597585629078311269456543138695781138107661096011451689855092187816384033770276676636836151314345938146686818220702977816434340485878834612241538197592077912655266152501088383473253780562210167623751884797974378814753444614056070964973131654341266943059709584683740583835033448502628735727933382425396839189877055128725704382736020091330977645977819275800778857385641713295042374855284334828719796775688388250705180160055292726085288937008163281701126004834001090671795407413621748960051816182139894581330691042863558685413632943223061865225531690043333629738878990174392985136634434925214943383155004334464410475525263351987409004250690115905487373136204764905524887946739143924408295464487295452806837997587802738471399309257834183996573777608932850656545005637192699308896191951705257522698952719587900335081301910083843019196982656271874021659770421616668978438775196024557929481724252785124527097311161775490321069717130100197326188024639220098014408120229563287530594796067449697082957782288541354220685869479605830588488257778433034588466344004321920650922771423584773667784053070537749763391925640007069638685984898215002943583113481282825669714806649903878749395088838750105081646021156703248716168661294469656631171425959245933943093915429019081626424899541549526429009004611653413225126263109399472344692088104929004028943174020523959954493800789699466122238858555541907678064184793411294705563378702549795240899212539438546253631730194977370828873332747012237546292956556090062864068715275106569392364207407316157016629755339559281161732198156141688723419209036945608614577885160114835056215236303027706451539661143124503787688258362171287155060157662096251723594244698008629634120627945072980015287852787674454746954050681308630611980444418618565261514917893527359606229579157388673029041884677065533744775365634043790876556852652931678891635501395428347254089104490419005316327176862455365109287790088561484849929302057572904294063643778512636200653072806719018485415836136645557851279577406423280167862659640224994625489289801255065099630128765217840494623869042957968241803414958398838165656049566790844965517381569348507981317518843674835828121154970675204058714797170448747999995142179367503507391018291400551134084055594466806884397289142997736907347790702522355243926452810834563694370400552113983144870168944392298771757895748975994168625366311263916756162286638573003304122197309050271925900581638288446087711600786368361543672626892430756016291405241381010249740713666026718291394846448971244275158813763392184444499454285156710834067964512302578318940815320558533395446235322723807565303323684807893636021975358977617623155539767849598643361525986894376125330064549875632075014276450695066497755561884300122327608446011890102982790398794461423002414513870195824569384568098503594116426903925797008378910441029188808368187911187162318449508942764968571454522366460924189266507326248347380628115896933345656118949507675907754932992000899636975671705066067919336684596598460140299917119928877171674248614574330493228322109216714281346729899593881527477936278627998453605919772462465923318640726680816643523556667081751180843538587384841552441052357332780804359433639971582164231229859611008888109308512133178319789605083692984510861875347931914821477805871412957795514688500811397053847524408110052735363193749303231258575303502910038677056295794874102029271436564539238997552339079178360052048922939683452898597953670147319612864780748487257068996430362260298943451039923082576151287451187414319349937165033158207131963161582320483651069069676838891981914009871345264664665058516704280376637368025126741561585541427800592382928237695130331665009250334015987943324727976645845099773509388513184221198851630971501579190893612220743813571975672248393619577592484209070070050595739805791169366623881011837850481645186092946664374904720311208146993700750933575231337758315965020602357037424300121482626633766327570894855593390137497996139253287490544982893572263374100125448753931967470580110885865882268784472897688790339212750776200886917021173925102719026991765225393973040635875886806662611275549563582810515124385784563085975742601425049111848980004443716114254126148742317738736017246708189471163488224407180646891965495215856411506779884113862616080571282770318366938906054587082334978715035163980588648783593090008828486886983573928118569815710480406068054199841058631877720214927061775171290735159201302864253081286616584113161017149073851248212509328053791490853124337914478488950320013375911372933232812609180863179025700282279912389826837062627644163525376153273081399596668330205357878645737349260276717614605878489785197072173480922482008158062063194877452260842270805621646027585803925573259103624970777491375972419393441276041974239570650357200637662344477131725737608365606631919019092139543188506427624529813887645958279228081079200756844883118356897107951176219855148714834153145357659610291140619208132209361293733312734167431605609295673532342318725501671948050760846775805803572913904807432092362303044344630992132290259931147082359388015928931755779321607546204487857055170201810181801730073711822627832177821971884698094894873301709208917477468973800675019645917480688487885899956649079194464005555473667025033386722509815400776605068052384643912151696176015048850741053733370817051993576299358748146840656209997483787142962146132795327812809139269536114689476421330613807898168850335136420819399619753797699750133968385751124114625482924163711759006511970560243568668494460976403976623568730930882245485955687112348045523259842781288549634352108318057324775855545561980618088296403926806327950019037943853235735396503240240561850190365504511871983288945452153743696403707941209560971492339979435846109187548518615056658105019365686938206406234754642902714734370276882576851035744211812766783506663977129333611681453745025464879576965450141130043757729517621012057035768647266786302229184839511371262753022836974574298077199420312218475984923936910404701452933469186445309189187001599212798903481864812722645276037472017152793404188278958038454996005018320106434555894197133628590315446286597953825572266645028427280875634232669106224317641035263262998901175939656157592434800802096776363842679173282628993839991149480279163417309576231695420684672981602698786534830705825021929326965315535323700460218106148169883463689111084735113818270262839791346233061847913469942964987683871374734978560383068696393871694057307495821673289534257435308090567228215032023574793626558092779573895482151853548502455257510585042515516870914807880324909030371351977331838518780979192717899811364334874029561780181682141782752029743022188642811002850401084559678558371156551618496580282494628831371187035693737995834209797312378348494272361264999320391132058729073322222054169921252757359998833467732783632180383395483435023519546904912979843661217194549069312814894419436615699505300262779062091903939200630831784809636700463923189615581424258968348195639752975268190884084948914854344880521533198025877283060383975024869521590857959940967397184211618659946786224163861925351440640444684595052603331242149705692718086045104053824469702710229261519469997977929292072404802776066052719334803662607834847162411251476355435284043809131027801901562487058143491613811466361539346973602305602710154815995108640786870958924253904596620359158328655362465826196641340140364733908227247515525979842894099530120896666853967885001460237597394719590604344224541937059688005710783257883519866355068097567750816128776513885485686854280590172758154731060714420387276354342889954265335175403518758525957525442933921757578911660203308763221662967019108803708810826310660708776663737581499726284311573901217135393461622679475503804993555781016579642249060490200519734235131258227977045310774286956249382245536722281709485318610076789740507185680833481063267103146093778848719816388408398357823930884145616145710719111533031353427166231527907457901832239694103777343156767171577462614801736750416201548913647553771691199203239759434964615231923460070245471310797937430795555163971650164716849555092245446039299723919494329197845111812608853261178893749183350377529849167223612137001899721474073680453086599460962905117593227096359120746611614202772712947457008115749159187290252515623128749297730326593151981803896553593012796141267224952378890487823823682876298236000585431136590479361641301359930040830098423963487704614473565811298704066038103198682482823571979668335211691074381202717694720183975136451729778297644773831106590147199626501169264439634613655203028678178909453232800717465722859902080734263735344161119707347827398006516676896540198028365924456453982833299569763059612126226956794961293505869867597566613072624710923497629418456845711192084891036396422073589059458184981534854922346005186697957080085331921555307123622424256441253958396757980420651303535864649158910574928503568804848595678209145122926887949972317602196471579970010886859378008069242816212517420413889315924612570658581384850296379129120482292529422127377968620683217476194692471528328582306308236454120480619640141701346554824047100401358150995346071003386455225006084354717664653434334559284055025384983455323170761709382783678776973615644706399717844073730084022689549450380808474491690951103639696937513459808816212419624868967113068470851342642984635226938623683718208983508748018612291234145387546425383766817869405130470201926398872626113434392108935243129669009056503300563358634427636053424613491351382212003008174190934953390371096021062805709676873620436697119563559536093264252696599903597384133835708600205382106846109125585180050909791667260490734635915179887651858501683667251411121496254572150033143416650780881699569845290221347037997370357619208463203501975586768573714448528127765279588227062785597081712499413739443508927643024052282212217232526718109306538503524833459385751124909181264047108914979355995111268648925010342736449044102833285038297012260011039688410714227450652469209491195273830183179751303061214527269601671772540868170423552393466821326547976481293588597889384970779122622772613881740157437993953414078526126508170173577502309932500946773424448805273391090701080229416781972576922042954417440768575086754956003565911157321284437483161200570612607649580047056713963023190016878232378711065542070555097856859163538767046764598521981431847775539733749358324816119205192371005281177891358176628189752529242942722792769515492566206432698268115729598325323178932182605863111453868470776375785975005513789625154721973076930486555004110444984372848794941148534535710079113047278804822217254639617085592147560955637735393458886769076603783457395837878064121441341187897361682550549440982432139296035248059657541586128998373282279475501114314904944102111949583454906704164381251897490640726206137831392628041158517299086836940721336348793328629432705115959184394315890391335702339475564778033659155070024951837421850692502436536991744016467310984554054341102458432236377149628159532493489855756503028984149326041853187269297252910938602913496780802276736450498626228302886472487497119144183056413100571964935984634885383588245307176032652838629333578598278333764810562073643688513140732394938198104435946803169409769981510556692573316234172009792589053343154382758609561988302832784897258697804871509794968080276444843810489826301570064359145802455752698233923283131810002308018670657887261249604138200798973327254850235551784139576337017790600247641353265094299060903782785836533188108260177730972228840156688304145251252770335257285249998866328330512344899219743484896549776634314439492695718746725843343042026869634600094683388984774224020166029309082659673713774834297708872759953747078143789210428857229324253259919074447128085318391556641185610154241869436058033869794412848356542946111970549702636781874723688671908238605760986070851587680057358296384177168032519247519459527824156492001045486055910579706884821869649949747468344795818153066305249308123898040147657538774112200079301454480255517676036536519178960135685887270370762527047197885577686900718332017666052760195967667425522667604678565384077121012792578892221976652298877598054787220179795599529221391167604018013847568048271298866080155125584483111299955020205107387077173415495537027775737966641890040588040415674378272887116215828733388140868353477120773925655738022301072056685561240622240782539154408763607667192900224602725833227496023252702363396181750760482817201652973076694728188198583920178445822285332713548514802675310258001959891253161822537550341784083724929475835207868574859176700957479903908525268593685905277702587591661780535624842152627284264720148395553394808572415719257066108052102071036618243458998542260047732319677735240658600334723132017822084204527748077711685375591393586205393519117024906670187407283923714599668061426699940687701548925615463857449206465126675644256388060668281684819846932347488392951500820977093197400274979058987565285654708567959884873235840066441028404991700942363697238293653849289486756780709199032295702408943698894561216445128236491344038460083071422475264841101382866284008167098532640269574571542732785421238353016654423165448035904370190678909404087169878746504054540269111209336849277891204268195449190622350884574812307212632749565180590941035617961466906376754678999195608431354788729506818426128578479651337718973544790504035438609790672006333791775940679938257575183428151685101708529685884989619970388777497303322506364556032411905352561892944135225534860205935663438990643807259759941885027283148093016215881571467894336793829579786305810231387701259771111037754144918280981490119700495700567360022397144959284806605508261544847227606586882030789367362941711261088932416097010231522820545067518965444098034950886018731453284395961547210354476412663682037280628161611894954595489362217201243762643341719268338601229317630348222432226906702153223422210907787386933662448498449315625709492930945385526868191788151182707008150392712347348675036118743126963631229769608597593351725337085490477493460730813144903244015956645800699707669626300030071926891551780430407557357278209191839070701869078531539690961049952372154131725979912814974305050339330123039818777637237521496730544563545333084692629737424060307873675950554829338323425060354836195048914090851298767526527096373500310364993123620672694153025433739331199374365676456265436834209859956751219521469200707220578012682206043160204447154375470718548575902158902038656052105166715800437660741054441017146480946166803973553417562975250008985294318597937732425281254644412407455112318366166431873585774118982461294266828598991340143055523014242787536457394936382358524682597355276803658473547061458275876274680560525121690336774683321939608415065420078416152841989627400152500118241606055612273917865639543420105285654802812858457298116243200742184821131560943978452353844623419350354299810787897907143669659693755666051503657378799979191310717213356208786131333030098956877394718294952289876223981088511137115703224625513520254327153528957122928402303516035516651707783325438958054753388225370877985192965991623569281575588549441296670368083771694006799499475987364881685521922459054552981833514756941219337104032148598306835387860174974720730386161431869063580059274415461840477997309432048615933942611419957585966501024502641761116319643214651881599674629842656276367604305010649514874453182196171809548349831616879525536353658702579982528864676953806098416719007930920060190351496640940033826369442520984765162639025392479694326562950254032734757606020071099571623385032904128253857271574829866269426464752182659255371719942164382459786530708911384445193669138606078786244758433567915330447797213433356620546248871189694390864841599364019933637070085764616191622706750457500493142975094072876073729483918218912474795551007061865915917214851593840534702774773499789992995963722091909570911139732793836214958100083068603897771435842954544941883532372029468085855649573588358517724372174678457093886491241901095911487337682386783479553334918796172684164580762709448844169155514774433485625146188292424289593388903869456780672452383094828187732403647496385339513607285586470201615799895756962241958697840345138552640671503250046804935979968550163257727227032809391810625306646146540438843532265524471189604590188433121108191089756025237184212624649757501475285966883615111279641313278269074958653992356662156250392833419614022779398686766697547967191906816685964557322946456054919279903827848743024178905162745655828308377472984477297071009715238722907090753143250061587590846436153750402014050457083480705043985510716637549249019630601491285920099845671895586523452441234067500522307012582554249163861026122577367622265017976092314991741094754029214858952778835666965623124061311154068332118372784953907070106236570701917871390598582439863229235402563165298496187088010824970067740698533582770584297847681272795801657183621906640629782936348449516121349061510422271237561634931437832838468790659246399209164290539503665490298859021591381649884899939147223879653544984801858979185712498695064092872454030958014145257854850855319791890711355607844060767825232757522935865213773433155006301107598873280744685995783021766473049969384740006651854034452900444606533815133260637209762959718512998693705537466356386141976555631043544921689866521813204574879880790503487737154469624873745468350703721304851477104646495397009339696617006463277290681366250635226381153870448504934787308934744809334445615770198278208488244247526721635550735969191570217083436918878995376410290494939426401527197033586763728017428194137766025092838767398895360753464778891182900509296909905071843543400843113478131784030407844608866170424721070397561723432351614925350336805183499671317662564820415349105600748150054003934276586593830076484337063164294835218667356227927456771545614716846135420134638206681100015990378592755981386918414409122214166126371618203687989697910660144490838925815961277162474198741909422966764748846382837300311028321420165926715096343245215838215848568320124165334572141376596845635941819456985171429971100430006685817502583278291129485554112297102840590567158600315785023743132608940731546440701486808171033658875501740499247211976111191483131496145644673143073202772763122433806263876677976695677104253094806029675147653264185652912764306340361930108778517487300493582893435460952433092458875327829660427187331160481549846484067656557931762611924408328213038284488915304921741684514367719239485390894357021687700288944265538103329048954696768362439064555650730448894249067465925523544838616298122171000817828622326536229099040378188074406738863208479060623612268197577160421256260529593168116501549190821360974664831192655237943184844338508970703942633796015157434177617913662345915969715718400867443718834951347015944286253488923817328912902798644280113846983560079526775216567211331067120810375523892047832189193383159169719842722334361439389856438748518877497964510306792766159930285832317589989613984440311365032049262357440412398289507266077249205385585215155825829286444583470969478589523202395201692314517342898354726884442118935407112152468003362622109781828445405831401279858383949460823036535518842383536831179654288396749619977158182579404929297411943606257173808291410718828594147306277754945295105066623896182207081376964898688626408604175917827572126781957672900514102535621925172551433944417727867328185480896875185863183958413302218442754205859134617746025883326166853261705348985794011812941457049560885599033922596863474340641224264288558541409067866744088908921434861790592840275011954845564299987440837215261831442618906352114961161075056695004195316694411846345085110860598380691853713907415407678535498938497468944149588421601180369216162093097000130080358627065481755035369459437656468853907673741358335677884558098812126768980300146957489637107521140205806945720096108669929704317373897520131705871009441261912627703506734277057734139363214228527467437743514334025149938103824258400893810570934823529717690099647490157791737064498081217505117941665093788578048677476601177913073379794775909530248664411729513852325742265598135856762582154607089106423835572937728925233357564699797530499463576893852366830157960006560095338022670651141275711706021221557197918390462281824725126453621773230901608995874062730088600086948125398743388357503690806180190951522332613941226752238836400427101744546565898043453957214831519854799284820274626909479536384253551076964053064742084167392052256509183161709048230254653281373342604986092186540546900652476706048450018636102680697281724741459634972645944284180295939038626234262703030589264782538334517317734542918109048178737469032090397466042632985134313497775958944289965219201102262722562370113302605049893464149664905452481985031456493174812059102838571228726648531693371004321872451119129740519189913379580221346932430561249227634651560987803318956623962259790729680690089628448800517901255744321552112830900002374211339031101400721147842803772336802397406101416250279083884705001387777583818456797543178032779462157010423367691190855665916203365784295662194933514670040494990015560740075176535735833301684520398933338262167363958631743465676117594412457151135735161265964914249451976436114499756840785537601280066835274265563227895408470086623429741634450534278521530614130120073330201449188628593963548238378198250856000802834671049453354567273923325070037868311288489157921954411810385906889403260348960138299567834672913120268686511678768202546163161465988395720415348965448628256243565632589659812254936794204369805665017700377921419192818766013806815537490538579818587419492862687571074733222054917935848235466121969032041501805452065474181841446841267282262919117464712077845966082372050276679823416405159124299405444263555054651819789874628942290475047168897139546598557790967889425156497891542318672591807049240347522882624001508149026921859116668898864069419797438992103113340693706388395300908037450633223126435532757476283038751427110134557547880375542325782388817658673910664588860511501363229527132348861250460869736039103926575782531736329198995852267457367563992030492179674511149666004542860606799517128283170219148611220892540815268444648283381115832002551389465010246919780087597028761211927378427543156172672573440124587846239056567531928921659451360504132001082045507429839721046868808070120579158921072247398362871697697620052712634314794965471590006493905997509549072300790958457576724196585529347861003836451918159641232623927258634713679355907191013772888908985416368655612519266480071152703759223392179411859152813369734529106115038545668987817705756702783202277421519093329318234243136732645257950556329312343275239204684593413486446778482847153338606275369230420752578416840661872416298835674804152787495536535488320574916038227277135914006503294508462214342869312056597592553401089050281756079826314506941019508920814637793887777412838567786192028199310490392238458927202866366453054771020542733902092040982112193415385723925967804693221870443355957625919854912413830730879373834802156521252400552668476127703453284311569232767437190920246295255806695686440197618691517067696672836500262651458607097886265724541497216803482571765635123221962956444440096280653791484645459102155651741221500677615697346179493140312255261201344284939643029898242812737811975311704475592430952075287566694860924835343629034206362063118232732698716335059470923192267651162094884797480870654915133426713364045974805188866627314219242045605255908315228624237347704263804072717297562929378435108327659513727855231243368172971482756904673720810517415268251636021809948271933907722725034191899184308447291737762497141807756900115186007489613202933560772309759470472469789832303685210252223566262818520168832340810118758157788624212040881648526804820551893877689382127091536819852300131583209082644053135965275763166722610147180319034854684454698910094023460870505589553235708309247936694870499367402928806701439520962438607752286294657130688069475411158211963465340348683888861323574279268422270350570802073403330185318649210724262417319751627936534984335630960947361755257215964261771322463851993312089791309430485117630735797155039341509500388213682263879321229224364166700743511531916128582017550583679812635499381379538719320448680076111215915937651458653940490290011959850759699796597609744998933707922612316430033686446716290334994688908555891549027463759512582753057603259155751164046499883363412290776517688206129392271588565849236090004258091895521889113575292182605392172789733762442089533752686099444527513813378575835458594388604063238811598830498765128782093754061862157988693833646250190655560434021638825580230921456785649591295592954971214248536921777922261186740906709233003594848914968932927459841644326124399436207313229789615884505697814380387617212557097065689856587247181867862053070901884525252289423981692995828961185673389969362614792883384472851397459254108639069594520134559389499219243846154546668424808560206480597239103917660205414354346231769084373225251123789025430421385085661872560434907294032839103811419281394897569723228845395263873357160002624603709352607566310602863819247290886533683794930728644406654536252131482411592849835926189224321165801279891640646531472833461994485782269336492838754427928968370130997890382938607983412247165504190618504466550074540372202837397610537453020886082094810004902335024544214714021633931424123011647158053155863897388349467495434201186458546166440520280615470185240832207151863463940689663237865576039243667262447530235622162762344586377439516470804063837645937861762468693544656937097471281940142987357951194221693847797979790353684493761544030962060320802979240389406392389655796137924141103440265832844060227108712176949131814975757418693255086770441343251159288462254327737224617546561062916632751715032592247485528107931327851342463880222206587604412436954845513373592032106941883399363143524271529288803645654149287032914347476633731798535441078562051509466512183162844171385039605883556416616142147758751359633658532470286760391901220383404862917298188812524160799578561447507135026654453329540827822777413560065314103498036127922268481458092413890958829187181912735782843545288342218681689760985155151802483212658094150711322307195967253843634737687927324629300073710794593559088241587687526883308188009823280933573779770468668476942046905036413795415552147624270949080785896909057512227813490463015706389616835160517933246405210845787447349298252681658053710199072467194123968188966550436813439911475452931748652880190996343099921484877838485354840478774948571831945300930084812026734878597678161442359318084152738173744909366562979017887318765674949992037387679874504307062531126767465186636537000379886437403730268560107283908994289204482696328963319376779628784559934386443136301595612541627434692030958440038796456710129565817817654033207112366317175457987865195573431212098071033318373974716767931540767486153789772355172922494752636522470905274151003895069906808480971250301264344913787027700800829085305773136315769236110975173318043736648487110356079282963625831482432537493995944172988218953636215393794578900405973394395341503492684941185738377682882752883468051264620017510040812821592713324988788747848129913002399978350997482944820770694124295795488511774986397127950307683344864284201871366463046966329758532553415822370049169990955760143218983416971005821117773165509400811599304526246054196107582690779699635295178931210262897857250672266888031453767394276443748847495289946810455406149628947942513923194638520193564355457195361583567214506088557943286417677232297327236963203539889320978064361185033070205521198663615832893609899020396767379204369321847202195431729335472562397073932531659196759313505338046665013388254960406669624034540683762823457862798034455772952874924477379200418046995676488374943921343174958769562289104958808348719720256073513686153904447857003152953379407263866437077458199350721995450636426647195105158261303430021695639953781531216192281810802864650850105659667779560871664065362040363385532081425594128282847101124838200541269651018159012658935771408559739219469532033426986281085694127747744870472301017094338125699301955357339642430520565836651451194071532762911195348550195858130695505952830395098845919489707011611744907934587381461577827558492468738611005244289672836664814159930083252041906138181743102463877032595004741136274484734022223996686013732184486188891312092973970891314022964038373577353839989021686419444513300144814886170007081669713767081547336622765653277125452423064421395404441251005951321342360708510001565703018473076900707683947952831472169367985591278655314991716278464232894867203463934948936699753967606703692397258640164795499179591955751057179678197882848045096253616144344237642483751496405835628427532232079440225876484018035536519197143945036493358997398342991188246338559683814149851927535249887336888933158217336232548935608169376705816978889976159424707980786767073438336147066109480935538532016726865018969009981274676139271931721624675586578289403124314022225076703240200151878137715717704525482718107599538505839903113239741635230216372054446552570362146863297574139362820782324187500912207881911230042992122991772537405114646128507447606006571175898605803452167856222683834052799588180250486659077710007722429656328494806895062091480446414188642855570657332151671927832376095234378924040714435113980227634000259694435287335267342130662203290911808745071077109987458757931309635936542044519007896032284876476333143503393863469119072808724122620036624821022813144372080489675875646372881371924755851311710091045313200697472008459242555162289404722427439822305565123521929095148393312373788722327488816478833046447744348007957672836149801160925045162820510238846673443115798528248789900735156897742638134149196617623754999749444864566749097209421901645312087125693843452993744032835748629825802721547742277516546407853056313670347338096410868634824721783106475644665494113565324872029135812422667426809888397117689030385629128442085387345847024986979492856911774971024775367375809505228477438037698514260578501167003563230077206810210706756621766328583323076093330620692702159389763418264472510733867100905442569479261651381489973404913325779826769329380276642785192117903574694655790146367587215872437243287478299947096336230759226896726089926928560854331747293266168732068965972531856656256849182462786928873907484403547273986248027532225023202580166120515121679681935822703859545145072949046310929242433896315113785989548162898169409697280333731917876591283578160892884631205299728725192639889873552481810106873470774882027621377096812617735222969144250750171926023342655537107068263978430337053415253888077590397025340449636718911241560531424598754876571609885935472638450767847048822135283837566043725922581878179677662973264642824109075127363726415028844377965496614498819421180278942553029812724270775098750644018500113523195808513125788111532791983095132930850655189267744987788116950193156766418384819554699738739914038937312334456308653349628685870973461597199284675008478051184680278088556007332553782331338814928092251403797923849227315554525399730540476023316228991072468668686484499409866164680695875182521099952683569146825305146049634182136772784324002980803282020544621328683214796930148270720086771278381853809287232794409544067251254167225010626259643747028334911358790717989788727110468199876049992780848486070444428014914249190484201258469569678246271846805803187627743682032176825663819702632109552867849826683238224477894141476231574968090163064095061601278117815453243500116292034146603470801991795314122386735904934113829813952149807630769246371646284504400983718799176056714264234993801644159004804320293475631081706416776720657574364226240498697489993180170514160125085299384716099531521196070080469354541603147395303626104756749493159346989628501670029082062954069376767074912162077959600532858456384160172790817122189860049463783387911171806394567652350095303009495505604109806797393025335508598213316777240945525211634052494079497423149756204473195818909325408611588746293061127116012537098907657913200815570509299427677654380650490181748030130115633620077282011305490922915274521444915817219990865208734360094643084352624081888108953901065574135566279264285857725452380880929282373611263804307600203736940088768307138259105445229399404663271871739862558399554648749532024630420403864971051354567287862650273323800209923380358880158982862051543790091974962035436664720868375434763707205594190583523009900616002977393273595197593892746967530379575486601754952306810965062794395281724529973647805605443528912712050021335146979280505620915245200250389043507782305761608637225245796309409420646012883457003218867299480075638269218728316349061111766786186112131084378376645762921556285090512137514633405448592168552120085073852359405986406061831290056566260385392359797843877293277852053227431132899343877275418884114464017315656839206065302400582204211636662381532591966623895035888760796256884435356857733849109215194026968657108406416550631338319402805998106328847090813978323483820777439187553709331519311732836644931764061341790474188385246102126145525879620038482003609470063021651298369584346807465461378589288569328243185317816855682860290701025034973934033193555240168098174904550018279043058955558430458806293936313562078064195328200156758100675516106824821120727493506589434938374253171685713775934509527207650429134570198991031254895238289492109693015040727927345079931253916367459847625004272903450873595865827681849201328034888272122945298104486121607860551380716521540301627972097845430833077136273622056490247107531092999593182587701520477073535989696369127933939445933857238761133064356489460284075038595733331480786423799202746968528569073836430479467517502478014789454439711737745547509766650813207860660597439141071851050843107955052646684877073735135444922401849229783015817549376102707469532353983733431690581855510231786561062476417110066721784270985845007844330102543568178943237419598456349323945290663021518350495226160178953881724689015589233246018916377649971431747879052407921828159874228352362426818327997766670464922659235986739024906829551130482916204958552252916133815261535765451457637233172302838021623607569973008428967696368384978245168745504804439171692664236274641862404300342182577819432712601802916863426807511971697682839964676886082900161544057698139377359242342758745108096447591911109663736378870060539531200029791564826192300320130853376959467712893533292819614048653719323665222849795075198285781308861704195100964021204739772582850317077503184931178622760899244629575648812315679011750947385648959253683900244831217666846569901362329843454436161245846458825786637457955983955752376572079770683133432812607407147186850212603824806356061876089266466322141261389185053545372202602278229256320584626682542719971799636433897036125900827216226201847602583874940610542520762343048431839772297274633743509740928202148963173772800009858617570344478465667552571966543069892214734323175569062750104396877879507794946950052936997002732680820119875825034569757160075892391938058145235289033373990746458546859652752943669570807356694899654808142974319386013290220699205968394718655092877380121496692907895967353697292199568429094057803143195608185963729597869402210022157301547283798338675906512814575492817023569896215384442873591516769150032800114024969452514109084874421105322169961828558706240008279903572504217157741699077364554990506266596088160649738044705950102755110836713914849646582581075939626040848736361837787065900085349394084787157846006580116021203639724480558266103665426914435751817989643316862266228845056359738262505114343027118584189725450658762367830386371966785947522702615239143093095503898635880875691267202695800680255329743236934881914308010017128602824781401189368840340560962204157391364531214521434014509967026341386641793684468691760534209781521889411454552565733473275054814128680169592804301832157462934686574155869305646632817439431734746747438173538502462105677708051529507728990983190737664925943674688454631218668272458370531901221778446669927582957353814553183257902713209566296946180735094816533383948682132984266574945982825968154512608024950837519733609927469301821629074866959415043035854059153389773906185516122594930216443077424844584349219029829942650954299266740748703217387388256371675193703967285045618231864380924908641297037048131670311155110156093727628902056520921347848400959871448959603481175797969155724521433866461522863244863266715864359351211667614802152400886555255820489201618828633941196872362494743003011148843702980434269149015133653630595929766078992088711486775090384519315923983223392652276229277879311730638885430348649977125594582128513265824087621755007255811614747300486948082375726934660021643362758729350968478656980927224280606074776922635720203670799972590717905266527409558949465838728076796200789195255940206323266161981324993250821507716785527347166674767996601583414283688603273643482614438139558185986841275612749759299367693255653299133150439905978476813872682094907592657619160982343297278859976710940248731352293043867696709863026200377039130044744701732030448036217153675514921091860453975291266739254960878566715119357057601684202005570977153107955674620695563313961331076109251430659780798637149771258062808554655016827583906582714450935604433462779914464901546138119959820253647048970464964263901968460069342344761631127931418651412141438378536372268136999850879297596826599972688586392408257465866289504560800879266230674117722508803657490211977828445660972089736426162804123785706682373071626640411229942890766418187239569373050834344317061512824496798609367026691005076931767055632612182524055122270344559129032367733859694814126456650908827335193055885412242148022561485570326855143282640808174434504526368420013877117890451157163866652449464094449049198474826007470905058490171802455892727286612623434099866009173814711300313890921598130080361766828732330531920104609835484762367369476422550439762247323770597969983589348396573132986532486991678188267527336180175289513663899470455034972712991273027796598700013658783834364347263924987346178295570463474175910591094904648279432691206983486360123336500329862963805855590573763464953698246964240067640541238029756305822417541648951743737330711280258619448453318556458727147887025256083579996577989993098245836448177969750129578564081800293897365767404571846600822629237277360798956035391149728364386986787238775855922271861004261565267845823088724348916560578591015701435586666214554261336589450597319990613437311634546800037371248826945804417399713855742787300445943944233435103012956851194442855142041243365964389737503239992822123596554326015748581624433704833807197068915705365085167886341748012052516107839107411465978821477042913990912370394860624645352030242356664637146278401803214247732477440263012725617414073166234658201725376802101278347521389244698263985521156405168884669350951001470098615403004811592805590675601976906652457584563009528591540536419017624729591805961086615750276867001197362256478942006293704058618088740957259944433111646843819527252129317186314511109317825006722915297117326238943255541460001902905043371236926689101960607812309692127775042385334780560998278125160321201558207523813939450108672949229789730968684453537394871950387726477174773493239512721211003623009978118917826099216944753359619849235839008480768295162531458230868346065014256567544113520500774535279951748689093619642342774347863846335880825421390943123261807225671896647349648910148143847830646361395324237775087667810310335931068997307415621227297383588966613501146121992948932676000543156123725998693532274222966548359634046529607834153924257381269642593615870478932487617271024524422469993272686390322482737372408782115826661509512031903594813604489857835103487622879759421124794064650214328868779339111125687810609785813569467913481029062470460964781751754939940833029101339737693790808564170293122904868134974991599766054440750151794895230874282762457036113811395739293818163079124284867557147252289158889239109236281169029926969639933442418050862179363483876720370990656065117482515713152118859408494147331076051762851091200555511151655166750067904118260387271580432349013939273216273560442882201810953861292009342657381307016220018659247073486192392996311562023045407665759574335172231303745452290338154898015699361222560591973897695354054100760985541640896812054932685730604201534627241538548521920990956947990379958249585230747986713172428037799683203057059956739363486222352239219544579203968226351590611791337346615961642333001733888126896982318661000928260127589057717509090750682656296018433763903843692017394096198371088218855984565638378984104740303290697553417182988217444575218453762675649913505089981667914146299595250072755422140493319178407324310568563920295179319920597599593715022209151991893665999017796731952576138014162179123212102231778589864823870930736219879061737293762965300160104303124169950557227505601451296533146084505207133997875212829713156369650481983211067666244275303887432597451650084398641865311295503388985700958612629222448859153844141118375292538958082897014685489819259352010843321756274955718932445933414684004631719320446904429590398737731720249174944180695224340367370032430885276471888980805840171259626813663018375541009463474786171952379526192851447734912728782339350299496304610451723561608086161690915132947733475907558961714401055404533496149769336175487933041826368938087082416914466795077701862022971198615172826591639042197204653189909685978271601154873344838005861406077878926000423839100591323552193544394740671766648827411050517616983349469823378613180223186278932349309216259775729287631648247956309931201194654393246447023822574120092519079401153661522170854616190979342952559539021783264300699535266443220291377046777139453234823585440734819572538648103394147242470948664917628261210830464912160533420420607804789067045216609739488242575790842303758589034952829512839574632848523544549460509423138377683685617461219380435193421258394469971440242354065048664632987465972277356305458188732336961981418530944031896385357538920707777732706391077039699600638034011141190374238157571506093488181403094672347130388255239454171649589621825818804066713139415803550520290849408570033994543880883534027326304153344341577110139151611124042358964984871200090378893378866721036986066926404896042419797905647848463964407717266589854542622546067961746042120466151269870191329130601037973732884367419595306927000964124139936050651567736798103564373934554593242604787984412940438220232881367029141987921677532704712975447216327791138037246301924014063647973573410211958779740457936566547704326334109070040701650508736719098031921866230433627196969718506892148844582718499944742262682330322582184667224784684353350053963733029509731519576928530216244442701995570643727144804357603838811896401884813151386686042161281164730081639535738087742404924388319006427287417322447321896420503407941521384409437140011296836099010220487113153332379347399904594917038517822132172519441505914782395928200278174953629744626091131223849360460446625149528489871837735296763358051895810586160579570663894419614478029294479667923969697929134052292428455019129477384332423825305318820741691660822165357729949912084882808850002688926293090146468315340844121497126208915964035198210696642862015915284539068012229274636140154290841253234661049328293076022011750794388543400476063285947211027687025312601416146990199915682598433341789934720482807196586268967593748117416652886978632426147123592666326118670708877814749805065980779662047605743578423846085834742714349725240060705810557038023103732337963461365917628317168244895547812733988067951023964554181647735757160373441461186558799748281827140645597035811518889490759703574073722828309061332295373997919101483653845639891166376316507101184036981140086128965527028181875715717771821194456640856430734631374966805649982583573585018507989701923589978346672675286125538084197877284784548224433721921751334720658980183303765688202135036191684338771686043501859505979333925130215331032400761841234307929578885053400191530968696039701563987113338394339514534017627437548331329563739692713101625805754527771598925250618466811406719109208517291589119712887023423411938739747950008908045262349441540298046418218369323603463790111809697861755608352321841738254865326634990844992051530841048617634466938800836370437489817614987798017672344339458610701514312467227929977069548560346373477706355787065475937740698508305375921738078098296723670928310059678962009661992084678588600892960296851124099320408781216986850161716221338405019943833273489151432130577369683756329123858878284515112266353396188951136208746871207833204873667855158984710440218979245105252006213235990879214163187147916553199083540041832196732466391744150715040014513529361380704540886527875332596105917881498845188197805220943377770159164411220973580998703211267543630096051471955954231459745893050048067376189347766812590093343522487072915509328569681112362193175149661878572281420721004958906639923819182499903970334428154410907647189927513636953711072991317385710278282537878813523067586086983847607423815055957890453973200105731556932173729118070957622877941046045998354522751469693034183715791098193931159246583816927156860506966600582306222371811562130965119242561366167758930430003662917355191672925830536284800393735206470943965502254215967010668454801997288032775483089204333801176732410591955291576191204514062035836433484920873223499630571015833255966571843245997906199398943057399625403907628656468738228273279021625753364562420986262225604872966590908064796437476414582663936915009838324550892353761779243952447451312759701384286314392476541716006453779475251567853850468663318270756997458987836818988378425120039709786616580847974439500086200079104864619740448728421808058986979629187076856824215326289960657226034620414517456283058720187990736882860882860723579029211475073490691217100866594227797254739069472500910255778221597588871707913832793871230146847361655620178646880024000475645331828187854380584187128822950956707210187676023272833556754740877146883045205261001556723962180618520986982482035171207380029355090793341165580446138499924037469819249758693672722689918947598693659066501138709784417922791573832961964497115120289585166391558169578756281902783741059972913919215319492876476397094218289183876724780520123918012913527607111284398085955202583774727124254102277510576573278499018470046115296837985123074369132487810800008955787867667951221844652924093538707505354120966909717925083473015204840624444893884550407806502233864954452768816809286544902704027770127871432762450896731255136125723966703233373345996906251146279874357014506201525998552496489159149517274110238073862110062730809314126053307950139585251174257335065656480531278927289633848921601095593445982886196839376961603974096834919910113547371592892941457855681135621481323776701902442121555947460452874016645214764335089290213714848290234727813088210065933631835135481655804175305414783864046167847780662452514120080394201909768396813235473685698012583613067909222433464225091160393328260112441355701616303080432473998957781134590883820370057057043223291971466014003306032488162102577740050492177658983595008580068437570183873259949940768649985532062532769281638834687987070280592482350789843034058934722288899447970175853494755119026057119705897163679932415766931075870972256061554686015918557178889179563897923885773756351839824056621585535164816889957112910442255479766463126003837037495605608744713156320957862297721695658549080897365616926041899280731865785491002867073249598438832951901475332226335614968237571722443453575358659911859655960747078172607400261586639443048262527750824712659630284066549712820527004262772937690574071272276368042801671153207124435496823740506958258642871539484971895949239098335990442853979938831997405079304271611775982077040243237091563919587708875837999327965717187487567192764587534181434897965567298674466193360733422028937199282484432524511011697888334858714466759429676420704101053893017775813326928051704117045795698287638640196600922757767036561223601382342093842305054767792500956319736666394554961946816106179488155644082684657012086202683680904098096748448019915565199767013091079701196332473050327435076957528605095921107177126876240743896306094401307091775522508275329105782384827332122973393270896584917287969635996749802755801950792754450576359019095097978639108376122878987418025527737487226775245900143597620833264870013742774714066958827229947828212414266489625391478333136992574474494370554108143889890798144982233063309060107483142590401103773825107847530850821404622989352713948067427051150005181820455230174706828542198120997497758986406296341792342124438531687195655144105792465307973055468760559402499316546795059694441392778747139210782979482228985249734218515105983180444696305242623863126851586555770189419194047527775825828660559553589519926194421527311590047971554644528131501900681040944312710471412901335884577349234464809257958385504474354194911712714045437284903452246916294259572323985007154593602060225513811067762254552768822283661046504828582290985449550849823872740764595773403642271403068779014600673604479059648718547921495652902687022237126354106580935293160091230673567330460494321485452768425615820382735237986692012300804408591947197223787274773350113279588448600272684067372570096419220183362418760104954004241769242909513621037239795671066635091528545588484502412658335362327938838764905385030510994468550653736595795649062861876525320742212515023943991931327334507711922536122376513505916002392470234130543413494011559248844130617766650352310770357418785933058495052505953609762718506303193913818116101798492250525898990640275400807392733097435331970482935861001339229614545193471910262635561994369678360689058523157162355827743685703443451920840082352102338318925390882822265452058719891660046402495304158903893874176572910219747961370050762840549942605878177803081014914762643053600091056209647975647527060312159988885936616237841417912012315770313884097780274514199690946149976905001797687973112114815689968048084529587352321390493694808479693478170705233555204771274296216154962812211311529631174491259879156661803945761500587073806180739197484684985300003326263221991388234915739598852991136669059322322843531611542446304363269145878510655435472179295978242352939156009212949223784321175310909107909298012607596312633124802369228798846154629482353229806935222703402719766780118391925542651628636143052730403106324869975148761729122650220595931524453786896994319789609856253678401494823668425220425645520432318612865647087449957140723718474365192983858130557202680681716137046255817030724180550221204995073435282119659052647323114814478332721396871473677269484312091014779083070290903138290303629963158240712948684969574563822047552388486728058574224331139810567783746366139927175915982133491851571755231926379226354622907758624984145024709805547118802556168655179932090459444276301195316505791817326582677400878230433499306593763564718223270220035695347944787854806632351218690967228638732388749800230403415769263845441396292954517048530819964892941413653841853728642147147808237988667488896369510009441650696572670744413098079094833178521560541915985483102821088179187922251757085252958661137803740316938616363258313305897254422831490735500399521302197018413990756193082137199335378958582315265315281105435038646678909775150985735645506259849785789767744526465503740669529333987705442743405384634527285466429538984102766269779322400140713102813688945715890333613168409517525527503472732159087595317877644875047747016983272910708329331342513690858473448366161566632109592629713090689060210084102322122236963333253707494259379769494693803979079806190024002410797102819022971703587642712808857955902251994718116402474978974882860543934423862743936545265515280822614906467399504991667171912373015380827227556521278608879298455512432252944337364697978715361119054041161908126652081967617816822242820152538377919837514587114604054929526324298944320545730974346772753445924867386332486778639333408376716436405947869911396726271773310494401453633118723164270143012813040794853516122608000007590343568223451991700629374685437182182962320120419635743827209594651682014653439641370571643571067140525803489280305883316557417624909662203026269805780782948045351652813051071401618635574907513501104573225089938766844827210545659497142054646850147282103924327123511182883185652014344972710291158040252080995792385432502462974513753961846365583816448201225411783949504814942425502819420258128287504266741549547431558892007099290901962664195643821625985099761774182275966857315193290821702639646975764989835495558858728809403284115511213089978928198228727424219159544297094681571825533442708434103129127688299128556734436648127131383714099054094365508914420591015641609625419651874437766515465602587717905402203697827273135260040039141925070913910887011254825643142264970626049847600917165182219261510744950531015016406377728896699755209171080067800220780273448925915468364134125424211516726915649174774709406251703272641227819694252633216857189962731466024593795244566784303941877668993209367123203789755034490184780792078261505301779335341166570228539922013735379660773428294037232645371277900996622453481257007933402502640453348275613920596797655211138402993980539742550684033126899841341546484276020354940840175782736004179463580326487378256879019775122259717613593068986345507441735517464889080439487818801588933220374426777868383976206386467047234078674391802065958052819068661800308151205392653818738896098709079022077950667752915091957906406081884911112330821008472955703974379536429592217757086282753035190904211679460750445383634726676560409752694779655938823790408626487599740536870641667392313444143443127186782527226479298652409551088983973704117962721278448126841359894815812043923667696362226067987306615704997998887831712689980159792877052578351645570456364244654019879014881547823255024402795912676840108694551653435812100321584114618773002531954466442700459085882728250190039353008133814538435447817589337293917245092545675437882031608237704704204970096680991403172499751465805089865333849306255211068835258902812304183905721665673969958947119350857196740765537901533264944415743443737866999076620096568189094709111763346080698276801186778801617916240036456959972420629234304267544035009508762414928133145466315395723541176113405942787109144510088330761087795108673951595131368046932197189749461527762748992906851102811995045827356974739623472957930249948954981776675724822078761925283438304468876994768410315020198866439281767584005266290286870449639339683085904234346029347155406777818377942403242702378463374699828845944789990475052094908248296812492379983494568025507104207998246981584464953089765418509867475220065238249662811273868342769639098771201616708641597235187390064563145405928771274516056239502566396214640375512653266892094960578160751807960246199937617312305036015495420313371697054284298679837266320958775288411679966812043914748106059701908094455538665078581289969253248162618030331544086341961717704367295300357271463061220298090831131955636863954758024769666722588115592014461690315335009749048170204255267345531381642876057435466219418364105687059261747454658252854686835161453530173909134760392822021124878810367932908141600391243205211863139492613665183305317289805218863210983744694723863263294936568297835473028376473745215980998732425085255859341553856886635506668788436353245676122829828022073147001404182892602054013971544839745877311561381305096609685980880686312495516384504384842846302367060139916104660669792894636068164904243518406560297075768699200455587077067116383344194730850112553490868312089258319730640303501674723657072281854420717435803131021291742616906046605322489920273722235657061269080416495810408514981498470238636385845749773748211136025583777807441369615278170315669744105085546746724836525553040050805115578920244243278497663723325875114348796456546546432066132336214591342065586467659747708331939931244914889098646500752017362835547640964794719634880401853306973554105408385300062138005724343701030732712073506981308477575007868886911820483001950021540892228216570742951599170735934337563128299579999544747030249891944472606659620298281681809504192561200483031302872740002809294519238509147194028830407566622507067528776405371341396093705918727079230154989097325980681809787090797532789298338979960540849967491594827564045146191043670019852939271934661181234326851320247659582133764081596876195712453715662398986381563268001198027111574540911730148665002856656497223745932608986431476355069656680581976535920586118924814401814781556941751780216846396940929279651366034994440242655931202030880442467512076220224193393176851590814857423647025692193156632592472473262832281591836991650477951688172698956212218343286454141039782287639793275095260028351708991861822845325443296347176979596340426521308949323160398588729745643323484722009706503579022323866344373276350886599086769687220775221437925482697756800512264382196730285207045518497078001108808268475123830834220105246077944342443589779101384718873463759591752842759651674236316777547807491021753850075460195348660901455122300817125744397269413326103324029843630075318690274352447404312108138578805635995930978335784059877508258497965538476017880938898286936760994603575311181166159213853827046702154033665163594329486368046409139358227996773108925935060711485035502673177024374407545399632641669557361871528046601159392739906510749440013445081142999349342450741472899548113881618173266106250743834509342379032895257231541668889081164265669032935937089680302281678976388924009302958561943837305815791382414541807174886513796130852147760863308436666456060831335582086492157859181573347483000091682491226541388372285112020674535238721200592107460011810087874244427389049890439403742197697833031857720658491026790549037381223162336141026057931822500687740145564203002958393222373366735115568553937206791089736751807337603984266181163967936854779711521316297610056502164787707636804804412743092787984449789523086938260459156451959794528935662136149908413857323749422578580334095824095203655966217030297880979848217171246005694721435617434792223664742221181033833825591606659604253112182738402687614793433226885178744183953476468261232416582410003702552599840872090896699867253525355350550022179184511805803799005447867732691648405340931412785087341763223807742909433323046542825326214435103569958632661001177157417285646655465523472835098026525574842481729575837586709525762052787180545837522064921386592062133041782358958507931668912129327639907571581744651866746430086344448535770784646667691453633332440241642768964974407497062320593459047654916019269504329225021588065413203434080897965900356602361786591059824478452083901007833251067254852739499144971014647055328111406904406558382517591808093199464795022140139769054030849182607803199300037065777058547851557776915193580034759935935438948353366505350666013489890773315380964148716762248984592628571465242507074714904243070677774986695947994885762590911466648765755297219097330817784223570096735582738067796387808965265401268848419764745053023422840707127161603683276777753331433521330570822953394079972508525428440667731642365547069790760088080697128107963094390784313174270676372471910229702364567565556361858268291749456502079201773016752253033832059909246142412813040379797224509430801094105128738893713417188937613349990135384434117093432448621641349773479453956547249916344123160908948182469803371056378498367350342427979139522550230056850348319285347975141873495152978615118363480366673139829370633060548986188614134755275885182225387568939377128856942986422583181097080026866147714673562248396430797921492146204173460330666970996123501631680257376793372970749432448783710913308692498146823653162161306779047520461058006683583316819043380625326292305378356259656660017353124666090221385864136407181305127826114745978859671392145506254892951684396018824690049175047240342723945848001337725182071060587086836192003442697517521239987633831866654106548567486524256971619310441982578142585181787280554023948450037334890439687030524288006715461599911305363476806027981365551847751865343710873953690363828815546764637010051404835148276546011422966080806406176889118291928776303657757205749762949355477488751252682605795995769795248330166162216099883300399752271103860305451968966402957226028205642898007656193823654846418133484762664737997264283617008987841756071224854756702172744163716423927235946489183485239040876280249371182249161240085652122485683653321032703663398517129261951197994679364926522082284986355857840072249435373798371259855926977612655815687892207049673367409697234092470703852211505378540832529746888365508937256267796033297967938395997131314182075211950852338815884544101524685934287555038999212973608225405349209487616952424066615751641133419618237964908879716589291189784627861030715492809129005025884286387705245649799863032961183687185951349633483899081377730261155876336387374890857341452019200534293718024453761615779408836227846414430599816507895543068642149553354248608074034841773411242270677330348051876695239603324009066674243628519266546943469773037640337883397920060178385649829821782872943185458210044270235935532058629506247553228021553221506758345657002784415845947082399115069349166732766276029119792492924993189957334982087296197857579815146058970338215844496121091069317477732430244223998849130258700433109075367489376951245434786781014103797700777228536511453662466286577622556081409679812734674333310847425490644567426355114278005232686826006991249812843113577698152131853407600991365986923441258735970363963923340628257053027438905558194286066967652833420603769462765086443644763514137229576756156335041002018201839348214467665109301052040241502476829798670380644012520626754289096443917140654544674508419915011458711152096492117351763739445837070491083764375036492086286261793803734302595689308399285169446208404566409341929037829731948529013475167678654559696024737924345483815622054877926895389988829555488021765151369777204255583614867644745392508282804839411702352078741191146701836882842958429489820074796063844566438920386156167984779544476809176722922305316298236397260457549128590692162364338217306098593358826855151476746240422624015258251698298251273038233623040106564946280489661168971739921980463020120925441383719561255480780053537791689887958157452638352734131155847583218013865193324249559788144713071202814996891346126219492890604148877660405559089713796237418724124875375973244662640127560630420375634941504702071210331806439941492785958006771339303218056293137098671823768594984275719820137127633436516998379132495778976381359349074526623730264280480469812121109423737369576435696613672258530444534340682307005178441760023812480783227030954107233777408368493180327409874962605208258852627262352313186989038252383131591808715252436882253827889522657962161884462412490856836470219037083008064600206573766608702824598488010838096411503159313939644715825074386290347079785428882886709078131244570578460798175250430476810725502623281536054340361569814081042333447367614225348136171989269689493485772263905866781499852560679444384188247187916168005258672398507912083861830406304246886472238307053399760560794511236901790985506309587839384386054939129449349475377929706799720176739092371242008369286849423768869130111357150886408924666907233021569470295686901320593360922218612317698133103015305157942502442018763687544198409857463584154537247266310013343307918905170505371485730076052847959212942254760799857847282340858198995474055565630231704344716107365614962371604154466258561309473218240589594809156085158251860506150417243281444928781254303347421758914808325555955450556437064243102116205240448671297348665543574258277238214604459131308727809104401118424146114900197104176528747743389233260983123435618881150389299014395363250988009763784156197138813643320604980385635570953808109108426204218145491891150457347773771675532543683660846127061612037796461420392070916898012058355925235144515721093456970012629437332278508768940516243952182527581723663829823741271661361976253667279465097305843173442617837369964998178320806495583456114419749875854746567137538035073656937250969451527046819293419779317446294738445234916474225422683118253467852075081463257619973911593167885553534767494145753788020654775889662216368401596049402859732322672771897369221813586485135691579183589596502495339066802192541694790130221584107172830899254346762186264756589646572096191871861574341702915544172122670331873910685910511991906513738234560229486869532281199052023712182679415652846757513216909290216154219274386945745437008284619009739110242245746642155277929348220425795192723146352569519985535084038612528599725433367202220810395884078534302381131701057138727916154254439616171112607545043931349351271901584323533645002576237627758284395146801865225951370664478863403577808813298121213638895413675923192499819396848664626948866829943020575059341369150361995025333712749826188209787435363182532445610453229884531157169226485517681179818368166456427724735348931347994160642999320184540252804366000447374878449218100821158931315016417030597255776474868103993786455542491677999479430144156515596010486772086621969087093076701523582434017314978732883312409570624477886175977032375991308122792896755047416857237817584555178512691961309717979975138477645702278736385387592945454191634674967919737450594656610875698334690226835623521266710981390043858727652575511475215031095381184580940321147464036087105825229337061231372790163977940073706401989829145055371187154609175953715758481825455705729334698541060656563173201428218875438933556423681338097474581855954113731126963292715873282616995491392198869142501922554940063271038130355256354499780484777430326396320295276941079246854277033733330582277094148677169561336940180275525254075544200915552920129394399682693244369150258776753231301841985277359801066629558807611005297727495540738063832194481143411937448698743997974357731339285925997388375208698716999628748648265124602552046032793576034546052148596298967926226354574613074279460626828888472725409004150556879388991417335186183903248331883973996076003665166919577187257168734719560943317944509254230549302734631546114236579068157430108077645539085500741512202151974713126899939588607705667873823236234540371252605528071385268061371516446000709609834743407382814206421667825392022614550342224797175914040719844489993095919076450211529610754514814125193248446155359874619586669010818861444494557167178944194277981523866544840747202337325050134788427387885451752685058926529069299004745115057111462908105633154230451205676904219709067539081682645631374408897557746848990066137730875825351137410989516520585350181837945798266837994956318706730014130940313375019000516763116771881341693484919340588420864132730134803449784124241390834170885928121553834025884293541831350453089460496150405108635947046349049610964920703838053161142297107795904395896637631378556114461052876343607640486129943876000153715182527113377012198224759418817277525419064264566521967300917045424208963686628341498253148437287581653744275843211032647945239076558711944095042303038286832262726435401136386405566511525231064260779750089979048071082925049449292460628371150638683397471536317513337334892544867261327092030892460603647151855703613494916474519534187017051846826253058757791411777128870516949751106994495765512322067197065529585906917243154010875041428691563941293349517061698305421654883330056460784635224927045347611512437805855679766638036851508992488633726368587300435699477205044880415154617304456008348068017343954607009616998465531005431767582490013717536698969929261523898222874574953570842349623237232935713682844622936357790258480240860905955588798723325944304480328711382772403830322655088421478252861593115027997058278978515259104704779577979677905906692319140285201108271463929268341617052086445257439998445439975024221833183111946829853254667360759595416301748969018550021540436367202857776466241321009158828396556255473991922278705584779212280122384104105986263794457131823400005282204997569871644948682932148475114451831976861566273507711824333864341431044509667475230576099201340642381126795034618477977625072328126041444040548656342597768842218409416391981164559352836956540202630088067795938854469026642307321930862672486139379937024458134616024404698023850585216973549275828934491143674934963575683607904629738344845880652559211563035067419916435121199608731841379153646664314872502593084549571450068116224624728402817521512717574136498960755055292379229607382294564034543364672501431790647516641134329221993975036406799348810915441623416691415992158909408304180858737368804139042129413704612725157661812223446937841939890070652046875391054993967530355448590889330459557859826945920158916621646274620350937485033228220323483594170303687795640442124043729503330032701786161314495144370507961208373232110316514468814528403435733918856422026471577085902615684441875854799932583516120804603941284273599502214550722634146633387875241247316197518284559600620551048763383410518144720303749502391983204446182839036472383542110916065809974708459285220499530711143907673302127453488141926271879644441684694128776009605182598704155086556432127945873981913330352389568694845032104349496713898490830344196252179277082064448329749972103222662718197248850005724249202079944503125544004478336531699237927763823213527652832276187364005589583193812751615002528320940759235961637394404429243011232530940060191779242328418126827264179820187454574652028922366682007130413450038994266498617831294835099139794013394231587628901585753761502221932408112238056904883655075905886688027452475937683778042732114921753612618744909068834512744773222082574886717929122439951944100985869550534604289285857756837428318326382454458935697224189716308044440766674935821340669801540029974213330438616372055802496150443355442541623741902526803985897048194863449846606189886696303077454230344696984470284604479794887812713526736374419065904644886153051163172723638490948222257652156437303384347256791602052553961560841896012051389893628912923796293490680564975287774445150459572881461288394534772353821979488464543192232727898556556187542997893325499855128868667353884378397411414807147544952028365250894495126777211273901153881169123639952503052041799065424975070541910390344071519889511797972040701984592126876353537087751551706468071958758358624000190816428124458345074759795887679989105698900803196175049057173531200835400116527021908123596958189147094465099737529162123158301925081901226058024327376263517156542639459278001797588330427419376198819365636313195413454825590515442885711029582808499758617556635418318496152520131832077931618610570706265340328157640976451411923863264963023415063860339086069126183172124961057635764494344165458386391645849086293066635306392628818940043037372277729937807986198466176803988686618572994397562002465340508902838405177328037301281039221413669206525839535263144981381700934176404951293654500367720070212787633409245318347489001814852229746057667098170726014797505039220347246878843612158924370879463712002676343157720933555871455351254678573627049873258490028012283045808486918196255135336510607723014311605543602434979163512240330891451598403178114794391610378715121700744639131821392698971951484717006503243560211557163111875055858262547102296952132283836409140765149158339711509417888882159869959389821596928358282800080452499312704433417188196879647168979492967644914583278071360446553541556525891398986448992218093688729524318675369628716611408320268374283376136592016537617207890559354051087504043620760010531081448932125668901513645942459926192442203859204678753885810171769393771658493870950140099763343847951524692407873426477165622361129064727239539337029561223958343579342581148894514209641048784951647564578480197993195936520337391017181795734367603456142173602692716572237016007599021613786351921407357118195244281902046190700565185437190089498436355963489490177065899369019797425488839203869915484760780167418943335145642821566949511326564956665574571103533718173580276443730242119789448459214998858533437440755884595722390118305604171978538565155108312067830465819938520409339596767486113582807145307992017990790600705630935078332658853438727355507623146652874431319961142120609138784085473236229996830601763120679669006524791312095304458596037592425955602415210366366055282481963191281573760916922936495386680864365800928031072231334546123540372615375871235483763065998827682162398706278361332035499957639649872410404134172333238527825818763036208326425174855916592294796353271822145860130070025493141798984557133843454412781980112455015568166913169814535442859479745896695687391883260780579448672317900698798795540325946967583785420497470162727681174587242032873354641327864283671611954449346642435482929344967982218457353833938975340149244992322358517405745015614851846181530998501451825227755997640738757709814370725718696741645062069548107867054910217049462271302708180622527819260048190459718918454775234583625534110410117804903243899332517501961419653274784232544517392775389169619577369648267465586901260286026401030362463858112861320882218928072730926065258813232006828696020954143027408707083655770182569355633953166134829901584599618750466439383303592340728018475003310531235882965053757245379005581747628538739664286841045741046223379823118669080379722559245989424431317657563944145572889138509500256235401191074727802406050746113602536364452117055690578162247585869444174877232272583749884328671279559373703697505887924531829942671187459533460718526260080558073774452758036623221006753648282027707361992336745098780529439019193002999792845134589404658771002095584799316659505587427245295594667532945492534689033359905916239784118729902420273707051563252851269307968757356012266524636537348391835774096394638508439092288161576457875353302455248372250671576124870398236459264600509206706924685653062963790650170293699149223345436851369770327542206524032250033607275203864802547934115448252981107515580862818725048512686541515709620260392228559359215164199113008449752825838549763133488482623405451167926985950811009893507993840521179061503739261258610555157160526521181042361821277780730522280769532373783933508521095441383990623050575840131526972829082010755195925298135517367951813910198509376669354672220108260780380575855892399268038903650109400775008987416587200988893128436870554365094881668514279633609291212338143933586390930567729721942903784820306413000973660018091260138461726149627228964678874562227444507478621398070564165320282903838093801641894196019280520124440784417313065949328246263371186107914088880630433052117747117137732819681414734595978766754787362012801515103880759051962535901343692869023193061034928739219996671941812015829946291126081851378657980726291285069013524635897605801906072360797893280582693218184132479239469332895109937815133908760638905183550173218850383692023241866180612057464545556471850348983812703718333073872624218943306612061559809100651265348200066302917035952244581795688852985947445029622287344179317447803199513331030298806000852962332711670791261160132266557938372898846348643654481437541401212471776339045140494658802332125920452108565441294054561564048460334415093460718537149899232719317090797992438388438888565013073556020089634827776183779153245559350795435451866523989312346363014310186594567145065250826541942384162756318502039791352661607006248265493851113470061199730327113485402473153312023623866359489018265749241062833771388251092733856958657289372147153905259471136029139216649844602071559740599045186124609089472053513302146410189770348765813333212698743625683289784727344542014223841986189889127335808437869814887899975774851195040047743939279730209299697952970409165874231258798945911973822722788713617946463763898091349367710972222558505521228239099606255212973167194336691111430064724685047174257625634184618679261939655814720015555006507950351244727013887386191531681095796317355281154111591436157902999909041770435276833446956715987912388783543339149847135627505023782771230442100459411087325892894206210730615940902319775176854753591704742238483234280333624418597117121554371563344671505596860910570158412028053876975723312852593589878317770470971442017798373655254492812493480261980854086448495844679013170742551231090553151317888819399044213867668435551751957897714320218106333635888835981248611186219619683548102607355028681546610745970459423040622009201658956277878435343534689974741609480154331366551426495496697199415642559568402469284410445227332424689583171386639037398129987312717392598794260842636398864590524281373656677492030292959168176612437175683137116879429704010752994081690328998570525543513613456809686482039285269609302344289601238328256094339341800819340697969268405497177153494127292936078572610014156437136713531131676001989164251305977931006481370835947526390660710153094859581869392092741635353957736793322218881039227304991489474122841916548220487680866709015478759092637888371202279407992048169151143369076014095351473747832335701655681648300349935901559566091733932711124996204764862242538320794564522870071787628998403592206635677500134099643999325197116752416416142313513694356445130564368135035091517776428895067087774603269328071753715627007807775727078920125630370228569798684367610579244815243388590703632189561242828240355729305948531020115222784063666544489228485622504672607945943364025872815279741420633453396551091492538158552788507949768494117674633169943061144966720137720441044702638952098162457800272308977705055972194384459752591148644491277940669730124002656895753075285277233471996697120979149373799701603690563206904698601673779200677886869005935233301814907121580130932510228127422957688871156251003597769412072643480119077301839071196001306035069723224371540842711268858223102571305518335314307395938331210778334681015203163153884276408533493384886441447329204624389479215087140739966720846733922226487230594052234024718364981985062543128711562500321482557226336284388578533306566975763536661620013177310855483685732544596380513256086907094872181733392466008111820977981802761421523885293404519431919712367344118433151951025077903140718731527159199058794996988292897390701142309401120090069593652235901638771811418562191179495682778694542150807717926527015456523141819886540372506549499878087897190462750647036610256332330412278490601348455254863312473059335909948993096335588128118050583470881346068797984948080750319512904679250691411093972206657355995222316966570102755251150449460715581855189563722114377725431724596682491469780137453870474504933593878277346363963338667337884021883843056390395006213399535192109263200072869022522147242426617979209425643616954389204417332886583537757451059752749774270793175359057578638559580245401220540965658297070829598403733152422854482889545317755811397395035338263652806002523561619639421365485758225887715831133782255331993127394364368970233808527864941654139981656541569834134780625341006858050093502724443175051375633701982808792114109645746448035628640156381669911743634923957972138777491195136220553013620353668492101304716767206635252349861432304819806943652819605907443811297832600484774050785340564469439717089898358828681877305818423726810151918726781988146910358005000966920514115320844889768870656940185306747341863625025367953012860936228514625266154342513107363445423972912283934533960418366813170715810804312280097755898711519719215149095639114490694301856606833532541160452835885173130681516711973988655181497080387333741768580270526451615025387907777928333066537897850177116656419079712624270066002272180398026277733301166898067306752198918198587230522794903733944755416873233186955888126589093279904781337124063755595259814548076104249476118331619640020446690488046612648093480221669467520379226710785250157394111802440941915536629070742508234155847357452190920026798105350819796891666429396144170682920787551726430194366930329516791170284369354114716327039268956250091647210481515158068405432016178168800202992529205079013944544665877092214017316676455965701857386872798118425092239818492123645602656551349150692767544181060650819421240721518962952094776063217209904293108178800595521599287061643481367578358105113283537914771788235248818097663459101617718848162633012273904014750428357321525996002481320324073161192738580979147542018706872051572170957097875203466169235232820607223074910677532800612471975085667385139969837725666118304762893195261043680407644606366918906220865093312933768587290881023289565021523210745067923025012075654363670268719002686490609180226291925632731480140064260129709475174701863412618463992335765422443211766244552022807930989338576550682612663206007648441955622189785665129548017769458887497414495638413169145493133454242625890416409727538353888532463755646174708879906789416815307862334168908301895799673708128729087488719305392553774521670794834548890934949927474636634627277175648671547658284914881248504716693028919488296989223847597718672951423358449318042772261818956481394607261247208810797457620299030509719440043823873241711587044094633482855737863253086374147508882184280950229180800258738030071054773342241461966021972093173071327447734956358981452897475660119472656837980627286218440177741975301046750629419340188036412392099163492093972509324227808975565326742646365527847665339338382443949868710373596460937462669087206733932616863347850821199588958449377423816993786298421154181194913774244133875777886227953866875449230244821376218102153988740192106725376141907538370108249676915502611276317222237961267028740168542028171837710123799087275589990524389849904609211946740146129578806012031908930478506296492658109779030201270871925840258003276698686136067674700772178138617686308224962410031523546492538774699729111850619202634874223216111580176700357500591282824694996701600568902010653537886873415984139093353721106645345502361904762250714387801089883629581201483158828501602924699482978232258224649035626529205131794326472820433867577266646721374669924027313399251493259012807296629831857073999355129137153731121821658724766309656277834884249940811978627827206855489532702099533950832383050159961862939352339549595318140568480667850229156326614778158369394723213946401950525215221489370772421277878547557176208739198327438608897710485868640979605340501511150158719894438284341623874212714803262323168433873976400232470374895267856544629410209184577884320849774590617537727468996134373493941905318987920777138832587472609058121239253616438575434529726818653387921441969992415150294893968047644968509982299406467225915990047907601810559811363387774352938437119171736403446682508807052892808374086509658100488532491151566079644211961242447461984659871455790171943881227632389269269635691849418671529649136829775081708951319784597317982028118153848424398035566885302859124780215993979909782943649872435721126973128384770084615964928847008469642625158303863335905898769919908462195291483684013528491138676436419511494934364353136091310340781730733275026405671420191175344054525245520769169127037122875746800799101772727292921054038308717082832580708217918916970234226719659498090020554593188930673239581010824015781204889608283232534816851693091970390014954352288512861557142043720652525731755255273143714641051671699290978029932043921696054199908931016782946286985199496666459669766736486729413140751790794571960544705952083162692927360537233141362812495679815114768176102331181487075048738263089676311245798304241925285587458344326631841274963873027880003404466909671539483794272276029864416468998024184543800318955013862122834770764753943870838562199581574888994397830309502334353188842379548816407355739286192929451810017637514641376323724960975112817467040200107690039709701884246895592294649821311702177559222824853382586734173210466839048386551960762507418720458339512899565814102627814456321294629292748179198170027468698356927969575838837404665333526004040497652035937508005364124391302625563852538810266276972812771496440759855911858445135198797251507821957780615762537597888466842172490918273664442605391858754219613216075969880669713005374621174655997976343067801638032291631540708695857362489230137771911923923833529898276543698335573750739706156202185800005508039911997290263651404279607361873911723472947091624852329027505176944187612456886715624719759575309040261278785295736053478859213937998585440175792167827501291254515856652865206864272013952310086475360441344684594355108401357632545832578599059500946782669792001433144611136136348638514413201018234278166896919516780987158235034534664015446691289406484177719820700638531436384468694917433223103755043991336183864430005985044926247632446141453774540517279417878800994680756586579595129546251174705465016953778900408223955439859642905721460028566458395320329177659932198548874565321820043953961488283220071679733798968394210032477499203169465826183644674684367017385638919168457625139031993809780683643318635431974293575349351643645205217755819919834421627836463554834949184325403901108455609711612868534999963616357850081990074221777497010221747951394237416657200736549436239351767757465075158151528819805810023121900279385571139851390887591062680927652006109883768432268259948196673219205497081613531194375784075468884742500450807901865007118625279925022921842649548499881990050936134981710342745543986034565230973583687528534531556157793997699944035131650652937229593416406358934516256506818668524991115629387041949687451946128845945841877068972795844316235090745197271774551884611534375922522100878812933081070025666647093249789737379763273435681873885394992659199700094068347880350477076454372994171451146135758111987470205604553896465774094506074683832335020538967384261285751471731353261675280272024384846663113791600588639619052192626995192449402205262908767218456903484331987551519658270573829751470235989506736820036557261079540239871489356797552654286200806978950858343355231513603310934110326300545486888522390150008490372553564261707424525970285598829282658590629716918958967632006588102345975930062122740276689688073085757456725377416494913759247956860729795569841780516329363489296825953386236342736300277396668673326364812101479427596644396662517466790322413084905094919929338775364615163798563812122935965942884953340219201393371355368722993526214855102535525042382730053406974728935436999839567679697521662875356009381693300071067761756466682542368203575011122140798565172177549324448184178759058485268986942270666303057972854119728808671580960918648276932258216495739422464152302086790642828793332743429320595348064330819857752226424391989919878351067246389081286549005822301475645728653572977620602552299202307838359727504978964810098066582780088334216793386022894659397782341398661375384722825549841039591386771205899682103960980202921699643817278178233061248582642312636215026612705118729692941381220230387165633279247025492536817613908366425141661956236018233468242839374972139480902432628783441779569904117552245201352968546483130520556250941354464782044749109126720026130015449069071619178520085307221487547941506668717417480965515646556643756133676301765870692819043542764460917418058807814148501005842020572146880618562455861538240978899428966421143334187791015995261153271068786716680016763709016114787994869973422986792673440361266129562634766180599189944700140508413226853357145523164929122650339490664674929669981347492414586601283761610341899399367005007154001401664205940340651825858340099360524373357442877575210190322464363209102276777504876976784106427803746416191513798144676617930700661804591448976980029629905822703967918950159984404037660299073599923623860973413879383668673073932536069981774976854939896195366060962074007185085924559430048561119626109902305098714006507512804523088862794722766821422020991858615381662073329596742849152429246502278508165576349534359481388259336275310914498651030475357243353814861960853945736574664894132696579608593520033923328506866951610208033885022984382050965754010668034794290078302055677978403108567745995082248066336322694802062121640732299443200493673851147242220102687418830646729880734914715614904834528341214146398065637138639211561408350414282380581176242900362843355357784016256258695448263172476538912228853332089446932186296217073543190754981709508122926290679197025848083534776179458265769853317911667638284601033543447286368008983745383798845992903824195008427015790706474164099250804765433052071641366888719076382897774222261832876665641268342902285671044283771313797641506342468749750711150917599884368545384427323541888228001471733597697860796654650394455749603832921962456253068453966398323974842188353232504185324601824224904471246247092024815318052118083349274712211494736682487592860033347663557035703213332319086675626037737389192597675437123748641356632560275223387362567755517384839272529538783117657061757652803906258529867551101712593032893591561612573405049335768583898182582873299656172330201715810005814013546065870826176663163740331395927492156518076606826117239993922708780887424421939663239791994840904095579522094833840514909446347067711491765222739969414026529428608012054273302382313026908740903100398231240203148053269176739988497427099119414781870189244660993429979074951463424177040593745419278309186660042877363847919093174944801817378370910566243023174671104928703482188486311308264225002019463509811577024393597303281705716333220833512225950025143380269938762119409623554951761405999424029311759907177241121085073351589717277706941960255209223619542809429000189818782869208175266285407264565286187338422031365577308311534127427824689189887138317688069028144808314333361213305186348222586752912488367659635195881467265456191871682358479467821836636022496607283315968839193091232985095872778771580205294829673197589502291677554131411786103317848283520839789661725687559029236746346381781015548435169531504821551927635919726727021371398653543296821757392647473446965347558902385211136107118937254202182083301828033509759323631714632977425475465293707393626097325720026920209705862467421327681818443793866674281710559453726882305764945542277967299581997413434945292327249997896237683542601391477305170698997770593846920117650873357131003946621242424220673316753519002068294327314030498456222974222588677179133462571894861894193055512583993311736291980694984634271559421207908530313890127947622840192471965875639474306947298838768940581242996226140579466253698875647167439160517659092295357098474982201467346864054967680905150011454480259641089618513794789741496682309178786334282050303694056213953862354282433483594242627012785890952150909060388528262575509986468252538103872595808077757290858865164399182579358003856354707266223521322066597168894807123648434305786526322442232236033290908348092969786117512381935322610505426826179366879195759039467272999742570055891778733734956835136100048285743140022414376197203047245396633378743954499086147595845320022807239338309903370022547323942029096879061414348221917346668697847390696450854255840033746517626577837903581138904524171654403721935010568350389912953540012982885197680743782629394852193530322562975034384384129010575274518398988069240906884501664621558257184545646568928034878544484427549225957297279576213263986234230078637678644197972922161915447972088507453571455075033654766994436567987335254982488395011624816882538166153638559570761086355046720855826293703889595304868291498005454576517707708177069121619568094349389875414436272634764635371761999078417948693625326657233576144348670806647725407970765567282372826895278628308782687746075590776381607860314765051785508846348282324324988740124769408730369171037264969283843586762881376426431609954058557210184284006787622851043928969137434627232292108933495564645877410862619950644595843385609393803942527959071584147129571707975428998257107257465112102112807104683834600470649441993774461823269088142942126260191397425380170894885099027759496244460298824963456596047826111410624275224604437382253967866851006536927873315247177495381817072273635881271907976501557893913100146354582321388920724637454641500437645645295866827474220399280063245779632425327922897389824968099805672838001287281239936473010825892025774352472858365657824105661607894131407298032260326090941962107537911934194212606770471877434000443468674807682996303881102339002258085996293342585250716473289009025990502959701638635798982716970808889289027881940834828208418038032029640230133389855763010073128441310634390854603897606726563638897220381755919287482567325779855092836166662204281747072856897078554430093717545820547752812508884239999615041031597615330253089945732422524946705346550119006474429686220869931655032376170443677776960629707772117198025998839081087715647783489360282857068326248247179490816492177751068681157083815512931710191845439995363157640305636498723423631449942433509546237885757478006752210369505615435932598344697431371902763205336334499244307715963607333813133786525579087274495067015234939942343786899984319674390893923474898902881995473338147417734760412728575114342338462355143179308361538902198752644767347252006547357176704256815485035035990602012615711262238010161130157026027020907212536172849596206780167037462094240299897797040453302570533297263035852459418496719819156629708794530662180065189516279132639093378301885918673006625500922937229396040527595748815683720141335678590556941088691200788654974285150328305119626780614292353174153949734448114632937513754606945023560489812311934752833025722543275761880666362583534497590272049907986551897608647132096742810563161544194945431424075124444625585542533931039445743957361623091552834422898206746004846831847263357947181869866470313828770789957277762090721534391188426568289666539130998832983226471431232871040520669514393061328024607226748796323589866457816891671169933254159104632053834190584786998897690140923997866293282909336516975075027263088611904707312963786410987912095190690182355688592754167979171044931230849785171679279998194404551403410638396607113905225378655550580988805080281144020831887599337896269656014224156832062359706243628672004075148141086782955908481417356377476392129933969962482946274193682396527840929402061574671363547616516782928945933035376306289689443475553206953745258731219569643546123359424364191862594956367550632745286656997274553438333322164156053504108006033999824333068045130250146518603359266511329056063904282365610254455262055502534506023766479822977915535711759784633429083529786891170022500356185358122744363818878555921502525821337368516307043725253771472697048295314750815022530569316402474205426776298027104669489810936178872755368539286350743643871442523985426390768948688856017027777734654010398383743498736859858037233960385517372275001274011676999523787413138914447520194121823190144563356699287783521834387755050960527319505046289047276641498720595982355705142505436489985373648219438959038046751218436548358778899767720026994960852798971642684312876358523891383916006168998033253133687459440089623969145322925707253806334981576412838008535412013945161275520865511154577426491231093982352292036392640542805174760686584048154654232231918019963397146148096983588778072492975649935833780929053565915961597925677972499148609942612958356576287519906917637342794510477044363424392401114101851709964360620070364599554311585966657260459496522722406879539566937242944194096072814081232771017645011924624919502909414749009685604881245692611498353282035497311288817976765038088744983638382580261671411725440243470435224204432565883090697740022167127490983641812390566273320918832097804475740222867022871400365360630939726070529254496035213775069745339381730033180957730830791780427729014039987048725949134230945102178366402458551800862227812481436243160766418524682246509137461385393605180861256868405406783324958187622445655252574273034681133344356800100230215802718632147297779821790980345904739424270249573845960651842155327751892984719528524258170346109401692578213652415824405874969178694976674792415102756809035315200952367977479857779783362359987489787719633751282180843405126395305796831793566471630499486830019753443306371031627704521843655295628104126283060084673789305557481395225212839447550001611536629213395783010788060197708886872742459109684217705963086690028505123355975499360996909257296443888399218415862183281685994695201505105624141138830934186197389073087018590732122066556253583333375769303224349426860982649564181215409235314165986387606214190556854267649383121543870247012780838786186119876048052094859976266603386892287539983903369388039543224740614708236710927615698308739694946375434373282636897611822103539467517202324628166388463063146066486207937189851549772293718210206594644424403697975088784187512952689789067249022060973896660046607491075257068350355550706335696073510196228258041096158725472122010075186387787506309602797448070107067377724524645633926056930827820559466160214966863740634333564861941338480415286309958666199673041723664777971706463485189082725603150443542477968907434254820071305169278161023197578929876271142493533122797809394564187472539377038515951039652157831687037937151240407742428192763663881153246227770793514417483042710855009919955451273058637270867313186565914866308038093053511153004318549548351930613136431597659505747290031819842399542535065794954324254868945059635253044871729873901518578820929081072816577279126203551527200863275618288258006402274754934209717992081641680637283319820608985206969948989709605401668958152973816512264122993488260556863589500478094722103985599147322704631461107604382302100657525884328480840791368940551280327799876718540986662411160421873154878499754990350565126117804361880052122852913502026833939150859157815493561752281119181404412313221813440265963401060656795821617743782811611118017287640621101131132903903775515973164474319306668859240375480225758619572272920074619013072118817778937865562025591680043485586726814851243440836955018286709390007766808219997728558435435816148138639147756728454134068824409347863544671042929035522157790437557182131395080531343272765301395225493629064747745982802007498539475830904457254196212582519746881154542459123819663844695940398649087566587690744060282915948989303176664083577096106903860932101539799859773774026401328821687997453552524938075171920272227123440523704272014107082752742920902540559191169075908688915791136270334955942888739599661817298362530389088181371677889991555545388704018061489031449348301301639476688015951563777302481945908072909604177117556973358538134644828163922144400282841943065436520341068342776504832809936306452675696366415296150078830733453048204347299290224602545811560122260282248910583937210684656228302086918734787038213520542342261810414022582806927047350191206373515235427218037611580962298268336451610855192339604119270086160797667600250503538588845508014736944172716289903764866470685503870629207854608167458654551490502075919081960175282011336558488814860541968885335739454036815133207975079428915182352281023592883255606088369110981913292306776635804856899753791869212479677872682270795912813667687473361586217484156068708996299374196175357045583718567495432589979664419024913580955211625795302233898110690732800319692988447706938831894501469133520432374993417341590021065406474436478364075539988583722920281379681338637401414488963514043710447984977069091829078468738199371471412006527782681739281731205364566216747338999599551569453391808640690609177434541881258481763004055419065908672350825780326660890530059120952840419224133398347757780505217003377570941569698211986893622008317188502993576327808893773705338243281987473577807929804609591253610261943790499555720090291687245081198353190778106168686689575147942467096983555639348936475955839046091969759826765270911660859993700445307073858904083362487442380551280740301791307978705340763945996126039213675336087797953163921700622469406354525463782974969833604733508749630051603109869825959752465523597346275954500610182490486523773291549491013989911713363345596045383711714535406842278986728273222709736081095523681792467707425743052945142315936763048766581934382565423485616455267868701752379788745515276320248946609449992399560108528470173824288241208208396234953429970687531567691820315973037741605208064619506690633624422321462063983186278846991198064972700291659450419331477211048128099352695157227644265355406143387716264334319019800841976026150475164590993775060228570817643525530618992193739109745648943940190263027894304142455760663204222545705181809743868959628704304402051530598337967385694126394256229582940911454025137368120252319966555578680843157736000401423367752966242411065663914684923036855010323842164927374678422019869181634132354672129005113214127540407211712592145785184376971096194064474900369641376606447334152901027529753408493819034596426139164409810478674898973760451934824936392726943922828860029026504641338497044346044998530397716476301657949655794505229174450516667792741120421020597584762485813412120207458927394946691581901638130270005140724342631768539918881445942952748765481481205774605307741833396188522685052911505375521774568931682708339071143702848919255022045512081724256087903495078388718520031843455924033245189387777489942926198685670885065480523311267143006722008011613758524660100674568690505962179123121439465949309249283303260755568853656169537661097193673267373606405810067107333265006140187299253924351565760590907771272740202725773906179416779955522352049891429998423175237528708950469289610285774405086111298399413021458682875535855379662453801631716880097201013204136905605082912006541769137881733866518682840434428227963485204638682064254599596159638687879649748049587401735208720167161253092417825755010307268581773658843458580000997832992089719801928374522360343441874027713369977577688015227245279381264854795991874105500104658364877225584458635476209232749676829457906476006182840380623776229383621826861604935648688817953084728031756048562493289525060805706818426083330011850854616802134416843161618062804830564128202338378314010320681603126115051807596544352526524560005692037346010326091081361969648171598655221036040186736613661245946268762546066624650696734627389406747192779987987681476274205885245827007130968783010446287766487099469213977591221450217685672982432555720641422044065781030629732648593374363378030327126150272277667814594415692893937549245289767514879712656598616414085039507319598471399685253035000055018063856776991336699163272338212074705351729486289539649475899163274399224281433123790495512096341460798629226073795175813122882644802253447116209185529964236507137113674258432013331426178772760112280071900793424239143229657594272336297656002978163485814118184834158062523137350216211202674050173136397026577773192007557205205183370028681814030130327669068289505274834530720738427303599244521480971514016993123080170896156066223387108430124762636647278436361102747834689209412738742195153387303239542936929416788226067237666765484109570046939760388594197429051822913563869002427114389603871343502121388054898571867128447433825473826526343372741119129018117849529439766905670368597017798241028204849347090981768203013583674638244665896618794462750652066747500945342147752109344938775097354088620723928406489323560836922342799138736611662017033108911663342810344775075422390128162329171736414945490215998184279783633360212214389458113950750856667192022926509043708995237794689922317394840235391555454194236584643760511847203439062133974300900231352739216790015367923720152841192049624186196738937270674201114837803599058601235011304065564410214398277610662860297815222644383684412205347316637944784613635771136475766568676699812025964442320515219001631732378462678295746381846866831828007642822450966479636808513246200328228664844378379532013451100434942932576213472164975990331379751725194877716813756175856938192408277413344458834326277782474017005023203113470014845344085494190699696766448571590899348977148336390114238597792666830485512598159081560965031695245471456398266449780277998440086221126708449511616895076721025004529330762641075421814985970244167772480797821176668877758905104360182775838236106438951347610378845622317060873567337143824035551718073031094599475593924507890864587565362900452661650610626332562380619677907254706945405876981497377134344128812084875272346738524400098197569431337130840580814348325502512435189029442627437247485134944843150453912835177057396447758986706861220174348944438793960375061136061488439443599219747847199068479388067140656849264699539357875613543856631483580535299696030995570536466777438063529187238106802598178701003910611490837890466866034732095822877924831675406987966927492263701078369847003683147939057966683979853731853035950400659627366822458348920587190560201653595521235123298629045076872307894609912582064013019719416812556853807971975121469250927227398065861171470204597698281989089414684701751526725066595577297374632298065365925020276320959946810605119831171176047332593449045435168087406873263254370065789444201603083916574053525831083150605720373557967831071103887655878553851550521320000250095520438892715013889336767381483112208907037493750380764268148980913794963071634800091037594281486932853495597079540144893880686809601796753628249767577230017818410572860826345787534832940478008238884519744308158813930230373181235456303196142071116712936811357165374928087352159725564369302786701000141244066364396410575082634184206542510816880525446671513472982404865959285100268208787300276170857212610061944042522844802645041505668491030970550862763264581242583915391924603778357436880450890098451506616088095530817454356484190250107457369821662788874026530707482875212684083181095681093674433645473929088931940365980675533904779002125342034988406504278580892607625524774640357838251630601766649638051137966039560812031414991441893577867618593081697611922977762117934950412357949422335001496828975755588471213937843516847613317921880282912185960103937619785650016945260474383265274051861551011614529451273356101353266234682228369096024403823044864102288636664737467904396421166715519671731352968577133467651425075828625126864606351073321803896290635671155634686887147136239761525439814743292331206014772289184069645398964200351878977780224430821300041458621946707118120929746105732842651031029232688509990199442738058544814851058594385793059476042214856520597325268579688432176540852884712550904339605877868958282574103294692856403105633626990282673802670744219839857606760126199875478890916733898563487449880694688730463341150093587841657267378990123340770416397471997331663602366687357752061927658870878753176628858030650997428833446023756641227355097715949988484374276744815506284060019222962904673198754672001667086449826016751755682150937862131745723400898686498557917118281507920359286008194225789077555120560366905760139589847616796369875412557010329971530708788655891897258993790035735107462068902177364924061111000495868285788386124342422458473855000092678632575469932240835153769342619832449757875336736184988989264229329781793813256747575977613551695533162614149827241124757884936975543761402242718714374238089050673853904639488808674968705701546025287802757294147801980540528363260476000142595527867243082332416501244785751063281107590638627260786246760757490048227705707097092067682794000528674835094919538691657518131611499313128136853512432311893961082121840741035828971271457774728939694387737776652724770319199357613779197143903177943468146146671502258430199481239235604798830627387552885504623033670093225324766345238361411469565281533249169000893777820108943658360391168841001934473388592207123105656232827241370710065872974651524313067537629701739777320028708505999810776494107037861022964646833809837567027169533317850756623171620642055771856769533376622348598071449796766963692309371513874821859553123816632787409499640799385793745196209683972866782628293720843685586248512360000474352317513542789535922643926894365103995896902657163483976948900600311770073221401079256994729744390452316264402132786994326535095724351670449895778194886006664818072519199538713519737359772466430701598339099733378637069924476317995231768641744477045756586938316117185171667253981169882513208087954353909162194154014602445616839662940897196518354815169993388854116666160316820727906760152839036523866814934135683256735145938049545824013619770206715956488606720791011741702164977157750179977932902001638117569312321442940579143500228010360937689167026808536353665701259387825729531499078668654892462584126234429461757878693875545716629570270215075863089857624658785603678647827216355577276186470342794195295508009425623233603559659535261459128166371764898009977015544922832472491193796958237196815656434737621793625096966364986400144557085315405655229955083962883044625919310680026162710667324307885298285067674139708125474048065096761809358675470878215852799842823735769200277162389375689717776679929064466216579648611102247078126008543253208152771053554665204800558299249329442601316530803019435170302525912688059758172048184324203294031502279322084214917095250743534273339663829159437189451029326679097861533332415154086533497632211681389348983767338602507517166581070613003905707977279544664476411471980902449709193327306739082368087347768056747864525074833144641847571046704744216863972427775114064884558565115010363053340101703496678366748402142870088562485543551795584489817162206417211790185338171671311079041307969627039735081687395793975993009122873488948829634306718466326618470437887933833910008977907429653532142237056747298078533499926219135434184420727798453931171801290631202857596476138199343082774614323850864869404173619246340217921082655802634540108358151427914309063728248400500271120368503639342105552837269226337855407634590139281796755765920118927717664826849246185238779664897171991482084963393337686373778752460742017871285409773449676532400829319454132278848187052901137185836855846715221542959898430024059014425403919691371609606883765281763324060873800485023197731434908626495627339347773478527037352753758808392974495761021525202227696251675627118739431855593936627952684915201957125854532903306880366794038683793251889012504304536916340922377900607099145361752309160094383595366877569535670408177912563295964812876955458204539442243190145943514578770613263152868304769842031954549433106830700777498731138382171238396847614521916649875207678536703706997725590732882903224836969689653699917811169065015518866259495129821009830659443060441143867220241672074909448041108895684385792743104263002808018409297025877083176728169083836732729405397058694046200184790533377108636120527158666406628184421957872495576654556673628921789167359649011313726118882559369584844256387522053076732613452699474616820774555410143183510313611152417746023053834166358487026247799321117184638406598679040897983812433072733693224525832501175304078719387548794250609576965471781901459744681207203604106017895692536434262872243332922171780774312259349001998219119411585562918307146253531607595346693522352131020407309122874450837643964179462724867697005521068033871103815346784644985369804431930819895072775978587418510655142067651075314635427371875148884998289690222297742762238370446960983683133821381712008115098609654635348399789722394270456931192624288758238810567996163740300530091021007198738896436851389571237241765204295308218530448902295406028434968243133540312346705012840405333705076853059038657499537145398451260685484744701501207936642511021003040852700562535846955361226125225058855954648751533360149513858225234085443650883694518469189823341470273872507574866017509482595606636647767033943219110514404097364253988973953308795970296687275733878248006502041780296013020028829504094864711073491031626520536387190409808203088867071599014161202783705093111076432978805756124604747920407104467708703762525401736572512514668336653665227761040501556699833503255078330770481481526059657645801899959602066317827836282818153199788414518212320061621877104942885182436676129926216040161160663956758833830687432004313436196320175676346143422824484027878213114115719217840884708754908793587935231868221592605224650478578799924411711443209375639636753872378850870311851401606921369513920865147250941310798518087631851850361396104280948914295324420731034412538002709387846675358112435012971648375709394062698692438596560962921817721937483798182699605469777318188406822570836230734357671541030188932976849070195746936109262747896529200081954642040136291524566299077689378565204925582422097332813960094768323474348187122321595925849425887184334510819990381481492490230022638763451895301584004200016370689788944887382352383822379178816160893679727926812723583952850108505686834966244173265441463145960245280439481033305470813716247657565298382334514365588951060475163641870954969120141018347366415339445213309505801288711595061424740194752369959582403116231475766125048026618276300160183796906439460400811030724824652364380393525947376222893284426865065054404340679338635044780239013033727556375092153025633590640150008793977838508716211537012229325211893171448880726459555435910332571834206372099961099608838941185662123615888618609520555986089880943115806105755579024788392652783625878623079675059386189419224363834151911143278385357457835581104982609326732209971272935164598184461545380840777086017233002644002192654365591672194029594804984329730947323302424901652069088500069317268191065341522902346534256642671473425188491138751277778373466701217547782241868862086667810062260664986552496984321677414616658731305564276791956857295549180418496869724315591557569237776247548073026552800624360218809920864654500091844192380958189135310399616775411865911777107232210691211369603891517960920191699519994938042443700085833376383778995739021820108019367001349069307703887593993840221143483420075301850476028429189180810206272058989823737011967980785211181306722998861038978317006738492566707215803891402040679745574067721573620268871090680857839997537335607408610342436128380677087779952840280189930820273746054301991944667119403963684545482321729888204296766312933863074304438722466541295271506815820735248190376702793415634420334883704264926819584746950992084030243062780218385442621367978270879325017134802609702141500308830906356878900088955775476468193276666744308269336768521460551356547365534938824366575067627021375096066519168136467037101268566699179339521271072493237218404834226538613400304176750108861770599488046261430185923826065617678904192034314578555444477245629911002390142302204536487923709001596683676157165394966175959182560296149932223460528343541592952383738032603548893540366008547912833723639662138357115561181593657062207701358611624589360351718576951943553529404898304535996375638427396608398413417412280152844156743087779028737669061534618468898107038728551037132848288303885195299688666040893742348665697184153172681010890786236698343000381428351547229912451795860155421744381589907528943282147814598808107657949469030532580727597544340158734249532038600781837172203178425588294283647834825530721425151805125540587662381908238199719843618399039973676577487278133916791305932256787253447832261703674090615183730669942551142691816495301584301208157609895584651494970090541159344249343499871490006677502330396178408129343547762002763617525600439560208402541372733653663614639328143108316397235552713493769639355430359786565765619409017015880131533921535662397912395288044708330401196696807542335634407798591043423771352099906913462868851187850814830888115502941948551756940791507091069608764090135392468500510581546534386714807982236118530477525476296471334945792779889698976356903119697218350105899771604412132062683257930959252820240515265460637534844757618033474965191083212695386854498622915464343200031027968991746938192001226466058970204322018419168148339004825110019019687035972636403067121263076042496595591971326118000034582167315467962586955061408866829250632341845840354263043824165597868360523002952044358680015919357019015650262229078194928607430228923499135569201834839501037889539021783900782849281845036290672166835700291025616603465039740446600643989978656633782042697189384763537434610678023492291737702904955705457514883262479058229192406350521072105993719495230041873718475722920942482839629988050750926622569667959728056476211251105932579092781807061487246938344066262747402707021194895294931715399495603003569889580011810409574513316168152701305814366555933514727696024383589036091943227714828134763636906771045420993243332612439323931503076824493855468468021640888598155345034485493193788228389673124170596907164425891328259712538701136652880329165370772505279055118474465486819687312579809529571894403241804723528161732170000902410458670690038243283586130145041334311515928956229071198473352710030087222305045654408992627778343120064448898950114339531556278335250528961992274177047159411821277967556203402614369244936137971375175874627856476239207471360976341039212515116191455330962279725133150871018803095014814178949410363385557046582814604146158941968999827359472607426077920403838479927830944032555134245281818591025018745699893158275719971977242783700940702452348751004080303476634815170518420703365065374916621646806648833076955157995601962976843966575391264541804876785249713756427645918465256556188687086026151819351080230009201857275013262626878406323762006810319685813692868713418373450104229250734595280589001533281818521490755721748652293211270451129003008511944131337171650676757162833243618918389847725204388856988568231069155311710779714393958933622447446970656368352534102336288683633212743833153427544779701484085938550229796203188347586201375881120253675839158054662691489623485891236756345817397096199649138693955187889798123565661363637274236052469259366363927665269639734281940242535683408405687745959758186301394883960394353875948763843634137639945963376063272930909668643509382205074151408771591557328948981439617494094495771897963547911167011780891556089237948732761539477909810404719043848636437846186699701555337737279444980338064599134618559349832135509390140348918352456797062903147915187620505740038890561042214905872265546155052067482426709072200749330558057039635068615788807076757131746964638882768693176879683301838880365116454796552703326574978052201616737721622620651904366910440599622556686789847760038146517181701401706990548166052242660328406840844383989841969818740204270749402398399883346082123814344300606725348053669842409342475419262130956833328576244510830566381067940252816932428690902475290179163421405907723307843074069128979501344607763745892654589736218777091192811018586276238904280897044766038976494313025053255505550943665863664353357539108120427577814957990828007836593104564430047642115127844260145765958107138958741214191370249026055834437657685695480711058938945407389510102834242294861706546165578929157154982762191785400046173688643140783914959650325160882076419755063082922959903988276600967516862377416605265713051323544584890654032140355734047261031498581017056663981882919416313718920725148586381058307795560294882192616430523070641225727136642070456868199503961024988236584489710348689467119924732065181567810252291905495958908480184332347682003469809253326523107815055476345833348101888153377729739489954258207448035581657037883137138376125104503606810496004427391573974769485619834502628241492383267050391425120968310607821663666665747026381146282306450274295377697607085721679140523850453087467607209395803973306961340565203587781905924626324411618993419888465790926066766111679909402879136305934414089048169617917218967272793599095289051993364948791227104700921715756606083278168519357943948521339798964709779120761708035810251510633765225747257345880006098779594018782070232985725035337697133071601752717122955962013093760925752378807061288803995891456797227665907700442603433498330774718021475246968722595044883757825282396609874331014144635759199116495135472244001034605921648978845773068701908649144616778826781147035364679316763630027123328973870122184430429142991091978459884899532562510677751634807301392686769902264676858488033529121133882490417152509841191937048373819762626909793399310211301807626515913156431542298195619227507016081787773830568392367442616823708342271930546539394412687303408767981835003704267892438696942776876416928065370221441843303209123681673585794934090875430783361513901711048300806618055027491600142817554150716044740693795013944171400155845772636005192766949526953372429764319087053022699588804481980130346444059286081375800915354321151933656831337822812077847979994077582125502358264651792231569074761137296960175231099521095222338658731899379247256851015058789372466373885305160600511016975284709387956382534327336186320589789638992556150493397322745733666929301948141531502405211299459412593205391184706657797080915171389652128033250951357563314120039693730263057655534520942078701370632818252951923959854275822984799031552486188172518605860032149294532379765859661025697156373816741977625611033701423835373794951376989640241218262710766851447585105516352981422535527541733431580330539919037434266739131510821168184202054448891602133625575249643269576214316074400047113675552878700995429193019188425820560457528283347728072595411952807723171617955802862745799502601658341457874748109571032488598690368429565909145449274264545413971119272317718300328589751213653823334483363279779554559225824340725478865856419662599458115003281960726225768771835921916222565492917170524600805582207200701469640683726861142997115997565173501872127590239264433477106921217240538976134331982515958006488775268028533636707993413129640705513900943850932473979993126275411998913738364683845529839690106922564453236977326390915420573910640228767162915480122664274975118833463649839803084075408926461514407182880688964510656941406574219879090930622028065563493939002572229946507319077374480006471644191856850383382639267207512778259322422770429195071332794404536636765218839070732471446700806712502367409747645093520773182327260291272945550246307942849947678558150808273138950948881362747832777058290302419413918720530358841593626304339483261488065268433346718323574444332852335488863257050950361510203893904981811310148850656750964971664109885421707451763788359166138732658563718243596633422064014473496030581090436784326309010399229417153405992723484535799518980555547984617146659184044795467459222893440280995315619948907531370308012876584171912197324813160253011516249433074697664644751166940182064059195715364885139500302521974415793075783336346617581716258150562339111902326838289354368686535506966479033101271866494501603572885268734834218948861986363539454108131071101519962237621787999389929697036363011429473598472417672735001198623447449290763490935788710269459693016139591778711663310979561826659991974439363020547084003662977184606983348746445386204201308665550869244124315654371170925529289482373174267791442926895140241227953640597223976659249143478822945320940860573683029283025473398515490755738841576997513784531008603621181334352377486542414708140619340021830097118516404228960017390524710666004014908968672726820622441557588568616875319756112257820558362189763691695253157693309066588643020606372019963915595145368084932140844886670873087666543943181201955126565337748567555670673648354027817300653290379030752752828928903851879255675946531011529509751537422368833732206282988020479639058040399883345435053450552917178964772731488535936672604880926617119978553546053891525862520792080773418085431332836766089910885738417056000965773554393580328212508448983193308904091352422997963703890944905940501011822297005794627056395395211046457587238977088310885680123581446431718417334598024598808711452166307520204586813508542233527596873385732089905069009824935999737618647863871286634088149822101351966607152121202758044999546799331691263366144012766743392424833374566704706341676284896731474493134947043194585275022136729786846796809660173338548878399128789534279264591920754541696589213731135461655795121887333958347136106686960423612158851206821985992374304388752296449188981222904771604674333946214165580680918600267024200315153463113797314945312231536134057501528794701943426080618997303711247774750867126803342550045284534675770995846469855296446686412792785412581722496077958017092715448959326866554778987537198855018750707640127283312626120854050779420833471057271538882102080326419596886980901725280661926481777992596619786336822018620995317604174436558717634416358763066906595576326913482326944445500676142279063695116259681503433339728732587849096380434059613490323117859208777738353713834543660047633409982660130007860318975900940682040960270782629583395948823121475759906636024896700740861346902489153991528779424746198566000399223269073881757677958422649269874831631459547460046350695663299389497200722923487945192870375522556929681423958429268552885582853573188779852013825714571549118589014742785467052983623065942882589931400599642244130233993952227705587712389394832236660309288618186320004979474130305812661987062687799708544201841305968483307582492750459399644222935568982831604371331517819460532734410547930465768078198282042773339067230970457956340965805120312519227249988515978313600419592007014624125676632319148312216557924747529479890018205023195919037593396803575505615851507145504276312747137838454623145293281312424532927779954600648894216014204021933361213587159842716162953378467538813221178997803766687901302540711466522943069035169829541061301537299928983560763650283401599481721564336013359932304464237693851537126512709746784134315816720891875852123795218191881640873659542517170272822729813838876504029646451629907175896344286270831489896343918152221380250822586798476802297273347536470681784337936047195633890887781958266550915787191569104652013341046750095349293264170715626169917967139036042987184747725112564747773682903647397614454057753968185321537812462504448212627526234910643341550702127050589403879980333207300156133329991304033493790035007112539612579937248540529603765904056488572179232331969317563346943465428462396269391087749136658958281543024259755663715220374390955919817267855225223475780641350448879707741448945893093207058709888672838256007758639978410008209108085810004591961830164257908881061267729571600933212561723404309324782787222198183462354051163666581179377336553916516804275719446913892913210291737296067715156684569380810371356117479526865659777835915116256465431146049586148762916492385366522830159016176838295409607147888634081400484761925343057691005791082510010398714427229966733306898551765045848587356765698012146485240575787610733322208093124405457335995240763866928248292894713708328832515269159627487074455392788108810657354522663909158530966979123214143254620125553293069236639943519192982479627773177608560515016229749105218818204770729447678995372449566213263930359000378171217524374274790890931550352657593318079003835282147765511696964835470949850036924596761572471626765307533032070820567555352344501068918571448654940239470729960570321271058257087340397880203988685400099839736147908307776455495294371611441436714855882794549234842252901931834124728317214454991920514053314552490236024803913761664960404469189906366300819063797312557727659425274005061592392389819338573606657038329979951351127717186003725617180490452559482320196380017331900407643201473980775143195684294706334977786275666016935436434355955455767222558670892468827344054581426568943142552516083221902001308892842262246000736133744845993638498639023864639442509599658929520710550569402081428996502040304133429646332223035119225528536749455502871194611122429771529110598547337816030493469151483617416171020772657579964155502488510888891456018208480802205816237766352536857794407486485196969075203215276474940091687381309040624197719172662530321078321175216872750418965649507961116811663920769298979705223275790955763021828872618408965434109544646638674259603929710246975097338461565155593759008219656657957812607722551096586068022403268678574965230556490701453132004148528867279461759288466916264031822382178228082397632856581367273270118840445477399467698719674019672548500091277232588679578840383030048730615157702381940566506053467318670081651316740614916219835708284887834677412141648181802835847807006801002577158859546264765516831640620668686080219737554040552095987287179525960323692022329372357604466633309131779196273660006207923770177359974957686065960470333515994513872632642127737366746373406882012110383306419309044632495140598086409911704840089159064395243389775131392043721698042837283154710235239384714385414350603415155128690695730921296478917889043810105936535858812322087650894596448183327907968004336051526904470553895932772935634645524378456117565018032468464440133538833069709840746312478266066745072026734021956298022887002921547988581532545399262259895797072349552467909235453307060387859192448227349339087730893566644819119577779879639582991608788540535819808988898606892515864281344605156547953610023228872236323364024004969287659216232000699210757672069891365995514968679741356604732141288720781235297918142414486007484593658343900929299364589449217306883185319494353210627636426464095909435074085746659256522219145634436935584765080876866705160660882672786092004540813136004664446265928872635278919743433603740808804222571037240092373985831344728232823574022966782086175308983067208512447621753215192057035601274607601142673325566675345382158430334898467160533425033097416452781017610433148179870231038993901881679970653988034663853705260678483759167536893465137255604096447675636694799130387567171720341483059569230650662315130671993972260823886976604929642895200640907990404932275435219193268714020140714730976331800212146796320032192489062085131531975417616194238348511301334486945055589889669125209219633375173462651413639670502161245852414767966704825050998060621344871289056647653571719328376565539965355838487610365834674217708799320867009054482391126394712452527539420718267608399329024819192993072643424107490948520482710320715378425761198397408967821682690989961796088128354288393560839463621365845670207467025494641572527479541367468477001470776733910080755231092857869335460786409832596816487163727104840328642144925203419326030088847346296123940091512569638654699999988686145187999457326991475987754896554277941917081470855128190730576246184276911728264974596177351970958427939661919441307740961088953933580202412676157024864764412849730197775054873994784581713920702847332487866216299465228760822830317621472541352844549363026229747073950859640165419660624017958777524708043484636784629325682297683788818087545604130046174989053444473155178576596372845279506416046464212804587616936866526448050920877705033548713695303919713781844989681225405047645477300183391703825298105943448315489641388977629072936854689205545249166528063645990347903845025606065310434180450165687175371993504866285605082854414563783203689074095028074808212560948574914767788946874666169362983332790856089073121217656565761396332416141121009972008583174113401431559458991449880269440431748676483601536109045989322568019666948418715037175434195251584856537708296390836022419169040058517542685895027962867209544384177421452686518147617904801685999594478553567375955955850880944081002890967852724946722099082339232134274930832002095901442436665908889683519041409647082196889981125592129932935556004031137165264075048224867334748893748496680640062292949471933730582543755459499276419396591130237958531636610917680256346976977440940374041406900732664626526646869265796924735790682229983522248333764264381593177793052025034914573249258751280083474499071254919153736824956065872168593234426472423569787887116202171737633744931296601951918064640279085062287236224929636198058225866031201388985111648212240884539067536577291469630561864440900544390331165900009196129056511444896468986352386645386502967946314221898702939725393443250064147952402647008791760574013171297137917457273769707149241372299081997061545373353728788250845982296732288854817971422122922335775192299164692288733130054491032334749712617113516101546270995780293235276414513604982605361533157212492762977956709316855654838993155331798876477956443278260102739219744391446605558792180922758937339090664575264824838546050142074625784473945202115158982228825059098360334518704632939618959839736337300748602512678871156130810914858618823381658462495173049579843870359080202400072599309007633518428392247826402027405915697045245315689859547290857747516085317120961743386377167986941771786311453036928588968530876525967182599898023766342910236879454499185519130198045469043618130400688577397911597816991696994535547206830834506580563384572594279383164491865578566900810693433457380475862796181944041756832947756017578847722384068281705556957410725566192382957017437377112664734613746223914182151340382233096911466512410435893425607727421813597591020264172454954540101886966517811168995531011720023908169359934521580901330040609872527846961676065766880358940002814744365176376564891344496612960497320563650693239356796753069379956256712387949183704147845596076069979580374664763955558786421573738383943586535751762911678355538333129135360078099758936884708422058358333261486139976074568988514328903347853878800239652927375393250203476786069773769350495875205221784486193900908946513951201308167204604197583873769720850558303796245442672998284903371256907618747696671078990349487706132063004873060135433332930173035086268220282510098330523698730054599572472538965012339360307448256791888521415891798408814140092322549102523783151633521638641859517706259324934398325752338395244138543617850395176399701158851775978266962405076315605133758867917369091822155624931919286081173044193283034313640693971655991571131597039756277463176875248584379174081647198821678110121036475492909306969564147271058216705245654088992554838036014411893861612073387458375882112574167257314929854101523567170993092548257628046661146444976018501737165989492380622657972971427112794400053529758334628179641753409627516387497787803178036297575485888721375702001922857184710557956164439745868380493495331108603635871215739270239187905829883490775191789335979022053283349458742559811468781113985979257048848138677105683901580925404544636483063640914119274657875390387381697794551092112041831124697422455188413519085212394806075262148437904950782761009361173391942169494029100328699026641270254131131034572502469844862862769338589369990211400780724117721370709495482338318323083256898800400221738978023343398813484792511008332353809155423220136601218656128608741075906525578623821178872436013090215595950330200030986936353992006483749776512199118885297663918854419721152404683684373476274497626077784633123464347221314346307072344047195976608737564341073443531095037350320363497848702111287660170950717614872907177107329630403257405982620748902489878592112504074308494488704128137735271637910605361007875341822157917661475002433419166272025778835692834604972884491931417323247687090533647602390630195268751796402683014325634370160086543444257121255799135582831698331029987375042216403217214001383082787667754754960136712015040185135676488938327129716200127580844013710888240284161103226516750583506478772214366098667939615715002055262408746880598605189809160828110720426095343560928353768498984076642579643231861688749080259587327590021656387344384280471286828259965163238867527535063867653945731376061853809366196796595628200463941203795835517399277924700568142877541811577474139812912809824221979035368765362381334630524719652157387572390732542754873682953754757851513999759288919390937930461009236897049820036077195303536820632591976416685945365343527824327659788935393418906468471363937259512162072572870967765831530353410044690089909367843122239615116342922440158944101157550264714991109552217177299053228876160063200966564668878525929680952713869580485161261451300540349223369155421893210045018330200399529012586805007154050952355515712274463015451526470202657511978280496682271457090510938379831980533289842514016648642915158050993791881646218653710002000358431661924356773105216434110111374451124161689756843724960402966154978980761131984591812216656542160158896958094688627484525477701675973620933655345185499214652330683568552592688193419871467430474739384708861911783086949555820046323125426568096942969519631095207999468409572445473159843720468095948044305903640008947954496891803559185134598053904250088898926477853367502650618638779998760657678771651431552509908245446292641615414784537237379301462190300244720501816648911671313587740727085005706614896296174916153897941880059257003653814401145757631133098098969764562822117519490034099579288868696356434467814687472993964471817589994690506470348391826676426595440889280127167133578821749408916476477417323609238116607062645187119521475184628736734675536061039603872868037724321132490741978894435227115013327230957807570242315048245278105284257041589783034461305129834539861537872900830135683223555633642784566556470452928051252335079563410400520168908849292673369240682881327742837814054642712543899892311666583199792173390450273232023192999926806815837228114338818694548230587726425942169683517843151264426632401798361540902374936815523727376237689975773342730708570646768246188063648075693758941756753378008076741882299683921792591112962281418902514321946320754568866229539319841423035413680008811715667623204187722286876110867494967282910795255062688265915641454009439028259353741957131302509945911190065097502926944757900625283223998364770345483794860260814024839166718250173661414336642886779202493672217017025434406338456897212463885974643388424665139784695487956642848903658677892864380936585092271907622657858778442061298575735071485125656740300442978256656259649455581936847206096661681472263200721123374670237979179522160508855738965806079340327132594835620305753085701364778953859901245128935457472762081283668581558299707114765801892001866316967699550586130768209860286492135812382326820823912974770332599337808211847260937063279485984377986934614931103419161373573533691833350358042414852830564513703834007827893518467004002036082388603153188376486251570139592964800658027097177344438258167408003333654086276068198872063499065830812525569666889162782115625932462566379959007318498964074231499454920253728636042900125280756752859822051204776364401243466969333310067130137123999367340908310338574662866156371946805501929587332211505769346603195602108155291246675765626852380458710747961348513822432307468296716634506272406406171180403990102973696562129549902264705336477175964176055638647475559844387898893438594300454408300030123292250898607888032720477689538978946619111570260460091726929878830906100621808647342354183886641477603825204171029738939279849842415593058973022274104939916466030659750346262770614664258560547365232929320342730173068422077097995334873192315207549442155972683414792750211087440414675412347562842520511439051112883036915321803362288319716748749372102731597168509036275320039291526433896781959858697921249427490822466695763895458081616251222211470993973467354305978838602019129630401437400224599824845683399766535120640398298048007679590782702471127585770688863162090857776791500997435483135293941051275607844818222065852286316016586960855506733694702860117581800597299494293253862457245981138242962030143863224188273145669666368889038776944141812733198099581975199036762322848709718080582175235398473526506911019381336035433173459913873646925978379569602485033351597980326210503762737181539977087681938077741359287743815788262502537180347555607247059680783003757760457288416461117590389775583404599800391634111479723704716141697282841567221395710948371930473124863158167885660102149888716101666040412697396139353246976801344164238535026986993487147609511285547072186814277318437274198954680935707321329150477179875913231568732262910755974408325555569647571678007441366256828377482690022219704344691720915329736794584247388885620343138290867335661396246402165202847629490889748089576991029068003475320820927658641489977921582046044011252573431499876556512644729223322026981339006249325461073258456289956752007530209873983294820607933675673336449431227329288678489936912755998258754224985931564755172453579907122591763603085969826970983335573547686003771213520033804433422488551106390194402142302607655225597197361121192863944118666002730190973770001964189751313846843668135032923491449341516777230272802457666360877601327736581074025258102109607781867586032410476561029063557881490952338636138375172349017742482572015958541108741249266736227168070467201302890846885613563819310895766904230369709962958544157765481420955341633412168413734497427130499520250772244180414948091086074147379416806477300235208060723038799390856194397199286304921667334364382081528129602974935602164582010194424192518770643025355606565761818639033554974317593698336961947004490719198032791562156643814204579437303188567850096046437389009687002157005824145843777704718478891463385509224232178852177211591888037859836357643290831920871632872402767455093785758228014850879885299818140604543540780088288337489226020629899166461074114854653397693509541633687064199475680326065963012448671470502589624410726482002817135211932736713874993338250576481520158759235423365360577753283427331404853989644815926632119907883290778560210888349148176951131255165859548704377691013640118728984896592689331130394116409907220421806566606845828390624707864698610684422859364108073181999985930988375448070388671190572396865444077842843325675250298427247726287046068005909481517402206917224976851457702684906443767960331274685144923478079823285012921343349895865121501666391269981383699965051808302325072201844854113649493843637684506174311799268416450402153003468882534893229499345943284339099451390348481272095493372492073406093365969913277568816647636098277420691165356881590361795635272715153803332557707620123089888688595099225356767444952665144568844812951222316662048316356420305240724403969282963778514020792395815421778831878090586161930632601123137054543444102792130311511329416150375015639210964823736494605103056111233611797878987313286903054299680862729806311139355065773619556060424568555852301311091318742677961774554766124639600144156361387449067433576699951785767509194731976412123313953749799395182923165881454760141001717127963974690910202721647664065407170730601177229509830439560166565297827972849729446398853410430534945712304669036370211236638040907215878660699248329446259620885947232194126962441561706280366727233398606514999898804180442670494891749866945351793961708715539054472126500844264095861914758139450610630866821027647474354980005549238694874730244765071234979437725531917333363700282410796669641506262665954569853081276420681163993117599467226968442867778924405979306767089466706504484372720246700233124784060599029161736753066994393289768140305886848734955026111391801920518529670819865783777281701765466621878719986356762639648263078141715387195182338270652898881023592827637454814631957170550689069841113845353240075237489375062976474851413036631625187439204333971143421341462827134910808985488926199546750433725874977566284023395184072095463517795224736595795564312669840222145971692695104722939355291645439391712678101235150396423897187019288349430162480368672898844066981785393173887708910551438010712467863344695770510286049371671369255494526403766787796980701437658265542992604538077936542444837105563688478760545885829646167728390302426780829925262523383547294314938812480660802932745832544593196770831373706715504403576289157420351740249438879264179888205566655121112623978139335162597374611621593799961889390100568443719392712441421194372372526223792039215875642781711791824456304231459981171992999137186026086440465575223306098188422821567986548194460785552389981163992227604983992110207165903694286991824539783529761762903577153790681509001673794586132185143061381777282906203328760469371055631578317732048792690704429010133484984113654597904328699994581262291499556802819473600323359793211763643641237482171695700402722971915919559602157075436432274834856054398963930986699031869650722823224247016173776719673172263758005055911653699923903024039128383658307461617570374561142145065611814842330853219653497516558000658369065973368370999307329217392361729624133117886474414617045593646352654003978791762105839862530675375654583268648405042365950256538108228808326387187865542796835561465788860336166227251984002527296436433693257318514456976921831479115388098245092574788035595205275999257974039648569614143408284140936800615759853128705509334399248839123259155612115525616659697545125055570589238280589667138284596113199913184917084591947745979289415155229940577383102919174547001263875283983536537540638278435700535421509596960939136505324047194075331344354725392110484510305823634260749501638510180077788027037083150129999292040262515124027023570750135008846519869799216029537340590826887652361488399564149045481637250322026644008069912773968902127497887256207584982618978327503627249149003904577012319333612796193464637358660373701724016885330403722367921363864668866569433427619390833109781504532579847928886552633244810681661749635941971283595565723626669689524729224760210172452678862857275821476797276254358957598985107718038454596225411976919540773861356783723853853011545946006524598128592376823586987413348287818064644541316019731718750497165406988125722518415343382107765051363665786424312608631140504740165181637687733598754671330050872642476955157261741029116207084009819742846048547373972457168381535348844988325088774480326854233837360419666121106860801577423870025322308876998645113639907740691162648946460096080868372471658024887216466763075565313938445298482681400157902695610153215073941529361756659941938572055881649322774701705998664492292755717471040628658523631413444771730540039617917543327676231882787990469803502148311553526671062311929527368688333165044972626377802113371044664482680418805428798709502135375240470039032321438067235304675924906046714163719360155098391740644776074290050854770070392387557771241395957073291867495276020705572214815835761806101224432229621041149063233060558438289222684783349879570046153852366235254892590162386152258035290041056887674001853165446218682719876773284834773657516069897983514395383095786998228343389257531901421532765064928685754477076731711081031844860583035751412553206023106353754262972594777572253212848510075523069880490479228988401762049207853444615883825988726467008346230812533982785493611894089211344284284382934982821571010310644865808982903207000590450042654835710588092964946682105545692614520463465216219343430787993955225436665892526309293703958727379832039526881885298207447186439634088554114224341457941540522033705519986360238612378005307037016594474885587316850046449719387608188391292504092771869785636900275739997696770203446987540981833013650317792244841248433112530379800561842742790865632166853239895674047510824215810855536026067853222430016253256694225588268166352624932114190357391993454762254001125679582095958346153745572388564086880593502947177917105788699984882404812758222747377760656633666179353627472558611095461107315389707566844730370110510254373011068596503616669624373070399257795390892856771465342347341595020589862263285871272496967796981038111675411288671775072258665952658862821052550884215100157273273055827616536953078474865188483905467869150640637962544730434163734923632717536475522889791257857961075551812911489294310021471408674160052501569519483311591790771904886150003957728919981120317099110851460896078353075250077271531406467459428095057348528902262626587979993305790671898354024798542264520010334494094982639808911366470659478247326255007349134980221874707951221008748424872569979616375208984041687344744070454731535907158376460396126794180717715835256099341354243854364292762762086339626863268935219889063797581002202205704098063641980166347694841579629109806746916812700905332298846508593761044647035072312308336302662661188429548852277384449805283207419912695214096796504672074724732552358414438127155467532793105828261875990107543656178403592340177639438988707431976803631709604611334585123134764146613999791129903709636339537112439446441318374637021026507173696517050646709554116704098108404057556474364796474737142120164364008657832574392080519436975634079731294977867551766495031566852412738410567691551186999727339669757185449172071264446054444921995846921502838482840990234026584901684614799884884403772010562461005825225965669430598761808516966665058166166396793255603684613529923489891874292891542980188214040661223026010118726903417223889740510151624087694083270867615110054289121071239406882907807298670116263206400902481387178755441790181424381208006048688489623880706150223909460557616748442500503247210489631605881522428075433997089620216385107471083633568103309250202104901514720369733162473777971039482861878355599474887134254333625774550006468215081142825473953287344271055154962373149379783166151614931278653448230744384717631282833182043110855353832932895229348872086666570949744070939466171147609111633429115286454070342531920304484240642136484034309055580881806908833300657268176206321641822853551637737997813710774852077421587140819895040961814804748319092571534051873540058097188865826686488735663999730343521036681961784931127657752583274254569867859393131381202376655815955347442147707346532748390681830525496332111758525018773854643086537848179285876827024207299505949290600764076572482074930634300605344322089939694739192886100532572258731308366706008798812978708777956591419624158015949371747765152905991779738104104449388561019593676591827669065052196791581658695619670744767086660114078085129027138609313484110208992908715907782214944802264989220866107431647075659552282174306999693885670366572741626375794507295550416026557993062874792948553238756916440128176252979257195869186023197925141591438151566134165144203352729474072596834731684117330387069963191782104267287377775183405070025510428551983335944749162861179487012597737454498682525522308131312059518236084646521956269308447385893657452704345279282188262320452092848184307437167619668985504574307134465034431685391128520445325312015441256571612009627448640187819522883333737992069466427379766074153704459120800198111883490948597360270501044985326658212759669250944695884539400239650471497194639209165890324649135589875086597377648217371830519156794707344558708681324508058807660879022507712338090363351601848231020120449033198303670703061311749199875378446618850994015813449088854694415414451651267840005509660066519501602571153232243612854680898317677904631590246847865613577566813854652595988571110501689169268579222718391311133824434068729028318148664570135927030971273814300233728902796373251920136229125064646519233741297658159802906738964621354782329871249067401718092547454996365079303030804000521414238166018050638882330847728536244911914815194457833140948340540921421269813812689271783498116622714044445459294639583496965243231901152296271163474119589400168802471027933903891145126691787431945369606713044802927781897169841932226215467037656923901650173490452691709576645695635163575703980417629906382524440832321214063915369518383755639217169551443709411992663326369078065586955582248780121770503543114733086797809150058297458366594857998348636532526982580298565899711487862834227401731169539514743021772662888928411388196094714653787895496947036403181123437912162639469239230732197523398752745310073574092366536980471898258463908805464805268733616722146191215751109677774109938331942057064656064081789286164658281367826888263833053773513292789007897457623918737995027921393213747683379327329113766781741734879635814048911208446844204904764160537084581403482508382544341226765423607600805963495499957274057344844492484415073738512482684862632954849021853121320541371104357745191498888927587363406733153690112650292692384810692315787567457711513249660274999611646003096352031115292858449779071408570470238154219622502566546927079294448968647026831698578386859829832978215499276281416032230006210440594713430862200618643299587582137570283865363923815406786145647783174481097437440629387799076122852931796332897781097789020260236833653106609076524895208680102936993272595931535560447124255060319631825477436942304969888166489296137701961919693437390858014951360923152085119520943026211913514369852824669345536728588590103599092184972739218468477789250748749378919850560861537467715371271997732506552849730495277249646294661377472992711683741205538785222914989044586441701673378884333021882543879773039888159998612414837894786117445296121161759039962557107055716159681017291901112005217838011464791309895419784501897361412361756793627626541084001723988115197071028437903299931101099689177262943753343815496517622342925872095093692909181092371184057248787727993108335169336567791335592053125273703983795649288145217182115094661838153937148604741274266604821027688861456364576745264732664353750377259677654656324647470581063075426241758353273261801946085533346400855504849187501473810288478382145434499552534901304874712346256109202371224356136526458965876418991784290781986595972446051528302398976096619993526519989032635271366223658226540870700265167931185107314594655314875961702371973557387293919068984729163603776462127140534691995831314919368243207864482925238907471508442419129122526929240235206718897500649116294341734723395571584748726347526223582125543800584657193949344392193526753196506010745337672222031147478383478496902487950406677775350867398963662755522704722716244502715671606615107066726119383423501895645756095956930323393311030664661228565670894687427566352708629051290658163487882511832226413358549047190850842841681171307764643347426409778495589852699279099180742523863005013046971911387441445355348542184734484210871039061709502071776102885035888659855291732606338314654364835137465557677681830568153712297990580017395807188538368586553131521886358833759833671087550990560752285964746841220233966204162037688198546875324149636177304639787784326642249094868829895332464002061357015475931811614137891185983589095653344907897312165458567627787380009865247940962071274584182975144654565195809479624849048398949427493132289074769452955259949433211951973643187064701543284805332526557461997903911519134891864146812983069510954769381672424228997823936365552645863902622960860373258565299166452971694412135340886592193174522031746695057170766760992028905273420261961657609999425576637550401707235572376924323696005655721623479600469016097268104214590019002792000543726945262680051238288046277597959623437174052451610924846096459900375741145633946346635139653967019723500600513085005802802193474441331674388284896299671994588401107932016120294099720803405906259230826424447321368209983834064346268160723881313297300235069129844766761125761443868920106268515630751154732696985893632344871009683032666017848508882852418271495246439420164602956815922589191907662134203440031090220094028075368259195094975965409019580565690091983581936559858626536306281234586204186282164433058001910719219246849756410358537038647486827550664439698593793084445429319619044009739027837084448267096223041904208029294179244289817297127348924257633314675456703399999012927001539198653486439524896276538581035183103509292243664793235756522748247903728864302168587841477047947051082986603442416337148210869258127070990351047940903707357557440452369875305789356259517972482876311252854356136290497683378790110510280494635060596744351838145987547764375455467091902793217896586377329517624744160929955123474823042759654972879870456147532331682575949373090118970262463411651731733650494167972519945336272582739212150738761063739405353400140800433499565790899701467980696927301215199320356954374702636576965131908909786952883541408239664263560159847359566317054270183327396574923913012718036208969519094085804017310588307034302606270463130497484262940581747372040753916525658811353123246680430457785215419238331090381469698802258726237260106461832692723764357206424308836638850059827094876980838722700141920187373250673951857366731337256401357529275058092151833089165318574755348612642172242589803754240027145620580261461773294210359920847259827901833716777278609409664466226974106352973341930347445976758887321106201640022461018331626604886709120849649638059917332536594008173285757659342658364661493964340090177619935124894436633066476994241552787478574950039771175935095288921451672745320833545942643018879838751682950025458352583337567409704066586824390121238827785318967209832533817673755370420304852417209661631272560290211977977137787150492404732061434409141056135938694719142937353523795519958192739827837308585035416172695103984195446349763513164986756658445106290296527773655000796194472521262513847177150122040366991886184913674509705530298233953749607899727347063049836483830575859986712871065319813480930861050732549965636959806585657577205428557123437975098285988221449302079233019653952926336087108717550035197518891450501160998884549773467482026501290998757813827074708886627205415452093170345839116937373222386297579455912959502243061701640749424900624265984461023151548108741472306867705928895933955689597974081677763646719899065213821643063545192695322901776770830408910149739252745397044062564101845775371183600009465600023917583757597505286160404540531270942079725121748390591231269085901849751994241552020194490477242245775590615797523240605336130238743383491428167758091772697724986549111819023824109125378520142092297808371770414218929729591256261718207689963895696441972936782827278615256600561357383073237358159031764078974119156999436829540712307042238024036449923565904878114986137716327859888202899069960449977381537416360085714395080087933180414590776392884528000669906133303796984595676920565410257006594749219301289346894711983398728482215056275418831784053898578401982674496693905348805279416082487741127770357878065767562349578375769358446723145175187954923836100003055561251256891148581961703881847102688317104969761528372560424628909109073915067505883035491347429406628450403764884059272763391467524989409677630637249903013091154235791114867903077993163951276222596341217539902756856086623436075479106527038439958275053915060290202541957838426781576893783630410462934681088258497487462032303616775156341503544578739144336389956951707254809151144600232112714430305230713540484299745883531772195629532913663266463545574724920827687449402946178829232234566682029369124949501735364525306763818533024144799538363702970212644660880206981931294967405127274606776499959291086214947657881255369486543856704119371395801954109497172178271519456176272761614049969463964417827976149842435427815818181906440087591331909212069207514941085567680325669545872006969563100346010520918275370346799129647033942357423980909081600862495969018104261321695145646303656659563309441624399234235509083235451362052129827708326179803383744000463216887969099074572579678868690880302409251083513364952265567994369154067621473805399779498810705642686292562530348947181593331000255490821877097084852768351087256023069412987907957977834848665794717622200507089133222502001415659757563594839671771207660045545023757299756558641453361668455036293544810919909170483370212412177426944949270721953528985491669702227875836204660801516602794766664667898619838667165161589009225657425772442329713247891984153857407577320063162732970861266719553041588445742954273502849896553348469895295725905086894045528263561605811786805980908671919798576398715108597999157941767853221794243144475780849733311875705083598623762208452689027044033027102182228874930550133326313404278404581351308648514527261343687274583344837307716484213336114783893203754186722443036074056677891918204237663066169129112432091877049469111882968027474718903382454761114973102521439096467007635943116441641886805520106055344453955412064132550836949136235641383858929513638718342369909034722741125402052364763483333403416309488620283274063759624036819103320345475265859697507423126697384935696821519989530825448651271956937572472416331188471442177953424201645311122467835813777752475942682586659330873187618157850009808191173972520746764791036486348381011563087913039997222953860703582020919377675373811435754951177173038635316897791504315551797104451454914742600686015270980471271279834349310178685848424206557216088941554987118907172277185780217359563914088455381215944085272715036384985514677974317770214013638214816442205371409373436690557261045456570501986084626567170112080430304579710930511624756369493316118072022273268507199583403588136704160799391372766735718374586830669903833069870731156228765852364964496460453832576184139569099297664738424355609662662370176178355025860015588825480883167075140025696889388497099402838937738060957250947587703173096665915956807102355730560306475510659282330035517343402076389369918082315119377961998402630654125569046380847894568020563898038894759968294645297509904377340529848048399205663309459779725997409885020793497303070171021336340209974603025907745527935904034103764472581741195002905205181179505925267264310966494682166044858102400106393228934553101136892216703090940243800076404753474628266160942308354080570233045831678806146004592045038264673156606675206921849785971427583966634681489380237668166772175128726969106789864836427528896569329132743533428548886424064065718233108591300040389673719749055324433339473243003875537472174355970222925583554465307878149962449073938787900254123928232506489727280018261394498668737378053598169791637844619071425104989523852644483459818515091204399768370123074556570982028538436331670381772102971631631932680038833514784918283288858280037198365941490278804133912543117307005402070821999211001195733848313592247222857558454885455954172396642560033449641995913364570833497721649509749447199653373897986250946167400566485044525861079666138080819268741346290457896466994531796205959236004325830520389351637661403316727210042719660924745301991123588090746546890656882205899906243712027194479055505070155593915960627001687256363948500294161195299459524661950937815329822464710775451473258144658342405236622380818795457279100108900908009931904711608976510019100835265168699077631065071382689928272240059960409297752048393334141241809963900180052763541724770507031792194936216931087869297783021969314389697322214141890144979530804108445945736110332952692108605684144088328342877051935806389377062434033263917887262600809051634967815623416717272800438914035556562692574757499072484103066107677032176732297896924764617665225549081078010620575531064940313373898542948633716164541960022187777543658758953584438966745390955062706329689250724802797684658117799402759103049939005016734336820709153456380625000829455928318281863198893038598895209248091895778329428485892360149022201221695840362592820483739034345948731967231425179307698950331558519316016796390372894372155120741163153144567037631495011317206827274109757142420044046505933939706028557581526346003047670124708464079720581420781486278789554676926207407835963526760684176583891553461657425825584511787436798739486527910665486091506509982159431845999427887177696707342045384285421485098383382903441377969974289883895755692490776332974099389429540988647971684447673022594207976460395102912273490912293750350424161928407594455301754132014842633512151081089873644641914034464856903777299870704391428255603635557499892122115548119567609903999392018155455563480776888918894361935445712277556299107442920986636932895320444282972380789737306380706520433221857272767979259037391237976845841212500800880248482969009515578208943391041323256829424534713487426053743755761727812305248260012978598963822706141834597710987279581934554316311089712625641425528519808167399850993418750300517741560564611435242659206594487864978004176325055828707190826231921587080862200886293561106376882793334336796207092577865609775061711335895966531779890695658044290842828279495991985441550778742883074999098638748639058320734513867724638328279092991395971719500897066570715378018562022405636529208264942860350477790591268916603235155559431025889628033743729937567810485154218003278030835112439972586427560687874887820369296787059864207741986960318761630012008687218523650151941868923659944485864953580460333245174327351311909436475789494978851520914523273590108381088389582760466369549295052809590378422336268335919383876149687414146754609452671718096667244679199525482683833500365748662325557129888312738767584775363096527089370810412901440021230999088607966217543188593475692998512653795112778279143106500259299652266921991892129248333260727635484673366597403943718223695038579715076757112598894298206718252541747398916414171679188292127283335986519439748368055427468247490339726289335101039285856816076591182091931968570647834230343863369064049906328895702957650362399328654889605283234866731356661864945919030034224212192103726432394369057736865705281499241228030296179725479593342058068789071134275891418875506511267766555756580247918500327053771919323458163803703628842157180745594992526493721228066540654680777824799674478587322056535742066314979744132145469639294632487211477769712774792414717776008434480101566542471697260027235024751483834240687306686166826658513618519537739986724439349940598395660464759191155127111217348444387381014427359230425168525509387824048607958276017408561601845911929792977789328926651079676307815499847082113800091848380316902038885974144178380137661346720175525449488770748665328284645217966658223095317617045537376733741807074286199592510859683685285946695451203823990376114949698462205001605644348391736051592279420026386111045445086365057074950482355745632060123856304193714338975257703973407432449227790572330507956960344115818533299656164493084331484603739899119616784260097272039260609681605980074866321392516849132786345238152203292673871060218156870115410540696126727803132946725532064321941278624220783613007714166147781696210032655679507419115890843219443309275241249455503436801620293978677618526022622510664383864849276049731175123811933684724264854471611450282098302794374633041655139093511757374098527969852336236212659239726766309065936477225838938022763563999892583119960912399081004796555369486896723431720731969761918358218963308909882199419271389772938912496554874619512736055006716211402806918309952067077813133617310320717192953705506064824941088084339828932289710027538317639009641556179114525430310391964776487830957773126894072645498363016782200119302627746606212571717566018218431973796805773900822518553994087608037777479478004201769443112775216745946661680086646527312417003264747081076718499236148467793744070626459961942805398439306730746745358929905430826818160064526509603325043574188295307631952549008825328744969876108304476365258235780605634011358028605144895708428382907063918554687650802282092558916628195325651135732848344636415152840677593374280254010372625606369014112441240861839269378626469219250263457922786991502459505647392759356243227966961886241425708674208104579193725496310092173899759212652151486410190517420868145915634917292917896134805058776715681927300032362477847753802267328443907915298186486107820346980062060166675273886576203513144227345291632676121988993426171781872386069649649837308795946866708945201598983590530658587668023768719123064537936755335762236700872364846377474117454913809158101590986477923114497856202986198352170389466966474257533972515297734074779392369300779794879788294090088228974608743900251929377946229277109598448725702619711396728646127287401052674949762085192859863735362084401853377477314725305116782948870035134904755578742023776687540060662944490759387017215176827836556999426197582859230404319270516667710047790110422521735772788958904501561683004440147802055010391714619282481546866069405768973633624000901598823612547531770494649668120445826626586222704193460971766806340393675533411894380343168049411992890796080720532747044322339994166315308919855526080708692840518161825507697150146515822528218477323374595777370033825269876453134927714046437198613293134242531176964052179402824227693031335212026081184344987287697549379464827676655891045544505069915966870684208256226092153807677803889803440547250003470129963632326983911622171806950791106223819404611504446545076604848586787424044441100851806050623223802959821694226802415261766457185306682250351033540798032227759143833648969935112349454895339494950603017873609478353539612145358439291836015467758381701414820587015439811786082731963056217412993137677981353214008104044149031536914882410287471043890568228810605358040056749536243674608803714150209250727038780435064823838638376003143917234456328238789026187066074071765070505760033376156600540386311771309380668816599530172564120391043635152112816326520975660915723358517501004896458605632497614276214695583906579210671111735581699832791925183704369561491744700543948251282408707222261197202363936047527419812205457493740159192792985896013882913019414998586126433132000770763378142813312807289958243887845642569325180984477139362129722545969030999772506178580854012344876067367901913437107215906872568531105716625806166996644338738599840955602252484812608528176674580002307634072171537052151265696153387147203599776555612851600989267570545305917538970443224118600937823699071667093620608173895353848648732413117803783233002340619987017310864738885468920007899944368513278986772068636185489052533729085952958068058038603163556052383144044883096959706115909898327103733832167283759286674299969468723982792204303309535405772955831117246882011547388230697312027606555022331215126284707545313413825727949193777021230555494009056032659532631437189319536850041427628864121360420702106996859234707615824648453421858098457332692298972392210688085513592049979389527496318368446991218169710406375476777036351077320431969949017873161662485676056072657476154416150605671204481743820018664333546555757994840859945825490151161605549371025754562384250731273579846261473147911882825337639242639671945968826213705105144449014207153866991917145593580286663297682758538265266951511386984880245227075500191408765363224909188452237162294055915630489880532245164168732716686278389375613171589199600794979080439909591671975589619233305008873644714814302427720165065010328412912687300424928826148385922274162889275789016775125975848424354370711931388918311950317554301083329378007031897760632801071975212100048897135344614217700889338624237686616444892789533341306852618026730961436856897235187542763755492969050303065089564490906109869524307010802503799376408570651839449339193033525309807104322178041682589509880947090771307139055799895872018744978826576019255905414161091525201880889375772759969034924856793000172955411579303677731720693247088492483655798193115408111657361475047897514291327065296187081058923021437902419491404839626383908885112006421505475976518645179426070457500526004007145487063065216131661056931709390756597763763985292701729143377290544645683380063730623223633775550406056271491309309694811994394872918539923570982565690801008202144057031080795999372686190940376658087673464452061027819235792946018230686894263212099940112864030828560545049729321635373627012644960300623414835942908067271352677577299327558959598705146271841452792053673730594463254194052197786113847325732352126687506304355208201912118683971548634788121928887014854877844426542049310480839936319552313703336780889961019107617548387981932671290598594428851829482421251013209311647102153814062978326531678856158721163625330336329359314197388131449923611584486175728946002104326047646346520801683249493146087778437790671963601686224192553523991239804356293852658193380987292088369101148080736845215582620521024357114998216854285904696075066941583562244811097190053643196953545830180275472653039249424250491501738192214016610266487973517558358033965155585343662938710966631652491775669217439267608499787280727989871588210550182021454896977402327898609775053856282409743246042919896497106396885863835978780160139470557116714950376312848441455171575311799955502036538065207847141973151553251488561620830286887854905679734924564502242665223917758327168167906943994897582314017095236952471525810948923018501174373886473240977742266386344904457870175937749642829723133056688073648694728257928038821442715829437667291989004531789812934963640677479702998048551822583285614585706120356440881744752956746353577438540911937856156408475393679740551233434146534687177343178927320179176438127841904503144396038409216822820827995081423605273387105637153525592504086606489963377328571526299558412800288265645098786215121296606912375134476097318099658364690026327515323744673572158807101548967711833930016946841172112850258189481021048996644036082588484410882709709855365753814395106872911413316552343000647051482038433887935285942757655483597910835494926235201004448785607278438197044972156217401590776931828029512258462706129973792036989997262903848256338896356183921912483704717908404812414710796320571649801043472589825218709169432274066312672263622257219525771918508623807677710233867620357085232779814736815701912379903232525423506616972784858890593824788635077968089612872206469277876631455812707709854642832809885539495973288731087998763989723978073165410060618577845316456000278760104211704348700753662463379416640436902653919720533260135446929725751482429637108114222658323327011871523991516070502652053581252244639414928250513878933952519823578471035331660511042976089853771167044623067361216841103433532159766563002893109321458131328885748880835358629029451874473212378545721857942619254818640582993621330238058773512317920503792814174983109393687849385589083138170928660391209604205321369434044082782016738854103022026279781302126168252746107224752036884168761455672783946536772067940284608191245171383436103744040327450356181581320192441164740765488045271091786658754215791618636568876388529850296046307199389545809100748711419981250194429398553050860643015526417113869247916711448110109079761540596572755683380956949371641807379662089283391188933157877115493569388691615725519714826283554506315474595372456837466564247201598302085429942356399172840604845172358939371827017464007963234026672360157993155239990794996525479869262158556794806421434432528293075284415307152874829910358198077629235181885218761527698352354794783813342793359853497804444217655461876583929706213098032470346078620963566471413012091248321900503866365522395192251344696295420219908980033797983144168695457323791010645094964799343556073114903624442468889630518402975998484224316875528147394266298152393878112325384664333446563757821371866472161225108628786990005096538858000161144917231448963015523111182953185632969381019510662441467089097169566591450192359284496909754433759857999563247923435643851252729288147464845349075628919511881575452462975070998149165733404817024914450117499700584768057070654972721061640862258082557913083358376589405720255073272271064150412941767841531565382883422844238806262707087569538344335769308174658311274113494591801234411445692402699525755571889506562377942655303588629499868073073577520211319621418130852957643582757732990413095335931378244627099832043850898946720410699569316996811359382354413275471542239879032587492805253251686754262951520540154727137837336794303936549070701934054818197314954184324526422397682287746887257478595182701294720426023237135032545903554868975592481940858902392924848443097054413648331357511678886607861931141183704481744487664502988995128331143673586921327817684779606771575923880321471259703076069460830333176884458581674916212819894812737961288798599484478680030896502604838042270380485941514136805633871589319846160096188778847382020820038790330416431280272501262841226491264683430720751452475668580856932899521460850838607353709293571629976352339950764568117741999314455845839972938284942632775835581000299138561874203141754303212397652144001959301317071718344083220327844894266262253748525729748381389837272542577781328484434783826534576798924976082421493019548400867482336660663813006397762343105983839194770870546263944948816114075551308072336617237270554235449118155515197328691935663074253895044785701806657454331328899313279177377522848385030648955345310081622484121510947402706997081248959962670500720020176170522313670886572643856977363221092629546130808103027729535959887319687228738981575315002554851085134952804673240734920368114812094869365910699023937235492776823045894109128480828800032439713588837595140552954440932579586149421897738683226886719562393098356491808534343675318211641095917095029561214160683415024518592514991925472813643646940064921257246101638034563511539495769677347718457573920586231641376391736215225323462672128433277496063985835931362220264851949734125017482696414319971025735212662480653609530878244869220665930892834618805657484536391601683733168279061110339419920124634477575129592899310725287363092328314415386934143071036634607608705228174944536743274575740632467340055108412496735791461672704874295567769428075166707101724312267290096265115094554261440809814745108432824648848613835401783872691548714156403816247843803592026728726425504583713335731719657513208655059658672170189531422123581789221836656547339946584715318205054041705465251905281513195942624603584323356018819538279267756969519463693226990317786045647282192470415381059484466377742934653935470436721651503180546135936920620247701964854454351889806386968084356867017035844163457359414882367002588014453108057933807223197417043520660544044279561746740902472226384548766737997581546703433153216604049463565682406898551942498729377223785185698819971523666838268229530238215944132714794433093821973721265257387452438935934178268671163195294192129023060565170268623647865784523302528122259847409499801189277682349006282450520002447229438752516559700531928524624913123899088152759152536864194918895473775858243626332509753617578678139338544992814624949651519173143419014295746270916964542065603140313999045779598593459826604205187848879791953318137981020058639917585413480819324521655412021205368929683716236610984240191770495110179480704726231414292446024632377564260819878285417293549221158738817114335911928274578780333728544232793540102207537087945998535492762942673309703339905010290673355406698296086905920153439917498015139810885135965809513507176602975121121372738416615157439850195446771359616437819958267457617030318052848735489080697730442562770429921883151670139058749588963472840208639100767793812630569349142530252968242687336200558672204316184532363384886557614915310196203128638406046754954575363447161416491722082290467420669794955466379925144151905047405018413614781567511047433031033192904361194513941038963806259636505826917791479920704578518951585898171807760340509219000517797160092344320288209051234045746704398462762005678540477945918848815547156749341060037765864268131802702185129868143655822154401989979562585264052580808893417461971448997441638100841510579934581875245621425302524330045888169451136121879280840371076971057467507781596117186149572632703778906644722788602003001095072375445892786278689126092669406952889912547962464083642416280603421596653795490225990534220428859281718365009340462166546211897730949146541347628200783297295777873701204265958167250003034470211698756609450231445912290726629598381745938283367548613923004837853129975318535754337962194817598190848187932047837745613763327482331175265443177554464910993468891767528398384029897530140054215283106499661938174696653359774955371759171831963191216019508404763820845388844066836502457618022632497764878250397570108572741599114706854968796571441571093018453873515371479001027225303923248027128952141662628501938306765253445163490258381749916922595340310153280220953940134254486970733832227610352160415483245230781502840294974077085034600681385606962504335965440961458290262019387854810631982778187273820942100993256416092967775458442421057835233888303435883881913842132033504508223675873750593754036731371412877991860986005488088062642849176811000603013487850012863726532247106255115515162263515689775725556566645831148099321662298559838497537091668857529349940583713323285022114573284785516684598232146344400212974924844657966068133190836709993627337678400131656500368480261848250397091260389302371477124289205580804422108996164593292712370028468391940374957038805716957164101298233782572722991393162473820491291150402137551868978965338009980712691226611909302664493039620278171365280324438671045054977047822549804350876974285386247110462810447539111023969269977443591777154468510648691136371909008669889180832334352656343659159860735355869952758663633835361673015238691252331999552899390211488233298282757490060655586559902158257295659270526246904488495599506323604376416015688365069875802670013696127249643434208361478437769998287656193803948698355799368265501596458904883477460254857095714611929325801439426394370913515209852625074679479222497291160157521047267861678199596589555068673803923657099634990015492773264440953640020951063318591476296643697195280538337347070812231041814266558103765659558764671163688463682769462393965521729185438548338873516803983502736990632121165273734997878354370579152231562982419142342040984436109633162197387481385891282487201044409155225595078255191168106735695534812523982965544090029548170826535529818426952424289785471647830014285444688285167898571302670075533502737925144607537166739723369026489396703396379674167869272241198841192330144112659058556575644291168434191347553626451075843079722622466284872272195829146623044406584490005507968745812465751963862487485923522980931793754790428634766293626329186423778571685492714142029985809231374773054176052564182076842121817231090002118132284474108768002321639142618634448780402517591123653959462021375637568529180170091131853737342534944938031480053010363685150724892105591709461942025711456125838222672709462626868408962196769970574208470730999635000367912595970275490976780860244128153051507328210385255344371141981214551404003574852304669560987966897100138856188732166770329409306379622139761639616726306195838270230198659959728603116938536741087690936606830468828741577546096382311318062056091007073641800061583630855037162914726580298613741467302340425480663968986648062708026881899740992475775916074755403403981205618147204437276353792901662007458236142444780223627718675333508464374888153160345815410254087431047545323975485622180850875038970627525639075162253611602008368462970149706656149670195140382275400822040090260857902239820828759765811448387643231188058114790560085219646914232558049384264619830627861776077633375368634368821337748764534301680904685807056854396888503840139380099231410066744741715642285038091114982880235472603090311554731753856081334388661764950013652826123228016954531161263400427195911977589727086842217619820880701452693406276576084201912058142879349849126841826352045284728869567076498854656287650519708654036362090608603811407028160074683596258787295212459539282870953033719369962535934390300337707995722311398360739404514434954060244471812564742893703366526888395185153900424707805679690135643345472026261413426851021374691894111990078851865564418610436741911937809158126868968560436092918441785245762932069198695251709235366071290199643951764522863960331949568724134911549219890728749648901713309127163601181952305458346803991894704921940720276006760605931523835476377919988769527643477459697379666758238890200809397036083206224553678472046106608681787899969225295650386054511905365384242378247520297255655753677211980333990078576483565409087407169844196341611486057818503029815972024851104697196258326330981699381456549277694436921835924742049505532573998921476392910728178784805507892965046879325880071405880423277934383610278477620422321030118044903129068637498946055510339575902037817734659196134009763424235383915369930225298254718679394733380866350228000854716935526945247463745362181417850046892591352620667271958219547130662785637223040275206334923041796558978603891002146923042700959819791867194146258633948794235850814592598893058148218448371495637565719656817086895446996006141138195890275040788872053508450146622105203224977975080367674072479461788522074077263096190559660130017088741631292882026754315895458929336839225211322459489892328859511810796716268434407670732105810443413202504834243882522158660106301028093321739912744446708887000927517920542726149465649841785393444930825019596634025012733532802573844717298629491466886400786382550523215068010760763425364711808418061511897523310065465440472635336324694074945104879066961872633772873789585855394148040063505011590449604851048803033003774906913999943917601116053324096382450951336061288199144292041165046965723980669097303055926256142462051470002672528296128101178325595973536867036891577874130567520397125940289658518060896548379221234505328146065610519959136362210497693404493253333122745129592921166985089856168982696909429853362078808263578152671894678066722486365430624578919901451712771943169452077378247450306205103635518570764636994618970840318785672656268170054973433666804881010799162357243759625175855161061270104612635871148781844973733411427960268383103309140667900949368325677275626966080134503666337858669368407751755449420978093181149427303431403280927901350377377293746404131977518450967345640796012363833858854479523347146897890836694515768244048011447897472634568411618161875154564574968354273875022210047037595429389717468521595430156774038813013011515199638551466666867101736191963343890808624493302717208458021420158324051192642528442354793014886982586770174503468553652854001170140619659130790521770413243193007567188866069750687132699638292072700869832983534737058980024204435900335049537486703303388299075005631883454760490060777575112661783285442096833197274650550113995906289694434366452410503663576469560754103612875715584839593207819876030824291242597393360763938341140664440163985612910562261165370083866205754838105917713217183200174375483599218931310756213865114874188295241390154314292966292225791565599180896065652804365914167783058930580453032698559610000591933827517342404965306440640756850960751304494581912768599056134226095103852154216610057932203294018889466281712556347583087623356370829265107874916952608820946778090137147970025386643876790769481475515551090458560475516760992358832069980387943997612633290757520967597770938511045707729050991154221346847673046034755856783654949538988451633204437761872666051485298954501270600798266143591356728614693549164839591271358353181872431326683887220256603681457123550643094591409792185311542610446639338814848423238330639106120481033865428191660727449286201881944414685942319289840782301413203840282953908987120691656710429830205228398177558139331456110589565610529606009994845985308406879646741599545811526326790953968481968107761030754174246815598306392942784786689745045987531446333171632665030423284856541503934434544599010327554603777359866613444060573753180172562079758022929402715175167273449939039888489813771722323673392373473030790167418315924344715907351600620536678116739326355794052524595229813316549590821594172468397615537423237631835786420874956830220686363060253802186170584017963367245266768762867108122237133134207041082597948607819888016740465630724658108291202044546482929903559301853903006148625191681612274966324593950440338087812380887880874961856623279626740288538650288656303835417856622275802035775051092113384545604253294328004941428815951107757796619114076322783404952116126891827449576710455325443244146778254996520018489332220969925343574140291063753795906436666368839113300955586913787204526243578294994094616183057862408624280882190272845165255719621095076400576768523853171703621742117584530099271633041698189435192643161478932506172328805519279304281242211486691559255913858983521495449612042420164413499401020451395174422199164844118852405958259197910603659165861662596792617801891526340064514650185278316258340814451642534703176041888252429644673742283929297583494666818790878958888594931291359707141267487371230360625120325123856755865366394524109397467387566151533018562144318426484218368216730009246614009105785298508038787806643361549226448862688076467046483612234000016639515346161434150955003656435657314083632850490180519644338560124955154938030994332127684563260327021527031884688654150067713795817844081197864270872785681420791759312093275370922457190043674917803696245225949737965528096064328640274063722024773879984854946973737992912554467834761110337746634370968432958381474777845575664091523030595103453710762991153313207910776291019467073310739527895571703995601233313092542599338604546818764834344139955115537143365449423240804314042166599603507435880509949785827413008102348703930178417502254917064926047237773086420243579586163635934474137306837464079615453857044715995624054706800878589544424016808719883732323343826052827478214376916467080012399639716441824274543511383222012227948204883297262718576848243202332702292703460553965167906684619641294849965425122425341626445852494087621704284339752395348856494104496443227554942268057454155440176442430779405501889121616171270995232588193130485550176265903702791379455283400054622654385809723508865039138882494166044778465220988321382772697904319875859994097705408965421202228745960135402349476271128013089036538563474999115337060589664043822459685237233504276058040767151867670438254748308897046134336624193546677614583982377089397420842149065296570812926327052702406132394132391802287770086562420686908159137864636792148612068449194879437126973455900895951106085742973932993056615624133749961413111627905319279979365942641337387213036242177661142607891803397075374587472534467903183001316455572102279362675032495848734584971160879395025366637414296922140805483393178585788814980408523694754603506765768570916824723565334812828107611541850612453051316100032437371763216617472073855195782125367512638182867680280072245058709756218611719311700572101945228190444896844176246027865740239381270554816743686340418030625450295022000802433442664695860071526248298683241847760848458635389021613607096902355752501462015498964724072922430338741473238618464004375723438654257778978952091100988660756962015179643247954273468125671966649333569119046736616784004469129975933840474318482595355923671119350902229242121064455921680202354780085684306903242247902371768403724091260589162583946669742674186951013149122473080015527002480458394649261889540592402204256642545694168832582568681692660640613900145236469958443770315866886044784854129628633172724167525615518024338965337932754951001044779328847368885929772073879408482892849361129380470731871742107147624873159598554735783498602117850882726933442473351649837104348691808405269145261831814282685267821101482979813005980922888232270222421689658899473296251578822285021203847772782924896751497990547310107882144763890689873789513503418157828073329180796391868036610445794249644037017191186650709911871545012227997112680408077722162600630635104465325968963457480859816763945673026046651159196093623106051814509100324874308880722469973004902286095547290611476767705033421157446357370864464732585793840208555759763024457838076470036830474030282957021886743825332907536607308359012198743747430054710744368778709517643081069416745785730987157629027352474896490316844616211493481534213812910359757260878847483733286717077533829866778403692957611788919369699355754555013323504270840981445287004467091376347968206560320765998598069443729802795114397006978378064572133623934826825405625885428451558171349951172109383146101364087919227226043393772747121341840169994604270692202271427079170471363276578783890767371261011604600172190408314822486363178781429607381968699167684060631901647168573067536179961639443769705462946957539733542126683444904420981799107261074242508026818140523511057965968540862471587073682713663216925972835394351048374408613074684700547471216379438432966510515706805275438153647213998119624047118803994202094278405008778401440730317790772284954363337624235688924578465938873943778495500541786530875771346131330902523603468195481317251339321713335025893459614624002424347277475475894833208201830619925801107853393698180142607139979662334455563099847571900786852488476981559985831014166936098365573289067905214046087698470579934121358242024703363186496201954253156747095848506271272078523275398013927557290373307617824236212209220700964139898478623498407369511598741216320450279073891129059687531952406996027227452307203327319606112215173491762764283564320912829650617037215354619043466369834392636309077823180863238677872540704812382782613612528228345959521287142841146810034084640137346570258985540027890223356357338021048183858883852275983658281961285698309280195834306603535502016431604069148101832762169144541520989446855617321220418102943009552624632816364211814854338274902045329481537641489691334990763044583677470206944506607460125229194961403234541981060417065329038983629151471337316562695493731952808716151447340704946062915053617049897025907530664124481476274843245659570936119126975341393324999505928568566071296852035706961186714116526078561382588515203003861832570918280460482860209395288070996940491958758758412272661891288732067344737837451713654632719773278970884138825362058367424083258813428762606486381914022219660942279776973282197845693851902528445172997590630051467034752806844116214665858641524407706279058200582785936137632940851407269543416327310722260079610587693032351998929866884153654250611419605782230031703759109400230914574286928436767994617695966403741404368768016219977092484310274274281985297064541523922198263591461487742061835044815053522868697845462253675957746862203039747338649029582465557416222283437111882315559911373534233046347624083002150100851748231809973485426201726151584170392272026485753865000051478854282543859480817148851448401055800066491488494183527647321049834424859176555526394158108104583728494649112788894898986465039887496723858584703583829691849791191999480541888241203502893529041140320919559968987755320024908710494336392305925619607065962308796455524758975526586201972629881476325080721107704796656005259151075300974321271716294780785101527036505262480200834438153890842685263045113841846703065260501942967666219856540664371394419813055219568572154901902026132843162787149413169825376371654651910512240373423357385384010300999784849841799498256079759025273413485950349926226944599665443974792652397609347964504566665352981494548852771007208498516235634231656776904264131428636227815644318262092644214214046208196719116892732192560805531856435606004818416372843340440767735466274380654178176098422027016954508048439949999478072439594298613105815072544218974825099287194423436492495527578231111590372477907736813242866967315454565850070050953605664948122423938263724555154630665807421061033919010416259752661097581588202140640753366584049291992532089012479276284537635230815617755927731814512238707984124297528356830622579013689226358293418756259713478299810589249474021198153621373070159850710449689917760279673466663264420754228528889663070130655733814363940036527658427022287081875749169357708323536308955149954295831747178327810335416839557933801235920847400248624701833813111791434886795655721816349697369324251219436252999383320786853272949963463912352956230526893737053473304364745370255585152926355271281194507356032820064983660206450607859304071698505236557226449331406417352198869503424170650230182430078665387452290888553044452388775133083962487849148919518238466054237097057634170103177668332604481465311318356190215012275991310536438335434559691262827171680706343596447166271792287214052587488087588350669650066562032022900801588435791029638354025052906485436107328994338496777773746254762199485902785586561309059284423851621181325059927337656496889792216868313507988129654534296847766004739967857384889844855524415332902268140242577534733508695316040061460657663248259493753190278040442809659476007640047540645490505922870494171444551214712884326436771094064944265155064257837652548867826492228871676368355349162569691489126896359601276414331962113843711113865534823419906301493576724477726581249543173231400550212814606491520598687554841401263970285133602818045653713309926776898149520696522584553591138057424031465141848355580448271106531944952384975511414279375880353911856288931356672035178164366406703232279230248315115695987915849506229985281790132037022453360592296905906283192587861439585502524731197822735622669695232383400801244799192430513317691345494947163366891673505667655262324577985483586904715720974154953390204172385802173623149012976980227683880614561850851862303796829878691471406768275554220848407200290433368118897407049043251678931394206119672167752632643507716399421571557319946112101886464152840525171334665213432443143437913779138518918692890727181028336063351521961641261421506661571978924774976037241413098334813866505527424392235539478041177227722746311316346217216721574498384920235055851804615067239103063881917263639655009625878044499735387342317893116168182919452514274587522439823667519391935896997657624682567827736290233290638098345927092583595833083377305315474318427940644295779538962660289435476102872120322009438249611553980632677170809756817794311422724311342087532288000528698335681219117501595378083661978310899161070822310425941203299585199358533816576939655903949858452585055180656132230907332335451939810680445073345163377737878580862729404110174802088377723626646293614344064861212266978535169761639767019124863534546013699255766840045431299258249328394055276150308867245005421267629749459542692317542621800419006262844882328251449707021653828377292606381821937740187760919097327449809361655077980021608709022102511155793807319498977845389047545283882304210011927090354614096430748493395781735916090990620189708443913484040241455703348351320804263703577232349401075189849201980047365388884427849117519304500117887524295178817829936223892727671583993179269894086664929562638650244357040147202046115382486136886470395985256612491160360562529587550347569016521409202864460723673009326600760099281199011833110390878033053981716881552242910326289536503535359704190909070093804081131367972391365624716001882386994683513166952180466780520224794001220738209171711518849202356128430916826162018140158151333440898796745601615190335371276094521405488652527674063523262767057836536372542454604673322851453943307593431616091318258149111492625565714282312292116958896320877768617214787668918557390985668421202463922819539053051214611192129693813099863746508914995177983675677237933556462101101780370253736657251126482075797089176323058473879680479228224203768099053069308500001766058320831865678801602357892268845026332339245395686203880347871535569948981640462992192975915954128701335218244121714228447728967610408737238871004127834369534398216963934411367384542836350721478866038912147179199454643667068114102822275212070757421597861982173867309559333717986213158604608112231632258746963626001505069555519192206702435772632239045139724344955040657692065075914905981742693899913035632235299977144014302302756063186932899865028869692717949231559115511185242061682364904345547458491404784243340452153023352506857225491308095011954753953548951344956042615740817100789673389315782360782548783521151982650244965422205388707724146323443583944017777464383920321246617000216027072040825169723901309802504908305433567068028088244879184100680875311499321476093193893037778286161258109530278025120375434151979590961156984474034380943272460119044877082232395584176800850219301654910638254864891554242191926564487535340472194325816022163537922736207347629948091004858804595518496772139093456505262908897072881478567529968127012386689671828186118050160797700666448498304801925402886762202304405701507139162560381405077878906339574293869472005880635497720367096126635040800589842151723422964988902239540118985953657957577008431890560923764595972354702272248915537129048941843076874118265770301859370058359310373016618791400567554437731891427428445577945987880640363386952700851107636499368375004812019424145535975372393026383469127671598012544062935637491925850133358287928713282063733995478530262812824972465246476410674105008538578943042173689830574915564374403509606978885623113949778691740093374864855776791266522028553080218859163419286347639792243050223828382918427203560823093239374221026396010412316004415930779791105853265989647570300193676647310573337397483604245968547772620882320155389629547870719517536903862299384759209542815515905874825165592399047140429761483895733989964351494546679110453805450131855697256470333981780577146787034842677313373214518435381122458498210106634860745510435736472208250188882113531510381542920757980487038762903782797115192860824899387403368924031009620618972695467734981816648592724072979375952219562380363605865725098399676042058717317190517005552606427686660566127969964429372093084819313835629549827058235478808481663712089090859075378594589888764250189238696623127108757729977513942035196730542983344029514753942836185947669499864908935273043023372502454109411141947529433131857419190486719356876618462137807519614361982424041597618058464687141553370449407903181604824078629584610777430628498706038879864818204159509095805798862641948669654610102686564060861784949964811860654503676334651220460147992154005531253878601577652476478705217502598463031153033203597388782893292379881348755424663887410452969975366347639101983264557238470057066181383234888690866369525052761554357074061491179218514536624838529199857460950453504937207261910209633315171509339734855050440134219819595156336141263865380169604591184469893310080464190624517432951897134024867237267242005450435001643213128710702836615388133455742856684047246440836724724616821491865557728335732422110963732063199976659888787502053798650854849020728203604004111372325320058136473636282649343978218554193574159395570084239941764934064216850820732523939233888162923802278652327085002995012663569588572107643915534755864520034272630355320243252259913731495649824816962257190945457045667653006598723377230320362170369807735859712056290677622716527025073692697268701362008819726320441452313423130136529651606605839929252169064076812379240788190845188748845731099150451301178497560657697633431979235771338498161174841285772819205284775840585750804005719672301309291675767985449414385240313849357230549411035490865187480438175142032225476453633328471465146117289297676075161893094793313224507004770703759821505683763137970784472641752937627738501755461699125375747604557441134378055234559392088448166818999077320425624308042365498911566424285612495144128222030411534775708585798211030923129194889440027156871643302867842987176313644455224389765299323765921716056725349559658636579587922514973173455961343847990207897314858189050682810686904364283018631147712769231902612138630234672220349740219378578791968303876168808885140090951865379896739435473832959141953626120263080337407477801531057206672424881178873098041786689278558695740281434791083394133352213537050461019944661918947451932058464322391187370464224688583116048552618073284567526549928600248792898301146121940368797263243707042687077296477694679147362219121057300123183191196960402904073433189506093323227560234038498599013912870970275901146119579883582522355686884435631647539511917158749229211376490557136459559501781908960906945874608088551223313909778317251459649272520918497070812778036777391745278267827966119653981143643326547089797639570565348532827379085422846545292246664328047528162254401320328835288325920158719245284460268354269708320658777023023351875248522868066171197836358933209175819910451708840624240611160546438847092503878671025717526152725068956282229444559761142165253212048577459960533975988294010763975410211553503614243279301815069160132751814166314449914131748648514193888699312313459865992748129801410286414794815785257295935440894372620681183443975150408571865586911850772711662391849277332480601587530166127948294382315009970635479779426060049671883441324954382317983884106471324389989767185572244572499546270396318978444246036863395353447221885739266343834473523861864328250870232488981886043777311115925644808573609411224813263177250178910346839401207975815647241276737606071109475636769832820711445399222042980750248988986196704899984949732125551653640227681237508123039884030408950837090580175596247448131991083123226479519284327286626472276077700448624109819614119104183108954842972532185848609193127396285025424404379255430325008394181066267549046275329874653821912407376196571399287777308178005512275247543769282304564481719728136439960829090872047639749966243497225521906153643540642214396863797634155904614466384880881995821761782934802790788206495244171586944456108608198074804689713623996712380456502484476391979561359708931272890097557303553093501626334763290416481862011105273969902195945748268870559999996040998683353833440599514206136207987186608785430866447684710064891636837702032845496206012056751608041787042383395306907960622472325460181829031593994808557981416641156547551756321811773512640903645614034119231246485625538066724025545734943465599072989875193998404071750928843307596478207930456661819797281474531018277355472830943606516936090877551258387576032938929600855781966282170264266788662204518475394396142413662515134952462165364219664488873529744397610479916419760931299998145147942389849749399733080132829285035584185949141787255243405611798089116244089996031908516021873824206935481625446517772754623660213617874761948698905629603397023225606837813672975553817746261583352771949206228226628827203272595421714237408595187453318282368327811721582860849708063425265763283644826418469890152236885726701164163298812125485342609281057944476871387954710653231189005441756456047851371664533759589377160957830647841050929066278837858540176095466477118606834597375329901170336865557604509103403241799536296873205847396477140739704798400049613148476495407697286708492649066337080817514207450753839008334220156430282467167782421013071755468208550704804335562111269271102905441334336691797733928696383017862860234430162356202043507778853756889295472283614508149213890710971404033101868589266600976426017169802816086279441246048654273743396510339722183347742008251314387655222925314453417623479570004960917049475561239237348396581115925162030950369048553547307534920287714711972685891342612132778989301341521784128120232410130454861678839999116310691015444118163589849701943540628363943197404133708037085986058881909796348460026137020543171938200458505510408519544237714875567008482355314122583540897960902162951812384045836165391239769680092405606434836693031210976641323487785830556481842753091417283507798746776079080871376367693609699031530951142401985946367113791062518425848574150862457795616762205101367319863876759799776148478492445767144705286673113582600677659033582859116011648717299345829551432703527122819322860733702880205867305707140657815411810203810771733247046785178306488205314327323034521651116606636329850469125491364550755396302392456961637806754011982787635208153393911992484941610232639760820644320397888738843412280752605463896972997060347603245108484721323292724731583453849131594745812674258540803684164982173418931518092217440809052592950399316613372759615229842637875139697164624302652860400306942553349275195591099286373662368351035598182934821100214762031458456325612468032513351021030679372070138908586876509585696030517089069983766537721037376510777409086135568330179788717015669900940726953511999763074768038168463980726190553178876022025858990976245902480343048886160655263476412081880495728579265183698014514983552390038582851771032335454209030078361066207575346101502106296500336428514539926799102043078897387886560488002004496966372602012816142329528276566058557572494051300028126288650108996433954165022517012428101707679695156478442235647898180058269644250654873391905099767942439515544205459287404542762097242434079260673083976235535932861026019180770332623465737345372795003639226340989698941385602825256123135593668764543005860385282434154829248645819184006267176726123966637603398856831137400761532000492867662808844178131302680475011552229335482826879381176154106816768052107651557722559249598394711274881744515058754206263693733245364867128727315283951056105536951679349851433508101157273982143198010090969018692645412306759648579211903432620018632890364357290844721311343760039031884258215275898467248448438293992902019482557968951834474205824010530308345826550999015143870667251947564361806343955320213701917501223839437832550766902257256408772887307565841573756815223498452539539447349403924087849407102455894617184603169980781371173109832316663135629493691066234969702854987851037467509460882909979832016365936761529007196119212264888415872723266493361324094823813401145487702896183067685833000437190904266129589612259283904384390235599832895023793911823515095063126448942276502195923812304013732370765222948798042016483467485637345301952026473405205865309917267454481159526796794622139586104874064675532240910663882937238338901696444193193037148716012168642763641369382727452487616270773888062813128370241653263665676953927808248016837581415383738364528196366610039902313236336208292445907773179292098887229040039831177482919387790745775421100280965859655644295081134971864782906539179592946597540845829019699366181764209743863847125361090883008726878516216245294106359470534950139539299026580024185288061987168356740031067418189746635784863440746362189432852993373053986757470875463607866979382378471699551352355078600031484629797961879046321295583049090142354581699609163420945599434831232360463671054025115834575362369587227072764396690513878808198469035692074298077697701782399082450330374380195929665361446872648304125067487032977911809216780414248854251821775256419928927388423366693883674950082170327946059747868655488228915322759118451338903005643159040920215314999942407432661547040769250084558899247462093462290284338363326936385541493230745487799805259735082362115080534025490996649376554598748582661960579783719889242575211375348834096299530342888944177230092089480948295689825224742074239255269071184311870984801384569018161364530169956850940926081979997063747091804642064042546136469963493486449993762139486278366050582028387695660914422262437850132471476207069887798122095446545915864274904075951588799309112277079350909362299777606844729748669276450044449686661804277591922399456345982247248073352433991057494819121158896012403185936260484969574555180345769301631128493225838067664710484015204941616441048489989956500875472706949809687845903903734992118946993567141670903912750755686512820359223691015719459997571729665928044530794925939408400490230333040040949116580986871380757082006229711669055614987215807010065638168762277166913852456698619060023063320887359624518671229566070989454906239686346093146920998794430766572327049916500797240866896575596921364312899699313272976945686317564305826680147904937565344803816764682655172343423085680127351758323779216414933603883936284653849523707212936758096986423701529955623890111501204087114711877884315373791817044068065463767961678199926644154147085541546077389687946025695809953660117972445016166901573992692896170368883283495152465532029032607772722925218973504769370803320183070141074948238582601137327939346047920723508793575504494658878249612000588159398945709872496881841752232205189205351710764243781540827327377153824124704111637641802984733473556386522956619712181218740842762468257575169774270049040643558993355445845044638389914630152882652074851290871780196817806967322657188343703340419213306811289193593264805554379893016805869510506786300190693842798749774842611057091962323151062194437920986656193478849998893603003459382179687776644800699682600054075960521580524421058152759350225834818005770576784739190891255117358867793411730297392503219037667142790447396072337507075179833628293980494062322358094679580297829974063895075784903806839429234901143852591731812514828412492808952809878630245923295080206479265983548358248295833998029339527198600848401090031387474141907541005539292515989648934844768963899646847161139494175210736709787045859051612080687299923731165794837961250177698877824499389042727813959130468092912339963376511034906810757147788031755084514836134413021352346828319094448226246325427667193502920136564301611897364302834676514619609767683858223849475777607645715726966935980267844418011923641586754368123003251687735057500891889490253306064759661108734837604600025098820001257064505755257238846377763874615471710491731207810705950337182436060043601441386598417794584355507182758630118410305327902124081111712021514889298449724759374486083151331028296572342883887574119475166219453044183192749600997763914729165855363736815104235693833929346165687128789906614205174485623828637725052788714110304652353897522908424457466072348103281996823755841397388524050532817811584287743372111251236187264416487100919499847034044843911103774944085563175899576231905622966473581128305804939946197795568295094045270237497483018146906395278927828357602932665569212382454883309376340734407396535175638999009593197477531014640350208810994584469402141291302798186571906856158400623002223225668220735300072852298460893823763202317646157552945886109493913325103135997785642248951538983781653817814306402531907234117806995213885027482371507228813694427423413873739825026469616678414712928148552613711332868849644691350795519956430447397261599931465773578176842327980583879588430077361268654871347096708073300718512071204106949097647840250477869021710905037649403085169327946341618567621467473407996330796550957298675462943115477879109545488358174146435266180784307224213742594525152697692685888464297092996035633926719470153134964749673076892408416586818367315286998704602676924128793955237050125997711166501920708795413874310570481457829534001801989615172491309063068050900764934715133210610101449446674429862325015296638087961957545870216351228899187551330204979236511135642824928054098170594342954949429892906834021761790770407189027405664442666076396682931338028440321948326933511764805514700860449109536769765629889584816960868084545059872101790164548043401480491219163659392669022476633868366971757680293570687881226528483868499767758064273815076152574595910297560141496663752193143758561331468505857456928268602644679054571251330492767270246915732774339113866922866308167842506916864859223014744788041175117117063521480011511130141250157817786069492781542654511937295261518706442315317986152460090149427089095267216723035359393692256042474946990781980040089934218872116453219560550425642753902730237996748902716588385515729031590060648053526965999754503109588291268323482160947594429538001587777080459778967251969218803216000669089580917966122390971865954808893367104794252079758146589340204573354906963329758245126965528295621516008469167172848207760426800936989467074881599127745841848198371355338953172045960993625061337818732085592568748190597314203865163011019289861405621705069315932583129730686228342975744667914690014834645200064839693997797855652562166801521273260651747024716772534844308810711770083271783675039573034842311941916252275766279915819067632946090067935787549195745854887874883550115876579122229900546162397808108839039769832055964330074330377555307919751619027166061535661024774175357628082065374880358525378363034199909515313241608734743816365879485159153237697956957767138905837919416246317288411098582706632033606395788548329735992651094731985224133672854235169312061808491418788276809664067108528855886538332751547725655435957110721239159666906857198946953072969268742545116337814009603543344262853956788500495254705642961962637719841871502839804429163879827761283772531624896512900069796779435262909207205336797585604633556484021167049955016163678051349696429810191198254925087719780149174397457782871682132156864387834537905501343204004494830956936692944750704865563796037326326528417023161847601728922812755714275782542124287914924466418975772797521226232540868153489652334720092506754073486685821128872219362405890270400593594405992511625261590553722489072006104678938740528092889820431768888148296247181412660323198300732946565015198522985960249215210772694533677012488100870314647762057340597128154978243039301747110938337455454616088762785824912557558505535177015725575566029122358984030836127377459300777063348245840558883776524659389263392156154947544357462852459569316970534348940088168775212294246654640871223482887350483485218928023778821885761346575993595696279085422599936264249053442890855250635832158290511189821272395853118024716737071820904393161008876486219916089276870276226203423525534807130419076758449663851144195405366222830228940652609559079532956308236935897133068266912329194305346998027536798205308436342204857510923792726675006516789832562452992472728968979319870786967780244437532623553032086560406605078253996584693574041524393441293004021308300736774017341643858408853992920324783215144208166608294495665680729816511647449023698280909316963705908353346280802033474204219025259066527873913309108367593530745184989246354836765456803517958260883901283173818543349229347690748429403868776012023590777485166865663850467690419968705191098983951144630529233566171127344180717434900316581019426452588383483630373629753669777928143817699603330794635399102366492697181134029796950282879757855172807682013660782247936879118203516726023252415879081074805929676707634245603919551095364162456528634333317192354706351486212783733981401795458385660903865497962996159527766181930252795474405657250349450170316217330024872298642282847991242282087104454797494087664923235134826725266937661796570205650259753139765987085126025721401115045704895176665421596068052043217614866979963103854345178610840947964649580199913992808927565707129215695268030400154013712907791610720601410298659863233040676818417821382646621398155142963396639965626279649981891124613853784349465827452903383410850882347947659635754849362957952042427295761580019912148270973082782980371533020693335580385139079164267924526192951489306428272043937607107701618351835351614683396870192176385379706664742307058082422235563350874008252953902684037254760027698116937111312858314115255651074285381464432166040302185724148970690991461887127089622824019347400433586824262843317627150935053311935750900156533336793282722765059270827625944093811796197738403421775100488756272780225522510826760658053867787178816384316529571995065452887222376149439341264993295808980047931624178709554192142070666745630558918244003361919911180646659130220966821684254659152879560549266710775949637528595888053461876029810027833537575811680149320623776791905659740579888706749357298396359588516524301835274182874409289501749318830345350368141475233066089291617563286101259870879996530781809562017850403328650882875756810316642321630667596129336555673167888277711860030219677391268856838831384443585820950240764493946794879194530697216325382156853841778118798825392674676859056978602906893655526456764379975666365004504602188365880554394691946005637785531908264947678677248402472162408274084119119978600429739866540231951316366141583366105767723344682039480209139008365644055562331843766295547089632717195991659847335875833182008928068553872980852084104862195660105477749336528267184305913702725657045386840435477562678341199625662005290531516998995833554960731324132062712043346599598373838022719831195669155975066961109244667952475817617373046701792230509801903778040051909953484871035288737677452476414065736556949980473881949735545785711637408356664000476232321481496488222030605191523503782539632092078117159290722295729611602372533740435751218475764100533431410378174778490106483532253833443072691529849991427288701589601387187869225430377837524557285461421696743719265426743313704159852618336224621082178570316380953601611927976907514846798895743580043983816023918905819736337253041489502432450240716295246739418477203191947820251731950202719497902643592405368587498553185690414268842351647818478467437094439970289910373830401728365482033328755487063778265529094776515061147516290958118942033767921617963775627936950306531321772906863935295620799255039323156214238768816466224097889101566099985158221596135739167887090756211532585535287882437936365982166621281460940029330701999514923019020865691213950482714551903600197701276797400338564307277909488021091972342946274771584010197195109441086416697078984574517009815883141741718277907519337942517162132365676075754576926944408769779608630333518568151754601890031295977371831781557763357600348437176561424770433897153518422971688439807632517753636595792760317451602338937596689926165771407515145521747536475580713657707034696309778622384243396891845176412625074579534686101748499859907950232181422249954056860274146601273184704007912085456273626438359174747814168562027881227135490684486322036077562076209637499814410424913106586467354061328995724734682886616043745423400713660411667433420373804566755891552223790096871069770241167147622334426476278545470212028580816803006634985939980273339572481626707860073429531000970777804108932904290917422076564686432196956099803733497888714246841217597827670162893269419173588455911111933942639408014292239775412830374527422429912018689448299861295035685000803881095486642982384046591401805729490638902228872655272489592124585332360704437332277221377122046966100025566169895755454088131421464381165819516711356328422037739564004525023280228960680780549889703100980382846094970870444489049303169607960052672489933417728581069279962637198604310767196612015742016848157010308136552522350973637157549411401207463222880766498987304175301947218211377644398163023350011912245230131442854683142396531126649786516297146040583866568780493790833875439548368965853675082402798473508563032906594437540877393876732210533883906592690345597492489861539987652754372086122056256650776390878884527883360750659245977731914415128270060993317626195596210671457472292898772229185786113481548251571819468069203998002535165366949602254687165375158547440068096724470904148551147090765073876747141871927684113885193698579586958675401250233005275884423002374309122351523900456687159358514416731557333879343569583053464833822774268379672522946943581859522617012172287703195285632039319480386253598752589456938864527928131677327870669660174167161022357401393381880054701318935426025273724081300794545564356630237452004763013345490411519646820538088196966318236774014258213849435292992550909083648965666022253171617947858356218094074768526797682404098477778957899613295504885872223345342243960312242283001436685678328818151416797572900246906863605104119012865254198836468896268187280114121706880212169240662543027635559619328149436742905441411558369525528899994726222944366945280544128956375991350959897088807724359199849275682732208481196406459616102338101896251612689600893279921841708088607048722912021872495036700947628519121943972915289143862096909251996129495881971830965318450490451282237874515457608723180668655068475392642373445114252970381846830282987043637041966856189424343191604725410852142331910195006865217948800122528315916317980424298359408982107160071079226345883443431136268724300137123891594243524022067572256667376338558108355398380863654607286903080074663660857030892376837775834580784861825785047293705430931308250826589247559967106857926061792486838474122912789266536277974955775135255305033998981123460294193472445294494467091506019924027142167810859128665053901515206690273576924539160172073302569778271110984132757146368123359549566158030483001871757805270400313151446237021700228076968443629089455008893516669146606129948947356103734285257331555146619041357920388728651025996355575148141006923807971669918576473254917842875181600768393539294567886658818604990183858748067543659284032286192593086185800543334186133267272397770170794592060867828160977282265471648347813611603248297253081094184704715069394509574909336393934384375952943872335180897507202689126656317091138012674121734268857480690039867879146086336840568016878988174458128870773212002626435792733670792301411523392196458451459973748970308559714234128589645994028449636810855023474832556787608142365287476517723989276337838474590020579398894520192116872173220606482554664135451819625336852093199865610355877917699569995780497977156523355201125289531779026096108404951455790513262742532634133938216623208827813783837649104703111915866229342199911481013882897067987225404987746110651394632882582491167279962480058819562496024149312021514710179833993706043035827010147622451513903806747775912445321798623851334302524794173313475738020121870227270579967037093509992835831031236644566494085958201082466185205297433710204121227521389651256170257537899368942761870285564113228179695231578642864915700188803856205923639270572310467471681113566609214741786237682185963641522959679904236431124132279135714286278145243551759490468304625960487865110846785116822525189645864823666397476651984513937263724246337228889514601202362199919163603440711821671712005339337711278289067066233174616894140773239133852132495484962953435679819086571193386111017835797703868297041682181871610187995630790206876942888686871056561489381562879825757910082784863316292309206362431029277016372627540884764047383830151479548130447328836184260196097953891125151361978415922800796928294223285831867708363789028514573844572134925394633413916229843913685857507650611742565596388162351603574077763939664835636285989520775916795790865708678590691707625736499530416878489559705102665674987445281278536068705474979755553358625221797219997368743605853240792119727537352888125603020034928165597720500738989920624832567115714816260008854288416923872049305899830488619046790170239408786142869064644585294471909285002086747256820075965005936980669218337931534934078806005787626708083651463417426838714159377076295855067493877459094609129718417343129129167057179137340609047145228745235013990993278138467815643187781572427045413480029517770351063877521496928839188625362521601469595014296796016456102991798674290736522847499023779078817367538095727118972291962699028568535539191472181952110056494835349726577345528558457425203974953293911239712844979715818145546759718544674804604618810025497924703831420763982640049311243526048300091390281248429564914890682534047570849515077337909263706094140113121499096537083436848708472441729224722133252300083803314602986730831118169634313158731112772488644550029494165720078347427865743019664578806607166648537922888347249625645227772707964353622220643662851443940836876030157822949727375373411725505608167075384917538134414080928909210120267007978821051086205670659482416294449203457238872291961480080164147494066450292053868391206031592933004160739325519951036605383392447411590086835740364740033316028044168949409987571958595113139755902812647014820781688113710899332431792884190760846865812796277707366763998500708002168284542168592031731647803466190851450553639025567571042800755424073049001457695341458906113287755388482802491404620604502813877223176708702071102969009008256255373267359427751221852846839983561041711627217622282286236226332923957839527318474859291969640484191120650245220831678965222769990706479054525983668882376353307542688621328468637176347374060344032023968408311026694680399963953762282161320585652570814121427027893207084632649496668648205613516367495086577611434100633813200564303805100902994620791092367803332389762492024648771939531503126259924210331027506371818590894087712219614486349120015960515070087854512331759339961613649466258249998655202810949583257255745936183903718634885407333005928598648337367269856535533416022029039812085417452969030798107408185920716962284408708491086200347655571446761720997221704285987859350482548804501935085164421911676929527532989714579768769561721719504886476216096858168102790759173740079151206461677942539697929874070192932688441074153941414174143021233963499957674842676849258400851738932149121635640828641588322006475423901842850272461871216686780787427816001231191229533174379933351420959451557566326441859458010124932344625229038346530661004487285677813707864708667347692965443243445913657839723524630671409535328299339558690360400669784024740778564466749968165719933230758196578769209830662988760204765544542053371941568559941391280953402329973202929166131524789204259734449846138086695635446812666753209328113744182717315693963357564444588142131339739604544616330165978638785334722765432374241041757160936233403189578121060306364566579110311245719586707768703189445404689101624180493631443793719010298213199496185946390071462294783226893177927111625219741258225297873533802580325965322028795356968249770752804898742761727011421938711904506905966845776952452668760996310762413131129172887373017381753856418484411543250486578436648826654484352088392583011868485726552798971428435921442131218097727989545244524168954086011493438500114360065995229915116430699813559054217355752430647075712867293937170401787945972021802296748508564529539597060003185741120099610464024788804125377038722908227047752728017289137076700097614329707156492862922930925391370190894700155228107445996611979992298731652123103473191991657879206914534061904689948028382076421815233407724067405265904085172328618225035272334171529439093966797735240056666623044166984538269106293624088487443556967433618956083147843644889292248290701094627008088765721782422531810360427540336550158498684749501978419990489190750326026335538199666047668680242166676980814127800032024161058776513450744566778596127942319782622736161800255360190582917832526901718645490779975275661703139256466384582490167520790254144225857439567665130199246255401578892790319542234550496966364404257211966286248344270478700139195002660837005580114073709756193564718001203729815079598343758212902668434820722769634264132574091800242540947746279570903562320704112272453153301257458222602294911713134157415825863873198447005491653558584090148365747465642072190777701858618485653459655179318193754083157259147667494905321735951066228239888145404801989016515563504075088829269862251597295898655056563887948975045540832824830020090404404769490062713265130044450039260761567426048499662769514526382936238347743647214283187388484466843596488350304284077676133978865937144166295795236273497432300628657005809998453451998607375797667483957647595411562062197765943556582615164795911294097930243589826155290719830358325421604443925048690589114725063296559891516689981986139226203527237741100315680539378411829308597825853091761373495547879219816634822851107309726109648165438910033769594019454672349224389371722579206078321315382131279756824631899121513909549448782957676385265608981829419634359302553162337728036303558127016710107682599789610088924722884058720189911233639728757180655683155693067610252558002759275332806911350262091489714095860001259973486630358398172355341553067744973692797574799396901449639246302209777939205761724436065894693514742648061886396174046568946497069412715488766684456833499241146281260175484287229239550826832765352315630827593564391584679183869955742362248286455086292491496594580509825791012660139777950232459001404383373591453757136004940420764279574650648312328067332893306681683406235250731079924206946481417126903621978088151951805506147873989793118774242653661059736701541893615020736658785326330368109637668059390095124869343042760653489222713078221719319008176926167666860156426267242878334250704870538207541523919813156548339366651514036027512666723119461097879417434751117446221402713578680047801857169095950151068579140523789943931479105172319198511381366233887115866184020909523938994361407150983481881587194506498380114048780404533722595293017730364164561541198487001463762898802902086444922743355222698693116304198346523359088745195559053052049881421028120908770712093711340512248981313956098669313035620685404943869170511381542481788828655089606338585340649339378142671701360456679196545626872306641319796462446530684115687888147044923493732953645331269983296521592731160586972582806514671465107631954235718676632225003214479477513078619584914920377977338947387060225601209408662298957496628652681188724248545162540170784304190450371298539425371871130684887803294552466920305144178917102264228665936343937053406748151521923994410201794294762474498596317567843944380263147400254130319083213851190955145610581536720184982949379347704781698815061056773794057137579736467917877777054620418295945766376442071106555226302067494422831868410070553940647942178729665559769262223638620568145491658606256959467430815878303866532136459408651859243513061243124038169607894058833114381918966020536114255821967771998599260698522040895327552165849717046315385132392520724788560110956274737161764297553946738593849959763024945960476154957956966967760070158492984270885940028508216825259432478530281968777186313972913602188678785673420130174038890127979833995062834600387319018620934348161486099595522549797584880797953147154046838066746939509342577360435452936942668620535898253697690300858422079373458440359142592602730883166952421401197169726502026583195544461927674854336198498327123225233800959686828226794980651552595743527487977536207268508451180430137841037408937127201622443750204853602621573353002925117285956027036399329460662976772262746925945314901303955510084994998322951577843374525409994794477443157513411759387477909843971241815874566465396717821915874847785430200060277139504832779905714152869009297345482471185417000788667558505151668330551615582833715025167845290560162705870295863367015676681249909244799182665771542626398513509891327627639311704595273513993259094559122164308445511784246494996018178551796673151349371358381010293435910113683303550903127245274313105073593795352516450172012870001174583758898256083298307072386452981630494299618526926248564990456724495154596547172501623970185320942628369387637753636686291379052162783017416484645545258803662567966757285873512475793110037248372349822887906143330389260174532418078615911355215647723344695253046819010922932416107009146086052628639307223602832326009099776153291654837681327860695737396450519527572243174915893255668399494252140062449727393939724602120142665653896058256757147773375014372182609109099609762051514073211112065953665934009676222837203097933993646278757188304866838731810480659730746841183975561777904873559324013331746622788990579431365786353676111491422788798646275887462454689410373558113693376410419277416589981989333488466538654654978923331612444055899426524499354962343031240823042907024656985958358672814261098479382830247888435959906060599357978117126354130517616329958517288306437772697015662539428212836502142062554468570407423376119104058500582403139739097151220982467751230828129576542602346629320019965322276165773838219565716403716791680346910772444898480183099682089938691305272088507380170021001641972420817054293481844307037232850560546686000825483441343499106732168019786081127565381862542978616805234176622629127139093333892759292960754304893488928704071524672382746347104022319180420546834942103937320622276107898054485942061751462367612506403107606506261826728817765522401834282005242954230638901827849107823309098983689586139255925861216867605520365950878562892280665182853372362387999014081702698514909610023910585940415523066593576736959313992348953313460937281406487382173813847783809554104544781775394698685730199303435273803117371641177743371349796488809337190239924571269970035083322839554057981150076047625517154341320529776233256313371609212442060908487450021143861463651487255087535288530245102075650563952683357364109870243048840897577270784002055201503922705801734427369157403837909929303675609395913477308013689938950668164296805318355669049000916791956043523484531069459810731950011332279124430022134247283289770789453016881263337555370852513844909930865440801378703522887582649408367077751971923470724072417402851763544260641704960387223771577869309125328685114309149833485879876169770202429513837260280965933718666082423842952857403067122750951819707626858666655363919853651834663186707613289812161841313016045161130005315687686519776178448950436863417843755681877820275660557749408008056382587566347886540442716966907559965828648524335537818225581113887571117347588552819483895441385812985348865862634973390342122320448558108568951080773054875264446036728742758907708846295596018611051898789314784081059205161363254011110939396472824354355047347608972764421024613759033447607190339209673752276429045088269642279584925572261849465463649960222944760112296635396634915659612344234112850254885360370242142332249205929381085426085969257699520033395345787868970531772469241316502514413864427661828586659753243581401431881333989133021842667681636346674102445750075507015757138797313982136204384424364903516011318595020537511836558944506842945480258738244555190275952823625628985729544823543816057065855727834808546530426679651553142344146215934219440618684863619204603252769165729588160665310227294446864549226809083482375596542085071789486300422141155166310183983847578804420090782442136289268025556523619586653375510060831793836383987905147544767750690080009986513299841600268849136176808387618818763671386336208629497678439368934437710444053810038815845439937770419204666188805011209125872958322082075180520213301619162894415530653409733166501601570242309795638946184103214737521744545197366727495126127596596831116268999030703281226720649447431331552927466085974219112931280441091344462339107315941751976872611530644721312335239311749829425461468542931254082189910462577786944121711246933530341600599080378230969807871881467631747756503677216331072562553712863356670950563527033913739064896829094938840055561057489688182754881352414788378835849505776930752697850664534742576618890989697446388981638018515693902141101611710645912192278167300344498648089976948464556731761111651447022559546162996052669899898640193534915942747634076705413626989694305981570739901179866601088049736812285602033258160392418747487920650752305693215866222055131748820840564306847835452532482361021789347462527723660749346343869528276391980175344798094916331500432243125518007754839853488641279123580912225135107006319356246681452382874684724051570449473560874464606121007880751357137386429566299313479606212829134422804737406428823899349372541410097361454812885333131918176428648644988679451441259633144807833806259783855416287760625344350151246857579588125542870523380559303449553918609863999851860365510267924586804825058449969700949589468283826870498957083383824819746945642836755256385838700543152146330114089228297461181159107856530380886238053820489038533285946745812272320254863581914407194686188585727934694820154180761691597179664494476716000217932253774031602516637365123331973433652977385579888470647509038739848723829310303062178842041749253133097712726835248748619580138575967126087797441511579263077720085020752594341141509973596935721950061318720494148956925453077631557821867488069276289380528016754443307030664553482257195040879745845019926634081141895807994072179664245575493312118409102887160713803075294123093701419706996170114567609674768655990011689887679452759990995065233656170897175910418880390357832664458106259346745336820966569060757630833248884702988472215364087567570739247700246945282112825835308245855473539933526699715755329006221748478445483338659222343602762121221876987202255521312268273821851848795659075447350688153496141542984103306878145367605436713435071575897961353178453356576507834107019014656079249333927281643619055174402991820187923988305658058985687759823345209519547219548921047314150224097193208620915499100975473182118052875907833952610993396989069675384815234433864408145405220588019617598666995388057800263273130967994605544833944816280183783794839227451845425822617838084973397479699362332887986662180378757519186222575188164718752296889904489217544140178508511719792461380614740283621743351211612178523304089991479930229306700716438686797239387566708886611266725923685133381382093017694823756500582843290494951048822458721651622795169640960226613927962909450968784971475055970246007875755617537386520854512671157185989597116079044753605665200606197830793738702726689304406340514717458398386778125945882318449909058265262471234349775513008569522769137087656378179828289095582893709596440566063330048286632832731719036943522298604259857318843279021595579618235973775802503673829214165770314183232358579560948638513237482203108171301732407289328938666847390583153205181496684390004877371130363649400974290941019275052616212707762735021427670937444319873217899385749355138968977891960409562840915189109575181605647534637858427113559300212239512720868506405558701141574602803783499295969279761307519855413625975819505172096262917464781299484238762235672952684800834157546428588586166063480180747324498256266924737813893636498317590920002112752926681681576089439723374540832363936503200124100104880364447133230437514844722630751690622524717846006119277709724486035486583613566882274158152868110052243645967686482568148361962642238614950344738558941415806502605081701093083451942426397850341041782395547694526864385007054907068340420371489715034436664749134527866753816655589971049821075004146828339061385157761050032412823662862065456699033949816428924022811420722428934924019525655856260635957197886009372585425203360967687009010554944205475607209488919623817678507779832313002056134190852490810251655379586204583047994397852459959056935786424804521826816424362588351915050813065173057945563327512315366707212824504013426841671509223827828572776136013707083299887206572514602883146704224736960298935661207496186610925484551525169910390634324062278654141311600906686918583279843292013075929976182010740387217663712890280557526223961804960117360857752714025083707183634956189724971853674381863931326775382039557926190482356434497748665564910848714531191012623952514228724148555277826101415194450930492747352614976151104161754423389521386803172378663875429800660706391980706601057157744716351455078890597583678364558715424334051808038459375520927049180190442112986348723466720728350849470705648975799008511551717052690776703927022746531501429173414332006088652176856249235314956185599041512692763966761188202409874736041923158651034129901964885785155973968132873039569829176533662976911093929746446671101690236964943932091782432338409573591399211117226350192194815696334817112142023757470492498696747594345415429686139555492734863916251668037371104274667308615376721455904380595123983952571799727333276598990970519229868291388983349080835422294330317224804798756134588672824860863561205566960086351851193389605779927301482756614897956738793461600663627600440415674651225377483332296770043778557720242938126124053856178726538108193607675280537862540784463696099259712649983337675838030590062619847726622859075529219877876297022410711257804731326647723961010413503524810771851755693787379001545406496273864504803759432659352440825184017884532263900889577720483041350441829517274585168438143211144854052609620953360826915325358620200951145678194969315582911686714404947932571224189550021707906309968135132812934993183094139857220560945052619319887242813705960561192859032907358704915527665807847521851560984068776581580220659862338275681707098720211908321449801793032957261566644481900281930302413666011854597827598532949790806369049897396303560968564345868019498744179403748670532979585307866052726536320230648540697847159251201127513011998763689958880528929308612627567779183169620498942290338357633077855172792736736611726469994913590129003914584934815334366684416326198626099397006700938440504500166225805384694152460488533932044543372060068927590081401297564078788535099923153211804933528644163788949926872231841679840846803939541786097476901634856590519210191808602849994517094337775561232921287624839886360601381173993758039988606755445825517022306115141742133339941672770116501499210444202758994494786645845376772573450277655201892291286887484993151244671615255063429579438260646869292957300365066896456982542725708452368448511904936793308308323786232247568821722611272209148038257260333149692617039901112642028664502852393881868852281319024270359381869435834556171261308180815930730539832168293898514781619185583690829445836825320076837667380959082478783981145550064065469692890927487184447246010824143262450703466934587476489098545107664691849724001002167868540165930504144957206780111309978701282229378669792821858697987160391631298173381992254116431759429506006686653413452307380660230344100383496260670377963426520229804876929468711502638863836118521002299161821894805858806292725842191549530713424494863778681645484177020753459942800235178886292539967959356190893862344206083022025626476942825556958087833197558608088477971697251700241567322821428719739590222424186940918002075488548896446855437951632033313825912851630353330517502913184331563115634644795825700945798304569104381892310616921988644982604279386015313025599462949032196812159461931387706542049197319512797302858957143772484190689028301132457375923185626813407286159593776289143723323944646933919601026090078928866856712900308271084713645685553131795850804197121141312375316421065985205318707785451901063596551552738765700548159019915124411234242852634421145959927964275031635128709986026751502074369280591868317922772529427808112844836687220379495353183142593625814053528058675660649134792363944918412289374049591335314735475501619636946290691833327458040369368792740268554816497226406476624056226838241036641642653603996303878875724910234760621059118439386619143140702203021328246726069571881309024544246496468571616461417198057354110799537973587748147077819738119035578549217920030364113795807330240623193403830485094123467907528538827867923227701766390105639154205022715918665359898234475333294578204682060205390734254391625710934251721044908059014103390465945579915830262853852442486248771819032246050036389640725316640656136083991497806133789148653372193049379481195255721939848215716013004656696509752504212034494938146367570658759535935397218931791954963239300313070954119917030608354282964008445138005339272282200795880003366444519683889462908967726206674801332058392231297148114367541951795350058476837140926827413027574660695608334474873654652522081764017354385375319669247608105699483816875558485502456575837154479609078078436048877303975669787322254504947055519678303305270634007684425739385027906227000356913999156740640385426963958769130798535996390528467040226013796109703996822440750422194623735486193779022062795606827884150378909442983241334316794725967872798239086898624788545841568182309445290254896487325197288193464985294525015926997567468541793071311890087793580357794255984455402588981335214744845201916352309572448929568416035086230375651103318312913162485286772828160194192414557548855573721663033375109213993097459140882388573044183688480961992769692760178657210506341929779459720343784088841691805494546573273663634697073369789182343119145119163196400660894382053878267753364861953220226712003013146832177048823319136290035489581978926605092274894914039610867100919221689095163711173232188485385853790388625984582468892662008574791370711628509507108158941169364293916794565644518636914864272886157656357794295661829437965488234201140581189524978561738290300914606561822581100394268326528878101260139346238326365229226936171073962184959579550380059268462404933689404726472980386296019746722956571996755179907457318730161879401049181793887400142517585235990096711912734557925968176889437312193166175970181347145865459597723304001286089387943948590074000759359481733063804622372696298281092194926026909572675751740439282193128312173517333363929065158995976433337095958474733676511578971573202022340980435862652290458191929781154941433704234369680431582472383943812105597068477172880391660875356894970481457150336268289932548422196386324412291467893688026742283073473676854848402019615121806402677787452445409195824292886968709704795037123395582105017262694107469966415449207475586767505014214463611591174292468966680729937115034547128479040628850105016886060817550235428164558939015644998911578894059697831470998104240517596425217985608606240812793298510674038311514497641489948271551756161423713746120659041204791778119815588675415578210618820948265067894401874152332013874481137962471483160093407034650032853534789463978445973608858945139517215381146397799654637472777937194902293581192852845781889999172601047366300454055816661035227318361199551328466188880946942360235781848045938544226090197439678540526207884926329025700507963180780238753417199058428378274155165771883669993909811946427137221273445934678796120813297286054584183158804662922336984048366641844167519131091526533629755059767006534371537588579335352285038456715230048370847820788195682755686561611790563772552215117968492023641732226007640305879007943154876017140695015784450623010443369516038523374409343672520065372720059694915871229603033529011920696975646793731353094078338109947396727678395855817110108704987429300509455114804447632960631951893399834685978608590666363118892555140290533842836966957793836530019610991681686357120875290264606464046157164478111050049737382786663017939789233836322841342517073879862146538284010453689062314410806629297102902644442133130768585761660417960705541743246736378976303947592690283124720046458210726784825320518244894317739733897206056168344969814714151418452982713619890970614046548286490024565972197627873800224456913363776726512468963426492942114861698919815932094396450560363272596075179628219532884642665522056720012492851776052058956611934541856294539848483342068936704648911518917008803075598297562843019917841471584472871321520916025830737436322536837989635191809009712938187363736393723274771633913974704401183575526576178807291480497624700812940217943655074718458824599147576681820320612005049693802011247001824121906356906361111274919876667396087529585945796528990737130933244928658636832358590670907785589482393173737920104236409033119112827681245247990255957598246806368396607552953901267800255708556454551040307892353707982465246287152178604969427921303935124418276432905221938611298722727236578445325141919021999913501502372875164779118283911688876989660554559318767997602418275376307371839842790089684283284356115015706811269934375504282769053331146515280408964669310294855322462492173969559220987065297701208674702897909570638566862614533156312020005972589658521609274003807016473966654137156367019308720933075381611662826668573148563878879883216450824905594136401132226446847818997582185319755623059366874063440538606200455938653539979811078276125916825548849236524993291134989937296773530252386159233949983011548392028409006942343110709807623757065147140934891115600754886878790536224013130787731830292091704274087669929497359065803654487789337700063323685032804060345183856614722544894781040338065554921354783627222454985097158551221216205995459128489753722233807550231442722803018667548146815814164736337512077886134251738828649326458756007336589547114922878762877298797993507093450673187491848779249631101965554649797588188267547045412725433579550605629019225340840929789073125935005408069489068598674893909038777440719989277073812744593625150882951839608135509136008255902596762840599144212873199509164165096006735220923952447492569640885681358432188281976168337764073873903770907048991965014049885509258526226336216806878083825397682178424056762767156089681270929473699759028741426118326902953371037202798300965848533353801666723915220540617954362829570918470863958216911443196808504394814210017922920592181970163014114992030455669570921449287878719096439805754853389930189600169164521585289210663251848152977862226409541868372902348147669972178583865877514600649295774687960118297562224034299939500954449518310656686929569916199712996681471304064237992431153392984697058779209831844052186892779433564304969667129749903441380929608474867591259708504102327363615031019183262385481425972293884001778227545684851977327832007917367750008849033346969433044122913875750596032407967046070201879204894977045755013754279070234137373414310072651749489337320525224419987016487928154773923535595270033571952351166769336497247099062068230422294726041768423110320834476800413836050518255246643518918433356839131966493589673349787175065366906520194248203361937769224673685174963370736892856189253146391498794995663463209489375349819094261773850513199910691380972927190403893616682235004063424534859063344133054071850538603262954121390675035788827717987409755999078551474271397318369052141362989554074740814882488937538181894803584177659252824122612243926961368746271420039713286723513666218709252479300592333927729017267294718635000210319047431040983440664324399381394570928829772161853481585913496874888255202945153468974805419769981758616264132553503324472287451474077174626389433487155595370541362334466583610333812848117448187618543168971896889064495562449089386417487473173152847292522111801607087562936793462361856436553033727159235969672209579638914289578774545398574099588404337990726261231524160650093818390687445458514426247850567097981558400301229414748547753980836477323204855027580149451548282479852248660573081424863358402783055664407702062228579556955334039216673492087641094054588479982951414635311019506598456623665134963811285483797610249772773064463579216635404038011807191834428101218131384881189210316151771729246889230807605733860357199139770792843846500936647031962770850498067958192868735487692662939569256344959614005544307570787667984173163860942288604617538815454920062425481474662317042633855869966366080746348123456640953749115284259886911181643408421745736433886453779549805520208832502759317664138069245541252203664214510060732381651575280456046361108228978880256047590817993234633887647030823352790083133898655466766092589585131685808045018787103292069877959299884385361507620189090043375960207296372950445105895087189974805604324730217990996317636359573068702148372841534365778399896466398978878265635907325451568599252108880089381502303055450719176206255463508344420887446402787192309176001039198718495397033946105989582083111845745586374579948879218397829302325089165102655847643721077312741594472412080098263225731385145586939298404139310847454811267136639836783583941086485551407081077202456677307471229522949575580762966262006613315713320318813427790581358402373519890518368468115654108168405390897876250601351292861095555582694858776193220230609614588157279810264761683699453025667998746208406579651457929706394538665708528820743682722265892144536294593219510695441114511632890637674027522815951408421841349297149149344701396743016187403820282794324514452384440568596253322533054736889522284078799255774341726462282447031970320792051004416421257974211798654360712908211581279092658324548251246856205063817373556821928012053966292107445064752511589199621177602604261566526792217784154197218497040951044965733861046117704330865661006571454953971598769423554466013594481240772913551115073755325375708519124019397829556428414504795407685063776627822545952006321488111363484009744557354251138650050585757095789657613195741249980752754893216763548738482861751496285188351047170873087490633627475158720777588693743874872527816014691764591142383940630645327505801319966328231486654171886385851622149388358927386077991753973730459257698189922112487836975447530177747442245870366895601875685908373022191988094953086591824651600579590875361109340902825473535502896889990366448250297153165681295745605162766079456818893269089076825862147297598685838772441855290297482033312320326936961994946702208292395845666087470329632267648449109942612375032159764036894109818444535859467100292560623838741807195583507974335746426176051875292891453859931895194406429161840905087803114841665026788336501516538534138635929558336836689205142037500717361707850573549242206711486758220436297965254290468524957528696047940963543863980316994471498760904774972898579510873859474234127720739359805604053153039003919631702024938933196280302022570651500382832586826473882010937455479922933025770916967764305494042205107511218724284571452019191971411397822513291739174780194147236738045186876099996250368440793751161753775107013729277565647632783801597453134529863274788403374148536663570997538581189441217126252049141400617620990599957818438279796853291298521342085690971766533812090015470991710181006310887298521071570338731305436597598216719695720910385873637715644290650242970452440469382333501162483682695906902917865038533615774104035361073800819013828113635603614125297559410310115606245908470059929809125685483203411107866135644049270100468161571064685900826921618892812834303770156427035784188226122049842861100082567813540424728291421758516921523113993883713965606232494810968898618832490728710819658560270248957530672886082877464180625134218846463952298862991334021302790535865244226908023634591311393569141330625823326121684330143086321768287746603055548511412366765853589830379094648184707133571223603942843100691433768895781832384295276623317291543660021288112820616059884279010157088969386866320836922946399881139461766595975107627484912374705009981838314994763042545753825082870096218596436401994801574361319519714212927647885942645728816074433482232062471008708233864461110107094861061025230442021959502636997417818937490293921251947155931228075572506207233130814854995632871702967998843202982484857236372858228725327459520834375037240787501467775863264002436051888714803413630489217094672405625367439729765754312613738274773375231878708104554630645896466891402570231432368202352847752933866090633722189351179654390581599226269948745446544968029070636517243150061582342836654896401839109300982194867853901611332567027860814289089856031509037936463903789235321741412911642156298041710976152756757647165888113421063211230277242897573249034749054299082924250798652198353022607353939304385433051544605514495833642999517421738548890279134926852988106285488828260106893568634522047019820323119585351220855972743411445787994875248322048171448753678948738024866627121120511536300024259435120620231376317968943669813252599838714529467977924808044853609890491911292752404240797710935436013436905451600081111225300602499381969044794966514866634022994154154408699193263817012218981259411795651455341254582262029438799225537774844364917566588243810010758195661564822686323536540143390661980119444148352632583369528315230743936836574421355331000528600186654071377992594913583888773737454729991959825295575359236242293333743029402725739180218063844168714689068421756004810071299604264796192732697432769682547889444706743799133943284297163743924465534300760484042129180396353096416433349169207459246718479826130783148583887333179152414478306153073574555065754176861283313890305192636421787760031700619582167419087398859478687398884169655033263309015744446833496201423996731999185733726080692768029632296825271758640997783437732455556855022811193364196580984002446016027156906701845059035995055928064903145248415876711164858404529079419013009953028019862115638321806747962314365587665156287054119348942470580142620078773978713003598287684708356849659178372809799371208789075236297366479021799528240492068658300898862489182478754851430179116804194117199329311965256674395426095125751282381587643787927319025476785087049413313092632892596102722348062560883799322948293019516436165342634875942539398443731953454833826236422848888656084165949849568241007304341267608386969223718574132071697281109387536678549356564558377748201352896255447597601462310593000143468175358145148658658889632612251777407515975543179136142282720754768239802728792366762870056676349547733796386784834373703908867409074834684817364037235894918946595647131854299033953421575357494371047422276263636616747115156287785867060380582161391948935898123048447583727887040795822121219466932683137250029396568122825380404585784802079369346010122966014009580994223913984501300494692114197959890357507927768904797248577932257142882926167274593017945589766392506598130472575344642737150735235057172486701041811944371091112749281364391095366786458192652522945270723741156461141922031350417366750152403956998823159515762426494800946742318251634711354454263909348150928593917580934979417028413049818819513578529436912836232547393448711210173196701870790751152429696219382978642330924914486763660649400492859073472670105621129061929961327308182366985536621607212634489123696624045331967933639208744519294277062346296507005252040100206237324253409455976410345475390825063244231944452185238047094197893390596529917979800614207487875549122012535194786705718288029500565818048949602588560729940522824999714998632084895542879521425359045215033211786854492629484781579797126082592171061544448371939233990579195832484312698768925885333345823878998121614336490216260408713746373707715830486264188673452589946806513573622330719661968591501904447170044857959766123074704884000819659105083569734817063409793095401209712748322491838917077634771243647427353265682828746044568398387237989370421669549600014005539286466826532082124573383062186732308770105537954780655384035088312162245604779171437689412996689699446435033272229482256745684808683852588767361199433664571823225717224544319406335375008709908853133076870123593989133567053868870390567278896759652316133884136249704924193319586353457660751079428713514597002118999872341944027654983477517527839656281177875962400004649788068750245897556893170673347317840537458185419326768322941096577977945802949946229303283845921794476351103535932002065232696705561738162377460904359445944600020955197070885709476141821790824210485379651257308088113241165026886421008991597302036956455070647068317194192746035266657858214026448529424096194180743677257828250573277599003893344826132641028622020438502059345275373046471900938465507351587158989744527889580484927909863095658631048645761488467967562990117562810964263258010728283898930125061247211011332080782489019999903814152151886198893603302237487057573852765042123297426660140474584195051264301427895701351622614012194186481150536708280448981198761045262531958846590603124590770213131300729476955572862606795184566593753631657906289608936678809650990045329604591654902105866238734754565116853304278514449887496498827371774584149911413985903780181410686310630993436269031269114262602088624338710434238161767499386968479301655326536152428214136559907370319277803895922038905896230494613018202486435137823376912408743747129367203923292059712662396244371136759462104947072581545130565384071858660200364309976296574608316752655660351397298843749522809502542011252199410975837617265547336456677663336229373783236563163192635208497109471121205300580273938029686528658815385416176229121282332243239413005483613679447347132660237680587223655617032089158675844394507248993525321886865013635183911351294556948622995587841990689179094404100300481504377716116820948281485369446171907886749664513066284657680370459470277732671947622710353115851681915897020034670254328091637953492611617636244143501416018330727764856564520312623289234382493585857661351298119816403201482942471820215305662563158296670847489061362630741097006731113516629249819554343992168370579927195843735933440376315895780101725006867022397259640664514753048386694436471070075253353630348171817317812978457718658825985691056212187919195535540117245174800034974098626414654887962829044061388708138137395980431868090343118259818690065989635586162479461051765658152804221814460158252456496180794759517524595000989736442449307504898992928594425493217075951246601764922112394382997022102911862593787779417480295154064191842249486338710200813362692531563307341857896874894630866664793885542983873917830977072055675840823337171509524422904860802140182622141567944548876425859010637882644143403226186259136243526196569255193108742557916506207347324561282613371400040841847638848874714388717749242916920479260861668168203521126099376332046862185316907020904210422567535730916862481781171811625795680433424164922364080074085541607018465466432521035216660255999391977723003352981041807882534921433535191926854502302126599001106076881517678378144574744997631107247024204083349388451752603058287784394425098627798069239922848920656339369613142679899577210484488714468392578831496305347676271779451990662362768898507841785352492612532932378867750233972704099622496986210963824521616207703776008938080924640707987608522576394347356797080636531304105789970409409074670842202853773649472510494294299429290945063371448963033153062452400274541135257498076206364374353858766694733513375147031926962160966000222354801861039114596968514181742903965760026171583606963776355500772886504524699551880081081819457462328106137660882365740292465703926838697682129809508749613134578426507196807340704545029328832020250162047876819617224280296821546298519793417750563941921772727239533807677668209865859133739198294580872212117176564381980383746805932027096412762771105455393823698323790511952140485912459794476246695255305367093017023745413064031277475446128431687507717883625771419464122055502055697545814940048313334194264935719022701487218413958414895454462745322094077688674225303780479468221235818177447324669752596546536907899785854716333705398312292120205535724333287029041579589378246456087442198291818467999960285784120006076646623888365179683026811202123329093829376450733883540120534261159792846337279722915171726217386317813253097695205876676477577539012989646279268422327601342747762461312714355030715114335772963202634270753621831004235227844503543725718042557451775677483126858973167747906379082607864912560861835606506764498142295642310358408188315775410971687713656681145273131715827701550711015634950710712372954819352672162771102473564771830688986718702908623060997418463219559398273556959177094891166089737877482366889191622056220146096792431620652087125765507973803012137055118398010723598908692067610193856422244430452275442361936076104424392741471133481796628599303714626820786023899720827394012592932920600142564290383140162526614783715752977660617608391332066733416234771615587862277230724507637590882388123756372501937185908201644055948812702973030706535625715491460883278951491153279538863452355640198464768235930907754877779563901800484900104044879038788662515017428305928236372836991318843524970566923118029213336058711955137811731765237687522687945826336593321288105916488386963002565400519255959656905556883108661756933590467674278492019945801519213020398189944206757286527639842308548261347697018480363166014520164570810121262809355420493897876606466977342636368824411594475869832016731875134912452648077659735981479444071014939183585914842150208583159971214353180812847061325922829260688427381458428272492882382684000448062914921596108369974705404183785589264780268354090356615627995754329897988272756216411763985169708467044369621740223861415306670304679673660642756559457939927202839077196086683616553031462781564574012026768378149679396556036188554115081878778338872678361654752421865904415208639683757318086334852604057703385095363658727862584862862884223389428941804488086849286984911787084168583670580586418219536317860031075431771423109457208772456127061490724693000019863010203062760402258445668524715460629523204567824653918630934475974267372007856199252024394498858242444005266785064122713521737584258630858218740829298387341591591164241255804542283222944991726201508886197756395624005644385548273956802597116490084377929397611574058321572307014866479308223562031884792839165706545088114385758774264218826810188765123625004801258069228827939563423609514958207311892415290002073307247793036008439967761993906310792331998751400683833409540836562756535918014978311246655344846255681438206713056509430440996276183855195463103961993052040067149693892285061396102844418288872388971902252408986944471825890769354517071721376619213037138498383234457478743843088283236044300983362676748798449430761382487993429762902504959633046584887706241051999055203397982507977540465549910480370548910104124651857740132527588006876635797342977641798316981822205740173444171978002971382317281792023366904358357918662130909356364750915487302347512169329324859119602153363029657339694417882598454612492867046172687284587340297873220143113013127381136299967497355791791207161635078735875582211104102469031567645576682771609413251747638038114269838099256829453079202938267295313657770887632050352686476075272762211012039503819471484913733631964312478575232935553512337866173305331237246736741807067108011189021908385688798339210058565073733385051764530791466444537466767585225468008669332931764078084866139910862987840462525937543835230288888051001495668469844644633533475320855639093594739528913079755106452475906255166101610078712631393084534952767339415640818292545044504802688519240158711532650069055020822190921987390500302981659706532011296963367265505273830975384249468052625130946858754561160812182970836009714484199719933007242584255211004755088364238059212612633719890103400152964786128107130604293818230976578373418099776153890499440720005168313709928694043138095451873985320152296350018612817759528606103137798184490185121108899486442330922406283985379232993799278353362702637283401086481184681756045439755893695582257440792729065755828827465468677621398815661507809102021732987804180560401920598978017453301983214298720402574369266050920030688324180255900918984316619142440092263523255412909046087073142395306766294182252860050560320423187749804002395806576439338789670631465107051559780563996931418930188491444150609825090710750022299345551280109780257671829703942847340836940247571943469065948804954918432675121956065513944455514589439260327800368248257884617556920128376556057317576021213821529274133576144491109921839316367208333995870661259276515569152688578507897439906159303211580041196247739768746687511257403945788816663558832281069173246107897376383160465433239582338455065129160946332922041654445790177106047794006533469851161720126588756059698259743433058609625056403874858120951808937439399486952707061844408558907934068125157367651830200602953869434671313634037906463222393533151925905190234431992409452962873077869544323355984953442786964308005567646987003264019233528527623732146918043047938669990441239722716978148606010519023364489844897146257099997791702057250904418156126420971836466511348809238267163329615722522522656933480990217691529462104976971461066330244384720196942023935513447595325017948089026135596153871060008466832835772322954888744441077426724745531185406244460250671192050028890424876182304381982983190852987330765642749593886106750546326538272716128878177214361450511638867566645774113225581034615662648504172771564011706050608572250998176446576079456254501781460907119980848286430848230845907905151568371254426859184211376616873056586961836905343662192569127746768489107483566375022103920996812582505750159935316910661289556521054002459129553000346304069262251495726370735591808761958400799682084706864280131777970252393722267454232072315963580360508495903942668834592962826299317015156687408147480482994793175243848051548427374196893291322416347234614538124610096034319841059534052154660850059749515148146724632371023552957074641023608258328798218128939248496341249163837161275832663270454593379764069630901503465724225578288129592663986961963233667049761745432529223546341386181992334153448973720125763923505639232258208930986656621206649549521302920999776653179771999347078848896370603497372441358442923180047866590625121206109197717379849745526726826829851059399428424035305866235732831490468945565173393262312085127463477944975167820222450588510764779449579371545974103403512294886974956364376936426697944236504708892565199045249873282881593415885106836926788330171474518428157933672035721025593617074100942982867874908254754064856975955723085563557142918541467948792163799585278931651651876058937076905303740243502238077444016535942756292612366478436965280013535581062884853148930971347907049082700422954926202053044935992992372166796640265236597048438264421927683615254946094396162012514479739772145632876024203140230803456309492154041084387813633790511744867588947401867589360412053596564965480133537945537444646119764641616546513658044044932643434485586510806814208656429696632879628084644288849560313213251554121478692161698005866238542102548689915155726128300015088596054823372681217148811675675510406082087726115648178782322085781873296433989012313138230390907133070385960729790305912695913801437190107018303724588760019666145494485701022301278536734463167952004527850144622252256049858788999941035291022019632376323282943107330133480838086951697471893316613544813455648894667998890988332966940556380332016678658795628443785690184099333923235440331324574511094637605003633721511603131618851254894143581296102205499369652451264222237516071590865303364998216005443745712984766316892462030047807711226979437017278665969940199194023952678958235632589103965076654084694177384373923220684506167105369491640663526399214811058213113324661794948166472990537886769884922129724349000954553982076337440026062421861686266383244762023078863542622823453778299229698698807418344238865333718449477477018919080815629628829653387464004545287701308433916555324708367151884526896071778166830112428292460370137305337457613731433423121614110546408214580296016336691595617109865850790039716300601295743863969896308583425722201643807883104571139580432366938600162109711890006114027363220366554747024925136461101295519876093498856487518447330977877151149646107024108654727224968081795777249679689547382488672848285187423511162045505727201777707561356722556739477001517950218306107562294337662366675355833348848084396786632494733453535560517530208359203306389218316011917826223215970806074308658287241361194782417551751805795429389175637979604217699406005990132269569736342554430221501090315606012031993145529652597653487254183561241258868370158267949950258871282267921117782200658437895751158192201707016659268603452073702027252374787051466981627483809206492085986522531361692421062778510326327196590301387715498616162706064611709247294540477943686832016198020849959649984049604980234463743254708426704498289344315023244489650914250138496264985744261138416740481607303061415848793402372670744361523950989969569461189613656138082848723817237100941155230248093372352079240900694758677629155283809491162451460800264163105250016055957764758779236456544125609340585144057431447738980132726180685349738414302080398815783518521309512104135766092339403452619063221592225482638463459195228692175109121096781911423116021009195810293001158304141051979501851396989986921457805148601018310988977331157434679721458445395506896942386599680189001918241328253926888390105549279025411774898462471138552048419919261802768105245554003998956559604883069209266763556608170573171490024848854853094249904758118759797316033142661890805435287351700500283246729794513449158751495441862590086334433527154058740929566224870487546011537933424836584239942022472594206385653340954824327005332091471773861448505732031798056827088265914320390764379978533430370059267050760256825234960112125331096799426076209235899657840834064691391090341683098838991332380109234026477073089869765779396503670250884994833966902332277154079181834046218929577034465228671207014287567684610854271520889708854054529188142742152332391620586627797969522765250836656712530498399748988165239925156727600390512944012261618271572024781564183412133401929538256775407796629415115963855405774720539764637162823047959597563764301539183878734508790086414918598553776612387050446783990991384542506414658152845473536398508779671327701089256535292886717922527898941664653126634761516784712457553354177671780194910608272208839384898202319448537572039632410746163361813775772965910484016046760276575688011387913594076766368964106010601744919880990579072057013023744131538313586911768422840232698816160255414169173674533694432341595606478106280026117205623462836789477349222274399178195881684897449937407240728822412772237910233318912493106840175077591122884712919021391591928667341757176843639593807339097631413095058145874542333407053511512125660146653472923940902229243020482211344245498399598749372242582523835098301325376123874178185401519448400532554166378033958872084032634866742091793424832815866113529894908801008563460876389883909478263920355219230602714001119717114576489994578317168633089232888547957880655686482571926784994658157959523889511128537140559894734366467872777398064885834397107096922804838715945452931562648544185411773640603795529408492283028377931877619896259673733129830419225650892406086679146559494144954025362756581955154407168604273981996183993432478667076509422946212059373774979660602501708442338734363399427830685065366478492379461353087543762649986963292749956010307941942756981585469891789625880040897878310863660213880824113881049518533670147747221673136323632543984366898767954869851783182351141816675754552776140154042107302413023660880823890025295987793596705202708639427399896616827762809494809656968985826333967976391198424933539567812423373957193671565346870429132101910198864778370025015571260483056348388821614554615028317401519560004204807077796148686125218044696354681309445247981298091629571618083586919021587116739108738172155905605487170659788017261725624701580352444177164686428345731912330811017504600642959606591469959169544946090808358287264162462691021202651009183621319952821309669169062049398868057653239194747439894135058595411510747524501375957752939114313790286886569889682424400182164512667071403651471140048929143206451132794744410815161894808815870291176108996525394437771002283416291701391952456246548521130308250367245349634347734897531620687667880227698102769456339039758033304411399105348556467895903226069450104964816251339560992212822815072789980107704950808179316009498995751503849180886390452100218268527991601925148277203083427827812346886810487376551178659565255265010980067260852164871834670125051220225427830575895326535936180989234584146789670718416104206969610846379033247295915498996683831134244223183275114420591729318317294102007984694662389884640106371328563309627651857682982227634112133626269709505549951228156066238606921337415773313096143509258248870727029256201544814948540092055965860604683809589049509091887553760990574167692746761494636746381104833710837526149142846264822593152283040312388274584080992899733824621731163816856770470987147151871464039518074779009191660192860272682319210512075448730546062248334170004679434646808694549926595912678352885784060949945700268644528588741399724606162068557508571220565676539592408450384411244932738441833544843464032344603786276051788694719196440695080150855757337428501555163757982517599407279559824051551388041310539073533175990898760882694712163201657744853695590721606183182122943343669978062150958005981651070755132653156409290277591131473929739845376371288178750832115558229723902613346587464279528084019319823847372006415726840179128675064620266228234745551268093413721974725125555398215854786452260474217321786311132953446043786055309826844927173320530590369310655135402509173224802626629908230393321788856324743450988111768934035731649555890714770250386404235718448149726015131431987851339586711968304996511123845371070523077478049419467020471692009724761930260272644510547688665913365644531579334120491190756745193749133135979128887638994818678739215854639275225388688567210430433304285094399993509104656388678239512171584582844430392864303867223276922634117433252496431166009758169355333644855410997697332791553255871572326432754506544124964131106894150135089342711213712794912642210402400226675453314460629673171084077374314840972631933261010214933535179410044283124874601248866191316944871490352471993987411435735702377314003816861429954723623719812636485182738099766950422444648093746670439700137940976124120896567979199916091856461595323756659923662391681769609786243773277401640462224289319261052841789345329680766877519456179760189855977797950734265135696310689628708903474624284763690087074009543803681827481611869989830241300341777463332019202998807667492809543806893457033208107232397362916712641553599898689858889955944994870428528574681449603411634283210244490493664803833817864506941720105732197939325437428601695724485934734557650365248476809234087102228212876042240637287424563798231902840736379983355085616983674675968344251979550026101923094818744879717342035699416439256112004639437762851637312464159991609908845465059570933282764712037580034282025079456059908243952256580935039993717280175387662849345533449431768434520089544481795718883395714806702367945630171532651742677738613275886603142630112547039190007053554955395560330327818419677941757530368962023775796003250942343225845370912835247235731789711472406984657324096024791798359527202145622238174770071227865498661933874538144306254320414819196211825133014046446511529250527701566673268364785205199388285098676232277894614369034916867513166093068594500531917413986808053529787267432864940733903990838239782283764114656265089659589262399151853122404193572029714514241717061486779329722250133278011027580021816874929069688094661634399936573716606345378049470079437517972042501425302678058170644437964404826289931423894226127550568633827568438536822473781101832296619619883095953356494683709660490493796106924705841057969504290357126169863369694095555325401499281603110193043101669632571382238312182397429068429445356184417537441017749944994969973759490493323276632336421533223374591158469661834197054244254974184076951742761132209410516844816219237153421166896673989018246212413036581408858750263184453613687015788222455981724452181633404503257400283147333619691076487020698870535774992864216397678798224431836441319060930362425132069300851396843366844671431724739727515948750663629645013176472127323219317146949834340718143425726342596114777648155343002553814364657706349030638771114248403600053937412238319765537932057478879392895593526177222541469044730477069916314583898192184129078476797746822774961267365662278117039768088336045230757250079997993669351967470283891129506003423723823947807379765844208276604593255225988745977099420891516584932544343229090396710727657095143595454574942381328101719402131945383057711117925440030331577978741572064092181965322920614705144273973175395936183754887167109852850697505726665154520375144640123099297263898646251021338816546411126105838367210535956090926068258679910541839827219129628467499041906034558503200910126924067847948479048304644186741099681579837926194222432549277868225433326246484764244016587597811032916641132332819841747126822574572507821071660044876962368361060991884675936112685135219891980216494367998817802229698460936787530580220460823504283986961113113934866060860867247435839411498725218968939310436368027275748069330597264989776269050877689307325729325176427582667037478535540231757103927181427127330415401737939656996471065346317929673619618348373869837776037792919105286482561752868178745923461943762673941529854527961571795613496485300134273286180503637240022919957075041993760084886238203034305998404504844599275353064079286905067388740786991460666784736448828588081593585058176019387603787739870315771921946357646862276302399707230844923361820011802438891922175980117301148650745890875003030586483902559286952939147734914247689832350128791444167605531596976419993238874359873591410085000796047448504691550101578091125812610684912272152119596947692712036564679920894558892603925379223198893714147797925594533433519739202529061538484518850663485547885453790125326244911740677486694281586728428838250398284359779882291815222302380458777816019122989824518470630313300190977867633680056179726113804590453837378816034257703398730466552452940726208179093677296754040413205957918051323342306005977365062546237326644521027587518908000043463704173636048367140602346021696007725350636692234120230959067463067073500112884319946786323698140296474638576119191123141275171216826625590528059538277920440872991016108647827514951677462968910811870405360202737672520008496175953572367080001143177429158247807793684555383615260262075094966036124621925714763936894298512272798103625949270023998585845478486737204296560225271379414434663395245462292698516138780487179935030881455970349385996695227892464200408666605557217793650393210589128816842267200121188455630284842167975726080963336594081825804434359279575119580294230630977720657464813922746945440479285791776684795632801634842471995012753514755300577334982219263975185059768406514418411282744045277916798157013033092155784644279805314321864628380658164679758059602040913000146649787499173049535449948748809505694635093154684429241771062166896182055087786744264485209260964004596167817161633989651935323318106671760232351663163426435992430116297907277189742162739450709520719607666115313870882675257332305008048060251425790078873774621124167994498714913949285609650395449636522456501090207278877021903132191434871005748711631956898672251681860437447033630044493970751444179716938629861641862585261175881037669485097088279208681174833512113494284921790645493147707608512199076518176841532055331196220639562680711751330197692639654703402032790063998311878805503604046107531094283562542286570325659555431943241861071176910028247346885723719384982317766232943976375215323289539121873676987607343523221202155238636212398121932742595164660846248307208619319731716180084242283480720348805941716104652488248217855713289348693768651875340022831858782270602714708064946743717405715214464221142213148659030268490910654961379264675522448519501748159551898564696946338194685592625582139189496786257019660122810653843278479003759562519041353345744332231387033491303863082216482861486634106747012140496944725691537253886811096483417111102171387993270830686271589284803523512383089043078982499480890114524505367965880761920486300169731098841088071712026630711207328557092199101731211985443418276513575943579248956289999318314744275668170538729394432161790425971271383298351776995732218013691750148425458165223450270250622108114925848986478679726924265159868710853673307679041803942961318319473742597520969386820491173176799603099089398947389065170529612034642850969420733946232713824068448299069791402749704445999836573341451272057419146424608991208788130862316764443979040973275212282995224346835960276748138534335999413841849741144030172765550526477856584701544776070738323864123911230618634503923582542632392535936832636236806511041999546666299441942590297211297261685907837008579379720135516540061096713250186194932709319863423757432212273566157863298944370070282802634276804941760827336478643766820158917783505199917538364752533006003509198197793650648053081579421665726656378477518971776394470918872365365489064137466364228689034021851105066412656231786046601830119274871719861381279605781550288212570905583695603371727975869596797489503150833815910734269895720475892588360435398658732367111447017353629363217133284808516203564718814755444346891721580243164289741186651259090380766019905698077245287390454710804401737595738090129333754544005328027224457541708536937926021807951381795266968082996543237764291293073059029767365252019190707220224423942124108725577249001727086891730256071258820295859297176422583793734459109449212427018736237920375166920558650464751171548702803953962707373542822489013767956466738512213389401482300161276049472448158919377329354833950592871811679091126944693814895186175063123628892144720363585742052051105870558989462066698581789910800840274053149243653030036563853622294821901559741469708732453012299268148885411295551653160352061516169955828436690262629102159341834255500978143511662134443308967460762253533015311568091223417012494805337141498183739094995264264237803440471610864192323027565431084259253733983140759129910172224985138166405056545421094051364710578458600076494689378123735635597407844649704765310642814997418017776314767243814829112880870669532136745922294963680633964903340367067896390903730616554588969325971481266402232472719564483366453700819682877665392646166738753218769319300137701348784367362813245403117429550169269247676827991763931004239039540374031088356293653328669855468205813901503183898771812797983583447327093477163707276167786603925893109440391508215586714209498090493227240716380106496298360384098887799123217013081396078247392514673088545108468892051631009185789741501648783550191630973882130302672648694288165050465386873202181611469889363386103046422334611185403130398109186750961882825014056951737175335116465798234181355721681059817636680417663577323615955458309305196042919630350265107671861976690999203527824691348943337669087069536354430742334306264746683169834607598269560557208249046234775880575899692004253547571232319694085386073419798550500056154458297237500848036623165730534979437240494375156935068181809073521547238334811848319145322477109260891450388954823655033806281105603894530067087114000734156233163601018993152388785931194268490798347657950233339566101162960130614753717309910129181548415765748498585657062772082585332126231793643085155529434423053891534343753120007130994118930699945088245042811111275157710891588722562959864285987787034398064229942943747733890760246975789688462595041794762407308070100413380789344652549728384777669236659775378901218625819854804740432148593561855063577125459423186476722277247544873271042752432488783617314176890643436824299932214155862200910244174098204402217692186215721903862052862179151159968723134112449466233977654174916559239974365372508674312058478814555903621004446024016606270461004542197529015603607445803511007905137324582244343029601758824883618551289196388313508368534045022425506551592860906639713330327840576664561748683341555134501195271709050512189612007391749409310770717991646464148236657194871280524980633080153830441739903920370934688400123087081354853965704854775942248232133841759559855953536009638507158802360012872125508361334481532131653906646915001468357789150293951040567988533164543457150676549001336179903355788874758272590913068162240591747706596344406670049294226846078055770098133274916077396950298365623985114044230478639806095415188236286638019841603760472778826596024818261430465324072795766683058800056113651513050431079593978685331535573991804455732974207116621221590365576780574027420859218160732881676141613088419186295227237255634879824983339067541550939571648220684997791328793598552081687506983479836405790031341913366818312499980936294650467246296906315057836636556284991585930065158430723809688085003095239674076887177251016739754793057038679238981782869654016460533970809881376108571865483142072290954317913039997329938809962295152384009677208518543731134731236675803352218507789218615691638390886997421163393870630198648160945844025775367591211692664790498095444459940364311999625315027817087053592737622221380647247023483708524931711869051792358079922876542621024090034362988622859881331905161576198263842190728054698169995273031611513563762365628908069865147363561647555796782860595632003526491989567906235238582418876774418595444595399735122166502607300385113972007796261949138990853891847073866124382224122172383900678683927387445473063370331766819333631321262784560341801805773639160538078411028309751633737529940442411001271948148245314231387692507165186253256149307678626435610618729155685080263405077105170477395421593952308578689337331542803541012668506620246489707950552241522807499827510958986864365202482281313543129235569165630281039262960963304427961890650305289855798829196824268468811877490933107643226539000112269695147128012435088574699864406663927721883088299562867808099191099064525563863601041718660978136455508217689436150776080626091263379082414599724555441287591600346908523755131878672211989526317532747570631601936230830768308183276824921570954090793816407137271903012543240247847760735704461740605694866477727765152037490962196482343532204775736805722427301538620416104268572468675083661582176390826226681608238522347495534269643632428787055853641562415955928124706629250751971233437735223489837775600578606253063294513951665121740119088297910296835940621440519311257342547886805692606634409957930186683554684067547726783138775163073154969242923194583859375590743903084357083876056022588586466216540662810786572515479291503808269508727686416326570671250310815432589166583836618730475010117690019083283427078279136992303110050872133669748933024225424019879531139460079141361447664075924390049158604940414757580993695448561457140646481056045751144892607127559008436869271772989490886515374042936738708095527241470513536738619858604148286840788114744610039233324602646403529196461244121505298081799901933046360476751087343061045440610557866154270141867549921831901565026020011568887517547328774766009274078750088298766125609749595777873253696949093393005086224398985484884284684114703360510648988610139947775407047412406151150682261753556700582672252376161819812485222388927422319218874999609493219894933425258700859854000056741458569490270561648054954577913345197573632281071738439520701815298214786120387416993080220810287755421323846358022688922220541223041651541269544770605411334798420931365319637982230112152745420225574377432711004821025145092731901850552999587812768774654641257402717390661386304088303550023984477611121820515461143574562411223354611897676520482086606190774308575632452869146006776502452063260722657331172883291724599346080484390258982956129347693086804443852645050455504332262983911505001922203411971237989073079618600483330293738075379734378812280164650115724063276144160959960335524053577241093156043855756641072950433681916402474469833075266898109565740894618012542747586702234849441992336811617708026238423869598222424956522576355059837030012465395495364421481012737176058399217541735624081369307349089139518870602044550391322219523747332700865434510902814366014041347722926312527085818934814236518613453809486044943466442984204369799340825045810401530744390660687552644988189654137944327991955992999104003067914312519489819481853796452968541077716133991184799887705541264761975205953015425225899856457582526353273536479481952572475063446254299960666809833951988877968149471290560356212179790209371414183871037424587039701504342684089017982336665565664458421889921526779378968786960058023170340739788772803239747852793544602019068084183242133722841362005665748395438761305750495064753120981184627237393314076819321994179899592514333444992978439990462607313940220571224556690734720050936153129280575770358120502936773562237748152337543653966545319207252888200189320343461494959661052300433033994498665370826541271282020775074419473758714624963271262921512624233535664864754753496828862821467723602320390590589814609207859478663402589997200178315833706711501408792634280022224881615743698655974639593482278303644931288398703879831757437197624265863250887240401454620848588040017630320376299218097147471540785904312368677609420686461791518947535746517025579128365996014516154166593594357807590797785752912957783284058297982406927728338729727523076427990449107238997354817701332736210922627941757424459016800471036204466116642707450664547672441125352200257232368212196143782479991402424116775632497550501942670499212416403416964716162264106307620396130218056983504864950862589336117830322512266670438306929813408344482489669805849687073985455129527235890796842386474728949296799788280540121324768620448233245351652179771494652516308681709408222501858028256409149549612525037669067651786616565065302768923753940036369564337438416669254673280696743906887030218106815477740543152007988221449096123850980989243977501798531625978737920955533816064648918047399762363641250217845593498850175479363903610298243462550862000290608241466720271540835510471425949809593783835416064065599261265355443967894024883013470579869446985123342495185953145985829336976796276467732846714924742294200340264720850845900540181727743998982983035916997280833947239445778942595146952593641898550918988317120082518835321957354486222218700531461671030065781574430530028482383667942163672109137808542677134473755024300584739221025008481090676802287180790291573649651776216563674218160030961248308802314873100293831524628005714386892726178931082849647159960914727246971274143093322050756303086692870814280661932401699016683888082318178233265698134768559284964625601150063546609849640284858041835290255108262115566638855026970643074781787424484689678556650574398767593062810244729283080679088449618057890477360585072809609649494166913364307581746034228226088464087747284573030905647057226753680140147343624973710459915365750732304081520806537675779835460385617934507463925023095790696124994566742949199086779599902976239567841311456614489166295102068296687810591234552684659001486972137904227396927107312035265788618229771082715888757864261662744531588014838038941598041065353773249566571051871164851993592742149725320147809658309591581118204293420279867890960786887185701289039950677817384828645226676630609436488503541769792802453241502085575975307697789186233556685781853787247878137956644711673195060490928209964247009658443444514241189399777372944484658607843961232993950583639952400844716435826894786552766610128934411010231712945339517900911512062275529884665192842596192036889774319625800881186448415530342021728205070229661914072560041486615934779375326343710570815625209687333418337033281304387741577485617225962586613510405675673951156496939191498440048410086710565505743589586023368395367700499239090486679728494962495517445460306887841211945789060016630842250708632927708309023990449946389098295863640594798046820882496420079253664392783739482068429274644690583879219486107031903291655591475765208684624928993232801625960358266437011897199977382106868392735949318384332304660426518677180107873474576873229899381735978307602598003380301765268067066452925850356111172722074920342428616243603965679076829527335239896412098504969481730186516228479905734077683272609151855096010315573909521944582428541039336292745096350227037592856655454907875553919194113822516839286430963414670903724150661153520036997352014091253210100765958901031044938273171167549684482211211551193260362129161093427210100128152440933791500316151747033275925430202082524230014605654913196837083527240033174145200360664998897060910115578938493319656239338296862263779068789694086848227786868269964899128561159414909674595914685257982790300125596512362396064735820139473522789043642375270472278905169567043728177304008621661830559683481362011093108679168035164296071749826951945975052815503172010667750616189834886506434290624060677738358881544886348649290319910017347952165123222982938958556914569666464727624576781936175078659121597960965983153676944424794335666936922621480712159641648889926646793623298336451535502527086827632004594428584655884175997409896711546309805805355654125818725556616302877448278213927028520858734070281115454409290938819573866318303481189886139883632505175965454299539556277630188114209425256590673706598076767213725508641656049210636428346023631683354316558083883527686739635555913259992360067013281195131193933438977750319380652059646860331546659545313329144696693735534330276982958013196186105562720856130833028728083005038333803966823152812859389971753705423752488964156554547443844683445531137255097419340899768646469925822737280633731477834012251491120396370791031119409615301970808169449153339755682322210735566176184141667053715981204573161558451023331990706383395528369557020492484879021840964855815417765313570862496518358862737607338909730063643197004335311386002532236293037103408074852619778525448073670146817090527957357562917946866336676931892274931148806722152992278739236187989404266199283812983608391001123231161260030008158070265608541124195306291601670203056111731419251820027365304257143626526166041145504218371724645421289156689408025024517658054981177082998491514182493602554551748086287889134360593402904414257108131672621232886319287693161215357767600683167406350918949080514849248807941215616740542612694830005300531268673202226896466602038029443876555913596044525725754542664556962722294329450382108017972530166321009602023784542263519718922390325711512469786767477632530369784474121481588088365790611320329616620873548267087853675370432817494589544442127313881954799762291054959398059985136258141242913627070231485615438786100121418666364507332159093196111221078801059736190744406025340299056427491107386029424289373324506814443789319991412454827574605305721046983212370698266720792863980303186351749934337478546174824458711034482459674525337811326040392110134498410515150311877194012402465850163406876799110786905497464636471364541603107769432918663198769477995228838189275955139533308409252992159536831911726167238170138243681444256847211661046561812940789622709203737866929781702529017800533400318192119006779755045253173235449449737404222891026474881096203223670917779283624996148321416580748487795076476399742082990247147846978744397147411563521065717342676702451518931034774609964440603110634539243332479305789076106550265989118317951625703633378878480472333136500787977467483702151809261186468471118622516701355242400740632341023244650155760624608222697018083793550615712098239444600882842094943662343406563897695895398841922131000217122376391381094748189829411276689557963798564937986059905065619584466578150718699237294343644023358634485626982517872810688925289269294673986682446739572269765972332561560649193195330271776626708392433817949316488200343075070113289596353204802971222658232353535501844031705255440104160822426621754155045365351640133676315942200320777647383835398749807012178343465362575946303438681849250746298380469769705479818833856407330665434002805185050608331623627598441606621780565073983859539154623413537473371659746659453107045777182630317498411496421419905731863641245534617113655447146519770435206351079015591389560559994556575580470775877786348741302524180377946888775753582187745755366022368386543313020741695559754309987387769166840575099242203268095121894105784611484245606532425074121379941167313954909471050151146099810958082201439528692135561737242488407627452149884541628066712901104445639768285218352575572924843231446220031940115135556642181332692413844507405307888927769297352922117889596978334904409210804076869907858080594500207804682956502116305757038047459969031923468641367299629854291724053443791852084212852940544458657729417978644870349457980528497703279150017425581828168357208581650011507441346482146646447461947411112974386651611864728491419967620794418470581026531992830136256352660300070749749229413976245813952978067585806162702497191040486710328085633823841874453812698917226419503139094765164546180565228565545308897116919065838283987378468065821100848995210965011216930930559560426024175797129543570650940709569191587566629946549660107422051137141750445845753144449162657777640731169910419999117627508565186832987357339692806510857724378675985839181001762828176078920795517614145088276490797283910237668671502860607825048152792691369945866886108126514757474007329499922113100908466054094720269176049106779270070563827444711706290075230188661220400962240866992105457293128406256759856308511120884008316809897169950137454865171374571932958614326839387579841668740818726567899500717691325901158232749811593618879992612077323352361408934653023252915772935065109531276914092482479282047531489679834340200462117206843892670260682218747234816401936256440465608482099342039684901351452471328113136049326064400967892420737697786602901053757267422342328267581833260943511146298259486993845239579113484069396314318954200467728361398967875688795084099727676315754549162915653853941088225702494372606671931391335895588449874050783712241739353849871210283990890814044985409273211938698521859080334572967686620219579583782142971713013885346352369476374437609915700459419373910367009260105052654216836517275755988320756054440402022090754405550943335219765180106258478133207265547009670507965707159951619678469602564910055566056604549833579298637226584338629039642534481362861483908859239142469706885980286905889057606926784393141437554235560725114979107324229816267415610355218660283009330719796461255588313003123398146818632813089530490676055296057279275986389010326476201378176527289243582245355014551801144383134334493971507364167596016323831933000117185765474745726463263479529380088390349175657278375562401483256943629383861909208247973730124017515098419286376901553958003765319656634252261946222361143461972454418173803310210930599469916219333329909491130943388478149127583315557758491536200271561174241726347208915977830192628812225494964313987783366577592983756670270408789050272592980005734034592447530043200053071000937597199815876865775314650843468704800101799485831581614548309181821164442088446081151906119735869786594720072772599799097102010696687461102883806083800901727017859918520245842891711270193236648220694888857290783632525940913286800713396311570488897075681610319929212869207058128345431435128209963228962006443901216160112340727217723869347941678552871880828078308193365480789247414160101198491314674350661361556569733015845490120497506436539798404696550853939787429884746929000111895356319021154256396104442447567334023870822893129418350309465694954066140255499619541606690527321000259342506357620372356476278947774717973734075455311591415439898306464564811278259828250621673976465942488462957288029091965706358710520670836506118267725948910028343775431094061338642434292804424222571449153542349243827269436274336362551030007232251156465758945151295272256476582290661379375279189686294161929929671700870561268660762255387038580919447718351675922805930465005818844760523167637249364903254521764410163947798210446737477473354919555925660686244561239950208709263169913366042846953734347086640464763547207039264676022302971428795482171372860147107321871670426619809887225132100905800355835486974580642340706971911400919573614181728158594860160314900495340390993699627840234595989547255799995518294691253890095120084022440604160969934585287237742029383083852905558491295995998283925644543058361581851407387633325208995615464368288594033918740048389092283854160328852797567635703384924429730203480730379162698201655867182163046710540751514959303971684217028528066443101606917144294442625113679064220396497408218207136329862475633797698474193193608428839255099480901666781935408322251881488353974680735952252680300575868047174332951474575703461219104055895270186240645386375634960838424991189896470173511321335078609128771046992372763846309627024256879761890350907896667881620905472707716564700963944978921681936575936295939149459701029123637907617966121086676358729627367398052960674203303197344577027535502708073952414766189816242766578272161180087950877918693166881529675016821963983576039146140560372412891874044086442308581738772358467220157264595139036721068922648731713848859995004011072958758306773760964741029906997837612866982198563506765158286980492486046406054394643101106429140348376646617778874247685023162403000378627246636537276498442759686303052110550389415768722089891319989812979218377151506619212087423091036375261750908181622012429165456349310495581232536280477133806653616231747941612134164996057876512585406985140637124949396138045705145877842994804293436709738388137470441495146433274298643959659463666609955469133168936550130598221231305979299570717932996891115717222451287331470475455613138327337119233858278525491014161495418469171480436860403501371665873205055123095697160208718371397701146611120438460306894182241919937050611569742686695582149613458046631058936109573950726475271901491808022861832399858765173273678726506924331796542592038331961094676341510550756682942023317690459609666141881539771068022198621798354341416584834674979628255559633735880741066967998410481939563890071958578044011484313808999815284662240855608772982812890744799874111576688213045398121278324742792934742128049070784859759988981719974086998500880457190807269393708902565381233671929218265047576573625376446832270064117191508442233815099537914712859177670509647821736099734581145010286227518770385307497993320670568700574565846570468996223847373206957970474248145602231938560135671464357939367843027455959453199340276887599831477710767094220866830821071743019669557124337740367478100662944332045254464383417491541890061708504347661553292628274155044915832433560894970682443451829511144197764186670211270190984010780207257303547894843632692348160231589035817346772372202809703104256349785721299260966929328236991714449026530809591383495766675165667490161974064761059266437320208611220540478845443196091322598731304811890872853810876239904021508301711558985857672432433347661615711354686943995907453498422347064067501055408396264921644912209554670459882682979111374187202560784607997841032295573415169399987112081205615431413071055843159296447625610502676098325760022694204143946579284035737339284264833059138959583178243380841833350687148639553490418122541701502611116161583365122406353421776949710083376968429400276815032380161118043777902636322543908664839762059195578306832718107617865117255412877351126970954077982942673870523688559207019477139817676863320992254072173861667369426213683469569942106829032371954304000988742381041480162828263040552985701238659178193659218493840294206342056686782416316880150522634784191641862859905365610673354601353789112919920630012403560119240346402644562726723194489284479797958705450374625717887050423488856539038937756020149248413659191166731380794770535943391543643317130507926518538250536272962881967329080370416843880383100384003364350630012973545186202579570157494054670401010530794190081163785764436881477799238680136067368550728776618851328548865595064975179054614688385292979582699095633407830212473756344223330360205594719746259670184338465350616413557338172582223812127489589516377424383701276024283660713741098353783536385575379028422114134492117833591019509254358205645463686728079423731597724415568288076151005727374233191757055216213222447002478473013569898504383323113307268424356748222624747710446431181206087595933199887518383056103961758724284879876236732341579802237406785303926452688059023533704314200981469123891493147274176095253051120403252435665547341347604491957204595170791148273425761965659494449030532278714639937057592121586934810725224950002483546546516042737827952766366562109585762317206709677957509110980226414404401869603501083999788296261468467543770895703870314374777747781628877129343899783674604137377618813899997178665708402989582403644599461896177976280101083766453199584290505802002760765446408334092421574414087781073221406444830399863065905513871485736416141889463392031354094680891133241187182529211795226742935245003518708898190663964116602935988697431096036338098263219310406570276683454685582032527154548020375056751593354792650850673164398659401154867196484705602849754313268396317227079485383416112693470424260322014105017284620581796684611209262002386181598623554849710911928094454813578384072079214368034861775430411865598038420564732125744652309504408364801230567866148747529715420085223098078795788239246289724480324886681089346123525048318528166948902008319031867489891101060853754629805396852818705756014474138581751408980834120024531798783640552611774461400625631244163593488844757445278175091425272404620735976915499265861042633666514503706730732973891276396905842886352848177906428896773763474371960946714161594939973298291815144163428029142031274575821325464268380434478846380231975736207111656366923228787679912368109544067412510967988691830479138654431799104411855142702645096408273865149769521630681828251310872661544052102945570673064803322491583117062423581803782227353775777445798188582842544833512136780371257960718621463168712735597512111598499611078633595057203036370133677722213056010958798896386556887806892639884352656145524602445155144279087826735220166202652302015648497377997882398968500378564911017929680480292608270435783129185101007107715155312244292104129866360387390462256097495892453230516999115732981613653122354647112767120995643307235034652895414994360729650000051937002518863244932033528072807418745931047046244949215818786798487118852643659447686938365899733937333849992317228754340740477782140602764068121543048407266783560236141900010838167505804557423551954279367129470736992270097029694315318393763366470831123927284213529008375793013994970073746951026076301369652950037358424830282025013446995667426990593865411450582032549933855513690321748757075279374588911046966639159210534955008199142964800925608902642254504896385804219252249292367402984996305300393497030524268302220305573448066066290594042275299293024917629818007693847434842700919127536055620758785693534866021606927722236327317911333147176767400767551520513310772936957986495426481739809125667114880159698274450970785719682439915751175049529971565518316503620777509526832495139059789644044985746167107649907751751810469770072628969523255464515037105261883442633899379509073333159784433936107892650050492105517022491989623833198423332420411176272765050601822641682553365762102395961747348695484681493687677057812145134361498674990548845808990922250261696704680384932592926680697964014278346096275487083451467873258776823006198752056249968668261765271361410094734626863657563819538633681347786501409109045713997343848160904904466895828681017126465092088607259303328047646481278713190593053377359571349892287693041573396487840151452302764814444284432904836059016026492710818731232565056256098734126196602018174909563711095920964134996804940750767716515616987447069452643503633856697846844250145543544239655458742344173874003950958935095339994975041052087185996145455214913670437188287988541616150854160506144825115399142168379806613272787462549911840961394732596682625017461255619296912059640490999309304146063647512473080411587995821861266649733305497447623076115991500055565254290104460720745531584418895001221093133432051620874555625670485629961542694605437356092519908045589276864424426761915783505045730596396371610623662320354019234841171744471366465466531974817497912982136460561055159462609781695644894041443811103310117824057938743254978096391048237666465608483037671427390016578543904974474560714613542984794418436804428209417725491014013505195143217666470122730944903840533260712468367006057195756093284153986163245972485315588545064357527518179859752918737345325667654959130949619750163719770326937125916984836635216948591491743818491031335044787790347505565034732403710259365675468558906439927183936502128322757387640950800402894404185604929972803634020181297077253997753287341536928132072820190174686121765820580749262324742575725102356404543958349402945118081590906345811384599141826853198334141900618796928163771647257483543539615078804174639018186432647427924838112857209009428066127301189794444914142122888477602733463373994780870555253508684678206715800718263947549872078246496395598602915333180555824379646054328166892116090551690366911559024823227146486664302735700030751512400344537783588055302102504332013650678610292555757639197933557765794826637083623763579678921295847993422369868238926149047958307518493717979236190379615406599334682943461412151122897801279573284457278326929486959695250400509481132815849439009517190857957841366839309030097963079388899512902320578034772843242125215749028574917964718219771573008572235442084766526484334997670584013694245546830450824066163917089991961981179945461669124605292790795610700715112487384890068920856920979515240974478323864693329537394448235953627988914765755432537888478772747161554806727831148273033094915371225081531752646989869592742404568682695296283739880200737423949380159552843295211249516298325052774821725020367644225737825337724276414623675027693275010599003501588381373529090953674278929045810254107958680928569585888347495830747301990174917653746966988234832686080172056611904871113910763547916790870319198894391154655971133411220871352199583870813348253930799541095934261019011810981918367818268345561381724526759110183767086283385833002165757386699984172659858909892941730500741479647425672862845948170687175035274810993115695445374925073777632377623795108421911536882713090724560703254471367669397323733877229792090787693404543613149476714116717210070474509964892984590784092085578081066990991179556851919641739286125606227279509374094282601561865101631194445527307847245377581120143173025151306568966500746866326217376346018458536322241805523726665075672743148619598729669798247400523753601136762224008240003436691653224308070723258797805586799991410582087432768719064362050384530134581091768846740009033621173340606605883248770318027118111384346331008208632959526901638818243597973495454360646498776779655085435114548942484610593348111544183480060423738570020177281693907741613083683336997902170262632070335220204748413960597232525812073655914711262415381834984451209439589891972163372078307696858776506249794594763032148726062166217139173987430447996781632687121275841528172365489370703339163083256389642025526646378957718185462000099568864476949012874071629689985423218631820169136110868056926317554809720994113305362517244107301330810528285660464214753794293756897993825427029967088670798123462009106904541912860664419926371013365202030605677560324231908915639233937699569079671463342827589198920146243204330664966823907326021151450446880649387444612343047722387831139220661851246131424444682305716266374325598247638357012099627640041628916593336421021251190141081922215718888754846792146977483737295403818158632937228787375815082315271498106223939692710074390109443241407063289460882157709168189137062096837428342420777674754068069198741388538201542174934066715352497946309715173515414777241337667706629900201061595751874645243920819338116672171704291503245862708432980926847114655805528740596532062466993292666043228307166013471846238941818956977384824984486626414392612532422402740389421455011511036013827531708118752088163918414680755118999695519356953888591458254747098173206708217020782573939981247133915713933837307983012981486857019671639253103971685286028703039462502141210884650860151707533722986666050808465651905812054307246931640130405556397246257942614048769756075587898161889585953553264359883234675730795290671038374995896139626283112647239820303404206617053386823412010591550795055089885263687460252284256496353421006277165828387785210027227431129104356649320010493410959397315055842659957739800041748038970391797019707951871689842036905063903543437270139985622627246900272308019050430698404837015736317392459573658488438393364806562080858720534769936952412850798769849749430935675913188304339286744972443982435372168958391710389597314427921737941971705383879366093391626495238903790973656239889047366201160794259022769433530096878384288918657313901760360031736846779907120045013288936896117793752781427675069353424309379606612601225388595870453325262550752702417187672871852035989271015868346308682296757516322669406459075172639697226206879330778672696503270710418228539049976158760373657944214225743351223322629501983346314044497432417250251259128591947992941595863450415096910666646362348625551985878310632361411829135433036280320996837333686064940033434738750403708932917097419212163077645458632301249380366000105165060109866949320722260409663277659416085799682222489677335754041079132081351290350791455270837807617269420819590715328772112525963594412152213012677040102656028176259739688685369295565380883329507274045974734819896085598077719284264044478270866257280788375935637548036644462613540776951152765596866760952708123363659675894064992893336030521941808366337575446641311989272905626670410035930585838011933900266631548854030941940478640473021167426814960872384719329476351062002476848678366874575999505103585135674471717643503733392404681969578225031129663844872394759210226853109394786641055521322841235966331915524514413312435862026130867169423240464061459682813389398918175049915067238836134319768129245334078964417740631716305275757443846938453697083741929881132826533601271392423085229037430602296087012981961923515810656765191379599358450369305257040452246930795826368471960289569924868024538357396163643662848982445531801623828055951025559069089880129936699186612033799885888140490595254106265448782748904067433205149539601818811284604938766116093761770050794938551489297556363490478892393181140534134778802637677760241970436049119034184889134493239198715117292070102613905308791395645860184093623778114563992389487790873557724164867331861893183405152854826449014591734336242288324413898744153578148754503823153299877792856918009072304920297191827747060230609791210474202843346016374516163788146190774469729672613574941819746706241147713774073772648337066953069411272845491618569871714134577085975648014614990899471887740276663443887446531171563789388166271217287567405705378643983573641606818856537268772156909280032511708464819789584955241155456073772510131762565810299819427251233513854554628220411983141048318323843860468194442406907307648327235079631499194804959698589976617318089336207641174697024484124931315495600544439167990238388262702613222047368783271070130067182847974994706858451209394263310868661191399940331650396275494980460853278753403582687978813252507784834396195718551535772291648593926176272810893122050207963582740607435086383441446859498963494849092435410651937669312362384152406013320454680820148255954357192471243396591829787810436345975596029336763715089310249578683794524877196856097937732873922652431483645631447433029469879457012319089436533906002460314681206629649449515421944551412627357309072933593878428224407785872885390426840737455365679539258895945746871173977074453000598838213104993642023666841644431024204951304465749129434044734560850415994232303050797366100386770296485226657297970849219871879788160799412361915318447366791088667098066284996858773129254826031415815424728866848944474644071570137161397897464727537845226101727367819634697660956901355420124890258820823777589362843630064969596070367396652564893144458444527502684948239192661258746320532631258758332981516802835057416483445278345527834438928824202684677597268414159483739812864857009277883730532310151165016299666724745043568931235416927343354416073004018950196057078596286149555566231470907907079245953851248791373572451147430793630374299927738833345429164022740724788513939574727714943161866061131601951156757656861841580327447518760121407104097206924373435814134859938370926465180495027357497138249661937078545433559928782849749083581731440805146354955455967636098206751517171499776942155509358865813703281542898486437415751813668214336290008948423834190629729232062179229269597420504795185244319552924158402260058524915433044265816301354228463536442112573218656222688353934985808946271025796046571349703909634506043796787208313720002823467382026670344430636985296816314913031077204435373040470905337914927102215754241943642720632000813426206916860893615292208604706779005374462248850931972588059925003633663052178044693689651351798811932352283609643552148965917825145256802168029038427517379196990465775237665312318399851384677979462828052692574581648807213059457398812044638457913746424928036836018099345725090819170739120806606095734274144295262905245414465574864143466690732162808498894525929031197435411535880541375093837037046369640753693302836137079557575916439823311484942361824900620771266780029766389894548409212093473696022972034368870374961800714747075603957364658153245798447214524109100440066212129712760843274139269549522170676220930698898021459672601193302007247450457213901556905140534092563373855975238069713274919763793478691387826564917488094141352444923032922199010061387969166403784877873512150120771727040031456292313166182853561267311060277196529586195339776368523884699930706838062853205442718946494634958884522215465438680951458555594812013454317750177232506028237310349598642424115643949070077096382381696398199754892069936421355972724766968343187762027174104888070427145262435816459366544565969027620384284045857326593052691748424684260012434205152694563448840525548625798824177205176134348292959631513800334919405867868026817498812518885983343686737653399389158031655595891951328094549511729280860036003897634759170468984288070434421148329337078548084483639304660987795049271942915443631626027409108139260192797401791548929557914501506590341040429851131125903773114264315268166052352172393146371911163178019985268193509790707179627239767347717324876631840931032809444376497752423994300230680457400461426103135515004725550369749816335233878613175980550146859851445738040258043187177888875637444237733936061360413162316328084421667430870206546443771600261829780351368723883543080479670453697482260068182974035460561116025235820436001967222731506210814512761866576990498437913006697538327513927483852570855329880920297455557884621220406050014402951270119738350688465418938447800625770216722749454754862000421241090023278170963216818898181604351394486459743641942953275900239692275218598956998199295550446591991012143344201806690356333381479965793549714026123595406058278164639873695172533411583784914996705410454672368989480746978015959671809395660123801193782714748441321466593802589706901930168559571197616628809869395323020050184125694610630845983053308975343807866151814229833305974027829107760787531731970896891805333790007944541233933274913916272323584075098484439787595734297714953894980127370348531394567139122893640377274829248027409563174531565171978157269274713173291591162640895943900500171362414950558462294273509108842543345718471112707164570631035536405902927726451569091784574163747375374496328160479853504038660468264008137304795582877798250446340620079104111578797770323114743457888064703664426880991120424005987128091124602669865501821827519063429104380764986793112487913464855175366313233613390818161340431467661744476412828664814369378418692776028793099501169961256861873332868455850519012069598061315657985894310748876129522285398633531458906453456915162546451362583099698236006365748885377620867782502618484861797703301478999299839403230269884673399525932508511157470629931003830858962563346771580760007882975892932657886198856620856916994600365376671680571021666253831154861644180492332369003995954730258679731386964576583652382264411973986335436560747413065100045345105622639772687161782194303522621340919016435623478832692498396844365668029442137193747810312073141582142736004264166687421122735214111512171698631283894209550136589025540748620790727166011497507599810768569824561701172138661503456935652291021094575618761371140263804419730383276660652422058095453754535294535723209831183869122799317842084585113107730849535793370917422666530967312097363971512846378456057777862922260549638583602937899976075995286500178121299479995324138337146753094324166680827299284699551994593696799121591974492403188937947569390447572425648570375130572539234476977807704620833471329817195150199007481132490832322813141463132817117608816282988135192713764654655956851703844938568137929073748789228658101063310523411576307064381750738066040245414840288083310628658001709335471286091280202975451227845861621781089069520718722127842525699256480184394282919751749575116336752679920843055772488221416411922007674760690971072086792693300985958098594299779971094556780794307046834296500026574715462395293080080839697459677259303828927789941228668422672875804654225990427373342585914901418678428072305114359538409152270312188232582808297031578725896615416225948255806665925962926154894016176145504458671584798717474452205985985488352286092614585753536374085876081917485845269926746277565875407920719185083631283012491447778226343468403637980188760725069033241629350682332291831463972407692522803497972243728642716361558196256748650020010675268269167739356364010551339058659303553192211206598332952659413569838611590333888635327868660014557157551821896028246603516782311885357522179884498624050861402240847258217298195914740933088296688622043087776135616363401537685876962581227957298885690472087704048344065563570731456898175915462475017892943142328352202080226846178495414340547150817557013753958045948806490508021701373171316525153027472468218553705096057427362657286512347943284091503100324560211389474080657200235689620994722413011200378960726697968198341831632920940738579452820302237291460227684050652574951883725760870154698383457641542245731431864559874779479881645231072039559937705133220289117381848668062772202130883859193721907660632250100599391389236225051819546961583876302699333465634625378481080949963791968259330095532737341271056468111981613867670527864016656361997243818073854506099571782153204473400216604561409026920784775906296634800762726749988918918022958663144764898528698789024619182078603301618197519972200180391390785574792883969211857377170886784996625158837392632571811019607956580603399926558238059096289474388885008272518080053521170420434543040158334290455079869463781727487883150108423664848959329700502157011433782496453337439439194045276514051051490819085049224968286411837381026256387484358251729632562061753328808692848592875001918802069406458248774520830434288603788166054431115379007410123350125605080797168141421607791968623690132683508614841497515920187072311117201424528546633653040063196544590277538378999188440715171463213264391337576888035289257735948784219785135594623126500033755287245031484169385790981273763385891916612763802109859891905814157348676765619671388557332754021423447614488064825556253525328697047120782963507740989138763490422276667777839462285018164065864710692310331522571987574760385219822904756862395311334300880012696355764439616252393515303501541784902375177052337306955954525969943729455985321419734152668050912042066628728788585247099906036875159387004865403889495408540644900935370499583552313366166307232354038990666731494022605002621564407248641143586303901451094003872724403089826452661436904257204107499830251021514330172530936105250765650944965019336731727766653579891801294556084147188027383891920287517508512064030258485935575785205087896971785309180404153565984450734596657673843410816472790912818317749399843924431200201576203331011686777383744469246038223673686071671236131034073728924488037068772547305956911518873339345186047425877992792197798740722587769686602489471302901912458802780646098851006144508256694104348573587051556774508008636068398317119755590384550840314786175428333871231772291319854906479804511151546212480415768441375457552292799677252633004698838083549204517224569673439971656713839795766775973673098184624598047389087350150782697350247502895622345281855685043958702342228684326718876191988283761879798023744463750472684560491918459916138475738421126006599512704252869658364076856286279659055271592223048852626478169559859786283522058295575623471782414115560890761621975327537216800036392248337970324591204982349351924284741823984993744329974160705670478145751589388665194775081716215025310772195149986855876664431772883031530159088210456984737299678865587980247765826897615272023757429539942941196645807206419485856992260954146090340328072713388770483551492699258689725773137889044606579103303689335882303563425565064263230985141277158411912168728816471297630966346253323181762406958935478664705207342827619867726296457630178108008195713325107639176228458112702904839581779091118029844093350758017600691898353653873806841892084283514691347922894077741500720265459516356311530853126579841321882746032784474469015304919571467511775026202963401665210587857295563761807151693504972871552965583528840506365764829144944491089777836687553073226449397622121812252482061413213031397158285008732640479873643717992703751585505174856109481094857979900527459109748911163742279188719294756571480686324730429707947862411395924372276087943173461536077255104330203088249188305485579324773510643344850352219205604729520596947600904760405511074244043104513886537732444151519740589230110370264745366479357494673275405337723640940549561310384745252353933282373316889324977361843597433085446307740913514287447600960608921381592226612117770863499178641024728273731037439137707688741154482538410425095650327244211368100720614509936436080688680267175957304434435330670730903871875743210395582448871307430982054282850294651360602644594776856122886702081171658622509344559402060906962054805230956536663186060802516828684916186653111916389328356132128078393180230032168311713326332066536090115078435468866979476620908684998491267991850968672922027753104199515990285217345178915340024046607041554783491120248247079163895260996832828526027886563406320251245470567589264078760958915602230845066683376105214626872709793701322737300473302023949447934326019768524268853355634771079478565801179857724104449745695696195380689753544930247270415280841971770284735279407353603519090476980253005379181024029955310801645148096943252229762883023603864663369300920789296746488955938913112988586207336940883396239323237184416970417653312614489379348076086524255587206444142577786010797836523176069738287993567473405931343011196200352769311965119014626012762619564667163779500539592957309665604489584735713951743269686925842555056835917647665772080642475476863251560557831057981297288313682293067826174039262884766154724682468558253473683680135786687856744645360424988128764796984322417863809945464413151867140302891694772702486343442962510738185728177905112435813889161612118621115299049447076987361340777286696479098232349921320548815916522285687350450835467867910777642817173666228319108078932899130762908884016708308539925570380147878326203647942027930631295208477779016247179080692368527256286925812016046554508717865192527994570356052015611743618578836329850340505617400563757921312353495028859023432731613591940572315887384398268059628923654760349389944461741124869220492570895307896994608715943773257220625767055761363229887340368256251317423476335689382579590937829050150064607417137365970171525069718456565794435246378727299131780681399491640012935680853371863104773699855437163320487555714081623586072344942272442551333566379074877132340766738508451373678785174179910658300918207784228746483897681499407742573225854709942890041799427518579545602717092734253287280946712040851371607953084886436108795855424858350694197627760420685675956009150047981460080740823291918289919553550740978362583002714723171479788831167803802544836931529809468657640111609251371922749561036172654652286026873333018722201490177233281282350863104705492619694437464341971625623111422327430351988344142674327213350524588276417964337224122471730899175559835490642537170844311477688710830803036051040772910434954069564545381142782903870312911863983606999156280385906353350206159639119747697244194875743312625918128437041574538230927579452403191229009782645662581615699040421024647786940672840563006432114299733931788971654911076069820389706214288991828423166074249164681736717275240288200353628687151501654876486143801846086662723420509441303613508750586934142232580546317457153183407410779619591405518294732770215189563815193209128904603109110649937805236797895925249696902018921551450139717286712389033359167201243071697529651919825744409058598215015526929692022068170175842936921637486665398200060721832668229228673918110455912146743725081262098850994904231440280797598401813254507382299335034379221715857473216440496101577186881752853162836589877057024351465351044344858229006619331714106471974137880515657049765141235576492040933581817211984285054705356015358454234701395833829671977077421892963959733726153145072822414841993364904854277787967075629984333266435649851870782981172559105253615251293567573961063594841619625300582716859974310240876393251979986016789446978147478778280021625444479171298415011329521789353558694184770040570436381595516050377457414542651801926166664124373194762463869109515867535518828560608944262881645664092491199900951293818690976937717436096592151681425115905490787903616739224376915805320091811696969381780075336553489329967274260920755631471439053230800867081650128674267893123978744865134312542783019517324374783073235491149946039145830394804089047313781955778114336915124135361329255606596170323354598245030374011986014256386117696460624512049345728179892420799981777129806300839653549310119260566619716585826826045441585756409782813543310614440846667273941342489445861378570391625126053565275020701668725632204060832232367936999890086346431906442211170299912874587257302189006085977688093032587116629880343653701467091511940336700670257438440709022682779800427332072151696225637272955582505328040945375157662363542139195041325135760916447796354968146286352402525414425491644236563147789485846064709792798506735391380276271904884137229254522095755856967612784432378182277072456557919861594899020042110911747510372358421278131392725479710347207269891441093814571519475082916408007759202914155500975163472112897687121522014650817983568843982471129620885071865474836998230984911768280716188274471982184245683606324485549508949976708122301054839506415001726321751582886842349863728926879424749668511019415351960165366428867479192982598844736637832331897396426867578935692632791123961224626256138538024433733340898617283641602364113993743339504119038572424388480290918658302150190868924345461235177534145952320885656107899961700981915774906976133560012887795230778739566090335189469889003974680734786238194323999034065391398938834568182245425950317582898932584851675564549821030077726084927689189941013106000716387783183309875160838574430653389952732404897562528621621503667894844238001946681185424084652249102214913528207731498272059223009235846381601303348909411063899600786032508463822470833662670060952888261878803260104320486810611611924944113814284039743647455091810194564978277915627003075060678875992648713087059053493897686177325352695541262459879548866760071936883781406895378754629614188312014999883312373094351371856103985229289446618872871506794414287186051313872977775901067822357703122830541083454202694043099736017130881786742757919222430735164210128264078635352961558225466225602315961266621626512255842297698977637537484801421877638071881765599807292836580257411285395202041370117250681122540314936270028459408345565440548274273897953486273214378997324775118546718117419903839141792102817809117512164186146802801103275294669065786993102904802496189127529688220542663562764893920505737748989866726874047649731484854255035269618555107694731835086382746873029459143639862696290470804626220997795854132568384126353577219559883841830747938895635723914662111179584354948414224579982369682011842094624642332153321834079907713615060530057937739406459048689443299788790527368688986613179256277447713983185053793364042174342721126519095974883356018229780189457266187556521345568393363924160684700815316915326123329692714016889498013046395824213440392279616834093133354568993285289882806322976588371660454614985429673171462012828911232661094612581157707734590036127031804969933462951760185228656860127082515690979544392032353291779887262222315105067500958961586252755188448413163170092053209496289898050305839997413500382757905928570299511084560877716521980056591571181778543348124730851536452377953400488973363781702826765619915476091134735888444931904529930364154291452759735135885185122300831832888249389437678478174391246855321623721668904838145199630291639575963932866165025852927220142064513898097433097901837322941896940766466652618508878590075339904519013017972853460010672121483306657207992435963387239806238341352716922306747213464881013647818410438098676149138527907321544800444867516246171564979784576038316460510173889130195157833292985061308891778777388800227947499954775568009947401668423460098462252558012822142754797705750995044944166948296039636644820606154250202708656185068796376270461437831017484247089386276250640669081237886871237144791679945853844810359394789172427873303920464110353392984819455552005594927274146818470201106821826454644211988421279608763881730437546686186094931782583891628730061897967846188443316913466344994554819190242701367768567210863965952330654390464893883889701610893421400550701161470729087661578377703387683909837176411908285841482442821176440597680211181991018459055870148002493410057722927114918896481192766998304790755523178222681829561950141587784546610273575379552210816425280890944761543514582371133955023778715419556677998840794859783493663550217892555917718811720527728724384522424484169960694502477689785355966940239318428198823973879183238259444408310749581162689814782189771730689832922680684866522170427402343646258376367836628032290266652598100833621593013429045783845796204486446987299479004621867002626358915166953859740771070931452124000284612281409966681020357691432934727632485848843880562657735726995315240834724550691364155815713488994939883623259300205674866272684220197225871278797922466326448861343023246956007004117274140880381920069860376615546774347728849742130987117922859979579627862989668780642772820299061509804684395495190397563027069927118300884995116696052548155003142744646108208256747771960062257111006095724442689455686289802536161617330617053464207719648117885780629364587437086031291205361774096482626424369556738091834425750704179629714609630948749617425425023259715596480366666432808378767248880601608065389568476126092138633262345382808046644833730439920694217484933634412332146450320737808266978409506254448452384146423339783133108850007413292470263517531537735835407959553899862232403070533219441278920705040669446041503224609882532821504665789428026916392251521658943024312309996979942033670922330733626174031948856178972991352533820819335213857699671139240588085225000027968402378366406638016481264573273062387296158497213395790157152422312355875066145565089141233288423138190228630246766289371898368472398762516406565776488661995414408124392657883222847353048079828517349924274245840042143161970231579192208953205144124120715662515153896992907388579827370606952962315632568483167669699512170819720665781565098975882889824307384265118195870761775865695134787980164841701924789984055115475031707123338187197276018614702374370556145936944018563743718594494831871185458273972570169280857980171224560753332666579663627913948899753599445637480351481720177506491705145771090111811068543714607791492871483383751781454543932432696988385931809202854722052289156760773001416981185071864385576590939410720555119862655517651251400483589116529102795311595184451884924514320063741495857890510444739282814868631309277376696994826455989813916713598499640277281084321825681627364354728615868190949575457347331444039452781383629576653209664426385410991830668886891300798954472556785619157913393143735728562000194718025492161600247852090230924897503407663989441500096905722099134055618071786878773613428087736131572915568741243827932625960873554552900903831136297972426250389054430514033677999271121114153830264280944940334236934020963891863423758698359031647948540927122996208170588946044538737237484515644348294973685332223839902244860306724172163207969398960143477075483412989219538560390466478090285329953048588214312076537576976777046687942651450424912092737655114606041259297038674140793277835129344967023138846322357717233796281036060238499893724841377212509433004103969152354330203251492073113367101068369815278437845332420604857178760141838994412106455756859951880949961745889812285715995156824807042520163710490427268240062811534934491564391292156238776516050502404370711568808088391552488616786771978001438359912435627259798633724367715037215074417576055463041100285468438119979835590780868641250567234663174712963254929212969041663293979916942065764056978155988559914944691116127065973630002022660736600797229287067267711774890651160754186788203731294332313505632632123557298661172668667252399055912479237524535725540252959808159922308738906406431956976030002713376072328450543131492618897599102112284490960606704961749790528309971552018751756719475568492335826970587917252851781124750657928036936116459204063157568692473880483236772988755355106684966184438450773775783743724057762558503288121196197296195065263533083559827507176460489162159061865274309968321786424073395988351031870935367677978496270189310984451054784915340656416365543724266499237760467289616183426375804147328570239135230658418002772265490657097870615657767100652662523709031591059265824891637472051712797167210628776234122749501635097865500901803313093638868987223873756197078855269628619168007925325401689320339872455498366755065875252747776951592779417502837218184033514721115842194360705160402336488475151653325424454592696945365835902321370538910303930576000685452159311994651889511648930697155013804193223414606667490368763640369575364042813393848485185958872887651898869438812340646447821327011669699431615562610820156643940632608837262998299198143353734794137562731918265929511496533394158812213208955260249398647676581658256918014116258127338010530086343549559541605195855793979114653970201448333194923031753855633530744731033140384061438204190557015400026900347726196724650940508798362670862138461051299414624849728600635084377622236971624908970213893742758240525829510212385685916654842137010780217192215962748081562726069443060914231749932079788141154290038004509819702363235658548822044377919516586540689733200973122998356753708298233599787277326345484326863816868088615474459257694973060286082999780874425080825042224727702569356541468336255132795258233322966372219290949697985129255629447857922256596954181566988042891459658575737457899613451816901477935636584735392792641670227538003428941374128407303077162054181439502457277399710076881771731776655544037068827902203546252503948832480095700839037745354806791615629979900072487994753438679848304590771966724131782755312707176763032436623089392010438880045361555767058922089922466190664293734925095818576895545119963963626529015863938357108670101431998417580874495821989447678688953816687340325617864717776127979012215697587089890581374509775955234355493510145125994809339357090707911060332878993288335034585738359381858477315888141850049599617431732951097936077988875762751707074763563678542354220131574818550720097091026346885849172501218402187001454500727038698153336543127266694503591095959355104450038588274250522779265720468857572093056008674584292045490873884727688896161134202167124470707436298290466754856359199286460688606082539485086874774462520981817103017872337792826189082112702499652767774421030619632962235174584957940041820430654739660040340003415239859357477810064823226953953406440039191078826739236847139194928694872554942823706309881358904635102092561121370990629561414154847629306058322931091618076819685126440392866919128777721728309221274935506883452422752771115914465469028643097893791011984623096907837526260199382888223213726275692243218425077530851789229034297557627559336852317808601018827501572731568209034106343492831408470583729913587862919572593117515333277665699774958507210541707201908598158607594374360932527708600154620473859938157876648314252520640658984242739999806269526348955996674564959882681085962941462264943592367586515639832500677951809264604336179052251807926640738464043745154351586957545737903408120118814326789567984200883182475284908127309558040236749093318868792523668893021681140562486583178026566691386750300550584965073722318931110198533212719400774478041213749150333877912351706567208804365833269375871895707947635898876350282149558981811315170275748801462944483004355630622515522645105965765032130303596571524493588328852422648656902499512748585179159593752921400300356182997937890740917597561861786709278815035359526862592640062312756448190659194359202330533776921171173438672387339700446108670086086896651223599942209146763975804977450463904798607494768205243306796315690044587009428232188506205049795809196399322029107782419118476373038377796681199598330938080983073207067271197674741665358486862547721941409719491132324442161800937543725932871915190611583946147820925937004786539050981193790995239040234113541594326654114024383584135406967993636120284614465772556802663261407779509275410406987312722333706126956606970680297433341511434723640410848181896832265432860593067565582585726654735944783104108196362124787135988035010770690951142290912325376446359698219748116545664199475973045140889484137205951433931349302473364868743675624860677834263855148665053285194115377986330496757898612379532636681724417276439143331668515110111262449273419305714632180142205114540860095368912688864974406705502580860791778146229499009050008157521640900162827474776724068461998223020649577836320726470087935255468167797814867189295471938722638338708288241527390494750734711309823223795629188514477705480746223918644255526713931983815280688446260523039445255402163245348131593326838644728268729257311535356896031539936161467186247755678120727354964477217731939606169741479772362765244485937034170638523648391879532939979662024574392573765621273633281433164909646503761508759255097637169766492765008611974689032140409876314478191215765748698091558500463477423342511325566735362554998072808452753704847189838294953163952307876508112365484929640060197299016345342776142693810524697734415289872044411737715870257113478139877935858673065980112825617841612065906181597261498763105469010301027290562627183459173186723916084407421610838016757932630940047003489289412929427130190165780223942945279488721964796643545425777756702497916315181677000614964600049771040905131958023181585162499560257701229183602018947765820534428540123956210546276381305574047694280320747838126076949967360680497264391464630572116811782865247596169027459090181256296565348016401262512880564664697412604522389188608442850945275141757200568172881469327263839714051311731891548361146824925912636238371377367936393402384374275199593693372715298989185205504813547258956494800334544297751292626698720098783733240588302457110298202233650862956753690678230584009840020820826175711346352887113391349924124006683726585012622920399997999467483792130296859123777803859772082192284452695410352899430721043956613045753674951908898345843107798349632113551554969323387786748170090197534940550489728629947686181462606172343112963997609391015349603847388206106016695411347973225259499806824660167728483731121425566735466301553132976770053106560360224130772476793959486860652739584776577103945573003676279618778940079912434667494410809565093171099664391893327467484107367151123672112710203646602588247299091080836163733793469588859447502303975118885046295414871356131329638826093353774467327509642963316937469633340248289104118451821709975201564449312629955587728228802349172051350950548051994032208745396220017676264929160854268249948379020715781435773931450163700974883256689206783272010320329628867261388976180665230772339595888667480518403854042059240560725910777705084710995998053495623066577721764704677713768323944527589695637317464202785658855682461671432382146616629629787605912464119271687652943526192352772864837496406716858707688340434549183361172395039242499920396248037489403094095403644703189397500744105375875758760582029184820348299127629205043315295042756816928352747771666555573345608556317746179553901651854965626571694190845192947777178727217232601693826776075189710386924836134788943997471468451090915747537846407505960609797630718033625538704066763657057469780619531214822307564971235113726295594537194822917621893661620735466867946044472261335292530073530221085396126393699063158087668703001444023148120905687710433378714038352646005876331672786202370693813135965878009233323670538381303479275336696276051692528630064323726654283669275688245578552707915641655249810059298458285416672537959905089270701611314998944912552337482844234512060768494751295089032368886811687620904458260938147105569492128405349520803708085641282214464470839634938950449123030943506996778649474831357506236203874817996043940961312026803034847562374649621981225027570909535173773599826779129063652852127597078733138750186167070935390783532099377074962719868824946767125142719796871034827926550769369328156932196567532835690213330723920250989483333392369594217769791939200151980784792034809588350849705885518955017045734207851232068135388377911838209979072678401928093099428958065205273602494481631301871169385820150311482679747010814500144648297862648610460042168916376664108767206831396595288310880666174261597186847274760881161137475999683783678944808403395176014338435822326138128445406157757967345699124876920915058299142042028921680341020087032877736217180092192622614568838164539273956267742636191507137840019517925970918610073370854423522057251696704173584396364188630967079414039972984300327148532105704600132351616989916260386742903965225056101149701720988630644867235330304317375672121550364454094230984347339865821202047139021234626649193417876917121205797364156741627324541903060097919029314397606265287117136334263423849456317556037820381061747122345471212046436591755570209938787282374249058741699602612672786219163379746359719097697791941528939145785797609672630877770107331801497332538844051563127333046845309516321842945390272055691480944848133694667257691499006326172885079755584454046627824328389206091619751017164167028085032579471693687976788097204443614260830233642126410772028862607051597724608344087075787182736232290986361706198658346682948201413350137638587795314742259561323556744356854500713039713593785192714810358383540107363500838280080800067293994390082204406204498469816155252196938463619015046078392137748693239906426862974159317563231863289247662873992916436576167833417218995033076544295943070404164662376169249078995456671847388405621661175847462568856316674694862788086205190388779565642084441036877767641938474691068264959519671740977218739755932039021643941714579992625268775238839270263475311348711089815137687499217158008713551815591668583804005745537803897534075677576912190532560546818083552476078107562528125108078888406517333111737855739481291429365639781199883313541313057751859365160541918169779422629874172696267409505179808501005909987183608053071042280308236503480929892514531937756826370048718119095368955409781646938210505635279177031483259942155088783334385412752893027719920866473307925746175838859309914084555631736973946009717557530683691569284593392754361370539317211776441432126091382436452265492538036500426541779629399502123950028841716655457940763641959692632230785623273921989683861017060900019674808074924395754976909437038855221700903528582151982594725081983934421451219785977553408544111949366147872647611515656466537963529104499787555884273529874732210472056655765745284490331444270936229013761662421563082984272686890626834758050135436718721265531515184138101282768208485867979403385743597493563412200805818689919772458439921574817039817495797133739622098306809996677886677002468966116374360395301458085737166496034606170328134980852609239862778942810056807322477607665441848314073112589291484181325198422688370635798161823206200062624803635120545020392847721764521345969020061355853600676505095195928873041506942292628877370811274788143031283331457709404572937882055612256382180934217553185526179996379414535299658156715661470953927160875856518688034049702610133042705505178895590738571918822078163906096309110683660651370312505508881828952837337558331513065436287243264665057945794431458074599429829602820827435952617581666247682615112579210597265511127525269137971977354705973511119780881912618895521146438014576040164544784147010809733817956893551238581369173825573355362388195241924361535303512482635020974725762046565996470034004299674139814547592829547661248421654846493094296559967013217284019050215334287310316472875407281900621295181236831327037955333140996520592595934221974426629777911097663847279618985173141055855272435805467126927707018153912843543866968681991578200826539823444482442419286601923487974122097274233794754072841829635252089567682717346164561265191588706816437653992158098743375430587847953760000737348945089774263517259070891938444727100219889222927356105928969550337813043770148920016791386638519078297529179732776738713387638195985858628133031838990042260060368674525120501270293991706681519577308009121649299378973519702692177695658800929934689584018568344172346255245504653120164552337192083480512106841291986301794149917963649323435651124140033661973741600179949757863283218179062799250390459288250593078844693057442630537211114738705612858441258421264021654327929087936417150810153239602548238220123756201718588050120321607521207321701506959897039295551559262121334795518539725748978008590775813134786665402080731150752539838993820485404596610759605796387072609039444298122427227021202934238335845026389343406463944986869000217930997851983103381673859683251166682868921021765029158348009077403003798132271523347383643567912159105344813533433449904558640060475564149791837788589241160573578844108630773011835242724680265459822790980318112871059589909946286425551205583578259353619962524679259732493268671935931833459542750815578245096648515604776245173401043555226417220191741634551198774841711875019723003709414066481937649661903029123077223698986307260174123845333763469184846614229090018128385912855104361033636874292450700164264957354803168746861184615751035818610284697422469385635826284902399688811411807331594690576880556903521250933294167973842396033268640705094168475060346438294249209971275301285031058452367840843710991738068267853841675194248691096302995253574528558006545791172387366323924390634314413969005419785570694682262922472756152305895130239376455769350082512924684418577258798386706089340652074407086282336159406513585977120445907892500872461731650659358259798683339805270410414776019464657593523285313599652716546376802609317065883582343793882042936206705266329201041075408560119051870527146810334534719286095252013784125100600630506397585281988048982782773003923651158456653049233903910544404387078701004312839442627012469585053335300720637268441014820647246158126937550134138659386565361757246531013867694838342563074385901770848648041926676187372540633230886856240844166605668873855909855496347203284419158205772914203960616991066271511962817078796210094597405619886830181740977976032412373062069222959931806251864386835403357175889665698547905730904300107837883316905524945219268377730739427293879483035694996007935898584612396527044191740849240607320013528247134561605354478792835671856208445968583617825164122486870157472871975142719251507502489281087640732028899818919453594246946362116146246016714731484446971063841595808658835951925422573075240268287049141720727685202975743383390946589789379799002774196970804310277040967627888024580610764269476387102353544837243996472992677680889438037122384170433688369762843765204094115091185384954813753372650818447912604952762806595718889456901300826997577941540192255541009171384949806732351886509282885327618252522054247055089436226691721705586023832900056794735893227778451904979649297835414700521910447937597570284263860600668923351546204214335441731363008443002649795846610232773237152593583004439242136628265064351368122209325310496642972304876540769645479829277260019018722903263851574991783581389333593603381503330920685522681728410724695411152550771915153209537128622261031247065409638018305874767037782643912979561914182072157581124184614887242377482955400030201177065843319608695084470593496615775645198855513069219968320168141013658518946153048243407318844775445343448612749871624172101959805430763111040289095566026235303087864712633838469877250549365626456826512565499957152381134158906380675875356793243060989354867538207027936531768754517631215134092775824118274302552728612409613569658084171958063677314467970461457136416921646172055399980266998964876167146428168399906388494166969088194184268104443471288025910287385701735144135201620551482815503781176114894868189574632975779611762448884859788888309586479434653410645085336988335914562337773710081114437677575693112550977602134625344091107514202498364218685930361255558675611948692878002197448787071008891617709692092214478434468229686408386139099031490750127625337415382507074659227448101986413425449738872168304839304719917723955768619196416713109145071434344843976719471135439325148856149318350678385282263975965502365427203451380020912475812012383280410901367221589418807277788798042202915503443901320399129924935907484381562251179794347673943648785011723451559616239558912099265072942818868037504398204908078334958330212033603505945318643673252516046948793803764739838307082905167799622760480698233615643997033439724793763660265878135101511942743310514340194985696342649117858955478609408502901246241609338771147161390584558023223254038481655706421223247535873105461560749942003089981668805594769598438295215771819410827067022972689193551288413082910197232901090114047265307469891153905319441778444273610126223742498423742305157337305551834081837093888426886660940197835382608441976199585301014465543636259343332254934945790378483501704936591643374381439272982209675452467489964921712775045738117284961349546665656483951215770586166653544484562626246394951166343254539497226741888058294727849420571863533184561686790973713550013884986543384202007813746520794213300912264638366984243815515804655649678871086175732636604138822443601763207281115293667699590050648762932533113810217679408677266229002022181186144320972934403763930612813913833306482458974587603498202019582418504166284517468299420313008914804682824525562717175437992072572691335200617948198334286202938717231991119273267579472352358861453435233179689016280196585422652132634877207958698471875471705743781598113377610818234452492145043663121353090729913814659269101510322294666564984466176407485523025914038251509194262201358826759315974658700481416034691079153094812618220333057477006716859846044390836419106772931519804179821566159410028508462463609732708721184108501846003204933805640941301235955456782921459043285259934621648929692741515299620653900850651802358888084663087800529525416345561159716384785124955330263965614008198299797804954763942116855623050153461991762926604617720915222919583214304437844140552737805678302708851974747631955368093038953098116271875516546171470692010442214303339263524149460928519961746345876194528758372387856273993287324708669157553649170477164576131937631161398746447360938846673069496789382420191729284691674088926939160404146333154046441327687045418195802405044437437022117205180654158500724658240110907888814748390207743359456858689727294876607587710150613794664248004058438156561194462083265910593385706289220281857442673942692737278460273725410470248714067781438271052970144504268701043131153175724761115629057451361232270000011231491453640509446929833777244979611297829780231255371441087820971606253901106009143753879896511489051595974290083902795029573030205848257915113435275868332920876309574672922472895725061464632346235944171004251367714987627036675987741038816244163344021939873286432511540999003539491476709624574185284267578448656395456071116656605981479273560049968041377901136733539041263410485170355244910218661952203054277978879643225124229805665876168475266541727959615960072900001091221203894498266945840793769272423212678963801542721955169171047718849296310760580136347221204439259723319652391605371023693043035120739366101963723493467167119942280030486126319581933886806995535620960286152413472539361308140854829988853737829479635187623267369287059490069150810320416012612566025413564813653048319123255696001128781114680774848315100095661648564565604609723689467799438092041856503433101163316236154920000633087426833992426761405615841016743835786374802594808845992688590606242441027044433786541442155718850143470815821732957315205049838154509114666406892550199120390565484086357659185232677093471645845596439377406809289725500015939679957121772853083245990567056675259929462487525056528963164323834149190199163963836720413059791359388693924972623799151580073295837226301021177289841815658763358508445287262398907669732572303099211645906266157027563669516657854128509329724973771298644373997568129353972370751096712751417531500418445047876181602460759068211119934524126319235111239369326745295069686463881754692485968447086257509439111226349203151473633134748349102347952654629613932348926067982204362225142833337944527111698288537755378592111356433891598954530206644704840418293744389600650279786960105394896626845957464102355835458286295317808763735405303107897741091453408832127826349920087492240736903258267686306408642472169962619912275245617019708668772509319930653433888401954792759785614585409505037963025102731990355999460770443723644921849516152379335632422992134063617361548910625519695945394163749500685666974509704884452773264046464858100478598063576055011320768123187353226997161776820707507560778176589929643005631026120574724407500403844953775267427024309341786767489234263531455123774929084505173313840782318207312774045754687587300819343391634780956055267252594426869629299831097755154109390964190015680612095784508627716647109284824870529041389475342061742014147433696795004643525350259384934354488557529242087430695133764882374590679139901469083387458988847285061749105203807902973430839704168956330406204385657727213790509509380257916296495962842452618865100335379416014296782561449617686196795373923757515126093825471592980201560371174733987400384898669721182308225877525261205886568571074747837979043690694440151334985077703621388588463272432691339454172055606624559269600011788362682043899706862161974011122808608917536198812520267970817974257899813019757424220269834318356161292291343405685266193508860919896441313021409274870878629620056960718882056551472678141320933542501361344160031693429237436709718054181578753705498312159211130195200317693461019124682551825265962472969038690507191948897655180055755670745693972983129765673834624874217850084381941053750412706405704725530939046828873538282416349893063576772418799346024259348807928800378503854777476509023571183146111008048256613981762754318858027041320790202584923391000638398963271119180138629297978192427648884091026642845910869683459115362578469599733217738742309861860697897257920266878021942866794377415139660192711810021220838428442502374883505598637236573286822665061709602300512440180421153668923810928506481092187831975129178564577067857424374168293651496268372234011595125994330302548960040870892102199553332202253828488385249179709113727198812971312952815676799757150139454688324635644893700366288952029530281218353727469161731299541223474173579310485826188194842341545457768919536768541815930586360307785757630443662700356224017854904263898607444990173296424041818006113519765240493696824592236555948991535737800104936472797283413252020882089503452407527762902031098388091424524761138924360702877366399937220211774475723831340378963427273230371716101965209230903428332328597896532700671965077833384399187042607453799154652749097365242391263864583740837406494885078984038036473398426979184569197743062070526043786818550612793737019938027319419974950664443045751788702524287761502976209467669191106172798752373988366312063106385316556532063748071353745397133173548746929570190425678917945848175757726647934588953403093397547273619619080301323919062979976427010784497624655916743098596180064554684119574871988483014987714800981041683807807516704277843676978119716069451147179246050010101499267278976314793097238809217119203607437155139831789612837296847601207663942552671808997844662185586149752285781046792921439626594596176148013337150694574042219077170152550587763089501769655608995915736190358157484351929567794330251529536751145341295488286000689548110825886529953080459950045729559358225974300044679323019249008660510582837807722222758525985444700871490791599011713506863954784740007088381528349378649618895763670873283661766208860136223104762709974235249974694740024084879411237653217935632714963551299998590696543910758670025942034289456034661249404983191170285932300586538134366435444543211783883935071128759845199265386396858278334968227533218349884671809731650128746636120288641662501909134127012215790527200174631725080384036810601788994337209362996656204096852284038024473207470551214996695021100832550086641361379799557382746052748070596957972371312858288993799551973626947613119435377218586503730600680495717959419625039678219825000252703592268513628625839209826030083418634161216591854017740869701305325921765829514710360537251901296179820196254297059761666553193984538290095410645821067174461587266974665029950379841405184355285532988733656705708830411120335934898654953743641727512739251095387826798055858399492876048845136270029209868184165150209023439602807181525335953648637486613482583584889043736408439572283679066121653793450842494729014067425310964653685496349422339361012817776931136544221141560311880652826929073990605282766403659791999877667473758685204782255293831400941552031877332133526871847641576991238054509355353971915519441711694936162301907293289545317814450508592734802171234806503326431849958996923478973440273786990564621925938918971992801445936070296195375783074975645651225749983263888084178342114949461242757155834314597913040322345227424403682085930235906515965212837419920221157012740768151365814175320845976438624743406569636965998715551996223713399626016335306787015197951308327175089037802573432691049938929595796766520167578809648268340016313384262054979882009407775711846275227287485038709917646575871353949633310331815505777030972425136372867844049974422470606206428850136231870607740768228846887034875998121257350394847800916264095446366648951339870431273898819097816771381799553492480914541780287939222883098063386019182129958003996124994274633381308742490511506370853918980352765280403249581959345204209397337656788918095514926266791092405050196651968742095635432293581356211453162031117947911907139726860546101713693372504471367678256627249236381933882772582388568005307449420312966046356096218559288834111934049462149335188377036561280950436565829007315516175270454697480276352419267031682887023673671313996401592952239439435371841556539560245467597939717030868862210898549434288491564549955826150557278070231841539852262605865805494152152204361412930626021097417555055186508593267693220483070531320049352341915977909247184098390454051466026568266967260117733837626142723484518930585478700088599594690835733519916053221866415101023338521342692702549095433969869090240802005917976027724180316364159319053210498632287086587940801642201833103678818694468436133689427787778219533255922394131679719567879122491876498942494907419540864456099724105737818041257095086756010913055561987383953538839985635272791592664758747604752496949408976554543436742513911636017104188394614540367898590102507954456363736738005430367917397904154930124012080860257579681193051106319758677319736126799775438257580932408596437895456932343419773699844776293835575364653041905950866442151250731179023137437262497531554323580850929929112270596742029856342862986404194473407013574686749455936336159903437622669500100770192815792541788440623395278975674883978273322642388335655458250952726709652490970996523875815077446092438590011587543312292154344878247588613649039748190390848524468096921211316877891306679168216602447187673075810979627821884457142703872877601013002985117132965998487607207728904040069759144951291625934403073258312585939353086137814186638194345170631907047534926074281339123706103464845316823816749449198860695942901391776206023372444933122389166048673844208709870137201238925606442277371666471983299986663750223408000461610154476692785041801495490584978057149110106786143104165484830738045030514603753355006770823987798933492935765661546115757812252710889959309645177318886288696083684638982515328335226172044932594651637712481026994429739654188501613337890191051963628930340236393164578168977667233750311317821782173766967061469170376288615950419719922583728981832678691367775655388357023640004427487936763663163327596359884726016070500223175547814871472290685697865924476799552640228316068504512538248753835218087218445009785534332511278404834957600041146452800643879057804870527397413520816157406371278976179405024853266324603470970218591533172930501050686555383212705370075775843231445079126151277370454012401011576949485197812623234396019656063883254328369716267148772342442766637172301662466503334827154945347072786179597010369196732798245375751057261159690678061806069161874170356412972329237805550467230378668442673161584898428014145075723645986656030297012376294006944877858778187955106495688668311416657533507137035923824459945955228846781463708677086809414229955354909143583910186198468507142893264894516484428582957559259820724118335542513141950060912036437133807918604387305794039767701405680031836515129583356883291065994659978814141236970950031769515130287295476418051968153386874554320949640036057325839334808516337372744859470556768620188050213152425408203466574945927929390246896956153222713060665936144258904494374799394977885337688576840645941018609235810720460861716994321447739164163986762561630012486243948088427763126549393693567928297607918415500568661531062196149975497477059115238565301262947275164251543736416081809186676452886480784552906210834239895690089425407534157003760489403971007137711084563335701505043612289185733202705594873975137756352807972935187310143391440237143507866656559513206415335438097592493244336944913013474610206274370139885672233569358199781379956622406025062733105027707683037867471361597938656898750525171866021503024584224898379079141126788000604822248720963906025870641528012687941445585276643752350980658896265242289608943243775016687327104967311652464936682684226586584811587636945662910031967631809705670678492781581123099459378708291645022669280287215508670206192319689939609476298156376359145171129325753584723557778661118552372534612995350184038465160195005203524713190759164068354314839376418833284866026906298442268568353240157152068233260790497800144293813628125681132718654025814671572361404889772770257812627550181261563070538171980843409790206687697133525911832074568118852006898171354038116417200301523776813754492107720006349944838740538216065282958985486216851682563717038897830145113991554583750298819404101576304185414522710634776728415334564054957485296455159314302554646939837526659090165362388797567308307494172242237826739551356933927665765212568768843148926080167753240535574740865584402585374870264122778724514531980956572252493622323965844431145624604798702676181356901793412163819441245484221339116683731515355636914220766408239652426045025460310975124308405101801280075758636274203687129123866391434847567675127393414033438689405092971978295349140650973430653225424755723926458290552881115386994793511712267153573764642062071214560277544150827107641166158955965297850373900329964320858221672077545666180082230670737428548039467807071885058803394466399076696354490553012250782722845686378526922227575681497066373981685551999424601380038107138407737363408247066550645446672949058565796535342701482598347060329479813403603953138007018973144567883641938898111948114606756111995121430138313726380246084233196217326251155262503462834828585789695269576055114407333925933740885688259698152638524140624181456781213143870513826949033124866930937353594977193876853514293623515965603659233947949336605561747051281103783314553140052315175215278563554256037357806803426652475951740284310035388319671569761658753546559490415377986685526554923943125052254314324745041776550197016184937504916306763196371908687978267182526725353177166566457946052947882057321692286421363968982543462831415927020385493912613495870689665127699843847602438947608497229499456565820527388949325182352841744596081795024481903713179247755251824362391229328016931106651775526612337733106810884729976558431268040171676575439776033045859984624281732863564549367508239328048846406184832557542543889536002043218743724690934453422197188791600611894457472192511514516327497984080868057949945749054511302333818639999234730217249269426853756241295493731008720258452763329046435349820049587302187629557017934058217310621676994896279541259130148026010921498216830290209039913626911614448426921549560773877375210374714752293011279826738954577223081236768769341454861427294190737388368561931948101542117961586829386813950201212554406490202155116956193275077832597922447476464004066935921794041799111962786086955866240216582984381540449625846703380619257657647668466384928871808355484866892539971191844667797502777532842772405564661591896215112589678668770114749906832087674572523599945361096654148095437743826076813729328134442051486565906540765259615107795619449417299266908855314925793727031016232431510383422222792950699355720703455686280888998311398832892214655658910313550200621775449498026217906353907712120780209185033764333292671482667075737430586007713376745210848448576067007864259685000846815778812813216566703254336284302932755976369723394013883779478817440877470744584400485794604982097287113992250316470708970420015565733477826704341553194925308027906819167719699952257022084656774295679648886101043196227060120075817216801831113014563098742371583411657617064904452870116832153904012679372319548474401430016056807692816146041980781479934393016137496072103431611543379092557797858187013982050141692628168450119449152046355741127251658180951557538380304223106670548454694079688196835203705216957896969244467463759808480931157590088722004171582886820579115830216237227873489856255548769635428714729720866273565398183757118784850602837586650372490585441943107759821048529526224273533543041613136004184847319397966462661501075569555598998600881996106532261168333582370938576871861415541416583384373796852165096248446980520473579487226579049394213586581503489355471584228371230600053154200088555785141972949749200414871503641293450024479364454254729388629636193082295914329213697956679832334033856848454051028103296388787300943598037704471387159570798523329683882234964585686129268847749523365708469854523974774862805470721570817150846355405691312730402680993655578509240019939991285079043483760487563573283829079643107732100757608926067858805548041447818002505684907596722733318811913108785871111307263199540340286301616407066020470672767803434122301183644224507461024569979363024404682503845629476401568209603381076375400288990903656845045218524360977763608939204213754384732590621048414047148945485575033454142607149843768018573295325035962742269974744373786527932722481939826607298034034789781610082441018069637905516386129460236208025574088300339681792259889265192894387016960024702494576578886126298118005513186509409321675656818730464118679852888492294343304316355915165257675274793175175978280714820474226753509067318737843600429160841371884318288056277090180480266953219517544687668157145260054524395751630136507787469716065504318912407286277971240724025584881564596400854321737753976078765837463965693896672298273942855091045623192393720543641262988319806407464740924101451257691504700336937647202301285856955603911860152813263674167747094885714513553785100188183579764921155982903061633840737995365014921292137820320615573448865365150939899541467953355250129866343349661868275456974868609995434984916646891206294727271558211004950429536085281292919381206418681756817146283719118510366420543556450868939819304554405023582685386135852155837363370729470412683552320067439955287726007207642287037815883424917344616864122689100069630863560449132890039229859713822250585177692665466976921890691024315756154068381858864793879961699679805904518527203936319568939917091089085894770923408470441623874933549048831991535982734615077893617274314897476528447980991312775601020143168309003567558533397723852608839110056870926097416464465774017265276383737055328518937266608374208084146161649449467640937165311954823893798517571435616916856578868403174956077314102147358634726880809609220736335506002738138758584480816334566379513286919616332876754692638843206947985202306303873605323470958372547882229513113721742739967283246250047401781232567696256619266703903274757817985838073893514663330040241785685016375063152977331415167453209818419239448747812828049964304785885019982743592853925255532438682212500728837094423815732697189855572497314864600176496243618933560436109942557730004949935525184131721064999026609867335195495474480355847108775564528657189120039367209985291806006015515913049994774337454858654438639039786462789493558209709286441149173651173081793958906279485305204743724442257935568289705900990498444768041208740172596036630527999574623522186683012400191752348180530254842900674030369882770587898216044463114335739372900518357832181670691428217015802630108401593739696140960898052398557593198504789440817185598173383673513985728586106798733999995397354340630160319967188325045808978804103210217124488812055889984195125099107027278873207389643612721132905366563805577922210856258575984293037281199460419095997079085410732907066500468279769532369271884154390416079822860658598928130948743180574799033115370881506686425236302211192731302204523766991755262158554194209044636414615238026202748016171059448754419787694893065278493565289499635685259914878915374545502495357139693811667404993875747629309171554316300030172728473638463065169579784500374273113129996342197527565541464459744106711352500321263881565179823491554426336458712471606010045419037069433587965495325161222044938628570926792347187050065619560795518357213370104749640601498412654208468789008002543212808136412792891964657737850505925316130912309844018594608079376629220551381146065900030003937554753775736137957016629300875381815517199922181464388340278709086105913035436879955781621064915242818148788258321871451472449222565117194957406661768708593770046196184932629378970272241932903911841913225809329433035607257508480243931029560227951478705473048643683928816595607779532774675785009003163895916916810384527438912666223965650011172391214392106907965863223780332651641309282010380749052350264300081266674960604952702941298622701072523308767889005825181789351054854037617810229599611700814605480246975598349983899281183598130949886647540155815143876911069690393832110348313375435200848620090145948384243194302894046927688627168058610772654483416631105933387210476969848310754490936581323912172404436404065965630996357387067612998055410161958955919373014898934730178949223090970180223378431583800908963263324695421715767415950981527933018110687564889625096970787311720011740214954659649350031214240747836954337528860240581610026986109374855885323657791398049998325018697784688090109816735315398614886607108099905238757344982611107500111274995030968425221504024944754918210602179372999615719909709860294490430892255264482304919335421919818914261386819075139953028471145680978318653195920527404654083531316899898806797864178293034146627199426118523318691859560866404638363300197880722730301043142513574722682521178328041904341085406658719842981554271273391866232505105293898403039160229966853518619451928384015357023684399670959351710723111158734028785733082696607309444731881857802942595663180746128524906820969625393867620128386962737975547893636652622092958963966619503335272741744764405653668088896102614720299415790587021821988887992301222824386343125579470812824571296575495282304071505780428450017446297180153000397598191201008782752095238094652779449263959565672420192458903585558657808206231625660266207503047574584169287948284641498056999178099404710115261809326637079488844057331354353638196047326656694822094543876160933195579796034069884801580906507101991627589657622984357082493224832201778570104344985359474544230659779784722597707458627538641482963569020734071166151311952128233325916387259962213400028404288908524352086516121658922689272451350739938047691309738970802763181243846931455126436513299046724755486345712198371317859157430445841432570403077608031376062237431069190908302259403055675991397557915571403131553691922116468314143144601758996424783157373191416189038949260126255959760910046649754166680305814916397536469004057448000710077273890221022590326665232866001106867747511842390283089414660765842665271030761239985065389650989832384858737620708816619328445926137488510482872711843017624766931623251241675577552366826960622294006476878997027534610379661831476171167698831303970911208912658472146611938146112136301613889663028961912925745471226390532028656723902756717163207026997957213850643622486616763181009599748258700813322465359333354936548583858600541365620648150187497988211598471003507699004335509100189115756095924198328497149010759897135264274011547710298909475658529600720555616647408498822759255689549667356029444298998326956969871156336707900045326079772766903983709999808366212263853014744622292802139600220030409281439876809640660848389351460698599701060783504493166805662230670412609571849874911151773035743105025925570271207303088741572233264746363814525426944124084128606433833527825316427513461125513738189981020579095235179513469904782393492255994632396389922538904292290458582366830693781530891567473053973564314712055108952354789992565035256545803437406544945391166384349826937730880340167776838339701435733348222360639778965623471442000584249938489526777078086619761265227009211851306402097062114864769388290334401529248456995924340040852259756678736940898089086528108381254947768167091500492463226763817009720972959556259108978547551360830045082049424900218897801094960370712310285306166568856971674276335603421433631757942192515611257934888041628033209721299802240722873601096629868197314682883467961470548007267453689781863754970012579341003235973198770063030676229113353325490183120913778306509782070646651365163626841240557921076177416662971470515342509869874635632061307514995474202126045566486497275565855269393984828578694071516896174234979244293238216549709593027828505709775539161956552060870173051099450883681851121244821466312692620542219390749073226101530962778571167638613298337145187399249605919840864680804058979775864491953405079175539487454584822028663719823676043927080523798010396515711518504853493196981824599788784414047642359547067734788436362269848021033199928728855067099887810859828649133557843645803118689747278654398566715574629798205071583808929891803231064819017382040662757669165980029236383622295467829399706610355854281175898938251497864197637167998356871303046724274391856574434123624219488130518335226533921549523864061966738723778696272937471755406575212644667549945667372791384880167962523230380333576350546901520121759723279588092940578025463153342804788638516697522015131323686150789188495750017719822949881896927146695037869985367487362282635854578922794180356176226418943716109437162387083513270435830834933979990139572586000341686581094737414708532450950843279202600932797889344451739751620223894698574015462367749829189087683569739727327027290245193864684780884161989797930329164431646970881132627880250999313668505186927004727316796213067274023708121999519351291755962841700777006641923073301372532752769948975110728900755521063987825771038494151406977860756010874730649075633086399094811571612088766629525693827653667852228283653326956378780136378802562886066014274863029029053818724610510825227263216773609512632155652962307889158135348302469381868893849924869987170097502626211843276133951619742994860307855369089471863078451133917052138266225932970188576853907110943333215637177395581997358674556014630208450153310383898485475129657491941312978631250318895490186876345528097909085902911173476258832487810363448390475951360218009428312899358907653920262080218905327286079823028941965638380027479887097033804323483259647993992919383705903938492354718158596684775246383122989028889800068777825506773017275137259213970370413040083648098459435951372718142337160127776694538665271433641833430761490209187201853856813608208899713611914474488009245007287168184549082151996782327433152654329201269079150944033361440311125131631500097502967382984223106070301996210063038783166419050599592809938604070245891591133268557964870481318914627188602869291967534504559280205089377030496832036865917108739503039457186910603859386337646387775375825312373872086574634029387102015037150335154505555580389805815260061037855321961569734615973824627269185111187007597268574831575247364362566862452192533222035724669751560600739544965278880398159399071585673235290266612141021780603010626126926072558363571332933286218557707312958489978934969498786034443679830933814716137465354704757949549971619337089020319809961270497757207729357873293899498564233297764631989350480854262033316935378640420858972257785344622087729707443437320330476631686119680396039202903610871473750003244761782554956740097709424254989955081724094656771818344761428020250678210925716493795617087787330675890832889892737236911216245565566161289425051795124058615889909272439723600196327500423418149087453067937183251563238966688735333122975709545546316941463223625477689807562419169418799032263793609723349247680319551872638900044825812907386060202591458958576331273466382666758000377263262854029752887940534980864769689658370354666383836474604516218585838624967633754078828241181772200021972115205839923364608026081259912962693313232002563124769214026469215030913564071864199633191871685503330670655967175546796140122814638963777826322292884034697847390934998914244077377653661682940797067673372436101445532572753686780681525002809083498338237058347567496313290313016122240986091202797545140956570405674926388696891389062889542041503727869021396475357478035610654335620793957382862050431165303781298091618708076639057360476391455062730881767402319477385533676314112405991252128097091891398765703996359358508810344742040493034287724328286854009412362725752048025513100569185290085090544668068076922885846820415264426484085213615288984263395566472043522252591522725041310145422910700383269659033439567902560711686314864945420332028335168457818139420769921032196634266359770389864256808421974034807564921445261923361354375301619762587388481889084244225461449078887441475751929762223287772032360040740579123691181888256100428388025231099482268681830106257720451101764340199902445673667457205896941138885578410945889842264224161609007067440933253465182409348593888476533998828470525678381266203183322388078473673728433239744867959985360199631637850726105484974690296691773543434449664645857652264480840413056550190397230736775394564656194750128851694753872473515249862571088772920871695581148964711248449356995870660296351607256458319460756157479068897840016347229918305681960046045747606922582987051435890109567632748019530784990018511888668898103816092256844731239316645684132538043311610206329296512975797628263631347902376582365850869825072526405139094656276801287453918813650265930925415409474265482430914226365697342807352143485544986737054526680381762183214151186240648061501675421756176448824656360000881838022136348553030648054398254342353999841574307523477806521417921132775187610267168496733952046339768122490269626061993764119917059554000993210080748673731132825465227710549403269399733152857006479630338622393055052928277215717814667157218191943279215674869410958023529659009513715063336818285084263268172659622617441468323382450291102582068970721683573186307255052325040837590381334466699763880782754433016649535971644830248901530604688866212518131992088900481014890400649048914957302636873921939536178795375218887749701620726812008071989387359235006341413502543354965545862295401713764423807873258663098858597696895205833332445919616909427619623927466018769679333731292305776992706917496879640516100239687946326466744344961578815787926460068248812668273807949573245372846508840109000926636619358599499884620589440850969115642859100016096475622050101102738384922064942615347423892645892768828283243172490953665989455437700494327369622520131769167658283516045185520836252146625269337149884902416393474632692858780919003282257254100925619396011983714947174711495021890390066696285930943469005380735474140482070277426937413612029710058710201110961865295644609769604038660889968036526896112013807128766268302600325998168087127597469330016852932638478450389444974883745753981232147222653734312707598963024999394856428457435407238384557006625124721565934176204795337629179723046474777126439575244030045357910813223932681501856105573972880444904321616692373964291477899712368523499301086901265141052945291629079440599273093574829941953294218882264246780465008292090972674676981639843778902402382308982332981121317170366871358516115816899894076066866796891291933093512422614347982812546432342142662235767061346871896152330211208736775564042321519655072653321993193593083725124003424354907162216805684090160655264079779546805766446341129181691221025335953711949665846085053282684396958153722876937990561998665568231628090799953119659038714830759968387270812420518096091829535885799575827111304213208490453025507926852715149533535789726132504496699032366760926289809635910278975613400610946152320020969747973877518232205214902146306710851593402732243412948140163735817981501581288903648561740111455526550021211864622688990250841511686842473468505384508528921794555364882727634248929777701618554785106363840420207858223113778908642986167454708734397547271850939634436994100020117820344001563866914616744587787996389960950666504408825552462213957108562933203102924732761144472068103527435004755594656435738659398170638291532823612223601708280884241519737625434368640295826600480418278074404444509025997866358103228647872291489846549979529643771713538488363935097724841874811348448940890168323093898971771858657974378396531632091954241006178620332528181372228213541222369338123825922530565526168188338697821277862837048495694141589352902725425330675190699638036467102005717290131276065016414329309065690771619103666317368920973161629780988942682004222589274265309406794910699818630814877113123581114873326682685661569015174788559660199687295643635385672128235415279570922012796973775635888570284539243819611593560306804402911056755478831023139681560118990267151704544320111576492394271513730172514981031920403286391488167235619528147100997548188091860913394496583401337345084925261582412480393781269327784660119472283470825567008200750798735704997110135336179103988370501811240593090820947416713375062220250728107053090927760153414420704984644685780147868945327314201550186072798574864691275378095725686629270567530448244881696112477097425188965543491650900522834252206935140877785022389164103651561738362238306100155716476573205401371765322312928976829810340299062482569674217077607145108374694397748954752697405751661385269379863066342174021147075555408445489881590382429949776230587058437482928061146971579999488264937141924213727811617558159515192103389724549059504520835504406125296271547958109090009734294257881779634881639855692064589505874860390009519794243362016220087293697184582899185369405793872381830274471121590797366250536256158205704309671689784822715944894318001785261666799738319228703044063976374559212634102321708617238586983008214681551331140558340159986305680684991417416464786497603508865831546061771068803306766833404628551037165218365349292071357359178148524140935843743236465408066394460054333074067494708116685317953055882050370656341348051287453337938641738131995578438859532328661439615927556247451188485244636806081370638787065086183964215383984588275297054366144417092058520524886305056113793158237812531642937922553003204023909355752123707366573505956300684840188900056206791284689175005316760482912460380342504177963576221594437393102358913708254087884015106229075657767338556652422088089687116218131937354273488041208981396624472448225383098407685377475888579968263677266201993470608297758910980324060493375675162564980161759452227938038832102196410980326546912170583976797920041747810633830459942340768814620586763858897258718486154718336638291628739888035030135028318354063567761705517971654086246080567723948492805029310187558769573932356928508252679153778191118558624268517595229888423938573503388087073728325192959327051970571157089490670577924021384655460817525461485429370998043961908114853515591113585605545478334117972609708174769794867250172525163617491493279405654866599954503292193368004432418089368654838075364812277644805552288343343030495386360870441137547769579681330067627627063572580597568824966354206532614768233262614564185286085712363522650166676615442489387566198262248644718656771362816361904536050311369387641330633732728141677568320501888698653612178556799756818561810458621561626950701080899873508491462647725400091532684244257086532309315877053979036195835862666146885178074204669974721336879109611594732172206846899378956970020096813266390228079067726443464169924815886948496951283017141178321006826752193162129523923644216694449203601287179202963793856568823480402478872194172705626871987167930236778099691639162537357031388763096326052189059324935407175713528706988208691739550573832825383498461454150518546599073030065911164119003396939959033279759818304702147902364158544588825657060962059952199940724789817457511913855168286318429403131169998747666732422080742441962636144953083539952597961892389144312870761041644230598576701674996857796840413433774181972179633060285376187705276838087744507012072066098785557767919129322209503992264961302938210617766466021177795801467823184861582786098496488630359672250233285112841664519500030483778335068242066196329175748218466286005465091070304602998637412802652693547025370006582294210930473641161247336939777211050170913129450653706771275542850037050471805084419639931208947095712517802207861351272504254699719736344989642414796868581821850047162826691242762659381267468979331236380410572938955844751308683058363901490455983121927537610590983951497417612245392057477021114892366954736798134728821433655031516131841698036615946370507338404093196879108547945392917143250977520647093681275776982303603449585376640909286827404236461092253709693963662359223707831162077911688271821559611803403216425956249420257242604662445913735597485122811471636678151691051398550701967369585084706498690956906079483189330852889828067217676578323936779249493220781508036457905193894897842890053925461444089993362744257094550474191281029722391360424669993710495627147231705057309458063304692414950905542727609659800747429690133684159109507352841677027347612383378558677628744635560400885650473951707977069447848176826264671712997961702384877825073247747055442801489577803237407669320499702541162947462195414345598088376568765371083582494141648066786307585222253160791110007256235287483548385796448042821097576645206250160433045200370197233512514243099502291139203779130749136747440478913847739706843010538160081048657311372826364263193660857541721913409997347382655425362313076729486633979905076902955490954606236927183457530215133183866515149242427310397478146514966758135270271061631656072171746053491234682210376837926850277280984871686883328512903527357472571107067421375092515995207488342286039932623878038773211665261554773969870218372116530203946049857991695504623946185536433984130692254243663287586353360273981748092520191142426947137755712674939053564631404250608698943458153873336303120726001983197134602798708826325302635220598167251571853987780267120625348606322376867825794811349486931165115985279651976425960626088182851067167555596859699125136605554879297083427310914546323274123017483438466526066031845807883623260052955360417396343881970116579347473611548774879659588797016015661157244810421591122289370052393559595388091721174159387824744795638986427009598081038319743501304277620401228082597296907670765197581279248013194421552909223283511272954012052495935631216366924222132347962259627871895819520955580278051816443135665235560252865961818969557789460179810244212548126181585163337884664099852881515073454568075168829627816274530959076116300111879985038925956358979755626206452983431649341966760761730581370205749218707138781184444631090554896907912214754549345825495366889277570160261001242781298862433607919944106775095607816515932222593762762209712678260864891772538464034091727134290840081483313478551298958759645243631375971616569372889419600709423992568286176181409752595919560229601781500273670112352342700140401842537848609454015627812372893452568247203241297528807936472287939698230207312457619136248070353918908291647723628785943755722292847387337476015744758507945516985391897268915541161128000604213799675643954696378820412545461092757344199349382181241663070374932140489896089767676770244200321122327296404364778830667741609956541085222304201731004550538261370696156744997998137692481552325208422853134570102938859706028435293710012893951456954172456060453450822933147749915510135133734251744899417497096163226437935582731689788093776253886771691302603520597065606765700293662733186907949104504532474426237649930242613407599977296371788134889849950645574425291504114366206663043196155657904369594234121582667329526703406742978406984682701494265539104212510145828605095255283794365174573899554009066157438085229607782205672583750151978613245255358399567518744350606240280315554720042189743829621051334678404612604754892355869529994267464373413773380558286722574822188078028265245237613350119599829403924280802631524508976859526093334956911068741331591767472010564869245939245882085633168684951333603217306736537945269001480939109926460028992193383616136491737319660122253786850697454017579649902545311469436268337798373271353104570045874272782850900507449932927891054348900964938366867521970865028186706042526377946716550427390438523931280472315491952430945141701899812166117248557713812345740318015607684000054314555317207201238974695178880206815261634018460245316888416248901799713894671417653651775556510799920823172717018315512546252105265114052339450544083377867212172430117265144740601765781278222746769767815322650221285686794160376195581351499324847842339848918605113793317900512927647707470641808693039358689523781979316564716710406273122722367012290338486454959455839679339416642044707961261035280679267143636260010238594975060491084158325304317168818220804518570416555456494438962685621195706263381017191897045483903714943450581175325140220517546698088904194918150422852678458516156674196024222695971757889865400196223333197529980084932810056168424503707466554963145602470980392332375709560242624254530463344339888810519476181828669140954415994050789348089378065634510475821678420374173166917621731834956233112351935186360947703474798690724369052367373715134314615255428364361638463729409859463469296696254672949762691304194925353503947467961835260262570626593028122438119034385643457195137723313568654652343550000319987042553603789794722190357564742714558869597433564891350362344804434595798681557746756529357699096162101638000849385909743527239741280653542628839002116721310808051878224592375360552737195036990725159066915721840393390607158732127678256930421314055036279504004017203754014312830328450197012361857140515126164659743067176049436331129151650962685469518290853658581425589909425466764677508203113152976630923616505234744241885149136864665881861632532590566151618614999222942582877340796129043012091691320232174996571218114284092987881618084513658566532102242216421971562032005496120107348541158244921848969461175625517394710220629282032275324288423518107676363577475663029502428360711186022960268032457893054767287406378790776722850246472040593072013781383698869413689825355427473697576449153733155436101553942451138722367182908238185041324053438865210204877068335316287096525466011389435604030246758424413780155129479786035270140787660785557765402223426003442686487269754882608705160175281703594725263970371232641971576333705892565490339387364849009746990461607037520222651180379585601773251426018334050215338167673588398140102138989000106420957417965906098557538049795349451425949098434132534213714073342413432337828381517390389790745741792916780424792829756999481357216620672388090985323414201143378916018605592694166206093587352058253224014016571932750797768377928857553241093703252243744744315877773084219831305255508538564059184443558339873414670266585177557045669561263419030280837901806372835099534584160565208180942744179160777803903183338522607790649007170125125660443902894825140696241165581538142789461012767199017993113722829439582530138924518935909037793795466748872369649921918752857387400218339291513210074938263700895646953447165011232164393227061698284854678187799130764081768854140229915794532132172559267291929476329278953980887165197138352572550180330139321309969032182453694743036127594478731224668864813198376524979679322853410748169832546020647196600355915884967747591620156699541775942764055734742541403981990731396762801308960913792453722497838191796775227275442290648976077440179375250393933159557089058405819535030161441493252986894382473633075277236754597991244274859312690660651241663410403147718379276244742915557780171593614806893461372700275689835331985600372939840169808141817797655076658281337137612913585156794606618533604134917434431544438161453112593522458443232069566995087085192308531800543161870583231653649426844678811514904825460800427257153961757347747166180930963768762195434692628166814589774973968082586047383839003683445041291070960327078204508858380746808493431134643656575315518049410315430252604532819722787990510143992966932796508752767622126524286097238815798612714687646755135596465661728870097269602349609763448085384450992312023104683570312142829247762144693038480322988160934456738581196151081133744894234710918899767094214888701770866106613838659601952898243490280961039957719075024230957123178101581227425234923220754153811354945705134873100566005652682155076794862889791561438284355692829248886473167692575827848804885866536657993309790806635050824124433677578379482804665209023437914635721153909949180718017547169961075651779472042943043764527667144664573986770176216649476982976502989838546288630174770028883268328968422216952416077019508629332158184709821031112906354809971289644975731130820707624079579979923915427619139078023720847282899750296008081265582063349117559720858188475800783456013445448276852410551246334593607030809227548284029803208770881620606251052885068036080089769612710302513721510896599458472961463777321549055425680519221596294431273211129765643189812078935952872162780449864651422592169643057173878502389679057715525858639966042284005196967432621423934526269544055784859991391638907429092936731435673772911464251632246682286093991342299373383501454999318620071101381248373132932713256010722812972919500739602921321009216693492079838556372180080691412889305772791419559558458122830622007958662634814522562271858331564230068275014005902987299681497705814411542232634655228481820303541830767791135677523338809260451521719397938357500052547650681974714128548597101945869786750745486020876978859638752123549654269130878607184045854777720407450635200787776306106571062537843550264278382001108801655170066855038427636309129291193939666360108970334927575601622216864138137934738576304960113473882492296480022232083738121451886369959700972108050127259608031814503743691213027553623876843716698433811542048683905753087605394356085496237571252254907275203252035247696053724938995990962773150042302926165055565922609347214360416428322067581524790614545923512078484240487946276828531748769918689444463844856560668702517257044594452557808574828819278734439204160215451357766196975731069823405549505619785347618168264740127124032435584522843426916358266158155199485929976676538804208979133397622482818208665219565583315992212963867886290725564396412060172764754027721373992971247872984081802311607133188003738876247031554672514837662917748542803535005225738863611007462958324663042420354521163553748926800248797735623574039060779704352491788978691174607348668643697504592741574100742648987143131516111429717806438264384697401651934537901979196826898903041598185532681201225373514199612716286484171980243241566141821881283780025733485921103126017605204705051190706118667717410094172071569911855707303289790038213176603199754732217515357050189401596143452821256293070175736712561734262859177130447970838659382320596716138450360995700720645341976767438706512428460608285566342577367929502312192940034697452838915288174436297336598414584404759197102885763649177278570357880329650035797620934544448540188981706650252898421663908242336450212357853656824258594710722274510812289798288871922824632409801536187796045536815351621799727707382056098959114751468134053905436274576011753594624123910194048119472208076534147193168354893769852447354652502469115113999661336512079065237745300041082005320357019104815875898206566513257264920774496449847654580111611412492022898589028776814614400247345098113974253750265050476609782291120498034550523377069268769392773494822289663859576988967944441758432860635928833340489101641882931042856551583591396881300580907223988934067736477025725405646711145025443911969160993180552416796569587762817698851495016045174796296871772019583398618587158741417148573734187163891605007889464272650618067339956848786595231458475472277095844944508973388015016938782064458162991098347694058240121865543396523795471496521176279356502660342065741958582838251823159411813109204016521529920581222349451061777452926688149692984406759182365532461362192201649228276037956791162392093719102572795513930107528159763055182307441943847354389772537188856558584063335557211298248261273674023554309150951854236591488046446303543581899620308691185499760353325316861539954559106807172300611883205231320735194433681728963493654631247156668517906473124812263871539390074779912214116249935277104110440592300943120960337332080098881525641125824458377921522974250070734812818050748431368648465690790516266166269377252449728233885742981772198435999608557747054421402422801628506916727945195282829811059926022785516941560999155224042445213495011124448394204348862095447470520681707426658053737747040760850916989113775611351860989482089329419796204580763340918545301707874314271164010770972843706591604226687172444430019584807453451103979732260166421222609559000503660493903483830385280758997572357325632348098973604112129478560859257301292205198469204453324005750061556950472078511057317605848726625233505391662722462070871486953715818575650836456300156111039409946518181874903295178372299058942639813397399824514937933307538084337736284867074362244275144599381223649262706488769207543891406083299603697303790160592441236267064296061425769839051743081940083540720120888136322424547417268993140210475492718120108979427488827701767588374035790777332587175907920134882358036224831189030648920374174153472999126816258246525608412465034463770917672418540362598870539937472585794412750304416905486602494421251532744114334818223075211322400884831176778052850097453264846071447895825389383969875091654174125185341578014506513090370577765549516167334491333529891876243596325397638879255750495308762560138819375605754473714229421396344448885389082101767227591597880281551390458336702865396422777825573154680565760327678307339460365585419480347583255200526489236920430974094868534547073808790030962943722178476801568756686740335659474069645790372509421639501480716605338017279919492944447282041991323855940927904171290380610457687900519171142013800487489504003649387106975475584351121826678733018759741921749616963194693343956455049058886484500098103625686533253291474779037683943840594406709400932984127414540368889972954492662147329060475030867144263586070986231471234426811340837248967203856454627063943073003344764530870720782622545375697595661465076446858924690136783916412263221962447042033017274420363407106141294559033733649578767534995933057271669086422496502521249292216555096605222806019134468925726056462111803455937127264182807659625309501519558600694659686938521761007540475659599043553072959168677826603405650441853638254761280909576388461749162821640738684388268055077231250696837288040824701911640547534425579081266562509042556409800288402935894875953139319022011581814695639812053343727708667144264873745490515837203864277707657355736328400220336105800081008596432535219708771104821965408657676441423503618728153395423006519172484441358734256346727242661206796605270505356016916925531443744870275114823618333361613559176059141260698756405568083815334157198050044089195718238667426371784562070857688741511900704292406978407429109562977727680580869402718292687956666541374139443874034195500493444909806493345467295318915950632294667167731701595744955004608516299351632998427382250461154716569449164021041309527547394976716288297465859150924729601110362383932705693245442394146885055968262488915232582948729345746585175663177411290648686705702465360952259435229913930617943511148108100992303579413860776200030394140588118190001054941080408592670074870183334386065367647527859675727983731414979300173277325033934926548466336623714282846454774960678041859615736108463600097320787514199545794801487473614381610273955523306765070791837299100984597151475791599161037739322807139615747837525883550033934877609421511868258286937017534452398015795506169807658419006426906191268317216310459362565160325414617842771316517145508171366552654224328476165839060174089904732692842833686907222080436134350282401546097042474652963586248983992742117001285508198568194170642616524943448362383030323089850747484050749064896186662537789554065481120607520585352219913497607657025896242204854289771720714471799305199118088691876074946844061837412610918549475543759363618619760941494213988648441006508180566476443560002545920510468653954721694327116069910759506365089646068534536135678002510134594615188750179417418561907674107631859566641847532937373409771258235824532199324628263105443204378615601037322007015739278386893150384947229078728595613248335848399092054743836965617176560623946862838436390542695568035088205806017222166441078644683929937035115793306103157779906676948095321931695269598792004315475740954677759765367858222265082919247929509131630756643530264435676568156493107209641079281136479600148673971963635288007656404279375776937673755104227661711578186086347465314274451432396258527202195009973766220446316497437637989993155263716415921052811565075796943176307466650267427910564473834790808647399908338225571212097604738439936350072588341534163166429473572348124324496859480731806919072538008352039517750228963692316057250805521029434947415290512814141669602544625260435223140617996604477152177959365912127593877259396436965204318766513758176001585603899394063734045932626407752855643225221184091894533841920646324047013675479220420264931773362541062144752498563974759735707957787627899292326633252681067310677852569058042993319014117577273327190124248047385567082583206202913592772522176174975443037014997343951350666184802549385646930845576130597424911552468625648701184257513898606802547756311420798575666490642578999160316552947996993068091291850446141103029984070713455283260946349300810484905486885994369658649147867944306748481185565258737647096005428507302266339155994977949013416185285014213491234288808463688825061309803612994306033577387094160694627508591266003687803554765361972132066426280160902544513469124889569206503851248348087513702078482558263480321139750860423307082077305910646232291726080753978860387514743754852696385426802522431981594136956188613698670569807960407283499554348174552945324214155786176768383196125181452763332164340740814474111771267994587135874884263182611876092064625787035966155113823615895540348524548623641888988805456770554091641444113073968413220504310202793085570259042508974487979420752886918763023964771640971251470341634366071780010517862516707383583538629092766163523538693813275015516281254372681313089420174017456383580841164461619065729709826997269935956018092797864925065515750551903593039025792770088357038339855070332560428571320804763999855606231068271251333413099458745113435328851815890267355508477237038296889402037894679132492839866121239972954941535447944193901923628791065217300590791934647706669525317164765119872978787263978882575980728505657131814862096796230706854705672799550309282743570000340728496272413006023982733855621062054785814114650257606590844626031583357324555386124668029402512777346682198042988385378124885826966541578755511690833202656474352115442416320848267982623998403492393754035533328302260052188258876957754330547487484702372004322761128610977351625806150894531385026081049536370413725016335701374704788211521642685123988912825981011627871416254111973755072410756740641835058338247891838122082754837958371481928233588684629945531316009269476850447096274814724517675053603790405528834773612349046155156275827241138476543415486151652047649942595042692924046798034715239625530744517099658340094099277721172003430505755876662406035369483004843438508050868396415201817203226759500142358772588401780623541752323701034893306179951854871911656034284189207091134389671398650778954688550578451202439267302874552467952669613624995810054997931305554888753256548263840887577379211920961634786683130508058895561346712597181308731459314670192974591558909508044091341893113013309791245285245814692442377879626218710224866271513701857505635159254255485998360763029613517052196923156508436514340237972841828656754029770462489803117452094126335004795358083776728080185796957294793916269208200031264506748380207348168364260708304837121388528746583697087352232008417036922881880855900289842985919472638532337516625761014196075585789936883832476815848451152363002557712685619973211604421466449478857368567552078392891155373596694655917445745777674225418981042990365970682648714927030370070642895028961902800021581930010628177791716570448777938866602662318158052011746215691167840649138856899955899749583866247898173609621190409829289611978509190992876602225791235821725162518553551236132731604316550781307549772215040124861681125505787449860927071772307265301476371890766685796853459008404116702265540574519824883553130353251400351870658142506205394152024942117164670359203806465252759312766634429506066929243536242417146621481515929270378702573618401475683501769254588249381862705300836166459832513278438832198212809608744850710762248346439781713775585922117354023424234974568615843729541538288901048981424239121108476608835633753313800142109450996516021260999061334206292979652712726377179136702354729446696419746620888508904201391208594115900775738310256867576339686171949351575215118648480666702876917124263542618521946582703311386426903999673194543121159401466200239072006692461834159998962388141594946381844388606919037121875403287576581741912111489768204640150192071655997463890905601866855460216972333069441591696998567464539883169194590149837124468548359434575587128857751263511026198008399399020285769451560860675653802715762299174753002423281213775122475417822180635511124976678492141695581177125504089626572922923445512342261635303628366798889631725636157069016866312029448508162034626405068079198736399848634229389939500825386115193336066752761375942093406195770716241043805618067117876682749629972841064952156445272682458895839790152771733766074934938058209925030625808270637223039025786364303087270432419307507705587985050279567167959736773034351436129752947209907226397222976520362742541679083358790875095112804363305529794327327535136405353184626917973369124357246811748223146207729513798707018191794934501537234280066746249884807096720892088894520533373386518070676299324026391198903007208932794278709828417286486207780496652869423677184999524558082254302261422346837772303389745028051180940727708451180576255739688831460006665247122245637001544626094568826802308695113701189942928202424420746544204659690737388759004612874071339445691253548158049750807264750002754842106293744085322011318653268466491447924109799180923323606181026651460911847222409481278925219145160204577895895506776069342767959286782775567191366986502386232530369515480193079676139740294221947981463402269643281401437437869837525724235323539934078157530934279455286136337219195972917499904745521237241981449123384779789805761087404261421235721769162381224433707355891083278229398212611345476487726807350920281292954943716016889165263646489029405695212506004151600552029384653944419761295950546641371486897761866133989684700081113729953215972024637099974575314129872669564318306107146637032112824298419758713753928457303789453330063111291342323661213470741629678812984777561940242435523768216083715548922594275210722047366832239287961712734645958486287365076109644363983875883392061377705013177883768388449616481700429057921655147269885437285904989901529812087063757003024182411538434632443200202904828785205411747673865617085122133142388377508528619245313268443873367058447973719430099951681397469469203605670829308193348202115777750963546389521224663197872363016227978611542210713844590449292598747874381643895426179721952696683872409983048819913801231603405537966858650006646244793678985512206447629597986531100319345250320000973697672891504347344762790525273465521453404840656238709592252064773582348713250073826126811159371134321747734387403532134431592909917821094202058797143483668122755982921644962208222956341771531341970920472288440286165584818949646569369559796234187364137130120180347405633206100248945557496237849332594639038166713164594021125709894239494063362956112380905118156925249171843046702093470845540061994241413510913179880337718377345177186292100028175601908609153047414697277626676019012238831613814973045551559740417604888486340422759079718055434824985656131741329145308616279806136369420675248836017619957972410527835627164322954114529977435808292084374326354922976422374243662827478963819712636823169011446954978701374317816463523201983900428797800752580609424640274138323560223071174841667083672790401486446801831696723616438462317619737580248144428420575701742932830127917567043192912807744291181262964054883614304036409313372426502652681307138272265467804281223374422203414078942629149174627212055773112663790346740021424662712858499437069734251333058005304012540191771370371502288223336596087594997608392280476057136053100309387766879796206724918475002289086259187760808870247914773451044206435220659177329559333026526438426174441756755535953400631624748791417859620067987351388338659146239807051760604414221815032627200602505215094753504169929362545422659887152022572310991986154068560558077929647358608101344016684411276193773942854374140709346295320986876262414899935978196707228983308315418006746105428502560163810855064366354138846835327356845058452097268004108497010937220125406694981436246172527784224159183896922263327738532219370024479499682218484495929252805438942202815369389605513178532866044269504788167979756441158841481402655755308397570190915117699994551123194353347219420403414613062565938229921565469465442774670790072804283139386671964562974277359254716311644805331022292852067068498580555149615065396750698069001814699987577297470321882933822658362040096904758369442753377434904199769968432664547849046024015441074426478852483901796489498834397498208274485697343976576023160665461866463022331944814968408698739537167445740261357917882668607012467959148722293662810727165959436266760227340031972863505579181495610020984198849588691809020335090522512477420891195521783393259611249455079294154346911099159367787053872296970263529751897757719060935109035995054176681972365798518227587448455112486434090431017433285338386302772922772773478004829901649048149844396491367042178399156575211893750620686601379205126888624553572206353071954765187739515612560613080247979221470613133522392889109315822632553189843145014692486826819185756504886054456854417863859491886622731617089974314991809679217599743253858656745417045535126436963021023607933617976559793909521745960088045133398055353818723494711757106045592083352200975159336569676710719690217626543760030638037015879177936374809697102083000953693861233782889999415885460830239924846956035090723312257057173365182331085944524612181800030393420679428769373709229862547264218176919101504291610313648321668943847366098752344983912951325206218671002710285848139212465053148291333930898925182566742434145037378390959615696766649161621959418075325979907640382415421230712668549868583914226181731431745468759499257568894709374098887549994500079860362482279834755529714014096720892717151650088462500593915363802519955702282797313343639274420692013253250862584105079877087707632186634700286676833320756561849047439515396884835474025782303196594239523846626256224654895174210139978621894107798992457705175213004824419429519299096454368331170035399956416509870336653718717777612099198746333408113253498789243043191233978701095092223557565089502463919967250748373928179714813030289571960904862266754024434410639921824972596763075363764085593600621036768063203303841908535030890517370290174905975365079482500778991258154576181472037331864147644021137722834890759474259999150993536030938676278025999138398482853291815796664945944482731592769054445740402315080426207995485905400045162130019116254195580630606712302488314754289873436272313147271832901449167650740243520967722785647459766523300334086948988777257069161739415519211630530029206873359251760920185746079222196354654928060233130958471225626699264012789148592958689397584667527651850670372560428696863696632942940562935604160266967007398746630563652478082512787635661064692587822501221571593352437526607071147771097280056299563643748034470759687108080538248018166938068300806850305781262650796874779166558762270904323894494328824060806642115414613557215255148161789053468134410316096786267444312058210590384311818649537202665445577174301540832031524410307193911301895471927762523186787931239340230124048596525307017083042904640285821371369159509820193225203916412163750356547912086979344703182788337387164788647680175925512150854387074079575798615909983089868854829133244621639495395589504962082157596110243139155066739551397486803716453686762949226339126579287516004428941567925770127504789899534909922501207025946596282491258459866132633515491272794134717838147114883141946188351325424537402318350588942378145517026462217158250614142923311107793233614626377427168858992932113423728026743285620355634823455226497887646289185769526060376669260812785040104875038557932546686362975182844376011397805596225909439281530639376536436666435049300774074199879195120610254439576913177264442764957174807539737589948142374583347773311866435653653712292176774141416090691922303829228802476305400390344144691602311125297816350632608305942206251382248982427399830919310497948519268905972115747100415155968010090020238676299136388981643486564216251825479628447790563711284814281714253763777834373946631651460792732034302654715850516775005471346245133805369787723237802297223659696943085770745227473638965499405944017942801770940205622418619833238087851063201500634233534944368857056614351690150062032673518903252706316583410376417404741618098856759056690605743439794176116118733012676359557131213187562180036218737570937303538128251102175523752634280634967891382087185003141615625770115277658569642465787783921981470378180785482071431774678538484472111550973656221182065152506193458285193194907045544936812821799884584628765617929626623522899726212459515717826988266427877632573961637437891839060687997882083704055032083577700673494108847143876010120491319298921536655194178414622099594639488310586483095583392006880713760674476873783802927412391694031721902852077459634359836523856001023344675457232737697875814878538148362436086338260761731977076816756225099107343605636472924392346948569424715617372667474619277961482144914737216303591815407967204784206748905017210906908113833111819040375785366796378821945666840113734903583491319988508840607261030654759775416828319798835703222308638692410879920537732004246810507876974709872904181179886697432819500380616830147150460482110814695645289648729661382555609328498866642663820616505532852765157693001070984387787947559172025801395081498418815212759664937982139075096594303227662862387588589217848616954188625462677965238665161193212294127183449337812999770145176949196691013527946230848051647488264069375616852681278547992984104042212744548802303320808502939949801025357879910055710566970047429642345916002151931880691253900871102110069659719156290866697576567599484161026747017045122779275542461977932962500821469750539015341249761314550750263222752516579019123476280779226041252424592776778171872467772895490488850051471948658585013358214425410342117990055384739978451346934500211958306808428266580734588037673188571240112315080210264642279506154232358846499976714139222017682761000522253062690231176496608616762243377606776017737204066946230903346593924565661608863321294875078556245955271425160774815990363038413162018385837460541254591348859910417264440254473070803304841839036857510283594143225130689223949894681173218378238284517414618855297303636783126772961251640168039341069142913244426137610928639198668650777101643557530347671882820555660192709764541961266817344372154913912687628540711754916472478828416204640991759593410088876513614987673866905838612498508156350225610373405820340410989834795243603324238944236145361495702601057085041285615686050617759422600550373692062524944036531230574340058869333145574980943657553890991919489560938607205848874738064542830520387391961979679276985464430046462309070969037274165697855750907657873751568390358433813290476663637788731922397257647474456092210716897067521552130026761346437586439781407977526351546369037300755419670774780731979906204640909004895368854294196361671844735386757879941714309765368718128264032770886657439316331721495388211521899472783395002727147911060907678990459581498821591961782188566751816612451020495044537814653250989543557876666692257942872903725534015645567439759272839807582098447008817919226283349116375836604690132810102412077964081036259085399680844601249778345859100964899374840167743210492668426955701372734597826685645072497588778240931246984705461415386044792341989473278740272452227241435010469295340226788517771036142400369219227508816368001207010516568373234801687444098773133321872282783598696870343844463624180928090528744252795444310863321392168225927617997839148044275322168979007696091505347607273801001664105367216979133528528609988885954621798531892985958792629918423383984371540766879795814241511193065593057734995070008251607601195213920663877857355604265496157830118257759966013772222057389377768145745229926463523720001755596264499976256910225198682387729702280218482247211080546280596262808114836306075949758498521932575515699890160419385495929630465093858109369143114319905703984973718569928154324126458305608587556550321113018524826303277306355042084289249120318913397857176838602034559937460151424580963767424805028087558343475195138393591427279667435844469105747898059251337837513073518868382800459479686625132095800635805839511366342136040598771469120457036482700651911913708678840835778732572145519048408591949232269262629686599933748204795889135755530395864292975554548527625469532418587431898575489951451713103692248848156573357455976311817202957702739798713189486837493105866266203213889255445274889292480235910357445487725055394531456625278418842237109370627767488185950117062018497322501961186980562296907295443094722792622444520315173050184142896093763607179313288719555843472439789994619929055235394844362760953982249557080267005841868019595490320126249982477777500577446975387169529209535639518552602598566614403765232478008592247459412278505502930981723737248989311469359334033754867217174257612925647119094010308235517779753936357328840919511840569129458586472165905933760217867173552028892377911872036555693516153043592774497145884351128481732368955290381381869736390745566936542072407560526937219251560522751707003831243278443087540554957155065284377675170522699286134978416757787059060097600398944969970292813522280475732921827746412504971382176877407798076983733556401222380681075537474690446624280954454033672159036143448207524233075641996085799234605370116237910678000732222855638895026474550510053194417813296218574839336741608556731491395471299749612293646472529575446404130387698143455552981372605220339398933667412175443490696108299202080752534269235508215709053242755389298329057120901190631353799312712825351201755846492699768500885640049263513811982798147225484253699414764477771284175249833680728522781486362877901540190902364152906607686861658286801543787768841242624513950098122074879744674779555661924857447187122809440498145360424507174740877930649532096858188735720045769998637781078123379537453037003628800755963887335576076246548164197697354542270404543537258731780775955372816848455582896367597122137349158516090686943324864039444015850368671709864268049530389233604226594834349556116295586744743447790709735172080696996181071387053642434666695527545696764788364161713808066826999827078453021711796814536715006125165437078342533105696707208306389996445523277677033038678463782428263428000065330860824146914149371801083949535773691010141522946645026593826658808775673069430696572075910448708043986175273889448228761504810571931366945921117210236344570583029906979742006370994346982541194640058987335480516752566775802078627884562377939632327586608553758576278468171711148366826309468923304140934443715279841574177554752497290390405058425551858524508869180056013512479740872695580160121138673713788414230564498007922711303551537299025961490309389137492150165311845795866005772911727437891038641964304814712286368949460929888332435508111876302643984486950371273432147429610163854161922066069120166328699842024405252988666549069814971188912369023832148943769130877066447403503039557992186297991683076675967766331941144912296625840571453177353864484086266776763401289849323589323244572088237912729805489860779174159054690973007902772478555885367088930447014989005103674936528766572517863796839117915376461987869258433987346082877500327311577430381244576182022999209572968503887767116128217140161477164043909677395250420332880676728905813974302595827402755080907570025492080934751010552836053867899403156460334856985798656956860086786283214040196554299490813431906491250339631802434436641680384565719180950268047665273458774421681480356474040590839383178708923184481002370007020229680972812430697230388835849611388651593833989943458693143658796398170874336593877543547637755537431413094145019189330417296838947727791755367895559499423646826163453976421806760897974691665932485063874370556450265318953895509142491911251432382200365033153798185916398856881790023152599298493766117553135526998055028126941910027453727536888102876409840857396832948535749266908875886537891219230452235766362106205562560439535331019849863773009568381587626887687476672732709285478163854241396224380870911393073577753183583725563906039056138637324570424594056690699331410438518047361961595142218766468409001408354166697914069929480830838999991446890674578796284726428179436257585963178654789110900382864394321795040638524993923058364949783202067972617162858670764034387898208179525821479980872325489048656606521594508839066961738402125743815390862216427810885521375914624027823142906861177054820098529286948548448982427128037300401689509359343523129469263808803763691868427251699274780593563253524829123658333515355409316374380352754783661789180646700087575220882356486149259911469942226880437912096218642241008980264697842281755571544837057913605431076865257219780492921059836227257680219088518852368306824718787111692698037628479599896915083146135695373232174321354615855292145399011959009110334941640231057679093579536734428603224670559421375216253799993421401120140647915690157126053927065386877117983857793296136561500681338722132570727009150627064381000680640383897049467735369664003594097237884678539393307655985154368749026628354268040775718810506482132386256108004618420473883524314615508288001532788251234069175211717892817529192267830201054310081127003248766150315572486408128129237972940972899836968123143035006412498353627362778687258599699690765937956891610255150213488301349086822234037075786138664484615584930267915761819268588824114063192547211931778070069471673120063877609321409822474684287592853359725960886911674211556847358930053773788246643504467121119021486108715247901530941437193011589329350461199279797434489687165870291697519442115761062767021319436241713858218678594526984447684944534675693386038670771764719326861534398343580077756536116813005926456315584031928009098656296593384983948253333843023383904303968283476369393357397258749959020513799672320513543555707290386561085421141289569013453771816968691334498936162031088173919941993336305947164785141599296877974452597608702644257640329781910373648492947112451530089839970241673238971292633044925105165800173844078060591288866093742200142324744518232519142510093687852950926954520169033616057434450288038318480056728779758177293929295829027897141760891074942310784031212536237679160183326182606034378678612047379514675523323469838147209904011904458147297850969669936771046297874522227745840720727276917293943353389912629982234300955198920592626497450035628487947126490042945817607477948345973039589336673272732025238927635102067068815455224237872936425377555223841881192521439816023425664280303064665554793277414977515113142095784967332306217152113685988362254195505324682779532462795657177082077503384628386889760765041401524784628159905118166612365862086048256851631011409513593352333465414726157831345450007124480361715596348597479869523776992299675161430288220001377977806286732274808596892161683661583453022023961701172688135127024171425912553699395731413460651895770927820078869830253848491972773197705053666347459107684821183794752206966421954597648593369775905621197996527723255126491586079312281483312435642173362170848234075855864354264634175995280971012747658101514884945949848069223807099090572968011466059789391933218004462104128982975672420927438781013134893283124897695764544960360528162591282895850710242775194532878297960863489116692240998756952325546667783811283341833741061404088326905294989950219119301949328957784448678173858865827045613054338255654580557786451982313012560575569354296878523037081721167081442687352290889829742911567272124084682206246830463864504666043946899753414620205154359483961352782679425529094945143291603284897708776090485460252036907576383444662204428308521125257609288455607534389363657490796218845428122858561077442907685715948531131014755471155668107835873504303774789468369507734065710635843334674877888532140856447413917396445079751676369886821986515510814328550912430350146519778555854463191449400564157217775947765368127654671515222075550924724235569862527112877555249632273459962711390679884662843041791558223953148135033067338025814404984690463840755687486377049497747144093969323167784654726948089564601681867233301942196790134448639584724005529567702554003765866593957626568254548895523832426506697592956853795835413740912853974250705586987059374567997224708231491697874799273188614540990730876837139707107379128600713948440797259081051626936130808797654586707105045789093064172595145370371293644159017269670833933140175034693547913412083225544425834915064495910115325214687871312195347246660585165987994200783538970931714779016769929726407054397202207809251239777096934670037400731857277173915706218086203493933709694776436775321126535766602830741767577101470928074423433534967560650352260887034081682832846822281493035825225828046305814167538826969403438474168833794353300718858585751012154862529060479930439346267721383374825755909600744458913104787004855360269242228748814049319648931377477195394820185963169062100668700109776723007274884297203219362001704443564617436555549209372086103725492472140144484559832056077145674785559271494560624112353927135082890954966001124820977423144218252026405622637688355638515242629085567264019755661975454151655197147366085744875701722720845402899115706916740777817934192967995661284425929529211147758515773318571444292667359184411867212058824800201230845100626801212575875314886565928474706910152737330296423637179376389589472447488950150618277260836169222432522870512650126371650030051654182784957688209568384584204561148352351579909680678291389347653914890076071968743886791151521670125467198719559883222816382124873549300856798319659893598785688303551339827197072499895288583391204644865396811491940531453312728426256070834137910898846972426973275749776955438014053911365171114933616612692541582385985198407223891683642237122327369532967849223252811254837016445148667188051845826363195352053798507735609348626136747542428388606768521449962651322768699531203651588453847419497404207081032803763729183965353392446386000442169118358318998176863911656144217326189537902247099510566350549186957016413737273169769410790532817736502724501950687821801544194839069980288539461035718969122030107922046776130244396702403128259968987356212103995486253890132665393692150832537106910862593217198813841172299288078868729091585684443383408636862530774850759521080252902748279630355013333452016391996135383058806665291691471551949873693701724049937564331383579835700173306814377894799884403893640691498931538072046608418096782040462041893074963439946715787633517257543160138127064309147996314021842866165741679881454757304765600216743983146949382851000873899779101321242409887119451099239111185887340841825798891396754646241359381966545345207184679954473067771852969676072526908694150019679153414298394875105187114087076930792504674420794862328788865589181886658616071087345054458091286186611827981258824917483683316450893598850599479366036804941208182793489896629010125034682009745827559858995457207587427952023977922169045526758670930092446746261558588987556353233745626364402175674063288483010982437347906710693347214523509650200773649237101838676861752288419898383550208663211132629626139943586725597246161348615839115900417798438418732949960425380834105590803791415857438301226673140387494610186700634480717663534638073796099320367247077074841871175315002512326852615301049637668010432450712822115722385052361228112670308351160321179252581676089617063565868633312974395411772793864442830865301721068369012035450056682609494827703384311937650392540094701070313444843863294525394711180987963741804970666312210954519323295939837135867240757132479149232379565115019022827713335467816288010825269625111508258843123797246989087617685748305278000141735827954659573250356500053978420096077087977913056572327855053090042995701041430326693831135702923120356948240888614138753122361580867815368125216982029136704644605904926293440550765047777607495083087431891053140251830333008249625563601765580754950532360829831069398087546490032433961888687470991515223699940977861636064493532573189881552246475506559814448472362732233298455941053431974166267395400076778398625187276914706171526439654158246348015330980031498402025081365638258092440189288367848092695614785820091645492774397823031744677208155594615434516795198204573804930886257383743609837028041475560670941326045263864041452633776648758329480749321730258380370803587711818867446308549421616366755127281269818734412032233399089348042552749011956741741068585865392962054507797293843143655062416186581219946339103537503836025200346357824202377847944166112788231715501297998648670313433106186775532379701225557990876077318403220737688062410816617778766848407978293865739883069055654286289122336691410847960291582814936290327923733289591917459913230440170316764263123391719755674173213859377811733320331897273678754325058137077919153157452732826631482132079239989955568800441025462045953065473818221576819581053585867418434005238366465735953836542201583225676562560351290939299779326745309700562046445915417702780697121403497591821728770199595193309921694140175247705319121886193247204234096634754769995812953256701583894787856848856937590226324812060924806339014353560032041127115513748980349337434963591370044462359118516309880339645500651848634753586093008069749646894006122002684587480340134861460125285385365713805941943321258731450301147658804580123256228455181164090957342435826117915170509593897953626909837766362151852163057355582038208292788845452960661843064202976910678439803322658024560714871330278703315270388757585661455439486941986993116551857030420376169489609741346449580253488052807471078605303853216679732551683530772216938224896240634004150215188563927316139124188291214764238479193279417458537203696827448641692971194584473314207634972137509346691338807012828575484566351800147787586194627501596949818318383373424350511052427703282578539897945524747543180506019227932511795918561495706646482028556741717315044742893522116028283162244407587800473420774446211597494189277599255274006416812858619365859462522704083634141681111633831100329176222636949428591474001079569308655753982442470695456377773561859623155737218919729748231944563020631718013830485964980024200385502526051855365580794605063681371155247546834400096090141224198779941457257464352320027814022664551841262887566668673689693566957149499362025739530089686089760642042291359228057827452717633676557461150128189715568897500388819686694108664098581797197053956667025607573971440220950723812262005137272054738387716386369516448919498547666390030354352945524217278833391933226680643628685592805825470106231567023318686058335843355697906073542867444382726252513825006313194801072690778725032303728793857784572754004184829338398407007479062809007735778991964736300997069160276016748258812495896984297297604919031623135874311244251935939107170558430652709230043944165788305912065670877079174124710032382590381635193601446379970422243803454933835960231256567713512437086233674388525811817237830479595773045123735338842859254326944746239854621035390384917370610909149356641304140110643971931337018374960283719037085011523071736901875364311558276960031738875130150999941132050870485461541507032573490429659411496565962284336830117416019092950209189804862800240657425859777058125218366768306944362672710005362161994745789846884058120620188444609249617128536889987292508404559426175338824096160647829463712712872386861330983990351277266083209916133869597019172839260755670310674003071181249758033081507305228442665748369430057427232867452114329772700575846765343604245915068753576079574972445235083274490718510127813419628539562800672730788385180126120554266919801610618564547910858313620336842909629826369488466351055594226510339777339109800560807222514256521494909214814824140676903927513854918308674754613143159755532024358074387661312229421054668435909286682051987262543305962900419138268591658337427948244701555460730364228516699313355304863129188136749812245719130897182529109478773422607088456189526046947453923171818031437574696868122713772715770976329922086599648354376177454149506678387288205777370719453553185280769962971073601463028801899585200341572840377818087784235595616270636276776144727757704845068661510298073136457477433424787146624921614281753717388601616775988304286834334521797481221553113420179007833055235684564856808333043893857101301054155312076432420522683638826619469135784751326191594511220469839454605868728322280813768700142904362435896320775374577422653690510506665386414838064302525435744546756523646184266005245023403350620880751240132228586107353287885191878067653880099594625318332155612026053982498297556553103577150818973964393482288375965771550120865252254666302623453962186088313054825284351540109005988528391620022432684013470362617083995775306777553889351612921053074630125798812819169510115014367923604951110359785245402365192680041604872104883868982242201279941559361290474817953903905837423173187094877032095871351192591479540597891374431249948792513085894865219449431972060347711617923233992633579278153086986416806012724781697901516939527815004303419178722471567231734333234752226481462166678082206914828986550758057284398914004951539910985902180436145106627665001780859527212990596126313638382072304736539867531096155005835093645840400734595013368674156656163197809856427255750037995546061607047769195689576038190294894702559325779273728105456627963435603257210520815190804259752389844170511453653138876805512356800386749894523127428164604623054147188550312468069629071698821720475326878748003574977824918328533514230988433028673786797359464689307729052290319834291232553308953365252604408044375784764388674755302854795565270465422372083613044085093557320791345160792429098649422739782852328580370949457340618101142446734469969296369781145460040336678311280091360827601503599903655670710540757051329320425424181797252097009397419549148524253233920729542319490464151222603572219190598014985818945207693046094525759114308646834028548679376392285764204362043339973837690653127127725394588131974609897418793150807396745315835837382825412253257864342808034949901179174588711707728405628337063474909807506164997745200177650126389200678293900896445382434817188363677747012869099102035015987668749099216770713959341587036135020537972080443927815874289810620655666379586852239575995686628131605640603953076784652571335023645211375341608507932682350249559041044136464972161020566033073144133127004223655875946560994805993744943526465239382807800292146090972988118566050188628167876348027628668109195427021881517409220276489024287342432821578789375508509210450549140833861063970657645808849623682649537520493597957558253081134302991936492716641459825062795206735556304697450420897706690541177256650856047706120035834229135049445310368244143111173665922562549384054014974505029286133376463634680916384994274314363298985931377975196657750728571852954003928512243083420286304353965537126831824410308227826325936299227715031705770564056052359540917173526189883509818114714625787009290646728843385752593957370564570202931905483793047404641153530851946745905263061675157314976619085846384394065874374463582237186150950819536109765558187703370795422738054680224698360970447741017672709746982077270690860561987581238512490659563510722567013410782657657779767526964986928270626788314185582204061842930963373878166127316313688777666849410524758087476184445538716430131126239276183718236799510176817173354677583846658343191310334753109327462411423383059289885932203428468454335010367257153836000886576285205805304513927483746550835031162406243014471684204179891516396824543069793645999132369835599364496529373175950179386234191414567283430698129551022864922387569115120043700350211607889937345233427741660626474294073115075324648131288318994451367753670533805933080249909248020901355199650396069156229028963812183266213892446094620505744033914823630314512454543773045977579014456299462519941520906169406053391406325844153955709878291379814574267151139530189263048417084659198239048222424613474421900977942168594058129343823148806336370376050371119840926602964141467289621716283935660033142003975200868541237819599552988321351481009070996298872771605773460032958254553621828531919703460904521023242817819955902075550320645864275133607363771753178586622732242084047246495888739052597036098103453305281040907398187949454708797176976946993512285225794883955887274649820997018952882288619592635056118755190231274100398446733727081553976788776078431605907853944938590392508878047200487976996385896033448805833436319023523554972099629542424886037065281795012475444889557895969957027397267648218985698454409050765304471673364111190358121003018228091994131220785506405466819922634783629502801082621601268064694377474081908300124142634481200702509678205867454714335187400215475907562480210941754577756322896627480101928818461183592153369339562325434075558331987470389943327007805180862262129485816133326674545089992000495193765160451892176474269629342777289489533410341721521138969700683131248885324307582046827535838555362373909087235760268863622811101225190160327040632054628939350087051606288223510694866037823070636736301251570817929145352043152628487849859198226210769407273135403596657945328970972354391921141078771049359661033519629770840950392005446680254394545216881097493092899858639285541606422332227287776619580435534295318591766945052047209290579749952628543001673008905958491243117114321800466494131508005995148446475993575993274529055598143370220429533239475736501489851009853290872608539362085721468353317854998647712141528859093957690530715459985237834322520009560136722997344549404964820822270139951481478089296094108562513119498783900573337070931056948377009852686748134911605628750888018878348033695633350592325187511028498402841027097726376457984389305835653657219010132340680142613667640146736128222012657475494764488330226726094765715121099567806798824223590740714454122736918115902316691071566089752390331742503883682465484574443892783886423214695357863031419895510404462008609805017806379397261069321372688935043717805584647014277737705292380603327202672392119212337582046952201642670122571970617614774859153651847142036435075945141606230079479741146165890555975899885262111153149217453675848325183157202287918543458679762975924639227274248466566389263778675457397186424726925072951733161182555165053102114735067002093823426157739069662904836789387776197152894155255980634219793008693526340988312586101210871023762769787540434576748285890917667314577325730675390885715410847710434851770256495121661023671381683838282060492096782075331311581324496445445165035519825420681226588590198279978520664085887616194083262833066612385419841031341471897721685069488257924907944143904410944749920389664319076658967369808400738506109841950074107049076194387757344422226529796336902847021565755330166077912168683353286346064999538599392810279187720332156166909299133524699940759942260098978247861881039682460455334287945109634679008031634889558215179388776599982507024397706833338353785372473412532607316179278706445680445165076173839801541299773658326606708014006334106021914142753322436510877883341499622595282415295383782914545143888547333857601588498387879315944378458953002293610909329180888293222278151396016250060643770583466025611423600920859201603587405577223856890008422128261236833303525602455910698931751985965317561400441737241566511664258961350192229412202019059505043662562689406495616480010591743738132006974550741847298147210082528441138382371415395497665996221167818496588639887796959823767607481505942160469106748692731593023259558750226790595206996129997460384808351966411967751222000215079374316913305890847480473023902050778891220730757698013947360778133468048869614115487552891612556913643684133621872605488027065478400043149672448394712797419251784556010270939444904016374078634115479714144963599904228179055733054928854661597435371165481784662180069593260121719935117264491052231899285258325003911734053919888478439084385018431097947378776773981379879216330387333083128319269685718466108478626224529862544988723615594135073344285927250220960985618281846156053812708673600871880044428391046051342856441256980065752154285801960597743346208362796154721684081108664684554187384724410313384123795003405124921971499485236251455111637785494214883381690825825191684819558565594753525761048341833320772099236288202298999862843076097248658832233726976356051128676690572920113188589455911063275456195416151150584488018871836240361549025241763918682650874481421975765377420023440834958047984418436016425189182821658200583365851424912405822484146114977590316583464812639253114963939458309012097345779956208806027106910447525921090320967916996459513617370167673958957313791513200799988302172260261521123881909458747783966832712188702828117659656912652664938782382912540714990069366568258663204066943854767466657882370250845873208124044903866912530429094257998661417128907926344708219719680539330908930283377553996623081248271548402741162015306941288289487116216157921514272812806408914927762817666842221951040383914487868457856660296095642584576989900214142469246161484677531201123037612989150881624186549588486112986277987890967245113501674047907700718637951124958564398271349813647412633941859146287635637548923364838358729882696693973476939686894311255621918063304856664455316936980721490296917576779496428110057610843938178783461111373417266408478495204089580122091015144328204409858607503600713011342876208106902759921230035104718119961830043235996961796420038104812815959501816116570326615177162046322866293581197454290248986655751494318552304750790305273506109266750672056233172876676493355859881357538018178881449166599737249431509343074583256791256846006561560736301488847789995637093443696317164080189926044978763957805816895369119031769998189030896123623671171476842676569494098614104739671275840729551825466265757172735219624109669840441380944532249481210697128974756459866506675905989843221765437253603798714152154998505668522422426694849894022061645984690694064402905888581652543449698844957886360920841157593926820845964364901353867266856043384208114769319432153904069127187366665927133123384499338425176166067694749033079606584447876636719533775087051908786372248416719624742434000651545009159020111096371133109829476997745093457668166988978313226756776718245439667388840609989772160484666174578705765565522099299215479289122365804704179559779147998428129750906320032275123035158443826923201076446028302833630626537486507718178139437341464928009339142515830305514199257706888040354485727474569824295799998126447450339003243598756593359862514105856738187259143795917099915018945184241354517643840815441700310595411344043194550703334654687376768557717771369146503147369599606391479322056138507103055041124975644028655373652736608266469622950191330006563654273013523088384412380064493182082529310317460887944303013831252614803721893807620761213597820980548563866859205672602916739930281495894053728891576961532577409350665101661986465827928417837624542907264484514038151012894334651071085373785509805901714804729618523310328991736743577003386019194393144411657540823625581764789602189697977423990710731497809325484073521873423023785175505477206802058455101909276696605434058997743714133666644696356234071427185320829901540925703908827058253757256685461526902003332258561306073589553199571621777965427252778068464711974757734738911278309770338073439811585007597201589133613897085404050278312623888094004968217426860158400122524481397407931768830107386523108425731785934225246073517136080744293379343206247144240577631701427962896957019333561381531858640973455437900281964879507137063972351054709552609084001504984293153661452367071671696104783065360128238887987272843854320398846571360874850254970148380217880524159362239744265009741766443501718389093330921437300379790717829742331999140738894020701526692232435651584289391594978023534552996706006600743769282631584061347249231247373815469051432396952849412251100227218145051169047914278358459783782118961353127652325345988151578842039721819663577356465537127463533663486777347439709791133467091591535551419514670886014101866418931250621096246890221104703827779388101696257447837313824166381712221380923433427364722838549732551330760992708434205368048768773922163520852965858249206871374399855023586592852054566484294331703371946612061644457581588119715759917752479732027892741991500393538377624230839853802358750135028814426183667364931093190803730114486875467049284682870438393531808035479399631835719483472440101585222950760425245323239388641321406251074750530508795622046348466924945322458408020948899746348237600652870965243221345986701005352416110120549604936880593707650527152423293764779958780459844982419717068545220704948114242118500452286127353355692924514313981388247582709415246201359254733006844823645050560656701479992628001715600148491887192120382053624577044210138291314314571838660694066942095389955497220229990932138904615364977220245574951526816252727866805816389002154436448126048402460120189724959658242056424734347214496909992190806003758101704902255301115985044331982124336619029502679565246939623668550719244516382596734003250116042088373079648757922994727585953003501751287144025481153799989387030416786512000848114272154636972019240234558724106901762343415942966820228660926816598855325230429426145722977077540629609622267461967699988937758142033535035817090319894571824141378462503862027225946362359404875423577260282522325092710318252776487780314186294115698365756597913360812264709725204192077569632107114979152266506185311350502473011497437324637115678788333858224721088116217110935871843478709187269665715892020763541777195778281547370491577982104465716261094793745331899988863555979835751609261816163006354232343818606099879023405685786786122021819102355205868152115554201919079646024855285907954200823623604158895597323018860001910858034294766452427155663144594601223086368157575604327287221376908150913988075125192913953066267551261578860020516723038585516352544965018761674748696327639280932954919901282080238505827469500543726334487044034118982697959487947246218423071428081609630953868812469075903858949667036271328425861884933522314078215275016349350465369944529198587951852791495405322329867676157605510212865390515181447978481720915950928872401965133438408760200331619113239275935948925428112007838531337376254065931381165604781748624628034177986175878541269594521061781829508673135887819954832993676902519656517935478438341864781964886454293648145123388508765431659486271942387678554333418306580268498514784056113632780037513153359707019273419327847956894479724138197634582706538590107227331010738069877449016776405589418745204931514230712831751382211773658623222513800527293828729084505317532081349377913285567248868347175427400861449349699269337709840153005212374075276908517439570770838408525836810317572196960137783612423255896349866064940892319616139135278623645725748758225014932115396849799279891620879014759111214837145517944807926188070397058959217472352934723618347383989157403420344749581035090150387106697768282044230321461185768055556689223531213497057261768944249065353163061071625563959118153644817665235865095703205320163073458603385389431771821061393634325876170414148685938315611362438323163300316759794117213250881144377950277324284997733122708694533974097462815684357509574048393181620696523648610208160560386144048804325200996262420427202950605126729846840867719683722958966736315464919032444467465448697743055884166923049706430685006858330651084955937849930597161486732718658860285732814245032628207321069713302305967483582086771999835739444501068852097934999469752320761302427606216780320411363421039228784666805590648102640345125179962787919441951409028898592266608954984689848250249805708065434116398920380166431007847162981720638427901166267683756645012413857964329280787140183551307834377732683403523284868098287824581818984406652331335002617451432093581547520816299426349122388206301759031073549536033138422889935502974983335830329259391502245827995277341852053441600457458598085012077337439363834494546015029818292526346551619184987263122818826277051934103639006994606924235287758597316323552852506031388435164725250967786422084393147963503403004694025687164199481949002963471157923973603850028748259925000033786368910509399798446296340682516941543431786420544362775399443436774659732122335976457203534456236496189692221697340100360629364689385482688806733285036698984294811792846518690676281122155372965231707796076612287456206433529350188462986779720864061498446788638980025921063459729680150613867624891016697528181352435893221406495692063128721195429794752386904616470505751920316635074483221150640121352170224826036050956823027920464203791968107423681294920221574067913263621770687949179461469393192180327434678394209607094807558910063805441916336532159262551129583893231383123479283446833456652298113244545258860683961026381888847024057118354298670372877364888986167780318107117296872434410615914682780137587019708425265352285745950109120142778282071342821251445423552244202065550901540827486427010147642956832466781503202349705652111874838622081833166828816910086012273335687976554452036551846866592975357865927029838068304233832939533558801773509685285564133875158299238762270795728141243397488865037765086281779039338364585082168923106882903225215220512240476277294313382285709035210286388447522739882247736802048109113579817653924855008255767664007402334669321695603545086837442895203216828593518542676423473155020406590395204722159047961108955652792187104469753022614520659247983457518029225579000502125877390214965252583984648670980013414160654444133857071518808880192887272251601462980685701118030222486084301071951308722311459581768656203357202047021300179259434259377138518691794242944260714047291225849338773280008505399923500331757915512961078877374438595937602414073503573139477171371726073537866253419923777439824796538726185232345727772545184020173460170132398510182687811746749824350102190796630183821062050968444076469907100219983046122814065426515743487992741778624239223473443640325079741807244876797733139552341046146913247625157102602828867853720573986245042349917641805090604549850965159146523626371748835086961896322231189008026395383169517470091126403404530416361603342026691094168764753268099726758212472504838442807934267499735386508500030903645406932633357038501919148120158918027313647419565283434138904007288781991000160377822906658460882561755970575230574327989487606105761006257594065047633352166529059487647228240850069791511493407495965897116019235528584288979787668474315111184052613919455808571037356350434749549446915801874882487011734250941467185462926100401801190420798817802724278561972148187295946349296014184708673821263389727802228677259464418678247231588628584555851622559334740449193023960820854267844372138408356988389823794680468819752764605901366059421147551881806640828537218191331914291807047442530385173669170925610968022532315720362678214562533691719114694063734710588753835993004736694013962544440303376323483674858132420808853553716794771776468038281734282287720167302909702786237412939871277533569282225139820410377857356684049987534156086603242403821471434467114384529830685264735768395893914953206521878937498479075143435025522327546175073906383257614617392352710339574420098633086823076760658156072132794020329109550406287463887046647274370429744229578554094488248673393395256682569530214242008426598030315739775925759007720066547041010320460600637717249414711897267528762231684999367538533718834672288465697341474487379810148491678843854945090816833816462362824141874449155403261186594263569100528972531615560855819194756444939940704056786447406326841862170270125851037268915623497725855035613461368185106653359849057330705081864458220958951942145424663845426185189580656086595725174909071078071387238840280967374814595054121292984993571679336990084963892856504095374555083391872157730867400790927584232847604848971047536780280993632778427615291254213739536336179992476451712133118673281841293299094707598794929672100742949793849029324175569494483164060213861126948094639389441519285895925216768453571604774111610080707072476119356002498325423609979847067032959893242970973610008074040549776765283491999070275836166234532088866057260141688444844952370221672357600948974069462574993398219755606720816657871981750040333240325524537197909602308717271085209131099153537201108639031107674171316485550950737078522617144006115998167288269085558336166935731525408952854002745097521523858951389599580322321603768069943890461953623646932582766668399528340075122356204726693563006031014935242373749665581110237041533567403989171261187115380852427247080946699861824690388287230330124103961437349310404990748664983583287900378719932619026176926484285527510454736228482294009428901767851178278629410980827768968628067630659195611855231735620891326284357280278049940679734019584717257945580472936247735455401878826676299260000866379445908799219992560670768374610600099390726081954275473061502351644917348294364098759223623529202283852864901340154843051600284802961516277304295560332835467671493236295165216316793604025675210881934278006725151476762227771085014988612265247770120165141249602032418325934381844354389600546709195603021446897307423126894400008491005991256693436956895574071435084238731221238847220977998717404208709218927576994129351539764366266344686799481940229634252631796356184973593521102686376343982313029819286095421104205797681800067739559204623135736933875260237528997908853378992181609110260462134637065245296108674346597995382456491328393819641111618955580638625726595181893567730338846465696564044466714125987647883660797989770288235547803943467137390835320157105108993990612411580879984992901705042000740367082773293792500178893228506427545309623852710004784115103967396287865208921387270115293102893122571134095927908515692634774154738225132749395876411483358522773276996586899945290451473228048137080843108984747446029082981766528366185089025693710972508498604827011695095128630241518578968762833087702115873852367857125099623434561316018690161812311909160627200665132923872481067048155162586493332332309119634249702974590219868586215544784800062227260859187624586601579578416702435662488822728484357247976305213629941472669421101981082555137758459766263224475437319203775435306282598740387909766635822307552758360033631869007030479303138821324886571883324791097086779838174929862772895863405636451499293406206205416283919455359540795838239409518054901229695959916011946948179655165118687645301556650609893989129324077332676323796326413174921860937849401589391608950300883053613068556074610195513911447862833882616387314413207558688296147740021064730315301155180879817056518418851259299018204010546700126967004789569051700044015231534834577702449715875595886317284073238308582583600365586536098330731208444823038281834197527326668864676533995505667565566722811398656361083089527717194341188851423971000476846930607318829472244244138039912422666914604714180606235367673831384903564998036605387474983198328618293528128321821237275360499744968206768430602443916833235972451890381394795540935463330029000459405021015221742974632784108773183676012373225099864921795493327626941328936731845711461801073969565559374965850615572433632435426917669879136393281238084681761099735068234501015562359479918546289918673002879439941559210142054992617115422191739662968208104096884155882173013824392294454411446061770668934125691811657664913870415015729798173977392447568639434684972752853679825272742353430578546765670986548479323101626563121904243453860308871735345045237691575419097795325833146766182201984237375333797492334792898024610838048966566588526409699990805097379922910202031459577432139655064610147090473013055690626762625694690531749875450259367791329972936733251802786025158977263728597489404848347873093177029221100534621877754051606019187237861870315080976223329682484130357467824154197460950712592762261006204285875861062223134479970228227931458330261601979437393062786742027043259498957625892140736184441742798329193765288915510745756557318241010631454262542114879592353551490468771855525215769407425419854623467469134788841363484275875791435085130319843119161620948837856040375333059113548215054011168688432800953471715004672330578919405000404504816923440834099413753555852096785417766605886439559907432909658369861200160269383110277237806881388340879083769910872816756894543208726816286973250555511501039184093445342623561735392471529719289981963252924355738516130634847962739185884482732343171510852863992981982169082738646239060139438295512058443338678002398805668542552163658911240701213258526163927754490736329003116571983981795255338462358045783207626015710093959574659437970498896843184444788597308030077641768474116063435755863436766739286617150720723466975068083188969839948335070409762469697785412250244583462388814839352381527856748022615984192942314681923168089416965826570045929717041972772321204007137162971389932164337501130639234275613967233184391755258392696890971740789804603753200472893781173616172433295268506937771635140929423717045099791658105476383381276238821657779365977917425406575937776298126872864099122776971492893040922153425027324645146313128320731264635997252699243460721673131692221174406647876057752163222186170389077162938520180023780093777343961402934367259052537247217937735540119474658991068444109457358511319538329489387534361934708073031745844088808774967842247353346296885452995978297415550852210961888092029045344566370356077847748892196206103528949756815342861986906416524502480313110588242794841539953979175911488187253637141640677434661964735273008346534545029705783421918708005738754294693118979427125490493522937547916332208227664445071036844540218066082206898393281483085393940410201542270519319783696867484139471327728943296728074423366600537015356349857451862809263832422856595586462351778231652781829226128911370340577694005474082538944860370473271138497560512582431421453101433875905758277228490595810869600035130977870689481512217767389246453163647738155809566729741799230503229089315348641894701596144212279302880222917419993363041837992218975705543814469858037054069023770863485406962268413654191708014675199955014463916530150876348439179212008534347946125798551289414984659701499641463582426749649400020694067961084725466733993775896574712299179210200873807205248128158354488886584018363418487913644612281810633376590313490768076690823012750966018132172857920703670005281583536828578885532936189348867458170125914188105236279051331293248767877406041460732491784390469474281550225027366233426234634394388756891456969674683757572080893138932849405664394134717876350719482690202621064050188636123390277204443011934718330855191624270198634983944619128743912087121490254630797242732606177935917602017798626832675325074847969591889351427999785960783654693736219213805282404947058134561756056672970243029066957772308963056382305848887209322463927974245207322719087951105362658659008192252991693290005205074507147288078332045644558956735699943610530506492928184430963408615069293534655001075150622118415737201805664497055610906119918359245348521021194022427719243012999912516464190230190149036747073494796824592968940161755506159146345914264263086982866673889488598424199093985073530991587890504444056596859281328116504490969897851059732826970977979885614087543756744891027043374012997413179629772009543469770002693942408521084410737012677021102162477448350861995895032537101394484149785199310114916436975188126386412581544905661251875379595434661260611116692317070961050166949128767852921755036482121040994807327400452344855389077465427849463628177055390706948170316758447295773475828970417760868967926534060865905530034891950564901506524945835174105964590067127985206322474714461641246713922637339844256368976172459519971607179764999545099061031441256285655868675962405908747788452683365283177366587123034234160202811455505160619037670648160364782258713816342809992028135364958186633904872994334661163655183907618833501693515284543960726075011126578161553420423513274439003586214412413794063199234348057673909974561008784918864227732668809555526074691535248327615933289298570467400894011454900341873215705147549772309204201372484669246554010963270411639671381398204297216392390825677267638223636069843437122093112964534827511682785940546246489033474062561190988317708328393583617422936895992987573910100289878541972882241644009921379991229030327963574772909560280611087857215001907571874745391615994017612647189508296887360167687240704435916280269970082796358321838713887621644017691716112083610748525115253617888751012116434817841635776374715760318639636558627170202923939310989107930629274526542186524188144592572090287549053322934123436669102938273095224317195889182493883182366047016626310759439919152387403757200354307317326155028588722575797966107613884543626940429584863987314137975808394386608011953439169160459399990661565713634087137047436357912196249596245270469297587755797419349265000217071309639213159519534469153996146676067161317114789494864956770828376516438380242314873317637765543264545780981781704174946513067364797649021456528392103117204798325985035233269761470050789064234330735741886710323655069759021372286366092254919703311728175593422366122013000643462115926364366578188902935240069047601451620475419893350317104921816462234332882602997890008442647226184812586115651199684491968747564223154555549505678650873726787428403817800295633933002835234348903150983040053015943815606206410913120952438148617141049228642837433721557891284040511668846684233231525442027426387757830992275592055250894841830003076478251558483271927558024300146137561903734516098177916150186654470062858098431582748354560129757875148275878444786590607750417790713121084044965701209056891093608002891496213944314175887093523773659788613968357809556918748617798358762045726179920365778720835209756830600441170606588474597862436582480635562613137335175568300097949091570344013817464681845487636167228017347574539162192963126100649967187765682977901116755306667786895529417865018495894924431860531894852447697888035037105689038361874472485259626117646299582773692162295248991204668627130906507466049758803995069982240843024555339773192889049335325466527227105951675291683994864739917147512764498288781375617817390325238514901737895300851867274301156671405478217943216632987297162145818958493488143174086973477556260833342962001711369645893170933455050884555421148556671722434255366878119360271962446399721739128874112127703014297518059365494181287272370553394506659573712363838099662398180405216420099343734532714333551736800094205723209938590974090998881564465507206193105093454848947837345746455994078977620819781470255031659433202055596803799292541873383011449033464416972823110453964760610828479573190780649625110770706034658990037152422123824419995734928268245894069778540080714656563338960364963831063213202502210979046328753013817471395951658696579904178754124585240358607962736262514880760093727521960603569705565181661068915528412113385284119596283750090850957448191695727939892906720860856345285184587794761550348472953867086136486258038372176225498694061462805091056296261733755502882315013642275544583591270018654932148941010446253028515820826685981989429025647340033458215119096886624902853059387952598080761689097461146486666075610446385571038207911899977672979096395994971887230612119574645551591960478024599884146608135677685190665321589163883245176286275076303662535530816337391968147157048048012259287542913380950837316625279100374751733539550710635729914275000662406264339518269920440507390689994666179696441995972995493057982529645351046632650016107478415538417422592450896468871268784721889909459692295341303458149830840869978790110855097155932116886662076728187995637741682456021780968432535110257342532070987551141591503231550338704808002540804296940959220279335583078553303201295051310583235263561662464061587514442082629125490311843484401807692309702690942221019976165597850094570264693838582037141854869403091962512662754592731828303433666516691809983247761066740322667185363374503781692997026563903037004124558977535875592067271147709562900847135032305588787721329083471923510494115380077138999540910317999813886114097960206837777162071422523301522682106886838866651001031859640474604093332039963027543749559352128111485674987361545777397634936373139982048449927169777254717496029078435261586299554294364557010769357523943712439386075009668191298279815293257527632903344432811496938533442947384372741406959642612005547937720246043625667149327611647501782483045001798660774729020840009514766611730617741721780173805652622012460232491142474914089029215791980456942206068238744270777501588346678663592218861641028275444822780012468155300207102221331862260068897742986888478357129093522932815932156239739793658841507034363837150729500399659543777809639420311233732618459405944581183600758060844917249149024948423528387928714142142005065622751604769982847664142745562419335185422388671045913514644151245504653279427718145123239253059358797558411800165872767446132204012256963370798814839194390347274938173042659628409406774638774543354168011105827751625301905045402281730151299567371499675665046857635031622845579810352440425628916617375478776169276313203839857510102852413165385809756391989410447695377932238094487787325499809855785328841738247754839774077053717173525736964536220580944924094026897367051269097083702586191839979310290964699992356042542289611768811588918446060961695970483563341971434883005589732362924284650575711604867356507540608961820182399161151985178676155899707502947770745959126631091666864784981495879960820769592568746219021599977652501333522944517322446089300834396269835827802702294286864049575784808072490676382887296611512616582012808581017778096329634347648251255090465639064807678104345398740948239252595344012631414045533852620064144128078765475591237432980002024906469443152730374828846109181788536233953455450711921319832850855184633036205968099364361096425818527340650040361605357301494758190927362710414173186124092174317896957319459005041006314519060169811983701434132542719895150672042722938640276976700490310993700406337921083905049509408676401835090666904524651371173546112606865306082469406692601097453416406978764866866063176162896654742578349563650174209856554688122743668528276536400964788242164909135557725994429160597260650952614046862565136143573625764713243672029773424388512310456774806698006604845439701502296519437966928252721573637605325599194631306334562335099915452366091420398903120785572543331663059270591979768329910637230628456595708589536245482615327395956456002491149303537805676927711068447512725139982057938450207346827034380265258795256262232922604939141015678291060689032733454210605199815336067619957508092870892046881685847613764100207426950169642337225605598718415915384742000363280732247820328893458496031242635928837290372489753097327419019786143706973648727252452240748602966783401765656691993129621838523870184347470064140200353878416338442796815715801818701635502721735188469363331139925033776024893471279617805774933747492716373221692065422174406817787993996951422068940825580742697873526292170056984408089614260367049901881179081386316646923871099876352418784916557767396309982502862838785011930478427006086745967827889146074496423429901982147483172838949706865307448410303212367797682582838581687894535982435211025058377208105716743328319976753408159979850270963428869327865101353257281239574559979799010781036238147825497371537523441684373135167244459842232727384201125615404018636913699235170754833773529042110585615527304353751433789809829725645509497696116541573664024844997953655574104891634913231955216728627351584456801088860409243347334395964430605511212377473827523692355179648687417389205535228297481109748397224050529007118847958798842035909090645858699733389666460833465916013331186646741152520246508754396175797016525868256706626294144994514591510588569567121362389097597761564961918246930215312559458590446141415716959871628721116041431706987948950336653172940787339823675592890531318894426927089028219241110554651573655497538826948865048020202455633104338777500068438808160381298822963348126407298515446443965959335945434603890270710987290769257169032563919709266854162663820983087404777030814886916965458353095794613925013111904343836906490770275619389429343373143193050059547719153199957452918034787842571963840018400686078663412166290895969215428380048836958362789589203216444174770297141992279986902216360257366128993119946993482416398430929773169182498059436331921628063516256735437250414200728585050992699338368517514146444660865527665308974510678755796066234223909263900950250356608113518958008647914188329195385723259767899430306606497064462612229320472166980978954474364623778707458777106041288060463239573835125469578258636039303028039378140450900165509093159281486839687519194491837850128567394562830285961332161962426862517485233440708088509157181139200669286404870871815697895614730935604208306456407849265211403884736277410505977016609635829499382234117743660680810592107833393734728808685512615296725525119007485084506497860189807935704766337092420106342634256000948998138794841784413517408927640845957253740398098064394326928495780587223389192107863641979254430900973743409219161100411300517419470702045841142072561388782673568139187432192248316888010120718087034426897209859863788473571346638815661201314128398739614757754261257787210316105809252428193200882875199479955258966628244491784720146314970870458619289898120953122293328958215685727556191211355442155500194169412268722308468144128102059750208725165643725353179365355695208412964671501397281958142200151427713797339671353489637903206123280683553307365083456886176812984609873556133143126896408629192170519980224329772245068495597676236701468511126029288472964543420524751484788103101112398535647117866594414834863710392854201585748770822227880060180898146951000796340229133651907363493218358426918654489541339080268086266673312139306693657773421900165468432318254964683719926169872169738969812093261932416544258528363329165163412081445487480875070460346931771884205625904715190865558701356416843542413508601086139401988231241229944422711280755760856200544044106081685663419464130839948877987092276852884179913460598356342456359145818384700046667244412655022103298939248716954468195584750624969507261210866780868068034365890989752132934101903208749131088059261772766510184265276837824253727460733097393146006293761204295506118728448406072589936526695013615471932501701576389066514551330456814429326396370040612582081939619298934325042952021419205339975122539544312759379564394473612705847578582940375200297636634670172678666554016596432145708288439729884724039818989837019464110106017317127318226870281186826524711819593722224820218310480364162931301177688895401722426350877572725493738849540700120263513951895178757777679348938207669703424739088627170645436337540661078593173083059660455966086842277584341941879580104264705624196953380982603423842853486210572700166667819966958513286281873857891841092183628210973290721866163421947930385018441041950315157936971175411650873033141686861502758596117040481507254865474238499496579725086380548677832671450523211999806030757387343038196225519458263266335704399283753491367651593527607622640613962141121585577791034294304637575224216632561666546874798196882051546876982190094331811922901920329706838045528516019092329141536829442126111539712646152773277444027631536204107308594083482444392163248133375924832402360612978414570636444347053741935669111773265134565718228260446180360818983357075602373436151618964041647074358196285760798173373604969944717756906231291661214614992407883357648225529457718976020265854030581494680294095927392214246605392397006794148656445723636977171323651973349713494187087019666360973990369766450719330510355138246091435212239251995257321601053034559270308551513903626280029944418850967997727450065963790811892627726233893127443590194445000041636106778106105130045117155850847412623349063624185146546036344517565985087549336708889131766861663497671027761967179024745723392192052139746008415940365320267964590103531141368549352529757528797898052191249973072231621356623306117101562061367229436782671838511573127157762462873828994628178183061773827276437016711901233674313268261668249581692661039733281224474461193479357952901638593651842142565219975154960088242343972665084824344410004877376576526089323001580134969316371533615019942728717323994971002581899369088333638676154996727421550673840055797983779567034763721300555963351604597254156981783996767003850931833974322812812856501470577980865909343140348068913895169735355149673657380734422998310636109525362697400095796641065173570364595168170510175392365471086507513469738065141672856500308950152504804176920166686818846013052977680158965220006917011555461253102373212186198005715883759647748723408403201395466577214857568138294896707148894010067807803252425206778629937931022750305259549423829952930980768788010884601642673589484674099114839006808885179956699168415496540848451786590084783980191896293192641176159821287166991919126204707939627853785422737118655188900246081022723415813887796269845875992408968816547470455393657357999215446078669188785867594943480990521214969375250981610207539041562292218400502934567874190569217301636504787900818875396791305045940942187208551180798193885405618842398843331504219514523296934938096963543110430356945257958593702922064823744139788785301424160074278563827392695018233907391304916801175364201210868784063949622718640489228481077929740984279845695727603277466595367147098587087433173744390707533843641198515672174028577888308107382780152220553710563095642740554537917188701361157650733304232092389631850547564438304361197804242195219618816666311718258540184265996484356853757945223096256216109581759945438706928621882301630170527233172935806017925023352439636912236534801814370067934348347113171705851370770425147515787326383627379284979869514818528988882622309820869385673382209564236503174529261146426512266537730021309821436294426569587292752668018760583817651737537638924102323759423890529799360470144402285565927910342546999088164006684794610094476360478332742914592192444857507104254553327964527357990912059401781992981654390842888364952864507738036034791153029054492503301415283539552872166261834459447021107452313649469028116193995487020105722977019163267170491091463603606131902195528650408285231858011977801452027072634426649476128610122600392454538768779995655787504173371109658241387177146343733590883289463446498587351410651597535180349547045018304525041665666694085881262482193083715237412352685473462744500394465857117275764777001383631138383424622431766901257081474193578788371105162769604963399528099220669848795115156507834857629978679863850754984855898349373120609027314458086143099117053202590858819682392044107622263218887677212647654486435357319230945305747516428323716253335339508745397291954420038054524830878601362091100531829907572084658497237338159264853287539748894486213380150205590709964024254817965725201939438515827844060665630522467760489546356273121931417191028118021580689086956715169085529808851044656420796880126989644670644980210807913394969686334073985596611368725531736428739699464341576249402166599758137248050944417743914298708988456427107653243101110884626573144429866328195221519296071913927434367736172926776678937124613905985235540901481166172927985411834274832500924384043587888051943782513704946100171330928911683554878641199200788435782900697521806663456223156249075844225812859019135132732048118443126533737992208962966262557990796247923839781837662718492492394827311707500879363505624310417880356491622815574098549618005629434516638443099926208043555255447711599251437255734946359356017156631434615792763941738035642099383862849566271697590789533337022951122691844236080569926251254946531565209515887117110650396031840493498515699892289140920637911145933786085314566983395599877124336205404436887064564553497383969172211439170765964505508684517794829623085211618430573798967320325597657370188849777288881209008939784980112886556595291864919230953692249795094917498786298942531444728414303407942463033197469376358470566461675571658349280425927901921864744879156880448125787568214065330351643136510394871539126078739077070383172811590911802787231916972710421803933807974462902685614268266314521737875178213115412789273723618775275776586646555934719070037745567706773421212447531469694995599356163088319456592480348867420471618346922202567770274227081444850685890181219997333066587623414527222165220666591012522090614468030666626005539008387388060405200234929429564155208083929557372128621120136156182617275979847601301376609501111259387936980698361478550721543668486153622964363538428719204315783577046827910199959178941751597823821718813567523872750326140402770830556001658517612415242703517236195995858306059665064522385949876603032254432094798705922409371098324095293781295745277671874832536866258722221497619198754901630022243646271798357776775563473217280668160452895893579407518679827760823036441206243763814172865127500624973949196608005120885112329071269038629637111686180167318767478623182180464491121253463227093111207735958218486311728725014027762260962635095377097395301894663869578607399765530458418602143164117242748815509464026838491763903538382864388935882949034998342764917631613764864356670473208398991780367171075863644888972887775249794738569794808136432032503157467144913686962441753424217950434864680740758826935946571197666471714014799981554874108359492611047358826829004508010568497591619020391248960882032243440572395988442650311309452219477819334571221653781281375440722350901516834341530386010643770278112493785159479779909252835340125882630702909011093527799482210327983084010917198424460408706306804494252119820573246625084995819396482259898351418401240972350429854481177442468449578296768276676561713385967171911520380323359837974364022214384764659728774404209948790085657971867491008868914440017800347123259806835627804750354192734135621990797333046141344441111910410839274405052658782000839543185588806780220628220901675896499183677643265003442143508425206632076379721619553257228831140863229509099652637899511853381427978413311088493676580262880149189068886359902911017513352834809877994222719736162536839767809498145229929206867987965752695838303063071153370652988699932855814210180757144656130008963707976221626248284990944155049006993512573267008037991851330863256606906594167379646178280988837766899535898150500595022828928947952205262260301478633889016949032661685785065578158921768900319849390087575573594095195440233313984503489393115169973297698132455278216015678788381343425807635909160741914225497384124012114310632290762494902150661668067486874509835366175666939864667146124281082353907997012919064949364766576249767151582824143721245202525857121377202084484472106329803137143334299321459800146350083420650092373722467754580223516132116835352636410574097728717379278055600780161725785801114997340096426628277138032795304223273053065158224782324701249813846834935404619298582101223039861899594503563458788854404144565570842045199866384297543478202544524716919316885211615910778240271141348066788433094212447891453394760354369707005098529688655627822390421535984013863495107375580410873204951149282860627311577492852294371195362988369562226638148994084524946791018135675197386357317187322171631551134833887082277943148841583764881495976329858722609714249395295138501025232734328757216948361969638627396466432418604799092662749752949740731280200059937474533154827457170078394704723131737292421164995710503092072534687453021355568727562865770964450217491392561046323640366914951357978655275142657331898418431560107838485244854072364559287743263068980869583046948019873885341671342421558757722908731227762555952763532863985410993531799832306333395458927828723684894413669818138772190708191410460523494546834465752868419123600725458845084078278712832332059118667626482843282110823073742158188514779330717845161319365269817785490500815279513597393012281088927886110809967339179807593919699909973016634541074687993992606801388397729039602795154997626339219289226961564958058307689917887203080276679024352941397647943035125532956242442482373894070861564697872762253765893723220407021887846000364554104039723211601489122238700347175135189286462999929029131014433793746747243594782030029431979740951726971108905248348842266261439904718468071800603250913233802089337679694502595273029606549635700212534120637824118415681649193605553195593938667344690495078841648714487044186009196705277627100599914389787889989156989677752763740040856148330251752545130124700013221763347391866965248812863955162881844853432247087149959379079255700876561188646803617201102845654371920618359614433462963197768638215346473079318213569649991833525344126691249570889587095104893750892917405015955231832585209320700246652234117194365761135598468270733756227713372968706085864244152119596060273063811008120453562819173946992710721621364777533959592005809962096980329644977089442457373826630530651551449610028049203140204366976689574203153229190721196043432186165545820732402553595165835125244919816652913658775931309117473435218883737854615714360474277251958018026921411724914964145583131904838595814176407771681347087116941804769934042462427533679501873403373265048675673646615138479180207586739854053848065999308628098428983489710320885042456835915931684917403950672064865638610312701825109148201843555326793617287319325146585333086579995463949485615075809778410905216734244893059820438139703865825742402393890180620642464652336979544420903770014237712489584376483404176258252398867618291621484793147020122402938723111451762154917918281724074488311139034270677913473992609031833456951511262465230071416175704109392238101051769610317539557283613983774410719828052611058936927999621521772367359535568984573291163103634831256154047430481647037619348181428249877429210339842511553179069469810455247879353989580921725735769659762404728944875950516875002126035903535085607326984695129657775446067987927877367780114649565819806161336068390754514539037130979026305827198292515828024466426869451878188701673029951913005408847590629486352539112499252576330733248804119458738959323956899727869057853247325409860840828480020540637089184923354416057082666868122536063831417379542322788633467632611590598293295719188358406117238744131532231902887543381718870276462172628753579255046197317998374683398231679728832164660043360653541548604236962268512729457880130329705875645773966185983474079051378334283304886919537585536205807275320365582204620929489392346088228445900797779612206431880768477933599576351306147676785437087863057540145996324666497158871927695557222157783411287401300190562555957290576540738055998624732411930324251526062475971160093351359143564203645541613025492218185522504620901346914602685094961393182727127124088760354073427395557948735250191653397590129956620232748669730759040848190694891777037248750802207326306211671715084299925986243334213747979775967939229114221107715307311389726543221495615802190420990206487799157053353584298060402830369822222082791254522006578199394858819779593373062092302278456212783804756097796992358302711388932158830891239633251380050664962066239550507788829779224225979433934850124008248966619899502157417317163043989797708933230449996403817252703018982547034314743845809074600812197818937230395864678955031290511154624855980627368922983886090548937967037737696036252296476017080717518886709874132840818405725551978588088566761467730318821740646516197044909050386451275029435063504046580773066346831460865478530430967106535775121721991435982061123258230980071617604058033732123019374557657244749185853451663788802360485634627589208166198181555931260015308069970859863742786184638677659491040781444771344989553934128073003368051051375004521302963749372558541151601273929041469610261005344323631787472677382634804560997775434106711098345216858357025342778650639852124672374757116957127990932759123558423353425083584768583383829185281191037604616713944029644781930403724157994202156152752110659360028160554740139842257696881043713428013435201512826775491974246412841443499404355374807970008826033040788004210230526578324064313259789962179401217557821013046789956691357650416021117128910640605820526076664467020685785640814440543886300491168934194731158070405601952388474523110134517539613005592844527519529151227274904105664286370002955502613862968913934649889468776428080860008361299235140663792982449331876873002623815791966136554007458487050654760993197383794593734768949277965551937710054963546633169871052838687282148777371216824568919347744442491463609186537659694879843550135229151168542284655104008397881435845363606769180902471075013257893629871282961907252708200703312563964768092654667468988976673616634330953956829769680034065551230925891847223021938956785174595206504064157881413863967126292479505345252580070263936283203452533784043445127457468500262926644512432380566383106374528059377270207684256370217819993611939798901745691856407775295805678567706159202723614444819305649998469818066855565614663979507176911049709618151511562262218027747484332770056893667905906461519919272826354484154761939592125689755361361910245215824848573148593124073249903736928290347285549968764598534597075286549665909381905660953870475853650731567993409889409061524537715037243245513398294584825895104037467009280996712350184842735001619300765977518161908850234558092067761858104615024716261131111455839017067154507584918715078902990841076935468983204176493084072497094804415720476567046921361061494223873759444430951730589368815247209919873553899912287538113796935344553589755599709450126277618422167823899551633836299619099353791423459949456804480667288815452593971699733193240781508831728397964379312151607910501903856234604408677562019023821790479092765375866644125697899784454470684546085431072901129874383765454417751733476884043538538850792378205579343342858354371149642275215624267266094741524139698087715206748869285848113838952586954176324505374633216355162233013737700482555982649852594204686526498935044631291517139428255924953871335355573705145243125796461492663063602585228796582776854724022257143905002710866510309853865644155035207746535579972995259439106340738936507356921363309167814932394972679661728327813765130228332710557229610932499633826124143568509684762652559438686065001378188448064109357940732524971939560066628260387368817295299044021053668742195078448850593204992131276517558888501973714514234495413062410825198485007008358941995136058787992819415036026915337951761597490837131683395885980893163357121749071564570647273871477944328890955366018144658342729932609399258661473584966413268478157730087450434061827616184932539433021283808408002901547501458326571980726845784550974541693617132738911948027831833217542026942069844649407414334314906396331516522173656322596195652184817474799958875492632785169021406168570476883077479680271738259930829057642896796744940960871798954154753353025427195260693350268042624718096321580037462091419865029470311780459423939553255010001275807236289804982364169351363563219085564598952480316159894073465807637583988184058919696871677061317745088228354666149742035697288218375979147739714031619902233141534939883195527927067209584684716933571152062563626994106489362767890976766134261893837361224371472488236996063818646015476397498858616212211137130001373213304654953030015284206213987319834767608615563489079660931469106499071594877098933814313547064131570651276477997302005178300365415977891109041430387542862482726953761824360312653353286985387985992303456922404215449760610845852195702513592262901464646141796788009626781599476561505222003692052394473592559636672075075613292809721387752094798147772995288207334609138619507512760060716509042574379651982125646661118598661674629436228989330795637884036121291721229284991524806818096814885567160086442834786294125620788759132474709953767595870349539444052846356389035080001078500853246308513968535651578181755533662968572122953279054895725555831497647590575837232090410514906409132314255409595540706130978389281483800579188071379056949662010277730039680750029775140856739116699989229249224670966891842130246133302527929879631358758003508508082760168943129844224123736792228225504409415057924285474487509320415721462031075919268929243693779000925348399124195287079796275321682589920524813177540024971473406555855027800891014783578664713407133503080865957914620516689982208800031536429080370604075436222159249997387132830350707992936995110165037419022131865505065398786471988923102652296135201427274800275917777425068425797810167333404025104886112049034528157331999871315540980612677917472832181396067091268703922038994632897637510969425195633493037055728536928906477436136677800540039255734624766100187437376478445173518768336434345336889595689319755453557197921628433295804565679750913194141219735014009044623515382114641794300816719833803942216342989984675063608682283242003868169351977778494927365670286266494982260438995051579177109085585702348782544560150944433382476854963725488715409403426832688979490620585138579767983305448479966563490599268781737802263402544223410227262675277581358592092741414733763404158791688831074738589989826411226403941269244676219418151248599715251041109877302134700388374368826326759543406882396332556537565965295299962905239925481121406597993400131472895061670038607927859003013516711430567595350280841521613526062238787206736782831444847418223612325995262952918661359336440516290831201930081733715749726400285753599730411561816170515194623670774835776636049570353602656019035448667017396186105413257572886747121021505898788166361156369796437916977584166556692331239675259291014366249106282326623221611681524522551871515266003789508252181030054470930940796189876649464967836871307774191054987915613747121092440564301717937548911125813026998796663963593653136455714071141174617347573637279520596610903754637399040182852551921596242544926799588218936980684936067725931891924338386678912069993188847955372160871189135027050508090113451798369419553186440706217534268466771813164506067232314898902042145452099258440436895002202823320727747366842943547835977959891668673890385869384297980750181601956501574541723199561824248629952066462787027513780045619911667244603896119690874651847525425549632914624310795956019269510095266481536045882654780657081459878600794174392009083305610941740601673785433551256741456065557450814032466766944297980865386363941965525144372117331851578089034238128951318087837353850988805682010071774444294535514013806412273543199129900986827540661991835170752884676982905132507984542963695044406155622167708738343479894623138357099712569817501699579785987837943553929030442174858944768159255461088784973535832012756892444776991388251083222133433074196847991462550148817230752238483266806778291861150996011307434988445899499754265959750175206517674775307898646430015209543426568516220041252353532523087180809570094205763600865807466864312702642473564848555250380598819398244575197707951407903110688438222396084290731972266823421661966925604668493578397420709102704500771877852294880387881900846573396165978358651309834742286847907936582157883202413436750862030338680256300028747758608681827907968254619847590030673716995708212990846508390753598755693095292203327234087723371022393975792471292406864358411724075837976500228858605612372552397325006411611080981279718798957820521806967444558595232161077300415647303086952919031354683614459841347737151564914975371427697969982023709919470302266423512342974175866393340971460502005369235994861131113997488404592328924423567174813797622057228756890890718127086135665624368925821919109823371618860309444269809310003715071751054921896265055736662660147394269150295531258771992479283199934900413745671733822925239434336510352087282328391734800712053911382526306960370155867190593886276370007801442421281480184960553317044909147844060424827456057056310914531885131057729808364006199050846502219441787418985927490589265346472077468788822106795233830712722808472467730202510290405164069964843906244123418476698537421411348343524604648769660481691849051140430676515771389517003088078351568592996085481766012835317197859241531082473286618776827481724212029046313941776506075676208945654081910182725590663555142391338085244244229706054567549367885765957690837889322150395243150762821779526205970379208447960599894225004128512645068073661459708961718833995170894477725625468697691731486443315629416521169001813893616420553233221898887597842918081390970727944701656512274191995184118505289276252482460333589895279817430691411932706946869223748418545891514026203686194404865719414519066222354021448092739235460214546221303935902683754409727244650975785073008357704141296508753367918940920851088375356326724297376995990620498805155693392812051164355922911855942378457356868186094824925436830538845188190133119711299728208931678605602780711265594307442729001780759264059906779958438667456648260945985926356888189825330202793206284021316059968226935180534918263056361765153573799911575622167093319246606516662335062684313676540083452565185911862076897737282914744938587947541375709277873226064109382340717542103896795886116082009148151685742328073224639328839711589003277216039433650705010782381728689080238203053742862006771534288259177444381768495731928899624986027756570951264231155630719622282788537528302481413521280003357506738762897679460571931394071203602431706850440169144599394792293118292204857541557759177489239166028622856296399201761454059439514427144921180331973083943396317742307979899454336592084915699057418826556925452065986236791459654074027052816950408646027910253240856906702593940659730396047413029461584917394386152575718838909175768313500620384007638888790880172641959238737824229782543336775370980324771281923453149604040866827338410636838934678724111681674447810083956570683769502795798562420204231515140076902047880984928185673871208886391992316141096507467548979895790010522744507392117388183468023199834569599950479722954472382858260436545600564272259363569975334326042866211687806438310384794285558469652211791553489234544161015126354949059182866624501900841270329873821828341051046234726440389743779016242516934740750199355136446084624268584019922542416601112978951776190216385207084253401917417961817150749995627676829639141123273570856479243199816677907924974790246976146807888895890006316735935180033840245339350539570787036870651620334924399546462259739084763855105555673147736935699965997030509878744718526202703492804022286168874597498743679191512596130726790243619523993987349665098312310975670312037034428271225315719359630554954906711773209979571590057295453462509116819334242278217535505041121457708258101223647923232623685596738522747490978548966860228292355323650624645366302274738438573172768747050731757508900245469375415273057146068892593334399314779874803172926612380675292392198496490002498604494190532625712511490718765089857063648690267769458499231876380014835496622361192580229814053531688633674802280540749361062111867546706536631893497808593534625816858736039924809207602623211496785791820499783375945385918060365907233664579761477774852652270483333603412940353427450052391682883055517189336931014841953539485611826571218752269577204067864848113837523591377744622712047426545504526962395533351911363718358436124359102481924822548399678957752612776929834931649309747038898910581227584695701547632740705654178928600652682849642737874098301239659562615583548172295644006836629251611773321050169421637136972982755556939846292207357968512839546856707981446397483499152493382067589059576408421674182983917184179171266564272003009128189043115653228864612159522186986745047122563159771595446050330628870381498830659271230391059679791570801064365631879255925059668179645844319389382432142638550137371756397609561953527652139342911692301675486029171643280483813447178573889281311697049685773555119731451949454730671296403907332987619615482803832006337120351048424447006664925977931634848337589254256068925881959576470656614828557169319133240096935893412234576029416022692291159767797738713775398870752584903068095379420283326599395185343386882518264545598329968757682528384157025683335441653120546981706486210010769150496828954394150288639769240763561044640836407503621554098863320642814051022871867261828008381899543643843633969264774183715490822612664535726467285087608116927318396574518935287920396077538046252797600518567158548033081000080015934331250448939583553274720563352232353786314144106788756516368419931309042078226614179514258540780096564667479972687573787462020391366423129618773416143384546645837261947416531084853559196990649283700739106538323224103421795934511703120528752282932602771484000705126678368903364135298886136467271021596820775077750414057554518913813458045738781190502192924731227559496766172243577141749643609304294157175106499740507508187997206179805927899169022332553423634098458500828125732944377727234217108226391321017313793775468405760548715087604032066010503531868497104798068964989064971697040127170650916930993439378542311593555512330719771312871836438927594007954503858031315410623119459905245064691862798412074921915264368427540358845649375680107466242995665547385307426634552043259811337163588607151039162280982955559073756592185144867285715099660044307537479152386746603937313939459773517091276280766947668563477413251415723956762457991146109896208884931161402354859972369219552107152757126564618474383957032630345274373291933633642952308461988756285843639009166268547947914583939581005001388204889694680351102206682155503985729837408224755603793608465947538604353571236147137671141723415218624116709827728857541938749774593105174606651307446528791407103637873204281653755030098282158691739505357467637920840087014013780698636166421495839206979407217529938137399008368134246997135515504943286534289871706949818647652139858737450271636361101598417835736474131358532371026358934991114079646974053739279079791972984548261256529472944543302906213465429369599742610545970952055691722789787153550524218038227157193401568168425261055654721692094378562291604735393680668405208084942986671690204668967493185674787087485462695092098523849867757642317891198705207592496184202019218231329244998441945036475780100510967305030453452830250863476478148282156277343443037644333733096665070359983516410582982182979093368088553782862920766326903557636805183260394348261455673308884452166519266470670025526687890666155853767561053738810202067855526409736228515346903652922199205263410782277316970639563378573183588783239479335238713180624425778540222619426401838854201468983222266607406024904078489541565699260604289438692667399269654281474324854813921226782396052964022664605563582312506476685758458783468049830254440300144981887732608253644798178185691677488452780759634473835106058973016814305361978550110851854234355993713723372039347088253312819804087178465037788718179682405214929391584960177835787036385402720486647361835342775395007744647013358016667994908553345047861268369982828770570716298104471791147418806067122914421612108155146858854501841300388713141982213874138894250050146568430937131320393695970874846468158731914869880471733686156465969210280900768120508080818777010287499473238547176241984386507333303938773520822595150350971094224405566778737871646328215622822937405409702611085370879716861038413403883318309744511936417985152142170484475968326004688953997423765196793102048194087126475337067569431704320810327528281821431956481477372694457067389274263210560635543544382374879908433313266760455014044316586060585877842399608857064309963518934676399238044122164834787385938595821633929670829052225501275151167980588129907001567074854635049051024336531965610644683413654246054663859836482166894377953742394505382965814304930505694461238656075234996653197524634337324796804561370074156312123210108611305626064273963714876672330605049502517707897448768002697147154483833890577167068430677732213738446009451273168313052050954512902079494597581668764523471026703173722835038051280488406071609652952793150191682059837734713617154765321971629872507758557732930906076720585852679256283987441997938870707073687275639740571119118916441964734042790498815751434328915134930207790580818145293642389394560584841255407019532170286984336152862342922025839642357451206033407173749032837039712945232238034272881836714529780985292489284874235146296222737543427643289642475323650430467353762018356036725561856206581456381531576223032880835847797425239209174658228630800876675771736708331204544682952353755099751093870057593847155177873814320314498414716153187855902791879515035982409162453764333207035823210903193698783563164271544171427565032891999989424818392464942146515142030452877145283433410502179864373932558989017231561143912772331278634297364855359641448804942631563293025034566111283757612314674997764086551496421040276325386949573119898467092193973315357303087063668450607368841952314747158600443805781883625723695221132279307928861224260469356403034432039374431462413869874555818338441706391128443935450278447246315916619683104757515465448357145510503097316631426289801184878620246113309308908205568417890461739868861136374064903617121816570518936260259255940293183389546840837529595132593488646652206409369225382512901787127772605131854384994668465586892025199770247793301351738670692242358462692647360883049090748200415652496647870787591636564701183238287382065217093974915528067785450121559057144057592318989067638829281386595339702138571040383138061645717030442288967182842908389406118597820367831996641285215473554784111862865943345162324809044287812947048988292986087405825393900945837911358768328406454435752530432078600653200468059575521600420950970775814759071996637567299126039469624772144723871405773104674074864066932981513217260937019533087503025807463604840918754666095998197068502873235200958540823315957735348072243362928603025933856560836764771655151853236765053677127669192848300826965558813888206219372513184580436366756735382108611995671580411850109742429525049943273176437847625241474385057838568368208372835325498677219094920931016749174412038531837033858729297890882032491996859118710802687636885268376879382536477783966915669212650741869056261990193665155126677329511840975337413387643368047777285700331613245330644937950242857902461535293542011484303819163786940405666395906570786557042195891603045662005716728950239814982526384584110231617781846751652902659107434130612007261712766642131700960008634859720589018806106629140745794763267335728915252063430397814059018957455949331519059215310865429485730074407751974064385994885953308005791739783720998740250603076172793524723878661535696389172624859593792572629476513927857953069162272598819279537012715860838950751151377865670994090194425552186035350761174860574155653854581737715326371521638204480672755745990098670679069646036447508153305021078719616646874630552051633471364022304372598757528474516258458432523880088046126306968237993613837176249995181107909651699604831457002915199279693813015972040778354222466395391547003641744961085975785378456524986216612333923891508094086840127733772039362683548691358956823312821650471953250739245243427770644019279322293155905601427299809618489331569236888308516335251154653553495855921607052476826994932752272609336281266732073435911335854301601988409938478728584634935190455644741853609756211018164684523203114234394323246595308720897791254648779791328294485742087672101960884515254822149386792431526410063697506623174323439720352124878211370747565116849297111411001587200076134595539239893131141894718482047868573925921587535487854726138982978072607330305437239318897085049897145581983640284309387052852378677995597952163857095554260795244906325381940072942461155538061082845623375949838766934254326593383075928138132028974080779661231551632830394163937725627719632807538113345237925390416168274000157322908645473668342412718586139542892356060566594153454799958039703934030928150819927160220647693491375263865670569311480265379162157010498045151932333532115528370508149650501696601678597688125296348668658915239883393746572453206684562953778624351685671977546659847348986169552045962065083765029249332692993553964187864044580267253509995669438908168208910175302040390844541199961054630172450853761934651385034173247751828954681158324250951680705757894286928637827535314576097072333463195230865590331821058056000068183073298854169224696432572564676414989627217031934533801304228253780316127171551418094512344459334782719746642055664035307366482610191356512458784263486652820949781871810486394294441389772385158008277416293860189913424580997363579642568235116927174693462014160947554606231032962800252605934335965076922313221763967287363048253670541114484938099508073454693544149327903903129308301760847566258966482845717174188507313748544822477903072735483476088857518470917905643469576802966201350083012633864936531114128972843416169985964901565501098200963118700101050338044254289280908691437996125985905746441689276737669880899366616643935334029109251099968401870467891733068196650349459119432742669701975779157664823800543704258237826875497880470981128312728411813603166715758947962637650884978218557353977706358937143496897878185810228704141752383936501543287904882777243506557548400681554781708838822954580034239991418521797373617835869214023736135789413595217611799621424356008362818546766369258959849327303000899760073832363217607267467111500515756311839698630752599524831010491578436400724873668135571531974887479596129931338594670948569840634629733584486095105828296859922473041195775956358054689381089935765991181646313571970966927465379542345610424432327370274762387791207602670155335339370019577139960560090324859409973337211768192317984641102759822661092018101637410077955997692538043960468955460042782156143791440734024837699040424963880440916989574755401717590912552956499671592175068821076926377822474993557618676426061636628550330665508944984433658527794854347247938748311806157439721658576635457685961046349153763786017381641970583109024266316051404160116465124820775936870117259786818997552225121894189141282735432829698437183394901578241545688055722002144875330170336273325416954720451365135377710365715429571153251560836682565016653043939189122058866903116871538986745713290601165328905214045708205151871197925998950422521026207750384914089030185950242893133637086386559731181726881042744567258151875640500378858346492823955344351322988598325922089838679337650451733652144508771015933756290871717850106644608276413284342137940209677136174067608751492077749137404161105980124971735549205558540623515005477994024708670268922630294057305834560441427413541245521387644190806200727097368004674587423673539139102967452580155637527579501655579512202587077477494821156586113884490969257468825459697445414961883261602593388236342251067773828172337051339499252950815709029469673253561902092728125990743677068056209576437029487163048710874951865671309108301153825772102539552219816952080051683798495076747227658131227144295413453633066835463650170431247236696683115698929187524348845509180870042432165391156204232704920801969205437619620835853993393170283103298748116695872908585042815721524363426854904432634779239396865525753571774381354051536175519691984938430377050645882177311356976081134267446686527471040891152882472941064028781811074784648730457276518251166246715849067316983009515240058512287920383702893743040628744693120768354838649958184688907841478053282854312900433378053695952705717489902343860046794863690961330671657172808786981850029780053686325462927186116059946412808380394831050542072857106408338768124503350747223636962383482985925154622609306409594917609194410973737678322409516606697911696616694665292541461945867305071627879600690080469881119319776880818376191376775987797598317868338752621837821781316542110990160050974457832489568684336931886509827412196918243357951587597301616756032191645337247978282859925967770333946990623058991806020311248103500588602474108532525697456602751132915155472080155290535461655454577914194141341261493395841548033320682926206547257812721410804475009518535121797776379633644330637281137531095049013734367331954765991080912868715638666133771977975650541615072759418713645706122951242269035236940275049943380426604348572571417441550422007952248472002171102491490743137103957848536714265803691901786810455347707188719745432318056436866461289086618656382818134120436094806800245329040007813406527352856664339415762584178538510891515977024652977474418756449013323281003006791766839082056021057406742304396730074651860480264816597876389716679917803278400167393537392760487227205754299726040119190156113141852349450522089395142677374843322853395729083318806373474781955713236714687864780036621928753425221357488716369159432026016953611020520542702008366720983134042987983361619828073539564657846643243631802040641417417882350726859299683010691273428584246973061051477411275252252989870599462007467461499893395159275107438522250525278029687823733922317006062928967846677181578919530675512550520369802308542342038333854586974162784033609212159166241123824269579349541812345820341170439739599675357063770597865747574242382330767632708699731367643849060842671300812752121749879402750580547317707131825765240080795765035371127909290254617098642656317408030523623717744060549813245307908906999587649343659820138356724209830143595405456001561050961695884994770647118631112348231011509937615850052377276174307889584396212279308521404292957109907018636215402210656705294301824114900066411958825130155700428611541861429663058232796250401506312903538395791792676090544176129385596470038814980760375735578728696797941211178921126423118641986568984988997036613115882264393591742198681347329492108348186173379598148301445917852522659143958958848766241290706822682507631608723521737185567736178483268119994185028045634833070141996943361911875451284363642793559874044683361743502352889594202414275855514000788654242284189673601744211509929215225865637249040386150182248408584240549249696589400868848961780727274072532136488364305244615445406939719293673815327561143458697461149452561206369590167041915985309198295925301266085380736337354900475739272955289250842421372154492390786931820428589059807784040263974506975331525229194064724931881101853306440383812559581992996340522012044172275744362934652981578859971275481665947771875369242859643384534352098933152341376404719813855388416022239224130165119997595056377265959114971227857278752394539991058189124334493804282984280250272740338186857344552344806544958064936595253176104449098673928776981987984326607280489308532830403947748518581373865231478169367868367839894614686943612345027447217424197004800050653429419526400268139781945865060237255978187294845541439329742884647974066417523554267141606793894213512906543391761682685284373487268313196874451131855431662543272241615005092033398278890527322712330535442269743024328891129140544138538551287285547833905835210095121897541212970191786135759401795930042665890869071897882021252656903460960081489067022880194229711405806851452699216343627991460966147212688967335642907298812212345119895916883194251901159354044786831128414455044558321961041626909319224033788382307931223705377065096841101426256894572306931650537640162551694678049323395734796679114330077443219107727889303083682470800419068453731743295124442925894194867145768944391281267895807660999684858124218897871781286262093247614811983467332564619637571547507934912954929841849920742051757178524562838260642174525863738753897449443767334745574756308007423145066894672553269857470809280186171610986955402053057203573547393138399920229431296072820607211715318112659731194916063417348927198052347188747505140837444575584019342820172492787717196223370040911567065769103636829463140053431111071778829068355052093055041937333770791075351673606717929234316642572058382254024315584491630017425705974688093920889453813000762816903253904697521277976386778530526855429870816592964025837620273889445788573684033959298925018168875030644768927101604797663207090455636215127004662631003256977591471041928334623136879153603710392571506911655876727867145912387121966280273858531263431822420768884329447110580928367374981433551958162595332943730356904809351122685760600649792413410391268513963968151295837285649776850318015111237217498766839354155322901471044785941071556256254725895107486287770164301436899144882694195979564467394129514111603458440217168391003135322605846045981524323494342097813917145166997134279347580233820026240842994281528861954369696423616810347347883774715086029289090551348763950692925714453454049763835697822154730619076552406514216680016161245224567662445775202905653484246177220561874668494712859300058149108855190520122113260893079389286410157201381749926255920822099580743386497012922707528084761669094901193304430547803318924073896857038222505151330896911907042676828170092305428272507517779737436143422996626392346608520988390450154871096757837163893723831189633240611068757151155106558875630941058650776407467202453914324908173418153815837464337316043534737838592810581566316026921474298360210806658044275359847529456951072394531770868878628342451614568636314378204090384169049711426865227025526134551708312723649092773844647480466411659018700999329474176321895602806072255166878258536408276157022112016952179408900268000044624987840227344746827305204432045340263742664545251554638922841324772005166815888451217912749831434260220179560268852090239709522560990469876732650596971624271284521174826577923663369662039856179185510448891662842283841735885397593190857856871171484860756077630723081959714357991766928147744609079334805891564286648331558200475886341663095122794757490433979910091677862974021482295620783650654794319646965268017272732954049661763349348218690326728804775825455001916128240590094655442378252864825523520411884140405349591395642888478582219360307734160334764880097921427720921949892022903917901859774999776463171987908004771322981382465319436474943806888267294699175992980294632921829778222482572842743299436668194117533783198195233275059570296197673474305324796651307732037636131195320490856992972745860733878076967963109935689651091352526428193276805346960367875160651615664574826202123660000332669668619402289366160776891482041079103552812424019816716244533938941392816114781785622540746952067543051514382134723014425496156936483668187290648880018382138610984886176313417067290207471790426578461893659428705477711921954199229913526669366584146836988089904381854275317080924777451713568206882401809209244747578470272311455335094201457681460784749168235852810609117906406926239564783016348635351264494221797043466346315788816343516545023750854001033891980532419597345546444591553709467277367331998052286678096711907820018592194819889309317615912433495205228804100138438960202465546482596905113462644654695787407541582153314800817056423769630008904049603863434953314316029581847047125982677474300736344901025796997093880869682859965686262402985452974081762272280891761931636056740204865630889386362980681782348957249072584852760700983901367468255458092548786555421349565296987262628298682126909672932959309327896067266236680049965173579072958297341085106891840001422427235621949020739988753267413683949139731802343251685847086845269485210882757825770413984666884991341127190167284049114062611297769356934983230227232531686587881830987117761765445354922052379576802353978493146634370972954865987440950021413656263336248862835996687781634464981660082312916777106078088308101642674117799221621572644654810554790522890795525385891384395507672976883869795677761416060468049088424059389562264551231582380899217459898244860610750365898681465389884115284197700854336268790792446250729907899868829905907894630227095297864265030476101677691102835636897629797323332397485721275246564808459477092208237003250610299936020339311101953273005304438450905229735012079239479211301997650580318878345719695596002971236239247552349374572453439343958066997273098402017733201445311865530380592281233500000430316890606975400948990314036689181006464217354998808244273448372006948084175172112199329222682240023104155824086165792616861159495081594004194252170141787283902832412604571033618043759981058071798921460806705239705083682718895134262253756173396652963749953503995342056647721516415079571950667899363938733321005863662000139340292049924345940554784024636328465204892560812246306125441653136779572779207144476698680017068897294361703827192179838899232442632637243244649550292870622164282158946485394877447888092007477228865374616482594655142717969135509278221290496285010352163896755288053336957572540492831222026242324702316823904503032660974072737368646039176747615740614656251045713775303603267685076287906478012405112076976602244056009457423499353766333074799906110744052348900453834847388381631839531595194238882210680328987745336595099536132309897222493880449778721561461180662907641196817895520088190114682401537424148866472742504034779313288313091208193517319926619404550370647205863970590741699878532090338403548210765000379085135207837973170425298228411111156476083067587293770101701530722476799882861244847382999708862051363956175772034799575202627158736282052186447427768925410690752819632122053061169089902955586726552784714964428056548356621353291484172136748632172585189344730087403794356889924568521975742568597220506731187086253911740214201600378203320111184226192077151370143785805505376450170849449193069830557360327087319817895889774608102221527873239980665245336123108487428235917418115023316685753523146697583057278379683860249990029915918983529015274675500589610017264356846973733916600009734600374131701899319579859063146084446102999168910110435132094983779762163141290011300487435291437434385593366707603397747040987113810063423091977788239048299080127650406768676513733663106569450916981226390228813742925585181884271313252552095894785265659577815240468976532499182527310574086669564746366323790750977468649465956973995973152225165667900898162813997420634730464903685972685636234264704347619678975484391247343391504234209790833377182730709618539242424470192883885795116871258895634902133419367662156062568580694219693032111269370340273080663489553824587004113470196691337656895549065395267129326976990338085738509740100155421844201264600758441464105552346171152732187560519113529995320568460643114149944085163681877958853931618563444334331888927713687400596178156591193760695237372383069522784530824069772742901301221802907965667450713191252183734639985211192560271131090407921715280864906816380995153349668524043177647316864080660266195177283737035388424610723857563632225449614997243924461956517587139403275547167775979146905334175050113872128158815464724540031827156053643144513121064462296766533368166680845328271085293363238998814666932735680457553627227358698860256520429269770166407591574190060251613554780254947221803907168797818538146433606434658988553524884129417433678169269781076745826490900193994318901174272018117940681633243154842429149339331189341515138684079327676342736387067033924188549254110815022761619706646816535467204433633893131477883415536679454044777129307113897989260331012492367801264699213846285953598177102860048051473129547070428932424379995281274350185603655190603196889443998778198778862380875568596794235820189483380995702187441481162123858215513105527529404188227645548195653956535421201570688235593948214275758172074390690553541053504931124656409892884365631770952753698345353840477773017240042120195154459356854236274937639641459801306571040601600788117030760363929613271060418154187475716946292775873609117129579309993947082742926434837809430807520304202301825660253498903603896151052369352305591838160826632581934427092685966125660076482737539194819262518988730429449501918735198033681021258851193868790115864365381605676666933992913139658374061349669361851646159559896595207194163312610050383847787548577047613264602950945037761238537456359414524408188413131889798231917740158967261658467655313081890043926670470639628509827585730779728917948051709949610828872567968227260277152358295248323234415158973228306702838808650162347514229691568458211687309449684997182458722334757553495010608958073545687315857681063791711411363712300115620177830523251301513403052025384129562466965514694268952778366837555164558926428346471081592636321665448878558076033384451671181679797228743979681226158328476202005025747537800414135620880783329654156508788113633643348544908290520268917928485608130957318054922498526333440167767563598490068068437146798464470419036465125795396232935434043306033424424523733745692623423091572798730977082664342470694486619314723314129550856698959409572423518565879649850608157072036195559834905392521817028462507917941963648242579288300881711563225180941702424765345270711272219383560714502916209297196418699595846129427551216151233916191137124879538342066096280125088992559702450831580199266503022782924004288848931768879411403596399243845513497576446523462646590182181824038042623501834994898512829483671646456429597393425470660708136415250339310071203604805880308048683872677926109615266901726337240630662554108145433908616958106390086861003258130670134510394285679281261374995177550527636230560719769603676167849951930855347463942547225378289770693824471608694358765334531536823620755306896574520909969047242897711607652881253406465395264192274862496201987917394132858005615738179141681137023512363299699526306651482254706375191270040863951634375165418479824270717747016726327340796704696085558538850697934041323331650266529258931172450412722647162156059579245156284163792867992697864730807306345043689234702486970719516193768581850508932887169097117824073654056617618820028255161772362059631642678127832017881856610638698989017388617935109892447076417463598607657815992529697498881718558412099044857227397144796278940286115766619753484541629579624620892438380289083305370196956316858908927061354625893452948192639477876317860774458481430627389533406921209987933788820193413167032381243265354391787888729797430717549513131315272178874884963702920391156116198985221171902090161479687886392556563248064046212337301518021670947569554245155333219626351598243554481034881717498638163804173815096031421334698947654662009330425512098841516878797289689408973123873155108261627435415833634257837589291817374689433920294262682832910491011630621984347919736287550577862731187268731516461957935660404773385070409316579580156713802028391054477058804071051638242942567007870405127203918862148829511867983600475120094223689260426935529540352245661695846711904176008503842580082774199629871955450568656075575029026226254761976953143543636525904241640187973866622617802285825296167370285027814724647078822238794693647085823390288006865638323690412478760324608810635416726947046115884718060236015844738784027468011464699782161428682626046997385709880150186484890978836597861303946981633900762238469012040348483974906539098261320945614085785141336247937815843252011146852546558074604523562980509437660462821386492615438273835578857274750971786091988512101621365574931420133232762058405563461815873889612515385351151719147376308311372541979028929357996373175121587291967987683641891434417382325117507804963603306233929376746857107976176518824657464110011326358695449747317129357924292572909913374699520635140687200898827196073224998889599690573427507562333739227897644892038088596526005007131738177831043477744552214010648871133465988910483926492534112629561748956021837743932486024652498826825679995997257710967329711111313182232020287008683791539547711844758897838838293351398220121097737409927995281435603819753954941418674803634272876227796636176585469737577697203917509157212629864755240583375739842925548667919348338941318619276188618712330707095538851910418532551396235784689943289361653449233742988411709169579924995682042078287011986292570184461230947787823303058268624128013356922117768514563654288270257360126693778298403315325993749353930596544960150283030362964732758745812064893928796255634316740794305739471041837162537045447590558399402847502766301927735133729097236761046537103923183594400519643639026909271968906683253529344693356977002336024086190888993193341492115374510550160761030301518653671875977808815792397259324747840888518225923481265095507707766165832370289297237411140267593833504349150598050578624436993410667935571347667248993819286161639808066461363046138760804380909854637949064702065623114308640632344711998682824888877229376458011797324637705248930033575472774024943191643016543513632865027495923235839544510562360921606088327566117190926558506126092362653480825993986504176821003473016592811724923583425703554514517795704326308732694123972015099389978621598866992663278066955197783955063309968625989250637835991732773374475118978173461052863687544047316233713811489710292640515877027390337549187256020031526842611889371895558654448283552310781639121559652456254573565614315758690844542531014220986608355436133243993933665475536682192749357080249617605440481205889625816961056800858044231518210436338402500240740986868847079826270975820930901732388885268670216009044944413880874277273747598044108368792996470266618992096082885553494344795148493969954305097283575830111573676843164872945511388623405545477330969557527499357984320866704651701004429791870590138700974385795817716899205482081775531123475074851703249371762889195211362046411549802894955591506168083530015059369617120110763821874759358176332955429295555130252328105849254185886436209171503917781978118854219234265961426213227013889886999491087872156324646379828869196267111376071317492881831465124030414788250812970966842802852673334979632371856334216349798282215844534225946290099648320537541763398752727053570301856091772146432805132361945449685075315772412322530367847328180242796466917124313550189404678393874771234762250885242711688232382320307130381320491575854884358677364427288719790668020267701301937787617700057988588168209208046985069248876885057591018727026739863649975673812015795509828590162546510952481541124154740975901807186752311073658477088094414883249934419118315670165782870829598343375267480268397354577178435996544359945967452358342284923753738649577030334538554466886616067565713525115279298046449484702914037073227764399759940375748144694675013356178277163644867027060731621134659898792994721990959648224345966530502883961365166652133845590556454139802771939672144398187190730739567306798123463921008915875078097653481411556547848914784945640512836255720108436758416516884727584363568505941144380826550412987865376736597891976572147221227620532638851574410034498943301823292948063571918624721552305704997681388881885862454592661359368141378914879446514821891360678980516605273428460662001128984496154231404743434802227783325903637770287851840447819382079481323840412309605645037692190289986082440473824526240469249733283890613422409444086965928898390892540752652640542492427001450164880209774139371165755191381986903514284682555654892055195124069676261583355277519220118902803630708693531195376813500276278703077142648170734613399841288092928672914956730062900999324323441121534653055658099800066686706762394883209877878513691120408593973385856735692221741445767707682185205964560704615925908805431845270008495017170698031939342325192063105502312300283457985811965182571498889755073634006300764633545996682484472943365448268101325389166904839195991884903279745497339713373791495256209145526119715945287248202835185806036711930163897086981895300472835254973999287715012091941632316405534859864257267156741194939360912044608383863571496434051080402771086073286542329075992822002010210165560264011025129716640927284847667232188096435940524094937440412572723000436369093135033039673998040992770273359708823186527125781661497693548885390225867475041555838192626616983331354115023217563106816459732223421748228960984023429465869203061131598779215768230953848641308133419859605469544916436783938085900233784335446548667742425979622782016702256706848867157639915154747761618998096125990234173165293986365777797160785005416197142696435322127770982768601431282368739928679184005710606549802777923563548360768405162109905558075731821042059139362733253896830297162659131436157169060973498460211047034226641527830313898534139462607732002051074649730036709335308846772051611750588768510851898651953378731638024199718257243116303388361342748160603219390988713716784769346925043227831964616022057706060060315334686283149657336804429990531366367613707924000756061031083892536081109623989824269668224350704098999264202568626126554417456968081334805785452914979142736589386595645405236915415332419850263707393277595123610565816729382296113610153579660256354242371473198048578546481466914024003162364298292035850421272884400129768854313351696116311627117079711810690219836151491710254440426614411282493523885225491714460285553996089765672085277818196064413238104610942374690963431158877456595228672005858434311186736282221115200861949722501534859147258908164474441076474683885490722504421340942354760936266956925814863290556616192966102523227821884278182081905915473078894624355419566234829267330769663844152833415387295570464748750689044464346523373924242862921969630820871945932832916255600127422756701171634575780068993371703077042966014835476341342308155955767105123051958977216566387125310098563209880657281758149654858943299259269680457886260524964651466623305774746536295644262764729933343365116381066481364169971089314976205039300968912662705217660751520818810486565446470938041078192714118630275423148302573007232924956398822081296791805199867169965327286727683249720796229030349009144000939002572638595811770620449809825894768291866511816649165282068580130737507922768347224728557887087614769001376186401602604535398094980721143372347341955051743127105181411395689417149030005884771306314697694656420723738528207005401883544570736509761344022843160408553892605997988952999037339597465790137884811217667115530215136795003918885405729560494278281975447053217943931690000401926925838447491068222507942473474486063674616228378217489001748074920612721764080629671487605356175796555754469442348101533874524841059701314209904345741166483568900192343700994343818773691857394543213194728397944487832903298738488689723463104793961202097177335914861312498609030769291696404340033703252379342594265453097510866084064144922734323488949922638225562816654034428134878348033150758958010821895288280236853352448379541479057241573092813754929512526512368779686658473299944463918587873093858443974980012810363436966007300443930193509949586265088623138414982772087356060752726556355238029170352959807932670106635436766013685791146781130797194836057586272488192724850153944760489920496762427746255315940755734255155577273606359849473723601590674096093270156227982915548832108103026206978712923866006857118285568794592397248002528079175684510276022934373700983112505539600432567007511754767382162961473094723225856157615770351076389330025221478207811818311769284047740905274449753223547233526628586694912701054701121341185240943751714818533713964522873088254923742715547573672603450428549330454715500747985980489279521903774303400883103228970671034715816180922908293077454005007824148888716112106562238901692366486722546687407671737629950893212124638478227487689823232697402433084986649112231625889324191095171175706833284666823096255615748372536395655460859392854954466996807229631328911513518065327054238558501421365704597666301223916072778253315468327794967838214504789395196184515439607959707380270771055431983614179506501241813133412987984779890301192908179958487481281800928979417394808906172730167086155964212354019907772296575454330394245226927495363513862912403214349162954283936419823524304434549129401711566137670225545978781105700196710495503175742600034467419350154653681987665700276464874297187317088401577381135310355234233514451960812407692009369500697095675940107394222466984847676101090747013031987822779941653958458590091990495680684875372677919828779045660602333265616753053168503513035671534396981085600104997425537838348987031950629222308444202981227249739420866692080696141068515370580048485906637003724234625568407667266738828097806898318341137990373852258753875531755745045954679779826831924543660655087252602323093168696048194927242423639706161103993633735635283377562372607709024673718444031904213580158848468819177513585399721051848115754290361950793639234633529482330387100400300376691611110013654795420939944166848518424307266962228080760109148971898114802319211113475442364196842444107382390294594675655942301477623330704856452224488809090355801947218038079846339952000841922507641376151036230057532281081701942133836274807676730262398742404881462749594998069501932817535755559177759512445266481142294291716581519393531913384446079246479739772829495926470048950071704291548198902148949802862512286418649134661091663564093178689685873874276649068661286337816649866225166204748321830822297260660801021106279629975240248023571080769674567658274795570796236049664674338152328397930571962843342156024044932024050158231170342496157433862359945535787728796716994568470820838447686867825753548686309983266006919748437209061334320737958288969142395916135457782100131957807306676193211391026377705006359544395863004530801797347644479814612328219684586979006078020240556579016519707189373374571984254207518861682541580060777015587597158153990744395826141657128329692086003689541019958499181493886057924350521567433042559641792594765988192507872503985615072696218724917991197656115549424815020253701038333488332330178968415960842222731439075532698195605814746594020796411480825111001266027346783687258003407822083286564207970516355348948066358648435851015959761257517222578688477115540606377147741937187266127685868951658101500059128500373477257026051267106738414398197351552589716365180374733885227740928206921404170338256126088999784731075326418717233277102527053015958007774248042507779646925004214278923853843512772934961074499548110171049121536697179329727845125641345634486206616125693049554234646560221545258972419987228080162379828076964501771537192552033654172038941931558804684772787446842001085225220532369159970129525928117191489120973761932594674774834322692064715064622418204399227339527907287607351650024765249671263247116961310684037479743843819480842782815055032247972697380082895114928854873466874747215198895253171138428840663858768129259352434365934786246576701766028048373078876005163101328620795543334587083394205996109981111196486556759353681450180778235498102664638347773500453040443885145029495766004598798667847832394413922255546330312531140172951783370658794071923568786469476911772381689004831040450629849627840752982697002399672319697930859153638665596773388087772581657416061005779631750627614671859985945324344094346642755990844530241319339994167356774891761098771311491883703728971208810645625445971180538034443111250846291465111426288824810526109975332180787689265253199951682517298349666376531706736558832403588407909702585875999196884164356339123469881261200367422000278935047099544321445117023942483787715256103402589328663646193385281883170925154552641347791121335089074434749056820110482451603057434381527582509968297539760881111513606186043100021584707100700126890374667421878115209803807488574048378618103464412111500383174562302107483867421228841931504928208673544095052984232930539878283539761554030914829421797707159010620359011378316630191193058291709783796751306695353211281074357646131239178036157481448475718118422216590720344899090951591508754673731058789468452797685210737616259474670106129335975097568623137037116384874613211331126399933962510700152018434722868834394766467276106480228075797710747073712997495982839037949314634767173391496304582093770574123406786736519488846526638873457967091906717540030505114906099079252786941646852461537138129195389520081968737214187828402325788622753668480186280677597327686016368944318843457621930648925695760686264523922783478476214984690944453640318176935381576268302179588091289559491314703256415186252771204870187187953034825908657386336133432511258560168634169371245553624474178126088055462535024927001474188050937638863935227513986467882911852212969047468442193031210312347345669109838537092796181265440766954251811571922398645387083534231302203114416521050507191886650959071688586115222081129728103704376690406228659354671369880437330409256644609049210076693274396921206427398683951219110123596432627099458746997685733064730630694005577700064795494787674820711268427237069511562036344760252329189089339368559361545708666386347646438275070587044094339602292278877119479734905300830994638413225362428977391435191917903144099237408410408581071010091301763631590776146697230140020989842123905290124679020317095577054996453311824980660094101594939438958324139711167221046094796653892490909295288163525764699995490724110395449232849200568236237258975088155650144910688838848086601598488470388411030571740029648828558973586073267927010144764083796264118152943454601485874212140291210567161647418397142530046901312489820327933896617103386725651560625270840032785649491409195111888142699049148983346746090255482389501292125586351573211323007292722171288036788338416208298276657380494391934514539033357072184085070315467549317858489012046547611389392674725033033089365593640960878190715158197808764709691981089561785745642502411976532614648472486489251233585598098446239380731432423981228724671195599600115643439685325634995478717105544305780357011270039166330418278020000746450530008027082617978776606336694116450552597816414857213548030747963776136889457647258806348052290245849848831268454123287042189537877322651720154278435170805847328457895012861507971558211272829521092044920502509890467524968320997055250134209352643673932828616015283171319954585264815871898435933642371457965969720290758783178063956427202546407649731906490322340214754257594777963124900895799300510486744502378303936977462313556605607826909116918849854205085774317630962109321071220853631091988233372044409684828965055667800452321702873032165778123991076103475641223966004168754500842566646386740359977264288455476563756910628069917116657119762097108824386854291097162553828933928059652445710720413640306513887775616688578401971432783846505457110474551026966529441048997756555410081490804193935391351813551086697609713639691487354203077532343875733891699378677343372560923047431403909124864931741183541146374129402157273698986804502896105611372315796638824944593874621734498573110063347668608649191248228375727716049223487938039849294219144862988250470667737584877238999697184785026440222663547932333743323806513004980314401133792423904164745328538707004225216947480749548905733097715307846526066224377974791649544535937803715014429252716258889502170809783483639061524191955785294475708229426344482498060963315113982774184650283432016117094468054108122615037110971677963377551044669777469921175903690031197570719771504687678599703812428533480566496347310424603525212436383617409125188395130634804583181721708511524990033498395537223812543585629728463282623026712561190298283998919357787770691898720983810253331944061074514482866396830510925555488986040861203927888474135176668811092198106239320052197635565291478311570549116280511225197936867838979781662203221059830426323861459343807653405721820341527518120997307455204796449979648527176060143820112169902800757459626520232756996415340902632322608463072711130920075204360321488281382235112957504402574202737585895205309268013396793478900085166774733763119227334496674146328291563927156521299441598795589564318786308658045446064856213515939831258834706936178617096626990128528194610254976307796788743449970590655225643449047019404842139634153389366761619212571175354312232108594344911553549325369292096163822821102378987613950216064885317536936226548143161034565211493139561145944143353029062683324252213631011970107057902667113605099970634813253055195815780896592693015235040901716351726827844806072358423868816384363107686950841230593035983595312720356296422594738100866488113113256097067079934845128481677555050663953232487596203108281126887022521981692113666059550132064714332411249540678489839266184889980804114439492246576213049467490452205121968109773061337299889549418631772331841312132917520626189921128973627456736598851890262916233968976986163465252326524033941120524579457856358437079432694851754364308314439195072348635025937611310749330923746453537668651144937947008194084585741247158608893282028023998270613291202930930395502813235687279393111414328128200940420668242667717278804414649474930854356574763129266924896453406555563709480402814366557932235321018655807040127300902267848266644412764114743216486419199205547731295727098320412528991066742421203265935635696372445608488220932461720701551815507825056623031572034462210009643216960618103408247683237031168513391611292884813088252508153305377011324576264433691148318204816800987769336552128134071915377357789957565587598580762084455880538495804163128110900900533835470493979074617338905929009519698021016324147232279475343347690122623427518020715772563779423957995817198135270619684845977630890527297014313248626280049784573983412498936505550498768480739063525396197635530351128611786326194898428170983249393146110445618727846867699576427831024814346617950736761470826319322582160333829533909243987354402396310961345505441974594432665888011778325859931402915694685087242003632321519791954152616645275528852456280372778810813822689488146403476638470119395640526651228595501996750019132560857535076995289706509102779942092347969910754619742799001633013954731317628706620308221717526413214987868799231601528613840999964067767547656442215052480898665484520466358063123145680638121507833217912164900822341966705071087814731740321294095929220515078176777303117366629504765987947746574326392604043327079221610605327646110462360170478363048118050007663408411822287640419243403937047623094681290397649475265660477827970904150414634184453366939117330159747811462072593850679128611360900941855023110265372056801961596973707625659416912943769657707112766844617796760510157206477542671719474465688402682144724179194229881377797083361899297410573285655815697732154081869517805235551395040239961483370128316068671116058926087714574384230175885061399734393450891796364964133457602619401807406430350867095925012282482596057280706221073894057251799281523693232172903362391818260198137664203809181352978898146127689664295453775758716982353832119860002256409821323789907646490321157895061307328518531876473977227393586579384683982876873970001188017036298154543607661685855801917700735098610597704811026468720924084129700680180797835174708957944631557153446411270298467643511338095343334799813928125963719019398120027877399258708062487385562415807700486979232331338833595917721458416411132616514816645770199868435581481164119117587976071882777789649217839349252121024608009434736253446984142927704600561241645056453245439034725694694122241210144134679545014391340322634759154289703209604798980147165175365213769976880295772573928204220452096685154064953574759851589410766111268566356372657338703788012017264908098653447799035978066944307529452797774691083886326505746243639483715561569147292234378125388352543652950517264401753064557193274059928888592590477530206955294091186493775294622135682845644685301404073212425397602688799355499848882792486202110138574226656876363916298317518880051189316278891969832315098513921386702685324704352128876247149256249823996025937904590103921428733639768226281886423809360767157718978019708245502904054168816664340948414856390003562603236271768105930318789057287026527555160108032918377374960984776142122875291490470554174588169052513513261959714911103267866607005765008006253993948839728550311443942298035316983066889928215557384231215109759237513770156355414250152184129602018754065254217248677253685042385423266272741891784165991458263778234821228629734938970801400984691600432828721159153129371745369401446850325781210190424383802875091436289506764803183830128547572105990943829432660797678614535044531259381710493882425994963749181885866219048711109875240785874982763912600663100734926549323143979517791894663779704448973497632575706587441225540124629991239640200781882391410570882164673742969952724649678025576377105347685539293067942484495667599692687169504990315315356963031196843025990067117589587750499628053948055778082483291345104347633261282414657670864025486291579334152957190110866139326795133004701221419337970678630074678979469559631497526790176061788468810467528105394641284656913306229155464632839059732230827279173184852148719783944566862604564080677412248577143473458357392158247615671984033953415563622747357715102834281472235160828733054628823610802073491288832314115555245361843418554497382217411686197130217369901706692492625231522185439680237885011060528343390762537889210231361983349436746259432143476662221623089998595272899685244613877607544907993537578706452868736334493100689812682385114344733815920735025721737910211146572436456776999564871010331269596773266016927567208198529940952917069495847197412399467985087288323977424029124526117215209963571836031606292418602047590365043745485303799801602998709366534529094132076431115655558134691663821556678401898435384696685867538219040264761516126423591185455517532229103997616399102424828041457426972364967321280500857308582719384244867409555651561273564438873400136378129571273163662591738140903130175581937460388857629607295168483892130714061351198822064335466218888951862457688873550650530271455156805164721060526305358748692219028495226370751194574042376041733049402046370510235131006210499724989726596063098374833801396385037175384857720723993376957232969800793319522048854635210361392356030666765937752113030179288024170211951998700679739511482496893426801211405875302231263291087452179648738309929322869891230511247385670896390721300501312245386857782616383794582513929923213342527561110157537799038956286872631400676715248734986370448780267682587797828631837756521004432967635615884259462139112994862335749807043099467289830153392711734849157099526109026625730877368244135245547624141190163049409573105887121321950864106507227881731646598002718400098283066206003363977636810862453681279285949550288305298165856751103408358028396959328182615363583087124769290128302918329022127370924513960219309383860275108464893942380657724393089612291319749861925656198048365180659935413142118017323538051530680023599177432719777657025021186772354081136329782491624079875384826399211949456131815836689252341365623352874493965090210937771639119902453020443216125084814916688194923356419655631789525322549886031266594063719579792742827206702840712797840697778505835890279217803191747270293416665937874074875274866537608119590999615070503354504307316220606222041540281484063564406024449013965929589392915565643918307932039784676063265648459090193406887257902903364318983623689091564290346707469500726038535457482708594106786029672790836440051136733359650301948346459112120279182038876385044757470369662004646228399801495757655711218016417861734356457350582876264378204051834391317570243079109872227675567064044852876305227996159056500575026580939542223618779770594776661308732790499700734200877927313080106233224702878817291479068996969853160846645529385297913857897390793778258702810903832158232275699281831223317436367158451937034400381725972797302088794691831134785582585635007282872828769755791737563447753541047621699384144930506021318138811846718197067747073002360297707361538242212539832481508389973287519912446065718016500954905371573798070032624030945712865117753052039313671287771298410360950277570337776939306547432075609248414333678501669991016432528958718209891126358287496956335499669336702291946936526379734704693738761551058176691213189264508490691892278240341332165682389055766301766068385997690067125483601325799050614446345616172712294099348551878454581580717145091875973132826453692043403080462372794132706928862198690317145749626407332596248936917270285400659464175618561277113419780570864356632505255591865049849752032891293992243801982902517571684416504537751815156566884232586475726750610290050072722409639427831608399907267856637575450039445576555721420162362758338475234665508623568632434341031854134605149425120148873149803201118560374099002303548974061189427610193326530510674490766660804244411079712636137119642210638697140906702986903794482681524902398649859043412894806108705489490801883901603093417667084380160749326093284853460685736474736279772462366802163801536271778534024802043243184238789842898085644538387256763815030947766847756263440118218067179888857807801726655106435598029643790261718402349514104272121731532718579236159096878400546714236206007585492311734086434296281028752102559751807782143017701565666317357844141199743841004302434045748688734643211434802269797537288280430258359876403310108539804867070535472444389522762747394649508244193922755618569199526283248915392591789245412996055804169435121103192411484777534867309344411363258078930758342838838855986056428694171873106091718514639869548376998982712834271992521529590507536515081940858670789000389513869825450193534220352235518307717549110532139651372657550684551697329577711368783948590568907130501802721441266962507689058459563840166378980615105946146770194855709016390987125294036863566788338798482036367744106670199751406026541115919050265092830394886519904455427144333522717116069733596506548024534727009868079676974423835050475262416272579624678251329162919505118413483050363636330677088680113554357845609362818604038661271492026829149295574704875551266010196119206882615667977533679650812121412632866243540814019509736311794555183346258189089018693104836471308312884011576161092472514642487267114287331714510530554627559380141005881783776656637103221589245912711231056552813220570609664638253358388829698626623117472374335981459398891411349567051813263771915010523684301638842050629504002227001388770064445506519779739813272792419660317675258307601101381446188196701516346815646274278202421451564018254337522935520526298900577308061616105649533961362105427396801271767272385294815118909115388130330164592574044487711412944771565176369739261766435005270143305422561660582957762571448072736592519183397605008849431407402976346506716822225655993005748425566121220370548634619066763834942492002562691422455428248831968330043865658964872874715799156692395865512911707133389233341989545012693469407051887321029742124191443725108074977930895166858595379005428329970683485703837884108677116803310747332049631663535607396009690563436095611749708778326000840969615216989232965646453391833862835010386307966573007451032761569730072953767687144863506143659070534065221283394979083800374199449839294799950084896244253841464060491981056756822536386263929517004633859071153407039131202590014335036478721854184516236681802125782445938680611258073871008792230866457802385701846410194509274538137486116510933216015135099219737667790312795174734732580800282859002091276719107417574837749414478210826279250841030751993908656744194836602237140862836804972989972962246750224016016772275713610396271801240998030576132302443219868507791723818230709395541596838786972844291005090419880777648729938401914321452458301556325612306226838233260871292108582498213997278985577560834777856101529222370394209391283767189114199132107488633463271353263809882589380575993214239983241543172257312108460394788700991853234166267266241623512771920589379041609628857678534377516295340800857017015903715334259581201112324749011116060288282072840920791106346431904318236441144012526174060757093389755507021281124132623822462941105679155802154686120865503118297569392650555026702619101068669165062980826869312109671771516019037737547166504980871014474494361372839102624276771603017711774700039439489357311874958717777559205579612570178108463768480796827395162249909062342460472411203726905524406794129500897055644276289516341869207266797649886305941401628432140697577147103357591054799223894204563704733724197419890115415804656206477568561108054180161702170477821791389640180208624443159558920518802313296183870233820525832813625758327597969997610776354245436069740446644945005514793917669065850047284846857566815868694116152376618275411556795302506899282435485694928501946601390008019474117781296074386128281498170330086937811226313327007507658013758820269849160000208293130394673461434883753555428320837390876329038792625514333861501689981444359037486335393533118366037247596211745299267457693933010800328574483787361099971347808327044291837047991656468445235892753494799340511065002932771845703481942022157575951277464766986153739413552715723926557548837237547132357156674985488774480095556728781062351809452557641504625318479822739327850592722890803665024331108127917050398447489846108718126651846007046193279250779836256642134973584033400480425405586695791100130015533710059803017422515872281303430778876914248692978881882701911706937775368663641777241276051548551963915330759706563453954514008750511536402810970192019935137920004016062373722629712471797155622802507368057159997848538002721804031278259393286986606503172913287213337784837861285135359339722831450811111807230407785195254264451912197850888642812662481844381985223196439223661408915784977033665463046793146514535109555070567250364487002569010139901165765894196440216801409293759684993672805410419347742392927074137073950462025185531268361067672590488732053878433420928207806522084596852838475283896677545650813811248006636764915529305021505164183353144230667047926808404308314410495921003120699296485565925709129289705410562261696340528907206572653155658168498878439413730172736357012448245184869484105247608564238245999746125400742933176122335097761585527826697613622623493758821893318116342997756251396643699994965294166604493142791979119462797043710682546298754663807488884257539629998926843061137181907047094900484784719312859217470130401664778116238460486417599943951563195051344397861954291900669917721034564144772831120351911140221976069510893043743447407551928523100973124234604163489001458070629180353714576670667890804324934854484221002497634353872491560823968284567086022682602761753548290735229666944983824281816979519121461847822360539963560088073007669382754884855632234894609828750711215304173739085476133573201161229530608787788696005031205692660663787325704131380426364010220105472983835107040576215412881896348119217382906510459078725271397500153225129862388785211372850274147064049253337379982857665595870901580036874948906261238471021096947663588676379407006810637364412943270841570201511804902013991879085460206843782609964442624697892100505090808198783607913778933254564089504754487329668549655509707794697399887869728034064219147284726429024647444777218237719241682084728183708843380850468043895731119274109683903255250008624910694074006423872630011326053874251110286716725941246757657610599803968278804145076612964039134766496059654668550649491772039229033841044212381764063562885966099233548011543734792914062032630323953599064794409289598641935600885362311124274433043105971818345881701904452965825360972759131667248555467746150494351423887926887048419116104300111480429336491156774819004687318941537851847671875390802150405418923223110614397479709754231411065990968149380661298523395875985690941618129466846687413190034294116773525257192147811366751909929014303652019580431678376165347594712613947303147254633133690832725573160095409965776052403592543012746035462441732683766431945690959088059638679230940094313906174000561241866117694258052112631502593644379832401103900638422727668859649919447078363956592643554516969043858000460541667053077491474435892488510602920147480714218809494398346264358902435284975476562201929318250758163570197898641443194333951682265433949157457670310529699095247157337396801340284185641317427880842667324989855983707724348918320784347532518246311581215650085143600953744194840456152803670176159308748979116368587430807115235815614925961901117930993992255162160443327443552854773908251961277338931231264561848290704495187833806363595734567069377144998999413007962896359914824124177260596822808205772469993625418258498246856691458954071404183335122272652730818927198280203546064081474036883156261710288328178129637904797467655982978972611664956603731336909876162622798180173738029960380363951664085903835990158589992456448070588546391129504750028246097689725116219080359666664227849644678712289332429741301003906544589173559094307158759533408903497655013001720841907969796413887921299062187692874463617437916849446128930219299481393841128124669924158147399837086309774442311880054595873155632401463030236576193661758547745931814573655387845479429974349098516672417067183301738657601587847978308164098197755516184832802709122981114639768101060536755983369563832759733385538865473515119295458412932598053169990111014021371078180910620801039250499282335877390403288352440136992577322523182998527002958688749504572881880897794272816573704843178028387860243482716866251405100152808819636496514820026940702430973316600772292390916507638746701862093631219215728347368429058379923093905130273367321073603522873152785019102846538381701279396014111398220180873151848270021424679041965303211719104178254337127607900128300961414312191843950929409177545952053700959563373860067087170954656980284839645218503843238988513041784262638026485043547361580427656167217353229152094406990092734005539098584096024764292580550842143432958487552652718891500996011676779231010443390833266580782949502233570007035758810378122366417511379948587831249587775020416165724075799435867572225568535398119580589919086389049658567620054409639273993479256340508763248245066078522531175265709746940060891948101755062280279875002683928771819699091801943300659213105884979044165426243414037005415485336396699797643226236239286260096815649230688892912335939540078085713507129908113023693835617164048540829939486073486798025598570557456028923947162417511241456163698471044186362523508452333791791555991990869333327686570549434660674296414085709842652688064160164410677227447495938454035452540288577735437749159023981409115815817603612721476616167847556510087981211007046619205304771659947048376361453152980694830793275713659705988911041109064644364335036014275320868529080445392764977407042331957909204100919046786578163862907639885517235320452006390580737711000215090326299038924318850274933104120465796907603434324397859738235489837462569574136471011118584112712519967634516924970574003723691328619984923664511210593577742971968812234972373784658145335579186356703727050235301338158153855346565165717015289890178586808553947218248744803615465852130557711201192220541117253392550929356383794327381468983566355718642862895483652164695230485623555944954440650317526385512444586070523004124090878735448488280832439198860168494118370168615529223533511208547873213286895490414819530483533239719565744194129136824708781790587153176565553570912671181080466858523702721486936844414791962190259840543635481985859602893334674719202165423912796582928167244066059154434062663565484874175669351902487719555062041725496636473461319113631262136777731635174594391219504192823996082649396500948240276193546212549935865024980769250057331145613938975206081966110038910238608551519771047316246027633380508555465741472898427597354919804562322518535862232620861967711948668609213238686956340484543853267792029464508871218621891364261490114927048233680252125493755164310198075171234338505848137767913880109133922983328426829536115359286116726509610594925314087836733772681021949295456304954074410183431516246919785646983385027116147950813433959557713653605937085204833364283801337910795903862163661828989661384384605740562547877911111807224627291436654540715160817912747476188906156126394448031124056240338804278622362968336664190237905511099225549226496051498263824887142981483862006313177865458650308014351662870361524210822029913756337266409788599813725290613400176346538732711207947482887469834373922939986274839749897073421516192569822353017645720838734336039526617709844370623716191884460473712240467921488175567297395387092214469781801073468560553136674294339011165375262358305331800585629256176990999117631242501970510204466703919214720556062479074530697685471495540863465928104320097101539971504691510900638843835534696444242717438461199331661918713347003363818637989978246562664217804616710706661371436769487671594851173316650422261255930877108466266360633519453826393651095727408473500224457559588525522437327786746909140595726522058074106216176272525545405085929025246939103311480950795761979640892868974960909222180015074386313595334401995807736915611779646134502284235702218635162077977694547969050774835312215578823189905708199755776936151001754910893733716280998727741639967723631190633997004857669753363087092709961135055800079087042392259127986054259301165920003597634169586928200313968664199061966601358206584039826435090453133087136475080984403166763460191971765964396874355672449696583318089932364906317755332231031596304011023334505820033115032868044687753700598442311617494539712865663901073391434590172122834048542118916274425410478465262855115489973741067808979880841732265283797325568469878660645250812555119729959377463994190931480453535973999184345693952601175426828973551973092573305245189504027413183389631607629829094456241712880648651044424460401036391018507462137373847202404745784048145263348645624591273616601048882750954694010587411930102798801450354839063537204297969412807190484867639319392490394296476731039014677813006247403292235631250075932807333467095797387258108925562780818201765501040925548459234148885249118747755553982581557974764251017317472342669636311075132167703391569847218737960530537548747874461258338724565567551647045696562801551223995854513593554853673453463106539409992652583981051175442884239799651094154700843329883235846144332692346916069304975873136994590868689789231617167810335214852228472533934703803782492279625779036945771569848592503881481921598814239820961916590401491191124752746869513079492952563378037849573388797582124495734561010826585009095387348459374302251291588552659557690997953744461248347575723840216868878362453345717393414861387536887253641702078452833620125548915666193586440684373965648448710305473595976454316722869593024297266201229410450868664088249628079760916806969995025703294465016466065678265374492305244810233655317692665234585462545810045981371481585719221233641553847307725450444565362801665707575961130032247660892723020228791742361555155286694377221879147633543755943293546198454625038210751960719690835542369885762654232841021368957717548537521999478726324665410312195853571792406363217670012925649802668702851302202044882142918152666110766398891450530899677041196841801889714230274020856028597841362289649323076547734714686065594610677257922522229352640932499690622260754557413436448427889770789260762393342706716994281708482975795256668364164887294033254574302630876748049994867302462771911531553266969262053724504263086664794307117809619808621295672259210851085930358247774591306583657186387667104645218313021267309807433285021105518159646674238076344289186511591958865796971804354795966069031674336148342173153878417193036383419398238406819948508764929377745368134809598560132046561795928709777625656057606625060918076048499214201539776869328798076819457219100398754836366376791468193649396938295649401755699560394833987594538072531568348632433241734772920252714826195052034659277940272436567448637322417302342339841027624589170557691480182796109798683844945865208248058160930998821199499229855088551668194224179476697299966971383557689674225277210972925457152223565444518451253551034890443847574974647190191738707883265361661498355346863345652726053696307511870426407584365002435537062443448653645728048656790524188742244059066086060319710177955884572801602673102691454707713600452282381708328193140769397804433921977223031350920767273316542092863995429671097816334136466115429912156958376861913180112704933422849824665338714336101694706340736256640130206783222965606210869887698542786699445682617610015502952237056076164501834984732810312483533565466020662510665729626774328702182421466048726737272804734531750171148128196139767953466440098115305315946255255956904334642862716801755757599384553789723114544577367871682432443168330705058274072431254770241224079428996837450490195632088605213605817313601167826146799695999993367237412140107673434278431898481615330623076454229882481272232243284380510423817257953885890540958082017254432890173698018513114899992429764660751215711640650415635932031993193308331636612871517304449003780162733318788493078556490520036708659482260950301593678638475887721606449614298862836924980029917430976587816565728625730368593177196643593069027548997652028825342815051401256151935831836149058393351784445001041039573945411429031022084693244135939749226628811700856188371049040172353834110858151033609161016023784085906086523662035785688449017027573870940457939009606422173870007784656655922261342869956966862006681384088039444555457789697031290923168216943163867257937145116646491677036752149683812015078054536058034618574864299640381465288082390135955315578939489450461923394112283926612558281814309766198055713493624026816964754752699441985504605093311626177179253592124931066363643370393347662248724705306437481661949705641727282777722453653562196602453061921069504853798981631557407401121704695453083524297233713208343080451279538502937802603639725425485659937821113251453243118442722769970112537770658984097125038227030819926141700830710634849134181201348338968363173194502318109434752467243092125366437278980445712713625215283324587514241106239364886111203475036519117262710065528691392975982377275903699079472423992621322829416299865227509585115996530846738224867544950709452110516925914011144099826437260480541789406165690681566548772993448434867034529103221747883583366411917419964453721175272102217868529226297216948235260419531626922322436861930071394416583117956397531573280452379552732082702774301364116283184534448104844873947791894103971052564884389645422452598474452322958555656893220834128810433999214070484787979005200337834584502979224702953421131577603713645729531114114362314591644736477791285630309566717276867767226118660925728283103891995381312182406737637322161175711525410287656733462301752196734138902596559957506912391863741777898580920602661433867710173806243240724282762464826179504976627672796632895850644902577184401887367211430792222432732930049244861718194698597212386486984420451100642370536141981969850863267035604540527529219082194846989234845122788732459110572366794718028577595293504068680803609194645810572573065084777277206468313183493708707166011401711937812612641647839300915844833797813570816826746029927872638147401085067563139008000302192583790605792410802234202167687560748032459576015861186993861104645023185791938975107579810321249754384140485678570424316147255574422029790001794739749480344955661525379306605379763647014692760036757332637707685766439217967163464028358811817213037572688045110063602078163951311226608124484597933749273213063349703421200715491619544888972050174921390398658081883831431303576619765922734894927638313635001335641335162856993814369131746758040357285349565387305184252919668192222792790117252462983107359866430635937688410651563044714201761893334181578476276064023977121742283296156836088485277050391836887182613117872580600059756593833929422847746385158615388440553483925692168044517310866058091203618983720424607467857882242320689937990970991236986946714223970789849998014968312797055638416121257303532883039962566666444397226770703834120695718027113754812622149651344947900975388428873316734501063898814610591084633859386683407097324360382818943487346747711381463712406627213543134239233409160680293442276587383888527400477960419863220068194985977665918983172255433432159787912633616574119426301061083224376312210437934290078572362328485403165723797004911258078601275074887536137789585377114419515918756713573641228967779203709338836835536736170203606232999420065677438693138654214432285747436852449860511496433669687973681614928689623070233635845992987343985431435678094862097656304068034514838009935230671816336123618400180468292714733742763500565402163203896007654296425903069483681616560649863898308170934676473362861146939022958547699296876664206638720890827074875108462159673006392042135782420390713308816399201612541005982768406975594773189351748034907063150808648875023849165393656799979469102412052573544305337819161567930794387262694056540247695229689318927014886144340512822994962362360587614042954273251656884172727447386796548398930918566138661448393446988111871876922705951587411329052145908954130444221899550790542270334615028621627992357592969282092546103866513137831169746089371433729135817294726548558042017045408072966082380562729669022499231084053332615700440555988398383885666499620979743508365202005967454275135390895859842385655641887098943738686187740441448576894921957173953113255246353835794064071101408177496368666290869530149177421794606716022212378361442458766405668269327200021015279877702365649396680763233724990447173764939931718671919340479734289273909958662228226805307576794516440333752826229568088460907006468400341446528499119313018495785582157069197320868247639666644051357197821956929177362443876850384934489160668290356003766853476867973386338606669827799343753181884645410886009358794540754574267590632154210050026526641750984560104462513854983906501798609628501608100683826328151856730677538688590227039891592430646623353477423545388877092526346395315677860722557171183815831055193962565316954792778084535843127848675302683087929452183329376954512792069996061948543336268258290492134482379908017293495493282986134255329149387446054075906608948423715506221998460544617262162231827739267359169757769188762601787764417536054070010959127221200911160179998666741672918672107230031303659180628673975594607883957731552377958359715897060628645927444741652136683646401781192057523570573253217421543029679416012535453395001454075020138118961572203302540163725519373078545782875617164745967143854025652906878516531671647518988802031008989689865316212653574788159930437458657711093301538590275745882769939804098657755030617833533741926434987593013008634417153008799203689164679152435136134853769479033378912602249024381101867281242166908327107252372244868385523294584151300342896072174965112259108184415180185315247911430021782616673014117069077250290743831960889861012719968745875140847171630290997244298151072056130936489305856313028620437265897320172724098056463740305921966470313700733469482210659137657934563784575627555723189000459960157944436260500837125801562075645548139148904631080612596672932514559604218682436803446457991208196885073929211846113888118240239576105437516615248872453987184466652449117442626294253713006582880358366312158222021770533383879384539086435579839862623123893634220042886499249897480258353030652187755101495593556731988213773593236307115191746821738768131201134898001760631102014160170694885262066985688776322136808571076927006870256368573810520932569336173249183411210395652106174921035585072448525350590760960675039410937158038587493463261392122138681414105846581881228258779666136100662613317778821013133496857365797474955103350906916444833237953961021258627335260678860662212760788753947344699213694457171459719189815063348285210660336951462804613540018099784481352467697861721686550992424074643902175184454273915412794293970112834859548151140393623665956824979877449056934406213143552601622925279104398055395277605789432477104847609489257928669725071424857933490473819443926674207755246764456379112613599409680540376451119343326432388254842990815648869315954044620772672433848401035917345750848788539899785764266326632892645415609793687461170864577050073613871239642898540408852543685969751453482905607196694790468608520608254919606165940518159088294030362690313305265695225796530436910205299664339292236543751193930673604533832184734084171194445406654553416426179651656491818787674263493008475675452647556282085998919729927497086661957230523741699564793762476607889552200016598562927247230557274077879351209079545670726021370894566590412120415071199674012987006724932705312070390947960087306962683248552769354957684860999041758900558056456395377592130507411191087374653592178411259490994361476402582647110501036932919920474721192773558031473689622710824752499146116243354848049449857286196515865032826561488006333533590650687214800917418944603157996698479269841325803974606226888455460267667001830851326883839524006625651406458611367832799952808825043436991713732656047231077450275669080677953570106405786350590178307584450182983356787090545021460398542771744767378411788867200565401744677585625727721239283187916063888972827118013127215966257625625446411095119406112549622379088912302497404351218449650199659086707352220217039787909732582371268502338382777486349290110002981977317894814768760220160780826590783668307568202017169101403793111756143637660446326554473209369059883835182737105125784090154806234300006883531925589742002116185333280768198791219223941584470952814501311152220045587618158807862608011252213577765547246383106581762032857080579678180612503612350113459101315570385096087027610893098081397754854942690055431973122584069610994245498913538722794351271289341282285323880823007643977510630303253424443350317272026080829980500471963240583750222299149094846423792119302037096146372569036615831423488577344135718851633153540206550687494065401701634292411734581742852406892876728789553321248718387890347212032490981398029761753823395714097408771559224817770126305619184593535432357618001255495553677463784530067161633990131156449448728176502353630024653066284419309480288274340857984453084323264887530241499297055775651422345800320690592692881722527709230522628225299296560814826065509131529759060134214414058293240433375939863122719200248455699112293808708265398187692549197445696016811551859636703572127879761406188957420582404125837695765678004584318709634933158255269355639940746822588174538907911749017796188665836640834716105213804475686245248103757671401736376022627662219542552021405689894870118207357583260669395160286683234427295938688641066113411626760841024503321029555062869024142322245479341919339108203596786463441876802305236780011627995895723468340179377540347977882027896080017418276823571193862578012503767136512797205196105544540542304997924446900957099796831998878461685934260838893303752071691661049733895170306341368882977473823520891051440566072840601153521975796635224455219122089660965472845617821120645066522222020873890805606954958283109469635069250435258708208738909852526305946153216779612337956007870514814977702481516386441192145688467357511963088578430491751316110354751893345909855158045928545988640568911167550133189484011969964492969423744850166784539422974872074348296105597763420981505459046087440107266307064650975032326055548577178085437567348761345887498948718237597913345939792995108004450463709140916816560869117898218371374030110753251824048320182396470097869000129339616803543362671790821323387207704920975649944644955976699214093433407720418282754968248222775721321751722708179588941047580962899664664754682816330305973075702526661969862545885367841426006569867014652473500082658561240029487198416602713376063143522973118265230843450259820630172536430898045525954470614920484228121216553950572105131154760795211047849825234920922971051856692986663552180617969538444241677044328781108348118548910129185132123694433186804871253291527470778196816414592090312146380085996314552361109576739711287811444527327074761689661325451145279908953884504153437800441623420569809877905066293819435948370221879504658754185352268126241822054771074968983316787423321840199559141023692014868511382056147468926251596038875361208140762280393761937131083139060715055259191290797449438191801337160704673798062547662527275936594197142162190379268427127199386296994677485954203692718253728488539155923098301893780489739495265823702572920685574281395399832697157836376134645462872471665900864182126227066227103019122940083737217185587178916594952624497477151658620938136735236722443727077501682969939328574869234650056038378901361992647803923162802987182899850408540288960977985934293536176282921106754249113387462193755442016083655297440944161337768707670987929476772640624755347674739757955058151089656587482489360184245365885117648034410073703454838208036154974797736191386922449809230898058459297074206451072957328862176298102893055984395872748197261734368439806793120495074924791929694763410653439853485778984364784875395233397382517253313863025671827624361406489110527327683662349981738728414545555152804288344830298383660428434783267734038607574357873442339706966409846955763062121167033759883706908961910262060544846381022691427590246261669315239274924324017197377684088546690846786211263136384333949854688975081891316454277327741888723367046032059221439768411041512005606483195529178778159211251598799872443590445722439898709764780160659700103532995762834293460390583473567767998393094763602079999871883852817342354240413003079228347489665066824535494714497376823825811726048247329635100951520480175326606371703981232746454135753073022502078148974742283984451535484848759108007160290206435329955225530274785297347439820768733158473987627878243252142194411164782263063001748378448556684085739302747114211359602869419873765687671377406844858191858311839899728208154499074191509953078196979434105081962582203392492289368560851957237648360927562809256319160440078392880970414971648245858497878220309772693777238311391127296445786145181497298089366223026859254756367029459832524642162221736673971141891754588676890763193120051219632844426835521787485683475725763660555139317239276734968917981788399700270955550330115874215949194453742729131792355621236776954310549314612128472384125861445994874877320744368447622327865845451289718422472939512016808271523532249678952990600241407829617304241936063153380048724933311955650857672433748284193345117308824756603710280452730667121577308248949773998259982500621989363728990169836058312346319234337155700349370844122405357031156427971125385038932715259849585946944088542364311734935522324885889559409126359624344296536054939179823677163379398720999349122360790974494581781917278084214608968278690593257835970527114898429423328275082922278441210966202764686534783684869061664384784482273174843555163226815654032716601055723200755654328470462446122434297259332705783847409142001821649548365137539550489800085175844792442738621019054005511951541084562912916236414282508946860248351016682156357814252793192535659912121008926636248290279668823383925631566633413916702258637322753151535613469282396296105760438078499521282182956717921278800246202537021874912408625530195620951726724215999741414843280523498564480260891218280426538735632061521628365806376530888654360560592678883906188533852583067113464695618703824050052270626999782726486772290802754929561191138593289444033930842588964159346184859665684181467930133477787404030083610376943263459786109342487691695770339629983002942656926364407115275198081067695218716477588418582827268445540889053838966126552920038807840532487051523806743707805735823479094269928935170662203613113014148145394159143103062669641741403644829597038548458967736160485110763876389456627012852458164870252096863148597207308491121314513062365334311326481113195054494973327015122614101568115883973708293186701418346202033305172007272142438689064023665894536900001599389792134221915720075898455217285621099807160321669974437758619560761121387781884388313339109997094714779606291216457569890565384934585799363706835458356962488252535594077187302465314783654204405094683494280143732893961420664902487830464378796457752809838295284906281096226145402495210595587963954281625279331438594378476094572794285548443023189660953602797224021988844203567864073224003618476699997403444859339257980679943253057246532152804352569071774391149814293888057312396853780477502398538000640416478891792021349112518780298819700695692905657498243633725308646643801703252957332256601092365332376749374870659778238632219844030204124964302719442608263705063261731004377225200749084504555834436214245357887898648945328064829071788580139244170260447978558073155892462121871998545741479733511596871844366532696607359647191996938602686406479063365517950784163119418529990855304111956535069867529954173811919297596009968542643899393440271351680493706942127750515302609817394153358677495755977859396898257036801089384663467211335005260065417058661932696211539420275019508170511866181458450973537248081208826843200460608859744011223026585150696183058721692215944963634778273567005715282217622357695002990551677903276634112395973356353874871946895005454178397315962474296407512157706810289515570151956536319915620231531233228306308081652533592172800694041590842515152202478712999014072293239545240390534961364666467930875354367906452720765453506227293771730345985888172190040221527511615072643920021011373312378042097325475250510951209527061569667062630113000486930700830240923075259017314801167791570745384167623024604162964556580225386817640271284504668058196485491046447530980102136607842109064082371840580431258155928085248112588627315288753688172424142730329976930415251550305155541821500673885756635543683672622147208455890360238203291858726254241483842098961171170064589882841898870540754771282775428239301870591579242539983744435941750531262700421493097485982326652341289143895472519345208112907699894654612878470050749170577003711341251095089737443516543719229873173773651165684647854938905680912067224325265230775128404486758587120754930631041170746490444863143499380667349908275605618408946024844221051189198668268473351142118972766733319960504391769861017293743939914256915140775761281704452283410277775988564930591497724914614841260814908504675882615111329457361880664682091117229624101657146909055863457566200526648140904306970668041651252581407774585909653746342598762842542179457457629629069177088841889914204320285669942939215227775524053093395944932623863687067056824262592168602668291583423673222650471124225744138307245681837535331565520294989179670196832145805729838632675934480357988274929194242017427058587824636136099785347544766844447773617056612004896900744958985725485777205697635897059114659032639982343019484955207857757659749550137943286287756692270288976788531984768462398890803249625716668474051227054511908768929273092288682077858759939977153149022409557043542269090252343826747867920194507273501775042030338374707658437415219033738971486808404769122331741790843972381821320016601540997377874771488509584080711760502769322060927458808390874135589630739206769579951819348358076025305002101720290985655187286414007895076535897749874336227585242360807652632674842082975759554797587775253482363917961678306338416446343324671650723013531115576448189801833195222985144440876042418279175016691726791287382218484755227732546674916001852787950894033006558767656501029632736721386786324834351716243996131843068989056693851809261030544167634484808385972203472139186931117844774370721517077845762609049433073234968349435088351617982301635717357702933891178048758374231353354135814584053567313341140556424016775244349716613516612104943594185582085115358814650103335297116681747810814538508829546669525372588436718517296166558821385412323392992131327004645171499096186855982251896847134249005352340216456874203555975661630394887761851128836708069045837322149201418161114259888166189845627495564298652978975538977061494873260466640800761628903964295363760337460083593616078978017513263189351838681746606954572261984507396889810915628612236101612472687901340803581682461655172352381422573383582141429462307573911976426883545973436401747789068364559759693183076406382968287098558753729279263323658628986666259248565992521235524841991112004629371902752013565515565888193007786833002182773141002250682815965245702171266295845905680556865919948823261174588231994160269941964606357322767824402922589639156295180692429948554956055935940674662659170533777050998325241929319371799180758793294439222882555000173344916438067410498510471593641309982928591271555899927497047357733286721335221726217542559043977271698541654284035117508027840348368948273109202870706001206610875938202489720744664165883641520688447486694716609246363979969089266414480176800437728225132065880938819512867790022112798144460251643015918135736732949208231562087566448520818843073566844465592468902100797214234687027418050625238302888984889081315388995592447724363949074189743505356115763519867373052221602836075654546149939922622510404676218909035356566746975921171754333144020327214746951356497343399361311090555839055906552474154219303790946896793319106298345241103212426566458959017123175520288839128531348863138007259268884497938624887717325029535112679389047956784892524332632748190568733331182369624100721086993581013234651826504485381964893589510223085487415652705637287706752659341077622795629811684759276589336991388293218519705879228260143226053189331131056087641190060899729621466573503415016118328454258068061287338763338024265390994247434726737384159287431773468856830113108452705656370929039970216986939385736232718728274433782723984822885741150127545069884077945109452553925843575599237793123606596135459182809710280774830240762659470649131208108199853922604287172613162381328102871175818001132902189772658934645490197164448430838279958018976978115607999110597805066841821979730343302117743261477333003963153975914279794566845350774184644141414891404840104533347618570209257536193081653582009009351491379231042213507529752508643275874602907655834594289713982654284382590351202959141344314203843294511323972188267788298334873220110057123291984328819980998937955496057024221962113322116494184143211396732634512517861466209665854418171390277718374922443092226170349008307924026695193993478186270112393233795247334778601975275723261269689409606377643150495196895677220193121088923605199784819490384836784723529983227452224434992281785568826021562393158726039065140647964650164713330604156483779419205146073526040990483947376818974207510479801526206447683074076243435544214955489860686987585946280228477589413621189443881094840758659616293404322323645152583469462444954534058440258417428837874060330536916435444730787055245205344928068461188247942364285358299489315802606022192752332261623517063368719402913047974699840577986108636536344210853503839588257351660592769943583178423577685138290029277276410240383663119875987150502275061645201799770633740231560114863937506686501554986951467129503986659222362999669078503714336752416251423211314940674247374880937081201854424875828915249174682200745208610097815505135183170254135193969657570331139429115886160566545197323943721227409844144605059688857563461661358745935286671760343583759011201160225408887321874363689575104524027631130731972434495075486582029779814280311391449152135016431314034722832342339614803872096753572321390647565054773746450650089699257450996845401766251149632926479448402743186703483808608671498263750607951065995968430676187434831002206568082775914250359334216124879924103265703823508692529543502615582073801429892796676759700330455938584264866084420323023204033769042665476278368951924397445924756898022766300004897386563317580918599237207641691538811203624851399819104846474939366747123499834601103114624207007707129821576318392732453032626945690016264111189614527443204562136508045226498798488297709118513326299428543203211867237503864288162886002932996427015792012873727082324880440537386856253666447809274460223634037898462377456192655228640595183789515023861457032252540986607368935662298945878801896439172597915859063399332121541114143298710925731480045853158281473112676588058530172695631943286134503754913934392082853001799117975388953343218138608752518586709260081925622715746340342258577171998237937062318201254786944279067458305916065056231322079353637817163827965967687963127346021141871528899236465669483258246118176668361330743234191983749886771353040443301831213232440796324577648860450983672048325688101373160275398893188417802476431628271297599190808398288534356864166513472695276657119768862556791747128540176281975828968997772507410953436074392598871217664416560407891229167564398621870597940224750245648369908281300572683551166208496204039333371327863798318100655123616299822137878366872899064414421073308045042905086746551540289151602187584412015953301083130193190618232349242432350021434180461662095148912706861843315758199734147778520074405803467193647538378174687720149441718400326259647386558820745622146934793121183781258571077468001612825480717192834475541720814391956211110632397404297651716080335123730616059871867645948800036198747236660119392630112927008995897453365667694373008797613323022224724963021669903490731852945156727712148082528015008518893565474858406473729418845259733185106962190013330682176237152762838263871432909939278036134778902924109577337456400156169320409815629742029763230854994504294227163068557828887782523331036860227769953765639704524244680058385631099961141306204065813932032992150088756737525983859678743155420789088592687952410039769408472723611370718266781265094400996057995946760107881532599369210602558282198031780556454760965078093699555610392358004490793053545679883378637174686502876029907721565933459720376350551102893315142522847705821169982671197432612315298585764997407664756698000738177460131915340636609777474878253396367767930102005035400444418815460895429657175790426253993981873074704207156468210332632955133114785039190090399885615785240583132148773200020739935789638897714537351619149448466774220810085512093287190558043397182713137883434533696215922382845947362635701260073647736052655961552108355761667311681116229560042817157769919528703906715097193904436853191534501314982512331412425563109348378927252936350009302208564381394898507970020238321179400951680376692578628324696346613604774742316403973127853496407309666146391847843269281700071182321617793354062713844808116863840152267243733847056670234388723400023187981479528464367672744682208558085060663541631087874003437444594560564163063374613110262647133315348245182591959081878767666305924539287622257990121558154879269690358682546369718272739040529980206496872510489474550464728419242717400897239291211904062876278277312155652525669832550833963364416558406205798168981787721670093450686996763921333305827492387128843257454809446782230027513788127620818775126723344652082274511056837609903143982966334594537921748113573001235985939066106922985926650779833252919320760813477770114233536962650591903447274681644675106605350233362259717209996400205625047376944796850739280054291785280589042962738809783884623355209935461371583713705803939567831299842875764410933071771590679039868024337110958615515230018182022388479464932902908242135744969673285652553019916753344011287974166513524373604830048438883156935592192486328373190704807974473959234474321795779816750315339671241806719130380410717755134764736274220572657045935673414630442562447626753308839344735553867766855451817329403001700600892993032892006549709991772757006370960295781364976990991836980846800100837948049369827182377018434298005500293581829069037518245635865738498122385024972215239487872198433947527624611734238244576823426598794806123473698983532504672421644493284801947071797905923969747868599101432307607426615695395290465073205047012311866281896890594636285182337222232658169120744169176462068431737103272880938447197017180386195280427049034525218676036860108977793867729428243540991765276050829199570200092255989068437105129493758128422827468256698385786121059802635932479631077245381570822832916892863567823262985218032219816030201371813564494114078775135349957043437845165286029242913041903151969185660152477433077719390484340854691344632528779271351956746481258654994654215806165091334318958096803282994841109772815031732314988182219348498058117032965402405216422259234298303379563325186733867871456594617717594705543690979596878415054069955846012027666030195498080086671184953513824788807648648460385672607485296559436133111159678622592842043471027937763465255628161046698684587788960331946173095039060478472856772488148447169360855567690089297713484717857206030677921189689041883980650736265311729235616220170749708082345012380908211133629305687231608448884987514763102607355135453603311297308417410708031482049527344865507351351891900416257213663693143098468582326660255101301640139808557198258449537195419866713814081049228707759854549566917480810621374977655939152655469699595648963705089166013183246545831686375718638524928950313879307523794288563103755786157717338410885576594002077091485892738682583083751606347201653341205893695158672839636518579404200548289890648979306308932761681014775330288496283977698638884763224481319017972919467889463424822204988099307936435795987783642097973125380004949108619621219965944483222016397853636128334142423304606967372529733740096534103163864700779073535964493077541342269946185256460412576418703635827933225128812010499223487567344300584576438792703254549935137805776884046927048715674937952779939867124653254346020744061028205201786901479503383885024060038163696296372278825868695890963786325615300998540693269775138659647304780399174570733281592715770704272049392916632584041037058887668190289924547605690957317845832219280517516290724594881143513155729070129032322053163965321801099076329626627264657012654410652771626859806780345547257821779470018926247590964209926526035051461540055427727655769312439643163132498759762999804763409388154060258348674855713534289603740498822786561876602308113593721162325120430686104563193487495349042221178330186879549285940185704615689459236100243731760354210065991240821860006002314269868909663566451384255351408181844252413644517835836866844183251179642324387299052657269565797136663202761435276442288207951660713379594623417112149310026928286585868728012797113393719386158694063538834391201629525818524110373613669820482431036339171341534412105567040797507279241750141021616933949582185789845415562126996559357266806908199725290887734649278900689924955895037588803606641561418398859489528045627934044006343580201830988555532926890329784388583282945772003739940533321054213978092060548338487725154803012338916728109539934647120453410030270284170916714362018095399572960819047598454382450181686070706190220339082158915055909979120627108974154799656693982524942574983996603032443860898122116180802443626875009616594208166037180381217460105019599254711189929468941222337621294305275674097358684938983929085600267730921771071114176467722029937460644742865067656185633163636534808560052147356756694467806741146955527918153418674381651409575745700423800290835855825047346331886266807315233161158829323124328710761859184826229433860655867474761469342162583174750908658714806240075018454732032127654041802785253137081643293180404831159110798568125609818532271320769138129361616351056730105185233961448862685442098405576296916126911388329354312573004936297757740789081850445519859722624092253895387076924689471550684124256140956116530943854281561654098786781187063337672052272542294625568987716936539516521087353053337048645705211771602510916312995848502254967475339264068695053537948212948667179351709029329977829471256437445054378158434803353329601415384903796692649408164999354688304481640126154963215670550811266793362806683880009662071654989236159240620744298517554988736278195931361157285952945586024795931219013706403313479587129248412730181022501782832959491827330531805243507391848383320092287927702022018973459626236020076237124654271444477163796660468043624254109583246058129198947296535093106084439101582273609699993296302454699141244910002496349430436307907703428950181835093952119137172616166872874736329062845297951088469640764251268295880779814586058209020670150158359050573391729932308639998039392302099134897892358791583229813015904945600351395510526648801734365330492150845028518255482167564256707378873144202609389798701150523232362347602158585804592238211829372009635241761835751702412095369856965072211432032136227618073529127254539598274761213115576254396374081362493621964651000259328560424077934420888850989504522560428538296597449473328913275081594047989652552398618296880917473656038929974850526423645907679828252602239217720825813407649695868455090660408894089287982709743616798966258003758811255576302731286362341259286580398196822610525115235273419499956166224564469519829714557172566918764468065000503389630916597290891017405461004387443674274908962794683433865838282177629201386617000655573024534723137378950094774619422099767831208338619698908246811953795043479083847061976307594821116330905861031821593459870207632708970363302247178754181749468596458814016041433026452883287106026624978609631457323342196400919091118605917981546116610692702652983901779750790018453133775292633639853454571704767054088523744679291748668823592781926421079551382096291173951616023549851416623032025972436941773800536459366230979074440065116215148732206607330619106145891622687202954163650551745760370349548369471052803610598884762581900642634860348039988724418870865866909560341960703993472350164986440393531191875348906363127117156629243519354810713337581325493453482295526569931091833999259557411720947881300684826375219713201014804600553071628779615242303709910953420605295523774456317626125936843656224218763689586348235084429609460919339355684969174920510773051742348538623651863972281248739664503838359339466508539565270512650716172932380027950111935621191095597252446852435432859702889060131332656860492773006823099856163611904612864280153993362936305884356900995817810609405691033637300780120609130392845049834930155335713648645093805977669883606273756773894895589925282404974718271354742971803413964333966440691973541503894430043485010277846974184231747985561948804446302748747254342728305314193376662526984540375340532317814024289852976206139001677140854770832639817238938748650608620848632508268018996790157493243887861058957636064133308502261254656049777046146308944329901848349465469057784242489634847939595744652585943603710957104349687067533050391073015845471732264356592827940625947152183622161627477786866415202872613250932465235884955006143268598313864788793096698508489392704858955465463623449210690814584328376583242333853495449397875922843248682314861221039351700539452919947534066545188674364435984841773497477472553014204720485239061658980392885479239521280636199703988968249637850997193142895217742584467112771473030843465586006662506120613337295925492192823857191372107646854698760288457959110087466923819717381083083719080076568861600902955091808453581911802553814671380282685118248402306217238643365167128584505482513346718158811828925740889895694042354935562995420446733417001116870924607652062427019735331955249255663954228623685537841501130676403635055910497548607378939908623084708250290475271508836639696008215587632029694151351020417195434830521510851187920962050418429298166908198306313187987438475460923949562925229268256927947333206778715224665782572871477551601245780192759744545134835961755639758614391149335364059899516656417856937250207026871385277785708983339567899242326059573983642463013237198546423917677324556345464064301567884821669038198787948080111623336932316921271462204236905674238149680066111684507140541344049940835043900562290999139995834748283331549384969384044031742870034086904408857295937961404465946675997275922450966602982250139224307014413814510144113758029107202490596884231225406081725227219732041683082647818459956341189570139800194586188812111266467268162430845856762853398154034208833736576299252762896595104124084659829292646002471643212392956132977077555847367013772221293662542657226858581345222236539247555108239098977118928823814617960207501348198635831202271236167729238607434929199592609248110168824045127843916207273549720255346782920931197069810262999756573721917870819938007614223410071284845576683777507604065761305324992532470387371464086291881157783957363190392763657508097861337567851968477764208445057721827277528257054612366653067488149836088219826765343439152591686260968757911709347901540298218095948909422583418214393763861511282553974728173986094053911543036370582790419791035348732546968847053370681920354110125632650193246226114271365870679827036650271911306224378234178984448769495954657573320980990112666170561518203223476821236434410408497481254586940180208204537599928405204278446838786946434772473418074964330749733928239879502951745320732657285375909715958143013750876348215925770917445000930737714515208967767079858548198959013672389008574364931422343546339094685346834187266151457992535120517579295086294526509162394521304084164244068336037775034880178791226601918047705351731186946273834549882758444938255336317216803433479102388385572258306476417717714111167404204860457350603877539629990789981475060872773167899918259608670066261892315406651248939805499191306160163978292460893243550159618086036768024783999757115235063554536904284577717339629691658063480023900905983203170068121936586394567644740736694819450881455086217286812265241590326722914497829600266817012835360815732887507416172229604172056655940307989741999845095051098052594460259958222432459309562640010996939957482296089274940375857924836905006936635063990633353543754191293938776327551207919332653594542456212421417080849663689887471537285281491944426323440215518822783828481464102909816430317605545455942179116626636496603627322205395359690302732510538915336097575720382288113369772793883651664464605830970430345882528970688136233640357020634259546372446262714569992666332008227088180516513438400882887450373868622711608319780400775103296755222091532486203394757763687076332935144549655188518591684755812076345561264568513185815040780715458250426347424455196327726790815554916815857772958905060561828086576231502952344343203978539937491248739911863474464088465158241459728745503145074566807193993839447501533284012831193689951028542971876898108849655441485929635016247431071533703184576259929272740003183574426130679089664181905151897594372897657479305867027883319441628317057440413978923638010040240347816823114762012870818842476564331342659712715921030154208489313718178267744227126060373015799545548306653649179020580974117778996346217325873577049135287873802431859857708068856789747043800533612845025910850116111091026752935009453189028492603053471224446660665327773737255666252346091997799533050181811065478842536045395141144939279272898833052515848580571320186634791730090546403867099866704851010065513173173368164659855713449401101034332856380918626273147997918584477413929782891060561506495797923906679256700136924722303431956269562803112048118282652834908562883387922764589021152777031778566017169619108715552024214745031262769762611276435347044069814708074383173020702297866213562372576694887093916259583759838899558084618192118846501726476223478939152875517146802807617968266113587948597839943117069769565094161632950025698578208247590648498655450243443705787561340467795364095045970340025323330054770607011408521957706805461215980491967072390477403980345494104594797318456195571976190859956135607428484548364715698644381673634269346198180167490052468008459870794101078474114674898924651157490452045757968613095950878343123427092668869028823851654373217358420575407294444298067974244313710862964492464706992322570821228269345449598966532314144333405457337834719300231423558655958818692864270207591704441165873458060827681778034624174188954919426171911360555037936779582500468535320532206524037270355459812476921373128667769932081171354760992191595181016455655585860320666568073577357398540953913186963626662773587307161247514761674577490730417052182999005135586782701217659446880174085663992186450735786346837503499720107381851831223558638325731345301811065341995550802848862372694977357356407928821398356143370761564826356098633461284623297760016756064936574126394711991740856140842360739146821897752707489310907063355184868386872876864210927911122655049327116503152077037437484054337042963839294129607037890212615600313371250942404219469925995277814297548450170695965953053103227716210397953141972425112377402245719133233693220315713256129230547667044676852996390080085718943012687932459632133626855663055904938276160031400836495116370035634801035242203988322440663684537834484681178834533488910796296627591471207819018924440822598192268146588367002234003601191351221665590590458477766160106974042377783166757045844549629330826565787208361223101716142818790692887653983253751041522114175782869205261747012796656479479912182301984393072373982757313935737975107936088786783881197124935630815031791619106586996669482766638771571583763332465905631339478512244687635720813973606896223779172542076038757071543740477752089076264310177937760137372436823752154220349706559386055630180828571814912433486159032754331323757698844436838358901929416664718764384966523756558719456343074918563741030178067679603503762125380184762555462054145471976618498250415327743769130008147970434870642474003989086325666697613015406608799391124903917337519755880533074451862847958643014160703739559722403345263800978289016995185188598614447131530049971188580094650924424820588628676160241341707389683189658392221566561458036646556017817527684782175166776819370510902560437586538749711603174202595266107284762055259274447156190325694577790792187239246493689304483893222016769444613712937913824924476430956687788369516695050649066777258879122411932568506352281608521969091238255369459375739907465641285372742336996895825454911215487618301985478688888531992787867098797234559054885620817776361759047576961105516954092725421490981712918155465705052297451861799593921161241761260567499691800343652215523589884516156653248178917198014455783554184762307656668869844464020339023306560426108998573277092650804604512867243544512204055356893560914129655663721000825839581235192965453004799055723340103093876022722919711951483893857361950788863336493681720991389018312536482833642139370287148127048354144196941531520157283711239930328238803648973594257239216066578730929708147664962504414684840820653648982349007044658362405656686956543019563368458912296363013061833199737555836970306710045425813201470750347021493158453483207308729866797374894085839190272038819460410829181744824579871512672051941643975250447235656043391565063505636126378583952523147509086692515684541145856233136380527263657664576652961463235263886704679807803220752921738658981618883141364698715180891698761854819242758664503996766499640457063521384074998088603516688717998891815981063210232438896522675311174578700230496778340101856673649019561605430566834025630148708844927272694401168469698881319560318322354066131150928228437702228614437213649787459774023592706198522518903242112288679315262827726190204678130886247545909483141039569882658397600017753120284212783740892492682434106847688854069299617836817009768456391932881661176638184931570228709778769542703990109669752581750008894800286706616085482021985376458106535069814777840021189206643390143638618920752243620752027960536113051236163968000975293763556015553454286358165851280200632415436917868711900017001930272874397755235715700870202368521276655588796738977681533018321820701910263649283763881973800541962883082844949812738497408155627122085092603011277072092845913401108896820959766727138062827532956518251076876244252466406525544816487103476711603070009243589313247267500356904585151408146646961338741553141548974833149175300297179740172091532123337512206356794370957234428867029838739048752476834329046851010415945094206012241191065322174863088170061706775706884928529970864420481810957458860121715699753497426279419402368417681171929347350984342997865357617580360751514332022930354454523222999137503418833534023804807940210776053286766475301313839813364754831725625534774928222924125912743574874967084764355051362733018725183722999964615923157049210331449168810291572903956344495274299646515377578404164609492089079044015511439122100853061334863559740786141510695692508779811900511545836608008498494576741526510187113423083356379337403519394617018633508767674500457341497523682110338459531389941325335091553167300140745908540065997291598720681844586253828875844526046400139479884108367231603228566139858792108316801582768385318113417546643168657173096918282167384941416247032625727474963695628244259393021858774731747836816985845193286769824398695363653529227472783711328966611340429959337830322700191566533446409177774921646038563037148894788135071337387112612176249940330859207540307976956888041611718022821038247568554179801959700019068297659107775333134368778590759091109465412164390295698739220906158472733584135823364889905099959237427757583058028891424481174603418640073978608891276139821231472850397555363698363144533981255242882424698830387845573082286695999674377235808607523755735321221228050576149012943452713667651641049762278344309474094737930608297416671604187573341330509036631611055954357683568681073985007859185361011602832564349725466646677683985245085755154094076924868569415321020471323792025285098915213076922334182201072358625594798719705035398450689163588361517979700423340735151403311219569917387962419735884383798463195095653902653817467580215268231344589371988684401452992282089440493342484690610870013303485655783820580185913269626544518841990029124675712556334298197981655173617928837332485032031730337576110462367581404948943895898188756404330413474920516342977945702938963384386830949136388916096560597829911307608940462705007895113458300959403048588801328951143639082893124172828148474536874952258742871810375190818602834343818070887792925930111647195810850173875260939631813207947336646105954251753001916894624269162023581351379031269019352257936924479816793992257184129992265697636949663776162840296847128141626913174243600981057514050869050990110549125985217340711370716754034026612366022192716401391104352717863989039101005463152053542022103932197049661629301865508928663952079371598105851662172576711180907861506022913505830101907744328091216529282260244962911547657755397509227484736690668021083366612352605422930130992468174371564147199950815302245788786607536944161874819713733898292749858342976434726843664090376368073382815190861998974554994658796552521574711076541832395691520037999808757031615276837927248760465142816656886904553449706920696111208372145245231753237062023305696933158224045562819773653635038178810446477053291026178898067994412616380841647756723315345766874476146039197895452622606770423475965010456763330352866892351868399191072110155466103986692977207684468873394628723851858773078473036293712472442702131212441198944821672698985604506326073803242474198367901567828598005028037061172312511904326967725634722877362498966637924916428314233135547066744251123571476589669991019126450070487871151094248905039105284541807409031417348907386302126670296998706047041525085980648520842366388880774759387887359146932379523875504043039291173748833954404720908449061804761615622016604902940352817522605357884452899355238194291136917750099899094704993670295018055383368888207893112480566181890635976886149611821177259113471198963013213889774687975935352411539801348613738969045256073186306048946853873617407010951332046044579607491722673385215737124211489677965612215785598756601356154768962680582395040845734386407693078901756909016822381642792583567394737612981308864312378274402733654153092113342291843121449694883169380269452962790325404828574925455120786703219452643698170131901192589636932907977523488863049692811250039578462759255568860396278210553164366983670284154793413743228527367009945439277683396573133096415097515183302598472477452684789421271810268849036368968151359622893728889357255758465038848854874496430716723376494912869411447995684602711404447856917282923287845759174887328227602752161180327120660484184735936645297203203491203195869957954014189704980753010600418337970766707644523265257031804375828979801566208719549353041092743138207560085149531709889191576274252597434164746884312280895327031540981642021527880138001613157487605752131755507584806114212970370026732237615983717262199070010153555911722512951338702622812997273259696330021661171016425486470342934740334872464411892490609256480520755469663257813663243139159305884739966066653271988104271555541728499397916044185295663473469834632797167096329436698877729211382762786973240254124690656407546502927913065177338477751649668934106048535445552064828866888954989652554901224644763708753775975012324923717535698630840401965171741287803290988093792577687732037209145084443395836001021319501731195206296915496240677532787813110323383174900441322477758526554173690105469138671442976068613728111564503672536179829013571346170252221887170880007171187929925517007420269706882436297137461635341714894617696762273993326013469931235781158852694373406279313482073656101101642329787872632829576446337087747160548017654545346933065808609935603485261727727414744238727819239663373459495744040859858129625669886406512362170092025282188574953681919283442937573300504238671674137696555833784625737069911389863228560789950335007695670283355781067382167655955770759142650121216751546841341662855614911431372349041553188413056488264108336388350131313846073705685390924139261271972468326619245091975758091617625611061995322648426927032209444289456454225645464104049347309519128947764946989953161257777797033863690855618509169087919192230541678965651472377825846276312279680174160076650024436688040572096741643806036792527193076782961263441552567716445142746667558904846941515067861040998236477114917652327092556466467124905801763241994530708810911940609901510852154316895746994352628513939747134188598886592083863584321392933919422977771679651568573131049959954467666576394793158055479012757614969147116493026403901115021583585931826679518714142211089769407522097708130393673837657928809894296459788968993316948475233482647217961214935579015367453543137025135861542713177246842624262926381540147566460559424032516044651242986809274676198402443248081012912931717405043420699793243266790620729564432881731372388273786276176658717151610336695058881559858641733357698720087438670434167196308299508772365151678177453878400562606444016744854841920818305362518917740410864693357440618758248947048245978825276274615175527866727715532987976595309012712415633877877621310235942471346869071398410020689717344795862970987939375735316373242660605645251961385196374674422085747402234170406113418621167788521597074450305637352114585256079871856617063528606894116331602052488329196801324284357757835991584079330719054738031833019484935911107631709249077960576787972133757618698042001796168157755364538744069788944499559176460291985288315470053385617121621825911184510061343508730477234660362234864139957339667356038804295717262103946456903758542222413466881150389943509728470455196785111789391878045598107813907382263281255409270442883105123853305673240946455601851815918184073700401666361253052489998833180937961887811971058950190278078857328860779342633421944859819370180799300079997480102881869148420018413398294951702918816918424528327976757968959363722185226840394559165095506968112551702804913149680794906354165669012750340845239770120000128012746299450920348473945481053392224191168943012492391056440182150544071733846272751488381218828716559843937450235414748915863157348163437213692074981616185224369320005646320349082851190441823785745352500036067410061037335937614309565440404470734028873225062373744965888337453864460985592854141677740417954269763527861021064333903813304522667546897995803908836545334098262347255530251269534379423371291860030516888639720263539023550145621504859879534790313872545035936834488386866880808096883683356115705082381952104132889945224055076714744186418614382431830264701057785006238471327940445541917430404591530805172001528428217054207461391913599716657354887367199459098127881431216268125626960645793968884571648638368797809344152688123443996841012221602176044315719381253659614264185329231293623732023445118618246008112966480052507415472877788444172189330005230086727992536066762785778541861556403075680455113333573120498451239017342259212790806240945316985281022069206279891127523809150592283741737109999861497545307472419351874076358341038405915327173825960517988022417384510025186667578890463438935058014664502017615412674380682625539762686437075444134896090873673801118435460929564075759729355470437552142140978646979292195235581627977928375291709674071464263417141909961270034086474281268063984293001285256785845483568623862115081685190306476545635091470219468363123528266574172940802859799965963863497649377892990453107839111864545272087665442991476932632567174407453824684100194249000033450313659992673832911752901126880010666159373196878566191405522192336805646074552377148677482267971297867786008022739239157523437496955878461873416627191972620986149356008123303730303660415120797540585130644108428549915993371538985589606073160215685136421047747622424455816494940666729618835330779472294462763041447974918389346424411746760285061415534619658127332303766485877091212306872998780401575140347643821425197446458755671280698569003520455451262530712761855355939187163972110380394413565601774442285956739491489772312218679966821657039102580559847094844239280529656449603498931535631006454004926049458374086689214402779104689581841726886192181182240646228804353908610638364317620137941473674162212570602205045717196124720647167655514989264497881795099236225003457314869469183515320391490660683757401562625548464286993582455194889564751889011457980801473949948055831095746385216664737012201626785304432391198076744028132256899307912033136218062888659660238235820353048972771940967540086616026519446474109995302498055101795897772860901277255905195253668709591846624841261863547727543024634654448355101655113647476990046405574740184256188502491249067066185501257113760123743340316855999088810216381907022277452240603083727738892979471735286290686693327954014524821503366412878930809190809504854817791193598210673837860252641518883306198269014908238361539424963695335833832505692930997635747045768364342241212773982627066134681733110999700121338523125200214813638744224678040571785124613341759582888862134455274233875963471057373436900115619655607079453059370557648729416920350028522258157817020344681551235771186522047525601778039405192004514181122274687421507757826089042159385308912877043929108101565553238747273287024861028062459030106351368107611575373725657666595880511392894864326743129206909837707125987229401920987999878704939573260811246846883773231246405290251491520839666477112762732858001238436384544228877182220423511145803226385259340527865222587752774517136507096456789414443688843097161842778307768188837469706111963080920348865627694967568523827619803689266002302786040811545667120343899500230722336635950610538482572851866311725248718668849563054649722159251663613353733426469742729228263680985221553957587667308680807997566041834423103463843140857704250486091453764244185581032377434235782145644819205158719525856844819136000298328259914012635212231764527464274536185095830987845640905490140607344046683425944887134528394882903078597094512048653923212979108835134951776921384447577298755217951462187956124109748807700713753553219714896593150508659091298190097915121420327541572649921564430441767111314003731102205332579838832032709204942572338372375544765603102238954564400398417734800209014501886375511352438658343116414307833165455770365803802345877486754556059859434977177763113653162499644777984324148589429810899176856641516154098940477156332760558117536906745522542397180384463731477748603542178664649099552179017219973098075398773632724696885922791107651355210737520642159180287668770928111230562957525116782854489240024069522493036040227874104627103875764491584620518810229593348225032059913049195162873166781305855638814790888311854356184139456195155023735084900646870652179036341995636084179266841179660295929709934949965470047157563996439664461620591675284571969686693983983953771184866110504170572516294232290236367008833068596578450517259887865489618271445940938110734972936079230145480150792824015501378317740421228628399013633274355030531823360257175166086283376703438602925884077662942428832737250859026484621202875643668769400382772895132335182560984269166436153332584630298688743736914851551366368729732438723727978476015810443762051314399271144486997351219690437409951984800992157703851338657270326304680539482324748905132767771567730037794932905965168522448498421887225801168842689488815180939314860148144602029083305247674826125950785764608230819429298034952387131726789894878291509175792479774906112620444581780285017181938010415564013899674922294216491540754789958401442518208340944349317737134684340018789148210116016648011407037294727979401382055440422187793620234842359668579640138951524661970072786187249533847471831099174504038031034570172743759389935968629853598021061826933882165209699520101567709915396365912517131759331102166550816658163448394599440064758381990554275246671707009411551070535638611203533411922476565660433188163012731059682737864963973728082543374956155833568643201121914060154492771439417349040271131105390254472338886089373664061087807348916727215386964527883656088000844946020360143997547743955507277747377777642556334252432608083019519560191831585016379795640228431069711337738060927160193155427778400420853379406051593691542928323327079231528044429633910253311266084704212382554733381700744037523817666830609322917520886414145815765923772133553214768465280953488029990528510988314968646983472529686047399291322401347784227651156769974982578181403083150538204619982638356010486512475980435997424161033005153330310382609747860954142020097929331858736111534394650299280533389503338823119963778992671052282275798033266952697623436970800079055387532506901493407674043089951461688495220050488252495455152011675334311826903281403612218205099050706725688944644590996727052237643393186715924522384476780277217469182049251276933314063467687898298005831321750673689514067837425397492991999909845532652846033458114258207545557120284719778596898735677748927743375516669397392069635109040668135765790621535617732736961649742307046127262053517144371070033915059912083083892768829771133384293331523129782722096867623576647558784616394286847471436313907859336984424605007481470789989844919324960674376643427343104665589993483572940969327661450403396387089034482103519763254843931008922355611613622675689955088004030903840718496979719021205521757245867246993792359649960163717980216005216251405127090189693141341730691953876696636990137900975819177717001150336033474780245564552423402838415255652312985503690294357969200335646944585396219146017140681035733611020387948555553076157782021964183849742476046708046602237264630810882264228844586151787530413646610726048870185191157234169939737437538060437323772218810321307123323250271883619642524373728682707645704584232440639742217937205517929155647602661466093134816268311039606759313105146033907377976317917572772316557888978098738741278582338426061142640878089089509289870723981922469360725320796289573331037518535014289372031172244431407714030810348628029131365185665951310136228789997132544450806958092004304791170058130098068122850570767156514100362542341100428413004616310004226610066280916357058721142241751569033725738899414054306973507873090525068266622686308254234486415119691397724929740422242226788057880570897319180300103511512803036890501099674811287767006744999112196143458478031085256283185412966744482772297794938675218521129748927128624937897581357753192466445005750661420192997693184951579909530225267422268228103856587302585368852692919690217151604412733360462538661761120955359025299713100594757685473443419574990784911656785953578556050503051624167354325697280380592286418404950643588146066169077990943035942698505974332781310451940110784289062636045014677577893859910300220754832059509748895337110362486961262463761181120267410092031116429681488680019610485445191517885444235684149690511365429804706402397826184546876360206295953571746939340850297912066548344708340513630498421619188451595080889666423594825252923665688035811416225706502852808714462927898306655265666146512375342797989256487050623189359332673577214429370710765034787312601563512890285738106538717424852613862586006653682085181785141537286436442926754045162328978355132892735884494738024173971128889463364342839077685195632222498453706998819461044866128044130952078479983972351441385371760163012623267281108886168606453394730965205854974327572769706536924740488861145237128751556856168823450302542038039561301912598530524859918364787913778037198549525628423900667322110232265774125831315075644490456863275189131819985757214888219705998304753392110078585434571056219202265376902945227046264094989786441488643163346693357280522868301202158432288976522996955239007284551744724046628545077369562919503769402971282491914897676033412531236338684709424257446305657599877002575897336660811899156832089145510899015125264384576230119684622358662293979485685651862185656839744636530488059765861165545685812464940702531939263900700763145442529070332228263050702712448657820963450033583597117909694452742724476988776661331646365620813541651497058965789682674411870422812257709807237087809270037152874765737724769677728877463668051840005468526414285536092339371650258375732711526546592324179848647325144525602962376956569062375694785459603675219820721875404897503209987197374573998156836840739566961934206299072010280213729090000429385034510342508981344759104050776714128801876564031800435644692333370339331885812110134602455792381515983390281019270629384772472384734336557398551520176927524088894426226364105522971193093606533823112016456168728303112048705820367546356525298916288170373369048957205051829525650312530581793979221196638714823979591024176362573656096959241755755008573377525528755242807453126368624019399245106565624280043707564884599423048907732173659043606944578126551098920906171168270975477526846157795356056879984037166276704391058437753678151136122410662728487347214476120430877597602790311111613585683849001196344575949308700996960919269263254393938158899535114032890126854801124907333654843177003774302615885171524235640593426409638728857656707815175604039327783403953032062349296929206345704947466812666645684208379788136675143424273304423989499348887088857101147321877067236645274177509355074960517234112551568560777727693381267742061489524956567938735761454656800436571478189157175035995323193452597066380534940853114662955776826695834916780795451137973484196047835225456225407588622989942102595183595192029628195827584861671226723757870735468105935081452398336831780091697933630602384095616466185545553368180937031754977754198155817426206426428751894402241240892466202661166592807453140567502565430366909974328055164666932481019802755985265621633100961138110614969226552041816563725057037727615549974884736366519111811113185963054031052174052850259034438810879230238036328522592441988788364153481988977671642223444089813626169770716308168135998680958178701057898814491932728344184188529821487648490999363223604377257867927603183484751480406180979549034534144495277799139952079355715039487329414483014523924213597667128070927853603748850513032489032945410066129912126073408134942417444168029226726200040169889320724223922924164712573125245349292383418028363043374566826144447668627552268249093602090578452698194903653241576038686113814700922433892427505376615162084393885455009068135716971133201454667286971357457469287502568119596900935288383424355358269753571754752075549714207989540662956730927060852669244598465372836928625938617788423668058781083475765688762007628964706013897835204510903792302737460179291022715643987552002202400532666169482797456353642208200658631275260059998280720649090709787357173187028039991868419639247971607486434397437504032078166003876396451679293825772776360112974920279477363937782924315264875792878005127624321808589111228371550604450978998630824648778206968873930121771213569876922950110341686507586347959917389950298523869830103561659053438237265478044878643944547190298689983569355051919373083670928464349182181186561802259847653366644561318769766483493687805114225494467312617809647413518234670408426317137833344302672826404637970520566859831952498757782981282596524426418377636091244640745930677904840462454940071254301779893987385470990624825111558693630716465296466452405112012270408052481176532107497858181601221635908427977218425602591207128765285395745055289053419331149303016708603117653676198636798557856117456849247197219656303381213987200620050374507250117659945040380527399411077152717958272969472954763373243140087173047632004770637781243484980445438554473807968793468244889862885723140250573467407948826853590397589097470473630764045076151641871869982461566891811415536715291495214339773367379486521261562338664049994415488652256140006038554102027015766019453674336426333083704990116415524910555095198880722255984374041327557076507821376511149682763373498918494394226659055676486454053244260415578210204866888158749890238662775855635346030138712543057044260480250762422493600307842656859767878381008171767069856706884851475210599058686448953209602600860102393304902534290011606595279046283594079233187242757697395503064622352958915948320225529589246967691935951901037730539669411337201923789572001607437207212793848419296466465358243018507852721517812798354876812579997015967414512873347451321151549523122606109756155833834174334232093208179956794238849794288905399382838715051682680767953175128159919255951152647186549991363572328921808259387536034449344491118473804244034629940655601680275964246968952676768030757129154222450435313305450886313104416637157425328332677363837213470192895170974579260402053009577651593419682092886543513603975667046007660764608429695569358039401062477251984884704264793013075415023674927535332559918152657553571729789888255766359672543684757556969688782970750028739044992553350981727130753946285971376724261999554558939900762744707482414358755560209471875027350689995105599989909246969133289095803193369092097326171186810539665406974322060775713941737717724192799155731570842917527605335804015278114183894567062821061011873644092918059397833804736967153842367369369287109413910081127996451680533977892637344056308763818251713406623093197818665925138415995318041305775050079127904082220511991426401409738020561907936929190476478068404744982853214330426948717131637040511328976151812091486242916773634178705752583921271734146908310613039347731994972417272756979405618700247566402124424457528450789605356880404726640965347540178609897466955319272822615955313378038572555003295664029610265303675361658674813296268984090093983266256023727809320946917380052619568265001469828744257741265047985968682972216803259803606456074217275326790159064439954528515134174805620808502490508882579416603298790445363697336003336176678445992959585626329778243161070545004657815606155402996838700625399704414956578241056172411524685134629067501215807725568620207001055779076101735522694242949000101949505393973363155547344260785307512399179256837894974518592374832836440969970917923357230295965865237428554101709023505571653041942934540059920731623099778251678503719596386076285789386261113065154904165485641196933487402849150470560328067301750380177931671967831489625290804048760855940415689096332471139432484414867065610611336375393664903902796673698165166435012506026966831321374455340561566256975025476876831289415485030626481922402473519085166756322439661256241947279860409613332911480790052492425464477736209454776503908035866462871686544694121413341938496570302291683535853479178263521416516753695027060779586291855522146094293157471659026629595540704062989076606125912333962242502906717573973098933586398991084140780589611113320025430648297678692011410444206713792861437192741797992617500750907594388853402416914551915668989725048230303066947874561291788286858311397528607008645571717985279859644563293389635266528790932863287352387368468172329575308412257938204730810440776487837454714518859882590096734490649038454108426993559718147379770197133728333169266400789562581374717247956271965458061241279815452861089772681459893316962601958702444717821911467431527912120658717036591273813186310300275636359474755369161167885727575813343532045076055762316490519434615845596315496610238393831099935185382425579296532392836911592433499025944994816798960769765947635419763638010635321374598534997291774175694092633321483071367380379725809272991016310208233812904209459743465054655995293777502010851258937189785354773136506422773884850362051781525104930195207388439579830478278761534590084203441601412012074521492208407236599154433913809339776596899244593413741209782953273817012921466014913187938034483484289429893892098802026152482691533878681575604211475929030739563049791028234645368865594648135674008397384153598667804120526401051044362140338591388033278212214697973521649723952837741817862130948675777086156024748679902408030721386958177484754960466192210110261494468026107689349680179857073906878935740362058655494475567537640516643663814276644560157306837637901485718395253084820122965395295765866775507200529475728758221811969946590834555778553043900266235208151823556101164351688458697606349690691836935713940639876629472229053033098852964383104260123901541737004982816366655174242552700137241557660556368082858787235418184481259822525582639092310331638336257014795079329061924682713618049761203972110320231209006905307693555301564017597225665154816982861559084840652067141337169173376721672866640270736851565672285862474645494783555811510527227848105730533569101758152708401120697402056954654130080106906726476324625454638096375229243005321474671247951809560247399318390484303563356759704520613414385474098262140085190136320936874904991794024948795737410670822190012541866925349834415777628642004668338806137653148850758418273055676884793615579632001366682092624289222774241272159881937063163369002906810708666432788548793875503457357822571496831543100662529173566740569402140329350527428865314758682941350892970108867143413710333145998403972409243261730478041620682214408992246624037973452573404030985688317282117485940115711520128960554513603783592145536451722668563114235590337922759256473361976149615343462004262036596127096522692577488395829139767781620495978977022441758376627134179658399256742451697622106991167949679068984195567284794582230143698536933337159478529544406390461191409982712238178431255324039778154122171397649519226233002697191867052734727817688863424289641707254501052431256178981295698903580117336200586202014276666965649179523424396794489680698822719764766676874782354686791425811407883845729841647047748988663368599255922287530242846191200268326972064736471317854583680722002034788345121027934909118616603357116427660622131621252693107103378451243579915635301729154053697132489515386081411813661308363242492319032187397273691369003950499250294622553915006274761793043564866425339394303790497361443459787076598557033934054555864015122875588631578559048673974077456562700027462894782026031022710577648211492785204260564300931284223897086785741370389969686968113672282148366019131382950306669900006179666239785631534518695199256493543571708203193881400462150990042723276008171656879012907512913219770615806790987701542164805422884750912623711148040509955663782943693749507419620900458234314048774541209398376247113345779298263132829516536297523175993469826981899821301494394785537135671804210389398349877515738641502951055469712143159745143953747268829393458286471720435762300634317378873400963245694900758251406836183748946950052357137594192329374235287679791421301022959852088018376234290602298045555977698128841167024957055797414833933320790827963982818202382098025742473970112683021843554381363598652034876614833203999235260349985271413680831432649264817742612237146665478157151070410020720454415467562894173476616542232917245399588704835854986784364520036007544136329165230185493883655189660789215097576674365512874855015257305164511831015989069835992032721561623290412715419194115662481171182467212907602396866406737228960935706735404496635047072164997312508336986574655006234104665779383566440994744902288903555495427522775139087731491386455855960562588851712481275590308382587190495619845710299689470067086564616802766080230600370049984915633211276847700852886455248681732068583325882976938037490784954338977331425345148765519854288230771382250144536495388374578551254594410766148743441421860328129331591396528877408322236561109541167704017284754518266446928989144827477752823761975412508295837766583747106208765090446978617230982471949352456479654078884991799347629471291809328311296988786247308029822272714254478106508486573280525185294294101096908910591526241839512249600790537772282958882920109582548228628467326503003297776542345129924018212529679438276490295240668921053766422660092313818411064150147766133393515460288192479100559257679361272059549905988449632113916231876443434004957316874505085925633020740441570119170844001343728285693403769465103643674496872159769038736421588830872319586238577914766614950723038713561065169333883767815201727222874059532982734299650133051947595104049943502435351528165489801308966066066352677622766090113435456930967814424343384865956667816715587054298104108379733262183265328038754943606149168507901435888142611004223426781288041899833583824905638800272853719910376144130913316923923181737498831420280042587061784855617009722734977124052846215990179504142223715306868709844260249795638265596365667356187698264433059230459060506290232026420919291922569868915029791906428251004879067101206897772476132236837842004732582163390898341259793708744218792819234126634200261759591112149593560652551134810112773398736807464158681859325901985760144179567099869666320044602793338850310369793552217928024463418373154292962255291588982781136501328249102952422864006526907769910983806200233084573802985697395353119081404561217104818881639518343845824158332643414171481689343089454780065557785088974328141207403802481538113751866923826907836647429432934574664858537150859780673068372256403756064897496511341884055530310352022928452882959404065416316348683732629868481800973885973238337751083971843403190048489417985722683207525850286393262694880124133683277354588338039691703326990188982715903569342009767477269580171194323598928177471758133625451995501484154815243886280829814690679845408680585382591073695568313323925519865369697302806309391842167016815504965281982644006896889317246440512509947666678842548847352653649874005183177752884866902026804528931288614471139862319986338606591092018289410476154685075154575585984093446007484097899391050265927699495439283708418416152591651715588593720250332511069249828981254922519389324180358871429016063640017710312057361963093805339403963090328239837405723047881327442106374895961604259750121528757982084792526685934570289284045215698014213651666467677199867496867916170437979094618713133739595972541110975057816512531325503305329542281375227902481007760294025768090236967496036674961922379596981164780133633697158307872013262691719065576710557749980097324556076653512146313827639964019311972711777223304381212321890903329681546263315308733493019033326735393320391173804810061070308875824747832885674411422086780837242715067726556070673101160072494280479749348415782704346464488076323515785238910604985871104405245159149215677170259205440228832775032157930604403192843886102658658795274717215463097928749473863176724266021805437827525112283034537308283688189678789105343188498792298439375665467663183704763444245512291582627730116622598460325121814770952968654801420586599194236136184754642371935166410817219261810566091227109961199119465818532005545563653589986177141053194701814921517964524644588479035083248420043325269848537663750828936149837013833933932324884551099174255197236546871823052912903962056315592462007866546638030099923011390202860866373358842693707355576562354564537871536327442636495165940787880206596975968899488297237246602872894952672065223419282171051351798148580863043567638731568016193817345022801847541016423687543952162755424401214081072680391933178298642295839515479601498246697119243249308977690683667434821927157681822089071951499254453127788229998160171381306671776263277886696286933533414360939779819767791074030059656577049458250282583870783734320210832212939692169686268896446776303097119590445969290863097777047019314202543298505746152167035646427741199759055845523782537018380781998723190885846429055940665880845323636614501782491611941900053590561652470526336577372961642970931698244249296168544292958868016094735024131988562464038375467200631184022334841087401599214466180846542125846419064630811247552413081460510137875365016331586541497901889517700618263491626348551529060716000635222308104528974334034729002879565447551210223859197012627161992637585488132297136188723455264652854932157394025461624460987820262727504938470542199298100876967270992722843158531873011682909954556315141255948234134636221031024686196623556969883699407577023134412438787017400670667241422926061776083167622989251661683804015508727452273311615549431185139149674861370310817214334869006264810042258631178348731892192510593214156895074402770691580892750842139247041703979040673526426332564090641582151567989948384465406949064296579416074730856111320807465310426247169098388847064432548426424591377235269616627742448923139653511584032991595098993097072624094722441312305986175899684779043281499536944659567557858814257170215556029561688062445830030042727665021594295317623266503301405173640809824527645739784656068910985921844232011114326744876706713704582622163702059468566230820259857506516443013912066003366769962379121784708179574520249304998211737233290256505047501380990436765073532561562213789031005447713201652746602834600743455181607285185111689836559835674082062397495377994482465119931923771473217242885296593991992471503591450725242215039308455021602718360185767031389018361805406368013501013429317483162691114283811724056408989150615593335975766296739514474791259081624628806554605664577266735386316728905886284857099421756717988079420484175519395859434713852579483290005228061536207701321532531152383858603109319834291369353928451300837508848156466033369247735424518626550607664578890625876461273385234301190477102595877141150396057592754360263318118376085893927078768622740487846436181577631726280047310012474350224507554333249730048384843821145916604342420475209081532935272956673468528892640455212227691111697256872473463962587512670616246193259909047453866424226582364725365598759697377550547876105616447777381558287666874557396999555527863216387447826125993823359443180783377558103811939573813851515683950846185378566466732470965309033683805149870986112088971522887529324689892244509572434860211792135006304333941984517180576687601935724779993217264075699239088419999970866359524368622787099021699775746553623836717234048902489359476639706901570629890410622295650079525917924957860393826809199641578959541997368614504211283295041051569299347186090544015363438791463367248185980447491643848843403820436203326640407771684236082435200274669374797891215478321864925936250140263350212902577940651228392510509559336190358067086736367829996822862223440249339292561805774008813450499829971271434071635360077699747609871724822617452432365747426908605420746515559265360407484886731490123569227404301628100550579595880394062625863022719833359737387151075281694937975265178442858821106531369685696129856690636557300784054730232277265417464591442507005483045428362458735037779106641423300319841835097678956743449502892032332489232027625212618533806875139470247354898685836873469301660763142316760382969252104957746148186154689127014080071460139628155693124357794671555360658307894556634655387972675540758746540925609016372532131034278790289654159806125443950067016153743766645641761769486486010001164416569662056829970944934358214904026847242976973640777112821116990118390888357402215042354657810483386948930882250820328636001890702186730697351940149117627800108935687613031178900324978290489884101002967744551963339506495810640170461771604812702022514800594408834467389629716572747208591772270290905168289621558899209778473943108129164948085795460267965169505988278634415526913867928882578805550832926101520987555881557583170906431517221738796979527786235056274234223769783389030764426115215223359503933426916609467448565199708809816552450257600079129647350042963343690067043456899571748491304402497490236797393701480307094466541574338096399256660524052850075268763348307621642248158061497836699839826364570505697627666068461375869928743956812284512247512928438413104770135221838475987994138815412829711659238344261246311899059449645830072477222161907924479950432417460036441399169449224674997575469025892610908691125302475327747346995411495167356146613728669481223676315086034758127675811209333672357582351730743744015590424857748071570567638359784621646749272877570049790351048721422459313322154251836344135413429107033257157561236720120524083076083179136388718873585238323310520141971369764270526945725461546602357433565817523360258798788119224733249282950197705234105044133396794662747855954863302577176591575427583704625473644042110861508936072694484290380158013264766508439293210308394970648261086866471550825173604221429495626298370336885216298482798789355057887258972736826565018349435585719017218798534182162567521432180189416171657837931745249488706208659294245626398681682194307915475157828635435706760839918536099301267786900584119205981652443786052149400166223280527334866877313048968470845937376612547318388805779131089535287476908249313880045816560124926937321226095380073206407477179532457473067416960267825313599523005180200952477100530415990753657095186214654192894947628490781809752955147107381814336343818958091492350826301212831565303057843619389308273295211162293504887967484312720058354675806878169703366236174196190292730915030443293443565352223834067901219361918517102106521545820593225550840016721617810907114384269902948774596597048798184525340495816230791112998366427922840987491511093852662185281144882804318830387445189907103070218347403841633032523958043202377427648484257460578336437956771518920351234991922913394656340001377998675100377284780670276679632882719464135215748675039764601859912589996841851600276187549279676909963435513499785445763310730767945368153219640986702451598271111206284488402959664426552513230366422077841282707878965411279550865752434100010799266036439677584022389779890339047112410558335659906373859643427729603379057846612285721820537203288223797928871420399485746532100387466801041985804022537900125816390395436191378469860883135654897977976613538639118792618162841798773517033024964997390237844206683024064956465888048994715752651557236765813833062556689781772352610789755011859330386856871245363338553570663305734640526116376371379726862670236141286109880591071024900073700309125759116224002626211617768333022344526079045372176005357489889388423456384025731611187556927288871264309906374805641010955075034703261688451707326852202038978438263097823047527224213101902908484750695149578111100326540637664416238428914844894224830415893090046124009715662124120960062102254571870389888137165027261632281704655647645786847458451393815501453862788881431418051208933647763484551708094943858456354774840818558700276176841419505429380366278729714414911498310663362668621941292546446555931324817781043587287541729969452989173159211402240352281027061700184604095303690186722990365822342877538536091017937066284013796310613026699126669308762941732616576916023548870710875308917738936167218647829712961385932102331903384183901279718073777541781484352279239793481718952679052460342228423902056242972830322678320716400896851347828306021662606965501536120886156594095057918296642449716371094188459046979851081308060924296835596277437806869902187920916240863385115297262584382476944294265675366022527805270601551583655777578864695018850346914211584008176170125773788052500871193034922247171207740321331087756694102156410874348787476032939642043900095240572447801687312237771560422521275495535572847762893404465002550506573973528266476794483870629479268322662777138857677368429217747811427563259792079738964692280867396804108067309354258972514779263160304212747936893985695627897929940278847854880302524179977566408468454774174339747748933934341224660102666570944376888271560054070228401490614594559081007973050195810587857373393953683703748594514723783185913006788942286292271577165605869141324793953921256508271596132912555815906447205374671600214519180831899936833344544460366734939388156135184587327318477881524305416175462533951304595595772039931288168092653552702491783307130011433053417675908640375081107269437412591644981810153556049750643935891275524618470748381527852547772305375915984046306738340381250815333559118920387753595839083291708582450777578234173188337674644436785878989394013965899099510082635231127459815956848830284756276317517446449945109894914173964376264370264438006973829394339208178211747460312812006419932635780989371256110558886418709958127343561619532600017566275019407245826295611639822824961977731356336448019253562715071456884261998822193778918403925908840560095273684863897863466983899031974547301569128266351845486397184203829443607377604246141514497418717302493013085614543427476001371426577578686554029534836873744017122371143917171337693868455338951661834127200830534075825137120993468500400931677697429108729809078380828041305288373812342025749579161695440670561228357977872791687870379391474613479932309555408418012521664574384828801322805699238676393620674635705725461063256054977286635038886321368009143852266023204680845969596945104245087996604481898743051476682239722251185152121693724245374147245288569189306710050578142868948800409255078807908133118966038191320363156210175326968633580098046280553412377318969706541312492280254650406617107932079896650696942585297256945583801555512425532792776214166298500158471839452704681704877879499425095727010127530251494714994103311600741526366646371546086481581741378721345411149764587792898708267796623850660135470575811964354329144667455815275750580851206795850641244915324591865076117382601727273477274378818418755128710235766711341497440794802964232658477970258101022796296763563144222289752947429114633898713461978882817367439143539558933483241406301295471393401691746515609967996031958291759674445866086177999732248804408612787315615731250768787091499813976632235312422968369450497407979129105613702202532076822835266415245715915043005551477523363164611444057292604884847766094117244032590368987619830484800616033096537593889032237386623058076795960723792724452556691699245870369315726488705040065493078442253821523746716460209790860140816435750833037617540757294926476140439835709571133548574256716905682053106460054369198093818964706471128470590118743164490134474963682071846495839900464419061055229099620673867732017725996588704365695236240002894775307379637409164751579030774114405070226761509523947066831856055537419399009895319549172191927781318236475685921232523914757284908313124771609363173026635237325853721285148241845082080559145116782842341971154826689494148781836780527180645871042721268483378444701637947760263247131655177894443217852682039021404267144161355757779459075905681661466386570262004522317470833524969944607066181876349254297279769596283973021007173917262397443328000757140720022775812165945351258655876849666310581448798924160391917965577379590721378094201126259874089063458811689699364564882621959066319188005460204824046752011620831324892095505723240305139160260431147151256188548389561630014347995128510087531763394483260682567745606008811526412012299413954082144894356559001099868289909175683317261547805374625537045429243806767126789597462426650163385478489762842388750018517183409498755346155805160510473257782766092844878320024263832423368874922335391971418451350287381945155224033247346094190371964725180995638308987411018090533604655330472661389718863222934265904670387766288867861239397425827646835197127904236746157894143102256304552512697468403214887464140194021816940795729334898052943720859094716655123234415590048732258639770145602700440370432602665394121180653315150514970743253185975351399619254048849116165525326443797402155764955642887639671917734934264187879857512963035799019753882281152792031888031977473633931924785011126423289457185224257139058486966407912946169424061053293330684141796133108966609322172685211492024796390807853676430900286621789520718327315320202966783305721786359254314950848697923925769622686483080113320390291391325414611622879326186872589374798585430762219512478410345470544989221792575706824976876302597475132526912677415799306471371088281822108622465562545617533678983358876056047406572583260937125159772832781665774890223053928304008791181368172693341860835061311963777496924880554392795521211349742401498931973161082215229507445201799303222838882260445643342272571322601706893538717827253813812068068504223548266867479917935893958602152247865596397691842812137010053322208583910811694848977781584396993815677102761452446272386650665134496382187151999351612019314891406248731365869202471781636465027663351293241969693015457379240141128455455551053454211700296938761258086901585759656372072491645099835269031359700033579526475539537814902693270144951292214001127677247815636987447644488894802142841297042783541055088092348621924885324679231692267675332729719960995040194227778285936707913371914417751917795143451641080533897733858086795705826962987633310927222840397047718888174288894623759297064106563648216905431832200574831549509383832279218397675928025602423062340047917014053862291951316576885629679767272173676182186945732745126841838080792518523377070182025968051824238393896442324368081222241405826101580304706590271750498419815217413419490749339814415840840622060171842467546366501797393260491239364386070952348562642534761381471953914795030456842627890825196735614172857666952913539243664491378400647019332050118033384906107598319487746485792049128066347710199786577316485197102268272494371121229453081515744118269050015577645471505581328364780969315799307002559820560831901626016653233772237087858532831832355763516042704927998139617195931084727100541199194947660761613522486116368280683365062460702815413240440700476092968156352249590136464271318250185125818252077712556664344064938509270274095795281976229997968988722899347827044581509060226782070069341302475466975260297054727096274765934964869512180050901741732635592197079644257640562814170530317115398455893979452446516122537420236617271546916400419503024635974917908341119645077482260013972319616455436501819387593244626146660485100267218646742367089450518776521661193141028826565982500460955073823356717735048433142988618593311173357834369357881377876730351972844328531584130266603690090366646970869721138381618010339927491117437358053519197242678522582011091345859542884291632884682363490245668678754143352244632516112217903427581684134229051632015170935814939420009633692750627781263040498337086148074752184872660349758244320605187895708811391638861608675012603907013010539642135110993579437531516730625237778697920816966987729125898678350437226932877535597927204719044432040993230339311755452703350163253365036229221331745969113006001132852466993227329156757940382164435402206404021498257365399633576376502143379647893983416388100155319743146934462116422305804438975009985332259444627805709246952823152025399323408552566631191587172430274930598652756222122166493313364154667008994875185370802450441659403101310123795535452639498129938180698392535663416893470328686539357198864508998828686018234690067333591920442448959543640934115053667317607302488967489024270912684835461900138260571936581853853669924054025448618553814433758778328114944318997375267157891367892820856362616091704533306708618762107610615317044284051227192320694954171056810297525767129278839730955671073551380436807794261033141346586537617881538933105776031810233376403180833080878349028072936425757444340421243353867447259434595366996786821921420186659464565544641244001009096651854673850272769029993505580710670477010254368158570992835362692288206855800696074057468568532032789223180122918748903003794223421581968528543518651978074391944818359296667762576613037697716893821216099381156612761747634552929418078126168819682569830756835974794515759510188336020358801377727154659941568099098382048101972597287776151708544201895016968730354656665411838655217996591724152058948587025274141910427127815758047830730177170996794072999406756865321835694867423898565001421802683271073075710984397748495146846481778362364728867593534901256892041977790013759964425175292600384115670328872283280446414709389212427692415701114060584469554740549304542519101326766350824796597678224361746186782122068589551172464878933027558249044685041403329151971362478643821126235548531825056192288235472529719210556322391321058353289385031482016746884661689964614320411233086745571910540588783691865254088043667789900298086106241794253924518638451051089753779479778362179083193581699043361605728951010276347178565076199291350873139279454277635953946189988393043572520586460665969394694685382611640066503016281166781380698825678708874863554755413503519427918751899973860175045121216484881360222088597808854250584012100003847248966406847156219761680385178315280089342396530511278642053558141231529679127448055231324474585813242335086766021049395727798974677224223365164227705892290121724539830124315538573563285563213079287423339790923815049010835290648410353443441192949102943507071424540790824875476595638413305312888187329370952968712438778621065587919584065361695108115819790490088802953113207241262916504289351377002096008134234520370852156021506042482407992566459548456011123920119158220474490470234628744602813199240642436692048198527961130149281673574205493197699161580964148109131156544612546297449448272023364305201702908040812797774976849830551904137527069052389580659693030855052615534384149098677537418161070274666833686451601938782643869625057791006191445225483097947398285720977674050382200865008836262245932357252457784774989419797473048985053031289830168513659636583204417278514398732924251887375402666416747013182610679510470294120694935409003263409158230591913310203921546356535273123966638000734736351743870532021802510411911524320339673432254342145630537971884953236587692969150620770031406939963657675987984130482862326728836625328696176830181751629863655155886303839851323152140512058954770334736027119197513682725691322719925945785707278039409969580762043801749021566716735621023643646573305476800507476239917109672404965878074322971743141003082522796942197308720269952687498569830767453509728294544829061751173784813176100646131488615332798602732337632048455688294108073264445506273380748380059021469157460941304704809504522477330301378035891823458581760752355429846383880002064658961519926294983231023448376427459503562092265999402513956737465114388093235609343400146073875660629169932245434325772874179728433666370104443552726939959214369709403027930089784278813340103778673952831181145014833362773999162312923816121388680665730242875489829254138228933599302482962300571273222692999254723369451722340306297448454654815412109027147262041952323791173402790679553042671398122912104466384109659626894540100113864910603297822483954000133851629916009512919685689387613283731654501311064348972064682351342323048278605775478394225942012268497902465617136899071440310423572840988208039446397528227564535152870153350980386627248868144357821975344764003099903173682837648553527684259997482847749412057018856918567939127703563110984200968767461437145983939416709185861368209215301979501325798292745014137393506856451610854723876283222618487280355962746060731326642171989840282865276322251782443536024499941079001269276495930610281816367550913797631684042362227553451669109033784480650988642905509101619452451185549414963639430313116685603145018345812072175850186245453887332499543739083436926785410786413833964080875237210671168934359723325300104933457205305665294455861270452169803158925320104004963952561156267520674466806928981020067752629104029474227904163048481002334337364085860501817593708016070231077688283701126741228965087553783369237430106107589107452812500058720103836034868569250554951065322944077490257290396717449072997691301450025141792754863716477373611024817228924700561045931275185360114433210894436044935987487328845754208652097237414925507676650706216293395654569368137515740437447145986312722843952787733239752332123214457278318116888704050617740682898589125003057917855733415955360293638697107386735099665855479051185455029554669519124067495698772266478985682728419139484277390948182655212339676604024540131882860637348885198227367890046813927551830936534458838514632819565709274969651443524352422207075791863823765268197285669688593730411461463500928664498863724861291381640201047062236007702262662669002307158271793620249115531970093787212331055855271912082405699671125920267563721746389576981098671044967465450483007449477686220647279718583074219614061820280310845642185397111073650850538366484685583849982305990148257322262625317253414609284524028554867831466818418184082905481521043677900041806845804873113837432779702901193130361620046385980639682211844913792129096902277361890438029897747087301369618504376769977167857213679627469068423150275710229375382682009702924247158932887205935986022425161709574204399952307383572259580706975436248186024695834318539560799570935068347125142339952191593932955622588007776707520500039356154708210618639443223826500232210347675488533683409537632129798916811561186677171374760014578300438803136190686335157440012118173340658574939893512980044501754162439690178585556882536908536660962637239123770684370788943803674833339419220615579122334764412585531082722415520760818134581382270742919279760064224206157437820000998324180783900465856401807768599074788316814739592310116266049024370020800802957707207518558107561394384357261159600602125944172121923143292780546055058121772146801622276811290249330645391203257234788636932241488044560540404000048776604418681681290414590282389793101631346434292298804375145283869463120225633485613689833347138593464122013958909929890909222065942013136972371964471053302864697088143951425678237291992597226254348162804025561166359378121040328582664275295551815169676430294469876523539504347823659588548616823877842493381673208538224478406852922943292607996337190427482000047822682146230436748619619413636052415692085267433045336450846224840543214000977758785707965789821572441362910465366283397072486824850932945363020521164313828904866606815754092874935922534427712106463976608965623043463242135231157817778915432701719375818536687244997936646771592656121563634491876060157334989445122037502907331849743146989364786487532549328707670708113141001617212666062105927228227002455523131974959394701347659947329730349014898267097755016066820098515762678385000564050392255966060592195382129280464363692609005214709700804567247754358623770060440917066327600549016708250311149053519815106821604441816912201003925844454261749309573755674465219908295478087848744162067882712162359339314284559813700194186121006128735695938450216619823957214147435025163519240775663873153270939824618044526230494350185348541749123200290073616895757717014857043810457825330448736973547757308307532475647128181784164853471314214725214658741177493787325777819202241628801326756149954471747183550356328840792596184966325743837641581318216348558282268277101158744286875233505819580790568914325895017970086214125226138097076297138748489406493901314320065371252291147931909958297194046475629663849188578857363662416585215074277851884588855046759846951260597390400788432821333987277409223675568222465208791439533330496034516555671084596040178276874710864265028721008899346705823109664886935809591443339500878059638009663103111240886569343756372836917865372626828932358296447919077699655215633097242296237658101658254928457970019536329320557067266456871706139495689451242809839370768035948238265743126777626728700422690233317932458211269254649693409696107217098960054847150211611114574348231550426505019473598758268371241661495643734045428541976951684050694558721347319247001677801048328108997934685208624033937820998658756738548027094356223122092495778168720414255835990880599687994513109740911188936345970470415466389680633850188939371909073217734104416438984616446510714966460042599949503326877858046951551411421649550042688854810128507186582775636464392322707198849762145195945721496583748898391880832945484200815957585161841286089771019425907673925009988161550873908767877949600647939641124320620948600063728084326279031637022161661776162163319705513955211245450404904773397278392376651334343300452448659770591273912672032632571514369662381261262491763319149319111764391586830921699397586992271244731330106967483011281501780244567529906504328942850148344237133293458450255367111209373486341698228548813626540744180946373190695531642611519631712651828811803853381861069162285737506924623516326640384288777218937555064829221514862720952830979590818068366818045268703999866198366463211027603936320340977683416141283512034108165525668057323942383072492539945249214735435706394203219612465754123816237852754752069250992326499338942184456170233965484062070093813707900810368056476020342411332351231294955785494465564635016705343473422302124659731133422992463185312896870913294409499263938661184526329643424387988512355171027188118433884133409401764898795921081129772350251222755087986671544608319213267154108784117342720721926962566543593918173775123774607662091058264973570225401693026196141151696924046870519714579077370848124002977749379881284644759735623692643742056762725316884313934550354727037924337601667208692163956621680875821669914071820081977483632286026004250828267147599627120102278488079814724691403567502260902890128578074675589734346647921581960349788087492617575954782268192779546094044594429404657912813852137038937575462413275917992528058996983612343373907672308441517025019014121967133680941621665541251573734128632021055078891779656310657553140743455946286385324243228558576864442965250508441770855678583393167783354510899006305236327598055017227455172006969806357035814697212433512204114966059531164542479212996896829431893880554645869088171790170035324452050998711969290572143461964195470924600530205697532253124141496379738439157249532040924026270752207808026275193914970119407511665723016051818596794229768062862950566603598651753203410502640275079614336083775333129318270927228111404969642178419817786407898288155493348419069708810482122061300829308934552480819351691559230788904329343266313979354489565547438742303713745403621406292405036565821919989987316010582789933478305358777437805333543693804385753131618586393155252880500858775908685514573433042837727564941598753803001801357087288618407981814338071030273783218433783461802543177810097232830213677821696925523649542771947039544512117598831359811034006541421608054003282006127271112616303298512985693437626270047966286232840746305840786814995712175082150905041423419619298767929172708264358406519900588130180101510538546506815967860122049854082831151445712115653692522530680384509831361363999396274926408950611121191207319288124297210294512101281194707784203233573563283578119936545409360656319210590446912385815144376550600426820625226911646987982192562231308532525930752934257281753122501219743539740654826391123687295417987925462810854093544718267692574211372125266439911253471069036813098043126583264783270475549584118291706270146580672714757977282447110159633440563287116651136112476952270312264666196675633485847078413266201891912517257784361284103729433525459766645264242319393439015624129241236708030850746224444813680019545313946778645335823929486878103222910048846881721338854906244104135489245022994623976664454447002124040470448904200700844079887702314265783496021977420318900489048716689805439254757725243005102219786590253739528182740979101867669936492865971484621330911833351875694996204699371990459411983313506642820097986711369044593924410035128629570793721807644618978652764179378762879179787124012808019748536810718412134954858252725484881528142230986550623597309376160949028899437776530679580673502644209079410132308170072477327509379339363253376972368212847193838538218435260384612921316838299932956898415014792646312954041756543924433814976793299662791446341474207871622430336439454896813517908958233228474104382302145504784703683811320115325918277742002358988422489427650066072613642958043825205634688841860228722823308771715909659729495615966545662172750258131049100597975231440177929485358544592869960790712185864723996125121950054299747836892090755686871230330064934498784340712777292221248435374444628713358251702598073751471889035560715179366544304433447325923022802831225529298528965240282084934113428341607741295640937254828379716241639109952801676419996332405817780119328765450359519724678753820426668224629026453980241873942647667937850675555363711125863005461100746470235931018993150179579739344197499586968904995217196202649972347993866953789423125932653119722701840732712697544499994189256512798134668832986970439580273656662840586395197138621534949262879061736341089284416436697080010926942995877232909513368669335552819588032166323552551895254197457673425148341933237137353266187738574547774951939468939785837769870697859837474861702509047462264434253039496658953806224618666328653614019109792634287691325572413304670489206088646242757671380819110574034434929854910162319620487367996864327072515933495169638066303923974808560426332451152499878837396162136349664041579573423248540908335296571263454961982394134903784939322334473164502063061642821720221179889966993004176615969196120484309669703977685241840934976735038927164759568813729634161644202861201936166632098850798876819437088964073123531261355733864938285036706457217576147816917636190990285577917807158574069741404332567483794310138935844284193044776279769620894717912523511722727316466610805294684157357367033711040273427638622904626600691160077794808008109659001247550889868626324650954152899358876737632263666447169106472110761061803439560248992598029389588079509207788452922245221817594908493496843152920148781753997677949357955290973990471525845548258260218049113001533899892739066171754938687491737139420916908694356874753786991946649643721339281157460142030857004216038999087727615980246361875422578810833995398949191200596403502377759401201682263531962036593181573467317278546923494368805226970421750695507810503293218053593635433448350117723751963967461440630643871677519212212109620025158649967618535947570979582012752512538071274532662065558425663394051617187053213259301164174459543996694799377792716552484656114095976069281928471835131234880406225139613489702686698927272268068207168856189210263486020787436737676473231969900432428931423060739734284238518339549175141971721333898415221824561971303549663365808902507846505284881359811423579635094332679128128014899203613878195934498467307854353458369333371511401647155293173868184351724192990564689383389316987262900777637657959546868171082693164194716764295855925736312923719166451427963229695670020467987430244267038125044176212263854306205008877682311085548691602657960406339968133369852097592960752751102779046266228664823674867438878275066722189757954655374871470035145317643039985069525174098894276810105242711167086436156150324140080222102369305886629399365138834270381742033564990709829274504897286991822708232410769927521438769718018442262779587099546463136072677351721445659904188783606426188847174046406313531616252176093921111833268678514617834302934613318975656483939458425259794946287067029954674006899960449677175529030447013184574486647087419371142421006427288074554276852807402519158351751861261170259665812045571445489473717953873757297909863412378446244047924437367806902131583944948756405473304956843806584428540839977716585571301513291441650006568031862693489015784713395123494057169222793134941807166043554247888707230229295399523489330715544681680541894303337948722653104746665255536625220423612728435231069387639589418776309120744213950840737230755077975208205728673081364611318813732858467399654693979531701148407000239469546154259479236866035013654869202150042580056471276196576434648639824819097390180526178103643610229385452804253633214120853447888641617350278919522156723967158675200211515199963999921534940193715442942427317299720993385992718764604177378425173666107286256938549999214819306137595313206592176366392791995619653607124452674377875330915900424064105327540585808565314776678850478721421095191265270390573009596361749881096604334362384762522412891666316175550626579769540127273543255715533639443354506681066128960268353887165765172279270643157482529082043130441487090521279254930687588701464135235927889812938860068215798558527598442600835804506347994677513422522743508125646852365927386048805273145739659313072475813780947626156939939760613007050584385928632679665813837291554640217729875912149663991412932352012355682108474851384875359363670676040350767816515808961253670113130297752752567359961639276222421587743245143619782973092878178056894448123345611617506789218277184735939541514084684909051279266851301689249970500700834459724709427784696140983577014985493376554757235826549200076484931686906885269029247792009926589852800110800533769784574471705274576945275502220974060549356382455504616216658347523860185690232613830798645736795177612962729286029691877519241233394664314182328056073222728176771811806310369920250091880348579600077877901981054254361267200953046967657665546441436175992190701587951940003532905921372451975864056172567261950895422108798171304248614761235995299459942582745673518354723335249661937200253360871399883590689229886637274041574584610556981278462603958937738439224917213834826829772084691039901649735898926602701828245657043851269461271250900863894360317583393339482874144005583756822463979687786528701114520952556977411930379603464143414270948035282495500470672882252330218326439121076032391479653047657149582192737416060212209415280196872119073760880491921862218573002423696280061993473723061984839134650161075523771539988595875507467508229980921823375084177056633278904400106029771853045544976555662656744163216694046478216975982005472743168083151637387591446495550055008590483415455148674314259099368236665167138621845886676086149625165513379241878324053706490884068970858784424726317152412100254144089949507697014180218589644728928207827273493485135694069159408771894002335954680213694842768080612247922403958745849254192661479365227271849675499058944920977959935727695329279599260320165117643718653686269409448207396192778972268293256031335864935683008456610177772792919211912868140782879241092235953418422182867634471198020325096627477073817758979728492315011617632488992854489046700547453199870280088453842406909200180479476738485463535621937759779917110223871552204838839057043491979475859406437965933360434339456158444709822692334954102921072942375305830439051870451703581405217448917927679463439009106878153645132644277192046531144147528029809631787025434604970492720926326155400075508179111869677308214830432468804191094700298097128064034275979732128357283597191323505149532290808972363762719913567036322708606395207288807404400242662614505329751491845347871793434618805711372964382016002288349134408020616558699588345713172635899340594652218500632680224423682960626488820496884252403690118576836870554013851992808677559685070340920976041673928574427540824650533208654918606347896218785268060363827222018082787232017615796766818320316013690533924816236375339724913675626330563190316734727076069716630008985156137196729960270733246528913381960029720740346141258202489294257190759444244694850164688743871252049597533367020623367534668308312293829623808766681045723938019912680312341297463441034510065743366273551656940704193167407422795539767439416857093888322172356116471574466798271115859400737085139402290334710388635868781635171796270421585948173640004089806506783850307973781205711377418526817790990828888162956521131895971785716568758677643954112536893802349919284198000648138958425072254817653044121837673093265292057240878838613240137490764741304702377182994285868781311264062932146468940748590953776744675835511631836900256992364895774129838981080505753158632370222688134332908320174610374833943816060668813939400733205325633018774956814845856032142907506421444537038764683828423416811742336466955779705738207018167519181856191484056985329094609143152658692310764869661486831903562442249477665468360586819158654910920389705980359420705768164104883940799894110820307292271283733421447541117886238116322250418086366988591888775090277070638393885382815824105776667681117884972745259564181560080641484870124040308100949572605832921850979507899459946335669539640723099214637725037337153587309833204156951092505848105727458643733789177501617391907663108691451549669105755455208431580526170971241434335599339143464555803425876959961675176177270390155814828984486950202771979403941853818464408264067987848038205779351415383114920526908332445107503866257219719214957397349433498631663301503331901490003472444474737217911562105980255693465849384602821437378601918491011386708392839623594527960510031565382909833296694856477147857020760745803512190843066205708237305641411555687419503469793800734084603062077246412763863382544723952858109843213316047375508298334967533562015787513878763198306611610186397007001446748255383375433175705374668769230967038916719878583277454829977259072313578452987648862916679293678435064459327872193942771598673902410185073109029271818624386717436521052668204704662360748289410159302284597588666632521848030652461870408060796854256708611979262622885528545689427500335240677182474503096067187304375727801388438256524224085856189494555844798461033329814558650203965611670717168009823029161122122627306750034376085770898433520569985172252000360547042649208375708209482844857434347695479534344285070194075466939236931792070354089701658838988856732572192264091299879113862417506011216200707793198356417022599685675128461098661110566211964192700414929414439283738367839497538500637027143235877492712221682378906719411040908602365143584072094681081386543720751588571417675402724202882455305956294981545478014068874454054536930083357457730680098652861270599771272073606156681322508270130428515282653812391254457995603811617781193381162775273837826933900211127599275611973971687870526686277402384282678792272248127248032106071898539449620393831882865773762332980947910482889046666373536208760714732364208887712570843616044536030126198988102299245122897812931475606433926206462380047072863686512033200451429189604860428566290529664739129232136344507886816859321034907808774736201951643034978116676351742916033554048275020668544433941230861756382880796337483274054491494809627886582189933031393543838678844680980299788143362766870898764403393131757066309577436833368913627778693111349079803825046681960154853839164150932723612160845354920283863441068835003139674252769782389775426790391793473037082745073789271749061586100395562154295276764677326180247225236886316775396751410750851411161037560056055834650220418573001083517860535589496758323487241225085451115337880609648751463443377320574774992827054864611770449908277342526085039546057166826722530362278468601312239591132474425315834908707813340704464262598726508263694501274588570306289062597061691939466026172062560858738385000833616531514289828618856110736642845659372510188178521334858993978691808351913202254829874464164243153969723310772574126116143781395682713344612925158622922522986716631635905382965636603232197186502881875756607507970326581005876480849605464732264943776395118607004423426560667818883616126721094880169809477008125370536476130707469223838028467364753290882892198158028412398328308935754926355033385286964878659027404255739884762477090702323436213375073851009338381392627353461117726292801907662897748726620174369429016718935964736182740263524679071036941283919491036089612952419850291353660901137287869912396046444293732409158731619372273600956267124976604288904348515917498880648630137158022011522163170612694688310368786620277038914217440069309062588330556357966935186124752759811919831030763759470926371350163144423125415511521403035846690169305977508728337537665905528651434174496402904748210487393508290052964453192177588772040877081484036396586462734613373278736332523207625329871999951125339934544509882508566586093442203788386276859796473470616188471652170824195607119017619087031064650975904545955727867939450285915511649208941856566957212432351922797452985432567775612760081228539940572325123039299184252780406998029961270683259385884590855521536241480831379589119920337040498958232782703193380514392777014012644751168311644013780608285678055163237982771340332465143224018464979716242189851121771122019980063940852393749368636403278684711958145908854731167985455665533298751141791650243804458549834923500215866714290870231085662715727017183692199250097010872857703337932682594387653965045704996925952615196760730975832835131836629960268303833877655338859713414109745275294293213149894397273261943014147639469595699874138738063623564484561124485987963274921449201254938502961481269246287867503160285670148869585549821971703806789908994332852552178210108176164659595496589285788579713259150776214361015644945098272170907279659362785936280637928803852815098935905844725327167367735551850761173467123091628005494849360089781548295953637293851610413070004837486239844853019801698648560947095564338485681086831228153770212163655962563739367450190311146427605778361760745031055838983578419385025648228644119924198014070019097727712225260075305019889308139017687327287379380457852667367699769168106747236142920757983744235033362109080465923918787254912770563542812190834359094715566826452353616271694460056743190062615707139764418506860115561726150076863252672793014368947111283755571314178396978894088877742463464136077697018967340579365204238232015189882361839743441423273035572777017082232284360290268359171128072769107654719557573203210948358976451937191302981357230148425208049402216061503528001153973158358090754525993669714017488250679035393993367699482343138572224742064770243401241093886559743976111472273462317993233339136167107522522251296172489777970706634740765075127069690137204151904756247818199781088552335280278154364948465274126299014414042045532493956384436551342925102545388391162336177877527575184261717575121734249563673588266957341574109828927693521057611654399085589558202289474230542496459614875641748415041205657115845120494413927968809397032764658159163213751007450693491310689747579874933131662987444022082799184638650025772953027383531825842195284330174369292883139478250634246956237726808511904739218992084651184875293185073066203792606974510668977958249686735208782008083233023666170065091877852228858919253423039224016102638026602844337259188633849908370093573227643916376845330490696116884831517088129989991407116114611811413675984668047941242994626047049018790224902716605471834877712184043483405604946585043303971434012279419037916830777064512880187192940746568477686805232954496239418696907239377654233400957141676152685211827543973998024708578614590085423355574962823722059466863204176591815653907640568101016694260027405718270232664995370501939371718248324682822401545927266588765619867173212075693073395057774710348813015827796433626220059198233259440633698185504815984578524319897115495692300065941354047770522272438856056591565244486764165701030187310091113219128630225751458283633831578146275705483717068287690598034566784513024770823578786748759761679490698652487363484712983659760884785971082743394338517642204728910077148100720800790055505203244279813286154054959455910194727287388057140878365604939712354939916126901319319821897908288332588336179685077054731884424668102718939580424097990739187773694818032801354962054210123769615263071157157994243225393438568151494362425667982146205376999490607377219118044873257877152484888170928762878676979764415540010648387957634606703147313005474847801617618992019892451822741204522362364280235543808967160144448477330461975115261042237244725145911486720589544976607899321466282582960833885625876176052344249328269174253049257645809462353615895139118256356898518303828865889661569375661583517968515077515732961942635128895345532917959152004272513435294707522350377280932059812176862253875897474604427359317299283541430823908185993442426404402488759349442459282983580528305768943553901229792784427806430663076541825803241499012702094798320652311698703041489974384544880685326308437222809161684766040283732754370633779182804771469772551901810760701726439190013097928071483241176982132766394203926547629644818667641732907475742844047185942791075723215840719559164850132910677280793012029903539168882995073621379326783317578064005689831398265048082392377575341575673406580407797865493095433800707153101421675152379314375960935799002212151348121817200554905703178297739747050398155195144002574479447052557456848315060425762655701614136432063325730461304942632809374614191913433382212157032205889089011111977326640167052515351746099024723638026491304757364020455552986294038576969191908109491348588847962918753180662112378519875012758393547738984056731537795878164184709536238848184296341839636973322988320606899139417500536771599158840274284686051644125009852056983765910953026945492612326581643128038437946346852718248502888721837985535786473499460970503607511005296012259587067690426500711723854249280977546768671383666099125862467745588662621011686558052764635972982337809937954919472325062468698463959405961736184473925483682993480925481994106941723833348323209007888652338960863286343221412771393523011359141839525097740955940721170880666611137605860381035482965060957618960958354993996508284682935796291113659369450084654768266880641398120464272162372021753869021972402761985766073025564779095603271206861122531179469614938096511380635264830185520790029123707195386348164710655477661011914545504356360734918076943938980992945237305017923793305051334311251771223329757762713174023555526629058677782825626990798241606943406228496393859798161656279176911963563878046767795630129253654373972162965778441242734338408477856574924933410829366905461316838984744647010720511151503696247869918529286870432556812582230287825370985632569661541479324518417404945154936230902227095186324034447648797747702359100978061384385317527011168090979846456716765884048453323522568156031418739897829246414461850849276395268612837551245602815110997952353395186779909730422604181990943283454381295360461747108771781771480539748328607477849429724229703352119944909774417491589817413217637535176030414218027724575075817846577225699970476576040433146795183680893561968036908497019849396775122053061883773539623992679586234333131435065687144540984520969903808499377683633107966646177693185586848450007330744464468638762724055260764392842106707098123279733781328970508993911752718774738164949924485915762044863718344274982812300563293135128118773306373352152349894018602786497830236390520398418974478312831181468761428550407815918945650961975406457312901547248666849678314775893203347144932279203597168836743379857560138711778565613322672470492962055803024754521149617887660407612231314186466958756686639479212674143995038572009694830236836613045898862660350779709333087933328085153989759773718122164228011350097267792969805874640858329661390878057854920037495466902108034723512537139771879986246111245617324342812431897600870907172388247406602046943874412080523486791795272220606651159017671075885976901691092755742002302724307412318326831406850316473647425816021401308009362939602064724810697334975107273414161982493160811176960007277552974163197199213372926527923825432632216786248962321885666200182609661230033556079000934163794681585044211041205313585529361365310201043323789615740331812765175308653838809588358303853867636998689983003694286140602539414472168581025679584721990103188781550393342779793342280154084580732511008846500961418671716949083417952697821676471681123675874546013794514865741917769288813629711475404081749653565482939622081914417967856766807314193740131673945416453921749543060493533517134211883882363402142557399198608245794740461246773458005634016440434432191860717181433229027889801110933782677760645219369755235870089126670085497798420917526562870180039290775668434764447617644738880834122779092691177122620910837609276165569316657704058232744441492913451502398748534500780694600166586280503503071981865825537186881710440330096702740560731175554266649960022614240719605091713937939774912693805894831207053290701932718591339111957185894094694361783479471526866699284769911766566483437358791580683864856384865806468234415331603533746785662691597614263106968932508251055175724142870035892322253250633969539844245379234623300109951424119219100154770738607736752149133040720105609661499946639456244194836271666292041819233296354662262187375328643188495817257563237041509876159924465857996551837097054000560341362995251294954721849717278471276951018652400878581845192660292330109120992025973655973248433401194921425626923953414109893029716339369409824259656836335582483280232023033139533733030925041365765734037574096052950509444677155258043189181228585040239388992214014444557130854670105697375401890313639081059969085628445995442284606553798576334612827129016062043934826613605914930338101166353586812703543260826223041600364904506421978472264903749548472721812324004424700425032847349177046580877933655844108552693357792146954664837685907183784498383628132206222061255548043106644128318735748696634981460583164197865496568698176050254192870532734935104450648880496309902918998826857111944740236840193779860131950028026592384463796235780610280324339919693720053592552531435376841665631972638969075334548553356252459227598487818672828793652018400630065431320015248908312959447830655395184035456391366569148226336110175936575364203677617747021786627462001083231884793894042012103663862395578108420404301577965421954675241752449181678227946538565770238541546450917122288750777582306492306953323474764366046109120693479812705482225732267717182172393794122739869717675072959799297083475768722176645871366134846025972775781438015455940158851664013258543988944260155966109715649449703471067374252085965807623701218248710631144008597191427726341252862513028039719197721049009683078184913058434198166622910398941360643186116606831117331638631477216075716427357197638296066131842752645190789884158942426880094203175391083411775052545762692724090627021813621545236330920481393952971307195973810776122156020084611890994869984493200802745128060643027872579835230217500677874828312730266601219864969135278982275972935519122601669875422029696715283561970883222020379170976721193063872917578506431464546833392221911645375652473125688353429094319496407866979868557715910155713790417434408817424901566740489921471868638945870749103843855198750316783601335424549687012048625578616464967924474719942947353073729608216466958249535177182157745555169412528046865554987383656478541118455568562070242396564691910523186214084268033657557687882610394593324655765455316665587803527428736463320761846134233789113591445975255909956065684212866849048990759111232947921324326995089421544809903706368052428484270725776214796943649723992645330729557103941014430849366280596027238454929269157348550676576285430266414668840736633332544218770602969301231923239095671581240027942034442091275795161222514417644498504461121748091933699509420762812092131211824178124439870701258654081702238091673690894317206016027348200127955106256016201485067401538965261075987053325188002394869711126573286904000724257799296520057439049499111082359369204974356427428034184785597582325139358020844044907970339283157711372900645471782018926206245873131315200714917790497805823200232551629045593124147525293452525230090318947141299966669910768867960080955771288496958295563304812490897278313495407195512264818780376884625670540343940039994963856874815613182484397929180682959498396075447330201630365623015577513961353698187078703008748262380562313393178154438209450447202917816039749030860741787075111291611927752257809962256753530185837637095634391288976573302366704213011613055033852509853597863564961297450455415748371275873602005426613130038075745865903760744818349596736780955767489913285618350225987266529132872808987703641080910261705831255642113895073209549801928170306079082594903601071620079330413642733730687358825598129217733208153068997158149403645717693308489843927099134564506085797901464315913042703884880290885550406181670062239181251652553796680277243218481967969470228547677660674410656184526081923182070671178194901104476986355246631617658777166750588362409420209904032012350890474272719664300126533691780850602337773590044388609113727658386023539258235414307651575597368665971796935261652655244219586619481328792770053768161791795350279022709479905376596599013632477557850025675691623421479606295691287722329750624220859432143552781685896020523459134342818757561710387847236845551549105620646982793698621160584555782785388867211446035337201062293305291238583612705438794389315571120716628273775158087090751477618099837405281958934227137386923899070115882763079104786768230422480186750118935955499029950367379240328893527974272318457199779816150590339439622130619148800368864958995939096899634263500644519540286377312187314263301920400215336802348055749252305779949809985419937691278674518054212085869478127736458676553126200304882382560656925005428613802188863654620340140474758434285784656310927294035417868777098013367497984030021782824901142324827709484671098195296495221948317601642308848159280925030322645882727459531203512350734183776546247140972126515716680855798918370160310103739792328906787215751998005145049440169596074141142049932135481203786153426255980050547354791026401272698246126087159121260786892344295332425976402620558381546486413449103865057308003104392112119595036412182387562566782378506691325232804618075895566556103858734539984357464673793232828076642003823482066378470656904398858320534214478175450020043586956161225230981914701145115578881968150047858201938130083842403038009095398146314558078393645040120315108881142626833583074567049541689083545369187902241416635303136779607585931348552273405922513815734682637627633241994327740152744746293021668681195631079779586027663464906396978746112224684711323616860845129804335676643308644383677040677746450449781900229074678697804238570063173819483899120104988825268187263399402767432050747057368016802023272832156142129694926585708593788571709868191024639100273022165900712756009509060901958739614239221351463393991501535286103291510830712681222449773711141424308079364656381093314171094651743729384631486154072930609865845547013764070338911403389213147589063204252968678316801621866937880594823185587853190832583725234260986427261244737458118859666309754023077377716560961973828525918494253450428014232919430866182834814283422679288720059744577679724780057769922033358485044375709736650415290143361549743489509366184903894456177067746004185132117238766485398554160342351979243669848097719149824974338413243981487498054111872133510681074320064199393781906736549443062946087418257050912018030675820187214130978973199763392909657593221469127033978892542214989832944824112723334031095708614664666205990981383534690959156723393533840986742457206930953576078778000341628043168157875851591524763338390860569538779791222180894716052024433380666055409452769710419974149178342808124419207828817309061577151932159594755773419585554038889656206189085989295075812685217042778956567149215115367445336617080770867359392927302024119848744916805449164881177012419498897031897108580242949285608530387821923304520812868751214937451498250790652375251290570518030327050535115292430624617303620499087287320932676163226220629725027136292149905680574467479632861694053511834346376010023375284951256925957479939729861116191237686687033950985398263307302372437579031890767274529514178630038972828136756497326608326827145285908396057743960492525576756526784155671416039706943749227778798679513661940776257917903673228087551848878124941880090160655078742344666410843617380996341446261207004952652610216403261339436531070145647337479633663717761575290008176011487937909811946655245837918681373440052075136750716323908706652126359599999081890801729116494617380533487754881739816020175224032888457535976372132981365928275565775294971844255614753651912135731835717046140431659087213300774049875735454737681344197612156769015959419112568662710467951566710574816528961012794611442602881065735975796313609956575931624918677018193036619614437849010289225980517949993912307384642381780908978653289412347897173898453988936614446584542990268563211062118887943811059889310712858347441519244546573332542420548386423211338955217058840259417041610356286002004728546137822662565108003553812315681056352636233059087411173062225607450885418066249869374403406683070111310876698351038249571869269887328811465730098806713425579750263501724121148995065098239442926324594665027374136550615552174883932633620806444890258614831392667883512207534667078874762625352826321735085055557697681746006011655340095762351941144901748195651447258276594861362348535887274735053726987058447573976940679434479361093682277406750129997156164332569474474104872561346328468224410693882508438378639681606500073031531811114123892442061993457329219878779551104034810680996456720469565347479924406253408579625223482021446416870574533706243965415164194819745822824000199203172127447713892899592935883473340656990535785726564949867780622802244410994740437155588256075631165295753734280720501178473092083501089967669184223043362739929610048074004149149267922132606184236131296658577442429337594851418951107783619630602494493727422713568242562856589764934330821917458155213366595657616394432663356752757670423791486968989668367813185363215082741550873602150503250498921381465497091192477790847990291319554514680910694815098547004280724504496685982752157471621013854766586846119157166034736177805456946944782569248791125374729711846822096582938177102126829833950667754038430032767587640659858958096882374097518073769881965212712853193529902028036303788315273616076654822682485759543731763584002138515780044121856021714842903485567972572226508344394650434457789920300576175230003272598875907501560134033858829521142280218322507261477205882047478659161662879683121004269763375997991473699879554425780124507935991875011941428113133099209123455143965626089432824654323424186186651616743608229592877243516374425834400126041997412017042557419931701556653700060088124078046417127623022991885542979763914023676345783187087277443734688648588847370493900487072171788899568994133519927862724793902136688638260821821933993357245733115231194617823227376440915163384897133699106630157437091506008131770446729735179069148986667733409661391416424530063204955619646492684924781309004894840444073919240574273358839509405972542987271654379935422257179863790429906149351462429216321987313382453838084481970992093306703092822474597844569594151204794861730322228050913545617284625422128733789584607217307808695186101002194460645942878671222100793498500242403816108552337763158310044157880641606013050134884975883627369566922229500429886910801557159716906325392990417489225287646047331920547399578317844658591210040773327666130011020449323532988162117188198705133800489406928873503781975618195219016259312168723364414253999872359015268872485062864230632991814074747233660405985283385184770649643120892805423524047193071090396790298148724561663262214810286997728296530077764468372508669978702205951003930058036786834400052213828344893894175447697685551571653782477123349546439232230687366353685218586662114327258702053036623879120579030137005036955137895255673962884673044630167270431129044788395727292013331041398536264077554139471854652084299543747882106920701155780287041417543454593802901570353544840586005355866851184467525550966073784335012669163263375575687772381879802509331183640142640107319558572991441017493700039037171023164430961631666155606637505606345082470970994085907810188278372568787412514006136634699176418609411839634644508633081960283459378206933186652278156379043339694126223685213580244155973471462466527645529166421069976546949603729528729818899434537560915197867099329767249887574581663631783943784978916274061671423159350267469552434254522352608152076526606509235165938361991746309910265197703603217917826382667766026578798378503133233095172658988637129251556418828886504800754178643813773042323713960299590917180041624584074248394799094898544855511976501582201136211478534954322385778776609576180687577438019030207185600863786181501975659817485518737469655512885684688573013621395566561752008995324368654924488892839269016656141050365803268049079544128062589682173219822638960089096493346745702029923934371844886714757809307370919207432565772991946722332100853336616830664405145819053467127328587551562455821638052019344071288076356239238842801069725034355222236036224606675641193303153396326869210725829577238184196582412138840253870847138908252856473206706851552783242299963699953109555185262956481092995619861426507769173434060590877585484566943719765540458982242414283087943173692886593055791060782512327219035304430222036118841543430797809241684637221576376231410608000344226981915631346881725804162228453264689511202550950606568912868394535227672322522203898277505676675505087645104150639917957627547851560673995599282787318824057061800947406411325651257609173593274129092124642222602313018235104412409631100268666001591907826849076433843236975992040403053666396184757498999707877710575487421600843301480667817908022873899921838728527813829416630848712275773267294479064015439768642782711061271270799940293418654636031313300476561681380421391182996972855728458765669549514749744505653661865928341797256651087991340548031938601823015529972409850659319922902428328883659164437135818905446938775528097674554936809049907527652951407504767132170922665509117816856324682893327351101146989004901224517260477524204057586668441748874855784238941868972119520396298477212285439294895363527883868771021463738599214667441218709617166074358296775600866071599474171234935306568840318454972148459950538813862753452884331541892068380325366260090774187655211963154122894886805306056394746771273109971835076950302367128579890820208233270778846043613328175382546039821349845758402585333970744595096784743204266720460390962678819527602747783272610972318579461007415445951014063559451326610977560877144926747616660824364967987297281182561035667345909798609717661965033912918515336473444825737882278236679612661296071540054204577168189508412701608428017768557619246802844175699782793634654257426765479395926868448311113355690373305351242985661254682425006110729365658388529366746597526718330843288448034270536972556120824772179415525462607335014411334437564112989657323954772016878714345416981438888380975127312599141593338996298701371866360496479747448131630521682036611271361946417741660845999213478301310725659366976614059824480911054488158002320611948767858108901226959131910183436540377940810308556838079531339637577071513788836739073907668295914367422394799518730941562483450164084990171553903416904921757417849914365747683980664665399797264870699374850705174750638220185874926164465309673080059674588406030450573591064054288457354600959112205361649712933128879761239991755375979938521628285146068703329638548458127486861144936891241638293239257671041110382364268662686884637480482677991389188502638844558622329908268313890693355218006907065746269374799343624476675784903780122300209100605969426719068580206390024172085897085731606867195870194205473797052616225876982967258197474727401222648077820622896821756469175917347059689807754432568936116616822795040215296013664477234725154030629910331054511799302799108983027950414059109541225010276389920544657133527351853589121544483935538112843527472576496635902628757629798794356982736786871096598789084333138671470954932050191408982255815005531587811195792163380465288904288936940131703560833173961747043177666173354286452803637118028781989841137264685696748654354236320762232634425237850188235113650738992479713302684622242129580114528690290170775351176465614166008735573928123107003691514502147458509945887155234927252694519755524719613543000294356779911552698404060990925743141070147150646753961957964129299968022111728950139095006729649978468558666720827592866288762249227784005595562498493998431228311950895839321489387904191474011186562882001482807745964326786110048031024709782047163668576702327447717504042526856352182649467647690373964963235137761680427006576416453260081177278418541933145602584349940403012524565734542954939716002497457550879694092269444244490963666693571457108933261817630293827306115238675152642542743340255854894666582218409252151664518525445964412695078605026583685523068160809677931216201708696026998643803194374432189028872768595095133850620380228003187839260753877882252045635836352524211079731173665682127749666676599583813244204831499417512061062043360297535626381938327571695363830664125931157233995848655833932783688609424470862455837251859305028324394195332411787339473025718444033660949518390616862287240195885084730004702030298431084974970514908848489599647610607989152289808255700714721699504268277918210997044965685499154554596700604454686913920539821768541817827144096510686615862423945266577983815071351235173807749027824429916039788243084637367308280987500223593392854451547743563401631913347292354029412847321941890068565508619046782257481627254610271027845198254111494132081353582798828675502209472552148996976043073948940101560670723051540744187150768766243662682623344396078081519908555928187238062853293973602774435600484479607457535847657511320674336366084998339402795361951090998519046604217487971153960728976977747225392454178420588676694975348462784052972160373070228171936501877602302925548539375229768981594709892229583676201391898586175939447484775041457267204930310864950868594824753503181177581329973706378838582878294015816417816063415766716819943475838026609094501926173000342399580848217553158729078095480376543472340613247078554543355549029953082345980601337464871821785548300957762150599042165214153499836995872347320208230354223796372306609700746097566361705677728082457395619004680506309518205706716500205861564188909205379930951492406334188914534285945557703653164355583061076387028709813916010176784973690138887605703416848571502780438141383832324787711525992775163618606255080733473751295325648566470792831213902465961789638744086867112939526135630630504015729319312269736598495013458657817979683945513600579748635260749229607358702315759942547498307581985168586350724261122900054645951244459811621923037464881811521024617381725650584279275040470375178462563807189456940287956362256934990941546472104970651873934097955893447410921128807194830277358571394802456511635088230379040166913007222934730848441366672165030818688190522286653972690191466929221099879224491434507968924629236905766829603657529519304136772273116985632934038836505144424280130419616767461637534682585549202574410512336271845456737640634938472222783669002948684511215959884611207189978107872530812708836676129469951480370456422829134538323478203323978143105414167345569591570877787265793798034342470426697304845047312159765744858396714710280620170759102382074394439608834779224464781367778501358870253991941943655059904736628426286914743403040468454070526528647942207113849663097477895065062992741856003779541100663486536454797358033548526969730021504385810088581806774078009638269923492870152902795165910332597531008182543587749278851974231690146210224336313184270736550007076191911160251210040340266947088934893456824759721329327949063402996397603131220157303276431167985783194957641834035377400126432789661502356835981892209769518598686113787557120312594381252134724558806254682640288977169815950074161589533021732079746222702128092721301613702658158009138777541405367963637383587754451362175630912349341402364025795318773380566876332862392204713529336811860873704233290848544255513445733933660409973396890443493635689373085401809133552014921620389541664581279263178267826576888721506271235081598344950334604412102057207086721979366899777991160542468269347520414904586293566173542910523470135481554203601678549672764073980830758755590348386513147097583351349129468561732537504488877785653603106040124360647188162489402907620445353764906259581405742149101574392165247044720595711827287099573109291004266577989111994217731278520901441482571427282502918401319609350151604920828675854131178003749923257331074938901176789112456307808433994912544272333079022975627595684663005804626199933964542942545466007591832070368679058656467110089412741940289856959148409667343056784242854552673095735770960988018650362307505104851882373629341962049873098933681852239710461881464881932656636496370404722507782047349039106255334807990322264159678242863627927408439081758132521839231064447502557181069056938302340228912929683226373857720267366730241856834850520715735836812855762014532017111954362068169049829212936328879369356900753933653605314630699312150049931653812710856583232963752321977486246531864019924704394165914612329603521474343068272988729747873461871817703376374886353655108522375248874620320417696270151947776540760915439386825737080026132632300391828587817354868105011374789949565928104261953944047506076725463522133867785240077187284325541227837376810484264587232141704044628035847804336908932293133265493723873661413904860546773032880300882362054686005797591233641578290502873942783512944826034349173030520344127485184761703596049540619570020411166594009551034180496765794296442971458036138669918202042191133671514813378062472418156273884011892331496244251572212628805667233343867374731689325724776198070841291264755551873177221454398158576366713187946011876399930173735634495558645097035921209565993613416347024307880719174020791229419172261731133554494923588768435294794075085253792036324641833564976454555299199339325943823995376683547734742063750025866104079970349194890401634895044691080492998641603966702412267932718744215226915519333094080683111829332354305381098343992092126924181853819853968280364605113123741185985620844734440994638449386549056031595213307629702895827200353320208458349340792310126214813640567052271410832921372583762327032000043125724112639752764483443322634106177712298609347164522052697265681201507144411281924508161078406448271618398665728800790457436293188671278135498097167002697035051743429228217763889246761706168454874029181369776417286923166388540964139777824291272768155310621859199414054344303871158065502193360152941349095697719743328392040982190310914424517073483204362952719998746704213262117244867729754531678107487579283006040655322457839410721675514168346456201000982697967480439839420975649475755114575910954763272789099108477807687862635159345521881088170817568619100494982624313843834073775473459469044003777003605022823484242547883991852372926114441448963025147441944096857966430105318977183933331814931523867855199735560089525884018132010685399531453620275318834279350757463178480639190952612750714724596543728164646973230709222390738278714959614293283492115686754132982584860567315929668723159132197477082570477197831576827385834347249770273258095571845577636232021522684671936380287516930174490646518993530929374516272846950801782025641096282130896508826696398297047725994614269969302691334065562266432354463989569731618488407917946485935249489952840659124836927384809525344770303485026241286780942572055556676772701416752883973142292102097694800605918145836006439380379581321997076983171665273229045775143248559568145173425194477446324733057108936191186597744316478510645191911597482784301940690280691283573407312519144123303118107044878753422997478772186147083271748105370124126854669052455348841567707916238114302402287764107046178444069282798192888985048380021131507083582318022483828163385180940159927838392284125546871645259244670817369735539080033946018820729551697001669789652510365674922655496467582452919267648524971684343716231903400535596263047906810497826591488350989721480046618557309637026055755927717568110261502005313745801318850400560043599142909216278143512495185588704727743373172800552143454227337605420678875815087219302553728652774834061334072859491859554546655367570138546136490834472563159665627304201948226252239299799380676807999797416096778567663073064383385859488271653508881442169537150949981607391254419823066156837501473633790546213373725400995337789417585757921946089135218355411273999313216416009128093289032757885289458056644003104434342027989127887942594117987981762774402736674856961292620719208028058177343360667597288318224389279799928498724827625861627988192769008421640025076277815006020669342025627775043937596062678131100906805198446933529356252495789212519230989058636148558997694624694674444060310014584646671415470799148692567190994626735692418154063196985576503816573427819847952541737835553481939947120221596187077410456728721600689363920143839509238946991019554996414008674511427944822552469966725743736748274754133658723304212454113973079868118459766784503653299097142693781422530161899384757933804347498008257885882783630156089690027632497407653287220841316781800345335835728053809946958950552473925777869104800102949811332527708769168616767385737838902305508409443011992268823707894566941526764563311948920539943241260020909946782420425444219060274216116677302349799326427725736000388033117398868142301462159603907821884843753841206590669254052480802613045471729421565779875296620225673598327106892983403262657944883950396254866973681670244519065770103840251189695041767807572232914832184833498242259432512880325769279370170728544716837750046942809040578668810487669428834324293877448011319503671188590365032373014067462977507415986298773631315649474173486629459837002974817185848277262321342861911569064747933485329444904489405956761692342459709543953174975880878813791838633180053807455824490554061503008113068177457828263930848807816294087816884797476462350484643537771897966093454639772424420744634212088038561807323768728643436230367154057066822550477819879723299014467532906542054668589934644155022021122532894271204678057391432391305038313510666002727313975158642207728389367570852928365702029905203957014978242955008180778250478540316919493622074476037092820694286772097954173703939390484453369467050103805325207305115758416351392917921358367870483914603557550442417924518229457270799280918560672137552356747168867421484680320516528611616556846360338142968871067280430832857611345856456704527872791843493088117283897954053017953528918537307014818735555697851279110747610400748712329816603440884538997196955349364198642361570142068943891053000940619527710416961760871191168212218510080410406678804587661212551068184459349068502872787876088537863849499893851712816299916892118133708112114840937752187181672740772941017880723649093452591972034786869495670576209909226254406084003682725122116801169415653630065651126319669654377404590481872595380040941208535207839599852042281465369889424952232847874152273653305779934705544787394817693816492079245699933358783438056974183157802491638469853936889772499258134342389013797928607646078578915548662941907229447427949839749542781122817631698814866333484636517804436164780996223358252342799195530314512274697940447925814691983728829937288914352017531772924962549740933372781632440708098661465471830874106318553977355082644229683284711357755664865240703175718245282180103162503633159643118912380113592268763364643408141164501435705234495769693761845615238679527083475863965073978176189563462370451327748335156000733775764836417149279159746549603355053905400049587456131286623963136972751131761211498593786058846175375761824502736724667429775209334576155581126127748976385870215141271117068973838511602231842727515277105169482838384579401454203022205057255638662369146214370229188325042772564743897182957582717351755636809361395908113405438308883568375535512122842037855107664539681598025368919611814888689664896098755905471434278622183703365594835352381620260420284746558870869521183747374288570442205672501289807552752922041140464227141466432762928482882295695361695799769511777558099273827107210066023952791669716875437348910555847140936622022400172342585126804688196097810681048634323495966118102462963599823294465465370194650627556076516735966988866354071772285579604240440251048585865622440044454683308513936620029308631527902562766000182285431303492975644442536050078181010206819090462938903254572740807649297431576530850816592558701349721785546138059662581606840172608742037768931660138938324206008633071023870500077745241609570135755289056647094668450502053582987246491431804346013392478824217984506490892783112236699411206381358244134779751205918573101394299989201293821435003456978452084355296346787160457310903303856706419747770580358946779718966365455026066775508466808100451058096842878444542044599299806115101519879610150076815097100046551485602619288873990159847573781622529083509690585709643624094757984266534063466936950080672232683876574795322513397320575731342308053951564851547886677321214885433584954139815178176187074849281044136004518555879003714684632965904250747825228976695591273534135339199315068426735184689530698812586754665645381256706947089167464154095434402105849348282256696544747846979401516183747635208083458033461177689828407253122776928286409460234783517335547574202608244033607015706942324567787656613740941056512177519583008236434821783898977570692594661269085135116782490274082268782892937526408112724997317730895454056611827357203281163302123083261261215377889366249101541870725374561267653162142807350616311331281965680455425469239506440918388321764631590812878892288801863374454269418029860090632280002021915230480130559022096173017299426454939331506205316529102261773134508423950873491175068355184608577752761065507283189134558300496425713433578361520484607089724809032196691406166316675300938558267085894974221480593008725502074448737827375212825340296435570115631018625053327739769778149340061171591696709573334890009949229126457949161043968505279467826164976466569694393026753553548843155646987646782223481398976081609980766545613706326309122077804341888776494722543554967468807972082905192090033845363124466736341732288084325044524132835039334824251191181149922184268812334258401969339850447395025747175220901297091998817326079718339416745619143815062746101568720042127561196972546075974363066355578718753620163859015017780832070345359693367413452826090364104169720766247704724646617782420187867795016475823360035919953155405282849496608469943445363976326585213623473437181368070385989823820483003674992630114611490382740650057599051907920528687542841412623207346369909607286773021533789483709599857180425453263651253894077731416350700649201043559409252144393094425379868733204576697399180352906320394610833276294336802317636312596182639728119644855390374077246414444014524850361081769679645632386583226379832121748054163938361780546879554563439756155403258913737865628651322902858518813362621345010650151271783048645037476461149436565281877076971131144934059921053840480420176925191060410581670887705017608627305860419968975440952796801664013157317481843249765737625510283065610855901234715568138379729362836883205904612501660595157775870995028155962412251126204965733736293938791830934747639088883064696315957946902047837414796380213930497918592554639618874829765946209098518069560803579686784829362786871593740237018969685863329897957221543999974179272749398769689942000421033931271632607356894558889695088506694758323392603902207612794476746790486334234549311917561344761869858434513419232996205483469654946759256382636948167052094408866451520912127714255553515599593258142639050926688326399682513236884850622701832483401299990311577880346847840885396789579220179741338556495903684375230878257770491496032685632360604958086594886889485310609766254636218917115778650518440488820649433562370394693951757754406850827101986344160772032436638600441481706327607928280741226064462745009375741619041249833043916738672338906157338774435534498132750956884439412690725341692070673706560423237457258197292838364201584592684537479701433279514068033780430851175948164532056431112824169892491761295072163099361355771845432020453308289204902213152106633497965623673428295573744110332068747432332499173321159609815426791708141479351506422646039027825025415583358575971794388875534644752452798923025123047411724581213970929933701443837600875429292085822903297261031167505344851176491196487023084461337356117798901819700684225080154488106825167475251850430108964333077940376132586125327339762104674672169668131125469822057092787155643409323491109115709144789776998884155416949711698438904062714941665301075417308210893609459930039557499916898097084792578169501434785225635246958909321842865066963363450946371844887880711592105929768252959096880547439619076585712842756949766439375216472577934187868212274732316931070832407737187265777853174537775837400511453669012308142031445650312764131194820696771416082758770513471233245138367250801707905138333968611824513072620208485113863351050586644258225464851459191334778724866761962186216332033918274934415354473119263759404448839550691121367233279375038318006980585477586392320314214452446712361224184530702057354687260520757454423773145219906477770472678378818583892207023419018846669015270140309916163086185398276509638808124675570429218401920234435304833404931352437130393953587280332990135153051084402718716179464405368823444703136856280615424203593822038491229925960393401884240930273967235882050812463972159128647150703633041862848661351670602646499962735409607515587374461958273483158220552825990677781467629161070291406274651355334825456839173977438088116150087935816428092796553707648155055635963091198328911040577829106609738490607283677473230847927780467404913037217723089713481962897172265285940790972902904558679364981037033267816910722896264557143683403796826633224673600817774283993278145656529559893927202817366659757758774945823247147418942843000865092179516878460650653019074545963184526064440950766956319757725147394934830397659277734341324167582036726368867092889685084518568972989587536010530979963518618372773494647986191434336389960347434512875210988404604545472535747328091129617426163762601119454809611139297730790680405085820919408745410768382544673940156646665994229435313060264347847951629817229942322537538385606783665342297149552509542027808704263782795746927637787877069983490599202698676768744873680746091423228636800274262231060081984668180717076024255049528625504580689385756640651541936663390299725026339023583158452755263611591132172142517237807512291396029456867371234465140656842135054496400702531048786801442737179473198249340390750173142207195783635808782364469539086602732211142279878351488959080675972212010704980830978037850285581031044539303274846583716432048490226376021983247606016359203928280310118046349045974075241606578397241276306394924650134761887208763321517475498630845370679973650285454956438548231244059834304441870446141613773221247774942816958572065040571478490551302720235932907763856486911735802949450701265220329247405001117582974046601897944551548980471152440139292293160870313910741190119395086537454409287221940648375588921131341197009313215850573300601812204938496812885842218427601884173704656068634012728410408665814319463273310475705919173754793015877179625420125956850681267369596839838985779556581575575663211465511186998377012018490389845885843061134050378525693703514178625320204459564229946062032695658691669696708717982216147168827437113482712013477208855962689729177550373057911798017723098582723503232096959891068065629012106917022068431792850835354084701406108287677245181132225407926660213638276727197794926620384927817279980114411719620834091985725803615637922907388899454681933325826970147007588401681114035844213444283192592037970544243123387644036770346590025774240997144529471348419124693961125155615367560548164253389559258547928759499113643342410854010280415898606143591772137492495717731153181424471758053491390674540988413528006647413489815188068552297513553240124175529107531965137192515125543958787379310523722262748069804128496065850167649334897418304864246958008275752688903209124134416043275449195926973661672014504474334832800707120912548147382920905483474940579356177723600655946495015214512561368236908715633058358685202371334182222666079673991523898918521436957308598555709135820350777547722454762022331508223822273128057363674177200038746829748223224370598323750623256085262960896138306447384295644793328152365232859125487575366161494393636107533023664408428056898324397126296318251204522632595265481270712694537951895005228376935498407431090217304092204041946941179801514968808881803952362104739812805410727172595751426236535898566258480791322817937655204520003041142425581350882345268004794133622988911934858747875951302407937032585958410993625149097545829228839370120103468158263566042614896359421657500045824704513641937678235179196842826039643725049461270767804733337194810306491639377305816110419947535023928130244505766182831165247538579136671993557338132584996353987174151898474425783355526148442802174070277379634883155176387970699928549621660034719466754651511006193771907956176182009137664477889273758055141286999793471203217863839438835719188650843826017115293859100060232829977244069488734982912324086225052148531758780139491000970632902168221299163755617097892263803976694128066129672503935659516437635456792950080131063880153074851242946773469385241101930806812743356668802812380798787849348093976626883506223037840281245551213923528985492722919604625138641879009230411574688043253037160570847285775073978141310579930342628380183773553855076731446285794400031181605243669760947642239547277737680321119144480707214181473818802789836108163937358703002592655341177611050836635294735636201977253965355138654057073028459365756369077638477826029646930389261118156441555190586358194132142004123216364163658505002456162932155795129428850336478131765232126849382690281808931582668723802962496217202566601509452139248732632387315122477398253867420645149156209585342458498774828979178412239767581798381971650247148349664879703374238691401785102690031051007672697338188713280220621154644082045985382834157823590785513047014040441014833941359451669725230718479595161186405464656894590214104701202463367631062442301312205252448607347650998228856659190526157997990479709064961057965473049056853464647521332143580373685492588728582927176065789601397445229660030588486129158567912241745364774393775324613698345144381230340808314542934884971766328345397995161324139033422622267992611266055133808100837108240885997521973705093602544371195667110896041959490837031206939587044358204063024754008686080730653101859245586303549026016620462559865635453409731696909427803527129748661020070589003949726388724577331991586185169742161717644529457664836193658112916990575699436779958414751888011431504954993482491911650475707557346806476769096811490232312368717012454336355958656723072183019732240046788842324897622339944108890089668490364112991905255245200986513303241535754534135220515717216138516529408713475813845992529555677696119330695173790731729209145804287984459991496232998633265674909055733468027188467668442277669079789620092000842397607332916977493117143716031060780263474147509976838809531596815158608984448584383433703612529642954422144317399590979663637508519332447668090057586995311122027860849069332576685256475866841467519460634710984140305457921725567335852741233642428164666411435690420450381407537390204347080849411546998944040446389640334654630549888581916749394488683820977962971913111995969126821120764384126300315068010718271107360978316879683944380773834576996592629624986619768472452825197753578212914793330678242047988003941318669494528825463894211414158482012890512178738877365359545176852947562317868427259183628650925365035311631438740847242221168978061898876702018026017271796414634323581161169703868837087683298344157711778027591215308197152069894782691701009242189563150432494284659872888702172855519878256367526088137380066040862357689862578400448423888061726403870701556351561269004600954438303271988570823283903504277107722266195283334301056049507983803563584890840373191486725315370697465863378934254696325275380047135104860075470005340793846372530785923189233960856184586890926917920027900549539923964571592873141623717320393473832959820451242910968913118181491786300581348822791920866654336997746578018324520641788854171429477376469418233133468493894986836955784211274265099468134772586708084640771755811222461554883080798495351160713507519209002871399633784128111089773181912455053854165385359926938693488458796504307630833249531242717942508296982272739452844000226017684865558996216541852889122586654887170481461977417280556550569694400438069702387901814843334766731837073508750130667875362807284945276269756751165589179504225353883480245769893771357766149916406254535853277505835446367492859360411772077889305781655205089089459015745383840084499364173713844617780737946807042183162227037494785299662235730666953792034515841463713105469076064935338312618936591267556777382023855997494078430221893309265243810431056081815193305119685374001443307125948034084525928580625623163939769141218007950786854362290119597688017236551575224609615558547173765966917666426758981284262580468483660127995468471193320424301608182493197548067116036106628398954685293469891722926419341467503067359320509634811215156517814957858988583723185017086112443986891864556039110075545042281240006788963447361450004028648668814341978726609295472577441847090245863964987960701993848410260823687821645491594866981131083402178403688846148993812721873706226345754738226574577627360423075258702570548847256853119294731195952945321774283142336924006518365815763769742311514708331004241727834236744969880148637678869206738458210235485282860794485127882635366600333358529146857455651175003265978012577981593290174932434253444839739080142838661515025987772300791895559616873563274481718314528246839204548441944517413404928523039450178018419518076038934670897362330055502452741987286120511941427613498156056978316290647353058275478602322378435664905538383217458054899848649928939417339151962649595091640624992996194855900310007115071918129164842487576987206061685845577405079581003044699594928988702751021580613401227671874074659183805653149609384774480082733370239974021921293497306422899012888883639635775332691998487635476599918031817220219492497701061801768044354416856188699753302203357381013408938726432602306653340562009916489148658890634864181443303264286925405251946247671776380326980954478833689697318516676840447353703133215706777850417802305636206016803311099022708986603292123794352685048665083532324238619860306581497843243786455304487774644508842254211855866620014443548674431540709575437233571390341836007153055521160408537994599083241319075988451461622406100232832144840527462817956261125450094156842265148585992389728100687403160406752337283099170756312729077669871400670136490198749828512687068568336032877455741057680445757042426689338693457237453690647878801672104872944401757446611106181487043837864605731723165159475050000568869420772003910731836030135227295362283305400878985326650303079697629941993506036992208531253904769978581590201571602520846144486280919851735494768623525400066133574559860889010630414452502640531567253758357765174883521680794397305382776171591277659270066159850476656556761856062862718895583515314994155890608858857480730838089716416891328315384204617384467273176519130366127078612851788935304116430628858215276524770042892825530869354248437641104082590574423078009463848343951718671268474425284590428997786916232341031050333889137987098567267678791280811522289150514410267640832511842272815629607443146874265630699314212513425856874757352068040617803779655085141286974017244549718214083969757291786477948615123632915283979897803957573688754179176609038228890498589231264503379295625672922446730996965238092639793735552273505258276542592663754189614312634494420102808155822958721075700890249504115766808914443630791264241215397715468906582490581423248223937225377757680637446240777919129765725331221319729158381243766346755655145136117245089183861683502621025023790168802020037671866293991903647007683814563560023263069016282898314538232078582939636122814782528685111854527388890576563038144665810774407612082308958359420599100849578758317603504066420488339617000792347645378606157096335391677367153971440855293450156695310412589983457075795714742639396250169146956590788157390953467267468148902207031359763093587473860197877067211851740284049814945359222625832517306958213620643863477854561070357286613123082927994455137624332358514125491266053179396057134991176727011486021763126635269327672866981264002860415587831030720352349195379641275424089918128868120426903948869938956253821829230172996662245686141760645465291094773306260802465114550389010789927562534265210387588493271898779902609425699742811556489675099666308495747492515874918236113718588490878660472963831680089032621392720056236676570363807441818836790791375990129371996904819950004918372793919734530106743428596422171066249308203419534443463529744825220552616347791361500237876298793452083125004081891794573364144150084601357535009395619026825011668892068154299156288928205180988768274025661497639621904623457832287497503766031031834800679681877155834076808540476237312829432600256672724117279776440963272988877038005781831116679642557432696814578847009399563399355379040896257606667417578306263868350426389891976005462298243120855145028768224362240790937523590570398216845840038836229433022761236895063807093365999266811827495222071810908089471071696063654674758071636520218388105028347755456221033985899103943025796668116545641470494737319802330066514868321482051604695834737826763374796506017841677107983395643040197819270035425781769639754122458164629185638402091351226030708140826897268880728733963791514899512047018847390208043573285589268849849953798461305360223764536079979669031197173465976703649338959507343370551642895466783286726529826354663710581390617434117115180497552992711566106180388261868149183042744929193098868733925987302653760623774903355959387428457585850390473398527776967763512478516395952280366234878218960424945046707395476532879244508975563440913217335167372928965440868113161613654950360801332939912950173057381943729655818562354205278131728802551565026848740344600712125762695209944864882903422034323255747675700714270197364078815229728208823545652002308373247856149927053643029729565560628257857017024559681552105523896601863873446097265973445462595774239850481351900797795009315320565703345592926381726567068141697212246481106024689733138476183224982373696140485829923873800430886568819272595944747761403443611227470473078485592059198451606772192233214213848674006464944699255996007202167982166863864375223030958028712348303581897918824484927137885000119389972989331558090390598659574692431728016526441410900915102653853345229877910114342448093042474015108351186030808262916243067551227021859611720074385350026215610816633529647208368827861392862864991944016672218218956043390300024955789668463053013593669797293036784187507658889176512430857962045792204457738340714515033058532926533876282048252335516935521865467812566965868242612708350428844006774725283212031520276742801134619608161246010439984639914823510675894084208453488788198783533503248310943353691338118731229888208226335987521850620014181012010538168006731052609817813922945813336551234835659562912071203074029080269189799877686369936634621224538150587845004766786550480264852698303700165714359346921258713553375277701395314634793578447536427341691338623481550015853744938915870293187301402722811599888081171464937763905545820084037529244609664882877889371379591817970471024607390513376372035494507383630258072466967638459996465609920747018752806226193198988645282172480172682789081485115629323594358444986020966313625777037125396595474062047120946959024342365047513490650323252779756835356494182435944129918398947036163113844051081565323848445399947994522304392000554231378094307297674253455582058531760424347309485104980109712765544189772306174501691772986800460273333686198625967966608723971656505930255525379400990595237950233114704503449072324803272110245812410908243518038461643263324085113320773727058616785530658957966971785200466287599619011934167889413742418034924431365430381248961931592004940306674722744867270977657199173429395676178037026018834022950088464463134276262483760945718856745232867290120507200468242569592591661763690322229735312771740415503814113723805542594500331169112273158405768908025871701682689525605143330261416987763998353127498470028836158690500563903591230133503304349150437689895253726363407909524008006898571327526693670772528559971302840637159464039672768936959145262159998127257660261677278279231807212610437556561557756018543884586705528766455409259097599008783691439477253108342972906830107652585532943164121890456313613692220001935974339300275213845195625435563943756865517670713157355454362992146917747762439653512685033559010196398700311257372143533140593630804084633926010515623788941617876254514582069415335531316365178732513856826008535645073254070721882120480094455637910566769337035913640245734511181516736905216656903923228631269366504644810403807130877162677751253548380623033983013712697370509751285191848606035778514641154137197627420048965489009855227427350707575050263801066409388637714502306913321304464760805573269685457988152985153695308846947350058059034726796864305127855451559766793350912611808693495075759165676621386998505712708686701505915091731673835326708635378391183396387613642030988018893616696923436980910364712981998511693514725118533588751710434985421894068760212785689663563709534941635787401802937658137954526572376271562206373098138855032499091551826703284273132582976469667681419032979568134196208351623774432325831840681545705568965076137816904776271476646873094683692300744039497008696149808132177084498574400962852703381043181494060652264927003421487385999511953148774010848443462172846753276239635301739976676052875249829418261848042161336915374235606570384152684465286591028576204668109619087495187697164686944316865069422412625550329676326846225260984403646034183074077550627123395737979295180317554844573886196667120690506894419403755096878274406721045190510209717761489489494717002891180973764397574813381851499356494677950798190399586837268271232056849786377408316805737270198335546218505452584383206007232731528881830900404322861060533344159193055559871898558808047453794574674466674768760634973145284598911569667183466703905673535753879600280975134766975967076259059464667179589055204112735163346829025148868895690111493170115228395242809389591211012125429213306642695673949535144196206788401948577937773082436261328324304265981747527702245187711086307295611567416672778969235879012367060761311476260671596481498924251766199581275725343883290077028424589533350158180139765352887742409366688040675148578535070415084219636515627058877102690679019571066012396715064780832545926297113155229621112092903027197613619089270302859427234902764648182924045977768309196122340992334662558960806494144445156663574648965641030644132987784049659993428308749688496342947206152318632456077481791073183090911247522928908542233804427786873880157855365861147210040450359213251973175658007897760625121343927843575646712017361641364997994119014221398254056255306260980079379618052114693680401354207488738575132699840262953093775726437622544045255692408910201673689568680775683982634769642445916223746368661313751495399995680436503978950205699379285050988853449335751940090170702314720364574435559754824296162692447424129924672049083555213327171955797359035946144164337737485797884269538703492957363747843658522699007702456801722602605703899385024972226765970398871883331195654588617789609898655375953508669020556235337521365072660157225237287767339167867270794923236129884208902543057937925011100182735115925658787135677236179882818576090699787476174810936048766200026386488239151618659287767712047432593956496896626302551743302328001717495069828866631272512525459067900487392171297772729788432797738496928678210103181388356404964689832556234117917303797914328350029760735547213971387126311427366148964036307408010744305807717666457657722020897607948557534449267373967813990508883112485022088803437812239612820451891110106493134874844699029026066950264400908808455044128570383399842717497288783414105140091234051386431613125667026877540876532426173574395378597408316444170516196565056532852813309322524651487491189732009739754724266384262101116241578512969335635179722551309578982711037540286380196341233568752960717845695719555653135310104029507325913939550886819739959331309822044347283168032689031596352537040367126510431099984892235367095166188613478834873643436442882299525128822527515621236069646211643891704923977665258447628461167772916179255791727185614787622089642585536895519095944393280616718287711369178719138361510305954152772815525267150051800635666239624984679290909836674233367993492432769847849129521091065449673563442501368580713797194892996026617636726265472478187606395257015338095815684623754531831139504956090649938808976642555895877654484172711906235700020261396429616579649344752274372424981399270987083815135975204010265839344394801140280232307642386520823720406216383880843418729188089600492030951294933323113138397767208031081386713688842838907221351387295759044377416954141886461216961708469289050053889038544981242056977736093313200478128420756780226948614521096708885449075423316404492904933573775215769409239226909572317829017800402396973350231862731023150654549475738108228591619298961107115991746914325410995743097906729619583350172863966012363620436591476809503124751654940201375055098832225473282350509227736716041124524410293832314875233048535397402707743824105122907275245631652058929114809977171040614585665362993804782079051501830388678305186262839733019679615440408504227133361931445118085920809871086525921553657391474324571433732602334295085730160741067803049685114653307724819284141661624254004558406804090463592189000105940859350748939244025628753883372266127595813019071745096342407097578401154019265931697186211770188657454139315436617047740835732693937290104440374815753012302496555451658562389819043012124030387760866496201401726260750550105521910052569807603093825669651538029171505578266106149337117313876219204804594091342527108369628831137441444351782118202141983008512040737162461217535871597881538123932454270375666135902966757638516960215787047407182951346773014162149448013714105101703407691579375887667632876322602270372628709837839370105289756431006303149060138124351433597028226811458684282988579732655566229764438171600932932655106317793970764630542635146531011347549565433603185981493266988764940459572565908243734832581696331824018972434707099616577994129362385570733215305563086127165440084677995796807643341068634776603514945320986256782090622539284384126864864454385905114686984808978985694968689377497304238350815807850730371648965317237054730283241862129254464657410559823384149230048803733283003010596872019564382301634683188394928328943292470656579001226882853893759979648780377942437295671118223716387752906178459235530093597187443173490751124721032492951980814930267740095916822641874751630638051935005487932292060555129554364900417891411130782991056630258222274793416923555270545444683330603472402210651417153259684013428491811350529818941059164635707472224365294849527937251128961016009119177862481394719251879141816310234788341720780355910590319866395371253575906253358263806899190629860086894293692272721631120452876950061272269956479287851425259060416628675017467017875140788624092952792227256556158856455954939745285612531177390288812338492551812768546121065362834699221055628640170896630539484580664094644662970768627594159221863296358621724826432474359489905969841138693824044987244657020228861367878822416215365879830056840779246969766618572219664929516672848402432756966079049955122830698163600457382204150007548590165896096519696816359275088344442037737380443806512745771489739694585641733116724096693118623708037058414927335690201177397371660286209698787041155591027763851761262924900366901346227353013029829481933699276888367912050070249836923679248793305088598575706848433820634473396398587726406155348358375018108405249781573841947201054003848794429845100929372011320763749515481003162120422753686670586311838047676935958132759695795220205894961397346022276856629585272648035317114266268078550620709953497741071253508218958308757745234250344547739426957292875223284730471240880235592130228541830512206215882617782778299350118700999387066746441890664539314492078858772514105152294274600849812484835752287992572210485625113101362744668652430473905099807129522467153730459570939662888966656017036692771294438341889012143634799042406082368491550495256010235394314653223311313657695202105040638461193049551143495182829947352304668213604312293533247095311818336805713509443444499583753761485925853280780832560300378337314859861806473964375405753376306535018284067395730556166227777732183201519923903609088030397912006108512346220710290823012364943447346978644156328166239236833633825131440303373992985935366445047285184134059840482530509255699229072784375153381000705126204501611440534973056202318806882598180214192632929277224845811882674577682118394450282102524921558216578153669939196965249432629272512886173183016047328398182139682244518723445666219461610151121804516869153814785662435189360463678625236026652990200329881238374847833496351356103262997739693842867087445411720641814498355466981009449270263279625141124803078163777037781305454301781179524967895842474497495597848972195471379607295719992366892375701979428145496438089965995088073936123702936871813126320555053271992812780502859845928997211776143210895583197163949884378478138703960488782254041091970073817085594766790976085429871999901671703397529129469247867218721825476497823565492840594909755666251052017360815091342682273596189855879147309811244760246720065483644338633047115241616529479499668150386568129056576823294391437197148359678872870290136218152732608306183534907386777311132273593144410355569112007209513225786556486384131727744106533146322268253966046144204536384272098501264048274901308129533634387242218781520692304409981588518584877328020356779865120214805937676832665500056553747359054339655955565475792581277249146384927050250081016107604286587709063747334774013313238853721880343468277340742466984520757662476619361575835381462647813749742817323218198464461953818568239515575721294153948604917215658476722216450060646553970989437781159160854829182184802238239611599331346820627593852454046574513491644572326212005480209910962020554501594731295328162078008188535500953749426155477844599043702871918222873582869152339998191368372378059859340074235950532024973833826825169566155591027614465628932301930471670841606731994334003599272537028508079367444425535156035452666122987494879188389288996187510865615594218612588154771943627072356093959786636730874275471074140924022102602863521488058232721444304363607821558349006799837961115255146238938565682102764400465743410934352632618268508295628205341791790888956689668356969623369547668124611393929549313034039068104050074656245489398456544418378977768219385542997170623424021872137129204252942901110149337510509276915415103443668684789199957296486711348818352477756677804217202190041713397940352197540319903407441709910544930577216033405005084099901397266843453969771081652588098201088355944122611108800730545033036261633061104073308000744801743433064553791041314493286536872811673244609169292647908052049950788020278650677234830746846951424151084095895559218859409881151499288819785086902414299058616556530968798486369329893948178581182011586770987612842930304767355975064374552349921429058808440515826616653694300280902326827361310447277153717581451248043244128368459529450420505668030613414617268233642126381949395277673548370665513454948539433890255735225976604341376875716594232096708961279023268774148157058275319664726349477693576294054584337948076950232552541800857751401891489581459839431312508386984299574671380978664078087174101133210068525663372542947571933328303718454767819723149254182806355664060978298804643078406590242110629942292199678918214415790119170083659839382370645239632736170040098594443187215395971216054766136977214314746860273060073675556827101624869414465499430695231860835366421843580377486893239328414794114586636977969800840352494279951670682918745631956903282250553665189464903434521606785224657743355502160669690629681901517216640369649750486405339633754373921726346727368182403430178235079297935457509879768715197592787487865340963220157387285616981556782551267808801345446171204009311652658499696153300254164536130299321183179005260231514464597144020273455108331724177020999393823853857617697339336240581287250053431762997669239018545729573054383308026531570373017495004544702510445984636608180321473564000535604954723834659717921906542296642810818289469159169027528787620942306469104865314895574081390380403555416176208660129083880194190069125672114437979510179843212297072952492736145315580400385262080550383200338097851651054457014802234796011602993728240263767547568450080257997398343307205056169507825817864001601295652864319501465478088791860959868375686701417253699275107920776576797087858483659523544354155676267869601363079984069564789607848341876503767056527827312362147254039700969389319325160703038891490455552002891210793902151051434269900511790996346065135793458207399812190548213971635875405131968598529215613856662680975831654273166276392555756893488779756462278502335174160679999733185002242723018982459750479660250064279394177506700671905959871134341189857666359782103594120254085501324068565597780757615315603533659484994608009398398474085973752405763483925823705238291006656211759586626357355382272536008150243021868455226968881715950420171207973928618592824944520935375851801092663292556222552281828978278905706157778700013439618773757281551249740319624670667091206341281248594819717582783240803344025396018721709030706171013115108631026943315632087171098322795983204813893066063066808575414018851724694152286542884833956146569086328220386789842209473398113648341979802471771632268979694018363372683941819790018782357886725713024833122122151889006442139852938948521765127706471590953118947411345566075857648281299581305445739625655835526559021825831432079780210133573001772084597796166551408451985116396201253917779929950070336553371189920470347551760940379002284790757429254023251397480347654919184382106047328629193047575045087623478121660603894669949775363114193579020364286592003704190789882418624156506728387858855649805822031730131349161961188485940235561360734174189699952264746986928559582036092716964330647774128624665018978359304188612668221786453645444056933057162191694639709785917446667502943716991189059665541587115715560905844460619663486009276732222058822017501795174283506985607900781377510865392595777553617718345091667588937523740073567251493368208239988996425830096884025206900192897758692011530319762207091579057036530311890264195869325574673106345473063634661821476950798978188970859525632966124467300679497704673292004158517909427418658656386170565443222447072184277537169697225806923256054080709198329538911714150353053837407299006112344370195655732159791047192015946798405837648416396675047891806282994994230258134851161411498598078974019264514403332416665139091122367359621883464099820551847877535384981737730694408578086888040897694631264762502883196180196298006415656018333469425686424909173026481790432220013068157992449013835135630349572648168383738412467241748125769347195439144906576035343481525276658541545025148943164386831525027652611131940565745041758436579468780909902252190252621111005455189679385970591915427206397199117301042701299721487863630731989370281232071613224488411310187915243227051703198669810647393481363143487042354176722341471855757566493312819390973607134233474700905779431279878507730906836241657626833963714750087800877140710498372501990093473750746502311879039245448635459660639416284425616511995034882998898261068630045793564162318667182630758783648713801942235961447176592419551160830190447225719112106547150901628349205716424968080288756409186677926837909729535975225903352892187181520046230698733491031310182654142165321886198801035287024312044331447946923975987069161253892218214298327866746626982074330783055312720500226382604597174300898007538927119506424194749536288164872564968844258981520735441713024050310775811677939180837207479647423096561656118155815229717959003630402819838405183562768220465023073029186939217647975727946215238128833816119131952317232058962825164582664404761884114029780279907633400906361472807887305019409594686375736017213728366765482478914712465508340464778812007386707051602941029850863234733765372757882286586680489225761771048277022186940082055127424305301973169289528229595968320107880000781103086333920333834379489210950227797706411503763694033934596616151821307706122158239818294638461194681986522735533568798203519265683360704388801482998126667779514265087772519971199348924120701839882193489185391554694552770603867554646450143380517842963497343177092895854220939477168647962419168627588546675264757727873754409617169937681843699490716439029197967074544214139301294033439223959852322042240686586631983875799334035037925558750589859157224369860189534177375788867188177868780850049191343969753451243483122209432803663215074357873611367497930973131154163326824729627913360500631651453444136846641138313025500105859872359145319040734713435902783085567951209430018041792160977174058309949438929197404861876612675760344093306808259207847120918237818564947003464545948775527348079437941109631543663180818047099719533275394935689797952673569503553979844530580643352492793196086468678263821259076609332488608797585982765112931367678300992175909148388130961571231007118320680228070733943580415384689734881154363468344850602873007430499976070070157583864708908821111195642122718804546889330596242417142133780555364831294288609660329489581033760914730875193767829343092261943797683296065313088249337738570581411662960846591346238051189519995493312797063942456436467950947467030276898201794125869766231198224486193131063735969584332655267057733875287255379964057619102953290735188054133635130609531770373057248860530335729714274879017010201195297321457367132189246060090068194958484947374549292989781016849692210162693795672169247166508528624534361166999718194966702268786197924277639447418935388449821422371158893006935102159677976895802147355207277526529498272645310165993187418397421958441225252274963180364077323557012185363294265974220662757031197567310025245941895502142650424809514779824267115015649121676622757809903734335906060669141894158668433756840626099215499591646607128944963996680482256117763967600782973706662971991629999416898509227837490127508705945358954351931037915651468362683244801293719526891797952157633788954354232669430366470693704682599170389728116071583177069666408378913334362062300153299001418582740398396914891980445211774494955775457552063776523502879476409549210338912779850482824843106104181370577695435139107823967044629744885733361665111186128987734685715601576180418490525512062504190463495224878663384243401542779129264157988123996661363866518954977450192864275722332714602479784502367248040087386334871501773431213277462064396394212422013777597488701465616828846744441012585281625818920727638491201493066494680204184563468345929082862110322866142900617345105241357493377559502517347095500928662743013452080108448105102346156636458290249007166513472520047907399165032503165060115580010787186185350093592886723997695594638190341716703607746068025021953557546981749881533102121302001275957888647316338070288979832091886456510153792928476031062408077181969724764145716533810953832098843935729830016755160710833329187306527411026107115332153020159049232008139694961758926463273248469396783271855611185938737536029463984706972057544638923057429123994185496618600884570319367542057774360511958973744051344225013751950922825762845775501190370329139611780233189653308420277851883406585488194947047405708885967007961653133199566599930843818792612619771642534578966713781772729781808668033979840465128477969912917292994950261517886778706142722021664074653591363010814707608970209909343456883599443527022961265562283558862558194705112453054448292404140227421225191587047865651948950986231764237191902389946188775720356620982659034232008269511447290581628835907706672452144264399384253093962303427503372126340834895115580042162872815700900026062765052592328770236170896674386204236212070633152829923874013478431545457924459630476682784342815137940596694623719011743269773287618298160490447356318410069612608433961609725003464416542749027882277377503532500024955996264077814295967715750099419571280462377512488311425609049833460569474979070503553219616231648211542061668656973164037596528347648610218899673340028452969681029690915374980255864236952968619249896791671614504245604238862777723228381039783003443352467514764622647876680298220736586765186488684966267868045114651296985110155994496529345551920117990241816587135450466770689147378022507483867619469607488432029205095971657904089159574776749127234720833791870437137029948310088414718578215273790408905277330611989452430179969191980770159446569274884750733601808034704612618699833337848280922409893085410208694056701455392573113339750338659466787221232302981597379334239486583578694639675556026943375033949585081734474433546559153021931538098180923470486758360690116241813266471548129394202115680189208498890586533860826794016876493379228721787261349778778453067150187240412767985581749939758106875599414967852042648666947060232378122099689858747633485921326110335420589673970426011884519673414970036938507502791022988010031699993313952232501411838950734932427739567325778066235729997377849048837788652630942097212246312268406651628510672932637588132780576285729223402440858317868820514047804880474593641634906720836392162590550735843253024441101243228042768390556034178447601062412760097579767865283852562777676680124661973404168434059346286426020083849885459132457727560087270367700346663585338944290554251657739359346848488977228068499849627214262272662537174381812305318741785241269716964616886864621705474208596905119308811503904126121310844611999387743013845256395002176275367442785586791673572897402667932988385049143509781145096604963287641460425536825469365187112178716284061951629917974650366011453477553619917334665228255265680622946620191345127158296243121284250774720370146492526202121756399432693317404697445599089883372640154199798063254296172750234065192243594005879012185339852239757081850664997863219552879823319787609250331296940033759096247931078533747733529485725558527042420918721809793617427937475649549841984188265636849921616313315073277854985404670525253076084267008200402544526286413781848395486272051310857038900600980688078491333707945055916259193067444463802327987409481304669113661978609787450242100807739481998171792358979155867954730967397617651133317872989105951170569937644662291161535414081417297196340231603050819033952055099935634337119794997763208536694750259230729122703440157883808780666164338741841389389091032202814087992551508918244426521708122231686902259266559197053249781002225221072613102620387523810215107608175998872564500275067372089861387584247652281402282228189390689959628299477283904360580124201631148357651075353991030813194081746351103990302495968523539292271069433365004723343847948444879445429415999432516663247297983005942383138824197272705463191591855566006144346743916505745653566884511288490989736981827091585003897141906332831414156364964117555254332960477810402147569462578577361643711268025139957920457853824690423290228840444279834275550761565619675137369120436405323950079457575668034539295921125616841014600119353388224881349882343242242629876534055209717016765238817513262823595418414747566336962236233084135375688950755080821869010515377576496637524505159419812756528873866747456771778020007215787696242733540720073713136556832361085914943315711619308099906304935354566819535785997556069276882183644534153901971143859118505630977657246443105025923690979261075481049370902916967491892782797213886593175781980382372549678339781838079596351670699465303432243012699766915527066001505070360177247411973385966222080636473508791828740283946702393457101977855271424155745440098339985094656410292352197435576359627719350017833959749026619749712766546607730956836187026744909247127146115251096190290920758869183124055495714247648537549459874259177115291281118084826021951345040903277713458207075074679335781419395565600218698604088808380918054362530324500641474105158186102705680511654591571464615355312931564666404759554357782450946752021169530088278310073910507064028779779933128507665409661304115203597141310204759077619445353382996486306044235181681937241854921847201240401333755842715068302816013865253658094073326083414580191484461958226839909923571907283819091536021044830888438290544872845803887727057250381874636303208091261102698474954359725656906004135069788198011758503062805247007829278062270086754528543260931596158327246466032495127652014672598701736587136282664462750951875416418898824452572938348671240335845577584054122727305382567120323036553194915871191861089340020155599242757057254455263404212904212073092291024072425011126366544911919647472453796406161604827973123517487678590519803709736312294645026481009068913031818874123682580885217206511635281792760273858967606955552610789032339203674542729640744383704910519865963007441871533840698011090335359269906422693950791621040865532805632119177323287940963589335346368708977080384367593144570246863601987137202910354634822380978615066212629655196484781943006040585011767356284846830475022055134309191796460686635991709662269904036230403639145080024907202733238126314854567007886595389517014077012604738579976689381909528888512860410514244594984393769976467781162095125311453284089746366955488083769697675201011077168942171179195744501504735679943335876316782127673767040170121139302853130051049646571442161654957069802854135442254328871845893918381506091644384995419195182449031964490536225711486756247975981389976073710868918929993425349788370023288590868043421926279098884974429906832425414718479769665493622340310742493747081182787990876106837899711461216670726598932468571088619366029383004589874254060610376374197820084205665546309328545512738076349243772546080497873446933071321482265282027077820238658552156842759715876509449758742143162583112160154907251042708346081488310873865798340361414140491069225525536414167111675264433606548636580375004640378573314615264230367061575850047713099730056902264272251942692829094385172949981893879964295382155078220055660502256821366363312652988142287765377300893321148955314662051853288514690710868943283392117721246853954923025362439104608320661465274539337668846162444995994781737638798680237634250987379042290383595067711062152287045647581240338774104388901458973613623928692255344344369182850952871147048910414267131881970411574505823521209843591950434390243087383883889370374013660837696314560557929630573284126820141340586254729921179471997258950467999614810502111823202650665056559477877805827368531753209768346869748541299171490654892914443225676757448168052572632198931089126208793548740915351528652503105210033032511709765669777068479831070054883532389791008523667870928095271315750080607757780291324035015934097699008572185308160924405489424586491015465439659459730104821476258403210884749572638664863520379565662890700821892402094846779362777066535187621174433528269332191387677453876004617109474698415104901125075652692423263031502640851581270794123627908316628093275881080612981557593095703873031320478829464090230122250681840935086743227995992590697635321216089690437566670564795993256044290617083661445809363773126380376665657107609877838908595248973635792589204404982290990772278524557926239033242322405610599064021699401658314484449378557992475218492779725206345521587701916419605113188611278911447766364799038153515157234460401407549489152173772860425827927099512698506536088092672695137462744047164691814355083303369511682400943009885874255720744655993762610575876414518809420892355822362327951083729068404748588672382492434346084058891276441746511408059003395775444834112805769155781108000128250405877630541664355437545108568903260187036140950487762952545448037576748488358310872610676221065129646747297253631211519032096524177217947877494304544630106881534394888306979728564534985674626725217418165393876816325607412396962511863631792148315567856659203873359691344574503201881370956074209924751702961544174583271537297665033451080050569968325145808623886871247278952278584574515137899387371302444520082803994871785228914149784324492310832136717525429071001856578906880244317102372365043959185436553478034437266250629756705913283251363700480736095418321205088054036221632545620102781269088071971282971162090502689240096716259945120608272247499432354460118995010063055081137911215978029150702998191663759360518378255303549314248408794686789598482477746415700981467898728992242545452439674739447582824518968902726150388838305335898544009646464728701387944356464072841081347169026762801304513361453879816800073135896351298757453274440858683096853376326656623539861579557840354906265940101960408593481682035374994754362713796633857483693414395133772431109628160848406490415325418689938152546098908895459903730215296276298194310416733599736107164743476785579114903434564483193093157278646876163754833848050233367975556532991472963190177280965436152664470386753880240559747746018904289633962351388048171821115030212009068509093471138735613443444908923974905746465733758015480020875850683074353637454530287878633484998172612489933776211538703872618356762251378401693625438296387997338733687308249676056394823152271051210607018332940084839164974203039578807884133310914031278261839501291294742566935751612703001474645678289699938891932333434786087006981761954662926268711323084843582953960697096781010575898373210170803809139275616930657636202272434443473489979741698364637940175679370441473443284074190250597982658852692084261792564329140999493305450098264908056139584333567218756104871957139861035635888091181567632018806198780775543437031743003329146158970236227113281805821525590442941829289158164777512425015155041377007750665527465138777014769359446625467143429447538901396689988543459676030373888367110101484687921330841367831126599502188059312834674079324749286095636518700827682600458729666465387358966360514664946918803665687949985579963836270362546112509965960829335014522463132902984372541585158673797652719123920374970049546068269233554694780647116491099181168722942726782848864997598266371284821901337263642379154850514153185453072604545502589811261069041253677301040756131483117946383459276748062741863738089699130365410532236278919324946788757351588078550693847521001343184588164902611234989525621670941163559335344780836129718686449993096512643003955827789589128455905177264424405805892750215925160379530001457060950713371599775281372309567490594382630016139277145904815153289799342787531674267867300186366912191307980693932844882881013358801935550995262589753838806278804008274453826008760864977220754792470796503982281163499235769986484123788168843691769228387452430144747215770448717543286206183790413349140848567831848789970870240841509445236373545025073889376137408005634275422346188150255516491195515173058805873750339953882576509459949418315839099644637131456726082585383360965413540248407357932711179410471973785646213691400703176323757395809724654553691261673264440109763798286648424012830139634817602174802310142428492580968111048505751149660777607793530752604220963800847396001199022009143236955511333285945024539298731597261944912660190674022482198330182697606729268919172927149715277743410252845051353963676546539317899805927019782267685355078184243133072176774796649610559493401789444398850261664069181992526532933281468566597048802889211016162743375865004477804994750409246877225902625780564346356990026091586154883422966264628333379757812421810259575743784693276322607933329480143870845547363882846402909682084104436924193538366207237340452579000857175242309772470208765891111916823755416398051511927270611611566735029785716497819274999304048207691490896937221644902366371211350580694018362860610867939613657960721641588246095415465843233503793033426712144915728013603213923774027810195257501253243903055372332563932849322404106042634139805115243852366996256604835132654890909663007966097747829490260353078809905476994302968819254520368991093432053233957862030827891086924589761279591143735318677064950911020848068128628686746511500714694308764288150433428423259787659051387228830218986775219947685246613724967044348898556982761737304195155471449861125743969543576202303073850225074426561154553114782107133615880240318138145445847948602985129878956612908953302271779010511679343043120616127372411828276922238836347338952143761474205767642685984732475540329638678046840799992856136548017168721345385171192330299412788901590752248561775986010038050639106609385388854722159713433506173256986057907281338581673003311189458134597494031844587569595541433343670136132987456812983383926723127157892116090026310160665416590474766307146924259467799983607995697896506120366111214365737083372677506106771272249476363083063267788352638902113959052597683161447561305136916873252997972855310305528033102053583133155027004717184872630949338806233869381397131828340309877578928921476824907390196526384361804813656485582653727543900788905564782008001512763409259927694120637316808466333568029256074693640250226762570034867892872981580582134706056988275282623667245906376588176499489617759229150530688319224723627938896558134061661239088348349852155137061406485089330841014168365580554227222275421136830007017728416566302721487386515815911124099879509381914201494375358162028806929485651003941238416511423004048590643896447689808300218414022835155943287175616755990552934228097462083358797909138294090495561927694616313673268632795803350516053061493139558130717558775546825897824426449501489807396786251073731390012417791551458378991592152712108871009590808138052244732578922693379358394816030035328659173195834901704434011877216348066350243516461536944986292751924905922162675009468463467113352230548853747510293549542487534471008386086017962128270523189837483266483756601328089262232952940698976177707636558459707871066132860212457934955492954473354878741985765847590354711401451371583419192606644749979900201001142622658993723442464400583635810239042450389730667710241085726191237720456466701763261782372243993819890641553541187364297064767869467906687788037463971932435347521677661566784074734037164675524745575222879556536924356183791014530673382481238225186800169414239307239708311934768207650392577386007297060093574910549174622099364772794765549804895655568445828267293983779679357210046320937209377073433230986309886688798979083375580278957595208959694435314925686913406055055313412191528875505793730623017101331313660450939341254337877459035772443253981081708823966666915781879056421317264782749751100669102804095391608417000647170942492253406320948645930118303041408396376914088061525080060094145268932144118843405334803132416422105472765002954292289179933209751502421509071410301230809457556787872585064727275173950919299172277421355844486243592759740327709616991115281710734053087847528546686817718456990384649200764169626281499008891067135528588028209424358143465137616219183311155553887168346125559655161348261204878428522116527427217794068892041541933574126359494461813755058982607631951236766298447596461468210525748956970104696444750221068215276885598982262918743245677751634660847739681163748976930355450356992932270682725771835596781531720098276328564002837068855544121092987111295233008638666515000095629124305288197940406464721500097245710346403263135487814679251266679589573695595049257258351778962359463872836854381412027746073440364925572732442744300121591630209978015454892343361355550291673216199812022082103035363143684526876816902423229508728829690581510708963674236355189759155504448309136428562384484194554336092889619912297199805346649294251879012402127616301618265606674700735172647076198323609147414110342412240487250627460788936211124735488933492181471729219965900254880363116520522851007274657283532060118090140890716602667005497071128128808077178116841373706807567406231725147275311557913143290606435371834922457459350696234494888664337164053551131837851252423195438020759519019350042754858337098198263428021642537222197238930673267517993773327740592640728070300052563372645419681882652093729498794924071526875102820074990330681961765503976762095441743155055080873842762522844528883098619543683784124866982057766901433508044005662223712451700795117049538914632207854537295894981998943321817046075545394144968960676363696479321321574943072646480416388252400854645920422287111597560606714581619876016100474745016558070739693772314486262487253676956370066164720666960280040493434543351417855829476897489148003255389065047764562501322407636437493104042241891485203647022748170533818493552649418602282153422183176363518554148554154056331538412118759680418954289585385855305776068232850546819453269469702153243289115974862569693362851866503624813430085523998614168051711354713091608623450752487960746520295503386052050302997168089490682472029581088748070794552201610169659954355672075473578354447539049356414690776533173702697150761921545968854806778306899071262485512832092286630117736300264233943266979038935625437770881976973396189799284881103111173290136884610534667547844932273065856292215429594494903954404131136286254497631501296774376407555786109546776765361809436643167099830116114650391472007575502647075720589816791157903078427815161043792678118623190335844598194355475782091831608276544086424335505514477687043017947651017536888302478810633634469051742850105542854835581483704711719069022189171412400715770996761524147586615427965726424890752609000438447110876359838409003148627023660971177461996795715561673821806190554673702337051130576325768674770881966419055822337226645751882793977815212534022587127106262363302104808477629382541929214996563629706507074587298513758093324183498229604912439382606035698163245831198253286434622726749549763077211054186250174281915698533653301491876918830159934810065113440494248596707382319988918530035456514141032202361466133955519065949048411162740815246730562525814398302148764535176877380034619263122285626675773108262964103509007768263305399092131100255594789080130818257026839223845345063641648090337668404675454423537779447438707842048523392556220711470581704992174815845554899817636164771704955745277552724069030929170303360164742842603372901313624206012786008392687371894420992197581002219814114101793629209907785963785211274327272351434463284431550507135247428543541944186039916634381664156702642117961397028556100701948339625080309522237881313608343831912930685563912863064335306171560381335407016335457257690500435707347895800051095992838819381149702851678716312811391278124832928402123115343440382085407818989182764505287282984602294469179131189213456978582050456829172690834607787911433773255892726165322960153011481912979388876249305586418216509010825341775166680014660915324612793624555507395251396145931749610091830320651654392871647505567355179312346314861204947013236865582941306576646969400012102998947775878261406669127169301697271353219285081527763312389127337898011522398649920421148156360936840552003230797522696420499593253187358465569290215035835466874322673204003598463983526275316829086062999389795905258482524006972521395142291693993076834355940860773601746969788456687858042968855424688326404473576176369944039078395649413804737228873791834160388769266352040777616667698075501230705087753447601139824084455383871226851827391450989231156862630060196580699297719744478529839484445219343602974681750179144195233949473310443281746094677380282749107039836613478052391705038426033058390473776300956716203486948892063352694612242834033665984956362335942339938455370658603480603426611558998111188599554893176405813274778212938354248429102467523793561557849360093943185542876210612811835631644049608211083433802813622450539974307185634560054070018649337880461910999574409221674522907383735377051705300397738044043765708589528373995107338496139037430039641626975628794423651489776363299459697290044998590934629341105030366099148413459904864564332594893617234962656807121767924092885460956725567542725874505441858504189266598321640758693358715335228503820137524435367925764031147752126334328786236740695848542000455546861020134565005805280921274201654583615399359813823360298851440355922346587590312509729451795851736238800428275314893419978057314876343145150667791920027668640901105596533598770103752743246913269663738129774407411961979477013823890587299052600841579330778760112176232752853930524219442175712596460484014532984138555691332050200920919519315316994305965582660794123657515796246155589594698757447004604200461210594296271759027000573437635967919731168708230891918968957150190906787785415721222931908340561600407556546297333667621097362322381472794353776720972800127903850488483594609841304429859772968007424783898783331167707015204616133717257705882725508584292002688644706777098202126347658101358223601208421865305165698057520022272529683511198533766184453700455962039095480941717587034919218458084512350578648035053428548703075639848285456267379535764293883548037686824050218068538564421094558976906789204497064440548555566850697388640441904589531201559646829779359499522798122292105811273317669876701908846118951024825691593493030251648499551811464258767264326614252637844072331760555022226386471899913911447821448837124194611378085264153657355207362822223333239237000167403932199865243952479009988106665003908817577760464381644874218834226874148590033865218667666376236843474346994878117003431547489874819765898520819868666071165692145505814673677015517965615705480121135558004987763929786832658469621281279688359097157071140949088662618339121166823314020162523343119419478061322013327511327966046232610736283971770941981395944234757999885043209880735511108979318684353860904677465863929106785487579640706793131463395389578108213849011872852182207032423031858232697778851074204664587633171820677951924325402857182914186984601384904354295020646535553472346091462950309543804366000220254829073354457466224439252404382045668409098086688548901161380055734827133206272340175470085260800938231344489199425589768495943204247830655263937207007823649834529144911679504334497232243779165650464485744639752716184870950146516677051052101086643475306922715855616453532178299912214953459192182321734228798127569986169431117116285489639953430188930909665451099698233189082358128522338339197327600377807617722593666983874485658696894072539975410323723607182908104707094072474532324369658799543167032042576407507192906679294712185669605945099742308567670799304181936533397731445858196222715689596946486401519774805778115191672657004984757528587282255658190029966224978651209025241437393213907197727587024970838440738815340911151090783304311197887440711644289913828973405719905649176368439869543146161253599913169521792953006587662984459756081936383282013990413909524108942743441973076053815404373901235987713077563210067100195163570029193963945262459311741702576628586475612818911666668616143490278638129981653122339045756944215968320817116473914519139191126739580105651618607697512581939457933566400007641527473477381195407795752410442411830477686486454038866036931938141339204995650059174845096614899245853693876570433578641020276885082775703887133591160424017734746069389899327896503993268320286332218435507602878394592310770947119337491406526647894004540454852378170956090966100595563684450055071356327073389779799903622850404775414151972597342017325371015568944306537228821197463405450118147918868678945931800926686577167573625281908928580108034260792214223507901641741713875054446530109935885430763555242774512032441679097118258205048646507686209264163754853892796754675590698592208554111399838970579902194093680778999326586819182028734727170361331993080954132450329719087851306349127808566276852381355372975150728278381636613185055587838466156743277149291221578306411808448340559584316511471292826233955839435648499026855445131953943769877236306331866373051277039580492782544138604544897915714241104702018148773848125511724374999755479949504417597460476421704457951470649936880527459375878655930184858536940747757061903233523712382973505918460623250363605644112648392759537046370481661819699135121835330498800915762393819068929857557879185218657894716656650263056301798580946512704047673675286391114669180269955998655794357370933587687049521645167658988667595850214896824119478317981175405742091562344094684258084388223455939335890682489457174384274159837282209682031116021209301708085391325239317953351417621420885758035177884915990009518357097904921157913500691714910580875578350300685137575643623179452046085321376231372397411019633086112854058066307331437484782955468680836560835077560199216783754738566324285064114781621792301695675007302111587476397783046661612563097328475557868731411401924246694694453748215153041317226519709342454058694784727550887990432029376983612236245594533020666270482095968068366804281474595600259559601220771040463262967596086596657013794563364517767129993915049249493642052995865387834002720916992781653368443404059212251418701817978289366171962210921581911283231291601706847731514857022331435200672383096527087716301428552063285267583070493336520060581881107326239663957392640370579960181680305291242276091170261398331830068232822357002122710500350120836666707059127930060037943124280449341571563203962372782068270876863635179940611155477523990176244248466047199956641120052955162542573438311608284567087024579144021120801611127521991016882099960649151939684933085629543151561741846874092588664895576166255424957903174426341524019603551188172438616343141624291879357669327046976648543769963996545637889487342184674340881505845016410852751697698209897948341148108335594878983276979681343442820387834146636088281522183056510380466892172446112316648584273803836071816007922606877169241317910380634518215819841856354320806324258527580917611431711122739764905804363605375124853864788057814426175043291585893717516381966578860210161848664361474764798700502781975666687889379136569105379702408862869043665338413844416205350731469892048607167012477485751133506106171207247384900621340236259161582986248421952981151906860887337746598157420463316549585027832074689285400326901531358497295272712045873198273755250762694934734983948810859227073310346295800595010362710291054718882329718299129378455758002872568474536195011294203711150367994148255580684717430967058167528173857380853883475220637077028183159615228816769858884238924286612934538756550990648277620389754266335168929866378235612419257837206637241588569973598140694290342260986760829246516582976324162689071733870183280533506493119848875252232218348106615520106074836852492236957714510330672683504100923852064019934193322542179071452857390298307651915874054116916294738757239089839170961135570844273994579361828734841952187161257628107554453184614580809863604029422934052207338728820549679085464355308743357138224464895832022077288423586005285771508373249589162675684743796177039577824434337402209132603755853001408608988392049022557373843645268589163699241297172360663310518805151833310204138978449518274241136390961471445075003488465180693935593893146426904572729797936153811741170311884555584361463963960078963486080682927422191761418444508277313872876235433022024701505715247481883543254651384853843890518087775200401736224742452616724880071902460374972712332757355071522069196672774720707024506788640738379616650588474534321294045507741929548122238278018174221156032818763496707545116263447127324805667136789035883711180786812716165888498629062288223322643483697118622600782514798546233637652445060406880089487738882888100501447158634287953277074488318889262588746907164000333553580862541201974101459368157840301389596455741492697495448263749752821845988112492933355709729312739905723868301713389297871352304721679122244562270541748425497540670919945880389840216977021451397833756059240070853501196306231798025018219931236549297331356688189240272729493850672733213456853868488761897351467166762741768127209050380720755874328392470366463172979755703206046299622474760216870408306046305362637170821679696394547393883823595058640780111818509190079864842410797884685825705651547718675900091169977644000169294763537843296776646301476306567301970972838611210907182727385551838836858172183696898074344419933659492307058363183472034373768003704617129419542231773911550008533299487366347694736414738436255949389607399564800732423377822977742938832667757309589852634488740730540569611832149973244016084211647554747839809867667429659804908636475274152322413484883229420208095973740846175197737800264556275733038032721557725023576710545892507440476920383289925935832401548162360397791625204886663083035778830762185827260354361400403108172348094900452134799281638080138126099345792188484872900793774029436727957026814987612206064162027783708381338397595320617482649080742214023171480337825343853839001528622976831048286357389828479792210759573293732143927547216853854748110731651871238381187350080412546231060028101981379052079684744701403207680778997417759652300307829899495218781569361058719826972606744438564131742871058661085778251915434545838631608208643043853791397047914902011225573417202364482361515467522050244287103511021391069036626660390691923218691196878460253760343509462772964901825094030393685118411301455446353530686855821182242331781691215982771236005100159486624708439406694852677289626241184695393482987542426693081454228503249956111592935178730462665669794407453789120166382658639446936084336424174097230980571348092054398605125975426264805877373461945281255836747217114542208688884474935710190985083009628938029149136590416945669023352494620913519628205174713639530026127856099953149257506825336453821484436534487511373133408123540631275461408285006746107221026768067953123775412239483802201254406290027733923280933842547836563289053816837262645954741177448140565007022052782911023465304695996404342419315710110376008969609138020062674898053218265492823519369372531701575305027541172506677872075705894265784971738676058691532647668502211451482911156269815581052631345471344491697810502531595066697227904730107915863509540849609210188550656343052794822775133105609814883241405307702855485224105497045076820882851130871578758059755760435664329402909613858466211347657446251437139441890252702020822503523533339816785925085031501108276983192376733669002383822498659220963742382987056154849270815662610888483703769410205455876761966406314247997500735338012064824498931040571571882337779448535147299826296378347541662258386282163634215677437043324543614124625448266327431919426816961446754726186103274245329044151578727966983745781628254960895961940887879504837606292572768483081526947612135318077464654966258565145786077406446161361202634669043921051651776750976359577353498327275812057464243307810323418694446922009060042384836222125439178397452284356097375356188591434616208926987319551995035219297797474513061804752911291002328366031612806062426985235761632854948873132574725896252666719017540833858790292108507817238853850002127012051826449062805739020945197812220003398980585451954118606094457022661276355046255069679128566936310045161633680805072981536633394239574051184348126465904368774070929650639391317585124542777993389696911061226562805742269497671996262290963518827367525913721018809749783485985347269110277804376481302310013342306116053184652850044478744997721873997103237716990250817657901713912687966601443682236393700428743851026773980547970834791680758846995784838332682269132852547397394646559715980456127427597653654787746232388160899731039526222706695103913311420921802899302651617973060901344203063571690435695143956455076809215669443359115507332368986380144940991889609005878927841035044596281163414768306434077596940709279772648632871924987586130048785751009124865176951861547395351886813411167274492492195159187609268514474630793755431732489242789820169906404768558611536862549307999062446141103953930504883889263059923699582305633318961788034199849908341535475182767671215874773758964980677273745801679020456626523434125911661605136612362527543402680165377647412594920219547469791482787773767129207855148527658636831477074668738434812305399875648598497241833200615967775363898153799841756206243540441233264834037483738559432387647582331656115761269752679089058936730351763423262256857995835134160363254449759869318419645787520920309535478621054795851117631272835246455717204929331628562763611118395581710989067433114852248899035397913729582263707640796057335904647847847514401143760610253342648667110098940045713851009800413679966856705914919381782901529964166229097854123674831662130095471658479309626859444803069788594722540936216836045433234358480278263647612873124189740866491102612659475703432775073310720601238853977752280233693291354299161306729731737487599952377978528266222515559481590316087142653357793989080302172046731815008141984116782123848007705618297993248092186231618808692966234342592806975155816649484609829997377929496815347521215752426008590599734941513758241405539061552809304640298085606688354142778478486389750243805980157418616220209434102303723424169427589538845229081067322845494656735464889825389964598673073104652985187713966348133613168971880940743556099778983620434510887796660632424726125434774385684040750816780894527190759861603500489183055270359658184523688169097569865278851982589967198591348011448441556024806176937062175930216655685245847531887517841239220499091042311959187439110368289100901435491072980885727732711893039119226219205986907269527501593490206364102338724264872943066147590010096771680252324205740881871552904238556196356646858931975786265058588298847128624313280852666281884201648833087842345574937659348416517811415842342899013468190269594732076352536305427607813719011548813767991976558814253128597856074071656505429829378828896484374956856838617540267171246960856661138547631355763905320370942562105221057145106832256620278141323895331487007618657778213679634161275204133511167813690680414140286248666526714469788946314918721219413146573600244545983212140326354510250909136781230960562975810344250363213447407215991757094456800480370874127642468537147000603897021373533701306191197642822779041041824383753348681347231986585580546409065589388124922384911470047217994939458345701272986148416836643389889513070181605528319674061812036497633016844661436027716105162568470164183812454860473725690247568370658893323422663828105394661589566653675763346275587849987221044005409087762717779970380852491012466642802473064208878238959892512570688503609657904830062792947081904877454277729375325361086729100599226117417471064908995449027523453513531590133509830241349537710857126857278200648635083702719475252315668317768460974228142899609509111675388717519540713783844772110055518467237031838590628350887526467791420145207438764590750140155563629281746554027432790702426101483200359187588359571562086786542853384064585690924742372124857754764190166298771124432723769888286061519403411685577072450859122496386017480235460993248407913490174106455323474488932353105386106395350949746470738680814228697463597963874717031298003807939373626707128080968960703702309136470351393516290774620078735848345273281381949040222477659239185966515238817499046369449955585487250311676120113783845425463725576165044918273828694049309839791621307971507992752058971129277300045090224183750723775577636580116279545319143362740468855183621115784583725638066600886814133714228908176578331526150391544881558825912688533730101147198473911617579394172676247969373046871127870288154268177432386094951476817587132281640386299534744238497442516970786245538622533623681067125559260412480934915790015192251326223481606631303646545483035884581103674294650412164956013059699309251935191219269415259749338929762295137508319037819348380228695736170215362314755960159260261369512651620509397465496193208758908590772174690573068365571685622182443897590952896420837354538466728976476613453410421228852005053199741867288635532684406966227444107070334319989122854500467786952365595645243440375419703808583929773263706453930726059291620025324591850224381921501380559765780287674169720059611129953772046781368103711122047164032520671678355791592339845496605411524801790653801091740200600209170549197589955646573064273312393150975854327526926140687473562562600451526646261315912134363259650613264466303515627943027988626745597563967970142311593771807653352402904773098033509184368685164895137411091921126337294303055390708589558318653556471336373151170723478643286164780184741819178551229053677346961322836183863551255107001841507592941570609032376532728217271682592375269034308953591038263299075358661941904608760546089557885305125246474845125715884401797230365031373631241922684684139869716667272248981857860840015722042505191771668353352489442184301594117640164850265703958776107979842890760338050867475328353299128881543252518846871339672873318479009657753123105747368533943939831667017651357681900309322273044137846239360596130465459981162281330670498955570712800790335528317055084263821773487701063472302903804827026149817357612558937343231159441884615781164922471193874990980710522721924593679624279813031173424252058380038333942239303970132765907939112217619829700097165508749757047531145415093997764193470304127050252634614196644509242872113922184015359418870023648206032558782441130329383570731756281618274730609615145745753719194667260882582587332231898748947054965685644947121248436919194605878280718824683822299926307244401276149164374553144158206181317218544961074231222331526780698395506239253271554751108400299829689747396951090991456319081352306842545289790476047022967151858579046132141033078551609371343049485266541066622850725202616852665302218819283339828023220780056187226555164179256073320392981859251313102636454486930037483548395625122146412978382779800875457831885987209479454043426318399469809828105322956100405905242167669067073003145799119703260295952490196818384032756123123360121906080074752319205720841212709315929327102720348722404510043733614862044626827108712122736176771058766636340388059069305934769810301557284168369343460634430368532998023799470077414190931312766203182975142690743757624338799115642373429728937054297040231853871771317104093223343975834258155923705736957654226975200889387270227474937209296207785253284759395643895510121093411988054586920115518706247841039633368432608368464177906329402432004402913971608668028353752878930740417457125737524664059058371090304492984407196811146484515936731765901100583401644875333636650133879559641724281620244733340093262746372585730801611159955992169765528379054323070522647670649813232602636624599802424271297213652881191119063792971249158410455814966597805014689910881046598801081883225218295457230613617794397935218361540016161220820949023967962333429018550736302005175869704196641802982662458974504183750151931799172842335986162764181006793516307256603422167334905030276680724486454364429064698176740218473804142356381816857945334131968658870532349174520459965843885329411764056969044433329576529608409533955668167820289630202272128647550482463438525317633343526444605136348318201183793181303904870002123382988927297513877231772902572711079972964231889751375071175532245408408816003142160753200402013324474637127997596332193487933733898964851763606526850540562619145348812793895423492131954563095055902122212841142865534626421436231979540242152682844244432896502615745440914493816010870201453681319236921252043369727905439616569684809253651266430978311889715889124134252465217814513330153515142175172925406283808152535702667620092231276659089072125985116935882066720104923794897451292710321678844267263350034184297098977364334208922008005588234121488662905705721445679309022860308086877082118212836985372479941621569774834625971607993065715410685205337468830735757257565730642394738802283406532790488764951683151687498705326422538938114968137704059044690657660365158222622325245404470433840738149566391833196378014545531010473916635373786988022303643371947172364952199493538972372827060713133374979147729807034652473484876113877682234097935072278968948867163638751056630892766827471756287646325414503168023200451946937550253337267857583320281179381550854356713326046215084910707744432739186897083844562372510480740454010360546400004831587514636788123715843453743880758322259621502982852976736024640900398818731158014009590730653836503970922081695116647094529836934147268997448026461669922559968626448182884870474857187225157699574089104749242399168357397242341028941142584264607190484009137672760823992479027400291153149407470012026250964414169480430161249523423330696754184034639272284103755333136210633998568478586960916522908174734730808541003927494678347137096508410615146071797653977668387551632408514287042276793090246102949097096802277441467676871223217627321551297077619476579631394782524750965181844917586505012487138116932406603253116189191432666929171755349730837663514820829493847225745739556035890414219949314755275914251661300469017393386169133386808164325946578869788513215830718993554679521953084934050953824140832335513569688459003035455400234008464810980161831262577610364386870333704504071084986475825076982261519154077365406541867982097770610868984369270318720871594733768191639553922533614220613415083714185293555572514669843069576409758583829506417696025405248620309174574967311732994016398397793368895416035309953535065798350432237244614120235754027574147878198345478637363854200198897021403308413919462494527280770850638457676256378383014518508943084495881696125326964631303249942187211750232848888910831943214932972735268262780729115752726985527941775664798326839073457710395156419761256463089498950506200972428603585383423940418267067467264101525050998212565450593848009084642168944883119105343802974909366076422334392439133093361267643736196150716077740894388944398970602711156324902612455725832732184124976555605554951106358875148017096066840044067775119506282725828165868006481712385217367097369218111865532139631861069120634082499516757789284227850757100260062464477243422174099328670160824515423937445674233539645633527448698455257645639793790176361205200150353080151272974336741629118537842995378682160687180631587370206483927079123231911599267410166675721827306467555922948314022353750023677739445805858897176468538127352389902694407550165036742650556227281896236789339571153906925873872278016367221383776138653881382183668257900038996708585290425777980422877116289914538284353799850317560329161444830802403659607905532300329379335038206210902485464415395889557652662636956570430167203018745148855027257264128212115251993438965733557868643203223428944536027681654190931431827387252949714856457887263859762799248097253064776424266279516880043639742741478281913422319816763744022113759389885876833957739539504893865363810619781311831950553465491482992121080245893440157942003875547393938701967371472450846012355123854016974443642229785486743653843877663769043515901379812228177251142973968593003042341647786372013470467471033383612359144740298172497213163536157625411584197254749163668496890844050377803636941274188120418881211612258356356471799118746250220819537400916524285002511288906902800522790026752649420804090452193111722662366786527465112082939690454668128331050454031581994546010959123695359227322155817658879789921536322750479682074260804732762702609274519894507949574462457800240794990925622585600276574892135315362297182769188586842790913675563917668006804390124188141018821153904852579713553978343030568911049119711749221802571833256134723929053154230713507264489153039598248717140185047223645220447212034751615838788437305000754220852041362902331934675290609489372034962544515815111521437120343878780062856273425169581831122073898959767628041390449152448738710727991239503581198230225108375391496600390986777816643307774799263252166125665837933749058850684021286002958864504473769820776587952467784451621129807415282625975869046520056063139667970044794646611540908070349587930772906239820829003545162535387643413666424050221726276483024625284033523578888734421748373933439609349502158240530066580433301712027527376899963397541119898835929986283264108169459121001809403269042546575932653806628591586956514158031881058291628493300632853544799630197214285825142625990691250037342365097436126299082154478811263442885553166556140816652018891156399266734398212201435800153133131111552721551017315052924253170942202103928062501774294042104063748310268078305183804602574297802650715456097562491556352000111892903936556918680861340567128425256370825807682094544789646449826256148919138675388301553577173250888117208537405613485680219348852996488000829721996454983548245156075380696068644206861687411313959436908797087682387967793022057366441149686657922846477358627901527333523716969257815736077100624215571996247699314694022255658087740521276866864095193040483371136500990563160253007851505029548217788480660897558316155858280455143175129142234453472833388919021498219930097056792550944104508932324532622005518730534572293711617773574790696038584175765076434892274544555769855133049035354187421930513956188940158260719736185890375019989809659440739917528717787533481237552410622829742575564638700281459297638837624122984774407895151716275827950937901722371526639180566557672109667976105023971433631711884610357943072569477704074507354747452347443764996738768995697313842195777168208051432038511982642347370608377322734320451119633137113651331427262238297484018030211448454875526390921965133809485438700597685733400681238606723254710004116454202283264607423022375891110060571873056961839444670248801058508284239377101264607731941574542512000958227420880399487311790401189101473340464797814273860190743193828594466099189860979746250828098107663572670989225093699173708440669250448907786720400382332399861322025358945995074329342732396489466377330304816603511401472530067413257730446367952122149314628239714104698572913030016156884013947727062502044260386343844293303962453685778533239824919981407636608412523002017168998498979386027743687357100654921038095892135576216536247473873531902876260251604183232167296871110057103417264252633175918429903639129436593202075407226526968385598002358271854532115189128337207265845990977615903980180637069940854426739181406508967790209561702177894782283598391650943556102348428542911305490977950850615347224482174134349954768969924318879421378015866977742747900121161258510194697939216848484033782576352605139158608726158086845111279019268973056583469510175387033574012347197846187019499312739364678086520782009232588269200755274255409389922065772610563807383473408134078941880723826580005476455889940527167806594239952748353514679565322365185836910712417552259285067188619771391346326567197726556053261255982287410979812134302088020556416134222274691030117915710014650082590927829791597340825449540907903827279935865627601947391807111534858793215756496823581950982670795315238496535667105675626620521892931916816351363876214876691844468849829573170155897805365242181542265106443520579146487686830855104283039353129536441724298206016131832051532738411741924075833287675065968291260538135932155924591715496872114970987224315817951441390408338613469160004326037341759958646142562747854048872235500622950352075260924666642535293255869257021218964319713215753812973542733595307867719345564051034514174264158612093577530598557823041912958951861515756846741917102319926910547169054406246500989967845371611926061798354071320642489635277406696433799221536761949196346186860350168613598281561729624177894993584397974653126602842307402371762787671580009328231872513211711585617318102125181509869384966104960620276074808795080044311834086673205746091828280816105634151760706020116871710386448904115851906512573233715330670373420776956677388937586363915812080851003184123752223496613545543623289241915354274214546481710735535276296814902518281875200022236302415148340572741625875511517878684968919774758049376607539739961275451095735571957814934085468548648704368312051563462497683338755179437862515107449230439974415691941654823216575823400010720012252823813479915321432850201601160231287624091268967953661018399867664842128614473740817025945673364372253368709524633302671398313423975866409308061680982635941857142080716821371950494582269432612498849633712998233841154759318916988502905025924170774801532707689641999325172016179578481562052350577340447791579141951075564813216228821258832294825735686234665910949088316620621695344385218666331094945754575708585125909185706303209978178751586020708894555656095556499311408070122561009039109924088164677504529321977912687386639000292640628153731888792821748789190344398685722122876993418776905471942258924011628261573238018854893028903813511384610624600904629470462133649619961768171198528988185961115729128994410376200151163878416907010919779377851921562073996162335328201055579157069791091288399563365898306280561664704973619299885987561586125393023069792338445851193885269377732080798824141026129251313751060126445607677227404048731212641194669338792682360012053941968635603256569976106740248076456642978477510444111728827339812085112194065239450718791638333068171022885048783492909333211898450919068289247116225813384865108165937517625139757293133459382321161437178939105738920684272618096365865761091087837716869130438919535163030342170870901140300907767258893012026207782820827813249996195501888891849177598891574293107457105575653604999441729410594899103284537677922801063663911372025145663667083382914711356864981197944976027517632277534562297959092468963695027743782144998405457786070476176567847437548243031992699202858011180203421787261746006573378452786098651185586375924593805039244559926978963912329592378302613814814273870883141562030231491861813699193742656920157991121148829695058676238666856258007560471765124373364068765166232205523871845506989061496223651413189784062779599573000364189812005975243893112999290371259310600173677761264642387918777036408208633727226870559435361205085645056525826492799882101709384171209622276088063528481901973728566542744712446734853269466982908535058478982022122792085990157271488029178490763010820873005744918078151035180165036670063855731494885042043884245103091652806494664345872529625939187371420434014968066796779144255997264276015722891433800639961811080319046444527031854403175398523883763454774784898179398582830745470212676676773288730259255719714815303766864081131042992006769392465335471985154562883490341588335169621449896507823533477730753069972108526679373407164848166952860385839776298229423711787597635765912815751407028915900639597412740618315887917784511613128992879567627560965361728601903860570058440226694638365894027063806900860777544742950255791952855467527275916664368000816079717191382906567726005192687906516717703020061630408982493171346951990278488593982061384508021025557231961019223325496638083576581592491352420489638156721045848065871539172000046200679379539011840558705551313239610084476665824643578734906073887352115548099950528316723014033002459722429245729500203939341122821383006764882890331315031298025564632326594473386233448476212588505594282543189782094352611371614585717371765926070103454723512302251941739847660012192092956031198535983315895915992666628233717435486497538976018996746505660406484629716362159816864912760420360128546400563113636208482806979515815481855677073712312289289723270734262689303565943796271813286834094513739563698305557538678108777331833093452489159970129594579853145148899000629491428163749136107087088809761576301117435883333877800444437446463107689782995115284408379630184783796513667263737882041809820700424418008738602339084749650374565977486024256287400159990774016420699423804212332631045378857261322616404113040521221477568557120074947346912525860069060759993285533958612363819032653825556536745193041703759681960951280808721860883945110501022944405606358230580327359598159249618452631232810650166384983349397149298684300827820410378091033111722931577886635462416272389511918545010252443471072493169298689069738335392992673846915737538938031317642565207788863016327723251388649838584470977438338142042309700342276702897042706745726821834242908837363554096417454933651198980189778714941546138975744661515398403893781887762040882351327773805986051754479583916331385076469730674248744148658744944853685367053505855824338925612611976261498284937184256943276599651020306104314685238055400481690897174281024107539200626854843480393257525435127036926034986421534051392588920852518857124612302509581345550472509153321336343316148841126265676257441567279421330212473524867643347474409730776091279753193125619325067100802526904714025901727255218717450650302183119537183270474256178968490132631099611310683418181838365281026449613305269857096055985727318024634027525486875547101864608091435417734605551545481519578040562542463729622897644865589462431346961988310222762560634058280506813440142160910780848062791496532081552343208568821931798656557134803046096146078428533928578144785921103746531799599586615938799415858602914956935149282879447639456472762536307451315991580509662334300746341095528702580619558654323175228267079244356594221293168870742311086490498947420135920458789265437758464109052743823783808450159753763996900319955992307912239846736598420412145423570457793114060043667004097425868960569995598014829579874365865132580548852000458515176744104227621029968164815200539102660810301791022120280427162435253908287580174245965654702078715204201647968574292974043794418995471590464641205131307580952359999542268803358757894316653989804134216784110667672530272643922528524186599135178100821869934614621303634178845709083449108193083578787863380881387604189265279732143894436169408892623142506597503384324786420408624538880390880822016036128587971758354569754543432490373645062323566237882434127508773225349508412782913511534477738804617990052303393955426390473390822712725514261214641309554963053082780959155321476006507235615309091166202997557219943478748762158489024381335208660450787510872168855441587646701714074419177193120049317765283745318970544946837308233946724983947001971765364796354976954650538224879741598693293932934336219207490294817729646102378966040465134017869583497925462676702268008628528328476762554159006090774643184735062918619765990544308548661801568162225200613982529833377163944810028833616316138885145719652651252319246361933261576768607907836112750659313444863001956204188405338455381929242033223456578416762819965451603866959094609831280178875285828146861389868285622986039970601340039012169609457392758946005770650369662927024344996997753359202073725985893378995027686138925425413994038469246059376201935411474388373311461639797969572776131209162878544085228373285300191958621818871253944395011835486059424668483705448191377131109010953668644970390871371447194129280511574132159338315933771832728354435907080340587461459369388491686470741882439419271651563108513797411257870358029854812608613018099250416859090795005055076721160456715023821806783248206846429164927517971436228107800251496782055274750732156449218468459862473728043748854324511661186588379463874961880167659514948329841419883351929892323028823348248318909843397538847831304895811859736712023430666130316986323112625701546757849918409728593089635458539860962741764020189055038055155503954216255145187046567472294098367415293562607707220453981776177937079982406728593959598732038747274099317154770122436917000038570402648734423600737459755891671077318279041623253259706442829874489052667068673847981179460543591640957527508621839713145396326315140171220527527147608969912132788943973039707905868944488147854209396269968780843930858076631518499543657928601641263611106563977944465411998819701584691536870754938325778506203562642733961593006907510087445234567436917999409510793172873855852706621020968707377110506546812727701049521329167858335069469418198654356113151552439898018831008021751794932365019431744558177395708890350706840284482562333248985952736460569198213456864645838426128648946074930936545360373024568518305349224240581059400046310154426801422539577929620824283801531297757897170728945028595150341796345320431998557261648559636893860241661263006438115303576392836948832663562930756028541007702257094426657509298525168879734825750022208679050036500798783446941823043400887728812013018736246725319396840758454503685765773877041878571497316959129154515746606122165721273105342858483084585309574727397114759587354814806561621030953698300573171018371228173897625911528066675658128394116602548409555345904271041616118660368125659570960722631460822314663720035284365111797201480760072344986545994431386535425627504739026714285674720554812798499900674237668131509958733083436767693872477784369939801306942508209300556394112865237844393610580051659962493886486561498262852573746826688071359908874759134048739071967786984641589747235883619963530252750331266514255980033960937632441175186162029511591707114703988048221748871155771347905786818769921687955532779549057543695820763933784896086408119423402646555530789924639335087692907238104982660352402872694662937992867916022229076550474222199024332994708790163736661739720049824078099568598731574182811599625611476415434316222588403378382971434309330391716359232298276192715473087624511206630467042164541248290452739525277078603213893608126829753433910345494850415153706574716784706349645431726378863556654104795023926314742449791929551231465138455122017910791655722415665277324095557311102521953987449936727836774639719810401462863132897709709389297956005905981031444855608372860219523938819902277334265767596522757963435424393810872583857084469686500585788095338755367369033178089827686990296696220675396111785950771480806400653715283954059945479793299025586968899732717352337438623762909267719454530969966429597016261625901701400181722860930329406020721239472746208544877643193335683854988234265371074922629842862170242099385582721177576660633214508118814169654218724037267899273103152826915088440716093764594058123828153095420098886402139031295439413538191714027566113986652681216096418750087203175004477045491569013903528345570470967600863256611136946326733727174935592723401500736861771654488116280945554192673555310993219214152173840774486615386868185953832006746086615006276337868256517315147578192423324742433346897825001197120504553809987903259232858946785704087956668983920271737306371464084706058917253008144087662550830630050827948977031404850251058651666359758413940828075511880597560244906979264516283121379545101638364869783193513143404737611321731237443590402556834275141295865640522120372121241270202014282161855254643327031023594185937052834510311980945518875899821750300527609911927995995944740294860693040422330232960542489205251018877434107977694605688986116185532958417373587912833687172354478983497938832370955836774527267628609867295012222837368928078735510298360435066603105535179469273513338544246458869576151119712759582751997126759239866582957283500291026852387694117176376186827059931864841623191615857105735310410374067906500813852734162634444779706452325246140426106316510608663432337823557189270679706539767693304304282517066156928964130795836258929525275367634621936316812084534847836374202589258839499517119615778911248245039153717143471317738815533540612720554102044700230038296344248845952709398717200383488833808934079268170291606014065541656477305408741991729307474656447186883089960272035753724346383172421624963859460498018130215354677313074098963615420314494731455599490446380361758946732096558299454684836976558086001429221994213537739353241187224054851921208315094497100093919174949969721123675649228896142728882947247421260943172605240832852689003353870087716068749899166320653948768051724449807730477890614666589021815117403087991422640845570167011433369088241322333526967044064304807707143027600183633996071328217950708577159792749888639318315678173014829625769169444745624012845428135795267250396363126567847739871426202380559388934934595063948730208920495109479052839836789762367802662220928819385027415984186205328069363026737604520882045318582063051373052329557574768067110148785143764323486402083306859841993337436306456638337413243540143697909379638863966156958646162310577353130144575640144714608236844029333637705418896136250989785036982448703111236903385549607220294660967889933852418561411704081162281083489021330733086676587233279510173191686886717326716280013715924929349794298284926480735872673069003522824944366809202427140981664223849628466459776131880660815449456108580173959642125408993003900325058681608629018899545856285268430246333073001819347425063841515166972114320766645715141927738624565641135521927722332729828919178733881344382788869524024164248589230358651465203450512406231283112765628267367499449568430987429544607910358224497294884262220222263774894752987515575335742661945884787310616149300442110153662243947848371895327033295869548891150242033077072134047595997121950930590198149547697767841919600522207550475569521255720197186229778890470990228649526346597298644429059551787920814857040941382226486847750739518959645833266629764337869988390415727178460193927231097743515049028716178410598492933528816681016452084721324770162119879234021577504711960084847369141648258718533742896077390786691705143080094403970405802621964636286021961475185722236434505130958951205529913737050983106200697023111375456170639728868915103823837366946934905502369533500283467673905000958612223149595550763280244946665245539373270008213224765238089438162120878492148745786877096345000391668370813848624645931937278830787339903685868559290479064499038748531637059304818229562771568532853139430498139067306771247878917427953691043701536027588550168956308522125271959729825836209160491200131301695425399315000466048132416393191418629581153098846148356492395930513760480833626256192935777065203608661329190214800732167408576880494598584678261524726066653177684263023332032036067894907910914702517175697543598363357407877192202992207253245846590936520005764441034924381204930480818986493621891126589656556457491100152775709582952739610715674970532882548331025615128042016329659286345089067895707135939867770988188867435709835960461337465442678211934184131540689365141773021171791643071841187912561071775511942462255842779743613492518014419675587621883795032517972109272459993647335760539032090083754421746385522983685851788921990687500319620503753276262711254254692214084116171356031941843998253443208851661266136470737215947423164189285411339236649718891245485317446025078064292405859293382020559909383146689078746957029394529283423348349087210529828101014633088953702062724563833793009823652619743418335109646546693242415223490483275098029299696083843265600541279257167106567429817726357158209340785478332122191706488139877861740902435558728603039616395828529709904211288613036578942645670970733533162849967131203761108348173545014749973697507679045218749831153665176141168881857623382901225083959819015935823890854518829173092824291901989757730756788262916299489632554500063848266800809010765911643134771689650839182736123786778989538668806706428641045369512998883974605099811827686692872293558284174371751546195495969663961780500430057869975409840633972784504443497000545814441308218458660890296307019803109559590259085319746918666838498080575865930250795226522423172656137942240798030054923768804344667836306865593895260583251060116643783004200514555368086488821476822037671178644783948159105418317062106737062236672659108877663279536294679764110750205807097448154288087009391382831910292273747267809727408217038622099225099660283365808369815714435403295648595369825192762806940045006402091233961151973101662689358523422245950559562389839075050142477493618023110452544988279240158658057384417507374599565181107808626201020111824043376782681770199667963304741890937794466552945145428477912725951490850941461270324487363271201651500851058076250928398969251337054940844076992645616757816461226646288309609815416575812291943543785401631418453111183048640666339695703053075177460162199527907009308304387230229401059168144858640595229523605525281344295706009604366416540778748205953641694006502647991260588643106900077070872796928570418979044945632416703918644240017684296725704317987474378414349306756240954419844065633439892724671069593661208768294333310442054441376625662610452714819904238873450998705943281123707285456269504106257620092129817600493677510433621407423513156177475858521095447062758313850755626239113606665765753095013215263315349679538638488091913788987624809329586543486894630018765909678543806830973334468545449976619113021122321763184206477934913337236155607506471861925787569942807255519255827134851489243951190975181553514355684621511019699025091013342307469545966684052963747972856816465441680223842073155406701803607548862150076084970842207108313133299169187535458848534270734616106603698797350622888410940382115202626503977365291223496470249931050508776831846489904123960583234492749340775213656576672952104372105639629781309867356162080439837757472165508698672288177765502166373991428235588169004163233128958485390953191624255232424728470019888228450543053761997985257357554880424674689460431942235163524636684301990096663997548445022421829211185038243477275207445141543610274206609336281827683715740150316289922470225446104714807860170125015451474186735529928926869133135703455848517086395983788064845044335018538856772906114174741015622643618170495295732860121173471051225482901826014173062013489579449311346189999679081583145720678864286074443709191898314267553604802465552712378886450209016100741053748420738514770479516642389887699854204607109528731977201927031142245951366984008801603188719732182328040480242305863754479539455602686604624890164026809964000424900029771353870586988611473665925199014595037974846150223980039203364777010559183458623386664196243307109290706887473634296120970341311014925330141787299428331304346349344246948473320686948515067857828448932038231596628351923257768842799869631196083190304747028132121187644925417640722156111109272740568545243184837560318046688060607953349247040603601528677069558543441748583279549437233278206814404141413909033506322901489763553014854136872223802674281397358533515242462297198919935787973971237773137449208116441844854306010903799195401410877097668570511554204927674384510926196899773121296836906809618922863546890188357069467755640082724711584094229546624661979254146376088479273168639217140229652621527370135348935013517639651250232357174611455341217449431152656473272945316846682023872162567097150642894515852622958893997737892666710523251889261804209368904504664982108639716804074326220894434863265341488045806798117605020636145432922714904551464181537528495786288728365749035642775470404386182224613729560834303517441465977720946703739792406954728603617185260923528004751153607186993085318013555020664268137031329376454508784071489211895336559139436408807383944664025453455232772180005671947947474307225745973041200604796094734944093038111878756225606244084371062476270516390313954984426107388682601371837198848433275069359083835797529196195031734261795644616778663637660602159879384211687655669456642874958446983918701766769079966769523896408490027618849022955431178608086025146876175544219815902828631131468446056974118313253030430677899500239261344443649043026628046175263046342453515936292622372332018725527493553091388787650534979212841068236232818146823308292096162332159568715135176675156910215584593704946234906605177446716409907669291833729038847786225337226384239750476960575098059398596742420605895015130723730985692104574464551833359969080913036594952906178659305889614324098683859622978900931587417313277120682448536781629648151274531346950054349721833940528718529679723823897425247008882309889317272804076911111722725575640504208181390730062570985607813876219060389697464062582463040843656989471638685592511795620963909351218434679884939288214224489873385956664478911870382840209384826818241167705314421875109197901455820236458797721930422766654572056902165003735079185571745220980295692067798561940236451080403456030067136926694094842469088836486298411805008731032495034235866796365350291124408305687818510498473225560764182067847841709230724928759559697970484486881891495490133804275605233241201812914213309837786857309305162762487922870155813409996638349429879830429864177359852270793184843400643763488797046632220439232838809243863757007174066775758040896275057802973271772377881834652224771861563175316360691242480046407253309922528525143016528059208631651499321124542471113750714573334478238188955724636529826795664049128895791152128245761584715651962634274537041862426009300417267164270544377585243491701355881453426885596563937374415345296783595083811599101001866467501102887544030249122819791208994508558509583743511170784300529968681430061447763537052204369489634141384274158025286797590775462547669183727668619286482399265153189173145458354016356165408178874014476265902184503556396618619650163627540793325947264584166487082929763367896651796784356972090811744813872802873554237599484780406542884194774766712589112380683785898377352918280917606189329363124913431095628023266403112892316741512792089409465886269773256397376184685082861162673605103695353953962782973002874004668143158630389814940289730761589897963609547413609413230676987215900570682702020077151006407170915869900736346092200699510618640560291639497937952175688572133376153919012980573570293398744135584974480806628804252771210166892928813162818937443348564988966594688224987056447911272912708908559973644919128111206833134024794449800199788987435533365831297193727272510589335091131225485925640788258663359776488484764833700737958354050299451523039434001777540292780108287696238307599078231795801983307964232659312071328353181578023936319285847820636724668539795141749515357665951487390166645295997008691904741840187863577692038067554351926796238581619957269210704531181113687400433845341829265032281567215512130305210427839446386436805440492437872316729460901801602612428001016660074568285290710032926566273747821674219205938260736993642113643992978758604946021732542505849589036437504742070144797580404341444384534676242017815693846348866120954264959234215757911677322692860276949216773988779184092792165143855756060079851121841902386531685053629016854140145227113349705940511225511653788663645216992805019822682130866360532886699081321889167654244909162448535849279892069376529161780877466948913965873448235453714457326568508067506970450164255784609638482309209095712890231226918680041102660852318148638948284721520745454615751983017513263660038691223369384037774824326460061853722599849350040693693918738656123970289554686302756566747591982422588041296260809773478952610209953053194037976368976307319349889942683558405852837417328926214768364029574144857478143088467599930777239966095165933609767078333852156342199709921656587672800422897010044981254262587638431477931922001103661023027284768139003180983286908047436370987379567017735340244778280362196354489967539861706021452339733090765449287133293699169552569287239261382610852126502863256059761095137536146252167061449259684291341295959112879449316002811433392989509352848356614969492765941493581909762429469374405459027835612828963048203048994375916069811999851473719485877659279316929972741547612286499921264542096739844296659296235567629550684436809286024243475956573222084553162503533171113353565056511682238685447206649551451593923920608567305370029047210884384850646011500453297447087736060627525754290140703316677207932390133465993866169539888793571939673487241793661895011711907083638430913938795245579970439912790767257300202182505548778648281487685932882930882954570864261530402380430000731007575047595532470643050252545178111169796340139025315042827496242749424726939722812139495846354025974782776422023248084915286744647678382441214114191293156312063098263262766872870049840615624843092034839260281659274794764838722878728124186008387426724753620866189015800025844072413436771973688723637517055978427306119515725445869626666973578028384716170573293409774321315076950631007213601280866750438633156275418770438204125948819331005887670256258195333288256011580274095017191962926865132178733453891089618283593124768321420470824342754949451234267403244469686319554821186506152207187647355666884206504421733477939103914312686276127126153944726952054411037335027740226133281788280673974550297942417028305077015176010021658421302563296930467529682961618472285279813320125919268816984515836008242369830518406380813555373426411150422004953289414767224193166033542145948484431110685888974787750905598418737797376461742870338436806231412573278308891140496447972462409830325808364496183002275658064429869390575572340393602823895383390724342497282317115494364554700014933187806450492664530398865369872748490055750239475587475941921815682173418385230703285113560593717855736725924121752963886680797436968033276536900816483436048909457435224488611836729290795966625871134193508099611958742105774878695230890740943276977286949487860349771252560017557435540139125840964773109041522495356595887067040656974661294435568047866805251752254708155911838410544648832956670961936544393839226377039110814180887911071057171699804883611329205744856138236805396052635662360107219159493790650999745490652937314052949644992547610344793881785609836706139229437726639385085021985521487243038291342503134576921866186668985145309798795835702748129717942748808691138015472157259648522026338532769517365385734155162857832028489395110920231328399019802913200458859269468068186614615502931639645232963080326211893281013976923065847847745416576188379890320815678735174903459110966990226019698578113121267866561222042963576842231645433832175096572893982096690652281856863644066101736211080693480259588319493899028894011931827197967713784195655810538465034113664755959385481406188701408149044652199524332113656218616254492176179190670956686787566174816371496500015256260345423116102238141230925490965478823065121507261824843294920437524693386556685961978657258182055913428554937211297967455584087144807370189599252172894148648228778891420953388679542378218293976163517557874769284598435166575671220299465384537260660285904764405280580672219916980998247888349328621056410658521502537026286252135824130799058404505140898200390308732168237995673068356253506527177599946357469217863512106094559816338916268599086936103628271727565283041273187887532266653562713216446628106315857844961393759499836853502541178972857893989258062366207307050035552987448566703767368103895029258499377567402427642864116049363246976181219015254742829220209419671839123287678820654014618876177844867857793115134202348027969503197075356235544720795023039497635523623587853022674015869139130759066969194388819485328898263489126463684296613621897010780142874123731932943480724363476061326423649666998916149559890080084916585744254513048492094402678692793843574899498892092396929065554711504778488795679150544049973836803600749530246194515021971053474916027219117617190010011068028890665356934412286747977231011051883784971593327260362083912570548833733136780087848786734386117830209217307848204768129228379208684532624203169593890797366238391483320702678349686864047991089834417386961599468804968169811873098647573720092922741673165258781730398808813079940399783241999265134829597711366268298133937516051054510844608185955228943304844217392025411138667232706297574703016997848734048520261781765691263069899028897904437840794898639062434751339348684926633082889090823802278103125276343093761360770432523740320164555402785343992936869546986232464618734282851097122908076581639936514781040638369697693686998469865624285175623399135815355548323945111096773273073479077050765524319891048048510574684150208240986200318435265002436865591646032348940584882432169932386481333610453089008858655212937393812993917825298587756009984953723985395250504638515150988000428056387049056173403588068735212715452657095416110649390936443889874116869260800183574205627707524236698624381951953735799804565769878705960869739758736805281101260669410665579399832114424294373634748771426047907616182476568446039969117863125240702599887377328437177003593157444901272010396199931277144353429180000314195656390624223729039191164090711817751423414440320988069122449380640722869303143521122322457563329173017400573603348290733354264949979134682050923094235726842491618874845337202834290893746577559760679383454298181789786023776861708768880873529825225611393766932985399348447548831634687889255507878935462379159603614256658400901137622774586558875499254685572210871569920316887723994882237856160188285545009602377072936817906750361927243692944850542084332131688088236389854481851214065959993943621090455630033227313164932234214654262960561295537099461926522715160207775780681377427036537789998261595828858315933378007669541741243358004642029612761069931169483476479878969572725046697978672400270945150125977547763098487046919437331797292601699714576878057047845588229213462331427348640608107676885401227998111574839371375985183893050467202982851341259044267191311491012345935844041019094197285220918703709446448542477004548327711538511399034475468603359379938125881077566119292369778018486710748173626032384877977337502846748342461396084664884738265760051152707763972602549677931048842448358680101240245939722585746848363742468052502160391718728783692243227984456441593667278568416709271335153445285086907700187632678176016874455717698236184676789604538519986350483579126876847628606844882543153891131874908142063351561810010007372477736131275006951933540612565367636110411975107717361501652964840601444979636671741219681165647578935741361247299384279241550871617758027045369852135202535311540453135558097930653076100768366498238113021260449098001204665663356525776490712731968651370105039443967726020800246450023766248905226964006465504018594764557087044674015040715025371817385343914819286616293565957989877930340142924123938536907123006581777512746475209502226237124216961300467646808232516911691962082275586533481060565462125353682659145037173982692868364495703721883905315188601907709278003795583520775323439693409754314828526622618142172900699128166218028360478940420159581340048829832704469144484377562454942429299370100230699194978358399643384727155032323170275862888151340348895865008458014326482858995150095231491154033921868793975884940683513732952348925346427793867079255809804854006863018988283398371393877316848774022686854878018073985788163406202161974009325922605805527635314434576467492629920960562701645986709656844380405125837213510523811798303294353896889791936029855495189508320792582903262320611637605523583678065548056394021066925731379722468918128978522538108166138370590424114510552392342578563258370232728146730692071906675281492464722609403828069939148911402033577223575550341024671456096848425608706043385741233737746104831075183255865982473206323678142714324718083594257752595718268777694152361499525510793513906002805817585319175275404167650466289300519632726157125762729160470603092686713185047788069215991440074470285414542609915131392734292362744863469501894897127866286198879731983543660117385671239701323916380774853346249362569636532653496065659515362886927727866962764354797558103035218927516760312299279528821003910849099516259086353283500879625384388398053072307907527203347571414090208058340718019790942107137313149700105649374696368064076335297079742777549747221192291507695396258384253981764017802957453381000417087271306614502623543515249380556326464810867363343746842460567721116509975370223098576112247223444792551560916286467638406017402970663804594414163665544771236488143681356705921342449913743779316121685307409861302462837667878592266124020329060539383398538181425647807651738184023289013709161110039082526236935859643843981440419555304779225706487410616596658471362770838015641476886176897396252046662901537256625485849899738683955690532394129092636645296070908762854510886919611690837076245071728807034343002291146601289652510009579798578233385232213596827319925716628938306969337811721941410269928864092917376757870655923471295854284747060234117595617954751681512840664860147705673954086958100922752202182382505030340394829689522237505896019952630631588726562116269831118075375839007034740612616771362362270737748127249890260577977475992173643930486708173988590424775200782119754406870471323554846207304334318926672012141599778102582691317407110221719807168581726156897944673404275217202211995923649934653704441999025643118226786369266768365123933772551395154702622938323804394826334232855964708925796435968636185966780078850857439267564213413422274588443617543089913781789643240636757668326871617770194526790894833156594571822578285362065154823846643968768179957572320797486834754604707005100081946566532816319716050384510267913135359273308278827381056414548623711432948922372342436028936373454248515016808760230718813905826835891986506803167323570192132724880090530691692378931684801639891214133770775162723977335699102538565400175261010287417641201039309519365326725076751526737777474803892689660716100008849505547080519405810152673948765812546524742612307152963507978051386212847418799162501879746412638411975343199617392473507659261832800582280395228834265227873911769604255255050418958361384226509593793106281899887183325929211673786926833593915274708316515297848391675290808232812013348102979159660004232812399342407640945976627077252219751594477823999455751565991940104259269229358512067243182924550972245012873223207617681816707780450071746142136243461463503044423223857629036517736473722647189464510086197066720091539064241392429867796448103296667006435575125978434997000184024142874638548607502285173588439445619356681047986950398068512840189818834065460022925930662047402511375659633655110710968498391404672276145234103840769468507907314189204073616870983078232156253457103805754477176814803148161264082095332283750266744341835314062097380663880567680692854245869784873792799210521682807295270449933102330895136085005114876808509314503614325309483097326541957801844973528534762699825091183411362656703226593820861420575967117486201496086522573106256207435895762014099988062106548892810296687457744226726213240499783094072858612243162884576150288377362800759630995536364438847365979950355038192673308059301480212138438145163812707907747613813635853485560669970654117572592575806514966394528663646070494572238623967336315831415389472680461681094331051909875071123957083140985940106959226019194639548974608030660497119014610408404320798960857048827572437506265887060032319756504588028463398709341188953043887399511744654426925441253878698017981943799205296598003960714631540916568628912256568683714077931876199935933599662252725290742915217642051322580187032790184743279052200832120607335884963215742598172704949029233035232156221632839392613493343873848789711722777214988979656481916039196198379507921592240043261729277810651990489639471688293612619757858853855055151620561164386700014645985758111555628765523023921118158306554829898743613987843873032179378888846480466756595688286774059887880278542033644357081008967010831589375508704556625402330171212705826286157474664942167864714997036902249584917882627480296604630079919497598626670450785234230172845023967864955526244115040369783144755542568840257057207586040972098041220920301941055417966176415160737959950905259862537237112651702171815505606221749544179571736898512193403280945264494544434335209485250895851239853268564059627317696312993539225204956591413173632714427597835617669406679755667903581059723474012954909813568598745427084186121058116282955129468955340630640834601294491595358767540782972164621208302476998568134480514946261713680845136961316347693966241275577715696660772289177116688146680500811226257785023239829211757524508764820552432173267269627367271891467212365808317509772278544216567785315142829670301489285190036548701287418115984792096559167444517776587495776700772424521401442340133838508530512133394291327313155418291654570965245709342261920670151668822946272316718604538507484983857078311796051692458771342445589795068368850570900958068573474527084296752328906119155064141779701613719776486939798359092873467344611638360952462257190427001366862313834293225806176392890431665191972840527744290840701291813964703911053121206370511301644023788598793762319068568981985809110795257194734288865518837219354900575760600294290283307087278318332162449804331880489571375464966997982548923544715584262379825390398235381433425249747408570313494965722995882323738605990389064690698759187960061430327073317804257151768586254003928334666841597776826890396296484754913618708365020629219323612802210202068292244784671357114985681368559963115133249782124437251210091601093789699940655074728374336701719909952913934042403103055621592503277774168298693746982922552993746231144776737455869345799579170907276871919642731656689792348565068296821866379049121342670075788835888868909962353248659743243442844271503966594535377266207847596029493239927906504626520597093149712581692034067887330338075120304968619598194726285963145358783878439654439258360750700494085245279635723538396894238384857139296852779525235991735855548437741059382086447107102376152318063317169435997597186766168597582756753142237923551623559404090673890139705020362465281863870048822845685101897454997424371002435679705552506731167356271114037869055854264151912209305505085316748135285295800564092472966928121887292085067619764644850227630034260788679440083213589665045490209767751176051789692511103888718255373996086460752021153750734687585820466905785515377449302436426282122050871221935390272279228487343872701489627207911808275824202947356619174853480017240484621531102974893894327526318708391529735137917039131761990716649847112485254880525855056137259782726566786252827277178388276174138998353077092389799189996927697017946711238358642425110173440098911388447312085141640692020703738959043848868584119050879470789269593643533198494351369852868155060557828176304753046938368500705812045739972986087308569394529384863310934349492970195220610473705965116941859238378823421995864891355431794793211131864815180518875153015606479786864764762446059017697060908611901766546474334442443260709588322844945734890978523288383543159916101023526540910011516057876943884825344515902572681020295574698084133965144020016076273130940982052926128987482952653857854017491557038827332853738550055311387113305204103995621352905700635377856219826198316602688488334922206021899521968720769966919654063484439547626639093704044484876403147774834887514438956060582429751628072850612865452495775023431718538767639469784950222997253163112626501591494584237496996473155738522587704672117690581216227002201290050317808245018311957547249098301055964200121345455983480881442887183501634831715091221849674598759155338805354457856552232833925532584237151797335760677572782643685105785693076887419241516367502859268469212871936223753793291044422104960970365507882675939285623150178235007025761488178532159443826784386158167278429684704931621511083726333907855302043338440219306532005118775101792633536575781973837321444314112341839613562986300499904857997931020995468764563957319111212767629714729361761329626326372473672307455950986045095064239798902016055366580283745333789880974806723655302071587250778559045812450654382178381953663018846057205777716808995637726461555154021164731317205365304995385258797696705199618775416752316283477791462795239940515601062890790654489403298407401638743782085517807632645355926191779444638177634499774072389576148532341620883264206339600020673549218146217464847501031942802589599562702330292408129757082619933661145937591429369416781350953443409891111218663453115854292581741891671852804903121022117333180640580403535566669462708509694832165724805943063159449320900381244520263009592154416178308747711067688960018052013737347209112136460031065015138153425066861686850289899741043877387224272030273848389235955831095694711810210295945134145756256111873479850821610068398983243496052089063211030888021466119852606241035060189005425894395903344102773047649793528728594844018506037956245596999598743557687774170937662633833867020480258361833997468889923490051166838405840107661656904035181289725923737908769534407645706494780794022975016446949009018112162760981175399645534061111208579722723216310938613134670270030667657777800049611179883195238246794645520519353853199596947276438814133019750344246439737180190312136115248317521146284065525311369693011956172333851107127361453378532862109660928283019757921210489097564245801695371604616181248666261145968044885494131938243558633141854980113130533997352827549970407760502338960184570993233599626397943146845733448705135923187869463040336927160273549150855095318021855263430458314552260008696567398245391798681841167137683810007216561450834224593654925547711847908727541550150745844582117692975861320795085276128206625126469545859726305019151360914387543368435564977043279614172668758019099545961319526538900065672153570262565736271600061383570556220636145779657742364974402914225509405569880956104215370028922630717201648332838764136004206431681877067307662247131355589225404097990196700228234307538273275709874147926416249517867454917756496992065886384973347758085636032373202063144357113655275570505699356947636053305787760376673769779839375222087373295992698646680041040224529826445177955462088272235166762931557898840960380048594966567529359648561068533339885993683166409374738101492877517035198696983305853200538654812929654142009680468792381960885349383175980035997773526806259413085930164936352456969042057577942661494708519362438121075967104713150486388469510377163409145714283869724645715703686844366281195046315631360897863650683348131074106804358269643351616020384104478386965893068547257708193796032033518565662152117941894507528218645212799774651819432398009050900609830268113860046576569215540899617817347828126284699687351631276759153669726593354859477586371836036995369709288131697508258271335432842682711806201988630721642099381624947835908431295184744862531414312099847408072684577746971788244719583995627616873599625856731164704120317105004898903556484978326668213742926945528841301741463607007478358452992975176334569228334245394012992369973647927588020534839575026172646018333882774529308285710645853415816667949417045597447466594336496256729358129385139448141194693906443325752178377835953166781023360072092888093650668065981597570350467317229972470402181778077813827005777554352161400412522852346704423376418242171706046163205287509563413774371362365750021094777208724700525835255978296430328788642643903473025525520424436052837149533005376742524612200264170393790803023772737414047424796170095474080823939742131724635126433761003371805952591724443877222120352230491294873237590919884252385423468880388074868363076805718636430959506397764801764819245900902732738252741266222527736919868544265943751363711080619033406494357008104304087564859195684254979917003304368384087721028306873237847908450276612710333656175800549941511942449902110546746956877376519279473853084424707860536862999761151075987601255341512094532721903035685264934820005823779690376375308832861566706045918640053116043345436919244658513034982690668305408239733145458393706054311420468901247473516151911434088050439808526893701956063927554205806942081319815840060928860885525645910631048795422776309838352838310867322131320959760301391765652880134352666095034963338254064888146958445002132015298128982577146411706497856781032558788030463808531481815997781519347923836631621859150220270761742606244418657013805946182341288942763363183255149639771093946933030246504025360304058245046342319440392681614662888327268263989961248691273438184438574659694563376063062957338414069646146670360321456705921816457086990864548193505489256754343810514938379567275834600257401047605860957210319812633247922900130110657961157059224494566289204055366036648966537785364439221211908072965764814523574429108205397551830326015484774347219696521283559546167406739198979149348305566331823134498113243135822753272293344356954608662006032315679394913707930740298602744063200854376055356674899435157067038990770201320381201004485439848452766093345593483284154683100625529561026715330955658415634054284943332253987183343590813268945734575416427647637121671652413028705805757401542708902622848008286779478577525924769632968508432741298390835317306544226186087830477409602954004353023573255703386572505784869822104491121813794616653765516917245415352761981003210541075907489773457861309217764299196693277279057804185815681480927349692726270469004011563648944764737862292512320451086714924777740849994423583148771137938676029564361159420428341048180789488168909309327871801345590791425380826856799517302810916167351673926225331007662786971039291376662886429361434850471374428946629222624325941143259438265234703406336744131794974559709724950029766039562630754041979677124979262506024499051051104400088870500063948916167403477654684557097999292356021799917462624998055604273451387695958036987211042662468377422167962273882451249430898356565928382142952472820160460123689436750016742257481785791766593863291405591942183899712251715730549850680370969353964242056231470560849927216257477218780161661972231381222550096204028313403952086673469051698309634084304909026479593633502366505929265653130135407301115410848199912067158337554807049548922431404385816887341234393417078099417673233873823663729708053517102561199392372090389394021631618028564368440493165916085689595492787110454706090757372034330546809253565139074988813419569432145600841696806591837587613649972763412396639853309379896149332293810890342899526092428664895822061816565391037446343921322145739365973889340393043908785331363014097753332676267306114354442418082024080391165601839560899534259825482282264718755083622752820526779070212237386898596126202120499070560829962593815919392326982230634003999541881942033897070794809115742557638898183719707831695578550752001749391777890043884046320962997019868525196908123665370738745805348601089159243122228156642496261024352483357143351512067505814209769461602882868068814907971811079513503301131656740474098055322381414980515881440613307557874082467925083319373804080177049694678383744600414201944675307730381619191938688896587379556399762136776368077204340007012857718191221593939221136859686679671440154110736202907933061169765265835643429045607257048659519806728423615167782955615622311119538897396454212159460531378921188870692230931633436421444675040797431648720824646085455300036060733971234279682213197692922847119764410731742948216593393506493225036572527451818439402781747818869448533652463112560626824691194411794472163648121713805745608305656913645701742350660193914040782671469145315321243561611825272553948056145879472819441023937468960394356113937490577532273741787117142635961365072358292249317990591485514078665731881787783748409882009703396972368158155473991977557874307303349614808612565820224332288786074937684468151040455912510240191883912092008462410769572464738861586391052618646265511384762015146383043140001810121293556653654282919675667204719156904203570489564360566016903418350758779143354734378411213291705793288230218807944441364414529247036837245790328638267107461589930108526519273821191349700932958809612990196258281382710523637300175126319374468971708827610081513959627044886011224549060226679098387307436185008521389153475861251815676958314040168410144493936480357046783431269268111715533634384842084691832955873935688962963296585542586208251445818890394450796154658131404524258740594903203569488980590661208646154907673833107399833131846264068795141402759762895000885336557230723545523133827497143653347784760975763739831550712869913286669576769633457874520108517808075098854457797793939953170243372336780537949020836219553568163276502615987615551751275556985392370210282834924038802194582261133641951159365032104576794778020621775967300607994541246483841997423750271540244590730873617374928709533936340442857376231756509138193797809097728355863696360485463347305408336480604863382490328050492001500845061454792190049430719507325612364438769920017245326059430530713284203519657145510378613161020600552033640003594436663455683665657043361834301939233428229157322227068403738536886607280243541319718465749594723111940112455924896001305199677877918720789158363866536719242468905620862784977989668769495665458604402835621708714556775367461264023258924355898141452671324020039170838941775952555608228197682433040720793087457587572341550249747526632851664032771864469788024755113398705575187607570269660617791353281327653989632998167741455894131401029000379734775799518231199145963759127805693198626495012290928768446340621791092559298556441455894953539773778683432372223648881517156853458276098185795612377843975667917323376523909421471489290678786611140868729900663342116755102259924477643567980218777537755392209243563927902103580112883246479650297238111330119129152029962571429500921245035178804747972303872747229302386097793620887454549886647540174748906937372035228694369439080594121881101774648129943760784465617081023103954333240389156140892673330714983505463083330131356510944345299982293631917136763013306270408898442699697133951741710315297495225235024250605300278081603923313116250922606255919691942082660303134336799598618606254850472464034564661521202144918438544094407717210882112428296651480807596187005233449128219704138225583778384181129189959545467525193084764535088899275821003172349817366596014837110442388876969586928127188544501936431135612745142451582423093804781240122333328168491977541622695026317348929641765250775790799879023116111792201312504803448343829299337725900326032365271970580791760392699558424983974038883356259991201246889728635453796691296037184781530699009905188060742094900301087807725584177018084116655114693300061040008970991933633824478963952261141485374775749374186636501566036235591016301275301637922622805664490487163531409826743554922038314684711482046991351373892361550821535720983375339411205997211172007281627714574517677506375722689626318445795326132108437592686412480118654443738462804173501455425573222337195703460350033314128254178170704688713049473664209602298262921071718886645771438825189092551549568346907818195351504767219217127036226034810813402443576630903081438709026245976247700409165468598898486792659504339661456694669742686573077918872082453335680367531874308791495549839672271543338309893134072250960245024519456479350304679206835184033016662744935436945857479538130315002084837227802470529377230860911814587803000914303780492803658108774654229972173207309143575179494290276166131402622989106315451183018279018709941011540628116176188632804923862004785450142300355566667995157850856010837994433116798045794000880345679153230263442390521896660308273467428279854521483885673437838346127873384089202714578743386787846344521133138067336185212787197995083126247440353263316557488234838850079523936124447004866175705060808304138070535099390797222747847211368589384947846493621782546280379234237573936274072856442917426002947614109116178795790973743040203304592583060497715644210491620488187336145925567516150021008848003012257129692606782469090446315786694622107522296728925785001578347680609686119661825974119754483476050196356587959065198911794035494096999167558369060626644425205230213652450388467205107999971687197130098790893315157489597374756168650181351637096782239573366327369890977866891877040938588180179033238331235375123121148302041394306976788311465492111686979703213123331050187607883740994395179596513409901042805713514331630773369308686938684079191467998709990818201065605537179700468297454044915320524247557402944341812950242353446040950013244576531690541591538483276324973385152257338741605845153834740976872847221424356601008019494142085746200478508134228867477620353228825781956512982184413018828323252063463607514537786000102278516846678351823351275380926677013541897516288906444262876558316081280065063843359590734182333189202115336383013127203273666073766451033122057510160301985857451483104122331443796535260980413499424710030626738193938108646461938714619488399446669177670252921735348643452093273807319214869316223192389852154495136316807086502893889445641673783091921625744642063367388789175108039917374605705005499763990745683470690038143932931037928795003456131845618304712586370455701810722349628851928803559385256387760223835817980858165171850642209576042173456029249853023042440167280272485488828263922771748121317431970190944154956988900039229016491624354202167389037726696194343688928282742616235098615280955990554264081183823441591273032821650518366776674940534144611171169060105140909472724713917231417383904503732384725024417355213285179660530871223386231003018146383896866943021998550719091378144354121564110709146371745466603294119451085187912576741897373774984082710142469968703306493905636268090354385918324417853377196034301757178079824946497231489514143553380212577434835026459116245025751605813445481566373072187799978998581559245960296369704183898944273618132064443410146762692361362676851119996389325800773918470687966979027999373726952980556004651486613421931893089101222419843148103359052008799484897129510839881008006220463167811279588070364127181689223225344323932993099373715572815823937840336975652170477844880824571946141185081379275117647373430806093817139815886621972370065745036428181405442575135905379999822046115052260706166531209520206673265726459178635062196993805752743690637263568441812008516142204869852300352591403881327179675912791798705071690118242826587191241323182614300837020595721588851579679701544383227747381111786948057063601771118723649815220255444012745759779359259455467267389801668603080523990659735534161253715978012906159955768833888711841740385498497148419616605553669780285848870650287668986471453729885333273697015170652110466553139684782773539140645571693110920568199697533892371405600672398744646280376212609958772035599086749436672869110834142736431611108818292965220817492700998064873277710813705222908153309569963956720250165784075863284949384326010114016756856207744322743565249850306461152968397633803949853775235665156586841395886848489243039094219361429985292502786984188320175337894613875240828342577059884037220528257907610295537479167756395016254275943723679941891469043278105800453589936371185798891471370464524950914917340412578732861561545263792543524389655413730002715457670605080641827120843249440744762481757207799709260819568898968298330854032865483376237845370566180817902679902701097123459223437010694571589540457803377419192059915456546924674138446305631623797080136399124539272559283403999535571256664866514652209379729876740132518198397990878744489468526929321619251121226406185053437106345647047624870792229604806747334874538487110178904061885644246888048706005742671973372428347082446959323032570125085164715561309656821947519750631714631018169451734780658956626308370376223954101098791593660246866682431351587075518020403892433790234446687283564693922171764195599396548833576371955092066315384204048878220074522386797154812413546083154160960561727517789125388634725726136290376620820448937804439649504643152191828043593065588891785911525447704126415640047433814189929144429532396333806734314726754142145955655183067678160859008908979246902064694070211698663097708312065139974117610592301576194026974402269229546545683846935815651809282882396342993874155635458570131786057532655875575039486537371828318021463439477128399846326796843127500864547625864282006980072472154217519181332890410681179003531084988092196308074864886241293211753823835281331555811585769231309645536722516356986424202721832533728781347880172703248451841504279569028197188489572273346808795065039246887669256046235156057793871559473411752378407908285378378801478295959547881170530022432075789230119203672855870164256087719940892423670802049463446482550238696863584470653474085228286181897826150480942558110464953501909749700221633697704017657018330922601287385333566116565742759329005153997413703120182332757965832239313707532550074190277426985551546813860614449906979529048849166446733744434133329803646523201266913922465208773195628476120519102575216129073770325630203522080168430975220532503524540280934989458039806009393246275704235377010100595092846929109988546737855721373768549969747190669644462390947589062041857074574604528944690727331865812257039765463624466593694544832701503093223427243743731003810717490158709867503016828554560352986860495688753136936957541508617214847244430277443416410374179701667037331274929127797068410891961085272102640404189142753633850470521747323664663399938900496273761754581331833066631985677684125190041070984064546014819858038914189342538833951358729562100204449098068414899690552231919547113522459630600999961724569786995858150419215788619220613272296391806418887809790155212239609309302699601294901879838852001664173453359217484141357426172981007238318108992715885573726118861224763420204774005636951471882932232474901274215894332764618605133986306322147663257769357025072590097277755158619444397535577755182387851262386686280899226942271433652842355328285607833136009695551855088639569818200221944932129563310679941586306479401796847792656930415392994680317065172149058995559901961087277926569773551313295912415240519161454774074068887845898985930293680499329156649321698031350649267595354463480697607001464849279972715395644068658633820898018839909093866298069519682700797398508053264227768632921093540732416421351504048925605328846954874583298113750678238865098926133970126747010307017952304608861241597380819967149547906063971193958556492883745193477610499253870516463930497088951801059164403292208270324050669407525084731876706061815836736309327114105130091901335047491295132690502247592113050417144176038862950071581897948267451849346577902552112327279871178795151788219342992252616976542398148204691972831883050870597053231673653791084745489862659597599770251574154406135549525979911042365674588083771310795913017351256547595313989003900352529156927865883529819098208057324163431400733046606080816691527461505460060598863249592454209958546744738352754997264451830163958059649535231296017674571380984998066021477094217191971970910334975775107206982333893438392730772522962931858988786429806575701207676840291629160611612332903036091545155059483762097169734785596190176780071875074299408376171830897316742453823589483678229117877645402887139022979045807989193848473215497737820735305375400326773066782820159963965213665453322989686795297121525234939451820172374299121281479477740741750273408259059893669747217873778474994797115049890656147117030637989387132406724980114997253306287483721820864777042372276953000541458817647259740694392056531326165428438659843018096084568732978471036894551432161836235666578806883942353419968417250432671589655574039226901943919479839236347661809106205622367285757126890346677505641565089651639553905500787446454774448902826062714067798992813959996716049920971755123468119910245282471749268686390226183958640117362756164882889691636163272463071220508592586194725076380813596620197013598036060186290542885159202348573307641589427244952053255567073759981953567340189140366457501118670542196974254157717009688391851420408157968079391721847519732172944343850577198087707822042728144711026328136319062093908692919092874179404799251357800661852505674636430494663174597189265283716968442207718349919359646338899114448292839971248013085357647994631865969288332848858397536575884021291678894704007062058888683083482494346432833205793703879795125978951940418174207957318444922553606377701300515977280119754771654792242667187011484112323933949209693435481379417490208999721023188839009372931430241079197118724459560052070164105157386319160185597267510806203131890248066412783477501809650706050834188534398748907033785671897443298090331588278517712882546780288241669295484541688953441209939712928850404509183266831447560392036296558245499379780326628842235322011602717943854308310683868725007682159534800203801924792214816688239426093495303124548266440068597962527979400551151244115066741792335690941194778041475023113745904289573589785210539969524259806728741902110397668026639855578324662389577619341772787727710402801691493496972557672405849727864934956559010420898700028855950000572154224252896805335867203814988881945498429036904269047595447062746555862671643650010417077787565162148978992594376720173194978878210135955105584500841636198649149015032200750869350627543580005016903738827597282472547768831220015800610702427873565769732243387441220265390223186034083318571449488820767009779492961494475155762113606747982387146355891107431592384519876161706919577558763178382546412618186669373739320366491225765696360251799888897372076706584461024913789830318043457561902151468638956105457650489805127702753238291442451130722090894902085918255467405741694047288664521396729915234033758072849037160741446702770846457942300639046649172995989018782094996320074025393740413235923926423448692882802742605133978238717679287123891378106721150335400026982477850236142701486256583577148398815513424351905626386037249396990727026438443042466238268782916782761544644518014730442264913146145385152354835670802246946035374760194322451275385806467191706213547166228286368713456666443285953555379192083674934397078049451414886881028594040525117238414636335602898997090415980253520191983070771074714967259386408051728517314776061144418789553071769619192360406606243330634158143002667650002544051649020857212424848908926046006494699204876458063656356932117849688729251952654315761540855711483955779862446474753325091961751907301922807581882912264398331342132404376444112549342871672361867998826026000819726644829582224189779823592929679562459973910578100195163633659154584442308888887365926628142940265500320676827161268024543869724206728907247603954121075973767631188701792994323682398403655139374849681559209516048246903437878060685489319287406878578510848906950172629698588036767159590020382272296317134643718980050571826434278839978952913784866206051200711291599327517994148244712101374548987673345031189086805027543600163303903130979109921883054856774713924819153095009674725571053649942792894551875960292395141258402317801941200031496238153720288592472215794819862411857514370966851714837134802860505768655024048428918240935443461923573379136012332465103666329209702900020319556835097719213562398917245503810764662331716886518774747240460207369440584159942781868084231462032471586889150775162400313116121842396490305775687311611090189673286109992318141097199773826715018124377733061777098328714819351599133241912815889149133360561343918543274081325340622145205666100777686764125717992341141298648531087020088417940572503973542666268088288577805677454723064747767066948222614126783053697564677032017330550997453088658334017595455720437324948109250865808982764955255184139506528980340576631188519203100238568177159803701548274438483325553358187644875254441543528238047253920011789804914947856534776540194212882800213204957126892157590929187711188251194870289761643016618957883679892151038873050601501237293147177167859202667588728591563711976615008064509167572102462149136468672319255062701764271633169215448685347785467394433710571808267316028129566831922021478100582613064828152811957472124656362658236922360535668510197149999473962373619249686126206775923999310696165957882038442473984567647576848086306011296221179834549697746887180461294519309589703175367700231044666201980749906606013038120303734021605820512748783069768651603861044354522182494468361250620074608446797651892137007080553524844774477108401378015145913724581541521693030402202242127549479061490026390145647647670217048967828550845695416875972558333711725535559074228464017329562741101323552061826461064081403102534927580196223121462727255788006797760003146258555942204650363230740503711937254209181004974471420275178709072403905536367750324277207348062675638010233289205697196243301061500588517572846172392217359117174532823311256633644426736696741039854877397024403212911730363051742424521426180751103812371031284379589555617920314647425591321669545059548376504459784072793392170132070435582181389012822714255017713266274848945857170878694173679958862301627661691252598094354570817000380310018105320280206107443570127411628220398761222042788073901898518247156774849719393917653314990708966956487059726134392164707261005081200501026229129241903090052731007450070089020803589551218294039182557313668825323735829089399168975016104130996522856774173702297781250509503403722559571875193821016896141379999928387288107319244576153421852680457727658473897058959817278788625014126342684916590165298232637602632147124657507778651811685371408263785186981507145642137173328055883137591400599410839299146319015074339674917580912922152286029686273136827473881750365989853752469669889665228575898726519646329239593404948407661245056432932401389747461762241151893001956990330137059526938320743426449294561103431024274861103502066679872906477694849538427146376364160183828967243592911027756294803479603368064783874298301645252780837975891703194841519956665564861451533671801402611613590001067037650398703624944707580086410477025834060448353375267270290066959211290519565956781012420058012015049214706164994640487263085250384332621477014082735100057376055207309011809260474184904539114515564511275503450488874806081910279425615140955413302381273886899714803343827489311932456360460123249743304512297251661662120094078156183880270258516339776262884516837291838180094348756270605382890974846953369166092849263408937739895103755117656076957367313378948326722291037745594184232514222877504865290158512286525792572039002553633469066851389324399149769181874388494135237020590990245034697203683185498548567858434861235450433855547144752761195760085723345795594857479946032393745246131971007033452870491682549416206081347677144826434199856902263313963918832400177784364230570258630829627017810434130503876433918847748291000010896994237120984662602535798986917202289834637692268728775342961607184403223058020092195947377280709549174654495368743332693151902879067992066474632479502342879284341511583416714809073494612952957317388733435372216763548561192290963371729681817015524270116581601671700720014463452577941870573592574689462941870665018905934914205905465526524504577814319404773159691238653508789090442260622359913515973126643912789443069478833677055439087059730878305147420121250367916113814884940592756981164694826308336284314545266860105273976832697162389866987551056037072583013668056040469726723384957031827993100006585774905177596297344116895333308281956597851211383537443115216508506797481245424974759893839112830765359781936070981728977201394657113032551057595688036008272875739635810055495158757850592265061129559006571783291730730358541267950551519386577576197906095040391483978215445222648941558220948180385544996806933986904072218952944185871647966714145749878236924580726366244676404501506668345755965848328467008257158595463607641905786749893292732675503079330598669095839975008959652250157278344651030396020795944385951313038471701710916823990021886675866574380404108958385312990513656098850661528518597962930808238754365787094723074577834773514690743717543649907396440704584403874851893162470798379694007385805829201988792446656176107565023113946990004773044330065597391904709643941472442463065454865368007080476696305629470204060314659499512178825330034587814002699005224693449399419185324626436036107072425876675579143506913312754289276109453087600235722214062323745253815521737204813271100427868382214073344832494134278847176143185210490652872000662428456030472597519088772460681442215296000963821710823854351420737039329161998100803623246556430467264825675891375248442468471630353348867454004369821071179656102522164487570946607444537717397531374981322469878399937302298892091434007854234836825145931480992987215483014238291765133929878615990015694019623740270011919712915955877014175464558004253218247406908144325966963662689769970823068913967027495936653397292823256747285404697785694593147850127747724865652262636269382560443913916828709573794462022488123256921543668363307692428246535087496175283350756640449658692284297501457454741622892057132421243511786941678803775007912207373528398308745066973604568184625128299631436800885088856290481835128678238979528218286175815212146098013650689220039957769767542755325888020746879959142900658127859016042166933135365599488403569706224773137795561215612926547532598859663654397915979588946792186093913794091923136044876088685738977990150902616782956621093535610099573198247502976339240443308498157217228150906322688645440362370591659989057761981485461935570181666684691665243534774443549992431528886405428183939283455928636130641348500393054246529238227225235783214402182880259383032893845852308516045526267895717145511331494808918227082503481909685666148005396608620470290971310674017965659968490439020107431504987711790938862850888266582864896172543003476160445957204059445816778727751621750926656092389949551170418252942574333689137822136003968630853363003244609853418645776939988837700025735971896525169080212069648593206290549677895289797294576009133088806423327603196899676708609108087536130079233337420462041356249246128249442268636016222256791192624032822239175117409607546772235136332663600453613563823680710728329904521732173739773621980007309771321226901387361588512495029571749038031529362594065790583372612218777975268387710286935895445344622429157844658274761111280881390809441157027959821366020749071300290853837817451317035806894583228328441258809037011583074348514011488728456303166445405979257616433265081303022610774746205571838570420442151477182519937336959424822100903973683465048272536257731462149463326405034425756491913640398315199291523094361189703985290248911652311010184734544511189948856294277999733039368621133784546957873842413866677572295681553012671230471798691499049431007389824155573375438623887745495073924913670370669533092695124754328318287158620505422037720309873586052937919597282593924554271966996881369345109726970074499513883158771853500414904703800514286980709031095248374771404143663304218765114077412536545976280283162209902307001149519194210016153232398001406607550781271058780128507275728432187975520447051427242825681687162683745001757935530005543266369761905448896570647620387872981858442843465031705079621846177812214304265020460934356263990165462616621159656007696814240319460772288497440230150346380353050543893554105863971679649920256722493729425264034527901629785436629349220144869217159011397600969380704360269267874653135049128133616874713788939444359236135697210984547168603375358424068748127300998363831198424694232301994183572536378174403328389195739151733089810948347213655992713510301907604246788876148935670754863373167639274201646802397742489910904274790294011397233860281661151288871697822547358604501649558908187845765891096398018934085295966557521590847903614912732606994158683119672212550524762874602274299079615037479402193327502541807564568449455903864894152367344461295438748923209295395459505281022301729047044823468808419623217078223122387078648931723257044289375307537182788511645317641574681769612387173090872458984499697685572068883005725143302546320087890016585316719292436585202257687357845622320958887604210192749069638657113002360856614085705368304064767953549926356964018671789351040667747713309978954832554429372098271443110243774062840075832111260557635733524801700790889067594868644018292009166258761461952508681858712341452574112685197917591576530806128907560153150437797578584577465383713513560618628886638279287616701199550831840087058103919943128361782430190924191743848930924467105898246412897590888586337988482729396721818005270882123590415692046999377366666918964361646757699495752731136579719609567490538207682185288166616906326507190354107268432664262692102578266668324301123678263253285658336426929652361627782349086196973628112008340312348141102375368923060634905410178837102286135157551579058503317351102593016117672769707706831274963831194430020739143639272354868608658983969182565838698972691855032039019589991430272668979556411135419405896505449323858953635720320681565630629163503351555699655187806488346981841544265720136089130385989487551957510594716371972092060636133878518543277313753113857949209141682975098480886807865317213639035251232360624521247896196863832290176580153102962645444947479042084300621948694876480973621711319859189997780050457203070990585983127823702344136280858816758473522425690197699693403325032503144847750404028415287503686804829896984486915017745713614859467330439497289017414559002172147857348065326264831311278231839397957119732343149137264944954775988133089008089490961959724682735245377242091852177997228566423009656557455141198225659503490279357228422520866135551929010788449137005998846579157828741893613441669094125711581937294821923779419702070084043141135582019948329964079946479248601001613450382794437370213298261545434144267472361881512192636117709335054147924884651444824104059031653889306098046723359492208976020672982580881146276750832575242064317990090763906386946951548741387948848046831257979365376184579665345186649297720982044221916947085598191061810699170113169914876012309748719233427498394836987360538757089591988638021673472502391250064830576972037309278129378024750732427746096676997105315189158614849427904623889236440449060016566284283462736091571038623940673763092685575978619304588217806406161775073611271897713168602119659437292817202576542055480045123948046152600414360219860346743406278298004000555094879355275818059992598981007480483369163756152968726181081258979312358315354792691604800947143400733593555452788131336797639369515303097663487457727961228628082260610728463302877482152865416188862712886386548357458264724833269404816793564419879270309940695561589627109481185582855343409909701566961394860629554031297024737762950904796437230590921909964727733955240955046384661183171444775832579545178104916051199194550729090062302954667933773571240711331559060992955608140689707116603827190634845879245436332884808786424440755599531258697607657143697920618566111117460299533487909386887335450593689221011026083023237765138354604830875556097779563003953486193363614355040791323704888812246460415390229626149528986904807039577507653915744927846129891706609908690913264892265391148092284196290294418915536553565940073674174550890194121806791833729066025968026523442465879754659063159469378656763029414703759429015343606334918194730426859064131060589794970505195908565415216641341580444622962484501442746310951692080346171446139944963921142003315469106028579036705840534527642914814642347552273335031664710169886576893776498499355938391393076130107615072589304671486312738639873276329325413118961772522660380527338988152922062437950955437325724057326961131435991436081053761138541775050516471340234157472575823641876456255698727556023900876962721857512820995813755878855856257383650147445031284187411076876178035323916847864261038534130839529579062335038130237494832339682083509688101663216848890123312229013582766418531279727631392061543557690817320429461465855154336621035663073971410504083132356823255845978848582521123021828671860839280327932481875194459036824854539218305261938461343185216015820359656504324416126933186676992374362252084565745003582253005523626833214794000675069964977359358451989002538821499338024501783592636994470720969182353728657110146386852766585223009289735038760382691330396228606695209704527377576767877107874032729129428168848171698159168480505564127851772868201128888423996331200735208834841296467003132778337978198395655064195912087974658817563898293385627182882047651240931529599703703981101197431502984644188041932188361504821412307340955444697319902266236513924430553786578664738181592552920056211392360428119601409362219172055002239395542139045942930049631725528741150919463409711754553439026232481589991660803955702128925340002745514000763824253904752009891810784961326300511103833300383415921802606679383519364819227103785527955160125018599701298324176711677987473774376062801574572545169322839933659070630472392680558793621159260072236145919707794272758118714331521810041146388374208559854948177584302958919166548376847997223745113290345874037034616842248226529708809408372889853801634122334496164946014900943135937002044235245997738105397803092107365529510165177625974110813388814829206807791308932711434037206453248118236147410705655580166577862249936328383447068188773614814271299883352871387114610745878472284172808816104545772094380107019020834451012270597126853827108806834101553208442372585192176458392218241410728056792385096010323494455500950522777766359923824100929712979412010313861821385253484961872811189756642901887752136505059989432213946329685831095964781991158598529555741861701430067682903745102727776681220251668399607797028761007002907379316368829470820774495127438256780818657129237151206083648131832725433362350590609048084819525564753354400731880585557259320329526476239998549446031214916039808046866894853432799849636825972292078805651906554681434628876406482167787645336499475281414417404024666497594583153099514456300540997774582487386439536339222407338929724549700328776987834558661465430354262115929383257881952480750072229805105061781120374261067374621347028219009228473080295746450705337557488698559827114210463737651976584407097948914935179393446910189144074794236910221154674538340357168095378591521556154669077919781014066101902306007197708189726883197598196275037826092826778357640054402702721078287347656794262357369374594395633484426104406805892240993509605396922680262493590698789485142657710166646663243904404488411979824084097602086242710813601074857030999058589934880113919367267346757193086549069733404614589947819034645109104918142150037629317233380836247220780667778196991579320239229394013471803892804858109150582883176607222118798058845915592622500016637279265960558539834723732061794129708579082996233285075814000075248618556490083187255543280380340929871022580595814392069046592298889122290249854200356487313171779115959088220735793495847785490993299844808267405522079020062283741272297266883164719169788023735243210084279756376992875467893595766671749242044017832438258964238325325084022891527774384596818173894000266910171310074328418892634780093224702774106726972242851345591556873534124817550250264142137182166926825065026550636957054358204556028693576661845689286667687408823687371103358958964064786629459853162673255679613863495696010918657178481501214338218505683387536465529289221376429338633748255415645585376456024797349960193632097299668260728764610526069771817243695387150105346305892961516946880316829188773829118091377292590640728276774514861320791917643993916662419760421403363666155677814628941401707006278282385434700117606887244835580068799649901647710951866667027929713958857178181476242660041515762752382771055496449949417172219473615788190376077674832031815477975667381357914187606886005862147036260966587477675454600749859635907071885665065939482433571631655287295089090706512001893381916272250187071700104872368371200294891049958842541077634282991963345479284420816529118569757160384363863127889703082985323837195940366859410507391591340152935714663092604631850573376152135249601793365529724853119788223250334422988204761864048311502009444433458222398309255938912339529649058539565401991745791648454124790435945638492499028063227336543308855153599467827772253337245097183091879967444506119228096997335857611188694314496153210565960081825854898368334829744657924600745307409442547278235193150429731256878277367295270949355755296061282322237648193963781826492398877498321989819702515582228657272561374748133692708891874150044560785503658015409763281586186174146216438260247791298588508927892637566083495298853875971544317205925844807106766615498441939793700386090463482758829458232963415402470347910890985707220732312578709824963143327109542640960239417047271060787556275611362081483638225937824508392468110633344376102728969248863256891512998775112036112123777338819008876001677416660319500895659871845725711146616827970169351739155580011842210228600707169612296652179983992827559768768504406754095432278989635762359856151165548684021035176464815432762608128811231726898191571656511124422011046266289268643948359367840280722981208381501780341795995285855709932772614608153653990929526572416417848594382629124067930099824047139257188278789731922362991052139944334635947911051937367902955263244494793990302379390184806939762202777513284171718397724775908352635068716382793151128919045056809855460875576481253567801779445550439122609871885122637664868533683487602535785691089227640894140785301389455939197850759747832584395449304172754306925050079643974363894473605136428996874676698344489445230541123274613149226645262603257000649614018129785861942079431231722609765923282827002846470660328127448648001349768356527217509794174208064629701009894168980906633276173980805541355185307390807885885880718324337387705135230130459059976151365262110483066633216794578262170290495045784383493883784089248153774956243676087342942437010031174011343548743401219049197064880687559235557898963952114464863555975796787424572902897395215755006819066675878219531199158599964887684219656577860479486294856698425678740074867908310221624317696646053015564589012826288798773779249227748145083241965571987692914821919788721875730440372850418789913690432443069226610430013381152977756873835206150455186509439646038048752465959477801206799399594781004022151703112107394138420190270723908498436414637127984813503026180690507254149634677308918044955860219799888287047049847035659705182842258948258921736524435740921802671664862802096127977188311030261055626549966485096203525942772824745072038787999860738427327262570940191923852066782440866010274298595474198684784201802106973866722719301426053490311461767759345939973587128907715209185614188915745136955320818857374227190784479560543444933219023060932646409590827676982183810917871651603772061590161213059028825747336932327122010328543326862844407452884507097780200769380896845409810532310370853965099314318134719447526295861462685931423356507385327052579399805663579082511455559910534950826477910002674635058061858587954604425187099182700278481123401605329133358463285583936712208716156383548897212619187999346087003194119201135464584235893581993415646557731772359057556310888685979972027338134550463452419532512302447095070268620741781831132367423540874179624628869453093567397364579574320916586262974802757400010820164460114502679575401831387815516627420754606073007580602163811658149182757788783094958722016488267915857134975093983329079130950138810035084478653001834112045096650770021057645150074488135898018228778799288227918000268603661016644294591286346546002838739531285130223236838575465736166997482700630847806394247234446302045907162032735352420096721004190124575947698806462522858005432483360840776701337826542071891253925505706734431390367348365546131415522453434022703791677497554126539700198275309555471423306836804850672345374483307772190797510143192240617190716208642924692017947886258807636360743394692328842958212878218306900901866462802721639986635412799062514346105716474074645382239819806002499923738186457357680761368092498073686695817269728407079952377944403384763744494368796691634887213012085334236433418668617038299669156714505161053153804356542280352079666056927337062405745471332321615594971999634129120687108616979794319900574551618761652182719073352580456655989280325350466817813829889369584871981030695117996385834351139057842372144676388519025315259632942634188762957394333817592271045405610887877080901524153152197832451060380739367504671607888781072744703547118794326908496909488989243530600149455440087163834007956237360953445689784297492702524298017000741736104472139276262454249866747702949506109963800919423710384709748841140980203381184669060658543528012571175339074388137978601485542824311694682621191154352280195155617418287553954779431159693218481337396444688593354319092799745158713589087855487356134458245599631741929362005138623924291052978399179498538874042954018328760519640512393406045365220019644719518822255843008333287084347124418681057491112075706854959559140033763436121524564013367445003919864108773636841964533545460705875665130617081953544924107118818475516735251982754182394606233449662263505323787172194060053372472134711566896252301406240138900562906835942793560000611916478789928985426568804959720307561753321381961990655763479591105420879744653625125371819568083303645369959782534342952217887062371337660813688307158934320884566735661125763686482374191791743643440238080369406730967148630375447037460210822741562337190501492084628052332760319165573221893566960350637740671090267358765547181441232684789528622915838038260951078410654723558776496054746397437730015656872360012537781164795526107259392010073360429909745484288076410416830154493314748448990436944456292252051628240134753901226017924852608527837361476877194290825698581683351204884943769742002234071588037065790276078469368124973162016288783058519125585749707227901174046665746016120737623256477622178567995070851737987808089464121941339312336156680456332003841355012019096627235605591835824132182195466495823554426594268950438288569198001250549907911418109645162423064198577891029920511799951602208579718855362762331979944359243361842089439533866967265577342510425063675421690855543276005260803703900181065957487832812020540923573467571214941315583074562180161146491486939815288945660872248175917951763485824707891008184308981599317282481049192611477797628192437310385089561438360761839392598425262747260895399681636968966186834765322001386942494991435267907302091164184910494281982503895922355037665022316883798882224289950525806606435667512362547350271089344100682428530243256871513829288842989786101453492217048525506074562217038179352208516657777675712719810636333739438276064580389677967976024023837395483252179689121407147631692008063072256990131597298859219886877019211102357612523568503510374538270493412862342543879915224601906763798554870842468888557442380240727599802889365664593882035375763445607863221291390740929488588632840195993640884925784545677634232221799991592134937467943531976905964966194205347829828103071440446716276787586136252902155630369898971493384148877966631444856978919385041497289262662124824625292355616376957936770383012218790843911647697626262562267776077811723574773421311284458271793058481154757636499751358002918946051809555975656801732167727847944962715672232922319505776559728351441101816519309664952597897990875898736166995540615454808712063975534708424177732303868633776113237738683716209709553260971602702812506201741271746235249692380499506746297576996604395635540721238936236908198558486900368229975248375234656622877542807064403610230381593942546732162597907016567803838713010760334254540354723756070993416884916778351350561218520335523560065751649344874799099522883749998775237902208730909121594708693523372876410249428752559029558651710000133073524115901666559446489244128645425240850810031566124244790020077688115625143346809808172958369009866990789251758015711603434240036238269648349088362095853741838057583891912946518949134368832552275994266633560459189206163195899000703486000766292577343893169586978233542544590855842434480985102495666793615194887018955600063022050171181956004727585572932450999340410482944878350891775027558877855622908564679980697296557878394699706387815103593575649782082675508837902635440265682551775406531286106552963867359945602610102000588306340861744792230957948268681345725636212851701903475504734562278621594982348410694748239798272563048389199688869466339025328659055647692368889346815801838780386851232756478525368156522784742355938090356420641123626399789466410662887287271805207941316127598002795825752598768758308221013328960559280785332543568762377367230060481308124280139016436823495058823815294789761599066017967395526802078969984180809119447317925992874590315838792084229734365860054768374908630832219867480264352049558416912962533935316235927841448902048287447572899849280101237220958534188318052175134872303022071138594651165616613393283370054517004998138558356717748168280630228671252410903746459205401645001732859063907115861270958609799298987958152799575358496394981980249826536129851776498764858713377973353332183560279072487078491482390513439372331838435080734351122170631604840477210957213048644623537145570118378673248303250522580010090599258472365803665993048985845557154556794294380129918264188226188272663417781153758726551379039659907732842127233092558734192524081258053304997721976634862418867677894183464801673933086837358022101508004914916109648027462679249299399133531523513252749753520440411826357442031032303901370973169214190886567590297503494545046634377809357201132128177394955414722339881256894139087426053384143067758607289338072619525289973475535959585523192508053865203171351380241605118184048895632903230459395961527782132665924688734372138748931396085147357816053508207502250400664242287901499788814150524807675654504786117378100693396196057623603095817869114948371113824594528597802028023262508329331527931027908439853774812095740519075401717108132630013663869490644443444577922408183712204690975849642063500002576289910958400714335327772746244591846935785332301383305492625270812379268609636720857023658436175622409288746361449189333350509006080794706956031065129436523925808038835911278282857285337824316985866041287635292007071935595929779395492996670962255223041084830972640933330133169796358408114900605802509808593179424850808471881818435863334099748253312610447817963231866540713046575945850362107458421281089629239442871819817141604400710577215523891308375627545665595220964267660277175843124230531027985795763658170039430505285087529557077619045742603316891731133686330223291055585754051924849977752044462805650303862572286554694596194704608133789445662997311669918508446249942476731521231787626458895620372139920725559669518451647575981046654043192477078565138045670806401430576440319469838696255010256922995971979610691295184658453955791703553211829940069586447548245838144748487706272407277389177839593021227345941753338984090648973472688825478843809068329958406179509793575238863714043957906365264321386001552683492245262532615656916611226939101457850200399069137055674575845320220893705848849791749311167820829844635417097998776774070605254447239401293963680578330181273625040758618475892176048867497390300801153980521061870813500786191953179667206634718043523951750241554135816010130192748683680774491886002664174261567661345923907058809368210898514791187304540183461052364031216035233318453308928046567745998520419543078299705126683779020601904768851345140136824688208366383470129825282289743121818044852092515362428509272611673419794658478734622550784028128661159029088571231031166369534650176315814304276789041731473073244228072029932840600275505354749040486396863187896720552226586217925964854109170209331341952285121905888269763360317072469996045224167926921650843364150083905684849666758838223753578234683803312537802726067383794709506242693911572915330591593852804456221390307007954838202085856362900489781811086873822942695080443840583143098835183161793065249963228122687099792967311610945470660237278579998612822488679825722241077590777414638597901062403921023686040380823168105024692211681353549941149625146743727990320319572440488027015300706358839279145264298493259404625828575963824505988525622881203206836023355387925190004164977311242820815908468964684321219010528091851785472805818259577700759259286641136771645583990486164563565405657094612523181305920951504804824710935064220544802296588635452449229771668107862257922310105298544656969626942379161536198536195234616022112949315997149428996382882728584062695338399185487695121891725225881198288689167107001443431148773171190498139958932684170663241363661039166961433798538404833859034282313693876901040269465274821239339632492488580869469222982978721526640847625132468088287604701263851790996850064905527226646884203272767312647607972875768134498974394217238001059235037829337578413946311752697174932122410415762672318343436659668859250283210703450804195789716482134840162055683541584982841649149420407971790244474702150512527026148253413770060254218079699499071104103480941477636972247919530166773344146005663298528811195487604491090104279025589295992167490709553120754625533140739455761526936297273997003274901035607133314696323591041135625598380171693827534950657681724375223733922850717504154717330161631104124249963294969444090563728735573134286746567492382830854386780363494886098370007324261658825616495613857551057770391303447078363452946659132083822834502722820693810926652643283124846345872210332667322319148605332299834622510295457345717865225431143536858931203158283005204061423168416303428554723159755017569528041974664201900919300012090061753861750776968202985982442006367314819658609593863751296061371023987589530871988188959253243448345010132720823115298533667099387886783631661082682598839186397814254995107530591409409107446019720758160863552701279561617213982699131361011763758161165141621195762984131691540437679067424290141455778260854708677911893412905421058388755925110031697549787820957733508283496165147079602389253495507009174606961618451661145253596677501831568655368083702722231281680839009907726756772310896917649008662100002898136563043340972540423224136286847143561272428355048337639493851244051325005439964766364517592803847704474776113676215767522746336925718424001393812813840666212230781302475899289017278686559129208172138031231870491825078619267418570887695172714452951802020724124247716295451419062825229155737873613036132430332355505211048360067319807061072784443862433154469651848492747034795917710305062593695896079173823176498325347676392693449637152406137377703382459416253693811932400397569603382511772737130137977065992459869517629288107919390732233904927076748341153362612071928688039660658936587226304282389226711030205241344798478942367268595445054620336092156250172148377115825427655501865771024922021980544295694788101019563299389153726018111796536786044607416864999472268068083099572001993549400598318687656298960537208057613525388429465035700872714897280538553120498530518804266552609993279028585771295003588530459424668394852438476281282347473999158580826843077282448097792689748832465829515589860557964885278070370133559594678056044690929548292669679965603951523355949288460642647143831896290610019326448818307017182302179794262704703417704365250753442168836135997612793539438060511228656430328925535264150303895989109817683398976540287816497196962669249857076281409556205636943049322155406709371542224340831646461318619234649027257495846839840384153739973526849159127667973517277625637709910586189239816822487566987065114190498395805480278760939578259862687713213385930561006784167126480006402567219347935912967545736913287145522629318585447995211987207428986249125895026949184267222443464732165725713929380185173167177379180462369771156414749349289754373979002127069315918595835615328572499033979256241336321304532532620214877820286864749878769466674220374866860020637842171466841984564596126940356782870778016364973572738719312270160991332020961626851802533153475388341833317289907908714947669853215759999576877804234559853702886520035294813689457240818168734198566387226453852001883709295204050150597785162691289017100959006960111014589837938767409807136839456510247779358599549491391619437688478490956446578837954579173189281737192001158693978056796441358207119842439400156920695771884849244477869516976623936438059655007697252400517006171123903113526946044627637554937417839401476890233172556187650328944990690178456925701944936475724203691255497470068365591782419636851970647741292621558702476742868100085369462041394062041760165011978226256138346991974303741672154546571477126231327801931088623991254805773149966709344215048106428905361995424912248491990807655930196446360929015220170523563814946645520095376632327011612873467713255696562390692182903981108363790607726100279385042151990474164483783988064331025854391440394451355965269810306398041519911917779976702191425139796323523105487119839731528380362312335736494288663123514643554211768849622549515172422571368219348665245397259855277150419243943530806765653776292234217381905658526594911589062871421182672169713188263458745166065176928274625725993855762485853314894065518859467935474491938676325772527483930504536292139411947748896859528038035958245944793036483927654508658398995831819261406189308888914606731048920165337469885351250538166344801299057876337731487720408349252946121749649051681157532677243536520059187093917920336707027694468136059889343482260113584308549193338930000713932044715976645149629185862035305185792563837588157634063219402112172791841280212984719415513655315575650401800911518281169629996291774497486377189109602104379754395522584466492978372272813140358471264352518198185046259016014718503500526619987071489573022224081715709849796393313996098244856921104729437501214741655632646924136387241722712831160133275879370486976658719388907339580182750922815370023625389502561929613114330580468419769551665560469125832723817252320620615570156317540173703274134552090151058339314495203493654969755562877631321929790768829917614277143294434167783162091802480893662765182528698790071651697737535697617949685308598624225268384413903926979060573149470100603098061699708578926424046391985346107792813178986636507560014865564300947320252275027603027524473863357776176568205969201794478920021895883531027371011530479663751587133672802839886008804658130400874397021790932691005373801266023452334881060185034395635268115075367315293243493483325182657036268095986318234139369418951103117834701915280941408906941939763230196003824362346339333996764764129838796587333386584867389391907796471351211415418781925220044134981268091162506532085912892465935938090713013487693245431413696779348879564436938904130484868477131032018719763295291079087663797164653037523712138072961215206296590447625528141929584069011395286234050183218847447908263593820553757124660625249942845454184129326878703150233478599295771617626594015403840546004152913608354888573877943392736518526003540984003776318404080271995197183593011397245320339035147954134899450990128300474575641651976290498434134213657255324118243790153357426826465953292210904477407809724771041394570140046961493300334973827703590874705306324749004866822578445208165027593226992396532587061534365061543407252270895201719834907966006764088403615342218430602939223104972341861214454535196288175712215469401609810446603627034088195703499448736286772571526752436254625994984699855188403783562088891087284115305676637417183842268671616680882378831651828031998436564499407282364004239532674616245308027722276142942490413599265549200261831459941389657724910977146774420365761172383858498669976375016100777936716537495700020043956202245588943822121345244048886505736862423079179557199090666308854528108309038390227565984429069617492624681370172406891866324857413346285877659938799270332267127977233375988118281125900682145266979320727315318416225816150658632754945437957117054198463307773393882131420203013725394067671223139833394955425191833592309428600723391553478301689935988041910880196155135531445678537574669029836704647134122468935112730534389459956650781419694280026549365332466354316647002817616188201592761186521905830830171868703729567769282373146378256013813466501223613723019299999491794924375731912920565023562542075856521513841125908717654090815457866125299688795169567642832641551197635338212429325611769381681634298820858555840314371923184798091021864449155042156477146738202349908620491410816937455032543319484786146013846878093834534029211144290744273839825006172760661011422516494781674424363442033935631875855131651915622106523957597887982766462042631011340456541681874964351810693433986970224755018864253067009389236332098690916462525760779348512858511899861693781264516798646511530840727904868485625432091500609633567251366874426170775749406319057503095246617314317952218437653965490344001679845444964452211722020508109056239293692826038042527008694634977567569933997766287098783826250328091502493506300076519760098322251135928784199635551145563797126972530891692674874357523667027796933784750207826996270591009101292613379908932029969560754253730924028808110257841598391801573742137118729625911751933894911192103256431454837738498210614863624515123739292871704936791523297128359705772688098626065821299477414875014484005398781865312405595247152399431389615777073035221815661747341762987872125631708555341455036096547460927988976026210257011628886596942479812601542919682336982605342966695930059631397947180647362090135836532370361834771233179846554384613288638757505288348227609365279911880202877497128145465268909547582490493425063708312388197554864967220469355088097684274462519520466399678138177534073516097773219340343526866396243580773856569372703547414508419328796591414105726091710115768280186597909918392737342244243106869848748432931203532959392016182135996015308607829200354674052078489681331648880311480744230521488746810090454928619239602102458203331799890564595944004190566932156849064583863044388575560863299847414980062409886180827007872982301103451556342246173214185281772546139153748242820897259423334831319863527221952806301049650585743441891170250745693589807967697614596940700990499413649513250234549355726522581456606538414353399570608892284473317789566649256810492320185743820598740227598039746097970158571319580906692360962838820016984290772348046550003927135292040282083608397589094516114899695356506633508477116247855971268643722427892366813685569548074134370164683919523050316710527073123353077162435300708462685384150988127662962330849078975295886038073614812694502315583170955874065414932330880210877942046679455867427491086993802906784595488279572243728154058567263221963462138585736864245242258640599357108055531817329729500794514923343354992380136443158174967958470810258348211111842703898702149769095284494317241728173515651951444988364385817602020905280186007706386981780279336581150481805900042247203160777738812438002978111119030614016246081134580309069715425410020855748547871198964744893532941408355352506121582132728083105769081225212503394125319371114099568112311001806849428447403418098388406175467236187674875657583145861279029369103158239947349818988657353620997982188029511907583368775071178772888348032141525169407257520520501501533854401577662951147351581219789505969815592527614318789952212851222597538864330174316308816995787855338785902033965288396844320215613545799049933395085770810476383758345677163231422441728588519503232118069424865384213436615454068638048055379063023643028548822565129899530709927733834711574721707327251423398169298997130540956162636646208423106705301754883852849089291078475403602243790827039426020712452638808311277988793802328110080795919753250779657050822822200653995138409322355929764581136881718307962412099261805063738846396980360341961608797846407892186972080288995936484122538119009544800029298903099012518198212052195091578036141267040401636938755174462904731738918344360784935761251130165614838541347125971646537696927756557544731225840483314476342246444602268309714847068211446504547497495345601469318793900298688788305711203860328009076854273406187642794521119317555654976322800017073563950218638326641193129635029591387970772544702872295119103576047868995416089856369089962745626487587255541850586712216965560691431434798181413093954595970770862717986817830994713380536257382338861814090088850111811268804869260267889529934909371815673047354322748419730372865733783056152349670844237377330964420946201135051009531530359346756681083400335765617055173872397928221650463799432671127709347495242250690474292753825015650767571289117119681720375226326226638287186724734060800018758826788880040356350038665689795148000214459806120721458102256753637923821442426820886642915636154644660966746020867480016017753052553757160653175771510032879155543952663149776537781051355120065462990054932204392428462483069932372071625101993032154076743669441841338016796215316944266566679014010978631175358465101281678719588884661789033822765926674269224606457832294176069685024290946150059826173507361564807006061424708984627707495328393496195440382820206295619319831054936546621052361432016655971457628298576165549773484971882483089877618733039419952483617131150052352611172982194888329545314447616201721020685550484891853373692554294891457945990020462424808495730371344407935015285350156901047254769406650920477284933851863254118412730632593274989917835709551107058040152734879610130228296234889169494828893088098310992000862707643150031528830819893512927304024556357863125270188304685975311962691063868376303104052546781565662582681643108203353230193413424718612824869524994023746494955712445541884223884373748405295232860473363531098510658043805868555995586748409049692522263749346112529261643005891925014374627808816929607550016100624689493702001682465303485036151217183482359161725387602811284591558312340918908272996289532680751370813258364721067082007703289394972460861355964311650652350738359838922623235779282381546852865417369977979626089843793542847498465584209236203951692865043653792537600579623848287952867109362513715304695884121548819295135764413082529507162882218736004865146745899358181039901299657884778841314707387469546677895137183292701922638060426189459484870231388450087089879408997528994413563401150963089492628934014612626575804317946265479963143242994438189388921801535881927737453483692007030206003538535982970523192180684173520480145013583182757771576487262595897642247717244702322258143356245719426532637343611660273569975714839041313465480096236226115438627404053052920740139817907721797658322728299929421977771766889793678988783476617740594022003648751550972273126099084131540081982718172314717277873675635929883888159125437619149592829192962755014133783168725808971376965749020320227728032406494370294433615099077184710435582436346135287672149919972339792675963299940192277009430995372573320411967946194531419692127753636597863382446627591641323675144051985741700943794602388849755298663260544642186884353956481670060551352237732042270155911183104277105968336709183690394895122032357681813098092608710653960228311008591179377682443015888900975699654009247841686720439761025381031726996930017165331088783716960141855917432702663616174068605048589171387484529088018638331159093125954063180734556084981078470864521365802631305593532494732945641013554820474667503295538257918567821386472353336653439346005185486604162985705807305056302284926033596468857842070922186070039112156385046138717760361283415382756602676774379471151553463956141602744324951685138188091436079253607315913608334447433027896165302613008177111811239566850595715451275670394176694291650813414184282860059112608806663242973169330982086807203735070105843210926869480297704005216759278652268496189081306409370995580067531503771831347951867891345334680420465462151002348892143424943776405500699722156388035834401358185073379202779008582798714776400632868060347149812626017679484511160886558091304581955481931056199532230878800586871465694455544074617331439654784637733932721401785381649951645266921041146996293979411522020933112000841716452242507301184761110078844548068173396449947589425598592903861058426689465511457119562758546866837495946523315368915170971319161866426353745821841177756672919488091406080261225634220063708206473446586860903200357342215294139597282361789183440741396856639649948354964323497224190848161186930233744593636584228685410497277237717261561771609561328327093112833980667840882353163867985078851531027664451555306451217840475708466195915138600682258264940487639917887520599128220237449423095087413184137909634617312848793403822018379890043094728298247265572855686330523421140170839195190164810923215191351681823536841219291745966577085001571639897822312248488203265586686717428685227659397255772497697862454476806991499773690691145660249410450804895676715119276523311738729721708760236644720447639567342909658427465587333110472599798101029919049213290232905636057116734387532293903794200965961275745580431430758602923847336394547097020083260691696399477888645121471084093120412548540738775741946185046860418132922505070816125996032887186247593441074373160848572951217640340079704270507044871768584933670531603374058822689962108153507670808134682071004900079785358780640975968736878367427092485945090283859384508276573745898905274030969338610984939920204873395420426747079025399105747105412486484724799594836125567066424177308140827726183853472469136089002332475971455034551324832813294547043866341883034001140587925174968652047366211959333834536356210196109828376600497819814432390889394284790517590845644209789082263934071499022962936422886476942349696196246161756669479845716296059924706226449024593425255176874299840227825629684948756347432597594848424188688905362498427541793011853375157385047162815152200120280236909683577138140350236318580355862592188459034975216307802814377775679876017775527286427712591409289759315933666512922701634402388115759141947130034338499070911864616730227195018972332905290715573447949565540087443989516169358385615628769585221486941806220656261948136499091259947218792039753798216660972497387065237731966982057701763228803517411444313982671597242679674296378305956016789197809823824628052579977710055065893495423084593960298501798080766534605518310416403964883996966938308627481217770418236258453452749303034612509628679117050698054447126065443172133469135139677965060724241306401934617645194048910025527842365616365894000901944349515789568213193454596686399463620437770902070304747882525948522908982044191933001307798799407424264412520543081627990625910694075647486605487279778981614033330754045303493809561685292276820199060028268074656986062612862641292359855522724652681342240949574341487571619270579146057064809173719607329590227737449777164518705880897398287930382474845433116599073403553467199094188494414376884868795321406576883117609416206525661126687001663927906358558115892467862253432026452666216050741950084135510856891937297999550892522570237672121563337111917211634727651679741206133872679523059172619765236798694640523360098967528282408612062103577380181598683032425817145912978250964847577615198948427061409160868145674716633004830700978720844973500869748554645623251695377933653988192321107250150509844204919408855410949096308870426672043279470039033338218340977772399342454367041156115463888582521689682857562789324368000826521685761766924112111508919136258217495068647319879930433071880118788001362634408823374239494095384259272735791024759411730911219191561442776477617261691701089364440579140474819491432228881423840970976036997580618380232516171751438978837425080737334333241883200581762330515744846948020980924262287635351942982807351812399043118094880733850154251598643565945657737507993957930839678882083729903819298329410912520251033872452813179246779094113149881990419066914998781734458404632110302118560943740797165445904453981148695353694824494871535073029076318386404491347175682589377297367105169463269955727494464803689447040986030890274315520028122218089823482471706079619673396673263443345880299707715288851246436628795883829163760369857889648960580411774521322339782623407886282212541380898021052826537147696795893702344096460435789815287231888542872265732139636816311906466398654115876516533018365354270330224019602325516309247451854139756378062318533020339149646940330374305375125280116577103179113339093530793956663343361292163633943794746650142337667175596111223164056897884131750198058050451129558630870126807454122951003969208560742893715962862488975139104365365202421351733207449785590305143153212609609175693319525980876637552189394839238295576989370474682100477690087331525076673661822935027402001958041918418084822205709370474872997173092925877597021107849880334811567162392191308885563294792788384564470001095172550434247394746611297827356896023932784653891798613527037967875913482623630753391852518076528515949453324497562032050661778594555835110464582992859044087706495275364785277600048729669757372961394851729035512655864353651086811085705889055779295844531337248028234669586761343421932244980611798171351635506719189467422204225342042692162479089808015901103604666390355148403932399855349492418108210341656636707679165590208765665122633768486487264918215573580287233021450854663795468235038677502282888405027819139336217630830527430021190176823143021957809607062349105846144225291540115990781436335014739058488114843676640087975790437476086005320313736682726589557128535272906571792390952306234123881492614060774294860135602866190273535646463392611783760912622820925246499868139201454055221318148292614260322198838877014046619673496047828530672324298219034492991995640830578888366767777038104971400194716289776446659241694018494472653283711350516920628711234876547890144772129744765194657269562268397479155671555649764070012933502548453052120599310356868630140447798471240283269345234559576374617636342306965211279724223556992460767907832791582971577908452298705178219228208629221148421234248589873354560746862603450773573710153725990445049738581459498231718806454132396236341826808672152024943222800464007942856250382720640334917378190501976592226124503977910322683172432421641226585482556909547522389238858765858953758177280275057903960238955605918639409700885587668359554866758056557106842978792458418399547653999772195149876491048012158625042437082229759747298438919816681093710531499485582471546219857827766428532162405604474995816921514045748618591308627725115600174051163299971092551054938699984395349008056511501049452519737958355474252489531215436613212525180905257274609847620559123320094161515888628895710658356178963897844424944309372171874109412118553344219650435567735016591090644402274931510138074470393520168538345185953198716233685347325100870086843530772526112663196677496062287571554780168122974435885965584600632798224096875997844477966497877060098155406224213560475946319568693213879874317693146765090696590176100023846963032109966216139098882917117029815600239970137024235245132172204083147791972225077024388709900076623277368240487826995234501683079030616079999925282304935136531377402854620861778193447720195976620108684387874621332255817040123738394348749308393533938343121365920199896970888135769555881968308796206841044782107782417801132860237146986122591590722563772993177065801763630477236409847141978556112395797807020026395885117942739176451918656089861266106330973136610643856939813767247065661991987051709497172518662079516911812728259353829237341220537114820851415570736596429122950701624424720535882881379225642479538946619238536928919631336947767074745587258634208136018419644122716798114599597940028847357839349810270174188022059940073598807770773939177809431877457309246482793548286111625909976587100085263770208367452519832214971320057968342243270924561447699642965313947098315573995639703765337989496545232834760730293902386128751878464862080414433158085373391257833163199729150646010829404329838711194443409824820242347751381947364738850304800327387966480265093892454719589733034666613952450212413277845201937268615399527839014290573005668024582070098423635658103543989397043121776549038671705595743342008045877696706777066350002989335792472064249691434612385836843870789978832327137137081171163832480943378121279378982695140457463862154140879394368455256080479746348632224392229372123802456944382863825011740749036120456116449798201030684980899639551493386099651816016086406272745704491319139422738733811787035259377938028861842759346054388322319844894582904810006476211974615423041682085040773675444903415440528758786373638357141864561875245902807271505030899007575419337733772194453147381869443228725785256991541839928128314943748670197454768541532978140482146917921476593686340562408915514952571889936344460483617832575851421033227430655158796785815375316086096583797858468532032736290584543712102032818746273665118778928863287673391567329616391288571609624259305729848159368788257194432101468834242845583627192850940785439707075839929243018342007570801710198143949979971820294946083847676067166435796863974896701528921109952869806390873655497516164531591512203104876495446199750910254122327798602873802623894741082738239109279043162505704117055605185240574862281240552341119859698870096358691777818809326616988621477456253992928524017818719126262485391619070879043020028654726784145098655532296083548054499629586112346809602476687211481904640725641186435543974785727227109484650574225328319981692827612070944622416279770980537375884190513928405222485360341154698241041921170845702904174633790675591024063088635462971352784006533584003890958521462819731971721819128807969719900650134743705429741794561310222412983249386969427368813071259220247943298926852103006974508098865794538509621417643468324215997794079097067279520283293601826095802038492226352178944257061143005219113113952629009401990722826309987630229884223561558096253475735240569771280865233308583211967517091457531664731688357056157558780664188354447394191102244515008604987537585813456112197097195836493892758972682191868924677053157274735422151924856749609144648522598887353771243978926330494065245129958194522176565094770436882912533862719597353963213090821753734409820754999715492703006927382179151883424158193431989120871358630431835486764450006768914678108585669361880991912998904512921580747730581998536405168237181459148217476107378192980589426911789435567551633915932124813175370919808815514196890749244215043785740191554609662120164622345822747675033149225264046427372569478877888355617601486013322784917983616657717829245397148523320155493679351838806014276082813756983476068114265683711829055658318165425452399553309057073863435641241074419954044311812852958461059748413133337834901963617325443945405250035876888413789661303359975846605374793432363143557464322861254729081711307082080505948178180091379822139599291370466183553400463716678414886326350148439221211067571380767120184251844426956684290984401009407427976713831893956277055615202288323827383238769314964508052368183690937671189626662490899800487645562290662006954483629230553563774095043334768134322787053104163686919383340357160013580305826270270693513048600402400664524127025795370889144627625845784163186211909650119687334439657746664079665851344414513278296827941166355123374677298022510275006006674596599120867104219838547896462451045893507191715616866077616244020749582627042650641102318312259797109499225674130052724504868725924856569255702030173485529426881899674739815691442486586061158882788553310662338328224664849681299114863906083855390583138170007124900408284850552973633452925658026757949408170375089397887265136850216809329951393128297479985797921342077218439732731000845699117030662302248413341355573219513733315530830525357415692835731501393485930183366325191751591650981226812905320638499426906511273790995801315809546925946065008490867457060282702662256318272308477667196749686066758922666699273890266720269371488764527834087117733472563879385400874805266988149616298621941158479847196680117357337626325564752035425372697795892154313982829957375568866504614258801361982825592877896812912536709928955348458751139161156081188096292199751235040724406897570837321244939002481554285298658466441785021073864835759209280881107052246644569628671962891578717789913265412619797944816424120687026683136402801860956389839063746734806553030583638468692852050126017251030489955628954214277001164871870852197519361658633948760518590886980925156018603154892036439551483500436163464214629936986739803371887552919398281910451110377359111810328880131821960715910117408182110729591332875848380604979830222821753954566386961228324128116793572029953038541965045520600505385493340266042725009714808345266673851993569697826056610081662631013725743821929089986300368523886003674955664404319311083888326003399941583978541476953924457014907622799152849097664990135321988698864483790816531939337414343852559547961240006765820925081362598878229097239318222252165989412033285005790781420212194726901263294776804766017250341181064015389700224272300979296074754582036932418710841894308815656184695221982413790999765951355052589965464206032960347594318370593010975265375608582304622772185022165473012126707498545699576792623396517338909030850427023603054098764300771920544522511773695338752955525543694577147661750696410965378890882023059113092811854478217553622973796669980203519198994483394326767597685495540619635942630293728805076346474259373926270120952247557088545274350837412495418991794047346502966159911893388668830494043171117356383136063379016572356549865339526325148833660907520683536623987322123644826883634500156160423977387001605768954796801708400360922097521618004621966882943002578438067859950436071950301830058638376942322682841828674732393627401377395307925984690462606233997050175608143781906512133487213843368315348060910890833741764862241453066056922405886755130647260676547715658444093066221290254975793663033419428057404010089386478207673860933749889030967775753622216349740827571672902962378193564133566938664804334616103573380604078407145593514117327615094311875577532237896224167089335562389097681407903926897849830934401548310902757875580786528489487226714194546237808055194697653581397761114182527451806184381225732262588044629845189437898875260239088839770729208220771855598036208725653464189898594943575634064579785374980323930051369064468708156162343327190602222080564430200036372325781738979232670646029605167459108420678111692588727184291282265977062728012386213495310249937541179434203444966520834512266647015037512185306416419387448555068453285710590116636195313593100436532479063646574656249148377107780745168758644060455118597992506478449922690173394772755831399440648052788267052564898359976670734470564627578355688760295801516301295138393860879971980997827274440481983285326586443857963808089181323043262324849881366045108733860245891190191898918576902818806644816865971296888424670914314387447212707886121341126323109876236422803492759646589466092365542317328461570605951737972303732810545174501449370867549361960685722623658465053794336330930417432700556098502303459446737012129980081439260760705886028708219176998097342892208057250951549265088843017756298867757460700392933045797964751811255133809084133612190682515004526993886491809785105549310335031429534154059876909125960414411191616772260134084378341059637573843990326702409975415770378434479510072022953948356545732750120052431083939654868439555343123166777399333665325800569309275537361854001706715787956160586278346098549665303097090178996338544086369689641844861156608983075762603766244146416316619461606998229708166560212882462778328884308054677702273892614790738376187556047834124086015983128697067120483271297149650673940249104831563169308171835008008102855320557865215667618321875765490555640942741166114950108542716379836582763739931031682815254160201291867059290630340736028445418413279017209728085631637295567460504506854056031649020812286728447500317506719903507004262440272665173779083159383888758332792586351350894275915433599738825332645123444720498540069011160527802602878743998431534681658116911700304754452608730628347955746704526216545214869526416679753743837336499752924892951415259144333799872231659068334992783229955491677935096286874829386573099328867147727761429835158708571204763469112021185170682054440655074890986446318602495699168405083186830259814606329958736697509030688757700294113574075822818636257654807209584725727172829973108445346045268866117453489189746040273530932247220620527241585828017798734080762842831879648065198527684440476656339554282796123948904331617859062516250530820929464968557448958705914968992568007223692912509974239965226803966103982360054115680958787173402514972144959962122505156532103778963656750935398437655676319869840773655091835235348995674045747483279808553887128496834443076780896382014854275497472718177152689764531627565046724827526077121517468820916950976743648703721451704333811513827325125741483124814714357049515647926013267807948548050952500135098148703236571170288928170320689598856655974458422708188712224619390395141767768467537895183303670274650712072354644221188195510678775681374060314454830486628614124364526349316653005113703339567157390041856941386455137064027188879976083047227935209259477572979832230174331885818063452357536148679582348452243585769839132758593583337513992810559702383109782464031561881918531354326115389796582072569000004035383368636521506113699807225395170735513851669303593864609407907392652477987980683709972528769610970940425629712043540994298872747012765997219759071013318631501104896867365935241075375759268289940713827916756900408443590263575761247450195298615712693853785687992696164199746440696982254380940269573815578534395468004469298555075216942382877850298667961164664569084695319923952512509723656180372062304553327654998248099115759221062235041354453144663558596869277077965595469546245764157994614798255383445319131678994957553170314996393323317048541990907462346838133909265608098965081617566124241443961029893497358574545005512450937891786264588478136438967468070015350946748737872243152438580118578252924526326530686530256846170731435630520027764787855103978440571712304156839058337986810393623881215888549713512919039746683234917624018616299441622879233352936612625401547050798137744236082631612490590303221919427131175242791923586065024272864348553323974107507952320797931605111186262753571862396400506634211569247991296013869662478316858326629022338568453712877054445846215925930803205354866462456769857386420831421014395095872768894635512816593094252933194951585273887789107836815645324514932451379818876635418240042043148425554563744254089740706597334106859869014868157380066201650214500126376530354825814390518272576135289088802076340661183530933950872438632898821228494233882428380777780445104446979813324977703227978969193759074319829107911660727016725561896796636377208433342307302861679928112252419836518816126752689074234197712406975772453660793239185804127059378964523548813576528816738133039946498733008728301921078675157387532898436987389274883034287340975050649878312632052140701766611080256527000180731436658313187757216610723907339553770230671004484741421219006921501150781905373944392355649299714712841594483887599633558958569134151189645302378427582704280588854324256763293971117000777862673806042893797502249795783403801607632341387262728457475465046251676545757873734539054101243633324478216405486354356049965648314231685298197934749207796623829931690658563785810030001637289607088450894538827880640852442680550190730934044191262921832412007300207626743772150746643538326231866897156902480116799499849209379978225471149501204537255840974515658005909857075270594449454869576731500618973142639851248859968235416881711761011573150080526652865392847180704033180149924215948234790923658307291664571403238715479626147900924243497408636359914109069413120078675545223857332677705812179115240354618110357543007580680596087108695254869371175886294914534903641676132610365783183835077784169800459155398103024347608135327937793694233133083292367135784802065761397519246358846543974482109510117356474470859055945350918228013724374646024570039616780389254105527455561986622477778566058316808398684808694295185040463468924174543678567713358378062498217900564532441202741789919981070955568890940755934105011843316990826549800243705173699426770557729468640819737151543763099709657126489724448741213291242776831117381013402671938419725481372814452141712118215920474612771311640525779630872851252849209834804859789731734412270864006507324673085134234333758961400120491006839987902296912210365726055858677727136972007255328827512930818424204660968862594598862280525315040257304440869924664497932121205521429941022955853056723292510057265858948353574450122479620546225219725921479888731022155099112670412388818988404022315330983063751476423384327577354963656837796690083248561333307217279682281341830343860172142145156309165466506187215043353717836768746452408146411964427161301190229010320278500608090477743016790004352339482329791688559682692233362183463592143032931969398666695957483412506049577947222285149596859515715273270399817559850307481441397798125089155500051262598251028424223071980677719046556100835525409369691646956629593325393834477390565192060424785428183754388653040346198097097795954879456038409529885453506693329915872992197264672035459483925485873238037921987256695830964986503583674271949809276577791977112223314293293426057270258690079037085821440999872497681760077664296454932499927201896247523051347164809502452019286028540660005428766379371455734621625736822627601644083893234814482937343748505868854452096908040620102376935900973588189794148991696166431920329922827231885718526644457100352936771307855182886941726621205210752741970436221706722931623698287662227853644961636813640231744147509955398949740620942546645449349173087165492460461545258897667522003650858926301941621463332273740934404389895429549971064637873591209987896806636195990951138963725298022026534981941476581876268200063407615887035041211218643160872217562527393220351539823112719956957773366043040368834134842540231152108495734627558153645607785181009047336758778600911746553359391890464630980738265783575484727126698584160044005552320992464150534510250736701248140913283183566544038562886072255419114844865015613541456470857087663624867715259986463408124021777351160774372828186819767508251843231824192779628676645737247237992405456727716752769844062822106818455211798368114339450406567401471245521566373729812120210551861506118353771016991266406429096921376383795301512390316232841069949720528949682213766733480326414096186532560740010235167994097677556831298051807775126381628167745823808359746838450205271568916782701787186156108897458108241713948540836270439140689070039333553841934486607497931649006960613892828829582290002292659610371230556334050655582985744856682612503968313340169731477756925121200343771701763361957287036322103194978198441583490109783398910399474291970281928504888450275968960410502107321284477012003010793378889348763310595491669448328579942020576188725632316823511875046535074922527821096636407698558865082040782047966630497244098329450342557362575709908119053195206917579112167732543927754571001701429321833641338761478214501373829927195295550110309467867530058369611392574201242627914913799696437011427848956165029311405556995779741328809221601068930712550821007764454297062563886603095437690638792837429771785085959911777070509382006036049470871562556109919115418662046470686138794469577302591354491272121742453136009486900563860583877307251343744776978527226777220273003569199508401653419765913159217925182728674618317639020028525044925580595750435035682269101711963552516980171424231598265509793180066256241848586682243091281515813330597905013429830750794987557351986139945238471240810504038844487786998292993142818723450944499230983389578973154614024199434426564264424719319294038675496344093715870898425352602288427220332330680149326617473744822801806009192280288790867467251275805934464066625073042555766416756700468861268494953017068226778302766100207733052194807865505542292082244958220975342053533939974536106023957797446113426513236911890994067616746374233220025791370796374084799310177126646847354278097917489666428247383138421163614125561395292548968167797178603740070531590933576235955944026829716073726575700089181656194886296319032900520726110480778151858690382072540193934304347086270387183390459844136083138379593909159737336855841190510726598163110332424304504443752230605642825075748114505751277052085588541074719091160130235496557394471969166519120063293138045735329500983477219678319801081735555583672966047829547701108662643754218580503628219380849275251495966173358180575718010846948976691066832783640736480381400870658438865632691485174241650732204580153987450049267932485150535319663988326156414154021138944906892234488784038761430905217850184701022124818060100301085633180098719760808297293377056341553715611580287400236501619927914043398561291612474551613358794832117753100667360815942703626023731920939003823962272018868060968019190264172255370915108501345988722584786295237948077541153773688094893524008653155699848509356914102314595468257888540203457116882373055111958602999885529395226527806175016902484468445133082451826884295319749758054390394026089869330990446903085344569212633218415828132605633465850947177553254244166340539046230954378599253605300600147965586488894723892363615493093075855641652479239484077644739498266660352795472277293417745401825316107909263714614025165395560718563992616493827735471215576924029989833431582488368452770619690891036515750825753821663775731470164083774405503068625269522456999025952830063786119679346223203233229181546569691880925212734403096032019287559840446985316836134949194793199821086449307707114745033052704528944078217050006209163485696630417740324185344983620376265037802433285310728487961025065680361025464186076718175996661997434175800409255189067019360508027479178026106516828186485542181281242244066329215516471499433714062360006537523789727817748032897230731389482765928719187794856801975162239838720773655965316346129452046552769737300866274554401963719854932521455806649114233946958694023591793054176892443447786643788635354517575292420133426030249798323870072819544848713916331756786202138239008525362484665473601060027479904867454536265049178962301520032527797881195711564844887745927406318578740458770430912307264120124331628815604589955033627628132037273301969459045005888569546741271341089631015256503467111826107946391288125185073076866190859428947904852747909764741824161304846919627023904991488080827419569268969874548068314316917829415234113483907372008500865314781075343321549278716830099470259616865274413642923719331103443626533463753402127135427835361332614492091973293567741707960792737957832271902643551664768851816629395315736661299553715162341034898605233683975046940275438030417849427354278963497928909875038527076472559519300868011743214770459891394881478541319245944805511192384601247301160770725528925508856679180524583891135612572372524468348371698468095342761713846795900009339019042851301599629001375703333356015892516976891924185343249166882179803430686056312076265280695963349814392195898829396801490717767991695578469870578699547501470604232967155003539933685385221658533759389103367887203526399157720007084492328258808319335664284419567683697689657405717022898669038984384748415031000800311538024241878595265265054277958930653688359027499155349037502140875927789640051627860792720898497697581334136952078098054202763697413444174132122751623625279245855150873401759572936137739046200160039344774352558570209707228955886321891499244932093161365281330587939535715544160633282521255422235534473244746157440492191050276905257505411319389911286630521786186221624889001411677057033036292103756486689582205774574629284676495759190634062032715950686454395902087260829678574374566750798124326026049014316291768880625066757028942870073768204642554461832372834133802070312367005930290776664959667972963799796588367692994285872163117023291539896391171351167874977109564099644281528074409812771870475798807089409143095869046276033628010799524133982054267290810601579883384500296177222818934477098613462202939088301265334001489467047782098098798550781852312186613280554181642167546549640639686370505219248109164113210950144323536120808336101873019886517836703707548421816051329568927553627579405440699535686775252765138086606253334642954464035789820916106694630893691034307610670770625014344906687459896144290543098388846070103700054274269857757240653829392299825585431520612229770725868256251112460222016792264250753518442022863040206923415742676538276166783874497375269550401079617547904755465119811022348072815511455789241562149557039689441660087345931121966344054016783660603138270204121823700876819678701782233085630265663635496626574681919803462388908383830779875460160347356715960763415053457587470187365982324371666214733366107304060471891471743737128923708167431505610200538247787358965222423531041709889660964627682616960419106074768056725497542296004826860206108998314511430067335153729172557253617979940737606919424182164340464441891665939649050362547955931721338021083039613791853582321846493653107641918532963665512547483627968813519246986783718540584064198888490594210606160021617350929145142024921146807236212646997316564606577045730903304687494827142999254307702447586440215442846299825771236659117699014448806696357402311433530855764999645504643852737523420359104735130803705058468674179928968093030561369648316451743156268639965400697317914036096651886409654568358311032650285850113524684081295633678828162225587362425631154401045575904224396585331513064939029101261976102431355038564963846209253106540525672048735198093440401440277711986802703151870840954003635382951529754656472574456632425912632385726607130611970852599988267088525513820025470396747591404224189915155888370707320393207208872192380724571789105554850040226301066023462263501257050712516311643580416928965558764572700606612480740597417129484961562753678819843538352681485718713253873794289767672413226044481120628761908739839841279094360773648727995148813198830039400231632273241082707984469896866479674864510956052275178733700555306831087751089895106981477036442530585419302516495918275750729948011479547554015602271222544994510063788694683006100493855677774401058045671501811064491754120883311065243206686851432131620595543855851811190060821277413228598806600979310743004783776671870788846208402897729077530262351083899713156474882933759274581496281261696039104931894346173682277797958742029937141091110819916239736273163692348847589669836210969679750887594761705752827878564928820608274955879800034680129469772708040217247002359035608467560793107030333740928988309809530674302965844003399028264109975959174061838102036088236962996113318142687144036179586404250988236287684871449777910661734101499544432462651527200563827952668465263224983305128786879792536534813999677801174651927130267460274604274439387990188484992379740541813577631129817399537797000679744066500833931496591514738072732093029151934383571919310430832156624285510129417567105510129228621313158536393950035526707270661613397218100610529441532959034491730330501343575879498720764818401102884222123275553562198046770228260750262852778714474751681954970565258192946579681661029511716295563296885093382742221393043846095968393169628076836547434413712844886669112485424419987818265696060997384217200117744374540690157666550245555846454500824053446022294938417851099833319796781288303610503012187644422373387310655160909574860575044031670078028030384533573117957127924793198031841796857765500945923291542091942281091564697746069233466322075234898773470782627313748186701807749325277909330317838801456467819447432078395947899678061969868630449857669488668842257897875828007894502839480959325201010594898532591879777426400334019306237791470862647234250893333788262991078207959606242719009671231503374075968339258718748658691135727012057861784607170147893129886227814323356567999628174279148608503959091560478740330226268091573096389387921291379924503213931537256734428191319311265917110626563622748848134276419988900468167976391487865812539830821987913721427258371509152144403206377500288896606270021905759346359494809753937670324218530123167993954959503436687375578133944947978177658090010187330298364892563986474308730724918342516889646286428418286155495711938681445507247393812200464778426189920714857339765197347524309453035360476461148464916296748065464149015871935771944944775869630320819968084481707722604417441885961377733567222009588974121424018537975308819823364592822791838085075020502687473232792469115785168601127944844320569300075933171401785013732049868686062914319893306912746986275904742977498109422138169581670341948777943400686332310229238565625638549273005039168307528876469531730995721141028353611280737422714954510165521665072834078542706700342655012833288207412654936575480009209618615142544280764404980029281587444448740958949901705597886891909839617820703290756913592397749323961756005551206446788959604830801071438714302662349775771805859260070546512473072782464244009933986890846460022029562392631097161119580494846235490310473627411153535623056818088245117069291868846100719004751278346512461140220761354809935816417822452549772640579760382608070224938119061415051235423130693074470298276654475451602942914284283757566891960197387740432713663648752844825820041734833654354803205204773156831199182135314800643809583471411749589562828223297411933138564552311957241432722650679580056610876503369614350622812235730865244371188761564554588780826567459812723375951472296151020526489807413686034330455597502991213616676790717392745920276027111837121765636781323215055450827000187837807100202104065123932587852911354077138277650656143530614394095155026441253088964234593945509750949076376104067757548802497971220947640063645317919089555319470546774327250777231729244677027749333495556308659717194915084948607217368241046200125296197014896759014711444630849610181218092853738452568139476576510642295029954368230869770626648969175972973451155529937822365474692108469882917960472200936026634784098209220694326991500303166056859802734420202010236044354230070006753817698077035362511987444206725373626632705837740060716434827082085887760216297453716773224102751886112467146963564805993998009881206191529857447909371005723307520710647924402980330382414073013610132855252950298764360695543876786880355199231264053156099098898276683459324946101456355446636735346558020644138443309898944470342480347478460455204153397775063960587299761295122065711021896802955619521840707337174466758373388996765374469810000662072032287202404694142965264458656861333906918158446303697483567234805218134986820912783959886764178914093289551819657368389218497012168521930845941297775559781740212227992934546983684494536820408643190093668652974719693614806433921987823498946574651982121071637026471533963113615565557285612526759149547061491610293201887195218233296708687999344597350277374144711938579225651120742371401979822539358492791056609859543568865349877166722500693942479468164168511940032623646400328285823419036323795853159306005939859819118240020289349370299166583891417781430063569008780586964829499301389107099696570865113772860315202876179495636564060461064538017364201105731609104051583470825956124390646681392656956961295149889028171153437914842271991839867519228857800762193702673169040078218448142991365905861006439325723577356830765751168310212108216450606232317623086116614049076856306178042059341377152363781637948921053069880729979781048946463066664119652918385776157474956227955071836608708048966456631659567060645839652707164300975952943575931571795040144911011584650734128132757342039127658261089043592218403670784192179651532004275912053189921287169181635484215453345442226182167818575922573962796777270445766849942773026366201738819775466188193712240233056392268741761564999368321476959266995375621755905586143872993547852655634517141283223100337383671395457360699074547580867359503957493304010813834476829042981192197868900544034705191201300693362439545245178311044782939607134518172835092157035588644528441700730616040537499835421041241638578382609255484990007923068064134756865816371548919176139952636266203231850513908367749224428781988955503897460276151865228150680665845262978105684326062346031560728056681559312954025245354508040218688959772111981272504542226685722955708676512238571633588940692531090813338979361865309427425676790720684124766472929850279135944342365181828740271942138643810729488542469607350964709415491068740501222958654319083864841137369481539928483201610144660360063827610449963843584188895025171018668048886736372648973024593292682527056986885183390888175923166770190603658088230674001784302728695407467556677554031157285315893222168473360159329574333612175781982063762238851188938361072669965370006906840802694326049005783372011852425920327700963253491450587278661638867023186688660792982301855929174266880146656992129366611195401049561963260384702614604607055923984717988852435493133011988208573819462664590085195146105054990833772321307812133320396817145962680282872705076887273279526767763909903218031919997261348951282660133817582701997340091992624241919064970048551924334088441924640706669547443668632816941883889899498953835452707010538168790273041858731131330654701408914953775123103618647673557087438551097176013362119549601427221242393082813882164696581553092997366485054427896675079956000057797465450385649868904075229530987892164634673298771814496950189687705792637549138712201928186433315575388697864310532375508330919432219971315130088569469021877662323799976199183955024679404531573822835557047451501900489108680935191793110588271734222585329676133373577876826555877744202614498192365391358232962798941241278716752381317152038735139462744114023347620955556840628639550189028511131317627450672179623082987009958485140897001385226045681164969216475050869424893064122129737095004253446516192606555400696674134930546935492272125071063877655015215126799209236318479338812542073010749312598442406641334738337874813592097968028340909647448461837725158237355310015334771750462986654074240877685357496044126717507195561061520899883517472504683527718156484365170199600433994603911353996234319340455986334484888127077721857315529557168346431926286990682372662067060989975886463640885413030771987550714197202366877839917552495156885754124758210047824631774742035960185708041746211667124520269915962372284723120000475066429597868918939109120804196959873987089738867646896391587817098786671525767262974777843514184306680956564004001829778111404389753628544470427384482643261765780091862604183378512266685072945279821013889247393259529827320102328545444013393399818860137154912190642563573143024056366178551746491415579005003841042530618598737016132527068514772106871049225096082831294697985980020708547580817194211223595253525441673061981923135926356382993384735234517572548211371976894519625949312450962170587309540329548595161490543418534672178378343755379619564659094344276516192192643920380665636451347917963954273899377088651070871199320418895208288382671456819182518752339338306652531118167891334114344140900280127974437561158822663025085069975318421135220820378205079347860890350012072508669026509195711080209197464983972751568068650171056355628614716119712669510551962104587682192227245506365345955469391662423596944089138477872932281156386244833173430730107995931579349785826936097861831361415416319569807793425806003639819509511415297820949698803542617315116425856206044743254708922875231970909057618835405868744296627948023934972121748012730542231131407143168051489120879562520822890758029027177873910652166236381524605563605030070283283622045018692673720316896474447237850817899954966449487707521034508664475592040518641741370851401456811174820349611028561030131446156877464516515934685859248559679136073308427232356976936095103947879429714296703769777881972715741357970981227563836093097493729487128608912042127726792423707842427128163998356981850475915276694046296255191715640255413863780295739682387908145666611653900499483643724450305150040627740433823565581574560969133637281275709754389706197075833520433603612308188207441122270582938275732448494954161199358480436204789789302224533513359830805819777742593241781025408903840357092682400238727097199391333009163825824130921057989710421421675923431720182128434209740696907535438233431270514638895571240445532294676012488124515376027259026029673841634232686896629212806738610795508798662594246955759023345384054022287155488730752278437353634173950552496030708891580491183613528869527603183708325398244670651584004445685821849062870416034059481068514008759833774050186496187820985169793736797750784656450291264282837730136762878839765766572033183877738473905951919616107187771285248252334300073285232140394679212258947732278007428979933677389200230824590791322446182877277278104949522931667164250621762459290553256602328085136437114499668040381733049793163377562346247284625758728894486845085092561590544686079573882353645986995934914733648201928614468149918288731319146671085965361519687134953370484759369391981632927016357832744238522354068463170536919655683225701426338145487802187947884709734121364710092626747721391817462031390206922532038411780040489639197580978774913273031429325867718330854934978982531385655344502769670121161076498874968482192671708788527150678831400035804741786289561468266699188925407078031876292148412934125712538078470136492699703335830697517117319310264675772077650385813206556847438854290688193389115182032625939795025750093415795655965514473970466510132549666463956778729322445334924766860812220629408544109182561890509208282762425791901719693700144655293010349750185460491784894003504990968709925389313114919892145033274422473180822521325574541095764712432748225110855845918153561661364447797915016443722838203168143827019842686783979966169809085537268346386984720386948514911231334031935707789242540870668723523347404472280991779150731192531048576213712302530338519014654332599151289792357775545467783087585184279056900588246980163285883494244395524265637385170672128258660891969783450801944851619962315255258096427490742362384269464425194324823158009199164337131650917300064825392470537662184978121321777436743908489973595365707653811034695233024766259168217741984004177425020935936857989927469287549972816099601938532897957349069788228178562545193541223527809404883855876291036072422602875178544118037446343150059985269223633015321989032573367478496906317936835687433422851973346267314068639014578729137144877072202516450191183144373869995320188929787024569557561277020543304003733876092821229623368026774370634735353811257239068486344588461672949449988840156568588164178074241792997403636107186557586446054125545402876954385431343254404534090876350442710892869143379262191133112380327878310402228661433771389709642936386384357899947887486263981242466576348428521411588738092382335716181561564995903395197968158004249032212907431270875940743512669718766685513805723326047263214823763589059857614325539956595346699994861417491061412503413552530113490716038733104386751938797420551351057263903646528411470790086277421319406662308944996084748899230935557025408622114575610551664441739494232618304162653136283226135843657056720681550968593281514850894850163729322208068040053516105224128215175844245837091991251231203544687244096906797532862602944074131355189849637633183800139412556326479546659705809379223728819263514765977436569595254487580774659659169120867804125161676333203233665158990465424702507391277082755330650067974079078382659544293366728977168957943608459397441783215307080403101699578616986684332189252469959599889237175221551075052316526677961804873192726946287131481588670717668192083482500069232529646607329547057247785157082643693885128164433688288633504579491162366953045651118748352543024928968123486359030783960915888072919611163226561729467077854037371128625472258365205113741511364568908352047303925968663496882374707603080676071087484250811369697645579246276003058765634253869687879552652378240645394299304727365638100696494619730836001727267018313994981309919757758699223085937103003538392841834251696034930225642521973465948012924181169834822377294027418399735582865840797350863262123218941265523521078626241737910010769174320135606188820317572826690163954921605402141955731149604411417069457060539520097575922112337053051452711585174600974906694276400402353590329202491366175908914261830854379538659075152717357471660360047716367376020357225930452935039113367548859616897794162033890475189558023629528981181892082409712610923513282104668300386872915374846060119280977633386657813665522037850270738121735215194074751117861629308022012977739278982932958166734539421927649189281948942577368809259956917926640425860876972614567237859715559929832830930011231994743942774676338143480992052401207678977303860714488778695973867917681917201485377440906520042602947289564242736843427547754947321119329148105032206038789796234395790144004829485226611827884692021001432682894933138486095316094016657934463809612258122966611679216544887582143059651774600264265225844712114803890841865885016041462076093919726066708313404393806576480713499639686319642092214199707759495216329986919406395120956335207119837922839585984816008319863424049565941538253367332327362987768280116170886607247130603836002523914144534961345297232736704024208361005106074276164483207092290852849263697982107687276972020444411860159746932421136381845921683057646788242450383347218320595704620742619045989902061742076880644432010784862270341919343888985653628851721079444278011576020240154374796102476672294548108717347993736045049955497619751710561139846398629684718281568837707538917640820705906537275165925307301144380827312358042112408343573608299994568664067612415646886860620086184256682333855840849698861093712307144024345309503850386832130276049197189192020970455634247263592484360021614511436914602222711658746702495731170151779185971069837940988231746699244683467913367997220493733270780507097563896999307952131893213428773782068950853269855324913710731603435671067484877846812165801936165888660378505421398745662182888651653479829523406547620879119743981268029775084596173925144168385998085552463889214487465771878911267259728038983104506625257297638992308438940747568083152868694698607381848021238743569561310033350367059974108321352316395751920794963220681678527675423194949308053966198409193051149032278690358723275839196304888904966859953627728111619770082136637132632409519400362725625757736231112259185420916671114923134293959601795690907354313943308317021053956070931650326449427635288709991070581427473240335978202536115608003837311315030835186938418990116753417529042604084739844872572024459252155440356014874978828185468960587903573547853264974365914301397457873332862130526166019319012950888942273406490414267442288880502391590856813392818484829839386841083896773675785111082222192306514338291369881112278739198459042701260254395021694111539286231895450324588637354151125912319481955345793441113909219532892060276525477503363229865646142926496094496922133708161305669361232849860963643103153897528647812968852971309534975577126921665290769512780784474935169346359480359477011538548359932861959518773850065390226916628731588653036949842829121346417354947692195762998967983243571643870589583170922820714157226811589720667974133785806642742448715297172921159417032400878235679417817386861255871795325281370457185530278200108073659505238306839323968315139683620740006297869136848463727874192794941015330413452509401819494023393027761957148929586036600892532171206611271382732787968995587718253594177224643738167574394179781049388978688783988751210775149069289936135612034818766801789839090259591234898419789230287034274777298234559362351814655177342012477266641655796121114460358139099974597225212101475505415994763165504349179145396337547617880488763870690628512079911149922126621200219148202220488378221075802521502011944382588084690244160205115148055583860588479991315006398019689215485165503267867085702455299199476464437374334009188472505391121797937764070899526712362019180693260658478000098252726346132530339658658510379380117871432425789924913205863522094126183304251868790499420353747991411917797705116525495745054955893615005750595611348696652438678172429661665635140328430860732754030362182862242966071153601887528034718895373809409042324462015486225955622594556985126351923743912366323096928890209669575108930386545698381440780377677983254434221426720245702875278803730378951475815722631961946881869008922075192999887817814974383714972222304243782415456440749321096540500229257208593990993667236093836812326136515465143287372828994637629349017573183084902013179282555918325287666150467108411868701205190599670901948340707183502472839438260268892156340169112731613605447289906680718733773108025797104976191413123193132763638867394969912859799633813769219660985709444641076342467359906163188334221986321219878884649243866230290108936059243109008344910001291796244441905116493452489413179932161381568077236706599569245609073488460770773517728710925485400310279492802126860454329676519648829309383370531989777319597381266298987751186608495328498289174771209079925603738490963574166994241094954885393230037009762355399955393648606155078662049807935736494402371646452476667261424608912877409109432651005636177246076607237483098969013626401174868354316037965848103832810725518147396459513807177903167583350063271411865908033306902570419902787623708811102366931386527215611553566423080731542507194528589277980790604417876838648422903582570361670878489198994226108837871980744039996033519217551773888854057354410747901282683313705483337740740527990200015653486608521709449635496151817152837019621502855650815874560527066413192845523234524849123228549918662876935034879922593431751031802534722068608648205599019858644757405175861634746009680977794942462468750301497268949901262549941778074820021904772885965707096294757723120358213061097264142778369756889846901798957371122990225193021721481590062156698868799469123439044140871148775573373829167504239841287316777860940637463545717877177223686433791579821987563256504168034200656829984571380753557005777578887885936781933402641325622540352383240969314335641231369380557954498727966712310479370091709789112439641172317255581553748599618246959402940741362482441042524657109605670157121909226673545873536854158313949956962339008875505105320489242706991666161963183776180973753148026898887959686811856629699709254356366407721428468878066999849729735003660545391090065484049582509996083017167586172990274924128247748050847979517550140887068255922762362534674035219153225284975937671510565726091796258814355557743561760443856277264170820185162498847904601065650547419448138637503442568341838231051889159447917434488403102332294422698817625371449882062484295762062780516093149418940580980370276746122324213780093135477813182279129131204977789679056924601938501116593553254084630006884428134833626393989729119192285217804881026497129101100277597071477521325497933831330897190350755549523182878286536616752243520942243212315282007117341575671187121287721882002873765679568547178934067910296553850375627186708930584115835228407421463881202059052219474705987891508898163181924562258795001233386492635571140848558513732189638599584919323696249267404336977187883017181756898950412333884018633848283242361163119310593414984988448028405297357492362763963728471955334980252427824228101864194696008470149242245433476324789128111166921567125912185090889332590657956529965996584844096995542929880356830428394407335021921449224588147238887337123808683221523334933199824349610702446443065540618241829311931081144233031652561789278610693542399205189827838062448484493372204537013368850639536233016261177272960595156697402985689987781135427005060926988450837728663849738222505510473383881569255020322699517007585926595521903540537056431929283408580015811823533894771460424916885262317634041202517097976554609958668855069483238956078757358360215552031672129384300902257869173618642794704321038714168182861354101610740726309246688878263499001046614330121537170680164375454706286275481579498331631462787370311916637559305601731300835997550257446054137023418150367229549981469093383120785077652004228078965843441841250903463404568223594774787914426346122773359861719481834849001845494641753966410659689426667600225194212127794215482078493455954914203295912245875926243068980977717880146211850223004336001170459107694676020484530312389359928771285850255087711015368852491081658264347144465150911062773227250089244689319508648359790585020842737487511466922528078455015190091500774179976063641514440693794148072668540929468907481841448492613311035499380010511483279337622225915493086556366306225107269792544351139098814544560628336996636995748777929056792951861118160196141703328467996073050807957893501178407142892760746023536297147209921150520461414564470505643463483897730574215467760911156202864344279760153898671325160345924932982943048375467038751097018450499806011436143727636659381618705159317621499681254839334686393226071118077614456773615615510091014246265196471110157871625136239189180921243757740079408285084749879976161032611342352297829310296920287125782746530098853595827283080474611275617744564596169089299420303956359441837512013557349913746636254985919057931527849535310862497488169623721977900952319454955275240381674348342925395969960939830876724954182380852719029515749549667199974277441622141298647837592692316054800651649935653974373254246427187658954386904663158003539639910004798751739170910330951182923440241868786466277436588725037834622529478678332361812495804987903549595379589045321482476937504531851799619456950387662071254202138206442675782242322421701915507990227837702669773445087416020336596243945935896265233811055593248697422384623382436530589689849583946000176302969249296314824239792286377064680575343473346630983498704324596886592583101419320587056710769856187726033800679115026462073228995286673752653917517063826448518965201190737224683073627590005732222985882640455835771120724257912364074208883658675820869723492943371210488034062722793427310052212120910788400371749980797589938819269887437829707881546068888267710291311824686418246625035666469115882694220923596627709739484397983714135884300000767888356387158443116303221219083861736267312997155080292070132592353832909543205732152970355219127557695721082740885557361335909814606698792935488566107859679632796298942614471917136198442993356133167686688709974423217799433270767222842932796001894824550598605896594504971560251188299675355140481220844216017365897717884485228267866394295590512898745264182776088382515842761397947190947757073098668806765384315576607155768397015858357753550353421376315980529027787187243464331038074331809826442788724806952360729081488664724090868260005374370598489595733645388198993276184553457821365294420919831123148511209515150415648698415095837184006794173943870478696627280201225824354962006635215283040614553435098074199345956339196198221295115051707615774603743189001809762488472743335539789153078974471782047786334274926107495695913402013445089957839185489180845617870376076840161743654158606570789416689926249343626134029819184681420834434033164663186349611917483491364695013263113686764930834221976185714407392077509000467336903603252485655430947857398510362294230805417735967728745595822270908352063891307009807581867595337065044075016210260990817542296842659246402017133811716491225227510922842394757613046546638959958993884391012467614079472495636179231209187047198608232344285751384736833213223280734578969370929461557668072851403287506459966057814858750312261817124396747096374017029335919191523382384994673967241189798666724454359416128116224079460465580097642721864760688593017181925033479986231863407700286708345291892730145810227510008549932495910428218806542409793218695497661696767436556078154215220246293085679395431526074809304127590181750452836470408228690428263488410136755388718954399642289997126153903579613344172029367410315338324412362722355990423311742751556512421966290257546672952438693927866718101339733799577113454378083701112438968295460950184170730071878388097421953835395098360936006597611021805702616010125566513356779456810682878816347285662493841891221881425147496103968745633565013581679454401226251759550990151376674098526999378523291173961315727922517390892484271376718936988782174947613178738912741495204496817854770770528959793095856608390050993090825428826434975784398331153880177753247330177971159043612188445302362088795835787336717163314576391454337839315314644993087393340021290747653393113681288288687192721712247182784434220461000307616392895700100234370914519087381719473459977334881663118372566478032470835950046347303534518220304897685381535046618484109255302708861604331474691492760221850567590151457416218775829079754574033113250162410253859876073775172032800879040405179336053940009372481462214088396812322164927794214238554601096338157199530643537145579459748360669565224119523345823532906721460171351390822690028997014468979055818450280111528248503665904488892689407302493640594719243555421360052329782096322694684706107277210530472819207168799720523523746580618650370506032651183274726321526921950362721823186893935285627277958439982065407051116351181137652284454270744896731422793694317307563277631828435617533381972165715127051104400684159669904061020672189824851235927764885273388966195524717533642644361291569202336568047297629969892856383411655409453417366123358487136814339006420094827727757428770592571191273237278972208564250954027439470341740958580280827309531990497668476128609334730568722998481841354282010752833477973646472848600179733903264966634339308724643082282568154565529452747224487590400908003290503043672988859542969139620367947362779326538821082251098492413453410965127671921088041739296805785467417757323514530628701816593499920448197820640557517807055498018482496195614523468103734210227066892514248619596073208194968187236098122521296637796881562020206992909501646205029351195807917556096321910960505781700028696887261521398923875358758032623959089328893726023726310388590709057695922887331229497773304215514631541613364126460189278081992337072810142154050781767169796682566284077870288265843570775416431050742829557781383668981232801408558046235268166838354946114854232296517107776158636333861345405715150204475438812425355734343802593500719410987573563228971926820686439278440923804929441318466247931340387362948923386586975631442796441843838210056973874780251060521507844674697322311871072718115704991061845997674186880922886174773131724344527982360620830982321944056020958283708935282582948043752000969632706948067138794366168153552630529552217382651869960761877582780786797746508322118866785462814265280276274639973436454097405562975372887396386799126878200492957898943760372352203614700134905524899943579936718407185847256058248717239858238087821942896752580014142327769419317831632784646351053358233967003023693600541054189999228456991337132756911828042213388065904759834190738883582042195619818757897877359149856748160869292538465000110075382438468611095388937271223477281809134168771554960507035543523154047336562430894866382110458814821637793010271318114165778583567875049185417244715448654697839458507294668311187092079810898430327777758121364409602743587977012144306378200677856803656952214885068022217536521485158127491723418579621976133880286587554116054488755692696098819799847446017641348374985200226718790029463040428520997065654772332315267743350291626354436452075397648251346746856838932873056138419536574921784772334605986748157208741717613097778098831815750087766405063218330063520206645326423030704004848000774345004622365174384906264105170746124553499653193012897952773574056047331108461472224408948545691132763409970931003866987678906901813065642162573948206547315078841937890642537725430043950089938724942025425164310260454676148102792839876151732579963821831305908525211549907921033482296507167131404632326479163607439080066451014449726969890388634700543159909204844032309378637981693100432662687658216625554851976337269901134761262358947031963001801549872876023151055180410627245335573997203485618619404053824497442800943039970655352019027158031702492302793086758586407163743876251563596256966297168594751950129104691561656232000333947537918458339178269183351071698727633532268382411079981911395214282325226999820158837526899737699122014245835501484957415879677466808885612083747453820022947266058840320382287368396478510238964014436805011274602349371762943948442150282919004985343156289511501635080017517896345618328704229538661847205902853291519983626453872942596887357074440332431634886291340794122479521415402871580309127342069820810786341762739306356228027317170392329799304405055865464811356833266428196525636517623579263891003705472671505917091422558199690432172546537667344171025920925991664494702076587591828999764887507806278946961190360384625375963924075948250227840462286798182867980836575819814647040273673713449893780433381410043338097687787036131946397037544433641094335578575303178537127674777039068107789262449392168997833203824403059420633703780543905428790501897212844541355020077826474978122256943619674428126329578036190002657962577552968416098653289564740311006560263177771284917711144067246556351685842444514603403394171626951465456193391801463523287365343673996049210759577168335622733619933492386290506094711292976523154010571854823752746498414820808659959624981709779070357985127732222125233311789919379353913012238213724831597967278078327830471996165721642620476567806436095196245545902581067462851085323027335336251501108005281731514650574848058543320887715461450200666184972528020276945311289306471430747225485064766910958026906964705573146901127765224414025070002134293349909041985099589106393010109310998714517555441859515046831484261897051343855241170048669514061841063328929643016717521058229120375314830966723347652255117814103191972369746407691051611817969007755471062863498026506864915160037242917420124301656965805394178510423555918293150637973146731035441346078350846037838424522817018096915532204862143376181570929423271433424640318161935997620824873079183978963966246835554493298972189944622216971769946190435981460616202073309263306537946738055109370937183750762534177601198642289142449331654446436413132258924726005156722734838006071595852853567329039112599664880886281299267126285551846211795639864260231287748962284133264541978685166104804887529218413916736487471379601446616588274545129447500935351146403506306136458619228604918204996527044949879505315607112683895103910362295307623671865822476594644131591141989810988626464377637419975966818760538768632133812027659497899882324268601160478726555912604006529984019962978856568902550091184715923602884546310809276320648233731551515727648285710153032118185553668573251653741881734429823742166303251039026266895347785922094663569502292324086182227078868635524273275005841002354244137778861949390366837168967628167411380247536055954094259978920086348969880449070062030192652846174277109054195298918852107015932761646270045195290699323099394939511965787950929585528588613829757789732153020657834298015727505243641730001359055509458002256122445630934609600044789414521386967048284073450904430365166007265295401342789621082826299440659955788503458604159157125206736296478792936681779898843180919566653853835746292015059869518641253058205660301696093307673980807774121406914448633523623685576613501586424091880862404426192861021822823815050225360076729623238832493152024665608977825441050193277493687885961764342595154738221489655482919423282969475576588893208421556520135941536430072290826553113177929718717918988090472183589645818727772421745756959516972347827913567847046836754468487248298564014515902495997287912379527804445566434782533533000726621757111958436390846176305213373685900211155194552322342547957645040765323784785784538762819943923151663943934645531552380303021052202274527198582765273183656486048290564356281350208001209253095497050825025830536744597225660990251932335724516950106651751847145850539943213547205545098974345314926301493312230333424520896245587414419674938798930058850956387784820567940480343297133873398936340393936484203952941423852995400719296134687386374991990275491696448300502473901724272761038894233721290991820251302871783314774970180662207350746853181947603522351962914236968163769975646687629022914769533519065526527608846931790769754584169849824018344934947130893129759920025256228504572318993097643056325078195990074918570341473856770456609867433214137019735729748303493346748233568569744203648321940179481319940724357942091503240013602075734746455717437480393849385937829707459559447117198279315064875422988972524286966102119751572006815089366871345285633940857755395039727731358665307385067036523663654431419970667184156671100285181796246280243641533511377284395184475655901437566430938175354466513146659374063587167215705115278734793758790561070960381158552231517561909237361944470944872438580952693707314107023638119819865665150760449229577818062029358386274821989091518665073659881531654503942412574539151399079807607654766050035079497299662662497464429810290691823182118613670580536203939587138654252262501521266883305665757767353109718451094346859595280900639969008978694870061865981380235428011873106935722600556842384567350303448738515814164470750320788481194089135589949505673885272636639051236032017357096352513417344081733918821938800192891432272579566542301910895219205200500361736890818263250527114720165750126426129132810643602023657798020828261694407953711105416163092044864991677969161852478065804352522653118824121806276722224161216394019721053209668167103737438612839780156494808334412125686944736299584144504703271624549746078041314558162882619638259685980622238993710850477118327460143163688933495546620005353599306309238022762383314633816414699605050561474079266284064601163297254925773048531146464512506355457662851248262430781404101983685631903891758781350292036570242549340456864740117083729300386790618991960122545396813708813884743246135492568583899298786637761135596710317368468771063248458568067060414340790029695360998734746394846451093979079867368255448473563356236069375551797325143843664362382887982000520675547801131818176313115554728715386043978332168708189636255015667989937435092974801851790520984284273572824047135450288569949218844851356570284320724878550116806712263567915757248486315211857735077807160951015057701505783386354844926868362528203940725179909312227994811914316402521414022190014435591904609650158494700984633743387447860269201905839292823432978998674226787726708103510470606115873701894422763584956823110894528273442864904558864578703185905811394290556131594175916126530412285339516049110330551961192785437991556924814065148773036132602460915368777690680350360295736195503811209150526524277718995724808316093628176105074579309405608226943737737138365216975889087905538121435722395842772618235834377641612152767903375443996420992156560814262036764544117953897850032600612102775160800242220564625426426758653646422314282483763632340150630361034887022216055692180995264262092858533702668172300778597991489259091331852445980947917901704431603239316618539433706233641300943904471655497612181693154779270590004839796844575701791112766459529585468617774866238731354135354519689610863984606954053047295894688789467162965256824750153933949064635217294673634632014666013480897954039045423874499334232184202099030260694255873161985637438768956933018435020070393147989338023913709818386126499667526765550838333603867182857909139998069470537041112111900082757449985660457336056279121033998157254928637444641071193224056387138315710162279569052540444561469545161969867986597321485776022098764928025102022188097316624106689939075376957313548287855418867375361102483548690754940664728982714292882168600583330948247350287943116090056196209198866629141751306246519159247909149292240594912007065563178484964682889263253899804807513731542260912195790091154947155097843692269654721264761189772813484310200387990128842970532290950416792795765885540490830894518526091371216115226434589404441770102945012785293077573740506162351217232434034754291311532801745755388293029762163217212653606648856739686551414443873661134497659805248979230127687766503019253998434008428303678504079158690245735208192908094718852348665975696133260021136532019294074545805063048101980649258500225780342255792140801592635964800202225073767842279197305817245018472362491044756409124474936239149125479302541859456423283252193196110791415216114899497205872584945076171221040183783194938617368759533412230533132759258669741188812160916249274108079292217716969964178362797870252869409427114949524987762184137397839054217844036976861183437601145646214850868394387759049413830916417698322935954449367150563528887739414353624825788977130123820066606992332674108690430864121889944811565746264633903319840717493325125527913856616695782507412871415868265269612064811574733904358840043999803020275682094416090221735699608058723690508807283136183008546483913975500300974727602645909609297919950234701598614871295731804762748287059343769248709835306712939248749494045828866288719521279065015381030380256327970996862994230495009125833657802907996578875956046151827528422550422624070052973953551332271749880808394496972246856520260369334858893199960724832194987927123303228917353875232377011133012816645264293523830104389814455402300808707362133215912116234132517800340622965790035173132422053549421495187911209381043080490443905292090521089508467964936477190503673415109750797042076592318341778825821281708911854269553020977740690805283692704944814431140900323807843617755161291450498478371545944719046952669688076938548829166873426314611121705447214729112615107840121247396647279896727160087021416120390391688609687834893037062357571352513529860623303540648642648238901994307833033997811810282170376996451476283290451863860696645167165663351797560149565281516656817142209065673781016646618388630133433979690363598240730333259703217536699990086051849736495054128947607168248275642391393795628002557006321646903639380780625840988916428219002945942834785482822504920253804711057890581444997734369746176112016620863985545383094611657485335691466240168990585687541398460383252977149769855027795192734395419021988466816191040557981191599718543366102699896307440310524385277593707582640309648767613256785416574743491947020503868643386587148386773210213673466221850396382012891720001120838503531442947663452924299077937281911028526867803719387104746260748600015787613767133626513506976124970294337204710732247613261982781550742401666835409054011995095518814832279190294794050129137641759042218488132309314431306377712021999689821958362745500296808806222362621246122252988397570117537863288642993665245698927795649490215977496653602826413679087074911553179193925883543054665058037333571390361837782032196722110494380299380518809386187549530348906616407859953977464392040465789727956651125353262011993412913946667034506813941991937707901708515679155206388554649127882641342404578846500895896617444944909447163957220846680056074327797452203083426537052846605912385931693788743300490558148074378860537706729816867221837982642388957014788563930139609134930452091341857720591039846616126018313390093246763094352767235613572781841803592283826523207785937276347139585002629526700023931746947159001530303430668918763398580032463282877000658729558549052322571525950482826340107879411511555300673595905539236253071392676170910417458662299567052003225701885031005020464839792795734262721460206626920339480429704855490865685012504672315403438732338555266152788688713539705183077808866983696015450218587198564447531098334082216848764606549171605733158437201706551523175905376514757434189403462797977353469186628919197176842270673973487387195229875980191394406854456757015503290078963292973659843308370296315554757092763335479943387663261526580017838699070838800739815350132563395636913468837601269900809495366622466862987398420503798030209745288617985593936238259973082673480491191935388733146495739727839025444090884611159042375622408030484416449651627611417314821847484204672640684602067386780066206259380437242835091029455970593905984771752593690778218222976286981475633146683271591250112519908479748693483341400663115013639539846712650016926160527336052014408431947871970421876006049560505129104164941684684026202262602571129043988622460748741106251277640021534098610941859723034069735457512594618939517341523841005172273159213287373655783688380818963418250638843476969442336006261529377022815070331410185118978795632504466722414308932435794734761739885767360871671079825564005483100320062936541289220861162069115751892574333679993844902232941351313617824799380725755661983162837657128975032348080348508031675489912959288684256954862617925145384220221177459441696998955012495453592678615163187949794901463167548843182459365601187948542103036131004042215136179629667171121608134369558679229819219040459524495249524702221088869978868637294736601743762769822822470219509329846069295623593565888387667347968349702243737883136624956861632730041215489349318248151237198317618525258159556192064512483700469614140651030738027309085060261740396812865444603052508981241920956395633131999849463848400316649531962186084487438269490515032388825322178208424178767433087363379958600834495201208384914322203939495580990581593176840736608412924934907108831011201054351548251887193670729463977482955507602451890464001723840171359657743366401699953914588326985738498205027049409700768255987657492716471862674007425137838084791751845063213447426807366254611511662151942452477632743027525441091346150239170420758311578455725050490526574945342170920028707093208593137035032987476032085254027395311850546396441308992218935512065775958199634769794763039531086024720778494811850507418193203752330052282497752010718193022336590447021466238972492697491264378280655508629662846048066583404017801745522563029851346144337769882733637550837788894249381116238067173344101313663054315541721858661613822241791801598859100924580836480629985738374175751666503224165552045950415104770428463314073245218864405227694928271507570022389419325289509622850447631955434382210302873687194284333360600210050442642933599585300015731763887016385388556120829387130303397439244510344131195164755648413840309211596250082743574988580829017993994580571286544166717013799788482396073006555472867224934103140160769544292578254046835063291502172557690744943152031504670871714701556523662420173701944805339217085285166892839815812425324375464995509682803399783763081525698597453839868889160048811575952315726498890945917104289770928012424414254027184766872297417282488440873745615102912701846934083705974253884679753601504487302450666535846489962679730380773811944801138841386017989335570791181520798152864012503702348772688778990547135557376865388059518632717615565588868635483373232517979050318484158262906455466326817925288103256458409881164775658562304313908895951697710346465149273131604872359186696043706924718615145897635842888988791517972776665787150106047931897143250747042936389519256013088943111201007110897268781815726391163304674107370995073144764995645953547143236908659904157033500506134824728228653979018136910794554779252405686244691945849232846958921112595907866672381062177621198185879036505041480250417329045028392343588278392809555681049114616493377313340005933726055554385914745902545921422444544396582506543198101346941824166402359262277077713407290733696390419442920706591130978916107843223044700794788803343174819603474400677121034698217659140005076332995743389262106580232972906283433681413469764839729104530686925895432999222231025876513294321078414940537897013023951552701616800577450420896417407558792641049167615409193747809241998067003923647251043068467447536442777101604570364607246328257384553199149365716427166587680670667639866985616259475217661382530337342325238060676780890571669438416850059825534438409034781477594378286920976746504976808393716180144654044857055762538387034095107319618739869924152901713264812687816607632785026355505865738970026702312042824229513779280390832161363863642183551177079837317682212256148872501714328506128086751181562670764044524455368612684532697636242550119600806209806999302293670460379205403226731992728242235503697075349934068042978002666439517977492722992308243709896819889159814510978966995905420565997505050404810660818643589917199406867858302664329243111727793779151888308452494965849981179870534917507703277278148456077407316935709153595806527207702589887269994493898429187213840404858470218297840465303271040504122565716287454814573739983679938937982244339313433288354409281268579371566432944098930145652427455194691413027009558081344823660774317706533020637239108925727113296690569614090097279147496774325656453546501295362038222778772895415434039673761022986154192394883588951708889743622665252748781070614372671504944615550333245659838719797010674291374548553279294116876363045122082059395936541164606545123824550603106540516807271455791648684090007815123110222036064460620524311112851512553687274550714748206428951491747070804511694675154782953316696829270410905971637898957159214458461742253234408534782709925472293061223529107529491447432440125706854930173181350004763824860152718230818806748747565713126893363880779952495886711434522798084939767114277824609295752412264525637809613873187089210192746091860973348325425847157648790038371263247569616504055155737577276909306150074336385022644407026939258450957447717796698055463756090115537793276635541018536154610493070194754440525301460117606062626811118531807303070688083098765813355827581100359605617810880937043416279776531795262154383029757679427333861844936144222195289817533465766914892895803764011632894283875592685107757091353800772374045416054488525310037609582007345017465384350255653544536899123738631147046190690777853004034110487343629124414524180675979701658491118213083777667048241127756019176069147569938100047072481264469340583816016869642312392544824617178873205538275409438710752681192551461282774364887513894461853699691719637999371349502159248245260614568002196646947338360597647506140885305493303629443096179192086114039354459459398761641110044478827197080870736872972758536146912715485348561686968613843646873673548716278787146786824935070339791046613474862565701730818948924945882801355425821185039103650015937298369760528928050866475067042974541000330554288128974885608766535175820848052253183856917894657782905549655364783878939041903797918111140897970108785572701158996170692295239640467830727757137281881026110390559903853135199020762438030732101425712406395778962376780419061126902267279754889764752488917115709714889448309646578692790265954222226132523631775555614484350644456243027547505436070264483464544404429419676474644477440419185601140490016590672841361236854588279400988618173778362246011164401300052053547839300378517829139033032104664383432824056483561408268106372507686116470361750211425153811205762888573524087321407725533778790982733518087369732325228147127788924354440551765914115161887804244178977914314134070982827472593199802029181517178846463237502644351859851110932317708032126864133158819223636317507558563676459485573507520967282225489438814460259625309281692385421160254082592873210522808589299386714372375391654931446088266339377843512008809323824130541397553044137548912971457638077270779184234614557322621986444246002835197473019249697945409172083294043086355323488118136005369566917444104451125169466200308279971090972642993322719970789124062044546056408489412683687020137650007607095932612240347716128064694226171945923076812158898631110673132748585882578187714476376902820949474393400900335657617104467447632341201826222513545372273926991746826563743733066908567560502302724168521254017566259894353558427166302450402263899610499661961032152788038980407326848559068783755084282790247901438797869969805448984440085874759800726445526019132690121723110195816244070866008806276123023450006771804834732279390776142114805161833638455719399540320284885962165244529810198855614115111730941215080395299100090091769919927486596259077188900928768180108402057093204267713530741586198346238737042170066766159626921375663163452801342587004179056448737882819617185932910160681084139870611312046839890461251239090637272687911551884490201815178096880050685810263896234524973107797359651326118631023649379785731877455651523361587224896502227263695438556058913906867303520524159590565476351874264965554828313590075890379230590584764380489065456545229675629855795617978991619256968176353799422801548112976148358851602384234133298931929140188540700103803627719527818115753162250061716855713398796014185774987552158956427351408283321719963690302763567282613804822326044130069366662652757773734805174464574197398127049578452125608187131451212090406730221306925145947495158959595242082335942410721961338339793365410506742954703535373794025937434619476837656240974320906680171188200666735523674784078481408033601716532892466716088279424546876435909844155671148396343406850938789772863372407432540030315530494607787438528203956357501861703204930199968408511246594139737506695193534712884696023525338587029014323993687455438567962387095775819073416597621736049558613955200290973225540529063461075250175672906049925372137041799008960727597604448897518183533673595134721179134379084496485259758808966788472510391593603474512198431728472302561928098186637789349591718110503930843389173268611526390754402486450651927312078065725365461023498734775581837956426192357040430280487293579177126524742738047463488718555584319412025356053146735965199940702913987701218368896248989576805622489761798473973071371966565932777573314649561827513483154842539491694459818166999458369092863257720684926868915574640045269583837607327234547595831682198844463935399978254354958554320592952227469423192615101272406594054691678601939522911476691059056253183264409149550574188385716447255325728335643745102221274960471657416014926619477004554209292300531534371067668121177251791579466077152701291065248630886315108390122605258606372870194439506640612800841327655324897420399458737896665088475096155056115031256146168685662980881844058230398320209717835652942752407826707775531594968269002025584957239390856641994179732250454784696061382708696006331840186583207804114914180931111094549280916396324769417394615465854125086584025827142193857296619985649935250392749839162396660437513784733144550596273625413809052553591168598881941388433156123238615773496925930364059814543408111299721160966547194852594069767492423012944409409531147722308835385010593178713439326482378856488593356305912937481027979625924271436160709743939187559015109297017591201518385280664250618413828670018295121860385273602589645628428360802635907599642055898969897354329251879666992131166599927137234368171817949765903549977483546673050066810778189486157565878985290817637551447886148835073589387507711206614913573229600497624265641723720379117516432623133186225959775893548398878480601351409025860376137222832629098956126974958131517534732372943587533524174661306329985582423034504479339179137285955735219698856135580825502891610990973273405497868603310420673659206705095688022272481321176018601202163896646313113256952479006523923259003375543858754384608520200426227295542701636436069135372743825354316947481156994537013154297714701182003928883642651251641937263947738590883918906296523977463019220608100346136122169042866738896490076222536454358058406354250146808066792275899758455797059613891242701769099739997202985546123878603915761233447536683132261657382154010159467634042806745949985187461010072198818430467433557591049286245575378526409585227929013737230361815739643214022713519853948878722059044928876899907266068145660094488281642876700570563480908450173074952506108223444420648649644106058153532190718103052022827138872043231155245826648669794329042965795018001783466384060085226537865968028156114935881576054509694297921226142928617491377934711444251497990282809400782730665775755401647772241477067779909062090932787046318109031887834159312892665374790717202753375528633648502780737824301246725672814623070209947473152636460985487858996937402837395702239344035094796795061406649480942003544248790274617590677054655558992004332998039970630342071120285830010403721308121085540625578618572353906413312727060712688318695284361605147413766342503326671802511620588896094368971550987686028079572799173253310750181009068916772746715377964103259947249493195391676533266052671488956009329324054276174129121880411782310304507633950377923086664708731358498311307174547735743301113313603801757325240861304997989658778098459626625332415511127084154530842456100489920383103027174700629668681617045577722139353158767793804305279567412747451277746716423799399682876805345276928487049827189310213863120509729227315090931407729046229139070818669601907409020480704672465591445321080643375372136813577115723799358512051895080067779208744877583203383061830641420258850385984273254751006556158037116977843278852507226793885109917382352155849290990303636210417000643182016907219286198456885142046647321094352257751704049342737716048062050301009509232008672768707276157166510119774556785242966562445228088762667422029542805621259097202009979409682127103938134893186521001567566677376717055701512752820094998103155411013672417633419324873087768539783723408303582653082821023262636167452323889813758957966627661808036123891444047970113361910352631792472119351829868202367882859992503079927754701241532366604859817198134107703927600631568516867993366366045620070499297294317561076833885713072120880715073462652734230151750806831634255550474266510344254403757733006976085230405341851612010352654482786024427062538459776558615801659852321479869658535232134154564133188192336782381222235602106821410353465090491497661118325237380375405682060735017489279588030527019482338686491318418682471312988428958497097787732934968200152447767366541905531520021272269879612383255058758159274713162470292320742010816938816889259357947846749350574519391010951364079525004975497977897860731863962883747981327378976655321152029568369966378179385659718111231856360079248216663157470304280314233487906599880601957093754431328027637613697560567278168918461323566935095436612769368002303032556543945099142292106578505531037778089730342589106168299058301228204662352545971716435839415933168572602541319845068361646779758910646897630252816168451337717244456216946357400304545919141829313337307455158111442576733777507789801883091154772067897550350981493081826243651919867117260936557917991759670235289636199445272568232737596155406459180868154931875204522432760745212892341069752437170975205927159868017818874242846756863238815877579535265372373581051917967217736256039497577258932542063264229211322715370096652733259388156080400334650650672301048909634539811211086831796661531137798762193567175369932568642940118885338739173935423366490440851403683958921324553052356529716878790629590027880159394515180109140639849324321721275458990783922227023460433285602404780326624665971758689826149698763979150797181590136658590241335472834287950872735432352532035642648963936440339908376437627148716405115659716654032999517015219334445106850011829845121459346764170871764092366114717307927468201737881503814300055861659494571143536500141033597695675568168188655163141636693442350894407625804563188187092402927815325066517154014167466166303440084395743071598185674300453127114178682545260682438702489294389746340689281677066585801595392619071571893064119479674101267914764549451933603588244837658340487758563024688903728669475530267381459203629333821878258667526801121453565049578720244108231787359645666524208215222530110485633082364011556174005906260148169110206513625866166382706189499799516726953006797639376748568046774333473155482323611843029836969729991404555941521554167084008939539883630937853498809329800411471076422417575628743369836514964511499940466784770776428081595911370278140778752071880946020287921857943477031906802643916390420833844456639444273149913064507078196609433166757730239090212720159897789117421412893094644992665235688980810735965202094558010566529726847498694875455384003772315993365290654181356609934548794594976160264778986449243178584225514911047407778336491347600948312275899720023186873828455082434670186515161901560355205591846599383277351643617785875852421936043598770784250816344613773933938709074433042031582058137241914503386983497687336380119308390647104158202982027846230670257504844529926270014570966888999879043190634371854614450857865780543914984854227702099949968524734319475769564712097896390925263932981958306402414244616045913779098786145273406341445460788670187093738454781317167316214385374714923941765190859322904178062656687278832803183540071769953097457840930561182617569811153592141349289079970958167317770812496977094471099680269674098963348882858674568676493201576532531564491138293089574435981580602127389580045542594231585659845135220915846693275924245420896329673747567546431157078064507495074543103618950936451610440527492479028202465244238583324302970964011713208137233566328502419134950708361281888702652043447290423746344090183175304549775232197392393702251944813465492922623668335248335338081516375018484625752692064416770797811680506986707378912290516400701243354785873893948519494961206764249605071036145347645080887913348020262803029684539463524151701097590879673567344223451866381890902757767413907089623940104758369749880777118583611232857103910178164951443712077046249003751999659552048960663058515886103001129073263274897724566570950419068596736949958976522960251838314907048334666463636426389117074590178339887262315983799217477119781940045406869746744235862038736827070889781012536500407349711117154094083883357891734521087236257978191454676076988222381320641937525154341207776681497894273994098068642084369208531438202969507410051920706711485069940037601186909662735143488196917519294193520169993889654873846486045566014892173728688481066616094660630112563131953114772838899035381793650346161405024166229896232120187385630068309220610532399714408946200798616056913642673444558026821682895585931505439149631216654456356987092529304266188423627421066892659346519926905239333308230133375932875344505182248876664844817099324834936993807668830321927381923960997066776731750341365288501343793473318927952516078622141616030306980843573153818271487479537871075534570378022445152728085020023015248415874129334107376129990975571294894503692995721759024429905036190238750600865176799055375305473004769047736309586101179700136008847693854520440178133159748773309082660889932945045684968425767113192491818261191694938928708812503443672438855276568922109449196035930680781904335842283734606631065184858985132630224676602542351953917820156878823587029061677960613231992844066443298032806915798745336023845530368012961775906129001711311068471445713686188722244023742073882331085349653821293543986196749704004820334570957388608664770965626494563934167234225214473980197077834910314143470250281980655456431102989073745772672710744316614459980772571521017623436084818341423368914244509936185659499089985871973453156918466983125381295128059254958797667962133804472383338806337054127869743267563792475339376766543272221315253408974546734828129572322658975395600755787869427359711476999265027262338892221524197797862605241355694286569551732374200600567450971439797495041260866515463688901398259939199721199403007808062387392068642145815364119197120000389778128666771617092105574270545633524769429217622903681825145140050307028141085112041174666947924089570943601726401617425531879946798007836584294191770786364458563131093059986951529684044329374217972185677039158495720966002162934958525420427435359365424495952042484281966061530804279079910872546566937172386764739181413141231959104902826529756238156477991725280381518643959648295199621223174055230471698680209927515653598031966879596193633647631364655333652503839431552508298596317185605760577098464234571789454624204804453344717705701990550521520119114563475595517306260216741861282638584520574788932743962189301942311730123530176886862458294181878454789139844154447261321282207971165199425353093499644358923349318288966945843105214585935190867793184816323622442929833699994331811538148274612485764356449826604801834510181169609475363451235916471911720401620542733811032002804342584079784737948402281368290298274535923039715475417618534144471263330084320102709792601243836340474830163323068979153950732409666964094891059578567620742711382367458331096241126078080145651007371521031467295311303247984179812706023272386796712520296907870547542050431294100601580174268893653379268442886976189480214339354646735013690000466424657458548586606963506530203413301225450958536987146979203708569500713164500926200606394482167651488958544691169038168244265118765700205412493406740597196096700080990283635227498368652661632063738991253441755367947095205382855498008071980975245703694441692803512905923661911336631842974081541544036209227175501558076385259721201531561748060785594521788556361421978288216530415553332229390885878679431537384991958087154682453665843697266910469320650006547085586302679903771757573487524767118999275991237888010307833462122694381399247959473026855088831630797565577449041840752479377525642181619963048579033465156926224018667939545613169875120950698817270971531134293221385677884580103491666836535266367684010301219619422917717534078347936963540980418004048585631702344997508523512960967559734781364099091116410829818939750194778921625570062107462911135480884776328995607423700284537646578876182285219927336357129422701084752495784846445552974845551981672153773016137577384569477848350216907519915959594078080132391068533614360856841411517289972637839716531427296965272142125783849441801731837218931699582620807738906446038057728647259360215266792241734912230538727638809159386153103883003121883914287171690559756761067409380294745271270788220464004194429181392368540391249493553076279969288295585909429741505049201744234338704976523894782833595202085693093986784959236097019808946199684154693774137768775481101232410879063113192982221938477690867649888789685214217929564062690747444202453233953005881524590172232256711594516388926249338250342546047076836690505853068253939275357691720453130612390796452160487319128565110397281888816125990776371912777621177126045481749279888582718215623557594670708349768267972858554016181071079756073834936024759714842866596620012376434747323568001699153828859403963050789674197329576876296274163780811021780108834484053010440658436048113967903396051526123759536315296754868799072704866319569311997761894507988209674628647110738700567918543953799089244053827369041980786671465430609805900251375365966602776562754016089121144492615442247186019224092192414087577911028278873743233344238692438203463855393114930403625505160859930534168840247465265892497225036585000346948093074014530974322216899424045357657885638415508495559097015027289410937106430846440139345534282150023802209624576040307465345065755870094730721491767696525414785566441531566675994678569147820341417603673187656911372504277331116824561058181942491733837815707694084274163846929938587835852485333458469576466043326685549600512872934637280770235024600626554767131619418062577287975491209417096623931766475089816023457979530545448077226827168013424530152948133629311036538005013999651383262410278492595286175736820156904934323486142469310286736637905927219373025990280619751747506898311683739045410793316083104401057660265996384289115178230056870052329139891055764565330215920500735334526779255911906022661581996497709067139543527847903053916961213537861233095652527614013263171436996728785373835497218389036044574510333357701529023407262533779821373662001368201569200543035784581119784143618516348159919718041262602266108366324764621525814662865234401128623317378122705479006240382789123996368638310430114432421453891908765038514793632174362515635629886753808108225865523096570037193186396701056491571287562794984368521985117155518475099772949240765465231553786061029871248168816532670321180100094746429585394077433111447293304561028988169584131673016814346029652414201965338289714658905557233881530237848401669864710628093964212537136028096356637037019252300469836781044990392980726766479630334131197325444091427103254468442524648908235235984067473313511126869474953214050133278673484811655112111728311505320203461680561704768906165672142950078464058542027775341876452017530213470066930806737686665151413260250888586099937401598866827487350243071861484493915855999570500655439579244499481393858520939420065152136552414008552549303287581419361079642412001637636459983551107799117590886625756801991585429185434403624117452647084073542886613565430274117206265482619229078108987381590194394741683795066608028955812546251810421625214029670298274888457852563814766914978385374755215796151742858493096587379504681770729690951038226816996369471750036353368659937998503007143033421301193927789301542864219704186935303080373453134313040561137995982725456626440597620654087889803393035737828771899701463844620134955290051564297224485273556599426415427300032521249441524875303358965642248285943053905087622653035878150500545595071519229347250982034569306646863339628178187117345003638544677713940544888857453181488293127842880572911719043679154080841653928384706395527535059184824384455320202938562709343266945594986732971798285973097142034103666287542469886842502741453552365926144243178856794458087829276813234921010820536378546327994179977948608564816654512667173387160282324430424146895057272265893667274384357284873452506828852214517295650073047487282230086962362577989321761492039197544603734949126263823501185187791609123719048363473289302140901897831899186960717960549674762629686902628248535450101715644315268183961135294398086250469375253224300954935622506667164930824391416026862487874993241444624660637664984351889123331808118446453149105120305080203233443508788795835890996089364680704791275785890166318699838058306304587141741040989334933772546817208242283205306529235583005333186148634144384856183159313728798967489674668831300734383308680899133906134034097414407254864296990629268524533586087754772567551225296881567282854370312008335299118756029243231231506066578485884720102437773678919364099107016970916484450161034696367799461592868380685592812102405350742810451071117801288588568693902026225150510981424288141731888363503174289563625872904660889144094631052577459072631632676573097148662169202363420649765805450021413290364954748565960478736640434499876582718112570363871972091655133221699959759288505774362235429892840331243771188605650014300519317453065330942225925216834181023359435807986182022429974138660845249422728218182127428624192373706366312490572446288130205201755308506979641648450912963289233881286289638859582229903832555240533763598089708277408587206864874979501531796832393404913053855084594138412052250619756475493489641251030344837115613135730122676088616426092519179384833618831330181038526013982741293865083853708162268308515982466604710373072600602410368807952442400429814287133356474500418819154330655544014075352779038256613242762363366306729893352665555571013477480375163317461531102966027078377563322888168774715480449243384872551256606835268830414871923191634454012298542489236493104665653987462869310495231755904910087409146513106783422530422776747785565012692392029632694883875596525322785607179787571278342661133315584624717252047301286771021550602789665016980986999566792426342964897297065585400171902710160691951287436993809438930699277143160742227179769604076396755548931732126842839611743602377770331425150434541741027468449124493283482636549152458181877171556124307571251944074967028667372154145163408758697165965910059178348172744545284889135402331698863648399771210412510345850492389660447354311877257459013850623544751336336191737966416714168344709458892948186698106842361080871595723090917793242184260416954699842415080152250092458516593540678766844600588089479701396532460202666106989650854537230228173310000919565299795483473395375796963417609182818710082262184448378797982694137197088239223574450888120313442887850474761620855280187297665530392596558223481966853690572992229655244079085702688022412489459731869016293223354144677171120804543879830947278028854349170427910391625199998173460239605661675843289604844649606469997827833474231104553019550656808126059240902760476261214249788807955097301248440692877243633720341192716599408721259473379399076735015047572824422188966654003683594729179702262810521036106722613096891995806138441985146093944327940427680908375276154570314131508406320181994120186910769452020299238522585880751298814131708682727382519776204042860585384600096142144969541049186571258779958925318673197716208044610906157352870282429924690877844590514993028078591001178211181266894270532268370492950909285867899416131233387165778155334019657499669989647645499638041970853056274520729506702315048223611605053300909550531503335025570507077606133623244288502718860722121637191632432486538350304056254692048997322728756961561683799214733499895233544061868894018239669510837976022507568105596419156825580161908534622887645230564778880317397011914262430890922122251387742045275203997482392582871572109677623897184832940253370471650421873452660599913736421802058766992607335560755675721077773339044767038998280835156324395285533394052300101006009848068020697810118456691361808278597395624338182822766961351814238948042226631006342609404622460467423735349271875216667513553309263729807719567612948486916248024113716157649877722759541328248726248558868546396033022422587611366647341267923186952086808568173280443413777041637339347441517972552394562225633550214790817697340680676927383547804058980888099380551770937012886507248449154061839975591207050238889591028271952687760802063670791625006386429098365376877044121349593109432771008648804872364946686635228532663804490555188143090903695229276515050390060883286477747713082924362146949941978014257932558412981845140793165139501403781507416546619633064556663250787454081176020937631705964971736447854151767029361350342234177923227570503536551963341871218935177131034823427010908446786916972580844136914651582881012102319244412043603607356449193010219369698965677086282088300182947335364698364598339381474991646305530060036310631147817243018257353672010973402366346682329222477154211779007887752571727484727037828523469054097272607115849850113064718261132489208237226390102721063475247490758327587910155553464134603357447238939303283792382843997488959498407301486417808451014994464080704420279803923561024130413099625140509222285723936658809301447133511781720800371789681735836111959217948036266764658246951326273758936575530611499500042108594897474965961972591537804867158542619010112777066504062238680820315063810527424933561458883939737232916029662920402864025529624326750351883269893427038506539294420488109875323004753529227039787811998104043311004449943140557154964888603284799983356498730784469388901609075868157922706116246067477951645085953124985096644195919581579078799951411421942774690330230241958294172279955551567738215158966926681187248027033805196723346989624624806001234365050000495693138490406153350348262433992384171756167510282339836576931092802021417121602235990089684501820213174366002112232152118975176958351509273266795427685909064039921027355387536595282579079584714503560377878107939641763878229629766575900383838696590494291609219569285852798026034593810097543067983310872406725842968113288644626273014988347614237769515758049100337776584869619483111939323366314033481351652719884298661862253549589904696447525654452711702984570557871986739497876865909052650531714434333257871063482500483183625227508077672905052553062297141263871840452611319966322765984314355537083018415169232938826973133753699740715076770641676325578516183271833181252918190801609589785307192686746382002778529463166104270196633069422471665483422128117254534318292502648645555749476245296705344043744894828382676093227339897095962702932275858326294467881148413685418104572667793402381976300173004166464425294869634656107710892194907402034784790624661712233275926644463641724963703643103964689992437879220067527056575742709080844213654763642168219215586253348484926433343164369131503090622923927632207883411854626064606210690931029923120319242704427931934373723404739241587319166466450750506568329591610097224154732569129415335752491202797263766205022261787238732529595389357763471219221221911783005545168787058065408658875127144344436648524302754056457474097186356775639604153636051719755536948578006387396010028997850260904159223097192818584662915980561909143457982678537789273443688431909350026159625941416262032622911180047265205316192349133088562548335436979386963304936492399603956429787385034350889421797562088131710078469743013950492991488203824808862617289532969030101461173979020626886103051379887475179815094361694669968024375926150095269811211345791585499948870464103827953708529455696194013806657397016284674919800874971176460079675031936919275276909072073848641907822434429808387819258704829311282802351987656717150309289007435120903303600594930927023792264551621073349106294040192955893760430852524150292455720774276109118928349582793152655101829660280597570268272758475170678560902821688869911911989880457224840057538157846168631800700736251687100425491947360651042720753898652143513532483696032559682904337071158529220861844242995570051818373450796227823490160831467048047243562074052532962427252433489277427169957125198038296508165523994931237870031841036935728523826661817359107227529798319852786589773661807639382754823377687838027514151798615264424112414731843274280296506599937303489698677853589144961966182843027909524660633855516057321079571220568899347693994764137988761377463798337740754226194927139378741070991613019541027105595591382447509770043959277065260364939281135755891586467458621336108922078688853238160898812749208966063721959732629456618539066173588565215182754874791442651399764493404241099719553390813104348053661408126233410333796102403364654647528254079542143550024320788068331823229147388369337880283081862199163742965363156424644528426581218715801862093696102578144156077875854922309775250878732564170703670074526030671355046970467740403719128075220343262004795830699895952732515487217330019063206144554552167519871586754987283978316450922431835665437979887480013104496261354964045559965354005202800157202758994512605676356972880182370980994331025643807470129376735484650001705481337810420667407609697405757550590726534681299744094600935516171016770286381262319308417332612050361579752599166334291117360155412391544467418459397314958364307088042332625339456903527047797507515059156942568178929293145597951041986569500324157242896289128363789280537604038212429991433833202521572788725095673594730788736209182478784400488194171859117729881779485125990204478846770904172536462421429511740231874871602675466840569833441117691132498104932740604914991939486112956896217103933708222594451900085379422440674712092843459580595737873735668417649991117876874637086410715664994564477316249669279476678262975306701132768031163067002939515883892436209772014771188212285097534607311105385258647820342321752336722046127404871678235619309929836840012497525472608604125440730837314855047602431229509812308131842278548480697051477859224084838283532311026898067057111167472944440245869204559450625861354347135279508644632294822710863082604402121618585525425639744260456236051080067585017234397920700819963278242407948251411084174050248218508568019554415643549208869763755156546157007782636270882620121472492861708385454215395990558686620126335044487390285418639002617506098330712125346911592795704551267916500768738664170110371192572895130260513355659572666537305741416286439913821126927854005730693708096844628348771984177418108367956748136772897554223156886025642181154691465666167904841431669165011537977224867251432145247424774853652475752210558032951963643202107301921442291022332034804546071630579398185367524081063275834823802110216882525776441591326386847287957853329125816853893930717137472301675238252224965391730236913930186525296519206144027174162182708355053617653962705410046290950443730133563126804024836337396356497584835839294224371568844129903108610636934490935053655103696528833592302512990689455075155521863822450140065383495259292667591463682346347623218666826430743533491351958974131814471117107387776176279308763771101854276355723175417836453622430538513341904661495129483282720720627802958977017161790402186573620112201635786943950732034850876354485984791221910769306501062189853455530453160646197628904390569385929886606965133930971407675654999621220338745003772829984964763818333418068984520456765647281228147689205811043101817366281569080193882632773416976636317475566412531777615216964318675677578056251841878962524769487931906064149287780167631635888297453475862566033255663765163081541139112336297864977565710671058109449677334435075294587492469146079279418134779853403141569090847466738155625657973295111075534896673677606055449245190057313858702473601970432694070571380367290992163661783120961864821109894243635184640925395267204949385686200785033167828243891146089076641240736269545860470118371913297559315872828382426289582206284506976003537803694822361438716433091598363400955862594360650496720029538286705756924937113023352507754359239480024133872530999447287825540943331964425244588680933741012664948673524918996872004355459322322871289055747931349436142715986285823885098204062492628932788160648943491571869731043561433596182648919317351611595918305011447025947217182155874404772277036123128816535480334500156757960227634419242886387852123609692351837001572529773878797585883668876900530707788322252177104384543879860840295855423371943355278979201592662334986531590360302586138307835687835186747347466149591457759703367021464703841390435840096293917336776831384898114812932986674793602726836623233250539010042745667192961096384053892676893370178727088956164693517255520693409849460440079740132500592042851844030450640220352995430461480490414322791596799041284664488464647568411804898032566286210971764595065558244015067599369590912463211170235083257480340145456108701639799773034789538628851401843622216567546235606305473576260173416172465553515780778984065789652996439934409605099516787426907140909320058318513625619470210392129834925665486416056949889637622953558482178036881811587933867550244738684721338767650460450945401053334363232540579226690320996840533663270794944927860981837949267518867070156606466918509052656215617063261055482091468355641548922387721880526634708574459833388322382485559100654149428760500223760755426170115088246137845263630851490179165070497365622122306442402287543868036802147501263376245639882669824139420173654381015316327741143642836283042751598126481570334172320903144659812214276945909207600872520392981683156845722735452965000553717822715163502118509958633663813945570895293768901885379611916588384431303852416234757773661855735300133958641148662798894264148217673153881595784141823431364244184964031869523501443150497211499387969150460318184339933297739000339059798302293161309256043289563721923247913995539816928559410794420436163319995428507726847742586158667395513032419178361777149865509226253150416285240047369774579592796959416266338325540379541606036942144793844887303418841004535415281943877455994334047759736455683513933979799756623454923253042783848418121801272442281662447439604180287487790435031400526852529960247230557028086150598634321263223014488694625280836631363429659099310384241310605921498846769224019160070871848848805620380901771601952860095375227865815652192277142170277786173887898519675568399093889026947715709736155681101313083204658570166495309658781915748866528800531107186747139281082952635850804349216291069538043532816520475626824353965557142224646458741971073824871877977363958681172932656103097964555821903296226105580527117625240023072464323845452201340785969800516109742515551678226021155693934973348321502904372855625625857814098255549904061112351508370068917976039745785683289051441047219089518574796211766397876583629388307715793879214462447621560202945800571833977711362586017033368428078602630827737620282354403726539379021381867234365202165644437005464998273885563748981893341686948540605065190841436270327201218394118432523042830102684299958363949763492148422152520043092742996770828380221789700678338864914868146339275102621028908748843729567481384178997473785129375877350930576126946184719235793292234481355324810982989582923231182830662130105533191032124017914509392951761217534470784924413079236396805711457173581839214183668501077711738966182760447743043353219682425704369726298762440584554822644249967897071402084083191959407111726866409711563208341267127130532040471921754247745009477372735794747952808442756010896789154828915181026540299928029091554117239945748654184565712579236345489428881784871314196370994457221025349169196511629896900314449566962048179422203284976492171837673277842168273153577888771323175293472575535606988324494079244634061591715567708829350379903954828100930116586855151387591770419446858163308456904886709116209455651601647613374803273913902221270273030840084992521693996530137323696433007159212512352478947405766214037472795134943367229307938244264966237269131519659318246590296955168096543483473976493886654134420039737623226791977194287935173692437714166930044551003574084254430703298937629760206979827949279000983821187874931331296362295802478104698151403119931146669640697993240981235065865139758549124388524867160944803071588682880465269427044199052274717799481310296969103799380702057258218245980069052958550002364256466017707100621705555175551032462929616519991181544634236264837018400222442914070452649996963442734930168105109287333382042309828158752819277669201925257344459220572134232636684203705673647133943214637899616495015166768279193649060850775113140357409008202184919335784032149102788024270110913688299868178112525801614346286574514372443882490359047762654640896301598846690261202259394580602811354423542888454606573340836345815841356531110049427031710395168432685333831431216043496800874249599033908019872131471491891141208377651670432022399680205394085816492289738224567503942731199250723097429510972379725814651055196644381367418540809775976978363964072447964507180828641391334021641711108323074734221045623493046147030544223434649511364540944982227475038706075903654035176114634167509349336603150453464753044521582010216411286205912979588517795453322879446663522233340153416476117323957937272711942686001744334376288054222206708052895523717139275542435981439827016294045985262003066482758761807107460697004258543994599787814102345494761232418056349848037558293539734233736863179080763384498854356471263484658683691271653792228339282928013982384602746101352594762733862474157918002078650811248915894161628068165180464006017285875709819333948151526180145818752329192623661489634714377763263329054318188747517198837027265039626635217192502021795172722136867002228791087406709609586767845712290930751690191234233309063481685059248563174285035586125522355404223565666972002278940331503951147293060248301628578661699770664104673144130726711945600816945384474945958643847109349518635057031116574326282198187164972915271555476378543930622366061223903123195156234884403006969199274470383521366103811450336710571235149559302803323617548489598452238621615858764844166419674374875219268104711280822073688558739839775337353667800953517353755587439051227603812040882105279843432229087713755785760152935592209147997593239545406250176270106874941864585555453671468051858218435004457155223157895487251406607641092248336618855729093982583662813270631842128925960355918185852674797902603985188814828606098447158028757197072626878860893441528872200889881597009419042876431094817266769586819481433331779385316228839664820618042319007517749814231729054608469993182450727530928482162425513413169736855069441090378962539456318784017456472596183812650595870473949102668262947955925442194737188004806911519354648405630414735262760525388594761591815547998041974578304089246276020031939028621450289636597222577034550380850594920125397527137629029484074460302307932952043310979379247040117715057171662348422309889731685624805040922895407668678180441305853649812165515699644388126681615245032485110040436088015145624454309044695529216929679636996872919359976784611585994015600557700554088277519189199708315265792857607658265028410724382371515263262777388841143815452041921808129184941907711284636280082201981345078772731381645003668817648987125498792105814651087422577680446833674928069956217504179223614695574326754453980380553060226298239133670902705537128520175245368858240729647372061287301115201331741865521696423820092479740828882327142768714752200366834186499155683853525911279987968918968258748565270670111511429082677118722131292061090399039936806681452355861494712836697287728322550286413309920598833998249147052629916710111558561974647664181199128845273184707213330682433245835704739318464273334929825105210013001057501800271290437677730980977980856583440902788028734578289749210739760810550474894080048624406952968866625365340269219088842050093466628716387127027160638652590261055734705661892764421956198011458228714716312261142010619135829032026409967661102982398003505736611053689888463789215182014515823427442950577273720610279668364936771689240828456120553161855419742715316489305978449547042593449431622994883737974499765427365022817773179405607017837694914188355219037347043415885599005206677147944419786610975147711029817946464979669340504725409035411321852875809314590917836055506040611985711494093473231810948229722532069291521637686476369999773899973945680289752175964957818562767750148829142809600188407211019330584734879479203827214120085161684606418085243322243624031251961141177071236577363046276823256383773146629895012305992193388811531141581425901838512131990349042228314906827938309751760414925711886810436132836136563114074029448580770402424786705065602608983090210659816039505793399226126592120673599428766666110579361047372754382407084008714831061368309177091661860097519976615433763346795020432270541981063000606222223291770057917464033895374761693263743870147415826478906022072398898542600301321177821682014266316080447611862635585761006204934937006646062279139200277631571889882780263576192823175083359083883698358753021681398898806784638061310741808711234870687688314584653827349580005226401395394352592240334691500561866488521005944755523660761908472201754592386078440019095563665703535908782011716386059055002014086087723757757269967382429401104744624461346174582674757996718650319678878773610163408039039592464533702844949670777167906555990832126016119553932182398474184688577520990147485584594902210490313161240589475961852249995736713514086277654935881909047774192603640984822504809020394133020770905813045519425507543665353607672741843390605218789042632287388047507070732990565188704427715948068604436855900914753134187493593863377799048203052077365546329199053513784050125059764384809609443033809391398966115958893063910140120943742364873030368141647192293308515680593342684819334522027373447738459082306987844456905037855960052673792172776554491353237145823476838778582973713284851888431924656446263618222130338941405660445779787900220139902862223372567195228931371793518794582264947057035501079652442321846212013017797417335295430690378256882994874796990503517143139327840700862290700327761178237181889075540802989797355909281539499072634651155143130146267500117931027773865985001353536900721092578442048024153169312978461227469190121606371499678809011404113772811542226714659121016018509117493629873688840820916681066123026000633539439659612510109167581632534514786454714118300947605265141430251908594042573379617261812054174209512289522008393016826338042528902483404059999446462948480076835302858431373755517859991084239024663655781105446594090482980483998636489229000869203936570208880725808906518829871936105384547550809999521535620472700833176078977421643649854266762830317605148879373917234649722432975589949420330746549762326062322900524177261285911003159588890308790186113581033732060321631756575590408102830547859600510690179222213975621041404785560080677062824522432987002214688817247494817290805308638235543239041941544640192076452796097887666087045345580126276548183491513245241980026235668813250414167478440436091581691326496494236596262608752565473398053091682513577641263513019139440019172881458280579386574691317800697703784271041057065565813812755783539077527727052271480178862790693750708350445333034136747395386129440671107603759788588262020624584054323658097796625148718738362480114630992929304769740307146697133921169982137128872523713982894222608274781299630035492256447479118623021377421962568672095277779923747007592906592321490541210272958475681786541136983434463072738549635975257825590818720667814493836747610006917038050573262629792093410659340896835523976765000920906537817992032705269972980820090070224483005031502116974764074190723242792299990031778626141609884850049821927923073446218251264498678274256825695995918986417533063277705635504503018406499164264305312612957464733961693521394183039823958170669128452204239422043273342836174008226507377771137398125856153171613939302325478883671370287365150663008970812842745111687643847578541505779993874033308005267703998142369311758420104184439172599217213092792287895303032875574803888389969865160283151450514830244868710499468758324095983714200471327019077684230065799678116227288243886742288092186569108450470237173919568941216126369687393780043849478444536519216552699330316415381072048375820849679523580568010240140275553287776828092296779892951695565656823172182304638794247727897736466462267503909616258350787451900282224182847683838061111820688471750020448998160947032571870085115485654582899912521802614794687561593467279997745153724926885774020082810143989602848712859781085517765935734116842892772409159186578250876913266812534944518453244678677301281518018473272172767408376394745127915854431509051940734717087015427329378887021500678436554658330749063336577417473619998175511424057791891064608012217772790941086846814351141507017784907899909342956276255285643010292179551900598478363485721927727799530841002152860725661412607243852667503662187615656188096778124958173183090706516081190460637811561315884508993158467455207748260721706614617037536699828316484637435692812166729529156379898692718780967040596357088696612925265533193870805180909623104802323793798941728941905090858127361037560605970400281329403406536629348709633069184820266141837777858162385854254668325050661893917437100628724054061615638909768541624732748874886690612760151605584289462982956100401984064306982177856910290370347541144142607683232596075770329668693313801609960472641091931667598328093647047085035395932221930547234791149633044273084526783940954390347914842825459563887038361135535739395866476091584606227099703005428766497433342213706698201134077860580867989151042794166005758715054439575388710279112026819572350439719949699263045458529408522397150749859711493696858204298303310323710754551440039025083961168140894210821705042656147083528817992205516455283748514809038064525098888596922362631026708341099857570140690374052365438383757851006825794629824832693351261946347132769896792266714886333519254825431794884212681871153362056506579329766380799210347103875203326084739122210248165633724877310054225903648853650731177574993145703744514950265698118271912532523855460122667577411355451278240045598109872340600901531626610710451192860538430726782835186543682449807316304169117815597704647407362506855083684520159876344097642704871643404212780974736756524667716557107615353180988594697521153584015544514610728004888719670011793980289173808509730501726333068383334128824522027611658842407708184683774672659857668757841442041984750814192946872034134453506251196240201484382207090863081941666949318230820192885831681153749220518702977179928458728754447552550119543064479090936994496614958874660550941184252249902535587274899798373173188085153308435945609069927305716428976158713364649871738538348595325946456880780931728875742548009273993706004851274581946479434540919674663578544145114580262118668705407286108330559569688230883315473305641470707830157293122094969896926891855603110982968007180160071588278367532392932780380168692607701508562280824023911098558050009693444322942525355539993801993635562174527001223852282817587659225385090963205038835586186099132670717604172643316870341059465923238399842246021358184008998078029075560714823763965594809533155322209708889694294494501525457368220964442787502638647795748928346032247345720996440079683469558620628890732256866504501813819682787450647414815250751458008792944456915252869317070650278417119132618608892846661717269332090112866324808092129553353339680120340483033120406550009361077783278351016795449466663848573117774779304989186674137049656084536400003649269785303827605502964608065676407215764787514842041530758469685877152538080620877292434615290517882919077642995509047288848406655076043910558943771002739708948973318545931070157502597726216456582248805780445891211817906587943205482603900974944930467785702175119424515926762903475577541706020688134010177032959747031049968818033989787384337603286934150368185586958941386679103321182638364896522124809418572183450857444361443404123674360760292090586800991511839289942746813795648835712197457427767236224653855626750071506573180107339993904569657157047980408515122129331798403595988348471764752885820218571992288597861356251918526010616668706978431274390515110747463243523214725934913800037054030045458927819707055192542982402936137050450143400031334045637821832698212327592429248812786956460155744719470563137586700335353488803792665072217310728753896319217246290281674607770117852598435903480352108693730530016673463974762500286714971630717300200705545573344648370652863386006043547105740443021610121150071294895193513009237129740099454360434193200511846587502579845569842725972848940145937881182026497030046183478465074392482993988038093760486584288088361564680684525236967072748337451410419477286448986099334893303937678164013754924849188540635231551399151372686550648197756645876836251624335518395258579779941580456685120080911102726083804277129665432337052649660718412615044472517415770049993510875507337777212002510756704452529805903564075222008577720163598424490862628270027489886335666986503260672749072268314121471822475129447223186970573031620123179814622752490368317575945906125245583892023703706301386335030376918354816746125965553921802092333417195613460566806337137676254611678709328107372493337598410723270168701800016112382284073463363720866791683619391372352113374071177806693615634065741192788612922379144742288635905128103710289891401253485146251975718097651963114804486439966774665826093001985462184297723014980924499087622907456380489138141591094973267601190626369023186816159128222338285908252989521632166741871378890877152744597990910033926639276739274248757550054707701390260417716339437135802705679858423793259662447293728625398025575823804272204534472104486095830510314380980377080420283766157782264913001335401277429869633237362701490235736780578875724655484237579174936239170684146430090818892606213974855116053984162396947329624546046380529710668291767021650540790044774637130924209064496092961811185298582994746039100485472386914646603204549990543556206718456865722118260813559256088631521514888132892309439449521254759696475738947241832366950930379976833070953734079679941890458682806131101303680118848425529188556360150621597489311059112648855193453247652001614607216183534089433725559251844887150074639600292295911697733458936978905868505658474250794313477393552652990125726917725510475168620085296440058355164234551284463137007436722028964821396780286353769539411306846236755363308752657152318835819768660219000759668803888633078738298216876622702956000882444663048229155114830513498265563158372204101845188032311667724021225635241724300651272617781582411985006242083895577067311047999010717591780777514970539313099159343795204336166975194206902766171520484063049466733961050485085053959567390033728252050001085254994665839245853464162352196589639038098285929094880632541674987564252472436231774480334491101155051214816126047118594886183746286355693760756987017570432824324870115021621256516665715914818422324014376843618648227466422327692346337062871275813881039342852189111922718077895719258431522644636928874149256549940982631024911941880116768348039748342433241017413956163045871500901334919147794762515783859475575454071919523912166683575451378909247625694328245031484987891667049615929731247269966029391573618736752669345859359315854437046512946253800386070341922972551319112767274516157136628845437305342811093827000298068171341956507010136133527943979070142860381706523581026626038283427456202364202846685673081676275333389001549297750851970003991401957084827139806394042736768694344646944658868660386736613944234162967190046255063588607407559341798532918284525297896151684566260689940502254093143720203849889671540667440891193073373036679027856622505782060389114459317532415690315821266340539589854984070370939557941263093897262144758841704640342683778297478968864123606147656199780157607759962365864531175467635522945278820034313204645160665113394560146532906206126359310838914096671118307473344849080022244398085840624875647462270974652311672269162903249920556322752411763413367774424467494711374797067867095601053354686387256995870042274207507030481069135295470180221153800278393145007263889852291952917587504901596465916437040171895136965662438414632255661560179165983301395954335643990424005797581630207809924984607361080731481273867735318520130623322107101224724237286910579071005960206233279912758565146720316329075709208372238335971340507074941995192344885327871539136550927534865000167917927317183244509203707132329706435094106353871982266368852455593676563389780600824129981464536211152122733156235654010568560368079683343654498434874752416211614016294635189685776172961413856013422110940887759820655065112621422613073214390094748133955470556553322095869406045568220997613060262771858385076529884686979119449536142425670540181828041214362109919148394289175505868571275923499283891792603437728828797526769255356731316192525073223489544685964492060542607407249179559135239066928014745914583126898333007857278767391306388774918137098804178780339489539850278960960166064232122060130253804251495456900542105733346871176574090868325702125373541783071304264463393665909010366979767613544917170284741398440794326973683821746988110161376089435980343106014437112180017802588144048132360042704396637741033226053758067312686898622740176380546987457748735661453216070800282190335798167997019309896373321193953822621877906621991276351912201098714485279325283249460082107717012131596703057028807635886251562534583831312088121946652218642485764371732393058796132002547621871034347500685149102437244158563749779420551614043035171263317605295073471683229316421224916972260043048223207915626055720864041226512094341093703605126679082609584133987082647335280088193335690465332022846355263735026652579697470596283778758515404870221773573219633282099488275473815782431104676353483758119420982194739892115058565262549315442437326959816086847758966022743814748243425625363693199554666827111441877833378922860116839619077726745642001033220226593241537229600443975651658436996109965233937065460272047665469088552743648478343508743999163234627251525778510249123001156976604047087321453594927455276790296840183480121828591430908194050966480751047619996626829771171532502576364088530554181688884621662906586737083505428170722469839816967379761180092404490174338773863205928135706424485761814381768433463622052817405214400707569913538367510788986177736036126809232045746235932524165503389559207315246243471205977073358867670714541109210506368836373055818344718901990881454742482824502670405134954293085366410394179942481987319638015429681812409224279008668510575092992865770693076830732372745102731611800524365818505413641500857475110531003325946327902146591992256434621511489746937073452633736967640003050788823725314394707702546063590461316291100491817040994583787266715204402111067410702683271689581891604987438101523700314135466770276522217646428586746410933798459353227878554125125954197708142162711329340939840748521530608684501521074031319477224654177329825821722373651675094688865996556860022584684583513334220006500072771843930755053148601355776878767355766025643863738479916092450880407558797462378670329999154794812042591389592801586391530285506822370776128611635668124475415661360042307052498952175771055797077878069244820323214184227390147503425979822067757196649202746136234665567815850963491229987057651461510114532647223085824326800711395793373252866573672061858747286962480219907859214701919148327850473360979240578819542999168664686919366175883283306765438653550615956198368839160592425983333144529379217716647434870087303594693419305969018648741886598467139042293198084310671944366081628934589445802239116655743186129387808282291417102903020093310291904179835430827421999917432538237790294501195430282146188926266167327983543161863207840945878715079191409057164979480659583269579509239539570355777678060222508123917452950515105246065329466890901000580633480609656036432634856194240970628624673881227705865779708480936402722888721155922343559190879012155227421313914692674389041814310855511169298239716088506959444147092454362067989524030430612793682697497098239274747407152576180218450830390010168875811028474361577044471658960669773672411410923195182881890617108975421118292215764136608811672672712320481708734010717371420664814568803782008094797958839407225809695874368036777391292628498500479150209460230630899142025897258676463667042643658153348100857437375001401448906231344341647066353040672821699837262282889243272192649248748901580341126042556351178434015217178337942099592663478838586481406045248032256437405686793290250615076921387358394046831918692793134488793034831232917208383921591641933406358403197824899387048298273145032920357495771859998786703030161261652306946687180157394813670688851881142654293836547828155384183462739852119297041716973327675713716969545776518492819163491071897563684940961253565308070577574318401790756210452076217643056172301848937851268289021713060869137665197433859852283607751172054257475457470231202129840880679950862852613575619762670566592227521684526176654418118116634796078997345416510409079548286116706194657520576202634026807118943023162795684963028750493213991485482199452352697767869007170490471969887477236115793072202053815863556379496929619246005129156701537690183739296402654505029537915122244707176523919094429177912376512759407188844745496509535890547831885067325237992905914660284020821433193020365220746534754090487466385403068897134890374879365066168160527322416886365850811744948728215790979680000568039973136128972211629813672044540435190626712788596446685947238451060356743879495602024177262123008502348688694390656754717112999646443927222219272532189684970225837555446828838256129740488492216112400656391194319415868762532989197587810411211515351913871199035831059206852343501407861271351872733514705702017200515898097217940555159434410701963832625221919544259510746485114593773256150492273316670267005255857113301885622384617354440695834223388534142673027892308523854564621639364145035500349288170778589929666701714035497715486259772694838207084479698678469474190481876595220402331717685228496854149396847921874310589844540868143531673038756743589145615044152887136702467533726355991005812858936900814433339362616157189017751718994462676444018573911647101190432864191436262741193389781619877391769677969922234381875572532599838005078687723987978437218660716763871024390117543789336049473539200311917114941900892252847034215876958651534778729580421201633585099662923583426778677293427260758938461843639825776797619062705341063299234814695525785623099061370569194729255326517458263409131400418093484678323582832371300113149530009851585647886086544083101706398596742488487034190071269445100668726665090514966973656033351650874715759812907349262512018779814404690048864460313631341012365681570780520181260326551820922172977393570153481966413925290736883115589091156706537110944056913069187163420161750463535390786582590989249862639746548437484138595494448767348580660598919684813678113837556780753785447957490466889150304128423985609645601928905361258545403901466309236552498541381429832196586364285717630611387456219546722548899171522881391348703986776367451636937100289448795247213951886893189615202241729411224908754316986744379794030377197918937293324292512209986711716208379939346987793477888647969762645676593494186174231702877650896722495847538221652314956044105377893603758952136001664316632844425375987791924066060109656949225496395241407990282702922897527188317279944853741475662735859256914384994236968112080128160408306174088191372061935403638536709739908320449506942910955307125016117582246366728047394064089228277543516048084941551997743087476007965602522551153078993236013070318047401884490984396420271630873369649560520545915744154830658316613146135995514654957796080757783677126081280409973023109818529817868352211388565146626380365041010923948684513343938519795871339150447532058815185471442583311792087333609092311529272232006373694594617633528789765928627854585102860015941720335003453939924613436207142225197451266603397901980789629311026667121313759413693264593634170344365679389782566153600201994982141599974499190089414170892369231937958392084259959580104595224160985469541956097707195245156814204301989509067052149426014160253636185493564162206126549341320319670394575045534136149350184734900807750879008524404532366234164909620958218146296178625671401414488747968984970990045622181121805162867935660486170198637337866109958371296607441355569787269568043652664022639562868015576496636268760196468963011434190967921636235844043811422092069285062459263148020782066222517535330702873485547372345111231869320350120387289852549070150928306027434548598079766580071434488463480208077174859823592995802443927725301557175825283468165568317506044080010508169846370038457911487934193384415207764102103264565951920710012129081133315278610930433336949314709830286592023881300040392542240810016092252546905295882801468795792571689682752735892491746160212875439201140838281908203096126442078537873047404059488485012394830898382335482748166154303839293391560130691605440404138357373035023581074541193564113631642274086814212556865226571575340037400979503017364154917268323444755675582615984175974000718151078872720536060594082202429289504397069569847038361966739200802627817923065762007554016685393628531737303734246261422471100471819957497818470125537867940266323537887753731769982747508555344513393995992238274808781698540471973445575435253921243437360682050919719984454452493283845657748072429885469623931424684716424501908504096797774916825728325905226226965099303610000633126716786479302904536022481311646332016643466592977922871660804560841997979758056126943127391090239070932637318281781254913233578182074607224978954180874497384419340125188956620544516926141660003513211646817720047444829229446680454133455747694244869445283299036081115051817596113856291147417585158591913272996031668380796252552592047477124458336134366985510469407344079148282749984296384162300471573518381582618699944730433879426568276663788772185660213550191324864097603688844300942254105877034067990439652063499422319410605679279567438900720894779149617764890714944125296632490758076217526120677870882352959127940638689094759361235000219707469812263173557790874272223486071581357411195921153660910586739720759238581652394715789833705894688309546676629534230946515959733886283738329161399956841543891153895966964621235344169418310990517321720080165058642982644176883336559121615659134641692834622113184101894846326436093904675302470939179882643975206340910708550418185836765623097833972228797036421472613756251691433790407435219659331128043158792573041842172393187725939909066057220243933908974854098562842192509346936337807544350087735749586454452989259696918825455594289109631211998886660634922783998519462850057843107449367425017595672292200819467486888199712686428738564452208752190778788652299353783682247274972847519307783626220941546657282506021930657445258627556213080590410019029116809017393741018038031368703389230601447238622776505646523253440487237093037423209729066209712399630728301085327100533949942189106656704863362955881677831253590461988818395146155306231108678102155458926539315392695459468367791193376582601000691708377337803755823627659509608458839594918652409519308873645256728101744981936339486715413328701140372341427262976954660048273827866281358524726045320107395118838825850897949099359959666356933463603534776196084673242088678785841327550788539685266519817195122876485897063778993391939898133273549169330854835249871968266849675987814136615338442390620831143844203976325807384367365639525074729784622931081525834739021184301991404128996467644604867351115382839602294823657071019250585005701528820705723688282780028510840121220759967866371498909699984503550743484841868488695705519691269471481571182249803545267101372370002081510944038972883251219677054044973746693266032757907702319619797421330753262803935817880517124103642578715208698901887106929900574434522453192926680780984254606002816097073366620696992664311791235695531448314583056319468771947019066952225054508057749787895744113969945478128998901228386715427514702650956331214329391247157783072561504512925742808727947010416970365143279424157885969607068980700072889984641514884154164531871172280769801693750305902080657322567758398836442258099541961310531571518026489878459554614646618899012373817714769411910809421435922121634757869717596590365142772353836605335285308931624080840261295417344721532585406834273671677396218824259204186792716716783582197199370844907511589502895358440824971526401247766088331771597268455143692790305465687439995685582228616563109005647722589615871372424166593878367608119701568182908679107827147072800074944798658707725233986689560979592001440297721890940531735203504931900886763493969533706577782893034219857343908250753034514466609726258117483389315520575878291500115026195299608532135306890769377450374309873894817575382954685216234311728790273559751210679016740565454195601654809206347560950758601976141562882817462296066981021871402684102420817810354806671219124836035589068987127831997536866217836664648834332658631715292803472401347623339916952356848969661136955145980876694464010197613911653292778274742319111448570299738283618070422761027143760633991923885709859860170862122304475841252821079713586752751565514219888257516720633406516471443165279843571587172359062225833311360323528317310397279349363493965208262106713192301967535594150847246370048116726127559171219327145053804043314591512728070634680200230039450327243092303794091287248551272208452932228576036797348075742660173057785143313315745759258954433916919357961375020095505557480134953085978238904200523972508073059460181432354197520043721753695018534495335506575266786254892529440238362800902765382846528504673485813278684692673502163117306398889084466686294408352369192514642300663987368409758058106040763012966982145831312293700814039527461799627044611444777540309892698803871058770049991747756509883833312087890023511674035441925344563986821821380811308939088061609672446136172008433197879244682132788285569221744328460612915760506543442542560595058963360514512302386447177560566299979096284048269048212510721457960128584091969864384502183044108871421594911436995460921236461943018235658603756392159997625462765039087266874053225226559267712581785975070270984790905361517064738154334716565998933159763364985468869442897377650455860806204197201069771959536275396753142616670604815330690786761974125971655808640433178088942383018132183166493746201574027819456161935165480216631888148078640761803494103439050364842696430540550158938342628049479548087060008379079005414979937483973263477354518725204270394217932189548925861257653956270588734314627795412605411450386691875571284440096404946679015755160768029107218599830310809993989373374804688896745858652845308096405517946790997542956096699610149799960161367892025029570152387975232602293675802108523679148909168783006431303561848933376232105877495175855206676880552591842575491960136080573992589047381925353323339564098648501047834323709155688064926753774797255093720077736509063937641515948781729905853537075105205684558353126402413274716201108715882055250720416358269007817071005570046119910912959928922678137968821971598123943305821945901038981540713800119509977033848632112855201939758760722217127021662527582680399901054341865381507682037104638617225869446310448420940362892905719281169051541148040677507935666394455618735204557149030494959143880972621593155953860114919201635491726040030773370855988811241374727078677553563998837025570341703405841838929188118163321817300761125885794864736495147818640467100172267031015145617192419688740929794813254218995834946364828535538355406974197066237021366171003729597768906754961097028080355325103756391439872823320558263369683806520621532864393506575716885606113685617093541950072811303244031618075492882518364023672230102914804098877500776619403990153041845134625639437204863054178310116319595222883610985084703287259455181469355039962952343461758825110751165341797452227055234607020970162241111717061229298948113699619948353241964303188543400277911544809577572579902167393825064804667916056446162687501401695355755157993058790434383492818354254579278890232144970159255262279353328010170657947514800666605454843598735738708433253595918739698459790115561462127168620531190630137629624651341313007052819651041666611270404966369059323960793207491832087145929981419939676183954535987601791738744963164267377436314965822474555614987545534708207880359797212460088660551029668843540725086624838762462205229131332678864287186093424734884402467330502138656766854705916404702992816755145962696121497801948644499949186020904337447831026937965712842797878035589219889581618626745809450023047676683625210111956388073588607394561480198066798647223358505714170355676916432805126892190712987303911243995815867551810356777170568295696778643567948678536431849022566163183166498895921223834662161583582106152819716352119784426796088998519623042760269541364476849369657977985744138109310749458336812588108691274665757123632880602185480790774045321367195119240802407554060122827067514126782739825475023196651650234249275580591133481006196476695684733070257576741222019223018167885300875403348288728946786846255924481394287911256892207820301454079376405110246247076038499507222525986388340067344964992232976196774432897165224554789501529721623379612315937191687255807493093790196863348113433258180066938783612650808567745301475100397206118171393006181236359534221780629680881165210068103084706062929496889680735500968235665879153587030650697743141530212586508876770824132185156393336126208719779883071765841848380199880570734665128682592809237378404956660064516986625665223775721085508035964151152123358001604664436714181692294557599591602632399210757407938379817753887169809394194570710026832578402831065947653597242350488361873559422407383061369479520867805535877110429246951681570527431220525660434743128919582981599431461316115047796893082732716512422252588673663668851262665394594583294846842422439250277807793886216449602914902685101554433697350269446775924773914407212057045770502146427991731573818675399443251514737500701946665975025993795650121260383722692615131000014961596492091438394756458593683347623387670356928715324387167886823213353185800695629935963507680958944352695117675326193886456063637780386835315778112531620831360648330103028761878576293266196878162525996224006994900770682210471176065674699876764879518683134188490027142761082350440612473391321327234820218442122417984010665085701591439975011307692289096581869801878637438444470507156325437495122527116502602401831193856823059894156823580032464742554477176970178145539126802031763441816994986745161649096448513931904014639689594558355950179947171911293827650076844944832155625946463672909395618967777940419646864003256028445017246438313346081421273243006498804102025353212871442676040726117190843310838090687939601330347951371190096819402036363231110894008287702073965420331200669455120102024632308341536895483906605972804818126478850705868363091452339432287614571952653673231839157714352158829151020046955480805534852707590865740032905129545042326954527040058631636153459583318000618337473114971907497154895687339652800758423581350576137751896142269465673063372058594585323643151881172356070424143972548434514783064705309267170460203137749263998043860778394466358253381746351426417526939860809947382859392266415627265286252380507110748577115531262203997912516317449325015115240486300102072436423603942730223518858652808969354596672900223662008469790788029628390325732155653573933821363831128600369051856075239220481488477450843925764775814481059460288539977391788388627472164979546185763111384486808617242985961486735574006013509387272936546672436783713127233925043128691237479343189193189539467871473511354794789824238224943295344311083104349569425393251180191830788829745301116745682507368443717032515222494619602216199028007295877922610737802546137042096203866625319360066231166120401082045001176622134267089499788590824680140871088941949194659860478540366118014463825728839446103158224159384288492107803901042547060392535060340894213717374219639680796202687295507835061379772625483201180850895749939443085703417008242745905597949924054137594521968648849879195671292985896101272409463130808293401288287200477706936713663126179480635150535430301601105728347319048343779446778881593455002502078452551478391619856023610900159650094194656015328982758109889094367042016618950821011752859187861427514601616621328127535438360722878332610480202211127139209083778943624311744640641699327586894833774739162872913962885903608701207629541971044698401498039214907189305119860496423804384154570764079596696605605861067643328107763297649214914149594808061123141349863890549701970029493704236275030226958540125760184427303764385872274353874908556058042434317336261611556119748566048289292969098233458212032379626309423679504703592345526536225934451666235987030860861175502100458582763146515137163272468107215672806394660474459788085172687047151024631806903457446602785898497081208607563109300385733170172395410214239749904572034566584223841883078668542354656512278113900678224529331875102963929533299225242822094738231697731691307235955825990414510432977442033967335045775652842323131244044475900296899386155388524298886670670142039690369185731532549398526531512678466671243344460412837684995552514640115949994475249535917790843287876069234505195517633281671225459598992373800545707869472323422453542365339321398045302367833544018265041616981054968981010042401387813667994666678274977050209445779420034945402027015383105615580878245846567271687523018095456143620919340796962270571198900765904292940080804757963743542869497061153978899297476787787241148474315091164671623804069529432628204098307069030003408819916639559216610666238026351780235843071283740983046236769744557497276487835317585982427782346637597489600621499793978847618090283772358603842536975410568599153104550860101759238920472534486968722683550386057484670436105791639630882155929558256424896304761156611274015558653954979007426353747766122742850529707800334583180464779624630302743508530547944400885339742306495851438304957861166319741357515612977337386296230557713242173468064883013979394075405816054390816069261270042023244965191879467777894528247486483516213832375151120068222847175494989150505303289716865448560584177500216392303701532627977322894403981045893233880253471409953678004648449074476901820645098405382854093596773862012111326365791582545998953547118582492946516668383330903266112745685666339727139109362270391005849816861224118882226005951091611159627738857709709689873451504617530112209890934537199912089642530601746300946682689692344076622045965028625459536099293252013377669191617452275778449085943340217087838826205350992778391437398799014325737171870047848454844390545315637451707046211044210551533787862895978788195402545957018571229383893591868030706905192666471514132901469522722310416226500325628056260795685563612094356841319523077247766072748796168675263208542899249216364275787585571958239430916089054129121342747469830740114965089849688829310221712598686767626970777474067158924472997342335763509753328280007978093572143428786933461495997433333222743105391090219678424887576151777635948733553388792129326376654420704314524120784694503175011692802865838645961364722754490285736998120248264508624055045155686843447798485377951898400453450042599522562522244790842271156776609035418995062463079473653607141097543631312710308816000429034002163924376449642431235722323758106757302646700265663979631552866888683512094399554020889379999971586746793538298783405352507915380534768159675916525362468515634069408613845275853454807392846663365896656860438854956933676513693989265774685865070607149628377200215199940997464380379855549330892727073268711082524883170329336790240928377774531660150031657908536831690664370007153560931328720335054447094348595085183662572668609158155708043904481282246663184025251251907105472093817290371605188518614807509318779949599015293774830955074286260797380369734870499400325310811179943770964296594283639877509166136013282102980434125344107754920144485230809611737587917084505386615882324458213293428428964728301339193142333756116228451539698020227161167713320907653050536862801920758012877361441316827914894276037154899097134739878879680657991399519079502636382745931011691448313676674564773606499860956709133002315213434722848804370254657192570585529824835150714960932899122134280611833631475604193628143229271842743185371421896408375211440732214270531961072768858355106132813649731470519096934283330961901059941184762050517644354681163114564241545574387924392376861239393218447450648383885878574014947969391650736842077494878786825918869805661895263565935063592593214177270069481439413736637038839924432880029843078701896640785941970158777236804616303096172683892691111855934973297137685462121489603127754696018178314912446123139450369886640214799892250187431732061486179403473559618590019147971510405935999936695544106889352097734438184056723315160864296469054971872607026199201773821880378709592691936416244744420277573673451293244639153644313584390514637975653128826156187905945855092895885327688596108144398127795049068021293050268084109275748226929180538698295466489031807610640534131331508668171959141288575579371926932165235283883850777727291933401838857234493348042518610807183947592548104150968604625109115385042467674930055536417307197379737361761391073409419305135409465019277818081456003884225734700966997740246189556158313802806054075869257341492409568878195551037542975603692782119562069024717434281578006145201183584614926814917224541605269447782160593270493616292965396766329559391990661067216753157185147130251884892940282126367642224914532876919900147843707552406360553123602190573805444667556138644048068468588839385824389143474491224680299393580517488351239786277559040451010171093394760897862964011703607070971022091598587644922876240258983457567179147447967866729637891904710943079393441002414558828170616704036682169070143376191221689602994052621063745294977175578442195803778458419709834078366744213046503924219361780887039124785344345024508445112190031326117934462985829541850583623634197165471313749880837241698727479508866207683832385001249089981526458791526774862291371394304151052044467057126108748272139219757545510453465721290172419484253274147733479451805503325863905393774880251262072836899634317320394724689675390550783144981176330753897305701520204526984647034747420822565307102490984133601906922215936202407933734456945949438015521454431774041721330920879883046560252316759296087430166835815653963980977132558888374572872969862169891690564795479427693752256992251144369056421148576742884292276448243425614744917614026308577744895392053374101584073422983346303018079650866213553270992452326630846747567638614754312560656035427252465961375737528515601979231389114359929720940333892769271396091019053916400408400382867150524528880962527961569188894461109783569627995973499248733658962886683621762100020038266082483500337174710995686687248774352683615316491783036391272768245219932159855293867911401383928675489803632731960846631994447348583643245825468318316328630107424316574950259883710466301038651733449555397473078302018640608911031998709588729141756841567508228037922417778364609080682399933438711492736813187379266842336990078627529559638337145451263720407440696654948447730215375940180513447590715004042339277337566114628413718112496635953605840716638433751452193492726431956732590467409551527163782292302205558541763629033841153528746150336948456333723482494323453707930823924266211723755610753925402127697366992258931979004469199759901866475035398480490915040241853445411021043056129317914133375816393785434614294491476453829079095178242253813713342543943530561222319782111468701333071353353717507672130858552877781542264621392721698610902701139790226354582903490245634330093810349683143983432900822837058146765266963799479533757711851988801255271695293476757281400250786686175956078237075887458823059123107201747036529786624118130310482668999288453502136973998734722680510068726143063299979470205156948710374352664506801976004950817933444052032249500650140723178767044041811322072360641997056938639880823367089788233743613170640964879345428489035792608211658222809381293981273382374157445357016087310899479258337598062821495747536061261105254007462863585519266163154416858749117315182323955998046661851058381165930056846603261404930127351360209749842301087271999493688057091431617176009251317679105169640755293931824301228444436570733383300965970232518899780116492250617057384774561599944107781037309921616158933693050318782728670151885859125908858626631013749307047015666680633312966999788104895938659308749044661440366013671145527803499215356893590611619949276447511982732933113842435145583702752583564564890217970384768055816644578360860497041840535278001945979575265108867742026333967627200138809295805831713644981382273693400975432106704828654510671467664688178795337498765619156518692039375952070741396399854747115342347683208168266693525629688092378575795158990014689801490907219603905605036568924238992630034211888333125721075780324667762516936307065078158666517474197493950024069928260069415085087139570267105467565355101222097419123420958059981630053886217807454568736438829001032276778307073379626343061230026261371114918729893430807243350482212658359605166106770286575127389349200699526154774804916514868106745094537765515105615450712871992484705983903059202439783836242085607547021944449339302179689478234650034546537706482547057558751806071758616281607427751591153243662236689344832169720418719756813828425647824820028491038374462987837211061158601451340392259092863813604544854703901565850029557490191053293369199326813342006221197909894639290147153254408396858960303519160032652568677311363615615644187776035600308381590397126637512914635978107278934497193963429702998113015411454443036135585701158845440286700321553490081188779863223008394517730392031737446718072071578965922399310752728188188899582225967057362209715723125963119941612705803564340903341893783356492158352397636946273444761056461389702441620562270144533232067282273334018299176164192414946370046778728726370312752209572042946413803416687088404279919317798315610341377693460518678888134157174048055637475521911259866902032836322423121565162157641686985049842042807731896296772431065880665885426427330460021718069616105820984694977313333772164435958448800574674016344313420462049943706928454298939840553037692269383239738217624371662309232239435867444534562772637184769436670825296345581190154593557100359282466625390232440315095055293050945085941748344635301314227545761518563288535815250108009618758406078686096786434846488874194578833852421054881185999756815919121677698150252130947948083719332954976146096284473359092399319451702104245324717364114444722176753913681209312741923927689102871607325542296577527881907241047121211212265350928170794018750263500049866481777282441451283180856274628744007809412430230554894450304983872198946511653018614019544499254602253096753259251777735662899088097440947097725217804027895281369548830224236378663509397744724091744893323302453828168355351630912125843749429670534429684489444225271979624727412458626073172378956863426324894101869268653812678548267895674736310787220153700849667020605386251696964691602375434402585619300204299002016136249290058722700682987887847137015869508778838078209717293366004759516074162687654641749231880733983286374271592093316369524028430464413140123478497174655488971628830808066604327241876113251075371272584546995394790446055098659741613965179248224732180796725927254789520475341908442162407830322376712595719841190735079728534172445106499582348395945841438156014992792392302110729213089912064563212142642961462021237585259201435282850003373381063974317398036799241523756603392687614055398407330936768313271569422040107810022286160574384925491861351895659213204993529561016275187000359668511014150503008419301500055287551583084569308538571384867978445225360716524471505248143373211175149285297285726925943806507401620876846438860468452615569307581790441794878883576835508105355354227551493380547389225356004963951457666361323959043826745352069367859034378159917718120893422945732952946032337120889126046727944385341140884136247626308794424468875953432563204107405467421457438939320186783126793658566975282775829607914247716952068951455807819825346519100040951521051271980765307230170436275317914610414044249702995131765363213159486094233099733127527819388547752454137412620839685553589257802583903423933060866993202828277816564678983961243588595877212994317242387934936224914710558493581181309135676608029343211654738943980094167529445879826054583927310527563391895810729206806467444109619673154067907201879783150806955663870464901609622971609757184970213397063714384791553983876089039311671675316693909947742193185094874151489848972051594956520328431945146752478642790733138943821261777136041510847882828607436598136071683432616917983751795770878862670346453648369934142024887613292129341774084015016215002938214482169399133135398509168735663897963735414118651514297800744487596890979875167700056272262063661416295013413367718107866036022603622735397819667077451923846910381854668304463479736400744438312826876967789689107320333551033381946404650347575080940617853468687820947888014076873161319187996386568037940634350307212437190765810156056907060277961025125023858183045367220770312446321789686016134602685427405818921523976601889325329335891763161993406615645506353290814927936566488986867906429092602259419036086206548609601796211470616873797271315543115859712290729262607074392251080974434975488251015645794982937749458544337212180362776001523809590943251303600007729188360563693993400922178761092391819556013658950512574583958802180674842835702946087716811120985317728161330410543399042550755901018303987949109646863891971127621397537226806997551098303573762281778044074458062870779201444461436233090288333692360877165701614556711598499098568081010493645315253383736469531265014262883678090829232115957137952749315946179695770518803592336797589169015885245818110763938559795262035849252217924290381378552419860305864813086059284239953632550412894525387592077585776195117921423450432767834422620558637378070317097486211169242598705643724791010866254595099554983620388960516939921403213934349621876110580640762271267658063996380330058793399683956379842224182025454745051265051601541641385314465313317987719018518472603858606840032780291510554201588048045726093531118943744982803772990244998862072630155685540480669431846098304397575670840192127763928045249746732461736608719827140076875183803158590913013754489787376867859082147895585771716318306652195925795402789708486204379428171254605572044565823215756964888266792085347555749759304855334374414573326847488587933778538341804979776830593973160330910245103931615344485004290626890875295955853403405650671397811126058239517165360622590115328088456252058862682780419579246869203716753753151446373208540161185400543305755063821713371018396317463845995836815589335189246338027475564413195066419190750808453333081930642462964402196190215897556628370083883111064262848803438000889251717640282920268779503475541360315751825005464490646221652980998472647228253584260893332585465304972253258290185844364447934901748308123344253727918811261175684811519765491696441513209924178996649931069523725090913667626267600795058934628651437546666605268311243025251512093915745581855729042167363975634629939688803396401703910343418958466746909542882942989677571377858083577759812628547169039137882545819706969767694456309293520191740654164109171332751295084385681803535463469027972149638385255182262187140732693629510439992720282806491571614636838280745461252042009133989059155665417571248865616463435487355258338014577827954598234416554514342034975936727350856084985821745450488216252815814962207773261951545130993955073628085771977979056182385224384071926808558468512214429447429210088051408721862628110314580819420655019119798590907768980035662606599336035171592676269441467840153697826398570707429038811646636341957269665962570004918976175411427252260251886399878646697708790794248795185580316068520079025246469240138757438660591512128191311260641828282445143175804024289789449932053560968830045046810725883609492537394640331514478749264338208511731509457875978121544191666948411945182910750426598000670887737974558964074920304511058984773651039064661371327958585128483198517867841747452498390900806145286627460859709427754796958839051928194919243605965490429716995647084911190708458687568270246927883586134436575290048145956018668842878355833562538719226482766543011076445897390650367853434161182709406566875349273124748645367939086574955806838154304817897820454604022891989699343605454859662044162224314491555053658995864268029265555208790742473763630602955171124768872348874753805472638663944295355521439826750598096070966615521054659293365782796171511632715603694784323591090801128049195922725576096570168335412520975697109272095077192749027376018152977145998087157869820825780623138320000181396332087059683088460027888698002504715609080774739950381676702903109372436176723403670282690794156355108963117438999291546892230059433360822355774466224336393261245204582651108572922562776424206186597072979621608661150842762536448772893421553932420517996519032497605457278612065753723891366566886834867876272889056945994810237026959750919581318610672510257941429615233155848814287753840334544813227057360696729809257061560024209258095720286382019373958144438800707627613651983381148914483380551440140220422201475540267564116032566721110184366656507207147172137575174592788155822296201644998097609026719221362665058514376533176734205612504913888043089543329044945987398748237077734325915435628147152164074115011498691383443241566295512206141843649468145664199898240876711470391913318367675319128232843345385991476102063767037565078697333619281326693991895978842482207053309305493693824956981602475472900804079770413258895784096305142446606935247130067504803891661567958464149245859838073993826145955716569378065651912596319165017446284101085202478634000763534238954839050748031000158211271838745016435512716410462704254687790350593171252647996283442430998326745663019997282300520832729157681029289623713311261871622692295782863388699619343811904119642384961315316231770344855633574139833307543553997020409222097790928295890764267230739993593954275927628327157488773787192227947766198753318415637157916503552249777688899885303713252038094169448266864135780047773509201175860397490730751577245244225760044817030735482474302302667656607667769487788779963110964620406869575078393942598664854589761205023170689430390344392141593434914497272766362921980730813980767000638755697414152279536485080346618216752597867231762146507180474745816753072974459886034556820885438404342916347618882764940875313938129335858597464890938892622853555614969239731201754418732771734422867725318411782307533690627481197996977876370192667862137826480541620420932573271740514058064902918029742159794240093593152690345706342947936895295940688777597684652458016062666255696252391186875188961176237576678472823122295332068481194102452777743915380414432057871075082860328098759559308436560581655624964137106636557077712692463487826885856750153234554943919884042958924463928733138027014697972748952080156294771855202905507288681960945372046258439670416404823221461940161549439552214790050706814897614868066965860561493214682580003954187396595099468267740782110593272435404181535611953093550992661592642047103405016468684567075499271667879449194162071786999684491306913034304685452149086997562585149915330978852755761555399662379703115733961797375679310142882881120204802359722818112786481536166671007623788491904999685995326013401568489168280515465955307858396218240400549253377344792303893331721542178249557809585778571839874585199663054461284232798579762210352509657730884472258888692632267752487209035767991490670235999684254166725085594570530837473030082234882274243150217383232327577649679172209955634922444144531510065115225527846489114789765956891688404642193311335414983226863231256060189315973735151077834754243554692505087761687228719762274494146677602981658168724530361750241922901430038196764733554949156231723749455633261925064408972279357759466905415779702925903432204737348448277552007305386803606104719321256648143064163334351422257248753238279309053685859603635323316923695002071547136862982262342334444447605507981760460552774950664212612974140146178794090038032543762535397536263206771911854198165766110437078978217803784593764119701786041295074642882711994508056736913467133685258802215795482623008267001110735842674478509150654586651149372963802576558671699035007395513457778999223393184814356948833162429769949081657581705778056679694439734783822230575602070373105463739335265730639050063691048665028984873155789702968684334889647128845018474810347776769496050177667267711062105791889807031710720207383735274340523353449190245858814703987909642677212661374020224029739896702759899379936673539979502941397874221714664064648450227998185689756652936971558134611419139119324035895940827096729091725215128539276071366076838812583577448469571605285733146342698734256674978123102970499428975131150029456352548623778460712318960379455729153962341020827602170148385778982356756480677915703284636380216944539241439413192718419189205712247135719465365517763170448455218029473547712655935064706554174893511034304048720539883384184006219829590135855562674684695576843186784807592081051949780853523969590075743609604235378617622462935268079990777209391581909194034787490807550718721899438911545572540884932426004574330870740482163185440412130262217342114439976156235965982940547119650305206699549752136186782599629676027941858278557483387318345189302786575652670245050200767222512743929690143394793500232804108977805804588489979533318229032274890937206532053634252512710744232847475416879674264217576206027497571814613927120565203707568705412635840966177870884948160326235527986218383351118814411242663085672414689591715198107524007723582685735496968836426885887451485699280662352665110115868447731065740254182285796806790177185043261426484784479626162079170460341046617317831814882573322833238763185059837801467498176973131428943175143820084124331983647101452384587281534298717302124013217311251994330120763855443576944869934335257833325155130241223239594076038084270850865063097471601334382611806337238207373472546264792827801101005624836627748425155874038365629160610107669571129225968068085782265168594458073893986743345935240247743498614859778969117963700916434224213582844817022199459018154691574895092914967955389332382245706285670918599210238098377023065152137114054362604617778113448859259378209945791806857083644173689811464265470564768341613117760824912606249189345966907071741339750704305777760998401838991675525189402522991157475275886341346798390613773927797937985778193136432238886309392634626094565561708159491569637682512630235411880241348147541111884647117727408977613483976811443557341212927183973724364773671627177115208990845876426354360063906537034054733317531268606576714608742114088056306809745482203682394872841869083515520067903345706750997882609440854197741079861790886097911215652737918607033720090114627474866081256586574124554323181566390627228257279611183545887529204530210783709151901291312445357768049583200621278168469032738794698099949021755299692519230136773050760532328109421018326995855969048265396445505989265023920093510843291171337015610870790526734507119303509311546696415244181558238568118257122942785275948542838649682199084263542457566382611374277790225542580823356244617804223015908546530516070140810072543282280970625697459257705294518092495863732638393436847554179560497429599333338566826885061150952696245888847533794452561930172176378657292413835938484774203898358495312765654881980161418728889881046069390035245198877248284161962889810493795395577856798798155742945858440443975008762934261375132184061876574717271870836363431204981667517322672463855654936152064954844544553439848083650500518708242980435618307533071169055361690996565562528530696963053976084474668138792263085534180650346509709321450708225401811066646597029395753869308287935305166486036579547666403015468214914548358539543177758862676100721290044948290107783190965503673205249098477576981765921971271523334434177994582225826965699679476151275835512430780360373219630321785511141512919615916980975088278654491259079697008645137620236368844630027107188095745869655217539192011342767495662542044850629675257092925796207630302064224003342127536230409080641197834896556519052430731553742653898610799593647839599868082476291260190279250421992449333504265104065562194786754188651627617384126758056790866945470901461650433958851329704021907726750868598978772910300085154535589690523229294540477449924382365597138903772024538405911751474059966934628215085979157980759642275676047115878718001197239942641587940364932989774050477095735555338088050228963084516740536012294084816005761193006273424005770749881788373609207447524426448840007677249891782685654955006519440067389072053391436022182680752811967509042545304620711367349591981981160613382136266797428674488436257441294219486158561756868521049073007717100292696013663165194909522633634995107213136150403258390862014570964942084817284310453654413510279579195868858531046587087924931018129166929449164114534729665922246602471905755713413883911960804984988562831877074275222193285391720367490041503872825510938586987269598333146693262064127801392025304486821999039247319819371026377506982304278638113868964193039827701904998089361515420720811885223784517407669740203309228164520206008344656726583310073638506338522158343519367132973798614660774980340757404437999369771266937992992387509976649445107570853026718077399418473904790851000390575804129227170450278180919406521668077109942188691675927896608127514927440385693981998933533445441134352470697676035218400083144180802785666502162639720274680296859515163104395635154546378242885311830191791416540677597550098439169336697161468687050292589264863322729902359811714366479976201944905621862507353656310727394715897172182891812235469494186980084608643981649708407005894081482423611745051179677623306842762145371107692469575414112820390618062368066787951859106702136147903400570146791730838975423646417037535023158073666402159620828344277452872457995697768491820933933502867294113987680389232997136531565607627318085934757369656329932041130160956842215850304618200545607522221263408586649057927902249035763767166041420493712562136792295257828943953016003591412595573059693349451262906872627321878181878752053108787543343985858137094703673399977497017405387894157235216190237201977844951554308091331979700448366610734992278140225018178857485610838469781407477251020130942467824469111025953839125696862247683657822556178263087689662920567444340835386163546334797363583696643680197157709672608923596846923608511581613730566774983887260308984932371559470822519143954222839054718359290616000632257739211998791107264748819723494331739445136118160939726173982170131818318276198353807836935812148191911915843844411689718176347237373464314260024952192920791721658793249073996117644995474553127019177984090046831347649621568709759446634982083135441566621269897588079430780197580918937269745733878185808744620933097633338876675770496309896393770436285535106193430782392315466800971898481304017899807722543568386350543363636200948886543671117706670379481382283174563006080398567151931602312084288431876464048757533328008352909717607850530233967948748175437221969403298447700307980771272033676907041572362341812973573289650621740935416667096265846550558782887490600089722928623452026048767069878440152177022601188180001714207171573340833568121805483843065302021519680028367532374378983198883362048216721008431560246799805748617042893520239215869547180188978644047089845740153112666695290668839256921623269459190542516880443855431152003796698652430141716298492159307804761859028409659067639830729827452190013210839789449251618680608174677579458618723619271876327698304351781192309291636314433074984126052912879324322195272701711631992693184887085483887008570799994598853402943542947928393568918920738819663638245159180295951068491876964941034245223704378217003510822061139595898172898664470715802068174597894276592664933938281273024163091448377467523651618710891980572846062949365724896948686443653653928135992659383906063771368113560539002657342156360398884316065895212021472537681467694317938409964029501315094026337800473191708841986474647543445556553655838168929193720665035262720601201074351462766943210841671294799353669190204980801118796413016335344071029924948091736243132466109044007971759811463433679982758133078348358633584030280755671228166575671852470618711649934156810231259525423982230489838721706908163659141653240404776013132237015568315704646578092558198014665587708596554489565243575921889911075800160772856446026882709231404739231779683189744603185577169051227453170419754627681120827605688899272786897305644434246123900961714488787742502398398398826152918662352411250229071371892262061790338788857826734329123574776411699546762349666332862212276004249904607849329307367905242370444817627527369458167016672453541683634351840803846360429657991196502251230114699484048951945799142291950519468524759391797158566422492422087495265542862896608550773355709502470593511836379455914464075557803029666463125203842082475549893816950989523150405150323894850690035218621220662651939949933723040396427408316812012274993540537049667376966180258804905144781967206191562123359130987676627123890181239424565403366389016864284886515019973405316826932187201089493929532963038429306822778220018163734768811950255196429643645825326866173218066269863426210998634838295198176228938512984476820461066127673811035935618805504474374820720115543693876098301661749712392577334443528646074892767524384026261804103725021850048794182233312028068383184898973364518356627107484967636010470148748598300176819039857886450854986352880777088136694850467063633398468089139902932486024625755929021259955104251293385869171005295230352856136265834490625925645445250708535977826223886686219965456329104114788597290348871336352945588300022327366650458625034239976579482518507927058699445933255340175257008104860699467021282338147174006908739928304527415198471785529187162293000468695538493791702603529177061462347654714101090521328539677115139780221656854944313599709918951591879322631796452471606225679867654839578542817152771534576407372554812085100764805692192111774128459397287275919255982828096113404340505412434698461783324660438144624538466308881926987573544879794328493955422942733438147972842375102132301608531523906957570011944578322035164061649515637566908852886947432955391260990169657577521388376124389912535169701053376201568538052474621701533520991487080292826967182902172569794185439425855105031519207614034226568269303708900811390699077408715778677909261215199070548714991888463017897237588977589550167515421588003666667243988580376935810981534296901760405333697768850554784571290841867035678611557177863178073852927387978226451111425805798232142440056146811783469116601297652325750783188432496697527670076432066652703298542224919853881991711662687972224785153306759849662564944482249257027867034513308947508625006568873783252468538284806206458956347566370169898888174175165184400000714337604471116433815589198792786727755383706201828160314811093162342669346711405413599361120646345472330573472966336288697707708342133101007337008550021925123737165859491268522234029078037051955002739177982490420397558416469684242398885468238874559838982443978679812495171273246893027138642386917797703866045001369967848791945053652599338843971423923423711739441137533596401788282835620107967784787700543648884464319007221758532207952118646007664254110854175240480902386288335804736547096272399751124219440050408024633756462006501360860460415829989288368718930119365292218450737444268547531103786521476431846421852402388577362766543563614731410839754930811035761285046441946887602487426106609710868419176742894832265991291339284870116651512801411660163935243270681156957323154272421338295703559811376660174936639778443725198835436416328089503329546773846552201423652666414551805010972038449946387135150980760503279203080044306517936449670208189689794040680520644034900125391355020355062179053589661566150470126583704236080838808160141211760342462978162836941607763366273140758550270801328279063406030938607710635816059503329365331908700228233333444884124566004227510905354882635468014135374076832234717359950762115067685812010180904463240719703013065675537664982849114438254032699407869506674512387787349333201783402624730524343186245263575855368561368180165068268451473037686223416714320705438270648914282115871956951669609227932252904751021321393986653925666933145986882509667429725413938247903961670074158862183262528125556342012398322391613891741399288250200953490145684738321344342788599213985389589279029236970897877298890789585026410242368096635101496217580043130719422732164693024662867994751765624111420752213275556774747313279234706840215125548888864783347899314323994799510569851901367475734993775652854029694216596464448321841073847975648992327989870582911354571860609574542598513011972352205918809115798500052398431020353399855575267396927346816140544306647994534905029802268047080991031067786717059241966390445764883744490400081921787748940615485865865545394987313517166866293626786171654544090359341088897910212283453946057169197121631571743611184239872650779168311852362586448712755842248978484021612704229593253229503227111776249987920721066512635609598686747946060314294021905530361602791433003647943833167452219782415472072105408434566438414264135889867131149644220928616610972713456534969056752130894509558868308767697945263679676600329776840600612684274052833173609147123243023970985403682716335323327922183199646618401375706800409871953374367802811551062407149066637512439483848401292136646370885056867416039213420057172894025354215926765318952969383033910996590564790258956659454457205339240882117816495829646412881321713855361605157494309098600742732814235457138337379951920425237182949405424132977144469613785042983422416021397596252252432700257528520146680779439204381802558543884190454454466326222566826238262365549408966649681245880426435961837666982256947336963668927626729967944327623767314022625447869733286874701769468522876254837973734042876893453367861940528048276380277174419675702898394753475964320798503940462685771401235077643192834452970510745948188008170874814866228935610423217443458382240245133291206178124510421049267311315836728583170263491827011271557113299798231706454882113107961486282952889998430816148749272671439540504645226838035264831590774576716428427892317562466866098298865101833408825459003901259715540577060223948701126365631095025513754962731238782909488103885157347285938687862059251235665400403462675936157702153778443495720958376979604196832199610661625809580316042687649145736474911943025025248004146314369077864013954336075352867985739798994805623160945361279370674238823541724120206267747526714814947524358059736306096773958317046164688071966196375991738704200647598533891559446546460328121788382111298711530935315052520821347014162214719068985187993861035973512948653062168041764891976752027008575869357490725485066513617606843434203199632945066605401622936378767034874881811397942998898184698295738642834912985335247529378121680042842185442117199459560339489666475419696964487145272169441332601644531848718866313654999776997053102598552824395608472446567194990768996545193073858676924274563009873756178814532201489885325507339576613463099295684473943084917936035810995099635706975834394244918081950966124682827578785288622493930339837826099128248797637498329020145789583612597711525003570974464360382744741311223262939008290547387116142344208170783819435790602553272507735826814111558105479737032385951790079033881648917625394372964377802615455782255563123698966609340400085653192383892776625762432459692172824832457165106894945243618843170378124180955428453949405186861533416726910374953047206241595300619125347487913657561664665841542725684403985250217521103541322101261295357018733418288006718064285403800810060356320430815095839212687173983401634742630798871451889690741141750142067659749550571953353844546914072832371009680090654665593336076414793828005576676760991502547499155416341426996127609035491817703997239433861268902440231147961725682962495108760486966733809585424221058091292401524690412441945039052327533353692123817751598858734225779072713572702012969994660068106339307440506777772976631838640850084772358865109276676979769077729929618516824879354938628844206067697015607313217923602368063038085599025242448350377016072703049342982270624753630907849784996944665494885007307742051288680877730097572530256714029809034679389540546055122806980806465526655685082821433180935294281071312738798610138216649820463573911359381834664878980303068851762122014373966299502823092425353439902409755792584304254871447490850939932968996878053452764370865141174698888967378145839084116715025098837787917398183630230604009693536216461554265383067460040544476548612606994637949382095077024535297128303168737804194877081216902074623415398527024045153690987771669852956092227206786146928287654217682147367541827065806009767051857579730790946916238861080367268102630030756014470564359146949709537112325646204653812430607319235564428585896330745660538862181289883616658765005918625188364432939022047955871084532365980547776633594130652453347117144090848789907482431937590376261200409999316346098401930549243660266175708548802934709104872165596813670367519524282448589332738553417873218550053365643017769462644740436566625675740366598272381283330162179708496355527599164550662360340538862697434913066210840168376862517598596553099586293635431377628915235250818016066400181037585667897880192220153615507957517135982686103852721656305609993357203419029270028864157643354142755010193079821417631466410150612015470540161068072937820219626670685235593627793116886085317562011625726017818757258969175593621433534691447188887207466683939552262684859861768095083937587348267417924247185745431072096519558533608232666496469631825527820031148833189488697621108159707774895461726112693220237346230813933104211715954650502298319394027758241667265434740144303031523695296782254085576627545331147338724335486396546747441942411397714388912018606385539877845292153150596135534920293342399011844192026737449728017662920057972135308855742297803445719977519991378848314640751783973329062890977589456544643985293727006092394037460419573608504088071705526302487615943652501817896337946558324716734890644941178982738741420981939912348905944654563952664464267270993220293141549204509111358001014602962008950604071772945065792262623119067314163982874449861930054562579966124906245961292332194638006299126498141743980750564739242350097834668280106631187943590079671511766694265160617906241405211779226641961252145894585182314269835579711808602074576255155862150829589854012487377817074582653911645388282560277154398541751187859633272697148206726276535074178622267147051816834184907126392405852383406759267441937038519547105219843730142674392794790440409617872421336947652463340208017388769229292541945836644581975652313150599121313459562346138318546709070361104278184621908507045986029641583376921670974890682976433616988384314470161329807102601652385990678947623020674092901319289437387274685864329008959540022234698801550051285270142430513225790688349348568840665110769344517268229491367571789444487796616001203043358661397049821312839903220558355081035761137070794186190760848434847305436913159232797497472001055783631751896876499751950133114028700963897097361399187523765950948259035257683510076320497331921642375391288903179228304970161717840222984399778296026408966252963011349833440230376313212502554692527748041507520747607124533368829373208700384654556018056358789323944949802472607277865230983493189703950923532564059761486876912318404722767742424573169048724593456593755396547997090834945408889812532288016961457040565372094175198656899109575759701049278162451611865346492304466572702124947843284759753357550120384006408602397533454022445354116618229972082947439543410568866671207714240149287765369017726547927344597157386200284001403427951281426466569778610518375008709662604326117211679314403507943449055574182141480468818909759809833289082488828053779387675684438305953817336054048135315379722528107336307358897772413539861948027301598334938712129893628930162023758491565511518467809019782921029057442595227362682975578562730372829661227332550841101556237341192806677042443670415175383150840608827813231240173521123803338813103857481610831669288239548414706973740954233655838479132216099422268769670733217081903691388603081665077467323935186158961079216462150554179370924231611212637337651982542717155854027348348865360227131473439949485757854211305504245209572054678394902737134839917844740100950192907190992826750764854463689028360325931152127723892654133704282868984620292611647780766638452708172275146963061522787367228103838801764938107822236834378107634045937027957474014809387596565316627440519949481620787251235987110413505161760417627370014964883678105609033671971370622709847432727496223598028708720027849606232803268584608941740418098948348182796122313041223084872362833598837626652024723064387415265163244838809444778704314534349593323681314173767401805191584453400922850975906727441076197240092381768015378483328576510743591272409415410694547104209652063014751588483441036184318404047060020316241061913647572079308414650887926421029701203214600938187867038592428861740867327753112268418008328041562820521572348428608896996017204392987179601255926515521107901048226142752866227272128119018210331931054692405878998547580615981915001780357134457535149303300243054007190069109687729726402747502036408647384705729353228888276904601712013984432622864213918535788324981234492720260078146456966460399278508998576757957388630591716267028809040535693440443015027344556211110369110971890486305551121034288234858778572622016728724879106072028269675583299451818673336143880000399781481202650127488283460407646723411605457045710102419568946533979097116530996829403221910236590893269011447301579398949091016157480364646458882627872189457286562626179276248362874645268391683907975599064370459035161956826968752943918345112778088705742333217000853206239778650604618528858381551708248176770528607113603191871615419550046026559284812325674530063612214294179847203905101226992588758125488147757800135776697851402851306613283581249458819586205255766648839226519200708729240053838213679516541643256403250994582822397435090899409361971868555298978410656258007924375010934497938070963176532240951270189346659252088855320521215476129946415457631756791298118235787291252333583312670449813313938356340124822835132329324683198644032635057483610841961919063059553668395147017679167794570829966841490024460713096844795932150193191142335588781560398984753888922047053156384453610083945382156149082136357614630692765550685218820449753084885113774678185550884572849026403355606326794168946530953041814554420556727832546227015704482946234580758861215335744530997623894787289879268893295961435421888497243593604207858396498849758952841819076329400281799253085652643371081144344160460862576670603404361169264859156870668909977310557102053533094894592063795966957986258931180161824129007269689900525786109341382919106924225651119368761187449358671303677337542366953747220311122020325751495924086313747378351973013805977447967556430280372330978143788630133699689895422872364755810670031339392975843355849535807732313611122275839563835921030124228121502565975411140334110127588038655231394763076914369494763820903086059625237449900144272770643968722455322086274745954345216356702760680391323458726291379176040297940624688685398525171113901754294270644709649219100447429673662072545930761377282195394515214317010893234499285299025934345445126493435690391975254781599446705300861180421739097049921373869688712845445440019485009571135114887926045960736280285350297203897706821845157003238143334897377919931914730488721925489070894336485214356424116470979517809405896641665313663231520034372288262949935659494182404548976130148671862579816342362642198685083025033944460025912490022254781791973981302769067070625627170146559147161946479075013249402971805119256274228051229320684821252223315371270104996900223070070190687578898849053600258652647781108717955371152701717546812655648131145556951891279589196609122563575666515087013067697023737165065809611799764212989862037773096779134591528968260291819468864120804517083730946519223386217721032319499983055618498794950196571122007245224768778048616245546722441769905274031528695470960750739354958485583696402069390061035304632613742937649090971220133988635908584459179166311431311646904202425969946810896887823838964695889418855436798156837591120476606627506440713611461908430185846670534529914280456985920461802340133718346780703612710736742331461744838444427762311375284390602292227036019923492589226443293840879100887985842285498698834841981041008520338498525364507077709100978123396768418746801259401104409514021565188709143296806868092430382743427143287981148048439089483750594025350014976831024412103194900272716006915823250171053521572466507852778926618953021824593518986700988451128902498039159409223249328694091090114080415956744863446969485559479723424689350573238060525917672693817231510606017038974097934948028736261671947949107387750350489879883708686189833294855540765319353388104277943819090434873304939119017573359359336338195882180471343390499820509848346355704792382200065033466391143009214280923571463782021892521837613615606302989299279286466460698935838707065031805952977982829298316195395010205759379077324848384185839432729924970784776678445952388197684173965385115065324605268917491466159029384013792855906203072479398486879679700085197439485162082323885070548727431881795978750069722773735956559462523697675519416366588238503983247553462196526014993365133712983828034955477955410843597215534654507241504570763919154873570900657585558504441521289247577759542516551738385191892131516477093891149835562092023861750485780606034990126048751188025919063039942453559931437975854789784722675879388957482368849925950610038798730082354947261007352510762136197022937614118726775933770913108428050503948919406996974194527384146978254791042635575098863912283051609746281674817646397434596266692190507684762958980697350704688050619692886675978607496121031145186549484058129207052707985237860140799319945963330354342084992202975264139477078591502570403324080218585493353900663235679995688984274231084898300545071490167554931622188050601098769687407319429924942189183908709722629852289661878788714041429275131459878159216709429121102786549171121884982891459623668679692991680570984159401769509416048707018292137291849140082939766006851519346017796033640478020758942304129784962882350266663148394801210993333536711557655170939839455805594502202830303980396682948122766108246748642410974294886808351280622699964947558729425905205136243366966524536807233071153719955866968299967862098555132446090223452687138389819096920852521975096321999181747377545957753982439467304017286965027858712277964430789372527279245678337332781305281197268786749820393057281627233647018968445517423928421905025789846528559187245688250423770666375879579883216288865718222732861484846074860429048691572058599696304983530643171976466850740157535803843064784158540623572606894069093092535864423794453365692410900423608648380866629736028761085721106119745296857363598142490530000838192800751980278473441502888577641700046425271874043696411089765050847966628053361297840789612029542006014613456210590621873842997298740371454739541364647166256772610313017724974147071374160549978866594152213590982190634781988736726375059453927950429747787271936005471179392374177865522290346122900162109535384180943988460196884129898599588821686087084686159446383123634606093974717122604849057428791664126865010868205563199675345463855926649707952736773723575850839205512364024037801454733275344366812756041432689573217339045956826539342440391346263653092186645342126069157217380460547531380210388177957695815958559221666413176158196598724298782582770014581407098829202288860183805822865963928490039855540776610448189863034596289452858124035978004747741773729927858826357384750184188943041160205267717385538020584422010182269158175358056119609588910682850277499807395578638000755420230408331931294763745301168529549621777706123792319685599129904073168955397763165327714379799536354828418768934799496977908212307471143541358338917441128306923228592400995645410968523752736028162548561689712902117258996726231796313519610924195050870167542880753532838596558048681613619960018872314307916297709605121395572015607015663620237063811772411860812540424076908372405643095693533051942505051296536169812735886203169755169990083493229830350122574266484738708685645508584729915675285438259750110978321939144174749158400023018602001136333743706314300419858336074014507080437209363357021951909685065813254183086562544217852918129469455078122098150231198961000101137837464688090479357647255415533205853600834659336452308807232959114336369759938956372491596522268512509343857805346903217749621661693226376294393375266676349144819849796933682323629165107751806077407780272287646450374221841041979788003237113811365363899595077081294882887006830392351847800192118305813322985497007745412992319698230212087478962494252579491338111010254878036483966337298775622564266213140549086193556145581935406823451505117343936304695434243890508221909446536887704013485171969918856099226589421172367074802455989717241854917821293194722774453794587680595080314515571109826878677531056943152616018226138417767642433808445331459749406236076032924642945431610757533476693278157148763250504234993486403555590822032007291120616162994110012403013092591753102865144932871994047638566484187838929728607233478704018374536510001031864057930643941847798914644070125805297445341377818631456844049304207963277908865165388336254474875863158613654581151762547577022535360256909482539307945238986786767049710135644282619951044036466209093191338534065347013429834119738130267132646359786450907584199082312968536637745748548106417111516190636192794224902303041863409495368232767679251933490380559269214831701399112460597131847354973228326935184965109396141673497310802929249119256558805633571658541327425687233535481632343221090513875065153178367337037297457062932762448942846757428963803669853912817108515445074229919628839253914284507865760226716754567459641243818799824096264307648381361661419474227732457845322164467982947897985657772063890254918741843575241566052876934353691628620162479810148002222492942517065938407517935286191985125366053714257257349198568541278265951834626800434530536851881103391337544857944516453456814989785076962275591134399461574026109141236209731241599556557046331701388901544962173083221042648060869835465250153519989366896933916945816447940488764859194120522422643217510229975578279615158903263800140231945697047206119899774751943118675006144040652984865480495164880151445678453626008049253307903293116739139133669968163019454281858783860426309046048199964689495122075563743841814945257877714308916737987741749751976597663419153939912826351030861898897806491629235127587063749039629116297468831788601846996768216728255114089320343141707857726006662880781614955409980855892882009149199790717137494885885298063048798914167204466611599782182244957067801835935605726130441782364113955963348188828934487041534077716242982992938277084823127500696428667783642189139455821441902030483386217327926516057138649020407948159895856477153907087227270310919494368309741015810011522945726242672782644275243839327560856774105683765946054135032403202276933106408226573005630259613420957934535323035744475769599792181582374638728568563206471155049104748619923988154738568549010602420450891941584367575786751892261003214144776782049413039353174308687192377835222832672500034110039373302957999417645976015190959742273403011488752186367419576862343797106488943593372107502686684641778995882641512214781214539576631708639910049124394403120338782475354444006893054524306079615450475668823196913288138012625094160024978077283840141142882838524164862702109757928862752111515205495640534267541686516169528775543779697941170788465167523337172420793391551831123445383730984465131599678752153848693790778664598032740078036111180604772505909534047156922002074378287104999196676379976617912812076925553212805285213795642348954661479079834737727014013825824678730585121784963973134145866795845710384538464402822991177913337333064231041826401421243086034101920172425077038602891349506866036667067467666046964808038740534891874986095728690443550609772470664107399385981430341391147927286881663662797520118729211426390085170870478817563860841013984170666148775055975627911959750422016076836274242434540074193823918161340822280308493242770415102898374538125979699803926647718885681501353470489426760724300794054447122437145773669045266487719461220879723803964624293806377362341079889841891346360920339965768806670216187742567313505249706510403103921740192472896019279545437351169818815829570683423681282699299445685305398850492608260546632103366259499934911340828931424163803728012123521888358916678506382084787152699169111881182842677954528240017696553815151263685832653876287912423383664926915659678159809262679646533906758022289028574635013505691983429715963077406167388858164348429095131902294069850361804727899484225986343766870289366966265061582238470778232635227727946382758253722370723819651606573044818557733673264539843408272591890575847139079444699818903932405619825670367990556679513703607761895058567836165170810781503359768149717276792332728818817580625122656666014983358979275265995533705514766862431227859578402997449862533110522591423058611984390496257360544149911835399993384677707298148683979755844776914461137357478199651660967683086047124235112543974994946044302465764955964310542370874757150804902399958164436469200798690495813600658190917874966267059989632980189582220093209972325505816501496548913960584335143718180765172448474374017476887639943197508646922136183807041271423098899520772838789336426307490765710479249426959720062762778402200996319981417735115692492620854495465768255868744661059774289406696448114430369585222921373975014250519348847595177968286298548168289572980242804479535093347697040705291617253592449186622341724614020309117216914828075444540936183090252671451984641881592865907032486132906069189587889569758277551105170274955393741614495326695039287641523809181702476918758284506923170910916640241713091376664154441670257257528711012983544357737710198799462537835152803701194458212375781681562158676310036874011671346487742535420376833895595628420937792574994321435057917196564781217636628996330046059239013544589709379946468063547358540562662033219439270497192120242347387434784974344965741146643264957768794147147874272443954345463563608166721864259369929536137879826922801262703875236749577136713105375669710887012684415024421294576738090034421066850648845815977914827181624674644583932427553813859859384263274950360807349686316319435369712469952079794021737835888619024720492084456606062885847976701713895637533704922754540385388151355745261328001044112584370233379770651759549713030048746510497346971875303107493811458992436336619405907948500791157362416983825267896918204910023277520429106399578079481567503755214899911136427775341312827769675443353616465316723469231980804365805947775462547066556673905295708672158546389177342731013521404584279779316749957289809630232668764098609530501798623084083687387664200634674627961019160746064809396111932255716077782049144888371129715260401441854754375946825059121547871443942416393907208160103970161363242466537847657800041951627565952160358622752269281702913460988428541206977310856328423619912062477906789062651093296359909100545544223015094265445784881160454875692983478930498485103632149012053994140184690945104356408544733243746299157528163869691024836862581233632022281107816476355862837670844462261256804192833119636730680021562952297020697700006392618969115112964469842218037272484252849107150383985519300981265311450905490111999479363728938699159346441328800358069386180582773646656480216276245787064645497395353507917039865912669343446363137427006833861688346521742537306234986888095151504196504274638436568621485911552935580672586792496564187819660093766998298176218476199248598428194958969605718657619165898739560682645824188983809408253905798543478641204751223613232453677013991266718428995562982695495591829018815526395624573759770021721401127654074669514394749508693346302897990904376043899352826059997837273139956130454464615101904325142006928505299063173076378118105065188726285097651783756590954537647764913400755501170319434150079869386768452170308141352719369629754801757083942160305245490575413357880043792804024947550620837779532413126192925406936542731116639095981509382841644739759395902353938222867820401769375000940916651813348276318599104374177233303966959951042252285351544805411869117026714047747502732628402592535077337021374134715654553407462308783641797212446169024201923980866468654670547181092331155827334499195183556626239200750352540054103723772358796656052288073007316901003322594638382045394965783106327046614694003249267088221569552562084768469539872495054656470549999883186937889630047068261384593877223867138045213779871136806942985111510581004785282791397251679088519229808775388827483438419524257295972767668459595226258423378446117727865824360029094543153344940956038724674149276123200877294031254225237091839800027228356130212634055315475150265092588692838660118619288153324416344702936036465569290332257826805080125191104946915616293625979109293598081141856837768885302679565583234873052245643091038666354530460981733714628259393325167700870772615104796392150947655610312846827498299722089027902287562847987122376393878949894705421749260786072589962788479019195066136544518046698005067885328385910535334928045812857598674636359455108112273174604431789607639348624404521043103306975118206282688946223747192334481095264407166058695105345132840501844308945948438773759297953924600598831385514338670849034136142667310099753333015831410682489402139787819803338700405316276830208646930443294071697701076437551913495071919274999149232633923743046626329682057103199756548898308336005630296883062647094347462833840047802749378382651365889450433218459781759454095020031264233234779959632557884107106004791475916039472864486445035605700316560999748021945864873248055873776941664691427840070123953631487346374877489451996838804129592048329622201139571714041486753143224945955822634022929673298366845054851314235103217077111103417476448852624386497306388768517907873640212252495862146613581926957133990266781826809662597532234819255450662376693856372358323370750055929581961391809432956353197175606258178289007185056139569165442293751846279169496659685610835499098819845770421525406385110181671196486604636642636174028158956619512308987961241918318950951880109155060595864395622693703598109257069279832202693465399076136785174699128672075837618747042071398558529243060367899914030708869379163686682852636093021038421774547668854439265084045089236425518266855687813681014177632337757829716526398331834953916438128119008497446083967098167666412751971501785537674479922925771485483219812449752528685023850517206022637993349095542039609889562111867935729848441585098552678967891720503315243498633534641768259334920811715204623357944547442082731062493453821350279978976000540249609804282837341607125169472874431980868373145527842648835541928682946866969858949955359931422115745840503136356234477741894516481819372715173438618249206579026121895622260493843142738791963994926250790513154391859692618357424994683420942402484415938842926308781977373658619907672953285868431275089706004732246312893042275105088305523331335389113205126615426239970572268368682935190752885297804334864396390038452528079866545021086656050250505792388385123501437777400640356131277228095917317963744121853809404612607021879505402635424808050437746297788572218943555842665845596715224100373241695973989534505704362584797276832261228963131989816180183090886753933162919020290984617787064958230315253867579808734411642186344907014786646489165444721509532323475827564221255048385447616564344279649909348687389990839729365007072977803105398446921889297595332083933348008339397141650367487782078476744595765300458652090284771647957237809832684849947970037955302234245337904313355406092899716911706622001338245364930625596950012440029052756018241309070917554834708796685001333485484566006551745982063057471523369419930433478637843418907489558613021242644158885336142537099420290916806547515775815070428082520647764590131479398115139117712997046270456609914233632495918337644941293258017874171036323900661083433010006364588812901462325835020601044251011596005800529550887934850340978052250039500730134113519007451659965676654664026852698683846755577632716858728335609486578775129300906622736663597864649767371831445381969803067966127552155735167488208511053024529992935042910452541761748569936067796877458794659402745181175058772688533588501838869910857269131303460438697782090886852430699284804914358876191682982962750660421070122321163923274773377344347013495239393246927679306730260361796714896678443892872291467533968838610892674110452507597032958927722733086342678545266591146361080305389276076525616292781206477754490021559779673389021061020061988174284897166146545178704632522897195492935557623575821178940572361172655183115762960554887345812872560972021759308686607195059996700193274270887926372928020606758311205046050356367674678436266138403256772900092076677474879582494528805490713557160517803723008600289504380509607383494846284854944507897465966490238043614568809695272278138965530547011117753215895348893604108562203572350842698066853269610043334668142972123689706504668731293315465651995054787542692973829581766147352604202300405567855911931198720645072128228015422578554771733765662637613131727949315374472464071869809411857804417074411587487429967267233410782259334428296038191267273592506184347180178342751137106418807737231883021436993711768087607408409695582176484545470149546688543221929475822577688419425912648394057899658168857985146223249936087789958605848703161003242128125169876882522118421977712721426776919844884925160725545545270371213469811605191687768567287037522025382866022423481340654210283704590510572470786595890889777354486542819763296375002923708162365405231830491550426720172156720741960163435841225585971926476796597441698769586245372920112267900855530341012168054194974875985299291209223148863289411517704833897103240954079228477775392302073134237057655875974314263960945759782151972096452338288821570442108252010024489888866488869040738852909309386214350144026783201633406583967906623733855066961899724480848275377564391669456679713649433391294808679265276640640512981301070522112998975531253701451825439597280964524270835471637998043823069233050602399122344863972450147354805672730934013005349835746889758971068570670399683498523843239843215676526414035175492303750249377452117174716119101635961775880086076553902973730033705755974383466724755871473732226566119186379850222116288093883244203700375893852317374952267290859643297190535866614593792775549570182584321940758783291652931409709928754907541856730678153615797919338620009230227162563635936698505108547277924380389219235562679066915052699206828087342044172369409872796482593607599158052416800813202928926209487143760774851721779866422651043972901009225088474821695015332011515023190359964253120450777411626752257234231067877498266149743820552557274145609356260441210339463600896288504959940782994794045389504376254989074907480911526359075517497090463441308463518567991773312321482611442730022390427920210125043984777333228151814372377089949659692382149086919426154575273697244009107493035676609843715457885016391822948417550908076348372338857923466201529026559580586538014950047179541864717195730589468757074128595136402474065698529881699403352120885673465643916156136696104792017822613360411141224019206443972153469546130191940885231862614761924092633148752790818445300645619875757486760141074151533987403477095879553094214966477666210780853872394289209758913294826295414332251525791895712883249379411500845402977772500920249506643456014421755278728833126545482638929001579040369182539021569506306197502298256783503028588020169969846265343416366382037001279855011727665539058597060258198858460255172115692733954335041400588115314755206970362760194711402051561393651700516963780136666833159717843239528981547282013688562774044065492061726787830063943052400042134931782145286962640781749686062277437474789347335818377055276927932970011161703166277325132768631885045252319687983366632935211946287966174300197449552688600586007467060635346650594805198931990409057887515782301914921177078696113946796698678364327026801036581806243046164008216192705717554122157372160623728982187892462735735290504443524496157899516914122992194378099307683551739183820152489394278130913933049169997367321572123051630943082076886000944631461861235242200786051326583944172899664618970931896556877419972207570120568648913265127016899468026505600510145344055811355510650137611078314408889347958797949019332080920639524707878150096254556332937679837001067444002446566982710022482469884248515559481755228080678191645071085670139315879998444235319697299378904482983479736988538616977894381501888391366748469341946407558980293290957862084251640482505175142570708955250258064814181000651756564531586889559192288153418977023631493696675543353395443723508870381525635617260749122992970772695113023008559425074276915018262231802974437935066418892905311998648159649146830215802147755864578916015465721580120708146405861065776640949427969762792579407390885619865685976394654280811641600708376456941785052728364904301800789990735964385798353141156942628635659061332943417592055343797362326009621021296458124374211505026542764467988994240912634437502294247590957297771329731858428893933433868617912889925995877511865710370732195364675103250894184847513761443612116245474767478695911413367767644783422394823939521638965408098148645139612240030883210645545138034937326446494340166377544733956455223092730529846943556084950320238988514417284221391262903202456823821682102677750893845090875403818944170940805040038867885271232387450033057478100105674783002461842435995623952915684985069852224495724765521655375207259046888979788095439825067567153270513572556011573430100421609086562026378376419807410768579004749405887762738252555448611261465909402637641496886113328227463236675819510481389099164612096576093943478411442452869441740408998011273118678477150866997746790108290274351784466386665576957933305001809834513812632129290482068313275270620730082187999729990377038739452202634748422782968968462390241179495143681247556646017552931339912580958970675491825820569193414934035401772705300970418375846947924621644803323982435419151892742879282339371873295156356166733169322648256670184372993494785593017459370251011984782937756609611901038305136702054428276685207273208372272485092207796690352883597253852971320010225009259997700075251167883777774328457054425312471095757032767262961745337443611768122466262034621324905835956057863254550026086075699235128599058666969081935209995709829992728716259807206617830121246278969453065296389699772584676183122402498942560880575707696469227905355437009617914364116064991697526265923732568730474574121951291094737523168069207624361776026072369854431008545831433367363110273761765335518357293923139595226617092275959071455674190466081747801477128296895781089431614552296315976220312973141451216444617754804540281339380527862116321596163816096007856100859873652858505278504097575057736546908334045634892390217502634538406292894446551992310999123344229519626266346869863472067225466241000492579021705153833946707106512470085304142042199787661750976613147596706743714568595719924215720465344591388354590121165056235217673169940537502676324444596014068186765540664950147609717952474306126552189978227978184580024693661305168314467543085115835161701148773248809667377530492738798508603559729174387537430774295788794752413097906973612881156690110369808742944532919198294605544212474182849995341313016775263431842331471751457267371345667866227014373064386035430140443863112521512797413457195627958133573468487390791930379554108398737996699505421621750676359417578666514039030656682652486344194313888222657315435287885685453538398060233244955698420023120259925719321872308781357535056256202176851346058128545802729473487560129869254332625243123410207605920972882042007029789860991655671182417872527106735857603234289833082239707714561495228031413357497091177978970001053846920307865561301757162226941470837653923021014068382967952612362779403686981304157861372736362693767589938970176047761011039242613791987669933849120407862154959452469112790459553252081322097829301251895489272027739171142275503371811434236752425334206225960965760223217125802815988938850355619970615531304024059051728767258461201026418669680517502884284943524962863726869160840734602233885418764623282551555586185634360910212724917916763387465820915882327815966004839503104503668210919364913350114396672857280463687138112605492348579038386354308823889918664901444575396835601378992875238059954970069664372961265121656300176988669329129185623235079293261343616598104110106880354255666623268157719602365937363300660397441654516587995098198649967055371358357889485636290404170421357587490045053320967435655264024919274056934477366619138041432604113444161969094989705281985329288048160481699412818146662897484301284257116848638908235168468764446612834937538444212004332351356406242893321074465582258992753893538091935234809993868096140314337738346708638796546925193974306676153029614026274199900512393415789719009996084966127557716707347676425421079092160567596106292416078961138283373780613769653142710224397910293014307789386829436227982961185419570340069316565743186583325114550825276187945525591455752707145906869445160303932495265773325261000783967275786909167447867135218821456006588076631962283524166122754691950122828873639176880482234423878540243806627700002796227508136381114891475778054447460782459879940487344411002855822152899083354767151493076411407910710948567514326444031901096051675019130999304615207120084658728953438424540638433171036712497272481322518479866833985463484305427871763795048096827997054750276306832456474557466679427816290852396338523352162122948021383910163563907581833130841993103238244755678674838248406100330108723996932610288103686291118231590269641163305570804929060722175395895525885874035174963023280066007415732498364231528536723483835589867208456486501870229441260108403066580904124558054603442140829645219002399172667944504371019780975258809645963005405160212022357443099650938508580527752940074671824837862472487301113193548653841281265852364016938256714436502712462054132790234747827510645024569791227973717393101140287824647160773922169815191833496869012593686051573407210454301828774744362442020105252795548778370802610371392102045824408804130120699794142931769925491290784611502940621148933472179203154232309751227103372363729257242849681884226176869386822734751050808436054582925679966329724893906101325723728254573508688422905285117288796609530768102751158557844404405865220505392715830874099356139324247827440664160082991320174158979876321678971512646220132811523999357055891079073448712924989074518667736533646950938035484759435091884746760161815961174053201625569117430451504886784880721746994242532186566656032435726935955943810993128698851802269376244479866076768578630132333750524790504569450345293642008338358976258895715750539161031339226701769994262612823088273891155199900995909562121566786339283714344871874599466241539279117326658110470748997192012405895409577229593902826370829842402318798474075782332123810839774948010691186640176182451257184210540428342125692967856105945244463275910122576522333899025284423303073736465798563978414236996913795709933626911813223334214980025297937635489251628443135334297113213211935669449429639552059450196911127238654841634829087118157696247522865159792899048196447153289997805870224396666553132086716660169780846332885745319316519524053317509196834306361680859136731898056917052495227342138629701075328314418268847892221067707865987537312626353440108099953848453519737129903976846724505682530621607574714133339730507839430159337964700214996536063150267614898586334145552596501608280966077414861590032918423843004106933043669856201279870214807659324891194339851432662596164001345643167065100716119876902687397079057224928109458570317930431522526696241297827950483149316650881497405644456671489341588610750987842678655351176257624125610386684197766855299518409060601742093959347243294021346764709365083655372854194405365921622479609940451296417532857576190654138390876763104194455068727944992566789195883173020806070224154875926331048413315373931426264994553245545254036055633371288853821443480996542199775465193197400143690263298090746479662417015999569796088456216268910587194304205743397526173767653992068770351342875882780459517785415808030849063815226526014475939380003547582527710033964722064108844166183636602030472933207022054308646607451782271501700403024967400975661933626505319038018571789380109791180798808494223121787316197036515051261027298494836072751440424761366930565520306569827576521144558858291552345458955567351454831147352196170644852769083488298530423139715249084848034361568722980323499696300667098268606048251588212953250599349805823963547112610094070381735159566069490062277636350861377913941972701723398286403691346990785535071045065426499802216464317333336903234088626543948930551862405307067442114728248292062267737619205719640091903364789815948862389282260467381910980050916086671116506891691194888381876877758069214962013382823657817805238941159337178677182498070081794642043466014196243570822181717215049317174668278992563139664116536386126539193937888720204020002863338134938248641819251766649598197524110707022217046748279130497561819248409880558942047300018749448515194137099232322364442926508214668288309778860816653467173706021523624534841606147849276170565761764941100213450801884575133981614057302347890163641611408309721851468503220844692203833435842918565126943226607229265875610349349679197392106079526004170956723379290164355298487847893448483093051981847151186519963122046731394851738947311031964139100460145056717068811044788797549632097927751524277610296257979963514191203387146297957501272952778759179895471747377135474299232349247800371697650023476286517201273012114309047330441953793252839350146627110200637723034675160413006427003444536734333357875307004655795972830318844480664014892580869502197512747324707582467604859909152935551197567942640809750514096012831577356978092522561852853339507054915872057951275904568311625277744856458184900485958132804603001833195270983763156075774901721685401975129440227474918706310384510567352095681663151732316766611284729185784430480677329928309703266583749875786568240786546320003516926395732800161172140032319777050376738439124927787462800916668195830375795778050180606799439614077104933322146411751913861027503515859174895420899208154193035110724031817693749690568763862241343712832888834766175119658558050296064307039652530590735613422074925030579093924884915528380097085882063126868886234708249295383102563924051527191329490794605417785124178541062103460951329189536609674395830430103824875800679124232889352210885815802486192413934399890646455614549735800741357923930978268050638366217063906752043396047960880772110090716427824869866191925328289842967711187547697363254994617900505218318311336793147614594999174720299158384306132875148471259339443797445155557289571380855427946556482838792146442679740706060685649775302245875674370776204901034803376075864245053646477422287815545762547582565424078453200671233614713198328535431351179889588401303649741225141296032829654961735468358029242799226776944946803699723650658799672161070584569819737860303104550478351960689471576726675324254311876593836492965145406201152350933539320983050546915881547147561700267108445329831182019164363515763699737260716660407425948731157154450395178193733253691260420022186177390419907530361944228477840239850051225813369518088320137494885361381776668953615780273510364212722655550608439999360036659125284158894096170221161158321736282896117715467753389280550983533549216366946219490582302526969878086319433993555271677480025040875902314097791142747172644351165384386003758988048620800624875555163901618351860671434878561723598920028246540022022510133089495772810981459680268232377617158323024941097659826807685737829907011398969238680539176431331338318788461679321829477372284024085997956790157361076864001184872453166157239138103764134202519422976997143830024372893358356909488152065303580789512741481213854244762426868511335951946982653197734045014482649798699006783161015861285484866076221795562213027875103051733852268923281987100276398376024361072379328443667199254615629754161629177825441768347546378310918487394061898686698136908848190034535355432209799587797814198564837890506564560614295631630158502589432167500493696140372989270043486538145412768874133291735740234551088367513748312210032401172500830931842652717670234171212321435854258495363706038095782859130554149333106881388903575945844293627302610957315689618229016446610718640291466306385164270512363044759395945001755525382410055129924350835616796234782066080678337581001276624724801853853925499556590963472096818169756678704882605111799911716987280364359464547798502863324616349310452127150141143408277959496591167799486032021494957132307129135158975381436045083807645461215725401057701240257192734618230681998542740877468079351057287363201082387132616184617110333183875512137887725391709018048555451507060728291435467269214633562895085775516670365907686104611373141313765736644544757898665082937402622012816597066403156129972462317650616207561096899550275423816333961980614809967557013901184726630973447584456282266534069305533585391548508238764605074053892165742332266095794906189665449776304771935163659299376548280773323704706366400641709026770675812358645050767428508184239455804205640653082951254418487068515758127636633085297683040279889461452357666637653439042708191560996762926625873090836628044318460427585221206972945858990319748988474656224844568764429758526659314281339320598417310676300062907694589990623641811707088285212348089710434910639539819089264863895119193608240240821993922589167722139151578834346465097396199828333406432346949401606063497793010668374823132707104733209831169036030074120313517692365860781639562515639380076666292070557825384734511820568359484240371224285718057407453732973946234816648971333202430068443626876674069488026743474428216931207721767766662366288460909493207675255131381159128208985712864751385677746966965647873947894774814185192043361961411329580429607402701516731917640817969799819963423395003026444048972472798579990422081759474581445730284907222465596859568527103927435454892163606330442144171130546342071205461163385864993864209152078437006617286604971349660004301644580056110158696162113400762591305396184523211983720028870214636877547447403109828903241212767465750247701511758373721504551715176898616321131834627364696064991895511096376710696889438824598894954876833273050018820537433074957699446700691887459435138508018350350558474993618611123125887742965840074077290595440934544623136208160337039313681599749489954826958094298370764142617531885304706875996024722747467802325338510553866427929259213853050991775904197594197894238347352216593746738418804726493319991102486507953471487637744740500763722942705108458486692443648758216274941700553822415617345909480756085650077183035732033266981675513541714039880127071099627180871544971967660813515584408385374262510448187817437628259934430851129095136392186244001858769368890541100568613034602100957691622713857994577450133443801685871423937628591437280780699722658580983197397144683444714386529004071228737938917759387433124607627564610102968560530362162126845833547421140830549018668525383807060125812286964387123743227802440602719340025048307640347049060158931575391524050356541275249511516418100177600646488502239072698574701962283877169074967292370832605019363234009934420321082133742870603486852782919015146374782298555433867817620017250946298638806195185958433851388685466843255100646216374365082850812794490738298263973407215556233688985053995498724277458374722060121839865482994463683858106286195192276056276292808818369813103143697278828042100557530138376881090124509232382218115102871567587015441296124805630732525409575400758641048853496264190693141236975603344658712129194874786782949672252343223632061784559181132088665911710843124755531716114344369977319682560153551336112734776901841839837238096735318550479082698949348052688490061883944806439470557157036507528762202310862578786972080523357466808331499003974433269796119872742830772050785601536529962511379875244195927039499208045480509491193749964326747523077124162409453663657000972652883281176082643670190812023927372902159298930594578846498642736163232195552206237632599385811349102457925539915749601957733795859445256123356468065742863273918357454792595655782453369238373732505769418649066880294669527045763291860404590863772024559446787136924349067750613795491207080525616729857527182925606748978066013335226989433052194182365757615016993188429875416833450556609800641255377289069011543292778193446102958330216368208160650191333912585364859749483018514792370410153171573526710730403771092480066074383391441184609483169351820153813216515322767857699616007746151434634040492518948042743931555842790837307142314846615164394371686228472062353755258554452609140604077821898398494535463153122591344272254493451396966786508726761852551634034041452424132157285402087409820015181885691309261814642817944416186036556059339099577418435247342481964932087092726603405659862914028642989054742120436549857721492692771828039524865319945393423346052784438916638085644012687075347594496119885483165037006845241718991153616759475776330462354120854564225859207975681578028116165834792342964899046633281364045364544465776067881476201467664764733407817113231088687460033213238840761043845879883928065873291482755838183921693524755593209995776350526902819015712392863815995350092876484325838311798139828620255955805125445846211276958532944105999581340703416516989956117791900399731802433778356936907605211703805401466127682005829937865891947032496948227472648515617021178924118860106475992791472709593715113812920878718021416701208669066551735061277430972811932389714627641726908232927362596371492608139118077038570882108133086832265249906561206135976992592649681730231044174167376443760814848917855409834751853974011040161429685691223129199947887049985983625721679187309457929319698547925940176203810599306051600892402425146139795811737202193708392330847457136374390355935307940515207262368140984952714495701644775996255389715569551305001340727454804416006147622003219386462382535993450258522879531036439656990860657888550986175344992318074481410253022833684619897677209378299947628809259814328066203233143537087048177851209176242954173696810430740574706448515901469571372784021878566052231145780907391460038117070521789393849312149570606020745441041298067446161210809477940403182676229807039808006352367338491483460023633963151505138666131052331229070421933303806273386530153822682223900178015480535625942613689965178703384558583976764642412024756692053637039125501865807004673190744585583212793674673976273589149690405236357207475320052403991310558805648171422945843323929788944803808145632450056698729629778471727182918311625945916453835130601259475245637885815152385303330984490270360431111847488780763445865004192550758740007711594014104192909152234172818476008150728935181298481401321223061056367044269919336876501657490179239117602720099582421814274383489159491152368567449360957552128448626024173808387712673178340566779776729371418124124944468290336144149160229356565331074782829520788389089571477975094457631000403428501333393077735145891863908921177484424310181965672365256210130712637026622433598742567447499550578364104181110375659718513095386336034510423286048451017589009747581049310288597391019686544615598741979291350434078947463764906553944325949345904121783368386563532073796069479492394867713780965425823818706439618610247190666841516436050171589779426504603811508621803384971983914306470098266540215107740957230602992820193433634242278844725651062605567242455451715891297023980749707958790014034162373535359028432242009824817151009552311171137570419676898476718036368606978825050563285911568390195352391761366242031894606544787441627199238996387278461092152022126792069507774654221021829253644813425229737546955836508715572459119614655818973397323847880639415668476658337107327816033250699839930057099812813424847803541536829825391005500462325108204673534715323823798621406687200239888209023407260748116345292673519935495375207242066950721226091654362158853676067644599912869260812572331633227445066667660220397587902964409162486781486266588472687868770171049072691907775161842267226135700788228850793189388400237844362837721599920069065460101037159252817177419482932967830298084231039437675234913622586389754359396790396539170094014427583959133063222078923534797787131330759023010073290938638089374726569609933335732555574328282681797509989125362613197903994210907575240936024010033504212410169788688452937489660237461001933364957812725916426860109984478119053298108266563009417025971659365010076369547853472889852251665431539547542924518157230675774523897940571033814805149677445202926955627467395456199048184608825080252020928303150355025814426901553949665195839587613758173051168346066581227162306504151200127190148327739788173205322424924835459350092384562122733220909951527026268905946348984924681762615197541117209277163890078343140389386787566244871247019079571716390724773361946780729448106067071800618326316285117756365933420218069713937069834951529794751621501668785305546195001587385187212036015118975596061124097821149854351678665087421997236902231099662742982779429539227645750011990145777288034615454148393590745237169512634209261027980670754111662191839679879829869773361202233208242096812381211966073391163646291184661389284358622999785523403323758913517719599573833498890336402720425354622305268774367930320091800745581059385169168900923043116535709901434418961067189310169115323946891454180150934926383071770688406476642814477737476631186415457449815006935643593682994858289895126910325274691329129498301126876602590641708759428287441019443071567052130824279425400497147402167055712108106159132568149206897174418569146298341863432569914466823661315476048621783023365845855214896031880797496269343924180191119978348927758973594310891691650858146295012779324782410308039141365009314812831471414862464839336324944748864886550815227004485761746539463253357259122794936644100653098638881169049466524352948740285998292559547622431310697794875098903376886192364301436706659636262483346247053356826523152664633991046790430643500013341899187824925869317206735736355381434912928453435971192195953730692334411687756098896962935065513558967121526976132267897857343260388473204066634922292250467431950687839785527937364150062107431620542135524590488667169931986970710089270451682407971662817768557995428037164658764041949788823879027043484997476338523876240550720126981962559720600412263065308172535951474442000283160057014670434259057013239439634522383857056524955807062375453283924281502839129974452346659624959417546916377746343424552306482385118549941606083729000239217075575986546855121306179490172268769068536706877961906615011114042744337130071361549621296971944016959374425411014799830655222562756433619673754162971491383891255446121462562316857340306735490736533518112257315398447318099034154927486565520014233001294395459094337955563438476942899766954271512659150706013519056268834789677768799713479412878730878781211811887543925394597283482661759310142680461072620115042250154107053690944417057824150774215680595522909681662815058759855072515868016209108906633240395872354172448101163525522975663359292828601086342512633199341154869611178367599350855930300165837752851212164317913651427254089652815053270624060922667813445389774573443104708608945228521461165340389007496922203823555640739834546238206812544974598181755270835105308686514565840029573274460629986017324870696180160951100702613346989771166911589709079193658619248710086843118870832210463524688314072395624436233062866609765672585516102149737305000573084555576199918824941241872218976098232549913646097574204933659419254207581879187264587226415636803247530767651171291329885103508792606021787828982533637123870285571764635195120492484353783432811650995043028902184004696149028782810388729822332409534895113572671886509322309287891985590894199195450233603755514379845282853100877335719895409724687276595916166992646765722622147706040057215180136269757368216141053906187560074599918717078735913040184975426469359463511315369711794072687754817962451615484777030717270508647609393242264878892466758657790813947759289174811790434280228840568498477950294063275109785645692847282946248480895584947126313425814462758061482683202629750789284600197207588172197864151035443327247327344505245651537174703320568036447949364201879550366302522319553473171481985130685771764345531310029352743995267865829161401097847369721071544026881798195500318661301423071423161486952278930090125118501038902055977347986982859043589331198395848536219281725827538429023832950725783993946851536877467675667422808891656168701765771898671731458471566793963681057666608854537624575434707083877282152354935957656313463186009812850218286982279090043917203277966169308645407242807801444285135855413972958483139603494893073275022373640649409142268928752253459427835497898426155479287503806147853028160437368831500496786876633497398722314814277442655763973429753831982593513686754774575374008778962246262818362847680562540024608996195615629343807399123108218753210311867140005317647464053232927752774163259830047336473200170624212105414281993823183488389160463545357363840553311539323281210271830555460249815798405217221731320509904692174476792673711706233957693716757598452205092129638612744696268565969705459835901644769921286038487109933106490466871869893009015636813609489799524610649365804971164497543566663855196278645194198553478843943319374394869327164386593664793341180456699672755200937542671596036709151908198388438283573011323026829681427007933138307495004205863837408472845675931142326698840499712641857693985203019648768099693718819054066958276099267761896536348774321224452675590681316218461050325751494776520316233340144162028561689910024790403307090246661869698220628932240962423615926309128194907717378215859470252848338243343940108179267836318878558373819342813997400888595425114763039120596243043747821398366354395261430858420537055154216150305017848273298160362805338081315751358098628846425170768649251493182718321061233867976346048545308995408090088550209738353819219729828485642817489229480217298939564965736931351143948248930633708995424031982494474463986901667711383928330456819662963569127447527370764414972364840528899289212829192221018309992420922093629631659655230176333018341472882084342620091177696937191531524386974718070473370560801626255602696935547294306617856733300153706704577567089417394944551317961825322372118733924746731667176023480160423384682887850081323253136923067366557471959731652536540829052143468720228894081400700931561397623034290261420677202721428369627729414481488928195367888541373241064205337102927513875641306576189437573636587986131327968804226191537644873148012096988554231698325039998637606726962730229853540352270938573619586897131062438565033966852598488395081427474490036621719198666593289483086853899183641329394448546991011172616616869041804611256294134250113614497028236975783964827763244853816956272674761168048015942441199190820307443761319476153232543525621517043749113666366420836080903468472760796654895457954327624525134933873759377543417865043677252216526187771987645377485674670183922597006151438425394514412111021075888608423856639470941872208713442926143363592959831577173217264254639838532144648761987879235616346221176299108579869332679170700757425951413633204592979832741485585347278751002325423850626292992089847243026422274532928837991324109149545370896616105560517268897328887195082382791810948773483409777302259741485301733248890124966853596994142206180306550210783535163901399087459721551861457788564905200840514987392537187734187206335416877387163523398330510954284028771624628596355976158890473679352831302376090080832172991561283760147156362219103155500884936779506610113249491586262744240881323655404071949416170683547402623585085168085907264128541793068781396104969919254069169823098624223191236232963370364141005394440081940276085312625292949324235088331871769815933686587319288381066702142754577817934482632668382557435563298446088335188688551131424949917074808547581953935532596619231962116869136152199363814815650399523407711679265930297535462713068663260965863156612287987055101380976321941538313849300681218398163423914096925670332741815709377212559326943905131978606756452427947178150296239824609144924136811564331884567933225121892727599497071775626722750870590734594348669147051025707615870410885563006632895163129975809411121789689721432754443761672577817036157674605930428522693956445851939556317042794628127167095544719573708523083572954794249958412769355846662836795970571011677082967063782758267903173621352722197707743530154552791428044915571501320599435115824620314227021492694030212980702068957733608046903724172090772537750691922571253468257764770580435970125045301219294920136148005117458392219441027776962365800576128121917992369461557624343212254961635585207154312146714562996654094527439692259194913646241045394172837695040066235307520776357577322188599131055470746239872805629082579243507573523241973905043000213337915117525255449507916366455695443516809310242975904905868288692583275973093443578542168837741739516652069356789748414011417308284189872213915178567575799702255112060350222564573352953610121734050012556864373048413223711240597246335045781537135480031011433517118446067118489706309656069460858854443487836924717836446487136822310787328525059156081936576828476195980631715112813510680271453454158477499970588673352864894807786249173540506061893202379755928394526539004302603307111119017892044700478879957291664306048393780044186678066521424039222158602815918113130609728420888849638338861959330230705274472855838151586102702475728176929526461820182864586126802620304471347755401258165014617007428688577717290923307918607441555094388322004491934395380604814619642716514735783964142236054188621431176673648230958099830249383080391207570614128313647000687326419202474455165115738099648330945937823087893841602998838708995321727155028685303262757604741273657309598584578050501735927555313532352830595325232669104961295991228201653219123245815497890987317722502521656877333798612823745450287357300308845386673580272094175479062841108742021106870157863526802061935016625656987734270850290205724536338017464958863912633235438677069581371892463114707555847722488746231149551401468635746141865996239236012705290620157470003091737693228616736253295317193225795754600454314244549067167068331414781313697021493529570859545043027634982001304320822454635660578497786857227305199139524574061648861425899049418996106986886309698218733922447518004284527340697406911857940515063444739019465470064954749851271178241124159707968178459442319399149732899219067666443842971500804211700759055846365781090147547669043649012854845187809991971282524171123607789089711182398771416610599916639818875949382443495528359954467748165393458617830516157989208067924876604602938516568305164868857486085242805888558003093393750808552021669581992141333176282007482524966453420502574076292203691594432763569776960993807663245986497116090159714524104322364929699554074297930438099003879332709475164266208683917736313869871504769617454246552305144011698977501195047290337389292118644975020624291964117823196296533873600305488662339330697059549066970703070124503667354496028688211090715287078461145879763306606767342873610786453685451040847565743424921160992782462094789056667618190132182979750896282692052995875231686106245412793718682416526555432630766704977390040181022126241481378091273157079573384504096790703762785087594363193189781861374084830634364374081594311050047151028889933899400658680945578805889086593529524592124307228614934104510067903430589435742771932743725866350790778306997920269114129968026920949969198709324254009504154318228662429162236776028974554941555317354604428990502562161748291418414670624321803687696959207924168714443415784739209971015778071792958174795960612905979317651789165808735586400603365665498782299966849698611406987725327952775494498811287221496100153357043189285920920732458696538971310335382512047933806931571204192446936146663203846557969014858915761051471563858014413928296268737465402446674653532965216672591902283589019408670110494341646292881541820818106430607989085365137024421175668164695166999235111785561852118732779936594323355290977668697311931167133663335121712846791651138266334723465140039153577035882654499177184993161693730275163659848063402832169229584315762971789137942626405668197527671652729614951952068388946420391537582936312514842882179533085228800522859692005871595146985865661617996838213352306378699430446190436568292711639799211344052720313681308969977954480797797871370405516756018072482150738983659838711808348290067258948615043072174944226322613621250302756080455311947151287222306467493159564873153514470743009048503639185042742683569956208105907150654691353367228056499419069592173859215229253435332161581024940693829181216725376522535418380108209231589692618732979936118977949665689506502738533220651744764730978689334321721528868039489994900944578639593116704939692747456196891931154723567871547874400042110800569467174658639008748601069018260130978770816033649314955886802755943747350795834882615046375170040155907662589584320919310927622076433157502830176736887289489622342002944585340648137246467853406266003122895029115024483484561356368682260281860499769458327583382575972272452068545948474247261206182423950440738914477754067760299532580901453239324157405701144500907159712772870885038867419469447111918432620168029195792378194155827989255219618330509247209100583795300510149671893729190384503040305085138954564425396525251285811613382556371373170125611633466544497490580319349788533535436292160568947196192825182710043992092549385720160361398137623965499372269693192053893637521384768515868976785137136367020953103881002003133963572001718296986985747048546698567303576179474177499502665097725681654505230949141359859219801862738573551053763535205464733472706968941418588715242651992457012882582103629564980491390958977038397174455885132194342134918135412663043546567907841932726065170678235157383371228572539235910023808761592001242814449372929897326367311848964373969667144101849429049604318650066479932598944556125781533713799655696961396728112181573830924013166355024440463757962814268858213128574509089749118792467781852167724307245003162544380820941966664275226753483252702155987172914775540665675144952589737298601634035605011963863476812376998637036200872134026646132788971636859144307183003380325417422413176131195613896086460843692841077189961753398029237186708408965975054129488414771194123320787865720661949151220448667496589262650381351126022532316004059555276137699977986314868191918124151586356443843835928126920519073626464452029489718535240628530719114712239712299815260532011326922886699775081034492756069089227573011119189212821727412752226003388806388889500499073840748412301080908773855692490626493982349736869039686478326417188816929878329501307724963184016675691379047592892378854374798584821644557921901210157361344043287475508667463608172111772494290869373867034398005871115528139506077673043294368411273617805572791959105707792534668719879856783643241019716128446902998254579962674646134092452216866940915989517496692237886226947818201320182434346953199242699917860196728690070949090876142869506598468080787231931545457155381969812592857953099012009486739449881471519057919219103301851380178454246168256152282295479993061540466101998581051817197029967804871258503853064115917731731693133584641514174065879173791806030400489885622793561717571843295374926030894594811836795156640451691349012311021904307879141188564092407360277968490030394016690882065151377364905015657230438985997974806733179791126591355682793433851897004778247686809280376931720328747358648701495189298168234761508078655421585129646583233177778585249612273463372921316440741365141136001723462834007949356568826515130727863176761550354950960205648548816408269097556191798676947659207539939024906132614407175728847142874710747230398864750246629771426294149833323898284602092311192743984519543774620696210867051708844985759590295627165686332343021918079783262849334282443811262858721149246101744672891294155566721527055920766272728249304319183590033916302082081848190293718861406197876132807180627352939359149362976944188544637804841200354108766507108369392817884222796617949453086710593774171442780696074778703530761817628323950125413555702158054102380703290736187872156033359473429220636028431581937838196601813857046275131453446667943698608502130481747812156203289978899980054964486276142765261820719023084304535142636832977367952858764553006236253951275602155225498580100960865511116533223623801016242017483522300261999633330264513124716045381950607310651383188950199061369321519637523670554412625200613254358883668311766199674756035380912342356136336584299402752137886259211631366641544214700942033358467545389561082054868377916549272658014920599900118758662011744622090867871815280827777448488493416341254285824714281482583497218599025551815913941519538856994300697294877062426935085390227242370430088248877235391511335494296389421619570038380592738883047946097745448704316144586246965485811364806716459024355627392138571099631977170438785529003469801571672464691563067558453379180640616784837116316787871664468962714355406050105199902911137704194583138106130556638938722162615856025248236368482266516133876094022280497773952527140939488089147486463780900728500234679224938425281205235621317315487748381849451751802116311651157413773829709123251815070025926411188654842691043497187985002737172147511527793342064551799521876495756278542693582316025694810566230524962733153269841815652052838829321486651417736357646085307708894503934991661282333956696270021409038070176671023411628584052716336427451302096051304504448358080780087106927446980429661162454368793706587720498247339790134066162719250301222007663543563804021211704702655300510032129008833895784490047675414211185664437102476833039183069155079901699903660597790443511793854726851974556537925844359083432291032480544082157126240562970522412747014767523836849566266889183313866797560932864139412233219853694261115874228375783523669450825418095583626994396569311440692232625898354394240872579702520244376597954529410615494751352040752910742753203452192204225003616339450411487587000858167751796722756836713125967810374340475140088933684202886162924282012168873484095993482776118285730455007421817864557181271119485480879733184370207097566295637445195565023264430904910052018311099339059646475238477674926806879929429844535855264480530843584844948092826136157159189243532032807610690727990276739606800298394512061272952238452508835530955157711623551076864578114107746755206728775870931639040931803295903410207853635431967704680943643446092113358723547837817794425717542228543784252698975786615535585366029228118820770065624484548044934362794511896212263530426164932423021120190124368881819795962187073106688080855248123625281364474660219865868273718405035254806248238071875680820330581608173912546253116498169335859584009932143388799082312657802783535166886639886163294357075785074403429922466424596256988101653815800514235292318809374203314469934997570623711364580257932308228244769371752760294908085114980104396270132815942002283241029426892223114018607605368136146770146901049053843742832173863763354270361948686425743719271907659177254242041472725824525460408473401900278366446534965551515671189979855014236668624294810556535245398610720890701066006563104094543867306152805384605965634602833121090160201428359892372732111088087510786928985133232991267936351037568607484663344300017938323664810914129089939629661696937696165264933866598670859449887157450473559220409590675299701085921671809554286991546319333332566669650675513169236075369138893387705312782102129282755279962821318249692230686676935301806058823961827200824057052770753745847011915106643857604800478733766020148867730782361263406787611770684803704827041104755934938860701329318125982834416731571916838561839029943533141393526503205833430912480154815895233262862139416421146443557287271824822238588353245081425900899189879461429191980195556992753436010774393591354774882815066005113421399733697531914871534774142021638293778907396152702650482895821332375540386454042704624869730746817160696172078595750484368332790449684312167421810738726084043415509344595451501126170568541850845122889597820156774450481583743121805689479667939343471565338644507705022549239162821201028902200458619159000115898671702796964754775820811709676410344558730368404870763469181681716086693878249958321645337080236722516081004370954569670046641833296867022675692689398886716902949683903868232113685213937729001410756512799095049845138367861612432714444835393069965080657485354717532986172031145871430542177951355434256999102475144171030860401740647752097884762160163820744689884808549917611941095947625471531226217678118506955760127775879027957429114374453806922529900974392401446981520726598518794807350917421079864934965706667482567648789720471836761737805387632229443164910865773169215490567621699006917129119501211697229648567033736759550847242092242910774207486093448560412193862455117254311364535996468902098904481028766984125923226014018943857762996572548010604097796974365260010366411986856657588275307941427305656920570332472388660349157531270811768151585928906067398008056093141853068676137610858096134425339189595823462867487418085973891440618722372649253514524083739461234752008941821593926671602526880430646401721732408898848870145076016448392657757309050676987063353515401483397999446584544552227796446224010925348617849099716971619167551871877275968660499109198348595402971881383135827241207467171532672234297334733914637879612740422115365585275676675259514491984921193143571719212392644373954143143605464140641299703600726857584502101973292347829830682019608211817148342316863873464553160865325413944487052464301896625699953916909347717785639321072952145240382459278351600697247763266277068327550627944842724424004781033102599864382262961475980117932588209175627154182312931867742312683962316678643996599868456591708319015691137624447511624888458524895671141560014941522368457590286345169818968562612814240457837894905840459571822616873246751209885486553757897634536840838047421405976889941592393452009863772994187367973866873398949561188886355992596321754487558743545852917194435108863898796133497634007947647585475634505887321916317991079029532165710226604004170438012623310339489235916974222075593603311068251303698212908333078116484876271468155051632254830445966140404629304248173288357811998976038413025143695834701625403597087786528093372129001487050539173543861849235963743118631276643313442094543399457658802833524975443329177857296593488153841391098835707011454009966093287761785898117807416284295944433714799537318233861363541083398263736941950211877516854212879380832072865808615366894499482657898033996750571842532482113090702471403460454830110139031427524181449943625174853839497822541461207284576428767883216706059661728862604657272333053471448113582582680591050214243061223601344932025350929160970725247073475487319536776049018332500387684146634818409821901867642918830532891690920275079529381347791616523657369604824147763122574784685068792666409398537579171901489449033160588123185363188125504726367735528171469318114882544407477435195342880940670722561496543272769738690274511269741163207591562040320299483766184049000924672769964254208323247843757567950689218447274321184147920989935456451647419175122793867480474869980833713217848753287700917525199393482501559437976382870775698842249731952228803024566636804390513046886323633298635758559925562584579560418085654114361148785219847612093379832903176984963286898516038539625490957867559440434872514483544168750495915067933078182231023693392072838984548071882134769906557676711314810949999521690552733577849514019881295322738929843566220842678880207851029885079739717893580338379125523285273390828890006234990803806355072895789406067503539134580659392018621532976619728845892857090416082295560872706432399800740746870215200357782837466102078302673575315378890094250804125925039255302867812749557302152569889991009384975170648968857814319024821175704105366089768481802131396392283474436676154270902357503689696121022770152444810684863575176178241162948435899200652263549433815525578407393880516978706436270764592955284803212396965451523076604916487777778336483341933357772457295291215317928795255617621820050369577443179786488688832526884912949213367142174376033657239609315505365423563551518625700155666035968824631605706085465583298936930346954980609177175689115221448508295400142272999509712192088483732671537580542369296908470225479219698404141859774842110101929310747738065886829693386875062805527014818239808976861577874126699281856359561250048030937970642612780347078340577427345275707687030396988443326103127698183020265775874514139966137376877041550129815969143867239898697482676004167591756751943352282482262739131409193056830767072110471200433359704387013336959472224844214926206665959798426656865237166630843043464272981673672752500994742208821015044291039248697130321908923302442795439778824671285557524662532212562090407129480073547052048467420883215301644485136182574039064978175939149054010934916390042831786076487878657166103661055791237258303301442953294776047736537138628640469773217090027055411175636045942738536671822200286721566479720443995436213197529158610690992473502386107321619595243349435772812699052730374026118709086644285742249235153601239558511181695047706013146280137568600937932602778568997166910978610098610643884947112957040161171959503267952960898599150931264854005277389649300573852736275345138872339195134788092921494303721459936192298650703527761469673946608925001330233891597569015309063498114691975209398309834706082306027085840107091839529847959317230548514181850172181629620866193083695729630848921758422656185314810743796728335434868453314533919233910024173649391675218700372043105657237812439474556797055667020729541851039688931975573514039070937089924214092071203927613218257188219957599872982623851288875427532209839839275353668879999350939258305003906962729358472036651224373869057681620935106060979292293998812476547760947180178017707782225556711498627000133804460775219698844223670541336070888899042317218089746597340358601790806652225890804819603027146974522744658147320091431523044206202998219843089966554195122756454503074473985377936945429633321749749405615985458146625589693424820986725609770261317222499858945845112463053962829974310341644907114553516412403118003710756088279398857555957863034106041753416667791589574707856831402520554543511205531687016448392331656945745546494578665739082666346536767942618619968379676607204206254696642801325520199403341179201637222647765004320334533592383696751614610762685701182600357417758455582385975303799589473118991926812248443333248980109900725471249615408414744555698784221954351523787040836636757517499875119902221536697571505731445709384251422017669292253009458198704575840761413321206336704644892577641517192945593614417614360668172029317172310766324841480523459747490488359388775867711454420468637690005693785605571524760653202156927005981247887397909776571882708283133453447205239965572112925514581804331247003725453607349698920346421153429416759992460373493019963148965702707252131703719812350518196686052329285624369790976957179866928984845434381167324108910483073059229924505695943974103563652354489603434559318903833050716318651655675484828290996087986376591154940625000381294250438926474221032719818286042275706486257074504504789548184480933464392384211409292204944357836141347321585606357266961710516691469326806571221861178860981854319897535080512208650562402451020694990016153499902185318622891263912104823028975228543778509391784680106460871214766537064028048092045486517464547126337139724960534986511836649361090552739741747175240532675518487758117290931497675578080917386905406898957025190773317673309100642262595854526556853996892846459582747960022972297155152052048045074317336331826850496359691639600555485338867518459246856166874262340816102048543685094860289514840318638289343012901730122773473969550681179327578331252371003573446602246113593656384455690359085388466084941874394866323263505482436246581655909950615634395651333079168489242303936194490285845354895697427703514832692372801525536177489761175285528026455066504128358499728285462454387965291054477741934042651059822740225807054961282134477909952696572808348368860249809807831818638928085492055083847045250765089329120739106277798871207552909389957187551313715676589678598526822981192209635036499827281926517884745195065216976314419080801159181662626933659397821764273383575782968528788228521904798473069508668271807222743557539040325485224106747127386962006614675151004891376001745161158937197201355680219896546321546882863799734312719480358847024282655265508553126379684858046096740973398188763836568088263673652241474546119110777241983008927711688200453950335794090440529405678865775297658981318665069748776271928280044193627666797261773611561010045129491456532008961632157388808082054885622246177580677746501583724287720856533878226137597367345862164572726863899582844079041031310441932999699102717797501212317105348938466044807613379332303449393697614679340767077834900513917745934496027836799799385023348463888585692883775428555486765413080837786621626417363750297602573044468310977627186268981291181029553953986456602182190512440427164254269814051387443343395926865273720901414697921397589321533938122709238721214391147157111623566874546090706158140342509726120706899467311339440189682326225035209018250356647057888178889452094079276839377681983661133823462671775312769943674826743073756327986529745120166988440759098196941640000468425099284965596029509703034224622172239046525185614124880711717643591987705358983039051909118745497499957998127621000472424773594644187303566854015438580612692379589137019746439841087476078536784495221999066272611341189286771824579853215288530959367578610197756825791138340070807166936768044957708977647166116672207565394540358581409001389640667898229500938996676757802879017430517174031022213071609559252805287601183056221616055662449256588338258690874601318357710183449389676550665591259086629304729828742616618141554432045986174277456840843279695529877261415002795234655090455703616681046679947019217402481570778814641645792887818118405492187194469577278950761054678026496766873088289641385813801652716940075879317826548268242004141903782949780761177142561205958936955207611212721540670814324755223034628094382044235504332749849189915668066965568789527716278821644778306784752945950374886670803594815290237456879304700795103771357506106105867372108777066485353366154407546527173206492556456034689229032155757613227586715682260272683213173817349757285566217760923273339716877855350339763705125394764603550245843342475567959473661456396059769361032593949482199403137030497837592164689619341087227913334562330219749883038847398860248940085693801522812468967047545262394118027099494176105475575070301725895410928962510860016808424295874363375527996352001257845720002122328016019362668799838066954283453693988945543803585131750845690763269297520283312121731648163912023960987041951471115630077944817753993677183113834661236435521133744140548852955059512780030283701402465325100520331874793860622573831625216533209193940631602384141047196647364160793662074589055432111449021100769690403789089877757377370657606438312303045701238676858959544269930068259587811892752049549149698241162784234206638605129231576697478974372550932316830112181823884982918405890771203790151655818783006459669117729692695128496619196591551230437287851485335256501943678283336218014871414577191499658982756792955772714562084603551678840530915299433168784650093957205468791692352568968333747011401595278596890311063700960198283403394550993042040827366871723285402317271196750281956550621310186881742297537308326475864300488356399714841714909874550987229073495452066907567841748494733929797069214194096805335285024014354269638274629456727831345331228851575476832257763563902728957069401630874951333319610005830544755397098183077932366956706945622649060563560999698702953675821496300960082067929926380297461213807239943348204370392204396719162939174385669302770877829110861059010163583222641359953950939900736367382512058222291353364596755221952862046092243258648679177839093555379906158929803083390292742286297593931786502269930602875268891861479701099420161296887808770081335648289005372496228032554707907447247760821052038558572133954004384387934751209222658927690952870050005805065798680035762401386424011220537481390723889351259291679945058495096531897567408597541078009023082532936554744243804165002194264837341078275147005593561713802205137096021773165939326990767487921794035151997675962213256189226867437072680664834090280642983923933809794320878330152580318103149986108680506907158171600838982709330598699288576298751356730376507495319154022597349074273899127304899589965622127200134859241846968130709477236858797260607403236655419058878029498411495141232911239453260402319743253806261427296570350864477313068499633174164134386342786015327849477202692826920552225670486143886815887661872772973136712498817002705399352390437577153519406931603803227117137286095754724800858708493584923333758950579071638877409383140606489733458924625601468650220973085112256471086599959752361340157080917684095266321502199296949567223191532907892856084290771866068550370798423750073308971117979920578633778903173143188459227212132305979242270734903679254199292494782619469118538255678821360550989305119167052339812976320137647124046693053462520267312255274261231424088295367183990126536318754109180992949264450485583513155591622092935735385386441027299861847567811385177662137561293403830180124134652750962573931791596015778759561601670049785557324287449074939785689900612319153501282107594386179853519053982759181271740583689211053379363615231674983446563775255323199562292869538817504751887522429737426400264058182156520245488107241881769648236081817571033597156824650361170573303207371236655159205932433302966606836515881877909651101864219581346677351735736494681255018487690777520268586685180537624836833508492557829511213209161923212817881746500051432468994170296210068446601094045821055470975595541397680610924333871563499743936169741634746935782605157526084003338281925316210322971808352325715401655542743650056345773662630238661251843572057687577716301772911317286900383562424037970138338223027935004393358404295658567715539008415243336560072395117444485375378594097402735566593728139481719614317518772546933300870404971627609496702762888089421681762247172833012346389120358085212005999112487367857655521107640434828461114033913802990696041983383640940146104637825124437795420223890493147386565399836155870967403308478421122554622626963105369388333292943346161651672063696645103321066497194578261876847155668973073885270319675887926243343385917505125665592450302309033951085421720213874334549976848654472703654260579461033933561189626503237840203671695754236108417884576109927427988536510444977448733498516165679702389668932488090782250435236008624463204656103761963960973439643534006542031383930637510465599887588929195908195474656798884307949259307771469458846254849017446321901892972318349379550483128865388223356710188542128920046311542850261269017483871304493647881994182719025850535111381565445249970974046046811090416359867607347103418492298226267580625263236046097055862271602793473970306456113532986999638583673688460195332419324452800084633055976965231132525289620503872031036602364532964342041612261335270888707575777175865606533420142876417174607812076941369835596953925129790919288872787092393675355623224297601967635516991886391766744500282716348315006280282283848535948412640094641413841250261739893192897408300917858335947698440291851270219265204704221201666565943646991253056634436246477739757951464006963462958491830743444465483611532099735509558149783745220675989493339880930842672195721170802446153128748297332572543559311067629161095270357838237353336504687121384017352973901540258372733889956134079064146350953065879977073068241372066548296575555317397885279613034744593168341274343984858390857589548997432403612953089512080721807220856791287933873500434018014720439867280764699634441212957460599582215384739011460313707055698899822399232170596361778294789629955408331937745370053876228010436686822604659320770965859157570894627580296834980885169127130518291690671834837651118900727091082063888632620884766797379373655358147041809234907875509269581935345477677848867755277182136962425342370098577312225114434246586714487043121469703598343012346099824674471572116957519726285494385133664556923340903755021413077587827785605807463394850618709567766199174436072034831956453922451644203688357210813596051318033081602949614404294774745937948468250846892421428485427952902645294658429108613957914473341936560359725829638754291928465115170472988890391478080320614514338811916005535322747119152707135658637303110957549092939260814675122629226950856390839966895631192268107441300209031330461944091175400758506027910841248505998810478092267510393635441021441777990008095285649294701166567098060269827638098889372812440078682681155287874183621227273687338606922629482408314557540967987003554744689263910463823806927887270400792896487093613847723393913137565237861110043303525619456754242175529249773314828846451760299066088529338519160760101882549310653466505601840625884617198700824248533502824820604085473587382670929189816375209078836932220672841509867429488672157264775003457160426679214229172252534342083099738815045104998508718384323730480605598735588838584691844659110166881461961504106995489417487852686798907973836735447449980364357566152609012065398384193573633528849334096095771322987083801832937966533282438871186508057069920974298896983518012245796036150607787750407564202999845550298152770779219974983981888892240769959135241731899891185654947957781218079133093132733649317307935753031379687520724624209210208120439862845291957142955169892915241272607136412132417941741829177899353620019129856272250960386908121588177062151055609528270613459825917233430854239445177696792184009680773468991589484091761490370423322686754743927464835075698484377997478424495936486563360910198760768695264851387987844421868109586057663877046700481041759466459274084399097573531585902606326913798015263817176190162574853612496625095388529560639533574542330302176973083634678579922372956671959088195414550999477925943211678396638211599331629020736288090723060011783908414088359780341571247636274613451695339099753726236676272275850453479827666385963389631137243373799210192153238039905125001316102919947728436589204815758220065994183145446864921307403734967022679176172420782870945213386584349346136551714433162537650260220372419860608315208349275300433863089960284894350178797686818404295952458181452894934385595409616826970807341695771287418200798248032495792761015758800615511146412483199397457871899558134224005839814406473906108191673115607472538121955562870170800843925289141427670601241706926523823546701261378034473771558144985786653012532301560890346907717723326208396394346374014094837489147057235135405702619461080135218565608369475820961677513686273295716020694476092652797834067037986000559447183007689226083048182655956446580369643668360317144387916980273849542248282309735524294152573366219000460711323229390779406514799106765756203046236519401129465922901988088233730977630474971056807971716146617780240464802090147625586820937113859431658616403028283313989574046960952301610628430247554905417365923463696205494197781796653370501614154764685955140397887045147780141504383547653021528783425567623555024575695426303088362037451645261796137196081866646389621652960650921111824509190422260061726152187035833108593127711875221263861098840612189083673974854363205315374065558357688382544588150128243342073023744427340755615512996662602254142093806223120362038775413288615436087236672352618115622622129117157444241666979769405855638526739212243631520327260732161220334538605160838929493398689914998777906010470964578518003034922028256147270056504386417602621012835110035156490470752865434994217122688051329034493881572583606337389975426978930379968114547422655327200210322312321080409874044121429402139911283609772458254861507342492192264509971325316496472057046135763169870670282618931557492622114215983659996149240413983448391669830638028226274986528193063732400305282314184436587014673700939933098210851342132551189321399564221147348650757803577057071612077802241940157640084208366963091308958649453662930707961321753682279318178103210936881059390249833366644312892067484329313949005553146186979280344358133530719516996794437453416751240662039998409883124457080171121225359212359446885388437324719916340186602310169210300507688728942743081822660692281285195977645939264954291676843137689947423711798576827419367049880585235757549708582083138842289020311909396215843814571519128824174344061094701600868716633449285625582310879600307559118828083375631673247338601952767441544093690372849475020262631716534487715658927375470083054299261777455694951151696768731923308293855034544157156664180307946957542854738973452079417791323037752286003770397582881126445252139656217204844033370700448474848655184676432651695002138842388648467662019983994291833737436007663201217314111369737034871081791918037763154869799682781309968528613163081336871729097214661312736027332084395464820440031963308816446887235276094305155773830536146431551855204124641846309238257547239714975801280375954032725087734333636723828961722421291016528094242038162742695366826712515867609923770766695426803129794269731454812556958011345521089488622717232527890843004442061290417658089119099113151198402806835044118616895771313283031297704173480041281192604845054315487165581269223162300309821054017060411119025489494204783278488373277543088721732742602096733838135127391469735426527841845186608250016411041421667343195009415140538065945047337006511756105210166031068173839482326408512376045236470792965420121444377558053764338110111843957221386649145104347559645569576147683612041880241753949485471341035853034954137159941564747652423727041455215158766386150102550617274526574521042874850377094755094650619646922373329278062102316153166240272548211556777887341167110940857708487657706811594757120021238932626567237555974331315794663269569144304216395734875520087161704098201093142567556542005968234774244882662288850048736648455599309582810116888623144850296353311864557357505327439939953037103060204123997243995737056267844912543703884534511854110583063412205485134655058733834793020970640309071608940774903274247157371482393511131229618916243674174046525693823282910399348918807382617288786097105440066408013442373608717230410677821711171856543218614805766088126026882972110343158276186845502823385258327891505097701519845329484712940661962312046710151188888070353518062901423563090218446367458561517626169317933086460578080683147377697165206051656234232571761555256379849616428781746941081861082627189155118964336032309120554269204364753095062668679375774128409705244760239230690518724105576011207733241882389433872690518967719638167906044852412039942378319665896825876766564961407127863262593639238489024799107981152420177755544727747363215572631434915651105074302596598518193194780397894616674758162185137362884577171463235268551007109263556257100900976351855734973400396012977118906887969487200180769882780520576483991622137360711597848210696232199576824599185200765722471149515127062992099849938483503668265135098456548883997480279395724994040206480058245817940923020975461619301104845987963833364279541770740598320430090041372741678390354282365115921107669058123102807839531878982669854193521800463256455991877051962276730353217066285683064524688303118888981477952777524782812432746067397871275376467668813464813580929923180433280367203580485062891436032653975764251935793307487288688552848460435565899199533762181048118477816860099774027134868474649202223237126760763270310100515627358237422084313900911870714042998094025853314011989175738145072679806116057711819382630929230326663391169763905614802354301216796185745860971115494656320763670253764424555659825508256377410508783679341515705942683672585013045788299941224399146260362730828125457578609327924617143506999715122236265933435108520985486740950954321451423043566968427947338086022169091758184859328016633582929472734831725399236385851610893369607079520210164804997323638528659733560229075969032783777974090544688850900333842796989939660659832079796673793003656909457216247238181788703927184372352241569252122821508065818976797457809471795733858286145862840084788178994002460185314140275398008579788730534442919859567682335476424050044251566426836280078867887498793066013739443958439586630358155371932016542548047733265200008204306176288132452711486573720429944986482651745531996988262283689023972797138149331676557029122394863720658036657624045595997304520767446767128236502397148605553987260357145248511573797743735912159564736026058631582467990815636449104658700840743031360093113853942811026350474414235726239432236798147671826286192297525782380722453440438448557270307699986143584095602561106680062417267167072688595256803733806421252494406477029034825926176564703304148614003786197224081775118595632183622746548828317725891146116442281281876166515888219584047632722658511403460535909954339472639069732443877848005041753441831004689140042175196766328716340101081199069562280984640639339765849522028716040111450147100044872914709811249564417792957276653071476023189177135928691752719068595738580850886894434946512940703773185891754665836166772173721483384104000533638936463133720952807989571438990836769114195100629567051843286222373289306828194433049529697370044423902961298089621569241811715570406899902964921329284765781291077143218417163776004520292053444532650734864143218755779081553000755749568154745129474790681897134220313506814949812140554385003369082679833596963085438679293078558057745671263408349403756032536325221423134161048433741396404998625962524896461129495234623234488580173972058952358609585232848655679225821840663812424679608401779334022817439432709822851131623226142109393844456165240281571242878599318844354986415610456566143877941219303840823381119708895225101824189057152437527068524418782427614290562193108986971117867063900269490765296707384058033618511637890589455300279928927244384330193771577879728280392910217828897464543837906276002971998243876489666503881741800180888918456447949523978711872928930864318844152328664835905444606799949249862606072596351778449029243227732106381454609776649074380365907069571187427198462808872183233718511339125068641261912172775279469008392166410862597190891929644520539192199764120602310648994443663029308920485977554652938868955143153595663554253319662186948487647976452379146650363606044586667835777447628839739262012281797584205594370190159171229674390059170659422911217344870084027286796478590029211583569470050528610696536543069130400465402446930606353507686369721253047131622227647611219119905989272319233336217241364903336193176230667558894148405359662980370615177047763872232153999160486300339759237490628946895182357494007923759287012368418105361767883176316715207076108836517145709370441823529467232558306304903028898005325406058140904299957934944738044049628878435363426331521942122735612837588762378035148831293731209999767997475974889689183970506647853486198865502807588478762392024291647699944120577080997151145991750701069329576568885524583050372076409680574877121430871433805634211178580818639145800359233320335847670288041633823804817805957747897132292872643563522043252441280435930084542156689877882831157849597033217465642430335783091956050103716432094092315542906828559152261330404779834845809205271598062081340301397898065851730768553911173268732219657522979018542255184504224456110229488629947678715457580378875919569163009145320877361033415258517927109095888161045604377052820729132790567998615358109894234197703778029228101208752768410457823739538203965928254664337906837124241620041612837477574948560130819117497072230886050845221146088630282733271239046646409079222318540368022858125316048285405934312850407988535106409936581072942475449716205450078406974833903982831231586592090070781811474722511481844934587075221157389731942252888213307989083965940589024809897220592295898232726527965952149396820882274672266235003791194434730015144879550086972748169404507512082547499372349928155285041330130085819627120818003008222563486464407337779146089437599822850907084735556313789206357709831419070623436827909618035579673635739082215660284951008049554485355100531875769974408002445133688061612627505310249296290237180638774515264789921362833128161350031584478734997917959537328669900179811842549580333339519017925323925118119541013759593903320144682248072492323416166955982770576499915205079384514712258217600601958098764250080735139001625161247461229289682360095534019426713144817604111884078510023045035063131133984912818947612161693642181046017762304285534670608866631449701581706698983515994201035404124226674705442801413260031374722126509113665977639221593458462035876281636521149128299672932137834600501909821909373350333473624462113931206118624647046269135858534391767230783862058594704092936970157352818892655781115312303211715628157523868648519600199647413659912096556371463483108065919805093049779770315035246923808903922337231669684183533449984801059336577197944752816946823357543343301281901788349744422291356569924493605131744508129326375760778478540339669048437509305168736077222704291854839056723981988364928427994420874013178557322136819795919766337195461626509713164115393506303008281970108275984822180236739302011781446610985526292023468173055366613926640862576353726210295775822477721068404425467564982133457167975542634042184187225301478734362439947490090555247907389598137043350109625510773444516819877692719476515381019644186865706194748644007131201403212892437063691972840589003567451586339524330357651802275492612113087398259014932973195564211240341085240781222275463668905440147998415537937832180400186432909176043580156477270024401078740671400944235061086524334809345552059486620218343312519334188028311548971974526550309570726545802615022105133803385107798411371461158368575164078618178498768165052068667600551404760546591018418656222803505690719882716838551253603393064425182754936752117491301465285808381808546582488105621048323062273791084569549326573708694111832422172563370631258635014826376198323973195758681423106195689522479468717203672399428738884580231087870106439678994756960929247286529228240130374298374452085288956604117736995989538523335349881604805114160262120506774966978556017976278771418484772969675197537878636706323166614067497411471760136753357021070820415538299384640999024468563862081089880866008459327542675482222165474651068506090200260748613453775591230527847512564495654973038100555603415315375892546601001530947560908183588221052628167879289809562224917119858493061384421606177516634347462292156606119713945008303746143381846390812815599796711609740222527323226964426159851324642374764058786297185550315732658841665876587123387226588382092026831227926689529095538541734015216920544815401708774828266169832473291082685368040463792594693187912684250613950773924204759279389502730084314067538546763450526955270123406648064371470182937853565708579785999540131482255550652034931163757071790800664491238395289669797454707766792806704986912021862507398692962539837955197717474257305209160608572364299262559386304828455302202639334963432190956684811002486427286176359453485587123574698018112752100550405752547665221298320851211532275649662872147864420032578963224498134861124585178183421555068866189763146275770525517862601771573689979559218469386166426013653937930970601049936270803130037301277045641839586042365953197288444182910385654652719634215542492943052071616115839939664360724948112783158947729818609814485239009821323765588295364034143053092266611495489592391167339997710236971900675005116822363625550078498342100459344721082201581101385072781386102844946380273002507456646733098742757657026411590929354115224452069677183763975378601522315585440466210089004244867375514555018283066175101552354247741206041560546358226373496037378360149219302900204347072981944066278717775396836884113996954324239149522632848683323883233926374807654306945816728821465535892095150054448716817836821110464362092133564508860046418804533989020393107222638178209422229790940786816960018998466089709708317252105086430042510258722293788445011995564741482384744111026851642620703813823743436792220588851554448806758043129748469667265955732715322331757134878431368975742699883357684541201100659119844377312814572314112212966153793270403350720106798556862514065246017405428479901525525190164608330633495179838164832940673838629809167490209463344867849284871248273253266915440341554257420605689134030040987168548031749575077962794623877376053114945390808730578432758420958067842225602964832179971955231454728740974015466441142299127074279496447559863993445107045821180290286724285414989975567845402275630547535639089888034309153158558454894003352613969037103365005864655592173523063469510343620762223687508761153381908280197187504313532577111669812124635557352397772022484699462728132542812056023351089274459603560312774419828096176537757281044282629401210480176446139595691138938639006428938923846679176132959681520648445463187347153207196807892775643206235303922895979238534454348900376777019828857399346677166234023262606922701464187862412371212528615083576514771171697528015570353199293995356410746210960594801631338674755076560405328862549788612883729664102269798241235446486122251968129223254743725697587054148419881942619182048720008223751191538333894430691091445765114668744443330523359201817809383365895104124171510399187854115697832260352195592402256458510434241996445646963459180989489156027660096653322575239696046624815543101193402440683157892977302383809874836057629139693735507863452247572334299446464538584239157228903437901353741388077843722639642451070419979705739733420650985204945438651135473627228971930785877384767562908369998035680384611121198045593139007259278271049917145211442470143745707711405480671872365428696611925369545869181790998834361705599002651022394921915639016441901445448650115880795081664217407581436845551689913631372878480598737028066294037628845606960383356204860598583184296649176240417447393254228358147963573692939142023395305787871122202804268043795263941221887267298282338124038861989317401699657976828078943063929667585732457337807581541186889291161434786126220079523090462647253025170880563183506377620444055733286987693586455233299585034024622748453950256281154724444280455527155565513050982383469826648085157983514664602848192708312885086622996663143377034450815999467802680780434152828066550860493299331164364442906603242127654363988892747576198228717155931636068207827064772778928856953682717741431863407435885340881875808561288479021651844623365045267098523066474500358502520514519971588162816517473766504309087148362434493111624693382569712085670126187907152443302149882999389855487988082790709756332245890644347386662065475546680663806416691630074807666447702917512869315662118507850775213311571861876673223660990008852807768222887644419955261495461395708129887188691983700679086052199451774485036541164721275712639797235061304563337981337027061595460760638487257218789531341103248107759903399103936005304664777693965965365437547670505537305470153580617283353706410870257898786132634047526483968845292968947624011686867374027783457751671944099727819176830088861677311148411942563329579940811966300113268287641585581417906905902313609092690119955795361609975378185164890265387454690080947519691631738480800698786977152958286205254938679453766927834162559231721217031087273012303531318391982811862658945536869322815918022125351334274115131112109286263210878062410203196922136646056655992600427255372486129066362149767022176418615250694123217057592324555506114590740646041541792364889383116952968004606906715206753307134493654199651097860321910699513251161240473170513912567862562210984817162004308073062153716306982819596082239136404960846847657185223800235674541518645266614100917870413863694118231266063023415516009582911972026778871442922665079074080101015222987842490450594839940959279038029687682712075388149416038033596450878873066199277018165749455145077851100531531992776998934445694200624302994908770835028227185286025310691468210106664502883496287729948521013209524043034754524076032294572447169757565202234330593013721113102896525625652083128625784958565448890442011398028245921371047507144281466426343172047300500155230152891296759897499216495285485722608058866894052435983118306781252783728707918787737420229006848912243231536219772092337276913439332407401842329069750127761830609867006349113292867409943823564992089438095388863399190519320178933998688362061376501493045594970417608672392475489841295976706661634553857721672061482486626471922916428128306653870589150336285847652693036444590939349231682251147757315942580589576353872387378945870434564436074743949529001082747020502894694876175514503206391529135298624524220847796235740893187544933749782166873501716558290401606763162104592383283307258614383354268251193913569076910914191294622356893623921700597735873085998056921202424188803863212033179811901556400293154831770033009221486049462962942121959827247956196340607866364187496408586290019446949948627486264555338765272926535796585770147512516703300690575637568813712295516688936217882098033864212155033620204382584818959463865432454230475949345228157000012600581185350700592718789396605743349256763227989920586275319358612126314058702347550252332192518205456362110091334392841589722081808531405524414456903582484426696219975116314608434139781890538909652028161914216739244483117965656204055297298527611281636293691568304289771374348044438076701344551982462031719457624132788029820406640637759619204970158593032946816902018863672094126486952291078582407004244273518512922776090138678188924116468527362660014398062906951787561061118028641677278203512856463793493103017578260278703517912263300690203313339492330028130069517153670409288190434003679797881160492732805851512252870756703804456078639726550219363101511568005837574103654051347678848049340029792838820229181866148619472259010426490465243557040215143045372509253031931688385646361980443376493641239411244961282784952272316789207376775669596061084099620772391074397739310420355165307721522711688972513881324919178012394636122094593957391524193694049349247737446155675909389221103193460513117215763141282841917464014045265450672419766225932248143267146738047533023970877194541127842246156655427127671325838690994303207340851995531041659901281217798297366454275424678108227528258367831183018740244318024634891569587667812300747678738273272920906017862273510231785859151958506530262499865817095019547352690949040980397042707009854339844082036984791387442397307226596416045666771222942213137827276533006816211320083976802512986978766307962713071296199538285171644133557425560677104339747626861242687431553248973500318083976970699404827169108581282982447484744782650411583136622669413223665427471271722905942941891363097639372028311292007776667684768419634417087427034307112301943452293259268951241716509553740056957485478049551497885490760845447128987109231367739946405075626956601026725297376947975683714070957935851570575132489885075637769726852553573716345886478427453976761435738539774531896511266125509408222985138610722895068039187597981494275030667822418153056999203560840984763524632793532061800318093001502326064111030423448853636551810181928417329130804414524012848722143771725197269683141255495505774200330139645060914298548892332849507570632123838189068354525706157553373826280476032861900554955428353387482632622130961108071864690286123330792202294890383297415024434721650054349707735626509424697109544187409398591273372499681197547082541181802283355937997060520639586496460990905993313908139335130373746985001788811917748414715578533148534024945489966691600076376775150096961456352972676329251438524680776405898919820590214834623964053340641756158922203286751712080990860420539926565320782552411946338685838575323783299408364768098544274152933852269180202842183377003984716097446853978903601899675487804025262761839464632679822464065764743062809674965501980745442655580406175051804698640037443377680973223661936228371313524805060859545925012477906716246432674814351089719569959290808893314797749653108939106352174890509416144510027445486600202500034297533119359589336651686185508084096147831111713259130795525436007375723700934530010253770938292775029488410899465119024451054779549697752019075922512821179012731724861980339118737226390390206328577900761035590914404264575072312455950032802495632055325204811568610897933278014910117424150832096377687769713306511982315747163050828537840216618597048518152515008335422228046084124751240492831082733728502182746495354623204262052201816367488130851844918446356764601514167731910380773294684183767781914179207369899651879533822841089739123959301038472907559337505350424980093151259179834448790309879892618532067420319881099523996726937528970143565405364466378222471912255131412480393874215768525587487957903042278786225171314501311925796777437015201503957225060272998688958568805950131954885839762465314228718991200321271357858662406506784512373045613173694780513139716385422087317544708864476363042941199138729262757344045562976959760173787865065201941668760998906941766846599675308667625472864633128497917714474107395817513770811033787012591070985936418382601504382458786983218313237107152393923991404174745926727210127549774244812535380652192008986351556465066339376698239996755226070338464371054381056095849560135404560610863639681308218219933567097969916003827085636869671999897247521587617022605184615143557995254236099493898163920317116737742482295240448457125223266896830621275537726679403753800679572178485851035337489967650930549635271193415442117827069700639532527355534075923658535166627138264305370599661882797401907269818666570402263085149648343165626251271893132683198646329422734373412425843349955115732040494125189756272606484277505000742798551362993364218567891304457545263639798506101075979139120548510621002146460496884332212422990417010614688395309385967406051698132944760275918800402771845177439530603382308995860165209404171625904239830875965036825493867376989915192898372926785588336092070655200204186079110348512992883318060826464065942056117585968159198456567112089700128744378078322209317474920695309096898309248531945567643640233171717396058932994583238573358556391508014421826630409132592415898146764894787115134309604460314134496068837045536152180965808971392339137672036928585206621857149532066983690604371544396365545101111147528791331352807999574166572855214696524691408860481625693353780524304836252422847095178903842020339538262198553469661125074393425352520832489525192954944849142488426147333357549704371758909513377207190057092888095743218200193316723782729792396248556324709165677838777184659032105776613378932276495064962369417385755504273217823558168703816437913464650304468239602981230932945245949691255586797009172734877849120034135104246312724153763368746139765304877724721884144930432543868369487377112539447800521205687464403437208101151682442641763945657094626436747953504875190476013805832765706026439601209591688974024789540616061556714172685949572015759940956645797058575005263797903386642813455495497923238770030125418092591312222716195923223854722146222588142194619116428436686741791152418484299598492813841989419164384759559421855896737244611380321731072345200787329402989062813605680783234232104354306453883314256514253704023324879512259110641466341496976718609060084766140542786457332431775058615825342683678773163176850939006051420958754321283602019363898529814754307528355029165408505016098140698893549085266545489908568817564815130784783766011016476512087840870620017560856683957062657096544735406856240493488917025983449664416217547149304905233636558143903017192881948570319019150197147003579204151325736759705095139179364601636424406015946246390995461329058618029466666260334486123201963109837116495229551258365064208896629469487790712783455236966280461094687829388294884561033534990776210299137219421497258843705127800437225215399045272427295329945420307374374360507630002719996129009567293545265297241621812125020451786815289563219256147592755707032511644846507733924101153811585442695230544574442879051418911875846954694044836741314198199004420556510751950123554748112551100593181171742873854759513289604490511085480154757944112363645103090554174739025056131440362873081310913949940906797480154836298527942929685165567674093672770381274697846642816439420481230967125887318829282213525807668776578550011272196279662941336493453392672331878988052087558208388963602331505029949982778957227540177244238904378534602232968598550320817914951173036254258155108498537912149279645831754990730672454647521985226261622809448997103132621734921673869212653746174946405528658942502239827928728471228684483678972354215338506805435243905411291724943643121892065883452307160184568448158945632757195274310649840878356630369274736631845701910930588847440161893652448774763805001186546671374870549268892785603176027582804131867803658366206987263848944971753592455473774215652564280462588975683094655452901656203259494801936966934697551958903333276541974224536556746194935109993158729297522043975053797635260065186699425343478715546571711812115738989598768633823987238398073850670819667216052385005593115506002984044960570435264489009041505329125365284158263587416404248956080380912628594774911293915353942044058607413589084363302442155489964690837687228273225225449128636536078488715180025037751127395972944048242539686571569365680249892840581566704338381821754652192941482945341427622802061944172690520286686221062075190417217712375519848212739958813402648526965867843848156446171803810216375695231184960829540571141471220322468524824155418483056315524802371645995729895740616478871448358917433107768168478734223980315875711468598898578019636224147092341818294267694948132055773730071336984008563153915929117529806539603831532964706672866364720787344536082997333534820702731516739193412081826917924907100888476638166977136365935342513397031754616222214043232421312073805800528938295876949526131674917040255832628998396731178476916849656930040903151398593212556730715724136624628109667604393029832834498743707157363479400642058562015956429561925185875862680528346233987206615417817134545514533960536659456562800632885056873001352009792895219361155466615978416099397572541851239000449544863464032638610790434858049844529678836806364578482581211274454873924934440392175900074887389118683200571600103527873482191009873055863854949628896296379313451936093473939790973858148172601016498488093099219705295324866141900046423060141571604705229230369467587940388282053043288617828568937185747633187758471114241743059253252969213268628103194040599969278834391257597014070482647910434794453090263958351267317296668324682185636391323978589881456267476054347028795282309592784229621252560219110344372677723764567437791899357199535035525171578096436019505505967081909724827680135973313122143380891972441283021271570932817429143902165276350024852970602335052931681803350185596686607523415700039579102654200360631184288452280946894159536268240101399324114697142127832722223358342312792697978983446487955495197774984596540613966339449034861565901962098505531188200304755991876552260247631305582424630186188613576356309809160355359035211590000075491922286323485363501697271722790087949950205999852738751342975086565013081764958776584260089730857819858484024259309201594601890000682514643845288078064486071095091953290448795916608419567005042280700283325817590248340318948740099407362647002665679231155076826545279216628093691165661999511701904608333121089005900222851529748753039134340277684597851588844742393988560896923421480958363869298362018265328564047385735818129327455782958592744977441017686026779224240485778279146853809980558609172828522470010888171477786962851076802862330093498438038813661188585368939321829651715026193172008880421282565901443162748716544665713613931647300905240560210180559359811274105221371790654258189101576681494942044373204971118226054387566898449147345794193336237607998268710552657894052560246234608172254072292650780646396888969370197307695931867595088889593983403338622825985767616189566645291203568611597358567401896338949964851765516347897049278347597602508726609319981461196916409413529391275482613571796119647509335295515181104468016490690995628844319278650787726539614454094554998829079591242313923944683223518901792972710426847879422774148282579565167880139558370446541256496407427031032922429898195376349413982003792477802725840986883102142892189919111643639878259962704296416274661142105876978609918418101328721526612051049543919438859330896316517100697653049284739251814559900349954702612960607933142000175366587917386744698514286117947799181540585954498436339866810063200662781581238652692307377763857689136333117334416562196800981406887394496474425735803440616174019876716386827550997206505492464571448890053750786772915173877172347647162403755646813025796286369913199615631929373333813547990969392381553200805400517725307330366575954678591703345394690455358913946750679213170411073897857426558641389375767421162075108266739834350098289158473787148446745104548767761278996546000058149275721971968182303271828934804365278164538393996095442352695378292109446415918286367920490101018568081639030338516592008742483765423033872232344419710745474689144316905301968348013533046845357710012002935215236049897080827385821832717677773933854544798617612503459490331401673374124085173895696527971782553132162601032410822748551697995407221878119331051604882595465046552449191272109791336537067706042912138090568720170442538466993574114805369775058288756044006345712289044894909607378092487276493368957878691692092252495911736933847936352903533873899215032352646843081526975821567087193931206284891544637480210744588136295089283826857512857006871940558704856073583767006649631901891862503560902468733425440431665440220466033736916888604978972181269865241886425060457642579389613773627396632893813843212628562649412903300164593311632254036012954039189774133496828670513512449435388058302716297030261892011948654294328815346672976125691145197117120590125425413446877980296470846107158900029509446380464357782614877602669868309192186603727923068816708402336096068635149364430300069384036200957392240228600736250795344418846721585368708478100109345562575406063252232008348504968793106934076352531654524222047176567652471362914735019140124856065348500047225219798380912116430146203477224399708599930945550629746765487290112621582083256036429454621370892753374853722737794860820624705814024138884521276768093907850802539028189795845537956490909625527761288042545423225990921856010159364863210602043651057315494078592166747120236738298396420406951172673725984712440875422699274079829545234187731440076109741613651932971664962830293536358030778298451535321428860441017631281130414071140680425684835890556255015166195645563067764923448427371524857678490304407123130111592172173133439294969931447260050442344016172737430766756619266726672696373767384651831282072588294765370683661838935425918507886187464120789749330710176005634081545440069580804890294277328912249509811965098661661414820406386578772145799402405031738023675528142760319716948793843059856086438299985058528028006242405341653461415620113313815576494898897877256940815257086266943575245411173847956621837574112241690948028980966155556480875215032969000087488761314697030394148007160130160645017798705344141309767007237826501959229927618134261619746191349733285775925349011011406205224240701235834655199115167601888123850835857490037644336382439553354230179353393844502419260069969767260219582117955874025204629163341013824631835641416671208910043870371131108370934347890693896235583620295637791189794178851473960450935789344065763839617090754168837823450158204484430741719474605437567756623049511336389577169928789233188474311193025832125975052825319173120281616247498955788791090692402790132185618948882670408530363645933840494382600312503089702589676133267567241440800375980650851373360816770912067958265741759979310696680011881339743937784421386567939767731208576899268706894940110148432599651755807872589540231712282846785436645454708566878323664721424778091759628427772505503167177980461340101140653970192421839260297458269971360484290306569366487761999268902590219263062732922473851495380217118860425298244213255225712804662708908224230087887600594031319242024227237979736057055419153024655122722807736620187217836376799827402466614361196289160892455643616587033091888359265840538873014635490028409860798825373828301688109100990451592179064346045837415354515696440497529121289508968228013982887290976694193301274450409791595645508558287615868311517386149859243691650463434207274250555096017086041390092946767495757682475176796322806042746531573707558684724754590228641010359205307346137376214549803976151259219117878709535357174882770397229469700702769226837381468223035785455070537706000657423038509580017503963327193354373344172503491162303244931280398705932370065205460604698021141548925652381467859651680537431428718936455215785332290427111495234495506532141811542466682468234665106485774378414030296892512037472228786955851382883941275322514688537933062699628046869473873634328078633590470263719279346534398206126540211077283132572002997055176442011532137430463749033547686361831446777793247424655767779516678105064514173486486548955378824940178942795713944050057701373411023223571293685980896582306428738174346875204170838699891282823727507335207569618876275124748204485834771364429918905539827214610479644166807451320328231454071858630412543517002988002982441998818870162841209402212164252853190976607912524223133805515116049233208075412751746109378196133901196784336524809462446548949062694105290112067622814207553153611202636381052232492471529396364842355516093299901866707899481977286030842663558485112328634280118060068074431815870704990386657354330630516409837302162641476620421453451243325910867298745685554346426696448113612569838463600031165308544780641379430045231754471397610860830779020394583501493481111817277617384007790446164222899149868419148986729852932154702933034313084342374186217281382834034098476009059517604797751435447664388678068760103110757885582507246462816547897418411695769890209504410984947824711133467856002142240178180322637273198468835897549960689473510013945754495418399795817787649140165982661626543922699810370287182311106348538484325238994206513633683879757558174725323715991940286466372325052336111711862864017223913386396067362006678049616019479012636788190101746352531535634459629788313689403077606723952490750605351559194958123957055253090158254753707823541688646689792323342849713944058772304955142036508605062902504095818408579415185670037065006233722745096856858967420682723073155722856670553244479670286139192627854396100665824155024052629728583205260096210856764585145292116849278498507524286439391389259960220164539399683124556119931576514268715517197209165187785267222700394651766407581033655121907383669264658287713528479531273448651207204186521833101416610898671071927945269614465874882484890830763788035723033947522671818660342224332289146065503729328597017572423640651331534924703257110566656859104264647059969697699327264908773067004074036132360426496637368529192410726734879614951303254280985700847123796868054451446281921729634903807281215011338274081787293837109172647121701488272619932186156531590878232197942992910732634339588862501450782559150142883313561295703586301358929632413036152316947895309494994968174947543687437361644915239870563105236475716468497721340584865545638814790567466950559713109442639362075307586963100619070116494127356748742323741757801430660042001158671661506608571855129665950265428804808658514603573497475143801926687202422643365126141055292604059840823242867071790912167222302408728387471082974495754702630216715893397851593506901013251466550846040030369215749854130814595013235939478411151179372589374139557826089978611420689188874516465929492867691567897028190400386124845195574447584414377020974435669867903237966341984327325313377454002513813596742776408704437298972583823673995820740747558473715017866820562648332697934500978562914755221247945431575108802929390336177355574604352927965616380692762063254926204558248698302089150585910781009679002937726263224617479975297155552425212565141311499065050201015753418682311558630551636693844612774542389651834085691154054873475500060041661633340779535854278456442672143175055792939151635901146649699224251630173967000206095371517277709289256863932281005244446204164224255435486827934000353880634153246841083168217753380617282982570341118258844664742575418870581713801948990182553985210543842509856920196346515453935287206688619053256994945007299382455648613060010284908639889366453291063763202627132364487800970669483123197047273059030003269109319725352939678101367970854463868567963264962401895416795375160867853919797174380985587988587341119306180745251803522532024368348484350047907412764142096693816968242241719276437861421177589248079138098659638565458916487173449057573556916989643049642731134134438599403614395793894739065362170267238004952859937905741471123050037992901365675419275727314773650746513108504078596501463822063506212106064407981162912909374782017609163785808362160708360137269367014518462573899182864458694599206701214162303302742724550980521652934231025240753134169095772198145855402255512212276515946299333659920002311610082857971214133138071165472518846077241301809047196653267585019182673914181454287260959166280849997982913314353905097619527523253806746572128932124726927362516291461821338336620703277338697239246477957418715536042985426568713159515247945475448820063321727934675890511945229181187841645593493574716999142445155625208161433785904698383032755690930142677113733706126480903919329857661463869140686951417212791934754427290857676563466492648559178953415851154581569059648557695164468569009995986090538429935595855637932327443707053710357551283917871623949102587640090220642769442386590537509436599798232065559375337286871886874997021438610754451476243854133589288520887809113832971823539797841459028659357906427415605198852519445460518634235070705027578047877915052839947714365069686097098231608343951971644949894291937840121683449144040181022155583336904657933503446934152966070614108801010002634626954143451005036420888782489081445047655958563135198442672490803826076835645875538409281955614079388510479477070389841591924636454727872366609331044883551909273768380395910790412786156237016734180425514981533287671608738295004755979107241097908362094389062322097368671738090344949086256404321368665354091407137837846454883564259052427868535296523076558701250733405692704343191237551545670139665783446876075844306954955772264822675368910764381599371851102922672784779996419616382502725545013660884261458623460788469804092738535366181477099006114969540339082563696619849552958106739133463595083520335529456803484614341883378748027970428075461372223426582033387881279856550716302056587203901098090708126245179682413117057095944177264616612087486915300139096546100522668779466246213414397501792378374099456407559478361050655862867437959738059413623256478049484663093825682971228404495289700017766169409527935177182428032592096437163937200664979567863220517787592478279312981207325349015962922448932535311387137830878970834851297665420595552560647349100796133437191560297874489085540703986531609242663235440906579524394956892349065566647737698368721971871781520715306508085712645821324581078442678856363529133986267646257446258789846521838045631362959575703838619333117397021254641462056281585849642617129826024435093173085689591966309100080077849172521148899692159674353762310112202260691641560567075209403241232606797801746888868992841765851794180930485897467122352498251935549674578800080023039865050885242742552404248331886583281459772578610554555998598474207619537489812789696675395701631741214937590535403742296231087731170846760664057145685434347777113210618815339525299544367093491416478921395763117582193041335382999516041799425251193548417374943268343366924789322126395990787568577304993210364884358804404683154807891404969790798404196650236459531408254655686159991924707199021391184067456364004259026056393912702917768470455403495182483300783737665641865273041892800107480128380888546495001841372229296717658091043753093821247521429914546831223293445561705720123950005539208969701613077350015720290251933957947833453172835687656046264658531721219200454272479039055583982846537480815173314449778732430714476658970012364580925226778818774817913786149244858971986685340153779357185863417779577075590993601708659046162322106953260620590581283301551013099149336221584595202020964839059318287687269554840485870338586180779800066316241458828570144096083870145959043628157008148382180098386270905723793745669538690886706819632438203707623213245448651546832418649795308512139421453235735324887186983704925292642712396792678158477804013336285468993361686214249948220274977736669338533048547213880513457544889311196638847656468882564083978103109296013593596522009237140422640097934677746395638517917313845166691372589987997185619770096648192981771362582354509533510369391015932823713061391973433799231550901762886884800747333179566373420865140098767899070569261305077608690728226524013446235148415088346032640987459154454742232213338215090112486615501656742199253334310756947176756217617826068795084883779172156207418809805267981294338614047847323150310352858344289802024713905507278775377953422416408398418388136567072577970104176697621135281226449512568471631096384704041187632429513947703904117600706164533507891102541052982609232125257983397677576692344886168182865253347441346415579878140596340227529005162053962242964070892448444658648586089377106737401021366418397432665240931149025625599805398665550639750569668490655328267038347057066611615523949669261592339794382528256979854642836043206274853577666795209091488123634326558945555618114305913953344639880007738208746507213068423158294817888767250217744196079344486193225599687941458592981943837973863717465420529248529400529792554963912337461336610533081148956920561663772898853861380804913905072402036744935208408061447471809817969631050355022811631917903635039702973035841596139486893721443375139853742459345883651615772930800560899134860385584132394279004865992756597376545587259466706857267420846592799605846824711588147772223429179870324783586084964050824611452194068947458406977652276133521923841993722658757544573804992934996773375951114710799187049307338437799072341903426704351343775970878007100555674937718164716083712399062456255222142933264617916913581938461115467351103778106644330784263802977946501182754433281222714605341562838812316772446328830590583333671008005418028141656826436174966516016238703183900338814956196316077182719849165101564017510172936965663487603320090626991862872992067752314355495694963752025789303074704615014855233603856834779396223331434877816261389506187905585698610562218309245162592956013885011946966711810058493473479087431440183441598793150608078384537705571131599042795093941065815459374972829926150286884354999141316333369261375554000469292485657499656643597470274581925150944792309363340441178580352646635013448997636594039422841222768206946588693082751294647087237959694872678919690984443104635892176330470426421115481056202725416423654518346808826145685259359633483583778654484700134252796759690416381086827864217849482348899378478003564460236111945859212669359427446135295314355657358148078926504291596468609530969490633610343653504469215745346790718893925183295002777525320334935300510836824093443560762109300781369025952129767411335268295915336588157149037777038975186162647284917532967695351090356206676623738779768989924424134699517127606352523361098624362345705495318368204802535890955364024330801200807695585998466470445151805735764427280585602533522414867541232766035602227398102481994921381705706344473483653590260849746688715575038150261915926156949829670825874185399698317117895670311117329572941293783798124265654140232926916427302606432901761066610651829048919206199844216334941169725915498798981510726656237967887691049323475466955705269145026378655490556094962121080192825696479999372860905505070445381105350193015891409400810540786906437064417543337047402149968277213823665160987381183273642551284936360497629381551913315717482199835751320385350660175167850509725987404134912598074181302871773620667690286214147826894421570115652107575652573862023451956825441982052980421990235739556450202978844715287705395880015261563899493219486301908533226211628788935668834929486996885976440303606608803326848672954012636875324185265935944777515060062929369432812316435497071700928526157183116977647611914097223733954457839968460924658366253477960660444730880225513980108394212238435665660433947633745536018490561140423928101059872968276882705035634769759331041777363665541181995857910559489232481809284554699632281557851043815960627963939979240042863753149312967478393859590128077424313608823021969856456915454980173222221754430415929510849965300843198522545917877163074938658440654013932884151906344240324541314057655257194134252527796653941781640471324617704532656295268989116974219551797758043138214881775123802148408093025837529508716714345047170480114417966081286783507582888103082132114148518752119215955750224372078769366560767597115164061641111702206856291349190582547399509902299357367028343317532002734682312638915282051704942630534337485657376980207846457485478073192652302510374348308317201418161514695493929757163601156095392908727608203516111922030357350218581331147334301161545434612575469498514559505938365640012776855759044105729872902712254880880105584484471402806302530299499002495382043618912002641052321855704955063791782684106734251073107941436441762114715578083680483084902078092278366377454818902891030343463801798383527153813593742867542946984294992853580391570814397369011401689160903878451811103823670074479145960269120967549927247238790500404265107128654936975119092225584085157828751393312483041959937922181287403065649538188312246266846229090313336832016674196784574379043818628187258685310201212000354538869510928097563346507063357881744778498483561749051502540250249412207534485533518417512424679107860381458665795330420051701092113238332338579731476166197012604573611963359793167385624190698269663479050583734752856344175868619442113163928364183049091435559512439660476142919387046082282898148046612053940324430852801999374969688416220048630597342215099245413403750698149047056713342870193579496566602997907981780944307277990193605241512776246845573259615511020342907339195651716962722976868574552396734465271458941933905780157661561933582545923866499231888803236703605825456080242491860893824026605710187900487862139421770052419129291039059093602752077357177535967956218480925574310824176746105628720366668976096626687858195065234579351464933433076888963362814511532237333511216277089311128883442637364274134674854773540162441194363421311032437560404150645587221769204982924959506636589877678708928007322277084856357563134998684597398535232451412971868415755791519675334669047706655394970640132013410443327655704381752660350217502927494011469940034151174516771936455601597194137640068698635848904309599289952096169933667238135677630082166810015122886194741695539010316003799581585662665943221721990699852645356524629068247582544992589289333074593756006749069073156036687310114193212357925043779092402745830635242987980265809613408830383660318287394468229041565867513709609723336696402708708856270117889024376197415530220475561921342116456582164051336898480473205444514517233851977834454058878596352888665981635332265185688729049467490754949938788756681713184578801481626834712390723000306540112663386887092564329784445148114395381826147700796875401713199730486168664908102773309876793542339627587530628178177123688095932206654142633612615001223535971132602693729056047435485656857456133675523117586460974035090809611603129248458316649089160877072173176254416772328163853944003082984749266220467419557318109000845714450814641170565884828766278131737566089545146832719168158734834750833095583213307007604055984195461745316319750045986365097254005527126026024782199622245203447189981610083474648504135078649468225265396445826850553204239384066409986996128474096823724258919922917916993703628255978553243086087765698868145064577916156106688302055817616174492138887027498169306998109348679899574000645865217743292778018756228437005331585521960477271950232156827153025236853100516188295655130828390678246651886850772228811012115187536380824267918465181700466846519207633711010985130168605431273537943178836262859222990609233146165097437113465829081106515945745515538236375748390509641884479022712042463177436204214041135627011732704200226552118691795692771813611491925603679227795691761730453629405537333218986243344119744472735513354914936097344445040791129048249984220178980750882286814753221238592219314843429453726026818546148956593479476914790579667354940857982594876718203147716019870729647578471978460826128826106575185388735782986008509519093726268565324308429708926056373570936684688906154040753287359953961419493842018088424058538281731174353356758788428610956339964513307340127149874328904754295076094829771892712222612783907359887917928753425747786335461726489980379941295787109786181390341868614270682589017860322372636288492632678137071968597801408431405337382029921423903104448969742937336392229518114973510052666972468069637257076761548952844800808445997544793117623374003298026466487899129241695775094950692220089844729979858249064231133648851449689527212383060910434030962278035828083186301688791211976516445415971911483796993708303520204627011504526983559133151111259697989983089273812134865482821258781587710189815353120668699569446584522683919018251689736404611597995162614953643762081943861265024656333769202578823326743170662015284139555723918778298124448430783162295203490708530861999593746197781401089077440685919239685115277248484052100602628010611786018252731232792533737894139035942826040361911741836896059768319923684507364906263165010344392402768135032331305899293614649488230115653358090423856450144879177591477414855707547572525853617009444339475919576542992796126237781530008095744544662868656192040979621557082222110317951782437550093826106735944698990630370330906610966997368080308663251045275243905126076104251737497365690205242397682022451708885240414016663798960539842893199601032354223696073613508819720823444258325257000905491574028087956183679842319772129828088397210925214987311509581287196454603971942330278297935163040754312561630280089624043726812620082245454804693542407103737419853629663662964462543688559209926748543158546902723475283865477788533399697691686444909637989026288343181590801847778107431465996428940406360770148981436700591098769198459090888815481614187839530750309172762912706222092505753620144409934999450698881848686206682996405780797756847022420526977826424044821565303239253182933500943402204641968491285137529483983999077955127633347634770587842312803416282597134231089616246110679478571195607096443661185149163251985070554020549774681556926953622389622481284399936545185138221152419609574681675727451108101423280368981505467134779816413063915878337874591859629998557577806010665896487442935791051603948550272275915689407698313520709726384834399202663045300408411715243974647617266179250173493184899036182609052716564922188431813396632881329000041117447075651310818212122785100666086557995196679446628842090787583136271232661240156860459120964489433794277339528653922453263953576659501904838140813657336028659156551186129862858223032625376332519128771536275790266329436720651371103737211176833349502163072099866187368706691736785021379870669538251202724361629229467236162749944618134345928703853134249482297594273876484063401742931670436150084946381286680318631405133496535772662314470335572797825411914104769921878194068877633295279643482554105416982951580876157685674163589392991731258764385563984004110502383644350374236045966435529346942596747412394205788688942902610834860171566217822636280145310666023621553949382630698602814970235230925242385269682578601341678723275069199223149433686634367686177493256479190720221428124727745448870222907891247670553841030526441068552610952497867403220570047504350872803962087928315138998910477702243233572896611992990568484563778609453365484204862957147263817265542452373196204051570367887990710110286511856991572347127888090476765339282167970037951128899219990238963714599396945701755596756908426634536522582998202087614241678435492296085290664037697718231084039147307940179229647452415409875559250354645069918700802745193638067620772798881510504451520443244017516053794070430221107993256475590873424485134502609479716759772212598981961313139616559337716528004420421750753067946145023087664040679367861809620493319211503602247285043578866190053421699852682654273332794864683341372222440732144242469915277262704373015752482458273322450557802229638413777579602283367960710260440905906185702443837820788552893835803016180526737214279069841761379012603754077396419230218851257417420782094597149398511892855819966828253495258467040487516653422454011422579601722147227589949563776713155349844256650631541918656834373178873379723672689204784274995635759845763603518522914847883359188332461713208343946354974979628521169071395579563822510527955073411227555611241766717855021605085254986306820235869598258081634412278828697456808847015325508265495272767150929879231317697156276286776542881244637115645539923944789405136442038055902061222302434163958783706468979009245512460219708862318574614959023954336255871342235018794025056221377759269248825280310903859840507818591871901082275804775612530385153382448396963037132055889950279627059376557029059357826013961381118292086685847264452814798343219468581331140120454355273196357798530358938806872399591106351854456690517492117384631612286876669570633884325933401580671487702533844886313015226903130702199823011526219135260314236957130236157158798015042597217104499908906341995571238152562659677865365229811689937904426872412559388071444995174930537743959667868562905811867940279254266207531295857748925765756941799301970173325047589760482430605364134292258875217306398797029865075074541108370891126870386831881584653046251391586666054373078669553018964786614515872295005454733899962298605661507524169659627270043439020118132486372571094142902898452361068490452293028835167819349633717700958018165256835548503856990766226736461436643377612623846490505186767640158182048421384007093431650308576052105883557174535533830877450955584244429202472324005964337896364768070428662520323652119802803261241822158896595459285207452099721855905010390120051043879284411977369179745695104447092602954267200247079258067850633332779204573007125991629197312058319547348602953922861499815991481787198759223929867400975617505270926560592017034928953320681894300102121796645883660253402025955163137087898872376623058143081932363865785396362627644912890830994992841364306954046408026087006098280676598481526476994585312366379723062035470538893443968155459994693763007542702641386646527117288602903511886376107619899633799534044812310231476879336485771761813140647607209795726287535668924608916934891232236744092710186076056524678034844740927937620377847981759199270517843746278303097011449055254495020317336829041336661019813970820850025919541944861883060071357771066839650889554890687714186256061207506934006368453810681723941037073733027300810793319671304204936406055893611966129754841772153994424100510323264922364608130477995753814694333695583202344977538770015276641273788695587333724583904659543580900358898988954062454397176459328281306207427398442222623778042979028733632901206558297347086070239544739204733794062958651814813137763726766244232118646576208332780557879158117728520220896147463238125753572471048808539548763293174485615592857618921084121489284545117409181933161029368733117472003234183539900099769886834284967447574003893256782958236507655705107640680569993039060426491661446883462011161361711752055055184463306422820558088946074894666889333593357655476477504974514350940407720097061342796470360815244221135922696796755790429500733980917997554596226981741310117085052684011064183405406948651995250989183721472280555085807294324456779964756475410798953803857435045490858086997979658410216504980844486484161974379469469056568811015409695044205326582606502906215666533428367058084531768153053906882098119805802694172885747085429730678930956552801880402558962169738598542888237709990609656457961140012626033905603821084411440888909063495470957238542434239817638145147688420079958661615825822406524861252172291964230689611154679516073552570721320912174515804702535804988035389583360037811892685197498114490380577525018470296062308402035893622560580859832800965661602936392820779832306754122995702803610706313178598374421092911126778644464825309027615815916510927010328159594245915112287629655090581791536531859019619353487906739872820609865661542368391557590988402558749271080815496459475123020182874290415223344386206948719886795027710711478433570060703659794981016807564763311931369324690909350280663067475744511102273046611784181884275176751908892519905879606847737816225544279151265466359087808308681880129378132800564151838974716030530302725678294352262267922694786197241129028126934080096788213860073757901234395344775129107798768824862242589305619719558090727657984590277514649836786871696107801621211549539569463627655988088835658306600398183399343854545494319494718837522666077864823927866392192722348136226995089514938805056796485476012828178463321743183156290059526625788379592458980606802488405872645914718815345231287264682956737793428090625945297674969844452034595470240444113997307634687518806047724588137450516431153355154845290720498932873980389317201570966382479267244576860462267887953995010040668876574572174981109645476498445982081353376643786380776179233314017870167086003917268888482555771380414377044549380232361183873920342886372082240745378721433554950504248151176826902477477914196700009557651083139684940306603906079800672654742654435301326413740034294217302706013249952831190544724828533714765482032866231908264730924517284457341963394913250686711993108629870825726263547224842389051902184429676260480826158612894372210852667972684024866034980981168617041899767285494218110785357681536058535343723199981497908077278155744606744569930895755421546338657534718909254787974663959960480036939608625194215501781917684624318306483944516251267116246467614750756022267001212678349029325629872901395667875090404409152853159300654829466149632809975986752671252359987200345670948621700108109574675556437314381867391629623246598900969217395447757135337562591355942687984062036991572633581810507442485871677748573124652278551247275206027099914343817738401764706823433831087421060427552634057623409439805508698389119624130722597687466503445731720814342277889499421940434046602652732221446929476340685036696218260972131392882147570205889509293881733169249357392815684389450464172669028564776976739505828048432761538264081238235102480626955581931632104445402190073829175809930301216544692611607663604257973507593098778526820589389802570198455185030538345624271924040310106382018480283812530779988650312163368284748822609601594263335432302640747288015796161804962817649639350421186279280928005061795586538706079837770549979555890186099987216178752441306043701233838471076211555267733668200577914889426333322181721521799767986959694874016150991592172223980164389049470925147762080194119709311557378231816093875757718929350702545173108398918620798507233647610445979133192658266374389229726267112415956240731303752082168243560891307768927912245541255322156194702706069720885299647200889396746371520201103893227721227522093861844196886961818366318160737723006611392140484427478049867707368216151155017643138092626824859479186252133119105209037042679454529021205163573728449222395396989303572716265580734257239626687712780814308215135575765074664402241540034873089995355017392274746105162528493034540040753312893594488247634200823336898018803155298192563219138040570509873285423319913940398439841304501992605651671921105881869711174127132581933890025475539587333969655153314404738019908056130177287158632918389996425358700776096907178419571376582503818896239635250554311124091501493861511647671927268277044069822170343284061995435863652658763619291516819377341346807898305465836003722870647956991024325757211652620689037287249897503277826392463241341680451151903678057702532750409782876575318425364796475346239043250294137503590502118084956482227187454135428834932766868643825339696452399936283221794207412369441885291985221514437592606939331000499989124719437033052666072035623485030811925810117559264381030865659316325110472203395087670009732549059447810702855444183614788621847741054884263536982911291006690713253471405487541141825034959678348365416347268233770236017788958142440255789352442479084691775920545152421492490321150370356075313265966415331862430114611615752975752729821860697916280545039143503141906907346327298629830239839239091474459448441347224736869949880265558728479753497152394143286990880492373869998373676758111601890698283702417257954518336155035036743123243348561415024850448863599846472299985062421360109957965071739417658344328981902026417468170685099299213281564331714083212706253835028596136246867844386169530530736440833779981069392514696821891524896702906884979762226073615880022261377236504532768980857738917706641797769548249333809206947519386364888355718209098698037754967426863904821717189699923827658555725184447219809478790625294977794321060941373051952435411895845040284410805933337789001611799757752193833369040538391573191731184977686141801216590063863852824198822280469570696119254869821211019882248637187190561579246724825043389840700109972077084174941962072836299826654225964322277798406800984079860003900384772019871541480651579390220742620205348365518728226119678507898411876710100951389042761490849220219147159599738668544033898742890868105114362366000325816983482655079066329295747738660141293081673811487551249992745864069959885192797203149952175344110605202508301479462701243541538914770671886004770927023884512636828298369376293768209574377851619916572133593572033712344353807705194146323128161940499665225047337444492359695805703379940221074843707226883570242311856718691785090120701219050534333803201779947721582023054170886095943872978477018369381380629762683746052477521901586100043177396015589822228107136074262136961220078904844685273738783090569726926746642184725151428841534711316266993648099672672201895810603380662929866261602187103043875439443625164641842926168574321389677358270108341982659713820695523217314003071907573500762303793873426590332743005696441894896666227184106405797767801285325164920107839063835852591401771388005070863550483124303289077703845494682593259776282174665215300912021491923626259006247652075628862474352744801660837792926502834333739682202810411239934329047777838971174916832588299282502351295968359994022040642474644365401311805025028352707321645258358129775540173563703902002222001070988755301617309778135230848409603952760217780810561833801184937869694425310222600374913885753759828363921947096739676720038110388264515116071250924699237428484022644769513613980650483137227317503664337045359736912268449402100630440324470751014949562915490216970892461545701678346926277682924484666332679516467088816985436887192071406380167181016237633789167055231622815000478779292390135695507576333212939235881214334542667966825219436079550019554167997617448170314039156450157535249645168148337118911298605895908503970313991814218060775319985549824956184448297134900713735312827317327103656274253950958152309547063307744461906289976666909131806841353288579074002901647569563922365130428325671745261238546067458863359475556456760661793867186058269057065480057671551124466507617855756581943370256996927126159615747431051768483120401520520000041163019122729719527370340140671099993280477816258818918938533750758692579142114132122777177828093246730346150124855671095163265685033588509342202862861051776241331702512808158592957107061409254453435381736329374299601969001188184689578031460980655887527517372308960500008293030654710485184302747269997613123848991134465267532052882510158114267642078288029670679303762184765491416856600597655106268002926239560811732399110592143915990868095639393577910531839963140175717327278391708321948996566357406702008614031804038212338285557132114409885029323531436074678170813128028631937836388552999633632419218198004173427903979283368724774337847892585872612208771537529054545716148942954400783328901056352380223652681826391218247891282013491568403258822322962847742292547967427683585974992414057902047479957226460352986440948137034887608609953809231802728872889933718929818329783799341622063560691271961588813276507788538136290697187335239436813454671122104987472731677616373547723637308959483299896876786738471252299366040514277258381892112343589935612059525204734957434246045133265478011951466848600214493339638079218330240189541079875423376972547373677564569150818100975996397074472111204918411268725855603948391072238780680135573693752925505694336697997162217737242324121478685319977057180420728671310097667944302786242832480929360827826318020814303823147586212080992463731351733630658737576631956239241448587078629794465850157041187162453873764114752663783672072611996970583202511418371013438775703355111743448918008674834208240835207818217338721863472853716888032153162280132474646431394616354509286186084833992108844458089564876172752924784456706789648204422784756019614812207302315602858362358845810563290729927719007735717628790434005607383971749268141782077055149064991939258334562170904775133724598614247432262195938857446361075225441962451907376317027237145842841555598195397266145337188122654391365764387809208439648157000612777501154599195543311620543734241985873277044961286554121754364057081864378889329387312020337659291043138544637138431181196807808254655196280475105668478683422259915354797105924764746942540086950473811493851674957328420440836187528765416969792187590384579102695266028055445313718229677482451436894329500720436205916222945208316355157112741477369243597840025032764217811446470433483244031105440673838834664868079575212898230577496147016637571431075673987953803943989893139497962558518968379328186907855250844499465501579566539306863818859584350196295717354741541622277013079341002082365534677965603343006615971948908641487770392976813707579811456811910502562163895099340966619903338904913337263331600709238225826939598488089468195543958792287439528862829080547559639404230233885243432842245030430289124841659300648343155644285581816001524321787429081951201076772543683335494155879042360405690153517557019309201035262691968114183154801741834680072946767918670262607461621481992553673696123971437932232528284986817718240064306080247943901164746206880112843734517746222699471244230647900627481120457146267201678467994700851914057927194081074759745262304929587852658262810863383094945168807672626677858820396927501138172886621312936013227090336063953527891874003701924099479258873710980313797870318756675278090755826779675080443383395306349692208126681718821543550553024825081618109929646038600562674002424488315493733082383675589715283997020614168969035445459640410643394769812383978426838875022047107488147072149665006221412617982296620210189400602230659798104823084800100181381336064672821463800175588764346808240692989819052644821684980852947206044169546967778533262015456427815294857830241494609614920489716522041665882823742652840281637938449575553921420407882369206189285030925675736135398941596134697197282909160345640301712472325541309983619115390389220173884780739254060025978351165389123626088880946278094255030865658175777825328770545445083457668720074336603778543835462674115679862481668891896430917856226681996803893265161299671978184913869223056414425567499028512772402738450725425956729196920383424905395978310481471084709221317348393589702419508133077386726771480006658868833662309008472410803251051450243436639904469551193717030816671389459432034060782232152208675695792257469719983639987735890339530948522805615211005750888308947833418864659370593322473854583952282543033366582384303463664438296839948886520361653569555310093685480631004215369617189256924737677560078171518364002508085742949369781807188576293528188964041802135238781170515267024893288025888865258075309201212881769421312675852945473793231157086624730649635581082595069178899950701902666906654519532232060019487792293731296848198474795623400858020033008497326123861099941299623624358256864640814750498288957680725483755949694089409990491724252416675148094091129909867820031023396265170303411572990265969834699502143727101934585495376421583458521128466932091259387421534710901771481291892851640544004715079045185633721787607060647416129821601780765657420141383188350301559179267793671277382206579103136832775669728020727328539834649152008762160060542304719881854946311055443305296025023154228985434094988913366729151553336431464885790109361090398309771270563706145270570858165888109415212843258618341708078771682969095234144775196249464081281220848521984011561054324012957696640461607524502316524366451077317811079782170824363299317129751779307748289238501407262374331397580769434553828152009276747330800845428117770010655848434894780957924529859753895840598061167060929322162079003421374940713720052299050533320558422057517472708128056552037537712827483357502789470655289218400268512882893247092154656764719699016018322497820129381947679875931895921379480330565458866086548107514318011039660636603551210845348542298155156747199473776464282421574238591883633224315808256751126484002117571515539099231593821103529678775205809811726512284116221416590876079284171307864570519896602627736487219796904005298911032158771649928453132748025851458826659979506173682601316806479242830091921904364832377361398785374315289081069283783698150014675349676264453155036043117348361235768943421973711412689165834876733672414798885402186989484211832249646065279133803123807172930488641760827940667806679374452824949818885510772858411228938241980453265271255718965432426884785206651385478939549092427539212331223632733420120205871724486268755522717218337338954728960925964056497205354884333080273004326758283303971686675301871668377086040620302556406260861474928246923097170287119803467761276776351020364960937998471866126057217816854675929493470182162545165315145586202370073912766618257029689814245737205837434892075161250393837743649567696771800168892746345006185867942062153198613724192802775964535801066460497916985429819589490219611911757485184367724945555747244769957901963506749637701188433645532302874135948297508987094532126755904802983375804616652770493444657644579991195287214541725481373039824543810094503825547146999870608663334958169844898445519387875131320769004936087008737803596327193820674450412655979899999140236418754309953745271515615847971942327993182703758219121244317993060668832638677736548598395401697572298821605502792483429174279961077357717549293636958255414913227869524479196203892959709177329103956348356020391337407840280200404727569026312897359946301335253716929733263189805450204872716234292087734682045297570387572622734438713223135151539277343028235864457372870606767269672244790371503898471122729505722236000246773749962911754930095197956437239045833054790718377431631904755799493444280037336839006443011143063202542661582076719937187552908397993614500270560248146100996725126175272274296655582444141691778297319198696120319793785064794226146418039747482302340734414730667956630485378605529424511750951819661053212684711407354189593417495346508927042119634474415628277786984334640588218336737685882088709672599577354514136675833848688501869356786810457594668051951299861441796330527823782219498593943663877946155855441891302247360801593653909123029896378576950984143860345982918953731906322143743082199370161467629142059694919547184064975796606319201355866814525106977970128604926430889622973285839271873547520288655578513642627807941855875631313012443599696506679504226213572267640945261189489474616436946701080981285059865331544929202498326870563744676677628303640362461610756038580382251670314072002991772913523026273225574989642808055616184671014686271635636995097773519274826971788096938479956847653738617146227736130074463320628591507343891738263907440615269590290569910268274667866137532287088931345739724899005392895061381503465955033728255553280417301021317760248355678381447708892824787385770473908779631011736401234809044549890576470643647209782944647218036929668499376408327144925032180793050211331732671047333530523631044535062857269114290467657527328745526966644653260078787719178212417645168451364307209551615291995028901748540970550870327751010401081962963293908229538995526843336339386079589632177142599145312165171751557048886063296681508375309086666804841512172912089962397742935756146406054580384200618107959574140947208681347768147896059230755893092801174499581477051424396527900124227869516230335113240711980430671067301192976217367958298783429777772315444254752051086989531411380721341819005033632268332081369031515878369312580641137264471039492684590213154336636631293677280180344526771569849413635717006149820903225405898459931194682465417796194788356052273549027890802246453964842491326361079606136222081233683570096244812510525632239590707961063817106873690021708173569940449331132704972427281251183835839746417505548373321917833167685890501570772016617409424512746546992391383759817275489236480388075349047469334028012735041333203503295108200212133975535460132630259181461365743118476059577677251573382328565725623150526630376481885460400139818990540830948695652179163593502667805695503978994785319774317747330675399996378099237910198040983385853188384155428855405507447720763901392464816333253283170938577643448362054363382674859768545079384559603235119425194090656467839443378282902762773980135662007246170885814589013951041493575676103967953457331102867648486348668077294451314690077362200182832606867465054502095931096696774833313870011386378535283763268707704900884840016508645214471565160737818623136848700071125311786817003461928397024867732225984567042565974357922440150444352383356685221637948558897433671597726090632416139986969070764524205928186093969899932922521170960558229822665600661505180507284029547209752777363017322841807688142081249552396980427416659134394813637561649977707597779751943439286258002521546232444576056176574906227216022187398322290867278084762756100594589849863496081065495130342382539466982179360032910256702492378620747720686226771441326346820124287556218142758313861510318850086909611042829091720456821630530294790871625557534916722830910441967047789425410835616981478376003025980234550551160652464459522895748715595741363433311207913197580856016857402881254892396278038862066240266751976181301683108287510138220933493713328954480577478704088014253413469695770331834119745293625851273045280240349666356821990038548516133007869028349328297614971910320064065530265748242473170329891153792600336616398384557390308107173088367136290654539000918091928228704537623588808606229012574116287621624752793649232133624556694256487755337273643821912813281971673643188032542919365052151925813904969032427413403613730062733166004765008418203924978618837136848163884443656912859609458983425644279557621493201488797003691795535429557620782103948114221706645320931896339225345492599364565924023237837589434426347328860924371873905453738343407202364251490959424939839805440878062985472971666339099100553627814516702387540517087074873795482109997171025361279440662503721516457723670537016302115398731837200684288619160855117313379443123383414358163325050588863223324167601453703340117439344478072484905407030903444339904910548144755988744019461175911891912609510370343105638755807613143812440928380337781569581644892802759351778955199897882101485962902420222694869096541148571777697203490245714054281562774406058887863251027829504291156035545454829889180230930298369627033746031941493542771285311283408800649039182326658899897082480462258957844156309278049759952529867442310036223423428465769375157884216999042974498619325119493041150208246840598302070861242240150379371421366990272615445410989270005698654010076292097966222789724258299865212758454946894783362523639190015302873238811600106618049500132197969263318314129351225790785852243408851817721392529329612514481918478219966267514512519949667494420013452316919971103948050566743949102526596660845900106175225094004473069902309458629270897709551237665013432595667322689286325190481412179868643793037254505367336202470754758837690526554800301633785944937216187678657640260066008544048311946659976342037444668257503339241010387565447899030482812799475875207498922270704998538437501027311249613123645629480835970087491009526649986484120318047076305373400902700919670869760763963378941633373557142840652306404054525746833264566599840189985288558959208327581296879146862844512392138525939458036254663952505724175885224174804136629471170042721922631684642395963816017817076957537235786126267059872793176567761923002802223776180645032440118890411353720768297963293834913905629638053256321297630960538840682221202368513658224837326790038892561870902835472865664749502693164861974623288756211162534209230453031568638998425491491515814620367307340038710160848379599110047682308895355159454368593732422582127148387140305284151483376298572737556413777024950578945631934444115395374326808579500070540414862823438733957952326962082050343194706495427907534860227257139802613372531718183262408955581650348532782292701578006009295034487092307380162680063814424590194270133245901192763785658298921570235466213494023043050047339364928647553156138687515079040717507693095849016189119044905703695263538798639807016174191224420078652837057296838074349229357782240546075137114330210078055535637147170127556734907677840905572849451197589088627073586003001192133097290955041217474973434419605030780708963266377111557035447187155565073623056560979937526423297284877012022862162593554740774857461565470712863909475963101420634141316313544549419174456975761530691384776305219633867362766141783101228843866546686443899452716866978745034319509562318012795857424363354225158531271788032875781038640469822293856407217057335868290871541084955033459644276906531960631583959947914422984966587082259181158416182194618428694387198903764522382716159262002564689418815102911653536160314080957104848743860130489865406867497236792011698689713698952985168808846448099441991564733799534961837631658973822714845494032343277027654504116040447650409642956564045302743993713623081182426279224616394204003959401954867654511178820508726162085976119835121958075998717593366991280371421999481431451531852415461284320744048430296987954819093081857208328853447622277376396933653897410847715576706613130801504443064789578965750084184773033593485613652627139102041976091627756772852021616020223535281406656048297207873228841795279614767027947768836124095335877001478477417825166993418318380240804295519540677121713197030629154198536842501757458963642199774152691215583499791794331823494766536479094663236894257564490563335612932435131654289818461852998734664227404258698145340431393070991942722653689343255376330066091410526357880481254527012755411096230323506750878188964368531216893138660247249111973810859440784042953151525611767048271180588312715900002313606049150207468049786398072397948012044225311521649441503762140785436232656034627934510271102178932184326119711178997610821569623773140295250517600674925325549379557480673649480481125556828787093188379043727461706013318946907892288329963358362446353989099975443482959390324166971150360547904065237105967189601053870943149491204853915597419556065403524133014928067008407632560417877714543415370068861129078345733664215027935690972194056578094082885541782293971970444096467625132918975563454048261994914511201794453694862090583392258305423674216280833005748563377807019324953072455013059176464515174732381781340323854372951638071869333712139457098252778889007846797232111884184954897115351384658902250882195118847692348841169563527438956673381046763660422132394355428488526926438982105477672169652450410077845277459883547417028788997979922952617867142094997580206081278082362355051194794637416774368521007070963220467013651533129996618526387455276685128683279215604539881890998819963973319603384018501592803908064029718003586456773461528817332515799921625602824901199606246597264891631862848727622857275277678821441391316810928369649612687451936739901429910716843772821137490412707938379529150226487501169790784098538402500787006347711991688406720629059624553644114759041723560330601415097979082421540186811204941527212008931738546028827896124636678219168291789577731533577202731794313064988713394321034041327028553410162251638026388547899390669582752732452720581079907863307362228607771651694530582339315310577096558104069255672871540862910633365849931085582358537052706254549872168039864579522506711486256188431593799671151121106319538382017754863037741120910802066232546101163880560833824259832071535455195102103317144172446530010848669327523983799166187584074681236683771433033689068977470165692001522528378026639267088154137534074295925302127485824522951871222925656461508951363630388097364032803631852173072918992256902931241534301117515380438417119304364970842124580940452291494515757106275768805581485045925131750094203195387988956801445420717296811384311532242114840699945041529967777769623389493215806554655623437288407389495743886891947820082231731642379419273564520216008574086578037975761682345707898864174246214427942621587369009816933239861242227394812939404567089135813947163885931388281560140500781117888147296034581895991460162290515239849480075792323096468286420700261857091804859802162342266685751690795467310688081918635159796924836689189495552413041956714566101814593771615529723388535863567280036283599852733697110474453617531389421249851671871689585512515474637838173109246718782364632515041073389708317035290748267929248007748372535566035571789293291553859681933837044034539964983994551963891934569694871359622293741818574886662726631633533427573465780461895927025640521594678848729680509665484653909037109989613806282052510842323575601740505033041830357940274337426664126055154602940625874122465914418532774536926878685464946532227524375451519844451496191577488621749438608377383568541606886531551412687515834957580315641366009439339143568089622518253696833355676364957746000213876200190025574568560868194288133650683488223792267037075755483557593297218469616362549439300544806363993888215302363514683359049144078866260602798373430799418709417373856780982027646483562671803993715074914934734284729583721642998670666957094172222563740681775319158382497973118363704243047771371581442220582481220848731252142787244321877663858289568109250207343916962001458646981232754959829345467589386430763388632612816817130308717647486509864189715948198494142571513376416751730287152497750455074036612008214889249015503620081561504658261172929519488287199900170706957965521287139846161517530762215794259376820856852304917954333141497328908519889387002498701263670554325492781852171862527450250415883449528496325811637669784496018418438561676825715605938651380729327721340057804816016972709487410582883436004220689334004682498899683736185965675284428811727420585285727565184742016628119759726575132946835621089447782655166011230916565458495195730402161482083254203546707764472811826236716345446159910965776955848635177677288700273585372511755117041102098277615910829044937733134616018515409306574455616173071790506091682549912510427795817414690224824562182130755518092355915553688252759280523003023353651342259497655448563729851818552891893027477638777598336368953483337071609211621416886883548939144270603173350329439566772572207588317700854760537038593875221821801154779837668420133986978767467063473081237667751042213889386764391281149344971916682941825491196350235058339533087022432300420895748447883490395139372355657528881669520353442594720595327926166250599909129556396971421849952092172579130805258227382770928289965325998308996777037532317525947981351368654778471787898093977158960354683942169952771352868449353220684989421664431949462398263405569510775240229857073891151853648822560367779325276524306238801443254750885515871011782906811642136982632777504569049987513906475439359610108175105576798319860429596171820790963986592952862100942632846762691920554943373429192945627532354253054945090385028790064033144884679557556883865967033746050648213727819887723110113453616737183974866869010509933895482366998933919233608381382050911343509714779328409782680990069684189038588033710086848278431189899119389985240456797273219563553923460915407776837079612769233478071818418514916185064659558764596056062402830971268983437433567550703238363066721305287035998523016660024901248156129312759039614128339893426976714397391840205733697514137943027563449448831754111381301254200029097343166112311449687398467874152413483153172784090872670758669907879911418686187224371140817924107566925191274519524006391343415937672248373949326061506206171062458568462072368296843594315971276263899933349636331800066543577179370188130665930461811630849369189010183251457011390711801446522222763301017628841170841504355302217118024078595858931827387690403936295389641194753176043902179830587278303540231744372786538621887988023709143503461868241326011722735315786855687998454164135926006411613961961790136016789994357449741657344065098474762429452445932495716197115116654885227916862753429305217904844978974585145953588720465554664889786181374250633573739973513489501104603036537221997620330582642236063481393479065123025570922928562207225596438079387026490607792837291992511285653828330395636815652445681593092556594277084662780273625147440863392284715876798915456183260744757352131617333218648214277552801208895886851272513834778520274495050632737501279435981893280036929383959120155914355781677372168544608484965875885712631903471718390346046123638474081681653089427083866557327665145217648508585495969950562206254327301507779690922595029817220267364394516012182424290115456869492160276375184401314182230214766809698932038863964598413433644737624812287957883081952590872312521095201124637204175613318753130380564288813549416593798219929120865993200603691352321410886106431179130466323352429123864564639423363674537321445659387566176649650300137570170694449484984776738930524698491004886384111719965469385911971437184872692471723745134163563254666755868709353233379156720843051176428490954809516953595554843320035566413716511456393254400392759270664428632075274560656320106413041220774690733703944814853408485012263378863345822892631137005887278277671512606591402934909798687328895431296893724359864551834115774128784108053844706675578882224330155656324686907380989278209972515871835610564130783801676752486831786226516828534912414514142295020880126823171704132021083138762031407873769425294546009353634180271454409651215935885705870385117739982233651888012108133196606590091183177942751177111198053694828495270441149000401611091300440390856382328859261984409998075444452721479837519770137776181651230248453591394162468682820384592356993533554755171097628917351497329837861760112370052638601797440256867744377426063242486251031988197476617684172770986395878505167266443972790000841102095808159655671096817556986902538775577469372107515461007274836494927429810027101858175053701231526442433499487530356419545763660051058284330061599278709362437117678530149897981340251324217818987187454851739764493662728284042193287952548035852690899133042307321091491196099877952767975953355768252751823227522850274116392216972682689184620973694444400721007325643192347670508134720647863056210476386059325026387546801861969315260581427461879661296679596893878404179821588444356599778592742963586930962760699445374201916116565985437818615428432824119218343439425862549405048057782004447262515048279172287677045092189102339715719937854101453246043196194039616941197828488117156665091312814764376652333378883757191225305226444517817895380705266704802303327804805985468580055022373290150808458724029852142946018722825809543511199681671939154051351739091781553810683863411013701677477383934582780023363648828348155228107494112500021305345019103122501868145247957586087911838361444160305342390788940932716512477877703886747363268089736990280600905983655729433748607375957040865975509494215967956947223335069211196221990703876775129963615705674541553038769439768207180151115212410971641547023996233655117881038252850957803310899090781720670060395768978532484942395183483561397215706142088031031305753878602548182517461916216743459221076450225155538261411857234675131100140079997805603545812888225566461263142044682392410883322996981127695976446585570919004696611722064002443535006432180602650923862288741979737098144833291406938642946232178850737227937922270194533356360804500205750402707490055107867263106259009161557340067269290842324596318140559576628262969576955005981720609102208481104789790370539321715967009867085198217174574023188794410131832347437987165995102292204201150839721851126922574453107676636343971553066342922358051068864299512501453615002547470789321763181392354318520618609997273628886797563147151053035584230629882872399072735426665880590088015576551305729595536818722515164417321957577452183365319759271062926983980717071232406660569101032032528462484720956545732946000317667473967849271224218371846739966583845202962199512057887806897137873783434904656548245937550224184177083757971485616680450465202643276528256554015318907577039712314338344664825984930398416474540039464581384288726367545846580147950174397922787266574064472236088640268058517608212778812444046003885183303774434144633722155675160195859748756065469193404542298347522934494352510837612318573494203665563717806603735696276755768590175381089447006551444616431503097862064711946353623190854956530005180036713660291469737933988246352681548806073178818714782174754863370621457216000673393752173507584510465818073296257959663284286159614831955852413935173052925339230356633306951351154913831745386484944794286450927527096801252871171398434026742810685943753407575048699558627196127580397510286930061772540879849571112247011109444827070908061348312593934865544955329706465446679363886953553702340757642553481067300269138146747619975224305439956021744702816946578897670493137194245350819620563060089151286155144313029250883164006561811624988401908080546454615176008492999212750344213326831161699562183190114891374438958343619697408627999090002099830254398636619670966287407107251830956781366078238455977430118759932634782446834178489014658229341809365428475282400293151154475639945838975301911482576155175992734926027897524700230566976865315610998852028292622297075594951868338956014148800251824865927897835703226029605078699041246580168536760126061006719638931505652327610721101273505955847042236895212993020498465107492688271242816328769537549639542370147350219483322234903594787445285194260954907838935713073196335425252406774339929481812954545978918797277491160949401451498278525766962755883158979401404971637583831384830445341382449776616115031959447812512614769671298263356983900585222793114174330200150042901972717737781036305006151221616623528279734520360603034298858526660148839253497483203985508459897076929395689341208407364717944515372893353566282782997239042808233922349588954558561112288771905586148817730540569547612587100019554243548180397341803317596140550319614640164192326932117330721033862384690264805811369205051034583555992203417445092233416605977061666656197910494411544861862260284974596069979953742609424002610667729115097037885377238241822183523367968701840100807510767179612910567244374403172644161970611559963696774496507977150280599176675078913563655979664905308321782331742303845428132104856687218068145156508879198556558945780151637228999124364025247725453867448585318453391684978382255249287551777641871023249679409789237900238047894697623549741616349772797744368180211483228490014911996498548422261117361475027984067717164198764400769886938267929020557455976168513480521268349614974939233074499827125676208600720194463627942747921404753943120029931554067212865836763566524198757581597707411118932146411271161820820582918443379035326834952981497029025512184483708896467611967403013113478882684355822478320854345058267057969070193840922444247456971694152893750905594545063674497539311640098554874820515158352940284922268905567248440409733302911813028332048493105967587036560211395981854923044305626578607941620011871400536744493321928271144059060368380652381698020570662589865877257064391642313497178943991760379678270878676403758920590528192814895551868604447728168691285653724212695181396993428818530049615602049104636680976128009892667003962677270933087647446706755889867505016520660046503751941077807845056187161175962600906851428854101835443277636581397216792174646398818594087108824809006907157048238568564725461382909356646326927419931571433398433609436767530892561302958171228619089954201903536789887048265346155918407211332252579143264860591449677903906590000874610434116655874772545344910278648033657401073098784501553994410308647850348526754864914092463634626780681150511157158569544071192743164161882738334664005655089873798619940539239765581509426752388494953091113329374333497581065504028898602486860452009247807198867175177937616078659688441594962045415840647824960829445518485936897316666093706819032809678846393265589536167908750757826410896239547466055691932014817563386805932452405798212543247629217332582870839436356514951379043164117185700410593602539711285183840711551106459539988950401017942200869516278059927809524401501797312887728782874098455284759254619785577358792319576284903354251294970877699669096492734280615582235895110660519280321507548033223933579572989776255472817456124216913971359492769150414389388646276400463891901524109339045656757687608034981180411755169742096083375975825119094506306199053883688101419937752087055216177498775370922472039007114326267908800286978345520647872525784890477908255592125157002240293359522494145263713854145976279135146354814697110089447854906339917958288335705832470319674905963944765856076108672638668212017929672054712070380132457350118457324227654222845065396119849003302722323162126659355415384748453612953337459927971178338403091892316918773985784917533734172772017441820102899377330197720557286773949483123680111472999699420097318685694718847161118847673053063765879412470973289751640802123833726152518967810011887783538631848863111718377396163854648976623958956530215392465808173545673065991585387262876388507279219652295454279948302669064745121732290329190701339841213714990536280545836494540140289364479857017623135552358596036985564326084125255456385873082592121465270864673706531560914550602234678101645856557259588274494987704842764621050672072869806799582116906279845922580437805520874698569220530330806927903532220298870036162365851733937424263956030030168080002727130409817318086508471358783987367392790750288962592198131611567408687158959880802150617121272201755529880604803753944520527729723406786356756953230956973433041866883209137715284227400156380551708351046883021814734567068325463295778726480449255151222866751440508935309628730154415192442617404527122611514795609294405711684531988830992744557830703665747457910123320345925064380206139512276645988896038009027549104383044254563254862304488865163282196045057968276727358978409962711305754887850829351119546912305778268966612474392775180234112468132495737188315500226970955552515082527001285503856627189335350455255523890264299729048364431185366802181041802615843317698906661224331653360484760462221332793520012794964598845446931887430569621362172928033670330767962491423501318062099060644849505212627629162527497402825729338410788309406734579870852367404656063347186877487154226158220523643283360013222612423892046955341526555822446865819282708083027393937943566527860821394020426396790491527971712015936093760318316020177521951360687428853798782232236979077075364840096691431556575218371856186151972689786020234761787727875527146477566667070019106885061544039688624711093849319046717436491302252809732248952149330741983101881562553436488796756835267645874997577975743519283170062889910328608510592282487916118240107155408000630706061871819833365328937444912099378186423213597162486414626845685687068770705851146583794911379817594176213520191751693012217678626725260521999996599827605820551163297207533799795911013424351017822424702476054751651080121873657159157883336242296695784395013004778955120072700641070780673523058969632838858030884850881546395184381953380921031283592626024553332845065370968846051080076077387929705200497390172783374253842130288969822557544600467243729083674196438032791439822520814032008064289598599405588775406560818342342418963040653012008588921532925819191230276950127263428350822124117773450160626308289049507377296140830402654200629381512613862782819634015567279006262553839459724198970351696050532451901524918126997115097739885189054562562560478926244235011876265072131508165002244350765788640088334697254966056432999594956623125785188755576412906735886860248146768515700476108590287603571243340220320316876428901839037403626465686836524515607919196458813834864180486488686634215203882816601463814059981318103201933287889216842948376992937411990202040379595712129250204750477392325791297815587911313730478086082685178918427048757616496615755838143544393156396397046522357615664840527566447625062636553520702841832986550751751011512833876154456376149007249738533459155514975448026989913666663680231505450125342807198597797549477602830687610752313516064681652258313123309545210609656615446806159785359932135655655441435455137303351173353978213638533576398244866717443055321911985309835168749665576719452056862249526092212968217656791816753028046344213716547331351886157784363299857529069809544521157201671736604067061428502456560813076951881257131939759793995195459026492720769327575527094375718004096604947206357299473038551041367639394100789386673453783683136809629016210048282284822030505515676365246632776700415039058185010688599918259025957790651765846619900427616200292847478446486864482843155935683849843191756386028774829099285925255661070504595895949596907553319720636608213218266000787670201688689616288752257175355111313704073458555621343099165619002745098162138492412878498085164379550350277802179719596576390584932443283808340377925903302687095484086279583758909613134584228961335961222131292008449432623772960702619435789736088772987873903288920494774531210989390631742761084828221910368710374577679834328610333341401011840344082289831466454526069392077943354438814905886221225588406151339164756818195087328796397522547957748586377430608208768445153183028767814807373427954678408470587322292998137113514664712207625292386286306387581967786168979025165430795355326644938368923482240757283015112263451798206306657144582763341032461229098897662032061221726284928525788644488610549095623543598634389932349087966307697073907993200093352832491281236505382492864090840194273282430084899537448652197451546967055341015924674218923210852924973958488922661746269477154724771788643369201024063818944208628957320099769275160239719923515953556241555282929099972531077618814328742511519110183726056906461296052493851674876078405718297497091505416789588567807895195194571920898467828805668868410390484214112156605640116816755774369016189841756409644156673023880912543643612454543600121092857828212608765553980782147223615404486623000382032101711008463426214365027364251142802021925330659282057307308231758485153033112520261580401902611173827218839617030744261181395254879617850347648673872062644303712841638103710300596524954400806407175650104565461656697605528136879993269819596893810652873606580251263060613395214055647350529180245143382909700589272134511892961480535921817964642921318219403881164159297999674593605498778916867693483579979588961925190418334452351372525825872341256855659608132400763663496224718724585850856423855430866120231984321764510681301816237795355725790699056983081063998993956988557148584043795838789259913886337876432618149729794744556668792141361978109521904070543025864955704451504499726008640264323834730619831900987526703778917011333051448444969556979510903645714295480946183450414402788866987982308579689582779615145606966031428015178702908585808278111439568967266236010172831813436814867087902687900732860046482047906102751834927787916878587161060579233296452428570107535986877688872171578957926066646579292630065875747234546365799619520622530809814615262162310282422781070943925206435409601811361885588510185476214249044488547605237590598266147924540629368063640467915132168369234627401858267837901580451328060673676970745758873590923171356271185787871181267609685505474575241732118632492488756119450837674839787285740031377326430371227654368500539745055848884356263694510884764589062048518017583498781760288829691185710283331195165645103180799635304102337265279626892408681414955128089176163731766870888849166178382056857259574917061673794308247166875352461666508205586108160406716800831827298383617267646107672127492593763256467474888519376387933575836071036791173487960271979322732218427091841873514733417765175191777863518897241926088105121120756214223770310037670482873967972986968268521898994271798922501330118333481498866086559181349492023862908616109490547282481566045447320722725871771700242432819522039728605516811659974335939977319672519516631720314911272428848799429930819489142156686910206980442622642302032265957987105266023288502117162019797940514011566968573908140889268293281697784377038108108867181673302702296710014798548672294053173761589067423830028052589126024435395605256922214612720709243050391656225693607239994349006371355794411684101924653223446489833932575926585808512946251894745850480156718937806029905609382959015349265572169586643392477782412591732909230253176152575946763595761153474539374132767387344825339857431586679882278784590163882605837746810128019421770620236767130624113418183968577868195374687845469552286234902514859425017227203661510455614561808410878500377839835061077696138592353584138659717626622498357428903189314559821266655345702219819034224091793137278786336470475446333446156498026449126284644635455457149618724781328896220982743031407747862871656597959308533225253752966402804022716492036729917587076286833394123331830292470593562928499376552136859830912693214956795721577458614650133977050543554048944938348906266139252142394067865643625746605334355412548752281194310196226297460878535765779108521689770458442852301977267487863219251012577295362297984126185401421975900181502956477656088594602499939888834080858834152627306934758905132156473718258296496700986313046666319951390843477073666392883599480668127528894538258225672842443382158827648191933636204523514138441039436935552612163528542908618519709194377964714344478058847501466183060215431588188195835229936199336579162187936048410615360247599274641160432925771215759060215353412222589958373411349021901579323785702455454101868610847654644772045795998301916101213978828325496405078327942377482059467065610637033557657468103418538448451221913529057875532444953094856743036931245469945271834801014798043904018160654914218787009939703602912123193005589986873169583438103607413504058917084589541882579869260777247722255327542857001704150578453351103304261443817428174643896404944404944239739048769504758191607879242407886039394821561996213383443111948773185499169723203575132600592921370503877621275497420294893261461206843419233288424771257235511209236298312490760333962163552983775603466245750794851860197787444531419274087917371526797999524990277422172477495695655314656231843132906913218704048797605989554469589919303886154091040386106826471573807793315725253420252943190063142163170127998784345995325038251526309600340782285726178540284724091775272451505827207440458652253413527215596607824409107425215848269344300468220016366086291474149481570965404934867998012759426501908883670278474172611943847444891741016302440763106937996870425222931253301199393230089869066172909850389114293994618920703292993287669869086468708386812249697264625357578058339852940560646882701399115037893918038249675217827719605349468669397116306419921623333772493009650941070547599173053620632154476514333569411004395924664799217432669638263205174855970953477348519699810370100002093951048841008529604663009124252420219517805553458820225886002438590895738161026940414271280876090758954721824695368154711317533850502871888308510832687230948931733181704498304778217994568955158025325609730512994203892370207762461899436114266434189575899839102416096116256662662514577135898088068649501168613808481694402786260061721548187558066547715739297941351102332353429310059358002854732475782725754995609272855293841201448666913760879801363606643144323392718429922756571242194970834425302334416581679533444150951325200560183953920842097590389767493100424023045958569004386352652274410797130752269034627687563899738469257304145468786421868304429366300762343589178442511030251646098102951892030444165360955074699409423262217626891191985876217083132447433784094262484930589482261076828849821818987984552537848744387766384996380939069507712436488212534307218870919792279274421047271572906645732938923035379921087326324397123983108047193472283744825225485822421114840964176790730788932827799956749169988892672611500947245162757599514220316980462760848415633506892675890629847417346268873916535955092368826519560739323180635375688009921587559079810267011262146237229375392021414656509386764523141880488629663142036285985547098517451977242528624129148107082707067678389826572566489609811933577910323787605050479427095101732196476180812662889033201175343865983577573978339025071780865231048440460012862888441220463559630788715719060686124544184937435925106754616029072687407764580654606873856796733891396227708017860875479593717946607281697005210118575359206416160149760561080721546938953759151005628444766967529913516052870876169164922668849225427332453348843094534203755619343755507184091245634615559411818368968776091597327524212208518080585322325705679906068039757233224068793647611681054379133917130753998970478778888402078893533892968454405535321799257879099391080227857934135100427065986866419886898867543202872904365953503600467940353587578767912204496913869482131152625013366207774128871368961356295212575547359602988067517132483285270830569636390771268566427186494637262010238745978917632606706810034800483577876920607998436489297670654812445533913677189525721179265707376876034731662924605699546521257230675527019963452697201090353454102148285286027358974046232276769282463860245573649805145105075110720056901532652565180296248904819832094336693850015065352001215447458406333640352068464373196861177188351160841720871000486534931598336951588247229622454174493433742882519464219428755235973235697964018596352804693970280815189339787389189469142698167842189322011060800607256300883782943231250459058558892840109588958806770917378347081767291360841137381374993990192084079556686042044848429155562593914058178550947883260235617461043128558201148665347011707334132818085302319851818346174913751710961432046832453045416202808334597128450943404047069742502835307162552188891296502248105905027786793265128269878586350817924081791419638162194866886401056147530697818903711830588420410142313043001996754077255853455686964792533859495528094953383834473806068533087821818988843653207517716594607285610743372614653463815588637624987090275919393831597548048638650119890335088682776047964364789546053761550953425785216938342697049413247836522461674461424455772460461215289051393519612285243194769756045566061577851883827091483708139698721160928519827281457239111467308330404043401383298784969583918965699211225826807374342014950892834435386823376447493461121784405194843481906203228145329268217086672039334015774233048276631038816933837584193017794470447709950674437308021871552043569305628118122848437132913610303989344695703627035373743656714722845389480185442074122044080677087574228986432220969206916887034942266773367340055651106651275557277631761941535554613505261809118984138581933903311435794908384623290321121370317896195135506717558482549213329852164627041848779945905380019824880684258589951932551150432860303895495144349358620374448999605008831027465623157809485863854213574973716067595514905875026794876868283253519438210949674548626077803440293720150302945486905552720131067819908735597691679581351303314439736700905272886410432863567688175782397036525593669873784992675562465215370254928940649510610878678705290915905333780707370153111492846612874997588243459344685725457891503852115570846542622662400457829455610519095212199258174352977404235069931759632668551483212953841996527967735277672941419304946318866983682553183907829691403835331558880795367676201095730635069317909787016596360479226326871957631222001728216496039162111151982194245600256381722442737569204939615084509006779314035027097915845945701653029909419195019397626860945943010510827746400744020048855014953745361227658276998242401765591650458493943405404635679222265968494651234144940524391007851466385139090230926337034079516632090448234321246580724870654169362855482597573036020715333878454449953551224319822473711612378392999158063520482487935770763797880685039480149597396150369650952437169461066796175061959636413052779636414127196781497101142402084332848769675089553994661172661943446214765631180523106905409174121680164627120298728871035422928250868865915378484868262482721591578702093853402728103984988339564142774797108389563249034748983905599954116973790246561934877127441871307821753644756056910215368044771961139739263552420836310725609973660114986866151981893301625901848646504965822142881716271074594923461849121950625750839895542984196402448840653679385961685416011913995104316062889474110948780124363998686565682150427151543389860056019204833142081601707543221060346504585259901152383083158056661533916357783614287147884264468848697867196378695942817925479810567570089095430024875327456015318380637353994123504874812900542880062483565522057014878504482266075970207073729005655624023143820214547165594495566255822742408602806609021597254492900355915109581330421522902355726075980266122433040055229763557424550528906621168638553796082654069450822685023017985372356160859531086864068335257363427252753679558760793246411001656131591386931421060051729262198284657476852425776386349130363545551946308290352104264581125880432024342174330657329490190414261714298325527481366394140572980555679971735795600749950771853458580995929058844923291235678559429875667125565371477341697253900659858738851855247728745421768334841029620030543632445232628500674320622826167631196937842651386037038755871234613217387528670367817835173515010333424187992235533916255136951659574730026495339807066591047558541352813682162593620463508427499706892626918006699012416104630186283837355124329202659467081771993606728529096427205826945423276296134036154141860046115913516137807981362984743804459506266260289844312351630484892572765289501125074487248355926195603808278510378598214359162627193705232829063980719524880906351438059330064826143770412070565212097982738466086774179046121104857229185254431332482552687425698222486240325639308529916628488322561297547646476476735978613857309609248211327704694170772534149332572685118014572690995366829919516588925344332752302749223901824353086322521610875909174687578928582748458922182642584468240175246734143999983100487277755612194787111174019653156589980424861093317135585684449693337720906946208599235741035115975469434994117752334165998043191855734911102087369168553916977947029521731835329287132156556460084589830518800315275384424507121953511272250058585724224179160362746950553974036873733636611624960278183326087304218747060510122402112241209912571884427827936650477653612966069239748015175807733790085129889458259955001405240654662126708643972247229596835654884100063572209883855750676109052231556632966485668139940046765202133152596570221268039373918297499326480188417644283835677313426780841041958778620034270164620382799426479350539072900182178139348157019097340929596999815073819741021367844464269636976934877484753061646160151661462252342276377944261150232261911193859392952155531981540711299563187872687497549441441684671041498378359963620067480921999402562028495205446559511063758516904843009452859133912159115258064619050141578036854333575880167903149312228163091531331809409100021528741646858622729576095033478395832771547087066246388277335840457222460811942329098646757507767727596828224067930090613266375810220564599689962416372345952852760721192549875400072031248348689072859264727390049067510276106996090620790177018909771634591228484988734111590848863055214238905316257160251950759107113570177954420421244726412496348306088480805176706724055449938652386087355933336993775180326772716814318908228274341276530404103602798970643597007087081592437147991742905197072951023331078430891112361043257275214313590506017333736008441222201337627456745108552483391533370398465492433504370752029468841922802724772863167551272301089904652964670382522577703240259711456888135928686263960122815470279600895711725975152961296775757566031430818768589089032186988327265262704592407390723405728148593159421500219945346413672541794065424549338962936810797805829415895352667424194878409945443022319878233257810575102604756068848182469253566870963292668591838717420653664691880674914185134168036209633298083150530897378197227273607983745061686256771306652646669020621142832319209207721723190139607128585077743390684354945392673825112046414603412090408762273164466942228938523483443726560412337680762360314100279858210333340620303016071929184200486703464527455193165994616863547707662734627888598348219178550987051858431699138474517506013611200936215095203874856423682461693324147223109989763827418380000850853099928598881277075888852270682146637505324258761016309537094738911297853643559415754148358498046314725106116924744457717155741933715737339520429205717446567203979721773191422230056051434384907751787400289512651323187759763209547166453974198880105397163177055416442530053479452181511569908573226734321716920757884308056339530442288627919890752600442347733560608885646131531523176766821629469239187058345512621269223916715429649904594794578870517887999130629933369716301866824341344356811452658998480228667536384751733119285901612179653407480575731957383733133644030391122063666093167826312699989226437115228299431562619921405855552195336058729943243742012147433227179750280797405155036898697292597076745204813727634568715915189001198467867374980683430349557148686166525467343685467358245092229134035077583425298217086784273883424562161956723707989865798422513208836664847678280065193908735250689773076071193229858370990937525725024761053601378849371754187133923776707292495535140759851203268723503039147677392539999470975703559338243010727577356957065325914144511317413626498673342257327550792588310569812035367073703902781431576399388022501895691721262203576847778260175972216002417644490833477913416480034334469186893975246080928039170222912190372587708049615107258626865965952338874295051049553731024775274333129880242141049765991778260583688605338495270721570896862746554108140438908670638054678258141772143092523063411725830819922521394219753393241707468724789187599115387082908490350819100990710890232692254600961230469301537752616640706273179437737716032245756961407848736989485173272829165753201213688331458497353610205046238334040207772100214053049993231354759668680145652627274019391030343419805090892658933275311646872189087390391990279909555672605711370658797022369348539126781076143034970441035235827719245817228769227235115925598873923076185894298519433185849881908306508928593603110448885191585560556016297738350044512534211407941755936704632239508298791194010496840613320567371560448822945334886476884498667132192076793901481288188392611440553647418147012496892720604825802958964862885194838315412172164733781266010747105324633242642785383594397092949102596993798549358080418370461235923787260326597813999893405954867029295826345057197232891484778367710264304351539313992934199281777883834079483405380644275663130106483569218725569409025028010810841658308791695767772984085648110891307810738738087000450673638966662549310841858595929553493692816360790528770437088849589687098126350542969829807414712261405614828112801387872669812112769673523967362292744724326121789150775131612375228086200097878258922651298997075647974120135600942567409704351626440379842667787241767822856668042228557763061745989117579937023332644912948776829412431744557342378124931495883299232691774661878596647442750471524382536243323081662078256880970589557451036477794351929792425173840591661623300351281355538441500742783558993440049250939202773663360913420939337830031310256892688151697992945330097329343464294422560871926682883212416313601425274359541572208856338075179622870911425541697219424743214568947281279190589547881687834039297757875095843369195040988167248216884751613440912133139474913494795727394814448692697325458336404726281592766952391227378128593833175862136438790270187282914568964891333140282101951316274801816391859079055518385931341409356289559480695447146911066601400008584273057020119869420288623918247473866324467801155273417427154504507413393086949430712731356654228076497105791819621379688661740051181530410146496653805126801049513657450426726667991742345915627195737912594648828179549208007749922672076549781843744834863783365585016738915441654437505940782840349247829994960578189766697962995938255098320444652572618191207638579755893301939933681510287689986446048658354662008914376792997981178897132845440392284457088268502331870742970782049119104428179032550565430034341564904449115450487412480432753531564125663761690096905149672236349864218965276630139266036776633461723653621773665065965632391784463971647749937161906785694908011856245223479656788223976049169346488798227123511231686235326312622082797126793144429551439356460282045471993385447486717408635583423392786021950953103364232473304472311825632590801938415153009886786099268101162963623023009447332044522726223051439840704097809107563844305163811280203931961682860642100851120318938810347931751095027416394636720762920395788483412971878869865560144499078321712229318343972078521232966157779453062824656544077780399858257327823644508424770499173163415732029015315231742994744446641131787662079579956137821878647862899551161206913309609417083896134254476172083157489468244949083429796966143452039342822959226520037401957255327713610539356217888178910640856105847375162603218655633418418212312193765373872612118061583763035741467677866192308133079528354935796314110433009783821480044892859496890726221492539797080185902698775416183331716413085669225527748911742357728765358537261536509223660691434448017647663395085075758827752992522122277110655240556051886306842506947301010426623109868670057894009568723963598139237218931602370195017823408878118982657930167343963620627978247169278018511459953669416149326515772489260359701054373030623320056033578245558725548693231156829835981878603269131589853368027872980449344745422572079580431881765287117041382696486731625548043387764657788612952730720150991919777009870374612441705999393805768889205997075620675753046529160301837639242349956877096096251662609235363925229217396990064149844778212257390301153205422631569144689963483874181907877194414768614815869443620807892689905121822871421898548661423685557542282676862804613476153181823587714328191057128735985448097987353617694618603265356286058223821745015443939247218897117618547814111808476131177937032007667777473070855857097121270271017871485580745986089842850555461884323130324965609672069628561405082258185692243294204306101494718002556306937749079118059750240789310130710986785491817564808132856306740088073061054336864238928230519970480299983711723133193921066248031186528838207671997568784657987019220657543502297255468145722230353621775920722890229653134223991043943027911295874930923285498310601536854270211099131453486387023129593114834496781765768091812413941818133134207588438210322827449316234539218550951494047655824054188861915125633840043760388538585515441867522057855478383674858768000339028281727224041767094675608842506379613218364263870428961517571853298680918673726670431136584899231028023014122470153768363046378926679194511410520136437550795933512846647377430006753816253343019454330141540726024552859393869683023512459759136180355196150379124203616799355272962714606629755637045417960447558687665844519349946035440471462146573604843164837150077074370293145002288533027744192772229788783492687527277983434316452662063269607606077213219430505050815327824055409074731075262645080237520543353594179017354777852080503054309500655056328531312319367751563575927749515667160626045860658026667071387079045656775273051035157777356223791073432661343981291470916994776262656572255833608067352109113385940843629879449783513942072137009990059166447200136765861189664299079638339240100090369413065129254390522883791054183916047498799539232581991248927600991802813901922369702654869182187047620563167593272877830860168311027351483086780427459914955003218689702598480665098002227914165492173728484413532253835476943341383423170404591179692399513533008543495459884043268982144032587350131610240588249365491657994265184483121868672268166008466907063873154502310930615940043612933119879936701653619250100156978396316480459626284825135357086648962386040626860508003809637081650722439917695193458115781000367645588143646326892721667462282961018374555977855396538148759688444537166134747352057015731539601770905745952983511401767846460694836135019938391020427662472163742619340443805383119082275975757196357145674002184445821394228379026510826647329307608921698704329287798429262315742540515000860124771704671146976926375241633598172260865630839690278775446923722147265241260387791469778802510168016930201190373158201059659133064613561409898226259995067661908138529453122665359305721174188449733092281255487901776668549938412460736725015588625021141053954530965143370036752151657058964863181299125138606387523694179837550631046822451352201087875122893530939870508027003540415710041498525732819433095240136513787444738781677584768779268467342176922983464967765025065299625923124047996298629239983797090863924263734056420231337127460097855256013500378695168719390547132976795885843984559311617437318723802272010686699972040239497394122967730623692193778857167674912210552605908739453514992001416725331122165386037533470729349630369566068205161284962489926877788860529788209658107392178388029942013507124346464821215164215291109607719639324895778582957274101289408561617139005236524219316187845487225115281872052093588206817783554090353460301329191354268082553427969519823887354409282576920766840200431864920608775164894709454207578312942773875201043256224465303156753213423369355825731089464587181830166036797230089590123980438431917266213977291436230267148426238031245766237998727245282201573385926872066716295177249888326805937272528192735886098583924881157043771922666410205513681583199264587586161988908739412454345537513228855001038386934655858613676259892547778113595197505386948912993399525234194186242284837623348957367839858162878408673478540338304833148759799068915829130577351332141580102518044799443129139147403804760832860563588039379847355600414802773094515178938259482803325406771134262661131532264296263139103708719946488402172185071542836154544107097783917851117921268731895295147523421332840572354084136427451887681603593428484825275095914789852718435607421732987409609091100436321470269248800621203386488767869276354385842144359664725983744321540705654315528954002584042993979075476597655863404551921860474847861676365067370792380746723023035754935228065727408256982290531898517091989174537623194700374528711585744552908131574645170308925966491855108372877791104300024333783201918390189410483432536182365347481933590893018565460484559454665720473725238119315298216885639928389117773238483591552033632296323082489909356361961601421285744489066492607608047834239175757655565188266307118628358734563150248278970691273190710554015642557911861143030534607242755472830730792011336968612694187731990715203382538744139034191409828656366013069347929532901280952701537000216186057023564193019879910739955034174508508652276758489804531144912571277252346788812716218156829630262820884893195339477865474331032578438390353222854432379858473955522570563445619907683961398586832350103552944241010827587397839093701958367905629343887966424247462570853830731136681466891729156799023511777116448754879625081267632274587385739411381039224476279717067454702757578373112119889666610646497459988562928749784632939427620630066942771613858917462953212847315380743978780843536237894592094557595153774611960258907435179703321006215538472929926747500790472677349664613629721499863352495042550823497770772870784311190249071233562335223227349037161899848640876259754918617690450902862342245892190022741660296501379386961206058110483161631230211680475579242088437507675097353534747024607515018702156076889907886857127606101761263904356578335848578917434870803798437164924587149780984811300308218555918174492451686701523052710914238540585210607968792869633768854103708370829499684571379255085654509326690661074133320031862664375069581696858654823732318994120312267019859689391647556582770666027670989293957895225980354370191605291250206137647722216946129601621967552587828791705779677226220399265499357174594754838422904344610101114923830104599715303980809107096838630122808638824511194917913497328077985735545047168071106005321251836105461364556984547303090619524476044491972978008345984234992400968841246535565439723182376918084044581701936388228727952819019190227250766013752170219180221740021169426081821503478993422055981298736724464984356756852280904969914892365079506582721527644708053589454382514664474343398953425561174066336079562531583795779931052914512785445152497442506715832454543866969185262385215541812287305715918932950674699627556371594492917030844502505425827071896766854593997745650623102725208179551358702789015707902533752878674978830759770581674457711719772592991008330531544236759470213522292843235929184259031033024278374912550092873043116710470343411921652166422453868701579901295090532595305678163278192235140247723330100010320128545773823596294500818314917861707008521968931657245102285009905164998485929994002545733736808813503962411314396387564080746835217150417669790773311913563253363445331299320667718443846775749492852398852768414566244057122058463959684751414567443078163812220198017712423628681734204554166602630518365948289562826746039024089366927985180990107798713449801247612823903222051983812326427064301765877527452854077718051851183286747717186783254545035068611663730035010887590372338686176573452216929568944398878447569828549455017628853025059709526008195682515563495278729959835866019846458870400125381954442450845238359577325731348457010777852299212675931392556946572068762838705945045856832869204344794834008372523328556448636442382368642509251008638136656569678852583503958381233028112274162865139390976045570128120411477189697233325703170189827023916660148973224647047164988262652118479731258440723544814830924398441509966933948168959957324382463079018159668144046266410554129398167774566114549850072735439016440386112913985720460718479604489131757629695467070854892510695120915419245626974293876376579046378718598121448867770141026574693045711052783707971200962287400682781853025705143550412729687554789631487522399180047901966304922215194402033689851417530322426850078393683333588417093045284915003192663666330211474646968846151739492473591639950690501030496446087055069304279954378036190157141051069632386974125553419181716707410135846082288636818213285027974952489911004943830296395561999221866243598344299672992585823420526401793203835371098381047084138656665151571170493449361558536192218446822372513602363826631378020719504361690522956815835585101393684981780156627492386401226895590896459594078290928340805094278963728827622239772749789451424357472087528159507880153258953548938072923775822361657124746703423547385882931283315527960451877099078282332811530895087536239441641668124868393840675749639094286957354956152513872321810004338433983378263697667162471300092751777992536946117145220497168913633148474446161724520001830506740438881107943308681028937693254909476614713078166592750690940892287082880510894029702151795285126675769902447744506298696329183851992109881501323226836518682764294324384280250044550376342636885795019375223238185982408503409856815946168190101593176512315141435748438629454165094344948870652964119038624896832110131320378190932210580489297062837083200047097696385491243773610905639277436491930423679651894125207134140519642575479887333683712090926814384752028930932685471368787842712766125300288540230860035185246592821569408219385053161830467204045742528061556634800590156033689628559363181252436517864665906538032390526794846187207884271760125317983575647440130137603859170994860386199555254367861445881686270942792981212771490758644507877499181297154473605075222935579860008234423617089779896865806832382810196058058479693425980728069019956398426660866605036638401759360864579998291570228949924788949138269018161294880266281129854085361833578087830853060017915868273744861975902121870008238681029781281963807113221573051055260292923387873804006979458829666694940820016343667061066503873729975282345177660181536898497995145084857800393318069691815631740142488772415390825518421031016851969475731231493032410175653637003125822848593400234113273843971074869021256250909021388638949111841052244419767558371398143290167244975485452315975527077236727970275435035673038347983237552807826692357608353212731553666367724953437288836545768257752361815233271144424198248341047542770217528468124878818484662445357240101717980756511185855520529675440894869827263866804029473479775645616031231060488259376836462198962956923128059936777663191845891616752036784613272083039699354557542985755746270883527124738225572459901655693127959166236350627473697436351762266515877580376444652070511213991883674079356809731118087737241280780927072337893295640006912844048985498745699358924287698550588535132678995528270278705660576112173332097699857026526522611382181667308763504171761337141139101755187405970746076000172207201737030237681050880911250547356833989065411774123189314305675099311713386320458892043732266786027647182674649477917023819404137897224621672284050912293530169627471537176603110051812290127316242701180318031811717213748902215468437571225185711363695589803224304351729019373687844787335879665906504622972307410915086834383325141772985420343064429881170732633302805237543449655200862048204981625403846298377399289036822492352714025571071869191652506558499042582239156454013371513946311204361434247383394049011204654509370219781155230034946438291554017090893681723735646519778867652937085921431708877549285149229716491288743595391491096954066593820966819883096947976588827187461118431544707313201735909056989465249890687360149358965209609638433353417281789438457251575364594374334416911060601859680307761209998354250062542743731495162591783201763399536364338713033215803117792894977528990709714811161601033418251510502117165953389840350454785348481677114493303567739719984813864503353684143037730937448207790469687450642111259631173927956186148925394231058850600705555287283027512763942787957845219310723692196603121512394563434808968777535066370449036890358432458910306444950527322332930422757942353115403461205088348668677104545606524878375089426293314551643970100541815755698881431311065306673040464389854614391257711865058376832877793146255954312621165823757976388783667466108053025121718681731380180823447399036462985841887782504341663018226377276114886450398230969568619763382534346426160904298401520260144130983154907016143167216463125780819121377088300882756503501860606325599079452583782457626056515390851400620766290901999315388369439955556589764181496932741903337892825199474533282969129617840721761116977593257886340300992159307301430837928777828828978801615830128408957434058788884501032948936967165421231339516107486616332709772043440697218094573029532256861791379131504239274100115852334138344875606819309078066095313216947784045986981788644341284401566941082835261601505757143090277469354692415049289201316887019888807902281947900282945015489396141450368133181286646327143589751125171795418480663525556345239889220248288705917358638343570638650777097164089643646266862632488359178541063864837344464588624431706400925719779317387686556256976811124454969629758959085362963024757676703234282296288984785652136502431123225750616756694427237255038527892237550500278174969620242498421065955804162559445584377160322583645488784150733620104229734987003002857643138414493225997264047956566967903213092945419261177323946929578380659228263232833096599054191538826898344585050668581565501494396087000866077709282922713571621422976853110699213035470892485261521044368246167095259564791803558694333033053424543833656402009328715723216148839823182779411479695665818162145368765747543800431458557904839343353923445406140638214216146388763034944789143567616216320779550436690982231824298412106323894757333274484958949844547515362406755230995151947760808958343868039859138969680102295542082098126776563115621864128769936455890488250146871918990006460229247880051223752558565180093201620604138185649072930041692960790820538938692162398572505231150576568104515271574189417684742108081642794785786980058149724655614125519573986908391051956110605944400651079716463984428404213103398130248848485582163470409664733496832256396570006399050128125769802197381686038444897363474475745771046967167051444790716141997767048470687926906780547524742791706592498103781332312854272639280965828259009773291445985475141890908663632369517297886853926455301655428005507724256042921954863289874357787312868740760159567391734695106757975312709815912580015499218608808472064954139921892807237263055750091732492719295576878958939670839179316180828753565976625855527159670345148453868291728784810900182641357338253416164821353390642825155429045926929515628445080109496192162112211814380097977257235098214439441294385517442208456329004356648612928805055967045231980995633987122194525656427184227085383131213743860833202639607751909060818125829066079058213754125130435969905706070307063777796005964434088534822016832303995670400981919644930557064961687099608248892110614714056622741645563906972323056887830102403030656167296960459001530661453696346916550687549836381770539575425516252294128317572393979338270626585640633262063763488212101556925761085347175566749688412613234435313115139442177682164726182465677906654329046550457526085032460079327616662849443677159708563240513041298180309992891692175192592073061519800617018535271232309079581484165358433575238846036518150538303851729462717221058734268780506963166713202453021576158508179103344751279548497904246548302849019730106306327130365753413179515383642582145721381742918335533583584295216644197059489652113938962909705218561235244585891374556313935685114735400422363525403622235636602892214222601629888678513257852964712492706430540606906486225014812337867670892081696094315421367185732764921485219459309731599270568404591184342694076773039769853828625126192382936541258097092709899227652579218038601664602958144848124544811168392926520182726067046732806935182200766800021574647798279803159308874939753832232226635006110987368613238851713609164051177845702900187989339469372724863052643946531652802586003800562516915221722552329484037418855973728556312906280410966804002366525780428685846386197797818712656969355241554544684823908290476504536442851503478490415860391438277169478127995398167864839822737505176792924797197346750232086508419783143317271275466183106795908651704756186158026880176221635536839907503377296433586242356617772151418117942247830456807285649796875279215282064608579680341619495614696365530367319342451645529319784267301778934794646480406919084124130837766388553926932557526998806407852980900819135840918364136215046555659574343929137844310680033725199406288158133673603544329047009915072482547745767810695983480351510954794349098225583407609910373987081795480690370305734101280378004124342301995806378511689790018028633092167486121866256440384320346269476588547425847577929803049519248787759124045727572879998828274935305699105262159221726546274432466273446906025425017376757869740909842885187993267017581122539486952589310180476521566543196879344899765013589736238350834855202316397801773120083026330065735606607856566692290543425559931355910810221445687911555140383093123598867746854582466768820602197656811612637195934261793233878213180534566652238423857895014440207149707333019554543323073378426002701990237653628733569138919829684533836794051952098912218285786152838404573208509744810803355525938601347898614552843166501605568916410416917568658178396249366652608872039927579870313410476108225216099427731954118366940049435942539904784068334455675993619995995243368997388855038079382905157139380626715923676433731257004043236149864588606367402343765520208755870694553193007691528214227584037711585642202094262404468195061091235255506536359984181729589836697692446243307707938978694998032812851500421915561369060323333116014143135450396432028681249637128019355643168773430778317662662801870246170927904122817909155416439639595188585696834692872025108776341686203965542796911763238361335845760922588486534245855486415502675516566482076836184995685884918535353694757183191566318973490773620713260732506894275648416326338392253466545452138479346149600974265323890036851588087487002609626163036688051853226260038961173539639893878791039425059330810354553912233082577104733898445310719946089103449937396934673556339289840019803332810680455887197163791722274676716646828215513023353678246169654477029206278844273698520711910309757981014173990142735482308725338101994211714193881196979713613499584779509548459521877055677865919874133421805139347028678885344877233840861404939990118570354847388228241600302985232164231374586464686951935603129304285856363816939245317968632606274712551582222393652848416143997221634166849471059421066319095959359991449900111156831071166255599025390392882718531756107101635137702925549081598473243210932270997251204865466678762020956004436245212556695373872163907151826466629755713446027970394708655705973844643836498982703124306434889544354609669776563194024358135380835612469652397004165812503654487860166434350213441910134194238965351009034945249075586106476960945687431023179904748634136883063541802524246546821068165930024423381330514325800779706078917496865091721878891512558330809827736594821144106400796833172112640970013558641040671141264249604218786020804389654582302475932268922860476496058697484661454334469997184950216657454774257332736301170291455881546182966551862547003012748632159804268990459236481602840886577082609318762934373100055157461650744327227379815668837091920532827678150841037226072070764515840316666503630829226966781270664087855359307593697604451265603506066052210666407260052515419548181082798927589173308528858536609122376934391738521192195628761064015146286594578448777708127790274108081603433530709804947169231941985603234811188713544717379158351366458401386392811171002718601322686174392301814840454193573450265245348188867856116419641357828746386654324675707622149015548079704530620075712913477240263641223657293469518978858508864565746656632548330090196259565268590382244299486056288404016141020797417772092254199991147726493556510377142549775736652853854420916876572239771344439138681007674025990802544088844926298053130085825260330261838292313376662904885079707493342663480107218019301878374680139488397576391599087449076394836117750203918421967679800591033712279406095970035375763738149589401328180835765777445704238789288843643836683651626386341438344193502594506308524061130835828516920426604805550045426370532077047606006680814138917633463434973350592598304266435175844740229598376502324973931331162911904409966369549320686687289296839376141577397527120530022686473378102805336272620842552959978298856581996940508055032848182363531003170155158244800087555110594106893994667367277249242960891218126389805496297917841550225567521738463974570849130263607793134548827138007967751677699449578029780310624207236479746893395276807732525904414944692716600883364532633307781075154367006747170769262946392976658872208971215924193534599419863071450911829648815411319917087567893018729431917436457448224928845646456196356086431647190047938933441209700345904821265734432035131286467878556533052255077798254612120706824394720772959236434267949731485173229263765255814073747013627941761115129574805291123590695613221075746516030172469002230774862955641142957694462396765345027987970439072303204611740352910348701054520551264989264548926977662105820914491205362197417524556323441612829799719144769799702375334952744512627370173391155474071140652484431148587552759968935039408116729817372261692457897471888588460916447317182475605543677870472282897635861371000983424047527278783512931578438977576295126220939354659033531596196020946781783253428195738012698950887841891205096097929723536293832408336537884117222817712454262471255015569698173749682132872559785191014945842380817358102120426312269763012732085075022069916983463850754367861924786587282184264533358432025582813933774521956675620322469868098599446273259110643583486797947073918381013288184021639749588557084557416962431160170135606337536817825035397413543077255105158528399882024668152005808520258327962040341250690747334078763793693851039859989087231069283994805422165898430924914255327232408094497194325696047313293214314773753363990950355138487831846798066650872767150406175037638004083620241894371065370896414552776734317392500608631939838906755266149938668757034880231477213426433731789911376232423580656101548492387762281536166881386874622772682561872942845204242645724091800065938536295167939911958872385865969309027619294126264741077832215141837752544586529306646553175353844210700841240847360983569044968908402631566050407249282926614739886632676442924813077114421407479534848858859194497043598090056514961959832827954841235080115079879063236008729398588884782339309325698952638537566781759836338988215734431846627861353279677026840929683006970563333090693850385673346384027745117793871222206230705885141016671192059330417781265414332803068764815707825404199069227549905820493547540271384618222362324272481278876922775168334229517540361622174446070048318650979787423478905237074108205270689631309167654524301107389904446469001381311442574743078987729105683859331794456120914783079843929453093928038506504278323389151120255626404265455189232159091713042338824215397023829752367776329718740181927428249147633280490522602534383814134313649484239331594507506004765626454765837736512391305704638992752399481591021271197864966582852413049555033081774372038002415459763351333161634245033557644365346580031058156286559408938161345616306389857549041229152860505680222122828613575242615181851648023854941859615231605733262355002245169847492689563554839583058390333132846530260506474187676303401912560967815723329476973812796808691217881285134879497408249242087062061062808666942277368366167873073025538919047774291897317878058410547857025912481026474256259108935864970283157635355258054373510580979049212790850879875137917909520360366853438957630662094668381520195055827541843102233844833822338796890816127278247425236935241878992675976689355008385277864630224831125260428078680510658136557011884401118480110015530792494001520173914900769767310655965312089629463146728899118408427513982956304399431463325425180408848030920963889858861688509855103362939072131690752477143801187140869162996310615851430039143003068963453176928907309225600533062693741005046517691448391912543528259178850448616137143332056070195092535784106693860566293361882779230274279973778483230419237535049249868905921996285159862450007033464926800830019784182758291321936477781275844992714304884276811297356139036381605979516399974890108217933546669569064962622234328757900057133857029681969562206002117337501303290528313813876582055278303858445305144968840242756180867273987974020641172982203090710249317903321721792433660779246454751231034845107929982574784793516118767402901210055070245296911381389655888529563677613466248877390408229463126187911667440373421802468626403560106239711376656527545169375938361964739358045336149954340689162657015123104491321677446191505547892294847411324903270713659405073229989018861203580367207606608408105323930179632754527166328369707690759889559326857317026865954367182881276675361819886729520932320562429487754776622140798692047519919493075047349994557238656744753512911361675363768182838836835672208540016946594772021848432514391006989411651441523090943929362281415214996387906345649179725826225883015099867589471447310812565206523707447449479685311443478014874629748934507158867584692272920552942642390013342242718663389758024877661302367071191195529656901000955693365249369451341632668326091111087601300263714426965535929119738671271424469629045614338928532385919395245040222931683160605759952503517500219830406937642282660969017226517554279640607701237333314819831158512607862508532174601613056732185935809862988008602321459870636499438626619386132531380859510392897528555145381573102797807683810563789342453535711218483761881170252827808807489864734229422260851418003272021301034032233769512065009138236585207424558100760949837589705636211422765481225212547172067171150921697250606521171343588216226421762233444716646395086915159301601951530063261083062325003816725247753417625902572918770803352050778933374849065433750205940153284501229669768068089238590560192602482424057263135523550903031605285264962036980986680087923416644285159244849387980831932484487118312473384360667857540691591530288905123457629948306425620532833160906241481118165074736986743806771439208093697508710616086619894502739625492995780847445392152482804607596357163084034447429512601688454621140894995962779754304998706577461710189890897014827683572455772017156056370901249447350529325343855601857624840413665777721083922738331752283500266125713132107034954341418945207774112534627586843410302073068834589487190468169340212371549715840157400634637027072301459212957542670083907362440360106312264755202174966998806877730853451052803098667904556300840474009185931795985343643404526056732184506995578336025639847628269399565401499709333297266658760902389000221908487840753612414049955296602145190136137630706874270792488748355363705506610589519977254050917751826073560194042572196577058802278453551636968549694189254972149314570266180306364330798264028726407957287164260892573091950099819722029042848059615921071119735802288992536598362657161651447874774254645695260649502669191059433587464625515715635680328579121313708646856866025309670804741832428265758972627494302033259821688823640647821368998732769292697485501245805497577877485297293912211587673630757625493876757770512276835327903324985940317509815024554044222429572942267565714258366112193058888247664975464819566471258534987451571058682695040386840594138313555530313418262567097284490764707636221978377369576189681997940732594147750972375476720954258243163055307754753577694468313023460510861250716446234923772151222730692349682036598388466729385632316186637988391066081972638388704132655208809226619654681759250783750199369847339295958338121544585022598887987575638048787413702888809312422986742247714971033536755351570534503205708996604814320112747546476866132031542132418310352471445245374282102215348850038235851745105239046775590320469025662241195042281970916664566066959691880122976350437108407545008394017895727165041640395014062652596124865714490348651277382178590032009343693203087378624056475190463047902622790073737310781832969345397533598178787929497890973605208084531262959895169112530679926682864239237675724998365495941705697137363418407581338956913940083170830315142149110455545434535018751230374128601398316640040757668645776570231632035748684344684300089337637721406997044763179374059594981656731968635510408086467704751278895969746594250619724456543942333239047070658596623301320934517871201257131349949215888874247264393189192291716555064680782160746236640151856566296543106834916475704491037329741957497870339285763997109433682132404750443709056988930741316353327148545146906625275116684611765349889589555930616251144777953590788657820904191264267707061944121980429271410173630510522103254990746680536243057384673406206981453144082825678308448125920907965662220675903913190649465460353095198334243250160467698136853541036544433706860726866994029702443546042539344229518422961894518494160040191104762994830092729179686223391503587830465075949268246413880600481052772048013185283379315226102571719502057681120249278103940139460824083508512834996575194869287152822324325809521810954612573829910326703755170344506544153760626253398912691151478060448209265561160646696526409576776853008708894870892374836390671120203314550288758038777253021940064441767777941391799041221253697119460118990184701640603446385267894554990037737242063054098685171291865747678797432858513533552660990742308010781361248054937147039615311850133262233658866290409437113861488766229068133112938036073176054601151829179446068298065389670391315414102581133644107658002893261911115683388652499161500180506882188780612370332497495863384428567202845051713183261387775200709339138897580706168331522939816762074430548834400093519243488928039987270750030598117463342823321341995487236170406554175140774328999611418855471990152291457527408719017175110201571520873398643328348173154234357989375770236334144645482059481204264916887522307048612758193157127095699400195596823422535907816942362815661933739036842355701068559853877138779268951826038431205955698041481727913404631037207815096037757698075732926782545653472544289695728908727680286821819512505305144069864543747890018890632126117442790595536233284120369782242438682086770449401143021887188656328535153657202048566942382942143128126038453942511712409355373949715280024402773024466416501842808901745985455234299541042969749740683661954809569525960809032280377021216392611596759580250492547914757534115342042821806363668740806215193687292239593174092058728505801647064668296285674107940024081308851720647930602344150685242626297804932684111664564997042568509582104311778144356336891809769583953407770165717952116811470287875221812095386775475434924923220185061599906883810215015483522554190603948007899970118097298826484105701695383999861929559015785511881678465263181538455414722202685439756429377601206025438510064225312485385736270954404146665220099361105617114179407959916121228279372780383054458766768006784191043541273812455017529630451935908983234438469486056738875196874224962051525920587484229206980378084318509532783984774601486265427702983078415801659374517470285974826209318466222213179508728520726408108268366104699912805624954856689753039797199279200608627079347053796409533040123810668929425451999766817382562816270196551615964531317724325547380027228397703060951153352755818163634722006501074829001780336692666103669568827205296803698167350543227570216667380819764155918730064601911300685208079616164324170933854144795913108179180128501874472243063675469313286260298312715557937295903928953099847812702347184681510538368336719484725649361589296901550252275241966392977401862856485236364798864069326805440900711151255030164927755421160679584456970887204805434160814676849295540277273642476058828760124519130518133166983434281280450888080617294257822192091425639991433362222239579006093895331990265173387811539958667941516126349063159935616505010932730479281223448333559833304888793588423120643679933662703018486788714861989862132820832183258714741315841907801760914958617143742750664252021950915904541315778761902355825240585704958368586966334803608856247488082984891651924639028517629267401357489401500107988567676989911853906220000820889318785814343962162011571967526475802680807082687247427544240147284749114936671557292826800106539910899224871382219238917544824469624487098352354363486344036401007908870629574390154679772959515765764895249330880540212458290364837544227871147864639011147366765834593376753015358856345329434594319964243731051744889072704868915425292534862555745387398611355412569730447570696824800989632375925454876495172666513928027239166657301684292555752707585910719493224267399580420564290060251383509638040967247077073075856462497261405712609289275107266795555206213732934217241633244163444407411467240247969176288530996855325905167979116215650671161175727756603221714985866843557225822330883456307921466864154774871006299895665309222193795435390009488312694765833521156649216752636433546883153900453777121128448701712149189638086169121697699387529528183713415807578310612409958074938088872261113908550779124050699703035722704385463463456653180004976019660732514500628147738817467474726390998524668122351870994477549944192061525228526883603113862747650472879841018204390827918244824667721740861993530843185081993661970718495333520964769694621575797494006335501905223894947409053258478342364242491461410006426485959641475715914039789079700557101420918204191201946536350894928628791139583581093957074258613816883369974130944044406345094081881695367363829261637616352986691439422578426403815773988065517213884067964873376901136405569937682139673812543699620173788416925662970837436221758363236297547321476693525014033722825816722858728630656007217674044532987346281136910738952565043917845363949574468631370163750765824866444736199343561058736202943034493079589152436241682740604611533018555109472387815852681042176200839551135347715817621244402470375856061990082762849260948770617850031709221966885300490604836176512163168668954199479248607288031315217781770520920679144031915046395254468356212112044881373028560141900444093508886923472943660706329465904038103819705109316205877262423458426395101067836799031487461269381030965232354876795726412786496388776245701605144818116507135586680383359969452445784877908611564055739459123329195424284081257737634656022380454861687892884911764723429160716377249198485079291661920872279998444625897472870034121710246601145278834956556191668315607489945287707594000947756765341000299026818965589949428492693328559811414349168529324870983005678294784430612895375939066001247918018142342890706084411026012724539037923501493297406476253504228906823525228452856791714822706685994221664647855986516200793645887643200923405627347927994607002677370384021271121528675954991110896961504760905813366414950904820338039918359853901115184734736167880470875612863619478473775264161631964924823543416003019421168724120190814091518811287427666640768895351799311696749403354526565903518075364540058256990259888404153383593336936777434549065675446268954204511008353227979549502904054260178204644955537104875255635406012725433258358929611916358617995993270285897556863105392006931554388869593068186391036629824173780989587985129348489580588009826804458226751072874114686004453821591733936439832131309904854222284699642841908275780893684243062501202094068045523134948879286880721242409915638661880330659618613088067548342315279058054654540514298653892359915333787605896171236113052923142917791409274221423020367870412140512004798143474039932250210184242011340438542743907780368881319048755321955985139065084148670221526585140535483494646473774263960980172695959881121778097036147716246662772361372384858770692018221075232579712769069075344869214270176605779646614318189844705327061443321478880182672901643884629521022312600886905746029610210427691526905863683431570090452643511367145544042579247233578169740941453539650888298758245424133174275999246735074043301790516041024159783886794166736853394205683342852990380482528096764172471637463020441815033293701122339623375391267070139606309584399085539103602886112169714675236368157889387245496206464798059600755416861720087985219935919283993088881661588074552605541562872991488894294079383563961911642488046042110870183550043446094652558060826623271507631363976407061594432185162334884914500724039695367753692110581091137831164600040213336085208688231975882885533791528854606644185808140886334313958531966101019691666923970233189829785816462007406379253094552527968845070336057765114845087373753373993167535026149224307815563554516788951243431058206803071393110496537992474194665133268414707894779429329768736551732915645916652337769677451547280639273811644334433178704121890367473924844643793252376915604568087159174222006988780222423375965422917954362176335561416543539124677590173559085730797871505671445923915765187429473518705308490878490358462575224061616387047921805196875899741830598505923573698211201706812504089528012733536170181031549164715620813007146943612026672857072322678921805677271807792648398254312198428040778287799389828010481548575410478741589228596877731263111922744875180531563746398405856958979352209497800718256293864531507170923539633369451983605181858629742168045134690629336157555183927420686104660794402804244895448122622901853617538884705709518532817336372531006236121226118827396986026624485906937526452603653948133743310363130961628118077803188021185219394332994182926302379102608521525865792888855659870345949842340914384184017143008890597239863455751339504417499821231067176233157164902986600803561244594275019057073521713325203029342993396737143057569136340530033428471513211604475171208011877750856686989228239019897486273655511881436316006508391925106920407365824474323973616814297889634720839793018896617993330324531557256010019138827137022555805630385789397263471073754900352477040697739888311569837346493324926759559191108822975052884273203501135429805672309665941799567850379518554259895334864830427385169180714252297214869455991836310551144039150399868087059464855925618716336924453035544838753054555944019342881825647284882392937261147663348795789384067670406827468072942186054739932574915613022169610334492206106912744676703758559830440596594828077463077643331066743976307881497463259378802330016203816355305338384632013418807780634989310959126326399619682260934088169317116865323335877612010159939433876038929604179468927376678030293638476791715595264643444874331605288881791967868167415432462300771706237505037001221063465435966910177371338091744022408526558366853246986447044395805759019367138846868781041291042024838940976895815756445718456559772743441346321179642055807791278276652042316096214765004300117825597705670962825809075052717404772183254357843441228485918576170095631195702671212403692770264530583894811240183417334506342103582071278869394708075000877856662354932621795909300253666633641865944198146794246901270546522473301221043923159872387890373808257870084345305981618437675108667557510005052970216535947047681582986404266111810155706913963785670791004169076842435067883770114146233611416223778326044002663698458896332763051489485105517577037481636731697284839452076372989238166389715219219453696672055860082085437814257477797467251531623281046100592704822693712179824507319423812476893846926037912275590600785294620854207932212005084858235520484361470792689858025325970269564082645244728778238538785115037294928272540710024187447278912139426902654355350655523971666491688858462202798747042145873279393865302422753544727220961815176632414738562387369863225303897853782641896311604018902464488601107314056972129471084647663684006428992210299207951947277469026170651202416887843522714691192412314611816269293832384626542307182123401261765033871516620538850617401518574104333356825019360059923517103869525175054082502094244009117777049855417397991418518516481314067197635453919503107586878247433593138068341046188480363133172058488126783565452488658067815498701848386414646740512111302601488773634509318087323708000057463511184466610661500385556276915074315606942989569862399228099659737480743598276518778977043071289132320484717105066468230525845972566447114644784721535648971662775213575413589336134493286325609928914175355295919396814186542341345796224054321378254372046740788312174272256451398702544573711473613849138141535697959474795346087219859588213162255028159898959558513146370208122249378789739363812375643205872268091627719782349807332568441285482063237078309270563257992446727754113744909117501442920595483545208972076264410794544217201540368236451054489729949219376817249062425191988417817705695565176638329343252177013459711946192212649148534208041892086297430334753598631428937464485234361368570001378990158973801943253099966443033820570401511848184696779259133159361370946911267415952566709234997008088337461859105715170603870019599716442268397874349957790794685489594334762064426444663807498924985204445996017060429536598387968526429542925248165322796279423736798723151934875957309827907970928060529871896035289679300647348824024050028684837023345278010490804397712451417820262453554030128482733023409463448413491969362511688995887273468280342724399472176007863573872720756038125117987189905817761696270849175845361825613619394035276993977875504844547344036460755628664876185485640557974797421125614388227307237763864526850694155259893130272624091047616540001451232727920612632917341859334348538214022911198638966128350498840697634592600857625474040980316389188933439731304418023092188636518578191542236375287760140447645666665554636308950296029665278790318891635062074568445971805874909024713911317272939587582998414709258771543818140727989113161682915530277529223561368199645622314550811815996114974416079495962797025462870254896208527094886716474970387032325639968987965633532169746514575965988853939961040883809507920918959358816017498933878359130211022158508571734196577329112381762470027735399684105496972236574582658728922514516268485488563509903846527515206675837210538588130923722375039801296683599016045703132206408245436679593259364657061161675789230484219133964171305997120341933639808131384429207645642176924738801310992748061868428929697227855887567705145213010982351740392066139553014582389063613899373728770407803704094323659430935769064247905323900317203609995054613685711582194107809074984097562863812683361394205166711148358203266867143900716081053140819553153065750116293261862254218611231676647404445498749411043885699335922201098720980043786307470010820257666232513021420615763229278024125387147060658471496299063033395122832239358671636160427848542174859719780067439404668219838902775283884497126189013694751368561506728644215081032051711622150510777266248082101331071262864230438440815842350678598906878927320169510732824070275171630787263044556750418642831174349639253293753207165816720220211275384070493755248569896835600957047457904529442246528595029528564868690761047621878948710900410822270444129960117521388248725442073250948940498382722392271455012223607699376006122102868128886965208571928287885884099518335166232649386474117827745117888965238343322927054974363990293430035470419042230359267180728280249730253175796734679438034538481801477339422681410646729207607683238227369368688254796216766613178552968554021054887848184361873594645854055462325277830308406605751058071388277102415826665597255290922343006843701686311970188073301584653618357727053815278043465044178670888893500679190208229003126583288003023023717447983548354264871020086783953514476792117171369127806664187849857751350013319148963643135701580134849213588682108156818415810057678882601657248069259665962224784902132646169716328373088446480306908869256352802919276049419979432337152469447997547300614103385960453631242671783731304605561632952737880710636554282147742231075886765145795240677487659664436135395491189110685592219828077675630762246449275490264393540232867788552426219098610229957653009521696579133962902293524036671808215768176021304970135371583366069007149649936503948601437145829984040349505400383564307136590218882762769383998203890368571843306905838472321752551161967742046651211037156256414016452752482187608403640369297378444486119505698466143833535477501766931048088759313512830310756351672169669232757098497649140307794949179042843936431808378753374045737527872272971598753044919111800815050879297542854807004769405734951780516902000053559827368879754892526908390573262857717450980418537309061240556910118042133048322441520741852030528929402861996486522682528049728445104650829431418571450126950729461630558113327950366290671530602668763723209593528037376481194081877600649159232593697714669022982279484380477470199334953373981452112801819043784138047891001790663967448862236410545346598982056668242301382972752117644465752955678129640302243981961083647434887809704311429436022253740569455072971272442866497344926176230736190085714417002997208669397131601562668302729404534094238332406321030133621532209396305344103349715141054441016079222170450866815663638319490032796539924171483209660291830460574078715439024641831785147968888934958416790768085944251805668259491591371986872594613831633017662221840266421890463880561551894831652383455582881314298895391440019557205026517226161541517545144682426300100148745845262172366923124718963821741052036076266897790766637986803548802384034290797913748487537919540225099033908273439174334943343076529853757658654500145905148717083857471417066914341546399708043507367306409438792677645226687961410529054870877573995474193592715854029603008369684347056313134452970130381448269856057072850623630972491577385945250912271344078864737839123116035409689906066090155130813772025347696985953915516999275414523877376241587428380207174373360247962393495364133466140318085680946505556766815962841232865576478421235918670387097922394086901011811416739206181075192258409583228958353487317565591996664217009201460588987428561968147072172176937751918493204489863076381008493933570975149860821547387252768957054668832603067652469272858783972357763983409614319552902330839978979433213884815456886790368375069538116782027352444577518564303763407437778352082772500724231650647742967474410774569942292220720848009687039335478637805807351484374999517904056991326746189134866750700963982410838084129506021504264297007484961341562198056989896108622536930008043843353054680321735641935094991627546265783679892395831906100362982610759116870061980664654392231770856274914803922318989099878102609291068208574753768665367169379752370559543131327950123437007638509895125851866153749186472426121903713511854290667396959350703729213369977391959583451476203404002570606667679462187604229791296590857557594393929192653265687754705089418374064341656660042127867911229446771579730822580681375785008973651583979200169407754083627810866560121156068144171293745709832489583234241500387953251835566227543791504866447610867616300450942448231020600548111103689542493193065478257665357796165843932716546843624842146970414322167217006957461666912520243419152705838067021702633665193154276395449482820484849222618568123847576177905891788103841377843319042138655075043947597926284427724981839136436731297799983550463576031199320911044031589354982165943271006716358959014223398462139357676800442080946443264994864143637862378107781982653958889877812749886777270144202547534412982876758753637987504338183944670487935576921493737956481491783988598521816270364042108799643416808075198016316278032925175324457053543719168817600260838580860102201548076337508424551313503190222630143518825762239875001341374218996153770702858253223883351943237943540603877945388439890551081943089216443006351893928327105578101586874066585915886852478225481440489305617413196623535427703595742049328786900037758718842415233351102344715661284420842441690656104079359673872384218795547145825037852854941937662179023855759475567701118041509937907109832227152313581404114323477255092338296331197108979005569615232285356243995726360872129793226261309770233078247897304402183970200820147503843213462713421646151529009538110102845442774169501433842933986118593593682558662134459941421094372263875142763304962898124771525448632061153840461029089747942932667175751635015998029284770606715978999957819778712791023232088414664231188843339017006862984840400714433965900176130963714123590420347978569697379523960601461967390971096482906120397714042110831015526635158786516465855996585578209551963364754343422390029409121327985437139503657122297359924151254749998852085133986543756427477247851504000287928862968545165900772111257310957668291965620561575688980912287741882687180096946003646662084517526275968569708160979321620884023063739247270013551109007316279642904920566851620282526265809992893709354529715194109099516529222502314440148728423448811467463042118058514053833486775846026663897971141499404496601293558733698390129268472506929514822946667086965962760561021489658426537959366009618120435845174295232615604570020949112938944616601330587414596352569631886337951510654672942770921288488641878808438449958094576439086416989332059906422356871907268134087506538138120470819372388797479043159189978717385970173528937390425891655344729764178915273861607265886761107603621162640812823155030429782498905182083269417919802225906108350928419928628424628685479050245102210452636251763626467432278081271292836553727730001507232763535585611959700763239546094383716632271495503122794121469083366376171770278758403066558052143102321676901458975951995645768522127864218090059605301095102554754812750227693991024617329596204165853014557855699677062565845550212316526981715602676578638176352112790302363899012165484728905893858765607079388227308723917697497569834041505905566690560158076935792102292645158136078802240834765548754056389828296007638492961339358457268350897287673962100838767867091371756298007842632157765915014541875966297653145245121479444860911204457323919050783187284047466237799825335249558677446445092349931196455239649029974581979704270874387597048299716771330724963483709672976646993675094440035494937012112057537748296442438530205773340699418834941076983891986490174826170744275642618047353910896457296894317181361669262263446228254457983083673470026961475702418764943118885423664495560730957259256651463782255435462706034345098761421564768983171522835300845894029152432871507245713504528422463980514231522659875515943324041621176367863693438547185984757991418661266045226864704350295820630386667145669389508603129675556680919042220790330024990912811827032453520003195198864983288731539381716263806137201004284051970134588745885202276672079160716558764513004338595093832747595810907534242233087911201568272168253544133102747974613622688170707505188818156112722629960937286710715118453138428723113302596490331868830633610497267832596732461496275957126686230953648217749930886670509318448020191060540460643255765499192897808799600230697218374969350926618153591099463011699957980671466472826196616448361865527018654626509025994244710737322632390448809464158253469246675147155391088807849883676388216338153185922456232468072776989232661549248140417907882856562706028728584505288716668777417846322920876650769791215007947019461104872893301913708335327441620683151562097751224127597893583396426145500290520032974136679622740468994081528261074374019548909869181399491353948548974863801849255228322350197652512731707861149438521016680878047995222693228203193872971647321428715265926288444728643173284538890548573452788995676076620467672635698693507273339425420303508039567822331988038330822195192257140728907840979986880639873101552584425451771098768195289039314999719299529378810072116475606017594799007758926175506873903089425848270031148798753224536204224581201850615703505246091590132604984973855608495965527523735390858231537657170590807599581940328331929996679411140084862396328733520751368812192337541641884112919617654103464536186959621586277151393544742225694296298860486509084445863031622260061636930491163328477995223461662431743671259735864278767790328142153032756848071559700984076345377709675670905285163118495197497936336574850159750975128135524249436019933843440888400921214969277478444088858716323547983733119857371644873042848784210596476964042892218766245653661865638298585169226470004053481133856801494592176263058274448600760873885814258138254733427493339571087030078707822835205242959016509898003845061794499550384972121345860132080433248949730245612592915368997198436542599962056613145768860927004193655281933077011964337967440033335627232263303210626563149260503986750715400877040108271355025563025397342645928444394335866682205825257678491264406564760997434735061165403631820769228885138604932422762522560066213658715319443925749848751639005200307146984055518288308449342510638609642692636158464349574128937738712779004665696242948872125942928995206285375361702407039876174518328486065041300123391973973409090709355723570955172139480477604742281548026353783596634062666142339082442399821811088870834376889496580366676109297498707766080502714736662403008772883621448888886234768071585751077994531650297270586585476620970402912149099597185988772172872090513742642918971266269214330825545031373120299858347343272782789643498274023689931933652368663754632885758794216073485227046140376022840764935663035217383989447096397195521468270169700261892709290289107912088945345843027145233671540604603831897166118655253629411889434589984955004057137384426933399445810986184609892304670309923295060886709607683149176150822414960889469523347662895598976540049553309825985860617049564477865505536503693732540222340122050718689817400086000161993087587635316257143287851390862838014943727619282293070734883957454513538216893986035080487885674749854525846350589544093455750170830819766276076309710116855597196449054346532881945640608532673968102946277109105330438152227143623496670006184552324695164285227476905119180171678676697407851599762387437067598501718251612613540421308788983725537359924903008611028668260550911655946636525010154070433215179940380948559780874911099912528900016635031990484215711297666933012855783667729563768176544048993101843459286327978819928568077586329209549798556668089721575583443216388688185977100389029216042017023919080185610734971308481065775502820827238954055048814480339013017135038567404667467120610752229869688657371804315180857749330662885898221101424186514538183379959326768582741333149744265583028346751289190576130243256962272800698769142448681556012300217763176076819191804927697996444215142924293462542423368812230530174233301139525274130315441049532362364533665669252484294872155372986391817048477471254095890961402172682571805721906038156410102283107727011047438353230320395377847609206655136974177926669573618959239243334599316695594268870034408609228117973463853508835560990286350578399241815637008986769581441744203717798736017879168163896315750000682275870312999220929121115854981179337551451986803891780876189212008561960680875278989059091792603948015440703790284107338213442411437026400996089587254405868160866275279013643768243769180605008837259603053891383972689525606056832017420673724890499531831322498825140512374642431120685403135492528386181322211519747482529522774448763038821364247837318489364301991138305469857410967333843643128749739682911881505786022646480863498804229770463223940196616333418415819501516777911710801050528907764351573595991174203610339472342030227247766069862261750287145196256375659703669968551854896495849571445640787057890032598943661284282725293094001381217340044433252793463051859964929271984312625245685463616201943124476857049784593350145764550496897732548970634036989163818697445062962903108343760346044982074953538589162349270130828393631571414589654512390337794708927659213700518577490372196820060276841036203980090585603253046131657639441135190919674641849721089635930603193563206464128576166399297786844532232767457821199739509578913524005383338317957592449223156944612547904747013537845915569361787052434855668903331471599285989426640211539494727490270613906446594206513279474719003558910847833483023873048448729773396181580622775057857325536718123014193427389991075329747648504611452601173437335697852043134092116588754675621965019550181327599363771277184470069286675303351016392841588729887828615572139055574708255997631162801104859306238058064652636671357378501041613098085871733358161644231294311523913969327225546704808350658481584733913261382452746919655937040942752045780796290751812201144452550752884286447981316420367155754585997281325542904487437692331857187058487001149923392596370438717673011289579220543306603644717294412513898737536246720124356264500880332957551604757085853638816239292636528609475984249068134901876170691792820886003490204726822916039957357673203404138467902652170258596889695436450589834883350043749304555442482635855027732111292468163021258197171028197648781245919530919660814114888514086370870040523217519298691291833047030813847537799412939888109598867257204671395725072231824436875039358826072960141423884119165160453883506707833831430834289396101162594524813286194958767635230605164010498020115104666241313506463549232858291905797594203536464315861837749180813651295807973957348765029324665413830404271498224093418499314967193985123370769423712151334699979044542260468619263518764760146716225671968930582064641822587955319218576377773320236755653768246823021803999827855703720291244098739705038066140561764744158297368455853835147023321748415487432947839107369346986285724307892587932273233467661403805231728783658951799017281243000649423203126720339000613035233943820498632718384618557390938084047837112947050687879646045841320255289333009961886238242648148007812232529233393457763354239275854227029306840158576822346038693475634592130403011689467211513177888665767604070739720019769630703005247801014391227386615995383978037644759684954470514292249472712078404036765004531688884321642337005307873406840213233400539272255797210255809770137726698326164502330597838769699406222581176150413370373021818004881568150001342010145568801272038447394747154026961269542146054650493587082928404487738944440066810054681585316943817844630574666313407429258096958885296499340620401242162889995953556761577518225688947529688126966323919406479358568450217826428490613162714329420331394335235365308756806211566564373407181647195568323614142702226352110169705883853534676033599292919801268894297767406324804399733978040212184007103778579262375345628048162793303686827566734163884916048675711972343229903019859809719895331231994412901669245682729470330399234010050619534611816871514267323013277745659305321687872680909619204246354491661525003043699460138712796279635327755467504031044521132904722894887935247261966968744548676713646084896245100373714083800105943736241679346739151056219422892191432971331728127486645055733291529873719909497566926985741775153629164554331608964746587597150746632192782401107580539633848407729688751352167729844816467203668041117342218145472701618179842133264048793357224628346768828078553959486226682319790573042044823398726189135238772639929094295370884216819167249387966813105426414193045293939915985866490981813716461048980724010654083059399787664488579036148961310809917537866704659714962395437698687298879476880016760059898047982904471659205765034389970573487666232099408093023768237046686589303729558514665816525017621578425868083165069171534776391652861249385957847560919535762639765450420595414919845336431311578905739868786156196213799604155403406332665601221957925974722439629403038432530975062755647346426075029968158743221512416249678561407515514524664456672092218565989140734429576819274648620307550670514279320179014592566056842442657873107932499861290823483611233897764612719967117412171570053947110151287611072993069571919045225578856604272588203958046020393352153419047241843456261345459631818711150988423928530667744803403871310276064970186049645536713060648020594445212534222354122167495817704856899550044794737636875257441893463324839762455358810460870008372259819014058503109002842652558758325067089265069818926787778892942526204902498441005937515645409792847747112427949772133999534960752546810944535157124363570268792726913026567759449658175640233356188835124773567839355032747087793167163189370083251181553215042411064292825490428343992544591993489266622079325547569384206259138686142401177454004052046180227345757221366197692879617457085378022248318377219760867014651088076267494133297101765903424666622605290610378547425396447671357111968001419571654044441926644436648416573303176578130885789397403153464975266057739962375622906305892854579423660792786529392031099160016566144490688748746893403259116702496539389108113038372545246259680333240976071150533672846700612840167612359408774158368635493439158670654220248980312709656006259747856512616520193526382759938804340572075160159377977530339547923205995574770137858854574598872708644869104477775336938388085760272963524972454086996696448967915446543329835669279325505116270799208484636484549064266758585226347047389442098789786784943677950772989105143378323979473363017626455419829568010784348150808353211058545165404891265201992250464859647854852285236699313082227494302083106925748358543674431519435389600778953527409462836606432468478342845398609158286420851387220737356505272835478276929067171871783466358680852100078655474629155143970038844925003617054711685006962528766747145784006425503364200138461862520467762379324126541527529074533295634344521329546192881544703947379115843201767039745095999801277355463915778870767807616401190729280330802065067210643937706394248977395804494304364517179873227315302735696420752290522135324053377193496659203985756656625665451274281609181646165302869472996694966563978418232962706964480828121952849867839695954075753723868229781759131628583981149158213365728523071286014749221694231915923275420650183964558612115183336023472900645527042134425971840660364715533747786179122984944566155706285810010898979772047871203226814444403399310069506530477162435699385188261775852821153878976962949497316878517641885722196714022403485245841010604006760069828904201901332921859410989512215454683224156019085281788898913640935586520785368380574130448948155764032370664588290214558749368701841668892924140568839708088153091105191173020045131864711913110452083661147477128908576490554339191107840398831147828787033160071605604208942493895005320896787574673071846801572079814590711738445594294936660334392776512420499923713176359544225847466056271199147363132112657171887931482733910931148272515843902624168034809569852865038632402121035131458328952567438789222402279629653341421574410152923504137031503643522822443609375901081596817878617371095099979861767742703843023626489476625550466250397093460018861767747398222036728989824487681118988310538185816946446032482151859187096945477734520196725514550033810927868512332501167556368248119855223088936549174855817216238440823164665955860310224366262684176301809902656634139398077083755366956793926797603905200182615511002163863056648650878077199243918317766416055801588622730782134394890284576766662410582669022726403504794981571207524823423949350661989954123481859569102445817147781906414726148024202226893997848474829541594499986959257016102355910557276305854890762952212421949948437788556865612185303637831163285892339422297795471908441900578561449955307678892439842932064226094326807262837450817086449423028794028121252684325473819116163747224584994978296532818127780469284770381917680924368834153706748708001844076345732329384762662670595780331754831647062167946988973379823378053932570404371058141105776678573494202055956953122517233751682146196630883672921019292830608577343353684660775367889984876320525222865860513558569901810479651306229887765027939941166437391008163467899557368985894106715433882803924089592506397966027290180346097472395660027761342903116710936134003111256776147410064234333914633743498674948222351190033829130201994514621153452874714845211492988557508890305127962034736195227552036964272664497557392699627160978766345825801634959148759530090002276633004739653595127650319087402936656687713680784382061403893198495800619275876536874752023622971576361773330244836669912507322770062895889673711898807154261803471146747408593313832238757862726168351789785082395050759142292264828709177394377077029884841337984929026836453740291054838691724175500942661275966288089520445609167319135808788025565215357633343456009086617959455826763961607775568154080854225874307435428019150753645964091240458682316331483965968109283512803550651762444213759486538306055124886542355441587088230886508794293795309520206035167974828153926364313015743817942646391357930895346196618386067027500747601533150082852091740493568117249306443697439061749426833966939944535697528116192256225176942497621253328098899633029392755320582208960579832312114899941027530609780247924059702954941411632814941623069652567895451130245296112279303814552855924656411707782005738297165552845945779218610117814459918803772934696418006101947150595482093655596321621411539809201884434929289840006479139980685981114336074911729964708179259145639855771760964021141578127057267216992215954614802073722855512272070651048204516844826427883494071460631152108016327813800125304371867048770041513039976335594349692663965135451025231354408487645815731267251528611749232768000075167870216270480601479704332211912279684974200297386330281312223661745827864693870493790619689626681387166077960993156425008037617494650336522724906145053422550212785386399649792883474670901897171971837633543736667231501093306989820400270806165390938033200581602104743666430296567051133058506097977623009191607955991763959711548055837083561074191668856801295800329118553951215845474302189831398901517498315920818773693171228294868143040041447772909668844844630410151670974978709955158112319383563997730272873781090961704134585143795884061543864357055252298883735088008542464630871418516167762301026284589594860946617927700789120243812622128309349576964865590429181064767620830454538020037491889147051363319538533698887347992135576724276494899581128305187203459105563938145912951720458387509716416968222367130016496103649067989141999981750702288898996915974091699029728955141855637148249406412680738238899234333235544638623592688202194661105618010832740329450968209875369793184586866447341160249422668675874969152175596676776948432380438889798749936947009628731970844119478814372019798410900649635498693445157911672209694894971477120088519503739117401220843022368937427932690085758207296535003369560762264882005773013094346403036507877728747877524373123548286827691882311579528373901655411185579039771964475474642838764995459779679648852835391361957438537735042222598478609867607797729981540341724547380768401033790006869161093749255694457619285245724698547933559519173386758525184958017787233335568856841760046017189609905518541150319567631335334632662078570080128871520582057532847214872791096070694333933641827703209689156823142804706034849883085890031303820860635300012295433235790186248543822922347780507461571419521212019931453445262391798488928392678061578403652409771679955784814915076585846215599338431099216146033698435652583524830008197661359195725860598649902442372647802757390984944146540569909795018003779283329174043255207981775887326371797647868998220058932531651184829160992227413227743199863467439046165515997722387534145761506430755325716807765252565772025054991534761879894661217499354030080275607249800115947372232180295961545763160392542260392065099963003924282667191951356566353576177626317049749697565923855014699289202841436643276207115879358969836849314123039673650473382011403411437878097945009754808690965027852983739710934553291814287615185241960197548336645214349084396748790297016583738857952549128951561236092102721178439034342368732093550243899002130129401213264526620233998235440254665121417098691566230323472250368557199807318820940992643980920854178782803515460069170938284088155579890007738241399072790534737359001821213202941198158137594240718811674206922687540387177202893852615451374342802886966259806523683181061250012414991292789130777065554685492605861186721569693423442819519629409616884877170597469808052645252199367601512180757474729852729967381501947114236666795742847380636853664740761233777313458783302879360280154289796068967174690510157423922131023109243952796852663757942583496449048061670221561892459950070921603599089089910634475340945595410225317587997353503017946503536400474465449727242295639326275016456734477319171133458846653241300312990218343584751971485443642474987974137175649135441075592272080448464163708424501834915988430977867458943350877578426059331543377807327205191662046880727870845865281579038182902760399256806611603769484639756417142658284296000545644885756339092732031473309705081746502261737745549060395540328361467217561592180252849147472576175200272629243520863298937059868668581611193622167441574624781048712408172352052412986262933699240153431615312411934065705693635114208904652767001803346347177540712799212329524141598924169740117951844161147041124238519753819630616232094051059928342494073777352482896180954840238588989534374468642275514381429575880330544718215844427750200244312980933504929324400116012482049723725353336464333638050203432775458630704076930176114992256145524765077515655579227001473823097556926997870296087322660954560386934001361917484708315586304367904662731819484742799683885334087257833694962274182883938137783375030131205917555598241986903556482471021917359312851964466887513372208254900177717942963107231894163201317250224729331541297863051115796364670327945205886916851633081392789484403323285166939967959804764175668267349138803402373475080820468648487510981911126755179731373309667363039129649055169369482217289589076502342124091182536638559383420788744090644730837527460259514786394939809118153396674929704687198113321840448928764249840362503586958431528658338756514879489743241788527123378677401172085747623968346798547854751649560724947860895870185270703783046536778181453068506989110288599984092948145157874332254068804360345728977174841611421823979010628631254477558629615369979682754833426333101779257593344229240254231448727234205913399254274478397825510944038777244434638065601689259967153670309338797835346443838991349214941958390023797126349968061464172362393504546740578135410614086213039741484018866839557702479249707004438445349042129478469759160183377419821568838283787311922293532489087121581747198707052277817704985699512317069157764810198566635470868673739247392538402309291352082989142544072592199641939276665984083186668760329601833661154657291767469589237489016299188651878120352038025760861533086346248300618851075293304673931421575162490237612781184237528494646308139018279791478290317089124502732169285958392117096118678143301174367578075763297968099138406333629775464778468368215155631411629994545275573503231401847320011421765626054590223834023354107442699997116040127196783179877685016052026152550236017292783958332385159492427173208971327219330014868786580779912457566920248029158601690025129496867893920597384953632936357581024483901629959646487480590837260451644740783012009457861031975370048612105236862070635029745092397571724330298933963929188425478110031907590748490527499656519887526215906704831925006145231715575821604613127712210353139163712115813076570194120157370359118028392533754929286353568619946882324025521761485822806323845957343635612663401381090044544084944030942008684195664790661594218564700702945482125894333174102892419810264563071614563755146731444114904765022280032799484939848406968125758517579031038859722888130523163960489964408250309114891243640485866770475384773524542256517957019950254518861711734081174880005596029213274357802019429440963372575492003630399626866566618741221593162285486354312677798988760240102592217686919752536970709351973426381597393922062151634627568422512659298453505761121628428002023511131318593504682405118614222335190920639841059080247717994446033916975289409520147176400559309324684210197038338103223269775834080064034730027081994350907773211027889827334834897092256802319168194581389296457169067333959455965877452873970770396586154705367823365188956563225890282523937152639565444508291123444419246576060227805178850665863742343991608243788562049594220360306926315791860153026393857486055345353952212375955920652886045408232166773159659218156942997510596566652557782414427765008026846826674467403914337903093953381176581196459210593590212574492286031031168425719890755881985514767524194096483139703906974756377728643361100454815659547336012408799325021157895863145418990772360156540666441563577586022423706537168291052747497692331913707210720952842533150701069506960029240298354672315898061536438134578228155385681820714657183964554759465250821833882080632695188965821168893371537469122779044745213453156616246012136420138124236794775207258177466718183343171720399205204119444123300476369409267513285951431690345000701896683873727072104028421572168483358968025274096950294868710346709270689763334389261952255884551791417301179022551952587262954766271858684485046739065108863888632102788040926236689938639082039508691429051267081935232985023290875922028694736275857279835283088349958757890894770358568206022188422377805861899564857765076428722624200696119388053822425951926419641654489630446631177430498131866959187781253110196785371776523731163380134260875169093116901082717230419126145708622372825769030839284919439344405421348070076466657814566683497251440750443208223786156039719194508389699570497347640078455158600773332893692122818307001839605445712635934258412808366836504141928170685686439824472374811579653114815070572331420622371179069873607729575835039634075131143634345013307515725311904765577784083855320138189816440493989109952199070909247357520202366367152996459746947850817164621475443286029304003954899972097911146790264669645022877095713710466262477177331795324148609913424336096084910853469556271274574927507299111217980093915405180724400277829124049381728127663369076769632393848216651179250919486943887931276079798399855262346522056286799338988277708933606564797416421619253744155551833382642002913759327068018517174496474730793652617807446839214191441094382089390685572126729172542157715161187197470671620739917343919890643481833491706711670407896151529851573840756964023038115780389755186139097929422217490337225336255382858784150048963048539491651053913384202005128363893907715437193568655909639280214225516714557907656402311311402019265304418270327062340456269855839254515269717528250491787650519999123348411402011180358740416127509354271860365686696317075837354763015855651800277968407751977465248348351851224054398323562259471744457539956212203821278683270185756609982743496815965196186818459485187254305171234252615705625054284083679008349254760410250411960265291420909678947754839754443753058014263792349349324550788611041925125719505555503997162601008150496827330583403104770613758979438629860489819995004297259057715203548454925250056113991079655501929813628975349597932279531526272522892475739799791235857692921644615777073204809584072360025684925827231347466719471519119529527588713267483054964051080469150609173772884843427746234755278189619710643162442820859772984678028093224659594545191451785356541942757444355343595986626348018089869589760061709586754097986138350980869591624290322151479052781044662038654698861301913464933622266720901254417433128858194902867197414810929565712422865477122862379629035989530752567008288560333881853781149600755692084184784501485361880060965823100687845857124166019599689724009301193587559778152674334758710822237611224693765347518011099353722978702795709398534909724394062586858797195386667212247623602769390786243935865853629532309774898682220856493750758851780925269282857734978971347654196454439229842347328492143424597620618361792196876215699764234274867845745359620947567129159339570408726105629879302478166779981440557506815977173965550864779534204973428054309018408713067418393202496980044578204601794112800405367501896850748091992966465116305243201512143552212044554036942900356466355707059039871208659889565680726195499307938803632934302143323679700342552074387417199198728914380935256864649334743072349855969486766886243878177565906252307104065390759824435910257378209057914757435303173982204768574408328287333397916771506696842597382404291377516177454363423833281812395237780481052724933474447192636979578307350394333043141252605639216666918550723933197937439145255430225837353829734874224695890280777027254720262005573246718521683386184652029415658341629313166970560930465865867667626638105312720412385323561039912842891019006025951462949854492475463114364680369573172018154949648538542399887691301377091969032318226927300940640878427250089240937274740857659623968796357633847457329899174131548024818193083884002233713673103937649852313166470516718873223879494153390367325305514303120087281528048953627764678604194509876508225368801016528553308575709776478805495926583522251905036268072658080591522710771255789577836266656047984500201546192769259735346320891724207578842185125777365925266654280812463054437498691279338026395656044189486956040519374154621861009563870291436729197033118655133799441595869839307343190649126221741038560917633171358386817694471697013011560095096136549391104668680931587885770279989121373847204162282252561447394805684668698732132959561741426934746751920321215327343418763979286655304926963368119477242441992323875407585652509519129158851333055419417604469795150869636972923732477017291491219058362882861760927716339513359295099054197772090174643520470983678336059451790172204521924567675990572567949899654626955197972907826143846517831214718001956977698750766983630114034107906656070974944541340831931976571431783334298790394277542168783705358301455595260887173041648390690253868823577731987069201684598718726293899139175317359216665688843610070672448565372161182185323674008731354756037211451688050957847724096938389768618248581755044868794526751333521700341150589895935336149649952248962431161745521719977586062569897736257744104023393204932529623624561020509843329106747960327144589728955609888698695429089910976756870924454519787574065072811244979780208554464315597259158633757114844098611035339474987718299354510479424343946754402775690245832541168720016932174553182461943444010509793433950496986769572119001675182971720136230457894829686210812175077129818984822639406083934665517469277728233408803115217470875122249325575482293778255598427881626101349145034571296898756400022808457603024090218465841235429992589796103577856624725824101888641577627831956497220998474936916515818291517757295252085429523426030651638000716926540683347452986071292787004155481205992265542147627808936284384834019571881412797518489416337501837919072282384276671950048525607772180008030170445419735841579826337001306962949046479268017754092158436562265717168464849814151162595252376689282014938637115027532905031908621136626409583678061184490591977701171627000168292402751485747784046454155790036481376432905425755748031113416715548323027668674220465058645517728738892955554528196773928016225852552971433350655523158887844448340000773994345254220632312913178558756053603980541105624395356514446261622131282164146594823750611205415725621673127564498596008392104126403553397166263460033362242512139717979524020481329372918640319203429658390720720021984557833916067222863548049570960512716081999994563984283308017961912661787568756075342905096225301777101878194577231747384447274540581791509881852365446721705092621771556582049339687846865247841209104785997336928762559730699847216433220237321733079918468462151066743150680211916040118950031810938406761396049424846180946363973089303318369448669888545755537189755195370117507847795932166929809694403166928168544845159293019011973541284603375419980754557067435967209760556264979476883942256123420387801736470539961251701002611523958065582048561457134779131856610777654196719698913272048979480346201372679172387462226706605907937019006130190709552273683518668550316114545422778707328046001528559666616653648788844034099739700434338714140843620969476852649745431799433806045624853953022307555803506428772004780966537740219219121069045991761858166790502274563591934838307757898219968481073000949282420035947787290980006622233191096957343399988504345815872352505079090760963200233298911089241394309380670596017371048147108966453673062712905135887276370768951010622522919252705897356898255430452079784013274109726620775367339823837215621412448519665718756651699529880994051870834289897002347884839035436056211029349467686377570839340891062177086788887722992755182221279048477933332447228075931401810286317283148664741707133223811932076703559614502161240277886247747152290048646981200827811829211198351398115361144284516703271112742678426205439562547340228871952922984884418542678141555613500914757403961879889506835496825962830793687466890275129141946287269680038239652223787942787053441989064797642383806956146111153406200810168133580204584329850407438620830411168981969043664272674994531255014333523603972408407265008077412098598873115328715705752947961396455534995617274168435374847527354716756540528114656202419436302123078071611909718737966761579694916119534673405611090741055894226280978588640637286507283448620127316802253884126533333174217233403087980889874284473170337131597188016866469699102866729750322770859968688929934763917451704448820710035016826254506769751154706038435276152001593636232477467344210873372011319082498639468673753471358685607311862520083330233782552676433170411625355189716605957812380089552099066941873459011545408120707525205329860877940198166261183266041361382685243443330795658698668789806902240119771004153000334661457696170078679019776445249378603894355216652790525526155108643215457077199027224850698364974813645825203966525648884445881992241978046520181579014497627233370722331455027259337181486721994723427921590963101277604896028384993840623017660390584852356629644985552297185075591862365110829349091411486046405086461435732152099898085280381620516866529999895453290034185904859281428499996655771065580504245667645478041899314378512192750848822412124880060854376077587200723709383257508070085180047990379581214022148031990826612037578326341116059528104115199782150786762464584443077101149460617592258843461659328860693881432100750940976286436296738258342995962272853343373713469782425290713598690152449566420929866640422351500439089148791000405691096957881925498388938892811413226053806797089173310970135914695461419324331864558397495717809489616014820675242521787456423596038205213903117398014106200180889436697057696472828553266086578459362225129778289104628828324377806220182057079402877834964562104739624029425968098734470226892007967568149996016696130417494060665987340155449864098501460817056192098749595031522889569190237935004384581426763863351318909717650194944727295786395708970839317497802508575155213344146148602991411105547276457287544001556043422197514224585550397517149457701917296495041423050741516790890051145327695240132031519080624149996518943071363738020876467180972554517729851337058184429078277997081280534490517073408197555295823844215276357621694474601047309921957207280451889409366537821382236139436871785557047578857989068608969402162654246083617869584721767933110287739207356533443805391620361782377817241389322388423097058795772308754761441488341051393965826557169808930598626039890127314641013010902471570435758862999539158487326757853981020345120537029023092753370212863454462094547649103359042030776581405177329586425338219005969453960987502190423408799741372681317446136667630134912438041236487887831184157304486177673892126856561124690166354319582050280471660994555405603251816375776475799415924278445915631636778146347405693366097187900313914563265511463309034078905926554073829467080626963059480119368136729255019024455287348494138933045097441210972783949609869305170295307174349250456289845960423622532239449137306128426860812440145184245684731122852604921679684532320490156698381839405616967988795655601206894329144293420144249611532890169197840614163594641091132209878665938491919738442232933382553747095910251611007054721287080668793554301136406155019080118549843827672703054427244296193331578166635645692072359807004158977497824774178840708649366674719040444703712903634228132309395753498711656374789153020682190605960754350534161443589954386614881432665611366491351500904526441755770148268648387357480433506455350892482734852829720566965165686962032596054878777282880305441471806472866653115729007629814838589881349889206689107048143093747544181415578603937355396016870591907652553613924921200897606658695898490769447424347546682396834246848395383704367625417606494278342826121078572476210596671756885917816546484757786711956581413260291734736613144917301233950474400718648375442880667764561894249520839195642905522376032387300126953371869708124076841905905574102751513386759984096668808776592214681024311210047134912325847134877303620284783154736850883561364815660912302357342744945669203885623372654923176224992491538750776607724442082667208822106927953091229335227566003340128203051478087611180282475374945621178126636596295577449395526135817642032180990095992489941432398555404287363580191308917456758725797130738735381891297191941089821978958342345562673287438929587164708197730883354853189868381804339782673429092580769433261261563904390296020524991674204219393781225630629468552546313434323349689574834583915608115525833654850122328538948985780318327039186446706780737699684246940968335937647116120823550703445202242546212824784008801429895633386587100438208333407464877524578641286937906284426761764167462295841440702906552633769392098735815841786474132590798740813919081934656082323635921607393508486636387606893559913993570585931544294735934416611375264077417413535904342966607515106636223423825078306878457369712035601786470897198589847512108395612189311299402444653303763563732682409554084671235748106934984616309329665709488892853867886355808393315643686675572321962321407396113596197185190498647429081979661307306180863584997495081802567963907203750335104721486639805261311884718376672146656495056339372580166756443973120339935539444140458366271452696551295599985545643211320207183142997186688471050600334392589830996025192003431335985978294219878257829324906821184532642343875541944629500574763584779513116927406704170136474439645995955350779550549595230491119088471292706979659791549042966177033863326599294737545586645205360954663686889403812027169917001537406650052102983137926415889869778392803115602164396740801985907598383769076256183082482280854864392063884866960512063228281665033020410359118607735722014318509131270165172288663190495078290186919297616683928036232056222309625368685721616767095664188555594218884131230775175263780510947546386316313755401852360707750075474436552431258146862127827060729863626118046045882099256889632373474300295525430263631328982645616484718096535288104494974646231432010433222412279504228549173418410095244720460375377317333719559469137625076251933828737556770590292231219133118031428829422975144089373255343803130778333473772675900227352444082430694078099750012194830916923160856893220540875217947358465531936651180981938778561990473875189432469573793018559785979510718306898531246558193115960782328135774545453933658115425633074650808482228288331866512406402969785516842149447379284614997308805750737344524508891124544343836855411486088055648900493307288111235684258668737685380387060217446837479408211985743623955097694000910222856213628929223178764537593132067476055806504726550018931405960863339833314502325992656674116029590487468086971390854424497817097761948931400930492467440300994230787861098226143863996830527214964008966081614642245753463943039323752674710791993688625495518862473346158068095042779292427392513042676383201308313921038901972597875816464028771199343213809472183500320267788064626161822931616371921321794395918712759697403078469154669047060674534848304013388188740669533421697604056392982792212520295230371701488797664995012130501879865290536699745512217243819847101233569871624200171899007410446210994272372378786602874332712088402718772082799130288678937175645709320010906468279041721487845863351413828643754107379313035405015570800601337501287833936374411228807739037824898523925981353920386419617139427816618493913851674979832577751383417616646625981919431473548885655852212097403313353273501506517222156126512095054285251747768287369192430546230304131371165796933499338173483483035829413078786085308243211194010626285437467760741223890226628565412584946326024024065939178617331220690167469661583622292866588685662417712939666192227273481559614482447563995594404795603062563942958581221194131016462396351737531893260909353298957221609067533567689678786523545337876517412849770531135035664739125316165267907577179212969928320015491685384598611149773052929290977896317549765864203430918867571862974201507731163654143843096325900851976689238565100193273916207041582680114938608898920598580670063329166076346071358111500348709801638185203212857345851528179037570490426751488449057945590405315211904538493224405168237303516084565696903264288281246752058249929992014740352694471239541924322989236627995302449966788779667397274949828739537691811500053133218934726103453538483158109668482389202601457422114327105050864633846082729045534791858923556692919581292515350452475500842151827749916620456677552124764536387458351918528807319160684140777014525864546987568981139910236236880636379494045554863572195871009220527500667876436533487616508964562343577563626567690850261244186015087136450082427511093938192300616053090870186966996152519641068338918651795876946212399542156331119635735860011012465705108447902959841165726241968794142378643686972683755679126180406354904766052258923100852273769309524954397834390846273554828778944654012306751217324739874054668815940891202732511007730894569159911899806738076018757452015574628707908368121822995334293804933927002524136951228835837851185461989780726164422400040773852898557730874458211986011309676582583608710210330121362736934245671880008230982220433055372838145165692052351344000220390260375942076095384523671806013852777352682622690032228941526886581400456298183793579264515567359275754418071415960654634975150704888499871290803673979515569439890431703383485862516074140796777523146119507549471324769750451758363760313954588161835968967636003015714534973484467569221848783100535383009534621231255789143971612242750887088457344045429173376684044673403979850335298263927732021143041206990281882210559111258241253022322213508377137246021942991506567924828109961303364525020070085104342546550822883296437364746531058619051547800307871925783335864691621501993093201605701301772507319777790875834776920112804393257695891128801024819747178390167189961391861522932953187152436413112485667804807531659247596546090859802225514478516939671062914310279657962225264586216587740318913479913157727042455208179036004774815838569668238734766790712347973009547839279804592522128668088615186335759545570142595073159742786163413898744256808396335383117486681650593559118470903250632064217263605287027824221560535423219647600609348326963774749800081623501923280955776173190570213156739049057964282484860926566300638661820421546476087260847155599412766652677378983150504510109226617604327528558733489594514420807060085912275385355282416763278548897868652426864507631279248628926587900397859104406985381913458146699972356031945825175312053196635184245496380802855264896218590848463026749641972658545589531079131584000738003275155386576605601698122248730302418219107993830922497802153185083399161887732001554995072751139612844420212781756617770180872958378432545843756519027196087088080759545862275557332488344804973109914867418456679781049493904969486357335992919882682686373560344337827817475244863449638928088983740466455645927396051275111069881812336081072499164590518404616068432430390661254808436414988960465253706669243368745857230321758009416345964040160641293683308953106208249844055257047390906978374874019968991094360700443338368963094142893600617309684749852504355046771078996883021972568722507698468384902923500579744419460261740478722999929224029852739227611244257424659591755620705098986506099970904061746870846049279396499348961170331716098245984417544152351900637704625925713717378515460996170447927871362766552805601025630134648387121632391758328355473644217466499768597070753673186879954422636625825732930477446952617754226831402390749683961643105803855671217111374283112891575842607153841136748896849451519784549477505292920425103471045900187730838458791234462040161486433078727805345321750951959997984059336997429362900613767711688235601213983610411735641446116493570440000206769272253225698171889118372574335536050520118376229656324280464990223179513240793961162076846194013403261875451955840699262853419564103126528424360025620215792835779266151393426363184559774489383744833478443568058258755799383387479517693631425831718738869572477800718775769611433350076845255489436796286945396836496083282740951243516495613568862385124878214262278847463882536113625823368614386230600932450370617510597969319718686631610185556132842736349983069706520015947158418216042353574345597874719025370534920687233943984241928417909590596086473787954332632860967038969837051083316412187703381547614644724100267735053916322667580886793500873656163473935217268772300345302677906000813439337607753468429363900369578899761121144278040084443276435994806456796093437961399466365294288294800337052471737382601044012643086414284868439741198924308617309527140303475157644870918075009592532374111837310855463044758784189872236373610865692608169688912925929653195300519871485832306912844543284001725349006277581309134440570486008923365405466840580482950358099627188005872999703747072935992350262026818313285149886445625611791437937257502819032640053939593879268859039078991909093540406462656641567761450800830325791268425235991796991670412341284723151866988127554468730702008527793969874066674582713653541354090411790945675253403122956042536019729643857043114659300599258502791894400598689716264076765116158910782067697824733474113547501080205750953339205543587836250664177468619965058509962681483560087512648036421833818543274754835155882399652876589852881066005618122908685002044336177233161929393414014459204433179881128382208842119308793066559764841873762486648464711373294127307602231479391209887927131865211054389687168661122776305896249614008471936927498932015663881593081430565618341928871615379580092416337523195620250444339646610470033367769957858416282626682374019091083876673125908032381828120997436873547428517211713427094638869757029682854291481537339377732533057837008999131154573671140532685909003734583464344925707568440134036526483083364948433395759863786504676340462458245348686119414105782936054021696563673553805080262744728717536531688564675425590071187176405215219864974969179195459390994061193727295607685588594177903357407602833048404855471601006203938940927097579586806418898593312753212540064673181790616503049320869379822820761392025615319229460314571166233051325298874690531531063321874725869109682443066580487155602375095005554544650100495438003105942441847471551200974678594320225940167541139778026555112850687880131701284729717555238546347390821599554045672989321851768474284795881324400445427517747312321817666989829468219966914115697503307663288281406392696202891767926006073363311489947697283191602654802974987656046521350244794807058954278471563110116647236308927673509260659330431141937581938534361858311156391509130928770442116622474314864885394925170103435064401849049619060628146082137781387955538548177321120643750663265477943859276502537571823601490346703806696343658999329468669330563887678707617320691037831128149157711068584032450408438433380525643272865399278023408532175991652397699548713142166509117177323607425557707495832650471376385839624380057356505094929982515686027054216102223335931196175030755497399845135876004092888638490025037350775484549960793819515339443707139537185688503979291557573576677514090261735993403830021791276248478507480432601655483479420835687434444331769739180850618463208045988227920790911954413250774859763891653217123515060943438182651226248743228243302320134698337129907491123677596951040083280683822665436757028452433016150703619280723347410739967310361693709432046738760124482008002881385130127894402246044189901717564796621877532065366534812486737764929870765368498170278978069151566804087143799099876651093435697585055184811446642381571930279694874514962544342281926522422681026484979169259877655037728633881109566474728076203148022295083848742748024046910393918587871794326912652827309541726294281108023895055012041462661230269957526067718253416818973710404144245121906095342196966680066304366130048276730884090743660118551231195303471435820848089328955129974068328185352698690292445707730475583547478144229160117282919057218544168537839143795676308863505469437649055995166736326696067619304760623870733974243113128392969468227869620409732195490226811217455298501225998171900568490363660332408799578511264340433552590023902854951622180995087550358806543217937493640148553053886380905753571503556726483926917198135083589062470939149725263343550027725820248984290211991980574461139823118561040748981945212795175349290161403768866375838370756625250141482619884394571215348896569701559498899708545577830956865125859937438574279781278797431369290377007471243740528362578791854837944830874995247163617286424759278017561273771635225283243675482845249510064095085919936567842420601865910234069814105630757233474295592880833629666319204449757772457096785680261967167713960046216454881216866187741351575135106513058834082273034546374535021991017588503055890746444265261904533667284024362118134809015670658052308590166147127460552174864721650143500439198216935233355356041838520722998935703463605390146273498264168324682828268588044123827573866102659971447542162480905286867695169918538135184581796122438366386142396011403715062385776472695126476454524763457375746939419760583186712342058911134987368304441109609377702468113165398625606836694618000948676663190661498240724283367052138758030716859037818950516377443741831354996099577277483550912974912317493076766221560963884621669738638946067841579276630211167730456119273894802398540050685308265424564033807593252140041820596303958283088112425983050106739016791173057157351289630577387118423889245603340760813658197724794395645586590313089767002330652886757196610728514280883599229184099248129864424052944427545006947961537486833571157549722041154838510624105508156315667630093931251654859861531124364653485118232989787988057437827464389861133868559829224000480491913822145491466370643149728569418832539399490480882021283708521744459719077440702477870473442056670169331082934426833918507491901102181123630129090967471878660112395609218762865024043408429825864462009525050156848025076523083430981559317644619915719662906162694423243871557381006152607870881617670412060424210434629089935863983691401137511099000636492777203266865542458610965433409594365246554303016201589417012230105493940583946064826539109667673178514715759022448005912245174082197617711890064630907255857246608682166862749509929692969473644352717636167205517195979731338224538274504315907568570889073419368274051347999814485610400498535080261799291906899716268740471034431862262945936652028242146810810350174141226267402942643193051541330247485793435732638702860937871439745080551267077663054414363012820109694669709838673816458165907843597055545583883809947398926421633953498742046981975766611467447604839548271758859757644390647707845723486103333350021796261128900306627063284839785331262506282908916064806498454847012000202026741948004395805886952097625218693933587287647298538041280661615762915861998365035470839893107500061035403464485317552367902270094757754289276502854692046536954960931351272699020160125539506278265415067962002954527379733288174544477097147226507003389813029991285714130746409938123873944856888647618855224673008209099267133303545688135807362882728955394127280555865278655505344959400045035861876147804349773587936506185185518522228896689612178049096270739435532766655095735218328169463557192795088194178659659716159971085594649554278555690562556141135940963828275401320745446726603874428514806852292608873376399359571142430805702264278929506245394446785631248895084399690083352479923971363763525764812510092386015602599752431961829386335030297912108484877588503440369329797070935558778611057374368097621513173690191040196801342671521457439289723938676642839966637152025968669708614106755864977448046235930557446086612719764955734569294826432235681674929977410096087175426525269995211578814477036972326918505570297791944889004760140579585227612081184219117455443433291347113311540153035281317567181028907867129732050013674121153493077706614501224058348941815291429050164971529970745441906141761659769346728178438709011168736586190904919258302641632251961341224876919924946951897853426880231091400907553570205444676344330961393075352085344731544959235146775787254927166589691518584694185538698735328842459073996383054992622123043329249968032553586348604800498589047104809428223333000763336995901190986488060911973815960161082615838935836102590986966380674577957978817703942534654934136264167279405746138892332378051865624128306929488152387139840554539713165084931111628078737710082991194540948827944663252501235090564420665260069407094380619517795486092382469755761463649730294829160993748003524204544061906695887016416080193373385580330106221616905086887082504871288918110684294689920102533220828736436167507071827583801536570255018087726592207556041418342584656821711211875881857580531906372167038470384122969055581502922454232822011194438108863158321106930154219539101146610785053289098152401443656619561596404252643327529536574470851628430423929243288228946578559615551052098215654536263122064673964099153019631333741276614690840852870536683065170980202916402175807100580695799849414559053887181123931435366904438904057945365041355310733214068044541291805002149729975837640532093057182127223213282268045440669056959862364453006777344292605854922784842880089356624997157116180346915863312932908215781984429015232869962549199348173895853877021786906418991903905673678167218207661409521035865669364503052177225336398638019205660004794989455803755536126834602893145071115572400339109982059546912281891506083166603644426143642509344462713536806140034476360821123858298683277728121291968561879681326703041887709480794948559243211179460181485491627236999136773025728210917621877395604220086887767736952749657225730236200788241103351433791214579288767830939936991721565881656253153493300510038315975819118832350299010328774382801037832501813940477215528209692826802212649637097130356092542259069101185559125630385353232219922606930590170196312510535109021870105698233670915707490599617512807993464457994737297874103735706215765313072966936003886165993958596639075518186407172378403608076848490170461998145867164206436271350128635062212932114037430949422560689657450696860536192283404227893071364932539814116720729952303880101617754131428066745122084994088269007600836899025297513686114071164427852738259182311109608304007993876699965219439830951311859179219109162534223061200344043765994313011540101670549539489536744391470247582220392953985788877042010943602015724399603048783168237658590816172847159209892350562756472616279432165676024746028006994334243086430029863749108490519559673438993045627377503301934080789954621628582937063921921476489544724055832377587637624220543103913223292789393825982496354356595252724499447141245839408595518252584440871561695036257697453844737787982814486422805956930827086511182775698341052328426046311940708044357973983168270356396350626077296847474876828830913996895049839233433179035928567663897197669612264964266852663778307755580551514910672350199644849281122505084740795100801064032196489986681171509111262703095246368641017690952213450227187158792219277892736253578802713820124784558050038116160814089201262843823192400513245331787233304363527710552204214607643380698092134544102864898531340936320078590804798167858711097684253166875217018955240042576372863527389459997569879726482494935618534343254408541235527757101830122436329190479161187778360919224162365990340883280155151112546133711952360909551820784306260949652072426391294796338921390433702333821533176525398580424862245680730213462686189730075538479134995243235886425085428767419231599396336418133329617506725928948389561568184214435149533633457675741025700818505339870951411849578411438798474393753007193332367135518918180511058885466730990037863548933484341700071788476161750239852271700238512338393882360126123699050101684185883649670311286946731642338091004730193252417881466932059763037461946758394744646261122165135333106290071583059904798287756650043981058569467506146029994994013452644377119194075703005918092388696796802656226991469223596667185388620490666937978196039656395136458721047515350871458817413627875061770361738535958882334931923996198219939526916634530157289055961136542911078902157274072232720145252472107643665774703238705143751656512097827944824887686923936434777477294270968794163744517174235954583033988660270439300985822923453244181939045648328811337023904514956115279755373291802725774102424215870981786114768674586328727088548431487817099994374090237631796561211147568394302172480422157307370110338127180202555968007308509259596757133733725332292833191942827857332978262440640975050036282056890114472491057390856033216374969969505123253993813793515351522742190528406427804707706002161443339092243405507226761853064807476724305492900011330534546564304742973894117264265434136413971473339528661431196767223682926399358607364670711525670541974738359615168580994176907142076920159196042376804492805159191579110903868047337135917836842894914679982555785126416020320539698529396870298167008097250803780488001756729367100176744907782688288831777916752426262767386430321464438497022398110118475395865644781573979222272458025412075120912546902888343229876987504709765796493640450360324739361754902898536033785024008857168328556525691980645074414015148567501484895408178776957450890111626100286246372834322185739270009314717835343767751912131536977298071981677682448275972283209531511487247763631840126751090935430750414234497942938610933311329653192330275688332292739675690668298109748558380396006045405149258641448274819048149518291816687661346887424809954916954701207520896910596403460952399790349808009669453311029289944883105938191130511425062500362281867852467290540626062479194050103686995227845710746306174017408216333745896195528488476056775475238101580145822827191826347332036568017140474642239904393962196951049887487138471305767168710626589186644112565633244249313207908574814242509517982233188211497500568366986481343914916101247708039727855952578782330969945744955587173953658412193467404140378874258786702698486583779591000243638125405609730663825809386504441944198896817760782729078555599248537140544838022511500180760215943692462500064972082430083433576569274231009254297112942436904525175565542263219017517934017161013480754468499188243552834038422759665051479181123635682782411697126667097175825747973885557982655635134953163687936854230389433967634207846352279924610075755462495610221816314379797578685735195944092342932643775399544972641150643445666393968879118621609796922371110089475564453395195981529524864241022114854368546455950631444928672473200617522136377727413442073470534156675468231041221528990693518615932251015492157671625691565883349957322124072918798623267635976995308842647014846614541188261680498829968834340252394114577277552459747613373450793059609786174720354385855777456806023023647598666447944245086384237436616777047385425247158743908084344177219673209604035889951910740170313511332546679731074988938941934887120287569337693022927128603630899363120489752470642467998459224770807780235952228126163250859455002914998200941055278091903133458485996572828904444451880500286739382458324849319929458781415873437837133297397835104736195596949714375544329767380856500239342300997046714096189080731386496310386374541354643911559667826371083493060044291921972366523937378987215452209054921306621303014528815659953035580273069196282460665938525827601564137064235879941901158104859361914459762161721005137099489298770291531438494274922419096620780579477783811259586980408960554899016873829387823474944026587941254870636229962538987798355840563998456857954308107143823018370036850144119249204128259474480619678895563958626795044381724329966946486426679882194201092871146566304320342955319065000302368439062755107551904114098643850079545752855256531621797537509085997492896620714250716905235814240637270890918573949987460558004910043737618322549557901876946778552302247824761222916087819176913394206711219283795011427512465038234808162284167374133482316236051574107004937807041171736660998543987896228315397361301621831471021176848362717290107451396865309582573207705238945522592359201655592361482397222392627522725554162206815425787220560639619437665097353690561279688173511437325193695334701986921817133058978690280191823132543742937476140440945842774103395978137994460355988062886307133163454415502403016050828399257296100027501566363285188282248086050937525530423623227830953611436127571561806584297204098126974500307378158639295764796015029450554084798815667484863045538854898839505411152233864632430698805989190970794846946720566332904090964081986896666580207986511442586701509699377478687774969388631323044323839655618940990147627992842063777963112867829026852485175069329482178048769771313596463159088603539478801071415101618064775065177693252299164609789070441277606454249894292915591931215951052623348000225958077314820907183544038197214378129509050492246568569246684239627499385308315327336680767305034521733816977534954771152905054182984599002514041327287184226537756667670078944723408899439494220020538259071391334547981267160162346110579411710821387092809537080369043710377949622653543699147736587263156469586756404950038682012662696103724867589977559308511167318338141199567447323947377086413417829449044255591378520541531640758324249415192631412766127555565225536185279254565687579733563915891303846502367995466793406189218008941166116165340957381470861959183429489193917476224911209464769175880979296664098481185563229631870921161518086662977472619330841183381585516089171388086172363786983936415705417459891727165493549394035016715956429249122565428703959748351149073190837903083341665361721008766038406891698154060877389630726828047117099530429890289701129743293985439986574787656349367780605124016690571523830029189668347329992198308417704747722248433796610599196177310533281270116998050268117445672198639928451125575530844820873319027141455423993844450411905797804424081716936995434135889168921672665878259803669301012083654928074594510059013542158174610727318346795694203260665960790474000408086556286719553819804282158595161392014583196300094861947486388259469652900362480643469255696498085084455453201825695550297551854378611883875680735190202871996943471515451661535621691673735057175096513599133752475217242636524249054264066159849117398411591514802327709897876345069625120892285100070859678607657672990116885316584234348912974509302133330285587906012524812519029736040985827142929620541345373496073354775799951973651455046528201741940558311724418213169052852912954406022171409172560684263295509811338786508676771794576636064720348828038699338645937266189728366386257906032495501001439280934817548600169242362678252820842953293650860542894279187456341892242290088860842340758399702068344425779679935445161516477899408172226975298222866652980989452992906235582079275435486694389010186198401009075689029619059986935527693253294546832280612529666306801154516198096487218831350798392998154637565773922475043948778956725178037546661693242428647938899276029524488587003092962736320732810733696379247859917970141409095483265253756959099234019834465453426621477543574666891828731095362098980446979124347641272194592733581365714315323806112458017778814796744344428790067792219841479208875178826046179616758779298390280530530552575318980675499453781474969196830182241993072360990880043335799905740381745211150732500835460729512728740770494957070695712373481298917988510322188942737500357977018803525322773760567037863188304627190115320932460447953848029837703233206934535073227338178381716574835320239279091916713024560791935259175785110938740039226498842023181051017153537245368196619809482429132724055895691970297520215008685532388218758268116753404316989960597185206373850776429660787617526517773122974042309665286830931590755752864955607241826677161718885022377277249274159315108255500535976886679438315846793793079004163843841287402543837433433027168333696065699574800133899383577828281781549374306830266526734282315611167244750751156574097582630653565947850129032749358368489411845522510288601435370966467946924011854358865795824340349858143572069267058191526772447431587647818450763563243078810142590920750544250927783764958503397836586545003433640648424607021068538904897077628229742895604201812950366919636032803664409055927414511183012405086640445511563751174188481154651780356288874995455888901027853324422987765984353297409702511324583544399804852281649436531803086690859189310747328021029028685608912805051248759239504758947820111856867706310349041907245754341381576517734424466788354885704984284038524128305885219990315711890575395430846798142019940473757578632438575007371306354162096162100042427068276775065685357746980546607878457452054471021530231887885095452484140291273239467346175048899082072729254999014961303238770147399472770764803408269079336252159794273637856046677996245802189432121159476400369017382031769548996456186956046596592800529456466283493947186168071596543799406784865643180088225729211239677993197365818364978542208072738615951240558599550731329686812929749507737785028998311917694534234385494313614339928727983154881538175754340010764963911271903956559499829395270650274656031182405347609832630442698288252671074343159151281868116281116916385259478960459099828139264400412358659912930681879718587946753691086259825510111195492232934171287881234494072633550996185425845257092861300574768023419584047529758688824496373896659547389658896653369541533706354491882780353677753602736930327244169841638177131015500996849139184431462898302472060369193903395734714115448596347357727194441697136806697410645056044121925375056255738398045520346081258064085062419819724735916133281516514450091645399377254175182740882450715638369304077068816186166248133714430726102084629924715866533322899413798830908409337328439646656066842833513877732687764761897930658624596702895543620272564858945381918017299739664524880860728691207711787991283336818802308178267520724623926092932147057030671149381935646322845380560584587178449403638644225298315693436700612338059836905358207630765532409963884232993236325344758594515937122233828157109950343670435289276108306145696307505663923629733521948318213284981315234189265833342084008319296533871277712330471834655688026124198644808546123163310823492440678555684592343537304567786455503495887447929736468032651077118012546781171758142613065360637245941669488799975966910605229582877607819459924621382775710971786990094476247562577118043940775243100762240085800638885361925035608064639028699825824873417080288486943392014849674869957062052922086964266745294183430285929800945356858014395978406725584982402640432351956296538276585340377595869279551989513556321419739188061497592522670146691492635096489437257318509993203723733817080951590705577790625220523349595455974535849322493713262294623419673634357497674833425365363943254500710406202405555613939056651491070453832866820812563929588097221955430191509174306976075561975137690564002749460866672315135902958800315238073726307363216739996790659613206994604949564819328911176541557702059876317173381245291028956406775725986962028618375101526122948443999197407912086786904334605704356026497746975374627481918954034424786804286090324862093268457655594357201130792698463906802869551288543540161601983899443461419790189431935157126648231403023564488780858155786772833183891843728466592207568133459574822421357905912008486635173711023552306436498411387697715195394876398816017275241605491188131124438020665645107174865829166991983985385342970240830345184446829462515834539329920514736000374628631961338735619561523616794158448935401980764701106242739953994048978223971553743656898257957684433028329838179496424210310905042373239513888310239184716533187515410972619586816582947874450347639458822058369074932900980615027659749946721981396540597101763306567419907486012051443078654620025795481760284150012194138471599137483744801169257021035471247413921234536249679991588040695431490937922368159501675294492995583429548594350083589187319015565339685682685445819866606626504808306323143493212672230703167455599315775827726833505567491096730793901741270304203405943777521683351142412590265713734425799669017374767660056469887311026933642970654955172087712704476866345396374398091687784624797588216333587670578606200431400031741070611003714010676960833634186237066348383360367643828908079929093148032725928438200070663706323322632949805016652014896052527182784620115931317324451858152126628210587201299927405473193351355763670949237458097748256304370685100707676086102497523955878788096432825203263925232581316302060524467451652464853218120046859225795324237063142920083487358140471294157415290001638450461027667164102953655730934587347096963622865109605283652383431364761556714279437846752832093839306234430027996753378011431217428410322055168307930719216651442609731945742122074842037514298916354899672403795970764707682155472665386501865917990548978253607503954406900952768827794235397347179872846762594914999035031780622392123864842973104393460553004924857094588142229422577305665784034964327178915557034208472775667597816452752875932487197885522762932884078333416327927951025299417243139470991381236476977521959429695673827208379178220377196029590187085756287014581809795711969966478140104032767061981828651439928440525414270136777363635793269623162352190292362865970549030920942030059632997586193405688708793461287783693051279137384116841848939707937402535964172645665166889606155740558404921911163770557670635171887830367607790470925684494314937118258194421711002615841506602782161798274365935009509295452080143589300682870391688716186600690572937544879269797696933706723492029400255702723585637444654868770163914922005449608830180484559559376833285702472662069207071990635205883708068083827624527924241630935744340888187415323128439783555895933020781855696348625872690109974794867739253563817232471509555657746692819257069131428375471776691414897790584720523004170573201756891557772155724773373634737664362892871661893731272544663239833659887520071913557460716840822308399932511126271624970383673516201942565896333573896791427876474601723982106654037648897805038582776245879258305663742231891580378757997540049751916158780200813900130919287332348184177264736122892149481702222503475695176999495497735117120336061519305387503135512660440839244690371385946377089817949719241563257556015278154343943181754050055754182170002911907991870889534344468275463218449423866367136603370430387331091015320901192759084344057610329593066517025525888975883168114261260633710346999689030672490678753379939230017484762796602527965994123233949244709420143691460132578827981426862559580572893305547561515401042984083106462318178740152003605218886866004433428711942814679315108571731546592888241407450039175722780852329477595217255642908179578857116901313200357300940071291628965550921019691315545836340092639309053216625666643716714916532212141950591359134700315979003488539483746529362346879258197022393400713376521454720091406757724406353923267498619102624693083296348714520695693848239803989997557631384165840502748966492115568368338596404251586066673954982911758088830507635712572635811911805570379515621673974524871776688013665980383603420966235824063571739735665234439823231762400566530002252505582574077156522850992859578608709510128506108263939594690268796758655737870977981873423188300871685486984991262724747372877046841486268094969377770408233708868150588234115315942337390038752235604228508929192098430572126558652422137620076866800459255127795040243087430265917389764424519109926730492679498423122422011288994293138201322240626672259734037837061244404929316904044396768690708956099777750118280817188241029270824963744079023009946260696304962394085335033564155711329155680026626330904867994718465328942775035472399583811274244457980195979344708610153144733654862567581784880336250235508984705719537178034141147463708655261281095880280264383279967831426539482325912013650328995928739265704262341929416453006572712231191784366654354253987308772522860703960899749543924358825339520258175985392920975269670912439797811621736888591727658787673925002129492840323352388481521290648235567753619079084092044924662265623446180866259696269819373272260642157304117426676273476043258304904903630913879217252393031100038204916724190295513553209898129181151247228515156955265196963707964066978391731887492018214085812819212929350827991655788894491678599014172886368792215891943748638230527044536148054239864827417048578481986906321537247350203906952420169880665071876746043382797156184594241130418006272938515916473941453108576693595658228742439976097185466388545118835968622140543652765011764272048467571950009747309453476513125534933540559458582594827240374328561468734297738780772782532941236138480637495299958842740355610151907019297195218269702159324366380214905274028576864420097827184240274600006008563269243251684903048799299472206252641222786956097783608228057677266052694640807327107489407376726316415638407255373487676644779212544520507361367074542903241638890568246695661516183535052135401276736051568933133885565806006635575554816172175150968894449456631248114072427951640976765745164579567036227258552840148996086726929136541114634086374525486892581945429179974399432639008737341580141187942041203969536006883294432799272572235384558043029532322552084276781134437847643402587217634530940927536258875643242530683410543531097961228319439364166754600921521685401497849267176407953496142872416666897120466490502494586811202119398569885828841934893854395696100530171380826762373110458800639773013598813412041602156544364221160340098647601801633285894483024199916897248821997503881268817355074350694133450974208244505890811554096294891189845784177414877025705642644059352383475335116828124858881318840627486801750520945781330211040180239171179423165753999142000553310800250805615002359165092465132462745375041812907409273775048425682209810354629358698539907072033340353127552141122765726771377948250699784050948065943795956599367107209925507854123565757850622027364191250351139552363932929082863998722425603379520379153097486061328621087476353024335596459735345355826271431809290395249546653538613546950469477771250254115642301132904753641756250468674505118358524673852781641702467298939103608191923060699449241851728378704979269827436362738959119964131447637022957392409385860935106912227846222940339873126288666184742574135716564404677797499216031622748080880338190071360278267526205517858237481906902956534115482604111315639233480923537892201994851706374947151663921128214154547235424974397805353685016272937648116719155920552978354733362749987888957938418073697408468112813461556216981156097579405924944499237834236626530603160012202234866888648324811822706968401793306161453488809008922037492754785047667594665230932998257817678788378986691553597901277918381407974600804040737051455681483138683543812614082290518839457521708894320626976143607849346385793346869958110365860775779214706177517903212976253904630014463689088578143467804182865982722772853430044582474646141266043711860897992844647043718940316812663933147771541467652107116228480799609722055011654206473970248943144312495775552972881659062847524532750073190164596325571319615395303955890056243674787101658276688330998929292108470750275370086784009028655745329849445067007922133991167742676087649699406131923969394715560734434437658603276575548904043131641495153882550483221735341112966696329417200225243495244241951674534105795083700800025521783411082521892480289049850680985458121026296721507163334951821866663411716583810221424773713152253330896531231327977538455512405569468111985066226171819742505731653697289313260972053362215676911514810308934291929496099610103123574912452012261770297920882610725114109058737588167360061222554553287924923517701381284508659942232788381407933542628906850846412186811924180092536179321824833687430021859723820804522654928057914430249667056780995593317145414764300114949631636610393044268619163433933539238523730280468437660179673405012308412095831962450198015450088519276443967949630802085976912672992478686587906379891073755835531609290865860829361090113583314925260277324213641114185751812424288294623057711790515259434562158370299294073438009683450340645013867784768693773277950965171487975031898323154203725286480977071337335542297639528083865513627537169765465829032949010555398158268894292903798147330413629619922033010631117187098610484258804241111186948028250296516940947066204784733594249349310593640195091793623452590386655817530556522287744378201068441274856863615697939595102175054537567217138154788731832046880283480670269326465721814871565031155513438863839924616800211323655590041977233848604401911379284650011830810634189407710999401238740134942667226029988428198423998327431529863112877910682744208217843340450584484339299546145811544995488895428120682809071950003950797041742163929708550523820136049944615963892651704262388423273123727136087295810021458503155724330284930461048090171353184529984800500669004730622634512819062607218970644664705930340036048019305654793538701541879769824506846389811580386411314441956961634893847795737576707184680001783390923988618163582635718334768737549743750226810107977031759313256892531813351909410364420894065685485587411325071916772013066619499694114147580867892017264860102219907899453793696821600080090514966841653924542377997785482312515253118271675695969840713308531735903432644936870034898540406673820337784578186885188332002767779732183246361247825926734519941273393908445920267942048305526506960945649138373408365715843744496410401499909079836262740036597708968807930906435396328885254909221622828164515673861552601747476285203278928413948078201049393543198631043683682725784051097192193067769509726422148362140588915059823945340828265161690268630972553357209327365138468721707406235577255287226575845134961878053937043020246536631731544694603018276207623606478508966605444742577595908992741435813283297562224199356212257669797002162556851504853169687908125293056336875986173393873131062042572959648397869320933081388565789424107566008203172583532019760822618700608828322310468682817879051253528409414235751671586573485778395443145489705822235012432309034174679020785873245034642088212865637057950781153417254521870982948294296636545312986072427248272962975261692935576049419662486541516212011880691965107235238878458455453808831896224257067124761605778848128169832640580209277399528757859125846909073110599487655862005491849722707023686106601795079571331422606749332714429230819626627042561591133199282962908044644311722143851035124095104956139345833851634119327137382261504197574788212431010780023167236362569753535141429824955021470715092627158657662249462969885841371791302886988439864005383818088570510300850346901958019722997884781796978947112749218169445646342406413474607930901867181775191822809439368214283890992874290160875008684033605466275842590191480075221433861058947059573898795545603179327443667133051192682812913877801207527177940700117758257057210998240163026021960732077275578903568595490605089199164444127975060872570073913551914175351285805679137897699126631817509018912011319777392614606855725068284860432995757811837869025135621967842244460757506433416523162280267962336859603900610363157199696518243162783162887541316446388161521972846690399867455025108177017421529450452495804233763201978299466328662422397092444344574902383157017401436724761324435971571480795023819751176710218193842377979637626427613981140793867830876136820080967156557488028243804129327995180646618347510976330761626104783382363992720832271637144100474764054308389854978581103988961452563076000702057701257219133922753773284294240794850895976842672053566401746480247102536510950367829289339270646629279197021814663311275956805318568280858973868736638712863537290659637708097060665678189288433630664625439486683345668351707084062388841034735903505946146216046886199953535296170794555661633173453134351719050799738037879182034449495519921359497632647893518830579337526528625652136369684172967926805914885290175864987166054022213162753993382432370263609249167659351019938198892636291012245816091669662756528564354285061187555279734798002437884107722114425543855902005416893745613716507067861036534431884797447710289659081679887539842929153929410895428824549359337706718204402289727258338530692142410826332784822135955051868693536244309298347047533401203385957420005011763354427384934769136888476844504531838248670148513220631882580025799034500587345359290459580375901403992236757676755503163149635612079520010603101549387007222357290926632871742624259958422609926938714527133022213356314509394922793798109817066808644474019550171835194456877018902273410556413352754376459279672048077963990269152395916901126024523417873780018842293678701024488120809253319960401558317709231442890502732285655643146284995153442835998780627998702369394168617309305449126781516791432332096280792381589837985224205271477641293655094572492518866061549436314443561883239789687042940359760371498407907301350839157310640847111186381499306279504528296198910695347777021652466154526466125326776374389394610149835397961707600377585704605751598526734574396289643477957465746769517841034778502644584762995668802403494420237883149774956761555559770918567640600131271478830866963320987916863662934955864186450718628512456175957126282311066806255453778064462354229672412752659913567148575735092912177081495989820476900181472143177141937163060743193308718180673847755997549816335784794488055752612996070174767494841714770116266487543297627310528937816788396835247972934818468288389407510529113823740235175820261416964230024549106489568103658361803036765047577525605704272664197132230466194542228709366497393355977230017762505249943264224061151766114722213131295495769433090938223922133377163844291991808396444954876566236322768368474321454815059058069410558857463387211705146229383245143211551505298880313284698903983705517462609708626518368481048769519001693136485148802886224369705336663099849633044015675548687434873221142169538738316652718195150475218531759792560184989202846549691398838079950763776958662910281813384242198380741406664786129415573737328409981729722821142067269675487604018312671559208468237821386757335126222179664976221645197162740673342038108791461196620337542419727024012190321895512310652590563261953649041692240538959559931695846407671403936728198464280059473798914031756080909783638400416177574856045397859696471441107151473084794625001506370191456779594488506127646681964456181148156769459361441924464171911089216506743426377137636968749261926029206648721603035386981536114177939739647128109305882871326658864095081565884536249738383730696524043516999177232737173097486923913859294056971771244698340915341448738246400981075190151537384686036915591777101096330190729471883629138856214801121802797851015761328398300263562472414139625056926812999744805825793975405000867628465083507995880750604695926299888859959123637890424755110543757198404716135785545001797244397481695434692220941420975782590982944687252098147138534937020573904507114477679328214950032210850115845196651152500243768676832998819648998475830648155967583603185957481889753176452769545203291266271134231207795174081810615462639381080662273691423847563721528048821913513690032736311435826644960737195734254637044454856264714290168010017603172597839714607422260692473047085481705860340230557314926622189483529993385016004048985361354031158196782390835854526189239823743572584088018657879437164731843613240172552366507597364354283449865890301311947817098281555560915195088947941816500051581887159762526596642542875791524162727642417704557972523434894505184805582955304961536194344817316796712657655283199431271553880187587413144231804455190100061896330437508715319029719876893682719869392782325961912348776311930051354711122249991360523059518055634711096926622468340725783237038884274437923995615761089015513018605868918292405601364560030693178288912358738034720645907455759320159868906320172650964639668969706462751746955957141073040327818061938569470294546475201236003568109969012471708255510419744688991427956474370363267919616255019469867656373685409579527639256589473861904111475448635937608050353559146964947241969664123147180136209618649273082794755373063197458165469465780958328062597233858446573584446303794967599527239883895111732241469667242219977742741228754103482500780851779659416253748938668761480995903894642328211423074505267002778132991982118703280112263275095772168651909084768031200817132176400288221345434171058369361118431775171010410183806433728579346030324645782137102249664122993855163226283804719701360794467512247128715465447906941336886590935120407317758267227154728919232920911277174720567710651002737033282594109812155831050393616765156980933144576014835659757091674133541340810829713473938860398013524032273498399963335354022972166414180961702374102715579134586500946328719849372492605424367629139031533765390998442490784075242594252723908968972379629011605600498670318333516626925272775873544173203950242148206084540731496581509003773095063230875619595383316539221989523460018738078751318210215089191938353507847656663379548262611509100115435732265137681617576351991364188489032360271989636620827761459196082306839377920670478397040522336268896225245770737559775309412839692642933492038130647304456757166173068385727148374758788325583115965115791458951056995998619393661907995792625476987745764851726607760372830415564114792722498469922765353597399916686957403495602011174616136689001114169222741874361758512970140426420179070001829649942365317069943280608551304778625084393750301569013098747016241660136810118548188632705863660529535886519478627302583757383278000129908923890046617997945924849464759398712541676434146889956897147703878435278415500131997057106945869396921917987774440372999737478349168439845507241240890750528056646354049564032025953974957349647560522673027764004881791591486512679311028698413347645696122047193560904843681199220976255447089073405904681434922198324733688157831998912713892444328642246082233400044157343721497907421663991235442797619367687205177006116452521472890107234437398480128768682681353442220427524950744104109770627505902381689172266281068418084975158765084477896518319629800555256076593005489887790610667843866989177633422861410767667982382354136503415160903097964244050937923121562546587880681660210426683485679457505491598353107725831931951239035158214797466119243161373765926326182475089176495360040991835519507314263729606823179756107850677903588054327332040812747849586814771961504224027435205364421948243872017364717173167067182759347247558956469088318725040603207882715231104079952705228799209777896788279105889471797683627825823157383663220054819210005555757119510855226978088856969492221579538473105581301298984411013359703272344995344897329725652696631537194711930962493685486715348795498400889565066939602598065537504327514104729440773526684849697684672377724334738103163758013402820577852834110928514151039974276130966685750563207478818376652127364481600319709463414676591472758392430978719842924007728075167681316997987652420286151604795062483043994151682591665287697171288004636437260330594172344143241457737949765481172680420340992611397006826698233506082651694480575860339330655140958885146427930760566741298949759770402288369345850990739170862196379334628526003128911622237251302103178098987785440179335636600981701564960206016123218089729934123702498434439965439435335042358536983274954119861688880954326842073241811060514365155132806831538246620706719007212162583574168338715068816267329680902389216682969240372754992401941977088448551953182487291315408807515203069728910578868702548760564441722857497462371944011965637257672955944036443009946259389208653772900816202082940426035862389086215073840859764164319937759195108726377009857074884952283686273490925364163732037160076575420192663084581159379608740320708594531915766650184482263601624106285074317750039275479049018129307180497454646194410963398545000955232681586053641485143038983451895523871167691714204881763005261394917813794805174283098615867198426526835970417861471438708333949251283998936419695314507460038253129894563550923838132225502760066502240599885752977782759878528163295318066643335057935099097032057966254322698804616305669624565643325843920679703649336426969791795274631109411099170270919969323370061764963957902919542305276301092050401294385627262035716192676750234628930686819933062851256532581142614281517614390404394854914447958821347871485010553637159430413581947986555199410478935831107631082995572674006049921151730763503572498772991504433709189923694427431998269401893415865388068401327862674780722805180560916269681760983557562207064364963739837380788961819343260057406649524210753482651798287136014083899070249757352173069676658975084837745063635717599397484150082935696643638850119522363382413289150856229521252839679251235544226870522918112401965934625149674323356371835162985667437787836977914998406269420728372918515809471404372414663841395570477737621148823363379075236918386477759872875605028803780650374565102507288872936989777325198373148387093909533171752284184894372164736562334919454782307150536565936071170362048788346110265670478756153381650829213580833055787703337271915506823225124944066262962716893139760414213981647535206226016199241178665477928913434628728364491190287829738129018622790013123995697732437986963105489772180740305304998980242836285860586347290623571282067263382509071519733395886992314637626912214435831458122167621832799934706232082760428882204940034349177951711165223511166949853308810410566878837857477121984284897356358343093137623351563264975768339865632451573346372071540139993511007747155409680728865520963092092910679377379073197843296162137862678723455558662625061841413750998715674171562069297793460670167824972977858097057486510285416094865582018568843131365435983763049793627297109326028279451225336256161836445204303071776220101686813507521597574982833428607757981536748269950808373285782614806304709191186812493010242885482229599575849918115612704941291700189044033595213807772043776597893141148995790285458838819492257749541030517528597808288959278067088152902525531300129025025310031990124495553317933210444726360170737604865108175920603199080250897530789606880235141476105313020866705382382309725474690892159808580118041941734126065353195833256772180978675261645030021180186601071012764798041200880810672827849967415372414550880611216175075821402938916727998293548321992354572741134584197592049029400501264334748590579779410922924143186970704792206980215729472850198543907885627902431596578600825284846345856354569273196518068682456212935799599499618103951962514781672180511818427030545532591245653202917095612820634423720226274494234574804995558383721281148504241800276200518030770207791841620038834463562167788234705122841980644454363995328215587886604298812147903821669045469813526119446412137816442928056444487972067347168238067161859379062275248730929005814446754885765586815844579052059144923393475464671690042442409467348267299973342779162138386419066000444985680658103079534219466253617804539125220404096470085728310825030871923723472494990952200643429906352978100499108189386211199344741694700634329192855075606872295414857994542695463036395004453795289537221820496066533681694076632904112101527488152976846784535479354184148912220800563700255708821846998858392763998446908734681817041539256803602625205947741276038827897750518262705503039635770242814846165960780321593496885595828985574276195388166792979662039298933114452665837261144062732793931610145766276013868282265310045923493848501290737076042104853351379984858892180126002997407738776039003316467596626611101656123375286304349369939332603515256016555302256429012485011631973361828381626126359389064036585236360812137591766974459175582664286426337482877095142561789482729408110298657724784962510706484517376240002352631189151144665002702027594965219155077178061177064962387598759512328295441853782918599290767077683531255529008461510063670504127589033242496865909355495377795083480922113337060781911015908140219955960162225005193622169060998378594758796971664322990553883332648519952308294491220386421207774897721742767690528666345662580752004301217967344482738893192164095057976046991774514263137904714823418699010124208108869020314175175375219418389920816172493324383301155311819068642121573490082890463845872486875788589158152845802432065911800799292305095523617348783059199849391419982860002074197318356175313319001244700566617284901104467397570258243953779841740006251917880441656461612569945567551049262378591962119832625540937962515268318416899926852986622842955146828827183716972835206408989847960064301204040760148388299085964214682391382134409521256864336358012634012199125210453677954666650783421432718828238463042908256021735223915367919929644552390454071888526060804012062054026707516635524493621223624683022649422508602607818914452447170432223937617999656137211342432120262587502368650610986679934929140622203938684846994858045067590127050419012178156848469189105936983406880775052223912403151480590926864946516657202277291855761590051054997224830007182871594920365186354475660585950348298290950507269104816497925573119513826649384210366489265719273040951077421525415273508572815652650964307880965405918158299981470795510752703899621308219415995798289590920973000606402417655492289747932347443166338625135791664914765224243817846925952575398654916273306355782961637235317171100273054036870427927539443793457205592616769422467839057296427871209238098816545196254135827220741277300220874282324249303753094190461882974076573476317170827442838191617902721456836466066250682903084354681542961656625549084651917666389190574059763793402788599419053524903000470419357880878641398155623711232515585800090659499944549965996872488252314211059232125070474724231231133073898937159167384044249320967987963985689795691422645922674592130956840905715176660319492962212252864064192154341956079119955608548756746627993250975959876111120972108000084479288407480770156521665066361419872122877786161008863611754407241272514548105835401131063349463786969090428266967579652133927199458336243227879246359317671567805672652187773988229238422435917415555983206282664852310704378644409889908478507953417530233463746933297033714493228857874728420997262586437264623600183310947493186581383776789293879839994458776704121160835258642694826665181950715888758777010776285917719538077329382782390252336281163827094226925305283747422886926247850836375453365210472799230862739766873055337650410434727769682651814513493122600316369937752034648820808665484569680187536875552651318369551211775623479033102382176511521180658832416159593171621110252323376828654357638558564559614500092580532136096347115050095280358871849252095294472924096080859972471826745712368956759150588766044211802755052607734879749857112015376589440997492161503544703733830101932371494817176014949452841222960555859500860694449861740956769383703465945961737519519444786437085839357217857913967895416158121705065955097386719880491537306535761055474287673874898143909899981460910460613232611842119425609078960606953664814528209125372192716272398387415736724733720120685626814803777536031287447844695896541548392556054831526744155687714277377031530779551621450239765929346146985724438484519701660380329898259107740937194121318084001633130619884515095481842294745543876199934994439802142987877349568399814741744825887329310969689734021103948050278797276480253115967205418578387124724941385971031079595224392896105848827075949218289173074724854524593081364422073348877684547891896160308303267378382235759129514235041491977516210968181998383767495105713938379150676846223930144725159965756300859814792022273930968003851897802850596167953130971332375569426383011291626421683806381410635023377701392063227238512069118550673722189132928659097897999039304950522003377335276110816373230554481580104738892660474488286900624836430571239643279508299833140215984319385160900781481321834729333548212793619020844660702629552766643241799960334363828054726676208116676418109750353496236168911513962259879998939601730277829665156087105975414634977809742383135254425022164022941397915694736890049676345444562217746222415353855758775674817709888638139742291041216329719012186912648757423973388139205127508852565490834738542901337171001820013412501469861110364302924972592400163313971062878926220265455041687579567256005676374185577385875517380583302714392626339911702066601582612616908278891800474044664215557583665455517293254884150726182227541857915594482389796847136640672347467939296153238209025282556564992080255657851791779315931976399952066753038120845952161053758384974340795841599582165077826328174164156901629371579600335394362011014041951164356431437219525596876337353689036607139976924233581510650648165718177742659235042224088038789209098989242197893443648235396094907572324995259664854103615127958536003869968267116112712389612864311499241092168187554057324154986193535242027341866765233495306353717979413079712169523916747453722376139740981350809319967661715856786192090217915251828804299069040338610439861655527418445009442618850033683256124684539634555634847943138808723991209108507591537364048470277881860453715424669598421116018876768634066075627007015145098960439071066514753471853452101888765095740366366651047704908830155923696308134240358783314751265140856811242528281754057581816435650658880720063251131026841077026796850691067151007435156153688630673909671871348059682679952548329672407883652533853558637344755483784444944917279804983030301463013307226650095127678996382262167803596937186197527684745111869446890465658666421846940902984271171171981955208833694430758060397007286940776480366707732768336795631996873871507241113290883415301152925131924347898691889867168483332616391110303682051794170960418003153269464310126342410594445839104016773502607842044466248570702937882681982010115366944234796005912699457721739413230061748786506805317212819034199138468934767194019646411766683714584196689450121086766205545862928870619391312485204183398503347734081795107584984265163005397792549308500316213700116501642199635780199604761877178280538624266062642581751251578905725762660689718502325450736078778467967736628877305907409475655838540847713956481096975755576732696125965301985333550060688043662144956715192719582326335682377648889714709637387343612447056245103876101610424116387294975948461288210870787778889219804684312899360210814719957261881570410344192565624317263759528230592972350537333019177754352452797870062449485346526848300073568837583219309004101923844343639265210281174234930223704413000900015265897585686954487552616847579355329853783328838164689918074276361289105083307187530178153387278179058752319287805309321655644544551121214366345477344314586590949854480629191010589406951983680240804658843757304680403469984033019902494639635784723686390404128461099518555824411279836783248841650295680098745235682676029019831118251893346299662372009939141733607299381645166823082000751560495586388344756781752636501613711421438056382393509392188009101961703664427546185686760149859718231162160372806474475255518947286239871121210723309922512656772834308916746474760620363472757671513977455080633315088188718282022887805291757849460740016347557060271521204183223843003299356710956584979857984080393386449460298448993502803522076469476609077033253814462458691589005670520951008224342348282641040754585808949234993453634143831800182221230556669151133845489001342568515487238042984419067759690554416056774982186749803632916883804271449418624550429850346947047870670718671846294779385994329876105585514806814441835128969582923820724207305001855934974312209494277018081113913193017536916423874586774076019443649927389230695130795366481051280969053877211505144596317637371727040634745819689243511022497000382768656516933113022373732492319072635341408905699540585854288901789539362146481929147792992737410486016270197710009061253184605625584184377515604208114062007162266683233942434584192521355986782990184074624320756573759089771343921140049443963343191503767737511393833042170895790088079480996021767575530105337286774014849241972530255712504616614569545391746828753723670590187888279512301730693115619299115595965351672346727950628108727425734232090890166762747034008048253802805026791862401852292425174865527123763206948846122051995258581922086931029627135512137176133654332635457656731125604444338839840633143497816608319914922222727296076865212327472662281506261995009208419434910671423546903873997896265764347989591408648193491988803892748067131577020223622531971648745040936777450410596093423676797666714645528921827064553350280011723758276642430347482345854719814268300470377941664303845061199877183493029984207597951279518754560463267882634456838903641116114823627835467676394550844077455984950021124629307074436680338578245627050561449794965993024812904823779249433510695376451530547341379860824168608450115742251964717323082358991322327458331248463573525293757404868383270328176307316111307551335026848085422991039505335646974816266852632933054395728247735669200097132840872106419456996401250581310316369502185403006141110254523807104324878354367083343275555161378488367443332557648041511546516916901626089491106966371487985790160663612442837040094426253671459410969887515443472284323482675903964718003870826556431660494087496353673427020042665998962093261030239170598812317285706982333471633077992804229769135746094823424405724438148053814676387137184799806131763485423204463823203349644554448374921333396281769147557936217914051270793098307468749120256580241240779533587962122424977464795794310656575828011467587679702899847699222327464049598934929140073494881718095855501678372002298193718297720476979895120795048718794215812776854345833658257222378240510725926493062958246085488542670343296198429182668502740221048275896925820754623577676549253171808367199502260935281246141543657490581335194955032272389270949916995397362947266292769127132268545895378169492496798720314550309352689328571279021263034082912464349377655880758318182252001599985041479895892838402356261589442755557165727189655674604695793917904384189974796030049388998376940911334620058339430711890351947965554467092656322190282783620242106963797674018755651089423479364929969402411603070016733511797649620359339082839552101738440058683568947466830429222339933905962371834241641614876873369994210346592090411570177451699841511070975836202351682110353181749662606383408419998588143811216114513298841715562459093840681336559101059655261777448191280310225416441250671126683646768624078470378700730185705694128708869975814729873363364418862335390937501795039613651394272883045169437797552545625924082662934296670806427695689412785843540025658645676185205596713125232921204194821303029724475780530733019271732682170132238134807118625006964297672711054497693802822527727822521543410640286193917173262543997410772326815458045676692218976846111704169647206780579637698610461811495325616976431154078687831713475607095121435836500070818095843355077848535487824165727929964778399523306031518513518646636602056106680367592872343234915373091392733323623254259984059413468615429422920919361494139300010324840773790910921057987336325137237891156126915599119084873170241277450530863424152433211837790684869673918394716070194032773790826239472251756324775051006665289050183674044539763840646889385325365901359697105149130376805314330213526662753057527911664210219198728659261680633577259161178718805739470425288812378104840589906219786758998977350582155952962766613744174187101490329049366439688139233663572761473599094646309606246346605760724010095800988616656633150608085580412273142650638877246538137170334404661440646512716941355734832114008465956611514770842022981046622667819262383667343532604665694017417445158967662417978827910228346158871065335217162045327078757427567068873667114801720288581095886949747384314005241350715311663526186710166387247302353877235423559824252865550795037533481765326063101215763084490601612807147861672460613333747725434336216620268250473205597330479511608833383715828516508075943276220859420627990938433160140978323500294032326937628693934279520654241776405953209746744639579260245334587538552488325607320625136431371530048673684197588297696764711743821101663053613769913035629206023079035755813969197129133250865679420484771444488536284718729483808945835832260991369135907703557364963078853360327064459056044019732580599399542532094226081940652730310918149216324242325783960128100078563438281867783846866701201270201722624326425274030200669184109021006343538727784568202454928238547374143539477659510352155992024472396914447067891811329337268232166066251906358796387108072921863614640600817106551877816144983847955671237078497857192602420947211690062225211723018752282005408813457346867641441078225427699595244880631371065859677398171428947546810450357350054865636172932353998815356772744905319759280991943003932094094334703558681914646189416984971417798355965632337986667604314644031153369969927046252499217539051260431572981197170677774182249425323109137615146422028624040966000932990443436282779506940738920632903036939928767010103185360884300049383620209355526183981804982144222682421323627187019344790769420225386077783157525857664217665636783376096150255716544314621584977110017495108825826787246434377639063787658798229916512232424016179935636896421196501058038837723153776302314900585871153730992655502102539420653035479401203119667876809936347098767993927659998070669294714382086915847875261712679655431578487942609726719754858705007597496065629604588637070291217093324200381082410708153771308040818414468060832761206447097787982779348386388951660772200905247023465512831793469922986703901777236519449421319027450776724551925909684210486688218729845842682298185972010428213634203132212594792582017608397791752437175977820213155479249276620332918347248485390216703224527349919970449596348705909237406410317035583729261923735478566601958574028303109053112630839324561022924390326069480590675875035114768133972449993058793966738441931583054205054140704840683588804086799711528887801208899553733597391809287686427192970062908629950782066073128690484260055813154832744742434778556417362608844262329379653201300455068518195007048683510410802972197437207537685128513294184339698041172404290583113034321993995544007477200413031094664473913524742129823110648288650368320769662699578752596644103415620130553180107785144227118922334570617778303790660055730671590470669467818473370139510182843028557323934028543997731635697251108410514459873043734087444267320461454376484323282608751751893427442321854046828151490015031631658124516617085295154792454761821414892262858456431840818048170449405460852796292131860386568151627031703619400015227608812441713269682116576914632025308768369647368083493823650182273956035212897924183124470357521006627940034007252759156777792484355668829078453205999921577925382762828308415062245845763439517763098082620331560917617548234613280524533876963954426273149038819242141104292572980455795773654814557139026237388972677769769025889395859760618456675639312380239533580564268552672608999460002652788713312129925043394816846370199777755093885745332549998199341531584997260476817823755683821497975626805378573609458842260985270536771221688921138531038643410911005523116970850971059321361216032766298136560136152079727760182281499367173997809446074594067288360636936166419549144983079087276507333098531698405006068940515583662339842183857015449716771276824948340749072931419801000225555403574845874344391688677247483841657290227253444867797413988728928154519168469081136003297851246895960741248088355246625496586304451842813178804525082774006980590972357139314837420844631960073351402662717098520575858886369258476410244869242186819000842489663103186287084892449988578231190346039583596143537369125570241641135950845766713384368444727012427081532511287866533998283029535228213572126546277860740673452568696057095346141186048846517608635588347632179987057915226002437462343908017945032786573950133048381050309382864518377827951960053211331426751905398146807011346150335701834743803873824901646886213656930391184810203408450929215297214861493033838134161751090274020576610264551041280477752843435821697721532185340486564416722576366024997097846293382103387888169322373526976028207935620598842711391959317029398785960309538899111112804959496362793070444993318789267013315231278865627153427198295381304666297428751504275807394668275271723012958382545440247582016984454787354447489041232108431397792643460032282762104427627941092311306079219818534226457155430864731129915466525873550292462649321716922624593935079685578515917363648994635632572374746674087346735517830801021671605119814166570118743661457273608660661883150922105658451887194965410045913333457349488448535747882980257840765642625255428560695885667681776542437427077593290893227160760687807192079362087813841092084367568306908786548408640785604263852115744288512990986728466251154438494487711167566245261442562645677623420920410682004876013284869205230245598565691363752781789502423389238895967024813602249206016339475447426815718272652204596049727501514725001504194641898811555454905731349197450995966205664563197643331191751005738755605887980794715020991963470283846493735649654907697608627588186311486859592080149542764292014611870686024742020386011338812439887623460986745382486380893268642736744097222149518119482386159126877716868219627997788557415172813667032787259095146559874419252085358863916925999924602817733698352023826192761221601040714685186233298305328384245633961888447502655999277824782853219426923320915742024339346423497170333188575412394790700980323132579266067139100136573945779306468934332282767510507475257350699134369871193195448276032569050857555577012872349354802251441004284968952681058925854212094261563383275461460035976761469881053636411592529991920334072060526854870031624432136856547485658132772567014505627552978485219327149255575924546839600691751964119875763169721477199488367251320709003851781559931445358355690466107927162630658583945958494891444636230854223246614964729603458428088576828254141965328699270552759398561592202871912422546061024369880455368739178020708554448930684746639594376037292908437480160920812055327618510887024130521186966180726503636191601816101829243937970680811747193105041684751195434789206970143722879092064702339298334433796641025061578050259595737296962986856499999890401124446653495054097935299551992323884247641294823392871229213463993284466541432455986954096285126552920022985785171817531359918622611402338218604010867726974642408168977700366475814635277375448056855135225057514254305999899065302641590003965698836191941950165728091418379001162895335985667974532301204248492595590254119661847562888193708856927090820132998981216588631009819692216557259056898852617665949442733946411678848504142932179843486172630161689267740711303738331067985379558883988071250287136533443528609735739380516537567789732120004942781701668269872281633661680879565164588369366527431009583736880268028720522040323252280395378635725409079929557555328455058299779307801597883932910353806056853055406114139089534969033842214702080772893262600849627055209973653948214898138916150348903713643385218374429330351988135126502001405336419636829755183999388935090901499139996225752261854295617201867067204125648889715772366003759291050634972663161909682938168105690780016237430828794965193843295429362505835388146699685725229708804626505683726038303913555890090461069246581114127502492430870306998096637354153138213601074203558219826954125831983496514532870551651552195800403150430890911339843357967759529178080066084974643035682564060345187803810567342671858681437245240411065339495389502534681506785603054308122810781307664609046397577847544961561360305425171947647384156309648640378575708207788308979719711737019547274109145858334564094955630529755401074238202234836763918893176511857661797651951358001531136336145330193284546461270739400861650900297027381025081375957643968255682162664202356217944354204865744940241815516153046269914741632731775852615199075474446768966608902189440048129854251841800949439115966483429082291523040276906503289208862016335518807179841097289024061763900164783782381818265188148269724274795695737218507765955315046086064863741439478470201574862141539104277535638870407456339508259979494712456805306128635228599802948551574655050565295595518421459080297663087525693686475315497017173481945952944831906547692676472675719013435778618494387890761397871828321556678054235844757802916047856050940118728816127172214995273721965580279510513414199403316186775558800668755253008951859956766652402222546556061738226309937926635453440358159535463475387483764833711693747811149436399195564958191193822228138290567563482057099785128063352760864339570123603293138559084030579264102211886902111308547895572892550750201476108509199326187757687458340334728875978233032055564303784295052876162785840742716401640895878394087594942533511675039591083429407308055179215760380825700502238514642181041731752602709931127250082442531350391777363257776688101232781630643711433582917069718332694171855535312262892071712773442357881599295817464337787776092931042799193307394039684356457569936457107946371664444059063578945893410102143723493956928559897510476781628456539831393510850993156740419333437222498160739997933601427396209453164314706012253966457702614543038983659457477076985337734574202245332784976790103596216620510594972089778249430772493977475979530038435909704169957552270862134676161507277353211793241854993589411226748500645597030053227012650548789830101877111348388573196216985853876206535827739309207526871371891722003488632774247422147651005601195286158270274146044413181572523127504634744081020685886074657665935629842774969492937990453046100585892543778914225642053317023783469320641313246189018511754081056474120056691295592406193195886553583888348217148281485125805023151289883742724390205383826866201399348138054323996088866780759511240536285694382816628487850649710459138162970638081420551737713434589241303193047475476716834350219604874903687123474890329103366621084118507760327633220438012474958220037810490169378576387758156185802050696557201944693941834405331213964354480869550907420238664057499389937412255001226639379789727753696288033365747472775946237750801561794432295895774356966401000214463189789231027259490879098010136083890510191356168207872196855592536716042280955582700032139442792756276854082601561142705069909240297051843404909112180892807047592115446783208252565082378902414652566367662233254393569205846954730371959185854535228056299870035482152661151334195266281636349233902965391733232954469683529465761417464834452575300830842320051737790023143084453798962240629138332717100618203439200844333625002114476136521783149517425669051401161916777108573364912338274751722191471852209095680744513615978348840568585171086700987790605527047917541770292723942901484619101566522292425616494219374235978050757570391625741314184140864945822892292171036056853104749884032255931450029188807247058991727331269258047880433357230041796177564639862256833895118513642834428391139494031115244218376585275552324790308527606438013549279493618506808166416784974751600794918939311904155979145782226428353595210402151569114151552946659090290888342135470962096338504279236999031257886828223570346494231122512595283613350037929757281633052031329140307803495175389610055858456818877507254504912177248179976993268983655013116504434335423283318313305248827956006945751773732663209446364980820281868225215636674816503532036534051810626269874181716195077327061424616265236414054572543638715515778399129410742863923013731285911153058026084194824464831833267626818618094497743928159143410023728658234888000267723253909043744850774382687375305406389805048914132918882256974117766433487799116561253603378455781495093738166135858996583466446341473576834428355668527572169321745229247882439761628546090392134147921205972749180225804802823214582058129118204221766177191184523266599664895915804723602934878254548612774430761687420070195770562393750589900348252534726248411463171808082828122122472183598332150056235471782277107874107701116323145361098100244783393225603199924942152493804618222703821242643028890688244749089440212280817427738449928229783987191596391757363001628965410890042436608633882926114317202436526293226326096473612286266275318642229420929088702478171924894571330851955421026773957835825671640805444216565883650341748657444706462495937790747689330542136180270605352444110370848871478482786516680983366235833287208010197177656876420245712876639163307030982737993370172420583206284057312928780276761560264962140720808279052787143702095116868336982674032897359653361839453246234581437111926706617871776057774771822549905708161978819279452926137857787036457213493631933402917138954199548446852217444483693255299798309281601006091861973846806731276996662351971256782856473018397167507027119439451787578154618794342040526844856366071861369369319285410703146167640751163002269206171814545795340572467144668650961558343551914307626005148391697265428036956263329117437685949858375543876806114258388036923838199931974434113207756518104469723309086257564960623062713721338809294939955126076817609850860866606669169120757903562988134500049171921771845573870622340355873484476222584514977569394645832208657139890618615554652310821622163355792139158781521108507970304453832082295083324064998778838512141887654885570757622028648663256076464281276212186609239120018138036085653688171587073209985043005844090438348222922281774950727199054870767043119214096152182688226919188791272825298462921078036881645269493118428772168290099054390514752879062370427319757503100008825491077278987504569230843837598252673345864806955571871066238624781435693944588064189719802073182933974401572213361107157072861406864577645048059555535303399848013745572230819876412950063652048846912558134865706571943311002356835764290669242209745555110786255862007270679900740813902535996270677891475607359271610983369826047875130919159205532923267006002682926806600731481047735537681962471012422939054521773790249441892927350971421496514491340919857975108487424412640950259570277363017904458648339885978448751086253183570488745653680510200601745598024818175137124445011977397556478499615362271578451988513372091965760387293153694868912411113922625115129711484097015479683846105593409891531239112206432995925556135002087411520463101713642444122418590180074767734948498962602053329805243174872699653419425816500021436682935999746088798983285493304588248432460231363452458149712794362194719378700841934679061042914412349903554906756660014070915330129849855036241366933104271921050191440371075555325844185859722063456750678041176641109610836990956273934715654433324098944826540523737113422305408205946913422513752312294376905973514580661449712802926987644991242207724652206757103819498494556279964018314978107920988757450762248118678316988227084270061082281449415621461472483242930871960945070447613591437570644840615224587759291237977237937462980304820593882103257796292281564450732771023913720895152603082402878338115724579610133631127086001133425820273428377182610064633181153230819766249229108560037329763403198102942339180019394043266293263479084871955406202641115329565607460051088387292195009662326241323617596416905851818223817222045835704724454879682673486328449436905587440689209909068702923672020768320309210211135455021973519782477082011271465732708497668502663616979796451798783383820947782089263095405416360707817300792429194645754280898029202863109799097000340517170069190460507084666761594703628989412679166604839848236668731324828013120250676674240767194961467235287138041903462705949599805656398282029958198979416848543331459546136851108940732537597620606297753596829471628388229298475231440033066431401373786856040022011002452951611129409154654364002492746877271520451884410932150963028474357112456629317278694946867903227831612927609886611796945271003138432259422197408446708164015665450428088769410039344315729580196771073633220607124994504492359823291056682537774775251201266975960126873103073311560593042783963656766002016377482279545412507452907104910441314747257766407910375135451894450260653953649805707549632712550313560965145268090192693116697682696913752242012914995537625608530894414515920624799587613705355822551664095170335807548919003194553466125124117558253391767160695969453806735339697643242837765603442887843201229412214381462491369644262938110664610927815370029946883585734466643762891078831590175276303899599980189704565611991866343773652458149656957474022979485205835502475548516197403212369377631038732525967413456219472261057676154289484809390562576084474083604142280630188650958109287185763735611530322716612874827446898712893258173699686588691722699384911595305862565426850484190263258134343323717664869677151253486266503415717302706844006493771605790809319264450322554718875217944731418799900172043291694345431664235701075987152419171615326198282547892744468609669446032255268553474438513554883547496615496526445240107660366949530585737334988597442436751634180794717120844705128336248128813691029341265686018392312915567894507910283946723628326333282641474025086027279215617534326081760727775188017127890455670853554145255671404172717903284133289769976813509787684178734999736461287498190350214334957928096937490999250407881504113204855668634843163840752291541189143305792063492417454489680320464785778690408265090574643372537211304124675088237689892660027330306277739645929670925512347504669687702510094774648086659076680182824014856084321474544996869391034041920599552254874542892826686098911298746219677441174300479676138905096325745915893507068365651512039119990772390569779839944634747378358584403406193199180385669081529003707066971544492848911028322124726981998318423505586735863996563414783107523902379279935226443885732771341854522144348433835809714152441510332927575653653542107452182143225700747617790945474693724753378725973284838327902216729891548343556822692164166767992795565383537912844493221451638431232714828059178620844808051704178319625756737665240621295818792903672877932994973863024161713646964480703714439163665481655636172973221814640057064218281908900089934195694919681271326449726701792053459874161073539071768799355345395352234138578214976751797752997355147180239657068527079450143887257187771840053872213661020786938196314357232590804476900864710264309924784556481053637460926857220608610677315199998448216478905571521789052046104322043092764210300505796535096746887855589166963505101570540748757819865691053676408387920305218617591911011085322406396596884913351484754748795379797555105519543366974231192656912478162707596389150382283391252489778786335470211299425889095245339136827573215545409655561189527028264397045514053196713279112642745610059540385962607732903453655163597059502345585682307195145484893476389767020091644902906767980625573766595116696703018369297926304361404277357967293950908123289657083636238888016139247314088719699464311140723936494690193519145689394186173980332708505732668695227722535580331042481927740462862878714527335643071884508059676828246057704309846533845266698241028180726449227460464966213212039731341909588616092533323830715683074377454062955807761483571633291552461877316075441498960379214537649660432986696935133585987842681733808264340818687684210444649544039340725967502175614543397729094031311196934722802427912331447915547230009864158203754061825644152340160572633402077769306639293424313246753547131051452514512462562108842934827802520386965783731819206677963222998857160469245905225447483257723073769053400435980645042368693249684791804684923800370974972711448924053451554373117122903487006319500649444919214006280124719262912409937097312238114319168795664871378089206664574155404106816936151006091665364471064687888228860785063218980315337184237378146839253044382696313223770210607886530542763599897343819107501201854621711077423980256034893253578144141071171393167646425212986961942215751036235500242412676858283032753453578895144581944308256376243319586417359147913138615211989231473182782157258874940853080294277369663050047712772229445040566691666407959733639933783614288710737864223544283803937837759518782505827737505484671327784893267683149401056563844968751507047068264332603160102457920599638529571326770086155322789946939358654336741237974118832003320992874474007123632164173206009666751456664483611558691288303041335426754514397929385843871574675878322151611140574503884081232738268720775656574141824230783418556024232685741658417860863975603654782626963959158291521461996499673091832089395031392804306347425630671980432017413206590541485391287273212218048639292357672208383570414983103505560872375202619902511959467883541178267450788150420223732063605418638374344620367784804056648493248842077133802954302453098428431784057527189093495888596581729220582347270692879943451842013445356816312685860846758823030702948314766349845055714711725556065852664563064552938526224482355236096112497479990122586267942640560502197777472094914706565154611766816649365817062483483964221669169527107122155774526347383027914955933465878752059858943583239930206076843078615906012112867901949992728376797616715710461434233372223232070688817668972570800013582435471557850633023125869200420941772249215497576672289416421035704278653358298371367311422248650330015384246631290048034215698312286197171549509195191472808729499300625499745214062166970353494971068770822906061366791634629574024263058771224139042619516729779602231175726015529550300579816484492322295786399592819046643272439743097714438995491715327808415403155787773460583658385681597340851863036993873743298834908961796619048575070288696552182520580751996831313993313684617334533606788365319750493837478495732003690704841524211586046840244377648914281705280137485673284359439009136872598903746879145743095630809453977829118728334028682303262664466456835482141326976974026581149993000143556710040923467867217424092308098627941477898078058041406845526476303061064839569598843746103762420239059351032603645502029397436863545723575817099956059391482292272956206771836074572587472936391407186175282983294470800422322138421165368608903772663327422811039573959438405997079769049716009846227734162341455711269126753993561131645585120118943197288151516784320194451140256769664987479751704513891577520455393941015645089554296110891800693275209929733688528165984096795446979629562423007042280151453024384450844315333936881059196152156574935506798537408625040299364127835662036784489228470989651586225171194312433453389043201948721015947951009438449381998846524795823927334894583119907021826109124033941646885055010252217541319244573612697055308710726942144033624491036599239967289290543062857707937295906163102334807889317791899394235970803759241439043540854337091608112757999934231372573845761832476883335982238534107548014406219727791057010063302290556110447085821499222136776477616667521294582298576818220513666684209345531005523618039136056564257135064713641349765142511173555138824053889821423823891257486957199836219330352333560911916360268711893775296268580623192407383626553433922101834402857339818336135398087322891785794366813187371176781643743689295780317299141037296969413153604500586018781630186538510887706734910565041994708317718645262176653615263771147609216147923912843111821925739970779905142593999085858881047973981628914259061059359290579606666466020834057217714313750325715872957167146783812627839457460839088548124161691680080975841374382029224715721668227879276557957022239442529923151417255399857851954229784963993357239242910937868136461898013370136413143969563913379690227884001216223297382471635961186607483963916817725294603088749506572325392619507881240735428034182913400227165774133516322442096915900647924150162385599275689600113826801252070337667739266573047090603576134081674669523589478135498262293214188076439511200991571518823082848359782771664337288938028036948605721569557046030898381489654750278520061531451078243726825157442914524913070951650435498513090167972521858090366737592036608018926265723010521676824784815982144677267978089351112200686667414805526761423351812779560272365913615485920300724541753118287034620260915787274101678713957172853980174323332710192274184801906511905469980519497532802968869721565482514309710992570167515518939966007730683757447410274209485780393674881192411590160024060142603299213705442505203453282175316336759915850758990036142922876902225984666707991221711567202744661132269795170047893381272525356992000162954929292975859352329064833113876883075276558204313866659385623272394874866198529529000866366004430398518719004710030327429180332985432148788043462946200192281528044937765411295355880084573599979232897220426554661765443145007974091770779853733648051928312093070317608854764689151827008318962546275311445913680089587936038513754012301724307710304710108571604106152853611363012153974961265198832978786853896818090868120178219862706783137232340441147913187334211675706951641512599380633331919204924587216573942624940642299964524992902905246163148482391473515556692983747166357420900825776792267622034555658338241811344506109570580091163474169553925120443816583618867670974380755779331862488277679202666944688002447926720198224143067335540662938295378233303492325922524284454007503728228040782676517332572569837342449689893327623389931124021172340197308792911942329203161535579172745663219698963537086614544456519819914770264294821971197076816245921546191250666168036220143673884928214722710368606272724669525158345536176052240370555747874347477073643316819287200593566963983191278436276539312221337125289237034059792621185318103309827117882363157451558803232396178548294753835459755816968393018644196894061597539746430126197223429107476357224010430525365731053446083195713662000893122268269513856386678446771931491352685410137156548962251047227365511455116420850901510077369174451193546879767162068837597271805560281613730571771747761623824798861663810124720685485512162569372510536941199208751517417849441671489961975990267792669690208403283972595641219029732056224771452491423530045944371156903844468361030242037475786200812768184218875333106659412409224328421391003900582134477889083102193860243970288489820075541885198256162537689107769789018003432495302801525725268896425399733931766442838054604765296459262999885202668498187242879416671369852679403008740844821687972466115814022292482443351588061319421906496624828823374652834722866262735601835602431242833851177233705445963111318313443020685295706879828606903438144444182908101468405533711045336665450151817996003419133321337639760654543088502733138025627641125760601285499541181958290904361314278808967069552317853442658911903230078278762859866486118937205911875031564092133208812968492685909878127809506442258683425910106464599688842923169791845294531178051476022026767168296558491399000695127886112715972037891553790577159114568803177971294244557502152745613562719478897757938259083548013664394754211261241720572776307682298647167143586735413321102282875545981989617162075332172116611632132564992497933187755024726200525325929780455952938684904979158791685202082830300519751044319798765497331611373633583644698380505609550977152727022777642419948804581651246965348435069048921416829067153056895827247802905594420178634296254290110184946322472332383404564401677360610432384096220823053041804817589513968036257443704690566384988893800993371432027537468490360154238329541623774037077304686534452610580821625001440482266770851890795052616395966237918036802196042559659282423883984277043558611744753225592048274972951952232547975672666193193840382127819081414005493734368412799186814265238203184637113441730239176373321993704017052769990248153258117019270452932388371179868647699076346904568478176945513272769832851505201000509727948449700966709019410333629200498448225605333614394962513658818604115249972304868453287125686640619013483542917726717838422429666302771463813138386154908700331223080089750645963753394500799731931023492325195804129713521211640683973005110503865838466759492116217096811472706129608022251724051282389585860236095146390683885580668079008282945876230891630044330818475635060569110551067692310948106710122057579945211161100612890331981754184657734193669125505022578093931304207805564411882410219516346858563874759394375585494980247217345438828583527408994478635144200178070087975565012974687818649639128149142620342430422496864774747894516896557890370992478333625946444784799022392309255941574120610295289579506712541341838652574221300952684274633979852359650895974044152956315851410076679793455334494051195454782970732528231199659630585639373665518952020892329749064180624967044867989257143901516396881274652914562453580752224074283923503300771688743509312635010173721789257757811712840546305741494451282797306144152154293631369822243234274666336848463080411261246123907562292105142079295805683371569861265980725978365813828915843297335013730356922359499355026182171630445349571018787516170453611913818513736193284341708119897874741309254712114184649530439768029944502824653991089806677844328283739076827347625067261680735481973685072067107658717522432197986259550394081630830191432353396422816492292308007933714993165866149503860950074870780785053804649753280375442351619507210485161301968978329044497560504819311049881033084845731141541448637096717295071855359786272329748079492760113569158435900049082409663330053381901584008541020645623446171741679151744891775309629520825606638204243193273902743804640127406934839026781902434450478822224934111921214365235111671375314000747048709442384726651691006601384533734319491867785348296222221795088179392022119188145059082158777732166528055918416483590148663328329750766104218639395252040678937442239870451972211071909974098460245280952819558765275218273751922639129710674217016898080366656743676758268303330575961780809217183591786924732617988043947603598594541469079618912700064274759483688306599535011240588375743540701505447606992294996960999704772097912824891773829744471139390442996066223299380119506589594835628376940169677276015232528674911523517670287492087158831470289493324607899645556457268343619617271863434281479756283013348548952521135952669408573573002974840390105437107126372288072790845749702602698080886062871087662624510231629005559588467554462507881426327813625535347968818687845569058198604296169907761984896857276753705691551694132071885637174363919660123016939421468488986153991707940358683745597030201542780785637396128380724465461930797635130317402624322341211083918497967323808742030610006440365597772143030093054486250776716509912143916729956389595085461568139827075888202798375675213125194519029664148902652697104557825238166738546634112611303047103033546304740593898226179426482616203554261954154278202513782087248336766204600122491410871739774008405714551833320322642433014894143857924230162856847275870198839867213770901295298371804802517720446299705610859786673994583008329405256997237019464673488803928706407657118016227385025601485764419881129150018602153193692766470658276000004394492271376978960366209341978436854915373206732580953832901485896389206756290063006521919038421208306929113483858061490044773979478297627919960636713935549056392953458264660630036426793921434905006972691431980545966517143671259151587387010774573083051055761077874637627058756401347352651808327477159285055588291298391084371302197521802622729578690462625091954406692722464921412227722143812828490692256730461680912320835461938624043150883457393921214685509473751992262954131133951943909774579960261585694509336222144608699435811445123991387774608268227525262379390921481206630312705759433311264646636414203889853692294415413931435912618016582567773748265012150405580767540904841699056896189112200397421606580863742640714078762610936942619306986199856638244400808604288937619305234953707423969084908395200830599019518916317278688583250599165903548841450871816875701282519950693106828926443345085960318492968490662565176380650907543795432692909435524199456603462772726340635873321271821608210747120965856917124082874582274141410299563290754452547966115096966176911479131348833330536317822107798093471003526508894438484663554977557729158589129895061704410528102755122777516351693731619423862990153048683899244899826521033158613753573575620639851029695604347301024903228783977549059783352376633224808861265223263767942504477218225790341516663074359595410035067854028058548418394438804719514988014816908019618086060398151222246339256077959766435612878161998536742781992546364679682429700924088600734680302328611336949143004219518224392897166785465107513419419797843760182324694208231645986290626558696659995193311358777292501643497701223741636615749602498438605109973603262366261503658552909512946611321691900238248833456502669314428302550578402149582809191051376068811420577130634251254743128755314576089446045522850008965931537530650504879121895605115751359279082310540742531946540440463363798263290977363371348739714186291789237052302674969977861293254800085833412933673324744902752929410415004676919883652180380345507261207318354670499010866633006625861458885870461050168302407776383346341491516399646518642346693404007652777128493671409708846587933983262420743818220201799827924488972056692019869644927976677462441684853154474858832861443398156668640968752720108555460815518615584601304980450439531135390665505051910682384953756231229618129825674526872485966189486794212537504480048623467176418948687110109236127461523527374746160926130263421595336300978508528189859316401204721633591372856404336756484158822773731282729925919670816781890293802499691012357500719535033451881442060298639465878780380657112947494609666251201767328752555570316615366592203301649588498548877884913890294812757745925883690597912295665478664929808025692478407192333130277246358079369589643013604918637015510332937948547300105079827108941051221119179170923167860008164322064469667390664766213747885954276910342514644587177342268730268216985575887112820864080655885974471528240144057542672996737732263336704375428984860628620252324026414473569877711532988155995734830536171028153653239021122899367907759629413938274272132294773376096476681978710874585959502607138004761199556657100128114976394053469621442109743049004919555900620073414189284704115952003057955304820592704042355332504578410986664547504539306667633794276989582679875162487646457399945814505335601688059894970863292671116078072871175326248537295619965820359478617662812581471950049102373305968426832170695645631941124803415238230315486733204999517351922762500566303265917394013033523111614108758803952450180876679055585554620628053257966333050305250390578350478246506171449513954534754029459690322579027893341567966164440174431047130258429143773725483939599741608060469742381854168193249004887099894870462020415428685927563758088836567561236200478086328167416326390428161986051402405065203229304302526952738453089147753139943256855204607695371301145064549066194430157648498013171194508821977558768189026666022176809326242167616994010819881018046216737479956388448275766199704824702102219362145606013634095818328707566321387660416085746616456677829581550302910127906624631312723990455884318211827254333994465146815343549001851564752733004794889772504984879543877202857357133661903174653061233619434052144374625939448807064683355840691113644641617315688772525829532040677842676863741395236874609542404908870625783762435158470434693679018935173373446589542273065706683175922485425796713332002249845492650160103550763860506506694000946529568359401854759967625646451785775341411789832348477213636117432494110546622467187196110308780637971913871542887639926622498375796339896959464486579012947890054575025640156140736070611045927775841419503446087156880606778215181447644091016325053832137508472970112419482631141312916881938592227459821449511869266500553306233344626852031134062630529492760336324163298763761433428012722569940606883225408309577969076792172590709935111949229806678042067873554252394525473239180810934629326550349089994511351938451994553096404559448530884898084933063306109984377965489263095447837691143936661997010647001770624059601120766736316712533613820893569016237465413961804104967782636940633322841150922906214237591542053680879930880598677625415774882990972929959702569021445284943653620964022964397057130844650863709890423191686401350753883522368262399497296976271999959301037716771008714642037012099126458889220762493867322031225798932458395459623718580937584514729630796572505574187088776798039547022803655460330796867003092087026615653268601324656875414293409110327683564644147645148663321496303753014924906345589620822149153715207874230321334794477332565950598665051015009481156308970861209460803304878532503390510070913823771789297112389549118642285247962905656676322741290903529035541807869759376074582501124423796945778068897070577660306915905675442149129074790046055459066736705610658838420688285735526052603533799192094960989099690108631883897726667056445369993407975142540724630389560563870806071481066701298275898797533381364468502104632280638556969782788880079083284951634196231441746397539989222633622393920429609896012186981643721172357000134175778816349748232548293757449861511738200778010503111162249133402372682063885158406707790915424973841353543805626602151785887701211735368799218172718407468263552510597035995240589795381089849896361624798058098031639358562085641113610473206633394896279247156172152442258693559628663263834218511813101970211183436512450013453345266696700048602268008325352525911464381106614443842333931233015471963534747810300459026302897140929001304337618170913243097560710751319515027633908976255772219774047004757724287949209670829417689919142976264078714740369319886636040025623063451921736268953894205257655798748575591819383594139187728913888027713102547640468715123929049120457927525427737996732963649302633792471212431950263521598770462622965905163430401713974648421559751969875964262052568069116688535490765706114028768078689052734868561996538032095147182498644262168401151245056802116300676424300417829861782697640796183427547774356929623779978352749352798214218760474346302347737565390443459555329315355083889135662061012235249704218658378155509339736422584115622330954471244848124381322242542375199477025072927420047264932273572628330662487983033733133578592966047640381526490300708422513582879386423166777911870244514011839704383513232570467988705093466003513994223400233722277229564314012581357482782654665435276253534622085091262678953414281925673961328803597099918747510378471198984786506733346986966905698436178129995190178058250531097025970465481707107515594820212134946841971108006793305389834624748191307347878176954541730996809435050906685789762489250272879203883589438995161576028508033000966637997055163039392019345914914586789453943349146847220570340584666183672760363944422624641605519625706368225553780120236864290683005987737123995828960475203417625244797489270193023439032900080051402034911149641530817560751228200017642979517938670220269607721677260902464698217608707415792450408298296829863832905936674210136555329229311583304237959193566819935857683141340459970762580342650871263095160441056219089452083950899172088173638898589560080938633882558978329504658393007649719207548769754600598703869262668705762667895329814588595654295803328363089390721225184557508149721725822474837693298566896288536005969193730435925867296412646412930492872083028342033177564193235079509984600030939600749693629745323194413257107390439643542879895386371488816568100046664098896345084434089897607967133392652635225688019337686542984769600317083384204362473646494937679798869272876659043445195595478161120512127597837901178681481773179257888016254382085533847134998550037554996108421451137931797654849112994446757198020515943163667958447117603323551773769711575635399215181763997380247403642579256512363972083032191650186270739212447510696762872021936472553312691992590814575988598955506221180471908139445064932559872582203700828281573552826791760621504763071392163764333671637465381752045721667894895320646019352504464441624419648177086171799269307129871023368648849496791701782321214738436152830007816926500840259221307447441811419813102376730228823351577583190931106002372603188116260571002220289859420209313233598684013218138431254832941753713160150220375260931262495431715690932024320857542547433427091281926288325551620839174797978882066839076462109913814043665439938382223114939901843677426825876582275525486088891726709629195884401827181876936381826876568002844456489068745647870655627088178537770278216237448772791241049475655651561924598616194026809081465580900606257008115186730182211760363908658650899293754283416260110891043457988821715091556147174444308290595969270021657328361796348816549990590010920825705474400890031768586420969065982129805204209502365957741136939979749519983127800858713413028979419872335245464343516886501084777027192890560643428769205321311149417804459338040886297777518414345464389824363345232145516477579778246366376992114089224291688939273959843641056001778167212097070041216434517913756565469382472892676666556580434261630415464738026189433797508017394359425136329017615594548339512369792753686316716396172791063985063256344184927294735995252275225486553775662949796857092906974432847439163491277974159150854400428182524251872601091361813897323637741925262976940803134160091129665303562129374535467809333292637593039807880294799407963583270247401157902943022865562741560479261498449042210556432050281250889875004113306436569720273330436291096020955942789494439338357136532250814317808051036368674497482556753812898402014181838544965883588858669341703637349693017864878484387967435984409617626073284977875998137243128039633022313634452506299752785594729987364727785677719657470348431456191938785432120224703205492593797126385488140663657708565552632130738680592559264833960607522454605206196653861448377901914164933828845887974334504083575382074129454995346168721115710799493316606035859279072512271009518845132325844669181436972360849900848223274985083757837138489897044675220195812021410673304629733254060505827399363151304613649454392324076676869758707451375558593446450311216403804238691592899887148917608477188285671252038051700123215107436767795125993301004050547756882551640356595092278019829073108442455752951011473979155045883524120729972464665584778115224176579424105171320711575658035520848422039155341906196024941910542773781749434664986177642793728135946440108311506840435937298280443056787705914942739413522383841223961358190695013152970739348876985513651923503981959563908206837495189388535615902310029283709900333303220738709655080271197059019504985380347229716817501595048672583226594613340429724833344953866625910384491826919147053423392023021262983524436518649134912143576592808035872586831309057137180027195870545096138795733416730345666989175343048567640829686562600465396740909785995118274092931695827887383898843192932982646793320925508082612999934831414505882165443971016133834209270045713383637942710208671549407015688851359746670930859873390581197663414585494421055124771760933795103508214678151154139147987664345513268958622520052018648550639711449542135404236033459243389845512798071718615302033418797037244624678282089837662664681040860692673719499209477114689575982114946288883345587786826651613868556163389491302181806604517027248839315803550754249626845100640305866671861750699414435486185364816815403908738990767239222166864919672963212761976748430443046958387755675117306875834715621587856206844539943599885220764311109453716902451259418375866422891870161451157053787631414454160810928347880636162104731384687663738582421768112497476782686589177575647675953029963032778227037225852872694236165625261289852623828119701302918091627004863319948515258751283180084095349991341287913050721311227662424858250784163444308882458075520684045809639700657747936908417192650875584424637837086280891448763352080891687916876691660857704001264336586554581164832196630332409344590618956389519030948952245409570785681434090027438626184231195977021081656518149847112366775393004674402262810614556397334998456523006192844815944376522322894456028380840763581934195949321034570317788423503611393330371175033327019273516131100831091978353530234762777297040160546024744257259357684226872646887473603502591271825771331683506126931642480557800086483583018156829195302100745716245210657383654232023375162080473463592746159634559010096065345461403614124242220021244553752704371523154889599821670306164800444314071511297626570096895110763445770331511214703030015763868386637037691339465022139677300929605283315384235604357466503262845736469714541410034437109584348829018536229606731604375107096144345435731481776049680512511708733085259882062330796648767647987726973640104054821005391901567299526697030843297158826167874742578922945460608895780804494330761639102182212588269721387510299013160193568473196627101597501516778529779081773141064505110304008358812043594646845942762793451969912401285724843557251325442980831784077734583097002596126132037631248709773272038377920763504183218598265085179826033610812347892035717975114063746924841891878235360191318072512760756466904763182313581875077774125929407706215059625498011460518962240568358733861042185833533371228559872071196641466712100066611958729988481009142747410045598779756066050940746284852866172724718064277670539553931846676338919825167776113189018934529017219440009767322443754356532153168127545552105009353571940310828634974936125521738450925032980810341163753288659243245643641366485355090958522439296721734997785021174433130305960593748099556113966075774443032130846857292216346375644639005194387521413697333023523520559254748860751793336231441624921426289898229601791932804328968000968224287768377009128549149467028730928588892402037193985088283270505355201272336555378973944865322409162882909595280856501015196898322462227372769854499636672707771893175834801783669947606167989516938032310189938321946579337420737803280773819252672182866548597508898148719537706152626445254517361857822893120852627380553022887927191114586686918352613259124778567994672615841514754962985670312943088886302637605674230301953343619489557072732223660535543077586911189420260129227450197174437572243651167213695057313644006409287307262581270548627287991765803245725760014635659321060010032334353531639309983333253294204581002610223607290536597097284582785053449759969157498805513541304669428759285568571052315687343361737389189876852912628469897453731706846763851583145932779728206606839731489007502801665939726839842463055492307279605305265387834425656321217983155243196911063906661529914198483938507169012813207472036629273256125104364703546784493454490519607004604182486240394775801059882406453627261525157320063635829188316072615540047705987863603752141960289060528700648335078120596269241306745514484683139981722792464330881199867101471355096672704446457010902857921378394443406402176305139644960286617555032337117242558247040436172654859740443971681996963369613444710615192660753251784174395978804048128250495106665505359443211008003256860304094012002194836521378661674814210718610703313207298891349984386636528843466917026466573673163043856531408472352467229164783250925112915925520050953999543842001248548543870576592806699337692505844660657845366031535328159114326150620057387110275373314956811936324028406603023187931733942223809385563552236224002379484538464928644732754882256731760263943359133371499668236914344473126429789937437644253919694385172069919005399730335125540082990459895326629563825750723729864790669431082076930288202096894822447267765544433710761173596943262621518385771386771315782945011172455618771073615691755463458393863108500333345393249102279832086792826051252121540725627339518556564369825104691156022072492383874923270404327733765900658885394542096676898888785610238418308982488326866378762479026496568934358014411726164162617170505755399509244737160799576252529922565300880729787279081659798434214823643086445909436059573876883099001215887454419321042263260945717707848354625793179077317671540702672484183924342644549593211298424439825027244003255532781225762612089593223088999620381846644910293351198585862329013143639760706461066838562990112608056705812934883606295736943233476929460061256665649882521716770172940344019732681815671764039172530025542551483825557377018990734077352804003249047026980014524460482053172037544195386118193376454444483251205666908270305733032819295247113744041794098678574761941947936819885010841256102374407230487937938580097244291543182491190240515917614770241038517750799625585245417653587770312352050896050461885065515584676802080387625772101177311639210951169758584029857563902389373512275288787431338256647598965916610242280018360893144796747394864032175512990688859298874287224394964223198177072917689438561147384840022178196208066487376848406147437457129836428287846588436148234787711849256303605918615392241206580575774993109402137746798757601532035423666991223286847946013875177870997994864040736130175879375068084961393135094467838367147634955587676441117333720472289469220793440089609365799493981396324029061001757487865302117276074907441988275637055636519773972255806088865811260967144739895028551512300187175750435168951809590566792521862362241483138728417191145922019994718133457874710215967577963645566843834661007433670073581924430861163279281316869768095380742133082376077274312625874947780666747039956307985927529796312406006636491545344910679472908513500873979439187471339100191885375347458468463353596829256708686891887660993429210034332728768381465790385488130125580730722579884849154640049623249748096941743151554028361265264374324992633404674315679909644537867912508797500137605801039472737718834959081691734219494626629831157215609712514887172332245351694926779244777496019871343388989107675291379705520995240483581816221709014487911409012975548389531752366317535392292374795637924477435520154209843735899793838926113141333287182796238122915275528577437370381893820827660345142329728727866278520476174327750843257849438669489163680121623774353645287554987386031441570002431022651929898375987987853261084539475557436188330957409107194502639285067994996952638869289286006981905396034985748094539777269215829760662497166208765348562271609675038651207854649407413144093102578846235527954385948069580321760199392001087742238174824607990960429552002692259153157549163581503167575612426408483263533652779589773716834923252336788727234260693058593825981429957976039602149511713376087022120723013889160790595740286913510401546516144316935778635683339828809676773480306440682699552476579855797844887971605714859748277960028559930878236920318521791877403668929873628629439972761601943371841972103188807856549146932745491273443489725851762362077452493093735014952406236716644437065279629657022139970864405174766319643396237844578159705473756161380538174406923042943471469021974602311849452613443100096660646411744358678536957320042989102977158028224369142481894889316132221375271782873656680955132972411972924651667956067665679053828893904628686214912318296169109235462282277560212622206525286958607973795795795818015239836817671761725607212419513505412299964000097133810300481426635928882693249130193890482925181931256444437898152759303260554108757851025698488928204805648120383142901813776944173866459138145316498862534318685875708831204337107248474379725811245464280803581606604549010254859908253172391944539096303446151561600299029218258028738353439947572698840693113414074489555106795465915515854681225255279215880387569109707433812863447058025101446777704098497147977254415273965323740700452124631509600137510797046319577404345448094004603835318682399830301744328784899655542639527502078862057097457891791622212812948102475918245917395096979636958639863062950595145757206826679850089313841323094771180305836144317756258992269337583925156429767515991945756217981283222969570572770079919016771523898570453892692608091583911286625867152290824691174175782288942073119638285357272443025487467588370770153380434466776089798973508387182612477942109902729977078189492088582512175217759440353219324689611854862961871759590402672425319754927173036656636667108558300533400452530975013600905287222984109760545854451064300983635943434460076442340274811993128626075912426854323240474311613251705920925841305675097587039939087623916926700938887314140194051752467176698621155734054061419166506934691456331309704382583875581475413079486324266435386055540454540365132442701339264124463271973395719373911175947085435417250420915190463633278163264480484425231461164387988891525812638324377157926534411040545936402973117409112258701401027955335254733635752096608857496266955732992022571005536834225309439925145475395752935205197813224871865934794231217814860324442555597410208334846387188661918068949250827936604603138203890997240611345060460662148009852882004073530838681451077200956693517758463207421139891539997315727693494442534919339977730442547931222618043121442930092274725704544708563956696830446024382092114345060845360938593787352463972784515883953662243211239717757784351897939658596000854874161186201597100228831002522654706384678050919213583534541394035957401295103253072566496717546030136699954707662735200152233663535343347735974851070227671830991567636425200485846982620145228416905195544736395636751367597345716479359172299194639273302427832883718258038223156042725766817017468742019865622425648744190550054009038478082886379070142372549533530745246933217698660647095768418363572446934362941167496289474181022806358982892717568273502377399277732761439514731625853413675533825390263295453866700065824296688128009872768279445430013381429234899410608781595388941122200861723287791751634104393688339563820176113988590855141902260357568400100535082301253799194067304533668231265880583662128967616175964073658430461954295916652893399710218721250336132513525975348183802395085746565550320643657018690752815577594201456355555530833710692496578733248888640377824636980364434455229159261781350975698458962392979146623251238123885735395812099160189505683548196245855605028595309693510219553965169904096992794277818826303823722491497118485348961797074243285456511549477345535658668324080919697582470202507035868099988722494561968757681259601314000877456036607658133598597965772441731747818115549701432667245249797403156490693772815104957432816686766175019496678677114565906828401048240405395004714509817546198884249257042904002455744625445186994208067550275111418658471881195612220855828999880557121675125253030386018504941169440936370884629926053067070739984234295823200879515757750358732412595945711580245524627334850851590951615962700808387858356823518124259305006355551095730527430611146475197633289710150489603428565117972009496094801068271272918323469200117696710985473369243384190587498682344487330450339340188444154819947655334863694374199865104163153902126145497682304144923844286879340571766407831198108946977724664761673494758811581430792007433804925677550501073503652988381489662784150581664091030734659161170028979973854742876128961628177290260984818737189454061285470069600636698562699930475272122670980749138763952089489400915709360046093707042175538744006079854107600576792841103033330579003904113716762818551173922556332654502344495868408420002356339276417086043857430805669137163066750952441768116067537411911435654087035885371044323699650311742040922681446309164809647372445071565149324840975272989887308826685289812965832402789477240494087019262373573071457320244747750518700449286631229215868504106277170055254356887340020813225317825320795503239660305132183616271020005062388180702182083661686578163279533165365898811341845722128858849740552203847806041771399309503738128994629906475915915390449870771538371386754005788773801365615685752807671306004031214992335717016851967594637697331887337025250344546505949023397856455290020252196730284161844038735023920823250774303542431872340773752175544590925537261035043987842817691658824652362338903103231680382380596775268578368269200157422794823704250414389586655717533220019596230441233713972750061060315784625979120433606351834878804901902888880213560199469542594854780590899319658318801934679984858061611907252764199762464614153535432558333753834709857588371099703959465623655429113974623103741860021716416472272835325036836403193080757671023753364585910360382174419646207264455076203865461358026171444543404921779818039487844737604915510581835840679714413236962570889813872896466714302102081394843566509989003084499062140231817495505954376145458603974576309213198875895563894505386469796449818708677966699973052081739230124327195406223338148930941844089712076045503154526685221003208130104263262067228800618902077286598870103315668889739977892886210813395152204031515670464422564072422352003591966051431179469660257981833224765660909408968041713845421334030791524686370010423252026640766555562271860587128074723202936808487422383013180541707972150289825451885891009778510358881297902655326944276110175637232986096683432482859328386460761962670049501783827600543043017511970116992894970684415890196143168391691937047508516911534180166217284706195067726578803386751022000189221403680480682317222582259898637492278854692267998928012818794098102243267931388686616550506118054683629073267282392475352137012125339543940966151878519392203755134148480477460728417673088009874587458983292346790114491220051961556690985025795596256560483975400313695480556568456910082384618959705100510407917832682417115726429475090025596119984573073022681772297043130109691378698026194085794666078442348731539706198181052567005627296081629252261512876770365740838504880146316144088883463646106820784003788122670488408002905953226183933016258532966911973324197891549723102931023031655491973838226335610770948201281337336773117380175378314341487187404824261647041551247787727043769716092979407489436281048103894605306442088608068950450403012855766113123595353596223217596778360258389712744343298072774603564922152874404033459169921044987913445456436778165924854409750453456961231415751652286749858838494796569854170625350332532763636069975580500862062058812062704454615788113168982167807914906385072838057983725237872807090763557229120173177478902616242679225560501164386957506396939249831669783803939315787848759416836303250525770446776236904840532682394447866485983264793407308486746723349773556486490208753510774312014391723453668801299010940154427133735627227995459884938853448528077707675063563808980133409170373859837641779584398039051453766923357871354122760414149206613460498577231572313144910988509837376806987061292441074411314911750428457632175148849170764531933541341701895603387201039424704587739573131860480897125993861942137986841596200200316745732729300332765689642155723520004096706815191950976914262505629333449806565393181589758153889371821863713805947775904463408744848459360775573683340859115134869604667693749154523587767328995303249121795312823410641699906481152168694132588433614755571568799402105873818073830744881171162899363532909718326898411655847889061014690415267105133987190609107354008586843728253611003682940909440704669873665937914106871745009694820447231445951001549887427492653770151892559460332790154402060673478125712662797102362073233823661823560163631013551064029428353479587386793091020507287520251102974949573407295298778001692272041839911442144913204805830922597365139142968875178103481211000928793891377503321756118418518731442218452805935233110701501705461485511089070184288890305191536879093088427895070402954411773638864922471131409003108892694009326984113692253092818480887549131830103027238755243751603444833766653960266957790125130292355011835681483208252725887035718957962693687060457310317317704512115842635564816154345411083389106329649759671379980936068196792762779523985889513507666171242012561126293028762034921860766415932423201208164472932825761727284442700941884670418356548379998557813843907275995938269566944972625666856607282840643733270125170727938656110676479931626710458333071307762123731101413273654701373177099231393637290809393692356469696399202294875813398000033576043566065482663862430931531750139114017788626310043233673219566801003397150738880329137355145329703977305003442519033285642422480294939596334574695506790971205160411726353692188380340706279636140434815063922301797221459725823534990652577778155799743201616369955792468926155590577511531247566356020580949847518097749919289279661968621440042235311661953921747409214603310403636846593906315446955828677275070135930935873698765206792588349357156538675656198905911671063707480897386138127512742494951262239668630223706907944987807847505446751200517611026405225048514962166804238962829207008540969841639495155176341968418592251151706441568164352509147671324537046768943976706614764048864117581603793798119808872210424787635803088515848024167136580296708453570561573164226371921777960908379740537173434048279664506630098784334824238920705354521407498615334309278541384995437757657170982465376751780221355056297158211605297346547761644449004722648197936937966930813504518533271212659966098205756683229909620741613120456698178395308542014133894857849563910439852664140770486348789715977478147016507692744043384720441288370999354053053487394775982792019164115572314502277899603079828023963598808175019596414682317095019417127842914757009365218477178494482822694509985420927311602450112561745832154158801419129746097344821116686571187977462742023675408133515260844710856428196373354945608628249447864240208636170818420283185136808339898761577055020044877820457891837555380243730821106298384725714571476652333729935131930628696182436199627959454357457369477874486663157015154029238550240859469546998477981728573479984367376533971319122062121588453271803323816839350502936483214455197807606242082711640522233871380002133023300647083689274121356677174049457015815019122044496422363349545867972051301885642263871019538648838138426127475530290034735359682683092967472698979508971357085491571777055437260629487633905535469864917984543022279170157884670808051571656977704724991801856434772898434036855657054520477094837287538827878804041018941969914629622294932094369061849276698711406028454461027655102374406151652601305040565268846961346514263940395114263392181411977344364236948946381785602755804616466673231213506926891401327480968094767715257012319167380658079443934644064837452832436276332013723138450263650773103622082738527727072451927476780008347064459254011016901395312601122814006730632367213325223946775536862946261735894276357442096809948869115791910423601458024958333915726101907024421729552263275066770256628015507374622823335505240263286002057526039321819790154867595908500845911418934063228269504995844524205370839812850126847381035207751706649502307742012992128959901294649876569600226024163468770421758899848778243154986176467337832268925906270815242446328558270414346202090057711705390369206425733995667334191089728496635949542680306925366213051419765901343018021236262590848658451867371398034178479822532065388443685583864437957192378151640374645595237462073589545208354061740719081119528014259227859039527316333037129227495609414672520524662819561992075728018524258576359903912793471933269974110671196722512546830742550289459434210778009590072389151019526539563489161977812215039316916391671087031580079704558555825443917598181360080253896591909618711992171520304604396069273146517605525043867492232728190316209509997184047554584627232585454347517685150019250793665767995992329708818598261742281772341005932284949400391561585460783617339429657029717179623265889933007671797340749778424972018059089101764627644589380981232182000703764175914997059223763759986984166426305901849689500214569438558084881308677305959900744857835738414256550810140652552293769449323141154685916200101737845806198593578891321514884636278219936946580051683506847400751210986754911100658857383455043961320590843424534918813878310905488526772735181765413893965640138576483990499324703497358860694105908020146354851281200204402120029742792194683507747662648959706482943823773693276375656992679106960357923479331699862962740431139432076961415147439953756387947398399690289529928393580510946148641541625637244278142139762314577705070254353361322506614807643697332054172958949831721007224519875388680288491984240764433847582472275521568967254743562644071231956347839926600679435068149193889805985191365965166848889499569330204036199291995460360324341606277887605452672757979840648445824819008301246995038087829945055349147287513414209756018171945042438494228055351295841414390823309623824767295836032934435157725595448769402184078503966090352376957886758221844459130032483268609670089063010915231960823588644278752731992885507263012436572070304784768030614535822382224971603146735854537735659129052474462808365008599817665117963634986222697096484599666696045307020815938967956549881166398628096301364605337839602093444397362820731791925658713965408994043722078316157045918192610136817223010942574662623169887033297180488512378683988893744041851700067433449335880122102805045471419076544541829055106737395379147193494038496258475619754122405923570757597550095644436891055116825711875715922947997045860060415337914940904234877694350480731049350398457536349146792851558142991197374832301513654653484056517569301288727378939351543239078469189381765658116360834257906113559771742889975537208799300610535224221254654151571892151964313439111479880959462882377016683479752726014310802881895144758342290424001219423531654525237493179378214998297897404582806598978841711867021297147102605852317222388886548062388307432014674970825664716502095043812791218663218868632800349368019383192219671963159768800781737999471272819563455729759374851217235095732195037662674873704371187987214165446899800027661253503675157698701610725234685326446956394484805260845096796660778582289635573993509433731911712861924087956051408857419298035486358297920012895524354798870011270861880019874914434443401477960524845792124805837378831746066762469490511445537358963608046143967589883677124152167100018850911725609158332846295969202091233412661268569322105947195032085294699712391215383720998648714854065791832118019750186173215862828699951870255984716315039059691070139555891745725056986371348783769083900011530437735759284533630689907665447565793228677079533541014647257891816504381317642887610086829903824463293513572203313171167554096716973201819046206997671599879387661070951192628241432711417855313969902279912370974757433096863527404544063804091676287814374040711049515006120652588769627814973501955008730666463591061043423482073795894370140071585005393619274031749173651676192541895424520887243077247649800498052222658395538109635394777457257206038322647629581761785158097774361509201915391377200442118390719675237588202862423749992056240287998668121805568382368986134636750285024667255121579291673628523298609563265946943019462847819865828661656203703700789120948103225981583634687006205010523368380546152871816894545170531503504858918546690682750022376840384765289054611415447938345122603021576713670629197615230401286655353566052405709255959408339314557899916108507237230605739727245098575761703665140409844011574284348814006502503682290691432889665845068886898012760854263383615208098095916908542757692053594485450747655012086394330576639525381550482361788872280660629356838756520443777441827308160301706089920217011017408894496798863644090591988891402980771102226998947011705754385920978750358129530942679687465971385810958812384954074765934769986562364252069887367872565413870382266421616507228182125398487200203195332740174550236839200300879379279967533800252553142220259258904461297443291404326181346938934809998893400813775608786645487505313675801136670993251922702722736003389214334581328581676725112653707218630116523767413695159132637157191241521253186416470666349758010322852844199971087826939743818216446846485388966684366346636225777135860344625381199294427296779886769353195551718801183047266446428189005399174014260178467911873574073024993708371746709587503177381133955055052556477513750527510893337768293291301458083029055454701766173448258243501746610690702119407154019464997620768746317637849378619741763705473753885003663530309857075048293757287750325649462987442120492112369705828433477685187085878793563483546101007105513101194879751513559670339225771657617129575427964662651399418029470078954684768938164500280680917670139510138841240860898090365008061995695618894675794304684570125551076681922730963111027834840902817094759177677735473720351987248323172763197404334241339282934383191736352860483916623654597964514955361527161765832917980282596371206725411958928914319091042645081568139626770874374218619225093538280715583521907007010068036313289408614033140570610479015158418530405597399922273009670242269911507891622499582242490852637957669205518265139298377960387379970555442196949723214005426847166024365225948622115958155320397955736886100019955633528278813171457901233660474626568417395995163287818240991076207690573884380136337209356711660592664516475834696883595867315333878497208325035318922606466467787502150889493731526012205012663489042964400422106304735029726170005313226954933954030903407200212956523797256805833067541679522176622384089216772109912638117755515373145518954522290339469490994702758144175916815474387672965502004942254603605306214627447952488828054317699420122971561751092218040180369718583703987090877054639630181694603039714859297812791947581116554325119566408464498861071778561976300801179791745334117056504411128165476111574461535192860297480148122850909556736387004534423027283542409528811990045604606646469626732823066696863642957425328094946318547218350120548557420031324685877646463009537453193098986572725602198812955527265490373130969025035324558961371628669672248131394082024554786737111125418481305132117810412711216033862699836049811512481461762633392404054553707374373845853841887144702248970616289188848347559351408719311688480309395211516680812476156598770902702594420911426270932158549331380769507264032921239807211778970170739978061786248046168818363917456191239671043135833760766554901409800348703066686586973886410456970988996355584415540711730759438332867786238754618273167471686101435398664465739783499141035056700697322728750453291384958564296762284065132682530797802062563213691948006197502861557497234835264355045191266870161997852286084685519505271994593619752116840165076451959396641350721372288462812567037090140846477439799746564483412704779252675423879929655898788586510784758256805491860878075797092961627145080077347851464628188433575847031456575463103040790087665269218404484692382888812374513631994435980381768088387663522207845065302586446690033341334562872191478509615932798914890603070335110329858529134198517077307152935242522696249235322565956548892048429059825084022338127793579561056574187883747081213215307270364585218353879814727589563238584565971877695543967823259871345880604071769512031347051673929094345651415070390057067070193358627448162709692448143053083965481517794396007328196034723319424804826785063317112814765550552119997566567503437770476360893598490885501113877882333866199893768716908036798881219382476596710633224832623064696450796455083327465419630807340358956021983906671059422151206906634558640407438645380038130481589050638476467350101685396346926799554576684298552563029619079299733928414919624856283516579181452300962074246333620107752963195447885228135898200502994924884009432752053053161576629287748172511785889354921845043043242428925951024664381323887633249303573443973324413786458550467933828462451961624852397234111664999287966332248168057677124432105587649649419198170152241364827057807109115116390428675512180269682541333086158402488953261968179499796695241622325600529016150526195771635841642767603830671116602005609643709662140624758235499859074501130556406142781328794999393854405632326776869153922392171458912897472819681267892718424151206871947257246257921147941202272342092953200769757306827948909644240741579075233456860731011555936724178443532308108000726638049203552406853310960505864145816949687977002301898879842941861441279735971474028539293571242758728315494652872591572707539645037888657079560546775162948880005137361435308993765083203274394610187088558002460499118771493012385914733910243248158236259621852734131875759730800568553962949976824911101034671329539816614371227745861235040013557677449300776886353783009798083000851006354128114552335383843394076285209119068018324355086733669158371750121784766282140251096726789968601096688692340991210976313330420155090407989794181402205694745157605407834625494151393782687368116358583821237748047845041300110630980205125818338429040692589673099415363048918445201568187641819711499067788828055624099399495750163304591928923099691106686111147936863786074386592501935084577201389652462998180250553782995871350039208383372380550344471902418983758527571446669203921860073629337096086786175717668159550720800486713568884316748382529113273745292519771400943165318356901259124787271370356211854264977385766580862427971586948420402419408069238804158343411317283698143936163106353562094071237690087198812880694105317270157053288422890652265448465584125757967595842766721431598497147482465215836373868172080345293308569847266199220234387765961760819697501071458252729517188710639228766721230200587497174786950421531885757286874024884064893031154877061661586412663227095285834642398977823469273530218482178724977734379063374320761026041640688052359077704056822212860988586781727868403549363414956928932979638187378799282162036830326614186181346333073704164134677171151145393558061665837344798401016937925668198124180979874528753591194213295537320114495075159322824415745106672532592976238092918618104878809308813941389711849041516606936770645684357576777608243157350590246666942605905975175611858695425223367389250922612629241122941996005759118967225224423698465868801498810052876285818112635165597593223470541845177624566788784176175267887325357067621162713780873183155676355783325138677766594250458999809291338216634512843174422515622347089384459452234569200083972050717061244273792185624505449063467481173604344702570160452883953543165870719935988616523846692758832174984798427915414089813824098810210427241875216671596149803630720952988330041099894099130410107814153021607948723808885855891977004377928986108978201995140099726837920312395705467930205423812581973057916068546429102760984775184815485286581700323167588900018479064133844404226661458765586738089965566456693715297530775700888631490008445316654662841310883550682223677660900814502777155472061204700319507379235032726066222713193380939412791029009774613099102419930013050608379785908217636127135380591919140718630478052724059709887931618265641725115247420540162913351988635212070748869822745349678343323414755071461014216087943472918747185966596035967156173102922673735434616531168931752989279709073728734649003490382404144498075497831662785108797468684722992774045503715072519120000568388946916920461255439532507124966787752191616846632078085332814524448293577266794417836153833265907574244947499416163739489409352675291419062641009160605664221218954712549653154235023904287705127492639267446342244257763577123826560858824762322614967748190166526115767974847034732855753400380743501698166819879951803072532639829055726365567703170734546561406376418601901891654746009696120186492398429425583841068579726969126746617867742720919896547962544070603030033720488987463029747865598206489441074020085364910012207767481982743837285897463939570058793810142135759199923639619915663006500114435555006658984009972177526527291809317052326740089837202276490293509565877873363683323874907492171163532516103335418581854544955635498928282911563307295445324598463152870968009444248647661562713655529130682295659955037204690481656586481685573246760157550008777045296538399586615010054582512762859008735912715425726750967922431827291816802786163896200989083466036855536905395772844576582604494904983344167615456220241773322950276731176329152452716641610382769540808071775909578354264195257603146923363562266316918172132831095558239785070634771024164383214204169014961303867216913601075786242644364380589640524290050714779513111918447243075460924887793853485363341367483157897657427173097084980842505376705885900542721469964826755866162676908634319113885246407529967196903008590575754337956262563241477277160108428530870598428505319288582765414409682867163557591253275223700356523458581775272621107812162850561898002924735372306720064297556150883999202169983847743150305382630796362962074631296739482035725309745908407891429016569818458297780591453259063783467274379399775914039387266596007621005589345849149016717080974313022831608498994632885572831834160742876317847079387955384318478964250569069166052683772859074642122618979855263592106274632474339532343296585862785959172942396323449878585895403238305987439769775085887981682166540840561329027986317314926511678247447297537274064079753437552949842177940517887443585241626639984413603045446107266946723915753694717601184988201364277435091329203293347046958564571432775922107165530856081307233452268960960762167892971361522756701360524268226424193267756186837780085565587806859396266514256195732251621238442238205334375526066238642207953472012235201879192312258887264401691141792833705609757632304429275375817555231412384256203512797512312249975734065615854644697939628342078812427226994016769299133834206215802838730301049572663367974634615475796345464694317837274290988495344632460078890403700389548932186457181367520295563379793882787542650017928026003844620949824112015628538689071750609286348835983253958220705474473206918858640531844194196556984462842242139796222808537988617675427873946053847775182931882293039122903486491289909272200587160340951736191917392031278825622847779052840953039427623070145235303606551430362340210229887186512057833177898564180002119800183723920832062231538179539752213338331787673191769012151576468153566610717871491502569275737217159177501567462694430093021156846236172306568175514580121577015571135407194789375786104255084721080612945699690162531889111163099106208879551633824511194426942554475857259038677640099997119340668912051163183117110512203142932051318576787997875255731964404106891246772220633888712313498554726365139859797347814671908369921063469744670874646508828697089336059186750797729376643499217620625424505066199656662047788764007557138434544030365036499906869731532647653068907855871538456865601188946823255780746207230082711354234511405440508983557644383560992186482574084189420947794432004376778785066211834058555071318651272703695296044939512202295626264229940679547267954456338552074552623799225307268078139222159518115249240380191063750406321099046439765436975105532110339398935127547940470828108741055044922425494027035692246870755940017561483979327780377411199556141693958552474319559580803481467839091595291241006751839582444062856210564348003185414158157520478638526010410063079811825392697190260720717123668705106975201350542224915131942242350618947897381438107651521230905740996461581213719552397882397916238688482252497036757880858343299184697483847262932963405016679337792155586354310028615492070162180163308556378573427703206486970676922069078340990286931927224482970183289666036682627107602031980419749208745397886427353362058835226186169955155203878477135597394071135104362848004415458092486004613431311848242310386437073779771970011770724905353087250746909063738902670045552512329380371905446356174548503311104173111159877135496212358155543740423625456621873206844891772765086086881895391917605790540477951544211017524057193525836487304062520084352028879316750893013395124310763706721802919603449773221329773826316637946362256533086079005114307554381256681996635488704939274457222701667563182593047744994673586744512009977487188007313963045032180843103976767606377243724153453087084117243914467531524775251266747955027014347063661318426203661695432528064860045589210193507350411046077261707392774800666869886467399219753430536127083340405922729173628000768852436678084771108076720321672479218255141145931723655129619935232207727695569847734016744495818650370137870362658236814522476388124935942489458140501133350090484631282218480184081146544204210573716302122833424050173061877327881577920101892318022257943643739274865985893797906306815960325169103910827221287119181234106147370546877477717235481556436855372210218333358925266111915822279481274977438499232134980907031171291963579602644656790931500314149267869872863767140023982777995383028806201497448612092673132800028291626893916980700021952720143576361059421221992685541210775714102369897855922529935805316277846002070436955323519817114347374592223222790453418629239370879228844038112323435446433844235936666495871998044288651254992200016809241679423020878623419379845461214481319014855635940090846255674760768802959127737903352961839461132623805169611484677216084871030831793965443916323142634878494680001333078789189358055329733459355401919093945203780298844207068454435345043059475649897718461676866963245785550020115876762458210448793588880694229271953022970994120107675938014770037666225366558121049007923645414714321389464181757789498097353390537311369268464351119312744485871494441975108170748237363242389717760888924180134979849073416970940688966872048621810513514753041394050678230804944106092361152508271308093867130660325242016938171862172767742183700768662298172561953545063158809277819122835009701790366486839503867231714180281063399857151998221349975562453910616797544943110875887731634059251798594741228835190579815964459671382462021588325924836632176978901993072972737578741962532244519096229319126772642051580547054487855046438328795569865877491214095588868720110248053841791903939619553383672969946380835980402848166729829201363649218735586429840850308857784497771380452410321386634113301395537388200029170758342780706193622331564438057333642706394824177604007908059177437742292032955933606321913254935945027262473166473735088977661638756617423348533058777683877717904074574369041997037056208924695060629003728478042571624115011298054586673869225997586812650713510045495810697228493441029105690845013977040498609784570145570936590829302943369308525337268071718559870644837138841392394471131379441612871614477413429295969060539199927953939870930985951806401442129528779243162380621806053797308434045498289868206003820864279460757227009314853425649160754717718296880061147746451515121822234310767419781701882730372863812021416471817650432715346301850947240988053716525696739456229550806950587430460771939305619836325639611347514479900995447852686403677904871131834263496257781204845272813336515287717265421281462715226374289618463631532206461334297585444929841480464699372502457215544645677114029594251545525521651972880371547470249202904769369632698342059922315135079737168171564006611471811276978624742640022789434353908741081403488829643205248456052563885651081944968344158943479871584251583854378927085617115463641996934249114057419095245976199842619889013688669928143167095661259377415068312596452493417264453672851819042755055312460497951503236699239968836454201171399723356850199978198187575841714879955417871714897865167252029851525026862797036275059044145799860360277438221789258010242554158766381328503804477467510206448653565020487015199979265598547639215167176624021379856242202097530129100555784229749867794013296297353096513243583549035277697110409754692851048456881589124322106980200119417712670088178410973483367096480286577491664398020887340362946546499706011901463260833135808776072233466640370175894220380862841192365119475610101751334427449007826288115283809686540548393717573193120586494794793018883146330017661097012805757530080526016182749232656701194072753720564126626157100672387113523485585467020897269113976903576855558762301802658174835326992289071865492195547843706342806890848660129681303672508360530495074589807550984592058495565142840542059165543234593310768198398628518153079619517408532784007167086279117663721960773608788705002055668629687650594414215220848961379144460843985997200366574731781433291513290510542932415838605955648183192069074807164095367699462584329032980920393727609270858395818128742895931857500241291312353769086225064825931027109781040271114161300911983549199734236540565314077200932793552922979059505428633202248731103135886141979948952165007542668156155705485330838113798328532779876900365693858485007631730409834104753305728489013963149820359563968976979475451520993880373082356898130921760212256309114491247327162749286887805538283094259786330349685401953189019505087373118635685288176634159388632184072553233900303405900219691322061620976360198721969442605899300438215840424493996119477090212139449441939517841522036354492114572107644884974414029632609599584164156126256238362602283029661211475300161093962787739961344642793294114473590280711001774607131241704413997700614417829888855982429216983700811712891466161617887566435111285913850149602055066849833978686019069956469640278183095270917295055297284446412254972803984660193542177686288884479201651868986997687422267146714465152338514335910167198929192635419289111237363484541312929616194028671372792575771448525899316247047876087161711356257116832456952872000115649534661666802671072418930089102955492426524948942667620395349241100574226567151830953799985782539128291307800341709717181635991026625003137902518251642747936247109208555548468972936384156346186604545535317106544044378953399891349554192236938863707775474683025799570687102526796109293120404783770577330732030389711984169859191267161927278044053511558831310200516553555574488938168301229786497188761083716810752397157910506023630751335380301276820740776664970671054935135378478619369408467202677701410491174480178473885291692112731052612115861600175024765847153451755338970140968930155397115248685547268350375260600626331605942822107626609157454374334271257561175831338982766561615300498342579345867297888683995554876522788157921236280550264663426031035276081684279944611382994906749686120694611862757039286168343204188024301026481489444439170347226154798667308329912389567678300233956806780063628540756102478972020785648945917709259292902180356976561698272219898689378857245514625932574261678735752845401963719131431596697266615650312972389562447037667496859783235175176794021860478440453040878829489135708554278934133810669563821731140756533704033392343896037754046973485504526202736414748272321250519013265263626010602132742449004992351383360531848651602832135482291561356311229153176363928119291886363298131018725255013894330039459393673260644464687354569928925531055013569241390565426099178124125436136062896380864068066797172878455813297579831898668015621623206860829448233484711714286802053857653401982144434469180482006334122004548606727466164181794784278273599478233364986532119532115149260582890570200719340767826197710809684647458049138375989886587636026247486579629557496452064769478501115140691209667773763616621620096249876650220510652591292760540507224828764229608341948744711342887596891880393681180634144282512192885057075589267163502360909449841571749192831522513192754079512929784708408385558524407712342014520196051459940559324778136409726453008621617271846506900956171904493513960654791035836964464007126327227562906354034884863112405935248270954619136663648579469829367386533897758949839088871107871412749250621049105478740974686574577940454768503679045501067831463380678173825913132822704016938195625214572227258237766058358422608216882774923706057272673308721270379431814282444299845514189811314279520528606363216725522929829973165555244652635837483250617656753497704308725778561553376617177767560671002146490428105574115794827745920080972497608550617891836691835802367208070298454335762477063022044420230948898486711049624206168145613794767871472510733349696331167496339788475253338635279332873468698358593137899715178739326311484643313065785238102333338344110415543547094833098426469820128063904551138390119451307590841168346355052073039451336866179033265106708538386364562678586138869351064110681036076698438505543751956168762064018628110611450052758828703537416566201546982674557780654146716164268427902621130896030303693861678241737634942474928543472763045229383081791693562585343430131395381728717573661426951720320161354097189013406214020141254897111184349974535699990499110153379042331731994860957629006356996505143633739361360823985625755905231283274901454251268554744135849574528342727318458648630540146300273423113427060473947130791095934149035786631861662379552235321724561294297669355664967461859585510954264392729347728885791336789219501959208523810003337399004777485194627127164242952637016717108003169344961900903709758019601974004117121466729200440268986730751415357472869860432883958547676130046752129770793611815971078922923459678754636981296251497772465896289954370866786465463770028734367395230389167234949062469413049673026485044715557209404504356783553888458017376628215603666653917255553038080014727055329592260676070519558013116657722021739381484282187681078951932184635944496583472434589356828918303684030846537106333211016811662222465545408450805580959301389222882821536235993085703603171350578950884608235339111761149117340352492916105117960121929696942417425318933519983224268516778259849130410179889663552938940638443495845874995915197166194027936702096295628572056479169335534050093169685175308572497095978526530922641869185291278200898209892262588364123780052150876329086434441848020054080783335614170188542468441180445855755539671385941200873449147194216885008996925274015480903423479231810978852231320412787585993804742662715058361921815282278671407290130471451505270591288525579889921402862847679920838450046616802997381452993932568036664556196357841249300300900816838943285626730625796073902464417109412272806073438115663756186987582468102337664827644849531339912630814451856291805530227899618362490139187251198046658364961388644702026111700492085899870500633314101833862757156029057105093484592994637696272012282195820695203760872179782263627891332101450927520805184421613930812143689372979371100953215560199350645296686286949486623523119660360674228537283991622376191057793724605943058564990109719864073518450306411663748075336528800366364566457342956098661491398811631980423403887992369327751064484958802973640022139110699460615716618126558208339369155011191939966863412827378167311837502281196192685927854416781831670498430950352286288441710866742571824473602294050478513445795529490385112360805981695363522974251235370332681172869513846353756286529756917165028366966263120601525484921616181557142084103678353615580862982378710083530369222007012998767778202948199602203987880934981899049235704218421533854229293945668959198945066979604835800138582269964526463899623976589762940529817511396911258381014542347425316424407877253966224410560952648572198538129280810540453694430502778388224461282300961381480054369368715345327771949901122411163983021257199625243086027024966924142570513035192995347602845156785872665132166127050370341305003341739756713357104711173093364273585812619070803000899078502403925040670560419689944245434371155284418045088366852224081261830958301811449292957368074016943321438629018807919610159612069100410054499294646638886170599587538556092356522770739920899403809880167675271223356714802943036610926521802711585445303911693552914265968775449938501423012176875858081228404188691691356531631238287816707039607669162045419987798585728402317018222294236953321292523658965587868535641713570827983624566056877300938947235669781289525191026365895990366280261989993309996190841664568125422454963756287945151173833794439708909437644678089838025498517150970894035553832493538275802713180905618900733362145648036061709105561572687038595255165402460196610579507685294228648295489869565120134137797508366974158012776335151583474730115281683837469296613712032939897183561119985376961820150568574584889139285311375594977790711762163691435400702642799149474863118199303270999586452336528450574596579314234443374248381312417553167266586512983098980968305403416606123729452335172438684676213680989573637305160564900928268555930307248460149505353075818881119653750701950967742139548799991097003810120392008813960472150005102133589941719382672966648470615288000776192156941631843432762349497142660143338167748155484604861087167677892292116230296013384129372796378206705272846982753915514406570039220274498676911537050158242581906853792966684398590308324431069202873661793931164366036999949402581071550841517023674938641840248332647978957341581372479134477394376085357243816491143331289161511508521359392253103094118935031725056238663724448572760876406649470450147402718731138265348592428404184123030652216612688597053264300414700676123372403886248269943633961020390358706483186721808639537899334905156979453667761959293588800081726847788996107332219704825982139467875447659114271073148188314912998056524419157367597050227859216230897645400974715211445010610692382626146400075116462816735274705652178902227461592912101433839121951701637677647362855155043305030679621273756120091472328208519288210817967410006858624362787090735861577788320130071349699685908623619616791085013765023298225300578431091832974668470991979403289842620580593752009177320666709533545450749059243988186364095917213580892309375541268291557140685733546638664488806391612947619683878314564902158106731952753055269648181843881493502477047900089083384987455791572371339582535999884893111198355555769808998974412184004658380211379983530128274519684842569655444721148102871411581566790382283597871491535866990954438595603213424307993738899329695248817798375464600742007631060541417176708406031216348972207469636433517968099263072481571486331942945087988040358348987816041860645593577123991197720933758699661861080745902655256919842756150990427156555429595039577936858990744667183123965918857390216814698128247048437227252646723952664043923616472491978660101265820459556560263404410525940282863040204748098018731944545274132110195941065505848625718235512857907294058442624666647505792679607033510012795623604828602137909807880186664452821228387112049515869556979352293378557908852156780922280869492484302750918379649480769604080804784333077537927905963926659976158024926618431165773903880258542008380520002673055630176730556402225380839822183608037722986792506484108327494269149023639308156418217743356445725324343775216095966500468204720852975732448346355533446062141039233770276953628263935046434449485986639892213957368458800060126751974833136330381624765099118133782521556015331785410268445131340980020100675660853343259067719165659034405405996586903147131483987982929405919170179950767444478357755483901414457826733029400934085760275939199058337164833529686585932642004672050678465477121357864050597803090856747236689771928919740500288279243779199922069681449070393783783955033644101317037725750880919607339859675781029314587517387031083913639453156987256550616197210162905807197230885630889251892749095103020721534540804691414363586387430485688815405909866170126010080589880082667737870555088395001507145240147303269348384100837446250453544008348188406777296780650821475940088544437422174188579016571356744009945730212564118892355412464790667423224520354986194739445279555324135294881264007727589758877531942586671018264152601920432529383075451204773194473372635715958832617087810072546247997790272446100673153153209417463625893546669463046493490658610617979787285476166842092177765114294526853841269812947857971229613557462568721073641586123916393481126928123017505506961354225558700533844304327013815964701406387153779819664291106240724586764505033224394788138950327267092855981788441839266331394083864165251847027744246256326507651498265709758048035329223627550971822068959095938271065705555099471520837413061098739053356390165590635232306495215297441688103665384737008105092576094674316524564640338748976582583406191928177225693483330718846596844550384549865259575832405939658797184941731256119716043412155287578017667729529551660178511207870180286277222251476575937456677802740511304191582135629106022285171133646201114877746673786472530835811543418559343480224963892002694054239497075891928572337087020973784225342246772415188416727387011875579499521962879013174040776802518726697562127668156187059662401051267809653748055392190029601725937183001228000187882707060045394240430175617768285125142898360107816005986656871804186191230317023799986233950137694346102412813400070232600988224964672321876684627629744306753059942728070098794360135237892138615219546114262356833568411512150852561122984664416247173461502732908184080573749827401303689598714819276405956731760965398845603298823264673144887501415521417383275229494201738683051605999948902491823665578497856843551924616441811360291035396380805110070162374269527219454835490131297327587579615819112769585235649485249518225826737791122868851235728948950616180437076052553057449554923370925339302941088270491741366929308605218201733827040125863227598616538183687970053876164526448920246295234525723668332460445932612939771632481297111016692101053372947249816681284865838881745010023887148816971241638036278542763584072802425084383850266424888804084087600195533303580354662516908600637130173256600205067962563602256861215444390528049930418586985149072890140177461714163361033994484667395077720720505144519342876786211211415672383576879297285975887268236573985203891701066127107801115091132334879770844087038642767256153644933277459634309182408764402106223277750636757075159189164790531055420939762381106357734684640796707956804491508633060586654148622296496838152032370226522181992819242295230721141461830035353242991605858243827165975126743126576143793673450832521963279739335755264322033551339750115100339086410291209909859497371970395396744166839782985915309008965963683842920793252264356307609700098757458094173114652349772814743458483959354262214591811222636677127083916776350409068836970668969072913928046613020234183909897079189685816745229266880476632854440248015205036852851873942443446694335057643278988246291918053885674448010137498476580063426063331091411892071227497052572238313609614079714385604769448274130738157450765017331657619618298295106253887080036731376270889968350211464647447846072601431383613076674963467769623053744257372450625120361740935863691207702092617915398020628391439050745352315693722150287612515810908911583442541243189684071491223171011870821650671498554794728280143066169777901819203848376508591600115097327562091576748573421018730786110572852376784388391108899416520151157854321174122705786555137803520784694393375572404776279354047007517419902148518756835680926485956028554836650889787527210335346494494661561448586237914076116768803590916718756116382227091255662593588586705708618109614868129192183615742355621323217500523876862097734966246433342258572303195096951131025550442157011254150943076299463210271432566218712624475828264444344276699096462059834484531613237997848463572405116981623565746663152862139556362504002249326757365415064190983608514166195725975978936082841624005556703583250463860727721993935394539393538380786832683624441997723367061055465365693345638025389960975078889973256813656499716372661771602805247791670688864139118913550537095961404496051743231855780073226761832327959264776718596467297199553592607810961678485419229920948491817575754049724382228414006432043129452252464820665220253063704863627730920942085986571208208975315188104194752334390235814928760214948259325323922013556730569443849901527937503031460288788291695293124708638751717755994186782347442973337034698160600841770095555479170800805175574068225144807284603334328805481560488481056860017189827265005886088470211215706434537094375340899046214588191864116900398765789036253263033182250058567377263160241223364884976497100952246405037176025525821429113757743297836028841612447136958650984040289426058792435816743150502353109146159341358095186438400924434987176781421978211700735115698074684872410404697841475805422542466026479966335094726416272828459238063374531935173721573971978246300324602990012857567876006276810641566806525935173934643415142450874512956691716163609889552344831675085093585332001335013330014552156879646338530911614622083510510606608028138982417083075436140004016537780516479809152887329361331654358184137087688083199856159176207284022190554203825003661353970110444604469833909713112487469769504107076987821956081144359021338263973561644406063452048685447600942129217350697861843410241308366600022735611577519765238655321732305175241512318853642949579149830201540807418427733385511094737425991889355374357968879592762370394502372893221820164113030588012454099119646420595770562874352358250951268612493108964943379804808695485889441698914151203530057197875295115571482740234548353755199436058254853267841213473037234847401758923343328945293024585605583011229855529043855398115249948834060116688166759796887151426579542412727244009014542268600795494120908253382786641751452597370739840176981733833513523150088166727492571722739368850746323214116374055831713049230146817406311460421796119236566718850856567474237210679412666275488754794283164195042582466818789673923292406207637879658140321187364242798748406200382378045268494438814999047680737360049795558485209882712140916542950585416033426933748585810069241660904993473870056327885393094130555550899643591907783937507509198082609254812744241816649318252961688654293184378250030253971018778890048539367236409498604026703569520974585089188876570492740373042232365931745588428838838143797571945936989243619932074396648916728126033011404309839440091168603525018350949924284866875155673890187964971156951853534685522499752654557351247688516936531132099839576946715718899568462551759015543397520411398700962561581876865841198220463379812480475012310936807035060293196104744030368628159568947670856185904737650067665771572050008586163398338615900079226061880446234142858122871439747288291891266374182930264390474973348008962395487458545151100021383763593560684523632847853976960305051149955880443524131732831609616213172358970183317930157928804733224973392486143431145633545217259969870028887301239066678086534990647998220720986923625795214670537082138916515141825134566091015249384097583691213272350424037902099390122294746449749081199589510364446973799681138469525975420350069055005815859503015094033570543497012085876837988999808750145173161034897246750908307535808156629026096242178215175674148404181098770685594713940148241603453955466396397808696906822077179686521693710781893068717923381922716006110832695033410028818927968695354616896098597649322125393096191724098259495577248405763852567894887458491711021458725269665702468521977653431730693133248669702415835181995096551986345925599923880435244030292885461922369409384204533443339891646553288100491311676046170987942381783144393873446137147499126460827619910324919852543674248742621281599232394292225284357243502732770712502046660562387500369539771653486268892053341525895948768024723418888883236189025418041311153333363746844625579211328223221505349881208460691997105048456156201401518348642302778956018775901213387682802518259740718414055567828763217353843513218153783298574756116062807146896733409565411934214044406655258740865048891263535073209273452291426711427617068944815369076058949219643820528976238925983581250891768447000439420129073804869751504146446173426052922482728472533717255602203989801115342844467233147124464337296613874869821374724042290515064044104064277701194688507770219173030011054944539362717523471207502961756335175715138107865121561822249610105469745385917063282586004642883252859183932665026855737310617307518203526825423074037683512277690491690615807236101468016678703769183193890803099388283429686581207635840767586002616698187667323627352644475323161427801407307543828758763491676461399056833350315427848775099820808839215871620756041653364181305661985497081271349800264060932742278596724425618504024469606756827368702215696422810377795249159627479878843461571509055346260621655142906956708028769633586832467305048695585407075183126443255827410599711356306032694632019073649918702981963675837877174622163047587354933401348087734783550343906324348191115284069854901528076103124318597221319262761125893332078321775568286637156428702511587718236844685998903348857386321528117874336428446459168239957304191061362763584743277562857418309662483437832060261761124448254657379542566334804024362128298142262986733301349127793272750397354289817140559301304541224288507031169551847925461139113756293536034755623585123768693034817069192910682205560545862752619935484941826356911312891036914794157194465565568925841772047972468623420272338113371528663437585414222335245321489844240931339011671282810994932700446160040279465500982993117056338168276570592511038972191159152030319836137819467319264679382895672255743322223570665331400453456365057965546338420326018062624280906720646579704568483293217924789454796389156370597629763882122217714942920253032871018935279910012542621076119503457573094173472917929004548137068397583673991849629121732802393534764419067245740153549406650264643811285856054991455303750138025511004910312751192054008247312542030624976238342943733772810257212439140128148809097661970371203452675792820247253937667870169628182153482831641878167272537252009141140198014953097613632596276889767997770539866409351118058063332369386460283846404001929494262370711776260496037867539275985037746916550320051880674705444246619003322273464892740273747286790668040497834855438461452433086065691866654883335930394508051193357211906005579969508184731718720265398730146040515868638324039836099538799204844255907879040525923562698171562373733455284701945363405229483396961118429501887876012137595708436940812465771345350414380702121593215293546669833354337953171296701682922242069836870598718130239839207420351745332039278692535433270927672370097835389393532127091683139395664362155792830878920537189523896258705348187991300659403020894202698470379941351341280997966260547024007542335438282278394807587175222692133782475990965354798651829596278061705211702544169059868002208468096399332725804490273842822372024070840662098180368716499569058606015607576311339523212510144276536313329936603570245019487319482521159216945699061332386708416393174060292370587797718595497122315225078864432281572897467509747609217122613563255957008136032503604787491825635882065600919283294577978695803881905677554264137234175280767914672013164289492104376770933211534472491720240471857554889761856770960880383276344376616392443931014457381625522294126232409573860320564583245204185850048772546722266787041660201354854843352312185275437558689037776802946049714000975281126964562206509890016902103411183227951455660210322107514946952791902881995153526840662586269882977246966939691215369348105257185572879272664804364726256548147342712198637445678785831870974736149862759142577240819035876172755548124176353807643699168734000308414057577861195508446133111536784816053260077127913573957305181188040430946130961176916484754686137004362789978390637309756187355063263073833576064604910788938704886283377337549487889410999709930868013617719466740499447363528889001059858056152733285852324421984960283585886815535481990021369399697678433909001720169485277485275776152265199857998942492381841262071606648031965185413023673095625940037891534501794454400643399828903978946271844605836562648908096909976327854712885020315825137173459289924242680135083214592815448688067068489757841987794123967066362790284733088615668720789206786622888244351496091698517985537970874541816731539753230101641759102213185002565173929206368259985782147380928679468928876718409664895267079408226854169942115878357266308543950251007770038939350943006356697274466266451256564590097751127880046051667945528047035860886161373120745345256238936702821799346560057118362233361542961871210410163167863613244687038900896502048407352645841544073138370362593261204373089752435145034346567214783405149171344767709853414773870625560694303374296354531401008992140575171789593360307512556326120212348240010452591037469590788638503586954654769781360651552997824147473949836316404821761230165712876921202615445887149965693762478493923806384894978680855953756030292018113015604888815859774975121230858322543787002396173425177859492899028588890700245049346527552204898958052127755802906046015940841786178239261990663004769464872301268647573119464647664511749733762005919235365236538813781072722099746230233329188825394952244643716398290663155620584269133736186818599227858326249246527755368684770243749083908460497051047320414604232195213371632030260693288171459680801250718220190764886941182064554556998816912968459043857758717825062786389313486729735608809714062701422402653362132758402065181883814947342874413031915989121901943577883436842132136173958163306294166333015592935555210108212001653236948409430039105058185668735513949043078720898489329229832399745430089853801175216454137523091220723705337951118527626027911171777986107343572838783743206723993328211234989158533203830512445827232942500065157449415896956046838098669983070998454525355459755049191240582188818486032518102010117845488687380816678879157253968821452578293764556396032273437562473066925075511210205001520695689700839442027652195170725206067605886537177619539152409823482113847322013178606242286862323354676503239844110237088512699714565644249833991435880148966294827046357397831900703979428346324350255467580868538470630170944205289531049786307307962785736329793326128532654930212081238634470844877756362935792598439787629756451331443995755024988192081137063077346513176209935763687685332497249298081004564868267152308713772294762910151461035189586814734631327602891672586290827032462648745775962017482531967400333524825806051621651787892116320281653967632501541503796630121365959866779674994290981356671537248407298710405479462610566821647448127191481985691798119596836521384621839967270744869885782469064748619643067427132456203605016451157665923194857642611885597278852615911849601460528322770085297772195393241376321423168192761676066299986790158955026124401354926799143880504699327589710069475265250737084395357228163946597790950549084652141080573695830575440463627734061656084114063730722711042941470126241436192181672540226261400703777316224788486747057386840013118234875133477935962888398777320972116925896008541208719601000561184174179471980669960975779617062252237846689502299885432719727257073779205025825104105292977360937143659682790486657943170263988665224520269769765019359316505537500747238641729359131007302946944374889154878234118261850325495919147609002185623831208093936098518445023066219774720826749503438565388239534229038631718913478886245368517624343464413420481710043003866149480927710162458939977415170620365225111194809909384381331521562924076893668260885943840817251872849628876485903447989647369426695951235314392840350454280505164828289189841244422813444425329797436546084350455738268536324773333129753133595055236653959417825288193060715297293104126455321578367327359523788713163510558726329386401845792429366695051045695886407633732703567183055002671285617068317852945771394472027306729419757859144713419970695391520788155613883540061557349280492038683296130671752247608816809223457065995533521280798176565803992319899641017905384384961584120545381832037068926835938371484539744099342428148384826109357268548192654573618495719010321285844530661513792641497442020686020624872821707562027873909046115816147542199439800076664493944216780408068108846782100471930853254329257228461099860893931417897849562690903523671482897597403873449099190804727668287578512857022659296830125119377771201425884925667076399942234725435843987049459262701062888457218458380640417002338952095284242555699018816063210014926129993330430955609776886613296523922715650052416350082512264921205308638826379592202022879755366643740807392057480573098487701087788716832586875116112176689071440119312487942743340888779896202204399061848028269977291488277554507115316722942234474814684856097791991966749678604673724249607864765708117094773871356950137999173090643177355254926785581339526134362515056423022908522889855815719478805139810037286645139602765450509707427636347899625324928791848323298851383857665532005224312364359814546532238762647728067552075747965063974904182927705963196196763338078514370734814459011283554875166565657513673835789919193129373561416953726223230588726264389054293050091481366796667340346395795549449105526278458677197577427018675165667823752389241859783022102136212315576441246470537998065484557362979773027910097160348459319874229974997676970181317874141933711532432233842541930136648476394061051969539194947807478179494866586315794225182717658093132344404107687047531026993903063272066283147856666222432241550525363369303872065723511527172022854551492138190558840179886138518462904151224748616234926715235123933359192657567652409363858858864088695142600207431217903493708287513080357616095659914870833546239402805566360942953287924833268834668701841993195392592662656507556941441291525735349062164591551847628762617454778329811760587386974237986273770057136847203604062703548164168334926899784298224135266047291486526732981971185613799583399967780706404272828574899281419763642768402960130887540359573743541635573870210622556121869741891617671266816340187995916792684733131830672292887817940353136904070119230671797461087055120043786127396212692137308927877107813515068240710611674654891744633152319978670470388685617853170521032315289160677349991159954147150822810296091925887030680202176466075872876028224809237659254033815116336479408293312335717831575387285634602385171367431393884089721612884211548380870598573348282214174306229458894207275846423269031573852406523773102953387978464088780625260772712807656635529003505703479499945245706002744944586261233869483864917239164409431312677900147287118946950514538081983522121327981111991672237368544722278985287587325438664785542826713756562171522289606530648010425549010566534783105921612081189786393401241963957415376129311491766713999777816665917604745954219380461671052901825439169975444439678812819747877060300619801795551675945700767628626234170516505647369031037930314606782778920285201007770020023342402104545649264078036865991978984538611753280021409067422869422710919544503460362926107012610289312374408471938911725206828430137626812238468896626360083564369218557018640521318460582733788804631163066916103798875978063131977813609375980673759199007621227969709699152013439498138992084811179027108420493544659641351919074832914445752408220559094396819728257232617650049945598020792432823134203499995036354361616430524637767203179417588243826111239303654465685276192826890389360797124684234081398168541985463370033607106586213696763150106477702240859317499600155590905442031114609643928742155962545290346196086210506830964297636059193461186766726649967132361915209336113163386594661301452151893285666309044859656796044737421378775712486149006778835533225077618681303998007024270173494466309442165857315212066610082691315026660657977869714544963227525807503948250280291905222440631319213438263301707838202474008761466565896868400652489634814725255099597899661273726893789189606711669855875122392225625169177656482633549939979558098159110968209345929746540322217249401066764621312674975629312706509442888264880433447938116294517879017471258603983204167359533368411439499176717312364644718380683894968834280804506267946129299919073880995215105517434522783999138996434049546496117729895149794566416797629769316941431523470503587782206536613542423343258013039698490775792319122434380522360641895534931781689492394537026053246398549898365387439570721000698911858201733687441914806703254649877849011198949944445238355651061162065195900810588288463155028156950084878411161137704665695107169070269223634958996665452787089669206423011116445381020399899206891321883852067755605459941614014012409775133952785520642826962312225221405817068660885390061204476741643230164682342317272252995005180245683485589052807861450930705554581079369836227271268957857811952557780030800351400066459398364423373035688584465109706247929475876024501280645205453144817939010195018549886276690193672155273486792634879628768373169075521609121844233795556551604909157634220106840241220510867213052977212104811621201066201275057551174310630189502391797907531597972476913083555411365966349581288759456552541373390605395333572213855660856389216507091894238275748448113403623161493291990712636857269091216055464047650310439185542105943388522089574717819974765471667705515314128922005891439038876228086209395075231387894481926167083601729880241418590119739288382244007976295515750208046758858056655793785129016576143775427942713066890629276145764387791682670744686570941317947281880996045637636658570536600113527261060410964638035114567580124008908090873062714305035204424162233798296836245613559502275920373504130481321361153672298471250092698335856348030307748533550441132982789906869121610396357557944694464821576542885140845527340032365567866021296680828292851640337316957033097456141340655774740154991525273414420301882543213547573187938418439011531942249381655132703943429195401209173482351532461126490781058710568557483493868875660010240503426142616826994813967025816961522165699503492125573308683930870821461544216674959879113469617407632371110286597557106101224043089581599398467666355504779257582561797414966878833085333170966220155640256834455972202353933774336857724674878054672326051082552606089195068894147345892695347129509916610202258065961742755574111444576901887951731529094247466345848832823959950919256964666982746132973014194979787673441591500652656548096981738678252782475233175732939075829534613249940082784000377332121273219976376641328759220429533251184073239972337982001212031014688521103815750090670351772733707044968740045909429139713705714587896554710794760358004483506832017225006048571256808044148381355232675901383660876592005759673886250971305082928368241987772805758698714714059652144805648594697957738949270618648997970030361675555564625660026685225306541036501800603612737262007020938758350453301820579593082818875541139929080178542097686019968471869114535824311073838384537107330128000279314013665676561962012231241998213752975052054486149593145532613569919637270601064810900140905559110268036955366985345111095215773044023001376956371490722696019783952082623017781353392072543299045505933372698254862997684953832591089914760820409294071487950132712876659159347383915626105244764490576168618902717169559281897950737338126842260416132048215505758002536362921468303083932091767438183019877954940347412884895179769271004990689151780907385653643184025342164949737157829540891869572243618163246715303387426057152819742794862228722044772091280974906977432273020140397748621346056582305244707958667971681179837945515030268097588277039591265085086856009516913134500801431346590693621166769461692914475641408452775957283220137616089505422811711693495361883789113583320114984398284543317161563414439144609755454874284866348622085375644670673390041812273681632854832533546713447781332834151167141905442445393197910160428427064896270249557249538050284204632339205758700251763455860820516188541118116267797694601068164018676367579183485735499578739685495517938660601518286060847569740791639812713448968027521874312339093101196992159865695586317383454624121422966778068749706622180117341481554227746668782681712817997091491038065193818550417170731465341381200848533599108371300034323977847682440312525381079731892479660538721674127569664642251303789564211403581798891852072909340368942211676017548460258873624165742070410522584190326078640027718831375815307140208383838557525991462248865484834677099776839609918267901989174427797480646416768113329282569481355429107739157200282533614993224494083060887909843952439856596830094835913315388738549236226962793855193786151639990723787033038276606184815198567615128753213065192990896102286328217875452184782503831296613395821971479510303197685899700732950898211706342697114628032061539031421071762267881175562719716334292374469267910926097983964218791344593652761724972896570673280737302270878343609581040767539393825976719671280564171055150605967723043144837845727503061401328236270153034570197780918949757660044468682342900636802550046306534707414291267112447530020335727960930671576710357001853271137241452187133039712943678672726209186029629115036445382281165542010753064845869555070678409938624994843333688040034631307892449847237556154276567764382165566579790019339591266471845930613343333369077476926411826712392096219744925145434436489933999839149787786739055793557494262401825680895122885450057826292308447972405625311240548178730440974304408132488898568627975639674237504867873126363447234278467825610714820753084185305102822493577545562294092461878708232530566537444706050746021087525996214963515664183929367539252887210286369418072824152669145875873578325386841231213415057331445817979701493023700378492275119543633149674157906881755883697458367541801303037251317254102069534863752887294020507370679235079729048920336963462276249734989330176522430563781604714088723875685619751377956286174123362816168227928000887001252510170170005116521839908270609516954850335851240373717204699268456352634176094344658267590236092397919882933636910412133278742109198497562431276462600676213659884415745982175995176660159408425566925993504609020477554871246279519119250577718717676917368984863121797874357245440530467282477015047232240550981181871768116867733543673494153307107146323222127883764230574706146577539692250974512065279445405390166980794820712268044839990387335313594778832249912515384354009544675161560315484146901767598180554790830867879365267683582576505550300455450131854182038594535605756715547128105938040183128300553476737960250738901419176555414661509268638221363335645253792934351853328370346034235355457734962308901098997417388466238323076703707161672992859910409521796625598087827400776873538239493845466521514760147048296996874162685042827348271825133356221929027644527000560639320711806334572621873310562284771698170658598795747038793783955128260272988730374663336797387100293830828127348591834142898071176001078599575973593852695301142946970642993412570129472334693273820690236933011895297254529274931621057348549156571346545975633127112900274101918393464172369159881839661887151511013625872302071938299612182910211084638043982265711211775802720873460966045177197297522189731309888746264906913266434712668143223568473838505334399121053209450619265767030226148880952715780424107543711172467055861608003689056403705351798139763625861134465359439008863130157157805016580300805724925040015571159282720087290206661472705250663572330503126409534886717729761188459942717346092079999652262370436167303263369176035202082324817230561631486258430274639843570887086821919581290527224083479182992140425285727666311995763033563046780187875130221336095821985214422179510159013368406478219508652803607880767540766036963929175875009683294617654192254859940136510653011438708380841798616037895437227728061321834431483661153856579215256126946838274459757663343654588553927311596229528196868815252665287980930192942083201304178687226737326150887290801697053055834832458518852206313371899136183711277492635330879775353068117836729382510425982578935763775870928585418892427128048959061346378897157211626155762548795646041623859771206534991790602276467652454853774752722352304568688479902635263517150074413929141889312994179481146294431216076790090851913844512092828396614242180556451251808442118030885434046323108310885587841987299769597567807098404273282720422887555815951489178001660755304789896977560260541081227371145602248927387513969314027952596296207039320796469345819909866672949008248075181328164175171259641581038221050559709197925765241682934040936603159778122912145313210335788853633555822221809884184140659593408578213868258884106453501759145965108408077386694547391181097039710533958915427732827149467213038276535287189640076896951690580484394771058155923140593184391184137114847460193035517388688327716038588193291184995313009994991846763800691056155453569605818752345808185766357724248801424798709463833579368684353332052948255513948267345935146597521459964348369386716722995742898539406835044905524105111335269756815772074980028067750876113339647554159223377126524563712368909256236803898686640801598144134032542566432156742599165056668416818763779231572102625498136952069548738238508656467749275754783813357125806678805540004295617785908914882792632902727252312129728027462427694570835632704756461543250133109323329679334495686125190412407588326839670579279950009244460903867362427643753346695313091139715920107872038904846099345353926476317269375348580535775478500138102203012369547944192110612105782696967099753640440184428123608076925086217196289705858196807533088653406335718315559509309789536761582771003520760548128464660867669267657279782286910552944533695481871121290623873254961309660257287559958909146182958012614175042029764931259804162431763902854194925319560066832470943926148855837401314455302113165500928415088075353235287005916431025907129279145305668381306372055506782268212484737427053841617165334070661257069421495006604263157509261792538138079658676995378269571278853171730459033428864162230640422163483945002287844959744014176907585290444392813709234748885241866323397580345284765862117627639860269398838675297532747174940740562193105995501125579884854375202454072657278672529531496824646600079222888204362243350825386009067168387306660750059063213598089567145920169067543418719287424822114371529060802025678428710928323629083737320621989906782396390715888101215221741996729567146585496386063239240523132943912932477370703684695502428757452440082566925235027797532260679768961788223125539390177014041320424032289105101211558517526392902137030179378019692221766431441815044726826098135638717565252801198753483099820820176031849416556470037029039424161808799882974358384565105921589897350502324483206079899642193321080228374570669650037552023758151584464012412768687443055733902988745951019657692630206578600952669367293979789939864121956607470428935128876555423031708148276668991404091694750902723068755680557732017814169420723565614099822503760269773700478907691705689377170797894572034469929694081967661969894303675098558518984707680116916272060599320907959653846083591731243591932151383110252047664831951449739203696103218170506524873840995125804196017941556921193695696158257156344484213807558346918226326930955803813149180878764271330569425213855018074987411017358742987895036003722458266333448429696252943424524029422030664553568587316967965873402046549295261716717685490348699885113105241706174702824775975647185360447753191574195338314555479184880116203096210864897709885099836934707004645566838589805451398698317759191910208166024686734728147105780253666577050961499356573851384694844534092923565479668093566902301338610538902260826257110754733778029504626807193911751275718713494154049021119756913071351579038961895900120190871760660496721192569289166460149583708075216298643064007594449068621632616791707891995667948808842865403579697475717583263454358107626690770004421389945319770737719683492626517253726711614997241746491625910668365236227456842803928738014037215632456823486181278851552004305770893074981774632089579785857681689941237084794043678340418124986830975830569897897505485485905617452769640857119614110773908939854063219386034428048774997533171534469691260869253654062872164429406866078060384254316725581383323936626698082209750118927930141226210801989126454599699985824527098001887713449099121328553609494601965674837103194558176444465446448233517644940584914168074771922728920004158943342429300247458270110012204319363286838182232406185575315015521566829076067738239330195925068304848809607148302574941154372290964618588405370013586569507925441812288766459589289364768393533596801302992539186394892768581014193983094683035219566302813901228738526755061793159663911855827764624017572600157579545311569232642727459252024561874077855492400257948844283961459072492082680063799233725630233361342225789785516939834926767745197623819637385081362844077471687518045684679941668251087895433314130495089357295335434058369601245393113364919982137316199319592087702888238165037818877242650653032770022795441915407292202592583464995722726816032276678657052237600697083715141472100042214743385447248037582975379595946660502179381764910148853897295145225747079626972230452924118648241231826561753706892527151687739252871982303673730726899461296834428406216032831721613777689804145958231865109493266064627678754724567147702480545993475598155940467231273049812245226617188724629410669197627876234216378692830120283302037243861606510989456318007157226678362647362639009286114568762773607706631390136579792364392270062898809468274291497736017469472773627604028469288108107785348284406959235874681918388705019128038860306208774048716517982054718200638373610735181321295758580062759387869689129990170770805750008394136879209220941021301021837827149156606827663080788071883847217554477160792779879785639804114910123464367999648976277878596377909465545348487505601707888719759245723265648858543568415625269380881983658513035379704781170970835400877265119067253858067989158477216344431133402535168369268249170502335995741789896532067934559113147860483654936767920377602289717753458467446952066512446092682159985085252704854954119239825519996352310686228377559958242167387999394945892928904157879030977421460074072158210932401828297546365199459825851252931916418200852550587823094334238093285085223426153791347189415233123775710506628758721744372353578822419464224098831891802310431187141156824122818299074886065154765451478862195450413104598907468377040188933738806040692045604131711370540255520382671918028453076713193827824745672620911828418694934962489318449065486564872978512589212362308601370960065519653563888381466082062215895245915755300089580292392372051997254633068058775744804385000114879101655559480137468137641031260278244660246534034689751348235756639989767567701940630205542084750119685915425163394486833871554641559021535279301467459456830500598523307171606846724942882713496576413026225995084004219928821108619893890724025454964489698373462302743130438819207606671119911344909846671297741367324401137903596742909656093499019754637483108161909115135553022334070740246674077463442489533541065533439129849456326179622548707988591194878760931412779065542911752634649618726828136666598128589372259312114882875317261620923842875250279391072312367094025879733571427124305781990034768349271436251329655003877752388764811599542778366964126427730880552367085841808343541324332359164988996666186427092208682488769115127549255906536882731705567651059527236001293433764282075278507624988940228462286865340947125684369703151660742387026770261567899249591138458523057453718634584008086861510591199840489306604615636434037809192966082039377175220320531449844380920188140844102164757932920955017025966071156494492546116065421350499374949852990551334468493771284753167099028369101271047827944703187617699656699087127923466250191396863679548006486250255723095195697374977438204497963536701380677135772807816991889027056113294691616381368571637269467814814542992036782757033643905570381938752748364558002931900068025796477819514136003273742598298763633965911588476686524252363731413191276312283097167582417696268762800059190250548813614211584039265840419174333218520819353352016252872599633607714168641460561635523643636548115385358259844390457732211584092155227589926065793974800235757260134606595261679047653268832939019618205536113070422643198501564341369747378583527485514034678362837378986268202979295974752830842352427851896327910078427876905692778540229970845933165399011969404663129887500049833204642740813096790913210946470439605668720177652437628752064367187513165535480698492740889570767362853754302557360560535798700501086909567992980626213795974367034846019704440802432470882828800913903167699372617262272834352801711150101508026319447754804825554439798137315598458755088285196016913054813953446190798272582008416430566241433166543572456342232942708824591130988698726754545859456547843881615049518008033398305401569908380375567633405993235325485899535945993656688902418628455294794497865987796480523320690629493994579205069430485979180819054025283140798867890433771409403163033243597777632195141135305422966192516712288604914174854685112015360833219256151079383777043278677342131247041623432368468754648087996068043430801783459140636267335800003709934600048883573068051609287977311405149957471486192162925359909693718736854848489652004853012493320353255501282742276073116316983791971141987527018017728787301982968317574401334727374872331746352642591733531724047950564606828589479613024852410508821525713098639343247704498917473925182711840173114635339426547847989785211314857960909405726094468577479672506797989504616128316670997067939045626491701367523917937950367513334471295004199736871764617949276295948747726462114181329935204445685901928000426638302565694031638929007765240481915537569788280116332808828333124862268148511618545885072872331959963790824675774202097722103745176162275716416665748665481093759332181258885063449507462725177535657597673348728536765387244570207918797889822177460461341374944271779757218757432765088506367801714748383271716983842175058680472252148730584573688531726753789873734826116679471044798821135497546714405121975585920859733561855993552828769194932010587672770165275146425450055584347121159124673144248731544998050907390638848468698087001185133622197715353250531208428297276606482016398211460604848959100386436849716973551942465798633333200417554771282297080756752233061624483306107383656559592620106806106960574508068469945309438584887542222771875690044763002853015568559425884228152153716756678094462579883380747968743115630201295493194713279904719037167431626695432900827056417114026368376718354277657369955214199847873541325027206022070040985290451898634364680976719388821503244000236004400388272968838911144867752598022674825748995790060249389644190879286423055593421511874935955183479166174414787334687191708265595903311196944821086650539168989508131224404354001115128817610805226041987423506043963150187988194922144071032413948869375695869526737604644958880265134306375254983863337813928503212673169125045031152649621872716414440442785923040665222864298703937225994919570564246053435266635789555919714682826587423727949022771863014497898075136644907228585428779802223320865760781812248776406587011993019752067623090943558347234743637133618326436253793459496285412860772807324938740716514226514930158578747687340739579017969363226983306863537734555435177584040967983116994620147296929324083017928591956244915294128413351555459292783059844473433939860294673755615614862676286457314049489851864989219908510134813075330769532499811826575503502276842893940817620941319013896884427048699796622232638948303199683270491245354825712490544511421933751049511087694930152317129950366327302815544502492210992585585517779270001611191187122825316926758506759677816400418152545825249541661455830007820049450802848041962621365299720877376967613507067729450237887020953341261211123854953148019138159166266693922272661218109876901895596906045067156494159288428308176908650041304802340350956806079522010620387194410243720635468896419363288974594792121593241595003455373833747794777671888671463577109005762146405139312788274115592051542267316045571358526342940983912306354979650328004597352718694461918065224989898168692919473530453328336075189444199157440975482702535638544519964929897020282827395557272356520357617186366794337636127305803927678008612624171380935925968615779581828414718248827868434403648520000380073246727620012535942362062088904370055268218213282935103672466528620557609227160051216665259435577699905388184225669254765579405765079742306733876931690190095157171657949923492500498758347634864545921328331335968818793592267957322194559894730796751213376981439477834570349398881785035196165645581239842558866415586631988164863514471448427199441371162410705740622715190571797469688159787640023289512003738697661659032901308382815260739356750203897160974509488649460465405295092627057713334613795169229749441235403231938904079469079350426022141971762109429173893493924170825203009213104050491897888292452494285874603958073594408372321797243596000589044021004637389257465660576079082120567678428793568163611058493725453866287196068911274939974755442276372333844031981733162439399401768823230269406613311424252275805717722533673098736334382137371229181808776589959370570941206326125472495721823538265599434206361150785906368034215599565564251532967088386719567744979022841746831290089479662599106527230705997316024107242155766837222531807467482317879732942656141357179268244607717238974969357098596554792427738966347333559691770249285342132008252469415209930608790791244428953965468166598531398615648176111975493601701062514605067920500783412018634940189791309365637641164781658115903876738519201988945085451196934020053034652485184835907382266029217160057441775253880752831493292440159926199582835508640613227665110973746722888114652437258539886822681097498845047096721829619337760800558949065465924409336540897987778966090170144647028606326985465850015549669513555839007405320337191147751760661961844422444613383752451670360978379972271963675867241104480884495484586257844851941442693952702138228348813042742795050850146063771204128179296559911193723433778775393183064571702913910322107616565028853878009697695120083745593641872113177729342745065112998962175555197375199025656364981843707377730146741664823210647762493301831871687499252418244919422706933013922465516844542971892040071451344052730452548957592411169004162970004442815463120098055353986430838935702589300406354310020056221945646318211413878436283857675993234167077873160460423804810444323450816338652525849319648519884703159818269310364892130388619238838862454920698976930771888349493238752874493470707262604559194218894370607276139477385492006349809207624386045384254723314263917860175645758541473688985389194353863934036511305863469474291275141069972714826341043154270744870434997002489743634531918483041880723020274083590094073218968494648867621466968707452489031695032242085096628815741933454599207369796958176292465468694264241436874044915029882220791352175914821723498767243559923586269634362469301874292090399238646730835564936167044400507104204630291042641780157781200886519357175708951277454258955836200616485391403214278771643496981727762551100392457006177410893622046112138229640639239258816719988381326313925584931259475613436915009867909769891669484334544800562378417185676979795280713292411045108341149161981214372255821624995014035288216351957260805581117737770207078370041704862252714467817607829456730742716719187380858357687961908754743467184591201159059212302734597195116887216254430738011885630648976330868303297970453750178211681591272233922999846104088265883414116883031075527310181703327233727444468672075605183620875126545350255439946204995616795406849523687272786372854629891472004392403745092227747420581093812044327444935416421382327046820342044275676098765465083207969557781765801249317936729564321508308267904035830195187227037143739012123962830686531730252431836811898409556308570244702192220099367868263156617297915108523452907102466163276999674126027106286161524463695720205895765824335729543382947549981090913636002907263896910239854095320674397218270420757054736454130466337589672583678092727571893105369907587581282214352476005694067894734566768181702371764255717813898853356696266985130532121514791465310441463331361606362664738577833213210214416342714563714932301554925397571729035254315656919033344670494675062038736701905076934152504855859028728187038051106498880674766253239455105830931644533786789150464021342960726006674198193699469956542248986070074688407965181765136213532334410629591143515886181363164280518358217269217039809463498804954878795248355086969225603030861738521626183981837766410164419088737005852903352675105733470216527262651287121536840870202384661824832721647463920483658267500318215326301582323642280928309349036757952060400010856402033459555922662423742337622680036764059033554073760388078752311231239538414434991856159892443923093054705422784165902027380402916668135281632404718486068307708290635068789599772402661968002872743617768992197588090215319891509818714410124604296524745761195988320561296719371484490788329531573011261819849145195257988042771401032363891860609426147542333286604117238045562590414575857860639976442036651621149224243907808509019682629216650401377426495356479348040622437503756072105355127564033955914331004829655735094938271838735870258713879737831350681948601581162104306665428245772244625077759285707912139121160848631905033330757074771049495425209328967983682955904244199280434057900251768279897906599048864064842846548217770586806310085215288790104088812394506248934099642239993246155016941608064368092268791883072689890183243204610495001148976371519802302904548340116897166458372498784786300697377989916554841709671481032452193150119291011831194634877666546339933311832891191990148388343875875037595885733992685362696604446139736993110521406988458355459860220349657010343791745010696188731691653721544713661444549093671048609350038363080091393768189561044518071214673742897269965008725090387445639184126584799469372261648051282910797418353028503140082598383204699439046028741898860082277180404579654161545950186443026167709078185559488259390949138151006374059596930891075236853780383697780603768262491577122718939523859305179058642574016419474511733147820506445550058267564219284242300740250790544362338689540203830407435855232339509884180397569075117883515358645338851964158945840147822246930842934034583400800265252826743652801941001660290302941312492627248043305050367763056745371437362979947149560851944174079246185819684832157282843643271712659738002320297740280595570252811941440642986922675868055454908897700269202997764219772243480476542482951907622823075471516433117532098227884424919402913711893703139146366744991246505494788517072160318823377477081016245035690487664755646204005108733894111112876473812230416998559323144351543587796421499045733076297680950105068024359322911356787938255914235819009261140399079844679595761978137032399966563388386084612563354008020816235991283408915968257020402413852274077654601762407365710315029945891018743438178482493575045895213287640031765997203494100729354748957825827054765851338056889299283390758730577436542535482520795040106626195917015281995338573758110369116250476275280471496050902038393916820912399016688290508803165304916951354420825126194008721399801406933847205292983593593336478541994726396181904671282921632963453475172234750813413121863196419481504450988697349565700106680551392926506308926366584385620968066841228201000932474495109234900516144956025447484601764446333957631815998448510056316326616421616053973490119864070984562123180184179302997289917616150066312592619919053952097172048320711039496845525763719769454503791207392736143473637961750686208216437534478090785546704901741910307447915928780604279683016471792414195576380332932532756370562914357223046253547392245481164225284139635145292505474895045544241177164612846414232323959833230209548144584341217463939481396584958762787139412141101489132407122361729322206018415824162628509896011848948109475167819897430405167786515651673737964521156011929508825347167396985691338442756743913934571650250035473864308174132311696291352231071686302490408837485344199568960599137906562894913760747946246791754298691274135748118862215091209636841712006771906859474667274461456617646133039714161773035327920335008798686092991031513010128120388570213915968137300205416280518372251096774938628048480025512278878730328141200595063022415425037860472292395320435077415265349699523119102582184207521194801962433482366480268038137376055538965578767241436366151267815558384813217998971432607972808449755658355618726522673088179411143510806003578822268951014154554370222632196377436623095680283160749523371983327083694409096147715283611982192973786124198330966804337686366590229993536419229811709927992237539275069711167146004350238028589786627016206375619960786614680802207782450297494961434178028696819407004593622553439841684099732512716538958085220859998935719239107699249203014407411619781947641377664578499342026759826831992573899180453292640268483192937603659904479526410751811502114956688292769412396037198038394453664140388292373965066963866580284991591631381360609374845772975895521202221989556631845106863102415222154953622682216143416879302204582349205631243795558111275293525081811130744096982326482583641162857755112320311209011721325974803622015227810625403085547784030971069955972855926560530482634617885550893226739859441400352968105862606582799926669078242187059689206276201518837107478473062183390064887718524223971328341398057100869382419117046456342958932108353789111263422112822391745437548214374214861964643037808706850820668041797647573664538339141467501986100914037850568240366617043608481057082712809989881942175820715900539112236791633846012421288665870897658651959730437966762666382436855778358790789918296276272195130132988720718342306759588120306647626222331840786266190327838251578644037189810189525795765414228421074401036895717437300997169684526863511510904702294968263053563481181481027030304597311529029616485583209853203732739352536075066205348931515434179886618919231538540685597282610467576900235847391171703651418640215272724199787232710264413120909613557237382444513947161810831818741520186526227350411999426542307084256740688913472058999049096308615561894222152232239311817918181874296756389674629031693130515731249218603138764739680986895169604140159456915555850601651423623084494801328499865602007285642344979695090578549911912915880501386495210748356045082073327394191615399321769326832745063230964714939798208009834970073850975241654260696105634642745244394201809916816573054899314662194189256688611504635738056401700392254115373713379229501071195662008308213468363061523547072143217700720508657681982662143656477375781333565596091525188293406128227750696127941528496850930925795140261506435885899821976346887440544855706596623656415742435706571203327183200017011013926433016744958814749079764427154404777096579272822860165131404619836440305338727071075458191507834158561052880356032843183711997814537627783516348789483058600982315571788098968405049523247683884730113710752943961770066410724869968983930550229366936214114874728350387237572059712101139347367612480178754846607065520868910789536536712784289379453596753092892574737660842491292994450295593454322716760402335086243297918672301529316925808580783766820933074299948966231208454341569611934149692828538723333875111556528059642941557344134911296223123026411650557326089233997655121917558589582947801102168406827086173491111912200757502450093438127464261410202036013228733168278391787902353446070570699666943573528318000536743726073846877810435760444380863829399612893419611576698478758912605826751560038859672741903688093572664594215327328116815641563276724183383408077196792234765222528059421716439814120088580649712641348711221158068805788124393193233278193655855054889184884093171453239266303933797443305385801237011074215604305398089738014358829559380813663535903449142789172334359328901109232104331205435246149073606554792550422533883121536479919614212665625800608018580023701045790045765615553463816622406661028707721038000470094131258766534062048332373155133393561653796939258649596540827062769578574698162109043286031065818659572596784602159867002387495158968920341298852249273414922653625382398754942283143129075666113153351155174585978410067668277810115081698120092712276746179576981944230570262849952789343517761482392904823500428182028754526984111652925833931250095903491823264924435555693277275406728509576183920338014406629828730579033413908033790969487771279537853456167778714835301227663002839227094962032822316363458620921189710993714079451660155860631044958858067835195731726090732828362100508646860138280986863663967220618698347380329621785587667466051905092248375251675927108951987875342304237583452712056213970735679827836972702465477170222894851703587551639895263700349041791622539713429048911125668031037904946661675350141980606831580911465488964092993348032071452721099519789478567527890154766811802814882585719145866129627364364408387618460675824608923165588348449636264562334364835705627432926095921783667810964121292579870412054996886319883042265241754715055146001626567418596196984782912619058926068381114196332419886836236998310759098455327588032413604452583161229999686960323864235947697021551277714032762559144833574370241138399238793023263208140714750407997706808101216229635959525319183792393196305067091892668851096704594538320222546658521111033779813542183714782515227125934262550128903557225290205142098611324960587029856784059337773150817234077860575361374139056967602996793776118598312477928535611945580885826832220806440253351525685357440436174920896443781448324811570347568936838875909508010516006541329047610341525063551526582907448370933084372527009147858249320105038045499509453958667945140596104787480898882707425111342852477510398544556256028583543482490205983168278883093258606886328002713015872579708326641934450263958733157947290650357241224621994379808485197738303737445138652957514517327160169135167052475334351154594901730811842991771510783690718500781690334738784305873517010382177513006591217505652943831647201026354372237402094614382612084376785443604410699363311763264428828595393824993062700449456342819305323510143623734129144513081227251433980881424559541087419870214368458089476073499009932827531757716637820798163042209064854747858869408294638254866557689490860886561400292457391237019432408513738168242331834391918901001149440436166231086713857140250908873426656247719684103067481622988114693394033668900387601618096257345657694593113459260645265782786351840865815159404884122484811612483421589262517051410816773860724386728937828222292823421870440115105818968085941536338399924011420217522256524773799146996390420618234866608131777546676899666743175471383649823600335765057588157675374208016746699614196702411034672064963780611742585167269518022591134101644833084024807664568310714806170889204296314828958029489085168793780621962468830301037598836690215351127999211466804949529031636469473573975888373363721093338284806872368953443112497261509751023060270596354550290315436235198950914694726268602778549632843236525897176846344542974961595122346138803316045599278035976608637059482818274090376609006086849890050061626276434046504844349033371648003683951176542920606640237894099418490745730725543333741583606530405855462464105256154032419941442511176263435339475030209030295180164931074004817945153019507871401995364387259535618572643120262238363423557718352264960392330087791630127358967286971162782385692277524257972259228058312392542036345798611516413140662169024540360613063732300092346548842775169293451344991818233963667956572272535875785318157730269049125375196585175952202714444050712892910160216226412471082188040261845711340793299406345892304013849969802745328682483958137124254506166515586570432426712143857914799646758149958850851533153343100029747378435116666807751150027324139068205630050871064467680209442882484827624750785371677863198539122739489792288216315241572227011086343421997164214632589593000382441653395367861325450738666456875867163232355867604183839944548124432858242816545457875216599456575231668504975504610188767125323569441104620599121263708515015376833910718299580503274984585927234485670170128304383020977327505193952663481825689699824959620342859896476431801013033160053316395303669885409214445230526821343148033849949157711478242850811842054247345195277798767177045421392987653765173364992845337802952527260373918729399807310318810643095389964351089793821928292526518930221304960490629405118756566492231308876356907292987779797133284410592496596755923975556389621720360638083186299613821712688538504075950186353340946729829111955504883333037259981009816922058789263063100113245339913462174393029463427003055306834285929871444719825496015348548854346617823914370577544037676723453981865537723873237278462783847434706391510304898935480943844324715672256739401287935697399101198301979086666652935906627959289934410616010482333665435525011629374138658665797071207515360129226618005024411735064306245464830814186532346546532692840202558230603828367505643996652757783734741400679796691101606435616673366873228487205942168414431180695114124607128103037984382028733098569843129843183204823452204672080611041260514401468687416523497988582982179926528639592894951670804011969908692787274798602472235152257127378720601307538844123458012515414073469642728464482495398873554171176068286335436956911451922016912460761228139720133021093987107239790503634503497839388284998632900157196447853054943735200522245003860194013304390031905565285363603640762748252260287896915616413748198977451940984201402894544760574449694854872415715789820852287980601874001311465081888716879993722663500742629916302714058206487891180876776504096934716771322579846710140859098384233130600766549564340315391080619416204456224683397728294611757141554774249399647735846194782782362819757360953352565834895387185905350024248386445250955014886970524016875422817970916305617860866489535047987800871223777893143843814830658525257136506324628932188251699859860559002873554068711904866019434162973421462137586845934761771388638995161594908210877619156387190298077935890823451274657775621936342543198000201065682179745631446133127497715360548651915050430916953168841972397439626398099595666390906957558427496395108157660424265087132367581905552164631293779561171314499034053756965127979666472811853537489586139538617550826351141568116604851430041269871847118993150071175323089227344953101315622047871970190843636247818418724982289684735844606512566014705190141883386843555815121970384190345257967748545233429019335382493337104822659440569985953082706860500490070332746039929798207376662465882361103782069733985586222128297282046572582459959701032479843435795329328079809407666625843895589255758534306297932928101605879994622491589558249158322721845328534919013637306078568781837923454994854246810320181147182062360311072923568670612928421115002774108221810059066268361195712802648556132923291741440305223233025378720571157587195371819513844032927402678943317263740824634426093741178286257344585329105493387128018226946833719834481417357790518174909707480663392136454041739842959075109630464065806065677624484381486317141407383155287709186705230433079397253736062176228911950868141744720355318410295084080767880633355406120866079283368616720249428068119126411982357233201250695286950608179304746083556756582501784915280130995543824840872546201007480541982781343867384829094624309126438983923295956360964395613474367395532391811556039858829774960826396301824856775910697921554481747186438660311694191799790805719830314685572519930214879196558854953174842697492312689747211397828529157765687162455542833982393503915659184783587668647951907333785840359417585478081312994554845590704220689356908754870781513538403981516649048915325872429364653404846363335728381758914456511065468706932529406541543579186128590193601664459413873676084719923636823571820621728883394927288613381710191827914011793373062970809281045713921045903435813931539952078780409854611955735152759214852072837611269942837001602376525951917909497203354692352800927197368535242793985041615964700043652914855001148653173758298874392938697745264197141351773029387923652666691836867482408895896093607480122334584564344857378155351512543587633609878237797768227807175543207618606895806810695760898064720859944946440259627875072941335142404903011536231103377718474642189182120498416968310186702879148214962452642554568455222325257654467052951408341056212819013598978920298270064778932603536766224136483748740176401235184784864798535538603716909225411884464094944263635914764689024578406153129533709436093138727917793548584708596987270003635150188470962327189953866007146027780881954918921613673595951224160318208064519137360295625709031770493140392635956433318400305541183536229963234845170781264217916514178384185346884819104290280897515605774664569771419924638710202832703807094309308905234760539106295541180635044287413161771453469198099752853802529825896198816529987856727099528896080128179335584798860680943680501494070089864243132082174289829497555528808974526982396387443716742698948768829686155228412200851282458051586570964137352501570823005596125201553154471478251213714015377142882142622130370084639259371569123957424001017361617411717407978973870090151791557137171985968254495850668417798633461400109390791020388665945878472663690279166192908002115068571135591952726456022597849195383170573540712277163370647364027930919552209259573068990733437955329040024264165975432097365471998833889726794485755352639858811988479267470362653586168843138407514945287449072861918633888417854057534985173849447585144810385920699717680814351461219163091072353453274579083201788544932434910201190381392539390044950534152570734592324329541026745379769768338547720357966094546377606311537575267328500815951838824071460610833932983531245798415658801106865847447710324668271387169607738873008547468357600054659347658542309128348637580175907767727378611746157577831070545581589951454885990623183001554911155213285354095567786777538135558298964751478828628920462641221255606275182712385356747840753294785281364626110579223818391343573650109473192731671395760049328823992662158568130922549564561320486471101717106169289068201977603816959574247362038129772051297576650351044619093954862417876554559221656132625811043568136652955701364689290694138937446501046567647361713323631029491604576598688392753134764646719898934750811657655143116432652926787572881801605632266328089126799118019099468539638126257447871472537636462620815715337376262998417024235065138382941654524604847443038655934002598912066496187408743293178054293407088151560172768746764606248431469368708040566816223361734123969767906020930440381455582344998173176334399661211962308207087020347396612435802754568727919507747210463253932450671106014725183655607344039582078466087451357988512284807103233194029594895226271177483907828600449848560808657541723299415062296775333688238434993103276436063662758172262259450027497610053529658744059650950792336510867002993947504613430923153834470016723989864360015476621616344309776209798922900824467608949748946103281607181417821628382970863934569344463507296137103589928114593301405760852351709052357437598730457007241640228441995330333643200091187795169685274739185808827768438325699938124156620766320162398230149431742111717010258811522283023782042242705580799280930743279885251469205580899076431343673378487508782638159942943556530015710861618654981795727895409518137157743974487187377267632759657375921074932767109199936977538359631442504229242363734291018973061431235262135811125717277667441597696268594240936961098015785587592502671417771087589034611560842314080223807701540175610601635533867761754531458053873442250913561348039468373526981821570382044528734687039061284917039140315629962824436738572094567417764337886621860198812409833546145480717981547789248450867647810531309759226540655797232922274441766840851187985528011735668946775932054160141264306789457642666235868514351496443948170726074384747084028587461031956981096167595298666727188214654198121480586724843559899095364963602719521917312095680444997102294433026616042102529556149418416852425973693044728837355173963180482153686845307387693179209979854948618245850040558696590266843288723447819641099078668383485159887895904617886484041847967268606209015716827871642338624665241134970118911684200964900372774184345514129995058279462750215255379547749887491185843918365773820228320388360476396888960324026347344088721035237944703131636845522518107706021792584118131084844980027252125016223576223416092501676063095803571537238771742044332253068573353446276152162164233062025581733700642037638992291497926839692958800531363484830862525794598356266710068488673534974033175454415741232983268773829256775378507125724844881254888150799844648287052336721878694537256604582736037642374524452478571052837869943128132133043917140875775346175322075760528806586017187121943849067142010596310839776669803077708869454232005102951420531031522366460960458168167274252440512874330921381768972323795333945417221893886159141886492270138795177514734498209103315065861541335594938440702894984823153423403957705372316631965318243120214230293916972238284686181545416667101213881230808251181765481226743768200538943952157421980213286649813606097133227999765201851711752830239846520055287870392780267898082319111699480638898535160821500650925622240662304747830602689518671945343361218661281720451821024975780214467295374011133744559256878052319278611054641698560194713896359405737009926826680979948541331044605147012750778383913837971410241194491343955979243456608390039342121588277848831524657686557659737920445437800682609858899250943257745467404886451203636508982655188251236031813789612018899600401571196601766529042985777739344627698833954952222667025184700103744275965663949681227999412943518436863497760164805216934607842065382071975556558031161601365842445918326565344987327014606661944592130986817105696882203397276752557614065388189332115447014346651072097094912892078600521101657818181582201885109453279156993866622239670043892108857096742305053058426096075759791189114267541005128273591616044595336984816033380662163744301528673014360582688656078603843706266950227253219305631136652374018094616818704568532566555738521291764562356587079943327547828500127271218847947931854920135435599328772249014315931236141985066545978524394805585495602212897457970812640498615430657228482101828877481678792243637277923735645392041875342235664185366149353178206309107506101982987817724611988489237145447529627114542700327222840507158550993016973290085161782702773399283810533062886340969526034335545014018796285171377880724498841451163653844118337454584012636691008113899746117384539601833956083456455641460580169333493815275133492172376815296480110478454214146639446180329614854112797814868440888546071772532129237559911439738261394939390902001179535153990410200610170693393843295360073838514186841445524573822933322867303587896759672114271316592541353843004956663934250239939926673907673529838739383839423563382229741744201057640808400029921566628310494269355943933653332255742146570944435097095532299131431511248957881090403047379031901559577979454268076515995872507793082528455891686348649516788972109369029007789863805887678296893396541022767659332708922149517405035111639687481393450090512753438350015071843133505100244834472328363907881367501140547847507046418756061783795108993662351327435432198366394859251828992192775325137332329792247036669630413260498020573924579765619977845944255037441895356519747099502927162129014716659185137109627870346293975285129759436191829801218746392341842860645093303126400176222976911328678714554285130035054956806700160674988506358856696523223411831933109094000396629401480835359186152036031235859923559558137604981020289655254786615771372006458917526541050962211947812025083048444329757543675460166671829232604877695069967013946257125984834062427675376823703394638772510210482287604224950954807625903564316925137222650670536226624434501970740759640858869460117579572404703011480179079527090064890380410619331174428444481047909181877377662755062847054202379358360591846998854049633370988834305273800226284335591564965331507422378131108398435146880263708666881387777075121017318756984833146130592507625413482082880267081365258761805692489238418266231262766127672666085023546271957912555120258755686830661275152298562630175362061513910471191406283288653943651524995186672899263942677286835374008634756745092881354385770661664841938493554503074902193670295606801623186181020243178783495404208461989984741246835981250946080951065577506713218848127776027333122579079820489028462163065236579744372452247139312283264395684825030002329911380459966459763728040768383962610261690641070066734310684193850358647692736109091505212532641117551030365573383698182469867971731706712354762322721736748389668503751732016670767005156413999365097140513987535618363650109784315945121019508814468589744429371629984913416763954106406024545670153234573704980519504452465362835789911033854729759463995186132078314667787984480322143150662371984743995005676069787157592675347834633342473339120411549851176787034177142606397828006853072361707874111826855233045508234160713400874384711301588411111968483150608496316922459898677448345527534735492619132484758936827057242058133708361922521665630615217469270634069641551801969170378552485531489351523892302324302925432825263025353256928319041117561466981521719928245226493342124692436939980731276249374005848526407630644277665254116984523577528735865770909986384722707171647622623759027216306281044530637026693488874841043080873770659665249006178155091158252098811501093327001753704523504998083223794109653549132296875678090766254287543466199300030480263286619028132443239915449518709334878736031868557830105638770522965895924852991972010697554481699719167164854783246155826227835439149207441127176899733196468697694058340144628914796819865261018881283879625589272609836682968533445186114246357643371238445463915912320210671791021333453415401046906351693451019658205780987575365355211196959398031936946291696682599091522871671732684649585204513398849625498184872524299991429227339581856646468124463569976837103332049446712405254668569418006307509583854907387019235941209508061358752142393568805436097578133003501432681781594568490377531388675501318542700331788347114889749790502070297002431283184522524980127222381924203481323595713919578988654450794726637464903908278913355533186112326116467278921944787583214318416387573062373411393369961969215687602544053842965445795678287965394941457320484523404501190625834611007753248064993078266786426405479982440075137024720801212088162947496325128313950025052556647183935001844108368228700906366239570154449609419685394743431176287605252156377812638341345847618030668682980899591783322194399885704044746105239094005002616501976330954911164062831332256850598165950110091823843215387965113122075938672111649676982811912898113845615491111644028613119550830268770272869274453665086075625698157351959070328521635358024269456525553108388991597032386271429309069248590061469695790411131548241314085557800628324499172044280112368912487316505491894792954474632193197393515453762851914553691815560229326160164746621691955167484862439319090572775667768036632407748978681708001838387506442713954864237388133697149491946069600552143903391651185716261196967185165271347555044975788103866109274532851196204115456438966351525203667188977668841180219016617870403905979461962842091491015293386914598150052476321982406717749047844446443190964013185665613893079555516602426131714715021843465225641952623657801407097229443798813083548975811938177785297245297663143750411401093941229045920654729487748937186225095883777474277383900577825448381842855465302581591687551171625907268899394705116289725273660167231650631440212630122629889061658216368134892304161840561948951622554510819957672841005786575680182198502343461594260517584649440699522443998374805775097684538043770093114878147853304992641911554906588325972159522753053994240574389265247549840214331709827199686999338873056234060943084846965776672443715328139372108443956749280787753104395565113852575116633808243291221047802227038689411563361775065153907652050696047781716310421587629027446456408849955077200703020608991672159957042259581705516357047686265914213035001108445551369320537267802539997664999278739184384255145602533665262424833391895724456326987223964579368556434644352824508266797210015265216747586254402935351265317184221375003686850798699194636241939318799274664867093470890956639929276817721481925793965949301510958098097058198358436712515324794606107704935327327922449796085332583538437147744797420041386901964226477561010716149588233555112065693919272186909049139252275929804293694713796043187920088117519505323220116894862869649284721565834506003619007835872493316231160004873245126314311124552934444867536025977747447828506441578311862883033658889519892306104675697430218137972528757782594804582798297562087946074084524865657385321323267555327605994179420268341832386157447257098188169950881260042639184337054385869459423986992567908097412181539032373756477006385711841979192983967872674528554231959943010426652666431159392450206145291822660214647713901737875076939647916969925605401057128043982322598485542689773674124673789700552079012433966508537452271841944351364806244084066178682140801590212672610209272819125569459930623508873819752509827014344902593422097101821632626334391891106724048497454811915918776255911774040483673827116945949245759611842413808027307688261493816316550824653129958074650337559322032645508346460936141071766556908940058733452874963656220803259429246274750814075941297988078395021571115498996025033576404202596797690288412787679100848554815405126382045846879378994023259468926517424251838452066603047164295390207027769173654452715259300756937093922411309250556365788843198333450796451388371521907975495664376129643756395019039085355411314080620651561911021282977459256109222896392134287038782207391235776461398043949053991171980124718156957705765319714460587960958717405402361399980040862138248291535688912852118354640550340256141322208377908049312058403156485234427919911236473121087773758182553157673601379519284336530672867173040852633667957715923755669860740782483292397356393016138745694752515164145843465754300513284221504413021377244971706083936450656559072095489992207957728326814472404242417977578223307147582576897400182171638194893552645440112949109822235651775488823583331098706648278249317958339810740228474979170464373588677380087639350235578793238754647446806403511810197478819125153528770828304005986675477742376116514666215827187697733953569385872174877240045239882326127768299051661562276050951161501972162419974392112803779258954959877442427567818051115854989242060196621561680736576020260794048102719318113198691936205777495911282910292292564119997276819933420682325206847277608278397852680380442403807564951492361063769755988408646387579372301863807266353234836549925883370013434011611829197076264183321034101919864520703135783370626727764293750792835579918053631788682199630793641146100488402901612738832120727277222187474238072779217817508367481742107391407945327183741302425387664045483631544675001744907661182637708040896886872292855331001473882783644692317214398066581445328161107691520423348587064690124101488684274405466471654107048028394177032564679875602246831574631513320738600657242984130099627570119981908261615920187118530590005848172731190337398161746716516275720235988044581157069591199555263605516493823971696961019095745263811274724631835665265315993741988342746499876053055164339807111775268899866219536859375483200271451710884812032956153924574349658062623406359787020316767340601835975538574240873301028321851760658032866403097222700539193307345671480692161858570273318253521896148267488888158031681701077207431434043033119641394715003998575462336967155329457431718591458711904929919305916181318682129690113443927409063597254514858033231857160052431427608221425017407716222906499704308938843007531486300730983254855569202110596563961691805991198856418135101373965278121645558197190662300052833285021266439146303641890493665438017146114747946921566145042894470985613377654421304186713806507357987780532978603502040189318067482528445369506329296916306606072006877781305115259338132753216563398960234735056298063878409446948671008255908783060611996382682134041573225676642107624371370268359038314101568496694848173753828545808412512728782949335755504044312318911251109716375336346435944680414655429404036164947970742532670078311272666909008419862123770674850730072721209670236120545340721616311449992003094431497229083722974838045804983400396659962084569075310826838455445886147142639967623241899724124247666356891000174962751119814529476403084601874491622891031875822919305127364377823712587882274887055540419378477717852459909001199630812093202700262046181636250111731748224511784682542768419970125075009863355308056802639969373905935782592769784687655255385988543480255344298546896491741800017732787291311167243879557641081014129092667287041448824557206671092838699187184602978106539818542564201365756819559818837660051585744116147057626957098939228232316394508380594709178469789448624864444589165733523010189319851153522601418285117425185286805878261661904161738887694291706164675824665020094263909636764023154655432880869809151987799566893317149701207646881621133282102971574027494813546668887909739524559408924681378391555450939809006137960497952200809741298701081367129663070440748730372746085298435192061988143218294017189649580812205987530150166912084876708437465384385996070834710840947146657060283324875094711376228769610143587139752143339461457245662144704282119395390053957633317328458178071874032769257498488538105674625219449572623952295056141673803855801795057195891626272067902069273736186750250399915148747222880663107782882986159117489992645227142821730847942374207202611566126554461067425208197765147366138925261934957462671317093337274197454461048942762720917285757860680250688810728259780441611920239080736234268727781929766515725388680417089650486714085791750219329936773682347396486060350943272536886056498121232243062977242886737979682890404336932210384117880980120425093930644550270168880569554688134023427396087285617899947593778786674901169493841076203457734274708443242118812338791133510770721321396488697347040116531255483541109714894504413889301961327608312368289433629089060776090005525857559432156197338292030968240049992783849016964920416023619056203857738167086914758191682251528448129970521489252341881167234282920291730735885624737918310085486623583986786620834145937798776276866528806568551809673559787552103098998268447109760015264496271904441277867739764529087367825833632685460578734389140851737255400435013713890900260662628224324211281281579735176623160897662381521390179917363748734631554550387568854302277356295266519042980409881765740025349723881558563629720899859392244467728600408397992027443782147977959870795964405239829457637774498726852520006114480294177411420391702213963800602147116995771808162546919911368352118258340718462924292621452389161491763540034956002689417828164059040918425486169788108586931768041610810089766821168814104436884392928466493483207050425834506033760645543443805740715900715974576440908031772049159927906334561897463357934736602799319683421915868692631681718681863395930182371448019788819486617622550572413755744590460386338254770445579753758364697822249227612514088929334607004654594405387460125578349391552737195787220461883113584168722613680956977653789012448715815776527124214352971689048636963648353553949653261312726892280161284046596825400691730758854959003601475810936462247023887982963506896429734979542139017957810005312525367236898341850491235395538816372902137095376557500255735240965392643408940349754582559659753643954248182957957918905173164168604303779666469635123940047136056366002151863771530515215331445200530342217373720406419340766983509465267099848177519786404469182373910244634524100767211494794393912053498499556172434557156823523599194338812062528698579028088514422056797772628117003824123895961913226815772531833866475586632249821955585813687197680502346169287330068292784125104009363912519836141370483073430453852939015737061111180708263965886292393924626301768443148354618114211033747483272280647351081229578157520956076176449114184129702011126233988010868857692929095881688007196452920666037562926491059282236298273903974041890862415774938678135708246935391023083899743583445440395898302931895300217609870529993179914797397769421379023284942794659218036637132144611209163985550471848358659821557982431208099962033158069144922997580551409095070919468650617213124879932943438205970840289252258413524200714348545679579347625709474289532096226472357415641085296201086890498289839833889604018430216815341405046010691602055470510697230966427627201533707709965885799466694604603924325335340318389827030818705997034433824733488719427202363021882105944192180793422855688532457575639124072061543434986069217686081719217480798174842466202583834996823023150197252531476845658836584775721587911779118838228208864786582210896266943834393466716702208199945516092924526093052952671320784031553360245322109412083800837216056503518852028586312905915544921132574704266165692949503829893521625939398540384834497556490451371662741634370072544233576815111930245866242503375173337023819197441257684638975637987264544727191174469191444631413055644433503003378434551607055588491783375702203126554958180916863530240086493298496289246629306254287573076921288231907922642383546049623113901227458094838234348298435307853664214860521280706926406427008318316732261761696519185154333679078487143010376510667383953757059289116953869422849762429136810334458825518710572164014550053385531124158913661024724829845453216412581781472609422127530548562467837306229881281072372717346641911556247407520880535344525730312286550532127509639357105819518514715676830180444565452761836204334382598243570015556353950518534515392442126140008623072654359237506673154533319221574381994098092974740089376940077749996053599192154775999999449342601917745085932696821667115917653338202741155674286166531828645868674338171229435223949241606739815832333702756849720778239611007833907871624516970983648340248171411906020411578336051890403620236134721578987796793795471771157277299543272188940947758270767109966811396388038546980652840041831121652623546842190959997300605484112580107544104598853071980808056441867232487216223368850729589377524660647941072375884648918086748152458724508597668097689779397235026193256164160810746157898641583841641839300621034696325765952243982612101746352590417176531747346236089068312351624963521359246968413632997520069140643266848833782018399932975186561247920215872964569820834484376402889062269016255707139881493013142411205688163794700030898845819995547274951666324759320467182707124312451413545977042824214130025464511868753103114343584200253958923053831330621463755839748566087071694311712167392333911246529071822445639636946294108300482432593479661885448886653230845602829196035838605348801480450481794781808823898007160308594959294508417349758601770765264234805012974124337080108844188196202918390463251974425476898374705218345039010588197204776263152769452705581403751407699660244656934885110581371412081673474439633986219945009117860984552928174301600292892242274367861511031728051967580092335701090358987185235044587284027870251233150945492940397928087061988156014825385287054429781962042259507049797708988312111521872860338800163547107379992175531941512608171799920897046206371765313566692128575548181179892527419171396737729001353804314261656482400085778476563792121876770425930500496348285603849718553374144643297608711064042981074680946044948646789679161377741458192850328834373882299614453351876675410032499140048361323774984043959021033787582385556433196886361696879040637226001320787450229503340812679671483465231770590881323911354765315522336531389643957183822184192321034858794089627692755805690651228152777252175805711785644513314540476863543835031448005173570257269684354222723101106010241877869419273225016543458726088855663996577015408105188655195803118456006314133922016279314378955285922940162876597771274394005877093035202425465182251030701005398907721593667846272816189237592430234553478880675941088013817255127691620576783829132491822948503872678501062285155851831509015221220960866126056481366148410297456766108516588958017258971396062230316020046934993633022353471582864844633006244291078644303459277523389915750247693463227579303130115544143649214835653729620223318922318525106086390785256016298748529029869955822531585790452370307777338655961246173592254367282648685814172044127595105237039162062855844083854999304601060325763818221847404762503525260364204283499931259515989412887386191826751687839776760578703374519187980443879700469575879348682094889976140095448811824639048919805627224138886115609113133761039932863185738369626275651623008341264063037270423715813281194731178851338110355942512955194455416255769684572933726645010510441125983235861223545489068819280891519855745893425504378451316054812118674478881422393554048447560752160766350502716122312825305555592698910726207107437333577140616795321545723077455101893611971385962348024121876383637194478330349449446991158715307328433765082732557682097736756462578676787809463032508272161278917405390150918751253207126130358512750522581593294872287454084041753896086346696363787864028360017476799560887801296135614103915632365598621541103422578605244212768267093558701491676454995054527936419324978445525116574434588412064166856534768901454842448381512697750067573285817400322458033271551993343960412004994379653865647184731691138424701657659982530315360844609821459387818923068117086768092763840426947618009427073482807125328158098778413146794607402496359953744248184297199440702148898441064869226822347437015110669569560256437762512027128792531426092399338372082941952546897669555294418046925572176417629738281517044740854709635530975845503238354437050612403832541344297746814054352333154121780083448462117536272000621689657313076857951422287498316482717519332140517693901876915105174069261651025322785737379121646188463459058386676322603611698537297373153587439629520126880927642377703151003133642611188469282738783015537101062745563801875347083935570588159732799007273578112108990882241292171445021764404866062670891265171435692266738197646393564953239412029627273555102786144269134691163745337461559194885409629834457395398111657224995401559926798740874290541048218738818034238780377313562273896418678353446639761363559770458736818955011426353553772095976583182963644809545069123846340392841508257283024773912644771312278435373913920157210089641533599585752009963213695177379518355378411873527080513013014051788479708553192833610562045368419870871182090725453450546926430798908967424762602416931380741104356245177124469847373245632658529557740284645200379125639673822320826440656424490547401608846897750798202989548881912190322303298061396216183195737718558857544720086662849983671099528234783639867629483483325175030421839250177127557394999914965428963125041782031941524234238974152800314331080288705084826491362853436950050778900121902433465585208409069929970984253289149036645324157946085074408438328430457776220000288589337598352846912754474832591145365378406254895128665237702460462061918886211161015683579325751599553457746403835249320389300597164664338124774719329419729150090655979307807655541459298414078901152012987743612216403509640593348283161176421540255190077680542177855977973014217208196356092688815531930151918185473557847925687618791446790126103003480726488069323706298554246604426949859131141397805002800067344073888544489911936550188544232429608122409227993334504170798937073526405375773198934653085637942299144589947538357453266589134716134301298142008526796972111102746103060460355195372866887764613508191773201586874332625367975603111982514213877263521494424571313069537545450097542827863440350371347452463952854111835281774285341605770916810557178881487200914256461839976002641852635393367076956056825404765236004666350150771187268983229011960941287192423415411628142483966904453726055339563835060605287668420456807229556928203712755115347296713116281177848127106058898444071124585599431802837623816203097472496650825812173860628970345862991110231433164968464453038934588128110930354662551009591512599202375556801907865874497044013602992075078133542435460853145057981051423133200891157706661154268339542599338557138845722626610577807531659574333205782277350516171907768610395472728773398063320198604300412564412061234431109335708834824959984994298152698955915819726317793921569769763969679175307993393645130850155316240384946508498490934531824589755104882408323138092337956479411206703238253806531180788540701661811614550407634540347772370243408734611087329367081407231443441525101238314443399936707549642122920456161659425037121463412727521296846687949412650731743905341716739495018449954777511772921774357523127098608466921861178466754041503231539080620598676300809575141092017418252901712402843207137447239194467055553135918236067343009777479093630694241590621602831747290444373407620797347404415894575134942313880495572603588520839041442114878856393308578770921457043167515792233414235720020951949228558949424681082161297205199398889269495577145850288958766756489402607223036643838407618659605745687848969089072358012033813109641899504914648668045069514211922311647509196599015390314922851687270439720135709813609130726656250950527810839349897175709876172785056181998891321056593471893787122634552230956471137004942817139987606944302829442858710149388183519121699716701206725004193604237494159219827443395922018117526266086589354234829188084003771323189080481834399872263801665651557506263220968993477657410216036440211747984265125542194512445173702471559067560438790431015089302166790967629000383054445919062300672392143859574100466915547376098985822820903097932427338554857471666971681220898330676774691437547285238518689248957753644067632035272888130598702116645894573359249002522551084269736557109617883050789660448572015124038274746180071161061251840195991301972136324828278296466472418558220476485545218164087468560674403182858173485580581555632882331641080576229828070614016680818375849755336312354726773151260439964243533961912432881127546296421968303208294408262423777043172705791548285752594016360726398280631843829747874024683281763141499738024149058361656644418024122358105726184135460871059847372710589387931531676987991614556690099632934127983381972474062278018839369569612064390505860864302357461710816097525533887039843720455136790838883357045884917744066334209290228147089063129304513338125820540037253308700948140048265430934242069260848815610273531835919287145869079227265859707476889789012579193037603458584345836549629676885315953213850106636772812403043274059783193905045357715808765474121330432609649288508676162873649553770627725455208834494092928097775806751248501001887199782196015871107412896828740777810432688977350031218867641128377376855227422385922549033015959822716295708638552893321278727447143820708900530306563067928735136802547614901482755914240582742492957669702315507997255180929807580917964560639651714015680566630931742738407975078932262956941315073848299508390824931062055326649810336447937745686620399026113423457936453550041006851593089124589193172340893972247174513289493989902434084998806191300961061272620549432494310536830616306496051115476757491827058691298530947718016463087395342047628549555609068495630626677066173492444674750675801504755735449287399635982302708737211963251885731303264757825802197343964625991469625832470239457787156533809429669939593669663155906370622650691475436968072467294888170404023026455597826170791914915462246079980390320163591248239846563270064779565883984776556735471538227866604387157549503405622619963116193987639284793785687384215549002814008036096732678259538348299037879673101800909330169820423651370767392838777456723596116526586954844918649750526014162784759769241150783390780378923431996958911955899942220038466563966906520932195996610173182568214278453603165925565420476946026309226065675740003046149800812480108147493471915618094918614694959202421342077173636471320356289301161230147914025825273004789734595806270882951539810791454907314520169286785864871248911883201775167801171846537097023995474128334502788167419988606617009547405484163227123919844697619560059388146137434017081762006042777938313830334683667911771978387439192511588907753443523616130630660629363184568212771530166771930471661925911906025163874548702850597742251430072996014608795855998391269338950763925130626284713823218911014915586738373496336587629360422994875993996811121627116679574055360238620557550205466186770061503919116040727519882161516369595504914295448341040711847913655179650941605243531679840700000725556752212202947399296026390970500187430122298440316926439182361577447363630092101119782769876597758559274776711820498945548320173469454071205981838033885853299287742723472133329822059479696416859124850362804000299764257127190574426419469439538095348240033990334075448083853626760832267299139683429565368397660599371698267021653520821560591346762729703439422425190240913598869898048627787925137298324893291896798408302468578213332869198590991393300507835994868580726557113458224704140709819149092747039258165784720132377605893880781449313254160405223411492895489338332130674733589528647854531661033317003817401314896803598442060944800416978265321367638565101459988235790740959366058198484466789270176219725782667735819922044912684348144803148221435609847621491963938054817445882882325568639072481962024994219941462900549560751396197585978814464175329105313128353010114535546649475044691793472555850221475712432293976479097150908214474385381674393792529812263394060278497872157947485664228175224438497726074709578842228475865292341037733326256807481569358303609306064029407167011422877009981757335405216025088994475349086265664305652369410904165984914208623536291116327252352485020037524794252841400691258620523173517416977168832965982945512825904720595141701223111379423910045734040813175583699180505388432487883816926604096849595087006546691611632977007190737869172883301056824843157362804158969421873465714648627356427356734581684050842675947074531863927231439927538120312582995056968946818578508044672244247649276363353505636270408837604599343333571034082854075964962488996884794534032969700362673701554377157599303433670358257658581761463687254466245790635378348041998410097640434834774782294941643122029604351052119758411058033537342670696129620040826363364857000922308692970672250030809169811335232502128510300479484287388567450153799794693117634140020109258556109152770662267270435307558239670161831529927667542956746201140563541846780409204992817317876076570181880129977125540673519341051037579786669798129921815473510320655541451653759923123095493924888054241005507069026844964303219676180569736395104963877638071658172122319304116498361515558203967886262803565469786326440769772468391099089010825658651262202971367754948392541645092851057821055624620363300478204211673361303297605919959547923790953046929834572205708669911494775019926792088469539092612240419877118044811729686055308252530550238656801447063432495792909113017661781205655924402069507468265084017483328844460511691704230830318653631332985091102962724838267226209907752295884759306765407451599408262331099481650255590850836416817107509744339195743305906046512529701728590959869899240407255522390633584550028224700064334060614141733398309714959867979593974348323962833329322810617756559850839290370975365349002075027741166215438861297461099470744805821166430965439681749685716798358529892605450492703201846372781626706347405384361978249569826366005700256241396856537953280405319289146125503688388264252418406286317501135046088215678744201460404891298835234861683004866645788947311586997139512937773096425943967309912320137476590023420574093164880347672871025864299944522710858556761500421765917101553088796654868068754245712983302170118975780687763288743734663519519092491008802839289140381202237013688733951105484813167171718019605826762652741764106455970044542713149680464310421178012148432165802919850073970061515025362726631029396055596699582818810493997073629286009677261815142562986702987568593898072502923062108335886391593530093969835907399796301573448931569929818582691023535625426258294911571863216403145859890556427752568236827727040874024483747263926447691526454160001800211748942565057995783114064241850799469551089439871413540447101626962409686639035689850642796185668153658785060494690970425741711621432754683235230824411616757773877624637925799959390911463482250956858669188368466639818667252651243221264433930887042566438590159476350598406738814981377674003106819194316277287558463988011804024065430458288371641769066621254019015744030027144800827659198678318654573480922157253621906858979476875600581580532496509420158432151708079252262098793305263699142840708918674494462745694125803914904041710037421373349656569222480326597339935388840204532877515165443775284515834471333801537096448804887693671120314969502903695897370937518554241722491715359119926081994676421028885320473845697425934466493426061735191541871454633359632039985064590579830532111541524675943611192185908259708084201266400850175606342003862875423867727892073355778673351392657723258763805433474659166998064683323768357918859714113232739227999184844188080539563018240442195804338091199786371842169896366214801186058597261139708689051982979677214574643118172457965608437478992543340142435362295700255406783635787689054808412980906720730118792579910877934662361770196682365381954915994954887212397131353210279027055931875621802581820086040010884517976237133710467814928805343742753246544644789272284691386446637598190135397086549411202165922078478856447303867561509754932449726916575008277872325262064743849389349304581894274491874974976867592344963705805122270313767114108555728125309866954887761967605324871938470150708347122739204777445289662139142506391997849405112288317546727002123580594282626013480126841803533556484676036868279849509698396029316395545692718980642316613977231660547348155676259108102166496876485930107337048735814823169563112649127626040833229767554168596514882460991201640601767850372444818619625287325441159592923948259447546406344632897779729818404169543559662226193621917626712761469987138914749694176460268168242398346600653364982874937027902728052085971185131551365806077962038654957812381271914847209283548842721206854384287721103543493137925911617001718223463236048032806387756804632811023553528391937554846388723773509868856746794047034880337070720328386222700767582871329949046867569132922353266444237441355067755240572623733363894264916962141109178434186053228172060726440564176684513494072879648980945697953301327073353855355802713572813608250424741729055901510688969970516016509852508775903767965565272558592454804858794474773525719463440269059029217985008813135394907433070601112448996840131698838758350198061268601012639040699354484599154212055017215619917397735354763876497083455898361648981763130685922644551976419548525832486788319228001556195669782814832654643090953527234890883245825501219215706439574056707952821105137537391204411012523122102520949515930698751200198884896401415862259791552609053647764357266917095292237048048973932409792344401175170091785885408001908618347971259972459760880334302010336412192578712234762376953388343906790945247143430475085151341275298781747170261794840534251596172135677354295813508025768747644419757357094540530313896664196504136000111252820489873721634804429991162889043251191098476593234510795955591820122072019777777539914657182101739722884804048831605378866682329792360095271478345116640124021671217432733064750679394370727082176554497130777170842546960842027098030184081332273428651154190462982856776417307938667340820290383029476177807742179173695408813054948137510700326445144184459103051811496098607851861287707776874236042474294843254511489138362476557937059178207528427268910009579031791407332722630311999680540645914888671554543164518957451536840496909858946516551330098792858878535417299629944252735879662284618975984810616731229008113941969273866575712401999437631669167950913857387009090654036702839623774126818141634239065731231504865230529920673627379809487685248196994840486870027041054650660090091460656254810940349359715187464337218292836394713523528858160024503824613823272638365385499204349175926713360620818292849882282394823106194533323697035561609201610259826500988984431894894135869766644194010883733338739164346822749990940997320241345095871549698268427817949390397389284791035807122979127049829808628003607630008530306266730171845482772352510860260328877904365285164472487695037397854738620473210035917255796918492105248279450331495220427167675634267685945483986488599851636652747793544696022847209126377267618929751381738105962902423635593398742865133186215861892822193066941942396869933526596651799586568292618644133223031992106700167523084470351523803219151542244818242410191036198875683570728759188819306231043004506631620601726939358385527287325509781992979020862758780048817841860111098073054607056491643881134212854463429236153606542316806924038558197606899196981274119628518539686870626314742914917391774079241711835160392686719875322073848441739894536322875722257080828396090804042589049530980788195856694935631477442097764382038691087642240325268218656014633384975901614909356252720672015973412759285192067868977309384587160422503744401884969371394125059800411585599758117789943432223829571548132664353307793266721302101227689459241133219276071094297848924920708938640664777763300792830198387397456193658872436289370933502987971482623642883378821976085079960505583038704713514720374020613970317980612563298071082872510368493836042152443472595838214700007489513815179733341503354442185355744466254699372059237533819224489036550528909620106604817334872484499974362451005657365328614890855019795448385158276825616444911934797760755795995167515934585631458468558452489118457100924839568655202278577562407539410152480418147496740470238998770228639824178607153303052989048582518366519537562294516710876044105272161408227568746949297295883024160734407832892433767712443430452224023552161504270333760039606731843417616160141394066227474127226582258073818784633483808806185002258522085888567296179484684750791212750528818741805690300028407181917265371029527620814981152282139495164245027773794005550120233257706632006467458901135182808666335621494905929255828778108591828020089559714866059652024237861845890275248765576965162232224969928225330768119084419418212213003071840544036603356316805887096221263513643849693460568214937524141496470716715368232430553978761367971297402016398393660660723942881323238959481267446897464677705221559721125353218084697920774038848362942872597920635791241692009646758197399335119484000079645503783205729990924038439668489823530696180681749139367519341070698271269985713057122324735673706418956893513663255670533464736844601126001212206812756113507989382073119437650757684447555262398034383749002277801456394310959049728554880932207866537235485680553006213115051913038434352847571035259905021240629267501074850356558048872143362789185569535228793391649299334707360056676095752405902849144503518518005261990107906258360280393604518613931475859185732723871061714940232875211821159671191063533594096492627199588446918435211066998569832818344695975529783624483749318325230309043028560227555604568892184985686968742994744187789267425692379214979401673369872676225899994610535589033388711560584462836462670642859124991472483614046292240053853450658215967617682515967887145704964146816894106551220150367132650010477226586196936766386467354796088643326984469807962098827391397051918538801155987253502552198214627176718107479294705890554759961518600701600538161092513247040931689752043689191589302652326099491289478546635155505973743751840926328959093002986757779693196961031861476996415400232510269709522740319785451324394861307364632687405024272109989781227431333418620726242224523874721982136890516918030239545781935626539138046784956786160760264087768175214834639070531204932573521606791897126667964534272615493673830859297663725911589807742493504528050557827631572266113400129042572559497680145172075690023745913438614410163755141074546752777485035488826060290831577442480372569017532145486217864786033249874500327154163490609780255688574893298270962204170805176202608262218899176062672239844757179845783245670701892490762327616922643814868731298809182281589018469797863814790268772254232859588866318511342984879441241426690375380497174964920761136483317249311424208028852521844837233219194677653918466864868418999548248923637976970219313253879534458441791582291394890414753402074631719771982128043526296306246479137826085171754249493298374418486226722766507174802413590676029059252760750090201848959558276962536038447212370553563353808507785739925119904063553501542742779987798616471001408558841504550846579394552074074170693161336915443940198877158951430072549999462784722391040904165189298578083365161243139864731701565836370645004015026059986442769472354782700603828665241215017469502630346315264365420064685574992898085359080722727989752528844833023722006501356924256750830576318138561810768180117987888843594490663213798590360331076058224642805584679540708798587776257254223645487882403841224266343599933800570463957926805260029402658087467223849045791693906949540094122280198252475958485299523252411802841160504355329707615337510736999982680610797599261428802113309939138743934060086215596433411226679403238154751114142745630179642636951555660986807235921030448384248866052426804207398329437295683859631055667909332807764922044981057002661535655465267738220253268376888549079329783100954787052949200315228850521202121318811488452476589210457248870638043731249937992070205679932097482562165367280018601682107123728558345706582508231617466765697315325059536792046014779163435123716105137756807911138997478902300034987783132614477836068318041359602607074206190616458998601937680520294472661173420823480693566007150918840624466284506813046875469531657495247734701837023500052974414628748954807589468242258312047469323128615843202486361638457143354290869475163717935215914832813277934041814449394643784714356113674513322658917701831997242603810490130938894193628706470854249319466504251832178635151799227741191246559141699201536279015432339712229763511542177891256995197926906994403610968539240201688737217662650038400594487282679635974238503898112384272725255826924776088980943814272010247445302732654481473926087811842487865142887204996236401493572054960392213647467146294604880120571125230164206238567812591340158672137379111760634613629813351352385926120800860573962016849273759788633436969333802865129479769386011292999641285243042859132198437086765931917674857212015735151213594984146840997218960607269283079199284482978547795557632270874846980759825986242659805950283471981260532354178513284416804669870353350645365684598791020848828433737219892862767755596074549839442303438693910233472379628611238321739381073221866167448183286260186730759861871064481532575985382539169312792315918837080555550661847887822213393878575776006479687396051544539116128904616158212410071285010938718062478077575627414683066280163736309797183558953319295225071210397959995309469518940188902415569590074212538711074563497541621132468061714085227047325823251477286349325687725684155328099055021793432199747429250937958487476035297956853789686604324884129384207237060117898185567976175461647908743404932844553789282268768408305857137180590653812016177233118057762509326211505123884902887166972307790350195982298409687495957283202532493729525981567481347518608027864775078019260359517797658781634212056726748084366000637302789588306456167939111445773877658138300923245489334777212961694879042089969921265495499307931109113292802537841155235139929272961328089557634280203562254991203044449739559593430102946004080977489589935878076965910726073884602444202094526824642981962410608542501605258477785392224718916272141589655463854765778367512121504440359011326324521559020405936967591846407762541182596190137667098813797024088096700836364812451878459549544561123225750472296079471159007213298186370911844091905427884823606376592742641179734547629555051207193680719998681832302560701429749296936682099345090736257111308838512377761157658528707261801921821242576693806740880819213812206779010556441888977149417828233597849328909973408341507872719842411137304163137352316095219542483396752223177868449947182000103684614924785744455999140022376222833607617717549903792795942333386766470461908911005490839793962123678738338029868469947471417003532005796214407236266228942690292585591977389526102905551201846878183388633487405525799809545991588101920103971906732801777146406715626187098775669755224769663066532649983769436434858499287752172243563690493882920505187113483996387551477865333131487584881078869143110023568317251644224875144608026392651862820968237893132867367221402256603936830149910356163523546709083683946361687174001772345331482161231440828603835538712744938486598022541506284731028878596981275889253843008852184695039151730590353637601187380787330423887333113051429763746908714796768057458800463418475583953141752431985840762443141445787425008375588696470372352627355417784190912906259038119859938082398423175993249996775442665781368443413200225893016502780934203329749803071149174026231406692553149254446775962059750455574194403849085174494781908991138685065672661744745299502143790516029481324624860195390171495763591041887016557057124117820637158300416369032343746373829008445101094170359789044472734700120768262801964723426109592530841064440785528331932267304258773305302040304029015174594678168345982409404958354937974265401005198935112727128066452202808349841946514146957951742931141447121946139481394531264338017258159996625262238426607806724584319161221253106545289212109985098144294488171610924265277860969923770055889347363902554644229819873112269618627536868704756026266694442051288807280791079797977967843282576492076567401845093721921196713719445625485774171761926725351548967642294692766127055421454959945631036946300612585128178491087534654666908695999536413737205360176724291982985080706742500074345611843323804353116425754040947174746929091053878292650719767403200646560018301862718302201804087763052966615056806632630512024966803103653139724683209660258258176049874377130918102544445073475645773540052164562281143430470094881817812969498684372304277468564432460257938689085260070073548827327450244964514273531866818870431580739578261627318823439461024380421278002992521562116992847829907226646601829737013841580153989301289203356688208051670326553671763445852793937706710663529335229959199352182135464988421566797780962069147566263220135980014334612920479668618207230013681479223250336870793002113348585873499037411174990353418099565589290430050477056941290379030418493788912773922387939851803276690147877197597167783596768310862646730566276781306863364159909154065584373458062132307887498702839931280588461167181547290812227653984099760805455586867489723819338870806498046401897264465750249219549505273214029582162566704366351468731684300386608124352124408484975147420466851966643735565108519995006122519282731330626663463869302745826574276949114613939391166903429479152872946670181557891851455943650666052217827267336731518933985173916501762089249879465593650157098470472921873888994439852616045205612244334131351991240691038761470268526833079383016181849228440213469620857343761046884199441269179599373177619353868718817962666371469691760994276164487055556814763960649875616932938421069070833590881439192358078878641680908455249828831559895316073064109915138083393253702369806398917899869955114711907164480187797682083827402490699450570027987176618174793391861834756845892711067190381182103877377228726728809524461899889658084686175667669850814052428476586182517293958057585863766560512354728542996644142430214210780983636505444891253955360945316415716782805842659104335324737701446584371629572423952679977130988283107060614814554333232394212782082141854677394523321050191270111470288739535068298239506744843896762456780874825088496249218384922129323127886402963084854500444978465980945242662074234786708969193446024756101171290796723195533914367771266746715686173186834466050105065151795317685652185785011474324888328784040510986529376212295954442209683837755473278288021884098772192155865893591253092026309278016822940824994088988876462419050397072215900556380571226013857191297041296686626838549488955127545612901353597104661389491051200888145558540876088134442176374854423481664305762869273049978378046542843316768284314246788144370707443810542495421185038194794253417637368728391234683717978396888728326630776224255281626252090769869631938628911313159676414978450466597497304185236740097980029665439625265840003860498170072874292755593271431250946574512040403042436101556073959721756582046549066937405426309512112021354208432910583646318236495416904724354307030077314120428111459942187044634861610415872351113783887985656667374884332292016853361085975110382283377676624969946477348433072637415513675985616865865186576380102956919489128074132549537355136951998626714150870976415775295338351277196592131234239982503369520046516617480339239557302211794422198932144760053151642549197961226757254554677494268426230525211564161435237239161026098891256336791753793093054597602765338024788199798429920582346440360612650138912624772820973295934894487243844380637526797171376071774067627067465601731574909365482295432283789292873199831501294730750672270784023849852674422581167015703683507395361405871253901861910884953990356480252025276743700558953020293127053498619398572178101289828946921081357812253214234380079274572588799616348476700516795753249768912192393507265407330137462604225521219905138161905621246053998501957464465198407703583048313057214034260330958814009291829527603006290872305769234172099541785222584450640056816823598673397029540135618319749040385406243508422872175001294927510406828023059351896362957366090487834334277888163156494839730799130011022503067318440400258577612238660059636953009998389494885212762977084660887927017225860448374434328760759219413419942957162260198486749964427518171686266082634051219883329124585554893902899540048631305696672308973988976646196231293481894307680997200537252353195327772336572071685258583215677999099097841996730241729757701434292754681599326783835218851860510290677749909786503659800932024129908333997643464122034829491662216492913941317827671902123455026202745948337772766088716146182739250731776732523754073002341098749758920546793663605726095165656718039284295356334913646123539820137804640582624173910546437578710383405456787863037314303917533097027089664599548918140891163400564706279727216978129058618582837557119689400940705978518288145418172153920026796401735726745040333731908589513144397143449818258797763238039687451677558630112964763614743179853594311181227502812484040954276623481040499430408049641567973035008619559330073555383667569087222849029974412113668443249534136733959916355448124127048323346367190901524426089072340122251641450997911812748839551881351383076587031437026958246967176973400416552679554904941347664023428669525928784103007221604471745925361550007247278945571727332274226952723286566423475413832967687399284298682282320256239274386530282772631002788741591728571232254107952430700755461620039275324368051910051488633401551176944699292453549560713734386254770016471046678199531731504194217695037754523566621869611544872172187656843246681249518146969399181562800153362007847049840146873694895752434817804524323300712480896012196140099269598700198217898856829836841768150201634055522455666904200534494640546170962436013311535195126354765400721567481974623256814466599336943984920039674516374330928911330397410830155862198700650652933868797155125057007160603036992425329335805460161682959944162749652812841568676682680099992796704930796536368918324400353852399082238652843389662333312810250105365874354050794368481221591915556991167948331537469579122881712196593197128925829484756011309616169865043572102528675424729780001831514276692312258257200752174074150843592456328785722114562709792069435174120718525097833728673434742379343405763750776470704592410419073173507787753193108824591784202241181704467227915738450054303059322975645853429302572826445226039640311984561035650803004041130548100961826439078017606436478785142661053346958214553889558407752879438134572338307893471483201304610637570853133945474400113045352096182048124349450111501533316562186604767528506114368162255995278939602170043730814963991091922582231632730606693995089844717369734008386078654482217222753669664419679142175930850522136823647640762690201593027610421409060116731873351100165108879874737627680373766339493739907629242392095274001495677608610232694864619005095506671953082920023458591522295302531543443060306426056099201458227842614419214848668020671806487741464103217624116716478760029657423889600407477467764794070777994591479593855307054391941458883448253898832135766919120750181363636579653819037193416050477714822062234126332183934313793179011191025659007302234714896398780878831099265225049709854987249816363056556844789643646014312665593317491459110524311186826579424644237577067873554711514548818706293647980870857849960246618262487898633446486282817516066151280247830688330515223577443443630240162649123441791867733495920560678109759754980462028341508223475235734769731057209199910994144590737164570304272487076655684063943990766886059425397984388411358849713168799670595618846580397974313116334814873749810967600026909536515489975046006261249393522680980363016119668201690277867585080640256180339067549006684991024233414891718218268531218264855908765349697146090656883395840849610109281757234328883145777861471249524673810491792696560143002066166136780890407783021799454823060993375977649888640212737911649912119821175544708964608322201881179662882909618755186822650400956016169803953406468487326174318706300320405941678461077702765185712440111286134856167323038027794937363677580316619976973085504082777838685085145412081695136823053575703182540401878556845146610463629134627499311499217935606635106546648787167466439198288079883511487118835245953599522505467868174172846569653203208319401873729971860980244624722813900674036006038559070928821826705082288215600179378679755880694163064528498073550982328831810541685299760796019284116456270272034552954447573246921686229262784370410649023854954482792792972486713196053057908698609153681630022013378414524387947354775708091386833094922963531940294318049300109766713691294518676404280025746979980449654171152697905527338492086932826523493576643046662736461345105692493888036914745145953156193996868488089586907341155805421817128056051938011779835654753537166410656437391420080003244415838071216581452406282813513489357179565509640384350770132424845936417948609064031484590039593307262462555313052122019581764933857885931722886606441350460638454739885216978272624228107323973543730581244095378551173842800884339967008315192688439291898270014641224882498108789910297677178042136873514699192650998978766478446054090541608000625229105268664899153132354601199402966168899636609945766313583720042868602466301388184793291304473235076672556136909568170637826864797578149197942204175235924565609713786201044956422713231109363864431690477030637877481933848449849306717335122077496875230968858052524890939474247261526885631326874909374648876109148149866843748733516298628252636541394232406784064121130961292382587123695731192262926560813404306376408841664586154860795999840332620178173400846866102531259533531325214469468678068488853054011291771481480657315557766238420180306559482023165978823088435675142738074068980260826036075576935501628156539354356614257422117392920202884367230645454834117325935871982959637024007157722384177111498996058014196766264909501754325791733279440419311827289955790392430549831407750951460350907757030996319955848356648111767574262271849996343675889932955522719896217584311718070562530546396204419840243695317994030481194478474319078250978515355056624723247795982182217440818347264788669614602496366776782601384879837014745974570700551058747877864612046726362039984266128859955883615641174159299356400181478457833355374470521451127402480229601798538496791309271107547989985763733234207660947287410509468745331345224686625522960793725183935861860992242703695134639434805937952843708363710515223589203421784686555394018638950720878835200425568459991957031947490411531992059466778656480984762824605993308179172022551634740281800837052104450305483664302723932260380176326134912412184560136030898759445792792168596733734708288997625154141163768537812760775434736455083464514476600309031338446676593525796180475804718411083388611326140698851619472211378861417207775426603621267189247876782252334965624569936712059745528788370927701273751747205621391746261227180287824898488071144774717733032300127849493911023475566036934471158725027022514919946843120548235339040391855554061897993540397813295799960669146201406651629345097613524739418874235081717309727222374737500144991294020795358671326591963579469536045907237496355058105287789426573314155168197676795820166657370987039868236288317893112954016326883211626734613764152839980786453410156219673964738273917234768084885585376277172198715101423311098901438982837968929921731901163405933877552328484577510989324789111553116860985319729419031706804606186452777778428811267141129126866448418365506267109399777717842326385280373836778511813820918551473821971480168876329742039795796508687911043527522369670032938390647040112637418853403393597724452208814091867211444224872646722085569734117733936894175035318710188121889911567356492996535888982110161688174219321922782206644138598442678712719840694885323787207528817984602004411427385612582205441107775478861277078582090596969810124427982480410713972266352236963034269097477262488780497091769120147131395180541354974130663971066348438626580054393281002241476736073242727176253019607731831973584826463304958270029278908993153728756097957833400203000496945035826445343738769816500914395913470994390009676721685292557385480321232339164233052012604104046467126903023939574862547984648730837026293307370001045362820820334500938488513244520262401066571091537833411952232241123785957065244264287685649996151877837281691279892520302192959239103728904447031136466908856027446363349683762260381155415943923013009421283084393173067338799800630695261136119374946029645020396027128245380779551404738799243959833865800021824086211285604944382198531290236991170650619642313928447595080349222295325718415384905674507789526659826533822186838332674620127931108026435114257427962294706996027815007852626711012763098229229152051234852790154959283031764529763274572041100544779948950581734612986456612396431205610916725084133357990037315950684447842177340216137096111101157446547655035270457404374149013355449952504925475565094256046296659836361567010732206979650566284753888734175762803783375490622715538797712701831230384424608926854853980370877783166416231048664946452908373404711238941389391484812577106961380224991758774521791887584811643369659093847319196594371629021612312120560194184982059918911755346337105050756267237728735691413926478856236755567113312424351006570518593600315970828638377887343261554097145605552124335845187554163545513473425795793455704209531625146248396215529506041111218728301730582686154465101000709873459394010783151859686522983934951285350227175727157714721296412774169355689979618841831990292716951469794612470951939773701955954609954801486066526875032365985052655948014242640271785275698813361621029988661935906056489517769275109138973309218254164542256604077464849526252511398702584831742441009412392340735301531948714469203804388329946428742751117679172997424684945272416884588677949963773163672552886852331820736306713686694350639508955383478415360252534025345513622202077705459311111657389192707234201066389213028174978355051457359573296656484821997765215189849918165680055977293276555492452114742928227670807330288633930706367762351551856770083763633187394247958970087948626234017490942750035692829394016854824966010909955490123046892588277433681392256244843495938198661261625081200755951433721552626360026956224290268289973109227778056980150368380242764782976481495296587165718516584481912739748133773334210600849922007837079861671317917179132249763019067313364427741804278086602179580682085890940039450489319135939443020755311095289980531706756393535020169576915616090311347331817050875705752308057863597784800430259033665161692338974640872930930408256486023562479562869902319458088154655429963190406291433464118792183424513560751975812319302848816885929035547820005922420038726142204840209597993300350831902928836339427938833824167904857187706584476083276979395514695893348266462402501645784958646794265103906450449320019346278644603034371877634223873520150327517728712084756839045070390951926074356248091342691959228947352059977255001205072229496558001101201280824341319793134125698043055064138061889971948426380440405141038316747690135830931865938163699787277183008370739023716296557430578301208791646845408647934774529477569278477495417176115698969723489967556805662779392298849306283256709992035773214695832842395077782589278527831185053869899092740889899978769022547616938929036999793554378861505521479462468610022222537367183416478481727144949762028943581722818753793021900508744453275888109729257435866241433297729470498194826254229222129781742502682179597024615046540224545468346220551311967986922450542124426611503617156305898067655794958318454954487787684269575492441567341863841157433924749459615032826050423163041388979007268028359582521509540663198958489655496878401205482208447291466581106118557181932994252440817115004048416885991093881999278131787161850634990409061812090271360874856688040507689571467998694832709301781918490199358370740637245196421097982432255176529769485248772464683916015332799711572190052099605256736927592445696128312515734692685466266399555044104415830963669019496834210009731308863537773562239238124971254544484786534437533983643818056248993141184682901624024706775019212620801911345001248008173631150578282557014014860258390229795499716010281767327632715016624451654361675042450764759658732217740223508546084549660981870994862257176973779299882989856936188976240044884760730793685719423855817090925948492406263878926380504723632711953183058806122786199795919907273851102889780380128056120730299131298838226088500915204742481758834435530760096186180536514055599493653220184029863025464962445086950214880242279289099134215095517245890788228724493044006756717924297675312481176651126573254194810885675807636158579387644240229995535782589247581091738973605201303587460533596648173572647777725350617211364741665836824702796227801109145947941323981733954083461031957856289863638810782317698397529502003692009598181158214741432156028123538594599823058030076646899657100035799627809083242261516429742734008776649485781409796532571231421440525652813002612297747119641383723593911730047275667200287534846683879901076596005239681956752605130391668060842719329474267737882379543132068802825528938535857591558442770552491543485477152587339154932792567836511642419859558722054914284390393473357709020496558769575869194647139112925686415361526404348054974847059115107147286398740092580697936014703288332990591379423684760177270071403427381512176732893301614245950857097586306325680695324480004786856514701264379887786735480763517441845794724062327943968743254812723844199984352819978277620331058649458034627785230328081278493256332896528189889816577114151164056279677834491026988550972931718310964960184958377334576339783973355254422156422938125221368638397002717944029557868570749369878874481228172225422509584603052818087128987331600118094420117342490462515503878157644449026354511324633773198119872202544269297452716502819417919223191281740911644044580909966461209471784412859268928963034724863253383115775805813585082252669951398094181571811183342638688424248466058958958310586196829424668103579240751153578046851297273998910697641766843126917701217290060515037901517911347091738859729285330413804631471637853806947201160868939234580017360326651839032368902101650877893140933825242301501583384394980893868522563528200520454412323427080456691151614679206819457183706445412002854731221911499523906225135372915382472460483246805361354448190998314042208199091549614603266293470469548935476113624243465322339956954909431303501636517452512309874309612927277499364305690851880451484463341874756127950360683000837586813829873353114697507614478515531508851023032011593632479503046463299649768854256784520732633162572298769073656865554460873953712834084992912929672821204060448506233083997191607100746527392519655078964265967018053541699988116594379715061377038300483589409075203643934280522264265555525117221884734721946861030797404331137156092856094722167437616851441131314851162222433644556378475731411315584185992034176292700293815603949882100272783383562590142898035012902551324475890646116479616035953513582817082904291061704910005833033001752111539868672674492881937552087000775586090425800553519670119357841518345083348968063477188242050155369540311501465336344367179533255686955570285619929569734708430325697953039318974913792392706165456875037506992006180354066090923633528226413663122860024003863191997756883822589804074840268878453882476489244173099559729997546053435693060603937034986739291924881604602805097847263542894414910537140288071279141286827569325698228855344893904620626272423222824246164775556983516534364971580945432818040323253513448480857396384849883744679907682290904573731134243609309078492603248196933584025608943328374609960066484235168972741984221928532568574528667172855958853761521381456561962461371325923826348847248279479085038114598908611139887982973736362943195514715500557235110095854934243898875505544341350013772439785053765772045449717397379367048978167632636831551282104842373908472338551529497309646579665566613697735687827262011595922730886330931691475689361652086320106673092696566813037744651546051583330242710515279531924282166049670199823695212018121978385149461649233419658198032802750278642723289064429546411621688774684599191238128291920909348424369196454706265556611172663626335865790535441697454145445605954909519975166916283391797478972826105024508512163159124601789091851970609117383585664909419580588392116429481147942212105005191986863799242950609744084355933608720671586878850162192270992286593674650770069462733902429431419203876710890535982858810695029800327788242045208405172952530630519065209459457919591048839184658054592479649976196922240054626294441978156560168578007350793567927589567310728618954973744235505161421341632415144242673011325772852041147965310940559550667905438218246537564836679731218285165515316300931606828931259230624899901312117227865548743956398797668063814719003258189497396995660385131940928972913492589468428691861445636338864548942755041330102848515766689917385411921074957354397746457590482181774976157675866638876533094536067159304423692392180616260900949791810029257659862156857699465340660779095694789425308747246882057329666689736352059063121064557887876730946288988978948620914449874806123996520850616885393243608984912195893384733747647728744594756384808084119058585594531260445179881140733942678054339730131638103826707579009794299586597433323453827979609384007772856707394346027346707628436724463002435386344213911478325415524309512145918047795576761330346300474673057367499376541304876345730284539020347955681011317241143541274668971418451482372982468019779804751816058516974062840317308966077917868260389913419518054190383440948406416480998454324124100250991113505859801135524401186003651330045920650985294288245361845429395749457458135115258039266483799283479223029158044011017621388179107954212098230514394252778135226692712479278003253947923317230963486470008678646085197246491567930488269211627991182446894424490444290783373921779300357385437577651234403856283058341332347967044401414270608854929646477207784845535057637799580563330720101571992026739933968042332150916894186009945629202359100202860790257135401734744417346457260604281941945711248904485205854716535150026238034955650608071458448282606196764582932910120953138632492735257121089352575612470868839509210044515150868413202989459637903525871462635086384579994908649490245654678211575534873585131200644322191378293818059950550062815454123903182672967422741034971463541783046684533108594663743953437415631813398234423112832882853856723813069019687418086640680334433931406740671135532180444440079239120450210440297440308595543180020229641276233346777200308537894480551067268798155464109385910291022955363707032165614987606062352550332086027729180801192464544597191268975892103502104191883254363034571200236808465061330785855363637112543660598848162947315879123253574620529972155667906113717332895680910156867355987980733061472344803513624926898171553912241178518511468456790998414556763937608522583042951050395953249464457209784696490592570307677902068873698486368384676652313997769542798925029519378172229913221838092447898318288777750825314654134107535095354010929623188626477003703854324462889138505298848074845403638732834028329123549070017902345159684158803570389073822786233041853434091465270291830038378082356192205083757886141677717580202580271136488673802301013407051304692620584518566221402296587544223618213350296651139897430788267232238926716815981289205727670967524554851825306842262861578491489802230019005941856396297939058131961966097712634350716384448891808424915016399182474180302439580340894681467024209565139941904642285615986962092796539318151934254324294001712742100100052794318115200067366693891572424771104205917923623033034543388652752787413130721629112062354199086820977975134278529118693197753704906928583264363516970601523252262037642134911870696827946955609001671382310049624898920284083535254984340769026854120270801589474145776809570210327816718154545683102393725183090195925698320785730481804456818007797343232817337784882008078922562343951547785309086846782324811340457232046457086588791590924872027272157951073169091380322327240185291693504708078973695198325173847856250960559912625152785736402447132683131415122327058198475378004599462543512822512118725735147629097002275170164597100151242913199780986441895876223550331410833273004578452092394687134662709329436335978215224338545542072063733658396490205534924453645729069146265396123435885956421109249804416913668319402410934425636911238937918498732382119541618613692206468200590987205852765790519540425919017409085787081674814231040654013102268319732165173514275202209626799737170694097338245948376087435006018672305820979533354242632666359379499548697954347442350463972460808768936433939995418936761797194997572514185234617112803733777260674618964706506457811903248259110469649087582085815098349690896619205054768699472409410668094430742956057449028589940924946200574043488297865778844420910062707023868612896713871405517889082907768880531732396322448665332903143873670621541059525525768650787643606543909072166819993077793733950994676445154136580148364080978804658743337891230317087698325773287231500169547675052801661156967268615594402198554233432020976168197758535447749647050646078595408423100325060724738553634175406369632947944385063923117303666249821402788489983474327445773737860582528890014507229406946988926028898961253970655734720108402667491702593374413637093733194978687485858417231029144854614780946063490783626424076120288704721644909857363368808225705182254030540721739736484883859612363087197458959735880941324105308048035224837298220821057152709589680212714795495518397595826714979882457751134294443833698855705461024880776235909133156568930849126466689985435046150797404045911542803659018477943212587722504740399889759720195180088357394473317120358459673248397331099726724150063147704755578423717451719623756643538474432505457531406630272412067304821663751887299377264290592485952914404997739921522175819247214176084779715250618050320153743132310302531804604454031323118423542617121130039472909586022044696718257895177463942438792657765879952775592890291847670864624226197323092620093560291200673110273497053104617182101912320770986970996198127270263528648742864319223508269873276912680986749623021456225384865718750924817494433279926364292659738492744408754878305701025458598430237938320103980689231288871348305829228811048530486801514819316430867990637841654266025965691805959019121621545568246108085507026162376835343947086359922568271051546773126410498187863343942079532313516128636098667503767578376521441638189515159490966512041772303354806069816939920831999916674460775447021978870757432233503971859762091369521848873992984693480347565712016241306088517657739941849691847752676549589640204664517022693026830109911036812721421272970710474720969536837013500105688070807290574218741489156478485170979147778938964854258662775051826231531872084883201083005796759691466241422878242692853345441625259848965306563369894069138516730288707447116307141327724105820631622943408414781167210795971505679205129741129841192117876116346988834835726790043593103965908191452905438074791269523399567277939076337617058331477007578587129188663120077401407846766637147292872840880182619251590516580304087247364065784806394311952282684619689760387324364226818686861128027092458133847239009343335643603363769694703763148055761656516439088399652536886134179689691639259283743150781183876938470588218301838870193479145456592291320434788200618935239856911669888581670798808990264372385424214693267400941227929366244047246027190121082160901814958607538839553270660527301290149564031161727177327403984076006859492575833411256566361603546963986110666874832068161344413268070835297896128400879463316673266944185352063268539748351624291040681353802406556040790820072851716474158028728243699954233416785491430303022661649213333728639772163744185507198045068932649447239913779979224939783797719900999440680189729710313023844230184997711951064649269262099549882065912491803917113826799727323785841203585747208803628860396029770229389812761441631487127148098899419352235660752108721531826052009335382824135164235250801423348373707982037490983429013624186993747068948123852839673212032952409243137515871072772750385141521471000025902394544214142181978262553726145742613786897553173383397312620736405295383476458879401342703160070881708801372217732443748732953612605704940836329977315241077566422601690128470674497946185952804817482489770432189559669046869219804161424796205118328876885499782135337025295953137492202660354874627092912305098634947871092868749990072283094621079795334422117374089328531238579225221561722358253293521612500833791949231833573301088046048472449745740783705709374330409254184571312460834546162794207298980521067300017192586465098136238889719303044360268064379200371523613691516464277852843898206693464279807883647852114265059647978952438471186123102727730606186178502996108567051450276117336259829592460062500829374986259476373545095264500209752185196392420773781997461169914607279508221043653081454916621124691496181261569534067866504087659600591793716298749008006526119166896985121302889223794272891384799773952949595259774896939355385496314589467618369350825823513426772752964862120598505601372722780969631236499080539968853399155773184101831410975565208337552511372944934405156099477895499473634429789134805227624410301369096591043631789781074023548407842190864331864013565954773304599554029945652395188129504737480678150087293669310078243298441626777475149758764436471820986268790423998323326964385967016708383452688166090231733103928004020880323067992293044213826088469631601909723665332757802348715755440387894028515599748997275753942984002173788109904091252317805533411562701638225847232491556976389666854712178898125312634184978278957529531516423556882634962837937683442431854388494003670415468187794411570738087337703295491621200539598994562936938267720118093170463677812374045532984081577191365347472690557671239030621255062244016270385603768175181630475003094331363231493703560059145063930289242362453883164877175724742196600377265456086156713818033102955329463966572780462614368218210155262920540346325333300441917358781628257271993474674906885273035724619079076306561818854923608057888893968816972694294263810870571415742558093096531362065012997124426705697138631118286493626818389124464059357350591890730698427052515796487320733981857815680666421490422186228324505889025055410096420924263700856649961352134809102387343468340496508940958330141105054558829028532382527455843344134822112958398405958200653201123542810008213962974860850842668771876242747480219702205717578261405153242102300189237752004895073265089496107206548995364432232294095408076527363303643587660710885901284715615183195560753919467708091120946394229553726516204061471647549640314305784585886856533283397224829429376670861555180386873396730527097253398153156004584158775080133686843980174010128464691776289030800695879896929256164690373388004653692756658031136472171202131226923469789506005172557990524351990134233970542514353792007032284664656237907212419910082170718852885067065008915050228970762104114157422115538014582338508415322951057069834878883585980473153712227276925057831058257232759023663330483412256192153166259791993076607597596804685917293484486367467894436897589511653357738564825779745436621257698264265990081496729569613526831706429067000594229310849301051567835944473415400890142266461373282546597275903111113997399433327846441556820841997101776393604192783849781823703302906399510646038909068749676112840284699190104989308734198115802511395835827822344565896897786889343291457167135585099446872143602283964730931361026537861181182586611966855999635187978976671073029153605566569283318879279351416968863894724843593075810167425198606092678461827021194499387442287343568191054550935471898500471689342456572695118579152647948617945168376733721259411307383944078422570683044757891269900892674963585888696905607805124088515196042870198672842269205497848688777713968589196903771296355430009873488260588476739485779590748416942816280925703020861694935359028935937189236641000257417603257804868398538603027415900440402619782481104377421994360800574472578117200248823169329870869338163506868120696999628262711431052160882413205692336152541718988537393837235943512072849311882161338439799448574534427376793269990217653097416163728508752824159844721133127640695137078727215425516909316768164509013658222622831232316689936147685257014661921201352603947261582351496198941518676744557672395781928752577062129965922771175450987979067154099763156826963849190090015912502141347725772271787349059849335385448230033627529912090870770471198863259597315148598693897823583219611970199334338070899002440195039470896834307734449347903730797126173523648368778932895081442742562808850230942302656605062955217219334337529126910646590082223283145246080995509508559393571103609046012846979019685519545107221769620904486672951878538718477682834424649067697625039403821190459026072036321737567117654939066421794311396643856216849303633869801589301060137299454254161424203288889342617404410822711858127064339121384298281071475947180026514939389809623937879510937994826624447632663792029563415775420099312896429869368701963927599337738982380912530070341552094426078697780618568185577729259211174710274256369797782226695227127567658364485500461356280883935516415746746281940865907387034594774933008926400492613692262013740125331956063915952937961107922796297188589669912458674634633586868329151913344819062614356649815089830271473205594245265004529841050547117048723302722385988669449219098147375501305218343304868006865660953973323997977807093249159457035056612953678903569684051545116323179858526559137323269909878773684240629326001272163094381964493553050251531397217319078018487278571487812971879816968489287098917953614494003471550973449685963245600391091833464919713825805323101342168758276314237887327792436024042821156690659242551471516773032365180919271735382428337071313450035460435165335382375270458207924811757552790389883552185704989985561416296106179155684317719177267054312262119796903756562075167241826751492470447325430407416168152059018642698008072840149437908883537873677656363069104580276203671565536331764288220780030951183764671797821146331065489874663115399272498692229960883851427858758385482045600906721794655827279470717913086955464319712904435957033760118664593804475492615970570125415673963314053414729531534134494240850947583967550266673143793895330054565321207685760935848636036852164111727642680028330373582099840101116178072606478353162485334532853656343367879526070194489375407889547788199830508444204806667343509960552474867477474246937010571913870291426723213730112416846332511439859702467474015104765222512965445029632937760305027979478847915158256189500628668637471420303060929214015254357149069745203957348443425012729189721230539113827762764227309962156191258665435723518038128683924261124523559169856356018098085928120602862969921962102485003185484399881108892293147854632939325453760323797805728145559719730121369186221130975754096820631630693885791741553172424080256333218541395000378025447968548983188834078675728176826919962010766994674275027955976751670269635474696067192128320514510400440484255929791183388216940194710912930255312675513459452046257934959811882405589318855760964770461424893711140773993353344216293699500492238945305321578975948122732494154388457557452073073836439497699479156897917773006722314854513112549131726474315820089184657026550515021924562686031107041223964768865642842079218282242395415017988830220638078803022388835017494966745177855978851841510329334761031830879381149386604334911082658939518330450986510177369474454363990330610947643455177502634541612242715902381366133572521777967555571616216693725401875063097668841524266698044286169412913705372539717484545617974060947437852467910981872232720501395852989907062062214609255379385871621926074487976610974060134841245783110323119899462625411600278831857388385960172419312193616113107643173613508765558581704069842238842028211837629924378953429677676564145916549360573200994667650057251063250908765333691084474201148506310350540508572748991556113149308506700678097372293603239125049603192597862252698841143056236037741307632871791815998860328021730206019483403486440966824263907687994983237893296129393605186563881781452997237154343898039946537099580387832072390245340976587373849057868875011135555828367301171214136226442607719137356001954937018157075554981025745944184849040033259101526711058471519945654236332671041546874738935212696724827788283699601715526065378329273054543777163044474533120684595535906960100182531677284774173599566056529568349070845476355587587297890410611437879968960082197752014153001201487549321156034755756737707948309854503286307066898851602081775258536911369556476362804089048634732610126833202251962757180998682055423414769416380359278346599790507690960729513571048953346211332801810587517381552773201705867382508032120182781536132656917196933543272781911298340850219723559114655222354341020694841635045990459464611927289881767174930006540074866449037351180547761856015043482324838375841087627058652302279602694076708536871265470625538596888587031688170763681911878146777945115083926405050158221642577811565284813969131374053531692727939178413109533835998842486198763115930214050006420936719454975917120782219819488325125598385968862620891789744452177498536018404079674958446048994227798423573403274915295194834795013582381016814315688921368808031071534786105216044947015757574299967246503793295791296130911862255061556205750562008061812091893219100329403418816863410921571532003120218879677740460961203152079890630794568915491541620745241713644615956039596046581387970652161393249334025939122924072242015788893770859227892013620833135142090377386052094075416408762329149524785896785918904797782411916051074795004040911683198892354037890232206824066922194544441151149748614291047724910892604804200002210748106074131432411574318562667315541621441627531737875618898003337633353133889939360518776793307076847695619817419389817006778754180991045878227800319332140792267012515199905081970148107202101858831160198230648213269840619646856147255374001812647456836916819134234309435234496935662288644788263280754179462106459924631702651037723399478812344503675916063916382392532405593407397699843264212151774368262303386849203528492289855953734396969940714145864095323656574129050524310696546203449208398921318224445623210027650935325417869137939601588740516128236959146326968894094534136500263098997860645321938167453394311474402732209005671919806812073134794858498532207071735838648701890388746360257025895649571001971105963211720244143614136458005657471888565708446099761498411116113932243061194239327882264471244071788247361918008667817857990598180981870575793903455431408740169024895452535090024558948249304273146873566745129724376588486303542863099929332525212279358038936184514051922468519368506666545045023339571622379475668173714752370076724326452229906337285086206277797035984625291278634075242781193849141020496145009980178415231531830180567660434122048343354287984901628418476026630781301106729307272652325286123178475518311900969437301270324438129228920362697536800974343239181067260022892191766068207793870140973638889564661205272235948209032016811068349041269560540308015258091775471970465368962412502525058952501130273807016071910591815500365362275726378715226017480701739216242357517228788779593928277107176175687693846915283222030453273856020651337262140011937355598236367862668702998045194325362228640854545996758886711663775087985414893246346867967978407098469260642877685011109607184299707807271285510692778035095646822651256041954919627861982599520807356200350791155235670519274714383033978886795054154114329655546851572259049546576184478103423453901634598457383163738551455330230771278720163478805558645932975333193220372440098226756294155049726170913911700451969504245658910068342542084258505808648500426230929146053170564838194614085181214178000672368366283223389052115473608776807146081312910755545809265179334173622972543874866973403653866238238838960020834740307518090345240626863226165872140951448151830605623384471067935447596703023487145654704573077163840872910717135952483983949792535951406617999441443912856445003250314831620539346936293007435098591178889772252991081551495579243650972252958850126233576495332221667277886923220021620714047729683492081770013526037836187321644831374576219247407645378431404786089526811241045681277969073664246783676361620597446322958337669569434058561696735752059235783950269336158648052111695661748481715205940556083508523415454422598306561364227739551333709559005657172973877460126675979773083533727499213061369137290841788214948690403184891298013449823190495895380706533752042442350963812031195108075124986534948442996769486775649040752572673359654695218854007990418444966746075415078443133621069455570108033082774393996132325165363240069715837633817576912971607066535837589296486488756506704200815184454481151477844462404588687462875307103695930031981316334744331024974213487535760493469522849216255615472443892253714667087802020020575800217840775884837963229729000957171282724219479373952035289013397399725638082465191173910958252088390538810759867807990620172709213066766114819046851806883075681374575706773441681302133447616013470072338530419665256873533869720131126646966832383285907266530652970238811650818690654198822128491112521314455667657928632202715847372133562139771456910964778788257108057168037648707418096432988334100874582586595199537250202398052924844185149579822180129260348054563198942686631935337786201553255945751340974922905716692773776112935205876498564236959726169000968499655551326954703902745690108860345820869313093245962972025643003582989664248363541598104589426899560672269334001449453826774248026929024726970263733013950708653203739083749272307491371691780366972321066415238931930811069646327014296648502561654709569262801019986286724856442755930663189890731639457036426289662550433563020761864732132961138258000388434147162011756596614215524157470520256137770908146118840028999876987794791843069124536965110290071003392898565397593456085702331687222606257027644805475452345621290887070709721490074141807721419880399577983763689282790606936031379712754630476297499305593545636209737390430438964279131912814044483670401062802866658529574252043657841835651142018922733500189734108671856670756134424025660135509266258143766187403186740177379456955505006741725267978841027106981451772063472101953724431077969764397584416666077464828799684452914504897859063545861314533903469139174892315218500191621160085074869990862227473759623142857909027443106404726596024646720242877582614244014035055128600607193923540637730421971984282105846816343394986238396728909086628388629799656032721656836873666538707024028385706036820068031305737031140624375748323254530902380534314966794431613809392563030908848373608295263927695636358703456589065537474576416659278139335366980587619262583465798369625745669273360800355121688773136137615274934439136587835463390449600463280607019312860160979215123091269885784052065427438738011993648151199198500125671199813736660427047965131374796527400117339163175401208674313280171995585240755736782327063519126356352287322289977490666082401794052221310623998090220873584789415319605585619070066586232767664009571309232549231715662936088314292740253955296812184482386702922838237871992846602924429134095286396583208417573907327585126525540109884778286391858063330673195498721733691554018496448356209232977471740808696635416912775686784875509313749994376145846284127446261502934285711300783395320218113444336300596147127646646642262144078582494351283364547664014380570402989468407345091022035228196055486915579970550015826941546001088325557860571699832259246923086850810099417808793425755635345081175358773903404373003512960871635428769542904788770500921581362102589466137374723724019359812946829679187649821917947712729342381390788657375191549312648945174960419565284866449276344203194730995001665916099206910439129762889494758131860372920047328490096959953087086915792995657072567054649573524491759004342755628310973046618685192435710072516807677449185116992336754689691803851873155806825596043833313083440091869163452017363716486650215393555891655678770988065675057236319550125103739618665136472181042795851416535216602438472123668550257772856968224486080123789035468843345661437470055821357897294909454298708684954864718809766630046903317502384286510114012175168729636880504606235661659235984842121194008464462702066318877539981429420131172219066831841246440374360216480908641183027441479491289892036944240039112210553880015981647645609540058865480999429995080366310432922565127056498566057687016845617436868491332729208772298722072163111898651215432987694695138916436827318135292422906603864489654708022921201740577665398221901587644621028943559791525137660791216922928374741357713852022840649590664694326897590476855669342470972371907735855840658691742126023529672031420641563459334292673467284877569845372865310573432925800584796017928410150127069049462768440795522290879793422649016281061150594022937796366319980921818789100199629150418935325095483537680461821757415068030864728516386286889701552477315200053788893374796990167552728598580584540293978172936327392990149584248070323118827403332170656632074544728807610351478683905734666970439070359578024643241510012618277006654288878422266025022826959348740323142990044862947424413851460866889611931750564317020272450534020461828042976947518835489341668799831338783574259827798223770378752426871980843713296096281686163296779559827075588357192417763160303358373089330479500329994948064931924061334583310656796111176272363157962581587772204401887547274002249205192904484749153049820820512959606004080313483581014680159723070425912172439011904751566502776572196200542380852123234683516731808153731942283884884972960681329599941521238104172652542325613177700634015176406558730132377109867135667368928371873609456990190647963028154262835154896753210952602125932811207271643477544708606267604094554634733291707060402182374830290147694184460117085370662392887782426786879935081434815583248666144789112044325835716075466864794330293363809887089908159623591649668487457637711603710892058108660353672764214760839018439048448277744889381642823475493387777569724940860633943251046223586039222408708420835936921327898805548919879805346807693156351011805320089431982245953349250934573749671240294420740478082162879207625239707106432176793429012617108057425774809840291538488579022854476321171780430680990252164846456715481070113065206324766283690582232439462379325872396272695982592410554407723197173186455152306727352309606637225902615969731275878160950264143211774448758709681178953638184584143895182125485703643873095140740529313351180914362353807568335336349055958930806994421381975560220028388007927077835013428663459380341544162173801565648064629984298976987585720484392292697451468497200684176892442326457551601546086007304818826814680806714067336410606882127202991613666669955627423064973436494044414131590464305681712773065618778983462191095818451742748763256154082363666008895163437792746403128591491323188764311858029048750178657449401515919630200428159375053632324162925962228464355032511689914927023242362543730134055803030378912526729442852733041436881518882026322152031874939961251220150799684018260683352087901628815672783449345856240857918563501582828805009049618923223171501916813473972937607992883221910562176577838328076250576622473246987197633350765698983697134306947215235687013592532223300242387630653324536981912626072000114896087950629018753722583012181371762711690295953507090141819414831261315441994585771091774138959866944005036236540311988073140660603456283062175532303049948637994625249127073739864981122029136019124881822158169593841624071868008306342796235439196890089219971813555396580560677982194902235047753547348142776695893875429545032157707319466209072537561599083454973394688240346961533397920823223198968918148710543705081137494083040277784334583955225800012960998014472681768516911458227622596342683208636688643304520321010496902038424562897243393854215769240870570071963050807335865127748746709789366534370625741750803868135219310294588150171541295918843051756449995164721374839113932211336588023321056463585207949145905288877617946124724324266071766040253816035867807455852347667247255052045858257262666905340006985936839921856889220575949562905683869175643505553134966645280338212146470409373008345206761518851148206608131836194206559599461570215588023794390964757226808881606791324098410950458996989505694912756626357939882312683148919397890279457651616927085016102183938659964629202718446769865741872055538476510154485197768109931708094311013570629079048809047862013259752334141113934953836551271147908716507670313762478000061666096048732159637419967232684527763841648244832600691253791929438958169232470158299277999817150075140097230755084397749729565071323239634729754702281668969499887469525278194545428867558216661491067354054784757105812426746687547843154857458878565853528617842566532753943726280801067767148809081899086951873183250769050950554481289342957313661681027114302021293744316274673623536437507113921343068558901206283949282108570067665843075584262177659077586140357137428493292894371618814823167328243340734137178839918798754365977694770563101345096211798674808892496842977165080790705311451338086912360895085233621385840938807732266373029674325357268806594542498442213044367985151349086557868498832312745145321305680817829661829972935140686402510593510199818081539148946077522867388498279800627548815780741235491610818719209676262986626065103898756523659883665348352365851410839159071020727284758782217805638125789848667648006196162484420731507918500009861995551903568497993280718137201764913844266389789351153259301701237281220919505417136915647422233155572764076491983598882796921998276244357265572670682187073707633809889559039904455455074682446688733164681846846382899684294556602996024167701814115113064206162434474356643465393302557123661606299557078780350502686680742259628017256195822889329835813684738862468119658830337492286865822161066719866500279665742278815326298090797396639194233251298108048298720093455323904836656620443243939497452629747745458662749715770890124381900285122888887863947535645121687985168878864140785099381083441865964136733937401782828168609046627332337846542268234827220688044933553305130212061708201041205805665419069257528537760421185157005841527569909068076921809194574616986647274814877636967733222460471433421403032834588917378735368622162180770003440988019708824043531632383002786625396685878480401770415377667635562354646122475756248791998242807670670452683364522689612088508579077947282408791364845434660249295404409983798125256083751237690782436333124344177436579840874472025509404477486975970002864983503211066998505042638832340132398751624780349849755375465016100944536636484075019458129741585392123899626090526922664572051141003161618545580458367604982471958525959503716537258675534197402579796549776186501863962854797654829323122143798174924099008320110133678164544776715723546827838761248081958464089736499366019256574132873121974961400067971917432202759546174972911823892839087878939079200221131421171613525061179705863846132793387243648766254181622614475952588696456999402207085738114341135604305813986336890065857858584131104880650759689039720832898882279403553310739869610987092195597620768656645053385564310746837454367486409161075180151487468440083133579858421703839421669496140055681848971452899380583699605805642683950770776392819209559898759751148462004909920634741632003241093073483591551700076204602628456682137489180465128217427894948253992884344606722586892786924683450386962759875489285995327153929781090160780055068618064049184641110933483592588045179284479125946364193360937321795547799603141511793553189384741872082008272574885101246318062185794611173878814737130073859938750875575769790900088751969882864965786203746504255226426207458963240491031971797585035278519263908398317975401698397306556603767004726905137582449965894904473555356952069517727363689187749389416770420666236268856894920120885455874748678913880526536491179515172823826454191109598445877528824994076110130133167583511693730828476743760376375660656780496842385732432643616123144536069577805993527801028115067169087609643406540218455892018711802659633339707579593867971510389829172345788348287152678370045204247704535611280573330402474521818630566229968813531247007935118764632269088693327790767335986943351210671612798589320465890314712259789699125570044892205955671615472818931532206642535409502844019634821753927879306664846582514812605508992379722952114948082601424614779842343667675703202404399285811288240512020499051565037863875132652201090766231729754218150721779730700312685945096354755555563682300447557768713070699653214326667651544246696236384620534196735666329443480142053954638622340780384767930897694877756634026722536039142512627551771170016146307732111555824571032445149612526271258257326327551608038431525486860148995521675763432687213315457888119307478931276421304791428608477217432258665926748297926683217340215308656741237751263897776737807152842246458314747623610890576230370880576523693225016250938970612317058482089696863165277332827546680466696117274773046301782877726516360284710586258619706785296672368291944287797235075920077583615889905957662000476641791338570573423242411867767840422444861422591708668942586473273185981955177036233568899066057712098075409588005335320304672606158781782922179248056489719017960872815044761221692027561520001742364651300007981075638303347373039616408373328552641464157812843561035801921705206453834943959627307645274041598311654952360100493907117652037700552622810881104790077563060089820948755622570782450326822725912644953803298755110607006848515788184834805432771424599645382847103036397430233424958329987063040563037026488548460882757551661990970768652521392074528532496317302608738594482668802047481511884372485332407221961140158917012926699551822217031727442336882447798409534922405746221969769603104888079500233823540692581851807430800333337685920541310189188976362910751387765239409416115891824280343599967400340460677629045016027427383022601803620609802531472106693571857861412388729022078513683832598305321238942114527812191973260191532770119402266987509332960305153123023596769729067119504402865512865618777127459377333527475382049683230616186965476630026631735295379983036227607085178186605525108818492729448171870871265356757407662142512983533690491712297699217559373253834489931012743642980507676451511450657102249291220190377010870138393137225206696541441351182328846456240115239647035230982655435138892737006402189629307146923129457819835519641887713016093333427763669939318545028132863552933482450035223630997587777631246711731423605220791962632486025407264397310751744744002428909134109243599261814964739402410079861103489685679849136933860582696322073027821111124206992427358044201628564406020754517866420402716859772777976826416612261260184182837203425848676156133598622142532699732528816993923642178523386551070806076838920101098220157159351091601790465591880444470894377113140562935985025813591875155189977932441029404075948547658704159989922731541888537530463878279650912455405408466549346256664415973829990079045764895194126837350322997170466683373575217810330855895008798424596150743405859897908170122470133622698393273326112545951822898835862241989502234713039692048601489370279994978018318272332368971107368956766873525197310357415360181870001442655845079147896328246913600366846345832143644185314333030089477002658536056567774053324865385695576957751732748298587629554363919805166343992710214499005054216571136917845837743220548373380110547291273498270749909261652085215256431164772921823121637189690880656490438744114059604188051724015217006693757971580373629714124085061903412828149781765333056377660649734085350936841034000183158393777706019843461425894628385023590456133787011178526825574328963214258736945277571349462255384588506929539110545770567876389084212055950667940367991805281094806081014132460049407212458975469861780052822832508097502064080656272378351374966709555302974412009184225960674669940885079308750427410791795835699623772258320749943869838950723863881632585166371827948414449607324752132562153339331732954412589913672472769344399238064937164339876989361983830126943100506092789571933629147900395930558818480052728699250465143327692458255716530159439772058715435829132768921548236656769713274101931339311937347414623360031884761758610701305759755417416930969325169209009047502622113079275142813892466868674223313714153448228186018988226994693820031092173011502599612597109193786060904643727889753730752394085044659494364515951708357176767535421210253230751463431155485279200609599839154716984097401971906538376060013373224796923273967512023669285409921442383451460043492264202254709206160251575591277276065828469978373201493579504700236061911637940596032595197127876077350503074050032791806316162253770731477445739380933040775184195294252090537540393389772918119996528461295169061264154809636050511900593447501677148864050002323940230244673336205296398827258739935655288234280954752213201778385948119010062482332423564391260145715780985450218771440827017634308961203689286518598870931501646290028440484755970942949619301691210438742085907962229282539515412692105388015335013315969604541706066611647012416897532611242690449713728163613635550794793131109537920829507385290678343458039009301892656141731437178232204083154888809447009803506543486018866638351499123958115038883198419346382631332465471676429630011709560545763294652646237608784827573296593951486129932700764844225128696490099019196779416292027366657569657366095729927988801584571545616988816033571995739271392167738888354034580407642686309709915099233280180073964709659550100386040973566318876445186635605548052165982568609735746732228159704193045445855712601685606130533004432643605173994788065759489468400260156506839021264026951103573311489712385148015318352501273293899333869049543600206938332793596789621187751980109882299752502772897309666718039218801800528172775334178754864575611495529693831278751640462350733527732949124786404094488727262411812021583317290071486601433846021397592080577178172054556937469561820991194974381980894087013962213648520682029503607196590718997405268740031427177515657054652770725660489003647059050163416953310120888335899273177063212807911679197649705371846570469448473850739055901316878019961362661643785293500208946745102740321749017430684688906118090490745989903095760523424344281996514213268048609664789795773835063300669519118870959831106661666314447248238855852483207477961957042213257624355913066885802899444360196966491453317240909981994967247413016304669584858481589286193717103246282942047157221646479270868680500903190089424296810209378018791674111050934680314072798153758305163243496286285421654627523865895687017001407655151051882379826191431972802816953843345249962199666769427806827794202742900655243901833419869081324002622518005902124025619714297376564500252150869231437768749266627680061971911180803772020967941747780165628210758346468674477686557268498799876323708561581426065029743550941540474405937339313708393377794046789986528993191989808828595848132135756555767280731652875132087820018982005427083151424406215662391971614973679105695121354894950908619450469156091016404117362241888294961374679453505282901251443911440698994053997015184475934743945873453196091106389744790404914270704451889293875362522521799639722033726361113068982146345419857888235311811210529614307719170114438451935592563952110161685179912337874808764267209082248521431715025503426976528972380170049401715564236313749147178854177612753558704552257534534481951323320801768841661657814920018158671114230637542094819285770790931614059048382957033817124970003151051358245117244694451185336800311381245090386683425726891086223547544511617484418985869102105509507578642923841315849050387734386291567146694438616844558203042153208782343769199946205716299650831133158593739206247259491567321392726416992812940696591943832212489261404905475877694663334851700804060951044507426657639801059021322705251806052983198147544086457468878433502486006898275651685107183798555127574682980563686656206356776218481762003783345927496542204129844421385014085892864346103071946562238907435713881557033363781464529824408830857008429802817778645544360455419679696121852300917805274752253831689030753645043064208521884569144814650977885324965752938719345537384875693907040281986514499212938224940546331613296794528373199508022371284340911406927075698921081407920235026610030286778689787765422733436848893371043717659644933504069276471477527536591653470093228240832538472550797931253428093083520509031553596422157692447452139281308914701985622855342258231195966691559636769861796035531859081562808729688277825829034654104484451557275110580247063843388032971197724201232787230045513398506584711837056335001212903484148989893432179030925276863651896550056264719420501222874902843950592786353853596041069848974577024629153642665838483881314936436575225802025774628705555432364346519445674663957943714783817322385319949741604185573190400732721784341935336809536670411089505895648139732271509016820184095050894206449847644587708670762754840376960371003717186985379883187175235452981094886616524307379247627157730839826928115944143157174634592096352567272489309955535165525515336944471078583671481618717424285512318498712338407454245098503461163940159682474810383732278544330971238201661663306211202094423529859580359615416391912846297327792271757925208758959960825392616049686033247300239128494776884964405916851457217746436548221972902515549901062653599984774053334049698601413614158637450973141381136611196058326351515692472418989464690756115301892935849280166182952779681850201316841371868766870724350560070289942310919051595482172451664747152937401680783939650519155547108753737385812122881085777171885707761616067995035571120940596615640114744508586041456749134677800739906455699793030188761440437185871074354091999033558259946294326082508575060591436091332709670138412399000472845135590275642102291545401118855033985746447887107147616845611048894507862442783006662889651592698576501658278001819351798468999367120948654058024345063446781001161362064684933424785336987702696896125666461131897861964376036776745401668331628358096568105455641858959268062356263427585439925119392201683149330160756333582962172966572124604530210200738923177589127616332883155298414340975208188082967077936730382782831591266881185893448300854244861536442089459089543382578797476286660162870526588694595671027996751544195357247638510310826599694781005547448254388627187794008316847384257410066667620340908400618527216167946342425900721826795858617062415872094132350297296356930933464457286472174675610039491856528071854878242351378716402462639660606896431202279018897836387574233362771872552683446772292322184895204656989914007191524908247672912417439673984276999664254573715567879753752176735164681064874918868598356735753456627637976413950108346641834140410662957845619107499872982861081085461049511150282413300880316791662373024034078142609783739848642256120521769267742348271271284104413638566589674169072843232115371907165873591950185362250694717299450523312475677771451393381692239564932005278031456438305575909315538195067561690405657101970245400623615961838024477444984068866174711075202409217635671472263693014282400391939132415872968812775964330294325632936430524042416336550067688553309032002239700042764471945251055442907736589769039008305261087202421285455634881593826611910114244176380875406913240057261122821358052878871250969649321735189415150548760490828443500634950928925094140875656577459912551148750024280333013550783125991479464338870612425922367697374240223789767069584059770253079024480631274782047237961667292565844553304657099896882220116732739935314019024081399382814928808214770505259564038898042468916722009139605242827531500445542484898224015637944036328915793960310274523852000067380931981113490056856194125531950327730874487158984915037126722277333883773407528649624457522970992111186066845291920933743533523704190672490573360178226384996463261740956332903138822039619276991775585261263248186230504443807307483215126054342424984689644373247060109881762815292135218672638438273211488497024771620465279906609653957885495027133480283665924368889436018528336264561083073712891001757040717619524813394275250891300114495115449148325972687711584296798768739088723654432497313208099873535801915685977697855637792967765803175716628802209226034494385703442725279491894039876191116823881403707456838267835474182119635048618027852704561251264311069784961969586859351418510819265813425009563509619758240046367918606798599554715917352392866084281740541545955299100797004829906496719392764099226804432867076986739981450486874314675489561531249527673235196359851916736057601230041471776421191988456053155841322518406013656015842821936021906664765417405344108319108279536110661821777473075976541369407648412513801780322997050310146809650700489338750024725052086378819670326952225109049515753965372543810617760073687114161274396613686681349439466836003011678536715424894106272968710568958556370849375807466309340977804692752992543814152806214500313296983558564135818030387541137788023679230469112762423271248846749120526516991454979719437625482721492974594561787467007655923619563344305477547338696410801658282568639444080743572361020944422861985019203578414686586983385669544903627299697522150308351998559763914004990924984685718328139589561154920333214648736489031804047067770344539227283098564543223644875403786995042746711505811511005389522353633058328775422226033363458062080007006781583427679500322529852040573307003165474539045230535387512597834376940525290871962888464368170393545473082927895810121059370054741760648293858252083421726323650402399491425250428053553794295512436156809345450281375206062254236788774502203950999620808059037109392484825276802848042686873822209948547409899743606683418612729311814573229121082727762903810378102505711870147661574967223961151999172345984615732445850984252680250905656277216832477227698067622353208315817606886943720868860086593302443004687064376978667590637087790610321404405166453816586404708693083301632513639947234572878764273218315465162454590050062293304905948910007264255452015214946865778265528176726286651237526504171247737110595042433145031526388836040164141662433940058285214810817892095674317416622132189342370955819085137670891143280519367991923125096975289826375584776294038678905459833370253355990515819490717523838527828964248269776022605651634305931213046548619902098661781070021404523724974912620299029137051779160047645838498244972483921128945717371279971388478098203257869674716447972234602815807527609384701061211111933408751671506713498844805102478296869163106549100183960803652566578120412513101922691604275402006486822164023574208519879094238264928812650389246705904424213220135120205804426261318498074054063815979919019245208063545905053947957293163627883224029265658866002259906279744453193015966861569455856243229061266788826924822344098479595045313133142728744032093408587014330849067039309330162140011607722636658034422765049150001325860294110343354899047357298106089775679921292671186737417157938833320988073254904984670018575738000101530749324097006575905410668837455256763850107451304423261807968125924748182817975403736611884855121744392346886442563711385584132194974045687506062629795531383243542491653047329289415203342762618659845380352322611442733675212368192244353785738116235980826580856935730804756443279573048995409287700270621709041589643295021442031380594311986132697348391631784070436215535208869906222333466479797913092864871727584989283304317966335817412633980499950169450825675866576041625242846013621267464696846105160840061383047795149004215137664701027433762219132041563387329162702270408049736871736527445454312491606496530188286003712272791173977357199296315467376928524122524825761810425362396005239497562743179713218834763623986742765809625600570785401410158385345039250081016352318155799752243507561351256178547958131055827076333932839013580008927869140327236892848452240559678161935371072844335006027225527694312240717582368162864571408929895212815634820328109814618824044220246313158166386367797273728481809883224449328526850730854060960981590860206161177068939864171454656856854648557395175871096941949743251184059524423696307563728168004049611652571136750941642839036229551162686657529845634246863483059674847518046352792142916712811430548259177851169226120123442952622378541963376945207179801524514462091703121456132853227338295244096416046007683524703594340299647239040435530586467753546931780391082254190623291313586656806599719241716157075411659169205930334455396546941870518099326653718104289513870306310653447290224160468309528313483530174272290142202270657791963570290196357640736868117507470593671060401159592656870769030515986980177846776674399118923515744011048671450439001708012273078322674186709909480213533113226235606603070001402198088033876188993144773098512851130967068318183750735409673385617847583924901167164682213337284031534614880093489054538376263984413075505519186005862303452915012291648292326237970189048585670010880443120822269861748398403631556703837349233794473625863659516998875230078112957684110156053410106569788166590588277930429655544066772933283994712628452726115607382407862868495397742654983567443517417169304400177966219562650231350018115244365534226442855375800133572299962921792664705397632148044303488280166798548776885405126172186035562171188465523706713055465956322636339335457408907385411178611617807336917499233992862388482395338693434039267853644282350911903461969860059855196920585918653200160005346899730693146014222169460359839760926176031884734619163476130488627587414427903886280867657941507452031204050390441998140769509682402304368594452292357740063508730969601692084289160058256353114375042865501172953245555836408238874822368938909623373717405445585364076562009490383619072703041497273363706280095357834594714590229157443796301381162823654472400219832672014288890621279355196279265976994959095038667656662183517285481533218729676419597420042112169043326282628980720870327128975799421798964248771807199627364052506619518418771334313220536806579340103357753276877326496360033603342144738493973706801825013790523785949289316741548571433154671004640146178639167479293039212298187020082512314385181350985265049852982580470030488511889170883954711567031482484494903763747959843232428288673629917630361837394161197110403985433178697704182876964509403344704432225276868246385052599695573680407253103126379237857964621782131530482402263124782094626676375417940258745293369510029597771036428413227058381372581432257470767638931741874963519891594381862513333316720143677330621963664948920888214821308420069053437505473609831117885828905246711235791947531857624591567122612040550213631805972752843803710413743415504970360797346046889163524949096316754325741684315152020528844208437120734800032904247924150411276879513884406487500013817127141240521115777754717192736780113175227604697458264690600097677720754515975693224684605558143218795762291750603235350619981900294196999384226691515460260177469963491497410139937634232906927560363207802639014741860384256232580291060370344052995196708844199963373876553454008312508059967685330698794702776083388527624079435155906102728764679665484629001957577193787600325322031770339407419296699600856247029321692696919515123060855149844247428307200008962892077466193939323953196495856664050457676346604537528094018266001607376426838039209891869011916359658140617860581103751159200158074113096808530039786619358663965185650530798959366222337688141321405669269734912980511161644579400550545024727680568798839732146463883580307277278330733588068290259302200002453198874936162146870433548701886753512013011153054296412404298647316299943258623369708045318700685267072649419640451970341230267576319997285443022480747194023923305995610940627963647277929229915162172423525852497555265746792743570657067554586817854155704241229543591876572669737151085617143231815988074981338889381442089987655553005298530134343786975659631613147228663426657980954784175979978179255135763714534144187753546466183397453864710848227009430519728712365943237914062580658025522527527868527381525207859365694157768829558561672907565292761871496030279927295851660298573800008052059441132733344799030073696879175417236227914715383858538272254765345254730712747350330316283841727337022137877239647855731685237863970219488630025697742999278742249465942026192077635168843740854809634616707696476241781450059785442944498368265778253679627601135919975517727060942531849156891630224920971770843962322162779822492607432234304377174064530444615378009124249784797602961714353558224455758776292491806733691811660150475805331167070292785158937990415390064560601152667169779558909749669127927017880858200202933302112436930057205269772130935401128523008507293816416801601211022621716023602886073640173562553565938158497958074867824739122174803285428981352448382956846347601850464031954972791145682991083058337589190887963706884119647885332262896674227388350526757702619200468508225510581639617845027668491003227728210553313846007469593364244372938976099374363643514922702874360153940325512363069325333460720943666420210127647008429595405714536995206832139424363254962532788947892333606872431492493664430509745633154756301338488282325650997478002035238075050586808927726052617229166441784665779477302390024245266611195065796730499677570642213571923978614689707649035948471717904554359001826656333483003187474134349190566104200493261974178816978560605656495423671142811674531746580279137451155293375802118279601266201950398474980271183470021918098170410436820375341723348596431709105580916795404503996085165895065367789022200406596083633758536782457368296222647251107361805660732620285302136636099660713058717266249207695095357499545720527847477790009097936079904772924165608020004212612732865357146590185013992172940578927767767221451327819767500603043772670423504402031018329008209877562440251849517105667332430871549109605914612365512441076666746972459244431275776336917259324900900294981161112144936542094399184385370879349565409968857807221165966798095051429181976354393902259757852867259575690274861485605367828962984000945167102294466769854994287351848267030781888612484799135339550331404812160718569737226766081183893921846704397446711260127051002170545974813867955163362409343495149858204074758764909547146957050179430876514807365320236214774602704016205935033813316063114559199458575442952246928335992838523119037477107404811537358274573588217269216194959839699459641755231419217982121316729256372363754292762423305696081131447959829632280171079863685542184068834973813194283215774107011875080986974522252412367360646809738047629903218804154977126179492457145922418940808184310547431646075136968021993558478262281122440445854155094175668579289316846421941324969158059809969559475774840804296962367639104918439858717291441336095576830956061573068620590534543325074456877556700998337050113208736755804465876720846323168586107804418383117891766274267830046154082067254759766904605642777426596558286409138153371554777732313497846141872560416961678551299803357001345049496172326761419230556997360350837581337177126323930571910916651026103892651703512007970162969110474102218534490604111867212023562530713947609358643862536293142266612738998465814739308099971266459546266267380845242227254473813138478387788316192896827838577984023828337466690444160386923866353018259863237873897451423802289190819786791785985737096694792127975189248290172139780730190192533918017594788115496641340790672707636776508812789445094392956893289752479590982790508258012421031712727311234675780571353883466415832864995509797321931662573998990773944171917234132040319097362891966135250197147412247935064959790175873520530754556736416035218116562950620436804780087095252986999408610137736101997784267830899016962671899762329418315947882804074787873847078642110510391015997676248065057357277018386263777306031551002854135351708332008069050011890068838388605034875017187815632546153948222970908791478132037596529374676586053876224335594368716049151427319403085519322323944601381674553374308220198413167133159803922242369467969738442743019858465279167225265698967459587934900950346692399576547387397434071510491860995430596691623536127501420906698400815414483975087457159946817098891323314960810460461831623717677589802732203891534475336119114117039521367684361026339596764075398142547571387743171401141806269196693243917121292598769309180996092894843553232230480728356691894130579185142786072649701863413469533053445682965665539908858780465857760531038908675659321018430877272667598002981504396890703041829460893628314478075390801469352516091860308494772883246811483158055594026724015688152988568219588854264629900933398081994126139711238480373688861688301367461454976767350707568832098686758553618498639988947070090979959398492630161228694211963190635894487238280199284656569909571452380722118439604837531261962576205532676236341514325605588778516673373930591828767111763087852429915795829187350149755517018453689078652601685563255632694172853530093614719187181352741284604173696023418077675656647064811480876847283163593674723121602806777195089506034661469296771517725097150759390244764042402431753378804378786812415184189560572976610091718749887952131602292847390073380873449672758741145026553284406148569897076407404552737664673720983839016592343906626757495115004764386670776073718471758760817105600113672997075859796946140343098398911459175111620330776371852507195197697772848622554432430599656060239056451941049675296274691054682329259098459259937963477200592422401294445352349709765685111343215519185462612249061444335727090613408520971076521038033598256384710349806886967015538666735453798771925571366123977274704041548909246456260137349160275052821090852670290591501217307197803408383700817349647014653673238796412836743340577874111994268922028253217986873648981792546729077707559287591233880480201965427598885168881689534154430068881095460874680868482494415496167572991732605765723785502603246830933576654033872365878020828193472222979047444400419240457857876401782263022056899718322997850470019228930011547808828103042280636337954564279504062599668530416449596498281835085696406103445993008740185733415933829378548469279743237201560206448916984099352891169545317582611689187963635231384389027783725812650152942316930987378488793510924899572239609826029285788535214579099082007840495808617424830038724928533720704395848308316277934743180998206574729193641825343679153465362208768682220593150949733822043654863249969315709531956029497157493674980840373479785288830411622647623231840167587030232114437046748429813372835458086294906278338556234352868454475925865434560149686196376455627034758409711420385718524594533952150343242410713726563973740769122275201734099257443895369148887070373394168679930139736431791738821027280799594401668965036958870534804515426758058443236463522862010309725946425488883717650485299777171790690604009540542358141855202459163148126265643861820725831784899740718462117809447808256228102861486550869939594037353654581461595924828103728997048968279181658847326141051202701426368264462565390452998370117601955166062012282794258472057615520212834667893046686199365318594922917862227039921592361460594406077014786035389947501410746762310394350939218640338759359477049447148135480221086211693495600072513388458271714273344720046495878375988619493649231349105601978224057055047806617473546895245422855246776548078713502683452297371656874111210358869815747315521955349655106616746385173071192693468388125405641218629961850000092608474438374688034844971241136386627403725650064489012221886037053663168909477946898725134561968689725120592381352288148967727876170052071290872972697065895363253421521716346065078983207821848110896446790973633074166612565491706716547974134065492091568147982375319433693950388740574911937365591680114398184557663135948556426859538809242297914420389180230238179355033037435093806583105122923498449157149235442712162715295801933342639885289604723075401511098262747381088182944633718541290172045480170619377705764539941179394939379747190107152854739581303539888430544384071290331898712174746623263806369010932868265591207993030099848605565265232862596152617980154957765674304462099910841791374545741748505264471873718553565654256180344228885675208513901777773930059829532827664165799153447285937915312912286536567297641216255356259873970829539055869726211984891983926734298665626087456068472114694394481610749794259944656364045380311589062090862229241044732090007085342335564398260531011103179368397878418836485007531877873630343228106871628461027021858075028575960731437307675707269223592049044047088099375560089917741131869957892881942296054922608066097261575467540036821172260528968847526083477075723557342401230036448014358511010430445224349120515766915442214294958892300826114390766512873800508787022007373199621656221175692897667851557581674669263711042574694699014349207757592787915170056353671194478652808154650941343908589295894610794207222893592408293714861809035074343128334720619669002757543926504435944581245506654385713411080697042399268610918689927489513560003539630439450928769146693479275559237946432405897954804362083449628227382940020403281162388241227483527434447932688134623423869855084159434509087376246686464994674909309389136405204163584962144599028968885089202429651233829795555390450509800726763399883179938615946392567472017317120674210609889804040621397517380261409751188768162621302674460854200938397214586517525432830335849412924117804374718506877127058866700268205159551927535589362619157167646109390043942100562800636060289538996707113863947720784716761768205576784328618813951264202153618896513182048064859678070565366525309592184298165932319634385581043651110658782045280819659248649832941489303437861146706121567632456576726970005483336776419788760058206697080126054103899326765490391430434520235232087118323236607359274301985703735749831887582036604407800562858069307305249496223592704371354379634965215667239168935719543024801686847838558628716136699609298153335170827037005340185528488676078595881980289514607453941526122617960024074732098784722171223960800104667459355796903634153269457921081372587461580410394196080426131838462753342359238656694343103307339306348665095489746756658623910376189009113113907399057718006318894023873918400315572204531483321170635564614615147416661093624810453712913397276205908397163654354820839185771632601635365594653419148434814486761354175999225487689971986449509440232322404323385533206750784015759873860635136420151481236447972142603287882804658121211196930941483287963806070653198057590626495370326810968331701303858683113383314404950848436907523635723249694575101165513286343988642534872752338858358454992435355341536631301904707618537621692113808279687061495864858077835893040469558503249055909594439624855447966356565959622783181237265362314508105499843385027766918386999207093936719869530393028327135963231588084909552857020002102237352809801333490829808232026903276690442463311588353834652386857407282642377312657196280196199072968228868633253094649510161351190927891512636275832054799955998170873348965310569606091508802894384906775849103352046589062465461939458488186848864881540146285087836451969287698716023454766165553772324254400995764083377878610569332102960636344471056139270311466730544334478352682677824892715382207787931640799139459823143765275476671785909128007700861911838615153325254389943846270035571311796371496278436869614448248121282674673373004808040503921341164617360535288510580431291310648095997084239358714975565098618862611596990590793621447698863464249049085994639287186280753579420404764125515868745981255554739531648513829955149597638556042620650570522491440503469897226588312371793216912163324849957200896550497139134278644830088881899980878199029480721541355472337160978582387158598794186629653877948815538199529062695134967496678723289096111246111732459467766378420681005878556597038252436052993909908720429779938105628435788497696016772829131238718041994599174515824338484735951181795665312256945012021729746949350334613712476481764162366697774757833878206919835859150897000542380852590843990040276144341557708472922504120734554371501324006961300996894768670677859610387950453505389004311293170507307882379380766950024629335068181925804357304437079043184486342827333143058757910289120109644496901514386146965124383014451213516829667495144895175737138892082413390920697270380867411409626531835017247659719960080355842061743164902554887772624107021144053782700222521737099862505890871821214234350292797680221002953211118003297197133797800270145061945874800497606012070821171250763615502927193609418621260777747177385125209085662223432806233962775322104784117189576611769108240152307323687651927120044048922189460883106245963055630893283237551326097451570998633288828597212359559831806111331573341971654922905476181669641280117886501470755325416243154888612034543789806443519529497356995163481663084427302990394534827477235917945849139943571518952262243682711758713301447697642796914150739839532853165486274914446829177352697359837858524355039437339337664066924701845688247594052112215671140744198583661459622711700284670020751006400169721226630221006896381750100862857989128646800049997388206310337604289803007414468321165557707324238317697901464401776959473280860575080133238338252033440888420489965736793183803937746465578079534854891212334421025503677489494388153560301530101303785320308667184749680923364342806364460692343651560887737931106075077421298980648894626058465516178183100154649903826496977702314112082910077013117768699848327253560307866188230023590001658862557228220433820810844765972479226298004673601783637419820385347502401818936886108122001975255810687575745567581796326718576596589062640182853285086170640564232593630210400352745306648165833781685561015086837493264173652821613735636965672208091841786276499043072395639573669006917999213889220205177364895766098077986137277576857919904072447789735078525913398077878673278654578508477374065801014584688334073467599486975755465710370452754013431882160325135643730121076835588008140137729685431013682320231685409848885115514868925708880277782268443858528620649391268036531905360744407766720287491337419579721149941228302724541217778376796512686509508475075277306522271467054563216004322083633124588332079414814125318293306229552699614643156758580122962796058533543701598568617791543615626505404315553386598020924943243838134612054209023951730970882213449632275634219851199731390253190482527253893463996971488326172574093102692744023022099404789647817966843622280872150680040471844011988722335954504384512217935388652979168867434363223543738328556704140942173905501630994576274131746561708927148486312072399513076385086481949841014382689684865431997778207996099910809786816106828285136998217229178854612450799078149370358391241980669164747207463013727363530630265608697332217179241646712887812914455985999495527460511645911125045728536854311752107981848782287911192754579418386879172054927362865518925274487567992345600095676612149982428601485686702987273221375050976605561701995878830127010162036831496565277491814388204443426221327626896391919094413275401069649577787655312398714798322503729915967903189719546964710729564864477512509963293737018785855345996998398702477688162574749265664043966587690239670715281054204805154875907741715166446542259213889419396998639160985379002227266399587848014531509494661229655381131473622428004065174697260332225647797910436817470400829797255158086753345726166456167266721225837273032857714176150734657804691919072743006899284221495652545216947776283696799482373886992691377172093908595376575905210603132803114726473261461749365293435475496954304630309791748652555714938167512485822126640887637225654937852450631417979653277659218054754886239541363815142393539985663769328897243287305604305284235211813097389158031693664465403595516008966435609507391268838788595356229814891143277884286916372406201728308951978015658143468362159675652946997240355006025969379196621663915205579454851623589386984755800718848723034323492233442450639314334052367649999366568990103836345080462693150030733307531069625301754302328354893356378775885524790827503682860267697168466185771771317787394848383558273284119289726855205113298624521555119649009419399974028408548708891174427838743478384762128752480887248886383321160211406866814582729067592764221317613277555154601528082488552558052390028345656091021295989926114415546777802318224227078077033550537026745192089931408153289459018431524229334988291024438110001073263993964435575994497651969242562927971856655754755794877249449053535376475026193064599794768774961127954134554717550773321286755694164437950923234632603418554282585364835262848682207930629408651534029571332766219327789878204903220318091894865500085423431317305998135825945150196708614605303867011811676135632597377922744832344183971177885887233308493040196127833282182328528908275179383777182545770583406572911296818221129022109322763121811813699253747267800905775474113698403430751888899745606041293858427998868794856371183838197690048459974625078050263399755859347658691827477803769685364409430583051717947207831632537656026630927549584092206365403241139483687958464429132104430125743031865189858100489961578648648519691460055564702415235426900293510826778373395043457975636090400563298453868438978808113534013470136869882875995159878535219162146906372403098905459268689859690564619449292522608130557172513190555648923901772440963136246994499015141353515278813748407762454360525796006837017401699527523687976078069142066392836663421937340260954173791488942688302799672624281380766561687505763658410340700566511276186764698397846328734875900065611043599773734435349395538180629349513317027814472824846165301036742465962884349583138917147822631208624988186213499978626826881758870701296603155516819537242799217242745914258475407324052926214545489091167669441875885753929958910732010162076337160627744087352197611729659719677084519354303010867195811553656834207063049739315702347525643686542908254385035089776510789381744268008265832894533426335330757155631102989990271047645297101958901284235555320900103937722016189566385307262725203204285495262921850460399470009888744719981812398344150827132637463451309114837325879865312786413905195463867330983635810791188482696259037704215816673009890661785962841489128640250657854938440902073817487729541809971364316758558423210704653760539827542195941838037874091907420290579235593730776305227114422888219261329722535487355811068384729687573206744801447815581154246494583111242309760098622218881849759741929063400100028110109282082745714734942375889386652694295626256855533213343373750758833094479741392853098776256852071497303662859135333027325893000516152120569481416132409967003724821046902257652808495963353145532265755090420102225980152076928232401899829825729873223003007156158088304010923293815477519770862940937588916759122197827331702754248787733423594856669181051767641276677825521792223767281107188799489432875633285285785204831455008109981559256072328931306148724506818397088211799997796856972186168306538241824905244893409165123991750809407022327962011140932239331008255822280090926039838944689872950915588175169616015911330692738553912758575202972987188910214130659300069308975184300297521242260527634533620274410238621935354268297839302865866750327563257283787347020269175066568663886138075451712160811746609175674903463337895134419068237032788047548667229266366877635213925464993831763767207434494654678049155550022643852173542701476748054863475522494637191259729064450719987516422768674507819468831538409236559141578912850784270174251948625826288705362872977534407432475732423920834825010186904382077548319358443949698889791125487845165120819505918220916547482323000967601192604123938244965757195783629886869524102725152672588133624462393650827737508465001457017981937801397074972195239358473476484554530287243434994065166188028386046913326074480004900717379877858073414807041428308902835127547934456528522067022632521618724402136123328812924596945102049509111704409790147737783996450130886294308578081681570639281428304729260481653897790992543101756122417350957181641187619570207127568590324223770838846593898651334956579709124705262203681285801671353072390637418373319790892838386117927476293217135410645452576782582624206086132900360680266919682053892948615755597834447859270167329307308228853157741951463548527036495174487456750762094614801961977122005804822384223060367250471592382750531317586859696151075686300269324964199843431573005788398853733892901323507282395897754518565207178425059420534341613147195920853192194319762450339991595952724959222964182041340714687567295762007993887198143152558651262485906062465830907023908432500986875329240943625895160558404081742241345357097733039117664746403794971809844572155144262502371199818078034375644086027930685260497537940125974825619187192364463488244875206594512125145680756726698916553617661403465658309808850609858972720671045676621906383284011242707766734827387265596767041308446436754111981375532792380760360213812677035363160735732348631195693858847908132544021234691605308478494482962198083471198841347284533709849942782532983434405091896420687194141091957600439828437188839935216008877644177636866542245992939124039483420694760508672093941124240671682213816660157893361389085104603597679898256991445191663174898468765600341235930392440997801261819067790806872235491919460960431405409155937404945932816052860428377946295215681598503427849946923449664803701178358923904580103114093990307270906307371264041758472756191037966168384451803872000910178131575369548217437196077756363627669889761834614579150745467238873287415407028092200448227022000677235058658073951072585274969008731013810224588718557129302962396227556181981461454408432938239489534697172817046752502640463772482814160008667980926875411585117732242459539235284919631783657935911586538388912677888195696432580109598120957842512112233516838523234024481516524915737648922633760011122759194732988142683509813375368473837668544315316742598964923721019318596905456334394197811258030578637385224029357335535195587522444476035532868411317982043420406041242962243932780357729231253529510338970805697268379876905238211012257160325934049174298773453461984058931820077153730505465780319399749610789514939336119503279103437550898127590105611256444690345840725417022013667228750979851837986493260982070053382257094992342298998988617989351652057321250795116148009587525123934793232761695536344372498440662314720694391418029184610472133316888928807947006422824033034409817379408748441100616310325588456042777575888555656974944145324108463573760003576504795932301042453858548248105057941207009824654332593926575119199937602989894345604418557185684176836719945940248266525453176898963434551943101168982852522692376814028539033456055614136003689636490400932706970366435812574575150828095843279536380411059105923197793108360346487189591662689748118345182650271192974422250788629014353916296204705977973838005546663868742592085920950686632388262587232856640269748230245061263505181193092868564229656145238924144333037002668412425177743347034815900428279060466284714261148401371223613705614431217066241945377809771157842951354400205277320758280291067099037802772658283614825666097780900019405030552032833455647185804963157900929195293085059687976568927837065391508364353138465863393031911389130715286985714925729325706143298445242376370014380362935533536305278874494083070768401907924243678675018770225733646415904731802879405463207426322857209698183271964853690439538846337579034120519699997533651814374574117694562416763147779982387516125032881808924947568002163950240744544120409913423116067161541414481586123632089170003493101427809350175540086690896155033067063712189344744293836702607472566293129262297843511089449395800543047810964794439678628804496422556674193948424491397258890387560376695877659344495926838622754374945087555538712394145316436431198758712322060102227085260774130160788805131528465029311672561504869460727116649133075960153314800634771688901751687248954678701461684068814566299492139332966428078808454397403019526948597902857715270496384562149935358466501771988478887929774350207912561094968996195414403647554889649637463554403819088690408310659663281783851315723142102625318583470769326215602417266728873142507178997988297603656370357540346858765472594570491396778642489770003909688516953576947129277475497116538219647142299273065753611323722619294554142503832153814332115085837182213184901847144362255193945223125725821371131962355607295739962961762174870540031031945635081210730912526762120673892355626288890717655299222311863082843831612432647962434911522623857203249161655915868987865519602716797839538237723584552998167405577850914994163597994158238475912637377115775116286114827763921578160790064787491742286116188512179173581608008505646066431353028876523506912401559814431050519075819659099822471827802231181467003691592049189519302062040769158296700586711869209218284636333905801499858092628593500693720514946444784424682634188108940546387699315798035587121844134885061116720628062701507400116973902946453550167799798523110640459960616654662645017320102656241336558630536892434092622079627119061423589687564596472897595027855955471791532019312962900381755857585953224744214129924117302299685779059056073229486392247499553972072663141467024734790552518478880759311774516753732651487189751095819206384933089637565616326097166948293460994731948169028551899409827501881489547029181045842206860385335636039691784587226291801031423639103369567793876586367823269400200778012538017879339595256762188282913683265200244526135095784699427653129926151629116109423320088159549813892842711328920869988278779295792129169230000065988575574835024589395341852441181918128516630220762560993998044182772028921809618464138566013599985947022084733096602238841509119061661499065881464791253038524589732468960394885663398308481667967567791330320747204426762636820608097059759139357082943866341092248971081608753774234778563893717709224085855808557978393762660225512165005048847710412047713396448320080804902471931960086417597546264853299136614002047372293551195352701577750686563297995089122798025094008059071469099611896732848992056560380421892222482630223951716621969812952262934341564785395409501513930335085040964066903720336402820271976663957666363250458947677755495268733875668788975990232351341604152046195588468493536151980971790260683663574325067918026423413850979439958843645051395709977815840601123249829146424440837695331163578303266108126983233693865332812535341675419955309956052203015276609710763236694058026134320967630736045626501264146382671109057263976932922155930691460692329413507201329457003693888686265535778096447610041923516658764115208671051790820364794229677373543137553350522488864657821044999105939377132911896713230105656629102894316183576564574649612864223209340179922448061046217063967136870960590747074801756473696297464495890059791031528345994032598049451249417198529074560979181313554480292603604890471608326355314652199636725236420192578041359438886943613460104662048348424557956904406103582816121799587439407712387039057935742808707254244339418684260204107087608359413742331014947037942491616002089862777267593952689352737490036668426895927655875862689861568245444491209677300505776890528136615441880218813505877105002221784116475549186457752720526148166283643055701954077530891076060648046601035760938318285331724845928371222862609977129704347736243785755814028373265272187127003212825015307350050507907758466248008371654339676519377645381813418015977583909425810600031628799925921709606850592177794707190328769069586705000322008596221554404010233561768753028952773834724038567019050688325531934251527407521908058610580967823865620913244949454703425536099401028411923889227201464873853429165639153273521054192118703476467899184181322090909076116772972419478950838767078630664432517404229791399613392929195799154039571055428295392462058942387258267907078732467888279548946970810450366379634955341930694131099493040746526294304356095841211137321315306937554637576602938706305670336894168802962788330498419183990171591691635199552584853972583352892828655397616127893871693922423236925903993601607795535986727477295281673216320180949524109764182289216466906473135399015311001483329458504151789655286841056053297287001599070721756098246123403679289047055892455100203262985384812249064999534459871432036543280217392590336041499120048270396619847592019070689825370764227128314361949226631496430058780052023467610213112138305917636299982901255061004515662315702841061120701820576230780894039220716206983405608299630708503631642330340151985381110141049835042335152454881524556604279834110082135861663385639491348060446113755019948172905154281683721868623055948481652015899944596591402851464738935237817339888704118241754725219335879204313981190609405852359034570717448881380183330041800937941878234011525898672978571365963066082344288782673028181062561745873466853037708742627380852820005997095506309019657785778562656139542520384864941278204495163735706886659748163867668823904066117653617291138728325654099299543897630550991337860593683828603488415586800246172101057794899509297913922814937610684589570767277189715119731851377081356357736213688440724086203994913354850867062462882142112507350655181641225712192880215431341187914282631613357574060785018593032920788937263595997232330612875089305465684173166702430477464135457453728977758039168950149910493032269557757361776834442699863756527232831683641528994040391268991746822759253244565874902344229860690902951615888233974264989006139336723984980055472203217416946706283972743170770651505722693132732004199160409694763838459790397145896128954073763623397542329240801802195077924138775967091815082661294576446175827849145292446235956154772848756286995263444071300093164269118704839866568896704002001464754687933596122710701902090279726936031314741581475978961891757495921418456743037682914331452164833887016797899265110618095104063822337148565949920458149645842976252205219636490873495116702545894033481266000203904941382735030651314115356015869517702083470244425422959152196292071686406823512781329428970986078004911487123564592146510485019183714152169539548085250859246061879222765490812275034391841171527655532983565641854709669504305834317146414295841772738721791328775883154464038949021913026319681573640070506654673851498087719811103955475900324709767108262015104817644621795881343064789950982402954025558864183961744011505610474964031001514647898969916260979754017677817179993530559728359781904923197791693400206499921832585003353153179066806298875114189515054277504601079713687941243866209360384399001420187749593676251324948471659530959854006945920355386732474733949773471421914543128544373467100098942555516249052363429150680919717351647297349819063028908841145057952776696736935789343857378240984808222930306902631833076990106200670952399376087973644499783130008462475124600812937638199271035984413647305686601185932390628980329437087644020058417472431532020561111390049668212674555624550308914309469558113285619767451214360469309025417178838137888755999023958261596157778173402899806303445702834133599843501530133708217729668811806580828434800127098930196513901228078304645685687827769685904825899750954132701849713235759718081564072470131982150044566186514857930127037603438800776043650745700998414297565018224027622949039714667758982818270567775255662654068007486249015750116696749113246571457925375562687509508182670322263989563971304330683399385840802091105201780948921192835842310714292711532529293739129554859030003747546715323086039863041758080258520857275354974453206269004932540971502172376805401564855999420956571291196920578601490541319130049752466990348968424270084389377077725481593150633275592330743934608496735430376732009000167171844542103888000300715034188308999785395455874398055964084369584682940767000000982971770292461408446249189248921758414751906263053652774416926796705196649471200466034666311413647203367976211044182893288826251975441674985521227348353002056448338859181318156668531189870216478923131226315906277009421071227580733958871776238355030327091016165221377739979606982692172151962084708582890128469025822791100799637139905077608213305184110607123891665495008712103272704475080961095136158383062822326222230051413323216842413825678416999889696185550421009609525745213558973158551248707497360649062008843180687952615095494624667904618026944920124565962596701067759028573524946165455111233213317906312112532348462634429267712235784028248708001278500014914055410088603674394784948578490218421407965279564960541204592108217405205130120523585454365301250853003802449330476110156756828013571077980102700613259633385013158922647820266029329414340688410395629172787994701788915902326479606298065558126186992155723831516778449472269176715879903053110644549859270927550017676247358095663895722907400107249657469397379316353197011780294345215625041822248434115185752024091725266359444770270767666468913873678664571803949440768483239339505308543524565403379940203801014374309142390258367508472272679380466713096638522711454944945177937730677877816439641518450846842669846431824026227897139236340236270519576364553877551199530850641365653733862426598775780717110066318164203850488490180769265327940990409968738025668625867534800158398829306477916518137814090187424707528168287325451987647497207044056186520922648325397862287444211630393330357659769006483845904886039280032338892739321643998461806354136174329851832071060250759589083270213159484652792392216984279966162598280041635168101547220256837300090269694632205245465387686578965657899230326002693886882842768795615623767961174886507972187492856948504815468853350675011257269496721561499658950560537704839616620745273826349064986563370563848887511291354328919962687785761874300422907039317587738756817829208263142250194900450619787896110955318255036102406752053469050476787896199125792697483206209994564732767396839480479141399554991774763494877097791585849622614878528460457464753804238224810643469261311390451071387431339926493720277473335421980980827198660408049733636544036306442888596892864696756286544064660303704741955201417150034910279943769127118204745484953647656629994397414049815243947842418351456862462506930989438989254570631251049438043622145327523387127104661895466747902271758275337519119790833292406983476901305019007410868590056594281868937671140038723157032345915697003450606127882947396967492505654281978207793038754565631452381465944018525933609472017326566510906690418606052538721464696045934635977148130721950059896926041852736505567737345419203093509410080562283676280672520427086725213524143006546444315681423461307880422554575004314927299987720030478603592366635251348765996706559198645901033850254877195493935948338635127580331751029676643464511739745516460257134566981340482790982380998155425838787085131003017753382589400322089496059235770080838000628130494516367066592946563182369553612490657092815079213651458732427768058995859724996807833934500601110223657704451407100483428426907739132992216950468304936169332771378570979657100176645841678781062041564925750850790377126967286697395458684062751128237019866443404031263527025541048092594201075087538136558800598915699112033821703413510253779795975657932369749897944787138758940055356333778461683936213285114907546450884803464042554746932995044695969176312019579538564854375669743170605715482094788131550589132770289154350116026840366912543332733586075108578635231579493192280254723431081909509405693064769686328058446948106818024630062197142555001969449013887331646052020884796261049527652798753587842121813250003390760080437696391806281579211835368590058711057421731672989195311460628447857593445270322125325495644685179454765853009089147193623381520640755306707603637265426252274756342270164795635052959723943063093965072898239392882732990446430541258313763254325408746467594581433478303231778363679410268227064740399287133914006911689554141505447457117864955153232999775378742760676265171662077990025026039794640223305247858447262097772903251272535423882045289978522532490752492015769467012510649804182017557127073555342321325388318171268854434355380730744839075569766699691756884507223622170278970968776365577851866034256298336121248212272150314773007486055724944834337666446603173442305261060617727216726349361890958887402771440533454077967882616826194807890258611739406358403545279952774317776489647766723856159800961260070278526224982711118453437806593867634639167034475538681964762010743138564548656409763077170270950364423356112642590996184182381783163358316179046156077203843924173527477460522037044848778273342345961168304432637063915959111241311159936107421464302150523565285878390018900171572194093542788897124808454765625759910995513129908469130507767241909481835572232345449246075782477092515872056296790445867751718920925691039057741155173937444571811826973737034376959629523640087431995005334258836261023392377318879741094820222216373779493923155957436351130451389390538335206844806060160952611065153313408432104666193239189101996481512877151386636330564845663093885838372890762722314710308604954823150558015732243384216253751231136589978719331515300184074814958398594958608535814337193922140958962049371874490211337557446283894866953503358230637846163435087008906616328901273941985962609500416574238208783890012076051184240908535728675260181586899342519568936919814204817599587617972407846620197183442282199862232585512123732446057305946406840254740636835720437660207215750065265739279642118974238911639328220140796351234173527003604163677012654767661580033397820519371235078168685101543942781654153263871550996372645997711390974336223010286465375818787075490047056420767791392502531679069887631620109737729015598992023691594326886722976698246911260442910301076401444692026541936006161186146115487716300712002288235965069538865647647348122512112194547772386062500906785412108649828398230442180983819055287332286765484066398695845105171616872147731245256981068225673406710827230224557701530384223506638244166105218761627200502728226051413216744741995167729516384814268799353195594474538560285269119089274713156361319355074192783703606776945587143030153909832048991805087095279925311889671233914796820791060181260877337530224070421474331890118655000676177169094066369517610462357415773911810765210589169159855072652468879299102423523281295850976019205845876269656012247192566469991742615636704959322012469689404834129639790250441501159873441956636725753895376224827615898167041598999156130776955702646735300035761445220378537100268156763507506386764606148064623952447234496142966412087031627616936804606412284346718358709979356870508544970691742105231473929384888964297591918869982690165270419195932432097947482163982178478866008991756554222426816081786093161104585793088706402005439550338332240514169488815331065459730132595778417060820271082213281133184989097686555273343469660144267943576814169620066332886927212061266597717205224660357808685758694526178632097684271782595932613139753478477056148801103725960520074513306500004365735254616885013765625386656244866684390417377107181153354665541140004718660003697754492576302859514124579041304002149112999989467982671204543351268338968957246853249848091961489501834260058832560300495394813880926594238664555149272199748160921716612007582371231833933248376475591916278211748411670857115244808782747585981530617290418102393140812018429980043477418605987442136832109197229967727606013092323222468950364923939811033989492338306455740588349338650394832549136906039911848739129628324045902476608997877851180232607988355049911628215081619753658306271974473189091048752315147347167573415798529542551271259267306567152701801055916127670365875964600519051932041643526415889933054870839606785521662655765933020537416216350384426804609832959023707132219397524710193640783413607013442640012654549403962445341067028234266674148940064053112910820768822896626768056389116627973850404820336706845300593965860482120032911140679452251502233023197329284487408011433210463607787664196506187866520747305283912059741420138537371512454997269684185412268548089045861478445211639082908966938963181519949407867328691024133841413245874746368646986260467121100246250431345503978780534214767921858879202162346631077145704880879958476867939460121428662986425609638615945548167233905242218926231136916381936823052218132073367184566041912471513990640340770433019314224410411941174961240298611378739844763587776101499019033287021706337481878874018520389278662264276774705850807162477552831077539631282287539596871876135341684703072109850697087923580982324330552353770549365113474579620458196599626903330334830945505291966121866223927739774179395246947277054316663117011468426588284556342118361627401426493531723036738214787017163737626182577467417229761758236698527657937984185055250492744702239218805845460163772155215917826912860700577860732793727551840215285606835591041750139804320648563389366104437821385515316074738500065142008977625608847871525216447832909280089051725775804677833630764206058639481236745544262872142207339728791339186732523114306542558771125740068947248299970900236101150113252140357733961054852687434188668786266468867372778685794418934897274206539410382590939565550694424941868384813391778896018763327013574493746462467483966217107373557159630083795152840841305652886774816832647407755549651410175664613109555000754794157540772143984587412339595645048754868557579698454971620305445454515220603799396237635432073726663572027506219400314924545810143844913128090455457190221318796194819353293320950785486816888672492599278236061106676841485938088663013929198938042554490190980837382637655733065519081825161824770853492913855452591670082892161782896069482201165218731974431350775457927763391531167850810693107744206184426567121336818227006522584561235043281703324408977955649056568606960912075097484241297137056872751596499497432622372045758115366250009739278052678026011271153324367972906703400385748826385499020043955283957122889280909361111784921339634630090589479245291002927331025634008180938828226876941774462688359563913976337873622084005265790439903064811241112055228186229080721545264258881786199197205147041637544875908151020799960416408328965426519159337020889664543535986935426235834817894637590386722034847032485702835624222922949457881988895703093663513896470158851716007185989219811044850775310331941140671535563481152034466506099572807386186826143024624827351261992305175821706981936428839907052209473955649204312383557616019125116403450012527086945078170045443939784035760402652457122559370689358947048861115315052600960222410453426940199991070764747482680095017754188962770692602606365536051672318452104152663803424922316346957793556576053295265446866875603433604792337849892963202413345226584035536293012308779147643721876383392082740297695106490300019877813445241236673056069102874881353952551786384922963244237550423427052748463179988098986702115257743934948381725301704859800543274273765496686635501995774900883783218625491935870402032057021640160756000914790579379132494367794757641649530501497052262465152695477892356990026414176934989573552740765006507026652278616819050437704415086800265345154410185535405986638556663153302539784006245462210345675055435623810211226399026117042886608507934723334994022162278140322270249112375188928251003894674669909180892130687083896277383337843020692033601100412935038261622266471643217170711056682468558130257045179155459594055448094892917146127665252199883183086217749849473986206303397846048688081805480279703097554053700079625622480457582183851441105055534377000514172801661006653854182152687413389394252170986398922136016793348093162902596997149617332256469144539040785466667354220602157829751933254621299390352767617539109923266130955086554183610543858297178397145898768005137823132691751178392958644933729514381664690929307666572950317162519769256608070841285681173009832709916902647266045595077149758787516337569027897266443570573563131612401977091680644185308725614910665963915707321068438964630478073399523524100864725104165029000913916351965946691388217150405771355180981272692450274789593520627635912480035826438288953139491636640662899516077278927012138970604669594178133540575192343957230541191929650008804883916784588806168086187907643989423039538648660994863027797722642521639616786063959084657476466297027798645945874239271391952526126115269106492303705895477156700134762011242968399008778267107484538202653132025887119374396983818385084525418431659430590829621951838513879932952293139220354856220623387738343295902719091595536999568435107679221856277883325240386131908845079845676608482519439898975765526059687102924414622965318182198758435896357342422233715856236468092888691305584437981457851869049966983179602503592757498605817741229828583363878324111999904942287321340731212780869053484038888136538047549866290771686640533092327856072916664340511510155765677701979007647545462884923250440138961366095228180224205302850967247851183229253097733370307485070547756669630109003583052682179007069790265976053594766418064037766192122519736539728958093369046657864733148480280448699189066183405201725802500949883138001472814340011175347866917652244734455665640903413185017129308306717087534915075157492650183374889243414504374602526975359796790629864364347881172001827388228805234843849164237155484961671319251974754747952140795239528695121589837918640498335090976618023961964565363058490347195672196699830327217455197178472778842755904487360786296832620443012567510130134685377607737973277487697470093105423365924927497781392185833966543377846496419562680728636182135899303350613323384151849074147919351154154129149085489173251091809347190385574623232188059822831203876646039730034519590798087429280824564808739290832733127723474393302771118138890501981988058580284217400401423976504148761398902620461028044496709282889731943105832600244413543307977270277339694207731534643521741369037295480785239729179978228924598418896144754942063229409918448191753037415103794955847928974673078274986290672356385909900328266605425129135668491033802386944447265249567554715267624716808814921728301400621135216981988695581887560022706456058318565627503525107979327410812182402796602052000846354971399534906618446648539405553864228818948675427448677128377066891080315404050821900941706138639170373207166484158683477241851184871034367238969382114253755893475445414621276441553371590235103216557256633612280061158167456228441376816665456774648910032542380341124904741136032762011407527161223475321230561981520648552860270251144103700625204648721981018087065031861569755293430815858583246253056095513768569292709171806853117539870448853957413192845725061256239113396773355926595033392810664569657127349262191845113337155652338308207505184919521041636009505178045459951223541152252173220209050737756264848649168861892401088947396880973278962860412064624644294157121917939666598750294988582782053910219165714583448419909974911854726297597462037283362273404580739519418981334582579918406473915159066567727382847353535435785300163602670597657193055176477575194437260864913387924926557301450835173161124304403776625286461056705090029892464376477481151261907943001777160793202805572498899636936697022089626646037551562634541266752466217032993043077379880647989709157385650952459914365269749112334607098430179275458553111814647950938228430395827440465986986407112644356105444275888895867668113254178703019637302475567894922779834035220973306800886078776619769633195497131790289671264332387398491428798180877396480237729833472998919266079277877189098522550272812814952096954501620084504366301528894063726622477168339558685011086171516264412561661337204820198197654982272212365806414293340683949543934171489125729697161471980001847341071075420399779324493279552010581163182066803188191463562578633522135269181927528245408156970778327884473475252198283640265365722787422896656830781784261979596675190693344269709751954784047671666140218315396807601502106498444950215647883933352127907635469040198984695535872352050813684847415276958688661342241338636241418823833057160682604850963629136580453380916318906272776856120223270060602231970507266945496076313631331873493385538369018425980215599047746841306943729676055642555350546724834048425315880254025903526271791161358165114970461179008604162915828382362857799722008039077516241035468077598021176820284151260439403036223741656549789565466849303880196959569372406325266178647976673544013391996866448324601790478776105681621054078690075638260180417846418610570153317503753797873710261119372310036883543295170845469567861490671245577225300453457515419067613862192661103951860908951430963676501279485832164171635708417534098845998608813238529714124277766949020249010468117056008816981705933518294161599374448024242307936768824837080369523649510026494965947867469160065105648093156113922800455679870233609183231078808906397641697884410440548587124738164015873125321289286690245471431844049048795090444353024972721995553617290629986039777589654527650128260343301417092915915543568421931679040829579105851878507968714551640066747897831866497241954970227324165136073220088803506114314599917645295540307441719089640770293193885123004370134189506688610400182322993415098103205222230597402144470144447823374347366651702343316996638160833137193595633618615794558709418889248528122380284719680788572428318544152569566649443624425945490531210766151622752767698281662918716515104570030435167062194657906580973788640844845319176069686255012003861593854946831473939735173810461212690603177055011595289959184988091614086044493707642662682101079497075944969741936293744570808137585074540225777088792137845409978474199031341302431735058881504197270133599049130367081510332760409261433366291728152898852278670706289887237455693675646399571898050958786829707039489371948310882285333202388835451295566394709549386264195328948112566113467052850864128211407814116042729314589252257583332603833052106243018109696480872233386016833955686233549102074922024216916155194392501560601194464879342447840589902723325701159456848328922778627969631478870356907309042977597338505153995970173627831814583603645679530854074406046449171916782319224707914370209198054215192947554572701845406091888678716031150499888396850573298643829528735494187683616748598841951953100313793896575238223805473378180436515202889055710032473439024681999533146903948984642820629946891322884086014389862228135572502007338270424633390161037660367475279768434600504884065931788078005348188467792365735570794949623051005560239453243866123120108219481950513910684217458846001629717915679331851862915936500932270635568945409906024644233332751831411568107559494671702288389440453067806390725276342527487082786918535303367877426164259573174532451365971936425638401468478253651981000259396093192905133749609034959786396063742876173528786436617540971349356276603940100901417430522383267852169815176266108565162383731829235632094499411265018465595545066425144618264694155870221783453460485508083553559107565169596824196303755807150662392937141522534124987302935569470980591501784397898455369072691041123723434542659772399265395459798977164261140940979608232241476937866763496018285227138492021883150304083733669519379918355260020423842770497948603524862357226677585052349342438373644601787957183324593757762782980283019969795151432724322445661978736881079464753451753103155967181751915710519359566022007434020038465802071008944766710376732535523984203618232905871877728804688027236364341897620301360700065989063385648926135701799884461412475799463106326771483903354916302969089263608969103533001807056987976788923390935349549343724934879717786314733995966580995765645591802207276942269587599172763706270022077890544852772646741644425391330832422219913358231472924771225209006879120791455958084996177510069051886945781058214549164133519515456421882139703049281503218875163548938820408292733352780658894288678607918529375300114015950032714044338369681703173223832416815993014352838020773603187191749764721290564880591936642490310944669855961290917320493580051952214869048345433868048879166554438684021850557052567295623795530024706905802378509507462916478459461150675868613429705600458991664379830921589064064647966995713377021546141975264330277872636740385668592593062444069851568912928198776799411509009435136251048903685740284145029301027138233961503960015350040470791655361643518651080225273919042239505181998153651059116336843698013814265750027969429364065730566686163144097876472370678953296677942656717275241925937007263288306031076303875398081318354128032388165707380644114465297902494153504334364099670267822271410240665812200593861813800398806128069496609081378052644282487613900170884463395280671902231407221373706694132881649133052182511793352994880011188904479116158073843411805481487036224025229597832076467693503200949578839392863489100534538511364353214224689050528088733982635823419099434841047260040258914740876131325744558869605526883295108662244083561184714983941165122034197123005809316224796932547252351667937325986766225880018184447743373851142940635928942542269596451823140785157352332705342827823705649981320805958241537850392479842814445815939004688189587528776715616481255793626820942061157673499621890634538779341502522963338685036283757350202250680223434195009991227923523528886995182681848556967130632543247754873641309595355680112909694855133612804658989883865071113137671582247458529116364872991706553046942340825396726726728449741114208176405601532391861168325149752632467801862992722051042432259412027292119657161894317447996295964399527719192660904888064274593069182363377292453336463895915511614742844800805490092887368544723308965581927180652016862083122692966553728656787831565088126757710164951233107166223994773131818935895815349273033637711596773081168261213500057044003451728098392620446145656747453836906850859501225812295580953433819949236189663880208635418462245333777990151885519746580701232364308051246791136314211848899286508943439707636791570538927720567472183255241890639332998840233497397334520853673934223714682347334469650701785305095624995074616609705303456389000254239746895104845677743756185305716357152731283132106937164781181158028909170877027679366122848901812490702792844268871268728337217955726378559878441511517360689216531648791198709393467504296439974385201104222797132736514381334536892163774228502222997504536194095262660430899882026326690540708172376652732285803915339418768468506596424850121161094960197707968788530078021736156608904912345737157011981019850993269311641262985325021285419936298538618375545281270085753327478243543516667150008065216581427576175209204521207161504127600095927183877719851639049738382189577864135560278765342903845625290117129863894136894227542503598696599503258128568605203110377076632361882181513516723237222480879439535616304733568806751677556259620603696872577073084846235334045597679985005126298648798471984273277806280723564221715757489718650101863224753861860126885031526855284112595978398378017762496817828226692503510194785906937688340230387687427202732920666910852730589745579863200544983555237461768746703470066674396556534633093781078794028650562665546189643766256039920090937452430176470866772797406822586540299343793702812593002093066212085422517749636375106716577806819640389962442119055169808014751003291680379477995497086717144775353184471117477556241417279804562125654298692187500510186788464636382401609788484178200201734316969137682768679139954619431593535437557051284510701449700821940488198164801408681994590304734971750037794122893246968863269408438873334602871424016495260559172964732247212904796368228635160950772925494397205406841865228227257688949203106394713364038040293941864935117785349603857955236128425845988079454486338623970326201891279414859969950301435752043100528984896938498441758759789206722163334086147385281805058102215380666242111536349337088255915354561247847265309487630686464091310269650088014116347044178643500356888819804242129408153574620749320728246208357372958678564747318346478354638890787880915405008594660790631046006846450931806431281312735898879615060135370194113398342573107174461877698680661732585430630397006218991447303052989940517535031735475066082173477497042615738077173512539193305097904485482067985861674283824167244806735444622647263383786191813642425011166237263735904247102060926864479016464164409233873970321968328062688168119655006845674618333624957934396745360244287247150282319857003504568503496350716780413769882621167040423139536128819556556756108206480093894770689742569171060629805823465760385334145593551414956871191552707680701587111247360709187513917745967489111356983479837846353745794076925530733652623447172660966670004169656236906265332784155176334629682996725359986398850978177537060661477883758064113999835375006465671406981302664272348172536564410427877842313823536505694086365759155236985452927410281283846961414976722438027470926984349611682110832496355138298092012633513145155865692181017113969479800212199335431984273901967249900862877376756041341915144821925058973095678916454209821480570130186592615258133679995978649199138214869099254566064201317163444566640669595727123829842765066155355930944932079606475215051011858447070072692932256492853395815830220381387745439020996690834813140861718841473084636522164706563926662141756205582899221627599785398620404205628674360195181662599672012120424180878665313206216980253712229998118002935302276291915532095490914771579928886912290167237373063317908426857525544474186029197228141899848300258476727382188915678529244675569268039012910283131270331616654509368813822704758797856298264887273099701866775337273763034144410438679933693594692719512238938657620062322491828503738009331027865704650754584746395199206538731051698636103163158327541123690812055617689595729911407728574594688729956212529537011978366047291898834809585150038914002872075526104087813212030562156439563891711370276935625347514821518013071411342011915670991504691964937219168502421305891635140411013091316584256851732589667833428774583221933921758653184544252198110024635488328353721009171517204680182919431177414121793710965327481694484796543611111863694088656370595311144393350098548609046400346486150927937682495076968372059787458280028496945019390010674255350411391032707957169522966133516856253063545484857499883652223757928142864099116876053492703816151354025365853821604994211822911450274010976796434983848502490994660806577902989812442448563417517725869366944081280229926160195017050745876061790573645742510212325557697825040182104029375517182726627910652061098081535596045558613447102429001154419408750058314818057662855086808124475272050770521754075700693262915308406392979981385438431431698115033298408824896754531466442822328278645598584022893987757138533663153737215877928338361578520460770555094918249443906549215428339422137785204716256866310329141349848581881123282051897345718969340386753929390912996420439497794277664912381763910547551612653133347378768565241282928380670188899174255559228168139598279413766212704897973999508438256761892812873158026678817031199615861169215360437988291918777534273366236979489655145983452396523318968574099409889559030200719851202198321905471132649899718168043717162054900357972593674724969079641815722232905844997994643741804321410657362405293546549353789120209290548583309936905735252818671442047511048288437422133742611652513182672260574986543024621827637290226486812609235085902937720721859477545953660551952344699330236774571912141612388211156504782545319416847885562264961189673560810501713076740386220095421920564388361741764845394075535164728144723819050727615315057327742659256252648956970331884303423142675672697541860559823989732878922069462737550389562421935818330668828448962086135286106487578240426169157716198002466739555168263058815657992794288800199736877455193943463068509119396563966705960504333105880067794829964685256300690650856028357408881063525629988796412554992359657717258837800927968343818022975926007987554558801880664611062230831696338416167702976602144050287960308243827623302482279496764109900909548206661656370088262671844966220781334509420076833300635721494998386481495857928847940096608048918856626481854896411006741520724756386037247395380437806803987829871646285379133354001753427253497508190821480474840173367581917953333309448020585928029160394192281768164358734251196990406239100104937146598341952092519271062155625810271294858061366897008408064257307503117427582188198183242248587050041193677102801956087202579881346371598394904665724586606500284547848516516090774083776542633081863296631968536106960326148192365174681833038953993325396088150977046962259124192793115125689808134847711273881008214386823617245539083550399893218888795757842279599932041190337105622317419752856996648570954773217106354087259616353275032990939534019348074854162365528604297945323770698204942706120027969046962547821663766849686126745488689682081760170749955956991232358053022222999639239270183313717448628990188918412519192071302728177101492789935848690745244444509809533828387941911410622258739645213469407603050456021481100559883267671642272038023324237498250462597929102201275453806067629472527814912992816479644183774548263995004174394856318132118577148788605250218307956645715089309185261408338197608240270330680053249080105788710443381748399051665706379353573384849224844857567425476277344918576289324412997690458667476654198995949783808301003255027118388681877505640704886338149235623149590903198533045434668203924092051156837159711671231025368450845759960085847189437025518901137878481043870980020355179155904438731413099334123696118917214699007310884150036997051419067103608040913181689913613588268302963407216925865576463760682016318139101093819627782876099717829909848621585069235266318190505400575385455694581690057556018452586198257245364918186555798748102131013365988287813732370129144151689633966320176396016540353013879629795321210624038152035917678617052241312969885336924317330316038518692167822348115890209644653979460632089817233714678180792429019158331802576801472809715223696613794223319149476281570450142551676663505257716842967398444316347280452479258885420353262827915682444807991728807198122255548844408869745345109984978846755600878792999042497840884518293177813133981211497267181017775694998714018620900269128437684940107495464444887569567380200128622683666060559959306486084100459992636024991044723922039578594818772467731021045422339103083894845879019955744444059540932338465049519381128267322717126634423690503521310873802330912966266910697444668390671609951303360644615906635497155635853604146491621611550940531502145204168043785680002371183979996450957522850234506313537231221795028711026979469840134667092836421973913444193666108034473300268095945333203054049812630463219900014773203875755671819170698555906468837357248684818607875054672302392612422072954259085095674569536684460209413465563508097785967921628282679038167051577386082005324820906244904776671341479051254945270377572554885496349155138021572647277417759698315068580049862673804639366750001219514720441006358533057231870655671786412484116852600262072219210377003586385600428368409732697529070934832505738994952999710171735465087286718631802758934549707209733617695620940643773579614910878453999183418296378471941005719876374138722776872281701015518605562409983344486831151775216909654793604335310311379746377162222623581251718540883898943357617771983081297456512103605400341427215786969137528762991981488315168835979838418017028395351579674633753904990373336699582741290709398090088314436903668958886968037496009621897601353978519340595160348057746893946048356367811185675724660167061347864034848726388031263647418254626631256079791870918256965823512695304490508822456612202812388864948951299147350349103438553883061952788481606737639601769825002733558828973491633608091827492350634783188581659115048317202752719935722837577782274458660251686991453874884423932475831922859823830129203056772619799175546110710330441080572728954590708118206599743122657818188540318690915768660526452891093875834003863670527297355663396504199656718093704709942717626621637603567511469786989804713991959917875081474290677457552448111840756414734099720619414663582135240939639137468875557731095843326803183388651520937951743580804007126418467633479097325757038758470039136315783035873954381448492399728923625062767272691114670444790027754880575203214095063730204420599704511859715835127836960109267919287498116548017854492338289042412738228829463983381942362185009020676395715184039212349984725312023291590408575197013589169253690772788601404627213885270467002032898074740547212835062914583315169791304421643074638715181419887406953070635575306610557871587145341450095497674406912796988895789542077160587111022081931278596956218489679439821143636711182475788032203774749271574487460874223543945537605235290554610145587368664050514443728823381224689304868736462677370498082775247113172043195196925706235803438777224009910393163319143185968190050587841476149461408519631318310944540745710458307361356630213849225797178190632599571023299674344916650689361312360297716903905288321799881228157496450277993355606950521131762879449168027837495615657160870538349911515413747196276540630120035040223470102772194611814537903571684641513558369562007150652156268414422090312966878428235362471097941356929747594532592059200139028840873666605885729800573680471763738915610013750377190592726626394579930656950025933434901231021170788396564214132596765039525725677850621290634787131598224663688696781179631371801611791153571477110146303603554097337107164347077791093936907665291050096371787895706038039166691016907688048997098509140712521818712252085628491384757219137422922665181529950852145185858971752318271745297617564519526109238963908618564016699539030316741229292107658469523432649479235847864948560412194258279731707735067303758850024588854494042153186932684397543154321251460444350581671978246786190368825155127521385645496981999077569283577423945547035876069040955973760001149969336887000582167465082665480088031959455992666159121254576098013343227038033995828477209658030651146799467723131786542475405520466321847238327803328644949930659366580113097688563627069378562040859155184267765671294442765970949754311303110134716302144612433729118480890540058795005939008855280029246380648111373900635760854879244538363077975585699350272742745853020941638999641845619926146467103590105241333836997779251208913779910933395678462240344010359375479390095884514475865770591398329281160121181267902995182850320959412601472707451406415935083151442669166872590502859082437828345160187455395996039977439398570876952734764517061118853937633710875314544288160853852113271476853719049381437840512771132522933432641126313219675059785553237550972465947565120575758635847914007444388465871993902495007514316770230627366751714228770717784864057320403589492279076481912129206719023357323945538193779882897393895266294685303241878473702984559705199224798690592882523041494897566606005297004555392015427337002531947779292256778236286660854720252215263516387293330749197762433031338305101193648551436874871588572724226188691288289145526882729510368968481433080930658951697175400231666313470796269069503150215926782719461378304407415702166908494171298200190111420641865735391061906579882736232483363016149973148373074730091970967907380548044445539886254903235966085524791952757707130275777676525531367745011100775973749846838139707732475126210420298664845429545523153496849438828797241830430322788620846225843747940953337088827773061924935285027238835694858167879160033335460403874806705331067223619861069560912062260421329037007164297412814027934976112351719353780246115258673994708750830510507835547013209814951639432426099939642190932143427773154156300950820656494692670852399544804338219926577064252893790774783329450478813726421428413875624818814957149789395675979362715301547007094858904100626056225318598814525512741029775914419485412781299672687812655837420539709704055232250241731952980469953717816653081476663759361994949651625064580939282489382370691129243083298819458831636539079318250411436100552174286184053462291590853089242387296286546444864190276277418959558858220590681317877896156541755091464867327864058543014182984023204787514836552146603186207500754765737152957060515014848511585814110536471085231918065902328061428273317259425954020912824408648970452154097230000321982948125862297430581855692345021175080390665170347527169185601884942331622560884209279904632520230931384650348921915017723239536825739592479683830093333575984767957689246005433907276970507980521122660728277066941175020756415027130751694835279187979486289656152132328089046600963824354630654444603250373272802377277852452107246075274583126977280520440501198809772467794576058049581341597761085648645159682539627334816298197381624327424506733090279929986780843350427210078539518810107796085348768127450696637029132712188793434229364052938871510142412371414272198640125851232073239013269923522792351287697830231512828920538780349239200370021818395825295528668728990326795077146833723903405824183550617529164703215444251584585999807452200099590921377026770258446664739680694876069993107690998049980955344270245098835127211167941319444310293033358505494504803698635220424548562319090861896895030555597350699076882594795809928337622855518917222589310974463848719066411244654833744874903672394580753503537647483105332412887421601383237871759469993769455520989658830898465559690350140267025237498712255916754495971446220013685753667981054083312656693077132893641654193207866868418502357676000296719291422017696079285739337613239458636455809732976979977200640191373552992659824189498503304515634637864447291768496380946250831355780748424535412167035566238720846307550834355559717937552980120517625520241574926131098698143997998654938502207551084274599159391819672903283749334961116805876158496123297777228748030928799791985735482797675451624568706580767910314664858598189248765539887848412948819401120550713246011448098348911802439768533157378819925393113231199117912240369628438290371364182944053974359386124049179702278045587651672273734122921059571162927833991822698926998500381908724443078873845937518290685189814739421955684122194120731643579795501799221921939277434606340656463370859677508286025830057621556878885620004781782111306865856244481410975152541199013290070093805054369232012329749463979846690422398915460404963530988963045661338194409209213525812214153158544436888009578454099002384965905700013512127119413662832971910699781584501789171913332114694689186293789702433672468827560107208546457017070402654865272598335048424028949887575512278762375233518971844670961940684179489283130107725202487677199600907373496775057499009798088051616341943074954371195732207736227864102570734983424585243919873938390121017053319582725012477282626991204884118400421045071903544671260368693085151384862134192526058751238209989644344793157718671836502783344567480648225493959716782028874573069749805350238617994768691511104453024431175780862957372800007419222430241788523320103135306154625253564867017873256654118971290092285846869404858808791658505772172737367892958357998241829532773037620910646775549303759845866301281915756040211079119360674115431809708554763188926837970719050241633311271759676842557237583985412970836357057425700306886121396666783370160634071243009656168830556671881616200097489886451900559476047802584035078457183464864886838748454476278483430178679381518165386884427319240867591666454426276368052400584052609600848662218512953853197631187013167976203349260282323664091851758536847228988486341333655524465374522705058792055970316955921662151838172225509534204236138595632016610634500697499960865214211345392981704832868308686435361469272054942386924403543206645957754046400760922259630852566815729540190536779235917044518509337641201337710114878660923953667451088014866061082158305049446333765356107384364713442031268455961532531586511076781494465456242312903226848752954750060180658912900364988819460589618571453539085364871442097014426628258419687922903205729227707595367062221814374486366197834984984305286143728868931849667144269347459278218359982008745884824682413966803791086576273163887976332895748168894197557418573564124073348360150311443382622230047930371125318465786091611379409452119995566197721063442410905230028618337129353387766803677813891108941142682542507593521890791776067315239240712365625621932040639299661452873112739342012070631714209318802441128441825438548189504798145946463978524307877291099294333494827880346115891445393126340631857781096559148795708802356221836988321177814792418153337694728578511349325141346072695354078305985790834162318321929796551056244020536230794339213821799033765245867851803084647426889607793224759869027075525583492364335438836254968609400709368950206842685105849369847159358083823219155255750288254981018315177628243722898101800334326009584061484435703886697830592470834201714355889307191306466767143782835925425074564599393953302013102259852891144917821453127813024698972305445770115832837970579224296656972924390032767390110348594473781730294666850316434082490377674305197209263241945739483165149322265157236669336068845276025004113667130172250246603068476146896039755408943750371236148000423280645772441820374843708934399048899216947484750926013364161832300872227529427019098485634326889641665597323946319187351255403304513240816874293703786725698746467505491286485571678796504566458013670442515144265278657215226575212624100496103856271490119498159039840471744895333249766783324221838634930170394309142953859300609562390956932113765574505317178716291941647789993294245571971543372626557240201352995333246009546149015260231646938824842324928056077017161024240243024142261664180594543789415814870386427992588017286024381704681481036599874168200605327580177578557989900447554316082812848040702719938285293572872202583941943404987461829433738192931766989589153232595443978393184370128504429061776676319457174407072679706639150533556054721437748574396075665689574427063143906106595378032797049224396925780606330561426217028815437232258167213506652799308475257119960325342556960626806085499796303697538814929961347235363029621145786568601652805197144649322872697425733701905906594455908264857502855930682264371273023699231634218979919588464130456420406529261055471836825902986196735849881383133133552052924501090020271259159234842222499119475222695268089681192281019923608372299869909067630054148725641513760280981333832758189991510173795485101483272245170947791407939299070020279891843652750418560001017938650098680024998923390529910504927007191383626195108974546119048105820711058101113393843270204031188574644637517897857709354648677555605625001734794424186039704894875778966738064240160014848728721268683884430242301745990062931892296231391287935691707031647882750257418705437004655276231568931229647932359603559823808586261871286141592152023054862348104099113206490578160356279191458002626716702376634129902037930648865327970281701423768719891020719321387405699720159523302009546700770456447783116933879009481411318208118975708437660316481602109388698902370511325018450131042655085798961808436286674733713599535161003622788229172956801321288793405707565086127537473250196246598340063385756902201869687638016195953965484713252170535014388206905257600424180878076254988505781560146977564157525056610209186346285210534214702742560912649234633650150334384258006050230897419035010945215811361746773912269599701531297300341807060600114022987142396423566987390666595241751981438264036708621655060624507145175483578114413870667108604837861969582972851859174577503701483123905702786344376576227091223132922127092194089194148597549591048288843211405256210733470483797770173877623545163047792820770925813498152125082698051314896442045043541356865356213619186367032051163501854902132886387472328756675027992200860254648784477785126598566694008284219425870146791086033674272537925874488231118090827909158475222615788982092244427239908783507748239275203839882826471455071847210873133303475306067669436470365438038101249065343329371765519728133166501664201511659049456335962029143751579828835190582097965048793954799917135896661044683716730231827418465574536733669980333167131788510303325200709243320341041112902904849626890309318638655986341244896904748134807924186896056688112303954729285676680528870574651420049964374983210238029353743952217592347493095902816761991990446712125997143466438518484202327099965814069537213160832329546176838059654847377092333907970600227275495897726895265250882483033982468586710861021951682021452523210751952011874680435769467786848283663318812238240342340788787305911706509172856966529482398810302309319601486140431270936372144463496626187571554739977009958750801239864351276416556749266841386795208140844964555777876174565120849540849600634445914092903732151460928567178481333503013101636648310913104728856654485026736173140861896754720246041964268588766597177889611542973596831140526300030102754089617830612912634571606100382968836493615020937517915876477311994455576268838631103586963767091886949677709357140461624236322082564676932048156518045018365318141276664432215512021259320431988491313582914593754955506949454336312342676191874405843355442222887529503700779749049927488717548662661578758081444695414124975302642111227847754459008529572915867651500984367297315458580916283846687691213564922625379106588064950783077543563368861293692197843414406974695387615631142675511788834039593557888953310328804715081890696633054288497969926466246709869345773852776881832742448919438022717261790838794782410715214852629728750880792347190443970319988591968947333968506574467159022770758626204515227494133425300392081742719130693083292745630605249180588040101282475370048192208356304824805454783140438486097743513400723582531822672793065934462133975396265474816609389443363230411070975172135447042478859428645744939304157885032579662225546347325368456988395494599438379969447739759957351569020235434966205122794292061443643524799046047487155707263948588300950163102273395837777722339757972699883298964875291338100650089434488103822049270240687443280842683170235676776033461806469894641440567845488916011885385482928823828334557277501516363336895987283555372535477863725640932950798268495428870668508164610936956241678495042939345140010171784107729993109359231472543344045069914176887612206368407659936386728992656911849553305862803215526298516480188261776918934506567811364777000607695775601183233986704429655595260774280650104365809599937903596919563599790929738766236097998267690300854322465611973495260665744764898744247744693157057929807469276959942632335062980525814585950580324100481917882421795063673666551355790357013591903515846361898532221281262017875157551608554224166995284110359444687424539237950188049907969402452356739636145981130377658751340567919326426270351875621350879233260771809136686049333541464846800659817162978505713286656232016731937934686848438870736766085729149027934085159639015129017428885203713172395461905551552066758112708267013939695020414118720724035114487182500863474416149177666559105797915756271581465563587596528533449361556932522365464588114597066084957297322575881360350689865927943237000375904594069994166138199848190080152012635509863357124540340700537766085488281894090273298258989990975323456487799113610791157598508316857433530486899241110954443933311678172664333609624931528192921789460151871400920877822470577610402000338183310635890346301312288080742394464215746864794913381781219838235193431490596648083984400946946704178277800166196958274886764899241933540604775871482431328478149503845857735005128578293039551670834901171395894795130821974369705018758892147899468461862428099445337336947184035406682399351331472948827725301535308615298535886386142449741316886151613171246122661647287291282430525920088622035328523658446114770637538648335223422148836697658420586524574379271139442255675229244425950093444020156321500597024016234068856424179400788954829024299714025501024553014897051250875746850942179356239689007830443189190462695406180417147832335102297124943441617535025121729422129711952410776070708453426653097278983548621382196409192168448125296069747516063527670992489560291861298013653332992473627188340698048601326515801319529174802745424263729258380853833675254571965123707198542886693512333255490390273539072527104254281622301252767999158806310022782842837464581435919715535550932195613349736409602963719130565409899444203286580808130044661992390675459458404504312398887140374157243226109049864477272965412428693355510864330499846295712975568594695951216389375642271556576173950485372310511897945269954104993585406500837219354282530606565357016025635344100349839459727230455285833264146625247912946361523836444100864023515355669497977493763265905149452580040199130951559974452285192166293403028556569876716561451995164181189767551480100410206857389205012905777994813785555665856327254483929182233973039417072932075416555203528580525692427061969231860094083371501194705029651407802280942483254111631687011321793256643016505753606238592923571623051439479060071768803814146362389140528345076560016330924267229997327045377414160219747070681586026915222738586480923497589649918105767921563084519714896903826858940236218293321281202108908678983038349965391920745543466398852539888364664590220930700749747998794963794181743409094353112659515479435229663603982020093526384883067701745877065449985975158494194592823561704137849008032451302535168515096551194591577898690883117027184832959347938590996333065901330797214235412493425356118814273900148311222471885225394199063914849363925006476069550064857569524940164473991349841239553469694760819763517517285328876925344617789527020662289995600455508206702695759911005608308885540524765725587864445297258332378204847477366439671427878935365989209663172587481569621392101187751493228805196439218729592993995585456985063647301466501924052721300841961394607658538415036354770687874872844817171539899355503235837227327402969924561865707714536181357626263798455772008272306305738488457863201955486065562390723022722859920967272372708069350406139273123628557306042887585953067022081299669146123511675558894714865657252625106053119152600091879409585588999140710977959817262508946662439280183638210515475338107986116250485530027832286596059925367444889345143251733838585039140028685167107588734888864356341364244741687444846607418763275602673193677891407040861257993184258946950941574798868794868850069077318703950620001784129242865617504789384995393844300793610329399003416451842798921479669261323563627538636179038272629766184094953144954698657539387726378080421622022655612972289493927353442494247240421323348526620775196623411989481621974104608862163534205400831487192211129387078010858178923930615627777079274325098208759836456073612716222991476240925385182433744104015880778293046493514232230012965894804716852819434729872630542997066687565525395226843754115498194657440544169156062936576245802114449455945765829329323054611642969135624440773985687312625030623500427389427052925771753605275060933888037352967620454426761506683516274609646016748330160201612092900650053986715423930786010640497002458300552143294325938766063872434280830942672474742161315402475555127366967399799746462618621516438678346856934708672416747130543453833259022792423584454619903170252007643740474654940639986264152243922756065296934151989397368048082684522516868913956515684114600566770332336534490953977196883198710158732791689946274437250518388029629740241702697191652905356341736391749900603216207597222705756855169642658624612005551992559078733729477397751306332890713914707147540117813193794602682008894403567962849767069631446724004886270318157926809726196744103427446819844986299190908159846088926893117444768303342751650463419853660935132071322337161271726004218018068618702638566444454450926094712062097913443256887730000676617295471295379569759898805016744398887782519659696592254830984967132624007396788346882004773664074906554162024978597989226785185148579626182683776043808618178460119088281789550204452366947104466965063111019206493519312516560501542257058216130266186343569389106770548028682407570720321065489653645185370819745570319069046499097299986110837364982421119857249776961904986919469289614425006729798257758160423920770027654300584813015763515604141661911350591332672924985403408932680009139326572690343621677686369697611593519279633191765142775875597665662524432326474477302276907249474808201671739835602768183270994104298886632558354315381901267872020878420974138241517004150294476932959918783097135559947871642837704216808806074535698074021378872944922039088824598442936446766837479570259434886245356312615639943380895343976234968542211991360864350258200974484881046483911629943949025398707563173078537002037119119256277495976478334969348979056881550307254793461673740074063093169975087705302181712762914730858453923882205100650982560316279738453088964882287719615098989419167434556764296868825969716712042668864135115060337904450619098321706361804546126887540525503140381610689503408245600859578541134976685939783357702931759922105542113060200471622269580096816917885492675960005029948749992234553802476511664633200405429708049013494457290175208858916307795652663663315081671735553994871805100829416977201661849594656503925471047610681630502864246426807953481910893439526412427865999838758601945687194182222017429017860051918872488055759398633825180474297102574420777953068924234597578264590659725369408139725180757380581414149854426244745322751294101332066937950661287419114285702041706349974940118389518764373039111296966373435902260086860662372846494988361308797566402581904697499888010393567302091973567915123245716334985932741311015421693496622669132767289369393615651463921749753657897020890467393649163925852708991235261340795015199570157952590474925923457221376866994617258717218477296324788746972261207653246844800610934533505608315208692701965810361444916972283135500144674387059445917127227536872816079215424708488713701886393493726946549862162683882607763634795247273906745477349116813466945067820591221811364541351269550375540822864862836059672640544682984334569442239404135349840042274893481114011865634995577866910734501183388159294261428410276156450805611834419563431687494552659219643003130974065843141445642426074939343094868876631054073531587290516873628443889989017520233697531125336232108806400605687570095294057014319526856382587839765611382395911026635758246396267665015037864898125506795688680110058256843554457221218795233147219002878131302559129268083920274615943254757425682533225382206213398700182450673608081598327494937605317760639488722880167102003231588941687447076241756939152119202624212774077147284006704960275817481046111020002724089233166289908862443256404882173366787769707312723819259978800556111120080641843624648044362922505513397043629518806443173959767385754448277963400538690513550577931878340091519881821483575828980807478564187097202521295525700486550097432928497149933749176249027315812673829897348650590305245168731982555550012935850878073948519166279012744828951370883948531546981256153208685955906634481420089958905931574250308287637739633717090026826247242848892374923665808341922440108361571560715699222739101120482197598919962286885589523214599558244317334503342225354335682520624003309145278973247885849633741101478413743075413420990410948361671314005137269613840569156573166916016258687466993610121165548187263577902726918803387529273557277964716669578051377481224480390249602302583188206760760690084797334039627411005140173959234355881522666253785306711878697158086658435422491175162460946083311207466984740784190622475026432694264911229891059309153860385254408442147789750268871572886666825562943940399393766246138152279325510074641250852085315964884658397329893142951898615004674958645480673055997515627145111684565682387842118741834842618703576698903799580501363930605408240309564008818140836097791304312766463542417550488059707962873455820123683976815790880377705084601883480023210093962131004635479443172069051960395561590448448119549306422887050612850135469053854569332725172799709832342585408747276113399896947200220141828541181273438580165367051988969838452822705722546560237522674077188334751627200438906010845542424998668234237638870785452893962063706806414378231911020440138967327653571334759988483681361857500228520058975156876676799867350945586035331662417885443402215923072214934920216902302901430471236227787427634299353304724627763104289735706207787537833553303929720614155145996310904715052718827487157087074200211299509770884723075687925346835000197614088513434252819320343759808812425254205770056586518013388479681200879305853830149788167483345415212076269909118165907382679412220489191705627276453533239855924326960925157771796308518762293317569930407937112632534992142955435272003266567408959545891994385007199361674807352335551277636420863092199036774384815878987052812227333224542978851966901001861239287959934406534049402472379719352702571594413048033714266070711449709745018049103547490072802853476431181323390663839836770338641181246216467648408316750730833803989743419391795097036829109374943529712624141008881083437247622265742859411863439897417709063804367149572092588968901060188578322536290930367241906457898715544539889592823053566736337640215020829507171586510422630414501718445209533526244837910841262096732007443888141722395110418965963806812352507014337120670223379795292757388760030930891571636698857130627277598395191931297235039726634202207602250173105329567412421977899974941245672199667982469844531640795108771320145097478758097548669379474394920648309376171040319469062800071355388548356205408293408071934598007207517971776285552648887883340691824651090630176641596011600294708706232865667997670781689625709275297060646484816246427269275293487232791278372310937019725838686785780540646709428829812618337359687938674414397281273901097485080229630065825163724893144412395032736364586779702687225345754418951530407065094537418484016337172038629159344509413178704582432467912390738539840349417628487866113869765479962173997027945602090720093036234500089271077496974955651526120028948139946312853523160093624660149648981848911455472733455891402721584310038450470571695031955862076800556736296318641539582633487585222368005263086328026160184290132689506431413324806459073971065952702222539686129848640391941543926389724831027000386117297160116782241373961634826442348166473996131383544893497497452666159532313719338614870204236457527007260860632105158151739231918459090720146418450846216122659979322933186711383901448038778536860073326298519356367442634786175534723876218712855724237706992407336034305267273636852701509278190109716282449041943626541688833867897074793048285729478837928528072581178848116433565396507003554351511412113891194433174143864280655816603361973186810350027121401713239628354399271906111483630282182753481669284495326602835656850128321473086530990516601198832198750612829530849284048373815448563368197500611261392435815711436461260572871702868155770602318993169336855443266831685148805086473850016759103403223888277001173612085857478963581043912662626555906017208076811607650968644465985738765080815845619719689764298573003733341725782319732291147979554411700220924872745558204439653406453915583705310858433945717303048238818195083947604562563482994289295336502552851246651130513189500432701805909876361417842565520361248930495699286735349566896530600949488329521158477922582062455410724510957604771625345032182529801263020592386675607112140986379788396390012360704164457393245179894745141854945968262126963495333862587538000044188552837121981648938238669873684782203478996555903705189037417543308444801176751149958437197838417171719869101458168944074693871073474427615825689095037910593406381036328616549629344808885948193344064189351391546678574078548600465448316568899545824931291958809123786574112532848001583420954030851239835487614816356275520630405117622372036860242197096816646260833804534846854891363882282534062883987295970915256040878125500307458960561788302788364371778405544934866607830177073497033273438537825026709683789617264615025904903870350826945881911852258962707104571080262751881340341640091122599292141324448299692914315466826498807911458826483611350946451662867604477481248126703988039329932803821762148947858447843524390562587004450370888994784171744086129975172692413039084573972139635763598945598368374489556041813106571351069560636029347442299063609605993779874747293771237987317661429123924398012932701916326593310791495583904739333228616984150706211052601489035979952723356389066969294153011043669920025467806204311838860149167057396429695808113993135678702595803993745444434308022685996918862185929393864360437805055001356645486693807235590202626886834838409023038054455427490551878633319048717010105741462997508897260003691825570625631308638200580609993728041327665408745549964118411802132937296863865029235032206888277275484843184367424598725208890136468880826179265977833135177974200304302515574254846946889587538163465885664150130340654955096068436238178323300327286315776475940107254212135842111328680398714290560996865373500795662176778928965903886430754620438074962651335429427737860425266064885602505704559528924688392861804833307192176631779848087661667714788599677385781384607037926608854420226707091480829446019781173707387159396524245211727058251553109357135982329579885251395550362227499404281013310746184273045123749171467166953292285251679669011526782574374035192938016035415311897937680869767708920269472738716354993067976268738947645079967069427766042939817138166999498420609820443613938817165221946016126231126088384253816187396184183568758702624847653416390681784708727877287274208753969100805861428937560967321688236643600138947309028464196426692091870175171419276343748472045186139726492857509535703822882975691289212986206434920279560166088794876741620548465935687933920416305625822417199159731475318075958354455811321716856117608218274878684400777695381291444125406357356637598016775455815956368051929119267978329756799482434710825515798505209097751160838534816940356683841531317401319090077298424065345033148035204704998819542559255227691241610925383752527965329101079444597104886845220449161310089803163884107205165566630308742824593813803150953773246514569957680578947722123406090656983664202712789044997388021605011773633271167190235526989520033573591252328637818809146053540453565441149757101715571721540596867387265860960872746127328435701203061549639616310797801778421395549098550401554226361706329509288907349004053564003673911316516137004302715207404061306811221827864294683920990343898360684909349683664705204749488839035456857213052288377091050840418320229969084037012405902222391621102000503979389697521193505613632550584910352100191546458446822888583515961085733276579892262869041541457751991497386132872399137005897898472622757242612340472896258814084038109824606306850453291812557619085921943767779815672052217471471409595114765051319589776715328508920195810608435624152282603642246124285125779856130190623245299003786543799834915896124921657554120410379194205081148601688011546297600701019606129065961540427595558177316939305492480222414589540486597407581818699267766841932200209390780607113956763200508549715346475221942332851720853509158485898825157787921575419418239764705348149147665473755138423993861756492914584472826949616622993362116921993709520142285465081677314272467277188238524980467535956524267375471629947302302337968710432052870626032382594215119254137698590677871437717168905414667225565046895451305768111985403179831952375872366823051292313520477185874818814462995998684942592156946662537563821796745388872222886734356855220728947392208910639240572738752333122724077940757699462287949992890878876767627976088744995791591248707579875805471522492213427829621197663475260187831646897704141038490046757260612233932145972783782260878394423035045485513168350407831495202632727934999458846606102295887828905543770577697404538666510826640274672649938855977871083260766054007571440788969600537249105205859153974207744461816834628719263265817873066114319959299537723090941300580512563822055132866469615099054766427522522364768651324784761878834884908997426806292667217086684240301794219896071832225255586951321910956771721774046864294761409627138140225919083979045677056297370087932561467936974199398555055059811134455222281593950512404121029336827322987941314996554318326241104307488483739415510255346796706226750615459079564595067125643087366093350013541789565981909247424003379052582358990302230355039809445783795104125106536259258683006874996984641047677522615371028404053152359238583551641546846122505383699223564334758202409076144847509210295848239263506669492938821789771168833799765604860714357201058371094201736131758572692409051592343985733094999946250236823624735957138191365246351893069214959483765544676384029292174093514898065727093911348318331862883785264399354762611147346348230953606216879205346764001623140033855416499135176695452034195950304385660934575133488338107251318401813927507285146366263319876174420170677560368650589240716638483498424184208645373901779102729255987291059335288611617930454228433285986645348578061718468883682758707368260242696311992575583336301984421963193097863293058771227732560210156675522180231927336696842798517798358109121063156165644974369549293293526822668183634813355475163791778631489173057096606970233531448941741460026204488281733694819364632281181720548182242369194673476620269829356392294627371594781429098100956059580034105161020957756812785313591450812489983515909646687028607340555558712408135995077678226052982025549473797541117007387929538282218101010822833974361509814015212723586925953546486300090080328531216154351350965391875081945631965878283149593350314604397786328404139170381112514003550616706185087470675913667380106705740522252759773254098054750757210435540110240151987696789297744535352672199471036842158769127483914589662519797503396871360363227126896098834229704463158722229449575682653005872386098437523258162066507231618907445645366201154329584392545763917189373543584683926328775768251362353202285518327374683950137773369058325312578146286546913568232569056381130480596748770253141452610732353725942826613214676825250756236503356085986948054366785148666017348002802008242486392187846572876759848833771992414027401308451583527660896278638345455213423006400357105012725701964674860223975355804741667680155483711044258868772068200487108396849961190135415404576639811567143255184054256615584048468421687532248685098010465689352951520181189029025317385883039098242501602123664033462084289892406921663461667170412710441052548913790614641699753321715413003602341880657166901333482170978728795848401032181309292731454234347756392194933356343545397600493977252734016734823564720135497391221530062759769986557479482708269413960386398869483532535931039830724805823037589316165123958832159864008978753691205805385194780941674020050625904129445489338998159179108533312131402676829207736363237336285003284225976435378623862531433797686967558790958844012885373513435324410696736960461445473856126025648353128518630048884823253089921659510122739845209842952197522408135839242161075033353963200809774442307797614365800369125436148614187103971718728980010906373899714561409666273942765735567851731126524371625668777750492371640998134099380169306159354111041339400307965583804217333115499052829008600838572986417509377134410260389859670366463936022711203419190989755011717031528170214765067223902810912442271887420781891281356958236825496196964407469855701724977370840072684349755701108996972028911937010729389566430290062185491839922686469561136782148634087704594522987935391146934416493322238977940503562411353615379594124676278915058099324876267706794994304494638679154973313301884417410360458177008309335900087967936300879902434890567795454997048366697257722337539701706038825157515443367613017645894373681015334450063397551106721269717606693660308789372875564778763752609604189206477475037472228992699775762101563597192286325174237327545985099914929486082041413670242001691692613964143979457207628272112704506538967071360294186620779071367331024433541578522228058525084284314863678872112590984941837284729159284531848643195568342877263090161614984994267190271892681280941736320040891127325106529714529413069148724698104766307706041368851318656904373850707771085582622160830359944497311027077018546485830237219082180170625844420945308816282086129670153561060635961262703647694837616210066761090048839627455391936155784940462336520357040786797898566413851186866979148335528337050213858168603439350245108786824640385077557626586802475440485460992699467871962899612228306827016290544110271430125053849875283624476394270639279974422693325473574542785402751524651309371721191433093814915413269889477909276893082808475841662872542612579630322081556143810097246571149592094222308146005570293538724594831286003169769453502399882707833088809030303737979107707943671302519395521514591856936011217150956856124278426298974442830077582129035928199768071985671283404222334848088284441530764831877223083682756210107927238509591339811112782393895528669298552576662207194997413454778662513176123601674993274328942950770787455638015692160100767595601653470620323032526493632785316662542254420740269546989621506204337763340081976313717306912197000257601234603774219562845832762445336479371530092168387290575424929924368334557874395683972227055633284021683915773968044234680230096352646034629296249284435441261949556131719100431283850587833555838583386381431589750790480441881968291982169813462798692568715253971431754868422895180465008192993970105337148391008449454435538369277526986503537450041697437137858665635441746249978203420755265253763672800993391351422011319379391094971872897352668135796028185469396019706680424474603727711506997871668511081961312529895533709682983773152762123816930924870478427268966260658425631291028529483810565648049525234324119407570574504529639357192952137358086286997946962120331319501764689476981690911351331888616572611025172918164753101420920862611414228970312680219491121156045899629603369614294961536788152619569821302871120390856451647844360110430293190096049908325926785189266782667696462457721106781126673716250941475226587508455233494758696553906244207291225351700164732279865184342425033717669701756609258474752710527682265920026236294037605937485985147785067058308413666161832903020823661027358314151678066646674511906832780953033690711983152736363318671815620147904036512432097634842226714383444001648577724128786068558443509422134749284576484530638567026496179242370406457023812367656128775855081331161764856304885377999669625161969394803792753836710379844378411287178113844122785572484197617985636048015668642578448241977600559945768819776655374808389861380089245696213561555466656086528182916485770986016814216112892455739764941241635396940128413054233735245369117578435305768224861940200203054675949396395856396244934121073538397434874649430274853013940811116064469502558103518286298356581979404668284192605124960999944567575585773771357850661970465651382409004271858459115355939350686244934171594735081851167150674664970373542459799659738745149838096586423831316041660543009314837774688234935849405668462436305270908494414026041608418538387692532979483105251812860881343702670002964533057769354537185663277595514407506099223704457854731172809184885805167999473049612168036849503670669345030966293383809632706629443013386536907234656199846192359142569688174433615549724076482712747465190700389872836862851714657042957311999514113651672093279928649683960078108652097492497283484472591525368504238547110349890981763225914141688056624615341199957587988255646929181276886307979764178720503023879910910777418120440003568972419901160173528673085417971825842241640957793392708795815122079716007230117892540376324557569941696225847299573881493531014864665902508816587636013173280329339560184350452929107416087805295196335640700094003132083684705146627029429246524845891986108770566419914309706715073701142073400927397416768252728567376090338175029417358155762321216387401106646729002536770816750201392335055081528555433803985481609812523103951499604572656226173159226809895318401363769570494237952717021413757321712721247024615920448111278368318131013949180150096378616324625930915175058837154473136151863781737092048046395208070536671465995195229583618848167568114153311642896293486234112199669565946393085351630216165725783673140873849419550411399631609528297632260984472509811119751550825199750387784953630109520383011477489862713010924830326648839098931568577908279537451095771814298321971771771808295499709875780135681203954758532912418709136311296667130193506029428903354843581631333398257943742533032734366451083642157514889926065967401436219013024924411182152633874115999838367792625369478420096218576527664158084223965931084367577039339607649912217633148564653155516547291465865059794678530773080489921050277354223033408254473627951665708316254672148286006832047481545159695189727038581639050657510218427285684435277797227050774848788202719691446482552599186380041073133227866004491291836517556604156434344333286682420121528637015616495069630006798316568213019859190496404954494004313305118924001341347993704473220563815096734895097637729810879209119807944057189294444133376790637610528186272221673937615425375763998772976118696185565658143123320405833945920133445624033315478672334328762275420073702133448505138323779039825617482628091275438469635296616835499205808259738166898121946097278164135010055249975396641815981269772296961088920164778444251575003646425804969458017890502258325767330067100862321367686547529071005932927595529599888245261866328430444128577809090053329142550382857749292158208028479035011452324715339810833432512625835603781543673065730555354609188292151409013916247692999794395592074797614862195083651413198224302174714048257972624239989742431631140445578037313171721963664928530044380422594190943486879212574985898894134679295189782266863964210765877180696844937050399409866446843264476693975483585150650811015321293125558204052703209696568568339876170961305164093105917803674269667755170484137382258145203889936391255590535872142742550689627166793984243661043579387031908642315805352409858228656708231908055071741168418914301151259316868467582367011166912575417329596106651111796664468924279305435078213371872559939804054628777811416567277439351205766472078978273788478093946213061806201705311233068733233023676816232983370162786007573412432037778079624034182433188963890542861872115413049237291711131580083305002319086799934152270038669920833936344310579956124241842448658449339540865523989270841032050123953853486406422851607247145108125610809316942099180472122981861094294627224964806542674243716440958163101972157746015323597819572169606310606552507052343683399666994213765902680626710971170208875472242744193161080390173286562019357166118219863855062655570981853415476811259965811899536290033830316489028645103283239767807395015272000941845332709108812030187909921374843218234194164374040126743101276596461509365558092734598735708303984377114763106585436208709960157250494303557797694454815416259347657198032454360784299251930606950824836548569395420718654376790827110727903104493698889971325750597131826834198802092335504775720911256470617741970642849692943576798468897979989249054777172135216698859613828354448748896354978096574199583302753420869039878519934221483601930381475653554195804080560746634779531684567194994879375368906971503607020279209659658553913276318286632928897598070910968510237138339701780175407472296865648697830731958886400942313978999037765100636136389127279698234248925740779839271471525046538832031563915920129894768990763913737986070872845883316117241022773210577816802026363094806809154560807472978479844419937467421969267841654082015475651577073061898166264963501177184572980469762448442360749826630717846611515254718828330022597067846261352173362053733321913914642342057328635624085078521362035549924387193372578186351030497023506191783965110501404061869630990871670181531828903829671125402712275904784555077175632418600456657131716736223425135446058121329389128609238039909887465863859933472001495208538552669102113772170112426755642082921092992060375923103635007282646847310173921479034933321921759081211401690171819607972254886665391912559928229223407548346561044931017716683427928040512044450152325195380678992094976753251686426288320538676361184246204983957837504844796497067077023615123814475483885345438054705894802610537587289808268849420852047070632484710971869677146897866826034936776215895903297758943772496580764614470324917382025846635311483342426337124218923393552688224928165144420174238466002868936988804472040601883823197178934816673912999876760955578113941677611447203500998759511871623841018181396098132572515232027354307245726704583504976928819342424252742253368277692830448867739734632164512232929751668088167411207854177154148829832692273557073159551372313860503816972220184644672656209649978846001683929305116089480492533512358363245404339023862303759602314644527289333176111880301798051496386563829207832233996591402412321196383701471284247422258652896096287314303546649501614425077921986363426876342375659568748521985763716240055194562364112406060140554903780519857094663329278710518152808822897071802977088416289919263357990578591846095839516152162672308827399507946772116604899362038160176373063646989387526424677491175121387981120383366376869372597134072456509215720169221630633435950946280194290944032104879255992920783083116827356998446158915679506093027437175878305093956197021567231473180524140317429403810293716026783514248306313559523043271260687348646758083028351438136999434364548571479805363150678821560651250513213838742000573165406409480538495238076310542790293128488652915874868940366148182797645819025153776255578393134941754006320454812921860549620550731475887822836060023182076130467671023220285510285816403626524560793258785203296629461175250609279325335621578983529568663405094608967788988922385734410143786435097594661813811337779967751288265787323049159371695337293866257021110914148698884984995850660359990432287715709222515350531909670358557577612907146560661535548543273907890002087921548177599670367030227928321277973174593402633779349916840530966093748724662998008844315886148553641882165077442107495884273308256201930097813458088772316942068223307811775822404427698779476502650130533870668619772530819579177433748943080068551168750849041857420262854373134039856614626511801600572649388463576870128903165140821067389475188998062376121695896661844138074631440177572948314494947476383562321544983461619878439157138636836433950167451325347269578894343368900902542716221312850603038377768401630708721271622962759366411532478010917089520486299357794858166714905666484585966122126131353599117540512722279175127310752454131055919319430864283828723333168443681711589592669490035770743143608123861471764524156274720542043988595528790007295100210875803717488832027771936614421810352235139047431258013102372649907245064889559548422207249425730008998051245654694308821973959532376415474120336362600636386724672656516699523434036763943691632406290790040009993738783825176566263397725495318544146296261794103503790908590251214732891848493090158311952940204188017530706641691740684713660735224649052943515568989168060695574654711409513305757700220890697233532374583400000012434096390207574992702897338807841223779297077715597263494819783332342937953674894146698407850359087678942387994308085611523365110353972139080032337539131946617760365039592890360699614987974336292103275229212825567446947518097425073250272894049700095436071410208798025361877457548278646813863963133239910480326500868336643460322194062480734912430999020918735824108762833378102663048169286069163519138422701980639304477879048768542982675515376863745965529854065590195026451816972394216358665007856956544662539915233672235574243913430297176389061251783357494613037830606202017739327221445973731738709613881265757125848609778315014157124227597892706089485784625429837802099063628893981444970765174046914653136995001145420063674034190979514371580119039045164269231832747114167078367259053437931149496487702224987330440191954361656459756416184938932021915825874340094179996538865420799644363857700918518800341410795001385459968885972015565446202691980747644455911373752181026486372672576924221569094009665197156258171605812082504295625514944240186613638473288109712872697566723574283073102525842615484482343827739039331304393683872949689566605518942515940213699607309783671218197424214544557839140135694778583625154317857536969347728890877851563794101254796263527509641601586914702816797339132498119998629745206106046182642999558401342218865727233567119560683286948726097588906999962929790797326216138844172803653707176581993933011165292339129411149229857953375707896845728569672540860578632021281915908652431520596313803433908801657000196927268947444716989681494605767298563581627441715628902346501787515643114513681435529081411740274993089721366626714352633476717676618422072526517096357223068530225902854117386889573293071940814085978139940691015068069207647793317270422658758481850610979429793294567142401794384531432971519678964558450865036046709002673852323051403388733047421887282356517820814929929038064807081486558168904303984804481911394963935531053866760424068630081276214928263229931532446237059980143085005733427672972233977205282868810800776927876241500938511132172293063239963086757024183855332935393845244767905873071913216114955049166700729096854561705824456432567803377839369772740962123811319505697953829136828827903962605832226703871431673120568345450317387831101551479919143256307842727431258911131860592589948167915090721856235440381044677955243829200226390063325571332987726829122834440300172852918043705430273039816904607567850429931457439097411461632559802485379178863068938496729699574282093687959015255406330912617373803670729426104303848559688430011725846925481784134328814347942329191070321310443905172141935877547122309482053314241961799700434333145334760083573855722495716213408876081495607351186444306473481931935852406467051863873751011818564494281713360558722801883362954196038536890992188543675713132781975037861714704628993993307918140679502288023162761933372892025812452427246673408782345855005128215129959960425186034988499214886000862767124744022037881159252840021262626722150015078150651401055402004081474834654611863429950850338782749231980666363567479124301619060424785057516400660982327644621640654258083060212222400899778652657743524094047690375670234750710720672721278364304599467656817104332698166985621954414338903862299025203988267664899599941175306441645038536620249837115591234907064035011671073869594171613827929279312800169976636771023698644710639699506912521635236051778943856741587384849904916392645120372683602656233617036275816962754039693209468741722027804167008716147759274711988054094653282352718290858185732726096740837969692051238642935898591969065736855991615734470062829993474512937813358303481467779956841087998042979218297027150324570202628985815938653137578973052569327640716698374052423430423050562080464632462560028621408413524090648034359452293597809133318311203365402267961110970046089503332497296623755965034215664732030912525081806275910206028823811953065927791904671367918530355612485225049177407884091963403154563502862642293426833590928976613593189616019263264738082090008090192696623559048000286439124306790524081296823507617443611527341168373254580658362468375262335320418169058848984139358667555147228347398494125188971469295593524246098032279904149739701676633967837551215578775014807379277620430935774654238011298500514131990340173768568881624522072090908476210545017321937247610803660274997512239212152413314803419749770424902522029667401773148664682954545781510986488266536638447703112165846559053438576910733628692771416452119537870151952425641930702971872685695866732823426053186507179629534536788554378899533354653193646006055187162299356354179992005680946965512122054425862500934397931734090564692191489422299379471220833980012838119824158394515524640934920095417454850246188386028647736691535962429270252195134148392862826505570264763524676154885859225526605749913028022146746674200618821808080394087822070141033059211390448616877583163446694412730929311380911497013795574167596866670131147593596826706130979075449025761966399979735979711407541860138492089939237805277165471994619958084402810926851094974446479981657676572465537966839198841436210680185848601209376002241156745864499651055026511991222829956404679427295343659349259026277956075680707308461294177928843139090007629540846451959908546499412945357341992476968009026745259868096273308190715166467456126958205454570526835123611348161716502337696953382944330719475678040538227612749779055704319112462925660499987987337806804535165497854415818862125854221086076547369256810125672854985072031340836615027379843199352048622374177120167163084058273775504701509152833141409599328708925366640348527121842077422909405793291436462838121387983447507502916596492774826792816955107918873790702427063813415175637767856258793019831049528833144006389139949500138050223154671028173979791636769910426682241373043254974836167881772903397035920797181551556489326299181636061875402469393969622544478494101960950952920491361801851846599419155275374299417012975548457991961180296288562866508534307366272029364494181682782935607211044905747131933184415450291041622269968693886605936535249542688002231884516401957964840028978705273694818841806029575911866791921750960580890074841085690232737094090656552725762154544141161599253609728282308512012997160679893483784630991767005595059697360792348444807290341788188591478181396251075130404110758299062996469124094100346962572288191367295003439033569362378730733622882603925642091132825830877623665049476745850284481095780069320528511987645690747612382098791271517241006763078321907506881171174682641177595189590622423573229167254639011602848922565852619225608003186360837194363862267581059326953569939072695656785059465673466963825368450824743120723269516682188557578382332361291167369322585254195869119515697160614899127389127933951017875769976548777748227869754012970357887494832401467453795957554229234754149614455209612546443692345130120026873840253479369739783381518852296010457987468248452460238635134536400006069671344544300820870869809883998627501912763635855282440166542006985261330609636031559415283294250640697826122910460428933847666810441061300809026957772621376370192512157069857273214732436260584746645083596913277007878809555329213898156207422054171343126548151986047410168261772672366410010745741510212206887399274943757916802523876436001912346249131592251049209367654184535491113713911289164589156283118579481075269052705120365888677902112386574367894129952753374163463766113697084733027983067524610107099797268836672158976215020589559513132008526076134309522267508533128196446837321984114212798678138893029620719471874946839196752425837563605449224216333026843882468079264441724446829923725632888559252373242395060553527652740725220063726558773586846441681634128483607132436429511447568394345593784567069928332038228237861987706252186923738233010830398477194347903570613430690452390606478282679030040247614649997535786961007152284814468558540958999593336238572436506439048818772503724224927407002750243274376130072102095981474989183808126738796454793946438362006322183081167122284189312548396358577651034101300789010904438366945363351073356943658129353034824870113527640885566287137287351573475918438005905171890035600332715149489154296494562644840577783141690185763278585029508223757976134061771027028480339680053879564928708470137268050366696422632463431650285968480207448369035066542725269601491354607908985282987728792305398791971279257112553125240422883107776970650241481803567661436787294515942924665105176863627079008972678792499372718826755030644289132222063876820513833508116614787996352264870077279122500058498998819860919921159084977552327420560425746964397723706507800220131633165417457271092750328038672187100940438068551472916038039635234882671038016636184986734932814784870633947046426428621351460713285347446317665403697550319625143806268393239626190003274413829645957379004750577411037278100489918640968348237467945233513453928516890462586698038889748438841698533544023774915699553145487940319489036443420241128872284375817799041380974409071516457486987819638583804046928551372515385964477379617589293693543087531442245925279859611025234691699255656111948142584216982649153976340128128827618317748472921704945092785450244934051956859666057687873596218904569406412424805938988390906411991440974295944987297216797339957421133658190414013562076928103285955425827928102032654074157558995467948460627350617799751834759952446940356770228906443032629898227499565954226859995492677660938671145389843646603857978189499965637926560626574221083351650684751237073098104598612009231846087763565325998295338130195375446235445814309693097176287198198616421512042724607443815976410331922619727465520368658943189907363803372462086470328687890832723838378546126879206917466426172017079330220009636023611171791033166455159452152727791702519392244435859842664653017566892644602500069507515317312191854805393669799214921296453412210333432927160244655337718638090055992877981853360059193195751617530939312652749611550858642310268922004038014481236547862111015245775564915024269005444801502706895681467024290387313368220762133520620128752818704672006235245177073683646879731752395628537822776707183493889957578088274061217979886757985362899226361015519066830166506649111645784330353879826312809375548552217019809956173042487213310843123859337395395839029000374853375269889989516660884363559370532339456346850311093462699322386552097457386024113886505620038393835457375078398062399136524824513882780749812656515731010809304783183251934955478862111200152718516450066568529180485890628261629387342506073214915448568842946877237347100485114329902229475920858283338190394864299606910395946734668137124257844530576178579862148223798472688530089851060913268147505295821268381466703281148968485908184442494212845816739425584409770900218363291680936752749976246958596305374630411329661125735132623069729156609547707265880185888432917245188768351410189536166059896526425077025966036371650421275630289963478007086459327078333226129173080882095272752213589612978328622466212035546248442040678602326058798878993209226012542241343863868459871560066056691278561977576898298306921419565663948267118137480189707472819239199734713225365938808497956088856552145209772388036584098098516059862653714117727108066446686107219783624813181988607750466699367347445595073917107856091934107948949313909527932619655526730778370017486269808457450155772225723475314874934599880849103050622264029342365211219885475268317679067435402495414566267188678889440795687347820242327076131832559952330081817808670850016345515339928267147693942614616425034817470883421767411605130703334901250166516253160146617781581851136891042445538164191743892854944217177136223116876363796565400754694306350619252603453697312491334200151051470255830504994115574173688386942263098041834612193501783154147030794879458777153111361042437988815776715129432390363133349236622510480719628727050714539818822315857122090361185242239270655328920988666105169900829795080840617864839802931553391566918454781173625801311056773171247199512968455469620230238320901901350865184769786113136316593133629460804013887219719687422372633352900508266737072244291094134545505751251887642588176144550700080294700779134493028485862287520682805679217419592688140429141499371798880773317114540188199051190268834785877513435949932703730830811201569548843609492962725453963273360027016766178929119448710809938959934986729674864719521162544529669914471263295048923062051646765764458927795870563813189522138059432252447145054420108656711907700833191866773799733042461199131145636613447143286653152154193669010767311613803941300059276797944771025579203291738860694907729862545287667836754477941005690342306521935386010363728752926406296835854393398252368152869343732686323075337857299486934151639303212515691384643676655209419208668678003087518937409405109239073257221994227942778821848542858654785104594590382145695360779148948052788696181991390352922916430088084567204020444797616747257692587039907848208920275110514253328357922569151263517602907343855300928783115344403974516625186530704418836598036557660975329353791375444712519318560960545460424005904990542545482515061722421607571952474351587615454385279643918996045743855770591134457485615077532154668751145719758396962297881617392465154230578341183264017804564124596099572630386660723709223117668891104924413588567928486070468028331478166921330125572654565273619592821321822890437083985235764305837707519372068056868541533684248002329471158949636112518363566898778196461907790465567525464404960523263471175624527016404841974046651325073174731390508166952237878834193948149047996631421531440252087834095880580573737449570768175321662670392767479318659912750167396544286816127754879576106049795275174305414574289687148238259156048737114197856985441015650423527214193350167739861843529955896176480589572830298311902753306753265345328261455548488629127584301702672557255078433086105129656047835333081987476852120769162995595280924112354367514168875402839467356712645961620005813587088029843286470508969192383376764758083120307798543525220366636963659751014043655712075505204921097264849347430706245184135309332562977900726510652289832764438206976814676357833215953964208473966305485688724860205591723410879992978957311557091357558591092315662763216617552552266202033284451121989152088673972567626996592323623009045891683752672644132647434303424675547882633183350174425085290859717183826535473446292955795592229580679997763458300165561894493782899613860164517431259086623801095464967842899494342731761608618239409181174080360049508955517562594998235924870034888225529587363663135717714488241742024083445476010652936419642603724032330289222934027742198379388031686793141168489096486416043798573858458517156601868997236517231097071371590591485456081842409747767878519287651635533519200971787298984900742474143350779256811307861523668824703081219443896222008050918322780062053712733580390895202177167239444741111157899236365418930445816167561207876350538372879355815114673142466959398256363804044285122577931993436698525330168536659534350310514724987014449061689387603845214556588936173260430079041694765900248212844941185363706214669523566278210749090075974472824496894406803335356143509031089866917146409840354319725026530858697830741293873836805299194487628172043237074071994598050516437864061387327978720001352968724936131283825970323236596253996441557149257325138477742104934057156634820569857636926096214992322703503549354930699545336031692106723435081843928884302419599298047244304494161248807807773133796185745812289750487669696066676061496315601798575634104775856321811875546454747598456669317167884771295493423464983207477926436390148928214952280951293380780452553425931859211711436476569374135363866484071426693155119474788511954033652780561464645453702772667526516802218316001309397251261485064314425437071696363250933714760341509475498195088942875962764186557728015503822447495014816958956288935879432011196771706939148041167562204529908898741529436709281720946525870497193463110083371823609151876954648997127636055986485706671305642642335514108091927951824897326731660475074973738647873821061445179165946356045401839113419706638191207933062544148397167530682126759775542164635618862742330017485531190242020217837971981690975087723439262272657732628186798032385199701013243689896646355144583422080567170224483161112903720390310931981418300714959784410259790123623812392490041777287342474188025767538373811844119756436754196624591895550774387841094853728513823025692396559456610767302839787119700480757325949185890289806928645763514006336055155194496185845216715363888245728973266464238157234256003242314491851943259590345805675272498737295919313631816066885234840279529364926266866214305281957528553477271337038600613654775894899026486551903813306518865590542503092779755070582802307929859112784652285643575938846941568964146941426930621407598480492300446556924868586503695645152277245619118541020056503053345745213620558865729675658601172369636522928897315491809871634962910739011391130321521069860440212982756096670851883165504109423981120833889966997320347678090602947434255365449147312680843289038558679839005252079282753356853045445980604522040465851803302522236806612076563247691804699749597739102474419972624961337483370901953225096962288894581994748500213654967289531335345452375737979429419134656579737025181331506076202149956747872913206129770266216510597573268800097545184317606877485963984029085237018789184723808270867755420031043812603876448929246367495280508691274158984510236401727795579532901617816900951389107026806942732834733534253046500376659870906418877928300855973391806743224495325496786471830863590827213974328804740642403649199056931278060956471033010385325701808418715488428706184934935725107396689139805468491661860496400160541450323621653893358692713178250473767037665170620873771488990108911472592198486046541648787557342877482530024186030756161600601025748154989020980962467282409866155944977157621245924950038557406053716666070129076454971926501837743532650360776602945145427992081308552217193037783026485316483120797612503663168476428552794359980794054404964080010303714452220359254281315067354874947754634658926915050223828116620167080633054070133192713021862179102609042427075927222651411441365475826925243294969605729138414152188483855771643782811062899604507580259455841856147371586899989143472045917579261859070919425179522203848849585794535124603060660635240405369459166635559063273105145580592453489254201538387792287870749341430577000580865822471186703908914154854743887433497155544606213195668820515565113077410152123379063365375227083596556784676282428383861885115150976129690839512459803704109622377488151730211628586358155802037070435526615251142880651528825349624961074460654334196956689705566628760532645096768896805720022949836310207800841058260166362131432152515803146308153798364569269468888495223886034182894560247510902800336787453517810839925728855573668477913127249985887804404817889809121643660015950373598572044155221208934215190457758002566310470817214896001933409058026461493484320454497962996715106628743723470473055869947011072420555332305708475987531664212550297533420536762409394288022908479521189776659003584209229532547155258900980328689412600425234726637634335874247050145704798424346927949996482866401285638293028998173735957883266885619777764908051061217488770514705569379835264077974268331321807165166714888528215916151110862450773850331553217008551702215100921393277889561502086961301185675329779917314528373169022650447868294434001841195685620818272726455648243623681560675524512979802948786752631526692470989396370013153103640275683612415506559102988580719262791668710207860411301753931493224242562281223127033680373608697129250559078063507840707743410765927847006571766326423111209497280768912222611671248853516497413217204345845732105551274305950144029578857799950909321601216490617587286549302512560949376137471244854504270202499536929886338968079724926262775104571754500535909788173009492725611766783484702558995590147235037875846429026971722469596324378627668263405510375288946352700369779917697776526127859035233637725000781378972383593242017437403145876347569085020615399853905155634193690715137166971539222425776010522855516710345927968820576940580194120956804549855503484074213221526830565772262846317761023205294081182452369704872525705771836292524633953574174569165676175700559805213545367267404487614704200892699973134382954825670101691667760856894498039322038617460273425350783580463261772221370462194963604112511160998916615732293617228564999290665345994946892035536033571480649825928048039986186130962069047477100306077663692338808729072110337748697352729472252090094382466713329512914474666332776630256741701750674194425330895488153590768343192357821798407869964049969825556710122599131159786472930916004311487493828075958293440105916214083692469112655021181659548803245934980189894091416173645469219875679527340898090684121867326968763685100280217524190093556722946676183295026905953409500191562227420652663840983148940584482134184195990611592327596810080471522103802705247722904832273462390610240511186223298374716800533434744635618106683760757415641796247016734132876044344180472585807405052818159242723940590435878573971953911851323692838346625561045157287021963255917257070316045039284217478620567945987378340640732965222649528309664406266027203226914292448756141001640289445704261170449601549414599037496068860663116970426385895452920519477221993136587491658737852293233938109460856002817578299956709247994129101577864819556812949194323284049197796164814320693929657909390519406834035283065910116220712728287586619516000022493421435257796516925629449187452287821720786756894021172574215168747991501373168795267461217528318099446331521157688749748310138739035553839589966257408730528578006693424920992896932810217859495059681514126089098611942891244426116524270671750675171918927367621000496811842613536707678084803083303226352124363571948851410789084694249552667284433568810219464227523517074155547906482981450981463229637760609972084487913031973741076144711614698749678168953738831104347420413230443687974536748814229786188833089196429526353536926478941564503317504739948097137862968629934145721190689118075267470377366532303220110653196884482628400263899651520671795614612099710449065087828324843973060762603678369489909777650584272948035804373548806000849206090387079259416428987465225207534057821637824481334520552382042793856931442895260378002587272020480099520686643697332594719208800309863853770776094749605143287648115918802821027950979434316658677097528026158046833104489039471228638872731529467814722654950991906708310107406854732631627851250206481401805047838782291286125209328302231570439215363285292549242158504862622336578436688606312404320469725882973384031618664219580636844679735620359781794240079944332490789342256253438053128986756240028730302975492243692841185092061098858797972785195035152287978443523385435542422781689344341125338970047434947582524652981252256156546668912631208729902752742554304198477322186748635039575651048377755220545135985676530651778934725323724127745683624601560388573753203635344587353020212334818455259678135252149179369961696823161664023882083834239920632375528915904481510547933834004042280988330795402616192376523071881930161699820281811729748891060595042258539931249775386467963789067697862016053162927771890575009257281145288493479010220501650247577242142199663864371430411877577466620062705348907509177097052746999476520432462144312339691555616321323773088044640725530654210586194415605926693142498612754551748883680959467085697116260727054421584976252046416414952718867609993282875418920300809668499929990918748664036867551586618458386973305439417006022638842496896284656077377077707055612901562402332360572415343700986493884489578368761472105176738018966691303054287296586621207173308244445727715859906907040515367765637430067096472484724715804343667147177694321611641155763080560511066753283120388326346380650804663824115085789366421080138673533386938989331200613000250880134365296321834702401429583472119451097189069474318588569639298545497520960951324811374618922104607098591441495310500808674595911410640421509308165243629763650080364672252779782153088462090438705903429615186498548724332013688030356541278942570800931028147742767069781209460432318734824604770395183121618575244708941416594211768168630418670400149288344356590565062197303789984086654241064947834955063334751695537617024189552981888435633703317611826585487858835183274078282321278071927253052165510071929307002817887983642707156587136428816717764417180244304422787669050892047766032240936368180287343684025897865093896925671201870577235703277320815554217837397542043311796009309925956118828412783748979720820657696055228857373210167944616418050475997117555596756929826554746728065076049524840111279803834413161998232829062324958772955342875039946454464786014888072531033672938558020282934428944305104742830735500258332245186632017757689495477211349413585702708551516567174685427335943309424946126876013053382464525992590289418215288213171857499119115390953198513900519404439760036757060169100566749949939135621628806348616659023150181771473306343711459430379741562030112304887333363263078005458374691485542212683716076845905977333577206701317387654668798464600926521462504442320438867442245239856445539064303746397079722803956823420822488870445776041643595435759407299452198577095202632625068568010771584997385979560382281959055623836910585862479952382068812771837305202792215507634215914952476849190459287798109511455401766277518702563643504030380643532946001828335536779800486739554709519129385915543752526558121932276061156653804034355788685831773313557685379521455260259591631732563271372427279762534725939091050596102534053386077069738670242841909825647783454629771471330330039400564961565394585088015063385745025054613760331246863251185688996178957767143462310316475544197165993856734929590227831111665702457555088829600886019059864754156482250685281604582916996148642142022551760616581828614182988598414874219590345203089077976115542004663154485903325843600559241417154712505007988684922131061180525039155683541319780673224303961620683997358866453648335995050279832525683541542202660261386253993465030877998885520486756474028554905681455768324394686563994385897209172265875384560445115085401352381886800399767898801247313725754340306713639154215410991852031269511876705923755558198735876021982640357362500034080362311213134734864044257553941274581673266965285866171244651060308571185987555576865406733868332195397539158788055512381666412911954933463898403853669332328770965668659869858793826240857905505128926595070021182242978173069980143930717142710560373997962446862162802488039783337285180711802460644697931615709576313106267009662736402160963041959184508778081586065121931532339939358101247437218342550314662741874965098511161536409222225919309486709145076043125498584942122533141227468647329370932445489812551706224583263375002162492207476154363616147248823272343636870544301390171662390537276423738459163351979844439421949571332137646773918066542555475102062313300312724951821275923086185302090247403525868138928968812227805019763403855768353097812465927974737314044161204808545266946270776008827978333361490069388622962423820186457859964628457712218191263766656374994217818345587202659499725568545043158195232550493850380022528780152311230843085307528581097988849015034875199456134492273071467011890169762826876951202664226086473604937051676251842934265798055647331359393008775357671275271477806810511692939957652951457800226139758018847766492699282921516716936483674356919586912794165780012112590828133671609294601023775675359387284629840413089554516325395210981540510295738308012450797233090116197295225836001407849911709436476015848524628441764123271411419792067719661673105509224173817113372530439180094255823297807718125997951503994449949732809423282403502843508726719630057435839272051427398132484566583629995419998774103033455618436904871589450785125962241866686660353051057993864464617828005603033890898670571662269302157436098731653596166669138744490208589855055608654252019401356848494973139305090890165759676412975473001038030207309410670973878508508044512705053537046752648422062105404513212858168979752083573076209519347389880050586658278321653068102480235801346781333690877733411247575571547200923841404239290902096169235353421532743577397092494070620720961234178480611777579090400031910796444454525010095771585561685553963671064510326439045611918615882848701662761049988675785445108927676855037146253162955844151528073741662094992563319949659128124941724618511478569149602743860519413358730470144823007461534006856777664777130448996700634350718218476819873040366273688749256308283300039341083173027359076310750364835210493402769784654611345927876770449459678627595362618580353486536551891357490687654508519172547354631564366927573428602568429136189618817000779212275320264422771658559879108730345489210434517031125830550863673320508402570530439442812544034862301442809856585326264612745691121534184919382860149596406556807098801323057197892036078097919370711523456731763424222367742841325698451045525403368523343922994971869351813384697986619658990097041142753790437887541729045865905697546610524296601805839617272619415741833875466396702824897781507570112804461473820345937918409030328305670505692930109965752621624647912737751504918486292148619213810753963783461135077279231692165598484333425072473283545042332004622034315870091091018018987090969548348623549708081320301900454488026052259427069936009189555124909020433932341723627889355258326192471493654360980134014694263294993830151154732895650142543116871678069461799977599531316852881692710027182239213505413879949791954446811930022193158586863582464901155826224589276804019876873878066748913030538431144190302781233436895390511745118460704530380337333422652561947210838904471549514945229082397122815146739399500970307998584503166091804995525528961187533115309901008361366604738157243447193388959725796082126901570652384911661672007253404101919897520107396277364499995482980426720841508680050454950959306289147368000737978617708839019087549559786608614361422427119673180849240257551511749695129167916936292068769099619545443915487398561698396926008789581507060729888141825720403359084870914372306164847181578382691038349609269537572206335643794837165912117215687662473028429495480712580509640527790310706368409169621220125531399595071285528746166115353370139082218071431007150940219102780635294312627296720624547948405955486042963362611113598843189004708074756307156118008701174638004510025286261340765163956095255230050114114393436239835789605939589328395467519366558945749283600800117015452590406001458167106682621152183533267711138916421758394667808495019947255702056205240038360681121905882679335835770602281397641789619263720492774291972399036243777499354176216366175472408696631178625208377035504585718644166275741064358963948507453343770162878840308683582345987492436441910316262370290228222313830686310979683018653284943445402051401420074282538250583810647173293802214843009528528778308857677367909831191268740725259917998020597470913816197052564135889788542722548779928634124747041608300139781615744990766508825527447767168996457500326475444477900501148663119266815243663288165131844460561179802178852703081269579881996312397167194938140383876754828232702318004496757865726764073369239833141862932068145832025406849036937983391941682530361248802559470016164379465774727139632292897576775031328073602730478310329146243248819438710431612186333656709293176411098706962035736733846225991296669643912618283243107131619927700660956851400316151197583927079738604463114447502082366910266045618537062390557508924416044686387867280917917447513858643381778605333944795423735901358745565471635116928222641585431561306375022929793747223136924737847895419184804866904146351175856912267739484550843713087202974729486909895726874200493678841163028667927161207425263594757822714702979077535978696556455794805401632442930271571589768983132323365455601327494659845933374961364999533205143802712075468940233111584742533591061587856606679658731550074951458704858621999723684671904349146840269387569166248359250539348763705479775916867871150137294421059318797682355866559171791317476710980954681528729579550175077979800252223958666529484471093698039437858195674303576377204071914167973570316198452052873517269591818252425133290438727638323148208658359926339762694876960282559601153133712902457833423713544470705529075247758024697768244065372892356303144692533442659271484137413957725356272354403441486399052863031596231224063228498778525509359937931620601022215829589446439279516232536247343086208005068237813532564540426193361336467895394583178138683538260453091966714460265001978307345668713265688077725254716710872768980101067386550997995001659568531816263492492991577233909280855100849974596279434696530046260890963662035024603539585422142365174486193660466736495529226195949434379584876683539693929071572147358375596098248982067679714202927628411279952167896729234924214868319255613448043266582694634250559679265578844943603699821864809681094190720910864043773518312299764238844448547703296301413411939010122136613001179614433528776197446568817777920392991770574294319142790011654918789182413474529748006103613010859002999729643824418466725611533443781765541939622974416934011126835193259465720311739925320091083215089258980847418767278570986620138137770253197848362902962090297124775668173903191559676807038317921132413997555136980750437095895683341293667874201583541308136730563354504306677171876189032434357934597864838828258717102829571145508758979206890552907467011681252439459195029762414058082807398181708185949311709612694262301772569004705061389794529563374024971328141982302246725484533646200707706823253990930839962507740768349329775292367258405523275900876935915729001447506965440264341828712542622159158741249229371275611808219919553920835957589706211194276627943631733772784845024414280745181021761734913687968205729857815519002455588586030481406223583295712439988914083820166284222747787804782773120140465219016242543049387212959541521006244506660529531512884782561778877455627365803797769953181401056497186094614653278155184416880143775851063736689066133030207765976676754577907724236633194163693730838254058726715427317084182094909800494085681573653106840040423682206210333938501816860153350301604368869330844218732679818503209893413092340354252554798657395675328815514366693719624757391678471895673998681248244057180251976245512595331515871134503954875649574591533477356146034688344358906170986610959354705018360801511137808417430862231569366675025239102258546158876872321066980269704476657772605788208754924259428351845098157150832205555785470833415384930546799950415350373026674526228109397751626755890322402800318176969346701017745425415580855485431744627405846102456937966282120610475384679764473604137081801779906371772062610873314500067804214170117180791607190241683377415357804028923505281791517840217802202655666866451784452479875050652692371694023481450585203093434748617482649457398663899721628206812894500029996829908374429370132049593188174760309412964136744969633325810452206347371202950314636966124869429640481223335121813632799544417620829526083523252547282842164521976792442392732414209804330774401762134248300128673749550985913738912638396890573509855629725698995294083671660648085038487494407591077543906965616314410118781535374412060175654224668887107109145463861464008031358019580047605282459716368299487480083952767500226822884167312604999905687494008242709070827097296452788588124436075197663106558552813413265000937399211739206923965253284488904111599818185918967665881529100888362281473673245140980046353553020126720303830717326514640517815976040965169492168871490424415764626488855204089219676810543943643145939915975476309404835034881349201375885924016790336478162327074909345720952691552320572606848150398050042912132778347384774827926721180128063069400207032619021347020178221651044652508830231395236248990601757905022534197148988032582416703134842451995132188571612506111006900876329904220234572835533397864958376984030240563283917734610739961249474653301999129837928389275574380891241445487926433511832647161801773286673146765290737963803817760926911079589710287726195762221203455084037990490735685528097747362748792603255252766113487473881200267386253871393088888135533286628192710690388740469069112372331250257879236722544947178696108446193720176782859563869591824297712185650181017288241045813950682651574286599658649411502945564921943733296638198091273797063639975709437740066969320763951587493592726583410771875923095941420834848791556176810236663738249344360433812051868417863950738865528505273927093702057024072667881727994783256989917861611431256781896921844810310112076625376070950805506349780533269616383069162931601138665011951210689901023032467367699854679737873853033723261343488948403783951734254303872464831495558287915302221069217374222970888877210816665745816251082801754624792625359485204133279846020578952727737260367447121288155274288982934443709112525030681931209673760510949019192984513820730967317353850158111102779708319877227362298854532772596060719621310149390877947469041303079146775373463997646546615525757003690174046101722008987585852855336831125155700763696954928061575814424565845927226530630594274262213387576851607781980329826707958260928559972533889748411806031899572102289210381851035552441811307123502752262972241923797442882702482730228453502083844727233336164498118578940162666452297779657313996081950083953565901853323860206654200840340609731186198199119365863642997065516980177916460190851337684038084811736457525932727704815828816432185728034395629165705208993242365209720461835634065134081064148290781057518217480640639889979633388162996890869850028127653788239336964990780527485738756328758172524782801990490654621146091708145254592225731259040496714010504481180915850126879430619476402087678507782601315589768974515139953031236681887234758836620504127756989609737973600790424919604132229914593830125137732415791712002864393190283057936897606485098046568196977880201420300215558755508188794550350385876319096654425366674092287572091554683581319814414144014649327509733271731640583833683575283434122200170383982852403583630576789757015615638711135675516379229492744930882531495706737051833261627372816975342986285004434398991409760912197138809142385805355276511977155627418054369882328118649646968899811719270644692855138274382425023758684787026655617222251067800135557172868772339646929919679628744228898258702263500558667219516398225455353398945290905949763277428672742852603056486371864187447602591580663581049389742167194950949885742787653502889323093664982899018625140554647064425981028725498553664623777297089372416651115184217653211738072301551988400406713771566694524512965562659560398289094777381387173668279489931618435459618088300774399028790595216072685397386410812619648315878273346327304028351725341600317172270306360339073737883903005201380882258190806201159207579496127441682642698662514975302652953586550981623458347799544666416814666861911156030689997878609213024466782410852923577227434050546865135906062388727196706922705654090113663314263987000911590475044067888050131250955439905505164616785516164305534293809421501555912568712333523783344036170559635427058871178599328605110925610834828083368136593004404474150914151175592426844578097314832938520033614036601890057847716304944960113304622242637381357934008765019242821386592743577758919878192426435581861419376813721254251587708870012263402818225442087284358585332204950947484742180364795780240388349076646135964355669624426701937150889880732875594955537917103389374778110788438665705008447513049521931908652962868771446332899705301355516165673873532541933544554255007997978678247555542663876316439762761452818621004954671782581169357882240187189615835866816756715303813451314816033133240655999481335356680760837716957690542289523540704600828533407348377348776639781669914088469130298330884385015628248677630267443017911104328436688546437178217247760183146375397020444267610809308530720437579447843342539567377531134435100684069891411974544989674597331029289146165597360281196998185587954635830534646132159445719838119852394684217282809768447081075145468619009349586001773557428747240181831207359360433159084368141667516440649636694657544349258913756155919396913461647539989002890284751496352885682972348789362426698902026424057681444307697938635914166178546362489499548746430562907912625846786824845003463745741925079634310961166008294017026098404211768616068018605227663195184323301908433703387062547787183290933177024357494722041275358105670293589509483545719135429963010680656575007078040479283836524682069108088667705835354948518976300340166583361893807508273804498653150387275383809622196288079488700347296650714578763274894061261831295219863925703733371860824019363205601245010076217710536124680659707822214213052917396692657755301002472536476667334636012985692147237561872150717090775262380914046172598339444101302422917741687898301788270282011523559664046220026489679804020195222359013797856490592529804630160314698691176747762531348010269256027415722515554172596987587608643270917993101073695109229023786936131549975596430262918621438741393418706297971066981332146326986080575050561069942547673727402036925688300024796185920265941971768029618739211269085984258984510114438174427019595046557732453566617426448099260218206476262046671964854072217770004760697115118129979640019139298702976626769873931634093569216838254578011303689489608197012689807875736286544179985356802020733712942374453733386095298281061461545828065341509684209800243269145068963894769311331967497478038062135911000495383522478073346137974619599436446878784788125438093367629469442838276512661425442641987080108466043866611349020410131561658245227204834018537023727305390669602012049029470618323206025278800758276355045461834546339177530484172650820049629054539364851078950174726818987410041132352770242365325841136381053305192503349196213476089005531267451704204637353622898338499751731259990768028790917887320009114222119487871058179148604265863110171344623062240471658621437755621403612417222910912134585726484030801235310410917340954859092450675552010077219886094581301005541305819735841416968541539551288284990182091583475597631615756678977973547436082164282854664250127044107848488722959924558876502157654291316453972223433466083452679825399551888032405439261164632779219981010806607638494124777598385752661762292722895409491095248339112892457789137281729517702491096600132765935019260568553481268617136287279052454464948056031616894468065673317520751599807799761264545297985593326139692036114847018607545909742408856901652206815117012121884830584381598740125774364541505412781007590894877933667640258870429908121664854412883639958151282494645974103388288460941956699775300395700944480631757854793048921156009262492640400450376249187947122203961123273577655110535054937816893685653742082825355941786712603565392801043014615548571381278983611059877543967225715975636422670629171708217247406738622651242980967193562675974870301514870294476184154402464920721229963278201732109995404462310117302493124363142158025132549983149912174829046840097210958014496614957615474149759654017724319912327992965017143138258061856099435910460401093872033112160775559530619096335713840359626715178957788335645020230125523601491823308752104950351855052128582606808721472270247612749743828341256818829327472929087505846602975327877487876165810225628881550638368357833028509725122082369994655453450852298434423603001932335141747662064349062243403862673892282539731033401221475275949530973946161078871049356354156894514182336287806041078999894998443937824302657882524878097532663316916273651551848006033708496922455129938544634988633934538021348861691013050112202865729327382890832009063515221823149484447796847017323849767935279437454993406210812291022002894552346167749349432906656719232482774514720382766822438836859275567718454848065189101106731010276687273975459182028409251785441226987674570052958314238038290610535309430473939608051222710043344852096260863127691255448639494833406456481415405928515985415687351218017724032723130474429217303077869121269974573894675594824849179040400831892016186135994891634825853008339098293604167541365739470712529728455373887586752496470160842881131625666504738139451946905878710298741555331972751543337273091378167868510719635376299336037509524685888899221871582697869196882003674931726521223799089038214538354295219552952671823428466645575942535214283824740631447192560401848974166230755100732672606881307058759927846407123002561015026410349812131907207543629261165496998914405010590550200908408135383426273990914815187152441707417246069246853576481758058298305355092856720812466245001023294659713564056658285117502027481736524106735897175373936337646226744557319274733732343424383555965332888307667982876155803607480095842597386053605485728173061126740022468743360404878648095363636070048529153059836996468455661222696344006839632640624641052372788633126376592550922583026840527266315952039877681812501038711542108654665796801202111399971754218544995234883733889316930940173574830579099392365699639751596024932643123900831510574958338991978500571961119049276455627440833482480268973644813630223868099667285689943279719493364717580885148864921970984074365493434146407752950030667295913640631825978260052252098498250362890053619885435746850349592483648451069949236306634872910376952639932050271686855106446998754695236086316264488207101639836804644798117209497072388256057977675948368025054317199181678142716576773845738163831493715071099869736226582986494720162830956324895580239099729994670209613171826954241963180684338046771988085760017976904211724617004026090404453341348120563957564668646298424306647293731104540182412412797437325674088415145348703773842542954897475678647867684967314085731368983809108882751885867709504214790324396111625545203255346199569565983445133298464669571785058209730990140747720123101527125439560352643452761402570194298545839379221626028904219850276138443194583135766625744503183371619829045914861196985400167642392051662954692573083642780200871270846973931807545729754138061633551442064845920547832890687467373971120000074826205662800881115070243095790537495020956250206303539328672034727915128801943575930925194089249545995445681231059239641183061556220086963247249270675576901653784570055206031610671050488455808695216713895334343309617216928397338686558510898135190666952827630207082848726353060296525317028105112844129876689453521518708894316425250466403411049865091345269996215691837344794123191938683664573579965295639498212617086580475147890994494458925220005111586689070750445532118774828995603390586616888446761222112494776637521148464078390503470895355240808838955215469825225414281296095279161898812479928554676318120637399667043888139741353435172985780768952316867033603192235967112033506109855454953729019519418641707943522145219967498522459453810424956853159805748180129829773264710887637429170680444121985447919403868560388848370806436328399700892389077501738582366847099040586276019343818839453148929131169455800663259166976507719204288903642262665250015789026793876130471438008715631086229315152655709509188036964851860754721200361691678590248349765786042450365623630124154221912517977431801637784832248464436860188263062419248323386765813130788225863433249758477019750728247824984715328467609611538526095485999073676692611668333433062910033101478787804575004437441672314432262154563135286255555379447173747570862007206546218706675031031667555747560867975115410017738419321093196430162473293789481932577147841080140626432785590100613439236593731928550888472761200815543410906966878176571503240109667102423145019476672732921460514791272632670235220477208087862186128148745913478642929497195491454144089751135237489614777392650710721130375864789685099227136563207031930388454334564875483852877014988918572476279247807716204515036093422510571061840013319781195203180519771205833437048376181301884469449993394517928125593692444884383680460665740466143986270220785773775314354239582247979256176064461316126240383176618502880857868936856073437851974272562419990099308775117048491373246254738594659656065375055063326316505343071814546397590219905615744528978163716084222471054886290014040598366263557408610118473118907269241407016298783343801414418661846530318037048704763149789398245353861906681222757226311739854230417445697571457988451618990685721153783449462133832915210223137470695841424696688052431209424348309441295754758919567303793570506375599010814116644083960681141250681310737885261861402343273802291579935130382784068953381837409658925210087905816449589269070299488390081432374283512758607358892440117205325389770235043363994516953151299425798554011862720492498226372594476182863669581458465381206701934847964735984261643918052065553680466116881185060739978716656433119400318015991541888830038563349098249281601412163211572003180466363971960866548364577691139152812069220530711270078442162516302368709576893325744311660114722522985650702229066093778003031284217289129034368776592612603869004094490621749455774629822171164417897476034855210820886406830828877014654576268536635778359820158834081152987932137104824932447202438555111295857673300093276265455890479716378366028817306749471632032420513632320863572169962941176936878026953239212783276549174858566939835772802483642060997829997239724093800732819702521146855288098167206813262130420283035389392442456888942225868378825803061215637887864979981274125791410987672641854339027275470790064816896981462779028268349100090456767057614923656260039951906150754150044752825809976209255089410006914315416643452800267511620998257102167417592992313834695428014599965357220609666652611250173814513627134668323655869031683607099385727224599154854041241898083642422884535459750359020685224766823950146124614869785327593674027729958504123244052562925054029561054312288548228441525151391640814046824392261247210035125729972654865942883229038044307106854343868896089738640281584503506481122030180918328892479202257642276374599999502286451557922052624828249690648098985551977872981899578495852164153999527308893960319199881555273231121624652461040110573285909168209483568813866238462077799145652341029069687824852370630035200448786607353017761176588133362996291953604361695190965381071391731329499834188677344765100618123763293852125837020300060360448907740319220681378522034344405789309746153651981206928368886878905145930980529138778764927234665820343687339084686144272735460534189089257417706590208755532481849080623931682914177685020588631423244686096357942234837826278601439780081507760586720446342326627843311677238623001814645275714721045043265707475772165631093435403716854234597785607445469749307238301197529779244886676386746891880669960137123542963852368703976049658069920266107633282355331058741008172621199958182832405157157750998426569313535968285082359404886791044945384915485280053008206728206450776497508836051641698133040361077898486531823600432857417752050606271689040416564890801090214010437640301784724070756898256965500494647638301625338663415179255283228774758761707606336975976617474297100786911926145859738304789144672803686394238286138320116437603504630824045010821553678136237896429103309051935355547287793521169988405726153743397634236528036210007464974630470983224353397173618347281404215633796701193542639655207842302256825255914365235658376863680792161979752356353423980022614382105197486296793295328678810837089609144996924750983080290858990017396137879428580279203503204168475705822883597515738155667597679733915152961943810357125993996407934026157328850616812592388761744062747960419138041818960579458917012324270349657621157404060417966237083050303347168409192855264463606673508789669834259742407666697340701941003476330486150263370089524546962527750594437187579175664802907282757678864351687824896219796901929941626166865159318639418207764432603132487238543482480156718873650489052623825622913826657213817535141551756562039130889498958537937707190586788683996658012620834281720884636948301959249599029316512440946828869306772736232595608632591106186838540288464870197531377568146963264311301693921356694823118014056316433472507833529358524070466225285166478793429810860388509148635257236089993489085940698624962240308960664260369352391440516585698987339446728079092042670083982145909884860668024523649024739242293021626285106785565951873547479522942894058343629848631911335860711778416943735645600114568402567386703813136038117962449348575176734722726380596020407677355012374990358749306202215781481041994369363302577758539889944276001875885081413708633004992961978171098812733693483656010146203247555402623853480269516874475503242668936174861657420504700349330858152288372955277143549487744757403858251304240926482091894045817032364735504347212902800186438051141351042845666860807635381946495265651679748905003244125848433271486226838508404055554387674609406158270421967669009871228802623908180592836071946794450096872033557581262020466184875766059064720256585553640388561543401633023551116112655453157305226159492081162621322430115003259326090758930191082789203369815848245043794598890426401295711991559960823495137715474517998674629624228707341750902381165520591653184112683861926613800986945504292285645088649045094593721183333290470262713785610622643573380876449735822499463899573527570206392882087640452288672456020587798943090106933463037437690440892949782817837100015311452874244698075933713342389322243006918341483182961826287554108623318613148394396328577815649758009766718089114083671000566809786031423945348270397653476647091262010741998267597805884602057518127112754443675447561762133024160279754818803869787641620692737211909761893800476796349078357322949510867498744972952844819983154604268430149062465379683409243842441633373353956898739616681834780338967622255816088419647304220852612038966526021568838364714628858935415674938076843039004716393191291955357922355466791885411641410457100114056836730254621138776238866636618859653763131170831821677833687082197474406636529488941642020766904077526375237698874563872925133944232109083073911751637310931501822212792046988342807355485578684999710145248021682002918781196460443972390586810197984894864731188337062316860849740666963387481417505865984453255866019467806091813576191010858301634794277621767562275173477480293727073766978896163966618554298533360108861667501944540195585677019877688730774704506110403767959883364965499466511608164550091405398553356862756167078839108776649235266264817654273148453368987676543497697927123047073768874881096777620711767522917373144113917997405917779836071459803177326270154615481803986030091466395694276805619398167292660136861179206371785218761344016618962361787817936473422739911699437817081096994103355432170029944073062522235983221270118912649783898013369537902809521643668041546783440161262204253327907678491589811174355609565486859754729857633263404560928173172437292660074955928366830827270387382952205209698850819359387528599558851587318392923559428172081567241544404975673287101339400415080249254177965637459268843165517482836148448641262416366938393851221176323973719263834016589367292069074610636152875107321708613824501599551544173947710782931193059939437769371709627976495419857388205582049993033950527974599692130105583169672625424407236798109339333129076230858208796081146856093456427131904784979492983639713176406438244040316980089399825130433015299642779282250150912628992179598195002040113883086812004876904215954806010609808661025150307143916603366894252721368726749486902883030326761168964829488222434963973781248041216188184400236325839201744665126243850165627531983119412365863731714484432163355524767945269913513842892770077896656327591726671626080755602227258338267996033061671793858820565604565934998337020156261862718993877529681157632197582307166987239217470239015449412430615823348724302910727961237311962865199363762945598306978183623608000181128937445887443735471242618644340614976911909569495170033442779781654713114123287968567617257266793260405098365425315939745739802828952615818515252631525928526018732067885571744463220814820460421906026912022617708577315402266139690827465012311862386113558703883119145729627275178333321300522959179616875390125554355589979944924523457184175686761397663701925374852489289911913468221810237987169585385040234264651914527081039268782962570898093767990101621051060414679225896834900116994169378249731177013902486476719081488395882922817919019114835794477835057402461611836094893684584311227129203299916658673383248686522302623503962496137935969198447866509156308236496280604241679152757838708034181149501577898489991499063080020726319170439719353973426265745029489647334768762298966941048126590546383022288549717275989084531420924725736261982932787508362643910601266358987368376061183083981813377458398459808431488175878810899432737207110504942060779317355880155043269251792708307194214911738300900752558136840276173254507680889018297163416855746108283849582525462360418301431752709633551514970708904773609998507456222870493663980636746133290095477599408429911248011798003323252488487804709795729002755653081578474839153152840934985802934852994115975864804886302096354044358596837526500475531966686244795436434591017553524071860481895191906360482196507417900183780047039539188150136822495063364744457594701844640860591101583942759667429359699433968781795613847638051505628815692722028621021156625686695139880272175157417428882483536511472748097214550436121874717001909365861784542060603376883544662314191593342551594905555546236293763682891776502851160255864643881442695324748866752948250549421912802493227924381834152258639495429822863574986531194564262889556120603673158011940200976802125741383525623891322014842775064052748181122073629399831756160469039837902783874599836197247057247791761486182289032905802281285232473400263842131883974236821887680162469635108426760018531501362563323066891132556470781502324331086531813850689177118648065080538360391401690792751913076847941230581561641359331852764033438036522576876478420186312488356435710235084847475894630342156439126200436590059800141339104771254265032532231031416774726812004115470677319943203538514437886685594965032937889407082174634890119040912233849472376695177906007091933727982390911258835955339941648304143340523284245299704230459273360635281949945115548371415712820825252849814131832804149424734612997181355967495107283297755521545079155649639449361536728977974703673001397539370832222034765646406031493093439758225790298856875027480393440732412867119062082136372090320297155152387573255301652556434590002921228281081448448069979828362491515504779598415179298990766363456706501124890087470741230974584391513029622321735847806482497224537945023466511693788581373399972845456328163374104693974466673351726805409442362730028716950522697612213556804359838549880548321423266560380879259387121360952694623411790134282849707353015229425074512849910602628828253313916553100786333197826954355996322387033486457177425474660896024339947162008373409309228081132050081550223975085623090394651708667963130286883116777825687460739184061065080463359926696830770036002424423849993130654828794599021496500745011394138833314358142831644188663251989922551191187360792944299246127746286020525330370480617591969154753077385820360366006371154595863833307600263700675968760183520867445479112912370656896323368364141862281927261394552805128252026711549997761365110472469393368217930628316078200550072933815331866457374372864393522301854433940997387386049453176544280070323085066204442910394860930925003430880443303114352069060309169462856042839888456783115944628049575886078458864234944642495521838141415099147179692833435121972124406592866912288787473602176898309547959883426550817591850663048712299631262767013246591530780758342067931995690344787024377265153513192963918439962883548254053644113975305219397517913565997303863621422550650863032807735920918225940308987547935669744913206263312762011972903437583954633532407492667487495808062056702442942778235014611553889145754207252685379697258705002651708099914635237233093407802370359189018756222001705709048683376678217539382150114302091295390622175068138689033564713952834224316097737578375058288113937272052788979364972445301381098022026908892352152479521322415367012126564859610682503819007863533007409327666251569384274523490233246832758630576301762555291575831238039647318367161596372759504432977492029960460465525583937737623853402612990399782105191370990566589258958380811309740611139431154969236686671758868827760227009818159277342044512360302223611015271968932451680772122328964718952782034277011240688642242941880320960001835059152719146243809574040917461003810334852806536192806031391469829519981823498517177446453288313217585031030061062371765544855933533844429386472497373076978121880046901940951292240719081589864687683016237088115058073550441749809120983141359574809539991358080116188051559543792905724476111592448845758709356016408622505006777899420392130141069207770767071953459591607305606588463657419940922118348048685384470839765234639863585647031229701422104604501191975533597530211587724000552060295069321447414796440246882686922120208236959918561175370582085079769258323782173475699769271562223961992536568725816119561549535407056657249276506181005218439137911680740958753059899386969601888613633032141387734196629823547749559434447126565365197966065266738135599337660221389926638973920974594768994431642051728544944886490196203408042761662448713808932877194579516314369989909505089811601680875534832280093219375116802394765078724518546330979500294267511901677685258356756081023065592662391978883720380117590925770677784173871511936801768244546136540697074578341129102621272426263732757824720666213228624251770099662134833605182289593085473904365557643637960980599200482207388999026354471390588342594089681220774633688022418172054741592586031173060569175793193717458237702096853215967106796471958872258279105003301574400841434280042092876490062283159062744475375212369579204920173594990358040145908382907173166809403380498802266152000333631114735741911802637142845971690469038801060982371403603236197514491665720663556569718929175555458542678764425937034320080526216940322371728939012800773553679045051406822695611577260552922724733235979535813191287594532647520726597381807424049897165667738848864707147712569358032724852316771614763423094582032394935490138929717140034094786362044954780716608271781797518556083709543582665634541251178198569018625951969529317529734515194076654526584835311158927169077144409833330160291852228781490213799501498521063275997038469430955254510021286150152061162911928597343309607570490433305130542744595910744327045951068991431896245846081554944086918995058913113461518296542092338502956311683313778708974335037145078631584270377431517681344159536689608396412183748477731004260318200778270505794132957424525680726165518732315144699437259236006266562904330562500319090413551338049367441163455009167788455985867188786920407627744486484104225577005858754036728745443842297572401391732918558818630433835449500153025620500560920934115193015949138934338177394903134610963489609298221273556800221877366998173811085913701547054161326666525101981557311563644787471962755870033507972440825078439058824168423525465961555618193443773477418269454160708690721667531362328856684243670933727189101886393046599120379213283906780606508982575013592090164787085985108703683092408162443311033992736433455975557790486092727606873072919551689792466968423400843361218256270729117676902747909915368112732671969040769719493515299134860353040720780022118034387481434427612478601238142726639671132646391698594408985915407611850063030814118461509978274531487266642437689534327417039943293091274787174511500494630244146764876686104128165866195893967308771659695385479412607529874516636764110907915716790098144553336345138845289385733163117091131008064274165537379908731690645721461076166272707288552337878922236295690086501991199805503164223551892713982557831533690374526779170708286164450888690910013615243004258526797209484237813473366044440529361240450367406143194488934699376277842882570027341897706050863165534306694986148681003060720061612937841265399648486637487353254519089878765465665191081908936535371786171380587501698437968143683131625615022405864508593421681967170703871095579783212201729019377005035997945056353693854524527220944846602287222387872453543849243227945270675891643311273294701516085150700360461072180289765565593097527506921328977426742157230424624001796943902541256602821922435248511131287965201944001303358797944455330190217638754070001324247501642727669242118718652803330223057511832404569198603853514602816826025681998900426986480389906429854885213418779177763111585045908075946192698712162735241239714278671599066360045310194604769423628695130142671011414288022847539078369377594723985525600335486148376263760193169862067204475385648766565926864351128297578103243186778878759916887660892951952603435638916589782914788075463791741183217825653527674172954271099366376636440655672386284966005079303071646195259677590620500432684618064211137548429432550830546035137518704027390743336199173237387965881256811191199564629034540984725059386760143652884869994672122847602492288853974567315458986338300606514410790278652387198196163453859252821712837761635280349675116973258185701532854739539910404813509717079324355152879696496731383747277449483908173372581780707794476639689187254173746825477624323931281954754555552536424408890263278200353570517181573484101106883961243076070323801378739604965625486720447596889870480103361484449691182570722892453220535692523011409067207822426279434960098764522561236344269697288809287725014773488890097313130794711854192911828672381182708621330239099960227327592801907623106072457678830714039190407690569556082430663314747998689254130667281976480773413818401714614722646990595180723729643144950470665617618170386647517993337981316939802270483446307236342478384345621711140661988219564986471027700565167259639373652959477071707324144249090770038248715412705295934186893400905280402089176870469926611000067190613501818987018795491060798903584397816264673978324152459712124774292509019425297989649425836396432429027622252091880958671511700938003897013721755231189177522433506340773432243996128878511253058515330685964775821654618051409383589103814835056521607076981228295499491846343759419143749490145706324338554490578931602078149234790436924379807713766887929064056996874827203061306204015947519625211384194138749867613729001914857720601562068733348658453635671576375319004202726150120952522802131984412130674197792343938485029523404983458325777275159274079670929562099934088080540054324114109698371566072921889168845633342082726420593394420033880728140117188914450982841510023012154388859095951353142407477614856538112393631893607262073282527120671259679394094176067953256528612740413709976470405328737357023708940719772108234168853958197659038156830158681886859992380593585733107716401557612835245397858644889093061977808078515554147973498046690161184995993997339699578935659433279108505572691287817183155777043362793702851672697363240669126584834160888733414169092464575164006096037362366711226180116100385079068429896645754946573936475574081263142285319010051900601675752603649303147849672852460145595592991828758319767309182550459324655173934527028465697988822662450190645368336523669052073308521275117403714694693633449510732656805400641426612468059185720189157759728162861839449211552645003622434887476909533949623161009737075782779473440190408046181121682593342360095506419933822648731259181028015451007884677420611025357887807201329519360596857115990295358092171566674508858039136985981016533723151477623177762070419648479690189371778174875109324254609288835854859098674293984890538980017303512110924492867565857385958067996340927045140821658472348326399435898877883701526621380895271818543760387534253246641832983899172215602906097159059736908224268007511491410567873437908388003789757751455292258213842593896598105344004466350920286540542967269254247624842642571995547559983420158616031605906346351441289463514689389587281744650183619503130833735693264776264173724382842873000910703200747705105172446063738318608851303597850577558161835790780534350687415723183585341941700917796126793111573858515679678590377938151358877833084241602549364307048839197566127696728213607982497240681195717344396339818482935074324632513437401237792440965551920903048888846406210610772762722138229549653235629769080283455380846625746215960376557073315803078138404697973613413005406338286972277595501724976166348417667360431458346759294277577186865973820531694279646533419882131174109060102894461285193752714394611571195554259875989203998348726080692272503919686527049828212909982785969411242271154334676134239361851305281097933062372235224786747392043431807538671080517766307135931468969249589128573633276854548205659449937900832765384410525383622727719906459113063864572463843745088828573852636426683867535115280473830518095073886484017473371935718043417043195729043823490621116033416046846767408366445584078798353634375983593076388282579966990570125152437334151521374755793730582707269667862080235700573851925604545919709094900869497033828192179501284024987671217260500603332587722065183572355852898009630949224022931684064373916959761647689235687232438514226999669684426581489166991474769790803584894319423812289691351806671849268416510477657245919930446853641278068358276732793983050108521292480144002822230513828226227284842121952899712991863467509926510872416836646937463360526066208569327403782613265127256243195219974662714801292332230444070263426917713452741764970489577062226845387372723458535381693928038826808039657028969616270417843950711626767933541898472542478508976203381349513823517630800174738234863674530758484569460056889094023718251474900212066864264151221855948486454395042059959922662741342606445184366304591115844959603135440624954043439240547931821880443563799801652116294529115982386224870237651485691697911379259806440249718573634857221706211617343008566889331649895379148116618675057444655511109042136364959387182655907869265015964545195782303089803206488524192763669515958234153039412426879884852508742457665479782985120481299297012800742073229396138933251173931317428186557633412301077759659445423113991815292410624021048839168360528932649373839699780890492728433634141598367004105264110724817543642768350092194213319730121212474849871381364665634487561221321169776992783549164290689290746329557869039635169104834248269902013707392842284190342749018232352424109384845324539216253473125530455645028442494961432741699250802735570149509902754346148092637737467904156265491443957422633184527410937197499054199505237174191824906655742675272089863420893005143022107569953940507701067811173224692210174810407844885086532112596817132156930607398322174695677446345766855602819571771614015172769444285687973133408430419578713337816000521794097120592210822710293775487668161970785840694087304456588927866695967233735123214854972435706456949406462675071096979640219566580187089371200504205404145384807225676803337766487324304065262652089023270446715168075151900786205892415244601779750963962918836470117877590816515232025279994292704147573812893932168774110999598367687171001848143453843140158309198564442533900472252113240757046523868193513315279629501335375407625765199897790544643732551885334667135573337811698743434847402592252720925310686677049904175005661909518862390089382020336798153950310655074033742781913218640829161587726244148832530126654560168700303724236390764539580097992879205891282495066076288398904112839567264870361849828387709544804242262847369457956172238242682644273060565148024251700250999067586639996758819582233947250668312652272589986320549300507707902533624773263786856737973785676922516816273669402628569877366852519680734219069473108937274815452592780392063952687906917357349416157956815585696986351199693575010569268590934579733161231197693146119022622136527531181218581075031975761028825794091415185510154388820603515507223638276713674388578989446476800722673761144762279490787370969202315566891453462861431470830060936025021627604178728453178074060518122421700721253676739070245792337987822606597369498422325687890861526258652082535472476132271192443137291739990548185986762665291825137762875521286856629416989732668456414497602280788263007896441961253959609759506757694688193139803929737307910440519791953972425502584936973092654668453524527927015024536201901086803946592180531111831854941549385069488755938036740674541123885001336824999178935302579420424272875425181206477551106136544509504943622244807289666687217952715247309674957545955649185903619212869794624706035794453782854172830324464887814971677287743792226110020959392954831659217673489335704587996814169419561271546253280765862081172385859602075229844573600721735340985260886912251099948590878978901694769782586472192705516446984346501852171284461999871495857138125086497622981051876553777847388812313623354616519581739240130793863296130566574951775324402860297847254323244626434340276405435898716256290225964165546746500027077210942020419737991214505225206001814682548325143063401293084035342781749932294079571828108244657523887057911967727620511353987205960777328917164170787934605395501595693980857688342591140376567454344030495264916199757927216475320356440369911818117189981836472541441255648358937573155746249522403608048565573521480358180963717820966515707874049590303663707631519604611325013351319654459504538812902092543070436870912507845432304047839427253447953787467538824840831206066700519511424650951741450220018999850089628573621328741374438561894905473749431687452220833358462670873987178049962739758992733844812803498378938232126189546399440741517229601697552487819705472748705606094770451408807646190335257063738671857633431296238075374235225565132293815762125205226621200486435617643848823536809873765805178795687047520278737162085280998359696253456600270298401741611618522749590493238810892958589950614449643571516405161648934048429643086451934229825802896814157088221225803705741345644194286705131783256311085691876614310184619065666077365351722181492733435065763067033658818083716140942496078643701055471867490737150984621136344522651947461686277577961605081183508381265217358238446449827260819553077850293632577948958633266294650443101677796244932328653080202949537760153607446286033271924319747215946054931671841889652150275016086187671562809037141228445683958541536642957477195364245967586649407923147884558625570782998696486073323100862339690244195919093957846059969765989374563307628658673827416106384728103945096502881499852813183450752297618030924140866237964436485201105084989210676833167373552717512050713490765890152571629375404037225706322703604751644640339529555908863441894977302897939612769756741765634666360963276217389605896875401657128478171112237123414459238422349918867292309850006178986654458407892336220427103086032467738226230334505266395949838132266954084088544974350605947194888575796466633054580703775746566789692663148127669220352059706137996302590974873648428459284004869976734969406073744021654462154733206755250739810760203540296885203670199356359519563660736378037933385148594464933808556000174054213509269597308466946510946175714742400945851333580286159640718659667989125111420301671318172908595639317130200257448758889449051921853591896605213006932451897390424833064781583057033107224373652760323802994517712662053718319146912416906986664589812950578101791240872727347706438929054357653400496934904872814664290845224585745371966342059762683199545398931545888442782485364023198189299032730056247486065524883156628602847023767275646926442488060705760002074514516227476896249003748052611894184160368615117859183314172672438952446646009914270211890500608205981740406179379819618918468241778950374686520085274690601853933061404563944163847512125233733658319048238056053116460869926413663756818063751771951735839406522427703301077512022279758699448161693963631047721040753244890594009797624323171600903315380292353649410986682847301548784654406065366490771698015557835453486123604080965247770186275818290048292383231973461624568420336661989229822917519775127237962402934088448202232715146081468613000028117915323146399288314949030841977511368979912324864833741063452982658747761806015516923321815576432874381467660330263263379302864507951618291301738555216100405490089578736198681489380483530649658451327034726712550293749630214450086003850689896825708451200640344419417590978122497439600229092946725711265976752245378149276579078793754764031304024642540146486861722730461271243755796641146664441635110824564196259969635927758772246910293397780856775132849289375838961555736114603034207573056611739585779540592771062574607337484889774303933688323591735992271743222359899592867556596807246794872685396570693557447827945539175443966542829798796385538270224184807624966629166971033722511049482995920198042294180361768531881359439913132347527852617674790550317839312913830561180232973926762299745959156836160919990844538491328600880097521866082205286701829595411764849302628388129734692265456578596657337521802919869749245799610706167540343383611613020546421319996313371501456179826164433210573933733164599344821940303535051312474100853125340376355319458579449961799374974880824899141682167614359292825223931978091785138649167604611505074248011544802483263398154316804558001375554716619809219425085146304574000130485963102827014372771399222187410697270607786085391551603156753697668031109259605476587201553059962453981744157985836903045673281725692908413682922314093888085544221688719574319661789268080683075036284850426051133551922435961041514449396033705227324963121015952523298994531151791861729317612632086622351374051883299145722759768278788961500572701596000437878179950170658756306637612520079736613471089818261436125809142036126325012106713241765705273854146340182467390235551844919907386280847036443954328075737475389325327972144258892618752811446809873318667929980921963542980639281100817541752867443250151078655068371488525909460461396085691709886120752702322401817456549353616986197256913142853171373876516858411071090430516367469462931119590816819307137056834714903377122519368806767841345464173258255678390936898185143622157057716629941050943570222142759775939398844369454349236649100758692054499953769433068062904523372010184765052563417102063890546231580281715459831421111834046565145411365490501149656537322938303213308338394294288739540672731492742598669856328265464585098770441621319778349903969177544129877491083806132808013827440247097158745716809292684188839359418342626818949037450344327773277912452961119203258086975993236491002174656981551701932213541367219320147620668310397641104812754953578482666018438235093881144408715478418514674199211338645652034288929865216767630997704432883456412365540076351937060257497011993548917395919045305483622695737095399538231452120936713069697140748806233812624801632892918138188133395814759355010274789514046110719979160596905463806448560885732876775321682238855575325223526577209586903098898326301024639361395141532340433233257958666683085290000887955656128355633109129898908063535734889023151711813281083918689880980184161204369303353060418147066272747552953894753360487198595403750261149807753189353159636136997419134874208983319689281307691634155249681926016961603009272034866703459656279032921364599613620558678190700226919325866994525021871820302887049133330999450488597606240905121481724047869345255869771160328280326162303492453497933200065362082713069557511854276462582458838982224223647018350913785475297626809942232092543042004450330237796752377343338457616269681899546259210159907851040373999248733800267848958262731225679761626344963438335781683414778717264217490919764886375495061287373608821820937607326320514446711532090471318328488119446481267788045478795631999803892295774544016317297205143226464771568624880457107924504659143152804030320548727013866642287212246656133036809627537462461761547437315983117073957802540321867950246310169479210198492473476131624568222156349822012613456447652919743668415594584732537064923988685466384331830945648312981249508511685961154422396460098949477336479196187087067608645902649069015448672597968522292860522175219417028470905718410475568355128828590143692628244569970757682053676365662508637365823103340151273517288052862591546223080839715597606055026466422086347713361770772059450771451893066255294076752419967359696864844620401921931180504485963132882754107674007921049124805441876673312018147105605831269941838668746585028371738301970235830143412180624397703967549352896239421107286453346812470771891449817521693676352818334174147572095463166871431876032487322305084080222014959356652794371163766683920317598811345646666209504054749104032889951099632391460718444914017872370807283220328712003632914797636656267973507913188107313218334139662904691047955900651708299881141237928615756306428634340662163478110987264518256361183471464262521377875945269326548478419992064233150941162184873173267877737420889082726629528310724100003622790387942128695635163874944803068016475323358749993560363745056670725290956231996306365460726981582968442555191217400236859728079641947514142889843785451826331709221365812576961966425808128546793625319399175410275146934261164511256743759183865110533220945918966394147824730739223916081675730918857253429243101376022288983922881929829621546898173828218603963115921486658209432818546839132338749473214783339553436141468766317323273446557349263615211357342501186839088893348442532023952804406722014769960470783848248840851268811479791270619332197811362009499853766391358922632425775167292520312558412234356538583348873105594493569770821828767970808401418582388651335539348617337784149471753629693929139381256160827890839090075474161047516037838362744979210271753818439294640835088259990959540830772556073631856085241087049889465789346724183623574040418578517876387961325491239841030675698049064067183518798520649835053646108456033106369196886579450762312984663010066206706836925418420460522368022289651771223977135031098102289186270877156382824815199998248189272164100146354301683900001476354358726127842477215154983218335602237698282602333023251649464283674796188668440681978773112032811851463088180443632823573008558471960902780067336961930340134973933325236253911466111079105797103114695140050676237370146050342983289705441470321518591033475412175122277153537422897799909065805014715323753862724202306382678009355207610005134706477271516878605815777507059479845353339696513029748689352421275278791818561938520113176853273911604196946387024239442457072781820800718241422911809126552423592714967299883342310011331590669817695143225557939349233517521033683879706256675403231883663976836441909091352976066064483903424264662907865850061442294391851213875934226215490556125451011234033795411862269366670406890702141868350930814518073755330619031436987229196472035815294454339258590517331180507469193574055185422268706898572774181296055976378937917838997610088071982510159874834602489077243491885750982754116664452262198533802651521846366688483098042352859674427375219566642329309436176103244964280674660843174975188985032538635734862712766393139115021947781734156430447570321631792999132982956012060017210453861928802921408356926076355070184214695617102858971898190535515246597980723810346866066313511782827497541974809030293143109423587725524826710017831490694176399594598069106136123097116294894976888828995671497697937606627023423606691331698690345439746967520389358976323156293098012145949109117579789076455542645807122082436412059392526623080934635532649099243309002846501249983236890600764722842329214154907984546429897003400293997308391914064140416285143074590885298195847361596677758459765057200800397709250457170823402167148832021467853456294459338922006542134574146757744753622494891666915582405671648423471042241226196269368269997996941716876262932431608945667530814294268107664922977824795176168534443465606880329155000584254845778493782397582353163412508173037439541157045773616778229538875473642801536286153630129670632432645522730928162399075256928049821313059487381841165653202709181397521167670873958597864828373420846106532547188292352786599496257678514144171301951414105014580836449306008708304984199909780750591821728277411844800093060872014282466462741558551120575638145614096928496047698400760260929297728802372074161858129350821190806575435630951598756647108081002749651919398831781261286173435852132976431240478381501987752478821429420978606117286073939060665073717927098864256326062037500070634376745410678505674292467417015718719687703146878086688806981415328458628194541009874405986689732625561516740983493656609532313198267077409080611630056502348958181413846812260003879694445176514603796021795926920435341005754191245747897680108252767956859557654454891037684735662230340829157956722860808471269924246212728182295749306618725098282566490707245744223557359521603811265179611597780127831046159908171318356826589915954201339620330609414007024899479827183368308685009271935201229696794971903271171224366146711447730055891801164155347107377340085694103493335793165005976930883773287944306145440107142980678134370369112287193153804510647727073830033473303657321913732229517791705327324308611173355413522715454338758190769075657055606514050458967610262615842327963834871621908328776260503092018327834497585597826799365668645285286266777664635297991644812152050298354648576880819068600531407948359312454382299529060391116255234929532234954587156095668059162016098399403023505899158926145159432371833909122470028705093915250901559860268703342808839506083727671991984972252951936257321732844581659646843010470607653252897844746693244380014858528857134371412181561436109169890196711716915176097101379601303566954673991369968070049568541469968835124589442320777508562881927700441885347232797825128627763472243856549438834105459029204726220481245006589304017384169411200997413350558020671264741327155187840651956193914046521286034511028627510145926240761108906986827701263058226148176290357992466966052828844524069332621450752819194680683898335842375775067292880453290974536324984131660181466032186948500698337816516678776448469639381297738584718956210066145930324448835712430518374969015679702359517242480050775255690115479181733901209377095105270586049964771047748615545667790822240914655222009082519535074738685308137885097936696891859049928976624184274675298755749557430621048754300796841041784314193903687594522405107782405389201114643321776974908488615185188121329626792665759880139379215330114892156212839161409198734394896402873811744058600351660295122493168344404203449692526376749430614171116765372158721499214987363623817386487749780400522377054863078181253390737736601804333819175635759099282035399670176076892139063627253571625340412822511673838179010488172649259799432463511998983794102050893858140174425622944721817733059758203105093541593102627911053175599472262691195107153668162745014996099694512512365403343737348341821839157105439695487305091433791118917840816612469147355182569281163431436927865396860414797286885886607160887293534413309322502793280387722325023649524957531263358523291091830190879044479389439851555307883540505897855995233277843714289954557450695959364516379237633564752082101967911090156499382266575083243740351182427098539212232238697574556606569346283690485707038932640564071985690231732095894409530128924732931010727210214998650423680376950854945541696050756119113970510247700817468437966785779468349050520059868780171109362007690351339239825475900872303561349560957653636239887067583061016568463306492332790595257197542905843520064054369199852852899324025956093328714821234577106253044896369016762121668056492192752531003817754906912297299492248769062177686850153108395772967422075953025123623011763082336494279810458187767730623381285776600109074192384865910406319386786856128588797940068996831864826208111466415689542427524812539226687079981299188631958371855173452380097013723496994667693429769668200809717045243747021658064487094790062976496856327184544490962934084119845692672432502984376479637078243675074085719725992109157227866487549753002859121108381982365447332647276129693584457585803644388657881540713144644127466430868338322965781240655872838873972890545313944397374167960989603840574829262193119895884771334436366538366566467168758466867885744434337719235539838609745200308469198840999775755786402276261521867028783890047070753292070855797244191641936268315801260875758166018048928639259124979597328423702382075601760506540682094028421922479358404048248450077499812092011389881584544740437927924732645434966777022049597265524186246711623377053846189795594605503814764748429938563644793394078468626123506143302649715665748006467284464978371669185994118658062282387101244912261934738560721570788191190319398767792509640945024395159263673097778428953761598056027018229744128826323980118103831530163288520782952169956393286592802963504056074495232972063321784567844411671162336269956773845243980689434525628843935214815807491552418921120199638156797601389353750206736898952774490368617660708509443907200662970331261560183523737715252216901880198239338980974473807675523363633799741046983613625235584826952120658759463397672861566123813074158184588519981634392436205491642319854693960552271758386668414331216630449811041339918395875079181519028085214573590829073223055501719906748858213230573012235706964517108570222602770050678294878985212605183632774220451477522160549102043920955178078441206306607352105340497777096073066858371586790061844764883413343576266301702508391186108916818543593091882992154628177656070777141810063601067341431780849153156841313791973595638952271835636961376727988989101985120738500266972651970974889839933685050169902555916276559533255437512122319999936212791833119039616902594482322081216903641281026356786145460353520101460356655800947048121748381307650040618860933695173051565903427980127406303182173819684416116284901872727221682661044602867929395349625952240979016823616008228283668927970274571483516889280482394472113267465784251489394743838593700136693417996973618569687516442313199228847740798213546982589676485262029915090579853932027388233335740561169952501403897078522970118988403896530875666183863974229829990959222052393246133051105279408584787498766219524715452217280375704735724398151414845936440890802518123543927641104640966839895221875800812901698080192712400252869581245130126262273491511427380409271105100378429169254580334151878962164134953862160003458893060888901588396948680124247202603966320610510034673791397747393291734041606381993213651196877613868854493427923196761556282417155399414933817860048073274495284250572391021396718987594373753931404307468400532992166116739979721763815068071792182031270647824602239110192879332072073100196496884365441361069687451536066711025226149064619749380297723699354407190164427403329434517343383942772264981968990247369212720944726194967361454011471581845191679890069768496575331425919598760398378422522012827815651794389260262629118373052515782547517852032489721611314614999783917667262976027032479592191638802431321876781265912778900258614418761510754453192051610782009257648894848840985352767052178748415880053261861191669674640500884996712808874407887149037958360015241006816442336138760242697451890453996367082182923531740124996171173479854454868025315065842639487411420557335091416396646025512458247288216021639976679362683326348262956179526819618015444871153851245566737033000450846946923866780350847903625837599636012001110266667566650688844633561655478141381485078354962773387994867295146227913161278652747580462888321864829797804840244638202354223385197939575921591374612929382431825405164052167026348702095607482553349163658077396092071740972130914127464243779382357809968878069788280725239322216787413330533180508438514699426869854190773922047783873000628427833502772215690098736678791964048674141339998944906276420533908757913445790943830618554382681912017543091246697190890722593964347674263626286180864842358960210794246426481238586322299076423942846812105604204767832140743723354054116988973860931299855031825625029419631412986203202429795144007751273576407745314905674455943019402531953028620365837651155936210282985039998917860839267405474612613447467093397118720751787808479121137504563668059625441345373297027826930030449919131466999130270934447969739929933108966677204318419036946327496596314487219932733200545532360408569076677182823519181636677898863262536842490578121114510567552502102184793236861052457638463080088635705120667208077554035434990266971658161738019009327998696038550510862151208800289471667612368797196953242503277275838865720026698824872196946898583830444964442210209266919330126609311730563772092233936319199111978472896622742111495695519861055703439740211926494150798882944409913257608386165579036680500024030750330684398375980207734161725431688123414914696053025260401105831158429282582100977647503084242972470382706044655778999159961216346530670438314910381282826119326801349785256279056202987386303443000173924532306326278702998745548068914047376995582216599576553463840168156280513615217527792694745074292716325370677334380022004718323663457229479887588264329475479448863401261576683268252217029950765826486768433767093596390364139605049014141820277970430303032973256204478464036353381691899178642268106664483535715749186505854115899412697452414748670727409199999188084130117887987641358754703373711128406873535927473550006700617114568677799040247663960979137368300878237786085528204103839529003312921346135134989060067754595190127145087757941112763239735159708718173565072149428028200917717959379964646243652990271379478393713520493798981183386175988985400836441505084889968891285431830384188680059617733221658976213395582209627731786052802256307572986970044102555708254455632710220325854226116363033902488383753004121597411869534466851294324677897296085858690896322036412108036448240580362559332543738485410652617684674065981723018943763230738993056859842294934677998075922348226750799519155304101339025870501611645167707938830229639530533443800422838038059599188328837153474512593511053461183136284546215089965310072812018333674514350267746018006948421087524471934240175343377535686024371419312447892780318759168720894573976426760065088724551336012839384929232092803223870736451956029128617711873980684429742103987217993594953212328045557077413969565847516276272582725146075620832422393588358181314482965550055527349351815031011968565987532893860015094166840470992885517598561036519058467687657306545934892984281548626066408452663514821219581750521451297608685687372453796477442972479875405173487172224018178350913807774331416787204953405702419556204198709629412994160665758110713095847333121541494499658557121277340743520592273928339157574460037986434816347207335134151483971310004810905635508016673319185927250323931617211501939246208111548630446539183762019620232610490328135753130060315287956396049332111383666249566919397651793866295925991897113585527134586989482885763592270538707762468491480978453036676953054808986018326433191136859807440393387503376469716689892885548037793931397113047096538870929460925989133541872690127342498709260451535287637527323023044977032950489213740496205160650908081574734652902570282920062196526059769173782357737114413333023111782649175551118144124176811026006047812320802158918953889920382323478361219663193409397750567649984968843842852953095127151588195445786834920879320546711716276858727693898056177130823683295485778769951091136941742646330806851289787817264440471358350182363506382473494595374124901804297299645117674880090556287263294122198053021301472530202070834646725458576218765401472348869483258768272981111843533793752909772920904678254810312382251338780232852056852741924611205776424836405584352212634737116227071467282627076604680787165576093827329691363710920629284643346858443095399894532413355160595696516657716254230081121950885637670081455208883357985463837673216952845911372078600299502880812072368812000994569135449459384708804970282433815388056473193031517144683723125063657519263441689151331914386508443969259377484710011528344156688905976276541506851358314860877317093165824100749103033286343012333409041611421845393189385678404061802076456611502908682906980554590485284062900996797211552885403731313200184184727939523894838023934828402073396046965323415965090080565520334365809239225719417775448765534687797448642263266488875400717168088397668227255440205749937305766309188943947841078042315705987672438964793916666487132085076868078094855058603109155764349177009767476641361148317828950533774176827802130171072601360026858982416120435705803226732218632245849347985126444928645491717920319501206323120469555963740069061193755155700910184703090761921835852312463415620371441942735087608484944488582538875906364511206042451529013962671367350605410128921254942336287248951298134264312036078260594557141247708600230200633424612682938750322183912443028232129273461326450033795199344822431788423840792646072459110239193009668509522791863986093426916162320641779357657838587880610534883171256813630607202269246082492758356505465410999716581081595565225319812467537115772810997119585391121381339642915116633620641074598414546344884529243392699665187879901417240725672319901658480934885803686436050562197062506843990730511867050417415710063750016829809410153160728513217463943933094823080372003973066717734594579362949387349277133819164655870968393643055859406450722259395742350963989009469738584209430306198214232528371409333522684733716205696263831284227903235556732971763184794404654801316632299503950571674092449431189955478871179464126826451461563272749314381832100141385049513640634745243478516709998791976384997591444596302107250052437938015189884212124295866317543782676050710807719647826460860351789698630347936619234654863599268048007594915753668179475897846229086825984550721456372619710323759510873595008741727373886848139110721779282016775118924461622840431647450190391026380351357173644366111888914343506385258671499887689368328272745657836018226596983733975497429835388982347480739704596360770165761576959328379374275297288519671837522945733914017395938318275211642752690813889544374637850337997659650735932712909858262852047702469176768735029570504169028477547480918856234979207502828127969341543895546037250030193816036839019090138249791643745792201509786885459004654520799858261794220539541302990253708335450544124709935401874275327421871703870563760926578539145472575915991548966145271908396250690571098593260492136078381419198719200183124828872256242639208557390441071469857183964142730361686774212841309608348446143125661402255444917089564934423380586168478964721579745138429160370492083934383981028156738460450848213358443483522677688223538784887866979720709843990948288188567407732637799206370078020833547981636929886165861378003926676678941231235406077087547995668280342524578575551584292091759041471449851931359180880834880716720381332841588702316805753891006545439954023916493647859395044096599401965938575214336273065372538467240102025291389339712786774166802848626212780153267550099159430964198266670630730051735543225474481722922896617137655889993069109036105873983964461459921606360513218245826003819355210385272940533332749822655800854751679500939322783397466100795817169594577141112337225390448083457866700273645453942566052893668223147796759006251536568646810217860198748427678565278091774467457857613704390336324025639638615793917673019122322474663978850791285381678505920169244848622576042199494430829534379370350426978435715491616478730299541180636271444617822965542857618281450946846654112922411907835502159317850233214225666266756397804079204186418668480595529243161406643423968902443505653450370857546871323389005178261209151553577262439909647936988399339041981986314595080512459266392733695543447833173864102350014415779050870719836801887559230512742059173840760095445619108569659432871262408788138837334901419322811196821889262754039410956922132559702628857500328728827877814687831223743365722030510745589699860237035678451253373204051032193574292638902414576280166873215897410271882951399173744138067125004854180434713263933549477329279675006684799708893496208966541344709023662507170602765090644793979216724079798934045269997264790535675179545422263697383194425767974850656029521790159748288540873068501089939357838772549171287292912325644997083065418153292883312440564068705876774859490456610939069486172472479375833054348788647052013465908076825542985720971063700040362753281089026845191409790080287322204991056005443926995175158719257908484474918667789031332090369968921442003919570002183140969908389493579923927094884090875555828650238484835267108951764817049781339573824336424868116694463269511960089069895992257580782570145374972685373496577257215963808708383802030220166118569950464470701475889916870081019507539145410001885573749578970423073359984261554865978142934822024916482869423429500424969078497211315782210268428989417374849487011693581157078621355757251120661564079971904149548072719720356028554861895756691262019726944630143656021828301306988527995412125498658500101027236290289169954296824769032621289296702002298864417025228693662778213621296546380296728933316603396764765746726290859139381202596952951243642101959554573855979753572952059555433987761802198486236565503937399621107919837868451149927665539647135783948491075707838841208502177691976686506547227080369902130565227868075226613291221016878818858614536452841172715642941408776166715407126785191091245742818461024228509777904244766325509969682490705703411196954894639314952207343139868942557948962998139343627788152442752839396440406232295624255394230162093213537539615408627238168242898966233678106673931432656125080103963292269813358621174321519542954499145345769902918716444276425423666933059661921653318460696022631249987486317124335553882448969541852131233759759369640587020076994893314181391572414743934544410183840704353236557292991399324858513679035817869357434018659185898270820520577349102213522935798142082522679962143548584095837716124938906743954866094801821905814158890039963202166452292682584094164791933801072642384751009249647936924006965036950284278585945765635804024233060732740091126112126653131893178415463400186108721100651683609863598888665198473787900193179171075129473592390358518264002722335766587600131512503148775254178303610751987284600560508767633435220048431258723435534797711323772955491067806598589215876395630594390695100523630985023861476097704254366690784725558532150151932202339368941684587726154392828087005343819495460002930090143740988100579017004666909434895566315422834684507572270521902102086543350371449038811646349481480883914543527487545488582049537047979011379059205352182544219495988825600029918918957763166920756575203413097277233580754085635819679377331094640682177063497525801087780784899861388605255076228735323094422397226004384480747000722151191014245514116214281402682303463123405765546849063826133846959610112099271542358766577343625383424027809085467580608626554560970825537101468881211132990605165608820279488663018047334270042984965518934244950522810087186124610949928253357852108380536295488794824223258242926410252447133649243983818692735711640644380959166683406444560546553277458048031629751590855588114596483585950134187627384898223611263813245457046628317509850170263076027273061810650218676271957871427163185769502910651702377401953607864044996569396661355416628556830679177818784136746226588487125277102690229178787744616855467181914771222606755641863777634112434538510355543170391075808761700792585485631103637479336970468979460368279650532470209080540762662573297827436306372659242931258054160526001788209206430345304572869354131384607077111249867584078082280703008574894333237532005344841793828487223999297979279079404806146894133214252238613401111934994976687006301964840982787862149258040358025883287868069577818999981871417730409260433245547477611552051455850495242417903339840378925044565007573789106536286660155095539664000375750892319065782736072381627632621899357622869524003313562088811921125400761167004915091471833102256267113206028080137611444207036779573954175580731187815527719810942653058182847516271660211497744162233050985243929406038096957364474636553546784227480639127404263611993212946926869504603090077864569294306455736218177501697476019833489698875329304813779103141763080111149654565480681764793191966256866119337014482340689645921621154228445459705545383707530610831635864422963928965289395287120125884819514387407082297619984061101152515392055162318315182025793647122129339943053571963164944625629569466522634928644676888380252220218062911077270835247587244112170523991680276012099722500097647432303740579037794071056515363544532281519807510367698777299068131447183720274928060675929177916870629789592659425844365533048281967514319892973154339592421835395904390701859003905411645285109654811611681466996771076161565714782151744029458377649999733999389847507616829012337300627520891904308077099402425604148965294932175146764498365712675358876850244783788511467216591568272191712431454648478463062880973811649289338133055125341446434402232598712926033775631162326283803182723946453401626753843962513463137162747567104268106777586914555023705305855235240156304204773076848005970161382309090326329128206472646770376131015557706492770294801305391043664537514860806107622366145372311068480000346674807579717618103483042186259400435972205569948652351312946027479492691185727319524666032644674352384391208256861246164516024019447675438205322518348509304387308812659878821641978429800661819223468305169050403112631204150236337754670723895028504766147373220079991941965901009434949483504843597216098790354292711577806805942804682852730415973230610733537987390917743177012073242307525158818840502851062367206524860662812301398400902806795352851871340977046417037952592397256191127947401282335520608349293096822017114351724170191778517317610890723655785064793403351049055552652108990452005295344262712906613474171000944419080441170331281869918542448285953439232753130353950970736595433792841696429975987314960516517884874717354930818280241413729764239520941211006029192298103128012064149087635576556523088620231050546071289665180539238510158398614282146187910704200182142153085599033635877728358327072713126940556356381213680200859215543759203468403045413088780318890435393282508917567866319610792577214180563446486224963455486473296318783873274206700762093813249865820272467686342853546645978389975294633630126253455204541879084957105140791188366683241468142726405694706374338664019621152566328088750973337652801569422645696644060931896750755307967754040236816904301532468193020431535682249568640361080098295984991587259000270829862181449624588408398939913018906087307199029787884998542456516423885031330300043919664077365866860942521225970447119988772071540079912797328655427017191952721539763116888577957790009082651777446078717681723249015338184991949223994361375165653621705983180119367963893191803513317479503939748296810276549167214975590110028759583037399523560057543204442660576209231926498343590687669729229591905175747932868300224496087446393504947702369422134626221982165144289119589989160324752283490337110041814938798609940824251841134745284569347342205372258902336913378851667844634816345410584700765409548745817208453642848806703797630087818771956748550181506948335031065194488386378581471359474716034149985973080916725184450489905826393270423959349390058382501070041923443119958657358294160074681720413480946126226303858763898890526295877375943310811649217516445659926452463570898678665396701449739128839024065022073899822890099777287196306425912872909332717948258724506117826670703482653070754649511286058219475044622220023929345020673632007517128274202592862562805632887057244295888744391476646585204625825755784987471146353412583137535394024738502761068229518829098025609347035588833119975109455174719174561510275104306842291482304891476563672397470380783074259394144101386380317334104206350116598246958861611432717386342467812091120306187955857886234922920540068387236011930678437109197595350338402035128906241071959745942333456529377871534072702077567555033550058345207079930877085154476737768055757367777319789777508044608250782611904908140686867555609457450647938022475426826948339001048230500120279116706115211371995125511895641844547763332454483918465294261059335375761912362281731552223493174038958245685452926344317165531307935327523997406695060830870775015981528337951104366898465912687184217060673778239906752343310869005485023076297183239899303265212690611569770605428925181860362301544995155783853736920912058271989040799950704473254858530089692889952098096242590192623311102128457770310578676478697979908947747177570278163550684709951299607171497611434134057830689542017491235097630338311721772327155196859513409824455580095676124810785836712921889738558557079043757839468308228676659144450583101519105351108933093844062489119586407722663642811943159307787793262635136269108152056063712398301574687677773304014365841242805600054613225405888206286654502005392124695178890738066537803243408683469918017107844893326783526311031191437711470053452164763935857903810417420176883996342716299757428872130200295613121316955005747719180921951979081386899208506151714442546526297692530759910816943690526296945321188449150906194715558853137158614611390176287516533610868536745820084997264932413486610233509054190186231322633264059745756357424485915396913064127641168084481205927420774662200067803534061012848159361399510448920475803769324648949348408105386787301448170293959931056174178755534702612774325044900637645360533945414444828995900226328075038203378254322321912083225428572553502585212786000944845987510554137721259559281096297690564683003980615236306417537432429703986340757842963025885004886525413243877552408398007184966551081895675404950736117179431799849714037448792916392913563746993623269746944627556994114069652048704128808623823175994357485060127532920080787920705906215219408825495199486418237073957026556657399274938792743990804277409860309529874946422172932521716477291146435314908440023292933731763682735339179578173063830025447146795999579077992689566826349963500962063447532543664096461438639205225212302056989306972463487107046218318851579295095521787268278423766591324093344651531453225362240747770524848972751785687190158481077968999469005632426652250995125807233687136049436837917286093246581664828941797601355470077300952253200924390275706868019085128031677697803214639853029260971468166605404838808428490662319193594847298010411517571225630626529309044226386951402791583930383401188859445630210495842477267499911689440310962802720006543035748040868685686868996812330401273122568657387383477924262588135500145291495979370044868425666656285991665579727967330686892342536536445457236175903440730240663642720294442335628039941066630819318657184256209045967601140891135623515408392948921336009088431529283033631533002854627433177243605052913438961673486781006319102813450699959299572074317439465440511121192103307212420490383987467863743155427604705865168120366617675043032731070453928984825694678242576441678884486204056203019570969064678818506846104511233672348616785886959631554677094130545530003214998670108335870287569564961125952039261113390898023798295606335861892185177029141250330732580040271290776749479479275686974322722514654647098048622920350597998543611929200779599798580276462726581139959590996559548162654531935445883796515696879172920263882120637806795038954467664527910716994741341052970388079266974102449622093742597274952446022528968624378583857555061226213269084932986519228988285433359752333674177621321113859914947801097696932398005273719990847812531301497264001821596523748526303007450968675453411486191160808702768503295231431745574307850682186746299978733060654282318903379518492369603625512797400788191604170249104897431450845510940128614679231183778464366782753051729935549134483449033220200881958352402595761489385562420756472366520442983200901070558234954964586971739968553916892192861100386861202678576652040410657255116078759482668928460911617429169750402713595757598420266212475907070424464468721863730969826736024770208067715322630514100279288808266719248501361873091059969773798760938391385072304887193977495770821346420423231812813139562067038663146106607369466607000344994989109059210366026327209746364212002981734204166952798479685568993122633123220937001346357491798885076447659538669074720896914693340488348954632021282261441452078015127064990750660259474929987592785893439259945578546214658341035878178455817556953972045357230092800257051843450972440476598678074696311029760415589607195015406918729389447852962077491673787221079068748568989369805625296438272038234190653326993969577717584860656511643538324543263444772357504446871333701593568954864514683723852631705181884989674476083098680560983158725123329004691572038394030201998450105265302084599707896937529186857650951203474890363735966151069632318837515908663558186420472304434887468422479491935299820402027619310463116914737780763713046514480071061113088190833759111160926142746590729920768067347371904983344495866334744345968403730591619759271905056363940641295979277469477018777079094659248510157890627136489929761132843552347292978127049059189592854284894259121187428320672744275498159611521884276438367757197925003462638775290509504130371227534475502096168277866789651949421976206919627600154240305257028264261650974001776562356323212130360149525401971058128023948182315457937645141528175647598420490563173434838087874652606613060108475021849814459845552477813613084610921609697781036714215537313036351459587390069417722650761378020461298421199664114146151851691779459918548110199122905161798066928678198402314840080128668723860526768303128391009537080710391140125340145802279941137284161182734082736735147732355626683821373146494271920051722754717393231746569716037555955495142446760175877979461877225100521718926137220965452805209127145712012879873017986677458077239115363719188085767336413694197767229572487148434244469332818449937670792443516676852111578908223148852043397294657170396468838724757669355332437334039065041486907354815473055814639645736207952908378479981170658013597076129948178574262283192409236345797050915244833914643322069704943114559676126174409687234274469566472605443606701966728506769363153786261017511641825495351909998899232937937264520166753824102358185966206194579831669804210590814833604468062127579287528366249992743616037218517329275026825483191826427578217315010281705479534422132489619168430046351846532555760041956488422291756443796035928199527156421422663680697591398346925136458781492415811910968197808564512058462693365741175396930219408284779258692178711590681401045324345874645462720897409276432546869230474160626183622973432859788064351430208484128373785315540818880262060343195375163766414868311997196449723443733611848288662069912781181375053074233352099846573627200807934097200098734953677292041101002779703511119706320166865748179691566561588813123113254873651994624476046364577906451905540684667560436017723836487446098509692811514396436962323253025024522675193108372823302542266686716177824256612777188521047887193635809896202116472416248290899590372704138938673310639681283805513473745078665501196056981002779854803077445270756170604454350676585534599802397790998130832430434809227448830108230120434328521338905802620179013786728213456764930834895238190923293484944558967650874441194280365121612604339355989762637442213580000987052924359336373651624351825109467027804802504159998358501453044945883528718693787990334312326175936309988335216711662720375143080072026435915988578635755182975042520522057190141969501118674700245666979790081880042143421593584058131001407997785178528541585444375051223821922395794987967453486082316994821040572441213973588777945792035119900098345182724272486124409648029230092533168739311190700850212997968516321769319769505780827838049410301182525058847205068062918737793440689351289475831375310870133198699092060415410767227787238335668304546878492392535473488272833235757409358246012549037911777990585497469719048657171001389787564139566436491267593311047897565699284365887574680241906441015188060729976269565706442736026469584524269833667664127216003230643119396397853886525978268594773483108348007392961037482978482396492712090168271601416269349613053555995056392998282398553825756897700881239353747998972212774565608602290814266385598713806587217027678917885649965033088857845522972435322315075692879045408521411841789823835640585266792298275815878889851330874873610316791922277212683487695142562974165532199639009245023513256357327832938624272765216135133597706794970586819868378515968506299259487125859425958372313137936624817923196507817541696769831295355898767102276478842679937656384697282652634394034634451967476605683166366637903676368391752839193595620841185274710711514377031487817323268844014622167577535957954370081348581478144240366541742389309855154954397042804573267555436234721289431617556309632679351644007825662783432118702089897187726925615678102096348495603901450872543152325514849605883836008246535718298370054174052016160173368613280466268537684980853420653412885933509277742769138888557740929206362901931458290860419111383705675013320171345498624261902972141087536899946889619640496276888879534214773312994064089436883011027847104017976144242021350774078816977635671731219465285867042524970187569761239537388425354009980981491728813089505676454118817064616007619171676545969314049876406175821211307220732571352865261215910963784800451361080015215731211348686961356827410216079934727097524749276833243393246303008293426841434559406879097196158687795648652303633062342296289719383970749441721225144158269132621215401634407390393577114222155874681546100928842307008712013250652257983106353342261408563362497353788333230435129012452579442859670610006008214964380868581502065642438247895780439720376747620926920544572316931168564168187763739912621173881123830319717716580312783515288223381710977328074821048215715852711992854929747800964136660066308618232220777043256802181464786151807541741356711551784507531428531419495189735536085515523991199417467497427839220365863925802145791411208033100267944827401919452311071202505349454885281875559191565516218307624822752511124167104938700998579244380814873768778818961749859229993370899647712387431545169648219694046145738206257033145042115129612676234987281229902996210788101295893274723411955669903206369831911734474674800341004695296454853704104952058162636745175325158966399585515393050991286866976782683169016934191366923689055814311147867348049146778313984957575009516974960733327736229495337614772775017243066797986952422118800446343682608484411148565417950709329992739606167631036667284272952648123371830121542513933928757099943145953991716239307741621809719356174110861742515906207128882612598533488131107079527662397480266159627110713112296567666804780505346974159816073463602445202327970698323294682850278199603617237237093933952091188284616446853469896164639037417011934532854946706684367651667165599418649000303108686680230060244929739718007833737786208237639573955190134651212865277545386701230856508869537496287691474427134754543003482157289451854635528490396822973076456064557521917777769957319553541371004756941672806538508148771507451705876069575206960772700530040438490899615538134839817428896901963485745657405773359419817603842107626498541308387842811433958026586374741610635397899984650928675258541674924099144953123764055590259650894517539571743764030647082662247929850443702483587640283044959898141513059587200652802814350369475174980814939170533971958152647324166113774554146063645513626677359504924495498732060386019491483808449477597203249603794612217833848634256984385901386289497637177995651536616599928331803921945074920052744714643404461737547795022023147238405932707659113575222196603900623189448536298091679047115168230042239919234292277990325123611577147579524168013080470785993763476601181109615558594946731473950739164217010552745479887302001067359964784319847975527000401647131207093880698303943719015261486734508720534006902810547982367261130379514983108816604009847085764034724210261952229382116151053435453424120100642072495764505196357838728062405115759379212727070461128238630705267818539571808740918803976884716816033635959263793167652153517313866419947578751131553143906885963329235274649488537303493245474436669174237975521038119601361336865996158147765663369705732265357632230758817266083220444445027688411092266111500869170523185588267491317063855542629641759638239635713892298527386642133393757721396420766829605441997472703670512131320626019712609999694002189808629716602245763884989230867841009451623479887783272915518242148491238178473733128479844286616435555825585217670950402444002226445821452652088300960979516274673906546186765112700677618991167218815627813364242241332206354588868592024511176309528459689743866328012920844402435943584643458141469397875715940168145644914567563813059809304139784581933691170905272206024145744716442760380164171496499799611539874737856750001904650341875618080530713942420972293895213403425523376782510630954945582939388598869139850767627583132971816148076727100031033123690623739520458564162063055713142965064840153220688933911347679578744804326216412159020182790255209830730918569979150423228454071356345835230961974301729526078386428799962856254295963032337505766440668537563658992631617757937502501275894919728665668995806171733161691900882491422327239300413185896603557795125367068491010550381909312446957183935510138796796441569479450229177698528033868376117755327161263684496903644015933570740842874168400996194334984993445479076355929533290257012026693975817633416934735601720465042925846100724117955911541100513500345430956852537355139008954983564384437836363433504127247377918327873829889722224740305151714934105376518574130141127513724302334657636260728527716734579887559583501302707587035786167453326363745303773690522338424813723060400714664666892608961342474242324112930508944154641750106373566494425019886828794468018385920431141585378482638839474020343758330757166121314240891725872464112194232497272843380582281242858035007098755481579631790865922889549590534362890867164905309072724409953215639234021710987962889827560887637490798149653546332393918262631516039748975573404333297768402804951888306554886707357206300942352957128788039527803939910163178345181068654896608094055796437190735622776913445704300356964737891315594626776533061035342936194504156819183341854792154166785246268797677875141460300020331225230062772660823239325980039744551988793729823311442412766649383998162202016593470487574314402719307496950837467673094505726544080523630670705455937732318284181854282709663083021539846211175125926628045148789892724878842070819447521923974988212576030162789713323714138226682261826443071019738759654287866205613847071500273384957550177635385499918727720713117247362929974778638748255766402374113831368307695062786255161186158476461447700331812049844242494745153863086582422765101954638943298625417754194131007279846538196970772256366480504808030367610995330024762767272431806664223715946754509678911315894494249405419902149696925313074459182484317797966299303484962023836517492559343873084871233291225094507038078576214412476049045232286869436004435793838184500357057623191899341482038851417118686584471462488971780584665256839007000627233213369628973699809779620799729538014726210476369283644727230166538183429911686491118577266915751684150630361201839408941984897372913261230427850117244347578363453607259901965946598841803844175554139046311027589750543673327354739859064414324535603498803918519067701404783309233025713392078121830634254323873457135420568213778261868006259164005797927150904824056155810098488440808179357324765152785518438576483605619911654512841183516909459120247570816131717564534789568635779858826745320580119422413677294636023750848157673707154332444882313052383014717800691671253595580193399830751069814064206299314037934929834102343089482819519264907807995210474217211643445343432441320203711890053991583324175649326915779435849807745255124574038184444279569618607065432616042775711439249305009686364036045867758967266612697966764306322049066450710891737904226384808447300351573792561970009249599027362799635911316217910145712251601081174916626621303786054108750861733392673118787804580819219665439507437592924120074780510744733771595581337857547189116869318990364397898574458322196140865850410011774360248605190956050233862154794527711221638204459826961420775553754917219721944183742672264178673866227013429346191063552243612365912496089694240275154432673902252846704334037277664916916260000127959656727185247092537030994198193222532012243733851108019952034156938279325538442275133550162746240843134109371197770663310442680311991514827105746717457844283479073827213566236239770748724683003088198090416801528160972421544526190710700082367262817282568943201701217811958850704790343322595468913990560974410083930718686728672738475138648191478629827933697936566937586682829675399490050835321120607074280203502556217422074913159812502924769667020899841084292941265976455902897737406732936617811502683983053332252540277351012740864622218185570522695737732922653769148337109557940454327801746946863870641641377242285302466531774890160732474050929473951353756938734130616853661648381543702271840680343246964953687740877588629899748819538249862507942225439231890541656601181030392470617196872788293848366749291282220108287746341648338688672170847801978834031073503546180616567073240890998650710627500519413852106335932047123863273181382144590412061507225499920925130668523042080812512505235361662519043087194258887024190536179724764731167731279299321403484112672105543688351337807855399881136405630361015649281956091656428097810371455030919950416325013682595015437339725731584866993765686470460204274520768381903857869188112449536845182107632531201190886157017567237803619299472358795237450091123482463154944652576134700468906318191828545970232238554161076626304801060857992208728735246676778082055557204737639097457374773857530522451655885433760096267595390765312267410602576749443643996033410781603114200769247667353713822271568844072621943966296148950437135495472390776651415187017100575599575673062019931197182138373276749737381672198323887018294298020134194232330135312010064995970936494577725473760782785186616004987020636750882007152217627857987293819667603221572525549033006492417330248511221945335558879564435409708865421707185665790110130714689383487764068393986725747261305922710815464135099907987099124826181089303218951217466901893863144556912342023122053705453273127759827343369981894782062216082776700740861523285627895553855533494674403959988984875995421560210649995881302410065787269517737665268497548327702787432490405496473432195236330285482803280883699529194378846766989652918825196222252076176093637056783788921924959539604107702349173421649150841836671066118369441950619754655055016248585687836706125504586476776144702444566342099054208358298947905734160592804903347210669953365744860867955678381453167175654089195322533227401531784180700615138548303323726118563668858290276466221211646795625251763934765686864283637533612521551936106328337138503172551708144173540440106612482984387788394784358124678279632104419271794339414733594858731443222359479790733318868171831479042428199352675449250153374993388175687572783366015107535699385614791233545350696993062438107251486039558700623557670269310823754678378793834982798038806669562748110475456799341545496889159555684064884955174862673717849734609919185810758657851110739436464851765280216014043698616989042469279880952458308884794890806785173961043380483271454752130730506860448622583077957461205638345370093372018216527458884771960425435322136932265205355392698124538157746489756018482415344208805765681920202952224315688820568824913829512627707232444940623828575427682000516034834679242109439502686551405143498355527073019453689306490336491781208759624694681737025215266950354448723450042914767287832631483997234308421052470366065118783370065448835009021420411164061297916621356042871162137098808043373468568633136439721955733897178946073900073318975302555466770593483978666220522173775414383122158979925461562855634217407308743500191279830149860529315222660134725775908615341824428611084119686140877638018120290813579810979800096629674147755813078075023431094532954558356178469557537330019899946331491677949734771025412724739330030795752245371487596765697665631824627642136122211532320837039993939996456165950872949481410959904425355337603377075542347450423675361131878061616707451780159028809453169955461039184210874880358185500991168453383395505615579093445382967890429515326950645119709845971778790440586832152751753315667039543482637278498086257579942346662449612349384069278994997685872526296459267072535505151071846168515388022257905811276781329668086243838332758500251559923794868480279654853282368561545345162416631366780368273302921488293716701098838103699197878309655809968228835810631863008295793336040153202759785109651316220698737158624045723081601730958561981958851715720834627731099601495193353248429644067185138897751631905743277575718995569371776498784555136000685826358362961731683900431842542592452001519181471583590848299423858404451426066105999704719921665577494048192152768784680825348204527038049102585935542700165705017527382965638646993201889526703577377208764849163907685752036084835860448566248839202190139273732916543474330335939595388565716888094541939827909251683447727507755586603406556811342643423773901689377461810249651913754003311731148022742765974685404054210493654208638217647652321273673623475225572391644086132161112404011257903455105126516781690101434626639062411868022862385805634821948109240893789489715495382045826792149135017760694115916113393447341637635102800387567563314631738345836364158517826849403004334306298091605237664545197073978828575550986602965397515266448861400463210542541664750361104022080309200703253200272163283839179527184312407161600543545058409526344313407476772051805991603107213378447041452095751150336026169585326237013227947183924533819578368183887017765457387993002717344356134963908561554741911392788739636081684026893349375391764183512444214479644740576395682173270653585743086668741834103710513448874803117427310774229550413006258506646477751539376099049952064727215985151664205890167573826200596763170925706747508472000542217350960316846040819780413794423480855940478603011106361244246215338162355122761281430861677896490857598662016071770906764318676181979717441453024690904951523316232927821466183758295031848444489879987668627851630540630253588393379703574522844317057897170131520464644852649748732395251183807215193554419849632572978347537257714820569090614635302385584822495603047944130748402130487298878808757543318683061588089677799161296524819433108522781380989669219198678022228449142473250126940075667928898308302910676542678016601465546501102730747805102414129525450281192075749183950627038065715427279456225906958163331891569910977913550599237299219122229359126578146909472898836504182819954319311451955597849079561801016038628660671432068992985510076744281608674546943657696972924369507845572485482589825967104846892326148981153470563060733145104498512442958039566346572601966617041909671428541228760568395347060899629714393407896536392963236989963430109744272541992960374584306419403829482439383915905369389709137613928430135775673502103825364473193766214196569492209130688443735324086723281866367332778037257165213122778882443718529306594108564564332086552433299485741845244287184275770101854093172151502432150685166175601715912655950113316431230898800454107490249777355356859427215633171607334498738735453752335177523595288330855507984064532769464383068898594635295619027542581405860216047251339583977808564633744109080451297857719060437039103633261321820269743677987258478403220241459301157451835860488843518000182383009904165490694207842963674460685564546671535419491586678243800525106154688650073905443765069500563218366941304983927276212829693333502302113695864047240131707163075762838777646791566268288532884411374306553281092246557635579749234279793263643340443790925901792039115207138353146614636680646256898454830606187338256960810209048326425737974320488484210062431368708873980803389081863011380203941653931647741904126505895370540798229224409523739644407679549675968139818291431501122486403088009973590237874032750952815404360313610851473514829105296001943808047403561241935210486170647100682584268227730362064860284740450123488593789585294852262105396668174766308044240494926093032615794414172380313943707730835041446851016977465295402530765403916353387723696826256981809862107538453644112992328414315999080453635073353626228016034311378726187800799365902225336625884435499390314647376107324268171850584797537245755797445389340001303414385326907250600396911301684350464141387028609472272292635118794316022414213806911702365822650718697501624553055791735585433222782881969670741685644877716912097468011821400517712334059660080511358100624068628917464915075987153827668905770212233616708308487492919322582741615120260381092982394214714614243914822836446854640874107278691028936045467626369967764696263278245943854249729952385788455706338539799913548070809443959470592593386355510901407102093195082991754411786616339086534067341980377231159108758637100535478777416244324861362795486002748095132718494675981848408100981610530694445684707763580987278293277835329767479973490433837345705785824087509263555834208137277853666155859052622008357319620240595530549414172770301415820244746153913810950572288044260781905939367114795614771135154027965136145244388887917392097356790797867635113363186598091108549609704971770706762226428221016206283708804657583674350172809320574637817835295257334400897394854546272002612096947024550580186021557833282813001653229325172774061561934650107882723573470036957865134687416482693774227035023383741731106923432920202042696837792005504352639994527449213681570180207195945676943284746300046475840800424170121460336249670114291217817820485227887482387975686220969516515805112807532717057897711636112569660125221698374860957909040860973095273712613737473113477975937510886381901489645070061379849772755912047492215169346262495122395587571992160688875132048214016546198237464815272187211247224186938752381172670605152913874336062355063670496312125726973649320838993195721062411204599930582482469932045179855469126979739661769345785544383235003741836244791501041289456480048167435106128344953203639244850670065696102685795782412634795310263212346555447854259773555928408741240314206586512025054732536117046462918633587130632951815812733556650819920916353763777682876007859026279030333972612728904035395993961041005997673913704159106602838911883607218401872581430321112040761860541107677036297342279527860160966721229751017405374330766014062690301048224473649082046267075599528626416420864641475723234898843240239851092824732155029571134541878281708741560687163056992101552891070685080941879941133735101053353484918023635967494685948595603335498635437444854923600484931156260635094424510135451982962229551079520537495073872295218603014863414200802074474406036673416999055328286945706823441354450880054444238336677139887371318997461938380054671498679225915737506431241391598714935911477705344698902432167484911993104070039083399575849989079911374881963617397082456167676908837669384061918915595725604274337582997981035064943986983464383603846215925097759107865051267504988025533537105064050522368390571902290698013672140391607386788851227502745210399498905648400351708184618806676247008815850217018638130534056659313880299398609352830661077509334376730961741672746743116673229879803122149436738648853122127743807542594607705013153989999594406995977271972011856829048536113591589272338387077750020538511292462865934631757303398072776498359873145553401251863025292490164717857726239228994087181495889963604925243242940647225417818008904203694004581299774007333543459283016239835803959621531976899545600992582095331869632531317128089105620720730285600358004772018349280714061703300809775203273192963191265794785218578835043787922805320050741319362494727449510097095364209740424525745161728395975908242804606568005622705890948595172583279555315130234491522367333872752494646263569977623881018087882876814002339180727586797374384594988222162463242922823795340847487739006743202909805356113487107051755310473853398411770605125066253094015314463327032191432849972105002151902523792812825657070700867810238111610465205828783939424392160062252121285835526665868260023282552996060565818927545287093029889504106519901219007551648192208046836855160272725991044887339039886800054742978477934007432866879855802874906125856302440960120138610607093679308858439657577541429635607049948298534582120421705701790461611523311952376569253574268898017461421413103015394705964895673729861857012695431796539263098716230561735670242442355963579088311178893390901750828403330872652357664377539016900746376394027760402515473937993624178662047997619440010595305384133192060394165231188279184033088740854829043995956769884504805060359021319923332808660818303969982225650747443527903066532478840433303223488940389668965113575328650745211808867592208886966737443502357966379195571555681847106217067784848263350689648036750707193065344766602499495536552722295418646103722350600273299247607831296625412381698960561813281123465762739495335580724552084864189457464861570347515271619324650552126420445996696085950415048532802729567186318373942169136871365970782393898375501608203406714648127271055311923485598321530955301123983842521379202617634726057784355828362427720201248670003033188473681143198368985541359369091610000898419262112426560975178472162671030902060961158775594920036883527223233246699029991395860103601876133359344275336284370943371606760087712667938892435507212601681584895793383358088656068960442683407498368398274606883516861236092087809470097207460865142801388381422998198571948231353325165585520834461535975331799253833582699879861243176779755422630959877238406649390118017339225881407626942936362869757073845456036135289151740250002434956309537689710789580765410985472248400814560741451182778198127383048828320467843223994769059099501382001455879579117369717594922484561554016447869046705206864408537643738588075486858477741854501409407077945336370251835828245826668839024627659949017320441357716211459965039499174074270078868585734883185569890644030474001720892191105436078262219069908772655346514188550426110896185553099677728997483356706740291540017340320899468205296438193118968770283812668834620964981658687087890263616622143979216604673154437288515886962625062190067363778513077285571354022443865474120100034412590316314327727970817852850916619411958630899011811795032225565353782739874189814847828391239755555582184980829423718688983685023837978507610991477642028301817783327202743725775027360664775984959682171512364123937595849566252071428346036070622884008549764317917155973082151703439267719491614874418249966500395094723375204853096256320885377359826189918979308302031542520429617516629847592846692291046503768165223933156838758489382530069855904873960129945610206806411698230328440006426654141307143544508564282612496665203283184106355289994237496540774854573791179509786019808950787280561127106217951916108223270799479559817534454147770403065710908217465012792690874399341127117015049459361523438487597489712243120644225586880833318980141044946216712620967678285396776054173656866595788964155721487605315419993866261438720438552830320441339693351049195880845328550125351935147734731201443753525356982791472771188950631599341136757542731182399679566380545587233461469765464743549543145175064154696675312757870542795630519427368744841518949673149108779213139758656954741849699827132457454037055306919043414613426461366493529824425473061749455647636397845477051561058771092671629344896970693166941462323515356117717309672911627352371987969961879064011461160398390307545749059807500989870498711794991426697532702255347313443860711450487256349327534376309247879595460751481075540030151546262509752355908545361234655470497488308837995804217913988751392456337672411311207027993982698256304180852308160137735857176497156027549140730006303642953008122445032509815517670364303714692817849477586417791919029232906310859140382796125556387784882697833582159709616284938046151446201355303266953072362765562335909949868788381007554981959221025652701284567421249580318731527437291900522438600987672741644327610913758120955292006561662440789856642063687871577699534451342018949685857167889061807098583898124021714273208150546773467238921367401172802193440962630755206472705696114422004040039135072257410412750708049863114771957593625593911988783886347661220333371644517215933886010709013956490785955325628055641149583508599569458349394563800990059297516086187848732383067136245829106773707107500963494359556973950549091189853880703318052750388229041230703634157082117639392397635110103636319117540733758717063988571152326569864511634519188097464942164992288277656079360113691869013469355340937751413250257120052335958887972179779859220229056575828774482815732412522857361194045167733068554240749688774136379977606755137382281811177856491695564556330449283228346202776113317216612812165280742137635932495416947455194502845097963306031451279128412563845280829933892701092065834444933277970981777226940404093306708654605016911226117850540825392125635772411594484187914783794044433265471797422954101048717349497477371753267643940393430034218992291562032057444459889844975536489346642998359938663779093598064671459545822514512182750047543926198962027519366219314762296715460523769056941675421625359302943114620210117649963391009356281883148791761498902318849156499614016769891195946619242456655084300574269214061428402062541489637111819538178919516094330011485449943319040311973116073937846386456324689128760409224991165614525031168458216703229112760617767649382716994705749295517314767658731412220522792527566048631874162431908008904513097173716646027367172974274613765479000054010467582023463402316907147278589344841593646400120107187561787467573276559165554363416683640392137031171796657625590473818287585271541652605839298201326662000894042828244009320755676670764158092292841268176809671956238038941120916488879056875948552980506127959079786493697066816581587810505923336894321559506517150041685359101335891555521342577348388169409936053256968497308754195709377889250944389501881231591980236372049056511214934855288917505932045941548013685121210129488616782917490233852610708055450503518333630348760696598795047974334169246562965745836518396389795869111925279116393848595552957112678322875456907754319736187745068877317944684545614057348337838791781496129875112004930153775222250592761470101778007185351976292860222263459990542001705608810020212933933984770644978582143105685315877368177081427699290174630716974641640928315652977794334763743509600587823232438055226070190025040721015877870070901569412659888355144227703281889563516967031636794300141934637238731864933922277648629216353675182596610472683645510435509038555783286279943320103855438403187622055149719995414229162325294096146704003543266659862470823252210226410770297873214654330431045367449362747908653982147762122541937953634019254361670760069479097588120340495749070705011389012198800333830420843398970666903275889195261321750794222112712965166812505386180458360107453790753361932849482872584068385305693780077277044052976969899034708229335956110179958242851626978645006201608970725616293580393819374896668486242267637274123237609527168018345787050550954674830922624518818807442984146039562982331372997583869207315701430962616577403572109992776576315317225857994337751910081232536815980786108853156654016429343227316205608103319410845825865260992249964236655643605456171727608307817443823619454728801516093594085778684331148091698544534358168636860259972730240343201488343826575033263354393427396274305186587698929848074898440137354828257457992372072077752364590062553690897466064931956428552257819054080083233607864338996792108768301322275255409021193184567644706862217798934325643807162627030380918502528530699400261220329296689884560948388103777804209167426455342965590427879494243603212164030319848092736368479862951378618430424092954872706078360632729633295587999453071538251347724603948525678347850413586980989091727624128029384194348906960691156754540966817187443303795486093711637932059825907225267290188581552395603471161580664643297302896238544748872501610703958415705362770767808684559879405356832434134400895103188925690387540416024137076157698663452634164123402366969784823009684951841599888412850987376133113629728053881087089143226426836478047564876393585884006439854306739331008797674377139273028185649689794409252490312524668700260311052583776971632257912263123909442472459373647655155854108489956611774458655105066479378496659632811607403814974576267174086954023034402943275529156003872663125844310047959176153710273903808470276171027665297123094223848330479545309936457902610849364884333962100893052116256429377150110863789605031938077686270575499334878233224647005223296195644861861085659581908551022859711734559605479635933278819999241589813865041984277917326047267466550313248502803668236211699515878585599549745148230975192168649078086741498434507507850337682149687128089754126853368860723995223033183664981155861623842451544456275702733062067326565721863077481711173505956140203668661857646459475595307080890684198111221132739759053575294067088100430594497726407909136479707063311120025039866337258435959330564860039299940423988644256410533821648704718746101626510653047849393684071231776703779719707564859362566405066882130258584900801718804170235412610963639867285763575508201284435607203916030225064968949681776345192635225650248018846643769384029434550419262393505184980498365200578084757455094782640109445699711518772561923010012696252513048670438649584450634501404373159429926775523726068254978440100428372081271042227845782468748752580657784344949576437192972865462389426935038322834751399070068751805646943708544142721688915013043663849090956801073062808441888482999472803012361703305398071241531204876501371739358177162060691098689396443412460376875985755763663349887272689438218036385223788808719473907850635151614674412549514912882842546339468126750843007667859966260148061283440203110866928898758154819499678248104446405208702624204375252475326929242462220142392140928499218955045022226700914536903849910869431899627110464822055856348354929165785850450170482714083923513615401188640724829704459460829630947401914092614539087277221130323489311118341635306695463563978023906450003812715676847888339064683738782402410738706748887869398464996087496407774211925370884971607552956524837640233461670834649869816211382370382257356784156961006318139481645986330824221484205877459148989412444193913222590292660344719131094692232189232821867513736793178321375076584572439492173537187948312856863058085893213212848303501917525819590048735550308544665891410500769199800185575163734182033750140887012573289828060259640677245532819368968194569942360424965723694977102265214425879015599770615034935256337377684163454629895830815135057593419251297389903615999020122645562418912865846214542891864009762742698525040290564971417300006646476434283482939609377893809880140196689392113476012407624806584291207519529545194130700477281112174867548072442354912754391387723861470006320812816505325277331085342194312547436784709699212232646449740366296812987558843454842241902323864141983387056775953874091128181564785468030860109976932749099550427408281578392830499417573067179755647499247159641925645188986784913645509549563612375973790217620586170346824371191262055943466177359283396644098688749331327915243962129616919749563423266884804016180302074496479177368999729248733241289654412817810925016291023697782807907039185955119269922362130735507574659648627811860156473738861151842010329214130616518696363249174221047252634505324461283793075413744560894537526321136259998939746669091353278096381269245795235382071029727909482676745753765384226269851529375723810921645447071116823996700780849699156230725746932120412394685478015288910134043476935168221773718018087421025218315178575895362689398091467790537513937938788738810309278707948972585487061000221347790568212236379750672707975461463129366603379431978565043334697505430015991047212276588305080714391607420232395174802675982228717930985150834270365738466003838487224764799408901726561740971689876179111724809020512346063774314075412873165406182621876981933913227749708475320380875710969490159021306954072553309840951768995043984948302070935942816698459183783925649649170566177280853462014026011570044754180268347954688231780019164577899309366139810489782465637934238720592158629949958992048193185635129002667530478334917690773142948809431093943388577135852392711273082674444821313099717228542381971860006082381280680452253515540411273937480326194297405800454680057394647867377793359350697247190144495336965749472650105670362314572453840161047908944764685378801658381086125488978950033077726348635148609120367522168878671144783013382950365375862497006392013361353297045222437583981075615261604408256926522323572269226710111288895928425349618405289299965387977533683782111047113427456940068809970047223453735723501296724979230561645250127964090632821672913858372707771033784632421672535912208010095175468238178611573609523814206892301515678189696503384733723839812568046363135363428110760969632578888725520348774077745275507124849390404569682936666937239559043395022046735972836395556028553255599183786945725504053178083983715333835835085443147350613375764600666226610934535776374209924167319573984059233811939014034358905424450992329687835094514849063372749224552766062592645714061005633643480079618977084067425504451891042152536344961004894063438110052701662380763905034403015081553481157397006598103907233263446310899180550787516217218149448622003287755753493475645632165499328037466895903698920714184493786288737911253081259614139386908021530983353353320668514661516783063688235827056296562396904734631824925268450105354557412780787798052689443357861761800924619249173684791036059157962347185502019916485331724847856098523001760919472485291775409256663653112454490311574495493990678289727497429745166646468470078564108192020178118429962688812109398841778667965574002980237203567343573848296444069464490699952256400479222865112942452373862435885371125581498849550835328380918256549348756984971456107452354751186711831431237944171425786053487156088467031979093206311538615979625932294022520297930668150282095177769156226660456312590084391806811210338148681087811025935542418069774815840240978571809238712309310786563486813733348916923811593965902325767527555988799047950605661765020001273710679126110433973110055259703187950615592768731857707063472979132934975367335667473681843032383304326822125248191755589156225738794173536314297408563783312588577040092090290052405378189692088623691929001733795313213018995474339473264333009431726757887580291627768022018940316593556372667398276034918299106728652420570307950449581950744286002025712626640171071979414353724868127137574226456859403665072538429132741273090359911005424270708950410776027343335037882943486551549722211994506041111517784614518466785490069494593700621557915338274757057902061265826783632962591001058208779680120109933529872429239933918830743359347725514141733868664811940560430180980471440272256224075456437487335872434286287913800039438498293253965960966669312467698708436433838116843100904499216430309882560949375266890102492749598297900936595105759874334565220439328815871779063364835554157226227770532523716572066973597754089249320209632241693947298815277310527137452310578403186064673674285978171426836977978628664149588827331652490650241364437809756262046361509725317525917874828121579045545089813224399065105337696120157797702108939207684665698560214924821639796352715689588709897944219516626475568526528918299059242139649089878161273283566370076822559468026653286652403753567278504870898857225341781372364346967798451883589234862112543964830008714480852688639312143864287465759744993558986447601900760642519870173826314036213970644166658372927866034024742404355296569462659775922731727988423397928320143544102729938533801678141561801044616056586516377728946373819517686383497125210356413778190054072042873372555049904267072603080257109900376286348441324373009766811713610131515378366983155838846126793755243944898127606933186123179096680658503768813683264512998937347290767323670252116844207937737863264277891607027153518577539867299285103893741258382041294107019015940953308317601878871291308701701604698711562502283880288861674729818157106502853009378944490609004424236288810605212637150554527119963101510946036667826551551143269141590920795935963561495696530844360026242928318680390662870125968470466435311493851959033176784769378638081141520520760447774484608392748525812931179844647740287752010398172387425278439935004539036910694681463575821516965526321996012564837242166132339372261492718586311510789243432153248469790314356427980473221169149391208392437129983244717122438871858820847920362820446854859073737526586270932857977361369625156977768559578493478920404271049832317580480573117911476489685304974015273453850481694014544750940360877558957903933061779849498647510574228613481315242203361137289084539014377832457564145151659641756485849155651130262062603247379291915416464473177580626106221756196251736079919501711241090298676434680885398026683597463414572049941340300111867098667233790467162062202958476520783932702774625462143780074850316754400671323275313492747792539277530767638449174447781816451062774072698597427386747483620751308183733009025404457882401497525208065821933193309146358823169627768260353974273538559381918954265004586097241324656802490408705776146344162584625347695891953561790081175113747834434525162460136343723552587638944028801995118786608158498848247587498766208788443421641984813364684451729703674065662333936401490211537343594147088378626674661952813396363280941359176130641981515540434224106133819286463225550132028599106507159683140723022460435724834394699675732730319335187681999783435716788533648582544552881010262641726487653700644806966919782617940957483645619204766158931433950300574897213333750288647056292768738664477944185218010521578210167083502363386388680256443791286684257649295522592552259415464013048729892646191237361281411635954627480765000286258558605457346975567190888942422455082045259223915473281446478401365337846137313672533953034123790341928809151100449540904973385003275806361340996047802369770136517529248670997148605483018063164075148110929338733887101061312722588138672029172999207724207828678768454282949661009078286300650188122673158502268334210490400861422992284069933181879090403017741375044451944076365708630133149578382046260128757708303764366341692175786273642198372486079318557927583756917845820401598766414386820973192221415951864230304525663753545078828204490623033156840934782702685211685378262084547577867564489180289063716427834675431411664820995299079165241189831872118613869326074945091940626815228038908280494312246488384379651811097641951358240044407579066629095600607295957958772537241231153736830272920184409081513993880620682675841716566743541742028833236769107161206234670291883835763740215796198490299020520000069955598820122095239175564893855128823261693804223774214859870102942946268961190147752987131229714685326000311497846807013638357289252876445460088598098362027054268477330544671741968288190993199948583078813619505217911253363962504009121308320866354384407982479317863605876821583543603168326518450313538267423698799026918496680056788489809250877713241196252115167544092320350100946987683969469914940009553627216258827740463365620454265723790644770322427245090501146905910740221620084992920501989828215587763402942273756130228121446652504982156543720567359603870220596738634453133184471857049509896447939298400529680514100385433986260606054807910267401898740190202185224992623416435521710540724721833139740744415116652848618212440219356385603352438806609259139693600193058935152692951594207152968761676031158660882094116784612146601344735799461812831484368172526845230519261267508969500116820725695691898743859318189625689601373621931188931905464490884834896061471583389020974080053209839421681097474563490858784677998701495021156818874486178813242022282783645159835404543496469531105596919235561607643031411940655603294435025244096379286168905159009668951877789102944468021920360155193064837860977722416326076440646195160569422028749333905155334383006006459521526911117860892575667597514982270815686501839922112653285298355068132238312215371055004897134398456099773378383573898626158010351652705257838714783280553873151824236894647828681669476982570264036348106514970128257074244729103880290623209052291205466717622458848962190255835156093707045757293714900259373321652239472112494816976021782004857572840043528121062527891600775288314757035795680145743554834412272173735077112276177082899574849996831341764410642014122651036852187551715792784606913706061595631732493957299746280114375917529298973439992993805197577721577423091383730907490222304284149748501155333016591502218675315269471285222461899861401943991854231841418176110581310516978508284724860566632786846675167432687009758200146065882447171476022507646964229929220877148149540512090582947109592486953027395787962366088751945688115411893339987339598052009620105047692785248052920974716730910328972978182161633071778618639765245838740030368538315539343407475699346942196749737712126447623922816631982371998303107848610190898215809000743058572323775405276357978524158441713193180080699095075607874552401539749381048963208436185995755126019777400889919344458371245756617056249494146582828309994933185573614926126043044931222215749204199424610653920529906925958247482444491600069919447565083196325793621005087774483500199650133411663877593022304889826587965060790517744181177677423388951781436440457544968424502639918374414637458424892509629810735530422970706633068551949193609234304809353681336424154398456585011438852286449520449006847483998978435691053170239656557539961808345106236065266611239117346700375549782403090119807182103073023516154461098734867678217430122840708772156275963594911994178480305235277953175370167796667491721634382928281903689533720783058248611539412304463145177994159015465360103579177425564597929694789991335249748717679074685697555103358679353394246161323936632436242528467217312520036272431686904462152152447640565285489120088203184099076977321525430069496047364434902046450035787333885143264264754833815141655791754839271532760457066439850192177334762866814044928345223835921671002912763944357367281282538438096247327058071816142360915092867081363430243290881576103329402314711901799766810744651736764443984858556468350541050808287244256296599167127768315256989737111335426321741658745503002727418043492165931232488220359810960041417153532394235460226189274039789624403794290595223124246551330574129113581344317830572794048513529885092529946153000169793122143038075456185666870679399156300960519300702186082773026174968576863654593192596784077325017999782624673565241648063270010998761976086420072353081156187527974404641305242599329575674260205552675594880893044763784155169444916803116457258343810578802825440288890608677378855347027781516035714261578077120642958849068925917466619906967743074490858450007201563139072057621945295406101419711497989946529808498845106785690820267736737925240712201877934019473381994990125716238162236561253925479664987824087345085362808711377390360004387152373964013642052019792929452316706945378746109573640448979081895877374678744873682182536979225335913109863045626106642004085618767513154403741272127756066989339518892551943262012834217915505598550686134583192668017411533682712258665099166415191280601977380559215812643591245636833076399878398727242792179400175863433262539038970273347898287124901132848547873508697819457414600478125895961781008503862020899421286827070684791241456539147024694448974845001945311242431034489485239390838822401636053202979160005449599075168716176901312451159863376243483728002080160370799183671045794486801261193925393728310170109359235711220208595153398395040469260601657546532719558672190956989558414878540368603730870518177806704232879384221477492715157751245313631443798113701940242051076574178064182355052864844446880701275253930356219714340281972505940052430073140566953839802387361673736382322114048226068009382890181929125446454295488375607998501801134003785849366723148107526361782777416918922512629715336224856309904156421770925402279948305374667068249503316708974073688731731711407257653001480500050087848888838809280193501917968017014460143923958400924271818649677976118530584465222019292872731033677531715990700480600268514128012521761681433647267487699659243467883967782178211014796204389477459389069095890216976261675316544273535767281973851883173895515948285521432308625760005276236672786925421505196750141082779468733354803012711708668793509340737438490700963458634048092794423411513606847311560294533817907999168758810209683302092848230403405882039219168264920980561095801749772137945466689183600820441098399600604421232580556476071064369944271812332618101624328310922289938725285908384991145276903700853027651665154235613431487801546953286813596807025909323103624044944182909147733487079453970886445964588366883251861747711927517494423687876235023568746734748721077575482164134457710977038536985539888879844335084416315310168750911038690993400063032523856414419650119254165496538000822213036623257711965714579059061531691493150394856970425924362635877064016493801613202053973784623213057279817977835807138306616131818601669499143248606216893206807504802073864564062585618088926581412795526668316883079067356850352697349033086509615968780434274141243651084169260396641248484470772385545738158364367077730047166115455934675969764393121041170210048082059951682293175219734513949208073480173304747955357342707087709839416898665989197097135504903854513956082058159167615925705514901392485162206168573785457779952760006543380333303939316896203378307252225369904953615049994882317619623412459372328826716288924877389656306356960746503247431825680011874275298339276315944688355532595066048400067598652810006735651936178535405600182194911932342270302513252275584921720885381441494716322180061213519980132441833361103408457662327002944696465407185013498263029848310665961076519033419727538749264599576602737698018307405141749179715085530643934625182302415818908211700097262261096840372066645589440162150344537226554908072551023599917129502876334523962504149407372707128360919634072055296968814472517091339308986303839757356652778000446307153679353203917276154094274592093001128641240609173983466243707752301380959052039371087393444278926083832551163605413126374749017289895498004856632894225875090475429279006361675903857969771945701536103281289185366577520475810797525224629729778892132191058647847567268042125460878144368958186890500348040637122071995504846952745026393118727598232587831343031685776521072349609153920176872932389675186764742896229899741501915374132232292135012484811330976215762168694882515237071050717570987913593207985257451627877924104368558462466831483368653396038160920764595813407131483408477422146534176982406804551248105288438168942575762091612195670058986735434080691987159110604397103945854288169206934092654663318572988462041584802425112188595427264733278015129562115389218197066704156292854165789148799660308546390499041467347949855664644200029555008109530995558233293950466566017352228852197683766568030971863890803670678348375575787955231172280567137175166401008008061128907344821437550847099596853488211579628751187135233349216333302042507048351718507761245221025628534013717459794255415584371186122096170045850866207851329264904061629276415941892225094191237607183990621064692455791596592210225316265411390949272545904565635421137588406426594555302366108749680940197622251712636509688634249876294501648859676351809703633973103655494642121912010463924671887278449751113117037847177729343405922603878460787267546774620252384976812468366162994732258888590321291399795522568913131138404583732327818253315745820439282516744120341096993266086793966152552370682334856476669920864460883014461236462942843452913903889589098642945558564244735307415340722892605493222820321929392245576859832052151078245496014027488903482324647606972320912772729300130053814089209762569226706787441847975806152313150020155222255034312412130342888999243445406913951960462944656193237800298107819469743209316378983527181026949342399201170536256433033373429346594497929691514123647760671439827303051362684328764530548275386741868355043249361057631267729546669959630584862893434050615545832187692022956634581100636629296636174688441333189970243552870605248546576937788602591586394650791930243546895823912580239063455332693646898466143583365561418786442586576164707875073553409360531751336707927325023363545107763960681790606981499431722802471539497712545398676880248396678070184526716674811302228379490526641905683726010877001579937513395795233148735196917376718159115988084779731305995708778573622165865105556432966553253782549582721331494404975469313402353762194506412672034437449291932964598999346020741936851334448722291097509758403615549553694329691733352262712082535699735666823272646901642697388482587298497726689923869768164384579722584219448936688049262321687773601527953065740844211794805880437025149909342999158264228677389844261820128032714578495763619445584240663589227719077347964366548077342353704777448167513885182075859363734443732280011378185271222668240312032401884476093236158442444938784829006883700257831114416359463791253944138211211513937354947354503901828055658605894987188662243525054358579866411333656101508395333636663383553548555697846750631811744181609945830712394619128256125601134798629592759070994900639779345394866241090411355068693875123986858236480244175378126105914785592598319085690851981751933388733348340750054559841088199539020920486805273068211649571541233432304193721437750292196855250481715481085839568750356779219679988907430550149929182885840741018834334018493662022808225210118553985764123686840563827085367337683427970613817388332335414288276379162708511892434481049699829362240983380944409112881766762191080098485513297446934040617604717375800546739073976307591535659542484728120676838996693196244988661183511753498435705964990462541267586570049933423661634938930592804603209748929277562558921919928488655908395905187032443351557883321095771040866796521735579170788671108432875347583726002315436407117938474421111575822022668909843818696418099314940305854710600207551640199610662490499298864719228444737287453579036703141917155773580958991135627563043332401567095884541288941940436629718825887129007033989842396578956391611280334029930293841651061473133925478664810359423096892734170955027594462090106557976519257026360026602255495253948082700870195541616552032542927559896554536487916913540562691047636237392312697735596810792279913377203140247578022592328433247809488521280957050124211591030713138499774948068976586666092831051678734142634883276058656475146782850314065017735893595923458341623555488885922354502875008444081212901347117256455851495476532707136000808534885161115936834696136762055896182856532154100748826712473303890285325054281779443357319190178595885328495265300054759655481257222611234934928044925603969409253766503258620749744220568755929688020896338369526422377372914418450830728464558507371326310295458433092703551753416035838027552014132785889827602206461693333600684752537373613930095854064879342480069616389387195380603263914819665250470561068054319722385761701390192228350020994095451004541215416642131849024275817263373092215454815004868707272326520274683452823909168616329023961814367370033371936451848529263217706067377050458455968293573569076819887834304149459712112584062105055271131972642932254411422366518483771266377363378574827103653114344402666167108546986714282204572017172466560636340780529402294718608923187663549244826996890014939153130083947743380018996327992722786577405514207925186633262579090288652588272660860794643266323703222082396280022785934947762872902365156982176525766696685813321318700014738679719923881496293295974938177021528984126985399258330672060977575915485101456156015005437415420243619652481040574679988713869871775760544436964485033766660369459789159820467635036620130916490924271210308967569302794297244648669600670878266643058033919982053019880594572630464326984094646819612420558190255516721731642477257830062214865697666348309671273672528900485032000835313960399852641047888593191580355376679207627475181004934251386142105365756955440891048986758695694788899197531250432257075526268777750098604884235341687395263237810111198230053172149447438778898002019988587043925393471580337981855784526605650179521548537517896450216015207351686717909884218481183743921299076646082201010128740200797941653298361077864364603022965075099062356133535757183420711104954172332631606454916812785935378144002135359263130272800398238958869707092442002046611974580968989134776805455148671725948359967606922572705738922397208309288462135541166715173250134435899736735418858992440709020335182490363610951935265936291408704720252683116843252353799167720755218911159018047635631347386049968138323599066130623904568298354435318491812503451242307537898714389887888368333718761662161175777637176435660600906989561087849386193427187187448377535540295737499617781959574304638319854327416250366382965823144848248296584213741243019785021721436933154098127774900773303767868311340796013786004589078917438552446022366084798451857919261274279490239832406373507259584208991793908630316224681617291144124507939158423701223156029490979900830156328934242301392775935595885961960329156586139003092400419961774847268875863660528792561946187835239456654169242978323782626008161099451910439043039718679604871024477298418618985064351751599215465626768105287968819154695504874379260716349557475228905482474289344301389766903177394818431655761393877522150130955019680675874423388210852206957408205089041027458696160674507237977474213757520161332288609022625226785163181524716894636168876817731709875350178608249156358435743287158549071294094298299036472968536774945693272603953578174843357104045979189858120830238184511901201704498518436468763128887703467498090635592676151737813364300670018350202874429798085858418298667800991874956791922853067415469328661523111542720890947645823596496731089102782953553505279053234234872066144121650366410148502699948899547572125844834777714081668926081426580983026384670825756886749844325923928155521156511076755876240900409185160575677779055275222877241279742042674113893120749452612051536663976748949301109909145028162403417834204057225847848585983751283377005568589695612523953738943678685800821735754025113075827516599027176762111315665690198280134040382572733588545010765313953979454379484560090886224099686431015387273229435629623594411651237705948518775412296824542298405651173276106402118417119981632460659968165791316234514337195135418339477953739266326701288652547286910221555427054092011616918508722409925796628534332391812745521907853485695121495299855172996729767736867684745322844240254743830621057683790361041582365516346569555924801883609515443007617718162778624847829800183061554304585214852850389988112940671992541251913262945579257734966594680177233652479996516433084342419069403315175033943481848605934851662983331638666701675028738115188715707227290069328477714855353723756421414517464820506176430461122614963706881960218170797878885985576711763169235266867099913489310972072073647813621348266456996842302413581523782005639392537555470670259339089929820956786337209393528659372298714669588416294207160117424530309682358271395199610411101331479630800491435857189751382141522928103046516386360433455110761923833772813441864673906809431781635980451864119002712375749164865067956340519098151242122070006529466553681304003114384915522534973821697135570821431702060836238600760263663956189545135518614484193096236785878427791010821738064997110739607216030456314580946105556750065658566148756329612627847696358866031594413902701830292329715006878772708780431470447966114740616705113241168655234306685717465991903172270858477042034545012656505192997291476877000558625879848389231024001032478143736158826199350404473728702673082289622828590092529764172348646863630190548610857223218727011963313873420782839229464109398246804765260976891843189769976519786131383132932030365241525118557741770673258186456176125090361922442744755881291392607514844713457491675896308150618236523498837529227665503941296674832057584512850778499647208550265314379539694205439140363364086324478993501160517899754961336104854129878607200908162570355290616675996230066082678359727375654885764746450539775293476755085834220097772696418824846046188530950348712196047070711629439229137808482607204136687683832450402876807866562499270395010779974324534382458818564324003352369641167112465989663077636491926214135670277195400424044451236744051472988635015062758223789344197659511456998301744109351575988862940603846878840880617795519794568758205022945877892256356643871048407659244264895044772360796800271755169420484254267454843843969105495166910974031220956547002242267604441171055281570737150769690176400514006008930389207052296992680197143716974109294484218131981242178058034808370014104206667543405551035088569933529350407357344697915858670283185692650213876200389946750576089112571382412839079880527663376259006611796412409703716039462199402963528978971006594909826762939075679042685953007888825679790209856767703439540822622287180004868024310247766360147486620012837657209258472179763358516958361343380546316812015582127985187276146505132297852168520936807918660198569553988614356998928769430903745936259566579821738821545699514747204783750883873042252274301596348284772301346820912152580036493697264861400673403775494259298525554544533190524300439747276716295271020826263351654436011065095746343027335089763324092832875691682151195532151535936415402346287589049172756100255583181805396226218921913115415055984187098128282375915992476614686872625883676402482808725399250152687142233316008580331284232891902982040905715840840918747819672403116301033473565179726517316451547256146241883196039014630836905285074394425078647945754678927927212037675835639213060079911455523292693508226014820068386811690763012281646148473055523500071168641721658199368129890982129211817935683267063596012837661641466593798129740990411512501275249595926114724685996611653125367632204389010245700702856494048340637754268075098343686140165333912083510769196224642734323567182888247239589569805123373431791475760581499433984941722780878400376543334379341784062972748724350410463183544941788630034796248943117929317553922621217110248485335772524562943803780908510603705799436686065271753873985000126694706985469718638716961083918707123797930837395498105807909529859235410209259152476282419244197904808125733469034086581240961773444351269660050801208164669349281878897811607069726587227585247497399249710653163701048594505637678819665940024923199123579703201920213393477258383407875083110317527156278138570629624640202034694310550184121714414823114744985323848590993805441570728155804621222818806342265131544786658428215831341539736050134222073052880003177221096823583606128112607824218177792202894847350988919603681282504268149789981004219564196404724391984117131225398020808234957318450628055149966513097593725019145759079608977033679254725242511767573051668299480539144510956833825721903461709510685039516990005516274837131112151923853375525619881457831148454286430756073129799476801066601896885513915402209545179148028670888443915543705112277445920280469193455707480386997166917794965414207582579620597922538618112257511315388050322861921849819659495654760949026700549513267699935725162897390726465775059098545408502624919243179189927435494929738082899530274220240326363141872900532377177860769373412137907107140713625666027065503256332238917917018727861407349585860436311676682168546571540462145839921178307588156724702350222573997624026307497920232919644359381333551028578303565754542166093333446639342756661303361817022354153724238163691336561155214061004324526066686368801769208537080095294200452058690834009723170643124769218856695531989397308042234181218536620742267147259570070949195100944694983904112036082562481110441155060066774719360778274037810364791070266647725982745000572016648935132411699295005341981883707524819970441214770165017123087035098013902278962901309002175132429975778195973885553146552958744405129749075545529625249081177366521246863779731874238971870772778901962588433509904948372443128554797499404989070823482432085107675133596242030538232304825713232014486690883318053817464974775648482682406779358237913309257502407018001179556468877115720044127545691386702597950951815529355561088218276079212222097314440280812136507741999432712754328786025891116020889510215638475619286846770767456805977353507383615860590752921434795964359465622769438730499842674823145520964753363207236692942423133527970620314537073536096601130239737103904553727692801816247085228472529888570687940676992797651089261432801707219025033179410191466901897311319593265005774139843062559802796957889667633517089717415787078288885171327964039814707186759284415813436269480843045451590819960845363578797114734304821961589955076050196956775393924924266568262397584628209710218811011259436115447434495046565245854076241225442314929335489507479439824732978872458614749150980679719861061342694688844788295794655654662007967931125972257122420975308411845797429012810069415510212570723325317983509536693526933777874631767750931887430725177101205002713454907137168062731132383733143483377078179321177078709221018313444163145280476068801870000012711738138514152604376061927954078926103948466362113597970475959879858525963686766278800270044289952784587819342453810027799165619405612677676584133892535683659602492544279120749253752091054269923288840938360483781002713399209933161996439400302450114388694056947277704872762110635145617572378371896962232054241088480427583189089534811813116400013673581186236986250447277423258421893253142002477771574642573472261706681180193137275311709259224185732862403786897504268724471663570469018243698496683516943358305202850670455153923053484554830260572271502952730924435506352382005345199373177406220597799350779353965067647045449795520873849348475423861151035559623551293940934337542265523446387008655182880535693307071316422695499315298277401219878994628316756915534320840813782499734886103389656973577055810451639847478410118384236300553443890653789846657220869975300105399953180674651959735249975925848225641385009500997847266245597625082350843162627381350765727242489158738715833016807620240968177591147333761303220056184783306036872704783479325430291790969022902485875029291106435074366993742585258955006033872042636389360830530675918708750289861058529778386908786962737028217599989722287819560547748071996423252378616546647423648658348963388035526840942730892168376041956102774433776800003535539255354964445468611633898541347418294064127185170028053924479809582799920377157472942783502980318516487750307667741563640431671228849782535030523878600292781886316229842881140610148646658803442563182907876904419291248265786123074712822965265887935571526247130482255552191806391260642970633068619945639808840995902540094929332367790529485268330302494840613194352443448586319082411580636779271384820732760984424460604109072561540709257559517493904150751725203984079384053789834724753845978888628501364587153225139130797038214795125007345256450614319398436905031730443941605164416815286437723783505849252418890676416986666602677965319430274098713929312174406087492970592108535560940028672821494146651787839206315898375410635375744285478188452038870020281495402917096449796762046170927243194678954971913120154189277470636405904185211143119299897765546371869494155951023776437595388949286878353478506600659233353700435275418735844448849670349273933988777065324037111515600719771199380019754478700625894114032162943397402962228772854115903132292362062050380222071054150935913321489393468466729283711239491082500739161488513395781458718931220987191189813312323806084752022606080739174517935305630713348824169914127991655024657190652710968006336945515736202372989402706012125870058857016011574284013335973530578432572355041999486013142692589547786360187956906336562358382618428257388716711897046450441432019224051309379182681096764864464813863605574832957813080919204593093484838679525641939422346161124469396945628177866491876695767464596784970600101729137763708780215334289768949984943225163891137021829164555194018358375459118160901627366771336526843217814534430570634819392812441336149695448861111100087650926407863075993022650930283996019603077067571724976685871964040605000852703072661207063476367297716662074643022956633614935324145625109482735564072554687832220160369713717366903111544652482521478045152139929162681058536841447225639056403579593026726914248450593470783996977425834262877888888181935405761044512848758480099961676419153163539245572177814063937671572501777020830333672597859629253054809261570276370300727246759741331276491665733290383121007851864972921282944179446235547782248088358447502430209204364203043664898932010595044679482364197132781826426442824276320729614339966741700106602664810213198232031116133499401081490303091981250222402192139477132726815411210134370865756173791432618594097738508020254238207452787226774044029653111094426825494581274425595771768052424815378384726248787276552424362267828260778719707621602800259251264499172719906361087726108096528808512194747593504294127339701004426000024954989471740943801112537569607866104898887116241121359705070371751545215087957631638516345120149833096758260036839563148649706747639464349429168618758883520597273990313501130404974070535865207228844445765902709025126543488881015830272946206816997626297869932554357063447968486768211007079469836473111075285368739637872517247715395533531646002245003882471624273706517447080074408586113687291815384594482358386578207929479644647710505450300820525217761337246291669041355287253616806978389142823440638495121619363294726842254555288222422421785938274810548994820067514623827238474362608598846758284173393820837552358019276315695943395826518264443724679758225956241539552259487188232261036047892671800293643954210714182753063860269834027457556167031381326580351158821650589259372199802104182881702627744544895372104574854230803506610105059150704892429447844440446971533627132431426170577958879697594353130326202650931803565739871950879680844397845177161468334973392364690586302395306679333451493594326407257639448393139327404875161945622688877298201572071735403947536673913007226904706934953084691542272200688677112944913586173271589147419328533637957281052632864759170637430010804228242097763231984403119735612586386688661403106399738540879307860846061829710186891279984426104260619676449118077890503574990108440982302980073160453223677197179349751317977367521424211948723197262349112786181543155707870388650698738963694202534157420437883330190700784085548321361132418313549459756773030022356893485654812070115767374012186070554102170875612356843633143788705068710805036236490654932708892430426035953490174263152176437149818795151082050327306901661056482128015251282217586810017048859672736848682966933726706475389394861147245816177425374485390900010807909887439528725263090727340183912247801623592175947137659940542976700640378385259058275772117698402932446767634000675700578315700565762596352323311209055647331196874796022044076202559309623666086900657059149526814486157483466286604161996577507112376611457024289825862316193064401552537547865491822609424915602347058957126202988572133801778683321291877033652703607689893946198062172660634241201631724569775595884180629507425748724796616223532530345314646677314745845485156036605821656453896853856786529298113486879274517522603278130760516799151243551626660548847964044028910408654508862331360007979962356831232643912205394067969163340359655943248001770244550941196174040903396351801315949636633755872611744938069392076612606956991078697661277949341671943323756710202015549041073652508907577215089958848635113634361367906392504885517989625169498072819799201704907529608743094458479315981286476325511198191934294808136989806006679025550605441015961583130393833795367194196438466698716816272148109037643255351715534318537068475418685580154869912613899142432186871507339566118035006608645663352882213565274837886118371686995526802685892935677561787722640574618272305054864816560049047121338798924727714129457337544736941769965974654840119963604587696698967373155591623517747612563737342610147578530222626716495203831269448396121734907510504722282240969103712597872975726520009298604869115755431075340603710783479579934018007780626766358638847480679970112167273634811725406379814700480235470519649347287578272214449726180008466159842986586003256920514332067231026957065522914650233012322612601390416794405498576466420338853852179586764682214072531582727941874735048984182375981298193565094226738373467511562811913272774363573270776264662103932192483967744401439091711968813580663095911784736064404181251071421555574500733915067876516200655788945609632776470872973700911373098758067518304935100288920163630817845563999742128086556005205136549402756456317622843500352303261999696721974230398637367669804027786893024304418224679235561970996567317431723268315303898697041374606776619514006630379064438100306268348842188661170555799801591473779506171009930500877902843663244255341136361670334678770879808128912963117109922345447740428017586105534817373144578729212131955336295927755263539350521923014989352996037227245648599988201095902629732384449695629670559837465729385614977850148387696199661458873709460885343232278140342807476897328871086423245470946237428494227861044755377342303561633767695323916374860239341328409430583948268841470503382462994531324318759637127346623327015934783887205847049100026938833082241795106516523422136391636327869463484110145058980705530168665172463259467970518212556845542626153273853323970431209330256097238834877137753119657207681435770784548245394196183401327970567783095880876914374564955359261001928241163226601701851111886127843690997894897096122888358491689795513836205662297248230817783349054510249320761034857259755748804778111080574669697941579631660918595780461349255013318007977537050255224998653583306033117359124068418372362594172703706275065540268073721761212234693352685401886734232393232596039921789331419894589292558055974076904481478532048018074503421288983473431951648703997078821721775641719832650950883575044438953519153887444191498616375886914881213155557031898641013870237812675099819634984940353009289627793680565240723356486508209524668605787685983649575368710593045994198774846914290917048360635165651888039191492876276654110605377275263148190516278542553589702249620091018610078842519249296031049231887677820227606924133200650524318068298066226996157182997371365837671502272235645890717407675860091867924732840826325667525516568510552924205656038857252002457697758635303122290185879014290578980435975237856211216256416817104684916237983826198464395244329674637702884523859743495009280800653471413034820424505587838138097705701118536651995462035604005205116747417756839789201892133286781853639708996564731449337727237094564229594198708495899500719841500049707771335224357594191860044587997564763401537788314355018362990307450252103704195261758562967841423313023198074128478328517125907352345176170123859675217686465481134300539068608946710382251458349125494082825444702970174746539650924955122132516410586700680894540954861792256617434053652670070906551066654463826836026858216434971348177598564396717938658052444477909002957446175501303495551992381188044524859177781375825195449787823251239448064054703163975321082406078193438335760126794045726532027017143204465321874605125637321127327375671079599435753197451129809855664645147957285601260697950417585813593137085649931800995229650215828278468904997724493116816855775099971948192784909246093337866605076115149802664995802521144287314661419869033468151571573780704975400216650595012805447944982913869385241358033967860789889934619627839793202117850529726747551604893492205005506906866496334857770387847851704857049186429180515667928597500913456170879467269924973135486126376720083292352749792727076177339437917920802780389167186548715423368273083927351516167639877648484149660781701714990274939008739307818864354890039136481674458075168689740501694578784296276935462899039990610612314155896487219192904806033345473617968493272239561139762690791191396221567127633257591927846056716236584348051544375159195255009555399945683656105511376098735355848471391760021588067777404962860685469448019151337902869378769599993352053047386468424412923610457425400333962949595117839340331280348963039112019948490752731774974235921108278830003761788864499538754919411616265921585411609780394726714997450152967655946807511459383641082761386304426064449012177205197809092509664642404792609870460575966336267559008491540311365459660101071101600080019685103654457345377154807472939664938473503787368564364175847365457907677457171890494017864880771717810737543605033760753227953283137945361722617630013800552790736767722136567161700686737288808697285246221290569961952471679095639500539248110675157650872806699817101812305719270339227440008989480332300645489957248848265468819081428819854138591616772256755310583929771935792900472604319672846362997168376102678077807427368876804382899026365266426667365651915975441499344405327653006279791879813648772172347018942281171624121737314553105772863036409841633152514301189437359837854194398281910831143496521534735025670101336262560716642885386785729641154619434559025936641225663083012602020274845885675545192021433908424323544183709255640094358776512737661021652775573737914975700024264949171701137038988339940897154106779064124429279189252243312852992672748452389953309071184848961203032316461446838681770376768817841451242088814713734312209813350398179978696872499362447361244782460172768599149717356522930193035283087497728843395305360871595697351901874072670016133917045121811802751708783873953478868480394640597470502760926017515142404163116421278559901836304196324972387370060417049660042521139214088586305776730322232075953512142440621246056419010791554749625339026857010241986126203109112031278769282348160252224818954338055506300623291629649801745750748021699554433773667841471146997839717967125468134709541273727515502047924144116234802253763020201914455880898276483417107850143850494374601085804611379587402265028973021113316934005644610600403367266265558791597023508195398394743043488023129584703365486899412345259011684628031340002597564666540730573817986688773132678799723999492170306393837597016382152320436148832575554019925867644647283486265587423353697626454687882128295483829986555418674247272896557946344365974985896644877286932462523984500202253974872603274860342324013262664557037480972357119497604967700722889705718863952144086171106319418166066467383066933263528653348225020608713580673279438895068573236453784994950547376549990783387853982635821469156659953824945680174197167927803946367197103646453417532621127817796841872577698143399591201915988523611494313265927088160822933622530761634836405382145745045710918329157239602504082865458355179179104540139305654224627847063496033179452198316607779759847846108117521159440502902236823093219179880210869932186169084001910146749803686201894035743931442186562432681325690664921295342013539163509798433156392471782676896171665705943935400358771547715170478618510901514465211594317728937916898892761543246328039223930813391686561866899214312288138028521021452891344846133536756073763736761570840415778681272121651892468129714363700874795919091031075254896557367112698611114085423422766796712853402791331100867706590793502348064863040492284789646569536841564078966134477533042118675815876768454956159363533473472120833114788536615539494121557390869822196516299907199834554671986069726123099089914276722586110961434193850553998773188272447034138609022915840405911711792958509243929593401904547294428467096616000781096288560569425473123654638163106880225436187479663928423811573731076642572008139795750846449934500843979608515999337480372180303856644759975914475762334705848049844124149912317007634633132274113756437433948205842519460413944232991235105311479165214491325812364839248441067393897182368921026424056842378075618871604888187491145070197047702672997108078612080877417696117492994994081584186861469688490325364326374931276985529601896397817006940992538701947983867302134708566414570919481898262274783894698125775146883752677139593501222709920529110885881854853002428127905121126972397443756761805073884036673213182831464366222047324786017927382749343928896303939520398832318393188086278663763545310447143147778453397881752821564913334219097312131076670828656237086758100634667909149429488395478005613792722953657714709658389599860892295519644204071607510325679579052486524860451183303862183934914657244562325705636653806939590820393877948844718931372309781472115017220452110561923740089034049508746166269524434272395357947183845402376003093984824048165694680092837130004066455415541205743158157841230641460007449720460804493442584081877663376705547999438015709842017814712402804941824331240537790885864915535673777819989062954841635975642344591408885011043054250044887449355581822232688012696882557075226916110496276812337475934834352808791643708991835833897663852262716586446798079858880994208751994513234133376083897753890745334863409379342146007767954924963414821058419502440600617975617341011285668563723735517000871258112641280299710496268546329734396123036376572731214113674628230142086391427059693795765089371102127296020506822562318575750746135677015356167471577949556182111382964187598574554289492029292997667323695100465460012617005906461862822970761269372866461794948128171116646339054012283442228804474679066847870240404459965959443229957566483412583560002956734737405916381645836397613348305189890415913272645643635489427406425696787102805875545735668182172582438027429026961972052539284733852651841930940598903458561601855023511104810910942360310899690465307891706255454911122301533082979782710878828618831032347423061942096767217873742636470230564645755976902854851905802256449115916828341939170163920405417548123238431110384500947190919821168646112687238881300715212699258689612330373569096369552036002604012900021939724410567084639044678633933583204946482852524045481828872997332331077069393781508182099402264870828632812417925451164303768354623710143411915039241848497691980793709118739561499284473851986532496526571016215399699566149093089191047466584960192467879682893537935275954799629046963290116412446107968435422767728297575711408793149458497044427188594535905941872719741552617178824211884692114582681472602567855195517668216664420554170959925320245179105123200692224354490922974633658130223910094393608992437075165161400309896355086749375073544694622904357952660671494873097037164153158797283160389945932076114084545999508762070503180791913929955549732958395190940177828619712499650017452122881023286560699727869121243862824461644593772228197903118167733197882224129501575300775670143159907800106938610862740903327380781086429119861243082931711197179233181601705467425456825751281530325946120043012607925085810264484255847794564773560195842359763206754717751904038273072375986192142069476416505439249325022703423115634524992577853168448861494434734733215568203522983113719769644353831390145265669715473952881997003140559575984406778336340311324942634390903854894161895436994808785828348037514809201866037135444935927511491371828103848732275463829841486026089649048241436507164661075002294790388701884056229535806159385153465586505396054733213058316787348874475326789844401116594910431702407214061277911731791932721784809785332093008180158372887100220545715315612110777436736829783786768265472313674286365491115165140274405743778773542485060951051450554293016546442280691173678305979585400490541361403862067236028224639566380115430295797756751689111699509798632735677491145473251247341210288756272079989625758116851524277697316193258794265590291765991209395822022203561800371342177058951970577888747302253640681034478409330557466162004994127032755262513184922015958422659668526502503646118028398878582857873248810695131310852414669390686866068300770877335024668582785934939149185765302679785459276680955800857571267359884416154187907288304725081329865471900634576369862183660660505746349486452055649521074786718616050246187917979796475273612409647445202065955218834504160778985179786320968692850893464968577875338449808136804042078929208608848236732527647813188395640519650355329705402799601655748791115171418253579130431115798836098762218957007400391336905557191827756193179144175518621614201322503278471078674761935470432774665626056345107068059753012922866792685334968598060097396565302567058096490203032642802100850706334434222093881305888018541557424968761585665474279974435907524108079861151632120663267302281239056616499979526328209390003245382849043913149803118130023508910626499065040244742128455170067597264311238960159456948935090627364743849345519712375665844263516255693899511995688884535661963740062983863405347317074830079582570722973835952318533334364055448529248334881127888604678931552654797005568300241621197016135101074775845573828086923269857489031295200181149138897227025024758170892576250358353240095965564332507903390343641475143600128034514985764689233519804633746097071083484168052782704249149783117456980856069462342242917867674162138281540195373659202917977762558522213402126714859546037070730990728475127325314190995485405432820015654353858925292900967267007771084801283259481265735894917155904178802267133678212604470673853204849080823733151034728640027294283472587185446793556979868497711821551403746862256072324358334518981173798486664238179752755745011969943126680695313571818736819062148683149503079136916878386219615831404858341946630813010359566488969413105098987924159472538525098586893034749211774424828166522485249630368397692238029188723854793184005346614584789395940964246233084382928490946736246870146428066180900849076972615847975321385642720471906838726487127253786146452630447466406236128256791423205641106919499345229663580559177039819513667668260764293050140287236521702135432277761275460562682704780605160256915299954895330507506874800618378967325221443007971082105127041498158964367726287748048270731538983759879754577684278330322757986437028102028375436700013930418000106543821849056593776376359331647903609823970942339610955818330609158084187513471890808283337255635264743384421359714464224008191410082441629707663849895621718890769562892803239202914620415022365026744187808392807170416933051070776703212291329157071462611352887829315182219961584218938415256326380628481871767920630880450539075031536625675417161476039562380394053147321750213890536955810886268016799465511909189042323994284603708026409201398774959552374963772915304940401897568691969492849953111054212834971445116332654937804909892597495527913676671025100317373171720213764408750575903534934781576854590810278197707982248085301742272352994159598099681512551308948886704057063935900368493590654654201265757721717677939781864542806998638305867218490466540157574230899534211344830027311404111563289609948451373359175843871965109604105536030383517542052505728971403093314739168419231254808722107594444387543363523766917486822817906897986709576658624744276301293333648351984351810385688270495742854579809620562521474065061893891905401138411550406418383836401456026075363702992627809693156283807662962896393466701265659251812290153970877563034836224275535273992039190965387329296955675019632473085566602900945884654427713679838798366979784364445303820171398680358272231063262393810844123347510488715363239252987321666188250981652570598066465688461646091240626587700396799836780054462883022237806697948038085033102250764886780221511096532198438764293354031427044087953870793615841566209654039605151476773781594316616031569751277534647189018933177578153815101155666568996081323033571050516307241715559239813855828290779460501603558663816363360522239636197154861176904131819810675705306995005084886524989865067028974215790954790614984807697983266361317701718652276733320213015582797113740145598305166140718552707854286009126530115377030825730591010682882595343592786710924605615668297195973928678194317095918568550640948471298250908015504292752936589173948175885424286993741944084170975844151405987258310228102082655444176355321323641605759737530347801584771023842172814082052944315295882909610894723933688367241460252910258810315101719923193584256267355731629531514771478689250197301112587850871469473291365274068128785273792285746950530836845315029509397712297969381800533175167637199636241882478012078095986986442326800687624904158854744518419796070207388817330447118747114608638386423751347592729759244066896634705226924903578412723412204446381596576491137249331740365569827035248244097739820537099807411769282540997952923477022446305442988702029039531174715525061036039840860457774419180708030327318186036198592498561944028284907745788746361161366034194796930277118808563749470693029591776712837081646588820468774963472104565444434026517147660875643756610405976623277244500861425719659076823705843823098818778889506043871796161890369880449559820985313170417899814028875987145030813924829476886418153609112912479194679178129708362675519663516000219916058082370659792839521064814956324535149204295538306714283702649348940318981160230185368145699350126988871086759166040936746895134287941349354770891086003983660188280341369453120380482657894789079603368231635979388502075382752343204417403263878415419455787940231636296616012984974028061499161773283051787932245161433395625330359687258200742454642547195484733661734921200470670368114640426107275806778352539151575764840819477914457825971365002786833867715993583793555894846169907339086406491883575555219529884183087667691187263627411775609971343819900377189032027230291405156117829134038382765021121045530875143300794457731688103798756298734961384017617266093134956174557549856755570575439095228762623377208869184156928930595129652045330668864671510104296540931752502682061376091401709192606880477126891239819660099133511403539348543336620366096914461328285758470792794682600423068767419989992964910149190909045451666336839673273297130247727193039260428014327155678177191422587013391026653634554397456272541909692404306148243852716258310711324613402453016944166711444403909463760658152235989907103588631862542850216055282790840780049244498133417852572872555845330047568270169857191023422886413425416188251800513277732402306811001214520419537248143488128017844732525678919103375768612186135501056397382209333493724469933752225698399486189407605101836093988553687517419923035317439141194464110516890466794705220501585948695518763646338851437283589559948894095618872341988391500646836219891869179486683897874339899170621773975272225418909860018276565657168639702036885491724993908458504242159118002685337285671385386350405163189680670526470934377753560154422346994830340286183468245830295416951808708838833390004678029353238344074080617088801037149565510847788341354262933775385833657937812961657198952130403916251903809404889118301774883203311077651415449180061432244350189956345877370653609724631976073971246585800305838490085554809396418700087173694926939873522012296368845033530790119180104442032714363227561771830049075270579057895279271204802113356219226134460855803223187310304037703124711978848739569843981899483562928502577963063060278371007305776863386655127743357345615280505485215057264323248905752771938190460316691239546497104747016779055736243711839287119894170416308134190931973449519582637275448676915067243767428192595741481986687046478232840887857128799042970861979505325431966832899728945394125180884622591756654526894908559311080196727218926630898116293151166832731851520941925619368127040851809606549265863565614292610903309395869120453410913119643087489155017964251265439032426299383272595977960280398571453375873103278846114599170783947377568145288111859293909297340215646996626828256401063587283916389762314781082566439156544988132943105821516176479486264004891404531743669021539331034505281173362451593837204642121156670576127104049919268626130594041237645552772706383330599049027958386402961464642396314703659688890446416587461299102350780511734139265153627882455985095973861544198546366496381947762701243420529915476176627945384020689920922601032826629008888501406011532495797813025544399070713695040899927995608528301085535030234891865983851345544499255779248811370290386855671715281136723789053225701059532415972176226998245270545805619281825472221508918470893689138995530489819943529765397262508748465034357827568127170501259030006434270305601442669131453825203374240478393145682020380694697092723432048874531810949418668834617077403723384301206381173725140841506767799995918452274138346573600982585779253730337827740064523039516828322884053389124067866794437380343830550503887340500449630236307881473636132528306384099928783416300776920710757697744158617616783339571953107456929829488232769394086540771165813998231505460633691311945191470360629094888508691327915127978836853158613527799375093072183523529161872789369654697430284097641133024201577394767238044678606717208797521268361168002158305488151631831667847242542172556950850539463383637793579912154631509190241274364041610470773662400224822833264192379395501161671715532495135305118267901713570548108656000505006654838350830560403420595098359603372095747669948015035269231742201851972386741256241222747611301761160022111481818107941373007329669908453072600700476399769872085511154339703971549067084842391490748205441308872933535360578289535404189012008254581957142167872623351950621834669522823300220386862439075410241713352443878646190699967251104316528979993826744496050032759788132582362917330032132403462937701974960404742378454601213332639238968296599948385203169690341657266603496636663123477360639473435653383103062313020842188090279787497707650406387490995985967181898601609305942180289588692465755839725668479976095204641877177871051449539797672044404404162412663288181500244639252892151986683983581931080917863662983556244234695798215205131965462932924631311381978366946135660624128172627566602459639053572400466788867890500121075948544594797910754331144762005485241364460886517118465197970099878147575068800011696320386436703794169914226438792910051008853135781012707217904067515408690131682793906968935884146579447656875121623834955684689544544529003519952680538782659136433132007151870011057970909619170027397979113035424980967072268456229218253880019359904607684484785713096060504727283414909923781535138343499045900491310541459306702692726867719421767942818451875647007998150802672128031557277123366284957223237928407414226854922226055384248279849403499131288864737113129057960424338941586177766622126436828742267518672366729549115959626767139181446486961046910013998126229041460346104330274333840033788174744397226462696528072971858944098981504206796835096880854676361135154899435210617579419540526584707187632939029084084849957256916080425102010402020765508878012651821511952880970631496008715511918605017106412199215518342094661978933686159276035905538573080142401784669935986949170294258043600180038975874195030914671793588864746320376687412978258750774049431159410936241780850368068682965852249428870378916207107684505395730121578313077063637725962280586957000083847802228730439557514559741576936995972326063588002139138805549682600256457389680923287943796215143262264822216275313518728093358679022648037992444417484458331838513954556009133640214159171737637676408368830395373134435079793268508335787490550931454413813062769212440075340081477383901683306861397139313590898935304133376977671411327512584020862206029208184635169236242323567513061262834899041032281737910444833831384251426200653362238645844780820626008706298392153386347339009446367128458507136847767087916505595529423571695619224140982466393386254369478788288808946288032052158624723556659792786083696110649786034955402349695661405707840848187664303351904269456752266764816873044445300836776271174955934857669782529242091868919236202866487781236094296745172922044394590206284389566144966171239907487203814122400819723026059793330065017277643405903918657358232953233115292172689982438439502759766348554504287336084229885752218859271904322192696576585624100676910048120221422558755406356435456970439159869289537307477576948143914965283332973162839496748103418004977405040199906776099793673334827995777826480285935599803511733391003981417754707503332972309845678553116923849084644845598358146958250189087696953809793675563671260581140726479782554423395898200727746410190071387079745668062974271482979986467923980686010863413628163166881560548892204201827389613647040360677287093327435155573943977455215993860399899898504206624553490568363291456798131307595728781671352601644590425760410571527830496815905549517777044220192949529805767145129620303679379124671103283513187206023922687186702421904000555582043795985005672879058712139066866770440743462174580735356802451481189395903312459719146117613299246581913813288061335485579240311423006856210717180179782313210341858997135516134626810999232155605044677943844397867759241903473484856468707736334747840451898029320026549804932434578833751618588332932892466809309608247014004189167202038361376224833412759768630672248492427014775548723917973248097834450773324995650502664930036905600806114220370715815503326887435176850640326266264395052103688894507500833962368160543933871348665143481226455082342784438772338653049656692019707679152656510109515125118204440158230323293316323753686262122619692717026620838589704488661129124351784458436113110709702222556438368125852283650548321339402040161461235674609122445804498194030852886732477050029172213414839006979053954898648058135526828173615253327962984428817313904833857131010526090474733941761875308335827550597276552934654874435754595333160164398893024887324544790122101451885070212300754127663934569623122901539012163303741002449174384699360464427297939720722685301622999991354692345721444184277050651956540319875594324370798868134787109962938168254824326047796717702851344657995103627046939524291775995715255398941091663704521152362116815361745974431859204736488321236935303621087141850839928766007675390533354867442282240604548277616164082744107260115213930762542845040498167692815609042807836858144370991547933729009134940709563315229504031149158407243370031048409840240477585787429669901339170190904275064338817820691678489410119055723289311997719662960442197509991410234996449367565500631243987449945291829920968062435197092146631839826951079571168623143929555371798198114914299848769987305263182010458523596036517146813316279942891295389770267843971995425669724519959025348665351129202677099474324788045398124573875040576518260811020970167197545166017643389993056853413301918554431313135690000076919225463099645593121113203888590042950726379931081825111565998247026957420809478974782827331826619831584291606163817160721818413059849123923798743155436083183873632479840245680326308672679673029562470402151723691621051337406567430871379838693958259184095986287310705596862575456206526795070688469098233755910398604215398794429103793469276225794558797219945904122904547764708493430138976471172883881239328741669476950003433291864360771678426313896310028051440184423151661591171007920093996334511793400006023243707461232951866148698088528096091791261638859253840550053647833130135177551220642998495741502487863432086565854870158823059528145941087500820015584227314035229022550004616505107523721854470571412912190822872887276852169491750206445324324464115326733335809832125427887558892709640773220473412201502278342887959183847151333750349147702180705278416787225087671016498019383327161422211793463091135372321612295092306087586589427902487698152109561703155182897750040593452600221036814204919085938951135712458118084660727026777186657167726740633902595028383617404274103217283976419173438428658693015109190850766047485312353367805754313559681219480407244962118826644420282957206110739942377522656018094707793691660063227357949034867553042677729823471908958981619293210322608603860436161577334674590378731611128542825847725720803963851337389512916871185574122046586081734946415527089031125989351558131459354073958855968403696389192017754274477627261574628812773387216552639123530187161530398716684143237281567046424457393416984351255498833658645535873707976800334929049275475836150179831345712524508491161694090793545300240579715950677229786401808443408416115375908055129221573591122342521151491123112158509198384275574384247855102937538145386101194757359572782164961814775548997686603742616237301484635498075156977013403779296722156898766399994183409213694285501508228323325152215665514191523975747230947205045674370992096044451470352667336940374144646078936273202987233342594109116702105224444066816914779384980062454258308236796228649174217190118008876217765206469880287042457247010807499283480890100736271909694035569748235174368737174507669799412311505521307820996199907799172237981041663568127471321916149460024882892568219772950862950252973822687416010284756551459053813127881554047866575454080274368889532912881699943284766807486286639261282372194656992140848028112228938695288557529636878827780968980829540025446030538041142849458476860520334607657042434682320599561187388994620904409792618205367605701887592198871121688091555497900026190799421383556678104251940685731946263771088511011484670404668168688443321709902107925215592568732327330618593053571453935576922675726151501066343963714972155205621445363571038460701361485930228952931741702965687601199702433693232468468980889073660170750002373134691788945630096374939085962927610788312405863472205333777793006671369775710392739990349385259923931087374595946679417172494314686826245967992668348985014291602064267751629796340298296342527323254104561596614020613453002011234292813078456387849247370746508649196520016818150677226924040994137008276655147929840941303789424033396684331628495785811110819291991871295083786704477858425896316854273600511570635251244242450751353781584205487141357141980357767764949300789267927060366812304184555419118994609265655666476044224594887803047025515183782387596456231210583979211147158118128534612495428426631145559980500686954749250587196749705551739426439362088315221434600440971561632179698016695161515405263645482235811606334034711584642758343011367207607528093711692823494565837938879717289522628963966533880460649830402242955879021626417606781595507361763504636056028125055361099637001892712333684457469315020351503013079709177569985246505192759366170421851401931441615489066372473799765316583093802613376750006436509936539610725434001939393742582826946341157663615599010760264914520130715567568289300065056419187178895940256216843047536373538616463020211197282579947565714336160528240764386864645012465425338994828798927950541981706935560983276089417412511210707815885609937574873828281496262158364423883770348443847674606311761648356198485246093656702842669457456795227467580358265294176967281231623626861221261325479513727961720301734177692171119700538091124615194177493152004102310077184583872011966989444728443000682572308820074583387649000739461661179407045914491158218552146292344237304676291752367686808530919086403720300221968666210926770844714770200433359733460415194847593551785468060851126418157226957363758179901808309895802833164195690527530356364022952446419153080618838707213414787589294226040563185401467853650363570410294384937933312707553504429162917889293269088012836900808741745414159789448170632777379598738173990230677766252470257678255331349722454735596977422034983003853952130974204435600720022565429222768259912949762544609004446881336650859487866597854289482664944353212647505341043498720120330300835149269080766180612280296960838559390037810603455833599512303297968008054932882129623432891589203794461446281065896579464686729979655580278267659546502414221000085962552032241889375658167121378030841614836878782371246755196087476073503193871119540439555076363955779786203850817823634440881400469522792461282537869548012656131984888540809468800398544460670425540269895097245026396560890790732859055362172173205078719199091556549877918442990888408339277937084738302232635460315463560185717660270518144677969411564198044130045176377812431464971174656351400888690154568959484040384523466127320122248071880547147305979501596478175161812247057089860950455108547434069853883425103867563882936977808252821195319455154463600172165636042091563269671186853918855722372571601971472815744286309100365559191345986086170480647432016513529154325943760982531243695720326143996278228611521185366821286166561120503616510815208198754853570228490855062306827983901826478841146754085724805670824341536222618715690269124559178564394762672828643392025234719495214006075167104819545461911386050224319425086338749865977491373768652748668090430798892537432869678646198495847479850497813794127523441168522636449707508563688941166925715006118022006084852308466553510736945216429816225788723870946980921429359176449664063005198247226328246816138229860622075647981449010425115893360866203891985989579222733570645768078396589249586177639786344187261075738754133776700330141903678471795919202584398606769642397746940238286709780934274632883556182774220117733970519603193101772277641389116459795191118305439171364218204038366626339965228086172506684467139900518576122419323240039134591031548484846736697535474928400310873221068762888308754923932826433439814784158631551032080853868360408879737113185437072840289494419731218736357810620166840155395293930759733856285923956936881359186321543569000245046977679865751887131036038434432349852347068700505918005039582531931721241837334137955478507585658068418117854575235974478904814709640186306671795587318780629954532112721541491938798089628554828759294937071329008603200922207186941286854355817256273404755003837080139674804057940025743736423849956424818157540620108634265028116496808561415065555112379696572711121848725331359630131750068669082388424909012384762265006188460451446469650783579348755553442799212070901150752758847264317758492846582024170259771204241491794881402801538178815632421364670322722790500388130815522734862273981358422545317972300566917625097228859783670664027469395331138328642385861881033419757953229540895426062934913783939917450706649389233618905541878670544057195135087040783767471086405829323209768748619455832712139398649337017946558033732328104451122495394843674194913669073516810409910169797155530231256187358459521362358593566145556917488379983271598583142377267399177170384109957559960317132604394421536470703277496192158921248770515801990698639994691881948628284170267122383056934315968474517683885203329706050546490169786825009663075385527401245931589926459484903704093717037945261866700049862844615938435818221217319841427237406807366705479305150009812656036837535880072266168686939576644032252054808020173033660810366638102758110234691623838067089708430411424475437349156069883125896445200158133617534500910955995977954369281214605940932697126486445579462519892834399301296536967015030807332699495347033785177464477169491071916795132846476527606722787552589465437449469604118019110370500885677912749176624102745314237608918316832923596145772292735746343440942061385333825460073468344512887935252766795406570490187057855722904992296231876238531771709473798356315899266995720986965193818799682210790224790619214344653977609005211637549928033468972003829296574240145164387778986022539975640247098662754935237861287611809385396022935298570575907588097082732867773805329487177817780467158611208313407123003401910057800742966024441870005160538399079695184766933569464264988454087491880164050571849327296238278595672791465235341964294071510878714905679825194947629464906018914914037090481848602230368645122998004556223063771120099044468514104205996540897853535677641017587792706543876122487534429293527935505666497747368936740321348042969883966908858333699695229117951597900544277232760950425507985819327031179121290206763942090199188306062864029316232376858021941357123124174016107113458382512838491780088473551981020157737264406808374958433563721263176222936228028801517658311953700072953409106178352055145960189287756496389761165595962428034508842007349159453453675902541290428421735881917386286022465168342332313830354964877603321551076598573557729504611657941432102894740363927104954718509436354813059442742820326340251607362477100487249744310646922349892975427213449801668169262672301879932485001361606585666632546254220249359149117062438382408080519856936318750775095281530960888262944502262180771167618403509323281717011562540961550154260171312149095531043940043869773960661296498350764062285784557604053000567659328506226555124552231617108468941850053012985043126241318612511846262385451921463632024497216333862946604098394256115815080891902588894828338757081551650732994939447721975954390566453872754640658128830262215643607271981730624264905482088216062618341217985227945635992819873677500544873621173118193207836061132254210452193454881357948860143603659754026385284395866331154286250090360769315572664636560589415003063602288544511600381672282976210728210625184935041502874403545748013858244891153510275528853622578792659770702696222335319515304102634468677072914252726367722500526631032113197385980835447015220725074771377531520899198602441790791803954901619733260877720630159392108325653469979673063470809187266561487316354992721953981296309061239330897906381018682963106208993635139644908023060560017003061312609740839018838631622028203277560881296825616769766750088730652262221250262711885504314932842923555017849694603549822524112561475689120767003263107692676640635258140052810865045021499393596002769327382113344039014238133083522444805457482957980595815923031689220930459375502613683803908106716083422906064327535261367464795950766736868947219212403828940824345891001031544657768558283577657367718313765673297745543726247935250923682413502241627133416900839103625145909030635784763091733817506209834056512571880106826252765148204556530992628277601183103744859346185713419183800738989693016603748265499555655532279607720039382343002603682905588329508814390782443836551157030772213378186813818358741197244140061121217901598539922036777759065821572523784803238282624543973447910822004629667669208747622722731332702581738761627376990344897435160742348704118665205007634885228972351170576631205859362020610891027521193900877841438932998506085965236922894207923054102970480042172471503117023781808116683709733217509608170216420907521580024894192948575325849545333893480389749577307081221460802668190604953393168026046274404943232684139207899843433996151475092259025220306799739297187614438587868184200848214627070897720736571707929093823743413416658627410525372488306676278260477905250418821314168842217828796816926892493695097849575800719037490629029865328089142394803157728284171740434492723500305970429148420718826578235386718408316925926780792726967767608286027099323209375252412341751058821409813489132417085282747143841895061191351902884897982843914460130878657491329405477523875154163859228188582278485974514021823735960100807389522685960150527014497992772676649409745054508066506716516342667325431935977879995028569497645148892089905164193391880949765083144705282927792107137446842462725238716318251982973846998771015241246716164400629825064990145818297413552496133652940851495823581677221713315871654688019555263809515354592503684404265465841469005123142106003122415720221426123655255686176077780593525152186483046786537805159328435753156646012579084274674767619425842501298245935625542876815921042864952069776392650014377831253309891809894455541263146819728296540468858369536207669557654212010918413079678141375134700574920764470037695714144874860645290177515093326116220665850045362670060179140129953688086951544640790603162205405919741891942880984980881119177994605528013644110807443407053015102279813614581728880154166735044870281575975675066935819298534762458610370473985602059137321166521809047960068219965166205972644990332317383375710034372861924630240028302372771821152581480725875323113684460879878666380441871899449603019542534843045060489949114198679022436757341919118965982800974493283478939653772565895586280631123911928496494420844130595399248980674634933929796735513794859079562993241356585301623680837731586870556406648896758597556999795098485529420375545180886475590739869255311503422049477969503166236141991981198728038256251201757242618529857256050078293906938234687706406726754483535883487881661294251359120621632198687740010158644781159409133005837360513366925974575156204407294257716726552156738486150237277454564273845887841129665296769598348288119211910655536211023725657129250953554884591439096332335640699395708362816026237477733184614935329059623342725709493215524460869250696408568400876032107617551777453215551306053105877915132932405439811569064325133432208790345692327678152623337460987391784426461660808293787047793473765534618855001999910545323318600649529397547233676735190710446562797633113690607621984011840914876682392898940292660574113083672309303798905818477651402356212392371060920005818865829721177498438310353023964487397911964593420902037869841223794288567359878439788950422677251052992338358909627798304309634577395385613992794582307581491289243037711716860545243166665314006998979576756890188848007293276449722769405725804451252015312744905143410249546220779870743855581432820689622328636425125722433322365380859201105265643159192656825092696035801241550717549950628020966275297644253591412104379679791301145976770429332986597685644366072752090509760453982580578923671053365014954460347833612509505313401865099672126698204785720624483159287186355274624925524841307796438139421528772858293635763547546443841737093268530262402461240785074010975905205743184876571856234925848007618135240632151332909417171343094626323449005648102797289858596419232064843298155268095874196332482466818794158752540756315573382196540420241080935034085112377692293829817316743221084720647333165719388275534401847064001965220330155695989300751937640850720844353161020988520449850540005465323270543686983669869278586256371367360855593490027423475347534060540940500340355924112285861128392112834411451482531827544996874642127224644180246190835001748568524079564049795416640725776707150950413730598064270024769404434432825430812538607614516554154782010590796439988959412355365956897756276802934282104167997940548037510081788208295658215049631454752435731324247465092586335388419966093178988259256345816089827992474385599864909993237763178421748245103418287564777339394542936552254226394366962706340700755741219033245429551808341471087154319443201329816104701464277594344340296601905251414615078072610705210893941658432346395591618800168578168565056232305557255689921735799288225965650579613914974383535530909605948299014424439432051259625254067479459133477565163794426382860001325729986107102826660833920755186821118059137511874935780293598806815533663290450746025687120818451322016573979411653521429996734105742153439003810439731733906715869457057720235080408074212636795953057440873778006000399385572790386740759575338704898267309019287697587184901374123051933325013424339697495898879341658165449038689392909564572165150890453015500607198969495756761757567630343740823427359764744026088446385686338912978277279742160045084893487480300317951148640299461497661902729217523175364247068264703284639152033416324010688847779261960405480113549545735050198095445135203546770033546540454415762464694358947811536754755408930543947717944298299111762002726104111053498489922528170253276759760339247804695007095467098265087601736947294851697191601156679090691651433666257186777519566910011988326831086662985997620566890461970364093606125680490070347345706947550778599726533108126947554216362555927542354936146106282671273998601432232912067110437903117549500478338178155539039521011352037765794981811759946587656468839940230409472498448633580861078581063190546368108325928997929524730659158827952307000918380714085452458212439824881234756200685447938772138598122744433729254318165050447050140401008465165240042464078078908802710253616589267739722918291149602428128044617302738260701502126910976439884173358421563893574365854096345162668011434681505809120598014446472528610083728287740785773402592273432722774473175096963216220386457422695080460504383474371258844884525212697628779790801846256060053585430302495170449839482988593653404844826196550501360375131201426628141410928540633683031082381718033307828118908268168160892854634370100338014373927798712396841860704700258728026203261327199002052810450478386211036547409181463710052115777922129374008299148359862483711481249200037937248367826089466469670040263321431361394610665779566190907721051356740528037698511925547755230335523821859934753543261377335372583484292889761930817898860316134091795065360752953028218057913783639620588897618083160421734912874517128110394937912689958093870941768348567588847832593043925075899900758708151792182520469140980165967462525083788432087314880406453712747257048804010979150859398609847424708714287121509705878744163710213936974472283437008390407011067758465616486126710645181652885953274575844506905697676575051417085882310984103681188186826889558654984408428559560492175215100423322294952330400833792593772832026996984522907440283755612776894351285444213511298548472999504512221293055440209244070198186326854629451686076924836957982405365202496408772682663868168562762582636301593545178105220417239042591002308754949592816659351591279080258381846968318095051282944638648337643932423978420045462425637331313949677116759632940938400931123834979543634735762649617765353467832587911517401072098265375677054613217446471436573504247995830053667613818202543235928654392587362033685642744009560138351745822659809270193487214087998161612774151236236880662033682663771085928138387603731491172420639984645777130921578091028553103431417277714754285189140327355153673508788656303300315098296842623273222064220520783022608274926103812197975628752799544518468123785442089093921018000338170845509257579227460954228138454613054746989091695778602190351191709615891789095588401896387811092200365140745043119108382117321798101095947556219165806253934064713999571775007955582721915296426610439536207724660192297007035235316513784475338745878601569069593478302684329993795869171466501230151146455600882317561524666617128613700317262950762347044007893434683797235488362642567311254127600831278590919029713458480769537301747097838281493383093315431492265787960239279007402457926660581783805383759436815484895817273122608732768719488670998279417854550236144942409911967237617247596076269271298038229427605977419180336599835138455798287086555482401989787846916384879111861253260382415591358680477310637922854271719186635331215543154678108698872906854567002495492733982699747027093442930054291629175950501298291555461382187651304497935346186751195931771724187640407850086079493328786064559630865199457840266127449722491254845520215349014290631416795799966658981635104768531511578558478017517959168005341401674566197796602218173578344553910363047344136263857655411445089495157090451665202819275238897319664585324223668173947983379560852286171050200609901943435626689759618630835487786203651722667911594090122659556498148440076831184352525422098509566122462586172026390948877212691076624005842998421725706065488715158156791449220642334866064414209018187180919176455633816797221839196980060892039074773218838062434556510538487795722121205236000372524737675405078300621602296485146636142484178660493866354046477558533452360871075826071469233191164658541482375497967590482470640057148711621881952886266060058453400668189259488585476085669390473388729201485783659474599373976552150587577494658137742512922002374956209504522705773044273250801368817440305386823492470256448809455188162483994470175512937699768182880392848721480396262500906906578381981810881779819120908658232571746330578752096457655201935493819308344149616333732447057519584713476065646788673705619306118324170401922704197407002791847194016590479441835459898453953601491523443114208862943240035874135434126417986227359624804543673588902991791481863427056609102386833022962822627987158220480833943173527470283673506841328004361277497964537551639150809221703577441873846371566831711130672060729506486067508026681681965821591617994236444639017205353253307954817092563458371476882967851366260422911320527020315508791625440857087443271033126629998687833347945770630301946459798689334261821725130229446540687284630308255296506103864906821511399878667614339838741714688780252270984025776765656072795146476155058189109936130512305169850914895317266581371933567904900775071314448511893721053218361648149789779851669330556883238561643497858280844764371773610239167607170886880563473789985339654224791224464494913282312023415737328104072555750793062619251019987895409508352587689465156058627414032149791288160916056580716440855535591655612759626506390190816727297045126510889252651837795416466538581390611276325794677648515294354131746148295931884974685609871430511067945781805664886101819990313431894321508349127092142527944955579702763817031536262608110045414776573722238741757310050089282902603057148100221739667580203928586290013350510983120834642679655637668439495248798420940292487178541614328900321568677002066490171526639188178626422173493480711139787822157204290499794251140300962112721697016739661577648021758793671580356288034400145211503516180423312667077109186223836575968950413670626800344400791741225984354385458656278923580603668739534066294388235049245475856019768717066170660455454886397426099293613421265692326761626375317860697334006630282100793204174468602729341701730834492733082182487864671446195853760107806196657221949414371234492029084884788126887400507146235158159120378712905347251425173775852191135286395953828154364587290875506988204207228511662057531095310861247113094455885684218566760093225549961941309517335582464078459989831038894147927996298908487895752088785718251081899232721241729615517768721433977341990871465199061282937032581662318871079994222776822233086380549564926163210317991729452869840897020431266787435342995764572805690314234424642062808408896612253198600691220578940689393076410975934704101442894729634361027776399464494445321828315209679633253213856308546395890820847268612136330625043160024707827091932314133069700968049567070634163498951103709579194966653894470095983657704147866215853531200735590637820903128223986159527432239056471831519540783292152400395655354845640078606774289174895427929726119057345107155060153547516061818304921274687407222451417500120427961473828082067255620832851779137830839124911947315972691562622968126191392837843980469533303397825660513659550912718743239562149639532305273457907210270693255789122008652288145169620593899213647751642735676410357123110289692641520517313381032095624845342351561968667073283188523316065999711339942246137893754177623877166647894059307253886772469302721011007498011276293395826947732691835829567557692013007347474348084095292612658143936020966103698054792911946867037445368845607712139324485788108336464379668474133426425506931382526462387233693748622164103933357612122631539872456890954672102789809503079135103013210067110112298924557639844433439324015904912468741708585739354589935914660253286586308714134704489192103855128279861888518251701379473729126748932670764856092542886712252102397351640243999111895329244509674884559824170098911468093386597711564407381118800055308308569566747721292743189151735756916189408261414789004466425779117990260334534058198539743947051355511109856985133366672053938533858972726883718583589116662912616354947707525937084706490420904763015433926945002387374772278201684473827805833846784121894080018709149365674502483885719731215560778031147767886533708073510174988274220400960488591657372859243643947607579858237428108869223275498109539912507567999056549091031709727140227546071387254052118192118257137823879956056349176309773089326665741646275976133605001863472402090671911223850472652656813802806831185981295325547408654398675722230642474696522861192105916988868014725097734233305543273527715800795038139842194148548162811573690161490058291549455099377153226958875207840324110871535788508982808064974999020200238937225271818223313891711748810770692251267372496028690506133500679624021214860130752288946382407282656274038374658078643567626092529226585153243724499656370017874205225907130909325492902924012107479707793606281487796156357844409837797827508879570855630610749096158948542708845766270390366543751153628722675454912903674140407303996526503577293196833270893906932077738563239324704208332668572764171208906829130591782513799361696387686665133233899506953348097690577044764885876499780754809862803592140509569108023575599950275476373241144091037923846481738655525668389431376843429470812315730238075098445565517246092507082181694404413925721037427061875239295173019772615769285226131184204233456706425921213809220453165679228958190853334069946161389155206870330347473987636870804703000412914148888989687596800546711272983587831274931882519634389674720042017739078672908362355436078166144832775565299033002835571938897218646775239716266552706931636294761013996092747698218714135233156209404640288407119901346206780397049133306538514896906507254756840772049568634682269668721155003624553352474115342382998566588003819568602748228824409905237647513754934360044163960210133635632214288651778369908382307977691377040856327853857512786382118248529164181409156440147709140779224089867914347721347692321074227742895641937557090627008434365833635971281473410236548241960923451031499775238081878524640691346566686494596143321826918162091397044948717102492654953297528903979945091802031586691773509993734821775681867755405772066814917279971899717770703176292730516330888472497164492320965358706139867789304889235272673593257242140535539775956601294055118243311766026457387705821123017184459226147751908732522357910047163144217476133312009058608261907355634798463092310771582165947825221192030887798926742646119516145979475729083687348022011453173829542001194209997480039842268785340161559457587999051509574251760840195847399023775920876663945101031265457344638183776948974982799033380842671076140651322003059160109494975101508338880131017550694191142725060836097941244696269619510127859921924125195862403643268521903057921909388245185059023868570606829687308338915378870228885611669308447708339096443447473764137602069412483478126558524031045776935572498195350646779737809908704060138961070960681003470958192629844161358812073037397858740019917700457636205831009384830281505180714997698002647221702498097730304810708115645161489747262826445326138904329869330604007609668304030359321542693187819496479943160686150471265335626681193238828334450559948593208873240956139531214636808638238048758823475813129193393287469912129517360027275284064938916330572233949400795005797640349865298831731919407345238892028912743416233907118996398978653879275398117246184453611938428471101999260734509267470701588813992438938689924330019203787845072857321803745414726489830227005289631301613419856780402769843377494682371317457940199244918457644767005123816075597902408647153330782914047302781739144622013518907586156000267697514400858042087888561032779539170861731169336050140575808461318416430194699155518431794708655782876055722533599244878172800702598461299426020764006772614515858648271919642608524765203294217962184221135801381000202524099170076282355883401639209326242832287388961337615928754205963043963299429645428291406929274560340802877221552269695525378937161953296919354710924521025070458868703220704633213021367250235611727934299800065364611801760212752399678816039066848617488912508432426092389591943562157445398252126129282927363820370637720423085225709063128892616938866473431041067909540161767209038287647587322397066747457966908198360339519551582694073274181537812758448201902209283827999153295080450839764357341977096632055828428267135502868948038550571875342029528140379385953117044857558962873482821607554014996633527022492992272871817681891675103993484265606240745193269779834169224861739769465146435388237336454481140157159693189988811014168835924176052821675956398052775553725567853879979212181560209819999511108631507654339601596741718802800128352563174533402245801128876441323360505109961438257474828375133545388090444762885482774464648315976701077151033418322851599034225621298742634417165987060177384393324310695789024436133428479157949443318985258087344562682580813823691928784464986638770998672894735545236632632459544021881317013100539351279183573751853825344056617538552721776865716502209406167616854553145452649611562508842221144699980953194363945870079159118652785248519544156678126714074762565630391856769635045464681811285454290777615476168674653178506739508104018058137276608560112072933183696804667281909461505896718619598637866904960512039872065594406565670297056130161149187978516753859074042545850170971655928327049774599226020913799566146627492629617021372178953706645675956680855777377182244315112672236990092070430027330678039441553839310351739965127710312318060652289463085076805098743366183456250798137178804877476279063954500719351474512382247898191344034553671967479028424865058671942699852399598953800886027356106833216523981418718019892860957673911340360534022536154150291995224085314759466999589349423943504563811650233022658445552608705449689339074883725863692198571809256323613785980478807242111211222961508693955847348160544342794495899305265141611718589517427286518544485137662489025498091367051332724128979866728925888855728682709001207639154378411884261857348460926073762887761270796758758513229070760362331333487838936705358158300044964389402293381349528853879952210535419371550027878465056874733537579910097524749851799417815321369926568140940115310715542921760643287541175766785323688440071521822980932020855405583153239130078298263771409468780439247369648248534505896136930018553417345815883486835000969388919324689754341259693807670035325547256567434953953731427935744537846037356232282793402130069590844835304133584359224199699166766608355599923552030291533517839800091949508189658425661895035696681622963130468080301689674111348864581631755205833746350421487833048161548233600412012901407751828934779272983600282274945703847404576999468266050640978096900333048582923112824232213992197084031462196096494613317150555129242240409062957424787666540271170502696148913723634250226434038212991669702339805686043782240555147970114073639998281692116790263598971125043202722712460202612315322709095358643324598791559745886933955756466186782241222715752290819687494124742855535302979003147340803063279080264862489507553258528321790067338922216766420387036480269322923127316924043969786702539844308172656524099569610184109416442417100634076386333385957438995083071006614696064634406612928386385803295654293009479434526771191002325503163249334431027559939423429995728284240400570415906002808578296383357252761436746664972964425944293650333639241276421524395794927474795715644968493419537809941128364984822951588704221698684529073540834327965093935273748355502025972269106481085028882094424125883505954462078291554934618875742418406630440948190159643137388269713025296361240635517560712136931559719194697966374245619778722597078443492770478972942756457663781072652515037852832070803000611284007635354603147858010971634334533260864241621040046382271406804333181963876512348485490434535512794125043997163194714701857513818684629468806789653752667863991304305114244981888514123711093059649074016623609360292558092846733360311835201548244303405369789622784861025797560395243056967899379427194149590346290835098602978483886069202294563424224050751477576052485055441467390403097641740455501451826872777301703366344879683432221699492562668516796373381760586703587888645143806304235724821061082820404636427828923827782688124525377584784824225785687295053017540425968906734389353458400651526873888498572804338522390818221677158595724021392771205461180150983382462284783979801606676038380491568280253281419947034288594714763467549741349856619522311982083315435453387012468670682054604328221307329965341244031931359842948920838326996879213013829031664131711041489061823694890827821699752958190712832428975068081356288203442798988241858926913393803751388830175657578567356173452243100199550285708921928396555583560307208433980081507729382622304367260749303232428537707089325320035524498569751059237776789311900176437845871086674484364017874740594578762987612749444329855442359239701478932692300819585914851545933894901775714574016302295062867833548145937130206002761996671525349071831307108170200264545555244968641624151262864546820480711413755974725874688505125306412621440297707201627856446951492508122680724067513101209815597706863396636964256456900406914279346670959752568349433225466828270459847739467372262074209138653359483627965061741699464618439384301803311156232457793286375811493603122804007122582795526662180160411370947589148723613359383919878681142747979248117024760170992742403939887751597040517944993446881763548773018329440478431053250383659908723648583164447773084073707950915833973861522299724162232386017528633231871887914367097660058771151653312653543543835556539630226964261595559386631579679040145470931983687159040505806756295332089691583116830758960358832083322193317034628834172105429386999641497056425001530977968899093570668168441161377762699317305583645907076367646622133946744705544339666197642797945058700047972160830176898098538565126990627059393885792116696460112880060934310743705700305926878461886918074100501125111875198227000540209173726638668148900491015166196912844407790197533927407127505067370764120113459183203969118630971711696715786760594147729022311987325260269277310339825549110618680051905856850411864477327440531361625258834816079148144705852231391392890395829500375783461749593569686482599328429518143886965484850442596490724619061934942005899322089560377609385424680572676043770414056723348280256165007102293919087628865498566092607514878742232286827054360597327495950461992921042800971677067062064539422266386982057387129251927037021060462912635946454880119474994857241286888266334827855995217120501842792971029373590341303335079194597980650334834172601639443896788787535661557791886610082842364267694902609688687260957986888895551430647630328841266904670877735837257046138053295086652267546532946756573467503392060175194077507694887857540616671887416072265896353935774973151504552917661675443037700451479106422990213066897750968567202598406321604824248545116078968208279115730871239665523552349877815562120610805530735653547067391247909758188791220600622227939455865132525812225731011221409110419834481537282921259832491449125000362001267893177937281838699404388031400285006419700698113067943065421496660561178741868032425811629602489543724192770677096280043350122519200362569665517988536640926976269764565212405731611077300810736514761700502445039049163856538268308484889415887240687542757617582035398316513823646583495073074577549323570830199769396203418195161610163183596628237029913432586816020911370110542751335512701897764361088300280888403524407225073415466067932353731745654088169683427790909328074513880034864200892511037180701586644078967496378724569431253509321474943948953336575554237251820158926819024018737167977638852290923482828116495238593657475169848331678586952809797507703414310578186778615578544685813854575642271173683810001426750055271710048047236295452294730122812791379175615027847826176242617347745915943500223307724141376213002531342271230536054451857692052605474127836809101659278208880315502074048742285851918020632239221615019520434256572799593717087506357649471560683632459813696440408612009538322389163235748710058884107963646255379069433211757418087751675311130959101319356608796383923908033425747092800530167805532779195384970207590061532883161106399580438938289283830914477087631137822417980462539480864761730736604035884616104169010592504387709205313059432224186951673175652537254280139909242211271210987431405198007944019426195934469177323487523173684960577279542762937404796210690111762745836794098709583709461071436558427637070313906414387936228388254148681008724441401360341450016164083180417232936658969988800344972935377699840967849038967695564900026023584572258607721304574755538762451325808578360440966271762051518826322511260677237371030773019400009317675980197670070045998564379390215231725225766260761983055864330579599568340648276468365445911949596738007360255493978110549814975248042904001104829655625578376420695539886327170172935927012874764476367320917082514095869303450677487169435482627078230226131280838259650311511795731168422427387983302692699365211355399982366349658328265646217532179292910000500585393381563284400661371435539180786987629499312050611566374530341213334611839753067231134685710867958843183540358467247329910749619436930735620482486637852983889770877424867109572766022415105273594883763639764567448412876067686480068874549178898099910948197280286184302768431815122817449358945470889083890386614335122699109206865450369464250385647330876709227719224453597818055136243846186479216295434733468986308634329729522827072848532311975057008891575203965830547983295693988009082296299641968307317728366187832000342560114140276992806426185520311262939453494691288004177915960569382097863181493726644157069179122633516568283677958944848891587057491051857234483959427210236456071855825472434944159314303317945665164515122305256503272952577427226147243546142925214200567917741554514112003695010086989647092658515268782550632633833567410640402124304339160308249265184368477883129385560849513561073094898806106971947109777231309958986010400728894927679507483886390714555740769761924348565844568648345588608903551535177782016893476767545367246696418801012079279217644215912735365133723469168735698421385647527211354896981922043381275861107991798251514282325156487465215987652988345481773406867267620015091310532782847857827204414631512296361279668193092601371384340392612423010468135937160857037758714557090732002584723259563476135233334476717867104593367336337359925334150091457710081891704115259540049281207561844279158835304362582394415274712466347602591380539542887739706610159544046865895555051644911485662722358233270023485153621201558819160313130514777021069212133422353194829265592718200918634210487186439954943325352853694945557203000500440658886886387177180108173667761947178117713746534559436349617350284610656098021102659306806128071805225204871422779731872517597190566413495779376211511367042343416136626112093133034110969490144236186652779447983779108834357761961015353606044418458532635112049682311913075835629340085657144443647866868931317639893795446230712482272901511582138065466347294031041369037504900747796246119083923926394889282096339748122978754793398592540026378193204683522528062357658734753520635265328499180509510010559514756331152178678284382354894343245797538456813462805547374563797918337920424351825006078758468572001657989936683393881339265518144256119229240109050278933510409492541164464936737502865546745780277085451389939781629723781016158633659105506666364298137650836275464246423572889230626029087726604740662749651476618329532777300975891452288697710514466893975005297705920939592529096912240610753653114424555522815082596392966693815383681115027286198007792200425881299551640466150163684705454871863927553697129846671718460157081516491546761736696978444011897790030154932573481670922792368232244255529707608055824432742781372623230688340599638872889107364722644424676554793701169983249722034161942414145926120000275869954824342352568629661927924948501106255807817033325044010019165499650166246470999518091484642019117083459041903401829542339532217255291738579338946026159258599557147085482081668855372209391323300785035855869441726191007144193726273833750255140803739013513675441570697119778462339363980247402791142840020420391510512582917057655687451693352750579397300824510899034775487672991845054542839286528968497886432775336848142452188789800004578381603637291640463219403130434836453642695538045756904176662996364931386447997298365832504019354809644587642789994518863407197536802002251281763523036394951983616901255995809588644607106374432072444072082393395925626450210508381470538758479772674749533871889202409870012388597901083888935764806998120229864654533051619136524890167807462935123623984807424597455251895656392047794188757548205307630865902216239086713532993423941367560544433591999874047254379900660248961711357732455134660949663846427661853826701395752275286668194304160626381778538162074850926789275760417802031232652827460129437925449300654670670182740393892297959813860334940107419921945568621167879503386540391096804244264779828278777233118737322107654368114250587511495371785363535465553426346379796610684458336125793074762390415421888574312836039949266833401543206895606069583320884682565741796032366957146349974580516543706725460771123941132306256717131528866791318409791958563950353405277454119155804283933963467673627060268439752846112689996634800414756783860006687898956955846474146697183633016481373874434869615156069018104270564618512350428504373849056066111793858660097022006803951239452468018337986186250186269776056607267597526838473851057125057601652199970082548776887633146036776316443709914920950967534550171928881016292567461684609701502743907830532163600705432202775698444675267093122572708560632928353074964394403498955245669030102326608555165358896504246868681404432586194426972364019240485462485039288836620645821694459739407008818494879847179789149443493739762738170806212359177673610677341292299454774157465217274983643541287158143107067528869626663483566625459836782729587032209889102038429547407045279969195543619601471758462862103771366133508990550416314728736280454317896840408940763264188115722837035987224938770339370509226180029874179890375246254748066296706539774718065160584548630442315246192666124137891129423071224575251159582594692144792749638685230580681595929462213773864241769972829659540467370908971816401161693292010802870614995651210493368772171886155183921129415937868052509457695909623899852143754767319767515649319084590243076217997969947590954309351516920658044860732524246191479434649838312886485011226438475478709768894179259756788915236185345535805248129653942859165718532362896791385707359962267293661219936748144471835788634123181748498128070386637577626020040974449016296731397506184702182909001568397071102883247270529890786375723856150143534392567876777809042339665509595779781630683143494325455003618935116344667946228643433019901061736986318124181681795836541613021108379042119775193980411920387223441801028129292479350154547238025751513325157724920037663190236875741161659027000175982150056512450182655920083949156839518189198768366693377398685349148156454103517018901309415241971308955883297742004800090668482041795166460321497187088921308983887402779189004120042092455404534997953050245873811404158699477584575339961875250655330943506257133161109960719920287641598558394888447921955539571052703866410453500381246074724420884408497895592898490722474659242432219689015416822442185512384772049732739975926853057056096196167853548127179728616043693868456451517913543795046836447540257450093441322503316074076698128678695378811745239066295064830261933352816424503446222442352321462821635760583566716630934488178380694147935664009968797498909439457224098732757175918988411055343440745727920480004959125360842682187675641039747584071474712101552603542473719916703548921719204422708000370857698681541168369377316245856538048055614965790605988839017733234034012981613611735281044344363398556348059690085762262402026633587730500406837752057697259862532816439600823682562723225435941297936375696799152018251597821364178573246444807297680634349486554190723874671528211064467925602440580902074576177110138141033755010079625167294955156818196655522824383350754907078521275513674274564832129550705629269056646870897526166835553406455495745437536355234096754171738983860187910589711153302007377844642167168646486403705678463684850487045881158968172130698616140960381089947128728631621458805437978516160759596077033336161424309691374143992142864009210451618672475125445390885927715761525959272124185807639976800328557433120592829268611990498595648956166585867195191945498003897810913345701632695595896342962637542686509340849478232241148083382015865257440182750420865779053376429807952129358031338587422715772177829213061506018606975025512670919961596431260960584093351047855342270151553956013301500619553527602097793067522549226002362516306869592543672327595229841456061036394407497616718494208443284929394836569194774650426450957126979977068614354571841826556896536237830644927336155218708344462085726733102712324514560489125283651636352096397897747386478629829063175886244013333083742416267791238645829336353644900051830150382807597981819522676278065217495380437278312532910171541078682230400089876584921093373815781992900885851135275379457621094099515404088007704569372280558591650596804684305880335535897190326387352061247935705835276380563825946022760418147219101311740275863133284256234105219052513294360761090068888365825844504468447154783232972260763349267332785047183567865403690929039849572377181089362276784781531947998348554626674343352851033519074081562011330665029920836323338247102356164829588589518011394280677541209392202491209364629342253973946966909341954249785709384736221404768655535734702529886446537915805694232573214035887473445253802915156056434558212455658997179810505805446816310471633618877216533277585267516300881331120697924102428031553054807147574197517129981206504527360801813395418287984098043654784089137816241042624963432827425588059193580974064832096091190007982897365889394900802171187433625337009325401552443115007164961315657316215585256984843028484875972313277178610604677353510932394117178081193825442875821367346499926342531093970610621887242686230151810091489128493387423914515838270082000709428307765971552699629069032319536539941315937788516263449980366754180148613185398467293400429006029349331610415527502577306441139923174992800277727914248654014905263167690527151354230670596354531545880171569123290834449866809484628901872544347141321147028442181213817205731795013537482633636803904644163911775083138461965027557460934811280714734118787606953363904976224028003987698692196886151009904978974904078421992351463177232303740325090928047079341298230630315536071373853106244388350359938541337296609888737277304583562107068420858435895034922198481013362947509463191974852693026881836172559639759063746122101988235335696089844678824241482049050199288132716870591882585930569858844859518667314504411492692575198301452904226121617467008597648819018277805063796021259691493092182267110494416442833585664900044317569088484875012012062389893362047752235370088343496652503198833296009904528029680585579881275419057776522906243864839395952780638201775265699760716348444615532212087171142559279290890408140795596572777903097383738468152885031605803938091264592695529823290377138617243950986761276456437511646608235480552200237274617788038335958315083308322374761045596405547188294958248474473716694255957244637794100772329113530945760300977379657668749969212200351717667463310545801814441089049194172904231095168385061531828512796848930303312799422402347548028137272843946552656712008830242557894589882964812407048702734747319653553938222544888904916391961504389036799664318501546061482184296534463921514644155561485377640643192450963813412306623931801960683166624957834620037925696456989416682913405588195004642633243399402937302983455280169384109610413680211922308117395861629495390610653198218732143053491991925867155389321702571198701478564490636020675370771266623517847060889676638084050840001755585429207845047231666612820369186095374796181944306874986880850465313094230511328188402307498411909868801119691633508201245183022486347260720764156501135399443924703992732266636838782644330134221585377096093393281993327522119040575245421093886449722950702687142922419435167384155402983865974632022718126024732330017221928938590577024885865833319177338261727349126644397852003042136573780907471152705510181409458129832879272607824608157342754300984975836081719342010958070887193451595459713060914497088981482724082201263279609256628147936219794548077957789070573107104635421619088760858817595097758096061546591001583983857305396959922564456595714434294241806274440261310396019161239811809598180152565957777234912265593520484521306897839822747361706918310251500943431386546264250679238907692853391669305765021111001473987052524355374355879270524152880257539900106399379193776242600050499392053805361715652576394159010165758279002836154737417461995091033618585714784477324308195138867915135756445796065322232630719619268105226808608484767509424999220004230387539776274543214540375261070508668491491506165063778882329795289958619455943094159175533163435249050518789587639903434662739973873498391873599748537562239128995536463533575481049121915276737995020402580265118296580557267402228240553742498300756788790668161797335445556034287792080511158228133059598149955328465883637434542331536680917559815201727823803422174676622451606976709500834363640759735898074473078906204744236578009103137402735058289042787325738903880539291952220808187470116634039440799105717824924519681006462041369051707388095094870131028346441550269203049142598800053286399537537797785597153119380888737593778269363986272017733253639187021511369839773982806995753902866788434192395059033876973684010227465051275831492410604725613699358253136407677485711584155596620495955352447712119530668602024089556566485356633942833526336305456645304025511073101367855761883926904991724871516876228054281450203295155277545229853264014269623061487777631946024433942652410348087188908440179300438278891067418457093147282930553872199407228148896437860644115187935772747070499322115178217560586794991164180937345961271401516147296929583686403420827333167976645608881707158571140962779423017665853286975942189969669197354876865564472465977732365328726053881689090073174552085154302437328317718976871434723678761367966482500138344950117089512918334834542895695742325162016861804942889295695837615520460414645596205010164478208647008063158899155784470692965383625476596263138587471798754928415489041667696509555761151777261500617412755721724160007874970104257008195254410046358942369428827696051583308654472523841657374854187869699491089242910658924439728642222696909757493073022503711778456396444302903821591249627432724076225129574463217680703118510990567787312655831692764487977530004017566041034778396230190386543147664558350390725464622789501811794030214828841075864878396959606624318952945149732641753922746162563433317834533559143888534348497820935756966669666949828653442563837793453055164878540010931494558914013522437390245329945247961108976518360836543243858342602967236787023012505481313951514876966731078176273685850283280844103652366727283271258200188282888949961758315096204963290445702716912583880704606129826524564039840316744391623915668201295043325956920102255741857048809648202868657751305647407002749339374677228114260457871526095332309085624469054425791074085466900983578398861434192219031384146482933385013567445760880179145298669258277126907425390838799480672673154876068165398322859879511383894527164320935310978242260598854875758822752986641091222052703348262636410732334532431240284781112082060100363924662930184438381135815853147086650913384963089829317692987106524453632485901222481213090772019252972090171248654012762515511321193194666382330894581739182572687488751594184603585153958507596472534360980182694330001840569660017194062058974264685894282367681980794576420603458649364194546030012856742575298409594328970530032079670164717512823631509082563550808932752998654316134319077664036154090064703727502807472366190438725791242475939076419974485774104244901262232321958040277742392271737031859303330131665899744097660365304970737241286381181709250149836635762459490711014947979551686808201535619725844347939647867907188625155717569325492581549760863867436343438715740243833649796599995472300495340702103734869360605745090967069684010292842036298895489702992624607607553877411110867030446150656803473847498132062116048143797751829526556448689864963669186278320642883667995448998432112236635480151520440052289949380287783479213989946007410144316600850589400195412684294236317497284595338195216548987160250092705061933999998029181579659741191286723155936959567754859015982580737976819990206660832329913333506207162890334473820877471780311306284659007585464804623967126755938397617156472677048185374498066839707001038036270036240199892759962668041718095644196081421455455350970278113393904109090807110064529400707582606345055516471475696702242036006643967562489373376218009263944100025906775675640555973438187573551096689927865090508010272907228295455547569379285972689952674488497340920103129013795543851582156149602602835914562484565972588153915765693185348838147102815022337879646397521206754018651262180340150764052841762363370747969994618492877926726056864979968171256091718200107847750494890399418281240893964959678822931073212050653291407878357202265129993593967560317105807353400923761846283906476968062001927719797137200784138455302906581700302800522384832074226777354826206252015560536876439202189166222397819284463809545625733787355404537453434461589567483303202831948732804489935643695290931678015742973316500201830988810026008416595314277508026362079431495284258946861612754897816254080911592186571222291699782582148224420834135165455511574964116700816286729897953843590161346433845623629188473715616666882558662978043791926043239039180734186043870466989553254639365225338194092259405246652147163825471279067326668984536316903629690547765234737246326183933413380887154832221421291474596786578137721574681817001191011545778482184440646417940209609187153066847702902730767339569370363705718564152785371858389826163992140545964649056303230255540620329395327020331736219828613127393173054123740983942349742594032207659258124495861560806858682608606979896724321856795338043425251674596035207337268235486952803674088087496151918499296266072133249143538343640942759981985925431667578230157389545991714639934201389244285448502845285201925628354860425996494959712966890020346075227395971736694901535064878215918190988655170358245438422468861607764007089254802264051156113095917291593743701024785152332630688126358475534610515162689560694869781858794730711467443619463309782954724231305385562231044933121880086184958221185895748146802017496007162237648704061610767917715408395985100897733516773069813639516225652781328849915996602783814515058460565848028331561369816605641359058236624978807690710721588920133119415336522963260460004505411187195805195345649384465900224627592081755307060244622055724423063573474171345111072983113139827311262146504053066180929770421873418533960282652975110923482409451129438380247342276844381076318744544273894343814589284619265067856909076601437043293004837238669683139070113959401032707981549630116866654385180216466949800498760808676020905865294594871486159472131953534829251222069068364763806688817792881282117553278446200978436847893535889036931223777910712981305193325492574305274408147204965855497034585936477944052373726628263117678897043644015140802702840652901436494465784586316754141256376827926605550103645239476169571770703476381408023952574901170146011149116967272797140651433643098160135082181682804424507021247428090541147968132426106997268841218558471757425787541976674017242034884871579250181444747698694633127704548125566840428628881782094662840083238984246813888905663637170490966582387357690440082924504099044926812519549450000837425442864058668870502605655840137334494315473177776040950890200689908383690202639031096758683019051830066472623135295000032241755196167465550991111721058126188697264186300991049431147885822996856528225085553197834819549835620556073062615002667947966262660351787563520549136615604584146939153173488975949497462926521552619423086195800987964201061990988413466734537998521788007041906125341568505922942081058976400447678667964262718683103534046482452413348999907214348441335431244839161149518135069406464083754096661682384884944492124791690450375193720584289209185053143983171895473933911627000458811794243895594014517500543126987288240177606935146961490550560748160140892574681785046220798883641719570820978945922532292226013415253244074068917957586919735612104668002758926990295157112831187812711564928021954584127526626057148324013801097830469069428139818195500174011255877763665468737666353832698050530354011178778449751602747078021558935275594546802795416180640027294180740308341741601084917162142482423500903659098598787813885513311079236473122331515157755578175055574178523556291368591243254221822966419393958286746339599945469368038351964262392010618387579701667032105280695176624937760220976942760428972465966402754478494631769994891814003158594672443920757355725006855513037907868543454734387036383623657959619329887227388452564888690097563103217632734738071852786344896521111490209612114560963041565108785084118500935364955845829598334348326502257080660156762664662469792089294793675062667420574129640736307910764572669041453377826847601456160942234118210434614279886249666030124009393248367076801082788640479716464679263729492347712630958403892319103184609616767087763753839205760981540443528162937412031046433207392852838193862984798837848472467303803748539103248295881951463649913561251517286817292303028495029108626336081273064885803595854922749361866705902400244561064146535241501131318881606480254387319137370216248409001201650786611360917342329133526626212149226437766633227355186977618338451427613161642812203464583474013011014610918630648085590129513026178786157400734900045433921722375167055723815062931271553682957838660329092287999984200070838067621094472995026976646506987663755595436125113157003831025839065231322206250257270325445930093513370562397455882350900601494394764626714977560325008952292588191363703931865473147802172919319156437958969434120892365128829847986368615834474404624096316145818527837616356395766144071953308654424333102092076250038818385596322196552797974050687348927186142185389937025116625413134180264988955251719836238671064233593202409491566240146351808349988553343124144272660379981112092122839263751482876907235281488527681388172523768768793226923379283010998158634001549168967502650177441282080800274216926774490441024149079373906083479241972027313835324783444132216863304212502080545209890519280033176074935136056107089571340038666873385085837345820443635813864648552199966812182241156949806217588758816693618107314235027623176369682388618898537010336784004410543879015215300986397679447828655386332213202187943699434339787893177376901839507133946523070436745743657327287601999054336517184458284835297233120535672581984980450400733533205593213606013417580095015111388051311858398200538102201190661539992364392808836933734482426525945673575248581025103498670650986224303235693202781617077729841450982778167996154397356871593585303411789660513208878458424657849028106852037820171373066627662159698883160459131144776103268248133530841363752086622789745382866748074805086828940491419501168532204012227988990927843370340058873510794719351311259705700249950892191877564548621534002407411940408855222952717931865792562326550619707248667121115338912502307793904006903053164777778267170267974426020689574337652625844461632150380346427041339680506948305389870605341114875739289863618556365372476047904644382783815828829606662259521643297101540118460834987869220704581626304585024820118327738440948944209323842817198070663414714815918587359861832688477138950979656180567386504260066912190372268753372695476527763833804582707275182472068740822370819104125178717446166701675786601357122883202760408942839013357411849283473839505886954422307017959145315101231395628769151420725767049823141083696998997976374597478140218061206446524009595601590886659576725187745090927509230767658126012187073476566217971539805308197860078049075882998599653597150134060154344831626389618333967128330555332258234627502588991871307957797858323955552018928505785350194108852662012812280127958232034317064680020368939874771600158693236358670706801485444388486055710819374053428318735889709185363035200430831838631237199258975452864515880653016228915614989111894016124162238778225611189857316049227004614099283678850888407414780701765631509714454710622217909636344747564954653535735252066972739403109054937278985189043762636332523182735310902290457311639311235985067078399203332634199514904703295542784750124504724282069534926615723422769908693207845736599848103279444406231270592279149595603876202238943992799474581668327211234790940244451848170237279261161528270035245806636370751230571706631689242509267956196104100369480333213914998959520927641200159535015361764779090978446067067741275875897668757052118081540633324249474672192945578960596871846057870870548547193222824443760470176594662000579939789435619881703843930481556640950325066488505182053343572951072513374162374130992323161941618596976111708532017056790952892894527693166602086371076413299481544546544334674813670829157020213605374030520712535747960038001563949175939617401551823019129130542027053385970396059032639342455758164265401779021555006867803111912045966633985809170027367695554777563914437775673533582942994409291729299992203797322837119269000258785618992642053959627416824169065713898822868135791545570639928315096885878891479436063333857380196603536994535211501416700657224770177353588442167055328590673228353250278463846382628932724662989956324914428423181136533645178754079945495954407339543564144429627026643865151394623890691463175645534849738080729015475265400556645491060003800735870757917955397665546172481785940825176464607226905340204783874095056540466262561962627064384347875529952021674105015056481657333618979176619119823929700242686537042570232472576702894987651770436016307653780862801292356434647328029337606167308161311314539099575900324159404397104835385408069448574838537173559688637137547460217877954280192842341186407032574107700775303992885555743709798669787548236932011622848544522369844724487094188761047592277227616089733240121025425336606890772941067049122436126082717396630861388894518171121916230237994125930267606587597147455094792632982778382036477260522622671143999651831861154318466399832209905819767010873187615917994416466471059367437828163026536918094698063920527655773320456150838591750579816168410620743887188456541234617731221731355172210951497985519450958610853844472579066691157154716584004479221325842777327332981691796728526203143305013149179495132053876003789925455732015704699783432021582250960858332579537054212314645652554382052482804712849381421507388986914344868564628903321394294084565746343397768854550371851297192797967020408269689846563297555985920900258674760448486553055052055607854671891527566840226051021257626639096593330785440975076132216032672885525075804941125369666937556082135159933756696111693455160060757384290755748487118818420316004223690857775268387167829956223478610416743152049170422311095192542807956084629186998643161682434388239285725371610514524789731633645359642401303542102979470450748631539633319692364774029614512458815481367717235991673743556446366951028592683131045465082273606781649268908457810285505008756320645300877855134404884288492818561207768048597878499029983012623692140716559821149442697718193796707186293734861262257689197100441206987161473672138475739270527802772632832465068688617067342175356525776790244702780383342175185771298268918997025584995595251391184136632460410295390167257805904050996198548293603193556253369355921820028797473547875660223989393088229417178333944319123558335656625045497131182463509388902513014744933034760739448399216972425044671687520617118657693609391999167127199853815969086596852702010713476930792379564459252297729854966469048606643564548563754426727427283372741160312976705331166100110057650905701119658166414540783367259483716046028555082821114030883136650769732075019734505692192935405824111564359884151622692523954536769235015455142719476673814706818372001556237086603055390474461843092229965763368591113631086228214280244235497243565424033618760556766819602774084332076796340626629775743672345810517253575208364794965336404310001774544259699895216132689122805096702182889300976581718411329779588689092619938751615855692476516295070683047169004847300525910735137742897030102282592317064601739282244235213836427682952978339370257713716003364168175218592336671801529953415011132922052587732342566889953271890188982146284738154046426116522683108992731662427025958846270706825706785633034532615519878808283103499851804753497167251127335811705428899690768435951998281336882849368496064386073372426493569719444886188100322709098756383134661830663122073914962019090301355331690789867170564186744716168219137752999148693856653880461170594710811249024424710539845295867193320694974606709916511351118172905884514627821090396380093248167327102710522193548760233339718428219048274753721518982705919763740111423303008413625640871491867837169746789520709078333789881769271471387802598259520935753873913365592507582846647880915074170825944382027143080530492875056817627073778804634646654870959799205359974695080755067498901937558508957564635824513468160737523287865599814843658271398600292179737676697069399962566420287708060832455336084862457010492833348634559490212222992850456884269768258666557048151575254525033912188163624775552904515568432266188053789410470154247720393958138707601033298444938354258910487645101110558156740181766365574094757865108944166590942931801850572526249570562976312241550527531469303533434811335427408708607335882995603294665238526586316045075966563697743515464815165266645979757932576281447733676200141518127974720642916285357804923923372900867702380845606572592997291090855538563892306541097296581412024553311611605116420515611187727654699496081286121989652246920364969312318510169375757583426950174487890912679721271917851383709513549192044284275807345031491908139499570305018183907728630646063522734953833138932283414631639067341319141551899020479415219653171438573273801388226660062259601767969863873748710262522569926890940053003781649001114643923618465450757761529217002930552553298200049306626762516730063966329827682482143190320207547026994442508914838175338999579685276902279084650786363661104016640959736259672017513356932216203299288779276991703162146335710981204255882984626024833082262619803200769282186462811830664453587044383071200663093732621596987351891311484517238425091321346916777715722809406539444325564482726890507600013852359237873135442169125512259525230690684690738887147978968291535822735517058360534798796281758887449583268280855613837587928341525497514551357002388238250808922485637758745945697679339657005398324193880352034788444056336805883169870274316338211719557180118090371355634115751021607561787768082169946358880105948871868211278406998606427926104938369262759037861870120239661582843106275440254408450868199550422022225457120855217108549228988927906750465938994623341287678421020465603846753356620549362034408010511224566342703385832708902007057378681737651096803745243577735971510666537246636806918018144727186378100328806008982104086944653855796224403213324412972067489919872653521326219717349771406605489903623442018037876436205267369292617286250962793065591518280519731301689034811884984825779615757014392222291700382815231923412329977643764508906308206848346809076096508400117381000451190148697001652462666803115901399251777319158114237590206916285359238021484710199772807133826009852420156156722430883517750420320465089543458442347608162384405671880289834106534000459825325822482085281153636417971157098188997632463163003916434809682386681892776704982593536745641367338857580187791126351076058623982036444046281866321813391860888197854249940373546435073801616671345528434800516439218038802733221066170048276388074911285469976566135392196556510081169185533426158079372127729827937937333786257427192225226011900276645861169065110717212926956350246245261253615095470769770455629350139150602585628656807940077962778209956471792074310004201383700056907285831732423362745520161848174129256260014133156512063736822868296130500274158708025729628879476694100924522356919465594150831051902305887271624369431521897040765223987778910321570835449647034479492348025550583849478254945394946825982555238251625443772428324750220329620916058324573075355933823376181301130972700927393344188625228276874961657897582990271013663953228930574028724733158528712656325643298504104207184222962666823077549881045562314092061083278955564004683421931478225856045147875704201899762320633652418538243581607964617540557030187513793254071452999757345349147629867483817347889932531704821985811867964383005541532289598390776950684161570545225326263345948352975061773469619294394069192858420080097414244209018208839955963795556821781681071476720479585612062629009555916581211864809637984410502087358886344867443472414823768816301413213378535615366673534795817087775975793695459724923205349056318332328548932400463872887649322232818551842366267111324329444283015946566357880507556416862870134400362632272805390177282625393670110680902293939992643425964730673380341380154618241720081013218501361130975614309142060735607870361338931322714549586885463377922521014164672570206386099126405566374632434597393916952298817694631615575483756706913679287086646526632478866446470509004007887917625646615579947236109090436779863183516629944112766014059993692210042933956032617306445361285554181375749782753266099414357116435944785989951114599700537074857152520072098574847698152720150173061800960023168821516633083662595490979569229466850345177383529817424900900717403459025675173680460144988309836526147210940585678260230140683138427446349955460295528482834097661794960031295557275549591451662218296817712818528415823645681355048718511707941365037796401779418663132954704029400680763618196154465665685826023407259727960029364974035184477184511465522175941243296156270654862546088114888412885114374734490525950865653819963626466787552791271897077758099727550181447882669204119336396614092234622617200318469417154947349182328238865386706366953153115607237119870267928049981542570317434329897067793557256537064900858031285084741364689096716069669825293331520794891931718056570135221584307628767594492348038088709973475802984959108861070077248376621248964451310977628640881490232267892570485198554750065657681564553383711448112448823117275501059274154353255711406567393451575885373090317665670475824500671176128228259119702401572544947490548975113230522987235770606369015379242464119414505721474995906466154632282372068976453677245993518173996874101024436347325328414798164724891605691324668965661112601001806355392910725317387268247288162388860173878612494401616619518432081286423655354884747307251157772674757391747389511777979632121156778642516861036716078450344511133611454947820223007088135118822126792209344991204583516140531355584085565922700576553246883361555654313371671169278461851381394034742035935331431479731231067025544915058483905993833995348241458016501854704815107554457382440664660900323812274044796174089552903051402575056613180404267135567295413896477921386967869758228861063789897092300330149886060954966042932153152364445250721180753691513824750258233105915576034021281994028337483001530342657175852149190496868083803312952505153056360395800012856901103447228097074660261935301654135228165789108122254572889772415201774750355240639075187692252841531964420039022924238641076812566748732925153153569378250492015147458868726641232990381119582174788353258018601461164163425595450944620831403738851467560117392402033388698005459704083162735616038636621929349638897895046012146577504736123040950247419816734982589956441635934059226181483508199157594302656523326435724760724808762460499621279369453664527247284469946036535388312446806535969343465686413858156968112440095320183667206492288692729752452630302455624220723114019053274580238543790117657940501816088896278282690005642120891871228090374662787694515361212506093392130868927448788346682309723828706234526599860800878212601497357927797844598953286468034916603490528087535891466803351027579755515992347998142038577105785785530943544755787959190577324411130283067056266508347492298050079798633866390771291641506359503792696220242008194732833685105839187447024556993903902504282320960538144514731979071055624235199377083829125440937606277809689757495679955833894377460519441576186800527249810407352763643682522927647666529216312996885328679006377877399565882548916559508629522336125449820613484301220913737490924383758577746834909832788944663453451394043624929378544201038062480660363085659942933828507162342205083272444284793804368670117435901983905779613076136504010361568118523064787980309995164805545347185938352390812368680364697587820824495266960832158439946932736053871110734614969692515299000035492165346946063252808917101441433958905421386691073651997350884956203630061256679430986955404116546062387509318339506876050177528010956935684902233836451973015341683956950137032402036926451321702045655828883186902894892984346793393080645757555042105486040548370214022181880121159053553400622216949400019969454488933494533787032406033910176775785381590538987845236348431765796203725731047583124358382443096682907376126663426082373932224245202209784754225800599218963473506612380864922614605680199100770600311490696424928586349692579402625217603776723118022025512739332043752681316892183928196402916197974624863854889954191134550371362802447945503111498052012444575520457246523864895587204232577176709926369011670780577502326165086738629616964659517464947398229848497084217485795097379414469922934627520966845036140599637734740599175973580156719158523050923443145249472833827517848414182786840723643151118742981614002008472706703038631615413222517463605793174074251654022348020410128095074960765142918868910023659356015396839915019982622089214597530800430656474485585447889829439765278687578140664949866203490370496288403896005758238380213150011470317564648008133034391099961330538061560586765745243094601988886939014780322033557528600763647990430877963780642683358656195142340918968296965242296490506951118452128522992857956873873870452341247588591068014012263865486095488965771447108331902104584335396074712124256966242873977349541034470413922087391030064109033978423047775618724508078396267686610104468934797656567650425296485702257631749620960094712168198437843430967501206156096041802153421070953841479003549005491061417837562733397599447682735766832789065984548445322312588577505824941035867307464708568661071968739265071670633029952832389483532552613685898256479175608406807472430266381780755090749247741499606245988965868128619156796291258306467597103963745865549643399001040323074714459537729642543253993111021720821192365792897515148530043171680748015985253160151797251460317257020925658833740206153897233215230583772651715900586552382120064064058116497825122254497003810279823493346723242645495996930977713130026281482451921167160218455462439008872473460485154730104509102079193104626118907048098691328111644088756111398263517073949237878185446607304646695570916564737049574322133665341076607996294852118795129356175064976902581390746559417459078249368301249548289167712928943675940692706202110482438238523208021575016650416749935201195598979178386491698396508543560103796979549312635771540084547165567660437247198939309822874966657696221970592532252694305468018111870384916901611478269838665390695523405447231177231990647890303810793214870562236202386196066028404798357796832506278681400898405226728767093528152845702474657480352139121239410916102743149851269809954510667293310762611000637712240980013573141137650869005371570875983224712111306882671807503694119212625378129969399940091455838343879888081028094444822019396931348989572184632327608696615188575733666357560267075513546290965128290726424351301699936975758943098144043885379157995070996822277605933371110129694440744831245224227824588107203744748136164417298895755410324191907454093530966685387816357526679202212505638320640330334102092158373595382939759520571014094650304241384644719801796448095783259801733848172479142668500686136162659403929216729224452994876088484821820678937812973713960925012358588226769906411179477156121721647295481604964633375443629405170171624121198675388142972795033776345695538312916057597760354017076591956426503349642899173859027861279964862913940336385479115076678672514113254056090029600963290806052768813925297009001022672485394218859920607312468429413975120288242746999922528924668888268693190737198087674450522884709831865719436989343354690640972011274643208414055819137746020638169435732340859641386479755142459829172559458714234077168452134507997802169027681216332017260276285125939204998783400297853389703749998894629238033862334108279177379545237873932237437904070725658198063568297688917403488505649547317566379771083580835507611770364561286182439772060267900794516651991568151382427546438533482931183816718852356208687562991357464664646668517414709953497172231128042124922954624695943059256436477437597191055021827505288446680766603248891586857826501733706836066594107440939851304090688898300365879233445859891989403280780738364267173863038243234451051105168327529052097851115863220382018553459550371024547357873327380280478208979385107216217383238220508717561649808187555850080877937013109525197867961792919997250423191027038226079447262564750975549533403573607193760314182588213467838485260358138544040461362688898127038240817886965576487831886175320757252884224093664589080727540694210589151231842901275140611889337273563328167940426189107203431073638120787816916612592650675602959646699967768311675336805778722641400275836959141860203463475859809684003425649937237861353974018117389058515421611353307037867277906144470457080562719841562470822287974272638265497735470391453616494466807738514422724952420430765676846590765668602369202324392330952347390017774154517129269789023129248326772994706766639462633855402443789100500850219300832743729194599324478453088354489414717323109954790871364594542170344200886113775250571074950637558517272328293306355282415069427767418172613093701692211470885333042012986211745429659797922344848015018750111513094927507833901391729254006550044764688925771772609790419971341871519803011775150995113574795549776236220811108348932170835147750456662333413386243247654556282012123818179926865833203962007298008921167803742594184171120692738742697778338049010353788873061543761375434865892492067412415127352342557955969918335207514554531378279321793572184519620432209583583062754017428507278904050406022679810092958450580190797009858965152189248305377904856095189182188634431674775783949041761023064877855838746771305393038082055043905643329747301302457503060690103536418938250671033296312270333485131293311768424120586295841529655388768392665248624942901821851374592749236640761531572300272216954379342538525695744536510990386074696674538531351509007055206732255340268306003057968401545532532313203582746933924488250768599557758003911773087597506018561775029147772629348224142203077344617696632036655328778303168573281136500938668627956273196584704150392477697447191858457575355065162578035521493174560536354726718809399892360929538492509972480197054500556656223548438019449889085306809024898989744755070938092585898699944985588703599502895058550629204951649941907405408301952068168382213070518551931706697083701842528370024297273986541365010046770687706098379622845254725628247738834209259841946796310750450082183326996660823196955807771638404834806517081711425493543194962703405232483060569539199291453760986723364304370929938525940399077072876127967794998170518290405671013682798148277827393625248844682000696433947198023807416798166337674487467893966943482756353564341049648619421231698775513548868392663274079014067472039416896724944310922524302729909841112131447978012993456382325120099761156513601187396883134049966090569191412513529834268244635506165534263867082921476295895125812117353138517800929430164964410833514713100917733939979091333384323874680745913197498853841252230196144149486053616846449118949412343743063917204538190832359838429351409424000556889095210316517743729825651386333182003434578024862523386190813049268380217313260378059944164224770478042614827048590132167405300990273384983318814324986961871335764951958267651660965896425809653022250229330804609778525820971211458982246899571750531647310022319337279131322153416963098815106361217003136322118082422411321608845749183339794753175891691441861536091141119588039516397023979062975821841555834459345445352371235667234591039442759676970308142099211749321529090404835915205853916432297579947646279839560798415725441175090722559964086882168287908094882023215984288933130912181518706404700296673934656362157543480362372237768887640516289061634794750940943868372890977677767154476281830218210298418320697879519794468671006623765935763572153802137792020045373368596413828559442959733243076566056137626447383694661958124088056389145293065418623211810939851190869609565868834231795382840568226654423878233960610416655506727786035244281064497016050056048076279962445195491721952449229925588877804289229249854450440130862412665890752458360069566828623267456106425882741643276109533329725096193011028091706303640337825671836841723695096655815311051146980225294633707120519767928455710109800253140017757488923686101412186322789938889226151053998978163274994969455165008519906142024756419069398853624205629314279676846961916280872784077633177849373348841968211651169617549663161253349487793301701156162904249457600142570771637230681445108451919165740400769236590954784448500095766114254247560823203491817712709890099128324252201117975201839507376043827115913662085602035644111944543449227024308930215954130144406181382742334729515114697400356719011769753309494001280843655013873073362133475930058021058905666452838444018338998588416506146768603729565060776186634004244415897922091282840243359460383979589598798160201847869065435324583794714106700900490071727958996347126803683191094782087849195317457686768858205146057161118980357660099945981245996480883922813244980240918474008154852531735509071898203220639096167199960098545132590090785667488231339480619513815649782572807393891571183379617095241223999405051852916322382553444473572802233763415140593972913831545499275693105046737226701038365927482536678516508025467223410444707932641955843901298720368872110535090585379754155941552028049550049754166321092897889873348208073808561079565698939150906997080265092452157421447393379283887686942255640490297106867926202675289654172827319501201013293473528033914146001489015101796751222360249541162920621873816448119846060783366132904523180238905127487911981246390355136194939826698285445169819441790382264904770063734149474677811430445757738106307147451561118635062293715220484851663203253036649956402521784679659908135189577859533470853638018267322433131738524307196834444210556707847813402084095997303848646439090686830201984064006166009172240847135348137360604229291084195495585533933723826714551730972525878225135329219949035158644204919963184017257158711704005958737314408135915578007047049960693239576594606295620597785866944091696240776417544484674992241281661731697112830643782467517540030310811478567543012289918393515338057389105060799900920534396059593385319903374732370815100339059936356712312083130958847042180721335000155388046488192688210300427171164719454152064242979591904659292593553465894670330652673889742813432263435804844246441146291359094806086342272642191142638862161192806037258687455905006537248701860589756230019981652938322746977832472037731967605477894334823500916592767749799829305643992636916808806926534262627434889871016151546548871150464657463504254743716669764883476151703933863318968865203033215486228607327349122126803955721565320413449551254056577009546706965611608682731157800975094462900641401709055559000315465374289340413604142242194607846398162789214894854591157463220036533088827656960959646890469385118754400334469335624778990417419568325432886417484450631426235587853486100058295221888314875140755249280150379910179195407502525749846832612364004087287706707607343718111360770097685521804584236740797702070137865281422826471176028060264959182889127589868744691225267693490312020269689316149581208481422439787585851749954329057908978952493234740871341595983321849436465906638829220480011937989201239946120374243806411099758400077321096462642454707222509910143492315291119779323971848810587696029471729345619743515704236507255925244800011175616403262597907712602263111799655023262107454624225367130928102297994683176941491122233179589757294555041902312261378844873309543006790456468248993834728696015482465005347602485067906637897120736287864456600107689691783097633320653583641178080906782591382001750377050314311697980066573520069975762128700299146025643189581188974062153192887036577612556790768284172152013330328508409940421768947083617356948997409384861408886959006333169739073738714879528385597557480081440978033145343858051617577110310694101889520004227581350761842786145009536043681275269305534859350672770120259534353046121854134868823218380296379908975512940629222884129814767662151307837156083740775482719985738769990862524121043058814888925790268752260133383830591843840287410292369619177787785141907390406351641266745776856831435699775573798094939171618648567470990339055348782882177984536113237393037311470285760001234922860840256559714975940496963489826646747504556207100010831504903117710017157057722573342017888470328875879403563448179294607922219811755566090777730053518415582234337007514267613748973974738488975713871728769487556505327619845482526546685209910581410149323734264505650256216520340247750401940926077011655489936924192021438043696008241075077804072585621929085890522634664859271859593197508075866622994513587590774725977618019687656471255041377428565362669913452188422757112615510849674324462746586670812466113846194943440045804401396663329771136503564608422308004664616379365152220920432472606511858547869936022882059942263009197547221058903389633428466685986724383477277916600378609167389450464125083747828478977033234536855804672497968513263918281435674962158509710959429344570087239858357710650481571284059296136155169076733758927559239294490295277202765573385612725787849841314171294395581404687412031960768718057584587702221909384697289587982097858910571755759413341416437031215671471208450540483622071897990792780398007408630085040282416939357677598915562833099174478114335282582490489763164366278054092956792254194252717102822924502327665087381944162024521836385449813207261331573294985281186356507552713672652064653620516739308648326201077053812007135414430810335067601917599221416553743944036793237377511636746989513196097778816675668848348752509189534348548486132565815246424778758368034776558748057970856766275744204436279533073231101881833806815799098641159253221328303491118857901499232079549179282551678569676126897341057246449146886709893576269513470549170572291605555419422240043364816237615070688594254348182110881055451964636847720703238023065366965452209689594491189266937199545590255262740139973898481289290494832444851927978586503765688711165060318568429477867816490757684443682352132106186359170926256062466571583809259969229585300204777084054393432416637033679692622058958718216110000287203029818302670109489735050788117845216275426999640179673841479144963597403348376157620923685600898452119822978215416921735192120008056706362180034915770864893263420780322582937928692164459092614623540991799509623150487601822570732671845199021816329489449072191832200115260487447307547640423560953401623978868205291997279703438447098260773373723985461075614445708558463457152245767614967643416483520061592662442432076840978784645669993717459026043097356678427444560283932007774453912423049034377996282666230884797062561717273624504629285325001185914341940905494257987315752890220207490094820382834142774647234318300571218400540671625617665602494056755671240934447515178710504897778618091221670857438984023526272984031325236664455965861412386963894094089759140375717005608880368882522579794025479720605056142867363927606746716635753960808807717417027163567025259965267046349719174854431652893450384411362319836253450185495837566236509980825608259168651346026880676664450712062659807616228747875674294413093611823056891774036889703400413634417464636787911799112588043738829137468353272016258597956308291094294423972816736809069503869014742041157749996610124835612832915827472672422169620758868707561068041518298809008154175598184960884163878572238535314884144067129670355293705401289946943047718575678510805400654723076355986870056667572427335893976013782151553197371543246357344890298336061804890880107469093821709365299922082144936378240461644317012138295027821284556650447605843088678215371018059010441606522355117758516792995072537309837809245789343862111586604695352569505824365717588692422654481986839939399401685304843859360117466524499508554412527762750549468931339340275696006902464602995266326383344977667310691245907775700964658038429370939694065681710881241513782313519300270491889555634091849660628319137779913134943463956738143535761786514038658078445405812065597449846979268875125063731762156047411844730634207874926059120907469653635471049261413014403785649730982318214124770465957722942666258417172836895248993747899675721603631140866172479456657459823735812444246469161173381468167910917972980768234431517455927493144364670999748423770279063156365507983488358807003871319824778631403145022488282679477794986536519219326299919631901757611525036776424874241850398615665488272092798929271400414954823325225653763167175650870184229846827904820792043338451345733250435876061294082958465781239809917792240407452470883741246539968030183166310212957048264922641487739700577119882972102750656732985289514444585978351976568520362044412756364748468452522481240991122345862054311940391524906526215011936196442338572276248410548773246362528827451350357885017635664983108652392884672318220570971699449590624061915862475116681746766362348734530029510008604950208672336454797802529452181906773602739321407798964808346192964682026210303368641049064035881490718135566971440915568086647224512384132933035225958713940798670362521377379677689067120280301588617612379662724893275375616914968453585309366030303214188337096046323694627879270724288314059450794429264308057077236724822246441064876516747290775914757141748299472373538576728501481650554289696497237274045190677026067011161999824401351892722745830554900028369726188557116380830036599827985335406197546457318164273461489822172656013356883146221703403717045719697948931190501122375449186541110508322571651166653132916875500873140347911110197771320864616394694288558879850194121298714822454112196341021504494388246804615955042080170203080751494006879759989401967951655594067869371510289745105515407106060994672663796370119276965308345010258781632497176372625135361337878687778958675196812596289954636799669464801377782548441569673397366773259848705694994867303461701309707502306259197722330350547351915320165272187056322681409186925024493086473832753315005175483938976760521273678457026367225166338495949542888225988803593828331536497133600383514412925396478239753964665970569684253224417059396096355256622272221233080038448344869117575485520983463661529175684521618159008153954199554387295534881700117795938547454391031654824183618039341721697481191825999446135297520342894386089403744625008917599046095762666229101967704825370615456184849387703607165966932763803873002462675959968154272880204678979702839118329402878167738591012313002670074687218342062590746554165070021135391179640122327023319921230448151567438801289087883703741452396306101584694452236603038845350877497354667797046533246612567397027340551594138664879209905216216282931810789137243299297456444468731689993639574728573241288972913229153862884193377028441750079982534633951474097505585612401154984194777497836767441339906047169510685756424400330559902920169154672625675594775674814858874685986631912831275444126187775031394031690352347985434203435746566660768917099798117081856515685486153256577396189293110711335854162796408962355022318917009204337001627667343236544611994957648631805317613493346887946316871289894809853912106718982440395201742414315726035526386408510887238945475642130102715384135409623434058353114741577020741893225180100150197959049249141141871245676248048802838424810256318223161308420065428081571397517505840746546996215370734731181529339040946760104465773885252986240996887806654978917306907890863148915763535804557073119738700715291853289806445987095344325450453925114842129540175488617070543434497336979687558754131785897015630942007164844027761753008297618971124323601868486220663513473886642069428792119233840237579941765716538421161198598567293577462910875030010994117644172972860253693287533973551374130411797688684282497165908403160880083205926467090017206258523212419176273626080445044219234545290305215551984979078793183815469563755740627560592230870234523772060367501067476665695037600293301125931781753061543632002357823578803723237184818153516029373546574796468921032094219306406451134525440546313384376623435695100056352252366537283760323970767494449833567913342429449388643687904846138341614167441067474068466765027938545919944337291266408047167558483841965502879567560488077224459255638474530667444789981725617586815905888471201784861944517971712346185324221697970787381511297095567499602101836683954978940771218300416472060187655817707369119684646982728639894122126362872196715607005324120136417162593451326930202787359096942900084764861756925851192867088959810641724749440594437831878094287792345863891997468568373176688704400942228177372442794888160085390805359748258298908344320559547741588426236029726573250728681675554581485936723325612507952200168497342750118673170336706144517971670668847368048683791898626237967581627699036780725563014793212082482402313916546381287824824381795051513356898804305255867758063842330043129367467523035416078717019651577032621318376312155770944787925100899283823065851762631637096174472325595668407672125036255789971103571627851749929781966827218397822089444713676856711063836940854833459078937905445140803340769472564391639983026942289870443168600037416393479069125325571614390267664983989615767865713567438621836446461520143788958735896746781406839381044334375071350616167783963627871097386935631208844949367819684949087198570476956727297469353600177183731644509064561123211230682929428053606151197768921462703788451117277839040354958087484154075155406252816382812261448743500013030802398047990713614812952850319573341174266956281020716856737041374596155788791533795280058850038723468083923806860269364135537791454184845678671913643404248599690413413964954045339471191975908627980292251850013996868847184699295869934795033052731604052419772932521566445792113793959397606869284218555249652706032849585193231501733442633605137259889004325623113254606240746900441435206055967219992666610742915852922922864097420457639662784914559984267369641229941086397784525716457012765021666381259969429109127342692910697826211376533111875243454510245149734596383710792323319847065908417369038196034529037509690364661327555502308296789425726460165235239459144422358118729687627839492105334762358930053579019410772489481817941292480380034633604729738476371716005832185297383143961203348496716279095313591711471694678327334096593823256310708443920012470074464587796944968811296219472786848403515269827271093881001770597146580656069207167526384328810320378987929463525289386760418290458085189440107171250150625210657130683098865437283035116191653215013813831065294723074234870779794715205766045592460651289935843956901106015651186616276714972238372303906594999742101475224222121319350912335088474312530980940479702134306663503732892637921819745028301280799801646990514767465668617789707019742723213568169118072424527846446205988568859216010507932094596637786825199870688271652560390814819535386702061762252744692417697847582329021693035920751283311059971882742272829299191163433423574762419876935272106346130922136357418575091145382551559144869411923828065318657595929889403466541802893117509069427578259802299886025332124513856466375819206756882756138557701666173085046322431971909689618461078942692699901278865424503974760660859185533671437676551206034114051962596732032976602961033422225673306759170326630461163842484788302532907631192259157635957744875811889481972107951602506608047460253418516257143695363837538667702378940106269841587041829574627041226549659501853982276286909025275979175805829298112442535143360565209023625450898343527129348275086041348251997627601298273176734007500543434911755390983457176400281876539326915396658120610759476283015769800661125379482307051967667098124752961147839051168571548029895326607354284391126780668018932953431017035741722377120289608853528077590138429185290878050750713366110518661797935604276172905426635487832012459947567761175476164550840722898387672861923645667026559180504451887465595769398698354910921566469198582641105756355122703343093597395459639417386696193985972237724610158844220948558646899070742722606822886146087797835459430478252431947837952174677280650385583876892785350145488138278319809657253111929651898383389140889436397431511065906864711521863081759714040730482366293748194416643663373282366924113713669976052739962082745833694910068900365987124265133364427498813512361146175727128174790899218286477993704821186646978770793417917974468692901219658433461528250586162169776404743760890155171341776134633361722224577141241843292642792551116492036729724360499599393501764448992005161833175748003917474695137822485198216501701391720330216008618416268752188806733337416377701585333405194682979264114509774509996274447704840299078743989039915051833897610144523922853571747381644242763902607832808499139549459117583635108393698809404604023357007189466881596209534598959975946490521632315466667818461431794783396914921367325633239826273535508083197305113969974160394082587537402006574454250944095339708574005857418073862812606130410865017275036388675021244041810423124885437569017678683191445533289218897798931168164291153819273334917521563837864452510540790491076699542097419828344295003876764310329376056574379988989777686929525087768801632801307067075172764811576685545790768977099001988246987483839057250897802669569572317296125387478088716718488133654366140836894602906222033483625025101241424313588837447623542747812647388498520957197991382469364410688690699827954198224929156786844335283184320526350074923431510308642705211022868904978388183609687485100294073151429129944813674802972161943924336272430593972313785007253894340385624059564672002407876491105161489516680524585756704705946716031207138299093354784119670434045194310638015652076921513983329577243155312887608233812544546463510905926193374430109976389510629437960235540977310245955182307125867353693371737934752653839554727742617482721408871172849732205838860623138736292086448585169814079542865283644311893413514402222559859514180741874469410190303330104612515400273213293842379695245365376871842195080756980505254799396481192840734578533915896568938747340020830663731320133545440583613363429958284859354771965911060798831772327549510221717577313404319543087229733372751047121279068002009499525628919182550418082029580309687678050681292173384687799238037658789158374776872779656313721806075974103372220945515776055382501956589382461404213757153186901701523241609967642416145151629102645023526468141865381493004610660031089446641242059613931565910077026951769746833678261444504727357354573858185473713978811502936332187442518145923937969468384941378846833622193277321552390431571395879058750223459667268940188270492901117166492857215293398838473752341855766497432099643693248182828269890453198672164657466803338972570851494120143174242159046862591466138028196768690869618201780321039788410408613475453649446521145086480704166139160143913406557495315037350978189468107830598948242484415862555644388464099373373790186066813948206787097200487755403185163829636326475078637671171214884880052060079097755264456117929255418959857364705482305864877859794257153051542607451030758052586168536457441458447870995283231612937860697903952132060305390058998431682392671457143525727566324971081368580739175946663457360771667731787354844843660316677753391578572608851701404196499028501867397803526718283430180530776068678528739629392901782091960681978444777815415956371267430682263635976696558371265179689389368763359746425415107950869343841290174622154233324284124554815356922212698928358391270616624300836227581450775821858539446163348688485465496483716231120179616413485805671384030070272876978105188165657783673955364324967646375295653173257338213518570528337925457337902731933725510731905149071125593775007542970847420557165212338433063262912669242662228022754801364014489974545821616478166580885797819758590415381524206621196557721107870587742901674701996023363508936925866621227470054099717796007384005643916906616672182623897987319180763828360029356135986279650457867655062080388439623244952311444328871348451357865557888572591870221356831523090963272949528196014311059883546866493831566291412327054194907391707770105383687800373555928799207916985883155945345225209138276772243957178447432735787842504735649294446843691908267224432771157783085882788843896372818646584026822999424401230368417379950870826618192623566915477009711119970214922661720507335568826177556411001563973690271587901787887901919401361498985102875414775372674103625377362133447638324343055775437341401482528274048613668018786598481074096243626672262919022827828593208937322143065328289413753481285731298529072772298050518871399516890074294490952026601611393694214509151091928917834084071748856119238940468727196941608519316567011908237157759936108495426091367168429928239321397388285814431723807249533835966767817261102373416243883715763394150283868410848248917382898127216074437750112878944225997833503024131570450540076238627532834091942797862598035801495017956035855302068476013444559265598072575111203130845305805689789253313229138630243381257390438720010517163729713461487646433496549345002809830618796613682702791875708490678260319410630477287268867925118945241666473299422517729695919440717013643882493430068768211520779772121346495710463578336288767393866348992290831523733935597696789059422359787746340203542137965205216731316851021024142464482278612673079214426637278891980936082953629402230775240793960211873967578908303530577988651005463947361084948536292417199429532236705954683903705174407505446193108279326564237345275309670583149568716211704997429145294702067725779294611899077088664819047685782610078700913692230880566787619607789958169165115484176993882882335284771332307402765424641387356148872800618646053106911904638815255054240539094340755837175392038616127705966543471565321294675495437225527585729014524999128003411938908935986353969163501665908397088804538917532510910573890916718208865880159316448250652118369021167029171889535031682649425253379653938968187060350974862068242841609597711293234592911172981806297856396068204593372740070876081465518580996190758306041425347752535878535167288173030272421936709298912220782700250321362620992173081025190588691719711266531030053270679213428580888655461696121911547744736894635569744810850627065332570610646769168939580662815262420907747245780909232932633285776097659775271494892829360910221383984640835599479976543339244289701523439034945751175337703335089606616261044181888075779238566762313220590076297150203742135118715087205814814950277798020729851112284477553468731238066893960322618934955059178885543015468374193057923185681475308590915217430748317358791638598358554007831205024474011568605675502248266169420066310889793763393887661861555147812523559965248432630433332067299126552838521736077695042495378632292467011016116544293481741466667389173326072084611530622322020646694070197623005410390403976020319484280803390659836633032396618194312739129185602692655953604425982873280553181014155153685677713286220377926767291561995512431193315106707960007135593388104862999164272502952009940187382337126057890386193614577347577904370497544475096297799395320021834201205371820178896616796866969508940768996653129680908711774108973220632139707385735182444841770740823418602949272858580876046819789114125574108978715711100817452134673484515662310681440719626571922016706141857691375968032682197669427165205509767427385558679379616676644487472528949025720849626337281118929643821144616326580414648776209756574932611590097948578974107300024205546116364112266342087706388560349145705003467353276046762387420090202983033587699625376359100449311603133488812058786960142177763455812745333287265196521895308153085964114539769321086825609784796444027249760800097070856697939518033025770394316572787306471402869813478664022115150711958191294086639113500777232870518314045186234302023358156244065794218621405540816332316726892862655464396819519879595259404903398746306430080106227530227149288677867980906673858517478307159703677475416067199893950933091892103394178478438239116168992539787459545510057030312226706486882254714210027939060570622791956659801716871431931085101272241571211440719319411703541931231479447777981743623543809722458097169703803910360932738942968574535115516472385367508242985958465221257291618872929124043879869569619208596230228256867464285653449924152183369033852885236325980614534341821261780007731932732289805294566370037234222962110389202645315823430629186875188175108484120458855950035095572566650129010248704039541858755255479393805620746685508797880350169801733745516321663623312423050905196042501653875507106026334244231746786004920555635083094660610430898547514867728992136310745719388163112697852299828377165166513353130209245163639952544648503511262979954077627180581141856517256627649581431897779972196507580051236336111262018285736675756415958994591326625015051030905349145377861678197432047659343009317808433873505906375918560857237111274707386398898590552472590059915087982125670039871711891566738348911735386769330189036195162796798507013450549605864537811200075566030088803179648860462392079445904976739872987895013316681767771158515841935154151442022281627735291287729753304836029138837758356990094544397818590229853667786267123572459305180772992105911218717439187611056293464966594354591099071390149479374430871281574574557458920916837943527011411682204474211724805973607075840647925498474584144896647708221676771665191231359669522570009331725289536888219809526649370404004719965613444550756866141713552480144527220853102313071457722143930537867490641583010917512760387111284768131109417913581290503729177688266523031624761009644344701411503991761117742778001483549147330083541353018805156506329106679432121806204412804315156614938707385077335614540543609351084434838015088724893079043455994356221157226861229732692008642116662997437808869070472175447301414344815428321005727423934087977936036941466786886443079053430582990461876974384338299277294657785868079982713825441912662752779464310251021575612392936504556456668794908901172198891328003494169494819670632951435651649429038616047367851389205352774432692012155402384071776237054146655330828759849754915784370426897914168833455323177759100074746251964356219270116181973173679816295238638628758317119586181518835727095979865122807270636414884449646481637454524918143151549716256345276899734235280585098636021431969617490166229698039979788754361225618618920278492557432151411137531565385923788897715631141609022303287799241502037144811792409769633587177761461640934479416691836843519994434065414452679461165171390874391750635144750765001575783557699830229550045226442574265566232956579703783442184793648620586159769963317316649692944358334882547802317018425898941808219351146407183246620028728269992368208683743642481537168332447405570239835804450863831314186654120204478041361900527508921035749796298416858140085229542137883926628847473792058510474765314076681203639039171128509420815606237966484997168905859690124091888278994276651861187031559058197125396370084028960250116180534627580383611059230736666190618614420833575518215177950434019815972705241159378059246752099305560054256160462646702518272867538657519551085997585320153887655021259945421909048045936415934475602044917372983986404234223796847188533813805736128103974707942512277019536653049305904591418370767813644766760854499546823017043632141588470204002224252302336112213186815669908487512972451029212222081101436774851996617330668373010717019159374492314211411216885252049120122723518845988843249026770787513672111605855144009081761364927904622389902463657648494089058301769659756300151297855068747564830070087787938289910964479463673882018326318101609268007354627479667532415199916265518663682409349219208419173776085517340637607440262612533134538119921777476645519173234203582052686221581702576527089506024301295456387551636345643649576081877069624135928720779981110777530442902021661802717729772700727656856864417396018572389442965016463811620293519624460100494690673932648149885379243881824523601944728499930805380702531747655198817872602853812181474431201078172725022387626340724199373751595479948577625957132317563738434618675512467475602931913813013368522872582666555974872928784977468355320351597592603690376177666447683942452354752198463676730181601867858589338908160106660913201923872472065568601152635429618171343164214943810724886035910771366049021453027401758896110597886901961829991944730166637850327981183590773690286679091325409143146633967691629911761747071052329567235599094804271599970172054321586530989670460589368578173878627567110895540917968758851539196494350907006664322481737849497495720129284893548722740239761393776253450492868685043013492660615736393948090331030086530934146570928919247343748668055355203909374273992324338893116070335938701654678863840573764246306502916266878668881411607873479188329214481923064586919304896448136796956676795231028318551254377131195044701474097225558271735535292688669856483818997400770967129286656784424991017875857084357371170528184968046584246955474852785659113152723415017888307124849562313016644119943728001238537598663370294861270044247518465402450884884239971721429340351962848628361419296694790306712790273271202086700220148257139289792433653798283849864767722339057415528060398012030060322552683847833307583151620704277217544310362473220417490367111998114415430330281676259477004162198456317963119750644074646404069239958966654653920932849028430616701202947278671051220161206791754346447770286545377048516344638686142671924681622431581490366392828935381114391675207351688930856965488431403370544406933274498594474047782569290914098714679869828883270275047005866400049531829850396065768828764217235276996244637614056625371963856141599029320957209657389926927473732899265048034390786715883678149418470313523619088260070220346930968944644411214925536883476901190264990917045661793765498274550254893713925129019069347602344948399393258209520423741014276256361942794514637062538403626261891525869347023779047144492789534013018515805110426899979409143030701911441990583685537527068715559785306063387967602188743044826186496181440269249267814591603551695287383357871098004452778837653932240620255212795734378665397758637457035351335762502753833377233071602995379184109145228999068045958967096876387937039512591604557748656237468480447348913886747091175905928630125555320033743083931680303833625026195603318072490769301547079078184728736801251720907576318371993589805728452944262863324353741466070687425364075349621123602289507708922298672555701487389028095350624520412221755891605206915248367284171907612641270309840908629780824665073033438095279544258737539732325672564283640615690879009213513846464543560226055860590627934889754314923255967557221036898152302794422432781961484231217097820718376664366559597758899993230665383949000143055250237861802000475626474808403410358879555441641092331077028305384764225161299689577736675348153878844761704468174420573185357010507628560855273959094229085371243140982718558944111282651988992084980985502374001434106083246426237503290765882134502481437909298358015058726021044687596578793333109943755449811249498534006964323603066336333071850857759165246267829575966240988382007878621389249374292187718350677710508501353466387630577402797068218156210028256750045159520689338297250881133070616833338261712692062210826360338712593669312744654684243590747133241876736690771752743635940940506249967990542153805567741445118815882889767132300986272198466521874877173201518719860927926644106728818474001605349047367451514069131703477576385906894668559640689279455908472764097267061784332255045279560446655295610643995770844341980514231543494044100340768297268370782258254488465118467352044951388497873884226888727456703407150972545511395277623861856126835453085264892114429722044422301489787340343501050320803664433514106681071984563756845830797570340143304575877583031797860743789346158588969806989663204868779192888876735824077745749441952137970036811492514209106419168164117481508815255548083570685578525637549032696001962310985658427120349571166188726968161796510342578251580243992646677132113474921047957267678845205622654114528644006193990218384206085210827457059325557293583825377928183608689576571267083992645468188406083527427848072785589441508245606456904230176469967555772068103878264972812168540183339038177303311301821444376286396579734624202533111973491413294418224007774143469846090172345574330328631761371864055814839571662436301801678676437662125531837898393311593117847122088690263982774162977687793783203865525034549898795281213407038979015269168974977919839504645093300232715762798590653234805083954170575585935562738313042247470695081511272783151750410633576456401474640226783136041221069761345538502840224889692600584468489400796984355381790724662995370701862416776794725910036382214650725343944914445970839176253054163330868192249580733414147153380098290769948438919074630273350560412856140045342331832553044004323723458981365932688095584071153132367503940179574780694547558314663449515750276571026896740350722297851907465045750083166885905820131002769125053948647817322821814095683241357984685733727288251468390585493387622003290489302903332547451391770346552697126834370474546631207545257686797994538810916655617793371519895077528506091374616788155559276623247722812342797894166202374467878632252372977662203979910316794730357180404288108695973052094644080077016367764363198933715821024488292454897172459586656524791544380042857139847770682277701675405899528796188861736199554333947040189926078333532640016704751670278754013110886266432861677537537416623636363595823163261343293163184211466536483919049607819749642370845160254250977342676413779852314793355616131765637622087629277936926079978106303234670180163291853396810238647547874136870991631647338897428340383968197577958682773907197380067091209519163783633994947647552576581860913674117632422372174742079585571586365134592159161895146971568586909430927987266283452167007074898598286524625251680478712137144297133389807852540874847080393945828020717198302179518744199555370138286354072800799608604887567602503372619109070835732632146044731528666508065339862042060678063521260216215069206042002440621292865625144962848067480158974371443134876987165836824329851587244078686593045812150165884794658219866699902890965230072249732209137551368888301054917728504336854059205991201225580859631376169523877207298389107399542424320331336001714933409023255020641682726918040339727386795423767308626962145326825265279769293153401965867297984334510654858051610905796343507957956860300669828306606035770925491407323411860621287436894363961164642997306827264299706013243826956456089839560777994217717668752780843108634477620431723544397630658501699279581432578323816509925810425611430349171620625649266795280244857372679084012118753198085135427040335755478434415867785808305267404148548446198223966655372982404766222668136630709828773767534890237493752932538956198720299997802493899690663132507101713519030105871388058847342504825973776999395637145844971903996731901228846931127635869455702834438088224519262197945558137135823504559914444047907810475946164792354585767372486020214634791826782443877440689024186115923897021362923386826663833404534120349270684661551931480892198209686831710487409483539572492711490891924765283613649849648062345735138694166964679648718958785681276194478177537260176227214140422391431871436273163996872142030346020286527521787731652534109888140213836155562440869720690251610197009444412808936567219211195892900776079746245566748485186797332915303490687497711675157213290075780733509339619106420888005728948909632958662735916581849517171243776667523416933158209861604060135208270672967689662783431527320082234192915096443498863814577124617636237717078072774706373578868302040076430799291449144208600385951375864791464788412610403102537722486293101474038679029684848483011933310367492691356954921830997452772857118438923575302643755461330135789481896848589765078021709354723353816941514306241669203909980172615504549440243647216293099424954113409119673670954794121242953674552480347974799243294050484588670951619922706693977047802964390140252216671475920097111861931330589634632631448761100510656507165722324722662986225487405972230828314414551531214276580995997007640452525844597290777165798392127991351780499820688316360575684924920309428609410441539270530873280907696844215881228714441655444713026572728607311745461404809873391464232522731063983439944438832035800706832630238291754003955911942869456212090254987616667835118354249227633755015043760292300377934360925222259901584245271204064362643788387642063968309456572865672238036881513275129256891676535302573586637885127791993762624622387321239783882849796209528049303745383557922096612146706436362873931093462157913615431850876365223401867797298525472090474154048816743232826962011902516984693641503697395932035709780739381552884965495989972538654273228765952504435081202051710071057639414336111195669353250962211328782591614132749748095855980370843080207582036082918255464352560507829657354043232740041364801858596086297205491778867894887852569635093015612236584917197092844261392651402652991901213275438524381872483644454697605174078906294467931022528156038136434259154892050156482229465717470989700996596540370673703818387517570300508939819174458611492972127918573177044351165326896826422257734920684939433832806453832978207309918753958738096048661054040226856088163478415124553421124996550853219091608861929820098146198039200342336388147531236574321242673135676655620412526247439138452516697007929036294764153344262219180080368383866041952324221927940960968615444800931867692553781201397689013986953335635481396227444836557841191551672337835711374394381788740961694067433587955709480285559430325563657624650328305804686569377319717100344967845384397502108836109821488933250386360476236123382203085037629093858268858221850060190668378893800976433307839607047454734640801853238829417327307503564389516112801929931735786145900503909179715395995288783953905378388594866263129714937396523630250246817135662998338475896471519972411247948757936425008208776765417173628897514317115491829612939397928218555866621031178302808669524454908707012916455635921456450192150588738276947615918190027846754412433914823700318028183013991145409397150943762135013630131410127058562998349590540716437383020701537693562382355676987245676980189246607328665931015838154327466204385728450546123683500259710042216659346296782114032793213129017567588093045044347671023601649489624523609711567251435851335587918072692008808533230645961871808254098018185157980455482375856225652940651404977812016388518922519645871025373859775203899547354779172313765242738874966170575862229362852018127096155304838976632516116421128247254939062274051123391040675904149627737891440988154929414599972800513770689194692533871994025524727775420304627079288902276248194110953280839583082555410222966159371862564081693372381779219146622873078088438434594735706809993868610516891584000661625912546284950370840288148524459909984405692098153798280350685233517709060207747324725760273259437899197908558829674623427320589005429647266724729718273639436847916577136725407097208159129349477668139617498640154695443844845273311090842932391376362440185476401456134591114777562181985805336269261274494041031599868826919790563238518839712986101412274073261167257209836178041574183004321901874468771314829891039559818033501553806377049423168648777810272314708880341356783554700708678474467705818397738688466411842641380186831672210167194824323217440188311441227482140234104751914213352304747540125909617455907759758418440422618151112939471214259878358010894227144844413351479734009907466401102124942676511831107330837206579377035045099878218608586399377194402357786640404716011989415677551161399336887914034733357578669031973849210906026305407046358753489842506183359571647736293939436059433369665913942384147056510590370769289787831305507511407289388107006298642791978663913970682072400879633776153820078308750407781746253593548243126545554998770874281629113744131927550474398588497417976428486907871728676472523936982477564361463332993209646716110507175941273200138519949265852179117551728714891146725954604555283098250912028867025495301751539439092328233952544155029357789373537645300928593382200150304559612989827522337271222294627556795393636408731128086045628746284576750295645446029482963415598624071894266278615897493970399548125608388142476461596284879446342663094342056002220764197323011054178171217538700059763517648648625983653156061716658704070378084581950259710297496105946866090590419280069330968969883286035626489778374477900358188091602024271438152721113898377581798812226133170408352187465549068231463230299983978953372797670597055261224135609462204297440706222212766631541456202583878629994470489115826451006573555300511089641421016754375990863392592882802081312675031521534349789623927118805122852299224927702086862097452211080281979588280456713926014963479390369580355324786499052330416793108595426365852932817467268797935985001104957849670341912815212623794536822010007257192671410744753717195224484432852347454995450322503725679853797430991235026550674245912145435116186887150772029940621682065831609659346181422813926657646310031559880469008141747078879577860281321572337383247052408369188983927146482131237211672619656207235603164805566589245644002031951750309406800634782621839252041678235090076137978677343989696695618095511808191984671133400031478670650285398135580109388255607236259506228343589116685669268878413566046197648013666155629519279881051819500210554863467114307745368763478047131734596882402556461847611512428981875040110638907873743998148947203359861331870710789845545530870731971220575893015082849334304830545152167198902784359920111251001897603192719037796186419557925304510265118627192684071878501809155226280620149149298144306073451581137309073050990371846978105304277054137479266313522627571659894043264138900955536504000566639049506553518200929127553968442399536376205309500315244519701642793937673579683584299812848763372332728732999997330662149571170886572737900647010430960212784174173325421562510699251762757373411542304770394351842832321280082237437806011618229953441011064480797424614180493686943034176118931791881002157680020837387908770470198453714565991160557392153613056041329423725345792917165230031773750270735405193953965410622505025642888086743753597607086676303203386069262521054756304164472203488747393340886957955763716855237519250524733517528179295522035444854431626915108416846238152081884076100198494923977541150531559772316880175632900902909601385320679019543330217877087027651890167059356334495183879850719307830057519904144540233656767876166398478759534158525350011020443600824085692245210669183710715763192018051052078740978502965955249213459791968627229079140527532628723354341649015246557342023453158294529739524143775161419972374964068274570633777839081544468094761278854903365230099757281870813493165276719285806343563410507550367412464947286177096511674131394859338580558180685628185877770622199365700711150413995804032244585453557856859048070407376602197493536161164119952654245295437290282001805957292837981740576847200622309476292914014187265933542912271726033424819279262564340908592691505992262989672687998925889470751501124732479221916098248221809034132000711834298398934418844733026461724231695064179123738634585046214782160180938351574526840437226590147404165165344114178273100663497379060231718955020756682831924169137453714575808813232528966938359909917024109634713259677575990752408197369371403796750729188434141377522944207894608110433673415892233094754126532772428286639696836110533111234872768706458977560853809254712685055299653577204656146426504260671690135297996860340406410956061233728071695441466100898161829708266772688313054136973762537208390250288564348304954837333724185384959395092072985801654577279138310451832658226770472558202023450830327928718911444999410202439756483681373695569156769601860270084628398429764669062134536676413164697650730238991090227088583895837744346615892500633974766750599661191318488600273446986495877994898598958765365841587235574073401081921001398707793746253188044651584223947728608234903286358128837794606155249134366946753107618862466821975852999526791642848211618008993870884991882934538120882241505848344315381345072178617831414200181582031158133284973301777639567996201082447700707331670216385444490317157584110953959119650122731094979252472384250597985500589931980922291501747929685590468991120268258355407550298251337391479424853191713026497998437041403935130319997165628700248363422008331096295013873899408834069864181418593860518318644114961064641273921593593210459601956642970331080335987694392761825723934716247279630458755590235917308358279356927336328228852273134166285611205570242062115667731961936694101704220832835282396745763437801289334758486092334314423463346031757132212690057347713421428461319767612608298089073928829706620918037617665243751517711540853831333903512042601893498594446333717037489613971557537002306515348692859038890091693727808176422473582301337720753254655405009748713966709858018901365961382480320941338033545037281284592677441485281861455509569785966864179211968978839841967067377709899809276189320437054815263078837948094748185040467877430880543373806524555986595951701383997111490010477894056993625346518923387266199146258454394877133269050566857946096746094716775506861282273829195483634784970729061221566370976879549240885358436574376367272940814551428058487971842883404358812481559871204658782856009282177604970555876825839165734088653180252892364508613798796026399078016102552343095630086358880732339733201218275385611679887733469211695129901253511978026469083004311727328652000973892043420423786541373174546006567996069828860182100887912801444041570463663294567613662791731319322079438786221583403406079170394106411316538827085127050888625526885069394321282402812579977979509755360796011660197183837951999651631909059190628015115432114672720180613340131110587439621503970206372475848918085019274889131975981503680435567377734401471936786655358866641038424110479012764172550411628829847770435123651281831869040000121943921131472640335457720440197237636163039609350597900920994845868175807183643291114989746254796201028421427311004530313147953487734289013034245596008823440232298465219529450063017583367116463577383657111742217334379528018697225107220999149439118436213100890062311469425066747699530106497884998770882737524713869847858836898803658452192498129527109568033640735735892081587746618472014688936125805944756020911635269210287573230026311875529859497615607257126363350601698914407701152746479267085621820108342858091103896081983102350283075877272250640700694113361014576325552888411478870861843264459697804223167486863967377590804689207480487864093208388574312458941565789350486398140307316306644315709686478527328203421154465192687655883115127700910215543496176227847871482377887225489863213654790632011504283555286637239517098023444087064627144805162617487409058246842973325236451446687855454336364132694123179189427344168568274035671168381014364701284017101589335599680444645426440307814520848112652456240317597465683422392582172896537527205043888236931991480360010590786782482351222180040485627326097945335907579603275579256817185426765551383124412520202071535042901900782881138810373600803262677298064101182522166179304353635189119420814836989482375960830405165514436818981678933828060440158801925044418718686940497618010703264112353535073187527085188900493826730538277072759467505974120219549295940891179344689336855571871244863641798934101397925506382565549044786836233646950712870139204407661250021268351418959119863323138867348732580609205423682123102413316177947107736941912159852346061723206077024880352423177209680188302955732876736667904648067110534764403548963685149546308710950784526810536855569125633854003698569921372499559108738531550325113800563149444255441042780586939243953136488693838703789992620275950956896631779267395207092598396630863168262541636013979254228920678102672594022970333926826690478524536344939139942480838250464319020092206348051553178820843196044223045179021386680624339351665127843203777832419213054411154534162382835641363531528965324497384023625617925720106816752868998119412541292604134738771041590535546317515401685070232245510457964389357079434467081657351228921049242939409065167031767474552608945171817711365028806496999746905986508073620127454509909944438882694752879745568797168546696262815495621443618527165603731078014305359179881566017850553265691394921181158230985321450593114784061544970403450901464113157479521367553691560871640849346462420015189039767397072608902564069141856827925676593849340307016775944653116471137544144006751260547431001232821441747271668202700600291848921485991456049088725987245509292545907684235250850633525792727546697037622437320594029100129605365906242232279014541123113614603293368951733278525342266927009063343881516446893841896287250231536899493627961626454231640118202684191337922551959141881231148116794077295432525316771193933557948632991719874925205908974681917746691269544199515693406495958886468598372254131964076808237427869364894246168960699722938391824530664880469551908871629420892172788845733146066658761091470402735064267101404370109432814905948815254803275703299086795419123560979222073130035336417458289090877193552893860444869604888615828728163079816016686644775182557155236824819226967493039967325211957758173656224676188833954387273882401210100000839764250087999292954742961438887172184443007058884325272695856601306471189358187835688307810696066129892252514516315263698065156369924894876095689794048307429508511924544068973911993303394966725257781751751853212050388170308246209245409534474750475522437583020704920291325549292074898221048607309469157916881313852198891340774408371857365817312786642749684865122318306470158937642231353443178506287232553921698290729587724301241350905882627895755920362539418241412312269349400965909149576779837851080493027911158533171636443286043336496232776626688856824129906004433073389854747975107933627698586304573154633286076984748298060648148535316588969674763396687018751476599623693809190420850282976779160550539224962718337129960748610310470057579272206263937329303165783195387739368173749196800038510880526682222405935652101481428220323196114468313891024162752298002435939197788848949575400328406134036927782860110377311842334617361478517091325902905173599050659049225607911015798141725382149434171765338908256926027443438224106433193970751032367248065893123867028466763086680524262201984867510201230989272417306043857525757493484803383164535349101163781724619818461472019626642932709460420992368190194429141530233535550046525461177747405706745037185632297287005760128342281791263519850604218007119516906453133100374731822341615737357253283438553790440751782505124331532582896528023392847097795466417191508312844707445364682224560539108956489815964472530552820250435569133464207127908576564430993307557242132834641316871889215125300137543677016962378279103725047392705930227300665310302014039981365424399694961646278030497822179629981855454088268969750048916370049159685206693854142694885550046779341013448495484526667707367385344905563579887875208559736074263693072962268057135840154241792753301011857882900651450985236301439306371141200502257743277093305388283363607687733174465706692941434521821818075318668546704363411958018171365308755129842576000004193650034623942519263381886983763482179364867590863007041061930831507735540222515701284018674832297841284483406361944373904190504585436233404627540433330235026128770708607964108107382267699972457357771905576450588086676794692914457611262048051691944090044728186832388425198312148001270174700091586363038074828904577059722039431578355267771053820552977280111549161126069421213800018505333924174545362576075552031326399023528376996265593639209964958963392437532669913542184393601650834306499492346397366179841259229478552696120374106078820970798592747573745600695922275899876221330586187438928833283539556780218024981198677180292084985980578371860470585911163899472862081783371621887934333392973430537821335361252470154894968394165089704007948476863893932833867530862699374611594413779967677021108533926851281336660802559006965771584209546699609284960129134693555848359489431580826245341529541087084796854555591825506876103002154643681668156535359206740017829503849882724647950143389569097318972220268447610503495974073715741980167741621322147754473510054172867587171102404611790904693589987754633269046640943729546086841264050987695451422123469228686876805190131623934589942081324562486358322451515454510877304751520691467774940784013537936287940999352176746462124137431126629648763895540708416169360725660108368480124162405530786431710631807576088587537728197637427751108660589578050064017994250453400457148915870120110748224101124554169195194135051662439630061812758531498892955076429642221713527336271414550836264684349635824957690921418613132871403547112009349117512959921818129504144052436479226822814156337349519389589527730539835345694948752476098587236739781500753892609315637303641658369693930022195033332571559476844409763450479266517388354109821421549065981328883186912359037165376381968862199624473265408665018776518568141973652019475861279805763929102412755765576707118251423217879153857147876873939956537600575111966696415433048675262996594311387866689639769205020632901772766515899132700255125285859102046373012533630243937323839245408862445365024419134741145889456365696981069086415250986137570852139771507491340068931580512282591131435624345634678219173137502186235326791448248843794674027179582295292738238436994496320489953866705792448120791360140432776914827551308329090957170571140651215323990613865114788660059082466243727793936123935720725058386162475720863824103462379541138013697263502081610336566512407763672846648553154329142750837799790484406293447558630406662001759244111277084096100223570241748060994681363425535213234441061550544525103166604664842303456462414116847356494360798789832114668497322683039640663035121832975336640674761753615007821631009339498579421171487487825477527332784341556420904574247687150415912227802173535158942964009155372105150021912793832833213577936622073595306008949892275222714267902476208920055146560308764920623532158628518968063061821614870516706288016918405744057011931979351578469886985271459626931143763874910170867566769896685558686281472178509399713043033143234908673710290916131954885104694196017434547294235830151281053726989004806986902937526069882433828503090554309077197477958459884427602843826309998141140209838546913457561549216565825679106705980934035998753263979077848314730964929080199159812512969027730520525575916752135677931259223196688915292098829110357693399435730032613232939535602342384592759161481976207656196937925483418951396261399313583364046192287918202136516597207635641896877699919584440811040860730012585232965366411471837483721542531652702493500506689340566162824259966784408194952511854765722104621763263589158009997793294227927654959295026333237430042670067007797502463562749827646048464713982699584062756486219198766921074770301594671631194667141863204894535044415223481812661990633032276520500683140423510978520098794371410903585112686752023511768658778030118107554606322184894696109944505672411633379937687383273700036601838660080291899942684365354012413672377972548238201762353178555493737905798338214715360385460937720626134262197123461699054109522171737659829663006536144307842442765290780838312739589070723037127364961593438571682569748685347596148347848685739082488465463769923577550869735131369332023551970673694958235993138809999497710038059126832335028134942465294642204295116343558464664585655101537045983711673928033194395985865056187657312866041576832385407165518375739458142552457351992473066560725505509519278880585060220848670409089868857066308287641605349025021253020720172737432878299462229703159783594845290288127810582863333437139532011197197213215938120285943761011882173335741657079392841293056548288013625037724854244708485229472279083397605264308682438484776687617083260214592779360837568274821923258113932199751381671040493173517785448494679280059002387713892756272575698988002199669368551910801542474161783268484590752394097531362441623542339161635576450400583266271550525535662424163984220198646610549560996673212641970522599663761564469752797999195651393907481821847917049683570613945490464785113658014680734391038314226934798550628095291747731957750555822079492111916471205649668292024281367202737226340922949437654245381492536722126156519466753507008883933195814121846431145001579469334570821921619853577375178475676399427780980369393913446773369735389375382094078216265201302255530736270061647005929853099969163140537086121660955248892676685621579684491623660244456399391486269454631126156906233865087795483913867022692283843909792518850885413693312315444428415475268529286240292706975497250269556902454981601147525170392935857904242911397177672639386163829071183332804955918895035899519300993007919688440842237420937591871224257866734570289174643190766207092261341650375241492596729591957383395414354797003648876423621559818101786356901417627849230500156945214462884727636991479382664270005849467844699965390743809365784987055682754393742171565224823992374958687699955496654686169471832327186893634060740769203075917464700760968548773173096145655858668871850140363285975319317436252772888569803792282547262586008267084847929063492365181071990062907240238136327416207033949976529484860418813766027291157593838261397235909535316278858635400722070909487693702234004148639972637042309184066302011459132094432765899962976838407143612864402633794738648951681640908730227855241109307660851005770823077336257698933307784198751657719810860692984175921066283472912044405054083521194418300912564689474454705565294776475913527830120166771201531463684212016376927190216889695872885869070896909167774073034125515209713657080674951099097484387504128732108373251929913976737959164386930197552455661163813794226241111887191054802236873161914389241298788117932208205490588331004484371192848687851867484071560186743357162634468440906570045625906521047145049895194163559440351439177350667882311208994125968004608545947758158335164056157533933217815555494656464586886513969058442083021924749923401626680641542036473616470355401709684230009268222544939588205433418895376358896814156026396114960091800273611576216558688187413031619115020187076815307473414258001242363272765144091074060450647925825376650747096257684998082206244933671223396336332874609701710812414556010262887417048425663744395761162088665399139840808867492545915999757291638669286892337692970909020538135544370190244656512707811102365941279030904591922123841835176401847246449853000619000423634261433401959309188007982441586578500017647045888405592722479443420449181085159150060041336765220845226604153934681257824094394452077821802640811082844195077495294001247393864856038236576017123931779289065210754229349669330667482972909990541251857587848001267020499790290090853416264062139870944712202462442085341324969340523215269493226892719257277188888167510769666518957368281699084894411034782069749554961442568683789263718133093282195182197818554905424183022530526470524915597036488477244448104637530586154999818755441939179127712764551808417295220176856217021199332458872083350699576335066072051546371849494080144991009044593090097277248231283663804017857380219758975334108526425604024030569244399502320938420811919248475106391978844612614209306702385446937967343695297628244053788502210457309326799502784622329548648891868981580055845371636542631141796172928582640381069804947478077067587905151051317280131730991201220062926403529803124715943341814984530999428739775099316085666746611094242702966493712642485103686803339695584291539502441199886486143381834635079502528849789704755904387135518517800552338835957234224240453299978249354881317392473268208575948035711195542563272650800057284017514480512140356608676904188494898356309199478799937841679644680962697742974981283862568077096996135751060613767624021681012017633970138247089883757240932699771253146210387290686282128926967868778381608495001327781260318907174303870301677412170375733777171848670336926752679649123096581776925810248132794206323232234893466085482717962370445754613737426926711532346591711841670755390822518840023735005999609267170974911758110662770341502600662635771675594472750681985009275984988884041025764288057788195457223656263223102180486504831213463153752523404918216468538832002210900450285184052323987952952223177025146217967300719792461553098141026547008471509638962535354564447709210055252158615780573782946569929850311773497343647842613094851472478524294641017707585538295846654837690219775196805402030181561188140299960099759518159676429305130185653501543481846400684553301679116334297552381827852654732687980914062063632699507482756169144947242299863591796710471328051346188731323147597614219321245694564125465530871033760280135317774805540886522386106302349124966686083452703235378192152896189752207867529929379573543663911442076158692363472207596731093732967862709625784310634905047621517258966422037066340861133101351210250832573416564472613725096947615542033211636263688288294281824410705152529757695043259788363749691508752371617686608858913593280678945163744625590862016812289033104354850770501620955320542750464697774036101066337402929946945670705732086271455173806408344414168737806612648492306923274156288220633145184304964303591836892157277165660463529982833224530224737876710621773277706763171368960894191415537958859113834971238014798255550352979329699381539573603212666891280161922715027159129564234606967777315238313403858834679210486052772079856441139360988884292674788733731288049514242326767935518167069194204591227870772583941741879693044401424235652335242410026575075634176119545242693400215149301470148632249654603971756104582549108638837838945124401990384664289546398794301254719206349325512694858664145477946396443537097110132529181419087957558432991036923540335773471544085137500250186264632154003063054974080558573420744205300004442605703047978359202541020516978759793897304818417530928611729341050948604246681082558694944932465182421534522571012938794163445980071227804503177233615661860054498943364875573167322712770007475353250844270364101737119777676071131763321242483282400689225738532713061322360566353179413244358844492670527890922677589336067511732133579680702526796207915415272756790286397493783173287745371552923357049956720087257535702607356599675598318905694078970645604161119716936248610311647149647345028260637694480866112906527994099167616235598436788762801047186448716946032659426451590340549422615782366517179270261800244718888680008282470534195569460170002186985666286590125692442736051068453652957573370560207606773666172352601410759979838963096454602971899715699911290762070384929105320595346474330168820835193770430608758289206685556706397139791147342812598337449883991237543648142824450855076319438241596239358546525083565956818967779144163774013691951123950932653265687740679598690476753483978266957499525768389427204346054995199097268295047282111702992502631261339292971232514159518318691241331652120401267802403160225827519193343785276080165926305657482765176239791774370070798304023831600683808355850311681472896367122249614289286205090444154984924085642480563143912469682457557345028543002726094277429527447333286572450088801924744909514032003868695851969099147910758523532921142819650823165697801536543991070989651829547011454295477453913096616678658993243628330118461414690771297920906336370200046759893815967371867606417403394231208470228190171717947363349681373559906277879848249984887753685221401916413312840726819465285224981852381829444952179084142400057141617079328242470912607367111411880046007182527359447380854229474465778074782624725355120899749705140623867898923851020453036316873426448594537453581025354662170566257539124464992288768838295288311188413434994226283351074497360848415607599941597762345519807285827307073915159899125148330914141853069927144839626595582666682375405513820987480517039740275926362763020163310397861091308938153775799562222296410043934308427224515481956178480413743936116285154492195062962915080788264355981528955108766639737536913165235159546828733157494922892895416687212591613852438969236388405324620952216262476042977946709973366204997421253272630383038651152901613736203975718832230785392097037899566463311181787494542865104816371679193608711058399164672570757452668761531349223753187348840718891463420655122025360532894772800850867136927057021700433855270043964015936952601554918737323160103318825695163739894050254119909505371455049222106714523881822147367126785656214681678095988882753060884773525588285830344028237390460644289583520583117029934688653998133785517265090965639092092718088919659669700711206065471603774186192735979253957298682346709896606134735689719945640585207656054412847257920720674896427335382642770014838945949278028421563451650672745430479816626793217860451830397291867368631184405101324979150088788358371883444306562981489474853898617073748145334990073437671844250642433347297704140837132509224302668456651950809744640883762787543079904444491477799385023644982622040129551330999133312424262476867480886210294504262670192643940478225052830525196618921850430916972362316152229981681344172992601195980210437257062786874115927610239488209460122606654508465646260068259809447548468956874592320147917432407235189721937003188765529344097514964153508778935832067347248751515408814600784145740004925282193342483424621706244435378419055646996163637434505446401201692366284098778765062138265001663144845017113388749989731511471477416929914685486111110376903202899454595192619077470152602283990582260787073965469655620392195033553827758827676232501698208497135960959834103941275110065824851047494712594765445914855472453645342840555740885859751477739916588642870355599111934900442384029803724002029335225856243909340954182233646546475146275370424408621602397496376051114195788423879781842021841144086075701734693115217184092938657636648581335513901245902133399783831360325747158612963839770186130154353922581800851165908227118510013473033785555922637116155982835242569933872435469133169727320899564738731333509075691633250807724414091694443708780678880777250974246415896104374945867327162829066283773401119094325189433170653718582457679581647172340766938364719734400791975645687066900128333453813641698575039033004339943174430598701610545157495952061294656870965236367981562073673364324911220933194840563483546520706410337430044656474901649303572356238187137726012861095992485885544714837150078282312818672377782852145653061494507819301196600098771773404629602215686422156486626242767027924991931082549418368560589237271597064450375885193289621908760044039310541798283635068470578316979213154350468343778253610641826935562003914793842288292587327136206418083828215257322742964102236662097314549964444640846466486859700093590063623002006934886195814268863733621229443071607430067773252415765749188147185020120097373213445119542900807589079181026236751100206960522182585163296295478996159954307169408728791460563694056014690161265854940052170241821969800483291943095095435416664397989132689841091553956271423677869217207820424316286438696603684485790586598447393107649874896438713922200437083265649745406927869472322093807778168927519388730374816015484149533009868656432271423352270448828495946973020211575810094792104634843401462247535128211613785157097033652188542155531843408941601741260300722633126188332841609089971257622073695055559242807851829282689061712313663428059453661686646248665952039725232229146596762293116861732495153415755928069810185927063776586549170187577044443206726170073183342622400183727687574660519442919358977141912384268097291082845738834281963741061385142381665827848584527099706707022843761260424791631414245229008693450191207075463000834248837442200426037478127901893593946713238486347733831201540585837826834493719880899946500169501248793734967354421688805257389685349760713719714835556850285707693836824442273702412038546905092393069164917073185123562341292806296472415711984116114306128870423446224031975407305610607919908886596223022232365229195095103270737516964485848874076740829517328547312742965488487889967875014084086066658001304389447627647010693660003969369643290359817354363021729861752401507508576614871029007398672612765711824154195715608894931804518201156670778747127114872574098218751799205904998873399956783796998154417153976957555744894796296038361376717505616232721765265820186513991308578450865717197665144391612469683647446570090517374546301671323444905792374347867549651611958772322543013907813025797771973595883617705109334490125989315940306534295237037452770685110560778672713087575080027788586663596064704095367564128603949358415423049989082606352170047664304241568502084712012447565504826943279612518365089688146754728858542613148102388302200163736796087317890615691044997633539732892626830628800641529738273700898755985136815732258887934176130665866354263649259673533455154933716350645473607454862871770339961323213812977944049414271961626236193280861624082528528060796932434870162665743466848191774122229091365436516447410004450455769159993488047806843441015195976305129044448704172590093106181274569412047584279074313846538566760705654507013676959641610874463106426244868093928945266868543424521657655694983394111876519886288468168192102646346310580350534030848555781489045197795939784923840049301054073256421793843019445696716175439162220452064495707203368552413187426627246099315045757703352552210371739933459038347519147536574116206268466329551147146694983584700274216948327920384770619846547705684763775041495798407884805617150261479925291987343292558583907540502452444776714128986670758684127277889900850853216380783882690409731475667198829637555858849511739811014475203951351867599894904769361225835172202475310669040995341918583557852311427946805002601245476180700220888497997796649306326383544624518726000145642478825887916288856046245492919282840573188674824544990756753798866929864370532740593140951691326265292950287004762979005479232665111298428872769819233807093123449185082411319797858312390452917409776441258284996171848806510689391788781795054271057743486511050375208755955856993981730113659556583852410939640294251291681019883791484167348172778344056059416658726460504277702557755704255379614400138086371696824944683304974995692161785147304736491391534996243597847290074842668873130680280659989423202700805499679310989442848716137399431704799506952829166743540712726449565982955866870101679845583981305684304518965623230601253371932783963747626762047307346539099664616789847720032172898292973328324181109408831568243188087257852658312607438776785434963185133772416028581011678064985720501808671009022256531040283956976180237025237410316304058357792028368214486995740387790022812876703274676793994632096156335849581322955520220803982063272384025025069413893238339032978260275608650279968757740189407831883688540964866552339534101995609108888290810972797321826383797377387896700025786125765893149214716362071080794731754881622879649369228759717750128081228208475816749726845914065592578873049781766528546689835319657998417308742646774066050777628727673456550243119995926284469727423681664206611391246007794930475590971016153130082255414621352258859203298038141924027300124263501189215923768315808917312951924209261446414902058525272268386953041122145302233178521335549914099064618505121985563961510046046120496022900686720155196092886733222059558569816458353289633545184394355834282383069794321764904084907202605367375802491482762435165420620350850997229294388432959494467943975061853167586013368989492003742495937281801766126068569789756711273694721390835739015316455445696020344096992864071656349896507885071012377885443901970086335570724767768023956767750436704381055247855428973967783145569086571799588115411942118805433083807625704932961689364252014323859006925197264145882701784599515041989850365973043202042771524475040568971694797986085855838266318885815929281443350862268423222101479184193663323068680157548371761114000322516945888117854069934236935530720587119991049162687135039051265979350874384819694615658175970074393171810319751526990535063635099105584693335277177351959620039731566753670487719858995453641204181331413358802948795751762547765645154097202533026957526477308319417073143130029696843804799211006023239414094496165981008775316275458575769378714455753814518648770807025507022461022100188871016161317964445607108345190450882745594128567338968452517060849762052327016906428696781184814006933777579757781801886967106737080897681060522492820985444326341173095422650931407060628521688752348922234986465950679289471440658412902090597103761484449220789297213071080611975025586804209510215313195504488641166708500290825544960137846221272795676881372164979296997205177841810787580031904784466448246199260018833440805752848216083767621666452371150867191122105153371181226446391026069283116710894500266213610317812161056313858663493465314283606699996912529709198988347552712975856781830007354223002851766895126855187708454559958892360067035609194684440235054721357524819995424029437526164040895363734053347956009826332734533875415296313173368436460423717139161832077401761559096928803351962591668033851039663457501184714914168681226092666510715145350252308965023482645427662767292684581917701495244113437313343307467094646529210032076738718591849323391524156089109190976872890904457468293123451223489787916895504714041669151252601639083184273737892809085004498130434393540601087764273714552516917250023417773718135284090554301296705546323918777543289473772970198471218490113067840666788112087525704474321759754259082387534735417482955345500069852340560883009749681303760043924965925270057810522653621772721505852607845529079734479193470971828720784926930922626011664882120355200874677241379475045068069550870467292175597798274992479793572268760119187467075706553921484217905795482956063321065972031183534884289228639648896594295131908595020898399786136638985597727191515198538109601238733470502678676446220993868875712197561491566359245704786585206905230301679424771594275501619445531987455667110120511900022121527396110601786196261535206562613678963586777171625057655353843220408488678809751868901117338248761057548867956872847694987618292612364575213053810901178112770984946925382178268101318401221764180128497655880229782110286973308222766903486779153840565201436057617590905686309034286588070940172068149198587541331465889736379029643951393072983031155560007667290588632373482245358061335429768597016562653415966809175406739087374201390754019748233923698527408853944138395102961240992286025383974405476334931462614613410280881808490382983132170788606121261919632932279110534410312611049221207786665749717238840724820879075301782933070937415303945744408264241156229957073912625653095258098200382952972688352907351286412161816341057879857413875438078353512062532965010523527530523950929853649876049648263268395100663907665827777364550650311832515539952038224850461603441969867369175237372663172772180099853138210384162550823842240102924893571168438556377965106062106483648093253697555441517983152297669003261224779926065098161194722423228758645728962287895077213019886433329109782987256665388293730590343044699656797682811469996356896991851075672967978009258135232481827562874227529985322287681162720946762459811739074446204310775981530279809912660840645760683358451031013990536656890030912771835388053781523841372457793313217743273452461993391406684199167873820716581121112270346643258493611905353442809576457821844335063503626243952670177937221778056417316966907847563603873918018037316437214765556400203281522957974465619064888806772208672670373520121282737400477715243926956213800339445991607630907731686809315568008392316425775881769219077430404088938814842196440270781989351031197867033048690855460167323884300272988574750705418261205644042879565880931261291889831684246883595679610903830744089753692829129736943623113812921901652439795277154228523285784928268598849094006014825209719524724593976893704510158432240537005513192178544994951403444029965305082770021724561254351084305674503397935453502379849754914254717545203821893186858949991312452551518676072069886981530202105436010075413205191641482079881351221942225472037300595163260008625362810989659570801078077209465007434305020062447175889630656061710033505146089195639839994585855958490481727196207724337813817156383990250660131650364435004711720965681461881790175340078387550380259443224746858127637567685442902749875046201331639836537426947733929335885653477615361753663380761942985660607644828688180590883387556981131578554284263739177083771135906428772163082369532991990246728738070437598585937004912533807251915107561538249432861484803495587233088820797825591930501949593062759007436940508985926102854317873855470185954408278280382446874698555684897304365737857442897298093011706818669891485661754019059077592545340229900391928216911935166348475258790753510411597398982854167844978592040055108943938800948815689880595033230963254968403947750861652436931537284197359328434843816527843082933958493955921298545980389787945498714498976206083716394604968591176040473960825509635969655156891046372402602055918370276406925996309527940927411382927007883118123832316087229550224893463611889350350922596759508684255303380219016690721849765717242344514123063402078985855057827523729914549449188475642974900591446002757401080622664179900251370419323647819276697631495798252910371286273134970205382177593785238599154774832953301454464913109867169681635117280107516060467328526281852649914807485778921634709411468304138726286155619063398498174200099594815492822882865308287473163454485212992096934786885395832004344335406752033028052550965672920626612513867593767831914028176893390577767152116614875780429825716093490467286273432051205173553759738345873390284683813262269625050307493877878084643866619966436424428971013690458713970498048654070936192402753138244174759201915267100455530696369271630155917988240404435169318085070586303656241744590715906363463805163641356619005369295136816949481742533111627270334367942657743883850773861426987393463011684951523530121923882424377186539660518922079056928961806258512087211422385971901987627391764938525217357861188221464396853516327782765568004343095446423639699676310173576623929981178603922701405277309705439001485156549640371802673600786111593584825326484176556277021194221862129847497293068107982437219669102388171073630895356645117074089584321616723651096353489781880426182521454016357448893366622539293010723249537718634207552801582832920600614196739558583506927663690219358644873822568806077729879180321175240877277365058167595656609874801277009553276911327902296573259318484579176855185588912232763463359899011622511493592066141678216096462579899235381530700019610529106089512758039130171525059781562848754273198697587339807164575280907727100162362406871154540328152426473996761673556204934047507325479763184823739009700617229163981060337076301855708465075001949785547590487516172866418886942837419218997139135009005396107533069715744920483198710224944125826733629896525686682460547196591783181303849152599467547913489685525904457495238478742018559746295823982520102075236016266128829330699235987301108379925152314838068506075041452625864684802664895630309355880772185958846579504881883370171860035783399441546322998011705164473723512807653508697570421320805327216886388962334014681261724886721356171358447092753960512364778351659207026167075671437650038312505565355253585086290059788716265404625649289625856148172491107544575976219364202569183251914346696092200519659339654702970911160272347535884460652706124887003209634602012925308125748864431323686716484081460987152889716370579706133401501937685674245418668836994755814268690276959602128019283059817239167199556955082481758629157689532738150265418227946483024328193710918161961934633091587370357242052216567663856267617255647157195579764675760698101737682660454900040610656983567167301885624390682492060391131083417335025901093589157343644382704899426853189741784390656088206612003885323910709884539937337074089641723063840160932270716890456001814372439562316451109756248548355787213895981872815768667679951385363629901628970683216096170333846582717252423555350051075447075861527574945073499596848281732765097450870421312449753899906211797778632248436908758330144758306072267897083024292467132604088087242452253196403719276421748460529954362050635668013524647147640597200156630170812944562570840738772164790592503370398204200517505448709256792560281453057374279188779285758639342061092741131178387176517223083937986425193887775203778137383930164398819432293731800740081130118677968480346228302820396052677774547129178070771168569234760237109860885373532079822214298352183110994501878568766337922845826668124788307901052188869145971553133437698583777964093938534195161195607217972508405382683642939292135410190989033699376554489141812450920770360141995761697911691360805890974010997600824493992027444210730181056193712454710912606790703915875363076493894069922895243486875206755589193665277230777412785294883122092369301863611366757192155412558410832250770981616642858741909562447172807432705779656809180875693346463265781445328354154619861169100684530088795056989131920016229722621514526108121927263274500277245834738824208979481495074681757696790876766961481272177661241269725247991590170561811500334890855766140889842006877324774860296796640050783104726819567002054388178227998876880662169931923000734491425550793282654006922993761497753398651045854886003150847786042503448975101335255228283562652449729370999957309458066505995957388188017176617823862955293192190829540525486110723395975697193951643660175974866446635745694203649567958299282140185425637477250105791565748917105811129801805840898607808137443218601422060167266938757501172496932991766475183519918808279128604445529080619550756371057878777531561750369247748146195057333892802548174701318537084660337834567823981379146973874628246841243466412137801967706832693768051019707143946186078566973347759093858241836043452161841729495523627361199347607135999794792272548311384988161169964242050475572312811428244034086280557412515651403378177292812607825795758078842847944686326111278093666315884579256567312541902789565687555251964950713477432626064432811319294221432641759073655784982526251025771081259044956281371356439967629726258525418258591123383276453103835367964550917535856605210455447893140609256330078252690446315574702579026961891219358233120703184409748857727700702844632577458893441200438684886347850787293511070891994445783943231238722199011629660187470171961861500800085980573267510295561804124202719969898643663588792705109970974625691751635248490926170126740026117248836040832005670156612915527641363916979064678674954621697428255274122187181020994207762603031026880133376365548382632516897690590022626697124541822217533545989954308772017336974444800145557538216411843291967544008279513950002716557772019336944380311841708104525609525903510160622059756951863232885439400397905585268055077876215663122280276120215148157676824067154651314126883681351337844974656977003605900913821437029192489666271868587293708348622295534335497263503475416424226121572732276926412859047046011066830568262805022790630654429582180521159774321449402813979975395775043321240812041512244794237769953859830627327510330449676700584855555717631432520282945708120623938881329761549266513872016029126180732124948860118066105820518590341335047155957196896351632015178534128737768316093789040190569089854897610533272331494081628539540483102114221917895662703436167322673088798151634746457736217946750142827281712755293655367755816738590290950413367173774580758719505765862452390016165394408002668490751295597496465302434634453732886894192351654050282151010739209318791891086596539956707487035531587049719796582427811387341354116907238170489016641193709106958078245729424376101512184320642244017391794368463910462664161214583883631895350704266077164950747973935155308016446946131632512518291212258268591915693395396524057171166113012024485545864397632069754856634442366516131717718038343615403497076592812795094185054180473907937086212532267524339458384869806585465210595199887950165728413794908792829744362520246186571088620357965362017792713579254212832717098745426367890106149108364386858648236368890382934532283304436182559803050129432564164919911178578339367968660845832369328829281795516413628516579807265977301547064516646887390544873151835701613052383301739289963702038312213303173185126774760937318693074045329134245363708520291767360992825939157130019582782788504297125601357933380961303319655846225327775891779913688060141475904138199424452412347567896059320887357818707290912410468951334471448215578794024941472912991471540252006410281979966380809720918497939218475587923397641668860754707971145815384086022787516423060056770466536100905183778953838852988408984904971370369414488950330447162389597202393289272456798554496318473904747210163058606581905601766268910319222012732233845368989362152196375814309528255273499618480198485727295269536690313517757784722152149896641256696358414483731693202257465175316489192553421754705651905362834075674715333160592976779888581806327407411724143920057610015618450913864179843067370523662174617471399796235387595030382463547335616983565630075256761923025328860377191538282703007346488861059275053472949915625525915063281731937207010960973118422244293024616978057208036834332672224078207145775933986515388971666180120047626532592620199412896510710643527717230192406629927547753322077998261768029419887094194654256397991495827036820967711930517244719837711556820776736289714896977248430408065892299231791848775286908454290610542763471987023433175884099467213663193409369766211686986011374371980303228341143190678803434142218987127273774710100723619167123216640226851583659599774695972794506243571244809752872957697650586550667715806519998600396331356306406310486556275241915773771177292731332482018706892110120036030775853360929632142008883184278631667534173405308133494723456655249928529922065952012739850342015801654830653251981345863384737164032756328410810647432414823192816940760257632648656623067461622791528507628999678176851309993326531386967739900581154167745587708335272521202943029039375748083908923829388503845798731958672388291705077899105370701252613857998222680531160512321532742603558110784577312644962672450094052708561947720699996028911974455158671012099448897908970556960378649257223548731453607286193710844222969934275482222171804776407848633438595201963487210591675348804502297492291388273867727519240567248112618335670468997438064864083164661500866558947670059253262745441470286194594105080944039791867879317732348447497973485375741749763458117458971084070522524573270983863257342274295096022211896241774971372972582895000339051480304338927245095184945448001879700044154375420442352089342873565517282434847349291170544284705114061041676118756035562308030972883108023329447939884011694897452230977605097032932940610276758257891633744829609879258293139128729535437959324774427590569266591951842942778876770732323980269943830665039289696569230815310298638600034250215149339125915086656411319429343862527166417604227919071446160713429650285090454744603190049193359038679588162502999676993169351815453931752437219806278119147810411263011160246534883527421076720564166816608318802737890773244708127503897658053653513662012157953298904026667715151464428115082310268342410795986318296001448721448059178631048586259200188837012525228621484092186717074245630883473337930380873100050226797053552793786249808096006023002551409221665737220157845669908037241813168009042058939014831527621814057135932884433816142469230196149867941488057918136789763633426600580690281340517122088437964236954452258980226985470304690361187970988189946204293128210115529073970610070814771623029740996723922653134498860113571896953810387939616560949754996254695036705195405430550109730262371474552232835946254065719977211401046596985312946649884843942148498875234674096751472833026419393644065186329643552390369682554407479161572296172307566099234580592326787412527040086900173940181925658097223037296078734500099591952703927690776149879136090234158283805300577866082672140112238453012359198206121910774289496861265931239299518837984675566182812212483583188658438223614448772318919277961262785452657886115883980463649883014205309292858417423745415098145585187412156930505051510558004851180560614815179773364523187619757582203463068703109483452785712056300478978149316864824287188081081751088973853214652850798403501374570111131460846306306989338631932148064389550821635497543136909020774993647039191177250917670549466076260661079048786733159410960442179945531229790660805410315431269490343004939626891495452660624133651655871331744915428625633852671958163429754394642189379793480979260144672069794302519778246911618858106611735441839508535043805477466587696131173258147523113270104292763663533265004695884473900563345661902787286530941588704754112570834208469191937962866684209024689531835136206323763523934318384661474237412167982653983637691067997210012356378183228016164110299729785137393430535013348225857047728884532716939181517391077078074847359781619025827301010389257759993795118839030585855436671414408443833749920760400036272028238052430225423570412501462423915054636848528253528546130698253472992481441987047331596440163995037977343827970640934557695046513819098344471673967686753481897249751715229978135181591818264203391405197476838548331940406673645320787396597973421967495366811767407109334643268295260898751792478255515655856277009774227252433001202842086503840139634074420952507611323856242978455668802988376303487847067731249851156565282959045635978810768867055182356608596481227387849315952551718793165883891587066834206891318398735633523936284723784824403172178339585097078256873355790888351432999997159241139832075289116863161051537072714925057418513969409766299263653300956301195864059422201365250258812534469888312965152704436176572703927531732293490704773869026946093908850004125377564962611465894644082799898620774448316316889006580240079292271026281363690676822385439474985229616934495096714058784340547203018784917163309732767867576797773167719924165786494168005747381013697863262316085521358964974140677495370213642822861438354805813573092516144684256597941823448248259880379662931257770536590378270404622206064604798582691981268597748603499850156944739197597989715764462216002773144142963882371898995582418883346023441169509363710330525355132948197498750145120607157653996600902256770991437248302079947744983018544581793311388988358090587833272155450182454963859071365999762030204584981246662917449521142098063092490913582675794182446627815344636819556414632060588720344068390740715341487845025866153221674346408640846592783251355339521462362150971682710681995625911917102728444485059255783297361938970916485185203961778799210986688186072894128996011682355127938643845682614567254545605256366308399699514059159511725189502778962143856311952516912804471835989471382162107728549487545212595405522663443451085369301190070981361391205535403749959832811668977021952008507646662186730600622604081500673307043548726831257563572802545252057072650203685065761844152459531373914799363870068283013572720475284908718606441803280329737908848818247259408478362965557877368594543046702287402561510467890593982981628847856313379266801575772035947929978554265775447050020892467323584602957064999533027438867033255939152490771503129631828357170900364000193101109691589268349920541350528537251833833123106923899316532923642234263255661636774027597669668908041952882995038944637878834481448107437325573011450147487893685834749147455534711259833343878361980027391413266792235355001607754438422990596086266427487201966736935028789901756310618852223552916311993505460199829443493106562908928914184485805182327324530793124083654458938513564922628744190813773162190347290393167296649698863910495169014833365368037928768759216655496175893773847191189470322398723344803292461929926087752276238864083015688245612819780919490847589838506771162835148415344291733046017705295786669112560748498100099269376736501674593917000820350514041977814831920292353914894728770020154979224506288401910150690776455649263794601467444681799234100191883853036320943883690831900357188359112698314518195836667868619421674129258072929639135544641775706780061558914504796767704445643846930526147101741387200334063481115302850025748563972067042279620726352299258439163333548508398228995436676755545023577607365967424997716049517885822083464624478896447013912343411970026068959089555026657998248952047226847471324134972071287280836081055235762112294617286102085507272133079476385850135796301164529264739339733118870483858999232748867436049389651095551312327247484161873801741889123424984211427637791478877861581351546722666109939781066307357571844832551879651226814814713571188349634817231960564678691375942617808023726923714248815431271573890895074707251508426723394712336526553907932460464374789545582994925629623997337191585668966457919237410888568003355818760008970475677645432739456276659039291229547131892962669633511637693468479356669788681976205026106772142904009899853494714267793668826502530609911635828147582891907185559487186409989605928457896934096554433878895349205355726555766789151795702019064063719054418234963112511914103988058200895147148719339662423076943184083167855764385112829821263858191270626887421841158960265822908229470330824185489762435851619459088880218024290445094875476983701061534657595151481084796684406531458390788106403325191476959422350153969959219657057482027999806396742822186729331635497076625582645180366114606771217624944955353265126790010236617600015672127662184377016813257864857219330857166708366418842842849771663584652265497842012879259871325720790469588590227353142031293752475179957748240472939199465376605240290559307240469338326417241983430354911681260847499933418657532880487916295964192837707723206988175198699814606509637613539221962490236582746288272091294615846985526605961843760346338491689969558919728134533130075178498766572190970015739334483435222638528777729956309202770561800566255661165376447249347268327670680217737774333975762477994885925723806876973196449305767403273611952481599933708894935790962698871402613089793751939879630817315761345379723261240018928331890541497618458445750306364927515558599646202781368122860874567280197515539250188083118375638854402601023245702171190549801583851853928750863092562267064613951116605440179053017411083846536299653519427236766951023820395852917243419193317822531242775744690899425613368957945383860224351862532092025394318219471041809473502958812711910506351856136424573648928127682436431910902478269197771134916561162549957480582394812567277268789608351433078501652559252791068508558105225880454145465198618262107439114621877848788607349776034287147327230082045701697222641167378680719277923139321369250952140338497745957558975263689387994116447663555880576650793952710408497484355717181715685932985029065811613014014459872798349234157841033564898964622038647759117815093945743511809161104154831989279432976855185597633654689513438834457469777284349962847841731096811705541194667147733850501887819531744948058692488279389180785891033822819578050808502150581159411253588191392164458895759043995408865019727404068162675658822537142378589138200801550114483064245927906939326450751270336189012457129875052084859871747065504784409700024469473224620200724841484962319636840559839674443906496290494339178289649566028530802866949173842042412702276938090066253489403662073677443125448955866365880118838910400685701446770004449084763404567248335665990537164672143997394891858357865247433847777822685026846697729307516308640665180892962957479916129667348792666371954761837552233231714408137017100183668497782075235407864298072139560748753463383147520370244121979945882436210500793783669497501266370652352395504624706084656778231307942916474064586511342418652971987403142687294047852306786139015900042872638721065976933469223900119649995339704478711615916520899592658010102444154466956603195446073188223651524920511206310264397650982366534402059525064101604080588434822435853669734663215287178444134734139330847621331853594903913552220476932527590083010236129007388002712315919522980439417903732230986774472299266050729566173527478443015396981858910768862171846238172770344157261745446953015959964061291109167042581689277979212283434669732050050351296649500389451542481822973623893160697698423266908530342839302550290084060994555114379095117421939230033510510480961421329579789766448603440321308691472041773402969070507682543587134442780176160282018454925273160570357134914341911703970906479552679470853422573521005605805765213844466308049546606362611702891198696165157497534166938271119717177454035932232940009524370049520743438889143089839910695739713216235096451110660405592606911324699470279423989086878722639222390020545128538535028727484401645382130025020552312223848075741422819210184216711039315490606731190088178333776587064838140004385428174880967918315625131120089831429687825297791247030794739928499788570891755402024167288811111844059239496323711208716553789048229804720090521875865119132801448991961874084086937618486030223914384632433531570057029657386539990002179353637517971296862084970001293064109234055005422857178529593542691871790505872693960463266647171975086382088626258428366372363478140080462127172094519246776405661882956641700934680403978741104089361309445410182497064666211561362803192823564160966199478873019284726400255742660950970255812472179901512701754059945445561010539732483149014441532509052237204222643761817246630790928596037880330176302309771641434943096820970464545385585693232856866640569098563185041873305429505667257974805869541561510966568371156725590927735878891400456814351866336448256853682848588506213259667348938243531933214548703948798088956430170549084324991415731598778370363128680943641978760893866044718624753327395701774221339314831268845665956303904768498173560946168746359050602656314518811068529788153489345604480248309648958422423709521344121967208955043183760448059520559289092956848875305714603239109269029148287915471970472769668079464236874654568588699015232366603634271907136785262289545378677212980920024849894670414335786375845919359162036728892921206887709244099770331665166532038889607443355877239699674504263452503832565574995893611041014134397078692585098783810838290109429146834892476137856439288180802322005058316905299153530038492627708574345320146166292287216977001303220624945112128618146891264454324293655661384751504347537648677630865352252016527227762556451402194533854845146392641965513541335045643657356920162868733743400896941124917288678883262127201755716029295880650969772959987176158026119855054451179295915185334785854994048235573499673828268790071375851522241566663213149789734799738418167245481791396359621685892235811117975953049992284717557786597357137130234244919364072967169208611810642449275623400274265346392124595589213674647555356453309136376415416929157941164954868457260547888050043783115427027933890430093949972907926007134053451258814878387397662329701213139672044710094074208709748026345648742233444690391602429016537860239142726851743484270352465546249621180618360567487532941396941634230678493850891118119611453809306222767681146977193502715354357254743385157614172488635958041931509914599916522566258219415228061615849283722122290570861393361923652011253881144470249288667037712894270529140280643162872542040838517851311702160038927125050956864109394465784676393631409440280680748441353057260526328821891372179079357546228738536098863581132004456559792423056299823233808382165623659584263517710126433735500025385953146815003137436260724526444345652069870654289830687481684055341508320098374260272446672319725386499249441238413922465063273903716352304524487970664243202322342115106682816725956373806209869274540048020185389853966497705341972686009026256565567276890792784314842857289347745043632688225365740935937727110533429101973482635062672741755768586177608466874077868823163471931238508803629103986646002972237804202591510302438547682162447955249087200339482516983769142394162199783264526107977124804880143833148643678078024992507391769590041399980018528441769805419736706920105877256036166566853517978924900148421629280549895620289630052187495502221496715527347871105570525464744134082081753595557457484412695736869635186071677774591924286874034927032307979909484488482192748995730798382191266502623859979025438562040765064755855314063615409550288913193950859672823310525697314334492247168708265814125633650379804340301057313659945947299966584227465919218409786186468673008782121951932379453332575875687693546735316639420582312199295830832159162893173747770436765993298345866983438666894147518217171953973309905270872935896972704732094545566628298718890991536560374152786786419421495701377363296711660457782363889529390282739342994191687262883906502251049890729236096646208018227689400974913176707996242915100878151675661112464001566823253396680163294914273625261257785677676809998928574019440895578914125310531178070483842345409189210486434251000521806487608730379704331675035074097172036603504421821971061435387291790437722013784947494226072048123610771596751215014347820085393588630164008917021280112074919414828551330097951536188594910933467981592898931421288319066144858760736902655761961166511838550422909366429244045665578089707162237015250357247186428082329800083303211839229898500100374196131023849160275976877552339571717796861721158484210314048516210075321688421329316398551203756086434728913452184437266947696405209579066800206292742287773002212605830071260864305606809736773237036125780115996855046439264786588506223012058987032107935442330007556761382733226244719905966675754094524120685115971485994228568841646690001649896061566186862992340223072701469709381566812107398368982666566232699811431836631341310554068870565908840230306302915754310900570735494376479427819270411543234316793286557259065445631922472748800322440749401175015002228978406521720175669265410196767611803397773320910180183204636527160393129856352122289736293271973587375207010483131533200270101486162643541819151536799914719007963754931622717813144394660687280079175906507198846916660650323614714216964157082254994424168241393739516220583077822117875651462179591778613239655641748322838297270641733269330836181497997954362964447138946012759181878488403920396735786327663072353271231362564195593596988516389234209265560693572797853836707187533062593744531670334084710214874875252651293094995044604263792934396484403800845148508809974073088294313744297637875330015535227901968711019702833793665747473071775775603869713259942425096897160668483307668302485012400747440839867125987819250331664779949005764459471245828115998244791186357844746198119600962556601715397399086183242790954817781235771893410774651243896780759837926864089941090813252536070259994579956621701705328522811362331190362869459164951995519059085931707146145706762601191860442820218441528626657407807476867894247523211750998107801380196090226913517432363149867201061621200388774508143081264821785875405963429193915753434634463472482316603346676341306755761008371894198310660552046233401718057535715326918277827294016309229324754986869101996261450812709904528818295617992319704294485444316278826853973190023597121365968928525289476479868937489406086283014647006893398223100004029627013849351191543946184745075695353324767467401139334352605099591084306825515846891236487476827147607579665090757364748760905723410163618114280529298091373400999695013814756012410919192885470427539943302633291737665587664194615171225448643264714841356748362821942418829417563147852583187410508276760135197997283484899078679522666792426099084350397779217153616254355686765358605827113415065771709177974335058905508667424741479468374717422639581493757138417414769036566716208971690350662385710979026638949291168806460537045598418477166563068683215159880089826726665564714044470217768734248137367708053277842583923279799981821485221519899055973998444006614385282424436438879107006016581587891512123007885596381065616146656965211460779404452208285715192659391978584740061898855665660684184134486048841302578782313276064194415757243819504611577102560031453721100525704902779836931315495290205675597211263068867421386617721512431652128243900862718382959209132207306722090852453385240401770307152609105218264343957615321675148594848771041371176049705240053318812826521078755453609074467753922129198207929031877202241895677261878161231088965568368893910218612986223004280737268991407678008660438625038335151343953188484187542214171579429674776623382195671784538498488606304041325968669931300908738889095021518231996806421950128126806055976236412676775778124177142240912859038291396183612379909327805683592283746878897527397726181516098315315859461058040693831356281057718019272955060890413317051643633805595810048353104200092987293975527752257490850474824007167300354808937329436817871140797478935219043713174628362337665164071959697981021216585453626046240548594807592246966744395665582647429513798519873948878510813596739118961411891383925242111327491280906768331997329060349953418661582446664987777349068854061702762577988393356388811853148158440637831848016448246735846832446197928456270774053107930285986744140179469778699805817655965949994373899487771808049249868130125107978594372645143501708620804616608526399122433731374176421709354558506866829298440881932237734058851617106044645903964978257237293936158714881237195905486335598855022293319611522714773437729402296193843291778339405783331681466463788041732978452988250797281233563428884130682384682029760832866974485058985755975023911568104433556982797235323802008764429275151245303886143866766052503787544031707029849918365102129314656803083183342603812205401954828947245727749727540533265527326496434366864043080527160155418665256691226994810268114835533382953227080607175860662343718533713923832736011197007177441184836755527315054991880734790548421011953146699766038584668274457201609523457876185940750985404925094980975707620204498350327547269591336041287042797769354848922832283386683070337412328965364077236384939243555957147245263504217361573307995414767988053169889374615576311660884228066314614251841353693493007615674998531938625107723199672166216717003720542456707943579713755063667853878154368528408066387639112963213952343643446313683237100166120040312677314936832423700711729153305531945828925096762893130814098948496497958532937993774155159363390760706175548068500219647345569799750886220765830699679781842504985908024406736619555080448308514522788170980133439902759510488415891960289025192845245092660180036812766749222384313423159800946370567470806533713079602282141355579389334581906479282387065759711891451044075635386172651568784425179284336259157765257641518499360843807506054571186032064349462023200045284565256614216553738686163272143992977846021735241944048038165056161852994344787570389615630382814188447315679199647035740280100247043283599092151589907191920926684140893573180362449925276836584025651373166320335321605630154944089693769724004990224036176352501044257422788042120652594900536296190818706915469541663593043493367413657853941856504541174647364948193083517112664373109952632974219891213100394240025375729331876334822508370054144139131342235454073575828936053639439417571357548667103439399033305452281703318541170812731105882218400006255845843045220452626282979403509395825944584289541899962812448874854201679742572451805590816570010747333553921810305386569452188863262432834508353422541989016718676835139419972023290461232858943998535765864281332328412078770729877348977010870725573859204593288189350714040021900125328471469227189803119636691582006235183013788110871310882424428191585335322263719260882002948063098972336186073677899963970904376281602932916687109504856807102002199079951702001618273967762575540739273540457174730835720661855116886403676162567539639745429187942691611932591981167222489553174055056521400059962518110928594303391712186552241893164309061282858427413033170849121877851563002955396516003978283866916642930751788921294602430531213443324998901843964489973113026115589934758553048239455417200244771220105633723386978776755011207730581594836946680728776755967933084515993399978021415432157934152127570294726057118696957780410779047815497117075461599344851966057518014813023425433214572083586403564072666976599302415988381863000602139847657695445691612910167264758017901370571450074276269287640910010509364366343648169972146517054782215158677810440993561706903548647863639620253989563012374608026703306617845122086611497929809405702580729744385139832118044311755939086074250142806101898290067064957525717225467129368609200474126103068419915107182627419791096119156192566268955863392070593658966622828422114189772607139407596626915527557361223811051751457189256323256519853677874451085789362855992059949407437341665870825728520927954747558968918882929097576877312507215024464949385557103679273523490497355764361994491064341160523638252865492028278420598509897043987917141455050779916205217973785054269167270290814135023795689852385455091527476582386159435348007786100477797864152192001724335177446329994756489100206028846774768429709011601296865237987917436624612406360388816108820171735474734171183251219476126343590779208741634306991445119158540483210500384516476884725203626744849139919699670630641824175129413748083119384237873046780992438946480176713267050229910602568185153490501620138968247460900762665182300479332716965091831079445384308154315980110419676113962160809529746142685193535865134774254726561557761470449078582293884819364802710822522223283945897132840548074736120996041592330670285458255589526634410600129497270847051786725023762181131246509347926911945020906961014229758450564988472998910842601420947134292703860915949716692851417176995385050137804892361577616066467835001358120509886468711326502170203674237906534425713020312860633503714162491067855894215960569901001744515740228029360283768923381080303826697953596792519796576551993438712256906361242416837653887013538913015674155757166290887044097695276531968828164983251617537275243803163378844752260156846137021628152252898515625729594136429671512613877599873099033745132960916944302489935059973308176046691390825469384789845101887714475561991912321201907318308866494845610662523559203294697036613395200016048882952320312556706182493793434776803242704774791041079046136763450543360313366569755621094055231486307772034279380388909475833407654781814115881115187288129713954641457245336797735039910731645289370339260009173453245941105714645175097382043072276841614026324609862009071506547405544125468558888505125619717101844108272165871598763876087094370755466757561539159782367545727512479735550478080542153771283118074501202737043023811133584921067821108344840361592670633908494197431907426553935266993702282420752975008145751915581213361836899180555869390574509887990265236582015728327079265421378521938415973017834462170779025634289982132968677882766390382391289063176837505317868922363659149691419303501304964286397481630967513571736629274792185930678593230920706035091089270959244186455165777316631660984450070076974698870368022445786440702654836574586694414952827853083981692051657311468674249382523973589624632799307041194122426877906882830289093279657891736919205401714331471860525661970913100486208932453944232711725085608462857457828195660010117123488451035910414098774146894724256721757809516103689734917898570704128190323251136195889439498029303337065232070172156651988418080517621388819073294271528017351037387323512863778646444163002718689988386395343382278374009530030542422957292528108055184350851049388575966847303321469894274228324262724645275910550099847972428727329027099931073327325381807762358134889346628796000364180848951804499174155887357593576817662691466610599124688172150394804033450658792083133969303717213207947908830862042725826030344023800137358750020767669712003795890121196991238908194562518987027055797404723304884903822797004820464128642186153592086532779862425613458472967259595805933270266068922174882863529674948904531422013627322189197128558161715340469239569793827912795007549044166732584387497885985237027035234467502504778459981128672424182746958260519060961101496861521194771201617458097830162217678302829772768793412808354409565761889033452446296895885775110290954711598439597032325874153382477735444674454267852670893510120237009014699419499644635280382339683974331554217341068171836365807579337676654829905144674805318067735556231243512425762074512584793217899514005774724966109014109040660994894554817345999322442255581808160681944148194462640193436803520615078363369954079581106832675177785016115849129493737940340483288322082587196716859893652599865107771017083615916891347796523820564968720409796509733001899090046115416129428511419965529737363471878806252976106566696777699460030719999220879326462196477309359704123699983210901298430147600217091957427602027863524570170871529767280378036241931014130254354587324290839966670149801581632153165100810227194372393392898284716045672507630741173201980168181807379365371314862708311875870186778920073141153265706444372010150665071728689617278183561826897156029212450394712790715448845748290376606032725305483440830872838043490491949173696247706664297219590432964003737907247518135627698540616940532802234172209318199325804294644655850047219386345944463697754631390663037569399062798612394819872112747764036805902721077244830919577389493925996436091216512901546442957455515505724167697696758945339178430581617917525644888400966834987163593273755549920715167003834657173311173351187001999222509125741689824712720717741344816797131324586789691441033297465258040704558234838538391623954151006440541889491282416253262976547616499440867464104900913254980499191696382513831026150058196895791704107264357707456728732954960087026526528013626649519782898015212954154941069459772595717932645015351033667693212501331482026596760994886124298625121502687899950562755421994952716740473933116850368965807629399001700409587626146584329968064364207104215391343345120460857811118187090388658572361703090164837720941328874183241226796103876819739640872721598378962847582199162225039560288102144287097488563106278751171204032408252881468578339127608023860212401989655842561321266785281714742660730658161293287563895436477045444054670396672850975869769876145580383057639337208907252606801497994097891323959116557875891541279025395153325949916893105492041530942845899640159761105970155981171072890461710961111782321991210610485553528335846392447897789217946161422317565297119116161496866382182565154065964111731405450686515710884174753021201827974329839227192080515594391654902864179659105633183702319892433748113774287037207291985450115725834012152772054622498203815445375097609292360692457702106401243957336888381098868001641252822551288080712877090005140179481389579227290500068035977340599118814184426918062760660470433629895428578028833805233690323364946578568081685927158612877416743181368841560119510621848096792304731356425138609105214256452590733877529502829920998848971987870964801104618344234736659035252325285952683285939278841936780372312706954859592360871424947272811081687649589220156072137109915391109002134865454710424806549430029202377923107203553864617201737939668198053504552194393819956166410675014068761290024279281993037311639590161555988553650038406432556852025618471297508736717504099737723341781944843273420353441029521189553380118885193949211441415858801646410556268554206934714318848569668627960745438970330722010594204328617950620140745100031308007011162052630002798968521657919929436805742355311453163373387518801078228451404445197876469854944972429311356327058661580318476367088928566329208304699533476398153508039571746694992989833715718020195625506165986285644348207000543443444683375797467482215697811755283313399106184168239112437119307775403807096609410024334492467854490354470917174862427893293176527692499815321894968682820609496041590668885481326487835659929966858557119703729354968927158556082765658371115799839851323530909702918699834058145981158838971686532263411225774344352196143227341193876934557521977285285606549357721152204985723796692681969967725681246156540046555416117143608256599989621840688854768708127372295573966656978828042442660095065960182056877354212427288105611331330467412138853778169457127539028960705378156536355936494995392156735369546284784712737387598336556836864408366919506373674456649117722895159373913081195496031298334485408019864336628212507062796494313438477517488057464309766439625934623791039386700272072016228639504144526712436258602323063713740577022144678698917129415548116110020244411935220484738398110748109981154221394855370957042184507173429656518774800414851840692189109921154274458014475288545358271918476717331652839639973138264969448177502236546214695992463579028721060177768651298096728085970519323774873416321660276591431023580335010611571065526733342323650944488568584284211329232257284073439829903221864865114531871326582512911391971481712636800556849714672633771296791930727575552956552384471559468720013377838099321622269334452072552954813049188606784693882977480563832979364171245243613294485047902974401523119033623880906559800068563004303229453761323455017559577163260843337021917770070178115964299157674799211023268611211235842908715743862966044384168499958153901554161863963773320464559063935210325032835521246763947250758114389234762022615871386041872890937255089087647903069668372412309577170366887147220848071133149624465254422653205359582687386837566229173818043144588975978415996881728887292239666386223180086902272501682687455096538437681181696479502350114015414963203291229923698809582857650608324678246895851036055658986268298092893297887894546271325300086616702830312113612177933491270846776520782387181850087999464309819936292246946432437754931099138101785628622668160964594034580067024724347330379203148624665233874796345319434728315524433186162345536640898088649451755302663608208894764723667445570204768890911553342736729327030433848291117341020914833444321398781559812070414043306311107207059631044781391575417601879160018877914999835143486303842796191619087988286642651964002230310465619305650955637547340779080485522575408631646923597492389707945130972407087354602792229995065063577978142163529221038734398873927249121327358074695673349925841315125394537988756613018953539069711172537927273552075561245066256865536855482194399801889400606141224389924229611896000893445739346600599168194580546093854556737608203997255492534813714173712814978933970188120848320476470916070267263132663662455293800105971105837605589724944928789507197441817180882804057443531392142405147107475296833235275157490507303625573952171402287983387415884049820382100566869095530866060412516404690964522924152323469980325352029045078233940238343276275183098612624739995105536851854139722796325311733375548750931806748311666976502835650074759367718916227297506696112298119953745943899211426816857580533157766592544148017714757575833706237791473889607968755886886670430297557416134369585114503358473980234425724521167086360193302959422757882904457809468358405152608466747618391220750802057849286602454041555653853592474408654206267849184521085964873281659477041767715440454470432780754446084781756815375653629020337433399079017099296496297111225302760570824593219041911664351029246243219231115836862022712375485699880821775211548427047650534523039141046431931316738799666055722285251599434027728574182123761023248812109573205136307732451523127845068286378242714017101274935984928426849557734167409505000710537038240706079945572308271079617008740180714490293120772597908585495935561402849722466696106384884215721459760324179755878100785919719700886940961594504321863434990331293625333076032273640720749540727624400484887825301516435187118867558942511338515330108575753722516815368693605737922249996412106171231420809962292232171910135905074106984075141680132928925629811075390821353741843016891607161936372037936847678736840228759728220561289135469227840849599618057285367856944126375581437121178637653163850725490180315302540545508665044118168778847614206357571405814927017563606754611682394260945765484831241336785553061084640191734431864652106632748517247367737819858789528394320092350319550372818743095017541797793774667708102240904180504946226153631280745979351080053108656922313051424111680158272633619481455293566552016207178840343845521462480703299837810254929386601651194802258296450987364995211333252483838589083543524097566261411728143597734300727407320890754490550929831798168816460849842216232252669407883650956848588767620447990809121338855352854390720974043422639191155784952727172677351380342653453122617253284873343592587880896404399725863442790409245080912857081883777654683125804767090872700788828916494366299759063260044035246132947849303233927717401341076502449271223736601943307851149570155475143946886553969538275535705546658349529365197199234349677686813410782878890871798973314100478501291405419115281727543288085053721893947866787048848851924727390772844728656630811717006593716176455197227265765337009075688970074048497678437186705993875540420909994205552900477234096358417571415201657713590968681654795455731308627964142955424771550622874803013829555038998505491927558070915039682601953830127100870116603708682928306556521464244645056556509556287242129311617188208515071461785669844714685707949157401880339088553965779276246086752821863050956249950388586724554138682778549668007837452647115480515300092293523918250516199409696381579449245403637959286908355609329334476677966199320598129728098045439557242089989880616093682249386709433548895359297530659430096712095524059416317697846466211256391434324627183669071071744268547296065020459028447539120782183378472103981442280355386244079092071612423926449009173334340457608260993494274344653982890479973046529165525286835086996975215571464100885800114748970591205526092181590218111049261465282758644362192881630368312885828699510037575676174767701923455828432502611377318557278341648463771523297483734090283244588525173816973773044286369219144770682182228072954067972467971848071590661912617384312725603579834339404552864917757855564562794553865769569679237431966121976062122022100395322402110195408286482497780462649839264892627060509504686451770455001570204398159030016573189896467917492209880634154290730050633534836359298915702324979887426038593988972837550860828021131347156729892959694244289019955667351984633291539377778174544348198474160377643411796936100147400916480640157236561382848330024818589682124436878972414835652755425119339558286532891725066602441297270617790112370176216906752953778085964867687085054785905625497953769269150475984910923471084758764793167038475217336164852829936590143311192763285920644098487812260098771960221003824946419127670339304850720429150324237000538943218207349720914657683340626266780591835970467910813087098137649249797956695179946360490925542265584386642726192808054026026410977383169404418295060022102616564337630109421449449747053335476918896182648677886775706805309409132275695368853832833275132746893204554573202898160638961704215807266145915688667058269102462807521248381726286545728215611018606513708005903115148723029946631909847889620826759753397725972158013249882650866113064143669071290767047957139525634728305986889889364661113788918795922206920638731306628964985947701275152333008821281736015583897323417043641832598214619613089472320316800815632217302207547462116521169986996344013735834916840350505757939329061804237818786116724775089153479784018219415183615758474887647991210054189253610762275580034252275060856330786415790832411784148677635750849182863173079400552683189742340469174804090877771861893849610953363742430409523617720114567496092265834105484491693413471885860064981363716809420668968578282477750016048449990144586847704169122714212640613131511793356110359355935595669483862798485172896660144170363781068128191871827859038306691633784964223338399341096847783064721232940545899590300809334514558358192576127779231729487749164087716376187827259945026784960947408336310515094914215176246278236070099994342537811291263353129156849018522483078769206969628291442256809408993410351597548201309913844237698030060779840265016290485253279255179317803044972023150661331042388301881474162027983338428310706272319268921082519107017425109360242800256526025474909699085595374291306289826187640848437692620521482801896067088989901109638480996348029394928090597867175167602711807900569615932392168260275837122927963604265990055226174332691869418607297363529942801816089962559486087075593438884767156357218759433650354771346702728703361551052799062243749141458978972681195668328064001477294932413380489651476291652852413762342415703991545396123701748367177372104488341717285823139744276665919008951374238363261558026742524215437798620416941228690037167764198977005063964771146781094664573909933363073438967802155789046758171015159613929384311272391394769130021450632984454617437790440646611018171951265003987221804692365610347029436193450856111452306066456609167008584496053430383114815067323908145711251112196989906075493990776192894002200598840764422495015833818329671613046159810907082889448723265160914061683454683040016767332028684600319058656787016140968919866392844204485631332139272457668742013001886864657895889503899264712207747571084868120782963873355561895019132858040313866989356213248455984452874348910689465196908556477992427900230285650031662114127875381014898244491074261207993248738018543854159509182406045676542364134066472409590624658060952479287774456555354761806764180185493644329230493654072130857833716069466170707023576916772986532761373327973930062611747635375028132185863847892933423038937299388744468760104074673543644472786253678654978038294402887568569713143169920700198860361476891160252350775935882094659845774058748679659081052121741404509452656865089373240636564967627617383432517255258890870852161861218498402428777547827445568914775510655028473734819876648615467663155446590935559537440984459133185449394062360637924832748083868654554421736720006547188368657672370647691457746455496639949053922395424593165449527865398386001560870013681128305995697655592553612770632779122655204809426059669444475565138384531372472375656399476870334094852228691179928995446547446050229770467171263047015190592965573629477980526690205124043609943581747015633652580387445976824410117979978219005951449913769605705117722815845668028697543324903558092107208802532853522766485929057682130438466133904274187193435893561081856076718088181607921547581213470899971626152947477628916509015289605705431937328196081329000882491918339529645702795641323894988348937769562974719789187885249537273612282179171100587269276685893887393270940981564891960074602170819678511860092272838748324723306643466916817474107980902739113579750140073787199031353792810886826158110761576357231586707799510414904679123801836667448445343561075401785735560758050518173138047569997254850564143560453507890341359983612746932769647909270304222940465340953574785655044521997032978092082739889826938332116194187459008954984254028339231460666811000939716098325905443296106503909928087754482387249108360215410106781737554305867666380652280197490005993786610979220301696308966234570557540706223519695721658549442238044872451203229249156962495865503539069830533246301269136462817841724311331441719934948317832295812740082837999700297804362393736583663483843942903672677304568395496927973543994841109407279828816460073001373024759773955238204210769583616259636341012945860412132989013405622217384662883135228291587829787730604939758576469041101275181024822169136061424618275902617890416817052149326405512306251607618849070480503953726816630923323682656439252195682452766857246619475272847495738347875798927660294831017429640879421873773371891641297278464037679735935036546753995619628535072277972660684275511666372842484420137529694213240545063512123579299391730377746619162297033574242260272458349786277034411960262452626214934855784464904766303135755986666797334222245017614513396687685755063276625325617643471596876731915578353134947721544599806367667960666652090839932907817514424826534256371743909334870702592342501564577894848003804353861565205523483847831989954360128886155584452242548529362948110426052113542030034929992819749564137197306551930850290641350227412941668382214950209288253576309576873026645174925397897988280546803837553474691009122654989841154188159597500464661936366984433205761568310385950463361212942443106086224159733458336274446455712513282491996564395815030042685243879320531701381871324338765145627536235538382437141362046275305772607651730879378557245820570872891909740343448182286530908249259863018577762013952478021959947507503360214194311066584315080065706968693029471285738572408547873719878013331015232024564630323815776873175056202620082025597403921773684107428272030200307820045952890567565922612653471913379431488304806826730848709565736331547798798704490593103986694634651548419067715092733981153235446593978254302996001751077779331746230775040646337567922517726288676058136751616093752565369227671502476565839913840655698172993321304570461301277760316992856610712784312875476662944955892103954857872158518943410985320139853121064319966033092186917706604139284812462082609361120344025021233194571311864174444814826628141893981453624818922700442325828560371121311821907671777779447809495358133526363359745400672008771889264152172756335004592570301957734150811926538683981718234383991907406631711517222205757515373887344849077174731267695755410200241616266561667097542723796093972286293861627314339731755573344875825172632739442797012519428834939230337558599432888212449197025406361956094379663866194148113235962775764896274969859007585621726063287571625357843154657365178643434914040128996548030871978808914245236823328826899208993650116445238829871959629499047452480364654335786728120916675761226372909565348346057560074547623604376119734941367330496664051226479621308500473423483578926877021067855395553845055673940790669792018705446355337609759590588191660424396273686658228220296520647790965263384945357815976194491435796093592318441546343394630178695879011644431001870781902385335199845810659230647270664078551092329694945472796341674746380547594174370642077184537107253417242566140174426347422272636226833624048399528525020621873178148777905188866636155253678979698944017502061867889848947832301347873625590914894592826221870075314634040189915760125813523021996235386304394995106321969426955088503564952139594378781706579330873769779793807930358974194828216827524828671640645169025470205074626169299371705257769667889347570510885883277883110250963410956771295540846962860202549805576322885193446241212833421303856806573585603368445027574318500996434056268413587204869681119877422471909880732197655372058142351034114602916334156633371557289677894739749143891370407222889293970146222775939076376346868293248402468131701343131255479544745236912285864605338974856332020437970667242353277524764379261230412642038720739020289781669572608828448073262760076111769518932576621358191885767421399874901084468205788703972021831778164561968338220330050305775518541726089474048974349575448796262744424867229219551752934694320155199480266752794167432866314827894269305349231242605356522960932178202093473906578285720399930511135577013312765295625216493975451362762456691072393649622546186983467771702928620954932508954685136109338623398414421793359712282376488418484113954099148460869409785330658791196286732456456487697947235331183051606054111942984256855587596237129282544348089653673065785227440157772415795550351272561870090899654245750862151214486878240336894455603822117731192910973445614870169912170960095341981421110453386954855017019792905655852020733805140827688151096785323280003182573047056924473411187038511638571137526100988602694840205765651534588144842725958105351461744301482531477558969147732570295546431649002830888028133173606115854075108382318711960492842763509615775474731739222253052654975187620770522513568162852001219077105980332347680834163805403072548238290640831213530678523138032188916916295933447670303339248834571631016440795790339367851884937013783360917298085476486878070368131541072601592969631038312107352813598189669845944609707404760547463701425192536830559958009815281463469850430285747869491737354313484934911604024200501805940430159163027296557353794611699308460575767304225689495913139224649850380762336216029645395005819993806714176770396466546609568698323058725359008555260039466470350633664253068992959703268774708686454977417516393709326241531076696101110837816637371896671886510778312064495738014301603028614509520218931071193192940334079235816114929060760941114703493117926438696336955931181844483137628608226456870591399202668434401944078379257884755725843986827035104174721681880708027825762790967266576957742220073762254104981286040797219084179285774104591486651354865641703302757164546243672823083777911729825983555216687348283463975196640027006928742823529906837058178883694571872981123931283053692057255477620261929704942090616484812165049771431422432801859082465325864856631062102396596694369553037233400251319933446861809123994314743510449999102774983585922769008629124945486044257288020168018012076801765148588799809353522635337730860015566814826871768296624453393652809093129896783883656072270656927695164358803225422177243774345914285322869915763097945387876069191103076970005717123462718453763053293926028415888507592981577484537918458809283718556397216028048544202927121786776092839291106937339367068683546485701555753527161398539842122836563555896305879999119413230672163834684684355074283496256606051019465073410423596587508325635083977871317610136803873322517512638751436338051461008546977806431875729009210830806130301900463219817554020888614708921256489150836869495464956926907952546264261455876457079856785339231789866979462034978504053438776937644046362108837340175676641360964187810165164366253715789899868273367437748275779224395236351362362851034852198239761439801607893785174547659125665455768965541877457425149915170090249997626120102431430797175324216568075459333344883797048298981613886255607482811526161556500100105961058824884752196250580438175781694791832314960967887095126042606149952739034011689466970036292036804428026977838484982286574584939372053015246064365155295067725536892207570203499234410449282823128127916489165008173362038495010310229870889281208469250885596891785804711116133612791786488947675466491515346767321779200571934553710196093391676537790484253291735700902078594705542431509817969366931318397375656769925311766881484525463609411246538254474690280194013982271341027311792018655285949064412314474256620997594086753813148516264587823874026105676150190103701337763240304011984950017566479289744792045003467569911932308013058819035289002032844263118990790036836475673048544463230290719049612053231238380059989200847530195766401024800385480586757797202841637491656721767436850561069367603504099690795777711499394149584193685527381002119912381563672651978251543739914991001200410685771805961364091896959932020970342612711958863398516734880938442682933403099388215852134736885765824701108849044722536239708429982830772026212758210134740492470087186208261145465621847540863694444015603201343829336581523046333970888685735461325050101628534924904253974917236350185916798645043088704300095721179191822558783993728428827474681185713060084895648816178948983042309592128004880359036198233670951709054902121828508777449753444288374429367762167135909475872514397637212989598134153444926634181778628314206318209916213184381299260381257137415914365118895766610008644586596333343441900976947154839066023132385274256097006210767392158849092255623552830900898676810424208581618798295697620519295075290757407315051228986217261611613046644540393927013123447449166374373032504835459737436119628495962840684447175568036101593764476976396323154030476956529593733336713669397939362729344765237043126286180499783039868043997251478879699171149801895158942018924862504970810934106801301448552190972927505828787912001295328473648727477456397445850481463309923344518638748346139008145561971421043499377864833977807006453092590334961788411192926196106954819064429711305994563697630598432846954379021005460092998479271908994114651250816327271626326558529868813425906916011148617148942920282950808471187707997998652220424695644286760880898361734567496478457459676186329555655871479613301915833802545209300187489716762669381194312623861578691981187493494771632034832312144544465860296152239755917931806719652620643620469909121251670187067048023184961901301492037650141045827352853958692797331509949316116422502178350991056551956256842514417191599479404457414311825860937985807957004893553757979193705053863004397798043139424715751437412684984249837999770918101896682975547021370320038280259013796575350357577244139713713663207067188388441211600192889550785973981068225803563691061102503978535684630501766527260531473057854293141764033232807233298144344732556020218808997799539102424307452637584559903252840146637639137690764855270165047747398537787661569593439668782843648343130969981455883581445695276648018633791912052311702699333285597781238975655144266254162008496780444720061183133976695264612611373959126219162910744433001680347021265521192711022140964828120835940148019120615480435715403297629983233988643351717376877619153739946659985542565290924075836963880327900958969654505101940676920328304107318122189456373130022388076625165643253052774995226575929871606828539653891150744898733426298062937312047070438774568350017903177460773488805615482004535087772649244444185791518604571539787448567123015859298836768663784776282943530471751261637942905247131151052206059661538645924855889839277506064646421322762815131868142919874046388984734923758733256549513747008593873451942885246315591831107214118859110831575419151039295856448453061549939632589635090706207771539505403961962730581984740720396361208083493091909408839860834846572775993856570756324315280601269305885080844239484565460823105802461413010555239548162546574717015380279812419369558560409282864874305267417398690213285266305710080192566541614792512788969798767850180154252525882925686681703848701259717977943224901597146356183598983305739366592782074128992168641591039985865925005687017754540591080182595241677899203250996296310112004565324486017314494875426303672604266089411429354164665535490230328070963113328680234493479202210416110919055255675307876461810831216814139621249948237911242285513932291382955775508935868427100565965785409463399315086783967271235107444496563337012184885116334953296787370108959367342019751245077920266138438285961020438879984634897731291387505975657280646320616474700171340299204786363451345397926957553323528285271792770140009350836448738988729744433273355692087058471395768796586321627081853064810383012303341852969705835551924990842215514503730527487985853052074223125955084681375617428029923143082379867277467321661255315843734577204694855407952069872401139726279292941849044856751615310677652948712070211254621102789472403341314390901434973264515898830195004068503685399138660277759137510491489565412236870185816233692436996515051495737180786432385676559239733783255600375471651586682804787579881406965151087954045725104336763143940559613096601791390951220471659790010757350273415950523241673603323880210638296923531788922302068672608908020702474836572999846247534808245043865644495557345542359640316567538525603386558291529736063231922378246654470186413768341394296196092743610053094753138709040301212906096878037187657439286912554757772667212130755313329742849727704240361585364317634149726019966845270910485319886641621331531461535467749938900817302476753400551710925021883929070399160465052563622190295669890058199027752617620017497977524235389920673335750828984916417055875404226070506878655753212470767616834906152506587108898613891255768814696265789038715759493858019746870615753608969989957255759234843879594924399899572772637022746758941228850912488294396425744320051367320923992175739834365908915317302705090893028712698216705114770253424534343875976978030591783570568004588274249616583050787087203699901322459094177431999754538841616999398673248928129411714260491663215495661704808190862015407145105048116809956100277013606005016249129569639919914441338267589150197952949644401841322050856568546172338257466239093166728928957014052077318279101932192802688489087764521270096511568743349233799566723426907388765566472786493979392979942714323396900824377894360084338252609859325986820045007599780331512345425715794113812521101093251112529060156494073841424454851891439250758192628465807258518526805065333082137316427140496606736885978330008246876358397009750499616083471372037351405751288324608124252048419126608373284369601340209250468148536084632769011307427388906387381150279217417579198569324197329324704599142198818580824499354292466852497818488317836742779237490328236195953163857763380241031683948419924342271266426102911260470097409200077945660807870539645593633913825247346781434454219585214119914882466639378823536946445435638701337345841366540324560331593343436095049253594437723671595665626253656083979843532397523299509301562447461940625634108231608967832891148870421037438894109855008771479515794825193493966484551087621285644799357111089356865492945805727345815359457525190077219819614104208145691650466598392089564151150095337381340018142366729383188646445493011068271391301082255618856926849893909311252282238506755363039873083044701031309285709134114763220483265855963351735266990078846364895454600513449790635952189733287077350885003791478405392930787879301671100169054592496890057816748476301279948355714981369726629873367196159571866196846440343272977770065231148546510205397859250664154788283210881814796181015811567109402147912378248501877201338230849532982586077122457726500873413693925370959486811618326764800519592417772878705061311573405071838377936539924357713421101140047522620540000436669263641925701560157097799441211549152242252226547596575348080538011052430472722484952873683068434100717636319620156327359655333694819205053210577929735730938687165582534011728951809879198174319198427462285641226869525224593423538184898567401360134033612856200741898111852589698285470444821986453463893071783593085873822189910126102481015965657783117732144167165276769524578019739048530920882946389281812327460903735494198760253867042859075151097739366146762620021748129494305788795311669792321348866453748890824874759540302958774549143348744738317555117669198157273802912548443916413058303397989329020126251432369474501628064379529575950595992726461941113584882833932490304508637751514261635193264816991357387950159664096804085335026496000841073924547413562110979000704654322018265195705382264579951797698812445021178974742169380475924136565322038366704289297475619469401447710523679654836529089926585481893526466944225609237413481385758333559913350388633044945448286308396666778955719223746940476095370900035696436209492151500146711770038353071959823458358246993895907105010622162261945958154275435774357328823697225943447154830475551219215488172450537870386180183127278494621097896981949053649430154206673976584944292344790604789824415501285659184100368729617909308881621962213118610956324826848813882468510958778670950794605180682852086854477525338676036122300139235168066839993539118207190474073462587768404504297348680949343272148709414098958556600308471937828866786838103593934692540249766916190174539665028727629627131505769956000375074078949765991741474161193688732353229154537949017023201311768059360209288063793559837810300295204780137908648373186606457156174244004291438005060424639385228361519141978913521821615408444948000133971624280143162614740920801220500888881142555743936850883668882655631119353016899746966621757768682422119427214758849857269650398667805705840693099525475764637326389919543166852780828036599935498382640641329133811146936730895030525717903748545285328078402421982386902876984910508351873351290637159372031011447705266813093441306626001663519051027228719944026430854651545551657741712571853761070587524423639583222320377161161727631867482479967189588172734225224236312624007813688383445343677647913525138949794177586450474397375129217371520150264255932433374166350685585583736196098695959169239358783794978965270063029084159651653649389113183860569160848222375045237609272804981796759446756989338825491940479811534358127541424155175971078022328258099669177147761338917639819423666265333721301981430359980068761708189993027909342400607880610489104077689584060690928405607821352638579235430884421866305773617435046647763718914403820695934032937751224585782257475123713007316822391351864505140822590527505828967583363389638216666175424881639568134929035736467000525659374497996829183074683179760713303521425063940923808653622226080664392799116113556706472487181896967429223581973725631809764060046655122659129979790757404843124478589621863705058805264870505259891865453775128593885334175133484242674315203088431773948900389681193166736452557079267891688132010257106088909083515456963965151837829394921972697073955457211945086771343783362358888596469677153911104699490578802486604284930663077319765299372684002407127777839964973164253798096972099788385193099908539366967231422420155837651043429663823401276611758595844636668205914607434622361760176837608188457562274216397297847648618278768096012669064570878854542015924185222761223421273423360360741939100611195853192919293692718850545086188663593717883626084196600179247190883040694778201328890450170604163702255471968005156542464496804344206003074970332237314025247741033076558358383988609147923597446281055748664601681501753756364026203587487091646817692982656823030501359212845214882082748563973050774722619822237225758344362353563402939495711410981378368527760967346347152535410585290862751267494272642357782225640308053680358465309341411362439002896885371686661125726745080583579230339089594074082365998976789881185750934010716169819846396765396258756199871327505784650674641331264558563871432846753842326233143781801337317755719145104235059360652006412303643536490430334440966481249104895384230773676888216313879802548411193714408330503469728002473178976722919407631480770926240845294422150907339492968413615472322474511709009081567616541252756722611562646261775329792612442020489936516427503218702250303117452847840805338630780079603896633616431839450779195412958587772181764237561279283565957440150688145403953059819529910229323903741582686756247833455917020855216100683761750294360164507104606022474812141713950796355873583714999761996978710712555636708082509616740340462363998787244394540760849547899123123492894031875423077078668523232922295175178245892823438956910486040972907325190013660499549738059081398359029333220271479370560813262099006236194559045576925935705031735818131780995309772560144870440651261351861069070961115202458618029780003776617317087524966044696792036820455204450325093900938473054807031568083697763220754864532757553978980612021085473856438369307916638722695289504991891743903428630135377982262901066651244419140367233415963345248790101754465491384125012570966855680643163147704559208758568364085621616139802432216004763720967851952141424282713216652225947738762326385161492698072033240209537505875962776563184174823615953119897172010989314030950593783896777474739662329807662518166390813825838527047282554855173143716252293302374007274238238754064371850054690247117884146592863488679923342615819478424131317159287565023511930077273845264473724160905576870842595476195420483917062449474422692382692378714459529313476908621487282254708581124660371241684208102882509869144447542804673746871816961160897452479570169339899174096410435742925483887779672278267856709099374773370457940340108229809278826991690485084241389441161894679146197403991763748720424391944548633546890432598998184772648664823450930026656527372433816217594695450910188538282510762125985931260696946664763230144233409400032215122033682381588699669211041060578952359155431776479303030757188260413352149740218325587799793274665929818466787131013572488281842080383825673354974951523764577118289128520267338111772270376266816058528662897971491822946954919343231394827462665170614076463837651632017952391399241664255720449057085707404462295063700837280712668715609178466786855804765906777506423150288787663330373966809793906735075329348681478025103365272040561620849842937474043182603290832201153577411344984707560989152903465228357563967169866536076097888595101639873852717003855043006556139700143815765217553820443834297584968321096369617566260961599423989773146034208335668140202381472067964603096325711200809280524248478937797424607211736451131367964694975181817496106315980273730459093515652126976219090375802664460753331886328556848797328458466942184092446298256263118637735238535356410420502323411041459615392183717058534494516574287581787426440074722507060156725857991500779206039471599104777214042122315758326013502033372113429347711792481595092367420421808110630807047338475541996489239734119249155705535402524291454119943063157346432572981269321525812047384713797362546325055647676002169717902192268112143740971435455086136392644894714872986249720351458565826553303021642803861447868312087482047224459966171472477185466214150868101052196898344343634578739209568041723457039489556696459255114809631068376912345501150601803160224302369803227962326477605810751905491324746922739996360589451923032755726529527999607772767972880904442633854672749427036849951338961433875506789050081572663076508522616744453958731408303759780112112602712558044510187161369103934586528954899043517032043887770727397780627330408812254086867673824960656035906717872322601903224075463772372976944568602252423425801601803133942565900178880097634718983014514511575803459944789239704769531266230204001506571569921216750474322283631975307012238709793544888386652087834316300334512063234341271843538514291766939141239626002395455221545057787755706746636433020163459733120411791156529551765693688502243563921169230295417054468723393095496854990183350246856359594576717191697602024091029798604093785745893780918028888025460766516551960923075581401301539535965649105862888752794692190936410695203353825086819937259748528196140293365741547773834131460987010604451730444711247923222930638046090850305796985098155834073835382792460166260877892110090538404962052791510545196934738258337670241214379233527538937259337994266561597451281647074158763159000876638514939721636835659029991046505967152465642869677272421343959346033743646488574066381871306160959701996290866294759521784694085141097847790414639352881708190015436457676103589257237695114434421682441615038113477612527685588392224041171193313865260328580614003087565332640434951626325501076834168312908628418416660578274864276028181981323957274191720514048198322806488229473923535863108309221588342482452186430633763850662922508160509590750528626300763170303079113348952636147300327591636616925616097202953003429290817579032143377265204497829625142901765049742125190131413455988462504921890471312983679049139722157560777762037332839211009758594624401589708409054138634523894903978559135948152862669259295554520782182659555354653040217094936141321135957957970647066094022042751495971644476857969071161788058429859606906988980809437749280269042721680924676123990077992157542994265611569168653924095416044001370782361941182603488010321011757841400479649121738279956562740447022106564291981918380124480327021876146642023566668485905896241184753388575113781179416663688686153674477464140935665945597033442812168617927777625804949533647010503652768446148370043647764558441950331708328545620944172554486223544936514966899246137565241230462010314351097768288245540131274837511676003781205385616537935858958925350976070671496839276131690429250794912217370183003081126638978682099400913704349760935327786837156618583253576900050121800302473939219591133374400532961621263799138249411613858510045269720037418410508871278068731688875606475819622111575420947652991164810186457826690839060880629069880695912061192173287853845874894225926392019633437673678074822232032819199501229580652391411869590984498105182972219043632062615499641213622809682232099212339337837498379575651792443035230594739221389701286755250400235309857027108818658204700214919632452188353063280276920162503401394957746648510005429290045882187894309468150355740966699535250083786122072378139989714816779259112571288846420531216888863939610272166825006920489048335705223979648115573912684879598070809793017397090105494884988902816665697653168652123005322185719719502128652110319689293675746077841594996598704009538182268730216570432192758803641790205832822145786929121533119221505534846816011147904558642401221922444157381536542245682493305389446687798101071425163243114608043188611094133376091411770112308390594637346302987187752319981259088346479850857059899185662084352189406623181987222708686391419814556158872612290074505020299467128209034731078720853632306343240956531224039271007212617546032864612622575503659322982045783467398436808612821773197289742632015911424080869611174714239868188905684950273803555057572188018998053493393737701950516792567427975679419938069147500264132391066015072839743563804479462482860173798531664272013552004746730484732154205262132281962668545091891314204011933901771502167038216457060398391951899739829153949227972634581164724486614191112182009680053897681777679683321619586805642100435538777858860864020720555318436688358552328364396316160242609985056528325125320128723718330349905025026199756161325838391475160234105125880906048025906437076128412407269860425078734328750005569623431928416648619019358374569136895590322153688164259361678324751937973221167471727025099250275747587208207103811293687812459354464348884475745175316990040455267893203004279380057457036843847413743472665017249469666231001779510547450966631700066961930770301174663339757122715449350435350299616727104555292105938336704288003231349852874214340708312155406993970982502292962632412393572529553391948721183731104346267424097509067853333289018864082367728861288433428349237650394038693808200851712816564723685316499200786552219029038024679289199481679742062146302166049896956917310518767950980889773177397430554876447183713341350782279547312960838242670867633098023801562423791037822772056794569325502288316932399518628037380871479831558112409975824066164542378486338530594882354633967113922661903002208315048786005033162691330535823908512958598597567435210990196041090912500604558792687010925406884319516306345728141705810465000197596262023713882686813916103846046130731597742134522684448238707012050485102043681586142494768088297046046222104198576785396045914710336589039944780763127398636181512756445073413203072600999010720133218032916389734390933648248072697446090676474938338725545956804449007778570796509872328568289475533567894825039583545027505646187348905695057734906261927383009268709061001041685499857772223257366097163128084036634795314977302687713411651023565094519209807808764449669838211027070552229741401825573971740371327844588458703840456202527311092228931435298833501208708694642614399878525527170742934828732265214851196686989865052880487505456555306795099250808656484328802827786969964646899466313816188763382480846624815648255352410862610635246473458992490333679907569732007635853142047501767963012028419354789550137657620726981518881588538919518073370560321103586224284459479913193952155983810934643648908051093879848717949390587813922152440709276674073645693277396964299920339341248041401154813909676538094310944015521035724582765803232335980642854557995973342575437574928392513661251056236087451005762909491917639100986230807216016502091630614814715066258250898287713130540974129686820099079714034026094981800871616833651119061018994879021281235154350265398289950750579897551850015018787552749741068112734065612509708594775019309401983701137714525337407088993888762753852026106109209904013423477057346816258065161359861725811946502924362900346249548849919548840354940192699302796239601655562156183182431073524098983192697330346274077672209256008153106519334878116484908018142390606128368585954140301956023516004440100265066451129535928449139953069937771285735778214057098801249868247852988788853492208485433075765847695807302656547245166990076285223357169955712644963767037804950734366210203700722421475056455959894799301239446710107301220873106824379959349644219901937252279511182311867521199032480777447544355757012938936951703345245707995411784336229159554656759630203068591170900869035956481140964300984605808920546111065914962375200313926385994534765920561029059889918718983946407519848910556478777682330178794002861118121817583192487630661309092318502290912632354395785984080736332422428801803470014849535757296709908024620746639170703333662396538614312693456133255879127420678755999204901945041591698570167263995559971784716178314637331655716580378172459525346359093803965692659466413107702952159196278550319028447859220660423218617508665560951291780030100314842925210872521885790116607023337691368962474219068647670347065025928280421255382236984751725961562965623902631190135312927730276237800365112333550188648313532108216628463350886149818118588844855024986296126804231263128455892110157960191062876270633109292941107462828036285263200107393651744154918461079728094316301243328626069689245123691398303582277195397342671113780803321988050274368106810281383791912017127134569122898973554565063985651222776284193629625414074709660418350614962114342740504512083383414428076629283742088691443749816154063816976284120913565154147906018217702235368172174978538509810896993679504986930710418714587385830325915889206168401527561939578765049975957951506973021995985045396654915520927662804879593990088308861057931995987545649845108021744585778241101313816921445245444854925468497335483726214019974839329863128514854251224282805784676441878394851918615405875811007500428811173345127964202563963102808705931963584427155944574667687797558597232898508221147028208117915600500847735100982028164028264073117879679659640439915325847719599864191256310661234044097025133596207490046478443475838035785081245966309093430565476859284165062708639808783809974134752798492775938927771885307432036101327320475563035402620700878291955619599454939044539562380000523863062195712567477631410438610344881393660268358372590942685577073358404248584048145676309053553772758661486786304205223441439874385333836443178710263597156922412445924176172512523451922943632176230946959039128356037834579805689189544594845383288002838433365199487725120110714701669485330428177107312542851026118741793793775155919728924149467155642206850367438509407132802699123444988988043771350721071544181278194273362127943308260689762454474491518040906567499058267831968331398949757488385328972596738416524103412393277075542264173846063348277478345691937047271546045456451519389272982066799951389695420629778530576590602580423618615139764889204189918817166852523694906053740925782256259425109217501726001586227049391853265916180091617386719893403023942132711580119364076077103745223273569754321802587686206595050617586240655201339626800738280105138614968692701953279126269267352531077653985702884315156356037807055805835854893110346540378711536656799314523753390404319024150557472461779703404527561364138986788311708008082764428815333786427499257293677797476513304596363826083966244704292961273512269024160748576384917066050236096392611961091627574976362539523331855580573926054071633056654937150256258506119522744263920519074835676786211608419977029841232878294565259299236518391938815302432310657951413940124341788839428554378805896318784006452282648794367328477582540522033935510628489288191613910428604021091145867736202443876073042450526022144424582210972378107691072699988694848661646079404856280425672106224791948220879590582889105350082843109385955942663342077382363409774324699496737135620267692912170750508503801950187903333824983648638281304547644525353467047032127986886861986954710010011690335904888128041315938807745735843959245987504364922816470134080199172078677046978325552012367290616807673669974013655000301286031406000962296655749158156698247719733188698162784607509193605226350309718808424388826452537903172849359395340501165157469840498239483546341505831558931327896234233552111894372864293554040428564036824958068093794577916886857383768497020636874882016736347083576469924625865493051705668483727344710705545546689949737991693092156835018226696111325847557147055852343505382469086442121573969208052965535369263086263006771224295327317853165747558121133961556755290489983872678387698945808049709955704311613707913199241792415969337447126886913042958142516927071999874058826787947194509453213408996420799504270513015473508125484317079625664382717564226404719728882173020135697187910282893728377240957732074615097805904313246895827246664869907546304894680529434341193941008950471841397192093886828050338087886534553833411874786354811330919678801101988914769908195293161105403388371376846527704924135015940371560926448159975520784676409584560486263402872649686921401512975707278757366324117872438476669225547071879594227206514431329799588057905221091271164902154903195443882867156046654454503916611746967311701131547167883334282403656552972109671979196369689285784197068621799197947622057781834656345627019542971500662902929499347253447849700772049409371987387024450199827401938410980878551001278152224722865505517100801347191999026491958489015650356799049788197340650102845017076585061994601400028015165969959718402917483688976283191042112901923631843859657876544190347467911724675640719149051365300067051912671275453907609045869065368498482463937652999309625780185783946238546046035515743642444179217166473236348693043027578885913668335576657853332860806009766160958146561813891643013804695829970113153437303430547897048315908419762737042913973505046799972634076858024494250656178875094711791382126118245831785565059538766218419366565200083949507872762141912358398670739757797836147266850483050257038563832618067951599040982152819102563280424075022830113672718294165183443944833215932758508845651877703323681105072603046531522384180930894644064643934123884136909390613085723257314472229786971658010159581541658377272909585316397748626721420048939400638489859063241114797897708610821280445206485154753306050843243047096363343656303337506364565749962382585457729000286241808691943790225963814051202502405630063101902171744649108433629464137397184308990022444298234789085580982912746628929394612199181064817889777762292256333211172773065660692143327882456112944644122320458799802014641697610601174448713443861229509458475539790945287144917221686883873864408905874129321969409003048410372153430335268686052173325602585443863440805777511473317661373011688553081973159478324198939066637983695227425330363200840730449121575153113517858196065858908178701849252882340018304195049766547776659365461278895100916641817674460442595626704208939196833993350771471910639691425141990023374607634593989925636047117517539888859601896709666912550300910670457815629913105923918825981217399480943658799636018774732266316882600697676153664989161068386780239213537613601422742927714511343880243635828917044568892994599299913916107509516178748033229742117112960706606091965368601759564339198453576634886411193664867329199394470831317707118247657376370588297506390052403898955645618608467176668494649792755239444648540158103788393144746740244766423182137867817082825236381322087002210312041776608396431752151211562156929086510472512442359349663956720614421216990256219740676394924477994471359474995486440407665591154497147142680751382718374833608870018344261868702117168446836131113768161944062660839681912374228496333959577184978717255741435840133086042458518174361360096204832344685086824794147923835670357888417581116956856442845217234640918097659437698359801986644739300625274065273900538549468514161320616574764705127745957628765205437217922535644073956588446389972955633912120433562999552153382791463485866623621454155918393752549079810402160537688382197750124161387483934678444119756836117678726503616685718930564050336658339505001787902114384748844904497749199986008746581775788563394616480774278361930967191424143759619000564825200056240671313963813994032686077339500004591453719401654402462338425983581611899532068023956514546746853328543528878256171361649861445098141538592788083948566206053426008863637914811921584025736841536512399235777886439028370616266430883642053998978956905574820022680362655865954398472048436899478414162476972419679352837424076206598413018568438333581432697640431920919991995471249809649821188480578803348425232875619419730746381762132105663633076058560787133700981285991752703047299258041553415906682033232722348638017777414047673842422840155820966759297047322819963345303231775886084934739469096475165126024956943403413635108608105655580347998258184086325162713022002559356964668613364529455023240344989966957549051306450003001899501612884436184806202482532725862479797047242837907659849249556645880686563827014589984491093367156616600469800838786900946158384106032082086373408088840890476940826097355420098991133499728102169361522954651624666537786172041314764183408690477152714615193452678133440615538748354821160601593876888955472932831706480462780594699556112073436234474891957485069780517079927787194076278311201950265852582175232584270196022553212922613733109097878096063981687540449243916985525880936039887924566119902224695295858559963556935042212491551615651369057526651617382525516149284606228053463628911955514603878850496992561850708813613255059652956883989101469923499367245336518206206697127942245156567302200906257866581432726541790924541017963633115587141945179657839452662962110154291878681936580419234282417498414192170262500791121068236929255635147976115330848697036216416427219033658057333486672374374681905647428521508086309926784589256273077096823463232553933216995577815447792496637504686802926187682638208178958353414811233649959833365750319567509560158603288888563419713510012948520381858508248620631933400917834093132008089826332975953868906634465264165803701647352590636513635312382988925580183376136844282529258579467028150963155867183244334154216670611615462398371505550486363466929276496717042362855571928505129727855124810467083893815430892127312650849463713709463343248921051696378100039059955679502243226597924886649976126497934504164168150569555078128248475336767016246315720445192729689636360719306193787333739884408474165910883138650213748402623624519527541651228397176018706724625789583507798761412995167273205262356148313263295310460302939662552560550792944293967137662096573580997851641578105116218795563589529333797912535947056573460682973128991836979564989574956907762676231895608296600818389969954295717405718238923178023441163207415361293839138295586381423481787547859508575463351140337495384558074156902312144633831957787344792582898033877946245138097962736257079506124915244370567157599944253785774042927920484492370050317655743764189287076926721251917633782503295545690691553336630341642374967821843522309070635377876273529923778216505871121302428703388374358870441363630408088298859369485900370805220221839368302344782770697867956659353421866152794714978125769982442724041412818430404661253403617578286108655682863093354361318785177654082053269729777825631103793279065093136725503718264472704770119945474225287548703987850864648023093547879067278882868867076236278865533982725634168406317460313645264205452156364110310060064829247823114346822575035454174871473551692983139797231370531562348479651508329598472088960384705640989013546441708790763641668108814388356463310009843082533621366396283426398749665746277294009797321120139479120200754164487869179539374093345634661971662008467657765025437372321655446429633138685695531894810117132761802518915719942442403090728458010637697933002243906094885628135582271390982209752346794098901482438078377915131358490759408119014523871048518197202070976418266627639561436994748249218604639187884997516562660453208790472442296768582103102082312869623950418196201736293383341358089882367730013394211445678466365935504581108873009041946149911431807115644768613790233529834686428097630570421790104587687915723972764656498363825377545307499407628691587374271362598728302993662435709254446294516051420587466633963939324647213551293195066190962969897816158775433187995805067889475089406700623362843224089378457621651675069360989689251788449635063681298805506676242465467723392074712093911170246202160553062594810808974057876822773580885750796901014321503604717475300574863847595206769681467245687104652147263907155059680742676552229671851161799392663432712287190167490807404090089088963938656992192329968873087989642183059020066142791308929533585185619242846402226465894491209592497279006605126988498363815232572103933550678631573500929801256848964236432593716360547993539390505853057020689822571262042970319827374483194095446720797319024265071191161801385106775942523484772189808470479979247487238858273922661260237878695123414980385762647774180538916718045014885603911968666043847337463420087452660469603151197606096568279746208903670830919662517777464292825360570287444177410747010617412325567305653337889609013587651473929683791574037485247734527576524118690585883355240730830817631434659916276159899944883237678923046188860825398405640269067140830420083697676727214832124691848971429480363046129167338059604296471361882623120027629640132603792792699069625183613416879361374326382116525518922605937465911908533710036731704532570993947277266921123573459493746186418167530561457255992253513533251142535034537100815171587295880726721789530994832873757274907041806134503450632918663401173551422126449643028292207142172140342943209613104677511188032871653238646038292201784448845053023558120492414455096417323039890307315611411040325805762656317525127928873228844540890412497591765263478476812969521536596225166995939345084284291335890731338652404669883205007844656747404320002576155605927212362211645900336217244912387447290895278423919766725058843585062784891584154353538795985923211052918384386680200425431573777674728053934727623081368630429282472634103107902610303582512048048760252957666771306247518709534739697711601067722096979830747826712345904737533486849335146114363378465801740129229614435231583736563857276425936632215650460855143523473423039594359612379022968392060353012776937568693621804327747245841498185359518991683290390791384824678990933111081786430952878046664982819149322778972127103389051323052884472667950865078779108386198104583051991832371765253263891013025505902583501677027610883464726412438456578446686196478528380965036643751466298517537311107485575674167615914578639779257169838673288903787825567084558296483085739801834351429000710678579716326699320518191422333912535971382221034768471256618107700530864847536478276746420603395964549405764044328374255357423329041121828524303403801995603315509661267950146094997729833928121738929464383334362891799719789362007959642687515430587107374759327787973456713733471321492245058904486251993163318708676446584060719123234130253344640945920963837471346530856729735278619086363598352934108288414866991464467397331246599360751649113883431690550896564973507982658417669812836275546651604418211724530315715535589344207076449752415040938771225797218368685768921859864735123896677020420936029607151401531730890387146872474075186082370714509712199207011750397260432521058723369740360594654985125802677823993958642114532061654039004181082327173292303266980076821516639419694751609143516364466366767674836749258474064168873481553755647361432414018125342498944461471923203506553339507261252977946654055794975879709574159348716517211193490807864748651266720234201019820477039700992524197059193505114553538357072117851445104377983873302134287254745447247489660008427136572258300971899108128420577238874121314217812358069886342281620267097232457255407587589615801659712959023539523398119037223996499750132999628158291152958738137432791418064873683449776944686965562927029724555298818533691326734172955675216673717127624408979303196760120738910078855476438108086745708270590244471756238189557462385023944642168725923269003660317609521512544008197090968062896351568279429279185304375304735097005906168438127303784106735406365641330612068660239467161553682976986145507738760377982329536407697610862164311688787617660746989838885381040087871421698945475324546087152134750218782332552425930811763243922745264072445940711290175844284573548417292176000379694713983044860823600803076593860812628724875177683354502130006726943712739439817847916706042062208595780800067909063588390411415082897563508562985475796084471022864434975968652333658875878936099035589562893042028422941060198046232425128380614299894822469495076678853685834828285385376267348060193541762763365498842155838281410495413032006435650406717676957740396573094038962819021775349323057228083285196696413706209277285232732037746291961749772036909670990662045085086736463203376558226196508830439977486072522055995585092055954979515662551970437655886561075578691837440113482761222023575072708227671955357217517388240935042656730075176950505864889483831072653707741202785311026459260642705495634699859870701614321695225225401461235233755807268576639277367548081562591366639521057903526188288848811631130352924642932638191567607179904318699951702617636095347458441901506919061219816085178641851129720040950087294731764079667701759241865231866363891772222961782269919357424163843796694679862972028082681497901330236479425643774249378949054284845586435128472459632534965960636920137295821522418409490595568053480539656639912373209681248749074093478208262338854776807461628694998658262488036869068178015701990349848783168480219627105545796735283377307547516518489355282567398813854015859354074675443785633674769518202468211657964478911232480089840947519490775955876737004776387700459686458133611851067919178802322220826465949704248975633406978490169668531788376951761365622860051758793953673597152298769738248778435506287036006075692748933590471737497890919354004183147457184021953003453358050133568846935531164239022414310231030728596841908591602708746822394043772600803060569302640821947047310570311891871672640059115805382813363055927391844835926443777201869972727453223644630843242527446340869317104258882898351031595789182604657233909306801038409774613407390393605001534725753395188582217277399764427165488577755761946808789970119823069543699151222161206309044822036212311277625107359126046152338809492747997969436198086007646512995752691180772837852207994450539800118031435170680859084360676594683282412743758853404902834784881505529698995993081943245739176369166547785290671608138739642272317476301827338664442630324008109845318350829200571879614448926272020911073041791142637051218410181291697108944261644425110712219558725852785761583284867114603913744740502441198895516995775762206982988154592067134765409767860257424546611815788820328353399249887604662337521163144948099388136788890997256106476030307419980426292868076381193004201450460072153572162435878386607612567727040993952298484279844447121251916473442971882464757821559910651540039118991960126973465295967807056927639015272588777818668366468088180518847108254953526744868632002717679717991622797254808349923146971604712057213761118831409549660256118609659447815732923031802233326119528016359660757457965610538600908304774148752384057193933417474423876477848128996059558097495432797547050490304760251443311294762314105661212419969944886099854837377111610050587852510953306667667315474715035841338800317130960152661751816820849314181972919677548979605854806574205956475780065851572406038019715711340296702544969963811264640959814532573288043312671726434312762117047180944828427918437374574936764753735581183923772789145775436992678955122018857420913341540595213942802065851159707120279162023745801004176600673482928128139221648278142516667924592076196883410063827418340078549787661472442423993341001455636124003537147659731432729115510565663911483946187219390573344464526689314629710310389783778583803371049302292470969352441336757284191298728896662331097298604700596413783606100753929262217117657049758586440922971286119864845237512104734740522270952666971725486011121946711114027402849133272272248823674002753472448836519469534084545371259694759479832820564318233473671632333714778835103512919944198693014790802149273167454156786034521904796882421532931006625057807468063099844294357969207065233335746001816062643812883183786140651904455617015579421607259361159940908967454508426193446732487125683419964938835075096519620605840310079215114684644494848501015496975780087108414732147087100601929669791546174778592438331020599859545590878746319347164127421043093668524373789424285719017923552195894797438984439687349461929084396510631559194553018670168741280714882444070179553339416997279879825066284939873272101325236408222577130801662525205642093539255444471137151374860361742329245352317685593383105332786666021939790441725893148967795771663851065599752392949444327219563279063033970735433373634954702270605724316637639899045906962469060290212794005370770912006484234014960672417272472404137365615043860621317440017597758975283071227989260207025252472831184201127910565651082283954283257965831032788896126224392728064099955494464723155920759488846403132483152120995006296880664553173068825094946900841315475787455755573680088451724241173967985606451702705097654757814806158481763032186044009165800022717976283754127661435315400889202124084452268694091817839823280560751055556039087820557765062487192059707017034775925818611688545184870837165141239949353700774902685544402630762160891280858865249947717762143559950127420585568048051865907284877280536512622456293753879082359965875955352683496400573707191280712539437285854797708023221483783652663864097060799136494376258679719759558262844633741893426092064044373769271791597326902530839120664510910867501821296257271963422804911767874254047711161329279279942505642995356732413361522641664156722162519745817105833169249018999342620340917980123069869015590077579424193782506606436551011180397463948414253824697703775083862474672471520738472147443986538436289589678528417827179392418306555572004211796776232946569308141847476541214952793430860218457931140325731596707284686738065009219074974794706058467829331787569482907546990246968580715009204548039935821890706291705106274821477426388869022392072073703243488152401883034783065191646076964223260655032486821068186611406820765332554718351621933584497982850431514050573129130694416313753916211272103382394190232380012441681769634691917433669304723712307835420559131990528936645030496295214011274055268054746252206371612892598798555437519688509576437299590269286197483136586174550427689237928152876679460375688112015062608991608796043451587679502143323686107825817117413677433949740103842287113977801260691082926148130552088930725780030518228760826450926616512091277754058723171644893863985867232297175615749881235075934352818145705355894774962175709553458418225180403176849839391436705267955847629711692300655355158235788878615622762060355549143772723983982503489833016126590920741567421383474442981970302291086768387873348382579266128086800442233675190771291291307711190892825807660910999866466650054325552455135076849670599014328246084821244952602236244628828090568132528105151800456692692968260384130228801418814809416518737499299750011204501276039689660811573761116824661140091697872808335438077463308325276656180240235874582299026543135798702034617176667488777495698837631325393148779561763762798490532782856389357010491693705462424692233635407535888240861732315740016496623477784410227975456640464333316279099688698968317477107361116215040062760104905687421454964155768789457772111045223156091240066879231880196883671039231414484273198802709244827998729251071254715467793995583354129130424256026083057892725130734209581811471910005773022209927096886706772049382380141782102291147455589063755132699448299516878230507267018448596965312739139296101032786744317310003961859234371839504565523425308876651484039007170401631422848614660855011252615034142315795156839724451401408018339653193467580117882669418125709574263456694050841834375716509760998684989458215245259072158445618379612765009482028282671749618353595719667331333808395745964808970319109419827457736690461287240437705180548529107710153329698669994219102332566802083425039716982415128964181230496306902067750276752186396870927656599629360987000460934227694915738376865575706887627438995426834447348241261880082091892938950720224457282104646476248999192019385936416421385087348640471289275416594742852876907132570997387737596542854920573929729499588249462854004323841455424134846071503069445365470316697033002402641170784605417285390789412821156651092744229737484191960314455608406022911403683705780210384827993130721112513770811887975720973160974230080932890162975896592045829349798229578671118674787616149151614645752999304239453555803784681733289072462646493851026701346040273579089512497622751248856336340366004481599576903216496429798493494546825695560573675016067024999411198410051402430506055113894491762105733827901136265973054271695501983053651509670381287706652349406796909991223174791635711143044960405730072541163275728751608520109204959472452163950667680671844703139946194249426202820659127098502641519759377184149962684645311915253884009161983798571263068595065290717692173167694959007720256624019970196489281265048330117538493704264944154076706732392504171039232994155763570351854079096902077984205907461252127215223376648531849124435993881395864846217695112068497181212566371469392763367466315060798938699567288222889431239789013938208680667933105177762806268840576881248469966147586956144157419475938510945466763785909382669381777068761596692378644096003281813276477512281786910969982089610984648938811218878972335430827092683456725642574651985420832349395578998094797066780968582455251767492543349704959446030338465576361535062140570729244492685981886353576487981656222716435966699649250047391380726937919774475239485879665626983723552568756723170464253238380629558459737765180685808251510341061229248751119116166978380706989387815237213411958389193380292336587057167383915064412202217370109806026794622939651325254438286683594846943914622103578323838892196216214626910537958829885959530867157585772702873567236427579907230702083206244203658408624712704107155055749123657794219718716713849146065290431789321561931420196373565478642438022194853895884717624820665237315339428061794102135926513648980368695503153149881096837566018020133590431556035440909698777314124186181432248235443136232503490277480652470077040609907148487497331240184645823518405847088390527305648527339361846092765927533101567854280376227217792283501265542052545842829485460605073194598073496345921277811002420601234100283992292809550236017482798091529196569799281733268236377602888499915428472605255991867765599602913125323598488678802220148223311152760107311676145885444488302176691152904636351829933546983943241319127650393624250224835091308759864624956370341620807331092968794677558604713708926390699491662290161406284530886020210235931673510822593991399269847039197312437933469046842330055019017721983156066264226561724886360552006106552371529598437054240768882706572928233946638394060025836015281758248059849205856439473965415970818656855287302212882585086108996206218212239061707120537776716403708530315345566377282408895699692609393650208734102540195246333474846433738519767786333032898588600307058374274262505295096341449166009867503217946816492459044738711614119396995668109705262534348439359011581545846081994581913071764485121674572937030258418687341615512178056415762626033975957758567867775376885969380611997150984575395456692696576324469486393271296816377413294607116022873350209476250054543014570691781090049954466702751343985698957790217124608612213293493670471081882358928704438658254728548449207093401121790733913766459551082880686887671600401396405048626377820851857691818266559248066984290146741632514681983759900187229573427760591014065857823390798652883400482717024028226653951769857669653189364381485115301311664272448161007734751891893297948738518427633478356046505862855355933570163498367347392639678336157624336377648712396232102929981152886260233992676274891412639355611701550683689519737273963498757517624886322888275590481078269732866863578063886504446070802510514991248555976066842313617180238738616737773394223195066468030516614196847596871369456891740415504923722584835745182903611725879799876940387525166099030335151446308053131242969977872930443633655581346105067932957822526222974030149696472267282474302821694519966666088060009442893621799598354955785665266126433433881586200250606194251970437225573499972035484580123275731771139447459302827180678001404735039975191734162175277343937865713777851473747759775618225115124254618761489336252925978789138593450324040797417466042380533518637426292944242509516893568295644461251349060206575108348794636495556072942349694655475042639802523602768609849250729083815097140542847891600128768952323804567171612239269005728176864095702301566200252778087854661215804308604591193406612303092732717289364754527635307607467357855348966858203003617789266023790317838765581754368819603948261236643294599343717944833325715144244572603035291057779736675765248647079177151180818326505790511606180227783422129497782777245246820128557805790668407880304914080682147340753499493190154783274938248109114021273678541097173005587449769119770219826927810757580333301233860013594575516415556626643514690426974504906328417820781823322686103365363488218496656718121986884615762630913581732584097763777684698995660633924755899154282853724117883500943817946526592738222826808222529677857518668983613169445158652254547782587040773075150017561048245365891336069315528002354991936969755887916363567293596314990115746108226538625141492644554936341300395139479585326842989701407885305209640845126753778925610853758989609795288313928049494986043772570138549407253124355457836877622475247124549732244071607669503573017919261881644172301432821084062341390906426701379038245443187909537964071669896497609251963495547535396104439155729982951525315203762541805886529653132006130090418869157706648083491791703253716330319088296952388225526462243199589231924941720440684604542745475174038733818758936028164542765245008148015222161647616164579132450690325107851244749944410332295114429192310332503071902525491834009870247309734796172398701476135600847687925525678902074289176882256716203522951822790317385959686153860797122633647289447124595484158719048540649882520240869737110379653111539939463785264058868138697533113429631175696890842263615994972649657984595840272200968558052865797022314366497363195422615621750061900970183404262055001842720078646174150960055412437062888152210512454936041234167372146901094941958561783300862719505235958766611679533643636054805340261237370049416498266923761425633243478522277522527014771384862247094106801488630699142795056342603793261204056509730533569605906821299877901156548837400394473645637580485796851513705271066589867508060488163805298967719495517921494465037423388321756625465958968059748365762230629175437851354368457243079535938343272173316564376242752724838025109823843728737223723225827081965860707509756957466717997620547417995052389125655156625492041750263363667270473907152258298673157613398730846392121807355240130159702783604281663842515778307211388980903068908768982799818871215485847523530914190455672019568356505653713395117512655663490460921652314343165986771218055240870059763376265109948311596891131644507664332130257249235090173937266641076190862642851868705183940749871548996309853076156737385632181482092533920847025149185776045547521056662656042483128414987981232317203246937886250211832509329696473480785852663697194731197566566175650608805863853207883314496758945930578179761718849032218320289010534184815557698708288959197976010029680751550900231258644820179797245661504275734181984986854452671074426190157406690007679830455824533750161420932852823642278103402678310247210339477680548879817292039507865726704340582049907209222027851635637101294720926537756226891239286579621587240370060738706836537623410775543205614249926519570271499339097340998279723048992420406355640102141209803260735035643843646188378068150295001871290498593942562584857848846552342334597451483013619636613675393817764319643250950114246540369368961318009135732204748394518225118657452293429313376413455804706766576448223987329593401197584271810865140869896502298737991317099269348939061603815339056396966975661266985602456092887756656756327328255834442339836097977359218878108382518709767621119472364708871494316581032572307163256448920271167808579696242886961841313509789381983275916251155331122386014714314372806606327037123107493586725198199354396614199513061988068348362566798800430917842064024856761890431466313513104419695715239163242863860802885844260557653213864986454718110036027484705145769022265596109474981092597662547328589201656648416869740416008240121939176614698259216074524081349032599438939602873926850706099387149601396422957282941813926354473318558046263341150046511293312758809739784601914979916804083409177135298958267867876701117123911278878448422171975346757112270095304588200316465775092410860947549209622507618408945728418824297604593465451822424269273665091429821599957388434805782524250426304370826127401340463643235668708233962702360993903988150678390868598101665267418351691958043904732020545925578120673853979262414304784092445269133978813810873413914879450516887707666688935703843184135676800186890077857843015948734696133289607106418591185416449834926791912359043148130407963552884843188890101962771037974531784738821716038197497496291869967646362135653570351331818809190253378741789549205817092985097083500189379890707064335314770750460378455337574670326155677292708451787673541065122092961322326846692737222427141616515945361359905359378745604194977891861386415799722427264357759800812919748756042526896498830630853250294246549354338769805456407944347323095598831371944222326328421395343658071662217756147928086246228477584482146535283963519366186761386512494260264883377014868821010904292142980829862998220065610083676361699243255418021764859873431130443622533171226225072142232477752675316226132819585164565544312607035528975663249590090866657289828090457655394874037547056655807115536057372055066637559189461409137336624919160804958370372224779474925370998283307095244911204460336875495178066971162125917591122392383486605141586010216725299145978108449927163379109532286819321777769959349326589457734674670649262681114075315592987749466561324224805533522454622347007494487083148941173899244787721898534478275255295133207294218330893412102006389692411474529483855947330659231583259275737819094601831083574289606591154569483280113183562549254005291112169449291478436927357454637089818074904135678935617105347775164936139268644412331794019747687721091378291408509589506790477900636445490525453544121537850781930131981511689197507317462103920132121422087306350145248739499848277684572251489737511003718294766563485849506154771978938227750111107950088565415436551668456113872409730671541158510837719819365912211225081597972137959170540438519851757768648933905139952515124163082429572990578935099116269259311746707502932076696038644359985544740894031105371206311678105696441415365451546244211424490630371023279684084345829007195761752676471860288863908527493092533646927081745327290170317849996445395395816539507549796980695211443539843387078457710708341283903189266263222549810897376714587608832064533691112775474564704556451075622703560833845787245391549220090690031094976776397610118251711601363714472088634307438305880352504786919638966407313233361981840986405091618926498622701878256609099562120129920417862130121297208677880610106546453515541864203073059439978050292028643169272789943742131415129322071935671741121283685762555448883441072461579754409373979998545511409663492094621888588812682891920923080849086918961206922193284112221457222566107733157799016235451702229350647829869498112757403446496605707088348708349243334330742936811020714527127439276396929230195081444254731629674604700629191589228860582904213355862332086156672873868111441708728997930504522608150323463109568962362737107811996681255103255218051031189453662093082074675908706881166231248474772245803808569413030461849773849410914836609501469161162179897990894808772587316774238895381943549995043006289442583125362657011456166885243317481097044240377887359433250192559415896084117358087772937334677975931478467547777836166093556529269376540230901228634071085106561251303872883822369990857536731136681179133299661688407214467061498834477539521733514242784580263188343109457877863750702161019008345469725647249264643998088902278390170915706604241706764314821878105621596990885664265886781011125518171324922514492512976081507367916526729150482265465957949537475020385205546374610959665604762351673358149800919950620984631500283914975024879509424583816747339432147232605578485475981996554453113811506362008644650373832700317906251035347224034984065459890380422464178113138630921729875918568374666655163454019368327814473910265784105035628934179848861676960011751665008125638420678789362260319033069213169978084731766993718946116856769017338921656265333740723960604869860678299824388625210819216448315107205094916442315846233205701258511421311330311174555571521752247856395303611710979955197686213129804414254494292849766291711921220181124458650439068078958666993866321304442943310681605650056967398291098127379410741353404221142708600351114029242295816384712240940668098810823176162401171241273726057789210441880985254455889843679395860390886477369694244802936227739408792650614996457469125833829283191414760848274511451264632142177998219560829944353082873944501906710228555507330791871344239659164711477375370688375112120848668661976096241467893342926538637615476840734746655625710114992289879882817022491859789139357459533257053159197409623237893708187226208877937270038827501201574916833969845962004067943506528504018290674343014402021272624087049093554800764327354733446905976380020867419519385266061585350129314467147251063968138032281822097786941828234769663076575519447385256988222385653558317706755992741580352893879656252470179029726766546085667066095969008906366400191927123344888780189348973077712023973901392068385407213517726702116376864353315843771969986927733429035435454171165895553596703438835564716743833675568323472400628081426335557980047500863488958230862679585142261105448869490135379067822245521566504258258318063319218019747951397042887011581433605220348941661540769844511750888984162677798512755214970318614493326728727826989471875895381636710232996069475517754047503140173226607482716126669083388052726492726636117691552021751889108470342972585019569926995507703886755687823654937079005287148981560113916347969917373579981861362171279936463921612253760731957666724653974207996200971332369639064270044154068494564360634330103465664053296657257095011719867326809888940241677857185653754493831788522439941084795524708620428994104159596505672550519496206308565448019539946329915101781674235533750636877750447999509903056541743361621505036328647385875100269039896689801612964298541486700039198164036053817657190805499038255134785297189894336597020553835500842718665042006322849343077677898207314688416288616805257809004549742037752286691573514469265509961296298497515266520044541675564774399616077552750440126909871133952187863508685775609068794599473686755014754265290398670772567687482743911753437405669637453151733227766590790475828782702662647100805823024443966045350344110786479611043537073583135447046655499248668410880311288874543415511595715164050945753807104095502071038867317295580239517390493372303919136470599810250345418701880895641300431716773976656786326501094280383125258708320358827412510086272394118394697021372097470677043808204896033670723479295303608024074499228457358478534140727425758561725652754514312847943151438828865882397336798839352915648195845680940876722850887955452659284104494622316424340875666400296208496878931829799408394816565565097931657338037899374522310191496227767906081178977688997157544705628637846423744862693300696027861105466318053176292694061159019313342505545853147844132654496458658905650415889767161605145790339490260461552869896911457312982548790903276999327725007992645856673709452239195952498053250180170210593129363159348398060340856892962907794911763206767338074738308744250322230647742996026943616004611938653639034661123791265493121360870524885670755502489525819801715307910771988262488274751290978109919488705510510129853645739246154323483030350894296851355251959827613654715917251459063443173205461289535134525715842286276279415426813523300362113547732748352174604041886467439812193432326592733363169836340761902563654973435831410144384798491736740294241583106251882725536683711901245811743948584110454982288186455247473886300336921869545628781035963055062298656867788753687335478395426409535444357825322625125674727678118439680860372735548303525778367732609969101068442749554200347568797640571627761039632845634948588962984831376651375784100296922015204088673075060389843954649791716356807392612067863805761869905080707663316545591046782672694884551900472299220413736715717366936880884756359420715987614079212721594322115216011954970149929096276024388136991076477811589815158715823554199384352647858004408207880014002611800480226386724544892863835248901016791088260009100557549877509636787888886003647233110315314755514290922545045705539780771906699108183984045678285253985552437199971334345467231909477409269963065577625016697228197808362277331793482196912283259069106798481636964560046024738118864252497924160892861169880538407982135263712394745498410607142067022143132087095659547586626379371243564288378184063810405816001347616904736979155021425666268913339534362291138711787829230175797224521965752924462384538228741857437316068436985186278547213907136146559526028322891922715563681308032349113469914943915874005167942569940893613939544328340764647888445166144418137312086998927624224166073481375946916146749600834674861195676180292165815901906952951783455970943722549086231469165616645581247369288605437841878526827949630807911084735853851926845756381947436234584405717794872577777847135860225682266729182093015082006888446740453159470095500201872071319442500712601492596121689564143598153241874134699919681954240210172341837110720382451512310322983241202265553637491024783661956771301355506380291717546752422887520788887820768408486119973898047279483559823911089038464074178822779372325852366389593987850091159406053645410757604334472273450732646174903943173891638958535818656111522010013932025505837047035821920160313753293927177022599172591915116168863936848625582381593790730630225624833767668695825621527154805039299932860799584328008385920592501331043446518433860472388620762894783633235842343616524576565389043562795076003847734088561725122384745270829765198217262675797657345503760861278200840547449202061751136321306843664668259473872984857021823353736796298528898900099840719476162999291369623694924002746569373044183884594448554642068370000661038280330816078740689480030108827318220663977196931381284578847184309667807450744284178254126126021753075290931158052473579873747456320737123142241922469449661611798426235491314596344945973179085374340835968495036230880613971966246046989655123691369728962157305302529242489924942169007074975819609638852739832810394613830817518079143818828362115355872653000515990511188061576044807083615740155924679558028845982155016669372208657644980195527773613208784772181030343804015534613847722960406046866188864082983053576603554208560632712432449266462759627110124138934621657724194344439648107837173442156607588708479486402243230501795920197800027425198380438277659115465164869075569264353075733356408689365176977840138188235835675209020046743852329101841125120043514645044966449092729322559931113369699346009768325577557006185310005279517675284497850824600734411383448850928215724095920874952503642928717067850119994744742376537265874313989422576995665225111490369075327651396226038967221965038676786848077194505807614592838519406295836840335077688172018941465657092838327836870773730731837748765421356036967421191941640303364007389544701935536777714668205803770674210076578956744659262453143438849658256081263784444283225556726256997419003871841490818005482408363151364061707462444768108814985535528209223864674668744387427944446468838977118443396406119029127017511317137988972139448377007785572444335942926692943166183223961682225435375897713876530088078019324543383987187982364038313057310082038477366830729336560889857096108329495399398369279294609114073515439579794285143666821071789434321812480849685767380460716444284332126708222792314636042908745316306251644479001870924574211924109815035929246320653753803556594160058909973680569174962926666002700090739141383013542555642326248836235559632004452637623480426753593140486085225579003503371578416695223795862818463154813717160846781255207640157433438344860063620367043648677193551084021253181287867372529594758066708667425641933428740478737109705292985755460599955947410096317373880265651339890056216298778653877321779223401058716176896869867430216526694504288998005053456334513219326423397070723509413691611996826559099357773768783741569931265699550955823408206152560113968127397594790831941395087320080275840175543941030639788767230225088193392154245294848628708840584389938895953022172040514192792270635723700088995915473381959861286034259882517441557650381042935745460864365520007593323522073572523331001981941618658512389262209688697167808028438598903880089608480228735689844125446721591026261984496240635041961899133516583887651067554946617919221338893792179454691469321682292477992433250615420481595055790445847069970058010439837089838542787920174163904694856230811469884379803727134588379839573961611603438497348544215141851371145809774663028782010679545250726920339719557005953100331401756473330902164010973618453689103627972460290801155766437594195116737323145708577094651552593135089254142798292302956259495483537394189639555461231030364455918837712791731615755653402575338782451556888210645382443570563178216977118178721650718783606307208992578437699789591448885561068290548786194249347326437897934507779789352785435315613904539662735835495844266786892366928825885061037072027253227794309650610291807593955800603279587456129956617606681572144955490043189668222074821347392499026700942839237214500115021971811942925603269751781315881907206266778062779287281651794137741685680727328075163684344521698119654702463480751596667789965791539117671290867448503257854307849433586292798869298476467613255169971510788535252976547934147794519303008225654827819131386813713637290881601476576739492859545458235421673917747871164247168014509803262514095924089482657773071899371738156923332212726056282266044612581404493672300019581723159948431811818031630418916383759072258949424064291082827005402353844850855418311659018755998259466089932399686750789506427944453870050904276009177073926407851929031110278556840188370761320036739994227299227923980200502288446106069942601292431274895905099122256687700775160902105885568105509682361007359541035637890974289197973469877025161740412338320059556488462749697337264432113055246804238675362423388005304984793788333659607708254646305636667833945350095486061045208618071080545657816419012347339000392179902019859847488966597963700322962996631378922840738194502218290804280903186026010757068523274938611524655778729623924509071513000680749980844351216263779646230372361501206525965532753904144070513531966912519469379480552698017700116265871312313093519595722052358427625938302123052251208127651848923764987431072921360687438099410909367477499119341002668724868841190017047812969367575465047461240527687357032449381650154915154369464294846990201465103478625819528741792947177670425521602165902773960665342567872990442944559452792772888868619608354223426969011055498647376587429499621334306537178394978249590255893750793596945399568172856410135458119362614668199884984799091072615060618324614359825106937420460440634156527603627930259660447345699629728873691438957073647584148906095548434390720465290645857124446107794274635006146614348477749940748624091551810457116537124944933907992160226472146589306387250320553436447856216764158204141281824691988205388458776694091683461457157918195447171602474758133557924708353538852506988474451558867925097008466638733063806552177190962318462165174785945870529331454433199286831815855422822230486919886624481607411536776188609770912195416546593195303813805694867070225327289580130049119230011164527340986750614865284797146494084804726373916770636480892942635998293332657078175419551469892274870643082913152148616951661900101953501701317475097216399342776711171813562914988730614574137676136124501763067842280593291789289475040985716046629341252277312131240510595514017686530553767814177517792031444624897300400225206460497018051110742899031464938543864077036849208399653350960222699149607904935546250132755165616544588597844730111238852898828809733421207107818429076762364740305183420626553548674818970901514198140043152552601899072496202145406289618610915111408744757037744463835653420775672846120394611607699498361568169169957304265006970072588706670797848016930711951274655891427619525403550526047601429894913592316436414286868181198824912335980918888570827616078050789060293307142477742472892463954056986771707446151883196919405874651328630607126498867016796564386825522950767975048330355233320251820810755539911405738949478620870255109513394167617004046196681289675999483793166719789243101221415129566442344297241857478826776929797380299293301934816630007510556342047391956318343521558559967222929235718293767288560216205300428712464402359510609891732297345375232028860518057438263909756005320086942629690863001397675137597995258912225075680220138155755890292977929106927797761093598095491176105809121044383116468243490296745600712832168138151009375127219205998636021822338225997549735239367416938622122182194835528441002046110017737968291236339746684488248032700736812812150909821642003015238826966819319274789971914640085831717823147326187040256737142317648915922072102346106738086655773767292378110619003276380632226690305612128631453705715023899678903876177607146219990069948508289863017088609348240546310496601595115669042070433848807467881662169700231579770657386451689179161423791286803064990772846587072144022842979907920077961474812134076229241119994654364456786280129649216673671161794959990772339868898473303291579117618020134205414708207356969111679266953951156277083367656424545237152186066152648748535444912610207054951608676696698613238202908870940220839861539524051318195597132419175959243328309568310080736175152627738806620859556310510994533219006874686229234608378898995114314773322764185823095766169801177978072996442551159362552972975048486637823322603000700094786494346771122852064323835233350621525922868284785231266770098269664169407767734489742124772176734799654976860515948980849480596717216046396496792659080205824127661114531337263053870446138797830823362816131674214167022186253176657259349768959893588901663304947494719798815521717871098981192105978668583215632398114937209413282656104988316151725678163735935909829002208110182090301621126474737242154054165308771216453346890104635930385222315583515848862456945515651682343743246796518977973032769322481571082048647039307017218095306564777103172167066661483053434250951276330098226057603652136850948648795699248865184521274917862247582710887978134878146218088913444920944960973712204746195764395409969765224794025310460730209623545681608981117654551227026475222136636669535067341533660021947845434359072331788849767233839784812935914545127429923883553442564241461536984585487610380156297641839384031184414161553749581829515008822153937439792873600224454702428279474808337180103884642254701357020095663541744828630210277559019123688279350376631649361558540500998479319738967597524598249868330588898307053671649511879909323501572705537843601170684098461873238178436884023368065111031335094253023532017411965338034327038269064123371841498040933175775668050600846017637225290959935368121640507478229580046758241928404397412914863732209141503219082783740212218078736085716553206483581502424443867740924665902180621486796310140334546559633136140230143361069056396855745200649243402279261989407193536618655370250156125982229700284743840042450220351965853563623145409860503852006659217337382887168394761985021648432548639484844465342479373711217838468450537569562650090487175552553808129509486105290250574102113041213792200116377589842886969392464425386740147783414176082220728384660673064623111104580666591035613222505344547018922846656548723428590243999839322797907148474977452569078441521506067000297783356582441991941493008245207371505800602273025741477657187798230107458818623275333582426750233635426878998062282516683728122210948385841203161624072558842621283456011583995847544630766474230554979164012505380490114702216011661143366169137386052600954650588157321081549509163940105529898877800739215036743366668885855726136890766631538912392694777732007393828603672464850537272926399527745673789508311012074141632743412507124869851064960415405473965235741539111208792963569230908367325687973328423834482080376151430249745472541732096968994471216148810386736117433955560486664287506336093874411278602457996299954077808989581704792319380532973773481290979723887059175205920353528187615179566766434829691021348767143934307357645428905570408970496446329820523955399338997429191631115343486113980966252891565120010818354876547242981232833063248168852103780100372449620467253271646687971603558402554769510307301778606288910867990166754399564002462179862740301741736429117376634919651299496929772512561640972418494735111853992503412438592737221929340241057566609257607911319609080515815028082570184214611460540954967529217396269534712490666997837638355290932389882223633143428047294162511452760135122252932825189672962851794282963992088341568461942178398026393734036875463825260633148648766225049273400636924628816103164372464373856106534943106982041123688407758699530086663711956209330294710658394488810841995408894718050625157725168766872507062638682847212833888930557016468815784541014610113588000726737971301153372137428616315428967694110412043353598269538043759384790789615378784806890881458251811369919447538081396213422630696782542234841269688584495569681066067518048438217348515985030184077936170302361354052829455602317100861155349152310476148252883531541182929008650093278563080974725666898657579909334551092894032117283796663762991135604071291027824525249650383511580307885209923334466505626732094396484463130761724123290500279686965906299538720276087066992234889829964017131075212829267941192581334574481319660372460049146629452905879618880552606948732513217177649759234936686333054013499809020326427935086027306535647713643665006322243895702330778662473082902247225712083437206869234678903961709592002619798633337732346368966788733544040366207588199267232456327259148377329085657782454138219552041076632038734030502420179611385008266275489653015130555435812127050038363392004887092199799931253646016116623159089578170140953145376599037243213741053386839087926135694626076705379236199472286618685874872152533492047059193371102341099993113730309104604143047094230617252756916458894289184508817053991461982044138957973508782997819490115159708891950915490545680416935510953375910488006137075354937973502199051235773406778725430639304452118525320352760279413181830445405393720535161824394238878080012753046732642994305703575180039547915115960185287475068697696268860616807413042682772594544847434729545760611805322347755479353953930715604881956977377252216445052281736035032310419296108397913675990842551852175007245678897656491328599815534619956902017052744705812403203331389845146387591775472468932614106544958255936143330667299613359088154789047418538682675122651127630488763830600823751793768200509015485165419993440602590856136538605108829755182657124529424718450436861208247933989141698998058934047127535107594634704736808507202549001140790073910200268771852464311456238160943889774146107735409087560124992689905001736129705885657380987581658132116850252577169845727265435297813850890717919926996633224797717022309292685967659319907769802697085371697115695889878137654640486789753038522606877270983309677046999494819393496353550519043593448334920037900114490269974241600625127629349876590285346261539736301175992995037325982570261709235227638466321700505407174425478101369385988582355065050201377138348387892736436436100448271009591284447124192560292599872880080540492143869466024452658346132989091742259713622669664146444145583824653346397943852733352062802038877542715843446286104467301978912586711883488319352420346650162518315312894472875341656879047964998517691976738288074852210015989474623179389836926672391512351352066351734425182594601480486255980675642593986084257003821142830600987568267417111938182765699657452766443234716903545624971630074363004749927237939736264485071578107665829189014792399715510793009338509324593193894214133665971898483467039109422027044620351319752440870158703802715140506828323780018795416894135090900257360936270242312261056039841522608319061924124017919327336307453134418884194452880554853025207428545655844416149483742495544707401023381950472635264328839609409639713994715023226979561388918287702830382617376201424002059002342718055252682044321556220959908949316881471308466454686537281868126367332561137330435558007427381980137825405359996244186116414225425618472137897554283598899009334687100435546830029243943259394469487427262194834238888677492440822133688956980586091740866261199696104743712338364219267867894930346444307650677161522699110350613556415833417884352635696376610276424702265225547862600610617710603650927078231000094203492291443655847146624329078297582848151402879299016354236545432681225054255733724236758157975820793344301494321807537729123168283626035744161256848383361089578615454326412346586403219180004311269570744622843380264619510541270362096613749138587288045276493035820378422759608905653684620072717735131670956287978889645553536380027207894510460345915091925378512476255358983157159424331930854810132348738715072273397304980563858319013195941973157012586730550927724661633089180139852893292152365861347749360611754368440376049569833432888988150872146015276619287583055751670420191363795097960416469514251561979973149731732362436070806651548969934747683934588718292447205969672668171866806134400970983382057388865833460979578136263155370234427959176891174695650160582997504939045228485807412389995135550398814317995490687587874686413312083688418355173454770885785707086747019380361905895905037755536956968671819972984834379508148736561332710845124288020342613897738150371362104769033223430765004700898175105636210940411788651097612412868083992483991759922665564887463985469463041035731741233515767617920537696709393204518748881574617646631093239045661155461985333018552155325726278975831689997823585294212380915065777252255641168771174805472485561565433414716329146752395996975687549067567360390581910957283584816918088089657080899693857072111560496425599828582394334647255566110349568321227287877117191002869440391090056919670801249681353988055973197648091507214696641800913128941638990145703271735083881598783811728486963814458121157829086724747791238288723920194915300158647801151768996125084435429094835075170604223705443025769243659967362589547922920165949106865523292269665769874891803130354617377710603338350488203890031522308607095515091684797613834959290223565496482064262538882292111563048659019577575900488751593401395861854903298654590399628294959288632070336898858639572525725930026828447784310029228713462455787333437889793893711237461370386233405697484050765754179236300721497519993834235027439522681191391561027877653275270876569232744482498646421120763361837393220557997923348965775306418213606899982767106405392931158575882392357560319031225414457851737135036797097106444055459534221881682975590411648402175427762300958994016867709414403881264204020808237914368640252386998411870040236581094256246559015047519768482763627463476018231475744863688956767862443178866698396873975801357179818131505464025738744056862011077554562893123414575264555967877571717352677121438337338264597007293989804511491756977006573554647323264200041882801608683619671625841480404940589688203859447044638120640986470937226970877888407462329688091707732759160747927913215251062223396951173122003511905613811886355521990776461447079743032298957140557614475570077425163819488143392849639899839067995141026293746840907206375408098283072030895262417556927272193101289166524367982379790770164896566046811605288414367129048748872707457251084690193811665888341745178953035759050873142324396589473060723466169971589625524479581126779727739257947412476038853694750808803720332762663170966503363639795127846306424765452213472912687591058401766446273288937589312936462026272658559307540317249102937236322483683961504295933570101855536336788525076903612232836108918757929623701852004839235207751098820301656270162395718285269127797220563688115349852015102272480490575168311581725039852665341705817526433246579502844996525045061532733068879550935487423001477871322633802221761967082439111725178960619680587054151794062128474944709548605037884896142083072670928361846016820283606589655119314087281097176591284264718308902847739711387738286062845370661987798141264604515804758488586576394614472068320108109643727302897533731481067321586722524621200415927464094481601573415000944393015612151037874523881869166013222736831332398511275601622848114305794079257934799392486435285862782007336112402212469942328565910152574861666460135496249958311855202621853571202402221751647406207035991490523929181136749899025030661350779237212949334622479031502587075401216857245824243739381043087796879500030655185355957865649539794329640103060027734507681133259919519134596605873146596253608344176308747390717225619158215499288848918881190510400511126807549051032099662804889132117090925294250137906278248440797039548718826008588584151609337088767166648709109254954379454894564368233436635459850983515746432364768480884070532640156526789136788147997757507292850696351791361941673475364699432826428372979149311133510848445599653744271832522484391276969972406299058104878310329950787878912589400367654682689798988293699982396334547106004856666637139162310590662775955576861489014423554697043579831318937300149087223074030967457393867059880232324604161867944252635112265233385369701983199264758606832090368791554794724711113361507464308149140727261776686462907424621155159525164931169844875492589537434073444882544781415381094843462265231660032164354209831810548394465222695546415101364743623174212851601332073970264653297165541137320044453779782521341640369407976525623316248999490745559856468369335639192036494507693514866922466771179635467105620321497060669107168132035368205512192201921202577847178109294234131520486433708165997388798867575328359142213702856780258702709170725038697656690456068016239241779099965131373676582853673999038695776760881004746163401248500463567732608826441629868307870551891615036237460071637938637768814147792274880222929804479746740635231324542627333649566261214980944445730078770734792196488317144959828371253936999746180197521010106034483296929184539564101350674107028796924570565718861863347073884376716637304074744531005755087668127853959450865450221659544658570685332649867436835803753262909512680697835033780080218527199910421065761368153948754415269435255532649296025761961072836084552828461802378190806200275856640546837191391039037004884211242869403284053903242607455243865664931514271836349751610078425242843892516403086424509770072687017318985961050225507035021945426880066025984641530976707067532693657287501523584640358361556701681223139787451274037605711232030703989478819593555695229522402528099806917803391483967139207233181151829656485847892848356383102565032536488489131613932998588769061101511631253225637989119419795257873933659466507046613514868718699220122994815487503892424368085970118776465981278267781018501642107201656548779575477277935613019855675656389961706007033592870717659807663128247782517956887952317587021081970576668615415184597553110597067599202180628964629248987825224669015944423338349726972889012135512557514412710295980730182419472467844123640575157445369132843382959295392332797807483251700076814231312320103781776858490244816713544016536628637987082092522082486693506120311327179513164203335021763796185415339890102964995083910900664024977133032960676139353705889772975341495384640925648652986696546437605753249444023160416582516441412160222790328598960320210063574065060003692194472279478776448024726028406059703495176644038071486931167036659468254586623534729147155647159530921086869795337422195873611737968526113653709785468681974096983084633033736532539492542263392841950648759105940779091055846536525941809698890225934171749792643605688552196108106770676178714036905710628476934611855959287234651279454138620371394535217223544407544654851350915224958090645047547531302180897621482306298581411653960689639934561595455665653189081214662913602240113619080170879878969618478431973925718415727542754623861188463085418141000253422933028862878126478344622246889420398105363555979376440833500228333091313586279289426285989541331870807779778052753787669590802052859990099556934766127869367868872461141318740254162082252800216736464714425830228320132388190589532591172746869250060397743753110425735441967770487239578241928961152888527002238430923389056274165180309668096687962644194289905170646957551981398331892644861994112251247633019114270680582877832501540474034186871526851140515346215206904746870732249014225505096224414804800063469445155645537502011934978117481760712246870779323523676622416654139078840446194214295413034121173074821441488898417920760854163350053930431035360883697206230785691945525376119304339324223522981495205513709328651715002446088187741385254749541930222646860995493018320921643327557809223045774202072539161550418683431277534562479673437602908167024671936963511893405871987716286879988677235473205577763865740439279881255243431691728688849888632109996793001267203175970405355341802283477315717870779045111382230330058202424098874667939833647934294432662002652688138462084418349214705869249858725178842982149980850528873685737523414702642785970642269335242957668531545041960038943091156308950488323121448624219185061023444621247557738388374080807953235295741254138676867061137539989924891797541958253394750927836183693754446648578990786275536326862516548297372819095598501786063485559233780871482528571818286786710432535851130524773289854326137210469949153020341324906554462893334554625127256283245103511105598761031639647686393395924871544775342172901677538170416189824728984947406357359419748673893958868765092949242496537659708544744767626399522511239918442146655235079368488316654260507363108551714036600840977657158769844162518275370927058046337885329516784910125129399600153134533298566188644932302499142669649064430742924226451490437149576641544146003143274321165023159658636660820143542014674505747150383826799815905572776734980609385683955947346340403300087607252210717742765159045931686475262443947250920530342034336071789705887534058425990167065120952838444149376715082764755090139540446445132343882634101413795474555529979693723833730654253907329347757860710883423606235433572899245063084867005844815951703698987447146445897772441015294188833615806551968320174078300908397543100852331838676405568632606181055344545643468122228532417178709282683215456063777653833293626736539228416645567509488506738930860300239357730044202344990595752068785219162440778816933359102655314312344326177340829073120704344392939575826586808395999432943729092419969221139678836131161656752125482733159910290750710483126271362965457236163135196017996761480505589942963983743265654304862173289488314570343093381405972599479323355938888782239324258979724576966365935770770087561307345375823351715555418871083612041586640985928016215855054925749627694225965266558898613823645441586411533474397353458731277611742725885240850533088498059795220270760057854670436647205453842967225188228430908227154576733647844598753973531229847329542279812317608021287332601791670132238881186327419264523137561111800094591858506621228633218398967197771561373477794981642527128942415462070513858742082413620759114795336577645104690993566988932703270618031202124900869320637466734096938616824122561520843418737034341674895423822472869141093863025204343150182060725747006396418552269743527101479142351071272932867256821006196846050038465313939718414281091413903365372589565429423433338853627390407028605086272538141119574350588144874152355990219298397175251919402235633677498873823934755831224518540050857241972488638184181491925253584269504085191135101535364818894864295731311006183447246406607345179908863790855360007662508068351960016475342662579617470342331505079580491049783934293425426085439138708440853633204503808430148370028222394904604221368767910390618520277553903596974124985057651884877610297398770309795532314832060334796204174920075534442115374086512166319258965121107949784823574912493049399991274716183126119165762407217492941255381212804029769619258696476836776325105286317119902468247143916499654911493434496006262922180597347288904597704855090120918277173960151348596219636555655543236562470926712742891816951886974560372744455305948923292700786891688774332875765046529021861751413420541054740661186701389159232955298167511097276555126162416414014680413733498053729819576148182857764611308238132770684913166767986927357589231193031976300969167913222562036679080853559446181924767690502013922732778199054986418794098244610917567043602005584463007604756375760838538424754763031056917198546965786038121566332794173912601151553458173531152791858412125916114382252685604055643425631054166281944374235516380765178651930834130825535170106273865072601463757563253098599108076001297701336943727928189067000889981298996101968838917963043808721464772536091115354488759980044841608593549242614834866148394307719688096394359578185066709182621637179759135089974198198450642111823236001225627323755253868611421169584805174965786853043868032722175891093052998076281398104901819014140208477288636527667301915370574800129715734579110260454298890893019245387516983622693190088110734918796865452008155182118366411529840106960110607273527747115227974754441118013969027670984273541549763949343184901850015634431571386676247956132954667469346492252582854270495522486094443444677351493421881702613872670347450872292404270695212991111732902641936566481410493431841135497354851772452203723336897041392041572181797114694097152679238594890626391755708966065149203620788376062144755121958942156148791521889601565414384204614024431038862663159339037796258461360844150510683914571229656265989929446998304640382096136162683699056882846497240541183462076338910606414007612895160870379340223232154706903780323583077100022486952021148138901736781864931166126239155629200245524916525933483612415808764583585796610019592180515183027184518014980802529081333508440840884078486320445300334701629766375184986919219554563473589198610722442006696077486983486462701134455794000231380653616536859889842561507035728336519024229960189394632048930411062514355660467561478046013177550965232442679358221918283825293027354615006615887794180548116025842672742029872103264119803979929439870666567204010034495076845248694940337849973183810387582121138096258773162470421279074840152594767993204586950372808324064202098983510192121527613529903020508831839336412629914762289701080707768611179149460829024973520401173442803582039317448875986871866086266229513172718482142096275625458131794866784858585032162071074225987959871996316111636277670362326968048731328777353021960907924449019593733571968784733960452039299442408362873582131552878679185651053281953687683891824260202721465088806664802288871111168156472003286903542775657387139764617596128502578915959244579678905697554979593770977742722842149807510986725482452327396505112390609816060640280388258896441388591489023419993390784244988716725837633955679557613561756888376003361250718150759120124476867359005672633971196950521508072573728955465000306680209733805153416889781685933756151649708823311002523775797467110116732342364236526169050384306226534258518711290629077435298705365423425552556476682444521807666191920643101487882115635782385806517837414902442534917571415752796135530176232402536828058516391023073807097328291054819941993746517053395931077577316925917531755802295136031829718794098998227581390719210576516083905646607128600884612502594490624064684525779434089889455267573587489532193885428434343801948785353484544125759154373529594668503214001876089914661548094990776863606628127561436018068275207821648203743812651018373662836105070846294749085204159650745076766766123126801125317201009376073535615302588721091077847447370642768891395056422119910335871906195269994055413779682042416302550273150332013340687631377434885493670359504749168059348050009322186919447482190404622657105489180341242080628028351051985760783114812876242843649556326609807321060991819926474610363801762106694746934513466695545544592556421624135348780205249198846680029162374746700980030187564328075822995998773360770483411060106230664500556964013975948112316201571882519458303531512660675945770393719632988937785891513417669242408219456882698688477125033101940795098802845203588185286397245288650861780621585346713532599506110050864101228722673737369443209461949915857441749914881528182835042519853343694639767767723190738184550125249541323905782330710473479914288286313791522776609023246782214703730098211587684247011241914284373011433107796213941045851156070254397600955159319979009150361117171536066315159329069223293211821203027599391946403447724778846597111046413540582049048662531934758197048704895657677664866444780556680599731940454677417995560126319881589812056286712714167518833101032031414753911560623597035658601719362893988410185037623885104317142673029785564336447076743919948472668909041154094076985397693793777574834142769128594791192068206256922110621750103738131968717035737661709274623273663459970484848154038632265582540216243272793821329507879194476162494723714596262340002114729573115164159107165893119038948040409089030122266735929479176308446717825516394155577149444047737544760511279909109608466772084704162045770062601292345297601954962195937007372107298213164352432704048389606409978178119254851491546580056258837239528802418383518640407812782659643939122727007285782965189870309418532584769931333253391742718562254460446599094111070784829017070608754009009110132671646548472162222725905544433955303144272751651631170590845437325031628345782145440768339355374410779329932404935973817975257445363518462616749541794302724060758051269452139002276087084227256631992896753874193650477704893997267234202067528842715733584725197665639770547131106784237239315055392653398879951834067371409639399137670327681646583746643527871369028988716704708627944947987339896971766331202515915595062407226695657333749888957566680479708679221235199837745327638569871544397844727125108014314270896110754424444676813460858084685742325559249108056877241532039481606343711590374448480209937793117110788575243514699999868486345091210727622997423427161774348992240671334386894412534113096147813135657014627374073611600218755457293797807322919554141600914446418278433435276428400864510387843150587447298769172318765333019294222872845789554195104518297517557579653575449579350329546194603004325080661376616686405148704242474591193990767976401870565432981811614068111644479707520054016980819122447360362227301688591398740342649769951034465972050763530712378148052996087200090348578366070293749161647804708137109335236268120497478259324449249633270111540036383790581838169728663538418525418249091054067273290737108035399092006545596377687676583383133701074790273079983854443767287436065110776538966656581413532338587342237229290213378309918100938107813147809992070498105485070084232759858765365029747216269127114894015404373641374279890743501768293301140660049632103658044307251092734431212727478499925328273111778398655459023337783913278887997788008553176595023751878694566064783997122388282019076036758360318726863817914188778893683482458014117037562536167033451014835612897333241594445150976396369771854808011022887182779331959732384442219508945596454329699250137334771099251946453388670868704536279525802352146616933131799050761840738141524252711807078325660502291294118826832999598472050813643697848179056451929380507570269606131147633377645288375645984403386835997667050841648459408438921651077424809930437248784919673598266146389782188266543165131384330600076519310147060698266553864028603500837893787372404543720375804109685797088518761101980106579019025433327204844212200821039699540133049171423689106469743210988619483992057076836718006023230486159115193246660520847323119486283475638390830517996052670256858269485638930531466053680057538902620888335244295781024227953390298786651759083264933529444584568394097755204420194088280624930978922584970344988915558337279394326560482981398360160325861111182978639061927385656339199424704099037341035859341471177240991739902673297857020837386536017848022813718761952168174244035306721931644821253094658218446835826014118998167209293067238160297124757021745826514277111391274184080463107728307282306976465101371723934513349857918692008002936669062020007518572888918901367376924472949396930879174834550325611008411643233617403134127343261775557525979031010800310752904913192091990234010218786085175045047208764146126025595280901875059668544326275476116836993112560287141985212609864204378511509053302838108432258286347133201335787654534241352019898976123029845548966275709061774155754160293421015255268636168366684875980024920673541222677599716266971284356312188756419791442080483143200914935314888005766078507475823747652443554232254522312605983204994780644234519281619627485181322561037258830480809676253115888304450545187891420944235337134007320688114499079593061612990806247655820486121731938750392383722130783307980905728671353669380433090827197824972276391247465863423512972355134968648919834696722028661760182877113851528034414394811585722942892685214364156308718360126753815414155039426980305328098749008698037117028695620990014071911354677543637997180553591925737358679943539480472929933332372175492296025275335911271663921146946006847948714654917308108757875900592986278748949028168338039322712692308169266522795985389801970445126348998772122447492180680537548578852686004305166666768587289862451219155486731254523033384916537190944013472605346757689312187270988497661310412113946133129663803449051061687152081570694462334766667333194641513437047032294440014804964019436113452021288717403971925628256455670837456302820442935849007243709986795115576515348580997805256088147733386050152547503253285623768705149698480404242704984491347324963429570778527861391506260531962884176406937968473663563117731994942831468102178967543806639463029511703280694931123570325705325144438570577314850888253129210689097634117748536059088552344515116209463946816995629842807676205784638064629915417837789153945437744095829994744731811563481511755368229800784423882777870999246658929641291761377153644198243988264666942159074636227730697851753762831965825663823913650121593278363849277171456757830608477924054419410342613353569683709948676266295665678662904070231812572882304930426583811892745031414881081594106188151471864218656259556160069831729589742929677437404541039506109408855047272652785815713659756586784061321438837964988130581240269181381610800150701102201851158080304958937317590229654123140315735048980031403162178280937088284863793721279932654225045966001370133760625746410738989690864353641970470778882065113052696881912097793460138930436211623074338590639510902161109916008763310472549226904304835480831096349687554183910199508979398051086714114873506257804678149352980242187502937251069294685868794292156446173690045566458738540432750617979681244079893449812917979866817180105088454994106109921224002233523949510745111956379768324092362651160173893119888633527373397611065059725480893074169969051017482271102601684306056790315735675559351136471279114958567984704794370858014765243172271890891892342664524417769203177061378418608213975333643836932021170586425986305440806551414139179823921156595236289723673823181233068794331846440866517332771968499898995127848760430981648136209661121271984471413008000884599225872710066660032343472162413822587515405939403710570737938226260792486112026760563951685405542078074023925578918161545831605606129072489017182872681143501998353939891738321439165627831943278266917171623603404717243312227898783735732372035820926520431269963625555723900144894189743660445063398603090154893045045950166515601162164071320766279418867235016986838644472750893579014297339516839728974513372751302945038206670395114951370635839992402729234713725486951559987469893948858788113003841333154062578093249143237423541235330861941787324366576272151244120933789321774582668568876984733297859533996740723046195645737072195130025571935517537825920431640703818615282659823985926781003102295640633652588917792204516148002466869676775779226192937116383314050806097840092053054394929691271977079758121704119393511071549298846140144243017419537295002062297214046586806201647352585149674565319729886122041543605036785554988571748796743667440641750739315462282571946034318520462889701658654755897654767600850411600324466867159899942028047862501164122872158115081089764132809654545347948688938955629568686622815616763156939110550781788670442546597269410973885031495000815116186350185994318970163719515240397375564876354384050112216000708210408717409027002627641717990791248139466729210872174932995597153348681463565214970198691951402450304239911874253978555730305728594731261953879894891253713331414815050045191869697597776119958229620254394756200951126973480933979343093605689154649720065716899735775167506613681605004330635283552174044321122619076791084071499545472101907811207811528048490748768747957866245216427608543749924588508102743841843437407399346088811267188886710827952754314150418891180842690592306173196369519318747731046819529647266399720368598991456027959065418269108300050646402773335015850248440053127553866269573074582147194214102356182745813157731252249298189770629669643752777768157292282722899177042724350871901773207404980859508350157574808730410125629039374582135415370951982379638730026843667715261638865145877877309241997850637395974240022681023870689432508477268521695737330555965522883968161050348614913772715448599706460648911338077666183606352204355974126605573444238796369398333833998542789286935411039671788969744110102774077790977775587370180011185972719468277395495250468151865262159750358525183544296626298603870337311037471169549568472537287076006469207213281069341161967511697081041991447392987179198507701919513421949780053821110384835405243999468441454330937437071508979564608534426022989627294256882797005012906584902486469069624097008813227135946549740065382947139103166440920934611551793355592845392631710751426280456261627673807487159685593372381898973810156241565615755076462064092060810052962969162250355211318493096445584222853775235863106329586352243077016340212818693089353951088770069598094489935984098983444641131835813791796374306834812714139578851132940076840100540124520042825739906712744846400892244235428968265777220112096141879481796084511320446954578405227780772960283277098117804344537831165202930717955062854341631336280347867541726401288093075164391132736170307172833030909337411646945723226783855992417186487161011764459897099075402291022690311726325915714241919036681590447759724690576241059002553916787498706943401206154138187175545556886395344047040765265460205283002622147578099372561079189358002082970949389972246659665729056592600388590315988243592727802268429752911074881806721322637984958509926748045940226891406986581304938449579137499628146272130047475509714852181080462171114545178398515423125937758947644528152639132020365023350316000763553295647259919161738514543958154635740407290749430660692364101272318892999213516590026692363022578551416762139122527475099938915487070399446909528458374109697738785802756198935953735362524812260895226609841427071502051908861737925436279521766491519056666439109473930573771447911142120785228861635020629161452639794429197823065225550365768566272511650897716868504745817495713291978607128828667183353331023923340798520940722141373234045998498334443440386406110296565682739957790031393709966390992328822306191995264599762399408041591634357169839203516348593967438546041493537875799765370013317791448327902878147486173607493333363009147501287713668693444970214445431134804329820764696317565426427668330374434019351821504506608958161606270825104950632261930884282429780081795095911046790346619296114948748919075596116883728996080353935668470427004711322817977690702159775178949043581579068010323591012968863795481015658274210778351474345252810486536359051992001903215222224971484694064282106141102660132657142730639335443183973636610725401800720359783482107466800449943714443082790095805840802353606615401480697319927199605883178556085715077787727582885110317041924032688389477240497958954596628716446119669262992813435641728579229681734899947803043019684944585747653514170768880459655606530466350055355050426805384590780867287748229421933442866871516656207488828411591325991003153542257818693807070072238464592531285333647047960240355426134338838328360746597105687601617541773834363835849938300146748500953489182460378536492327633966599006515039931286839485688274043145810145810277156686379109140300294622346935849692729404338776863018001757836557816732807342289810853597510670741350676582258005952110472709902903887155236832862064087749016442752540122224388794983927155248666577417911868093423643238092275306880129760978831093244055736207919573622857252581345270884078357074416208519252758909637314249794146770816536474063879180532600063124297266723123147898677690525708462940592889868263092740490791954311869663991292438908588028929318485845789955470850842450056294803492673765505857759016065981729918355310713005198117947547017094153821148375489847891323674120782239845932250526518694632339458841918851215217450572296475940498450439817933473575324123967754667237611954082641390795801960875349225776913671844643389569289805061587853556846046372100503455416188940671162451173656045191006479503964197218752073114557540706720805918695699990835273974811871573372971502988943316153245168993244954279311227961717992527283751716084738489140706485041464492801518053150459275404628264972432455481603479396389258202446947625056093174721886565314017542536120611649413277574782777739763642833285505566139943289584273646409420640948262422983573153665209915576885265535832639394600404878696147447632516627823125609310211501367966444789767224925813277615607823071150026629693518591510485691269513873587571478743614896506065301127443345287440596928219832045430166978765962378810746962536638901122511951529426478825274942529358110196874999203910203265351514346972156411767342567783764138592156645869597239811241082885608180913635546984667118539660597047340632322630684476285067411299861847621940259558694900028733103457268296717072079647166067740241501129249165080374319797074830303663501825885441351625214847163711105024334063533677709457036882405713322105635674743187953897225493809929022136832597068678466933301898695019333599916046159579959129219852269792622820195836986495297183560602817800702764747952761293895393196199873288706841999526461175331545715797129344364687799346920838499264314244625498488009860009497762435944870568512924041494620470201655749276633775586633953153219620812894682148823978974978260354648442426090112214582634186544406881439596881733062123510648876566543158472146399621463775773571293601719207378897086086741253679883668806443234209399716223792874165953684612612014842403091232276683890213559221660546075933005497218764673611603566667800125031432607360685200872106011347013412692650791817448951521411343809907986390723518503676442413785641269995997730319915247995255613807762347897877945155882722990542818707760314059582150243027675153811860537268638790614105933419426583602591334679928391154556988173801506213033045600506482719867009606188295863191842659348686014502750722412319423007550173127271520269161698059673606841431568028052292806378236937927559128394042939547261402134208200785970626945848207068795683548400186934308598654280163834060450789172275428268575442632602755822648487124804754982270878812087915821527422131867198370817220861026010620173806689238362931477599055159107257300435181230936231894289195674228203943616725708963982581150983278654885408992877414252352915820192543133227384824319402460170742339458412010835799544599175047564875988497254223411763843150570027839166315640541404018851857097768471784674350497763229635653416775899611788914068282046874456238520560755049880689235599252415798609285106390094625812805144126387170955965055548579681198009139794715900028130011054216607690187115578682199854486660770425181730046367705428036483988911983634923872703097787114977516894559801818135471186505851863487918962407780419758653592500019774920069808131579379111910784024325278555324593184960900394533192708871107370677353093105306917697157841782360275070444151363577507537136580392031778924050317277635163216781272555578091416363891447052669866668471204684854200929114026959796804042059678570219476484916423192270272843013928552848620003149603092758593028281233929617499992535161269936528955881743765119067621753994286629322578208452155297030871775776904872150567744406284083297795331245886355476145029506203690152342338897021488625570856465927150742804075072604211082761838617710879040169359749549163194918145316090576585896352086711461605907973715840171237843580771503508109647206602593240881833273977223500468073909375268495299608676394456289854368048655007144385645894736634229586123617558583996539288213660915558533288305078770973323499873822180098819534929508549450032995045274500625885674498171014050576058174444047276828878976878316233526235868595884298459726676158612385854202473886807035201138544843067111790939155928194656826322006821674476278549613129973181391462657359961642397544436056575908654305577873647533333656431977193471874835611282456653017306605909727258514949004116058897482962630664959304733350444152884606878025448473451941971987733219381658614428380807590593604755535042079071222972845691960339411455970161325410146847431151995225427601092251779010610632223551808589451980785423228202594809443204173949901362592566148444479993526570716423628228014762742341999570740580792829391275724938535959600361618550217941306059261967991739238576967389446905504947663437007233028059716447071931067929942532721194971720479431527625044167723458276613958785085375501709207028017619678026623745461850778898432362503303319075188350161721159731937807597121680323449615373333055679845927192950626345310953471962840474408505275537138434150124198273842712342056695851417743756312471917297281571192652737714135310530267479420965701730580484594911884956924995219448884517113135560923933921371222170916539544965328663022019426549891350046722949460996701889279291444281310416276507800128011335311254618075522717810093070829794847139698487229721191485457454493347915832481184197815109072730355013667282943175809603437807185551176134344561259896655758183431657977318742888910764003367343276855351262783153798919678116642933336364873413614659270853781591894295924862324557816503034701377563034020787714696445184170123836329011850543956664067162490437613989684600289787996560231761184693935371346637297170471469419312225075761666784610982288605142807145912464155031231165464356456031977274283734891054524385330463021101274114556258245186746438823423732510391296913378102560725570220233852096818146896251565427229144586349227376431764887105620803816198508001337262674557807422702035672062567858619350273772087812823077240374589577218197556247069933059363838795790809477277180917827666383191587204964171095358440859712035036457451712692173116796369595177335242824729230780316217483281479812146578378195015169935316222638616475420271867353281113778374330042273297001221293738579591208649923646129611547907870441577902689270634474196194547234444352879323003341822954559348139027700891807251335381643955267593584783488203744246198924648997773542609354495505410735263908256803329404846260570991055504805190931815181029539701217163495887316146281709509170770007235889060730305210102831589427302815569468699229182423846518833523262008079365643896128295986514419181558522694546888402548438964199715159785344021576807891724719537239425689264593047543104276398533734280487053652161768126499297914876444181788763980361381241207295613344152174704220441077403737758411759605215951717209283966741857056605868543943869530418938926537301146310342374740038837646193383168216453644781262560776263591176809148692675425123076291026719528470773142257327359755532787153287650416767563531100449454001481854779643700172585322113499633915531334069422218873539391695295283003604612707526025232214938387757919709652330878925781611575007452354441587364750711511445628339627668061846977644442731476364712506296265470445875018577858867773017038338452241079977978711024361570853050179490696478084593678239859566151429437541076764882961080553103190369805253520520898912181518615610545682245300615508915196668644994859623934259198042847898507015608465751786858356736829468391744033543291553043671723554197861226022243895841462603134066056916606740005618016602645134345378781561853252898813216690753553435657718654427208197948401952416274365150946568200454104077689473744760384254132287450902066834666862772031399358915421129708108226110963572684336085097802610393708172100350065451666947287874776417619553189082197243969595144347353540631647796317895576705596715975014708135582372207642708747529890031521059910158049797463710591119419041285424794907715599523547506853647833874442202470518572684956611407821082024134950692899800390243990700572447842440833493310069124390275997607302252793180376609310627178324937019664979959265865796151812389856618027685280049230440305994950061328390677891652644137867687872538532835231689923968468190659272529205622795104078574609403858872718669207205912170308817384557061695327187356035882632992588790050326170410050718849627381168343590685001777866596615157990891445187237049374372318863671140779806070229330487608180035245274336179472463578131555021091992120487392967842251009711271636069604556052249363972376859941034159432256859091603485947839293046620119963858047117308639869110954346045201132068965278187642344066347367010130505383311199547187345974943660972390198184981071931563822599510640035660401563525689213798789553872168304696948347046271021622933176565279582835332377067427617225233290273257467011860067846288826762779109251138735415148087244092473883899153509240295934822745870168768861151633117831818637273132344002324696098366425782319886271174318863914466318252666397879535163867602965511635957163612839536244420017441710859376436337512227181868661994703732679877703525913315365195833463306721623283999169082681394293858993794396475355157807025393745756480815672169360779197698290139502273291316692383262663330341362328084855690186397504320699460329238300977207674170999214071918710386316033554796196800115928294488230065383208241634129201641691185288628464200771786480409774054549309375699434252216149637094827965642808579005039448746212544110692075041022994027555935577885158839054264978235323536821132653228110124390972012893403842752076866513318852207293276590693695221519287849094961112390852810429040477349471814275604807320347075535064278841426387135930650914552686066933222991952412156299204809904063082533774552577257933129198416276055351902180056972497238407195457248698565193721892544185355577662632019675688155698783753684083220113025553548616815041988673154335996972649870298789385819688577445773751914011395279333692278326103037341589011540621649448203782859006143054327414030548642331509714278677712879252346012009219418126043247584495590268662619283844077759734477578648161092477539764791059849533516597536480706226412952715826662632914687120898269707594832356345328265091580052028420812894350659101841399445310122577799245109351560838221332663996623471489000826771677870490503290020297269847035379005978259542273291857245342206566109969494845372804576552252104648913455168925656459513027400919246346233590629341053665790972117727015011793715916632005032470912590438522281924702060773454298417870035255037324315799460062251477408264989909344575158904709503369260558145925489020833396211765369011732369971700773499528529514401988872753148603196469043115281802914780184779320325048680875509529034683291960572372176926477946412222209518076580166099842330283676157837250148375823370471788050278214084762004517558342097861264986373133606736161641390503205814226849171473075007560900731859821276588339219546963222356736273515264455426933582555013848920799623528301762622159713011402961160118631419812146832968439511309554476864954359052992719030784415176042383568612870435940103198743155980206123980483658142226016486076338841810437094213812200729501873957696109073360589196486843762532689254420959854986411524084523767576622714683823334553759094176096131525832109568155473528653415021564378463566091348070282129293265680981941245747466295908443317636687184424871339884361181720163575074883976725551713283722002232177210091016144997301914319224567379458298183400919818922299274202019330827208175623828293452790191418811248128422628066272187422121087344529715066555039157488475302790896972028584143218239535898725521127327249659330080602662171336948762619438403447382582750464447212108839710530087688390807424254556352006310248412840634262669927829357930199415117056178355049886770626086701487713330565862712988230007731935827840032396036552160880678506856074962043827728840358099720495955213822186579982493641533020896727989188297661284198806737302981450693250768718721800268250928915874284712195994590247614655283627615317060151004066626065652263863993280923967688490313106807006529444793370964931070738545356965366170941131246579236605152158533084596652995760925554362132272207384475742079250686184905604403088195231286799677285977783088425304438539591328466376513489493275370243777969118318039974150681209754874320336525013399693010100954051785889549381669444748399927984835147529493267986084395295492995197327126559538420444328128699433301970809953973636797265947308586591698559295546437250633684712544210287051182876568429693947938973912684590954097998559482917337025945414402324198604148012813539998600571252363718880067765378259977226437480917379093334489729122695141201623084397812244936868661856333206149045891839291365180276440707114103393247186487169821743159589024199297866066788598567095254722463056006080972423171413324561889769262789461962375412199437529002475138313252402585235981473889982518555585322474251724503025266749150256289418882958592804209514292348539832543305591061164596676000836344488051844507185973879035441151853277559318903842343491713284289127618652018059313124248433252390732336735308872856375043590907413714779108936501237576072013527904911646012712271630240780160280934031331086121398915238706287647121049768155326936091362304491006910123948723328053808821201349741487527061986823649238612053065480143175218380125786715700651071119213615929124742662781709165857588424295185131774973875634479563357738587216847208879261220931814454211745321056353882906758673019547453663861085298914977417884072789470822572720144466418149136875508927579680599301799605471939720885800065324353861470502751475400644988630721628263523164034401655046496916333007130086283780191450289471028335695017041031387494703424491447451523130020164678714565112263124100346652276354563775880993542621447698638658596728545678751068856163057924836640082263450873997254607893927805739479280693524902840956644434126331756768616708500849260533526511562373557882786051312657658900324419120047037894573739445390135451833703230435273201845579466794774039783376872832637116892231816914403664798472949823371257665945159361227078684155002727999848407883083805624131560691746878084598616893556876419854960837187041174913820457841637265389436261982413500264511770317730618189249685792479183764625256491915076938919142962970947154098560609708686523453364559212683697460825770373606457361932870702548390723057851372733921017658832986415604513841260794189261068176696718089835857032373297109331528983230591027459872509188119736892752292276156258730486066169811865920750641513519970895775414855744410518970586044421954940348250608595969970495925200818082879701574397698286449291731938211875551572820030028862603026349971219385868795826306935114500719147287405338943866823590075276054562600147409656793488195431562708384723306201833437681934209981075077988950483264947599951475417769125180250332049737398750881875066992236651862541018278704171890446146023629582221365276004162355985366199249282835040434651850016338208944875164453878134122575142879793933594841483058947568065345561907596658220093210569883467049387311462022566517279283535801136817966789975108314734209422621519008826682501001418573170000316462335850216267194347032215614534809772765833600191328254074092777812033233954792454352938701495051919922825150618503093185219379826309273097318967797409667195772559931530500989278708367417588663934918738465769250886611651222424473474598720884229825690287689284338219088612445767105809294832274751487829470915587110502953053947750019789228720131098263938848495937098400243790724607105725118658830609352021518354280173426840467851247100644808248088233286153949591379563886190478651316460971075124013223936161883085103697767777535056010578666397592172948579463620849211458836768625788819767992083408915994331022722103982255444499336682017243492350582261497463118200269605158592370455949329430220681757887535623021908921720730609939778312142642835505151224975212479556655886446414591293067566680989242720018649874321979314114975986692558140384545044308381947649816434406750639708224977894640759848830880720241232702911519755192944167432980518808437774385204291554889739406084550802764395364491436964905640585666453307083244924463479433467275518473088764853328727844771349218004511935635478670508702915444819488711220831798660941922006650147948890271974728880936823506372036523054405837459248235011751616053328010491422710708869522353402110289685963467576228307126780446725928057512191466718851176332246620597467274915564441539491056391385403037968284395852217238747076118678707764502902047212561235781294117427802510781595262170730901751705193956712121410854181462505757073886987115112404358429191266420138741384706851728181067189731679989910895735316019715917750505784557195476080604947846987369031037487404017325789972823873188271377339442330956288193153705089356458612540121499001103834342949207292745286655683028927017750847290326439393821070470185731555678441670296837982661476661563452238995534180390269421329520215759719829558062159163130552264258356743650711972300535895797788885062491872640785674481824473059419488800731385171677312752363522585968280930880328031256076770716304021675270085067034174388239263437064527516271475667382172956631371665765940839168113276720558577859683685509863798420954519191371939594941892713685778469342661862720301501782387727176091798578397416900073537048037025264689179290114838005705992594325174175367319377473019822619270842637499420727457987603459627424788216331675101608304783026802518621243379292391367267995363093823723959588384909468878781878213173501679913763980150738215146969764939723245283840960924888135927825334959671512106813815831317692374212835729866901621275934741299927760935831901139790638455303482547874975571784057626596431277354109107914172233946949147539295761051103103544536756885517624376345062618347276316317178238291772450504950542166330440655058570548765946877853219390421028690274146552387347404909036784462334026758356996662092421703143644832574270134214193633191147277350146649808094159662245104659098492432396481324292446358836772257570787808413960601424200430490089990912969820001515015262573363833470657438793172713150992734369909917138966243558483106974494985461632260333821902346374914867075480331526232235733675011699064686246379493202207380998443664334887626560884154180384256845792960417234777376501877582097343223593132438831135115230258930424425163511231240428408189765966292943380036772218094867444236831960990099142952449485681741545703147796542626656882887979911020462966733496733480704350711782428310477559578851062497993812555355901151513338123068765012146820120872290337547040000139986680517783860866413582414784954571926245124616651201391758474335574008609770813670809230154210519556736835305336912552828954654714801580678785415136640256633799236079186957491221807091853185474782307034054376001520250696678663881239578940396271715849021045412333261308039260837154219809915378218456748711881430986405489180096923762144950187332717142068303536818225210343905215885059844806696346263388639231719925733225929652463109255742588828030785501181368614996956305581745696913336119981832263768903881003822040170289632866774865217238746863955045966666032432143253864326327096876985058295004489346033449579902255702825797031160686672396027063551699879735284946225293621015737208921333072722532051714131131681971752772092869551402918186617473141273937480952961255864244537238452037072300420020250987440238592611938425089886142857207248618787195907046448960955835705584793537516493213855004284042089430279921464732066976243488989452139391126815499589867720983015586479537274447238767615536497412647572123806837349463881318498059155178441099585004868944241220939121059275907145467399079187267904638610265445518658998352543728503697156342153866216930747792177311475871430496863933898223163559767898217312719082562921172231755734097984488477370796434823540008697795600586255800063409395868322212072838127708763074066262637183117811227983273355784982430201804833421913736767779713073138938975832290270560322283583157274555289403739512427513212755562025509871291686111369830626719952817620686992065542090740652660031618927676623479804016733585449197318595362583591858311480888410346993382094396795361206158603086684559540935042247868153552369074161277926844646974208105767163096747127910515024915947004557231146399126995088820152944508100978061409440340205351997346915069767598266749996816883421430472725423615138769618806607129304552600035016813205209358753107137200497144291367353025370463984928890449340002632440294758473471262326355882993513823818208211170652735239471506231350211224592493898246285289828452150877035680586172031410710559489132863800355624891519606041140427216782156360369133184012289783861132346259609216276459681485824556671092296634731429157158767169385816557210602722192808523602266064428946327127789095937295856469787399040191322921518810914805771002617897528982871935705688192417960313860369164906348101071201249111396924849394641069017930344967230560198471844579973932580726728026864784035844853240250759976815234483798036885199820407012154518050084857653561500699724955975545607434774089169249772395008605751236085928724512694833182656078598237529213350922168463521599897851354661276511813700331386809990977371044336438209638678221131664111573167838841163022301771364479386759476585800976566965570061095050470155682910717170757911422638155995511316633296352572259701140875699012366216822344011395537780510850495293978628003963232178457320381758517434676142380226012437021980365949194864090281565719405504481823829517298979211778130811940764468926305443842298447743271536929200082168463286388403870267149838679081817839498937249687048024916804798884976963987181970317667782551239426836488701401457278085500071203292986353435034177833979934335826524442093318845292736010419907083043392968686342326599552583520399182478852307791682715246779206880040049048130227198763353391679074183687309790558985946678631819476811120787665307472168921076577785818814236360734852149699061935835955397690454302051320072132464699836312042996461483258166231886978402508544344019541301942921582474952159177189859622297724205305108169588056050671516526274021413569278678401664705478583914364626440654069045414853535635115811081415433228318222330121621020699345214751000859122763882088212316362157509097243300203965438713426016108564866466937234013566702421564395737544013609362819557632464715418069684766858264103251817903875262224287392595346505646545053148749780580942750059044197333206814332306608592371686717962499048819776466280042580500197202614486729426417097252996100492299288492704854505777075867678907697961412674123888693615929711247990447359591376837220911177715005568397972578056593973907711464823940013151412936329746328998178714130114174914951774169116946623637505892750351538957021126378299155051860252718450839132014979936190349010782624861038167220446583656971886063029817604406420215301474865979939778566124577173762618934848773142995785813262861316566365944290128453251580605163674587337756672520528192273370160964463877268782591421624026916756817611472980107375887172154225630832871756931538637933905798915910290920517606496554226683278553770571111485375571367449285297480576899134618744171665294332784915428284985847240183365592168318293531986486559674706663277996502054542997423063933203501073351778707313993193610822042449945661435211180004970558524535428894315797273240414272547349408343865206342868992689006611882986463794829383549410962368014290817973748159366046192266555120428834228793313448991284082867575241414770183129905166847687662413921321853450519503313223215092311915994363012723487794397121525319464223424478281171194274259769831404818293201196720628023889142875599160854992743630001063657832504263338367734377160365542669268337851958785994759696987266163705091109507775991257265552797432292204000843296351310391670944216071920550993294120704903865291781036751144017205235846684741684709766834721033379320057510101939989519303660246248970803609885569042630859213188052657041774635127370820028960276995127525670652561452040301373890136507167134054640536144599607875713385209543176465159499059321662957087105440730307034310327509617143209465573295495475295906902241033702458361705033837478164642676540610702399819862428540001695783530268810733944296369281359724504193174168669212146449762860870060814397530258243607284357784969697357491308209806395412521780328975830764462315204188428733618631806200764144149490495037718764999742925074609249243008106191259691094675123474641246837960491261724425244647318053508252634732409268878137582181873494368224422641807005348803786152528091723388372873608090302084061118003087165466814901472141634098790295631110489058294918809120881708601160714530356218144835172031675930767756137041007625946556607173377954446091323794706874754372922369692309805882636226558404151429243431268880121957049779346268139751351889131183207730818044488143148744631427902487872193664477923446680782173226457355601742530501394878946654186576032069295710990702545930775189645817075249439015861454825207789253150789638195382670672337703146216992383500580046170574691848058097572841059110831211916478194574891664356323915735477491853667509585264637587343052040278435781093998259785449929220995000542339752445547043711659866795146686063839753475302349662029734992458556209789157133904087467255689070945636666519520038059048467573330848181177375216908822245074137285245666496707916136182545466907186493259205498618924544941529036650415365984756403675403112102088234399408353873881141750029449091442527471080177115366876394557237344322708330175203657711405563606033849464559085985129460112609155734233279421993184960171750263215188376814737042480928629598959474560616908922740296316798514423800389347468511359135301964981997156271625423798293672963407029534782050073755058652111405639064457830548893816138155544142419962144235509476469667272828596971952489180559925854524496162436483249969702712504806391015555196818654218583759428482233430264367813179171859317499517682724628950199189216070911948277391035912734137437024571157629342539231474739159502930888176102103003958852973317697510771408665909037846325824864839592487602593480824816200097546699515955870428851842375251144264605609343223742366091420419996613922449689472748076485188497187874995041501360222380834742955163117489652945979313525259143195782219355513034658616738677570027751603251689658138380401971889197537522635978539188352782301818956785999887374866497105432904933528495668277148587423476353595670390531591882419897204966417017737692017800394672658652184058167263054752691815436850152683885142535433614201305338987997111247320844616083662465772639201069168722357380415373442943136726185736867796366488095018462667741193538142612954176908653643105167306407832646466535880962669066854049333213715797927115058841407819113426735561986940816312280590310287102644775204103659360816761075139580534249444515272338636715987580126220344037397059299755201415720390627543970160636562466743036907062399985246690190984436116026815280044684883157546285185989946392607598441871724256001545651646358337058611312457739416452769043995165605815854356636685227012027578036844700312736009897365285320299371315173359042463304877110845567306439087874808840619030535929097109128469776770535821514014988826425232204320150784070935266915764547808188986771997144538319242125041652710909436013202827947472730796761282159889497195950034614751699291081593343534544906003359317535543580353518975562674213538993067912400956061428070521322147225064160734798469576165974749252769317936691367573005261296464820093665779109045049710074009206884580057017697177408175582110554354542287319335436478531344722693245735575089289772752248208913096378615323902571827847362335519702572377131310659521349251240793545991406601703175683232589156025119396010220948162231497502844510174789156621823304228590515038549461552904482977494847485775742250434587262564394340655980227404666969292079113504186739987799331812053052853375161891725337432346818771986065778764714821293339002111367436636985940019841669132314033915937786424222742923579272476012654534841249929011629163775149234801928475848294678651165833000192432697443843442265258736639552238813822756776421005183182800750029328949743322536288075833349594312424175021570307756053218052138819647819832517903064690250761776638493894365151723489018972135875014199136057123991608829745651617764996716682386455416572065299699184193909018853050998233321074159914071077704903080241199451351903166858875392433993567969041746682939860975121936912295335017175976194900852951965976256236298328432336444247197609763237624171428776453353560606497364701798637536158547121656000682420818428915994484681840099853941271963199639515307835665031533416285570064476842007120049053369542858805517961158743453216134742326101514317528938119639235142460925543978153770192411883036912866296675171447068820218553916697535279167348261535832429939309576529716752393941487105508061563877353090720051408339629373148138100517754672729112633134756659762923331816351444509513913695457915138620247724486609753366983327767789169563448936668616768169110595377630563339502490914989192939371510537179028811201296347097205662380193407268371270852634439015478019958858924865678634689019160609925096041497134103270288469648568925390593262837630075452361491433497084531220747323917293103063706918016446210305832321996710389343262399862291192375714774319399768526009709978080198913869356164936201817544376147845949615593496474742133072313757258056730734581044974328580682478331263673505348032579517762581280516332489088875578004294857035462384222341740371890248685073200539542500711396300196907883958073388499928223317803319785262601379929768666599906968656231218503275060848782083576271420140330806805125128904352807926026723617596632307252710634500688582077589632692889379276106266084016587184818341066707702300498767939198234311996322984564396517862689237828481928155744390164806522668000346584289926403742533828457155907758508953219314830717802674220292101859027959541082951386935838672670075162325583456478091080350749968284465648497460021625953175354656013875497867281813280809248308442297899805580836343086127004921016744314728743519415183274903017505532966399479448600693907761622497090625663029887715781558421503880753418158209383666179721665763448760119094940092883287858145368612031814883435302565742162569185618539357655154804468579930837733312920053360212122547572301018000333384107637387312991956668549213195929329921370031403640454634324229113633168581859381320059041015292973758378809893332413455089419674244094282069166652750310799967722984796761616950753711169079047806844539959022604803989341892573453106325264419104956056167546654469588995667988248817268988677923046430165288920230630440722301781861558563334611540455825878594711713220128413953232613662357487662405455516954245191315085287390618950093190722148555888663505934686905202321454744081547243443396215922981847374095495912613370905791674321406974208034787601968204970445862815154654734209804800643623730554587326983888378225195617394786151363171491695818198283819276796647183442980932988381234694060170628187908598042793886985926745513201756150717730993187738012034636406587784845011042149242605196170680511457877460734994990036103824843681177287095094917635379280946181962548746485097717712703232211161975838412180484105233120959759739275136679629147513809560308725874420825341876026522617582222352950112960120889684980503189975695464376433917308175276702340766275528406376865029393788976461631973476252106729585402167180827403168030064370687139355074170401675150514718216524282909094958900426971589410111204172326727518454140686452678683680950428824211716830193953473707434242917084994272723896730505911682405036967115767230410866107021452979055851669605539409961184358709580572706418124994483447924469724369878417762516720609238975574102879190712760960848457396644754794353347784038936257018905059273859607143353490241104407415584929802549885955547251586088914080102729365099253612441879353968332522987974014793568674700605935253584258904603193391467145514495847569464484346302307099701493250538445508656182709544308278303821719401069852852674996168865182973839753923444284334990000000432113204335333444923010241752868449808951601068119391297898936164644489422467503968312931064699051914758425173073062310209251977172059490608272882996138980560805248163487543722494529483488418042675422239795697448578223480832347534453921415995086432246741494915371756672043788630608735083683137064329497913409743841060493135720479544212811496090489512914950775997600371756416982304205542424532715654624545761435869529598781472940808839103322419296994567034371070439053683466012437444089258178694857207427820358735887945376957205310468007856006246886610599857288131222398857702760895450687257656230219903785369963625627990645594583814950962224045838031142907503963234486264288624838273307699829429904879009636276523218260074106328181709667243753316914282721085405678121619120824159474516826664714296998389809504972385969145267916806694673057764853867652332843366230956942521196882736914379476321011192538712459271581678079850822743448000265646184628261833267210664511588021487508118738818753884538925711603118245750224906581337718800874984972851259926150624602954707806516916316394639780968602607220196411012970886879764477940917968711065726834601302083504145275703607247764419906862618645790647300996283747762875832707958354205212911122438441591703457631645029383910639485219077562050845676177289983037356915926545400271723276141390131214207127703133536448895450593678579905507835056116321391582550588427053641400305388926268136711744635384327707160755948443271864107140721153495032272580677343242240518465712391034796710456293633368127029723035709591406049097492921270970430199505366844088076730477028149383074921715011619737177263173835335551174499957342869075170585174021906570960460982042499417269841459061858054318349979152464044790819427424449053318012304212300423458209784164317569193502722727874192097833803220898448101101824539298682253696301595188843418688797672101213525642193229373640126075649907528415224129210825502927027321630090027723935006218825551361350838968306144853390783941257887512548758730603063053478376072990033284671468789206973138611010428136788390499732562926729858375412545912996681723305342001516429327012055781093549605188046751302683311989393768760688567489047622763515960196145536820274636337852832973197650861295181934887800139094628917485476634724237724811192721018419609601184106231647920395167297795178990297503304711685007050598122508498625196020170672174079533867071658602661147478854320461319615987148008974200263159460315311490064932419893627210442246405662368302120426211917867887638174033524931509648948584427562358376873049682369905996912175754570030162957900425892862356989354131146659066979642029996325174501427331483560244516352910306209756465734420091093420151247785855028949193503239276861183253867475708972310198752242029881675825471259225999372066222292501233804164596993105400331336077510619118803602129170230656673550862847707971270165050488211017993214986073340227721652924755122695292270846852647038276424721089702868139341376774269192796208751832787552416602277661328502186301100223556905091588776190417370298223422116832534597748302574226854228339258304693517557999651554930350684798560271260721868170354620922568811726162903448731388183596166175394524524112819752664161539070672017321935269641018744649729513697987841264480242857410566385888534838880766867449934906694422922139834222366274387959422868335760685712612135918968795923709742440076654692013424623768964320854054366623579798989457600214360586582263748697992205995729298163961614523325438990039711130491823626171972549046657195642454056323662902245303677954112823170678756595845028265497612658568474538469982911018590071797259892586685795729712749368856447253220488421910644213077594685873870255398423361930275723311619999145058977432493434768321796124385864660519682367092403245192537239639643486692906059113508269845205274493147703695468867093324276366703016281213131188718239949521292454038967876313603016083094671778265634358468745655123816969412895226668117116044120547550870827837281051468282516102182744107097397616202314333639427427344572404062123969962568476212365089285093651578515052682291935602256973756138731732719497840892601921176702700905787971892947698286836196111132368526169421027474103776152351000340438163184440369593333865096472718493872863670976010198995540211145419506293829538435042797141051215788382684083643755788450628440122048468661380182089618845459580837390667264640611212211170425943380540922143612551725822278747107325914614675394651751534948771761715052384469984292950237198001477829800708034109066426308347272182381141073156468685577200880662160851299583725321565334047325788628001507887576351944976617574517400024288130786002053307485323699341522658409903738649009191136188209379459555036914633935022034233092875082679526405632265179042361305385360336489001158130134867133269507400825540505984464965434322899464033949276667969655150589517183176059592641436931028851632638528269198405591815706003140967214166208456115398160907968045713034574598105331858528337308663413449958906725349595243816354594813063823450982864288057842420176848959605276880563308810211856608432391394751463459221885565777706444376382788288561773947782537868350380602260525437323610913658642214063718069954124085003086340066537730017333966682868044771674617157538000018595214182868718608101206527936617350771443895706162727696993920130487805757828240144830942051815493536743232205759286168446441647007499613279112918754224325487159758065561468313959222805242254810199250778391016885091101845672189576458070795018620255984532034331510691905079208804985490439159372711160617285291001931529384190304318534705408377284037752408225544791368567050039988933685015107983852029967897654343547037675877341691717237578193030087188883038256417689697515548582122366450527376856421517568445816890570153397123077165122265756142418920600980547506550040656754773409350072307732518969067480237851907178639670105633280631676719289552942818959245882603680251970395299292693036222063119955744469172720795465357746188165831149495711378274394804243320811928749712936451491858312752804512043697483485352338935466507427940397876124480379576469366310781655604256491490013641036053601425370399793400336452070032808893295776906354927657341265019756434051146293171755209321461844358143255810341545271394446132453869243924597497748361651415832013815272558309786764264274097239568191101323686060608756488538310256666801445082534423897570865647052894040775804447526458354380908444849141988097826883030794436550507959146477162611366525211405203162042954465808895168109899853538902316791797417171973769126296605436499192406587742928329195762953902042634140817987203034362278052113692260157783340564680538755290716611617637738152649973149994976899301869729421018931002585152910465875486092448575355594585256943351850169688636936536864538179503990599906499745193166039511680212610706364634030231172946491225909612806932484532784717344392614403875197080098670581821638257497190397881868944840328936031325868469719668336546792160190072315146823896368748747302338164405767213639912536330683480545156952264055287444116091077078046373171068902131763745238252243973150584852480730963238646607384267399605498507391713891062378839276042831196123189360580245695094301772168709548748897512124837701231302800283258973557290105368283440126377006503176614680269429008116276747298230719385961569755735642860638608566699534587337449747242734408793840525631569416234764838860750501649112044251107322545579979175058151760826658077195932045216701382556872415105905977566751091015123771721041808943013510409002403420696945198140502121701085945713177756946609389495841867022870503512957406682126200486278360589273119264625631692520825935898216517841083568576072541666639611579858722460371219317357009401428478142685858895052234942880227773453224093978303467801784158993788640960681973750499566791468122428052278825519374557695235545329332707906924592755511182258507928691909866145177127851429863992850907959390977496519310640603854596356827640419538761125526367850157357396760575658738000583383035868327474633258030498329252033470139518190674988711603998788763576338650334464330751008409798897607381693792637751561365460584018270054544788807825936868618757876314599974438663371930066884599235648807802838847603253223941815839545322771843811160692913304568346112903722145065088247736251833887866652461000829792166487009692815860638044173721205938004424657657715801515570348000430294128545774464179817855592747594643827495633925976645515008500858113561732993983234526537944438704005041401224520005186987640303479229415708290257008867232095943769687656258425241505659335972904927681015071253456854665647836086690567524360798468376913000164719262310312626558733298384036871047463227812493366474661020749563366185045602737872650647326160238557648167714945189957323540935769197317524556807521084031756955650263182642472175343148777916090477744138994407637446425020279723963385557915633490136354860675518141580518853458013916595969210397761937336565846380214567130575034426316890159632169427274051387753009048166100101072710582160210660722318174567965210160466520935462614880791785030822658262540991772063205868586552515753863491693755423111188745647220974500918973546286492037867014670156296666436273539258992384722995971011299893507214537278874114052631111015530538844067798021912881066044814913049897512785136014159766398738597945969812643288525755664839963921149653885665222638713176662365451016420677538720938000854076142352071143462114501765085939197750876478050176431596175857547832197489036280879653345618099987010876693604698981536330656917261201666638894980884425501776821333385609333142970843823838844595439064463028032311946508009573130975603076830509140842179153603600025311229148053960123631485391326793243605963762722985930078600035042293222562220841660311120569318054034197563662428304625217732952660051302305676266033041495390834018229441752006098250547080698767293239827327732259011739720935938896857789394793123821049560005634107799556999146590320389265952578598400842204058378379665150183616782416362754055943303813642909248467664270394493255065268996750317705918522173302398856444759754956497716071132122484244969134736256664083900870707077891803117159865548084019519603595046630545789242001334440673258666076530056065568351502410197831610390280413923087231874571262103373883768707053699108464853628739327577134096591936019920117008822428741082561517810589086066630077395999075454064631632154681554297089349868397062168328169812811588351726505655965818499437673131749021521420485987573495509201516533431341830270721965037639730213230114745651537267939282989101291327784252936756238882462526040083080811237916303725330089099918364293380207390248369423075855010860106395436924510427603743202565102584638296067712841947387524073889785602110842552890823534182254293890881282688487621479171251503882437320282125881052744874747861881002826284282208353679794498885416786663192434738626544938452056433552875907429661866337303690607901445843729687475136882335168694532226761002103799905288288803378153403736647115680066929880974574305969316774535408987026846375849547130554235658355847294242360315283993057512010495663889293200779042935768792982466358504292401014480639941808962339082369079174535841878606428600893867675024802724377756597371219503559889214365019113917011998678379825225506890471606118597407684095578950269195983454277838350113743599846480619876860291817435943529564315221579269448299387269187680668686091200412705107042218171998671447484434501744454467627192312260336583266954001614670379653556507358085827642760956969589808984090760952474477510575923933018982384898857566102400618763124647483133465205242202990491209044847361764862323308466802854702467138333857760038524993102622440857970408448387549117367197543640606036483141411280779758667963472387244219453024945665194666118940742656544336660384459279663692732750965899237294735220749121105338520092562664327808886406803660537556735120263710104328808310577336344808494436138169507404021199865811602039440710402158946478788804617200685043412250694603686066007960797082301537130347433682480555827783521483768389547269781125087462880115050352982080630935042884247268839633152655696226458615117465870388668765806450751012863519981141928291715396306557245827430706546777127619683961582917295495553116543714029560675259580242868057109066284228502079272572466786441404341860688142290242257857970259583447191738645949172427186639585844387228367123130217851539465397824403332250249320982682879915913459272694782706206170193457262856780537599493469935596005934845330001685100179546185070390433225917332588798373813885140027499877659552535431943557163516223947866446813371843451996680207873358372389413877830345818672246081923601272558713296667354476649933544132343969350720787413356367304673550524293187131027610263047887071968259318279800403789904738257185159205153248549780329423303413359232451590985257525530008560801947597769669512792067625441076359257526066416186380784431855369463751656607562654664529899091238317429674540878149788746951905982713143380341672321405424681184400738614437717419651563633045370804456913912349983723998403871624053340474815800011606463410743291761293876546752521606619341982942112759566300432898947277227478536363593752325123506580375580002888908395239150019344707535984386247962356392278266231065358099962284173090094134070545220841479279079876658693119035863765005461454846775604964890512075748448883033125898220558389909044120940805788245606399093874399507233746317454128908968791049362108174860865768885556077125092260440456165435913580325245367809045202681135147236424108745809293254485481710081405600449861083750530830557780367221900754743337309411818708981406421052811685929217850864496178257534874159621615698150529744772342342223726601726404669001183550221438719084983517711041088503183836174899707952012212469321518643176250586237202828780821749112460327698025217150606191584223946670774967646263633798726127558772580533190353962657317472189260826907109193883584217261712148744489041738090441805075714240332244921683223742794640645591063122647967621902134626790445870540780726355219678987975665037769722360339687137152461412118453944381412024050299386443045217109078101578265217432689518868790691206986964091009220922908189895563268773599716859260178863948249906887789283879845038418522201387183940614612153455790181694491663808677170077278943206037042945391119146634769582544843066602988459011720935860472676997605241503250146741517418021163883893844806631000885196160403612142434557310422014804448985669904174098993296092397888296151215389845024359542611673340438639132247343994867198745407711668872961900990319206385296546992482073106984128386089968879844112489333217356083662410508650980355247365876160065452435368060081468549341870677682895906090173685114136596845204277055452803727122333162173195361723962580305109936827087283251231773486095840634301774353463472670405388257818729592298548608014814669266347532924340684176012741715629873846779096934234317169635185010273171056172885509859934136372499562558291027066106509738647374149921575644974744564550745713437963116708841898643449853482237725653348471953319848997388581014619332685485809266151678589867414830048224285041292299477189017322266741565855760597461892989527838334578847469386919214295835275785791837914644151813784974036346673831315541344889753125907012316051810794067152147086291450605895956740517626463083949929073614176348758312080935419309492025653118007494532808422833705886707341129010996998968454269379291399897818921435828666562569655961671759428056135607115776500680422828679506251280104098310889590543638066438792972951193136330137390464882063669582352730910279893877116977447758586064863908141690216392305971287106605931164680713730256696306126310930200447610006245839444934893860625434605607848615862126085922102179364067640096470611577083589415338867864834199139764325302191027915146473533778469737860289610510508055067309866399540110639672356060198889262559018102689769997763252121118895237476964740908596809757949640145477773484677376206915333899853307640548463608048948829867930110196815944516243652484332080595527178278463653146805294851649050772101604732882242838383584916994832517045921060395360685302963990993842839804092760224319947328765536886605970311681194674896463190086701214119538229733964419161365838837074055023110162379391946167152351661853417428720564861952833815178224165256334439296066558915839712506161794048127544869705652171833887583173556446593867457682285728871507635774220226206303714382147460825300497255674032269703476640953593172893909611212837515677798554373725349962058980131846207432899417185433503181837319209554817694336601849572618480880259589217195535305564235048725750253573767603635444257933454977495949234733864185750811327561108990438042787223495117345067136307412126578497177510317897929249135663038509309755508951882136387162725881490261547833309043632542161622067951465533387623592429854072660562966192902180224269163976908096993054129387338558531005200122932937179046391641800748202866978675995758048306160551060609979241796208896543121960589391480924803966012704293681650408038024870015829740237301402385893672512382766984798927083827216013135223669989054345657862590137916065813069398992672222071829457352150150680881897903324004401176404127572481501807357242587737857855896132726803998824485205463810136762433643049057962255182744285392098755664529691894701013694608903389627778600894060833018821182877656382810991155021021584767972835121595985155821081272689723805889024275207419583964014363339904458527393742583002517587236122714499404931092101138025963164751782494636836380640647255256788468172975292652922031536696239754792127517130081983863144929069725408456246183958644487016453322671522843109746117742339911254338878828497115456501457499669882698722644883028190376261689812374161806984985607691420145872198337248689125149161661336938107226333009327618978142514485007381920906421051667088233654114667550129527880163799942993906647497567470734177781062451241942759144019929249083236476623661017114999218150682314267077710887478842005652625905932167331677252739562265470278345831036369504103557939861557694489837651254171084654307805732930028924444380871580742446992951916934463919403562508749969440596519208295111290370620909441845112140340576622651209345951367266035256647626187918855451881194501759701960770090106001819456330256220266672953141861777177150474237969711200723964706913758143509802247713852414037762977204968348942908838668666153785762124679735407865512549443705475905808488214161351082872205359540721019797524416490324220540940659959781991218908375891386522699519984097735978826342664991356596052708608371051027871331113636801128272024643320875534359130079209623704874734454587300800285753235426849148114459754294758055150933542385313594606673440981850053241175424872014051773336281809051643235912349437646742244594682153023057215919000690204609015795904610197921024702580208248011353275132859290371831427944640577748229645300147857675461203560951635039790254936084439027590359829692480497903896775348879062849762741115066714568361347845011380783703529885475592472783937523077113652817800312813052720189667069776272463490476275160490551732851491232363531737613266604158251513519963059629082460273003231941907953041387726903938210914527418353060077442294892916042408386812364010793997891490545854617686723758316632544310204352181682741988876131258097414735817273175592197310630431935879439017623154313830730492578074596241003254747108102396479956875604609680765909197726245188900821871855485602134613130822480589275285270733420696685530604356531352525569604270263127536840460056572377644266245987343470454958054948205125007131163700236280871321090801639715983718239197879823828398693618841364337191920488314011859032400004624377706427327771356629309558854281652073821180825923346730570348287369329608329689479274479002101700612613953675436034434138988712703976373816338032699572091910858856279046348548286783156643294825587322215519078270442767288632084135182715671778018116454411674333948443686622944863772552393268935714117449476107197269119452295573018828772015630261939035573489411779077369642018586149351829742479768781905000549595597856797393853114496091274504191359723355436751776987290778602653209792717960814168856138472340803954987115034821780636160231610132780531716595630189720620176158583646543035936125900864977331949815560648346599166816192991634711755235353232426597646280484138185848300858939266215110773789073993404592697160112316171271968775687141574285511415162263232899131824786257691406329628576294241813569242243158206285746940205620714227553001233468850833749297698265768830111597093537696483865069339457804521164137784718027323009222509821801409260603798391157470683287110458057284843786686809210911118986227015607384467533027773800049287692671486655721304954914382324477215025367938338588827678328544068050108826161623045397393338319752303419515964561459250177418939715718608796828294821322352550195155235071867890721226807177670111399674546007444616073699917392470112901778129877466289791082080676373773737768021154197632602963373496419696531138702779441879039147197478893427491197660817035952730346611716810311737000372317517712821394198620244858539347932199436533374500520327490340953130395135683847465769979286602304436831076905751109098859374823343926456993994810056454389328575785219267374918463733095643151031950965821997484200333844317706119655036675831021438409720125244081224798463699116724392456056642791040875834538207585470001442414179595932942136454714447943347620193336123325094805605491975156440618256730025559566010017991646887426775015173408408906151271539054681584198881695973756047006324844330872125095161149303862758467898956618926703429590898031540003640211442931539747434265220381998042870554089945602145621991913759456793839618023064494271177052198410778267930235711458401421493981072600285984116689787000738184318912440952144432667691674780505209996351380112292539287657625701814816695222713080557558116293415370909995500197581446279751441952972544472483837448962335535197921034085815380717538994485720074171859590637157961979476571068381886563649526386213637347708761436132211142354093384579718368585022498049017743878949201868907996508785674579893858197738463582696642569297218412402802680934172932151584667319521241774327571935443264204434277177272590113953660111457526532485455836435713800006322409392294241630531353803383208581333616369376416686194160908326020726786407334850233195876542568305209507511622644393558560076344203988556116579307827348032310674778362221878344274963538909325549007206688318816207142425486526044442071633022164522957646490397279318671183313404758309194835644676640738011870501933275001848950720220374027525863490075144271760429032163221768799621353990672776972190315530201079147641905248866898290386307430053191807736398928137386508839981879653536147786582780163808673699627497289864275698396689227044930970025538914036857684209431746065091461808759523320712644978126025692472532942649314899781236260406731232777762522197370464386868037895327635258415110184857601531028595591036391048643827352754477175446189188159852735298415181274493590962892226587187367659598207577494911440850257431001081532487141738347589823230787314027461803873384477199829258259792912909050371041462451733326089833020854772062523322239230716437750925387100665242243909714154635179556515648474779103872007347224825345308761016668073307167037429826456134955831660492920114155507334924513838886632906708343371003432465340523203759882795388242809329393639102106224223271528086272972479301833579857122830042121179514338441697485714577333327101326061058354255508756513773106925158929314115719210533753466176563033666299557749111279763677220447139152070836066694461030600977344009613180330525431683382038865035212046456397122063043857245614077794396702153900949254133609647111436161894933922878456866357484713925379904463931476507998075990756768687589081074202965903997558697067463871682865782315894041673140904070267696702072163627357011303055429798029539776930954171571921379606435101655236582965170387016530793467623570153940345688795868498420287440228280316180808638728726452910615126477896315144939408317947709034415890121556137073082386453502901107853155950335209379127194042818227773934034117678214429410657133579285524486949765402319067221468136631054679939183715879073692036428026458734312528519405351279917524533418540050113983535956189279087690665977324211132020623008307252220236077561274843258924092821753959289415214613468259630198319353005954680230813185796112907661652583895974248448000357097306365412745586460969930133716659924183058706868338476598694178754030998060696045637579624240136125194764814808830735754210073651999176608067659913523454939411870689563832059565837641620075308299428449038897579717833950970014455954526678054292854641058462953499545006523075257278087307292877231812201034098598091187271535628090028542736291894360553840424590211241321043601336999648089975103493956872569330512346265266982033582301687374125786863398505339222571359854951629343850476886372372384765962865134488120626300259412580319402315087964625570214930366084680493599609478834801090548057670240672435010631538098348448885667606757918117800826043872259503535969593146745216324002495474615234810037605551838524369855248164112612326626921292820591234772196227403304077075589607127328970582010733975617230725295612430660388257305724307231288617366277866631088623574477022557161129187813547360166367016604373940965032652116145762479964544886571349264412169420685134425473867539437527261300045800359040172156425972320374346831551762564133627688452497977110611184844568043405854537940686035390253385592723596618227175184510139987795197805547440291962916118777089939683643595768892381466167137712984889468253441254867051588561593924750704019916795179567091157334059938892623346472799824988167269173035033702185740793019981271863700860827566594368040349376859506102931480346315462668835550786459121338860482907506107174819751901552009107708590364774773991789058736435970873275180884776062596288911991717626309278078004347778214994101757243112638827676080012908120142778645614165597375304494345424055537638102423773841822641265503227361140510540556576185337840052741774712149227794580143462315982649660655655723464678763821190222003719835044703197406963532564583038282031809947915136806543866511967380589241196605980221133516534035250722533638869126896104213161807689977027976762761321536111947892129244468434807212164168746387045696641581078077596335446046086589884593609449881636527372494806180242892105650413123606767266264811263195447361457590848919736648617963490508799390623323466395712094389889870870327859311919330547781085509824271092133801828343918667390003657657188366229311104081074878717324701137635348619795157561155372702452847331160694548282482723856915145961960383840928567348990760313507811644081451388067052809210580769889818274474064773950734411202657698445647199608671226769325722763651457527440986939900670603562058867332077429082857560757600768085917859424781564960938655403270969852226009760502591215283904945877669307098602205287910159953714613515565280635011192332090974797722576074532136465820747344814397400772116712616543611556743549341540127058707520416557221539122309645979969932730121191451318781613771036388066781860978513884524492231372452675940162030075962818953727713488695005812135240285669475557955582525179219094781892790073994399933729566109861846917622976742187525241737411571663696899676230299831528552573731921698741909913456866907972080081595517561873570902680001125523688367232453065391147050432973440627870124846997457469277901732563418455397051161817889057678812199822325191251301699411498652671381748557419639217496998897259624640531984526078556319131907232736954993339576613567468163355445770171872165814996527086575873880928484616146328815377126570035073163824000977331769611817188990931685287273357026403569707364184628081762168597871823386348665507835537738457121896440118746199524325889449012188932513043078207723338144975323293164665811524208706940559685589147863374621346609522754502337178993280900314491275765133000982390097691297606236112670105314660667402715018696359262775033994143633455133634165837857220404235205191988661072676037316713635504763085909926681631101291975761737283829379624823814088623594777466445326891449011333941550051827065093742613943129827239326164021722592048577671097428144403881264153129731005277002484988580073336155587559007397536426239107721970867120184951370648358878489463715696964418156650340220668618969082915534525440842767030638776605273857786049739104997072836185764323731043678562004201026998367236700053523305929237666048305641642908021785725728418898660982633710896005034825232413721768725884394024916893426483150697069076984052620623849351577599779100149489606713329713196650497589806199389570224899469834327356886147835052111276217692672214725378767877442281852603633990278332772650695272367251812354674792590210960508885463618804622371451881164490851685125463051727607244429626504928945882618418570797287813329564265412105667308103991050707520354461260330979843141532875265883638515069317259358927195853777312671073151719407240142360907218983994022753794901568401595755976620699855297324187697605358807266947530896190538773601779990592154293707208531938879963250629108335846915360862083873215814441201486435598547200186811401950859221423283026270253597480481437695879415265197649406755404481135376231823946412307743254129447637164623788092013564461667408361816054572665431534981139116525140602596547437395040251992872706363246329697493492518003942542830847460775595585997237910721599428392103542700124517791526182407496204689658525832067355835304492095429725170949895996537011634403591814824760863441705956014062039994911353521666220333263286625678767507781481215953454887739922936416167080979479228506641439896714217963799882523166011554908609462566947218599703678568232550422146996857628748730613882771882769764500405789941990371952308441154045526928933823015406507592076966260075345719460045601400543832767625477647279206266934007804515099835850992040710781008809101688808691670645656821135326683873650252495031918110101398314280153837058490876478970622638696410993743118812562439453832783614402112541648098191337280555727380992169636651757969111817765116434080628308972164480216931534171002538998185752739214142858263774662213043201099956223612420236577431682822455997540206213029514214436563320918747572405952804840762471314373589245726067486590927073721678669666320055819731495722257905976269997330182357501378541965191981730451593961962933616034958313353455832711576680931158125353567227981716597473383449627954365642666112728029109962508310461503845795999244221279938533409767145908254153926928391079631225473476196556734064586432469207617680755722085166680458289030223325909383460590181133131898422705018283983890265253626100651368086947767129037182500824218675824941544451587129517836249214246430334419944988251836377619001918458796143406036723414184111664943011776713192414044036147220551231291446075279325283702628147683335794717391021309698114925747723956490879641129088856510041572954798098456313039479838354013744751057007093467791049607727830482577402114877773671261250689718331874282082651607141214981783444254062265318632811639280548783178761440299930755247024147295853223874990361510964695031519955579463105415424669895329705199987609709277113065724910076855526605147178648864443021885432469838977731697288648784525480096554002490982248192127977011579381616072231909060980710162876746363362103997004589606133404531592345276082411414491576280048513168588737509817034454653744816500393641694143846121824361499449163936781933287014960940449072047412386771458414908683515285287633057070860584432452224099608522349506374122886226630776133117105605653309632011728798196763868522028433225617785619373978901682760329356685175304624314763490973677276539288184203610825880200755493411941839190927429595877507153310674167878414220628995187599454507828202993893710548754871090642065221244708421601041813412419494595049330832386499860062391376430366039213912499102930278822994878797744097611927000624336404924791834669159472688420641579327861234219526552318045633800782759670231440484791733617398169209126512673546800057091920910374843369116919307807389361244120228626423813546250815423904681092083130146700154494848508627048188656715436418890996597673971776760825789425629213150193669847106265791896988362912486138575996691920683296914397408162322705890277101171369572696257507661353741467016660573443304797360808029962421951453399126262887537118656422854676817276398667102554335832181180457485603166711076660231089032253849294664968175440258486822244222644198000190002759638618435936290956731382448485614265434420262014982092844872847413615607834665083275475810779805373959162151131007676337918004569059955698199135851539319702125831283170947241713257979271080761846818989449115482472612643683489459772415329054537146945912812582350916346087388875556857966969930111218351897187298088442805626492041579946571615644135711273893964280355173561744430962666851570466233105365080753584190399072038681164742296085505382469701873731355622736001840170409047821978743057150737311166224601389899259514970525370189151117593934385566867504794316110755957846614930884434460009328321815660732258070586165403443790281012380412017262718643772435348239331596086460541187223858695929540608032610647943317455352853369039622558559733994414851491590505519483716362991382768630547723550699995563688525090432738525212826187877912823344714348726277167166597543012530590804673180519569571655785115904049206437789987244569177731999673915672684397917708323303652688175769106051620161735149439568043759575839758387260180282708022536468685737168965645742042041828779543969749639187361186821815141407147348266810637391267916613347013669301372154137742427839320712984146533283616077655294516405142600233101950764088730257061149562384465069424604000639065793806325887818087571368867409257432054592946247942132652510642739115564727661367654682759044379494146145019809667197745909353095723536042006002697866255069033255713748533021624628563072534741429932480020656984834375039332779191872203173199300042500781623228387731069942907156778201802857116158525890305607374977875941530723038846563555033747047731408734391491323967320655584176874960150131514990296243747513369894739112555959866950882331994664266668246129013444698069091390846897841002137120276082747682097000801148939978136329157176087683877435139553781926557247654868872024155852661990557407501742075888070436449902436397624920062509151864644642729446637439801898903046133164131896818010082471746577347964078310906405696857503555845445677115961934839147442292306868995518097810218093440606856681812783627283233774172313883873628610776149445380676823329250496022850397521675694279811171746226173449934706484863798462559359425024187454086414973759170154274403516336493693843923975156113863313409816988092056550110664482477741826112028753527513353532548892929903175176072396702253302603367217939985577100725103776353420015642159631779342868380734798798878954349221712505398748605866918820554559622794565274630843444678333967911838988074699094978885581512745786545742840605964340178382759597980423409048135313256297804561491118781390510156998995305837039688380323384113800076414421121901700831955086209757885763847625810663013432606376136402749255734819325538743215007374902477515784919651345504421929219114454242987706682076921056987243984033067188336947089052525130499667755772745273284212456683639831579179938416267587985228063969653431066220324072759777309152619579032283198927760486978853021292020098626717658215657074829128145175890836754903912346219673829088300427982417720700888034210527839005872637608636907199130358138601079776249578468590515310337332070440704941162057670235010521406990341066161647984144797380936340264965030952186154516390210943763203173021164908164096266820709738295063865829158076304373683004897131406415539580675399420153524862282349254245500761857401845341631057764367072155638837238753098393079688857098564370980681386710249477522274711786395315348176339805964842859114855306206247190559609483989994644929845801481937041768061289358975339734263853259869918484215759229771230712305626157329989788582324510882921860811244909958570628271776206775285503225076771510300031377629257896084275786913539775494611204401460287259584446346032508075325378053362819752869439870084564973444680197159428616957299186650563298163970336892606960374254795595713700646545277747174415133920885141105118077559118858850047408763348398446377067297964771990808203198248787013913463075956365077910166625254778537824468821084192421939708256013012808187227221671835902274822205977764974632665703446105808276550925355405046665273731492883613245537029397263539919686473551160868249704287741674887335937846736252302287375914718247063824716670032861234738114863704944443349336034665403950682579447900449707365518690981445878578197886808486689998463922849796310736988858523254824406567879270454730662024867329163259931162899849042532970958002823732960790496923897044084119057207834581854847957850808108898685678012456866774331790869047814311269404828457759121704330279994525796818170159370363189395185381523466899760341734969161054993705430063721635900066985468162604992913252581904474087512392931329440073231623630715914354334065586882142978888133212355413649886138698681228532511888792247867366832265437946657238876087568859192927583640773352412803862701008191287998398765576467578015718208824172137239559811113290039019719174636136023820247630352807338320087603712324437959485762969881882470286760200816530790498037314731545440441170696427534456230320791387852305427180575097839370593129103461388208320615286673678289115696237834649948451432602921180688831485471531129216617325899405817877018571209229448663259886072094418785696237880030645425991549626407485072564668237061447129614294632312079879520767346833523035185866399720860743844821754837807018428690634859088004786018093015319410012473204570341679236197328732728671469375148319763185443375711527182508878776746954006083546628091543245404916127720107034965504173538469435134175857910830501562164776501944344397157108339129894767968516543248671825240655677318555832923036236908689317535244879870526489365769746637929675108192315492340294349940682205240626621548896405879491303900208307083192855259829711169031486876171819408536334267787974606376670304247234986774834679616704195998254626682858244533297559021421386511734897297642939836308008423791218435054827010102853410153682314068559153532148291485578799358664379663269493417262529264205035834035324261253151708492356076649831186497082486252304798914468464587590841047153817914562991187721321886677860726233160554785946420269012067693939079504758349201929984201076990026952453332275000137499572697967602104163055102232662304671862293055872777236972852591908546680414031421019437563619016655291123763056298200118776173295207133369409422824668062535692808226785753331573085754695742784593219670412360875314663199606839906230574038812422962839566442761022298446352762398678916758548050338926066071846523875233370940953100408284958314129880617924223227483700397670795545361686764145808474824224651928255831680070010228776372910352234797598067341291788134113634145594801220674691897802006579288324468682826272366455535141231986146935111614672226085555458563120206631474190825476060432430527860027371901154797191813375019790464270562790239347862606421647880814853849331730867577367388553319560450454352520851949138269810962260711856753218628042891954610569382111602833735190299981054569206480592907745390814203010887121138417494641449434334239769015533526429432188581640478772878564924957150891049657208120442537226703219918917691573096501186730420957303150031558701042573421544789901766785532566153217218775894821874686753293898609545738324653646468424775044874200095910281203896615549836838813569168865902634355702276751470315761245229492842845377229417088913896826606576576010917933592605448837951552641884502808469505935431772651814767408113046403383452658948588636165179284289961372861894222189946595374281493057446284031630814810889189022303396264723242820754350945623777902571681750100390975290264061345882642226617154037562586244635555841603568302106950367305805820212243406791894883902388767714852709339641578030255000664975051620185168789368852908222930616071767162439760944241201382044430441404218184008984648814908440213051242274051104304741337361070991748157771073395714420063088023641751058385437095564553333210015912455369743346030176976624185718234604484777103264279207844055408693287138267804054617010342838948468515851331940243885227749514703965253371552802038462134772841962123111548220468569749768144613551562821842470450613458626176050918750066651265799916278574865856704044297498001736143095114803605126854409448744718099703273918118099138937783503167816786453758544164632345447284019158803489192461631655043649457989107170257543589467725012758623249971371213171505078468540900090614290001532170028833556969110237515167462656955152145838566360825688543900317137490359388251270826047359672531670047883500643505590658081513867079267646450881000735469967264489368164545342568446997653680241442766677549490611314150682680973152158686432319251142466217648153850533567567137287307070647049522326764492750929308888845575236659897669441325241551120080140264342538216404629401734254346235565691555027655321083718214559202111136608522908454269060428205722233536898581844689759632701659940477136555421187037125145949690761460685131946549498114235303522159233170380500114670804022964853348255777691412687639872798260938953874100574825597549386242585388429670634357863361433289175384084753755553687956708354247411057149914588881292563535584308385803616864277810398722053155087174371050322213413552164377102932851627590959541725696525111575347897546793005996739152717111997903991333804273821506885521871824150682327815478199225022619829992919851305398688480797537755832342813157336680416034277762219090259451741201307935729182157513437092771437890459690920817143827009609440239138476243745773674003780064546131297312296562501906387831939718484526355267423750148987694528536789539840733678253310812256654823733644145686008116076709150296661527087632691024019928553283437988494000290302278269331046350396558858462544777344865455682291330385180534248065565452894057840883024211030572159178738464071963131677852908707133800864248123989986406701288168421157294196111105589702233394626037748766672671468969639561717745246164871915723199784449345598578861200266536934531255997135988645793349153921088099132620118249880077813445950482024375839214150106004887967811600272171023888940447315766456705146281620987046440595879176415297489894998605355934315496576195893195266556718172559805125902456573552596732218532879412580690123218353104384959660221261754926484300838139663710702311688762745494202314440496413130866699390723713719123039532516592930581760491932474827484393438196085787901241867665922663351861830025911314105676909449046132433893652572738499833989996718041235369977476920629257225804751621465739042360760922127642302332252388238764990760387437870898327964357869106205793319441826394214200256995119349707966957906621797806899439823240202522867451699304500676730753606104870902643261157191622804136413827705703326264226746359187500114846866220887255528193982834893749846091857595840406132526518779778409353020939571397341929673181004018593551902817166027240803609593956266005112262580768175391928363821425313674285106259595612907740343747981338817402633140672935451375199661451791772108120976204454328046836930280343584943289889593928065749354524310277193176853303669649080291965321660488276914908994766515500851590907295044745470928589861612537340977489119286183276824773478176651820612439549098033536007759965246050607776423299683342185320903366774489881620330466933963618839910827839662253785425172360061754864050335617472037321105595324385470434463103494257818758487984960306708399536964132502019642176204599965168140976103077728775795388130079558852758567075999759155517412942829980813209924001599599379200595768201609365449392607536086516392197537326969269317307420875064078193512372500805780622290571543634555535898703129855393547559571064655797267893053980497251580355702942179214843627638252428842849925467832903783323696843999621289192249702735229969368243011274560141538397071061657565314023744554688183746476512135636107254189049510267654001559679919047626855472582018154200725892909729399376508633397188759921402272375670001059879092211322018203657889729445292967779406600270509961869636143544193646217042984003055649310546391292440872803464195202691731070226217630582573438515493855734262899928644914561070542278586885691561006786316586522165266834227107446638523622109820728308362079348527111151242243150165615522325422678622317541831196536513219634627837943409866778695101234791351514784327912820863291189174413265661987361560343058104567303689567768627382971811175524330775904592195804256234056693822786074220417843982979441639379008885161023837912027762291407434864160886577054330281632890392454898748910511954487533623190982966371741764811568143982057673265493186281711329302186246658009215593312401340621337906904891802228537304020229999728170919333072781815120544518406795941104271665018111681517385581910339206382130400060539705796599729760930459151268660927654813988514678002407348970225003016460562779334033488922044078872596913665827196442030255158544756045471237089390109042818784087453529548109925910602301945136470944571738783125459341635423826217141652652281991697319057432897098264263126443211132166148804784717676102773755311967634511868555373982510999536107172151115374538739936595165273594283402140352837819562711065395534052702044595670541677213817165438863523351399368926583559344928614582737235048671335475341820300566286832150184008289813107907386987662146480945036455263620287348444098233146075196965648951119320040770783435056442186082763998402887982832962864867430887437741261432241412102311088949310370216196046250958228796924452406075574189379613384174831225324065760229261631964496959658058407553758681815410904936022217712065041758007801796630398163365382771719487252796691582561283396985162856248086368636487963852818110845999446863806792169037462829656284229392944752985149700474381180743572129249705430650566114304010003523716189742822966801626047185984020228874035229478801091445129367596889057333305536292496053995713749536480920537924744080330452057794016136761732922160125436649514203343932291555473911331458636684429149309820329893259771618920965057184409061987534337638076470027824791191787333137701973518913008304487234192440243663588624849877353022895697072157072987181192194581812281514065099069311881785783135864665993134781233664216212144585940501257656094177357412807033268437553223866584606765361364385242259441736641161769431309437551910250717775418468230622391583800443015233664215716640833133243660399845773249304622184890885613809824855606423925027042708098616688585171185145729956956862091550657824876871128871463418416171191727158490752528771615704631884583809939478740370133629714605756023035934279878638964500935765316655661377520945419035504627934994142752745756377609310553991226331008135716775234128233091166249775106990248612543806077008221353808735394427165061787634540702304276930713603913718940290598770150355065106991790719079311315703239849731771315872108737792167687914415105877811323500834079671688375220652672818303964214975735936451546479623208853878395035132993622134519580916833044210848730950588168202539991455507082242651988317261491985067032577173524292051012429023756584365507819464535678149767422996498509988796860877917070594819892921551516101678913707849824210270801378912122157122588556642846987938374043399223613345560627691903863114412488786860268690678050719342816542333465547722227521081231389522803853254769334750073440691206583894478631963885225779573132025867153150779682494976920895375846129141158931719531766944492818097775269654453541616821151352709872315427361642056746733788640395226890792870974049861505703434162256993585014017993983002834406202282067418596473735229264509060771768372142220970259698034686739431419573804713303961529176633832848801801173919297498185218945474280716161967554929016398170511072312720519535863452604399358033682069967101078475910720639213279441566156075264229360731016487816675535010236276493859813089872478245531124830675425704138699317170128356006743324522894160022299001082462549508457709568840339688915347236036102484649788125860109016961193529989402863612784538103345376997404121289584513089048530769479961587023329911585541135032100599481572542748536473098039561929646047409870904544006893371852962657339386658275257364683592253645548653953004206998124272408393081263302597868397475088280184550898686491045317000543776140058991175708522307441260980828133130556945527591238780479530810338886095566515921765397286832047078950226987347412276166283845640054885399197418988685641962301495339023746154076598553598194857851589203716099731755899869923956852171952208871661591058046396274416089832275407992455018921601515061544438012197165928139033092030505431101327971066114063984883994702787239695951490688563712085327629920778589665595271832774424609143884420535356523557438639925142301113612448442830449077626937939950373599263236064306404282828601472945738356635695100692746469058335750708702770715503046495205851100342549027838055096655327905108696353173297349523696271864014275043102267894347933771121855450661331810566427976840576809139548677820834254387858938568366908358438768369524567156298571381681385120792549079484455751744139015376953863462681879407457751023179361493321350634799651259566283006900499170917318132367021816040691469443130991917459055067868749959069028450457456555891112164413070822631724380380085880832776391317748120438664037129793510730789869078014911183549045797835709600268287449870236217352134752589201032684151083065486928997207042551552690115821917323681773046818215945620072302956408235133159782720293161542759648091261545245791026795127115789890793258527041697236678218849233915215219539457916311030077604950555540306179628077069552007015638969600951501181909848087440267426685732020550222818174172638316950873048569263800734550018280267409436785969946064093550843252970703387046162603147818212707856263576853709527563112452700667635575041571423090113062745630300867254750919843120455110419250252218075643870251958482529881199174702312533914972885108689623615145095775129284018699018644786919991108755673844765392769748067570332659240105662674328999822717330556793394721433113965386784431222933802356300833025105450556863462959396362536031792286632849276084507312209456076100454014124166073862799506674366486539992686892109317880236946203149729773022723710239959108641398772478260289240533249384158752725155865304774100531573931005225784472384624644548615766897703093087083527238579149872726961857739142068017368362544020478638594733466374452174657427472699276280374532759290353960212025955516956189174976078707573419827885707911330430720490334582660903768159887587031345601514767792397044139450874002390015013282090181122960693565002896275388247663779179682190173654681668018892228177990044492600436724358492478679053089835260548441790465944549931034305942934113801421232833850940823110634811606168665253061023037037116330979809514257018709676096099214293301161988612867965394978828607030797431030919273059358550334062463277352771893880625078534869452390628004433580506667973977384183809856981786031804265448633306051984111395758845714160677100944207511348786258146142204371035686323309120703290567257791935502767111957835187986375805533097159109720018957825718626181758490792392104589555576405678274733932661842011164861207794887197493019354419275371978883635102821087212890402085934310459038148634012308140675534227611011022858580613417203123258864428448069051912441827816695864584037907166342604068409210041307330172167382053637583579986459460132739345657942658647019369169141097050869980151620063293319637612482580857708822474970914845732614388405111019525553810604691209500645393537228315513575358479119391059634821930597912720405486655422695086997029959124737949735077837675929635296996201903572886389544548489041564669889590722397233759381712357197104309750471470015826411967375872070688748170501910762465194589436332517065673183861505404689406406003507482928433639704631508157504833451181681050607733296788244749490595100934809714975428251691684771064008575208437302391168923589836675351464493205434924222390391937854587203731620841774526675300888248740593038566167910981909266296465266228005708143529196167400605209497427271826036263214654431346153960655646422797179390695126722345086782258887608255105695731049709527491948855856877005046917876074993952310373659323907037116461167407777078963632355134009129705702463085427327756357254563858256961307787314620650107119843277631003919526490952788696505102725107942629254283328055379591351390018832283227508567915640737918406440748487961181258791624759947178738907289250728281463827580512909017252451765383685998766786129858597485197319532717805255627643280234159194135855873706034956835086085163375971471065113991814464270787330079512602029712280160658200081123479203670032990322877585159043050659379685571681581145717011279310179893956169643080775622061114088657854883449021289209922396428098238390190217784467580040615411345840941544919148809495004899202974887195929687745663387602175702559423879722064371459516806355049695132121353778668820536203552783430296131308916418005802074297126255543220689485249107566104608312385077379858316905790046215300951737401237667323913607850878541173648197590868782314627451971497478914018959646679798473099347471756498194070141599981610249437358094350298591978223804734922571594604734685026666125936901054153046042566450788949096316682210931829346091539355476995923076380630526168482727285426383940000037943643986985110877086769552591576849666672697220298698100917719296484977113686193250455411115940289577009906453022564385292467720716321903746401815941795946049075358173690142113585270032760144885994445146770853477951505538169422882110187244901845607885352015065663837431476421666354136330441591041126507719368921311914516793943049647225182919844813995467013129280126553913974494630663926980068917243463595987105451949316724952022039660623579573190944936390741340472882096581267128754409046609143251878104670860696089567753395130455237796398534944697913774089107636911005387943104366889979113287854179940895703740427667820347468285960022824456067230504844405684277804299172076748536793005056248497412459382035998252068066312407192232475858133684851077493073860571933984711150971304242106964338560464467396790084572194819898841910388171743522000367798718107864236246428775928459691845927001972346423097725321390288236297333466626242445676120614166475589567090678968328828788872876357433693534741064619329002676795429776492819232111923408338569385804714979813741111828564256548641878389112237606566789577033553344106175696771397722050961273196147227055998549271958845818251589879609047799346486993630937657572499188129596659701326761146845027894246689479446633162698935737419719423855348055068733188367077166061113825559842095442204107173754759136872854143290109957691433419956704169250754708097747597932077150081904223233772711577834308415893119669505473980529698418987998995805961038885666564551632551645119053845270408278343747088441152554841658361748520210317376737376301213139666765798706647895037181554924522916400263979650123451662361813401235124424028404237376340933170373867528306005367304741760228527022057237927762343573913989833925637943942555040140121532185074498401057345031205650278337172185370622322225036232849107678150582148347407279562859273806214189508033650518628550131081839338460487173064730704412800935909215139589960111120728887870277238277671378557760409390828105484641295998418968253365217822358456748193380834958393087593077381517919431380579826494716969771093652724627098446925954942181598857045865771282397264583748465761820626717399714401242151571031955081058904452301512590044567578145401840388960837521110073154531023322403624240813433688503996499520595048260758176459583732565780091514479163976680786852914724612077337505941057130795047279015921426525398028190478599575956575133768232345807552277612295782229744986002336958209251717873748344882939382561010664543741030047421510181214347480028393006768474454067943259538752716029265814294803017895877940744133095500343791357113337106401297274646614863151230623236472472808282948713149560489835993659358538596684350770263297056991758533560845492149269071516867324041776708110891701348289749424507724211956869673152930199548713470116681518099568836756115746753836577493809812676099064997769314588883564512551741258019274143407359465866459875141855426085674146113006563351895560857323531251713636876044898066488818995501184161451354192651057510990894773759276636858080064822164220795793909746094583167078376661887472263143911879904287249407516859862665595824261743952893003250326516946121057780523805830491130402645310097277569544530224919366187858566933694501820474287774485252750197959016266335120356653936177499427657091956766391674986349061067853444678798956262411162956062864715066336628623920020835631815099756114378004518808521810659663689704548052889264268557561722853511171904266303167793761152949871025055834688360833931130568570757699461734666451501124836015387284256298821433306929147251527446976728185109891810575528597049801864966625563048055684270682579917444119351500743312168121621679445461518787084980502785932219296469194462687434373749535374489894350831766054916561070075158312321533172114042067298967885965095051907199509223388853662738891898228816824073024468567167609943684248459372738724040653224104130196392903810995459058533591389608249767203180557537582507185671999155998782306637136810575669151583688756708434738771184913161691399994182634296505874682699807945202486573693789441083752894543826395981798229349641888678157075521364185110861181011694513576591043814554012058981012380160410247086941450985221267422434392534726625118003680740191111290092573696963216369154863618398265099939046726231071349504412624401228782968940567959117033125330958171156530861394987306369360763714480904321610607951996916963725738626888668769868642107823155984689487610267365749979604967158595351678713263690378715233582922773875326961817376355563981789896125960227743069349840976544392360646827171475984642302506256885527662953278611257253065492018135500601604355585420825190830401118872851717519077134672103927489812839320361118622599622311108909572947671551552146349708993641690202407429885100564310851802354142865344656062515029674831888812191871003086745095565418956010804828373602339429124814876791802516971701177758579530969459126681223364201818161065794935471204094349896197652713786451262423290195653626582957316721019776921336659495858612331512690943749042428612928370275041838792227757270851067068729835411530416852808980198927777013394321751500388308692240173305657048614523499518560069100859469568168486586880363940815657753778900098948162096271423772573911884387287079830295193322463271479781395254714760072014964210481771820602427033809392448652991822054487168338865951109600399714277569767997461535601816260661889081856689631188748677488280757135044305427509983973455397394195176126689637829262599922657945186573707779477215254760331696690133589001224457576333503335189232373438477080558581498206485810741099464606395225037494679638470774373030717138115378531881567860890641677677416908910381749004467563324078915308185111080411818834398841919829591740182455532079416162006444834049860988055350739643726718404231307366613968433514606835316096692099274564744874407449839076078200534867260890851055646668574662271410820482205677409705834129592835146499615138441071799413570514767900758111423664165248384857949919585972529467031050751012111749885542452833207463855848357313496388924932103523882695934849901659417740737958528924443185952635213871400147854876658301422637891134438310807004318854140128916414835088488859648075144654877591095674003942941905908446577682427324272834565242170027362011883316411230133599991564461256592975308359525012579944206828313660427818264807807378863311335932438444982960258699533858212368701087403179896520267193081329131230723725308192190246218064770686612028184948780695668852649766610817574251513065121185265886562133942974505600136488678609598538683520833887024464982182478965705420385193237126832854235243021898571814768983943037710151702769555679585785663358176213715323788527659330675896541323827129962277392106158738388622908655025319076688662738992555568902741319607563095571534381361533115563237089487102791571659495099634357725241055758591365717033856913276047112398440315841058567711789700194536987430291134260175722026937152839645964761228614625712436312751981727774872969030154947382662109435217706091331481608489930430998263424343700985200469121077347388927778059214172736395857159222162012084012490024706986606625282889495183838772415252450347390442443462281897057016062617033509182217887619407568546655737872586557599349375035951084159627228831729098970412069402472121751760933003886444869374304222029765046900495221723608501895531427288501293364017818812431051469663380249637301224203053470506489496203946876025099899539957265319377829428696654074280736097414390796570824317227200276472419350185241823072322828067272708901388965639586933457653495577010828392523806762608484037741629082561179643424308181796393163728889372175154730608328201173489990650040714637021335913212849516413038470675182856398721891577308248360929389720023813218070929837972161577536417618685671155891508671776334799559442969174083635618698569599272610846698152815770564842766317157257323078946583582443105703168542557714853561622012699831984833166463544906902658777832682199952428794769276771375722208798260417675936332622887094444653051823958845169407362194568244857409519082443487651935233484813970979560541984352817901702801059570454539925736966783863459149188087377301422350865606864454766216012932970728039714802447348908773769237741839758533974592637674799340555875379853589852311638475977631555446577498218903485367235508996990450677955192377956132874252319836858607318075434200687408583632330699866525049191077987425947820270032325506863384072680361195780557550073993484796788852986794740646753065491250722744950397174825146005048230940134881061888047903645657564719906040474506330597545561849112495572951196782887769506686719384928939436505319238823191151499123819915529350812237404182103673524000231947952798350468928750288807429763849048585413802280295239045889546226659611307007949270365289779688417624046263514184804430090370158846736466004641299452405631311500015809915768403155648355745911619898603981225554179431690422520743505331450419822195511832124010054048624560480638357741976008986273142154487879413991514780161665945127088399248834875558172994582595927221668527073246631969316361511252130495102009892427324532090812119307196790408224383364635871061559621271139431399911482210766782761284234658265193782850917985554907163938584868367218619730443909471031875048165934644150818298927983572583324011785789350244211427896710770978246694304489568237628879346075495782095796834284525372042887457245237696981222305883963377085850680094954199418687376849237043576213357031998028807179135385691799424745476716549585053716612537270949258533772983657358265672707710987666658263786957941350672802379616977331745331393371214246249351542083285612369586652586038349693195815523839373324883931842547574077658003409300997095620440266699253756869522544339432181941574153522524611174094804807937316782391523331835141757204114346740447404761650364637563064584298591885729469070921260924670935183756696513416972381274804885061173498574293501533248850846029351736511632513545004975643196525400481179223484395870327272505197935571287602426037261994858272327818729417286097148309129853094730922499395017662538515414398340048784306668667255140632939122467252750565978216725345508517597062314567142697235395723606024953302613405006654321632638977145499876787299512666391354290720066409164865819740847970661741052154808390300689105658594447013719798717755831841236545119676309610750996343067958743353057104117054584398046972803414159850646243568786296533540416934145765728172815432359173695600844824108638215898510668488397758171892803521297125315331413229520475954085415553612039262946803191998902119849003916476000336761828721531685768235494735277103930040010517720778717548071582648797465299184546939766895657758279068625683558374269346776568977825621053677281690387107653373587852379746789796750001229683258747932788724793236049299023369450666390518134682929571587564679383034595874818500084969548239719669181391610669435265090756330814491122545205767197064719380520141005780106201282693281470341164727295238857461889469662942752065573687895407888376225219076615675411473037535051867372207153792293100561758887404625244344023214385000090059911602394548060819635518714549245196115997897504222420590321634106662062206003882300420162834672095083195574803735414960919183928429028477569803483280321789826353717858178831317141107008908419517566742071079223391171762681853770933860301421903896141313445344420283430784645546193386186965040096054859732051008807527690492287935896374499133187199060319426470971588385503767985800539820846769165989906886046486100463829704579764319956385833869649727346894707297019092819365434227251563091710478666934735020647393350818894731022659070286268080589720878272648230804757800511975219444992173614288699500171717236240483260094606650228197780265392127706396587411444448084656131684680296386904660335466242228703492514110662098743558066149736612428494251612275961764159295971022734862175026468438011184720310918361397390733848563553817483032284609757918484972462435421280083496865736506284896533652542177588576186668939536042060558633181460579515326930783256633965055570707523606331477782109000053189636746550749839377194299962199510783970429629456132750330288575382665430280094387854438833470252739430438453807740980757458912425282418818709573905619481362394237377693870239107733715071325741107912337546397052524726210685643827314912381771495185274642435139769259823526721919406042006612592315749001159394039668719588968771033415505709162104555638510493932803344506127072895607732487620385267245264270667264195781257255394094054683551179742752063780290988355430168129790034830356111791870801271182487120788771648293683671246905706374824518221919061676560833326789103847706921349220979509661913275945756746032474787651296575859627458462653586448628978902962643961322380238520956563461333320986019175961305591940306116327514942268184591498086684045016692973094348342848718277488841880402848285868877203418649480474619308892897815388820029055432475826555885937668643690905234399295007615759294675443518482712969272413078197109963628203707186500632067243943704145373406285480282811603698938600263048892533844277159281017375338729414121832742968073593940202926397737745834399377520562705703042747155084104368556778010651414927239803378078560710226039057561001433871157218349161041850016896361153906231403750966844184450927802579557618860787794637763561967848021619366277838744074123182058305289363699534950855796200373271130341012641723135672209547460039919206474306456909370042423044687354634397728110257851857679260340340706367947562151821691411653016304903350765520797947905844686911756893092024910420538103226357564094604425595995706226435606556244053422004149371720846479941961147921080459328109346627239253465585255606950998164786343424782954332340764120573550632232165901344355878155053484013102111373802473387250187192202884892976771543829183054122735986117119420200052000576426175692773036341901064764652489925015833435956060241259023329972156952386110206846483400348517794833272537018419533249786799748029762188289637516060594671281057651635873501308726671915551375828954519011513388466954181139835900406387458119864847395677682592151091279966608103059786002190144694565936626949517765917184903653201042863571248739065484518690864468180254119540731510250643911144829599117381535576786576803218491072504459874599295908820570866901190978655465995260801972418727221618294501463648951982199453858286533361681881884934085723296780524826481466061054766711657156195592941711804445658977355763648401624791813556481660748477177048641889325920951346964199809170116663322878171828688019657874425692229463922746510613159853749755985017623607947824208020973554257835074020527835743771577185768091906815827107143280806011407368517121348990608025377121848789810989778558633321265124361691324578025628250575623398127582768743250596320653648261739699567449297490275942427570491656409107333036868172056044151395885121958010247929939873627733270586490628359791124973511810715616522589298149060222163642000690663080054004999014908910833522391927100001924998334983279207373518426403231288989779595901879344553491306130022159966565601581602496746945440000531858425396655344174251627608969073467187475974793739388413468681249414043127401246505862055043377434843887597915926805403279514563269424076487141139652800568351450572213788397997490953835334344477055810437294616391983084941788439161912463330355677729293905969667708533182439404701298578538635179644421174506751644259291386517837157010076848731287918143119358245259914565726591550167849967382268552411674733730684999324633252358054947523104275727706453184674238511165521951675562980780753807952026079090546020583651825222948130836877909538867815524395173538862504447107651737286102654524876470230244478572694448226652221774500871537691006258669555065475880786901920834724522615605131571463217206988684872845476172923170606322219314835498823600737748049419663700402531602591388859653522076886740000048437510645564705615955960026312913260147525644161812110334731270861648040546726962785569464675255192138024592064753741592371943261112384341825628856932250782069562413794794351337492298333643037299295723644887260186380161875742009351070393443634716550859895764450283746982078331384952960164285405085612984076269750490591053974146886744623543005158226683917982066963963026536489783193741941830752861052761771621701002212725311242068810201308338338830173756629346396053969338495114160110486742718108518339115952472908680864206552696049423482052474237215063631041995387876929786872106534041134484575902250317804484192431475635571008864842651577544251422673405594758388597423554585562832889577684043232578777654099370734354805473886907498701949434183166167870294933668072279083520550302258455692864875330207964585231262218536420663010233579089436748395280369884637273389861615883473181629795636720403251795133357471627428701032217477759269133969546142288067949487044450265505751520728811250860012878827795221056701012458758369730875362028386972574680410937123464803007841957203995693507809776804939740405603231474605979749605073603738748382902149116598151742493601339888426912084171887870740241307632573210004411245167546249703190884753868483154661936872905948562953235863089696585456632819372367247337846427901328113601076411686296749671276077334819347108674608318478001350407479963755852450571988017739733321040295988852660177552542046244133064102299453261992275704758822958465048992069991616665997924436716073813591982405241179858970518497123050375152952151901048643601552814158042620895179811613458182477468918104746539038189464861907240567408683045165616997997742356589498757623090441021606944657995883831125358920512150894215017096821094332111443338718643975042381166449709957727919198362755168512323041975948127101118549284795155558151014954243930899454258029501044674567162259307947244953155920958572944673523690847271418942879774311524928648329552000167872737144757046179034888440274588799800890653362189875434281524091730218581262046838953018258569437885717231820781730588872877064181056804097942537249825403720429232224480153195270526886194959464014603398455231635793679804154743312802438056667109286851037427404314447633349332388042252303749222801120864585915626166441706534666742534639672962007514844790231299540638157821560277176275841857782525913246776947357647741848269937670803036668468039899151101604925695251469530811633897898000957505806454953379360157110599193952565910911326294619988587515366699077375026087692061818557575005933103826574978877872564904305896019299150127872039969953496380424149365481881520855759678083541943765663907825976868722846359496357864793077931017064323081460398734041171118437624866259157191907397011533594436980307249319470786120180273258384436094733985973670396911571669498291280592284500345328708402457046462684104499892852873743551503102151850212369692092294004053653854316731103871191064680041450634864450943042400078867637563156639222675001125689216389490744529801477322466606812318306415837912005651201180978967825529225242023304769416901125298513691222099301868659885749129496280766081647881908733892155796318231808677444359931987310175431858778681740507931923348795702551031308701347112612182450269589162460730880674768581905471452366663094690459498260576116845776069298042783514658731640883603013455839249936819976652645529488290392611829217330240421705406866869681080169883765568746984821757907725723645881506543279749450436660551136805587801628579790166681919059081887892930286711253973092926990251607349342169723107183514181252554421702132452671487535505938458226489102258141699086448340878439979456232878961079287821123971639538985683829322590608248904596367890250709135139645565814266151358048688389772480468163660332013445143881790409169218668526050153049071240724041060216159803461939149330507870950510765610393376342814130228026952619138034100577313796768140684890434321933396496745687940633105640341139408455970492592997265006552101374231107898894665421876676057727909831282392246133071161067576141282317890197266025848312635971030305858008012531301334227554933865757981626208954605751812345098853060545214373118221871539552684607205219274991292956752424050833922460101608203834695308189495328040624607483995947942635169311134860165358842544743647738525715705368790599021332135522663740960525791364719315396214507599028667263897354375917123923679590799667120504202216024148552263589582858573244608904613645969949727653814839665064158715222449829014976510113301675989476987537659421377415893906831986773181023163188599082206043701954912953228373997411178657006513003425473566833166282498943355659416983236766142317525258873104888601133144906135799030237345227662847527806858705937986012709689459227676580102568303971896007637878276510655460681694840846591543307059495490494588611074881869358074621924595424751609832411498078540792584889714015389124848696964883056443919835607239943942517949041142120099369732628412685830400627747676954744495513470712427708420806952160877056041700882658405308277524448200907465578981531809573768591319524762810474232037050118055355970104879148713461127615726473333222468234185559042945684210184834709888888818048099266750623650745333170739789972104058394556361476255921916632079624032719286079821042420924975680208910324867623286456328747910335763259809565943298193821557186666434741249495146654550451757055518298104359721242618920109014051933690381974853939114234205199813943433887109735538397099514322363924598135829893502246655749213889373298051734260955742296215302184016250557465050987557381724343132969449070755611684158229502907061147822136178032901556871064707968650250504930784149182228295427312412915537366707683932934625973996321250151925842382872863574477024409176754186490638360182288950546057779954819513132771914999741991608696525447641629841845583960126468844856564465637015589021947882245287860620697967342234316204346110763569251291587571319633520315982049731993507176611633561841903895454741889987673779441342080755485088479834711991371059430680015421525223880602859767450282349097513076464901092973049098688144611433294688949356729696943235448649196762992883107807384478538953104560517734052280287219613100413495371241449590970851259380308537941701867378639634204960802862633849488042758499581760546117423450169118285499724135610079668624015390011037206052864929673219022927313245385987416451129985428715141396345138574544081125481164181417823250588665755717002571758165049263941167406038068653973775863773873101636885439388301044363512058998185723827425350628232596797799182508204699280565566726518931097938984297005909290686820854789769668346254289407534697370534123809052960227760296479560625559735165878579239575142009950630515283041476535562985570215794313292702522312878549960176554138293380074629885254817549797221256205581450502393376655517693128005108566222581952183471691327370909485354600650606208358265699469885463019331621275421430835604472843058525415443787857821120720867661928002842559627453464349142916556864709060365803568409250043365906770577077652544015720681708447805972839686256640809152066081878595022018817573161387656693730496521546749715349176808304019546736326566503958708625501781953394154785635381428286181823963184552809317017979591140780714337814299504263537743202273183829749423379378607454683319888318698472904397476546768348049448599686764010787760645903515261379731616619082344084452352698450232965228787979468512279642738103321532341458120403121779840680634015917198096162187866188196451688321271783995849585275304664817576640422741630465092539882081797267112554857443858856841742863942434175279827482049060568961825539707297661257612408313357361724937458637706478161399819897848669306855725806571395664231111576686757933092080360738823517445101891723511188917340084902041706958429929684531870178211414276321586217905742085779388940150609655243587047095822295025183511642305007896389957951537109469045978191775596531037310538348564361460473494337211809189074488171737291835433371776611784933608731867896960608079773270686739826784508251417724284521856691048362499172855876730550948317579104464926725252655676462655476249947710238516167364603185522953833014236077621835286707851069822896684634309777180277649386317384101356920547763429808630254137796434376856653328060533479676270604932252190063285974862428460163327568019351817115348434648496217774349670071585873459167826947287264301592041110489723897266931255699145747439746539143128263047414688410381148365693051196672804198500995607468924815796606818297579160530659811001776258314328599232440352870985631157714508680436337044996803986294013623408758552532168545155604957269231186931299061889388619220958640058633153135302030762515462944364516856070430252498513580558763733226045919374759232258424382027558370312435070378776035449301862500783256875614498821522048256802738851062430915383024027324366753720903545420970664224451220283765992491860203977217147853345497820191133075653563861370786475737608185346461017901869386003330991440174675032139527820666768616003158942480973159889722712209770787941506908871487581378112840447026374238007483744934554872079646338105738084370650925941969445706407459343315806592258110980646375679858804957044425780434840541049817589938899981978512957291043775642537661189224456721537477323923529641019633481037161168638001170309866960522310648917956592009653400404860282368425121588322695554468065862209957061015227338089340357316816017093530396314802316487177894087306914861366281530673583641247217461053090181567822096935863393155417760029653836279783362627692005420863357611330401108036237515291250650462663062576699179503280700050299273239104889392823186329440218648875190882181408985949630965181520911186524026736334462250453100069040864086028606149402204550800538991685674041282857751893877168146058950949576644021730646168263644841836816077183252800512431847569783634546634751796043149490251198653695562433416991800975512426108519680740282851366240357733211518333513646336467211450018553128588323525890148434515387577503432394633199005141653292854318197139152153909073685892979780277657676942963275942591785003971199446236934442800963384595980699226446456132328257238718526920351674598448435714323582058338938698771393144123252140809307223210386216258769888132959242518857847320886417887825944963113314508895913548794862656852467331214384691488902872680309864893791316694882635827717434822160220076281226322000301253708300098053846408654340698918353449621613594930506417510869993180824015468725472861718760428189836210446237472005285709484086476869513608898380862800218880996974890552488146559424998009172416460941515061879477024571057460238808648994910329282092270093983729678404988912588357680999189243823366725134690951807888969850299690505659866367633577191560664888178371708466410563229210222368237685118758853189619577022528330773780225380401079522524743642658585377779289351202701188612718294625941651240415642121874807659013899653442543898704307719299677097388770017324605466790557325945564790928967151118669081019721517428917931615449172001667127392016539256615931889536127708224781266010087956369098876096340065121208283377395848345287674809303247156573361727291391075668002678043234553383728127234719414683549959578776551655316408170608561037025078749149975333958484625171970095791838924457987380135514816554652809010583948312185155621005976166188160846871469226427780830730869193641795477454181397634490607780606119577427785654995284477413296050666086591880008872585254470847180882459158789510288185523139723089955962159974278186374814425151384757772273044984700486432285299846025036190936148968313202485001022572201556845499341537546124604613304142122065626191841572079991764710330682646979545572639271664460039620437020242123459068951660928075076425010087594259626432973456074918774197702836899699830547083054107416475524049991714309415184874134813154986677291209772874759279723750473303249911402591136453603463871726202081321222708064093042844219866585826225805969638009035894025585791680746986425293770349025596664156835007048180370535421397305188266423364533531548360570468776945729471452960807053307613114789490313795364967006393457871946599493569933270318865064253822465815076332176413507463035176474676986568975989631699272103468289136450882080916023583868082430449244831545738959823337509882160328575666965193952226279317507140438686568686413521520886901874212484507146463609534614003111579369564384837033525122204687956518011008129919886692134536173317635711004065624892970037946534812440539398403283440101497080271415014538584436442082021871014113258480273929937761551248916427932843337425665121870917375732073704319619644883366927669296326801762373460150738331358866703288071597071459170525070588950237525361840746803159066638250356011400167515584128495141639216857268720992682732331203120691176505260157475726596006199114842263598577148247767226447574177543180346039670875929135479153335612041734838372254389546928827769015304841196894066482189774740935867983761442687222221058761930160450050520523668489402514541592495594191442987723508459908571635749909644540222711260751141410374613217129823863218607752238216075784908432087993456493501942817987954265543605907780105899184504440281956028956080972443318994671200785452461940588827807938703825546603640722397588426528783025622233522154135898554703291933752842165033465847174364097700060522950867976552551543207558457213801373165992820678624211146936525061754891295096942414015497133975369610849773816891457596899735651309899913646000474440157760464393823231088198921086783680589108419372305653153317666874477004541235026796103029206415627421893339273754047508567509143025967980464695415281492785977156114605739116388867539849919396024659703685814424595654455493856482127819171042973337037621069885179609957215707778856468201377037293510730100768224320267881966826596879805502864877239773312783763637934990952523371423047006676219094878720829630912987654670877903537646905957366967146852614811753825250452765527797198046354620994385352208291267951289421792790578296171670143061385586799263971994041055717581978013079039164239151127442926994559003997947152333589542460011178910933297301268196443874770254301319530450266758405962582988970578028733030807134662777011453133735922465531304592944490821326023883287381591129222249341150839818243468268403041342544161089223572982226784938552363992475588873361016332704554012726920713059020533770798525235667190956767493260578794051146245461077837456458003545087044422223058022765199328103721616260734245826837387257091246704463041075333260037307938156810573546567125857973030580193721342247243109775712273572760081662486113692637925404243742066536860345260240582344503870882971526134390931316049720991597706675739069021391665416450860373607440432995833213827845898762636944067525541734105047541993337713449211784839104931555714122135935410507929624135357723731563423873940778861526853939930281725550908495099227826162274954438767996824850980350503335404599636532166807469966499351186412760676362941008688771939336931706541230804193736123991537057731365430420802035798084246872186360430296741112515236525819922281933397060144904606326687107849512985811276357234391635454591845048286254997932422135764229491304968722125785090135545697681881277673027679908890219248357141810305532557633479253879824208769609031882782598824299977465930109716148059278742361456314880971636172029006258235113797477275311181210430155387595569449381150277804977229505992976943937538879130250719599171143185572448108005272279273412245431514415819566611592427026761068786283560627170486083035343189495242996278660342121027274010716774607326800265658685532211593906604780961480050463944153502687644566031590318905159438758792559302425551099204239640627699868188540066604316244163945667690504749916598724795540096762472789531504097325265925851906477714221676840421146299111195042193536429397832955644303589943453928537374896318065943741029073826894859296867372353639581363023733077210555464540208177097132226494706099493786742349549475429048989022192382728333604726620518947008594957443698914844896132164059781875633963507930700452515045615510716090746382720119188137885344696897671160169866490979907164630631692587639249391262227356662777951052247476531605305004224807963230660403116381217961994834326004838023821984476970010947795302774039141001898632980319912436729328651476966703849922047663735484563352962824446546763626285956706512677580912143864394194451547065052572647897701012547906644924245060786229158778372692850858435199194663797645716132922606565947949188290231335070290866273441362081029181259979394644948240544209757268285673425021834802550455217535040088757449675309767082329266347852246656623789290172747880460233264017888683229370229492578800267350222890783772718596365149921621215120871089760953240796186080172696229073563368272026439293310197734995445329415646792948305460421057717117153212540537551118136435618694498209122797281086781691061300845776528224627543781084785823140428657090175680084208962365707798440753814484853410453933598772927946441157657199111477164617492278525152561295657607455106716925698670201224354673378464635144708407371971306499722652706735367966309957251050444393379862855066443896077480922453414316287557284055408315775817885500222434904490179984409566882128504743555455341634957490509041022057095470825325085612538523760063782958148112338947519413950368047093381481559889431413984921386222273783553141256438804440773968007564536957361946961630260414422843657050497696345578050666593020960879559939371169566762937294477666547829706823979141595515504008412129387218550953311604734554967111957309908784635987264305520007212109194119380317754937508005288995919998971237530150652948843092086223495999063035532534483863398940672922524286892913644610239244393048593455926177919198304762823801732922136270308495603286626487843665187782647302979714857967840122088279625491627398170692693938196442728936959071677195308097006954697666742664040621911557889441245440141823949135838634827704449424744462247871827534836928481344063329130470486486087832256763000794668906864262899605394279350131006914945520205838720274708933833396822169378473212100057276458866401178692063712755566754041709199337626039250752637052439886544834928965100089767639889660074643488324194114506959915316759944230149784697264877988854051019231338491754201092182258862356916224696771219099523233736136662378086735604551683616485446676396930919847711846554338258302758654375590589513264698056528658830646370596567968418933435717219527367067218818881885915241707668347405519002564869228399116588692499002505078201226314354842105573051328845589343332915337978798324151480687471987264912609594552849211904130000775770423874917919979435223144435196939151871086501577241134332979468517264184419661185774980168180100849071794162102435525043063721543416217526961835670983876844386887732297267091102950668085892637674718761419548350246584997921859096910170174970748745044481626741964290781736293193137740444778993972257368280220042933538490948878512118497917238771957866863696384460090795859078630240400024930090028324525061354720349519922525664579443461108753644845569479734424021035873259035114067993334553092613553872075018971494840442685280858591801240950617928813223121146621173797149251778104955045991415689781826089872387001270533221165626919079810579967777951814913391586193091466924197707760357005847377131248851561853973221772088969128925276035653721636115139276238375653133273247890670792672524061525913180931564371565818314612838809471787023625927411360457583030389766888529531812554990650492424233898181288396797418779682662592078816678453092687418143844665779145692933071570734565535667752648134486207421925974706000075552622927927439864183580304893576487769630228849877745695312464585425851059939859307886558408872111000846995421070845570352315916927110046811181800843092027629145009751352728547741169415080697656155235523224430626547383840413309708816596229595587777532379222328611714143692651059074440859057296525664256252330524483782044044723538027055835658928436280364017870017851330051272941956921553284380894430447878401922408549632207844259957202342071586707451245010207012276604361509864639703408898225687482935290291040471712518906528847984869165676126486016501312823104974989595445742207344247053726236645560171018287792255652832047952653905897506853277427246631481500952826548190711527335212391903942005335513078071688627352338137557550377051055000652165860785727773652974758910796267144534805800094384888194788295197241657741108613561932493652491319394098583429122963880234387825368306344566715450131976761470475672299068943721933035750635448376445037495354338137741991200498591967426127663024641676996803161675496120509867859726945848073270536936469882058603421654796493399882104452156566410405960927215271004525676762870397944616713291772980422903521120230250514541194949451854028386972747811884824702869506000470840987875122808919831822407695543983406425419907159503681753537964301143474210592573445402065001541903465040065479637472388637659843948692156887822724632501505080589772179598868328889476717341968487699013514269064737679218148922415742343782925398479579656627194767544411099104343662732156759647433957731816254954041410318881736204742355754906506992568102212467800146470703495796491677415676900395157279239851897080882397151783556106690641383062852096062329577606555746725063193810380328291590202445099335012437982960935325118047738989900429087977088376461551469841583642364140113181610931310695353055401169596328896214020357229313160039369523294732648273853203251360492278978017126095746291287576274166379170390197398720801045335254382357487607392073196638895597761709931089395607771422344128592174413964218861558857113375262289010762702289662587596881327097419782315590564998159215549779531807887965267095940770414346770957157234953250406145893257313482245188154794730093779036997415185901566370801441225879785715295097894597310035995188587653875222563696406603183198802358631509120211140668557351851047591074916100536392720478118407844928791259238419782187854642136914415675674855426558109981150691878014489912335883655203737114534465000308655632553819219071331067934442339072626880417292994364639051043807935767108753255729831022756385216586224183425383230028422376124026603452176879169018704739298883097394670599671023465839287577758012041141606383722655715635096700347684861879978558772269952126760234056021653333467647341444335639202164988382899435344796366001579117683228708432586511350300147995676718153933215065913620932482325832429251353104508227168113636580726937721042797420613420455114773865778948577736324526485449876840041088198411638066124404017604096607311579061920284721411043016827332784861622519618304872488492106579721341004220455434670024369367625315316210399505447199502993028403303002980492504967392945586237923104869591942237399968150097679498587734177281950878223344375173707087044716450103338087058637336058947328736576969081846739133114186121988958070203982029119655162978872763557968345431721474513058530523917454379475711046337851280588580415811737803364338043462932969645283486392808448071006778269048860516746397010364887154749787460604150910537830542162326312741454641391613219545251169586543177222292932773983639778810179605498489671551199342504944655245019063948359951435109899511450438571148762391023142613677138222094334774943277779683258753818895183184125343030777837018076772978920150113218955929861889839102709109494308289769609262447864898885962162823507419935349601978537722455401609047707911574996465869843064607962054212794717313687463305981635395503106146336009080004259848386688980535854121947247181509803969782116994652146496184386913452868048530558238684977845841796997500404693974757381478299796784089581822909272674854256176879470265723407036444395956391287584732030504345509065974685904324591673991167877878370680435406431961382562494752362179563400127476300233853399461028789389128820366070189480172085967344672428114560075241995816428336891772265844068390939441737109088842347231826232744631317059918828273817465484825934949860773360430071714132901734234851584209094777719366637456549030812282316615885883392695003473199279351522578457843683956907079958125340209840694479465073195028441626033088059805553174213108409221582972062901739584583999471902189220146161553113605550861291233249477919592596234163923239215779264151490393440621229524440149206322225865039874326603884401964481970553038759118771912136771042825364338159655287252674617981581361594961024833684048595928431304043315618862709598930159180191675516927262415256099572179944292403360652092250737293821231488287649089848732897719863020036338892396002541680820197698397977486802476559711335152828091086921166165881932155853396212011771147911497151596050398367325285302853020642551778495886469611729683475384347884385302722209758527000681565412009269990414609039962939277168320328844600742913843781002225262708809056907327437462516014619589287138192009147325945680953120060927823025258419712916648743914180156290933377955781813806967556081395870627390290208259840840343794757566611575963874388127765293903814741786890097373945131855609607863657677897576218807308931853063675744238301708255869804679757303507961845122132447434679243964235647211542820932663477614373458095504141378488710609350107573268129176238534613121456537800042036750133030507984512094673169483023752695163747461247105557741399670344638549315002129813966559025831161622600475676468635836138784714202028942049279348618982929753473410221545029364501488766075198686332749667549823201406575646719018890931293578669534229297573125833381603741845708519306700538751823787184766877899942284519157385952441450632684068866337941905757451352992315140181180325374504333124576928591815827242077750234033908740659372806177785444222379993685849997833624906335804874428598622942192570727672420011079080203194449619256678318504437405517291631137893203791066848882640620303365075258919921091715737911483002407496095241075434831151861873321348108125011276731000697851367528015759237616435517529577818739638321418338305319790498606004324675126210411932435277319127669898572428331574741650737856501194640314535006085995506789025617194392336095275534429306417616923925131791498001911987251844467362762400889112799950162778718159818355815730027284998342334266785628129630816138954002543387947642177536073909487922477179478494044914236299419502092218955134216775008519104861420901659492863164378533655658742552130002663726582488046716412713332218290209292885163670790304057164853846686329191984798776475937963771840147232401875857963912398115507788972021044929871491824429038344284041269106732185292980958514619514826884522643729837184756131793569890642131230082272643166917731502969204239863770693848766861987115468902244551282962096529571088082993410671803502001736001788370673562747905011891498113411824335689640920206995006139095677232599660494257380859187663964312317140549631000853174561644225245887219447112595370852407040224507697345504970772359227724041140866936109914983209852843734068991823817650069603197658875999672401784925011994364087498964754606573245965536198641178003347348446464070376657573792390023966761102698372131449762967581147782402709483607586621974788712092352910933413727960020482090803055514445474500209385903090342731972352959939122124677741597978480663079669466501985232795963029188148372640593339381014541021608692430378909469247252659175137843767762307818702172950226536399415526212550677493070086588213168857298188816294247331600512696484756866392255294063028489445033796355012167272290512275907289594602494134058211019333117686702470278975695447525867866552663630609185629333219889442612674693613055936912509087026947593559059337017987643156801871216760729034574231392669215443346761988459229045441351841755198350868677895499542923031588589291170018648808690873966874373260558634798742857747297297865106226507806021053130578402664519144445188537296124366406320806397647428122484861806100653539086190624278325332189529596291356230143316652563100953202270547509410462931531301904639782753677722999287051622619701278910466750320807969352878484717016894808703073348503391950814213660227027504456136315848676629959136215566902444257359166391083673243691636412655113512912835944683586306487923179336785138410444149852990887497914187773624661972529956978415591796487102452338034452077247670571682513720209790206611786989609590781136611117660513742275533381001252453305449492818593796563417692122134021279149780611922093628097923189354709997645640307022921467110700820578679148200494335977979493051760674963549747503626564690320176279774410517183204996292740147775536479526133868771727776107538947520869568366883198878999346579906201227670512740515301839356041630563610632890089155260689439663169027886795700613529242554812754921328421672596476759812062951925053230931953248166479345987662195054444815439029496117255171351459230945971370367577145812613896321010060461944067610116419802611323862443432675162038283446269050329284178327683832927780596476651590926718261685599778387363172807575478868870891831502210031652488091451223371252576766132388118752642165768780056957107989803884616417921030993112750168692053126725356787805337479046791540782991335047312948979830696989850034123282226018489280195683397447189160020282448379704792121429604302339568166538636127491175506629085079334560339855448563608507173027360123482206985857617006428610535206509103745841399101708126087456887625851935742799453341527540603815049033954699733136998458328739275683989996745760151119823686736465689136216372135753712126448907357287600190120439487324001981173733400896579225628372485902951246331765644472806763896627150315054779083759771163447654532784365583964958947875108611762792126652456839903261228177789846590573886450482745884509817038013098067744480382726164570237009064301200050645416589405993795786013626073733660893739941008927201689431565980540973407313702022762294279646390363600727364377241015526890509527878666344816285177248662315501036767879867821525437313101749092134950448099181398565231631702417288349055202690267753918520628103170890760001959661094288337266065631660474044784558155278206847725850062877959823491205430669281189489350325396582288286724202907872006460775010150502228686621540462837915561150771159250116996743921280227429111616318087947081381108423187027426671666542044542312065696929776954686979252997878480303782900694829993426509685147712073214484742116497903515817982336839713608329123258511824168068328321080973252560636647324748924253871040910243790020935259593364650452048256314843842611544129113284976539703910970985799372478521176901991107352993112157819274368990928379373146007194307866910210335471878733266570729546768925822099180180484452122786681012857959988636649729354362799285494328553732145949770241696714860312075421647313828928008436560161779421852974863008756775623416756708282578198715992430635073467325170104832528243599588906074568300514792163801885588000335571074012469491840508635185800807935440470722069883692025543634062283012218802892776782247136177718020910031136386021194548517229258576975880615393725958783948749648837652189258854900192756743702827052431961032652597752449502165164859141154817643005865188099848525725171173927788239235420812066631473770098872398417861442394274505693046449958806027640249225323965877616238589375906725355549544340306807918560280159954478638427660358441287064124067089281477454798103215685564949867076942991442651964554306425069109046146130150815377410358267514272978565518102942158711091721000189142533904849990741769714602477978308529877496756832587251149902220838696255104132561992441181853656772838885637772239396304371988988327321318285367209523335104296404329605507214016202638449624852693339956712424938852230461197596726922153871406086434167687512881441674003666784275173296360168907214021529722782671572529667877377393008159039850860756779233429631916060191670549715325452741956583876186031254762498299071022929888990045636584756139818806241068723840252791059767110886814963507076651475472425304021007130219362362950477754072024140718784376479661530585690952068109206647938885530209993943388358550832802706453803171114283388199059480510529551546139074776684265635640391441049206336854902918005492453072693506330492672586190347919263007255131363837880087901283636292879154372018929921783275249840974071332646987489241316397820148183968271723691640358891423532110725385479082807908477271035247191035129281581119495680547365840637505003636428880169587453204134680289639164166565031016234407063152210564817766534452863156234792462364967854758212991498477103093096446626369939035436311023114793597623446629276567135106794318598401259231324243135571068290279560756013119052323046355546232712996148289743295434473308706261578290484942156045811170558963793770652669136783612607085110485401701911228752975352794000189889799186707312302152217099054205873083286330217323817322154015982555376677386521457707434534541861716456665463838481635814776468168080883456764077688626469646212148683218936235496554120533729287579797548650461787208471559922717665684099519598709166299084665265177063871464086113358811045296331534567654862249936197531816737400852985142872663673600535311934885926335494898299211258014216868186357593607646521493836316994315524912248528722953107125091464832037937884998648392938073872562544345998720566458027133004985500670548463947216453779770678541362539289846130480802008001364659268977166443830413387115007847323751175645409391108129653945579253588181143338256790603389427422841672949395552000363250019323921755306413510519887561358139330201908936767385498802171503423442354270489614542202486039439948634798804744367015262444875369058802465192495405402004907206999314137842511634108031258925229176033309685873814213920473749078771260077179470450774878743194648905758436653581439455168999904667156797684747562422975701086309183177148279605427520349561391837403709803531768517635612324137422696805469426150386993462533171202229034010680296868040849698086444642896028987922419636724925911282545297024652290176892747610038520583770895231124123627317897203676666013958048715808655497127727889858381956994713840391709203818617588201460096955789911504828368405316736282196763929126064602108870683596373123994360401487545634626675462233888873426885756128236109796167877417243923683277860833867900044301719916826207519870225454544458161968520724456052934234046080194017664171498266096806590286706343055971619310509512703897235890345332497045267778458633922065312242502558874491592272012440851554030621129089352039834398385680478633133896450055657885592521960226748484601988638300853090401943521539878210814371000760842424582557959783825449638403843363344191274774047940907051535586783098500231187299797906762513340670198816061618783475843546198610074834288501286185955742762378084274580815269519475152906959394804261364896208733513797990415015243494597195870362880481630244794344450985872390292984582934605093145808718490031663895273742873367285240260779968343530755323912013664177164008388992400863623329578365629380119381297349701011311101665603346289256306050625091395247726260892086326408775411288714896097808721141457171179345946981308231301721728650248767737392137697887428914835238947497076161655068368257252015457170616089590484639425041825579224814915682307778696516511153347010090509172335964355122643047495688911401170885653141339946497015171375420130758148158659613021225760671033262435664394398930753276327655320714085041024795648360491210382503478105528914489537065198757100537403726802479272989750240897527807157798729601896689473641002520553998785522935294538034322498880398177330810113981897203194328534401793008137059079828293982941125791967901472871001818356807362208510415215271251572075657368114312414408390338192604908976254016475830513215812921852689164716069956977437258064065572980484294270386585074786604230105407099963812526795827355241384651650674621870394851965671887023167184562922497743318504153956750174991137348919750791077578218845286835941538691135234639657004150702922539743935560972213735583667873478297605854887139222139227466981081653018767799460235882512994224762489212955775955600598729725105467291085957051773588837815655893878549044045370170022697197906581301772177684581678867201002443332693573437729557456818284653943688852575899694108852687522107477184792759339917435834920840943807295791435898877109817298636146627149234113760554126361239407451575868867537374389530793484258993955379549939908645261629134960226671433352993291574593075227407909367377686328603454073043479221135102294335589170664211804456674229834305536581424870517782921937545472882389045562172719427850674792074040839229290485020894312531072094801469135569690522853770451126406606346733964353792272924793161064320454568797256548724938623809549504942958776285931400317526701688715514925697752746847427923989776337067191447491803725111259554394636308689589335754577227781107817304769093523313300405554670387476132634720430377586871931530246765012922830438262698122736679724764079605645164543393866805152342886015146744060673361422423651304579864707498728923845683559972162520638072775249600571817285509561248163301727430508070117288920880953831728750117984345414188129552583912725316259215780684858217246321668040374845447173663644419371055142082409998596000614954357399237942807625131530765701751294452509194532385492996069480238234967232280745888070816474349812117442940782688595705755476338752760805429901187325194303084916224057197053087256740848613952381610935290872171152194001045451558294194595902303561101705748940357762809119620662717454676760661394885512474231244657985328488257998890464300056076631566390542698693071150221444200723122363022880050924370819129199108795111371992829630462752778106799666386281055594190259461726228352215994793774363864251320499929067235664887898188553517529281761594963048628140231065933563389634358765507513066887791015644864693277625186044789009143454174312468734330026181420355318730685710067000550889830844819793031370927643158511799530148478130132436925852980393427418562630580738291330463107008062029515244764889561416092032254819266399918689805065796150705464652579732724099601746903528308907264211158371751591814810275079101111618900732520807196783436829603581233157961357223967858802681426063183354051398193717872961777252696282621105243567398606825439320654105956166524649986657809003896532185485269364695660391041656658944429390646025475430685662947368961649373882520530772808744207421412154183485994386859249460614246532042526324402201766664816904195202860455071329946692136238001749565172616473793511260504572449773528900620278238046196787799143211171289441547596714865895104199183763367295362919166916947776064958414494500165584501760069076127304806581317909581215613853901759048428057627466672530272062217279641637784033835893164309994541418539638441723609797045915160252718457623150754346102972741482947833419312393935443406613658820239814039222444061715504042105729012240531489550175939763277487699271666476688269045940327231016821581487126197382948225250534952832843193705537027058942634986198205588993424885907290364121789545498881686228189009151048172629134146475694428134275382135941973838221592015706437175967927995245278794050962482945556216780816442050901534111119336234391311639946212516053639380166662533760463768244525744288591549725839565590043242835706960112534065601472867508923403450829379731531044531074139630214797892930930661212253290827840329942928954058955208627325785431970245817061914820936491554134635564479474830557691499067753244932608186051810744514944569082552575392214867140299645421777299294209941591476578790791594416537901334082833348481274482314880849051980523149057545854463919176843455334546009664184928723968451526199849005005883991499432299701825712466074421969559047516961990241249944374202496005049923842993718919785942737590139751483589179334022560054453888392277519722018023157552909065723744007301527058146337519673425109672039793300735217704583924058461166557894234733822633480822440628551987075678939753150549043120289887398786530068935097055256033898957764352942976790158794659849935726773645121438729038150953172117824787385753608493635185013311249016533606067717664413262779952291343078953595076267387686657280605835135774140888194523586409502227249448313896292592172273372457456287223601238728918331910656119325341213803955408615752499150695190600883279236287239259736500781709259736249288545920572473449212285964542576960043441933153303465707134560167248942579597786023434865378083600322503694064902494315849898989700984134389745792218797748633562803113267105994005948859142483615382276046399743143078070782229908809824420416795964223284604599116193132238240408353881261416221286749330595050515888166249620669715505634673897242747842630097873419235466584668751125202505783217679846908858195859322677516996569906987326269480784820757046433309820193088682793090040157210670792597933866161409630731372385101821640667960122214947002498460997367419147227846074292728714824715770026850439259311295903452244446151527753703854118613351026501116405041722798712656763834568532877414084910718454060763933729031786395221061690410331310955721665720999129120497807936755400209553188529717550076683387540172536317481498199727130023311591500838993922124148686227245599377136257055013503047690141441327408376646096852780616605665018425992557425441663002255650767688275674091642579349028734750354046067752812539839488206498443866248686439110221810084891492525934252048178921272444725294511931893623612398331521678990892021069237833910440500380341565521066961008875682192331278747769352437130440872278845507601614209886651272547819289641909904964758514952827746456227732337067512670985457247183908403520357065233448652579842189006779045161487674256171704133100441257345252843977475761429372474070864254153397957007215710433532224991259583938597942803328961997780770207501815978648971156970014677706846931682073410714086819513656044768083410547727569037029117141007945710933246645120258840542962463424813246657360081440843427066536209378999458723359389069817261663826345383283455437786066323199748720105409846991990774340433099914806280107569616142054788298461875902768937169544668996311841882891896983883018045149911728335444512689844703742832408640190527360885625086682512361940500998793171502731876522177293635304330220552798449119009355554506001067724887691721377825335935728502422600856692028502775830859204745639440584391785353471435849849729882766907388630241807151176786481207735175339425966149738419734451717692472945482142098190016087046836183228008541657511518874237867946945034521394149507077493596679923262936595362781211494748354053487621901897039151474666018509095531126219274619331953544285475150188767614278225930794345101191979794934569475189421358510589993802092369783975998600052168016979415091053019271127611300158731106078727921339767741293497626879039214350317492778893584696330492166800803306695859058964677440342960077617393103696950443946746495220281233383430675850835507890093528526600234104255256623132012074634322619417319223260397399790929205341404115211808524254427884485389776844436373772019513406229729209824056752266826210737982646855382009493670888106006791846599216575730137365164038704288774168161079952339167898624138304067303710344579089016377361025914982421924852894695129631095104208350481936686192855765792175339411729017613799510239275280677033320160705693364555943086589969530884019533725475101454391484767440814495500635132532928878474784992657262883199526694228391285938888127135780141922874357965299439605921933358250083724771644199009119807475075177598055316286973862273239823581522395751979787516078346624517145894046259629994320733880206864354506586824435283761336165075533138000024061564387786031172313978727926057617628361697970485128676067460934924960331420128091353512350269319925499082673476198857270116345379381528332836459830659159206196357625950225670732728879140773452514073740172345917531536977701539791631676956809369810050118384382347188871477796062926885963017674902221297495971845485434152694579550657946082407631411637878404115492975577310535504200539893949435201387577311659610282726377166710759957953688365639884972117802823841100723411807737132150424157760889389636534289736439583550850879504516118773859955400453385925688856023610036285192128984037018849737920842710443447175889579139469383966549448365754300640293184745988388388049074810764893147611016167887797510344262609107045362095289244828322702093944418199936813281040113100049710959861577453477003880206228709349183665892094329831160083997822238631936816490766710235955465820886330338682227951773750534862825979340892994122667131439589317239104116376377686874033976223641730404744938449663063932825803018314064421704436085596969904196381899796045526740017875343433435993436195442333442478951260556257776082364108311198171944120823306514047992335356906086041027281306209181050629180335831135068199392114945992900570756601203411043037244688809986701539817840184386957525531766397168951406609680891122633602220918879624780740409044101673451592429201332067965318454520402585038920633014918314495295151238906576085438631051787302379144422603997418307574457277768108566800996312086482748796020730968309430398282584357509675855154783281706685607080157903326403790322931416556495110508562588175755358247890917351343386519700566819748226536680429197896665580735105851356159713497307482702132324492931153069109184697711976779184141280492645787095114697622581187272282583963667183079311918289670643803945660190495482390037842517865047771955420700575871826012685217628391273708671628364861376466958392785775857581697844477942145674170257216294082127278699564722917511497657908795311185392574593062732364050217710180009510507707611581347667594352036956898879760429764571089224092637269940195250503949837314451022323917401576186471350294318035133770661615640830722111517697831477678637244963757163447936988662236528601989463184019233725456318645976669445904535842474808537899765416545447841373401822038457753249943522873480838161610261194279832475996198690993971156811524581519714097950541518859675324284383135400094791001983018774455975625209588717138423918649677037652461626109957287684307786512891830915579487415158303710552544992506717635340860029103694132646928355162966952934981877223444277424119226618405819375096128053127540630380579999401423088534560435962076737185234910120122163709025290590922274576777680706781989220868388266906914345282181156472778159548920602800708851942874208203818442353869531763702006685738677493810666807995755597526248864217909941821662972458197448388650429364934964088877541518696387594553336995245566669329525878754744991572036286073281799001302906955926195667782597987836527450088311313917039646153630727328421638295671912544215642746730623887233696692188963809495991419178000827985097929587984977850725027168587311196843732400260985735414614437931027394043262835597488606260188862973413079585363605779260074073365481290152830500053310182992519401892061294357579173811082667512097728744320252197014799709700163693551257659514849360662077411450866065279488472899320504548950839128906261596419077198793260559552323257422346358398946357019631397762918082172096632366119972904524123131174201059328580502680562108131008632072505500373455415587321966791495688701204386589562904520248949435621576994122993087749335306016735976807068886149598911701308512270172776517066061283758522673228972843691361823410068720094296165151650721859515656013403806981295716931282640837190268145700464020186207982761391957059308727131229235973512129626237289986522406099555348723247043638385067014342803118822602343394653679256480788797421356227257385659786246661892529011018604099450918263344719554725204097321437602920404411431815725158680816719404736640376013208614182639770455019110138913985462746537187232387263207005030104281379823439000185169946996112114569123681842421500649877455828112503240239752696283115412394482794273796926069525798492565025568082864958669577510434040085060676538995481533509172273808086729519112091267445747979596621493045861292339875129924546720482671428532480706972719203674924710267091594089644189786708484868865051544952195810064302283004909418132547112416972047382816068176269615265368559307752350297812339802275349892043740924439489514260057479374262829880347392703050844404210284394908096174943707840727919924559793204944142320466954317360115930045406542979859140631390043802278368442748560246573752047731627690454192265258283242834703677830139601527329552071326279183426813578111186165428425025450333305307014384243008838077690705688271405068986680217414099705895102102242940954987862751903866402299659563865937904116341376807719709683061639676703087715300883171914497228425876372276192499575908506596310201070248560814745639644036557521471332240631363782385344822932045003707302282737177850983360786359509134578841206377606445882719938073960982256983411465265079248133022624541021691810693405746859515848639521623656231325864032377653006259537754423401212586868920985470513856043250949856424192792885472088622377853659764505636607579281139690407015736904427276040209932727046083639188204927512594838099583364727606285169323411587516911018032874980799355637583863902995016586816424687521176145232849781621173341455655252191339514822343315738948162300227509378015432601038102861543654397967999392816196639590955328741504578422075098476402776355413403497149753210815973304254296012346518769400032937898317000021375954002691397701792967590931301633358702527237692784619238354789667043000635498984403980714950395570681610876729273591791043413630772020824154284305436295799670368986130498412234848182292577783613095779764866420246922506951945494276524645051760508108754900623532283987704956170880643729854859775560704846364685088245566440516028225662174339072048298670001651500180607226177230452749130768019675455431555862044930752218297487061066992893942522564225201454942872166665801097616695380015790170240261462689816500423636568315878283267018460497121218861781139500015007388984183840637611005162602554926954848629171297820446586552125156157985424499259283780944035576615709536247638620692256495196560286737265439517349302754710025843777254181982921280522544968368125536770142876299387597148368614554505093620172782613146828193113410754514029687986691168872761485398764673816274805380267298032459738726863159347641554478857079770615797326252237031408742030514402975771332782428935633909081131428796755872810236669783518973758728854196252374224777571290845556994714261067069247374865187706621240772463978169667098368622497143560952690922247719526857827158780008910340798435471786638693467336263425644339343083897181407501427040443549645071953579219178759313573680313849029067807550568623566458580202843601057830580421016461571197064332768445063926432641560574091535309531537706979337712391724280145951494545077792283485791332473459620701138207531494543469700240309463019020793528991530177507127363042501393214502309777908093520585045093285119262328104378358505717975464394706860378240876536679020379432745014771384319194087311869358736410807204689574596090016728891674758833211653629530359371164602787365122080757033019901427215391115832880907242689901853526662873645256476770305795381635933184554692517042006315467730361404159441195490719437459333985638269741304591222085603953816371375130016768438999189730366898053779964760498261801575365806461719906681604793282102938734505498393744761410184667641562520183356735347308108480102685903479743887987292860686079021146280845829187374566201111567443895751383274930329700820733387256777637452317034965110669925119184058349878826665691546495469133707151921049716356017880495936261231614510151995434030654403992921966574231407322667271512451281324551647739798066689732872914038228346984848033281656737633823330762964351175702587605163577308630403678167355432701829231729510603579724527137914594428867846817450803865453236941001531453502799592344638501764957875601461470668374573136102444642145717005026775456599996613153273499554514181940120689934980434432894923797260475633249931824650043871758350328008800805419758079643191818746291038966120960567415775941741610203386945773631375086440714938216380937343183329244802648200626277539808587372406843777990222562524557306383196509014988499596002061068935043544456195993631305203862937418448027913272031163837872434516541611368706128333947481590678271196005398899892142957293994803897263073812555166309515261855940176580350295032973133625415816027747483153692164652578922723072678548853165807170708098881665092079486390776706602371751196403476640529066138999449906494639957926101566506608122395192268269301191733142928575614109462749391984357825446855417740836072946133846846513057049084317591507527307983333193465361159933819575159565984060358440324944888322914127259404191555929904358444242989028733071596062144401857320394463839741946741972074780535627608748497197606856544443517379090128328890315562495951746399225429065775936837493961527527234009710676125798242262224325632423656382476397850849817287428722182795129366899749725003166704503370672600116549321069530492028100477142448296594728624112051259501813980383220025320774396585135787815018691219970653221164316326109096582610600787844161497416897035088113918139624534012283318624421438793265059270534813425141130223539180458819223208150224564586168510170189677526516779656474370672295880804988006283538059455358697828577797540717676766019635270476007323795538692597333473583108803107889957470387575551411946781897474699245650877265024679194804361364309030043085266409712067214047054988166299382086965093475587663323051108100164938087269414133829549122430566201982421680411518592247767100282193761454649101645658694827401535306919987921886357498072813675678170143556302404691788717389526409476622660105082437464432440909351315833734339315376639865988321446143507871290590432376978755941147893200293464711624061688998150194792294988377858873580258132214271132874701824906312897212351932395684595424006694591315418545034471885021482936154336380929366967714725462646288047133736400107838444248035240388438224994083963034554645871663508869324096563256818573627988907514686371011177483653164844103645706435009653743529193261489854704185483027903799652765178676459155667746345654565832939126090626096983138238208941497392045168826438684213050392796245783173284433026447990466152405073449154328027954608739399782347329381365418076071696149594647934383066229950268727783212982800657987924057356490029275515401725160695143014188470218922790209848291729093130548652435421620396548907872143904767076163606720936414818219790020785081633567522325009293551959646683820271787431916865320401667401686558031943066758352721078592800504245730211551110699204918789840100581633760729254006852923921019979639915266943788872988749222394314297459806982909210790249249932932944595229682962190164724283124404785728337002163212750554927399553946290112616310242004850465989801331509429165286224127610493666735484967474955529974196694794838732723676605817609602978573202360666070255663414333791322289846698661232758010597939780909654490254664785407038601841066986474559374048623536212746082911708881291043037518788079151146880835761084528816714167074689680012314688097397161819934677390198707132749230912409400521398201099743406430484388927677446253784593603636029268805189478749449550033341697241025643571911455655234063935784485351676511789031737699275089353894415665086665011373620958150328992416772241946919129393319932892515376253397974064804775097580795225427456463180874917999223835532635285775208571809157349143351426617761728835522882143322282329208552642355410432850191384149636478275999841693209353808377168669291937845436037343904727771144769587289543513955159019994087096177967947500495328218458633676673556308485314017857099027195961527180812561162521140997690066203924382133884146322190680427723538941825643895695486425574384038010874940578547443192554428985934424971784726324991214633503567135571220055386151976415774944268455295280326010997610140494412561130463345907952497027326731193019297114776107395380277887464511372097658977436230954237290415805029124094295952478309086340010713077338670386583456803980471957894197780563021646785326141788108668109087742314467651174652615363694837163713406975293121470021114703452562185375752661933768515231942740527682878864696185319191727208087810689221093439488777240337835988318876073918448459284479319229331488551407108410322489386942432012986725511265407093846564060220819894492994192748950572712400833845813625618659911009449377424721288837169983134570146503537031203810128009136539146506004070822140279240304556450118899186565168081495572485744432094493473852283270361336893733118977325349564484554300301578597690385263667173662149470149523160111055353829508453379761579618664404820464202241427507961438664680850768548350533697864063149958201321977660684815009436802034297944675381130258742880634704015732720846668766491067792825687391840311806190712804630397615961572286800093521894127009827418674975617185369584732878520101546425299634454891423664053222225802231963084313612127004369070068782371689845533804751043823835050887008425527802570050514819007597337985843885274489489683540380853662651268672245691688580140915255766679003288202449522748622793487150230156930334735971386328218543998104831040967176748853347304279234085983335707759053232127012204193599545697072053927676526845243846907739924577482139045704383455895580726694831022650046877627239895348385371108874762936395324945568125476222313607948191075709068742750237170271623711008954056638731514841660592149239419832883904018656166427562432159012877941068425945127534369625109189356878925473613456338571613607396671537420095176577685612558165740212951460144939863615005515578910047891385321897114747493862526956491599461858834818273815898910608435713468442155925551636234233292069724753646967993954897872149799823810495959591686930160907150652877820841500235651245587735316539437103719251991486526281321195113543914938349101010766738390114373746424446169714417215724316412222808026845096661481287445888644160250148094026451579893046487094738400911749955659498699384931719189267734111633089781410792994333100096785612559709620787126777163057792266954012959651757389734602655747997098549212923972045706111486253509452149890435217465182949836231914494815766770481181485085103510979944089150496066670283484481576953196544316063601562751313737730478164069479138702937087019528763867239394155157319108099224427142659458660778049328490155772976539599361775928475579981619339421319573959913003681601610881737865493059482846496211208808721178893485646332774428152559554243711593991185806584856190189427847169406485948222142377189899135174494262942687528085844168493028136018059396139005224444102519839007537033660849404986738330414939872036525507171315185994409780943080120794889908548080539943549934817261656847143325660701597127400212073524783179320976070044835445418793775655701411645433623545133623779274660975224790546464346701975842350142856309831867331614220813160564611679763028686116713365915669189156702013588755177879851949646727146104851275179993434079582903354582617981093736731262904445518480862821386423430410680034469442734506027858490818534711016867127730848400485401730931895060927848830651830247759153294493991969511929887223336168112761191109445429317099027155073897856986133376304227576468128476269449262450056049634186938124938209475905188432366235604864850913999796563701723155906416085156332929256536319538763130853178513794987080519102011526845867850934420736786730701444227892162724053974681977819939256036808689515306068586088072983517029408866771240288651184867862832289328193932075379632677418644079918291411446037126695440904186343223562119573663001435958346903358582405148501680009087949753842686091634949060989371195199979422816927613827893240628048137585688636031101981982567945560806445757448040655894593254026305826389082972779384448041816553740771737475478809103780393676876707513986710382767531208819798962496483383348919157621272584739156654258202383881832727523385260378997655097600044054182758974311752901610017146853805592512074734793170224867606642067358747808908146220083070702042057713591959943829446885520038889378805168890426200377405476612008593892138014124753921212559101538436033641908240099466927678742854938303656065455284774257196198802843248939760458659772138752235104723927665479029446187525335052752929692499987382000672656840300579726516950116879298190764418284039374492596102411274314166159421658672636453715216528282241515710261927785885444636396981453322709405505938889568339601967793052427299797460332784127771371718413150365670943938150320324388674372645077136343412079094462418266437593369871885509661657245510845822400113947186495316873725531855709790101617442015063990423913804874349980265304073513887248933927145918678185034210554212500176841397849353678469999652157608214862013029089278665042668899785838052809188909703549198163502303675137599363409583421985744971209390859026519325251512870552175943438627298810351393930327482117757595579981267117496890490377841115851193745551648116975518739445690269569778513548067756267161545919744910341786175192318104590359619797926500467825909648092005528891119629709586694915977863951784826869894734287994740909982098026912409894252083391947236910907616752828771597761232773769690875785836025211563959501144835624026191455746368142932582540774304454481706916520574293349419990041873459092870953862112453932133356346374517334775230352635833482305976308580965376930694939575677197405488133673758656542504387367721838876341371080433182630128961431189294921935026054313893987715562076082685404570402254330603026172082414829377759500875209249595904239223401695775577701948067570559376853601016730879119836978581742185785466699719653470148555750388813567028293427693265875145864338247046353429353108345929600061909832781424664811668103807980287996849896795799186793971010697752084402277407144645740794044927121854269812815544091308028436492776063993114967837418341196136509421583549327650738410005552857881267362814596311778137497823513626415279569521423172272489864313246354259635302933940377125658267944856338717890186390525214303076834268792529940761288653601145822830569232783960896024374392239827611619078920782117947486878775239070274220929808375887680938227189903756744200105347835627810420035900069715468157500081786065963843152819030093473677533545074789153018875509445103359494997284960522653307584512062452798205424681843955203540834603937476231480641392070103564783926388328886689849231878135328973707805357629398716807856655494785125590682917809157567615368617557077445296935916498387276119349675088614624561824274319557226443207446038997968406938546791801743876815541960611986368911210430144278164272060337713641300215978140924074799989593354058985439033800255203142060929803026814933909440049508743195777104118009497860521564679579025430867673425133284789336493627034349042258361502506903003115227258356833394354342282006441555246969182156430731019279467627714138273195086777551171036849940059355548412022814422834025702513605786258861256974375001094880592560514356363771252453662536824786146680825965564270721592766312803806844868519299307776552714038080863222712803414259019436449731296663172290643219792142215920586639596626606238661370707125617791517256651747179236887972527057481099644666083786704909596098728642491275409130459804046516549278988756962823613184611524091644308054319274416382883636468650443438739601220247078286935902574908283944644185514524129983049096037280996415473287113181473614526981682871607650463929902180086730781026609387526613512565316552346485810704838923505415399863236424310443636653308345061803293584717213539675009006395171643539258145668672268070883332925072215510550533711302014152784166414049907696395056944705978538228748059418127076940764331972566267475713243783542030735743738296107925079479028813868552893596736543137687384875752135216431642821876571388607021635242008626068550738445478257717196804877034543954799541699398121090682079958510480073733119522831515492525528520682516450664029430070998686544823451947831429111966369526080176093532386558720537410779778501226543739303654625715998542390947428985988896812452500524160152173726567233107390833375903306419405183950913174764947804648769091405075599164445394168339275339375491820888361852190678424423744818000314594775372921069510771881945701201201380057879567219487570806758262282201465380308256992554197622969262768376133949388068143291369300609277822133465721769479361422726973688351831074830158870241023040399491910737592631139902666510967415174469818464245340674075347132222080923914448977989748887573714814301397452947577096555127594665949197166151573599461324902270727896662092732682483130218246332506334129456202102496683268150532365250013740321572355595922284069534584355314879387282063578626032217532046191803682618047626454448118630870740243128890059029291043846946583784276010929410167390836957437888147519641556968407981665347385020304117961305754439061003680431997881558602138857043100803012225033202128011233287773873547730174927845412059463376293154570715121828194274729472014090502911550159602453225618291960918321062443765660848089331035533462982475071091468541260977025014787874349992271393874378065346835424866266936514275041793091966534562465079864672835337618392861900946809878637942899651556541099197221486222613521828344607949667512211798053145994105293428906600898902013172092829930477862769683863380893415768049467478173495963337298805192302243922188611568491589664103080691545429747213938601989522087304434823873155811556097347556490301842975993567442381670418137649791152935851671200401851620771887080156182640690096389489487500295678212118459079048241169633866595019623008270950715463691856318247524804652442178772188305111321555025542767895552437128447136404584707708729751725408069300009288723919291824091132032692787979462461527364328463415316711485429014718983962175437697667584155518377534982227678429627075869484620858966853380623405900218473187483414385889448955108044099485111637736133856710008205302217910903577261271818100515990074299154290245415503952639658737223581018997219629726870787236551609063332563685038173969483965852728812796690871049206172835659845482768291321709181007920642685499520468478127235423782753513962856065710607431364975061800853549417377728649580458985970764136217743803589009693685238116832775790604288739953393862408080022341196726963788173011502312775877813768233097238650754481162355116302772981090688020606707382052777070980249554888843622575796745226281058804630683590184931305737903841510394542815807863929160215415123223510775765096353142109391173940845934861385491263710682900770617781731091941359268453548570889898992542883201865106354381925796815774976088662182381656712626722482137765200342438253458401469788236135735553010052823395952033078432079531151937870658687677116839758991038063465580771131806648552295045689224971474470974828143478632266562512802337621619413574962288673710547448397918133273199593171838447477502476487034712290429004715919271183716471223121740968417878115076206102003254213321068410774970190756819416542655691285494288915947003256980038542750971622157417941433769969664765953484011349735150112151479033794831501035389453632228527215284485712850160267386633939335436553784869575599167571102376899330145864481889415486772976768509957902859364901489039175245384322817879150139735127250443766907507509627255826726257685251708914100258204049511563429400367067761305881462471745691826670973532610888276822413309519872439325135083537066018991110666166670010568652657522581584747499924363723367036894786268346771672801667645385444720180521400502662372141277471672797789689809149803490013249373543254908588881145450770642208781436529438216955221243688941020178788398666400961434098342814475244896624085951955437775080892487067656245631337269506144117482551277716430478004837341711214290609090741344975344080252741031875194635799269517195813607820310032483593041459187579263517506230949222684260358493791771870710837257307197933043510875796864492433990762717832304013361559492301062118280074496591851711322150112638177245092239182247518680673644771738872381010016341114687555669180318128563047734164491218466331506781107784050678254233896017432972390334571184565737011228668192552824502818802066182795164906442832809265699907259503681697157357729516093297607788542822412438461726609524035226142400834083661855625374525206964718512731837991988021691581740360963619859900486416162164754618958176691167024513022480820791129068834091321895108783030887858396507627363189527862933657064917688208288351414234903312565094954838970556115675928936790016610929610788030501475943715196239168804377994757842664084245413715955520525021973760407265563982050986352054840209161578308424966586622261565087302739597241099363400813572493287661114469795394904583164569018017107245116331738693884022583593906300008946690458650780277673583223807607899642835625479337394669590856796317553285610155529484963984379218504848099129604103838336753399177266891748049198923855106668076833790748322436941076656202249175856702827588670497395219553263727753495201275097504813412952755414900655844610236503095641440068276550835322328575323571269176134314068995662691961375168496894370635323752719582366308124632501577501940670354392504946408206185265409546926105244148279846165976760718512232598236659093704832281682676686093818365875145675885001186683719526158876008612359558962429555999544799512974521877909690850726147354428749508701091446042841742275341978732343758377109718366040227064646515276567359798430465507621845398960777363424356413920925536291418847825278194161896018341033261368668523411598142834521139001425004451301161331083770744583293713825673736817128698117149388477485559536855296865326966788461958825568277079391399061983823593029946364462270506743316139243929700356616424424425637489344731696824437900208857565726237402500612520220754537867726066096581059078550153419388049714304618719796192285860683848979886361871257719007268856240724277014647806147834985926462261946539652909800788360016784696688747423059564617492866043775207984700773352922273679321930871826558013353361414283953848447737012522538275932547493061318392933794623582581703941567432702399691939602923533282760295241497923245649484884260532768453320590769578575211407053348942241509171786803373552083854891439050588004916917159466615078701372474349688812790804953742465513811743301354698722074437771686736370097550356228493449038384287321631641420263137493147023643099061573073470301371887342427215142747498798937217331793613952257064850308503151891770921342987475809970806584039873477159152605326944089534448066050046951194820006999658723210509540805113853014197065788622157793284948678749426646041791871776807203545650718510660804213534869949580256194435774997713987135293180298920893528403667517259794442020754863727287911180432610172581400948715229893938537366403103141556414290455909270982606427040718311602841889555645553267114351392880154496117147350656385641153094721126461567315756590357155867440728651560484418059891150282859371644976775303587017199412798800601513171237481402174449494857549874016695890540796031156082142157984674938757236050686470281131146018495197469040287883968031970872931540793784281888644040986432974937151049842852782312960453027636946293514129379234184265281902512727519254499656254547572912635214026289126292702109172091933007079563946518357073454148033453332670750966858536940891035759392498273083107760740490165882442247621913199853771879758131043917955729755676671201882044219975212960408532327135363321037162154619150260048454621380379160346155173094048128171981496505436532649043630705883957118944144285018899597101889424294248015826867518094228298175378347275094034443492028950242115714820086390518546293642154766137580654860144998645313643950499136210870194848911016234155093584626581103189724215356312872746763360832066765230069423469054248342630134260548428356526228067465271552785057930853549114217947752806291154285207967210149506893273915995397311742397362293551777354888240338663727314595544341491392079431362635401717009760598982705358178381007562484543083753075599093917251223837291624126480559828238436459394291662823697937953435242354000870465399585763363291577438118450103427842398746734357389603589454973803615837756149836911550985069340940568632539176345181549239240565845883858215060862286904207452531897606548843850133652283987732424556098304258299616216200386598609196700933821267369149484721162889609458050216529838519997358482850625759086206228347680657987881032709344974987990169841285799715741748424501876270287473905771983477322046182073215648378465838989640459295016004154535103573206180067628840090388299104545907985215524389628075263723541280650993738608651811752660848896015294128926243173803369721296594041274419186588825585922557983434824659100703367245509082270678040126612269215108435359534270022117346916755125751279410792576191200988181064540187881825406735521571431426353180801708984088521995149787582871785056948131843295113688281569728548127336996028539401234239210908432870963349790837366521603618700579049819550120924219523369320306304304350246278312107993240091491649206191768691901319214198298469957933183325279582617764258363176226766784385790812551467766022469409237056524627656008648045091004682907636034284534562331078829211523042774111547905069905838086354003891615984512282297651646005610465615425152876594657787159906457666296865354134829429149448840619057092536592439227752601703500504328978297206148751618850365577101080264698273465118328582960935436888710991339756510145691248026375983018476184125692156952531482815628012290302813348733281348847489658378251188651135446747338449212822712872499076103969994505233249704504139075174341645383742599043155230105167363634782591911877262474297699078912043060802714306335524482623289984208199234994280209256674240138992206509517170612673991473320815805080076143043375084205133324426881604679564712983030456880416103841820478583084245148794500114989387230178483567780059441967429696058007146629094708709693369494439695909002748124111095213054293356694491129238551568965513452323592450205495402005438094830350707820788358697977809440263300021231252195923078233871706729328029127298625033364139158224451318074910884816351701831191530970179859489145419719062603627071756398403523941882696610582028078633214531292763299621223891189395676417933120745973489803124921928566261526952961519237391384057409543530813083300636007768009898506299758390393883539746316279765992542732041762591490748117339763936740641743212393570492143474154741119473315230014500826831287151564513893451868842346557477849557344458660736680104032081352965303778666502649682716755844161991673510924458470596049276085930649598303386810319418858489335343508844917291197442080045651585686312354484914909652521121871623391410752892664665388158529807026487591885885883092816661455268218525185697746007931117203799809029925538084253978745308121313366827306458530331524550448655292455954121895921324756858125887566184153212639080852690064412786484043633919511904658219212095764571414145864058658770960723305956468159192426000308213859889390428793248749898618714200129067816468521807512848131801191885167648036633313273654505004717540198979981840285560607066205434518469892913797334790650007697941036095537995322365820720186662201733064231613165908277218295426907772686580959889380074125318961507891144348483279830286387495374928134156064421836035160779823233985768861644086794370277675451939270657465302385636609972498550296467471364974803216797296370609664490754620536073503762648346372265825065527187214378710083466513504504337959594409675316856900047292248547659581297684652443216261212995444810690161301430938667987581700602656772891680785022820868342182028940110114329513136917621209529397540414960004563878391613021496384558513246670431039574567123701338217538647515793233887310476225640309550577992538359784421178609345454378868520668283335126885705774744371236565085863633886928212751584359158646194439316201025315156477575342265636283623482466887274552980797727650019400865992852857327796937185420880787577952412249110468944826571251192469108048397816989145475775550505034247634600939722818862200248497990719245103174138902674111419840497711507254288283608793189173899259384687174095603842119468754384615894427098386231568129199686836181509865405235146357495377022308390483720725248829928134022645855560603734792371339211085752723585618072973707942778260529325289755501771783822413316294866167375601013632907258859762653898580020541141404701711507169607053682805378483927927655800519988947624465541659669446767277676295542608780101198748567582478377161397140854492546457877599882585511035509824812629196929686585364051296349471395131881708136140634858891858705578570141897505800308538106451768930100785404859907518553788428981792717508309317071294450171912379963820235498130825174430279206564257332951892208466435957541633348533967938070141275048470384163221767921417171429737081423519010330791086231743680979369299377202041432529167086878844130996558394583450397254192925227775281219774830714971051662401158584192898357937202369060799473692253400666347823895561480776122156552462803983859611820858608614698653963026652396615493626279364025081214515842364697644359206389220530595695681873101961984281013427853237755253587309204793755827383906345248888604957049334441663104643253024237218466813539998043027232421920552324101730140441784235264500860303469160941860206229062134576256389255550366184701239106429444141448413788622465766267498751603387327785679978541746854086687289210338450058566992190359421688807665678962968739317316497788096544811828002345968197114564401910300894367047686991092172467320017330664308407566411183475055608276421437063759497902891575053490606216590048779549032865616360366545346662721957460511216257327781279701346150684352684936986806973455098770769084996241450482292947496983138911620796584237614079857123527471444829588174332528960232163197633123028744413525816797180078336227026566076857586168448304143443447507794447168871518609131391415651428255875706987136631638152712526531612838694394387424042887460008005332672326577829030552825093651969794573174952814779477622283889187731687041447189472373152209536646739448953830681365464453982788896191702450139553863494223385167513903828702037830758799061697289351016718232949323126329514606792193721963636617939608968995252849078393698620948342931858138334204457671260500922584846375313239089051711064549501365805115490590447513791093104574922500019883673338268231216746247734200424743327302932109009335973507663676001515492899239187817018321644730221342997974180384001413534235080326554796269126581741780470928485185109336879036308810257489520135381544789747108969366612928717548633733302922970350595083994844173240205847297519334614477275058812643685775802756912066847915310112956636953181453184042333917266008031515337835199832427700621961629175625164595996683824678749158017182722156133940152247017047977510983229139959360755836287805214609270849501690343872509311681613518019897523085500171492724894999632973829781796951859723631660786120563217251785124251014121048749152325342084257595672383757471978270428223887989920803296809457974023542860120660937047007379705019090234472305962889558593182570713453793063686319588111918001445643212703680167037398460455910402930256045854850009548183577668263469697941454821699102678999918016213184450239487073458785577863961975485203417783031531039774021903378692670453222333080073745719103974850822504726395408433021082597171492686094112519694961738966882276188486817881208080287929645283970373901844411310238575840282912155789329397687852206074654856400562282592063696562945899909277965143396449534838385344901587854735269674744262352292227341418697912231628667006402490235848700425764939282458891429440332079851172771946836909390262084142549511334911090990144464395116076188587730103844657331234775325862998265877841706575914480505958298816612808180199221085761052427955444263300583618416018862658218313997076947021183254459060561893871183761369985648200308722204780595656243215297992794840756591331289191624651292537798028123246203551531703552079179589178045898058883425792981109128780575364651081506169789616398137301254928254553995741608812956831335627209998225800862924953675457706904740016270552692176082360892739943722215832739123239562336815374876015312232285022671448492470032021872606208009868548525451197620414625325234915854231908891941923590135446013485909525180643341489488055324228050597135330072198419527844167722156894327694822375137204434006040408876430899960892696770287233765214103615223270307205015109227237489417872694070320521144660074895576767427561768602080620644301715604217344761274751254479577899395538151175082304916977212476016975445373812372615713633482867532146308825265509405564638155578900777728134975373671116474571070115542880446881411294683188329857645025319734727641130746910012263733836330002771659924394192109144615574499973653781228887411874538825175594515227207737594076755186653804787787218417431041123718890495664376524991657002197570302408816347197746651662353055863039923892242672550804276843898237588949424217095004226096339644532656917133817926794770970776411015308893201618191124324822591569065583263379285205577059528607908154869911084679808878249964034352195114632503029778471885513450315800778442319136085192682634134421883711910965774847496186992477976719349155344190621979640054001924548196296886704073766050540461725815186597796019567822572906094738451974717136393497504352903267970956074729561705954859827862713775711463723177988816745441658206074180561716874220429119464949706846879055113228022248618103339472614184624870771299170061996096976242807571735583900708310217113397650547677325561461380504127478380393970184484198596579038492909956442479043782445230858964843979679741968157509085675427683387104418274876759835760907575638543728202424019943433309161505593054493408734300565468478048795587373019362657101269243076293857843899764535179743209160430897761566636509026190928681033259766517683067662473927547786439660149060882250438499350210677464475057814426874593410467738954160245312735459317017675803260592811098796929146025231666224119626834651512206936068367260019200784631076518367539581355888877777678615170627845635779246242634767651058100433015367328702491945320906574053047806691034323237035999012293546441857785801232604838829708768621705561477326627117442292273926969737398193318034168908649880622792795502790720235986483131078197064204926815820059175312469361720254944180302844176956136840137253319887702960677128119148177235789695028662952170144700150093386863858792110331333459570189668415725342316164018489627161905501081053392419477263567147106813272132670704112708519526551905744137709697210068928156122221830423316071201130380261380560056836564942498636793093202531573644449846058757503349794196310649855461537636211511010346528787936020077165528789695433289997575765259871429329174659241909672424085675959850931678469111554840825079012384753268554372187967612845347964982574006523978816817806876519682588049188818414254339932983427046626930456938656416907417809519335033261482510098810302040805762537170733020369119610466621506062193778357071262259248326332205061157632658421197156947373069314106559566902504096456307399922965710902614935084879915818999822161019547578093236035439228934283693625116295078467805649883064072980855306797269631067547180220881692655285490294571438892022454551441763278217123359016071576287996395809623602129489106836883214420284837961081754650659056411769757825391696753415833833078203356603487122386929493562006810494918937943829787501348918360362422899752866803245181964987034965987109049288121410334662253603958158067304602901077177417285042124572129402030033319401891723568291839447024775279733409512558692269296704434025035043326394048924445754896757713936142511596636518873983297625653083225970626381295427075270860242517183469091553604998228422292846997342164562353396519976662686676326165954224643851600141530694354831949803214745591629062981756430235810417074972983815286748233093415576179540933015365081365557171091763420946489846835717351744706660285757853063162282036940309566219239531347299404849500177395811484458846925314453400052669252322847656135274232537168224256381710952679951547478726207381118501312151145315804861950405371766263751181259209429712753943413102081125676983830797793997818988471443807079301055867134121665149733046478947924481187339498914216793408675672398777472966106317834651461754286267780073635169200404981893966974472641736819196561572683765533896132349727676642992005910229312704867918821813406243181712323934365602320652575983370421813940209537391747254011899842709721056822123490421887455668206119398817440243936623882019013265458547832496322124640339756591600037844684754154057058779157602052927894864453718004309247771484442510124553065232249095919409986270816049553540457453638704004065006884999366259346997355967673421401368129523055719059272059933126059118641279039525495123219325253427384984624156668846618297465560506516099797475357191660938308528455445352719018820064206848222945214780146899034863545159819805499433706225351013670186605785098908638020221536510837070258841431113608874885484574500376654792330307029545979089511624879107610631522353099730795151730974814087244422728848383625991426326119183543843738889915718464856320197857792488739920305736803456767189443342597767458584657996974585477760901872039533624413638273149933008042726695462745302554726520521298340568448245525710599425400173298289975168532741030918992130955859431152836674548300702187129403991173345701350217465637137919186220903261455554890643893029825852781914727013142007127020160715037240044045826779246548444047316656440198939232048347116419424720603440367011812391922192963017621331824808934027358685771737317851351728815859575705977204166218616026018038189815880101394556605265842548567672715546486568713974666732638741235597168871982585089740408583100801110583946428785385417178647094835463823387272977473588799500115321090952451137192785324870120286544508612655320387203158212857634585952517449117977079527842121895549672578089927529693681733646566011997795310420298845125337296329820091109913349873040994608753728254055807324794849752382337464537768556637648846196908493736247418111216797300434239853747821560108761043437628919710579735547921938352516084462765498940829804748635909926026728803560591456053368426742860159592408555893829333703323411229160453527450210960157332634523142800953733502411176800705698795930029473969232258302421121493429218330169451506519858292767873215502749337625279140788467418772405851483858702590884558060299722797545902385051862933555866217074789541135392940960272907131556978583761442772453535817653121504386727543612767019555322887906883480363944127727786917588984206296083940756455175767342193134549360997199433087994397533591389724770505420210298791819381415836887596192539220762815723628908954134062125408055266824908890291242109604007216907075211623344029034609338789200693258236346734491722786194481162321502148005693540132474625658306610718904189623240619433829594802361387177247563894558601470810920013129728602720291519029825420511572518539617127092858071822038098522019742004343596974844048928291447186004055828659724001965780859764561779195557235323648813025623702471566347834584490897368445146113637019975222259705234175209726947105731990108883193183488046302034149191373450969184955381157696220308069866019129785386607361759266825466642146752925343308858370705406122283644781294740211785675494077745890189761161861270495220917267320559016804252075926373196554078661752740819920412162568416934217990813455662572745587780126019586310585706019607187651643123920970048852382262988538371803188180924787444809325540109260061436007233736993524937451251106009563947590255510939670855828446469414743450642312658780178735044356231524582860556439044323481219077701199125480344520438845553350633651808683287534933884508559723864628730169691661981531746420197896343150750525793705448901373568938759337309658276644621660863004950862498362138745961852942755757352397977389694953762190914677936384700612253722391120117232959752642833504240518021590422342845603031339045412809718355801771861493570154922158322807154518521211867227081839164782222295069307835722050599588936969670273007215187633704629196055880088100075816500803252712526464140937732169582196299316103829943194053547976842323079364012198289656955318424454814293684039418026831510870985009065350510890071363315359759669780406586043759794906269823876634178809795474364853928521192886744743721392817388652603210890475151438022855507553085930620498769023285734353267336595273722090560056588204801164245162822208096376564188233273664314565376722427012003975523757563962379911667131591071858475029469427483458675618957170397796558940282151622903164927379054686922798103982080451283308891276028588106035794722080172433840571508867161548566793093522130046092145550103044829116227724050206869925970275897282356236517870960793136087331396909469393345903209392949966474095078167621121615416899664861013310430410818484216133395260494404145837040526375736003682547171496342680036265871040223643729503698103868140768124129166038754616122005200360943481650828953641492995682807431957702448905329377602386086016577023215730074911398217350179355855296528799310832930423047802144573037175353382516408684439327266758035775083591109692996808549542189378568858714013502127682531676670237375472803408034014993801633446911355063607362085562903955045436620998276422894796294764531241239352547062829107789764319020106613469472999368021673173873727936485458337074851374756021360383402228977589006573807701126499667046863502200933291893722419752341028904114878748799679444575055687369803700784486111657654512499265671879827800728939047242421067815177077209649974082872702307711724554609905734626179892524867851208692020105876476835962205057142682885135202096359877327758994847431038704093620130198909370430480545661098787708808297443648062889278085709531671374464871559198606097045224556161120077877844030855873561847962033320781583121779046976707750353093602425534843336395411701835732222483071750622388687265845230686316115647531620701650373485240927766830129524249107253785258082488869497015242493100868126292935478082420653470576346616987743387435108484419665834958292722153431616999918350247562604141134371271326106792131935678010808048164559438139002996429685082129187320952199947261689092343726734731173149837516405937715015011151636333887230066978360725227301380518185276236895325153252013774266825516772975183998816379825083712902594947241965450767405775751057815152284934183682113420183193605501274633190146225547586879351034960808278670109705100482317658362425103430372373916860591628023352342401498316264157753311667730935023319074403080776320006136223985034573935377512124392222926099807962970712567969564070505339805150748260217446460480227616430477217987573641726205993182493306080081132440007763775110731500072254335307931721407181432567862217884448706887785275024999465417801971639206617372947201076783132379835043891212015109758060065886965455080053570516077475337608590081201568036875143197016593680257309514802500347408921819688230420758433163605377169581487749817166331642336452020893783651242834333929692060274434888469109264053064087290758710720630730381905124993370565194865480974736336963458918410091502957746840068530564849674707958420421604776632846243418561857118300777245136217868891453662939140270110581910783864116953692107110034799765445011739322643450590022908751501126467114848648189271303851904077086583523555113033338271216162530819840393065650114861606037672481230046634117766792994421943969670076570657875780597666669861141471600266349501615057112582497458551269749833695666985238397546777615510157912406097523192396908134514462841061903385863271479055467526413869188120274543132875583931187011501687723911320804276125346828137054766039508678017969947221581195067515030696077522960952798312749425561485154009806474954294454400121635619599350519662778421842486757046044051783357650044234122209356542844266499553819835725109789305334684521290321798159007402498297671483445428029476013278655506616709932948603454925905741298876714387611765396180251543275303218599370337674970377726259447424230012121664705695668531686171941197385075591411938754987337823372490665962025953966584739785139829367819235168396734111395745712403284835446052589935558557340942509949516131882216842245464197306746299806310960098158740653385304392605372202537080972287224472929678755282640003341286357043707377727937165090134307838703120592124085301076616826564730020164046742794387181012321355299547687786048798298521805622114848654977065825794844892216774802026139092117466084706256708173107174500749859433119015608101986563299295366330070803803912590644090924664882534328841615975549301142116520015358942786374607161728586257628082401275782668286355196129228368156966738095726698411247194368151848323979467895978231544152252320456331886453095542954026128753741640888603823355168816467468463859267759766910262246975856170077037260881085721920153899875187777279414348491707590193996118143069823274432955550416316392252912128038443368880187110574779427664495759023889469392060832488410589899789701820879401903888339755589343903116560279662543519774163221949753709922542933214384002996324489508459010550597975469479236796858188338961762184971457490147832652853710164485800210322512738027611876780559007522602282188416211269386514834378520819483142814681817687913983892883545257890208003013073484400444372308124076173820040154865590336920205574808029750512319663223462083894299837250786494521992031903880360658470171905103760527200534016059917651395250802430320619400566653065626546635530631772329448606145976695401348302476546424904901849444481476341776677061763212900061797230655817759353342265873626608792364881160875705217727141431318579983861518776403612880800546563953675890974761653550946919508561815615287471136482530264414457027482810175850082875287328226859908635956451535327938413362935003338394297700092670347328241373642623749166983584371157479178928386312310462861252918048988569495152407151684717766180005839055567489023456338095819855402898765674454712028211160998551440018588156758056544253399936281862321194724371306575137768974348113093765270916245264891947671619193606749182317965034720909129040754645039217361580794147880428605434905364803217106732544993868525271218757798105058397901343256235927234431999279673055698575406227529062729571396306490703327701684309931121308218458005653719991188897592503494261403535028469826094828950152517338084517093968219764413547748993603575964640627642285239744586087192424222693505741758685093753411665751274425616182100087003168141017475382254002150256240053011589309625181958126449305660307840609914739809423880421659967652376523811179622308904264543620391389154798848688309254446422252551730517931633663235353193146779922590240817821500359990543358528806142328027522823170997576365901392224746444320337813786075077456472548057820866900730603285184028963718115578426385062122259048852517182808393135951405381777330645345155604026958915020030029430207451170443401004785603905287469099836894197827712607699573640318104998901796948076089818771822188240997204012826646349912361141115776692530823457263235298386383349696522830350145247057389721449201419534354106845789672614791176341489864082170129754542340910635668130225941817711196337953538443807491706055850596332921451852994795051752063904000200434958972541157520512658901090342843350786483007740462373317125533630095958435520365767854760262402801954924525392411518225534535446389532014650543169942015074810213964510437605530120468464336532128248037681870068348148291976008206313448376876162084607915599122328436785577668871929032901255429294382660670830624950083490417263518779037441123193804025165065309704243376043965443815328371716541268320236317691350295840150307104617522806280533451944400665285143769897100199950440500073364433795823671147685506428465775067318190132444414394316053389762435077851525894316463120623751475439969214198762774066058289563494473957201185909675179709692001097471101589082700603831003478554265347484210963131205961407620426350551546423791448790597242448710959252653114735128879498495793792355231960036697360305382015066314739326017886592713748151611621504183740663580771376847009233977602336637940071728534631561123845117828174156510464065082411589186222504257486199490251260294222145168226433234206325967062339535968839984635196491933867065085819825041104807639719505940550457478899835894099660335398646807699471957473249333377712176071169938580228310891552148136295164703852339737657674020123098874836172363549362013664309759447232215911704305098767376462686894745365699670034661505176822881844029308205523526446045111487684541134294267619554774838010591740937737415110053300199169062206482730439459349330824615733378484153015051907278685914828739865448530529479665341441424713164679302554391116820849739507975944263159355038581063068215114037041704116752480523466591244166317861907140234812636889327322790432930904241436335789385491275125093822925459503918715394839902362781278537818121063250456086907350825672626061276173551779673698814846325765477266817305596450123094442275818539806560847506833537584165904970878348914421858569789576763401233577757521803506629727495550309023574400991334542373504265933109512287979671200962815109218323901910702978212238906690069884620004126438939638808478308925644345641638347930736499269664477906350889107010393331613416749693520815068872345589882989875465357267022819682547352748483278321915794953473110381687845005755155220557109426359023269699141000608214146591492238808688977605497032658478949226327886856137026483610390966566997402778691218912375669327394734781394145131497428556793051555936940059675564443596140196453425547170031873607300078627544190635839093337202146172919573698385104681521977923608510400949814545977560107775319473118134861438056348322143254365938290044738507528455901843321919682057047396321027658306784438003535758850752029275105933023903336910739965294372591811792166353801166804858755543673472433529255206341582758688058534113408294506260252988549314026626783026998440091724348024116574406666230363174960493477530477821307599243196964263402400982734991525061444223286337625017911239705155430686690272304072356171137894567812628192813329907075788226518576981724985432567708437390199148466008388047255206175599681447301816259899239232809862398196164909286790400656405082409157969903358333487104121137809502753282325826671880124167825490095179364653038213858570797276925557072731044732270120937765710206715942442662798550927691136222636083175761799089899111826443407474873817414580833495451816093064773021806684583181218929102768677230317559333373842156673905566351344914555889409034414724518997975380646270360892382713213090372027546977199596855558578335064168441878500861958584722218988373090760765184560389085320374446938408768903454471521584106737529829462301889436405853361083033400927126108283993270735483931322306724696565054295755680371372893385605898929273054304636470265907480327703425224087167890596419850229680681420044619402127524081058975819734270003111966681296919885400009807175091263562437375504019582035852697062298205623771801878626786369859470552913470046027224390633745796920147713313551751874449478673530274877290352729361618454602195979648864667091046489765001079561826169807739832850715883118546440844662329718980985252371911474236490607212275111415408592705097951442134005829198669234859765825539400194190401469572608918653799045608725242503062520717267411170713435110961839506887205820862080731755066862972812384204509577912108149539748185640984907763136596689243071922053760367851573230777155205785964066436076609714767634243991107411031561349665074286422412708942252474853947466092473547244981293331434887347454751059310108884775797045389507853217326458912986339814580156872160684122379540261849490716427845764115500289863634151473726474709560868256142319175381154582243588852134760930810092641883843644768965514967560752806612137343549180791557101993051965886409561744843140548208669381894724805627707380576338451350011385559444565631922193277961805736614458537000900822141582722661638918979804587645712252905767152586559535912168891122270185005549028572160891777224218325150279113580129626428065074973349095736579430063212412982055083223082481158784710214239247303957704050540588345004214973102081114209821117492619207406603728974828527253648486498218963233441951935532984032884312560023937830551495998843221176513751093223869920999710750030829843681434020368374547389481931549203980385699520668836717411623301695363399608142994866541225985971291438666993930611598727139026563921869277360861009730748258374301780987999333656396514702344793818531834625737170149571439684441132759676909360489780884915983379516557444156815308200203805456469548801001126394307931163889408228546085204507441194893448577911521313652090170436238436572942501611668269090234785664043273830259415138854248190127723219304326795654130106095995969701578060321818879330988995408902532079725581507581837636350440395873082617448523529773882222866459997727623457909906489210562700205586016738439270171532703609578753509147987716375560036940221111927315249811311560454977799092589476052885104952079084304716510630953174278300832606578410881034018793817834140266203190450177301572111023405137926106496283886193260538128404109598459046644151094889397419612025090097542717424893965676432647665855104441075320997538317021457404473955899884388429172418362685697855300810043540581040863757581723051074542393862481729315822651680820205025067736785022669590597890622913492464088499118964129462808237787129772071549822969402823223406091508160323194190689431204785540412187749294694467428806297148289133005122737103817847914778213121900273182639219088392669406763251748442817203074160396214942529421078756021270107868228215274813866402138102544413720999592880592073241076929970707362259331729081208519754752348982917620000664263856799566854425460924977806482885687244675154543986679818433725084997151232126752268428855889026011125915819486174423795389598361693139208761979860707450823064202456313381976559716102218114985803068386275219520333450108152570016620782181368026071936211236586578915524751768471098501495014801956750883607684888038406862845431237621104174280344503641390382982787654984924311439768261437140325655958510310015054015265403725202219478112507711291452156991179565619975364625297674794905926137945633027013925116801783813386813277380066536106826650690725814845739668200150841410212527369415664619397223171570894479839598151787245399348098888706083247074631530385022590656679884731544459135080153407450945721766249871230012563227730885204235077103219146973029687801410106203358115066963759437371815733177108838826150312530691498012268225123016420025605871574827538369729241125255099681631878346496069712185502430945209795861526684088958211672691840436772702242555609415170765530732252942149497430314591882279072731577646172360262925371482476595574406327580479753654517517658481601971237958981903729252322320343427982462283606176883787155426386306890530836967139616348038859888896381425467622364175692379921529159430685245055483695573672709737069796295709150346923220499640419855219945532283517680873715377964361663083058312769255074132376066585992950524239616686181287788327435814527554084989280747486189553248062505554742615841542479133133684848712231445222357620315944508768088117426618521019268663652811824536400284844580825229829676643916987872901091732627247681497879545691928125297072367005614792730335111616793915405379510560495073819501661252962316166732098116475517014005974231276147496804681874688614505463772368330647995111938715777636322570956975400579161990522139443270226902534846837587858752326033340576959027263622074507585085045632961786390270061012134158374189472672788574342380376383811333397352768459489308680972883374101587638115240916169272933309053437894574813118585917591136181468208569117304037362269614812451846838849178419330430775450555458500391565892467040975984458112178249727678011783417201222277608065707588236472751807658305279531016637706181553449415509138832957654725025626041227406666169616096890354890782255340245528845659886196027465284764629068924481309283838878402306148275882950631661215250225671386470609689733466438565875526765161526972405834718172487121134549927516313711537165659753278516904539809685517318797534767807320220765173851222505190140274216238147699858039667988722938313157709491949036916856153853129052548156903590452090831927535984791473662711634318314753846306650899759700952253720550575788549052840214037793186194888034053103126130166716324584881765356335064633034316658555072066547550707868049857375156559147876986399430367464689741424087534516479769340871877428086274336615141255772365884803754479703423086203913041956368470708680415371697903057040994688207917450310182001162455770024884539540793992128535060597356474393905920888164442721734644843376763970319196291313289430737452557103476732645503579356925871068349951193613223312889213319507133880911107805627851931189015483844283214503808898491196132507581142828743434571346309166545483431248874879122695731073619692765114213495416016604152468726110465440955611258850272819016273628871092280907963503693824915013251149200934924988222921513819639921762658972422618618825236334186527778365858134706270363632656721952816124755370600174329914150895069669127481131199575668084892774500035198816567704149742594020411283786853596149977109986932897169631837194417370554356145681005829428946484836750514874707311419426430229763312991186529905822843770561735124437576659034027522696102062194909650151168791322225109839651293742761453875442051552530895623688585922582750594560732796041444235989436231019111086512081445998845551206881436655386981401804071697803516085061185417889163348879150036193351691728660277154661665479733103721262601419072032806077830695025155310970486649364778776988510895083291471766293808745009265505150261467257678965834389502632555613481533607765066577569098211878290427917348841208014120133807008942959226118700323303035976018686305223061952263797359410173343151366788802749469050439481095802733279321161538231452165590195996773872784460851530861850878420864434948600867453032252865895324964334436870460648915640557846988733848322373407311556237857213675139288973613512318400678310904037013787197933125177923461108375046443885892913301165174058207914153581810798166478116260411653817764899373550279793987953792776304540914089718760445323824213761856531480135468544658336119789434043621793632401240801529885118081768439719004497387495908351873100236077827830894804962564334167842165778963855276318698061763231083239782827749483901726968024759483952015252910350687994818154140199505046267498366186105924742014954754499842435732817834691261369116695003839988959641261903119632873888792393285088005638163755035973433853724272908684529575480704967781178023104493925642812888261425369056533050362033486294544436667872837432552992368639609408001979807812187334616823169279178777469383117132444266583919026749558799971166661508183328967556504889292728185929399543058733390018886219909657961818487995913006496588689103396769296554974529729287385715523106586852167894369611412979297450408880119172548171247771021278117934924283061906414622149497421824311710345516850164139301298453415031649508105805039219441789477257156981737348688493520253937209074780656634055063657069439888054590703772118987663087014915061109246240174267197126292258023310056498278376424225988238931385791383214503175383516135019195413840941346628671653158089097072168000441053086326121303812114443865036887497561156116108592490197193679769540970044319772561499806991020867207074442879186950822867504579695632902161738773150824124811165389640097516447955639255575899920779972487334800864791202218837220929072624817225224998936498510404003298791555178628069172125769501791951558820497762451579949944643720728002555048595133646196015134757130407215223122268591235042678982221429412789835617097631311254745065856563167050567181319488844893112430437326012373598599868455320812291128252780189027784569853428183493997919232655250184198022208316288737362826455107282318215619352824742140173383964786611400970974820898561066806275498367683701721879524580379799745444034158125971272684258986122107823825467741848713394958237280696432608701471280301500223354120589333416448503240407550827090926160510325412488861403916036637774411218251371395583305227145596517322171302866460631668328600546200020278890717323585791447459591642608166633530831435572975768652246130250161197717207818098358556363412941900659666531511607207725057227204121373762977312696897466725794051276389829040868422500416932228062316283056164589874042752869047784886657716578525487889617621638710808099119770777279045264880338042882092797949981238688650916421637477416390586486275018751228226384044884630737342726900097876728839447930438779732080147580843858739439071437423879319117467103572649322177176987597742348034983163991908245255752488895048398894686436637683347405347939367470088544128609038741589703048057694184463956539004231389257017127795156234110789072793815527531722651224998330239353346002754406118664773752166179978115150589613993365631055424892889361499547869557825365249607712965166030910059852442185114804072214448673935623695996883981526326518300168012792583437897673123307616075400660961035007319024798909158041445418291236801668573615109685465738668382378251267575224730924652055363056872591475884136148666016649731358461922605668279726388280653564671769491083765005757794780653664970909879889615516368158621002686211593140978781043719085239506086829518022299546495171737650000823585839224290387386106697778938034597580893031807730952117391629145507623544262316077918125666027847499951408956456287630831512995496028810932024858280317355566203592569527428436391494928571931718350087532689951440176283731161641126625921777111942708623038980366160525961308824609965610245211043890479102267388127112457861215294271219645344039824388608123969003912329415954565515173468447945537598429692757010543627392347203918779948572722594833908636756066302266446672752355486100746419795523889050969698504172506801773885438485966799284951239473312462913323530163614824863501582282670928474973166461450009354067066121666793820985871298795337995816637917098354930943806254836246390859801226856422850624510187290538550073697108642794941950561662123106623898153607438059109738483596347698837663496878017061896459887759326388720610061631498629910161053250835924428432024666718088620597625959153185498349698766153805432035711645757263840485729395974147599599670608010023816079452283851702375145007828813713624201323355509032433691797906316460328114488105965841079523460711141551218819186354531640171356886194884530647706466909157383728095856973172117718281004864264430986245123067586563497941861312902810095147108334375631181538872861671041219496174641483729371494153090942902093096186700492245074071735389476487000798361901798591824060639075135678067974578995686306058588745325117521365342283361920446618027048657126633946252896405859193787817647331069588566800603584036546578902018957623903942516870643314027057788894687030173799637124138549004723384525691674735871994775244655443386719826969110768520424788856720266501855605660087034611039865703027629031674175145872111307189578340641163060118310974181001409706485218905520628521083397554671008864310078560954820365621476868395974066548968612831120699417593038115507905947921211267128301632600170268134487216539906254115567624645540396563144874594544450054655865075738475077821985153891762953831404611327168791914449391618850047009260652598115846454486265096939137089376370666779035507583640579593392786492059435299311639920924119565786500983714271114848176916299446796960267602996493870355970266380731370883224288159424762320888532996580202264805699632320778690313027586965693056173858214642927676944239234174959087955467573939584237171387779382145789361222636508357563407412340839658439018612327758068733454942165556409173298314909681130589548364963661229423667946740416278214650865013123077934331491982526660700571565001163781711140886058083139838805700280707240506445343099531963457904919087284381654452963897177555373086991058963460922062475877305934872449463857952726626466045160832801818585259114934938295888897199038166917339618555925150492883180937754831702500787258269400969727447890818357645598435042432366785652245503494936617357850862278526291201455812296990185350267919081323549544497302745150906660406390417432122994715107877924128443512751457413110112368979374316485389776796927447527667848315467111118978817074956885108131788197025611131282255258878603441212480213588987095732176134504821233093347711607538218729570534183385207055337351821354981432116801160770503094270404758791605607543393206040157108774762322056516394541997157197366685139668676922084900366398934036987542569685395483139390827020154818574107950850623041364559266378997654648874217144741554306382053456225762753554281171104206961593405038283271214037838020031742044095882032701746962793328539141890101467056095116907394194920799557451550295074790826843948682563994014501810224896184229650059908564321544521306048620727835179054760431857905148790339818963028676175212702042085481477939079510350728216300029459163773558033792999595572026017536617279169253504911975828951528676881046538423015316715500581906665337015313481969140441793705295607236185665465174551019269661909407733596804372398268557807678129183830752697325694027074811289666916192321039600983641809149029654059264118729336688053202059325248709865011845850047000579390317491202651440177311770736473455985863444517462490302793253013517987362302554111190930067730325353310686242846696560115226322564788523302990417275837205073578255975862355904395049464820413396568041992293952997553487379492326364322098799751615368182338476010826839498522508856608643543505608110322014822505072886979381483495452121351595292544638924118399552927262854682365919914202281090030998741060649579769205110234464735891069514116425084677760963856244091868109971846502295743570266998711968631717191255313736161919704117506925512408416305843350338403198537583997938247449897978228595263736911923914554063598922770752762297064335414425253505579219013215798729860082221823894031705579469117748398597698743046881153062525545220287001300539217153355086858708577214442956256097826941768720262763530626504922534460282931586162744537738296866697757657007443171275813891442938586212911273056726041102982707415121133259550927577666709191680001841742361662214744427707315296842648541472408539639811156954772905314178067780931969547168201256168265219851587981577062561627231162763031124255456102977578276402643514089579122463596057076036370101468745368321689870404170167767044811574908912922899293476909517802823535661562043208506555265430840331536267995701186921969426665521632459068105283465467561118292632154398492743808765284423906530608780856304794603141044730117928499256556320698649053311457961606301277466219492689043923235002618452739546066384095120662367989852670743096236268154548317014313979718103693888545968158321569581578966688827521587751164684285106058565647702896496515104083625833314209858872806327708899966175243582475935360944347851169420013152281288393626682636467199243853838896435054493720680347862932020598065008575813768725646072199657940459264293106871914602562450542487688068931191913185699676870854071930127219612465627170580373887253239859647800221720114133090126318885588350849735655351084996097915660611154283766858053276083632668581518985468348636244249300291297416390702108827567458619733638351653886360334696114865282398642617394942568645669375747288467342281728194098690413990157998978508835091435451935108033411395108280043602209675906975229963498562709871557060562596533760701170472548889163319345497889776574072431535321201156757830823276860125076786740380888854700579605515662280830816312909964978911423689321963286641754327536378566009228642505443133124987546967748466682862457273650031510662046039241400350427886440044083645424097409273155161024146657316223441704925565538488829794302072453934085761741316508952742660925339716464510274556082179365555794765929013410803497066431358215772524331233394495238031693921866999213044630333438756978076698184800127841880615258954346487619766006688718935208476945788845881568679741914444980423413276344875855092764374778980758167540420833303421460182039317288735552447964970576920793327058793803618175999243958369477001568008694245704844632061664250559569995875913998852554833029555071857264921465530468759497942156286980994678502773365267849533028967041107952086511953750863279497791664696412858451971483912200806177612804444606887203681377337905525387797154433238285771522042303689661691382622716157342257103414512876091978999039937669599416082924748658698951715094490635676716696686341213997021555867770611283202210753373433366170725871133623147242423072136562124437428957312415358703350894151863130219945012466815063710994131991812590497186361452682443574180740307645141225067533059153736004066751269525708788872470875621933470244606344100492018987579811025866271490799832796938630510142860882762755165636526186567581129290155284279995134664211138602264776916123968937120200601259111217541210647074834202228394164010411002233924704149930028983311627246668511844019961147802768941765295074518900652332354208436656494364715111423175251179144492374844617613853012337400074852570500795058264884407235988553063696666539854258808072412663228491343975251168785418245608838685412383265692046848401896249201529257878107489019813941114107944247183403979946428272843611231599879077260075648173381831376903486830323029541485682458217648663949923185794233229630562288506191705682588117416404820002906461658834958617823868048340576808350784401578853902776202353147501656656923956087475451120199933269843553903053844996419978381315370797913292529859411687494451386835729468728632490801978872023108418454264970731191020501753825249461706025942897061476860520166101899508531610706367254902303238910748777885081595148831948683591152882781450525632236982079780400885606371927932197515360880766332824853048403652018862924595257486914213290017319648487634043733371353996352101428023065097905694126770448563815812973896163598967964181947880781548329958039247456827265028589022259288567688673238350317452829138952954556457576387071827969770135879640126262224571865196466274377498551179440362459126204814925705759551429965530850265712136641299262849530839477912438775326890405553414636726820194660469259781842748193149392996369349049912920154609274332318891991715386454571551782668332858169996309210130451844038144817578090561200969534518635703661857717092709250402521921726778826485540091217282858007369393590328959119653604592371651924774940294960125635372561902720354495876441068973367012163956697153989211410662803098131601770662132731821281705945648782560675788801709684643542339925040169198571309953968911988316048764468985123141823298706201713548180224371866384568099873797435372071406632266073006664607926571143946484544486705347144032436226981773285193122788213116699381617140959575228522566649496617982198180617839096939352465580464418349891163771165250846562052620376499459835859633107093120512163741188179170882836763867928244357970554620504032274114797977416672029931511924997649012754990665030229126814188633253118903443366201252407207826179778765090772277095153822458937343280190304549492103136078600727353949172672209487388580711459590643716425631652167227599931982578760403133135674799510917852229962662107646735023260335410702158938050866261414259910667546825471578535570207666417047353126015048867006789053761808270513601448904680126234415674199471649496643838756360732023794785187511373934201965702660737732600965065805320383437946416568088999203804031115189301685729880828779591711811655048993398671559527899001609824374993101878793863545021156632815063628682374099783062987557499784302509875303115939665836847127123897135191948644033925241745916968781976945045209812997620339167997127342348840690702373590102686352081445007206343955068744250149205271548329209133101668666496422857221493446899725404062578310123391645675056838837087358547002324205926541980498485130049392410685427826234179853336355853084459719863180251955306721209575916919147454696644397113987146800324390193841560676778814754353866950717833415587747655861718153716767945876549258569722453075884165197255161229015451890623046937805044931966077065464770827506863922529067402247450933816064026670091436523841141468664683222664797303712911280232311772440988875668170850838241112062961527745521440506257624670414870348806223607485681110965884298004967068587395779762342953702600355766844996850205717563758854313384389084322268462816110850491174588888332176993508769327001314683920849313914418551605370833337152809135818271788730335257506416769071203207073686175450423195259976686680740212631578913166980829984445033022564891482256544761791540493367135295255937320037359197441138746165244823599601145405337796533466580202795362044463129896471107756204634479220830718148865985483654169176419096073683703938133351845742327270279486117477618390405213480821341639245170942874885301236091865503089378479528051892229316162187919614582836463840970683347832250020807475781199788116372961325571983572017799094983244365530928895170572263363624052898479983865765988150482433520532472538803904602313609210660646456749109671629315102068423575826122656769959224607682439122706929944191099193150677388698640449444343287668928077842619237763949116636756749168273016031372578188439913079667038592063521404571652636295435932332996514213335570822007356281016869804543202111610813282684445750763361171090641661202007923672723580005659514836508218762191777308136364996633907451986831239870624235285508782676804427367763966315961469712747356003441744193222923022064561892723539879963908647054809193968096584610277109219114453081541790138310859555124523662163451874710969777639325739533291927433880061890917692487064157242629664874799259939391712392235589359634041654803455859426383804639018490220790462265685083842642852903698466669717565565004173989034377283341030676294723094623082286459315284803911607376438051886255757321743875286949381529478648568507376736113301293399952848974169459659514833642610771745788445675080631344492828855383352398035905400055963226857035371281719017089119156075850403156410165990114647833332937011764531618436630413561867342433034006618663649197435128795584500785902495126742830601069515957426219999542692686471819991766356044437326770657138513563611029817354070341781609488553138735960912750904506697967077464482050683512372167789590534598455227212999390503432040721702624039989085838049853977237746697942081150248515397814915376815825668716293437695581441294763812632724661459477467127112288363107048668589732119437428245227158664225442134318001789195189439064715024467290713643950478888272567832515192634072786476595075283163684006738736167911530129912059323337840967437209223864210173813781717027906804921630987984957133014726254535962651915457232744066143274010508074630966205082381793284832660193025979571619799589254323092647107093954600264008094205855091183557400205112147572112903660911105599278428508361838540284237701576990721631183801688679867331369021157783684607287658482375659824360022760458615520292931052260486356834641126871566021571074350117481385320893780741755648924449789235009500135090194528338237026543150279548157365006569322503635327522852613164622091700767210026477564311133578711821736695782344421259304861015144406203323727671624744259384088694984822889882920003555514667045748612851949505688872928641225833732395600817978208527502924490876431203774391471565689343404568459712112089778461867709817765161340985575520991531270175944106239803394720184177695027941723671367932319599619179272490103253776687082545275352863245130793491109546792502296454126513827547804587123323826461049894940672460054392412634700665921083307754652511465258457589357692223216252326401815398959248832768553183136424980458104453831973163612942089454158581533719540608618522513887932045899987960160231989961216815276947383508635247620428687462472678752318608931497833406265842693263356041818860147927426838684480553100278966248510014986776002732403367101145572689366426139295224002080514037692304822425728208348113004867798830009199768169940775580593902679593894048813933114436786030724823284416669047809994978735445945554707340676833716260854602443554673357947664409876930645880434633429519059447282612325411117942129151743722789279936991432605822339235402122072991484076999755176256780908082568851511407428312587603461158104439735882056675673500872297619238698541790652376695202584587821377467373658641244479329835318399207660402645862393818451083146048775769817235250317164320496772099908670336687267697995296279836830790148958228691848313917228978066705712975782033972130589514318715305194107491680612225654819354955246664724584403401542017270024982707813650626322138315399235315821251529112246049506988527833590888414203643480098766764192855378643053984899552396147450133239707054980441464407835934708143646169932392636602146576050298209414238922022596232564091326564561346171758163050373367767002452023876777844270753727212761724540673340207930637202423843192517657987334943075002844626806228071945713366265644789601900148741085627027556281475230728325746947826164489467629775186835363951805563450857733732588048196256993736904193128203328178432287064639121896831124590804408683012487199969136108525220084442719637364183192787421562988676353317467423484245182297465022266502559209479837838502411752068320027480300665322186539490662307396329958888923481412399023708051025369643440219701193088140175653476649733289406887072155031836194984131769901811851645538903565802101765152778421843896507359870858597622600807121729013389602373918704655991774383975626384441229467068934702798002554757599130480226412918576362564074894557467666360741616345208301678064010212747784609880792887994281464692279469721854627840125931549110613763098336752407292732708700321746955600049801974133646538574612032809436045035967022005791873228314613832241169487612231835970258247703702458520265857477324302625108428098415194691061869514719820575013657647057834217628742330786645966331181753195784896972824467675811440740938562812560737766699806345009281596355441600697115392413052872544631792853603935493302040105903538463197519137378759614416628326873723296645506233400866497156194971264927587835569927869420494086341056396739164628787931939104808803725753547620651872395534608040153025341696098946317619162296093405010697620054030940314247028519880345068456144935247247553550708855169786437081028374117252305151583565818796768987483878589961276800995310240417406409674305409515371875481964482934038011664449336051234203725615881367303230636218927250631759300563967854964849229337033493634048016735775157305209011591906069504424339909248066746337273729439599190368594746739471563228264597185529543902412179632866449107593478966107424201956864572597427420025238262413305552831310768163303186879315377378081388897824882945839359204028453913171474196573948378959798981375256726893631608829865154356187402714920471393746333446653263458900010474542173633758564294913593405850591858543976319889525791957935849302604524216517537244415027237128400352215952523849803574123885784370519210924991731130488782041907547194003336008345731040834072365900833880918967159460128956764787166941092363319598746793561199795691176673188489468173137742423168180457613348423855458352377000544096854335760573521758370483522626702628505992921577251266676320951575712920039110545748466363022579944967914217763530524412939777608978814316249740121737784817747633532987711036479950248992324805254535419700372757018192860134271685441164928862802047387208384084104630925245419157688295336765295031122395360821237188345150847491581209881470046579811676455814494261039440318192461744362802112182058289130107641559100848264799568994183946494180997293290118127645669184617270135951122747180959141918663314577573241529658359506051006135036387527132768577720167474457602728271051744838396501677616992528821937901094717149673244775265199490793835855640334191995976661874869920263309763634286279111794344622287141955789047943421013519064360801883183194022817470854680406019275642698072581907873640550448843389984161920330655918511028093211824194014259399215001661064206532731080387231731010100366102837713089883206602950678241787103221316694725496057384870373989520290228803025846578204176496862540958085907696913496128493752385758350480273274058267946338489282712852249118454887517670724879234953805574039689753307339882661229222381305552259778367015882673934806364256454126346717085550240160966568466097348776723159474042912181004298412575188971950697564750480640187040249732881413329025675418984202359168141160570420904567478256991320401336253959033619678284602790267322413128632387886759920617633423177311397221192410492703368366661426564768958938479493991274319597672191538966534804080102584154569462181260393708372755885638927881021066898037710126365152005107506162848304707721360060207309065386007830989204699282713345636156256226487666487569984000229631442610533325869001304105368018191725177012069249435629150067592188862205168705449215790013274255937142546675918893414245335563983697545933396812094435562878565988876650728774927869364678343725325170333872061081056658542632058436506977241875772632054660299541776996060964752519568479422275200858633411735332322718239694090728153202628650786405251282975537521091676153112824129176333064363620632262995253350841934215988499563821790908560398860897613964280228705989834850415797657168597438431262394274884438115871214706523908097641958054467976322407137112564654370079778410904010206332660111536379598252376528295354099589084824552048741862241625162396435291017644629065952381154180491123472558497868571037896091513109567119253389130253297811051316396217058577195196337158658548577405002248098864785559895622281361018483365783945113220877820577925356732192049935614944175760497061051631971169717317345410464622899566652414059594875252194083793098404494353347351458065011382669685281698148294292186576401292997491425398391375402590392067592915331285034602598943274686122714105199757158163068655628504938931028018218931993001384168891329352972353084332205683254536774851424452348818920039886895605439622845573995293939413838360710747215116536205987294942462592541836928388187799129251454590337287404974455681956716820929104078038568225970256008824987522029769138457003018409060310481436807013655458595435782628026760899964046437572376956362462199061369003358127155262894700327586104761718314124600193305213606678540216121860827307398913019225929065713803893796046457052348951634623311335038136737292916365585669986982903557750865483440461302265529265062706919543231717257638215908479987213506548601559370349178127054510701710108478685330224409832517346756688279254620343820350549203909010414939621075716473252419337122918623782319909141137257043361550452399281818830445428826888319177543593444347641468048967384343088106004217763860122416250826028177590585102392921031856352347676577616851382351979039545756284011235636245828087727429846821111075091508968243220129653164754715995304088784297175206840611227578863344148645840010114849014265498134137237191164224409989749428718374406894347327405432745044601825330136371610456491252470370900323182191878097245344426413974887786791671019127484705612343706865442881020610521470124036294121481652713486812363119949387411508303735723058625883415086137259148183402557854483887829011849763618503322345400958122352575359803384357091666717668636045362042139566371835600309876156888488436234288967346666431590299183377286899224778579070967090838272100880601029492028219803696137048370393374144485909129096792464226261516943376373124938280113368310948920334007414578368138382436299266230388775702656721055846815964238438845813435994376348312739178347717957502932953708722324690033425230181515419658892299582190561282046791245155596599379800469646146962156310160225901331444536053440720699938630699683034867949508863706780725464074713170411459162461828856368464339440048344203234262900874084286210935798996228007186064919995245082575455456814947389753983146228910117712992399763112357907582296556365856673307761827261919728121045149885064188614621350868588429199465717628293170650204386499218727934547201191306779699493265093659217765220306470911548385690267487196220351735719315373031800808146540281705440171089001392267907536627709692603823720949658109790861264722508566242602529912168542646196140445845905024492174108485312476325141848579103547892196789319726893927673722964051379196174322527838573163540294800606109712668186080416316085557717509952935629754997834464174102522110265203331539632660067836376745047771309274589660293364066281144979497022309453527002304669434926669635237555320402545649008364270465597203056182256933657438707968355209964197784088119909915392081043246371474547018641511847969191412264101415353105872409889333597033718497505012191190498349336685259580038136430322053057305264917724615906854623226858889792485990250794419295263019368306642078197725979061774244341103609578164326673515144663755639802471693685912303015408819326684154068310471197284681187850325741514211895989310090799290952107382094255997269977909031176484515028021977242286188165548107914817721432488007333301640035131735686018275935046907566070131486289209999567373038210486429279696233256947085378313561305467668437260334625644734959154216480069638562915418645638118490810714805619171085552175272415639688891830496434238957423458049909739891318393930468697725192268858526025239823819149443950292930446158149035122110449031870456211335723583970032980419752865353662720586055851155292261907831803946457103267436249901451455342480637023070117526825464142498653158025578165543460461434286356968009584750426811672325438565236960292215621669985626141343391026280457477990347066251192107708972677068404993650135729055793955153938880033110949194275489309741982622218824279038246257179251650779882545660902993766087660394483940072258425073538179997678648881715461271128673590638871358516488835058923969629516752667926745974918291836472405890801435280613885658411924391019925845032499675640253156603283046029384530486124036737699658729308108505759176686232883994440035712128420626729941726978176391025107406924253183542692173581560367708711854753617137964063429924285409839647209674087045867618014726736797320465805259880371291402314463582774376810953754950742966017717537148514634460335833615705703112143100000411320395997857903072326551475082883201973818603801395152326930165764782784491612305064343328439390100393404906042404805452352590188681543057485955034541792243853041207446541105147448008547247632585663985945147151232269773353271040206127157697051806634152400714771569355237170919893232922952195417334293896640975866587735679014612997243250224136466553179569086353480592153682930987009861452565075003624616492417948594887931652746464323766634301126753402570215280567861021540011387759443725011388087616281753005587330362224143878779369099030344193998307431567023490566685962195591930296930730156161289058833276449254097234412857232343030868888403571368197595276685668873709907261869271090412043933644516999332969685585801907354236498843185706690350328673563918743134926199874888796554289251962792281823422839349294528442618089618710905780947722064674518340000524461223916135329535069853980816759448297339288958231278663709829228427127188107492169665231032676375487072083029731680723694886244648788721960299008809820400842929933745914409903748324371358226674403205379047397092480294043959031248647359396645141712235191597092494413419001776920056447794829405936811810715501283154905413970120477839726616926510085221344065264501487337046713558698247138726116619545885697798075036366342250136697516648012654674889431466313287803100634795871720982840854000363246019073184024280855175130282928465600978492114233268154311628523992385504877405876294267420811076023746191666118879591617564984113157959862675095728547574945256466483871796717913251751509695477887131860119166307229647007942789742272013362664383588444375109047513244783229490110749249566675918146050731441703603839588723553213434906577576295700903012942924796910020107738268276359703116562715761016293840740285121768078296066320518202693701738465388106041400493112135549053268194427006946361730514538295229675755930729098434050752739433881796861872360968591236831940438891310016638508783657481493867243444655309444386474060415723835119671162092149764831537631441320091809090758212542931756421389268947550571637498989779220368551226885853469741485199175149962192050383788639835955663867580334707895950897820691497931240477868699015056152821687869763084889360921744080593448052949959594606848366753494563028770067022169314467414291565665649102950542916168169272687911586609207524048252439618218344297764514853095782770970537904236136775134083560606030521192565985801726395007032512764184858249606416920470387862459988919123043968391687316952126161296925591283758486511859800372628805255444082750564167391802992645289963107127224372293734454514331200984160476958374971610322321744139313221096085844605954515418857331893915220006160847858888583704044402535941889328624869442257821646330294255168831772789483410528381294661749055218744214726023656304668348069083736415227938018611620722025836191545340587610822525991853857436852839544915253138580095748189660639984327452660693389701566197464092174700926090470337041612942767057978855537495234530979913027753670783924450323154125858738198157508886514675119958730370415019942850825294796944812433133674663407577172142448672698086388730344854839083552807448133409526475870020025609094893905913638054263607166072756881751186868383868363642567146349610662472402718119887032802081439211180919042590051816008153292389207114102607280449548021978783020429065449340493119933443044011527225423346203561753527803340291744708969523128311280248935753047795063193015589701762197422676420101716531050193994922989761607604252351002209942370085040379918382239619057495944224087884566658944895495749262562340569421205484539232184137692521766828338308632014063667317462276532970027652889245836342208718440117319138123477196436698412339149040288589499151260959153168768504536455324208129870044008850432423124248298085431387926725485762668799597078541075096343846458823204039322082541667974019994271614266217976193726791969191214988765006964124664934878611640450264239500679036888056003795112448320637673178348010933219364031846442024234595651866887299787833656076034893283031264789892504448370618725301730259623584415888388283865063910316654931168756516047805099601493663650317972576385071248446899606799606796431931962096252163664225014180627452791799559697298481652205391829729375341077270428488086743644173776171037526229274142269682067136229906820792516030922932139057516410872464166653621134782372689115447509380057140823599195671624211280094542015157042979545364857980875898151232345940979434253993479148991609951863361882972154163673821733807839589171465808660946477919963533469282250113766210420538535269142530680605902793598833732830137387578192740156332610787507091424931080821127089736765636825885505532490312754077417249903711587737041106134506791662185485830907050301576727266407844562493134973313962558681438638752280516568266090406273665520090231781195066548372789764739486668735524844843678358306030496502517720536517774189241969638951049343210647862010466686379743058333617842812622653624096152924729438395717386231191212031904589252013689549744869824371132951295431866994552104539103622607073323066808679316514721274617615793603366957531951494713544527726007792762579290125683728618910470598036452892040394872087987526940667188961288876731908834878131533575287608417519128011472147886220403758420664570293208299935013286897561807304156090859097865964595055572657093654271407839866631897201197808739642534213358718187769652537802745333544884049546728579844042440772422265240198480308255712835499886346161614337689786774632776640006525178609182107828843035680521425436997312013767602401666773397867316452746135577290069054407456280118266921792392584528023278896597161226382059100595648417097220073619843029979617107157418248422190453462775961046943708574947357274886196724565992256820986654896440531566340122406378592910687868908806366693366223092940672042194971463251394795247962001220985201311359891579704796426223704899472457851308245850395832020164086024324302041595500842647571143962029793099811989113637314045269173566270213104737426714916683080025053908967922576293298019054046084761706317294443256747604012165625195987552450661693294700229249258686905207425837745483630520146903696718662675045475762416405169586722141075133027268653163181723595523155605395304526771767701952712969069923459677279979004145218947481466929238145256391536212540320338367567303048472673552945926210616012796696381851138901577490643791325834160514518577642716698097021271745170515159752369000180367480695729267274320732829936900829682034662256807286439307946022969362725230001000651739096163031247443853246060942717918487751588075542895331663903228186674759262073180229721517040739304604746372169328572411242972389025452415911116003363750348238530271139510431535630231243125391097747329975075865732130656014002815951388213415813799610537101655312806097836940620620590144817125924686635160236607359722513631083827694910343202036832377196659559633405891182643430261532091863765287920893925212149701296596222719100274925174976848685139246169200612423409741493265081389207300519642493830486243433217354718210637886130827154244627412451101736655082479129568421796911480964526125097049286622389135043349605137431598234833723660735965084655938222839413062101926494217604959906218598747522037708260530897558660560003916692703206744697107153779018534585326008439309623679931864333121548534097861066655184338159434646750502621447981529297266673940433955438414979737549710341184267612171211726584473985280660399955799450230129110167363260354873144211182642765377652403768636871542735820097303323203568695346831878733926463204450335675116634896140364226181558208651079727467249541638323144371710421955244539714263523843182652119927202911967423601118607803162303688989457748304859260299244644513754791440384839277973375186413296974684624470417444759523289471149247864178559436807472618556443221907089613181464446746005343004649229707883820122697219515752129192759071437435835007724709182472282833721547257623252566721628468921796709563865050378053979569900860883816469045664839444879579089512357673788134447397664624879187214125201025318443543620110883891036269628183424538794386459814708544543296661698196019239905622495829298282590853341665224036748912140665112277994817183783111182142693939157370504504695621857936840276500963105042721393732915407136219543956283582384886151992344078912400537392516800075313923489126311682608154579256766717304421808360963392104072299619211675136117027036171277127527474775899615356095463631306103773913006468211236627206351002251574695872004356766969494972724434102405452273664432279423401164735175047060641753717755293322116929255021499417529279244413191953922066483746320946183086077734170918986491925705697071231905487250471519910267629083882602517131536671887481888150103576044781650626850991850197762008225250983176587597586861064346143069796668111067185366359346541295691680278067118373575524684934207663436588292937789591918494150658022281719747001541587795485258132949343422098154193115174763109462868108972316133337379001580804692829256581013889234448177210986644654274552899916015707706221759722171964077472551244897787564383761881747216841061030323343601586799265697978696195437251320338108510305748785273463536979828402327934748410107944520315072866713230774250254559720653458282451846197618170606591517138467003505247278937630426404018243989433453380804215860578275232659168981129122269726972057029799009103127089166769617610106940016885238198289146304516647989283987618243531088908399931703431753627622226613083203586324216542183731948493420001784313626849532251928954315742758236590568417856979938113049365617682481787999310644485551507444335445677346260253354082940909672113402190567197756635068947858229823744575265325136680110557660792487053287933017234417618669448802133941876204594581745775148577434709125592325548564252292802280045209140259101356082687764708219751030981377552155210762690707532595645741155106562524961967774652226015723069735635206773640549511904015470961265398823166859792811637796706456228685737171003721797484285869462176563305576635620207627085274461690154122482742598222108756446348088412128107370268095490278257069818955186799302857848191531083291933660999174384323129476881409447216356222008224252184404325669024291024088021743247597440426058691882934552108424399861507211032548928497223656992103813046889120171399245069343080555312671726844738127728382768928341986717161113194804530129231374728460138382180706733004295161725628523748080666988006594072978394561712824962646062457501688864035698553339112881437215809994047039747336049087802541096214691571474204207640100806070768781751994280894885784519632764491362221556745129644203048865258709937197645248350860330980871969047309032514192732161604149598343129163690903989583929281164930483340253739046821705795220685376123643871491778262706260739612250252934669521647500352726288590125062322232465689804145887321697958113971475059557928477936261953774562080361184189190111354125230177307544266954628957592772329851070265048167968044909079877672884018372952146201165449757861143192760254693244939476463573620293036835838530919278428179841810996695795377896917922304843928773503710164886427560871845446620226624825768983223339466204864750298107716608358909053972294038883083908551704800299669069303352235126702540872220573049888376525720127431325797926966103237187786891008250040053520756455247721847384778852001334251724424357777885076259473372543118799409566634278970725789422030801137470777205503587654158998667090695559410478415666480186523833943598216549614294714159834551498864750598169211294699781215082037324226216310897212100306286086308269706744027592815134261362416282048343572518352185786870013864705820261306342158785610178030462001103346675706586652771822981164902830592227060212438035311675119273838879810289386786348038469732525267143581207883150411339732133329872125750997678525682108107181936249636050553403389358649852266966915936190023282987291480283503102381190897400120470020153480234115501991743212394513885280456765630529781308446339327486084845111666715616869101361777832893763330850527366128013480916295072422852850730564359530262227944993745949089718754816327526470999166615404464346009667013430593943969113672826802895664459716062103876836469635735332655690822333847216349889283750646973496444744330193163095304412011532884602776284702050723875807851894965970259759544874644231274697977787818837584062080032101934389778836201640377772355884118871629826142833170133884327194769358356416916332337799825807387585386372326512542440344252520210159824773210000928339833970765175969372120770309430845396139406042942622055336574907195485662830933942660435362390044114220648629142293826485415430235458712990814665740242003317168211476684460308883705644586005132129788671602454944999305901588859017637693742640283061344532452188375290866237736061234760555446312123861728015967715517638208422914287164808449018303806720267947990012172180418865274948823169016673113692727880127849599824174059644002349540210879576127751104049737209550563442234645237557068653824285469102110287765893628561000297743734816801298099515843971350745851753577769665604290565692052763860850889537412831691669473253463023675743113032525086691058094457856744730424268143325709250902507981243282946917261097615930753636415072462384798266946755625988010374736322415142828491852027731072603114056730642174459732449003901922889493946502622019421794965987583174775978331446503962123184280077157923878641931554452265110838573536501128677073783347408215057210782308897132300265270602360728076827263871287595615602040939663593280068474013725988762127340404380298720953000432548446992671373050659482119524364488641565434038086072315927257016201266359120180692213959841917240040264867574189676490821587480097291609562601482412216557418118658325456927307271700191941885633868990722559728933588924193437047174529253667461437729674785444451225779382937519756061243649446743755998999731898745402094149456748050730612303813855752784090985513574680158287140753402091035062409487709466756083147601461358411606937031597424055190356139709218389603016345233774592699959775720214847241300872036898462899369195561772252629033296511028421107261596998265885947652296771800973619764461039223154859286218313239684025344427013978503345025819039137779320223264250840729423986181207743991412825319613433956003717290239420155629601073915240766620948314823492399346560605977385473484792382777090821069635929970394632919354135222822636152573240906891132556460831752551783820189452713364620135656831694751419140892388636562301774172425434824096750875304127874448674834223695186899858714285013042413488402392766667793840780847756459571944220657958472272280112339763921142677531958010261002005900336669907945524462019410167923816217156104394982760045373274473472200308621461824906724413506561711939365371170996440013571648344584975945898579037773076376248282351989580852997885136251954083834733852721492483244458305690912278908036420519898580122293378888672839191090446649257645023395147001404765417642617110442864869173133844815622054111818864794010735358097729457413457816991196202934191139677905831615437701223641355597110715111915599342664621274845230360667527480310890128741498818988089421408207078611834618131077043031880737783854660837704214338371164574573797448441105570148684251612285827426219402984333921611552607683555992687101424044971481454443621421234506537577113843056392475439959081735315951929244923095942275897336950463906066235508123865493110816223495174967226578613567775678915847494335123249360599898159159926802149246002626111346911862848698786916187094483490868111309039621119834653967523904053985949194045612651215217313572917176066975539806776958462862048254127496364404881447021145578992583670966384107700384755586348378347600084457876135786457366624870467445620136028583199226094958857491355034294230161106682389892093731754031472451114098540339714345257378648885607559135896117011888817876619548733513201640813738759794275520555311784588438619468511568980007615837046089677541952083491294464233491163458734713392426165919815263140050079112270109111297063480145752402989483893681776920692861128403510001925349576737511513626307490802249116000418410142481558759619068654374924438435855097424387428467325104144409145757827264224204167140587702762970934878305610673793974939106279318588089617459334661059618065100512480258089815176212678406524793302415627860758071244032482728721704775451043291383989313530023910331805030224556389343335495020332488841100469197405785722192890439980259439754251526023185274449339793719514802427187808542909731468183743799400703497765040316002597123380394887790588644051434854336935283261803881653612868221734180456159661127315897972324474522944763159821305139369358240443998588786452126865150663446422888769299739232664945444703751009100707003088972369544717749731476580358065746553114906674479410767456236577618441850035860908327018368810918090065134576315151357790747433506233953186161496031036233330690775442773859365018340420573160517841500574320008193596675810142068974576108000456671161175168742118874075701147835585505439971103261059660008319388337565947751668630188012611790665954954796792307028426126787449059214671207619379397406041257842001464741112171692139580090149105715913080113358089728717136671466418105245846304198679293441530076560372376893760629198598851055066322086070517384280950666193070056642781084075915362770557802580163840502078550247787218932315691084865584777069159998717421785814772820703565724062871702388762877384947979792243863793253040470538576201838909336235829104213704958982839609284653074434024661450300994739567073026853565204924885760414576234652152794580747447023732662499963857669854191125985401461163746740545277425956582346682670439403999114281963382834648764422024387246083966743329760495331591956359561786673949009517404011976751672900833441295723931093248034959455222528121192700032431966865998525041520607560001299530722003131883654179440890030904415053002131623167915686302419108175955022387019611461854250129586917833752232098404156075193176851331021589362903441033847717793712911817441691441511009347941462550471350266592089262829172919146290873056194407577829441726780711134859709179250147541036074070007731858228997387855631291468580867773077331069738871810082573118233819723325923393638796035834369440278363331025962704080830815590959228213218417374703268378642638606038259730112077370795209973434620639523339995024981371412183143134477102552578499332419684067076993688008244659235275680364419801092160916252692971771727944283864328686117480375737134703156839104887078017864606222026372093767144599051610661388462900007467881388978442499551100809151975091877786257575693805426221920301607126467855237439368664710724196595181370026342948402585176683525469340358065767615744157582973843895224723851966673510290565942646630657780394741947076065145629570979411711694351442921499582092262981478812736732252639006251196150391349692775923279952608113077103396954042398232918327484399835601091947814553837644452282772096838815013908309900065832816833658721494066821911475541907566376383515158492715846301631266709221366741112355665582607450540741093725198477473362786991887742190358556133499350713042739240644862942967988323967209762988732687206691580023177428403166245280286613580743591829136121924271669125623541723652202303656591365742897849328152302853093690826791738862082456820894707109451416633530646583408784388007177352651840400901669160825632485705430882950764630774750571134261509450834588090638084299567494962082963334636390960482605991894595092096363763403555766905715079871620828288861044790771726518464004568954675117393665788846000906683607977157999408592706182666016493081153388095109664970119890273602472778533335658291450053687385580835212297575036785926875387472293816647651721092873759269694648759096204315929905440393130981523139417454607847417633827319642702494099879357862269278593353402084957569224911265954311792264232611595654254415852127210261291251409249078200008111740901014369908781540131684171045931896071628645924764559271614527316593744006101200632045997674381222624085116791832887672773872185358021806031782108894844342915042575692974900810537148496590891487975133102180637371796125839665210882833919570590182107732829458121994313560391741853794724262553464742332513473360938348294351233642157572689320831858935475496084990010447090669845367127636755380641602702655612948403811157396787591979834262184417698188542820608195066881650098746418707951355097792657410166338508265893000852177852671767008983673088362354968786416759058434230555532622708635295553319170426744406274183042455212881697067970556556259826068961421081909383781232037184790459362143758981121722188157163160533712590929488126181240911632561569638870715463517061514369758163790734349034383345020451423434976273227154903603352437016841590841913432865825514367415150386942581595176973213893496333111737681762783815081830691490362935167224131323280454946479398893690378131758606917092151370650809675211798606634816738846118256957272754921522317381626526506974617046989970615561341015206027116551798182494581993572581714654184026936973559872465846662387692081797510421300426910421089174789394484607271130058874007482818187004369496162549193405056698199145803040849945629519627007893078564489610229493212518495428468770538366819534800679447455683582366502234118304936670059774812187009519361522004481587535690943205448091040842977942906119131283991854111201695897801560631099308530436820811332878086386231074686107812724033195945179071541730973719916138350175358630225956289410982504501034840054063812442583976302472189236986158918824575638067851637618075212369498862933847946049416131038599423008824117649977066738050980916496628661151646025884002751000414043514030760346146724678389979818391956501283780792924385643846519057367730306712572568639918412036693381719688060683858746549978935656846280964594553077618226604296578204452515143615472514402247713207638414866742375163079196455247046071746335383534546362648079597460659794474399334475535431994177948110872680793656759680665551655779068685515537804276007865310899530157947225178299072216714674165877088770063661954462486529775695807137235954478112105539055979078748070276085321050518047627237459223242057800932704039413840561053045708978978672497576625132435841819411847508704854370983207851964303696776444963922187293935426442717466332321562575509966576595941389783519346228025038450647686422866863144771854029142345497305380588054934395626263996967636604277705427919306600625355429230711212311298243662895102474838123327117640456903836127890631696413607989522087959622981307789732248160292077253628553376932314433655993454270241568512790198226284726463994391444032168262777859295189151649554585581051848472964136504718774960313286273583379180976424078796537768220020489230594277581651626528284658311263706259598233445259567395732615724631513198813398509207967291185479915468022269675815796141298257153643311966190915994190922025431897478980401119867752321025826693463043094683120896999884999519981473843374869007813633664595692959031546635333138153590827168919649777659803287501003284212150874945113919447325966131754022968071629948876791709138309062521795724342975210286647039747337830515981498833362654809357143640111343654217183771190008421310438128593201152068731954810631646847315834360253074259457872957967426668981018107175416058873204256989512123597322718796722890387043911336737386295351986156279814333446592806833534746072973892229563351184445496273579117220609914157871859467456602301258061994376902028014074107694260342736288789653746813541771893871256861397700964435142924222841812100980221973574933204812997194580178158522894463103484472815993874962160572870448472054770643699630454296264280431031032936326096353917533675489033015260827152926810214450845531123040418101894134540376785576403756943340906478920766687602604505573790426805333821620239934607312167341677449550315375702466161294754664214230564122558180422179311648514966294103756684248505112865523935865159204928669351613514808645778460329353089181929062675754566121878776735061076210747655552373165202271395053611803615016012721281018905204582173171264683667615107446519154010954988230702009002418870644939643848922540689129718848703327622690268604444700902801654260285093736426010375801791407419340097756653420084478182838447107064171961073780727252719899605396015660315908266360121989411149316924720407326604336382660114820470209247284168962437017225921403756155740185453798655481674477867523153046221534437193849702985662809893786348402264014674299347233296922210858021609561460200337098702435702528625255028947268527331380478413008834482988475740249185619162410874625866833981672407768963139551120493897124039279683962307776306015962486372549408118810710839831094193725594699436695478592974900448371725017581489975414277368552387901186908809479779000312331020312588197877468685878512414610729186224566778572707573038698712723657770145854350869181051371445330124931185451111040711745686839233529706975556245550222572034656215870514428473700935932913758539515590100647380257303915309850207823713645938960995153666966139564851947117075310973373261493365435804523616301267599929378395688721491443106633571815189842805442720366899911806149285045063345438721510307867857946482215565928492870633650885835194409667956806356754843103875822732541163336523852298660818006116725746266195813845643956301118715064851341028612590925507490102118333893793033980909300029190707163821658513222544164446833187221957672826774453225932077724592331227118036869257447047998281361304009008767654049068104387081663366996507885474466629572716555272710456730168940306778665476303708248930503160242390540890952689290336682447171898732359310476939064813726694696490573838025510628422311674335359552233724716192269693721094289602216879255132603935597369628297920903303386518886647913291578583485968917070149134759139636388802365573037931842646592643587186432460604417749092884619098275053235204937325906523950886022963909054510402991835193340967718513046184123044573658599111931443937104177676075411708325506273429248822159423862755491639868472479752220948334634113443607057403314329750137739501593150698328041901471448003623391194947523073824877790995100341537684144021182678505507410291351560751210166607058893590262427587147764905290280164377776172042210486702453234776887729212525115594211034574244414156728023216613453654231872108188060367970962940753544654158894925253870213685884907002893544421629705361991940668381312517513746363429740987479657468486773611578293700835264523401175334772966592827807573977563403630977705909524092824684412176668197511980634655980568051249273801491517344432405540545629059378193398511569385925660918422547602596716153387330865769581904257577368367261969387673645815437770926845197190508531198210611540316421408602356180517102629481136333057527498517278712221254454533261595056059829660067388156715788126574988304616359242536243527480956939100558103105664947287957401226299758066006979789074297920356629554955501664432894085333545767412381571614419799769085507805552127687986564493025193978818013984989777970680470462328305757303245815309939167251080480259504319430108623598153447414101826599762666681710812701833129267765286706949278321162989071192157941663979639104262158753697309937517833008459938336832682981209346084294036861636033778116290202166259549368955202810606477919635786340822011848246417532580248584740307370847502848838184177755384989096584554147035669963497488241437900594275302533103497026886947210346009960755480213938773928994753201539778758084537294966600684558819340177616291218500874094800403932803883466716779027211986171141659085321896525792372282410081275859112413946856341276690221691602400512103013152224975038387545554464379295073739030942667766626686605548315956658739543780396249565684684145984399635653456914265905169288135014426949124932038670365809732842830608381847019803525928773622475033542948485781754009916896189192498554078022132869477074240350951373103313113524825988732304799899251954443469061059234761672222364796457122887563712979696607892860276089275349368713621789044314150170115603714538060190040574269345232676745284973462658942610835965199111454132022444615318486578397574461514426551380586297786202904792913596127743879824237207119250792747519843103181994527553487950624757937163142320378062989640760222029017233182692001629606849517212883589040754554430900623915433041327271156336563962107413430603273862256925075395533910401852739487098564511408141092910914343223424359251572119625843319111084386896955703293095466370392586692261786960162638649625175972341793779875902055867762783262597978651850945006638993848230680524584451410741626608632204409442765363657404591650588088510311754835780165473736677458330161471816903823944587878217268929782524249561027467147899467595038178249565157561958569945532727586530195243385551178515992143807635982996922159702858448248149175539713405514697925122841562171078042247533700634920655310828607629834492126444592108047452626521621252860607135549853755845336329843818345182808550354418016686625628793958405211874774523847806520504492423743219233976407375357197743469036665025950788193618039368017860557946598417992088730075530604320605308772634704122469601379276075934565028262369908769676780349657763424339595234595535176793810854514897395606617660539219785927011724072317374971222234217519360280591370983064248868474473866728966199276596352186398720202601557772136337448845871386169091364766016963561961659698674638749379664000011159842069564852850951688296823975504471484336917468586499995533051443068262504142499647351209410794649475014503188406877595026169028221610842196048132991536939007828430992408873238545331801354199483246805585736348098021278193675484543257405774880192884955890419269859318022509702314770709085166337624964954877443248682039404642043216805658435415327318032531843941884961465202041835158851138679641457679702999315725945551218161022983877057335246722642912496385174043040394293147100967472366128159024087753757287947046906371239303915650295811518231163298070572858104315257610568571210503686788729811588568533722284858477156657623067777683641511016927853832523002276245572089084182037583856949629165369131242774360577427697733457708294394839975070284323028421490427203322424134290206363249218815945674057086535912316818445608652704008621318709189678594316327623091527870143044209556638806289528858616590594930565266633969744669033065822655123037470273500964323851087121610846543685127334488960706248886550369064794144966866606694243454722155200345892621187516550450340146858698360294709050256007619552245547036379697410450629524964652260120485426676544765468923002507912981880091366438630114282137124324770531942076333522184399631415078535124635407008726774477429904204091615509146064443101866451900424342026259037319419040787782310961723836560256461114635673478217768967923063237141930111711304525429130630088341608624979987566349448623957748822698760261587549259687349692173417902305201919840292681070591165247788254531364731609082386623557630509900228932064895218167320222572804880330978464373660006364028395796904820253723965405678168999468069542361509965450945998327757256896715867484606664991382981867478949979036832190095125059688571142629324575643126794033382120287659875623932518397631012819856330936046804583842280243583783779202995402309849258195417037925386782093152950255669558834924471937961517729056105600348775671436733581082055685688818916644882226157473277557234250211405047963243767084619556200705878722872597814695724176549390375972338470307920572413684700851027799309476919096989815890702421907725506032207563057925087776151755845961810545293004658617948105827708931244814205627403410194313081186320767592474628049704944546078376106850649364228039304404560383983700911913742829342611735919456382571404572604919463036107690519518945403910108580876893666748811509962384218793392765722369118794879305131733935564233629643897674970647707586482709725304864481231224739089884011766151720149399439809325339813731825234139164729077819770565520857249280746363398628107196267442247873938152234341796641849650457327729046360961517664164129034595813351094022759295065932605984263530853528215730966600361187600825243396815618101654831646470710617389608697431095788651427970599915688942708512781743110366183603222152724589750255908044920288917731336407494888266460192365991336277439877803382600165184433618554901367941439523162761507343959809813382242603328651891409857699716935338523046188581473821893851661040291057438791109482144999807242662012713594916107073774727847726825849778523869388302926083235022202201326780090836851529399017344479763789553726272713108586588516088693546281459519863442245071913506709128846399586126968005100224588201399715238892977930842965806774652383917065713290679688167202363050449527974381815196069582779704446786735147169108707187408391999426551156043583209368368081952212666567514213569665246645046207352523729914808764108286442261459749237432230551396486853252018207816580577583273144375285926373736977467021787360333371826349387906572909082821437265399819180672798416811242803472853659272794554212219250347460281252819020154112635995666728862142767452272816275048606348659263952385645850314738707136374577822482052682912354008752058079777351600882364152270701638679528549702871924826912858543633053312593274790171278190398799097807267864581733010857322029026899602738029058583784562827674583514918732006370801440858618540644435749649719078509415415916579185381073702849510832256185380789544062462679065823277368416225540956645523277794517307538530325720134486920369764988525889278253262538261375270000563640171649270688859733393388759340756700981760286028220497686473730832112177774429752997361410768547934894086368649772489987104093389083204195651157807750116111878799952539787349623538281497225647625144960830313048927484870415166086113447777599831438731413653895585862617420737644470925646204165800572363968562656479617440166308901885753429592513441891832878560420281034826464308348300038715531624012523332434873355096082293686255042795679151865346448291979365628184265142456944428519753070263553205010831220744403130238988209264320528330695851954840313370844002384593201027620113387969228097877142602875777465625871313886911110057949024441454603546191616398123587639729745044482954326630276190878921854755557483480695338793954410001962180788131676002447763885625638772555910062177749957262156996606104711548997306809005646296164434731311612607330917394639962483010707057345969151488502770408446683441273815951430341999828986574331223831525121008776547128560051582396390518041853646485409154647832334492687542071446288743485813677222282864590760455661944178717543227677653347017624876054490048471119348699946356866076895413076477485853362114147050891912217585468970157174800224524711374911977859687929279776816009699129771503840746499779012698154520682890158476874810471634199821014607006951763409849883709400850125866345853469379453091406164385700523939320205246251151485717699989675753786911877089502920917429462439110814284677797715361264548013261430432002341086955874689389612649650184605868783929113157169429964804344593273567126077276483826641346097440971018971455469530175155260301309658046423241572082921030801801699021815195957246811279316911513976569486010773436131366759056942506454974603440273680147390249367171095254064376885695469856997296949392007813108870950239245626872581058808754163287520258649664088419900003310387807567031813111600552719304861589992480448994116556001707147029367470627030071314490981382652693944966439822555055382734174920842674556674460571420531061579877255845016931555131028776361695527278985159418389062485858391424611914546541976205125737602528491694380493333134395509862638013150463386501716805850467902299201092266720791953334156486595211563293917582564396801070116006374445081533954315646472868137418746295625050658753027253685905666719453135207847120182306359574384060039815045833151326716284503002710816640478191050919766415421111711483625150906007483097641298927184614694928439799846641639209770534063786728697962706079725408094924556363709301110382279851383654472932444337270423427766606058852091577226546442001879906471072351925965491751968478717567400242481649151084407794212595336209404245346365597636768255114900924553185090997153083012207754360262489709448337797990584998212864427824870862861477825732909658315977036401566405839448591573305678264197714367566270122912748748052493267828929957095029876557853727327014940633585341297453168554519428856960316187377373351036444124429025113757419320116558850188958981163006190189709186261418418274897029986548055457820915493086345211283952841941744051972399626430591063070963205303080386471135182542992412985571198263448707431928868375085961093593085611782070766500302981888407461152969914932257931215440565667691104012866087612625508872510822421104051636435936804540069235971055378812359921163425462920454876813879761630332671599874684063386319953845681969184764738378012959566727927264002887921051912368691239205769605212414047098951922998424947903484560498938172802729923263841149309104191370122225074106065695952032837505455784716336405046775047773177225944592506843141778358483532364621854974184122377086932757622107841391567873899015191433819278255064607704811570443546264022820483253369033215860774881826268538534392065285789788883248033903922758478549818816382175691435835812839932210992329624641730279568675284690195014430049024848102148898405821654637138776769010178085252229142515965874378594040728858218670803737705878637034511561337648385074494760557446507807511927919564222929585274713545960356280076166598895317417266621449572102630043735713393663250576698728822017121922275474329671493996612111987565862755924984393417210283925297253652316477626442912689749439696287691219989845987454085503231634881312355674261824511864000102880898311997661208160629461571744967929000145878623613401721745067192055260694633019241389725802513536733897705674459903177515441532977497348386680208471167229741110340929553516112594429599013866295000774786713961402487124249550951205758534019392052779179142968082187779655186434511045342788144984469002301538086626988596682641455760795876132759988984109177679427861511057919035060496045322592218505744527365207550627875235004483363969850633376632509905943250259905449479417673573621375032551860353534650038572877495938308561594748339779012256778496867518103946733415068476865037020770077488508955901485979257352058811854780873025103446713597106305454425936631715740561148549993630581806243665495006676762781208414692109407769426279485610862770445699690685718686976209753550499610088188387788373410777883619670031180278940464589160267247914749574292277298202429210726609020539951650132647925226943644916042551411706856370029590498061223025616210740727704080422660184497213352565238078749390510189216540772798669182213459060594180905619056197512147408530756868876754079493991167153190440835256690936396466364104414458576719864399053733518720889414051837169845043135040803412772167796175705791121367728379277335433457208312971897919432379648504026455549401719468609872018063428226460222568669754716859604490102247876571488308549385814949336816606499129817043762947217148644040356308256943425437014101794007176569063783275171927546088035991627257816599488581796054802271580468228769826997092809956664139341841421902009156162865486420580695854673646313964499510011757649476048921314510262384899634750070599538934247084225091931151668916012418045132453496472899275734823319256228794527501533075792755241983718621670822550526492937085086075207907662210020531401300154937930081269236069359728173737317182533397305557103151139854079175510527688938523381815168304986444614332811701399014778067037255243755910384318924438207808910659803401658402221784191477092840886342324220376237163176430430633591584273194450247090375820936602642388014049790401074132870263580631388411872401261458213706171324857753089688979738229918956697165843696676473933341807529658532423374826193685071172585811693830659620226966067132288506467742830280431284440905251093064701424805434259652598722864803135511834284419425646758801768330683169294489113794780964508484367572447261732032090956856344583143513274802233955863337373370289429080124447384845869563029325581946664910538456059723984665791154552705678288135441213187158331258749693029230516190562260570948741119413702656623138589481095353019330774512366717448434724760636296628396120584673363198679622963600701233226734782105322592318646947691823507390920467866287530038669748291126067715791363485150819194514267468659259825970122870004800848979902040599933981020816543430927845547749579191733061913869286962226838750715496596528020673762656538966557412159465474876715925785437394208031499499497316569489206112140192784152612824513578891875461813965525383787495998227886227972126343617622627837524797689938695421786361872907719743026919437139881098147888575400094383925429821482147329272368960806220584777763206344933166710073358384392385080983360295582339000408607411812729036923289392280151521466061187556613206801012462847303133767868740200283828149338002755414376323051320539766744864069510318662471044255999055283227500590657100260607604466481348684870770383945699918022232960809959444073660669073573547143367754237661210374457708123806826611474119745459730670473262656616475769226133388690261793322729993549512239048982908034972567488237783753366737332813055606327317465441343073684148305222159980653328948939045110347493150334995431446695257736454131384272647471282332841108402427451096453165659391401658711228540814562645842367953354353602263930386770379467303346002855990195624940454707656965090770470108356247012593703157367402986085211260195763071843942320537551151521424573154735189782554606189667959578675209365770227831965671438754071209605423645054281557785477072578968197103058654130680835595245042836740771832029915462747971737170615234963299685704466505035389294537901868944113277059744466347154475112685229647558198478645546034100754958354590049654975995068948570356808727449401746111033474579027460453041111104084644805981167315074716243085861800380282338418330416230958423269905410278414371596638810980934593395511451834427913197426490267553273669646983251213008574561159581377315729962543162027649455812473989737701798820871734266885736409132816794227574120779673905059686893456770225249836166281949537789445505908087908373356275685673005566748632223420190662589005701101108888208287120927281289219278336793514059762915833881291254500657299204296363007441777079020458148381208105134354437167456200557960586925098172420085651276633738377970026496167960580877658870464418332689412554790199231780371205280836505141952357291311066173231626424902743298098108652270851934900240941388995179449827838433181828750188474320040801019980915066126655316095354335618016907078329828006568626236337015764918085641876029101165913852264698121075447345514110065095084311556127746269825125042427429027543441104107328370085067156585320707308450505325611050928994614939258069082681989381669522249617627974537476379991275827171007643073891014360241936189070502040164456592539360504138185887189589597838873514751307447691556687342458981770279669418801991926516702462632451143459159452440574837299439760318224740235685997224816755143199701106254999549677534034113282027338453922456076501512398933972931951382138277628613112019580502631479149729340069940548555689653915824410530189059604484755714419784204925598642776354051957142824265500624308753320017043778698126477553341930876770940478647472268450246859704598624389362499833518886006482205214371595462369734442319956346791738644827315091572364283091517385078776139638774525290765991988443207618977733958753971103491373337735652444649141138783185587100668160367719738081311084791043346944037195635877681504734528085916490233468981650496618184107697183656616904051238460410541987482769553389808152704428487520031898380528593377080359618752569218244672387297212494155532042211004611624524840099578215595725018799170329906044650732581280977611964146616339777715477344118843178933273965350237403721699302732368267976719401109044448923052892211101064161544579506877637564372305980682982111961091239059468586464781222612566046882223420863645568466646515709431435198118929752835510111507724447140775210327080434301883284207651860550915553959627130169377971044715565762667792026330187525438956474362964531742633072615827392361481867986624050688862810381348443021410727568761539985519253037171265361316421763704017179529295870493640174396150641437308256520052503077815227938878423720529214940559203721298181239777097401521082023166598003568366332904398899414947823233940651777795400640702357032171279643294561339931463970374628819374758640534628887108322309474847476901345870120332734134400059558742263888326106228152690751308100055306171416933867636623357069679512928846264419194796866471812091278374821146097540997254187729430203143482313894501992498644370058172275199528933997222755242889380901242774592701800020599457598850748774118637885829114882566451411699479073734845248648272048867998567305334842900274533701684355012099221599725865553663095944045634260934575398522174719728179920108692629175355751108119153892515444965325619522256894971250831867785850380343166893961739605121095099585592213233196427568478196741265085737070016516160185364371238733864457971891442217099731899244769871132123401465133040131574885094232087628523167985363862018941107476682040079960806541913591420310661488865896612243466173926126215543705348739744632699925142490112411138618586462206458954100022974370824164266060226374096030371211225661716384782326077854686496549933446421796761062406090304867436208879468197221079892040795470866980887614657674934594281296770292135038305929838848408383446749290662873117956401737172604675516584285961459566690103020244165792791989162769930206172254071423473682795145833221640500829522315089776696561178969476822745866267737260280552664112963077987728165627976643818565851612223708140508367229781030429478990465473869453964376385291783777236940682025688873476176585471457127645289939383172953609612728505171397415995405413514506159404132132402389700982460031684000229337346580073184430506827768949307243040126637072255286741847066567963143341287672228787555404983412693064423503167055642224106097377056523393156909006824551555131476884565514074716967187712065696610051084620812600522724380126229123424832854503420882276946425848014361823841642013102596223572007777043056660887917878409991191037563213985312345134392781956474428352623320885390969672402506411720110996126366562056322871273637067502939353799710511615214088388314061559551124354511424508400446368285672331347131675574461677874058579731848652575235363561033968890767106512949881208439575415524725424269281917426740426326731370780240735929146126173312877563367126665688763049572349314896789860872149254809962475742796534804297026482895588492152170090615939963076233170132143085340992977086395790899384649951181915935694016198418222775336882576068483064620014834060837573733936012639344703059015894207014835521987646892215002166515566540499904144774866285098417869317407155651377862787757071463833578857160002929812661496027714527667641038693709885476469092374904752527695948935177221997561426585746903382542147522317938296069273559403344193512040551807445391288255519447937106772379643863871037398234146999815671712702570101651882830413540029754894640784649480090401255938346604154187141543118431908874154164895253699150462965258886566942277633878715078178799561706251247238082346277435897684134807609798036072737966026032195017630345444692218785432297698915790334825086287526069866566589331787489105674661593351022687655507700290759814460888601852103984076425966714049898240459185442494310411927828313294704447386360472859246983553827691570362306257529854061660276451716206922061256451109382982689255102226962508504167639955616403819573536310925511700177224822528095120921892891042471524705168373000001354179112292667369347434998570415931715966190734480404009078045345808037952942736353599027261917481928982113906424604178189450907542571607130954257678030197880908399443276058583532961266781690608052509713304706818635871288603499538781539341176676218110487846063197629074502239887204740209646369556481334136055161917211710895490311273186520288515881625340089729253964052019160804139163179520079983765219605288891055179059532214088235487756693991565546961643597518800546254659843068549357482595257134197200444832268244906191675395695141658312578648839939751995039184372564797631566382732756374295684930199057412431486484911940322633720527106333727609442361251692948275869948805251569002594990117059984867249771834630746264955389156983969554032384385800839395467600182201484164182053088770395167122303251521790988745028523652431265039957263951184909696552923633344520513261938078482407486621998673112562373879887116250814509651235363927705630099009198691692229431137007829410754311036733851008063706401599770827682248354805720072349056785469177445217926736688989263572064099751457065014772460791870582164672946692038815840920982456632822922705290265689081127178250028561364413735364246178996098373320336300344574683187203384076278547903973368589402329632779388334254765245551273015895109923030013801387703325520372445442701148277937564549572932770200280364257900393502175024100596199472062764822892689112590968622399644551441866705307638461603786797471761386552254475917918530589253058667942444349005310139673007533151110747423101925564197191771661902293905718396207820955780577168981966270552893967345423430658313942169970794848107554691505288358845516497413952183878204654260551282526744933124223234653029731819178954063289652876816772542885211451271218092706353993520798917099955499148583535478862265451420261196585651160300336015189461308937323366500013640108875520060428733680641825028852359816023266040192304254371587279126601198968379427190023482302201882291438889427452122065238813122039864970381652279485630617414187929923900608435620065708065719708156931998839166708361012702700110446297199026111319908207929183749613704272974298056845063755901762658115036419995126387258203936760739312007653174458924947213364921158161997668428512534565018292972884564587566237483188367931647909644608109984520683675597898294459641848196368838675673354124365166586323004700918836196124986828932404095415107454815838326986013524088070191531288645640894526367665755718313553583620584879724358036284439045451106108490994554223103049262743580815080954380165613595998428019673149460201326765658735630867605161095749717359409090674493781686239650676786643652780307787789961331127180514949835243553467023689980586463635299399947886156835765948711856923393508547770890244584445268105262397750252125370331201224181273810020592030336864931332678257541473902006883484871499581083536045818358372686295068990187063304808463593531973185228454463759591154717286243671778047202987106686067564352233473964667778728131828464044377083567113985972536961845901371521517651946722183411266350331214032533243220600006238059396937611378025066202540112082462553269540267739145885368208093458045325685943668570932015746757573397585261731350283684255590223885060101367827515109888984655682537040397333208732662047216434176852687040594420949074405853724577133539021323568699150345448743281779811161368915873981365816363952745056459643005046683786478324661914532244890900224709352451693406843064556367435261842775399676974180177699897884023219936406233549948590101503839367193826626686867151528477546142451984325661660845289990874222648734662245863316642248106681067928847743658557289818307736680699923125083062159622663527305041032684068811873730094017180433375229352164156946697974225902407952155742946732961024263893956462687638463855749148761833895515231826626541496712509556155234168269907636547027062800174999431725237355142761422643601090579131363623154070741471892354295557751803917271948598371251231467877553256271620809381630427919923504220119588689162031960720346681610519823033029297830462428912970560613041712134497082431088408989098889164151371142372395588578220142843516738733310158256452348988543956188429666003778789101215922955073664136869655578209242099941965590137137021294363683714578421058512881701787189782599553019785830627539653919570069643105759356356634226902566733180970670900094455252585498724554176863518448393488451882452278710715904917745639423987148659459354987641265223201343706014425561537355694414123602364887232467529424630023348690852770253213552516691196029740661296684268064778111726640500529145652405993899346774510081711552766970485983545059243470624769569022661538763185475534497113475450602053962098348847828211187403486638209297695499380635896718964078990282532145903098716789811066979951352417385966385744850205573875032885488745838493850150041443536139371896403930907331365525017948464089744878065443796182426692910172624129038149059543162806566344956410477682117455511979352346904889549584747757079609890765585516926126753382618150221181263475734566529808974469479884033792795398933395845979076749182925797905624663363457891724726824621701864866183395358553287173748994862305805546915427051672883767179905367810515314630802347184676568279263715823646092644187918997300168712475127362568777350910404484781725067516505876858100859361627181524300154710992452622762114414435018333600914930926583384357674046876103291789402147207409673009857707953423085680259153854391002627196403131075387816911280416179951696321900879198181996977549623314163293704940102650939163166556019272490824527103502615885724514029758407521859096367943694615823930086586216878581850412077907590639568293068890634718203671582438368770288402366240572430557580455112575053298596418961407526186817782214561109496862522072540523820407434763380642597402770360737084907952628171730875992241936643638677078200436790356039314306821941338624775063347163068197605313118128492939585214581867185601561662999152493373692729602658975351195051326789748190213086497709524281839784601512989389561582000375747683222966014350286015798261906246499003897474685730885799162454673807727477330974198201203605116703622831056725026228876172411538600002238881206168370396774798273582587822822735934016071310475818680156028272148871615321428544100757929782213060348346919235966997556343963899199148252568985998527338334918843755953856455183289429183065987185121332851079712147026101198170592862589715852331749487522374654660051112791957406613090771342400227983561295547135967952542997141600508381974952581338860209780786098977666687315899526078425288627528705441596804271200509321738800587184968435093582943711375850185367495092095425370775504155141723238377856265590540590977016549004781007309938834485297387167962110037337000262564181333621970945212809541565385091300642944151185347471438727795116620387256037908575731408942285005869944535350857221727164134357087959775484395338131073212636878928825054950576268363140407761898972026739476204154838557198848273202591492586407454381090256035822424193665669244340404163275229014950413324035988865979108283806400870220714812396695163374291918580965119584331304121987363575916327086873813581809849108750172716985446226084964120407314069099522691090492977696696877929150258802805935038582685522059237076693753287832499135347612881848967468381855581458739536553031327660303596079262038915614889855498652100530487653515928192807675950198106639410625214743333090515222672142758834512500101181987553147484527765539385870982380024085482980207759304782387681959911966259534848382428561389796711819665022602095279634624942681550255369531419263666315138719445798022724049250571784562493899981315439164800675195180283137935993393380372841853204553570924110543754351124864250249429392231817042527097344611622437978218124748492127751982980434273211627557393710535479693784347505649489657397525048880779590469275735846280178127091855493201149780283901571302521782909164296154867600597090510785578011702610783786259786869368799053401005611408318074648882847530840238954713183381476755300235973222259358951972050208457186002986583946590200363062217012827219782856549227569737547012110777416022467733045484021063959020442296858980379737614599483160069458488307444797557815409414523403070689092961955054944346653264728690063379320380033518663635384507224311872689976190929043253976057173703420144927105477075943222135532219541957786059067203674118350542440598194911786397229002250976565502957889192460475882696863183364511275259705075501503693995067892533116768729423072624475713758685965915867129209827070730283916801694011881343821056145959350221707739247148448128646177940255813311295554108544460205444331128406432136779014528181797076302531961712629484449335214025686848070135287883698434284707976897283175345901708283392738612960975482716742786138427161772289364168548128238184260566767821554423435905362052973115140162178461629241070163309527729528972228904548142656229083297751996696534273812316675822729193761992970850350392060419865657421802664676154129694006774916750996501898400399732170352633759778662254729618238041452720479083416768531746387081838913446430050471158120507128424408970723198618233219693805313200461401422223509482896182021211794334523285196371107976536658552774261608828681300974036232168653704581432646537067592710133155104021610834364148859122836796355391097859502367222603254450429687206352962889814471847739861934392985004889756975245099536673690751545371632950518824271032689477308586446747454726125001072953362250233394172396153961209601177791209736503762061037188355513585573824138237193477341782730714553575368033595136940238568887179596720661615300127431408253472939413723074120358701896328807550336151944885468438002010941306764086599891651158378428337751300808461816903205664426979751824430266996324752945513331999447256696862750326142702722443401412582272743972678892494206028541944105657039355755127547408395759709184061479787673484014094489295134366266229874580857297464172585008704806029398185774033651008991101782760049136490807552676465593056788437193010251876241404926358353873881784345874011968458759132136576488820220294423475737116739897195473421945811159665551655295949934414317231217436857667558795374839517964821339698039870450860414599903143744059376356448809398650797757915411393071661824007133366321750343585276516187665293993453506334194901680655879999055372036367730499859974591995288714562438207786236776132013120100265718207311575972130863707725320978877552405086878520618114938395063945524840027668992220336860404025397991510719518138977569199954107329232347440442580546962628308198390536182365582054212186750914773350169052887753878534402530068007835031474411424101394137500198086444353086954530944322061119637451568356689547508301987735751950812279671908027928130886901652326778951152602527331962120889482514438256668557557634805628800504866392630379881536905252884639777661737131882055161569422280160807283821241306207589724492104870257156435123781540121938342165366020923184668715380100801463318498108503187084554388959998237071826465407186044061318534534391128281137722379436275639078724178153478389201006943017244940837607614862422560230344877339402607064520233571406332319750145795107232768484088101513133286490049701340136905254161869015197370862827288729421826564545701322824387577149618036884590830709855192433834834015937345587011526236455921821902902461990474433431135909109724003027222151510812778207315553937904979121152583570294502490415173922843484244749114306932522808733958664539042695637125819452165797289105022348217505470354047504421701295874612647794882213598581796935754653220747332831421297579854934630221087461950906515600492428235641764186671139863486765164835590329026466107938537437103781672775012994629759525067566064192207226564284092563809901634421783781775895398066904904105625062341166404021619332845657326854474852330153868390441667419663039566188035604526507740102973924190165649779179814565809836009225466256989588198022580100912523518142415098808873881184023290995765614264197868392062228765722401600994238911414462018524916571031224940519750775667840625748450101095194253198459378390298939362276839297554419366302297955834284119899481206578505837205525930974653956788085991056794264917319237905003210707484068651653014095351606950837385207469197314591435752016118395908323428761785178029379082977123626305532343442220154175738226653240337996738241022970508379919988570734396829791363071606450456821561321462969315222219282645358450722652387387289425030770665828871164524501615464705999366413159980181256987181138745493622398646667525975488170978421134948008875866611738209686114496734459728969799091193567519783801184337824609144981327563580961698902866462233703511292668019401661081420692756212607893129077005437101374717907482979809199070952680007365070589853906956612558070804933425675899452152155400860825105048334213670492253695901459706085657576159455409934752697547777028620649545089695508809918678513301901148210309575386755331098567281612034267311710310743594810988207756367031241958491658743501336325330110005422170338515701841207064348823421009380195393518242415222268833797547044181267150469854450177864285794588131107214658408643984447552299957083037439542486097869396239227526446869468337413629341615205592189139190600524288773283462753616927688901582577270712024347601596696871602754560529319050888368925116489229737402477055915543753686295511348815483996798310617744808493038228633232430129465390255156732893269651590634759134278046739484901016431985390815150120173826266799370834756822451393848700780505975496738636907965164490805033124178838477678403822329293286332015971786052140268808793195911114880123331303440899818572524122913893483642804813485059299650001823592560279043289352324245810295103498436785009198847495180375065383495501239897808129018193724691356111864182473823008908156760206926637801862554386759429149025450234462676140328650650928554363508970250400316673808042667676323853931029509551776375497688930401446730927051921114058071315310342921087906177580177070681011563955209046341484226465247806891567614204270516155468820998468754433813109633605245906467573745637668417621811440506838644891728555918446726269823491985988282140268940410441097451672892629147694891143915773475799536206041629647153759320418242013410689119035518279027054355501233461433538465716368508562469638617322071615179375088213622334212174523719415165875655130321365206645747873591317652921114140677376828790143768454554769906668583871151761210004746545101226718272980161805982351135802490400899436178430576090237011112620551055477250829935573682122134541683637721333168717899977849426346116874274336538911584554354094797750676474920013937455893971259943417835366140975491116219721381011648526530296879473017397487881744104356382151156972429316177350660725763955779254636857868242956621371346304087656632510602230183272429399466813588829771790240138931370051306121537659035347902533215727245911177059033898387268245019328629213513723501725131616985544649546387923905240733414132374414567682197577647311995112849256947745162864857792004188388896753057953122307507232765717841208226757182990032638854757207711260935300377761431795966130014523743699794839039127082115558813614135986293269092187418823206300485532538095213076737788142312724642870338425676635220644785810396284834444303859849457953767843231030956449556741378109464512419845026044891878998190333905563061212063411078272837295008640658607983987880350928163191810701178022120332580680313542431872970876275264145682867669918573993924409017326698088364422056602272376805127726628934915648419599202301367078246079515811006270765773254360877157970522636429015804762191716218750954675629512340185681229691475442516920510417156817682323073167738138578123924321473239987654794244425898371067233961812227184749161173897733210630305256266036470935593175620052176086177641021192487274437224061798030000478084686245096470960402529260667678855804507965247039013477055200875505121944647254122231024940725098916196264597882620713668017341019585354980587308733424318776408297872671447055314586860024580115858136617142567157152254011475862747545580176022705187698837339018181512781604340792610964707302499882471878054366538725833185265822575834264870183713979039556072843037619429735122169070296578689213980760852817201373278771640958869961637454061488886450626809745914125577572684665222235989654365471275999252390673541141482787269519503467128991806810320827155196014059123393286223236341945165612804910151737981867358028921034571110383081594850122443808961344282297978011056603704497424762542084109471038463030821092835513380272825037990046477327758675660013150648210044614671118533100883707732771083446877216653732458669948540877604800593164558497064830724778643383937679018055297575248995514416078511981831885631927209828298962780740180822825684229264034431051481578006150929050810495231644429184167292980242449715467018604695719794460328868039113021081001079316793042619309453999127516428953388940358304040681193875476360899062391698792476205927350125229379309073651931584518044602287047288368617782150749407325677328385949690237558058780240309585718055226009746336633719536318490490396753090973004688700821696729086311615769734289715241720218089744564758018157439157866889866394207161950867833094654191448964322179471879209809481407056658220388982004834076002409412730314574265434610396385874950178420991327933433501525912303956069898578332898439893612847620866600535833498091994627568285240091109718045624797819380866182272680550965766532818432473559257703598274192033463648975235994886168295947572443142164581438820881260038636374803145865640287742011705145706482339541831193588323837348607319664192582259437100188257598706046218446200088214847862361852474499807825089060756351526275565987208351390882449899904046307541300915177879867264940378888124580301204968617994181932002893398998801048136487823656939076177158684362328814158712442585827303168566936599603385075980099348837457268986831738864147070139503081466610971951299905062688621044702927419110063305021532937750652365341100978499919537352702714750111274067609280580191722165550474318225320644153952212163956379138529379147883457231938927492593099254012877878153038360034862021383209437943937703135787682472232636492862403056987913990032817212612113184618508141787250144653985508676706950300791713371300108606860240390910160958399281097314434943696420555626373310618275000259459935569640417816690104194836654768719023310477656170806221774573913546667158077112500526825161385823733653041402204881689681984967246262662597228890108057807280842656384351793854757071137385841244363523341803856998625399392748016526817630592838170002365578910792486768001444578301599412418757181820863788067739853873172494848648800712802517563958997325433112001528284994216300841331456604629587885709722984341614892038340407223782431962532674731132874429095640238111767460068613241240238427805452528878787739605457896015919476007047437054471221695496063020557736585847836594905081305519584843718426069567641418541024584794421021162613899850618632726428561872870395578988385708075098583962225098275484890921529176831537779050479044984540160805736537012733015922787907486523833141482052684993079811814002178107605079454781917003035669393061982421563287091059852675095078225072959668753716569589087792994270902293614081475458100786097589969758796875635210312630447482058393486133304069530337089711528727560749083861832106051465196467354916407143809537294534399534565882084067389973439862442804424224505719210495500754825700481580325789839931252653261868950833449963732053125803951354017731797750598236627314451192180487218360053887550408070908240101587869119813690486223770022845272631547469498862485833877459230636830841017369933583945395403179940736322110223840675996276375526095407366029107065146237660182488561774470319116485087129081794009194893603362515721661528514489828037594864261529208524176429592606461369047611062560531295986326091372749319175395177291125272632144563217234184299079165113088865845322069873852292165798149081484239131367719045167433293109308941571988651451263906873835974798885805325959766405556251002389434032972519011809604740983028757167830449815034011145053859149820709043460284871296826621159223500311610453583277537407718154000665662729675865162979691980057491949102951363879149196819769136079293241103338777115720370558324779869074150995007277003159309020732357375513691763184365744212390166782688659303562387347716736175830360864200851012691139763816240655971376427028212052458704395375706156877253064631774261869709226073941941824107121356883802095585049334130994945238015795861081723005727430932643249810963382507240098642935904527741278105947650913145736498121083567716802151026577589108520260549521229143606822599000253682363123569691034103977727495246333486521539766211747934121305756999483003975838682976199958852289515768471765606519061280623370361842802865405535889341547071536424750655893177965118599180330038812280582183323943878193130952924611166784389488296463418559179392664241179382390383672728569398122634057651978895807662913183470883640506722310200767864541892297652318751442456487031580829486186371280344190331840094406903989152535004971674467186140915203194474295443635643952794235164705724354345028715657152397117249883557633783751812263879042493001238551984711016653551201789547474008917584801825589926503445784566080110495587118815867999142892552452813145901370349675753885924649815863213885508377089751424004348106309832431088996341617529809106154570872546561452926798164706315219663211223467856915708631700828155477538898253611360317229935008226270298046332512703707486030163892376527786786223093721306292833135539715479605815877756167190788096791619372871239634965028757511425816025655409297079958712939366490373665830672965777235992404851042721213255418049691142742672782552282622912995566025398048941230363280532124640482915203829698699701574200171894354576409670221865144435929044726000697126080215015781634408280190571054869622430879571679553647253100180700230814787155555851614764174469452563198355808389869599888560446405286894606081142211238707500936153139390222456002684042940279191182260625977585110658996719389841797886396759269356894793749079299901532553721023433204198548569581402150913288347893726615119074270062808340955782257752745122855316160671953967137962378895993028201292219672638456744689890989073665002307434414434279812674334901253463208092554916235688199855463950695399055726691416844980223311952738233795554844245000302563092017155659664590856658366243673334943454037997007193809478797247087718120073740381301682073736125659470752952433079237677803486842856478582753825616138275600479243633995150548116665306048725812445788505470571311165942957226652548857331007088060685214921843484766100959823858828233874991716711238678973856776417214546481126968182065348353698207795121266495644245226915657844048095376728424865059968379067000901099068483434816152257062194221389245854793175269772789819231240384871757189429183609784738759854751786553845339336400660910021367761383143920243824468739634514815702733986480138280611001593878867215205526233682078609088489686611190730912531010719252878444397872012656847693021018705197030802075108534081290136164081955806517427882583138920080838612750194516021737577500519140042374500814871433391734496818346397013107713974137685439359184176142935985553658914497251004637220939939289197478394609374960265607976406974580636323711164574092265853286216991690019648615087894960600751399158017185726642630919849764301823080844314306548496117938784452680356369081692913860865750023511210529390640092500305098017594202414783232466929475069019279613180543390910813518733671362877770636913664343540635756187230307422365653494211642617751460609559860248188203914428544358479919565965220167397010172351098334931090145197546559752436582022295160694414113194539932344889209564188643615299946770280826985717841357728159280641592642621258199889307643037860609254227361587328785313981474668997434011528224747969616367256168961632558012324432235938792566314780687046288093699396389144126514545049240337654621448685950285373053473538718589090813966340942618710414002219666202801730113414575721080743342396103825370766457220076609215588771414208206907683799946208558634286762265102626747377001544844408552305418525367823633303967581054182852197036284150175146226145097681645297090891544568477454403722333617977609403989455233426267118983420753033222790222991589021451735361579525474947715450509646698228823397349981010121322089441169733210697701085477147386064735569736672658017216649865106166679834966133319119217409226522012464269234429959851177223882916284316111618303105948912994906928028358702464129640084538163754485363490508751540449219938519584121293711383385643554327494277108062333878041761188379625814708087709219133143008062534355530705036918105084272552720289301256985776314187908647896068263516811674464268855728654712174253396877262754834409644599066166634784347404072792583469655774688338393917137420960420727438708167923536956884747558979825894950888980717145069898411807132231626779310523157185632900877685959366212149619485965107482579056390702986284128941736180059548658890174288910092687502794291842627383016381860325417340902848732600937402066706699391632059257910259698855230881352123985579063050579044226997909857197129027448388408629958158313953525776051370909195772830283234990038432681183647364268334013679584761106744120564949981908214824783221993685437689071697321301043413486462973608388947483233970677506091262007340705700251520896430929827949617573814234958608870512494265945319831025984088266784623123089802114970186156220836745833646428741926698731360517524901622585281983808101615625273527928971093838439046632171240460418315098347161353591226900390565959158422818645500115868402967213655520043416854598431823316223832692099969665508802249145459217915656866629478979033180294464884254332997076237027420754926899254182861527628806560751401659201621302474513200344659796306408236480235632657772642304823546977897899970029417999094777097497530077011291569651103467909737785848965843397878311170182247895647066328692893507333544125151314541542657544402164775579499315580518624275110728028556076131927836233670699323207182571352196765596241663573532598106852878778413965085938255766846041628959384530704195826433203625262368436188218091131230925699556312975632884405660315787940120636159431130064368541364610269988926259089051160786103732668142692598406241323710147625106786984183980794585530600160627751242277036147900613270200743029628441671644229163759551666206141643129871048601556533360496216308447457176065198810284974630257488284548054071509105369963738990983974102639734982112341406669452423158201390345691167075249580223984977279537736254678242654133610797142150929993338250529419012486471702647006438855542731572721877497120778359606143183735008943626400143012972813427572549196764402977814582678170229642231603747299690711053608925032685005819569786452681140417759103959043388590939207282235652831023513763278586841181135902812963089350530765529785495707790138825307872313775988593459625409768882132785835214915054971378895606542024456043013514181278175613956132731727831491578345473815169336077655364480652491031553356775124939277749245026518904850173571434549822544535637371761704794258505936927201028948021026976649463096831461768117750003372678295435918145664662611971571396785542906360460681610257519229968743863196928866772834730686907590993364410369541312646978738033725661095123584326117400931250116093406598531557658760133139583962968280950069793122705708549703816727474985980657792624588779693474419938637496171380928788499668491438560282442942397118393733219458214773490400076740422075903876175965744991161294003254579204928766513539024455821311627961857287117876930992792785598026495061046143476544858948963755414815303773047896991228841220259630977794950041933688134382140584877802445485760433225798271297085056632998844542084894116125796437584124154564916912906890076555787808724602423430050199990246619993084041463079550368287615030819970752522765467287916303232123002335243410393677164282381229469791879028562519216212601852393696930058911924484905095100561545407239695810324584385244154370030681589283867863836063816201441103284890472827264237123655507949260128463034835331251045555396090148100589522612710917685389076922363691918917818673977338385216791325389966462147676032798677731689232333854254910213554219084064672214094553799465234285762122555443365878706813008166025410237742325619156573779145232749371435526724966631315592718265056986389649521925923769719960908425275155818799950381713532392689979344511035044847187658659790608915805419065643926399365864424885054990908368944040857292926306301181607756424555339824023400688377194566832487288073799080100930046601179888975821751404778010521937187863756821732574362655952488641081000497677885393689134331955873295323066631213193205798980087858347794525889014748892335111421078099138309637096281350733068358639974800098618915039401600098828509609819640401570715834399353538687979118793011949633065378912975225923313247674755779862191835494358682987460742245283419424581587355483518878917750817227576864018067774141080319089892832189689564605136963556808252457691384106629590850314427334343822449078190702477964085558353295225509707429276671023243750686251577910925576909220274644420510688666319269690538743026542363673335181051193829555569011726060207588874401171835328520698615147686190822828712638293347279368766061094253488966489697983488439518897000094503387416736514372999430010355961028949417109513183135182121681475241303933398549242739248813600028921956307515159650528472255120700472395582671432614086160901735466795003461959790255937844498291108082413300707273436568546123207709446267223192193441876513332395787149202852813161147694938270850595151899311054988938718304537916417865487115921549329281231952301611456643959695853312428554586850135576993319119936000610411073537948751823757007561698337942064899286004133544383493853300866928907652337591017457877908918946253969447598633908975700881444519576131023905974150496555317397902023330067317107881417592254116957575818144972224742337432165454303766957206581104102208852825645073836976256878114869789432317664432384320988781633632069250275474249175690016144396773455250934830318787518032182361591054816634354305907549259658709533816328762270905827073546530110438369599262095882529061405580035316354585006848826943381924569195447703807147812358383378914246686508547007581829940527817415408508318821167911967899545685591253919409184426249103481648711240343841498290923899311136500434342258443072845527278930944486361017558066336581675139454112903995068660002066089205915440476798053813511351891436552423072121464619428373529329086296718442675012544173219284738186229811135383596032030590577005458539504938963512198870784414515546205331133206400464899786450713865480728782958728278055883158659926796102543002794712383414986789210591070678842951597975022735714410514872332512007967040254061899049855206067465862798710229170977398832516965876127358773043095257493087302837474576914488098469585310842599711861684771516789789382872031172996645297021373128612374733964653534477360817750714444411421000149182859704918771557792938619483175922680628065310850755731267953446538202187259893306615572282264679117462006860361698599627003348340226396645986707235810492768205588196542250792485951379188365362569121179838045743475344168926121906590201448821843866868973060321058846420095686254511928016565816582353836771778877986595529936412772870450505739801970645943755353562932492008838263342370870032395519329456646286371944366135489750745325923345432544730802114865558165773411124667915380026563462355769285318361877106171740885967597939514172651356060865210032400391640712033680358507349502258823264109402962338216819500344580330738252289015111791730464060776665336681764505833373578257885107271376216982379673970943840783879677447218392834223409346557821214878310707887536483713484695591966406454139933340696485754518088531490412339348323545777506396911470662767559223649643681599874420094904111937084894808895962659485771847232882033695764116423330644299640284025343363441690514585842459119323594197084367717903144724949358448554908057584836242603250519630033322056651827202156951221576219520999258999013104667476464943048699807551955271591798020544570995293310632772294041655601265764110470570260173567307064170305481109030848201403766647681069984396569300491302665474901254334585147030556916781065384304812829395386195453852041047422346476035000761719895575545310301353022251106075322931064389094024272647106638627447624835822007350368864672791439427895974731357797622540118172056231957412346614018685065969665916379602186146841068901909617550810144844164486986963599479271718977673657162995240784475608163296732823160736551920825679695444141171609167411588726168979902123871999095379223724376502946969976515145212751586716597388264209336256346447130103395106906088315334542948649385148241328745636499938608827566375347430609117195727985531617735628311048828556577895577268360754003152734004047011875649621542188112988506534005593722932686074811472010674101255861065991149803331210595156692537726696230967493023898466770810203083907102483284755030900408950234127314566133746710743324593042628074602671932356438989013724981664133999946071148642988644657961861644654754059592714605708512605247007438423209623891162691313507110182472774708361181691186644068394549958249138017017115195033518261332065835770369557597738703359633513620754492982321434758066727351945151881924194944937310501306069118174699104494685680204766080887387026778741625143937055757233929786532390539690314074226979769558238677430129459841313492848061104502940887398834974210034955514300091445543223714273040911847130482889712535075329960556247807614107425117290853039439080882582655948184063546894536214188675109718124223808691382664840282878888818228331856979212157428819846469336420662893979782006932194523686021322117789916360565439336089495941864834060089031391647264040316666608339731676057712859426451701705420358230973646245192783409139468110547035106604087857797807103118490527285484629498888936302685020998871209050376724910168256302587849732410622625733379661997863793690187422759171158357977973006880005449537540479997920574012278030639989471090800190035368179114040595883563777160869000669223371770750892898749353955208144105669962010132201749054899204946725224695939628885213855376317595119872478744545169428205246710237257614269640021701163850421488238538534636787496745274711876969763004892658834291469544622418184107859712234908891638980201294966024866702505579897451557364474424027136823161918137156309319735462322085569528191748975934871699496652784488398029220330039478426778483846537045292958318780429718135452930058957981790895159493353450252726726830099301961816015382628356221022371693269344983830627475043763262843567096791763576794527857762593455947454087657641988363776969680691777595372953882174818011108628158078796638159402182949227354413729630501826261010724441171802865357872339323719482763787226817419525160949714058247804562820991069591806489020971010306887957557755794691402568996401297906876817319939306179337323467456028705277568007257246710334774421383694264428024375832479014035247182434849393220177567817173372103985761770913771313741794446644694535829599107121020421294888951018428376670491004147317871565065826354687770971761501876682124446289271583748516750654069031975405319456396437966110982225826478430609920096313373352744310786880124861203466667396212025280755341515943936469633200281164112614598752345090416028204152261820352681387294935895878804033057693709094255830100425437624180851987015328028396583054415373962340035355662186768560962349407293693066044886620553538341563956829810446899097718368273421656761486760620321736701946632790903451842335693700424965981027433376969752607631197400591415912276925471679844998681546212190421929018222422876066298433086314223681076563413372414151721162086858608889840225841101121748663884898430718930986577126485188871063311891220064788605760888558206979550108159172399668979080992017945613489483380035164235030825153761219801542215401167817947044288935615177489698659307174407974542204495240934328905029066107286011119818400822743006338310284658016331340244921240442071047172464184114396146932006011872481890911489779824902167555439884281976843411069952732944506700006402063814293352773969388117441471616925354805471691792981262822446723552996108633614154936404336026299964680774713272053588582699748277021610473461345487230696246844084868639330487442759391874372108026384812657041772589050564173725291582791463166611011425889954490414790964490622537452568381805595321951180181153875596620918973105647770460645941425424942084075482224652014649790590447935381957820098013919407070427680876440090570687945126263183388561801367359627447804505257016712433144819796384740534880324708578463495294369202778333097673335457204014755072552922841085102705318766549342877294510961486821351680253433419837779403032901372811337900006826863507637742471740165272792817459600485001545905859871881307136757106284746095447438661209925175710100441975060111548215874359244824900571240917663554683086606256962439198827225782568619546746643330317143455678626741531017640876055973155383333516864184647644359710898464107450775730208629175294383834675002687744992355508418431945518638736828983209141941846967104611830570389237378636410559969255356971144045138440921080948217693621198708571417071292945335956698381759326200863147800324690823375704047255822654460142849337235349371344870289838172364150960635679118213504030366760208696473056356791736296396622058044705121529516957225897232234023760408321254110668781630147836447541939902534119129722276406547034416677015642785423026221118885303865558887869177212016143340351951089922716597850796533272309860336843404958427525922917950083783516435693828187000253130070801837515386795161936599471439525108419462290831939695483693569635927095626717198855486289124089486601547800134134528837434706007894659138515308009592184332867054380026315515160137871010527585251505879379000754534641200831521290295716060710958069517531626942369095864088862065822673473544731563087103874616558360364009245980581162367744169100436022182683025630449907667471368129425438118949099330592619809343661517765376436915261338284420050607970302922166177987464780542491952638284021972046221203333448816490409344660799273882467012721778237809205572438567458922910939024851567669831650520467417848820800692988846378709742490668314008535242724164380486272872410193344143943754269795372150574749387407760214814725529826398035634962544411584042282780030800664905941555992484020411188724245782235551605456079360065562943913207665140524379312220252333733497951302893443970652590709699999420236104678822233695992520901692580163897974389123501462548037774678987419979438119149679769475978272590686841628590745019691640793407052818203121554243276098050401251827379802902257518003225434760483121813992629875001621663634311114619640208322239160193236065670247122211735293019213827514227924700672127176986743194681788762709080329029806476773708774537407226430249789556251744542663962814292724631992713040744575829896745459152849625855486823185328220365530535528410735380049518976185124027277486054204382322465674688784270064352191349388522248552147369060982522390738898248479039430665916729366916083305486879742357522330087149827346969122179998571938920430019438570266205683733250486845675120382424329926869963215078620138681739006277978095804553604784238462157033995854942225197496416055203705548702182590248289431551247035684335976379075799281589365066381911989986543808624487016466839532572055509497870759747887929857865134515503815677454804786407977043174503837599305682452712310486932371396148553514664368675532567963263989839199951510245600892559601839682574801511214348016106829321866514400848908622480971319815587744104334849276721223349674054786808982112615851818428185346998045451777114900130150172946663419930086707630136978645143604782169908169460624528297618469125630748725234799004197042182943624440515998928113183782512060398730371219553419294078830367587199605307862696825449164870367771915599406340415658651570272013567544611903476953063428580208597301666628128548210552456312265665007598590786394914381574496260727972450339809931945943361655822160406010687968682903786749940817263505497389986211668553745353655950441752504106651827158236782303372642835291116197338629362615980115791324571232992218394236936321378009300400681896606539382845726952214709406153736710386216924615737695989641637012060513951068287161586225823635409443369325624159198469847312139880651319807160293230779136961625601073052180053712273178760661930011418130005676346214307154329446107270666293803704017470777697606134182640852641602142709924293467965490817150617849726475704436408119225363329310977149646991899255785855496993283522474515081606030858577372905998042148711822859737380155489157467662044011145782526760041986442824924480211949781091870935829304565092282621038208094597633863648916412478809441080457993855526464213018198187738423417380581079839878361055341705533631142718572169727736068922287928028064239100124801076456551836956688274486065176983857987824090635444578909343182224823898667922488848282055564109188732670209066366134217241232471492689766178615013389542768722493266291060351691841917391515832398081470883176893534114296840202705164239592140407653270946277380811033012860041180580871818152213077458106826738606859419283742157828826129325511438969613574109390553325932257189737139983075863720110236122090441419420259729091016930144971076922649959902996420079262015837652321195617163385664497188293507780269355469345615088902004227059635999751286358845877615486660847319293028115303804123200227434501466487154368762578899038220762067922342475530838019219145010914318845793482677027380837987135009541494882506898231512160676071613225899709104371517986385759212128712350746880591875284502713783218491292446685045369514086167598937441065287596267576722753491434961296124873542716736697292087531023260650874923975018628564088018629652273078343535057857051942054563220587479389015316176333119199223937312994318300550761929044357207134115987459017220514782853768690240854070020380090656857653645696456642108977506990076532637583336275270142672653792576125144831542419818583174107880461423416370139000043191297171606297757042598970968676636219365465018245986016784961597821493937146179453273502367799869896373465208952153765741563836990757382963951729089338684396597287010754511208256136740651713293469647293531783528113014386690219448278800134347479155584899541095581318876559969360595658207189659082744046984190537251333884477673239545406891021341633997966002975036376923418346434734234627825048774014137519393469890958853807657392045352070197927747787541489996453309362866650466630278619107179437021747540285093456153751500449308008629269581210954637302901860742818176109011024907833078535373847065421893639841210138043534609993907587183230917864122579099549730165569854804053382418046658600659986442203046826835206945554963191089401273215380162198215003254667926283642084369440548756017711724012397381280640308023400947376754609363407889233597990919350059904231780482548385651085260704783603659073498493537196913387840396455465307912547195275965894975557014864651691007969016666666370840053556096463379301296502040965847749818821932110925672517467239887840419742277960754637113445086270613264158055536773298645628436462032368501555852707345418618393492770158841776274158362802326350138986670004536981483928080531334188405940043438816984941216518098644096091492813864697497934329395506103807145326510328049588492480872833841455858715090334389237120396168713715768491286229662802064515996539452141223878492388968575364363029097468499583502766963446249779214433003892791377414738733966465067310830365042720629390295725378646506951533904652339896206405177321457136670735047444526472960499561917459697254264832512004924736697381550645321179057192020972562573811459564329358783617555593062947229779025699624898652933923722415311187006362829514985887883068559935493349783076901231485747851319965788368449854160740244845034167430651470980388020334333147342073140534181492765292857204404932759677625176259635380056663297234647708439674327000455514118264529168671377201138439841006974901983124995687055523817255471345380903783455220852801090862990844603732549117364374615438785990556442600558609189538408866249996551065898788006051242954161837050330076178932924081232784294818789092536809558654410710229316200952533427727338045770668020911730117566963998938714558774661049604401296551201494775392766209815113890240729789388126255722192589302195315507790309457877738469639978098806066742503723064881789737990400244357055262711564846238755143225397023001805809788772439851951033212658786452902193080548147854537310653079853239112921949568379061279156266678012617264715496503598777110642955466345778303422877212073923192892954051610510751530923127274313433482049539902973506826091663848420009523370763234547730262328155617867862730754469645822094018809155127153666194222181053428301184316176804125104103734552261907346862817729888263757910649565516331070241887159235898769815936690547724227550313304447311329945410485485959404664439735519336217097201619243056945490657392872115868697221217544160145602146596206974470852600228065715092566158099445993629096407344703799017473687414516657663521119060039932148881961971010539122294149222173247538982511207799181548578784300202549979070342973496842720305143474862122367225941872550776250151378027209713131709067837894972198615139154055361258006945622755602946418215917353302797471201183775221148408634895791908057785099946548584803232002243780494323624414533516281333136469494264014694874972229428267498792856639239405854664600064880040015038092147099903576365619201894043661351422250704710871894057803418552580993827316750133375764373064314541973719385763889503435304099358048487720155774577599093272422972275205018964525750622592328569774073992669489697898860717274563578869587265756979015770558004455244630591933459277725827833226847598870262482100835255372119251317831767742499845754477801553094907868424425039389323126388502266474094205818451060078973783446636706164852785215059968650719104761748055065221684765570754811179480684021249905176284356937278973949621106338028628252770333241672368975724110053318830617318487001016358378340899035981839323337614138374390989124477654638135043921877586115255729139152295713694137002405233927761195420869314234498761719542486057672976458531212589775908020732715065767161863704668235060485600086012093540420447026740372641745414452165001902084286817577503942654891179072375933516375105096340331626576460801876537131089316131324506392804640168792375516441917188140219175821136371867511510903019247992207041373998639702676539078432609415858048826525326010176786306920870344497139768430362664676382888730473603538107465549503099213898963218298538371071346011449541927487523110386734953222604327451915591143718735291259534958246514066869386048666258693184593688566977776407044177474262072559593285854308255176761746423333261238008074055614904213389559517148202255902823077351042965446993175311568446906583994414757057988220248082247892294303609428025741560211424132479604227754521617954110264012447636838388712035297786658947280848543729859941772329049698773681556767956581841203037271191486622520794525584673019315148201010981782024717651327585144295542450814902665102755110107573377923907636162675692414446914417147849585891058061703057979382823948262816631763565399603761898422680232418844781810461108536082043761848261735235059102184342410270001250649665449360477226994557139170035421034349249112843900373052490830885711990948470130544755318782804971003121436473242221992844375996770479750063314521631054036379411276632970217990268740051859258200406007864090436608679217218652419366178267150562243960146321392056789602122557091088302533461247255436616187155915654200064347065289628535097906660189726410293098734356607049051452352795140415834637286130801890547308831284069472491063677376496142388435954514488064244832895784463751646926503959440589489099960205237069827187189202556874801920103945507530906292643880303016590883747909924089038585396308787521119925503205848750515849321915674106549975413587212025219422704454317699635559872017920015586474129054766063678881673932292493622259188565686807547561873686663213118576507121142387602654871767353617684776740470592087369491133593332966186984690286572526202068331123425216710231155104329843936987488677000234401292069587143619925300580678628093997106852749902188825884561152658572251166117296500811194933265900607022817992268182270610359578605044741578372447046196799048292093247076227981570181221599800878486481771297425042910870889761945213208921985445988073178129450994744412373890258421037790623536424557755896157915806120681753102667091963484066195729766418141181202552957017589586114382941527917232632071328095657984668335930450438440367624563511580408927660394634062749590288843582608822479162207831318654540152361675150857978250553901978455485120132997849395598947007719152763449492003378081431107946223545005164102703046952122422832185632609622512580506508080900904522288661064007636577344777075696192173754044313905260396315393593399657528464587024730354444488403982968943982512293126399551060452980068527151816937814325257468725613028258870347977298412299803407815464668712245059876402817634219217457453353629715003133824172681351038181512057183881349225367028370278106495317403543158164844862820083434592242030439364285060344848327707551723229352384375345168469496417104998410686561640249006083881278264106057357287988231165570898445650467098864109347193991970348636530100003619176912989752956733624698725607416979503101561582398595117517401551309885388328157647775276929018529392499588022458904720815539745715080972724522469447845738466559166236577390484849945918737148084451347784985262341963412148288481569455422842996559678354933875995146734315747737235688813119048636481750273825620733795410022367239971405978780902374956142156327320134357443685530392705253995747501596025708417905954713366184767636612306169670959817475675355884479402684219726729251518810120229694647127523623128515654041738358067625293302941629592512729652117617719860663059731241825571330806776605470709790365971955023062317508881780362301106086960836237132754132685462832569347341564507983142143321667144973027490128073088535359849325773361015688755039200843233766375285142271494771645772208259011345572667676215378460117749041804706902296792554673549286465558803167091767042013721285516042703530986878899676388466533916365611284916107566539671708875328499756602907619369725681969699063633368376873383767517018837356821652512104244331618720318302980144448061871835401226901753665997211970057970798434028247388092662821895662595718340715911334097655222038977141259295888115181270699919575444845076363048530577485687548687852883119101076064635016158022271538811922968792088570095638960631331542270927411408303123573861176238973489798703406652563662229181895997525491164651139577294458693819533624086934874536382206331013223142742182987877018413852613852226381142606411912976711154510422355946477693571484916540226037362718810578181953701601284462006851857552699776542296212605689828566490502643184050599833918884401842585848176284772520678264672780944787590589806988019857118764052166729570164069606362112024554204778266016899698543229031218117560624583446865749548083174137688238955499847692466111877457875690918856612019987959509424757978522781965805768910535073631608689882278791506805416644536361455423206589509600001220359538750549954736993323686142065197487848091156520414332980734958120661123763492015284790631062295712985986203628831872750392472343514006895890457603608785580725238530322475769890836030249373816804503149463268907963056103715310131971975484621405237033902151425721627114802816038350991737298914122051519381162341706374455289509523032176262189892539642443953747367159581956220112208935304465766477257455855948987504058139064022695016734971109507822303263652980830094109345491068801643850331517846252005320421231305540688006983500233395341120582319959416469126902311988185571157059350026058495716483628181085937524785826696594111283390780887496824715075160497212200549339093312822768740417686298344340624830598227674698258914877336878142321734285150039590898508319052652153313535036899386845749053907929686986646611721777895029364140358330662174468089989307426286873813681359810732527266633257634653550787973097508545789883642073052273532013905511934937525290118378990670247180596580069590492320597946779187234617076066851083962459980314473895881264194394420075755678035087540647991223273333335592720059796419123675894445729240753198526868477832077769268373195652656352121179177550821326963646423706647872184907047863956303696696297103341070315735303384451627868492453482514904970131927340479731970208033151461148675236177034494385035782135442992326227358511229699097006598225826059183285818664935252500267696232268895906193439780532649727429219172200281236616050767129809124205090555457616000302180010058903119596034236144767336817661217973758835856996288028105688524598793181295826739908044656674726674144334287761598269047284957283292481360087058420248855194095050159069156377477309657640214132249587192761258199936633213512645363232411243572647886867706072752926009593850150665514050140510435831055467090119473901722138127603614030780400744930202582220892302261129828677759811763503167536520955120956277867766106038456651930490665334208532873427275989710816617190569006786680844708002162687312548526598778410600511879755273757321218118712954508105379907685492193663592419032045473601076289686480146324133693235982054700777054590184627510110187053025629136737298853855249915024416866870486353620698225556721876922343740324031166496134093446590001459382682941039607099712800412348102374321018485472232878323107754346801360513252440679556136276793091806940495396499155046565827910381414657012890039287975717583418805784546511792051718402703898045725810345217905614440414511463629696136432938919888522834757211666657230691538705624326241116747217555020703087510601417975029949622195223824135524759948631823983288420879521858999803282533981239976549452046756272972533864199828217512954149359354568424344031745672144032741682807462621940468539575521299701613057131982662776070821110431532791257243048531246448572663894539784127021337920000413779136661747086813298882560718538480184783095483636156771001004063688019827982074209422325836434770750592424215878158104212616647709863744782534465822940014085394795059437495318613068008681099825290183309552367547290381622082934179157078361532213132490914212506819458762126627516586187950374789783585975581804894470576509476407647927859648942173664869635950865668797943227913382180743028582845237017672495851625197698582831945054155541295864593481849582510164738350169768715269639581693315044027681531974922076885345823748361259854819704655085716999160384114457586542572014231446460678653293664475558118003031888940930550123997775729787291088662310996753673578436231356694397196794965176332827464962609572626500759197901661705078377870308698641929300354907738043392037220203384190340270809957311084704831126562653639448093688223580467713869552743872176790436624822479974953955427097993255698903308737295009498631866947174516976171257374283975950544482984468578853706367818179279420740436395896890914449589730088851956723584511626958324454128946523360136684800762324191256067634625762929369526575315470382860607129489098255914479394384740842169993802524640617342289677949768454753451329369993108465043190353747474633512869722761593950963365239485685466272590250427799783986810631382005051693995474376977111915521588417304143709941786354846019515995534345865698451575035278299975526643024419263738746645673457854326311380620189600690524019419593680090584163603545249994377597777576258152840155686023943296517950596412231471717713009723550045132113498085149161861207931456025904893923086858336500807401279315490453335376605762992549059947616973585516981113281666264777792444704580907252424913203843173322437437468366481473318271206227763955072291250482071422974341143118396766888227290523360461885915028747683934232000315221444172594966212547207796067349733166856939502166892315565769843167142874883694685570573856699066408125184106082500488637248526210928480033669507357861929429219892591700958885419158421107194005130543103468349657851790522499544355822358821374997700935307795779234167490171498591521686404636536491300174363977971086116086515736999273502455366888374752565923227163294874704685916919007420256824018980559624328301576836942538451408672292530101716824699262151608729580322259812246032449442305609432968382196247983984729315896529684729160664103098562227885997662584306049983045570607809166976844592014030973022730136873197805664690610628678830073926301875703967958038469978023749063041568869338375858594635270414852654373162547825135000262334428686217648001659769460058025329919368289488613258554245307314855747448952770364392622410009593623233663614173279216004815887024485237607259252433213196147170550766605363751105393037901852895254392598234673822917717140919595360110224930451429276212559394608256321265487166611683591356261488910806877762349613195188991175847929116716897519006415165284354046026989582553747905006020608502312384694090281929469988695235350951791620437627478533039377135889556082099769269613140747003041403019343010142373458165748313359923276998470942276739786144274239735857999968603155711764040601499721215582853659139316567069720737199140566120310260887113569838858635318914068166832645899077557260080983809329964920112506889376111472284206773577363606001558758708557181070422871150251933563045058664221973915157871699919546643919973200632025664023301774781328138969679281495293322179057120499168512779672306560364103827757882940882766234862834563725475673004458373356162056849040169389993309010607476164816155202827856122119073370011530464689365390168829676801814247741974991281890571173591032167660307181680545472297765561771035291190359505063913699168075462313742548128549386159688764422443225385269614728373567929387309669823075821099347701412864713613504082264564610062982461610393791990862763875985092308245894807975549872656203624742890709297497878265327021223245203614874155160651511391158305409100719138322134046950090539528995315874307948846193167549640667062668072119149866212108702137369630942642376392123608802344729757625122057332434489961052523322059749178438160575861242121792734385399307341169093511872305665310001130908951842065892834191582603069317081204171866638767814171940159567536577920478456539347536721390686496264361736048704658062791101133770486872658679180376536946484399004047354438201019237013440893607876578957329518238993481320146982112425572024242115009670272035764971617239872504478756699799974130131890408610561635888916386183046095303317778710721567931030215492973738880605562617781859824837186036785794255937098406297403183692357835534591403386315506067879181873185269342547024241836237342030238626601642893397432511234587816119230717579958149155330225720084144202605211567711933843933860044480795098147183387479408055376631689722888606411006976445755363733996387259451156650225646164566774871028270864471847808259716655328789721653109581466711913948697213569182508663397093808460134660603579285228231454343684862432414459052970502829776719546361654417164401297978596777309846940030206961189148700097996286891077581768870070533913469947997700976454991755800683003401459449745342260808232839687654928895755657236787264691729976672864530399044985926062596383371659234119059036193731242536197628563900123582986240449035792013351582148395961693083453950004386418596416776259844513392026520930766226390775711071586471496764202294367080258050452886348298220689958957586099662969217035539350898723143767754192002174004465917925427848249340639489393066144752882510841987832767299239210806536119360005512121616365132364805605327043001530836732424111568073839196916043982192746529453009461338960641208782546778518186425017865941785867983491857678910314102270412734249440187986970016419687873642324316079488514550440403448009899723173177060884897077149928474544765264667143260161306302743104074742964428850869661911767377258543750668607819589045888540987617567473397922667801620984129205712568995980241150436389521278167456336390744254160777366149075743718992994936032127147332895011574645066374479733820444887675176111978049552747857931044656052505661449925422785494588081525892709068429290796627875120669602828558346400128353191033409245293704979576983853573350150688220936220835595432489711727001182295663128272143480626260100396048330619634388692759779594752449438041853112430863486397229522639087849659008085007240263135430703582963573081639096955660059948802203067123450472482170529788212660587832395172751848197200804733630739510386691455630496071759922879207741047773608956472389646436881933949089616250912243271737539100116109680121763014448119349141084904917061663038717118574155853414574390881689414178404338999663826878792568593584451328854212731472101482586792413562403801572484662417384424417347339848954742134777862541019968496732105554912055187400887052990297404166187442012365000815103595261219299812414067764206927555236990936232559815416218977689789382373167780476291152842341965214483440451771063336172555264111513042197995868455780063134932627525107506790908948605940662531150944933584176395881190889746411299397976504907145513615721013959389182665162868536567692716298662064636823653140392614953692005198607283060893873027594322034287756975453589418109300195418645326928083083985321037286572316479596295267269604107861156591034138421109609777292887768248392731424529338063359079639478990404311242295661458560485430312977417062035855099100370018496424568609424782260363058153687407278952062750622943081743897902012639841977612228694235119821191232212132083601483823317951551679617991203317000246950134832138093925769674889474860325741649336989088663138522716693054894083375385932026689069662960941512035143786277250181387420835133965496743727408155872869317135622783721715002298778394002162597719919232683375153895371396146858691446119274161762580174179807135333128781229912870689029174884172840690947140268888155001652548956063063728525238650563900443519604828179619899239037081987821466424242814977391705011394690798277340211890033236021135774616723761196346916689628059820745812517191750174309221415981594193139343285623341359649200410170128718796934303943678493799289767088895987900816227756993105748978546927861517309547908107278198086068259355816362487426644722077231409568983821244929686260247709065201052976905638004988076079928430386467325491413900131122286216265879753823732849841197104563150120749740707197255611276748002348001756420339259147009660106067289050364628427483047845472812390487857291665187358040639481341487067817402735793629683024723486236330081220655481741388316645110386920300663195959627723110032138135601164143686898458555505336524310064880756720801561055870057019676599390466724499330614282063564619698747880939630718176666173655479740595191681916002019490447392164319138630384692149365182381288068077623848295078111373850961289796765918199116220584165351305878748268316945909267922093886418252804836960345261401163008044977290445314101057943569515478080425987149207029596283756467691545930845915503418127723920037186739927844133585184303603006769030008995916327028572130422998946738549490023831928781481287340587909002940256143099933518004483651578462434995591645390398528662289312586042888565038186782571380183358801080953587705000113162698731520670971940109093994640700241511013271409589934042407315461526822641936070560792384493784394977745840099699293590190793113245317912038618626125506282129377531292196274438397177614999000812596695482635713878855256921739579926214823099066341476957464512193884182642931121681722531951922194473862094459905176269377936380704317938965179122505768017994792282133394243330720629679236692761553687099950786344916318948755911688456286221143827232312026935331281552465550742472535369781777771943641445805163208810299706314717703502079996358746287086696521296628086095505917592965448627559618478184673214586508797972527932106011001114730033137745053618851496534232348227797783681333640194099739700431453311083949572238396918963799667668954910594225473811162275511508163373789874564480096890004606561623279423678042992387239865091249858690398393508955899647329529405864325209858793902255887214272573262276403458834983604102805990315203584202555894561011092005442080923248109421002196961243120553128153694325972733011797417896705716932163157631178611926962130321508967285121566383864845954485973456159369139049264190524479663564920088711511505287313069132394714967487416196041899782709490344944197450871098657907227753773367501322083560288946126190063687540852184105197809175014043014524553721354174441149406284268552493046545272222946822977708517908378153498296501220414235120261264697149383046052951415162899976770304310736219418648857830169403509506134676028125463684776601255521131451760233829448289542535055576871658500579617684091306310154725140222237906749523420187479207773455200811511778681341975123369254657573327762041105538582870168584849492770932223649203209534735295741659504972967458318301376591615256841283424608299903097664083309478026949961981603182676506636226915135286298179541504072177973219581115228359709081094423579643333038515472664870847600664215326905055291305854229665405397481986763362643184284273486482968168422838702424356867355869156907621250791093830688331764855914434510548211905782879791641519601977464392502280039048185598553326242048710963161012006609879547149687457118683908045265860849291614408913733834741142909698915096605757627649759071867745424487331689186553198204159940087006542022868141031353093313641529123266217711119612195250122327768045251009182476850992441177775380980629856332903919579930798410782380862909935977020588301663948196652680402771537093392177128933718493191667861440385839629678740419222508687222509645316800910641950253265977587659519071833506421053823985350606915158920431855578374416563728450868673466775716775154413608808688581803222283517892068961240032378573337214352402900133904516451528514267938392363765495214701166147913651903043636318731499211294865050835587097407312132897919819019580952184885961322638021097906330044759154599720320847589008886280158727394097209363798337644086584329282765388773456485686093346096043295868747292999334036036606386458613809326200227978086883128569575836514134213666036973372741807460117720896371230451589990820560425837657515251036167226822472751777185908258924167602989169909952726619002401456150375621296947505577724398919521112729189838478922396041800708625996882480308746330731664933889545248076412451389302892008104284059945322156652953080162993239489439782865432706170581340964792044275865823508313974556099663784224990146768857686708012352806511598939059331741507511686558759796857402799804558916016869693841758857790483186300327201589205137996546781423096560340221273433388896002473399417279373492169345451222055888952703967436975937994092802579210753883644133119180320700050618769083469793455319803394323429767985908226365021844137338671510432344945285543645898163101067646534881151423707355996182003479675786626194915869138442075431758591229179082844507961273188143201501605258277891977015986081006364295851947551737704319412571265025840098814112587743992663265916898984998249656574037130609858268557544022840848597499178215010205197973680063891468201779293925230987146666279946096584356667295314542207407130599526359266473885008837746509687846730842702200374060798003678375462460438157866373335044702952110417689650977867428137831813819573859550044533817724382427516850737931158183621712449384948259079156315298207812099540114015141141526486404567490312766995007221394507006001513928671343063077196971708693491338430504235008189725017093035499327597188130840779508029506117482285773622434961541613845338911088828867857563241131741031476843048165603742110366529089993963467262569450503148813994626070464714374351788418343519478527343491371358208403909514877585264524855424284795549045739647346307300342636032864384784467837895055606058212834448361658204973122914780906130131643790814623769537976649004142191386343500886229165163586858887112091781154831098873148921455856461603069914577988155022637761045856977385552986566599356174013405814756712336530441298449335831003633191123945205638847809230833415941722383530372432794308763724447680478629612487875915571946668426415185286857400667667666755580007659656856849211529135663742237989596579000074792504017242752600190513307454620315449612209794101096226285835433060436802837093465645467835154138138854975096107565522415112085715668906036068210573371232335836929513198531491173659052100238396897177041794353089702917462349358588480862541461961740980912095852966332548472317774216008710619286471662490982963854445030634032082016565827367032410403471375845306996238289557362814836570334954200145711112933697657466584656489663705431581530158639919451464920935879923119327745126066871978916780409741722737746649254414342299973359253575469392684079150030913513415351623925487342885611948748238933542219350075005534432958292199353216075048227025318780325964024324762220749406109288807492320790427527526044713631001608315616498215529819332263931685715960345020850063536094706232646101523892380066563828471899076085022435955518295086771838388350216843723012616489966028172838514725408216279444979682890384289743376698999816162889025576665209138184447996806637423179926933811361400603172552331412648048654043973675602128600404765304830823293703092453772581077473336731398986673416883033679220264396128373861463545598885100847965980125609462280023399167680562854855590125798437566540159009485346518182775708121008027159422647296150853259011309319294578100810570900372785094551237786039187615969436965383771015975896165057623690261819630305495286092692434238919331659730555801579998938065313221603045263060944460859175355768410031224073917423417215507254296211881234735704527650602183680908135802532915429699821970543199787938218203588163986616247524046878064371723507613093313409851678060184689727183828147506171390537694892243611549135292086391389531819124084557536949657259679990500551821269459219273239543059128495229754532131297833120649911993913187948813424327012392488643767424466078230820409990412214294693864003211846751267592185023512349401618699210323729615720660148771664541932338211709704157530914081505364425489518078030402172774307102839957768099918329484571840998645785949773119598044031456824431970580138883120818886269090361782440873254737094455966860129400326051299637594551953390575747459881046763428571529742008693641447756160665862193010856669137398046507298384075480544011327046685462292102215868717403184451570826714395454790486236251663231274360825240282200030200572411528536492715130493092485615602662407206458515164328290799393817041871277129484678209480559177713256114159718583451654067557683696695102133797583556994811601340351683548962271431595747461718391103646744506048687399906342745134227025131998551010108884031449509667377707360549173105648612945295100726825463238880706269362193503097335335774855853607267569104881835421961370680070338031082899067052195690471673694902183302941014753731543185982045889745294155443269149018858467626619913040096229405718550487229769657009603362299833920507359729163134280900171232961692898443373970023717017175406387661198456533888208807730926043653983916892187541065526283630832177804086722187726458414337131456697898520340544358496593904031336903891028891615464641896521325953764547506407117757845656249826376357942414852588867702307838134502146391221606076327647186803718419457495388225425225016142006431421709822462598559730351579198059794337500762178404608015029128842382184188027186785712356688780003750514040706473345688394711489031785063785235014334913095783349323560532339095070911965337467784446041168105807084673653954870117785798633150021708005768480755675681865917030187970579617786442629429379020933223284136745587145975180389071534676626575148294065620958101204844981884824994263897435548201918816022373734309907692882174514840608199988975045981831852767329090922513622122425885186247191632463314148112753648740789183485880723373031662467877915825587646030940249273721243387282829083851125290275694449059529409051009378913961589984236799361259311298695687366907815120817495435711093162493817308134489941742091562079747458310693911414025175439785303057499583107142763236900959144250471900047058726081202167860561548318986357383550666683939753825105723833070502146674258971481385366996977815634318153426007210823683214440236631920228818914362904682513035840384052115279006013242672534205703295379973676606553181789243722128200767311195922201760944978261803298154399503625284377562259991037575211492816651519160371121530013138205049692728068101656429220292817156059705245980611142591091713537599192027510732918727369328264618013962125973107791772111880812233732587747765988895546543150081193163558176166092197852271463805693547215334197169415473271233311507049001659755592906167201887568800701720278196082274268213521535523905889477633648364257726542542620594386833431341307895980304944082331656221854662428535442298902526262986583928137213849740982043250577705553210911342447896614033894981221726829591452083718573731252349342648457622532243124742486046513197275969065255081909687493098302650911057773913961167777830106628468038046205882520563178112632919576858499082177235938691481110403052145027534788942578645090697054163372659101077144969596475818283598686568486031346349812290258795883452234581636049394189829691783677766417120780720769177346744868473026887426132200386770509705198931029457000081925617006737210214772377563463542163178646874108264266393181083791844123700820591894073239085368604178436006932805392261170702740055456233402359675777115802837991467934005906229404978323477683362729316866278267683054698200827021477439355408501872397660829833964703478287373304757447411714949628284458960906645572637101377498432725306269033013339074446475135323921671130553554525259333271790200946225868856943380430557724969260838278085044407633269734057804171255561809784302006314440188976285831045394179941322963903393397505740478013120321456344308540719190038574018511079332977858745911359509363885187556877102567155834650950407337838325377433484661550267148482775357257237283656463064143017559728627192576777932294004463545563262874776998939354333368328327575929611668817758072017133452897220758385461723325794313232535676171027790965710179989897368770861967938481464757648902206164892519909631698674438452202315938616948020376464718421465805947760419521419092791451488172340892532256600945212454570008661619901564315482077937719979412155202754528335942476826860752494364904432365979762601772813897268062923644600814316080323798333876465406010279606243698335976121618104240178978107453249235189877212614686300287882527808791371632262783230926168331014531323760148434087702856601585520428142005147372891623199268601728124313916757175347017801344211880693067867093108610580565679946722728836427437132720457425836961689510536413760279875479895904119111159415625474890448413794324616563153746411492805933401415949477806757331539456587864859248648529474944668331352168776725242408324230820045116370328072993056728501392317001709320446920161308886681783752034764218949382502867970712502414015928639391722392488787179129230694112458010823899030699987022825663115282700808301918321484412656957100183388800481737407316737352898392138360911131934207595323690011281465989094302524006099662581643016612150615144235636530198693017624424180832186744974263430026292855232324301843341659391660162512022448157929587624070708974637001856693078124422137316490885798154379847279205524186490139106552580811565186257009587000040688019428245669309765022957365490098197400067799699724251859138602519119276795829534093126728772640378822241733201255766812101039882354646104347328535192391061591419871050960183487971813487728793957011809992540930508007173960913467007110742477797645706452066309785541795160233523559359996566031950876095576234802515821453308320339968590410081276718104202831943823625545812778840934489136357917500195613244109115148138464706301524135585442412917253895357180745945989714344261778524719323964067320849406588568592124025541756085736210413409036018532952924780568913575314324279430770076455293056369431739159410801292343928858616357628722266592992830046031964755995547664371945168446157832004544546900457930311657032676570349217738781321442570247316767456527566308168801348597977552147693257044497174747170064132090123845455905022223166039352186824356601291491461713271214811029906994346692635651728566008129182046308188828878635278739691604132561944670859683022878229898059475404098968840303523826670626039108135665770509229988126522922231584964359744765088591807869946630856014704900599920547305930706145019721498286262101627488446830611850488816384185890735789005758204529419966603831597934664006228914178608087436680399487315271336843042105757026312190114995979462869572387763475746583293114880692530531943300468351589992177919159336964191362033004728119462995991669887960619257962872452749245246628775943571262569285288693799010413759284627006780860950544668607704691500266886390314308096786442827450671863118316571461574495771560710251082700064533657595897467656553095678912805029530893595122070509747039925290780326209192911337461527890189326343510683479172464517529769296713168866934298145899112013132433447208464401746787554871942479880981941004254343280653968775292271828496499189260739686454302066017699085444806276848991744820117751357234621284382782913550023809239421906869963422455315567320778127708687634191307856824071299141351851819662282588154130921927981301116737792986476550304029038095312880730095132866752040342017589323839838988488460550644137219278887721548470560717193202357771149028680324862327947209829716697660656668486148408384879869032001769737145897590180956096670369368478087226051082028939891708984332506296101160570128872438543979200062699418806941669737557398752339845728470652770321767568798008500731044189404020879329341278587910482898564268701254378068035426797964283653914306829995666046188219643768045378587361322682405137000835291647874053156603099688297154429547189929203457244183258501436172197415050520173070652414157875082201122757519171360582132294298662040343795563259167093610379567202319004496346012537048976301952030238062049018267532065158960093542283643871463291545052542960124803447183175295755791743356810346356460344911964463923310572991869343861598958462130338409641185623231705525524548763182089664031298570245053750608519685444722719746412509317968296509986000279913007248542721923113236547780466424130183657669311519881346457269597095144773714495240656064969405838594898595586881942851288125354692790114792329351553736703679605638653423406352353046475210596480670139164906944307033976715397027271901817419101211057338612575876121190572141484478811283275509966356035832414199907042612112449861548548672911626919333861954838361146458731210616846069257617779989338755132204776690685198240786130584066960123846645067643185456178714657711515383999253163300695888345528636696114249907066840114998969153802153484074655953187044040280012536543946843532692113078788496328871829663761695114252948275916346480933391621213393036788428986112490282749363211521180644457748851425946238483902495118487897135669854233503020433353263528975473810053925545159505015524511833771622299422872835078706691567629280957286159548922342636649589506243519674708588732152872818714496716294367515271179740944298194587753311883368929854582836483613002721778373202987901730207558564296339361709462752564967911947657541109411769401154131162252490319510009799662540040578114172990198162247031345515779937673875729534587123839333254302596776781306312859891383492257272193008882643466137300915092519803066333269895964371514089325003649899696664346750083892999432969524518453344332368193129047928248606864933322685354149220875163421390093668176234351949931861437604400816799764915392859412713035810214603142657934716074048147878886192326350680814404634595728458780630734189783917337390303225864268597833215453664378497396304290874317121735010772080277134884037702214085301153861162369961505867487055517296873348889502736851686003612743032721972086216011830057622931388091220111000697715612943858477977720736693795410748826527610347901178711079330158200816471104587615621830470068790760468036497953114038494313210410568195468061843542082431239458464272723330999594897999083876109544628671569321247122762115247262887315326681511252191602416222000016867815018566665267242753089414607061684065148124775590025403264051323719487411350065184832011856828700401987565025888908797951779585467297378254560283292385728706344336765605406905855411022609935990620806751746581296829559234847083194867581440853140983980117681984745542490957608920699042969087839057844993673100072206819910403578230592300115707430367955852001707899607115518765152770577232438839631182192890099637231133085626460192504841115690033337674414625362285782531990080779510550963336406820616389846625589591828808248931893803316701241147069035330611529338698306936006905456011800531110942795218009569654523850266750835349631078645991884489888016349198944607139314296746920738764805217801821186208818297645709101382413617013264634808006267311165656220902340540062750301901127365224788600418127573784802224598457860210296063719006961105066119698740524967852985151005586755006794615675559847063221660379279299256563038318856472140460486354656114518860469572864244401188847168949279633145282098393791128993970916059899737591412353188645550667943653160176545979184282550730981966265667673602203680923870930155083681193397171272610865705549597693811624438734879483211933011467422442677367724146105137840977102580788405504310337149127591332143928001602768900060010819244738970754741980746345080250709363837848826956883912815991788819295764723249038454034265240037401692596837949042359003718901282885927611560716650233363024620127945370751252225946452648115733547994547343259451093129882073606848556598165216119317121696083854837085489587111938266974165278268074374696424400928388331542937809673084065291218696629411351628804692068111580851096360200018258307771100551988647338064561507646730109923052284750327107623245221341924203773182737945106202718624373173885383165530632793754652963645006044182463656427454886798942446297606041901592642509660696569876418009741321518119120953894540508412927563064349505771782165951095415857521504262072117197448907628718178060189091876444088713470546049767087496438319232490575084882051079625174124919348205567579556494678846455613450622749475443833204670661050111122730355753929219133876518924942332067383846536475753853261148474408499831387406612931626149231681859738211777498104238662082989642135664995185236050302494010110001463029522191722494890494077663379958608086542512388342615543514038698486447383864307488093144870159654552569839438747129591576388073340534531919152689429839171062569539301395617056246229264659979956691192295875215435380752326682065037719485044245558791130087636261197288478527203783315141276966123304919274983627923617290019662792140029915627526072893968612427681001460264000257109023837541662094689973383428310793858650208559922295560004011192140310135349809822497802949086108174910124810379197032101406833309314103975062585177470803188222195584733888225938253270908896573772655487150393437071145687619430159453915877694090811051239440802054463960106509985018313868413917417893355544873232971295115716573355225769997427379808801167344073851957667972323645071962293687060950427032609886013994592350553443912138610572085208290898038484528218772863889189439730768134523831473836376747021625665034429564808562960679987929410876859480748887643887014693326074143660387840012648953357952129513876270529039232654074544761824373437801770358436105675140309665166642722474805442432868374384933217088683311171463537099912858685124036083870761241120660173997470180858398557123216233503670085373775376213924749501456153102981272017217720315294943238816695104707677018432617816469004831945643261630912043436371560899700685088282352169108036503762307018952973736528775843537157090640670013274900924512851568782115796977777931297889592437403000168701532521545637996698096362459127711800668536861206599415328075534905916612896527564897068214868824196259563641685924174534538781121056699242962251885211299362283123975167969576649885153906224265321849561518167916658841992721070971188075741541950004458570724931908371340672300809969775658423133703894332986548884205895648234425590249328599642399017807069253239019486753698005322243414610763937833133815702114452367411299990148928072911016910922006077859099268854875543398543119567985628092227177711142194384383409329425221840826394992353830659232206556989718593482328753870804695494278599549018147909851594901047189146453534881359386962644112249592263359435697951308665623546036459639194158022815965182831344775956595660120615453773469161148789112116277045741087082001452087450688705133822377231874178451861238830879405666584311455731158738134096515017964772807533982303798178704444595892154997045346517290459197558112411592262513651817796199128021058829377916154104117609936657827966077864200795584271532566034534860344729527942602952837653873236874932448991053784326875088199440413339455073499316802167006076076226554897075906881049339169387919055991279064429935243440974329485910574086222454340611061313259431246974559659889133482427100656938615364495237793449998747784951404526346245280857539725789244129060522248308923581904670629986837361603540686738662610270361149662818061693475020021826009840797739971425770811753594557259509590129159432905940649832455789623774958084987293662295339462128113881179415142577997512353556849427828047738167550338862302872597710356919782113536151102916407964476362243145365290700202609924188847243049016065651843743729931108078062317233023853234753376428116136297314370508085993789294149836094908668235236225501171708502759429270226952580804310142382776639932192776198122190963757181401201768960675173997818264248256556019061928577545722747148537063157197018353249697086019876679735549555980159013589255222176211529629561729097353970771440446491829347235613546464885442204058912879853242739854149178204035871632062560173086460536435862403691947495517889980438304672086931720930402595761623671793932543992327321321712961022421086504676588855553861855143224020827017247161455062621871286458709716161988833793083410438136965336477202809418380938847071535267463924972830532526341079734713765189327703344173516801089068618310951073651968849013787565546015751939913875265720668767298688916184201186803326635406343003482088406427543123997217921848491332227075540812199979224492832927125049776543305725148713036919375620274098160594756733997963127814220586496278163305606265879993628635631319138462540740671932877624474263084521469543357376308334698375941898962967583088330733927761245903955373064468479745088161172516750057638134420302649721884642451230427346614757257774786023003931272703729134263220980902218279049480305383648944357353480475984284492459239992780280144539396742426685974907839335932054887591989153150410966059729160727536802732673637834538161759786059699361748904592659165054992446142039837005940601908511328901545223978794377931371374071311599248778402794788772270464715918237555646970751067545545235498181842462784572146604853068693101490850139446784728405405906301525731691691663636058998967016316313844391374231083289696385241976717621707769826818942606051324274789735551295509255396230992805047301907466618239452716111217824240984820722482353966478729644978860132742570053098575230495154832842818654528293546077987325711281419447627692363371158730145606191287702138995874333618148034109986460831573205588422645446855147121836688277317633493949135157145938728838833175674562221825473031088598717797151768963144377098906131207793723295663041313665305776702448436479193892081502670836341790615306435183558810805798613676592896804731263210557959950764896505311303183465308131835907814826892391889115085429738804840003026685116035018485055514537350526379423694992491372430997098673819317438926808650982448798310115443774531160247823080362856601896711345392882592433044133513412105907918506384051438778990436603343007578887762414780519194671959835957484069200664683648059836511095394163644875474243589016969503352450096806964381818084574654371098728407349377622988229243535504774412485808901995672446980991023140214189244535525223864680534175951125944231118197696792324491030169125389077618772136878356070885231757898965249159045342451091376535421080618286721504806141233410827938792682259306150006802319220182903711544740648328311748850509160423922264630286308750904848399908957320186487199283529867742317573855531095088535851924789261712764941772431325549062284311620045189535963749587599470922480096280348826621301967550176432351003744151393537445343256135208353032546295250365147460872259307294186233542637733150729034046573360382436973109031948464041842668860959351930344453791749069913435631205470798093176664658417555639523274081708007198578809108747226339730738007273326011244955686885389173639552946434572059611226918157143260654647191613171685400189762149617012508142406449782561499668038103247926786469882853777588890435701457257703918592074124034937139964124214592634986832610490025660488643894645177619088949412847359047165791583830094608640491904581924486781419172739967692587975137688885237183570663232567191800008588993959048920831606633469157541531670845050354607583262781613311032420536108446789556464255560730969919387947926745940672873483423541365043068077808069676189823394888550120224788015803348946409351844547203465050819608082864815202355516907361719067604071477444596223741032217700404361967073845397219501324582620676446886380709162960391469536900223015920344568136576017166659882744753076060188515487365872278929034888824214351981295697104396901834077615855048159736296845971691031098623855585799426272512088937155243920174827264670879093776772903980822122002888366925802576071283931977555280755794158780029186259972150339625980719140881097811627587902097299232867623543121007319340664981983463714675040706640188625954947188952943499346713593988184984408044966889778167866051450071381693983261873981798062057982499361564094322833388563946866631965376519029509501527716278754211532537012663007423879491599145878935191307479163022609706929281048205943540941545557969467137798899959257202723076121005252644842475907224793273801758056740030693053284484599087602631686345776511336653015724276924118816170362668151278438944526866044531168903469811285224406879926852095323024581747808824184253446917086859334897713141791729784405136751761449158504733318857747377750843746016568234535202447846262114379677363665027660375375871305453692849600300133142848194418012459481843887312084835409470317502353106574985788440102405908712105708585489102411358837517555368184858796560225425719558714073542865115397089230099671824034497716208719395574319581937439897637522076472651390133755913360760601027078613702437700716195714273350549046502817099936985421464110181197154109599166967547828684013892552974894181983677751776972883149880989349682204150277462401324482769029914248078279194965829988753798308770287711350612374302920335467830637829304332205954800095354004935835692382365830396298030084882297607117859885984264170798305976482710429394740773933285783551668293530301475633604469418340020546120757154202700433613475216910304185010258405272708480575256208685747829735856465470706565970218167048251808105383790529971282404969160015510847498261758223439766753743169005213606523277395224009926427206942970594864942846635632855162122017075196985302492024604753255990774410154461022459215678771480767619385650102659783080139959858856606685936453722983381860171799662259285549865865825130379014390178897401314828314203106378770525328831791619184918471642901221170615348363277145271842466561367696194764981654413107566086815486568620713946694772121794121399913981865685612463632325218297210492977132822052957388383617451699305072080017893975679031747827208506195113190714917047251798506557480215972098895346217183075588886646551101159570316798560771331559141926163691386791070697677541292988217535286992770159770240688998968027400248351117636303413804538065084646898782218687732840844400010246210359889046123946026075704114480712165211821695927054920213395319396208548207846711127600229511148185152069598535768290401781631353302806973253846595983969918672030507149370263561293890964579990641704060438221353433888922783987988740462724993545190689756899200569039942799882533638833756338139076178543091873997594949456457581470875096382806119442530250020429050297100431354908969630685985155509840674706503698714102970376535595578946896086935111274803948573700648685609513912496076352673864073238141834802732531773029608013097905417840383821933979586689653193654181991240121017593003403653831972563718700586645364860820409751487802941242573550085912933462365372600774663878206272905735252191274860196054878824237660370259728316308149492962995923442771199222467592404857651662626008801485132565321397637966917122519755207159332591295539604696262513087789833916411059681107508754267420942990250916871108760456549827744241282893979542209930108083000194131709954163867537518666745174762175636760832110261421790172373427711576859425227060756288766008122525024905683348540790328869556367830840391108755016028579603659324427616622031453393523214016692574549475402289522796380072233762573580111389013977086332062278629448446919083172235161088238056845945901999034098201784287198661240804092461873262070971275976012583758880032793010390369516724601541665094596482072195242260128823728160534809212192506308021908045803989732495710805646655096106693263790947936407306634605055951998621098592189652614375919036740124556684873789510747282024370760993532820158394893676103638769847507424417844644107083339417411680713689476793358530220516386958371110180012792927979568809535139227163084452711335912897666618337899396136427246575897123970375951863394650749843740102867869311735340344565012649517208082726627123183207240494436377132224733756810742634865356352662804618287303969203842609107515128803945963832148403856279114222126390282417987728918261166060864571865879514033962999211975688069257867857101179554494440769020361353584551778427896088066761878853990194519119023743046591265779789412054268991096465715034226340819678259527272583510005621979694570936860332483095166612574876327684014475488552989402746773286862840513188611880853797399882292514724220642672628745591618047249776867720436154456307662334484718742814014471834432112474116363547652592469955456303738726723074928930618840399667553472008439084846849354871298462516904229677410152271588931664061931494147761191996783095920290108700465032299525383186954474894787064620414198062846252108921847762424767922848138721863451696762248140241428261922744045694396056748823692527822443767040449014327261936316798737253662474987093105540994554182533213550547906835647772886852409015317923874876820820510114969640375268270818292254686980228962975625577151639286550402538870272622952783544720818985096626226215059046071074426413240475388747094079880576494222007623076535815639768748523664417897242836899586384896891034060691223857346342330141416802357723892830429980326196856153760730712274603903574157860124735389254350233788788842140473218222814648568662894382381533761986521667158986744548447160601436031753676989402532501368624496387779124689024494593729966459720347780456387201070723970275267762829814781256850902887648588634094124210288150633431192649066510077857935419209084571041248946124050334880001860152570873424812673937321688237147010621352067837329458845713416035380040202449256765210160223752580514333429989806618483413828514675186419272805396755651411951017669513599351187264140276063379603865773290914148850816465119570910524264534066204860508042887188150958087445193577256108960245192049886261329572156406370590307573687601646831706897605258836527797346520073049115174646695553689553347987874582701729415133569046611152412813897361932717535241016519705664728604344782131180188236742201675208691803680501536210107229736273963807020928842378250820018841781564663218144492367652913524356913533457424282833107335355655518800907751066152097323277667150818213023481792596040367876807543376794234539572157835024531538674368418823082833679838770731771838478956080773795806992279404640321654893708382574942887491485980123152058827278179252725630840598218340082623990028449673821214886723525723872034678557552460934748760778682424810484714479500581233323204449129849619760958876090676501957853542011493145737287545482965193242893028289461465962762942734157290168523326335701635092321302906820187748782597591611065361485684421078933383859333571556885458984555760093226298689356255440409712250468225445047433372208606774736321318391187453964236478363733242555606781490408241432677255883777029321448316262774756638787914756820367427185153409640437411895091826744416703997744394571348636394725555066939261863703344608985007515105216365893421767232839558640936241140256460606672104739566802875427426295142181847102319205434294351050918024906389423312069423326124961813659563117164966300549206307191276568783990705125292683146389832934326692865705799371037814228904960065344833509465286758260390365876859524141392904353179165947700336088940975491723817936641605355677553340597103904174882505589714831419044946291105349892397334395013033760764435554727845737496886870219604311655358475505163377450670409054860929850264120833437601413382168226580156400941839151115460337498854216392341573345123225867691698256118926845316839203253147513964712098609687817525160508793964313606040885148363993714672416509067441120715755468852933606128076617176110217208601883205405228311196009027521046769501884737735055259333293144321450225493602279688843184486790326717889391608096866454152702591375605377611552180557777941534488467159899740672960802845975373046585084802720870486383930134138934616626677386975150802385924445669032036894811738222496217400508010894291221627804113497290904869924555029211650735228117548533896785182203348412728838588310913357028163407645421896515962840877264435197258400357143625043044646750878213783799866718428321547931653334947328010303985833251172592256019826753999554288547050782500606947079755919658789639722710724560565051747143256523551862656233412466797603925868436851596959653437471804460881647663820285034042931309861996956600323364256073591338126328909523668097625979860695617722220066611789820009900582356607159001607908840686669491034540033713136379122035940050274120430125535970775964850064429728525968742555881155167880649190389003908033663618917759654796399819432013329704273554757415655801349030974538166421537490755594128988046532564388709043793805002725898949229842328694863323757281267056022663019643879703538166572838688554447423214877003658391956695287350041215794898137308989994020324032896581198681053599342166553636801184830061942973368153080705093719775781012057784289451986575349184886085189715975415244354673143261929603358606355802407120989957578355621082676014430536685401342220518564180038220111625243051136222401680746069688438485874483942467299546678015645175324714674710069103064722516147700771675913443423869089836918225771141715194784976403473800551438015304714759863428746899099283135058779288441730564962516419508124120642822337737828850061562855007817819276393521584794027239982161556087912686641070267854015563454648356639110206354246467323919490151598906034954650120380212699017315196469040486462389518690228911685390653253617721778753865106372072395637192527938112264023597470880844116509638843090346651807446387159468649166983985789033673758296842952655559542227749776702094588729831427180329033379505913799192066840183943579875172091766088730458942993934097721906800624412846734162963886836020508150957968324081351557983382828752045020774642468924146765081306748745533762243448559203191724545592056539359730711404418470313710431798584067911196391772846896001717964072849617959417220396700166075925057575908593650096968198575416804718903931126545930878852414100184009874260758461729371379595396731462802362443483520102202651631165938296808473212234973485914287314943730735897023556366927686497243501261717946729241182033439015932272489462791937836138341705707024726340569255261769742950058752754546236190939368318285722409907752192724108636837997164616571104998101954687527196666227526970918848103127483687878549495590288281402526191820324925075676092775079311684275244235043041976518442307131955130452766118795083996066003733175305368182553379099132335413750313208555996744442695537844439099224153583157246617184904688018306588043799528156141807354491653207635353577643399310638999461434975523279723427597201129322321972962851927936102501707679203177297940833327941667230909312124250761655347079193672605851469260429266455004180269196841800128362827398568513347205284657666288479688261319487020588612757545160344852690324861431453317361314534310935175742756528037802706326143183466605928246499443975277270830892476706730118144493717212624666177264571756361749092110647999719456324488085419145146054651580925008345271674806693916078617324105206984537508726735795384544551622054472409309477108737465435070169296759161618676763601363613937530833652932573796746850620108356776526313624068618345670140608135043774131354731341254546783626870063273943186784004590376438450553763603193620359686712383493566377312568497291558285968258490343241545995250164779581200329314114019280642466090983141480286144181485806500097261095934241531543435158152734914807657679205008866587369877883752452734527546663514666468182422883789946493066344486715390723387611439610746077686330984689729959267478979167499688257595153348010421589710729898985293716423512076453789481285001794655099125658091878211115798506370333326346565576060328593105590951821127304233229608985863494764036304957154139363153485486475243930093100467280041664074485661738900167830657062108052739878796177747234410609542856278465766266100681544146926850711715675166701761146588817819900501065397467683324443625702369908634746246222171527469228261383308488330887573345772306902385391108297915083972530572393089374032902962919942061016901090361004714426664268057598747662996277465326439100115514803848310739155327915287149898785064198028496073577292398476089370296170235484089994866149719893043386571907869376977406943630285956469832562614550604516577643550369932849305173405790956904780697706890384188751972604248233673763841434602272984250813533556910633188545186549068605224793952303156610247962983840939371935807012442564809939716652674673226172466361842118532089138840104683435002721497612324572458868159275777006942543503072282398939674184585183320082725848126599111273936609897529872074472887384392849563416530376820110208803656579171597186740793911185567336432006785081554394807342792325275724489256360633365715228109477230321058213775444687477176216020170158580759415794138472052754835270622425757264057041958624581640173114518973312589597518533662732935097402537591333435062841634256615235662623793803091619201490641869146816921386662779314362087634760257435019963679709162009329359271204890046026468050557236274683684947477592491486269607323300137043258607970868836994243361031313003172517428945140214833667450628164888447592463557775251863718416563765823881841527393639914118173533349574737520032188477248381663796789098794650961545792195234037306411330039789333390717999460568035661984567548903599282195513142266559222712942058953756855427898394093413647940844360601288396796337522596780166062054318058495753242758484879151607593373178369102391303932094470349557430847273577837677522792307479703208404442322008977836062404296308889324739755722578314955303868670208983417169430289622742275809419933163075869842844773175807333121585649905221851913315272274684125547208546468517159104310833520027626476413114072737082883581405768923533380477540922976707490099705753528810359033366057531543703460163170617465838844984304171469220830196555663327765558949654878585888036276694519172190377458970442119321780821463268146898443967208047155811945046824762813045968850467754459210592579224633721909790241374441941520565886564549934854946379217953407860810498498831313115230729646152802446448442301475334138946257315851667483120352211758661994145230412866400091481473592112414733591889109983650449842597565814937246670827564628505509791526929822523868325733232819123226821848440735021338970143371115911009587450105902820727711129084586090733803376396136620685328509689257239108610392497010337524570748312925969460179835237034523552578986200701833850307974921665044491979619060993952926121464984277418009851204588390793864874005305441400145084365801301866940390021637753606928959215788673407950288537382549431929191369103462735119208942824568723492922559562752625848008960619676037487157996978083704627147401571637305556428714362655842054976565937309810688188573230144398305988467486140397598562577941904664618017742972814564489691587426211557503359733852178816703059610021758484971920412095376184097842027852442034385657622032458547861720311932156690984859008961629460896697335756791180650809308143204012313870869406454368093571214608255902443378339944898658005258613509182545626278864817326180890868573765870578016510821564144227176544354003004254024143660062730395085952962886619691473310170042534557624733414977102316753856629740627350375453699140323658027859319060491969860699847256053147193948484987923934395333819470027030574870977160804034326616407658453807070407004254487084265757024858729730226705775086071923443520132745360000199930589315933483915690524223623163292765259704787891669936929922181059522975563711343837155590084878432018772792624272937404965900230749765754807569546091015566333827822868114574167334204910716814919311719721985691067646663215329607684675812474964913130980669072166282390856747350830315412560229589772947928805263404397605891275246170229632690217818741225950330761898137003633653140020542968460617215134706998119467292443811326518474317777729497279896594556619455880260835067998415913778451105621036817552508449757548205378406376154696784329306500372286917706029099991896779676728874027065725124926506565269744405246319960689477759224582062197833250479147994418494579411370217523576705742536127506763828671148363991160146931916455350842274575338651971102005623678783739515590254595927695232607692557721094783166303690490546800137658246838971258749602349618633524744469771538561141175622502062086429036540636312497526915356290282554891507549248995983483710388875696524138979806481293480069942128036159665676124079856597469880188549096754529098428831130235427550045671301680888448075905848674480612980136778368039148146823326535140311098860224177744053399077204286146262631820732368234500076533773029909022274601051778473711032769267509763114473654631065747381584803297543385174846027292443445175702129023279371762438145288936286215399729216490859651730595581917718453324075313149865384294901045170201152546762873426322144819381320986265152572691249645802209314210695737620161772964047228418061833794765947587341427243205637812964230436328322046379397874626911904471127305586951393541482580175203025495929091724247696564938514091307745644420653406806111899973807226005404573464704264004348707979565410424229401124564058907740457703855179552966471701193681488238083886812782781479645622937642084287830038021436750420783821056647425947119099914882737303334060403234786890134719360403648749186404927064328045538261593386110785935291234895121381738651638111069060023236781746600160697913712397501710040447564757417506765582834745666391880079018758254862056012911876083955057729171285970930983106841308750510331606865684084406328992475256605999672639280660964697801223954218012578142748739319023727677440683464119463436525578450269658573497996546995418675296689530333147695904357840157090969721052393994503499798589722842425860805671721375910746232151619355795637339408336858264982850671620442310685703749311685263785935066272644593852979030352275313244956676287149356730819869805102900252725517450887491064540434486994008102911873067107275032565314322839099175438430709936797884344227980084642230857790959401581699831292396301406064534375983549829338349723523454010459762208509784504533855100977382114200037603040105277285111394237953485670389654942519968042401751729421668087698356939544557166509931244040142237758492395080919104135910960921081454326102282795190423102625876803916879122573004703003384875523956865441024089483620848697303678850113009330669877604758858232383762330497288243658052888691111603995246241016175959604608574123717169657523715634043017753391691182360413391885296665555620010584435842430061149669934027762680278901097603762318558975029562117464481688032652947632325538303850077211122917579826868759494190334426807910754207789585462464166238479893777845412123792038893882030924078709859212340297338264231126613246273467308789065554613394470259698193287479778725218536693971081226236873365800937287956452410377272198534867240209341752271955967209726656231855749505609565921089306080760052558091131443585800086197845024347322354261336333730148000430121106845033131688157493165597238864031916631407733274741120611409456573284601652445709585640119874521408577997474738169431315643468059616249437405338068943713926498020203126058041065206928813888271097879324538856111567950674430144322111685426868609331432561102093798865415559498902271045561488812725319505828317216264468328856189586160029604516389119563325401190356031658406343121350406714647484228045356967300401753779808013271678231171159898928647224427887398615947081230079796510854279162073959705227304939198282694147932499755961930255576355657478331026817410632518514807445573942924770837162190376195963712160512393905312497117677735072204626277662515739156748303500691808386301305382679378644281163405887926605174095258664791429799125009856673769740393595476558928647023714825964310539685608275934939566298552175434130758580895599242311906235801834351494031280028219879617379803993043289938476988693308944021306175542880653729152776283534629229431839013003755700022721519906638559288213336984222331597882610798639254958512374622273475709615043688823237736451798020374726854982812889762062845933327506203633169700632528157070726477074984427629710287456359255280698692892919050009598378042161431535294220802205219080921008422349907952016274822869316254724097040682992297956751812590013649639329801728658651900542743514749449268709607787928789073452960687561602403824008031417583098200496936632332490982745997532110025878163601487735416746691903943144138748596109929835951189927130806514452708706611371396079192772374569435723297417754138082698315464924520483041249874805438862505162232677387856650319460659782295673120784076405882653073452581441205260068485645682857211168557256246549815149601056375729064322112666024574423217093940599636350039809245558938275982378919567153609924546768491778255015498828596171880086566614832796668492674807229194915118312658435215009984491814720067167569924566312339196229567963720804886482278444402303283618595977166955166359403970664560545042463514522105052145005833778341483244404477116201800303308775607117902191149031986009857858596776543271745358315179909425900696852898406541192944756551989387987730610878924413971757878582068843601605073826895879843276993496515513061326805051566335102500055634966879192901501033357629388885349010023013553812856015115400681640087940100862459973555846368627084529621697092757917983002415735559759949795097519704956225156273591046332216511684678308438315134797178441271944742801427638317093941121446044171793064280047476848289525420680305412615410779656674323778152651256801201707755453879878367955247992274707805367349273058633259882203480389720161651249330263873890707778556932675367356315711012716814144863994103766930066033574681683994427010758202219574524071762486135435863983658346299639241032078389120067930715526202546123108332740487580696949125616521587769797958375591266650075010839876489065758072285989301568085044512668936797984618734167623127475445544890453716713878652836395192452471831136424834921721710434420907439480930606190445338780562936066151195604105850957711259990886783033564176295664878859375298565275744179200347779458609460153204605195488688680043499530641550054899071545006104446903950181054250017358500942692724250960284197785817970395707360363575318129581697061788211763084768952825851401044210887239355624100494201342624335254779743040250575098948239089388112867652878786867327884033909755366334855559651100769653916688376026366367747216682030420414598183493823331461693149806986378512965250375737116174402288379038304686600427211881336343409076191481160133402519913256943187819809263284117921919555660088886544789829492146683656951748788514036720964590569746645863701641047317349506343990416879097806381194170690089147150193100763489483781535830847734762584774534661320435248061215745965944304795474562821528039280719314169818052512259229270719073057664061731736647612554836840954180466026437715756056585933409659238758188332410628598550313558936301367593348193377278274052348560610176163557844655385139088008513679618180050372929685265924549993603837596307141464717253745454328777734572840591066364102373429890490081715060052919748659457330864198192376625968648986947234946972723969243817656690286395466581535962858935520246951746010576024495735642865227177356959622670570699283102142413214561893492065056634775246939420018384442183726546377235075040361378451257072288404726515554566021601624201117020111894697531373153909076423132733214935802527690575617907369220052146578795419307851471751097111904829469816754690891902524778701699392000006507484167180987759426610576028620828223068223621572729353319642006337601039225341863810343509692082802699821514952850803549403944033389819454244288754511051768412629547703797624931375510435270983834026774742885298863112396327652649422251445613574798799863075546274262952576188732731063932954733619332441078876549747264933331418657252336945070703200060422031008644190969684287944457215348088846458124475007311884221946425734500104397811881646478749822925501181000812239092421554420284092359722067896279974003094946742143647054496629338706185141493845678930396302192811001782190644265973011409634950232929676855021678353198398473550540980333437289756156871056413752827316208911621491800173731831509470817184490735031133115952247622998750972598768451577056095753152994075493947205507574764888395327113501950729596438788982861507086375736391794766170179973116040049208091962841507082786344999485428431256165191915672244317408800958895310101004210996407843199255766535506187678701082962563190384439175512764162358988105982812500500223227745767478905721286493795868314844073170816867496430415089063220711016491177516385915127221238208408634769828650847165242351555286054190880443637211916148785055274134110738102258029834275068171127391429407551703784373710856181091636264160987149631802811440160070646403943130182363526125954493753957685872628016342284252960698326473823833558777988429513167272472061404572350707160511042230852835220730402252182016349781307059542210484805732677669685593986499211271652559723591463224326026362120123293782641732927627629374838831619269895485630457627775951775280239722780098451689454735520506471618629743158379585879536582317946318314103448743044070752504750659093873752175662531499544349815134010456410434718645274241362505665603516866418061838841327943040923185671167860239132383739768837937103436048811274314124993842388626238077445429145609463064795871893185403500118416962154274506800984199510853091247877153344923419345628687938867322184783553291426552387827487767523077421987917346086194321283300821243892455846772959752863148620357668015372676433167232805330560370502418121652173123379204815529120022976052170130817806465626646941883881673786250638293029885613940407344818480702503505236232234953020036878894563574095330417268490148565519993839711197261313223120512722378267755425056419160955072214494325610641274702346692514561222299213140368937980639591132238976751162738541751760598312177930071073538475413497140770369048442999136457679819952206345044427931310043648211563043357382168254156589310860496012619484516301116184238055153912904850877432630405301055238503390390278021343763444460713851246188759868157247235953778736204509657526034900559153448148790568448410131851901845813322863681141735157144069243249033992775845015895107557454390229619447383408123429910758542256179666740013031968485603809617152748271608570452049253840359831363103401357645237436505350855955868339037270383554279014877396936013087433319528503637176467674242705727543359620104866019504671794185603189404421988876026127372654846738042323953628550798885785801928426290911788623282621893105993434400761784518988772312256662528924131080405338138007760960210147162513723726492308993562339475236406476022899264144580693554895569591325849646357580915308653286054431816205145179702656998470320876741132193229959885234683569351784229006231104179465346954928328808906793994645058171594958288372132028125008443753636319065906350894029562117720175623450890001844637327723359686114414340793897640093975538214291467454212426128244164346777310675116696840057684739331140938923708011325531007243348911267090558136950890465841794000252766052418155196943148253885943397608578855009610739018513193291179905909059042833388054280376592328687672850296129826261276735632999010357264828174315155111397754696678860920329740302577539063052184211321878016514843812798951105864304020062246409302731221426101976670015606463297943535620938241138794864362524325736372248669960881113700146237072584458309820257581310199678009396321707735909957880005145320852669741929554670778935993508200096734801662138377277711438098105881831798470175201106952620577143761166914694723460892031291229451574075352295922606816891625581568324826420998202657724254053588163804088089593957662177995168781512855082616987141005462532411120582194747346009357502867051122024613852835699949993095183683725547462876148850124791135581029368135147751240704300290367344866348276422740521081195230709982291594094005223724003087083823635241401413671909950708167253502220348215612074035853155005086791979259844784019552492357676945094341265732030558652175152947697482609783817222930741511536227181017984490448500193455019828171059700924388604643370854060546705471965905486594068058098849477271844762534560575967623859451100701458442110964420868468309724168221939983839920512842569451806754641828119393757077726002143900382407282785108972929239272669671084066024523257898976119656612263668847037081769270014613405723215992653449487505642264622250985322023181156712908403904954322568034016818530729086822511357442247179146031984454292025977069844955956047913926212578740999797968995964814795597315112133415858748726222685516202182451904247377561217375259701610527549772052763691015305583621568938931958464019207007973617917699703876801342608499525682099411758921432644693661958195672199435891495127536471737026366060224260161821009728848384516445544398208454379843781947037451320719343399486071120966418383199154400629702755323421573826858775203702087760087182577043448392882311283787192206701201422534515678102880169192813166809212246677832593420857627058811727953520635761632159368577879073665918600927287341299441660028953380748888360410403705991409406303405225953965947095423041401507939261686791724140531079082435296399017444076281861978347466450384184599006956708346357014922693180733704910835930177358576223297719534503745839396015295563091135200239194514592828031819256700748684556143166539904972014826259476758130785636764140104292484180500520565998786677358968943159000264105577606878988982210172426689938075661020876465577356992452649805903107349681483528401541752673295419919694235678562817286215396211777488137985217614960518160242205734242473459410792109968034827180434928913198728716414388629110620283885031704847843187329615939458705396321740693885988822422901342139866889915525831329919938661987687609147243767753450549302918923154842200561776486536907988648872547945992405003498747457165210852646283302806548480972759105642256353327200797436837948322658098939276399768852021574624402507496769146028696530679621490630036787473771698000002816784523149554955008234750996203557091091788536454801075151373064864401279590817797266207855602494746456828965428633986302349770190479598837885647279601196896775379788096584970712870506360173108870788335478192947801244103723154204101553582291800022907358417013480498027527414655652239839514333137251210723246501842753211061522511616638106578649700872430785419907839913745018163631946454239719403391244864103872498910791724568196029904114623836015873301654953991333429809180135666229105344100921094865112187258858924806498947336648218444575337984315972139648862594133502618377389626207204963731680930411160612964123994228962793246151336214155908547765613209810258044082732402384419744565071323309316430335361574413861377269607145122707025265129561177644381456529038661961398556147022268191259033425452833796441223665749547625073107244206316436056354541771168643144800427998609134261727106998246345739208716275439154442854889578036037411861532044511582101986032418948540036836552287758295794136426398146771528340644640708607686286070916999404389863354067493078833400142891639953430791009590296830181426542628991266536805231999108367536034105325238182443422760037002603638952805242833210959105860715967005160287126617606667815797972401443970400273044871458671530583985098216255284333328629515911046957740797975254466443411167703770711630778665554762493294924290790548042110416079553826066631606003900578189959033948926852696658416416145644692544686240388301121801448605133627867447848660917235162761455172135742577166757740066492860082097567523941708447831728855689041135467397278118053957651726630668298949647535526978401835447740093304460461456318605066400291561970392385394304790421200523879509001187128998876487809498570576125341003665334635871295404188365431588467126277315373229548195679223313781279890217268951226272203702326113154526994963335534801300537400136271266482292102741515479760638546097737917929796907121911510139646444343550600442317927091469732631185994727219233357604648680608648726232700153332961658020400432662649651427907329141291154548167775608245411031515063299014277132078604180733519707652669858135584677729435909464888931570643737895475159754437582912845633782074125641590295541431037712703123218499214581897961001819979863826959660118183181437466641025087523210585739300597230118784242393971969558700732698664351688727754444911510068341039840529234616327253353450038068867985546132468998558893466206705769027237305576418346790514226504541831569313721980839920558814802942371057601996524720715208551587376622905559311886417157730862586785357710733349426363635333068807988788720664588445493957518534811598063871401162709088397045451664390897822131578693314788604004154173949949928224393565424505034306309057566250984996425336421862965470902393970695788035148563977226565970809500576546268838575705492502685160985407327672035586378602047508669817101752907609244093707212123535558591641086470666256330426850791245792728596063555132689901760724016556778862117758446960569300607864064809758603217568051747510211883361541713889192582948334311210733683633363096182456683476745464514476012062001498440101363250354395001681896361663969474790324178314730022498166533067580267003730317310438336665689229307774515874469480250106579630082373322586220253534897469737589167856486954826273421083282247075700037144125778006331341396685410406728484007382380347258193031161905070683460599174703634624153237215585000082853702237553491972824714843151474476928672619430522323077026289748811388208421351990034373780244710943696474486395930028049021341882597748441185581095511077181939126079714497151334908514833948303444280354080511638749543744393340243322875057552707681859356962545587848997449947546420957699173035371054947676811752568987477023453742507426223746141461338514204496213285704644466463256609161292721577872851881838092528880181617583019108573368371480223687188790672098096963205488504090920111079161051230287853990660923438863769469503550637389116442247913177881749815735554225458700260823569334962810707668749425430266737812356663252098535441678256395748326206695530265828929174659546859802382378996643162458284276647442871254968861798474240244723900455046989138651075640998999875970655859296466769988736379611960896343417127818149447128303388429816141415328071425697382429076924832800989569054708639749356870884925534156701382281870847447956207916080283340854524345194539868746128081483103428649341987547847069476149379647574828108541649692609169626964771777205193825869401169678244849573742934927590236114866062766354564171297933894038859707609510827511530382096466947738843468031775683598933326317229345384385341391530103939739766568780821663089145195976848499173072411370542268540587379941909316326990974531085366120752789641254596219472109964078382603047373093642001165954116196444130356439749159400146117552554843646723421366652827471487802687148965285846473824360373213132109068497943439504798283292581436581419816638145495468432923636337739140535477742385062447989516343518956466438713891558066000382384135715844393565971559284789309705549871447871752518521751285332483897472439144321397912628653524982079381369481493924929582361503266812860521941359498073075900774005419776170250475429629230295808761254882281981933460280294454821112211126300634912426430357922911931760478194437536642856867610181905505006868566116833559255546066197335304690176995246167164434391437429780370458843252794909816300710250021248366127962433084780887930447554582941671494665313793677883709952054180257762057296680070144854861930639642521450982657630030771064391874597038810239424815324913251740180108700849168578522818196520831794778545968439235957659339845763461266953713346530974621829653846413944517531273316985490359375138833372426299292719288232836403019942344995492418356530279138627226131154876789349703608822075637873326153983852032192384356835937981090229163531240368328586750454519732676779065999788034978543917834310391519325512279099881353468372090429129703120282263781073084929945648370457589649026807373875192866245520939990058080451991875070644871554215268810071757111448395878621202896075212536795255655862772009678517332519551173831246234606128286672504264970068085619896663477872279931623995487502013885845085401009565454543094225866350092942593029709371507409645158318863285337765019052357769780611687616193806901856808061435848316159985288515104716513290935760350333892211063239291795349812153115436623099196575225449283156150259325027858412398240087324102139771747164150044905247185672348425630122583888264287168150877750693130576646467978643542565329323758896431756670607820727771285069481298586039320060071047754939928951462509658339902866569028169603927819529817342686684464920790657986075254420147935319964994723583870361533511208404762501438634721769410449184770335994162379294503023528169997219237245109858995071874320370676952808005284633014693311204019624299804919954060296564939994932009431629549616141096957479803176658097226427308353086497378684093957561462821008828112086882847904044914181646623328855068188878095032115656358122205637522134961275353136514691487779080189634917509147914109953406338290094420127222447234443199901983705913145870532139574717068712235820737665021313416176246953975305247666653938793553081875271313349654458064803535114982810044384835051886243449064720443405180660854650193769088670542997482308734127879217188534716872872526973853634614334291519569481589692785546997883385465743613724378124495792558687029871765787068331432622349993219343094417982188758076972984084768357419079321065003424428491620185829850483694069368206160138179329598763497356425372095466898720984644825285872260389700143305050620814864877615353388930026838084039162911098828401778125527102381305329910721875707408823662890273420989993890975017713900886731471957928543162295160260522552660779909075257836335646869525381009826540378041144402715219776456244249100774530262643835644882117363437221669096186798471279451082850487115886342173581109570469289859565285366711291896738617463995827356810870936613983601426527848937777555044806386810969192380755682333549028808869004096650816055943964614245437094168138705730576639150326900258445018943684754305880588296044205108942116331455486165459347461596964786845089276903135381543993622287996831957526414772015688927131595054462307550677987835500552586710904690865570245789513027664228347397853344072286431718551604857562129746345347116299424438443512966914953826786233932279947681177915497576761275400312196769250594568417536911116920667719346767622533581820578117359155597932966391818782832206396740101134080792504158735923730625218350144063516848978602324620968641300672378288278566046581469576996726175291891567928732484507839384237914757514661463244150066291301707797198529228631619664497183881416726496799108264243399848874824134547247695701569528130214295733468921497210220053940533621810183151932535570006261612146383102794615707031080151554117077675560246570323670560356325406211519681436547606019300005014619686590097960954881443986464622865659216468940207724804332353553990900996083785210860340565688018448189107264249818849342060664740101517682336335272346719633809561255844433617985520605215122031854226634173027619550195009426120070572987788522649605664640963225738545254179982399316170511615339526831258947279074606389619113774617207437416655126742522848543047616247625776637878628384177405733872615697850972744245453895361266551814652758917720558350610158634902116252849094509022073142963757740334486000928761302761196047222092841909591090014029352465002766174131453571478605449244967606074910477056954369858335405463205513429273068864014582999042426755808591125473747829801349025078885737149151738078760710345171128440092650878806890306806159917818565187447895492678476992496727089584511751558752243286324796213674635077769233116307924158969204054277248032634364129958786273139754379394003732627158097614872669358640078623321299600153329443026023828818938514439748961486972925522830094663375249524661938138062796284934853961484498659298631221891412408757069879637035705422614824226095744902914055914525669345424707351547995690735501207345003632740018894744095462789323876785094216971875863650655338661346779657923124478750845225361494950553785611991349387620520440359890684198465843875367661219526639835836100367216747895677085601733610232044055906530859850562628793407637924438823669521357188789131963461672558829344356868477401785281224899304135978267263005491238496855173628615548384956782967768870191025410866446250926224518519897493714847855083668003731968725333029849954357552175417444700617834153315262801404876811577142186403551790193951735795316219586726803996665741480708129416095290336447958471979250275057524688389584632971935871992472032001909849581933214816710313116972787063269676855338185413931049114650025011959288279879678348175415850917411710855426551004291845662286653237064534703458200429352584619666712061767264793225295461183362715694219321620130497844491097602463961170109539281701720770377285410874911875997873506195628114456820361291247642723845854152652452640070459314662361331489592742986460829084243018140831070438025737663876192705687485246275772292406955538495622359880406018367976934307980057503408165272570371069351719823569632604302226699319815753522583937111427571075918424271249023599199177041285249618982184980471487179505135695229603440371791978109372311055323536430620453574230569406846767153558533106999263442591737507433468370854224587913510726353181316762372118184778410944390052372490141765892987832560100828720188545652715363351870988688180548992598505703494302513701929739573613465938769102944888659651464528230931107767084698116206869038391502047973720931131002476255893798668957414518605819000292749663631070050016855897730653845965515059642657736046685302435926857079780797748052701774761869340289869613208522322805394464779748717154477310891189754738162924538004017842249804107096609434365785719771872324137423420852833851867023406423578388915931042960365532217230547033506177830059550681566675309265636448144887333562742669743557866972231546003404569780505777488248063516090656324377846422397189381625374554096828429499250674378076739730932228065444572443244570170222075969201805587559560456307093663526019469947104938515250843615346480963824946200578760754653922262807419478015361346981454691373949490009908387010603650518336962204057823921793678035628438684988249049260019352166193967690532289502047824875012564962782069164032917714211028810229591937911665036511999634655994238811825653293996618868735130656256733325052041106969255402962516672572376184707005766547193439441092562408391692070091344808809211791669128601474599196702329736881094457750619197747240630764455611063475522375594277674839696975730735010012238208464622718461069051863795667424109040263218248906446309544931316480795857556709535885912493483574851741626270637733071897292814359018116407440723760075905380057456156727775211547845871049837549652588277011157584277809512948604557739878036279805320942189241661528343116666071062315602692427566728320484168331220872528616946978057253492520660540300011757808617618573464424217738495080084903069777250809193764109543737248826951851887347318420945322339158555727029031824825092528647216928761501062040122442852404961541762008849010310463370395683159940687963614109005791548213952257070538026544174565967484338148769832803561669440890303245893202130239443688070089057176368196661986219457744650470690717142588564718466008037217970299679624728368779581833765613924829203338284246255438998553181135701977000435661272260522497162273547933546270388471945029400168680587369913302994655347483688716794053330434222605789743234693741874378634877402333275836948330384581619722986997016781322225421283346009388632763540073352684370728160585815858016432123098866969295932142453042437050172265240144878259876437689583979939470221739947958907051767100699741079812597226177983968959987513309421976430205932257565575579807592965614237302142378458119128562142918189024293922266793274973129341593252798334777871669764175283657317106993597260775288296517327688163388434080668914334044962516745234444827077320742061049772995165664853877087677233433745738862622980376780293877490268111445124342337136324140369924021900220055824227350145041061776021425656748204802515801770212654924204171379654881655988227345351051568562027479928846921795038055636810727906406478149664352619395169730330242363830146184949987813517040600058397883559247993509622468416806379132979593979330322034220514874826537349332681963020773176749186053988234218743351806300019124204670022819453230258335965853797055881919876383058709378841586744478125589579634445653096300447034693175933207487719767841864297959750878015090075879592898922675449489064952775477212250333829775340692672962328751209512297047829531084140169041561290248532133042573289978762697973184659503808380137813955231115910868214257985453135125481118535536470044503370911979224494024021063741547252567728835188957298502026796992857505360013621898158648219938135205212013350608834452866787674595531955875582467318721301144066422287849329548248331346630278929657529718204698352769056274616911326510100029546573717083406855672582717076570470554828767219674020645847914186577827597551131553198733125658699488505550274660354965868171132646327893093797966820450787199563068381661665628334232508068435879225452252457344932048951463843731264019877650687685521597026866441984286902841178622965814129674370606430792755285513533477459110231002560055098010537723409775813987355181458465408925670432690561678115742977964123128971788569261922469163055732194988908079358030834680099265245892107674204914467459940355275455896708555717497888522299640400610495741693896590489407815909775947635883279599285250858016933677409471626699757562532822656568873312019118394170846196115308822754563793647556782228822545347276798134913029904891935340437748330704937744707487778285453310576282183420751715266162589579290915851724497274176308195925841078541961759952936198047224548513423527625181811854491421010240029542371047371477621111744350937681874243814315339797842844896838142669373570873758997244364942982856765422240028911467331105027881970850235364520040167020442888020183332643024000660912882226999778044902733733359135739252234046071914020884166514100377381757576720031127930047464521533651880869972199778842015974696161536304367661843259259119225143862531226872385602932650413770214643021086401211600814140588227979429193730772537721862883794548909550194608977156675703646687681151457636255184593603459947068534034809234871860076064450635820478293226194159698997066030180583193786894070811757034561707915295246186012745118049715464681793330642392113573766524414405310800405549556450277981717742623210708610976459744696165894186417512961169431945786816474986992200637190390082559948713939868157090841446333666581584033837933561642018845838099162997464322760425903312089889394295691432494599147483498488408642634712620265275453734075456307385153143089645970289836204465129172404559600831806251691654433444841388907319683699275250386415159060656873673346235644933460223208038254052059141941001550211933602276686667550209991718656823936259565421487186464799217321246451314049050477337425690731341012777173770705481751138293716218396441800838051640923008438032028213001129488795813380267454747659609631587712124833307720586315480133275813799928866314097861862261360698732043608630351754174454021776048296657004314894783302895756348846281612296288931072578663614811647266967849619828620115856376372160471748706003304913146568924146587663218751978379338413320718617640807919375239712696841732302029833506109503596762005825599513931926469329975826881779547209792962625484069117366845838281715956950817993503830984375457894867085336252342607410472271769454233567199413828421042783926132950588336639598760929066476565138381736252212014839185790967126148429640874201875365374144777092736706957972437726665444804676859047553388183887208520362791172734984394716985664019774563879918518397933656381919652466790856165484422703426213383160413912483823705307659496021471549735949187593649128450850590890955124403832077321947535629494648483629625822236588793493108830490486861515026911250953201971314431428378675837235168142365696397079861887813748314822828973108468877714607676314929447593387760869501701877377018650359112821379348933119480184274020865008985028670213443611058150380423526493606951476132959336974404696792842194909489023568922757493298158753943993424963129251705776524232683245505331926261968991799169900019335735609716146031570251187302491959839880784300977187686347195324988149899572126069685382827815178444606593028513743726585157811764971932816613529292314614659206749700673550568797194531631141391125632369619018612425324832748707717973636621089064674752933414808429133176610267813214864961796456200476824821086151953469034727947041972936176041734041416868300100832378648443159463241402512706746435326417881048632863009122984034700498688470474271558417779584891953002197885227124243906496374375920939750839373752164711080675909021832076926968747905322803323855863530595152401971337226545974027347736445998268523817552914552843944544369773427090488565949049448257953370653886677776743552979226942282616896589857360627000780878898894780603416952368291322410593676859328979263068703099923002620288518855380340124931125738337054506846167760817466182129306822824221458218283026022153861957835640143232576889520635987212627932089793455694580073802702520472924388572027921666420132068695509036558441597923235602896327239136815031741346564523842696566023593684388897670930125632810697073066441657110507099376200135247233653550784932205005618910299503391510790263363151434623033861825728601805562410726223245331589110686469061557037769483060059261380966794352362042447154351226270069289678708654332484049288807098754455082978621321562190618534028485061851479527916070643661739776000028871277476563439328740815178095230114080611081276809708542493283267486431022524983676787470026409802927682349170596431590117413899474592996957180523197447874865062344106781543232761172197058586608992931213584069460692539510795662494213508731641914476492530985004752288278850421153890880526273966652894055961846121295951254064825072801031147839435322936351987667557896845562294697001994424936706464509260154589666097366033655546565246942019943356701044714175819133355248195376412928441030287086823452642831726441479654852169821453404813450711598520258171915003970560507522879479644110974995323800581228066372735983254050237857211063841050226684829429760431389833519112019187427826114813215043731311319446395216277076023095388458644763062732337012477939811296775364117870618541548265089273699847430153519540873156239193190114924506034123948454529915652075944881151949585045476785594997671094279822154113490124849645077953900983707849282151708201887511184286143257931536906548308705410197300831435506708452728245173218253113208245955210424357274198015621261241475386281304119017891978503846831626648745452306285337019471955186707777217661733752583191725935010133419842382405684965339243374642431610820373556682913728255395069896978020898508673209617599727057100259475893843413342841627387959450267315256552191292693068917839342519305760253544378515509784834581472348660681987519081347312799290518501552104869071906767126102266244026046364210765864303209315852214924460119201462810367406444631504720792655121666300546455513808023500605904515310520745468506300946508887274480650010198057546167290475857612423356245391949756142463052546377168300225103261812907920469927949322780124102892850815838849200785505948387468583851539380723098910605906451890606681254978420793896345743146805899881764911093913671730121708916624892355702143032087026165795957302647641434218855330980179239263047749501628595923174055044652094116561689453492743201852935558339431879133299233095108379361813894535370935497409473228450466782106869041739477818699825087847399681484077587936098579684810078234309518308227401226103906059484042521215727012792284120755284423442266190292971996781179257570349360659597732805769572654960351422434956134507858147624273832756475993383563441127010666171228333108629136861030564830523903880380123220018969046187711951597478657393881612055125282664628669170593806574346010032297509911320838808799875242419749582754013028857917710604172722992244559688243975766426121670791620105805435992284534874906983971182959802540423576704061573535807819447447589589396545054184814586829351870072425229249974401179458976867815531634220291398965646599991963975690957110600387011256363386409762603227890901906332226778743994101104647084455761607244362994972536731878783574662082230717840625548373905543305153687352109164507659035537736589975140297772280465871734431590908987639147034711313872904073345524286818249877337945610154741751677626550389891877314121736086594690985448843011434176691797089098428122245522057008118136563061221672384530065403742457617446089661007311246204091747486416005717820314784413778171023625546605951090120470051683236502647496728142102328411949014897661614836197173717439565284042035455726777490564094119922164926564015050866267776238635312003693063125059093186714081677224872553094866757302947331593166327674101714129778733550436852489035780425452218598793997285374327941788342821925454744381833523433551142416080373976306623287262355037154405002039957754943465936951413725765691242772590635360170894357485206403127441499437715542856886470220007098583522667801487482637007358833449441397640629646781055420471622137989532223370097903672353975430654585538170838915010673364803086976159316058046744721453814435709844785532572808576102772386211409310586975030874951512750154855178955837559480619646469481126092574590845984224185308180905222418629837774326519197996530972592695576602879265415536759135497965644675858496791652011805684967058623188081960346497414013434205424340033569926757073855727641075978333522129707135327334163361038038281768799149185205428875168819382608001731247954803026609522897294096811586309463724214922564065166196631365104318298747992890247951146629729733090656849180037193352637441391812306681306726364534581286283599901196937571144658242678595977117400172560391027588518734192219179349792580641127449320944510280962969326964982411498397678550683136283799155493137545498584244394679186947927463116255051391861100767451525986089599753758458036028492729135338351665136057930160708921616265636396379156346152332897046577895688440826402477576986789345705796621764566094090225798148001404400895416554167375422380791331036740033888352956879438541823694930766098024942685123639609887448523675918676214307770536762164545234891499614099059425103719504745750384338733985236018188919764002667780384173432247648522724499771534705500506131269541374933504135596030998913541059224140801202871238900261552637718465471773116376796866786620317122212788787843449877400972941210679922170800021947145506259658295562356874896097622991318148583986057587448747234158038425383667465553160924931883635264502913897483934871931648047954613410707719855701796184077111512764928231970007854093261251062405443122544793096612740931965626585427183425948092185449277953752089400361048597713555888164618435337009239223245261214099339334341868774716018248418296664742328501507721170148678720947096088796240321335547442926425670212727344579146927896748931709305608226969772388814054741913180962698063320598525648218614775915606563028089491097188789143947222885291477547628776447439308088910195044226861618622387376795238269287604100932116510836566260411200450795908995574534948225979131348061958204156991736757256470628579380561818584779288611562053008693379223167108016441686459028964473993876225357908883048240721105906246834028443257635273115900909200508554336078395595729594787562043564378149958220916680143639696419918278580744704739916146850746442461389171992365299332082697167725190266832210034949840599807084066246879092501171817225027138439120782164129532935096739120306842267971278104297281768647542737538761603244784364082557541302476846120387498738538350839282601060497616902374502601532463643416324797621098270051033100555898589210624767152237659460545272062669008758896082719494499164201237568403288281637828631866520446927521251251839011404336172767334840192033912622457969174444077674038216180219437348372962218642716870542869056655314215157861933655828425908852081972053545061903243264451476501950482103491332368110435031414353858754627651736380256291022940881062486260436843558274539048079095310653535508220169539046184627655184183330417193068944399764111900442901303803283819952319453735060774789901212160490980398154802527186758845632481592451037442652560064187133659641039206456559566301891791631369878683371655590674850873287697459085469390471134908700913279203643048296196676313597243507382739204460319185009115428078556834580695835619193100631806471672926891823666436396390624102364722404205028642909777797750032468847268692398515735763159003522579365946793500568695229000397492988131727895277153832981809065386744235448080355883408410691803263466379073480888556478591523758520309634943135022082446032555477768265929814683631998052624940888971007222284655993442462531181897253563993940134711441659639675522765136297467666411640184433003342670807929801907464678266496614999063179659125579945692138880208530501361775476923104669544757271939319443978907115032828027021511768730562237789718155755557398152558430247645090120652096666969600411600975063103282578286803818036140304590003389501099564330158696730180502368971044503933374872571836315858365985316943855915675869423231155536765501562328567089182515431650429482330782379568823029914729426912731206757911749287474455758573675319070709831453916370095311804112320718843293793130273124730743805162256215898390038593211425189265725593739481813783394543218803278983991724364765917378759796947464367426364587916743664220266715668204019918797608652523330254242769275891733520875394549877918430199271943788412426316406926503518703532603806077196917219638317690259982388773093448909287826763747890990959224060538965513535355228235843897289345838580884247874183303227962451208245060696536765244149955477032072027161695181997353157660335046921602885567301955139828382852587613115496972082781702430374709673087975723083866318807308986270463758543627069266003731521440497594436904328985458620443995973646688613489539452413360111984084979249160911971568228997078883212718892402930563129469950770284892699627169131722468898655039472562775910664778038728696540339048287015653245399048559119064865957596641687637802154852672322536089753065927438756673568933866488061987289656134951443824030423937091294173263000902618680714773158486250775458349731720936670920727794894381012200513495066316018039554762734030128753910070977704858921430906929764184655568868399598423271124400982803169724782896433446950017992520686283180617991471786557797236645958987678281872361799375274091921742925108701212479246804324118235403160228700419352994495825045900497061045240178028125092289464599354735355281670168769665207639464925061719681263459780608571468261542738417039463529523376067763698217493768611672665182418710267600984593635399211325041502292923522010455584868795764362361798936003966408722085562024528563766931133781495399340753813570000489052959732191569747841965377274870041868123729654949985467469821312891208117054152517773009443326188586771720120598362797434161970337710719765028552466541915921490518903677169218560778747728935718798318277060879941175610795053250279575244644005426539701764700470244212254136967591187098981655681626634207306244571719921617110084780935709332586842978603028304041112812617557749927086751006230072132953508852590654512402988436855021075060464972581081050245434639362826626580515488278789869422398318695476081625315115012028964766376843100044641974443263286365176236106698995009698851528818250639958236074361298384339763315385531121149160504401316794465745482400269620426560127601121629407535304789529880155576140482658787742164757270756879136652485370494593909293674954842891174233080253336513981685942335930878006926921463382841536495885429206934088176889440673356027522172795657221886437464169236844278931178309240592932264732869199810574235925216109924467952933039793312741217147859383864236216814813727024485665687619072274763114253396672675823370735572293161933617182139552478226563287074492723437826955265011866827020266827373685059924842129713803116502729867940011309281000638245383460237475531414506222900988840113952480060868192608917378928194779617147319835101666191156213153063277316382286241166184202672315671083350290039989153238374422706471595443944821301771964460089443829216231210664660903937390430152193875217918805861547949050038810348000929894973853680059078588257791195107817911287996114616020130076311428786410921214457620282924766063280396582933677823029439620131346411657156321143664964569250538226070337665786938000614779268469010233180664762161140851719532724390159154386538216794185727959686603616365933847714597818461468460992922755636542629136278049924521717829265004297492952113654373518020529043514154431563212720871315246799933940628824001560251966518421230894249484497753973025157165316671722897408630109041466461190017364002605752940251901601658423500649626785541443021673529918079887476034815335533744989746926194800433559626919778902604943404553033005200064576100010863387257516189590354120947090567760918142100487211161005288457751358523464315301594208944505367552441090180842952158520295865442195261916102223590505776917345631845891318026821323000082818834086462576817754166270211884289805080105965645748757489669036180003889348359496682698296143672761750986684973106420291387336114679680913414354396519503084024897280405601251297713372619740644301455059424724186014252910054096547387231452205045900812115079834060889238288831161902739525309813956767436667164742295347528889852484945839373783514772158019553227838176913241062852995246317381161352624351405451940860140164759399652624364436563036517527091465907786679985167700824496449023205704934106902774393186024593219005877288839169671944424690252197504863512596375710450764117445699459189196697254904115630916800257410799307843047922443165031190709542357597629238205942528073689594548713151749951223784922792051482056105921087058285239865107284341677555121047557123619145843375215386980269026378231158389043847102645983550449226610218730893289090738065097652793050672430926908634682551161107422764890540629864027578377489779988698623430953409479496315543567961003982699842748401280499940138982375088213383377521611009782628774479027941855067554594931665770346454251879649122635136056167066251328836862661830630853856099091298825511924496792450249808596322100126734299729115669356867501232954658417607045552138950360913049168122609696467615438997404332346163463613375958739896657403438924696198965719897764491268142054470212667218850930957393229201848489679037728116280307374340445140328478533428121145046295287998174371842194528067768833058553899272292794556119523690540413873121246905266183946993203308443855736977532238894392929816486520230502689476778985910754663441271909698976108978325520210269295845732807367440325886020314406679997510366449336442685614356482991804537861891963061410588166080093200887020200464549779249963120298906445223444540065221320539730849667794702624033013618062579864004402749980086936345569158031639618914814610380141505641863324528094900551923740830254749771490416057713220449589689024387183016005315443127401444800334457599075505559688055508801949294175915368209106852969772724000642573863726819133078147513475752202888913957073691395569560632189194440417819931080190354532910445474654386344898463378515387491921915544650377410039269600947423622148293060820368186383661130071518347633237825375242229744462350540969229284286483532323154108656747149612753867296805604908837848398682635937847112892314492517621764239352075326144789071882453980340379356358313841648167166364029393568441145613498079849515826089032800173080986145649304826291252959503768850355181116628287082627605822636117145662856822158025729347127173420400291732368807548983050642186568175346709860119789408031190402285523049317292021988572198689269316916242357073169753989358717144186007344697342085661508785588894064489134420782239942977181523540071776781272471069191822853966179508754088339619993057414240921160317988120853217055298549875357096993260434722342023647311170706892410991140742449898955300865218938161911879880050793678712421980580519802383852480898833555850868595847377340899814396655856576726992125364037826662518377734229095808972984729388815482207082641042307348089876465380941990612849141291450901678825608766241863039171183866439258165547510060916926546058285630354335930191296245061390537382228121055049256127308055496166285845807602070598022616883316626862507432638474959017151028640121609313771385842253236938403338826473618444919432865725492055920555414037014284438814319758404797561132448388967616957153832472428712477436139698035547308119390006622207565677537041052183244033607552526086291045475400067884624686607064042535679757573493775779264996594019695945378028512863955388066888034896622540825748337812666213890933028566490864831779386309244967797790458387203367048028126194095254134769616305183091178590363409183801211011500570041390470913065006309943292092178090291634700548540493322021822698571501001466463480901215931275523067560427639399195754101036666294168181413582590100761964652430656615737860952733772302278083419417415357513762713033962018302665611741322621306958197416737942795320460169358592967831211556807010762028702691572914913879604850645858480088080440292449842404613112367028770382882056457731992515249559104261120259987544372032033899374196242010545841312311211069776707652636552179391182436384236753642425896707273332370625320834201504028806164894178319089396809457008059190840121867700866216261648005352169413385889669487751806254337567172160911408862810679267912953448981672427087961976982878134271778689464506949441449265170180991988108978716926977556404062222954788654698059745979626796587396778470289406765137716795002167179882258206394480502756751375564508746909079232992435690884879193841118787291080844579004616783927401190570924385524164445101076617650494218513261155542881030379256485511757743687914322974512174193792130377112775206757001448485072748738788812696698017396703572860609795290187299462795376900820150242954596804906738450095767240689383440422884315543994560393222954818183094081163518474991694935969136810133920048898193337388954300518700896334294504617985574379103522505840869155144569224776244504502701484917471414373360336157904527011236252415463531540153412419030790629081936837867275061446892670318943394075199014636789022938720551193740436963410060138794116487096471550805526982266188936932833308629525830740317785249730232391138290298867138167233860586203302944723733914519380827439151491401669045251459364509234452584546199387070853121330327678550256122848309049178701301406060589040088626382223880762565221251913384013129272599027851752500003284015944127655109755876352774580840050928811725060233899979048279220293684235763563518789636454612235693788271765784229849477457952601240417702836657821052349190249717088210021593219862213453817396467247185316363540192910231535754130156431221108502189930168734626183944410005042387043169815401718868665152570616490473244361210790086260293098031404899096769184324432054530009049044336860877969027622760743989782374523732595039849151220081121692794199452005187032668207690364382988193948430054399413498334330482490854889443818662765692287743149041589394822372698000089154535718974684098086431606917377499958340349598033708768610140763196163534791443838500876263089462031706844057866692659096742101663202524726305571053115991041617275045396696166499884381737217604679124862809133276906871861785724195565974919922559255090035812653162196218863247189196139073428643979748498899429449610389425220128022647973243854167388745471990407987094374712958608498585560359637972676135054857704246552976253108255154525577937878486720955527485838806471706373610685152630302334726077880463594043465745161625953637230904756547718454091707886353319606287731996428409712202838293457578594935806569497678265909504601390495977083517893757602959420975443750618395135054386519622110514881596476591852192031541091411997022152970828816063189631045074136151009543886532527272836129254168502757576349209939297443043696940657665744291214707823392370194038158106894431887747369282819072345831189060536575836095977052028420562401098381350605421309210981964731526056242560733240274924558283117767224077991747410991238714091106211944742857205800154208635461369788722356314098962886684856393622284631021643023075504453919167899079988670045337571496954887142067251802112459936690697435538381120098987946790436001605587363441468519390356300864988814839594157603507669990871043414509665565320588239172837937568047792915678155739760469608443198915435072423743959631900799042397450962419841551344962180109030183473373401935995895858144259644253708160232210293882842174088696904282754178726755679878124693020996631829253718410926044831464207187181628602007302076130773089880941118687257628698612155725852314939493766569814100965605602263258580149015606466543699749261536368809122686745061489874767083589889541108689708917124897967595266090096350874551988880114195891008929543365002888747993962350123888538720087443036762744540421174952315115394589523475946581568508829982789841920366368825922325141452670142940012298226921325969542761533499700917462096554244285547701519833628122354074818558414134446383653987306304794678382882104025522452062900187980110182920377379143677350882870571572110826398364728887094320179053250543070166453857145375902486176164033942087835123815370770008038617727564563583035898530987503729099447565632862526813181897159040436695915426141867657472977774210134961104095389352885134582255112206527299657210270075063756323449809360291244508560606819098870339953414527491526738517418056321708977822105140444322389349715216269001213502239903853079085004309291571513087739212239703058664841781106782838083695833433519364841090116081270638995543669770810592480580059025673796339985623289122132322505067766305771562133236115321897806657888123984640956596231431101344293105435583899867406392726165642594204388581846154783792704316440531454338597752589859401520495167538602931913557244083989785745343973245000264638282013924985034644784729026793548753404146116153131195484632828561364503751224057337777388095597914622488808189807173282946977366380817437958495454116312439285479965037461750711782457372722261736436125522964646354885198194381959401797388746678292158600571169227501127197242811638461950583490227730215619368828866406083437246803681846417906963539379973974333291333225097266201672318940511730974182874424311492028561913211748997003616642017004494118503789127599712695848950066846857860929040578233031214279491444143565683238670310634037461581412207965391742521262185705846460510432631142049077601835392871665287615624644721634225566695066236863230184291820137500850069669512246878553871377145742433682902439812059695057492029453912068413402136343830544451444941686022925772886951378924846925324894475313164071506815700828717570259628797353000317465288730243977960983717606422775364130390330160609194066236291560826159270351390619765341755603390897019598336624276677796893417420276169748760379286042607224185697840890825884136522065846071681703597905765981100792291943259370739465250046341128912901443006989352494464419500206608776446423881281446060054907148481374778451680712823473706913171236337474674351423653847305847720280156880449692251372933826396089971771645075429260136819343190710891169212047527020601718830064036415403011862570045686062982102018750445761768785575807920050517514967014654708670276934278690813792377438028451582524458983785132207544292771680252551062766757062513418822022028474261177892043638241562332007763851306598039474966474994874048407566457636910015054353158430905426017909933804677735537770156903697659107344764546737701441169935878210551015640614052017240795301378369309297770464554556456399379297453458594279099400074551812291569294337510901824512289516692908933440836984291010635066891654671793822994970394068187418102221526811108872566534170320876162187814748214953735454031278933786251510328294551998203041965361837547696458544450222937823041799940108978965060214831087716962671435242332773736755987627826515010059562858797063788542192501054890398322799177310158362779164392112862268634173366796313304671489266291164501858872785885702505521621416821789137849891335951293462450341353872810394247386458676408475562503125709335710424482011129900845802965188083930365960347994794518157406190157993387894020179115348890623770639088856277079800715098392637629598705329747965126492508745548499195315840059934429971116600365666085750779901605154172369119463633348790829921367597284995951319045149354606824397002473118151272006329967580863905106476264253517866501553153365832726730404008991473372673369187224944312171623514948503979008773898786217025523848685651193042257353535977727356465647032055794046138613195251953700129935954102373786969858891124124260803089280934692280158849780355602955316574874207216086915441342823319128207895688890569565029901464738652458167782990125857722111823314516029841610704963917410597322970531880743756764800316186984558739130842368060948256910738552981592863633805558165663480334022471661999169937056932277033995954490340550663038804189379144352585885746273150257244263181708582384676968953447994146628208281070979481910602780792854473192236030248903010511628845155003756013267063995721421236800101456236718765480705443158528594266098577207845167755412553235464357958911850582574657356383812567957923059850250108358476319542725263853541928416732846471304162794716526284840690674025042724874094565112939004794804051690602218460013478975478130052699846827599609678592228872433919442866759711257636346677899439185068342523423736694510221603694166998434319439010227711427902647273715435970865185299561729217913077136027365046580066877032964490210756975556715116544361820069847531519863161193017120754934510557699789133407763554248745251771515961234056343222834845245359943131114794541995269841547793328473212166031855083535712165725439025922893906602135551926394406477722028281510510435123705807147311212983093299831690695226342594218358205933933540649769106002803941411504095360505342830631428871538410019573013277065166484579504374031122857147725470642606906304866643394483063097428164774007201017682790889369693074021567114116852339535108748398946010022332849851054066680828461797357274785927845452721981483569293175704261440919452884148283361495491198275561386060680251826431769138849920214722043517493068503589909977572059469844337059369701591599531950821695244831112186600053607961248006389111609446757902517595828945318655748997559969793236985505440704816004990498988556137647139728798137929813390263309692339037738443089155538809933014042168887027389940861547971782110373324730959045732215844437442279950244267479004140669851213409656907554151340135624109190118863545035276977181711284612755644508283853111134617125682946220440904760999545036120555761687754804135577835768097495466264861953562055306146373955364438864786940825454068282808506902112697648741895621271366124485866927926008061826208138163217107308935156730407267514313765630737679285475632749153724810528149746054735083370260418412191414664639328344043906219657902034804944545987954473330205808141135491995472631053581715998725480181265267504454710557491586278566161234210330382357821741328164050044963946859775892926722016383003052780512057160431578583836086464447715437462300746783575915280086501345227379913682528781120851263378783199958600737284657291872646224884928559074543151678124719424969508026109641062944621489671677366080541807099737313906018310788742340724380729759029429185669153421444307456269783178582337657584576022294727718302431284896175915438160659684821590907561751057869682118693207654835817061776063208706761180206769359248274922685488027572726069036375738390604570962434148222881867052400608305672825101722925486946807162929918978644851122114990978371414387421274372244131929736589343503294248723207602697089097037138423699692788573727080334695593804723452124638533571484481917202019791232732839530750515888053505898254775681248540338351201504516809972160323747061685060668355971458313721826425140078152505787479289979145824267635425886337658411459487670533507174635652658045741356140413870952908572966693799538345381913919537137921390468849828776991822792417907931188660353779153163375948603460698384571365481481802291756694640408341687231316433369291210087522334274084775159286549928993215237814331709008259415009818494137093806049957220544931219238904187496162733995915918105089522663366274291374514651852990632047345083629897003196262522519348345797447889964796206677093457127772736507252487452267688681393888549388634225826390470104197606935391681181598863703565103521519198540968821510907935632650723107450018440945348911403845441481834817661884785660147690087465307574221561284386799923424569734088849084036622977036286332396337292260751189445800807770566237039300898047082387017037856929242543901346134948265856740179450599701241203519685318792328930763357556430283223281478155649355897547602499398154922584197169651382362961139627370072904115031708883810088533137862731329295996586183129059087033404473428836792045605103135421316994266609930141406033610569356416798453853048768353851861297242618024302289325484716495486949973261900091911757430302486834719192221343085276160833494807967814578108355115822104721396649011937649232258206199587362642455059789326157285396087789896646180678931364083911119694457974576292228787308482827135142839197007828775342086658517609726073668591681785676022696873339555129283268648524909258729349967252717995949777583468071743490605460350833515605489697336918823160421075987082162836240136009040589143624246324195300483400112576210847816683375016226715431133246292855660831949234652509819402764534721046903302441995856980110464466824356253010492831702765599639262429590213489619199466085277629836915542535216686812213325432700888372810274512098194966905664853132274511136118403789210396032383805477019627609390730536313040948401656937525609742268511593988003084306900368123046251362999170489380227093354970709073186895073218472437796048621733564383352678914534915387554270154612080744935311187375470466814597500800271091654860034497996974408473782181176797293715093728057195142861496847979492334359528904825650049565295994294796206786607882195363093940349235699581911983986961489215312362214595339707276812026814108535350903657999243737240492044128524315046681700781317499888229832918131464897183650203554383796411084884277821627473471773052605187785573069676861778160935092192985057212908973908767071037066320378998570784086113429794295347198122165893901208807502462327182219128823669431628074403240753464873182895377358627125110858624227260899427989715826695597858176316944965377094081331757286646079883408144459358068031081217473959360920881595454287487615410204788974794649233018515550473870382204939534385408631124072633099058416441806262775226264042667934643340737667447011687126240330415588566868522669864686615706342434713947013217436465456867861910368058379948528503645346486507194440209654988892766798469358631810277060410225852227274796233708089665156186332789532417005934711458354090796378816582726252955702138763346425101222372702733004670594740727685412714525042976527445245255047425015620661809243063307327903635171917563542830341611830152858142218002693860470372551124685484528504130993921601329350142583453269505629185828395077179413541254319181375163864103392227119620501461335235009071297581821810513921876345547811478592628487467558150637462790134827173583914430844062721182129680337863539431481574586334238819887283048453422432848696441547852708556187327386881295394594237828056007757237025544103558813569960322169403939306863803160898411767001234932612555214380038681435107003231640454479049337223211406992199560534231154609494224338064722113615392149540615576522176173830756847234336219686730948241141698782853926453562547880907646370044621461589435214379800848401717819232320533811109789648076772712001966782529632358709831341922103078513532661528758867134469845197592835358296216494700659256969386366843913664431471464050130180063383413019216839987005550474112603723854660285207272905618228847848034385862104953622082250797886631319935693174211710305199725706346503796219199852583400126138395803102310625739266155000360932877309627086296686169915515167232457788906304574087843308707326546233595153236257222032069107958184617708020784843094346623257256944746198537340659438955688992664760732295663139192923080356507301529293877238082323344300024206274685285007666250345042678644688051540334625884806398934353893161133755591797891641520737922142070380681060254100305703158873126679647324117061859136602851200821051791539925434046862082283550831835287323739999236026641881550445262522779465952420796382408565737274276994416143352202204651657126413772737106344314978171441585271533638930400313553295171050406515316956896547668390000039613582385992716089210337997075276028750945176037680166298085247708011638694717698179351423498949127967407319432037671610351948780027394715379016321133187870270382093493923868998878805046212288406789714787250646041945555069083479923994612734326737458217992181928198275426635121400274901547433620476069053827127592342548790537203115699249819023011762344600119139755848995221294344835871616470652043053995233855308031468822030605751499407987814912231194445487341049492703875428098957653699304346765812109290423066863192697219295502267976473290835764258801952914391173500405120373523563716436253696285126014688032049809388940467146646403852022766203806468759166606839152201117687524394789814501319759442597496951479429983637358293647838225428737078064589844095753445825776033995349733489190180933121833977589934564298368831870294977625608861386751743991673585795030848904837974292523950114340522782478047572123772045216956264883857251704115750628449863458513676736200060737616744979887939025747608574562923611515743098508739643597573267765650269398754252749871206140937311949897523085790549278294771049452092054779106422621952415642620744591817413449227302914290686013312392625355421133829930352994898213395786210689934310377447404715111226394668533076319972645640396478781304244736469527004526762510375958530955856017444835453802859459997327550779784139578343186793413014407687663581436908914593504258110993924285154883153688796770381681953004369279041924222565301378731483490945652354267098176231280286536100083804407722648724740254748611203765615795923478773611331021428514713655036549638871587676072870637947310925612368981050702114525034547325572828722274903415861169416032318394424482577211770658318571106136592003653902975295313148812479716775751919606346183409807347462245007723943390658612920768403230710991788076028760280910814283443383624876114486676071557787964769412516453598497794026996258103375879250528995194839293441974415035690663039292369384442230860857826742872956455013271915052144807853498505217774320334813910473342136370134131189052139263910668457144104031506925488905423938123481780074587478363518864839275319114212505388832118427109705556889337240623094111947397042983946638121231958809335139961108271403340255637976604078885420536442325662868137137492375335977161978440049262038705526605576923823987539566722823963195157050647537424864962825184580903823838178175372362326376507656371234723227445995289836467103756611460859142288118010476248001328981982333054732080519682327517828289153283831529513960467851582572931109868856490775887656374266676359887283828723679136318362180809558071003045719316786410721753941742761405076395752396915038441110196196634365504746215010718458647434070590634345588549441290980043826129243841707809036050611698209971827926359782743907281758429945385930996560911592995833673330499125688824286898398250939289400991833237641205187152851445096575180012869547042752180413818200487573737265570547762342920376945068476053421695057216190569032448050769499598646989168734678571094282885072827095247406374777992160612600210752140231041076963109835845891315662325004152921928583604169604067956471702389506711785281003926207567983570841946750032633469551306352121035630807587509628606396451330298115255288328388655128334008214488707011328080237191206960433415405295156489187339980712663770687418228783861789926885644079101850822968801697117729616180587229953798841789345711224974696599490514383776460431483736229186632317759504757489264270792357268031535503798533275156236898599250652946220844938980228127163662999682227369507932690085903040343948720124595308828346710295396473504392039929844970316448131110632848669675989018074056610565719150438874480201425363932421523861364316763745264753543479985159054606477466588473182052544843582809474842081076016032734825221883526073501354436174999924139900123728424143968025777329738454982045865837007344680241130286693189272307146051381409560305948415805570781745958096085181835089571516943352295815340882318952999783572393330923627011096501661098515506050764021941456703943227168509770565944361498893713912564944556008271614829510865272640491794646795238266791999670149885646110772394262971401656898641396590494336761412193017656875203678395254971156658790568251834409601237251185943058446355248336182964540907947550223939867169289873999652575794386867055996318876125318192428132878642809460316985399389338021853228269879006436923108298690796743238938385825503923575155879404844927336988577510953626905178738143208153995865425590204657566259087997109000683791296328224814389848179469504621298390462996215803390063599695425541171382152850113118502285334581367868935868569006864185822414932631352851049294887213023552051083521729796075516322065740477595542735415154745513350433110249368564999698551548626060766902388830391323118401980218298686079828019737062678413524028277562515675377342233884238236539269982844794816752135574142487829953886072298161344861963191772057551057746686953213250798718778980258517564179031826273126754645996767723422323569976610139514455881990598283899193529238048860719161876242521804335984110298985654586436880992084894535764929134516866869519590168739187715457421079495579100521927263518334938711334123297211984359367045246538548345374363200433186747790215409019482430220372449617746234102314010469261896456135307580186263742752162742240463443282520969701790203086668531587398516652381886577599482215404323360142308922048521000336555091596192627112636955692343882406098304036131641375576851972389882373738036287159039551692256202677912793804000104522096080770582453967741771777377157091137046072545528729258775056154278604373919070929682310194318693210872439914462214128458816813317747074451504038300627081719197172719783468977572125266989776619662090759528794682899235780544235481415508592213001239222243764445492596609412014048632732031967008518518775727408129650581009554997361075060139576693138873968874740844555506228273423110403731018208217192485461977803578738126434643714815453602796822746300400959112641819806779846970252725236309856492558426933974775215288632372438467664975539637584842380529656476308505921437095961538555286718002115084868557826234950328690296246983460465976767256291552186820939697883904811091311237134763863916120241634880784367182731912086920259084298110919083933027490169551989509218795758350202310962905295791012793965700896749326046832401808043832657280925633172909724561869431723020957562181246059372791500418682309522240883551268077288909569688666601720913438136597489643378861992615389401682725537065340952822923485478996901626122418555055276478435023176001006254020480478517862865322298624436023165434460147601675020299093563880846885800436524176139499577479076814145297306811304605791151538912756024156248073698097525504324803104673614296784946151295225995800701331622034208213163635020042417619188663669583767158662510973848826412526933374232778668850534110859254402836514202176126930622069928245412696825188161615014707233263545105214440929165760697498402292068520651900471178716440277588398614253654585133836409199318668052001017275827890515297761929669053524489769722678481650937486248013375152763724085736324243666582543889004927944019541047150866376625869368566357484333700009920764082878755588724342236858164012734556802222957872933377616690763361709729496170201728334985437520341286876612979279065958101416809556286330998225428240568936379277824601887473313059637778213535214996669266654408856184585535109779265161694878304773365514328301231812530677667152812518088546843322205492282754032190902059773673855987794017277616534638573470622991274891010470797134813878745566443007338951642825262856112690733192941890977170995438342077280411989498261480887122584468876696535149609610186192303545879406659390324372542939864677989911692106763622732751274219898989809672562302868616494941399710111480137389758810901670945219917806388340057270827369678651092961421846001078732848467480313402002575024446624916832952141637169559877577956372559568177751904199112086764345966325093979635076642355406033498060504825269262152606380036226674357381541028629008892391684413663936791081290363210306447551602408692632932525779574127539530447843987273269191177434004305669274247145275080978032219260027771168851794184025003652424086715137688376873321905545526171090466997550098452847575341350061162291420637930429192420049104769084775322972629616691499525565818639389482781813815423783638352192349883339579009684828917277330763374360159323012258250072784016187850239267733210943940330192685129246377847797443546249372813818822396091422121445238876525113665518176766531332154684177872523101557850347128548511839805956880995890272694061823290376994416849775938821457141923958510772186682812082041770745433867089136594333357058800544308097115154733922941399864168069182203636808308693624980136994777934102368133921676265638615451203052590432244273307226848054504514611295090725462071331175030385513892272447180756115105431390250764168201874196807839959087212218489388442513219976354359060840189523938908447084588719045783163831542682268150326833340562879090133390394415377184979954323782051918595165548799486500311392610319428013501406819396081338905457997352061140428241259539576852993237569794235697171797170672130476489888494666891614596987862231939785813761475280477249010791389715114323349924139235970798929279691240183740347637319153585826737281962731774113447791504575735388286117422550044872695469112121088291862094813169102164528509229579660399874750165829050969077667793064093764309979069523104137661591137011810955418434914595525096751570185918854739435218431058110017633464320247555760898288460386328211389243003250216929712321711965049142150702348847053809392523114577474928614778622678262077893464683091671712096675435454931588585271002782699399201333128599203959123050463784182379448380966857105601336515779206326574032831088991908444333114039111433480046266161345182463536473233375455364007021670478824998585794892149790645001649036935585747520037413532799250242986043394114147212781501564121620704818162652809827771001232343441230696545195057026297610581738489301267263767784094235952844279320079700379236519030452930955769687538624840552115617947245017921148895683582381822511822788234760924400677937943299761011848241296992471022516095836077656069302447693859689669004044572590012178582501922098010856046543761522544697435828055032645423250354640615822667849020761959181942756644668687146261506656696293762426106108012008713912817882659326392836765137427591331791353110610444299529707482425433211832017902671679250947236168339534847227993828197144008660146338204425103149574220623522517880718710154685808934516070984849438384223454417191459033540671845902762523303094381309880977171523535281725634197484724266541153895060250417084937883642198908218919504318133050930778876616281793156326255817183288912369669032892129896344547330660966003373982104826444021958992016596810980674308315862398370188440748288210569118797920851707339118885512499417328714145920695934974943809888877576896284745620135920984639025157694845071008726790860532041825078938143485497350312438421953597568729359906394139552361432565424482182426570397878239972484102254040218736244856576841948743536510052987377559082921065498333327875968667614751283433457179297112414254381500713358457991965587909997699919397760247518231300330471537050862759781760091277017249987096840737048997756155213717356425577010535804418267890838815033673382675669092377384838168781888861850203366889277610665466170322424320339476411498530729537291494728904576237752961877074577735964462520529773013235134242383248612138678147069370418709905480000692549086745018995229870483094051157587757198901628272940535509152912339435290588926336786735078420630112603779823820908046230311286346979617824793803805707971907598995094468829877552654194086503359413767291194794077391074480284525327057740184500834322567878766396780055293484396489213871022651478524449925935736995459924480471520642320895714235593959402250120524484670385577623821236674558561155948234426216048003835772188477620115284038246880332841827451190266498064492816222407222990006325644802672132343753955752192872160632679096753058700700516691622355936898380673438749946037168286175518355211464262824995272026491460081872195037547660635215222126107506466980659541828631032349111072229036430521467173014216898720629099899685558263563202492701767744212223615758487272201246850290933577717475115667860023869420743478367839986991796101638223513021993497859642429748132862772182555370653456597152251637579801727752952865567642632396186037887485386080327935845418790126880940361899672366806127173961769147858549658873823546942074381407256543159355264949798874514445902614228829768652330163843454772838054154574689961573855074328460811398819583890391480806521583631590601319372616194331018836364818818066757868076366932357544340899075872493629614062262010830524356004759156457617887361911655982389019654676903181930404607859232038648929212638638481077150829104290758140219598391168677917401178961967910340134375590965117147974781640006239875643351939715792670010313570515469787017936648200576428804771914896410797294504953630227437825209445735304145273493500760978891795171858029443085427323423252003776357846752707372643377075534807582715963125411904252187652974205232878853885729183532987421357741435174557339086547791769884517705816178682771608303966656667186597012759212698046948896410381325714540803556409014673268943953932313742438804275569601608139418501846199336773881740452648721235853215639522412553246266011853678492031452006022478458206021229568476620603830282506294870712372452812549386767335463965910342699098485850595458281926388566807977160734343407392063202559243903032059148840373390548382985307223501350793147594544426168793567223941441270548137304198702860758665198622751252756590833066699900486099695375180565053632598426182360460274814867738963164617105853299249258677435246962487306092674681798510099081233133785320594614149397131104686000379568785687200407922352222315912224582404086872228974154941111428442474791929446515310930210684978716822585732686656901917078945426974470013577135255447490042657470425327950730986040346370083443402337823647322604537686864885874158134760149903033214263223970677055103610084292166621436106774824806920722675033548961556444006219715051431540790120958354614247683983513270280808305729674590021177070385644536948424908574128773843435478642622864322964950976855775294200328426315217086687884445571539820087689636678927322367621146388826122774536564246510739608029141521985607815763655831006809372092319966710418131481327232631486049722828089655471583302872880617036650757031289008955603435980999534722202106177768082605939606416861631259059228813387993605036976143766333048036258294302294833361800272080987554367205759716528742513033831861221889011143613408277497429568456762734951021613487854319104299187260097294537023318788578944166965501660300881501385303524355064948226580118233003045540798342793782319741778551064885919640381608912277001442620672632156430768848591861246191274047251136349240970572416882979844730643179447111383974346878705137489948578479069815825040911200147976113432563324131294985167917707558557025082886418359759280722638880145588066101778653430869374708638242369656801404066485382096219701335621245060995610707214193792379481812108665974387873314112160628104564089680159483887227571827782240537068405964638877703182425822475662817310943999609990960543654331587135478000536922125078693176289521587331903223803853018459505658549799793618941022590130056149178081727727098431456562714007409307868185555733095017003222723945784153965937556069949755479115033103695913888803665479969477665463312667050539496925989954971268150863538050450364048941205200970652944585366694547261405504439397889525167117709756241789704540073057382727816777240547936913761248548372336923612017862649123084354020428058734330128162219516316678095346909630825221658443500818923418893410773088913007095842509568522957940501276574921308382205316584199589969324293128716479148034935738450217114242249025925148410906391028762523576280640651333147543210412340357749674594030101372253810251006979680919853399723946178444085685393896793493702497686856902447974316560258095140828844636843571374393824150838390795173911414889727948971269920016424475176794493668543615600733947302614817660685632539179868779982190969928234681248049823284607533526813981901924617586602445141711684245212421848023550035770508335605016440680535806541301842006103205202266667203897186571913876051720439082051143948312125621270051424592206390448704041109364999891857013179123655331934182518239848464214089870957989305004658767375875092160661490742247528100612974378634222187039486909975399605209107381885876425566705701574769832017101064321897177603535945061836405222925555592443175192791683510644813747172519729034634640937596290072904526405552508598841824661015306861984594486705968485862876144943847335142705218003564308212735224032791119301923207993312816847036877166759731309767742232301175547963945419759773203540423797038389155810680360438060239756775987988326299226879203462456974014657350735740782798285849378688074450342346052107989487574259625911400033882957667713699714563722222385140743425627056890835003177027123377686245800819145550662002858287654024996073263907960867331688834451909378282140638827895913947861580342277707026617224211241207061542040110529953279279892412850902969852214676727707068319235956348113320324029742454820705916264213092206405727687679849757561633814233482565622436064302518056639925389528974902351036688042841961910339011684205496561682424372019733450473721373905902711599597891932526190649281742527864261886674642658175700810453356509980022822524161364379272004971394961546215443415327695777161001161140897149565111514892655202031713942588277471569459279499777880535091308383716749189499703743138236395831306619081126423980045579496561496573592912663915059919146496598241800200462676532623385532582028424487414182447083678973307053626012566223296363793479796968260756499404839275440847085377546619530738376044051219924599073502745999700013832669286401885270060367290701567217561255322393983371753056195582607006481697874497954346440915109931238482829382388122961346081237355758057904478070729487234841457139522716796551044699768314034170665635201237531923854626614950588085242507242890683277943637145471732060650269595697464809134732511442767059499568674541822594170058137139194084012279601626287165584365349657261450326166580919391555602468000079659754768643386429344966085676756057250241946861109255020053808560655640551635490546629072127700927516001689652268349367076023185447161884170182588021789888627553811423509356936023044787713958988302181395658725546485159116140740488639693359347031516513106608283885336348622606096818917089872078872303476626909000061438399858270402743868197729609414714430812916714983082010257870291004639268470382034033815751632265884924886485625979679228843846458141632897134622115854596199844557488299131913462343098235686552456962713057482761632426397026163260709196476841968569702803619270893401690048952478565937278629614597106408144182928275716497843140965729678542931526925109201942548254048066963380060900116749420610816535181286009413379847015813717154197694418846405268931827154662262528921830447958053655136813646439504209229714667301209207383236252490580126610184997687947741032045841421675018322421799351546647545966963366716755250949913409647374658250043303173367186667656601112647700839054281600489309807589387852629680045635823773884735013625590654877327351239896412473423730646019685527961434643966236030992807131460800234123783721465007739310057663142392366497402233494795227110832648692234528528110713567874415842164660271641404649748162809952379208404791369132974335042068717088870736581996828799184305452332436219599963143197217647343283752286912718386658392155423500911283593309363225021182065692147933301823452935443663071089456144675004762992415603627990067008393552777109845220667090600717048888393251791362866033491355216266684459559398697394374687456757675177427201722755173345554449106509866844221476773327966542097551457057883797113328712885083914520889833826134573399919455425322531199166880313866942512703267717276861850036791826385831533766848177966217402086812551723507360306174348978482353173013699897020161818713643750791270812316679906292080919138280167434451001556415220555828123429355183487527104779461136321232803902207608949317174828539864623724861079467857864790550119775693038360618632728431509445177223856266044864803788510389238269894619532564838258810210317580347792892634401879986851168903476489443790116189960994009565751260769977394827563805610821396464087192166092115819320753838823970454669112709878289692704746517485865080994176155320628443864297215053127043566433051711127926146416860240240201482644437562417745779743330152892861378544900151755089726422948836988086604191612203912060547626904615483327477257432436460843722255401696047346153484483696206913902922228131846913580989816196605215976439772905005196259266650733738167803469496320996921468348111188228601017205055175787406930199206763701034558929850380535596353868832069328720297916015953784547166514087580222849572434137280057781008563488197079524031992749370994144984143241981643706011078133839038873123265210656277936468972817300318615576967206691147053733396926106287539562807933593727903625755146536367254743626627131276389730784836875088394159340413460004816719856164192771267313179260932703544751276270380535796663647210155425207036402347967842738332892587506519929881183446296075155210195021757310467731513961225808146722331675524695523462951843323830901008271583699313410735734598310877162442732357014099589036061761725442769903026881451933382219897780791243530706341928647607849605846468417034195652749994188183099453347808399130425521652926609268609599031594570747391646320250074249205749724662128143073375674934358389114800018331339244472120536189171731089752888532572901803520195415582591111122249816901359413580618758560028208231081022013655232796196936423248507045632078516515211748157555491501883155840666291422421673171186179997078651121382694905772430952028770677504863159585028987748693000272353376473170966044287115178890618082438889597113903010589421117007719498908138314458024837870155787257170002419102874005856032089390150074160434444126045539717773734197298378680722949032363004772317629096175039397617622962816677959327526836204754271308195000373555962555158874617586095291579481763071157157933463780663024995774942202345447603709703136557664171131608883719009720007642847827849086605215206682966913421354180490809659662149283135405985421369957323852679158668914379231901878542956538991558374139951127258384344527067050452951921174733401343870695202572787578088101542835235448846970675986445280298232363822822179981017346082691525375950758690620606118674618082961212385584359276912251295692893869927542320094855649481002387782090979672362679665652758148017590554600668039225661523934910242233731138173293059811697264742606657158089120899985657772300150798199301619272964769654457178162514008971849963397006712496850250476904745831725520569573018904414246788789162207703290527671970476220731991095774620774266348939677400371231238048783280647968994673023870042248362435178983096792526501613705888554897843558811972231467537787384934173228487725972537154855471071636490618512591650866510196225911818329932169344087592750124194144387579981375706492225587994345352359477817779770712171746323105026253564275559219235765466438805014222182808395369317450325248267293773016334624534751972333609638001780810264249745506708484106920557887457264256017957125671515223488184266887744384727865334772151423186279699397606920572222577147604162018910762103378492127290859572723396631342038471383460654727987956707668116970920052597679118794991518200952391897212041146026149417797075105000388948915714825660078201783629695765650077885049748082881078545238336661496015939675511192218846368427518291133962009635401814065963522529452231897613504925401714007576497383898383579447685233197195216373335007390903980371003186684008009113325510338499349610685473952699758669467013639966489174992742232077489140541470129797637378447733882769238331939900447566340726075226275366794655958037745511155671682209716269265575742357992888044955333594041305654178068889385387515288159502278429968638216608897921184533466707068312279122341423164176942684431042679187182538769638511519039406925028220286497629361997365658956441468200805330861263370543153507015409211219452403072204996518240251357156098423769371738266040879071290254500012867807283288010541263721488107785287781884094632253758041078041829978215690771858462939912326621241881428576014440250286075341085845063530197354599652025301884761754227840224440280493901234374661411231409868431252495981901693519544210166248264283102698914066432237293085460410274738074838077361593032681792203397053339762267166304287942870736800246274621200676881782953617045928689991135115328016366373029392694309535983855817363804472344834530676203854995896185991778670183161746252738283574750807285173346178852144798729694799494562754718665919724455625463847954895666197618351397290711927253123038282749190683165594935680095415091295734753415988828327908027097012338927360965211219609426061019365888474579498116356242583830694936254851051829822064134992555893079680348175343845023759146314892944761615124708351496231619017813601656975922832329870844678211103344980221332830805327685842354569917284591146440689848058327099399010456972053807518875178874478177898567157469374765018979406049361139234920609821290534879532673097539698468916285927379520483684377504430411397146704991916433320606656811295241252411105804158085334750215107089578757810749913321724283517200105869791630019482932956246822105311417821124619718514704225771523012555472655157863127747811456410162779583004727247151029026654124651069972043715160662732802985665942933221308465617939115095169132934663403921650266346621167710972960248280505332592589745629353550910173498314877796728423740897899542592039270514089788936855118905510788274624849350972011506029397928282284543873851034649623323818313596796680816521035277877789829026666529208944963332885757732819710282813797741514374717919735642761394078474289946231908927276861305244674488682729344619768760926608502266954513128100310829756868614725844804404755043335870307298575688981442435431947195301177566145714485623183947976178722749772599850762142987750658353737752787203848629951638460891314018165488958655189501680679959958665160616224980802400396756500708539409385413290199045656106231134025054227780326171281893526734907539419175669922576832255473380426259549406069881027976391722776890026579476090994272548580066038323218250789478613695690221976175151325852070585399524721778342258101947591328573702153627386865760693457312377673907638893445715153394847012401699715566401931291903140429374657446918659510807241370570683871712221088522031895421101950176378562907021070361462504758470636187476825447497447198978469530783095981278414806913815780704634967700807534166536507742009396116940937878018179008061171123306915692004877672376878618852704958741959135187070981088781071140800605981329143571063441218497046111330076035993556887011464255699852634218589125619007638458954411912425381462448139942455842453704057313732172381253072338613671489636442298449196170431877961109323864206706833177095321466102053662715483720307007263766948011455044733151669429253923086577196406595326491147896317510106856800935878450737329514600640800874104504052535140712862481239074115223584663711828607628397925857630564211958478266988369542997542596853113685720203837536097197169167042290995129286552099963698151202237936813452875798940034650158084445790981246540085177803409841449879273659848911411854154327050633751438712920199403634546150287104703940986207684951998454833614089922611129108795718014675999834232576634956598842828430083525356437687361975577968163168843579160915774177633080445463114861487894007441354058642401255943380738343988456887882908683831242681987522108804307046811982477493866214551202619917256317893242400388703955627688547437416309823826200662442157555043421804806225682252311807104220181433843974116211946488387031571254636009623175592177433921540952993991155889934966947769430131870822865117455286944708704926158702369765925985805797413020749206803708920527935691651526397387279125206732804916073732956718757660763152231301607966731425168874738761101564244822435595057350532534863703012053482083648603659934049568066921201993218272021083563065847726266306201543419713650035213169323742706056164547077376643771157039293409857902115518964132721910824856397306342722119874512972256973658454382044200852467723229371236688929329646939951597626679975419141334429879669162941461660843557427277033987881175866863785121968905908349735420829339531511725760741614573439146480296079774628516954144877843200453083156643573808417902504190890252709768902132925265629934615552943118302594922492053764511681366430225475131647222222854087070572412200570508103719370779303273788995784979165728739258263461659027733585434011689752956053001237115617929790410024408784642411537224459671714239307145784651105318775909465711385842960527442326798995185798141249426222619575703033568867855347295656449525990575000268276118319502881814453994266218214117200949540450773658582251354783188168839697288432989454969859683172896929657470561221987653598405372435383335921159498058606033386122677693999360055955660290286028211260233543961538074826626072498431360280826590525776079456931034190115456392106507944672831382714570747238015654421747354299769484164181942611496774150952769074033839764223785457236451339915043494142319494822661498823082476774011507359053457983553340814129820525808430175378591111129472062990597607096208709628721956504204034537007979590055799012533241603637234353914518194164005823804209840028102074093762068039830862779325470835941912589884412154446722409021023888881058563253903783423428417079642983588035775953753178105557218247149240573114864953936975730418457062870153188069492314064089631234544096793761516859648984578867524084186693039593425849332686942574648603522000308018323143733153717027475902916772731754212452079886726562456545062100640704908904806137294187033598334218392625169030064253859137969892741584381396306755478578500974929010866429038822080171956915735310278701385158843422366028746941043590635170069441195741790324571277564388037615819947427912790506842258556705144991903978725519321432321964784873081197506326685603150594862282582885376507349134280485329226705859215963446409647222456717570849523356875681082178152713790354465782166172011815872706529217633329446139723260150561360335500200403645421822541828520013755736385550091479304840291360957400856819844920658699591195672029526916146788064140619152119134187024749145981080588239101532679922475411173734872652887923395133818757204052318674441737482194705746078125151672556982425710822809557890454630408866170869971718077968303189216060566875637698225390007616530191323285454650091079026613710679857401079848361673894371471334730836057767413235324461948493292251605692165074550362922719034446596575106274217310953043219377509911259066182753901809759363239102295675821117888749653341263546474805340784057473615644693081357076796362387067107092645053190619616979988503164585708830150705835009544418884434267405415528217691807509132613648182716271520101043830699787410396851848262573721242853018671777007646642349160639323910532487090843946692371284651340180960687626648075240528449642708405423503620142815174327599509780439524247868916479409074114201256209047494717596877697730968628532372508165249422600158146085016602677336591620262138712490689091283997313478892332219408552692629326082450479393397827070197301139562744027505205481556632866906471241717366609020032799380306367968065333881710484088548318364118043716234098179065721098385259454020263607344983458746875937330808494947556657886870440322133178463215504632359761410439831363998596205667437389258697323485917695946515224578972237649534101493813385636955003935159765118169525691054152553178174062094528755199870183088031447465655690349001820806466761457206157496387212577002752239929545419498709488160580410924934706998361549839858896355012882068937467715084765427116534680151962975183143255246814473906048716071201329884973196964369700368422541600656757649010421419129251036523759661249947782844205668917241276473033941221249116198216182011970775678516464206698390841150851358958481644544763354991891260409829000652450962880417234872472979719991901641388629419448842839219580695579211758843762533736786756802195296742882170825365579311837700835669439902695600689665910813814537651864407694709208403334080734373685273790909206538271324895851354770304687112468926233491235573876515427094027679664932723685333310662880315229450049919653857939969841231764745150344489377038977268712643162830102863943901414389996554657353293918280024817052492895015307452339503117450060247046165473235548133230573505277716834418857053969919412911261359824771072617600943495302310029907131601686010009074767162616820220572272454386364144223260567121996148750102813010175680148855226144506867656297028791137391213984045076521940748974179647104964868562473662270282477983202816484291057359518876704630884013495826887132176554309650269164468776589434868181453407211741472572806132331484125140139858482144957288522147374704856983465944706531336785998281084319236635432662131662937892218859927258576114764394753298476690907150362803740915818883909516213590053176763622527278087316186632671150332140169118277858611139471075858733689431837450933257181881413486600629835835241560199615249659453578054090173388578150046920494310097468119515900835290914634938097834648317735232684159346033129648778702159871931417731447441866090812747247240220276524231458489553341355332033032334739278230892416814226874314911409023465566180195284896033701982815135672777757708977994223326270617300499829944788397721918488413106211528481570362163871374745903913898819270750205492890672914323958310724916307306858247416938390686459118717408132190300439082342436283070457662931190635743299692492369601674568864221906244709146992243449230408427686470404463489554682380848205194541370307174857939452345874490185952832917245279447526941380878232320555378513873589057985501304664412890084351379986128248320698401197172630349266815793076105625189450190086859448049119142223693899851140648360404644648300342376776812988205368015426026198989184670808280192920066030031411008308823611541113079835539755672911981235180831859622858617456555658418483383364075987657415225997904061493877233973096093097564013674131346459866762421820262732908876318864930607263475097076821738431157605878241883592452661973717838048189657225541214459710741824127000220461106247763118332768240298981308579377728626806006832039224659324427718616940670800456288679250489144453686251714667614374119572752563846389007758022228789965207580110596528692697522248506560811006379218497395446158200262894972403429648328751725847919611448712351911708001843909594864983260707210983213159346780778731771540597347284007316592532077932298777935457417253650070418885412497621886125660835093714685639843913856575168113601752628291393932913483002308936555432446998935339104021630997120357580668798607931200155096548613488176000756435063781454952985864166026750706093428118800304004139363961487204997212197467124625506138573104173476253340731581223060968197544920717032547306588585954308826043682698373603300297483192555333622108182000255443738789410282681062752521864870309725899052618389533598481663769509782316398834269893955524252092502271287511407833195768602444287880509417292616864253610263470317121855505066964754578554156947324776522461962295163752080262809049384052534691142297078978693239297453130623684743469670752220415838120183730209257288930611846254149123136795577286964767151446700451416796756295282666991708948229937019850724581979695251558157440858440751092034753418018020516562675399478720890107031351983842113805713178755152550334679464843714716744712128373223601300931939496335715194643680987658604391867121456677287537048820469749101299217299760451302054221864392393695449353597952145253729339557817101211796741853291487302495200565028674515580410522112356767962252066594672944490564387281170257800331751285377613751578029748188010348352238095526844496366070709294670506388232519634708590944007944961679943310599310487004452167598598138138608391754227441443044682217704997698847973022767294941550783249640525704586302887121609544593880911015773048500331440863318512957645338100213754227936909412843319548209073717534259208226176721477112381733249978366717360017154506339132880356727899092493034355435565141806454710470753371470020794104537485802137204224919819391390498575823848767317448777643052661896717155126558878823734077976344648167546051098259838709154726374155487482955936679366742743558713768354198960578639519081573475669074867950447197394477286637934976891767755073190189376641554994274520503992627644016598973046397751112895481371676635971600736823393871685643403697941558301847711980338433474624088871829771426520057861068889253145855843457013040538690857084915430600471759792779734245530610523430444827517764805329964459361227566351672645001872458772188153040019074245265057055272428131908313893219129629943164783122239010203107975467208003941730394177443811454400748408384097786883418956283421311970373715881287038762929975205372443453672572540511230153919664235243056446831344645759994610411701300052193028390588784042807580852614462357447693374258889129360828929593789535916230156935855747913301681321706652161004619585271740240178276581586879822469172017875140981141596589652492738518052156920253984614753147965191177235695526847573228250722764212405392590559754167452892275560810628933409401945790544931058765448068740243561636885740393487037438794266563130980162881710001463715394344197521238027701201218690110840322196336930799454581333126837934987392431009915759899760851799027615172649194894990573499071085225634160016973446005259426042483023572627666559848632495370304041911131908304180255462574847296500768708135135275290971351706892694361031947874052044676849719624205418697843034317533340996609081259009006889878389986718019159945984313052067878065234913957363116907385430505982278221632846167416283148109929481055470575470869981704349232686664367938097597638898054066962438121446961157333846774374025860893195871302905229042799959528930542772078642516197604716046556677155904869600843853281276843009055998507930283220061843330256754472691088266550234891588220624275634331416904987405972213929299803219401595860053086426889696767342700375808542189886136935383510384336044254569714720474418388009108500390315814693199893052367868684149660637981340551615527100688525483420664239930148475734242619857843271834654238430720433120036852146759120182364671477006743501856048493074924408688333913880248352782021253195170000005660120812251498473571699114037828943529452699692734398718074935029763673767212512369704377342591796763016128901904019739679132916033916599505887401508648470318052791293208677483600805585619738304433419883171185024765406414609987081533155383627215779052363544879071152560117878368270682385975981470341517958692530364949697512358034912129271107814080063089619778269370288106751141858282470598008168386713027577894744220721243830729967003326035616763464115454750782911893976442105067627482080185686987718767586465838602627039208324354585010397374693405179328110666964082816508414114698185415950544192740748376242138490795941026694322359844702225047266551419107176246381216909422760418457614190430558844378558913532939634114721855642598242216625771237411831040343386616103549809784514478543970139504277957417939886185799544642244653405555197665913210085622172616076991191373566049108615744148976736470462011203368729689053350922496585896230928974362729994474251646633329836720736893649056094175870758192409304152310861015071135335208462466205756379142582771138266225266840096276072680617550324562438439549826746517603874322318794363950292275869883959527328097617627155166610179488896900150301414562849381817424011841102922962944480472113483035980237995610376691926667029807707684972207321391913130108299832000728968542961152253829308983755615481816460464768209683865617475539069747483312794784565358654449168847442656643915739191089195429159022793701982056817577897466063512668884179093354283812060223440043759422522134526289624788594299825479591482938273992224982308211371175570444577058381202023174659735690786887871638337099874900448479906097034139860812286095225837501346251763740495748256607229260818114934854480563303440461065017111326272973070412800677202267838025204616112245513167780102666730487057463111699322582931592145850539166499189783413958731524959568160243942746887723644520280961074985194596071411680348940550337161616133567305105963141943677181318799105518776177224154634682582635241161160812684681908049964743689168921224960075625140257322634633721343331519131366380492984316219014827833641555332023743259783841473840621974557420774130299241679733638284694894746413155737159433485360857380516268819119991607528405875807499952773113629948073537451179585512608192447440746828996604853607952917504076398949686680587503439660362004475723486705573330886444226141525143016821534302288311276542069434495663459102005491887380309185514973949419270912824169872975721596255087039203926311461359337574431103606660734468968909803294260857455078226378471303672416934988760788721202095383110190570121735769067208929905451984368681075855782266418794926459069500628965129059333542806160982162936814066463160101535099873947048465870809779995380433427303624045391087400392785312864429948228713779032094290318964669808689841959271089663905643615098636742399637570388671926275088234154664127424620202032322014433384854115364191603578563337789902615529894362597125445955420109561537111699861642341037314910718463749867511506889872706616454587892017392513220116410625749680161731716416148566039265691666842090363731410252130184080913300883888146419535484173924574248274731507156788307760264310356508263579990485124843757701893184986992980199082997962043462877192058617480482565499394154494846207584798238645498608489847658957045250795724531087050227307000790105171420709758978948364908961611577117624892732469419076485995625401971555680117280038362162603508026443462651579121332763246166703809537758906119261768636799846107810842889396143616824993228472358999355742593662368140668595574446863461098846011883075791273133186907712373256883362791515235594551665450583898965559328414139490272172444831288873913198013310714044390546933451092649757402720673474439974625310413166976091691739032504234987474077032570825034320803112974801846686763067727499021862815831702124933292719683225769643835863135777372963325818697007155578787036250410846751933054311799756989138656478394911049225806199604597499089027438654513691349825724737437288818221399744399665531969980757383047395988824289612830999632662879333909064300920998687198410878049283857050567284551772650371163908090643781902970041169344351849880648549053504986558338709265240356575495912612338669432719202595027599031339530997772131891227457753049815483765111215217578316649049127955212273338748184432670780153387937842248363506415513430152888252591336556379197725452111014355160458075507714695117667666257695837246920309612934078901995682683610349207986881337035940316501732972777301268625507519994952066490212031688181031269114036335873123586322867252094972397340761659398592284244104770871658121604976588909526970344212796951432785427928426875108262262106798582344979084460803974639642094781848024306352478475767192612610357817018149093299256172282121803818687180767850662880272118466231761097438021468229346581968908834742362225623526333882967709482445291432315946633285323759466916591952608208210471296017674438916756649453873202463983633401847477729039688559024876407175667730379256294478317783907814532665469463327967887783218504909006869759740374992641330278623591931053461482007960060760574643912698935679491737708232352240192939428690425986253964675886205160968302564529972270707344738193807087908969119053093177943183168763534793052960671507446633610813714570131258469661557432543913424132157200813569258710401158144010980491128415210544288229168509353627168133136590354615507948626244618804838437723362223588896355460863724449572413863655175993170333906442786853510570439291085616434186779553765953631758510250316374144724669945020026336627784499065684408267823872695482633456972699979263148251462989121436779394816399801582879473601771375909668504015046890817414158545449475274517160204965105246205140982195697314868367656041050915193539389676734284943055618272432933578478005688542964853231170484563532714443854150349124339134942293334830101373134337190302299881041276683147387646612389999616870926726556717225601099306096214995288492087126687287271283998628883001579558898113481378873190714863601689267143524467126294085141040741225915689731140200959540865427850212030677329507463280349610773393731817495688229504401694380850251547894570566149826776663714752093337702412892190149067241672760800156848888360980839221430903675941299484183602849480362620025586760491551225579645289571418753836337315692463715546733388701305893713655548465358226052313423550856584382600925276046227520204726505582684926432073075514606891489945578683604490989665062593851178673222941202927186522313360313639392117643167243597775270389801510683826818720821787770718243989529874027667174382177132947346360441134036059951487639383885209018344739649535590282908338257194710601850066531852279666329294223973851849823771964861936782774544754503680319594912349419253423751419903676747886080266691035057816587487408512337719993711233846023568443036032511395681627370744052744471370303948718255512092200595976816783758892612213127892074711209207421297871829977224513873602709125546921444227920175599491261399944716878841113853269948801218062640024929815562430945408943594349747260716770629804659279191706907420225550001295546755908565159998608084203272968468331885457963174690478121736142713944894667724204386882100144130612064619008437319641941176145593187809426009686909281926749001032886931507276146444782107391394875822053692891913036821639711428214162875166086927458935041355100671758377253851595183821046393448893813702499053247555988254174581213821416380912456897526263642162540363051747484105894007901401638095304436994936676580777333723900505546717569166600124182835579918632538197005313110779516358719861267500328857402250287591072801968528255097789055310768046225948434500806180720285874591623946165932408013215599004855203141008214358707832391519848464293564342172963266548175489796925999188100055194377948227299818163677718018132908795850335771799213882948740719181597119834371236140406550347338538286804519045269255357698018906621462740639540058726097956590749327823796230108185643623506396635041294548114603427914490135820352461748380868587652910620574223315589104435365895545329020431075183523895821319741924507914392714236239148395441689740988930312865666137764572111976428498727736643105513636278091635447401782793486889163484083637571188929623519635265022070645934556446950629789772946649981278113621917614630735250915071414519047416623643533884391484333436906725919237974618694631090725321498374412255093450300293885801257763344413965453968619909392668077282879122473020181137175403655801034195852618720529268801367442018906071455969545254289413912805634026521335888780011317825410786717389428422956687433655725533529996919935638139368105625908153243347693918153675671350225658261021789620375294944896732858873994522736432445593231280935839326729878987256105949063243786585946720886490560429914334003710748228485954617067361499782246401714058265690580661107141681102080595883163699312843475940872917544825423549284660813877877282184331186044033452674195057124193416680370403113191974248564701969804183820959818725976013106456956708536530416237198693880068132003295545799531689509246968360262226152863422920659250369749397276718453747778126749354720645967246279318402096409773460505588424863908587080956095376183795859367719973508367248675784674237303726577452232170349800210638089991309525049430396369431282173230940898951918180357271516139016280352110874860685847087174974341956948347310610113970206417045726067443198365527023283068279101749207770615858271459051236742260113375302956642387896490380170250258443926389339574793455290587806365887339080272572795703373935798777955376049595984581411679218529643263932808529495945398783661253866777318811256742625555270885946126182875829609540613168376172330254843680323767213178388954618805065389769444396835695528481618062530349759870776887414514539964246167832768833026285459549661403431738446983733279567257332990013650214623784263549488495636966552002397530954132490222045567336783812997501612740655911789006136751192680594611730407825366805923344839873897659651886818205522156303019121339586193266648840055005664938604070244695175538834425040087995725727693557090056819825757297225278232548525448380421731882275943146385090223022662254834535150320444335871140245035898815122307734778137264467203189463877673764150358998719868067077021736503561323763860339250716347234971650720790175390296235680029163797189605145537658596171076679678674074817351817791224679258011417237065764972047496522760693162730017615371811410490433783741671960732904399236152626048369391000717547621331753074273592636947262734895959020366069234862524145260460097606031649007055527717809489900437050458651885467827752459096441916529271635868453465939042830723857931981874512552892223731956191127743960172618111252215966008846735653777094597052973336080990016469690675020334424519924180680266480951079499637281209242468418377548738487184472750868628126801808322098420690059480681690544774405160881757890019011943453719471234115483292210015229786951003198379883912170067693796680915888416919935656479955556831578204204366090809944763152672050309641033343833571074300147561686116839816160236262707562777908475288980184102777049515732181546370145868692070903652368017058735084601759711909006834835829175547092665796243610655844310311486169258668663853182351029849500721922795997154499730032876855262091218292407568231465353280841447733792094707406134432036392692480829736699766156967560697934470306522347229865660725355465946140262801297823166249467506679911169492937651934821539908620537647859497640519576427261012828987725046448207566801624492580843847714785457976784740319616677251588689091264842342528904340308198261249877110762583741616992428917752208150866870885988822215966926919642668887311579452083708490927569610543406449767268771103227805854144500791521574552326820125715300960992409776721909800502318237728352234639647597473617502102002249197003964358547072706383208231775556077867776824639545306821794409568219714931778487545350673001571392512532334995990160232724383339365676422157397885371199790344070364472576682683984439132693750854408640686447211243780768284807796561012971796554808788679000384463615479311955138535909691249230486114995237425356260257032132014607615172747658623678848524132992144838473750013137311594293105157197744995210459133850011833414852323460744007710913300876497700713195957387862312128157553302028013900924048670687932993397509231237520845524253038580406667128273923148873309224337033213664660034613874433201684848183615202473281869761425187557439991681684424684270965289422901258029467660247129127476998485566596529673165074207609380069739775886060500472359758557828704020055922308048853354974202132321516256516703819678043703794755579661277165801085117771227209111805700048855448683427410703942632972002213545326799123808308858040521338884952786427996977312978039575898548947064008605711932334121562682495903504404768001202423877260534853586601031585875024497248231579914520255856804110129627194940376561161241508831610534033760222193504736472741555718191676714112801481643712397188907478890586240085515110584697956387782575966163290466234635404354617082735118643642469893079645399866273100345397048541101179101495085871676210721769838159567562246720461368732302440985045963852248283159662235227773627099114749072636350139788429916486095970007382264976112739202180204559215023251552927342964858571435421142642818717959818656624218951231849811845679343017338747463926129603611388387548130279622598934655569803252627496170996362741757037640106406060702524537968420456793697534462092835877082685564824722069747429287203156327966523079367543825227676801485672960272505832609463117639131348926901325837976687417718078591289088693263552610086967039399515658050296670301743395002645855201055728636804710054648582277465226904449964700359881025540011545818867670255589345995615484133308030531238333030435792934470005181627287637838711653007104668109757336528118055621851650895956821050711451751771739038422347760827258457730595527655515628104069208041058645037435276785905228989591030048122252203059992186283279401057804953694216817203282497086004138335148162760744335622460255829883032193173639268348796458543900503390413267760386503530748281384832922522160784624236179401185475694068537993919895817678863779491327146561940631277587344318066357427293973342524863111658002054785349078573340012429038330440036357935278219814523615079116948383826096296134971534429133338883296053376224790466238161166993556206867164262546614259746341060873098672672666672068430187364650586352817566474671411860906668059892945270887399915620211106265834929583739914300779486524408931964557862607491777530680952059320879621537144734217720365552102279283516286075377877382757430851516091017158628316327082640789296361005020176783569623598351368052629569281791200659762216932752342973713199829498873228752192301246396806093458389261671115596638118512997260706233693346723309481121490375132793389981847696749174243939568319982067215029621826289149311145950190116661382314711804533933365956603833323469448855822585735831185094107586126552072955231823028294608684752409926408024650647154897360371373859461142094901581578513584694250989890067387302333665309314189973376908971221959352433522938833371107426486803421679762240424523569955239211133621476683524235322989320956009649295859449923493270067308918563279684122777719061297464004265574606935539554068202612008714130882785049412474423521941184856268800169856953252399114765739446835012050761760502791729103819253460664288406552734201134896507884740986179251580085069511704747062793097420724093682581578894915558448310714531721763736650605511811555426786576095743499085457370845994540149321615970816999207275597467747870508825660155781695224589470003947336751042217068772685174632891496043475662749262365042560175384139961828919659764890784953097694795571927781513645135402531403808820481174352446696425101715361609557295893987306750652346517015829885852209193723208479600027805514457876320065124824332822925004261677948804312091292857703223383779750531981676303697568179519848733084000346263859323161170941099803639416388704289515902982048156419678366059621139503009147196453361618637506248081612601334957526823531554242728896424942765681079617785702086806994059256647521141485362554917802439610581561770069891793710938127736736162295365854524379840617397939602937632932114019588812491541859724026617414600771615001275504806065031170442371219539192841353681840939082905890222128665776206307768156935458859442546828049851025994732471675213711109434113121902437789761075339068354845812455785572978216215279814284101815499655928362631111820552125168491488224563173219994175312399999734273321764226320590727956311882636744456993337016251371383047210292951001681191752139758759149074101107704551968716690141763263924098308195309104632948040760623763092769367434541929814621295358265601775901898809367626715915996264187254499857548824806147159308361429914909511568143905773252975926936881103565880611810912361211660663602689089122057477058782595535373539773844702190017126479330495186624594744075490402088271675802331909886016046482858265640459043582231322080145730031289674304785857999979143709034050885484365895240269960457520833320626080963794216310370004670005393691467536551941491114459779268348146068442119703852043964629699152811225339502802374484458094655064816734041632291324329143244541244738874869064228086990136602517239073676079263151898998360009103975964978352211435729088714024518651745344936020255039519332344156456312185934063735005058446487487441705957377744270107255389963978507384658855565053550041390449568038197990573649004791967785422133545111641031874470646155457998335648101669770309773587468831157071466418211976214494192642965673660769352448617750440398533445235640824047293885323776613459097226839961249171057260042962864755261407528233549188410069950103348052932063050928443964485208516550172509677315140723335496895437748540771385491759556166554879551818218507468069463626406794060443815298671959659998892916863576827834381943986099318405795022358756120325430498311782050269444601238364658912559894110011211421852669533945691959052019937573717622970270244022900457396414574656591317119395864971858579173816719744961240037038254390281747707707812578273117746191198701799867909930470976799394201871127650000530843793881235043802977077739753899427585033043440899810047250491490513967449365379242599682852167605583924279263970052130465742808451525988465941748448644394931489886927590316820655725767703568262495654915614994063070552917065971024284045549287744463911873933244350817194657826071588170588361435353048318923716798724917966792608259741158036661220865011238243029701865647365123034180751044451941878732132431876227198106758536643120892725824933095124009235376140284033213692675243609451645916889905550308715778864430419143793943346287736018878856852144526506891324771859339397332277801155676424385389596423779504333442346937864982654634856585202125032881812083486188347091250476395346836652078386575206138816137605686425322351330508134765077599005265681958088402798486868713474133649745985841591032730687584778803229325366260114112302191279473687158149538784272635650784931537442183789400684175868520541126646068659525079953950390886018446203010232743940324769316974025731108189557665325241882136398817730164275416364304616326282786901357656932152116137864212209398306565958744871952326103308040733144768368248036883584583321198249421079263339926312225748901399682445098623603881105347497646605512101046064662220130294029531089528419199785763292853427032613752561224961501716151026657390202139314379023981786554699311426399949965288749424081306710669248708609942052997906872141625527636836569242524169655978499027956256126011868046019389544538622206147849425065056335236638375338044331490655968757714038966308069742363685297233856353765814424558314099153599697259841143199015226026095330091148809569858690609785285746304295346762880458868156422974279577776904634270251815584844906524589075842178161792259690035750867120677728408823186119046853756140649027404920591700778623840396972586117802922715968074759629664318377043232924293901613206910607134890864196464865934199028693421383174015548822648619697448264635330913975667299150255097452149630381340781984191301183494290063017741960352446646828658716899045999831343387672636285077558927825520085270070904280259072703651940299865687218872590676325958998866386108664285639505034746905730507557893273941220315485873842295402713760811921157395451588186546182822522123072592972818101882075068334069664612327074597367258280250714452607436119243511397814531934119733834358419492305431614348745504534525642858240711570954146347048118695037534410012647366667374045572836228580873131470643410852001928734107713998051328856020689241013346386518639253405650555783733231095961075709444940723172713354572619288517860028753931683914332317809172955132815990145612385643099773711020137082480942091938624319406599331548553785216783816520220295101564607486711731329499268693645361250085909909773455385198227741903089435633385139643703958523634755899165379902993754555795764247302976044427349940677804829207848642154937951014120067839596203738863775317978552756029730204105798299283089872192077600423396274080548830346955205141555836477603912882378139139378812690839459128230620021043576939832109620447027044985802544098220135339195115131672397760224400804761782004416749502007483941743370022252249474496897964373127607625995150586036050126714356623550721189577971148614872307906354328909135383049208234921257441467689985437960458685969992858481137133531510392949309938438611704690122125003641144690186133888710883114196545941564872922021689676490030998839002974795310187845102992682330663917034854446183734473502396260405339774039764785248502342884905279854670217673873114933620417152910740599654492807983818540212609709436884259655229188618447704887025802924399341702412323940039919265163525893107417700985571922435462191325454221228867688627916592862308989000282244262741885313072347617582887096121483276504209678150098742936983566699262553420223984079712100762002259402052861643992062013172201350525464486817333513027176183726625707240262468598248471045997534809919624687018016255392600716774926478247488669793258445742109329841476413930233273609270766832222596812953422349264139724572565692619316033345887884359542024828977847979473012755567933906445728179012248482530093535772771157091871381785526905998041983304865156165842427775153255514615021920947029130935167305744642672462581126953914151282081860302657045019097750701255478155658875174232785659216071600062057898742357642420871314285828923626894285619480291267871301715079858379249017535598498218674238278761172373785828380006743348710762223079586369938747889884865537439118534825202279724052522758261785167257855540831900667936499997061311184640468428138802653662211562828585820331083741400239115255918105313948428874072090695303482484861124103206869437632852360631437931180998853452854098030637797770901186764132154373212467100415396472919053382607418219514506213469143734431836245918968886277685770160907472284818152711199442551307839610676365307694690812619347138554583455817948747239468070044513590708772529660998577640361984309116486270748352641575469953297837141666717817070180741374938854696426694916284159584047821444352058756780659603699056670159646681425747418576084938276859528841281062683717096257195869995706860970416014552123366193590318703098304516868289118318514473512413212880238591835770064296860630873550868595788769991537648582197913696344178371650894635362736478706245859276619009654599088456116807616942601439528576064149425460227336942219227960449006154696960104509832701376794832457937977484559510342468271503312199336430602324409826281529992724776320440845249882485213009932133871940834994917363154961348058275344210427368932614828490263335497068947130418706742540008607677714759112967050123433154181552303414386405936371021476048404569352012198479489217602989428383074500830927408377902978517217815527045157428859621160203967342340814885497252823591479932366471094787429809349008008096112288622467422422375050536136182303000533001734330826840769984230734364637293172754533796891568392414818511651428974180184001952149171119507798603448717658133570824969423048847267328961875035244746224273253096104957953025227010857956454905896892893830708818023825592600032229323565125994411601048996964391423689529843389197631222866327822308923003115856989257172477556914642796499044235397665881151306238176074121936147720220342347109926160083691799760366580478597903088936036499277343900118539988444669467836467873982165181732813391405225830279588589951196420528131932922394032210745742300430145616242599508046739488690171368471798368896635828732694905578291477380522068139721979661645849134067249986234031772158644263471039379251014286845084240300056696642043093343145000585486299057060196628164635380599368412850519586591205665054550506557840042874367096383731448392078274725170459754813839316938163201724663741526014815645946598111427113335573153825540729913334655914590384162734514884480048694615099275707442214441668519452381769553502181548628656328721571028908074799113964313341669073055625798640542854492150619366193732048031731676599641205060577295266504617090272701494795750883998293168661391247546548836842869089760027187498754520915312808078315071826306108932088419835651907568125976048072505098090394736527471391741620725559765900420815124826171695025451992447738009087631275221187841488737711012567438001030434488633898198967655432413224399719294473269353708488179573393696666135024423902790256586829696518080332756075899780722026265798279517459960140391669314044237709503173656433613396504070839721242807168663096761905426397058116052555984231792163183359830393040449300534899670334901507177729211148095558630207063190732899933183953979570232446521546023897773699004636540363418702438566604598038523235125022398170668016223540240019388741267057298944856924432849258575260752716304050765899880260250597120293414568069634625775002029155130342379510000393187396003534611083429459903466910582382029743051744287046402727118241698554601603436453939103211830080116293272309451229391747201419409989385968802502262276256106524483042306943292351847122013153139104470631327525626369141758937451837403823376238317093378898304154084906843878181645921517505651792602560491056355553799506910687682444519187086371683854781548149358310040522842329818597354008495293242093490114395398506002060091101389034316778996933254887537793218768185367841167658648194673190972386635412866582088679587923681575686443846250066965420767298086086701023847177379424629928929391184513629399943113749118463826392973041657066900625352058552959862188631016978547203351613161836479130899952763515483408330547510396233795714661474264519923650436765413220837875636201379132306059562901092674690366246031687656229126969190688523612511626666783342186964998666624701510608321308252152529195919567696023150580135508938516797581564060383526096414401115480598709788431603855648338239275655292346922358625193403120552321374473970592157275617239385694865031325294629128160744622375521442907914727238847683258922416398244192750569521800797781244360931948166707756832189519673354157288783186817302538495560210661433363808848923094271721577500094949077209124251681416310310094599615012794764715229369241820751770247258516567027808857248776887754400064330428200284934248686543782061242819639678321690619841553369312878250687091762712641774416797549459754119680243696902148338106431810426082345956767800673521785802552627549903835565730077079078970286050814548121114687339231110542444414846386153984385774917842651255691002554905183293873874871233818170119812704496065511970339131773218053104791233769559909916838584889379105526428287583020874600046153837065310316102731022963173968842891465230874082905353881388116835553373855732898808645622254821269793246612226627329126991278004148463815491198494218324640029163917599000433580204035236087403257497710090637258861767739793838838415521944875649988624283932190689632725873996204852982734836142537036935251952038699319504437742549188561889714576413342596579199192878704372290545348826181906458412973610992860125519496922789909210241744011166813432495738535487794025002352151774066491312297268012200179644293543142066117834430324750611232113177410056092572530243524821952567009222059177113573934346356538479932538494735995771521814810724865880250749755665126520497253062862939330908766529771387761756866095679787093356692667490101726741306558233963533076618548428729747140198136081675267912180502613611358883517922341511541377363500462677636514977785026981050752611427524191173276569487987075626191952310191186541720189588519332828372994770743376179120098582434431854985857439941719325580140506552093771195617110463047201137951376341069558707387596466763794485737753840233742514732387486747510045728176139743419188355156584492648892815731242220152298456724583966328768428690969991982559746074280927197487804012138846042973391130303015441814790427326428890590466512177496340795238184252721872511538664356596854239278898746280031205648967025790412311864575273612133569799591057920580440612870233666669113274427583626320495040633618428842548111445787464761298235561942441444264318678008904009459171716651411632768691172856095330940615458443587092555083422550311041068301888127467126183214732457594297618900200221845865842761488361921826664703315575609945797396341104132265921563383197553471482218122110504122271355682824923877333285269616433158095614892903480010369522099209084137203998011767007342485094412852673813852520890129189061567301746590498811046012366447224957019140144636425716267652983044565983187301590750169130270365465842287551373955120258743888045848737991969759856886961070997617415029044701193255112455789075383788347433483943104765503513752679670465478465904611548054636486547628409003803075455512248779705205980846094172315339770589865691013848535175713003041537876825716077108496055412620090298275969874585769067818309288611696133862952356870048091126719038898089843766993180227629482054621268268452293002401185089618219241768061109112367841822930276433475518299639386466347827152197965459462266254383340713393122183111539728390396232767168574898670406594028978778404219407413943089046884300863634031660331982247755421388269180318121028098245732106510932938990359976520010204327455801890976222973452700052268659074300673369762499555085740558622266730488871187225145850076740212394185066345681482654018729300282335859368759380857763493652017294511116915999153821103992754078320446099697182101280657743803990093944897444683233632116685936386600400992924762396588767571413604381860302188032287915261803493627921434020526033824099972221021708218197596042270127944344201323479278543424620563961942049976792597200061846600003157266728651375385896169139952695656325797634421974931186697119661802316296063281139176258892075024436695532736824127648208860097943346983839668372763254530466335222369675986712840544233960637607966181155394295333948433319318556092596001201543133677275308158325000529886171225140753196758142689154705741430249489621119222473814957577566329859353926362904981357554837409594001441116806580068694091027437437839139107567864954897831439620937525350583607389410267890521435442886249474873630931165899886390738311730921516781206450687038501120761068841090731029131695708675690657319661348733010730600842774306019885411171802268300704492068934559001588325205211399407770733461504138979778912250208009451935822085616044287841560267565748584089206965827392264828021949853344410512315567661055824562424116459566374616205147269000294774295413325964959318586169589722008737016141537923033435983977205834666998293348757379903560538320745412112719830759013316842901768754226274863871312997630803453567378696946735376923369302532177496623201191646777332124299867073441423981870025319189868617648437001797228119952788447555374399529637209788560566672491133662260820524627467341027085598765765763157764742306765724680796618729420268886501026601563704534511811305631978290220533080279135207721352551112909920558145728570765979626261284503164862930876023019061292670803599366529621183580909487653634933768792683764005118051355850533064196830468184527913201103300115574273550169912673679824280606005269437419884409478278046225634885667539707519726642285852888647834972134180958034009592977240417697512478076453010878234654324180814898218379080521152428691110957074243743550691207339516365654773241845607934467429353611837388122168869918290556621330085102782936386636963209115647864379235808146870800546106152259343717375831829898545882199220868283552820683779618989833407417792330946184861969447907285074539009487808226408557636370439053247101327723114866144079467952239944267383736879541797163382500806976642235077970931926329492684658015256538745790293509975322043275556851908213621153556148456517950831466878566061377993192590139859495280982858854873664318668482006593088636245513684809704125577815046981584950856786942520190634554419378519888692286005891810045570668379485754447042041647951879087118905336558379977197642387978145116245246561575027599093575254293258302764118172556610552271412252702264337613313833674264939677558634769563467287420474525831487070915356746896933173811930759320906237829180014719400470421992587200667189039573391155751197996283617099228587499848201721781023795922885248502099061426906205880235681989700281759941294096573204547207171650226112255554326991520645332710825937237006808542118870384809458018731662392916442328998989159002969491272868401533575507738630390458614134423095068995402211431989174567281557330725757402785979073887230589128855638155879481078400206417139278494552231504248643596279834205398093969418050938958367341179542336222434295047390115260044999420246649853028941408222990800221401799656771658177455511570297658961817124810715875069595949485096842168784690294426920771244841734330690012166431532861626103316336554986088700778503913678016575597947922652120276616335034866947749309517569901366575147780781379650899017519133439770276314971950426288086034068194601100249563661904235538921630820180152641681983961829649138649750260501379671491715636902722096800272107869692784515577863813554996893200149193702575179539595932951372075460507549982039157680728123616538306821252180468779062249632308479386896912215466210876612851728795263682017494953085891299698600087225796716709690769826345591927765201842520673120366862762255136155485216135714956278570749433910807307992579102509756576412634549769417063567190781388705941284964021865846785243671305190074942363303540011666247579560106700687774846487864182923377493869650304516589508076255870651700746804368538162406956556182904068834640330066590837024394483355603360657385488397987885367208404129545236255223377570303244323028314191811120436624668745192704358918659678658130644615132023778251379553828639480124264120525633309827753020146892167838222421462309548656512140660883753234515911176530900653651819131060739958946361894815162099889245977806628496553828478723417904074468472426914216249251514024078729982864117354691516058495627678295989754906058108475781014815788756759218010392040548142809604238060583569964478797822591799515363570297731789351931146275740343570040797468321377353215950167110998167757190469059221968055641280318968837305723271041682120025342112889678166924135644379503892033367435451650111451803003602119696320840493824940780571648580993856547391698498245280193321310605133691001506475812573482537040161861412314394546338214967776553264850587085857996772450930101695386267653096901111052411557941508628692659886114540606508183247833451321345497404528415882758979536547923001799713313362452863382724624344094862650776172995890922405961490834482126626852842869584279920131578795636142629505453746530552110738116662842029858389092442879137032547280203676765586117904418795100359858540623418812569219678787633269838370726631529381786680879587684800347204803933776866103021017757026136128196424314677420885120805418838274294234170336814752637531609613451493876302967535521094524208148209773791960621160376476611335428735811300715822381234514744689036775729768334269217960247009726010674860120031258641645611117530151378198057839303428016478901160801823129283610899463363761186549687294572590326008484549290890011177813976725678294937757084649307005722648968305683871012155763276522650764104833487787557273155760183747928696184032887502096849310921665513301891467457984649517067437709228012904790311343055872726791294575763055571334987372969917378938843170668546812418277029748895753226729526267852707368540842312116419005787962096979873786863811360368105735261509649392792771681326072036254212671298083978301531779901663213264937481448279726693578351417330465665845963034949122958602057233687667909024791333629909808800730369352202795332402578892609998436891391353266103882106043267556991180514452229747706430383581546896177096626405336368882376939614588917046350220300610759254925757430436566421971787351509393193296662901519825919773897406823995874537938093833659814473118006522858462947989954175048649933858409417429477983749900023900335805757992575746165075626665750627695546665387159867390676447262069252958977922833057716030378670420463402834451159013034596607274309756210735709267042485430036496617567846357562566662327236941354762705313482214754864792456514559031407099197299948673061692262176225906821305029637726718168007303624264663735077400355896975550492385615009645230694325076379708865869425906756968976372165794980434976749501613085362160153737131051660902741899525632994730945253834357708270368813447357755898007289343441355549762153604197980365537818952315208790707852574154853795722711327573401471928157078730330556675642321426242986893313731787486702989379760368857953194259814884511530393822652941013650725991742289904649769653816152930642269547831059928505146990272505051676654461821181073689139952460016146628090419497699852373176865829780294159160909541798317093434395493601072310086112393229651876221104835479937439396854488150601645148754269692167689922036000681545471877342152935826375030853412385038335675253808527266498158933269072217298340296356116183161426511561495998185503680377126568229784328061520449867674493120646444082782419313288929647783825518485244180243786287928307205887240664827477956685839249690018173442309630088508008473234818278989776296524346778389009380073139665175040612438888570925047276779341705671294232336762592773899802017789183060107264167887467862836760285416405209917606166659828066079849877551715524780455980076808848559829627666279447203501191593530860397998042916929394720539771646716915337817488152598311851391105005990113025095608436263219719775176007236986684643321087767944394621622759316423931795764674295109627739718270619446653459261143068385746101647138071149663752851663456938384313165778801419614945344695175091102013522021728482816765465588447985904911089266388776410698748835458832292623847620311876663312232441325274339918753691539924341708171202324481329748508513672648140689964005389170995919381056398994317500541574518008917411086979648788246073983481622474094206433976266146295195359417071918342090776345657078419371257338991499420799457980570385704843585860296148532085814314949648386691639796361507267047319487691179375675162039548888406980618701934002066696834586285163738920353442821439892402072789978632999750199087772055232442220022343646139577131159343159030757673836327240915501776602614832575611007639905204645225072603542246810990969851372461136182166133866095961953179123981496086948740370709639360373308392447350254736079522695134255679370040780891908208635227996913385532981543064725979647397118689860431514503466796636541469810277009340628872962063065980759764638909439048378582117062529748245464464532071256891568322728009677225896305516802368428069227135908777574487581910875180752493717717219317466742221058439466133838655290825211407522807845994056226283033215282770120631790194188061345301001897932682671972495742350652214562261515135256368615714580492631266701132970113340136385909504444572568663779876274429657000545181836186715632412915472091505149830012828775495118545394864290255248793945766956339434215181147047396906059899655033262719451231019665696259925021611062902049492595683048867977507885016436302294740110307150991733407661853248535622092978463344816655733255225575301355163978735909959158734926086094611278766584899647967165507989396143912193535037502371761265835716736017119073457088511103375834400648106434995873668394389873990349759937290574392512526871431035352234993192169462452214991324377298864808904620277362923522061325416967509022574536850411133658859304514602630320440478739517425410083480112597909736494000796927679629016755451695168681292282519662358579165167850648515800984802179217255982154764327697293493662502333456329016776203175568684939744101114685642395702527873696701489821765887286128684520833806415428024214984349016727009924739661591682563726535486314699896987492345022217338659195123968253131094291580247111363501500139614056578792747774612802313502773631683776122820316869907341606863463436934142376881942449860771136290629420559089796267267222927379716564167279771137122873603358711592548838097524615875354492872121469222530066239940530140556992945835351040319650963541712873018431556333909247573335523145763905039588227470349133718457320984430939423309402365692953320650861889661660467322795601533416387885468819072589674888436813116246047551926636414914523449887145928284683795573607969419312720986579971069299665651563477268516581704355444511179600521839018882212719046548442070886674175324335672995854779005389913841811749381988199137226537735523010852237384503311853725022908126433434146680744177312665028129615817497673852957904768889591912833456455113186427016579056694523986019490173911428157334920930905207419232117814386966727017205981392720907670483914708992280693026635273520580506219418241212998108488644261467071368670411824936074375794865702163205793646546339377134346767937412591532852538797299834787075489941908650312871856803014162368802614327148656177566912463355738525083015995948247379951486534402113508392803048171528649142188647921253321491527830673228421146761650634671767724934148971423795734679007461277428973775636126451774975859733011665216267438789926024902476539517065700451940747490053540109157922671568829707294534460449224987036855232264057033460543164279754224206265067509098194700360402107237806658734854408250779022753152451599451864029918201952360172914051786378261920681275028927427504799348650732766829660440670053108602540589425051366420479366798429408599067344496338326279287638435095305607446027793374336711714158777544279085843174298975029876580191650068467345139693494802772385116351750423992854303663588077080380301005922592735137808803247612052609300442146812890250408454794294287425299770770384212960538665282682008287511054627219649196555252636463148386103454061811725996057686009011520434754188077346324812490204861153054649475840926083097954823884471921652663914478924754402474742415818997284975362387280569114546984648606853116590002304352072968893469827630105900968345055340130177286264833917441608404842324924978432523628516222546999828137585405223265969147594484493043582875968968737766101373181745707304107584509051434901676095110812044036226007590742615636130340405293360657160243230424115121483989255330593369525389491857931605373355205821779519463103914284162163691885940907483360370190078789771177211637121019648035244357615934627662193795519330996407980555353520366498479729720612718777485203556844642585514903097112814616522089525487697229774342779389225430080400513612527322878563482857092440946193202897520743916186190702449931929755807856025744030663016803018842333447791542146247548628791620433658657246382617757769226536010150164086898490270745094334810525944179537692820238830946192031287733162079131075030511996173021657875981322277082920072008782536257588135143715111370291611352359465903486615543077364155974035029389040459310341124609577270103541817424560117336424126138946008319585066216880048745644082154681941464435487361010092444566401419997956356649215297915706976945542688462110385221846349697333303339455070246936406650175707905633097564454402373928626081075132361394957783697623746456343073265505545141968279432467208303007810358198183868291195723179234110641895695558001447479318531346567138185856679876233365422567845111249448696678952455836643703950230686838021988462790845082824550281346311881221712162846478723761892914626664887313512693740167186341769823697437982960346884329216129194789277959231186374060473290364692220750401633187832798663349156064331419311600981242542135275423261678550373964923748130408919020017825297401164616914211192092696800931496116760324892482643620084209117046932580155026605701660046807180230695049480144733293302555305881961454246624067171493241302118820446942071706728798463437992517305487927205086806931910696403762786753063021783061785115616516584863000252323768929397457811205300216785128137556939846696536708928717309080140019110080588292176421040239655372359069285520610135555204796273937505877253330981861620756023429467189099936597643646911316794873795463087851336419197246815592155795082998738507268493699391641390615236850892819054253732143459725124811756713740429680446712994201442049199911280626021224296081585294420785469181757669798003693942047848971027579405983850707498268723543258064973115250713927974193310911671005593798324069871502969525908056186578927202775670946719553537085860319828881932563977522135357403037867972886511056803968663610292222652880529089582235272797177822368305134529553556700131368977695652806098151157633823693688487987397854807570857073811365641646875334985781475643298200181487346077520367293399408405303659938575396807487412652700253242197486572038571425272857332380828721691821740123103616867214701950134376661928272570984871915507405609009718343861244731938511127555948628075799692529881777959358890736725324955701884778591314931347729826055664426993444454030935416532710730772291852486209659975305610365206976266567521711936323012179225388176336476561706160747977248596898704323134387499771589039442310204566951821497508604241650829364271754829643873238747377030711073512537544079930938824912316556200712143189786550266136268095019352522975739230447417689003069339523201491341211220146867826675041886708636034840915654343697669298950703479635797741482539312955270517093343178706943201134121757599712623047427229175634547566108869130324583746971656241550269535254240008778051895741323728483203066398967489501316526730137956391513580497215389186818090337772246245032728372397365841327835842544222495354986725333670977550529590925905449867720934570440742621623190115707717185959318047979525282477015820115697380926831635652474066435471324203661954895786454473775716337386739890599176231529470938861858478588816966762429312983889586021500962481811652735919380942715958735861491860481886299724974536938504043738265050640330198667758529923565180641008213606763074786218363554294915327712378492881654590279364732431442925435745746923377361834328325752356773832033203383366817748754882961724755440996295666686099337142061318225181966115505780001895928717270953533746567656505637199457386110109892592044352346032433956468627064108835935640558370822657886494387934798619558437852162400009350663254171360908091114275436887587348762935964581831395522267063652900765650885837400430408600486083866774872596965328572905798473774712029581474260017919267389119249760741625955353918806826524902984488130180196904946727894088049037911617469421915434952104338144059412686974484043862352404119280529734510273348275902351956744971621293188149978484576836688746586313639340713788292722360489509430906620982705263468279535140501242447362833332560925353523401648195014340570267604702654629818769687818912760509489639860336404364917587181404170928659823017842933518678803924111750062485922001026006079971842851568301160504500147889695276418977019281735849032766485814331349082697608218330738792210059657256288989655061029813788338998837724366844553787564218309597044301003237882940059427239488247103845838419580544230672684405819249101239505514896079659571972065082326348078098046284360533996235063596287718806542184677642681620093919588766602864406958378904196573252553921758516319609311922325905161355838854696564795483998192773696188615045467568796171949370287838668720135222851079380999742000156603397847010568166837175755469802095877685116170605375625968654531602298910087940577562216881389577020972405028074557546945470517473500074195017648889541625847065785260011956551752180077183403344717145365730330060327284368959481637257689335507186500094828917237546752192757264155863526378323626675410625671114204886267440709489943663093153210509877032589721458061706196989379663869393828856271357936424654855794144123148249242038341688124759293894042538707670293021589740013283939897678834422871081566240636900859316910656353524641213801268461057476945072186913192202351359341908357706524031146067305667058041175297012878315513208502524273925053651092047498498587870409994816223365446485877946701763084751132828890608368178499379348535343980266489587230566004335726994169466372429050893593936164854773794424827075253478040113215108571933824180091154986172364967736312320683521842592126871289968496056005904874406986487181232830629372221156124736834772054390865651064831295936064423993341326184257765092746825831323496814902800470129515721202310631955553286322682217909053390625953976196882605263594099910260685492861298310241457374664448465212475309877037928967263760904125309372927454922469642069368540573277190630674367114194771770476930466102483462921689466958637295402362304697146579264709398215795373503512621298810760833894193674035088423581686138946002819362355676609379866373576054374799754691821351739291065799221163347505941966286969049903322206748626852555692858502343893905911596374738483677248412441116035290290701013537361139952117522174801670297167661047552767828048057422621668088882267381858565357597983868268009359570745643663065424363094941911613469378061736990671387299927099278035248241163561379981315577151084391366061505127388098412342879408306987585671087037333468625738983006809241539300333819037034125775203145329830348421389148990393318894580508470670754121460524363041393732151630389778533747665775898990711255389180093563938218587731451292392642479976657553517129144000590541356977005194013377585581716199474505337380649830978143004064643316387260411740943914922083595751638687243512306109821541259889736840221689830738656611765382586934623758057829015068608441651129175703679241072201720733001769913112365072287268970817964947097276945190398440927304507704931777090675370529741357545783139902376129406467088588761833064502624478408504209032638727406954120600223922341867461359067699483766019488316703938171902367934030086954281621832889696999159439497375854705657943145831750837118417653357724704244977130423028065274769982090877635907348422881944559191865063738005040525590637775832160843231499059759418922621475590084748202478002659439327936038787112467690790042424003468577271407626967425505699200568781776059956612621650986216922900133726039884902149979370322418162932839925129405623671189554098563040657429157423972467226098543450860915770182627868010451412413025173667256520674825871473507350830712091174663029138149371551745163729985006482258756806022407928009626764594816616771571026209722531553643309233339961813011225568432736192337594198320766016178984992096235055438569067296089724729704467287793701541570100769171439444636265852296156610484069504237065490836351134063558043501725963908416758435424025297318921321959307984485591995476549556911439983809401549395268586343079170330183866963904589825357839515136362942095860809872396479572858639527181881471857317694072467497643157194507596521274755108046470360093338006300151062824958256151305342175639170727764996134740419289958169899444196805062085649628555210776878834055992960852474220542421453341581814378697476948663190750168558388841555901158634620971893056812801842810287683452944517284470105295140985697119385950981924338264787394454416989857411684149472424414071677936711223230895226515642380391981680904971280750353488597757891209996643275665117834449014850270501420178467764437184736867439104512356760562018783741697605929895718025628648848746299509496373905281535816236583205688125373984860551784836742290197307181296921320212647918488479437911599257773753647526235854235692896124442504509580251012373318988104070612781072605181565880235477150390541268129997578359565360691240268079984263351423261604048023777858678231326950580729942021527175316446335047179936214201176141974999345623203138818226531253718706685141635657945037648674515223907191842584361305377101612208908499739935304469624304238124536240296787317792379764282999214224235324468319652694760047377989966580134545250670527884461323999764016324730910412304014652064378440665587761775347240892800809720843398490355865306633798354166881540072747015114552983636341851785920846360847598615805393389336114706120305480844686539770251738960980665565137190691273272985836937895790010072521840584254941581046080612553050780102404687521216762327380492032502732593543769943691742390205045054805054810726574752369652931948802553397653353046981565869783626773828131548521108000520847064798454168496457556746323627632321927540072142430847662709595061318333468708327188463153784483307229338301463095761373895174056959434054938473129913465196339919971673437503325909634953724168535822058482025323491501531231264803090720566278117245312490921326291065565820842586528046270209693641398874045704969586991681738804260473341138867151225642369858467598329355100507040420812109282417313118005102593663495089087254241403596514166069564845893783339281474115407210602788875785238635202999637955810373601115424628237474666891485264575617793761225283688478802069900028251103317633961467834296564315764878463197638567543689288890655455957231975878809971187617960051828510003635385937713707636533016351599463239618812122148729153969860836821709410650640416688729190663953515704069156405415648898783006371355107791680551576719388414501848254226296201825325829882610539031417920997123973739746482107577530717982087027549838709672097894670878679253893142570791947889350049451738061821307661771741861938002931711763315624897982034714951146070512472269827554351246897787933557595039841652869622111287903797768609115890569922000964171150216060011949235053843281189176103704482804962437497109929806620930711274381456967935811645756065152049493206431028312607080287162793183497546359794017632195983266420560103902381927854431243027732968479784750981716809069126425898949185269768164764518583512075150704409591815923681043895365830792824527407117245454459244441156521681387896932089062545687456455060789499030364774652950511458894261221179143993617846927405353179440127096335601565003422047906374440465857446848404294786244202578301467903218432203630411400763070018230698350298013200110245961814104909919342242771167715640610296110115183564252571259643462138832333759121407474640492135910856659366876653080186737109464237143181132902048740697858215444812190685255609212761029932507401651629222201417158518893648751507734720070241898413405763608555235017411523057350434032019050707852019368161216161769164989088253395616928896136664323540906594430745312273925650076889107300571186203972591684945414998156886457557192379999828476176999765978385229709427104192819442839917790530000178646152674481803547906906273375938735935302978938918019663441764656031267588166615846544918978790733628228482682537451696903669281367126690808289599765135124945551042371455268294610408707457241365374075154273725048452824327274853780237517130330384588738146995225861754893904198145326082100437903773083881325840573556756032889753450963486622343480253777487681165047965251500324620524732896935905152570700342565594842724642042791257366646859453756887239921131856640789923508967186707375135272246083973320658854519185767264954762408101012695531480951241977605607820067394888582827121037917727068469156123335121120478336098230482213112117398176972691420502490884100787392038724448052702854708481682932059013878496666982260052003255943037949535647889346010304736105682469614281387082157898786270038769521333813160136365747464420462026930553549446742344092844437420414890373602420525999250386964845603975490408938115057291775825886291951348775302135933431187884173872782572097359240590372976620454501923575528947715654307977140353461870214643953894873615665996342981984533977757041404107374478948066348262628774833764497197798071363556404524999408004839938917239468864084639291125467341171409694495326111403415557518509136997618804874754165865986325957384578099679706362701844326483854454677649038283846786060476871035105988670875221326767262353719837986127557291122629617690369267687813316061769317471109933725370665277962945968582149205898339763647108902364799587504054448712693704989757751922668245709595846492647732720216153693287664877923411883547099357392279785489988179914201356202431603252882969996015500750811584438377430150554040850366490521908370745838944441888227849231757633708509528416278058807494922051809841863696101993690782963360206123013603214963539033863272651953675582538579947689883302140260331272931087407486411545146720335855837764399139931302362016278349960061547504646719822341872912292218645564679717684418429842269332621800548088137389597203809903813407707001296781168564334512279300475084769374797495796561167515264345501085329065755684519255391243125262860945520995106984370454992204328634682819691924717672038215888046790377201210928529691903784586818354253548893579227218083011268905930451496874224206801046877781791642242868028975391326055535399983236051285384082325497125608455580351061872816782883460066483042955635815430278409578710140227902298579614335569180807391852251065369444130003517847508178844105625565791019240360886622076420633642082830074129825843624089944842080639190039138438061547788987571009005955431242810343092960564805637593386335975551277182880250054305177316966114906042264685338656042698572530215417333881889348637122397434010278630108721768105540587844169652457710697485237987140089149553985646179176483548847912312723939316421868360708788678732142145908241518765184297939828826143480982181226841857702286031895330396066739661035971163647912134619873604973715308628708588801322340206445517801856176899248878176312657219020878286816107281929646654212587474554886583330840696307253857904628019338029125870586191851105417871817918625071144230717634606913462663466180280448775730868840359341634863325590417740534652654268205528755023976291860523973822233168490556613495772023600383160231633334867799334041115399990520954429583954246918825799557839926533259652707416911926391639318161912714034780161171056945604822554761701903042580357310439736371784650485929608113142817026342642166063927709199969453985957040972808106970537218163029525241565752894971746646047128416399114272835291226553664981650124955156252319106076067860043784226198936805193867961649043987801436759148094389424456013212091563969801343115063258026330934219210966382189595585847034888738703491936658037436490314536004404895679984966401089849230357479917335711292809370228792298997295112476416811843511830984059731025005681547019617208206708916063889426021825544916416576450268664745241594569552473474961170543243616155735467346437008347583235995275104747400655693608894065837049531467636565815804830773681395733558515854222405108402931643029048084743707135738820006983400384591915330986791832166979077801213148050439738049384102782063239042367426080082181175148839301009480723552515893887219180608814952489622227805858352001899365484835211135016697131127993056913117272374504146129301408132833358187748277804391999958801561400536092142205954000047543449910598752116479415518119762460994128700789865129039590630989563338355828126547639035366022902642650010761414966712418338734031185025246697353321561505240001127793644886099068685770867154409232111442986589086307622490755917381379625712191710815640558386975218077262280027797251159206479913398288566626694832266400532761751551781291633633725637039925143112155980322632903076639458116836751699756032000206418537580057616382455114212243593803832957763398236549589648275145998576618794136310778278458792950329873997349805277121774248148420294185241339465595716829359189928131563350992444739862657188021441206867584334469140925557655697725649625575268443551254503570673208325590500114206584238578771182683360305353372686461295573659055013844571017765739710284672631308151451212243830245066710694536375201112656124099700357913203761366069852978440436763417521975297278772812242948206661991540639474703746199529827959294579508477143072498964184937767141832282011694147270757154483495099161397458157074170373548229599599877789206083414017022208347242325444705375360148198565142723696738890963666941101501777766186077795067302440232843877980439095305627824167524245167183554358390396671720264788162895450258364640388622584159067950644509513247989380088693867735715309327380621082334182458785965169633228146679278321109982933038930622572210929619205027300337955590687639475702151749102799194541039985599738077130835840908589281845021712937303217511952883838801198146241803691403408159388816819818380762661965556229488327767923362029141923829526318772697028125702556471752711334060650710211704277713882905947421168002283872142210839976694987658586453677525462468282747507555304191362176127632151627672055086876273533639196288089929065602255432279531652058834446327713945916195241953124602351169677484104967700704318557343815478710723278992515869170650433578358458855603997427123584728515431182654661670167458110481899968223101716186367103063752475450651680017927849490870437005848498365996847125674639220635683204334525823123234760401656974556136414705320593977754562249290672322488616887228455593899065825442937148901543292590600640110764182106383518904801385707089903044325007317457307726008855914264835942138699210354448107675727564520274225944054156080481859775337368291343390104629891436831785794335546959232462293140644957425083828827161726518793045276600034336943116733861335987019832974313235053839821763384515906396045275509969122729035845326771956452056560398209529033984062211113332103827634495991318073245796811631850013323183575633338994721984104143809112932452810724487128883047821778732804999514725976002713377132201213882021715215506890397446075458713324931150340851820582039925881239466225904308120068795760647757403174139291662085738876559980304180379935158764294641302109979701601854873437891896020000910766166011271020083128339535265578279378482775134200979337079881431723457498977606614706696310966897044829380292368390639770222602702516188099948885840790483506181688445806005934363239093014833802192916742856684161934386659144863942672214364795054377513073603946165241960369461535532141022410463648348702143428968098457870971387564027656005542083571763037000771863238352150075480938409045788368008896861010574204162128321057591519875710216841875518457026637381990316657877870332220861608157302250993672044265960141190689480281068633537163177558072458189853967525569738374711812206517817086318636777499026172294944431895434218550921909026104159591747534464336325791675148723037662643505518336650940138833213143223819875557159594898211966777704916816092685630659744302480976704934550081838437712469759056592504214071866452667656387325574134458328241236566984532329211620876776722832335699560485342368763753038510704157580266664842553869259143901894103020369906808826082534607105175557475814019815874217893282643416146932012540852469583630780543424442157150933258901067886214186863673400646949218069866859776720497902799500764144443092265617573935098623009383894423732525032017715352725266090830392822659993333903165910490139522239097041295691121661809343947757281296415419008246300047581767182384707908816094532408360383012117088408915955176017277728476184009172717883642675841204681331159869512949390833092793593044282473896201015332551003233094092181507636157541787512902451709107921775402004628151982841279039313229093910250052712941429281073662327873029318499080482693362177027035443885022297307694873586896043367696816443247019723762799576285100695307653912719685058040052820827932244166878947157366856864962692602255103550032577985596027738415195576348508483017696704460549668701261657736056077689957151679891251722998891199707217730700999693087023997453075628991784243312125109699354862164537488521662298202484697862655754226652652790057800947554198495797157070267761857017210506569008812163339369404434679798942646885137686904708601552022732027466606751521517501917769694518637484511996991386982858707670467752945694463893635102530606382994994999239105938386866742994658181596896982568774971563112366412764499695759330077725127340546834987906573989543526507949360886427376916424126074176678876849026567871081457821231750817312180008013263584719686986866073060827243055359940634727572847389620127980822205405728926371721516525429849709270579113421354626517095361448903919894926852425179681632859761911554184134615450397763849811239344267131375209850037845821801971958539125339477193842996099032518766128798706206578550701498905190877549665345281383451333805068406055252139036024643743499544399380851499055415667593678463884118698677026268902033699813413915541325340922084267002013524262254836107784078431520436529829629657314991066168594553771862496169678179512428328859575230780393261899298969710769640155353537140068915591133330154449650547366028375004627702952214394164971888014579828003313113011520989646619010866054418080079013558172927828970040717222037778174266902047678645134289490910570424793774554495050741244506173215981725692426178537973444789314597452951927563843196014374983267984456409034903402045496508400054828892300308233728078974012753808309271249697793691756138382639361967340109757467736484825666520603823408679696712264008491524804161048504483862165065245831904330648102054774574793491767419927542423425080286114123298502630071902124034611679673049613292608256748925644666289951116914535247200385801393216218586515450045025799714375668912330974190300218811422797303539822893192393513674288697723515656508768196701210502049904152656183421559166956619365896519161651303804487331030049830177212101098532642168452585996726459916190351291844556659260815823250861744076918697468079614826207915236146346903430873709058790646429528754451673600177362485653539450090246995911171100431773820165580413345230982701113099244617550279040543036495792550614158643172967593563553775248599820171861526917381194710117478991902070810281956997352967786105670501562134803031669848078827798751784624447473707620772658274414989097635687487411358261242547119870418843770297307953964409608271771966300197841711308686285446093173017617757143507630658824837278798239537524095162500909199019013586221709853276179441111317858954191623785630751047431667271528521303417353054788028957690226844405720967867157103089589884971434834689210884137867341648641320626836513341065149031809849297517287450531399526477633951436803100441645502356906419970934228567413040962164623975713667386381036637871473427266436527617351095798382175175744562914639238195925871378925237788650570690475300158035532665404771631070534797761119236122906434521994706933920583231520019293794510833266271048901728839289132946390058156649527516516923000768105697487838853133800657602782819652278642563486492204280865746562131107812008178010604592843320663167989411121700994215046529371254968604659624534849402023002825145693774707209457415788830034160827427755293850654529433185659182433988150351985651843282228142921216956130346714095796794378079345335564424925653540853403920065515852780143249021767509128254188650768431223454437965644386181851052895176223968263194638153050769276867951509033101547152328119653691969976835673451755825836017995549726571372571984095426217276937223507486459591490183124011908365935925930512474974877408179688606799802533037659953264914411184706219857875170736581930261785605381510616025621815193842033123225644385326359639037330233092425921864197954010878550939134397974780203842392149613423278592429866887747341637497928152443186231127421052267542893131105840117869425044270865228873368596280537504561299312117949468066021447387834339038951171827864728362905940452964450706690777372823508892824045074143977303367629874433668571192876521192781404315912465175766204589824831728158391049680981226011700030362409872444288344799837879179845320275053129336933232656037169007083444729105805083834629518298463397949221185198055770840647664856798371458054619618598494137103610190547006273820562037076048041765495662398262542588903889851269886996125453794294114127607703386731024854259940828566933963607849543885883450306584470505585460179520313833531105303769670444470537676798516646284378886639120536354248690542689512597087484354325988822487433424734806771308535524272118742609542208159084668745334113416609436110940727086231386334437120585370553177390966894498525259167527773283431656652317264775862817302463609003368982841941948634755537015429512018150135219796569284124303727234819052543033285520809068178589349481142817168768313081313499422872912070506632071225059601558678828278756013369230133203535006230817103982213040737469001101113978108601640714652831525760450527430961572002848752726202204874028227193139089627607856911979002926273190780591791457062437157726322166914267919509931566564927292434701189216526184920177126881733532726783232605799731299925203122280433799538911707495834824904631809741128970972911020617395847794329161020246242925042544027842727763436926547253072970143121168945181609831196042688570887919397045780967332863274116494689843525554524770460907990204331068432424510526857412308535350763677290648153935997945306057270983531248541115902653970962978723585934428037495174360446316798967568302434394183046129946446575391005961167699021084714860844613715168809941408809327255041336652866784807364015662182032806081221393131541055241181748831255566145298059757121923423532966797387923342636270796287540871888434328121951469931041301434069334209402777645153969809948455422500553950926795534114343842153971590628976768026258979031415252011070516386084411194257555832642931474441259165276271862102795796568955655997341379580542209012106881220129503990942503392961485037677751223797592037886974950959414514177313835428569959902244090110328130072031939077582497639397673088294036446443155739022822105287052743550335418234412235219954499627154864951531214213048358667272694942889805398993054828653496220846176203040694525663710002978833151156172624690864000913773143685044943059153631223712726715822173532918649170073116620240819689057807633979931987416845722353162254126994021721845002186835590445560927906356314049155251550175677082263503700574619709290975161038369987221827282611597864336676146904463604438090444810186597439493572352994154748496146016132503732163698412473994866348134882227251562097798057957101310331914253171345753777383142835262137289309760576413264710806262603552539127666719373351201809628042600877469962109771212894633635837233213460264536081137338233489935974348448646313528823459971952969251885297998396588561086642715641903435818910852718134409386222594559107463186353140340407607976669205241095368588083082375686717517736010022642497927103743671753101894881583981688842054474776188058915468172017468075310950352761544425969797199861467009266110615799639754180631007882517427737685081092093249681769176348527823230863290333721417733845748090874727301789884716866074435453429974530327790726816129270439856850952807538387437288671180011863657575251960593607271661329087400334872658304493138362771619299718690965968460795918283198983837394541473137539335110171902088163800742339725206864267459649090888987705457020370522882674269810508018133265794344268732381292999778095784074215860089279337455929577060884345322479202653313429838169274870693478106547704275755376954931971959436913327207274942027925834989545285604960126413599689038145790867613155702546276522968266656961228532799157952800256514716801246573972489964438988510143768974444561142679238922158189518401760209652585808278537499298273498666168614540888204047853681953001358691614942516698400141259001989762610098212046900573541940763508272690763133559721005916760503961913404986467452173840144571607711539627112855870168962411058676817326707293872341345652825144823522458070351797392963560064305249285619804613124284374231865387197663966204150457095413750575267418771169017712617573338435415207434720853883564621664482201860898119355242256544522179983911642418451154639971436743972383684876169230728585437777744256621118129915889195148242719868934358213520461329368840489478691556075019830797140066939629337519470981717974166314742371800090209649752728957352979884803668786166626985881405765803632242154950447337984763621186774612114779628590458503157141834413436117026671238689060667533357491291449922926211197182709192149242996556765801436299494330240489868752883725922273407225535024159271114300656149221931181737305720561861185983869299727951425988572429699062053300581935998066830270507632438446973557499647166752860375747146581694230020330321706244937481298281027248635439493386793636827286386249618598124007814937024552366234283205032780232103826280861371294648785474314717870074158570772152762484778663144062066373516673626938462085532811888913482384063972040411116138598864274313570748473088394683614683301768736441369287904613184496420352859477096971719380308782543635342837583319061204502484146763565229608289606966916535579049623923727076254928594680949094020556220369990493891364379620176645193848566494428291956044118618104364792117817205030099228868785427595678485847604772233259224534872021333845438439796698341567255331139815307183806297516236476652726210957792277580650091222719599558567408660839099005181964687072796203117047129005044843443049030068124104142531608790488734372399851063949418433143805266819953060130826212929323825360308778449684700173453288231515662246481588894042045346034002310843734607023692347043807447220820369683630807561481750011892791666148071283776448327274298296304725330648873883138253289944050011219708585866540766321721456695041484738378848831198405201526372073098189404513674044220497543563782243565925084626665290013693596088869884650574746602444465241868508434688657723638049679988261158602110057686075752574926408711709682517775511045272869449044899870269042780063624912939470745355946779863962271717222788633068430115579906850783484239329834299781108587800463188059371442016671940559570525736473218180389242105675379304971557776445363903630683602643820846067359908629979795156900141488811681346476563786455596885113334436220394942495327436834572096108631639045124019668117600084511814371284466777977325073882640148389950662742103494014821712534794551303899063389810285127035666123709497730451955034066884508128739618622387871059196269828921890889371098608086070557894898332638321786943149965487131961138240302444226588783401559797435833096422466661057342796889948504196814833325015584249352186982718835330592135213774562725264838381464847482396920406870599101695222526223663802446067675828290343076713388725641424272676094098354034421337832658665403320589048689252158430897627655963981093151658737315929741567708354474724810520405276850999621262886195566160694519840749934343282445774679969752598147223759265888123223584956105891887779628240743132440517410531805293444340296046956605782375543401726582303984923063539102823780648299758881026963431882749481127582890607784652768263652408090647036176180525285394815887919258958335733500442397497728174965251962641670707151409060006923832871574052002613752156045480971566775284009528278441121837938891144172551361291263379791760594330119762512690728103084821909143948150018201157578414500855978672703075940539016644430372373559557146391664538635237295334918942595037976329553563726070413349677591753628364010366337881205184732374969559431259049279343861874973654816424875417297816816440067274497628618248207467248432197809385194309101706138841455803073985981558501365959795383325357282161267216893161661321958771943434792127733789552682638801214297886881946009950926604688262935417482782766942034989940672308104469924923009007532986754557724326797364129966168034413727908694900260677092070323389239453603692386679020612073864658104303642931820261982993901564454387019225794728205399170041324465755361576274267575475232609872183257830748530445964086658431505371575517079307778129037940013471935972507163251202202508422449951566439879895201841485238563733158943234447236579964993609740006695853916616845383168715623868185164432229652698292689329100533146382820640619849208025101658012391905657836746643901142351972896045096450488726449766737246683325982068272304260890739051217702414926687944318225090566018082695725449303435711221729892184855958791125932385318762716478173806434910325958415342956528596062854776254787830083909112164944226770085800877145464483930177386412420687220579614472715222769248147988458277832650090582011305657343644420881816944918992603062553198507347998967974538542448145936008987662534283715950885556979552982891791746846952459981870736406413217887397593471767638691470834833457155766567984146431276728633824949249952713887886964651274368867187622539228834749045306728278017626965676070972835358742565118789280081468463952207042506613503101860111624997479115260532978629674090365825379259661148369714390632389530354810060923926167259867419126583541895339684700637445739611888712492506015648858936648090483735543933730134667271709333394254314509397515506426145298737918268818910978670058509813195914021710956692734414381167838037048507867340860426753885856482409696272231183036132785567681569502008617309944702867237206985052732840401318634940824867047748563335225142256456255443049855323961028474402925447958845527922948131105700011591459864938217013037007379731190692971214873121095158004216366842962455977783431412005532031309495350342527118933761559157585415692329064882054261011565351961549731745068366899336571784918589098293095381277806412225563321606297555989307272991498409324163070053701896787388094350638703420476688053271233106695078438806380337801675949875619916286938323608358665913609661581876064239236898211513696209897324489450385201647873048760571718312181912190692394003163330461258885134629518717289437115130826748749027390185880695905460139783157665887535726618892519383397898797754127074743524392496123185462822087533049784152827077200483034874088159688613731400136809335227375877369694215075779171940639968525828801579383424491238483830101168924028752186362426348970713382172645412670162191397200061463165877440550961061441216542785440740789920768236584689306052712289100792471592087056311267968731075407215660499143847862676536196280614139529754672137537133283434381755809844745561154890017351652406304009743265262861066813397324417763501341758793982296339773071073553153605565694653737004031348967557095475208132232265815001667961929431822321864442912357256439121619131268534091122908144675462900823492394956847616650222671200128586420257892917411655280622858066556165377544772269223853141747249023619404960730083139419956799498126096153578511046520625934731355878279025867431706472588917544789526931081615417491595667558970703958646180436072257865752486022960466919391866974265258729965049227025665249986747608033252328905314474575861838188493712238032143953643114223877923400277735030917269318479055688108520520506164058495658872775122045931754063717102811770616357806485306797147714068100818607102194202431478642880496920152247009026149991613902897733510629416826053823979755537180116351537229234701389161265720688416529410979573650317722489039036443008860466771814888941698184647183510660399601626152637105791299883619282273819448797408089168470424105419273660664021642844838123224505446726593719381018430211233277765801526558260009482243271312349576465762083177349882256143655081513224160735647749063637983903256265177767513157534504840106225148847367022196200583045908380692045498002399983570823338768708808231065139626067517932890544962791266790802281065418924465617868440963144357796365805487539142794873380147367890806902402774052996550552662233033299916894458882941398191753904033026516789862910618922557907226854888775792423836525691994430760504968309389784309832649437652231559103619829309547877348285324894527693719032298826008272732075464562364328193668476330694947246393046290558718445670758707351267101202363545095765029197832664695369793141085038960300272900801823744322757303487694359411945476053908778900763894937457459416034215303364702910893511982662220851176216537626214185799909799294886785615937055484747066585075242038186094234798736212432017866593699982234590129547784339512366402245729912917734649899656558487657777156409456153599168384649227293030938786175380663264727965114692650942388260235240352662447385862313282595771519646916114882045954701048150647835009138320357966939969788162571867224207012787892616579568656938057281357441508897350894423756836084139803687526202577688563868438594200559862510366123914821696569625567473651877459215938540380893493157793473799055444975871759106463736141448887351704843653971394756861183563872811229564845335826244639170709478251941541348072158848180586697854149900866971715560020834178127373033308123003483483792078579332583919122998027486347700065406733219187045093215424055786916856392970673282550580329822878263485019583669395621884990053628303934100277078291922922989819626478633655965620726986063332577020837257731048453499899753923452908712076386623017416676664376181195011014106115367262351677664607076642331934961651371821228236258609626273621633325775095204338322597123463155648532363603368014470141787716194923898568861141593510300180261446104895795506313817751967667934742110658230549868400920123901795515315430344877426393951130011551039519545651885743796241574667599729980492446484172940629054894029788619515816324299746937152702217663138658899146161990016807509736162500796432442165115620107877888704189605696994911656955061861188579964329324035434291674879118769422622488188883829554485153755318301616591762932370646881282818314427959817987628482943524335365787913219200365317415614475816865040359358382865506605078002857551042198875722505704765977858773788717150594548898449194060544935173616715307173419091215576197884465552263274760644922118177869794719150312353156532711131786810808390720868604982372289320760309574293924085373986840956046627431576618587717804706108411809044434108237020318197834782732360624061578119647412731788321926741167861399970743996434714598393859201262969061070549193587306386870848043229913679681455952126082765184807170347558598593197466298247088240003669004936972471053541994200931364223894709513349272716009995229886865614442711518571911802867248471871733031619211829967187866759613526606903278303465187073837382360193671041505330870105154483897034607215347480416729541916796314162404321516349974075827632634902805702610259474399313085407194401864826086567515449478859845554303351855508835625257779779064138800329834176300967748126276753853574524380583872153376161116389632481191202066876227309373590544673377347365750367246901219359630034515941419908077048387883117137007951847908785571657967853677616570687245621230072700979355348160865545372402551118692849746670904190122861009002714338149392327721854650632585511920808043718509480489454733261950015567051446265517300046578230299176374453418921117467391115546245470903474477924961267046375580494300408553897198589653668354496525714066386432407160539922419783789272313849413660841683743190145829533810990826955995658629604066745061789607360959741833282468748407145329994082733578248432872699073072966383448790821622796748386947044086552235712215369371978522719570650356458941105981803525244091676433562020637509851058067410623684593303446601696952554375909648077160117074064344506000478607051233117728767544750115982884045916630124335754892950745460658562208594421233193970949070453484289539936202439005043678086719320790494295598213631114372899083186249835696570520101067963415057735217125717764291217257812530319966173857297523551851129413274737822083729949953929652730555343022751895815427783996118909294426003820706711212860049570108414587579952564632380729595300103159327136727012092242724723351367167988347665568230094034857318185426038771073905595501565531816466824940424422173317852810651615289983595615561048468600840795869870609852270252796189991676059641615747624226797774955402670650231483538135474003580676518676952565677473894844856621473688316263373789336562509754118761010361689056037334770538345015358816448035934292674068468217924873607018130348347558232574860915594551439383654148497783126980606923528359374152857135185017113614579288157159669792488936155121646513052570142796440174253582501254771361747931308381330587278838697275908298082629520439009353072917968720560698084234574800897769967859287215288513304435338235674833514883562582505654936568023941949172541076431394426700788586123418805209421026270066479777466292147378833283790287574440118501153289180041907757669253443219603557683307553603028829153235492217191007889282039788428619559080813613232393912950223227519690298362290267552798603832420830225600147593028948860948466437767895977791584766272001963091038261429003730772103388234940283219278305621369165865060180672435952540382932316427719592947250196863958697458852548930057416754652528200269297238690476207396392692048349914502936672361766250281359833376968988385790671129034608287465161326711096545534538912885049628584689873970504918722328127140477547652053199075941675999207094282009807484939025780311061352651432619093074442742991907575206355290071623219480898620110092257430103162086748816084008870734514029796236815951658165400115071032208279720851361840119604190316868184671289679187225994330212097036806578370857464739228924903167665264810037361853035975395915036965448347192703974159427262653201673681375434476259483283161421214633983673443676610014150051346411902059234383631300978236490730803798204226581070600010028480806544527861315817512303486261513464737912408514871223484334911739327834110451805458460997733628725108197916316612389837628353986086045117310577970250341520742234668070007638703962211499411034456043122896644903769004938596701200976345591866417488594501934845396783384007708853467685327802132455388032428983113598694420236722969660075871021578098669003390829279322410984472093353740583971211242322267207853134225330869186509007336563297268044558812158570872407187343878706401639512974088630483419587587031585135807793910618133558364146206199030450346479407980783953657782001597078669459079410615691307545873842452356390811471142771664642919907173760019643306475056566355485294770236167131672711318508992556829305169022576582475685185167757086595332345437319058996007685871767432857087387674718848668502789265789808566611903988904361648559376223464996350143178312670488130801509585678699942953986370120634216328912602903197257379370632592598553496835575535598842056172317261586858455766323759133369509471131792931668461852169171866145988494937479891013761437094845042390476562381221721414588992867308828055379931613581754741406668511721465311605539124528881334434848279397116005483315393234339974765059345618759261806586264866728566880730517406463531776170700566103539522048881610553791077886015783496532629092117156331554923894033673921179385662686937004912468293309752760002131271435190666660384129872800804093706087287068338355196448928231329335921930278437289872436107114876781427722494665849335188333444275377168879148795889805109477688425368663912334544072342370742413040640059743651528519580650424720738259151651989119330917282111898199820582046962716195495105202968408020774976651600564917018799512864226345321051727232387748672858671708367217709231843826314483287607697751467259497825327357466837314701027572256693947543599238832949926838581443112469062522209703926063728185530380175986108717481804198177325742415517650195896884273131035805108064928228948922520931063034190102884092869067144937254877107909563771580435364061051609613398894882504476432978397315727391179971094611581349912959929915905497076410477172684742992430271883364933899297012503308337100379983540991291903060094698673609185635829317903392322039388594839535608184882811735706353012312360950762700912967657742475318587491742795904882402977679197545411431393899696249686822917398385993795070451540089904330758070002531415856086112310207889209768711425252776530133893930468466116976733967144616764126929416193314573598795222040527560322778632976397506242890969772511729950158771141109289745888702283203015986426378551172073158557332267159066378822776458999331434273308967561908229509498845179818963699789338579175764698908274108199298374654426211519662389682222776227897784589949441675141181760590945664993469106748460483009081376784647481488012164990694613066146460261892618730482660860395001605490860907966166836392454140508253414925923160824541002193553899801463416709656938157786693256327847490168559041685583968422271477274369986549524206722401119101154030984265520339262215294285221909247188481332844882297302400146098742921596696713633143296499470107493403164527521858821737283228330853981728132228790988722888182453580930969509315964980171459990702196173546998339970687064056130363906909240797863211094242378054249106380407087124019980618210876839144506502007112372033713690376495246290950939856980331796021880250983631893545015990492207326020500713627563369819028556868404978818139003372002710369721333084610008946431049188784819065982986048792628585244243364785800478965239689708071836742874361921825795017060356758707092544316284333813906917925207383381092841906646323813672835619347554718946282382067438344033090505838341511937129670880857300352890970240866069066864793473427577581295824694623418192120622948380624676257935714535821966649126595795929224757565106745762131184352994260428811115552972151140220434285776384111432281324662099435670810423964061430807723010956763073411787431101885023423661104754021571318198654849258822554258852870387554484631696139271234041973511010688696980437357284131852988508401686831291685695457275122572510135107998101483128465119148668031430609318544862519279379546646088780242360933531689089626852929500750221710656785304581273595456631467501282521654157307408497880814118252578167181873972804064939148745907699086809112339455009388019090232886702478386956389253235353947494186217860073182493940182272238737410949502254592201190146841845129292892535634372845165836104743774690807772715340649420359529523436855312450596070535178964116056526526000593799778748340094329321485318666822280831201101692623832050334636137994421685050736570891332007699581600625480265485234451005901049656426705975076617248158405281222942268262538731848456110997747890364621267980413296016086100207936535403483158774803395070973507375913388983578678330358069588267570573837824665540887081154339605808289689449124048740068677576182234765915369653991038789067569277619822352207235955114826924932468656886766223742544897146372372046218950340307051878690105935614885312005741804165342297794322735631871222767069999432309877666933825908489220756280678709662664645119064794913312068393482188238706676326643981292061813184902770238994909174494590894872210575529457657650146663908768521826584030975109606061399922035977224618921845734799337714188164857465206546574125091278361008570208155013050511904718857444277159511268719104516363961414691609328325394862306625838291340420829118847977574912297850101918707604748573290460664046173363938896058956334605069031973252160859219499534114344783495412053636415483341713381965579432738519749950219238990692409130890153066900018556037836040267233291670631461424059672192553977294871868779771200739528281611453509016801840133460820754494175724051986818498106354114526980588874436270906006755020293821581763356631621760730243845706876267288334015358809007698429931157579540825085938289340336963289431001431113375872369789987391597055836054829750044517960157123973221597910406244301449879145579784055610207343747348325160327504874403099413955870744882702843236381704670050400491624925823964752259464919510545354773616950871282422353507500004794617194461296795131219202083869076883683243214009585548359222442679317339014308577082814831086104332397293114348166087005619719288278187448495337577365260864616358365187688680297005860065939782744724372542440590132113025744688498026305002338250265593293527170343491425247992051697883028979698362030597753255962477844050526419040420626400897047118201789104553388682068407086310875807767523135873096669268129780915214787287000180330952366763829572760476098633260170897666789685001573215032635990178399368137732779570307256134915876025473866399554825953560061485707120543736557318444637524792076240582043875460634363451533120539913182066219097174160503980745243060291476101390168791050352877568162668951011829058452358161113156738001990579626603692266963252135902769763733381588929492112592697952947228821354841986144464499977269731010918321796016545971219522520262572940093479596553047601901355389322226461274894311141952046044020354593733771750814767499992712938456686015339531162687650655576275539867776624479435397246452336062522130954304626554092892449884818476119745821573822769378193255096431333581411332161022554717142302235587872820173454504124671057741926232663279605011353798336858988525712720203033708928128796115777201436743998547260095985104350215144156989281458483387664605194612686533173838093578753756378755302007527485314093762500681071042383936118353313437406802628632391730640270525559041290908811638398295484401332626194579323498249833442117058967453654698709041541335929545482024024063959555480768357983505727729693797067013090107016197115040634043581374527608400126893466467683016579599654342996208385720443269789001323134899007366739948678692294853785986220098689990646143854586266183697667930371378943633235447082152030567177097287247264589299694707893567376406364651621249378063147517673096951050929404823459682080482392583327475977639417420065541266643278538453942083573040650459662481093144012485153866197094233633738082082750631420322469357231751432882092126985364690340440171681114638908707128612785276807952559443611054977031826477467521267010441372806771517447355191118154072391485073928015076955861478682368317312828232169480918070461134247081472110336029373739599526442738822356429497388800733482277319197671229692260095396479813590349110978087649297263028226969880383602084340377821354642283035536780559962795005151026375335805862219222063740350759384503235073397822559218655728954488348708681087187739269272886617362815470669769720870926199237519011712873837101217039508493888283600308679063523359191261240496350352775839343952639878335629953204368702969729322709277096864981117782480945932924345138999870985837745471029654566769870400261829313067787293744718198369189885829199621659088167504523241028096127968330287443987985825777044051867366835942258405298072032622914320862315635771197904975845655122687723422526504812960479294318037643741693613743490147473071381557201630044162123876542440079207839625540012501187875600710620721246179372845878618540440070588747181091953999635966074626358880596953513190437345650369824288158098560929555018527881942197711889686778521697526616606612776968077799370710629363951556552196933417678184827248225418553018677274056607941402350857330379729277975503987138331687974921531844111486214418538583752512155195578616804325223162757739562070604149437783415319186686399082601055437697227407125256305973657734166932293131469013827316775159498713745931051745979709254502711383999315333892249033567146179940978124645823797464034075704524325840399421198586421726063746347326523090471860333865193871721595829266310674724511832487299910410661240169466023078109033270658343215227143751465602433770724293792138223624274622695848149387005493927428314672045547554103285213956123777639353819644551699965384723213764953127655379476065327229185623392926614099905529910463642251641423442286572148773234054333598770310467482046495918569621494891353654708995876331134694990168562301521978551017435646212433649865605001397772591164915232826702730410539956254772204937069119780288455831775817776576102114919477384605407534746835912331276593917231769693612187622198393921847199654397390358279507753694763849828070890890109993587558978899158543007683214892526256174734669497214024010766205058585428517302517599732228107696080192814754835337489496146119488941980061903502672995962689652535688632384045063475951320347080273952771376612644097768166846139611003326650926483762229441151516179230893162496549600042806062726398234847951387116247119967954047083976427744889234372798293973222901701887812369659946491605342840267460702068634972752614620050512543680805279344129321653085259686029121698235581656157268547295968771821646502207148777076569754994053594052279514376153000399473319778623144038551954541808089669250784894946772355427776948389286462510328001268947839336337112471978932254475706652371891700232541301862052342608868087017526879758518742503544419951427186273778014373352691719218854559170616955949875349188637492655294898584307422482152059691891026063419954169214942401729488116612342507241114144439611705381239358965867864335661625172276208467638801474598951398310452813921337174183273542356075871462013426112925470079353224183068166298443082261614375736843220118428633534234043406250039501092108716730295575390047881260006176736407122192900385736480704173916242433780250926126799303303572095118447401505226160153473499093372351983619352872299789816794086657610473240832347173976943802616646778281736718490416797217685174196535752323456188734951424283646040807726928552039318042001985610107679090574184000299090871872499022459385902044301416068350012863349730468327123715673792688113291684835410272447130409016955128372821562754769517054371078985105545703661234104291239526158449820772655313437021875996968749377959029647576447952496188114818641979940813863192999555527883562117908785105794736077849600366660585826622616239836006801967368035578747591970935043526694435827490799527275991175128185593218554886745812469800174544416013313248858194841130035470469619579588198583196638666772247704768141778573048376024223531563277927297621290283258158273527718242976766120852697745874405375429637324464892856852376204000680270412618887981748404290575722133497464023888527373290046830789803493433363176868168767155929195617080310887871176886404416126490385557940422125317941018837326084244811304889579975281042079337462228182272325802602202699123103652868966141115920504476657964042368275060821531328418115967916520726949855764061437111085084274854144822705786257865921762345326625936236253443959639224203279601620715314127416188385857906055297932106885573345239243425262524162973270253883792588709019112463942492427431733331805315832711827267291355186372541562632676682106488079243318630431814933435551286640990774922475718640846400295550539984216573431300699203940120842837758952112625901000934116736043323914759426176913390634483901066586710182148975319070770573705226360792772889001310642137476450335995352256499107733475183466602461918858792374932090233765273983958840005290506457545990606334670661405774593267896757830952400457183512894344892008031289843946798807439374760073377150679267543903831790358256288921969544043681907147400860794447992760757970727578419196195123374588286225256192726269467139861187853352856065494831721864720334263802641485359079167396461766065266077294361461770297602244705549593672543587060392049279870401511769790052412521009163363367715354728713468373100283304508103590395689191233908256433040117973127078707416323990330469534791457019809456444271211993909724481058640931965676262670193433513342014766114429678186538725181074706977800577541907701446850262012687468510446323332529504616654880044122378747174263951300408458928270764166432376058581468666384501756792900429066339621915112988964340429025573718664748739031529174859306461694840801953730524224218143895218180696885589118188280856556969438159229370890299155461195759751060528072953923399290801366066063759049346837061635784264959555677321015412961093988619708226808418158824602794433994307834835287660051794156881770912324250531538277413865418690981695197070854523458669667790034802532499048070360120442250304417755740762735848834955632515950280582841837674814541607168270559183075210276620869654386498873296003932605109848083142566091029836850443070256439091044835850587920573336929074553496473228448156541628447827234197845724250132283981574270851854401895403137945296461156618209032462169643154818107534862001183403703208917289237653786782645286106327732953653906796579232867881469653713644024525805134308407555434559690248078414360107748872996463674240027405706603567204125470572157776474688057008832834235028644096014035617022470426682905319374091400786920514838120513938665998905773713818534757704265101197679227401062449772037347238760441085839872212742192703746340206232579857550908716156718997754380119852901550067616167343026367841774883794532942737153126658638703962784509218904983776821771389198134198023940401127014074430322102529807264158759928096771026651842470333609855753023610380322418688685924031076437644770532409833174508311410927543715124643725837544067506380241584299853483970269244351151487529023659334433172368479867806665733084053753372191555546905608529891411805177786873647268105396160213091400477494567450267947884170365735855724001802169916729438189463949382909669554301903960453837844411267381124944933004807520635319595699690172110592256755163269615708537072746802203165974387784035202470628072707548875272451473330370800900278570096150056549233914162835964750175252656483706814021604221740301041532773454545258949095172969053772788446604384159256981824660183489533503840384756937764329755823563739602970784209417199182892052678431001695440802927894125496575420108407001842103892467206933252191876975272155843628784309574421213745447258768987464810080608233926255487433908075613748236983014200148786702440023014759131555677309959843740984316776320345236095726716142203462771253115200556259273183840653195283485209951595892000585567121304195614850120075789292543548465248926885436463523853217082227018153642846472127788833857152303382251801105334354364349484682756182896582196753166502212055738545716728767916923379355487793216059817053317923377956705104885478266016099044384671353006249615089451647124551348720161286444001458383421989271174802885801875522017261851273277487202859184133156219424673280279345454141814096830729742427688751278386545966472617758672383772617994994862352541458532231277921177366232683131492145552030786981734468913774835931092865573128752175813334623986937552663224999726520590803237920809696111743775671221306920665577286592098302792386087233916998169519674895773798884235118489948698066591473002099664936291349810401984551571316506575073185634663566531099100648675322590592762401958207767505819087050876856981729521485928033188750676763729945536113778579619448530804702697050002379011065560262171398873333750384297098323952925902399185152709562602205983295470474864398746172819815618749998909913408454287747265360523121957011860718340613502824893610649825900863691073947639441475672714045049925225108334605092929308148326439433011268020357086324458422509291737345040965700696959920644216993220424601545373166551868829352858403935932842774433293562630684327961936890275468256197549941305013373935469439332258762961241631314083548734208417466784115503982875490227840081489715399284207418213802816918893813313831851026925974414773543399774039060189831496797328096650129782769199573886991325147280917919238432170166562402659078077019282569176947953157988968705805127080545656549179796367975370959837870645211443970305255276221206347669236202187576202128245113753141919854667250865220347967559071127222879590537543956053690810883507397105525757140693898338534379741796576891194126762102086601731247050531715203865854069707223110610843500354204405839352043393445285103171533937757837965989941844078507400577177217930351412641929237124309166840219014088415346278006591131957265024749554255098232668116972779060785304453007584199874393851210761315000108599414005555822378519953250649909739940150639343260707284870151902379972305213558557458564702948465667101729887462237361018268945374000477518809568215389390762928536111150419901769951863595998363145006662645850583170542602357520511432383514107980706999545288508056014970836181933469176201185316980350766097741190826279602491440334755186751891142396748137871260007764524348016552876678879125365532009366261268728059444743586179856411145296657479590433041898293557886610862512450722886177209933085982155807464723523977495227889960347447365534913356317035325075813093867527299657558819246578242693608781792979648124014605763505409056484646107504381773720338677207242833766882994746811102398604750488492673408400393561716967857334528964967961778945625219187502429912976394797666740125539530074619781157078512869507412943809857668776608411465022017578102053319747195372212327910087987971739748302340792582760326027019501872257079271172405039530883054826503789948044441741246736392421835164134468331139121698935139197913979988609996703523997681824417940373811258639386275510876044568861983870002006779238330391883507945111561491515103951571669405599532274422104588373300993798211907326102477411336826139690407331270596931733114072755738130663352066932783521616758026896856968126744614920831718690309986548771073691868461697215749958067948734340079808422280092054643074491161598462974619891786760715714875220934942359247200328546348013749771360797500265661370723623660481070989811143820486356203421845772083270395615540764228986716806466241161683208785727626934950830411106211017960461285711323148170144269939063182744532428490305195081886284077269889433894815651978229237730979870096283522891871722608568217122388415762984466225969192715395252162795048671176254906229427800287438743331284374742997595451876418723654330415259212390645609173911824149270598565823431226323410093412912191510692837493602579782675290535867646392899994599546828989229012144938120978099330765679906933866247973452749196755855872043303069178023486110471119938581281518703513880216372562746345691635835786568102223260943374650431210976928423042572950610085736561323597703128123188930913016624668434765048568410950320725955603072309370372296456778330269605251509045981963385008836106293313320076425324246738606463584912476478773763688209158059378924089394880181201562216404076629737147594656390092902743093844742483182783661477129778787784626582980929946347805148262708670301672829972906970174963139323717957870424203742688829802124184429571504497225110175712569947331578918035605993499964471068608402424291000119572288321296362274523861907010457791444766910104900659006353818653171516302617022358975578188819247395220083158889160478919015300819945165739076805490134172763289094750206874906004936839735292226899591653822013078666564418522540174204020153179302876512611192382206821252580011595306528084962470031257974842771873145737755426671393960675322928425780499017347092421239501820213579185193987499053094985212361634126847803150572847388184615774191892775085976198656701289356216925323407849567783353602455137281368611881703294902352382611812488200918588236177554638738122193378614628477423041788040054662956449552835358173065917909315671038249671358784473370914693947276796515883390511316576315546058106686840697098380161947674677798946450053436631647117503643789364424188748447408747570620875746639048829379320214391737268731480500215069687915004381986682216970390803617085683599796693439920107200556729779470033808247934174871098657567178166513228355631996176705518187106736139304376664437384681624709085891404681792151747759708041483335309578330604006089418047101725950489778236882678042566644578370379492820992384432934117797410781680721571337266641089369637454533419127511155423819160735685475275523619530772186075367268248721907973953823270196523017473149184264359242565417294560708369537221754776525073828312403511653985794756099220960929579540343082539319114789845802975575245962470545924597611418552587930720360038304513171089975421264746739571833334697433871127049018076345598281727463315162147606322821199315821064068120000838359189355914217841318133146135385901212677028238473016056769247232248507436170083380978052081427474070457804403089632930040200975687239182184337105622606009109178572579141913557373726093994163357210708804089042398460209222761821274254219780473861936216072244501836205947223793122746523450265530942618797332402800466525493148536625931765715728594205339803858186773775842412617486951739911593686260185382562848767573045122241847883055332928265544380469720663585093948826765197349104454133754121154113498012800669326058732259522209550582940595422142945669331399102173780240817214774190304851898005084394435905475443282958641525188413803404340538682142592793670817206817854851582641113248261982160426512350119596014738270150344295172922975352317338276163608563399279125844322164232835263896375608746940162156171894825316258282487279791319349914296632870947206643220675519075095377944666408760599864200705320658870968710544185306882295172621595997094828695725211939885749457899967299925052311936172377984241775439692192440372428846465732791458370076694438606957292339231386402583365030372933980425845883074288985854277513927737337652399809894928924512236475019704566110576037632759703950507896507621718678640764486250916347924853159275640130874900984855662604764206962990846060547370521352734134014917262351101665764530491123448218775301450585948787243831662318473930399159905740784323983048765760121345367914195414206075705219582521193933110098696977009973550241559112519240444411888196331334615442827978589168337652171816272645461936579172695709077432620180105157845624671973090893353809379915493574052311283582881586697602357390328570530247397416538675845838199691344387874306893440895988975603904100406329501567340378434412121562290408154055986592353353551384771545132490262270823151948502792996772907224710434579071228265887945744859365997420039038656738518800918016278874142869482301517120223057582383306944522147992022533929921071639046040332624195410588663189958944555718425369392382869408465469224066631927953474670065157724151007192071257031467675798534300744476021791794734845326963591479979044306309588243016661658294352372692184042707275742076495328283109236659451429684137344126675092985504067663935212730132222754130877858479759397429755174600824362838104313474461862865402642757492246432100616033008347615559830474252848407926062019929908090539116128130886019866320444521903983749900072200412941125387796759908293704432877489859384870445977687736282139935703586684161745141429213712608205899987911818277231972578594882065704696159305760493981428098969087022148193365308243718691729094702919737665490053426294301235428776259501872170356213841245651697430679483432809120309967422880961326234129443412722793570486977322105405244665444891928087550381637138849095505832920186399089676040879869583418667519351345891050858667151595724678897334306828334793759995950287247103443501643464117599004707483088463237411759555385353849194984611180150013596455210113228165524183436942066039438338667995317637670532037902187350465928536174631557798975488023869730622186764834385270004630433778984665185659241519516647878679439906575789081218078701339878670320412039626045571307476033742841965519067321272504186087808589430526565424918417725840958189784718076899521189321649301103508800676341588999406873134262396924913485566490907545442552377223807220974856764372597000081475626368830604616112952571734252791957160440042446026333513483317363739496534382669943546434743603970540985047794593276060677371603091258949910996729246579735420265068448562396598366796736589961980077645417924036284760360609722054223456100449009133269439003567584708816727201836381382131319714843456116907564184617667774018952897293437276198295625876710350959599352329794353440775964843006618986399551155996443128059784766099953467243330840420081793171758539057771768298632162772640446063044006687094419127391736901820175129453688988718774967481403979101977862376865826967223771288273178188592234282007486150744759040297642138816483069583949384114142693698112097516061599639255517130918919903284485894061100773109515577857829571099450322319843086165583658902153895653156087701635135732258769052660912039819942496229044531161163755248842669057700631722359140498930798191802285741244888430937260899111782490791753773460724456425650985741114277472283756759748991650793427790112165630407973183950150685270808395434844194625122259588580549272347699727250158185117542143275168872069578140895206968728472314259107989973273461287599208961293699248065288312835611132167559244716313508009095488294404043633030266881398338218162294596418194407397375565734609505983316467614228133636453896431680618389467577441251953056360546114389854889378580542574162502352203953045168983067055546080434993660877606201897902090547488871102892618405172347671431946412552315656999735622229395781838857778416764104456879397776295062377480982970462399803972547872460064444098320642645380419778071290720233076494286145029598615912363690049021453774940647386327619768585381898674602360161363414074252336711713484379194328587335982344643965446893135671463394311311639058416497721343339663335646244533831817402733299544836325800279124654062058928238535130135629916789736022261443336701038386257873226989807271839242978266836824192957012020194544811677950558903394496828524226042644169009134821737357861636433790113314197807674495727474205518020614709981264088177456481167297280249780708494410130438110151875067249109426974915748658751133937018881449454074943570848725229033126631817530072824090062515950668592367350384618105213437392454574864988249254156028257198682670937404714751817592424877734237371984905924009638140743108286995292667704380783963380885086688184203972402546632289215128674317143411188040805649917176709921695899039747001974963853379834400922594573947050151189765799252257499780930407324752802398335916767324802849146328915123848854400628987784313200598005105682403303727192892660848734893155430563206089688179173106633875710114308062594484178994433515431593441851148989862097306696236903154194375943338063350161336748676818351592596698068565909437948602307699842015760836974487127318490570631916385508570967221460046254265909516427234135728790011072194697345189311202613914528483526131842607872523955569751654321210186566620838165905490456599228643704756224485591119600150301222759193230150261100551775378104693417371792549313965202449681877123757542938395075121113935687681425828289556529552107648078406580008150475282213536753801218304459503225067415080048143465255327702836841959050961730263139669731297177124157105066866144040137163746597116629812019980611789272928168101687751896592278905976330946385731313869362303662849567574331603627715687033135303446602700925933796249982202845174580276944243054456808062389932696445376322214062442112976035980705555978030009713014511636613987545491898869220716362347989599181864653074178606740895922087167700491269849112299168606174675113129322563783453333273281805044588799280240437925826121324574644497720984498300143249323247987578922542099646625813507720781000636485818492193555758200570825066289467890030978566492523445153997049703493548630626705998303934819037641576302850404458345595084934528377065372815577869623389364706497178206385403382990133071349041060346503048863181627989950439989101239872482656614824384897484971542548163525539960523809686270724920705362925013364350916907187226798906808330772070826357428706665189079430844518203176087863702688706364510333181204310919531158246019424166172908193445276151311269110492226198019215342108001284051468217178782869872317401632136287310671209615565891395141712736718135684748456999166920557442367851605521517878217348258481770291934401119293705397756879223375738661288371448594656882901380595938499192489825948694708044449752107223094400399276372813332033057870384248823307345866556304113426483378064099260985985811658006778552143762999590027281989901885769500607418130414206739749467383658596739411350105819495261245569184663696238718417790463911698310953124215520783103997387470221367517417785341405305956868348424091550272291553655520206903398271603624279164995814703245302459393797088553969323609022732121032546068807632944714740428052473693073663574211656451969925517671682703860406439773468798021161407560863859970681323992298165346783948767863208229096166723683037194033208610431895795992676256531171268338073314397768720079339432963338686864634817456538378145352947346177652938405237288891432418236303742110779754055239128466296990041908134711757334282677688360056191870174945430367787122028074162205678533622821181520778190464784891898888174784139899343193822730271180950070880070231495963289766533916132871936056971055517881604266312792540640592056224077406889671628809883125351274390120673742014150715608851889612835596732122687663356587452149494667067095703458491400618646780829339749764533589265744601726860944683427017487841668704598899194608096953962341170118893700136817328951019314493284851816973968909377860277753192024320781340599491012421304497846615896977086767456190380886628939545660154658393053369998242655820696549373471470900365507526844923140822512545232446055858349538930389064666415835139935266354537783211257918098083016165138283446428304523754545291931713366964460324415966601858976616920350798048647289257503501938627985147154540592184633314330933140155506914002938508890957833884578080371126219294603696449986808829694213807270331532840546268753026704787312131181281776555753416344753841583766872701298282143417615590790370942464787895437335765020526343960014313955863358683337534831523522743316977703710531895436324757315080960672624271406531848638719929931946633470450576507383049994588971572957152829922052726898556818655528774341526061743079621554375734422173493683264880593511227471489304834447873253749509084696943980524631172095737799030604946592151086665024712618485387158929623064079198993562522969270299780370029457597373579360600528425836146142328387053603293216215549840876266273468328036302848799539421242714796720235776308078630409896470330937092403823988950700340551071628495005055855658467267668626112251781985814187584529600979948566570799494893159285853514283104470892370035192052604668553187839176352747398573644549555489414979659239280205316242014453243604364173505210639528027101325503811544046899813081681382226134886791483548543279510953486961077583442761594378813774847171290631463964186586694201956964272637453969581803987721172536004518274841642667537107492337805244156971642929909939390373800644493072961599984708357079731988304694021285034170486806890903168666693090662443337909872486109689797121117746594090147823294060786038934835493461780750016192133647806088264052382607031684665131481785602326104378364188417705190744164487673726993715381049983015219209563211613067914385291266013969293289594711109385481999105705616687436211502096671485810842242425641250978373399678128611685763908054590850248233028831511800938223159861582503978103681144782825534712577208027070899276616939399980785065872816514096036174278173288780220864609369085605418106711987772346283084143314575369830417449227360473443387171133788723805054042307987160233169035404165001987010716900137404062672543499860952445959008188917971006739120334266627385076093803775400738184931599350457069939910771382113781897943198301428914756338620416467839086096023994342903395089213994695317992640033316062568546024824351858795512282405819637339749938526526793068640117068926270068889348148190391658983943136268703695546452186241069526157590942034552171275189454081055905383014339160684717350975523907557360255805969826197613612101606999903166716993775478537935364456486367173370827511334687140745204815485870552636816882791958114308836387197416250344217853266088625497003793162074322461174564949352035620482621350182321918061143423814736129288507417364609585774409518120820962895006516817572578405045622744563239115021705241503233824822734199695745066388970679589335261805054045490289603284904548702179718833220521515831769857985638605431786919274099633561185070604045161856453509391007908267273103842423072902156651793726818275616543834176335908365009114750126274362829394065042600807133529225052949462833969466960919221159242224863772022279228201849503057903420640752408009684546989551665150709949613386613361824359643791215098519885337403850305654731843728045604129644560307832409797334190268200997062670612267240851043799242911630616801050034607010637745216908369766034888394118860175886770042980289381195717126516964581446150844133814974023922178960189466017866436823054787718113616024219866335039911922094837291607145650874813416390765268576262721949728252566520880771704140866763419105153307096950754150400140300605725453807794098974227913384409013334006474040595394733093427178892722008541312875189824139835381959112137114246184171845307251439106768865379979036966376570146879771898962827921654387631099035402621422193485695986643188285560091335981108840308518939408679186899034091911767249132065847615800477605117375698650064502219455050587851959420490974635593388885077201296949020777167432723892556733663399415661264190373008782482921795685069893360960265036796200680630876613447272668109971028008194804305736821812505545746157595615764655220726635963933979821273970115472670261551075063818239851299630512373073376116741232808246146374468031932296876558459674445777740672723324090556100877480910889552010134973873369970623368543027556862624707857344540913996171720376523437223545284883229866446396425057700149990258357120544122330662473135381968964457687692516905585622256359024331462831088973149496627687560845630908321587723785744833385381181886731502458333562734058118782444890859895515655455657824683729278336624183831381394610879246613678743151856048116919513690169257557592329153384591851392044277817836341133097505582690487973695397025758742114742398335586160766171780726172637562926888880167258821561773580900306043196118531927405590729624481639815190045085821692153553932349515410135282027793870251308733239542302631960178422852152855939759388352256237002876753229952983437616829639928631932279390110872334302947677384210599256970697599389312546487785218204577134588900472163779271216312363384160603948345727483264859649024668171768461371732103697470725674422779784816220520476634672954490936623681254049048730845133193849092666403317494975543733947899996511706994394647075511784022490884166856156357123021064426659829974204031986465884241227541659271000143262613280860683931207670094708355023854654517234291918950704130138375985975552515066583269758502865623870027055077215514266301836609474398332024505762638652801254899581186988724470671056403705483251699337990611308448611553137068734502362532465861950088023873363667446629835825383228097167752150863949182212315290675879098305005196375812000679177617967788351349407006176772042891513482836216700293611993981308524374302562430153145043380847762720157299481197404984097875052251250817759840745212403307383761014162751923475051907984542388513778128965031572054490011417736019056252400860715482086125438438114627586820152183346617101403017434032958354059786132642424279426795626588286031264262646213578317919840136411754912237994101490666504457251117724486195050905438560167572579456846776704627821467576579824279912217077167023359916431520183029294194274342689679084282750306792515840387600643913080714621373352935418294969826265413708402793553865893138073483185663110665443529111936723930300281988489798889576517207886846488835076346486796553172319379945482015968307036688526722788112164792864183912689274717098492784337029675198749039988377775367600516956484711013037633524743027409531681557025707191587422497505572256235847464213523796442874151370891241151360479765390852838682512775684766993505596580368122839809478004544030793292515064362536742891338614038870294581451406021084779559497743376148659794268922607095472908360184777673386369165877950476026071226697730985426012302903865507240281961006295127758343403792714722772307900053865684526342397613682281009826728207746907095035037400704336943724675300506904195794721716059698224019478647137537588180199925370279015656679476753084834732431601545309871230355274855519552719259816216689621175304296082046325537113110914524345135721217660191831777781547867194168426482817201755996226462271222423053964088081638572569792905408065013735982026331058518391333226323585196373769233727409564194905648695959918064566677435387724565635975406979485115640079839015885093960143965107118426774890939628060135975561460585722063956372254466225862336340697767758633835631399513879577275266911152460901644873875402725614652324312880305145397265948202312688192089429202753301343551952935891311454702444595405819502807146704431735001570906780787168432666202654995696672383082827330428473208091711753241346786845295164892576561347316203465319709997012770101475111628352168989992129968385190182344398909583101419398012063272244009140348927276816644990592331755862512983686280182690007765486048900188897210190765261767117686358614073700112950227730261997385965868077975733108700908130865698490983386193876813686433335708290527787555326341331168231292924682710791087719153064432106529285264447187878483116068463137626802142491973096375885805626148933096486026252406858286993959619818554132665508818388934163125891681372492870716220813018398660069653535640960616269939452237810504989997580788340884640472277374593829456274547911844959731298846648310562439218242429480971384337901529122511378458444224956331213475952131263159727311188285893198622575713825823033393507677196015209511324486716397903963586282863359908582179732949635936583975282917786468480671900662411063786832385731955562409259305884605888635478185809571820846853855931768966912056604134835969956129920939856412080413603069097833715429409059779830550478252154872400242645777862374521137977234984270366689140988805531237439449447424450461684589390125280773266828468347549531051323040818795371921470679969832939753586051232591141021940897471301545720393771513693810276414658069820594782185958768005457751304455739753397444967790494410064888536533624190405752264491881701648028355721767497679944223371469827104923151918260986168310115009613503938968899077579682503289859858872149024125214488783754516244358183563251741200970205428921964294626445256107481352600014590861216836543549157799984456645019315612435929837072268964026411594209986978366688648275387232797917942126473508327257238837348558231939516275403571085198693123417303701531156462212488172274598205125312076586860153221100348530939882590017063458596136422289846174330114338024513501674695029474086682982151380068433584868540799104510926484783429388631992835300298246992202122841743545342410948992060729941871115080335683805443660540535909303867588138430788705022996551049621419131298995123322045671067326329387431524454007669688933741096085755523767274372389024944700586881015772437447957345623820150405752141757021944469852392414979150581814141085324579930011831223178237615327059717905046116897510892389757583845793142810090043205025962449969728994191273177327810995304324995938226780176676863797392549713430880959626560038499370691573775820826229039914541657537946512996371907879372985241093532022421590999320769141550732638546176399624975085291368776820327443760302030885155652045959553489771573649655792341152938219769994582420171073680283846499488701934664045368760396429186334830426984336719957539536678072337090731380902199427550327767063122195499440970814719843684774769444327882268832553809818250557360675355976525975812235476294108454200773220711996745851884859797739278246183932585627223545817737652230753893375184016819038045495957569116208362461757558261927098513778848550634361940831979891439454526475205777326260624064589339857438698398783001729030216253988706565480834683222713484917921205391886366122663678339477214563049385959389977304391100078026762114408491769761225627619390165070312876444306881796163802003809965922095792041143017333243432914880252533672372368493553926526855095871001868274553421096488091832626147337481806222857206487882720190138679575841870847275710728973044609135274333982781127189877612904707818040050751321244809613824700287656950443628130778105526324374821059365445638718506669414943583798688908523629136713314480300526967890596869840802961202538507203327219850389771748796836417639638808691637882070970508337718562455466037106051913819731957793978885856990463175416044215663748496160461722986372242012590058515811735525131388794180739695003346631415892884873422152909888076609532081706473480768587242817817974102667468794071942060071143106862370848702203251219819328224270445143412711920739716326532710020913647577809027748744702288625600226236216305972230612959384277140342658212824557571257338906195463541693663497876851167461884168751117228446034024447814862520413108968305311269897772506409280055710941442759783163085606809290688570822508104398773162326334703928181004680950338204142864682526059039277188863719797296143182082655850912947693317647403766600925622011126422673492667059441989644889427296130777257546206207084016302191361620493634235294613652528313048936098432670836649680225202293281660891275617389517521937095975456496025004645517052426499409878813986258817255753378014448822560773307762652325921047964524165650097555065834472978845175819934205306502018121712889560240756687050668857319539705855169167035533078601550071523327766976211317762737445516778895529948583668820718580014543782082024554696302667926276575241244630343860917999579732260466287553083792650074272411436034816400897800394375356950592486386695077360530066977307406686329075862927466846081647012069376749185700303692210658702901684248357486296515686536703943911897527577304347933256773265629049903145288553484790282530747601454346330429369555856223514507003673645168954437791888080146450944208839864823678498951390958461862834864033695001282972771662225650642480663073791375363719632014908775767590559490238777860434722348220625021316864981109702867300167365715559745508582316326455940281887543972268313364312017771562789643560948740585552826524296626304245470871130811121253517962790810616049899298071718502522406531184734314916382369237087511256279314635838051587781530426232700346125813374200869118409494851761944042373366674636795563795342724063971406409793032724927392648331319862132927507884651108504596273141227623402942286979420574892419033479898846705351611426672339380807420245513089443435482195075621515946459204252117597457022878577982293530445764481513898537683076374876859390123046189562960610099909978673086776905331478517451000230682435885457682038106070189754813176680365713512688187685818416483544963367594007352608766185881840248965205949344448494518265942856438575385364954879857067465672251482539396152794033954285058850043794843241290082547712000862049381354836469628114601448109558066939016597715302324916171477530681869528941956636900987355383620519904054954621923520140391234442649713735980673085684184283620312830845983532604907779138872726816583271158969940578240672375714099025738855046054746986882699024504636336954316906336332795130867997248573602670478912831712034364553543131890518849787055501483370985083351821307295824944612084395477748756113678797139767927014076709855208395164142044645302215380403087814571590449148062822223970493346125266711691901416141530802582724858338810534319792516592619850292320785554020160587892964848244864192440556848191008820768455940040883060189388134902341631305696304162231132599623151676222095263469869152984701319465908227113040419267199003481667304120841038149207100808612740458747076343142345839295224703028239740840156033929271558386215340115516810805963100692420600576939955876831774797072535146064559063308733575966520363046911558322578759968283267896149800641323324865704005981796095027411346090811643059815344779710023771231798805203571518576434914367162241307988505349495795540633768005253900718427765631739370280603820681845825105936757142171231155247815459432946126034269559634994409260869529610965478360448899695569485162501079868350171940191096996865666501281878373667749193214859456563522614219405585292714921588720617103450771425857087681413053314211336134823819095506659790415412475719787515748589817707443721801731421908383595602103474321658398724613875215017641555793786048893427471525325937429985956491442105514106004560938138300441527194980443554539189877127975396786369519413451891375068264258972851275270979925000870631480672926185278360395006589317274494017541923253752006172562472751544188962181006651166103035283444915475405896433187026836914516097394453106149197917898487366385263646423258363714297234441945250419252184785461140836270232001947220415435479389508381663013386928407647412526781204007903131285406651543455650101147905347582755197165539298148317257192772494267648738674896544589583112001735070054721484822898319836781093099294893425560990323453803595565660638338624736120747748396213158031611480425955204378819480768237399855562517269226233059157557554744966168614462644254950255357079105578712393318687765212719255405740499513345568202975534603464216924424466604672468044910405432765577474708959808551618851569858868067594736616873925249941079948149628140681943631849942985161877578765384502595750181609246418704153158703568066609102768420379596115649602132824554512205338160246548381075656420900078225040013753951014518284780298253752732030763838238260858301218347574379190195734172079365739822046349404261417231297592247575634139605527184996382342625386174591947928689431927698312938256977711864339261123752963816165439661131093341957738818228002382106683800085086743417101062616720178266170109798694049832764588303394266841653226090112163844407917805071027638682375694139180088486476603592158458069420930593648350607180972233970350506541370245427641782985417238329528484029579826826308977178184880178495075446366591729552081218791307527610949103345931508130833358331106678204658072309101807677527431426888266776981126378330059334541065312807972621745826116459536423630835177429647550597724884015542128885416047408006301865896496993532638321915566173497066414261382930808143872036126317050564704943835344284123896658710237353156928539661979899309251543538500689883012983618837848806225612136313097713074733241556001977736288137267673106543074707441374464099456037290137660263130662855488961814474426508937086464897826733863928769392992814116669039254719925494944321570914156059895317438585204776654932961765749137700582145736458347932008375705365875405776130190387122617648430565999638019629227015375790142939605922794075551603797065918578169891383031817463553160095328711243579435613121513932354039603883822292639232894868729402128041293455758689626967731087937850466405173096921593729302290885760297610230898666574576218308993283241705531838748173118353790006505035863811906901773512293710832768171933926079828397989234335083343534213926412860836253467103326610988770800989935831662413105883622320391983251761481331538270004951600460128091163862659710972458792449332189205941595179811786555507052583184262390308678389485602874180169797142405616633432147629140147305965778761804414015335166841091356559181890803315033447032895269815047049196051537543621326683735356194160722709379218936719890935907758872752530878033951116222681620863928305256055634087052075024223793720491472657956965274387280188540761075406542774659518730471668661443835701098854732117768059762667694749631159041814172571606331152337386527403851100624153353239660893627787038167277066421924248557347349803580674850533173436378448696405607398568646814071587321738146405623171448843266866298860360060058416052680415569624472518380026428649244830993204861672300842769282037077281909760524095851202011907138600953621651172747868710593000981437505785690741949133501455125222507959433979204187223801295769059021325765886210209919500707217916802343350187845924653394782246626662296438050399448758075839099486219272799801901573523500200245327765094079339023903073668931136009195140779346015155508188101540000336459433011909350604855659540068886065647780774088508157867932356393379595312257390165929730020066706096691452885291700515957000613105543882057648478193719976711555544416896328057622648434016021607873096518179768585101029464818922764302929913055957674841136155009208582419499568388513688671239408767454033636923446689412401178550071665234727920031638667579240817483479846223646897723614169902282616910634222926067664741961166276849542133686630831147273706285694662532298777502193665407175044206391883222362824971567992658858744277709488136068571768416414937578544027695425872704221329688003460909319853586925119150253129207514469782017457912152989620765143513575827647231414282762766555304606578508846064213115160083412689140171303158922208908790164599740961220578059698422472696347610101652601488979618684771228688545044652297765366059070651718773045713220160870330665346136140483737856961118695784928270192998840380640756090846519701884584534685260565237701834280033592064961883673647717530545661622441345046021035450975246336545340158551190448221008801713672202267726784010698184004162293623745863664153984193340764432455198266702855128941669181573586579906910190012423051796301906473347818374701455630112301566767427731797771865390215006071311882806235589590144707596642109203096747985779976445726159741769183119728172368883140170621510185357295575785415565620003988173527984677442159384938240840405760705179135934017554708630476030147119424841978742714800840220200210592715377862750922192568089490343501441258284967865341058413861201690981616788566702478772942400112651816160584945500895155159876744104834089991117298571233764855014136313200502179237376523483495452553286715102401553560700109657229091129322698360561957433222972212477485753743890230746272248269565373935332934191009216458178506897127922660097912255134989518194079365238712243879593198265265913966642689012798469079805863427938411794346509701810644961670004752997984871605668223810699558314641187971875446522706246146395562528356788449731597221927847632631164196228757692385449449209188091297093146402864898224261482303749990163221163609997148558860219328443332431921291535591154331107790352623501110912970644557787071741203934406999022490229453753665089055471341213153004001823013599982749985832190666546215974319425322584260304611953047537731513143080280631946558537332741267548218811548706168186049537581195793671713882921714953443826231957638771035612186403881934338231600297495552293505492034343117844827952154649472861590608343259088560640579366581581333806403035127322762956797498491926647035467029054217846209955344555380674184993465691722533402090032982701079599640669185456997598028672075321058865029079888291933416826042360555217475134398863961666109793017905937637557067083418256095437666349460223907457826977345764955606385916853119203715303870188627454858516383601407257616225702318468575173261742001680161115814790252819128377971680962617092495094502358119364272115021890427747897130170873116856314282184220594025822327972778462009936149779190480646733254075953204108468118231465744925190048277729978754180229422302469190975919844016629351358848449196042335967174918692263554313120911420170421209411974790134943131500461925678423214188721147088741784135414039773039738697096954230396650955000150717468964836899206898408770219246329131313593525421874413994050043303763361982257522508506736259936830468522647405009588806657291719033390405757591032526141280275491617754697827885486871480887502977293409882021365368381992975691904229121461328467296745586920196375070003788871123940317228675619301470230984244660372872254117842779727132952494581781323939177528810151427989369927093920077043799748731661169873938464647468402464900278714291465784104478504980068620691393549650698125694694182573873114102451317794026542499366258609441751824916389749650196545770890878142353550660895101432423950165117812677888513046211196972802482822931436751761786693694875809375467611171378363316103749946562181642527499845884824435665171629258873815007546642573543633564591032566414221522603879068672734676985844968555579255428743271446054500865565283271209717164912770717677172111507833262314788722725842017957337262707778335859403894056624050064380597080839806524079652716425371929239610704958985010748427965392413419683190982719428399367675500488226620142635686415517525201299093526263988171678399569588794005870400578982255463048121984516299968621293443370761393714975519324409776674793912929413232435196248247302584779273104266159866039390808838118599092979027815973518308577446909126717360102346479834784984220394842540613502805617894245473926655158642990592475863512296781571733111423947316126548061287982593833728822616133273673878785939939433760800065310629833204425091727548783020885146123593098384693565841903217246584176949276766349170394740695244115778252909152692105819938751180593153484730328795813995278936491439854706243977563725745251208477235902969423441263403923808898045740518427295216193858883647899518875536256806739848744801834343419756905188472219270166374062203730527327698368761541532638867846915508606066950360001861828807983359882151189962970990498203898028532533479731729447548591790551884724987039265081424898932756702089685349002419223925062241354090252627651207713979440782064500942184706650758387523510321300396447418038854312848572331146986790244731744680956564603762718709821469985752110689962490982116641997940680563900194874586093656823319435880538454987374992574157835653931491006829674216180399760152306961786094262604378181350582551032623751796408811920458657675744194604007374651657942578812603056648494109278477769684992100569100440519494855815350951608059692510141896822324567860406136396868212403211799148681262142696942002935028538384897145373267100263306141611576218957640238316710040662323133539870884470813657193967612464451998068914298161623134900621520586398664373339367165205855791090457448050953879352651178309009829860897141144385542094772468403932420703823117376960999202052187604762648507467136224968127827586078045765776679838585899072774681781725812507291579263744119220099242622092735605791204323126505034812465353114795584874757397250081935793559446845015987087677449905446183298554381541097213231082195984790123166737522179497408823752462861335058214202204857900428419575919855249159178737914864308768700766184248593122424979209175237391958165078230864599270866007809046993992276684527835101566388502977693225265347833707638281062338549556445195596442722047252455946331267566288407957692632123955198053122925515847466024912779566831824506961508181121960459127107904485307206898375359279229392865715013011566041457213558679646144518887976939155298942301462986684647625937202569691944073965124926430104885124505631368103232146140308525449899627484325031538753794794908393850091458971160006045727069053761120576361152618917139415144972684095520370610901334781537926764020946658672254223581333959810415087008086993444357328899260300068638759684595121934782928989280989751845666538661863490778715367846135585992288428285070304120882824111977528219041474344226528910032981596409944532154093344451227840765488666564030798215777727884892404376658711578793094368866140668150177083870374251723749691851014574954263558055946685451957879623270282456639906221916823363526396070696017257816345581713201801855747399421985578002385857274055839490123785913718001586253188633705809676683538527259125511674061618158186259203669917096253895600246378953206153651257357062065774283789901704301582457758453049811012368554055189056264178391055584048071516486081730054564024954985494873047508350619606110081779028179114159743962602048496558709429135003870954859899358105271208402623670516467827956619980867685405573151053759277358752069747136676211140628855776663843560287349431688638980495006777513484428601776614585871683905596681983042741762364064430428889351941549116825875516173406144583652848288851324725226009966818513730091242822824408453472726190213064142745439458094604451151444440056401891922390987386414836764266486724256381636543776366140379654128801481479793901053252198267654063951826040035547678492870695810293648174042675213148391993205897456743117858063342949657081083753349335139446962128751341915294624348474209552565134403802964482347139898248679921680282150360581746842904664284123086866995581997088330915084335448552171619169712002431316230803269280888167562875399280854453690137647950689019908348624885701480740973070799958628804521518814521879737211445437332313155413500887549591269903789249180700306524310324094767167788442387764528105403697430144058158156922526991487237565958687824773567972105409675548714225404881882223137549687373990318049437230039892462405427571921908830991334549470938548683557176642288531221717524199417207440449179460511125813794028969808516146609126646470140908030167578257522379809484244697455447497390367462070928907687448610179204954296680012743027808208519668914261837731951037659502268184159291820249356953577429598975223381958094681520152332411674650730429755494241138249114706892355665884825563192737255518042697031121879406615967788717698535263193345730160674356292064948686784519233360017510267432901306559169227500411526101015721117601953757654243648649275007723301230541870571980965068871973218411242432555358794185378662178703015662404412993889508078068065665625399737640855649588431683448921258576805864962470042008749191624746647069320627604308849562719644998542264880876655392679039960305686912527665402957247708305014238655257205778408768150804815215952923710444812714196781621410449191875878017588762827800045485857192822611435508139972977646601149894305643864295942102626397248839154078376564405345792596447302456800804365994657504203409224826185301142924234372616382236716650758843639865386299120357370105486619708135861446421378822718674872736929403887906132461129972717862006296905583091096017521382205620268994549165299901239610848226462307828352306513370031819748278433166373522451989693701315493462284479359625061534504891830768084183996716357516772110204739655042836710811320608322788274457772820690233060199574263045864715653468243378048260687562608593483756394148188214596339482460131500559807463729159822266349855948747025241322447867362061999094915353065712114003262260273004305632335490369976358543892015508669041679443222749943164407413957594220712873660824301884344120956363866599576962895938195733616479717179813942741157676790294637290629109781530286784514799199583153653913770391246318773600302322018238079455386071232727837853161110012712623828889606915355881088875856037983167806967735508797049935773060143821307320932212485712262500690241776424688141365801314163491425813833011733361294703420697668272685861300683901399166800655772377933418529316492020532837333840746184565801888567468289588203075063235556021309542847151430154223240829138848782559577316521673284621081570965629283052736816202637526350296345043917898500263043312897391503204551633522318156005867388793545363777568250284461749723535919706219774278529529622779972275828368833096336160427648777483117623971112698040528447198648382457288360838491060515394443394759084070469463004152530884426772678979278004741806165029299982193913325681865335752141975841646159080347964268888804881491450712677319869184026659741506900018325894562641893450507773133193296303015002018340888620380560116479126508058509256977954424912810304785971208329923625125463401531949715556807550194080973452874483050897299838532945987214965049823241644983951592862295912220574944637942332185041330915995319881720964966539617783868581008501852569133849800653610109923939411565201101467893631886478340243901063273067639961885565773040743880069934753630505632554796564160122102721540467032214112255551150694335031866604421341649545029578293669769908831061831678488975157080849008457514311055578862595789774613744935951402058306937408603915358396901218073985932676578500316615239794632683707018584383549755114390863293764654081982797708162483603637365959773602839327952577034117738449340804969504019884518090807574439066935607219347364872882937284474648463485407912764783654798290742473335311760365984834412190257649139645036179604995593286816760546761927165212617601817202404628771116459374605902373576275882864722364326336972282805493371497987572427242015814825161564497126894082026754478270362625564847927205081200131368976923400296273151429801298535496134488192671862256322656306122264113166420843458141551614243821411321074611671653360904593941399860572892070019070919471907908763020633071670874507292648405105011700311912675223524034447745134739922503414339051801726436416285070229114084058328682385921003210328600901018255976563117276417102128297839631341183926478214720182156195940528731884356777027722575152735616602618013942354667367069093184605095063094454723697573227900774505985532105101982387136080915367719567155469347321035399984351931221463053778425779791400332220497721139495394874170141903486793765610345292966791572483960403919305908253248811538373632438354950897685665263964899704874234335304290372392457207794767243355672822976292049478267978916941722551328511448923577939080261296502162934702936255931110308487026701640391981989791631253889331322878218606640124467666742903564351944798423778144964625598130484517051232386012336787733255077091853074252243696463681014448656615902358275983496872005828671109506820364826467286017245131957453159529870224845784204085133803648281530915125801743265908806231994315771960701199400633068564432510268072049990116368006804401330493542905861084724625686147361838645431035344487665025812239778321876892933086880885522713584306165373120785047147812810546245203368175965705385227467096818680647855817138070377991711016136687571583999450133933485689722748863694519470468141768057798189988834118768480982299306523357280904049927753261365877909427454853748924666552015265112367638677693998813269168734908193089581578542583181349454436124650936750869015166652004560412813980377294602558855707533899378846657599924692628087301863265892620933384476382749311111643672096110886953681698608907313090463662710072492103142691175303871378639057535183507405849443886578356835580203111488604667101950844163113507843323534894056573995762894656177748057359950363416704002172276920600921482395534658415133313650659586396817593969613572977805887498554934674315302655805559874013886915696726039160796406176415755289526827000578393202383205900372097124085695576726463102359523534625011128983397873983880424801038520382844876708422170272421049962000921730389359528665255650182298374849620652318506166672821192640808950135756160591199155357724897451560374677484527320095476324624463265323253853823067619314494102999493204990168733919958676224864441284829587163301892068765474392511156563817798141853085895224192434045603983556453706723526000296938574631476787835188427789984121606101871628064247077051326119976673872033421981813520719377569615713516439217219115736873337629332519163672252028245724595100948041893720843185176494444701385320180938827385844135718504336310948838292802466837936081482151289264583722101378657837706862367387956377224632443403185513751939078587116174454012846906453055971549405364515243478131396274762488235782164652818558583037719202168438445256456243848396556382121588681130607523616275103622345981649710155001414662672059722300710070083958644432290065945896612111269037438941254401241491982779613331620568941113453578519748419838429132423458758426399429991902130446374715416091064987059125576680225863422863156546632304415036443157920360782199501463547991947763337656327530438279729753246557686492443851518077062171201826664528404043920821173909970439552373726857207994542989004221705761171068419751723238918584295936503463949573582376126234734318869585646004757586083347263420695855758026552665412810379940772767793844456516897282328295850794394549579091827581541736605358569401419517162972653225138058411820830487667632834073951667797330921634021592334172196432023760438911050499315845351648363365112946847830889451245331027266508199376518969382503241991058558234672128789592636456575294547679824057989880315084127311997592192059337612994322814915104592054038956260811423034993064412361773617850578080614933424491358492778984234525140302922610453140322787152631537622212664532180366522847400196479788107432555436755408840189652341205102101432296237901875764985080039151916545731086823606313122780659332721181168887116600373270667548345914863707739522933093125817060362447332093121939921981667247035707593839907184279731434111868763253642483165608955770107436599846895127137633030245780391990289183106321924985914267379766760583038924169114669325031037230976871950294697038128501547555878158006641514023533187860966871905664723751044771283006211733127732210950362685392208722605291511629186882646939972631283127835723314759853560774633886800603352529435608923717337827228509494477608888966471673854798662266987601989787291157831657892736446557832578307831903450941852759516036718536366621632401824072479055397703489653534321257718436600822767192602225257378256885213934417072547529963940768390305720498905630717480536197973014550508828698765070111561319898277026084355700936045042198342800749677452575544391953325994704523025540371052490882636055880079098603622216559697953656336550538453206838649409801595974767368076174285375471574242045538808406783127005389174810125831808497293125206333505092141857124506182327186438836283632196389361698572604639231456009665167765951828115343290820819547945938859083851404278186338275335736605159323165548142395380462301566924914040471144543299084205280777113136923844578333170651100392069037777128537281562741677084271339325420597121330765115542342882499016200726312704849730959173698927853190208832449769124468691283632915756020331999483514615421823853039121600201495371908032260152390926876490400655444796633003520725241941358256294256446801980810511660476863769617402479589593534008763862229556077474031311014890765373519075865628507745637529655291324770085245419582711727369587659798290288983794472942724072348789887621281040313293192177052212421122952209400175578858166836343882436239190318888771076126554964206367691990394962079676443278678151266740688409557780946574169143196347629273965642528745919835959822947453352189340016527046240683108329042840239030678140809440728352216112011625320080145119084377532300271536863513276530568614859091517953777607556268883718764988144839451737658648156291071783788671570359056899933738101525622255552208627521174594539170865567698059504961136539439314156197492936546402942843378198506493657172412318368079388071403703089517050259032004999804772437726584207571164277458714872961379782861194304992411804392310306123097786223872115838958092258692517319817669950187360729508427644408758295144321579247461518809142730832630451791044476902859476528604802266801459325574329265201742331039782984674067832277155420834643882579883764768258562965275844739286203840172840681082272782363659604195013912157018954959766931467543335511938468160108420003899583757936934198983632415343883513203352292960544912275479103806583116325358150748956948367648815984110111678166723969089210854885153069834599487706905376407419988828857398698753147533973918434777883982832567008055292799267329697764023896077582422464131818657205843365251951216902763681408594194313738410344912258031521860895620818028379074909385479583269196978604246301957555491368634971169511911143117283625983561576715278280610812467013634446927719042647730041809913646875699154794765165452507920669302947892266111236514977027660905960665030753054649607139734998763747279905111692123791492506608843032288441549194484242183097002107743203845706085313070323444433407639627338375567089409999180999519707027447177989063320039937269057767577287565252328607181760972875447035540928399028096550347843215137067616166026182056906768249487422482651840313992284518354997342624934246050541834980852582510882796865003250507893849254976156675429577215183276968719802800934647615931164796303553245798323059565822987395902306006741935257505655097503158281450830342764872218604387995934714852113036543827490108983098839331210745137130162802382616729629028281720654441947731539696286772361395590248713918345559563369803978787945166535719796431158648455109482686608397704275737306389408639233137614137271441343324062050113937196070825624979290424081918603100728742244812436271736180817713765904858651376850834994780920916649475357768858821753440721208065545929967174601571161656948419634692900197977858239137524644057352772029776539396430453834366964334324907523616227553296985872763919246223460478059915963183463612490261553606877069395030359668502873425733774649679074445456653377006924461077598936389340902243719285924671621277092944073075307131501092688070569219443190021632254901679781428449518960466145185221272111134346856999732991898601220203213556536335261970467529361055020095170403689132952984409332723758766854476890067579598864584935489141957491096723729361550315850676691752021254115756019278159447164700317567581767240781798675515066296284802376544671397145029298974809289839774369304701046772548169661486013169311529151873588876754094648217883186549247909025094576130626143637354418794928079019827642753720223016932350284166758507819182914146902088823258964253899078891932451196919434712404499550134058564307603968699837556604565436687794623605130817638713465648055150358716634353294180560279478841430004081734639230874819018989994335112943498471779540392136956887756819863432487887381238210533124627059964980763766331968689346156701174665464217196737076284725926456573861663020950775508798931766703338015495009102878129495256170470913613674726908453205225902286695255923704949195113912042585213466064653790543421984079499526157632089830663179318518221106353430141133920572075135723252935322988733228488661845568089631697917838113536064423965264195509397839889844861375736549401306675569959005753950594690760703173659667914378475460723615462768631371186271082851220603425635374943483722147048409156538560069142739945980516352621791399546911484975583419132157897174080252349691678467939531503405746647288953708905444347416002145911084430986894599927686547855322855105671026823947179385196654262915505963818827320822314386917841832095206242319288530729448939774438867622176135465774800122454989350446614183202923014981516004340599537274419532247839113029786252400762368166658157220897399974415800570039020482988429105916821595059948444004078516851793650451475005722411143195993851438070124115590661896718337277884150436966183524054826494038069714917222629429106367808858267839920994694166625125488687386980550706761793678976025248066382798946545498630724047682246798465240559348969800662776629232069184575749304055537835167830324038404457220898554117124771702690416955439861943085316268481570018019948267087605518708677571293958379326050343755015443735706441464526743244252937645858162177240251008930112160522724122619703466345002386124099098515347774806084560765168801606555947212319639158980746082255110215426731448773735518340066810539628583331781922257426456836916229239816675349937577463203694435558340516951413385677347752461733177398123429060462938020868607549098776034679678582291159160631938015755836470530952272902576253542408304741993127847522960300167008462265273656823380548687378416939562828356532110892263500173953299291139382549035407188548492047473449076152785547643461263155193768224541731401101471852035773219256278774645832793547184762555322569301242390099633408092903089958574676744075941541844760545477111767715077939200531705251053781828457841569825274781485470351343830331531344522700139084527740015808931846136199278323319202617159542463561540143548251110107170975164692715866413318591949279891617600837421782130487127345482729486519341334861535450384990948923669946880172988357772550131280779661858621771792782749942098274657939619027110005237868087877938647353012038688480369958214013304338756485472454148292577812250959158993349540070393525672304073345985446401544677877702906777928993978311926365487628294178078830755123955972980408505138206337170601794217442634037510564560371939345236193459963986123973972425014043180133541860605504949988293693304257577735087873184515123102882870068642338572695734415556808011186784577861914712630002396926212774969355928193038689849238730339507054918024878163267440324980820672959594938329422178377242454472993037883112150862986830625506762530249065364580907220968894808123343476051987323338863499715935406029112312450425095740146437930041385726228365402474577478099955411957506432691637510083162422179048588111649698889869528301426757408981563400921709882598683823953743010474581600651406858181624176659821121033662777129572910474982079005573384423116135148871864431977331732987857264805845855480355208772513394318448253743029056911110616074901835704280195576395675485524352274899596821939214883960137151788552853415318353215466930078992717717020542235342448617105112888791311799939382484567789116405202156466632756771791613254249415404011506800390218068181730449624954697078257203187174493230430226900081918888423020829864141564111031285769191774883581518749075727054811794950270136303847873868906479218720399616829793599462024502684112906323736131824268988993042382060628194189324679650950285262639156982170348864816535234329623554819565803068771776091412845306837149642575019823131286472153446681352091398729229704861967744589643049905513523044300372947431182693991995364094575379169918793485298535821558801060896561147390588651963018151358630858052310538697474233484247632378307610512212300154169673710344537172962870017472838203773701934608694915638538197902087677151974407173568888842915961571115379178589774272368436212427364462456477621300817191968406897046258435768298539583849968804690444895594107293166649700292267187601462773692222983071814637785349583258318152040867280414469566517777857981579308086143510887943568314032647995842885776306323821570027005034648396322820583683556977609405757562960691997135258260911504053147557901393380751867066541488683276711288941350545118149579397252919662821844575107457593224899275657892342709024988178497586744119376732558475622411902040345926599769105985106985120708389905100524446810897310307092734964759770554431679167483047685641375950370649435194887358634621103894495979328971030892267573425656341338767613540692939981774447280383112355691912987978734493244538915051694294119833443691556145625575619601918272516417340727974102136909827792103913265134708040429632101301824981862565493084716249446014533098563439674387104532532261952278572597146667737452727547630880768194123229686790097621184567200531076731479245956676429410390014968888913291918767378421441206932282062182654090537174109468067070285921323069599496418209912486146101495376534453804845852339560418362470375706896541012615664675761168890576580528490438955156503155780454872137820589013605261277521568176493985437007336956067973724723363404311999243207558331536640167320800072337681807501279961996460829024774879813862234092982471742456795684550348189110404189854578838241117786317136203758895195601551651766312384635506512056398855044564015269405312811757654777590653433626460769002265356583463082854605411823305862890790386109778753210700400485485485264626467655212809159982525943737141400912493067667431720446952048569683717185498712120644436325170415605789862783265196524987216245482746147366000390954110643922839700168075035629898203610502029291150992213822423370142827763255621147673621686691263864550585639762267718099368850639547443152512311317336499141037660326357255286874965921564349164359218181670631021434072052520948981451501307004440695351649567113023600187318142454627175891285130254712445899876851300939352282612904029357448095465384611616856628118458270920505928807640016423202090131836999244193606342075590795689874876906509109833755186636708222781597198797610915081493186240710867562482094736408154328203280686204048667816328555026591818996205910441839828672026787487746543731574045242908463300974155266769929485442405217915344908911153855358864318312554852264066013658168551297317415875542330277797277101444877989246072724776265214579711842693650748790434975649898283665564788519926501838139262447038435352231308250977699292340108542825665855906459444944302342578842938525013546154622173766117646287488989699329752356186258866352594721588299702377970325946139007513909718883754615363890742416548591540243464693889762314076178552958261308489199821789603573204631161946403604491877784474514131319686428255329189290916925414505083582720801691721910882047280551433877469829618381467268923495712708420647075863866862137197405950886866084818932576229737943371799511195676467066876690584195106692964731200129360886633420763233423041281744545021198873200920928950708740783129639847716401445056340929548831682192104977659998961918640976889884514835294832228392228795526053294388360120955242134996531974618401786381282428147738603723776624368825099913789097832561216932960753543779112725171373162143936211919423594004824723599711329925962352751545240207958506210488440553386547124366747006387481779258783833701397947191438118471854021424327546697199726084610371495847851241516641257576787360207685448792715609589165157176477487154656702219122619245768303801741338075859722068222805600985957905015167546866190204894478095880448751781548588728181961467602495600796804325525284632814265392405796960241869626359881558853355804258344849643125839093104987392540969843193150651011483985180347634050649666893013131463621369943866453348886198296216668900511760623773454498841002979323619282267201149137149589612051788504760884421443155675236332641551448546790280260678557872290643426037625098757779595806560540386633219036397940191491258437963090839830687527071686539980208413542378582765544962816711265174248584393193170592674612212270747222842898236817175874396491760421043452804929971446307751286165169704610118033211650330929853821312409541595239091631866881378900270565316664789115498942634262870435240346841845670524760965098347876076823343083424619214150954462350527341097025623471075329049068536393370881555133648403365006664932098115743879513806736119663943156257086489572801866395544104669015074511766385444063613957171192765878528424304854655222904107490273013871501097657287163055325950973121243795561130640020052496231312563336215638560962593814304855389487273413023165862032008953317836016890920268006098481655972392945782782211834265742098218961156094348450007432686144798000322090963718049572314015546071217123813931757187952821918192322637886124186691325360950612902435758839968923424560773659199975682696933960677968821425250257479982760505746365643341809029646240081179971980213948602189856347108957265311323884746902062313628733329870307117045982958455204040829406076624240393056012525990812347930117878850031980519502902478563163044539462280219683851739998832604975906763575330578339770554940283550590839142294283830366514797273845959111058625547438357926627680856338040448715809503645722898841628632242437242867642492930366895056998021584873283055982756814327442865557855718304575221627121459596530116106536606619149994053194459563310667564772013718707755262141731190114043343047625264234517197831996984067915128743662862593640048763247596928631244180837068663607688876668869224874466403706095106299873293164380803463450800894752189350297216034771184376991255946985188053214509070383776102991629027406752903469504030887512153864092651360584603975677388793810103088495767379185957573663562089720345597781194684801060717671669530544241259649678188836171825082906096721714694962211379940856480593746643280774243973504236118310187954527274970110848063047304535313941342956811434090928557468959064346911391247168148154803549996638902395800633088994696001719628180113017680327399586710158391773270183695756414015552563993109076535554081110384801426516860787389779715579903893762302948540765917973772024393288683509440257229980513115988015726885944743515840335573989935678585884198380243048482666385851179351380265614301230153201189252184742149732257708669871646619701452714235264259092040771292671940047598714330502307766807518573570124960820563352435888851908689071939623371704969284533656213564779281603670779908265796123955840701373247487827517794388443232637664960106380304768547040577695233317337163201459123413334938839328297103053258807793320628838722664958840816118668258939654064983011807910899272062363195289827302414032264889210106793946385818831048257291892680389440649289542414009611450064137485572974953595377981514239950741449059825239865469589383463230732815764357422296225846200453330774059725436753667756391847110752242060679907835419978149793992631881488947121200995532423044145355734113422094560959672152491720959937263127177741327417563973828430732809332864564477812120957318358322629923502559592488489644011544912051334857702891898643263713832627796402903258049294221123591647041394216212652114401162225017550493158054921615303175747768751503139825995557394378757088368176004442836804375645337972638567390566559749252693347606994696469851661710620308687405827428905011318435787064251198405735641772533702634213962236327513191228975710702392047921191953422785919434623979057635458072058699227611880377015771049216341434476655450322955147322804505507143493209238225797986662998336075108148129850844620824479866126916549150028576677310745772662890917395884118427735197001106042704170508478376056540267731521760914985733985168991094717603631521783177212228399293584998108049227257827731022929747896490530030458408195999191160348849384060624247666057491930426997545975209028659242051792985125896361595916321252546374674441486874749313201254493531127784634073521785858280551775523670628731176574659594169540232008809500438637737831003636811397320317468564063294135474529340990705805104248334869467840229810204788802906073403513388371726176193834861586743446574717288562093971317425012381458455636284806120501879747281682254591043090717343683138959284915743190672518244442987693258326238375137003066269843802472891884528342935208764399579780442494048385443668070330217060118331356855048606324295693317471062414700889943270708859554949743198079653694622622534813755401009297828835647697230946878046907722478109528956565569215884413058937202361512891410970012411203484019277222638686378130445400079473922643067303609053422621401433563053033156778641203939984459026164813678618496446356534132386789738785156345367874383441469020978035617948579456297070030280611039562503367234880501553673102222457798933402818531410318673709947253468753419981718984300263844304999859673952656262260010275665298402434910869155260007737574881352640766939324290593517540759773420995390715323798405040838497951530896070521881974897249915885350861363729396415386981732298706585327565535915449581881762858848889732404929390228345157378019755748348300042231950514636807619238686022015076485240330391857205161546614796397269934473163369118006911091670718733263415864593603418060301003295214278780544991213242813993373409980877699135457025531586128021137200346770741277540248408938183832762878964047000235059769708663882999575907412434693351252962672566492190460195567053223065223764219794865590858662596753653682944349703946330314716552841828656081113057271837812773086692127351726038668442361312171110613055115457034427942520816644241079033284506794798353466924607498129378922491281926828128146519319988520339033139961577710568759696373766949847211456117643230708327114677625506829225558629505461706856321087345236563232056129765399236803659062401442999839271448586618401650426270407681614711602557538856470460159870938859988088980594275366677076654122565617106215447185653048161613435993250792008697976518973774692248804094608957560276697769623220453846165538370812893591638842479630848896619979865454703983359799158106216794606530958045676488410155697679384678672962856176994440756823284782271546849496318589259171776259933328626387855879637790919577752680760296211841055217142553360735891832217771339683094895050540375721978608339275187018012055665018754034207160934630370708616122446108622541081673158229086637877053015697328225271757717684047660401284318104571662003979767849237699123745632172708561262447695126880252689884053198696704288585033107956149518540201635014732069177374965410903521370404620796210580694806435569573182356104096469865966447960606669046100335169483882229237674917000916166929900724390099487459486951136180962016642319077691254656289036833909386216831027950720092198061929390379238745495718208225740455150345768932805697744477844563468017681180351062896467942325902546134243897463623214530153653033106133691520069599316353888334071345646465751736489374827161411195263826941465728459424903354224452469889500134814873715455883995890928584737173798400269792674276373679540123539406248467631099301370982589624889294209377806716504434534053784499495822548252737287760740073026838151429260060640035928533684407440516915125088383436091024018540061469996103786884231451842658510421709265693115791096592575180730503929262180811427319515822307164648337980408162272551555981291317987738958476407974441204677679317113884729946823474727436792566557272789972409506767402353012924997892900409673917986699974887415547316468225293879278969344437534079773344668014837487142287251849597489790600474250567107516563444128895839709276676941414673867161675341637977361746073314581499145355731705344317450274806617912996311163305979653922842122370835007295634950772726891220459974727749701712190481012815354098765224212561750925327193547862206752853064884789209496041925768258229904709061828904051770630072662277619055221790866564370043925208009493163863050949982963431949205068403984754441259687328964243753283708896963148887577685119480463630232263531440997630944602487012349018539886704091278348112776532168394322065276568914401757911997605488555714469791707174374972007890975067157027599398703307465384548987046049477451562011692324481299759633763822550520832870224889613884955639246741068551566055778129240536202537362200658817354331684771398518793633384383662545577552063516333947953530560765205075919145185091828564827943745444581914956466975047203368738143130903338957291414140038118653596571040409374132506136563133490404959370147446520334432829684299044581170821230652599383075657219645184386004353260663410728711986602132863676503094633622511913302105816860601411224780764730452939415871184424920369501493725881565166909491086932732962758436122653693251505803526846213646774194876200397011262007973216680822593154896154769321843648767938272218473353165545797704746356473969795508118026202644823875261660953778318731551604260782059714164979351737335220675700069475231802150459610793649590370938822042179846278465473883546830701356492239562406793635306680591934431022987156418086742011377237985312825827100534064790579670307509125461646962487335118607400990215478332595515823837527263133493454535505401786868161847663193117309070417443894542472828865579034952973411034193220259301457136181839360837285475440984941082645763600696137853731061715047846019028048812677963611549903701983708203904340742045576087490375680475035220100887421800156174055725967982163273729815133564015322663339746828910416361182642640585465032025370622308804796791304879484383633395009351729572842495380220951911198185016114096529332686876582216756868486048455560902769136242126771252897492154753066952655906314425173124877652176821008025887300729110283197015922713051401925311574076978165298119362522842725053796331821926716183234744814040154261192888252285422815312699649547337462159887090273780049235465650372538719499235932709702627758546385047656829836972341797911529340285910372488606593553063651215877623987387578093248108491956288387041131792924588501492185976780889933664074703546143709870102536994932093229000431192626871489957046117061446223006803158956072971241226133637985820306986263145989146928207610072607697648244361020598846866848663613985317385878302977736789109511314910878590200057009915200832311324262720212781352310678236742428128670919815765062607310937268550254903105481037680624499820636926973083926900175082335597400403251960473971011531016617596308222336677981168437613640136570922744283570312220816435239336138242984668899290085068491578391728143724035591205236083301758758376459054078093255483217889652144072334385366403189345268488296031852080852592975096027557748857620538914949950804901961226801700238114704325544471781775045277340520915063503341249748869327643794795727149008228744179410937618755301475170207707864769264847441297940053989401905811282652061091148793692201663833601386364753801748703815461684219726949784750290336460044325942800443158685919590455466790304286869797696924240077714564365062032979687005301169979296968595976267890549416961576344250220590873272401379891931782681012090337344750278231241319625999089545975467258231357229192544740224599806858401459005626352511544917256940756106577747255098669281325857153186842793380786203738578736481103804897318577274324227436136600849681298412612212147526451124480743668635856100873765106037776216637233498815746627473784228719128176422311533285504895728085004513706201691687485938926787253972854823331212171037426332544956289957295339935262237692609770926233490339410593664871294271365671527528331812758592627805205485181048224993248654185522829949748288946062190305633957792582982337094236090282698932341836296995973044222525389242078190477986780487020043328139062459868024116381782494273535885839329738705908432434688400043810283787506021005118225446473463483600890045142162273844199600407355176307457039690298432114946166256126512160851397452703922140039406962314739684520790183647004378077321633059536266532518523970990645083194292213293572735692823522653874278959750009113113247794180680735631909297820928624282698320683979969419775368946742589265241537885287069793227240221409563251418916720420450002960991237315901312971388637216615089015354387151538439515088444938544889354089435634639117362804846146339826310212296651791076772715941617000921202281815668639710139798849233979072418447980970756362257247479373347285856068782303008879628009100277106299682902081421348915910415372216464486886520217233100883000385665116002501292688150806319947126150428696981859371491747737101250933509610127385882667379575251499071151046392278600619193164070530555685014428982515115542628671435747485186693775767668833275071867663512869163229352147927669977113014335646256209846709676455076090832197954145992086341213913605177573073716785566709186800879135832087543808354721738818423231726271528283404118400905978072770600613016177137302135337151198929086987683692338114017016589849791396945825702248892590950239144610963912711226812756621817198559800348072190153622275435547272504636398189852181345490619236310580471074578661890795513315340637900678095486713600182990781929504545867661454150334663032296107616477139222480716503948534336345576764629034423584565337397389450854484913859805900992975451691913392147117805121870434203941961017505926011580850695425858981235744009226183583937176779942924265284407630512830761854668419725918278499768802699103434797728012064752833408209751600521773627874680198526379130975264383529890748348293249624070696450530324775589618350102896817055443303717566815265438423980041640629719802532390865340773617879748003287465856286070920569531205322286420872964764904343524734847235543284164002172920749701654884980380301799370846281549690223298629497650067791974145955764551710657045642996533471388767418930387782654188726823594987655310012227278539710474925664540663191550862157967756477978773877898692521987111303411752201522843970491192695888352199814135141807492426941133929185371844565786876079860515956010291700815965084245799015473672322635792626854917826185884236548008727995400944054947238683336010832029837043178342161331750365267955576605164078490895654312580970194924515002711132409150289433948462782468234943161834980125318288210076282985291982551015772854776833454279627602812701573477719723093699480905493851697142976679780112437223656037624918708415983006281630547913339128056797067327277016508320618258828705474259194176161267744196883641901573464308358678915285098553410047180843357826254396717896755733631968585196893701165090849415245124557150935028680095632918706257617558040514791832643535588567810984282765755648315802610176395898650013619273456027877558607830221901931930066054137526240908275602037844954536991495510533885887908177813057280002356465966061724953402910370634619630639398683496107406762274383222872602326092816348160098375065195346841994197730731603019128403359035212552644570185457064033972922321967922944034711435799013974214132155900937525408808294117501331066715153962043024478839357020558597283964421148002749869111523063403018992599026905919046681990359775211829131432244000356349236119862978285769989227204720470296733544531556571801399698339974757437849363611154116101481922659566826705589472164298739884798332758448880197636721413220211134571477155940785131835458955761078828047605810412463733671605630772882064495759359690421842465591976738140651820577633164490244125671500327175684448373834404243401526933361658018744430524509245561846675198412437929518979614268827294179707329589462008055451756550665229426613928026166071475448408991989911192680673406335161728128466927143402657338409084795001195630258323857489407605316670450951286027963541258689020171132591226118412096265821545968850215020083372373420810566989589855748886299639575021766130076521689782418967495395724721370077416657920046342060475835323004391777837310860629855711226658474772252115720995916059264901472340471769005645493896856325743562004302563642530808982304465249191297309914046634154980783813912037398474790907236628175772054234915334746405680382279004518244558169724719333226374905488395307004781786255064736671371656616032840481748941765580843209495674191921001793156248938048678973664510918166006537471982905148295461653931828051096745353514045350838420948757154051165462862152707854918246191046495407824439801889481240312210869790320674785618032164051002256904053958005975977431097789173320926098256416610895504677280038411172954142841269428661031843960496936769481377610722826139353840395159571966105135095826319224814827265600094608665756020213901268700891002442343651006333674112970481870065330709006003222360684320797974228861668804967657242486266574570610977323913862224276035669606212082914702389645734051283344180823683176370433351259938763011480416027354420781438051964251412855372560655538768812792146833224778134548406627937851609819882644801318329671764110763317755414771812235283394612000639408901544620554208723681794644994081078784636173285469298683606879545138507532775186757979361230947975644168372384369982613246004014749008888359365299574112728207578754797033093080511326015352007184414121787042093661086913668650861043667047623909783648652977461189094837985358739416101669117164150245274315312884543690065717320269028616128152225469116959374672365952421966200291898508041909089881112926128196408200519440704405442247779626240484689061445424983961783323199501801456918407341025852411075562503173696489265703556825858913875433774510639635107608575306671037134134528137616155909153037758703567712420499814750729586373214068337777040872490846674478240812630647912638140733834577428810161665423952083051077964687489019422656007397615525343105436097170693090877601314931945953929254468044377262324989023663028050627982341473558336759161750320666641498649128663270621932210140065380616247596585336062401766828892192200840098045575511823827919391632364224884742159583955460297788899527668325644146876166888400024834016747141334595604428545878600943650375164477482816705300010530171948642406034383705821134370548127058089021439525449489465077261994588670935789025511123969568511359667872118309551124940744722796894369306693308989501119568673322047134432158227014739814392919814549901862873485665181629585077848508872108599656267610638781706270695146334837651005773596138855949869913050809242036256574240241654881913550209262483758449204598015507310982313730453882807098754674322689838605224795546108169838607049224032456673771319095819730109508468530854485509666953989567606767554286751963987282898763428395292081444265095705084979557035859131294595525706064543054351825885564898225127680567682949439190379571812746288125504540363165556497171469498936237335488094565433802171882850087090079826827114547416447977522204338365933646498099870102696368906960623759389737206003834620045059226157009072088683742664815315498078620487257578944148065700457273046198929320139593987824556826421810174835486481896453881827960110476194291837561464713896531371711872782293974614723977255581112265254916722971487329467137672259572669786283353498319954791958099662539295423921430311357989892192590332508021088167602566738688472279079815911631464250197629219753894695085629350755924400938614497121538827269554739313396010418374902654561606591505905424067191109486595497869010797454918015265842914167446482267209290402229965304113439735247072110706766723290020265437343136777366612199441933824964251952425429459649581881158049068980025083080112214206285266486794168738547746398887178091877937473969971998664373091860256609433722161252904414703501091522358188071502071022792524927126644581719830864970156112265972038768810543000354758833124882307465268321957423506850965284982684708290995903975922701320665834701806854669203049504631459687280101133326661791418470065720091676612651792164819204725113658948390909032967239111913159767149962715028126443663361045457071461550885521718810052639203235786816232805798751351894340694426243795376653599158267487178224962402421697396646097417709851208273460060808663037885705300733544730326295357152162529565271079205924069676846815911622645959179203201743714661643750187839830997039363238419110561726026071586332605808446661698028105230879165485754896940722041847103641200392332231786737738304013981837747391768053714869801098688882608621816259076729168572944172754756992666782591219812282146200461803904824197671259887840716301026848091905508665577759050405335098366012167420143064791827007950699321125846503444577895461759580793834956506326667519736833357644405594942806372780288923010894180664451965720642821197099580528886645443920931950931444495133820079798930748874352673714661324383920722078033667327291270680861957264237368219687047238655048208411955977293674523016944989522679980369676234669138406895089084866221602573123530657111033080495439845162960208370307568626667783831691996398590428723191919834684702398330820423370591343225574167142128486389296232422532836928563932677843524555761217779007903667803120050309612811368582171477433985051538792861999637630715415623430160012374849766717677381068514313100817011220245016147116442846969182322181483197666611027318441826222055344939904235739414674980365241406949345623553397532734868547884342120621262413016684942873890586751230129674258301350274091936289538131133945810211533445546793100932994548921075509456951183587803756450706956499088382510838517934594946606378856553474210420542201998665852931999622853869721286523917922505900337902454664691735451126714639405010942261875140122571775961710451018754026898956882406722794148572168080285424043340389160086783524182523747266023887877610849316957961212887948841882927251116678479710642253288991871453235790831367713425664147834899286381234620164438419058540763760072340460166654580872200053011203801284360931690446427718925918517966089135637256918906388424325436578797416123741491773509322304079493909794801444122844060185988039309955744363175564326292035957191976916975370461003728128634249516792033063204247701418309620556569488220441841550086603418405074887105397678438526397390670083116861058883391554314229469040574387462083639538329937803811981422474978807793599163101641797814113468608248595887723675483423213397312532695935176971800149370120226500011281474939502805527504848155035785100513016289336729375146090496973072549939797867594751871624228095278398765126877141613460879491252725712875151178744666745364991566535374109318395345541822875513192896504829665920953617269718895473329020510989203015090182409698583007578069940613488486432105460582997484794207596316122106475248526564606219707689755276839437761539122773260561116323289030975256695612147096177552416143164667938145332422285177454515776891830679810670123503958665322061386075020150533485115361494709010844060516142822368770570887568240835072153080780006788886931811912894068839954419528234587551020778964279913232364916915113441208736039799126927099328201484581988058706144949659197893063225859105760508460718236168571961021167785424541528783038092553468723954989943334193093016003545318234046180840887588799952485742580639412547285834510710085951360771636233829970702959961606212767158182479732531979776285134457947218260533675812976273161710837172658683844767291282033737705776420016699374774020374270627038150011773486328650689381370092214887674671467835682201552956360557959719430451163382125408658778783886899965666186110822722990323019615376736448763950496166012138642305412855090038287171130276155306838238925601985869610196548112014413983414495007453554582724874888655976238889591925712551217131857115079405810506237681163489021514111766790942473979449611338971235811651796720443468566736477767627273828526929257444369368500839252663305908393751968878380575665460650383426933545276127475998412734113213986951460437211758725234206804015028651764005432459867031189802413438834708353227198312801367596098121082479554384565078839073580730600200092023913656627860677995046931768314191972224662313040029341754608624174299540927962191087208657916935535542906568233009705782817722249478399948901756408808496329103616441474583407650645105394945812895583517227731067754043712377699154304933061190399286193510558648067831100481266614311869300905598606464609448170978984693854270594020000289249171614291740502669546045793463340754606181844727835050982593511552816966162211513787502729649464007297512822858548620269422227483423259301226441777087323595066611131252013813510975197585421378551466105039120994439525013680592187541063721279751917171662866715776383014096302091826469361388247165417667029663042794608773426734432505169524052460493193757566296146590268552475144228493260468678813768329614325381741196051959588593698344598351906283501880049918783644523778846695183650210395548631470261665227886025636666510662910830748966232473340913930756281457415787324033637283112163605106858260742993908794348453830568223040426797441198306071210936091318938101609250211912365990140134119010875334385945432039049478059577911973746614438853772249539733183489212589378163671419210259378665857380734042377643857269134428281641200238638177612002047301708875367945044404366168496457627953245945464005086064698267273524739447527444673378243396722734527176901601523979285597167073493101261582835346177387648827787759604158222174812502054249549681737860806403989230825362456515925758670960996688530775557488761800673872019189984355928747865859556983992415557826717202941333872100926072700305698384905375374041242836495644804279386742539144208055780159261916898146044160006314883853995982432016975824433221043013002678030541327587316211146502458850073249253383235573769068936436038168777766064270079458897387200889168629547079267496392568162840752987898212459183606701959182736264029862331237546487898293290750449894157678076198610016361030383806625329540655685184904535858047291238170925185060031136397267538492019143522979521026953135582819138725986707021777688741400477003296654627990851924630420196622332614442553802411592096611637988163756314195735941082591616808776700342582591327128098737223210259499749226329016518888530287388581917403451481608290754374539619149494263507624678712366550235148998788863184086643921021291730956423782189257830488580039195321897822681784303674594022302858968719106016269266247748554223192477392496781917621440030551782191481634499857871284060604547169387622594673887691734613566268946846234578672640034832901307013577088925198709835659914154516005279581720499058585646999442551405881821244464393135482736230848847487736961386204008975972589573285559285479439064575933108966718401151283333924113154666931125310455504575034792431517638808778256721902359910933977277361913645078716470771325865871121974029060239667118293624707607590050087309208403715548625915197027765129561623197740018504080689653717956531874310982196996166997658444734437261810455963231962149624351531107478918061777171711292977950192437709126553783143436905497940424729265551029555397048288408967147096436703814121428765549736453649767524307540039530620064738196145625329690163782304985409198110050388342680328081948002475792980072439300579796233578390800854567929252074357888318296701717127884017531321978206536286048237772154172813059960068431015177405538116122557226432159038391831280651584487670062401933487437615921197341682771920097871014346074643626959745263780521554248753046143920313520320638523272197596240931721348876582390466002355079308956760794976793564272006038787451388098915189201361613565558695372148892226861272592330937656850063464837475998947662811754436975561767682345774899892022925046255957409290226504458876337765817510906127354559310705251842087226144013281340404974118479678088024180578984216116977785234207420470384356254418625124726796665686585676258846283758592632686743196407183717332584527230939139967895091828997556584152989755363829794823861997448755711977922499889481125180119872818393148386060412575701808316743896087865655650590006945560139189500656044199699546710809421376787080472712280904778215681769001648641879592803930660166508381353879843832599777533979553075672411173479975186304690508799033021378037314103524790098025962841559689520606474976035102002923784518396891288113483577311993289511488288242322019223663377977801789050518645584005870626332524719941917229458173676087181267867385904433823158438034381438675129125331072937222814199871197290934072118082307433962799128764184916892657326358299866698342868994998735814512698804325502208812273578221932949448621657772477387506375598580266569955728784079395664875656659512400420292276084221307467759325971061652632451735058682323585191848897063755395846383469819133258138207783139998802243538572632994754617306055140501021594789228704436708291638700444987411675140396105903295659957025100615098135937421018742601435763458099438294001294525188865413904138437275536143777486947686317473049710879669202577756439730279641713794781006031772222154085439020055460679821117548282916074554463956811985165571162501602216389469732088411242304833955340098726528095364206385873765349494697718153241865089391833257849490559255658204164407869105506610995312307261909436721248573914587002493481602139683651175169538901396342548741065332529968257213380764830189748560227012279560464680942283008025586539423908609266150017627296290610845264658174436478095866232861055881821703990578006800075293409013051192107511792190029244510490881447996188692842976028968188871316455211409062746562819356160093200221330544924096577487037194450772980073880145376630357563104142233108661761157320510447181063607918585380658828714705374276557097169736203093043693111689517940945843208113516267037785168871935258496756969295684155000950356174818797732800073425204801466036701941841639710911181648468394669165101027611318099710546515824119170465694087782275859222404576105542956452947883580270406194016549012908836693804393170122281813357916352963785444502874516573627514559935919733549329989817891365938701788340729902346310903366661152046536479401720835715488669212637548009243778894391322268862106040776977621786763978143471039985701695096653581137744018926937911986903806300963138005312975340932559657665081931214235906673572674017195587020623534206086526929415811897113825475153457368387102844914900913651755836077876321673644529281096720288491906265791983991252218340815941977596086618678610482899132100329031034928324454562047244248947794947820951154999022387379251699181063009892599502545529950455029021487242744935957390441893451833997613705230874977242677110398003163542003676463281803586259583145503024147443874471114987912086967420593916945762798736221298732075509157314711175417184753032097469460016312989742747450234266062337313172680403281984118787167877120144887241490296794100132496063341323294512493119689590298056269506972587566866549322872323191350483575771691894904570846811147170858678126965229368455481234748287046796403037546282937701277728084625543369903880023246601398932032985910915992785331121407523985403842743479796737619919642020846958235576048735493795973413270754285520726452216575292901740893733050637056632316478080853376511484213054837575324502696803794213558229285753472169660025644869012188837680379530737550434007164341443273784289737391236235291712526249056446225970169579748288704740753152681595929534987573504619487723167552257938286781629426384317688821510314886311245971096653795969024588413719701884668692488297131623118946136181775808551770759174143647221417708953171117147234950343100124855753472955523683312058187598560566431195448018385895225686549372792522900403071837691079503802163459340295176616964260976613460038130033493581412770424190000073463478863065150441101795809243620419016205421218014039239525089761588854918104715867679528453853837764852917732928552962916214171563477543639048026343005780277023293143867205845428291635920767981862586175463786205068497698074537786436052375606118091954962374206774840021486861686677030691654505002049007240645310039201206566023842402102751160267859187611104920542340198283441015916167034369112912677789441309411670345252640056357533877819713072535983223404375928728080734035131978281784293412389614553393516793093028913979781944193353752465507448430742130931003982944711377779688395064046009795091052336842239416895846435837784534388237373491354005473760443151923390904296258344435239253013688421252295963104150973266063264542487502162307661008703404487892131504480481620904574819101709693102868084968273941069885764971061561623921412142821599348646709649206514311846017161288462997323467772053105724096573448357187840196647229815731223580218366445401258112128046855339292925720406757720515329675807684076250465670936167874244030561180826243159843538473030286774063262679483231475598481067690370084078238392352785225369805028052856571268884431032207090070493373950292692791333688596879457274374195032969636891167011209217918543667375353743359259262635711889785852443648210837358018127020038301150521477779659323434455125353394348547661554665833660833317359072536227623256033309965982937245299801962132980094116212084076756657809303183472036932692962876288169444232929103607292297104512186821801669675796643965666146302229138785165290840810018224113325255058747536779971988539208068812915774455961771605137505287524385478391623599398842980624073453517470477707870753297553500020660703548017101081811036482165305257899103548730454149014873174783605486777832723473045287261319640148232401940017883110823565021003487299500144358838132059130149233768732759455225822268410188783702574408693049677695087990796821018218772443977369166246865499998156354085132272117795415593216408305853619510403158036421132367001087814780086554128699955843451413694795358392802001863587907041674610493922161014323327670265904452030366037820807178024891549663272728869501450373468992599298662688063095101275232770615441632188937764011041617491640064256915484781111320700068025712502310780195509865628415023812449017557788289854115027703005649418880194718488293561273657801208450416148590412133077303519162679646375012100557927905317375983222494799462870114775470309162961105642353946336497449250890094910690163755576766563555157270082076701728334721213599426185941301615688907215135463866544211394788976635506876602526364200284597483371654107146683763032554750672250649964442500000250814703541427959317582580139611559255953795871147073894136031045009447561589805137730493509521227008485007370131804380048959195276455092728510952633452372751591328125571573750235786089803814734786844606394876903905722539262827967237214090908315340047908004553439260189920561518137997494399934704904353747107552024131503625110091433745968494064007119498458175258694243857136086469419184291455630783176652769016139856063431890577433786817390398253568963866303956214613741307123313674568867629885632138071113423743069681665113936415818680863196833778546267686890500162638479178505283339207638241252338762318283446820708789832914182249793415648529496670609607502382257460157829487671129374888149175995649413047306246816135381649227832278703650759604499153707514403636825617348537531828488339113584629821212831250089782826344211355477911341258821851602834064651694309826990911705541264156296885782384005863616288717921074567203394461338989893370453695523767522043968597181053585929313496595577031018925386844117001416320497068812958589306936837737534727834226369562050968600707195490428537606640791457374017307568971112525424505721494410706161563902445460880236939505971979950857094329675784654844904702025441882909195627074135354365253726551776068917013663004640308399938411140614745530742707356956996223444210715138205310548866290286284353329520867074899444121634582605477628562378166715560982192801507532510842835438993795084189637477923829022197869553017563551220318698705915502761519938246773874286149483333261502068350129698198320893483596548848012027707432339925929232094538012883359814732569399600635392018208701841680168428985363543631157332790027384047593436972642733914548948842576866514047583721409278706193649906455117966636844088891649312338869812559986888188669141373967941559338267582937255342888976367842861287485257033890037925966538273058329790988924957631090884402224355908814061224695148054397658601442250452895863809430714518656773201907656985949171026653932816658637383409528060130704357031076102368044891982033679585133668817487700182053952771683151799755942596562582977707763774170754506414860152739022929530783960833317116238567532524281877371765394158600525639352806912685236159149043163401110222209994272789136184052853004313183615903183649887079900798356337124989178366629260583852228518118163529363705396145809576906584653475238258063421482037503949810874439083599410250356954657006919941691353241449492558796074987424962673561670097506829906038204084324770261882217440644414767281403620035671571056333207032249782642440412884313250870080292477870923640842190986192984888022699321734872948116234100729826290200215725834773121269201704535060666615282192749484177374423259794487928211993364864947733135231310508799420429359769905256464904333343020921158370708752333273478753034182743961386639618340557700546944498031421012566525352804515677565082889159546555806835699595534303226748906389841421552686501473139198360268265987637820841031434667504326587664512275922259853629679111070180272127946585810648739110119288906256008797840552993932344798481455029276064787197727527180032275505125421403483122432741929634787798937502548655414001070277585766764955084612008100800712955777148787391850524437547812727237715308247568897355580466231762267559115673311610178346852504515421754991733290681195324269017642099674909688835412350076026841096663046896230400568682130369875040394754122815687058013311388448428981081326685194788547459017397355996143421174702675261193356476036935540746731475691149359926976437585806576784574867782773025941543483663001215345632851682495853211857339694306177964945701837032988174357248806331882968577134113359442943874196325012223118508820948991894250122481800446115542149444598836230620937982994034906538415224815757424709379704898612608537497817602451143192583461239466207159204429303592587103255440194615470758274653851157515796369238957614578079533189268165334572309538170720434830840227955849698809573825077384303620655807000891872697846336685159452312252612994985460988711891355649540915822458151066061043959370113732004744266686220931126154457204991320303969050437556956404982670077233329505215270164451999702851126783878685736956733487059605233054150001585718924697595451358151655242103448338907291780818555226795211330741302755430890944570293147094173940177295840495149923905815871740913718520427617740631319878551571497014547665734526052072979969716918082692829953182957608403514287558257959402384104330712790962818308309351277586647131347853007412295906332289293478077250883550286897428739427635640462891556084251989586189038791645167517235762693527309320944847842242606670106949783879419398295586270629694404119094767169345116422289438811346069693132958565476927316528711603527633593286091656841911071766948988515417234924837155849772642171659598819534770104925180248934431445931574740039300257144181908486912840748182340220565590477324075582046114485250333674763610507191389966443849274741918045264886703736389787555446192602418013364952698814962691799729240512240005589225743567966690445223742496297087609033751103602789732634661797207699265984073442671441401303879768675474692382147680797588634114684885777935046241661689854945291264118829224038649979031219845983220476996977324605463440758990497166413574875814883628013568206947690813094870748639637035432021172173208302784532900893216976126809448429285151576235164936770259147228023875741769621576372179511067213894588973126411626835077513456241697195356114448002864012776582242222269932484176565058435745294974099456320951366744110949322410124999422883598519252371139155265040280180745099208403098832901444524285769866908262322797759424888188614510959315644026725589630875456106883561087223960026763123439161816802246112612068918907586460965298840992637640366280532538179985461949747763095006778457368142025296756429322328258834034423542096576352357275889919877377097642515946884252518800118867771306102147525820650128212732838206874742096544522193738509285663373433525807096620878177306230650489669512459828845707268545121835272779337568602297204335043994626502111803313133884101198394779503810247988521840237722995798263315035817855024607603676913879894293384308345427982173381820785958676675375107206598814983673156974082419235044319843069362089719496578131589541786729606773802439232782333084086726846334649692393156306534850741087254824468767788303312823895861791933765374749773565092743353696745212439037852264830255979565023155174785665806787653372390769870069363560511573184488259671650175309957492698881669494047824924031252559242398049335867173753014761076307035899900491606961046651332908692204253256995084393325822089057841989225664295211595182925155642981446874839772122283116552546836766304005645285226012318286420727165823860562054436238769641408507692737465286156390867206249022085990066543009989579969453640269898352856300765281052047954463283637007372273787387572171192308013767298081979164503945581188434081860723989965074934403996807826376940422383332287344590991210857125925205226907175897281480723699106930487197810445838558598069928836044131758522706317565706193104381291314981714891110128035575127355618207996051721199696418477401885566191962662270867344225797988717543777819269046433840032367409313258697874253326853065495260331293193577070657595017683754489400481681686641140695832399606444724952335731084184991174465258473596986253450623255738478213143211799630549823750186041799410631146046012960096524364565778898635783686238023344242075037765203045667555521581691360980547336744764258647050748556672011351968088603911138956374155988126357671970159949393290300043298971475350044516958144764429596315880123122435960143343222976280603683441446521163179967625753221461271472638213482442966812710536899812496195082680079557093259813852769346340932850364364786198446545784365543716905462613324813500102456040186824809127967611938424835808499512688766619668673676816863499923633114711870018140310074708512815381751125087896446044972299968070139383982342173602587886171828580574763475415135552424692147688295310050287719596792234941193132220975252087457072817186775725252678477563755333168551165036282882302963222307507776646132783159802775096055298360141800748639161834157861341762018533355061560336271165330828147531916454789459924616589816420353760045830093017427686300687868486474446345665465240866687180173649251307200035849404217605420504270702835965555942606475454016545542522316241816087048807332353786115790302269027730173196646068116828562827935251418518873813031449098370961105141988886760245074781630166907086881873895827318235255040587369201045361119066403567716322926411807567643198253731059142747483373630793928904209708925421764537369600597512079943946442092319383441007872895454678335625988191959919112580078132315065235126971280815128820727403128196161685898182372152779057746735580739107025555483856069333338731482241113536466669769522722794371203834025183914342720118585938993657916134140649057780674792224162140761544133309816638954845208650456461945711428215077570555524801785013186163854961891918570328719515849266320971496039854635962574780332218189104269214944969181769128827078791029932025276285598917728646403769201958438188644585092629981262638313801807545156328203361770600215241454046205270132097628353073224940027091743250152038018763529045175044546458306339204088657176055735591886099839604981659541332939647196163837625873826144830357395203947667951172858872875355970748190169461130079220877197222407996560921516460506898202389060482608244254816055435756015644116962963029102540014138240527927526333684682440433307625702623368855481444969004252961833388764339717433534504109300937980377566949740813214858257472227442985441469185931597445668651091092187580453803699552452132773149310037771566468400461943689685246624961292784112950299781447673185884536024825007819587753483714872667862449945883927896945205342206050528602030463956736169054855510087524277338930343874644546140617675075798992555446967691529082109782606426611923922555810916870160678327918706583724909308704034372347448177069496891862374914100525342676497290257262332099088702874802301235532443840871612993368950675955075199955693400529388536061089046507352640520525202202319819081183788453439910903111426471752915990716216237590822772316830282929234273550224527450687889317684658255979812369512108087949194515096853445791324112605230452767947156429044015442794674464851602421043933477591597705388399857016683705900032598993755764347877165029213666003566585961022860935746166435644023933100556510504369904687214644425031641945016093616481675247841093489653353238136078172805766424570780825991648290165940659211791659913982036096831400943849559569184061008569769594089989552488827239005147226650324024745666037995056122342797187401222562138170366681890259600964295949022857306474661086426367649125579176232777987298746225826143069634948061451107412756656645340266681424554859612256824114396380394882005086202183826872065065606798266348481772212264470424149097733704504190827265046016300799524198706620302505631629731255099587688415585689745525107807897951254277616203479525521407313848513189118588239602792683358798768314083519329240945892666906990849926150898172810785464337282669589362199653191326435809321652819313270738077789045870579698364379890597408748431591594947519273214012070252951388713353475240324749687667690668237957057128748107707984524140749899864687170693107917819684205517419779357505756501708762979904766145580006203009105947943163582542510735252528593003196196292785233171161704296094628273551438963597938368613056098706480959337935853942297929853813683733797674883769116634675171207329432363112724054231369992367606637974485918740302894575767659610224214644006872475858990970554391561123348728333299646785999191600341723431907190283138856590865772858771725408026964007468738188046450575157184256432097619289401643218031269209668576455861587344620544305647293674350024899351598820192565448606364826129719036504433634742128788297628747640203128782029865980301811754572959736208069442838455779333046550773531417538319802661735119357366750699884625049385853822685806540468721172923253454045315894176535631168137571281026254322978248134735703104378440279130690186251298827302464648504387454060478196754566978736418570696868222253676034628764364823507246916668336151763707715345431092343902692927542303304349150159089623760444890706347936936528988130175448029129786061387937559532526881303823123634465516264919965880411636505459399095209102691534560842943885831761840349280537832291778858470222192289501019444298842566006693849106609675759193129111545396355307204225731173674824735678114214259277252797378504194027565864837053374654824517172184373868617666551420124739654449827948546016091045416343785822693870356671281241136953241515603485118259416836987619498195334360462810077756912090455625439672859945068418884224020685305172989678247203308151018884544548897472114585398000875295788546344208527837151427357522631164147488910849578774011051705155775632401940754409669072259108267456539473990876879527221029543901016668070307285136173352315167037628518930003724894125978361226586387046626221801637798790953480648779204043069299723288172505833218962885217972721796501890906590367233059646584426002025414287518215422948343785073208151515545065410436611964009004018845084877894963151191822838669393352766681569457757838077055802639729448793695877582619569512779966724011864847105306192822044383996002514995671464094460169035850441762387676152434157312188046352374083671171728583967082756616573392816125150253845184373131133623744485034359191298490744087075432045496236750104498606499630572103085811440890654643607717541787311001179706669664131161944369025872747237075585347458017862570832471863553414133696532151242993460872813884474380157065246720501268152310414188744224635252126691014179056504157360596313291011798973863785483651899274420864381403629511918399375647223722485173869524652553052246174995863747121663948046410783069636510592791205890042280256197661574835881070668021863391474044759232701312676112146924425975937852341015172701025599933672994923311626211223585674459693574271998238870381120277214261007810015409766946132332160293574829718874357552471611234612648183811625536741634355463003951659542196791319359304082276595415193927424889776542294254039948834631539840212002957271210239938679362154164844621299734834707702650417249884606899145944572553354397925133682409725464907713276366477977920557986976257737946560440463129494035091589127800889513581675048033637358031367481300623465584966183923930820826485582179879136310673984190930764152693741016633365258181489447024139433394915321195658991410008938504197364131432737603867887178245215859641172107584168433445969053307423696195209604016299062482335476044391545252580673495999826794100410686464741765497747768216617012113935652323859567482420474824419069668119189604352294141730824220979434982514911885495763232036573819176599531907642682978811842306736014915672030999900180227624429348288961410024697019815647208408651653288878354250826624923005351572203009532460511253308683327343455276019561773175232540904427951234298990457439039953393311295373934012273425103143899725118050359719637657211983980949414711392857234460936216761898550995922355556383425467846038636753798691213854590223939363691006564482757900330143475118556039177087221559838918000689837837525550184771164551070406044630410397883684335235937775323157825533539923964742231558012631807671694489234587561711782392062181192034991871585730343150838408091044179024182082217711471270960015435610793798257450976907215096818488915867660223144146186991084384252689309336647275324533903728503000736459790420829426249483272755926237627646849153099944079009073524053305373812952336031981039255284383826019809252517465198258753684682917069333684071975510227182062927330338909718014048624432589012187039145802179828931092265009067440043858368954940679226440297839896020438366197475712814514023097071823498299034266866280944320737933643099098519819418200860300417757620346858778054890629073979562248545800686270226623519396425593292111604142913206807742995646156584307963726468475339368852069088326376533930319493019921472548672088301436697172135704434179237425422820385073952689695352830282044493000905047929181249235156064552002493974856220923689403350196167469044062580832287046670177309094437189750793879087122881486366367259445465936285402518311155729420114060994797599718394654554370975459465196161770633364354012449389218569103280036306756664225327806831918458503646535632971003565083507723249188943138775112140928352231293552632208406789835604837255936809624090984673858355839370773274289695674023076027620628766425230157438976489441185491101890634151415705254718862532698588882624298454399979860270071061410289690311664397605494425683039990536293614285026755666980626371720346741407124895591319664843395313740795201257134628109742500554706358384037337249683589108971037267102890633818622330681650892960501989258698382144988330006995396342014020155751060481927308525416816702636243189553337759179253767937377993378774917132054713477964144090133503138933740165578568267509762044235676606110294561021159033375845990995164789219436600874829851238266868009151382588283502699674491608649360175721600335866241114940931076158871417656533655077604976030794956923636557035971904466604377494602552591179441548708681620660222037673381438523684983849161923470228827533124494587300337129119776624016823198378861236244597061281414178788780946119673803896351823701471741034662116949654695458457157608065846649961821136007485187833595035956411662355205691564117379425678491424250594261800785591971052653308281615173559340588363043853274642562979393052938459585776482357346706902742401017456714538376764856907902330472586835500814934621337886792905074154257382272758442089659927225237499416794982687347886516874644622451408290621111998614339247685408485710514334575550592344808802900073185527067970139267706524224686398891118721523564891136599781989979126380420521654415116272437989593309227844505746530431157654221068477873892213762623669206325177618277448800675494967236357031981534398710510089703533168344668380130104639571793894378372981622854846969401415260070542733072454279620502920672527756040466021620419165945201820128862519770889304862720110227289513646873787745546380239538621824910077068116158845489890447283798210903659610150370078128028707271894330921790230782109931032344404719237413246359573130721596148866691707816787268402694814489539464285338783702390908368641121763260509969636976577655319963833036590664875147265331930495420451134801001081579077226473148278279845260810006455644695575832412392573488748102748261048377817115829449464374941409015073306530534081426000239651388461495320895934430172721850869502776897700303960770315339129888238550926443677661913294293134971012061629507320765346219730933171028154421313128625743454939483647308279445987045353510903110092737037359546093772293333421441409593812575364546557126509238992313192835426368617918633855042665757171833648986351090563875404863030670795327038254298360866199950611670525189987193600143090258232447283166728636743063168717072179829831114820039039545722923176010027121439307470618620247376733100756014880866600300525064887172527042916246459118429075547209532204599091550212145624974049413487467144507452287004452600894538106865900021824777136179162375528293248611936929309886352728090686128154826043513335456579094835426157418860841544816593001821606155610538769038928387819333740147904417545874277858521326053890453470264264077387558488361587178823769423077075359504706333344514943263684335684038390694260855024552496751696913332428684933467549451897754751781113642878115705050479489940391876599945041167390518703442770881866576048713308270333238353185296997594089902200519812447785887797762549882341420377889238054825763661419099993463622175848876570948892295372930017313046642032091344599200811217783252990307681213632452908301826178178283237750648343075211021886401718821542730913997718972642634127534850222583447375901726024903056657590297507584659246674855372384678092496633564169609560930442710275840164411933546498525314127961340069128594864918128866102705892599662505173189284322243479610987519689453927634283919205305461746341321261874052444157366514983548390830163164138558296396830059444010404111332237352266953067077887547267057919634640445936249803467659599508687895765488824920397623278654226066833098215637447584494604788521032442835798968491788304484205309143623845874146557599156328752097720842275275475011389281585705298439414656651489773720592762902270497140900913279027650634521319380590677304923021528458054669006752728547979698801610381560879857065666773043694628700264859964440644028388290926912050309082733783538486775409779349588480830002803913952446155688633329768072087315036815647962383573406819333447036037164141285313270498233360180212824500768960423373353281977582926977154463979293355179102403327939685432228374513317042939525109989056946034739699378467131285510791973262817711102623809710629244051609296077190398435407421516000388315054958978391816020322122039929530558317161061192615520258430632412842875431915762451178704550354436056175580335924144536420408635660157509502444429752180754396707682996994772119558959685730914037636422027397179433412914883235187943383052996790542142817377256717770300563986061383442617621634458455730197751772485270520212650586547796774163719977869820703455148729295742230772002604608349443284445819086943109098548342358791086498770291107686471484057209951581144887055158758980922670437665235038348354671984730220197237543343628155861846328371292258187390177896338931368932543755496482162242766869925245269007101377359588177542887693034417607741118107135645166186710629235258191379712537918100350279997413946393154296565454873442119165344589329055260469160967789365434002955989845148956131298752962530314865234230840521098010071532254752911608484482250482242084596426950515592319907522452147328299900649487065978329759822810555113679076809458249114213345978406841121530205370471971831225598940924444216889936583207943825655678342262197334072844773965440819941537112848051286369124495096593241128032910621022953583233912900104344524541533014005787332571922871400125988390072373360040534008121976923930067237808272131324806066095058257110920925940804276846973189151114910567198851873742062786903747639017027478384996201249144600225583870297253224625165672196983723832843259164385549302745350168592428881270161207157821363307213644861058272828285596996355842044036802041815577275049185046331527773547795123267249072927385864893274832134068988948407425918045728961172486262503639486582779118950349999520272917859861678656599653142798220924284932830862166835082727592211325713306155992021578287505354104122083663821611758386254394820874020205938104503714504332172069559113701757192859798030468432556266650411083759178927945735176970312593927542470012775492614413283283467292447047203206367945863834162919331659337332485632980338039564104681480972027049948290387883656522548311998899467849183666986903908617691504871307408688856007492592989257353963787382765040375872656194839746933517810888138038187166407715167377630186428168130612415110804215725688649831751524127836149154850529530638240936578986531168849535043040062629337062307619688768906561149399235142274220426440399803454882276708588057100137796454491556541574243127312362729656757966013677265777875496975129690063950301205144308555935858109382243660041132320395453458004330390998921773525235985136427678345826675051420618297114310702666841599505055298947152496716266816239888514497352665851916439358787533117771243791795902746314242679537064439545167673102863448258388483825128128829517831813849520107493537864734875516312793596030248649484907478426928417020587288241054126753496591438443813786606493694533606075653412156113575277674305075589576846021409154637405887804020245229793518714935668534971061445170661066355735831502073520337316589283031906005261111057940788227865047167522957233600739180890454685684424624507973512390509632237656196164673350459619554963201650710110227859540713464990816649198919332459785752622817126642541420463070898116816009093414840647601718605569876951893305323193453880331655426347760213794511889889781130479942932133410999504662467228485232307452040366062552912382566126350506600951372165439194355174098233096686485385513182966099621309060229832179093930543821904410916048892445043443048023602345440003489824775279942136655102323763534085030369777793614251359779798864504523670756372143460398887521201278316671756895315939886455021033631013008056019368662271495725701407714451830856784616259095199386476170086302191915801491549928747273248098917413101024471888788992970519585454407225101285670807754332792616749285956437398484782336066700678449736906055631691816117700247822174103462151925461901804704248132130372885270353919768823060766829308301512786294992696838637796683183690737955597573968066188871317030145825775139215686865665389000048297362477598652788717164715878542292790941557940581973125487610676535049340623165647863237039646828667174985464794145294052257007793071167772412548046131752524957952062006468661268391583616932984326709576810739832415684997022694098989969795612229344914026093794875809143829781994254577784056852646614756031692253242654540781492344450800535509184516675074838986647873230506890782397091908878212583957885544180101489821613695605880032928816096908363426824331241202866815427845861589688061757301603814275612855140022205029533803249033520088320273927834610913019471673865997361683366924171951711428033418097105466266828351957854005852292898143952682451291803430469264167119409030368789368424874287578592061905039016180987460304756475177156507429710413952326449347795520584724435081662727370258809268484637097104990791543873242902492389952586188749064741434481136870949835264906903513245523970099720629197100383516440358534543368401583079549394714069873368234248729996189803755906975198285236476019826271149160275177572006568695129089266615224838344104587388253366046632141832646054306919384777820413448230551450564661759536566845648409627867704169925372610157000845699335711056494533341979406963342838817105032541454026098914197779464894609979124472787017065865949791754707431120533397413855929032519319632397296871103295817447385004965730122302204054397325255852870533248730869056252088182899119077931646581123146584009045016190055101014262316010693774753539989243525661792257349436638839872267548902881452425111426514526307944972443191026534387390790313949205257582368466512908071792837522596667276242281116922429135735074132698045454419020855721104097310013227695560657176391375997801570061068254753068426390842022782231366320046799850054703570515228542741280461218017047476295657723744736912825427671336620229428616637168558970882543780529959234438136057067630049385610571789304078446429887033471315701952714071471444215147628223666773588667874705138614802589566600827070603667861785868363933346919849672434315374666203101923739403591783964577634833618848619637647804758616519543877683456824618580511226302319273264876455115895430980199040021283093149705920894241292358178197479179124576939645127066692262124052270486081734116868360115183237756779339813178304755908259862572309583882753448940393517043889386409162520626084558324986782790472589877845016050351574294979727923975026627193562914794442668729133381126853369056810274583653192196875757277736535540317462552196132347216025200825025971658784012980622025532915509212733897920685637653813219313523537563156944794868315623729865172985300442604569753063027340075736587289505195974732680718153449710938938386508151399946700547841269789447238015245888325270941416136265864952589118699488563983809384860190115599714748965567826405372840568017892131585141804581100801574126688723275311866912274052580321461867282069227733703696290133058256006615520428088310876032887786339444512754840982896141462449659508582885257938960646328238973857692686144304055670661693601992881846336916709074848462724020676029591654148294623034793703594889365219344025134764797432249781572954914404388271887552298452351459012024529214660742288623019409469471368738151906183269192020407009146076807460699721060966053571111729521583150613903005286466235081375222767859201112496070859493001124509665616996889757959719216220302399960676343960373160846942118837857320620280184809037457136984663101119068732001403523629799542061882869146577445738721299149877190060533851954517000686089318969800427963509373411345575331772067391194828146493188202326392805035770771418266026324255353708389551345788136180031982874952462161571244427696786146192443779148013206450326913190797183799385951637834446766294072334149381492203735289305370769228175683895089482919800872531467427421883182174586767855895771201160725025666620721907904910316989932268387197380931266889844064730151546143048280931927621648193237563993615697204369567037826817568731451347357582337101287509281792528676927369700520712600539668624054155360296556262151394634137855780105813009757887516970702262001664037847217553892561900564824575879390789521977216018418458831992758897848004678493036020447005995169781687020091427221970524398250872910635369565551399829917791042522894234663775005037903669081837622652661376421812812092642598518380830300142708966722539422906567502371361815339085455747282385457237228078863228051400910041252862863967213797261404210560236641766898703333072018847586915888119353199644041978072626520566432647883059411580560500842980564663921444272411045444048607144376072520492166744825222527410224014208327690390894234478760820245350552130133124872939964756140753425504547813882736893231343628406181655572162498741513972777687370714774324756286902359264693835170362094899901486234296048822910069775403331415382677199651899187791929849971991387394097312153811608902165770392133689885295514411632690451321236237479836693080370874301385951872775485293778018045147408876792751226466801483663531636357613263525663825780104304241168195596192322937424610349076522607115901622316300289371677552905694075829522285329475810928569983891070228986137964237636947183244037578510971644132489261466751780434671825840106049890436364966943385372997801365453263421628035727410046506557254406818080066093767923328129775632462267717898970283093981493752925381247820792040789979951533498605907500603144784147417330452941462038980428553806704592008668244652858858912030407626621917770533327814360744743177705831732538945292662929899784916708729938520130217479838648154353609848340231306013020176163851208859169675896295623305956003074560066054535829290398192662044036966865500936870593020546018843406599848759920438355795171846267801282168303612095133699461822243122799902642580637939674084149029275022523127958564311838364520727957634540838230959737437830617003035056209809756648116046741791647105922043500962109547117637464246171560715013686200051728995480681279122567070268699926783919989907125494870741323538890944598280512964871807818854183289498909145947986982418491249982955212052625704841065809258084571629509831568154417713888333096788863995004529912104812148362018517674550787485966105761615893555499769852062064276413975501389404271566199998349221877240835245582329653185583661003588016134528176252253468806979642179267545075666941885353089832948994141832642553940451343338504847423210011167496326891672983487232762034541823245774028989089301178318291764308865437828672749651170568394228688769776969020092900167802195253181712783589136486034772510330486786448183398831066161431647826519754279864605698222705557272260788041939446910356405344694951977488590068441902534526191833611191895378360491556546895753554769576733032620941501644891820558228093857762853217091550345546819046131702293817186844704577304756564600386870101084174992887152886345383594231941042122001094306053705271547436106272841666157622364636633748338603576893035621806328650561421149213931414396376790217818224737978358591740875909218359450969756829476419254024026682073214191547912834717949712190253430047026556225606627962275485385323274108110165131737957754621154748815406174618694718574029918293659072847555855544277373812040268584669738067701210822127501625717205826764935018096326180335833567898488297084895559357389433597002545670458909243407673561763751136123126768499036109014646143509863770400743990620018071647141439593214159225411248920988970811783544674775731011577949779912392980722855146233947840316679610973938755450929198781854933725492560265725070959313234085844243119172539369620010637187645348270360829186867593825984806029418771471354427665059887883335946332955210713296163070203800846747582506220043643693581448388748891119975466122416223104908848069970796831899366390435483808354764287588373693300535887893775370904442608573353312402575155757944026750120561808981918138923642537610784585875673621338073243854493882587780065973966321142298759986941831288903453948052879485889443951372385391934465589995148320835233915369216596697598360013634868106269970282500795971319731899371131897143304261763304626288970752038680574815164660359564850360041758416771878642299036906618987183963784178732055821699045723751885823312452688696897042787152779815389641944766769980565618360475684520608519231953996181716156251720286153932614387789694351374185101602911224951544716170525286254098344279297445287768044049957052995217245991722810565752453827735846033211888328882161235392251524122863294456149370316841785178799127606766602816020584890755623927033244426238230825756900406276741454196700335893189897179915755971949409212377541395903635418535109546992139405383545590935506319822975592905752410086393327217127587640814560337808036787324811623083570268712982107884261250925308252478429279682720220296933655125333779624218718890054507233336694501207511834537248767730681220260801992401832003362755643252299094942738627412362385987614381059067482298184821549748198440571908701934610841512227478235641490493905938521874144032178138540395460991154843541200161259559763632096360168234814263057829789430381322647083230314343701440107716258420617162671446705898625884082573999918757816780664486342070706127444498350286950618671118246192271985725365313804495035113856185480375120106956604797516642124154918011696145802917741026614000682010259911240336877763423319569940641389004119344539596282891504706317954834050311359288774558815361867415778456453632685794753943555284562667648348811253338961193967304617122251611944008272097046641847236665722607180897397451140107312575577561972734268465815898342834412916386423122908380972018282130124855811710824055512190895159315119810517030757315808059686683597178874168819424456490631305027146286787073905071309710425469660175741853904795310130253546279749748063382913628358944082652942162307320993140080104875035668835435927278373289756038457520596711215526558428109930073164222338004327363913520445638877767687069825994909097626516745336656621337639556076374689258034135651642598515189790047302385075925729780468059420888839372676994230833472024931847286231710946467839110832613205732986906012381317326929035158381486365828081894864322784518253808875304763431467481751214262849870554960694700266898001002777784880313990532685259787314802365778901508410776387766291632331951742752368270652474700908862610567756661493643914283081372651387505396326225294555367557872585474951293327350247528438271567356092998034255174807743995430881800529778568730403928516274051829074859764291094754472543344697596748398324529058409692213194110141943988963992187506740958921714977973430079204615630157328807319691025923257767549038763275903164165390461085647452607973881151575106797505742476357534185238424787543815621644004033337192047856040787451515282869271791933134743851207381861485591852002971008072579968356329054082318668266987146306448728888672652862017680899618574992067729044892156749383671771762219581053435120630211874809276784248382753118253758316406215262960259464389093197825382111261269415013630373420197385519815378240619505155292288979159636988555242021651007944496035194895006191311034039482332825209073943592781070086330045452518986206498276100729226677779857744599753315701651699206364624409034726189349834041576059251814922636432348527925477461504229802410766325941198641189384463190122846555656397261551920800643227161907173103422589211953904393626640702298727880466099646690908131651410895229422760414586930466754057776096336847895498835396223072670774676723193826382743824982622930806329647830649277725869743790451353735760361611250455578787214528433859185910045708795782144194090903020879004744788842685832118995887894538178737280175279321744998636018404142229237307856685125878006475188643518396902628851747528914365786601829412850694535186194719266323432852609332748539539604190403556125576512696560757511045634801861342757223853105734725577938667991890440011157979025496276371653614274115800733462657472103979127530819297322243722946470864259206007729045560224010497889408254180259410188647641036823310221887515407681303894523362702103833115878472842255198371147923953841406367465704704553677665369430944840226356800877698765744886064455034212229011821572407512997746283440918897404388538692443660589621857756841023948113742127360310363376560461659656496082277225882640773714467799742275263157160105775962232621426699376818775045784601117312294841232802101376940071390154367576270870006473802011850925625554350657463498028244280292245418626624030726264206180058742434859499343772018864203468496243129610175084736634039404107395945188649186826814485121317830756126917556851083405501418693723675749799036253534497242893036992373009776901807416779028327909561318290888269707805793692550108232417874362546130465920539725478351989843329250082185200949986246863467321231889076398542687084512404083442459173390372166245981963028871922842075619084118948612165706317462362636391461507906823063879247827502739254800971550865871077951278385347307195882602419729513560084857506531948594737523648886884729248622162264967229035527470621824303114595021183904938525759753777414303941997423018467246609988599960258065134137037776834454685164858997411122965720084193507268628326715757788413320337102323921943275700241109718386623936765040068726285294437739550503477911311325202089158806895042232514302780333907148061408633236578427435806711801922883511191718153395915715902326676167455685346817230366122161448402982496352354582063398803591066339578964207239889682973486262179213689737909875271605825341263244770554187532772566303811267280904559496024584521101747379463316885365699479384724465123010207054673945918752949308556212580935751139589775064140600050384942909475388952122385825564841082752246741058997724116603224767214722986357324232646943963217025586867592797515405709162789180587841765416924883534063301906075286292278950752163965690707470175624215808748077187337188367980432365124806698603280692678673981125245258062004712114540696754803262306647284836679334579285783417946487550958333021021651375640249072428256796849173324909952637310392782306404369879633393430645763224894842947366433281978528353799116109271396583860923625358248918476265645785433322986429538484727467095153064619902301213129336239164515563625792828373576206005244790034279282979668560370388289535845489696441199403086136058603968156376166698199745088695238984160000205519115696166076824782728220749382393369080834113080151733293664505349303309872527887055540671355150637396393007347583596948843029093758096979716820107488883176262533636314811177136260098515629944276694249612544759385279217535519125705595314335057932866610160286836952348215013237987376858856319602690080435390915535654432474015386750187236789762330491448800143341873335942253055586111054205042746114923183946124530780709715692313718266230294809596279429056885030835557184867467980148169743736850762228028883958714100477667266290418855836977095153399090674986257985488082247700610585488041150338088023279622015033627594813174306772339803387682617089817851821582047789999475014948131240858948861729347302555451518728722212205934718831512243202434572355694681080958501342809150619835537721754371668119680642880023347180086888046373479707551286631603927419508958243120916612381417831564120906659929817153055130116119052029099810265422806516756988305974127437499461952452983222295990199040040008564742846350426003925222374880060309003928457877922439946937406720838349101612789959233350061177145593833584422106392780520860744938470400925360773311741190533656330477195197340817322397581592497545717374703202796956850477296148508008790996497345762454061569067230727231121165437226750038138149738721338811182589595749668398958440249277192716595792581141418720932427413577015002370092040722459293780124399154315714844697587792920797883891658370477306504943370133544996194366378653064023168388296828882830948767309333905348638039713249468615961938703668134632030852530166313862759065060423716305946311915308516161382151191164515429557997944547884733563502936680554272797324167504838511126197464621472418747625371934237189722155954524990952697381368132258367479236067486675363882723608988956028095174082945314842003718540167177181317890995486530787864108888849525600395653028417278171302389645194214753137553096467594549069790296353628459935566453448073476546809472279347249815952213791239166528791391736036760797278663655286808793914722978047312238447705886454860736610419462556005553075189215814175246333834490796638467400871789841909540732347097691852118971876482736553355180100860855992967951927673190736322194872230136374671160109730459847601934324973834498962320242082920180695815291543339822891753880651827359196201300639062920940993233576487364004512335186864172119665171747079538803473743301896531710573718264778921128804680395549468589579922507509247066963891425014645808258447257005086637040751928913221310711851823828258793930467609564717812658211410310510970664359937425391815639542614496883332905805079212924846867937749869382024015565451619939518033684606025534006426825827162504403659210966356165846175375670679519482541836594207941229407969734354773620176974944518501666757359286454079118711393962098186840604771798736859330977634874195298642104492052650898689764332579207220730594854175159743321210147323314716019131365505868884539747289100897453546265937303926613936994598413721717841911246964400447990901242135449056497639500486668369594129480466745624276932558426954581607118140319316062991707088508121389765897285697145026891507693492430189845189362469910831953545649124947032219983814917455532749307241407499839254559178231576996879075969590566150569756323561750430089744564420275026763746055931625255114729356008112446000294185614504737811935107212897400120800638503417292870765909107769075955535280181494782736744937068387329802706670688731664670448306398189276875486950257286867734518707416057198337340385327611306234757132269663679418744953173379526392616270386820135843047789390692559151639063744718033620726527834287708378277147068214951622865441883095895383836481954619420171516442403790506821245365420132934146241490515410808488524020680693111415129077361892332570178280310412714720107893264239839404163854139216751817919623942174104406541022588147492514781880784765829104173204371777794431938807617984858910503433498334312922944900148449277200379496838356634829545236009605650485693336575402210090276373028950066445830998984145625862656170152327363400555148070980691745852785235671658372136641256316495039386131172348205589717000546835480734644949041473014089444688330454601335795484360312298038007672971368567778536487003432983713994831729488897916612522532453722493976905428359692354461503516641446402937783112878062730780949839186951354584083350242233747589705198085211505803462866374742623273073058342389260253737831159227693684000740632645247748078876815475707332990749331677067544263848164681624652303620216930942225282653443517409590729701374728944908116751883121941611184461858229983826152713078295538703416668533977491943281806517606415070399698953149442808763052969580842991342818134101503007901110814882684560491428796356004838549217895008780767554606825720994177917688562315145280734532800252379409475740256254848946673427877694396542683728653182603063846414030496938927511113991128204883979732149542325752583246736411130314862890059605944017174780288540009381238807906263208260054650740810381211358121350634026505763158865314365781509308472853839143516465252582014001192148496981099070321157738746963080028692856594791171198607736158365272178308187700795362424431485041162980487991472634238743286126047444938808713164176714018832055741492313824963547790783139054674767004075951480898251817268305331625697064251997550121260810958520685264123297259800948281081508619317021657650453105111632506764973200143128049434174598036409736595504179926609304296484754122978426441749222266603986648957991054228364879171067048562876805267832791186407500502241351771322676549743546093737316640123858046834708673344321159251629805308394020660597613042746912421111206180156400270045412235922797265050172606119916497831634068070843921399037723516034750567843709237540037677186454678545142835940854345241943427024656337242448415836953375366512124827233275744125299703607100484705187030770729969634795430983659689786577577171951648109763152979770308580124376338680770263694383852995100602770376446117637575717818808212250139534605791201900496349922655034860828937348743430724989525001020715246405229210768833803907631646236180429112891771548047028049864578106773925432350426628191847885790848105742481701147984629957319455784242130781614635149704891754649730573584643166878990439330914243572073040350931227676985962426974669289919778249556284799858784830731386301043466104043402494695197048243676320244856266635332694212630198014706991768098832683812351364820283452749973610126236367249909983619704962128966473464474273394429465009290786296541286995333854698696107458408697514280308598147457231376711338068746537729611194722716663847250716089510371617230574819253054720384376830898903063945123250774877568311217018923383303770869590108888221748547265470930510410493465005761973010291973143853015373774623703742858236734673324385720382089627230833198203663578274196443086698522568010704481260180918814441198498447064359600847138551966538293526769982481017782716751891741305394053668197673673528258963156469312183247022100055635485142161134196857070924950627312084514036415979838646466356702334684598576944797358084534962901398163553001020893599909346249676353236243944215290883692206461354450976146031820165311996023877921797594199416101330162961218848872726230015578786221947935719743283579800796291715841180492623095380114992304494201246873301190557303220234357271360902130499099886858780997944019472969995438745010902193152413051506586016923472583969217304860330697903113260736255430336954300540296989853338283909296251088197746643729639911475998802674434450218389219330430580148211394717243375660337554752214540636652468238460853908611094460432121330998319587955960998167017548168951008379989957480309325360975113067629502346431290819936715877020003162807147106860800605098173401164656947926432716720845228818749957166319410697017630031267307595710055534300745980919045161784012810478934007542779044067356176409896796642342951066130989005143105540545203195648289854200503890196567266765248344077086743084460383413966837123236975436796030763488053382719630108149476590282501737657603632111612117731832512485701870798369639714726438242014573377589547770672662367971804483258771627560154267419192722265460039299195839038390167472076815475039550201809124937085035304957145706029701998571224698237856439643482247482110001765306556794686467741462841408197064461506890115965423659199159546386797778515951163016281805236899159129663745008869652952013626287763583469187836090399677934351290557841384486446175080229538631145702242598176027257882092063837416457742339208785900682438290276371041124674197552337214569012672467272851904884254307253694603196463446880130398643592576236465110033993203123802202448698687454447189012195899938603855808808310408808788890205531941545302865890887097119067193214440253665947036943943534227993860253821743864226655070634108840112898064257947897206824889471664379202471585595386665179316491368074836801745936779162149035430378944106576786843680335731288257971007304588409277552747169901571316064359853080908207859272778264337536389277232577970565237994427489757356755942484078742646393222302376413892433682314616952665284601012249137784851535566523610847177855710106486309945286030115148205172036550878079144754406659341868834940848815531598882603351230806153110563427561186020646109481883372528812888245444453231849625065797671287488481655077471443879886965614170953257735372387801013804678949458434310674885928047141052310969201222522678140701983789814850370905086030908723085755269700771180703671865341732906235182045827285576343275360514675252559377246344851863042375992114573911758785250056973830974363083870861926278381208705916929879792965269835417401895535278354607865728168705140511969287115330451781098076915575649753120417163777577251826252838491592193385574044146371420166586388859858309935461911670740751234580462428131567262959623105573944088922702331449629635461543292601910867496891199655102575339301771064477867257446136850302573340247973853254837881625270443750220799235783811531853222601959566033437712647758886816053602848945542571068707736288970398264787091254786032507452544803838797497815710808941726543370740592134025457844393631390640385819943190130439443793317313882444935360179050696879096955476186063888906794343781143091414568355757583205491739047860155165431663132882460874134009150299626944960830856909723685967650557451156204081715667043343907673662802660917162691944075104987756901170184582915323906181515480519879965770746748234292762840868160931901888126753220504033818647828058651738433113511797707955487667363697256118616060710210322357752604256250968711775969866631641057950275051812946785496362244314507904405407515746690934521892584315352790191809993663175918979505076343536886596448279337030226485921382705933901533797550225454257045726059407461179281009280360494218107854943596169014495473753686931102301907069191975885173785590500626340382668402892395486324233982490687199468449414276895506905716431962948894776326886684344156991238833262270725690116891561513776582294213847195891038057587506975429012623168572065668395177552741719874660729337218967310616930276747238229015336349108357792935206054802952012282558389795539961206841777983860114941465355978966383545819821653885146664867053301304173001894702936332844909659578718234858993873936488388967947475561899949731557067399423803834556413443138502894329107598322127806702900767020012113630570538989881159887741095279116371854298840020590472476653982567779885298631039452758250460536829673835911806849451465795530987908652425683540395680251769658137335894167107513257001575789655570207475164359178759493172758541129699975732246613414113032597052217490623047830895747517043406256497868208726618131732191727435722819758809324660166296741978385196773845697423960356451911359484565530075233195746963341080444627422268102319490395102262055989913445867593534036870779150675159751129699497868583482227936165707592365770800715130704249325210071587674241582377878796406656270101449420596083491818697880999637959359278403461036551673135894621377701714216130310181365694647044791328459305931101364874936264633223360535969875755543030049407611508458820399079394767836205303651467100668081177110050359319420831429450829045612459065126870012200774808609643197575173612624128386903414949292343956684389076834456702417229450961510507702995659241980922026027379578375358287858382001232618838785329653806491964945886443263998039845807064216120466495554872159642946056863070234156218029223076247352484871914945771433400806058205195110831204787031336439723261702484701985070227037063901936931555422900051071891655214611364997219173962664931188267940727149299594593368867047137844908722832472703798355821658840072073201530831766428476936971882487133808723181388878607028787606144961766441896651052261815993252029355343269950406710029502217359316641990014296525085761189448842977303847837230760125461863262739033077496325181805551586468934969502841622301604150859650699607314030852121998729184379424084375133496451230940517625428874257149132481765503386025291901116867527037952988887559187570354665119893655241502912088218461161440588785380073756140581774371456348397588695852018938781751609587535898588802097789016868854961602698971533354459254796581493489309646496132587833143460851556933904905235939572884996203001658263752944232428314428343699784035850688551562889152543308652286530930649634150463297696110344560292326277196074086523870742609169307356056454349781085434628461382981133074467728110913148086894059843255778610489039887629336899975186225754034325808269531450983440493016996829927623629171931121665930183807085777321083831016351384753566922924427141220314404079951768660056906598462885469671697952504734214665486847196481715507170121462775471217335144365172212390242225410680904692038383260080691169793860631537554307016153850133461258264200156249958971393584158062124437613802614842316983635468513048029243583916199055629996801433316471335921200580098386648343938103283153001763611354980002055090437125101929728893176338126721038829339661619256719280192310817957003477798351616678574211573749906576794019529977917912129430435401704336085075703289196305187571123679518368433942480214512420806599471443173410372311492319745948109824899681064729980457892080218020288279477756396216021461837602500750169150367051243371182052865603355184414290972947597045765539565025629682263802697992589343038700701739322584518957471286495826323507290195802380666808248023620909752417942374838050372949368792563954093588593805104427040296028357410132295078201966948970946544148094220424528409757858403615607115140705593022934067401885852241842966327820225294757003834475905700895999515297210610947280275377345730066855877236896217110922012461496230622950915860124886491943153457014325324394440892222932320504152913428064951707419771962060693727237810203127094450170850854822120811630226526808929546569207600373233386628571328171794469173364800343976186818816741934524375064723698097586795597089728452340156019914620506466304257181700356935966271279197649636635750389232490736700379973672425620248355440694509772333885522232146167797316996279337252841736133648999317180626246643006792720606207561658699785648978048575399355150347873943384484530615919355834128631775738978131492856609119769646996978994091255526849799441946165803996372946992822002247395112587041071826209703114200769683151787110696335473030706253139506652980101832634795549960631229118077849541904616430038468362390297737770112453919590613841393092509746995652419627679106115961624432434308125288902309463504502343484314876484234179641163426002734921692094296502379895019803189316273211815199491940180843631170873091453208731507761943902902248959855724241914945006799376392166925681269530947480850531930440038122744093568255267375316407509122140000318677946766719704548807785412884560096680333704974936676359996256994848666431910145719203033784670378648089898873776367917581085623912925788262826399047460014976637858699040658532937164134297457899212479537071322998123410886586452850116644447583049089256692731249621525366882550691740658421022426949494958988035574618403191427069602089156212025965754535708465141048627673921972262269806380257547756747256257348797659310089442830358306776404917073498886008378135416797593854550429393992677732340821872422657677515734956620973667416260487946986302811618760433049931818775614567629277535824575104141558964422538706124914292434774041854406967071166009314360233441778247641315602804231534974949058907709268642681741315982735698306354934294798784996095610771860711831887149936946212532274014379091587766567255953043870681062079996657643178064253471934493685151585181267945265809770865228808502378974397898088822099349017280139992582267745579467520630545288750245660010362723688783691106364033030009003034159236593236243211088665023685662343346862934838605691487601930368133867255336674660144330806477443422657743026655409457553086239882144271164056702162037540372480716346160972429733957307741287677599526675870521793478597934557539981492425687889754950863841850147308935752943358119917563427343369896870147067518346612701265072468790841264708717606339953525644204488078431597377788190093244792289834961011507813077738409174005322655460418930340896723054804262470391321137310644646043842304492347829161249387730869917034250186119328362754303227165051471687170725247846350582290797028156839734756190727997618428306233143825653716039213139727558138414844467483965760281852807220126470769052285140807189643095281894026812906701156711957368346567710152934639707529093944300777878870731075700268342551808053184302279561247537239218446554766216942971826365336499472186437196892170367874658746485148158495119458525418977451404398495926998007598539808771507983601571094948524483005696100806962218492524878732597023374965516783352400533768620765433623418394100652820153884518243239783990904975618769556411530887937516741883987071523178406724317728281117519279228878545141916819561474737947916648184323307559599633118701986385910594434123441763272192099162960333767964697671169495910103013671021881854896705863146568372828840382031593639548923418641339929611333067881740168078835600031042719230811917327391190345073060061905896802525064762153408273412267093288786665585070408873815514010622937774263352753589892821845799066225773029884214212385916444009201683417540824000144728610517487108372825940029328764309645409575315606485300973638410120623760591587499698976265214544488804517559910880673689222013910540932646246345806203055997305275406456177758579552880666127438958998699692208962185293834818194854500548546767983977302024918471960952841505875190222640941435999138500202251922670871974060646238258150451258612900944399842454458607870219328764809190608130368132068154567593043366895427078457668793419443684417641679609807848634070604298518257004045847807797046315799286421019210491485957090489630889916845014996580729842463643205404795931332223243224630149447027856837699791613164846704341564754993103990792167243177891274381344417686916587392339862996445908082249899935905561015811711210684058974640991548317381982592659285188142531908567064926907567561826426546769850923777090827466127756121652696647462319958321705894249503554647808418949548843708690312895852418009180968597917300793869162982675508018822135871545540655919433651418482924627307767316887537710998289903300870914664930852761143965107592220546176741288329438474625021558492619909774684625063344495531142262779217258119627646205613645497724341213665187143615836531715046650472204087225301470556105153887947072434649778030335663268886687660983477089376788244740355805566084382667345790521445877170433630506297012568506937257376830860084409340034046115497510185470811333654904521139266587155057717058845820585718941485434556054858497208913368530838421945231334370353825305022169982693659275345267377054634117609931385608385494530920904768074312255055964979132201002196950112328364823019921648859111344094025466202426834117300311495211169273973311403173908534724654389827518895456129834922323671102191053773022047413518190702894135099290166775567037736004871107214754666172134958120228919646208710645699975571333812292169556785146950717660205783866569118586519918980107450664857329248281000232673589925113970555486000396811337465530124036858522631751940225660343211930422710047976641375670525046678666590024962271166178995931407318310918659233508455287493900585376741198100777461825947477904272441136605664020728460182728782389838114501759579056447578771343417407855632622005535889100876883661688238324279356596436416723436278531413358162516270058078110831940663337704577844324568035939125226866067602962146225015554203095825368642236304803113263871902153007199253764142808506051731870535064123989718163280820362239310106789121121365142167690770910560580711168016181601218088051398831149425914104571009542982636218018961867539736627037108481949059944653167857229780753316753441204223116511332328320913202353831624359676467490333997885809641240105850172648353545515605656931925446312315482739183867735789767492746792608189630321734554554537119486395548925435575963291835170574014096674367235129580487701855098413945563453220568451252331844834461915662260658418986064752074013472244107514282442068378312240498574185087095978395513812935940355757006035938334687702908011875197156438755295997279659417309069427440511290830987540507677965157974605587883327570476947663747956711599199938539242520935806690723588170113545311648397523951354359949664351336512105171017048447609613443913265839960671918623262050605737684268288838900627201843935512270120089999297525889617145994268115398304800649592480519574470410304922786175204921169858215335638926659279730817630746088882021761761949020382723380928565013795486259566092309404608001213203202321105203261582073701889202137442066954110462230235277432391277599832910602432667647079028595456131360556856211235794698748067550311268339869801493680093274535143116976245637729913659784237074818495804649298612941917466524520396900650361428972391887545703838699881283856050341066797911323536612589667014866813867434762234827322401423908578476489861739922482462786176595833605462993992372681954132633377699129300357335910916134682898488392544076299910009081162093224573829205489218786289129645469766539111001731009471098939403368380732519447608245348208785367409940033119686141243644889640981520825507252721311027768254519328945021041052993655567452393601341122058181077960251123589349531478286746125829152027234707812520547630694607722184393918074567278844450699347328534230575672788291373780623310420766172100510187452467456838440052599410275632576210672164119558469449895143558963030593099027164833272690621641617121307211048195478002922959435064698184915488044809113519401700773822438675976673471773012307750450112400358186959134039372822420820479807104143808017924910301858946491909355934282785051821673255199573791961654727054885358435667629248921740345862099696119804587273539472240642586142141273816795532947018403170162410661150397193476178247498923597188143777872262900492441404971003225448635727044943764620734301654871608029548147859489192008311441484136149286406082295756943416770073171769943931157025508760126508590559998569166892652804808688102189122876510466495424816165726186684327006024760825727651925802442096704820217947325892416779179958558559989086165016453306884328606707019924812831529802999785545351873899372086578432169855040337850276433175921713545250714984206920653144412402315873602407231685161801137429434224730714684694351267269926862493748336727210130638579695413545087635820720011776536047390049046978350873942873366297968360013289831245132788157343190000832853777408266696266571499080149353016081255414512328630012551518344510837220796143001724919492424441821455216651121474285073360960898114600662160889372171630988978730118373739519461235600596711679825116153494619480559317168644943619822462745854549256549748361421143495987984641748309383426682717006488050692230271109605114563585730953526779788162180603609593902665293095235801653219120131709578431741225370580817044000881749201270414100958527060335045010994684955698770384970903662390671338048317684058989237228308942670769747827639653444895135908825139472087360234471979862243949394491685688714332931224679539230229132906693213316923693548132746814568849089862093970638892935953744467584353630692837110783516075675000298951681169593849820174459559610474906134014898753958650644261871454970500722094396150416809182777146303244230031457207339126557947539884207690194424381623816630763857110097473473936477668947632935005541873558658086713574103622204258401179336479770439581032196865610425768168207388007544104042586048992155968432036397041619820200084484677746944581830149391954976487843409100459259568825041682981962400838536082531052932300766476246719773994298747923271821833496975599360496646699721773274352282875632318173111695784239117464589553675305234517634106762094870398389526628169178616914450758376821880996919918170226104267880687583714725377811767581344717628775484124631279365120210054839078166595477800773999550715616922266876553661323635445140095160471531774550934267305267494123573915171174178595875038783763209917252967857621043590819679289334285266877129475208650325413409345432362316596968032373164200707855692841427421716071724738283175524977795995823568631064257771504568917022252019446908247382694749286182655650260799505356216142425674290715146941619100947167028776043078649913949550878751580076298426838854129795942160609300055702000046183328929606348534489363198065121600942383762622614005719205276186523316246503682000624674784366984577125247856224357707811534051357144737935702432431209050514667168425074459587715696982987813884785707784097297997785323012826906335977430489481880730967034365776106225746107330229518752100276250778981203363351145249540344312923031728797432214031119212335657695105468228411623158174203591843559852306475860402554516052998641477174657429929554656029687775658545506040488442799394484817196139976989863822208000248162853956942667242300670473448328994525624210291564360323167971452055188309228607485584065633974082608115035167308169132678001715649484976649507135672280595922754953432717468087576640823791732077106928848550557515482435752946208994501901254895019480181339679320586799148735616505326181169330545377674195061691827082564886578140198933810182280708964346176524267275447429497545434554899766669600662508970077513940018371526827675836144871925638560948021711590753264239126669346572595021624811609116641960810906118308323755744961304934137758659162807012673261369453475017202513775704114665361076008916790852209557054605311089505002175854978822483835205618370317910328034494056367714772528106007632170752136719995626019152447059763468525605286162941343019646059072549405382839888875980327053844008468421108406529101713398271037223076296731064595017630103411809342319823629627617276609660806782485710109021120132110403986447758035908492586526825664916984329385812605491253712549598344748806318080780679253475179209841480741413213692436204360823211449958523190861599937858780087198724551050653914697617811143467742578526198044116363379491736752648763640107387404180397794150877756004806747855546489953738434473855119794673589723363289870066503522285087830555091050193597195651218828348873423739645356315871767141902531010894470577380534181983865331570523132878576760640833970212985478478683533307477731341779374236164848786361112981653818486362292975451931614108456061175686793119104457257337856583544263682084625101400636205675716509013358130791239846998824192195497756140003029505534122491236780121586815117548991077594058755421230051911620055840612840045438256721404352680084105890742644024303202476172745796463427192261096614713247456153034489648864076759704910713188387885338452692818240761845443684826481118848774186435041830643133543505311308308004236538560356149314035271024523342711507343447551051176348944026605235390523815716635246810526284355960478257013908325208506597524855167431343929672789000978390367114176231771138857985004139731342190802551098557825211421288942901827187882094445453992214773537052743664897505297506656193376712987271036274140889436032989680139861610853139962686654595053668259473869157264083436366524056116982375951204057263684662550034124808689733491131370826030148958824805936656036029311210389729660635111336300992004531033276194964512158661396393403094828230189922822449671732631043076714111018022852600551141235121514939308562261157242155617148774727084718139786200753704888765328022405484834689177719639364689955453185913017008707824838806522675912020311673821935091990188363195653772441613992144802111971073512472974524004699562339194705547202271139286436762416796995202247125106436538330334129516448694767614536080517505132010883306761222118094356576561922204041125983104869581403808353656480251986043160514942081612482385038717083319872457309228071483468734448833005581695176388744100655297010768065171610410269930473220716553508143814437182672027394376082755470484096641587671585161923015530971222528245229654328283026811671991085267319485570914138371919772120298178227355760885175699514408913756123956453404543133423308039807634122165661524784787806281397425619879324097789421772320886240016354655635581298689285820382781040309109221768462384769995249069772701225925319916472590533661924731063530105943108766414452810004285449888823935498818556813057353857091827523773120960332132712959854864846984398072195342748383417098095674365346208901620554629279247354164186370082799336593117880959743509673895927932085876995853638277112916963792115968063111221482467919592824809679341837075971727056058693806094217549794622606723652391877244147640667222350293217794992952199177936315172636933373116835992795688100132347855880324210896238432161646770923605882062835739947596587408719325826993813351991701435566810560807139580578335956713727794218490735804899261448031935528715755045211556070185183823377523643393980243773002583836664851711136512432800542483579416388162055826226311280451975099608085978245067548891149356301411299264625157702149839557349431035097642309990955762227030730679575191368946488631472483342302761439846429352438507431700727411126132087105104073676851700435645714088271653107557483059588305146900626175551475538829812820402905035453882023248087439979153061115560019100660038806989611442294189715459080770410679506591836390325334190153385749229024447415919613009821929394546097375504109928344985369470675140811357339315752979222061858257824944025334835373036834605620064151747860926291257101733428656282661050113945603546582080831588915035829215397162737650128149591399910295779016773520270812276727475729006330376928901017740189368445229310403045124631250160329269506325941011283319618730308471747507539094367718843111851565487243156525943467031617012679825049582088456365798530752610816127605491535611504117372077882303185493725548503423892185889291325520116155825424414780081705362689831892116394060994900107212806845847968528598666039846272393178616469981199471881497889031513148453870459428498073442584015123022996000198667554905881294710595431894744056267000573674479780989727216133519100513442804992169469226807318600786543285091534587518475154653330065226273092079991566323145072592132788716476051528600990471944700905441489173994081827755872439013166494338860286495649509908886607389808346976659453572410023832741019212572812097582495397983363822445144022594338740662345761390725609327248592500560076684523474618793406335704751343480682464632061324684751069419223039177849987959937641105076622841898655470490775266152591743955655194471653748730188724911146691884423086967370560779963757034576118011882521754208911762021712097257665266246689369362676759524851836385809666422522355434891445863267301247166080754016622125710100649354143349125443599922419197264892582413477261109271376115306113399837503543118159911144396483121102393647425262729184020269570534734325108320837896854184074827401226365263554243369849064649908690866075724920596127228491884687712938441786621399885056400814231027458776773256010163752511043121658967607415101145485332578286070087911525411103201972920604703517946950327076964407629724951026120231870307738112870863018355884537755043267133775759180623670318960040735975356188453377148780323849174063175922410611528192210203729058813172810444353741444669892188903206998606477109240973070555057217783211480409140266059677661532635650357571242833473439439648133142033622723975296634427487837466985271888535758063540346147610432269478531096642702511641155361245659010468946269674967222539070366538640750707302275050073235632768387789863243413258108611468554399720743904655154337811459359487167742857209135388012013626525513217300243876585976035374194646504141607236287318412105966387756175376447808503886006504943918637241392645802522860326441918450528049548855114130366146177354477461808808953471994356900249382069601456355182730543961762700020990403917716889098775827441524974604663315023231901255263769652836604111366483457301974697730247980754681570032226067778300317092678319046794891564614815614912572253371025102258184348987594200485782967756299181686938538925070442896259563890617530483368033987670412794530131925129617960201611279092165892178879373006719315858634820177544688824704522454722803398663519550195171004529533109037654265571879093531749288288558384546715694344113963407333308201947255826036301174547055210561659901508574711006131070821804348363906336549636663967143706920294407209720539225219305770665664083396006983333479574507686956006850531592628113740261988907123832871068309417002486190940069256983723631519730380230776869718312370634557347795597678543858525701139318833978505112518885210051100048874246543721761251658866289106653444437114394920704473714771493114994447221286746475368945399939275801554707126138746176121328415055968897354506946731487484220133023565815108867857660599752922524313264208914108064383899593423615567432663273803942585686399622838095276028955738701226685314398181894681431320000813675260490500561175253708926649899421638738691685861774713431633033798037806889858505759025049316331976547819402771824016376897213983459162542685516286221564277768693792669504332745607403905207125338537491526504600202922541815266168104421644643616835135564461560926353762044589280389965706954178068761452391748753453325783363299683340382695925035610726538033269779347240896449662119357694059709236111537490123569551084557050528979524752392272876476095059074726488181151387725067464172421870158771937570017607933391728481777026858828932275131629358980697502447128243212039487440735535698718756748439646062440105418312778537844503749353312234184292030377483446756175231977213339992966637654470305594847004815195086978721950229844278336241508609724050925250093061210890052749028771481042326825980698620767024767150103762343721816170593934226806927653293590391257747423826227525520004443217982209766362264391805501436761817457674835412940479000415939959861054045744829238698989225193444925225011745732474124251408641798280490735583765632225910084906109814420962338896785468078984889748544084736053262661063240724897268055954286112692309534778620908056543939474085655322277552282315588179320703636266700283062290113315178370757104341368334197942857945040842959021038615095418087594499928088819896904490549722442054263734467611426813918433637861627129679555962570564079386400702606595483246913609897964110061971172769689595637116345238404256679980737006128918772691620592313475574570030023240358787818982123757258844592046130898820246012388918120396573685278245652776902779179746609996272198323970829853917657607773401036181729210736454522064056009300621081977456958720417185005603335998533587412752774310350859775760495387234496262705919602975051749010119559275165793058865148483867185042603327061807199265442587424993283186397766304902880697072789363203647118489980532140905019695541195838979916252848526163611493200272758151450404481990212676872796366412588755760291947948215425549006040502400910795259057797437556729328144826141362140041623284309467834000292491712552770210817733563894536294461238193056485701117778609717140840515721509740790135139552740091834124352407559249015667167969573256529579138650413584692273227350724668745539873254152531598480447611760464585300861891607381496573389850627004500918173571239527559374868049297182369587466009558178404623533235688075802768383706782717524606494470669071485838543705955883433754105832618900280965681031512335296501598799041040582813669290438583904139305613897546058348930799564335074466740950763193604106878709066949910343174019352683146439388301428194443128396128669441506377192270360858548742940418372243880136106533557889555598148556514588983027271675029488958227573015284406375014452797767238740977447076401533818365217361196910428347067626226063591869892727922349599034576997221378180567817113376197227015820950024394284480401973742946437662339817035752861381824177863260142975192481578627812794856522767165068266561441025288603364381565764794414834497561378897553266599784297123065142699873765707509881819627436300039436440755584111429711422570892265574516409017148322685053018803441268097609884583249381903044301349171142223115557988063634404044354924554791371792432674749738133700131796449972790179689127904344440407022180175907756323069137556278591106184856983636451816890994901799775811736566469508305544219986263164185115621734339968694815013663776677706456682940726499373546902881784510071804089952055128232808072130499654625342899391354956054579290515886015005541692897185891757007400895726267713989384282788852652635700314444080266635221864569882533475339131363498766559873100301668112826063927388619022742096248528535160605233722133479107977944144681540803534521324262904852900046422674481703872554827587335244670610734439944191758571065918590838217967349163677660963531537663766026318946416096718947805409360465687502158673245816619778940250791344277918345368780054105241075984509400172010852097282661721965920747870116646838932433227538410863070794148020218358612521553991700908161029957807027931234928972850289914245080318463226009915993409612973949567828302252189712967053265596600502515516931729275167753134616025308810931941384011403064869663123732898858874199339078673595853097978633236827931624142425598346362637168915719048380308889481366677297186063792427174111969141465143530943991541059038641717907011609047335303668465669555949066105485353476461239081196344750472535881768730890797785553816295261503588361643084670639138113741937113000973348971996389533743527303936901751029374735359868455183732076656255242391654012378126552283845213673513243489015457806441059765504539536220351082222094730113630019984664912680761073028723268752480763248290234282100757472821866546915073760104201929733419473359200560081913430674105145674573358405837991515448160559820623527838941256976977402791820771289853220401240416620026085746058114623867521903362009659245209028601333905937763462296095667376933110956909579683746660924972853453708702180846547785195904468224985127151511716627588269755205176223070694682130005055602139598712214288707222614586927556009207682853396274277415289845027722089052411266023638835510705471200660370560395525698546472898535095478150860113791912148125466372952637341979394909106451760438031113929667085470833182171033114431936626178218149861570713660987666101298851955887938997891128642125937021745981890631688302541017061670255523487485368098425484297706034738481519534442451926013639841961286867531440398143320150924224576974436702079646862075002512846498517888822521543996543967757478222735067636615269183604762823131103663594289999233240948766503086596024414218092320551616181363733090168161033468128327566702786549511012143036039443225202270945357650172485524238361603720079908986861912233879271852481334195709825480017316833240823342152982085893593971085344839000820014577712945588696976177957680613399467411184826298033619580362409301362155992863305014742210991565108288969448788289757394577308517693165264626376386699875743670841833395850198016377352452742795611364427480006018579674922718124662953270607508436384333244762838351313989786470247950696596881031717889115332715366572911567363776607587196138794960774425480118329859995803396459858025171834393341718238835027431010985176787233740056853783923459072871282083953991675880136477390165360554311707220775326772768176481428526304455376281345440212165753554560609324456836391061235554676582375603491365459990442847039509380829070483622753879135742534507840724324573373551633684336023422247967965956386907533385874331531514752520966272720498039347029058552478165091290474751140944365204326357588552776871007422967527185466508840870666070380442945435562429610336482585172448951586448173574182510737076148350660670900703341009542406744380978764940949878995678509356596080682735709849144224215895887215709616966849926450892926395525661478259365663024347795059559539577213545180164531450173378840632819251668758833923813466215519653858527903911791517402194557125189946133823932052902512676227148805720877558382636636261615325987050109174276960548419762737741476925262710874123802792310912116788082740660674653612681064795890369551083040519770887576109798123417659243425584783603945049440080966568983912956008249472797200166241880359697309560790541201997090345022568575975410386286590571582350315654728192943221202052337314943116704750566601151839874598200462846310819482707309137899505981444005826128567623703702534139306557081362090150844276781891344130590544664036196405308010019708465341490889809619422529000945878735141326721279901313286106708116840865231834116472207280276068691352926009833080726023054776544260283148841212085646043792740671328200086628205674633849019271515871680666163141984289656115575315598586162076850016263846096538143217358112929986232215329285324985087599403160380743325448705380213398227024555416827419418172545534350720808891894727797168721083076311183732851338646549190045716327526859503953741030267223465292726685516062334133511949610790427491179219167667313739174304629672375243512244584243794084357842796608390305162939250408318092711703893701562750995437594537284143886970471145674197115873735941587146424420695293573903447264204298169340209074780828336427515554501599360946709942319023583999594090829208638146577986907753087239056445344832866644186771644497019971511058468561096132435262232760784537526571982216199055148118808077264229201098001166364412339418041034407581295756423867357094982967273645513875828636176825914424643641251498645046015589651240113933661073009794332771604215143782091106851640462867626085980641140147118489605704076191694365513006144584144949217467347293816251975571182440083867235374224583008866474013655577142265226678192560824057942003593274887708412763229356608745051765893175926760495661317159926174064035464159486836705430164735477521101611179329301315269707340733878816920365507029313583272655402252206728674741310567529412811376266232029189630016767289666195416718321133300921959198771624795011722627476115100758936419102741955636605202685884418755316729556943968657525308721595731594477163324499404886047661047147999183050438794875057567872626581727993775013913373963100592371825712660758128409552493143016265913632799340549137905221077223816443235937052670552335980367342754147700652883275967412666253977230158461685991951139920416151775196081949309642680240034254522959435371030873269494788660378093699887911500699210907792651795677814745490834651433638679520954806163609435219506954689801011298794866580700253606866764775885689173974077230796499772274696110279355159122363335169871428514801123845048166372589990163444127704215578066397084679494964128453570475822805940767487352800000875445538819942470249121260842144939448112875251336298320734411363220385246477032463053744822930894521042005296851475292357923933912531855664943948937912177301003394033199145812321749807538002096941588556984646182416229118138955070288367060383212421850869964183570602351244548962788235012580157684967571488070296357723024777854844853093063896323292689013589100347248919168119851612005903616859459529014072372836142040841142391471408739494714641031242020781392688484147830499028753960353491548824425882671563912644364679403840176535021458952659195942336411030481394326156176184423218384836238434066003673121550516554867299373335174143131514564980134289957368483801493780957908317675421857625452505597306926083856424238282114284970200655022919058496794667557466995214840909026256883593490780265886660763770599255459102628403868244633469865812852465356956209647590777770448394145674624546063619903156833334518760184845506357821009623245282259811635028789764992430198792425078732463156691318503304611829773748236595799137332285796814957197561457285829766879761988872367804002711891120092268603723301173925471027648656276608167567521576252965422005487432233760705465240729172723648638232901399344337291450922522941422381094719404802181988538349510014890073019208288876034636361786218741576268983867605926972238690673371540167478361360451376259034555914533310828761209872196292379804922575343694681794270376429207865776971602214841277834129950107007146326798682285552535421029472558617613159937636029233549620266959607089164804269774291885751900283970018741622009786004986716095051316869103563592986195193228177478205934464878390953417945080979692653572985926822471213802260255724105887643937079302392438491211689413818546468725554395915621487034306294555334932603306546673399107922369970747011507020148779376632202976845332687646693867668753182728003806855922075445889952057275227551810685351434864387016010475909249527328747798432981910732313300091640772763588481925262590986566344740771244913481974578207683305198128834647735995940625327052020901997252313276097432311832342340408803986859411365413592866980665431407546800585293031124962431305447366443626541955300347730629975544620152273297621278649008468214168193460522715297647499283082196015140071966174353639014203753605563376478806098418576727930368625774682046931299633072769804930719205853981754827601107818661708063389276817057101710715531625391649785208220443079260427004695100039046205777855234847497904087274305689877446314034570365334877734897291126852777654866298188880488267740619295388648566507570469171554352698574343638132131609899357192524005735750859711411067984821422936336278863294784415428263677696833298859584002657352264059784499875723680581686437565462076551402976480411961785278867317266642572114278428227625802061216381691296084157163493484139690584039411597477142625862404402735787194829510761397879814407505370246543005346033235515452110651977481611323428346946718308827513112100101439053577080786707378279037131339493509699121344622656398743339389859138925451239284804696683429562001122529946706397625966524255578541251435784834331478116131268911365897654675727195357068227392331075680682650448318804469220935556035825514575441805630390341081426333963745840891532999628891967811509413539444507279263280777755031233693839637446739930680721255455941715279924313477720285401370129618817611610275369373353279636135317602131451899802981404326992503856316491306157714123446458314942938515294227427006922400816705467277592034638489118672350957071387426664993245051754450481013821779287431102841427457092757321054886671949900145274934108110029922742021017311689091885586242444224802600823209385690519360201261449678933259144447492256140746483455683866990695923701286099071064991158767025242183077300997677789373999089274088008418343545684704344341238914324843573251018785123663802832241999327909064270539460848437394455629726687668942066248675103165121626347111268814893884898932853113946130540869047682332055307285587747502978858256298313373447318895895901591582800582074676251162877960608331228175412617200996406466122564288063177459711551761864339920152999006109537710559470014138486307072372336986832832043055584550608983690752634784591687129615692666750766701532522119067645263426014400966209418877237395953804144559464837607891429394037678551462582559689610993541318885019716348920142868173622845519377893815261969012071108069250883565473927061366742011078452755299273135912478870205510738931757381172199868749783741443529315104972303244242874851241146254632969787022694380856198845057311268579366496995044094579277370791733386246987477085976829258409280277192949223583018046487738044990248584149153036698494890022820303748667675257876983279821054565715763437367503214103122812466660662985505770215397082470783229702516532227209489210044288489960539237976847952626615654057443153100934981192558924634614469818049134777938019262893327044899954156430498373352117048217309869109045331291977759078934445263510055186316448172276489483241545070957814706693949764304641291730337600291043086868722407976408889309161066789281961138600096245948488839688647973910689267401089649750463658678715708573036643161423895954108336810233469893078101451549852748220193688629597795532596864222252217634804904144415636250989847206898517393650502759227050157940595204421900145332191892353845748777653495205507729186380123711769945565834503091622775363665058590386081246795611772582530940432158217853074346407037211079865609054536519709270158013244155523190082159054959077674833699829255487984878607126750739537555266360740932579072414078927893868175866737855923482293001465210901465988096852982116078186610730338847007396301225402557477554792619983126371415019284631714899614021563931923554567275885421702510402035066487285861179602940386438524874616520659778414855862561780426867085518337956587973553823898249093723711536886048474879688584972867879699909024929141116247252583651897020942997224674659357226967430887821426193662009346979143040829509387707286127629392610015708856405553546285699437036125690555936494013654919437933226007427661143821533689227422746389701103766025171798135574496183442049939369654917710664148706625226400037531430324016681517448840518167123524620934535025975832764094835260966571041799061306213449169767129415768415465034057652552213230262403031512065879970433346482271199923414883627829883195224514290611833697139172721700825740204723548922695803746732243192637508727081487037134193099447065255982300071693081888616185449699881351439056698285718373808993355637503086926840071470236673038399370334702426719978849266116634323231240106223503659772834455455920562105368382483979534370819193867130389830811176279180656120516662006112636485138891790317294292604659028890926919660878145011017984892343179379400636564401836327962164282565238249936101232323646860105320094417895252241499760013602819928224776200151024841176998565675633475530965204211710304561869008005027948401922215974614559880423536717216839131194201138660649205569710582035979992181721301778050495674416453191177281989698395787938736338978575509027331510470728204141537605868508197022970645326562083004330521677287379429744303785530891009725372667400356617056960289178625568632789684699243129088006566451606162855029200612729559145705526121902892679465703666676812993746018556580297431366718932760078722441399474343132742193604658129888083034126768818235390812049340933575218357552351962962632234605234877366564269426878341778530197588156170692522398606907557165388712962932315871355395724414221881104181369938744723510004561247477050765137248587704059260605411833392637143448181645787846663469019795747925602591942206099951867247264618564677995240024587453344845045365179206863542003587768956892758959985090614677857979500729939197335760005677292404936184677471627870727516285233328475973787516624356584982628643516492113905086529368300802526252221741865629690334290222637390913450687685902038185767532622254058515471777361616311306350614981627524264875129686787229774816683134924001228279780748647474311370301402990871137745318156512871261892727635333099669005771414959864577350160634422999751151169665197289895770586994549896157528177699609219499801610337374261097715454451657107954166591540896234803760292600345944532975234356316952764951999605427349614912320730567355721418663512510002583018200696746754274018828064568074376034092659404448979121920022658117699735580942703899769255708540008122178386778905947153097321798412098526362594386882836839782804169620854702262221998221955653479575784446590036305935963436754816892336565779872431860073024285788954048651069831044070500262023421092732203634134320286766194626981096191114073621024731842706594162778791746897087554650203085551674756455543199442341706903351862853368209440158419843262044738477112846499438291975002260537868860844507049978713976373300706802411879219911460454217327596734199483217649055506400603316970068773609984488470128413928029432031726737563750832265960928093478755640793418928323164255579905275266048340471396036951708470739706546453196989613424626459427231352434532477722636606859934004361956445707922843716509810117579631179437361349308684907342974539702110014459414040885653019480187944391456994308301471604355101546735530060268314389967607721260389675347378091868941901344912943913852447221133509918999040600952393707273547813763567412628137606703445516143297418921789995974400015000646256559504456296096298575298299989241488170894889662492054722316075778027614211324672346288709596096475477276692531798654957391483843865798627721907511077424187344300695754064516603802654058106399399911225809076460422051561410889212194808766516215378343876328734333850022175190986834449652817161854686150434360195068507649621097413730764291093412175605274506816854842946664302088870365417362689521789703223571812845185418950482526938034461263473640536022854113159844594334566449728759324289043840742264384808823968343621909881225848211943635013460236033778363557100141874088080880295977797038547965061883986461690850142177704801093516983258350830471293128485772796413170122356150684818060681891844580478705111080819766855122078013532096086211296150071876156731236912369605366987606656708594730978557405392639884388653731342186006624455917246248113663037026970896385108107147859740061203259052976367779667515205776749180163516771718957938235033910665544941888402030486472474848314948112625789855838395072429283369413653848881182028524986050477572310098496137745565953337151836780823935926363189026877798651190688507114749432532700721490609554649029103245271987169030494880562334708844993993051147366550725953169665628818688476241113964550749007509511729729306597896824749025110467246924539796134443003852470244051055863788467820869627548208341905782768969974297948468506796888548718067696085465933935537878260372327257292901760332190879912858992490017114686302128329523479181576999337942401364103574141261902583074463253277080794169878489363327399665323181168035827128591634008819126469032419358625235269574327505096280499871397490688687866139938791421724363178685085139057255057264186453866797248722796479352822535948373422074621294513607757510356620632394694021354513789118936081781527444741887585078215732227693891489823954663786231155932350906121511826873771891723909419417161327587155008363590510614171953708590235244580151689164650691721340451814207519313408702155751665617494866600289961999227864162015498992438271955345534382241779510052771047598122425008661333990072829448040035986904275345844438970149127925763403823111911728264521442096776513362019440471025752309802023772112172400273499287003166566708409625059231910568830921724319831066462200719267527386398234430783038881797507014167966525785804219806226364906767441100153490919132775029331765466865922072650666095401368349861281386934144766664505573749022403444279503432641373897356104359629310319861451191554868218630380419213162681228486755269238519909460150966520338453833942353020398958156727505485624731058743907147591659285598804420250098875484374638830813555510071668074112080667288091949797010607435628710595194085681957132829440674297636002187586565565768805969714081203837918446405822294431010419369063293347010009645668741110210440358133436318379980442195058920175266582533769438847549358932607979210178577185872813535747484066630499913597062236724598422314991785891477294490251351117177805554089780602001366324765188080914079210990670136006761711133688706525484420115195930591563708107540563826147915641197403929513443083544237383262437501076480555467473573398111737105310912447306049323232582043551772867069967819094407368796886783717826788231728080924134269309749134655023575208529670193928408626294872636844811262502415648517713035412877037146237142142383066792337688760120044640764283640501193176374227580882751808759120821853941826310927846623482000622939224099981195940392808387761350071060714176496821220613703151117397078059556596134514480372061099666298610761675195515304817731562648514734120793487575451744661044267101171348926911392896371566909508834999968092670400681498883303016134706938414770047749553887401005324368944517398878644422615379724178913433613548822078124533424472191874229417609677170713265169524904381472243672900033367513730007934155856900418393219473249452622389134088889503016020508064998157108778723234377385658794237865039452819492494146611045158015736048401029143961471568112432829704421749022133624475865070463475516239068633939675929492305454579185085387808873841348176076837053109788434383653206718822477899445658556038338659890403801160446810647144512966891886195855680317488426719227468656917283603957727184413685438216522333588734620277693523154360629453618722588810527162226265255608133672325726063548685985999229534086008512841352621587272509716176075074818058614999762038420282109548887914410677730957315278305363852148310070133379379083338929572771035131661947767798414946408874373319953457867875638581176291849595972194816595424444930362062359253511855710057264179429177190154530916125975243285118301548746317935106703446788444363040224142672110588714808210923319013387647567671633950035091219641673529987584559456601363893886976520258952085870893929340154995410743162977755995181362972124223990176236801251259702870905657412232331027902468018431387525525668279328998151226423125630430831805533885894329931062451785610444813117245989144913989430356080008574132174597359295798208965124323083200956192908050321352956969818242121162575077916734447598814973251373809867931388372675331784298965230262820381109396618471222853601605636012485484717618600051224505685906725845564648218820088332820522076092863715077335109642081863930027661602013628716330481643969690705921679872976988338431134908908272259050480389766114125023797605354071481708208000710887262355457434490839166940253987515261990716457656956876781885765917734177025056903478318274006361997201872837281215199302947132977985378506772894166525582137398073620213706181821386746078203899894896230343095945948730516974003056419786406227872278106185965032308154089552759603890567526803412973376321730307360956136826551066668618099075557152536117031725680687435602926315317450046374455186539030203779047322682492304418300243742053964359258298805517999731462103329093383623727361867851532016447981999207872671513306747289256031047866483748501731313875766050791383475855818708984672092496702915227680239362445692468338935232592277464504179361589776359624450943401191839788167861732829262049691080996086161000742264916294096392238591195989846146287158701320837040522222072062454556064076312186275079505790971936369589628052439060677478489537844022313417949691000418600031029647382880053033860178640490648132937039863995645993036377693148228556044457356362471625429686993576994376023788210089225770375775776214415535918040856014558158624300678340782483966069487290256928108226751081418698583243402216837993314144484294804270517392994166905455340037242117109077075939036729098865009249563084448462381883822428071900898416344010999384822705738311081243649933948213472906694056755916814817345947711078505512048767123791610088378317222496298278054859419767277934663711270686580552537838536175844293238005118111363264937077032346416837742394721263281074454197207420991333223806434569616758946077367474115777055092121188452999526237289119496205483973209994294077320708187350156743527375001495027590981899734550911595150888961540587267645561065805653678889655229063641909567730507915731229453264043377727269170469568760237626637907124131097881927671482387724283224305434630731919366286957375977419624149022552280843080111031509704410818992197738646617438901339684317330587176044184720641955019284275774390416632014202189829681955173392269656417811336199104262437502407977095217633759621455675711145311064569398928195385291158130694994067731196379898464816627997051917371283195874440501033886175887284958005725185672287631589450647940152006856068364885378668761567969569057670672716134558049608536592711409699699706747383415530669934246505519871597980500739104143425256656532764585644701482023507338091661370068256371272111886922057543843451638382178363941117978809845972230088311358836324950189947230631596941608181398479255880522507266151740754430295932955580975697575206571197687434576769350482381864464476288670595548588644371479777356565868708478208745745929807858082668961243759737354423202278314745655174068285045690495370254988500976037032744378370854908024684027689526966033318097990007352198362517452361351288354869617722455101443900106508895382013829381877375200619760046620793975135546129368659326640824706259379151080818267570499100343246022775945422603401315165403547653677394791992607655002750901836141076772203912743028572871107979128414068498912970707836763711699228860767782784747382532325983477327387555599843552500558878880229811324025068505758546209851873658472368321595182921054785312012933670619463209534981874145944192797206148561759666720069359249429658390076438049329802509481210952712668149536849319554250971678218485391646672460434314167971860449463458692178491628155234657667325191633975599019141627561085561089257414299588906307118441895998514351386146982698803641652185831666058058978666354462823331611612251559647183642273873394551826512569114622739233602470152537465445800991819084131430305621342769910452721631563802270164392205543998204071225447510780625050328052728720771810188047392366375342830864328198620856609856399624673171703893072031219805496475200250708175492705132423810130330112607621371302833114484024662493914286235506541340058748386556838013026445453302614645851792888245538835585026113828554486258975916692869789069512280933654176094612576938246879858282090011670992877881476255986959672922026027444389334275453048031324112426831509019166196945583682381796378017273561242958666568017912376785671834436450105667566746532707230919243657126062777675086651028929981753025851497642333569288544077765751890646487223439663893279956334917870041675340671021165362857107500164560163322503050254444415377029873853060033154400650259473981455860749360727439698624538700360097054930307691691157369331583988171396851899152091182591151070749149175900392979861542152531777073573198818869091608987002760839587311770734971606917272499529049439488071515703762185460278607710885490742532967653536824882216992491655134744060415348326453083904021988311568479123616261959136284709853035645519309679323922123949149481238093218474901005073075263437847771002116069978090339612279203168096730374455424400163929995221637453203657213960603268766802062221471708638971770840810183307867392831150034484928431053545710539053147239646093963667204355659713531343125931878666374751375421352727859713359455489378913843735108892698629847542803528803730086787983500237795928155782519770081024253355205306396526291941603660164096037128989226510595510089847044817061547214972522649115358407032184515596570595873985194649601343634935691192571275821695448106589556130457780186242432735912873449722365401798500898968830203014036151808725732549857315656862089051241701667194770603962711054646180009725683238720336591305191598757655932756792299587725968985805220984761575191144743959676377417466489943996316511708867758611657499226273941425551640448573402839989665143329161056321529508682025315288579772757405622995948026136290965158285971628901771847496708330720812426033766812239726601728275286988515597634248473092985021938444171920354551772555136320504874190858468889709232290361381216241293790068074245543669227076584335685949051829877666971003859848292848110573459141601579953975912958042452222200356714227670278564427560555281976846730972073294990733310361200433259478341840718455965578799856534756777943269851424609330199787037766191865227162356290104216127155601391912434771495542087944807062349350868631113716938583558723496019867203466792650492657298735350291053604676789247931397185447405989817625294468786268166471257199936418109080117056427113683492792038319578202776512173176510053102448545755035473590178670452632287532027823563502210986497168843420649152134235654431440088089729126493176916501869162149524426282819925805054359837799984897127738595511763710116150269636840636235448187835619965467847153000927664722029991368477814445311778191121939751277511922346064350909525098243166375938119313738162361237875566633533187901530180468140699624388794458796256604371239697761111043080084162762236146851877321674856735955212144723634231873047915819472841781926152102884632724542646435499386653143617367630029572119518690129210455751968750384151130308716697046333777585840151589044083461765039580900202478928299177303252305035258931750688248215849668369515499731152922696505585327554605580032346493528856351657375770414350420727367270591822544331998408098421263550076256829840075520939836835230222052865713176184703064560483359274049523927205397328410713785223663541023517934259978662720298145313847665386073246812980589664777777516747285003652715155374632736934351487694135776149956952689353152412081968458730834637752601719098451494758416527986002150776940611424460871426836159271595218581617128226097368005545915032680547477222283441653746365638855689532076851812195136843909837798505841324597759278260060864160528994378815416108811019581584910823217885404716882769752232027860155159553738520494381938804493677656099243805862732183854785285949381079326066367503449460258422499936036462314361086481845239282106854518473924150811146712346574573330218807744323555431026172689495377055257900085399640769201487736551164168237847758822411324025533759252251671956521544352600766539591588332325149000233631597185619581333085454745442295955834335750619506172457020308485816827727214829652738491458613559624420647996523562802333368900495068047670796800559211790795254462353612960967281437756700657422037020787035256619350089020503344344588279385003829146990621956210075238377913714139234257022148767696474054418990574719991767453260648724168019280559163155667485209309943584903360635123041203171889902896710830135291833532010085723406938784904427457507371557789176169957583689909387768816318455857896003782900580217465993879218237740143644820763332005274659513938264642025616548130227265597778840836396715206062043362532902393963781254381619794987194160343775987887570916870209818664030771483701604410595736885324526681593566919656840394815938083229584545491244703877951771847568988414200328441059163256669772828641084054490530495740991886209173513498732080942611727251841034052089241128469046832179741072752870627773280127489955854111396304725900746864916942493052467218902323438113421401851416218926836085715957808918768171394039558665772343489214965664753033059443861370373380542960071199908454423408627963583753617356544925199726160929269776643855923531158857852461465884916571186662342771512434615694935756675118457793360260753460948485531768971306657223406168441339432838629535461444108520325297422859972128902746652672712635560695173474083562233871190692303159963513830225684426381053663838975809729281499204956386957148807647969139381349951711217470202150774784972005581501108594122485376017474032124515146473862081180972416127474963250077550160616299809242271795962774336962758044318997927990705209497816530105978415233447805277509218626964972014265373839471020133377181010799802233050409490499870631716133875744885763625142497284221428764772110765161544147362267541511251671486681935272157203692147672922920181102606422756736775625767256125936310538372731648673199820202626817550051878422004462922903017530133228622091227390358347962325912230003170504400979427824682888555484950742918236674828024673650988009960124346686076751977136732601913260287972935062659516142321522857650903326371517639119853275718557689992648731097761118035790894871932045799379645454756690083812386939496951159612176425639562860871433134104650201721951879956219552818061295312133819342144997023932911151497986031866476364515910165524722659166660219643554491349580107023924746866696101614563079169107964974568291805727496300608307766522402279580632457603635600889125513498722257735543985337201439177031337305744300148423840566362004509125744357457118014003933974452812405419363573687375564877553411920754661896324181651947069482648318169356920041954331388307715105007642027408408606362072667684813113151272617989187594064192799799562578607250787559051270168550431187495924775401849544935776182216007932266667035769505887270001342602880616452464725931494351432085683706733296577172835332926459761504183141568579311262138764985081146634641067943186523653949869669697366361767629607357234292214900554195996105747965453223574162067198257562962021395730638173781482379601385420206447581932201317056555827354233963557965833426877217781162834959151204578059921750749150843442012326772346299749613091798157714477016965339793287460167932318404095986185032214523869792616441018443866189907570766642848741633523895971637409625195282986028190408228091419987940467479937060342976267202101626186186894565477984291347544237049550898131154913975933895132048383570262184840527535412218010768169907678745725013163218709398968866370525089227162100853073862185795101684785067398181689087139037041956968797629052630540507694006328965154438287050228358778384259940495496015215143403212764927043009461316628845366839568380678030449020694582691399395835443341687664716807125656278573608234029841498477168477350378511512850465985044268747079939114234338445255076286488302081669943187476472425015352537751904624554694120742368890282456033031351618073592061343333040469739699440187136621894577216368593608973672322378981222514565412588265749315364789255745893194417854145597210476161664899824338152113942077538760450202724448598195573070375729211774874349099523232100695230862625879249491570617036884659962011606432690941389800724125459480913370952929660180681879968878979501043072415773975047706289168774721492989925989214836285457021668000763013467539898378869497243565693478789598088235487262218556696295450102481773934291468149628525941909356019802894199426548499087515557032890177846135360588980522697215454090383071528496023726368243017903411412692381007866386847095259715474140033428583038772924004456980104655991047672455377336801242664889167596958208618377786358384280490202844891550560367337014123945051090128066405297223097711532338668885955921752312480664548839741480278664201117253010591153098506516363773707828361393273243099896630986816313479443413649364884202448046247651972793171807656702176217498630224091640255399304259194449373908123524536769249616033110405416227875200783473780284690887872076749335546610902448201288431365697651942951666570071149566203948933258042425266700981709644291066397471536862490830519122205755723200828784621370315059289020129344342178689408733500257800492285319764160941586900472492375848121116645905111075208721111993322739786938332731525426749994097795563438072532639439065793215170034780446876022563482974594293447666223775395189976507961476804472799468996290443836348784053205918290594319656738731099550542844739051994428705404047525721637753186047132820744154145981554575458552141787760404918795986627022202845834853894459617451520613575691808857993492562342530416585305111661570677919777283983245742725418674243632502513200012122476424734765931701214212723363630429764413700283560579237693597847479901475314324120425053900878534498665511921985424428433076126046258786595625833257200965562037444919010205799551349891377117100049614388620009977783028105531508428819092417854715422655616360439248931275584650010578381881715699528086012843731529202458074530263874632724364093868979750224552376585851642260891659710106100691761371315332261776611172046528196808020095802388111852420375981933267273588928091544342809951534703490394618713215364307574136905277795404173625657228394036772907830498929187098874599159933988245980979781325779086004211843036242946592260407358467877273843039392210715825363731312641297751012140371176988839200257507796746270814558201899299467170864653934435022179152571143305281667968533799793444065767916108828371933388512110552697118734879408957009251590835556642673573548675819493576184439581860083469263362226251896224695533849039658334336328334370665894854173027776295422498914909544079316899239756380970667327516015148056122772624665788133367018327220497212642389393477908639538504481739629892181321682622826859327290288288688351021170140731645655244308403316977436119514906033594506776754134595481218747377676981811430128614185689326573205884960562233346685217780011160864389244396666516547291290086880113172089264216879660639760593704755247858637213639853463073664964419885274443562065442039092036007469978719547807576253603709166729647879046819064914128083044739511558826930831478274778552912245337083228979041912281981963557261888870537731114652476178762772934050075181763120412410204878176094653816415812401568556001098303438431656686815253477655790142815768249838109049110311677619776611184860806221388249393900125568982935992392736299828683229845603819031420486868900145820270408311795231533008602460345025753171856174795062324226307883506205763414933013026524831770023141169830162984003744810320938764343451338565360907454897609814815928939418672455891671424579843880683518747690900308380235720512614743891486053368047345593291274424778893534273298756125400117044683375893496078070875514656962535742975604462386052118370926971804631423148219883261412384343334360228325882744821868537710205020431035208140597403257328846270266249475566266772789562892404659103870925908771722491612448051993851504133709112191295378862945479996188731328777069521993978998096565245270801592343356279601556475356752170510360944470746449426826118429781041279042314557287643784916652216061293487961771716342054778420130133218254946454079389788153289340030368349146350341700039728331702347163358412110364927206197057512517200622344201247553020587516946551172410774702338042990470741800670531252999473529072509120478654271685040077386139973914164488838488618863974075205124099541455222423589483784806864717838753706820229394064606478066635829289499862926162807911057693848407619760728277745953156527155161054209803763813860402449761501993182635537594388242021849760467268431562534487853378973361027954269585713483216491175967657413674847156844942395504704397750381306912706208455891946412516399668435077331807634185981881086126368821551187781876726120950486055560375374744846527252762452129505727873125490046763879043407270433907053014017014363867092673409008140594485184314334684810668879294089193652013860411903062249232803548251696981450924826234383821043491590438151166015989921426704764878554226364282488964505752178533251336081878364918398328381131603948990199748655256806324114022972662676976453975408077072284966563511405304081966811379202560474237589409987308827642601654653813879751912686446001719683973090689030144658569612290715606093710090358368940251489913623831528379615288363838196472881601580397786065943650702264046787185179659706168426186366663482675200295470984200967862492408965074746288225040388879903358218384725036210030121725114114635608198828098830767772643053057433936357357089498013504855403206672096213780329856856307948575563515537761922754759224669802363312718709376537267853481483262221285262220340530750646552209405254630620327379745761624169287983229213248981300825148765069975395639718328553106195581562696015313236282665664716006383104448681928237064695815847800430034905259076742793812158000059294475282243929979926412381942057869221304984567800642345758798937939161462486112158794988445212275996836522965618208375010937679731935950056162328722578491414898933328961269883035382745988807638232434175325442239717920322087783959318173222928186168097910231197254345071013278494184092588864384525479807442194895318541767234472196806078221000591249239726793244399880432557693447165189194755304813329315731309483650182099043472766372120406290606506020419020488351574914783562951054561646252602582346511110761895210584994854535575891435984185705081059560824482816557461028923050858526007815290947559087941610016353776065467050274596386303622267281594228416564666615286490127777990873087018947804680718357583710042322585434350294934711779549911223381714640290031411965757787733677238646164629025365596801391190812475769833658554991974019148073338073098344884698322597445221244845312695263299507874292497433976300812544386366770489573543278237439736114164354417187847218817510886885754797289801357001537977826835157948169411584455789388114610667354462961629952657825811816254420372654467883987301472036019005050366794728886180969163518883473901610026359644262447798030020463367933500118194180560341453210613451517354739654739054366533119436486619945158830246496911066071786483817565590337668879307656998016532583451718615787873812859774975140277070051916455367597493727537057985533347119216877928122512113618655127768737229101565932646826369518258723313493034396968763588070644971971445269345051988437202666550712233217012554807567785849223119839685999244281696922028769173517463525683695856504955808691114398034224199781560473492813479068370316723087950607205100792190424232081195752216526936701515864757356395418461076942040273285485309148581861448922872534577479200815735329439044100956883882185252850525473149880986510145463910371246085734064739825677379690000454321922003063412707431797130438655473333431904510990915884313117395045414061210915129859546758513414958001585940965901160149949476137628803958881699586444281616879494760432482884334723019595362064152472809110195536805290509709432830189230881863884199639195218819914241666112174409940885461585008464901151027870612563127721884801060901679761565326318342540515079654202276335385630749182876100770108187469612535133152561659923439741917991604764253037670351411887266566307842034283478837007122991312857940684868582435421874395832029152382747562468915048706300677036659513950589746149964649972802214333268236596081102915815215407124042447489728462202552012681551137617499427702215598546561135557605699569837997004619845422901465078551091317329502668774151899168098917808455042910231246980439536558917266998671966084559207700551068231328691271991999714516940861628900888829857154521511800503718437059956867714651885491902884961017602639513269376009097153392098085794941586830481536788305373505982408730128096755222936503391943928660692670914457002232124296906763065405765061530555470728125771161125211170334882092711454058715000441402385220803162761417717838279859269694807589149180723171718227114157326492205660851301911424893781705939464558225219634674090976582851056290401729520626790274556423273044725956644887385366691919680249441693209591105884174472305259698087058996421298459153254076894497640204531616481666204220414545684897207262562002777106927690301580831299895584142393422481750947895253059282136373326302926178708570316375918949940068855337603543504446935046994326134226755962282249815166061290724897612100537901839904199874112762989142994031338674570009094411703674092659091430545350451899471014109217203662755785461689732834143652669545909516962442570314687102551922179301165179383359272382499646168671713707814289623152201133771061493506294682919398528954816840401399133774596290658793615558698044881150610576337672553311302841747695255347164251670419395327531677222983711723286362371019145252721877604780551166780406071578232077568163169100564584729865112574058517408974901869526358076417610744572395872184970777064247768989237992985197460349680739023104560914881306744808647563846747651801139002463405212090154843564712845764488336346208931191495678663149685791476934070488577450806962977183319476023498960094541313477026187247698668874703865762048206539107401183043601778868234995147026910150266320714038531185821710287963304510763757527944000334221220035387190556375541849449289809136818935327797622764435576223428387132649470432518571819818720959295478047158140470762160314052585825107404652902628993136185536289082487335490985414201259467046782201516876399542627076680102378074884788986066071338901093546173272042693731670253178963676140541262454686748870092501426153891961174644547475402798453375347467634075686701471227873433317314118585266171730031507865707867894484620066307662107977146143674304571024797942345355008690123492994625008380243385265131286552392892578577252714613528100904757192290041154565922839732547102624923537419269942730299428410724707935147792215996137314374423869805271046281452903919147075601919296383257487269162347271723253202665095590534905729512039429067094128712240058223717488107799661584518149470648847184870391121304443458914099409379133423381185598123514400341278441607275459742337185542940476498881011706447151486435697607651307720155766178990340909194952335082255510010167080890176615007039820791392084641758524251017702552512887733675497740695127855968997089768073850435134150478453548053145259630942335679950455338785217622519245225711439897746412431597509472829156306820960051278058530547583592829736520977564499313303315081649073478147340797348360054028028274563787766320696187089913612930992270720277261982751378035202447311126159943901709971149796660340862881237210954959256522305054137383885045616889137027395139864097738535443816069420865948629977211404716567927862316997238261386581144466150466884010918915757213363432981643909159648453158740377049677057582362290853103748580912475025139818933328784325742293013697058049732753280271104260144860121334911462766472971602710478017995990096365348505514761715343335842213427613247814771021781971695114811109292608268995683477461570652835686751073810734036752053482066228654242940248672174131428729603939718579559321721874205302632636537710430736220074307092971983771141672492519596656716433041421197065689900854692626300236651537619912348758810598248368596510018896730883293255465471267634307420762748644130930048624892936571566029635221783855826371136702445994657449373054929589773781631569213773424938688682401462137800996193237231745298687062171936323299669240122623752259212790916098832381896042863609143464662089751729510316725852136472667547443232199418201107889660469963266190316723316741677002820639344936224248891065922525447797890335170759252084921496271406555323723668943626364797787961882310037099895373258658788718210146207871796928524161736648820731774459487447918254002237164885888722203016653949398790881814880562464959189129436920423357614377613842151864501207663158044288569352515832553874901739414350992286370029613202985497140532490428161705882670993087068093086426825410088573106094384811475657641708174684317933193629722909314147947946322093162290546985378000582886670417404073314676868262652890810136245237040727840287083679903474867238565183046870218876118018661400994598085767303377772297404491930201225105691535847235953694905634638502782124050154838111112982529352702440948522026028653719158432043100707821487991911296044571237569301715906921554199023224658503616422462905250963617081805449004116021738559964847500924390828938360735595308562641051269933646896730289433631668643671306699075845406838057573229827934101517327054742517924027270801940667896513484170808091291857356858538481802171277752482488337637355413127789643081153590572481786826997590000407928665765515769058145981980319117323606261518855172105734059749528639956442713934943584603741393999678566394725771613269133486634950934324128692632253753991661921486228871102509612241797247733301795489066846156210737560916582626848056157044359023230799344851489228456795009012289047210909085257152287159456328530361541758219213384093399586453743034140471055092234649550832542256149633129268280961850939963103359172490520784165871346879496442436409101901969916944586829130171361081578422251583741113527478829943104649222030128961890516135655342394138934160683059206054678010294403218469879408737198356001114451848588556283177540999245003503245909775610676733902216743794316378432407755331424539975694336925001693227082353071238222522239005709342966409045819791115594786784031084633743344069611398111109755142215086710157170738632214469142355244608282275389731790009562515200010692434827468564053521764109347808409185626388317272161291133998230107650025105787751237062534243645125450763090969495629687676443765142858041064991950531931765632644710394986743090773051392178594599148198520392362747823425159572511753024562806169820613676828204876121383033216825362553181207047012275239795123105008680017666136802044961810438054427174833506444566813231058503815660352934563029568641417337603927214350525173142978045064964485940035120874439738203412380026197265170354848708366356731096096892426316354171514884689427536657851240167720414147310263355118718224406809554935170570962870832114828100101245998698532238308389183437764517516603356503712837726690837730215472818115674446556945875853065351940670122753956054765854699381768384882737379730505364443682395702294255002624931920664702080381708469333269173656227706475399772047821116451978610710090056337556296173951006789151221259401213051653562410558348793830152560737070405713086934751698929147157902635518420486206946100628509383403138050957609281492446730755351226466863282438029417354202195678161995635751699428012406905639986329590573457334867137431272182927839004982552146062237436791342966598261956969403399514772531852482048826109396360433724213631904619539475948627718916835064466582976923178772100464844251222861130740493186152620889895396296187616149932736984906897804160126285219729463384942097858806806466905865410130603081046755644452166244666107289506138555438477404908746153757492473137829218136141634905685399626890247206866561141567009748322683499001003053728315170123362181284156203015197317135127132370217985980505399260614425604006199742072704098803756695258533907878750044736758997053249150934533563386787163387673380633962309980140675974504690947251176783956885836527689943354064846234835902710042793111219678788542967650955007901111982746201867254341365787237364980492494536896039470038294069262620680599374297907532002632215130367789736412321718814636787564083465261716915534805451214696540728346328773502208372274011251865151435257012787237256211229530910029103396925464816019482747951031767907467516358834681412436286037474813801325748966049549657950789100171773983633225452995343054057845205669080729037240401270046957067512563771423097152149944416036522281589189348049578201419553475515633524322182848051933634392938654082907066571873978104202529760607399333752618805248209810533026122766585268094291756839974181140508117960652862232705806268216315599224407210207207580824108436985166147294884559051080132276955611581910672223820417656116589964653343109007450967910567761655865695357954185878113708511951377707398947912345391736129535038361649861333603798422765619268578869616062322745712386425365726061148365155907842540477761835182369755751256078547836264961029804825112044386478160026915174214767558599409583743808846707967297666664944178716312961040848133451538269467426377934095246904037895557777834101140934575115134244271810695903890120901443056027087698374840925875108601580016614414505691093646791307090335902861038561768291604692390272447798469030910981686042539718446931595139056565647422848666003434069015447159585334036365325322609343015543371360843884864091647504232871550270492401349129473037844231154185249867974482668581154744919846124666890648246757802321220368930063895420610081048426166650280859107837940015723815856659563646425180795843251158652991178852910718368206648780407494084179310903550825950575710835793824581587541806162908507302982212891953302587393764754713446685820978440746478857913193350164459065432905479600884825604585102003573237826472045478039927533653954936096381137183917255209300106375079516085326317537687604333234350550852959099091200405600289167578830669662074834912003394508975525143234985975407441708723799021139229693037996989612112284082376453029795941412885079709892255621812167372897891299172415804160000286550452674712415223647655859949084624996085490255170167917116244195623415036982603399817350710518225052807407731990283125736396203208921829479488394634514243189375693684332008760104985638620659299989398942091776489681356567887346108481986933013603861299907808900425654007862074226895922580477307349039865306528687772617812381937721019780060381333500199288355620231094711005353435077490783358339937857668579977033698545383696190610154917736281876495614371436842595916371508319919429176041945958096827360949548978986899031559298683968379549746270400174925392510893988439526337535017248918512229038991300904929908900623123966257700647155988616471008873970124750940253598093439538990462750121429947980208614056049115622031326307342666529159677462178045744384067615681916792458934061331928054993336749234041042326066528222392730098633653125752593136220584885840711586222395718281980154068633327371441443682143984160435236858661722800132134182823795855730792354968995925713721414111997620921755542210390819019410716039923663597789435061203452237860657298996178516460998538492635787405816556461477000275746076190896574837521175733839067359848770365030179835251801555588993502254753525680041507342619627301941484083444312804982332918099904362434163513964171583342320646952516157673806722614037405579169538907980854682354353295505263359190498571241624714011500909722579291736287766410106657820729595788117810290469993361139197756509696992362324272387790525911346085810468340317978699858729473516460918939221777168843274604509885947906925025842050309880290706918436881084680642050793549682547287350792626475642029070552458844474244416242559174350411529223035983399978356127072765824991158196644175691687991041599220501211318957882349497586285175241277501051032203796558675840064720263872057506322837374784792135656547608492228802183306735917508069126498714490322454617601592561898393264685447055715887863644595001336448365269161984407864142356878841016568658964035339297063360554896097629738384056653754246895074552295307187781003809176147803865491912425327916726732206521817837970052492013986615753877483157400592398016726028358900266112368298173203439993274615431680067925634812570442222952540159380835688133330126032390584883955072765319271870091918895903141475680882197210098350989807105611485718817434565183762488552398518793465584041576039825787865423578832477010135586190998921272423265872579628310514521944503280782087880533759724229965594140970398926696200614845915221791638246581916976354970402967923659095533033971078031613108356343558212192285027303849902225999856560676133361762484271960024740350522045999158317856345689733133911316029314586731686329302468746359852116226842115343152320220812169442141481694617474398941778875250333826213448815599083752980140214169480813185084579921184515665815826046432730745126661128026365840815106402885644584961211765209176329115607280082292147321007784406322351607059920807631122230470470976402541649559077769903661011536238625450951126844816186627255756351586260551775471073900590002072576387169196915864029523337357116219985300211488465080511082922735991822223940345200711003173767797817715529423377445832752489285460472624332103103586491225685933423381590095779300707705059951888904556833161957069717667813309260852219017815562461372270696641725772843858396652777708432630568579936184954956508143096834300447570233530759824258800114303882448402962708006439397903929328413678213367250101675666165224748882680210776512798923952484111959680526760117695791984433411962793234723229156056823252354111236465546335685008058052742252062406381802194322591201598732997615461282773387019387185651505775981244013505353514916112235523540662384502636851252366206867642793987125925365578915830062459778982002130499457336113268605479695413962190125331560021985196718966288639793193226468726425433535573801731415330152027118130686109907366868350495226784290487890272531725286761297293855986886885054658499514962818869715694007640548637980100725331779781595607876966896830082851191626271076965215188603405031678888198412618876911424100173941929678447683059855922399783491797806085870444396633292175802588170439181981987584228414565396290181190581784933913310733775841050537960996559400141390519812700400793136804849315936757824554414843690551701394981602139102056763605651210674441488452537834934914526314651822315163569619378072764536368814154459490539147820568316195467791625330859489881994950322664754782766113429615570896017990953512226957705630000024439280211599212459267287170738567246926395000930416356691167762406571209431905707252787739143196066817924547511142099828488144511726077054856259760414593955145004299713643220797915781790264614304471315107477836867771532981748067377676205262773682733325382267566399529222967473147160096279797038243593639108030548465325167610271044259396931700403638609940819956583358318248301369096195708544284291895725021759319385997721078221990409739208013248547051569616727229135774580413130690357846066748165222151453208048667921904366110515540810217885203494542457481641015996789563457104104801005898069467973598752014916697415985090328964371958954325473773451294477048150513922416993478843692810084294743492129433991450081050922144006186387197057118884215828971989667018902770383626167138755667711307199657849945313268943498402805004132996859553998302525124865612337680380012826375115017191454618593392298292225696565203978473188108773218873468889978537607474587230099299698147254128696574466200158195006782277707394176382897375246245925776999131203054994770603998571393893442393165718257068701312224451824759209862464558579928205749190919954702721458795894135697820128115129542723884214930179920499673349096098117912314932281312384529945153725481654782787642019546429471728157238599047431287318068519842025150992355614195830578846974856981419140992624218123802518820344369868386559411057617593444925271850904866758331520718086793050695392747230195146255701097191492937969185049208638829334564144190830206815344176667385022521731295896661007528350270115241899313557530323087404794214333444867223689196055566021426778939282696487803730372049450514230741908488159498897255533761204455287614419507400429327452871954025351286508704349300952940023647678252435142124909522317290813038695868538445055096834896619823237306873464146167252492278666726634914492605047556505188707559083710351868460171561052513564402455749600176986742732553598882160991353145779019708287947734631975047635011579241898767737723099082807546486507966824082530070416156841602723327029363596215870437190429166550271268730881162288275575486395783432135822140016600224360658937598496707195389140429884906711072751744972012658260959185050043733987427223968301398724040934557500264604187338646114144119010549715211498065650972912220587571191257782617092389887085759491152706687348589885842006111624705622447140397176876802251256707005118201047860606395888837687101962365874131112401195823849124161935540809668370949313878200566890091153989075748889841882612438740856831079782643943475315346536961087227516999358334625115937932251741817269201969926088570183622498494354873672588892505735317656881716244393717992565954347538171101291269240419660126480733580620036305276179992021158677532742124889977508954796824257592267713345552283875163240367817442930080206582387401019373990791031689847647234803514851255938789966763862278785869488515614884178576242498671500707716587666181481782574929688726047045216094960094127495004177383836443706393505066231796677445198171409655736833411723525012885419774983016548348632173428316871968382962750344782632433131611870950211672585705326814046414554073964387314520958891640129019186812226710509266952270539748462378190594229841133552434706381995104484435826667925643699009826052533277017516095731274341150912455104195604204760456420031673010050434595247980740571129099724632357659857459543248097296609836175436740351667272950971207835224869831517324634623488674184920177380960236207451869084740707384376791562663000563568576698076466206114909773123766044691960275240234068101525680849339541568307285361971423435039088053373646872793753941139174121242504213061703573394150615330365577831834751750050480605582565895729231275208643956764004668455760521393789534935005171400664933434714550049531763777646936412119771796826423568544910131457068229103395580058499529099422078473497885100845100032144052448388239209365543065289101076476075946089649684518412180551725308371811826076508241871709952542726445752814628599649220019925417503274286061390484145948666743231268709263774831023232331356564499826215614865742590716138893927281758026182963725938523114822057783725054027891816119946116470796258792339512403682699614417109323080550758305267453924173431721687915424883736164451866967256133776963908517114510664153045399435587948546227147280420162850476538461038973803431286714304258470649395354516311156564464364987437931195944736069924088183016028684143988898101473520059957915013487571083028587118852686392004201659002235945154809685599063754439797769529417148625007826793933800804882186189880375155797095494931189375855141516124765466094075409340748562743458599712496298609800238556029642453396044359743341432338222751879905599459880033141515774719203054246547100583003705920150835598781472644845248987787111510784325638414680576654664559156738145347855935288457466852989872977489382272716768606716727958655087362325284011268150346692499993647857659473395009156671590210367330171395018545109343381061365646560354207251752170540833168267035964370992795011217383981319609892281302843778924465741669807119876207097779781854595508259275903083144496087054409425711155177527746946348245857473569126443233634443436279217460613318738505002692746867044342460843483196503288097947730261475095421197823447324583897807774730205921705400737781594140127952180918030225925556438609633394593398909061005079289289447351605464692591921390173956816173166585064683814849770665886079584626501319055675257388583253249012026037913289540238726917541699324135043363821317696416400895677196818153209963264791984675209120205696103410948281441999923934558044940027169431957678247123959901577749260184967149907773061475310309203471285373073949701615078534694598146622513512438631045859040842640720533430644732856420447758208101059130709558665702037578028092738122720193428920351233323701801873188815081110809760894743101675926901023231022147681637300121328698479952372948462130896894811447714045770983552625304770435474713119206279249164723359060384559676503270335500301199600714662016948120111482626743171590302381871588250064989224643992864191673013687852635457416944422006147289966172175672301221794416970279400426201950934193505329069214935196171242056904578662445986912834619288055121438257003951107764130841076992354810330526420488292510607681330403113087353446597840185902645116298003981247153903641082934404555491980964072155881240333722860517191926708289371825683030698102130903400029918748505608267339807384119984544900277513800619537731513185050221944989024084051999657640516752501529192812138675971281971371220010209611052200434756797760809027556775195504373099779318389833203953970305885886086470833231020013559451106517557593778922923827039534339997858913302010599787125955889406136171067245066916069810214842901399843668915221088840514928022161173422919100744599637995890330731675070036078743797700568866433252493833193525085271156764912324998660783251246203832174250222306199432745807372045328299401467282571463147201424762784792144134114080424253128562953302304268943691639496849429815401695558995388312601795843390726219822169401134762466877528198330585493971978809998077052847790192895840177087932884327414136191650065800925699767158685565530900705801676814868482938661453736087653316886806182562062332580066390031247212175337126459380262380836170272796859013591324894753310120387776330000112591539551261386978965467782829490237980517020379909718151427266934115604884249312470928888338136546120300815393861653244662131050166441837510076278264539027141595209181258423133970789107850002629106856326800152142222033959846563858281062950222758392269841595103677857010889551057451582416892193237764931603198836093485010522580904475046523906937074780762448907020379045652563789954562733574064610948277393776710361506405673634918450132051978784149998703963136284540526439721311067157779232300293147486322887967086990492051200199262395788351537307139097663327289117897121520911205020972676497253904793664781023383974648739646518131002086033631866373751601151691527689324335724353872275119658856088278903750319609024907872142673029908085887485229303114295379307615178960535631552979287247458152624067397003980364012616065667069663470104362816526956019957633144508495745387565404531440398961974338335315800727884805764692121379622583021612362335076913286422490972460407135651113614883121376885889495852425402557133015587568834239287343790578097150712149643026660709456967303085891711443285899589853796769308795574840618558199429727569517822267123018864585719255312086316567693211883749741263188487770434820975790538889969675049396604671537121373063031244172879259543275363139365781153059459568731578822151404971101165982451217221114583702429265737239545471017769435412853557939084988668903687248091819472061861950107942301257729798784458064808377516060552243452579387374138564579561575897308310901930898370806678948324214010754592982735504082578857061420552137537852364727811411400377947156886911889775999696848494094337508462060005469876072745916708810462539018625997554757719057770452565705495437839802885889692297437134368815538562403183866493862969567400862763223475561089504797866474097809826698936258166726922295797460650076654977238947182179083310713936700060220335989409636336692215352183592878062373374155868802624697367939114309438802946080491032056734461348406148923552333463424805022296435684049079601850565301284968493881375159397587026860101859451238032139831408974657576625943125495509531515584450336652837347067321774376773111207732959842406673724761230885015316770092925320644795051533123044724175906810997885274680536061244044616348436128902254149881761031862322776392355466479301190095469812110459590429540195380844644646150946743443497142760978444329211252214388352485020709071724751685486412675368828892706054513176517590022896698346703183127558512360211469430932129125507771010371781819202538018726122822548386321382857509082972586781168054459619262650181012889001394762374147868437665069239706767011003550708504806789424573267837809441072624998164840307432871076746920502498775634222915594534281186526780815215403969656011028060701437221991895061333777241655190217538700770002703976382476932676467294680522577653893023643497014097084275756425149520169871762511306362938646145413058103971867941097881276727936013576025224387029712838515811705910749634430123811978636530077723117560975678678463661005234957968244430576304874647638255484580762465483286533045190787390206765045233004202856137624704033544805118556746428434727250038775945123711927131277978859307841334541230116640452648389824537958220318977549489509078943484785363839767961379882718659414655051139816964409116820722390003045881171368428446899992592605138033703977981261948478035943347694509177217005064796973682304017856890388587908598189731860445168129449030988560082213171680611455660268139865518896567053394662972888404012092341315213717465929563797972470530452156358824757857482734106249108362148338827795731233869732690030851441722183329060783093129975416415646210352546725906908872510047826420602523314340755341196400884497743591569474382853115196719249564552697557822471728548372295998930264239057949919764531349306699451528021333899185536959669881643531813419691967498539260118859022836816418274635714225103271451650331612301554597226464187704472888355065161669055589783044585757497484559090331491583789824373876724797990856669765042233161796924937753504081612111182526923897685035848513136118183308714481450244960153747064845088640891014626100205414899351812276941007802413790128779733637666712397375253560094075367752495278556330370461858192806044668880461367301304508619507267222874809458348669763090635452488411436013130243228409296733688046970887096185204036157002061613983790548091259321953183873131269552709151104710179401379124388737080419265237532988020592430823386003640889251886962124140640317105551209794342449703766621266792466369707385543382273917920117254759778631078019128730909229086326443821401614234010939305857482767517408168511487054134063942949448193117842555941481224107098148228696111330044171071521921135369956506945313681916421872620625255687486019308451463526971528362428670979336437268446672122803579537186887123307929291427465304937359046679738251088479928392053944478525459250474441431354466483785913044991530583398226038283941186744802759272250518178111355252285679868064772687230846750202210757492441558192083445468192397059601766965849520862344959623323872638651618712450449186529168159819848746582110407756968527991027864116491365680626579208417820066674077646059330473714801026688085871823479257478379594687798517102076771397839537098301477659049356012804553243414176673978893608533751202295392690519998610577420643181038546700541905541979193605238457057117098528698245699588813102402123937855836610030939208072915895037063279336826534325389094998504342889345338859937744804551983883292887620459656515082599872206025348133677046017123289066573310734408312999440831025392008352879222348712869313497463321949291938454736724491131761263787910367628216359347377913876276576163083299289584150674783719715440623466277103606815886701124167495434027375828856865304372665457584973515015586354648437498044669683395720097862839277166951663848131001239390079083069460493211735622186228926221183847791089108780128531135074046858947167151674081259135294543301054953493248493737276436751818426134276329799175729519126463520457885015915331540342411146547577440382263611790401840475008047278808111516530066262490686763836621504710292177804415002303928119489210325866591106859398584587945731600964521591131973665028359231480680207568115810444413865551025277890267973345856180261302378987654830302689693789548502307883107988420479200751781899776523630527813214664808928490355550306590932387144143794214280888366383163212447619621186696270130546174508257427260793248754923397410203272371820946238037634768091647420338921720789458927854118290452999724652468155981944455487136274835830658646017095495021128678222240369418584050460396499497691908283822787050746960657299104841269717815478155893391057612243503034003527441042821128839711606695093958023044611727788367862327435807002201037499444920646230102014252412379315192132902871610767903451946579486748202526081801660032996251443648980074346399446388245799678316388645085727975559728390759442770509037883353812301531524762543520421396802791919130759183872854279065447025449421623198452765566526601004266443271640167846632691252437712372210197693026871254854881068262958838930871619498792991094444757398892129582099096017752460461315976081657382042500837311945591237662135954811199498530627797973295385723644194822467375915283539470443949478376569818786132175728377473297094345878326121656907837617869312978382731555457304478906068463838540215696359304194012463412591321929183982880487180259980228163897643326627668496558180766547494931907100323327661303341803317915736789453851764642961443864812190953297551501058845070312241737646703457818541242417866399991971100803090673052857018612814028700644010754452272484419306220708810518709817276182754974118118792383549672816059747111983484524423909062288805992577457757333634955049009779309240417094106084200207637979770672612722610272267709723282508652969550165236350464311179206260276374276352013598833284671897528787524902570401472863393164321032823306197001241384240317395610927384503459082283347007682507599939170808431511561543152644781299559961018644458447332750823727856096416379493914881580958508534324469294924682132335476657143093304807843057788501426389707750964481976619112811864734116012910284287855281962730451193999562194028554803199583823054464004277285659628487853472626070522584906086495152841581534168004286030311477421296207114836869320743201560984100004978765672526709837789637286382354352223207415998091877406691310013196768335910149518408947857736589040953390582044814661227238625612575617696981570081542644681976575132622945271201539888318061500633907280418537717658798026358048960475474911737635331186546660361637658521558847333987187981872852604799349522429502403487290217014696649330087884875547866657518829685483780446917328529086591575843913815429045691193808398872978147439536761824905428319260020033581397500053105845066726199765454311294576003296683934530895795806988873388681087388189019358036787439444264340737999604379197163750740089019843143706569901555234730555185005140630243240881347361073956936586864433451435089901077448498052794739897954842177299122284836121053246476779792501172646442402035278799510409371278183742646930546140651676453423173325496719071691416732344404211535217519030890869604883571538009480789103839984351431372116769091840584413225612379957254517092579521805022663321328696771988460986675323084613773440986037559089651712481105126288405537843464515763685951207564897328441602361175483851457988939029119724233939119896923658898528021182843302220615237199627924204310022268653530934333227701945769526400277015357688720170249177800885014188370398214356841094418557340332835904684710440549678551770560564157046267558746637921615674930951025787136516024533248967543610976716204109185388020368225954968929556900936361535323500929905929574342891042509337833898655935413447839094114197709809211762540413252119645299844313329714800568433975160704438662957514782046260882346046081987371992541998878765845558089985582080065260018580206254889593707045025344630695950354646665115938587434047152869606312515748794126822607351227897147240755407056112399899320993206090579648985820147734167267614749816791634435770758596018696870156858675725894657587008130346093920249019807993123354426551660902972612430411727127703447516412483684581616004855331943787760032534706551124314927439760957766546533908693190125734295298104458143702412856364435798449669079806118624929410205684454249492901201602080275711820271470874910296570960699764599012524225667150105385641403108358845070030245502792364088114354589763855884174651455202775839035307932213368805224985764279984507852033177551946098259390957336442961189627875972786933106055451047365828142934029564116547205825734591441659826602634808981792239181132575844332390478491062879594655348694475982984577824279263568882373000234253286758987868081974268732265594723880544265729150664516865330725712353216984336328624033010503451475445097422885046716451060389793092026464719521872304638249328643201149281595265972324175812799656743666651357204462211462720382279886439649260534721780683336007125646522164545274669011120745831835368740359322263619961615500507606193130286363474124031124291642943625148546811150079879417230644132901126531117059456143715556111953943018789252402065992083483207144977816970664782652687528727703753534722237800735608480026037113703836031130542902590209512325496875849668130973032912660653610358706255238063153836062776052557107038611358167619924533037244283559575866628572525028210435445841683202866003739254271320168102066800515755773449429291879408359730494398181158487915367145679344457064763429711854056759071023509329353161535956577445499011819596943879930581740135959770347661185348681411626871649486532972927814947523319014521157189834537208209901125090745464310463616326976370822669973579771373852154706028088496521392702603062001581325629806611766798417810681688823056458329251172560227612189363079242968995680558593469038802228372687850516410411927373775386942040382902254450759034167890019254097289945434912982023713817071018069214695004264562338596693192540325778688583681954466312712645854535311563341766477841222090055206040566878305776930924120691021396485189355578141931138635084536707165950417978150689609670418072514471600663073572708793199167309489014325684283788648860352722344782900621295076955377031956993808633001833161980246419599424465327541025917808381882998150752992069354206346455132070111287912610913245600517824315764323795322124540441150461401028380767448797627893304681392613289783360292878998900847933976182933855416356425042451967947378958475170613195547656342915693403481265547526821175759005741878813387012716078686207122933951738557715904130280830438638791303417501757613616757884555768066498489836852537163977495623873371043825864741458683666697238341515000823585583983445897911556591544695340322986611906166627593965255797437011682312770794586039421103495778973231339821411243257412694459643727110833975038386462735595058540531204005195539466229157178189720161677039661125774055334099068477159962050228442156477795971702759741398738919091479307729347973610139393749939538386557741367439182205640611974236948381988015793454596882736945125828347265442066983301500440086177516833446134563189146002166431892152130283831824690390134689607003092427703060773158270530095043125145444660208273993990918431627070919985662493762770065364251913670635510767000295441268842989127209830132086286245961738694615614422377428456033476268401016669736659375887734920903627997417340696466926747780848974653459012542123489088605519470297920981514428273154142029353237865006561264351773279823628085014105095839158695507909380339369116194785182787882231601640146814124412787295603077853127599827226873475407440068477686560276345491255594130189182862739897235192550747291621486847959633109403360337490548828855046730223235469606484868036144803333629105414123134069304982066506116595523895377606700740105785716275898285384341586375413387441257587014694011413138164892932632674100500721762198947732983168035724021921203940114149706491590805954105361298104461867428587660321054794578028543743603840909128344926002432980244607248273892339719844870329854417819396384536081948875690072982216861481043034343246511065832303501096412127917809131744878345791054970763287151046030975634548309004380901299987217994092147495848897308335896224960134616315181402852233309021525148341923009565244226617307262608623130915177066322333000920136788314917550724684885874542785305614178271585281108386290993939834109963235730747512067373879227448617040597144520145636597822270049563279066130880898735234574908906582403530055573412677986148952298730812651872827500034504395818742271989548719116599067205306459431480285094449241066079418774045123017726590444270483576122895946785225000996380609948104193793209670023109604542534007007437184658447790817801012979440172049090128429794104917115745649210979872593950647310202894952477800938475325536793758944008269671819754346603743753935919750889136138556838627504866673582248012811108988700101602478229632712661486976407990304372768448065264066519442876693239510955027318383707670916492696010688448560177744624679078696986269898101879987399284282371958265742566615086480921458127212368721192740929149249002573536421819205633391400423848901669239989009513220382099777918162789560820130041307328879351014585217135274276551409866416791550026307124658902165776591279336511115179262701577149086899303344710071113452899156020101345828612209704073305622823357841851040464121292036213621957114795273790636242747459084456465964510496052670037423737114383465402704637876761791625919542413089348440294223234629051301558194041225893621968620666210360325492422404978502414474065343226254765372770269041547137038119585730951896683635320581503149863609334790448508422301936706892273744732276065653378396075904196762941523859896262670164452855131580259293301855771023891607183994607809740206469606924406851998219535850067471642774225088216953717080920328549470535378615947033415773699427065584799735713282451059221290774678341878403823351294372621726327228288556062033283087768765235103989826887577575255180807845595678622306616802799965727431200529376546795464249549701274662306195835643133286358556876967824343496587162424839321782842279766986005794086918024593241930620533867965011815790620525688792295981784967928184975394559085994982573117810806444250171067978231483792431441119609868331531574191599678862572239437437269362409348554886256353361322157546482157304626281323289486759754273639369604605106857464125141178276462559315446027701440580878200341959150056069055730819150162287205679893078356529197486680198669226287101080530688071864353944245818166396945956004944260517898129598196424465392339033987596059243847153578091239247831557492795938724884896148343631511002710756063538250430732251102633725889221296521036206012308210010042451094231798465901218059174549209492730503985159709355837600238265051863577333539709577844401638181933203235317319559197025395662657903537076872371159493130568985072623789365519424534456194036046503025339444333660253427423279188445218591484584671260300758429262634238732498765380610183653414224198843443444842646167953656452516573521299491352100561946576557782267537551910924289222172443674102331263806609637514747715128139371267745979061138736824844085199822108461292970822251263599167670684508190796048113824247223575150700680603997177650187456243243743075786215420742075928086588514216942328857312150419860708909079310141414994915421637478919493109528512981962083264934330544742922179957079863308384683028005917170305711974878897474580693722632410018075448113373556351814262756196395278001143315686666659407900765806347336679877703387318906459233713237506755818663970778582260756171860860714416867791816781194601696042698135721481495510952216760640127909933045236619976379216230735126253766592292093993824383198319252727714242145163933201395390609588406843932525632223725011209107915293169308053230442086806938470916235764514375667514866526256546821172607450688735931052619963643908147885957174013167907275173249831192837173575705842464983748714600357320087388105382768699450053974983161989296050744100019258564378056171268481234005508711382994279029285329081003286981274791698505007129453275216842280882250795372484040255811714448534609930986349064602000021359742094235160643218148606011958670389830817927996560278710672458765064662304979133243306430357245446005455819357532118459431912011897964331162827608902289395523989241060983548624876121697342509627362008658269953762667340753340997436710586757020014369777697394976628740718154185365093497715078596685446651484310363559624255068707322153274775875489589101363094380299789970039576618763864242115688279011263098303092401054992513899808766788211754897108395204281678054975666188883769779609420294335995026849501108897594057130267870181244913256179659735929238344818894243762507853042257895415335371484413172243007765119883995759281467280348557789929591142464901720870055556900526639871250185186668224400925577980358943930859832090840023536873817496117009831368657784268248480024209996863091329258614120717673579518636846868237026401405499632820805007094312232252784643329711360066647915669069774399968307644744488282223873393724123897691495789124540934790065636824583295130684258399846467827409079195531714153256786448540200398808586811169845518355323917475346079907426222148497111334178252266421332752695613323804138464214589720948968499578935423084275306587593564813620668139333158992625790552291514673971550214905212155327195700191197176221447449907506148767349902159861592609162700810914939594348634311079005402214192740044585996133789154561778281916168427686682330483564186151083818863146197018195165407852525918420767598899311244983885583979805533077177720239584182796631826772561740447381042956898519575662252466486543172661864041811082439361356845759626844243832757714409780035786187244311298209987707276789189613463885209322376050699649780215969261101604503744826205147860748714705699429206755523356523677157961728954484358290047963807425750077840764102219446210571597326095490195667055380703239964358958406743142988239606241975424773680569170156373223602365597379288124400235763425786609098132895316246172591617965138832432188028462413852090002418429514219199020793548250189995784310381615205440873179658398603519901307938941959815627264962246320717394383265886306216389199302375879308014470938189606487705100207467342783924754405283712799462656168849055429236202492499802327639009413841835281227047245501041984081071866074120289984577914127691838989772735900417071453484961024813806367502495148403560090608023153869281167521785233576859709310530113097560527908267846446587967052325864294755543116974507946360803363135899254098699350223108002133735383126612864502428086982600953192079427378765790565421135318342050682789753656839959535434176068055987158779502538310099435940935761612415303191062463466442748702489422257676421821221162366086640861839298766584716699927798148988049478134254597455160804402675236802972414951780750594258315216429949518245882453230015485782943796377151878538429644567353351530999581401686336840354658574119106210395913629898215329330090310750700325214192429115721332142903491729285273381750942315025411250347015296256820178262956080433286286252143837445913110590412803367369713747376214731385457443666400931862104821470427091128332464363463361649527930942534557299636125251655999754001246572725005817442668907840718981865330910916054899885956124411700059468183068933880503521682274545272072221459460709041542072858917250383912795009879647918079325818048108447348437963614020374874379572900987290680309083689641191833974779733941360191730792856010886191764109605262796070486451150063636195432672124411223779408806734865544590363518759926262846796583683456196396628124355926442153515010956675978197922578828801655339510693380075262097952754219082020645965812509702846399050458546847484970672780134394733143271387404520524101901208529203485828403745010934114493490746468356352048628980832177714280204984922680706140628904413001363057185736014392496909292568368699434711021802449065275411262045177417781301641186031128273852262377621199406854139918592831643675462623784296372586107555737311259563419751701437182917183181028720360939992631303987987506434978160727446103395808143497213025068135999135460167491908529655847952441179167704905139926598308665777817449956363105572993120491332996520717145520556460918303988250593197384761293485984243028169212309992806060990040154053913146426658576507611927000014108334887984272405165510061534563417939186742845612678865051057639724531639524817791825695111749190552151503236758010604748342409831306006997408039783128408325196663547876471972659950798896392646184630753350196108614867199885940662601856211310745854345936317528505773461800687994470340785681485449362931137430889597739011965667593714102488808868035534568903651042015472582960228641615678999042733792645017721281081896605562373499364349698494859968402617092365929599963400835602501785601732008509708098161300306061018711250265184497107429824655403696580075437882599521339777942601959171704160993811297451652708196467167208640939575161754038920959044433959595837633152858252853806567396806004314183902755719936957811692810194054628529684604613911148563312171766446282346114004939105452341855402786422175505197764852235643560677372789590443458413234228994797564592074484411299989908977059804554181576108800746827540964543884135336306233876854650823510797055147631427137416657947517739811792569448901945092915608631327158213442561345601261248484015516220300221467892024980395488381424948885975875818947457547109482868240173200885094410152895197686482084676290165830955832747312436954649445501178404892358546180134633158911923362613040457776696212440990087630236626360169027664291666078539937497779763884842228878969819976149784824394153181139548986453564419429042049239676702184944969081968949035252042347173332983332968744124957932181206109306884918262079179346446677992044458643067197996203010338795802385912008645839364476743628338087875953278194573812627968494614745571676508570371121728124984574904989897710495233206673165366015505625084294283609910571378320980833097007711593921516568212590597185113157480675182770586113091662620072228179156472973482153769826020845565268941547642652616639386865333659389935403999112356861532492565532802172067904505839951793050788758885772390942075889492491386478198833938218658754236434597111944339100621828079813138340544806847567809685368377046803093735736426639813533523908558964225588048389522000003720825772703411226879094728389938611630404723906154568866661063187576500126243648711056090355719066503978510785579525356108623552460279295386984171055357001612288491241617104520789269779051835731718773954401934525983127961847642550287928054086340958379644468327452939876114401169404782454257046896365028327659464765566189957217553843459069561250330674654603871435347413876157847381196285076604388843972924320017268389536424126666545890280655947906556087493314336800812570298479835567965334510527870887490850151448088605974430059671099352066452396177661017557924835413415112331398173730302295889040248071849272107067271099912330929759122593232269893309436141701929811781411994709125660638404290811632299976234195315673218437749811660330842474906112465897873111600626924328373874600816705802354951596717372843507027306274048727561371072934374490115113805927745354430334492371034260673985521027467503047642844624300684095812623131041282440722274100640728762257322520172904009494161163827359117797633746806249425850005673120909736257063652195375999971742710830861733687807518156532245913120841326028243564275901248127003210647363266419033277197991700628139989270777956262039069445032010802434206880775225667099140836852677376109421943774513372845538984499105719107277178650402366072197408432171445232224620259261199374879753678916626027443666467126775184835506954628140008046524032476197029117828869341954159136438144001840793798070680508191584802680454975736793487239326059905784739732037264616163578614041270459979612359191803743840082894556311117754986058863295542586355896215939824490537669072270787414439585872123983882628881524440311638449937756119592074779494359419446717497722263629180805574720060566751750999113305106528968087299618691599644493976299171386564494847852826346211346861052247424405955329687893486976988771365218016202556761216200628626370833132629384246972528311154760605102096699495113666407081516847635549714853437030285749574407359771037785006188020682206240845743338479403658150426940942634326420586200050043892453876955046566350353378395677307671520731745375283269543820998454820049456149951535959597252969174931576716155127878311933675519350199123498551405593625517124603867666277606833512835778108375384936747360536899191293296015148722437365449652493693001291600753316639809699221121211292717146149242386696637229879237497975396843697886631776043857126949938563438604889129918860325418016925734236602889684001588880339635407043466964122167741994519051367968052851771711359163313529020356684850559959694977877787296567725526909676276587045619548383987704685966183130938084089031261679286344681518330087192388174555477908110745780485012235022535615317307334703152098874982275509317984131101680229187291051733859317028817660514478459362357624822255154579998853002769414508970586669441722974986676009376327945399845761224868586445167081831406381395588671804399106920871775923845950018966777331271927851293951139345801237865444948991267484306324792023111064882148027531877360366209139911471949322250024435426641550762873111220751799568988277819998127899464858762563574120084354125022832203975224602191342158437703948962983738853009867042602348460759875491801647631531722976605612830702829881057632077515008374673742632970081183011055974249264218493101902064446000347704226516638526193435918572388375240503888555895204987229762478162974264530895967419873551050167146805727717306400079014344199420930411004695498810784733047927729226255488939874712130219868251754261489324538647784110616516744887684968137080813492744879436945291493097157893979896803777385941080239129836707869927677866226765856514099768667328751896079612683305456774542420319600473062348119403266504264060569389609790504611092886447852590179910262819389451873133730118084761218831210378263757696959455846123931759941574289261950794437961943228868075580021007796114116027094868720731495900236976276982030604995985201930435008101562698191455429623112845691252675076547244115769881961773182076706877616467011910023495965314117341752224030052547785444668895513509451726680641882035735836530564448087511286932307305001806011295907088062503143093007254301788535394689669413765440732050590424277008285119755017598738413903589735995460254686902569086279716524195693362907150421226305024926371661502553149995946834358990963729486178954618201192402946834006610734111730974808261278378754917257843706165416249443897041498426590105558092914471267133903054462503780488801214470489554682459086766190122749991833835866713166845440064231895625108284180955783998414043662341795091644433320819366262476632172811941846509658134346668101037753822554530289892815533651064597829213104647810506992155699218675744637215163303368768221913895565608229743000853958427810347504388522086969354350568762074843203559355780590612074966274834687601906970615629977949078099016344613828694625704510911363785515184273286357524286791887924251548046382082020915227946287973087177108648933202039562345500433799650600458994845234448627875240903075642234984689150050636174393497171966951056817084155994508036364925401381526888948208089059928901643787088065716654864171161948974386021798554536389708783437038494145521941213343767576770813045502951852823471865217114446171666706867408229922934640880001354216194558701429053427179383139742706821006274316294214937760805450252899308064468391708700413716500703716286185880693592984204578484178244916617842017621180674490367552305957290488801106135906405504767187356703172452632832710470400715714782019925430728732392040838360080065683765567460097440375345207333398245999387529552878884990133322325119120866313926902879639990199060430812176354142494419068847583278097196155620322184003473528892978180982794700224603598026199790441445095943607048855386053115180711586413064869566516475374111634959115053229430013849147468393573567673120192124310702023131362564726680694161731248374198173252571095943260844575562904415461938074432942819576949210379905741539209650739445165094665663321895264843948311017258670991511796138071891354897247909194006680673898750937571204798776754186949878236337948843535589291160113637376571537061130222937743803755803320593791943717484566005199838802116507778310351138251018895291308737642110140367840854038976317119042492025079876583127835856706502432812087845630443809137981642002423980959197236088621952738996350159861586310522564863995789406709634057134284289484470874096253879457794260900128973091927838986245361117712913109473036514883163001411865821679932337438004518627325352750017933708316809231900339775288115227765279910111322277125754545755909793428754535749630346826264195947128280122391170152388795422260476411712982734738132051438880221317513422075827500729901046597324157976061954387776971509237201761838346330798427952695870589358983637901929683867780520255137588963064431820755834697119282248311906847647259231713225453373259954972489192882942201182871132153655861436154753588056655061648278882343660770263597072099650375323358277468552415729768114120517344716802626765705927905817373326730023785799449432066321314773381109675154646922208290381124518829407051447686326864425748366289504148086686787526109750747483698641618359500588151676310189426824389599697492561626578410690231074655675483392824034743739430969757309392131670879443323938072520913665620557513390413982299822139852859700384530967157090951931983828998200524390155706210080968512327315436691195045083523729420666790191709672232718839246565717001396838145759738127385188002205525950423932906444990073215361396776882630120977442981382706555295705172846262888385970918999141815439732121283608224257705038248473295521928808731077487458854970249835455333350175540493825635297122997416288564433192509537460707698245101557066611221054848514892838324332996659988591565571183637446237404641054616247530399880644261496316164405333116799710398531797801653879076325200619427467662718052388080845989780568572732045258381455829363718101432655648964353089326077877849363308968539518617381923413970728893686682388874848815419868677543946010929201540090288701943880986620875675331969858527334212088379052976114598579088593658662400259448080425486696629689277512696675935407887448103626111441319505334939538268766005012670006913329304802648205886021850957034625366156702447233405139248309572989818669986675114555545909402180389824281440113957189225610076706152768674250180660934623848828686281004819258204680405452796398434750399679176766816786149359807701956173209983938463189016202255992584244778979243633553438120248221653371954264531289249593805049986774270314954563964719421385957791985058048266157372492294198369906955126350992574287745191216504674566224466154776525479968094302402209053613910572102245228875638276019317439656647054234463497109909224146949688293456097222760435397710442049796707571994506466804178825603730692362392484301860394524299205848432645613301261484608910675623148512515174062239618059489960987523438046088263131953412370145999467360209613570510239446479452500089805971319168835867733110935680376575509477538242487059272717760584327345247006282292828318774755095438425611243152543743117133526553127037860405202429085431271613537285648119049620019199387467645505132470849385256394010827257400618459687995634502208098201222148098687824564004889244053440137685278881469944494472015486168489249230931809046434139903644387186003893937067396420500197272058518670003798838508382027345590779906048735597657914134280430214248388577984831357069961611274592140192825584776511137758606533171916136940695658708394389609476555438146770972339747192317098548164857888509232189290400719856563775461684311078585112689424641788918892472586069884013674110780169108859074061023668520449654128244583403182936523593745394329563604413608460619482451596730780337551035531160700825612646412918803242120852602552480135397590564589224453068537527266391150266171297979476025837931042319454699837876965204520167998287712926922604452442878656870986599070809746420682432731430804769480190091494240524669778672428668092690366782686612150650391363141782460419830056261234963875189878625195219605749859728986887570481619307343591962837270626065752487321912242977645027077445442873056093861060728586888548592491792670927144216404987755178777953774173268280036231713855532783089272872626582526845543247267691823958385023822389705022982019276852364432661254300795432884013566706670182000017722896019244594532656234675089825681757851734647142816531254466812500956956380650509733885659039973208462236864934367540034676969965091165154640550245006947147653858601682411389031208873778063647575542070229751150385871348886307726294437011913998762919347163775115819567618311000294063467617567379813267929548941353612335594086507834795399692503801563443455463597358588172401603309019908794426650623280988891079213750526410104865455399878007087390836786000687120689028461263332209274586686227912601830513057725413775116050988062018268278684246904506075158296208052566224300135571541877690276142505874237325975135750033460334422830312161580178142080468722802092265666002442005477476090552261937142786927768064153591055055018949448945244274139200666234919705523848361110966296444117660867765565585650164752937255931001671547684131101776397069498745636200986551549824677210635369659466559735585293087189227032143447466752856319095803338587201780065500932249540443327682162745449923167576007345744864248011472336735203920122143500931478122282155109600365412413378889268004313698610063266910996598181124930701542301978759856788108703589427340178648289616465493429960958069543504399273075458898035131423608063841208071870584428333376524151441816564726133454936005420615936836026622838166747894498193212019655152216072219160492873859734558632383588247389285371577349760001412011023586021090896641850458529773597434976184382649569837629744478829889850412037780666502373139416688167449705225522008690117995045193146890363479273910880280921414400141377666761562285950775015495145739687020453147641509370256924848791818227892986214046826637209552800369165658466213766880960070894638624994025469242134529624554249286873049973695748745980520606290406563945135124473301088389418275088538731716823705374374150650563545622717328090854681930744562231197715791931696139547640554021817168380863100031143147620902564310387965783444958760830020471302563518138643097896392915544359631113057694856769812468871323106233792993559119811848921136927007792011568372609664564904426333387882519832473488164775426475423437837972861865377531322425536581938735307405279217866501546766023662306980052797761945104763557258772276940166764945045239174834732721699287783028326685869605843678074300610126508157705028006614205200879956221898083036039588215465386766412584385096798898989676535890361912331455118727365667434821073212976749822378388336624628319366660281922622022522017922839881317579790251213846655331000309133076488770982419958695146738312369716348228417138884695169383187148246901488621480132192334605827903919953385903354992163462250547692973654504731350328924507637187165522259868494859309287587203985393777615012082152338896130305530531430030937683443430263868467462911016973809830756144064350434260605173653936085138023013368687220680238534199800041949248175771450563271165967138128079433323961764989320899067641564758572084380218529337456931518319439351534426209688900901889189572850393377254511907552559087865424119984852924602493632706196242302381375729691153927334987984666658534839549335320584315570514114675223403006626775895659411352345692926503385668717544647866649592495663750140078011751385710662265931799381102836115727241730734989368393156351090102081529260620288397427999039106423984387025161206344406818980162522701755402229503318537317730211025689010535954501001985395199871334618497052771062624988570657578346667254541477030240079258880142504267477233286445870281431539873905334581005881608015976671934330905477207308778072071202340182192778444189365774587650832461892387772794935150449194779251916516979894387872452034841826897577128056749036053974216337966701885292184062330135034039326338368201967274322571451573781697251791925464718580828948014384820921903830106813312986161529909065701667412346893854447996485728888423714380584804702832413290729417404463060964530889349275618379652598284943554772891583197889453802178341518432147358961006663584749712128325293182572058676947770938951245214322470325650021921083702995505328998343524896238597792637804126204073054854906899929983099044748664237566530468436390335327960755023548304798570349688763273520439061176790176768361088488147582782403399551192066702148346434569905001930929579294166351489571372269736144983353808787296499543047848082538117921532163849671924149349598343991053762536092873357916935331829560528686236086667695007549208540538170970935776955222541257795788438550608844861517733611224778754248300268638575192396091029973727650683377850090964455753669738559539319724768333749104319116712671643049497999207273557848872992562665181308255948124033494449572006602538744389653653491535479534367503153011088495767213020108871239346346415032544449323989687756796050519729246019210339946333617594384142252343790923879088588791559938845588149544496817274471030440093656526618905714873366443692899807310228782711280347699214212003781535867726926777757031556463032409044621743431529911617710397417477842603993183833702893590773039053482895419500221729044241316023172476365719655013361294662613931585254718191295441187558662567534293856395032195299463191200493131269776490870127955885404273494666035099306478000675768063031881812941210566984046263027266226195051689212884422616294129648882410441706553934582844957763919102418721821122527657725843456389427781083183853149361545043181439260481545972018162209899778026876467644041524192676635910341899604300423234994269425299595608884393884547231460941559582040206551632725907926295164166331171292295181989000282303852130684471310800849750649757600599277874248873977272268545631991044055193557596893916582303229238450823432148542467181786867575830102447903028363785098885665416139601847090416338067992634318672054706541297028669427306190691636600500508788889032717509320768818030561505618447277556065786996259630099642538454443945653282171606254656568241232472619853468204285081284523742735046666633176624704118385507968910184719516827738701380224494587725432943099156071766962367104903832408856220453935919742486612844894742968859498291879567007359155988696376712817101228091783015612880605628342529882326727499882638445395712071959597292503720923888508017301290316721724579583870127824317735373638969177799866727140813677289330698496691865803752787640929928547576084600080368341762217189185771878829468137734899585648206624564258275106482369784438806691670707726937006045638479822828798605661304655250064264581940154972525105014857904383123990390544589198840407045611032460657478046793287342360373670537975464563307575885704811375168629665469412757839892234295796589916567188298620514137996206799532768910548093053293696607653796268053066025372025124369573582072564577924791194141924817523852844693987093409570276158315638319311196322132120866406297393035838989717336619227762941958491365789297104765383163417760711242334455641378845714303260584400377472836728193630155199289273944869657073928680319318673241134075724269612698478238819325698993463491265280122395811074446365493782433077329386921828695834396236373912920703630370895017395335245895840662740078442779901730379934039049728430050845863074510610893851125407318358189991052802440408976958741425030228549257788294264369794119607990428103652376401752730381739775672708120608214527740329472558036999464954574241041778117302723282743265811531082054979182179699888522060009538183891840042394743069431753228130957029711309815938032183774075638971638289819181177757741175200207883822643718188723911438554308838294760180620833304041511824283917766418743502850674255539379628463658451171887966483659474558579361684307781445996316825775303287959516883484809030369868179978585177133401349415682586520996176539866152543772406713214508782379390826847049140645484800673468217752756492966095631923350378025196617907338357546650349919058356842822289095929194357178271574320459982233312937612311951770028792649382927946543313536063631445920360815800444312235947549335694438856060020899749742112845105118621043720822132575331039131864404344013329721561049506556949730641112900767344115759214458364639081214781136190657126333278553231307498055097948839538527971994919098996999473316611139112990301709735655020000975636685815811487961789871001996839481308694518692211662623075563687522080651222323819001078348142504785226981699386445556107504817705133895518952373838067398786616048743419937564634647831601263573548116461916240610120826296724670462311725706448812367496516082443399688320544528864836873669851286117638643716600987826212589137804995538157332826750783485483718716099800987976353447662975212742411586434963492582640612768750867345439765230355022402561966902925737432226271398705204713973872546406465475224466943453428068902407222815933934972462580231269677686420307809881944773783426898339856216402672849452608743651446270447835631265357565031046545003188120561271389875751889338885791278871909313138272463860806215179079742520202745847058703778288283050980440588531482334737182448313302327163272971721142331047328450776865678482060040656632714252795443725046773422974898004348071390004659877508537809747963634134390244377001772414545368670907877987485519909273462608248398147170492716128686045172923179510691372384230420308001375055060394723277934602365470167811943851322443251416902068974670718308066228153842245158329286115835321285834537795024244791522892873465681859919012648237208634533422185271472349843974888511449078664420207834784367536335945263577539792138748538486272407937045957319896408676016858673363369505851983838662105555811397963323448433315807770852572865900216326235639488104557470006002702939012439369950351784163181328838367768970352386629176904825587313991947165069800206643242322037132116097219312406046370730434950364812586890060931326304527343488907825316243090185342712521181504677858857392259382128730144770855546691804419965389958096794235462754868094316504680805052147445489333724538247202632966178994059745537438488282098283597068107927957362080903076057611233397980329230976933789531219731982463089113246291064387086546998494959283005353244381842162021108324313406501995356592631769564260711707057732734221526417992117133652315946370741894543163776082035921854887795426560768592035420595105121931559788372549652339309442227563967989295183225403979139740161081503416800121008122617894836522290814642693472827543437285017988788533009985505957178474853147559191877988867073086074827611817514562719736211392680831450271911924779171627177222439104461735274214579747846666344269442331803037582699368967169125219618676056891745869618948739490795756296506679430983606895233776165114094548931461846430985885867379818902850799054667408732119020325039077213464647802388163885864470218677716654626520007604789537585529009947274277392968071781377319601538636779849168327864823749757898025863690642313677025419803905634128402075186859146906791394972379175220518848425026399862732577847698212978461740321555249731526480537073076941816899909884426536876986332664505850511314648674519142265193138644272462779465383136500057076978611611682756874672493701578275989551584986263273216183988215937568868191530584358205905775785167833898394781650820130682487082836034058997280781499186938468618056335798005724912562086915063830247571898590618251077749031275404531693027042943243345189533117071790719961224836161380567565448691379174695573456947667638692802618835949446822078059620342037556659118562225881218837067135026182833204481131625630283693302149050341763954322964415634631801277261089030228457857150593293445515199243915473111765344702711140184019484399116563241941965922791116081531847543113303436757344544028030690353220724701659917735439136224191981337575635222135687500941238229092777514618950665237069158816692802659173740552719732168449978609213594308656291284932264605598632521300675414146892078357678330523839191733668156779724034887451681927556293754366803371542746967894433563899577259952983424945906591771495795661539468518753082676348599309762743235678251057584898446399041584343977412722460863926222805713375444886003097537451331817409101182268270918811623349133947173596537812515604946494969008909239079748386003915263429234484501690018958003616126769532825838787291804643338167032023902377946753586278891486218875204187098412867087989278203861785725909130875693008692102640137672852721466892796376889246326547042368598531983129311901920739448089851868981455525213514844414162864070691435307153162483456342399006309454180307225514078259676753543228800320300730560188250737340420201261822597553335066763267855416600496763693148681639259716734277349350565857712370651220934739108987892554489724768332018140544259754638293774994857542745039315632203369042220494000565612364906779478752980137229479315208174880514253998608868497425765593317219524587207318482368480664125169078066348690333366736087177572863754538199239444927959091327891660204588681113035900891010144907909297510641183982839554070324783318290454610644883478400022777713210288735781562526580414994504018651487187159677904270718062608021386032925307521332204307868590919131310122184370030131325858088535204734314744994032670473310582979505107626074713890856976889610505369966082624541678051199443091965805865720560844500295037975902341389172986046201777168745680983079066198922063651977347750571969779077803006527330299068886071145441249504514210451291141492066670286094593921966238693536691884989657794222745077476758372509689090630467845403115768463937126162754420264577668962471149486395381003385821763895902639154658004936309116070668312967292101273592868210086197027459155112331292310787975730233486741183677120992032850703672943404655775863960297008959247880647603636774120240267517583204733429372503496951174219328867623129987044400051592354663676602798290340063971444380011697864592151778566935309063852055184287529522510016782127816592176196412494081407715297378316964438395652117395344176572718349158383323285169348418448088976685342335328726444360009310105807430865263601075529094093383281603023240592218427887983645477072300863769895871135309385974939931735936712475325912642167690915454702833402268156007803380597058883683032649109782228270298741744058386714009362848033966205869723056691152886302133248691925149391767852194915495246623438579075228836144591611235101532507555741257438744144760558228675816465405058152379113317814592488777942052679378736988991005111301605872517931406090205124124637587092379127047214789825341602600563304384015191261547204758564293947431077991003459355150193052222667736123135683695813082849665370357991260718266928122851400760250243106590738141913099535723278522177535988190669826610816131137691170494249832071429880754885030633085196690086344370592692979452293131877255699820957577471310767161276927174280531879001944713464217869700715414785522837175941978882612325693627512077965804821883623565060420038110309901604043937027758975975099260449391529256825123618037955748170368537904386842290895151247545922400753526535827757289523368818437236309771764825707075029885701474920533796379949749239820951556334985173608138556616170721328965435583399729385709139596137851074050331941891123389733600293617267587423420828542420637407114992344213230194799680612595855846177538412180547976046890137359051202041983107006230468588818086688362342283646198546568547530454229548610256648993799831957666318514577787431626804821747669927044230416928587523478835646072193506848457234428582990169748882002690709332394145435079078230804821974508773143008741674101556223407303941755774715816212446775891411675640495085726647230189437567602979733398735230598636745464624718744188943708501464636056237869673648376382520923283825676670025144710833643499851382679089610813428293563215470685947214262215562878742954823867033534441788821357198442323027912223178069768449285080348823469835074477037468002506002723460746712240284967478556451296482780824740205657067129122544326559784562405508103952682593533743952298998587759165857588867509450303002719679483629039612835262768584928188422479257333811285568797792093483736201983906105423389140066958974369710859745225779836857943081788308737228070966267394231080118497496896508794929682776630223709392484605022666162034913638457277527816806085416830224423656121424764524371432606474194870613760817310330919671688247420841994554512556590561332051822843271554057937521850139699347925193272351391903585134720955291026701761970638924281909864471608010847314188301485529243771048440428824548124704259798409913667783875780422598982882413951375674903678691144168332599177447959960609591266198289972862574678176836165284115425445502284986520764895147686408054812272924256166800025626669517694069766773406863454116848038025036385470412363031299726873630057052313047467773009355231811322995432091812967883059810604505004254565950332975199857427983040905759058609066645640464920547393271983452627486528302149304475381297185938988643593446270567371622424230261749514493543245365611652146895183013343008341238662924352765934227144578215835709293152208162767864831035980516450261548044437820769701225783405961849123616256715014698674640806149097259291414895222110426881205810253105260685224810867179504697487567208756842349209733739602543243168205522606282044109926928036035161877990293749078848385890428762115121426919521998702799787969098748638263568780062854503136359504058609769835602862926937865971734858765086576878167859911493887271057640214701712914679456070286721539322250181440336801576702426771568589545615281048824925699495296406548588576108428524350532401700988968224661507413059043725544231791633491596394072279755972574093738705838725655731977450156763713078691901647176143888059511931782309830616214314964084707384564238633915083294355137891854950823345439380334881690599246348085820048066742782865375361396737948869710976390305881041361869478648087655587085826322800239135993430805108767992646648852869787562782248691435664582205403665622347187182444264922023328255672009874502988028304174068203282627643004946360005892178901765330739222833601097110318099103972347451101418120131717986849141450264610371572896550706992441964978421207644553423119557906059850787209889313634593004273979597045076446530640149283491146577304776190654318802148355850706373359563617051964521741105185007251681391804888084185226822283948447741432621828752051055744700602325715887401960417094420680611842694651654314893936132944408885656510036237863247055835414704130156520191666660355039989079948258855727494807275470742677684721572911726554148204837085908023829874819661612037680643177636705548618724077951320474160971156306086093641988779642320141454403247603313122762291822574952051701929788004901716931400479076910714335845279349943707424030861701696407912174503939939117600475802164957704482654687624826454911713457994444538730239446783492283040991548928645144779407636414629541424330002027569552223995182879242965463247285590782133339266024548273585739114505974354576540399032539018945822779547924817976180884342914239735123283878367983202654561547481058079376072508683994346497302921108067646344062641012688275025585150110304238671147479929503039581173476335869419114454255100622158042379500052572145702161096659941094351669399020669726587117402537511840451978623969338006989857137539878692003908358322010559778955917028790135410571505810707210516963888720574319449193447660903104474545581325429825639628209137105505669809098020166057538916028879868240362306122877285617835919648704729784610960362478122606858392345455562684642927951955477175715686988208982001683228989310535110267042051092861514535359942803734670895617167196960287323242506209175294462616934268355525686388219586766349747136329856793982648548485620522361124013978249785215480611867875077470097952562557289655066337058480215733806051149014370775021269750386177005941385238921492305046648081948567721839087863172132951781884697561740913253322320338090803430187347056660701366656273052928808943668303603269155475814817104489461759161044349136120880615778923836513538087376440669257631698007192760944080415263238809855167710241627663967537953634548957457726741383403770789547229718203248429922941154579137546153216523468201699965153592072622090908477477345914509083569550344345241418260680491557086298092518546485787029044736558577841036835707459148338647891818424122395302696232469402180982123460691603943280260130024740643091104027005019101020708588822516810078235946795397367787068609131574759609445217146031468497917039422383304326655103516731685448831756881435358587706505062126248772998957358600082578686438459804622273708131303099525968308737182907709550080629211964525796733016030549329522205525921556096266335619106819091671048690302556046656817180660906350575003216409483295539391280383362435520376766313302901135102413451064402722820902516264138734507979444288281699701840934155626811474570546912753434922252867780331659722862347472642551106534437667554327546703381198196295249148570923667604307905757368158925347730998020488227760659914202069028880263723407733831003178003832727636980824019801695613242917184476663341212488366575342624555785746771495639955246032503305975568901785662569715537812210849655597526877708915175386127994170083440950703009457789204360177795657949344887513479268358974867920369640189177198918940997274566280581820444591803956220996295600942509394960223630967908095125445800862180607555318269616618159892928850193347585619238109850624401856271965951680742473348251242098367679742445308423131815573606816461419655777623891259141530202030629762759838820811323494016939309189137883384526064140241221365859178460993603878476639708005206897072404387940925120192765266391826720538526387389193645350935176330270563678434408962602930079011228278585158573534573102603489071212880387047434077825542533053205646953104996589556087305764750239642213832858951153260600053031801535394414352749683900887367824985818164382724006367522516650321749196767612381448582405536440265901101798037381550450908193715917443983075570161488469334024942697235308351510873704343564546751674977207915635037700733671386504961118710646396782809343239894855780600886992731425252842554326093696405674427567653302105561101106001582577476900324760412909666076356116274911866930694974434605624222120796989004571215892015001982516180178238156891341394664421712299646766733735548262375452359726287238033840853078341263001840959498948429328702496709088363099077433183687466736976539081448426270352092302285888350634886657643054785301702677865804562577045171061677446474733792520746888722244074752439773024835180552270315375618520508976301976150585527647159694648207614026858943384711614434388577892119328459187644464458537720506194018301092117389993215611687861284654272070340578561529717328823913450713975537542280465734247328222793659534232232885468782592504565840827312080769182935147399077460351639796270588185143095695117113911641944818967960465339725347048191404918936587748533863675182655703734210531725831071365193251410434770971445885949378575151494257494506427743552465106737503583976062591659051583827209691924504763771916951746092276043556203556851931236323498080298864016152689232489347098120497319955201693541431714907769491496576310931637703951191155824144974689028597672692139223936256469179399026469719900916167608596862270932996794345294974539857916811084458350414740777000066394728343107649612342907937082284846674613391611147211270939163645236382221799559479978805756143518786410655566211044474349069965000365693195967496858659297831866428360159708034525538919265908683856179878198086744815823936828849624102783616227824034532828768826307706584422883441044995367382751187809232762879668439714860343912435413117386827114666179342553947145185561424887668962798921030086888670901718281197065582556830153611833688315057672044624350346412351551077974935083885506795153205233264139981985269014677491349106873838863138168995424299004443109765555170996246116497633865869893791755139738614090010750790835681137898262773547931180506254616035556318140421027199627987400481610612450194140214009041576421328686471990487164638178070636431583488877503853181929156981307979166921479524796592662590330393904301843383839011115521431306022332581270810777424369829346634427673421494012061607702501258514943555142049804342082468129609359254694302358341710523631824034454626961720678382916663538350454830228287039927018283752482319143113431354205378810020767413524644998642108156452126747128994353078360437345810358259392656016152950520918361038670576420692465004104964292786234984681258786163675830575900028129284040459164534409489369623966974659698677933930669343702203189165710092485445553857068080351909769644308733909426100547477967452110922587733148987077566246948953690834109454817185824829359323399574842140238063200616307861342244218760218386295750308964311154193774131560867083222788838456689850334996021430032863909566932349114681999746156629100233762142408086901968404070701869418180947223831394188331660781406735073462741405252567830019747661634349984800947481223112958924102353535769606563896902733199679240612197949447509493776014823643365418162843376327398273196462861277372757209402371464832097952109983761125112076481537240441599380025297678720325521416817629298106256301021024111286385402103170848195096514715345270335901052694705074619577795200995769636585519670431942799611771672224848102241336172228536649247408583594111679262341915826574758483281456130963916901690800710630129685757380125784454219943085237836120978187948855188157268127078680909750519275707474909399323349222847521366100869401340952790068177601463422403565822651245502537526310452344200308273266085783528094562139999604869732793160743203653809929890078612465544594457936176927847929911615317972637385397750414803321433115999889716448234126877343795767983076543292310627945733153119605624529375526889428047042797348043926556735087089663880205965379594782914916056027966542349988387545731828388606229419906883834742473677498622151606644538778560793588913374504738191510318517924526173784809090446006168687259445321026582659035498299913524986798824841030654164332010998447834706248959143340380090360297552400324606758159528505733916471296067807328183164301003712242834821718317680381869937412319092327228802426218181185153366613237860207307133479206702739873900947410578445778228808943995464838880643128314576156730255388856198426235086782750599604131282166609134360863642293640666115574622927458171893889389339901750994211495170412685806200097853559385248955502718401751008928401057662937184489135427947262992509870602391125967626676240009206973948438049497022638758093067660040297314070544806729667087121520368159583232273434357536867125647338685970781611224265969893021385711934524582383773614737450449899409876198732517139266199758864008606350568981337078566915721116425523225679020136568339471627284915619128572842340730634299289639454116638634673019930018004897776882778665015375113242257804899274783655975698979774351954184443513730721521716874801512000507290213594192492032350306961735077928015721563700849571982520508923668531808711771596491792641285490019906290323325728459916011884034818401545218578661030653780641448854439809460029107229940917522927901178552411838675427569621905374334253545555288508577691764663643775500985332463868014842439613206786017741271980530898874675226769590754322618794410443634946290025214702866090490077114024760040794629007142803815753250902266500281649503887891134090658989237883131450182674104611805112836160540851021705063472928418100973131646939427562110149842432157981528167326539041411166935140268456755965212767583465128739919209982823154819989214557674743053598652577205185957276201795134942453797828082189957865119850868706501227704555070779891395008111693103315768836000023941735988700634455667627730029468346040366282134529560236068043992530067971527348925492969470322625959321297774745886073551507378063987267308216586360737416042421659762887396765269560639085906558521044595664502794371624950306757847704382116000084517853029207727459866630471045362851327293187831242480343923276031816655002069977830274815568369059226661297699726918470140286586818780283556012636172894936611474456212180135377787851056044053800568622038580408672772277853439453421133667590607986171707097630794139331181608321743571453509721216121699687423060962454287268071689392389506147030584999944023646074242159288902445669809356416888827194048301332766395072316630129989260997835433153347113937270600297642428531117618056534810570148055081505242641872905810017951361065706210216440873691926515544383212475866081819459525552311014493025082820237038537667239730822451850695979015168802454833745120363382535968290563522003647628457635398199376907521681431464791489052932332122027698010473133078951037495406516476560949788509162208945056114732207144366394345602231305902378027233707155466613859024050619050339418755409864259214126043419125744566366445285139414584244975049189637205838375963404900751836152633647387292480485189988028432935882633217921464310926985481105450740291382549250546314638100599235527917684721660415347432666902363647495731451461792763630522133182329983162878517688135592606505599777444209076945280555817397984970390378308429965368070999221015452791092027333135370044885438040644416878873534971406909692123248547563140710609984123320731425780305751615071418216294199893230342322154906884012678326349756703724893412457097426432248504121473248744820438200744355012286275865679521449379825719107002110721739245552451259474468355260894676187411221325885466696442183700406726096232646034963966731397888177283641870905498720159785814144815310469637249782839694040655664164478215553774417385678900602070452312634244253769302820054810323142299335098572082708633760077738713602922571554367008845364982999137712758419582954712993005385601315039802648362950549177266547670661582057223147705503102747468246439531839207623478282616262440233097149370994151056752789369832060425883932078932571158035620898693570130354854664910460443143343162331016865886935166718656063369045106389372663694432430183419550967841022522850646813437039663369525484558812958817750589516863223523229845498668423339017681610408724486202972562912304860238426640856352560186379337986890297945061857708156262594011883085052143928849665265216132921464693734489422763829287628649030410132373207617187489109867662045489210681598704202945430849753479791636582797636310587724523567135803689321749063215334753241392661698929777491122981602755326618147907250683625211288475576559516610716596065178368356776675081639729559156076591756901162833863662628951802921529441517754521997652074312783340518119578195995841500022555795841811447976674248790225301522342302931857185437007659460335864749243025674749172508912520042093818907238290780762027631817616551346959387921135271516119531913702888187343621024909733988322384408888358713168309157156514980689319774438413801843370990980548223845432651739876714477081678660311758309733366576035258204612512004510043593484694723510805472209969506117053845670211218638642745482945532639259915458858966054668798520241536946285211027893729709998629093596297437907733059243593939324158991849686720596000779408105838188097330198680110520366709187846910998908281873504289947646272045428319840942322774075541893568074389365767135687295432267995363215931704322436782160375696346607029433545123615051225153846707771865138273893752930687323117112642513217332406927945304463147478114700646220005176224908864563167146210460499797374067876244204205167380940723372274838378976166679540518343302115805181477745145350227616977049548042523373964733126096236450227804699820197879736576531995514089619475103127416065848019660787493939574041365975177353974205452667449034823498818096881882107001123361908910847427395265098192727284348072883983355387138230987140011163096059762079442236511366766989091028682566721024474007253800405025119192668135354054593671675807591680403587767870877971988294904221080096256634334666987427449667325122417966098182600110982471052843171779129268622483108915407165931434103179249714006489268123897419963934357733951187797777505415268017364063158393233444307380730126167790847046538732687220813884041127569809700749705786826450612261182883755290295128885681917833496573030449496396269480370561324942528480249471616863540256059041130394950291231188552332026235458671857313324955385109373505985789492922992194861421479556283170657200769701135267245191523579943803413731854792091191802618399460550495852640811654090844774081028345804902404377844820070584790137590963879889964570509392842891505274343906408052122399842271029242985616711748036126929248170643211516461257225434539818363031600514680879639060491428365974874965626310706984717864420601923656757395879132575326960794218484520518641179339757403959410167890408458550307254161099106394043675378474145936575612390259557368336489582401021811297981802275706857342625113525686168643373927470609430959473305283409760073303450533925393886364620769401709944518768905911583891947536644031445016935909435456994627733459727236819331196840894499232085307795190414479025076150056374951451302231223891911219940474069838644118062175315526953876239648242307508515411475888262610900839591799248607166687193944886592705724535686629306095910312426966247946567271612848839820284057570182100357211061446952000033753793544719800360777885018198755735391182599978080162721508661590486071343764672195806600136650812753724024473738626819172460908309085737043874127142427890552851711199635158455889905345581356957545156613130899554835954404432907589587190931863405581222471716613373120761673549952191198887697848738642516431240099846241994007199855931731533190248552765760011019613148459958706791333240093298296118775142355204410061146910072884738437446359694226933552524408511151303837322420910552494700379738747399844601598837587919620331809329207698952894281901143222150724824367240868073526345927701515718869838535916660278628246598529374063158111738021202342088035331245631210514785758412028501279928097872514976114066161713595598912272906875842502130464470552484477773949773735626435688619912268749053785426417613954994968816311773701253210983510987804309487142898051941563343825000863042691752245182555291287772487522029563051067185076151247992201659159704202667959873005901518764512886979983088613416972378546494296131853322390987283209549417800742228727886730424914256545985758012544354285982108191286977911532243791181186857186525298902721638574216767719225644072738748555419610464146630860935483322884978268071530415639854452382390329607059739668965475711889549262530854195553298014437553472627316046991076579072320675052088526203323805976933309090862015570550475723915041800438615769246923827033262604962395265464781517804213370871659748467801229398041572189070298691139506740529352061992523706004126797205915775066318181839154216121012747817179738848051944689773258240058690809373291771684429732777003964318048700274941507443501339466565005968055167889754722120786163828596804259843975646388983046455727277945568587447054019713320634546430993653909758360988248880864501355571477363097623788288778514793032896571872031939704828326653549970398524424314592428030258473541665691931197633678612868578398085862872287597880972489419297304780036057360149748579281948670351580617875608353942766786415076804647224397427911072190637465347914021752980587295603225304122228256012296223439631215488265157240829018715291732774855640658837278042841343508160816162234406681926716737234871524852513477284887977179783161708502780695546471966273150498896672572459734531395153852749234475424994442160227894031338180364350469610600990294596263102099120953508161633798243714011927931763666010963270932386841810992409150537533854885808961668216553160945710766289219870703621203112710854547152669340131106309027057107666330404141979047625248654100962173544089375273207360222184650188155819596247993870489687533607282015447478092661817662247744967776595839587804130542275326147264048883975660425838231586833375403844437265618860505749011941126766400393838617032065454405001591936576236188521079509780451907281850486903282644205354162069616612902951211705341681349205524391753815869150939541134600318099338075272081252123309594627956654307961922426401557533285124014294998274000590806087589783846189406684010755227165354109845657666273305455781729996691201697372557527511258727225456251397940814846865068224633296779400866091569619556219154662396565990181555189067611317147264089261606451121277499977494567471600277431988784841759062979438579450891543892070721746387539979802502934570645616172866381502025458706298761852887075664475681754828605208806149291355568607097060009298889715670248865986153309585375285512533979248905857443035606221690144750921081147678204671667626277271483398034560559746656261273873585603446366991637041709146200813477364030478433429239628028587111866113836926532497040078170276508007304139095131101413076274093144900212301972937367306582148601292707758968625192202025197266757422091250667404696721667934487907900461375618115046963560544673665014776052542311236564859068748008465412952536892935628948828354993788051302231984856668836762301666441302993168561499652591009173506865752454434117284543682694272672813414728032519763085930087443947998287613957840131804047753249961130040007787264034858243623624005659794677868850719562064236995569701670887006483478591976127391719948385940403746823384071575942029146255799091658288904445311818687445435707749364909966874427391869192241664977742179564624368944676262783920940800185140355742638549241989279864137512631573561019349635796618124237115131467477614480668281603107479393635799368277376546710919431072462689603620945511833191185679947815618502484034116187779591486449872174055199986627699704055588513610740955334592193227561022777633845986307243668339806969978140308353484702470147356153723327096176812613532344752991985778862177813325171202612616629813744560827642929339376267993206917514593812611598786469018733708976975900625652270445674408556077777825095501426540683437821065122258353742430695544348434439538438226979509429472967257639738609375329433742920623350568986614205579263455234210053078540137204288162784255660202857908039218235160208485633249328565801066205781414122917678069974834141241568334516033655113881151823644487036920061856582647143949101135060710458288915396339209529517591390174991190042220075807499247978003254099198528265099969871873378734615744250905595690702676001258744610261369710501913549343629190005990286415623872281507858205968303050001060175589346092216137800868397628319560112306180556210836258482136323006172851169804048317580057321984000368160533408490605541243975299118652445650269014855276499329984890905277343846378853413515294832663212443656869933418775544520189780186542254708278749871116753620980730408000078596901457674197774764776392265612435173486544022915992123355940960261263298436885452489047564692621214827396793797157294443120115520865849070865251599791332416000657802052585464517560019797761201039487154357280694659177228929883158527388448105687617002490050109354678820541346294384468793153270114166602573322442144239568974291290978655957041778893057832536660198861804009001110255555834445772537252875555323197456377796869936429789637439765734965900196431865742568234526501819000667765729841346927001962729867034115903150432403908262008194393648824255572953164419757853304140301124478709880799371558452920866285565261447061259752308321589432339694812201591790476557203966830504177306984604521967331611997647236959434703769965324244052794126691545538502770538966074688694303359738862592304447324567163169060287996118317471041775480465558061902160637140600673535831721856915612959359187945697248934938425331173426702937094912920580240600796017328558275333827194032531568397759514751093027653050677887797027826020537080169975615302634860452885541483925799386791015974463671547195212416582473078871110412012046301657177500937731893572654124437113809856246233926094847082997496084844303105357118631882671030572070511016038871811600975104476055082585835226588913176934784240836208046643766725172108282799556520176674342752931986270727509287758702650155092458320671661802167398010703345164077543859791167523915399935781285787165546801073774156432284965749716455384556607218785699588546654927071553434962984733599976839738450430861245931163380810918752195603664693123057987793090301421185301738580215287143496689016119616685592990538178708112812351238077711051347787179795572190620135504852240043406699447522306912288710738074594878938740166176512941053572433690058899184193474030990628868350851332815657014705966058307888606126707024245540525635348324948873884364165710236820566999531928871689213208535997911865324835906562805271920001375644796414504979148909792331499623945255156746399067979615267771805475272128492683096372774937931529660974542968898687339483902680040367770296746039681666547274162764361793370472591459269631749623192184628921520009064437480410986456287567068161880004946813714415965064653832016121844395187460026414666780612296516191686976349054369925466364484387841809620067653019191350629775163973538233087117929671700445264067552747295215958121552816897175220597209751764861563441711159715578560018353777284824625466148742180873858639738080216932754667838478703848902861743918573509155504385102665178752442202539765511955634655240079423173910963207244216200909778910028896289957409301839448502410137205816901890612384374692169934941107451575436715360505577910620278908913140616979300810852033901760978719327030581942365738071446828881231742775485595449849296937205095065692044964027960004979598198610746246307434590973874848474031222578980621918325184778655284797994990181786665334863306269032013797534190516238902332279342846656053632918356218961864630419075897043380667906670787147713474986269850304483229745434477891444692760510181677061037969043520179691675051381461936491152189937232877495635694855576110917222187278096799609329618935702140705082684857982119455178299653072165262246373594667266596653941423752081142168777212978875696290625461254750553003164234065713451896566786881701617133576693387862407968017695278748802973157452699093012352343182612825694891256419492168894398738019665828297072114202424609139867489371011169507397510027839862608855460005054432929647386341039662459966360668425700547211931336649416811453559192305259977349469407263135765557238971967686997051972636403844077126424328726951769311820578243593024411650642252355275356553118391465377397620151442537545107103981928835788213337818431208267108892174251096387425128012305578523946908200475644417103997069788709303813343585087414636360446395804278689464407673705836676901792878289658670048772927656600305252698079548818835386255606325930817263612885595466563164183128597281265002679807685506403366140867291902817171949260083043408795710904159584125770087050108421599778876622248274361197000090209234297655712395539178774911299392867813220684664054519572158650217023822676398244891184420611557786383722868758092920832984653015618388429600969739029598168011785939426342614031482915795939834213129896268425552510009375095099689752690604566736110416453656214235881290312775760796170873547186709005645781655700943736971040574019999455502100027752632433198706793344332942273496753579616928622755646488384247660702161638369139604607467259845383182491531047827168588288911701187294768244046942474655721772061008906641708188585074722171002834358927940148718067827329137381738963362610289433318848993554058074877983160434489320247108911564326396241984059966633718656071624682858765477985875053135838621027296543386851353149933670796247415589508458447960387241382703243986839612208976036808280486072418946573775262502825014937064550636947941580274631186152892977795970542319431646253715730891185387802562369258641776603555948562941814199601331862795881734565084603055436110009151537674690194988989746556494994643783941484797607566049489182822338506206784854359176106415235245202119899475553487352151661691467013843243761325495453169260330285073320254245484819522760654555058556447431895083047977906986494764900888948225700885700813048207264606426258044037365367844503471725751693342558910626859720417059110222062226805963510983155800901383937146141603498647945599285760415445669452053345526500190745760369677469872681536779643673667003148520447803100355988082306386070078203359222778236009174699519716856023664478022646519812470864426692385822747127185243472108251433949537446335642900995953019205973847641031475434512012977704638195913767419203764659157294743785232221509799339222761652871598495633944648557592294454586094974548203596429624209969457441307949074608936612376162996253756438444855193267225817499910186726253955405833000893585925126859172235184651429594647585016805579561040176660974665182636117268512274441192102982625557318679101490099865262929345431224442311184395118444655483031553405462527482068851878898068635651435857884533604500213013225216217670431587241632150722703261935102962277039100626672967008116193504326191445340919568223581976101608285508753706253302706937859537223701198691370295242046971681273135092045628652520257518076622071238501513529417828961929245609950597700945916101121524787935588978949095776430846076636801515668438395862224659325843572048767850302761744641315331438147156556467182292518168831322501028705451827378528496823105147310177268143338619214112994498863441023259619680016172983343570072962271297068005981725027336327850733423654910228602442649179317661750498598559306103971020054953064749058101934989335147741309207987933795055402217695934569431782757801326268403077587240399372560810643510280778316136475511743881773144302646702535431930230090632588588806315953081665932265393765717528080218159577181835466423181812970448269096147869138315142549854197497477662837091610055452435419967953599556150425848046980447000761371381001672149347247531153452909053583189867918112463833912344993912956665128139010487732370671182115039742180165219167598004703349090203500535480350854274602216362913808276248484667683814704626295040241510358545128651940461722204725853132107119265660719819911263155924989276195644854577720944932569933910959328639246347823031347434711835162958027859724970859155957077030155245187314568796227320442105641286288377578894538049409415756993676313637740582685931561704465258950902643739581053473557928113982087547640098734622730087924087587163105965781087941118457752537671434686725657618668527933407022931418814341678854539096792806243600976256334057403335302484531689124768313946615052993769194493756825669674030795077647054125487073027637897177958650484041474454630911444368214594720212689522989576455756559571890406919728872340760812067332743966970173768129128426800596090197686603226488183386674382306364553658362495437137366907271925816225722097624337610281349033786066766405093803931209865632727746159293477637459614368592821443020228967104174569213126256035943494877633201317648448225447737361305687026271803814514336631933209815458418932686608414927797531622503164018112839943836425726258429054130025821816017508033161927617063101037797366531174127660154805121420025779258002332245091614582117828111348750025739524595447447116048683389974345929333875085672671989445017385344026695765925891349081614508307233483949436297664628486801113878657089815360300837288187743152981601589766567902758715941986876926465650029142592227008420459988834287444261423043582451063534240001333360531393671246080091465361488728748700575691659287010144740542449135661283537828728154084147233029503306540941961537312015708617326657979696762020220084559037940649985047706080967551981210345616497285494155830809909912466744595311404726521826705914026765391235102878477816916999038234664077827876067552372921712274896464917658725442504343355451987679938278065627249650835774003375135066218024942615361174737018403074589518520486198193700265880531217829748692357352523969982591007649869127132829082742167666863589507974196352989890318510904654920779266250310099056590619797120148991179433393495774722035555412531872865808169600859365065937153151823522909998720788810117614003395934753397675742211645043400652885358185303414701160929800771878862752583775734902186894447806009084189261037609279272684600104481291551073918690108457289156173500434885329023670199736618540193595178139512408244805756507550066653565427648504324846640262818817991395225857544057144006805747927816245580379154223127923873494020670984176858180206524728768893285238693052881446867070758132703547082156334904863637934784075702947539886088800491517037424891123727299521321795864284794580106577180604457467314713583412062989386040157752136920308130191444637491011579364850227315971616845766745456671530114349019412902440359064757884253933179190654144369076706596828984318943057408840307990899156271337097086763353891202412067246063714464904193970124333557982405813237531584400898236948556328770387064542361368801398522657011949309953457213938030255644373242176732171401185741704820417590589965813675109704197724350449504074587635505731336239678059133017705036549539244617064120659172493129335683631861126341843019782354855433721862042981152535231308410304985086011048648980081253214667317352618772265464650202859641223304807669276848105354847745825774024365686490551708388950202342379776019443362859601478095406955109626661589633742062382633403802605339025653697965532908110328314643803416882254305874969097144112591029596890873987031997849061557178031991445561061968067223052133759662105999865842260318836303047856336346475318902358234839576208786965455996004377942431456277959315628274366371028481699807823781804342934889705199145244440363951972694745865310221069791463921750461812221968275642572052265604914388034181526314037555316372504739029463055433831120453065858690016279935930321421194777242917624101855934507398156251358078178258701188803419051706812753954569413597761420726278964715201908958658917990625325965361753730825210832440575016102164583490518634815208542173186532982465393638440517520352600383993128261249086831979630789458039195431673323971971184237643840419884587250817930627644429184706008810958952903660387118012073783768220229857119112853716795664128563983682426387449740024203803602101743102876235531543517063356180357859087567381043150142699350675369111659622303839672094589699219804906175479335792370394498188721622883786410604129468899919208881696219458466192258815004688386688179836906366239589462641693820512466677469290553138825918373538902020559205414323870163021751073151535059814108468766836811972389466139885452154841076488404815044069404144011647977969196581293526706289816284917217889163923374632894280732326723356957470276219044894801820732406371690361243323662077545329317734092349899240215566293191230653002214807894354876700915470431674828318057232474151436826411981564882666847762766031216124619617583117595136141601435658877937898165803804495626145253676003743318758470030431191812742089321283646379224640159432082608818863042419143294780489505574239941494436387999220380795899642198121815847088845976126119748258152285404077339567501393273590969384939672335930716378766536634707368834596071363766560572154209477714538722425487525322124960875227526290979328115057909280739735088892287868038107290799638373855909860966773018339546211624405229324892234434874274135345883478618544133908716407282720520165399320546425725248918687726769141601501711502259404863052443378780359467650468145404500166600425002240210170158665061237196132872916374474649769601523513349887898870765457692220609410064136243654234180822414388702601844230250560815169332327743741987305074549624846209004750133326060570625621131710790530179568505738466698380243450076577083659976267891946735383056013003621759789339201393378334321372815820963353375513387621344924051725171946927546661401078107314603860416328858462395986838888428514055122623606456371062540629649291883252007087781469752979363489294754238166098776927378273744322337832136188996749287659050738302979640051188034691298583942793875495800300944081862700518750021248815286542117036959305101139727546560822239807025322682901155535931353210845354187668662588103932615635344487470992794297411953750369849429851367506240859568963989484162968970292985216523332738751781260949712072221462368350034072764152565006765962624292303493227944930651548965019017658926191290478355862509413116032469850509117851541048019414331122555369296407231296859551023862722663950899643777905728239129313146842962157224753315967148748421382407140858556560502807941133568917159336258899611396568349266467858965171184793121470897735359649997323807787438070121427912217879698616174014656407819511678674868710323359480692779737565852455348248337397851111337412447577307932556499124862856963707006811941845812907548269612501281482981603812927683394880604547681694153066881429502156336099546133848718498844466984313765300618202133807005701932112449859711335876739972155595844671274058246488109055250112075535865886045757209165818405340319284176400289859806947365182668681088263432491659349396535267320281770171287141949570077228102349048372674180466913993817013019473735614091911773036618356062477683578256127301170687783581402881747653000448732621985035491632752465842542424957312152267222410608644448069593516291251632732612554244003839630939400671242213441509800917024907078199673011749470326413243290570714520511487386067564115964168209109041579291894409890115763494930628014522869236575365798621085655934347855660514809310118723368075693072442983816038558343110723211691916039654203771004395965126595560933490878344174258038769813513036842266390297816182115021899630539391512801251876533425181199045172698399860468634542695996039828925287677269550296571913299676442636616058583726792733853410254554404651123310841915066933061103962176677782331449867850191205264713148966848111200496242632029892948553052547583348792610219427500864286405223292199071520986890078549978632127693115490601168605669705869261963957965112491978665165859195387616695602923809863287712748775910998918078063180878176907890741711659759776595682795239441466359292965091609594305049813967133053733831490175917659400450323116508049858309073136662981162593828450477338586042582999712728836265638125333556145955040308450925340210080521875654437052480965304466213787098171101920435144646842706917600994109121335462368978587195958700059569017091307823872028982474736982502371639897142668135261912443212427194111056024711542651270609076688107040569164445872481564003092352949155434487714386666620089869634153385554504121270635613979021528762531189380035689479212429875953343154486374646948609493049240451403449577342663332747898676355601115193765123325785803844858122803659143423533263885010320693918846811941745161104322804530114651587921920039760078341457455231425415165645246425048895425742917467082462482241935207017967056306569147264046073961345129258943132046610828371245950978276149558844054651041439787481776532556038575975657356223554327695638097287210831426416112716136276146906222708895529758020760734596949747087758061864743632093711938652738582882766436238360715419336869810392735192137621007320499074522633037636110211827869439032090779169550559880475292607181498908718309430325883118670483212462080142962643647239097276128315547902942432669212872629465555622527868637511588743344989529971928530058360653410153970862775795559035075633481163528192043560523721114024487509883233781730519707901694528895664410863187416797943836303279808277545074039731855239055428528872574480335401349701379798608455095933935102252494211236801952506916236279487921298352318920085973358594964342616920947405098974344253958600637926094785039930149037508375315854416361225221196164650484082640006421402483449343485361745131844457810484690461867326023448665272067969715611547473400519381054777461147877555149101224365600754081432950958144354891102537610605683181313381914132414186069333759271610346760395810742332788557053216238796611811451644014124913437304772062860513615651006946622781053828598190225692201718736420528668954653749754055059251646116349338824140426036397824467834269934041504853834371333913954387469321253847497666723452145021377235985928584318975645994797729903550438547057486210306533445649044315437681446169249797024557279310369314341878273824574829537811054161215007628189977477156213011768415095076920553152554352106772007430569973957579599403812125524372347216018228345640910023482659928701300101698446366847319601855077034123725752126506153453879337491082870529987577467699177880663153475308937586006969006157600596226970485907522072282193769267749945076571686971772776653033775405995773201336169483358500387651292064587541944213855039221178804393655313972519842937408135104484480305540163286242526379114588522996932747373858982220260905629311560935170679356651442456285438950729506251358927080876496833312521361769470804387871539839884481207758709959185631646179445150361649096459060829434076195724633986624896268166642247898124749287950480831064382364009061696402009180205428975048515170615234874598822043894229644657113077545796907579456335193748811207477549763815104542159800273829271845293683974273982874803054697497987311519128222043692646003761375157074865644290285112068040609229846170932378060036671823406242847667473719262960780030403906611901005717678876670647157626984886750252546927760026789200932445297206335634241378047288801902897102491431955363917453173293304780537285355243377201852028609880238510468118663143875715884969544194789738969057253708864289826763354898675335760703366572717011808630495098974344001941442961244910673870841155982766091495751956146932059528769601848296027903718593741473924144854824706050724103995230012873880861618778438723061489909795843728397072607296478689465866501264493148109260636866142152066617593765548625841619665316354982426555427951935897717698411225968105635508384759834438129930959975765322957473284528689343114833783237084791244965328661052804959673363992531367746161253225198726781966829384524769417163796149191657568867914525563954947307376051343742361644648189021648847441543375014446825086958540750002358679806955787500900681162425402851636073301148110138687910139620633260818352920378262534547784866708887926447944089362830149860959445452018896368737894603956762944733978790128659834968357909591060846908426772963379079848629303262113974813372893088453530430335880449761620819184502152047421870389307342216916709625234054244112957051372554094731247992842278609833840569667314017639037478253133060515265931138722618186095499030428831875250728319204124774541418912890583292040230776840738642951582804700864528401287445460799357139338163029288647456583393935438021865654599523326124870726737692836807483329457327835814717475290215084025277164982298001270579418165541192416996314372314962200142537562322009945540465457448690222663272556592494240579596411389414620719191089077148638786585908312179207401661600557906418062922744863791930652936439158770850207861505175939401654705355804750206420100707089756634323990553651865792650419721988137642822509938306014858345130943995604038055761218411061461932033449668224483978934182255445367592402210976666606898289572281314161309991131768452913049740358821433987231295387942098736351342919104031805039374148694483710258171713215051144831232169251479308697894933570690181867555962152998641062127570212473387341669793631359974337786134789625606366777908909238719739008825546777677462408613241792626221140985603093648414651151846402357597672677229654299142798928920773728315911264599475447086495049329292515787794126050270524637671601877077630897168999085878718360306760765944445697518852685587676559643035010131147811876720560983281390330880704054913959283306539946614768691309581720418685967959104630247625823511345705900467329469235121910747143752574035090336398559053000982246815723441274995649962271223365702885253106104572217964968759586259700784424912271886084805377595964395776676967062607069061642522060638688606433665293901221161357762902937437840287673604667852576184148288071103987845521681094924403952219923899219789599999281914301741293086230584969736282463116515135262527806074339864881464216341930925887549035165950754934736921796966647037618195730688550618357501868883778265552347470838358906882091794241928965879185729574975901935156136222917047512522629346815371794303738328477411436736359712073235883973165253626590483938139565465891289525277030700094216662969158549701090274750070476954471846138424819053560180710612246989387271874003929294601450210957604105836978394625091016863709829626502137407043211368753035460993750594121457231945434709110121683380566560049178201382110358729057706813008603940370150686499058494561228229231139329658028529669709002494730308189210394521811203419459268351884240981821123930745504490834388055610803128834032947881708517901549938663615580327539519977294187264712615419026941478339245231043084832713063449212116650192485851290092875473556088405850472532988466525493399447431484800454527361725173591440999735801220054909496864693055628829358122945842801638567258061544676359878715160473000776873991232442059286491915372398156553141748575371606013748165023198992609712778526733008460033363566923171666050906160097803643637931958268357290534702327606032538306858712799317533240262298750470019365693861983532426648943028289120614233939358196461004806364426214597646489516682011308754472335900803338937580498114114946652380954291438049231899662579884435267364851041569469070962901293657075291812540581868341288850493860297004168816945243313380860376992568892216738835589018466767482513193641668389681387036796439024760419742977940425439632719771605400601268990985206983646476735710024955893719851505361694632611638294109841905460844234854000201595562230946982988108887372209139558935239424892136424563734532356295040367894668267326626603134085277901446997510139183688765547751489760379549073812496890504597809141088401765103697253920664006608991772081977396816878619067922173570486279930078166891968771831662958933493545794820777271305501328827149512432537129668500623808457636699288781094787944597501683616227802015837142225033759164467211448863036860698599155760473617171298694431645694584544208970943229906698732369261963956581984732566585191725671182958913694461101737867047967205787709988753321005696857753962641043269644286382772342866096591217581922394752130693494526511070322242482435450453560596645323822561611019234099796575384889766537249021890393201119784529665435634212171621894084755733071557623679015440742798068982927861793790102252258936162253989365854719646452838621070574948463351377222102417348326093365809399022521008996938375220501879614930691752130885324303209007168220064025863410940078120460734635003885921258278130028778341905496540583928591248158037264162841110908276770896458267298463215754889310037446604969833085530835676274501270813631845915080378237259062698660729435187709527333701504590569013551381645802720585254719103515659277782815168152324448906027920702214693351597833245999471600155653536226699402631960113185540047785192616733514177333603949512153726297169994893656397455889801226652896227779567528951390060678110712452852315200315459133689005124810912668557067925115040490305168073125398350348620348944771443780913390363664562973933371910566199281175771331635883360351254101562681139012730836083098667001428069012172778454739084282428147118872865263370437997294043829719955925759214670746471148559153189523271978010843874736150828406462879067912059134398887687414963402832593792174218263562673129852834112922540359014329290824011521203758708828760462178275354940619940771083975391598961104429773329472248192279982901950494895863786183101372186714599650850891667701946212276995079469092539945097358518426356678862564500861978536649135589931750588707569781371310388254164253888943106136763384642098353032754984160908816524755925235480549219062011571483309430301452827288868265820012703454305740376835792392702100825730626101350647731084848518971842204618136782375746180098363039023919449433866109416153701926264059537124743667173117777825445558870584198843426952546702905041920138180005373352888035300670905349532592965158437952865047606941734827707566099354382082630757150961710866889843898186859646789603412518199262081483144370455501427821713717600288920980291408102200081015641264802458765616419465273895888655696768566202491485092104864536756369810135151873624033282172936760781997164970133729272059430293159504921837498693156830666007736083109008265837815100541634208952743302372155224937318773400329215976448587540601999274143910232894960003389986411050919751999435745529893159496832959792501409316815592025910484635745185599182364883470963863791634911147231164228741512163945717207993730795281574601474043825894140941469008856973663505101955361597008694172361916454255812460930916746037102755946981993888854043776409508460848296247107777208436659467926082582344941857466325390998831873277848482220914506347268308364584484789233911382624113528981904885162546669410339919359129669913391736622029124663759935163200681599365682436817858843499988911293748324244216385820452361817273419202355698933277097225356669766908729943669523408490559805208718763972048184407381255696550911019604571394955848883916818437108723018144588955157933978525560743238628336785581897451347718192611763055815465653663841749928109571504555120752030981956225759361256136201416150299735872099840052611507400977291778370070240851329916467436910014510509813514141149548385834309809668673607264247768846790343582541828867673808746527648409031721080071359530858094692808755598235045356241964054471358805047634217087284041330918472612389948983273998130320619203400796884752115080699369163285972240611293529042659514313551226037557379904283819408602260539246486414152146038726848099739416249034102983405899397482332421697660816132075841988188887690031615028748348625390129443813446673473416326252086705532311826768073180168459226354445448460507792392046578565778067084709402947359685382637810117453011611875930446057007887219549034016555314329924884117119756469461912887145984524773555731345077047845029422048014735149954570877835677463979201411850534683873390270556976893095000339805499284225800428147197386182327637315930302372434045595630408383611277037068658644199821036540267550959728537327894384834245327632558304280072631666330214452314409089450829524329134427975241310816893966033735719353574675421047564358996480001963927689400253336317314898149630141601479697121818188988651379221301931467499943832580380090644584010124510547839374488882071525340813843018622495268827321496961151761203072442913775638114659193542037232324585461214521872831050908214914350826695397552982956340333255421955575759200887121256717063734659574846986922490875339723452128466336377608244338346245957395282030701706688221508264306171017651756638558055821160676140954545877575266435915740550826050664597065422411373755987527457940121998826840814813864139474812339124146949970539535488359911658418514505477981707090995795608976136586897704398696592226638807456661496383647606179943067894569855649096395533731306081275090411552064165914266180015878584937686078999185986226355781399181835334000553732960550601188127339505994219015053443130505297414207473967679974467883832830921470937401358067951222532878431005160584935232371870770713971063392947814384504124498520056013048023861349714212696884202031275943271820865541953856851731965865852203042262519036742387948625017652158838738045983316486805817631146538140533730902674318910329969328529204618442318324113002629844272498402008527439739913792892149828511680382897158051153716318973942433904249572704817923020120410519123574953368825647596931568950543879042769575141109432227176351187365455255227367446926183909019634120026779047768911360765953387783100398107096376675104019782599730235684345761700917564347450258281754698069104944681252270698366217916144368147880954557102568001073848113280595768032222749091907291868045558838887159556433342326166545816163967585638153225014366701333624726221616799790176621310863097034268624293823609991580108554888440119611474182299355343069553647385891501921410481822497606888560440011495853894552335582593895947691229597495672250351148226607235583204162980220400459925023359548132706987711556256635762790327131097763625411601321818799084191289379333092826997010626963788272915149421612367946433900750636519678122830825645774546935767826613014899880657289437331650430924069383348648080959672979700961680822041543749972565805581750103946445659752684720020193837659100342491280727152815771020466026634052867819767095165011630304513816794468791252142633919837127930096686499070264130909726244051107807098725939133524614386237800951277927223104983023258735292093960585342751491171918571340607379722387945989831515902612049561109717483547233172841839835934838535548372226037119976668793935977525179295407246768014652273677475809888911271438691782778807001534649275644588626213717697501272040992862294183467742532265085368785241679784314439781152960335332281613043434825668314227980346704978950281267189014892812975231916067843643897365715035943983453784785978121497944670192450523796138366276017156239475164287645413256517382358762170994104571897242750848491692814833907148198569126114118493411834428395333437060022891753518883444818336784113162041656961466889647687193004935805814453429750389863353143645895024656000979374651948446827781487985560257951238510888600280351195846887316042547776404319439669372887998028429193067246869153434266472094784589397057676735745310668565299242524450844422554541269791087912546522160302206319727674867933495464966175907174215660600878386636349587938281136118623595339310784982560238062069026491172819642148519642382559616962812035545771096918885375410699936570214000321703016479506056194658370311454659567017172289181965606165386985181785772813220373511607155529039298512493341663049975458578784125310451337963658310487508009669428884403329043398910354369371933798850932846907166010078057130103361363617707158240352751160690757866217958318640644771166732089716294794330107140752205161803197762133159185160893534329501226490568866009862035121197020621993822957833648586613311099629804386623875860270041406906478920149506730030892168826633668021360769781958010076696590140071792538289832960791418843643953674230088255886643779438453232257865689663005035879434291323748039856014821215911893865397200978588487402456144919336610448208904968401157021033500726101364424724180195476945661243919569133284621982342012678980711414799475117438277618113669014045265786066564250220213874813021245190681121304106240004273237137897969440419244288050048238391646651890094330339647180016154198291046882617541458491855038370686694295728927963973217849889835770247330322437503944691961024893904846694199506901332944175896362320558953878323006376110500878442293243311590264897550262216195454723548980018371714952378441893700145000778552789900896705722781894742855065676955281735654099092350948244925858844490060924206440431341503576241040885003941096330330258507617186771691025968025698121842739324450120773567026684820339362342707383789900342220072836276296537208104347624728496434210921570168940933192073975283759454978095784636000261566344538909958622323813685514693572773444377982980749611971621592099615844326519581090233776647819770471691256376493349348361475610718090746643148266058059463507202005884748927373242000003246882700846659385583208349937586699315598547706394478187879152338973742034685135522779617013873926054195269778645763107580577842009972302420682795362203088155026079589125935661525767065111921493157433940230412063061906877926735520425334268939781577674599541204273936006180366903724161167998157875712006709332606338938496178151068855411377806662441786216304809900779379505632760508968976002285355984882645226791037068965408178305790846820827746396955771618605855308086293689924682849596444954693888593455433924664028771047109241382284123349107712537515414745917059037035921760387545387652356260161104074959950516298963688427854691774733820913631030093031398065006509883251532297369099908778894633796679125437875072895679260162601844745858890182271359502508236385469078416555241011605224724296695178245307294258376472261406752648616300435942583618104469604156272801449276226922781046648804468114906561640595833003047548231531468088765437293375462824303915451052218962535649201180284530301161933778173965368080645334731861475476817875405399285838737290999816860718094282170407876167125666491922106583456085975187926641508169936921564536735773265333556943070076718073007718621863737973148859793570748180183038618369606105324984050133763431749176424289527989969754357994020845438116853647666508941098529444259121652261726641561567489513353807053096233487760768391696841069234518274386831640517586911079595161978821673981524832243574494246811275885835450388347800068127904994298713146485289041080528289698671392758610366476825680310816419245694850189455673054519030791248536491696636126604939665179930515271801418869629423809750027170179952050008303977096977061100231402412730692608682193378029488505089151548742379603205510846546104662991451325882601781908606333182164623039690874807464644941821796780761885646477513473308579412944728322100469218449456517142814121778041567103301857479170911823591279912457671532853690963395804739071668577691562197590474147628335701374474783577617257469657399153434510986312929878762090843741949891548814701749494599946253867879113627820313302913890333814121844875575797389740506206585029827630771362389848392541776291517670657144596888521899847139475886712485035734448589997907494416388682179848879476674167871394656339793579750093506483740942356822185544232195966444614080409908036270763019818384778752370970018625598151393552477518826468760832824249819181001223187901996695019409814237393871791262242207364149912843522194596450042013459555971774317945403387963247150232973113446958813161809537128959259161041809179488028572680600631833326081004160228535049233314603177831783694716352903793240975497963201556948697640548855628641351559219537515396753163573723512122283446581619325207539229377531072409991688285353322730801355476008946411624459372982725144023978714234308046142687023817044045039167731894483413208749663403407345136476289532230709900677805512206168127874612675378130001340537023549317530103212656614054831063158493796451529527800032502478237792939749055374607254935605305204543744236798818453680016825240353787092126440722919954397745125432567413103348977478720449434266404628316262181220173486408304443213998608337966017760653096036984298751945057414304455051044995937622260585687070128723075855468938599751634584064625315728092382677872589820645006934596542758090276239543977657344079202612958139439430810400619819412468862556645733124554540899197794278495158824012264154258237030773251911777229002639370842573647864749808827565031669367416066576410686825300719753725954022974482496012214428512461627356659222914409860343152758849332041713536604793661679510277279714479763653774706113985789777691682013104673188197518995440139667235631765542437823268147519790682231914160731169361572926358341529565219195014021713950189833296888014496382187862135132792128957701183252933224016369324927215363666951472922641425560600624441726104896528090152769679158699704058595943777500392136734311863479495266193417910097674998456165937112507560013451476943266516725962338171356727830332511619985006014870175311287582766451262713375545427680319955122203350170478135893422440582710365471869569057316701560468823825999436252979491365393841964800078016485792095359918852284459962798358547451939145017998217111545187065366354506032638051220037484267492941132137210095328064527816442876409453478132398350928758776170054913646519821964694365759699516439952894551864363706664185220240163915806258338576726783611088872039227217700253689673908792874763106160747212506797265830444468187111950774924838821748358897100801695588337111501860913544133900839055802243773755948588571954765546814902977462993357090811586950535798377393285012376109972711610113811074579897977165795811899818902305181530598000964215831374742269729347302942016132661552634049094727088199399172794987621162913178493043617477739888392981637934036354545333495357128534639412330577482687498431279023120138608493478285762839927296434341956687954404383760307946324280194329673875024708013669882797354902099249304584697439319701829495183419811949689698209230180274326981622766293260905987844228817315094259681598888399421678128747654595988329498092337430476616207480833848030498730039432259528324187824747285342779258776918386119129511276406311916344516502719291089534491903086597729703763084438886942377411019240745155813282136122736141417233158625506595302888666862867493130961448690629228412922481923223112820408685106419735670729079588882437212372575907942813628839742575345569650341050983817560869775290777852721265703027169806002056385334831188212883667229852970204046422265122999493295688462714127869693117669963901154474463120795333094716560111174809868495402883590663234634159035075698306963410157123991021421200006396060647208493894412187556363978838632155528777997093739924304317579452103240837412497226158245290848211327320679418837735877154296654746933152960068163634059186247567899798080896110565906108070949285301668755768892650781025506845667467737824104257022050854530790347001770132347841417688256793658043322409392116579198847804573866767163463441222604236726271355507645018636249796929312062558734522974817338906498340391333651240944524442454413743899187526221799321095021980692366618044940472325884243814654950808334063127634970589772818641735178854008436366285378020989011931077417603657343708753624935315901854423621502652972374888955977608102420707394201269164970812455788669392804884721208981511388533140697440958652590396989530131177586290329539203926996345632209781153197249818580629960124243340893802861169533351064155142900930463239245296567899074977388375922758824679019452185927830386907323096780192687694551598518284086757415354081950035897661018222323256074933645783891775769496079449779680548003324076183040331747411963655003199096689333159687836810541202485076440808885288993009463943378370133124752350091961717596897303231656871242332496137627675129441156649208839111967794952058674949569760380396315540320837346770200459610110437404387263723593595062615273704586829656079130179949205669264725171508597490146097651733437278249707842036081679454026694944910514055526906011084125005507608722040667547450351990347089905968085137910404483223187530214033452124150273458808284358466214025469815403941741495811464452789023665223843022529997863738651312001478731031493510680177586574369350450768004090029233441948373335108634916757103190505006150363579632916647947114427554589102341012607255825313768931402449793364440153088434318828388453765920916451725829018110708663099666575950419537412857987112304124787387242794591982437968626744341855011114840445011763024333766949204977786064350532109315567605864580926442924745549632440104242149808694214361519310447658306981655066148595709208916080868062156268460803996402938619218437400710774417894540444749809776785575917070974085341790154734037219264184944405381418247198427218407208625735113683202608180917100191854787699650073369093263765342592746819662180388417279767466037829916261928727821918048469459113851696871334852914217666965516118864783919964242470735565587537851352640559770647639689457775170188290854587755729796158533400630855108248538257210467681074446729930487462799853528763555379198642954750000186470057694654500304076638056178685990921723465037018460395553194314540357687437722460070940204706412540254244242748200959970901427915673079339648825238683836308607606002298302004260087577636612356014376207710757588788996702528198396383719213116735421877218071072561087442635082729086427260893013791850226567854303293076101871151951598014553378123971135360615817671006776573858644683902272226653141822299398852945148310417044369669211092602204433887528448148364881868226698464190103984630240235080660728468385120302036945841812700204432737490494863038275405056150694831572631513383413387886999420072360236266346464013456476357832906683289126945263695625597429237071963754549934519747043202083155284635396727784697153033334733099816630646637368053129258704538585985754928296181686538246644948546306978408287378671434137299980284232255062616053225660021000814080404809968055445982232021237474988080710709298905799982667861398660662131922112107424648633373200565253372837961177187433188040381609939046761336086024079862191539773485241499238194583561262848458079570570795699936214063276581387085016199460290004057964525186068056619136476950876084691311572509369198262966429060784905744946708809859620614879194879886505619631798498463220327664894709425512644562783659383434758059047190516262330318587332035762283595722536409575408508567946435362749717173217651806240753425658519588452199785691789892696393775614624946841764573821578703921500152202567350297324769435041879719379946034944291204255278754484654748051422442825361600687348548514342775116549500613485157482827403860272866473768116660215997555756572091696526963567859932123018015573242398566474162031052207682700498127198799042416316294550413717897869123852005170132457594256387277242951334344076291464035706676969701271449263087739420908052578667421317875958266276168976187039383998878628260964953904019118686128031402975517411688673824778427191727407313291415266517204092829025930397561823819041262642929890090286681032903871572808598490718185499551521355631952271341505466569855016951553011875584476097495817469847343715662698391330746912770644119438119831865861167943470020084984870787979195923593736448841495097646934620784120781910634850169867319662319460913893674610633062438807684895734833574912635164312703735770171328600455156474479287879718739382200741265849566996184537325661335010994886389264269314025391583310611246918402555103352720924257117210304482756952057598170019797437201324496766976172952635447713387623868767015041465081824368685275878383945407488875771857704987858597976063518290652718426159373776466809027730766320011216805684729412250095917180115633893060977299759991249757423864960593088041136378119787514541472762999318198034071134514494114922355032755532640035671448158354538739385399681223279689570865613493065116624993226655833727764132452014835867843318960132079941821518707594541614540917322880270019752561122575864675626228741627935365612488133435080812521692791272626573158689834113777340550106603681276336136025243956506118900321300277894415933146833715925719019750719164942450639558722290849009984635340608225316656617861745888615388758163337007013537878028473436857139687558949666882840170049871239743477054599796385037171968768510634162718575434122767125786498266911006978543423780129189446377033128509827301183538006636004653150940953666341493564037326792528630337327315188021959461284730632139243028510183296571536264827930227896856483822869555403466434193965180328487172503667777141876764109873881591356822333202728149486519286960011811255515364715933840894505540162257038263486211665939636543788327302516787128528769857667888111082003457334671319154571781902094091113050959904857758076163797278341389806250686319169170263710172816972734438783291464309879296349155038265977022612573050838411034905068387574968932340664935041715644060527009895067431799455251622252791735989009690307812232097633860150718840987066667766558759826381074431372302457177329030749482944159948325469222734676910424543405067781534690795589698633248288405127031924650881549698615255698463944479084370526668176046465957657971442370807316244977268657802640497518358850757952772477333316726599127496854004258308713983161562854776926621985635482702040726361629704574579969271543365213939649588875497259002417566574780834633554133091883189145780513934348443218595401347054020558770321584224692925428618285263929235297731367216033077961374853865601062402722200170692956690807616040370588258520058680170131170012619861079801991444381400917082028780428225247366077773635582704869034706683907280841606481181689981667137409123485980765308305621463311944179349568981616863850278888897691125072378799940915174403774826121448084580171584677155178389000735350828456128326530369100071682000989914591206725070876019077450594486193444054882012116965599394415339229941674484600928929882162048345056504466092363931912334178844515953462159289747989623837844909576427596304188266042646115169116096338722795247384061039633703435877481149205183310141010529306238829700454958424520738767068828940858764537394699045433906533821509129508715021520025925399562197251908614663718825366385578742896482595416252932863243772359530230660782291468994653856770297188571365732762587701760943587298690853547168172051432818796875789049845130038334987492444355646360424451362187675452916317974745941911743371321055186222926499759785530943450396566048742416502027616647007107479605128191417486240797649686807007715986822019980656939803263095252481725811895247484364191053953905796819462605369515077577007292206846530504121011764657257306106225622562947174278181996685275497098402659878568301149295162250938708424395933990243513837951854096538525953153294748250956856635790653152965284555702663803719536155092947893389390136515664239596161338106204424482482231551026901425493828019000496833028518377164778892375647518494614633849213779771080682465993674018598850078478900798945879413325194126298280321884662075155895006051332913174157081713172390835320551112714015508638278324823559568736362627266177135263913169088688253799235543231449185162924254300221503363187298577802820051931873869087741769048040668060520899105984504501134145884874050318001206740383603656752671170956350142783533736381167716395367716507668472812067320061715462023657683568781916776712424621649425549033966234824258517893585185261931082743675316585623844642563046149397170385189430787432259994832385504046458367410435495896334864983217729834929419438749071727782015292264959938295104348942190089588731569031769875910340629052651733248960553863038143238192345514696528526482522651459387628786918918940303238185431084984459317854756183063733591536211665042556376201128139643589431946200432618544504933108265693998331377571104241723067908925302131906411473448162958573543586625280649375736411553358732785637768825679317819189381276420231229143360703264985241829551741641174884838456308627301225921300684401942009205893127552160598211426908912532348895484465679089969139841810633332392269674364683665562378245098384789490999076821287024097371714187645610494950465579825431346471764145723093838318457308907152747926627254914826401572241619059359856232071031230834231684966780150960728074247028314196033460804663003541196395110754608632852068216857571058872233422374094921190285888615274452742932110328058028745509920439740070929571770950233789894385120760334066829887903244402042187485406334751773981424053908830210748908987604499386892736405337412529407570951642712651955692432227310853578505322121004156241042181039474090600571865778513947092666524041205323036835466810311613192253628497340439930088036279678089916147551994887454836946056744315249373879957627345596947936209201745323892477601269647468057229876250339211804567518197009747575571218349440333899918915989573515579021861665926220114370901189930324261907086661601320658477011906528734925792334939583382893895168372486751604394542451099906225155702079970700160882735364292345088454412020959983707073523848146518454899299682483506373614922898090642489799032460386330423799184567007468690345044644978162055989668468886954758935230995045382160726313127980769156389371732642236523313310135659462974866595406749913363723850597133917613058758154846766443482369375656063470805051817603729298600286607796046503893720021738944361735587945008783491100346734774697926329360889387518240150290645813239351612876170947528213818209561351991821689593136146533891669838501807118357511378982427574454993501658650891370020285004275178610837708337799617625546311318913924829243760652032299084340286597694847320005592197531603178488756152786757588715527641021919791199044781001694160273452199990593727370316286637549003721513657930393048240962592474381190302093616755892185469253164270369908906633185570347702645412102763025813756969721571495141640681847372100957267114581109513956241168928419365032246379936819240739623009373534277473473544278943791461780993797503238447620249446572650099192199848188584936453968509659279981772271200492858652339001431635353260655678313689527571899220699505424321306012000780411616529319507951407327049224288800528702663365517652945371931510994070213265755865918440292010521916480191017853844967927003344084441429347927738734123384353862929923563100127383748114415133874577367629597759415475114247990904072180521812788577565514017181551829734073172532693717273410023524469919208930021822422217888523770081353670242978398588216796063847286201041169590467658452505456992365040921590006406080406535494795601795636029589675288875968957906580576439003994008092674881868010844394740976668873522356011774206615862120482817174341962995521448022816896470732358081742545544287693431913467010179727479414750133089414283209693569550059059628235375294771152581466173595885415587558247167704338284713538666066841403869322452707188950239986272992038713316288600821355132921910379004924445169261676699904877936268338862413364191453657958922832867449961801291767626518564968576463583251012711946881901661400392234816455739204895378360538504141419832456690071802605225144969541334585649479339658177164054049129153719194838311179833673213961563922025486958379224794310014373718174558124930472886073492997124082132376838057068022559993295716898308470701015665614039284700103554397050997429385121812443518663101199106846967897153201301708395638261575393982415695605801174926796162301685056874648429227360495630588297926012733795902568025206624300356092768900456480855953861759129650615808284075415956738424498822000698642510586318303503145779865104696318195801466786324092820041852573552079514205736074414252374467961872519786541504286028765320346744149741718806512173999142082834731176456818596680034804252574536638015973800082531172045902143195327565689011111695271540745702107215123588951520639220715398509085103956746479482488287289429394897474327368154905598693415035842818764715071119262396206345953536798548672417490262663146422320335770899413593640544863926161348442590986681162777281550382735538153821971582658667911955914575630907190704954113714310735466560315649495099233782657415769168854688803190485463503497821086935276456286469908263159443381980061719030448115851992984830790711141073689319561814026027003248680613995728860336976842321167823112835029403347768566364454255692863892939850754167243718447329557560936182162064540874084365504044782089305107691702212352818145561580949839038860943405281696313370824307206459277118291784612123292213538615647203777343667066980699984557880313599732111950436549993848575481400365971779197683067518234528074600454447735120806324782604862525174010174742741219200845417256851765120434647560705296443215533145875830174882798588806426285516930864006457080036763890322907007754266425693011463720681275583427060177064624183598130497228500634630273409739980522635345274407831769432307152841293271361884401624675628985152860308374860784677132936456364738644561801398136168839951597198315196090768194002049603941985124289772902225147808393270343698540475467237116781948654851693689410895003444731949732899814449607875881696437824086076963991220837367909224339256045292891657987633539897254630886332030040876980248022086228023184294787725705960123729697444242631217577055034845379773034410355199542983642243013908131905255058949147513863560173015517063584496551756705610678858384990367205021163762177969333447114651016469144481604725082199169196656780032121840642804635870041594449356664106387215222782068460355165330462794699300096742520655999553242792441154807771728917865092816938917736393329423355459000614836517108898567837968496703658434661536022577747504831948220446190816013530551145243195760204694020831423414988351628583168201638890737528950572244969615507340162273810004131256610466726533660122067849909217022502789914089145198155816388772514372005355759528077126837959430001606017712814085351878864301347982423838410488983421320582547168778154163661378406408543640888757144445504168850919827564715363619750752483288945098713778112185869664630684127801802814261979294814086562881502177211636437264687587539373353114435240347941327789376286644101118615584040216908687191688167478053100508494016167034870856795654841102297406869676002828220690892071891344573609017395538520991764437431912181067488981453123519969198211964423315169251824494453317095087457212498186363032563603040367340147636721491931559978457430643852933212019978471829542930580585461031684628173183310082359881599127734011316065329649759733303035311242196612884735821568449124673131456380160699178123998558017304464136101192613408082762360625108800011056662738937911970255324037144421745877331472689002882281501658652818479024718995004500044207589981819500316350343341700726632719374997889465870770343682662729870463407732217158163602331474097500583306232771941257266629037211069702133748105216864823957874065155710625480602884688807405439214992416534378518157670754422420380187940566892551278953970412635264806843181786966447179450273798792500352276154287985532719525416526576845318365761636822564045398124436954335420913696459614394197102243820826381746531471722988492715515319318419358097583602451956742580357687871833041469735210571477464235952018572683678707887537092949851307141967583122997453049907578506632797954904343505336532443150684866775505100257432876895350154640198808571619814340287688318365452145546926146785016000510382303279512018700576738950514942806669225342433124480211379456731396091453562605188904583525542419173163586522888731314762399612037504153085325089057385276560997331596530387171957573361150289081875218770086078359087642880655843014330363233765338918863194544796774245443189656525161197054994650418771425685134659398804841494864042287987436656988416151427316086414220650022357167999730595561259115190912720646021391346245171147308043225141375331167988407734779799298490478531961550416710360557960499014309854029190324300777454259135736997511702086922443459326093765825344448556448524048303006357372260017280311173069217423446652320690103883534687375247883987016002379166524579535158455468744914087524085719626234153589197036942645554723485244252006717015252438287596374479535889654594272468628481797103196562736583846353609721363044945315596234842808067942256313740572819433271058729568708661394602255962445296184947326435776808157655987030013294144077417434064955293879604904007556012637644621230326689827286294727184299520954822689450647293248456000644229808848615691692373213587488503654583312461069659976578868826176190443221533147903761087121840748051777013468183474446746310357408979788971109091378670011974360738298556050169969175186803084793093988178486033156273233798384925575563984148863369718600935791611631457307573109950159280574230113067190359553598075600531376205518018359875907575903519694717500973996886441801872507506930272118030161448982821405641597798267438205864535617296121136840668125704534552149516552400015810159365226681902253107358802394999787972270920093764858365213712137315263562268532475602652009800724996131752306433074015930501482425412342003489327495375042341108645625087410899041864784969030943360973145601693147386396143524959237956307959999229729182724795435854018131203563811071308604129570507841105906444043907460539160582988117338669463633954836943175539601980946020025904690052613445222920149938038494235395148197256757666925102715011925167925149618779831075304068584255112038581226444855599056134907629418481449494974693012064688297178779804340777520876952092571998743779784634156199654703664480171815481217180086067814975784125274716761221237277360910635746958041927322296141991363672820265698434433651571825993526051641298970724221626838057094263158033514651870753065255269287404445637115525787188759313789247594944559010565395757551799890973304271957636942378249959462308422279316003764494420147544110977579335946948924285026036875267629722661840903962057247145895469401060523908038728962092748490682976468976297291639306771457500965589260497642538654277511084749809932890118275239783580500742944278923601744362340783833048171494183041774809587068261013160983905420908269232509988125597657000550637172753486311248713752308103050060556843968248241544795261729822708625677444351780834512042335826178410089212893523577274621333068919584800441350869257570524578110531199341096987349351211764444394525167753299836577135391192606968724606544639883711265673380650391483487310977934147603810648057287085611307140715187238246652645281263025607878983490307253563824144501431462008777203375443108112867941452530366253282594606834952984719752509496050734733314196181654733104087632474017949339097903988421116582389815960795501582989943247993880676049203525978318127341109366878363490992557620108231942860315728927663478408739424624071779504618955142319578793881163111374869321238140091801950723488395327635368975763493054365203208877003088109088283999031828365331144273261509327005115009472400836302258659577499072792806595002229208974402481034014504762209176717961768184953776877105771205771113408080161003608649437723962655646080123432166957219754699641817685591507883512808791690875973079711097657227109744928504040899950993503741841760128989223747627722369664606331322547780763788364103533850832787451969206619085817365367809129066730801590451100984394125875519477616949637298783490560024455611634499538013114108888052091958057539098346975266073856502481050910773690359163693904903382578165506869909402707634737299176089595719704392596910556970817257656966002336093258490515001866162668251699459806662073781254192451581236083136286599830219707799101718334945705931390434311226889442230224429714761199053499493894947222642248608789000170151041705227045659304398061637290361885554686195787008796031207191370835605977273955019578945729720509629501459326430986589151752827608293245358165000950827357476925205431407212084279245272717063713556032733714296855877215669984494248128532191032107057148122397773668769555525879974330461249862718786105630651358081574241478679870321089704786942416136680860866992251010505305530326187359329719376886751538079432889091647081962593813791877686704036022588285320883610868371464634735252766019105728970876124934708402082830239868343156898424032863819323451165733595129191303161289956012975476823228675132297301053599348573168828130270305491243362355565557821645272496911347340032888972111366136739468496148512055716046776751100871071145033747018055805390524256965314778881865843354550354028958700429336702490090569214736249913619440002187475089249425997070513675602311959843694463787028396710335635252778438521057471796390085679847620818354573827338705364048583802972569578210797417476111666067404860392257785182209470007036342711808524544733797890146374047843924965712857031870402394512679383593047291974249427798148109366150020349304579290666294973555808827059346494107534156813685497078594894846332002031129818218108710545766500954319839287234152008443495383197109955103046400712082122409608903443942247911489260697863484237662307085367744346480834976112476152031759640348464445863819408812809029836453002275006666935472589640954754070796759890132305830513001658361752127771160805937229345286968783251963035676665254428149897771396035462638341979502693008651086383236568277143328244789653481516721306819914416662857076252754126888490620238759348285755569929553693629342027469431301487069873150684213365709040522992581213461319354035447150525693807442904876820139066208712979391387671327829968265432924620224807397475305452950071075883404041243606655108722584123313757917181143069050728772022995103261373457016946467813205453653152512115960186767279171091019861753666353835327057786161386525053776041544330996286707205086169221354303485315639882577339609957850682139926446373331801571884249766272245104175651716285909745273792219910849754909507529794675785273662073656485819341603612072591040950862180557603927048498693620244162733671893174168877467551094003128910768515875804260304412607944944513955347977555814863045953984234476850754799589204083097398834595441428223287496721690243133557742805822968453421552502366779465396490081818498458799011652047295470143378937248036716630157868764648009615478354925181880557677764237674563282215917435164044169170822941526647629434994472132898193883139570635932765148167678497117788122941236298935276422172131524519721383491856649111152788521015436060983175505107126960007845085376921926631643774663712781249569589768833818923403630388093564239887812136916120649297429997103400452937092178760252920421946777430983939561741874127324194685871312300032105852632398182920758807804601837034265300023547658398596394349789264129878797922464912415114436910484366044092396356800505353559898023148465649644166564570217460632484488015184115517107862455399196535610547616844585201005320277087539690300276058014561010749175468640010867842779350031635401344010477651223262846985378517219102521593555770741276499598149672299206909024131526052104634129739597649225052153626845385840264217345811173458112131727127283912506151080984780241555743359107476061477616361777834292639246817015617088556593125518036588780063809117803076728357762274305960809669196189158528698657002101485581950427965081348373521327064706511937159591748289339791709256360731956643806804391628468455848644074148914100178368483851307976842412699972073386220641004039227208539541057655517411297327901907247642386197415126297915957407245100832467774526720337275181346979123338853922137373989382335672338874765418653710693291965516128360264857593268724500633740721758557655376833036491247300049896531137992396826633778303891992919905049365484447069628688895200669241162592289963812378797304058413516066648652479421085616595291913645245926241614383931405914594569238121668500271168652808053817049612997496235766309285840445642151131242173392546072135671045529156955558871207654773649494326816555795688506154496181840294343021441757908080942161167042868690079807566737807633016454878269276775928897387398682734663175080957680063009038030989695379726023862408781777493135769157961050721504513314062875067690163314985996708248040994463319614500202785258722457639471511379090402676115885192924336735743815774549980527969911921615183131636184669605998455629588270966520653266404458943358446506793934720372564608302162792629949528228359263005434891931520129877980521739985319582094877342210497422844910153818798005923109068888873216683536399555904113730439751268358932035510385869314724952181125740638716748564462836966013139789605489180591403806331782232198780841924785745342602195927107810532622288801403873653690078407940492765234568202921117826849839981221285775138601330983321184993557010573638353722525492316425656731851297305785064640608396771946523593157156250234455845086094601426776574930871601545949700892624265021389990471190049711772953484180491084927596315327485005170698824992339928509698084123187950309518016680453645765124878824356432110737707008658262306031874313256653795391793112820879286255459385757930863804417589806745149278099919315464511875877876868283461691149880443560291305130693236927534809533661221770499356962988023752737978907217092694282764033409493281650787649421058460460872862048620611975571534116953538564592463868972418231813601579030377365940159058740963395334346818709819858723529567884375954327150628886742159848228567896002190040027843626331432904669713925995354402466572978428915558766856140866781789733790136005685597976430427442500623329842445986957543155414246440886549565238536512734752884928970640954551977753472789882967199252884863008514302710786877116615382034639756087729895363015234049873718116626551753508038039420375605635935280420461582173726049876169283833186739087781551012498823439154856299969832014182121232089161444797655965657175003071608658287498054590820128423241731193934356339601761867828331192474812420626159419157896757479068857300225020333688810841868898144977957751716594002836836133548406597015462639614492178164836951025527191859180303405214668004022680974015638559343603486100583852881094730166773009375903506616520379850958478498016679021592411737741065693591105978770696180552389008298827231714037770417099007565435617175602678916527859915589005832894158149687844464731690347187169572851639358186668688938088268010364499196195017215411889558698760091120106158985534592091803956130450617220555033072650414159974275289269153263726808269568167599375354963078878479511752762349478588011496838407496229054676764066204637242682190948458805290348711998201156810608344415078564002354805251851956296794007968772358151052750956274960279236481325755502508313165382461131252792326525080081035466691094214141774467765896506956155920187890989640454670570724664120331558857063915800193527734279899539057443291400535488836643331104366440240020883400498309715803011863231655376792786496337955677537633054154770293898199471223443263564616928855520321938925331130891587256083078075083084026825524907018524546058944566921503188198474006117589477535577858248702081925948375276712334230808818960046068412957733901232976125704745468896401735050073221318217546193704625314638548742238333781071122588748939226925228522502567838218373386923178053877606442451876597215049983152646557128059129256855249948175019197839627221823507774280945291532354674418714825927543044531806429518398959744624948689439930479942695377623742729518495265419085732314071346852733206259471188726925120387291874167322856732587137550448458712390732967709620943723597360142302918160852057027330180202485954545685201947657220647387019684583016907584241310874078422858632829510391044650296115505310854966163689698891026418169786521579187015405697890087935675649138484158690210049262691532071643920903305490424680924190360790996269175313082819128600342793616781988049598608212445970676053713048013081920872923929533008196921397734446283885580218995032309460557470959771067675957204079302320563509658842307324210724714374449559478026227884322707821139508631371474668376492068805067595982381116273600970089398724147054369427710939611674410707358605602715766672517623187762613040081751208416113143590516690231688581446517873423230199187095191752445890789039817291476598035209669719837302110867203897113459786925817675750228032943979379591739485289613049490751962531746582521851931512515494153482019562937654669824611315543592128081447519730791948795471598877177222211046306772197113158448621475847772068375649871274758171380853251240250891325705188366410477342618822538523831559294800720855774031211576305375949991547232732118751993521363921509068946468934550878583548721837553366767614168450144020178129831746600391230777004847186072636013570166355045489993719348805737290765166271969760210884157938172071803176707806262178632920924341945661581609424542542686800505956593181774909424176686637829681387678636819174717373985069981748250785277683509353426521716198258606113999677729828714256252261964944419701245040648446040568658953742745676075199402694223274695980096281265816591051842454211924906559228397128853631181691175472961671063018286796102270178172777389737496734580185925131905702492266168550033436501355428332540704621962517901012040320746914617091482165695229335458134151542457781479510040738290562421123723460352717876384558662228849743201068352849502501396388787547392458540515879397545398864499980537038228957629339694624188928458441756147836592321444122453439536935269636903366409666029017298001918947960076741345948883638436220653241639783764575260210659600928495095508363522447177345304089534234515747159005606744501003981252377210561064682532225684942116835599447148511756164334639702564612444740041536022238865849421171756823607987916380092604390111144576718198124758312134924695318968430368570070172600412281656471939973897622197759085842647623777378833195886639986127346444413079214667477976071778678289090020745405546376073469234124138540344337651925469902155366420920506124019625857560181976738338121271344478100638348174552071812860187245511517790213313885625872785176239000828656409891083924260324218273643797248307011210096817097922732705017200885241661969983739399843295495229535045314380363510847505616751404987341461639322164204646436803284195158907362648835168683802734630162453787402044335149863192144124874697059460728742010580047149330834984899654283151788133087477142302707764188762642881439757893101310620550494441723375021654088056535778857326866794476441754665633642730759320514227838786401692893760722826871571016788691268732870831256741195618493019933356844517640137041991852087204178623519301538403138389488841976539810012521172937577312394511389728783993804963895451100696752592410521915492477727331293334489690187927077946723850808464071774660188871897075572420890243752558325050312815714843882817575575318882735613158656294099871837240031283191733443990292979709894660954013039156481116568779919863143612625730525465320513446257916253852530145386988275631675407242175802090748818471253958346916968269188522569000902715748358219345476707817945816506890164255118696413603182162854605690841354601734489656232659908275799280492550376837177222800785072408058015028544406940699015386589313615298673113804805007177988948137430505273672973598429461033224893155810103982916538514681599636930188187594167503459934138769999433267002845826831556623296825157125009543620625228253227590266158556230843576511283530785573128539192208720798227430806343030941864077070701536738791095166605718278978627562485664336512945512307259178091019161209363360963307470715167680378525633416793237169432393590599469619118769765795060950982101368056725236942223936127479901019565747135927474449510610168540151627162382554884366816147903943154913020142271837260754091311997425690791245329011495151972488217641195115654086836533516229464301237947095111750510957366689737138333511124932047882148747420916814096608352497193581129757255780645724933565822693684096028560782534320502336731277987225164557427807675231403395161580755112958287379796823006620595801398057657462566852756433462048138575595490918245874597239714752022630379537751922330314704764203983218322929922497184679145958286642653095790352819276250230986892733384623415311833545485668011566720004108841701195475412389998697967133663030071003100292598948411546561819108477317869256480031970811132270950136776218895696719886904378592712089348567582071048283853394063693469749196033992263878841376243298284470238949246338661744870815323061547057211757244130392232173367623469917922357160601381019504423331073028098709727917034624849896648545232740563588108848512013986645136861179370602572729037027994458338531407085533127315138560289411797817607693406378166354841560654560844224053932026968226132334561585630098955617645301702819102763583176752958371818673582154417009586064815492108664624591763229126453565858969821465634555130325570001775951603741589555676803127236014135971845752670927496124780543369587255872906008833787415875173634622238649677098556127549986088873392579513682143178894615045965393599616019345868522685124772587442488632637876008180890538723955814211602418823357848624466885776733107612079946837334432020436270878071229427039017188857867042399861650515794843280037582583577681315383144225088328389468573893244698954643457450370022992136582187986255397214885319642242850539171757636596245458575915988919449185790122973076946950744380326698348988315631231574118981300978063182272804805537482845800154927480951006357857125447430284297930801530476092415255020647508587364417781433061836471133148184592938848191480422600253768095923381760904166027721744576748031324774656142937792471957969901122888092458285702050317883143368017323172319297562604520869041637517604437385204452201856717116723433738482582833313626639144063464292794768560017154237779420294123184151257989364853514991514819308648623026964411179131133183562435665230942581072230042938705049163113388570281786335662339400259933030615428889028755359939617790172465101754491001688284496695815069642193238374417518778047738634432056066538483873287008736304809574336252671163394258500465139087185931710841151274065710945891883789660366743655847421953011569508301190574331573377991362495301412107785676440910233034464379735255935102888776544688270091779177021736642250605321831904412863408852472336897748666068288823105654631783392313023882080849734687742737002768165285666350867957592741768641626021800414324401030410568603576491869740531356586286361062010231604244282440858406883468805671986983987508272461948309646975776240817424981769509050652217744261925500849082582993888126300865635368620298729062887037159157990083648908764245505109744806362796318386576633091894111524500177682334321795341702141767808938724857243137643503058897227122111262605457622211538590809435929237445694081659255061274047104418871692830816887792218834372467895366344043545398002359163376025658731251698835073537584017204485229123484595825732444305546301937472906359766759860169855373478140165502586258217068426208493657592755520460160637121206481383243622465019472221145509321588114485612476879991400510910801821393666586059517290660103498537899782271959927522800981759614734713464908729977192199500942544024829144195311588447011801319037620635834112470206033999278229655733753819674388798007837377702902007848044482721910657777690709756840994498963047497212239932502360565162193813729434587396408401420561864634217606024004157351732641955026428084632100714607422246504726746338657343113072332192233411723372552275396390646840209618302328800625714704614089036622021293932016803842180309755197227358690821188760600772258661275127997004424195714156992618878905096114113312542434707324933661701483174827259128698984228116748831330881031342788184257799748739980513848839520676760321525472077850692111199911235107805393333428971551069903560783351515173443442073929936750700289947634551959680517891389355243401575798896515682414522039979077422895466308753264598938649438242586142623930699805828605388191404031562151037010639476830968280478362418093378944042187222740811134278585540096490995120752170521329700817210414720930733210760973898616642833916744461093617694855752897703446734317924620710475652030621116839681041026627776597454164095440175393101374884675692527210695154932851292989896138348815743290738146780139352946178034965445606574325368921074202802506485291204553944652234209054878073235274648410581134366804521004221034375156345065883609508990164142102444137297688524664661399052209789003037282507406507602036217726227441617323624710601853713009648806027365196041136673308502828642820176902262230175488173508609034184517931903090635140582557728734384628585447526951030224423586745398490356992582443538347408034706446328829746755716390037000167386801091438545633359796986378499746232025768408676061507449003469996976732790818599563585725655895411464064288726198245401663887573045942124200088615967541362270075045839818383019267393037829578044354023382517709046160950103434940236180338164250036022266129552886390408938390741603323732830503817173367610429291439627743961463331496090319464762270625390308735345415119589196025843004829628627155110973128589574749922705935369388510453913042701799098104203044305584217027420915534211091307887475281654220968641159958445353173710888634582889841577215300050972742295653063239063210638468008979541517264620087700150287516824196633262685648219248616163285212310673586857571151469679698567193530352591888799259801560750709419217873855953831584342736225667574280920240768097855408820649415414092802534411349815137827040556144050287997557748725601145914846592672390654712047979168595496675180850607284063222502655243567196734130350739043789692146161869266591706203069036008673540651544063082019114011777109435249013202509319305836089658886724486367320344841770757402246798700730120984662012135697491703519183243614740533779862257494880145829839267343856966988591477307656545814844480091344842597722569853585624624595013725822891949697830173925478491738488558125353236819502008380412867388720997614893504013691578517546732690534152977312785229320209611156881026555792129708475056729401278093451819819351423242349151745708837603778146367480351684835266619233067825769859018988987179956541631491047270037298655534933712861565154012516787801197168393667233317586838734039376012008044123758326160742419419672583983058514381240034960690627424691729499242963704175061060195517029384757898156760322551806794489345523938047029232753612030452909789839075506289916204113405454883171384048848113252617815960705765671521780301973534088039565141365406814976351620713417948138957568470331560322103264434071184147472601052525868502922187676790006781987794890754740598963366158498556308972172498937309465410381653808662112268548060976528936991443001392536143152461262483979659135453702145710378467677896275757989242530191053144869160930998620869114410483052565475921101987055023565766026760219127645933577243406150703402191085027552877942754631926533298956407321711499822379959285488344599717131429304733671669957440693772320084794720073185126314587035356558522314658427465150427567494493399770004877389583408052314866034426056802711703324962297947334262695755119502145447937728826169855812943331304046347080900753795055355229948507972906389498395099087505376053414584256503756844619241799328783722083470444679360691153526921255357980757602693247334388432648044839554989867083655251326823410152806680739789876955601867939429866077198093838496112586346518554887841974713142178106453725176037184082289648248341296721135783083777758912033043512796590107043886634377018706062650774624228032685062530765136367241251125050842834291424749345737602291293760277833254742411873168667791628183421012233894990255912384670252267769329135209771992445696714862217331272753394510872389127598268147418709699884829650394622379200462341480554610670618742003489347735005746120259628981905610605567438851423365194527737405836544597667571553751173018951129462938340360196194834834906475335396136343219535115605491836026786451358411221684488320166486839243701593267036449637340940143386098484024718645495005552683203409818015075538378894293437614016072920729453858858857810232850511890686763560625443509530787171511535872640645943875635012096804018933856849853406611643582831187864005950151575426671871533834194049705756876700616901024842421428068737783375751947979397336437533677207925265174281517050179173105131728364699612028175703418527068986988679621147460414219822130476917609168964199600300709111912676262869926283508595906162638327621876853439116065041733199353181944968927699038520165419265592621296164288216616454685935463316596070414226527297587935913288557625512207785836744753019657267306523513900192572041425976858130376015909370566507278109979901128572256441595464714530318348171260358939609936218115967354275886189677471198989628177440896998146329155812058193629895942058549055995351349748596988080045043697381182769432914959292341310932630501983932996179513015339664965696620161499910284548560359521157633218445666667216175714163037222897747166166033310939663832731348920547656279367109266448610585052136853384071757407508044903560896580669140941318591602368910325683829301280092341803589408255939766937234629991859393151189154958411591572541323913040243330582220382768073441639856323091747709173395597433786117765815540166728158684779671659251144304650889531202545273044585842076197495809620078382603159580979349102117720152531168520020794837772623964563078821081922522248706336220084568711455496865436988323294175719787226515429372373757839114852492752857441947139809444782768829687620865126687054610709137360439662109764648753786480682721651849948398211302349141014702580000606794407669810662222962823260835359658846622379692146504492640004012152790553149681740049416919226581129656177095559932174869386201403227672976849240472357050416155529683718988041654425564538728728882384768552159135854160204864479735505712850766518594857578492065836887810520921962215312057505491289512450711892096724012073108897483128157297999476401084830621063691865528338913267874541829756628826746257737000179955430909166787880918831726220309961083087753827750049812199571186111431414712738405396537096886174664123316870662342836269333373562395329841477547853957402280166474735758896026452418210638610452724376527697167565952791867703203070258996887971768101898551593568699579142585310392852490555010406467869804993031841985412167340448793987227970480766330792907620614258951851401880282358672891051244259145266842704411919889578866316677850341954311075448077717287893694005769652261757120127085950838171403575647710097009003924987307483535746840173399595478915261526299036598736659162311086073918459652632764896405120919598612079279962429948483868343841769703482423475334156402549583685794482957670897523591521626047050804959680954917660194358295849652486679309250984979364178095854652413923846288913169100381766443941111473517645703514013854410079200715293739385565315823859000373847865542383263620174673382970450043054111825984270223732250013262384732247656000434000329067249969584376980022127826207411450808084016200489769099215724144686380416487365800305001686061473472340780377954142176368985113471057730631927332886302551323844166565654892198521436128849969148457131646634296314045350591422614967055159710504691010898414514537959777288448268515156930204121664984002156408239143621801522117436074708671666246259901380546538146831474817087629486023552529212030076206601957359951441025497630026878423577400296578295825562967640624836103470581365161547850316132934330146284958210220006020988836650799823342069511907151451191822639430782643665665947447090495048834310950709232041855700614774014362859398575732583157256286397530527515586816261756448103957461439195451599073778559502878679230747210658109168291241318972073249780974902314984998031932846398663514854098974748988889950787305651206748347616244200720107445006609868836762052101033243879605646336828135201451718108703076702291597369532893879842864122066978073956797582994672115210991835894731535092986427728788814118224995628367855658751823609707955982217944662687329809176186966817812045841157891219247329866995813441006221088140156533748593741403839148466078206940928399403124372424881582381528684393468026367541124348933646456485696535742201810740771352094982250034862283090549742765321839016058836780677988731656930771475182834096854300343656216631489171933833976404429376831232573835794632137310819485707775942811337282113720177855020922144462980132952309320781997213223659958217857218710450103237249324086273653857882294639254721714000479281813089975392419384543703036192697443166324307714879058105849651094877438092994465273707365441825344552609408597943931357418331154112272627172209411586677692490371592339370670172508497764809961134201302167812277581983841108897801985574923852477633984420811059977511943125110472208121307098503424139248743689695627792228906950629005660137775048032238321047198441981365843354759072409925883184839646371294091910026548446924012266518441870232767291549406810609926001583651368732009994743319266412565994485511226402499866833878393291785264795475595973715898647107968311459936046536305017243166966264758445154786699699998120291722277257830733063578744980104407763350461687892186420884112013167608470824376809859896153380446138071632362818556374986326035627981920570695768851960414006457008933226300806143073156547686172498526721412388183601797091569641538865417878066604279634343737497945074982175836446406588658754848976849632091330291226602964855202652037736560554661606251046211940392887907336387956906849801650881663282167336802394868596528130469778809231010468015253388465772297220011389215250682326085987053440390470145183909970878114423482730583954806420321751111257079165030253123427095488099062884798614206185563936883003692634060098605710041215864696550614048396476728675574210057532595571646497995920252723852882459108939523345160755140755207995496313997053097830149933652149628875456224205954963297131282724072790574152701752645298760066376100486209140078683112085422018194178499667347525342689857553207717334710478589603489944017167557742901305051010702983370512667793703850664275310812067710490673556246707548544469280255397405197346393158165843514369245164353038129392375141786281176639320196907769228879450010963181077863465238630347371268307330512725625223289925459485656585496293865449383530294705358962163312792155767344402806028092913047845783618893510604365680263638873474451527006821734514229770349316889363423753851960304619298487231011727445705754063488125497087380392657876993848243733131217441268108365125517743363924625082096886494389568443035434315692628418829602823270228672225340423553997066248613957390696559480755888849327925450286321827501050475501255131222642404041092188130946372289974168982153573264423494492756737128993234313850922777868018569277805544298482175509573448227315880238591024859376713566803598744834223390535164685878034056531843278788134664201402208909876644342449058434373834721097353850831126297412417017917024284004065427851355794644569910117550088504267577258465131669916952887620780196157320477347161884219915233360764097207355278658189813514095792017644327146690341220536153869150587449680780992863959586345911827424083915776773188109064067391215886015984117933036284095393420130246908427644595749915679571268020024107879582290109520744630889394381955133131233187797876499074050453516228622173852080861965558325473757404007904838187117706635526055140124980860822952917834086636819755341417849389339262064694007990719682874387059861214057291594526566975114824784303050292943707198908232296275721796592379982021188396033871345002061126739157772646305510955731312368500285479525273805296410325034017066848172876257901723751542431129545555800461961308494619396905314155707229337445164559902356897426860491789763555048805462317487758872518347308148907853252553774019819032944178444660919352291871956020750948710420224113088661679486307961829877033234051045381718595485771102718261177892528027291356244428992855642837920404245247366941137399080930484705813746603439413959466558588968545496741933226339087775282028856984256862001700496844177361943136061428562473586388660999575548750865185858581801575212285011702301393502554432915054586914810428186664416290671370658264726324258426756962479640555483274774359376095678711817898706635959721015215674730702532615268266950852615691155758983529108525837720071657499354141261059393507728105265810113563569317863985986801186968716976427328159362585873822201847115428296545606620645029356951057403094212574084723355158538129015058109445975850825033505387181999268937807704066032086231844847494879271650895723779633699122405380384592226631704743313567867813665559897897220075445302569294165296394367543370142529561189264617248603610409010475660654653682245149877907480237319298874872244367225146942148414417305491696194573103420278396591631702798509897578563784442781946276010042999922181136375815832659722795862183219280670106675653592866280788447932162050616768588436201876881589201887759633504421210929204556947722409842893876274857321236882984112440189252212882270099513943601940804291710812030017218891582024104695311594983963020406246285710574671376629912707354519905408782534633821760695802773939680036959067882717374318831703879493842450243967649355286787536074284970668662786500668097084801673434367959988240015693281910048641719482149284728547390263488987438274456967750755207569267443064522725057550057096462577558901397697841994431586679428636501028404590321978961908849708714656594109235516708705026847267549137315476640991022245849376696833372990015990400390439411849482311129454343618325234507737362080644575723178841748334247412015259669074332162410614488576300040167880087802351637546681498428191896327018374595958592992544859111859456670047339336438058834790362909656091518449564799442003777138003132708683748081164682268994031249163004863498535328283704140682244783126860919534556135641165864491284170237813570641180449766419354390502838085191234827224060699258515895922567314440968062677157152635745564074368325745589250229814964457114076990691838936575816258135261562512937776555936419939635888773102967521936908911602176716155469811210708471376546743787060174612733953556455719769414063535904569069174115752714494314982957087452156063864243966760556149128795819950420402311100566700673817890746030039324463498438642352745998135524985513110168738709321595938995546177986781639624897889648710597911657196544224889080031697462910431638081122620586331482609391386447454139325459214247546566814151414493866310514020462661784944220842726725407711510787101276678044326923789897904830399623749617692385520636432973297709914694586644730563989953330058731934291532322214784488526407420910884713409519446118157430101366583388319788716333434833201196659250818158492476113100817441469375576228548671724338182305709242027306723598455313392901486256470061382394369866751268279177092487111717454939269011185495651752065364650377471334833522909535373290712676799343476573238128772244350349772253992981180869756467912913265687570554485021049495650764792228267374273083026633183735949089721343194748127990782777081203323922669820189431431718250271048156640011530119756785153830191009769667349022818410754428160028081622476987502286525046062403634357675695565660182732561350360986177562021574785669388205627501158601784291043572563601173385041296758758740814038711794893259813767039240077768868475181234060869025744728536465849795591192785780209923698489444771734190570274738984259940228864031634941423455604845245266780589558721166706669254675157093791995073836500548256033603533315649241794477073750056733937118267104355784351723485425149958871781001986776619265114650900813503389101199611592210349455249462056441400400965713392668443423265260438260506707551353094654406747140663076081844691260030925523160645781572043582746411711406779482052752494948100911820858728318477014409540161885988148589419083112251490154558008647990145649755031738966505476323259929345742022666831638893091511262558362706613207627155414377366802715462687837176266765946543295543148424327597232189450842972509886275369198071375331089518205600240446391875961484126139592040955854855518580832651907570091734398473166634484273343036050632348844646694460933220832883296095688380411523898403451266024684232148912154524764437370531325577954065656090945540455306205998856746606123496590434249809328247992301078761653458409182378463107848988916540678254037906893653702450780704876113318251373526815860327035011923836162949297040363884718437717764565157045177963641575681417642564314146184354540941748184540544151610134569431524966198168641568685195719336713275262357947343347588299942935968599736496913602757915580319403206269637695055829715945326084314533595991839474361705281845923693005749043385107405774298649232294699775615360067752584624010958063797154521996393240847381179288133588485650200520822190126870579095788996090348309184181306940090895164257219814851095770358668475601396818687873558809630851747954609119227061504468958693599895552820721772152967319846197769015734053200370421859645543570531408179899317542004619265155494108008960759883544907557817633688325608667342355092534515566164788220877775196152510895586155546856771750059203950531120099726857347768935038417490457481839843539706955789766943884117132543097129099849816157730933291596096964081663662290188770667161145253517450870559046344711878251389255075818140650108191994192848084077599343677325422084226600313667146667727152601392892740075530909494139825261941547232869419243628014793826007270646661331125270580366004963143291882474850190215042596224104539485022435422336031764566125796448078701377563111716424764258820283959798913457530755598792426869008607710116145933573676343051663120704443842732194638906876294410164142215123203696189093739043281490994797856811467438110371705713168023529456099839266522561881370525382161576732411824319434897994750352039238180785079989367992226797216192645102254985577705264270217767727977556414188586736506733953163244768522706896122766365960761351922649234445253833029256814213362420778751711430838945508392572225276416356772247632644406826075771068891033022768205677349479147638416493611988398295510215276565513784740882274279584863858001844505069597250064172962078941724860045787146830855274933093353901771839766480371678645246997032391589823311038395883133466809410975058926653398631072401047336683325749638098312177649180217842960244977105727955785013380014804378412437078135248984707270858682717051486383637362455290188632050028155435098813756614134890702148197964655152345526674546333265914084404035544995153739519441591493458239721407088761253176426795352933995505399658282017885453038722366121523314469102595991105014236341255464412650745619627433999843975881174356002533151617769488499043578517828389082648477164166186981808602534530772715987274924600916979689413151632337323015934275817555508271659018089668926112058541338748144166302622158318250485036744678481233435066078043999768869291838855470819855356014507238974996938781860098904871133835748733262087195477707846166140274246434181506495800488368108878982679068776515641392004568378137898497645932393894364804979478949485775001559381944997513208449079525300430667206478378480004188454049034697447593376305797858974759326713693452349195305604923877669380631180537727657884934391390768370832185287157235898668766866008181432565496044669606207959281468853017958780187191296615796699567017779258426402439228985772911902418308706976688827706531413998844561468231754032574435902082983822577950727705813316340351933073824915856861696347264379081238769344422312369330423684373450118079941191289130409606249678664927530162706678823257185790432330447678310526230962631313331402949020027404685194738899261239836926895874886565115442382344070053592214795297146675635372645606689446804230066616760972055015375007133404043943386061292413682975340297684440028842552917090596578402596801690403093239445910859329016469628423632790056504689089903446966301836341018668156265626114538797392210888683862836717589168818739741056032683623172328270732239699093200493966926142004865161215842388461843091271503552758339795163130485423449340037030035661097657571121926205191527475258886381508922926675446192635664373034817039202981988539531200312273214813522642340973283244885314040672734653732635023379831071427917869011067680603465992993506558922523985874946075320448499902311298065172997490739193253508420381347175537222952505903267795595442537344656820109824154723600495300436846265257492448473684032681939061970859139195946977534162636759534506650982163747389605914188092638476229939369311750271608812649123323734534105832912353459455680215155504295650891124305480043164266821836419600085576734879597933897030059232792663671631649607141170209357659686292414967632266048499351243831128359723357279107567106567423312658046854966123621466593485618869954380181501142463742513589720445583727040301988790066700985273650616344655827636228095742673774086492519892532271864221705910976770712632716943777973839860781413821663976332498228207275845665255737483623184684641490016023817980051354684641818894018408523180189437946848848219816861800959411711718255963428422276741331462089683326486314303463051686541395195091884850025126455051404823190599623713086271195733373603348142823806313828170025884471219091006559479189623184443341903433623412191485549450625254383773726340090205539120843530600822510699961362510379347254179972859193953172896787779518616936991717561448226635992357042695160435482457944564837070252592419433563603640818627730632262772057653714156657064245138481030058269503459130543833618981474935365205022644738613980020781674663853890501090542606122776439938082783625395008452402941449069086619736861867078819639560040574941624212858455409233449232527456211036090312623315644942572945392863292805330927796733220999661292388743313725672768356444927946913106664525178614483161018058703884452132493486109912158581813873980839813751889527729020142489743119200918333086194743824002833900549544176172981607146153297300949773924371734305860827507051474630008184207694782120929798994644564954086340149581380541026796577895631378398238695570277502540673114452106041710493019098116692898041209332392394235501788614036532960798379874412447455062226995243090760865530101133672298454209218705832365380235181997767262891189225254153367852604971622272231660816035321573767699440951941330749712454003096579629643142168179302408688575305395224034604673010409027006712120997700889615772331108849792164465376810978585877472781931218445235523163172961457759002964299776511011516591631108556922769186385561922860895724405805103567827148572580361321496355527027908207174376348853031303387940906575784410296579483617334067354409002136480211819948046790790634100218229859965267825650717654231926574720039510050265081928463272426838810741320560517060375921283013501725471383275364084098474419622091106279642184475364790369355635537925065751036350498515097199671149770227241061640607304631419397271560692474605163148113960164107874782317669133228657294170244841045164408250578541908914192724571101337472381338667836126784047104848982934710379290534707419619013489457811040698369600528771184413400093615290203060688926120461667709544307066807435187778974461100632826893704376217561001998747249761935997859671246366783214642157409187400755186333391340325460534430323218893350299382053771237845101085168165336517080676595461588819448280187245100718698263242207756418124055915447581780023109348305908030520656313826736303212749256027098117295098996991819439951592063759678296543769241750316890587673110910879946947942902021569653763871626072395095845762608449691091844438296161851846735187392764193687939396967058125016583088488337616175951784692213675809140633615306585411961518272488944933109201239612964961434301856759896319641121850913419736616223465461764511983983549745196877159435118735058027553781656178842074058266923901394716372816337982110003515486937660179576293463878785149020948697953918255536900749152873844047347458651370138148938372407735474618330437296183788626012798696604807403502789678911415648951905027972891572741400961615998308938516946422789413521040418720398439131516021747860495056812466130035115816499803921973337214588088715181592599037021761372857848332985719433966345986909857114363875027235911905165351270745176970599845110996368833035083746480630559317702557666381737703404359118111955176117436584074882602931231075654644233037025634756647907570296624505870147638321338620309193142998645839192032698247080261800078580095589211370262943178329903588390724266592320486186632104045335497317972335608616841503522571070138721352099520640510824307340956803110571440468524844158926188034852543158389600828707647999519581476635280360867466329205727584646122730371216688492742575987835448204531965350066634160422107974069414895501373266458882213882859455666521222108562027048793260981960030770529265251315267604257343148253778150193636664259511783725586474539901486276415303769150282262401972563371627387315499657395871407450999361189919507211132290793869863628388317267846265501053842452131250842725511998832033411344988566696285686174998247090885623566384167969128844377799436910224677049702405035479628502519808950644865157994233824888530938290266380051482820230137472339135058359027436047610927357112843516909929671323214147896099124445355506029906100037210913355844128448519535350645982652748272744377554146069898088622358234756670184487156587332034848417526645229580058534903441468322758395378277284569805001395245899147727051672301003955050592326777408071871163846526073762470799796889577873305317006177062429800935543194851384520360738123695072304108886682905291087397007063664411695212813584912339157433599363299233345649867491298125159769059525725026140853327084792457390303867087269623554106055108941739465540818439696249416219291868511793629442918787970594233884603734019008537118083056661211174441527460543676317946192391144754441211642646237963894183767254438278117495036317909378141077353230001814828132514277470050223331825665260998453372050120795858801381771330289132577541200268193351461568357812732640042070192847951164121731707065181689749074522622765065219749769391823749631693037273295250429172958278633207893480258363516662857385127884260357012215409630629790348606609312147691463979048108718042632396740445640565003856045456856932430161094082104365744217342706476004490062070209006589897971493334672610356990540510458143772433765329506790540143372180394110568038396820780640123444724170526338118124854424454425665341622218205408142431415605509277017027017982226771739701862730205074242892094721348424973674261695862758415910106769999346807812713481412332734518589534156614527141885816708351617562207480333348315898746103606012655704479327751423269683447068061080012868853200839719080254231599097489174800497044012618002654311561479104917743912361570525587711930988461215663165409535044924949685781292194748432634723462939701411089058204117973381017926555540477928351991302943148971752435294747748766191372363209553154737271908355972091048436943125356078193743435592300719906368987866469635901934232810055065365794832770174063226243524275057127556086046432239003406247564485126612936577299512400374451628378474547798071270460668051865986743279627420196912876516425528891105174854512630762872106730377976469993104375301880578726657757909081425212970051852243535215022354389518900596727009114995812789598376590273974742867477944909149645965805996927861418769713023781857682108186069029851697208933525890555540632960420932184180859765690486427004114361098271134923122708009542394570926148119545830098120410725189228510906404854039845031718760201703976130956069325715273113994465631877946991616135831874686807802796837552990961137778212559311094723520381297469123840399123551335014391933465908408303252529329220653558246312092519596068282165582616825663977412281633250334391338515629283853116811353178712757326668961712305268850105961130588705920694117362017311481151139833903304007937628408858529435535283520373718722389336049246210872401310605473297224333293112896806624223405714593626768442014121935865636884336424723985396094930678977690280995947723032994337797095901656897686673771139163816892833252313822551018108556099793263660193899835442045001489007552085578241629778158205481407982803315711208088738988463483242595530880349162700302172533783022492689112207676444713292993341133102607957662679405196722676598305406630914768073673609218191911014615606146001076644699093988672967956916468865831597043998894764605546936917786810887223646575741039752325678134578501883785240567260467563721796371723186498078146937063040767142487233188325199731949712480476841274179725260881791784518528108469685744201750207642813023791851041154123708648411736616318803306323030503596137428471354470814711182811579871117886249538818058990575167669816277806952973334785971827274099037295302455222916854841954966548922508176435891609968146142859605112756734156342639892531833169176553280539212461014710898015710114853034702866933924098473645013171957365546408588405243474219453363070511190650650433428454420202485442163255985580052635509218853737196344092932871109856476831060332386284364277705117715943921995111181999979603668126017462731273994181931202709317256675321495952371684447248488566044289830521766209968697821439096582930027525109425426658499932275318046702203521447679307162199108084886452889658481146311860747425513899177065102328259068417761642280262086376538853442425034871580349953713659141773688989696211505244266300987041550897627448994053173726506138281412627725899618894114712537238678299806778784342575197741432800046214364770681721182359450416372045579457603247604110379666218420061109160347078828956861485635772263641435709682834010167301204196821824424328763537501673043094295015989852341683158914389633644654131869948268597042164635142197858702463998168996373487368659541859339542534623845663719726156687319137629110356538863939358257604361461691475322984398292397977281631551419897028965184598112234301248272048411834776442661971043218951250907923135798764110137855041887747035998593397518353931641488468610034226742861000853749388194855960020320010133327130567946536130991028691891406182962867571040385355119334930825148799694700372063146009105410300452225042341868799149947438141603182980579387391061536658908969824806779470775533678561960729819888806974022329758938039036394394280398086988798541738638193621048270133123623733550067353565576207844188634297325897562216323332559158862463235470759170653508816395253400681037533697998550375569088440275596464686992375961378652706312105990807870713237066379274398992983131496050994709779180026785264747096049992406363402401404147159667492063480046924047450751834106147474154529130307883669680928077857277769483124072239948095783295012650282033771600468496090478795994537633462309007256603533889813781075417683617766364151255817057916657779442614269903087438034548143190747849969548573180825984384031611254342035495578297072145443304223429262190638807225953507417142210271290278699978155144609608293541340163807139004008671226462181959272163335809851140182966385053425327358884388960606752260568092687676939732728216012997445732408328472946793262692424993701152757375637243628947857486758804164476734963075632575904183806989721044917755672153056649865825590271034210486384232462270282590033429481117125070674126945954248381693450692253914657212093621179966332851978003827758824549034930194799845332652935701356374115409990961878276672763891960570024516502411092910262425374914951777304134253049822180196696523070508198637770355816188265727529984087292421700741491132135678129474108751202229658662273764268980646981832545203897437050685124472337408138916856213919589140887191065222318789050986182734268878061078344913857932043704272997970518137389658821101943556541494685674336622748282302231047844724572941054632948617028464710063057104650926664640523241217270878305090525725718542262909997436683864387788478095149234221910700547023842028167735420747480753563767915451080751863951244305253148947416288855700594937185994068548204118423305046405735092263697871033699512661867985772250963272367670736310488097239933254510926848065336079660950131685514721045513494124274546824610112351794180587527815534698697776415506461687878177968120635700724271235632396798676988852170665963345647882942583570639299678846977737749125543479026476636566009893631807528781988970234699077068746207652595564879848207855237928910504617325790237740259950009485650837713067244930357181892923831596509404931189124722709110219724592795788967269793699459099715711281867999765155573828398716556318915599147910523483841307255679303737171866362820694862705996128851209636269083100250613514517062479420292794065539155503236644042627836559675856751997774452322036450079853010092965806144262032342439837281650630283907478310388477826757281868127484156987513732218354593981614947676649017237546389289680601672026316073099741551087619401280661783602875236883086961049658469138053552878240988120965460436732407649819546038281277417405171542253946756057785451874066506967335872868959264471924829502362491661333514007347073547473599992099534356536030142188959715006129844694996497660378143409885944223306878115649081822419858828729092837160098698457475370051087285529977580108593501093265566929829493779552593442846550613871706327185244556581681494073445650508665523464160272552856142689547129445653720004669054283597767237435243001657304046645021392664078642041560910289314700154900138942624962350667347439384669646814073704925552512742625690784735659793648067887453123712267075900542886801832381900573077972057769523757665137834687627495766809649868200761130406472598752438010274072520152637012661839703028724194752182600603182695224226092893953726851831430838371401073562237670125713605635943928177093501681241888547543368405892388594329020486701904332358987721818013183690748716980819301458505988453380184502330378739191801974148460847790550258761173782878064081500168928674326595405176675576851390301996343912012200594813568759086723419077716311712736062894748139497069310647485659234834551350992346700897698481276582387377415608902135521174928562117218030070879988610863423159072124257212737163583479267777709853376082105821388664484930222070717101475011122190660775955415957733929819149426645347320048595578115144186071308802778620203453081237430927509040085310820020060197106499102722495278938740975778045864755886073750685898848887402983305059901029960522370054330173850453432592298290540610107974133306284319543752072807629941327816448316756586891142636252497463401138800365682844602860971449891071858159422381359286248253211849862101685428137039029897284033489872297558010361497887168139579330247412060430728999122225623774992444337871615364395013947165289620226626596240557896623451728191240322152482186178495393541349795979645923870948727276410226819177009023257359708515229121627927542438773450859922869433515535304389972105241820736692320997253179331587715493698894292623785017359647534314716415533164450404537915309619094257983299592945144585527532011264299539753475231526505062051357229861911320334068203642510009486358937501341181271364986978501819111490619972008522806876515915618844468509553978591322880123029762815409522538387427853433604657475052885680980114089178758523400444478343090065513372915792120548740015748281525801205626419310276144668100579273845893984801637487057335400975661242064086489556305052381160841523357529452668938525310101532777888436770074935798070947003350543270624277644019989940567972536174059369051921787139675565445452863688032593962124291919079551985239021271897927199978855138296244076021888271577391781843010584194674946949814482294895373417288339456312305515457139198081868857288931806558806120654924855948414455514743071835204903103966374158504737066500013885478176126123497652635896723347678304639768187824941275303508755778303070464990974364073684658025928037620770515470016484589112267769593257794629460735708625396044812475300535053250402706977117589087954079644102663384689371080447297299383820167956078162523475554849095012438342079449300085052585732574007990697254382022605286378061528190018584367942534389169260544179605771863212382163145921236457095084814221126810040323016251196595298387698699319719385654735374170924203569358148859078023864348084579029988584505628986209983036954991385865384786208915165518050475959204843478695928947960082823897898156396649033893994434894313556067905880930449695263336029630680565692271164430432340810378494494909206913817745633753642910955664997365917524341936318327336371572157455682454015296772607126428366935160863146458537043374960436207753931656393387073277204914642748238026428227026647989800453327173391418825573138045915312888914730675262182828738097238034014900436585666157673251910408829233408098050560077023087607626868498129496091046663780807288498567707416143057570676693751047891648923218583726344469596045835791095969929057976034347944501333643446997705888705643689862388304792397803080757655873932822432542306028895919224016814142538703234755681725033677607964903377640057326779342014419491434057303793343895148614092693470466810462103962421571867964569468696087412697502255806336383284296044448467709959323864225995813017826948079366236835381192475046775955000216195211921390460029288670920720376900411380959115137611290944819350202281062590475332026712741489287536118004693884482025773623588305753135260684514171088117070248771526088842803775127240718952251040728230584595696046382222359592307547627359415284914412559779420605447099658859735189743322115456195079561383041692974969448850827714263012314531064098187493594836366700732203159412626428125829166381155630722890788261724393754228722613277715484262506353080660412975876105140445067792651104628740487737819821304098055837990652288010219179721955160743750358502298601466734836674646986283801184461343840210716969042539121332484628351082998079696585482437454210913554437644242917388933473097012119726974214539431608642817113755174155684225584679414057383757456869270939180965402646466702657113961084585364440904028438976338856911971882279587724788045398997304599234717544749196360238412701500942811268770384790460052422267206726330785308764061525484431102290272549461442954784632223601020350629671956428778858725434434083049946879993066413075600015210764384525065708281152758644602261933754197300387947142662479598588958620703908127457023854036785635678541660913266761720602295014105127917307737818033787800534486128509156784751553416080016634769796605465942112925648729256998143380149524306292481955743542599186084160216686086256382970437276514271300816465889986565808821031140140514888618773503800524457560361180646976989535480222143109653084921731924764406717428693347624188775669161624745784157377341971908090138033382115754686638413842104267148176693572793993655168250740625309509506804847585101822414149059246505638377099019578356545628994914478483389882563343993779793975192404591355760072455088033076101034416056601434716963282237807433335964049394738906609757975755002937744545401781101311676832089082398354123052795413329785312611447031145022387099092358428327099839923031829584029297631586518997013424770025717070733623234757962710906112150876452856685093304588833728954974654116626633662038272054640458090722225097085829023410601261335595160682727392229186005767416423212820370992986322285806551355747490055907646067961374862930091948690944926855371629583422293947523284298296837387512536471930623361851896973966306926154450266790719201655868659674781144659467637950660038742723672851371027220676688171346447974852477468227588177256382768117920798589582149691878382080644593065503617994212581190054474585563729459285142548420138093310953755894748799675648775830827255047968185084424431258720102559457538320083277393151519621385021100315450449097619388276716665697079608126864824715413949611615984248783465616533934052318568408918254346326432679688500221514027734040677467188863914573235255055907482097059364514860933605602090047985278541190547891432007057136936319767992133411758151631219633955668278706752620482795408416838284777207077105661551612529499622772574681653784534287153977590932134314170084186395456422135783704659622550897109081638583625857856582664497944542128829188019953672420916724842572435439409861518804178323859362315401068031120252591191959919253698808238744103512279983407500475951434381315202948519703536539435163780498199044997430103035549390303711303532866016028033537822996237429673211329687499917505164102089956663834771247058003270726891192301097261413122723550207932156884781598653013744052027944937673516788675394706659181576231032444987929148772823839689780927974380294489965502661625705066694105278149462800233573004936864864040247948259551822808392761917094490380734326223037205979006720642433310072042506222943542621903635317875699730482570083866807695958819022763275162197056516185519491070152676061171504195145957117692370079647250791310553691315588395425676131620636394619469479164032865528780790153140217301476982218385714294899512666446471511153762609346714627557614980217932286028094642315206222079694736187829710780918376549294957937985794214688711879921022334164362474464487085444700844758779138819776504769458077637802166817151707024034787434111151771820224149414243476576957056232394888680805230671778131170181323216260417416372103435529994595999152708488611090642829264205134606909105878346994620692656645591141094391727570033651145741167708327645284022439293183527238173675759325037828280412293891018950547308762393059701021065426733676736614484312238677011136682131177139822060842322451584119499790072215035039543977460637953790332169488200989714745111647677538831357569153824263102741376782360283005062224768806099258798734996445129189496138565380020133744219521017344278475767412980388355577497480520765307475320206643255100221604612957541354061585100830437433690336679302310571414510570847837817410209593387966989592947067445177421145297707210644933344572862705224800343735560967867313376059854607969817347171155278267511917522660157846043772689116263579533428349769948496421584725531609301067319082260746143836933637639580576275104446278125976683721397718292266454681261246118519606162740545614105131248164199364794168152814331645605387544856186178371340698066265570529703328871559985861896839586175979968166201284900324955656028321832393690601688925938500871248235863890815023700548235977181488089953657081561357564112038701954487000714496900435963263868894241062680406645784096114636434482246686146209191516557243116269839900112744286709222582714699826287950415102387229889143042538214414897625916360369363772375592124852803392315525022597216715861552232019302029467502801242332114815566256808244900446453174260894955489875265737008189296923700276446432447871309310416560510653076206238485774884810030912985929885466638858230514045909654840955234644523579753711766605006548569383625006023589628657602367193759988423344984823860535166490999061027225215212750834040513736395808155489575381662495117605392138105660706505207332110060700741573486979371163978368405335496430371518649712915557836796590718094069564375333632104137003407127840837680806985836164919383064728842873957314652802516291110265971843699945625820172668822414003450401137903113185998100773955187501797584632093794439992122821452792099377900976483175790353636751943957780458202535216680041214721839528221350319848560806554983122833908218379794650688749112757324075724968276203534850003688221298191322407485088607420921975670428568862484562328599999076319660954630094010879552763744939619738046439608230816236705374500108976187682593092031458349117571618005948106447632293691789867624028722677292945644938686138145449814090993368210523160367980618321351545199580039224637567218924081803893378280283698145557584905159736175449442042998368064309533421017461443757132757488240225380879507252762166774788616271145135887522920479367101575735855129829506161696264555514847195826757355531656338844458134666015432356087938238157269244956325251773795666271879179816419901787287763644721688553211969358648678775072072020171122691291125637789572169397608671849263774189886367739404784029152090296759733112706582986298245013335393962335106658416785969095370382610822306681811519612573744145796152321233689533255136820116409622581558743502555977349123035920669066293541863582536101970485406162827481507446578100664710852948335400169918428970239962100300092447664420127329403416650680746308270513005052582353766075859165578040723324771694817163915221437744489828528416866748977939208526503769463201737795657039014139197858194747664894691348178201960071957361417251794462392780238562793582478021505965468563864042117690422793774738997550862586039345972799962278996575436294603095751263412683099308316339573562663291168316995926412443143576125041831588875871169859204110887293576674631562071910568213241783287584389663535142620275719188487836977623570056884839216622040294672006952591387821446261438656852557325187211270809144737745825043623697191957579818479919674862904496707186479475338493999718451809051110903241644165920724323324368309372120321606953950643880405656106426430836570093795156333262739675258846827866265060205842310723209551552916934847989410940238934767241281151351711863212034848172182651018012363132961486739684789456386257144567383777576652047328402341821460609107224230284118209931389071332679465062937660554591732214098364941185716888959965319579432051683401900877836258611043505814150545377897427407729405883681074458674593125853873089610710500061129099425634207487804392923295733276288834586602401846749036738381223438757209111093059306539513084417972020810941162788314349925349154943628313704320008781756793661479927756805703173138988702349331850192050613338998369051397833073095378488616030664659917083656979710337471472588510884616053433611841406719323246237203548544437677403987579635394405025346085974388240527727933317121788522021727565639772913164528367280837777762463937219906030010770253321853051471516458285141439514509390408443093019389212929566504775418479116467183725708977911841264907024537866323907580389685007242868507138993545186874861656445713308725250446049778144925954289406798621974062278010198814484395346282833132654028381141563638905456946690881996808211726157034186584963092601383707159015783815729609671665382444263647329471695408067013809621650252633106174554694718450994061995762163607477251863589264914182558410252254184326646586225640838057741313961746112709823031210489159206920406534238801496519786845906216960080137770975894838565819658875237809802403225567506634577980258177812500609778549673797524305817753277726981335818929498352330790711607360090535780543577549173638539351320061974120149395046740631220729436411903763478315100948169394159385435453517543162721795666466658799379822834372242125679510794484022128375083753093686313607059701956643550634016158366014160918056898777777517810076821554880307390380665703498950118036340331814051659863732619396143106599878292448030907527807236448125427665673416089302280093431587228189456979911526821093846453363667847426343718517585812290796791917344461184501901822322231737606926389207301046923696403677865174261214520082013049386305884429989909876828114503302558397868426767648062586800776211039398608248493266212514144268898654644007172144993272160233155580407100185107560738423532392991522330447461381662642080368187464720373448075310880748747749962554413946071122832251006668353451826575755848754970513027867257683402173963114800876305528664916655996006918875131046937253157387394763686753494246631099304859247726312259258925413688027994626446590991211582367890383690706985983433453272247758626037105423363809854307642312584110700431587265566772586860558611578096767996834356090922713499630051836716012264827482741058861493563545982257452407958207918843570629985176736880331412357368469803473405384093948101691615464972336006910143525568351884741512029324064681949626421100346743703302878793138014669659861015279468324489261658963292320915012300388186765243478582565168320353429601554046443560821648443991685214127299144967257824468990284220062318952637527640029598399189410519156729272283628102471242809772449727384399549072297150268405464626087172343494252730356170915809427966569526205214557898322901092717318696429257135360480734071342700110122121362873459456163682688957555285142123762157697541295468710002537365828714464954549625660045932734311252157397274305862162533465529137977230591780567590546413717098811041537888429443379896347428970120497373027657114494159867142253324467902362012102984504851350519321028958058710505404841253627630440082654818386362448846074266361405208928174960570622118582437905830678244307391665997993553448827830007025528971121791900313460173106249192059488332546070447830663876984391527876758541381713980929048497330337896063846688709976476334913876928996661425863603578438742095878893012142472531450498275538537126681153260562439382883283510771141858788231743989376626530211413526230934712423453585710683088650107832942491810274342311064593156955808840435947523711227341700327043715177274932886843674054863080857367400111888058024281513694939853824310453258931155049396443565647850039014539598772383171650572612500316146828819060408833581280714298298984756764639914641738983563495163956679393783950827489475391700136406148410325222943270698269996376117044155698899162825723619859663136184202713009302032829472371053096929000556425790849794748848514845725320582833473465852122297751588322967834287596810156365407114249606573296133332894309854237946150716161777989063459840895494886233481909926460714652964951387825814940369612753790452899664983871405433174925315281130243527498438843640957842876076766524856645523864682315792028564649816938382217203766972472448598711641823545436862085300265508845586380525725756694301874987451255864875959874350031915149536005525518734619344540969756431454202476177798754506552478456967066890619109334197076644184755506723053510597692235789476234871720334424335609344685572813736750321195831350047363192100424216041975471206230463632086422573799539182812551173363193394284206854252021581689722777214860212824622675537352434188847672381220983738527615577039405820741107318451088895570889671389190376273702459185014599907431935531343186793782978353371714026518202849155482464698878445662385494796180646436096913494541312211982185414397133262249607797163519021649618820998533335276771872779415383619723614169013142543605238339227649554211786385010403638669183404945539305675274591398962717860950655115213455257334897043434033312607619243181066128613710904216776553401126135801279968839663461174197442271698196959570610038224244783025140176438719934336391413546841247797944661713555430731662990922440197388822901724095485821227970079342312487108266715794214032240340232344615360670375175635239122326810677668425326118407218338937260659017225872196055256491061566390287475633093249170123406738134620873282248523685661117569742974119803485438594091242956812439028252157565184852686592603728173327012018764317968736027929115635784898176040651618623926490981972181218539070816194338322577865580617709535833339656643330378394065274866076311764772205034546114585858946153233207559407675215720221289717947015129611042451050859392895540202285393604652327928815687458144080335410472926712765050723889851097914613736531519015206607122808191219640353161463182192927263521897970779302459720922993700975501514202226674620790525996980012754268550325415896010268637226227772629994972071691666075340802123960989498992900199876279628787389572093135141230067683252970556002822222325889331039134827311002488386644230563131414852732893594823701965285472374190101727213301490649857777222998732943785871612276014723307978656591816708418786884220317484734835288725211781855828378394281519055006549377875731866736316410939353380208720041950875093532290305657483331997541510977106616578021381116222123408906218134900634829768400386360396598093524649209506969143148309174531814830736571815902696647304902891901450488311749921333027041394474208285953515891707810048077993867448921501284100349838971722846066468441456672517533642622156058213717649576589742084548210875848191204633231586159728251937562894648106037820205732021445216298461017989590194700238181550345446609185273867776506559246813816893286509822468356440466794281565559124251583870007217809338619701367143815412984882672115776349812741381945241077278854496690741756431240016538513748622966298529489168351510733799247203511954464321087105530737773771403889544905183667119559734385387497115594468163690653682169495896066710294511343745208939133296036413142866661843172033740690005122244664898554364426588465796031200308086589199954337289119711092610125269127889057629553485996444658605406715719866141723715209684209600897980351620876949680600668937272491997254515986361349510674785400820881129936864718985133851905029688858866230603765316766526919842758707381453558414351474327037412596897043557193364068573100774438141470368587864975783758835907250681214335574002304097017030310031121675763878666965138259327691008470929884529269967007330993863365392902198725252803849222597914618336765491859530957849713529848102146838630752178717946598562249239841131410440074951882765171141852046935663578115199164580189487690425160211560282003818419672326797711998067956043270505887607969775587742040239354382858461841393247860644039532892534548194501951830153693079291010657957324761142735302742168648891532469062993461603447023140691455339462939258019224494129043909080274373070031376180985278149069252046471239325498832395370505960460430732642294745438859561827995140087617188059268396975598207279867401589792321126709266353578886253546357494830767645627594522632674431925564825340522288029338725925811762927994909002459784861823923661669380578602446508264598843480933269404544897031398527639760524955267694566676989052404678680931329376612188760716015323655961615312174243070209822486514160637912084905183566953927297653845228689527819901008981589582792845751485472643451255762266819070111001704824826580503261986851987123188359350389892836943155175741018485577677718808314803492770566719081458899044914436920805149589231045122346584504074260042895876341353613154462672956525984559772138641022825255963290336696493207500004178186399903996426940482534465398842573073150102415829258633928538048663695995619644212720702793533406146077791846362977662433370013912865314573408522184755277620715165453240993592833088350019694969407171201642075421619525726266309703480814771101137148496471559271741204610237306059464733317504621483447098210164853348896605175282901035127087084513841791595189813958192630988347479330195331065823792754363030855367905046727517367656750258361703482643477242134083817335656376699914079445331589954871896857879171569628632383207318957200398596143541131395813049081156268366894627269001309353762574104886939434782855848721456519317612462558800187221081469771888691425954497801755018251674634773475265952194265105659488296099593238464213309651852359389753012815645002052192720169559724769616468594628039363282093992018479145981206966194318499638143722689597000718914601949032094902320232826178118834822011965580639446518068545700316384444727216529143808714368560982215254756350006552466001376001862212756041766116990099585851490645225891382227867126081466224117823347345014319388644508279491394329981525269327429421226266752305357296192432739383264762572942977624046891638158986545954268884064196092973575965929545462804339394161566026262004430294123490451735746208930870119956887817794178883161782084714548733086548343896054359489005386148306914983705304150704358207168714142610157984840440758705077112636136119401970949817463672258516614627386910922588301044811050109040545687861294487311708390151059371986630669049037232455095213274182617834629753900357222775223113462452459961118435240385415309334246141666532182026641477694728419372606343947596040192908691056999108745991456373601009515586432277521286480700537852108533117094231179871153378216012848100596279037389378034296355160581063412969242710116200591034091238117648058102556857357038844348232893359718362322580594306798859444948518988698722572845254902507136318283477802069385540157029011050472309941005696927279231877409871195131674920119292963876176198632337383456241233603400350460443075053106513147273640234835518784349418578714014508850650731710445333845262345588310537711236318186438348490615860909657776394093551130480275852159757280456305550065074431191435867783960056235601908611433813552274425741679456645143306186939747420395623842320305860611904937338118030575737166920944391185593673129034355022704051200076371688110792636764494811829593349270718253557324798571493511177280010104838436838394754438816787564237833787035065759405754730816152669074763705904968017057888746257383010091448992828234148101712945935159539267425497146885947068936684129064806797747865310960116934502480750990090429311324835815543203157734926941044119177073155781160439870197518584245824192639403072251161063014263144394099225818831989901993719598633107181581975804822571900290444801765310930861502244012443971815543945511279831463001902764102524128338073455417637571154771050846805358509345697900646537698741757036368077541940441072746886368103692782908033601046786477595934866663459831837736105482653477923706666224773155246276337548340628663946292546314325890406599754906931224435456244067880132863601004109157625045178099737280001264863566962376612018465181797804903577870133383062757740075092131066568075763811246418197249340080256422295152917344102335876179392446220245317013095856667034153694428504705364120050202130795737497827446011585019091946583199316652521020400495737207922405372870262156329987685549020240246977951190659481727146914037062763584458371209312174160489161182859965646272786859075114538961198545739475774277056422600531362185474659297198892679742303866731602371107415463228966098119683560990677759708919757300456716104540473984957057560398148362576815254109799010279850750956796854565279018852432294268243081917494663242213402743830278962519602119316788106808578151999786191670608028043632021588962204285447999290145683833882596577645710067067389222547169307717273739066477176209149319637168174344073145376861864595112171808418089003150202444363950923094924356883952599847683446785464883625934914447988436946738660424690009569937045791329916637196272599655178490024751842163045548049149481395434733287483511129478424526654684657147832469152607750639803554051674352170278744482010413637098040981281785335264073423578211986193690482709630528786946638760659617979304439349370580835023400900606463371170611748437615608701505779826450323292079651418670560360026612710819700086574708720467121713780900829043019112524938121496694223557129660740338986584777981463085663680997705975492256881249646590842080675879941442488870701214633921561059949454546821682423227501452455829831628659132004811025486280004032078707023016312208255942966309234706605989147668541583475760229656974354277044309589653049897091696006043915141824349382230711251962270520348713487836708060920950430855434614513997675025660527479204578397062443329275099691466324319200632735102381162461233596915052457968211383062427221009822112864892889779026130616108060230631809167974479559817044523252656576079585977451746606944731374410368196105696017917957976670843951709229538019315179340095601328011050545881904240594066044252284395591856527957161661318572823272094649937212490271923216770498060515968447367628457450423150090885879834074089702473892367464166060345619887259105954663284533397651989246494240175408420818962359742815596697326836778424832020984578653398234390947188369197339768846311071245514050714269946254223761205508548692488745894251190935793170846274591824055787293605753017621600298079427689083374683023870040845259609942678116526303930020299385422896954340385438585296062668198401215909196395615210634945918797808377789913310655330309118213086588025094265366165123272590977561714993175133158836012527975576150118546226676826416848258170624188288254296175318150257922889298339125228717246075095930122796190099088186702460382478405633636277936447024628205518451938833480235747004654833062489090658308806506928973084342592321163994894959948563229773470714909933523568329284386250608705993704412531448028016740988785237548802003129335137236099548637438339627123150565176561780676241746841070307595562812633988722876875552850040103623275752089383470727552007148154833646624741533662671638936105457154285476553593999181826942843942418019468313220842227990415142107648519810275491264517083875105984375666724426535407501888602243098533625703856537000734161427657228154694050153574507649654178595280283269139550966760580198898662278653821585811197474710200559846594239065510832644577973884553257530575505247590103994106813552757339429631405474192378753339107836180951434199835498128357895788609203412102103854392561063212157724125047652149802099190804163706247599375781884187024069795540037543475521979946917344911147324468137735457792302647720173854039806502352145075025272876700950625026516073493806634906056454635197213993105539724777825565902450562133105170683756986157107828089164701999141907479269761396377302742166106876142841621055424936438199976969345789534365701297240113462497830925960692326972283872659258826520305908344301519657026635550659147783048004183680850416363829717757968440115900161445811962134293795093300481085410361171438797253062283948575703298029642735498194991383887602207566582210401042152502184983429029135298093342649448598730095306307187712057540371011709018100473177286994207259322111278566601114335125641668300179183191669608627288422089635239934022723639331395185380673102484540189869875424387963177678911208410918807105015157556398252725528069096152987818518606619672279121618468407745080223869613436200674005773850702015287663029610779632609687715383727040188663651891587670403367378374732024585457538266252926301716238933644752578090212945362824659025051274579561153298804170438173999832507659086016297525623486415833362587419511261889636196056706191839056134002615110402037822358273158862053117826178285605580054196080491105158762334012312751363507248417789232804618642696560433892838926460246249864317187002619637698425378379097381662213696650843370594860277704016423316167784119570743217283858989547787138004134925197302742300516201719301546230299566172824398945403671850800109872954785355069478482839693604823476307686262647941222834898062391552195997057924735999426768550480513391642355420045382731536984720670840873843284891480853768707582854345130117597931704220459058199843747904996706875645034102424007385723638688115147903721376426633369842424209471905071607673243917604887476375890013131371954387884401770415169365529194029979336314018709488534646664495480585121499315188081362322828303866571467876159098251241196183323610174198985505474359296848124596695260347032309921652363110505579792070739690929056172491871567951084242026299494967417186347917798035866923311970822180054851046072163413703909439823094360971646516076155087686173067723060744430672968793546700073895964017940830758316497061430165935161893633277159416064775798273596357165446542339961768488776838312185218489530031630888363258786051626119916057717190812362248006506151963777742838373566041607869262851870458568840729950038540213334928056143368889631752658772089778841512905771699240989910460199124807614830669583887033396115089522830109717842948059678196990062112946829044666835186345911158280709396936434283509512989410611994331592275560983510179612479290447405015461274889849616207023587742654169025234410729762895671997383660266619765853021014095166135299448485006718264940467955833144734769050325268166276945534433107223686591870919073794403817400167513868001316413502946790558636316849595401991488318202931217208513488017621448061369121666930554118144016247424390670870798779491821924111565365113342730112992456233145802353020936087602967018000148657947343929573664734891153798948616117893838994121802317859762153707039555308844275944711807153422491696132985287567623653567472408802790934013324562877818957025288661751413341245988142730481418691468877831939976021275036713013494500571024886095941267607871251781599174709597229428943042547851249037765659592895686702031912427166284165350082576133502773627599125920142391568553874957212270106551578881207348991481677941983746570826818854335206365862856917960802749802514701377766875190019264789527533723920989785996074852260016149523450778634988981071622786037264020064490686665789516906861841400786316306821064336374549122693093861400615588237977290754751904319731766833805731217628204374360670012715422053176106718275806087182729748041862086266385578016248178127178557603316380992401639291892104977725045731925889692535221433989798967481699873631628752581415287324452889683713363785641047145106574423551858737763281556155221277313671496052951693325930881381338619872275919472235296665857693719743794442114769888986989069937347719353915942382528768640233627330979832819892843517388233831442550906767311007712319222396595360584116169672890676298509233870844521277423551243536041577158631738749221879133772614203587049858474107782190740127894567234906872015492749632080179161817883053062251640821195351120566283302514024716829427071684125662784758298695337920341288623901592565981111268545080048419551651311570278800608707523181888299066441809771170130164218994110090080747596448752722472532267632669545791785072455165018585490599313442559298306105230924119424216336649103247016885788983530486892224580206105175933307993621953601978996219607671573420195772920706290316854794257956266015440267534668307661233474109984531852497912668442927655275040466588860834599504932337610263549434400965154131873470699282744722452623836230892217393438113759023837355172060233942877538710190556956772028900744404041520284569532983907771840580077248713205949973399713145761976912044236938589906872196630429358845365779879281566698039110618969167873125080988793986690181816542116063996431392748302828459199412688890235906114682506158656809781047801974635051988560734866417961166742677186544095375465265515542662404848661915793771939014598254747197112991523341741163594784005896267106379925074510891239118170580984068542617513270329293662359245026067306486758160615350753211993357964053790733302256620762215782401796298419663591000395180763770046049200793516308609612128575350976407271465712871058845099680211843188582222935760895271006436917457552016238064058310747586898019412586437559544419058269051137394699047033297195730603068255628866354826190554008736405595853768451223015708203489605436306853126297779402260199981992507051011086523539056634857265949720505053091414624641548666008934301492359013278765468877690714567005933912537521455242628314177496817927156581130374981207343123790953044474542005099570933997591896414093632614467239952127743992566836198086865314590769187998293265062016616548906782669622250498553005228109376086971298351924822711219981564662124553587784857239305424790575771077149255401078639659787426370028368198411152399431901849986042835498716477962098488288339943423946370455382657444162742828605902185892853597165362730975171431054238706026858816851735967094997181163236441909284218896735098621197669859427631356351723448399407008136395348137557885221955751111854285774255700448750662484548750778946066066314006923436115411661900112999541891783513014218816382946161175352251600746964898942945280325047217416069903192243163115864545411518121919278395998834344156604286159243888443339120640565180262288411210494165094551398147338232028444212277631997956924773287175602916223159627578255967711856918172277202745984367478382203441250163071194773051120319321014182360834081928997810824853640148442824216070163627406389708852198244955696441982604499710359584708318155293046247165994536426868210935817803875389242331063005524769895621996586653186226883092135412639958253365126691529263058500823342929092104920302090545478406533911968209857160753897522000656788803488697645657027262144902737991935579732625411256274571667866360847059045044526651884271383148955814124467994588189501915728069445421621875686565583706198871876997952233581003429933004286926406262309390900728578684351730589783059493574775561994337348309021090887683831607504540618554748970664590611897394903746418505194338070688684558256072938601999209704485631525259627861607547255223521874982152983881832122184078940630046238941161818872287726418811241860568357101954300532894590777195049040026368995506564894690296331025399205802777332011743042945502501696970814624863982359198182234967740852867054442364708326443362623163841635721251007748757445000343623288440606094856480727572037650568990546900685502511970811263979349226418760171321368026690311855917058414312370250454795700126844578606779923614475943500799796406485575275445653861484443421072101068400472516512854413079790764935878037407347508727315676992534957177957467465173796963729541617367407483439929413618236735488689771940725794377764771051804890111052085202508845178276725546554602256791705794095474068494535693210128790906401759131813745578658818533135283434550272292078299361012707584989419518584968275405843504156609691117749245376276998084446763893063289909280277429943064046278192010681049912783028401944719685920308815792491927383614865898573536000498984691040851252821094021208589715472935805517481526421003469060036921963253104545239647785932367644272735934155819977662342395239719252814810444084116557062344691960120061739212927722852877204741943083772502310423210819939011228172702013682410200042157765168408579642920171438403396677644151507171725927799966009813239799266182794540723999598809519750621732311686177036132677735845266726107653705832206570821816380682295639841411420197274728916857156049805396754072405409243807153173678734137158238757087906112382036924442070273781845076170298053547844598845774326639968630186253661218498427698189201695634993555693785421822953927713503771900247992121709236722734785407258645465529312008900031633802513619555839203506466912930281036638531031528115717404903572897795451794814854627802810916405773611645079204525540138203115999292839916590952388087056829533609483916885855657512317030539497248695974473695576352261821289373401256220427849708584546592755105998465493521718140530791320199671995125915164413135492086842993477877264848256401098280118990266893481415222102372413090601496234682170825186660640853566210012786719410421530350786750086222780305874787848266718934584485668693085482361198043315913722852598221045850035821832622055507776412702377983401182235889494866504126327471752266229963932458418745813890606835834530164262382462575422749348894666420262880694744499472616462880938635119161854091621689469082370955901834111200418685084046235653392656962219374353680782072552728034633719089573707934082654362142510032558060793628161719181947181895485149875492823606358210253074352909063198538794381047286538157937995606537654488245710584663811187498741609008407550113566959697349020890149993792685671487218447453642847462781189713360852937115812752354181579481358878817892968922715642242728283448760778170659181404477051613055806051145152065692675633920117937450699732923057214934405201773223444342444052263676797034576865466070187139578827322798458472075770198989866699130513378502270303206693433729652092699127899116702485180015298992825141715082749993369408866458584726583466979051407180928514869954990960589231779549659463683999460910820390747027592724838548934263527494916246745422573875800376695625204346724997316141399640496636977452010180357181145202197312956126148120534542308147848635692696834762412953318930020919404399435147002507099176609620799997106951115251422241186058902843893275508605046246724220164687165779912675061840732164301655786813764752033135774861891624438593904939435232357039734911330184562637057247841107628890972966978835887841541077604831215787458542579265440394318250478660324389386268761387633096415973287760572280722864499469135209105915427993187339158894427393215694636327295985971793949700090901218423239360026230913505545184457979979390077841751302664158000102315989052347164964234245594118419106417258145029383687826035624306503921356109499358132839616088352383454735871772413982325188984189560966777521106642743498169973920666993671787718548528643392204436915899888804156338418649953576242250302081688027836894011802361919863736810721992204640726970316169715003013312765402361391099800448921855026045506035133731608114835388620863580266909704402237139529539247043303925672832319983551480414440912365962103205054395229233376942009983386163534596315107254598045546329226464612639672144017665108719452411726166028014937004282158278079297168548295940349921269509295381904744010215413636718644913423885301772593698416960912081885525449992472173478672259831542803593799451398479324375569114054616199630994149046901159656477725092836117450897593540642092535795911506722385584396422691727411466279781878571390202919804945631164113334055082110616349849591730149625130122757551641936164184952159679039209084359782093938653917121878130676524968546946415987983522937332285489467934584370591802035007292520258610844255653412118518327242097113777055492322273224564419306986081086283763544183075762444768510508210677097650898106770996687562318171354965655685572433826953781250564321858924466440901284996875501112747753634636839357574657421522203369261889240807744353849606487318895962554451217053082127218052062022415184943585276456008604280781575217381860773782443764121043426807058237522836311951977579241730680405546175245648220572514114126225114837854205553843057269931815299886450809133555843597666977836387764805862221850795792036000497850252171780885398503618703545460950890929765801510920850342487414853681090676605595161310575980856256956537147382949274011331917828307194181210915761535870447237394144637336162311142362544667117618104383734179504564444817453555096344114697742304853598717260367080195809683108883768395366235305971119555976775590640284067342231482732226560948012165189706850850047952691680416301131591865020740865458553317381417520860615544975305929692513018633692496788725697806263476745475196610567385529976199291936085450867831050026816467368578373274400181933601797548924386648082934876011909402217277086167532102334152131742905554633485741724935871871023897382446423254677818339040981676806545875549804318804055278077977693041122125419036503837856795676425243378116018537859401443500802525244027966862966094591322293850679537787246265263133402956695965054361115221731356497020075300385443662450866021555764742070971781940813694540056338507987130464109894758991342807203623380320309970213381574136114174023855903759482023827013502796978369192274875146961694506452229227788560735472252834389179324401533677227542143413609887752267116580821431353236131886422142278784544607795142737639058674308275090035508173830326458435829817977917671587710071342638896602428577303092229256144069703539919604661661934602220506329260726987510891603937080675946577921454283067640630934377681289742225568881796830402065677294000880187124217321941091661910914711521319401848770101621325990801995943507404572236462514804473504045481829582637535224246964124084254253038756493889407986871079186649585303831949913700122133409197882957813188045325478314408635056939323520459194468237131373936250205847575290010773633521458293229196772820276222517825031045347515405138285699313018501622197656865792674571781344760186101660650447151967999417963400273708290249124248255371533796546427649916320493639914956436803335379240499200817432787845697674160771066225822595638086201814385590951952035195700042694731170900428319490549076935338672615149716498873902827736714249803017249863443076999297101675407737301711361508059906863854196218103141452023810846343692294844715097229647431370970029811577802711683931268176919036947213631791949038160575476695236208455861249008789362522931338659205228398067057441579367580373023395662257511018074115780411985167010409595225528583893663005118363203914347091475053520089000116927206847845556516037718283623714915050213951224282517816403209725221045036246806031823789361375944865688512018502164751565608719833382802198424576290875388119439666411686752329208789993315338693748338268636470733717469116909735085327652334247662097698069238659897687366574295466599235644023131229806939138944814099082639651979135228762709861620584552828466580808347320656849319876377000075284409350482992032081495611159055275736962970801192067549516337506585748037707500032900727386443252844224490162057599029387311178936797084967187276749053396377595504752523894653264599506213651801462323712323942423096915699304081327636007522237254135365559592136167490254348668113667076915158117792544093061638419180246401648941556943214329839699464616841889479370657249987604067041009945039918764292307066400800725441296403689494767809553573030372606874525541568215696056585197688031472028004915841244005237752108904052745308714983475678542986925667761477326266719222300496747056554358279879572773398913321641843840468886692680547600495366729185569655308229460812773768489615443986836198882480287690462001304382002837183417956163705933983845861611529348971018162490519005851138232646948727651464602165137595425518204001883657797487150425149382462793034844866738538895465514523426130358980452395239828543123976065994520427791408223304879063416005525516693294841049977492963650413113270795100410711153617958311800036117627529530093581497222516036673944838902998224352200686253085434260352658348256594356051785551938595659741287973885354156166798667066334162553107389813046573616775894687343366199911958674012123043955672450787653545197299157110201445244069638051396247308797871180103931632609498092441341491340376182350203371074820679024102201286252549627108542711693339515436451865416027887797209676252549475214757812173859517923168766863144815358561640264404367735890686540849560261568779598838450427487061815571773712112998903271419086957035961953876567178274799189319037881155687718504585569735796345501166102762194196075459828258917887077464490601522656373799696809773211952426941578101792858939897118850644289817910073021464998363094473244468940284313040689076507363555892234992196853909231531663766912593515183364197525514663208388063912575998238389784942941748750113104936716383518639608960707983003481827480265213118881170716244888114068261355478344433274229704992370376362352220784285724532157405014070316027661733252115403505877280986061741969778761527330851001765419327151317945225985490623252081750203431152532773524994965749768615552324886114160428682442526303023165264426437762731966869413929789614550318784653521581713278782775276630246735340067415869749138448626794396013593585808182056486227695158286307827121286013505306760773078410619891166653024884370881592621542554128672505492701333143915710139075493026598353621948777601714788680417445517988846489427175652745889624112743822332269877560501552037496159468278000309966017640313387940411822657842204792305939758239174594887313605883208102791843015772363913762008460894114358193209172499337604498372266792381531735163890617981775580864736530532674869913781446154893212816057400553689616761299187172393536175967249447148022537907902879811423114908201291419505551087330376955754087533684323968469908143015250866772151196967288501261313322455219449341006783666618901729949797370649315234107188039683617946726641168149685568760761441535905021764317857561604297461427069417468819066855520007201336062504836236010951531377395285150499162565550397922648875265711160656216171120709545302959540823195062873601865331586869695230063769188891329871313017138132177496547869678951987548351359234722200091298618811061660593276308350124859853069426119920020423789035940485087762076734234602479048005015677796673953530812316049643686404496821403931612897641392291695201227080433135027401207496563045805612447407693762157564800400035609083417633293768975640692321419868220323503383297433427016096917023050429069597462759230310996792389067586809679969512668052056267549566659023020759714680210972560084956824641906653784342803553168417321756925366328662174057495372129317788229107090576405016365249464587937126799401784854468636618198322323468576764341999524670333401872481551490052909501604577051642559804325476381057674319143077774691227524910231828469401968866829919539165587842313090996746765803862603043994240769978280160177939847143462473194278527391997203920154381060067891200170174786629763163034692528235786761573626916215143726342955330980481942438756436211876657874065592803398516412253961661631953745831278323500296587239404254477187727909300554602070570299116942810967585298298248617194403798269669437549825159676909940117990198204951938506037187968813766521060478094268935739627630883070426515518470960867006056651295577367482983250531102195948147881374620835698283336468123595425884793281881827339522629790367904306566654916955404405917165056499192177266868546258572934147172265041302785660781278301129840022186253612413213881053554384733896868121048187254035305050113104523882783936113912021848830488321571889464582588051621825105876635280175459410312442049543222815666137934348584460314274676711326020032142255396565232125040751896193937337926565330041001480075509187287700774309228061636486791227403480436828582538683477615144494072649688909567611596510152925182268689383846197322956480114022166571104607880494448757506897318717126035701725734300006623339537356838272424456259310271862544233306983970344537754241213174890455849590482627460423695967346076648109681850664569498640865668030886625074517466407634940962354174284880768743464288622188754631155914890499303627604795964885962072477639451860907586176199822421682972276974677882431177789239277330260470749613627709186540000111388244868462944209856114110319003886934611092356551194747569181819279578077008361809549606323690573520397032134016708053848115572161726144866671766501874974163179402669352904973746364659153438392013177440651326673399497099698489552735430033244656040733862454701434329503172550322192258808812994387151259285803493555972522372447440270582130574302681786779436121971802986925535454592273344133578066410572671348464910639725981803828709698413386284012054844168088973240115963385473085671358407169234731995577447206288562964119346073516622725370001009664785503413643709436193104052898654972406845569145365815076428835032706370066591012133874061493576833171045364368490747395467793084981062404641983824646140436797802241983152322595290483880694431497134615769915650048408980911285438542211170743345507271666309856463656275698828236465270593771626895919409650455325271199358077263303918154922085402252971938230463533692446775494988826997662289672870687268856871683703257147535607786534637544841784344921756121581757299273788454436697343903785597669011685819441257949847251576557730495267429965550883511183264227068911705391430209932844322605302658543417734030174479731396731708390438005543467867574550111938242130993173234770020312158052090526715179549005861995795944203776595128498228804852586168312191324743541239270517516693201524085280120482456401500035836512328907014987820030309985827853332533759243271886883533824651148847952210152819907483000283487783441912001279799069644023021822635305362333014732282125097303406571193878986065318740116289828356277925185479136698867866122281135870250417907730353315898217066409568089391862953636755467208607263018915906820619297329404730141327671829723684480698325309787346750137481427020881866359569097116379425847034819967904980902050014043010857684536442640590508580272794067858958450447265220827734219039632847601610409510905329142270016533889895477841947446933932762305459662049895504641574086151796690189620035735545945869006196342076481140328534282625720950585282614733532937332730427255175128235043192924810229517602303285054944554442677819589587291715602542877721937260264736941705746212943011996954565829614881467918477892935881949175494266549637304845554042316519939537085418989834584020287302674605485027789057997551693789759947848342507575178571518332808956955994494895943688232734683860653802957095584710074576588398815409779118688277227475770834489763962662844209149769150368790229434670033574827596965623284222815601025819059771742551520041913296716770589791485915860535434901862805580307600023396388333094558981077114774232164518692073447059164632449013888916516059998870546130095198084460344419634604417357891044353007754168697045492724971897202016622790229688900026374438948512864597764597687671433586102944796877812732263101471679362502276797703650088996715573591292148829526547731137126900965727571092451574729724461166761181660989292477511925592673984577232982440149677854276785136503388133701136095268326361917754368964848302225762972264533091352211222244153882189864673392311421754806660168494847196908944709491978365791542969204422554046662821760415890123346945571442791105609826354006211587997517431092257440475366693164251964711090341821304747000057104571509222064421246923117911291358315860887271496861717543364606805996575070793416190986531383699115186612731621635800387119314256984283055620267556995989453508618136930140458099503490106421199034580918392856357697859180722404348701237901329898001726976160515358514649654780961770052871372449070760882481232979540608259063749240418216437289652057762847815168749742530325194626359660575711889096426978609761209233227214183626907135426960803335482187505438062271388189768276761780352606295194573198550335039900414981739986057331492218084314035313304869870120318482349545269864019981313022310790762485667247719096542453967166395781800761112335156598864367943230744695698252268125134206073036368527563613545440033219873320969794226209575630283445650025804788045728014797662246655129834716263024081976675459779919890941942863599294142447782486303939533538646924576101620304268095864637989939523808638391721496667236519713152696544739008468346084599683570368601499349629707947656054111657374313426768883365840206386154336365367386987064324792398445347323622321382460486235873666666878891510737420461994352169871943274316003528595255760110572763482568329720475289221759568312339796214122947455893039236899646592153768003358971807435937979399219632054098259444374730815323830899087738483192497942177455629250452197174440965399847406620177165881124301772175850989986111306783672129558080330935237396163103747256194002029705597387904104590773358598492515745583192572934616604881493360457684460588827324408997475217124072431924220636655902113008374974324305124666622313149774154249295289968980188750614900524700343685888864640559528331208827653822627315560789009307820246823583597852484276047118409557886360282648645289141251810650604380055647872486443309662068524443214264268475067557633112607302161364940511081175810192132332733809940912599676916176537261643736825250712677127729276836403268594980125444812791829912963841619727874057573889719801815172079065584147288334655579024238420422445025677356293170093618027383573483868123618134077538688707006060342079861756575664837951488026929961076114699236131101398594728384312824658922226217396441394116579547258686157678461719069637735674754972342224094451654283824537812351420263182168831518656239368462123100149704845832090991361066434877539365832034777715155282082962705921055830246279460232068325903901187487851719532794138997010137760909396851007391975834420214751998350449806130970937256232351952500983929783849288531584559078925000416585641816147842021527124049759320128315797634061015823342675741350152758319034416365998043347403488241643169981715781754269728650033146356642677795445528427940880696621251402256886850283717405633504165126772574852935199071221926289322312304462489960379181930056926188135138949251703343786561195669771729509428480585869958079987845595099772067983275239521469171326571539680428495752962675141802003943309060145974732895036927100960502330562263819941501174716102554192066059274985816076561654577886690072815373857290126399244842098431592888820064835506079869979922529145803939490152259957053220794368799350722166874960731687756039823600264034569428043800015629518951349667214804346361194204897790783387008422010041664238988649335277069376834318324792817671281031674481832450632727569507015743399958337673946855921644513746292173436534281750812454919263798460418186636517821176433125850891374727290925632165746537166470640692763443313759532310765939455104461231094317045927142112940698304972820693633725388103354290680382531032494269460331000876586750747487034703631951018920375449964645990014395413394155697307172238050929615157545551557013796063858938071899882909119123976610922565073727756482670195075420986384049401600316593326060661432788318310717346402452050945608625413593570218251638282974396477182587836109196435556918022207542802712649067331081354085110460477846357428977908854074953585882077972243162090099712152925030784334882420286961054958225308438050332066011273873650191543364727679000045241271457972390596593130134022396417701660348730956163041527056559005655075672360405958964498697633914030266326598992406761719769332697705453719026188736396820400345191005863174129379901264612093129837954808952930130817022901531459563554061387491084150895185391686486247975118225129536688054355684993788007018142464576221398685171808938112704935502998990053609404002532349506577649902011597280398287771555999333012242228931428436963033725817037531085836987777481296275428815603294530248809213345971072414815578287395583593276509769743536613604044220967513513342774142610481594125486572131615603053633749281836364269855543208408854003826532855170710848608943292315053855965983761189508003288503488133239681402394059415266057402258571603012810815670490945851605453655423739272192094883847759077386744629778016602919187837390022280128836338543365279346694012540009711365637929732140391528409105291663685660351655417225539405545855705951220263210229493059607878051414938252887393657474655766586414596961273609540365991091501174848659964002286402268224871246246781164454404822348249783267994597759187980574761918009176129900460932281792989784691399935179438408891286769925434796002741160752556230793799219057887514331493483286817691721609141913714167686373398940262868670635318936706024222494026331635693736037553741737344624887856492576130584397463461341329375189361915746449664912338555639614976241626456692739848073341398837954004366036154861717108735423772921536007523709209868248195201884860931997586989065075054506807561041173563593204373214991134359968144101728379092102473208885723138066067001335050215325657061906722656020575578447426393335860337596804327156135517723265641117282871062874814649820567377969997798627305835839584001399145956930742121060388224194773199834516536963434256872660941259349466891599954407796840301057239079470249222030287329090960767181419953978998551035674637165794334048281428347877672424391285950024613117581612994655190046472076864854985436165465221800151095111651562283648710216095939642145997917056979677304601093295592250748582459183778608220604813274538687684800303690835625430900529860566846412773986651985729867050893797359847215463584340267703032819236193184373584952264009373488007395228904888075270757148313358841496125577756073156752769911471920780702703318646294217194601297404091610488707287224216898969206840741324887563166525474569015855633798362606922864393666469269840770308311580220805967953871382970528161966397518854364582861333066963257001270781089128168517703999591598468644769853534988329845063972051301056538064961665133121957185652289948413043774910388793588996803324967467974254574139166700469732597864685722565669350904559705356968704345946447623853406429970934415829000757821775012065609046694160536336739847782397452196595350638395207745117286022149559683885994025704193718817557184706896690673082353852365600269773000197523383880117905899041458435560902737427873516524922955179745520807674988633045229558134016016114349699311865696634010813425761643480987008402755904684552080753652206753014558450857879616917906141558675923455531166821744730782382362717022390508323606133421952796197235677712758753299377093095854681123821500325702818785183405326384363876653615859335990463211220017117764646899185964022221719132114857144208416941203715390392352367959708342950857662815792350904437285293122565508571534492485698792101341749359169547766745861358821537658043256888063871732422651757966856471263672947545637521411274972108661452623762970764284787245478392549218472349469377760291302940891341968486760705294371780740229898126713906955434451878576838818669910924337922903548217209383370454822335594675839029490097517948049074338220819295276473013863309382039616843482925878023301085029484058117241605742570278786779159031517259831107832070632130603125246762749836131229100781178373303965994222136370750928660921749548740825093317170687327042366165993164887104051773275601836746704242879832254474527738061099076394285236812722890998992591362111280026296117785381452760644512862396646983551020032853826451816277998498682573056699418297666772241386489429151999296680762805927749357020977966902209607827481549059400141316793108590674932214252092066360544042816881564064154495538118604204059655804120923804201461589297725461284668544479160296427348008616882546145509598445740540139657845433556351866715254665626663385484818876711715951720282157804448775755355495941266124069095721295396344748653683346867215509568387329017545563839431639475876990219120888837370856770452895817490390323897270303061412235301871777652557490732184174582062228965141940086986912547918586204831957454595864734480868637552734511410198365276830882899682513777840974181905470845631656452384623307138053700232835239625325981253810174707596735728374004016519851948495333437457165674846316883233697021151308147413264507141435072156833546358418312853258362944524888703071965905803976941648557595117309574003952581056519235995426381862649893249844197788467054718710022457921094275276087931554345487373254335009383325146875275695262355462120938007994958861722647356719383115695461296745614134089603513760266487655215171732753503968811642622998885753630288279275449224947631879680268043364760025933956438333877533041234938411828243629144699929424430348092751622888191375241129969298816554008679091647166079147579152698055817965059372322338494994773793187402062641619964659013688854055714269469813086683239290474925446384175580657550060704984584407308916831935203818875306564795872861980970069864810884939296693872674218428814921420948194317861985792026819579597547110772544847724239646252143641456438231299513335912199245769044381250278274087869094428559117860933647035718676317750180887923102895102782670347543420737177303443487170653920282559454472283359654225522415746013125252968228446739786442816328264418156628054304980149762305741869407716945797397161765827229690654825113505360488608892605638953414708315793121839149769224345934852814480388945226012506447132274651983267195424735518892056456105181735979743653264378025116176904416664391559833823632566599338602470782171440430834712901205494304357850209903914745188770617996782011849622547172015907079618120271065033359442734410588092628572917243723796638617194433141701851074764198584817565695771534056493649612522518866718099417142448907783482195843992827122265168455298131369249559208766064375642995699682773872207014771604668336931215189505312561744496917026204964235821831934428498181461674622477895893523191467147717720787952349823614429601980209388834975300004364633904115583989550827615825564652555148656216766623335343905826227130813029031020961949506846592577162675650495968202141702831619414634760406510973350234395619050946493048674450346466629984490115349378244901764291288610902214023851252971655072853640517142531506904960527700015865111605096205943420501019702371181056754553932639611480414574268697719944962286021591046106499329495055187359056834140823184570615210249412983825774259993492175244107964179071766666537076256642401170594581870430877943230221772519557797258014811897027284824244490028479455365325592760394526970039879958603497346843450295664945126807413982621174790967842296865594553756427877785564464863422819220758112111575684696008832925601071300714325155529849726449727260597844156999855986675252131695561676225681132336533812508234589155668405399754584593425086069853036474823224050931379398330738869758321682265470378103265949740636825740946166709816363907350608246102175247390948114285909553665347423974586699333985785294126086203074197097750936557238352878598082920647859052768712166113526898033256923383429745486744000306005577443843930451396672563059149021392955016456570273696540293802234939766198670092184123925839405888426809414020010500338385580255606932101539925348461787625167561840959758916582382152435603120592097287818252265508760991110651988278050847416622414340300647383830362269844225137810607631398549529151263026604187493122921268568777387435584475630883931981734442576424104277232677584694953546396526783716246499609794086005173487681271501598197798662526264648288379880241468860022737207716942778652701116213553075156102813310837804897003100159181953371867186064451718517835999196286339118589237965079708654696795952451135332611591110068864445548018206596746708678797808808479256398365149330560663016413438291847672725282307545738289645753084143331919851121077971374408566699938439930522641787490924732707508927441387448801067352791007943895003852707921654475258618430702858045481460356645187356835751013475477331010005256836794646586785980132303239200858519740974464502318575128639148980551978572067563128556327382768979165364924542792993148061505234028670662683271518818024848007399367184723510493012475533111731635388180893862183657557820122640411604994511856190243916349447365942588304817750459488697232991122897553252136684313247028309867673874519045399303535462800912552616013330920467891483504450726029501273370872665757893731061771702741605838639842708999646241599278043755904021953936558159446764123721410078237083061240586371906596361372535302994643771694807927075154538807564325923232505878006939094423974853732874120612836466576643293611354239764022819202783803151382986293582069430212977033544882065254682672748201679013655324332792934150058969278541409861388336346591481222295456062873437561465103638654254254905205735551674955879950566831603927751422031385783663852828797926048213863184305053069321720783166975533206792386758884969034700446907151052147326772741990182390743902469819948219969183433784712900123221917321720311059248280179927419090854699876327698497215977332610711421425431150359005954436933574153287654959442750748733903202019397348385483058922279771120443244451472229994956626131502808351441974556167246993155579121274779837865375647525195934201949660080200093490261642487461414859203814095677159846610922670072134208989808267363163422274781172714002111762240384812837984027910533678719724571927170652228261499200809933818198209646011331044596135458643631956733589964940445756250356895966181321814270395949553832890061784445571415704354574422366241542626372352880228423242255601943764144514793808399996815391412402527902659550224594846850550988899257993994459008822392292433185412458017400883294715801109344777253717245036133540812706291542244636605740047075651794070451559354420621860003641539883383640594559229030172992820146197355042844994345861797628416356878168815119178004328864579240230013587940423509672868091292990871138388429349034704388624437480141191214206951052637003812596242787764131304271672247783129454185908383760129306013369009267047270764120812828426707925260681954770536468020913070991059802127564048720382893900836240592004744097111109408533719427182776616718371632988457161101575569998152895883122722661202524832533162074803407089104364166723501455841519970787785459192405397292305267415091816571556110935664521819918371226508177515390223455992323931219993788000836731723864434123914560228095085482979476064820401388046090204690099256101293692167771614972784405032417919296573284247052016193054583575674467801224553812227570380780678801120989211378171998308383547381969079401782154314983855872835145374243467906885223298167115428302687792584499165090369914738460232164944006281107463700862439253370501720663544850567487565987879681013307180352267540503191903967470547223726687189146552073227007880847871549428289167141022761954618167230778880944606412476230067675828732746743972649333100754099142402140829628323586485029606326663747588571749116283655692932320942225184800300575393486827184003757719852893496016908216979195555359916727664079778420812933799810535551785488654450900869199551232956379446476604219043228281913222654172705887198191051616497460332047793181656178322799843597684467003428061419909239005544238790281305379384532257920492958022920375387012835549090337876869543746353638856156879655686541522697185347599356957424205811657089560795710239651898857069058423895883470938136404327483991053250115007465428164153860745315661176572750172568166645449432367256907020541830931568381640659686334271021057598122074674452815359271068901207980566809122251307329734049762058169418670317180835045080251656442498842120419998068096883990777300290696950113324484338465122978709633159574814670788157332981909463225043797718549867825173162404895909250215167870449666605042475090756060420599016121464035776981776484985349912880082683603455137095311691038990401836851248223540285164350427582041340733474024067559598620609674615309115519132076567905896122560066250220290605675838295272997150511065040987261308248129226464851013385831373224700118778671012520375142126730959710291504303382382103357400907875555035816531337973391886113466642970496559690634027869928798668864974938676191173844403561458549513726476878053535321167617838826209702447500269199841823575760715438094544998179864977544344547132620973060633853774233274190511376531751893839922698161923263043909575773753681585436259322338380875712467431639749486605241688134190930769317941857724177042082643765223329593431321567219539360902420944629586235138395908121555695456763214798704934492344238480409998220539584918003885703965752071960322757249123892672154309880306927775785876200781064652350634131216513024222658642304963670460314369847475363566729815930559254384281140233769539025705968242890422330727941571852806047725336003117274491627081572954519507384857981169555371088865471383231386885339996965539250777248347342255815321991016345533846463829576682213475106778317647095715789076178974092535474081110949058696248008298341150685530503522290497671608067273508487526863092683909996935439247900044360828712424901284671412271672307813539708358345021878501536139947141301630848472239499607306465244528416523349882605256070996456005081029994515524980382764712588319339783756332541016900057589320993915030977088805965211854588699596670871370828622924893340095757960054133942556766190755173368354417534250600657960017374208595344529353391216576834000781367191305758252146528428850449164053816339676430820404548895470309201266697489071283697258763221502709770247981873570755845825937502872553486486259737104396688278644838872255868683004341893409659594515164524217158004051904456140548476602502690449306826037765584701694855487823131968225886118000144636345769352818574651253805657851919738780507940671892581396562475765181156793386706067349854339699475869273211315334043491668586035673248547479582460328195959988707964442676976636501095371485712591565417063616944279126313899193987729887956768131020334935844357032967028624228809914903023801908768096912899396755155456652207752442930675853416887665314372450063500368753531628075899253757576200252812393999609602548332403997411307062085307867791743846828063074287678539008262981302250916510430605037308192784674679179209294325806691116791373418005436020919020848359690033711864036105787501107968500597971856341952327481040849313630673557182610023812325473848782728073893151709102239331241147589572683611480462259820276614751231704903549847907607426180746227741705882290877449931960032096075326064409903323778108585667034364034772084123513691434473742407836539628428254800680136156925453181504548873093831409089938693842292925918984120485069926451057039446594717528363656350925923737781514328232779360497840332261241865553247502744046639180876781657192286971370938497006410617423577708596342295376141647890672993090316537890960435806973125348354055383885718722986408886807428754863762161243230765804202061264356867828402890826801419512344525197610471073533502427111586959789272584139640351814562384723729362450043761070696450460086933606086541897287233873011161652556217742550182605883181952364758726329691852723547871384359450747287313849809451787495514796335736426236502501681933334710078675957949570903946797631799810005770259136852449150168578095421904303688727240870584659175214154626176786476314751143632085683422791963088908267696014085111145403742073556345912447772698094794701987243727108843218344887674112444402320364959878787087802245898323278429513246399766655171541050112970624537308847776421453685330317726991376524627873701629232256488529447317499316001324673614051026387852827959521816694799510671812072768406088412581909910505705766315774659851115566694644614025166485217658059299702046610295860530090721548626404304516922463930386513625226888322881524504401039925888534642834913738529392719078016314626141391995120661557532106207671472556154309226686860857414430608135957209947878960729028807667168045050624753335019046931085196276723465886846212243378736476474951608349078278250978707165045895192892279226525780811060375047051083195850982288459625170005552242739104147884523335891923450584236441592760840753205280179606528189980517213603723594574589871657742658577443340783257431674597202814074229491295521355269739501382300242488714894310644272683180288644246366807315967036053612475707349244078564883294657131523228889499747864646160312126702717732886003007801921786206377777535758589291583836673209194927695270050107754001522457986648258176495420615044671762369440123374518765101254135384741705721320948498374111857321383367469384946836858760636940714399840946659468500352572884670588542744091332918778617707728276167984144240926294565571859657723623310548538231357197904140921882698792895851989458098373773486684029915055153360710523113118188694813212429994698396260032345230113332035795006192033781283095497703100788017538315275314868417610884629298014241414875315880893775883911029105155292319029207134915306602837901993814553138859314734119979047489799348969897055605591890445446295017307432837415889839690761700115433533251936799128288235414645861439994125750189753808900845163894396871034386067246277376803733625192784552774426732472875437685531232603627462543633720811502675091710121576633426185465096689530570381086440062012525153145164077461818877808955084046526178944237373270039474211746682136253258362647005076627851956653252969784664494177897475765674993979749552157273671191993865215247493811165793504183520737394030075726337084583370726728584017340099827862469392408584511149580483523545386448057377387551634240532855044670769823886035661534310801780659705298334966390550440989811284378067316085162508628865387183860351494583755484460317069801592613975504180261864860901284732005562178900735629150111736692960565170445869973027435597201122922553508781113352349889952218887910853566993333325843436285782481722661694156182660813276809073773815745792135606467850900673543864621161832260288903611098923559676392323364585123897499499602908757614344075104657080535830350758871331737392689280093636615457993303480708159730574561974945419109790028062395257813408837412916232125920704187946638163583834186246183039485079903683096491631788423405611017787702612606845288504173074618480705383030589648034392045460298209448530493437436672032338510779606407978484603262350213135147899362499239583236233744308935515683746265402880774752583016616921465948231163352619547490886617104958765702402522840968398098791425932987021156696578291761142210016464578968995215457928487074566442582723015421997171674945133543057275426361769316525142895428157935055601289655429908296036475220664179306338142318698441785349341153775895863884774085246349147750078287425378289151962483890345805520138397233865791845722175955291050344072882969699910131425798056058475825212980382188325187694885160170665568107736848291659170413061536384935083787151285769881060522983592092443338816546176790317338106108922447655130770737898048014933700500137741629878891913999556333364386362937829721815637667565513984473900971728941503011975608159212949885979603361716292042174202271898256252537601545653888380973259055834404849568959272636302802662561849605519545641468401624479466383829126732336975631433066217013520483755086904603419601422310915154127470137892311212095005462869143841220818666144735576634035391280030294857156111926615449708900639786101640521787200022450681836176250529391719713345257735327655150920231293357761946732173486090073579757054858942582457899926952794964015661479221158424017553559063955055786853994151197283045246624230836383971758051139181783885013502735123749218601520631597481780054210199994821937496782959913874167631323755808115984464620910465485334121714372314706633101400722497543331147918625596321573418765773797613965685180788149003428381612385115726366708332646717574162449693804081740286827204095502590714647467397190557295248310158536134123129704486035395682952816682826388647367134948944442812600630170257204003310410217335505356045441905637199639803048171357883245199616737475942856952963419965474544046808718054888070040909050411661710392531697690770592113474597287489585959790112365341570277853705367211103563930350343273012230561182621121420913945545629392894706468444566945482740004044582117520163050955624941364546034798867536877529546081748006920113399921561251014004541293764445122775754707707582285556290442418951737735302736843690063246759987372078515424476573952243101216866131719684783594024373773580327797615803727774916405384760486234622151114322674963919081940044520251848564825083140060161056207859346868259192828777593470006296279099614161159731730297728147010818620735355733697166943186639630621026423109494371826496869408823015689245076368014420883793374197689771015899178399215045918951113243608264550074267738294694984373955361981165694872183748458457425997433397362093741461811708015351456334979973110627510044394158666072828847802135236976324218313262014198340164024452583415826700559840311972449380161707950674901462912801050848959496692777994893720226121713111896161077963646244852126504582207955794579793305537332731468214937843592419149278413854568327546704507598260960639461864052311771618575496630064887640670727427378617883305411413483145727949052074240951712768360619992267903356297947330460546109073695808324318495353088285400658929352198234365053121642435966440549461171297251228353564575877476253562044281761729142322129263540634169948099322450208015193090917301828676731210239356152588729227843733283236215603346597231179577052500291517779252820994881966560142601661846360063120674374075202432573733547231713265783678518235431268513016416156450435383009464405434721591893012935205676817217637486459981821571684466802286011961160882831019354024382357664812692916086249877944351114046184022732164108555129695843596734118691512385245211426943210454939605170521441651049333526580659968838137490108290756684440337575582108297484163415270690768746462065790834755052786728382718069473544526227655999195340627720890746798414663625468415456817224622282280001191817144546666481001684703108282407268993063461272504063334092352821479616584401700779201021736078892483241616589308584959928797606770573557664191004293690785687912947283808653997706039841096435972343797221328587210435775817378471672336536999116011785486089756679960458672863054595675280142373912734216394847115725142451187994500121876128622782817183908841184387576701770174738471627207251281858133282791658832226432496299118662758896361440839819138736935117936933536412701136714122276652973494230501279868050984799105312812780302486331024970151104663525217620609303201311844455667692909704791047961548455225792636787244690580041914078531695566006820896985491143739922157520570716125073550247670058771266940675784644155304602847194081324855416290085407975028275510337170332935032324439049590938529282604190546489536660042752962457283629039807325622659322075882373987918636942235440963198212364168000149332413518056421306931170395120729081016866762228957532488482583058416888809335501502376129822618537062598468526359173358178917148255877754810822849800835234282710529770867898146108687313685317310726281293408641656238842311241794216250339819843752512266660728863201669198712078687229420050743621552118214892157610798080737266117309812817089689134018334344408043885749452967388402872866460024401109481424019212538565816944334240822356936833962765805862225898413393811409803657141611186221199066549106731403875537986424476605358510906420478073590672829758655284088436912791836419084878321549404185408765327039768428694777049660603210796183378404019715647333317448743433960465724025483143756735522189888844247896748789136653551962992797734531712689421533897489140051037204449515783571147450504114957644205374419277217971996977310866563163002277841535344435987151307789389238075099975306523099037011600473686475423962340752499600836912695815684573982726402916345961351113174722896586342418250925715732178544871559013461748165467998552426927692705966581210264559613028822674931537376742403457012634275082646393608629051511511152541647183368757596216157033621835380735612392142158818973899310246886312265404056430781349967542065954494156084026502081153092443370801023543229500675640186949442280951743932981112430231525260095804563457529734959961885580135654862180485435701918310362318428397671118603868026289859481418051726261450361292092987663233829444827323547686166246610625717778896715032660568999813007854164108895889503107551839947162762608274270339474943553028612041525818275331529868994028459761952375583373472416089238315187648227938329411018433758220890087394767790298318403221008489078962176763827416771044025057627953998409534187902709136098084677249584643838705988010804933585367684990851068913332846182270399902817334531285538337964527537923552063324174486588029481383111103597592653426715022535409515725717296624252566790396534604333580565027143032600432197860266780970044104995708049953446076614775878289315818067938967299191525969961947614052465957125842745186415720454311930427646431521017996861479096253777404386983574784998152809164118816749791116069201211673731381560147419110822250138438632092059741301231917336984073718148643599266966263003020362982292271973559042100823162381838609962974249068713460939824524542728200370645982057291579436181674332810824686547718892834927725206554672263194615786013454765504162194454759614829424312104174296801452155188568437116474431289010817399185751854575065829705557913851387758585851873444267336501577965761578072135239219803187237913914654812736907283002823239993935807341257136259051125506721241827180119417434400452644646568764193785025283172442359186590798636475908169598497019612516632628178498506485223168160994519123532582584093455814077522118795630062621717914052811156285198972755074673855504486043943329055143852804958065692787349902602198991197104808613765952985876461757361568390099033772375171780407818661362137196864730296102215921378895801279529645528757664921817337254135479695120723634205958730351403393114812113308539955459180931574742033855368679745257980283486914048168888087244085992427742906077114282842830498684091613310211498948169617891317061518988036890050670822515287259713668931264879400671708044599193875719406053833387479399494145052057576814153647774572448356527540726148393775352393739030515808769438882586321672998450149406860338994156989215830183286630843253399516526981567588971737530826105523840776127056018893270019976870456220216803775444403474206323442075301320613214974395630349857095546587239967901312715138213928436766805082073024474634833617064431670908471106476570481089268692246471694471234963871402144859146005781112748408061403555964312035487907475450028616400109152944777496086359369381384749817469037298557630346394458565866707428917959765844075223692679977300111817092721733951664143361857718578007442631560040936447110506678753790658277519328694694301387100206334731539888210817998001467351220312655450099034063075554981065065940606584656134913266045482899873936991745071545039734702823118591931825332944665345493689628693025357220254675188486237021977548302715225771936407409980167402799295149492300990409160796139081593512273898180661943460235534868155195119005899633901463951755544791306210509948664572912381125072230621761473805928629623005169394926560019683288075270134492168689749181632975329676665289176799491027723994260694663085033910337059757139957740160064985978635205437168932791265426802157727593217721649209754894695726235265437464533924797225103013469564644313466384772221754803306481440968149487658497382937806015742416122078293674418895115507946875318735776451876407191221969966537975397436596185551179933277153383609049571244777384001616012528463229555294751317479498357209733746836667604270654607200661336415153082865933410243269402080514497810988971775448095436755839380322942596908366614565658661401919556157780933110788873604453704032350248542902125229623787743337512547604368059961892083487775100921755352056537812511470858510949288894143594119804669759218555078570148848961082691604550722568351601905852245226319865926987735876314573312733917875229861877406404294955050125377984639997883835934297051429298985159101960982869568917654057346202126721148889991521084833420447087330118667183117066714663094797100909398878888300380545505880854893867031510499987876984454430153311902055447561861430586123175919442579091682487000395354295729367400901845743266001804958791044750738585824449976694625723825596797534770444012131388778085003404633239572924740132756290974474424454541642526294476003753933483069400452328611534433180908262690226526625805254926802860477865396165791174776919480894528409479433179844372947927795592402506917157971022775987668343621255022977458635054099297658890371643290092214181851971933293724952471329824308305637490225078822717265545189917831613669548152513879952439701452994091538749912577619262491219733857490247803695061820675882350544329398373714427966021421130371608128947299298864118718786319470051998086746436484787516080621144906459941007203359328413416732859465269269243882501363252007679853743479656061072412256472456713065776556056761100367474881128381848975714851577293779501514669445326613905412855392820783246481203900349717948504469233560683925194497987456220113536508736786616534044920682958755090577474590468608579226926906781981078496534635684845172362184505559432830796227496973394356213769573419997681546050877062248561356033493252377252354955843785530244979370597307414552064537639665130196373590564158513066014161110239037748253814861156503824231744584461619491207648871036623952259554341129265921704295360059216861698084374281705995443525253182575600423443516325183732291072086530137094367741690231504487883017718401949409751797238004014551494280013234005238152966297967244052381173466392192340448987012855528992136234150683463429127093466163580904828694663771701384271068501882389199421411660419849199011271795460040588715043191454638878216218677814194848211586938015149532676632113665869596073375326091751442859872672130431823753189207130162939292772133942401682563630007612793379997482687414547578145240700373111319494587971506533023533395512424549389846339487270693098527399476542565227740049578203048010620313407327938644335723848631836228354318628948964910137288420975905704830182221040688241266834764064654504365511860248227483781116193968851222112288343283063373644252091018515899950291338785532672971383145263988273134456696332637789360380679022008485095526466218815763278540417250327706433579406167298822464604145659649133553860600898905643060990734486345501694179795102301303559812991667076757932197544480021407907060667941168705609191306123309499600744969972296688950392324731528266774844124256357319195239886720967973185420637579995076362856756950345053366533573285395950844738869321805056757735078993595661283574230157817568178720256092532267169302823454127004644694112687376840862450415730030542592785300596962905366566181514896583044719173823803168699410303050593722383654613835143579954864665804979258686155309902304973566402129433715777746252804741498291012361244315128691368601316005044657697650173922151595764772734919892808570190516908451609643922899396906573476429648194949102135926293281261329069013005226533102826224394083611861340304644789395132147793199199594716732634636404888932030307928459018262127513360403770728668055670627341794625901998506064296037927804611559863338896010076279410099005218570119800756983827110596583634032360717380340965493965439090217202364045200703202306413651093996432899618160468009833862439034095163516915609382856106047960956165038381106427629150031025292391367706339184638285631733758881030316061040858730450388744872259690804462159179259728451898232521311461739757974841361777977102159315527730934560413523650636642258337941301647113947428200135564470004542858075949927808369135354394010348682818300514920110297802295792938442101184527784250796102150166671204470210216621233621536070196033430849043290500979359888001160092858926443155650791174391531278013605629384149560034506628441591842207220597930830859101722140765600745102802125462745382153825798052443374015599040119551714095695895964513936627753334858680695864823727064632694671209465827142553936062589470733849036941786826985776358998228823015969078103858863276369777799442895115109580744160551940909330542351532211630003715454430616355990715174322389032526183722302517654497616891306970381428231699234503124149157125606704057851456018412758990733398881904681166291228825297067608520637324529006906244170181852491979511665761040782836049207149207548598227983284496656821921217120117698433291388843431551222311137587948175081281746985610194466911084927036988692559166119537341287783033652247952469324256144678280186517388954440433289360800084738153550235094525140656793799581186585173842501247747581557719229955149396030771634829935592537011337317319976519705931485121121037191905882297051357524590561513670086321272582997979278567685627095388331702720857655927230562956279858198805378458376481291156945317403752931996401347087216674393201816896945950643516303105267197409805439875450031897098777642362030391869833581911777445067535222960273885406349901202208727456423128033333484745414555494058110740579279612964449255046320382854178958225071891447972121283372531712441537293476858380719404041941898452267967474457199526826067744905527417365044937355393540053450917756100911363384514423998943342613766350932431721274542999387307297097903318645991584289615252998034644934704680629249359253055616786518933126184553675553750964308399212125052991097129145202336970665584169843325474436492843578750363378019067112385248218361857105993976621935926327640577686556539606655201850063956677788049526388218804980949754874521924151510130762045111376443005417439505140806687358002676214575381361990383135761750449884880812435715665119488836794203228940027229682887650260840423976184446617774941940969630852420932886463175865523362696135862981725492295927006851986246323026474927685903963481213467868413673996570403912318516803967982114988729122281138575081314605715573241127163059578859207024099336021522696438785922410931013095592972125471663383961391617129515792530904216155313502976065203335050502174734092536658051501677942838823340954065445722500256371221958120908071019269816534148516550077561455018023701558560350714088141142689810560791086773781798922717694120668884672418031120874382749925226261881624030812021349470548635513881524136418434007454316870518028352717281589949150533150550066067454815510966553472116627181651272727865249465624679238679155467323135171102573371422241327652700849113938005730116276167706883302974262510586559110572517057703714596152554859425988687738451708788867979285067538611936521192559677118278058845584387154368626465179815324412554067000903984708622648341698925508198765123534321895007191088990861830262411501466310273447503865671487735458618350213267057068606237146406673601626764616981957678080467062707066806675197578083135557023053002829953843417711553977260253392925525039722115669314814162788612234257549813947466956418743634236851501528357872776617328216376415180183536504831191586100180065164481751139284051277406609732621905821381513678250323345579850460253655886732093606866647236891874295979420118243778813910471368655680502578229008395824674640940321213365292358676743706672813743096786613291232081966534933416786128051352347995594493200886825007937786159750327911510129108340856249689092358776550799135316098842426849484488641145284609906418657138070896738787504428860740050944872970001351513421516174730970492242460550973912764020441323413939155677632131225711985192520662510878977882249367981266760639487787393060056382616263055738074220284609773838650328411889334392467766639718416267466180927801684850395656151363234100410257703479104669401246874107883025885386518841994122868750804808039738471008098439964504666470256755884719278748238854021156694037231474926431034835073877603356366363124635739683128650554094156403142865975846549092893112572407453497923665721874007853846346688080964264386003927662937991999522423628165304433330308745984318998798082124683779470957288677203687616432233191672458932171815484436554156823728032916254580072842974208530262772036227366083422233731597337110968657523610704793768536895270896392717873911567875203478584698265913690808865611960514232748651102284122287636408060453424395197497092744922965008944476561060124005928305927985713465848255359465368798454216212105366958717547768447541231517724726683190575263529780254160923038830724270486268905655827468519304371392716098286305870493847696778012564337548518255811300412988751474175956624513484221676958010021472235879748113342827008152569094196220369731621485604294365090064585601519817504045668568956804594617270756840455004648306795456794101143266915944899874743721811634174532051138505385000198608175992510258462823267926588895989509795976392531023249294688648479150069588713743679530113530347581744431201527848068851375887566337208799431423043952177921639230415963557797946974917436055911904350382834089856366425950141796009744462049800614241209422544024896179906277793722010503901466348976044638985316701666421393764304993654180744169134141739149016500059929224056261068250622873575208420094984001887378250695138989216497177446451805784158226976157265885213674131955754251341438959622096332409602083492313163260063465108329848875464893566199107324146185209634525528734213290136389244963782306258919397064172918755907082792753357401922812959021723831190934900885074551585542104544784592521290052133280489012715379180556792015568612052386757013078553838691927883784665650677683463500250582027647390157465975254744271691620958482297661767165291370404623996375622481402222538497167480335231844634779100278620234769582631384139665867681805936555698824737405499334570521768086376221283081928101550141210262244345281151924678912361082725587645051379766355905284601791310444649368237046532788042043982225062910891105817594571475726892994003789364993160388733253130512411493724843980186702063825003632344076876441915412929527039927952526228294173280299048671283173101045433647756488606310286947525135237937070768677609965776898706753785773576321346191942224880457597876890378580945177131269688059255522211372539555869611777021228265932689661266064804520360716613771682081659390678144571545371818621717834994888021954756079675990538249474300373306458621214227290113605571854511818558338760032742066539034263244682571006287222288223626472424668324504107620647153110124600792922801037696965032579477708323859591024680305471555449492654949483825920836041071444156755119244924167923482754092959702428722693922254768479330171296046042531007237849124333477751435651973228969763775881411882433979099268853136898940666013653027012131191927203544726550287358937240370743030044587244540939488814887223812252769302943255748369249827442230354956431152109411703528314416093384529022611682995956370908483815616555502961791134435668743951621014688044880178584984553743764651548177737977340938201202164490295863807164652748757621825482245335839283610957416950857111993185002701746471359973302727182539478547440137479453247922056367937944696979690008935949236420382917208763254125838591410474511233934310812486063633938315885449176433349570247058085833212383409586190329323771264761558208400445192581917996384500238767665814508456095140810083010310752362697601471294548103094610801205837078578629224265513236587181887785526987827619746469161629459816630481597246536201668771498123979496524400180285428008835433271885613591044222522533352545984773133139879228541625432365436289076731556347893076447373826351511966193572482025396178942914606767555329164116869352948787267793249646905946372606072551701479476324790266104971417346507459531822313190916904933338669829054906029682643887025561535688294479482484630220232438190621720675124726427978231139253043371729421937412148029571423752074912123761077917386921669102029470819249267043963212279741538438237695009316349708229957579898006831838134331023787215600545157721965408471569694669324913610731860154771640040759451863097082039542822459180488119056051086839581450581050149928514383119001329695469593136171338296664455512874993542121860334548399518467099734779513754935453388991731920048318102359308674381510665737333107880712503986551285422373624712449182259641712248323048417479475342295552621439571809485892143089740368408540263922455904779809540634179161491386857251411807869710430224172677830663554970924050177230537874615264073144131138164995085843163139847058587057244296678549106823198171570890461478640330248352903995075071102544508694522459635684549567315261101516949936495839843647853303141188441893505551752412093333823042674416685203404743437566166315634262112767011937265947624464709983757223334984289573254889711111143086578606555473662951299617493283175273709837120547638899171195566700737036050496691302067099742076622918716225601601331982916959898038130494181340694206192867429384892111378383582763105560897233352069401890846965884958564523015876639346054633163189973491036959289332914563049596935709386155306959223240223911725049727248723527922391282286161999084814237581624352264729711098374359216811331874893458905956299558394747121603044870446896776009955211075284822413559687686971635161439000557958863418117106018695254066963087261819777314633155988596733943715445595668713906841075840048747997207960754374248164442377982740718693820473408588159144691728634496160478618951819389110618429919935284374518564095500096501382372396396908684156861405742940445589100610843372162798132363135112472642678566477960652242387860737589495271390731562990255525733316624373381871239952878530908019287470307551132687134261811581605722106476869794364624786504331259342052898286176390526412094657247770151796610911077106405305295207956538412977624831756076112420646659165986676324561682516281214874618403842990412789075849606837257396567029567807989993724456513240391822126449474206232420299216627806991483283235227333707702643092900421861123952119823857138556019331852680867956530361405989206176717099656741573330107519677271443095273065174877151692433054720960848235508632240414913500667029895629435550266494951593900996202547446266006741734269969157867710078198876212576128164922257399037444037522341293377965252205227915033103654428539012114685415138117354741998840197483715418569374551828896331574590192980808299042822658969823763604706333004218213605642964583636857409076224652405004007296550942428139660857345643667887696041909340186369558535085171515345308401546797270815071395183319524882309553875375129228911897176707091708301956618347999183315988349545388586911970709151008062975345448272644204192346634998954908112291113221783728888388689443091723701586078283767711850956842997887561724534144385665747187667784716306753704151617134976068674296357790893299513915236488616699202960058930284495457670939259159971820531196462810463944186190033570501753022919036386765284812025776238242821477452359827387273903763592274206408044392216779913204383816728730986155186748846758555434514014430561491784977067434525371094667471954077979394637907600100821571377163483555474133732159331082895871856105909720516776737661711831276820480179179258454651851832449060111425763540867532986552313569036481542838150740099369395632751649506463691232600600341509018797081922910382678614224229528543778493205375574465757800924355570344039773081054014169586787941112781809971462416039647411670931816789385840878336848778667129796010713190596946955175828821388979152417979749703617974809153280618896826579502763536441908584525876591289997243070192994113378502103460093365511972885560269472939841313165631987111955792611713892170043599076937967736560844958826654723908978209719131124045805617240077911689090659365751896700561498551306397043095161231063579709362708437748313602839757046825655126617988100668816456085226588085049585182771781028411936834007741130410730395342026265113220345546010397780296761414896583313940794562630604940087674335951659269566402376773030315096897703340669183531139270409414591136051001151087015554244861972995415635401613901005464923141467452257982755364206228593345565540188080586498176265607399150099511084809416007957482154902215571096691462110696164085014635446108292549327837458440471727052852303387734524992255938362969170785906531627364821996563848128340000190806103098668073597806818184373626512964198679125599690122313341144765934265281505305607173607819932995340847617110671091321788947856557123792847771322791858879913197882985014348611804163915283690204804905160141711811205934636735480487705199737707754676233255826352191581269110057479322998440456849681920192566106665990452883539135420526306646994408274297860388153635534494821032387664466530955757756358341151395700338824634353655533575017642440132893424707820131796592446639948416242634503269943034513066729120758630305537200340857092117934759047725280868363460443531825795964133007530556754359265676476812661420203102905684890118396341375038666758085044525153068406751678423598772309660901254974461859600513497349394380034609587196650488546411670232284976900058724803118653297787620814585793597488798889900784607867382500032684541343630625735685668521333803232814880071519115037902501699384277298492158457834802471013883318656235070550035986930791852124261355655867085445114351825956324882030304442824008192763374001363764444624906715086824489827252006288561373715012266574621637853472698148246135477606758785192431155558721269994045333785576181729684406723789823405287660162093323407822775671194997435289375476589977985322287812745694485009644759843051875854774955764940048885475773972467733282567533303640301836207444990528604963695938356265075814626962889684173042593103238706826943492607133626525819737235794610818321459794627595419753163110787794873304766334028297900969181579381287406137889815247559584809508234470346896132097947838712478657187157126113361489015262978588686302054495709963310717532457868873143766399398322524423471801443532034710080063544600976139137027227427094197240087377774614067979991880610225102609189773972697678771864329073389391042570038092722634109424753141992552724387262352494133786638302742571875989946715923049131388632161129067346127122446122974399580396612218964766312101875545818538654570804589431104256398135720260956675715670032837318426386807353010127924681446994922607624175362603913496275509805828965573844495512730644091728503968271668361069270025262977748988678919777970843419927361136356439120896712565825784986416206395289716551582554799876415546795415209822740332083538440609313313813782271556825721183341734554468471350337120151913419077290361038635786337142579392234692114996205937577133162974226930233029825661470611925085123328298405592713263065616361958285832536617215367724435270275610085414285486884976827332424949106298824600020778754524113995109037517489403084300109813403308170791214890238678649492564446662968950997162467144053116122732420194162149284113970989130743747998047919364390684616127196195515408746784296291559205782276778027817540213078865288918506984293948302638584438016107812376337054787151223706191569323017620151016906368366252513042962598952678380604749371895220968662677012101367445120971193981632199188897669223230152470416165725829796203687641004683305483000906897033754742052628725164691024182363890474350211349299972312576846442081051756991284172884695478533597822895955256234311066286946706466458746910301126818373244442938158729937719773810227876713482736838256858906942318779519702849639643340021235557739195597267946280539099100183373179276116443219461195182104481300003063548130956387031482849529610211483673294823648999811830719725089626013785663340139656795486254390434863889178578957970355233722920719878267644893106118428931941961691619284075310813251937809300399099045121712152784419558968841247888290912295414680590548120074250181214721723977756803430982343032345161124226009457792843297026161093721239064078900852493783549230703397236939301649902854675817599154227529997432590822170883617241529902431491364184276473382532702011006922575454497066976973160325882515662572617397348077265184223141185899226564331682469246458025831403500783862229070410859429372037471484711062296427584639947189140040289341111096819936031449817309957880877929212189295738876469569293828166904896089390999199390496887495248534082923523518912351874697800738937605674579094185632754710435974429868110760301543748510618200639930222024266685204983481691558388301059679735894068708845901761535972225195131414936591266527467728818453879066324092568984324906833186989800248399383040952229091305770662302860248689132313929983874973046401900088521679412671106502535933450952547428722222709458686654994804690106325056557440324819047856719339327670891105473877557904678174451616278192125442592014999327058152199329781840609466388121447514713428695373518381112485992474197876702749474425848101223553400716486341752097443005477361862292176262579210412570667337377750126841824141126225291647403356409384133146865687569826241578550816244214983443811237926025178189920499358265701891938786422169369956832926629293750878333403913383825523811258506782235490630826301917912928579848448761154579151517433794183582144338677898629584091691985736223668555022270989944866437922872929341770036931461817883253193785789305303234014519719831144958847243077992305920795259884554809221445886455084408151776638221361287786451965286381222488078638269631273080295701431718314421830625172215933610633060994481973300695391324920983995081240526664970565627939823582537380087250582701696936528900907767212487088097122561754348963531236071957937079928521462529612756860923061843839232700871791475266929435713144153969203124809868216831770405301293754478728500923647847060737301449570150770110095068484770701788825388436274980517244430707520340111685877877994991201329348898908928683199490192369584404960024318855611570406504755455148121512233486165195209839846133455853877676451188387850719872270036378407047152037343025577737759734702449209770201838674581405555588813970342268137533744723666883849690073409739374936759272054085677197726190454441941738063816153145892714003750206453971015080859736091758211751353369267855885057680227306343643327238478536861465660650915001863326004347582597969721796741876687248463937590042429536422563585927943612742849387025756889817540511482763777262968352161205599440725865421487501639586912718837709308768731872918280920234332606862212689834204957419886481976815907933258267014733187841069624718876630743323365640999010762421040310782931496734951296408216844736360417921871261339115129637350017664628880930672509528807017124635615113093024121449994348799192230948708749925894686813033481862313663567973521071469381972776142592822990372196450884732483340891892250901542465759932763665187569592091476458313471957352913910053831375434873088032994583574002267772588027811611188874182410946521070117219579307221720642123631376407686733707793783597868618221294866119496576039892416363942316563795590571682796976274025194581776263196425009912138398390811095469831361505130126249673833376289266643759427874253894458885456100168808919154942423259379171176690465288316704266106409697171387583277094247834089586277197128758644500388484373330079569542873266438294763289511067169030474376202861463627458121569655532277022306091032410035026448151896249691036717955948556885909558653112654895731111203466286472894609077032667758898056202771156692716409535287051438971661352271168852701607534391756509821003375593892167405850768171804791914647371683016293250032209233691680713349065132494470314812071179835852739214612736602477557294057256422952331449436000895547708448896613468263167970895832625308135366851879151342790620436678770773704501560648478349612300778380568340936907085474138818768288645284564080065775679575391090589456880952321196621847772786156476510433778150413885787468768663382359565166367845359617007442510887433367840947822130301861136806654987428455609338927706853511266295070289415366556508571107207441825960311874289391036022392171327675538733157458507222051582461178687197807186348377793042464412278844094926597382066254109012074087884492429818206911273326852320842653699502166322053732714384665897159252518032697242678859454978972640338804281394883176617232919579956865768833973642662286433373668491466040701846587142591013332460424835095090918255233853413171991077650473088212472390886867898748269048948887846142889826512288449630607868663618811355263236494765359105732795766703365271503943125800870089849319333868797860549177797247016598269219789985059491718599943646432408544707555974885687183716204808196362718866347955070040089647646663347652128622774564389803381872886213061353124378231658729939762775664284533666576326981474635439292067470586876095116522227191059723280340140758673459907113193596837380146724058910688720210228966786270816326479998381171720581377231882153480077130833460617411078040738204790508748320992528873456463057671625077399166598598861793106481919110264832007106516096539233878126648321193065272219087372205239995304111590842471431402537366872101685426162265272876874923459439471212338367364443671820466656394604992980227279607641565066397841377979654820758934627638419780942741004781675878280933803741115306810015347424979723504469610315298108091531537020288599150102943941928153739260988516560305901599522551330640208918157956214991489759483159254057654220142526272438207148391160497339755407584577326078448784123572805624882736709995806038892481164451741524497450671296840265858590448844403022753548894050709349420463963257630993047732983101484172287245009497587892614404037675042455232758017288416514632267911759357934214102849821235214880800847564558808574155250211869061597784827270263616200336396683660964256863670730687573749573722677443537365145769385713442916603499008233270792586374163644361860786527256772534262930107874064159847538229261586434980398236188787608827817781039694841462347506825811181291207157379431899702302759875447489387797219879006521514634257718199060035972706081063985022233943649444509395892176378192591562656312566454270639374017241795916451839170291483422120092228365802075325978409590152536391526687261068127516894557304180077291245820110542060440443647249929633641201190689435474762837555281087817019200347643764967165374939960626511093404681192697806294299624577591863792094000361703771690935956541981845778840840424552083158272834143790045657225201267711353557572735127895285349570647953127937454645688549763855996114615731044788146807261393591720103490398416984468313016662884559805512355303386919820452841460566180513846178329430994733566133077212264215041690934650181637756650723791224990468771950326625251733195331584973475988695593724768822845421155306655448798778850472996394007472067432088260122014346165140152402114520598528761791870491239502665185543484196646226524627798492351139650083099213423784044761489520478472341071085744856015729464963331109950535794737687459099471755871940672951716227983575721760387331369634107415274090243276441422176193778057428988178730111192714553657255283601462831576365224052636490948781406602074856838537165018986942953839539704755829275618321262860435698011494658580986000926618643034380359036229792287803896673561131693700923761138450769141253682607932643676001442904912443234016095051970101915164800111954336680886868609746204158419164828692706911764151247861096659497241946861969530482496974909874951786010422321846509171614783047643144580921474709208826564728535547041913434091227124483107605676946352427975272533225429950933505117850998272519872508190560325256957532210314331972281127021829279531160021015366296881442412176597380806238481998950836239195517526991392546380602268334613240063756444634756564409490553570690954065851309639660972569888155236374717725104453433006231678901603662465410061389244519950160409742864264580172984931885684214951106185041931425156796379147933105022301362515920725667181977728516484771462436656515502867075339299884112728087046374515881503659539565200603126907150499935391604389139528232045522483628457903510495357525203091985748117082804453609637614458923905367638862195621986043893023377808724636955762547865566571579248481030362122508629644306710740436372569000754893753872330508043793749540913674661029499321731299934182533882419815716123878195033037678034911860194783405892105827698473979357068686918803760588475210903396772853556257161554047496287855759319770561176894885140869033605801315299867428091218014785971103320188988656639532797028055406869515153329340816994010563308526454493884952030808635713715887851356152590413203535261773237611803002027840921149836845000557725328418726737533455152918003165918276569689812995137489560048263775172477155178651273779691652108214824491726976969367004614976366759462360717332327265935636712622399060806137154528086377810222922899326740743529357595693280137706380017328833603967087419469820226575287476314307659534658375581082203756379598958316002444764926829050463886707246229720692409368252173515832470981533252906471603791283915998660624834185011928352663540817933721575196715598755503138700113096779457533626590662098790058150721926005877487248795264939698420811762779453013180933715586416788699666219939211364500111705287498263752491230896191955515563829928095938667632682285198807185300215755963780648765171528607260303004888069404413839634304697039078950107259534973496253326391842581881903121713221057754798222232144879538181454950015355363538238703696454202796844325512423496798879584121355454164263894013253663525992746465461399276558532228076510652668051124571810889549733126428808377621637101741532690422722137529901162279371903658546419395917726594078719316574570647516324993122053094052160420007210690342352049793214620165575671811047246224324799729355452754135325682336589541791325764609419813152820258640970546481261461060332159350302406265518684193002248191412602294410749297524846275174199817468470666275519422034516968676367732099126675921003442757797529385268472974317387824935103358307316397451817197905794289106162207862616893448837829964377011655322463063739987970292587352301409407592347998488883221218368458310422924637566251686165905752146244560636412303309075936251540843682665965012602681437949951373386922015639275755323638693734977459747623847243300493906858207726769270695983548313671540530372825186769600145579099436505891232469878950810148114509372736092437139198375414250167295667723378777550989175331745859183820201834841093025637882212895256751502521308053590294270754927669961594305871666156057352685253783837514523390348888772365165868433629378902981294995718922361199793064194842192437472829557572023223767631124209433373442171890579226692369842526531798393033823235433180348039191012874492315572762761501259955168276883581035205125646356069971123830980816060344184424475432688279244272200096181918093554602799501706871806240892781549625904767503242079329488881511019347885572064589656337437856666456132296310932584583854412510030721394172936227668569698070815642488730866724408880599531133303328039436908189799335277635522518323687267598389357282316963222353230792120339174380146787384116174950186312391841704206662271610011139941602519545156953534131833760782588006153937734323255398984309857768176184494272944894607981878412604535993657207217802449926230130231375112904039470737565472744153997259671370254309121540889729473536988292012414317741799204920276205334818660744702710269198433390141488113431173814835919006942498966639037396195720892840417608324413474018172145175062352897088099815658996833825367060442055004094510102978698739870849790844068872458875875345721451804477085546471508559821610698403652230703151840814754533658346537668740540518800568957450787715276797551457115432695474029142692005949039097475901870753542044200510480420794174906721435294973914810382751522340159090586705302097428777139611598995530870452138004188497809610690197980511980596896229589067393520419265940763283203762977536812064243584126480352192698442124714414022179621425597972973188532672698732713683581743528721173259783935727628579451537680524953538312514072877363037692862989496486229161844966838740648067757793597264919789490929516933392630624305229970615697014198113581116480008090760120339644921359525165810572499517116538781748355298409696152248335867178337759236393796412109254052809339860657997570117404175210569827041781270535204795663058246423573551962009670765632862280832994601319842892273382918508625933691956711117269044572747659376053874264919826286879041901268683776777735754555163940715744999711828171614277640317324126149223389632413990058811680720180308555321304680907527509959123729252347404139493824414097855711135703399579943267612721702458451306477228776215711968575801828046345645582055423314550426820900172210274080791193168057982962790849893797554762825793830241657983039265042098774172020393742318109540890486044969867341942873427953768836781752374139795778709629718582989592182916498937669606679888931036392327186087936468332706367904221206519723795288494619691949037275564208891895157605853390721935075299368724019184521721993157884155870510496081658470294454895643432719064712438396272135217555441223767197628703361338276159958888284167331090542571770587098147969629492323332641789569440143942747749366657478378784778671900262725210710998829820835776203221693113086380225142021907365659210951752099566664089010822299286632244980128104696311321777269539126825857147414567848949538437783621638764710945059472211926746599129712340450091457063818265214632535994718435044469015536101535964130799240980382035288349521946968192813128171956675070266147080355432402758491165115345823563358180834059261750684151150605986037611274823611854239175167926439646027397162107543532335494795885537746173717849742992396418500320247269587260065366941427921563266218537023910065425648741416640196457221328194955260276567017787120208116217661997475967730046091702525925255798128201119634823545830043351984410746580965010056610345404164923396022193255842464047638997073570489563531394469467283695799636869142130391194307182365172113412015529755428465007030348774834426769078106077082224789255369984644104613742165064109617995249104304248451468984108402059492979351617948300718266302502626502532630341091503204999743225662203407307177474970832950700316153427622664792420153444370721703662572451008524417427497650042402569813852812802069603350947502970412321863174357338969527403644942352703110924255359370029923034973099232372049735022595263052136454345179963063073898001350853333616274110346399747201409515833895132442063379459841396361889372194996565484929032273341793306633280912354068862808059425502502611418132611283471019941181463012267343383818798956782617268570702623861121506971790196719620569853425089237257625886900389786178781794339030579995334721254430840579950362393523406420563463667573696976616570918386950238863879103889800212649561097430619452464361404114461924823712506719179698479137453423117013457071674258312209463630209298675842970720951502560227871799294858525613298610800251177716412667860843014869492522589624267621267411068175305140328946071641609762481280335586278701062023982700754504906397087104157672488313030106698228082587578380823528277370874121238492671994105207451646944052890845987390402145136171937569032264644259029015561095008306335755228013735883780521377514774336297721076800180979581655339196882112301552726417694521532875642214315688212448990703388928162920657544418412649151514710535119961617390771168882533170493650024562826632766715828746967471749026737562642468486278007965795258428566211607744338006145353509355675239201333427602703250755923412712399996610479218630485437647156247438932502380361281097304472288634696385883707744661391153138362307676661704130075593844624685730145286456450335596083114028197520298837520269264646119286215408270899853138583183400337760934716279602570603422015290220291505664727266664256963618589828594697998547319680621729529735429396956478127825046292124617175331343660008720677699103256364365679252186222159829941090330939792938233814033747592034212630862568992686324230589122431694070033439666290898081149321705590124739627559572005309384471427434374698598913813228965807975134365244995159938464295364969037904431259057684530629615052191722434697146826717654366892505211769106620269800206790848160090245081629280343794625801184580012756940912354853248640079037425752371797885249338814982946647263782902890840726119794250029164212098421774160194148353079487565035623495271837784621855249591834447307464419728454301245495354793781368867444065555534763575298098305021696390012469132765012760153890202080623545924763943636417667619596063682166385392311452909220799134971568912021169478976382466853056995835363665462411495234128530289367464290385881242064976352502949356291388055617126833213188139300010231803722136862468626102137727957916728207677998380249653094209563259283047923164122123673991419905466413611603771953135599292334604039763199216943251420388085552036876457131797792621086467892543407373181274113914555172953789336645009933735960537195982904058151176230626662801975873182448604247009710287146213655871169445121571060109596810624082999446971919264807760078021536962334440474971355147648642804330732770629935681466325429874665558137957371155705242420636840555251865048603875359688418720929694707488825423522001611584340741491997403986253608137920183750422504041103433231817204464269415709213310559938728624797289390976312871390767468194078542983255008475806052736776069530250079238139624810694926366847694593212962968198441834874129846652813185886911467153132002957622632170629463203048884273836195324983034062083761328055484314075032142680704841055673580774615465141206264795305113222257397564247903175118770364350626922076508175243758486593665243217574391071999067309771659299051351639389146636397025130970545715487446303499588127785219390916194063222798766631261789637180237612886247116220375289138924593263262973266538439388388768689869471458886797324479832517461174726588820704394917365417961097160891124148371460879644084375033105671665645259261187149263084261992067494815934918457283542433790500653692508780375124250099668528106100360557891978590762200490070613384406731081061532964925358857121643883482340849496204687843871734795448794486947994661442937250063616093229098742286235689539600654951302594959531238097988071058963255301950058326970131206119716531166876117504047991612699172896602760107923882481629531225673869484809345030164498632430841066487698060274131530812844880752380747474131310630691634206039506532624211279009885399880263598816498151380450702125078411826668244319352432959384513579592766605855768992012235924564034160682628863514533966688986629557562779406644618855492406656559235428174064251853550291596913645778603348957799015233634591573215906072265360560017081918748415952175469668209166068525944866636606072627280911719428189312308469159514501775506172037392275540331606625249802765954145267233920506761735952416947673472580022520969585026867426308638211806832849346144854341964318298359148881288659667742854976468224914494692925487079727180132823905287567894095679177073991199768440028306024530554700417454572145197504268678155345576054144913226800126782829956542326974125494930903271556437424880169916362565695626848885707046258312699040961049864753161848700153897668374947112830246682744108324800255510205275959607261880821560120292937696996531943832905361658488111002059495362362278351158679882977225099193923692353763588657370315056719996768408417844497874916784571783177524598518513875634799606007598460534388329074227216771002934612126403176892708786312961878696715157592275865841260808859933339978291432753467061242097888063418242060202589824106470111512276378633393279515382799314530859915643645224195945090630915822811517282911368943005479423550364082396222988991430376236079694184499800183929657057448854508217831954849982908196970172271804422706763255523259462260546364913865459030911752616211538417221740357913416310567912171891705260045508363407882243366690663396753876691863708222078561271192597037469516939376650971055211992128597998808336950833559373414186223396807922664027521345131562809979689699971617389473773327911763551110005372619893084712312726806726308661212461306766298991909601035234240090030957321902770018633237992155344881064830838333934652500624951274490896828904435483531755648510069337190083932194562539634585265321278158688068689942844473169814454283188552629285370725875050416986360041704041206845550330912260334023746638553418031079379949840308566400998916278115302551946044040011293716197592216095696066409429513317758944694704362561517761490969590669980356278223933214760367442471088730948102690652919431841192010786917874555641341563613881127253336104046509150358834488918238408719372500699743110061674250467598232403317646978634627901093249343784450243899458188313457537996422554959164091201959223650981611855728711809623729963590088380408718292578434547384793474050075835123487843941229981608627450627830558313300004507812083269184246684142432819988478298846335369860869768164155013283822793564765065256092266618684171526702146635501911260957851093396779382920908796585245448663786857609483986725889587037710742294071823743353728026847976087187685455917292229694937208002857598429129604223035850874254705952963115624657644752026915301301344254893847422827925121310387307040688011516737577489009795045144027331391253494705246053420220569644589948877115171125863841884199389670746108180196395334535713654525404473702174126650455003564574977965372372920912845143213171473574025664606406844425479217252198728500529562071041012754661723069852195777454110661339208598085010725672618551483497955474119241214279674491610893494612194212789917916902533149854139159961654787053888670914841496340340432223502386614272242200994819942888769757207217443672993518419606593857709002048543120572794102057452168789402594343593699318229325290460510844176169545427996804812464910688942127808451879939515264354479800440739055600013774759312710784238815532156987784589201787180103147315699494008553346398449276256151643624287034008825563101442152666814114874137896114799444044913427159692915615543334276552601175838417541308095125089601770011003101075893874465580035385334377501311544048753183803052849815446407136511906233560074321055112452006186789111870184188626470727584144504109361061705904910763132049609708779285844496356138480094325239455332005576334525194598108761799197118047859061573868602533221702588016617923069164140256354332340556137812500431351083264033526700300183023100366937093660979564924100472583989326498898225142760309407789457504844286549985573914675132880852746015741729957235414983894307847690015751778545718314866438210857615534319370880851571262936794780659612497656360800438932608920510341114814618375140695187506190189564383466330267211367933311066148935253904853395332970728178935411643552728726514851296696740587151952678010050866494935566876525599527885518834461815048988861178819714556763715564958167875710465833868181310743053962515631676573667150002129242921781373701540392480948049621870894530009167813089489009542285789061269987238425563931860553304248463182330073472694502139271635880896637064378601098273834589664979541217108483903136571594087826550028062182483341268088610259805279533316096009377226761321900789862422685924869365430357980887004131385408972349966029209343884504681627135445772303993656762364735509297156820163106720883776304531233662834257365496023307005370481405298803504166777029188233309531817674997855281483309310357277831407958833066655165151099620286790061706651751488397988664047626406450472493392289752693663927354587079247493852230546104010961376975338285493006858969680758252009261221287633508019424461367493585480670086039339395005233160688170014704174256396513013456815175933741907090809610461256157872698650058931312590677931531380024944406640998563677986084197463723699678426406918302907789135783976968678442053829177751454576461526402159525852019511255651331914776772759037918884934940611577723556202285005579332306488910258194253361836808645620291361775027839355910517837040045035455587970733547335798575379128891049555190322119977297326415503786566792503608066774990105440780437031682169298413813175802038491373062060497583733257916324267637071566596425918626328380579088929188808665949936362992541539503150691979208044783830315671947399190835139277703660663668240813551539364037216140084005694861337600666428451956909636363603707022398172542000629199143725883517804177540993201282581565573929063253175798429303726011701103072852003585550239799176526604826124918296436090306111247986342175846406457035423726842187648690327243760178128592904167485751493741095323179472813507476341401297531658849288538250147497013170548988902524758156387228904234496267154269466118241748619656497812307550675819081645053900126238280298233174153612708733533962700176160016881631831031894513907703912066318658804103077021904960474684255091892608200338026699408899515870590679768147999884039721142286910789224443755650516054354024559711796101373654919927463099948248848770884256224540425299936941585320651023887789807048803413436888248293279461469080632495209010894904797601547749398392163441174253336711163460245983108352982915997723316077324440147819459698210422682556615566092503099214124594674207872322382290422121056220246342430152026232533075397158518701102020396689405446791536336620120568870016232180825379785096744308179464003666501405245094677804743627948270420389726828397660204259052763809950542913510407612295530479790076914089722069074587632504532381036454349099824897864181953242063318559903937198359421769806256896214244684768042427337512453985407726055523195879497683606785600465937375385515637880606454337920539055519826932996036675879333700231272491361667579265002222775075883301624010879811839989507936319106647741771821167862219404802714047826013769891337881115208726710499661059409011148936372493791459964595604299639613860011674235501662027833480634430859287742787138295189964132042085248072486754652977998688468813654131415719787157338208999768466276995509381874884171269657627012065789042095048533515325915503521147097895286730364208880682882542455212899008226633995043580106534630798110730651804091415756629665255754571008282437626270528820242459691327760973789778512670927632529478523134041507436256841218899039001199967624579946964815644412465401941631412222063178452828064034716644070404891243782001808818085778432972391719564450845406061894282961368579809830849240294233966690264721888928832656883104504564569241596217496367396533698352737315200203052384045706545257197287264414108343739386943583417752469470761402647336268131175221467998623622001465806284105954273847219647596648678851202773299750582679798133718317934137735564096569052131564583758727118014176383671503032475587849606218831190032030328581126067389875354538914672998209435206877290785907216196074702288851248959910355484226347528172582651023267925430087721176573711606971259422486595207242577967074383133704155199226132099066952415852042809624859241128762324913999922759933633333836743957199622004871580812227413219948061107254896707528780181694686518202682403400528291557617751255891852940230516874917178845904927726893430045414511696740624145810537797582236983874130893323511818068609803173003318590418129245220895640756745781746453783569364061182452769555813563066673022371952429919505027993462080889889715508775192670940113449730534029498623032518938173854650836895104253930320394492601326554426450308035691036509454576076028334219549517089936418712756992012518931531942408162072225577838859085693946827644142091872435825320737840365732833933092772851452108984247790601667593539396387774547501441086413799820724660403816039200116656906482844125240259471679596667320310101734568469824983007932155799610416076464590726602406396237865248781868689310860099546444859912454852253270636016709013692432355732260905042848415120315124133710746061314180279816128529402735572217532106872906818082170286494898267401553010103702540873757919286791519834919880456744864564948837268136266615982109776759128838926880969984232792336067957676673101095690099672068689695353692215372793058587600021310698036789277914815333555777047878470968190819191812262249473190198891195470213192476319885979815761521481008381281354632825999102764723813394703571042211791819112691592659882117359878848327530861078601679784751219694191148912081089729176851289788928788183191999391474070334514478439223241757982504798443423647679551686688403521727693014368697642351162796485594950315856899730152536968484720727261027609929246322589683557939355950169670936046643502002569267886576102192128923405565017206699816039428333880847926283806693153670870459078902928182269061591244867672993534647623555314893290913255216631260198011368206348250095651931428329442076492509595530472912222813167860710071771519582708207266438551750068471096087304828225947346455152811730815142576379762254655753629641807585265365711283886747914908396473208960313304386212758424366542159536461179493258699209130874704882650762397446199978883701687135359175795412523786679587427146851850197834828716691475732555597817266988977864622382978924490704665599853948411750390181293048292035374172623940817742551959949304280036990394263097600952072527998415560433273135891605558016935932574641121693446445105763865647675803406440441561539556424337176287542223620140559974144010586958383771473520206999872255033074688348147407880381495830880903002595788703075256044462187783585640916824167618697577547063848656076169602733948911889288258253440517803112849801195834554902452042109477594438073455437622056019552734019795793734237056667526456538178453629127155937715261161523085268019972115369698474593559989905365995363835119082857780392794834056711764484484894364169744793768866835190153253355195623714551989311659489681507585375987129538609482273114839189206765842894773070505637911942030653564740013566235091024024931947082715347890271377205918209570089018155303719627000660618596142594532313562076819249204589560438328187062701384605771915898110072587327532555276591846315417518233706657044214855408242210045583093302976631966741938160450580725853508722024645836276183224644053796701206832250111644424649267173099499733440062639393305666130596055858055814651839513119478558103882578184342101525203210006575704652654665040232060684180052248584111578659076024800129037500150330147718651463283093264060705861594874194264282885554194350393192742386669563303659533500527306590690576907267825353180813923479309594346406762377107253801811278982747515390918129477325210463613952223591454536337585855463828320238262460782720066738883743842469522789198741740434146940482049067340345691139185389804101659012434611555700483191235564655849979307067119253127442882210771633827151704295383119384043591869343636577184383605266090950023192740742244019709977947353102194228152234156162933090135241739595119595207397722140133495657739264997375050549875946368633702826433469076240538903627171293033669800106503269142693990264518473426863744622331806929283998025143845421325405464266109799308463239476551000184637861731745024465555294307186748771070787216909064383478328316280574703238912542615842746342602005910012607434821165017471141800395026000362710656732336422573865722032187358886808699385394940377647116692177912424719168074739949171412944566339809166183087484301641697422685012689368201403844731333007900608884753280109972142149190108812108654770284358977854406310070346126080826222488491998456894866761018625162690803546463571434790281982696324240570739961681362253383239485496512109885673775492966781757169490009968167031983539677518919496000382389989131184989714690236859322623152014253696356020092731912502042840746888235679809322120264552165032455923312569702968700362979128911630487342364914120381091935667429049447243032606909050611831979947008122204797548927197555292948968254810835021349705561510411794949696117940359521152068998395446936279470337827449475764731814298687017627999884966905791342305535705454323421571712572095808344434191329350644868641416166853703429271579348284727770433832954954813606692892840529159193616381665680473689913496929258842676074819681779170784860641635024580369549278481371436335718020211913975116756235620100467577977901205381284566674555402669717754100853951407941607740020013300907720512928287160479756974292157754966384078120675278207701879387338597237133904224029357094201581375037411024888036446629827970782308424631455767195603028737874022596051560177782398484055932035343869820517217584060117794085388224412166195464824994167034436229111599031048552503074050789164258259806845128614492091019836539731871757548337077007577331810478025834749740628024030106281867695177376694532665008279915895366074426261070245205011634361092727524045972763230045034377888259665338952380996852226643225136272309939622932255202349303771049791697215334336485556610212143231047917316780393408535719445642231957445013204019739377243047224816714362796503748494895666562939070895050705936637722098826753363549351683889837723039459025901678362630170084086524473975928264453515576222646382814223620896242747941118828014333374784820716366898571830684574686075625065023192296425267501834923597854792142024340406624741472666068278420711095613943956108053625795895995563851977821754363230655825700539320089838738784872403150391073863950059483189186560615653879872828159913277584970445741614116771622847474478526239926787224933162987237214417619179187530846813863950208925086695181831732269825406221737800356238758299988783515210692538758786356193594867751815248230401129781228254981165777258830256559078579643358460518437180574520664683877515704008769242981546205767671858868915580461127630845168929641822025176302102388856585259954303144650561002260629415048437905313585119859267651773997026777655800702638170255842798234540196863613249596023342939169811898768773637592185581526128315180153301477186065548492368329155807620184269264678243084280521115482939989094449388863486899706295282071647339553732853486109489973563124794037496669220891297542268038378563088487611270300485147858960840282983089158316253557460810874040735535237749913545697309130775718853423469734402534882097141645990304667246011482509602940192631139976076430389228698135239761516659832055095005342562250385238293774370762016680567414557353922183618243920053030992468114261766415905137160355984086113505432306846469465259766673854986978095689120292180450292813270736390304806993478530806416957909849265951819888413699096106605381459811369806468751193885265509505844525310804457322813235755051967951584393350209495265057034197595662432719913819779571336879684512850486900351496082798421039241670668518200992796105124092744855295368715719287809044072738474979514224857058594651869870771967244440360156879917734523285560348218769708530459156295928123125384062875168068172803826544508562535513591924905230466891931478088728546773089752426022309798075465231263336543855440545061324652323290137578363682525825544402057155764503335849045591770371046333831064170013988858071456428950402957765197964288210405307062955771468141705888752487061537880036033815582825292693668604815839863162609733999184072942724404080814239162351632630496981919504012744674000429729180062544108395849290469657320584009724981385079655284091859779167610625069901652908907492444933371042667374095940341096614817118448302629695952043965027185284023769196826058199867315909012131159257353341733605905596110149593871187885202549530216679353341314358119894011498102366753625530484390080658951917050003794211073933730523031416864305292087457719960239581961646703747803893111886711871821347890233921641966402531976735220466126235151363987081073344526871862989263222805283069570513071513854003332101241699260816881695335265674403131590060060042633640252145189395634944475867297805716926952171472681777140120434554932029159244662705889410398413038822978418577590286260402887867709774127258215135966835427728653408968660346618899769194167272990995735957673938810796566750711437848151526602658516989924219293601511554651053751590975091491259312852721819685223835531722333298522951118384144049165665575446915105167477929459176631335625864378505185712838495081569872747206917333602919512055156537476275529527032692120512712385512928524217884225180592609770266901218219084674161866463759902211109796913938588879997976023011200647738673059164321148025079876828744867184639175451321822349406461972695872594484931709086337734473931813904222196282572199140669036340928892603464052418174689073107898724706126200736202226866237618811612989398345625570557976142163294620729956941570164077929599448393965270015621813772116082392731961021056801845415177860255711683164259930349831576293841380531489601925202214227065509891346740894364227533279310985371453192939094545789828745701515816435401177314549682126360903533843661681715445006577545888557149606894901315857137748301439098749527420526883883835450096601796799004658835952892780460321385240302562581410257992415517785734597407546165865097797416150110792018476454001988619377780358311392123405392496365039152333893386483769926694560793340400108247119099595033237125112055324898347836651025342909955498074994921172277070804734215731102158012830861399710364183803036354142275889920746248364187958895975299129392212939189542740881938582011353334105131443352492691842013750111717874916146327125846879133021746972313512478404176575122135868372337841200871954374331048192103952056991976967127745117970969945696642947594802613598210334105028236660641975995893520455704850940433972954955532213465919042532086793553975006575858842576990250211903549778993349496976468928258784818399174223882461438557169594891679473150585213302027620548907385841969239429188809915890879040707698943556235054831714645904202827868966012481159190400993957609568147294649484516281682326584292679067607417680710817736136340922652335200192969978174327225830861539484583488157399238132069602893556038568807846463263853983497173335416413281866845270352115825702090758975351707153985762401846511784921392781230277654859492714351344999682796126189319808022017678473833528214072032628491917084043005282445636351104350937926969802698931814794209492164667632273562894742677178050508657778300456028544105313257770366896530101292105027867393550191870290405691292838687090524252728336970847437210459210461517182441193324918407270428288722640081058647520726442245405632384746117223590575263579061144493244791166109793993966191363697090612982489259887016510216113353310391460783486052126167893446340560745270165452265323815267181547015572109151498478005829064154115435006021952713664409125040605437509175541267981509789248276180430064705252376925933703174088633064434329935298324077495186517736062657821767420404118384466033489673107145668676885678644775729074868666466749102706222015706333429393504993287843586203196095901225985486243948529596902109878477680400460372003574525996981881488045120320596477384440655988406310935914891305199099828554985842859344348640927851783023753369231874343069772655175582138612305737211592510642857453771141823818428388005275730543874384841138171127309871709633003506610378781247121909520886292619366310904045895387838933537838949081825804105624411217244555051022796407879434703645913322869911001280242977382860234615594097128135779365166717810687622447751784532900946845392265272386009836766365061580340591594155683911197943194247382751392207567611140990684111247701639928305058877219531873025610795315628312700280591917001772435814503371036334068517159455808652659152199849703348162226885274041955105122725308763095263075680103956361359571168333686182898308658070603592292254462211031703824637374259723325273358594340890148344932887147960532233622255608594467975548453917223803149921155921271725099445556234455584486669757678110189311992310171075010377897763862865677696410249052239296449009016965758965684819322658494249231343355180283151079022491611900299607596945450109713286427649007251619485575431138208144378800148140223009251827305733610304271538938631364595119742131435866729095355839879179984668096651244059276062314538951932128257813692229918305542025883480349744619668553166685205106932215889707277688593990860785924343573370554991595269429222925404002227202469100005330058128999572327257600406420535240418832540933117709948009892229840396315858080420377560003497615984995661446089054790489124907940336186810885365043727036103409203109431244751340297116785568655485165918005435092153749966414553585720014685445828313520399637199603305246041212816758565737731854723011518066410135442996479460913457881638818355158492369419644481508040266583950824731951511681357020949810338075379086730687422547863541055030394071996650606477847093501829502864970027563350392688741747504474708261620074945981739790195850057848903502764772727372392753086005766961463008319094986363454030964294206949746688580135262560112290211366982524188132961843512800738493109366461160992389749862374854626066155741082240476714040559833275097111934240968903068298333238374431693450678741643303417472492464108166991257446959718415899582428853773132898241427247878678161976449204150825328621821552369536394685418094216378112901278164581450731191524993086014095780674000076947243349769481005082250623086714384438509409853306004242206810158898911953565442516115793640432069504312776159356324748025402833522761639962168851372733977600890805189042824768887897834803488861998500584449368370512046173918519495722767842907859467570160781895050854265971716223180711237468651737206306230619568652752086989789161090095024478586310169408023250245112476800208003652947713085173724740130295938154553135548052379403024343091047931666813293369803897261545739757354068715244104135237014717328480037136187884915088973741420247928271493679308674956570383610212739371870518870324629478350973600361489461712140973828888019332823351119362594248276084599616086252695294010401573376391838377869446420443258891229634221420325528115467866749380336718593759824752457061771727832995978101373076191531967040663594593340917525105010639951147404862840599969325690142451096514429591939962548219962831290352791074222371947871886430975065903273928561802027218897483385524816695731494202830417570647706166238788938838329725153613628480514583033653844970912579722595534646065383197349517956177774470850134760744146752089038763161083629637424720146950945449858000547407704966487093344727653792497256166810774585891078523482941899240950303838012433816679847314128198882797927919267019179100736033261960563371308955312665259685992612645920984614946001622237999169400756311218322867280365259747294380127541668720302861241461706605999223081421730940689613440666727821341540145096262725970849631954017554099813494473730946662864429138462822073430272532781273278231910990085311738690008014886321382802329687261880107055456545844325281576963436747993984443162380355241784510350215635380264017901163356291793003680879428751851702856506330801213737777413494421140488846915931268209133769477012365155130387250299981575661336389508247021971435442250228738828809168756694029328656999242199423868533148956871368674050762915202677104510830380441178658581341635016826226827615875369893247017819769810514958251754338796161865010269896512987012350064734394206160231909041760116769139375467490978935209738412962702638087647535314430225916343829889951369713492637776690021451116183503912136510754458509004282324818180550655778385373637884120410999771754406470907121834630720108255108932571809277873034784916429515820033365223634451806724001649625009078758356298638771687095619697916363760241920399917991365291912932686320072343010757519819381034214771644695918450280275287819992429441226585476930800063653444607527034689176675299775868545846154174492292127468412763553365412007985573487013581804887774349304183864040928891059728806079155632308825390652343223941523031382953189314866373642342076762842331883870668738232793172404663223597055777264532728967869751902590960847746907892986805949385703694958074498704117044878437749579722939966315149796510935342409031960702234652349596956438120138726058018028112463389796191047713987261593206180206161810186533135247119029635111930664500081486858681627957497550032099865955310224357415809336665582513629684762791890706600698501552919657913899649809068347169364036631169817722073104082994944814501124026856751465972030411552785210502377150047319866105134013554669306652719610687381168821766931181862515429370539114711019079292966599435680146924181694651580684855115340963609268842224027211426170080070385503588621031214996700317846802189493943763961181712914480151682217660011231389581198055378903904342206810912546568431808094518608582376879004175952414688504217997075664888282280103909832944250991472949392895658131664431788205893679785645398085239561750619715241393094797304542148078851466158273222777101660148433934400999198147924056660722069908797117401300598911468391949904015286920337113143144317401181811072230634352167997400301414989942949284760920307780522447163589970937482397510499269874729976972046634879706687933771196938405677578878056983102775745442568134851787241664413600550004567301097402052799350392233281853838433140003843703296751148634103821898390974036315306702999698186282610912505817266137143646327907553718024776422544729673989510978360279720864046633460749680665338795537594280064452928646875009672643298410264043158452604454277222452767208220893502271579083952976792003233477775401549622060969240612587244515932153050969062190445320587611290435511714162742053513163347174525721671143782406416312907371892432540225355285648389998246186062663549046207566590283028443349089268791522823053318312802663504041385596157516393243582481404015928296507245719677221272452512753997265591848431496665764587887442612565485115092906779759216960945799613549584829515525687380018130859999348878525882555923320975916014154127125420963236800522343072939049187938334787114775551557382430353120682118118763267711299015955915441329778630639932567499909696867758075204747727905443850634538773429724089529159679287066691758499364188222299242491921408063082683045985712684297739363773054145673055559869211096550909090050522684160529313139642495490841621229667797510187241308467098063346239022546062869362928600701052669820235888503172313237108131771833757374208272959359807640081308054950551398067734647284066671377540306331269108678470116747536284518940444925690294539146319936724650701121812606342881719529809231125883873860378948418036553074441643333418864993062223302257107549434620217035826969175588331772380334134166066965335241422638857355911372321644567466158392754257437748532656511741023174094973841450342311109177368536440406929126525718140855842397410163933637991310719858363696974197957225507927883354096358056699680040493325404942779584422538811405444465984488400599401304641266322405364576620439939276972996905284427476622110856028027015316523556276247538678424517344608954754792110135612399221163104470934482268571102801147360901742134041022469811660811589388594611041775964175040352881493023963982270370214828333690952191030258754529879309990325711593499929037535136176513750928390923882217314598425897467250109563552422930860646171123994742655291825102998585694328373296341809620317532615245985873741521776268123878900070254764141071079789245871919956363873647363899323945884712167415103205115961654397819274605492238674550180388951336903204981577814058813170611704461962462031475141694360748106458027675810927126771428988701808060816997906105126933186185438472706143608829635552987835740849638844455744888519440032006942525253229028259376068349431612516330722692829477433193356817149342111822428586754583336647627069863175129075717705830758680490709992539381072275982578614232262275866377391221543828197426072118465802271075014267670697613896980199300616771316100458970252255583170409660092996209035019441559520036086764464979598858653505537830181930529264341999753696504332186477377504300857637590392125431014517887875134492275942154632412703765316680567113025884425889308865581046915351322225048161147795516252533963461089686144406313869575466498979741913216820440767567923376650349789883354355482113493993945697437593584134464882934821043325222272247454433534183023136363750325132210070139941582178658031102140365690579755227901722369851076286981444167611412875219633932683866244048439735790888391504322131647093037252382142233036272139511349302076829130722489530384850490032241646303326643698628380700604411192110383234297812241115009333430222060443750170958086026103030549767292424425198501781553576503786064973418953530078391317277183932744595738842421092887502278596618224243453413938385489968677007818831230472572096703457061897202627363699655259886602480165223458356535291301866028932053166243401009432010576243746365071839500955189735812478854037567607614855427655381902897964030538541777201089721012927845186143756466404573657826986217229529402402506309987168598353959002747568980925804442131675419884388420092512388960797983443838335280225757276587831239581402349927870196708734820380333248061732379462770191506404696097664330658637678555449920775366189952799550537571871102655717581503006382395931901896547266398439233847816273270057387893965677234275080689508090384355252457925591384566326240212528720537413408504566748447305656618218918493629959465583154370790935019724782270995248774763523729135624454007645161659440976684406655938614367734226640980352170717969479928448370328617207679139571656621829489505386959604994518748402105423201031968167286533866311229312713379559412004546156625608900647699680845426762362101371134201718762776478647358265709454904704487623643129953065663378064880141099062321208567331199895889864443788296645270713308331927433453786564281665380610270821446623078932311177538666609304911512338157445828911426412266262198532589444494326463875985472893811686441756929430004279762250664413031336277415606331466529547252397322841154958782741883472631078622436095541455055705697083608704356611674134215840054729065163230854761783227170044174735235947362772102026002542360169237047807210199805096690769386463116578636985385270196196717875959733172503269724991366546344590960879680449635485134796822100709165282531394356764172839108489973263894650000773184572854788177541838058665612639959775139408396688306603179087989592861063548641781426931463745457128706079971979901477836629917474159968264258220489222066218725223919121175450829124002434344622797066440600639337650539628356203800922347496100854525869099969480405662715033775893461938131464169696660931534849659928991845256383692628801057852713569928177368376405505062455992109496413847854707696852007814708119968924983225688991334318197598839589557566122226349870462606848991308749398515683817542584550056019603139272231974772242699941415825053685517558214053045718570517405693417627086257919964488271405709504886475870081564944559581832237893822716915523280598779376892559035323833606189140455122778564845200501761551128605574417662114487025441016170599144153293654551094938257652539479706527760007744726208198990050655283374090619662979935951873095459001270531602366977852928895944383584159830086944268531362417087540454855351923419843934805167721262942103723453563213170526437679167972716722950405846869243021866308754676300826028524377608387563717321321622931434461511245199874105724729531552082809880652578314939403852917232735665765281544888889946667050713226567080271273217564010797013336748363597912211387496422413664111418123810823357603916326841205635101041786689137433033163801693871776387486176009809964565439698491295887333797801618567744365464747135887410115372898911888917874334213449619757738891269541365845074399039402701219808327750250252993625623850775955627684897847858570812760131249069299022888282144496237812573377311421390117364456805854938761282152733458046688526418572242781015459378305147249370950964152450173932976595138797125089474264220885328365044535675552061745217940054420593123419812148828553921982606213404969218618718350643880336673804648756032115949581369176701264449520310226344212718723601701520087355528623490848584377358727451878970823426806099557147197358814797337869271667720831568063524188189268248366594502888928346636031469829137486924801161114595028028969817844837578535672158914739089676556436707264268668319676390923819060209644184865875886313016307394642751981535597912921817804935891100007939369114725071492235326689793179397434555337053468908123770578277771884493549903259538072332562817515037805052486636157471575487400680628358004644604143123626260965998857078699294001211253137739579083695827100769625873173186353629877101934086489421784377368641804172131130241180200797221057646519673690640586158069771072452156671066735203371589054328787850147357873859386810892323130686016202919645221350208418638489471101452122136276650745195668616148669859939225711584458840730095598985042178785487483080943067797224107582955114060110023602104360731635366208424608933792717086715907579757920160558691275015149437464733585404908672420809913021930228312930918739745728376077771376320073171653387158812655850592529689503383227433293143792431544359946734491701915160619171532150809007527339031700041521136591874924333999881026910315432242668874408773459786167662551549603516185716185436253128484853625772512288184476939059815962782635446371294362947952201732831965531282291730057751518825306204178215715751053513831680600059475535110194916940466981066077315031515039102263862915116859005139699142950274600554911669468870893287011645597648057191244225205161412144864843426075405212263687664654598144814214787280700235868586083729959950156375393260945058166422499234135248765140358577968204655398862842931400207605181543656106439717389736865590533231790563815599221754041143325717066869703442808482541155064056093527907412428471031380770400879712271992185985518651775401616227691120719501463958863757569022138189894129847386637861385681876618440118307478414242626665016645796948733318254013742423139180857474509826195626902079016428296211953202488452467879116204076577283461116779028958040633067259538984893869955456473538573328485885556227429647834055115376105234890798494717735360848460166231081200417878412546556533153515597259245198963041215281841612545140399191377636443027950036282783492455135379352327953920766290105308828975269180035779417924786986031651078481475906213443569596712184035177430807520583888803888388840879311300286401492113508344990640150835516502607221114144358948502727810968955396464006921667946638058288620783502404200933272831390749150173535535367291955169373995558789660898621162382339633484948512067169607408392856670991940494757285860101075655311627083943196473904978391486128361686341856207807936263053325031144443650985164224373873172001137207444274288681081455163834973643280530638403840487345612854150877317893071196834643428453794406667638734908119219032342706147403678449611820571299565307609557233708859265214909389139764753280342513012599247159555357551822871033636766246268200491495838307455256571806650143204058211479119837150645443360680816985121358618415969410139245258539532294938883851861809294653137292902003571536903629350014652479468294494302032163813770624401053348473192195963992685015675318176407867214155076328259041011774657310517384027159002018396394252733526375585507562687881121730641997925827609202368292373699546683999059684450703307926776338473574101741506308165254812708832826539879939608737363440551246618267556806832988597658815327827197526065148538265777022052325942841203603559774514276087495426655843588861226308954363418241946875912969764928611532830156365554392903665619206503229028924080992363491626198995792746072715737163804846556459907406051408681873742802418578476270273536171382361836319107147369137078662824063109828772233857613634282009931755283060106851938191064232877054555753533112342671157756667613395568307342664140528840097526018605119373968807367108650306855627524809599353136320956116412024745519476518174670574401918529711517780786875409449924347063474640931000112745086067073646171654174228649226544827246249703085088703995825344168076665850024237474648736256923692935834898877197264824625820735843577550158823363733975809305466566898355246202907997248699812937831784570262934445923625803863577414200097195490603349341459572411540830402861248742881475251078368492644038849208688721387595012170302240305862872504647904202292388524661111969452494581452090148022558003427063699023033968939656782151753984547216656364238218871874166335065748647261538131083994407027461196402374290253913144583381109128921609111953469029588049067956983400498089483981894355446316839820083486524191585490428045556463342476162561281538651853052099656148714104559657455115596449319318085481617370421265098809685152129901100723262486532611924455941092922573149230954474555623215963171708246923207486866974686112244229251242759773608965018019901203274767998049377502285922307976287647116652799885686122602998747652786699743259144087341227138402232569761174032923782051394717041229077521099259665043727887923124592682134966109515298613191665011081215610635237610007547080978691883059968749822127957471308215046425650920336495844506213802474743962183482024234346660034844042250979645769282685406404244972958454088245047618488333952888664284396094588011709859945315495357118371782854330803689887219731450617394213455951887111964243701018237548409817275010156559512671151251777672821007634805429229672686588249567106398646221511036496564111814315964643655383296321457215823766505791318398937739312658947543929479070605457917139539807650540492960730281998234370811124568888495628708755014719048571938938133518315808780179602047173610393745880223652977032933212007088964677392587070365153464038827364617525323514057238132739117188043974765276101290966516969543731375635005726760448410197352606356794542570636217898484923438659539934815055852247324369043244242767935386659082881829411486575747680635433470426956656436657421459538650559449927952663720983845401100355868321914375436258984094443229313617244146749434910745348333270435620366958175987731546121890329257198717504148131221647630861898347533821851466170713181326809606880973185803472471710542558857107108024355953380175935393928334339782159904207949160547451508403110252140063459588562030751716533948754739020780471207780755207389842159638010656195201883549836632096659786223073274980415145722880434192912522050182765557780715668190102835749768309027948949365770190932167438155789130117579442480289752046868153176426442422043691987703372693325287780781563802134781735629011971908677951592710215364256748443138290252863945928226467432612426728731296516074537259386795147598255096788572972174734636682668088409189599916144379260919999606693302893491403433027621109285371866563044848334282277320237747835564428785333708065459311877457538398122844010747159538127794091859612223480117760845081995676788038618107747059564139449666607919337421410013350890546795575475325706657243761321651063121627613706255658663745435485374697960759086160463946261655591596348848329825874885642925923979100993821438365587000414359306388546349145205787678568237396464464128713979274378276725483749548493434926723768215935184220224385732726382087540098475563422842555888468151435788343607060992003777832157003923773997911843003734531647412215901327520170665791394503673233510832200353971242624814624109079139256671812746275553095218991308974274798095080933856096199617209422876163414221304127360718660335962408941664882803532253164057594910017055702524013709720979227017967945334637366215287865713128613319562305929524223532159283300852339679700526777308131180351382071935324889468402257674495515009665055367554152063698693819380416271675559943215403849294026254561071865875260419263881234564470244791495898225959086101228774505082918964003098481027520982479788206676057732271524989080447584587976435748282126961266303716045593525089759556422002947447849476434716927942273576078002660098479421042502533218346392569021410537861712128702261199666072047414027745222083986513743164162826118659754605243509944072140665292159677430493058047764502749621542878306643926231916402940251057407971817234485796849313590952274709372821160659068889111055502752750738180566056136715685310553022602587315058851397296526347278837756480578214566267313194600839787655112951553165580571629646224262029271812786033718961147779564143477690381132515127279576820373055739680177680718184518688627143997300233816879679264846626193552058540875061325468587882148910207980248099978352924930433077393851227535887065579626865469692143596111665375044672436082338625997523429747508173275729799984773895977049737456902957417963171985147522497960431013964532901276570287057558824280018561195795012887293923282348000505509195753073292229384671338472003549936424255847243486879726445688167844683941003055077008981075375529056376414675787981265548286308613922110280916978239956577774814861198018861649128242847416963000814175225263826409669209242376129244697357289127377351284169717398181792378738274846190328491415334765747402792829004773361844628833764563325329041524519679184798374034546244739454149533899290554331408306444478152247201646504925483507406357895974341667566846186569461360087052371620825220013629014727598818408025668535722640061112331670113761646037974668738185531687246555460996400124175715173778670205089281937846505335933639014256779997231747596668638560202937221171808429547125669438818789583776636215158241952843254839656311793102813395876746544661784160826952791757061811028926309320139915901067741417177136565367694671673399808418436813854630187704208889027319039655787603148662615765184658974224011120124980459771744725165676033214887732217988033956935306058873478999580596973524921562604411284964971873319434272717331627554325751083328310011565756020215632218849007738800412571038033400569821986308961062443222834945807229538719992425140681607559999711301458257796415867852117955794762224291475275364974335584840007539033952404976604325467304647481402004724140367028582884914164835503226313126523539523292471865485505826870167061134790036903266089138219973155625484435880953663376999651527896204234870955163412018356193681227961968958428736918106753160350107556542446446938306460800814873539296174252983658462477225157333350146429146185843840689647057995356002740096789794068044024676645916427377244818485366188671154701268823233148642793163064755567154865728516676972273041016517037966807743925793643348269070677940083910477842316424578789064380344153002986442097615525138439541094947763810938657048618886718539598719165056249856061928391697013977368070772833998510874523625728011406070615005398762454308449740447841369935525398079575721807495289384835432875268604083991843274677138003015214857130542646897337399576917890384276138378662165165671672303634941884234081288392923273273142850371172982964769906801761401780348243175151991990476986771619687306414568358311781259062858404497629782134666937159335653371188655589254740759710317666467694848579075892066622119171194591683898543271666003436674337631194630055277824717942116842420100972569530128678456754000730571425022775455365233272888852064898112339343458273949404459325108379409131255864924889420038200184815882973104833719462633940123036487326910389316777801439732353202578304398862064535076850523840404881471048916005030986270095141126884045780042010985653378665660312646509872524516799591864794475509731915637653737266052789350200148213376091144833511514380695308233692095610370038219990939952814503059658994234440455020096563976588867642169312577045496435192969040080851157021379475130426170001302629772473471334372861769080198874756752300584198083537832133258582688360564039038813975029879634377485736580026300143669430994117895371862622977460193421997756440105638231893820649252605084872710215752773526260452885994152554912627392319548252970369318547265206282032570165700246651710675130699936423570294948669967656087974525185200332804949414464505152843192547691144833446325290106323140308682179388229045799033466757342757679977895767650444959831375034999272532577469573501639743614260656900858875540183677041462696626609610801003337138606895962989794455192611774282156057043612026081868498694710481052662222515771600911332210816496337417140975460099835270142829717046317642397920094918066070535315184957807490360686003003982093020958022048213026595641238653420749129083603509494812135152871165871483210191270830298407226573491832760368965722988573248407152287682366831300414790162557962238230885245315253963738789790048864672525806353230709715958667131487478346134994660851799888266522638437529071558704574112291029063454297833796647102934373371796498068461127743972132464057829384856763405993741566128735130572714896775166506566824437293345579450154579839896504877267475026869245695077021076188658575970916712645341170150668346135620456465627160644207531254139222619991107450247332379628637142670885092895025813521507435735475725119355734897809651252185822759297109800100252065535490366107115906882760035831435156949912269396168281943897272906229636483238487549155522115694070498173729002864046126449783505506942416798141349508261043990501034755636161739669375037058527435999235970087437439241095954889312458584333495637518897739502889625837658939361584344062964565532876485686241046378060930259799643224313337102572253935187580087832076248613437858066636744838856570966125316637405993293144565413799640209222626036243962689264842130293157406428747799967832133144958522278997173108445739831097141468841537893604356879268275832394952281341315227333897711964904762589082840928195765075972700585316489776454308594068215799179532155371604909443116309601794277031946106778871022925922457521422792316948910662110205176141769007181651378515523671789525072068405068330652626329615827059895724904430957870404289668488782751668859331153592623682075616240261652712882599290964217834091474965081904595802467402328609206566473637120358969340062341481566254409646115131774001255944959699798621418409983547982536712340484323804905815506017639890100900211838299531385625485524661245823532392626330371486676140997625810487534257453639653458239349510368110612427150289637910971608926512684675664283201763619747648945542497288311944234188855411506791429938831673494640068801423677873642553397669263362755015792264979530989009109329336135576562386411541792676055405798928501362812426447986209215501632342884776131415079183092973187901220902470764523783452195310529008624694480800441599502132171446221269442248861629604800940313874968610903098377939996102807350662071018122276966753968225396704040832463229757613490789389459174646424412660491860240250919966101013692151186679479822483957228564927735577526608198855131173944869264084772152368271833825050846809964065026156149353074003527036899720024372377826673524395323426468133707837368997464211963006898749117859598819017834000183366471267422303518431307728574422314800244203892591997528297576786903275245082945797812420477591709125006063105969385857351907269720713240858047678162995218595781775799209335158195266008273978641775507023316018032117779574077201475982713291849775228832304071501611369120966542021593270013584164459370302135694541252586833001601936287471728499051771758848185090759050318805483183826568785055755256645044994259503577904087634868334153788235379171316494926647594193029020791145307787731591617130171826398057050058686284684943889064058287834939638280852273965732578200622421050136541943469444463552471888205187486577760238510431447362271630537794505271240417129986466063934978723577735571939198964633586247455342956744793848283554442215030224644454837252747605713549602498623523727981620098184331450978409901154595677328166711938469246114098532097577439542224014969744087167270678549094619438025911415820287032949108745678944007660138817829282693103810383728753653897726362055620300755177544861861693078135145217643425503959305104767121456558677530754108665393528731657231639860178684356609848168869720165358090276057659690388450336401853106353307993528597589534713886384008182465519508112377396009989025010715557961853954329540181766067908052126337282113605831003409675246620005499258652721200164392222062429957770099173814837704195113551149024496446177055409961879590418655051103328229139490882439321075222588113579530337138101361949260119733718847636109194071276841379322537815949201035622268860986055212167436608558033300796009878978470964479819363857182801118089491606257940918641984349759168560126341854514410671375661190131835239189473643624347684417088602127985849176513324037991260218559796412816760207420997085110980678216655235793914809263688340179504817497180459408512246513379473522777438187471440398128297315805743345956369146141809070660592590580130319493073558256855499787370021704010719586387780308440383170342589053734383577188911161566684351541122064182745726510010930670842293632821930665212512905386053997651491894085417879231321241578867609320197722237037161113177100478221617379889027269601182316157381492348896499045122913552625362662684702928123018149166891381161671591474498221267190166193657785806340613697240348063617257228735739612267307337517421787424414460332943808178432598426117540724447249630737803411449065206243693427658278616115890944388929526715701248529643934996318726405410774899842445408799093535708935580217518655951938246201216665173926149295369096604330625897677371485916661278393981806655801393871461811988777243679080257155304931039925255274300061326737119719803573326947843505611797914554071565367189012257267327714133874042934887527171107351427056788330970329353512184564886576034955629075724445125133722656888692830081086016067514887619709114346750702826720601878825036406693838794761408090060353912742893284367444141450961848612892299878947071244864377906541782098483047798242394960624920756453560555375126394665086341778522052833777892016910849934344852976636982623638911091066579316448831790600619313650000784985115968828130060600815685948381719248007868849638672406167452513189482762914629781306224809204186667220399137239695734283330246546467953246780107590378204963811689658627561758632607470017747177323092679536430050108288700643272292592025119543403611228700748910845959574343611857342988599476239397444100435979112432719382865015191381614088430401445901682064770748108926900601150788805196781075076174001414295682543728730809194787087547005259422333305436406640937649612901814454278505043863688263628150553720016434012087632914827281962274304273002082282749524834671166546726945193741044446566178246282004678474421477301883439809311493902180883741375466644630322214772925485824129200388836766529750709944848638731759677881725950638045379424018933202928393372940827476640418009766373304225736614130089083111350007832356018147476651066085873692330334306944089468767206575536985690533106809297942044176121443067362393615322533650933573765631824074415904328180040686321306718718263770878342715822200957855045510040571305195388711059223655731539646443840224601229540133509646888901174127719146943670673854083936472172407360994466990108289402281558903805797964087262800561137028534163047590838871690847712790098118792176975859934924192005894182085191034615599158976462308729238166148099921123470881840560445483639199820753457434633821017210323915806147782679460382054662064813238808360164631761276148818628298922166168759758846205794418471704237570409060265898621657904808980935162023806860227432833248714046458319968481126438604737495588187176628848471241561647852539824969388967980774707665628653444519962929189360723135619249963796373057773420105401242565111066361013142072811107259575233970205070506448719579255208553950750163684614397721996002701503439266813825278318354212979950229748475553072593195219057651672779061724017237198831044446354084764475983507162835116131841397190835610137556431281437470735247206468768446683043013320936143252101507071730804827248456087702929521996822051826491588789377788491977687251822347959941064514931267060283251530752514705252599412575815332025942663162017517194897678834320520877401108032223180838448399975348695491920956152109089069635189475096513349304681025178168778310075261099312898654395856263837055546320007832210654512968286776154248654555822966251351360560697419063245234917848344878745478084990536161294148164984904075205737775202112062111981819289777315407117126664886298819872908480686677701957825197253559399629941665253988994379256610659970484289757804859675147790153638401849115696991475888289811360853314658435319009846890566909482867807087201164367820774095087409150946443134044566304476302504276473381093769268564289206967483280373980382900270700228384682311031561184864609298186899824766564312982604635431299681484796340290027429665901218662859297896625404652122167583252854794224552164092722985577412240603289300522287152120081397049042718204664040786073492622303503181128466533940594618274630370642732689554974544062476492779417843237011974347792552159520147009114449529796163478534250648617777925850411443187521095189594149440266136136752850633566273046963133266799070147208405683115916430005984501120324151689702430988982069328457740480476192538365413530791955430644009728742549897700351087237780991000804365403696084484352116581612023109865554812287427201594080523785532601138219458538918588769518420097093674837885961248583534553121419373536211759269084329359517566481239222467034341817049399015131770566341029347033601043081804098510038977625440161431022140287582685438877098065554401718545883013370312182210437415322726704048169721814908312649215011401369137317169557228132526245708523828348870730974201390858835797298334184358543087828040819657581823678976868730774618938076677529704614173631867174240305503374330682248055661592344098096505446164591473666644454870688590883790160420424320515932912548798673650745030729957492128444667095894677144482396312221757357559970672605878647619176606821707508767303774669102022940161501767069547225601256637721538850325348903443997284529809218249241610891633834722480259510315371335231186243412482122220245218462975589553496335378402716615874999173658934112964306470865290636366082711835184392945379747590698750383007504517578362275540721773178295809646534457596131909301599726203582556539893270349213203087696040934643223638822685203828668721656216217728486880540049559948717446864977950371029800540687888752753584133442972132968669885974712836618623004457038651514749952859186812515958460487642016335499817801917921650014747316451043294788288419177992373112834058856492084684370317979532374357747184832858811867638967216010268956629386851487321751926553799501120081693677751734705077883997898613080821679386445282354975895922520223741356319598138057567569561435648258397829407421763182385242594912550153052915389742877716744445466008965285149053976566361033001967252464227630886355857972010813225068896181160848580657686134240261491834719225987100097437935510873467096214542955171388602932107095850546943313710711128206467986640747256637708913093377111029098239530928374947403130437910549283096229195139070742156729709677474430270659183508494234681967502731384599244015809918981911871658425006937516682289478352936624355273018133919439994404716347372011151708204281209824527808022868743589997793242782116825168148642988296138329842505452449210375028158505012781814740828159265843563251860141697201790575292330447715337196571739146096320024147711957454123596262467255401002430959397455538287275103741557446178070683972519668012182430508831734908708366000699454851693643093230755198918636184254371023153694053458871342369389123830100700423411969854302572146135072091030443512376537496260969570115372695467685577655890467811638230131437019861056249902374459684947852886128224352264058428632571154493773966161990443166760648671631491965215100797477049091535865907552776172016148543635994640559958951376825876091337000997040755214140471620041091378256113081531781412695984194314312538531665815151420343424478685614948279845585566725553372809638345045685367049780440246031355736988833724290252038482548608376314973381669098977064905374391413517468112062199035451015397982876264590139756112194286431144409719758296874999834516459907331027462632978250277931738808036979326837657193328936390611994859888751967294870474942496730929858274401902245437822912133270939369776165158354530277225830761784000935426342266710091590870955373863482405915932246801022632691141368345550143197539625861669494061993216711650817731745788261484047478047199218995208302629327560455970606105759536617700110439288418645189137425763374279122172542884346289149783563485549132363826888256148324482835848484557769108213712864524156405908888812583496921683250158148680670096607099968432736436554302702821599366038004286279250951180551306763605113093540724263129349504646386359414168166709076103519818602330470858578208085875688432407614100337778170216521498192381170071166436472522060233866325410745101566500902075414306347277888000941474845511440418468184667121085845642439508949431820322203090026671068902815575053990266773510856295115739839429045088310791407478195803932928568209431843013016072573626391357907022301452589281571680229411731438637141108312845373574798350375768813307294356587904723215214678555950978160083209331420748385669042890858498263267724280605806874108933452617778290896999036662996553111198356568668326422569407037874141540507261257290616932400412411094562845654383262925549270016475724199831233570483883399154628402892998112006195497602886539661411157410979182023592335706541549674381725659787985299886213148253794762100289353356803120864133264695647043690714456058603926655735613048131701161579470159180457322186564194409138995021776272648693332831912140798407191162222557928563748909198483484573903810370441499431162656417048074641030546671204620537790225032701402678148162963293043265616158827604202183239676952295916868832308276758668309441084204711305906968873493046846547561000104904315193039814154111080839642403582250950822455379026826507327187767836752433555832716039902459097566286961670851785125313048118375249654498519957837030188925047888415009784385258771515087573776171632166145266363707411020343032528431087931593618085778003163751308622121874282800485944976574260252294010602718716330658227555081058163851570539082981239551082444636728291449744509101140679947653665751840897181530797529290588202601352725317074875288060017200407305673723078965771973642936163734872089026396474069932171732493543830892958903699216464628515935678088717733784168943832393716865364152407977538068394950427484549713246182793957427901220548678134285803871691714180140586290966926879336715602852785201777982220944166278799612846136226087249175868976353068676998111573894862787134536028625570198951391598387902772635722354080904426812718989341662474765668934239500821267735696886476506274657179263319816809930730787228878970136085297251232012223121603683585783877366927141496293672520642542221097175487610232717123380095561402230794488750684381577455387716611860672213173297110621157108801751647210271259978256620093756978496149225732021733670781441336574048664683327061620251817123860924357775429725211305021303213343876466673479788723830886329112704909422293309939094126141785423730464913721942078696042208951094898348297984847254388739176119732472736552769022716063981385855216992161449784429694304299245872455666724883698887823181236742905285923882019732978699789736958435965852108542151577623717762971374738121620994142679472674853111718390023938538703522900148893473021680885239335652083933568180044865360438145164252787371831457436316158010266890763848219112033945926983721588051931764412232513589787825677724282109666667316979141835941857408680878188592853775884205623641422714971186578175161916215163312531482704600931359295607686164011736927386710146522028167352143546994753250285613407172949326182811754651214991514548861351499201818839043783877045888263246815222982995846730982941997494048148911916185917187004633314042811041424095466061432944069317251222207240009748696450310496040875627820993480805460391528352078727511705096241445430576914549569294436277019898258698991811620590680379602564678207835411950608072592043984712977617508797283481199087448529519841181896082543280150495707434614526992211065895339871652807430465670557622669149871324969796013525942965303423820489893299674713160441165604461314709346817095552421864043870768992510191955889572255589153439691416992588488246911048904819658173186985224790897334980018109001075059414834791164780609917845797800555630173271409437906593270194931564788632115705018749879609253149580207856816799422218171520084496593284650858175856831924528114031929289666245983299455056419286867496628569804929832382038899433820536891279373344309799001516303248549049279151025054628592235379276915652706663762121294471831707585174313354538585891083998357379293460395264473535566859379965336818368306987001226373577774571280275226566329219681588465291369394397966575913710378619331616693541762193615864951259630835883281962101251322522990207356545927777532105452310736973600211319981278062650859486072617446266630103045940709244503428047148072118008824855935960480480987502597355730579285633898360528689964273538513142519745980900354979870379435129443746082231705059730150834255309073563884166853564081624914988536320678546245319399752223964166818833113212493542588826994674631062483336632620516350209412411394473867247390909971767251137618963449349154762081088604744105181694003188373501026626339840329751575542181630447365725369169250844904598381469911251184713834348018174094788290028118967057067462513795678722767687109400310883556037527437899942723849794176314073462226774062116338954511794876089326531722071455789964717923930577442686711434470394158560386661529465327446046864108972113909452929903105648182142565364547763581804827377030887984424743487243552821629880494734159545554668223635190879411029349067584760768056521493205233346478945607748144908780416569541911073141486331750550261158983022175687574771299942499688287654937727992549281368947461790457422790513691781052975370661844938131199443141044777576109341651247410123516854759776683011936837075544701073193544759531825597186293513921459243196753185363200609925951564990436966892593042840461029861074920549583903233807275026828750965911884484535564911769023296723556230697525118440957604416453994643040919271029446980783702250269181190000463913115480925014569602347920753235619490414978650233823645413725134585228234424905925991995557052209446212268659977652480311536760339509954053086844236964267982120775738686158747723740105672051224031343576553283077762256218527059232447169968532165857714293608856576764561324407684966707348845846946711729670511751681820158612745040412793356321987154093119400256551619891316091295925843626291609313287358156845082713417675191148683468685834098874348020942664477242583794228250360840861249588028754841984418848414070862755800909304714691074237835182037823908159611027798891846705539669998470229076995759774863909651167471394417496365405206754948013788769333226536608073932766701750543621417992518495231780437186955457438831662611396569650143957735667689834746814194268399816170431786049889315047375810564125402737624986818853602202569459373855423024509513453084543415051695970116309846268313328161773836188592100524493824937220039459998783768795493465349736396416262552424217984095806570675991791965202760018788886705624679709396942177165617710067275324418586844122048431041646663089632481161501642307573116394276635966890776344628908485218625086664476152933330021882335947041013588875776242642993013751414768497559819824434666666108338703686002812634122791288400866537407656627437541556765519828743731711434377735508906134064521446021224314512469077717623408718465124728529170094790925105920825877876661244839108248330816413339101688394039378776623382668564206524985032722109725691197963836414687706665436095632487544539154585311406301297771047069854171655351136833143088091061927708397087620604419550302390725346238029490111625887256854095993886448562354708091461234178555489619935174301328552180525957794527230870319014261564238684725902701277816852982445203471779299890039548355931977064038630659890096188961802217047126697326843877715159508068076504468239579170563826654740829182046974467928644125558569489275259245313385373544192036132757286486313593913832454140042244235733678915303279157668911107613290021346462019661064200743138194866506374167520387327371201876847014685548894987344995655414374892217027980628918143044668114613770752656174456493903041176409450731720114267526074170068856536031047967119113389263575326916078902003313477934967663990519752035099140647081780216156409034858173119394832514995526721862436381708373153852494598304476465660954659113156183108040374103099607716161588312039548942554649649414221699975115428988605380656780069219946588197096612214031163387350177766224170680552781524053515196068272377527676286831002689081657656384815926515543249058730430062944229585774332587402514761401294463998100042084854260992081881985356718347999050102587467910185455072955994501069172779878972342351778389550678415041934518404940782555147763798000826448986650647182243259510373022371064498169302070257535674630283531094350422924915304541318403156323698375572016488015541114942243977448950474516266016968176435297321818207030186959142019584308586906866689364618482139965415939311166639299530319291478801847009765708062643815831216233592119038058981715607848436828694582772586461461703023390820189471941973641496287814098139203027224797653538232782639080920580753940999996553457166269047077257232115757696676452521225712376662145659737964190526127494390929970611055909310513389966323076371613829248801853792355345770508205066734061226366512032663826877141765092631546445332645011961335175983312518229666728593571850387553585469633756883771655861037183564277880215828891961702615482847631264042071010263817458596611326427431356239386905075712419459479797711493819573182987193396151535181329192540400693551856426396705177481970350853573189705769269928796063951044257394235188376211583897339421762289777041352100085475653158665820130827729226630968005313227777148950041500434690938990653268824483508918674924093446704765020236208057573886094271199911430170818732065207321409356228378554971264117246928254494545350625680487963863174990150273734381725036116721217076602272262112570648380892342084232153147752752898870647146218086064672839283879081173381776140064526667535040770019055619727370294715866962591070130960839579176134841555815991896269669213833366560395805014151016019786527711405451414139031575669668062890773390916816732198288355579908992902086493532960404456580142743534892575191980028248497996175002303579633159643660574866820097690460011776561832905731022089320760366783702863034718883489620817652570356137370708689952285701603316060200584322054700224699933490642898489309513794918024806830354359437703218674008372165483461085379306903088937066276483990311346155818968422272230956267669620710854060410944366568620422896610323330484208537373477679330599091587892047248718148636933712906575377137255368503655502805607944069857661801432817250923116237903127393010603191538715063009014955780046811933218806385850177100079124372016331046699439130641114953263142064690204395032809514925795645328429705631438272857937698134772353973361123646747989908002405991641494290403813685391951863055066805185756032905173154421301152127268963218096675512794437978521889146975467858307219267282739707839905475014772447031651278470573930955616333118719616795884819416653787944570157298321674110769246854321259058701576224105547096439896921874458233304513807847257663791529303397086526584148034952004734410114489903353009868552050808144214971039015376022956978181016936235513739431019298604634721153104456624624370478579457162317059642740423411120463129483150935426827054828352773704810678299590138862222615671714415594859436230247415179915151837152693511651488343184408359861013637379790015214649610932105616366097412671078329817266990361998093951516474465472744608999029699508316114420896175857424771371009378351572030592212478648920825390128472124340389426631298063801007622870647895447714912971623965263654920183311429375355855492178360962028635888366809155960067611595168257061069312165945056263042763950222276852727650340207484367414577819800683537263931734813665960414054030916764068111205219608896348893748625546066510456610279125651112608187737612316696315976229617227036334641477809858290636148810552830024089141838081151554406263756773522085051586489171663455551375902282713644716909660564237237642267424198790973580521874131949102411364265289816368788468325579145777178822392841993190021245998271251667947544017788959659573748570684622552986283673561657514062835776969774619357399590496491675388328994614118953997920144101712903762510288233758875992708406885846258245904377879146130855373208665752743254444344422047610897726327288920411546246214694964656759918557316940884408143032973645931171592380635178764389530775173416159023138895584305412694042861896299094523094791502502187101171139795683607367242674016508305302675336634970721859407174210337119411226564947761459831171148360732434154677228502732627428712981295482486878655091786726605988746676482772906050833982885378263600637577390563473412947483277592001370745340271833538789883853396640698223789924166997147075718336446378984689591123592365656613848585961101858225448643359258460528022232061639052835297547224415257176017891129755851167100214086069772045241645190904737211720067966785930027981167424409909403546758796672045926255979035620385745222205364737877835111869569006183660219354950069844314885136717444439859145005460884027263018391886657346811926364482799895291195445581562522127446257613509933603690107510626917009239307332746955144837503357289093863084457499503742391345592236496850482057447407938282304258752350814030493749542707504710432916795649693042565450591398103888859609695882148533867452129784827943802819450187939589762578663954998549355618483243325987988574089154265587319631239005750654489192972956495809396805630620143947190015445275055837785808936255395276343549059067628100287876724459302184182296927357771644627087895111947671489716094098159769015306521228194185034543155823393847051520110788683030708967838393518889549211335607817808815851364409998040423328321407286388115340040656942066839231157073041402211763809117591103502152591417015057246783808126328476057863916946083719240419353915078560456842675938372206859649591567102455095208433228006819795556479485055380013340640968938279195352900751511133742013901047938515057656273024597901417511200897157621713292863693757823557672653527408703471720310089913089610046410848263372296409237960072931493790781213306639652325342619982652315354812175845977951302298183744924281784865884903092292229967434025669244144414422959443854464676680838856625528967992633295039581813977347452924536153725190651795427195890883138052357441264292486021695447718476355697419701825073986587259811785705247303698081328554496294728665067711806510574049765176439053190803758630097500460646293579606691543359910765917903725247245591465402133690710956337642481624723787824023086733632247463583861241248417702836196347405002326360237607704413515785390177122997332873193951213409359796635598044111622667499483199625412420534412333847888382570167388327529686093947275779782433391231148278748904355955419132736030478025357966166664065437933681795453849866378904210702416450351712090008112437739404528117911961890415218910716821544275848907024910590894636753213361905705116542041335208491418220345501819852440346747896925146412733223578789750513313382917961330970738874749898528994791300227414093909313053460866366404063902558995171369651193252809167211959872846980470796496418916079333254740071178216759257338681792182307054350023368833570931365455163988472056719919878678257793261127350197027869973526018621612921893435222318764037412829928958538783706709154502340063328901839973468212645031998543160386515995630621774307864426170655400487541798128370256227489871485915100567367717856527573024549798801464946591088498519699256167403098018143861560961380334355563871974265857850341535152089678409329547310835419272860587987987827185191598606426666956764843509673467661765333932402545000155161485985297193548735825715987551687319033167821093485947110693563766278511664605652414835030961237215896105651031795509301700324831647276353283174284591603432382656262649136347774951435513352276633393561629450537412387545233126291693861915956411664158245007800609202743393733618417939112962342172721641772384355794083742461394555826217915462042148328266354069415013471591022058860768610377698622972550728257514741989762973963062745148391362534793494392745877543811095611612570764270106027728123662892955404808447453627915586564947585111240428527719983306329473227507565328703605752390864333749077091304183096635911598876343379814357042161083248532274911741143040088806395775323734972266244970584298182909483696848297056057886738543118475799685809674977561593242637648665049744093613764088166038529899634849127669220472851604030571440872866635157194479947291285255985441300549965884989770847315646399360699733804802768956990087098454467064449167945604888388623522194434453728364321408653668901753193851199821921698957142545330208407823579513465178466726146630125242155174315853436141353681375004841951081360592771821874358063454384184357718309903829980617525480564684293287783470782950615190828991890560322747933002183957861031909534760724611427703707480119079099459718144601994887343030010630035343667380600619893730483926847486054728190260945576071919884697267971349244346246999545372687212332803921245816097536367272436413613185633376273260666476238383324215456041169356181961115738212874277885403977046955218403311839645436381588248964233896248055223801907192359459283963465069060805969998385499844956666782581973033655167372320066508943260234069790634346573871304486126844837803041704198172374245670188822110693479264354175049498555738728151400021164268512986690543912299712926189195650634674344357409270234912962690745127576694635124894277259228111327426579278346955316434266192532873462983273846332470844461748002659158106508330980388041646913695819369608126518538903565460930132267930928319096505374817256745493407739373963230793681573417768509114659324110813006674578073902018224510270260882356774193435890410332366848097157906674400409238043435652941903652576622551435914103945853011967259735772609205405497212044377504558876618973540405993695611508571994560993913697951222910120547417633662568263325833815375692811655523662479959435561527484484847638473113069290340009168806208135490680516778395613228401086459413830710904092730911403510722231992768805607814415287790283547915517243637236856426010956047479082362607990263501788382074628456196208530983188272066753014241961691498535515295946139990201738265893782392621478558986420338499183211395735763391751242110043211003839741058268090478931632804622483060372238697520677329241031374924282818286815227051680830684390221486120404949015004886172583685227179963370177383197847306810507211788942567770086314013390189051692032344322250421974907789899922178120111609479527666682629838858648511024496533358327120814151919923774612245572143044836024665652015708162709540966416776758751654787629788354867151987754298842236001029206459355879558414545736686728453660914757296287603381812683003626298426004157160497582493906441629490833019249199440330713400064666534271660739161089336606209854126469067755857164587552415825529517159260428070269696497210561776310558810645388523180477523934441097698637864808323958849456524414977084243995084139639025589143919707726321173227156001011849844883378772988406671468165593524804364605702223425987591070249711121837047236016691300314934700199377799356736446410815495424107215605382867332822117541602087493024002566175606898602485390367121035476101207963698484638820283024380656616445782088855957997999293934152311555509300041858501527613400935685329205181971850062043042755102248954343051357057862278588440420943804933814787164725114943114772918086665460632802466155380420145175496894063373212677948831488461683355382504008341121329308325576624393062317317905177299898294279763818374035467893520653740280231441263948393750858209590459728273970263680119698883352741076731400676822293661300638950083105616132226315568573468431487475894566250961701657660489183939209213751563031890843691593555518559868178680101462317933258567417809841438886024702900978507231999415111621541304265629284383907767389409808094268478305333862544120038144420277874461285000786356575290519226348041398705890230832015388122390234106997096554350770276026536858399643507679055902972085337445241301564877242025011831116712007580961649517003677920443663424914498254946938742946798695193474246178417241268477435282353486688041243862229610004369985265926478599141066109012653439063149212856935219440018676845190093271631699550932142220974317207386633140591246040514489530687127429903694183647051514757342548736580193353779991294300393620961905170601554394492531902934062426377350557088004003441203958243703987686347028181897090709819960086426003529743206600570294750562826234324230702894554614273939507995508053143766662662820364320352793060651991331552960391090606164495378785614445243706685235180952318430564446549835502435716510375313957412557692177038559944637501794906598112081872419723545536439144426204048874596343559694497811477505373851076878471354436149864030059284324821946824084230103011684797545661617066554418436304725029136465426485598917397647982611498856316261041942670475593001278557011627848603168146833252484158907443577555227959313133781625504946416811172211057032575069713567219158180670348432108593393997805830843554551481982169306131790401653735308219453091851830152434050145011932418430270134848806243895206564695505252921171029992370349237781066161701353643401078422728479565544832137075357741793210407381632358201851208442760466496546034390015630513421390361263430309700085266128978460001258711965336760543249173761391345728284141669496907532813469694929547695997501964633835421973678810517398623466691492998867789364700484273176817665699601216285715374017438253099873329206116653004883933648761854416821634076674568820101008786624915909566036413931598591156132712103557461791212682327723359798088040373682643620088228610649176809696944125334901749184779398973148308554081714664528404763051590190338254916669497178030491995011577760838412096929763831302580697118715705529410183171741478815716772710081654545842513675148907262038023578470423393523741297040477506180182916069417629461012063805058122912449138236855651377789912175297754978290194490254268976538252390642320621947122947920662633252518415266540020802774196567005610959613385959477800020225213257831075338468674647461248104951518054721633526078295942076768149367624088828190418383963709567696268565168116644219395363304565901325973271963308625158120770255870936081354688153181468061799589580830243204016639012575723992360870030944015603922745648095946478849951425815210071855733476506062215548389482602959282932157598606795140859385920276904223044018726953697899286263326058772591603840259457053322225632007970774318245894626957573182442905177638804664763171487992498979193242963140564268270231519444321724967011220963159168306230403517463397169351435139135837305776540897753854337045117371391146878072151526379504815516564893352677489796996547951678797478814704098159505817411368928676703719934959081218694622100943868788889324069293146217617890295190180186911674005413622358868819719443044290156466156176799645000547369131266196991217371522667516906994333369736954790425366601591547372097483241157393252820205053636451820659451472294959693383348748656967431038341767375775756418406069198284705544522892551360574262631526072167072878379887240237862439587194855686093011057498311751388111041698748681744229231654131710213534299863568590303840144458790085823779919211071629065511101541568747033342703719966875518911651746068663277456331767755778881270387579760740380303656237120425214320925495917014686709491538575585739436667581340087039452782740428095168107024741765222811565241571036601449320824177705301344616063418541491562639428216570320863230873667021196586059176584072829771490219505479418111975364710359533671710370320052391390633804357388263471819364233044095932731588609457253398314181801173770069600079423965543675108887900146883412938792211331374994940683203715139965309976289108942696045700983562980036529785210788615697622093937177784550836831988559876446794046135871882686077603200110000402512777568173822033818801800282361854030111911586751947068936902845564818112383313819723573630998908704748120320786639867560568362914785415958141182264979043389217742472473675874084407833136593433446004567690231353375761367870655592436400621669033075915082471198886629692726913330175495565872717333842691030145695698095502108833192929976291569423829210085531959640674655981757864362324691656247456587199930577509645595015064249973727333094712518549072254786485372953507006214143952841551587196444570224755515836475083353374435223790723063789946260528808026706700315813851040831126918231389269992533371453458658409975073978140921340351650000459055510727394935430997713724150968534403654642391232764341066724133300164778302578730648754201161941765434415320672453368761895230441694738120104287184622194007726303122492693057302967181035365252916457863789988903747191448293850317270695619878882160691928886948948237459618586632472194712253449451654153572785900369140468445726037568653593247837966511689370012105922118580227845694950823504697547929435669262145956197434784026826323853434434200572612087460200219571984828430885699294522385507401859772491265087521400580610121645175785130096027463621210576799413185952837037656092288209441855824174768615466153921268157477345048338587329843325545783169837620907302512991965919687666602094161813167615672642134212145678901452071161330789129817613063604839030866650832112804383832460557661083842147316240535398028913742283586077768808964306580327190530234921930130937086675038980295344723363790839875303450109280438403287240237523361837631154864947902345617476152052186539640250335445384534455777529459412324204817685576617244972923207024759788464946769543330805835400387782433490982992649611180966498181478267374372577713081434097174294566817889834601202864060953334582281923672769747718899951382738870775504327033474708033903276256991019300349486013395241848147444618683754114880655088866959169422390091496904949169857073063291813631820086985047366795799804419678415497937495493358427322853481831048730340786301923997364820155083528411189987610864012104707362224594484424766687575118054305946197697824951025280670793903626530531498559532193704115006803918813633069929527954703618786351152407983996350965059685604503206548233933914520135925795388900323876047304340821734377256841172794130244422924235139837163620753967737733364918488955304019946321628453438338867430040146504573361628572585992756060935452349695037008955048390876061090605691194509040324471340222394369012465018210006845153238508425358206191187134834593075419084075204249609842339806499447842277879099095822650738934678042929775776416887610205114132382760079537810177818364991742289964563147183340834582131703838461068274299709094496760419206664336421806863388120212089425184643956818304410316242639989740922369503707048674944852941565138320937217007583163190509650392389880106059058430713435492871509421496150598001390849102191074544021161427935221890066693356442504298434136568373398215947455836176081756946993044554676232503779695238815145935282615360665477225323764806020127251490464549450268385888332813612743629340603111350107483302459111435075219941208682231692865802120176373072998238748414485341900507330415515517495490375263521605555324736832597263290126050222650379248819304729809412724377537799609817159280606426005503474652403685356635231038170813871327480507954556132708706662618129260743145762992856645035108445783918716978335316841259101981835214211064755268485830261576553468278008533296309946509166078459676506505396755222517058082614002284129397144172056772587576350698502409263833968066006884459203209039437491759854590530112091506121431156512380743312569868607837141603149104503417596064994686968018744028760941586623573866512137479796017366147284191811438828842692655223460302164780797790484898102785432596755115629695876089084306191627506533566804209733299252692865286327785942712802060455121227252571978052467757624655152359836141343527494104963948853137421400055930440753674910766996190849085994664380964540691732865318221238832436479793820083343815218836401964472844287493848998712465556718651450648999041712696088872910594440450931788644166803179891920478975983620852474496511724961269178756974573650089370353528687924139654667762906878002501394320416515913287152835243413798370567391331377130202235826461493026678243682102663417296938151165116855569617687692538587460364576432747381673559114441139430551699990446221442353660596878889284002010004451092982454338260561796174369898392687471771183168618405123973769544256378020493442596655200545862898341968195718750103686612153017786096848991584107819996606478038254719689981254033669084114083895189698940235763353652831929845609557938117121495167987125434632120274937280040943089001374848097317156335909952665256754526456795215536762456256287228415723563811920958234555669201103084726170545310504190836673253790370259371198739254975067345333438712437704092792071793605527027400704111218527151151123841628747010993434121067101530086353471290862646460935094174660909250402360652237354688189854173512670180057887019529157364013918951105492287764901221990186760504146314868855558557988454908801747077380007893344035392802078234445265104164412700717926217370953835650970366547052991392011951831036016897837678564364126908840919229381976286562653437707856503708930067361279979027653717054999007775974907483407033851894291900520983179357908079146414020325702072508826251758609644626692196253101583520151921408702921608776292746703250799352801973256292715301228540286366138391913090139646842145585448844560434068725719003420714850782319509734341583633643067417730148964277128440124247043547756027941604873521014567239730902018573471718114808587226371825503122967703463308860625425465271299818255684599909936795982336617412667604682795886091384269928742211573358320914092948101971593324337312209968913627209645849213341913746822393328213777988422309910066164300931029634822991959489347696881473479220355540442842990935410581851753721963557223692757054710696129491351929852703110226535823943789163697424330042708714351796675036525862198603976855112838381665193410864623922735261797928804235011525269986026745714567663786371355016972222840617325818518114934805569051247814993726655705554498519385693387342720258206061280985317781277944954549587575014480976841898403757700891259406539579988693581445269280332961141468383755470626747137824147766676305957841089901294516868319618077433188457859157459201061962903621860691284828979810927151766535967973402375800817974493865599867012865370319438835836348429597120682438300592800769925606539638630757828048915608306672389926216678887049501155662596722636075569854853171942932982587873965004842868340825547914229141734218323382909232789047001262835335282842580808578936522322969440823361400821040251800001118967595720476871725200155125671219075504554631503142467306522358572902166542105106629824588976541060967814009744918442579771699142088976282808522518386765320831783013903840785508246656001938470419012194405520955499351590061802743214917816754919771879578960365215355116226247011470501067891058261563830721443952625659902165405641668918796405554822358449085760319934117031525865210435723951872150500133494351484115652241721838577617025586969735771234776723799260932406684857590091193118829105323324402100848552059930833699554778414449959070232523660163622909895695010852915223014483807380654485195033988537647021925722992425177473082469277440485879620260912873937060968830525418288886274542674341929887071214297052823046696161947316081686116586270605907127675664004898454882448202806026486902425251508369769094908423482139690582115427473301734039050177016509600588830737055678175651910774010556874449301448576580703813996398642008798689894188759217987346927333699299260625135692130570070934808830784656308277367607407927545269881194328807044887096009706676604279124115349822016289756847366716221781068546162099580239044183550745097737354754995555381996447115536440249915171434561218334054540962731979371863985567904358727911449154892803739004761176880821166688382077988963886468066261608909116010077299602824292856916693723611091381419794625911341812446807817028204886652239022045880023984386091245208367792655866488280089462072068789103033484094273333775072771235641667129723303414488272197836788833880258783759355898881886708865406281760269267988984280841365790445250633263830750243627158724498655534745157102085584582836220783632436172839301037332345100061310505813739426302819090685221415507937513042877273070958517068709979323891903517824554469038210014615358215787957020272530495958263300748252869348120287607391684137586558965424112102205657359946709045441744688683325723051364630168475201829099994399031407134219136044503197486813905328908500023269224131648307091794104509538991774136679971052084382020696325095681271089804024221744334422398679631816399868555756606533157307184593240638521408123445251455693044968891600344936979758812961237000427066833518501127342577803932414283477959409445260128310195721992795044508507196143916225042133392377332576967374636827591425351731063166196400061624852658753716601666492807262174330382415000940186708654728826378350727636552764910974391469753332571648460878723999260339792433569418267148992517912279804045711593860434091168534073795374429008767934695512700313444495464293551397135570125020516866505538208468382517640689903417666683096720280609198012076357551209326410325978595234890698432294588477392490460261196151957475088966716520174666216209388490004983104935267683137038264068871752839235799366406359764043835606722396143289356732239352083812067008307386968317320220219526998090465102139486904418326454558015441542101804303970253943457498817950902592825219844459770337280002761529783249776476088956483916127112519463411733658856880911021037834637855936852215951244154390219392175201375599887871672908253658535870610481541578617270653075603228649702056553406533394277515989759333572963508950809622301843574900132776260438142673161951045841133595620705698256244170954101604408651962582478019527153472674464845678501525341626670706121904541984363059008300381843579520665905718257216193310449428938192920776001289455237227954949447574052715818564684369162769592003262265050182465149332542295496024299289513668834527952932843449784005398649410765600156918946813926864022254427541651127466779834997063561891379981112310432616945051609035910324932008776228368941818741318612954346037820162911356808143630696478273420779794776485075749835676690711467569924023797392754694744418288588731969387617255185154713792069934873249458119203186654510467008205503787351068660561644102836915513692282319506563269389334244478610404939950682149620468299819942441038599683131217178089684181226529040784593356601037286325263448299713310911484475223176666388023093022092787898101329972218857081347907377646987518550584425465077259194481206265581163658045897791849696904955304159129797880804414523870753900912291845280400512531623934149852420176632425135649205489842618523979715567206386550322543280343408095716474687461213780724164141827028270269413502128103518682937780451476663868756093897265111510745753708285867498178051442634916296467332896836237394378992043361464009330487351986203987500001415458629943819485906704176081509830515248026615627390297948469127155487735099284140845663598844212824586531724172649715592887674519710928470086064554166711410003601253555215256813362589719817149844654898190782208922499262083189875494939894927948779836908623661096289822205741076927487177490437249992567924799438870245981603714782464230030649873561360102509373037811977833277973563391320136163737996826886081100770178117996801353946301546904067083501547348572344790539531761500197493035649502080020354862776610799670933530001793651821574486173551198311524728864878577755289508889822577810991494568112728187764225204894221958212373217796629949840482365551321315131695872910087123079158726408275867749379738982229360434159670739539353816275625379931350029860351855866277807585069238788542547090537580702481526932428977965466696029099684014626128503316551840748936942439112040940353726898708277300397206450702794434413766455528593761716784313083942030769367537990447242644238336655659615851032771630639187721391120591227489825007165431638192015696165541731105475475189026809833999517475836827228079685037761231861033308709589280827317852461941882191207040690351204722412659491882126603436775030107712387472763205638494279691782136182837173014202532811564957730454996426355408938265400962500227102282867205028169715528361791445906743054072088726866220638798752837232960211597197568569449195618659046776677002730831765515663040370635452784574925032451240924114773206453296994426895681157200634564796654699695980750603512703230782226441267465193445434457535299700802024088326418465194627369240382396411954881877689245598669218816793089870868337162069850705719345837853326317644262916213606549618868235786058242986916278288478263177033021086201282592831296845926612949259177867652680645229634547448100936859865587388061054966086609867474843129732356813159141178871785103856030173270638955237719809347722587751112222490862834266203205086923927165739078019646941766891530741280771309043479192835418729876347564344719232051027673272956945576257443530259248155043404247869428536200333236774547365143312869626488159123926003415854262231206071299236470482889624299893168987787633005589446050120185382397349434724750548707508191848020554489528671049285506275540016964561388927324058458319126790629646426777663817345387306542741639742461381314431918824905720009457147784609133665187836194155806104862914122305777475227745032571391049528422331434413122333559929741138114512562259611259869435673881356787965845018385542838095973702477246712197145361883543758667121492500783009854981414037518725531580460091950304142041621564165840718386524754876640616832461389817390944648152231727839958826460186496607583619870198798352256141302296524702975782797780882998045660419304407883180752047588745695412119652212700996018645717943718748495012045453869619271148638557136576199259384951226641867494130597110511131767546890582910951731312001577092176582230239010300389276860555106698212217860741648379725406347135230174888886827278650106157831427343950212114199595685475050106830608078464346118682988144169165606396595036691969383029364691397261737785809421813733883415854666789701755653796632774199254585544624489993335708131471309159667504869002708327862729138067066518439134942631245808588498592820450542007257444958622115123158520694774977403736149180994794015025653819017241276944074221859381552461445289775572555577787451006591544259142103677366132626160961719382389197864158227616553170873055291958780631672529166125966899111449923307024527603874842726891463573631082369322326105491038416616151792726540224857177923078638717550035905807437953313607256960659530533784781706001792146709382095356288508503187708001047396987074295370002819824163713963889204300927010386512653591389913567895860493531124663444827958644630467406759958931531141022312135013336835045904066300869912398863668544840791977997417908265782228034844891815713463343873326819536065287930127523332550415619101314099295619501633470793541633799360470688318028067635178635147427546220888280790793069683322508996861313290038882835585801844347048422001473475828671960705346199911576734505460122630102463780503682555891612779663220501881974042976369362261094101361951430302598659552241879962917904687925845946510572508194476367730897187980604593844135786202246626548408776987945731289552361867057390740380721818726708674507955914255844089904359971036664148713008249040138958612172088111875544949356881109135181929293118214039843540804336205054083751111354109831922783925195717072688449010189790085081986385284130378941250821687414891490816864205439680359724870170964435369520368325890795974768016214013902967811548066126079443659000765960464120860791694516545237499365673486181225789202024189831709639279742648991647639642334154229481437170847328355397219586877968068806448025250522900970570800226202698485101478265872232414674590636346145433997411758156748686646497628447208413591412493880891813243839888558560583896489464877190429433511860809930348500237605601282272491670523766876492165021749338141061011052961982942800470468435536983090542077765596986918018633274743306915946874160375458150629944573621399877915797087864424784828102748103617249962850885661598968095309486561778404536661081896811979942171018814084688474577472315102914655105182870506520445970897383032771426285930577846825701654215728844913919048741864330359044629616613917380792440761948807595269593342941368246684302846465520512600479900728376933917281611606746581257002565033297915317569274924878725899171811523658784665262374117523445635833339921827407375639752798394492588351615029346208632188856263959395703611616217239527284652430861229607251298607174208115373096495078655386951715548716579631671042708711271793885822167616527243478565880083332628838391111054377267309432374002597256798376809705708544845297672410263398289397750538893171561059118569028817327085580971912074388051342910676603937078376356446692558653836029604460447832316229750018031198926979394072797118042985923172442086231824806205849952409719252972882160183955095891110650319479128088582611916908916010842952432409538519849139250986619013063356099902127730201944449508819533552735702218967215206887301142507104911383808099634326427293976971702955908515611637469805036310589997642936066215315910141621733615852140285453181842085042375256598733900305844068561072058967172689906081971152589746821216986022047468236397429798403422863958244100486034401727106126817620618383405157665973904208168664192802642870044835876172100987692031609567795035900244488205673102533627687277809415521160588645338060071859786044099906423880150351411720761207760184942143393354077634041305246038792572716725243909312617858628139159592233020204882285856388250780287094423567772263344869959110131232822384057160019246039683611984428928217857239370445238866324679541307735306024799797852456744665408177359245146853188899476663023282673119558836438967511830834129431616263874708773367945320386704758316522528386385439193636746130897384212006593516059319925407591807618694933792260036943367304598212880036818352257853720163541755687810692016417572594422170535762059586710400864608723543573429654420907837485126647935106873001773395805833660937604256575157251271841849267813221654620906224945327477512215111324074078360519078538694090229958916712019438469732158888725669983151728130283694022732415553055794534765319937862983756272253181492432784127557671334707430889124097339216089377778655204256788800288689002613058575232186848726070059955423182707147432092106266799106753711081774927453660334991125313446291477561078515479482161924167645461965464413969118367447427404250234140779489781846436406663714382513167294400938386444632892275790124751961598040314529346998571033185214143044319991894362357541985435085127433054564662421786938588936085414170075369229773314515754451310156945618831298907264303546614025577515185320155968013778826623753508592469378196873407594711751516394731185086130450016169262979440778151174154781760121629305451421078041404824500185808005786759248596778321996902080147355101787808419664971554577973942164223640317548833156090503384500727657272416204461457147824174050850860421561111308966506668881743726547760863625466574952351139094737712398575867754427509497074035871365399175061789441872782574368176103218017295746041989369368255332592390457807455443409512957277592370522016236543727380949115481157867238319712114347064364952042464381185424578420422903442491375734689870462563681681321304809773681065620214386264235698339441169033373691478407781166047379406245132743493214021079129810599727100780536223042875824181804685363699746121668366501765421211084146406834755984602667815522966741062747539839822389262567856677862526567935219623397963186057337703656526134936398425617812506989835296817170060457056587625145746576815770671106976709029257513862064587247312426824090008424789667625895178167426440355356786309868051321566340552789584638581749646158719706553092664115069652800666341701544148719784767334787991032367270896505236579428836880339258996925616936115019798624372462802452430248588147753531291584902963267949538740958558332836514649178272226177268984715158040283604581708479848043837906876513892840621773839940886475330321091294015822032503215910078764959798312284506826593858599946046962534228552336399922558382824769808006400898654755993415869542429631475635895196480714394938609549927305555801500023526771944565741412655425700391128789658557505615508022377922714952547039034903619115016351082769423226808935973956375965155754896066507747333293617356232273141219713947373822561129518184418698330498380775256493583188831397475794698152468749718240129728255224793565332521898355275280557047265151290329979951034153653663114875174142082176139301506515590541139609571402334885036228512026067466191667596936057405913418688964874837876255546031100809494771094339888606101416495415669096837955150296554759074024272598340078056346316539571206833367623071962888760388282604804252111956025107271303170042422399616922038295141715768706591654746632942253054183949969840168166727103330885129409387566753093539215115165375862744029551082690504685385052089041975838459355366118171332847620354821605026866732542501337675239624255686315040529880325731912654946535603738259048183700976347705186477593839250408063489453284349532006994563779444482341594969518342361884732020370239028213562976705285333465346905691799079749830556931865303714636438690308162660788745978304246618263770076059052893209804785898573820599250063570422450479646710888361921592890335632232611918445462041948788199062102897124649617284657684255356539810776533353937147097699312487557639979234030054851421940326636316497978045775419091401193439556816298115154980339070832969660385092479678277283839907821174510179523763068573714522359724962899345654867933296716717998898975064083551794635726635440880635434016005693854401623228806692147945786436837685495333426425731556863429369184298462557340287471356063743238611409830527198831324841652503442979020753435449732321224832694057424850326036836436607636382155334889728268542666114247352614861374805253543290825181151674085097540669239922168295174781519687423381284124407181548534829953452536300603989397029574209648425872358910909878785255496711549166239371982633560295405070516709122788167962889899860536304037982017025211482519008256789161855636839278767140217001622531071334677299068919122245747057270024366495112670828239444470058148248981217254900921043642591241026170696188638727919552770051558275953951473307135243834927489339998039820477797681392244258075094341597116820904267724428592964127387423136744261613124856977090174389800818630950260344500827139969468283414026258937300346665296100460144320613729570570419842071119895188402924855360932321329935725049023947130635132011173116163235990140285599603141305029628677906829380441530914459936968711042142860088748796686046880335993592514664719011152845532928476938251194797129788763340490239795035630825379524472312801929984588290502911346738104398893422184005094517273169901609163343188936642206178097074465928844681635927466900534534688689948422901053068379955699575057550530482080774169002514820814097165965964964099987687804776971424141939926649406552929477748686056891849599512344562154579320242223289082680898373260890171609606054168855466249634500183053581783720783040093716215269075749867330666862164857448172114653423602017788983104302204703683052783765809042411271805411160177635245023921226552549182391161919835957217942725046075213509163967455990325841618336355389878781257325151725398236351993812643376488253100660479181904984852130233230332308764611724973414382055242732396807999702202312498080530342171514631560032055573616948619380964242364628991045357006658604412071554662103428100532768964191944546534588586248131401287946105987785688025960784893419437996479754885165496262588688441548058890262369770151141234066168794945825323386135777716719509573833301430295512794804690306455643843920891364357547295678672798518977531618876220383884533374061790010698763499312367913770009602811864775764505466394012994226416107171861473848070386241659483207461760195223465006273894537554087720387844127033272291126678103298105775294094358574751629529531520780557384830488576946230416475027375243433627608697833144903400017742702132157140940294472784850010553295075176479721432165108576093673751969511431205346504639924372782091603511137565005966531370107673876631112666519897590628117362233863532312154413169985192961490412004046623017409355462785118155122976359277148370777291882596607041701588556478957285087585872267076196701223985787649308716276864750410348063285552027748970253331161968617073466542937381879202485656850449482421730718187383311357461722826859111556074609033676168288924715878487478511854659242881067533827933044410529775371454528371316953035034582571780308097697769521820582646458795713223477006654525479394655992597434627166405790485139291553544644386809247099981170972644862903260898262060181913888213912402181560339662521686425257440943525565520640501265607034074649438553784728545845609916840537004088508249132692910657572625147007325722821625702038541054703827228109164520915110840269750181862780710462908408332366642529062678094607618976450041760566968253448158358431536523218919162893770945819216539109942800688226086151136082273012834111472225132289312133616658345590037392399476937902797833335743505451163144646431385904597327341888526292712827993233689443105941120791089169743980900957137518165417850334342880097509940756231319121741576861680622027895087991218134380644039250093619120791465427847046268348647055639454628142162400148664651561178195463437390877272095931401277667858876415739711256308694648064912647721285094675700249587820619193666838437187688495543284297477600951586733463014208462377395509910079364170339144029075384251789875384700544905847488345941972594837700745216177800489376596546112050671476568890159296986898802752683421278613903288439934753970380608195978659669463249374108326448674773285841567850683299678335611954810344164555412599819460330566363921524541355620595740363926257129140167910879508100915647310773133806671737044953906834747178677113321276529480265505896923518724164850598817939698027549320760854975978258131905531987481734332429395596376166480440734682476796834256082173069902836202290307892619090545449908574803370412525185560033790175679168285567071700371542697910720365117356163964977065684878019269702565527878429088080972980930831889751303034323883782334344788810162576190192652825031137364288967963677568126284454409416257559154192449639192568125318639816536527726027770758491741308401889948480896085690047322004685842403754360490658502370205109130268166976628314370994883615524855278227135253870121088833013192600905892105461380390203841001299484545803980780829790012857483531734335457642969531474377102167706428831305051379993916422228112830916789154431563508840154593343155634118851246686489196743682221662113745903366627808791100470734513540451460923192910211557536525021948798347847945581933530189485258608931306501237975912149892086395504910665401511119627995001951097126410972845427696748626584576982114825433003974374382917665611619562716945793573256883460248404888739066628002068207656606404707469977946222460455580189009497834020059584309472438606617369514910279968285321275674956893323809330420857319011684987474166158809434460011296289438360850969960467248967180371564690185087600971843027614831370133262841516019632723594017754716739995445771121590247670362121238494709200731602596526228942374043982185299152435588245982664659697809786393700934476296452303523526158273325515855456214737610210620312636885106410290723237252351734419195011499823332301937379181291122990358377804868183725666478214908379923550814394575889188736001166922070180069576737884538435799108581157124368005630952079601049700887560097478789710809431170203470496989941957554698630174566078179549276199849715522875933514062234592665922212177328206569414329022233050227805574428072788074575983378368071585879972743221637790695684358914616605460953453487201464440660310198785600923155405884812932889728302857804694332346875263117195601943811579825214202353023198646657315161737332893082528897240301005543901401503210826407617342154219516353388377969737953085757855738680000781194409972220134610007996455038600231283080295286249342060791484838302495235327874896283587716159058150427876640273019684076715402481518418802830845757232475781467357002993786790286431301795047670121237870789375003528190305889049737028420353131030409813417932484236152465528862147743975157595981461714587824026938225721917106098702786968896038649682148894307834300890783830767621707155056660400187744849883295423845670621882097455216804366025175593792421014020864784980679074519315442211460698214827084745267437401290658777819060740737864501383393618986582958764785534624804635557023434403480123264821058790916880208916761542865172351645964475235715102902625364882984089511988414132962995210410556714878800461722626508298592692961695074010963678232162292677086160965548172391590552266270944346460774822573101944080752493601741487398648840802951125487388187790592763576691738709209459598857248912478663384265344037837633860104574774342679547255058766686663299375784933740480904017563446579852881693634471510794102017465895743236984295427552837710970836000920079529114114855490099705815327917046169936691236564919301553782674739904318740120060104299050445466287530938843354257937719503622619334060187783100434409441693823043812696921880867601937720857175295733561638400391418610761387763098739252965523587226991800308067532895069954629711183536423129573462574596427158094163513881184814512037501217662405007907780813901802617246652274062709244665382375477468235642798546620111462918406415309408140411208781713730230863492919528737180251810343623336577332723000340959891163352812014276719965798579499294541147368845414502682112386946556506272962297727340848987657249071001004572382760044322035597612303382938540992774837858876119123579902164065526999113447766674974345189131167201719446723815043634622835458795155868565618698634856770038712280100335284948001947762224505642438674978211712243117553106207834107353491317701730011058250090847039453344970535563836024220591630379297988072941791941389284549806737942575714502743457223151527177709303366790288387429361970595197836586406442356735375649573658739274520902106167597304696319807323832351431465261676432718128265988756167397426892238303822892442292296626579834769135761319029776955570061882286419621566045930950461997798018098620920938519083532166949018077931149776765046183455949556195685499188641456812796681534857072497806459366345713537062355716619583415298560819224018653962232176502556721434172579974681039677023388417042675786672550281973587177948852321473073535972426908428384865307223265893580668548638482511533214244823288216075702305607326726627906664954938447561389017804571924242494891469295693687145453014892062188987188874128130740926075881885809434432514201272944469637122483066444725838589815600032874113168251719653312442530991994739543784022357696447117814601852046375849328539008487230690280172975272911615507431167058763114673023459936767998687430583006849641993082692371377927475531311661765722397022245024349275205426255144643875424338151996700629511155000374917623381433287329547883403748759794155584286581440827111347035788836294017297474898670396237939790215396252350666574160699101831696186122013101559940288469706951478944513787372269905762793805751090556370979383444757781418244461582446138236944298200009078429622176322574843287771826505846865113623678549103697102453628995707306666897194853721718930279666111385699390998176984240069239451550628281905322569002839621572521193444971217408317355094867525359345016787200332085149661637998079401211693939181050587651055994631145271780931203303658968931874610454467047464901088348540253643460634000025207359091974893701037374232957481861937230540657468377290660470980432160852472113225853146799946396549092028700514515564286268554355011443217389999190409658859329407071209906639439021171861123041931977450309091961131819992614691995586876852356212938116380614607082148598749793238585785390488365311591616790087240178626271613182798025698913563832318490774409216007072455776154028115034011448523016290087238577327709168687087290215077279999377759850932145762411481927991257688088396842477033376075719163935602893323554530096712245854862352744790853494072713744678615886480771920243833813860119901222326596201379492473770675383451815676172001723026103018288057988887854274122952588578885216183010852529428545573097513022365490179575831948081121755984861985208457953610982559719633263467761171674752256948432652302636324166902055404518946784239776349603560345203056102684826782911322748460868875330365080758677623815954250195815768391761438654713585034874591919370425572590587691426899694475968105261137046390200612148644800973654185671959090908695476231690155171246915456732414142549711662993778605475646202768465210653702167254872607002107467663319898911085114232679813021258947713055921457653492741508516004543726998224790384830648686001634448253224732596241072742137659518028718304336274717578455817518786994282226872654555210430612822905261396090562631560501554385868879570332036223133484377563046608390607373586456914882869126046533930395621884203487780505879247941817009048973225325889969440175704456536332012720414771108143171023035682840227278456145872095733749767595330657413336739009828535304106689621457184562200940534401678424367276351049512320301919167984401951887785417262816159935450066588008339754100293682666267068296646647659818042805165127650605102269182017829463630868067331716160285745381490843894205863589555810899440941219219576163973270829218562147886283040988363838140371829699265498604635490973747999232526653114950009593453912067560871824534501183119135733259587688599779625030852140722989666472073761226280369755961181614077417252524526238884699497572061965211276155792700479105712676420333731945123393393335844344763144899529686848449321073853358249393631289621577831720645523140183937336676113176710188221517109392748256757606655824839880903710898588694588189395858893697657919211073589434626086246526963538974060417241519828651207970162127792891280916906655522396509709453867318314055788029545100612403980826174515777507229810616082750002187864306103925073675355148081040048931281767265794497141327071864160054567995863768973655831772628083755956383505729323323783862571551874669183976244919188173495893925218405679239174148591769978820260558747250078477248003948631425040614673712399818199293049875209828839819934044289355840348028338261700904169695051906804091855585455310340029461688194810618938595487128300601569379408531684273742579108247169855914565304785812932073240773990038234557654457804362686350320807830800665813559024515822454689457495081859908738345378021836103455016670677025573793719947996925251733144657386420879266893783181116307061783350353752725836313261625979857419559607324977646791273987903844489158825059672350437554283149806888415384347040804867264503226603072487045878595488707868249425590755128637499605761193373107857548556546201391569603053810583015466986758759781766652120178587391865798794009029645043258569722461353462614556423763187549119921279695093266816605958652231291640678260671575444758852695654905565247226472540174700673734362026072232103650749572109611160635714878725488298677014175260378727956251354972906827842472568189491529576000433165484129488311774786175539720220226371510909132770129777633519085014746399699593099949371788886598446292965520447194858960608897691330700726470174075970120368121903133964626442420530988656421269350398189514184418463798846818975215724373050264136718119563132019162708498492046579318084174145210969343399494192680341556605579645055748577932800322764873290312228752257187511098566171702516670086291912070195019529027756739003602181189571436367597967583555197059791298857912108341827602924827204189443512456405496098154381944004152529127667195706373349650015468160303288907224915140460123945072298607261957074101289915771764419823567664624765214767467538172323576454280395037003221614974788211210608437327170935995345080475596155280469576173116756673394910976362303357357157747415309611141172265665772392834728041561755478879816030206877722817113218004517472160262579072357959369001771613527955422758338266230229600834082429152062715041179533776503978160233816804753016045749321356180981045092956184662730319431154317334880818899716608772972615405715011976472016688989524701501187757915377712936782748907519637075910255889161638953943932901963650825199298986991505448527930692207269451947337884133237961204266753269080862433448402740626425999008166000742235099511748942972116256084751095306052152605013091473725022245329228915975853191382148678734622284421913877457554822735154904488323885136861883111842356345699898657392717689143057040038108798371531737891979772348632903376326873189002853829498818381578677059223802441835832731155203044747212096348464647237435388106993833329244823574077728374636810727719207727844978302719316318201413038764104566052826484482530713763630686453680877458832950889971348264403676349728018175454935123465215996733617265812208607960473849670543753974547060316641468360858423322921577993772605304941928336420510174407439880539639840366819567056618927000506282230607448391457969742192840443015909709696418754593759391323491137051854586218944645384633546663949772778819740275683360260170342014868311181669098988397267534811709754627292290226143781645341716721997984206917768825403147674254891879508358300952823638138018527835263709776690125292377129272214030546076056669550001334913140690715788410033055831734819743255414730320385663831090318989259690457908140459031925547642883569007323583907964658788896860417450050125836221287067293701547829254925212007899172985022255210824469569502836449816729218885926432495993311978440122520532090818105546213965043701967806481142672978903874945231251699496063339597063599156043607773735097383187827551472860015806074559149732658032725267344354980408907663455513142663385666675953521910573654735308596866529971974280196389331722831047028229729389334320396644806358949550876603166130594677314351131107046898836694383406919705804795158382106055972101283667184306733475486699333376412925951977818259037473139931944996595900319810441270737515831183552447524382589883055187949068552560265560664377251890661582231731354429913972308590916697527412664125211322942502184027827796361855564587961507289155949878000282176872980135587056567940686045594946921061495076466237217673123182773181124021048850862776180475683173505273863029755741729944323489652527483773077291910921577706063124539781174075139563972014713484076619705842838606834688389406702239819220489749999399359574910712180346478069297968316539919268290050256645430730489954830177243108630866974276415977487096406839031857462710067266701063038642328564902902486700996138585348509145141338086451574786017098028356644845487481653643172256382297864310544718381274983498386653771385122943397694170692796699885916700715399514177793106607386926379409759617333345806536997090816251386694498492091163486078771063278468975738972366693481199900614833406440986895994001103044646256681399786821599082500718102017617944502919998613525734285646305454615484177907518308015816354132769445860785866333047231962325399010789185820050498053299071207899859762765184164209637291257060640577739389802252384631366344999308704392368568233503201550113284364635376699132252245047204742301290499252341503562783018955827067307849323236521452893965022838977098530514111935574427565765739665781889009246545354847870489337471892348036645701198514367795364564622013932783265717430291172076358210831487396293700110842045379228204972513424846586143198278925670771528226902042821367477892831578114177189982690193009775653421441672227471933298670335479464123302545118844738211623376251292999250409476331098003901399897501219129027844389049842272695519467773048687171058867416176366062637550089613276036978724033531557510700631786189870411622734351772693746912085051221620084605663605172447784353471090043298499215004689589051928814207320809825876741627590815922799123740242823284873432636000810099747684549790706614177401743672407261406562366806882566098184597106441243800823862316297566676670149370392527834534672970249193432544693562631245985983501676992281474904488403843488882494811954852014428558320945280366963146501497938808697815286845262011515882702454442403672693930130479695383086083762183491557641403788308856258408899128173424116084302373606620847142266023933681291498745231379429049739800100029190218086388206177883076265617410158350470626818695307796800635251531939073896750230263801044625345788066772665334100086398425074397248742878380267670507256953385210989256139168752687837039571963037295954740192119152798087567148217260441130055130421400584338594432463668765011471294083480971112995729017319486269171779981907873197593228450447867663760607025051164180189002468650592242144194146959756879476295181047775533910088955972629141870065684095769700436680815272856310394333017112420220680104177957242691642476606078319104307541464446139133920147833435119826623370350561882146625877870584345257395037658133354812969308142845004652213401380241217891513595021663678263502196977524003084073683225992407806818554294637191493515557647744707200251255028711670533875795266664457544715069356347674698156000734272080895386345574616825699504051504276804433086840719950175920531246466124288801408254966885419785249348022408005994271827729301195706738651998668326719799009135014623431361486383177455183108824317388546696924724558685390862573274446514338714423505333053289739662879931897927174880241771425815515608395848792000220652535111660006078508400295521698902332392678360982154755274533112295047120073851767201097827260420267874899196081309195644483769268321826518118902528719251651880185239735354061295633367090301749175448662999572721307980969415255787665294726530667742625358577946643427617511108683242640481093162858837460568509644828001819966521260961124710680163242251966834104289536838514825619877841476221607056046578179650521371109196710657971424810422154578465556155990692395692402991627093895569690917829828779085173488160662578088138378007093123930996295428474258698538067150367444256424665837782353521078844549266715237948237627941159278428814703593297286323120619071025929926118089018971273089871451922017576380241817132365260552993747617511329039395253341130383001907069938951082122841052538191939649412706431928635245325711213741950101686789024449525571190027627592150407326853545657179789736054984854722181983012881959314413352740798247867509624124416286256893539037283470414224375933323411921846406331570040129213466330759144728909852690355466364202316760320973044113609562273728002529644789129488155260471231060678252091470107963044691181718033805032843268481525132396052359807290064331673388254189121190130190524165459835038387492954329494866114685781986351482164429846487170065540407319189618532240793807476325664081701555651335726347231929348666105046211709268595030265719838352568787427088674161877196436351383400791846960188903363561931228707692970974618421960450407437736683252351230799508848412231229949031450041875051621548719776023887715961095146737334691185449323927540703433732770091768972469282947669655346338311575907589052854413147633710712052783660670292505761521666979908785805618177179582485692051165692739410987067806143137634209430110023290888464740909596475446951158192243147022985899840209223495160297768197951124606272552427875584413126850853333612126724124616090424645898693639742481224957539278642339284939984886626951703058506267074676558314023877354892238689852143742232386084100887485140244361518216464533219086647377930675101546918477985726968848458920944851311338996653723126870734973164527743942453537801982918273737997854734388249792338990216434582122182162809352334029224782962493694926839745257823424920273198246386266476683295411937838868262459238345571716145720217519580741326203323299596139256277506924211516214387805425689267414090855898914667741033807267100867660939170746924254268062884210045466542981448379051737561557333419645646938497776361318500848977760492908256000659668405601201377819566326578488156509977142396184923879626521275713368603529077303330016412300262498839042683832918182115402170852813017288982755310801727385168361004961111759783175264512386573769540506663891225558526660436730781735993904812002763782376797240217517265211901897719310103668994557835081083777992735166098649166749906500850211669103786404596414772779259727988092475342424817411703777213418112660999959989592445659817435674940109440512355168424552184135737795628182623205025793795653806125179997697912330096308429161779838137644473308807173418828132391446551985671422440827346996576275090772506387748212328150660469857862717494590491989875547576646536573109248561507199193849461874372702695645716342721875601781627381104677747800330704632447163289708386512198614882630054482877336876092016454159402721596501279577538645922986040486124204643201853009429354982733631315193829490590401005750144554682197028916356798085956326400470128136518087014458028662610210206562382901533227363321490231559983258570493000119864155744965980911644474633320415119155141874971618213747618401454830196516114650582675595357912572620454596773268030528830655778912638893973771563205339735992064621680369602057542312779628023897194286791363040239925345857470201930653822837237884801483930766930638237662667393048326536678149606785946608129736483702403066688345148266865040292248789696449220751541620313201334811285490429573699837727823848991947230922849768354442606120216551696230981138838086167234149222822487157151985600376043486783365840617632648094425146553870666533480638842620863373108667093729447685039889137237741345333647037580521083234995088595962649285495676484700345549965128346345881615973443344942192000340526658950420282936599990123764955461029421019203219025572519410351277906093886376271967562290418973806971467460493854190700973076638449418336078604576782321512792319048380456746121935900910051102221152435414148377332561588054586474462787405995869340679820477596499986591109782879803060133588048441367147092549785632588616242700110328136150920384324115100629704372852668645335710787769974196847825930237942610744469956065131928753475814386176866775858494515473655351758664919465960987079510296871997927236684115644409429697553008806697106791977386767784521982974291676751267665008404219318519227406769425404064037290980926815093365855774857378329562989312043520555992848523764350851242874811214091751486897430540774806799158532730034293150078786762787809596060369991885998406769767207711176666591493589827102664970916942774632822090975763714383731199202396599987815217911567891715187225164973239750362911014161521812628665996314102261437625707060022518002983279157058247286847929433669004172067611178290709714978374400959498288691638919585758213495692535879968706136964985597510481591051734196375801987550173524984765188468401768250020155980707015469417829917594607861593351258168122008949175728872447650612321598378830523779776055192050577073679867395806366168313182926993342404511604430018114453336458202589335515084860472801618103113947986804917478976351114471458514023114688414778723569030004244786258919418949379646409218108619933434538744826115518130296446821388738022148028474547233558066691362438124107403365307675904909175947025249594832961163210723457818274538442174339393707455588396189962619610803430892201916667505324150802616902752247466588565699139004164744882890859498149553424417655500047673591814335239366998978481693803703263268614683934478942608299407324725664935094222757377297233604048132647236631276964940239747919248219818783378575564281203690867896914116420559995180337351631826866224462772791997798978986787930085591274691458610692447671792599841814524245232143669027329739779911816076322193253387599479554341460324144462950477442498134010801171492748266385837531519923772654709853992249817234946853009183221425955231093517090756673867411543358414982886517002081419580293541590129775203428671636504966093597036161340047409729546404220199805737465603792884909626831386038466427521114989255925573766506650846557616813281330748639916916642582533736529856945395766608179687672316061423473350829361960970331389940245048939479471448912448473224669919684977066033807456855209150968353647835116364560976729282716653165223394675929812558219296197321792234872038639096503430043742915294767175496312752253394016024977869128051532347811656972181124130223915920435695945115143343376946470719412286446337028566195762203499985828980582293726961437990234274995611911733609111425427354265999679888795661836947875206904488650570047624731343761168550156781905229710936317895054058126019783239892912884881077919423825057366606540837232233242415011731748521856547797089770945932552060770464177805183408970051896352143759619486305889358542061293795971335984435125643833650373937861161898015777172569673095667531259341155523316755035917238571336750381752386708199379226284754282792778384974475979399942545955841039788660480477462219223650695144823019658040280678135841979280360128805491799902672355958782152186865995825205932699069189495346203372378690924087999457330101396391934279765371767496517030426410117498576137584008870616929573600973742420292332736276072195947431457577887593626292186746593423127043827429047437889127675143674871461691573102377055852135174091140216259455431197072193562859544916041639363091865297504180313177462631644424961585808256161573992379717017875783655168045644054413941351276457564353328033096653794186267583185373439524649503722992334371900669547629388848304597546307512764854938022314966520230324182719950433764520306445760988419919179029500551300254234924715460917297661510358581501504476008293431850472370862848340408885460301793023116288528187402118694592762702192020987280281839661501987191776170196514412850652234509171799108398996887993875507907119797813321655594042130514547014709250774770170435685368315228597561458597998648376246074592412411689687217580345938402985565249105035933495424050635205521013948128166729677916288522278113224100030533945739414739266918496701959926283221662911622958067434751946405168772747410016102819933958353769314109062957217250082937161606312381715951792535846332900922320158503639825234701668363909181203034776175927465970860631139470163925195057610913392005213586583765493490357631543115699809108569212791165166277564495251678347623213325412473762898513989775818302487852377614627383627115541912601225416033259350094325713818290723505455479789509298947332549591969312019739728187469583453281012783793715513277777352469788482993367777167248434897269128037958190137805222144762163439041553637648271890802836993592514040066899568404534004090421468476767441544731231604410299396912116925429068783740264759307705913636963243624157564553385911922577991351615077116880584607428965191902929282312385388894390032387852693329783101110134406517034385978146100403916207216318084236061105989077267047573910273337618944422494581556399353670172016936592862234829913357035374607840139490949994063376408795092952192249278595389612070534202048471923721380160390268372951443395842309680061971995608316415578577042164498447319037394666368473641725913896481352212277409190644896019326999184418405521242538315137798671271475998163030521658608124929923442759827703333417953525912379767234190984328714300602597210725930761010446119274208185655748181605286233927696588235786598689225355497769120755540517824570300342790419819794340218743967147425065490557411999996567521555117576510933446360466371391253546604417260354227109656688659382100267931652946507471794194815882550867119456160704403173222259542932309766064126947224135168988273486044747467393912763863136916303606893261414856293689953308761395407923738159576331968067774227420536695730781217621878956976217098408551416990403808320343261378852691977211364574932930988916573663099391416840277829997861294505856022766329993671191056571661873413599862148713077642349502694905456376860241119832046220971093024498615189665459633304728738671787610742482626067633884604669227642413686723136271959555753460068067431642586968211839859579489102890692799399599650422051632010071240670756261726378211852231223133752397214692011217466935811048818433294971414570562969952908243001694651181100555363292377077733668197607880195529873708876671513502950928371850767626260627466640566963680651152143836270420477796288356671757532822192257281240883063520912467488557350272142326837275428748678134860020538730431890713503830278573662330489363007128495296088295228868607184352064727671962891021048370280058182389860870079102091478752958331060189733638374833824746848705250610826971421984429866869513758876416651495449861794485925260893953350991315777520359776968488114188428553629676911945861170750168103363431608534655027221744404766140432996906424127232333216258443661463206022380166961284136591145353089604306910098295336928653184580484202820122257917678949964577716973670872892329835665388104690968148659510040954438445266040380525883927744278781761169030347414939901178643882386233638163613211880029782844858713278339016752941775920135371750692606514937674334640630239911665288271685739528431232347050347148538523414086008126539045524724269511920750252148845998682275036432966583494400107357753208591774621398627334259016301763928831341822137119108498483977996409130212134752377821860213093822267787774990062292624227166735653903140875037888918627810435891508405379539328448807618891930690644652553754946485231620442067613584589040472514737280297509198731226426854342684308818607606219917036337338422071585988557656116941388927054732498632913260378233231542430558212740732518006427981725182500866661114494459798527353667704570378262873198490083279583260235866704712276602884962146753838248445280552930496724917580283642318848328689327651221667878768940466867182224789242959725407971716221980210907430435255204564610558769284549224986844770387664671402600806311750612865540448454432933483674487111646952526545312717549359947064107434797534172638735142291359583646927302331068640796354779134591170662583996793191928205821221409957025275519811606071163961417805626200898413210211190720084900009048935207845058064736271052323294387470059471594661946345754234642561926577135803894184217575306627346120635419152447766903306103569966411699455619066686351235874306843308719051044724565964004270103241113958692033841573503138861774284312246465552404957121658768722983425705429822709507974959963067627529251581614878073049155589149882914954792928708739088485943168472299132128384679819575369549975366530444789975710686144708167434120891014724161945123509097441310533555830276383965048559047500761248105024605985246808372303737324398275238273495733390989289737035481247357734578991733544607514634591467805150544814163066760371746317187219821289091377606195342604086306707599576647397189369472350771047998994855491216546177055013371528480678097749655231977623728224700517477508200091786990613543631865469007946337552933141491986797010194693648275156764176789445154103625690849818705299778609590391538116718750758934111233343577204672011939141529418766493754917228485916879412274677383579725006367906916982125389624047839550403786915349275067179852937357192503174829036427206479670597480477705669383424701798951993211958874001389054654171306410250701402121567162987220123263826445113499378713809915486607966694290785244677568111138540704914174797691610231976644454693378575738088575510393866233469839112836691293504555742638180003856291668875461767688451277169806184748185076726869307536458725008952482902973219508568583597260153887892778609592296405713806975040770851076382415399684586929213179178553846781582841984948678525132230588424437293889063063603513606808270860490544301328486869089793964835369400644444796905106159970739503351599717658877306800959275597098133838983478346879578285217950180266983197808763917786105101747989445106923487508431550350454313432150274351055891394770060330758187228986469569052619793976994926618732430978703228997329415549131753841961846595447751150825963776262309934637845424320824172352429234008928885134508387621696982660176420679704657425354650999498800807222215181311066595344302832988010282850764419899077581226969385660580143061337084009236243176455639557865590869493654820798077676349382942759931356103676597740340784414319308130964183632248714387903867959277850269136330107848137369979235152579016323924300546610633412346350155466042865853454703036384064951724501555697845293103026329971222281984743120801369547528773733632142726932596321193828848885628448279963131896982385344616499022070992340217184342560977894753520911519307005587024818002015321009441114615929884120544016472832430582192230646894935883452963628422393233228281643293535276963867458842876433920987060649365349699724398201085894569871748294064132762060958280656222133119644758075811041948367798731149150722652465019345139233363580764927459906889271547525476957117950083229728453970425681182157678079313352292805584115506895277620888643035734408502140897868752582184459785007988654577786116311210800390035366616120267695555365092440657208756163078425802243739087552622839831149456396538356687156011149486343280445498016969921972882431830650030708146897197794420973515087510809649330484771440523244256708058547354601791366987336667629804821983812642237180743877157311623236294633668156145201891490550068027062423343892293583338601163061535531820342423790941745368113258380113972342024737036166779861355424860255057222870589440601226823356302264440129498094563317574126089857204227373685737230470110620705672324379053787413211879384025569005341877546711655556817123413470388192831399384942999619070890433304527489784148999547021019259893418158585511833247595105123197146935962673312723033376753541145857860117952683996125436194189221780987929739365906695770266027210470258185039180352606981513538917029499778223646626578276582492540363277558374680705599335061647507907125009982314737337621016193058607824612690624010936692323736692421834729434693757810562113198795470544095470975474425312723085383088231577217307379380773748290492392392203062677444719239482466954987795110441571548430956701172883997528149891796946441688057758495644199965601760877751578966077426645702025544834846765291535724434135857299981302517830464636108120225315063047292170876864741320810631410299601088128537953638056254480246844246873010320891844914094019030337401621292174362828956184489970694951644504765534732782464881460691222392089582854475566258305995456691629785204456847665712090783096948059411332739461549244100436321780801123902739308722994250179755069636953086330799143960771782837722245848930635388808022919542261257451263685317761692347452621303252463605278699193229465151703190675460287294011755202940915462252782742635810634370952450137159504324198672820898984850104327754347095841218425592631509750650288078940818038209708319517645901661777484256471538644083609334470326915658883497369380967035063603611357249948113828183932227409699506972319920226313745276405414379534476313252358530069078333903346793048295777417019937693703597998462338792015353612437194809750944700255361454276869810442559536612708902164724888053282965949506477737970055826460921782310320430992365860037597441919829183730368279202666166161871361640060489257668903357448618674681497653592579680933840269828736749635273021383911841254482413038949976138753051396519146824323989808771062842298874059982437711884686396479010676366364120189082743487258727149048525814051876039601320470929307126539398517407092253315348430622301616201240860101770394001453696696189471152665573241171228301106024853697681907318072001899226848018803358712336440625242677465111892925010982997935744286535970132870539492443993139418140925737887806161726338743007939185777680601904544613520483016038115765789203290636138012015058652331528766897639449041814216352576791130245343666652082289480916788438184016875753137309027273571953741904185355434321905126037219032421256775714327114453228994674696474994735583183734565289678339825716556107748680979899218854874283213916991883222100851459755846661772681403207524385217850522314059261182647328644027712660506672391107486162490155552221931995226402842611017708967683141200438545042407198798044509941861766138785274332471087689338476604387761401497028634305687729913459193393202742111677637539256567214371514805663125923471973427703645405140366911133623155634909792286985457566610457461673224239951623508081019524843074872862540966603186104779133286221576661985671972508546809842680735477868527841208175666087661100305992921947327084098889910533075845473489104272240542056428816941585808081084931180277562462141125831417825929188020584008980886745399508030566761294162367411233944723017962705657779786341307979193883937659531682518267766910005132287709719970103450894165744954472522765400507217269980376916577465218413052646928585645624953336430486318455126211592494555939779834533127832954413436649097639944753787669985864841436012023344845374897182918947495802892181907035014441456378223109973938272151708945998987706955008368028740088681637863219175930493635288011797344989659672064453726822242252223217035208603740441014784572170742847129666405541271080198639767439207715994001907642804238579225820108742632364605091968300725469106483261203242200658371642487012452920246840419823355197067750582145368382722646670710877363881615109032020407566570980548707015387689576709748770727014798157885241987828073210001494713100639727750674581079384410685792158053073963277726034733892794613436165660889190792391352125164805289085752632616878044451303354458886382659101401979312454503124259407545626196783607956021643116960107838988607389512603960213367856328694868472669421625199086947432924548422885550696203824484090465383981161318268671784877504928990459075222961493010129367609315346957802601436098184310967594599464627519039492598474809032729182709598186466134442496437028596608233813175232661901566049137469415460035754990957038788621402303714313562495267179789924939512669705095229177776532038559581283750666662751945873086372150708840438375072935850635393172562899884619014151891960120568692624247497563437051380484489108861679439743263906149228731037402914971536338762135074748915901027421825588463540217217559445427166099413259120760129969123893617396562988422073991602208673330307455204072183888879349418898232942751076741576310359723745593173900120028746151141189861966535354544328151225757276871772423589179108673238279218802449289236648868811912600015824145786544582073162836486310186286099699782201141215099668325204732388874667161504515223229652054259544444815711581977830286474199124497399432384245040605098710054164716554351868294872335330922586328087724568490666949639400028353559581990236523423472820287112787807695866360770574992099436398530974385596824370398525428136106305838958953350338932726149317382144317902565302231654552590420105582859759944666714326512558590140476834074082070659312139122665383892507201273558933147698153495662137506007631862342509281801129043518153520570294597903152102857011365675922434997617388647143927228062068881174905266713708611508069820492299126131023910620060802504617870284241880241444390867024454532397636791817140627603542404452415026506368392929536886169841909336075898656639809502186873904675521320190096464260599060147108863604511671307458580869362053608635396958231224426926852928923080723978724735998531671613270336659161294138361400611277972559554979277612184578755899684126327934677634563860008775474920443958058264366237344643340405631389506816532480188564437900492779060818645040244702563074173753080877862715856797293320480006613295854743448554807164593596323440776317269439066287008137141913674877054747380603855157820486366864142076395034411649856774107104588345272226608074715831847030753763402087302970549108542978209139345553532490837034091104050556643504992411783007337793431521070988696405733307010487722202927918624792309991911329193440882764276462619832156817288820671179323674672810765225907027698430665811769803953227218692778971655012071283412610959953717499395050290535260448269690652671345337278028130515116341847285602653772011434277085825315249163943400170866648046468175470278614792069484667728668457370907887664847375319446327338644259071181761320863251610333027975857115723112661136953136302695332033484773788697156653684679969984127872991226817831623740746314148281385324074335618496122307442593601815289736997279532826074981293275809231400314051657339025770766881259270100627921852100404903916092098783840204316181094362002544558864593533202909999000283993066460642374713972890703639999852148509627256309063344941862682380369742720222634210199503589358999803492264974091011207686942856092695719139491844678509447180077045969895654910587781181320997815322133832861773511749779420132143433264360416999242109637156169097573679193554087049583610869921049066775831663851298548014914064303342559016042536967770018932156783530807415818585138602721391606967923452872926318613795591366738572727626976503893453666127582150368712249383000725169502496007792027245082519534454833626813670325503116639273939252806757087828183022080905633233718922180435247065270983518157698863774176243186338462037382522974114800444954595752141903115441502122494619187846418084053615942049850641979540567950380911487088640366831428499666854967210836858611053546301703054944882370457232359334911913630178315442681642608605001348794493717879964774954950416850091418098277916140049911109180638740970749974483594361994309382127870468127041103495550895297152841075776589659626046416181104282523488566552933313067567779855160657772239600885361650222831387279173181893671019980566231586546926194551958202101237814389602368611442671477318492687438089660055412807062904286385131689026196060709862778639382050334258064160707867101788823384506280641933873408461399186954481390314736267204511521754350351262615713540305333691350245416721261327998371125096859350369517247353936947360933775938988840524754453431950617901208744300010594399294945427828446939880216545315254033086095852367041329637614625110323674135094714504491334482534285950252450026260334076198693581449849616387260629214287130634489630386737969371203641089287053025520266813175705055273015136545032474773308269436497068585638968839963518649893455876532498653488123557411589110306358570886472647701382842610621277432278545043584443824147834945689358798611377712600172390640096355983821515893665033668180662201700239055917007072951718824628685102662586644551231973015215143004581993416207539037842652905434251159759743876266179138139572975732182558698777097062462154323283394992829722798283444326084172817025361875872987924534574867752641854050535846707957455164237760731500084937534187489823539447990597578931458336556620827225123265497737288063644677313250267962877600100116577092807202042199748928729147940834808164519737128907839818010699853485898601043659248916471268245501750462038095217294085595083544287511660002477817272343983588725975702667473638796440110011544467039759420836505401014251651734628612813264962495192696335544451471524335572510199920734889815815429606274155816289366481602066738326628776163779687437742911700627035749700185156505126789085664127177631963078214152418054918430460864273777222757853270341616902802678227129344002450578749918055141495419788121724385074581712276326267989109231881211780726063321183661932441018357556358311011083628429777056865668153710985013600778350978218289896539184267932842589883021386887204917163174271824998754943528759983346925941535947290323718450204849902474141215635033726913020184535918274104640473793979190251494401104252879542438750194201725382106849985829191697229634152888236431333333421864344811040772416569307615312348146165363496030276365809766288319248455859632424954053427618398177357513688228934681170389746775203875451604697790932257796163855189319518635580227539727453627038845956608305965101069098522255961057711532737828593422123429991468444803795271104390790378343127641090035910923557178778494820022493950906996581953731575202278387091952081587793476800681148988906689913737898713009964142135743808423336471084704902898945239666728114488701249264164530340679349947444252130297226107705653955740423515535137972758637854041359997648574613724566936767420947622236056986716600876876753910790001215519550458549014174510994431600007691008363299632985115009741160244155847523551952152397224803556749941169252652780919101547691554219829134908795529378301301931064119606272231395842916355731856744999617167825911278663882486706444520051090637456955898408086674382395670150169530856666440265695151432727958505388662964443533594903797734576907438190988978047506867598327482946090552759152380396324595152674588218165748199210757863881060189266526197118526865504433745916108623964790582843468436766400585121484459358122183986982645804832461211507567393197655239076515229074587815029887760423129904024731876719025457635839348780605492818329586364274682598197256483236234110025276716862617218520850013235772928223841526994883891259146831067590634595747561233468802476438269692530908276707654062898443776483245188785704774113925627996653957348272730599467586370803317546905227721947923606483370541895999962622516890683188601750206157999910486773115355357463175034226868744624830611969187448093566583969334138852289664806628468071999273449594241482963718265936964299151683213215860887004582408593898808038084982046759243296519453762960864004079531802453444432707954673490635370737595068878828728007670355371549451323237121088953918678281228834915029004252016473714245087606685346249130771150849735547843627484886872653912892229990736506466701761357360425562560089562444181814241153101755181559551123360840030859038875326891462166229958679481883402071372180849038588604176717799714997657285260271057210442371659954102037077824976763198503407053660912740577857032762088802077851002638037852319579298723315921084830227064529519638325339459015128825121443028104296200953474127359227284077722240309523776831215404545406822209735527475509580776923704694946342990912057739543630871813643887891051475220237216593928767748718274135136914132519015363802030882227379042524765065499833087343343291759293835538564993863910083264776463526824416343451793207796223869706013853902377828647766192062780271313969509024196722200209879797664697433882888748887785204685591965896514634671303494158936844009546128375987741925104815293424465048969274015581256894988785502415445166866301580066810535569692975881292906205920693538343560294384993763970787704090997846970233094641586457885283718906569365250767135351955604201988120039889064087872046464009534873671490189148254136093845380149258456057650887977556624759467365343492308788537645490498509396331966338173782611757834861702115887957828513836899999476139392363654831103561008761427234312358794619480767096623710711331230604235736064676870196552814623715882541726121078316017335213759417957196698695424905660819854760407922554624931561019775955159676589783496210962062962066316006457032100988996379560056351018583805983934590726172463724019350933720890972054835142943143089673164626805782596743048690789313850748897947806289521072339535301704436727635209050568966001666257509350484416721903623191210477960783300150331504392742060810491679664043489395850172862814203852689943465321192393755973373268220255849815945054285023588486337408141674847617196526229670393714630180684615090163887415873899884264970041231025638474898121589904278393391988171266736191159252223201249661512214188197369840011195781032870908092864050865343112127192925857636585206557871164450630417502728859331134817190651333153901696684112398414323288247235822171953038749524584993662739441905828624432509229431927794970697083881871865927916434464765437250364199966754166728676836851804914442648862702811826594293661208369293910101011070513276988101882351651415402673132966976994910628229982234911930260457615250022676406090282421397944290073699013799297632638190410163134184634318891853015960594338409807950486477385763736310342600318613193965514747556394252070584633597634811540565583474039304297846041858746293025126865140935632095654882583212665584204612826592724694916293140971558112049456107863130208653622735813999752141513742193991121173194263444158192313255174738243031392561916567570554280261497582512471403142096236001261957795630331989140108172904257684320954378422188812941883442824784353152651835284494465011371640687537159231459909004716085180540893349607127479172006325895090279145941509347951564222698996258374342401275794602520897317542200775665426553349849399087440892832480393038526958798342674583532469055139521275702910236756846160650467406425927503952777160684121639309360117221517221657757178852063313114336542849445172551327890131658716295086738279052224330173031297878091815509654046924994594621348284990398979515654170556398176711884119928787629856618695151880503995661839031487409191376083591114794280470291306380894814970552046916868539424577804975734664621191422656646422261122036899064433695777655762997333224396292974657685898457808824554795139978997575606212435970954399313588275577982056554532567482925431695164077503845745136853570315196579443350200156248055587047768705713816499571007568725382652273055525473953079983007689016934779543258668450861570767669011523353399273143049031173767075947563599945866248218863446419803468181323426698082255286442889314405343891286415274359593612022260215866254644392642374135606174222266382663769301219521964570432226822029643145753290719580577222287035903177681277719552071701399232890868405538903892339255221089097757541898031239310906390339226895295344415369613055847591906345507842954321860155967375244982061003033553649818461528974716396958637466892225637371758302517989556375102514139530302335118407317396290333285504176202884292898216210080495837285236783000874018815865334846518822593895075914185214328223967989508547183910686234932560642324169737028642057974340240157933699051797372908863924938286640064247232798086270007465222379355697806116546177558313655040339552628648133485511062431619041898017852963647477595169773043073437064694997043595465364695210246275766437232434004880293760169598459316102127951394175683108114396408136620574420911113907629751967997005091952090851496092842679903247007353558866957012737498968127969581604697212003794991204420444116409985196788188745962602936923080212599854345258442995467639191729182062690730070471680053450418161883716843520127555196616150023369031225815241340411828650575876531617527164693333915007108597227903370559852424625878388118542982247233233323103193461561559198057863624172971331239470583444570884942371559473776873018345836995474161838589931741808431470892758928918083958807516941169102562498753825455265771249897489792997615149962811378302581934439479532870068912553335749930560337945015277100877902309520232842620242019390594270510225292530866905844971421135489813693064560598536813184667093584258537109490504086881264312930620746548031605127664656890125535911215336568167029273667003611790608388052436457037075800577580502155301700883146364857742190966667003765185461794180710980460686128688699167034271240607612834397579222210653034497452478195335014104991035510768749302353613156776897357404166034085410226555179996760631057337748659889785190720561312874445652148470527024201979003737808042919034013208275215473759587062597322521592284344365060403414191171604225029232106494027831290087039873449955937395633204592560147446022640496700010596199648204924316917840893680753236203745574102198056743658745990030138500978154773091537116392402701635015633936012648653676002898034022514735743102448520664798620539154139906462265347634368201054583566562904403267473697852805706055942367510563413838847492833051726962664128126045633648120966118340464101727117576038869968983500998971660267844561256436173098753487501329707746347605883248171967016957866792483735486569967780790263671506959589709561672186231846744022753561501772980251967451085165238040090454417235420327347364973090605147579600496839302516850775663140763056536101601150696763496354072019462979361764059541296096917677642480280417446029877828866828592302030619157621183359813407775918163122218899020093647401838846652274152648617668816748013766030634687713589170034043933469571999890429421458350721957843871179030913109904408520847670126430825453645452730393944050788982850231564809649643816545415648104216918800401678915338839788325837311433958385560712460661150432055200056009766540134967327448775536156238268248039675849075182936959223199642169348380038638074688880118811134966271627997515250909925229762948358136116863604577863906379534505847835795488869372677201154805329987720283249284435242022106496508655896075957396684053431373875481587904734570564360726224076767962081581046341236226824907537557227627238119875433820409559407365466605752477013493634398303888117158583651764485660343628566157785489805607927096684492589611852806460018304585140087978661476395733067860280466209187407308520776008954509338135475391343342882440956001284006985616211250410388335960203485083982216929885448728038747013336961813808083108765878814965618484188884554265887403295972327940065206936303400631560146762293711014530614671353203459671998231795860437916217689196743622415383928239339571138680796431000117068237543036996143182722519844788507564881161120745542015903416579646010865753606009750595986989114170882079560666916578268702705098890662618073580634380432806844460974406169200553706799830102710075078640486294661425829403687817604354022101077837133199934169678635197724719020297408909678141287568647703349497744266883609506097049051567412853670222498442829728600653831156863842460723886832631310630171877076330033401186551589927515169306405564461495589599006753546008190349743444996976151449385237501380297932639187182480623766676608009961835820498601189586100839714569810069709171717715525301009593630311442828583455921668919653978595433085529452044229589200463639250096903208857341917446708405544970538056895620882437052023102426029013480217384031611499741293037776080754129942277753449865862400908703953318556056104368888678825989539847600775354398034091628138848964616317973692992721529888547195666544922071298906809793972290518634005411410290735629530983867355096869283872581061480858267326445963910773655833402157224524005802062664672265335420813284396772841417242499250228049350517125891741508636976298420126525490977763687367694269913497724659343103488478019348728627600502596670969893639164087801595964697259709374091324430194946086364618890593382263632731742926187939821510458896752915928664373695664406582221522823473917048795715500715297092760850320329338741703498360479258689739338158817055878339950067221216419902078640313227176583294049007268468817467074038376835452911162354012280091263438087509186009392502782932663803451376930790201247232056757060024407249229059956524527971386311085591171659043819855662541378184051038790286453629844427232637475736942567863814896658826514889568581922765682304080534410655930686218759182170309179240905316687099885825409955038350194618397811716149759628523369938683733814715756747158449832503242635080426911338797715203303677230014870717281261031780218652744702593402489170793777573865025167520278866490717647023080690255531088860073859952225189097536356860999559022394534912990366472070697414438566136656379735857772794491298025982030483465396068206296573470408275015722683746674731472760452970221695603449280774548618723750754576154284488271470801132783103105246672197977157030556460605658320716330747850495893280190944633573444207299278705567975149402057469010096076642036288480621707403170084516044035865964138462212891306296982935479744967171665454474451407573137217537276709698409956138334321774821733509873898278405669526902221889382375762950423011054805974490913026041320150646815236976277357883827552804119435070892305047064267929514280517620083979174522938410961690293468901897725153083754431359843419158207270982777446245887234503694968411116370990514137356333914537487555320549659882855648836285239702120122379393238151540242074377903602366546282478559314098279717253603984328689340698811291073528870318103755795270075515353290704498843615684259965117298654095152394650046432292362385184252605941687040885645112987450685560828835413057884200398272821841716766827377240600253955659424604573967840956970131814339294086755697330376615610743413635835651955444684453625594814166147158701055397039653823523899752661880421139483842517631747268307288709110818954502899886173828828492278521870455539504166420438599064242344806822823351112658551912107213091968314135274261365417602897621488285421874395936691557506308223664202292630288173968712079556063678334387757311466016687794657428667366554880802152402605120415437789799092395906508744441010545265514480126885035419619899141009597470818838562740991740674051646079256643735056877743222015996045476136318563587425888528211007612604299058147231025693973039806539078996239023185445326010147580882866914353556744020786163281426377934312941507847156405839948610658895458204476863906699607465439028318119923575973226333163207746376276826919076828761389744176430990458990082068083189478511445218110399671664379308540139204241023433603602147263747987028340236518092706388846433128011400539941170042251605140839801298741059817376220785751129731227143802309684021065893564408835008647303815584400362199255425335494550212458762882568042486308183092600022669858460128616884904829743419873183557548839639910840700470620025478083418173893650506159140505095026659601862923658507753079591216389005085018916465525272348551670310818037650929972059832310399446674049148442143015126034854735295050214032706115233741383688361730567688266066656239778938530403778938633120545888002827804810189143497902786381492754163703520477060263024716268526361860985988918198024683129192902041144090935789442698435081331029347456673272078020790368191901488962753845513195505717801640669988135757331756140825575257288751548672189791729276259341632152944374156662632380714076003647102254480558976555344336931720741072768137122417861676415481047729148314139580449852675275351814082195385719434608902029671655226041143814581762599428011100293394108579708817064670434853860593160875058784173375452436354871636927295980913686712031160747207835862001464691575825060443722766034340310966935496783904106140628808185267356083461015294512886065561667269237697068306139986324448147400450050810916554858637737034572044305174788129734569046929563655226680983869942164739648808241948600185353187649949774634973300566856087821368778180617189100048945033095775181262606379545047192498773110529877527877825761402740035900266254211300909738213584414483585403647179460536006214218730523053521462186533556194067955054601854960891755464010182619847677470834149332617921916163361490151583884189045183901924210283664456432363084146727387411849324124587770204271351769812699108573041476473928662540507609974031240479800454537767344982280500911634438759931314391405475681207210775561340141977867064450942550618393572619213234833173674065633565220183122078294996734904733962634123462972148133611188627356783868679920344206669504791373681556197919087431192605885574877976482750418550053011713178445206261142478597893978342363377216942868987461690293726723283434114970914006595008581055758157400463322441672271328890897145960776881652302890753944079338914909992815384060741703883299065663214784605699456407895320751623633631610984613185488272670364986071313503554633891453101288911894263332181487125921631973249650470884865678249269763982165241793823070047257816967025393666042211901863104534816339599043303214992641510462203027018340743963725469247406104390423142753353163115809821793366599992526666843700269153837999614010203619358178516759926794160205165670303583315045420864752399388981720812904297743093332368622773001361513169174643488840307976327290173302317121211653983943135826178063540932314396154432555171797494543255530513736607009299106677763405156663402915627684640109355427158640462338806580186098578789692498877391718663470166777129552154337872451523905105396186796126002208822390597891757961148501621285053226919518800835065941308300955661506071356155564559148067606946896672153643748739717287460613062041594843841023095021978263117480475421469528345526047743056505553912453756261812177732605097095195449800857773740582275705493620510031808877855572980844806600202420589553582193149819214857816821562453400271681106324268570689665693725202492736550864002494587129452432259393138907050103335883421111516452504924649694844053516660233237902288591971938763784020900427739126277432125077615535107391087345123475516664024106528944877753379632515216895115521220036405696951284934488301935360815252265312404182777818600100495351751851503231510068118477669719998156675932864809706928821454954571233418888405064189950886845903902930587947112906235784634565259661164206360762022282354930546336849313660390016797432242850306660471793822509940667969945734939912944784929664789932208009380916668453925771289413301562216847372674584606540039311478991780772725641542496921635381475232753275699061988847207007643766337865345335615438011621690618720979427473644970753206940222785656223434712479901223453667797696220704390969879509211951429790319687748489859618686880768871024557512023172098619182754729504918694878634323739192756063142109731942098547391905768677475442644807898720261633218617183169525666619872454939114583391619656567964225705532069464880525816385751959681262057689604346354094364918460650314077243700002132490841351102013870933159323378168174601186036839924241700913931350747595657841679815292747615136361103796925672072552392476816836177980685447908159890489297592797292511696693572670411072977506908092142075871909349123372642986831530677786021730456574356758904253786381553048009136196822160985641114109980176045763613411799453012502706634609590363939194664381657047954337557813770112438109794937077254668763470045154715406257753792197991616549877817857120859204261078684187317278766530910048601579433028162300120966065757074238859861755632047504652804871446431239716292638681725533802072432415166349995713548879704410390961231879967142674573201456211834411039179714421004246352889273338416455763123736477780797044626312682507840472597810435548200277369204774383236816950140303108716943818948903327558077810942634604752234852399017545992048105309991834091886287496046799461664144003402613873940924053623230209412513005261754504759332314920276734871259591995994956893491713323148716541339662244128424543824574566708251664910536214512662536187107140429301220864363744296700410296093553942617875360312656853995638344480542698588586444181964773480515161471479878374423941319137097376255588658160200934156622769635863608050625921723409508783631972114745355264117628408364534509470168182974901585411977029807492635563518493407488982525396168436437352962371202147302336474116036936699027756843130052504894772909701622012171978556604332030954856115634965671740963867467639958933335130697755638344269200619462744794912831051109900940599336820008349980626055367491942275240856212976196236110784081271262433364990658478642001245995738666319033395456867570486332304229732185036007362584001980027921236376161088599371064416333045498448102058101698955280659189456623369936929213792405407222231728760981981849961642270072232999148307868874523101509006156833675785829508631326669040007731866927239593859936545898835864066663418224200309498200948852838772880981361665291343905743267347728015314751453880389967211575500711856605882986844811019384245339328205260894217849603003745059649297989270339255313407708746041716724074994526534095610232058934659002003493581546101349481095186836619407288834110934035624885058920453513488148783090070428813118119991826251290525560834298857337346583351280201472169892590992110407070128594684838678339393190882704391284709959811857443647388487803390566173236434070559849677733934333659134437531178425067091367400054148142726861702169753584805417170575051089012066787951528884254526065257134904025982086577211129992605574204726918035602320310032319271157354718334130019062476175019200112017364711294515856616217837287642350248110505903044826520722917412596531156812820295082657683121408325608980171256615686910559049926474823985273830815317788651463688838579965130460749220035400961939907130626120658829042630308896082288901651052218866891325524664603175324386212628829513638963441881098968374510689765272514508692109679367611505380617240203727731765867070201621692052230303515387592823475372521293779898848305867382602403403879431610809321041941501717640541200892045383676026088569388281279666449610484281461034954225852883024370483707527896054990980545237534627216610326922045430422391287565843654409845777794699671352306120643743525576417434880658524396818655986107091857375209961434667646480615160224850235503862292379853104522482409425698572070038544844179340899196803686569601100267302275367416004523752124778021890822913151018694425601603235093110838280158884998929630758219989573483526272761469301620421777777495488077184515246325205354382375587671910319915155482263579590291315088116711235553530095259562518097930904612374544172346490236032548162409159442707284495927531799330156513377483315162066834690850470466103828141615667217769920731218963746023049428816865707013952926186369366982283998058159201572840962109586237968004621392151703413674834687282315839213477833965388427436331721491453338875781440437026061902364115553444933279451228659133632007240667300094942609844724886366812090226713479314973752248809236344909631582436558923411717585331255939946414786952623608886064811407017936738788393236658868371245224283725346370941927675125521881926466340475223500615014702731252191439622681328058115893523214363478381879963317570972481625488969130319768874981569474920439441280944645528965008058706740098910936981804510588916986858853593052278992774015983424996249055108748033173836857586378130876534879921320682338437010308466919456715584254136149188024607315268027460750708285804730880689845074685734498162311471425653432570124772481586948604769413079966366829035974781931115455734205302464486037654676169491886989490234890417524937210046817356302268427284566249129349476337973906062400091565185143640798507023702588532085167556308806908532291414308341455706325849778239981904123644075231891943254464945378272264771049551038817590868940420593025730888498459396629595486391763536706003471055083495163962789548390973105684087448461057131288897240492591989773870046821999347346092774209691604371920583099036467818404495750532938216454844517633576414459272906342545071434806700214212068201358050684405057163214789329864820897625649337928104512989414574477978542870413827730566580410822946134785454908127072119848928206139793554768799113553692712932178319350138879417129826516315918572671968176992351749841746290345802105572188635786239771106683201906094125140142682611635299557567805946049733396271847783825677560395381401515993983770943826165762125710901554283420483325835113539983578144404016512491718126753029416607422920413839044031398390030096341604897906206747670194648639476955558448728040900234012753660165644930779964184068603150424288360639265040185450326888706177294403499980542712151639510536047879465313109078066717995956854387673403887623521607561735217309424019899866303301228742739809644610672335236423052144340661392719732781526316528712570554558214229853693386237091162828705527274576279752208477182293614822647216371600652090248206275178238852248244467831871070600402980346775084473040531663733800668534669657349875752380385842677261876354839797815936790042162374205132694714969045655227111799661485255977310875554439411460277428143306418066921528180954715476330746936309617518956653522838834788174871043608069712190639365033644988130370241064234215870590191058748960946639340467425892086956679360377899013787665504350488354937806504937736715824292453215087868521705815310642770316100249394486385556288012350708081513326564015287334645050388063187858130898583348291337736304565967298331306352500006698087490097722163604488832228037230732564593725440160097130956921353764109476981592291161475788196227911137612465731926764237984983812168243009098267870805322825320621095322178716244860676844216882374197185175843628796636234636539585498681022072970074982174941748232840605234781337653499532007350636467132771055405783986129402409958160500377686840304550831851497377977419488453814046843793114172919752807916789292093356536296802780665756199999791419430226328945992914172617399185715511383726523261491562931864700570254108747007753259380390356015432798592447074323913116873901394713491677282859167755078781611016445815176858655316650073160657309924035316736471780988522161894667336085990424070084611634942207903106105478622332211634636232677806283412124618699953101768278864587847211299114130014917972233982541781666108084672210833722437898869615440366508066657544974006710953533396816852662252666459577475898598189415751982692624222904614879145191727755775645804083558209443551241750656875517100046375835758877162694262428554644556747975764744489802957395085407279403033850115345774497413474851915695257620277517662332081233109000865740468388469334868730200591238635497970615573885861621167910763777672997004655305096532361906475103825165089741896258457557047876106488487660645785827544215261991775153192793216112693426433873152818969943972362818795887467048670308559130831066348235355032581512958267740581526459351394381456525080948764250683525232784756522482275912578421082109529816708100739219766655495894294066766249719719274809264039547602256879227962135094738352934802676019579889858666561657341557276081016908792834338171650233363851959753000528006358025075646254209601005328639126357558913245042998369228589678096412921501538255331474141857754508891918149989189891333098636589207493713338173138179057592847282104949231533245014468434050624993895140777805714065290258384496439927742325767716372108929400686099703464002852796158506124411611669892637857479533798097779427108413609589681002876140735830987382703262816744660928796739404822541058737371280085571492519683514599040218004676521610326916314650675704233738466078705797069040551979770305053734729127703433848485543849426505786475657277242739976915879531123372736904829716198326959221534679382999468709804216114587905261583820996709750791367843518718662912723809662636617174521535313047170074035925942389691976763177846343557711467617599168007657784292689173213290535698561303498079020910060824030141697472302949165600921666788163258902266486570824335257300064352952340367716288623005974941048967846980129110857496330295152057285022258208454367361874994244444539916086543351915654493103521682241260337471506859703887430590010663694956353925464809804993438290520108490373234237826988668447672917041528521158508274426255819335993195835280332151885175687017727890477986914542384625074788727523681424619221968359752096568467390820795285985630956370698730667095020520286941453003335565651054025173625533376668612480537466838865699307708125995777559591335390610977679064413375724455303139778726678617714667763631171610168925136590271502866219421114699199253879385677845550828002929092856191490119179752048625380875277679839213627512501258403629150948531883590563896999982890860611794507190783408752341226187468013253462702410812927814626102736218121508269379537724129393364388654013687436440906441408186972279322639032522240222800832498250395142786756340668633185069305400226542824863963943402110051864295792649746559247921108745705809180062048725535212324951674455461213471987098262727622305673055938047341074170408307461944918012845526449704390392571683408891239744783463378696993545299427606802042047275753774370830908569224866926680909132361496452564373577441801726513147234185434602376798972606988506492216615493525952162995517851905597223841723312011555775680087206403286137622904517977201942867443374553395799767393550772879869160723162142450770005352946907024575976027123983683364232460785933590888876733868519212931859014112801753192416286908699489251907476449709929882700526361842725292378756549819625519185589117948271859673058950165001634269941186349999915771957600101135706646195610235965314537316775068598368120509682837113683243177205015375984901035455885313749500741731659784606030816493724289268692415388292227845360767392280181171740980066285375921998028563067832993121998055596274452095400652513770852202190823054006179117115179466469752182108176304721504765935563550554214186056604604964949067402956448216050213947828859753920801479480828872678761661206785316359149458657295619471638640596806179670612098088219984994407518628741560400398377228986777700374819154585019938744097857012831630203466108477848754001793013041804922971217334495842025200901673309450208065034709586825266242269323536498073318130165048782318953595595350826856945777074647291839433436883097080477523197337072057689362881046353670755895526348600853120528204989621927660161591365341679107337887691500514534986566900172657647309746980559190911955220220312861225918261713622359076114451983928089632369510410915296648031873684788271065461133432574823020677953618963726790436553931491986509901236228307339669272081284029855362875599204772314235613661737522863918676355065290525043389134095985158226963181624117251055542852407806761295760992568951399401042239101276545917842855745321198481704914508658901766066832649203331684741021018704723138830256987236963116587900102912873084156016144674601650251669282244267725981582932650640143076752121791897578578582691618339036760155660202099346938047295146338542648289866455040551413201696770553019674170282938754846578277280268278576597736848627348046637214869700303462324823632484317210871336987770949017608271510988482389330896285866993608921338561949840327529523619665685604073103140102998982110857868029773862259078418338009375598200216584803979513668849378732408772127497685193077897777085169348518887748832503468757575838813544467408436616347597994029275442658628986105919590728364450686880710295109165313803188224826464240544514095438227236881177683034003458784571509420366708149837725861200573736922533595754394238441298719517683017075087496892352295998161303239610940704635574495296798202629782436025799623173565261138735780956817296374714326926721235554973308571302468874931983963334699776541101294707170826448384530239917281244021211945979872486746601524390086894322739124230475166231996552151352164650975652053283239187704126682230123794255315271904445791196203456367807778220064070447029793689298398044654099501928022908137330147785331908863561844845898318591534045677333598500202639255030417990519050988039922688255912173700505918658170170544440973029807858738354598400394223747748494927681214031457150687379362363418528759273126836708590455564820069771689790376400037167699730100781045786115369183718517585213458602954936362965447088099801841189621467375793653099044491758726324612088555915398202503981843291570177957666140475376674275476401049427038986901939597518348258917179316496465248696354661638857879408248614418468810285823574149617499855475183343646127746834360303660360108440614687949321117654390465273984542572097723624391414597194843319536481959841985387234798353968183925162050173698916965087428615367565198697376735255310399565231913410558025175986573768490667404300250849696088474423401726814067151057589577326884963443815586700705562872076544180112512427461357255871630481688483370433184394520766705827584235835187187688185335868119744570713757790089762578557245915746277045240267974492182270205957037610323339788971943678323353512462075816692339135853818260621703050762062529055929293553634924629606924270174996487260530133658624526397977560909605126731603923803928817127396826363010579261009982027659158769210723737685689351175077825981745349013012582561415377998787800029085238540943965118538313730528584064797197533213735906226177252355569731854313086712726958355831588912349394345084441462190157114219161680937577821444202920402008899605037285014498576242557595130857241583631367414444224332874517072850173425360896968311909611270245268126374596529519898664904809237252754211218112153831323707863551715559024102666311573137039991441765725921631054607262650066125387529567846359884877720912877148378071147342319075248200601433021242631579130558722160674505176098749725715330643955174770697696665897748586388147163126023079080497981964521995508662408639880629703038780732023985703536912573444357884115260060004277828309074505258114380625923684435390665064065231523405519606623516426696404959622178016423587705678478534447325708431625186819116210796003394414735515529176672423073975971005250909829192839834858530363179544453915984150489763121914758566641089758270150902590244113707223354993449275141133550921183343904783355769946777043224580687446322072621305041952062782270428678047755745747778317658100616927190487343484152061123763185455071600329676671399815034430223280332191641786434109462904202400440608483904419065120437784151430211667329011610287371525945384458046546482794921903164189845638048851408931954182418466241354743639016079466795672877264404844329766501676610754302059051286160205815878942146427343351496068368978421838348110161481899481492438995221580397678371482728118149146424251224103128934832103385194351051170446052710402684165138698154699302173826842989581034123228611241220198596023935637088278128074341885954831389585456450824161956420704089670025973741057328869568478333248296124149762494520912723823073662854888845344113057630857370220211090124052828622255589053107172500206044155208668756266743014297248223700979514483366915722230832549590634956488937105943832500194690454190014171468744988347494953819904062400308184398980343328570703347051422259419011446413112812482821204111003854379513271367634083678929766179292945594366848112777901796104087273883992893147050046189967459632152764170680390310898402592400998029726582062885215643737718489080767631946433760414078552508980949959170531589194841158161345781086957014492537980522591065050964758479422285349848582196796659736924534288617148359093480240540511485954970190372631506205641977819994681249298718411752262016571831575336599568255069048831169681772509288926276456994354029797048020101681370935399260801790093927046677876398418518057530449584937362353623782659375086120922928380339204808139811278150085938962133176272011260696907165766658447468213110651735935296374893525934543261641996929436127177347969766047310363367751755584840740006451762387456691268603529236285267059126758404929402543264278461674023662262692017733767887937283984288384222433556527647540582985429049863406534557444069864013135258357148399055411350201694065136974763935954591345353025171656499350386685356278963493542270726032221383354533122614285320275477606341105585823013912095498178488126196259976671300979493918729120310452059513434008795394447462060909593087876632179617418287112605364395542270809613270711700298280756320831104535481130836424728684054135847183064720480069032293836742106353800168470480009005107957628812636107561876806646511380080488220483678033147674626388537462979939091095559261995385675687463764292219166481302656803143485104651147217544587774776544975247064341213919477561846301379441524244116698440132204899373642361770253581947459561187935883933411312558530439429369971891466723814911350392774460584670782087413229469783855351341640457951811564255856695133542392654984870600766536017582697774443886557013403242275162107068093912967647464659451610640019337242293052302452013002183389178534781799974705206033993800464976753503858699339657180423208883857623445622486896803742380807200952495348142423550088331299507250578820062792069309462604012480300293610317823964449578864177356045697030934620240573506277223746345620142298072242284413990146696269560621940181953972924867154652412538167789692101174201516408456531791909475325952555007604102442224130931248368909497247686532468721331298109345769545755384706324475179589260924706864277023151956674888622647739970748663475239212236614498365202176133357925727136845033627557928807611913634839014243283978651734525149457992769846049740607976914449180689896847111384644236296525400477428132873540161641978882217324455915306657188706038603767488427419396704250536679572446728485074150175880653557087442058805822860637868355567814696270640061352750237013355788741255754492190609061294078250571690059125069629309054798227363380712050535773692424933834579252341343266645283839282038890957447940507381071287162093109491455436523055144057752093608817188403372895176477721126726251684000196688606671230112688791952202868006229988863909129644285181086926628483503916298287212475979368944884237354250086998311953679207308291603336689092959382627116437492261202200243849573012816342122392971792570018337296639407362930591575446770219372305456468139988159506457390672595485116388381017303122660810968643559624512914233246109968739593929861356222622162701733829032237312776475922601847726188596189260437094334959157999290787574754374449767443643537868191261221913290854055142909099951166534675951915303916233908697776232824896724964370217484344654289685257139233550318288653761916987131791008374743876003110441518844296012057395568321328192456950888007351263264780471388793954730663621615853325644593219325964819767890140981241458067062538939600135806881965683236734985649521060192288263165429685372669851967014473897384654639999835667142868952482660166026790359878004765766214521277227729753098397718473693195274124806932897263067213147152262023643483508011252105320877813957357364835289143322477064260204369050470324265367851791690901123839558428146085898407758295282216079050946910727868910357212045182577764259168878261404509956769241705909210704921903609219968745258465587041718356623921499858490815288731037306501726598208319659524339909764866619564228292187609841188169372209661709442284473653256032270772957860048151665730294279574153424964587237450717194117927142000305772266552787561035568973151683341396915718071317321258284333840909734567042673308588779318130607389631761193576860383590580440623917880574465489685710655182014157776700855733686046918863804091251102323855157773821994275833645288291285422895518353274190308583736873678393284371002171402808620558724245309841969377874802915961450658066140146313131141163320438283038144934695588203423723999887667713031110804274827004659121635296110065699599598254503591115144525352269792025160565965597640410431608374662576975527404689238002221479046906615647425797575695492607518161530037002276259959484101480028173586216043045359377998811363931218255984778498163757571311375374316845052845483259320574334962587294714949708713703151576114248598086753136123420625130796430905152980675637526286303559965616367536326512631254366997429168802719414839867051869777283685690796926970201515679291759734875902744965830960274865546612223953538440098545601299308435428031674473313316545943554611692768980487333343866029061920412858923736874399210294094393085381756244715659127757739375853086945414127395137735311316223409783832914706357675784991196099131754649392672967375460364953140983239977081209303078386162791688059953208672573146510084372554776470840820388812767088382035689480560711908420288228789829191055878190661325723970912961198073266226130840993200560441502703528720724241507741122739098308680808997893403339172875391839754824587841320390378080176797771424336308351390893691920308115869189205336143016647059869195078641257579268968260116945574302224202108137756609425485954035977556881213860686082488333993467594886777164677456285869493651866793987409979800585977575349882526993148339784705425586205823155985420434772225588066364933297302085066294442499368146414388752118016145639664117439736861659489310100356381476766560168120449617661440393537051672266256076063154666890088985314290735498898733150431627613977727750862239632865799135929211767301803215869180135046601222026991148155184383196441693495307663666305389350181884642100313661955227154524148123707312242444022733586934753794100405369115887239099449532162548385628147199236126804012601751852580906905311392077740446630439975088204048844770790049935313691800105747734277887065859440857397319660471650886506788398483596995803482212459365976131924892684138190410439790355761130252399856416181673088696187574729075811560148845965449438555993147782967315270864308401436864893973538785966172179362987653555414129379583690637937724693270063001806752281347712813663953760882172963508975563567315001407583687158444054186372586017610061650665578735688175380459252306381657893107040274492881472695629409798861254222309156607328600489347826054048777081355003047609455860126816755857078325238826170410576837339364872257595198748009774908060612076422260603758976497113469078812786713792381898608713149711753939501813295876062789258568322189695126221919439758552722057193654416338747722055740712241358516000711861655248465099611266046701884348758763414602893479217466210576606738363835267125971963156250750203587799907990655587828391764293521773368440690313694506606395333784978687826460216211329844993873761283045452788218157913999158755121115704317251694537006395383060936591964126621273155551391229658197792186245395141397669014450757013505926246803913149926980421812484699726243117150833665375803753708424584120696813446873023624359630694599354421502599108412602504073580499609546132283705360490723020098329008285626278522978836257687692392419596273524081696897218489254586987147566046949915916581777695003481633504397990302442008612647378851596144761067001921165042620849304794194343092384566982103574738470664496524115439239338744899776560436038277693473206145912370760833921534248434069964311074444563552225480236765276916957416925938223245588806370037477546292686272825090168654622817919087699574963248830439786558363704447178595297108188733268631384964964734726066062384853786398038561877128851752281569100053238667663998228860010659803181669427123337431620272234716513727932568650727739424027185264498230991592534168862604615964824786798680085554287344540365137951528033915285593319860553369164547033654447682756168203866893281545281202785785197113101265203173554555454327951618518386794229830793854444862957095860603308590740728867576512399882955412242024047092401300801919246117623529699843934217312395055096962681917078915377839502855874566583489863536546985544349406101926508572309882905344803360207546280213231326193085252029655283176315700285648281861270709878576951409252795122038743402080969862015319795668610729408858565553717922299947102264352313259902740212202463731669854257088627840355449295510085085128446361794527926230776348690774610755050739423497251321490225963686520869643415852763360304547517403854552078254566578209835080230682222428363235852292714204764081521613589120049647544016145750580669057911974988332649842649938036778879299149012679369583390893602824390969581502819025047243010489180761149120882919643438569302667535955064512668839138554771244344946865367612405893897796884378493436852160391957678865938050229556534101023017097578099266584296531645427485092641922566124111886663978309223569313106892698841586896814380347397174863726377495296586536700752451038878372588331518189903754301889187339874863933159956267694906349204901753112495302253483826571958146355529346715411336658928881803899710597470108167771821304892501735496311315237788528597941114035733400539024076923226417910037894718441610509797838701684512415244817285968555619478019768273548819891941774523365685548651045915011984276281797048908579818104762340780315109540183685162307211996986101590052571634670573427485604885500999588146207888835410067782381885523034656364478531402362387639410406441134103900694312179370708966403323771656995769550556050956138807261123701485489659192268228692496841227542523460205608881994891741441804640950390184896026870394403390986808521879070328795856522686695370978782409592613919399413464653317656676781736052312467772764803080807371686783935503256971919639103613083247965164449287027995751980931482235942898828100751253391042978508547609673259685927072857270923577482954810074745311094074301622918811195162499746078940055614950721266788093774898812453761964132593719461505681351403091738680884010775928518622517218058919196147738329399776784234625701825179841795198451948185155612576316812919791619131670256855134023794789963964320313414216705786053183334681471797126352203885953428632044310950983269074665806663107985988531859782957247773902043957522236750340617057206531062585240402167048897898797383522873162942869532632613808970945767029106236270672084514348323513161358960641458302478849729302971911483881200003859829788244966510706104765212899077006605789757399749529529241710163604146835541307551810998701470271227593791724783023002240072592418233785761611306108863452670880147029339669924099730779864698556707620664840471968549898934024181937184190291807807515009713277836489334177554245171019264708775960071789553801747938262520539087458740342044116646321021796622538992347210831833052722065459626278741706845715859108563447025600017347572468872166866509098156209508759757936215827374013243378136348013336210919137914381662777756520843703940606311772154674959021407958092285081684819158407784552808525973084131298899805027015468874987109394270123950534954513625131154863135650413972185165752699128794848145897664591275528149201242281596181760750215194557293869879530599637697198565220523466619634739555074715554377134157094863736356818333541694090613141849384150058065582739742372178339117197871028745563860718067753301071385188545416495917857573293347855495232289673223076155248440891607930999201392601876278532939087233322590623551656218729555820966272502271793111876830544961701917229192726806218374351128244001282362288450428817037283687120989014574556683767985292965971447021250471601481845049556092075603595329488370977124401245054717994495186202749547359964185484668479162062072515782032113137318923571371114830931867501574284550261637250645515031956245011563473252384092893422722238827784896801214301925041287829766534246686075482314272961227327486819855862547971681379775312705389381782995945385539678445408397499153565275773830644359899854677171095672221826821180266114803588401327682880808725769457193513504269899136596805511442847449565081545933787395924778985331096409602862313656530503943251384314075040637694071940829675599890011123828011029041436598890983665542938965832299644674119341891160008590945442602758275385947016452557479762009653677805159024441499000330505060026553531600711089179012775488692539378867337923983502510821744964568674226968242339175253691613717372063613093162898133456911202621828858142985295225400801066491942667712514463562555032214063867988142515392175154456000408517633406991494455910973865753339990120966773623747996942901604378666183248608163247678833301120142467632382453124500164688460129232404197268442470575579199879590480725567504752765516272379441501321155700350466345525501736848060774428427048353134302314858454139806963603281208408235526816640609067988240763571217565329662126885646681812240854766303712056352725888486584358910853061445330468862774857739273503574027473783250538709998281286449064162715183271073315975148923850867456664307293786013980022654336487813344888606321928677577382520454333257912332171381400811262703840800016966575197288377440503035198004703419844677955932760174338956200719710789946082325529002409576976855618196508501603541431862257219368887446829186098526408277727757306326090525394562132121035595232220923341779397202750855495937976390008549187264438606300191403303559522325984342858679970206132397216512437146005298561905611144813932900570815852102652046800683883773277367360897164023831091198547595625544117087405335233990159571822152539331151892141388052430291855366744602091343083380530212354124993795590288506424176047997304290976636373448345421340467844663891235920945126020639542270828145361339935033724497898858439980684748579756389789152021185544451668027197090215268332270936146559160820302365219481907758308993619770604628849606620181059496159293966042967137836683784425202231580083952219622295494637138982672089044888487703279792819645398108229472051051662522069078273877926883366401708413665601350849279963374718781105477850357616565959619941732416623391571880385412403512059827208645285847034346127549776236873181756188452633270063234588340837263151650023808048238651999827032523633149762574068146336090885615809733066652516031743505563125086159084394914586620410914907320951595852654907793188993178633634529452199192906945661748661751028016470602743263989849266013485616111985106183144526118611730656173347434588799919493319730116616182458993631689970116372793119053482736993719614206323503822519392721524456135288213380263002998532253783240640407789130570442686707300762080101708262539907914076326022791695558252538611340950676349508433647128163670490451624820511988520022649421760243480826626594654161738648903725537382361958124630708377830656165470551717952151610516664288720895122212796553285918029119693113997297863597209802674417050359868961674380067760462629688376930232418968965244326457312632534381267099601903156415041581453603150517628308902423666322144413642328666944972666203994142137352767420467438461056178266639130145094988952962468450016964037388188343997529906909128710899728218005909102642361710142456448784185707362418595646816507141513793757808518788448134869813833930213591002670355842843241612142022361190522062578075004756590092730435432591461279907470291341049118222091512429915702757814406638265219080503793782357107912196914803605442989353732922858095865686866636838765052199300925043241250558295769659575188554759390028143446926580426586118355548399995981028151285872320976680019982406524458268793756879043186347875872817727069478170984537361377387670700927064793023381131728034624340653434193383531522756277832830949187693211282503989285687464668074662166499968645445447315891197199008790160497876685435330759283852033046930924437397418426228828654161961208225428570085903142566554418670637896070034649664270588437142562350551850417382349861347701574021871390681022793881637832668350978298106108247173474387724568137118710250617188148970631240053066396070881707143386141209823557402334285042941106628236131207708982231967963227651680302211484098319429889601811593078963658859641579493692779707634769655826522190188263981448987543034572002527118194880333857247442064956795711017013102838790130608135864826086352140657373665220072364176287162696274124343136065610908036574064458065325874164619165754035584045376113812720756106443441131684226959623191661449966681638274718461915814297239477726429910019885347889871504105797888453109032216662244538763001987662723012167072292770286450723868972190141668522275576385351260363608902839426143793754514167874897751684657967439636700050733906696662568998497757286576612419447154859321310160906260115038951809716541385524576836082777377294485377114097493680368864778613262720821238644845276964765219461112442519847335348896405936592031050425143322297432268769112225815938550989354416601811937938400890178099233727668167994813691032934894130827991534677143483174958186859371138250560294328558458880651003158834759049018105935198400332074610299794542011013632038162007317434930480958417122538279096275034545878423712272406088422624350507603746569231472059025696375927136855086684638381852840827228514477300267369535609978361384120952711580601552073427325526862371965509318479468394072431429110455150132526593911844194152434454896310226215092758765137635019531330557247843459448076217125302520928222043270549349583629327688866636501145887891551012875210187919096099974565430686329699419410472502526400202439599295502199595551417702611859936887228778600599739555262482261076271938466315897877633222368750458027014567495197203931562447039718207722249891441965738039528419614025954496222727118670484218846162604693608847355422616088468644583057736634363319720742866889186243959323182154205920487901977597668124529068442841773968062168203960090757509793298394130042456685952024567999865027005008019830280944028859663471857075021270660006376157820961895678177745788363642014620496865989970334277410175018933289288178631908236418225182601879773369592573177899782321818771466377813447777415582315862105516307784490891640515730303756622352183598166880052666449250401922841670366014261781603010837412640142959624865152278605895834066933707605627514544523363274727041823451274192024577449064923221262563525382533170730150088575797965604459926946291923938997774860307563065960885435120840808592495021243082028951319933815909631337545429079237009472835634749211347560252696285454953332166480392779837185433534861425076705106844625875238373015147731263161657802082020962616968698642177795220362882377168002250663104319918821392195133631230481877229665779800674851046405881287803238824704631826131510919425786727062301524971749493863917855368138019414357853075339880291433912674271900863374232463794662432175798825263488826357995031102729489746169021430444413345480759366522974598080282430399751849936787886198939542013101345870381084421531279128812340986721244153968864019763061226675228178367263327007465049774629830538569553803548671191459929536686619865883260479929278142869871379846640918515054716681290260892990453748061864438773153714938985554814572393350236726246678862450122178904199679606746075776174050670491276715009047742955644222418109328874763458684823790740645770039131611580051949081073697630677027832388175710631424806407037677200891005014368482554996057896092797209374975083744242481858575380076733701162124987136862642330112470714543290013774267614347020508323881468937905801162318739826004588219228644924306895710451167404708510884281908157707200159652479403651401267094960796079628326252578721969809005861322213804393886871935984520234983227346899085876395071625332701873729375084646658631950430926678806660881517629049911127632080356188368323974500686895468470104975290277356779660738312928688230656216730219566804832902265551114139404864730473350309326512982840292152325406532356009412039560633115426426322512787811858936633494896246446500989051964556377433238077380187206152425340489528001559210922750669885568611193246694197587580110940264612310794614230641596994123597581562739827294671587426313667322498204061669193372772972620897758458347369661438129679858591024116504601919590656033426601255210802773579089858225124713834693110904275741568729904036437565504107933247026917252906028501698211230196509441589657758643694299873546772676661676007431158983278337008043464594852438758708758582039925106745690754427148572295354035632543173176911351339974312187209789067325984814208060123963244692402405968357489667526474437666808353399178778358818663316225153348866020791727476341032458195015731433501673787674950789497746229403091032064182212740037651829169670263087238575240857617824480440439502840337671668603654986747890346480718857570255790827925562473978381554863160171830150195735894859985297044535319080147639566198110512111649967916610866319407838590023034375361697212474799654422088316616567446545652447798715132955380482840377697007856070426171731560583393070917053193205588008939144958913993589707146001658700238914143106755994162022114823762731585675328140632696190122660413973867358875503686343681384879598726002404519491017793560651817059352842706930222518698581973756103470117424600218333358197251455310830763831362531635013371845226729093608287902203128374708089987251897247300280252168991369998676949610191319762252400026000773314173067863860518844605882260108662100565145056133077260573570092909951362659149696099660122486020830279184552262729050811256760756167495863566477204777299112006648129400400317879800896196534756968863591585267987372207477236811159906708303769106043520055708384463356347671968984249401201127967831521126137869108409864452866547958102474716707054215380941808195121653772173850527536663493514979389184597127799136662524135988577776947482800718370553034213670987740383500448903785018543470511364258142292687514622963558034785476668527051549080342862661149928575542271892053731504900058426601745131953245807993149960246138049399240938683552798461226044383224834310800342085493949337995318049596485155909401103958508100114193156871602428181228885019379146119810235725071348416615601079122565410879704542775198639691479873163921721807974540230337338065464055601127825166237945567302091144942647664119164529368380169870184210684213348483367562858556426872410157820774837758107504157020350903069748733698787041071188565446216694174930948587388955754751571508650428339495644422433259090727433224595005038120374875609578882467819424989581465118701873556028855500030701785690013330558444867320461665923599079166585023742213534359631755964016693081095198461531151504523622749760931431737951713735763915456504756074630277404516260495914968930301345195741381901192170792829309579929796813109340622631053207711686866909296855986913139898676438337195239353334249548403435514452510574516759929641895957846898089314660485568633212380630771398318319570502279788379718446125686849475281758144208504214997929446374914933438024072687569188870517724701264823618154384852822476657097857333888786654458421702798123739701123285882352713534504253427109766584505134415936891468008238923097169981625961072160046735987664402333947478583478250651213981479112816642966314736413604035516436803642988700019058596324184374013665759798891025536841399706430194610172736433680171444810254143048044906665747225842959486488688551556416440358532430135020335394836609307541452057256041235905259918477001772997087425191798540439229831586310716123553096916176789762977893038907974944721600551550409605734679041071053486923417131127686235297362298998285781779720822192602323910488620919028308068336722418205929989381721763697153889082705121473396694244040072931682054205414099879649843382447504849558121703642062368523671362105754017224565008081557713351537938752766671096445745668010955654050499502073442461178769903247899146130237397352158971215947286391026346874355222848926276400220942119293744262809815629942771021069145631077293687956632984616337140502522555305355194973968410029905798465458651250821943705730197400197804428513699941431531665829349478960450300692923403647048466201900584309783044594300966395412523275410220219859749093011856449624533157918754221006297543041132594148763868205350572314945118511277623339295894150872739983710942519474132123036137527366028660842220079461546596401421205496882110050687425053985002069641586202515805809398528259116093581543748052876926330778382119266646914175533263093084761263487598105570832648486168176515307430869510431580049467457758425716067293680487941009304473913249081074235011316096979369797129120121807764925305307537391256276484925143686376754614082266900772074866266786200885371604051106449969711021375979268880907129581804042786343396807364958958734484077080342322610744426592038957315337781164207532331395384757612880804727541658383027162045314503268883265475718961949731962200685120422071272432381551367456069898805981249959025801260615457630324568070440454854354339341893089192021940368900079560995458384967376725641057642789384758459749509751709740073228316667411240270274848645501678465713316421613660964162784895511437328097049979159319606899974303062332745605074967054342535683074691631587299411339843857279133926485913530884179108198160306552714679462863477809799066747801939988385166957720099017671235421657331380067827706622680070179274149528156440037765750868355352598409222486419505583785617197151620922766777846094163825517474858975281895395544237838294875593283516848913772346198376864041468871533662674207432905639485989532179627252802318625731721651720835102447202078488008141657399060189296564258546837912335053617145392726640173285582934666533678096092558324905079934220121305136162171169061289799625802267752357713132127525692384003441915621281183898370474035844376584837381885966991615544633330231620405069300203048033382991520627665699734909458989245941174714698379311462802189554294089324680679501367008797829653750135380464020439891000895518643985391625228838782761379009093805338151480154137838913578902474023974810158604141356622277222969502086986856446847818996402288098759476888307455633053845893254783438798651466647280165573822004065127967375592897242432619478290492498504561724248195247268047339052755107302032967886176469295759186796286983740124262974066976908083840304335470717009416227179244029664327107479706759646381615064245880463590459136436328820017555776823168993792757741975450983636599997912799873323140456946903461007287879131188892583790570909585674964730778194169813371161903777018074181404742028195788061621301047176970050362802501475173717045857139244666215335587781863671867954235598519074182202330154800303509588589583117902681406708760150660199082578714625964013784586301497838952941617285027119292569816268392351968154613678795463157413081334061852758986334866777968195790263143038156451011591487188702505979175796175783347723317963636358228591729868614107766437155685201733475889234258339915132567772255907447124901688944948725186312916119392127846067374630186380656328016424643906451195124213701375249588031820078450411109724144830212348831958828524020098067730817924009830644704114864912475616326458602862592131284132236593561007485789160505569094500190486231819028601371185210153726571411973755037912717443245478501144776431524559138091031227346261919761143093972362534171516336386785835730296916718915665735075224361073147550251337580474576512776494060960160205686974882836222539372451841218775061174643629266220928597460550196841841081048274229015968775337485792811542096781685561455343601161156660523017851473182150229516042362503157046534044897972655159298784777936650379344647718149355397944994914670473360747107089211542037773949405515514191531540914215636204620483783484845311463547087860890319816512641697022441149380922600248660628379162336145128807636923514110907711798163320303618233716529149285994550130392308271804970319687569282771086761369699947764856958132381165394084327212305435475445197233513396851731169133490229704317385880552740588349948476190647525874948010111155462909112357770146036546688583651674213527341716205230732255803841782149184541069946672482104600199644698738259019368319948085934611150182585851771138973094092211233875495662716571086167177351072673532537728860616094537038906064574586828347524745113163289384416887399502302439138867689816493414581749541403352293880773377807495090030215811010233581417044374331240372585267905730473424217577079841511234292936632900880334598375363731574112440995653721845786744408836532960973174521822753027483307052674252627460365694469490856522053786367855188564328940611355256276257211914941005895663751450532637704297341114127224183644663495998116656860073191129940387060450295918475015913429290762623192076331752801972277021546136234310222343854703690879282571058186922927396159256663242117988539692911914234613190321326082702290538672291473609408981398826613560840117358329332796139900262601532348402760083671806390445238364765970078091878754308354574229006641926846338129914747168529194617126463799593627562498158857289965655020944162970124341196115800872735857953497020574126206333187047304131429445815959263351637823301130634041345792118911920329236582349484067035166759860406323151333328165718714268602656763638189250417182766743012527226100947734635188023403138387526240608004116129102988905855761300067584373804424611881278368550697016830442449459239069510840052468814348538265333946807962331051866065024776852508455702866355496618750268762286941907131644515849646340758695007038441624330208194341198055653624179458723807304242016540893443772078346913259314341782886199215227315538544858390754792548577952157939228867317892813423604988573724251094933154679859638013347333148105872943739783417796795030793894052008054988680720974735698697111938713161606916665371859928377947072680790245700728887047918236639675426433895513733274162739208703430303480462564843979705340537060001977709594897414311128335447731659320353967372052032759052900292309048721105885906710813744841983935078322257387223725048761403096196481168395459306914603146398964740662412319335871821534835437078414875767109592490542946808901169791619442131645945601853038044874421386317058894782219460329892038529890482991260397534062379988136599387804332915371687742231992195937610010894009796286849180017605332979505917389499180200728013075523514725923054950854505745949038796119018309649905097437292839457553724769915306941649471928355659378650840913294670232749006297531233409969503517343276840657199389103527690701326624900181150548581813674865794104162744820260856575799729527372703523816999665438264882209433492664939513313344942384968517823880703544610052708773132226079419670726314525325176377191776925096540470253201236486850914044500134485960163641214327368709543741117962851669181458217941007344546683987419275611006925678813010704737651685833093462214493468690299456301765109986876175533777985173633944016699323938481049863438754161990732389453599790942213075186075255372819416013845230863949010345333438760413232271311307305877716439341334067000758373421060455713846714175162702735095662217836914541509168948887391786715856563028570395003226115610395731454157729985888546412855875444466650438209030371386671795816634019019221036351870192036792446308150218492714403846348762793577472877586605111820662604800827145012624799378293438441011504517505590001404996577215743460130653849910157325044168868582706964576007066688895422436265264523072529488768324523567389556022628308390571339362927457979535087456092168592510085480383121023890563506045959060628160638662068489545628174530949265136751754924633889417504020321633417128583070495607979623114998754508514825743140570734409626730497753066880870032774144230066518948279009717639910136392754589925943228418343347361914321071304695118977309086443500708573123350398100249002684330217222648391820978530711038004600414482292866454101572623835643574365033198580231561805831058149369149320596811628361124847705884583224784983491655835293258227270201401029595663895921312921428451827559854309296511346096255365124589765697193442028229947390936561486226652205625523121613730918879716216655962401761413163855188661217782357820500861584959310449179227410241902416365344147356116833123137882277849409155205773684489017990641779962921177373118327773040962743684584843393216087110456650328188729766333097683042894660134907704497512762575448872371095489444532910442368245590926541285375216069228279024982606203884847280124714503720677013339171909329222878434241259648877887052567412858517339818261287148124817448055407079136637584283388165104121349859862697126285313045270277142438152320346416611706244622498030044353179755033092585207552568558271983472877231575399615870746437141697290035561948713479379700142340863117038844485863966189148623184364430642081982630495623657941177750951047908851870749717590997421679297610649391127433587202453284974443603850332779229077070288579883989222066164059390706130760179917975676251745472427259289816485440763600450977263831187032494408318687077214506349008132610077241412603228404036929938393528666124006689464148005334361188290585246647017361249678547597217876229443028534327984095685023857593997809416102392917851945028247977068543264452397667510658904084299805689364592638350461577398005564254131905791201257156094869579186509501344022720921682660441662402998853798307487785913912453678097204091027714945483411832113832421182787736492198421739517502955186784992052024482328658404456492484531722542733436660370730695378471565595915441532427414756162393445598936007467941648823198343701667054250788460842344600748278724272930382479760660259429106884485500813954383329315698072539255504146191930431180528363192734426997921085549711322833521180942274686129699560013087399328331996889577186337786060674928947494592797494235851505064138984451369295993910012721541618625520202812633896475222090267107692585318648236502922673220233639186781753436265230195126578994525225313221451481459362021635288220516725537239428313440141484841680412802287774758022003300905839656833319821244790984328058246205311499238898058352572815968905433121662615302173150784645293656399436245785585330873911088326131691286530738491277218202483917517105513869691970934338828484083773757877932271203606712968053171333187930034762187721963456709969295928689586697801323737094981558833102727708139647215220900042268532078839910628868959497907373823399313981448840271740521275539555896696617291012674772793776797566722074596286938322504088212211910700612417583825107390215214678398109713894920104529205736552038734376228135950561078563362201380497357938608620205923813275639797376965859031043205654972529998032192864491372184567528884723975610703773294085653760717469630971470870466597913609697260044953943445521358517087257524697316592522951048196576267139984660213329641036966443387746740779020614607320889524342454134386633138710888211690550041809233127996049004400125992727858417948607537198880728791483488863116298599239267556757531366027748823387793966654372813428382870931302361608452258872992069929380534154533579314139511026082591746152286644119695967959728395798174409567295737879886920466907595887667710809454271071149672330018159903726484668711206613004441439635438932642535759148159020816755817461033292094935556129177401937388054641283569069381497940176902027532763133266456818047882617761762997139027444211829582943506692704690081436547810338512683382087158888729506293012500462442158824402284620805282365865968368907942217731868793435405967605465165659809586970228572975163652794523117586293351221987857296322171146379908660298019095628168923742333943407528592846777938756220220093764846353425401070897861672107755801756768910737102732319180573590913003544149378647258375325472783175774097481190298876092595074481703321763910986078044464067925332218780551759459692468971283544013500489328134582060821046562328314178529691777663193526891222923160152899219352912700972327760622989996339421139501652133815570673634000135796457695971092757115889922718397011018739951149038325636851969633825740346619608741360001815689948627040644212532326561259795354500506748634233280324418974430257898567720352709270376996143561232792133998839119494713123504168085817580302427796256934842823517526467182387067405101856368970397578452783301728099363871329479865561741842098866562765915604645719742810338851384609083103725817691231227563834130574034669443551917356224724135007177155813421835100954717128264738938628557271634887421699755076307472751160604429790847809314070173496059469403052830098223915913910027164227033983163190727459058918976282498225032443143210203922627527700332408553736706452177843824836510788806034641887305168782629319186552194626624084302466846462447163179297953551494597168022837320547176702782513247462446027243384815311445333591375811096278189591735589076157501557733388746486695531252266797920753724068932772751879538439867625371710859153284203062115234821809493654933343596314625843170039866157563104947955055896021451601334081074042448635053755479017462913846616138191582353468681640909522412373507727100723186295858055323869942286936720708027384869825749566333882534732792522619710497645472882289130725092884805631868023558584686843724023201796780550868523146374881300606526863797620997899594661763585241146931440503935627946420902398836148534761346552067264169071005907603482746711304308014124500560822592933678926893386927880117476367204175327716635432994056184428168083021569956101322361070752035300793927656891237392157687283159645393963746675670197718072485767019648753501208004895936308448767708255982878708928001091184644429970718746095074245449218357565323786369020801585883392399434757902869822165721891100911999998097391205789019314554072027845801442686795919432774818957217129062946306790413878292401867148039152150227391807002476620434785120216185355824608569609043148157586223821383979620219632494155369981172047497254145037725536182981866157457822739826178550349224708470282443028202811792234419046941384369164289803635612016786943699850087605840935773731298910553912447622238697157135795478730585595505018603007774882955624420852778583107421624944003806445110580366665199513568991239137616713043889908774177699967290158303859840554326002104755563203021910753426404508636885417368233850267815265909854147678122859856641715298487211175455533845547598291052743748428432913078051024351319795463507747187035776042013569293710148480768023042699215437488384384618518684347692414418783385713552267808290560444547952771183395543928580721734801459289001199274879359548638620004321751159506338848452655341265504702345993987011577717766372298695876646967397850332432265675493202723163450968417076796174472364150346377972435870631520009739147482889129985324477779820689218049699556540704071386097168618140291723263547235812174882806289694885539732781069250807863783411271571733751900141460025263781832533107400417708513855272219004377938619726024369903460385942031459763869976504581890357223449132221161664720711938098724592017893188986340675752523930629515239345396490623064054978144486729934808787638437215951542004064367700785315605108579740894940855677960071821723772610097874892135225920120150522315367424323031497712937828456184168390560219871059507775045306853755997841752047540143137899594517769911840403207911106289048680098639013210023774784097959390710189216042126282888683816278674690004855246580295789301150589286804447708309797016479320318297861850682484546578886046992265358404695295479173172200394964637548843557528917748038673157419910133645158784573690945265005269541298491762601664157697553116801356914054771540589215746791598798609078323646179462199571017543352201278836193996501423648736517448610043161151476053822373034149871249108236653825190471799125691294315085033058393383413140938964083060211830059457018561248757426852766463166203296339587944001269523615331245240621822541860470878625043370400744501215193830945206015903135174975269235187329373717228849786924788484992658906965123529432366864370239244384191302130783664664804342343107464978908992842757316006550408868709901877784432689999428323464214336050803765769290493385546890354194629289803163234158905044323397543353158140862177775145415366156227262915922141915911986829673061825217551321438384057612558256145509961767294495891658732613369410724708292785612090136648635053641306942530991065097974372682452358724863252033940609736521567993254727148384054968977356681828069581710830019349280285394516520001194760401863958403275872518774127170122178615383091770698368914272392195510487242687257323304104461400042307000142262689043831961547910717214838591805484592097917344499915704162998920305001989347836450857342580972770151774792770851284407963193313835154923767863407720480038489104725563849454796406563206763206912876518194998223574354501962460070120519977292218709922331221931454413829842450322260529758240669541195987659626801342058727838337018466937342411005648349915085240327946096370315454825413920555745450258636394787210013295667299352330309270660178729886850429062708521979587119299757041223949677256205908866902757345907840730357550655000191824794724655753183217436024628497975773937180975409149827079460607128013235660085319502513142304690445660882398917797017778717903132185176141011087506723797513827492452301617449402842920770709981622671501160875704979867641655133184337149311986441167685062744123836647857316086670896425724506837538436368765035511746642272318771318965714626677443461448662629921652532333245981274505566289673339866795702144541998904377410888589099539816567639053473613093271986388360526159070895509794546745012929314180290471323548235336683017390172297948376954932737944710105630232426165168634591479622998840446922100106569270259038825308742326563151470477112394112318576871469366012075165650257443510287918582142443076110402533213738139821955375033214703273153583408397379841007925754002819580203992190144193545423724140018532741523133875450853536217745049748285276961086264060348619781754091146713693269820278182401282843475405485772600878217337693131465671518877812189326683901199748330635286307829370340625643849150162463796936376231647627749828571406358155897667005913870954594627446071449120425715030556240731514019599017319046884366911712222104442984415133347001294769805389349329127648405691986188269403599088015819694277138241418890414351722525217714826937726099173833318297199055300401197552173175605124886996615603726276854888982155402481579021613452552646618871116587148272910159771839776926537124366318793727460195899399825505929064724979099884187798288838045555203526707172603153867408002208580025221399768058399080841749161020718351608615605003463878865494783991568426441119511521045565344482400094281826847200900898660357222199475740527180220312913491836841174284819210850763272188215946714865177756213691594390393493782540540064689381697459695684968745299858226334847790540048156493466570448680869353507384843711915814722463747591994737496220030073743072366208602818718794314413612076229318803806753799696574151447243205592262126823391990907769467509002397355539584423911322856031712534644626773511315282827088769944849647275886399148016350080323549743218193432348373508476125816646472514514856845879283797710555908742080284219943712294715695868574664243312546261827220081322534634663275184907684617896108223691976356986360277171137752397090086202248191025132696854424879352899028035018251252956603072397876595784230733945717914259242377183640622336460444742742693461947178650079006795788301263285649401356569436064586877609397068057493766484931251241126119440317008336444284456776082219000515081269483543704347804894716612808872224155584935974647050253517089176611378719759207301846656245270093732772585110032098815642684220100071678226889610154219855613206749860117523838113685277285879056473504084558761439246553975655855206097461952285287976608824559715349810150704158203474333001164494827839354916180514622617108035259882520500108063573446186544420734920677592620472634458523944986490349647427472035157368796923354740290842888155553918087693073375323142688000981838397945127748932372040160956347172364053039561988815379353252126103840032451402797908273771648105830016829463127998115321952928523750637045440521485687665134166442946812446348624342602501221160995398322858206192676281740629073513739495088037740085189875542272129656812926004588921454961706127144779185426234616541852716710512447567209605337173458548217011464212486194450336319034019942976190887571316937076639959197836668684222822854480953765781862262252147265025799863943712583160382321274608147123536899059741155551311230294433934518731649213557465307631548209583840261674128920660176599033718208457464117499102542257889500131463992635119801368436398157206016023240956634942574020135338558600319384035523191873653714427541680598006003400942395040266312827165790251506635684524178212455902352717438305018752639385449670706795575298679678578659128681464566935688733908882715611805792399977027636514753530045659993636664990261906305217245871051091789794582583074689369459673937395878513375577230069793780411211674531758249547955711668188398714615941466803880634566498239376502401509422870975748194524527965751541365991787426801484911016166100040262626120006928601988406079401519164226142326098489075803127448221428057215454247772461423442706828454226646300409809657705845507724723277934642067769697340047514481549845301581486425557716331237014049084668606725785936967450640323834594913231469789972662510500786195345388475343742654814214292412869425807673816959462771155809648336659730053055973499944602335590468028941237843477220186041755886992836691288722245295873388433578230674279741340748455451777730981013691512280899826557972081288977543429060614040208350973063162751306577094895529990743375217287548638437626706950659393609416115437129324845142874418167127526665603223968175817552709406389483203823568575807018218263029829575490718345530299030351327201607182737771960551057712459698616402338765514689080147509574572127575288005757913264266279037612595300798343638329060540239317335051570668222607890128048832273184510026156164180156213723882924449964921103745289703020079127380214668425030045828119820510713204997320214080898577146030569298377260596141126650380209693945021539827578436296772736352318489614448120946507143882421203207440420023468082892331785582202748192807157168411570553678166741858035004009060247917909871790855311154060264019929524860802038625318431764974883963334397327101593712466831412580728819838861710533756988799297326315523915215347679571177929607692008322774096620801318753396813632291140186257765001241045990400649704089072871413965449342263066308425573234210266299760051431712584104031138267555680882628386645288690399616505565939760944933862676158742276930052232739545663227312617440457021858829231779361219774183531787470033941970991229659568546146070626278015735259781204930974528807242983848078255723810181572894619717143184545201821989688006627360426350574494220898486650587009703661381679473070368364903498884171397644016148193882741689498507730321117421709136039392771514375928127139943904112402093989594384389755671958569380798021899816957076860026809060785411450934308689420551117852724109688310104797001975579900691799977971169552141877707617508463970304633367003335289398113702203743465313295513318427455275316323449289411068865748004288936129338176846255812234380731679677510778669615162050497811167450944402503007222696843630097761266866883054929273028007307956441214560523050834884137161849887819698750575504175944133331532287123409441376454136021313632697119535750305841543052248862781937229833942224443352807743431417130590914224315116230135815724246596687793382454047308203492934949668435141061905208403130550161418970417756213751301801989530674784115744219278666314539586966420606236915133676133358295863658355720929333159747955790486346374954062779807323626255964412987349917938613419759874220947817152146056747729639349756650717808161683047093298051305048750544134451887585440879386326985220926101937461054658958755238556260673500339907651666188774683155464038137471448614381056285187997812769818303863586403884641154445577923358027125045480205303996507736783730664195387880192362629719453686522943339692302278344888054333859423641340649509238123313475795670029083325909746297894339003946325870571538651704249130803504453569240841285865082015288048072693950699117172350556510535976294255692972989325907773489985327575449055853635243625549930684357848911619829507180795212757331906774848004939087216445841452395877754866760048400117656722852893396840788145815822267976522842865400756532154827783063944275688878464475267287737097461625119575199805689845128883424102781560671024033310020075868423743884179782093077650937212197496078604266719476494130132437213088027295873030460758044811602508125284078848303627464109381627342403937626051791663604553968086520090351407043345850655911462528126546051707627005759342475196851149728773089927351978649679572147739958089913843400624131857161076744373999390777373473562039457950047353867733470242803499715245917467203215933943981627562761004755426223577691717108838948296155508973945081021204942140255553778024365819109302683935320632700341592841455930480630318773391499792357243112922097520017400465841840109942665795306074796046022338079134433991427481931306405168065479958750882754992934873118159820501534657863690875483036327590253003669657509318534981172177952859819210009380615223948155045907469935414425066737243818253284659949150761724395148928510613462991767104628186771449277155006575008906119362910139322497749300516165866777552448378419392122611951319571577822830607248851273549511480334840383849234878458758988517072044802656352023059962162621781377145858948479177061144349475024076956288962525235438566722528036953478595060130925112426584903038434319607519740604536130867417711124633466269712880377599971872491860780728568357629447016213728621386335563165563862847162709972729365124368748272240198963373355199002742556154343840231463765903276894243687817651979354204752034244155899483788872117014768176667569373023096583692047324124569376197657255796857355179030616006408690325104702048050531223457570089457491755885790672483233048403953517355059895305363122107852246488104459138316235753246865408295598939851543740131627269934963322138447178457468048952080743565964422922161253689026327783172474857675454818191128391703067740996827501386146686541959251177049990240125904663374332443891927278056925747794184941085807781225220210052522718504934218082208049991330081425203314766181793535444250231700577187921228729212348608309414296637906238315894909783950912410452510723866455687315075194274135947403574614110978206869479988907730522965927845965977557247956914020328012923698239668486386795062100010756544702511158234288330198449935406053340923136433461509962814096057036461664821560664804659391616123281246229341126179182496193494070697985542443052347813803618449636703542125819752861221799521929633495680808584782212743071367612121723018917586225803931382161385023654240727920059336033934474390646100232363015723734522111241109658127761232470658749296745392497918846393944295760973614569624127687453082300681257889333175795421536747968386682089603885218141430323197843878488857518434416323723530115122493512292609773094966397983945195488804041511431956437909243775696622023625972180068808521401908692254349002269290514876997558447149259425313259185852536014900748125727128249758588517197088741903014594672996898734839463480223916302880809358609200580461504469085736455171509022720664078052540508167958604045716669963416540805088215723133880160583864832068015661089366574760046695905286345347252782892577594504559211795027779916144768160591250452721585990703914242908629532309190629482992763971940503806591264825633382662904351726422788451793346110028833143947222865457348143498850857645517088647071974639171967976317663826402800073186070167183945426642527078545869634143990396429516036895491105371117188955542174553818140527431384407368556612279942303654915559193616545266151012725186508884696912023112574073216639538199839292748668086310444849578910781073728664128959164508876235377451925255193878693586752279825258814298940701206207381632609582625267778674532963131762199290131302807240202108525297697016350692684153919219456694182761080634955314483785872413569042788392228820442858154152371029402620649936534383308891376897130893410333950143962271670951694189049669389972931778517955810174151132121931264818013843206511330738882856667211850722657874361367383461996583202734314055094168615790898630331768557272849012976982790553951112701767157866856379880752575639978863269879248201165391156805325118654441673325623317356943296366142170740216478209605104838507144005586655169603171102946176511101735428475841667297005077758862987342832733923111168356421072002901687553389100680346615450686237065466197362045435507459275122947867684273848991101653395777863704623011678103542291946643281643851706311385152990944981338140673749434838517169599905427970873365318207625824216263781574197478900828337700004684667342896578968956805656864212435208194221071675012990255833713545840215485117801672323973350666026297602534756229768298372444106098520933791223669849939564080340294288696971559673717762391190878633882955755209946996351760712381778348785789492607987412447881359550933140809777299567553303255851352166680637779660076218179353190326654192212756779841020920209619771714445021655826408495048884818293310208805350470185142129226080261464868242608047825819010716140191931779665661991632192156322933356953904822649066081281391977590020966550375132413251689590515090807308016010536562567689068006494322662608232809142238183843541435547793038550741590081059179586126453291725783313198047627830257352764264951526895267936693056146070001742700077444086737455403636698697343869437655422445551564876520901927858179408191050539863539898395245674890477227988274324401900737981617597635220571797659864270719013320432133162499772426867613952108347919982620662061793054379227812535703039735791877685108990170929940711352864279538940184405301606680048990587286780518755848897861621546511645929537417282879981369283511707237137962516109270646019296115809982533363599024928013461359306486365722108853378278375272226819929933673140611477807534710834876578345251682401262584380290830931736140527535759292475077986467979817951088919102926120400429673093175331719742376305390966492737502725954761227558532614927920117278981107301045497205331271001985806692221708203277656028572924441250587213706005560023205871212957724123996336451676555149554538303755779714125217350549359058888544995972522453505231050051223477845202932247912592339631678898343584868228888521429331188593807298881793281011164504699877996876441895637103259057572404198383279032015092993020939566353745486641762731723422468877282845405141905096481417548032782751612219873664905459762260243521895738649498308904614530918164725091634688070710762770557159067456855408942537405988416485528705866603101753913949431157137052688077645822458008623838841616605923260865380051755605867273867841052549155397283295619599082030041682047593187269224542520788976994418733584705126410537021681540639367405290116153683202569861617865705028956610836766554081722992409851574569251987988137114288117910778062958216140872626216874379738565538208910639596088542296339937408639570221394124841390558306483500197363895894823990815074000008130824101334931946613854329746575330078162871700767242436552321414231060374650573538178536082995988380244046266285996118763858672421031919271974869854446108117212773405383378882798529770083701494607535160841414115681441247466107385740179532825772814629946550687453158851888475962368331667241305197861529908981921781191113736593497322703856680858339106290698844306641936697792456928251098085452261274060529294082656440474954466429090396915858231894786363665362970601584707890768453809742334304202671349544178427255431315733360256498712114863020514809833509065575420845453456416096183723339957031468069035223156065695172930320846278905808738022585750981497635359565846263282898254996335008482450388127148101872771352827992756869287477747113947017038873718143562870434248511116284644561989875214617710077109832050020978405843750405889557600408636164253583414207891920670661057081271904511636486054107054700362557465915463280145382563323458315329172250168250878011499637764511307784126779500775887102911636534474145200060357214186252886870286153221642278799487522722617111179019270283519379254049911355277197683092302753470200653409557726716005042188576666419684150134122582394596204837944390359553839003471042530653069168661018643115051068650819924306231836685830209619219540169665333523953684343222042369878311730253401624016366806736766157962280476345855820835206231841337857055740843515143153832359844810334645643725009206716518398824731025735577486919773774744470211245230332102599648576792548028537510091155847609425184231685383377814444213092350847170007447249960939538933888372745694347025140433037800650575097148586638692018021286914868218654895288065518414803872952364163902935465557416635711688904954305475832980904779772343865790620893062797008980305964542081423420677220702087115121665895674917695184552123360639264065029749865907054301610506913150036362402690147686387464131101670500519032482790892315691041317126859532681135784886112537483707027957975676493041029038381953954573826340156514711050497047083857569234628591550278352604802399096918351346008581752643330029694461450966814490496681260636213103707765683680847952668778794388552866589409501764803869393087995919171423379706144325593288116181421366596320039060923373122198605955697286336514534143981415824295426771677628188137538629434339847974518631403232984704996043634949573630690600992048265349058681371499164612361717409515191518512977715053598891599951126765101261012154551018439450591672255449580494560543207941845763794563153364766024367783017277267518492636334763991554623910556575015734431163515653353637182529289241091918964798803187869677008538657001188538188692585427237518008413644988213087044746204190421368042841060631169585298116462570916054248060129927071408840801141810533017604633279424700872452612525354018441630240421346450486428222247964380423927016559933418007747372954508660109141949451184628751395417949777559639428302390447330512676733749632130111318044025944769604942286311336586214946953826067558914120420417077353317884087654255746471413917810245761300883801052056117202235063268114371482923777217289346464066869611551701350633327331194880917869963765201131118161243136070812338667879028578178864993506467888966362443368232504707125566153007122966183878686531274647439340467911328686880818254696082283044807081720435411601290773582866566254496828232415247944401829562154701478317101233781885403840007709305127490388095152364582678955999018332083721684865111610616658717415422195070876638599884908072745857356503209513013326511539511228116953369117331416971919715249496619687926634212989052830698239811617426400340166833661114206132882131140995452512321449149455005220157642361743887714936422650359881059319987527337464456415246099641138033220171676846446326859062412345692670379617072304772876750008462718622200346130627361334870712478306633801406440525962999489200848587740103663954703128495945535951081057703475549720917923111339116487493035774964492232489113926127893961888847198794522129255174951675999853265890439722807137985841459181469314498169582222656099259033772490239433302487601931980174571489164449271422047504358622691402174547457445850476111776599412187696199116099752816285466871131623624611995094625097989044001119404415551098582404860670521767876328581617298567279512652356891997385614164957750716285569120243824832643324329091140105980543917292547046385440511469959980241785074887230642556934795893147451058875226678387187714275808593662430040982412754772910535753466940647564965244442736994058840869031861864335189461827939296100746105855161646876710031603665501167942261497318570940126067014137222534195467934830943428022146137562641612640039797786892698399880181058369701598454888359388424228995416507741177405312151771503230865722437540005626207017384449203934108485802848836411601866673200804932453605359971147510757384749960831229360262615601777683319910079186322774161058552234528563224083119609530018759159203094451149902870916628130428899820376262184346887875732288379930970171896454172146994162642281492502550594819368898801868728580697831792121726976380553921470936113166835358334771487477472269448636146256387536282015967726654793624054434336669212407836143637959722898399620438730692456133166794934262185255677424336583115413531941388921247510067596429115875081319411258310375731162585600226176378987765036499977894846370395535289843510400289182572638928486873885501713179160132892214207820809224048126331550419640469212656395682407803622526502120949959320741575927223349004876114244132048932729493035873624680948064126558162516949186244671806477654008841449854851580715546791037595906220222978638980716799359421045348372885378849912799425366208708579922417508358651229947391762169932293039046270935577062179905154807111558630039586739577905152316120210697283261579505453156791267538261142350216262783157260840814928053870167722613032581305040288022961139260585448730447521326155864603383682418349070684922907905862361241761151594404455939777577901565566012438463802860188661223323277791540068759914074771144864043931574462884558806164168566825104098090443631062575031223944737580013622419477557664492812141075616806517056651010139440584877753634372638093026326612268312475392254906152366697265960472207850556519873651246629395624039380579328170272521019702728155129257876155612168168676149734080444429863481009995066175781886504327444297188116467855434700115891971172710682263050296348171829626704932973244742160658463357143387796156837311530407746464453044840052797255430314960408332632229524466847537322263545100412994476032205758362638787258285554685633891232392984026501623786576126731943973707740988293568134057280545065500909557944768327168286813293080112632052498033451814683065163711160605309701221040385941210915717752313769134309387183881954566204246632507565756617267762758893873241946451976625117206605531782818829873680400880865349206252833316898825325894121837344275207834637649705674330725700254863477276137137665193848368662482678503568279031516596282940495452646984392726387089378370807438320903317741325532319194738940784108837479649237152309614651996423241151942968776060904391602910994161949744646090042876774163404877971740652107238926595768981528909380395884350872294500881655020817149899439609257789035524110549646971083595652173178262256732253755874744790276769793349569334344987970664195395455302413591054164583532023102765787142769130210864004967913325919775473810758111179807988675586982915118284203806009494567568204369046649297523307372202747156497038941217357830590708980732955556801517071894264752469236777739871855582182707005139971279258201572247592954969726976864333251731427490165493489208004742633894849051761803220870228606038150424429202809725589893170726869066096466055607474301848382460492824931099381090648141987289666397144279809867791203380292740036505351928035316185548542778594005500793875499495876214692382992889980089622629858493761002205238888982834573176882040744046936195226731134054182775995459250746183056975721713405072680433290888077195892502327627492539924716757881438469848264408744015911621840313253378725791699120816306359492207779533687073025493417864514325609723241948025989680615202880372959181810975159427369313788847285208213449027518176833397619924191735929606518750518568694965769259528770602883586811026390013149833170706493689765057724953620839193766184738205255178004882813228440911833429830935626883752658418835954539009725814688340548452192630146750667501300432086815260485237189598867532640347187322721190289619563953495334767811777605774814363247300811137976693309160761816665292105705644260578869121592014516372883101761774604257103061887381635747112705051756504886115071653828295444788569125962429058122912037601032889596599511011193569017560661559876549724837919259216937584902246826007474080429866939031779079358525539710606910120567219120607249750737826532843064886362637428076519170817495068934647520546368946230608061503577418453351107179279014077531073683890613823331680068788525656005362257931538942897385597361815970405734613396698493913305450336951879595421208719944863788633133068241203034523694487955339581457423784131674501023345775356728840357161294269446033661831702358123307306067581587960524456798452889393698859442822104069529623237947490372121827284086575600422896125182262563647395261034593452255799510992205107489683137983861315410073746385519194534239181418484366485135113591334377673012094280223694853932855581456405961050216842135524490934806069710621655592738739306508974023599775799086757124164397472495341564181984560232601474453262624468352757952226532600299132193333866861679788057653677460101781859585361278507935692030994619930143421346338866370347331770795858824615763881383716824275564894497192441338838420234845788508618048338929129662655035302850838138506515267721323577842030122338252236938226564708389130949121949078070311600171755855899882831752823497696799753120073584136026277711192516671001390205564552028918012631211684805675584591896060942360852914035624169545620490363406211013562957030794244196653535199459990840353884769245927166409098969488693719149952770132233546165241631791397471662246177067478920067404883532945213130560128748420435942758629937486759050926328364434119357926854534825301501643052806095296276979153096037446789971846014388869365654377710260895884287545779495813729048134850714219321192766113585371205585831307580912046620510457707543149406304962643901770833891100075003579821586072359059067959393542500126914942690301073648155728640403155819647230861600124095443642199101603930429486781652287152007293381557991295310496922099078595877814636967430962745500142409474103231904884427508195242529324635530045377284026539515459321227115849635649051607071049432996784793879521811730301366204184327653595195952210481832833152231034835842646544179392563732687649355074144558648883011244634295118825096048518390543716154803424832959353335454805157337105104884088391134575404040790578139781491503023796731705909438413628698871454236808800018452487868298518769222506576097053031617970937118010907992678427224728538288772430400123034801190919433117015625753301601910261349031546911711642599868548658587708015709162868279113300308127302687748672672678195107430360631022153569087226723228650219875391225196144960350068156707914549995659558280366271411870767471982379120612655429832509062548896900251631974169836980899569876601919891986077782697695179769067854668814787122902332064790950206049780805613459094830747363817900934936164860351362850041526372866237797123374547484591912590988358050142802627829045873282994487519413240972145272058134347146544673763548994224614381861402229444178256132716949540127800266279898293502989490608274782757570016963886917608100699913419489658315780273996277824631827569450888303398013428094719556398872970464600898998750391868257272541555794370406057547308512278221244373980821718972055661487032386916413213780053755118492501705568773746675061648548831559005567358102410536099942154401293992731400044330134284995237488045984125176361410498449339271547370300852994022832976383695983987338607916926438406718048252777867449503825601300009654551622527742993822307822752968380263553238106081532230605955186738920049006882143888691865289707434646237927857388829200583067513771817602361428351421168667685137577330182878343605757533491967496938268331304420576934032634612768125484405553194921145581438385473869985071649956491398798869043634804519956582338112358964230750152026063885799803738306850258575740565225022015132975730857566943836911790402649727279788471378111454125254882224326527501949133493962012056857347259847742610648909529656647681268513770190384342140623842819855943533111649245260311880067230410123525867031586757081019753738839628454964866354812035568196385028372052992192906518466317559136032024568985355784437366717072328947113067690095363755263162684133523852840374688672311732343573190261010228944128433911560668127944074158182807711976676758219183526628218200822881741444785365027450880943658640867020714089008588411650537059571702779247131225237311397816189356951954386785631534765033574220798478136291809990751949868942978143555118508158697612152062578089745067576456666223312817679492757019572986623237910541519409627522122496435379974740135928784011244366839376915203109657932428007162441123817434358258555622702454825761038929337911255605107074477157621783114675970796683804666887450081703268568549197105805926659702126009649750193539147242235274081271824811694605377222805026158540102452286672760328397139617170154781767078822300173528643194932425083987241014223198005246584933493858315295045631153792001858169166106348060177603606904872548665134696767713014929500267427903606924998846900998982862756534583263656839108196177072153346065738217409421532888873114989832941026753843057800351360289026737368478963113731688565576929250763387540009827335444318100903093726887385305778018498574223696321896768477871118643113758928463374351972138775349978701325228555750602839812008137818866903922871845833174377441351734655705440051526400620741335566794830039764385736014543882257689607257306630483476364214629574681152246844953661988089356232968481193999968173010414065678857307748906028249221820961430660064931459702908054030853399498534234733438026068917364181078702787514915376955255864796823445024622944309802292006071456540831560652594376303499945440135808492082452494774620269918689868646739745446340554709279670780959142164433551138461062709136229521793546997035034839089486102513993716649251988633701763808183933872061775376057007045778582464814255367891053885260110211794170815600128009180706686482168208806165235380320487292143604382429707436751214366497819856284506850871891405817017725925720543228987709231116188330251604257036117522705470729548647894612282539764165363282928682944593172876088256605345524915016373419089412175975055865219993884418675807587983180762719346941572433882346528152962389064492528818978059729189684138480674376269778165180827506384729527258426998073350737989246661904679070800672398739241483201584158236312150223051119483853102951724842630461278374223710566443189170891995563962143001593532804362680955343790765780962848426345219765801658169394967720739971450935009122040137049836634250818201777732505285937211912825658870424609927118327432887228150717851869106535020245663659530443669401503074761871630067144722945619119772609114238008528782932945591063464128390435231501251324464147407683080663355965711438018640337929620342071862124697864295190156683317899492229806434079914314130603561763141211639045967104150464525378417462111453586661279622862016704168653884641758618647887737883339884014732717522753546154872091942974246215466777473178874034474242694307319546968881628844657909740404240564382854499235262107735291743466680510380016856251437812853324796957464756614852346234970544990693189715979235220351212149300142615266457789677906191840413124735843909304169503558087482009407251729253306631803353860102899863375070333238761838676222461892452561054930852326430050872938725281444092714374952208308719967556935054689379518093374879631611627982167405725366999840725832729338920167972411019960559140689420096358816690917840833099978633584343051146437734141741356939502360101802146197984164746761868169466922665556344803733715761618800253973124533474132515132219103735691306051408302455923542977064327970402476205396677089180281369642036193834463672494092717881804788511776935465171759656254745617380597553645878299500423726800148761583325660550395267514315796479953375488059185493050395127671990979939994121111003442722569274386131737637543941487013060443549395587146014421865937434465927199460574337782331808775433077738119724168537026648706037617060390540726721072029567329271077207616970881534121433741818124800696402608721043355854468995894084473824370291213626479458966248202924606096637387803777315660678944071836364398906716608915208693641100177537830911838922155867774396132462747546736599400440735728868869673534562791023093283498488509284743172466372836235024791371880459572532674238952856184459751899651423800670804759078664241366283832762073719523482668402559648791122942114401592355785997249478874354658681733278383752709495735501245155439025935265162036315661188119341988014026965386567462222605509275856597735604813705151596421890734891373811999665767935707138896944930485449459829081206505963936669378964111796880275698865631387027031938678636529216587639967359905564098133731621870335577260866134554543285664193809651408690890933469610813932145806747650453357221711464500201922614529328234884219555108419657176404258265537445746413978565916353949874804999714402183819199890428980989433846456597512386023662241201384280470687432069408631319334909741432387945884884605176436913698652092533807855188911887073065498124246612512726317267189882220836469916411835722740619567365773767086220307972660127629471156819665176091474983986868471051135693575780749036786093824481546858563178369205897737262916226445461233728921780094235609584990324594244403973441964586636166078819616736518670992021376966399171870529415617767944586820420005919639013782921765802838330955108436290654502337376142101921695010401491156717136800076402626460805911927508674009677556263104143436668209867219286077499307766585869870051606650246566048101107369617062170894714602315622961841032915872417730313061783417686323438691462028761766741364229816580310013550419497696040243919134695907189386452828395226100923723299786771925161358492532349532742291094435494572163564603575240668606547627474698023707725726179962701562871151824592457517149818847780206356425305904163645128638720029376913876622914137406432326929658206461440830716466802247190305053033026009975986065023450757547076571996958654023243764558046453349750050334732929235192164444888628111205743557937491926565482565850280737240808142512714136864475122003721378681683010541715071283474819449895460505332721469828626232204653787357371000440936367297721528491760039266936629811145283914679167956765982265655778725875956137496916408459250865917095813411468610085299045058343522819087586912403648186032013825831069473323560669695914422777871967569372023041030060468421209820817917480677303879113180187702883674614923440816070675598381924330378114674489455786960766500699005886364958230343646029790617372954254074186788672420936932593609370682121906325516751224741234876033134498384980620653050034242059500239168128413132508858238081331777848172252473686355400650865739714257533463837952892566464018236978681308441104684358431865060919838259758022237327607504773817040966688853903815412710883094282431159541425384817316553478338857036722186971843596151995109843578410843160563482892110733796936466431472536382569347055362007457702880359145988320489441553087801135519880330569402483668609697995837093771767208500597345209176471492082669489061676981342418501850204026500793797315195854788726133533271029602348951699301575487270671872014970413164051571807716074009812861106260198516216362701884429072479909557049769056146919776716512923291315479169194895954840124543020243474984797205933118424233298463275191411204538451823312349840618225654361144552801282710244147047549577262241122367496527224702076380504922632984882519940623683448737118035091362910409610982794320414187684574419091885362034820501581793934110041612310099512990241431388697015492031804007089895247214462046902206326232503687846962374097896719326571895432362298571210664761732305308044366588977137532345543603936422101948248335167235336667026985868894821753381366531152416198143350811334806612958425571478450435713289961930871045648276209373414237356535121544318612181784930244762040282318197116302269657031218939095082150002482401378776565297411242143328659636625707699121377135935536175583666668299624138796554461940267145180158364410344126694171267295376112598159759346731921071452118454918270023639479253173646905154717220776972101704787428204971753293997606742197450761703823211484184200785812626263980719788291472154982127437093292094726336670130919188108649322548546897829235139223713731603610813895972121021209215456749034920716540453154649639691911831276824585141239892543795380612361057345948713896966423554175945546771378403268190936921797638001645347634886605947339591498099958865210810642120583756816735542578361197396794190872844489242545698783555575090596784964356711845744800795340545465851013117138714296322616637865645925869260254064557843918359037431660044803935359485862490024802942401370754881062073689601914430619206993231154436819904973521281731699940004783225613020635663819842213645427656482346594934667671552861184374047539283827048788722068887234188510211299795174255622163195907389529240402403682358383169169614846362410885819601300620090882207133449928287397651922800565274945432080372158388482393282588743324474911041543987014797267247818877981075932392059102237959648152493788747610591257497470316346931060250259553432553948333914200545763151705579861960700646284881337809379679094097556762869470686421874630661341411355217213285450890966705313274594434344977515888801606785282584494221870935889347925367570156126012228422183164111861035818792243405744484775942177774203535089478046792102184640744756754626307471870602312049294969485348707917459068037790457612403368798542599743203751191621172032064254571936464657897245977832950347901896922575578376430457294188986054606363840266327596531857144710195406771081505179534329690520858245246898584213892126399493747207080943028786563053941073686812737659234634726443761718093706331913359765691178793246603455365888842336327902202955370156528422488319520589932278821297276312497624873731327759199919004849397639215019842520503913151760501839743070456367521145355661385060165420667765817486641949825601783088487839136315662573214793555878106757973358208653201586973569880188510146988070547199283179526711268874374773836499025192453192936786130844220047396535675029795343973731286604076280403803681176824693675016987463162292637834744170306704453375523119128279184826076627219581185133254664314630151392149542041214749479496362860653173959803148378510589177239127288171074531168339024971682308131950933213765833376741535895791564655239639941728031228538973469636482021430791459267602781033077382947713300236231898004402819676811446512535234607266673617603052831150245551780733494534632451460184949764120014660856129344924871619469558485087136789110888428502876430876816639821102103455173496579974736457028312024438254745384294695005322011532515625910733921811128116971837486640285235868807322566624204681232973887039984255602835638752299488204567992393030987831546840436894162859076364653281411026378753420327465740939951584622232807808605198089041364916057195754143601629335144420490223479368534413130977834588244321715153719853532663790074674866556228903553171630631055485576052956192022782627747414536953008750853785888131155916638835097173662606140993315600594102553768513880385865496520325330568818244217945578927358356332149104532538462322548639662931135280063420933702070763733315300717671985211946253491406886628455346452256036348919673657511346745066395872379622033422776561674771742357706091215502899117137961682888348928259496907618233468475366321076788591894536633097308772809325204358035369743517054400874706653824968928492810995829525089797825709194632431290419339945502750511641545347419455035501815724970047584760036824371330549945358344610864856252332235947244854120811147904007599629275241377399834395231441426643777669787236487080459412974355933955293014126822669923642303453752258368351869087497730488374355430673618729586492380524825529247786711757088709250576377844802419067760392573262814166360707367577861189267914504746595499063304384263563496366753153546808135253807776902613902210269028510149400463583738312709617446476491637768486834423935686225510066335274618346902469872941034069236755224316004772340426690577701025844563812649070425734281769611764575193310450827113860107081009850943565189407580601451009590320672402309441777354303507433830546308648251250973606951132284619164636146174424917707300636328005865539814234180485898744813287253591219933698091939519188947315862896686433761550485419605320853481267800844439242228816538821068624681038383874768845633928527563974547327300589017638603809777684286031794867527811860485187365383997789825418374812136927083962565891430443868990439622760852678681821888618109275036126862933594934069057494044320258787573958742514781638606002286219125476004599653511716885205388388191978442010577124273420131646373122922819515340884487041186005906643743424641327583721412805971377189056263600529776631346107938100046114650499117725680971472990120770351404450911918689275900753891421491034947781058155239827478134464449604837184071904737923451282949960779629054270198679122409112634008324834748374116668568723194310857198640613046183682593339877123961415937681292542079247421290154875867887184818829963575228194777348424846793463815170299006129086260234210459874308480314529805137528136351919220860409849735057083810622266446274970202767370082653049561856383801643630965686853845054989665082772231568839510824763118991411487165869593511289095825207354430607211106071964423220096127795244931137176724630246254986047336726191679908824352606058196231256683595184231765323042298294861590868077572953164615535356050250334678344403319370804048165388791343091733988363069285173013285187760532571956814979937096665171559979750078287765131240155561064659617463279160764486777077143020350176203436338368987947316558689510495448772630397995902133254775080755490018551300373306240634952050130120221496966936256463077727058721366793117292898190569178462415373070432600510177026887078310171713587509401404910515874071078389245354094327421997100662299745797659192993636748535729657103178621027120756851232592033816377041639811365192588986063500706377001624623969384273180735282953015017266346222217353517029910989632751685177185280935766215541730625380851331690427666814779206087240548038744314019673645768813802306159003782518887490636467137205772373107729143470365998383262700972225645361976505644082779579479532619013157902941335372614641587137219867275634327050670016969007887896240391145041873822057195041695495787041310870057757291624811818591638979385264721142223847182732767158578101529326576568111146313596421342440290371421210463990277682688443493381394955485789505078503272710372025900034216071099531764934207029417662601669007271125595901196423961517882256417411299128468208588249869066849150706962214125978864168772471451050513958685191453745214757832684537046336729447763077586803231769062694806001546460558800888926021181319434054785566819203572201364751808748282325055611259089864877251624037856898426312768460375401087273796522021974244863619222063059466619112413647600224739781555664792737343164097698544531894106703328972908455460385974414177607418908001582058856616764422326505987194889522041556454548283833975474322694378551515311310911420946465042172996986573476286202633490239058152282233504058363523594593410552627346702025196422900415700866252455890622834192112273621946855914314012773535936181550402493779739278831754762299382705373336621474219363945999610388516073088726675256197298573796963828522903875241405337558434029836867437755332911062154049116605080741963270352298190138558849661276875685762144853197155188987779380205357172678450740016899508405650476523792644336320838243255999524558957011160796454532711876983803222391146091242971014127994086232711904911040131633233436663082705980017549494833182243637135443766077440984473677753064237706484032101674526413770652500249406226793642887817982885832483162388527772113309460297323980838696027524075349054110125684684518125039757132535361628985754667928397614136098493834529414070034290827125021644135061120000114906764503748397410783597696067359902709263097543699133995985299361185909685894330737171478181702823884072997215816840235237539153076448209324281273831983711862322461626657520599476859677059755092182453107519130453160935241913670138219599988807486986745085399643567372460225904682222254440459834195983976475838079422622071830315696103307934195673237425153461596766398465559835349870591892144352906330345853818190326074286305707827571469812711753796324363906019983754238971147316982204220434389567829499572594126596510984257193165070952990771954546346064237586907290395360876525070884452062683682633007787653679690948559963969709331485620459634450548076935955505258027994660805052857200240580103909504824480678482848495600668531167697864366858072562934013990435749214661382400568593589570686425963837365976029018820956350541118209355963056065601972145324454817713058442420829590349683616352658527721458354261245877596663744728496366095306215021972410610115900846508697021742313562308893387210642473409968028935156327876904760700244704703338792494387738396504623326505836593735952779244115063311925247282181704782800283086589405372532309332730208061984245579355243616130712971687727448974573149744593656965122913224605633049647854742955903432161799656583789902986492852980653985652653481545433686758834163399153145428341053686472676833782022070982055133724278358259783111056388614554772319851256066569060514486066454445231787319707559336938866048032697163017812170701097496417691798916200465460358869956870936167198208857036207207357042131528546052709385342375214190476698977156268868730006893043396511263063612546157904123997044517188271054518107441579789769679258046033339274462907325040748952662643343189341675672775248920907950976992741942850624017361940044439587733240393308558194921902797593380036177773776519945913099385080303607209146367401190951694378554239064794675366363554700895209899344962356916481558133688129225542915829919614778493959488535253027999029853618809102119434319014297566343393622160392439459352386718240300154060489068069293012118366527254685648036937570526179679069394874859545700329095548704340286567541188709808218134988626416260610084333470754536943887104056154432181462290267843909840393870926359444099320789592444406200329140535410150607144007455886678916895007693218991488375156799974486465256843074932314972327668033531148144335806694014810316767088540222847425058206204852681427142573842477569246606864048090751298363973250061545533963890816771456962574683995362662614696985624466573375951533250909059451515614400652917492366745525057278959906376144299378641207672250249125869201416585769997367725020350792991173790153757257328789979658695733791309886855227882450982252254272829539563818957067130974672558987252804624122697704809065590482208236017904294980730362889471310773225180931677568443564946920596515944446181647064314704451906819818135185173805592626380599952641873426333671157196412045585521915787620192232750615907475827229228393980166063996385244502584635386783880153938830022978217389898723473214779464476278336529615679950466028490243879384349365625166256639574231625884583196763071893198569745377298478269255386309418372198213194975855603716359125608649690731502869783624381803619350879554048315159880997659585108021815225138305161457950062599888817498262284590695217631731064706882245799122852838216445333341981749446481316731274818458383340198884486898181982584547989012119793556203804195073110385989903649871725182986954045706817120230865435989664885871141843590676806632721291567303398148139265845242365423505277873893403427829053803679362166301371989269105094082586130975562201194562436999426392899978118568737116508649003492253757662608674526384787510073170361280555922067112960262220371096871961700290861243774818602348228335537839655792735070628152136537788681034196813882570549093488691678692267754966083510735012464407879456211433551816258942788863360485959652151999132596660004723837659645786870122434162559956196983058958633039188070614658290019819889180729598480358889564074188027646899900783580394187297216913964136251718953646271583664996979735112324538211273996602254369637903710545837375889472550176939021868420102833568104405128541806023050227617637953834989802470616950429979619190444703321438991380369042918107785565970502936434885283143224817602111671418240623585150757495061980011450034922288298437369455639037411673627017690436325460339403460378070536402511468131762940501440370787393544946092357535266114600838364036557085626295559365226978657504747190926033952679894929774308609295521960027053036289455677827561643371720023552182144799899229391503552343877856486637366646320996776454711194083094106858848089840495700839951880235601831000810498029317800799485703517695085183876223653870510082681020698702265471986302197723563262865352345573161192488346629260419827670036377899160783017136508949268508973080234608680887677085282262327648340493537548265342241256435235435881648442171018023854071161996470014476636053463425563471473340491405410832271436881934488546398306940702556935318075723832765859238615348036610303243014675630740124622397259540207877583044135688397265982890955731011785245978840611333844725265470205704798689996553110244708927707529944378716909117910493264671582430363123600658489086721348695056463888581099800233094273034548696977339070449495621869362344747500652186774170256479877023158143088392454637875504045067399512615190800260190118766316020220387193530786623537255895366345786794050852104991906110779457929285460005647771643214250984273967290322123193366173783898433110878485696475115885250863788435467911148314722417342288217406895343203481025428499337469365033406219153160287579505144047963325830072742728319457065173779401352687203748170118174566643039848684491285069470007945018915316069728991881345004101584452266566681438954034327924264012399469173769729761497755388993466106597420690037634487297282017455451023012510784742791133800189860884082188998337683456534617419284794162588952420913703925574360871089907723255112985939278047851534859551202390498504958462047539943976248991992182082538370751635463761680854665655809401645023951033660459275450259532135985465302335028842836434969771474773103330264073662973417966908810883187143304050731300559428935078817450910678090656309848583724784683821597147521726634151699074414782043205677468446900408860626146413738049985525211335068603891155475053940875610339108509182742796448208161067218195064501297677328802176148491813507732178922365685022793706436781390374477704086847719493351878927451569251302326053776373548907227164978366545301058848355253495071226256024356422470879412189567578893005918202374405950798292296694837467262563151560650915725927114843856538640025552680300013278467220115134405764971055254573804672801655003857795701894154687385621896725198951076468242065119261866889294701808178435617733448487960214062619275436621790369442456082830413418028409450244788500324496448800569762065620480474445029031521389722059350563658282092893770865506097434973554368829531657168568727029111223556002493526029299852464670603761662980531737034659392580321988432410598940899803949166694701220455133012386360630945973007293881621424017959987493120120372519470052029147884681753684239659492253790685201478446774489825190106137431718114336001610292943067560362594872605969438098428139591725687422621957578061802963370946417081434251749528584621581010887567776925508465833289966331621407951655813498768139873540840650707818742391593841948000312742416942300612353136621119401960837841042368679585166550680209103075376047962836336369308069176287789774301253560310107417374768052890015802138014209263022369434619780791525169378193419824500884659758608962096253738777472350025441307417987549565083313362924366313213965135819771399722519856144344531332166713996363288232147996894392135637817339512884610631699515307378093616220836883271760437482835578951627044910549764129063823237926581355412482399929272089368906269062934099573682376470025131687796865199542073172739945318087770610029177169316385529579883129360736927331404517138590344076933383104378831060870841227686650066679804711522653248651374483193056134394547524949664969746815701623592530295325195645199147796195927164122565602562920057736200249562681498497481198836465526331102556780487786898218009258089076208459357962392100134071919190666549099684030995233930144818597533106861372188020924778760472486717398991035811776319688907850131315634458082977423856118446997339868078868379436540507515332468326235450650646956001857344523729717754608533458123719672949134198669119041833897832966332079820758482607006256302745253057916427725309593725908029949316961578355059519910236982831374848848784003832137892278225338147976997119139513434941271975642607131432128475746676933708485546481663204135355233197449530600153855257460852825118691546268386980200713659597536581456867427801495973740815511077141359773223896177456143115489547045776591847505470164748798532095156229635430872566777133057374439483757688548774006752514664418031650888173158028620255572397710006956491801226810727517629876872127177327252807609091804332930342885924927156232690784378422049175430054873939066080286278679807537277940256041058235031282869405571986691081721211103368115614927550602666364093658203590759449262947659289377990238180789039966099394627002889103836716492676859562868675509183138559356688612645655465486831937225526710684725148580691393688376306204547988762656814567815402199621497253109250814848665194491160459554856267678464329054846284150435862982075412763261834753001516489803102278817867503955286845268985082915455382939047548933748970281336244861113941065318870920603744887332410905084574217349901298467177749521478962094685731303165088316742655442742866645146559427671749468997429300675301524778206250682918465408064916272821592339893210413469962763988492530914845740399470497547472130690289909603692072677785127145903321689510115400491149968775593727556174299970173496068177040091033012968920265336474219246781827740700975792177295223512529915497016947416625115363647045918576504131833416017471990040740390905956035652175227676913453025997366266622037142518147331272639563819768036793539781062380431325568589927189983973979290149068989065538886934325012195039966922343917689568330642729383726963362215112382846343025317437508226120812795450803102391898477784343611590213015144238242847326926922031646836133308088168920674827376897809777100059191296012298266273736129099436492917055241247175806582558667889614195769361446794421838620700413680137279172491235879545105314041089106749446974754805977028124685544998951442802145609184407284068488012750869054560320515582893292291688129076283001219987518495697111350895439458681594341702314559268754319470581833455564024760960487203003394535800492400102927160447692228744057289517061224502546464478093903181520658265445925849146628759842347913749944960682387363615517400510409612885817997453919056962643546329047162327001463690296095927034650270210428568759864728857528808104832860673164146731289228069558519159820595633166158300364387323752374576271475007198750694091671036120150043839116929079518756270305338026910676980764826623782502976741508647893575827878462640908653330215425906654753167823734214866715796310579898908533086026552216345377511387422807365862423193779705850160262704499229509282338147623984111099127050579657935425642978483892043529150818390366414223938799309015491295790054758403339382126279627335677091780634944984543033205255240318102715725766833090822712001063733008076105655588190961240781881962976904744489222691423361337745271508540349405855991507957509156802695024579835684113956404131192298864649017428970126286014602438045217350071059606393756471569172224861443657580203218127087434434624523713792004880966362074049669765077854187557709363640974630660043299975466567528568991783102497834249172628421903497238834512399002867717657915431824994027333187746341755333279235051973993721610200924265242359201428732409754733512042283102260913556265132621551524855633943295026257439795871149370451953300497639515010147480631613699315834425767821353914344595441978960299823943765806535612792645775746438224548277415456789731418538250359952767558540720286985255775312992803653008287687200707696100616969004912787085067201156482873129948427241958480090432892906657747071727561686589028272898013160320959360174953017986169041254486914227679959743212008433022382099420568086552908652555934350000154088887368624231805191485645467670254885575548254830540648840636111948701002010426660508715797000220745733911272399475848448676835831208427409260513445386376702393703823480278652742472138235722097303200486452280703898449633041095008237521793013736694085488690390236795370485089632481558261016996234583825132385746708115714501899448077035707225135245079728684934239369827368817946020263461818326422228847758786030931932545772166190290755707427544494390412201954135889530876201257040414738142490155094725320517899337652270589101589317057056642336124336894849038815400568580086271411859739898177224172966298320277631510371952227641907086589130212270834452288986232109335003602462785555184742683994310726946299252131659006769151790792612889859336812229417507375630347005948615070597964966288231650493229130597184671226818609374710564924673335968126006051455437536290369333857845952099593595009233763178296227157709319254014649928186501784204721299776648919324452733384823552059372366090417639692929288766493539108360129491649334831902636755958787052145263331164248903827200123525222116695583725027022455203601853672860810461367421299386125247634316403584556764986624601370615382164080202890020828446254034319934912923872836141424433309383102803885281216367436721120590777435448971222246878057134312681296919996282096977364644591125885349721340317028679866813430203730168542091016786042651717608257722250651395252874473088594578027312992789757749682907362681687660637077075162586781746826341360773807536003635561566428425148403521645609157485012113282225214153928575105997011087875851496127807736965581412645558648954558594331222693831817202326298618018340755396964950705011817026272769652979306780546533834035538474453862289624934155009287884437887265734306412547600022674280529620036967739599131686595386402610939418311431571089817306255473757142682820224480984544762444242519086561257466474763745341215965425499788456402695719968781485444640510940625787402958407844415393584101863596992356109492167877891712423753836841707676129834261413058512628743459448699297726647577980913199978048383734265123785436103221842124668238082481639876324554848304056223070755244517801697077820937803861167768690002395492105592317033265508214919731268550574507845185491129030851941393065935099123816159727540539646324194483344245644642309061154498153964623271526355044534213317920674141642979572142476031809257751718494465480237414299021481934568310502797605797752400518588789331369677456809287250040889635601124936547397342663725162975559375172929693872717478815974114717549653921717240449931945662336382158493291182593052378945997996221853092636823328837406490839289653165224208961483684957074573137705520359195058353045548159790115607606082874653246831562153577397247752492809273477590894675146469035362190554218994053515737094848014351898810482112456133304798508848089359583395551599602049523178736903580198316508187229480585476390127963464958630257973636168309499750392363477317801315496328095451430896864240815440489203458031466399058793881771090162795686877937670912593106527403750419676274074581143151050821666014973907149031345513001641142500839326246538352138795284075185120276595358279368598951836102543440371678799739678114219056143351666997442267374115940026944571577576684104738667243201516074831779322319289432932841194447917312377492964803251591405780881569401158720297722291551115417665501768943214773601031108882111021526466127832319644069053191001399416365271674133305149647401106611071245809834443386672069810217340928691988983220556872782296751509356113654140245320465225636675069107347495800496217094275851210448053093386650120223071885928919029310187531189472880985262370194146823558095904256285430359175203815316624035413561915982926498117055927383755344675971756475998784344127906494758146659751104329882412155125259390853366482346147253870101399416567574116592331714720740395489627094615975670604444994324401075955002141976719579140554661734418720585752876268442713024276069966701581011716486835437056794917223756597410032163060280212406823759251702778503298170305265860762169433203499307946637904825940793367236846804100695466326260072129220394880027288665118502648259741858168501882496457123816954977013861935672291958756824196131576698734462018331993274322287083944197347096036344942997061022870951599971324119692061012884585871347047475815573333095298654776721294567274200408517769380889485486053812924712204170045409486772965613128440224634175158555961010290384562045074333080863539843944311410078130450647482445673881163090658658861109492302724713118280880376469788135114505652595064209206619407434476311101915863263624666580041426456015320175456440663522906165544475075788132235686604477650989846031366237485650526422437915934224637449841824054443683180924524084271292423974901962045272635717522310269240381151941631293999787192289945258375207777297945251430356508135366946793280535975736922970771146704640255579282238318898563399539858536807679215499282558418734881193001017673835565311579800576996214878874461696584953645359914988350827896623752975648253037783083928974831091012400656053950969160442304333041181910588042598726431140892544658894878828728308427720001739309207122255849080442223721878228979773526905352047609804230535280427937394852469131597975895491183823249249180999374333442755748570414872678933157174412063770827913659163330670302552730776732056286303327888606455069288534206607360399041385938337560477545465341846654413174528610240297664738582474556669367319244671322409293927620544227801584528390582015740444585435339036248893670353285534649263335927610880799651667574727016141258968514914329545583834296896636007986188807917171288577742908234477136019333041778264463127348672256971517541243838155991295499445034352179944481343231067535706806509591224702939214723814370677181900352979359871642520140273379537839372168955605465293410520097994822203380878339834486572422930533451641577242414600244508474730707933184067757863983402333181218031503233558112823602746376699474076025223286452950982083643250014755093417745180028346997452301220911481683728859216130402962090925123402192323690599947721082204956041107657034686567118700290792096608804507003814040989063541106663517981867331316529863996692596865829213591657455640364337655216176361639827703677917039479556169421568337368105900630032250904080623080840978319987927024510072850898593150335136587323525026753234314307826891970697902156791333490277409085959716804539324285892783962145102472055136245285783564911724800168438278596554234306640528984724625853614727047766540424885154784690122180443264917466901734569689646075907046949552728813788795648867114281091547085415449159600863468737017499187816480046691267325610152742076310029963076956674063644177791000443193662708163152193463673280603817357409933351719445839042865836607401505763737036661385661228378734408277593229113814542016263960160863108536194128361450998783320877531797018301031644870856991629704029058289989089421180250374826800847959598529116763707198498451853132316132508582467394675171588562963522286523196706292123999193423463921051579078843120950760740637776699989873712308631597164186591787009334289506996509833269988606447532323920670069490674430336114939215837578638587300547993426877092787219964786253044407433786826803980778604959458673548897675181755229641663622578836435174277003175939225067758350124020725974565159234722260060573678966933740933404591881400088103282652439880023097513919057071570734994573963824084929072776700569382288746020304571417417547752230071960803838631826217154144399059766338091920443684189047594858679644006682171810357188686228475875950092589942876276646141607644800111495833033472117075342299299090615116041982977044594414258364553668789433588150976059504495837165627555419537445917476687648128272694961126565410836846265376474638266623269373729235790504169137874242224272855376927126817496883193838004868823116709280503531636040884978697692544861861960128490564765109857695561445057129061008764254064074073403622707980715082741041212336338359194359595431209518703804414092676996965092075554688741603879352268772466580159834539290063314614618619399894085377626229382481808004333539617994887278144051109449148378894295076127387717468315474219950815864049493100332560668176427853673134317172547304169548647588156938812035652985738170391530947854650800184740088660993129532411202594189648399492761381391190675483113648717766324890177172776257268428898737553229016873549937014283353040816662383071443331940078436496994762059522086472070486828827739998787197970563594368693267684351115337394025007355714161399199029197888065095000214045242058941007165504540719303332793955789559686055352332255410533365137115826558754488594439681464607582610707494308586247023067733799761975165607549472449730364777945795600922627246162014710802130348662810384514787200656619800046716828267878246847019267061204970870954960168384396671996496587987755841434515050579979585146748883103754685386951303949931700624472057863628364519797559365501967155930818319119016484069719865192636319529482954880982762969234579436771477248021713339572339465361855303645762423280601458397568755552642149696996132234277451367052446384051724805286411878691745236166914620617252086138853573384341336813456096930249932091501293410359299354456774186060254113757888692074879064556522010667159793605012965351413953820243954525366324874158586187457886523313716359052576922964493304997710064967194979458437676881621234834231879403154267995734793905190169459244668218540631395520096265657873171622279514441484908507703501005500814203151604499731342284789526486069905278140167494571053031302532986388462859165629878212079898305172237527833243547754708941471628465325839210091768786408718431995184004688193771862835678224015218303905425904129283614004873936285157746195143486946635031215134416737726534446116302324955034298153644428613877355947524533448096700809181485929819669214825521838250582067141462112062704557473779602465818930502435829156775885704060758953139114671018162488958947617795263443009304726897772712274536729467153727270048090816789016342278967865713070758416268537650185751093704793207595123551539638559924060288069945849748785547916028680253373100328778146350640371746421643298886149084980988663364773165540579477289927290117907821486999969665418528045937389127656544675236715357858104346720098036773198828286154758559962568477459827422931094252715626477021232127793961080483393551478875898388813994778730759950406011773258480159109436397488499915854294099387463716714171271321363525809972533648981801687132559167869863615448073734187169188819055840890826731522246635857502777913723480610842553739960436103651912636200800525658015655434443896258658460358763008266529671561068914327489582698155377232515683292551738555664040513739176087195450896180395495897038274502791465555683323910808910374913560202220010817354599183723429266516342155234061482833310405518237710419506762663281265605973496059977056190024511296936240213254758464958397820809034102425685315316404344577658797839150466512080082612035748592102044787770479551137065742087083363126515043821046862268743085847954272085783158342709697204743269080830564541929545877692086849942810070420360297566250736355014408811120716247908825671244551811127789066761108364205835189657872489260470416359978517701379982904654601873243656570062211115873330399381060135306750185832601430992267963042591410332152940252746609662438120792551019381501878462874633948116457462751856512053383764494428136201587302331025745734446770172830077265521561760895342952389415354980442454224245010263898247000264137154018933659251682921974977911679709091542116352445259234831262474516753749783123759860826917626785154730225212466492005970101239975811730369884630539373404853538847889020806924191598409731245585580797327905518975126915644332696413202460746425672216473272096830319925181469766192418497901569643048442708622206527085216793132311347040872467383120961629079421024637268748504077758063746625593222450559995475880096176349630144568089735113755873014405381691374810181509184833383263034724650205832275648019849237548504090741668545058297896771016186499225254051317977062357346441237250702843029159565807362462506389488955537967466431668628398313786016653357081160679551254793838778806472571115465704321734575613493594510008302255919193234282259892673948085103757273592410072376374050842901305170848767762176799090856494445659883490101839504505660736275944775107971376586071166899244988912111764782064477317873860325592017833137606060632622784297523121715579214669027108259411381085003357116968401078185538579062612180236505982735016551654493307389495049774732931420134620390244887791112191794716040794753243012954158477540183161646405628909506648925226460864643411470500904740391390140247565087197197948634100204563848593087904961733479266981428475777149131015095572191965365827935482963544153048840205908001170190016028788409944518896072419142073633146774827450097997246401804600560286677201364039564700489423210078675648067765930038824933992665849386475935953045915352099805181966541628284484041779457703733183100675966531048918071046018775728856097724428817718109208793904029289471444974161943915362676428538456977977721891912088761626490526899134419125793679085977563677543080653003409000080513434277273209175163764818738476845319526547668536220919027572449392439894271784794672990808749953824175255673014726422460233884107588111242839980212122457041276733071996261613919802264188475470976486985571880633127307817790063910921800337258249542683228645056494832288059121955238902467541235467854954985233132965736816366859834013692316534358597760029109976020752974309641256136350160761815774980083533928438787122094875821116444741286653664408182489072610355817926724550358431725798976817416192028439198851524177203966035705486454654626807732425065234641594676468041505649209434427068703888171216908946404638749964455903772520030303823558190347869068958259271986145497480967748580038862435508306732028959700713306035935894819101027660765667245472071136709195489636016580740222375120160830662466463958725151740866698764331948885596049569913719691344861402400542590065529842388061705118152737528136339775992672237766006646710041829223131531211307852643709293270893513689330044090780544519468184116345969579055927626632737312430054215655762962306904369743413351291366073832043688866795364709455907403556399034085970195022160691875994484508340579747542759103971916440659540482996232232753854971294349073545924757372028399625705383216615624070067950410986546616850425087604076009317771138490613641014744731892792722830799424389880355648253118295297436982611054116234045612637279309462492004819776611793264704014472625627412809017690624291981069865622888749337192558981725563090061425204416730263526094808997811672684179789319652967753551824350016873099711337022588759146659764934613235723944384400771699478930605345499620502038097975549004876712077868022267017241985165069655614111584461929233719620285303091473842149034979901182101255944754408350416064828264583164338488505826050884407266892980436997709260716131327497651843098822207522846404621096596941956484495398354751966620812921220901506341551553977999670776015212332796463626378008959952806679403851638617632415544514596125319291289533043814893786438614254794542430114119809267683800689711404423877924179958115732974249426415839102829063533356542358780484328402269043416079671249583681756153700872654790724693566839855465345102170568324610187953791406680065373568148812930971638388726338855859194031942137637617985159508583890637408081871200848120866525801213509789859544935512461537794571285399690758000339253775581150474322381736449701723217047813617600611857028824206761049658904248384841112465990640141394519157638684941541891320006806755099838326276746749958901849938183050015525129434766988853473782743826494534662942639104404776850875985027936909059379738487553344427388226159036883075171719441117545525381546207404164853810559168179294056139602913932506965393199823525896634436252763204077134776484804715170359008886878099100108494638294639109129972988181852865420692211209698026181439806483664054530919542920699967035795687005226178342740250653621535815789098973574844810656374610894922601635602657058034375770364734105302473853249306357093817396396497703900172689964977157267596896531024631999619442709527943618553884255835823592527901685485825835344947817769860713289045664455733960683316150352854688189639680533730213410280142226633694843733827206809647815398846743436484838105629236351029798101887970698815942656440655884128376095328331945668469214382306587045192948399989775318604557714448095557189763083109544580775435684905444964716023340274094414738932021784584691563368536873501405774825820351785095039451959385003128951096986036316264186923178849499376769343395932552245154763060203784836177256092562658961867287417185231609195710191139847201086221123077958237716146038280826076532096639190917926637319178609400665249298102868163361192073218421694720638857500405882899854108808013279395364151514115249904325079340298246182141868464103525089988070640804706189376219422550050563728181361025374267056735061897450520808167598028021090493307851818048451417410197277498912288857706167754453121093964782116305758083440328366370768921720237457910893611380769584279001186730422800343085467884309023121610504883571469526917928876070394379069753098255386374287648451655879524268684501133994086071667008409967487187143200723320999491791161373815969445020867328080140657242356322664790585354631451582333041092109009505076313942525113800631470740657383923975595710133711777920683640908032508285572821716519939605097156890128627029657263713505508399274131993516028351931405635205815297043382200466603728841582322014950222465452148284425994466838510375866280899049523458983749321331052798293054176833173514516516720160682467805943599663743883790698593732376073775722933473782449666857661466472379401913383712571437487212494852654233069589584625924118130985946664256725994734376918845433292358718165622491889145226534272780443653027946988394479014408216280369717228585045921925697692238459536157875002837642713695212164543812516742826329716048597954717708322560634245899931684974287109883624339284131476584736405593330272763790368298730442864926173770292296594847095949077080773325328355514799547193926857819302636177788655347785214179490384805306040313509302223686409949693835801069233565364111598267226757692881252055806799665302481852484626995224980151336147579254588590736577179348070766147321070406647170841249163929639419071080168403395483815622432030679276269055403424868690188885649493425541453599090938867880697217908383822732205432457262153751423755192444771391907827242887127972504061215482430202298147268311655069486978385072062818116715244721320297288597340259887668787796728145464879932258609602084678058769826808356291117259934130274583722581066787898094621554621689959200058066570571690607596205704563376121186017186862919288903652424116422255566334102300888136483612254002645308087669381298183404442661362483287583722187220589464301407825246352605506834748865237103786606982159331893252904455454686040570230538580829644154216744776972135297749169967661161870208394645973926756933117526864292184826263622733907828896660867285613083120299793408128056936971111527168396587817840970140338855720740175221519254854976959758497345141444600161677776992093968708272840704434274847137276000734587148811722090562368635862389450621032154583437310891091536524551111665636579083528415713047865750655505598762873276565435632791621889153692751442062301781929524231475883217534202507040268397586287859940011583733688992993586716216576703501389643404173250464023486168283590881026291465505948246853120170587026568622069542392868886832495433541219712643369485294922782820246542523955324617652810669474561796596269158533903667397156405464671757924578720333195575713870429450328879004898903873471015765959712081817304870760245335962672026017149333097717499202714312172463695373340313445750206776981348176865348182968819632419260771407903657384122843791172378123945376512660558962822152077606524350907564891866189092148312973200060481920073831715941109254467740421615402617971492530495402445234442611244730051785248664450381630169686517068690655744546018255310031260786154702819582522363091473212438227966916571724960155342745503446851587704315998060526505955621159846831855377197849616159662961823596948856079617433121053012547369981247650497773124025198867741699795972522004074655583926532525692560794003810893451230619490364812647383921118068897556303106307601397626438342450528741944673318128273506933228859401169666814694706247750841336556722808399345391594262808860053669182545961931409510550720716345744023595556782661718470576915696745458086503970041095800327224429973610897048578151699744281054639272011271840455174497277829164686250786952021739494325703857357172355666288592120581996475480174724053300688523818654193705904956238253773537048957098945854187972389983770606914482269142802970796380721012020487588862495390778791831573912249834078602301720070113961788094064727006323350274620563466350896904671062188921571405561498687070425394967020040717496003468953706601155428592058090385311888588832273808625294336377616728566448684095385041980687976713930220978092245425495475974846768739241829568401131384751430834456329632878371149084581177736217596528402702999055433641044714977882094925708613950176032123555582548045711858337981920203180254200615489465839384312846202685463326376928558525124787194989568345731280366375896566693514902331502402793918255474745526453435982233018262879008325326463220525990076820787251599448124584944759842128471255889256542526880261086724613731032997231746800279395069348092017473380546421583182445813694168922195564925232967663464830527693478324347976360460105004631175251145792378311320799902612442051774718516289275591070108246984782048317904768362719321572223917611192066215314046027706388910266123224923218453894642318541499774971756820481948881640805247010391980636020066358378278185114503041372941808765204751187832471755509500649552595343554554590385435104106600207907941687279896158727786805128507871071003091676047478189984269217876169319735885515170410615108767057069537764308719505677373926651979904373732715452879805757524231213423327328346476295327328434393415103570553302897432962973153357423106840727878304322221766849552504298409640854150338925559486732184826373461139017542329406255612435656698755731136739465536172378635861073966533371065187303116142585647327025420127491557946670433199067941296325620427144400994339389451800532619087587824690760557151458668123934346545151271689464108302803574470378698748496494271448801746821443605153436979839086585394790912408314125764839823901129111576723348903001468060389767767704237877968279192075821497866751301592993175502962411809459262021341543575881365838161593646276393548862300295196581268018663909363286104523556617542885605703808498419828794575409113421955852693626393932267448631102708409382952188521058469668614629907662231015632967965955996485490802166805722473800372606639680277128951658149842521542016456453825128891659412722117539712354868019448516350837968393309262978916069263497142506718448993737452681595595169226725057222165411003417489593337391324926520154390636119758874795674925745276081618780745151440194361814903265276747110744233918635542656433006009454660313464338165303749650677144527382471822089086409632690466093275053435143830501745113615246469565484051321817052897916937323311915912758985735581397623686913823938565811047284991337872750916694738023963414194190577918173677216556395600359454421196452887648136761440994685664626487102249602724550227356056462641808635238016444221350476672469684751715679735741109812270515504928380411010268132177827227151258422094743766534333693942836975818353955206871741020927074531514848469105500885085940910237480518518148116044727443688468514937741589577711204570287762521607934564192754638286751701470985611524471706474194427758962412645777217425040039270765262009948542135335236452405853560665144814738027185700083564641660197200649892826379168918517903354576513350696116911804734267361870298864312712419743534820181429046003866740532569833964676423736280418518372027247343664806750539851376811966356089977357878244220756193832195821323370484894587819996451410930908284055974704529098993114219568525002703091708487647698206810950601777722222088499737540567921400701634422503064961950026934666079751326953683167007600947285803044305185745018316981017732585830768692094865316023259352827022210153694336153071972158610392779240537375812150553505669416943610627471753385177667135381069736080921818878560047357496435157924128536619445534602795851522611133112493158627044862130554362958487734579120984315315672313255100201649749161249211732054745604012464568340905287855401899551040376175527634554518819738755207576502380299296535253182466075760539417092858545494709337485216641995130903126194502855576342576268020680967144618517363605059484662367009605012331392622823731093729596848327172414588109966745254759621500527597572266228045520374013154636423392287425352402609341250512902652518138876276540708109089979645844165905576267369578187370002108528324860154286348084098324867797287439587400501850592328992016094681555313529401230072682473557358724418138542398881447804221880351124476520975120435006261973387754898415116079764801574584114843183675693611451456538668534762216072183128560612440877297441368065230911963100803463646223569844430834818663689710434454769717001840519257934063369064544093010666492396270716121369770303599234312294595410087242298440101706588502712532244689518562944055545833812419144177803064915312204688518307235784488810879434537570550468636364838225759564141833249463174473027047114583611348891347634674731164734330106834321478313175431020321462894454095847455282684081908031876742433861687678754863111235560955427361690668989219013687181343702186988095981481954931199323962016391306658447947990011815670881200686365947933399737447682435745415303194158556096026476180801991271585654109181606178031996283099624165702460609008716345588245733308482300518974397198891627898043576556043770664490194309420133206304529522749364352754730592604260454002179506937217440748320667836975380676521846402728821996156471961440106502120364034633015089168906713900118433209973397316061354914778678413503805092768599274512352104394763347923498709241628181485457998344004692649710967320230443048746387867120595310071132588796288271897405677031263900965427298489943247259501702310301430854644265794392544651208971732640093296497799385103369180117697755586390171140858866345666479816091299366591196281606959270068584532733440108862755243020533837039481136743166199690788698071251491912263721799301319111392495551018960613332031944347858403389773701438568325036313765779925235182786230225446065332914147947527026975308374327144339261115918884362393905380563953954598212401676159612340629955158471305679781426352960989219444835600935209406839863966797558342263956219968845734560006000284213650985251661832771810250632806443392082682224042248875513597441372395740762903375184889183480510759299241864889390302466738245204936038427229994009067769524955401122882891462838332552762886125576749700931014097644287573286311316453105491549635928810864604684749707569774353258687263096961685013640259916507632781552104909400816051635663324736323796895470675052562021272108421185131530435360440181012270219251673184915862768133931263932360835050553178749243965636139310012588844930786879100057901302751418765169566764236076149350057155536405133556971870766126279536278512900164187133918367274947344732887879289480111202645065867395855929393854467776949919682217094092117645952958557352451586534677278132295046026303849150216361684947612573936658124675205191434860191134049058481280153557731484142442067902102135299853119363455340422695450786485912466174329277124387140747432287930751408421190236071494422602333968608732893298486752606642039746518190602435452463741057730895327580288123467449885428337199334575973028541742993251505524546025567329035223496888094396856975179267869815196497935717773025690441821120688179804882604555100724534098429728074922250047697371241142217878491904054269926357670435534849436997208346353961946096334348946538024950381342188503006579159260898869757734456270221549063797468811679009091572797214527790416890419632691060122230846442383047189184505580052065606600015460337544596010967204105843064561083244932302097627597125489808387055029882507507115781109501045803553846329977344792089461143827558815141236169561748647497980808145538770781012773346605207656429236486680799986303074398623719166015291821112729255512075761049767366967237364269850583702493624704478661175527612786209461043788572749142806260690300238350914350135042004014980728809298569531266264203954665009569169200183763988888365797977684405171900112229099400114135635268953090048304355686477377324744546919109471672911536305963486913222652620810385234752938692058739395951176124747565190985210749426512273235135752002604076076690104729389438406271372123566993398454214145742799279181147171231802394100995167101731313306072892050359572512218038668853318054830785112875102745209537769768612732618152837617129928261727679465290580207140212129365619218041697558395922273582422945191804095682754144057451376189259026011718612334388185245471923860099461656097823752968387395273175271255166427265822341224320175636095576530784841174608478054967130187835256459025601305317478541261471881199908573024294221023887520386003843220855095185466292472939102409535304386281424818322139718304279456439065338644954937043244046296045276131032093840343702613620047577370761477726006617459567452085408054511945885290462270913978788951817212690597881451681523651255103384950531679530011142190371617358077159839025251466789636682057029248763948981242142939212688157065943460753843057338035447474555881518032430304111404203263195206184219572598948877834954789993903159446071852097179326354803778113501976153436244965538216797871134924795852592409372220884453061492622291472567017625992356257054064030861059284997708841641506355384008323968790162339970809317694999114528242097753533013057438699135233352505887317257659660731325809003398382967447528388643369912320492669590132430698056702993487362298013153000810046877540281366027265594677051164850147219360210859434749990554349158392869439655266039019390965989459304528535714244419967063586915056632647116453918387635401992221880475733662020903572795930238991776009269151177882138346160399708951711606582673361080189581452339456029033963170552115532417127305185599117029705881929708436395322312901911170649933682939260753402651385403536735824274502100809296854125570797169329032375746027651120863096289111299021574304691279263560654467746473482222885546655070079427561828183838746912075934154453398746400636801428317928227709453084086044054388469757392361614983338611169520400046988873887287611017609571658665407344344404986057975658716854835500264245137971522683195403950897487507677348109956276452521820721153465753318590747636307084400759795250350393018407561867657339458945561146952274057313013825713225544725502246364535178626282206264738924405309670881482818654886414349373987530574263293554853057830456122043023426001314193236884502766781596558672998927440127958852524265930973858685665426084300060331563847281228456167601678513664988626245288518665956405387865814039684957649577405266405348666786573609147964187817359187595972267745240966312385410765564225700037043387453089328568162674023092036645547568549706289397875531963831657765780575456634882584899953902654696181872374626160050568001456581661281648663511636035515005324115016815548239504316738643159392657158814306327499965319150474355010688523429639787579672314923654508679131137488586591340264976448608888228673237631883543100604019071362576895921052500325679806671612691194995958037311819665514132043594537083036730874818496985341670014411716473447440234732267266931883844154086709027232524693451153528445239151058275311496288103874953325001441571614050687550290752507568031089685138080790749472297509144096671855277153535990271756272200182619438835392978545013351276831639858304085968049437422436691470428968844568215515670031389581896164223069586518862577086494238761496752278472153462685613621585977333173411749462416300226246345586146420054825960277377620094812342618009419856898505836626495763280208909975780110030822031889168770551063036886068064483546008941482336360507114727621951178260631924924679000148798652063127700096536704554781608526878837220774303281881766028470328317506451548341542449482070123843961646848090693775081250417700952879044912153195419850774152747902012708714948047649901240013372421383952972906425303080179515200962063457897671880945753571683455351334542744396007086331191068333355145635143869465076136064522293641061475386625144680456846134999544262858253576499500569743069159764667452680367405981020542101280521325305618352072544361928325557610381844516776077949273174018339498452797598592844483236219670223465632594610741971542593698173301933312578791944806733610857473963233962216162971920600338466942302726977045779375701824156608675749955353260237660192198110074056892486945450255253041915912218244450645068500423992868344954973509022887417855611577356445735198337594476601431059829156213891452445064722790369410715128730623965694180410611613376183113904667154343899952468796805310238435861368937232371705055552457589191980530610976444230294526073901435699371363217220920467271918393744371565268436918015292906241361669726071115137349097268419023769893080898306404123096365642678037238498439827115543946799199497360926541694196255883733970905308356389406081443985078170416613343362995083897302908161492855379538941364703630876868584107180124733159598011517610321660453372188380938348915601893520459070847298946103136842169454935827055276006464765193974367174837083627827455591175432341789867138466320676640805827712577277483895287720855424904677859351748927073392436562741396809603226728579937178940939483068026428228608108752445683811211912564573234478461712487160806249657874055068901942509263607686945474936812619093248372696710368078977521649339318259508070527519291168924054182159773749098123166564691878994592668010625031239627283270678355986571924559819999803779878424111309470796142472932139203526548230298104769894047082215244235016892586019365591825066473346577525517144039658215430680806304729862623810293032433654743649438407675485443588535320012764437997134531843466224925214474959192919873174305415212160049726712624683284737205700769351936247312975305155687251693071418474515617515703902304553628110943437126922884940764571440412803077914904561941689474493626736019943354299453580166096068164913716524123549116899408998958711083797733681890383914974102346675707325035598974905489223719477822513254167068154467763975119036202256711559029985596764366510257013770954980265702181986262457733187234735921899186453838053687930659460553787492567023155994110323370999351154175328431804864620442638293315569308375798001281276070452612018460580570865651000082883071852560377365971440908755324923953431066833828547268073530511104592877572058848035298959335080292701052552631513954455800228007736564951295372336130444542631326576980817682433117087907542000651184571806373577904791910784456533599873181321664161136639285765937096688075728693332036478361219705101563562330691152283230444997795756808481031311048944806648452255726750337350741618912438271839881360180434676274433290833871776353400322942927044452468106596136375631725998143514005259486891206030066153156340031518989659147517738767355990709272562788102811056146818180950679265725496196039761553343106289212843096223830931506575149456427933177245063133026023752563107043534940744454324250755415348272939863945264567651941138418343781954366502780896549777829127018679641764755742949380105609307126162480091669141222857139317071237836019453669761504063215416249898557915542916836919381307766079711822324621509913842847449257620578733084208331802498419636680730047341505738603172589028442164344050753520082901149297358798255906153519813742807963972495957066391940723996448499523663186425112507829934958235696212800963802413764198646774539783651179273413471102039793206967363948709039516409501946879961457989822166121397988969004732826371965203314339946072341945418352359266769599949534609737522089023586877340006093484104046219125023670117885953492854671195485581361702173841915132625666238513434703741162750291319608520787216598003710890178531967803822199511187354232180445771790858661209724266967809081477659283852133520267019775107215736518296596187911092810292369256727921729846640230525639171009926638692803116210932312386473767963817299129417763064364422010143387070880989473968342020791887604310816298105817612778711863929605822677395559296910960735736820073038805457102120579929041860535705486310479849379046269527198544642342161470482186130765114070386526497575255120565438051327980898110507500422166779449908639661529172757648915024607842516358317849523217045206547735078123160044753702130084623864152076345073749176436150336889552852424625289277518757849567884538285239459142809423948048382080478299769755729271559137675039913323312222241500000228485482752143250208995291392243615396212460692661458283795740201491352473410547016277909285293070039493294978488489850602282422755111632479250417833523130621455188257550123887437254033858746634353027783632479216151829061074805798511384328253129493421593358381844483441502014074971458107240386445743092469682174899888616841328280312713921296937101723954546121854970260543010710114967676425676480276698598261279380578800019759252284622062082206986280965292051707804459246781364653131014478847987832963094842518987909954403937898715536978200651297017451426230673598447444990560641639738015164890759683809308831518465879278617073592973160825288380611973028265443455119248435548789390562635986146912826545447897601997854462672608122232314833659351644518123819504387855562570038086000870013965057462997680187344049206619807144773600663113536887891455282978330918800010517950718694687055191784489105952254154515497900936969664283573381560385110960482976808226779037813331512962834818001675523511757714953056636786632657259997467412993566528632302493288569195529945249646681615318917980947699157385758082781407028742284651146142696437578729070030982375043602291834759017472242767143914982945947691031807320998983318028473031462334731425259613927508946361370043189145973716637024286552486858996479089349923754076236475339592809406555063461016311626674669907930174499538365211133936454442862742193099991776746822014597385437013044035476107351752104539164624739336309366673447076585525813764419015451217489980782743478903366569844984331293853293018541406827376509122697423296652022227411087852419436236731545917910817869968277860858298160684790804976600410462040703830921078233589209660416118391368372362702226601190124628846836318632578242950331536091846032299094651031781250683498546602313385279276671279862576977937901179058238911160265838176892727468869707665531478848501011900312674052350828843701738525474243754120464000614639202060628959300882485089291707104505728090978236775489877915830494025714875330671032820373646335132440030193969190624715887709458156375855560293710247681664088239970509870737207938355580386733940797991271922927344746679776547348427129913137735780034825901674724053440022597201148192740629307014135029503631811313966473830429002807872725560814547715642447136324027503698849038132874984760230940397523620893481385541908080392979287559511153687654380750007354443769146408437169120555072788912434877264957141114738634356694546399977517690495255008129232724419876295956293642255582916221480071783513019933169323805393310360655778489258140731838645743693151791241664514554673007831456075025349164326546635478071804072085086026251451678820421695234021022463992597832266282728321999586969187279940463266057206533358832518553388038807578083647322180090803082512698222064638524610082513637325673271022735470572539520085311123368432835932210640086203885755816781017576332519503530511570749256931567017527768393018859046648318794012975803477488053915270470013366915820897481354295687205397523603001355652588976625060963189142307749665607717844364155508401145559250937285651073243222504197696757907436837169223326801751688341176044729251950615946939692131794598034794968062724332266568798995591958458494752489992789456959670798429947244996764278441953612092717874612607179152615177373990394987325147774432419145052425928479928534430705645311661235316014176280293373879135867562506550798995937778014940658272203353418805439439391410392522764633596170399677981580772397946056742424055173335773875203051007319199125224852935883011745454927910776699743027442770505440843006016744729436275559367830373171384584997716922810026737537208310292226360220860229387862924239932560694092524166668347027557326370292543380040903403378572187895017699790027879361250717541425879772810024283814426417509596752537617783410031232286356418878231051389663568263094389854747676398198314892964574174061568456913848850254482047102208295933327162843123598719489940481115873743597476143397315676866365343555802504832261489860074101306205758767689700850161660466731091906256992832953515164086350042267318924674753141325531472454199364040994795797914656879927056871658752313860356745529490374805187552000915109001505376116790821070099907031786159927961385656438524749614887647467985178081318765589632217458471835881125220403161013629808960581199089960367167394761882306233943750583590704588319807604866180949711363737766985623071592316611069061088149400545464007198594915356839345807415378099399970922598099037410765686120903234302242281075123511699518352626504093167299984400307373139904673111186656186466523414636532964379819589001130139461693955388393928816747216641477879759013115707874538067377514483756737925862879404741042994417743897575253580794872711377826510789467529817410264766607716443361007306067256855639284426588389733810234200426877483435680411211047453723908584147998073422768740267856703101970510508437851455654695058116061562375826267192256436963981946184301164818453113697241724638942835098049634498228753998736871088673380026651141219511941711879031093509477103944658592933919952410836077249732435112977340165849467849508612571640943143879676536791661305809392406532803426773064302203435649378490600427144108997747538166544913584693211346486184942382400496272792922091316466501846301733728509195768584565326077638994224364021869670443545913695313248576418430569899706546004878938749824640975807852754186699458186916720052332722281513597523148863772107266276622615893409377707766119009769412600160906327990246684447703777220364574289233370086825062730088189114196943735995807711117591459417421536323021702645923128750601342980439957650835934719454282620144784574982068156921299309290154042414631449419048777050883396640566293639424800189705492584656545069556947286228891523663231085279793577216168439459415623706047965045872787782013675092693701547419064863225927029130981237787097829409000894961206669967520339639440573700659848912693100167339874501158601533686383380026934317300545217720304208340870387408548016421721181390719307248918807679553992188906781209640132805202210171039741807761724868246211755529520604513467805037439477844913760333978205472354190608199370246239897625950768581147083530909244121794512777143993295287873206538002551624540639251519426425121829725860789013154177827728964194912373999887986047780858000014896009162814044488046601373891932286514926337464048135656054300283182415044681590113261075495129605951765320959524675171483006356464812905739769877117391987729359785125678627214391531881206616098570225875519064597246282947425571316563211321949838074209363824711897822593890395334885642453026130997985852777479023066868527658750191400647646589676090540109071700291618180635589916573632494528467417622926076793535816893255636851616409097828390746492016722425004069185492765733435700220260091302567961908417287070032286621588733987029053702025337547958161017292355064497460259540121141422462915101093705593237851749227775950913047393331188182871433240004550563514479031960701543784739714218269530453852053857645881931272787166612186926674286602709916746269928905562018251931573576898970955391818724742893830838900323661118162744177393361631474165247468033025951328823184813206326944938566372730292403602366723694588896975898655486217407609869035883681101183767371832888752284147083189136037301436116580720145175063357950529671289885916731761540724198722191807349391787303818324072651831322961394902673786710438977412444970981732922974775591807421938959606145389276997219105365582046947228088628903396704893087143706415899940236167965773691503808944335217543134171307454236427534611493781365384457574782212562426443528821224413161962232618526222647080912655230154863381961406925348449987865390842671865029319218289680381580726645138211915281243373512404587443972546340939192466855238776654820354436686242921509272553216775607269042958194762804059715192304447016652252888336582067297777095260447254842204055203486500897108406571865793232925594702746512444116680307554742526877249595986700997350188893761675446162811709624307425953433693712235763543934212685002100404341770318740724655735517201786529660941538904004549699437293182824665979343431179122834930680968273066636285150254139542163594720960743541673662527835567410370417198096849907258724397656427045009956375579604502372675818057409168078196090242336770992631950217166080997360924739810077985061248008226880739927074612615420915783450584808635284496137384092746487021050292052654340858618898020516632318086284006857046370755233214922551155044747866397267854695237258583531057590580181438934019119461599405966181906457377056024588422605090932075116621637177190298226618504542982421023049256908897913433902981107135701064973140633173429370145522882448003025993026352909867891864380426880852196549330164441065716631248462553390311564070625568824695078312182556830238927694779475240860740334761099264285476670903757015561047496116263856169729271042804281025183569950206019726183191916348171753733588661809005141405619593224071065868634239053188373587735319559515377384415119386440958923156643699993974977111597204665865861222979906416091298108529648114146605187630929993644278212205817141960033344074092648247416746924673583828967984956223440364947588943216072357869805815917862625430294734735466210388529844681759759670750754932527517769170865779728191105673097296488454376265175973691717820153869511259331571052382989427185801531157679660574491770248489558041423368530898454787321386600847993137600568702763376840089150961751485074987864750891700881617919650249581774629173898331726032187971272021207249862381973736944966935293870982227762946647810012952625330038339454323539301681546617018965648557965746356986913579713574543017371214376692704450065301359235572796332971414868125762841713235687458453595149352478581290828482911626537368187056641874707458955519678044309095363859588916059996275384417484852242826785687110715016801853822221658766874164539212235965458973162216275583466641982957597635380255531528521821843980752456515792278519297567246740795042654692625046532617687939462598204545639549480939816354728448003274660704245621797256490774481250466639604863778019423387877969080746561989122599790413064245654851808232973642392020432957328388935153967585262764518213932536799466000396007049024244485469866611786534536499192991912636626379843350762800151436078685595413267034940580137167805024129517050117790513444044207977738231540002140614696051301671537715941347252584692676552965455755217370778065035853477387606809514258164735675733981120959172693059916101093037810881810521180229677649223464160393811763315562376919254566378587120448541792288896867139503058208862258657533725618613136309210427609590623203782996654071492353834485191377236519897370568984659161994755633156685530358821662411081466053977709740187379647034065773687395603056844197747756342779508445463048038331836956982262399356518976848784372902507105356811057985867316326204756214108643203406635416462512816228508641494294181274422803243984545987190685478856624227024046494055513403362897783811402241977848079136827932357971846776845553039072173336410666587277018313494653411648401380785769221865073708857385320404340931364052473276140532323483694887746926775823228919473635121814035887951950985863583158081226003240167409708095064231462118096195345203812862115855247364249652957835058397927464581526487856469995890859498686619790437606656105282095378626291179344089761363737570251779959751542750456498746847019244454947588611641524575677283141739370279722056954083754889878478700024002669715217616915045447212345065332141977056191935284482300076066414805621704341150170456197278771125117406419590545494429121021260007358033101824493327311209342562491071361297351692162527250682376638319995593915768063617171444971298128199103998249338617963240257877477297585507511154926974581180519043946365130697761417722871628101848556181277966912185064328217833927116668559603729139996384327132310031241821613598409719557549942860513239960638057777289128051073293149609582920336350613063818731860633514123617159824554735917964680048065614834598137335684521691701606555076576851595314127724954139210240073332253517951102393326807702398151331409898100525602527451433107321999188407021012025920788411121976638044183666951855860552990428591796528986800457524838498296361034394128750043776691963966368166063264138825733343265282659016330463152307489224422196934039973844790763867439245163811318264619445517496856429340426599249034505717182448797502570240430773263555474533197821741619344623541170264986681612205193771524236339114317812440679123023253235038858349688782187722219651079210992876345037667690992511878099363356068967333725209719260496182688801545764826386331081704512781466959182568237767740679750138450531789537311335291890397066546739662035964333599284146565506184952130684295081168486575285823179219694596448346534733630537838588522184286706470965221695302985818089966808590345047362912843547993048220369166095261182775478972010861334526911291074009807443622477313490790866791033941523099692135190650317417485277738141224937850234592958163620441267651383479032496832835377364474593065735631286498205166062071737887868596557408011621611549231877902633154765067561317405469309816648521059574984758561029296938083645489513148454804727136534907297973764826786051875167680924298772174268615655788153737374419700009073705269356337852562839457916372481595487127694597109867241721853015590933476792993948155196319243417983554383018279096698231974829202891317327092944454738347857052709532863204615812559224216775212388406053765222748686584608082663951709364063437274753407042179287590006201522476677293874041955315249036653416661954851327129558415549452808318099263780306195539349133760737723588035503674085055802860130052446341473133156987214222222945314492098878394811458158798969910702493146018813853450753138991215191304603356180157022410499971764303750482725864045357514103355528788086390765352157245426457892538056064514568821233346621002074805656390560066580717311553545171017574259183010836901777904215070139163097695549162024403705988444437946471684665494644307671875624206299475049559482426355396374568290096436276146212150537173565215287736532140570850396237972185372516961738401246788209224727037500289754580060470239383188106800266077537167869481356634533762219566983280184498191429470486516569530684157130916456096277288431393526473673201947782759521293249813158269430550309696429296711067414819627973243415247305262273203750316201501596136547655311825165940338509220997095043256994338394499377204806730674268728073700642450550503583996410525036673642094868594899594286852323637243081712833262870999537577506599771048885208890444565014909845615694971590734315218766974719267954179423482286516054615129244411696858671892296969520367071211315114036109745579922960800801003250935188952900055501138401831903823001809015883320962127881043010310151727007675866793153819231400102288893875072796613132225721466190631582765025581698762514886787068137217605987467610529199928655758132013248803542732524551740032439786499258251902662909845041264288551830330051894065923670018979599077264342276479784038422356389415153900523262026903432166579555982362452783277947106672175050701733424678816520004691891036218055806566958259344260848591423057594719515391590047065767719353072660289915346447130458731096753161780294276090617435845502247857511661227142252985641610321858939119622437467409578759064229103193469505904126081329979731143830513435221007937826880353735842363774905728983157633278733403448365344939416430650465397119010224362014350507556248897395191626504807425772178350498250418308753925452277168066453375356372746477467203406669946629503340205474156390785078356255657615575872254511305789315920196018168382208268719150712332323443147003059030199455561736563315736650873217065815266735827205482572824259515731880070850707408829973251757957650699941531902607654769324404116616874496105799529477169051643650414098126310051531752320233177154742869742263958473929256240016561796031218092761043210686272155559370274847310765566531509589335346841967498916557716603312417653107653086053731521079888254356539945373981796607168259029662123669928685794092129036509179016278226395124149437183852384675542962922999578995876917949340090570953944788169839865702747014060878040154654360157987853092234788431880630636101441743348552987638083196088957612006053568353171901102967502021851728333568121363633586089440704266184352073351316908641888224922259173632512902340606094142034102048114146765257716280377440607241735212303678120240216655256798027286165184509917601908171308543846976241910318433395072337252342663572995175857335528591782730758770860644108320172470588746953284550672164041792209159073490151660989081658046213962889258798622186528584557797255280223496660137120625087983430217946301346234346237035135880882640473986421087433332708988544816974197527192722340200286019819485681151813627465227694450667799238512668741939083844649780843514064770970763902100324430238354558020735162027377492077481433973826120485660991245457027619112987747919906659299177122849859802956474187187441630646184170938907284225484115937591917698061728804978066116502356822230678555544953776431113864903218302589007469763108132061585917940294151101961108676199895511925502437172662295772103994308407674097065574962280523246951195982727969281964793384786259208801936848514277504267110741725679896118595940465811190837794533938070626283288382023116572457707064065171555442324525786596648426607050869896672775448074585787281363209502042046553484330829160957117165175715570848362837118778159972080365168685186600281226068104243476209855431862339334261918925229482025228167997735483475421204793769109119865560415917494397900287130348536304162479573687212644716132735800441001391128561775785164315425830885474083309485853631730734751070296965135214004839768905603199924440471880109666995553924053162127941226572941078177776806703582360351608804771982065917565685636777812861173885035217496091047665663087489754644120633266826604888351898757371377641915585906828757285809759441698436828491232095083133175320335978883270719627256433681510412769502671086485127763025923734462975803161889835577589549795940928938892893084819398447142324751669063561937221234549556130798335351083578218200613260618226655737621010138489175797597488045074625134928192923533202389893258369065473772495987901103096091594881850772444979896754870987356655918493572936997185351329214655978290337324563961337590907913210678465209837549096397057121380748704528770602317296097959850783034256502864259388701570450685997014421359932426068984287482725569168835078505720429534020493480977225028298934325991403127518103903546671114028889457525506390145887007028677278710499487212524801073539255891699252814147908251038944463940459649175280165464798715172264789988851335559775451768286271994996204599901688169653766126777939721085374350924035289521153318701765092507576583552413534246993593541125985059492290830203131593423447174131087778999522829729875228449833951562682501889140408384950982955327405346914028347548354962122968289402876018852766301883063578823820964705296279675316535266174425354496986958167180346787704578174171188613304205005850889216557070220363431190907311874327738229195657664971635382837944484682162896272336529806294334745766033925168341309392922131413004617661847349384894528582686480009899041420915983269346419041131956196248493073839286177326552084231016877279550320701188295648486222179435137106824064336173473720704940093108232504915044048646822361915675044156209703551616235518147631715181340055296008090357171970219924492152628386596513015386900578065076059106655148158863811907485439286581918404654216957980427685331792953594122285966770137538653719571890041484640074994346655614556223558074637599774273628247580347268956135369448910712974316273713164790794171603093069086274101989624185182795459623978584769134053953902748993504390066095106697618252347923680945275014860239061160391654749531936757721544128775191453299111862835208849385868573254856960770111882554927041540532131642010823808266387780788111455598246326815078050220950580050216143133502460586510211403004156955831163864457737536660671250533774689189821260513598974042429040416197711918844059660864075701999848936277925384782329504878974354771414799407150889484882347841204336625507150716896047918106784460958704374614649522294349737798021583543336957448442108822283655423883808005126763126720000712658744858077266932340613315252887516043804828952753277933355848516508756032810130055082745745623270805398524074228156315687057605913737236411124917969636556780119757284599679603128234958469667107841139658154250293308181916581324032714025759640648331239314848791078705785874475988445476637369149388913083683344834276747209024717784189381358381954240226775226446373195314281229702501636791682990835462227384245189910786457200665086460628698059533452927463615170329828084540007783031957988191263673635039188287660614113446963422060464365629906583581297270302088525794507433162999069136046017001169293953194235961481757635773665166849154473618196998129777035560524782370593141112343740911478274039887749764632337578025595403056930406413131667610308193598087759493486316645065582827842524875169631730568439236286687058381344443635771781785802263685468990185167951536376139542683818748314799412576830403546233689230261341805204571260594411984004794944971485285192251590114278483940290615694088512892800079227676377720428721099511634396423619768607382355432184278949755053852293385182250765103405303496555980860519510949033691447565572049987024871280442920839396452902280969045791171968586654208195872705478715527678161493213491487536535782421053237942661318457228534685527382156925228627623836653685556283565547783719479048250061573393950291482580650346745545421411285562310560937262276950816516638344727604955058802907202597377470609326775859381334661920095862073849034611796475007185166618324587115355355600972580838641067506284518193537992646878761096757610453125822411501892372842543872141514948041316693112390752089212332073514835888615520610140530036122605156376624645401671860069681128207158480431176929194292967882531214456518538308656933139215176449923368003169346782851832973324466375607089253231681355548079288740130471929246911483080551161467411648444069032166577372733064960359474253228860987315332645264336861161984378144099139242832396624351933875505709902118795891441274506286917516931897853560818855355455689478535697318516797768886414879394586838562517587226701919883415790936276264597690293403864560957706318727374061242642687402944503926506835988398088512377537934697536107689213738195374175477469081679361975612735460574084158629769509570364568425029725788043414534788927551026289703054582526073619799758581134195221175980610113677683510636892129153295636352278695161655339053112249247697751936197915694277694749466229335382691725671881284907978546410313073941258954117217131755851336651935875343086461371931923746282829445433470612258878553575743745451425219209659342507590857149949315039680176067137406655755811877342515200052328139746163901706877757601617653080529737654335488973645059654163629953839142482205081719431776672192742424283278186510569228280331849471361390368613701721771697684624113564483819726537822532622613113064370823354045711528475239405420436303776844403386089143302693272128955558915985931751775015496713623922060291506120651367059207183394557955274630580868189740322767800912358367157127065866157826097912991794933562557291704061867066015596136935614615482820350963697444934644233678051127977380855424689803403549982255539790041655976349130695204311220131014948150392684516360621508941360913076882238658114135833125182939898650494575346561035164215679416554602717966456539195014502801681064337481069017338687702459611320785234087326516447284051117575909394526468564503611380605803172076977383639108060188519659178981289094537101900677286343133516380445914670304524608934796076306832673235665516905114132482059122896310692703964586693774231692239584337996738781700267460894901650623348660797733920032808849569203761255503231353814098189464583467946983854146503266645667585245058890329475914867802166457776042670840345058350048661634696047467859144847673742669647497986869208287400320526204510188858844868018780141054340307195447568942994571491806621365147157911566414433363890246236025175144470799048454638685818774267823445274204290201702406928360545645168282450345045038729251255025365748547591609279971163071180152059794179074423592974157915692235274626303530152593496955585893652670759348712284882948773008133294380162010599781826092529490111526210046596975043907576891266649904550451322946589703904974057864379879751875910510023702412958999069374736158819788030266421433643561818628807860430617771329953760709287936529009481411417939286522506513530629528884557049141154128604531168256672277403051020019465863984415937290836478131414269051311867623749943861831886401779484070714867798224724836121971828628400387961193407075762368107100186792182981238266860750638061578507659053932199092938077410000185018678919946058664066907570676230501377930294745389081872405106202139661875283199419169393989753506299339718978248417418441127048884526404217060823895454806343795901262744897236493930393205505976962821926939537922829825293073422912276731825806492880650543678585348638841359431813901182969780963865759435234178003625861317605643423317018117006273895701541808169532177873086988900613046742269311643581474147005644117206487095390826898656069898285524694797549128694069524151449567695486468532490832077512241219135363279197233249270991490426235417401024416036075826888710774321499646900182781020429180294440804231239019834771950264414136939872002084109195358168722165091413213461773726445483821045481408535814424313940069724710976666062913090035944787205957468759110995807268311549298070781738380533148106228052059033644330973077727149038824746107559170018783227068356181279173511912978644222830877851021629893892225683743220051975306824738690789753551663655364446758166373390119680081739227369121457881342878442024724451590087733589730679905851174563332065006026988501902225537516358473193171062301685190462236719942992047918444705771172824075452297383559735036097919969086670804709445990472886460270605894760573996562654640414180231354855065582451817696499063869010416848162212522535176740654231254171312308092754282180213791875139932675688407080870634280456070950043907044671807515398313784247056631438420932535656586469128948344739108801838794868932015687167991957155427470024709605789209353044758355906343731030049722175002208786991550263063825263286752750175897985221032563016995580545647505497796382975399693572208448579561415841985288180163205937479351739506179875483437610708972275996942891360709571424291527580858184864900701505143987855515468842344649166931978296585807266932927665636575210832081806097569747303246164846773993472267463290555242950328299560920235524476885638728923310535819803582777726619420232299307795688485743066486055929752804905484004615627173485218679798237388539913978246306891355595265745452975592829141886467692237623925904894591298159912051100008385214944659030510225344944680171006944947312827196715056586229485896307954340180188897756561906285620103088034983260199669822614771633923244094937625571100939724874436048831238146550027133450262162156973747500225683863639393295131037338432844372290684675045812318019431407758922144281399065828856519754660381949855547863707408208713003284932378083363533186546019061462736785273477406909158940307716064085822761848759164340743019497080031284784167173904116616031137880670889556695375166429038432013187159191346939509258868915072800541001494169821783935341187869566967692034096773117395506282766049593845195023262419843237076732454266131124694522422625708076971484398572655682737104459178321430474322572559024165805963365151176548179115321819054495723148997121957608268546221845840930556384498422121754076168819124143114898892730308685892574553741154674866513442553199914056157413301686857559047327528848544655728437059398858574740081283731825333402671493105165501286878142933124837143654796389154857628904378416980626385208996185893213216255858241152963016966839276424258940977185096073192088144736890903174651191123532609217228449499767009494717968569932197891406453944741177157683668905977788964564867450899486482935878601728618260475546819095273290672918777662617377220084137578784799415554218008937698904822666075060612205789832819002554677507260892433237357367901259147716889439531703950881279710295904507580234777325738595852616220188073564358715236328928983565861650428717696795252993989127889050141439819961789485528806714271868839484689041511569488393720494431400985892379628598784595138091299397129898493822983457299215862089068676916152046370870703377262759733445841307328443924709022742851878451265286967648402883073406606070664355879901225240699853851720778820449539982841801647413012674985291575411357709864141292915349698778822370368017600759978826857461827328779784078602061455319035122261390241557861656711320993071193659352031176649816476707415288760310847009470049324533143578445912833975623719733102664100205422436114456690185011818254018304593833597953763503990834623804056377906237561500710769209449038353111342842915254760770490059954355785691578842759069798251606718886017893298875929186080899134524974210038657828317780925219688037055245134280156328591965868939038245702704398668371072808589815292203721893738811894615597113529937350896846965011926643438510591722412291913968682060268400143315386266180520695779324026510732878232883151712180900775327273558381885858683564894153921604311772439576099165324465709704296803302699187171899453473509089966911494319824063651288460140096002605266418932297885571708742556477154745741185582026179162015064305621729681580361638415255104526013034607674454511923301319391139449953583540351484678427987082605680783992068613719053361115375203563752615851111079475002798638287439916912702437723776571401174651424166255349272818472433152784194891106766779312919335558470077460905912937318238769426787667915864205144604575297366688011512514012835237042902826764282896904060405917507010114502242066293985890101263136141800189779529335328864706379523482364052056541330757825796592789099312620008091745421036370229151257986083939804385426257307246128384355145747063831568348213839920431644097250430417437016805983609759414473743457111490840264215194347697163820631840593497092029308240796365607021424341223571502701194701967871038239827180287224582143586419935819616584782425313455940391569836186824028885107987864131121082555516813547312222583863141480467710372191051951487978994349861877970630166462299833927383059119945780941057097179313378779714678561444753887267396125932249048310387650484012823006500290441392292511323135933498393623909299809502628924641669489061945070134242214188783001252590583250167972016744206528084171040137032792605969485945635180552048239284290668776791866475879913428604035579024272858855599520379712989670688418862445896915804165771421102326082782479545450643895766042631389140427045881856854610219610138681240040574024440922394350512341434773053167851586308001408428310060541046569402211523305268540953551433660805282603399007664423454858350378597739541406344620243362821431058968445494848748785181309585340139309346570736421737789137526192165397900267087877176805802393316512090448199884546643230273076465993266156441494991550929060475926693422749471475608621213572091770082703423288737018250582367487519762260871875883894718869053043817022695271010125899469031764511266862975311758054824408194594750730970304142946370583427213487515594956761388143292160424382442098880822858282895135770314731200539381577800414023490366243420167277618896296994732757321469856366228445706542725903498358539553362580624751381458719972611759989377734903988336630483406096346697976836083556415121161284414016190876126837791402599766842788888716609913891163972959887405417719637003302848701882663509200571870454183577549935397060319871116898473379885301547224612442344316736798428809873366748996600221697471766080550227232872712875641694421900063733304656925577720929340548723487718618170816201320924023642337356356005066025542768062036423399006235255424693902169335147626580331449525391835010726341149843445440385508575906600343637702763413017584984797100508175608073603301221865031510661176051089813933317194217545195997071263577455205271550339351249880914128002833382589950272488202861017117466670700898895253408034292983757675541241293660300379122543953095466911684981145250714915621530937527252590379205687752694318173823249629289347445752339166100667269471465760211149922844006511579751583606582281955723750180886216212183821586930515586487559585616761432159029257785464790972971082553758959930800801279293100651046278505310579444289776813090561784588502026750624116223788176267428914934673282659113697008894378931895729498114374087393651218415953623496130928538582513680699548274220876572030139062754148778063727022916783668153032062567862566608176089426386072581762309978342417325903631494671378723095821441137973592012052061675297113927252553879044711655795781655132617879677597688338690000310650799679680398780380795603420293501152729420887928087657732790033090066311343937889039737658940696559133321051147176661545742150865018568330507123812641897741660336009152606326493647511676741455966653205891454482808507898231641935034038925754271900711615239375317004494528934162143756607722802878514876649562774143115951714955140824955264958703846651290470019245603846500292440631580346203273192840312505430452470283866991979447198532346018568387339979862801471956276008288216787255734448698299826213568129018292400747030684151355708060147437395800650490179451060320116516355782801119338150724585747923608285454177128540247781776090811562407880091334275342481422349641274672090369156213788773403715933090944816117833591058799675385828726902111977936000648148719248792718639568882332749477653196927183999247708862717784555664020599011873897509596003156669670250541967634930464193907226396751395245100909522486522837800702267213625995629260713507574496779610601849262257534764705188088656853942506037325196698560222215383824680436056430021502730595218492827215153117727439554894447764157812468193912405727081676533285776411208762730697235795732623721377864174669680168124147269576190425138897123206011046697547012442732483449700063874265519308946259128138020752204389559904148848791124880574650193533403600757443646123613716576520098462124529232951571048752830594323776406276935934923721298789470573311837880076695496915051725055456056904067947042883132000634142441297122859955752737185964409214682269551531147018256083229091460027004985491184115625457577230714081183513547123919853960552520548058637606950751166555705765852347278771945252811877563232493630973226039102441793845360512299144588728259685352658251286673775950649691355026431675577796863186603282018255558617066781693190205068354869194993190121796717558404921217760039954319599126883702011310027381954379873564621369617968865244840773981918250551416249852004603690006076744283204034553532674428035958851449661763651560062024390539305855045668237413314833139249232997013857512772574893795902361228285728721785974032469112803752094638300958113852416328395047875335047877056683810921384511208361305523741702947100254750419205194264308010439635744675096839611514981569770428323850085585729479466408136510896415935668841282803203337132508432339750352690812821437125999296999116182016796862933914114837633921364079854743301472250465294037182848902015168357826016134032956588637004741660515710994387426676070124809100415620647082412846270651661152435421956173672734202406474194537902830059132483273547667836022991852658370069086432434244711255470772060149798158599287836438953888223385577094757800514209183644729191364121266010410778440769950490273890203683399837398386376182582771148946719769838660898401382225138021848590620492764442388042609287700086293991845363508450591969080129881459376276066147412970646334455834272441465947483649396082762579730078445489270354557822128629453816288948748983424703531232554519625341974114837143966710594952430068434680845323653506843593766846560169003415209843724674806802133795661929470618906378921575422888372446864350234851227358395610925717395580497051035717604922105843003438372927405371205176006017807793460404541135920316279570481874933027307182037922171255700441264946423525057053561727769925553704813950776837576435050567086542538528989248758692713039149080270690956863732478762765672577440576272530144756801039042766440706854528269187883537132212328427147220206250063207604385545242766458666983213755777363361583845464368391386238767575888559191812306991918982699750494654433215325665954228780528415918063446879213615713008590342204886837536270388821905859164790965296314317860967353879121508696064621412758668095102107399335688495754117051734242488773737913878405401419752181900813570196270964059888981188274355465206706687009709152908235984194218178620759686531420413656812413678734189406888518786472410311286792525521362810390666357767860131210968441979299288337479125157440919617330060405923446192907832293912339889649582741563334218289772200575444650886582790924302206019066655963925155062874082683876059486087730533905009794169149459902041640522742440879261126086886291015536320546784472501260990267217585699056345831971366884933077775561315393266851910146327530996509864696481747695543640785740752037265700159571575533261140580747786143409003075582915377648872136328890454148761546590639048010234404873022410429815772471141102180232382682581983205816589359260823990031268965246703422901551852313932746013434153767777617076446741085786160637967806292989004279099283855052694478961645769387707343919828820831749907239056714489023179499047667044381651963481640653288219078492973376965392347331768542165375780486096254902754217849184634839718601883031537814772660105649167985873032358505991493739347645540359772129099872617545176606594748601541639150606572337365797543855896157923710390702777395766438993880263044744376444502047938226074055309052352085439110090790755337314677144985710128326775255486619657521377620669240611037487199384327690672890637385771843210095516060027108005171314280943709260189954846579503036392837560356927495081331829871402201727416588855165751183661865307232355080819968698190511874925803501170207780276554855969168919034678114846777490733266971448164679721700481364450425510776531945488669042213316966712875363939891847476997873325182696793813013869049440985255899987289678787106656595232191057466351166494029479626758730929987235883579220435965401777925760451895376332125860335984831565192417850421059898182084910970518867326561140767597351306472623930950369536979159798598205666727882192353883165660473694583058481536997962472957311099794063439067863353881805831622326333427365723976121864191120525149047402950715557854237317271752321786831202635360990365757295536136074119956134466404569747784243436096846174328459606729884183201185040142158987642583703973629264676006645934260703197261245618552428196253385764679624261542036093341679580740704402923118616673986414376422317725117247430705849646119662339805728492828169281818000753809507303388939129832920390756820917271140622752478015378574716373357717128947330667510838219861617808192870710729984288998411167024612537372874200388598777555529736084785109685230243390693810840115857405718526773575980951197833772576441096853676398796996376950125571508693817352111974801113504539966633785712806529034831245517773622395390044339205409851632984965295111796471116374057795353294850252308510261705497733533281657788659624398745564454702403144469060659238036541379461788064492894924768430570061593374646028481491946921561170536638590947758855193729301587788493179024648931966266334428519921054284130399114617680967561541483006259049758364987720553473470466767896957388536574408807413996197467519542193092226123249624106680806135597435656723015783788556379274749497940710444691275449767649397922568825114797603280333296895915185466266973547803223940960411132697673286701394717722373562099879922151257071144876461931985308940811488429314807192429087919551901040285453931955817598096520839370951201996262282474644016885789599739601030219058956845256054402702937687170975786834604430301573025373164326896194993379476630274045878612192902356371875465694484946462592307160052916120119596425680068307225531222188657339715220046881013080909846473747948542339129870227604415830307273751235753458424561603966428366251812080068749647707384648901806461681764360081347925508816132239216827521175387762919243610533983294913941775598344491143173630880792945532806414770575160092342786733279781813909098982950618008059682022623485601240419914703372405422472042655552216974575698855892092001582590037362518654012789401885285014203489622943243807649138509810766472897308862995229603021110329244347618180825485427334381092210009489005322711707927668291745674535149490367347119083392423734427105817941456283225257757757064029788362881881937887297686141390519134695446454687219011601372709195129065632322203823865829014080702103459333069621713828628569016347073524048486712526437609395541671121534605987615738928125996220395786156219256448349936612897996589690100260191655669366116679993423816286608639087804821482408914583602078282477592211325930551347302399710962369638035683351212233842458697418094477259333226852274384524036820996319513116852508529481411545053363895300028896841235522155602553792150240119891193906944799896680970967831839294945138156715067877358054931362541407866057933752080108880242946587224466900538090018663356444402711211343743097562046679746772300877257214843306962477203113124171096993854820562059792056957339003659169507470531806433941606896400210314883760932505728231002479152162831162666591937297626835165580705892496852300865166112068823307636507498987780537786745983927530262414011496446772785042046186817164343781834170162434287515879256278646201603882488632782686219133863080961491845930236833577541236278886117932698692732843765323494762337515255536058492320771918769369563699767297460587294496549017906410869617552612734440786867955691490381019767805675435973678021197427138175372890160727395763970662548963993907069114195757151496695789910203681024113597701420622931670005187271027779291231161137115342917425386149629838559800805025451576638056450653791417977720994904692773301772993711800157368308692275944515620148690156838703896355320332722031077476064314770673714952310056683797823106289489052826976898765468167584494303017167349174435758217534022071260909583004802230648993984172065903152539477102434317658235596891798196354156742641458566336120251187713212335487427341255708690178164245170957820849589082957606336495457289646530412089058639577865420561289755287889543783241946151649817858178894430883401968173375852026647491778444738119531459208075642815640721868848419942811792060962293092287391644936141961799707412939599596421140608651805929632857527865199945917054179630555847932972258706863612339308323351721769187633827597109820082214673061568305446053087208908669378755930077742238135330508088050007656073541174566685828149415698632094558987798716210558303721481699387110851849673074302115390343237077927689413142573891903802434444387427751732905985573885991422974100255260765392082080382256546102055787834477671719023290623503389979743709995505228251529935233904469814774679725419112144894940079766045925919284393777495113319013686771738302032208287408375033247629551561433005683081122688987557217856315791356999299988292041578861977224151510894884336871796091514155243124276850402174878286283362604587899766282771461818770170775974331519039016012613918726321448951576115687252335918325197866871180086892169393326610146785068504879722503889965820398444954319809758205782851710536415742490303052654506039946791035259024496774117873867894356186439960872412158915891318348039777713637969657815977992815866773435084897133960289670720304057895159852769450216750579898898631841033923447810450585849482245490907740140383545850613431511185189185275124281363519599328723790011688579647373693238607061880522035634098897474820111840904403167117996407522145208665639088599464833397716329919586186574021577554865797550498883405508980550279047175994436675245309437902622510452169456295674734402283423637742385963722485058804784444743061388067490878147346623152433226884330923270866077791460068040387574926899617531822420978879552866744674767652736410283553780238056792548771922069403659483923547753151568775618496619482809256001343713976253188413721374880972698220585343600991170944769441638973152430570849581967448216566653886040065596990555196033486645197651087504162824345687646417310463005140997966807962590257900731075997095168411970371204331325287860099131865645133475304863428769891891322229814586198694644105830750833749552259971151174925794052780177901688871329143550622985840884658832149180797135904167194946842986978375961355432380593448768492414571565804946100392122070603264709507016597201632003069109344852608448445327604189524366155540397454970028776745505770124008857558820027651388993585820780245718377019160698506497625232036083743297127254332050326069313130479751274268650986079596548474924643033168559501800613234419084635895450479297079243711932139846490274766982596664047041406970580781972241468639059974715797866925438527973814824305478739056615308341159883208429888185518466041240564071752250915240245587042999091964743976499853860674404592108058492127328647736020519781372035465803910418284419261615131630382053361846061257806743586533016835267001285213219338241861508991481148172073164306722587018329136616494342443191412069414149942916133765828211648916174960685887525076598945286535487430700677668187928100429115165110672859630880348728908029061046059868926489695493931717195044017885910200880512759903752825113597726157721274133634531698645649185683921130203564732867324075270881968563927041969927471418779690855597636656348779255878212281619844074330048265173349031250856813655593689394387948214375694816304299758714384563933263320262816990223602705899760981662058833444897303893857854760572008314509113367838125651520203977314775040915389414203653387022851780291643354368761844786473841239529912175197064180710932420834622987845801296556880925467904358907116594524141828042706462137791157249729612848037307085153478810957473576564050795375381675148398184307104586819639539947571450683240297555625107524103752389289921102679065498529217670914101185552708239480600592845854641824579676748523139464450062948369375473961706523656849742331257344094585080889835894638462893430468671801051973572782867840789034293394033717024154049083418703012589797639703259784387964595937311863966980764396239375386956140403189291138402299892442085457465334826089567017320857363015611684790623700589726640130004828338679300553513746924974006323264697586950992635745520501450827279173437393794145167839747234738436053448186268196810026354928230480334578462029534695675257667767636626145883256216173511481127492821810192994842167579451191388220918489105699549329649367278861840372167016714325173777622499070250474556254059596752290948720304755461390422212113610586513028586599948491876920545555326759774470012496485235766006868627070756110762781309132238944942788722678849261255644546647980862237306388931359276744131088565406664432222896143975447349521691538922303912085797773279764426243122189496323146459163279392325178572453448933329770552515472988750609029892920649336589979419021340982307277025102637931594504657200624420337447721878852670552310528254129724288256668958354092274860646708442192361901369771437202198915428821221742511469958889778498411946054715569435905768487768743524944478700864492548911844143542805375646048191779979988424305575949609780807659491291238096070330205079719528474919913101917610180609289990356548308327701446861975627759502922128866981934889915899765266095006772245927487995517046003448139496262418571252152814350385673772983060195767591245433870043344402212518300500860573803628158735810203074350702742745024706976665436755204768900028514490928959929017485284500184107753304946947531831232302954791746892904890179322914793885294221215695575207838959162876102635853132976067071097292445483633163155971275938119819489466178393019660416439539947912818199659331953910205262109028058602938622219256506767615604075834042254518296206097973371251329935971958210701063726775200245822422915216339751622091996652253907300144247170883843255192566355686842210893248839645988846573960434442376595797023009932609610650985239757499717294634084122443159592081825560500511316573328741327168378074282886414104425820764568377197590084372874145786616306215225567830090049214576581771988904485032741801082385261228073210567947043050724194641220954664330009028504536225322663917931881162378730374264156362055380350341148387832860286098115301152327406095091536563593186044034280505192366365212482074683489039751583994271825232266332563836841230386061987287566452636443684830187963144864878024863286276457994460623917484577457288633701326621872741231628521152993569296841792430587917237157941527791637257388704521539528539712437246754952233265338262879228645090359454524426882884213686230178004026137611764941316976636964755220669899395013926213622952226793546909219322733463774430902544696997675476228133685781798274299460028872143437959499172631504479895191157005185229934484455749710222520318999251194485600044445183463836128708068769635605633186633073367382308176283448632442529316966159054667807960553274044857679750678655590409947685675935366262626394117566731183859467542975209184928329089431565055160398880634032735249678301838594391938852853993560592735471553303273408997883456836375402934036390661108346942212242678481601577521781043246480063951170543141944358200351081504793502691608341786099100870535815791267551283041732208754151801676490961680473528674120720470244412338004672953246732794051857908419754322109653071597017119274661994974212008478281910816292045187112479006948604961859350084849791469705538093202933209711424358279615320815887131796059621446656607805196239606253288651461478893191874493666866638458449057744808320178401845226416839089971512094316080932616690313554856385178533736263213413612258675978815136944515298455141807323429096712982115794903383784292827542303404146094953499902222739909305237750212228538031756656828091821678581052162127877677142927289854218180359578056481103732017966466326271323410870147247812892706730047071955825290714816368808278021858546020724997829704655521530239033213555468021045705071880534197661458047984258564692724231404000921181492598234404310646302521511249373461626178530389212943690710491104419006626553674862384330824853035898026984683952072523097051828563524375948802256718476293345400194475649246212231368538543914667956543994937347858382466558676244878365195726727313431505057931764590212810166560217550005154280774876347750080921752482899614946304230047990719120774006454817552867039173296550060299829964040634609250809463842823611443838239800776881813610766086820944836560744289173797427065016179165999035642805429531898780930950102521381944769616441085862863120653505534713131679120466021964238777242951483355137246001433951626053951901191760269930942411472244706134022559902312924743052053826433797627087312679673929651549205828171810157047274822044282922984514168844652379220905216359872453678365840793916619665817513828936119347006553186986310713145539597051552710337463408180083951247780503940669912263305807043551257877263415505446046921562388617517253599883419058946781637290967463091073960930590367460638614081011925139481398475905189916077734558533167035535513069779480346070543680991972179523224661336028509683974875965860423627241071404248835218684652222779130682059139951985292410276373067347501021356750909235784951915320467217181487223932795022110727849774594595482174088839393602193562155127500992975343831529324516789289367441840939955339658752058615088903461704315325039860706924333431931865838755331537562720317112336366249971161116704713873258498072057988043398577150943159101542384963433022894260290525102339086174029293080134982945238511398543014719624322020083014327067566707340316795772998434932780630798270442557664850538827908015684505461066630810061422872591060966323913483425316924237381715732344256971841184641615888763999084409502879518631230855278650072153970222684548598813922709903531778985022870694857331516188866968019106123182121007676573424114235697096544221348988980521582190936033238495921401601921733262540698368677139495360090498108542084268476557456698886135397893754325412641009872295224721208004400563255333311180648571969788506488765423539146550081287510646870283448786895156112349630020333238840859015834387694837158878004222608379227969653197382086524127175292410358311419661365174520380127078698253016509777456901615819929087380962168881147564233444373541685265211573649379512574063613907427275833090441831145282520458645097295451443367864781141290650857120033960956960046689072422876103494501904669833141073516661118962026795161819400711554114610723450766030715527878947898441000386420821785661041452739135975760281853914344380830860507509957415571278920339141695313146533792665814466014688042402107354367866116463197923658310106958483037412344157538899865744332817595499251903471474743898358693732928766601557798621967115292625667243603008389568258350512551179554847206567288756717216358691326468660988824855793235774659948857704551544851796922635538700783507008246433129803991869618913144686424868912368588167206099460760718650050214977522892410054088613925210599050803524303504311465919327788378180891331482549626316572588836475232128259389731742600093301945155968825390609553837671139370012299500130269003700055897158314297143455147671200745174297943904025073852840252191841867464480881926222161267883216822307167158749504926879506628133082070969776714842480849855916003703186997009977959274308983384762059449071314497742857172855670340794199552997328670020319174711276913150444819125475434883380329583595227850458751156024560342241725852848934977212816202418266022390013842420394480875871758978337530866702485370711785582007898836848971994248226733405315673965664728028862898118041712029120001904232757406743983693982370247042075287582658303657960628336417847606358644231864522063340223390121708338800072536207998682329874700711422483564163469506958285846850676054514428005154215264382591435179103027326415093788001224353999268754443744678142620011331958687178959635912415382002248555735325670217453372141795891534797702349609859035367153935295398377416534283056571250558749829765228273549972862652454642444230662350064416425843046062263189648204014630321881720174218361165773278858532037126014409003991818575550612534949499778824053489226068938722867214337910423670069620869948204883994121769575424059191964460317410303143262842546865995561778260989442472971852357882044179474994652182924113396427761246414888756568765694791931092027821927462974179103130768732656888789234688447280228969269545796900877915398210127189225331439118492688924077588689683064133606060968436847490192035613825926147789589859341213175471603643263800542506826033465328799514967504996947543474492849665530560464999341746901708467081356962323133790614042595525691146872695836959301975112850700804274374173075944238796055345852748142458631691755524365131963736171305983655314052461176917369691086493588939603526302273131848286480487035257990435438423954645399922029903488679504877451004503055508122878170996022310334271273751991518216794329344087444550865345631308304071780206815407911788371629701250742800825238797062108937157875738245933825364143457456178228536408210140806512137403709224004470076257891416257409711352800555622449626455034081160018313348253872105800229274889057311531416555776258752438507300261812970268865604731956411280868732913928299568467769130265848177864439614895815052210762094984004161306940080710580321248520146499588157692628284962089568643221936255181649307400916334237945941553266656482596119614654598933880363932981583188338550159316699858832690890010900312844404204588157013175197210344907745077607784744332144594453387202591228428634064420878276706273452391886763306281737866586493717271144261595992533544705321020802816116512443074753735974622038747964653888536697138980670656897510632940994477893499233991052729221983482710847795375362458280906683235244698146290780704810077900031974038413694923986085898982120631500984919428128282840291522868334665737586724089158115683285486555226308022285438533490877848707434275644744448083107266299016159786621635940906229483653607965650739801230495932133967913857464148473146403999134843490303811108920537448849296471721300551967631072127457777109970478388198636865728053875190273449320337858455151781093254283911822905410152253880410867710916089708031331404572578404998056132482326452645264131862085794571304538850978596962862708663092157431979640823647708708607650654591591546435123665737351315290727768232236532993855704235359979122724635124112525478381111715383692343481427314171708176432968784293838834352166143574745262938399251863320251582309999832591358480538442652989707790110872187871125067408144268098910414268134991255656993189527853148955443614918674345809214799263082875295560999192791509206594415400281249017067594165030786478382606657193992817104459143029585547689282629355086567324873797069790532297660983734666545985437608469451615476148372342850891646898942106027862005244099402656389758879054181172778034308254660157729792562986617743059546014311020811181037179806845788986388303574232094873747955546624075861673503256223175170607380909249853690597818552295873595145847819017240094273505643032239206249618175220263201035974483666866747931232669965904086660583818123398468315594091042052097499664075227723841718813833556077069677637535151255901014824087950518488043254427556337034997547410012960103720693091361561992994466997762719938397885688597555075454773716604992007730881554864293815442436298615327979368384384941950301228449917717714303244853050946624005959022878011896193782319990645817865029873038907077741526510355589471239926724783074515989097347389944400415786972258792110688540109553824560661010601813667683392978090934092073109319821770037177569691128594095369510744235870896734827285673384685953214198583907967085877630373158558632390853141815809007662016516952049257169953104897409441610327486625139572743489605244402120071433399415778133566457084796758314640078738078941679364724729386628179831454160177227717714359366423060073743013880604054024435371584058471108447369102639462894953894704364934610324898229372009232185601660386526719162319582400043552364879216415491875187899779717694701084872065103885105975982262603778287340643507513075076669077383811301394862361571723486548704799140790622154572157909738410261577065801723191636527480349430233640733405928474569497105161640455998880713127236906422459283105104805017201895422738681662707044941086334162460110265945697664942129414760872528498372357453670479292163370128813784993942305147477786712946061278972690123677414238553788389346343307667301815577891438339135778235167728197512040519964049852743494014858541378700843125782724611816302452899638697615082985621164858197186915622987114720542696365388279184698783217410008129784962727239360975116522163746805289374898580881993985457265107236218757434456844612821847828702778718879435413483758114797343876025863588845497726229694713590043196888834759536740907781214393504851488898553697280206719973658870182514374153467092516695225191018551254194705629913589095713163849474882587468351300638719740480721366812154582344032301211099178129034040414201415258479513846912047564045478605826874207818497431317209769070615370431380416754371595010442453702257033150180451437517289349134951638020555595642318448697070117818853467606959237215950928625970805839769002709418263384826438162994988294541520147868604096212784914666476336906538255891936505299245333217780704032882965536695709534695342900506632422964586488044933634617265773584990031903987728012798296854721707057323020101465484041799122036092919166487544358079090299977142685475503029514173054103460346040426125362181120325288766695585319096768314887041494404597073713383252063389049718339473111149903793584832568554621091920931854109529342580382015623001871857468055600318319354937217955605492835775239804086120599679028490507943316944991600275245917231500206606665943221287416051802943208273939829749309336140954979409088732913065300247605007804400773196669115594223167122993065082296763625767571482209078523663451999661113022995547151820153801028144515190274859559779002645019033434660811577162994300456681745961073916851300359584516289193761165540395921960635308420980813978500146505115968066251452175923547892882693455453628111548282197524838724492583605725441853693322672292366961847559804866999259251379217219651029830993010142983619451678092868861160817580471491058127784901899948475949067040504122035747390080152966945468325040051759814161216145746303151550450610998323544812756927936101878345833799850782535348221104758603826572020230458594833835299646143803918269856717983693250796528765777404029588806170687687205171585413762964305813472326367046586366393271699124793326087977393210383328838351488746517574344033616931635673681695947051070526483115501411672074734667026938838859537535991762247698122637079878901780183943840117628673345321436782588932840171005548129638441941028010700596387505744734884914927816274804373363512023852456696870301363651159397989743147458289366719709864130260713442175283665272332793321413619356457360586403359919041719678549229791014232767030226833258209528132979574175002321008739523967520777846564914002595091882425279547972745108782203351984207807831697130689715623134693224375751530085128582456091803999622672953311446971255594366828109158776996143598635374228984040117564489020836753115649181122086683860850501803692335815489777085721491487630578816706764641359527856153164070764204819817336271397657931028571308388161792663039402691755393362686975710415102930018369229350874021677700144034682895303381353438877311359641079201757817482650077770274749825772861117156081477386869653437533066614195183362970584147566868193671122606616586579213864495765848482059977735325462303206946019677457378038285830770266279609777126719931513748825006935224403152430550513189024321736114432617350981418882216130608340165353130711486278818202286926994433104135274715754246391673078375406145187617443990859092895113741953754693233776201630801157109239290462273396743817429965779365071874220756508409860681300281045926090299291151926413377602855900756463897009663786022279269401019869612710584406418281968183496262917539252002888844449226678431958496885207229140292329732547609935365599088997080744968253668907741235504083412907026739098764910607002311052079862418595251174895962988878443275993281365794430062862939421571893057400747204879697969793519333726535209467416632418099558912495330655664037586340297286436660119966181799415220952026985108591982526728152543024232339198834311962499963748028148651128012927162515094579819901192866146013736640118858693640453239433168897729490894602201585557086331913528326631968187554407957873424897539671922939918719109481527236114314324724318581381270345055908592484811266481874038833260690684414062952868430453379427025690839467574430175904644059927855202960588961155493244378580838241198084614478211977514387019626160137343882086024968248201588537860253014726041203391497968826811616655954475397027063903966954210464414219295765611093530868512608919540116260122973591771321876782411035246505331421883080284484335996316453398667419138796469539814934163478024814516351917196196383797595555309086193398622705146973133484077894673584310905650869557309914984812086732691067050054248736930723796312728145626298687236162262426653915069921670313010295367359081320674806840053042937708267784145211309522732398632618550731156012747388219403081710025940801894660241563641381103577739366732812542317844639449426416238674241401250888566529602878064596074635188096660625028430512668274925362848783478561838939217602372225733721390621615811903941410937979681788212446803973273087099481538820212823300008753106210352908214663048222321565498011838036281664717394312706358928592414726593785467151347486078275842195785976057591098094687122295050120338034507506570859323877565893040809813301106314671937624717984206084567669626365443177239486843572349794938540491067293027536729279910979319727727859439186424658208056365071724367319925625756305582780160236879637685169389446447146759377855570088516178226246401752152845513302297728419532329368577887932734382777465998487873931832305393193239809844931863552631052975948113768292792818423549846464015789594323499008349406353304886034737845126081549487899850222943471554211759061206733935440237408542990300370770571956966933309851318774135406755560043334414943322608004657493707687404193154295438425249841488987372134002984622375493369467632465556104010956988907753612598638356618563066046637579203118121573449171080406145930416677780566402054369478615772575462420091979743391042493988448322662666625963077804645973628937654094533251623263578955429894116140475327173402132993452088720866122112899450089992835124125507558118673146420997054809564634882996307409154153761215764386196060202989632331090594849364992456368650625500224104486927633350771538536083167624435338841396847604084891027237433708610101809613666050386422354103414375333506857877151118084998342156268581813827310479936719647496290041479630534943106495057899543108141382071408344537837930014833786615666766825146693817361098551390617485209893560300312949273198781837327619166243475122825000152841597783522543515032617813428541832728332528457432591468854251089543021895108941393414533671022240090668203687389137354861213096769809462970186728585031031566450138238493671709073500220779018613919605778704151717712819659355308637059078722410166135049340236259624922716681958573226474345138122782103730940664146127282888583975783663943943353560872045109807617124536588452923183269387486171587734732768809638914611678897403134072604811281653429571251169580956899060419486835834695153988423179353458461613433148349488506343837597649518010156262574167905271868886999350555138133803972855755997929352098329169965002482630727163510594184713008183413139155411007215120274877532738099161890842816930411312566638963788907824019905464398261785626471573869272576160262486349423254676534625088960894889123459670831251936205958111886796601384502516432857931015084061229135478223169897672324845416703161773461314460894028065851326641594842028567831998079119360930548448184385527479495855176895807709647966592829637135063839195104949385866537996090925097075368878737459238798068270056790209920423632073115885790767416016223052308352778539298240886031327573511921012384936726121554718115311174614508992928176728066567104328801958748392870596400411691219310488540661997039144769659117810956654356193748510195834565795221720902951241357250584150639312785148585433671450739285943586549546381281640619040583403124342932461239332193017247167005653890768514228059250975735921408128626718839518153534243184041066988510826764994189198014206320104965324263297232275980738447949697397042957146122678317237958773036502536661576865874269217234768692082323367246341279706643752765689865581655713593912102184253514247494211932733413600188681456438058205977093654057214785494650600547769487694628602327713834507322707263464776696077363376832534343995354977450553201715465885493513866590667650497768062515142288588026974155894994093294844182116566450526806357081033690010425909629510329503439322971371060721134586161534388730150640807578824958067056549512550811118515736619743783294598936769160671957476918857053123449790905932805387190598100065163753136666211967892276050916603682876026659898909454123103913421376215792112905335550145044791916030575852902494267889054397125864696284203635506836925414641675974492301759550047404383245482524920372195517147750765274714893431102409289180114748887143872336752137254409553481766580481919805472925687299049864819668262330699834096650174672515147312445537889679226780935969969274574537693615536625495870139696633116250847480411999182134700789198334559868158736536386647098043402426029328563585251017824599785155201226292544310195291904916082945555603723850095478727239192081789385516000890413372370328002406235662984983718309783248475971690161067682755040510423277444071939508445113420705156113653816887041933523375568498179340181138918740563881956237609837868621807644211582409061399094849391198283889916594501501371419095421943371690203869548403649205470137775315347241341020350432259413480806499762244433350581457241726150531480284739965949580498233748444238977472303250081894851272707347275527632374873729607498175123785395206391704701923324080664273793795887974397046182995167632920835420126436935993387399340439061116565025513175763229033084368237833609289121223669097561747909132730903919638833776911627161867755379649555678870561377715242382937729280874140900068747522955420856641669958207578094799212441373319558794065537764106197219544708861516846853018570995994220971295127777319949160688778130763286593700482146421775365091102390982079515924622989056892423471312063749934203763780412295705861869737041302909750914091244593141405069497666895248236128412302068614819405187857018529432837006583452591983280684696640560430880806800081760350267578959290320883542005769771056141406910418368970429292038609792409067426939164884593457147309333893627219785983559742200233331975778942223091786336523741259782957027311714506513878481932965653034797544385717770889615994443609743819182601669910089905617500236248109165636955628325399323830032073167945400238564562508557122660732520222176093024637578157006221703575115528730931191209886459695586471721308524633379402368802376205160684232881442253600979357772380811615163714674685589993283035949063473059457638421427337857042647032050217091027997588697307115959200897866672594468076042173440687549777073205985416243894178499740121924009085100717965329433512016847447053120373043245016218781301271746804323230800578211088597739929466002476574194595952258348730156145241962971951682142625452107751187285558534994295407713573071496010440676263451409323091135737102778826778598850817521232713323446071781430851960617259857339542456642998334844466822935874250591385489796574924978538595236417850595956875699058468041984837323765305550995224718058285344524298473064509420807768151030660852734527792633100172028823693423913340046979301011180188640377452321804934725927806552561009662194990234530957292097938162343930415774266002000212013380117850787026954959761098424358396013493211967456400492402433491297559432915015227122222047994271726567027361635938118822746048146333158899988330225018469995899374382869811393164490158882649275846744427597090106665227796041883423998252879287614413373517840877543350052214460466434521738471597502974972517799252564910961746352468309351949837612075046877352030717183203709326011734113814218327074467545569448945471602757238144446415520336005631012697401439744560038486342246534937085278998704264313820335313614606721223077893039690576464624665739856970696566893970038236039298342613410731175431484744521091571620431994008636410741450569742773400210432692569231856950060615163056727923246484163975148357584641696911629605929758878545528916338811921394831516310153113373539065408170479478230994843271626727698838907246984790131883281759454859513735757256430566844398962995250055453339625475694682592033652530518309249614654828065801737863527293375691414658566095407025383610247753002366170261075163263205943811485225249714273407487449191927909026593657348241345858904513226426262755983939401891340511744222504864850588066155530678764711057102131509506724778241906094060614136843143955293021552741244836647308627939028949141646071511252337959142789715031526289536493694322106472380776035279160513538604875597859452383829274106654734608367893612470349458654245772953959889350451158058731483871208373878384678880062526727128035290147348896692733155703856936855207349409432646558286584946143771722130950154880417147299355391087914114885551310172764831840300149940080827534002214780012677242341695742057731484061002366730843673344665455370041818016298594610017556259642664969369066144111103937627044421773226467022018682231607419538635672899371830648597027919817138090648583514658672652918314016822247609024994036161011509252694860481156610492967337402286963013152568679940750175374395535031870562246571286782812935396322277198390576043744927432777334288666491823586671987509832641532870335996146932477814674491184516903644598213132856953757380050204205624478590786692728523981425944262475210121743601310272893101433052623953209713210632862311048920228799888760155751230255670584832023501718942864194117054470195925606660700490695541802499168283298923392913056546538367195745002169306739814641395742577658874531196761736267571626243517424120613202204182965549647485495299846802720321774966932278759130034256302735180553830463865994967235954313549774492013606530175758735445800407215371447776555557847610996603015438034907104406940604494550362923435014059157681901581937545079768408842486585873992663566822832817821138847626154416508588002574679672444891590607696411135441827029839483254756263121002256399533907222928782557335935686406119600901957977166911742972562250493527924936922875430243389496726312261574981413655675569113758852974803990051692000575812469068429201118859076482268732604922212935615948282371028798883701729601490772732344198241231530359522021678804985938385347527744836453176411420162340057342881985228226198512273586218700317478193389145497622098669487914474510338778626371447278055462652561385540862717193277384622508069793766252610054026615091068336427987389527753637051010358928254525064984741338633895334903011846701213547698053472480172627557395229068091692523317725191353314431290013057290922427820993210061175183319028985545695010119871453218482105148149617294782809268206658720893188947059429061081135797461016158088017842358381974520502755371068575388070830696040207403245251185676764140798629410896414783720951061871588911165281232819043489657980761824898298403662935240393083179651304254430689010019228935596179705389390511014674537157226324827145620110465334526960955977674073583557778830805343219035507188864498732750575055770169932250851450785803591972473071136154298980859373657182001638053565140839546783943965670130358179476327612656495525418545791058062557104907940324855305882589618890059438209372171665751991753350964753352782496604554187100411449742075906583927733825728812946704764328810403678585301574389754483408642964022970581503261795659876823011503863596458141418545255828933069068442789478744543212179102722725785442540740305280512447311566397925389150881188385003664650995548686149829403651873348953363888042521365066745487068911840095321190678041695663439528221224979636374844161001940146988195365376904400707577061922902702749147648566860846727070142077800025104063107745142980346640478168487616648766124401516525760705008024108401074574164317164055478045474333048584244248745318454595495532334095161808800985486408663368232946761458445483097743361401582543955475819197419043350414030075191945098575621042203503836080426251090316229776536366875218441056689738786859270017933566674795756985891905894892162707252633620850747723694490045710581304352690246387037756348763139063171816494088640101356261488258176183408313512093542618528816140384803409002686802837273693714147603238913520198435942794091783125753144375078500662171363240034117698259865886243063389199777614831857414546527124994031273917086328472470147455149829446116482526289282088435691538671582661265297036490189767329718976279465271382876296744950705199851742494748757124422360107784875730789194252512137344663034696887562099750242271431032887404547152923371329240912795728065101120721082673376912213732628317402980917187201650269600131651221739698370126323908400275376025959173141933901388584662655172362011048057033222803697733258687860612090571232218181786256427549221074666474437910993558053129132030688135043934283448159599912435048972627910536254829033361989998703954314436073529950798015122672375901532113299862319048046398356648562925941161555675242459456419456809669930928529513897679679664659438914390578565775202705944693087156186148976094153982923931811811084531189222035475017074744755162100304448114916167563271054483031270316808410671577723704065218282506490228529404752298967916167410351166985346671019123589989816120115918323332138672205577479201506593958480021584860431486000278572846628846441214246857538934371166501046957885860845205763829827098669693864288472444815646444051993977965555306022853990432639667010131902356796409530417123767904745738602726064643891571359815518046989937331816770214570050288153090585502496276000334936088854833323075311133441659938986290076410884837894341287914685103902168123853568732621627653607101784403049717364031877412216848218212103511745982343743559697777317786602927805265604618952906524789451716782313701687537097717405788161174317904519641714818219049025507779754397471759027173567877479608576110002800666836700221373508463521398432088674535986477007140516168558991009948030810613667651289060979203181962534898173982255395876326396300209121052490963117546404848622604039833416241501269357197586845101625299224231298261686464816694906459556578698225863552592388124785136467803071651047688728030639384007339769482877140068344703374254084929220988002044439224401101066895449984043107984956120854533405464083965397516491001093373482050219728209987793877598076638788166952568395376429235342255360572220820684352060277653066726609900734067951115533827249308974143670388351527606021764174297222025099192279834671533499875873158322060495037967235385986687698136572783858015631445033195246710507995825434723911505001899873411917604309563092487097804774906526104165744709510695441052782552171730778962406580888110244506867688381312039165464398789998992987109762275348841951911852142551010741595783935406942304113139924186091922903112853504702470996051337268035467353578927350475814153157632599657517156999707407967088334182001722931496322107967293345328719955839804561760646040103593243878558331140850763628397409488832889217272212802052990711404850433322958965408818259379625410120978996162873786368406755626765879755361463794435551030490842858692482047660474349469103749158384795342864892621966859813919442859990215438359646579854111055793463759506129566852102741110585256756921364854018260919073066654238412281853048832260176543549705090709356750074892295999396937989334289816123017584577513414022100953900487452483939210167441536064837441115191769610080237413632809929690806588986803963770901029882659784554021618456374924058069968290309804579066290633418726216763834543640091973134867911528057412399307907559503998688150534568318890539190533685699771114649420827763358748864051177777198728460609180851633587637118316525361940812164737730444499454336561243474090061128711616083127007884073167246962815107151633394592999145133588036996630819355294781808584171461244203465225617197876876918081111484449996954789307451950733937546112530064518593129080320237905463391530801196507742070763791320977617401636802549875014781660598940937627580629594444884733413612035951701405103947986687414553315003160392677988026858779777302341879632060526435714680456508279831991736541492090348991630607901414082119679228233225105419502053076829648336640116472688479291992163119291198899924103103083776439782190592174074346664328756313537115574754700311914012469497779725530898189693036884524466537047998162471584974087283720474306238017652632433790119382378865057339315002097581675380204411483776601254864677208276153765356607133120318012086847828198144228250132546261801651201224671823160487205905996513221681790987497334208062927803380464515783984008452695196896965399272217190817066688256358503733935122356619108959657767272359407282023854092220764019230821853860567987979432281595532465950899323314165349297267342944990005532471746729788292706482175989780930851676698129470436515886824869045047908837849230365716313106282646872011878658258970327451578562539229596895700804121774842980224057013411892004547153528447302903184387694235822387448379570321857792402249324471768699618069676089002950688847427697167639799090282773602128742481226204075530000740406395146660556370087316199768479769726328775329662817427554063450749719108259137597821648407060000093180255954964706122191411335905659451775490862195029976373991078718294416623246131712028524885275265295422683509933575078439454723377953335313779620192928791324917340324927898220397849589506438558715256721558656644603329426927915784125356332408407893853342542110222435448935738225644172534729124666476261224203213829407877015445162230009041741194171046719358743411069047032929991903742333214983946912748225390796373229706882928856966211974425154021961884827299066944561988170062552511472701733266603868936596161538035574332911271564868610366188404101362442489845825887269448328790694137829152666791177819652097935245291416953942226707328401571414504902582658914704555623286044140386380971758894645945853936445811878475391048993725090136728430387248565835047093830719423386709622328020231280005343331304481452243571170764226451194912087039417382015544990577979890477135598922306108428311959591271993713228552993605856905042782478017458438653912032984283330466597420260995617710116039046901438880964861453856338192405579790893612813182656818463238571795991934279607547402613857083474861333590246786756834786830599864419363139048041821920057258855931243819352370024700255465026856089435210664662792343611554796203228431753813038717548851935912100965076430216827862737436682563418590971319773476713119516439083628939159538352082801455727728953243319570751208790163096048196185266579204866018469513794518037466103048612799337405047313540447806720142955768097936339738489015592671004638860844855222425493238774055607969485347936742839328965415737445355604868388271933298496532489302241285701098488033981228750200597623016168517924325555895345810970258922325905039885892091999915182189307010956616145737361203926965514462497780907128064180937923330089365369065288081359056262359598183214546709482412595570914438532252742970071821711851776778058536519302730295239035252067372195950303486985983823928198682117924265052438079548316382361961679671461405203929693880176845943762617216617618287619012048162966272796488749551321238580774057989886671424658453197765128541875390653925754628090489953817284485943429793183641739949232545709916424851040773626797056675788155073592722465882568484283016715518934412288019239319282048064427828389711742220996157876062879380791883032404137338638714156142838124178372469918376129578519849202942803740260309632481846810622488349197797073437824334707275211734319733395097765095154496381234057321108584968198080821138213516900204211503811318133847547944107296123548517605600391738874428958634285439430932183527836368962604922696891461844337556557671375904999924216569454311243340386104154750409268788896657363086838445586129050500908313973036983606332649526996178887090977361429077676487188833799293208162136439023705372941562597199735411923496664291803899863492784450789473240796261572629712800632243533592895650662921246036215133248132767763478545597267710568386030395404126688339822853287399890784264687300537002069352606713759995600236609127065626619174272087034902473929977807205926547531178835729764096381174254588359430142739828754941088648032109192196548207334169170181609459885547316214249512004715596970935113792417929179852100001287489093028538834425620593424384812916351798044399103130347838432561341450446443582150670894930522791573142540549632432653595104201290345436020790360063661001342452286563068585196488423231267604471824419712309754208214169062533913173971879925389154657611104037188164397756165174440871025004484230043829188011935519948451484057960941502401157822221845820780824151235102403390403482440079157765856933925751819417281107477925920626088042292063039339536555617163045518144949435092716006439353910005549043331808472814166742451126600767041160639792192557118815875241831298902953988947043558585934834862725469659178789596176435857137828659893289080234824517559817145259277782897056390535668127562679002031951895303786187273558448370727068753305802971412415009967103381314356713927995215809395935993258083495951739822057643890161866072391881127809164115746978965309382434307682949783023389171837375469824749420210518472894047596565225904549125399777481471818276112606513131552714657559277525177176328112213224361855462673536489391339386152169859055930415058502202036421808069941802156673135432959554211725856270293185362442673864420225447910367117780204598027693750039745430409191505402226106249738144644285382585066591732181048814932526006039938305880000061736889859552783352943928320497820486012068070568243428826911103107877136709118296054445413804202615783930378912347923431616582653003321583638914186514863206767299198087880491515024825809069449722326716782253677327524240780464036111515871441948412447140278518914681693154124078722273187527824902838057088515170664855561776921904673390904828588894083245077011558489251685008530482501461632029457519504329150606885427341822944129860492704921116568606334319306754829375645736632536924686242088663219778308915617011108738382420325976183600934877259452784753337452090258703896891122894465233659272722587732142276403050953523106338283523761038933012561100907741158364912510773250451673752373878503606536691035583676550858510441398226622772792571359133210187519535686417486915848216488717772350049425569659289623589501733469626169313438323715900711152083611068490556649015435205729205691482069321812286979963036562705682208353318138358002248530804758660747235645603946070600098881338142278101538513244524872620971593508296654378926911965978284968555227143004249196133806901869392691750214590023798836073239158675441734513504941100906543386785009475412259608961183017147478180725040005086751296377614108208763868620855838549864062733915286721002004295815377146577933798091387994612467174923973732158144048863376194056687988385805127209543969454786884762806260650579988496324074873175020128716918925865595183597010490455065190856789352900746558658970995460702870515216852206050872529088080353749204642622011479664561189290195986206456604613255797896981052733378234409707373700205788529406339130916709820018663958542597513738099102881565092271377393364126412933339409139348207310380655637338252511187504241355662014726425704727192759690382651052310368452128511571442038411590805974524769036115169063004588394542310876143244560604840981674166213130233706698783824302003414224019954398905304930714455903890142910580884351147090279124178399273108092926854847029293741711460405982195755489596408217642471626634937582413652933462541897176703006415119749183594914172475664349821241410758117836784010871942192647723087855684371583256670281888802750215642372339609106428991446481236813427019892418264735745301442796824182428849179982427281862102212699772805892765519530178294833148855306542360729039728505171829768903597030448751741029437462518986115129408772730381701853514911737674771139581206113580931666052779483491618109404683824122444082113941077873455476522970187534350379654431659369304635455897353027080316398835863828296652411615549833850230077696678811596398978498884159585408343745962516644546822048145039413999063256795192641771762534940235120630451646279422699809653684353568181220285729469338350257088469481755964895074486847497349024977941997031963184372841624833795621440846112881877792328437035675733086231981471557429888127786172469116633669888691374714224120290849991133015984813853906431531433522864099050946100258093740931101123107738368153375060483039210406021050569664713193749602561238099560891033062092194740529779322514077941556308652810062800536573231161836502906951077446014704616368958475930851684749931622043519835723073824560569378405211895353226759801640131803867600858382439290286525285080182119373959953223544486506897298377153860585344215740074795019842191474803852863465579014508649702783062195544792702579863444116683041662539582255217424248594664010402997649432488586039642256688416841603458304299380007480137321717716374608357099762231034079056242956442222426881372379844181935348497251023476207695850285032725364499658125967146851276864482547365226912867981764717857823091498741982821522560808766716580777753392191448250927864610017503486925750568563720411742164708117774970933054322975673103449404315255335140907204044006033986923050441801742685073926751085605574282665530094221197609610325930373800734535989547742750346853529872931128056956074755311453869580162338767052786700936415546440680406160058547583694311183064636055383079635039325014339620817702272798656138391356094990887288823506561462475152836984182626106333357813108240313932394773900103275808393035871936391154814246387523740666940149311369953522757124158683916176300243763285481001508844891184758871339644829202686271534248260860477476328965844023865724094228330165574294048189499218620336535613199917541457770826198025571054033207303813636965034332246415696091029270522550966721574276179685522382765160441952625646333835074118900521508241569796274813086479715725226655890640562408306058642791465779455171795503692540516745023336317962427683876192107528600630286709223616066593524862767341309156597432199353457720990744877234676592603171668694219645911166096319087744444621094796321425994930463722186420436552087318399069265588588074253126129727846857020077696639630441583144030353003977246090129551838949285013107065270048092950022956916789459135752559248860724570333672653621917962752263896093282919230731633409188638218776674095708668736226644590390592988053800658880109382048874158944341677745183855007236625445307309893920191099443293699628452298936984865033313782383125991109517855661141764376016924271516936087801988008384727498042151083025025314249346252790147207381456598814635111248438229651304044098319541392119055576671825192010633064171271485329465710361440373152655767999487239742349552673090982619160921901547664269252775235951283223694095064525463644282812890246731098525254033051605473675844142516128037214798030329661479837286508359924513143745329205399375745068269399759872330617794883604237516092286863551240670079669457885004004460440902126581241043719940898591794314499074011069182826441642669479544029504129476574821010814834210162354630848800019864739365628621151281592328698481019684720763773323339619242136468426976578773526545712365890922922424105995327673068495405648710032505569984382427048384876218748895523994981538930117793238390273909292540285256858227397212515950035426582224585347508595084667586956752472105408804819369960213325863037746241643324503898215990921984170830340956278677572799554629603896855132709663361649158752887510865802243752742021854522510019338403730963026618755192486347562342334432383448786234488405810978869698438605122902609499597932311118359200744235866287966000618652913589691230716507425458371505755028775019596658283425964126072697580803775221200030997730878510734365212438318032292613751468493954100866640523103966254869567556802593437160550459799838011628033128392207403405705039816137460500664336784498704564558334559806411135040076588454337218106530328092591139125610204658704157063812923075175482024895570929549981903658074807857149923323796208065857036659832040643200272101542910135835104275927604269006614800013857960405887273218346709297951251746679242788306198225112962683430145046343829859769007327928365903793988464592737121724602090855921242074288668000342750259620734702262102478909063135080024780718573516248385812641310166657249312652829594482794560089825180539062149589532197968520929841614160398180802526596544409873005891703059499113713425227110842872582308960262052957906320896104113968055640915626857931457650701796072730157574486910555631433455780416906796200883051086501423084433364075249228148965325454432981972739485901333192943002158398657239900298116736910989784738637714472747693095351599984944067661426705654251603709297073256409447173214522667069008647955322982457175970417888522620861278833785431223507624734578645153558625201686241281426705592865419144921022204924566628790914518388991758152814479805823820673573305960177065430547730573665301154872921385773595067058642327969790573483885027294820804640547840689023895842688801439107782088102901696795042996189608454962686212708450844357418967670219075817391469248038304516320253051580374571484103291610911159389506986443516772305154711920958124967306008473304879896029438732381735453466147283476243146256041348071066786223460739744902867423286368050182820233252360846975574033355043930576928207802057070305514627899577439324751552296333011067695520507734657991317518046385921127847741073522663589123957220611596707463320316988142003053253135919030933653662482447096919497126606920494822859441782965543284028989773195009613580909996978528416821638721302593087151341806359347856622092100577326170437664637811728054224912743292368804375984226307137643350468669391013840399119841037423611654986564050666579133427805016225508655801290654186720798923668017312694840736866018490135637350466696649007523660480054100930384704119516789432091392714541476912497991672280620251020556783534886465857675991916427970675984743357322454356274569778695636460705647318447868516682472024376779794751467528149821987326072557991306552689473227899417062733215347197123427048495865215491852409352523648731278586189275869149642634302830936070178102642428685855007220462961862025164223873532247240659001396510888976386516707298670105838577463800027643822985731732562887968260706799655396146544122170383020532802174930812837229121507452804827936116448018175920614926827166205192747855975015583321004148555973804461180822086558021968270477582201828816460063093104792397179196264826230543640142185737310521850826160501623550386616836666301187960147810527698495183545372160592879323670966629321075301711050254615500813911887467377754822906978346408266552752706063507354459403187939379943744731228876450511312797500588588033477499842991780432374418514754936976779615063599654550733124597832490733734711172354302742893759444428329642927975960578442699894693225048011069064782659377832208542706168816026974314364777825298563071048519675880549971849364562972094829735781674730044777283988171899874789391347330578252992918510143233588588500760096928007475168319456514736673451299264255233907379755338037207766116921935743207228478289252513919758973129516414538244956762413633284922407248418172125186247181641444182439229213723282117146783667735762437071305317250725928109264656778702243437226082481553454940613391442424052222131200077206358719383033522675260110726307307037681069258720889217172703041328863835095282714920140923926002411504320166872359809859285672510455616709308473827328061417643992488662261291093352434811850274144219681139128477876201951963540762649276817469260813528892148368183520945558014211032337648715633402585334837049980821366231468059994382626302841632651080325175846661934019405470146774025505131684561153633012234541524075892131052222477493840251550093457594901456225065984919946583077189073319702993953987210664360487944504866688421090901939801796608234822849380585902106109811988109540221955710522488554848367052938483506368637453913809825348511088331076854370018947515170453714569730646813492757327197249845268900671718373152527674302388119515213402802837653857402780834317550202673397600902126445867916682134762278790144325166837272616698734699779577624066265780087681728964382717077573992444760486038748375661446805239087562679114724921521986616055074947191844362717164107528114838286334443200040477290087539915396308345346321145429735194674411399602978120396413255661625835779703815691676687401123339566472201553206867960105666255201955918045787538454869892157489744477484112331722311794248613378251029612120283218217717119147112498033739960094671125294759202613536636211061495057728940029703163963823103571247048955082638610070041763123057907083184398398073038704575513110625597857873731577943611193884351285016493124823046605976538336765688929623246828375653152120118866973163281587684614000996388448428475746392294495775376933972468804369141587428536578625666676630263021468110250733550684612472709695191475454662892685369361578932524244318557548394063306335991413937708283603834804698224945188271453275512780151589187000115570913696323768560164094962502097369722993347918999635096532491443484242337999332135249847039626434098957769177813702031873055370730182046908948048949002786162962550228558855274379280397207887426239174778297344096299904140007395316570937612638319249330683444052923980995529194388219873011286411921923388777793488445224115694132606419555986649881101235679527117133954538092296513721275701582930973457284954001387643797246471516610388305472270105769508012532540432303685658181407482487854633770280229836197891335284924812420323873406701745744052540324548667635901900925795683223808556249870481144509841644918900747209752102078674057930785153262227528277630609720977966752787068441967297642761403543034915368468275954956002218447675476394782664401449239259302492953850709362646360353566635817036591458507964807187910479320152223932914102312843701983459762307183049784136424959830747203888711162235008848641402458245300919126500843708657547320114890207022314508515943788995487552772251170269733911834431404101107841611123160911015598993127510991534060949124021264140357173316384360840587435063285349730662204270145416511665212338861532777430662048812043321964679765405927514866532469389748783578875621045383143806680972329386709500777362488661747433654869985917099831085364840595758727312584247153259001187679592501384462588290451887714133056721863792741372590117794150065407662168298128617955532590637989118921503064385196679637468997112672854014701982418772330754728824327157345768300697269792388620582632329111482766408532521486639215184510620325225993808878515393985733961947276988239468544447380309327019975300335841638310936199507148076560340539195473767753391231292620299592390227783296633271293271292240286260142318469987444928610919429889079121792836730183340241841999579045020453575821747421552589819420060478487077995726198905828281998196534261564294534725337921146837503721192419396458937919736254650920463250473292018828178142794367233214937734920991017326105670008299972187015274920105573138863920774745418567320209445482997901118207432114716582698172745292789008633365863306414656088590886566823870870736730177399035008974398259664514865117716182290269003751010243435325312343286915262891828019608993929886239986490851756722734096630446229687039909579969144620733530742331714906980279762485752073515373630692630144297195246673166264813441663548576045402268251753424515261156548488484665818526759132291912134832795226803435397838996340736232804472628502485673408532800971163949750471162080321016574782508666825030778394774028668366870904560443510582266934074051588399874340679709429871463756601347069524209150534416519209065127063093793307112624122394305604279148398576015917597103519740193431569665164321767221274511010329449547437596509907685939543530217013470408069290763558663131782566528180627805774216136962647380367310483664120263806613591163553152658958908564542073788924245205385245629577256022859843976295963641381735774944042558176389141783551738161604136017989276757360949356834501733794815378908598005143145606344476885906116449410441326949432975813062723039206049127024311359229934467494551562871654914943392493051383678082668992496849771564928850203655431336524762771282917440301789601345212986515604010222296821235225197276527456054673208950634270729874348355035096490425447581555222581279694831977088208498948261466933710326885962935658085456250407153118677139158136571092391384637611255844085914462884648230125789085979706808584992920204909079335693156463174753674588164919257404731743494586057299179073511862856972161800918030836008826369541690088288669434212966948128516681823233830294588087429553027787980284203161882858967840565450540205158162146100482175390940455360263485882495278986601889700354432787626266349881884614965720397701132650334341846795915560708349492375132185684523091318771241336881809516091567528720453608416722138994370316995084640310563546545055012682257547595980347584482666232543136826777032902299011729520845143997076159036582700238557015739784827378803161242123398521867296039321898677750997236314239676521583045445589672573345076168604338101047141787349885441534147865249276388490492143732622789618629620849035961127904230366103131401480568067297275035885519476667248811682621768217273756023915147076454387867131538639893774671602681120897550362844614771547240150185062479594309565626637847773945299235820380327944171470171929737280290828954071354486276185489751403706701831812191260261720939387655795309091271025607186804832552231052735602893506814531140054624722609436863742380371877495851801363179305456499229499537720900996020758884171176803047807349446238876472068379278742892575970211948469726276198247848210770824233362965212666052459224125757435216303158358268687777734473548863620521743657303415764819586925976407488390203460030127425896134517610918343439018063985518813323417048803156669070917079435208551422351430593144781411063763818419723527065340846856936331336892995712468622239409789284824604802488081605394278341420135528134547160059187235359878013893033248215490190018141204122173868701013725467070203647684631286450260520143547009688901466274295624240298234546196647148003930387680970887230314409199391753270028502839021938242903414464866264671475268371151162599212017906390019316298486092621343667250800228467877835630769808536813393839607483497506590814858253777112891423105550136211567151498648449012148698254953858124964109083411598020858643435843461928142781406132486782325582411895020689817660171972664150171172873309465744104997000378743426764825665395502975108767255366185575481117761885886885323657434941256050449604502795367049600591868167331545045555544309287660802486646994701406317073437085529834484320831707123986791269194217435195028943964564021475405786622582378573745864830612551932719867785273714703279558502224406466100340647837896929656407218045085064975070093692652706413352435678724176295948577213015521167876531367419171662413812414424155295701945649375152131659668195345141652774012098419597652365107338499891163192527032954122616682945054301074201414594011205096091781444875487994698579980563804690235103136093106076949680891197752003782216221176491516815445739711014509209609032293876277818561094911310160130789603235639725008963816821824581419991423930379718776513564895264329914239357721848834371007803696044812969587738417648427523513109535635708439149229187135135603472712365535866729769974199304961808747347517290649859109788447276557440528916153825251311438172432840408937158776185773269540992928017094010095367751322111175904408897300727223475954060394645850835122489077451946708748528555847815316927128513808060770548245770499422936132930572386660513677455049030594208042753114290012671499241871565204201753047114334791815369301219117075261904609664831083378830370706293676332830034568003242508385633391787112421049347444618242833028949139741531347964812655901814730529306392310797223604302002852909919430732027544871346174559833062243834367078674049690551672275528445180872082621135191426293647295424104001440978216504899008896581646357568403749676497561431553409561601026048400634950525599282593160513548718815262081540439850475788647589352806923059656515391033438370806237950414395863217599200769269485371461039178081914645272190216903090703343038368358371255243405782921405705376837010639538020014716690408698400963939894311707477999310895275955844970270103629445703165669112861440047361870722497272179753705280161558063031410387284231174884824433511382220807120358230046189678544548492855281305304066031889250867621544968584249588795605085610951591777557058928671236545130437452859107293391982904180938697018424651220489508389875085615217146728813345906389754486375469662129924193617599113542918636489471863290218888004390770913651219302312482552011719158629795936003981594349477839765375875577023238354451267016743829302160835383344759446857642220716445720401742629534811677791031873518134482959419284240367349210039530463176411963395324123734075490342656899821442223729777971696643875055784990441599680049329995171353850366260764337172669026303308560632864393903633119110319165791016408022652983249403841060165601338174722809755834320436355324251982467427616976733065988948030129327104822861057332309709311464077665419085322490190824059725774876739867354473661315194676791697849799361620835726887066833755686260260336042388939396545429433615849608072439157142233018338274353583430839585311682987813508289668850144160017080770885399969777837791660573186135205072416360941389763616305805196066529089066902507657856537439043265387661891022726167884689292541229947082850103229929764858507035030475859351046892993441161551370689403572704124820012520448132730011212481188457164936781866185939135679894290095031432418084804220928028173116198316045626670048924287276306767184224966611898023319860917390610201089856209636895011259315976655866360322554913054258751386580335596445809990810256140544968214501202787435797648033054740943033840233014790191161613728388049305281399338860444448469857850980438411050231288100518803863576456142151337631952001819981441459806498651447294798391668971446714681903740180501732829110634631030365599693388296263414964286626284895013104451958647019394573184758593706725417355006567930101677871758618400054292137326853471808868988312709853608860014632626009369172904334483802882981943778010657596267777253373883732709862586736666721927019044986440130370983399079024638487349369914418719852322961378145876832290284870557468615935304114146763905991509194248428420059146920564486041774240725301912957645344152668820981346414055974157015773686813465218161372491623910980790958093097760321658710657966267053078313371958334303801908832923432167905612651350476626741271453856562525888650365252291970975341481145442451389673699568953632195553931634129884186258244548816090979391772481723121211864292704857177579825214783449590541573460629186200385838982600526484661066238668490419388883420422006564340570506372281853322392343123207342568531420028010935964610160347542946002632445194435566109634144323853755305240214882170708548758540943931266108943077417422121467719020050686127749765565455377318400549576344927467245569454703812986234737666299212458184860275062539146297240902735450431219883624564574525989140687790042305653592853188735496764714206407645921413243096762230338602216107731138392047486307490860337350938351688449800383150878559566889623557890759252257120689062328896888930384340196960542647941972334524993502234530600775197965442295186073143929474059767466661975321593349904342009787582128550832722787783191461628502666577156526628769587938014198778830770468867648177282623127806795614211076910511034098386697102045942518362314723974606704048637115013757053657343657301854869013463651978481870810385031241863218571183471666095676975514701701105158413618093902663389332942243558428083286757871044377944945032284122677657515715758401395542939065193367677605886188143125733189552510350538930510410427206951765507904847387188824759253053190096604853494049850037058001983803727437978039594492279148795398861701405645096994743916431657841434890955216824069148632962442905117953307993763952947660870491261046223804328349744244419285461658547487272794911886302529724851671522728415055487865665530713011743250379825062616253053372115582015400165087126785576388876264974139063873520725098974692576763442313964675316415039344326709440695903380819020757660250525696505279303003565380009225254688001726455144160677865938470485084315072486042073119796401559766214196193864032696605036467919387705022504853462034141079968029164353984026312876653123108948525524228462663482065559885918622844072818541578072503627881241193880065577803331270780792977447964459695826300207633362663527393152773276237689921374296957241197496390749914688624025700444415465824508820092019808295512896204938217036399753780316280899890948877856333265326630381132993189634499315267468458723840425679669513766241110499071818888172036159441404055079498514016052567855635016848413159786998648789201683322230134512554310426099747487364070028110015743441164401229754264180358664207426685154270151164534577783004538471803314520132762036600282208548729978581480731495173390559359160453202987604440315053760622380853043385025521738412413865722761850079732558218696633797887789774143813403363349212189660697667663288948918310847367896963926191324371706789922970457780164718895162378434123326761525726152860275422129199106453115422853461433829148290907103155498873604112410573822966935214571583972719343631268745259746712779469913183241767651281802440916620300069542621310485457083367940795913650070985979389119836511272646892469857226709389157349603408060065977609433431042100617905388563205598503913709581142211060819952175840929120081726301472241108868530906134880856109966484420970665634988204500729523364126997889918193061418476783777346175406029557237505650189792387055475237551413253117430660416718338771951272386356210739290980772601401478552102635277270920247670065411185877091711857145549607723585096406309350495297277122171501875653964277842336235287003345780362051532094948822935202001426939450463983414843695613009278273879054369231340267232138179951951538283812565290266026084395703579206814984834953000766251924359147906467642213371067945302425858910837715196350257835122920156327412191623877158903659766849267106589596942322632069985864825262218989354090317790233091492853902722284783893817351324802643363525780370699486306956082863205816866995808128762337780439605446343230094118807376052637546710329117434259534633690155099747753017524154817441231712568962450368569273170857762709524783405473984391751226168875246888764717111754737871451584910232394126116900754461021006330160769639370881790906508290587210199262070786328539646026594981557068713656439728600032709970947869905434634604088530687359480953547315810600424983622472565930932432125343152788141003571334908831855104342743178218291905754296201181764066741489985132183416412003114277070166400840422901017985442857184748422727327433213809782647915456611793104392007150950053260175026578972244560321667837379812951630441976282839678313617361580062327773758278892320771540612840481858386140222381889382379383325375408358432378188922448380619001199119459142281412818643278106642336370985835670070013191181321638949368806583235116973127953160133254945428637603252956497759819045655544367670066233047455559187965124332085888812473145681657178417563767992859451236404458684777492448131150534375050865860268236094137547325409956954197635579339610799859732289529369837673410610912095619094561097796583244301979930486350601460817263992927886295934011237514245106591282882800676015899380612113645211225565480265121416303687213465904167170293093454355656632806115578041708215199038295210554451265101517113821146277314113117369850819063784605036897995384532257837232352641539084948769388172039150556001943363679654067480283868095996682954436910148587233023095452937600183050317427783977664739254343248153909845459805146254037742865040006290570004930884356948199539302094080997678226168906203987395366214205982385464614687856431416528353421758652666207922511639080208006089958718236009975844504899442438662823781845956674317520985374860522069866756427175874742017061280257885498735718495297217837372345824224878655221660459790237543333793127971744852152887208012429660144427079316715905015902559067809113045346115772499304624083469071035588140815161975107810660677467149299254578515469022762016894032147595957498240209437788131476592504478692362781982494093529891392266824159766267890506903184407468401448389798162224688458736800499382415504785278636436465172976540989334246075595288824784009403508590714730490757727891569408071859411243841486833833787638859079521309976551322555801385257927404140532633845986089280608230991300751034795597113062136188660221677584753822577619894697672665940019603959230422754835515465228632792487559438636623671013699967002067888211919293028520950411253645400909194947187758586163538000090887303145710704630969585436060293883267131122891227689025087706554293915707911010126556782468101129187063989905149557232083964322143462564526621761904760138701801364492394122901020280637478855689201343681315204155930341694680231651077695884041076163190167574313349208214980343013770529152617189353599775390401808307013402984366759633834183209603737536862949767234986570935557585603918627251023180190584240472524128084510452311337896262749861152232473154846531110929449307518122111023259527063493344491854272596366012420704979502481175823119818007805689830749363150080093766192108260937765837490062704445575193140590230754034158737046725397069095074478912803025730057429460194826647308111908988962068741942320012529914199767758409924907432252634996314631027011153197124156455444841358702069179161737664882739164037884515336477914259186104625048585735175324948225626895757990765963841087053829161679191879560390864964097497888542135542648237032997767509105100370723822169868650421994056897100074888482098694972814037729906522964150733478401428653104111652889404699958692495217770522666791848034543631733550049492308501303632432927456647424990398558958966702762792257291863434159237187397211563979005996882466134912161366297047945358315391722008356457478411412455215478265622026633327575810555776368297890810941542405177026021277038222153537570395683556219950831327228143641328600586367497763164546433866389305014957016546743716035381808140356435881177773677436766423277899824600183608516848639761446970121247579940267129027534804301126448517068816610294263535257429130568363377585719641103199562242085303168975493232187177324148962678102513279168494126512698231507936689649502274589301973566097923028259759340885132544362350532297731387598190786370466206604954162344560424537560343066741600251228678496603218168418297706663425681897700353328815887641684574141644823648990494866184586408625993984548041062197894243988230019160111721171486555397850981516660376359287000353056132399448608322784808091206439387325177497167466437815838152723783136432876729251499438950170826353045753775725173121754813409290988140193734710061630530812221817279629622300927727276062489607357826280779081578924842803862520192398470990413728067341993842281246708002347122557054212171858187129003134445103971242007380105745188564399778003247946024276323527927525349966462506246899440080286702976484209596750308613636087647985919906762441009111586545247751172484076038076125436101585129615758590464360716165726672279501575704832993344846452541006021805104763588420059124139479278476825999424802007138262471896533176024927555083651045822887589450236018454387775481912769957650070111820723911853345064921798501469729926454301660064366080373415405646667860768655029384137038249048328781491664745910607260522486640019659140910234276650623706448022309101518228685229682490550141600383501349974917050209701653636781853832665862197920358266703083387282942785993932228727343247759374545804711172397399110737232961590326916984997961920448443094445971767888104030056206783435436608440236379200686584328596448851497265206237632134485474926759745031104265509814169370819459828550818967176936647098333464354914600289939935744941287144542971549168206515156398280083354141119082223954849802410109868560980072597715478784016683177104285082174697156809798664049884604903707938376673944854460351228927937426133641939340550632494600427788286142549300834588997248327931038176033179168696239575027753219457938356173571390771906294993280053503851517863976492321124212252626497048643330465703470418337337314949717081012586871616031951174066265753901671744815197747491284007029735439689435853048671968553544446976955242762928906822637706487657992683946734391196405347207189948904947897550582646454329383809972664553633658826126182808994928705019398264602357078500360730007685141816372887094570061218330233610037412489093453478429372667996645769701633773658968960036513634970893495725995662783879485993287769221043649581583130048437909280429713246285295325698943870693219338670255511578616871334339822111678227211553230071676464210673112679333304551485641348093330623387262850389415057145454586405872893009787645268256267977192401874346886634908307378040693281707703313274223389469744669729242143702935469475042370572904245910922580751009787333314443131021476532250148547639606312634922057220746332115737563581646076317112720578184486503328383107979367858169765980215747339130174402087034992586493306641834126537391567612012308780043393780826572718290698942119678938389052999859469916894718845887512303114688092959596631724928261171640380169248327997098011360579541795836762990536512291050912024688017434264163501794351436284288984050491759624616937267530779748987230811764876763933077376351299082885015708905686127628263236251603886511866927562569834069998419892734041457423770400179944521633016065241620880256065306356231378016235697349361461979931673668680861789685099073265873189520612871898800228469891082379885087452116072243963132808662463345713038702510984509118380088539605401057127019136692068597703015153385487682568581595619857307967589464565512867737684300831162248511099623142097941111423590335648304470899189223027184750289779061613967606265729309027695473518811996347249563997321133204055142232773081310630678172055806049654159204137644196368451498493752203561481937885071054177674894412306116128093247328638907611283777707419215553700270364049801789631715698585326804917170722466050398547441629878615842759033702105674132585823044680966962083627340217183187019210526288574299664405882466920777620865742300188703705072363429107766827240544534659551286926376467641636025031399692008257720712534569714300623347526379863378408602770760854294642608124446413223794334834957624648243102005746299263490490636499427289925345508047152223406653833251153741228566019928860628259082517573040599101910266200569846430501086617038845613466923469455323256223879170767167294877815129476077323255017172559334008452218371616022768377419929702329216055721046667120569045486144299839749661040282099053130729050785881181713130847896861229270644732318531793094240335757757853814122266494312692409111214906027593869099909815999816843579289294118243688593106386680499795426917181501808860108223117217347730093292844306310098122135871071349868492253706091322107447684893561077980561309264590000061700915413883726671835966283629646184576476311919047256775318803236087960265401141434322383355350351822251138240436382580216376523555663928042472060040394060040783148984241057960323651648717395366093412762009329298797031668739276401686558133992214524190224501834073717411499297566305646233497084163324511943374951453677000529581131718071783386976322180933811158333347742242576196054109678164436231664041816084349419864585799091699893910107367655041222228613997021939755551356905133058661408986070944114077552415971637050956710987908860286694719610294375005642653152471698641368412023244540623089364656113117689660133247907975657928944448513125705090026296772836210633805647411863670331645810039203309086931711548302469738106755415718965943894133784485045117900270750409977202368727825861080895009066160013635090043349968487394187630236470589243518309693669154659924432821559009089897299740815577424074834104611089815050755187232146602057863455481469583240360577166295957280700855089287606226982630960976733099521202933345354304230983486874176159852075295921508272706842906668123013387467122511863849220841225871794716209478071341740622674291692969071334665524183690440581442575667247554183813036440027506601981778701453092640872965635006570476751851422381434089441543669371358423797860877598039519518676560362590423752346606853120244399908049436971321685239731562519441440511465301843073850226397530330308810863130289144375616502453504535178296773524675309346429443399858709108340517359622405883793016498499123476943847275717178207618180864337357558492500786286989657326613520245007177053637548590554110334870540960890868737572651766805735254185935641756434239105120059962595683793764483752456120044059426718676873702601347688616399071273075194500407344610842587693180714923724197905037549087609841734673957559722370070410024072781860122877819942650880595943241494929853448949847751931927548636354783470515904919390144087966132094352562325813664237273828957465651219883564419787682120346542902613760777055073376713722991785248383958784639052751108847538304611021995921097082920522866052170341368045409278521103746170840832253587785617961250675202392848457067422181221503318158329726803650277037715236479513247149347959699351030373765818460256141880951764099164690026758569003611168180204210039209664333313676077838096420079873980561364133217240881094222894580231462931654492971882741401595289163893105067674038858367724259228248016267747097604329111921760090087032161552440674015276003067473642597920136998076770100572003192362905162184023992191128162888113631676401379281571842921649024967266282193327034385480156975608841146765078805222417188009611771057455972411306286279703024636103979011235324023228791702248510916024626578532056569936872690063684438761054149772129775132668284790048615630724809450397079395719501839913300056262361715179541880758073441978291560474345096491406553709930418032285382107899527686611455770813327914514834141301832049749019291936660706044604246815540611497870775391154590130263351845327664364982051330151395048272706254007179044863112184461763758152085770511053165182880750324547047657437049838183033737151068229521549351511527935109828138598347511182610065761138185323088555540294614331273220271326803490099688262379433102325020182430629665614371175311424620498220348204974999358437022372869009229224049110176778518922223117013796501632768741726957500495297821147983188994590899713081867278531441104533974297656781855372717945055697941419037785352338018392211057379014516770131334367411829061700455745092625732396157060311627980968522107119830471668606089358349353249998051795893575719491509792161694749230026511889261856269039521969002521021922309794483620993968655885158648926100667001462684564432096806514480220604626765213430332191979944937285595271403954076225120822937980926046481199425198672740440947791251902989231702821473615309323390039160780979859378489598737336562182883995600491781318734764747396732502503974263947124043613605899474639582684005340484079812294077321621097962334172124963115231004976659201554254419133967504277979171986637395368672040904000167383116199199199597036696250815392090917844488058343462660261771993312223257201411124717457217389202568268252757823939766723672069484682598711965153427455407283745324588843466194332335504861486445208869751480947067010846239589116444766326579315567955877078448880598023050761523577893101914905824552675274560908901547124335729426959579877112865154556606618636172263394726393534095413823109537546255357848903569672609903586112922930535721377724489699825920303787143630905796697484757155312927342164599160699217123047390978852526323883689934992765199574680907909380944111117608774595147921424071106064387857532549985281986362038804020192116014073785034759330643072133388626346550727127334922077949781804897494923796157336714692620663589269569239493954108434552982808651649134554192727048519378525965823611128185947812678872929362436377451125023396531620744853085454845167204243300152050369889147630779890183710981271676406108080358716938306154069595725924508237607928785302476184380732103600569977478290960397234919504335234044781273451208884234324755759614725152171462943436214031222623780703773246528361053234534662036566693574868444328134521270182822929084094923456773740710573424931757486278603747709686641720825706021070613387376913481112551769695967771248862512360202787099811656352865324146544573044151505777124367990769739569007437562187214106589067131417373888581360558692262474383105240267564972171017577328249992155812457056609410399136250750594671893389070749289647539593027024329700944858338782914665567176190046382840750401772269471558109862249820417703265961415285101668505250854256849224744200106984286714348364439640111637259945034065452464495567371246272173994986052115542791071153644921327425821367857353539586376948985449942690426205146305144409851603561987181295048639151894135297968343971973071146920099729187201052553084451092836477705635044644308543423793018473301134945344439090839122449157847648051079822786204040799776859238376272530014271732466688320476095415144768174542092751583160623443757500342552284903832303005945986963866568672050640191215994851752112103539792634455147925989954022172615667149191852595318717372802512571467867518068574732378720554807416659417726242466650929867633563544139426554763741245335031505996985702384872534252197893969362290009135151767081962292025849781614963506570271708700574036595894911363137739516886857118723334043370808450655927717320694779567823012738323369289616792394502323092380642935682791944578753379866262632980978629324071996619566630372732467812953972789625398169975775632454086672510521203029742318751984206563331633222109516503911129327642760692285864774424162130577261984503218618326557331234180330005700690439437047418634640626124426105179060231939748903419386723619142375238734898682954817024661486963184689995596443809451410201736709759894310881582091260922403029115552559533379174584590530823229750711804471834754431066857079026999306293329183012053951498991390676359929956364689814332007130451898084436008583814138245013015881307347235763463672364368090928663724708450868585825801812522014692540184671947649454973777836948374579763457758582610952947871753815486761031532665338133468658422546244947953145788296237619360519963708218956850639309108561463375764249004350699814372975976922753969866722389059397683364896683444261355414140060740029387931386893141085783580127799534913956311038383885842584743628134271875452180238549112369952926149141085794837590939598255198641785295629625317860628635795608840492926018357703283785250509041029544613076838852392493860113095636777191096545514328519396522311167769459959583281835569226609405985398787765242417350424165051094736976697102425660117928760835817529643040638372834947699934636911792447571397819424592034781823300346029396136524445184662096506880769155056492683179671832359546550704432614562041698540138489958454189997352938106528393964407013181501979087301122921324950393634681163640079406516805706832358619272473197581928583283604951779490919140844525560036906456273797084077170936717205096264319506702369876435052413518366708845659831011632698781612329875709055318625483429355878829748519216704259008031100136068462200972917312921846619277259558341380139910509042736569697714253590985764520088641977324110597154956278835533494653249673582965910440918767753566999157730566239207686732578760800985200470097812248102853012336830355371478740077555571248317706518682529208323185515454121665187157806766701793152720003374838050786397353874634639959789462775246575484669444281108039009268351893899067526975633648923026482427629692978239010597417695941721877281036434169731537216035739620363216282947517812480928655442938739554239498859163958979066994213902624183390726435179122941732137953589243173132384767795777468658804629934351579692736561488759045764800815578681328273211423450201807943006385668966515287641353613843487908425051264747924158539840301203227338410896722145495318634072221337193159606890760588371030300502600291853613347136399047650710480869235968095320727398164401210292352069033470978541184544664295545456995245883646406342095192174186303793364977096939417130493509217191239394229052269946227649934376242718759932292212306871261600844338233283934649200271073416879715003490168702154744465023617573378317249590355192272798524904971450501084614367860799016601228528473884940988907330866304675361143707123517431006939818126230436752363025560042079856355394179910871699635068556247013663037800545284961241587050241091044208001826552173044674713014565804520876794413004736006420505161071553630706333435042321177351569737584908023374689319619317361374161149997319506901460365008341541240877171980547691707737924955145856258321256961077989302436899101729262127509971069746979709534631952309196052612761737059766147233454426125554749799229082320150635337080272407462096181593997299957276241276102045581930072297119008670202814256679339498039194711083313966328812392171974505747386141668546744889400660230254181382707107877806218174373547048618077822626301189489327072015836948653261232168335268107130931847334897468184440760518108109007386525267154987182015465627760824177266249117153826640839367472497423244022265558663082885530299554157719390233855331761681414299253629404739264945799065694731637368541600827222307354931549604835800437741767547559056583659946931651371829743070457320432241901098794535157314571780905080868775851530067347097538675795357104062469845049500714031126352052970794287446895673586797385153350449625494427814966026293721268065687531660743715225399408396235412466856742072093184465244478704925130578052190830536191621288625744819115469746389602269659834238904376143479962681434295995665517584813766746841290099282785878939266994128568021542573825261401149539957419279209938014149841309837470483516196155694757752511794900239346209111276520675124141306412925347779385616727319230130734809987576094744171157978742127120123541063153608408018052690371787077630549212281744914623535656324048260199491851400471715035524602971682700231368917287526681068353518841058732340452733845762661315614799849819662828524285194531645485329712489258191777958619095921982740594852171259469349339264212554499605258648295541626059726540500819567128673924616486995277686422701144266900579168367743151527621474531644466148688099265422598578153405462812693414645469083695405633593675325463700179690810839392554560937465116189985069409055855259790921253796901120780573207026943085402069429356800537362262831797410949297082712758512739915139559040125849064096182679255354399030471087396507824356366698910921793300040117344604629456801788970599611022532870715940779211671954743744417446161421785870141889502323713596627711859828139052542009057782808479362304183345246678019187008591082976268380010736807431005382272073578766602147583282202591776493956388588379921227301279804484711981388601095357279274547709761303887084025010326846301244955015739613347216790346634536212225114401916681100916027466124364203772652362134659919531887237376504771088797285516897360958239878099092053933036901482399937404314180314496722626870189881417842433383205301352096275327414081073304991717672726148317551512906800992050760634253430930753287019097704025119236629103688283567012433605305791874462374475101234711313524608672938729149780514195654045728424168949360517228416467189095187101838032056105798439464820903510695698278818242981655940838293499763860194115785385387578815520021066958124554922431041874419257214782967885690694804119220631684842405116444763873266786481493453948230230894657962468377018183335197563382188608017813441152589879547575505575605022184915528261336386100238230672597159598655802177867999849285243136550253383837849710494500434766544490133609836221728353465578677159931785349769231083292925055241062597599809642201681580676281126382473852037454904375907372455774878357637216950799569541954032102386138704808296930895791915081833727822905883870296224758705847147004247216713024567608308189975675407651334317619594352393257770902765285450288244999109888271282368218685645096692984931787244977123954149675568156460518402792718548657771977285067250635330884263604641415288054712418963638931985892311326606247700323021559880229832326646712448321328517659028402890977496537710994710523395977083324707081129815004544934160627865299672436706706777304318316190231585848243133947081669363998755054738584770224198752912494914182273205338436199900058768887750774657931283959829660570464714096789577638774572392829880922717642902596379398125094478496601677798132382182807105180064579461412734442949213601833153902822854154021825138555587694880199724745080843939247508737727261408762321929448592409800946462984640079433128681949206940273996366045384613313357797471476077906108769124048441689604664068660558698272139631089622421792434803289463796552874553447932075251097493501814767360397797527098655523544394723750891695607382272040691808768163186373665034722853415270005291579699309360012658327799036492233452726966981679942245691799496945594886483228997411363609639240028560768990733061586277851575292710787107780122850316021682781908002783084882394657127205508376093097396735719754478749823579391450870338195697868126773074365590597712152836628724930689212799842063796022500943779597460462091656207192705081996358371522285270294366784036230199856662076486684001821406948551448053659718986350757892250500343982818760329524847327153567958986793422164888860145868067705446874730920541133659789971034395056121915654858086629640640685705194013501188521673815866283283625756277222525615956690021803720904518814473284288086404218200939977374180611078210953937972652455549295275079521385275747794325235890010424950145084215506429519077476492361163150584528484902727206497432849339452239980914016212174357663572622114049397098561744338812370269368317249398089483461728831647629469268725475026821288691717549731434011088130643010058819494105411068158704010249766924146627665488791941426575184622745978132675445619763912426626387047784970946393035733634216765392754899822408865763353845830858340244546307162852016485471781992450131644524730925838902321528078273218722323337454713286163762260839498462907409391288289094939410553876187973611606503217041585034037493086065285266236210476389829373311626879948556505185818065813530617182220785196931194309608653769277443304085258866420057342431627127533151851395713136961902823509039891545649614589957135433511660183186629025246534082676195145739984756982447279566942375193572382947862020580219381748541308922354336246377557540724518570911345797298239867200833900350861106219464067630297291556552737757137793661753189373395275403289158555650919343183494335121688868387541330194507281329931302905402173065155633630709500954610462939722348746067579017270971023397908194400764526822125371176442719436093924168371840277850336959905035341923102686389059076159466158855195460665613078705618928934100380093799372313488238250193169382908731646924245841485834306311145685302999013574138848174934507465593723107221640008992816087185003481842287888062401403296941434104469310826618547361639674722939908422611949123135798785220687820312541679754028582276057566679169539574689907506652137640623891364478223507412605547251464030113263277761342487783521419728438772381564420569159447855060341698858080641090547832305262430102584677142377152973189987284058030970149825845101997378333088249438958895630121783799179522131779366462890519577177917645264553996361952801152754597499409048388262728755085609828098696163509091622900434603774105498093545524458435652500106908434975264459112399402531740738130932837590854489855263999191974556859787198180781039629162020727686178052316187297205136266819773732306973731132005485584624223225172067574446072152364906815847334901067439981195228998873513176670009704418254325720828442000989356504479336953340341023660973032029938352749844773464073418148778569264456653108151234729213793826174998638943104744445723283867231170891460982438784750851651792213947377973616112918992517424085579312842097427537143135665131890226597891403205085579335065810790812570298042356188513965251352063549706854785110728387817022385169652048109538115323572684348018863271947504959773439085627854534788560059001057920264093852662363128641941118706479962831633172280936187989042394489547305981818515652214373871424874829870211069436359246090474137374999250281208462438254321235530287161596733559755205829587360419557904365686354873028201990282593084172937177797205009637144593091677246520618334494927173100511503455324255208042722511155740217155849235591228564217950773998744148712775158861001013409416682055086831451863538923861318806047157942136184953472985524229583852289825463900330548856451092036118747359982029453741949366692146449652572883815753985740351945316247224287344606042600750842175752199956079356285650205469986207654626178508820924081127670794180307784984110803918768935965542035511942967698323916971532967091539834349750657482460267596685861530162153640018933024215212822525720626158998940959254321304240312763732756222280893215328434660251055401346915559986646467809806934410502300819561736599429891005550773270024252106321191287529390155513710112348892702101577287333135036543680552014679111459641048180066959585823732578417013458812888893609257566825226539152808955995874585398946813819579160678818050898480212285171242957944684834353437288705107212230714294796064053596501646137482948629659033143076351537609696678947190055687810970617557034955234970886605903004350495448618961189075429201219109156163098662955962436907972466940706831970460823577990282190224664860685739055500181163436252276781263011995193782568575652414324124430777237350618641251000140388037505104845613899075257770266047413994769739601665381096439396076811909281598708045062390407739594252581203861835042831493667029658993615384300362062731534761265864288453300553308409647068315375914618048595980257135368513085674865908491298409503384065186145376361075636823220014328079537516390723444998373497667199604997223356147998526225558008126226804133011478843768547992178902358853300443551461369513171754676699251666550592960815839894986781693179506492133303159883094187378382162306994633814066281128135868309650588392893035591177672274585944354408724021069317932497481506799952628624454026140228173960301496629522743743271386173585768594829437685050706572798865384128225491617555453084443339119324254948500092856830696773237047578620115449919623994422944792685136878556274185300671821068957201634436191467807668985698002572565449931650165403697704105907427484891133206914433943600862319869478056577437307865304131971545682089284284603857911192766624658258413126704138258390496175932726284653721150290857499629889706138933529426029126871728933470579897566948024957907949723492106603107783140157702485609635786162035673567468072904877296556788970268537223096329325290334181723849842792545377567215050758233044305353108688647022196190314012784746277763188310220735185642210819189192458181236889790673197224802117613359438170636805722028195379501477791377441983512658924722218964538623586105364250067807143348420534537240672572047874647661446503213374614808351422100112856900928035932830985751129800134398881127126040961422695730771582855748243359527236306300243580432519448945584119982465609846092066272211929606800952845090449265382093284326612297589463738641098526784138324894255251821426929642404203560310441312430814157782605082128576543637469360954316396623642193501103569655296418629643862641394497972734471760295343265759283191710827918008104628187107978796828226954029860102112630972937586431890832743573768871834370549665917971236272518488911897584529496990485850458091844673989399922079894800827043944921231729575348787690437354140753126583391551996116521076459882703791751000620892825152806690549240561907248012682583237009664854603727009820719567941046569621501790276287249617467641855286315356425793595756566969824197619327142856591100754428498845441728234009782500429957231007347527793784025860489190650364665581614559009990581100350966610701827956720246894562587692023947489568818871754191135689850098046476873453951832454474539870233666541788525552294748917783428641645194101504770777620841823122284611427725854668184041924112187224171742130401562171980136245004524821225166888865969294017045898488866392644489230815514091633729301076375872738434688217711790390187390413106959395347494971905390969378801042810053093760103830500081152608618821723194350753871652302035893451945965035808858477636073834335158914481934591971031208112549217254022422168498948779947468340136549943464305753286433100707778711901216156515927538072704072353041679818417947732335668417457453360156145007914784899375669009131735206378192430034158241899031893433027846234794012111080643791689127974889177058293279446263443083195162579266579106300120178393410588141248257501134148662939377638027644602420218277338136363323497220868418642682288531206288319416463794237539227329920379916640889513184947923403932757933192831013441477191260089935385567534904765763918329791253311060442597766691390695143700478498849006826018938032778037228713996579347351799009976703250596747580065277345866233808264757132745759512363792002037170868329983151263154879034704568201418294392413804544716754366839539330263985573849712751560103254025330261214217512362621407438283123934513150449567216355047721984248540048579571926647224102735763321396350297543057203068325265284441518958360263685630210771540653245412324749475493761945518714754443221610502864738392433956726480038059443997665165814888547923696450294134710533994446249711064919171677571372974229861916512262049568018663988703151313674497370118525541390552017286229215435084212599318961108753403929048754732968196458696578800058175033061078703107224561161184785016825483744483423434237500174860524820486909914643591239319156250681356840331986205039519760558849160140671314759398911717969697970631513670226116020893566864195819350215678007331917053053263449385598248050735208506919712878616714557787552098703603786015024377961400917657959720230382588354531158041604435597659647416689990864289040893430144890624863979943959449846326321407095241754753775751529763089129395418735728978580525698077185836068936583999208909694639538466206995123876471872159118742476998179728413614671847753261886802831689547043493020595763534888131573458018619413702472841598459113606308124502331470505829061345450131252525913091144869371059299474458682812849475272200736776334482103171716368313645175403989753998846683676431413986547446226479763214683131935140562555114788082967742235266637922462003399465939702684663893014716810681699805398288213412030341881068435902256877523556251672244111910736185053523753572602832842718664995915397902358547118376320217884339383908253092397931521269885631513232045629006003589680831399117842159901137133396625195451390466304303153189474407738739180604530975248419407848784930046679852995100191082991027078606869449995626461554783806916202815834418818062718826030790715008564768064277049281141962509473494175047797242392916391542508451382896829163460946500616117816686204801005453831959836221265897304044169928584042754961923266379597202354115782922718838951393513166455068025365210868791689348877403016514823137281723177873294198901925255936821148854588399328822608841929454633418929516274899102619966517365489720078133211737250301586502160763870788448762372754111472560780577796036127864873984344127051940440214193640219797100267988574020878838929622212758121164048515367574487331242108320163268429561411556193364275542663008252908079470510167337811261834011709229232232230487645147068958922877477788946989563782549561723622137595515698816281222841434695882650865110644373675691203965253203998701939761042686275459908677890628869964205543137841047671665984430413319461655664613001770567995462388869359448815077857027656798684242659757021360384546733331576150569209494235482667860299069910767153936946136100929102886904671712639495687576885791096537943369046875961470854660159246433915850662610867150055098265972122175900853758738552986006442376234718295647944559222736616237812943462527122731777557711005839371542692587220855061391520927875935621891390666509267719035951115370067763649159708477191495852978396894359404191345764212380632887980086258005282042555036623723789882527361172758441364372642882353857994803829622670220301600640229336989243463002311119750483932915592952044740003657387713014144303689097736378154989709801117641011984535810915764417296779664544131641853885706593480646110070580045896761985465644120548994648946558257693346598620034595327151974646392650215347280173152399345601297180999642421153460712741954958033025328341367195614750329058408886576817615373826121559031255414427802285218974116752746379912912074815423315565298459200315245475660229692759113454885579945430874101744093458643045114875845218533454177975768427399606323118467094339669905394272868106132787020808714421130175124462788731094574614947092596994462742892113934214622768410747848484238959474026838882882223798011700794569849711468919387990172820217685652191946704697156939150455226337353233593743534203824664224941451076679845366318710653738716196138796416334006690964047889397593304201390923181524303359546246739730623894025938930933913807689726102838377281813550080042382002546825139942734641940183714215441477216948925854192053124712537528917493222468814561833850317130124451538694340521088146132897770652241452230331344669929783661930569804279649908102446999224698244534464376355636448586167357415653837695002921800293709312467462355147049935473926390381575955138580243767001435558993626865541589044923623937227259920786836942861933146549725294555551898214703204785058762897738887218908966663353878635838119065472695374155511110523104525916315301071949544578576347578957589919184935437426441035709820255902113797779220914328081564053360665049525536421935073763503868087506841287260843522231944684749782272965676947824826967891303391560078658327542077072450142888994565318954549913471280541766645172090124150925232312064652653844960810555139043823266538352217228239171037159076291430742874340707449767422297637744889912838997166948360726075564885196468266874360812085881162724814641494941791930439036411643815223786627545055724203628120399381552515964348495780581175965130740247889311996727354729445646282524194074445685748126609794604169474372653503061139883706777673262006560393522251033829669090960170060890933806904911904975116818753437695047955073230540532849726786231547481392259632161040296295999217936048611519830979003437274469300499295210267875519454633388898526117839211934075678153827379237394595916744612374227823472857051081242028975124513292541613654556316818593790269025197477776491831226580143690726849887134083385773866587496648307082875204300109744757098096296010565503557268787158260260788260481153389802337058289882658237331424248462769719712434644239033752844681075546693104362286621128143793923078878642103253619911816791274994069762337396955060203332005218224673392588233118435405023467288591924518675860218186568506225061466786223383848662700423970459140129485342326463477637734475845074527812546790091181608708572123981233645632578305309023541971785263166011431621904262275440091503752473111959813898608766710510886115877436477484119413821477994229673889073175344862252339705743757027166220381734760188746367136752149892280087448500015751065151773515414060485672504327995500235012024385060031403700110987570716147589123110932833344069371571608696769568555430988147398709085479816308736280413956847703646129708720265163333594964673650584011621138629443031437072322660878656144234530719166721301561837375497879006766999458166486598558424707470980235370606910402729517300200363239616441720638149857476561932734578641139042214765461757667432033399615426904808617192761960095472874979276601341975434725152728846220792453092951844735793038445345022767467329315408534136914306672646688777092617137114082774947914983475199611814054399823903650299493208999069984223382895862473137733167612344076780748868539140490995490471840445251023603827375523148957455464717310656804594104771411915701727280174868848950966757820850222729877361956010559452094329348329755544495172137169664080443465950897147184191812131235464254817694238021498952880515740388487075384918607884515338475611372592695804116980608574805027912504507863525040658598803719570015287386880193520039526308375494209011775590059584448603036402973385792297956546948809964469075959714809841478074399562882228701300260036365644375304501266004613135275843433743733486993932235568232807667163617150243548346639305566525056224936201950655332292076303045433586526745146468176877333371486165764356364865417401163862688300061394709573831694405639827656831473830373281762487897625345810479731835368236577266010747733505321124844406383344222965381739619799151992107159477525957037164648340211564995902657926856213567323996220072854732266589684035315602556543644771770216740946187384660144375008829918404064036179702640647685788418713149684493669504806197056826989971084845262140780873270763221107503070257349054535664512578296712710557311497603922631498469517676767695015228417949802829646276161371608017665390095980944087374212971736645937104919796801738575137213539451218316137362912173922436802647163773060572054369131660222864071243142345151742242079055966216786151914375008537529223552872403840307671106956043118631366116610221228577266583369141337799023426520929377562597990687075887125716648171662728372428934293044162560890104453120468415329331737859395449208046128677236509000289682889308269918721722000585441317948935639761404616115820929637665639555387722588487482000168651969291631907863285679493354126932471284842156998199692417658324752500494462739159194558094029222590934177963580520063095866699473723408850243461635739858298086332038194302400016089390096913783264415216204040221850429267067855415167909849408286826655339185835523883096247521546763793801300458203904665363947394221446336614346990519605152403245051960953499246348436776227417091435552253882921359476666659644736037742408824375578845991668279224289875045845551194904171152265555561458856128868039683959001848061146525295052940350379110534294609032536168443867283158714822757604035198639829948722128778533270577618621993739580500926778660338305727345165697944783476289127014096967981586791806440661050631148256636930760281229792372619144935109598165327240524290214171743569740158964483835742792964833918598862983316699848155011256728396103459581418551260279258381250361612043310482066444818293591451635733817491558573232494183469782429647333701040719296615138589077392546321568918013459818842309035455916783496333151671995316633203568741542935435813479011072389709869738566990697439353319019178280826642442803131693096342938856510404591002938033744009622612731197978046341549324632402544501900122235387591690584611984236675414633139257401037112483015041054372870959810916460118601227672846533306463327087906806377465015394489399699209402251922015260863032196597416236863084885844829229287122772724399403956219709255710583608831943032567999642130122284504377993627393982790157808350871462396650887818358071455447106893503841982378375858701698368278634911415422765642197693543576345606588703466260225908604924412393563904692082411710256140395827180908412053775479463346281574199584501127061654975071463357659463414954260337578635966939767497717853799470103575002987942217317504377822794974885521205669193588201656413189297268737085070042994719915023962806360975501052144803504293501908990386676473965209903723055696115607800975122307292825045464792016292987608224427273651988410191485008260928751335905386324835896176820584248875512015464679855723345090355345610228314281948020968960371229145770718359854321708962625053829875163491167608110409115712293275481363643498640131851125411576449557472632269947146721191309351317574886693638994308704886591340035191021195259817585886835504700660526596645377877565886995640939667316432002442574122425556168805995167873988013339764385388665413789336487508989312877238369658521021680768181254381589655989534868754063259391330874414150100332956252894280953649095128169361540003296129428256165520589744476882357321420204973931987309865910015782502950486421308212841336406384285947701400193234995163467134964257388939656236617471871699372527602515557364798869814457259527741408896339895850481345130495622099502434866937077326005617627687789433270496331727648026159963225753850679800353779181025981280394414703534156935563497569788807844357559140778772950005257352716778842997982768516325554783946504708408009967518318784651173939457001176135915351390071806048770697837291395706010578033749349052727346923286728701328011346363638248330731287210802529938012012710546044067302175168714819298417628916765570234796606651951371672985035081219565814335013515312610100353801610363460978905111731948463322577035307697117302619225081013695372839648835350183847858550496742900527580553216100324236181037111305699817360938989987588395283174542570300480312579120889778239786255274853542268556005304676125025841548840161694877451970788087321597909516610238760612956978659491937569883784028903755703724100971469268219636700392729597751321523525956312349240036503888028753759925651449592250700189287917866894592857590553326533273752801567154783430231442268761394097602967858492245391577798777771354867920914063022126391244433641698388111768889624297039912656707404776564355683315644913179643511658122768649684720753831499611003755576704930703579318945415924577928084068753075338224530091984193118360085267873197879569395549088166617355278835669401529661887215702137284897247566779248526938185651897329276212139682232274799719274102088958140451579061914028068605916953223798803572986124716245493834947499772804623193900266361461925099730863204580780355219918542500157310946779530103627209821294936433153546977561745911426076342956160391677859406233663887202125415638693725913772017302132366103511229125249988599982768639354295877841308921644119694536339326436148055113640350188695929029931079472411848966731404428943448575823408420260550173270930360980207154096915691524620754218963995314499465712141671152966248163560486457881281767418032469332253450980156117719440658977104473210212731910623243104222866750120870588834003133165001874795241704825904470059851931362463266069042245433930767483323178807958720952112756249044563969882836349888490235870995802936386160232299833436060612136838845907913202293301671751437203868518820918415111072395807062653639939177466070070356974165765513899157799574957853279462802921829110297628727215524001639922233366476151128827056383639494358285215948307472365396870744146214795605826958010437698272200932941517354270673366454209469116844135295557066262278350749351202170120890551298282214909055978867199986361303758328200237642806237859815973036869117543101798818556746434954871865052040812664900716366596154512471788930071431687951622765102435229951843027902025332336566764223205674775780729568060032814768760891197473960908313278467597602992156008598815729066111919947035618636472346697345112236782649108663404506075022750378723313343303022594058867749595651341049928258448689354461928055482930703869901884459490434600824175776822653271609455123186542539503336159080495681808894892243673337349596182933650689108307153352984723130057707560622430477844526089636984519178009128980072019718383665500146012603298653695795209328380930704578830140929473086186515569977964635254046354063585525073981285736032967931383758179293341232041173546065123577392604871549224464167640235347936342455489152491680411665370426875752512638797228427734133268037345179735446649690065493599855544583153326849533837976105639144732636274532583214999827800253444238777825795704611241125422287658925102550067255760776956761124693028536982381082220354925440830013833064786714108133130898258708718687163029712571172344747837026781019256904573935411192197202530090836412784222305580656209156636452877496683768981791167121515235537513844632751130427387358017567888291724396756366200076416430365774233125196216247256927962863818442466266799985322139756350677045289269992041458596069654443513889755983686851715512631860888625540115164278029861162305414023905513291199619424365903760410891768260524524776343967424107639418154751697839388519429027658041665028192010380822439319947174916008878762227190763351583387597504630982385973431143102571925309409737554737177286363292534731689891257499748386192815696460512488150797177441354801072031395345155237455651647310020021268740176067413991905149842000853202900639154920170188725290345573454738253133755466175992262088396790473268378751844893446020879786365121223128879545137315362653653123473848986620013065124413306505131237431096151899941592879010534419122427432422494692662614106584533811084103932602537658985448356946760722907392545307003501872017390458298726461371966583336004779366646918641960734496577326136756525362213551102391302004356121079187278540038805081233134359275685238910506550332729455217649534506040182653682954828846309875203188057230311232851443184833237141060636826329244404076635819066264812147797585664159133019251537803323755882872967404465231987682047963196503093696202845101200041228130144994540069675310305461853595718729065151589604684222188592347946025163458330837132419725720230381249335828281259805739027887745345457536736022630795308084950365091162615704478863151197327655882505628085184927253791309416816091300285770478952941967177764834047740155158882535674777082747397777924390285791003575085806400466542171508622934561599539793064922025547809083681755448507002074468805455449736807185653362470999437629403525120453581685065950050008833833384893712629565439410671595961855633290798534010917374647558976497461383054863159955250338275782529571006868199761363750138330512436275545126749911662114663289465568939812047587210017290161832137611943923946869880422823445000256928200752608542505298501164470952450544510960513560524096404480319612090361410702209097661762346519018024899368987480749587744436757983035921324964113799891766302479361518377303122067551809398538818162023650154348007721514733453596341002104032940578742365625752281345894985870729889621469025921490554347664883319307965554864899607465050309647812831535349519550421767331933649292483996891403936327779723172784009089886923237779406227860126102412398710961766677198031055471410578117601760994874493078605738266906239510493989324873166821847847640614285864176538014766461705442887556964365853941918468313366241393780557548535749892270066407538733263251191265847759178871253631361104576396486114069865359441908604445485403258880745834342500685437599289079228147894364492713162732427078979117427778859376313706698349313123369685131792793507833000788856055864998923918187616576313429649886051326850039703558580148772464929531760365742586546273153981102272387765250041495618907445687579254397037925134651602997799941127675486190631512282218424170777068639095283583230729442116212904832903500320724338905794973610475015941038688789411665809446065246758866990290964722471153507115549066022055404292830088258122630202685034594837697280244966611240041369497807628338303810915227602183340115617462557940863348420659500031280508851511758960014271821956975807184401729779673164445216883376200187702233057285438545566680362461923182559050909281539037708416753431450490805741799070710944334719513897350587531492483458366703930596372252890315330742134651340759833488435230369376120839307851708148998947934035744360783769688147006555730710765834349821838386299508147125627224965434767583659073865730220680866258460235242158593265272232815165350196050349185831472021586456630734588013897634388388555918226230405130963004190751421443102974340375814149645187968379938499061420281819895934861566509466565369840424950600517792877317670361057320479324768055090723192500526574245736771171005161510971763102288852654880139256250902196784454452583258419220113713666166650112171274250912644340485418407823053173432977021592587064641680364833956403910238502052571109806187899623828563225103888936012544660788983199032334385173540082597286152578852621134691219997573456900120775095618171780662533737698613369727801539329600713213088470771762324544260406215837821629654372597824541583716015287160186352965949582625306381637906755552195761443442511737754228956325894791662264354517073234435866993538350347657406722387523288803826392953958252873409335157641359562583890433323525818094518986362841586657165251523904866666045785766331003989051614204167306712344161250565223725404843128807776808652620031737284830374694362381018705917321363871234844389154306811947937419833098892878567211290897123333200141476179639565004982954595734623411970331560968959493084245945202714043176133571130407306112582575647286783951065434618610979626724323798769050628303661158278535353250489563476086262108250224847589489006100287917882360080605224027776636731005161354020520981807360351577683654454770197034921808785395520572421729628182097142912351536807587233624991687488767603921056129522556373497554397625524404603699912522897962780883186068330562518568224848532044919932303083509769644144069142508454369696541477512459321453213108102741754219713162974630171018567820880836649021031190903879547206959291527194807205878296598684378941232726982549662350254963240709802870358849560255009386381869872826731512905898368736631008904863616435290600767915870123730776872232283899294190242887048907727087294549937916357092672623073961272318213161459980847783774789427071221097431238887622754343554684420929711401429252821453869661593995510215643526577346046541842955598245990947469387117215884431184593725933694561088453905331998439456200961841207798079771306275745840036078691415835002687827286283856305764481629462333466232228637862719550516143262527655757274164775015987053129399100601903778605613047921914679724940222770653644637980177326338351201031556746834522939836121059350506738373419010656089314773494665383279337475553497390042356565287005825597724040275644199805615615325014030354035328165083113914017919628128837869264369208158527671713314107309271041928046451402516892204400592929150869322966759589146591000275033539914013956224439300476618039534687033331512037774170061472882971208055958044717526753429666267218082102231473101609226381601979250863107631209210936802555368398925994192094040264449860118438956199409974271930280833962297587813266004100726437937595691366134725006763261410561315097344060018640295267233276324459763509846521359000705660136808018673112870660061541485971423660572276141875998150584612807126557477665776053399600308172231433098844295601746842001701235647704909495708033934766408427357547726459293341553139557192535546422452683710274505393070537722911949935504832982423165238288264154841592155187440136312360801953489002867875207348440442062808096585326122469105289405242841804673309550162070238677569031693348931854720794161390983373563705159572306028206719191037148273265370247082533507841857156616204253429980255564595027144064472314757631969690117824257158250879061974738828342059538038824296895384709924141982772879761129405085544543711141408434111353328377241331973652468989231403113362136798432149904114667040880655397935362694404017371923787418192244560889011702464061754691148508880085787244981566722298144784177728486592797534605249340615251280998777986764952248256461527994219160967387172771311703437708201966884983494901370282776173094755893024837199694398343296610327387614410997150161949606019882261350538201974425995230169608352836541239171759431870469204561732234688572748264854569745013050403427638055594776494284695296592978397629398373992803644068323336138952422580039131231703211181890756977420400402271163627064875921801524972575273985702433726355871450881306283665600119171017222665115768850965000973020631068560109059734115689641738674658718926635248525030607395440394672743742583742895163263633499336859780932525244682292981527710867370385413847502113239375976939702930155777128678509072761804454892523107838951924564268763601969464000137599655562571957516963863223008788747225514830424026553875401087592411703210179713756131650320456483224071162725741438779741864684977625860849955203850921999791508843610559164705394993121462907058528254272979013003001186406412565360478112010540894495670133625632403849254129504584669589422933308399532479486557635558385661660745210999989792817547673439068473517494377939231517249796342084115212885112683877323251818410437241437820242766318602624999542075549908744560190025307123579323442590851434812628886788976560119948399394982725335135712752295539783530285407744198843908485647802902510125168830954615648507987136340769610418101478612087886541497235761843304859417063144084359539179186174794729099625003629835213887006558309993570996976019131771116348093062176708493083388342521192265002350567930795261567841376330731795258544118267285134963434017531185016875233834029707246271918695200876698466489307696867400198783821927269267516486632909393915657232681888214508572194176174452564385056369081316654185682599577008458003210017121427501824600464684915052536754895700722029655688198460618186562910279275874202670423958049029307434699859580717769547632187143713904303502132643295393451600506013047108315533587633448622366607366296706723911462385663531300237458639839665635933808530910837018517199085294001668520527765248325347879043137673225032994704779736143628640277930851197358524080203815789043892316746402191186605872563052335062896093627070748615695668292094359010620087642611632555039372688567479729097672433445371244321604684963819727212159493232438857942491229639226181899808360731240404464195820957054708059738254383196472848312290180332064752808520091861389195098577464911093447601683562728666759241192804115326695219003230928208987101662756688453736214327468141934477912659244572164221401223582019944646006671423763029434526947545900149515984860262113159495279089370360112200527649628656355725794545049219254349245258254669887250108248214717919284187551921253103399917111388264157930117236782155005588147157795457012150114756281696928986649714262532991224117441158701002262064701399107295928409437079561054963711456520706485071110817297876861786033051814920291524604399264674475191350241058203980255700879277836157702758309270146835003040982833125163743469882542781759053140864298768874477540781880516975143304217981936707007584801177717856943007006740899955701799181909534286136413483338400782658842044764159445449679315383600344216662806949761498019705174506386156099040046205731333502358834101628174523512552625418121636235456961700859700039039374285633415495872297137228508042905550760447429732311184448971233835077313504130354753381880516637877998155572797203253288202123135771580542962779950909191593056291502359055784851468044467930325478145110049819830822309853323282966148320099029385281165185063634198320099137681792518569766171962998998200281529871850345748437318386703871871646251876440867459831687167651097578169991467229625265422336936668519498580352713183882330180891290959928551710757633926140696286953087604999695957199935325842279780676649474399897674546500097938849532424588436762080503140414647897799975468626307049548276324064460922231729414553312858851703856476068750231454336415652344231108776230428506321014530646827112318456014389495173636330058421594096760850500841057307786936681501244478859044570198184575052732313888392520557998838419735844638955435098917400696852568648532151141103286297959723386476374126331686665939504316834109620043272847324137951896318763011462269843507929498400570738936955146283490376363624252311539797858061863796492647664401533004426265243178208908400401975537439089546551415401674546928860138217738114256464077648180162684506093824649822560788940823015498373522851469390840410167576155427634739058842164343399827174217731694796695761413569109313227231997892774647836744344401588501917279877635455881630523957136144803547654966479931444584106569440846368483996921890735068014124648602597819588807421514015611287873049985093621118186474851049862203595596606656830976968804910834096650176839613996857351106173363975679022964459631519582330728506667827539837982358299789212251007786756912586323741197458356667271395085003160204256220346035113439538069107209231230588012969493498862515315674739065873218818756860176269581414249332323931883868236932395903861788795919331691218934006803152628625244782495584063524800718238160486526038986054387682225510422882777822599575442318028215247177219139685307657352808571371901254660622983741688926558594550769625424583524283454792650863860516695159330898458515065137055419560655806601688847260591276916201475930138749794289884169199642701869029358245293478039031973399634806132198291021142741539963047327022573550830339383438437805797660966701546075780093349022249690401924763873476002593232432124219938443968405212062894742026977108203375114012256714891096159009895883987819313092579267729948714355719712838544807357095582918797180326965067210758712147478512147615706573290557550001637872727472575083333856446801410961970678820318408535633680835646927813568349596051883048575767858849201796167938025334621131907619974763721287779096161974548046298142165570209370883864342841413113415252773134061027255099167629577140916170734316256807344895690299683795275517093227391785085821416970637823513308571462725870943306761603468328721767239489172287214268447139959712660922345758713564903488018358819992769736865619526979393810379518068941757116675805145624161880054660309950774727346049920582138406485329692915943607547153957148897861374754049796206603859563494987791001080720305536025643260642403741387595998594798686414921062551693066815164168697081903216256798092766851480574917963180655672607114013090846763792928250949357677425272376142120700197233219046181197997083840884354338109801312997211176742320545265399236909119348630823269796173807616743382545449269726226816911969413718670352016667852661223190808728117200752532191563468317709878501062553101874043803730335070678349566099529917695280924857834654333666440701931129251261159231499746553175673174925822731032404133159539672031473105043014814823586453401572594298256480530055895303060618669490896697650663108496073683914358017098350068101708750552568127410720461605300086901542257905503519238048179548943928046065289957040080872216977298340061357851071895762951086259770597260616667450900802150272907872593784503342226853894690782787654445334168347723153231183993916888619052999020124059284834097935643682180869095761967214203666208303695729480666667577015028926820145492501930099139757486539153589904149747167802685154017177751984050341261077369357297371141631023699381022648360928430342152070727142904750590197884423936709660688748253079830292120708855770746657256787904720856613817300007557878503994188812945266330264708925645517590157581923790549650778233920058172924734108107944531533664855238376596119773370680852839252769944541221855960885811064461276215893604058432272508961647305380317295140377785455658033555489796038527986989943668048722828200646402998394889546452154226041215210970753123336003346999095218372492466598389955800989478275098047560012860162396272060482115683320302417658613582725440714881904690063654210017023960895370607747464281832262619530665925615876744948168465048667426857760142470220548944789969106785825815931094258348927840190602270595730867655160177936492279882999385165740981780198379465902447436174014252276646187996800773879615338156390861615201384015208225245829657346548672911599865904718032909670597870911308695348089199567606235603783763677604559643117813687970943987278539900748474880906143597393337101872295529057991183882021090105404726264016039165096145042623799872501716028873440083198575567138859667979020342728886236818806115653032686530426064841964870743508101485433017532324453353644123766583102104091413272033525965292275429970364474370081282544209285241622748431124409082815264035027388896850379962321194150014755751404425993329310980339426974152526051118290510312109522130508431045321317941877364904931553041966485126445171533623422806950129887902010921546444545087356729303879737227379896854814708317759005173632649156646611775230312768656521832586074778390361427314347716214359584277061562137025653436284706342229641506144817342170888876691105332630041685594358426487837776894819753062322060638492693255997791779903347184434108583186858413629541155390638298955256993521759277351657786451747698180731775781049585611904679837500192065930425683979169764118529882675408656789284810981725998261740150459406140482220891276140546778845855579225712784736809235443071622590727301658114515030452070097354393717427411756647696091512052179433902410418731860189982195273285124327903576614892027269487280847170142466689837471227041941590117632221039176174529005290289915548338568322637562846886475792688723114339879250705712515291912020481186233886039655185046732272589624107098942510513318570871765393086921207324455384515948785679229362365316756325582662714700511087832835516017077732354258631798269914084914004198007977258304879153491604825178702757588081361697075088519871466827227523608552635685068953488988789613026634591109526380202216566402854691487506074973080258116830837378712477034294829742237276934819877404874363869761236972834655707181330929769794179775541939821451394762906262401515909942879160802526414432525858673220978128297038343973305895922614784610631274141792316834880799981962054677606428083409028498442747930094765495170249636133732522582337619997957256879049255771116950144361688784601884226710791913161771104947951651264423051281060710835148787072368971356509231618131166665953004660554275251223086212416603212103240086802891483247617512246979512422272549147594827320247145138171559489576503711398465268903290542165797461137395030435554668766219845961277700684303961355505173006612122131013746262308399827344596669034225354000603453065874491248180774207269859194782416554963290047835264335936196247260998546459164250854482573886426740925919151101945243845838395107498105094690703553869273022276440928586999245888741629794461695129835398936390213168955124159744269855923358752932121845100592346485850830888731635542699258836262890364787539590054149972242917162620016549637054334219169163876592467192903495467528698265807077404256441228616326909142307158861992428955701347823476825320957548653064077659226465038583496104091238588657617937880425113972104577819470174492166960885483701428068853392182936136969357990828814952371372699167559366043183178058923022738868496669302967008082169037629385259362339112051092089189289033738283100240881635469216279089788891374589661422863633171769621604849165686137477551469887364834294776887158432776758886635232457111822423770733169190479018061505626095870940312931806468468184659831856674855802504307760111920140641649792559114410594589019596258204713364312627140530245458118638313715025687347670540572644816464420510170612569195578783553808272842811412756308815286574895840810771885596716250157682085232401679947062902573339785747897245268741763105620652980589385335247549008061477233739015380051105048022523744078105833696257780109466050697006240465199845566261777474293792819026644038110102969928195834983977830807790183296289394440989931121441999041054007848431099771273172331574992273889853707671894566884129224007780313078452269498926714132578500346396558418464136857150274194255173957265002082039885659987631996141252748707348094172381234180449158687815597110673733675912431949210867543349697954637298466084804519700035628280451959180199091623486899758173760445726608108275715839007084320518628171633877551839880993549570556044480936277252189645095392165522886681077654575888166115731070360434554701761879053296954706222130387462282019050547124481766722747727275405482862122516569213545398381528906724397683972421411126137860311629298803038576281486388778720832699067855618160867793123805125895272816552171126112212316690558542643014119916753254703076515062986273528585309198481940049321467684992365938934972764259398718097186038124997397851233373883274392872710428752828266219420249370652737840257517464148924975484583899052004579844123532289899892252007794447696043413644615716637912769719006735571568264848374357448030863515990248143340911203716943435684242652927015872855691625776182866512028050441506682423600514039305310085619391348782857506834119423864149230612312629342285514618198950622688417543866325505337787242254352048560075884013707477258404995238196757430999648518784795654445628092084842522612234716038703979143549166998959127468526186907714507178628788916719514816453803747047968098181427959773481187094616276649538326277325408504894505984792400277112200546296045836698711404558089422648699317531001525331861736111351152566411422712629389135055575446969995241846690600940043551472757604984140258377522208281060388847361280848679257800792466899332875249977802271281908333223016446266846587395057717923851095303213108754179791778342257459030067600733113456242934067536202523771474148361269179843601211740805804501844170130727890861659431209625644439357712567868488863595358234556388487491630144716775528773853458246203049332059660088635576648109727743443824805720142995714971364709147017146147653836181135816989932325125823890200095526767986017130472744139464974532876185572723236112010189972812133854819222801119436012346840976250706313889721467240045353844932951244877040553247490084596505825719524202787665475386382760110953791185726354042408354317673486682155383556834705359489262908198842096913855483289812884865111158988696127714637391509236318708525269069629380534901534817662523797897457994061129323342626728320483739782227255555499707034887840087005799709428536095426583465529971346290313717255877596194045975317720431361127188527369638639828429746767041797590848891710614571055243428777734188979010832251488146512605874881292311428429843404527732230675371213832370390616455729537255976544711066853625921811510616043515689677461910751200676668697703276878287373689468548555133988846873112319791951915675341773064074937689291784201703468381356918363168759536385445526229491848474875742180498738590611878475005176628189062253801189635060641996818327938427101058641948526310572849445332034536870107059427849412321315392292067728891336286191091024929893022238530356383487551609681514231167078308090095880659687867558788781430330570873739403533698883693867164056133091331292364263203062036996247759242900429276651258891804209293079062145323417961448158616153342954042168372992367711730659635672071296295447253304138185203639851667221354253591307133839416942587241142277675974065674825558594294451126407403670678562526271602761306263455735947788405798832711242301805358474492399466087149232583651203163794584094467217193133191408733055802639170501879745189892090630409830688989013905091888575442334696536182466040008408776610782447821560274459250602781019473580216237996359820604696696921552499627048287986617976185826488833045560518405849155013040694434854862614988384102259487859173079046961920588892478092472015619102057303451230434119433428829548272875006698401829234518226465843088818009718097638873294054614653743036977818215455679168502515603707242603353979265463654716919724104293840385331779986396125625683619978651626409000998049444090865555001018687167703692418569371585956720433199368820471421622839914505979627999725980166978473784830156917269136682005102822934532404128505235896454633139889768452480240860747599146969220714905214513930763716985923108042920196707407002511197138634654638165908946707310118240148669046063859562306920067541047232846590996914365392343846904113490493413540799393986116713273249435888960635330774889059923121588285652630185993193182126153960100654228712279022701512361468128054265749814000203506548983327801982125220335522749663896754610573218498563643284310565434285789546678030686290955274790522543888094586490196203420703697023689762745379248421714770412688005230882621191115566656219088858370049240498475457839504681810828433812102244594986198829804275499012963358863549908369290994250281536838733296465191710111164427022339006163277974011045072980793081111785999629463368991924991482550061660220357273328938091899962496974149439490483894173264163057379999835862623221758666130818422585788062438141679506066775066133376120573015632416503778686122637106105586766295245474935919287184898933238331770082442904271948110257587433214748191047629990724444775734178116782195532092840043256291467029616298437479763521638245955966429421690572537118420695714867283982751720044233908022582100291315135346667720018938749701387362409725111898301518674457884698869761201533216871427572252794678614955766778948516533650509226650569288139486848638654289318962711355316250173136602706748854879532274126084787029456227117348643237472009896239264648992339412560484746877280010306457938268445128867349307469254135316473256242944548976961226045004595415525214218703876143489313741502393202955796207793891786192433871227749935008109102418970065688184629047555502765675970675548067059238414727695898101787324281759394783104323164866309409583417537895594947748063332854946783472325885168028005569069301437893580302238045079519976910696689622640100491201911374808671845365032707042475837951513495170132184641747941836388170363695429123623919151187860391427587397601282629684022315011634434613296401386424978796710796174084014928022418582095063138505475901492409854415667755062215990619130827729069382906626226094186409012509953829727981589958904924128259178476786708337628668808697221039604019993295412144190180731387013555172199793231222703309938866591641491750544027780698237157056457084577983645017385067119083857809378503723405660616560944807806485547689480299926150025100466221167256593146433771587370643094311057107404694663167458584561780955323830921624898175496369186551681428708078274567427474600074292206820952131102658995496124832873357347088746730508946010199724954799201755238914600570071844353238719158401361175081297995185329129928595227204100616436348737643154057791852608417091383965931158600667824160127469913976113567832316149265740520360933131223091273832936904843353331754546875983170369952216442584641477950624351814203298778672710039730473071386017286543857350505968037061657712780763609274894359918241620811799388711310035045949501539032178803937184483487257435019484844200300834907345078376195873544978509319374197981102765263947015286588650194047473828183592258358388580664786067524612926772110784325515962802164819558899296856278089084658929734496097900565733868372072734374776277091688829972973235620192166567871477478907954889021069910838447578145603879586959838522492373132585811370034584129257014349868100673494467255181113987292792175760752893975410551532368011114073441572777174883531431223467457721294332885278461388335774702538875741974579345051609611183417581068371152836942473203415300312262277360359819048930833991958249109351800156520483345464646570430574176784678247454321142276964670797341040367519149947959194466555688456499471148558657970487328244561992368095229548208731720517401723103524182983793094280746538431075104821197493710004030396938191692180868732354940635560153221854283793388208586783146154455742403661626189621529695777942878283070532009906682366182149684658604687652591469624489895387534281895672642928024121536357308297352701772180060617295549142296263023633730747638664953416184456437659214725886152216743528374581417616966636914193652182877198141516176098380757581240600218349613183551071234763248140716619839566525958021819420009648873011094561218746187289280215587434873545857893574006817023470084953405635248398166139845575699702212353369434238991467268004795687349575080294928861177213180343640457955938720880475580165569784355087730107104064196285340751095937692135818773918193282688473505895646815496053070709128257267010122992415428777423823034074350653657288095735406670679513488342951683576936653134513716221479307086482190002277033787987414699541410048129268900487286618178056298260529480936560367031676880625624268784534788567972088000123387028784398630594624815485462090223690532864563629483982395080105610016595166370363236455641990887983666332011283385093050463369026016509837629008433274372031351773810805964081517408797666798817876155022348666991795435213331560433974858744936334412018195316521259852198380565239708278861374843214743488931500287158782576784653348978255597772674853160425687608355572433466949238712361767596617095010592558945251045127400542105029771294755189756678035411910120980226545559138018812115373187973419302732538150363600469208307792258830298715435954632193825693304003889163145816196264353877482425661877654367757908568405689207665492165596868993525802602486446074160806143238700019069320389664328111559207199820019298664233506976853134943621931196745624762232232101663213947122705269503410808946171089589031551057606903657372461986805756195353537014314965429179746046988177770013960961677396851802728556500631870459747837561779943978045400688494433940650906683160060453499780730466175872154617963439481697343664915257375179490971408592090869118228231904446891131308732529990048565096465224616807855082753344161069312779322064205189200758392923291592814283148182039879482853094526201605776319302620148560592035897607967589693520470795753325765042112502213250504241040888558832547154949828018262791574669740282725933152902188238792882076303296311654702995262240549266323934307244835644095762085511786665473461540049888773394714532489214652767856048477585594581260502276524737466376837288942757412903047830766230398821209371142705758427286706033179007297117727971202527172822716043142469873139782217121503801208169063636701155804980938543245988233048511065677069082763911142154800092202180268508785364904774171647464249286454348019894940189759163710408061030840210578604489497555345109474784275095346827533142159967773496130461849625784428340680989778081180141167231858742557484180796274158880056314621574298209947114634169452062189758768684669409143886978249247208193346873241738946812708065748239499709779005386636302257294908686272407962298107244026064437411724750739046967807498257120722883550446321875112958292062599740582909243849446081710660604157937449454783865317453422952946826624289475871697209547521889557170361505141112985166755079963846542920146143499840221168171468024211575817570870903975138827077244841513101813125164609300571697852238564604335409907942513150990502285525836932722703320726535136990691818419826617467936273858639786048716747386067441746359718814352641646136412059986914739748368192773821383625496882537519354176315718549908590357805756401139666641597243815547811923451674992954953446789607032434103426633251163063192070163840018965670406344554842413910815174831151372231866513813029774142714929197305517464293946871174223514142351130931394398901972048146836486566146457563621260511294200227631981533982236874155317133300118052391288759635399022678595154365860987568257216491488316621962276517533953963998865650962441702560599814558847531687203243406628829097271442689210165623957665998560540557431044048396335602578455016303033560572860057544924646077444201032253529874074519636615419848743595925488737216533363580505585719415237491585552139889309157917672256427022499457864331298857806591903074513481266163523002842531616532443455818666122244548178582595082022544394753096767021219498379122719711171653797930824471386915103402132243397538419412205535956424525403647988862056444617100541141243640862396369049731797191253563249410899664744786490086646042151134025466501755967850606458429205399598617101196197886739415999583560564209631503258973662782480273009740085964640121021307473365610523447782006463919964712449199979872158441119940826721012748559108504048080619849544027588012896670118301257816083409173535080422274343595116998702652553396801950403204453139016679863846067670536385056754010540263577710471256538758198288790223290549293794378944165037815109899677444378085542893806520125631909573764584215791593245170607922742453569307500021262328741867218233211654636064921917201707789448450249501831812749437771914815204708388788637322170853966411992351005022369482371123975443573515679796937054656445412455186909869194366856579944849939984849525505698429646888653866797568610344414486389583011581458989669969873986425825545298026708491547389777695454481460485063766900793149974046401572932099360195510810461133072892733092242048233169442075982458479146463801288672116157818286327396627953096529503557283404585909228626085151869495150955649958703099377080670292312773321514706960531010117951968124592847574997700166270389457016147965784436261376182454422858013075860663527520289016061548897371469320211075974263963901915136617554276944936280356593482785443851357335843270836291116375341105656494653962285701566030479889578299992058100011193127955774562472082771864785696518391043956942679099829118409004000325919441226550563332673090766956290632132544008008342101440711975893517899118184332107435467936715713681276664566718805440673562329072897518525208119163535796648468157168641022449947751624182523940531938368044803175993574617662506961892821757786925112245602917666033811708917760568358770222368542964752887867133360515730474826618310222361528261184511845263966976244864150563866385734778863453621389740696155844292866893238493318595257679772198021873353735782195956017562314725722293375501276488048620875938506994602313813839493900266121355419185850144722256080606507262416961963812425701475067593576579416913820350730861731264018351352111357143662873735547029107126145327436210866461798071895170759028113767056184760748591164620177470009810721241046736079016136911222704196772530216422627069177222554655483612280858123659175559550332832395090385404487502154644536163910148770790079982806550908952868279583587855559788949717921864916540652931579216724099905300538406781302315245890526810236909614981017979484103956689350892872157032574095816563228463715842434262463937242409278415621899527427625476557304439171473401589911474172578698664500907821721307602724279427794456382177861368680566580828477349047403725269088905182472743139387635746060388166617181940046653326957460263839417311224996685216447701363805378829647308162474493554778459171672638779945091777087305102929456238447301950326827752522669220723072159270707581780713098894586965480029562408012462487543765624146311865866221133753381604944179489720808651725353239479419024045787552495727145517476639009766803235876843415226893776996796841526920421227331014639729291635200741116558627158841554569013128536129365887081132599640806049587200124192193945851456795427496143058597183446880882542295802832592394987198731758534819459771577162738114141763346180096917393500366620557894838701665261905491004887616918711131545625128505919756396352499324585093556840827815239962556731894921295589359594257690014809744182793752835351439025987890420365953154649244215678095605112511540993016402122309052395991650471137819438670815192489157592378209931367211287455430280564945693051308777542796063580003527356522987388733185498765176625020302522404402453090396902551972956500083727004674170634372084085998746771811637834635424163636677202826725685222049979503132807500700160233286530002634539608552854553959705406087685389394892467246011850836608490237237444384465508472901031878216745980951836868263589554386434510542161971056742879546980753259213521082551477339952661377951248525640121461756099536841895405198184839653358339510448262239204693835577862548351277679052208997187160167159374168004337099350464253151945461875913091155382698940935151651830585094628107408503300944841641480762783405250578040042404120754282767429045623083806803044166375800428164061594871324160667545684880662046703646435918829986874479434783955629680850306948213827281749616359900452705134466427340347276610960915700420566936013139855098869673448070379809940590314803205157917128679457572901637290718505184751876365362383515208587099930711336476576751000479348682057521625799198838193868429149672947655517786910683195545722039642211259438112553260267007821415313077762548028178115179535941856991644190121099556750395670306765479361724065893136291568616464629401147512457766410678645870955805415741690284677978300676137846401421382652379179703092984107462298156805576755400523828416655430594310095841971959733378266858945076824886058244089775523867747132883331600452937836751838347033365972587784438836359135175658539835440472150198499876952098739180018148629778413427469897691879171932084497070099275284830376646099343979124162083396691936179028478655649594826988791370668459572286108560795834722477626957000477275642007425672551591302677265133301691449702467925128956199445958500703306030011931779507182838513259562526044536816087017289399351205891949148534019105398920563387401457259099328550129231400356700704210238354673305187212943649524808942955137790354403123945947425101898441475998909449961363791385459797062211862495645723814367156337505109227859923884884773228284305709317362105877871968428939572389424202005490307728154146025993205142324789270173791157086547530364248237363857032762771493202879682575394278345811194167018869089139684573611754982347483814148982985637485634423876833828954014879162905321731055404145524598879491137215931470538615628968239138108997340317963825411997889376436965368660150087896458409995229513550448932988464386132878675450909040018208667187591817313825261722585981353352663998430399061301032237812301077223519458152733210216098882627815482847443693358571273292239809959957821224074583820471385794050266910161571447737134321477184286655861798241655756585113522034141628262752989747994901676348342989031816338757377909657496559795502919541838375426058010819126059264063647456439761477065900740637756590211383610951791429261962198694308269224615186259627516327176650222931844831005713152852583095592298352680972638765297593202561003282965415701432210434467919857335596263728740721758655115902373097156000169071539926628859552267325601515697075755143911671725529312529194878191884698989777446641478701159734965368062018672736761888331794723940584069055890119196333287160325381504486834465106740735391953613224675168715401011637574851574166375207649568847847950764345750542828219711437047774443409526901909534546686485154579835728757609627522209112939049999836526487385562024827192752570161197138845920573768228826209058419760971088602636550593950005345101892478369954727388354510411340307174981714032582259341453344064699535819582630306042573275889799024446584242767683273862616579682620272331767270815111585531030508136842575857862216792595396499696582921242523765696341741249191893334502744464617807692149088697093372352713208377004503227327680755772375480767770785525127319402928236194041619750113623855575010561232331789742384443965486965845602310130025694376204743321319896700495149363356764414460029506805730212277704294247001016437807619073665588013526115054760791702581617284802187276893807871427496822618510153826943803850458856981143324396702992797537201894260859188998425569094990157076627054716791600158909965059982459273408827570552353944076843347954953106301194954469018501264466500773888439076965464082714065866126312014123035353203250245447643563391146508800895812177385340059108195186773312135826573062904680086165634474944463254634770306371423884705328409766742287842776533599563551428636842458460397065381781968490676074998594031856912869250716972381738844108736461711480978697745948431712073376251981611057773831183611749735547235696739266720393945587829079274308500424411952236816052239082738128576417737064995434811448083167229723910134781621558999152250365793527621847266589126702220202697524608888189045627757285260356651994969832652521712904134601732823673311413244085229775682721141189924999018392253923379627511904720438702417013149815143392639655979442914407876808724315403498193839735349983585336807522061721084292045722335900189024460008051206318246002025658531735012420677998892348291577693217401454269704634481559110442177637416296656054204920882812772575663609567848066838844563428248027978470964390197426161909476623379125510787805394306046239912095489195976124750956155756241886091872670848538738836957532632032786179990910454790671857307749309238388212965515685812709254909627630139465276465519344682915501279467285600567614173809334881610237995618611678547253198941110418553328575331086501951441984005277108816370194947312121352822345384718593535532657715012789654038079290125237875459160484128852277513528223155896407677256695238744081774509958480896736345771043560294543271922336051511726189046833581563249426044043151208287000920264826432090516684185762989555686154920681247728519791022550470885155250713436368279392906948322430352056189357641801205518530664099230513261260355422108933888644382690812069668237519793942600988452300797257922853170391227247074178919990350506588048513350599262317383995092657966398690250726702097389093486151474132947584183975304915760027644894272020449150046358129106002163756016738881969879347374911434615995772072696275056592124408557195836103450076072422322783822315155065350476249237953843145459551995701672377079069971118220221787412069598269239384460789328469247527166412522637587137039453269112783906960403973569581336695062239421190626778662895811459570439505346774544440899654232903280522846070382835245067484121757660580117881894279519079264852881831212577130697888088736698538916884456877178846398413358853773478078058515845448058234152951742375295803159868876366979830267839124997533784976986841586789604295585147711880602879295159470337841116837645822744210684758221714087647640442814638816937673805678744566081620503716846840713979301128165512160484146365111345856175559441382711898349707615155185700778286711290006806904181099975897685784982155011670400435767664123615656674841106742912126719134455224470851791188965141070816008134435105083793028892341702916428503043183716328201192511193864978635419340057643436438149196331059765437316665809808079513172806095617307246060968341768839073364036584700585979626038665979068251642220817815339090926923364284705728206734130368005022128271128821985827372169673705128969047324843595488921715815432421317719293210881966059318679559063067703565602700648249115643162573777993603412471140545314963745976101608824294331380785545319131847897328604822374791554087705539112457602343237423976792892043086349562815537089519360728268740289746265271876109628872913955922925395164766152732951222464862848576675385604646401269386466903175992327710816131597379081779439337668450142701967350130485282724114196121470606398007101948656766916010894043172377146208915979536970229382560422298043722658196609740725484699536563734484258750913818310789935584210979183537754023772685623764620883449033051797571126874825975047791562307814007377589720901343121002377736088256897134570170178889639043773610047480701553435829943230415978427324749709276932021563977163278732243418451210700466954031008385485066214897054415469214461707512622769736589201846681995854948704428878242292102036353832686350728136058187493131684387477654416508843926418243290127210069802884493419878109389158353236033171161836953559192504612230354864412123034398077880554064236483904842078209759338418991795916048554900684343389768278662718070304126868097602225251652565056836469257393621673260192480610835249453260355476219288873041250904191872063104919860735838529317314393019625525286633188746013591841656591272112408193251978737115696719358574099320105473243289728959464600578949523407780311737534241029333660230912966620251719513189029689873889768920855420150485205357261992701042949404860515215327831829023064368847795691307019059940619971563114122097480512937569131843739379488087207727501313335129869797513691897556327701833573356872492226778778393480519401798456418518421364649580434896597760660814923802336958944917693436769661776120579432405105421297445795013167568747053872058393178943927922552079178752590097273717148720057349662657241935064040854260286414809860016420556660038168910246336451123395402922091595307789777216978848936517226824802643276236133961650137639314879251244072233552996016202460525125372602009078702907828419587609679887858152952855833400842092429168273938673831688483000657927615029181588964016912627505509849749449150816589097923021738441348067788083381700835486666761786186208323237195458843682615676448305292408480005487860997121424703746513610887330302593539755477634092968426002230638789866775574537180043032792575584024628366651678993727043027235201534664934103993047032711814502869321085758493088322787437985569063430281916653971178411265345674182796875123511268254249874618429392264719370954245376934613354397082231083889219897487058152331586281762266013642613898379376259485797415709146753918033221616439449958979438265041467832237227606793192083482279521436992929986889182100697124812016822864296826551050102385364373049526229735750337589123770394946862581286974919866902123152669892518631375016746745794641009321892613700455266472427799521821693624713863135457497545765284394733559096740988821006082673912038912847110370361584028860407532518182151469244987121763884094296927714293671679669217378499533860915658847935610617316737223753451891271468883315543728706074672279339656293453983981100442741133313119211241710126040807421289218166301614159882635509342995365684936416038039695976175272701280239397156290554671353482570510134894460655211224399883357168680966043746992432431463554649679739201881500985633037446014615198623206938433656205545627288201804126578650898872895308213994454044185376665544985973546925582950166502479161692306898935200426602977835665749028309987791567986250317211234316241218780173328132331092773690991951744471975490254839787271579227884119813835247748593143547714483632910028422751282839695753464834513171065486339267587699237610969131781380880870263058986834668438825148408424135305535430589170776810981523232304052215818690967184930789369269309689456064629511903809782940581603537992742517854285754727558709939896527632633719210724949319789734639567592998055296624613082308788489391460350022836685251178101204998447016934680923820247905403161643315516100735054651914748590949085002744102365064347705224073022139838502758128328089268378092989939583617494592668601243233274267340179387447928910522453393453375299999478911281477162026181561160495999782800801528068257131460097175628641297865116241489323426484600960715957534281529605504928751316511496346869372809335998377440989560321145103587457742014157804729662463457037934521902762159241791290361789863845228931320358297716900871964322502439305808182476452155890033389152002866865399394421036437215478580938694655772125492366955452704943876555941362248001124573467295236905042462543836808281732752051377112262767500389867918243363076519783245085900805701844666997414984047393550769893492959436737004192084624692910665576463071828744468317610358648935720327340010100433729215060478262336805535335786766060768973854584109642921249967105552267616648420185605937518745329736377238088767986822476847825181138746405026668913830125719364994906231064337678594225988829459309823417286667530174634057028414485720743021258649285152166089740719700516839935770775464484463861769237512643684834047115195834568859669240767635586860632816249292831199175145177515464365990659636479424146126852696577806589785849709011993230898540459175720880168665383982297162907967709483284277375882806223664394275619271888570791289338947231398958193814105321485915266413984895342318574652231240608280338268849485798297220886618700277132678057495125967590956998286098800676171761691092303002272944424702582058719646400630924103743561870212091235273941653376373939231826742674536963393285423632928675746981887265689138890768538865272376724656023054259717891225850927320560089184907266274414891577491540504167342051208793102891158826451281422243822683150915265612681880191120455754416191143424350497564893085278617295050614083730132254994363174312645762756980943347105680152212706016743767504875041036859805098618645095894286904137800897345534489425155072893192006399442128863106718972456609780836857659653055765442863774613580247578120515501457781815028483150325991179434452903441168238737594308045284766043998472401833502944892830674502854265164140891531227244491017677008629073017167058555736909567542979267387395810207032746166738131015249558494520389627835854929364003397307225564181820224682223977648755855277139053083379062501356547323680931449752618954947174273188419928730572042220082884534087591760528586830869202728006117339248878145951523863923846523107424180078629692234345829818367221339724305498765482814534430388612488636438813815020551646692393997994275291275662231459122755796955792511983973624577698422493102664025105063418062275627672348952282745574384466428342136007044859115261224713448236743385520147078048135475460457254068931543619172050315572810071656366081975179697521247564187618166309648263141782562478520249389016394180970007493268627845824587966477021327783278867340731929307410014516799841252430239067670248461412941639812733945549299226183623273404208325146656353711164391851902092735074137288687610403839555950773534711992801285679575223624968566737979295623636641648181562467399210121175474334162991091867667102994230353307869355302638151926892483425202275465383001011717318830206664090486852470873863418151043469435608230680309473999255014308320037928867282824569692285783028135930100735036722195810282459587011420257079285534969880305996888827551378889699920943800471906822362809023971955122671437113623409714350042724889209058430982452391622634500550026722176515032029471388037412799085467724968200440343791460978899013585937202312293232462789587914681195114772712276611366814500830688127447040118961094741400932771606548842426654561552832624859969196283047802761959829150728234986028791289175414887013515006269869046155933040585090046447266336334301741147109823029985876786277013808067750138275552781822946540764562201614589916200303609403368406534300214438650201953946093452178018825570061860334387294636363817209146138912652494603830064609587886045513764173941081916575430131901608215974349387585581171442860574417683263596942175988928988956649205550131634491831731316292633926413350461431954299855710543983442756016065173630558161892060770892354654035388310719095854470399333928706221513673756488725296536812289140650780314767950338940503551136249342774625234854352156221029945443709495187891098569555093963550878985321974740717018490160716573695802155772341254158918813753501556894274971888869118093389297314429094954641371829124062138562726134121577426331474413279538476144920527087798328585186301269096461817892595676344166085449296193639166359732201211740600476455684867118156515153660268823247167496310930619007099364731369091427108862554615251067761557186073640810297022648935467941979399186948908923414414332935633868851800150470788473660480267869511363089127026536550357720012595930645594901450983741814189519640665109057533840359885465617823152887588701747733885311769260497971520061665128919538291343626257268131278798269590310409350740385893215538036870386047751032894039551296858203326780224824691180458123912349688200037016889975458836853862137724076574724756895999023052393281150535670442183653111655805055842909577645864933040435055700862275582461457427986067460679145290280238911243777526136950203420523859011884806026023653124519521277661445742197045703746389073278353695492046851831264797273649529166064617583947374914972287737101135251628941557879643188086184109355554775578662696338024389776062677417461397460777461986863405618822437661363744725606486132611222347058758162722440457347342499318672206599441409925838185079760349698834241408550488749999130316382618320511105493813307729512118935040865252761622167718953687406835964039632052704991197798126384263728353070766343537634034777669225867092407288910284925839562972681796329293336447787498961344105487905464260719188631030443054164005004310912235435711690335293893512458554771061656741016482363637306603437929455714623072170566970678610638851635581106346989906632405908149162723366472746328668835874133721598242027065640535532058535238207014514909324892121842093612395173953461934899940655770389812982763507820066660506774188235149145799337428635336560907177694401406402272057821044831080140445828185741668980624548964212323731046027335109142229208333341748578359790225581976772873595116800279705365288745739071294728490300917206959755826470559535877125400606714364581202980344345737646118364929949948416948935362663348566826116878086785159313877091258790772751327929790564471235325852454756406965157587078756018283312196196556992993740255726657657601684987956367719280840908045219326779348829255461271810927186597614295941484495808460204798614409504798880934637391173598291934229915951598357358810906998525706136622548518197880372214750825450756539383958017249578319034371183530048505155565620704443740420991198033842039464038350108001042506492065898639027521521795112228297350317271614110779492034424222005819629890753992288984247110351002446206977011731927202955703653146627738685364489046132828556611079268856039574456637928629419237245411432727866137782146989572831336542680449451943293073692580823334067584376647185384385280288066590707764416485017980805867784088460700706204072414198274937443853837195185321837079380178024575410967767412735468415153736840208004488816723115721313759117920077617159322066853434750434601973139292403434441143791996209172127540770499643638081679669832931912843257226031220620134857257708959334485608914753706673957867126665996271141858600633252486274777136151354210348925872687148306451442043629169384738609541672954999934862458139802913063272690533836856629479312935418168167856139553269191049680244204030965262842880071282483311649515464406897699426952638662464459503656324979739348454535497889241429319544632997422882665286556772305498225319182181938262119982567819823579853024216509750929005626331969800235239716204643831029328113825172489522042831673814092971779781544794654588147918922896174455748498443961714626963023651114737176218497692818573954160245891837359916931429729562833261285625071996395247734849387940348625356965289975711548741015435058389284102863142997683386590681773315505783251949349757777424381724717285953233088449718240406486570167567258091131709490308154817949957233821969386519369366374629768119175866642091856818489096029680304704324543417004030327807149193251397349005715344590040492640468365929456165454732696552495236385862886428051826733691851969851129286191513343805352483552265675460541156057083707559945614453563878293524743003224455232379798089380748904440486134105365728279128253434878179965548425981050478656991434883676566518018465921154957864901618459680183147435955476251256990211767748047289640753187288690528268460192426033562406149531225847298165852268871757673595727706397654167434107685557866386211636806744697934005184301295133172706010659185112991481752426778755155768019070705578694796373367519267742843625979092332905560519061466105261141619575883386175154157871866297005553805156699457899193849185491654687400908063641673252739798249391020133971176297515510992283351120770576565162611648635315816684317231223868772099454173787243738770458479125733739076281054188906317409722891290778640004939762120461623338479445135626806711424683083289060870731583820195192806487546382836390948038106867251182750539148132209647572269038910837793454748490084007227643181335896417442533267857759502526655500069104675230729006225582606767291664311083895112979392411506819390703237234403147605651738090599886435862450231336627523656500943916651395907149521533692961357837098485908363438786090689577673160692588293716258320682928083948449053341298106389425689409819456496617054518556760154636219908133238180879444553654616182349498327937432450125580051451753463674144401882974534645986796285267957360738259899792748917988080308224152537157696821785629947223093146456916358725354476405936692200555798858931731030131028672130823330321501126318279126373928941939154297056336779684750406711128891205825482687896466066698906886005306364971524404407323891682734713086275663601489729496457299527709490849395769974733265819527314040920239059203194937194615006579858279889279608842049291084267870699680587639205889775253531502952426709075291298987728913287049095761089348247985863199363908127934303482417082496705916538696554529774202581410808960491097503038760299546484392355827969026137834743433338506866974671703488032825838458837864739788550386998242945805346000409875361042663643473534793522785047251158056316110420094481504955378662411078677271373450584731846195933973142709327921908857110251897231499613101725097954988356782223727554691967404460779415274406589769762182567670909792964485387292504710061080436675767839253333212890955926845050579121821414221802145929718589838666017911211630642685089729330170045331716103872493859649317484892139742907953575962873915616328184527896550864152763875210595629333862339386272444095103515514718669538174566235323108135489378788639530806714252610047509859019930633659919316764206994856426494263697864591526262945820658649346380084890191886944078614543058598269902276226320806212930162329152947044471462719610163029511375548239246836598361107732513201406040314333972413219570798952609791866788904893206157584818843164933157181500434060518188911994176710044895995866367987218932998993902320424346791137020562815497652180607993371521506534331392053272269613740682745210880552948221899779743566469052327241007460058742239585136182108166031940540134837439103951699441284681751695374549322528668300067438522085008497414257693026530212153291712224312939075288461157002601851937645001400000851040015051818516412352304291696590693602034646482023042850470872781962381467191501372677216047728751283630821541234158258265043480955721293476407024869907047461247571473154050831496820796120059642049299709859364884619879809127216347058946940617863157543219553651811815068359642688511499002999771478085512974325704477436347418731412031349421020886808721892750630710065599555479574241463795509695028057367503601342923842478243572722388632891951616828924190253942575382526730233220445300043393420325294109601368201922564600815647799220623439260600039848724636169477743374961915585413071972859790991594813119758337862437906313969246401890971808078121435965190119546809344364134221526164820050456743089842129019105515480659135650688573406844771196346439128865314697176737482899610075176831688051218949896770963478150021540668718749569338825294802908464711029596165541597724524117146041436440457988945228311147983146885523881448636339571494497478015208778152908739508485742360784243609406233126207918883139385688621049731473208087296018347233447642476259415561573382812576394340290738688517431360132684485982201825458277254706243086873673311622983798202329962446300620654825165013544720624502065416113316013449525509447497624611862898267238744554371597544875822490061076993823141663408410532124834201441744472383471508833264692447527674517670886656628280964860035068672457124944450894646973833263543207989367791274001409424893895261732378588739191588248434944630375638713841547098253569843309781606070213346029824954802165363257243535524161255092874738131547830717032059278858011209575186428966859284874940793148527002319519918334131524575421083733821825585359476815300332906777652910840156957184394647954827258736699700217178592521611187263982486767467897986706517986518693908998825937351698560271653143097333891469430704574454123627476010034670197010103444872058908551224634393664694644227778414171409788007855988456828153055763854209121797365204357600878865335736014042151322668403548920916002551552623702954132350340573042380244100174609839817331375459922045553704553639861218984938072041425419720119948940128054072754898878781070185294123832829649423940932835594475207762905638141478077030108164912471498460242213445604909792245709677275451919526827023197566624861129123038865114537750976584110926857759298668466850761769358781478712757185985573136014379831548917378956975219889022029554116329238540467775976222078945718572730508705586675623877264741902620065137888080213393634169129185377520558198642393954112478800434197634123592688944745084091190586029437485827822370052947506338964750586398208733429071140168487908227544795023424834873223512422914606544759657264075228151846147568004783169303386935207842080077532259347942608879215204255831748973083969862820987949181267896632084574020297983517119616551546457976259073613941765824700756956375919402606432008349475325056565199533785962796040821072991272935692818982160138284768594386987458395187934529076780458431241263571141849197278647353957845524169712541707720580245283323007485008742040457698445712395523826492114464102925098138400391589068421456522462096445563790157354132856285393276410458321110977800889225760461989680706618424722332364256173868378049693983464978090959611471745671608768415438084094890643394568731655116384160781594920464320910486709927071031160715730898280151739409129244117885168663948807745406946502111939858922858924017319899823426255743290416686594699431649613517469533161978365781942852173639319741616349794806479314603856158254692948241791879371856728874578136126438204574641156245780802430781000283086048655467753525669182182499021530326031783766103164871518258297659588687877885291053545272141803920956248598189828055151459355638948426436644574273007759773197833716722831869976298732777469625515419279538957187926556723274546989733572902387503199045829929705432018337491307626266420007657304552112849187078162711874005489243714933731973790585119728650227040819766723462910847819932444177007273656909571561396943253420100327526842771205465432397129729178121619986068501962280031970902134158115021409224675193561392441817511467616684692017877385878169150079572282605965841325751852499771290586619982512088709382442181378851246907852132863638032489787805344018112976107156469805529952689060595868657543057852544240077931531958560165956361245951185810818952670871213527091269243375418784578957671386647509208901786838331258122670305205670310462473405391817584621411973508915285496577322632579448052952392504027376995048750314185442480984567226177985673856367613874209495813480049981013998150415683579350719074330687070482964470517704130598351259242253138107229440050219750832551598952719592228767693847083198085895279057141940354637254977798067206277745780434262096784215323612472432395132834269541412146206676466025281982560434461148988662277961447832743600325517338452918355520877542635817916504428513331484081488046165258436151009179985665064169163900278939037259693287867214033604827802344869148252663844312464389151646831250697211426448476845959857642504676789151318801906110416018521134497496143997788959801880629070811097230899167798013093875829264337696126118917518334018512160326727630301340510088588300914512462704471366680534513049520080356875411424497395597204125531326174184601348965782275011705926032931363111501547542978189747717437930418760949182586329904172993487651915083451785329960089008546191674832870232525583018910721906413704421999498993234318895709821792903936511314513713972555371747386988335545487969052234413595947973688489951198195021474345848759609232297122808862038297022995352790534582397468321056199873032072307892353952014881279323471719635891866815271604729503401408775343674555636443923065499075586891933180830573528656465818028747886638575293260689662626623580393953178629279942504999462179173584864147402141319322800806301093920731827050282357148354740139243970571618342070618352560747653841439422221491017627279610419963028886244451945019926568894542829405219257962259345044807124395641136319803603114564232822617707857787420481173859886019817595213938762971812838158361794650257878456782396610386043643679951268519049947573788545275737891094047488330054840029643101826420668314030675122043277041599712034296257097619758791838255366311981148190339521230358943898621015434422426474882654190777311013620914137025606467292624633356212044708518230089650198843651395240930480207483547184168634157223453005378554703948236316921244025703551998801759747742307937147159180308553269056545174290562231551446772531873368516444747293241247093216374815308535177826435040380205059179440633607904482133489981311533506782395205877295010840999064680568804409795380532602128690527583162070753097450303915226223748321142174994551351338329721945783139619929637230810393950401018557509004317830710820592703957352605612005409744818891108594722850794035658930824991194459866151835018571696783603941614293274138322678911262860924678219256441830813950039353472024476132914363563623465944594707897146048886927692138466864935511530387369934490654606480562845754850046453436383392259053260586966788942260705351414128343728814770640066994048788878352822801499598615916789334440726044541733615305433943878903733498439183491562577911492275667602100268121161840231517428204817226708107861569046782564344973621540664538666640255144865631096939361074104188542346045169877949747370396397893188521268201989286865984080994613910472239238353026306511657571796750998438411047191315795357750069246734487520554533975796788833706988075303211761736647715019458824342998734985390668820473416395075186719533933095254873740987051057371159091473833193952026163478198023463931541734988740499173136968067713407607280574987541120708563460769624702650534913996380234167715980207604458878431609565128152019273610467891578401034937032906553095771665823484783197998115905625789094918454585948769710374996102047603205824419092589539360621010641016502449309722650873677833735138987337898277869116004872855465743985101183623368490363505747627724093059660677930287849085336110133209886296336292865296119616954608240039125760534435083256264553977333320612016243526482884716154524828334034477936168691017009143673257116301400524272015575391375037881097025872329590958872379073003305305372828820602742477014587979648978661252094809436464126258960016437643360560395376778151929121016930864048744260930213238903609200283733920785752067517854477014694248027794711450064595161695518523586349838578670663135025646918758696019112738677777061639540427240841949578758894247678966314898497718805333277650055213223464443064546572071523564951897295181072569662840313775197670364066651644714036716267424671155969688636817601917892317310310703699936389339735090769183101360896707133698301396501378634726013392895017452352258822860747134100385307273960260254963377913984340635379241043127356414137425212988625193118192405911060745094654021009129569460662742401779292341605748636343490411097586513133753028003146871805977344651648604129801249274857159832453685864967631341057393978754557027271503752203397637535005361883583313857217613275848589940129018822035791129929073053580498669039569093056615743676265924008700465240213984458351111098182550486811521061022736303403494416503962567360032925141147434545610206349822442100030544137502821570276168711122402515392343492443219005210792443274936660862975449186973474459205801858467123081200363794872834176719047516679533107738745663647523834670889536852207728213459437564283751234512811831244910391764993805153680311865972136746959743803899877853024526130460877368497337382421368326675952854603973746261042361852003233968301572037936409707826733227802647610223930478608563054577022374833963491928309902518528867112467457968476091112874284125599297201776977991536979825504014170311458484795848269759757065814577874804210549546863946312480737952419455376640142637084244907692975926704771958779313086810798589138718592619718073817013997955905795654582413358867454484984823139632562152748694428810670806041990882868670237857860060180296474339502160530254149647817347685067732014304620558510127359360904178636504076981950193236035855771038218699297685060506579964538135248264706374187480821225781113502449209578028127735698151538270906620623815103730140604974270339835734126825026086434596791702257305735646801214570704270110528817081955638304016753263368978135373582353839014753142602179177361336371375273820398819771600732191675208862764737577063198017730708337721708714499094607379487965132687033602403014469557930027783669885309635936048391046150708778849573071919502351509753174227859754387461156600986831764926948285675261314170165286924949144597615947752940205910090269121169323809522284857460241058176944523931531256294353546954779850241405267632915375035233366314193948026340621586767058165162349160929578501147943489841011926155895013316848950726703542910217848967851490196456738423565380135147110721574727734196925312427271362625881278083908062307621912799837252852573856636971266499040490460670415948057834773848496632172687192448378518499539667334448880664847929612919696376586573384039436618527695335400207370648538081134062955656617078588057962204538744169993308571260101694428002457566540560643357669290571191295218898294273245586966092223600439734531882949987089034174194575096487793575288499094419153130750231625360332557206466887703251871999156222377383125462454535960124458316195449841843869518956058698736028133405684993326262205605664750373287638264457597584905434872296994666336645612320908731653006918187760605395829879865453621362593939021206815797560602529868701826725058072344813346805595814712872799086113786994044229042701232066944090370384279768173696960378832952166750413924640855686676347896690987718474487731240996971943668197495276356269760758853976454217422778421462490401319511970909256855248872295690824078983826131280281497912135773493080763736879490580714689736401305072675065631994422730614318600988644312274409621038448854117918208362637299379448410094251706970917384583471678906189674912587318029543202876164930553839016654961145898305301397505529361007986905780839773265798585869226376099867139341503774916799905058156142367531507884799330162969887823712944826177374327003765895310123349145801099644047936112416672961214390180441786810193812538407471824125434182925123462581600347061856026700318941743065090084252068724468883462486864426392309381243703321477859077675232938885259084127685592296596766559612873141999882736570274317685312440107764101980752733841701958520232614141507375662036629945849478535215703191034825788020535101323227073689961226933538011739931608140525533378338994062908577339740186123273904533645525078242968840161726569154108728318226766570778460021267663873925809820003747083669925141159805701604465628719811927013375156754797130205890653901741754113763729503023558185392928510020288226967300551410232579197724696203430466060557667168799705017006338749345450816866325432879213116381671713995152433483151379888575309427216235481504788418939987621004347780844458861297544005253332593568180144323541617694415690320716023578595099631715705263906426534758899130641689464614601403198293300907983654846327439224724928038255276397233420915228844779151412492522351721517441884351704694612270639690295205443637267444723740492328394047480238776763311907670122633644690900844615208493787292539250017299897656609800663744518406891873245050570441544196356382077787914681920908069141105026454342048389972598528424536108417073188314641538910640905841793208574572498877440720619630114583063308897927487624662402306027251392885605804661019127183649291967151287751505502741714123026168355099911021232582557464105129947607895350050100856938231927873162605372833392022114024960558469588228785027994284362324355324785510675039710812278248935835535992216114799987528930241378688094096835694205598320594982710238755531719015294319119150972497497318333871545558772773307189743757072862522172914485477086487991121102940832847423057646221492741359363493289934607738141442050061470041338936557717835066904229472581927606263859846275642405561919312538684860876945697366259612449326554016170420376739263843233946839754030654968064253763652772088875359762343656827963760841007918792273346199240263605629867714637906040669900319626076444826927282772514182639855392473557491738584794830603096242713952046886184712964119660142225853121901654043002197832093729540306165253659255179687337129023893573460267614024755906577331938900657831241485455882684685423131793558484250217001440857585593507536193115423274924606443436271794060964003356604520275621766163073753830015701893779080356212614778302777432906919255535126516110003281651835818040204343162918024954450479498883756435643380569811227451533427618853440221236515649384722359567475563800242668836156487940358685343962994403155921297126857257472681798016801644146582189287852304378046638830971405527454288777522921439315515564381484829393223880750493460083512219206426267070834547613603574752068165157261218937575402728782004241911781186239658219726755470002334488687747516652828268938730415931599541286323520793864398130684309113821310211272802799532514416045924201436303362307903771053156657683551156871166382512746107003955345778999175793574358647745296018602765065923353184021466919310905857717922908744759190057540993477892964450093840782986827073375877067369660933984530915529234986060906262943630766547769736528620810408871688231471034313432315873772403327414733157537144637783932751995043219176552465094659068905732898362409398190864013422224043437616353797326759974025514985216357401266123625790202492506007815032083317349993467797075929169565796780294117144960054655627834352737180987055600177652851600470400485850319635840341406882106023990111924706367637058667454087390958256757649039716372032034896524227880658973955598212801459847793669722009225424769511802619033672700061667254662485805534568650347228474935821007481133018650663336007957281162152470724899773079110704686218764033868819669763728955552862269849971944826958162825120096020373034703478097524888990173690728384153892071665499682642333422683895410660022086126036390071676205160891845152695530375943451350213417852938869153908727226891098982528323648202938397752513549813033836816540668080468866084785897043595054362432878550509606693419635471045118538558618892645817648475740951438540338663763979123338626056746515792267540563226982065670925194317235506217511356717199827477141999542780614507410304261232471127908265308209573584776084169287742702260130736579138250549076629158995724247938007581216356640001776615868548122666215203144134231458318774700791378250386358343181968961480753462693865126436633765565925774576749373918372865982718439566725014454569244483514395187422412228816800733325606148037890523502947983675860392328857063375050157708007782060605049274878382719586574520105156024287725264820219777178810473274370583818834047749678588706561360186048446235415994792608459393892612639775525093651927506764348294104359272333249021457393496500178062511337225110534339575585695591650958228345917008713759125140230678566666685801437360548987460753606797915790589700109934102697952785437233110922799804842425823283238149213798404376994433290886673026333773750562229247176067841243896201795569930490460453420542132030767840660008449016930149941459982259877464625720649741467320074094484366204640901826587972630369824426672216044244148417838906583874876137006753223864407260400291703766307885088448071785826833246881111192852078300468915518210128892593317612082453153557707869204010107671478565736432176535469092727798644490914125561137670508620281817368393925606289597901567911103333349854231406253964087429899882493965149784612679266215762028216941446454777986016613608555409061750601809323306411520388350185182384633913901505913149254259053284437476063652852654429004788905806666261678455237013265131631934970948385541901108192065570046128213907133620239482087371036763940310903002430459891815248426118230137423680864226775197910784433813940542180197608484190239126602111997792845445206435836452972758644959144033806646215407521036843574851174607050039363451317328206094758223245217576065111553115097515195734410200084559280399843097005923005108949142626501396113339333599223290418732711833991990515252367274211510606248196518914940728760503392572712129311326186317861114872811241041124999702160131417663705504614553840096043485904729303987741366718831582664765903310947484136925890884928648288507710952280012564279630511793665698264235688857835834160516563683254941039654326440433102726464413588993661975832375405109047965414635481821152338268919564613039795403609735540106392215930674485383936986061169973218751691665098056852588226397045557729922388282290631936711782960074677172492647387947320719209865545168771508464271369239694705848783419883178154672687858420045630009767774889954611179234807692742890116741037775883380820814052331448568380406133676563651455516827205446500963985048079298834195528623219941430668252521327396946290083066138476212615484680037838910437522330929856457882667125088115410594584277896829650788650958739729190620404409346623263490499091314200543995429294176909472189761941589357946025263820010105497331601200471170420953381884338204425208519201533400399365209643111704586324287745107091463735547673972922885054751454511397972343628553019328390143261971689627525059766353119305015807716110693152090915134570155230382612918232624926226513487972029162298704553938862470472731629379881391028126756583519687162584026833788306483037765202308322692489133547566326606004222515276985545408989886683280665365477944018005163125282656556728400444773195684296994494102198071777246487441224744868868459436013797378906556231689468976025367190327755134972185851945063969551663887898736354567915073072529797228854036538745904666962058164095258762468031383821913758817565033369713141786007524204795313902436300567364960415499351310533397572639642701256469981810498260194891146686959982340094491914250958710985739284424313519913493881440269157674154069758705436211424384003617821618461229894164087918285225569495887578192940638891859135940110514992983112567901553268939828674207914738470995748383114569363845123179387086366919571826266868243397682268631638753087548859879687635390693337413857462647083420200993136795413524936525707915711546967179822732391296153570392127941489368655352155121906093381419541428692468040854456160062072613158138984629671995818400772895029761849471635114289276117169667532997817320971386801801391508639686929632613784909168275899286200859266169622940223096161672903673812218926581506668502210300743306422647141918697166509025276612057530483315419877456454735718391922629732967674353191256832898172376812384874726756334391369572813930498503473579749410498296133682593338415894605841174883809518520653846005379187381446371732556163398221926997639398100199588369851772539830397013265784395524923916119981245688874289801519145351395466995575690161072766872706185330852904522216031643775571724707845374270394463244065078262156402905739828510687988846542687325333692120315970132877360847050507817752784923626471580779853040861966326813093924181012732412883180857659819714512329810621881627529210422417502683610434141883466586917735809847289978201178084581258747512158585189910108178495504724136037270239536452258048497701675573375481481646522912797827566684976619199253313784323980257408294211069108698507255653378558455306752152919311614493620451523494752840391959669459070461572128172245557800845172887953226806032723562395924876850764395596558688146868980996689867226320831926852286136466652674100342788304494506327809746068217701302511937416406264435203460850593708780881688145153102635681232186689087640805979279927099023174646093135875210882128808788777671333920333138333835225307497829976707796066226036081067593362491980794329965635388635313527164890631890990646371923555704116908004627484074922533474531507547513063946252537448288703269869573008916586618865223158029167375430062277910434350607898684487132187783255818809140234005282596881606435598110549602728371282749495339334713764135456769749848034880185269950813814647308949494673337631281903436627771461029895695869530888454492185809696219491799775470109377318560250125991771746968290632689750580811754175615629555934818782286601806080905337319965253166312536395891526753343687834759239690323079835454158733923657000041912493373558252401451954025125599626799139492201361780487942174971274226165140051930846973232713280873618575479615477353066258827437883755546197405407180892576145189701892910893584127859630164061055709026039805935768486553744546648071637221665966370408640960159988217995538737440908992069076164400475673682489555013947256256395363837821621721648832855170854060733330144928318654190947793151188434224585770611864817655396308042583549789677638867331166963003879466480119385011435005779506125738119687477934758302020433842190971524397680290514271037121328915284707094543282425495283091006616358648228981170673337831947123676406227172158628396204170634985489508231025513878057331827391912846662811118932658705120423366386861264939766759306536438019366749049993395033089455306365756110425932372701004281588824644012434849828867824737240311863461995914172381808254482138539510098527351359079778102835541685953364536427050426399032789603625423790762219847454396276209182378122093200088517562997667916879152435784831376727169608848480436500000610417075735521582568592963652213275753749803477485741170417709704775929381475759646084653563550087982349840751242881789784357913742428718608707911327365790510262987032613331338455976785572443841218509626936374717832086646350487057537914766562468241146503819247084492158645664822298164635793093816325993665362171546417855022599918925167064440273668401440395940360614596378791492747308436229832281696913908592294548599119364839882112365940673792831041533231122955836990499664767039953214764020869427527583231225002587387648449636785666664870667988202032553600666963248608868729280161787806413309606149068220524700683094225571027720058457338337795937436195592692824453568514328560223181469929425437453068059570606339159580398099222787759755395673987291383153642782436451059810186588700456849508897792397790805406638585777753387343533613982401089584834184432419751933729387796528691074649866499764800101130581697493122691208786918799248714961754427757152539726088235702788035691178342265660140120237869127114577398975014800869263918540167983217249526111540764540745907432107314007242542143050676920313025384039582943059726515592827612879335139000145222541091952475974136783440825031719915943442145069417883252720564307701142669040869499963905245273168447251630401608917791722501681446755456167783678052649509948879447103812390261963229791754189686033718632222499856207549215919698437349048066114075675876317831973373862774001547027628874852549971168605388390983021845902629396489456165687904811300044701322736220053018610801684242285911886675184129185973857956863146210648245670912775768351203739279209457017792837591209731186613097188316877695424824945170108622503820781224558843754016150534011167333815279641872750631355309233677108673815222397315554869319232471775249063188797264714377344478771991587371091231014991101521560867241554881002230130130785212114935155141493896453626909469325145240781502650752841525661084236084559628262821791287262155594020546241889805657646746756430213905403104805572398218365833977716280271672213067822845125373100588904243601327358982933802632717622504850763692721735711205775914586649490606529136462291112823768395591936368471282146169906848277380497148681025096683364318301765734299203024067982832183232380977387963349468914558761544138771008958355189798569468169018323376736501482395028153438703791822222646094774781598900004724255725719648355153486189756125853616381767549450329531251245564294563850264869946937128090214417107622251025742595022361499998368804151220672426182825774983621729886346898643559802794750739169200608391127791077125436881417528451721356779600683972161682727686941009239737605166501993972788337261475661756827137906516475106038586656558832341438233277924223614473355965392475207946060905961853134969029993231225933595244306600709846341596874290109286210090963091721439218533904912647441627335173107393717815924132806947489846826621327729925119718189402556649215806859190049459425381901098974799456089298995424965630764309608169636012886682921136942430591863530950746135294553900897543741810220869046098629625864088978985588820741845248408607166846950722789444152656761846394198138856430421260829458583350985111643037501317944081745512070852050377364080734040431020394271827953653571485041207138826388664728405661578947488616815536413702731447610958316261667466308173613515151991703440981213782110328488009586679862339397876256927376312293782528707039141426498062277701393375016126071021984236996098206364930035300917261519304410254901352857896161718063803877900389271105473045115531836521052284582060693656372177285325182395303515820458045693706610545711530312955375890516264690155260363216513832150578079568069132708176412860474933316088034067861278204735951354181181568401755739252795031014132379652946530350635044116713939365189700537044190881791541179572445136266446663625118329782310974214069546947938869672999434562872438396371451970652306125570758414016808778292344055571758020191281568603478671587205364222563513806522155537221776679135881626210353268798625609788946282431377789825421945148121229975624443068812721439542646032924872279474896507046610753120344499431159191077764361252080510704047998360515255266248000317857440355971722940270675523876422323175495527427798592281300190818479881739554836989651171728263449407137107706707114197793928113948455138873097616611378654242093814515742620904430870794677463395429656771299961815257710356189102131658503162565635770282644728464029603120923402650821790237590770182865753748607169853553731634871177931849370178808759384597049547839558052604766405237388365854644701937246382176148200917628598159623300633596845059757917323693652106475338795142135203970431486369762151568046011546810276942166752562830047762000372054674692651881290127877922280061876546014607680674005265512049276983651391835000734491131724641899005125904082781885125207387355874217048359820262559051347378530238125018743123241528464000986648679742278242392881277910398376689150583445757984046301271024430213422821546746358152581063700210984202922981233577181383648147162424060003324846029404022215126235867482728992351779793186520442405896578761489411451865099003253081557012826548058605069186041124306361086130447969421209556818911591941924997083169309474828525924502088508052405084349310196343302577285484856256452140071520013535553735977936521837340462680427045280670407089715713250759433911398726662306824962774226260104091813891007811127988531189958932154561694113956624621053356983499073791738131039212949989621078689498332069295284711144592496305560612681520504353160639219451032885384575931870511059284247909374088309861651239433003615288777217797912461670095985627505022531467092232131073971426405959837525548309055985104582619913813629328246026513021627606749539172180604434824254254138564765108606755674765791731280723084041613545587620713673316544924247938846467383136403033495059596497953545513903170471458946648042504778584999591559843640893600682504462687308919447074626552110841835327227751754076633898892948025760325438897779737811875151923958155302322630520513365070044794793785908047748848093021873003175108923542396266477949899856385656974397346216879307544403594531257111318102097877555714313389965822524582476336856933982215151222631293000853333576775723456433674696117552022735416291634242537539541755056122670582141347903697146430072721611551854331202313160630066608946704983946038667090966177091020491245346869985602342120325350849695685332399333994632961926689858832670533109382677171837269310050725554440907345503320857673239726053948788210989065148927456639116099159584721450314305996638798719969515031897918573485111488839161690748852267974168626817740358368422349846995250774922858217853544437311777363988579808953934071661028275758871435400792644142295046784543558722273208390851609089856417129518892721859751831201745339018646490310170476963260335687236020330383659060161107951112341034342029312656141554147112226376067480556783231131482620568380824101371703800958143265713987737935149602776219951087205123540511131030136019887582018176252171017538326961653760271862333962862404381442653361823862177093158526249252661061274743529670209393136813998782252830992025407070208545157556308091323644783310955496645872753245547815590141009898901195806622846931352361534424922378938062961292577884931314106337930713532558158669675284053219555086387001036167243283194634136530754796895989606732451200154393317633186919676072041643504299332715733479520572176521259451160334347771769941026460558578028835019740745242970089924650973463295995443978708781654694503536864714574266330972237853479306695042482399244242000215400791790181725073642865198007626372035538490713585779240319585101107375153639313132619820831317853216370604407697952505166243308805053066443959002503810873801711696315545274284197386321503384122049321042771520873748036368371955855133648028409287094761885763151244587994195618686268336675733092581994991693821663398942482034260135586624338056241354173461964116300406017304230696810138989234003353354681708151359481261211382725530456081178422597599303112458943354096341758439102805392857956396808572788041651779994206254962593564822954683234935134306350663828506683646866529921919826780029210544581947771058316609045090850739080405981968082453642091762393369793702154842491112370755585724699561777867553694138974453063836319344941102982906915799614201892232739551406029138015731916004530361421355972810692128542784408207717379001089175067704860465843297631721612748281984389264813372603029344616625037088643153407175570550735898442102205302714802459789827084637323214029297540129223715403558890725999725390408295776101873207822973300042557244097684877588387226149709716836488270811158631905668482153157184070219018004954815685591639707305934209023402156497138722903063046384898817860612663001359739657604759821689048561754419412508650066945260969450030764560245017374922362135126141580497749310395088770797936124038013734223042953438579168469263353771480724550443865985988292480194814937321283661375045332838734146088966473740159378750830331596713121256154059496411291442063029270518084390774304978408049685318050741299692018443674223749914204224744758020667305647859631941501360969903400147990215623544011470286070683826380224554178219116836479429571000660273495469614774224472024836797708142088100286580594177752970020108866873756755569557490812702041342748117573970551853029648277121504828652383821595790397258520016782063891417624547020184067677765840220339560531302350336176336913704485162172685817746870547773011018452768901085348962802205274347721179497604116152581604525616888925258871927653566101307925779095946044111147574786013828303642473769289437760113608958625444106836811269973370813027665479255950930547568635690957600794662423689925863726030734132271661958900076811444705244472655396150118670155249416920644225199345659354023463309773804307234080973312858679827736407632482738939684991368313406295484024446669324115724797062994733598448146669678355784803068383919947694544176500622245872207337104569275160148697500197132121509745908205057098673957558609731724906398133845452140864776136901138657717755656265325061043794924106564504057392846101453067292081534995027220784614174737789040098621059337474288677645942278064523806422473501769969754366574302944182966209631780908977358572211056858136403973600301220951665741584977077753917680191252508469753518626361378186004458475800997321224898098206227396029472415555235067823376277398401325597619373426906596492770348528224904570640796480824885421764191674930410853917801384602157880157633475784219995150945059529368657174678774447506999602388129550014846610064447905004924391073745777239316324732344219074729423947211233680798179876284911043610816467629170486459687017371790603799372697080003685986284640024954708054662425758926180182264830859064996482910063547217128952483787614377797540552893868775763435248057903181546351041677597259393415440907651579230874395492654553388004236904023019823462040129840420286174989462982584772263138232317324439152189011837631342407364340574760477545643138185004923580906557670685869871015544442117076106917535290657277091846818645109314562011329143867114137401668286335560678338917417268443329816736712468138634582359065544853365988325453870432404880163398520557559283168016602402487812699985317778879755860557378078223326196948096206659334530305774813413299496352944343871894238495279889047514075669257000603196828050683411574022151102300505428968018580036073151095526831826637947519300877657477258256290867271407424183604443261498801912159299904723397407830611740823672565325320342744746118423848159511134081156132899759486916243381280691415121092691833524186144984028701790658173490580315351784808194348778936342480634372444893997892382626779029803882972121880290813073382339360733700462155395744545377318136787485749816651327269347375794610819780100913903592959343675263357018837244447733865408075740838623422936259755995003593999178502087360252732866779516203684955475767290026288482199267686735450270348513602436888587858643950788393671665664125996132436466362133044293256832877180887787191312380358330503886923868732435434935925141094199051003777946798838318360468790857000917176934731678756551357177276051524913724323926850579956023908964577459237508411495798357294009034701712674445076901264586610111605175050308936636706662367063045445838535224516003255702118203439358868063625157313062907976507029330132550417443102174444106705607370976684294242122581638475229474920066213660881010885405168563134626808347009908298669307561175843688342777006655838999705971116908144926368468656066383063030635011837536185100009301315943073895687295454850478378962454238678427553431708627010536698915614279957952115530371657627450782249481961810096014810752145774468675458258664208301947434817436548568137124424425847696491974864682697177619106123025804925118388221271360919879424865592265841103715122080766707936268846324903979308239469407679910965198051359436252294445916920030770085800171041397948161063411906979136441080515426045949729833336138016177202514615391724279939871958462190620584651111259237439333222457028178122258863965924821476342408395668840845812212938985448214106508396308452917176356273006029862323972316094781253349085077758666732975149612896108240184723536177614253435469581504958593009682481639931662109195267592705534946798840043969321850535355886277052318472502884385984439027600395730062406342334024717795638572985007233806999521500681675873730513854210305787571180507188088107624391916340399846942652905305466420885465581614891035557884867678098265117248605757526114284951903922142666375692574363448520441285850085983943003625937036376970194012198582693090147606400946597073130866028320041888933830971907039239477104846483972581010057902136202414055967161042716035712774660982758720538415503555275913056664035694074798048043084142817845242336453018528413252907357442475479775551914797711439648467539042303527534231940997364286708731257991733668885756466154959324041723851120526473065307384722717403462475331343700340885823650285782467868308704012829759352940514924498756382042688131158614859430662779843928450577494598679702427917040945061669683096255100108612219777944145328951908311524602979975784239303065653297255645888377797118553837869784628715067585996136266275036627774493244399784816068327259616572227162373153676842416224148299974742272272855006469954568385849697327297662527091055302185674599162537529683150733085285096482632018813726740883553734231350468434481225200069543788188739554864626096581098907654768369418929068538275274741287426232859874986290906128626986255124587089056052728004824680719388791468089983402783666223321387825119485265840571198105931530541035156377221414048353962066087332754439503178813299518466918685025451266498111710346062377985611752778105979962213618757558588895701697594082179077666177800116353123834405560441580437776180733048669836583347117667594454327118739974824960143800487352310629383832739426995624261712308100673599430622463066674806247071654244301672959272486093867875190503740962023594788280851485845542980454794265692952702937452177273450162150795350231101331076448419753876758591714452347688665717946426574856200465950789376443456719127669622022778522848931035931324366521874026297689093561800366199023911164254390722169129355816700202855074560712124537344419773711604801270414816096354013580748745600333076052200925343994156871922378291377372860891869347069424665005360203177222804992626744879147162768330775924190106974721140057602242906469373951700960680822777803074058045734443949208721247247697415095422226428485349459285282924533459223228711274629615990731728690715614835020770784224611728046418474097673120154853271733378083348678486997950982336371731483962414442163158299142792841237510123421544614722028956891060294014065467949232948911955711605104792445911768463454850405883967472821745007178025644289913046053138751225823739887880030998097525074219695216514723025307482137764606403083102374089866551826307701344469527979130970365315355699632914668130216330525077403306803558891051926224915489462723978291018267492047349047007015075365877081652575941442120988860324977643187402835985634243338308014214056822524416135344538880003695374582211841579325570670095446998717407147851826184816748017800504641369748086366697314788959870521443359881568032315501242313958316967515049949619034858264197439343519019744216971424373252029445958064349108957265368716437807544330648137907684171058559493324567342465232369433638545020041385117006568527080929542250379359032618626359628184456859246224037773172783317701125004121231098493617103696649878336667674973948551124677969460773921794721068554142298416198549722274468274031120023806271999620315042707894385741911936453695775350885811093150637557600868831934541538281741838310494209487456048855202695862336498506172676431781549467398353128333807701246145730119514094980279354347259800173553936754226165057852232295684158944355179984024030555100236423909507324547391846874007898349718286655513339398560796482524680797487434582201136284964778055385628001603901605061801852638252700073641352188863482665912220270501085797334342107310922636088536646628096352948164805905476120032363589879066257833002306772158226028250379303899513255588369673828782108012293865019394810438329313884128920192243321283956023874012123222121100537091889323759547993149791979583626109942077290851769794242577485849017222635876667122836949764459890596864857355913720012875420416114769182073097794281971124683149820277904074914460951371450304120121279300395996556494152196425908634061460145049155840280105240189803171407323306745748647690622940986830052049031783561349545557790819293620956110881753933828221738587047139752660191451870905204895185205534077963410489482576572970486076189468640875457562515027860577697517182951585308522945647830072903912499851855975440822542322480469504049653392929856916130949909502557178366257292814777815498890973160562269937066311686483091537114316821649417193650467866606871647400224745466508295442475836603341028622367664786644055614976315733577143337614964679826290306843947697943185822869085864793104424384491432845389692199827299176067663689605284815781534493437113164365255305788205513295019274663107969922442535180924272667842906995734551165043121532319641713372572317719627545524891956035763399692486424472715836087838827779178863228524462457452239423225001385368075506796695187563231838671800502245699704709601691777414397758140053717116102284191247730143486298910272483924981597883193945042124775445252540716928417144728652071567437620414261541181879267736973272774808145333909750702585728586523786633800903875519901268802158856648684684323953484908180216237595411687737014352812900608477345325473647838032837017579090758234980695171234598315512906378749874659634088300682725144890504202752537681100700284621044645343030176193340742301964365116494520664835530264118762921068100262882211553789354030050247576653952901374075214001207697481978246895222015047075929060949046356301817127090236113757920848004290771739040063044482832626430331519906347317836785192404424693070903910110172317057917301687671337462000726006121802510342630503268197538142670006850408143115221833283887833054578070560507287755676913886275106503731325258934530998607793245253071653539020740332816259042055474278974841350263383203863893967394528484533624465092021830682052008581313240690540518563539149735956742554176822010382648898270823908634943859558033562680300164383729595907024388226968934972078664069994511503208772809637884176273750592425346425119323007095920621566790887736160688464422463614873000624341370264942899422440926293106813738432895188835547336092985940226352443687575464787043611184297973451739613611858048824853481099015630318748304846932021100120320397186837743344410052386112873120084446092140256620823468961328865687163635556342971307559568775605371708385530252762939375807275680156982419001745242383753642691392326160806452048645455888821681325313089784762143963585196894391095642221611834911627843642921130619044890885715223500632482540045058680841851984001268524866030217608889198178263327310535019393868261289980821652166395605178494549860896381345215641204051268365608911637082947479113285498405650626862888829154462445955255725674958629429697029899611386236224964457487548585681973315180884333322628110745229216462701347016572414507739229974003727731243141209176282925719833956857728771111909067467479951648355748933390102438742506446912800792685591292442762492121318416232186460028556578468702183825341347362647637078526816634331638253032940596303747994324190239763082508611400044636307180333051895584921724553503970540636146250492227488993747122268881808861826528408035148453595996253475012201160826097675083369037652075834924805397287483757103548575011962235092516293947493944631523588355640979093960350828242131023733669413508557754377179187697689201674480264727272627473272931690838142222442894275212919560203710270039096664437698451283168507691533422365941666656908724533551677240591767452916843694484856744762276709777508985679566920665900818599250742344067929892480901711525163172320067844030288959140775019635268492640021742407680534607959742264251475937225622836300787938083612251386226328309307538543988102691446332444207191020257218062343744674994000753512332259377677182462305132256047479414160520722739048679246042327787077562511335326501161723749495811205450721459196954570276813844809911070702020642452503615832119691783198178731568577737758714871285056400287608109829588108167718891278298461479478937363978562611869345382893226607674347314529330848244489393393934272698724892121646813201668183766184171913590566034173613491987980551896662828379964189242622417112994958596893552948601180114397364823014471058650284827232371775349660895955712369680693712357178489364089346330145901941753757000135746583395981874543112717186396572018101507489146334297907200726939302761117615278976625328332049725274450441888169427091444076346084666572836438499132826923354185423406364491618750917090453040572398490648280179804323453735311902853650082385435327640612972352886219545482711369496767283253340723600031139347478801989804522509966625435610721586181594800545549378745470012951684345308615453786166342818491291136035919771982652947355979169060807097999936769643157499142877255892648911503036534219803005246201904106492208875783604111030481144353680055570188745284576878591588594324626803113752777807019844642880150145971318920347640698295933496864969173293349171138387916514111005699376548467754177494569896631441294075095058633040256224878440694413039076931871971630901791213267312111681627282412873552183179107234145346960714166679114936003382296815954135221791284884916505774922281317567392299874280446566279972822047641231560144962636311887488955606372203474969693548778471774966807197244075989879261062346625661658747297936064008534899595276855491897290193544386465137669127631105703779074685240295544336772769872969015803989236101361301190104519850434078581441709056085433768803418624985158493182719396853401442116730602642515683230772629699349529355963198770952530173979686325987142418312940283101352391715956780331645459943978402529854129616877644082136324016474139171327246194502514488951686303787095944274902684715548045698752862178871773489275423922976393577923286941849251678871884042167237552928333939978446396028254488900280582266439328373504409760498118782579674281830534415155377369134504791775374821535994937509006489171405685042152453478456197309499502806001805596348532016666994400175465274192661520388052244195142302960967931763678063690531162975051296452561146954913334588343977631118302902437693418825085072456961489628852312306166896258071483965946036582077995002032008445455115735405160882459986784839674619160316279601553916015855964154679189724145175082478225545387421622190520985819395495470606973233625255162995197700087569139699053516388210157243031040150543934436493345704081315867382624384541378178287066705954895348997777009812128901431631557373934631116171086365797829542195987312923253190341203669739590092462599313810510566549706997816608846679677163723545328729892763734888650558918461719982723724403930882505664109980878457424682425337541101137841099721786056760940641639022048133558270453293590477435596869903004279552007990881137409885348485963053083444543866229737143613468735560581574805030423770103781222504340115468997161250765784231969628786316870602985909582076917522699378772015343151137071858769790643716143363654031046553918254739440713375016984205896440356220260084177518183387570036400680054233413794558970544016907176819344322181993274115754950281205734322564337086452830700425906043767466026590965787241284495562443522898879955770809282722436158043646987443776031540293479827586501920608749350349112203208903056325150305962091151281991573093808996419898911109605496379843684735769858062091222546058658680632643465505620434933908346804265159433564785998285903051913416043101891050238641081639504789918688318699830883220165128269706510091620417960344982866845799665862611472770215514697871442615080870020877770207864663450229841878352744499909031488381283886255545311826610717250595367018465250352439828930496589680848188003988687525220033471307731216896506031064386009202183571073609227616578975407399446384452563564131988433923172444587647063118669501428533721309367414306078886458302241583584866084521510759657810214555550957091998873497327943902431712091862145182051702411822280891906192450169125408041535746460849204957321158242659494213511196320937183041215916361204090256106803250615927418915445681392506769415638566987099678824682296034923773251022241230102545655761420629707819069404550307647489022600819351438737998331913825594793016657978880337298256282023511142377091718324243785229926139771757766423591597270560882749915295607229576896511470986640687475910169079668205312190334031473423073962303371873577033640238407118724986618987402533940087242458659481074814964278293675103421115147313429705855088000954001203509522918844263262748414161327790071331357802778598328005363087424527387325105366639365837478984863636592618712092293253117236968167524893288625643649830012870275129664359120589786272662066955863367154651998974239358341971205295927132745124050810115246634307157031269642437815069888566875482435943005449422470563103656501267697072852654208350839174501082345539711952764985174516081326298677332630090721611584760998177168419720767717189422202956805997267436872969430894420229805168748792012145077992217458497236552371460602901706730409296219584713238265874671589686283120501927193461555531818921726931825526219059067413279843578982833854839422399002023944428205995281422929561882555242409432048859634882282728032635646609984567736882415496592720940155954720897971382008220633932860712547040228225021269364084970428642106618574506382596226019536690624867016875342729544804591684106844575603340751941833390136707773380935191400869504017909485389884193448962491322043110676461789320509853428414067401615171102172389228012504187433065702475315641407853285326931163163776021880504477142356524595052529083672369699336241754187336405551737703696975998948236830660029769902702963315914675897533078114699413559048089696782500391868622227792589457428886318923082829146819185131508693610587365414178430767761302009306690578234886999246164757486798872435021631368506621753586907189550136207435864029032286095872907599833191663259913342396842846945045949875321383871312874873768209927777686749270665397785442720345321352512619536904666142275975362248710842229310804687516950589803439871143893477847826814658807800648762681880310861968686711461741502771674699888480997745398237820078930625037340288291600585106755565578536234787933642034823682319709726662654307137124158126238414928703514274836194831169838968072748699297759279867754952895024545336860385008137398823398572049625378066725301782598385702869665562977368716703308420661402231907462326480993637748996196086489132743260215707513199838076419905653052744209651023251978289854162756779452858477515344653223592594806386720955881792057199152785868635875174082010177421576054226033571885574755306515703293814584588727921993475750772965515642268324363836036396055985091867517096433305033505805776678969940462220627577784073534908840053849853412009513963227714409500399030066609301430065699727066505100728000289074390839308921740712132941462156942949629374239028881005692791757534321879986286323252555752533120109952940579745924550382189560993269533591558210641027871862589506581942466515168500181187259477647373228228310255503716245832241565948460770419246068287408264712429637447076139875591938025310379251176021570869560112264197264267708126478750224202577430284589546407603317322196979293163310642093134668368160408392501689162288937439400215117622018400309000336853538796848680737810241414179811712118674243969924408628354934511069546143501098240106809173516526012848006969528370485450373491973386506324663478372333233438975174203752298996007582907757576860759389291118199075510513747713837682628816117460744803285447289917864827580540739178452324116793659791891484286884516263559524184686178023441784417522266693441827423038238283922699160925035715416406789708222601234670452311264535612421477401286339418235063534688421472827859489151655269457175099177906559850053168238554685063275069904268430677653074037716877014108184703137950320618616191063446972464234092367963418105155419254829457628293948207401450101580997070995475105773485934283022131559542804103523273820350927824896478492524316066131983689113371280100876835337515226063681327557885749137182467853247481770639123218895221792715297941297856532320705327191082065397816110824989972223769653979183478919130684809061004803822301042453134502888148913765498240885287032614222502318442497944067698603241765543592351158415158614840671925519081797380155858592885972827854577484170081260297244590259226209448714853283501049054203803103662460968517801648970970508909150206691010883076581871281153829704423776910979602472390918435257900608715797763868429287211843777134352838212337737924807690943497379379357515969001195101842959295344770798333600442116006172954128385729204417957144829376160426134752411818777647964635033886212702003613713593930646493942600609192909261576343743419564596149246678888154549284300046772960771004277846809995282043114870298624106018903783224850067404314763882064006294855578507269884030374873397682684593981785262947707066326851498954603078633008417145993683741197864148982534256933107220995878385083195845388189741511318387825565062381349847896244247213389608128962401745147381926104335750462411676899302747368586200290667111001930181726379497192659221945153144500084899417724033857427016456119493090516340631028460041610642692817904696428765397920088138864219792593399329611584623441303936418146463542363976991747296998992287615476588537118916122742436373180276108358295422865554899609727365372819610378081614350045478890311423788341640390253370674429160309226594217207414921482857305573167572740231386780236642117142586636731162255944109316217392045374564068696316658743062105542610487524382470975794316031207620729057019362144124340491433852961307751148384040453343764871660684518051698067412286683773746614913841538730375638021800507895483704840519421574318238348446030461469127835656539029623769608916560137185981368799572564539903996068600463635562775126781045314742232984360155538527359631402348467343780070489982704274862408857438756506119112104908039949338815801769902867321770430818498951756488409772561879189923425777286686156154364184548692889867550680717921001949525305531620372039301923939135077904028918976483022193338121016811885236222206970755997035044477659109411104112709250080458755086749196535222578278897277837518824466885322310153678559769535695621482598992954040538006222837528972396886991030163401724003457860005155549117712988880600738313503584724532310466777000749870611443511200478941332312663780589768190487262751008895934746324298422717968430991641621790550733890499594423317666574241917452900364597911688039606732327785809271586451444368060337516386232594558966818007307303206187091489088974075485335060265734538783416208640352993640112740281315652643697106539739162133758356752354776436862558152380604697463111477249645316816117012172838278876931943911573854317324884552003591605966633792822746217835778804869930365838765493316210492318852846951206039535245116553032229808000608598009997977759894876392366486644859161471006375344648354335281649140187849587223812720128679292256836542132782265514973753930945217996896474739322127080129901718653510202810350644625971922894568818505832947208736415999641007197070140585770467085977526959315139855314219648426255686871444865909559571195617586982266564876061595138373819390679879278924127132793497756776027713094853572859405136241307212173928769006376132692309784820748812562760945729141866499750450898993193317850141663614965346225681218671561675095263423425657025347791307598544696251774908190965526409397169314334621569923775818849162195682560533127846026928749363753442448765626475264696843183521630963735254667600470906693927278926704399200007735726583415855285745590528618354097755316682680487175787741531831539359929338814961517447719474450974057551792395596912939481591712900988322764192986962434175274212239182233249750664813686984271315398052286356573642379685159766552733110810071545601267436157979397031241229823924706722548069568150222479110964322305276062986684961675174381253479517870150442409920076043550452889330152333199910097430146068670706907604250844757276474544773505905146949707387582449704055420472092132280591140322660777169524844819043866116337201954363027320992655479786974512311315934673584450687349659760285548056254376221245906771884862222018771595551757625407756655080443766096604031115051741316626544539202500618946811469310133112475071951815792968784821957835728778511501625443445312254458418462109461902235175082175467365417875770306642354891503619757340250590596611105357922096657840950262236984933594516890656967854347047337367945099022880687713658697667584819095076047679719536700870376839138384163868751203548089133906302936858527317426958840654703383284142604958767856809889454194144066231898413335145614169996296746988394800020998882412596520675302462065726908682433253031355963492670195755386997942805312445325332486247497243702740453851017645148525551209231606773616417808820030055898763106780722754911072019791846227283110179272913493936787632061687934589720607333434561761468481637430322374247760178246608881530487988735159717394205603985883625371062921515790186272543999361800473637613357690495950254664940828076149237388780789013587500754366308517568090708666798029325338260048847287729677295775489953861241954381167100949668903586821690407816994160648613385541970975907929632502558474103640731896447387024432617762965628051865588349468213327687424037656972549082806402242616030035882592699364460130695505888811155708454841143656172995869310024260446789595334668367788862965578609297278291629290723279989830495368532620852331768200815595332062639997566443188769233655723668557457265438888466207556868386219724693527067393417435214847286603118880679530347566390708110335015572165388507053528544571437518467553010010827763247887361643195999538064358605188912667567523539123892187201428108531281196056180921754422694980166916184148593180720086595204488300734404343774708103239574747714141480292902934645263947617678507887719023437841353181731661950812898526502172017482474055537612350768060519347208318390497202856134065023416261097492243078496534339308261876892885961319983167240069003690908106837613417998069832646875473307530795165630436300633688005485211874660217684936022454123620703684378202666312501108089340357815645787966690131471894184608108651217169652413025382423553664780526058941754856983830617903253199545034255999762274690629930395679721112876410253394007697331711426792565112180331500972445028832436349750831842185460129833751643624741480816797398114921309500044729464738323435710592311776230513502376559883580997408520003291000251726291075585986024600597719757029722112840252932956892370574303390142944941752746938690695799354455548370479090818662912416747628259009169874945994775092971597723414966723495393154068381157675066113027455353332126086856023757012823873985527762513178380217354773567285274278775751537784562979717299397468792013130812884165819754790401089993344386294639769516311458137297512861924550919531911669268974729410960784701919088702211537585228188289301259555246407471792092369687269746692545678212118576171022630681431064855391820098801884518051665853141798900435945879608498261307594005043227932959582091082079748561572380597504977711359496106006715123793067516215191140838867381150094795919138500590157311836236278613032385740219442563806142109410829634408608132913280965345083791101419707769528520593640475429614865343064571525916067681835011988207096345542998640757096590416545723836684386172567373508419992668583995305671696443201417010652564227602111246371916726012812806774658935554619561334133194935072588370764538536247771165312416867151174667872737466930073463081481221582275018802989869553482995438979041378920320116437645702198921839738058129091308596730489533817315824117801627744785561614385661320181358864751517368751814800761500070858922493296253471010312694790640654731955352058130072979703849723409692067224921600831998822541881054233125599639500725050533086126118565067293402959701385147085256070492438297077198405782603703716603657642306573256146343800464825990453802737489558642452455263408094063963672037745493562279499269374172577905440302156857631968663217785445663332674680316727441135475799399619032915326734984520021077785254762420981635636293911170285618471953245440424716661190382215365208511028938724013500458195933518878957025514294523442209606666032454507456795010818641853883378489902149630803758787853359874335654056980323347832416625468918896660759813234733302705939255933560369359850234077668065893460246416439386007250914885931574332941319306111639625940643944201113475306117304018133873883109534124966904811871244997544536978126126874485982704321674256490024901930080302956456799950268981780276548943009064836721534812134614873078086006939985037724330379610276981096435862665940868923761380010958505009118853128552504369856080601994804274394887639202414186062184169929443603491288096837838477906968029528084051784652022357947657281286996663476801008523195463823811934599413336629161180419526709248134255041310284504280866457359259969778309917150168311961318411173441056187266861494062025776611483361965856883516893576854683465334343059939865278550119252015001127741778650159129711097656288203134137275952418609966056258753635646653463306948831324862894159225971500015803358243463398059251900051569706398089374580677511991945378358539755432828680021021481343056572678997542945411448883850747775608084211466030509144700599620278285164648501842127803046189303723627603032732288842959840565352351605780119782018125686501098045345074651562684339052612980381705625018352569233797629959774582909179354211173718634639852852782576605894639166217426319488612700716262235892347407218128946002902355490926775709227641831888368116235724337924969276724250209134694617582207401529203504162304841923747291458130859945060849643006447065766725465899996410736096228918933480216643251308114839469744466359150228296724076743395646334487091375215230591073133454926940837741569552463007333203340130738787781544339493408721683703030639495409828939447604694017434911015014575413718530623417067251199183643346640116467308759979386062948195208079488338533028253388259066703194551066344064579782504316841966751403250168036360649521162940182667184410329726572669199069209870219719705317271661172825751565329501626713040450545739362056162039796249450203503334539241898800590549425509333693165013573486716507586293433128551382478039491330431858028273708943502694601956683558938155573881000650703111514858060701326684573157237590097218397933581533792020691639052556102214503720811865274368152282542023803000492868409821546284782129494185349670683721221473941825974531371330975674130711317551601799850260693849683454175238724496329643373962776388818709461516252524960834992367254554453705471013103206852129593111044895552909571458586563907813200045855633760688234219213244334960692582309842388739957251770248253704151083935550982775249737921934747309048285491392252587725255288136245600832934092339429902122112484112237486774201825401151029464011213651879377321586494688937766179846676206707555764321326177438521193292985632350034508611841772229887132307784250281264556441554310144960483323836588249769432976231999305127896724320978780957784661876228037634307270966407393393572448614517800643912926831874278797055304686999517408479894980283781375161316334717640482962072502800915917379194313125614652408732563740499581663136331503259986283335656448149188923345687195646766675338056643201121463800128547034543342808392856041454186793440317271934469543491264008399206140238898964568943968750827884800326730677658619970080924638110418416683834140315010822094497836849031190141562483460164733538074150224602348578554768567274198838077486236345025196106579342144666482187760105681853600312423736301748332185892666658474798429539922601622249511277080862506912508060938737580936146906076753061352265695798352353067880068687204822414403983106119617898178643499829356184682895000160906195594487535247131572458962495320009562706968685713547329027722206604448386129203552541019368622133374632632642998199596557314099209505001213041131369690938322375927767086917950664620939399236954487076014166197834707073645900520150406026748725580936256467765956856703717187427401972466097136557653604535678401480111028317750937224691387216895101634726977721328285385927047630826233980934871960926495016555260398223085299506122415856172420677695012345909070868543982564376880005253914898561046026320538360280022032021365289288341631076415237363240638004318054528828199972089566523771369877994403352946130986636086276716239890800878947323447650812687429487260312630495860895138887571939625832615267946672026039278230214914140125421750103729222825315440242999944359647172568016079527988246823978894699829691581056151144738849393675019978396131263702515538384327490250717744997809524229672241677062004066168902287461982378429987547347409146930880523702303014392751793692373413878000511398849789679733580216811425279050117797256481540855041374323219392400478790835179157065794068299505685784864991439533284762260066330237661635559790139852584154073100306206082368103843133740762902569910454796242747522283927102225810962905680439938659016470104645439139318914901915407796529142914882129807732049763088975982399786055399333543846352178675614722560696682451896243487952501476106580668573819618858856747509154436532111178745916395650039627555700902627814405668885886488199087960866643789069442185878705816480222525093567144383294397433985903168159156619671008909225774104495979870785948906856804963915139029843736824365420275294206966620676457274956700146087017657036915354994467272539868714803884949230562404556651692261248859681735013577211719791303524884140928275358081968016191254026474821257665696367972291360411450778285187996157612557085475357940138927186885543369750421438329111088256862784672018434541993782208780141832696090222104993158521248499888780859985042472305866060548889796186404053020748822740060784070208999845281689934890471776985407365653205821229034879024111308367131631673161658750416975585280144581247210810746406295031163867719937875381293030316273712852434470746142891049595889950949389370878665450961354753348834368254695066027996657787917497579427151299388979472238338144933305430054186050389677431042978852454751557223681441801668638119110148744410795038519234069560398567568831385300046982606369922038379129068450615313660067803399730382960924450497295460957696660411601693786929260620776378655496222114681868277188922652067044772209096107511089175997828138511958254076807577750947046276891154242472711983891383977970280294008449023372440830731023505385834979469268394958112116698030802370567659579385193298759341114351917478535121047111289309564862582710012924145175823168687507053855942539801844932643254703055710901121427881620068080582201415690953738308833317182688843158903899851289019674564230988594911000431778867365939880068283901923843777316537419026028558774921402975265391084053544282572189652699956963068377764692353074090767137999356123872961969761738714819433790647615429348677717001452950460917871062967331447843935227622424684840263712239488251077236951184279899934484265817076946327041769338280902283685188710156084859830065088261762861953304838754633945349699621922138926738542520995057061733000933788564411361411435317310476261680240021318445935989481524711138670184910724471806687035464326229556691161268267131276226618301931881972305164953379723610715980004067860226554517288505440156380761535447461075256112891234594975566815915110565227083095625449388586956650628731112055162757193557176118507360426780156546216910315713527937357851758945084504973215564311629054218681611473312911831933506102880181087738861562359899872116750771446791729726608658480419240659205946744774371573671266392361501612037742772976578724712174620981026285102587417059032861866580029633199348492505584822875561490443089343603773387772951563926116229846744724279997804291053727643202585477364096774535312116896246090320684868208760245023089625655816670330630457194251790080162232848373279063200525676129588877921710099501777743648998343214479504283314329847351994746406581331659089708032054263051839922197045137187828992414745197288353240197770390549915494181801401867200213950143697352914911168483738519977771533840660071574021168335829304392511683699869492739093754723719361230971053825807681839780515327581463232129447758463522031696043231543119893045352031559677041388890003415839603137737010287973472425004222261143890417731563788283854901999738765085849325057306037747307905514257106360743467751925613823369284237150731975537847971488019836149396544050555437139904609139714277755757542473156003323829251645072416125592633237145095726040368876728357992251172478492808014387503034846115893178455250808851060912159173964001643349115887788962967654194618941049021071076653390438722210358293253923772924527385972098942886921472140424581339160165087844573854875262940313022826447359520698123259147979092394545837808985927237735127138235588238102681461519029035432346917909201215579933949042478189174972284377056222349568000885024468573533940088641743041836298759975579598486669323169802300008151920067876730079157631826490484322797656926068241564163385986556195169170773622418215566079570417127649834136951554469166678657108827572890984460403665092584659656017980306402045807609870736205794405675376103591667479400580112965314277661551786844446260072885682567998530097634267482229699773986464480929205825041968269031817585844396569438164317026181192111416363282346218274035295323930458142833092090773630821141118175771606777616403631893759869782744781922931449773035494709963677696274875564478728012413846748392332850584780964910791352036799515175677546120241713681013428236196197109702070143819870082190374224459874829747429709811709747831891326249647121215622288864205367202812366831174614385079365638963538858378505026025271813514085756120171379589711077343182013648635573713803941040225857513342897455503179257891955583159105629978492518834123430096176528785315008352165063700729069549904689812203024963871374708036355985316671224725844861869874173569839409179634744134227139899989114007565480833633951392523685611728034600504298378618217967393911120961895530168451410039332251219024274244224321568237459788086825336718009752403849365956277553925440987444003513429862309730250583394511952890511361276497558289726343100292405231942037684801651364577442832574039203772702452340515133404413126331386694385357961649323322843198074875623598667837983048404451144486740589211673379495545380595513846458727081050666874826201225277906262971748312489809081934485428798535189578169578448602174243836433012801928811684832435173222524698508825866921365089202099278826285905119801760010447285924225990369468355868144991648444756097956515734632161418890246652498580375777385106315772580593505682263830851770166417801515126670490994633778068328155834368306567276498548903948886411068772390016014923893895078165559239223842717135400956578399744778911731267255664800220046743509635312784107257711459442869110788142905431200548595917530310574991602127464382099469618480691753572598298519360401733269759752219098230259742811120059377678597468722837563947381135293737129877327362102664485927082274426353674100259266827192292489585089456885824554440369490737085823663291531023206682075757508435966601225122248290682523870140941370726742547342939732403360964031381137665476027349581670416932948667552062729500380398225525271955627963395936358016556709246298353365713357937468671582597540120744112920589168631935193681704015295088847590061537759909752303489232819802773200729208139958562891076439042361833384139889161859279735870200410864090029075769710916278036177804242722051123594869276578800434355309843540666922125947552439110864043340476468400302489846658438049472396964820293571596034641105292906873660409424173428695767770314955523838215781422155405058341758483196289231301595214575474142198865088387468842361535676021818341383115613798869450649012075962498010015356572568422494009646519783406417717889276875724756853067643165615202042388414330846241023793407674849495799565589474945818291539789415335044469201838199400246765616218753023213076091767057491375304347771392161209139892847805643797854120239699804504212329670649365298866785318432076216376354943739401745196556859466256661377484075863341629694586480216380343701173274245958741776659879147986756788197644782673925516869779434056068651687831845931185898573544307628664629326305228006210889205762345681690543469970007219698877456181624645285969672035035166127010225328207222392727623234862289725321313506693562972311794461687584254881986450917646346747620812421363293011883792216904940220925235359899852913439944711563020860363113191367463429709047274319047665930963833456218371067962772087579602514946318588633269785845749776558575263109984840145047545451210728970943597395260319450172086825615687936508915170353098381913494029577700066595771448691453761483379169103696125936912288037359462224597644551031325004960040998361825522989369448492461166875196316554142586419167699615829000305033636118291047558577786990668811952167652211064176836600990136931379909582697485792196943099829780475514980344960469768450849394255280470895279592182431533256497001501159800962931035271872856010891620914191487781411929141656458277876867915333739305705262773651260744570043459913342612967836671319952921985222384638185323509709008329132475379380516412366393593508537074246939925861942696116566653345523916987462473969015073537973242474128115571713537721114664879092334093992522957551989959795726107585660582345195574754931980702779268198035256646621983021493119622863123898419171565508530270075837181595182671200715256479642422934924428153632528921449498901535291147236658583251906961170707213650704925995815522085959617595063495464658134799897583423540236939009921157557651678803307585910835273122777524964473126282679984563511855920550107466201344800258341726007184977846403662512598124059172721273029983710758978825579897928957507777419225540310989554409967082185726106805679461966048132337981575912733867380992235536601042246120058786162894204517181262838933046489306150715560338548867480637538339815451502339913103644128279997533046930626007902749120161206180438526897576210443039813806449110964058476798968089200441276806998129360818008366452756677893246448825591010160010463712111359962818805664104856072470061331314520203296364447386044085030772140659776415659377029560200672823062477429107310819120835775989894415935027603671464671223838776301890160320685656796573581236924550654434302541655296576950190398481440969639376759319805582341318164203941769985994713454935704328602633236618258584356049870839017746133583770245923021950219954052014487308001664532386667567759153393880800888168703408389208957518146794987140486690321741236817948811367656340500316946876869276273589988666487281107041860274756401484112049262790801811237774342582833985015665549804218288108233837466336773283284031228884809297385834146894628874631593192158055718291434662896209422050212187158163103833699439421516585486677059182718786145293705886331783294662183906686922908353841603761747214054499799526503387367712044864723259458005347511940262782726538485857855337687468995273668836073287564122087346833159161887379420928139184999698985099301982936887713294934502159724951416930011338151547360320645653341498209862718329769262554374571118950621377060781189612185166755096645347968794117062388873251621764782217435612076117729201882667833297197497328963461020170183547973778729389851661074529842169397756061734410970957336997375689816975471201416858851851480675474850563036438566410614480891616705525675947719420302090895771316030432830618964979306898553350232579058166181935163868741365783957819513025638173050796877230437298682468154357614046719981243824143347681339949677653033865328534935213406907710294711371769278966777212887954589341479590591111867564625205304717737381592521051734115894206562730485439449302899202376416972517126893554837550478754491979112893073623584457194500129786502373318659428214389092534534187190017573651931663243067660900052346815533710478296597784155678585580533624537650616648796541137635248242688701060540792515438717804583739495833185239449873253489669750325237225970595511616478877681419681315638439970511373015111426614207265926564237219189490765435834795091292473731498198877586062519192674081593991213987950395879862243852284880695808079214454276654962862502063606700691833090208711034654995869676738130129164709367146648330097977011197773926463855725802470661502603457049358930538016177085315070439071270528225115899476248042685803908422456072059689263179850731017877580557942962603101851760465359283606162688108862220888075526850914989326522265983971332425923526746636164851712430715625670147912335586601454969438134377328558083101089157580936159657875710400795557187570795640862264145437584543419460420951111861442689277654263273546413963406524846160371100860708013301293867385323704678127861683319712504506040760896971885800750456681340508365215005755004053596397939267767352946040940670114260083343938430857948996691725637244207109999321985819605499997228335379512101139820408278498110674453216975018046023054534377991738181973571397291565865780507437397814712189742501926316383540866192930525464298354048887780279088067126555093990660932460301958227354180950503822710702390054627125043146514877197285017370024441325132022254668844331531918003174918344022208319964825242182195048454556861923179424252405568242421642852341422137299418939707079522185520345673816806078404302434158586759531035918191396091445613075919872258875003469615902863178367258052327629369544406136079603080929633981415210821013387471310402043797298546751432171738469891282225134637888434224351542929490682224839794986887675422679260794198831209293286618058600498054550501046290440893504558843707475499327044074754518574982906398871517416482174683989096606842067509481814957106968126996024604781446539000527957382423380509204443796355584829551575621291938049385992386268532966716871619653589457414022038681711955326520533770165556697554126297879464475079956571665888991843416496778118030554232088230127797642195658572286508000190929111496316048356735682949716033407641623552980918339535310054140571126388415793033900298931498974410091062681581603287841637750158982731208169739473522952415805574325040186196351242565953037929433122161244049600509571032636477407024698307434598077107197927261913315892656473359761791558497236136724332564142590505207763795141086354381485767943938802714869610267737424142029426704331506072036658608517346676299021038900339803392844422819114301681579569782802546174704364754178819577618927212354646713385326074273937389082560510618708196847856017097086370826224420593648130124506315902625213856901282886898749811315586486817950760319236320637686055101062633152147608078081228837633643011098195340086249808690853810125989391997049301796336251899240422027472902658282378780644541926595734127498183769740849560924182577012121131420457861859611622552415642538036017553304648987634430032580402719861473470903596878807436749578298970559521041392010592620421940359897093395549129195697428420191263277241949755585549499628556609804784833386339815068114746413041509290777740324830659298987719398607308891179202008629708703056263637046065340536643360611757091113296936288809397862723612455663821212762206070850160783791592881367898635019029651435142765292405192826939673177659746551049732251268386448406677715321780339075862593903042970169623570856973495280530705617174598933786416930992656150743500635307796779145563743137868947211573365586328646061414614163545515906022529788739220048124954299540134095446533050775796505055394155585325691320471187243789809424772887339982113972495824334709439466445597172749654393765131022098017595024472684519330568011242280337759870578685489375809146363334122799974157719165265281084493709038239436260953131277248933300757581184341002823776543292906666804829820151813415059763117961714544562872026209022015320982697741915600672344079440949187410164851320210472619474331782472584239340172208560586455839884487946657529032659286865312572019910080156691347418941206673672629388794967304126671250947955869837239361109613512899317801724368275741800545167773755944672953134438807426930345298940367978656807757607843796403353460667574169165179919887786143512851002308501801885580749617727646649854290017078691589227195692489846338335248047404953910005176319641906170301341427897898448301518014813298419482828734101679082855828143408382034516370104715826939930677771393357784214544288414283501678255371834530484300624706857647509892582632645467067440568239796363392960688831095241514471226140241733747112933887888096235883403910693094792857427335733019038767313254504771651551023038307686726292651751373269761928532675606765643494238118411882545742375737103708698843413975484527315972022062940796490651698591003186563386227881559581156253706131808090452640218662473154899405638443051641579069155743836200503635211397618040510233914342380675162350852695224576541884025520321615792004223139980104513342387248664353256488895443424942790344363750753749525827041208125425903108766925778975848558711533274040179362708010943832054319973729460096401090195528787966922192856743361946244825401283436547559415375564780304397985010430084920514707088837136078131500616718145192334596682092964926580754441736863909371022905906760935540682158031639350340852490880454832793290582517273281534877458364054214320527071328646207637831687198760053868159265177129654265951913686675136435948496807343041962753045715610229008030569705804113937190132107910019526889137398841049597303002609205045719838327096222749934367544664362406745351214965650271855830066414755969151619285584749542070791762085603540472169591250845174680949307751860017324176278616430409885396559888595941684210732040930553722063157953382370203890835096397509286630500451995930340122762357013081958712425536416732948387465221941643319131946003392070693234666835796790862901625442809390183133219622068282085260487563990844849479887190115328382791562723433108634666222945197615026175418324980082373215155547537339288457094286655418570138931164570276307691087819851479029877991664089479011532660787548310310993889995257920187682859369669486443138097944463206738790356744028916788472356065283226574684698440680440225785634468967804909773338877405416615180367232120207099034477997815141692405432396630092489109202152779980678697253280347977945421391267928829644937918169450577644802853875875259566455935492856995531794339429663511355000167781533863291941255875216586492492519382901821776221467275422828731658733902528410421333356584369500875365182832690548707491334391432399742413134351527205147087630015826456041288424201821774307217555331724267203210221004473492597245735893439960335389398905323509571891088154983875715026945043640495033454041873166186379360218293504147334456466135137000211154383767781131476359418060463729878931225770704989357380047495373291165400119697575186016234756561266242645648161664235457390089712323693742034084922927648267844999417408503218015735431519267524146178368377134317190105413869800752530053042696194507453375343911949636585130682174211836137317629076551362383298974447109457789339058905384751887463140806833362094482414237566125079230950765715661145740026222265510752523806083360562137218111644240519539544499632231522908530628809578028526148377843342237907277717238778023421635426110839762203090262309026081003609402142969430349996708149988549924188462605218919505555310349053949526451996575488890582937423387470228765620809529969209072296711544746497724381181637808314274803940185360367193773229487287137611090519292455021745805659037563942330277740143598462616403081713967282450764040485582260464203627794170106935089435403663450150799114979494550754322587547864701221438375383006537569400101230079135740445491883896974141214348140891853906525709670802485845292936587251875088737086096583452432778465602894639128511738942974375729189309443217156756589798759058150593510055273099394303327599524107821204032994020793263835992122256160244138089363315914097062933072351214174832726350235981223136688946585242880489188313418348168736085055849154535496318991991900826919639466856092305247809352113120137803376455562176613055540328002204107371271834041119488943185024913607634377550465682358044614493229065433279959732918109543526041023718346505230742348052710523964197798400331158301354864225548591746087376196307367320766507424696401963091487517171098688022824216538867628889823901021223992581646080055529136477899327820788943262832519708374449363783059780734938717274166273299189646509962167961905528449504814352518496144807250707502002335800897251702654461464436247072248584129277292870337509058957910932311358555317336145070375108447912762012248757026839202826373876340540366172110218931741993865617754959612368092867533314814748947879401398229490911933145456236743473587489321756861738275818874197423815862697489277386660399993284693481445785355364642578437175784843917765506198395999401427871452993459935186762679491455689195516724083659131526329866924240649649038070305381355203854485469645359378747839035919054887175544913974956096969628201953344583946064783106648992252158006604101642182236814662773539938047795475792150838142068815473662155397098805161114030707147202376588764124373637408506354972693455714791827222536531449216235881022348172352498720889576456793171852659469624147008766672447800122455428982920655286922520506707770344138729499236393785618740027459593885086248460914206454713381254682399705253360866668853354749615291211801141162269965137370432738615033786386600163338256643750500436400505851016458913218102497269115931597647304120272574677876412786529745401133469728972894317900076901314360647455354948389549577089816377361630173400929241030669437557295274500988231742964687199032468415077166828278208128582626379403250233652860540274662828216715867977849032716158161935435815069297385508273246933157443989385128294510302479600260409975478067968690491811924664671781918173200477862622091342292980661754170227953726105188229347840687162105666700095797605762580123917496305537982693139038046238215991093252243258543575538817147663276339993181424476579129918682009632026621962187129308337549187098626316716752493438029060721696007276158481499984524620021066720559337720702104979913386463953136464422410795058298243546219642202289290269369771514155603495695489612013513033959670648130112257769271595558065889858582413189979742406749874441999275691279339835793359191825064747820814659159127675646317640152475824779117206421457458130272771713566886101865192922994942980917749053756622047620001520678593487334073349941473190040965176272802535095009337277270347456797939202787628431368655498745941933318924147816778714897377518391650961729005540076774701124226496023640183101898236716638600456027919813320627015679030360655337821353868857520682496217547170250141193450980022635443346662798918913164764863829578372878671128382924616420440758539957024109766498580130567539996078336055368614674294096540754035471334793686560454745821758198173441041744426766714247598291185641269765978632989854703382371521986277861163876977572339494576226012050698639385234025342375117047532560767035947337282463043044039030156162159348116210343535242307572445733565632988521263284094911523587145624505656356851183988759959220792417124655510897993070880681435711731086476284330090212085686455442565520014001935660858926270944882665897380574046692563291773957447570247391323858617650944162441566128230037744662832817568438529215670490302854104871307687599486883074149849291336803933442435377589769848595597477858430070002835203414882328870608217537570981477953051828775953004649127012001594115202125625486965753299225006737947615758873390677550766379826917174650156395431531541065152534614629741373111972182064676177212401220622415760610460226018272852154586423541394565106223198884702141586121477573416418103981527852019815677947638574199071479194662751950072445100934659966514966356469246452010829033711725857896286367085838198587473856759016848518053416493517161501235439230121546962199648764773705253412725042470744446077348304848589045587606317564643849930569953686675714349611142797659866522161949241364603388259315672912015262268787795874342927455841247936122803905778142845463737146883688279658182644781088832267112226289278498283368190282192681316339869307158216647423202856701182603845294524334238955674037727103329320310400105134223525414618633287523274380204145431909403279083137535070532483200492937773015589666422167434392735887205006885238222351900045896517875588015897826634537658245459817510481228460203275454527832975163262174975211780662095457483769101615565174124021664088660819320156498349735757463679187692917174540638915874931916951851825022687657749403719182636594580221040752624054489187127922710981325107894731427016216473188199468782624591088410676795833008582561396558834235257771962819325937353586343359229072587979603271379130459767289159765322829099972688233414935509975822882490664433915322533412715299139316704290342396249549879732744507310831116902298849755888349736114968292305013816576664929037940722790156072386026288057068328069018124503659448365849559649527095082399620416544235641934956867222851541501538214189443598514326605013248942620690300104124040368197701047129071971072801306953195488723994143264977452674578716436743393855517367888716381720313709483490759562657569219207043260419979658383494085430276340679099163175781056339983234914497075814012486329873674554687890422818083558734695431997206255064868069638804168487742854499859201011885283639741210017256477730023775615540916186054191942430263217029130002306640819086103171942862388504729972845027940677781981838923161221412231994305441890172149354542887813149704311930858495406732434835397710339560359323729786403338228890808708549152791595498675185245196289665111051144523659594942224761417358000230024033263217159013430657193037499893193972305192087602147869811318354517259224329438713146004882730916801305091965542570213411749480153175267991991824314800950022991576639786381887144394009774107556183987376610494445284353733611790077614105012916213107538094968320866636585362840182561666285675175012979652826405029908110262268398984093310862325329466465487365761199641962449440651873591198081775457275523926507024062597915106672438279343457336137543861718041257183938732407049996312671240179172157624788298911352808277939911911429041166375471498644645578323302486412734876352153147270575649474389558872488159885462862506813442159773775888747732321614732081755127522892933434046794852942687911229635293872877928592486404582864453586407346406385517813537608785784425030906700638839973652848200335538535124110187726285908519342178587115242208495823954707169598506027852003984997417058828999997013075732278946793173793407511659844354916060757873869439241094771237130171349310730301860205679814300876996522641603526701230942805271769167043881027016189170019533137730418345607631732383708207442254967665530954751345873326726905206030634762343171386312750388530589420279734910187060022211941432907428106246624783464531792024697724131077066760452624453919203542841787388521127955777005018232336398157386305509054047793902698840011500444810614462095332607756234638305455814405566992326094000207798061276158946110633139444804346407812312200425846608943003659131321206690143100470737478723829864298990932016155250495254759146751479991287714781872928114365574313664390804869383924346685962662764595155975926719666969577079407716573927182607891264418191788937775455541759197450602444025658099063704529960739916845951668814508340091383204371067176876627169207485232706913776315154428708927899612675561724474981812351407660540367649604624100033104742010881735713530261227701374901982986712701971544354584661694122043865191622333521964313182136149583910719296833100482562125862529562145406440920503574270964412111248558354157872768594515481885483615604050449585669320601576676847363262040568839095525166611228408019159142522983934534393768660003139065390710505028701716926465947413376299390709335768326433720556179582183676075237475139418082415763799799045606172107106855593315160508379309619372395297117794370023386168609722730993813346412578619047510618219513807149284416848210894369374835400724702368573325553056324692459548663470392998507839560908317607574479664964407142269743723157566856968171084156254148528594415862218290419353642165975670674445402935597863858471780792421018014389119092324921899423978397919382465654537889052001222141334670395823364722948789658240655536965768739858504714021150053177637804809844455940180263617391777580464992282454534512058852815680612601767043692456891431887439096296292331552070829195484682823591234250472660265939825942986962552131149959220093019172334035561627572649303897572618586745132809379512969384153757674204713808459619574005000942584527638181028684410903415907453841603413017096123313575398205955629133510810223565506670845650598724960881218881379379267714910277772251164289343427719945850419952889663332336482295066243394627762475831523970688062891940866020995114800998038049877841168529468147919094080282275958245691048288219703900002135745157629043680770035523577674617827277925203600941200811228998040436858791870167516737894462970367715468248690781672225821955568409415300716295939375761343037013760386400074400080161968350171892567071995032179872846104323852878778809582078648093989153722657114990621801113391016251038643743068327375127253498167787683220390263157773686774472400133570721961622318307153760728873027901410264898528230597335357873058108174460201749185208483896719938919304501363806955109507005958558332144793423600706381872724150455201069304438246736849826069949452813187257517825992338782626439648927405315103094255000594177729613798225447430358386456926090970893411712244175951932052338448584721838595106584338040989467291851261195613352618947574679849012388552123522951590299213131248521065892570047746691278170875280283785568276884169710438363439967014052969590968191866974894264750997415952147849429509214090739092289921102356856667239447138746999171141122376150770113762142817127391865857794240971305070624821425638370326934749912580094081688229508858600201897900201447740779072908997038644167509252553389272592069724186268763197772125732585314165718848393179823225586326404867363934485752877825044005825407959864602096139225209093297191745618207370005377359221533735756249326284576785511696111815383335314826817633543193721900019567181366220103318326356663969728689332704991263371824785804112670635448995200315520626728524741843847921492393278484187991952538612684149915979202996271399033277836190014397653087063880828060634712351325679058209370134352472713525054334999923123303739018747772144791369016402548037346655321433069631542476538550394080257912855843842593093953550813626585932698609759341239450830724062523106046609858719812339324825481051081553751228976083725564666065386237664620724070376326349203050606178516319397248584352524231090032694717975210436052245554133689778844460498421766847879663934775668070597741289358328164280292543873072623722033384411231309875584315504823430287054401600811368674779904038654599095997179888825023373106536882450019590060911679801776839330947721002520310036016903983852516479932876274845064814404903031126690351694770901261927262522890793364240077332334621074127379851753281469473507500834018793989137639652694361195746878687450048296628121963861584037727711779355685037566931820448277935205107860192360854547324833380596745918463420491302169320572035834063046447654524241742110379944018428052322843801773615891194240448283047746620388799890229690819960722007931219130719755603953389992447752444122062145507543547356382770029189175531393663185792778669250554830836833597157375789890502584038752530841841991195297777488516058870388973680272710008436782017984141509564385026413313289213555765162543688213847168424566267064116737903852434290894747971128543202172154179832916163823754873072116757465698514007070523527380683849801993481853751009576375617442652624555484938259925730239813129124628285960096780187506348755906499249455882036838117630575362500611427139310250537943224323374979143512564346032034231607090702454892565750243992895139937364374546854485632228023638617313283003736738224475718470191722673111992509739132093718768304459293375052474343188069228830157396944785024036411850805257320201839238523512178856527894040620915258788883311652232667794855060930586626004221266789669271858676778831378097829582368093947215429200827056652712071377102972176694008981438431571017116543085419048579877240726654307996316992584229421483236941039113486052058463699831606620485841635754501926453022432747456566012947169704715814001746275999831040385977752403137210151497397412297377126421831997186846755984263683044152456638760795307404763323183280576964830982099800366507631109934349987559329861543037331190696378000674897996836044466733053499970481806769447393609026825231028837696351965910161313147986524295336912074091021167553999903515638764391537502367444513545720568074811165292752110967650758458861855976009666005383775603152817100596658502753652865566710891576334682960354300280445361084418145414229040039364893706923861150372132378710074749551554554489548416615675096392972008392242143197560513946701848447633012880801796613843590124162400911614123742138594467660498595520265158179127538099578056768007628233687037296721061832090916539651020506725854868129490326386230122860324782508392412921656025913999985605641176426032244827694011966723616896750675217164416217844633099822050705532328083498727111602328244052086818196655680821568501101526005134086007383153621477158121879119069661472561374429995165185263873174512948555007032680327121207087879977194384125097904877424787032831319479287706352747386128330206985671130072587067215679161579773022889924289066488189403119722053471405928422960248181431220820360067692153292929604204439553456528169847935854645506704253700873314936229254365401898075876386177504175290835152341606113402130899205869262466781686911207593773642124674226567805238756710647125128648760122315371181576844910226302874420384453343025317458713044956863426085563228734246475503412638963202851040041447549994151970233594833100411912688690505588813252096235041704781522951434711365959350748307178305374038800395300656818822026087366895046186523713410277806939643226406413843093019293223252230788974865748173093073667173351943459844526272129648361387515582816517532273820745805204305018716788123724439135737305732374504470008430740342543783879146268499114450181613346188055134388280677056318109087166702649881111656357794863820895555305886350535255836546667665425694422798035573154163620707834881157839335159745786885637793976859335453883445953507250785570965065132419634159629998122148392564137519290994319933248305067838110133369723849677913451747815182057534664651468710227878307963457335517873748079589931277987879118432391128213076027908500135393539495959935280652623582009813519004847247656982334835114880251128570890285893341030308505232650334493705857635787104574330744632568999866273246275641025530945246969886335731097719186480330242769398164966227227383243450784653510513514088081061383438621233910250766327565809663355789185210677463923639685421040210769398045869431008709193248514386701373827343966905883855600671197641855705681004290495762725506179465542050255015999899887861793742501630841051299059098453147170973249105395933399589536794918680321470589423061690670595667481691157629709056621934788790805154909455244144014537295899483109370006723593909490198277925943946872407994302957799615090830759738494589041806283046141386549621475586829023287273507292286588595574868585794297142181699965960965308519101469636772683367860319598418450297900726906685788384030534247947787321382498148112902091750143096020402468573246483835222102694525733235909629117731181336967724481145897820968872323671654941053462667827203144844844922093447523497704182091522842777235967729694336108003674120115300091468611898583572154515392077335582154743205694424611443214500153148469905893964670405582238257907261993671246189281295077097385686998293283556401749537630977452268372512579951721229150475302022480575447014084586295663165289143165629264006670863423268404349864206613859533654510468888527730278742424887713343543328239012379742734834766036857407324485740601467367571983475684168721775110972380179096181733498579044070096300958032060403007366223470803284687750031849625174817709034950846112707149866362978133677574633208272199352677318451059038485692718512051730546538426361757285577359971898643555162067769385603268575283534749696080596176687814961315289644076850531342617110312666532405817211672270852332022994410011271236063370979920236463910173308577066498865269789396444504240373123542643907212391820208010029731431039006638438653353190241911531282209694982177939713319200718556658510023331560103275293376202425428780204508392077234875879714431889534063673407184422455704517531242196267454992909084810479143541119935089811276740514227888054839544145505020087579382661558284431602176969215593309658854896268453646890185179763611588903503749982645307229432335059734768729017886455889591663051461572591019521412885293273805030950630029139292503668939457586172511126014122223076425675626172487134252554620274115247448241683164275283495361939381951065915142623631828259350408184073759702574979027132677097857963754092252836715736724689826641555123740465060939659245126015868475683873289513810379442627908880985718756848840455581289141760575733666191473859323179260242328994619846376868419109701268220948680241655557837706699365438740500135771745413592713426499278632971748272909625826853996722201980073274983461328514936368924066647285489635519346497928960099791477406083920972293192428441660970851013593856706749413392380280524459076905813638891602524824655224839217356863176304706828867956978708427945172190322834183152293107670551355829143511533656073900229590789655992220437474864435434029048910333771572051432282611737148820153932847690988301774546823271085120025140479934276631747450637708656078038220186562041391301853942116174950586303838277268541495532765606440137170378993216652517154199167000105928522941667548548575481427023004665300265072300046019243060971277771161218601773905511046815567331105547009226792496069000775136786719509039490472999833995269902157587814071697836076876277971541417126515563420973933148867211555134573294271559654739708492156948016570816192188286060013254761389671369638900550969888463592406821120347703338839819651755666164597752198434384383073242871839344978503307477506923252715850047296741314653322746547162362685852368529616065240298369264119162634076750285006480324091626122589890998155495179537675132685575285978060169656917498565144189050195897734595723839731254405792741792265915765746552418461674534361447546690378181752120859416245634156632287043865497814725328581207411839831027760729806523911921316507626863362933004046588264681012245024539750219311153669509425018495172085361798103552157909156118201233953225035159536215798408446099500693637788564443506857548878845900983728543951052856092049748865603295359097714548149797656729866914302662785516680639914914580431663800202263263636616132919998426691221524590044820845212637852750712266003518888802037757545130735197993366846116967386119812598598227768368660018577097839650815514626323906493222106350470525789913536427194469037884216510470113691306825802160725260690450751847381906419461087189379814379759115590840392696446809286908448097935325461928674342984246963869400486112190042402273350576719248747270977938774093706684361658485001597097515483655882843917994346270222374225658483294244900920733554352218865788678434263849988861488305661201426693846978059169881023305278856420263465712533067221047754406133330012248946732661630764121202289211673862145170966835480369863459081409296447036759872342420727974531528677628311883320369833169584166163431332834503915255436800925872434651112922192328209912843026623552668624934654441772714423557670725691221047890503669242120912340602053790186054711178112570910819140207715875780128020724831577067128472329406131793215781921114273622947189626703072791915763715921606247213562012916162174697157765967379146130104422456063469067444196914091151929793821147444874994778198597750497037304549979006172010160838869072983504962317208592761491899309422220349910774141949041408212002134420289342019560180877023739717738267785744076215311182777718957200159724388619429263562662473091534326478609112797596163351605562909715106544561491859116026862354681569449077315173479210999977753592573577949730260570067567660338600619658449190100048581359825487428769346917692122886915761705132192457306915762476037282753861909066850076816047121601789959475307248115258961277288946521082944260106206678351248120273829656168581876955502564875388803814848862431250633507915231782048978424612611488613862439276928207255238959301758150310096222958868912424359885890374361160815500001068067107555915176124798503919910358058239931299058093455567357044390983584258693135467331890240826817618300816024272774832491261145788724206263434874436188045099017444018396327857591920558158142335238786338689529935046535713413399365447352903568863883613582983247848438339130821158993243218655555213953155515068653816111516982887389322760503142288590927803795902065380068997206613470282936362966911858832294261483900943747112472981488384938096471209104727259802868542721934272206654381849872158038713843468883703482766984398469880568151685216860885150771726858418593077992741175328451162611016499228558406387235366603857419771889479198457830605650626867058535323166544088337995240073960566769401237784553251249518160113851267651144001662492834183721461272895078777655377867004793051558965364193756348621911036840903909875594385707085623021375253898503195258085703443859093640620644882688370121309004222675277083204100889610060983140068784217167517406765538263839489941732932448505230758869194894530599546129698582817517883560888781327317746097782514588685737402700136750068123126830853447000479399831245797372705994736569409796235051531552307757296527459443417502686537312858498850774820557196729001336629001499930642612635429721706029859442842073079252973016369372231786959408819299889118409455360047863318738907000146270911843501383097235597412543297266392446068385745990194406729891562745061019574962455642358641993528330094875310174414462701287270076820374796679666958980207365255684802346143215578506864388962097681820323924811885947616796548914358940455721053650529187984222149916440506993814066312400980072754837708360217230536059353940308037336144332104998061827163567422601372469647967757674927335378150503614255779668086574754543608086668450200701572814103689659558365710099431637464893901329846474747123164111732752710762576919807459433051314301263809314146782724334459629854322625912041992812001314307727317804294485187182971910088690934485609400548468585911191810874158966809272764177533194057178770977105830581230469929015971994970966973207084100164042235021880556216195189174442057838759091965194036974148997268855966938009695024704745979665705332931123707656968478322375653693677754839023495646831926537016867440950307911670587907683706595288171385245315897015391882240619743890528609101549937253374254504991370670976455511987788327882117239151592101513581289914619249177229167544624205209939815185604416222176041181402915236881833740490441958034402333266023094414838848509525069531120248660160988403348785174765239331623691992483792334698656540971817025446073678016030513571690311218925921201920052281805647277952433869211286382758290514982273483578694206660843009799787661850568043843482911164325931640827098926858987226517794849430253939532385942760370555337416958555694924042809710624289036720470761771690773960008138169713605325429672160768139550466104134082841626656144696540524937428281723394838829945041609463925661475909081693361484535433091433790517400099553966751088970568063197842378636810793672019061290499846308129157966773993054241024237542132758504827332061721917213090585006522487540523886182005433982158408099491304888860109400739441315510575268999160575696680871457285793389932851228976266351721348323231852030214655900236471177779479090850597089216184939916008844820382371036909362903865185753194725612253130253438758485706775115275619880342280074651205646839680686242327111251064936838665597121278371177377521105491399709187554009591786260347874879163121595818718254762842626258041248560266264636517082069549610971561149382740970272627267792748928608614800825778071147029294638155943188856621991396148413422281677685077920347622688169978265047602601760487208272006660324065694225117774326993991205724861027998301243823028403465436740763831907744795412484869524753561593372437417742974916360139041441687371476661277875111707553166724479748663245522031901477232287787390457712446407440558099793084645927830997787847005081764086311915784017516324656624878041670066501867645333667244773855017693889515995489726788731138356953427692180627620830882922321000400658249480220440365589068830510046509084583562557837895358177371107726917078524125948356381776999245840569502239599812350295532224138852963208601711517287173671506182747344012377032121099277646405545146801829646012557132172199874621540718817465406176712777217282734294454617469270978184613006658266779106666375419162895699351267092430617098443151533502741689126573427815824532410854519137871170422980724570878262470265790541594766886963174970375648624398393195323966735197673356074436635814135121633047360325067490399317428418483463296186836912416577582179348565149682378261208901144627249371957959875275911551152677950248046572333163054717223368593995367045721417536801280890062128897886793081502385588567242704685763698916098065786775337814435228508163356091627324667603986552587903764301252522558122607394925794423589149743392540717432182932059404646068037478547391344795405415323485467267491989549206862757023237686569937689694737249833081712831395001386331963096593198047455783963882377058725489310181972720809035534565329974986912045154548714248061694365215861550779715600732426038921779180630873914292444807791879753172023626580748135364807602549796864165692249213242496479935759072857658669514377061398921108760240582541052663466200802490781294470517537286058119134837633103477877317277073529545274639996968610101080327598552966448391401757281788235989429693972862589002159217736971111438761406479088238609184677667931635920325871756584868193008992900543610609968274899612595592907442630038104207538809014078048258602804609861652222971814763365546789002010173807945137585338460855282839238208046307007997907416495978203757026346880481554330734036267012298549904760545619732423375243386407616437912262508027159722288347439927220590328580031853034749385935949364566958624445461352862175784823596546286429769085134514868809789545851645408418253505255175287157457723223395605326079677418301160966095164840829334855109227163076942855154475174051436317692269794892102838639846812711629696898008798356386678176290608398171960104825032136320155680731493649480906006661474273495991776234289811929159264221956812624514778148176704230163448268221988146582980389127490568184554466306535679018072710175395495210376536307265520329233104235592493856900580703657023728876110945950697977210459882447603007271911977986962541926789012367399717061378727541161403595702373613498252818974176019258113095719210101549051656228734849876233496556426283799143450313968443751225182428977787293282236251602147956880993175478150489714246523386850786438307724686387792943669416506715243973299339038454629324103883746714166800781691979413930099867727208194519417416713489611228122783271976087003689937772577844914988387409434994176489811910845671921191183218064675426214776755593145088756866899875067536249228415123503900220483877815658253639356121014879278342144893861429551545999787149614990699122579688781397079724687009877049429209330786690573246539067958382415863682362969196858412948323457608399711159815007406370165280288018407802513624200104581505155667588445080771612879947134160496468043793417758840806945084189106779276600338972475424926120781433291511828057758855061316986506828074261155480510215778137933119957362315663898510140001191797092259297180315353100677165310346123957739178214747021503206014398769472699444650006684221525798743070711487622458241658329546379020714346781623539593772840150711559296079562917897984620377876037506293145687357468937099025523906789958698503048152460530014438021017683177761325109591452499496989560610331834120338267509835167041026572024201596072508805447757244362709234544100764098938254499186772170950131865737181344565853223014125116584492420153153527563482678464937259059094005974999981708158180507272252715263914384379557381548018859760557123141000735999452460746141690481377688467863541471470789404911418389846840203483662364691054322221640473403781983607258856706146205447243309386412995811993080546005127303643546922088867808363919205537315068433701653372896356456072607555375890935421809942874639779440788413312367447253092133260246308732683926801503274741942580473905725268907777600706185629027391521795600692344269335239724431353672543904052851473293550924059884691342380607189074592094878778928758181008153723767364170499384353245048258603633232663210872271303205691930117729832969440525847143328264262784459575250959683339942248666718806497793132897307277177650078481928028481940329810118624304239667389065475212033735213419412082798434805480607604633642078040963278148344634161248379896184587568975098461221880790075491484622418262847767725824609786723579681439156943633993845777109122092816653304467720306454391499427896561650749848834377926239498487997154978827354039808421194232093375659923644946149225852578144941747523638928522745813708989555395885628694547403368722464156256878576240758655516044054011058073693162429301762576803657765655121535749589401678310822203255038713311204273479262260915846399517954959993209996776079593539233031028901700955349132313612837676544516937909274284977710680933193378238501862623893970612238571662714847496834173058220019840628086242112172910096650122333278444480914395598654903513042665568684293838677948181572969634463405926830354099846665637892304422511841324719514812863167564272260869818817328994538511119463878334228122190999848085031559933568426521748316142928273200576755333686709258100424621859895371072217070783080173503552571124971513219895514478527357174379652304617492359185734152359133846598185073142204618295708446342995412749082105816284445000684457359859718628555585608093231199069428253476327013751852633517910285588962295503103976067386356161971228574022777314583467693012172367560891454860871823479410818337461301153831052719605757019474507850663405171068507071572882809691457450833452543855386852033432437232574921125718120913412637499542584380773587190834187652274331623947626321596049590236131059034090119836384284672195292090345184453995288937018749625571420489436505855410459623717951914133870713420731183818992936283124639590808252317126949501561030034033050792786003866250295686545464032223787592430372887045352332405886430024464050117379304256053113696072188121702977949234358303108902168264370454667022522623007061311595888708237564448371952634731716922683861971339333214368216852477974874547625317205838239028382423363426567596132861159437578487606160661129764785104607843174655565457955603756908757441329371827072956338414519778212359440499752902344419012684885443178495795474642752898969025161642638111522734221099128969437046390307961804046316977905864381870104728102969345254004838922501915728089250592034522059393332804846674444086341851734570662973343404941188954214981202061950854655799700343828169162838029934055812766061788752540371533471758987733498777625719085849650314373441515787991370673239353836322462420747902807886439787629746484692960224829581066057070880284164861130283215117679180223422667324362192670111335779589819272626686334193390951462529957055594030508345055362510437299084543892495843310836118224447601772077589050815107512628786407062286741915888359617172098720333796191047838929916551698150151005814527741260437492706096486201052152231039264655333133550737026453100843435113424943817406067866351604075939982984478570566476489669961815013715997105873788698936588438788115589326731224210122616529225024662873978112811346217328567793800668017819231281988711067161163361300479544063141849381794346861019016773535743478657107484473352395029930613952659600319050266937838299583624852214992962114809820324719301473901364781877663286548958549170542687642352213358359126002636227021065935398766956049268623440700536897434129685678521365066661413564106567807019406526164997927879631173424578885494622169346495676582886111491926655189401874227375620893289344128671740842024330385114922644893099379500563581670954288635897255708816422067013848995246423880319492676284351535575452427489076461249661786925771122069321392100624293858107682002688724806083221062376233920935254319202124403421708714211250894765290652479511302880700264561549634123087463653468803646194493152963246570683006887369210979839166018261237334546019328677767560951676884579200664619192449583083124503104278446970894504050019264520572058689192980947461734745244539893967938653867773142241502682558585352393828135309447355255155964231275764908264678807093694567109538188171053307411897776827088847573288684966720769674694395590743361658970288732277310207178741668000686964607724438055227340544218329440256318220303837055254060094582660263141155311663964290243505877622776745571124698255515805743063268748451145734781917910489931269231772660996756263301871053535440946745814985710932443157121733037778431054473208413761681867147946785950260456799293489648973141572651128497835447600032452411047420202181550834704276732827803154117168063679516208742716805191819004309289066831435124946084514311241774919876477214603526929197290449182249083103820974887548220818957760205811396785549617785045505630848263831509437405256023442499868686090328783257024552055791099843059374222486085911052379434360690494484685885441622865553967682035143614904372681076278984470491265160330162257338694623772972806430861177825514098219704980844552703138598389861835073937470206027109838781603685867295379598591539702019149609873206816509896507285431239800248794019918200735723844958778030267080754685488695115672247201020041927126738758606412123967298524284000521648080522754586100660395360089306407500976897907885719874407567381297319720311978880311857620070389245455761580889931716735776044703098866936926324589274774851784461144581631121989027133757457011756450032303045842952577789894037556804449738340928368087119883462647969341209655499658941312091132376387082063942913253189416221310813538233601308170372574441930414179716895762680716576883518557156153831212315324425126429252014363769113233442378327916825274922355883056851415769234006457070084345158322104849362121132176454763052710754991303949922476408671719436516884827699212105213453171580281820513761417042182513743249721170350844803927362337761720639150881432252859883781089891893093991923725799057796691940389888372771392917348313878987841619295637482274497092391269970721716093871857757726017532205946507095027649719147593201551640539423906961369632910618370551385418273305197173432882769346171684357771957758357657310961106674365318673144320418609279872642929508408355702650640338727465076511458647459834197006588992321175862232220663789122097578220764837890316074547379035020096841913207761797004596194648253543474826427613076165789449867096642787787830458093111473029697641350326590225016901281798122971999959693383626867978656142509545680521248761474504411451912235172324835010718849237389553939347643330081876818200510518604819861158426218540388000358899486988091167633756041567985990808480959207014756922168116073967776927327445042077385429443742992875387612412455080806230446228936571454985201624097153686812325510304095199977377059499967671406240828058157710463227058497618005753206287453197881092466496275334913276904872330200490608867476639909636067532472321923432869451253739074697559353982916064394119073670454664713273593688002998766765540192327659658914408469785910351657303550955337804348251506219244733594202086034236019965035527832196262606538501844383052466315215098400614108757986083146841418849113477231137327358434181258490711977997279760537717386129013128485310276669292625548138664350099336010738578891077002896126672224807709399010512576011398485023629850675848560671862312793577642592159343609045507068303062959889849893725738238532721469989509139553764878108231097371572193525125517254695881574443831944433327850316178904258068143265961844191591256190529730799689990657204869290252515914325109445566743663003197695557563380180632512982146436116582564281364621257531154391475579205971899954618860453452260077857208407691386030150325089071021635945147677055408024406031033964479319417147336772124739537470579860910257438094407223599844879218554654998287118890844313285824001869890068956903158333269053061944578976594589874867772258534503271767505048338858667348290145427382302983522894968441306703775571661159492065005517880848966216012808381346077860288389844542555600121926059128803102229596097272436370912809632406033554845180984846175755533656637688789200930629045989220435650648086177006575304848609066490738275639607833591742437087790404263068967455057505110332139538484123321728171151562317792685479250161240211580539476140811895404293557311394060135344075264422911481588764541395177011641092711107710930288465505914816651369237580489556174894055698027523325102146982413262111243279896007245616752700275228685451814610050053787815846895777908329421015083882751521276992755634480354055890218562326105670692781248832443640903207579373109399498769589469012990458939310922991197331924439790284200490533873792158141182865801011803780806039150695954968907773564279354990409625604412422222520955293566322773749276223193847460732026511665888576429606672367605263754932677703797791562333908116108843091714127551403042470908788223166762250876531993739640276386409377908250839851963885825670463639189976271179300046980809074727874780520489670626989390101424428034466626404630815756663604649978031610592891474584577904670854195088819774273084068239485581609897995803384891631967776511836651246054722902982089810585145215275475240033163654514977294823302840212784829235122924415453599439556244670949832316923779166554131093786142046260455219734126334978678499254292783122817824074953790387684580926536383006449302327004246759157309750620592561899731255748498308450694612304711912621607373232742588588307168576297140049006272778961447547705428829502797699768027479041104213138688474209457572675218881479344411782354343595739278106933495505924765300229060595993996385713208623889289006980917123825501845118390123269862155203802707068876414554495716007565108000346573771474544711320542753102373930539334671190068037549933112944621586539729685167764846401560405597210400575837713214538613155442848645758751348383424124239633284796579317713839237196729224007983752501764474565660931134749254993744885909882040747168410910173154475887636488679839184703563253856822758594172094600172558993255406681129737161265712659306699404042020007462923762575635969468840850416643370807067441848703683925449853490941453762509559621535340281535656148820182779146579100852235367762679553057537896754441696353513306506696914392642964444122175382781414427699346599171451191796339141478166076065457396359982370710021912274374067064814676939312266949320883969810549460078189915530507083408194918088038553296978597744757167716485047109717896262445019449415287916933985149664927147184428659624044219901813958666103088535193102329749252083528725547603675674372495977499807403810451283000458833590533732190785838949806198481824896576652483672530947075608818203231556515156824634583097706095601341451426550504848720258257951912032592756802326704367846508652244353153309057850876840974711256713920914698721442211695684846384810160210026991417850192589569887409025446172064728579714017216453187385373354024786408969387035080795504086811350701466231170142330136963731746070056037928352270581264600702497150395880188487296180397467369111929640574796148693524902401376249991275244223151997093812961801038143744952294001384211308549104561596899936368545877009935194190524888480807448332462720891915949670259820096804561069365474537516325571659693937841806616946049149319144090234535236101351987357930372651223069352134688976119195731816396811124451703770665497214800115737296733785951379523108770198024702865840445926523716860048867433910102950223995655335678607691557614562452405669196909696903845216583398615726112601884486259894831050984743640610397811949558234096930517526450959849184148375990136903566863184960662173773387563715658114107242607394313937674422367707795392761310457243663547196326288641674761640987087010551283722233682462757883878610919929576012278008070313585793221026487463296548653260944511255106075097034126042446238381229837498340170728228253782455100680920164668473026991118670723986629146534682933862424951326003674335184951040751371728711676255572925040482108491345580184181513956257564530527914544613678152988863234967607723494292447521924035081432144974399878887732242563400719367811117187389462565029970002851981567608714928255588099099760451565956699890350183646405834142349994935877886631333479416886585240061943909369818078902108248595551138623290176378680169444788916007052458091564842176941035356173158637445007680496137053623837402879272090547127898455431837878252710923068468925850933946724175959344998563739585855447522550785425360548618520001257571257786333408784840328519734848309371416482965158419543335050579936125341546982738140123936401806705328230971958546763672910346884503836806431958533642876634716681492086871357307763654820060816668663732184960375829589887637198973753881590681094190378023805376648320169040023643995640263920031006441647464835159947771149479931451880909783410011950101447398599208790845659880249332550494628669787834013165357648269426005190563978421160531151735815921861060357535757533952488495113030850457401873864926688267623958422139676479280737838164717895143978842131897542471957600663703389762654358534851325941465676348980742408695927996022996314747842574080399290017922812283197273213337204172643392282110392255382399372979522496844594065477383466578132428513100431330598942816722084329843465315197560662504492872975682512974526973507100684924723517793356356938140416038976298498586556173952377743409328794065636674976730321331648528503822468827363604261851134267637754999265407432586065310209087741486571741769165334824181565703279676380365183447428829292016126148878004935453412519527084794157368015392499413701791175840238255174917029722859465482205639787725195923767346050809850477051367632760223057693308512773651149334429611434789649951438116085557633617586208307627563558679753126252835242662621763808462729374967155649837274308941586734625944638157568686531550919557127242908602484480697878375922646990610319698323708211988838300012538421702332180625605898385713755356302291271647890249369236998273997440802018650302641268016684375366099631557355382776340323788366563538501674925882488032951648358719791575425179410212710961200122911373090790254372205350247078809292971042486828046148881348130092306501449000859210569525457853350372217798277939650625462211295812356753595291010129322003130167504989045284642409622435184747145896350338781061083980059543591816685275971758449352051321255143191703322455995570850427665862422189536045865732746710294462543240935544487295062360265975743672623263410429657988995872208341760220440533425937350316230557501341977585574338365866485489778382370676156042595788979972098672436004294476007080021553021265500912409401682599964076259396432004926984570536481344011781373038982956988677377300547338107035268896585676213041513556269259881278642878216112511446198991219099726755319344790191986127400185462750178104676529696619527033831600437822486871747642142757000540927432071343242720070962814236262179105856601064420344236489251902603126967404681546163797863952795155428843441163201412007415469911388589429195298022265673732078946995805740744021781355949762018923794357655463055155364149183134425512530281251622258034504640940450994894192812312219904145514699816258357657573968730279098363642798633153710555376448568964869766176416342676418350700515565807590635101559038820862625363948442161487362521027293699510554964374874269852241800325445311577715356096080271434613693189260626492690003283296533386123256040414001868524931753449018990306701819137032215426228407927164881593453272298906121282116279735078776659558421326816495122122544880676913197491669656346362294886518969249569314056514245040136154549865299966416100971261628180285770034957069761209057242322892230596068639551744401420380025414583907046589119374369929281321269184063420279656856967996256789355787785201185095928256129610920516447623493846866398953725706492150340202620898744652353503427643280910072522567326961344652157775488971578668699143229892603758491019331155100017676491169326043253022079032156854669704298873740677340873860826410857022161455682095084593384871188917492538596333848691568695579628354486191034327114022071102283890036647379089584197193666802530758068588153429096176578607394151637323745467782625774159376515315956228963781297339305972884419633411260275673479344001985329979428931665692075719140228461456312021776011331648040356899830628425613463406422627815504684745058814689130672557086035562802170717035678617722490421666306063962570459941131762793181209082135231054520857313475008266144248851833279383321894761775075277335338409277261969945196382473487926824076324759875719784301567695017697418126881830575916661058220858035467317778770148219301235810244481280049395001309662816675536977061888533930792141746899414666038902302705233888783687737004351408057420731211332985177914420730449966975772817881687480046088013631140121781238105975304710578600140762020647356219359023800055048882678738319987071007244630248610945626880152858987695040820232634041443261958036076369401776496400655225892738338215877037631075189409011923806481221646206795288404861302424799376762310812870827922008595779198850341436933536605829435752324250897589559789834551599259417104249898477610185447939515795026937860587720839638205287313366039053299611371023696335022510606986873909000176410158965397036762809910672411173555340528065397687057176732135196313224247568307692281427952524982226041160974024169965171026902791436775050367581718564202275855158757772130254777467698673050674881969747227921866045226002857876940563204770343447158527510272298933241818715772147416791093627496075047760541137425081713300865803082382759232735969509926367135885427977679520909595914414034949924972488264504541814892065886970780586939650266026128028839868692341620072901033142795413761085821001575172867214122784142651134805400382558730494417711389904026433066749609561957672961000848532708270931218124851441440547664343805756058449433541777259245004829432650369285281783997531686163959223810234543203139880457385463184705064673375490635607212754938127206169495771260016333313461437569980725247752618478914377848625575049268776175775564588164512298916363137089652333772231414392213872770255590675363138257967464532338278210433157732801617230597968811078419283430224293392795800665942249585078026546039705094373314426486493374431080457684314849928529886661513702706694020211939031148163378878055591427260429551575876997912586621665536390175029554518173868288565403274074769553351349806043378927126352365514744653126928097131794092945243796833715255048605957327124538415026915396353702417979368575875714214051598460609958585094336681138738565112497755565976752834574608071414806065924986905903895978595337207722911673108738239723007479971701381476320961020320475869046125649708920294358725799388062861117080427312403034677325264477686300594416056159365728294648847187941237924423551919220223782931494508061961016135458195586563063528786659404650734291164032196095723076518077664082001642550720031329173663923863215854750360969685393703484234991727870711202879002416292020371684342268856859836382234005951592431865443166700527531900538525695774450296781371701659509489125732234362163595054548069332009910820661826660231146728514567718829617600017789347664188243937117406814020222530635027985747008427970998481227627392842716604779560186964422685514959514589408059568348533100017610267130506400391788965337371536786408934259423221902813647172076430070431653300534799642050265365576873869884319639364748895122619184193880116374797945655382220475557674955883936537101218159225433998216063970249417571888261667705045921012157265328498109299090302508708529243891328618817973822193997918950104406797997036327103314505712541323692154762943521242837156220573973245868439049612636186487337388139875227067466596912240146663977307469097244432489132960396874934290364255950543835866985554908518987729081666090658094896453970585891515180264920755525091302983185650118382458825295390947538652809117146811268209615234938546237360617188480096604595309394547708658461957903241595771554316057719480513050481135504637348965031595209024382639995990565835930301457601705537550568082223579066034099489181436113734129656342822969940044166223878624496362028557786222396869073159924557741979298757824267272625519548679770016305365316715071456568686884534722005141187271529234398733907251463410146361615186305876699196218962905677085319997981398415609727386659579889114499994332194070524849636901305269187057298600074559067431368277865206864820019834421523874939887794507383617971129821773864855679107087697131543141344833242432573095410623354356395111177135219809004150272083163287019558537333412116513086527966784086908648405546235928363762556211490419654860558602276250932192448382130474389936255201704904666398949596728750298273142788864060833545044437034668267485179853734765518022495263033349770892649590527444880715354723190664700832516689675896397644701917735773735256959241380493992747189099093102703802614135042522803905550023274386194283999223162490680915577851250899004707940935303909350283733040097672938810608968455614231076700319543228152245784485999808291270224959501568917886658141144129873467090163937926684762995493187712062051050767871118516145975644609641458048351521654921322358030345831297016251721521579810695827706223277906995609919574335800057842750111646502205381825166948873477206880015514325262353235294782338930121141004997474781471679467565347733964578728866933443651428733123558495068361899793788049233359068443883726970323208415553986356441573239383674387947982633805569016792494269883333923471924322208625929011057773436452806873722292011778083653609992221476260735278023677198281269098104862934537706936662434431357552159820405457710746096373238490906765262204649730890184990473424699954807859823773427759372525805123880647254962860609224321401871445163547231860836106055255197370233839461273584427416943180702963371920167791638536422461337715077737405291744285777394533463372269272930089698975264056101164262617667213352290952670799323966970733168716387605183552467719501326860704163004175068549015034290954352804384423449757344465498009007427391958128673361111525486969690585071490941944534820141886179727449064270075843597372794293952408122571623301350997029484443305237826706413228244956851533881643237101993105489576047861395369849917461494789509516670994119949154612020220569860649777341042328158824732407128457644155018585426882084177490219635617462214538596438199788739639473404125340513046033534693380022366160099837659879043822595692176396476011703595623448138349890659956069571473377932769232669401050110137565381132719209883877246574510279968452417194319622977438182365991884050054886066380050236920503918282775850058266856162634760400403383224236333988768784994248230167523903201458844511927897038941650912620963015543662076644467601883603668763023472239376263621162747081399000907018556956322814526282852953321835338510381471520210836078099248575327259294558963850764560972095336420283848894018939555922742698696245010372656428695643242722257459059191912915787088050022479773150089901085125281844488950669679011223110548403124251537921939725524632735312121070721974235311983615306921069261638516658781971929736723405140622678304900641803832860871008857948446754799031715741578767166801363889667647699419717263063846941072055524562082522724468563936553830550376659538466410370361523243449464491791696774005808331363391037157358903699902850583525594682621297784553550764435901802604006823369487821120707663669782403970253573073866091836276597977244789775074569831243803424675754357703964671755072384041644805323864119467348045015642353032802719367933029511123317230178252351274316379193353774654131580381876744190701251659631526508583975181656832653112379645685642879608867193233375777641159068164588297879839779420911852013162388335671832455555714539084835068980170440791405797815291720557457805194409708349182625951900567567060452167652135945508988940491874840762231895528267743712415892057890578754056761041909033148535651339158915850590041335402965711514126862066669927771789851926240809455050285356296008690161270669172348333987421172500950075857718262648287487899642167922863049483018273105740374744912429433722721784650327712816004702731325073359809895931072506216961741935552419522059009768689415448668966337108557772313012300198864043912077998855281678431458145072205454036830481275107846449619848390414809122424625013878961383664379811566920755146508516960673062890212589254705423934796044424003751426205856821618141959418315330688705466059870219671236380489625390381776533013502578024305658823756535759487665044441270436298344264848598610929701580873779050863989365158027287791353515187961724646932413794666742695347814665397617214798500618701022704186979884821975561504942155595740898791920170782101683758321201298442780434768199796525875860985875646606248146957373008839264947861521851119205854868736778097972472302875074573988933289300197118798596403459413684148642065491885567153488647694622012487886946109642393752034349054972747667579503953050975469738136091958725881365815363035700552252686301308946313723474285754860801069311876261890259201749237871842447798851597321360334548613643923128124123012900554593101777612452225663340415263714499164207086332416957581613256994375786558915613857340917689614422404708610435517405083974566799333798006935679715566522448131075307745123034315421584031893461743238445552506548544891859282242859686754492901701476918353367354055226957285517476100922460658261741410353979891709025766287531446215338829022056418443415872011347619719446323654018194299823129297092156434584394538668384299512093984583742567071519152457274050558495879314596287269190551613425515517669134516507914500376808169848899507379483528432319178062417885765642510878013375486881636265396147153722455149914896621870278738251918440986852017632662640484242689798231487795871085390169982336613455691980613269098782882104677166339606097602203756486962882347068240536209596255195541456530570395818585236018828046924999675964018588398202837537545112595603073834913968293712233958745483065148998609462444605716664508053093938773575795639241817363395828183476876938091762011584566552966739817210556187052651588105492931335096727241267527122866326386341462066584936501900307793717644957252347081406768978271352907590340104572656949606211972601052665208429873133458686332785633934518544342982447574142218798542692433945622998391136514507404041143905589574139592229236608906300368742130615423079040662979285184102139115423431264274697678034145594016818488554620141787181061054252793938382285521890058256554516268004486214640458873532222935925403810619848419881249453657726344968957406081990411649132127618524520767671584873887234511225582437082067610890005826152701949030130707871431692431649984116043754756702606993033154876757972912436120360644425938758396169189955547901454472854910412627704387752718733686637421674225521111856822490750122135843190133445150940275558045391808521199475996318898115398589341539118298338251680713024425031584352619060716019693582292483448400774998579434616115308118682269417604494453923655307341893786068562332916814392200721811561261603943374812676285363877721524443900007547222761871884842690830715429156007777206121438900020933239857536768001076870747241617572841490850074724840861148666861952008652720822036342328851059155833153672935652638342156544221891390634480162237675982296841797559735839101462557316919950285207250388928582234666106757155555683535466493301645931919468084968984919766610431296543091219017302396167832950546863793892305170633678645902818210411996151301747597900153182480186198291526144091949510704313526282041096927272110948760369104109294928621567723350497399383118414254223640832295766669487973174257385810748711170545079376096053942442235125701485646381663020854400505336194662586541837921947141543116478554364782882716657264457522252787254393923796602649915044919523928068634942864342183014658078277426866739550606086140439105970491060357823245399523029048358978622412561962174937401362333245982328543257712718464548727654037882223826863235362387214928411568045903372852375425203266351159702212086218679687303805897686573746732252229904722144441279117167109233263919479344919178507584084538574194778661264384258055141317096125241358988207335015915160713627185241540278103322499491734266327938316062435154377846872231399686389593758823035780190761226946855942983763425478297391786772326601221893407706466556773720747015916718145415458266362465138324331455418759905852363025103320091485847413083831181344626278018181126356325043285037892932091203934112725671393523012985870647727545627769432938897652541302923943072596694699453752618304081299537777368960440689733950628032651274829905558344245045348579693989446823436193241029649697454995020666185458419322650962119347731284558178371494527898086629281032325322147851396383049794118652197296281112908607341574834105473767731859969190427677728814973851840261759150766867262323595827941910887951598733841658252342341894896233272654983370175964940497039258452903428505365494198850414061274771869899728812128496343649579674590696205876139105405485813797042682971937881868820921769182346205769532577753569421872159545752599601337871504130571086502690174204043689668627634079734478949573971210557098151427334835864817262490071195541332597656260310296592671053654379350733158527079058309797082275865133945073242339233014577699492557159365442153885036900530156793973528710713369333957750230645808572282163682737537673123970459105395904246198145752697226680402480722103324221043263809084198178603023302295971989851715497288650876192289480198672680379465396589774171009990574488470812725730148049485476050372910723489763818195621679112570116525800026351514738425100651201539015790139459074893794832155297243618411345714313184642973869405661594945633426480215757117751017768167337652337764979696541611520156367887123204861350675300617687677170345157051178614199801134116648359239894167521237726365797181121698951900098872869441186046868460082783635007419754878359027149405731656034921763261995178467729365105183439454457059822375835703534827455954175255344138997003501079808486046193802162575524354955090669857064110767217441333595319264491021236124561105861689931982409671726127181221666119013831159271127635465518847996883199707215614038435065835021955328448295830381687857831001780886617919772626547530924466315596588079444010871637634221425137090684714096566098875704934294399830568676301961872464627162588756654975548695055080911066962101081563490876142444818911473324625654196837577172242361920345909223328388939338388529829549177340174457455671827897696495711374773510244623756735357222176688327903630427664268369885603235578909099843456693670213962741388330853282580560829188879346422911101519118649608558712818152020694017601243222972792473833952767635109600088115854824477641801652078817559779739514382168397382863525193260303514386443895977599683124296851720572017144701326320023400368565111128657617013338740942827579049529120077070705784250631161129885397431460460305313207275638518486979221687432044955088171463258217705579116126366661261811661618314041252395541531112443277874030413974345998834584763608565711497272663341116515324246996175088142815349884432440534922609201936662257488540422740815691000312174996522176557240995195043541837643150965948846137929323902244884352666270709743938163995098253032962456344547322607730639710929714116153618845877892831912907953482488795355158988622923420643571518335583684045404738012228146064058533491258409877346065000996138305494407666398440457473227442608099479643479849852602344230981096441939475000665728954938960654359717033693122900300100496064606628249282950428635768407365370045588571107488414202102768334911112892569900486382946424835882392507255020682294144089323008638209134677904507215683834669023727914546726033910607397111849268577061816241189101061834322492379711271712645172249172778241080392014109494677619763498340482086807459786592649605423400272087066716322474410379130871546628643789196877582924014205451221017583225225808360111354701189580718665977502753621228893599224231059900653754828969197439651118533365105619433004006340756352334065084644231775947937536073643367256491540939537196792241061331871449249219256112856918708316990465327083260906902824209964486959287113596715158391354552968337531416721586782555798726425743593555124583481141583245732583245427499367477851752526322100072015043143692587987930489620761114520589091968258762835889640513734397207881355455479558721874773391983196266721582860071013091118226091084818404742871809415930945260466463111933481077428798754104743649886777226973368508318705847797824209398232617545676788680244007783317432024801908193273279502949093439665548774839968678929508044260034626309333497026711498103030129431378777075638729889056295759553473639268598074967602794028650548721032299621345693096651973312602000646965826304847248071406987280177813479521117156686855246905101943943195260866494297989765394729629712974529378899738933526776782708087765110611253756261931555578878759598270421682484843620630221642992197272876427571265891033343646602015721420711754952429529035215103500992132095626183189897365715527394436520370307223768384646886821695412973149420864404725637114055687359559109446655247086007346011238805220643427219083297132084565341373386395864150513331640767302836584415521983084744903882201989350998442541370864996457337242338977343614107422795573096489588557324584308247615261281769395806632277496922482711277706985725096152893444516247269123357484349799289656608072897972749384401168551132370742590923834236497241353543016939461090139707820374270846519227920130691215893803878170709371481883996238768164057503080880338172981343908306872237280644386467268284039245085637785443048326051033894026442768711837336662205998746688375181160574085318012515564051059646026159580187924025945830555585382429791518851819381800036127486238215169729249418137424134031321334306513403213411528962115717292910895504362200155828355196841978424693304472338132682066851127266036325109208894583505036208978424234494589244580922521758603722969372672821402594449188567490959605000992385409362723546930973521414335017159940391109145401224549781484830119402377332484638041712403542049157591351202274700566811498810713313968842791627016391494097216698675198560218593620751262354049635184604068755512624523893974077986952080820842851614275567389251898189800252478683559618768593186449150715415977169154504953505298137791766131170244060288419928397985191523685671340196524774143459929386566037822329415747116405389558021012904596645627854845225055137153054053613674877350936947876522545375369346135174087969345626313993923151282254532575221827503041784990738546836892351668618388609593938407891345367142606085218530544535813782839055908580158811699361780660447806161502482949913046140423279385941005300765791428107471555741665969097467901006664827024138140215000874973436251461545484553079706081852215734732690885619316220456767147166144698838379442503093931620555616587796034184559868275782041914073304341183473448202309747679548982242418194252421229499751068010494832807593047732984172908674743101964432771122714631920981179205681633083170840307750162290589927713487176606280839150437665627049011310998895942489085500085871469714266158906703584783180873568476686019699961191205045732082723141132472521373228075378590606754262715727350141344380756347231010227163235857842473473609600123049129406028889200576251104649255012452783326428569454894292588714346817632557786360379245293181061988383918859097167350723583273226559979395273730963490301407074882107133107885438763459419447900137540224720902000428280814174614778431579156422390231230677258310331311149470301011515505441868849270238184971051310625104435878227911342796168579928864781800701655200573496120866798810328507108039358004935042848445456892779724251042601054027536871115427266147514466916602632898036003065969335654228788715708022821590705456212805293106129719822700148117170919879318800814794703056133088007309011509646888198032980337733876799807907457897884318416123247312884727728876833683844084133461402116566060556581642827298027323956747328891390516680329206325324748532745642631172237071321432428327039466931687274109579174728259776636108347193887305502540555365028816060643911869448076884865993315572482370833484059355506664489934279475374661693360135816888634736552233728134591899632239873851493940511263378032075074321640987512025426452638697542514362593992853624681435801922436482273720972843565842654424454114356079046824931396354629161292415560535011344942840162233551757199185162635194396468554290500294427429589680018476097582576087776733931133044033616326810008958427519300413280317379262690293135013874487971618329351721510886097410329921420494880595458281307751930226160075790595817953670266087659219591652610445759001406169080811511632415999181343237833249049400816225288352793463919691124030337670783112488232498705974302271770889517402914042636755992925826570118960194463225775048394238912536127426803580518740988042305235505556131364975057990015786868569208969440064682792515288283020103331070758071445775840999732072678720036680253974907595028764680238380498597800445585674188132877692014595021784363408350541439041042030955629931892866500229030131109811998321409028421322683099390193066971561406566517856600637643758579375628156614450793039457680159721697202263682084342930761468997781863596368624547623263628115620178946128332212776533487008753067845095463943264868324829628386958556262513534150290847974624285942272305943956874607627168302438153104730791764143509379939403283446165880230347907644943361248490910233053240206711123560998144623607438904753191346471355684662671081339064649236227323026781973899134791328924951621835664744620271719274884574321748728842383017463154477245306043099902250872680999049337732303992226125147987962346348642435763876920414627851814382538393085801275525385360999814385100116455772372672440068801641831065358248385502598215850975375265602795392547932033513813111888671362514408591868715335262807713436080075305477281058310313690437949210214988993467515389256136921647966057491243202146844139862916949444868675857674612780246583114970741634598267117084033287252887128984140548902836170309220059832613319852329267995954377876680964146489014387255872195951910676815671885497991496902694648509146839881566206291168087222639214848861420241069755560799155146435345443965171360189956230484585151847269628737108616598715068791448893912161798676528017166384990328684447605325884292327372068621190384102188575393925520038458078050795127220542244080477780514991289507033082743650475883640509602396118623657385718154341899176645207408426345823594582758866648860998424900387641951284505992655040534720063853669174264569711676728961528041290528667237857293649837963644481242218444630432559666525660344815597982001665606573985750255282567138115203669670355803145442961364645272932826303692149957721971801552175728305571510789496675759406408650638993775729443856329455787452084360886326743427267753106873859875002219580706775647301656914663030167118549086993065612263024535045777011383181035854835499282729222871817289387818579043908146498376903989176614817943229922158867777959311336988669573273356228721571334272050098677737206002740310911823858677715653880597525415990484501212888887377050177779278093852661532741649307509084153584397490210620807895916032224834021730579707680779304897999131011497566689052816312981409816438146897095848504802867986230801789914365171248176682698225318162800517937467960694789943697741293113205445545821973962389200041057069285432704723608238662703670796376511360270785147104309272849206875909249363632579274537314115320201551291950333896502683038263593213732100356499339548764573791788425641005475121904601450629487490375674456356119215720634440496015818352405407057463570940259023237022893400599532325322635276380683432234992747409800577764508241888437200971011057452000172873973604310416308736675666761379845366381587787431121189666857222550394487978436095484960567359160580153575551345418432338320317782754890384617030571617882794884636643914172404438093133775580492823758681421262483123135625715203677799893528524554277595654176240589479586535346761197747259191794377295708340216860421075400978554372382237396996162153859034576341928563063192063856267750275001508454253218339277756956154480762698299898030680421981391857521153249554937507860864199443876498928155169825343571732950357202605292190237100083301482190423232257027072232484050004797346262286168694752526414164188677699240200390251741805279795194327491744835516681196258508165197585507720817937149874034401532787863496782352937816462595541831723589030488161507071541590425248188158081414350406581666545759555620804680841910641512268137689673144482555872569035536311151656204533522684074085703464647198665167775255310272868451475213906453264093890958934256483245983098069525898514077823445390963370610354285903551442538048154645091247020994073453724096540592276659629592662009903047442979113741276314476563845692343957891486485838520069357409311640453835685645279665103819161070322874424431968546284680913052938228118733441664849706838003063876733080874352512864772204886833290380916221220988160563858112403742941929512312136729976920169025749440857886975013174426473938611908363485819864506521077292878425739034609297086472251320095317381735795272662364434952782433917216254947234119725894487697770978159564949260656724187877540909067612328520387537502840720293499034572484980039685585463442342107448332489915460903399521411422783247901831441993844623618200825654116799234549958496242107298553694904678282369566707035287339521336741432042023568330364252100933335420212093326324338788271934683967017664058647543670144315931987166740183557836201425350111816577463862907092117092154119546426957270233481519185721943291142481893412135057951502359732957676565899356024566804812041862296621371937014825242064546289799877936693591297213954778149435557092271700926099621845713888875043519990762700632608650495233707402502796051410886640395854468590973015844670093376996845445661135058591109786087539873157713039542134793374946955873743594458117465535545863552489086173842355793374957258838893858767554759770977272185027174984339580152900163748877555708527905678173546630166768281531679009986470777043579900130246755403930581320777422463327481855953334199695313140411280947763092794726574253743700197536860109879866378839122058717085024289163373796630689676562745416693712173690888016890777713596934295175005749759904868194125497606398158623822919827710559435317339028817331882374760661006186387719572943165982654600843071254233899888944602146516587038738066501723996331365624690148508371959178347750815887193405743725148286165856460274097680870917662398821460755785215961766832873748330835143877998390342928423304550092688268237510448014822380185271922862911390162994773411187993996857462479954534165690302121021095982030341829183074396842387183392933032121615604123502714100703083240849398752410023898416047866276249995981469216591888631085689219219582961282017654662553792465212672680863705337370627429913280969703316279300813406940008696109043260338318475901992615121332529897706880076792354639767850590576341239310537017675931293461130588292824408308910320289078175351126734794754270812534284544057388643360304968195818540936513597813287378733801210613031939126228269146864506572053249690909715338204467659066869961371517423621482566284930853904241681358269680900059271052812445416944319278562100251359425562592957931398640812585665927787189931215999319143028864241922279326093580558525329928380749869212697426150883690676704256999759376187491278938873406938967455935961035870858262599418597431854072180258625473722270860706365186109191495612892143431582035606859110598186578659139395760018828466814850912126024783427569279708516035351717858199400091592892320025562916745892010962882929181767744876040090079917319034738515550984760945593965219582751106394150909593029358115942922116196610929295369787485633999998222151160545430819521317943092425222878530348458361354906897474390837394421448587082383110932827524707535334221853873434091386903521188907118320667782980696361177460188749963374297478607852493240164243327813049202259357784051610047029463847959067892540343150872481866728702095225757874637756716650900584091216264596984258756461606435272658105184449858182096202302002259488085781501570150115925546073769536642297008786060172978124086359275952188601446575191307782110126788311488408842141517870740279160270477450787186877273815641722991785940995801312809448444675019198463169760348930383786783868457451560800804644529850665718535053154392316902744267090005901591801502093632685024469772351198836650753126541126990108909217583199538906176978385213265983268342053366307511057046634797369829570635572962494507383935289170895608285328397315155665754912518169586497974828689127231501221963157993778518692021738917817618122116188976185237729310630066379116316273499696867646830027438675140187157728644398374347858794525189149067969785213951563061754947308287457081113595943295813243451760197630226751942975190022540335285808139609295574608232742398216561913295507923294889844978732603028221553464838741667756622602913336006804780649724948064005155194233581113011450397413097191002386304743662475391548722109381393770998543279950618127428741955860889802499192035009449852109893832440201114280733591462768980635327817406925570138005801530863415081346508133864611565937885633173763279334185272713359316050990206088586144024329988924414403373150648640272306054655460837060718148715981582059650358966253779744746750920417283532560734741230326844582221176445934719481762299209318338499524051418075604765039369251216633847193488034030624682904115048045905977173336183649867493201083615544758365673481280378643023651984394508433801595884083848116935282883632294532901655682792291832334096923518277953406296881519762610950150105299532623572035279530682590100150855014455513793636528161813702886963310506940998656601350782039170683091776221829703111574156960753319166088074008325027195075073615239575806376312027773372355060900799388330963975884202982852710385180402499319079398676701349850589097831782915576808476840434532366280793296135384263465661341308956419091180479786729692683163150459580421896754493931819478967120621724556481893100887510551445931867253339963749819006592568356037409640247269036964276082128728890272248095762896951896012893175454895813442070884772877936867943451565354465385948446395322604001734358593491068586783906603308973612329189639429781703029121172676927720192935927737282513415031454835149764824357249163156369811617398610175620257298984642586689723360067092752458524836395038285136985104911070694679472811980698158669908880037811524731695704315004818560831081891476366651445937075548726386019363043101847708662717537289401049596724947185865291654918161614131916823019011620742261321712438636780184331960577503339613297858794701970077930875387422270812547075538042973357630716446523014098247968130498281957885556285038843226906572715692584600635347708648367429687679725220119431210582610612718843925063347745006634296129390081986287607858606023848701973812140270799906418349088585047898864045933485261280274997303678086578130891729141252338175973317970513759637496060814584465413140756167514117785476129590310529689649214415003897400803222614512542011741692011734524469842317177835715293632393759762717499318225646084020204123799942093316478600700502996204789588777460941259617028568475520177960416679792673925831234424957058755204984002366315033744842465963511615217457057856763813053630079591667667512251062896023955611294391288794125094918828188662213825706236703143875374848117490763468640318835276218410054740063223098449529025746464077428079897077213630842281003126704305419838016317784523388151906442983177276924946961951737231473593292760569622242864207852132120534270465546030807133168810445167670914959907848420781069446023976803760973633858357568721732531680442481474757740604557430255905448289320190913828173412310005862680530289054806793277910323057671185644140200343363330270008345984326142319997398952477499098832949005469041118348324445068000318096490901629631197847674640244964525255461209346166736414763747736224102175714564229611641112284107839958907768968188919256470914976505831740958223307469752521270442527602162794798754962355601094396657824635697152189577020639733582983658742035137055963575816726934401335020239535642420894820261500277030294616382559401510030288973742353348647002834581297473648820332953143373261216543204409331829848650724282798488539951530061050634849409209093592889411728430166752337309764611342480211285085903856941503144234801090518924192733670175950453258531312364179154795782776505749009331692764694920031791332092732771999877147748334884760912014873604079641708953921349653268612538217016012819929643747722801839506769493583739958617027614810899892428829388394558948671087537022151878182825509436644498473746128170793919097242571485388950267771983501340949812771478678178538457509864402043549619574540881160978456664028803886306399770495302077464334613963999324988016130721841774940763428865209267836036082935503001433680312295239628438101819805087186288936586152799536193810536119504350250161006494822790591443587584361176184408012606606271025982000122606463402247293449183795745007314755187927289063219613440532622060032066372285212401045497932157127315214609084944618224621830928087625221407560901493041044668320312855132486694987885331892246234907950441648607420710492274445597773250199664773626307795539993287560670816205483319182514276832248164959519478800690222207343333486044781160815302229990561783519408274542228255234263006086692095943807576496533972525957529317441626373963628340280122790093441816725133400195689429245025929466436321589928813031798233713873569263126166991924085104360327016831516814501284903830730687783908980668597406436094970342171029882229410731120600582613290672492677396604227411475103622625651768925344916457476896945804577435161137848590198133676016704438713663202447449254082109673234367260330840985990879928730670997530121092423804172987168434485060648047891991948370051849758541190905508195825698980272269982382718427354504679179830504479021488430329299369328764315164321765110886560988028580546562052035413255246967706314840371770100255293049664978408905351269604252254509200316904712260132384699976044978361700129855086990974278895961684668321935861714807254332206514260914861468421156897123079702793791668060168051291033207775856260748027351637582489308967703611590246602915670916424646570572556849874638636952430656531620452081847316860991977359024224087491943133779367021045654597716915468303393065561656208346642549024556727003595266649809689222426617254662843496165242274770167985850896156136998912489375276641686785164949761028543786214866492556370287556079937577944251750315125949195089848429317341839405859500565989356936819109215421292062321471649261684571704755145249040277057325963062351314429467280361749657057708501768807041253531226725705505190931803981299948250700488594396111741657769357909513435976296261745164088621050626054697004486696288497050109071073945873989150525549187816376710432747276193131528829575063403488501853650318828566867360651792283723856911540998734003266566654655997339197247898654446931754483475128999361762720456589534392961490845053910655788861650714384066485191314077043877549396962423707723357099525025095787231076853359444611716483693547873083892272926721723822932970857495270038966863493412001134299136566765438474758342311099004782993163346713381829950455286316078768874320767863923607667400665820664542110139561901124871235499799548054242756704409206875299151958108615592910035638259969595098403463449022681877796300535854059634845752430365436147025090998514889693053319065976727405912739910147212922267562832151583994482255190641429610868951233900914256042160187682387691434187714054655764905493250078029912465908567520647049399251657474614238896915573015089554540619133255392631471183284740861938090941745417309201710468971263139568222758390899038750367823649589054400299444180241025192326567101007549998438480526958225427219016367266795465861516659461612396966443873131907177757392030233652697492705226203423920508558484143751124212367764137857738331218453043432130745325736144155382180162508512097863311487825290263565165881447074472075149975150568606787961804250693638386242203806113020513900968369908936345905095833544974445379694637802050354919689628349937597275499388568695848275119988506588584503635232266491120680471236419369816907215331240448124980093570243325549916240174088896671560078919226231727936945992283013188157372164324138734234005903083995146883526129014712523091626671854074838592768514240481815606688503981009098989388106000963484199829494599474872536235702077586030006519328837754057693278434441413038237744482787763803329265445152040881705690509356691200666262932452806641380639152500793696556561448490156153162375165551689958286858422457938305884435554177327513244779926829991964381693292374351751198751974334013860957722455269746450249700918967111033686642787205510285687427551633487508786448456657382240429206012531595357249924180610598993083229399409442001296234218446627999554813750971233987528265671713856390655944464072223888922190116253955337093321334653963761336476685498049966873068527902821966791585379618985907315631487173723872330392894001491267398842845098567184856704013536395848646328500752901378138512059174593626177582598946799913362712978401860507815173139933731421652954070590649555923125824654738699010007146118016215276426221883536165429950687816855983596793658150529175550775511334498893049920624980142780124902780949471022049930840162595899737680079034526382811712748393938582000721292091971965406716041906082798608379225344265101964727296013149052738916775077029410295560352416069942617544768923260428211120380873179447531525688910389223211611924201765696546448055994449916811826030821573036168992226572728080701068101759286910487899980326819187669251661864611254339803052085996450857001802737435627867657857535972711644067776876785006950083858865147248056083727983340286937399012912396022656933095415455886382237939094393642125373751943405338077369109528591044939141439929141503140513800911224686370318436599350788460721369863319693851722434256152597687181535923973394164131960721595221539551432342087616889939513890749211632405089918016621669295422478955838695812368130556105907152498698391063013640931459080279271184642957092876186953388227754463599370780513850795450739705253509074754409340869308953623862454840430913387932294897195871892423855384659626931819164590027199336655775602600805857374624070050293957009115756237035972080803822139323696348653570661582968989274131790505533469719081671321904919834447033202273524874803386948273874323011644894528159217133637139547177016556880893033950203250889631534819548000261580123939986526152245332580300234498320410960587498930732197297053171823604612698416130241648435632214871204268604588474059642370162304985871417131415385277640291988227800136315724501361995041316501657137624052893551705357045685349129810370936905491353018767103756351638827510379180283780859787362479023882804538051185675784429464709329006621429664405567029961618874576694453894826519217560444832097279839599914601047619571144437700523352186919646065367553768959283588933405386565148154941924675455023082669441235129225102159977926184255342484081606581593337931933499430063106519254078363914744217129003309355310997490829127980378642400519882875145637829346022350040869515212276873588488926675798926003333977757016160128885338022331371399028706427179381922049253579710307746515103510976400293385812232142550347162515823854122230157464349453348390891701613965465024907083222541930100500208731163731861280889615715058572059741636030327915012583096088209098053842912784912623750744360007976783015251813981736102934957441064018778079853110948059937019646506208184625997151808406079880135612214339542152413102075003752076479534882479545395666256937311373101249536927213230119407315160984361204849356254962278486349357780424839098764049659659541982128740892209075461376941855376699748954484692143697887355939329629235432379888302846332891142611791690975840975252797364752503685160808904467004072934006920069668288690263500357721909148394619449783852802013820375931388219794301909312210823435911649978074765471804960793060757996087527301387335895235846331025004914542088568017539099538422540680241930528583000740037593501892258584366931362353945674969017333282402109919892391434778946296708460106195837121665236693659645103080395202653013117624956821732700203178179806955707664727058328017286303387178892777803066872266677587151816167246433078590326926545301704925386563100768979899732260934101098194772891766910852749932548518500215064132300068936325253706812765748877496457469159223482624399704209312724113724841117894323452867066637137693538835667065784228711561413408231409115385178627092417464663569265019786388376044626077630878997246965870098708335431738530034460464478222924962849023907866975126394319311347686285477591120763048891570293469715438887929670057763698718115342815971457095784628778446688560916388873063112688082359316512863907898080553455385318981224848947375764750012954173432662665668565208343722079269305648744074625674822772084375166480110795615243936972674274382665530772012009597539243078012749125636786966258879223183517706117977963851448844417745643119849955486286747812537560581213030277924892900372087574200387718711790665171200260774648710707208411689760982318685179102418419533563692197600673306801040369619933767440656180622407677057699238132616698766067492161126882108301396383490321114894544279465295474670476761030006035717031318718595631563332162858738674389406032648836700499785218285631235284840856438258860575155847639294605435447903042854379475293415627652643057823935621078087690448739568175347106097955732520255475472716061191772289095908299774763903075945437975563878306289828234178798966793520873865602620552938214947719917520604057135755536902260904615431488702625589316206836235273486817716367584299315850270179167234904245802994883202204261282262880350115805736729322070349866821292099726917030458684243975219991770076328277075754906009162533055304942787975569573164009338135424532447189655872019724064823605488271126728768770737889109093328540097003300187166397422884473901055497432042644476532251363687176904265953589976418776823541964246750059876289506658625384196002553348929827390333185557764103448357874222652818863220583852922895889036279151406208783685758420045710497630989831547350059918042859052664968155626168460481517298358656395742445567506110114429453192979632644313845508422847140144697092985120454160199231497501292343722063774717856447124888945895745456916519466294209453356552685984239473211542807796131922972126610676320130207531272395011180115677904253169081786913305308552391165956324182857629265505934931927041076411257982840291293518359785030271962847654863928064843810978238891900401524830546980630387722329810645035735950795544847404137010657823211494592992588544618395062064920378436013730448175662652711924752513663703368492304425207723519470450153704165918277011466330921229559633864504491973988073585891041991341540210010624593026990213097614733830354266259924387157966274306692224080369714295080363268880792017109716077003108887280676991388873985173754960350258552014800681032811975962362798437172465909683156177205301773422982779605292538996998983612794557298485764524833690705792216037445526621266440947046273300862148471885187593439141503125894671766890268494428711212477755440979567930790018738611994259894091048208567880425248455946110111072598320062080560597005278098685725691658585249884074706892768564570586457120285708588360655935942360001745457594506357238544461066530225195296642411114164893148462894600126479975880630608125416548883685644574728729652026024486412419943187471219759241495458067822510640026731066087458873725590754975442194796003961930627653521483929251619645503410976693541235984943242230358527733882430687849324453432106632911243352410374183175432086897859352818102199404484648706896944669908336404093523665754122909390850053246268512403103458839708968982010869603838036121067011549144277629447739279134074836789934731732125205130292519483723290505330516676192795537630762673506708320163641648634788408209288565716805989392955616783919013257615608562770694423796973192936350801080051112064498019856307255835942925934474644538273282434407211641251104018088692157242885288649827037375137838874940720602207173242260771964474943585795973587852071208583720889510604569170599400561964830888210876129676962599715044137021994634183416149015152384907023987464940635768114456005917273027844205812968135029548367768135142571042235278869690224703196763046861988940084317870988116822680840750501109834198103791813342232152492139169925345079004738145931186779541053566968294806330315302668359780800323017291826121891014928641041826889654813837039516616675720589117243743943421136555107416316034566235756713466399422211012672058977139277763235315939894556940343934854775399364918813702892836666371992803490994638605560477227478198779393037249032878238778288143432502440091449583076857893546522997533516565137460616558599819994862227901682427300844421432660082524222808926581398179955725847082524801717848957239776882580592105964070902056375197842630927987358126539371951011408817573209684061072051406956646245705894434451516655667419159006705041526197538430668382050814568312462304629528015115708529873245873004883763172075065900133012917419838788752702160161963551913264859705973971520301343364483822673090492889130471521036164586875739090663143972143144327112914626682240334293755565615936141461674946598560908507674824317740297175085401696463979195439761859517265302183548732248156695078767874819086953604802648526310219369360298091170817570358217373267542525415909026368847382496542311183555604631967951152966940662283927992475409927327685032664182572838732831556547425576961092578013775416890629813666527253053015718087424070819002942910558144812129564465620163882735359090091068087031404009217012350458378616277608243412825914119970027889469602849794719236722582606078172954266886439280705395439936214613296408943160020118147076344486768949866975768429187159730487282698316787971164958592055079272723724265737162024398955279303135774215986374141886242257720790451811856897235851876331692430559444652827833584017622196555296746454977607920292422988409351386910934033671471395328683151138496262155363799231009261940950975121579118899097995652591988291275362548980156416696165296613419884667842597334179819865664065489321288905885078479809041340931038141238670944697412847079456792138173589412405246456213242273181136911927561222556571866877246068647562368396101180379196155443743999375981531339302903209945330191649165866433527229379878378613827384173952773382449199527537512599900698589692946370877855529536344769109042129412448456072067956116996392426682866258827486388147032075360540756121130535838738306433765288640095865630471307546427729818960890850010879727758700748359781413408306388893611195269981604670914628425224666673320527050767777461193546639726790305557005712775690915950044322886940876561201214856774924123827179847920931655022772344903396411350144763945788251413909400424032335322500471741221068527268833792418545771414377674638925337761842291544247813933716348386482855712618755456028387247370247393422582927386336582904066025533343878327500734551360892914961721758695664837170420440049724505486542355608440097473954870762013787160237859008112313970187768993467814930085994582170108110382188410703879272649393822483505452005549485759572411197385999571917091978421889082608352865195752219092177452325019971105664828198997629245366377116613184931731793532222632574898404617142044663449730270657457325450560625036493838849550053703934146394059109500544855529446279757499042739398837209794050068967356873496109974261790735101960611689460000655097198305629749383345300415086060667216336312331747333593674400520483268382365302242254507442332874189653390434086074754919364454827367682348726716839275867986339556296834420045401926699310574437178654411449405345491557563705447070423984110767345616735414484263746193065497965580457678381781396269203715274629135258399160679569196916987505580559541331376344444694733497033673632602315606838730764713010340109648989139972774191410022828061451631420434517598049034596828187896468856184607619690337858936020806657186303382226520975448786437589123629285166631688124019320920387600479232249058070903288753928753606823536717318412914091382907736299656705204051929003026010978279343495191438244190604237967773885911564730482486291987254573237417765430096534342122690262198446057873792027680348704382248686196922742907271121914963925726521041600089305797256051352411874411813383666309066190751706953502613451680260588602075254196145171563414321188288946016353675783052990141869729538244255115558630871127037355996820599506217434218541879449651825956537911730177112109063970247430029045148094251220314752283466398408373479198892187432231008252243786587110270705732697950540564239176547674196417413004310372194546535596705750300133558119442197921438442311949038104414050115623873267243591362460112699129870014085418847726765961473605485122523693981514593181702596510937253985188622868675342460392812343046673409675800375860476578599164665880647286646256827629112406289322004418434873186692767347007199873562407246755658592359187600876152550870247692674893076912073047715549057811869568319285812507688394941886247243924723019336531761546522215518739518722314565064133196182289346383402982312393896680740248564906057291123154389438973645354301219179703782318857588290999646276972491689536001350852282168436588114217176613893264272816217246564482824697275016400200894270425217577450626477034625016404886434641883621732036486199251609260767807141716104283164446872419731498232644708007976366531964284718145430649957539104160165644391097762188412674630920541095697767364290197447698629456059410677767986060227706198736132651859188618767892200001523397621165172622485783500444843491812290552930333659647791803999686351233763997604457771052271851811431495463108353720463469788265698837368002161862749373787976886699852063424050588651041067987855805018225368573080217313883296511464085971423204847824295817574158908241711684515651091823045383601233922564323566580233183758909273953918023630693856871448458811251562261555001861906694370948872998576665716864757710192117910488595411937950056912379871458000541214005645407915663217380376142838922429110635942106775506034761500677379245129077148547541580738808453724835506675959346940327170950786782590860656731522316535620372065254715095273471348904297285649915852546948570372522459962727929545323846420872779840470969356164398098908754533110938119006774806518576893109370607738160390990819808846046769237871120388396635471494975697151723089059121905468781783226113934158867435424107980891997175101973286909950334651913769426003343645704970630229125567650745560966460541480843404153267378207916610325461295761608527329352491980576048988715203621078892458159498081926067210293372179892274231494062171686684841303557140789227649516528141790567835086229980648213770724667838434279120335939583910055888485094387782900917321640413333750796828737050038824207303764761495554076678674051603077305602161991954604720284101797310338539769912834430926232801878147644770320030702353926839296751500030174494568969406432386573367950691019047662532257275303527734622685931473408149776061644424290674249102580782485709084466576829395767893785985867030034647552196404061969216521550012622245358844532052078031255684428733479076525020223920874604589982923245792973496627958125405384547731199467487648926904091544071291538568414418179562562540690809824941413678427815446579277175532266675232519626845182563072415138059131489617040638195856579846965276166752113893869447626249424927099268287997286358629805161798372498767985612531646897611544536409018093969624496520538297995514282753362846115013242531379259165291995510625379371019090993197156694992136282727826234381865630796667558548790920175678434180480134957148905950034183984283679166833125613322924640806870488568991593816119701492603751800852198458703485147220129930228511113160366802901616530173200187434209253897769497725927188863758038457532160294873262354495553736803117488966134837093130810439843499569651542318613531614069091191277726239124672443601412044017111526236449737831021259389895127655466032926888933140986423096501569409883824731225518047458329525622016119992617446690752399338783221707693639189238729961239955813046341246701052277786557940190701732992502682942352701317133392119635379502975438128642876630962656124529369221488158431285309425212928955015348127871317449477628929928289443311280496750078742197917642258425403369166385236247480837205487367842277573249278980543208416377627788398558322480543353981420771574816692718452015155678214642430208729242711845268322157045379981629252625802983610739119978618167712208261421488595984784921463179554643722741970085369911633633292088109470507715551672536701066939897610000407284936151093265935420818701519387951189956842571312535820303255367558248075124884471309582306163279740446785899121100244158448781691632333505048748228683823173730114738469863372558529896227385778042980892353544188965203479409158897639394638456185030206332194347874184544516044522681060596984776401178278052841554194118918177596094010182473828501838193865184674731603812218371133218257479036034593916918437064061991287117758393192808926637646604441333978614888422552068624972387768080286760451678438282618445810724028983416177752147404778071960503380421285865624411560343147831990898061750340198037201735828156865143407128004729195998009320086164040117471678549693893926362866864142600591250926969146996666198035395200931350017280053742969983732185253439442838026876791836727626167769953753878524024437436249019364668177571119159101784230471873516613194840123877213788243552035775568038483796376267291425441864232971717459629231337877713816135396850860612521325682277077766179518231910617513552777657014797346626007677602812098768807734820916671661954981188232114086369707672594393388266987255273485016988964996717347750858655930185398314811535216727347003860036121772862154899806117489747824109245494235307430743680678365880616434213151049646887391383449719581477235006241020901982996483323265044758323185948566586957024582606256069712191989215377075391225029972889289210039653994721664138491301415294436537137832344377052408668609756288344292027875573422383156352334962268556549193780331011117238249856185615671528914285576352965730697288435930721571120903932803665051204418470279645976195632535676572603662150988863505149294789984023613890729963911068762799058656305080245816019387967348847796395478750944323080487831992945773943141373131652863619059829206869028977955196912188596238210777225925036331334427045969529710150993948378889134207904885939346678127909546618689864523918184124779984539544486534788672688527300634829851229087906452812893957810174887670944537167945893043196923466134876141362251395324539854765387096006887730220484044369384927681555593349934150250514807491707319485995476047267354141047668422333319950775165654287330392625811701567898697408550775972678868318671693118966319977245013767064326690349501674372560275360475681234947632509601432401332880176071330315157584879625069388791603551169147244722956308642224700049429350621832580757712179737640678861807581882385936780502286674436918761510504318298952556424388523438267023080107427504325269803281620910834070230353485402264819871838508305559987501393203501377044268130466035497109914013173874305861434154145578889513079770474151510939326390068296599787498986132589777359857664744407982210482062057019745162688573129849538339454094545306553958614955231360731525216119740461360587295880520011525745830064361780007656374797906151540279397382187025251935957809334938062728627833777729548901134089266346032510531390520569565182532315947280688795842703992496419356014579073459545438498215505130905855724004495236351587912512223832909850340308524678638534927148910202718834323603036144187442852262438012081639608253604565625807231937595085596698790222869872944133041604223703646645057757051509954305765986426853948750723037504833068845605401262684250724733356227608969020212737165365512622616758487419735964671344760945084987122051487980733995163282746233382352904581649114269559120344660422500020919127908506619694595660763820427811980909731991981972269974880563813134359422175276663258800894169272307532192706807475765209333253415150027259029554333176979382445552477398919051591762551276309402844664427604728849378308996980958721437986504319749453264568331626466521071115929003681411423528846530867078862934323102349865263380541828915201566441204397671676250155038505810492446719209772432812770073727965762398225730822582551654864986938271033735331736095734718265050584714521047929189872725665080192151564819875256452952483338072745416910301124265458493515126079856869932389583339231129158359086220895629575281082626649079652195336266728941644093719827858059996581056674460379787713614141252400260468902329828736122218956021265539620315866859289805826880293305200233388925889371785392877787548594199174050228551589719352286212536781954769826879946664356861456299536638722494411479993773364609060214528862558740510352692768722866029886838249386661642251704187418141409631273941973046425905313918718912632473133143197618687289149088896198779760072660965962145504011095755113010533627021728695841497080375717018254279599593901750129557345170536729927942405852868758934512323801232371197672740638099821285964185516629546013782442358350358870516910235949625254523500074525341171143104302599035349300834278571581649391216644165746755022580057837796711317221660347761424250839803944784680645272371924637524547520492203526219128901479330319661064551932936084885195611913185177093986022252922700711420771420613756260570298737678617091184436486886118736196808264934392383761051842085272309353971492698448198372857882923582316380233141178163712735711700770823930822065686443836612177302664631115825348688809470222281801818101106962486512408399703772995152267026749914543143484961879001552946279300766578457491429655227160560013742384744838872744096834723281827492515717975984906278444202218485558282862445376268516582280594368267009638177700774398993228700479435565086717386409132744677120938745816416324409244586354909594247605679633011640615300569466403220926100466887980415193074024053083505870245519083038002522454771712108496729043358206492246699284609625911248174234551977473611835278917933084675779077902924776818981314438511933031996284970616581506466165791459289632288665308008996441803878455787188125972176085064068256864431145346316992446370866608190185276396557008390752813218672671521943637164985236016364101222975528988901475147528854848502326068041236404234528807422354676921592244039476161284307780229937015231508325108945777838025129851741092487482686288740554245052914129395839508827314620055820800990105005340770042449594277016916587038114736593419628490502382381061787152981160630734654787697302076303421008387764216168346716753952500481482239212723840128411379170422420531876004577243580076481606826091530122854043114601269191932591071491959851240516636863293878316077108722196165604630915948524772636889470558327735003793675239902065910896003077141459431712376710183459990105793913843980917978033865799037504732828942180597877752958522584308678846683113753224138114076382160200566943821836817337383766776182578564131044602465215141831899864042423700665584301981160410229774083464260924135468003636967812675494871949103357975653499364305581480109474734458331404556664287819281394984452942324509568144087322825311915303003892245017349003838396466703791928583234824953645409644894179521048686604033218830190062313482002652287857899902888224738734275546920046852076811568310517480212682181433890976838305456968309252429120880059349210860038254143098747236369756213153680607062930074103425609692798970076963699475393156146772665568198578357319558180355298149623849916170231772897861568150424754037227748397091963822561116601758224657848158881621484467695385201395945228527654956838816626128303177021677433391184709511584515692393800501956263265544556004670352977840962743884413680806253093593556564674461240484450950177710595221459272689242518162628226823006132788839375676022247013637533401830510980690369218399209445849901201048239414185042398169915354654214808095159018116659210151760743155021097138687900793398703741401001694348215874566010258296770351316041504526833670488482187016854318822213742618302757654271488403795953522767584837559371457409503662643576826753002024386654495619954647589988718203665458737909969409424890650915587912732862028081121218820628362720461448020918921973752909240674826570539734599112493655369055150476066882793463641591729213349506646034555783913454243438948143340821652439613675025221542353590236018960578527411811907942118263865938610187568097299681149659315592325654162546210823347141353422719310383367629895158923679563779490245128761228553122554384329090578971004760161706565897758476561685029078958295896185936259590073089211503847106897220917819883442360611674604325847200441211277756841172057896027508725593621794441835326689582738933970734444851654837796715241173547832346347603658412785683298255070393493349073009828906720095657529302055452254193217407235642829497447356199165417478608735497279387901510419872779118848831410049242153433532151795548036387513183954784071445731346402928435694314315507532306952337666800545211355477374833919879205066097354006712629996957870583999426436866382758345087320565597536320632015857592504879768557341214635762762617874394698550354207910864062724380220332677091920730574854657829844731788799828398649421703207405705817749886158335025465701585475870564662217258940862077395793531709590940776753552696697677661942657201900121125887578628816101828094518150947416117663631591877111758220893523920049884870087117195006583877279371397065653235523761937802756263532504633248738790240160032348577358287301630131438666325909980662107544540485706516383224980223143535941677731751806765105318515299341072612617544860213063653232765487251444793428356892809192873472871035888011472930703394646872821067050204247802175657163998122838641141319648628662632107476198010482872514846791029361917402664819919856975289392959724446836292758179304993659826545187213521846191882667226550108094798505261069989975403863124272700178311869085693686927988385550637765018841215661277493513779992666401213447731960985626886186655359285517123626886188270153606997126902120698795214399523897972376372359787817887005072173662463369420914349965281494124471809126381356068774132624718094753837834819184180695799944278830775154570546643550897870962119705026288835965569899770603617528242045871933685751990003683112268174991891012732531366752514118893992671479653332841542038542746965352196520535411926182517660581627500734450841007030488391149273004864290708996578148475704527880049456575001648882937426598005966482298971084260978327938112939879493853006798429283100497064424579876047330581778044201433457094955042826114764832924616475983842545987787656312251256048460482778820750744511680644191415391170714634777863264461941602413606290954372571645341850059008565170066576882973140344894269447702653379288181189557830687982833459214807060809826939596682789337089930925848945176438661705532787181276856010542288646692267351286507770690641524142781700980767670377119661388761786211135196457448710682471633177178430029871136628460491605157925728601708473906492459912969879870580001790861075103218025009940888627343249952243677438750059305804128042022669408955079740929232612053577267970345155124271424876777149436974944167658174450100848532392197918591375973233727786692886499654840741165026865015340983732687637477677522338358912583655042957901307661410402207346483038636460791890022781144385418015320972748544332934022113569895095182943416073622650705367365330734479395801954440878133164444680365826883255074560089631176097966708372389059425905559617030088533081201127066086417309365409881470807102889362654602929528508578892229169098034690738648090763803240056341143950154483950064293841071086795986114315678608627132361420027008501111070816748063637772476124396918915164912514799406575395863400068064400249622932381376103255448119318252989562662074660650882183095019391548291760539259767881490114076654022783727631472877826223243404605703999991351362598983194596119979201612462418653389338339987232784446485076680697896932431982716909052966354989071096409860933391411384186982139247451520095969744165206495949149380872610599818047119677827085388658384796339597648664879163595992729362981577016578668540529937570067640366550923991758860853728767189985547981056410391628027668839760651294168952730004200506716637121431685771966185380176781592307694405823467879810698089415619006024882491262877231551678756831710231607745743024213637215686611745968839606080525030533968253034265961780304101136252261151964908076261922719411479618368821001791679346210147013397186251389746888291760480609550929609450739714664315613698296496105427997880481429565797962180460754038714482218831992790651845036855001934320184705316101400520869037054915906136951953183770741688306760725769102723547997845491095402885831714061184810106187236206989564098741236055513904288811380658093723206187158552822453100042923294118539139574781625153899147293931477046912752875498521853796758886225310117427161365852901101853769060376118684130389293468884219270962657133163367548341723470387063369586696761325914217620960275876712839912515374928769559732185015958336104856589022025802562967279282264958355371157569744762189447742544984910775673051354975005530209478206353368852583482216842797172492821652696739567271931829000951430249103187128568396273178654960093615296755799437345336612470191166286540855065822133919731929216979906495189256599953481383983856964365052804995532232459884155746250919964980617598013907309513287927160359890093275538783013263222644452564789311181933414484844905443693388317013119277341862769850705743878012565780671967331195696551086355133231109196664330460153000367810424853649614870712645663656181815406905356237378487498074450141581394949974434506568699123107037308680178741331123138259843168391751492690744887368207166294340262848472703422238374206246396098819190918181579414561784424572180648809431433014693083026262024840582186305027966878248647121985276632412562916187566440886574067837799605349347652206092170462448472572047332623492342130792129439893409830109689791936537727165435498110286294374013739901601340892725748750396660907064613422914813367064183277966676779232617498985277181591941241065591519285567732979878334269050006157731362026598692025872941587512090803963414139957478517950666609314549649421702837127541288988274125503218902862754606508580034099737151544800466942550348386780033489961241701819313970896505608999982684523462790041228838089757609243068027585217137738222724063206525874469520424661225534102834647438533792385640829279816751882695510699040729023546228511964969110846092727263557600247660912687722155195918987465228656609804758489209915293997017383928678295347532591329634851320526952478928731323195088118307757247022798793292720321187527573764223186868772560500959489167714940395983727470250783826843099485297019884164336020453791749158114830311259014699642950018186993275028641149640654603726709763461644611233391266784346629784861972396126030528683826458841458836902072931853209067283424448898147245455557545923750215633580625404027284009086915681879678022765578398448871250981514477740664428524480153581477358978618340791634981454244891513740425280040618558312974184014210273980488124587437872759404656827742631576961854128479152026837566242340895597556336563948943851359505611459175895455031297873217639784775327025590415199808093818817402729747959696121362682395154835854824410733742847042091539553087660023272773487752714373122019116094284130933606996143012285199030481922997263071646308429200031055010410485885637010420258478546009908962541165889782290461223349554176080278486046327851411680804863394489255615576170589173213455307905521801274882854448149529092716603668118798542397406311420855376063752774697800284356059238847703748789247212399685244206515816524838638394679746936258213872925540777917853291691696572683180666275669845148398487362521622040313870859518477375736927622130165009981922205276476922826419984513248834598467951206912795527731040685897349712275477511990899990616946635028127242226155878680911336250755006301909050676739296551992451076902215323611848610174658697397435166143347485229815913647935705981456493108897866443970742283734555922233672772223803198781205229264552304632321654702182092498186810731653536694195795760277944363859320321518071243360932348990508765039183662015086707329195855028479529916226785713072907156003510898217523750992573371348511832920191753477664554423514067190261845085490758316191789921448215846678320382986092011622177375962876312931921831716570581852694432226482160991132975811038021578572514388113500345793655800077670036142415992442519276163069204709136364290359865287982509927984190352653540092960101083388830149019710113894772426926767406454888138889463596604597259271698477787295085126981293704847266841417142207175961760246738850846376561567240570338722523840842252775594666589284076655794643746014956288729267785353266612786132115396576698534446799110296003495795644034877625500964363526965571522946747856406049368112925554362458982872014756990027791647684443330815093902674820147392401069169019818901893772408716077192624814857816506409124242433190603787040854803901351830861114704791552525793995459512262529883192093774345755216240422904358247833925643774785479953715420126436966763222891301386142757725217958814645855226945679068220221999541519921973997301987477685481837352978762542345360584567215551907637941543099856889880359135074979723332424765443705253525730713372242912557911333005938404227236991336203609449951905827385853148730847808385792387247500278639321260210744087248878796383095038791577897410083572814217896352178586311262264842801429610935661657244594384297161481741397609030243566489555154380429371283898795114299133182511560763330351781190431609310376015206178027509761004198957335848834084514766872510702460436609721319503638693688486629262258391113401505870224047808116336852748218372096060222042776704499401876598942288386339937466280590909985592732041264061060576736645668513419321309975980563378458484677581579055459752299554786653384276784693869676713001919733434628638968819386278524515404493784038176720697293588557053663996005030253086225184641734028720072047374811623782846884331073494710200817902835554705332189655919630228300979214103625536080689209200053554354733146078390033138079573388511613900575821648628372623178823365031035407387793992495896427303019051751561133051254850523605694772115576642632361863579401127699304107928465235019323436930116849610820523873772340174980435050044965821280530896395397799565951148465292119758791640701315833229413572216701499486823165283431181336730177197404300453708665251035515473658458490536367709306364437534427179667674669052957606928042085188109849637260632418595488973361514180673070482786758867027309209561494885633196703539440703370406107355317379821761160599330771280869537318598627808576948152828529100982856821950992164356100665476890119045119854440706998298053107812545306468918344098052406511983915823924922035521521643692387348376849360167506030998146757888524680357375658113376424312520762594272716710229201295532172231643528436118886820905137647678481274661454235891465553314769723263242776272855805984286648498430173227142919950847281766076452549390589223162610913348836682465404282655559487515500703763620922120180065952938196526826874866366980910215094088846699240519790485718585891699462084926126104796281994908881663194302924021001152695900155609028614676466565936600239700239410557355648090835312643468169090146484826285190571604349711107638313694270173228214617078699479693426082948040670574545556506907406143342131851401499231986447667449192273670626625719565861655911862802454093921504713425430534880431139571772018108100360413971883698839225103793974624674256853268801046868025780710505804969563108335093648384813938444795286430626354395622419519680495546618003208548655406466885821613202709049297936551907255593716645881939395841500968111126152769921911180948537304624443431938729774283767027864334320377914843033322473289321016752376520454176210098653518255105963783588923094169308694305469836073952196776041874602925573606183958066154954222600613834159240949290533977630523460350980078907634179088325771056168831717122391782134259497559247443113357259378292120296750592264090415141923188407310573215326614254430920326382865664622303227000666316531186086750513236229203845055987526325622022638093313164146082432797066869323800994255093208765981573342565034005115689741527251087794680721290431795815091226789646062637376647767391667236351075543449266406666364164737536381262228886824083962303116854051809582835115480532777220377078591803400016858443019279593781011342789859679998981355357315039479174438838819993580215857911564538501732610152594655509077301832605658587951212962068275579320186498697666879329142212893149414395775828225687156495420022689640864335995698942785236312125435659047858298927737437105775295814745184562973499447257921370864616565250608492097452121249688997170112522260118400011110122179320473366740770416664616524627625803437638668323027382847585571605010980222001111846768217470044278928726818871154761710440903491384256072569080558682178720588436072391314726306816511534598173746708097673332143288444597481163853162782702550659115443244141914924791292953772709941908798460446480264908690324659800854721700354131926793010213293638200634698810472693109749817373125269233990846110587828183990762968017216336132172149681469417822818595095671885744350267769818935799878046296758206021018488448128199421611435955149111135925799311283957454983801359399967544839733438794844053085785144906839264458452888848034042864730692594068558961527425764754919104623772488077761231474396981282363060496850100671518797496853511989685671374846436186538059194641153621677123358354164501803041924003600122125895856175885851250995553523273792665222078514818556346648310874446061224565566816529321647077515758380246731555981788247718549881286834878989343227001171232135960920921005400030271804305769434403494757405956786761980291558663546058704811385937286737787622814686998720718759362583698002964860729227470597809356022839419710544709127674519596571443546151758118229772170302237136786245252470010749290504343291496240380174524319724525255170128437708461049617321022324711066480682421612078091982594770068313910055690243768038100384358057796027228056069600412314057561807325222157709529050368624861107860346019278988498237460308706173696948151748683720510246618279582102430091603002763918236729759430291012392150977802897396414701513753057437481608697615265176481934124274324353066065068887984903083563153150369074894924397127508245491623962518257730180043095860756019216390851927441268203909290559736573181247391277682121161063043709360164621195774852228256726114814800552162701084497637022325057549481457137559818836186363797229497152555044371070367077426842053578802843234264864395106311722058372152955580203588505547467912489785890866832950975551559866432744785901287252178872035302873801554667451580158542811944276419549288079053919598326027478217922485477473380514403053744087140372517090029323305324881413049307035554258362845274459417940817806523971456606430276908767014622665233972219571690864198666946220147551279558662154286315557132160013876254461095528366332209923258331362434652561484046476057990976851643644515647417242705652304930040107134016626929744259303874771740223909811616514736259077807934805246484363164042743575244123431339965300157475392156239091910958869228657134667376543533260858192593730864566732679497212600567558450089099359088150989118362415173047990430348250167812557470151793055151332968463928324784612485314290030421507050869507897687000772032933334289876134314684678829272978462543611339461555110804945109298228653141239639857079638500826483715321875016921138704187714474934954983582567690182579614255459264037496525857102893206234199664217050581274832754882577827244110379301796249118551895184365632231740387179749742045160004292179688136513350272645090844842614019548585247806375637080827579070946256293576872041876015923726881498472641429519508968714523698787961065293637041289137642922499679484127574125091897789711759385747227209366214634098977684682440369089830171756702116470701146568074440361714001268777172346327728116880775873041501407834827347524556454425601284678092081877757988619629391148060120518178025863689933564504675780207846845165143273730926630863162479923070873222686455667065400843547775973508824578916766902317043981020751971249896392296131720262482543938661613748255615755661176596327947683170239644226480156837864129824049922779900341973837295698183990440979809748638734675119968956384904453262186915574684076839386060351421027427132676558969629954032904670441024717437837147277168888741663745777768899763950403731648712203855265142883350760987895014651266581830165848674423187824591983206728044631813873473275875568713995684352967189395210213872286134658455003228999840428722223031955837648740083305799106008465842758542824635812438573969003093577781408806971568524268587595192097368292006155521383314260287299135486043582390383162263865643035450068053450711730789324323572252477550924944124503019621535580304252996581141822565016694290438435903410954301078966164196607694369129254797181989836890951019800269334001345981899925196532998230100731140549719201388451516316475504996395525613500572883224703090174227306143434663932523055622133337138218662490810662164857426875486913062721338290228734042401581075139999904953448711382090625953041205343742166362426041040605199759750335516690145052990855824248881201661717201118981993977248903778012867311195038837805769137352313853384177106293079093127483557552846006808910024911994722225773935156555581654798997174262520652907157769740012160499746411857519246158280991935985790672969053095879323360306284723225097677508816527589198640216951719878219734779049399780664602166738341385397162232690816608362354493587498630432533497364557193760738564249974742865795086578004351178174669421978999741634013772797604016838054628962321911335780819352591701833337421711173494317143078961433961776095687721779797127222901941236117435360540618347180684983662322459885485335032401418679770718788490012308405121253390266948372284675497111525434559668178377884243555706752969314465120288454114038325311590768789849693186275071076672611037027412726267747585998808400027655977718157804312560028956626710834579827890282720841814445724101756168687079977318286299639784671379113965038740266802048027651377747029284759786803791195527045092424302400568142275446968692661744447275804944246220774392380797110933777451094466043625141497359322560280977459614305818013073721600222261856582099037846817391508527200251640206012260215218916148965673082200262102012083479124226522666143823154274655222939926446867231870845654559431003804119949757066404098170649247816628443663205272201273725091063750120515959321939927987503653164171514496684215158518233661553124921592468885925222460115209295180293691989229709142844185900595991039511452567066962472390694535525669287423450911864101475603466571997847568387250781169348281828738158395061127616740970608248444983398728254054470766202198856915328580527440175506633229298614292420458965487654170797141219628670693332933202129223005530490369296133222333011487682442716866229264999078964242178434435284745727346925224914148572476767398327122257272631880613195890090939548195011458049457133160416356047299082142771916170904234502652589470319244783223623868897181984246522677118060270122383507837209419643514129866556511461001415321612598888608480880347327090996645079955766697743188911495199459006753623599487340858568837813981679224387657232548472001428248666076695174510351701709129055329631234773464332057255695835070048868934972985038885215049821288756779343013316373384075768003454683249956731814505551693141489869931697890561725140252053782325909796860512011948611126245080733879743239308720032367564539845659681325603309477533997281357908018553714357603840212616409190426711448794348642808605554867653109896966907530252510942973918047384280129486349805607380536942968016596225342971301913617891146376930378890472692945668473791389165701688737408431889172277340928741200785083340266737138258121035336895994113734013733897556120417820830122361179712817060019329647804589589837828378723236753469454517219376649897488537303765502924895370648445767702298709105956046764182304029189078061702797363933272840469139561840850865603402651353156262206048325613795844129360882570668382528335287056180446564422971063249731718646333797402218881467590935263831921709719344376523749517966804643972417390965037666260626844445244862733395483106472639491846991335454627652575529459822000708325479074949912178985964446965970133557314646775663450750725425443285334109519615499237016579620100256415048393812599924235447147309474786376208952168483953289864825539317439387030637223847874804950909491999639369471083412096354043738456420285110836776320351014359919765181601046221853804729879799659089173186714343307985374934867314248054891198663739543188379195188291967442273699483194110747215780475057289161778956204008587936963805840157539479093091826070095855568053128705795419173926575741866850261913190778244227659477030623770575842261734927983662990038040028623831047925923920670789198433371451335127252802527808185378136541674519238294076184550159226146702461923801054223081326752885258409105106382371319858769726431068719774453426287338747249187104589271427210435815321735096948137047978965256309621347916578987395343044678030725095910220555249685402796780291687034496822031583489707960523749974325625225586752145418700426699852985643550776841177201524010016238036624167168420592145399663078845028551939368840711063984458961397589290755320749926781466693079446838368676019329062589306419399857489754768780957358544688505728435247967684523044580522374100767537904082450001010037091413234978308775972182065277155484358885120733861607621755020329133442710339576631947525509567265224415168381042879615751953090517175564743852888021071367509585019911330944428925482546992342432951422411349701262555879662564381368847525075570624266504097997240784566787369412709104338079168018624554539865073695686641286554182199102819274389122293470698639621317620884756635872120317968672305251990882235949928119340811475509714160288937309406718647538285297757783220759840354017660939935427515047878456095049285241001578170062523578429047265332261396356296883499310732554487731578764105097724666636890243171949040185831216613874798141443444295182992726438266152187413378581601660745324174615914574921047619821436036134203415249583598758471369565036903862692823615195066428027846524043109867449350004283334750577038047076892847401510740088573940957717715810020225441544811664564488353495648764846010937166413370528381096305989730466377504383134209978104327262687452986311882500117406334977684141681696907489238917985481254747112441321705216303901291084586361192583277547116396798141189201331728709742870813305431363928672790992977643415298361258492158776231211336567323226734583477151929140032472855612266671538625744117563633031541589267806747804915807756986047399003988841751650120266256458492777418672977017226422805452904384295811451517896278684627473861794935342114362986874753920921047417394504453330784154346571936997658531977633237545470744375437143891757972834273809333225971383517381005994878914787844379660157515275885971404446016732720610497013631198337605312968446357043385205659080916741519346300897008916857762382743565723463227127309312030409512538781248860647567067353141889825665685570116221363964983068094659038157373207003026834089209041444006430151374182886153199736850916467777112408413240120244752464853789441947134922109603539182290821795745482178212275882442526438056954080817942618848588565148978343000830080951350499838401657322233843066516252952025712547663622395747174643343523742247884480636740664966856735192016539203892350575573483417364601541292103491385380821484476991636779112429260761494771902959705941960695968796316893778224134600826836017393881108065346412229459029258780464167741724550780456201031298859809992927552204619004382694191247316956580514172810886791029903162010721568065255397234527683422323130388654974130999693200580725740005550009869126685449040344078985400422419098404300853754192096207402480962245538562106500839722759725198269617217458085695130805098691193206882590262724599489396435879619953543218099965354759072184723338012964679279958890549410663350081352098529950709082943083686762245111811997517982469529632568787194501318278676448115132294486470358208967446406424451113816132413646788087124302265483156691625523654592373660839752720577814423450263580718793805634086702470581251845335105481864575906588495553426407779991995112003406940207231546323908486139351197150463806194709208668113571491925367860904315163771811903111054778480532476605502301107581590879993604815737889188858712377768519199784616962801824804266149216247693238142413781029162798362490504051313962313948365550583122992017824609342466660219878662633566645354715703929828380619820220913112278733938886801784774560623412065666238853730681643188892328475726816626580223683619018217538480910272608190896406429159057209420735101444387002622108135760378837148282549562619716704118193795990638092383594699781515359985743106333337547811709345588733752498216720766256928844785285328329936448982373636250464335008004889070811953074890933693564973196177628026095125077541499494547810438661257800173533065211655183339848338078370169907646356257612595905959503471504150513119440681628153597775992071543154350542134728927546496563389921700603406607904829825965719979755039697318451748807472189945262679213204521832423176022743430945483387410413116223617700599225434849194303643648156438083098890655507990667211355592570008566178896562247939958960913602985390703950720569598750722599014784667435919651066375410496236579317054241398160386807097105418533735591556123887592653276776565320613746435878854477355523866264183694867101274954074284104418828602756090437347871718921653105374275344023665329481261567778499944582998594905025682138933143012563104582573913366135294490564165885808799148311078470317768488968901183559269081234294398796632401686885535840832959074502150620143562388800162137591031380301405588704702510470730446617075134279192427862210992096269277216049917487786712734784868691047634536870239884704613706771804804139209536949507865581018129120226088457822903475432744384544520794013669659350072309913223987157767967931017373112010951308535612203792753181989296906050116077531308319556648300454590870045091178409357493255771910801022926165998165583428910269789445502216694336508029573128903631696861504408551597697254136070153964003268678947116554445643391277964023784486754306515034683950889371643917296485263926668781957113737700886490241716400656870270834978472543875964626191304963150482914511370770431065448276710712961750713044479068858857843228574764296495635411032446374996759130885058115991443924543071052410789316407500465546777760014664545141899373812982689538638840529846717907875937418829222919422977409379547121306112480736608083911707585859492876179989092289946109027204721813624359311295830831173369198014591442527550596859914466196866081388216208009520239114337482300395308912102841353225450757780158415974332829815064793023101249130786235517358867832875155802794427657319152295589453391711310002650793135217327807891952025057444873632280417320307627776673116902643591649476289588369251706240076840398278308724787712366185408579667629413109810777800640324255531355244818507675357685012663268412470435454278188403054493119981787584691311148739328179389942726375192245941126149835552985825152775162303062519991603584007687916349725504192055142969048152843154166183994048074248864154921049245128346566041418673351552940368820359493932083385766809482108943249987733647246564963024283743651069293493703163191113220907631512326893025590859870014576591860993878165076579565260494356772636054266401427488317991081282258965895058637234296834234904944237755510441352079976280486797135761197527731973424047261647864146306839821105020218333273609254402209876881668582398916324481005113588404769977133018857537660799230616242989972634003393136061193662797081728063068912126063455876983104577685767039943432238060968144883311664863003140385448261499488295628528348425690173193416260384318123250303249732870427424772444348319785037924016947838590503289543931613027645480430279501349871994586138030205466189718940506013742487281797609740815614816492442692790359556574389745685510452477039979230067369994071938957873520305797267492964677966013215166420847274166987539038831619069192870909592310818730391503381160826385690538336787204253615767034818202298564956638075911234651959939466263691181356901836317080879220476896371597802400087168429457611912925108649813738753901930214384560605179686701419158250918067598520147067022929152811240683660221850490700564959785951719436944916542461247127453527151918271493275262172568269394459178385089927434103007418387857246684895953040493334134385166305927873466396281064924974398209126805409881077420216000096190553700248870294153257116029480611269421207489222175143774741109607430183889278683621164489804628526041709004038804543215345161274210521440947338955387162862513658451034080871124220127490364850013297219823759775761642833585693100797528912034412651492453101603989475965278340023871708508484325892982029911428326687930430544062151719254837582250222169840776829930672089573796959446994909624539779305950024095521508748873604379729181246821540942874621470090143422412139766758966798890717854286735087189947673052648269142235391908130773482479470016311567992989281715895957019437840396855871039009912491146505573554763591954012384071759277688139498419022165923596197947355130352384433961678699198118391408178184390133721850405951679453751183001861123200377011219415746624032764737253646175749297413700737909539619916288225948018653943466939512735657658293010088221541878611676821710935695758322602247562868957326575778276634006878683497872461631801791231103837837029009302071144011269022579304040307943085492350579714192124914813025566500638184120011026182132484464617640272721765442984093155189029826227979094064359353830927040934631914993945897728013207007069320293750085783467684123005372508542721783575880719152804790615340067260860978994440734767220857020535317256611621888824607564266754274900679313125205374713121107518961595226658698114148227172100376761334488729719624481540531071200432456973435568282157038230515644815064707771463699688971439573973680763052629535737609937141653053493588599059106678718272618546969898192173948768742783143554518662318220915047874063349405432879874753774933736224480240259187826462406639213234014244040472996810715582727193808371781808927250968362183005995956726641764153642662913036317423663419137140635075759942594663718956157727220431892625016222299009019547661109172423062385763956449385613833559269220786882786157719933072558553080254576181299699892447517331449569472897131034811117668564513982408319681390104706680332237182750123656362776608160017771530510635769686786190291365326594710830507647816741690014447656634935833922976685846392818310913649656321000143662693445925328275640089606396122678924105640545187360881803989289248890508720665857397945551741233188725448294002614867810400571686435488614186775414600885975104964869348386650800270473127094074002618573153504593695895834250789977400088220070560918297307335700073205232217203287247163205242308532088812564886896624843382757121718185544421478694677769614575861579957878163624080364584321465549369359682236701087671751274600707072374295310791604785366895618013916049265184136842066170589661562865699984871071881295920855492296292309400203135717590003509153589650853118316654993148503048964672487932694780548339642703935621676988821396060687030953013692552232840970379540483384239863526129607617304392300043703085204484730296305129434588297236691645444048416668497543685515077397379150086266271916247175072939903947697480257446338786864510247630810128415402976986866937118850140570084653170842637712302443558110280840362293182330739100701246756672047041669339849293425900281614140195542970779465456529293951710241376194250967760352564386826810689806412635554425364697290222753104432082615101785440659975417812330906815174263361803175798840044755134632512223251143465069413089466130386617317603050808580159497238822231232441760659665187382056315241909045895520239760991845415220762554659086014120975692946868707432795803525688356735327271408692858368379283888705125717631733596363770557995717919440385029173377342787361418506795646035314613041226839512491584859278466215603948916847100022087759576190043018253545782342963025546386232176431002783282713804419334908278631066971638610541997717482684169253838151190215306340096028794864136065446454162763463921073301207586760165857091675467735738004963496487901787809799925676235927082807827973149632149808112413708365551598126164598639006698980064524497073318298539448746871227414712394010719577100521357920656469055052333462287636722935894912694026287615542469199234705826395330852948062790365694428131575118578578896724767620875842682561760407818008468602234386774115347532990557146526473487237354059835396406772613127379713470353282651241599224199640605862642792315292083968739727897959632546330376504817969285728808315486136530243952886431067532448932887744894982622909023978803820375152504280863003545670349594056067556910774246793386954437063500762398453463718128731177691926671724408372741458892263880163193613679531494825888512965138828329811950296258570345659212797055186249212382685861976092148376028332930580169680744259362338037239019785589652525697438394024121269088546642704997642666690964294430754284847518930082472531415899497020734534192522900801044173915283750139819690577037775271688639105143517654394248228635658772091282156374346157880369076333065181555054558937787472959031506819226540123154873348295164322629487908073711367213691612682714885662075992040235976275149252313695044147835494855160872485217556466791760543448766752298329632803099689011153172431910359145242578281687574797700695720786294867319928219265746090430406184237718259281175591089191786452422731181857581695339438881303523530119410944748502369836305485824536762464249653583138976820560984657002663130240477715604327366504595545458983208097683011160829628192111092293813092205796702795557889647259707847197645347380284579836322682594207521079965100750326907613655800881647978932826618696836779253053922785017278680515891929881719962843416130297867926640141079729612631230412820587191671908429956245977287073954016699980534466780339840032313139673063655010503625823685545341407469432692767615515187949846657988126263063938007211145951125404546457182491097991413639701243380052730097126780871158089018501248106129746723134752218586950154539538238406644512682587373508330591110805691211423701900765027265595431652190784176488718858643148543695345474538829798781337557304478672513824156903915998774509686412622992115368680767539559439627061502986905961943038001993223686744688565951754152337481631439235406333343395207361065921158104631799213857716319372624777831451993323471136524290203838752338632425096093364660912799046613596764517520667261184620739956270845051600823421561562894124566096149398013081270360720870279978900577993634064311226817896715271532054285104118377971976525764725265723102716990237772200638857493351885361085612378909768081394451119601559143719076584251986661475861863430150828596929755413737413747209072121433575505456005070793022307271296350924987133019981009879218923508364275951519670418728360197120063180241234784298795177140734451329269199428330320569424911443760419557138966474322462703231725195321850559412548591148933189517462136677911329207805357685821803680100337484938331338362026166328742201530760644772534718346976613953489345016897377299129924318290378533040565098532213482544741609769228875887755620596957489149869684008851217234660428586133690170013699250828225880592331119738382840944530920408688553018998932760669895398446215927452721472296826824855985204222781909318333465855714060687566176321906792358735246529076746453711493496717701284057546455963366958282676666497268209021622162735113312081243552965271215881955520077606065182589127651592566566243276827054769941427665278695219187402679235617480405400821027090192983923393821650941123752728368826584064578050381926465987239742849535493482121474336609936671214482544270129305532716667638882557600268277692921451853364629583562874607586806730232160356440480257573890740572906360857712068911720120625831699839970422705655750315656544274580465821904108631349553283487202790251105557898459462977223460531936199640696358196276619683447761343382362261663567597991422255262009505441378580265748559713847649122849888301045443032315445873978977260391198114560576220190649624647966320043764303909459612046207270718243223717454500367345212534560640601147827172894445952113105070065730750522528094301506217007853916858593536083643884835319475306248447502445532091740201636159843650034311700272446330301059962044897105222104860338795222185300353686303290083795618592752118433876637320917601470069683988328198450985199631969962411691836454627299182415435712032613740396766626229367483310346402260386337618664340940907972261125070307206995229783782291270986645042495353664046561248983149124231652558513217723012303854322805024359900192509576996051024744577025271795774213553473511467575680157742535363346410501129210877999363249102451899882471745687785837819115779312254099254876188054699340557820300177390355914173494488901565003517876053034072921686128878350553693865663276743218677387517020439711675272906007115245468410905886511036524461713184264403137672427962612409920912188264354270165689231436827391534285370167734681913350512268773412912772222879134876445031839942341144828535235969963049906718630391496990546045362957333442791417177552699865097325786293071817495555063234152313580446643657261281606850757831240021113573904701802166962914276686494490301641269271802067242974474144971950897027895274460324955659421913109175729730964497042003940057204113684193663377846525798736532129461445108381222474504234191114944575900483930580157683007562311008020728370122454955957704672794977390062669114056657412612307411821921074752135690999935816694175544497702551070864927553464568349502783538099438641140159734362964475928031046806873353327027872344870790725392507082937990597781318543115646077164680202988795645741588121314425474669439617064743686035156474155913387723153236003818310626537157416821496219816824031164934462139166557673649838996853328044235627316242052661251112437663575989576800610741309356094613162102847997383547371578020185131008652711918134001653788736435159418405798238618801530111393806281211676031140424411416475192471495828111166483223400466905809405961106467164115215542283221217937329879546652694492823732488758883437133240939983832206269104340903532054816863622802335531695413006322325004297291110762108365383352510452013940456958936010537040749693671678468233389027781631769832496228314572024250747422456873823548077044495437598612977323660599279870710218525773741994840728053440933547504819799695904994863207081506139042372903148854817528270019296001147240442880180876743785713353262266928863611729008610587658438427874526072290498647825560492981070305111634920996283203890740309851242661902337534356429956721684548716179841272708931064699767625788622634066901926153876232731926929422199006054443475826431550968132747217475419777846379944760002201502484564177370207499348716474901680848319088004184287859139925673530012065440110377779419976558948788587504631441339802122375758289535750186928188922462128089202664208768985942900639867430051787179741186151530089836539688951858769042606135113787001007532874939744554438485593064422602670351823888974299812528510614080064819019466009339047777983594193741468912937458349756721545841114512032490184818629637683989237530629027778425970835894716411654331641324752806417927991600147474344201613528098926583439721185207093366125248817357859969958398959303794484408406256480628699565749224311725836535232500650579476781901495421095950050164790448137341552921728910704811428825194340259103541191976512961798018895566922930350527200785571388759707357332168293061916128603178215874676586344317937250229306573125157700038567927154951180043863141282345804708922273023721726949458297122773747627215808249839137261762121289079690649227686574577944844288320227091357381715664479408633979153065508286835905285292248033872632640400984367425064754832285974396852367257038077046236978749835119068019535714277788622282188461927469068963067056762758128933317156671854322012019657182690310941989062388535268118225837617588886462558780443516730854192801858261656990616904154055966762170847253335151440844107805141740761410673155542945655020825902067786219268786720294316942234031454646670704270673386386716506299115418068296296188739859613907410450718184521785505429034947541228980243761362132913131727750587220453651310766129089739176290436210667057788103804353515781987100884942817630226735122853189549885439190024564256799487020584824959658211592117532961002745243900506068581026641879818308079932410680311646974224861468278556951835223222289029325164688747384985866931403112992321528602144441636186937285403778069551554659413960061273933553131755673524551370363311267658249900566173160013514892406232225135823568934293124014250831617118063944019338730034106786868060785544055940398641138451559411181566642917433356121388461275361592099044261787804425482958850084666669105886286382563465125150878077165382451891252887833942205107063056238793623989564395441868159940989918722600296992916103747089330439003765787703707236849432260981345713878712866611103673594386210939914830574199690227386387585332632012198917083868367519007786417841909581394853561529045789131801668219208825342779431642776689873501824127013601474929313122234227429965572312216723272091209721455914148183896601047532550774528787860103127235813049310193327262579177686510347180858385276355699303678263665645801504450887903926845851808233579836415749806292590105827040350820595882774528272941803111793713177728326169327577599840763305666833598015264479049465094599383095891762243873482722369191157840994009195721865237588092456424482561259172300422014186115733814228972625569202412457167367087433778732652108265861235501482741507090898838008788866529273139683079776580335427845131503003030072372144620731991230114217569470767212353601635745874513130096009840539396801817137246422270937403123763820286790507776886031719335368957489110913837554040881306202764644066316111087133136301099651481324119771393939617921772182054742152752319665771181701690084261729159661136430117070268834889792586118035839782279741780029214300203271398837858619135808507699935129616500190462259503076905830694429683859115975300887048150568303022483482345597038940722890410405490584055659942177982778473648808005349935965121851453686467187572046870156397387027747017174438192512907664367013519706256844406625090313830177924433385568474946712191068944741438559148511968613660687911478718034182095805776286670042092905824526852687888702095598527519429638838618650140608960197238030407400563977726214771496729068468638130888107405200036376551309732563125568788186813742672833401860299280946835325367354527993556965854121835333434548853138145204460317196692026023600128316761492844124376238679483313590647338097025095408867530773430849746641577189216879435959265039796249441004991592271587081633032736677524779671772696302595505837011976236113304076266110001464760097331397443188736835393626394854419239565829426656806840006231887822505045856564872333383499135947643227926843009214144557395893852393301327641105966129555672058801878519597629429532681431005514006210497067745283114197497416370983954222195746222013088676823153140113288212123085899518587186096089000224818992328778323880035089420550226264542897277151048138679174328590813483223456616140584408776973311397155786690446618159275135725678314217540930618985858042476306883723224539348177237083620679153626063055639767223804133775441841713292952208504068635781000773575413783402777777586547107291642672422210317887523001102281297643163190381000210024197134600446825300893246452244132224076275262282041333145868513249209851612144459055370232084729272160283794656238778791631388333677787100573675600682120710716504357654601894076572616440809703076096926586807070793385636432778312771089042823672623949243421207322215148349195944967222300849787572584530314854228800183583751248113302516035890477955467271629077961240720039456817029944362482627491876714232167595284227894361981519885247073250230612071016005949993419132621841373874136552116582607562957538344332100008381016790601219053461977685327509458820697290601612383551935793553863779193625272413911508332193746759954139419711709704027835076884496454035635735370152709881894246179305510825623962627095767704232249435303958026488868758987613744458837959246798890956197605627142462564557155132529394777264044202145841756005461830519036142147097735985036168811059359231808954977866082611339641316046849199916925193846098444272744497764033884632635385624751542671472728758403829310608494868426979407878955114058946215055793616792444843685527543733674323417732002842590599322499926044244687658742947885250445343235135512552559938152300625863828849878821098059911381702454318749202614558187148953329158686232153024385126870379270905651539785395366487909671247780137928594366433453222180083901039688402212317713141499956298698712116060642705773649080583337726551315875875201784352978138983906347615438671702935079289832908084911467350554508913923405967441086369646021759439125987351315166199842617684931444716746312088994290889848183036198365918175101709308012323423153009894070189049826862254552472682459675189307029568820153373755170586472606613220471563392946447767659373080206115625420960209534102729002704943600609348635480819147828529666383341644605438293186908597225636424249057327131146497493017372654159402012136687819230009672175108366378454806064736813223159627036925838794449851931085579662338779983800062157310843837180292972577336053084146457502446301651559893228163171848814049678393795991396202701762096775072086024902321920761473753946101956200740960699847416036560738377958873722197252898576133249635079351870426223758046090862734401733814654000632337735641409725013014511864760537303212576622991630073628468498450881159212219641112399868213252869528187693651332796010293673915201500887292280531333808179214350499040839177524765136046737703556168333456039556142300980601526911202218328548614429063156152537677414012042181782526584895345446702602892506131365302504643523303848857606357542329267447898505794527471651029037071901879880667526146085442916378951226653536215782615117983559525066209951344729252155493724118992126799887463200064513743667204471671912978379803164578724443935306212611901978670288451003531319866451513249849746996482851024399694414656635584669506537158104773875829360315638036907587575056314913873038642025379816218960106980857481798459320854173306353148269518895677398191318599685554121444860923377340718818806504822886183852456203918329741065362108684196465963718206321725992698912639807233835944296404325376602732338371052656334793338769883531771502204719032568981665993105433801478059948118420093093347437288419388519445553699156288567083241073384077347755901032855728505401925144131553371269175135810152072973143666336018981981314798568138962686493933079423686645369918497953687791403382408199350801290402439263593722935771474356739790310208326374609558208793823118298071862478464387661495634489816492610594532368318540482023999663974300561650135784727277831845958310944730421224851731645578780132207484225684856148081579531064221837538995349008530888763787387214142181328545421177118844503465587653636860261425760975503907790551260922297835711212577800678277346681906267611362391339236337941802114963699114741012918975978637304775669338749066599834393448765169461661854010706624376347926563086010054132257479099101081263214587953252027565848922317623340026621983498058281945522587921649544842159280898757566497978988889502862848038819443965709326809102022271928464072108923414598544299657029506293099285488205537739345934508106046078487967101942468290899452542808856335518493328417797342627789214671451792903639388541078740922150966907294762072336648463179346223244042974532988172293797992806791784677827198409709392487374738614207950479427657507597134261097142322621564382741788411902523914242636810267167842631864489197556298724811705799923486740259754698511235281233141170762594682394735895902746999833436600304602126299107313873283572256608451332363052300324019530846041735854119703379594352445685199356922877741124304451717838619733814644999093827775890445552405491163995754431498173266545060274676077394897382285092352730070899103833860137149309223176916632956491990027994783461378029303166813917022397227493767804426236261232509866930954433273851842902771803089692448472668779231575720917329482869114039493836049116302233634116716946955611520343141531573525609443097755977443524853474979372477772917279012493310017267956575418975112843761242953251857935535202426382554013247997913523219341376560251730348760735520981114701658087525699876935673211240658485352268564440880172211086790927860197775289076377529593473545048322013534821034275026032743946032406063013877077251971150801828846124071205991439147658819086184411077651413277164238579002561436800975606359351471403558409533490469085445298824672902457288950919244235318788006946469032840437048788869257751306498496625815313854807578146991196019125176037388609000796720457183317124584885569392177951047638418499685785446199949185149609007634966480385967027098584258180737927990896652697147076864539632215569950843112557332747646098869238955255131891601071535786320663335871265118374248326329945510575555968831280782696710212693045947602260082792515373395852408367164261335581016829175851702397139932320197271284827721438584940258496731720376656794084273328290939791467396685130049609905571390271367834500665806743326744625934186687200578009062398568765541614761888710881609809750451457364344074328555576985176402516844256704024988893932978539782176065566772143762925845500185030821468646402582748197846054583129207557127426753045953248225345467077326002396273229900345498078174578706106449217811414302624161335616167358373287923265996589631395838983310445199603880790550621018158899458108204474130013544170249467375423851687882771616817881440277315737263480943595461972285451491697700051698069800411297026676879146015398280885889996397230477993078070684920712188336388709703331297883473046115892596221831991572190551011935969233265562523308655380780925782227085725008313966769201517928585057169884424211071737695746372605680352066256016310433376481129344307071290073214002239660965864905945455702882307304866336273947834526611967977187387238720832032834834941099179091765525617977137896688854583392119777179724579892582001048784040816383174052164788816430506691016812291893800349058903010566441216862988130585738249195824274894587994452875939034012835389700520172349468230158035295415080643389930350665876776338231455875773583327979447646199500835291859178736151906322610765124293724228162860770060227713505275484581630288532458850439147103317715697246371733180337294507957534029200000763328566589315152110617556973190151953032611531657020641406448851119178327688724972700577189401169358442043565794197325294473856319460164038327454950553925163116019196958320580473581781255500307042516715339518477353622293615942190614741142186933748361668993768927575078418616944384295369941245616827394338412246636933795485466899030739215573885479585161513246985805156379187807808827395926310152153029176175727047093243343994521771689689931107436505287247576956505040641077689520494714589156877760674850982758755340968075180761065378840010334539315426915488626585038525840210462435691187546756025140818168684090925999898651360190929744437585887052035067459561386742500794835241850394922592918087959049144537839395258704956331618583332667965604922628285717972944244847075133971647110435943668639168958602694164852975205852202601046017044795356311620659690138745804073830077277807534004588893949723356063172251505287431506566183800430465834228395099925721229761473656228150882026884303460692520859288103504561473779906273330834139339516994807676520816838233133411255467770998918385821345049956180290264410407708696966205573378555064769098231107657460259834944548580750730828459820100232024123147390790938749848480330959808734759579758171168366077008822494420474400790120573794859487191423091257055435029982224417364008371286679395684680776723627170828645768158877494215769364144098169600748922255368318592891055108329175749947236603962294824515882175397938257052934881563754949453234766188435061371837449050807598862123210648355005141029106163144103528242091185205473887862134821362964386425840547183862810917997268436540157292675695083287469762848948977695446683761075050524572515602296384966884146077996607760339044815870061229069752010482387014716708852822304075890448809181936142513930500183401526307501917008150387407576125031888377199148241268541728780514196140113576442496228550569852808366384229166991625817228629410449422801426638462564410276531079253208943303892499092140230878729981484537053896169810858246322181822969630447535545321057601588668335405084785535061337222655103741744369237680130002042197685634501645962356926301825629901928851937896519941638651093642918748775844483617738850562497889551775340011478524600539190591653833426526669855988216102042200540061455236425656168121704571829592877606353645922219212434427032274330817336172288136725079094296540910419429585168579995659679730120140489304781531907008959167810221244955623371677435912994459800280656073261285929969532472991337427215868648527138289883280562642462105128270550339804878442624267097045562540595386917485757143123676185916067482582537672726776387002773713953216238661023380620645460929525186737764752655703135971129043872473814283233021064102112330716091780973151065071960358261913335963074994719612245023557737757648683672596037246384323136439132382731026502514503948106566412485568692682730028083167294244401848041701770947061051548850804290851995332376387466633050344928956503649009184903997965386581856249345157551005390900925308493163943295608783647842961163580146813394282102121004020082458606887176183457665143269437879847897486611249507184151694000441390988952885632005046706144426226116613894657866201209295077791287201820521528229348298298469243764701799690036386891911885801588796285744577181190715992547688808079069026226544808946967263727581982159751254857495616208199549213786532007762559785197652660194553016175243788432802670461635468092304494605444813130959732133310050876901814092243656836195928178864510140823199896389245243449437390820902859928322441462326656185148746909400191142986993080779404396494197207680603489696522819013308850619802825400203288564762058360922539627734922148307330562588163786408129541967903849808281549360325388013923625531339967317282151421430027328619472273578313076919403639544444052740676383188604133271979468444008664266527659067489162529264553223381537009093300838467684458198484148668561500708825137388743795362932167367565426268553101553244068955904766442253678109121608767885765858186313537159372964523037420980898379657918579792137041943422941461012186629491068320951628115692463297827308447288494669504821599531623954754197883266508345839335900107291657293779961923226541451444102139098248624419822372794634877896398940800702389140092858264226711029945251094158494204018396017366878126711596053167883048953737887094239034951888224151789342943406675705387991302552497575054329392505463444949058499405789430316803635796250464681837636416505127785497702505841417809051214517164196390143595909800833902885215797942163580041738547311413888734866324536257807266819117231600964574963635036820302197487606956998850067751611459499372214463320353459597802027258827665003049206922255001293493199063507633226379559858517463313071034616717167554813582583778557470862241575616486386009442452209095961727393963980574313632432800658415943545947705895684474860209096271930260738050480031422285245225089221281209259354625169696889219743521490450854467205906016740699962186135619660014750010403365348553053230008367186630068673398155101521470256098979367525560623937071943541941198872817663086185716885488975436457757199731272289628617652526656373148351375865568894752449781046639231828570050168821650600810922801460018587737031010775262284550678633888927545550881090533004232552815975372143210952764378841111553721427559519100082182987607088092239957218382201273180799352930176207167694817023106939496683743662371066886555282463486960810536917405342412839958032193270760554640724772872204393569923999219716510635546823755771526831778836104717053456970586063111697188260459108661456377639911331524060122939358652331559199347422611230759338124646634274522668149059722332144625093402732142952722062722462809358948815136052207299388623178789666973651508912063302247320064826107104172606666941107357701734047445412591362374601143045221615038910324490866997797823122985989380237915941325697380855270398660916000246896384334862218069678867091274443799019906078909397292145239589909614107142988042216984915385883560189306046017853143963996050040269877954092220821635448360689610979506865672754837929510348153785059279225389390047865426487955143835634013085737300834631920469788333358624926588610901830898884910889381116973908681068399281282488747628123496382956033118026471261064478151984181019807203296892779988737558429611898170358993927052494370775253021501761263136378180190316370001521939961562839174869696142385843305307910244788826749310528961081114012718578746718645337421578114860640012140798841977113129004031647152189429524840879088823580208175651540893555756247635291247977213235944136704680546764016198324835529507697500631910172069581187995135696564190147922203883969126566442273726875541458581596462039172005608959391293313079619856061864982841208530068080853110207817776847453484836227015489047738161783200451154483906802083410639996374427822567265347759478112731108873564735781667984770913506376847111489233435212178058757392694626896049730218703179543458132000583499604623967240776984939241312371158194771747332780860647522190115965654101250752704302142326945410621175464836421978600664610523645254030737211093823413316618310221402539122661030533115803165457814895028437028963857549794066968893612599424640279433845563278258928919315647907565731278985886967474144287072662091138245319275947422104245338422271966427236667408429080478594360901398587038386924665032252155421820093698427280355852433083343584343982220829138660361229773186299081585734863452120950379620607413317018974091487811359858064815637303414573716394384380264293390651516659328151265223737508600506485278464921981639239313924441852329985874746720011470331314298421822346189591038226041255810667211068405510155707014754179669374230636877866967795301670487738126455458388228564039130895766560796221598314476448739900802323782665033596171093523848476752587027043308035115690853997185110819878286406777791928422626663257375716328917321728706766001730157044907607703199156173153934820928308541290862894873546183029691093661449883424204440689931657064591866251637366846190884245117652373494003047159160750657000553643307736809128842246196551090589811801816265073133155384757529941585728603160157012791662958204481543970132456846442454749399714242664260801129939077754014760342580053895639619099219053129649616761749613417115086288638719130243200947879122869470929297440242387170768153584770157648931635024614401372121291497476453610966047360043001213060538352349531785209910107095865157076398584521056802574165192582559199332919906936099368895455509315245879628407419107641597050168648443553427146101913026424239153704863795918395796725108423389599916094760502447890685348706612421947176429935368125744996254429441589006003360589817950939583530431600577806075724891213132962557271897926504336277903041677572958800140246497888154117159436182679400897703196096470606637179601150453960545263112860236284882134996237042646695993983880754264836790996241970271212862715649026763171758426989968890827152382286200639612759684400441822193891223899259367967970552950529282130585954597454725926386448388860679881226317673283288572605956844072918029520150756138497629564148314943651144443180522035552259053824766179624115579161072860796804117103959077806421960905451394144679433726384967630530048140494678283867211221375884588637488376069130045572538997976775175867054088494117033007781216667998562825513813979576492363535825483837856923653800024649295160752905858716078323208395394865107301592838161052185534011561680247966257467261011008097464299864672496909341202738075425627590139102824805970317842406602102798197432918148711078378033470114750676101022424835946959580036370237176805928457788858041624063233067583687681343176966352812759108084573095059600227311363742076442944815755227264109362442890021401363147511664689436481051831945410505864228685764460781517746506229809270632828084287799809880755570409150764129086124175945084645245469546746677088338876534141958931714016083662994776346625489873132510895958629600228147913766181048837576116702636608897732073810520324837693243544985528866812425882271156629099296320107154132773879032861596542756404346926513661756705102179022354999555063790160929943789380106373885600736893984925309958270007183719784056607549468768522141726882409832920549852567108628454603343169044657804344333487939950893096476641697887823776986502190105990815007693472104737921421119884594216652184642799991002812447595581963478403208778589690237254552734532897692251300852193674462965405582494750621673843910159420414589554964740727164685467410957940440994506003961007324493218242470047362524301197187920677363973568101457855780212606487540287210976697890559316846764185075127624486492407956816498196834740258272053186839840852044626327008648591923953287966826618493015538142123095740905924403121629928362568587355788147452845386290071214255990504246091138914648145304587670893249655145791738646898513364643050880871528738205133269625986426391129069368137357517989704047199294296996700874156734170232629585683191868156813503977165435927119835986190994633758088684629631144124904420663872131537643370421910520180142309675459801533447515869225534100168967828154439575949618623617772922417316172636096356782740268811941097537462184283444443074852076649644430563366278091729607561340363200509697383811083869649450852892820032504413139506448686019057207382526960999906387646597538843285334684628260799738636511058563480324474471726184294906924838213705040100355509014461136841311830345155537359319465671441144863659089544130829637940681595588228974953096908337185099521414310374209824636748612650194310572907069001560100546705092198220622380263272004772968163472811687604336453587445653596687198113190002418059436373528680731977916111508376008451238018431614120992880872374352720562319891362007575239428347803507517444732034871410804853774241083033203103441270832736607136028949930939262529903364114994780404870372708791397485890601927756781736267847288513101950975124419373007631802898816177611977318083015220300606230897552067601145121055511668501929588977671842598925424196525090853418177152809676807157778134721715915368263895771453464701101179761584184291645053976056719639570381852038608160938989215726154720336232055080985313061218979994671123312821512624367204636897941099832625330651981747749549654551763490662935383179619815222288352662615067109186156405763029687507807671073389033768967152143308870408436049542031485156455086318357871440807879105138377890436762799768278870558609801414454115852082759310864025702228198533975052393605688525821010949873027689324628945142009904715362361616709214602699275736645182131651811292650397536974661431664806615357970753560421883603876209015865487595096126260235608270195778583766904707706174807728638576142657559804280700498915950694653635800135974236893532344417092397908024186884065241533062880219717788664306560250872350804482534062263617082630562088344396324499195651009069278748769862005788523898414777280765611035079181842340385919649482252831263001750479310909233852347905146093243848960733716338072233065466343327260219763399526686078525805058038045204655404352887819910647730382595428818780657215892485310198770749254863246144197330028852353998349328663975358483803379252868484314451380159322736343383977501207598781116857373184770923876359514455203573552326359060117388657336406604148381193816985920336026669686341259342745990326722312070327084572819733006537997556426307749058791799207504662391409380727962725010096429896437283162321942227759079670857851103205927108884681868508822434012753232565012142156915272525133412501348845132808313648732916824920623868900103637182056620254073227031378454905462416188289581042441532101038615598921046963456208378778035866594806179407724721207448529232539938443214769822569937751639085277440711078320737910255574798505383373599497555252768709332807012475158435108611551215921322307889151171289098357661859767678575372759033444702974664176540500414816775383269723977409888227743772990398225907339504760598821438486064276888190672737214352206245812205651565962811178762621994980162406524088044729899550085400398361828285648381199270872958026416505820370102715406122427696575321059473173484297063807063767270224020843440754373120811872322593985134720004799192512782191652551491473081365514367306954391396710118042942786670824414863231012976897510992946316490978057552665113535625340045280998025447039091565163953930192718272176013071396767179651353532345420691122280325030766829387690893910607753352831068460752039668155128209511899463043096321924884981076970757474373672511340657937997636810552507943787646743090416876537418398334292951493001768107116304364054971087997299879331737803139474059073370604254935913282861754396817348483974802384899723981350983370912640836171793472681437158503292707492411607736729085572782026242818511450887848774953651692055691626315089138382503937384585730279312983916610067971051861850995366293898947275294869106151367736980698665103155630532102714141926089463331347760403633001319136365106379596332678277155088296026542999229655927941447625082091599689070340647176586408975886886283421460476320216735312852068758849402068551413546761457605692701089757663148608613166574225277116490559543093848746295562881789338046339223371885879057546827413091301202341023441096819403268462745712035768949438884025933242194448032751124531388916987411661733935982253593202072211881498266704230763771292642124415714842835762562653861566946225428905136966712281613386376160830883447674189143885844461475467766793122539646643206336922839888386314799624035918751019909344792687527176806805319625039018914300121147876701037941619129957088321923003436917658375729386719897973710773387340132446087129527238450956135787766710251412985202303257896840699409752386494965388165583115068523283505026893638218710371168631910913769107614348057819415653347863196202622218155444827648318548983760135097834117259207124239436191444551961436465419404346930090544858428004155876313159809010025789463785458064735142809579333829666280276079769064848001129339728939918330632924541641780080661905305987841983357988555164051966471801159828541915404654046161016394162575236383131693185751608032089458476551859597410033816463875061980892312035750067723267143182192096866793613395924060665785126073858664397489465326807554876509963508933750807138453966151237758329928416397663793069555502566230420682536596111248042372253626238032046987968327628938275621977629677717004652655546448106963421288489053291348633200288062762290606839354402113490176697970535983010473457582886621155056186336407324919773706738065415463078558786035473844090733674255654304604193819735291613603493591913124295981450908375471620348976281300713962069041258336629144053037894389664867330944691843759728224023843163540421097803071275386049714114518290148006930597476167081964390733951610435043039585395077262578390325285218995848327104992376395014091558046510888686598105597719790646083633523667982020786488862338481384908491522734963115412587466224751440154622824140461908316743649138511794257374718589842071127205548636175446610276244657153093029941748579973614652744379840884783904282225715149001841446807233932449301731488210024076763941368580140651738321393366479731779600829012411931504544255969372907476334660268753792770019776217960999920371632621588586424245867651120048478691170685384736015594455271612820070153557257715296832500606865828268810888339721246213477713680032558081152653175118436202786019699221826631544029412959815738482639936593908155244511754901173672267108856430865064050298459888612230838387478658773511788724301873863937304016763281691299641208611006076878244872097842054727509432642141765324432816272377305279726244695726492318327978095811223201168733431650594369933203174683281763665734706594177866696849310828309251941707356402703857978355858530631643742345383872796466476563782597828615740154808295123789585077959932194751745089924563524128524181274121199977765305916852866582512564549361407214146130583086140649927658883260340473905673195842306629431159595412368561998647057661163683109272539469990926356877588216102418878569291447668028912070467553138685832552571091612799989493630528421855268280883069224816849016385509122252393707907601317007886226826682856787334680668251695853538514352847323614169687111384310655030172858467236616568423497873453033816542043216331974793406937818797393464478613592980446965593000068712822768770232951429632277317096772345207163093872078601518647988405606714077173431468126298421845715106212957787991380365187610895036526109230485946219066413574150474063405010878088907747243888818861470322564683045506682569806272202095434484787388860534186667068219432615220745985240573622695159312810836389718632476468569329722921892082831509823718316341497148865536923653690396089008042741857734102127160551761486279279358723008283177627790862536767514086193315879457229908595403349951381542957336952917601049154303336259307307107791590890089707078551363004387180157157257894090911660575451852105124685584997987779450910639719699017972823137635141205310832160348297149457200879726446702347914681951706998018350331545808448703186934388862006888275374970116712462594267956086047805568905006265412774257039535667213550527138951131391770768480632078633856657540117756739022872840097009441263432849833552876023281561026753520601053461264815623664937340783439037448528087993450411554307511689656679641425278052157550426436179492904004618602435642974945824094935260637779931502931073125946822859159136687333473482115883664712142540700030647206493452169170399689595141960432311555443248732702090960949823824860053630294916332801895730261697050158821497859911760570386274440082228441620709235813525389251276819600404010917905990795181438288902146284309682493862650874726206503491841027644868117834581084303927363920415242567579241774162573421556405091037975255907202957121275356996415898374497118580894316681447047172254541194325584600491384736760217403906472102280610640016472937918955451343368788817574126838979077156671839280024934469402451236212264680946473211024926705394365851320441922624531651243452836715686879603178497469044472547483473326403837192173948627198770316277244639730469497737809358226815684924642081118900237786294122059330258681670726897006886246779133739098934255868757923288932533512011763108263879607821731238107821007903366426148064686044926928242513568665819781560919566665630651228197168723397452994431726114709605646327699397499106147973900698711717264561997531020519815198359760578302639501190988831274559656488558940674533171151430497301282753769683192541312923807815322201587444508124862874254271415628815743873857466562526467780270343902232063406196057365774618545816939787044577902092775803366902298612180669573396456426372604361575231169487675195051485014310769799525244794134923773853263619283050005152754735097592096361165973790927432724388259405282655705001874658248773985696455514450987121253386694995151479131497444112773264115552800655479660234960175737709474150463142399209379808873445882705437026648712932458801106810760604812137059257947026512700565724323485123097418576849490601314604455048430590907066298213872480474972471038141154901059981904115540449511948040195455819929306438502209950396615175509917924751341639976294952202475983709982964361952517931020342405928597081118114611977742258820485372929465120696409672648569707648425728028725713034982656557474496671564456072639028377907959363373505732004258189775421755131721595397931836529518326376756278652442240295560371220455665965134011624638626190285454038377475379702120321605398175202783849012182773470314761778316945330773159825989659321635699955368050861746394899142070516044758864038287738796519327608389530400747724813570864258608987475846200378198992687377851656102668028223493441929800957037500167349354223875048511248748489947446968069608952532484617626893890509475088948810136029578370448253676377453594129088619140724505928417156997469366657111586187887912368522646265029408986057736892436743097507905699460109382045206333329766380970681530947712845083790228777926479348627196427113097856078763560021261403551186065617373080055874048538770175325477530585757250517203163403658957393118997943920498401237475537729145522339626475738305788908023359959394405110842101759938599289556999905059619458758373515349105250811840216378125514551035223333089734611494712505635751055276097039432410783670407407647367166278736172463503110609750050008968788340372005518923680632827434892997334642150362933526899087314249848588175706871778250638987623156175774691218108790503757257603049678769123509455854189102194220334379509912563780281701271170220882132867174868904715161719402417023128377299589796994869245118676931336269954416183835755462729249598450939459136620981239192574980659089778513593717556092152554583738638202896779421589863833054456853650159598577863895850106535127924493927926985802332191281622094983363426217446690898138836235661006348799032830280876106795634482219462589053556850137094674144746537460999678768545129367554221460912437844829268134924162809891131362022246283758916557852693318406591289562968670450594550318390342641275069460064470082774030161146643223804463127032009351580112934852357882247291649884088415838802812635225688829950998973270738722805045226594273945758543565462286901845796680880830631198765849863956058346302935463140040998939322855211427173718275344807966566585529246945273168702566228480143340858935200338109586403429068094103935565679816009332799731140202175217051729001649660802760020872810193762388614145507835987469911015722245233059564856284703144248435601158199870600042778258520242922110879695064959045735712737370257414692065209740649413938260825445098715339888082708922012507597470587990941373686395482852727296748807148271476639502694365172744774091582380716572931782916004771027265167905644361423062727184471226663781635627257891285982415631033241963103672250270517637930463912326250878641549084819815984022236222218172764901199471168423833714926175518630149088923891642758985212751071559940653446667924429066515626136470032128374774943214744680942707437658023659658656389672600523270818274801891871729583492063749460305306020270295688702063631628034608665603144733763638110825419672858369131378868373668764214521807777990170698058266697560876843845452316425385646325444816670375682760487283435841246754429491827263616774320055960279943445759687699581544637808004653604350026833644356223268004339091502078789223922781314872454992051051113227058680254587871972736428377013379474195388160205851205972194353796028590038757697802857881152260214096880028851926741034210121881048298227451551405560777407355539568272929602487984453769816659213440465330276329320086344075017201559261779784667874426498408693434837237558928994183164028234449662709956864545835735105058386094109464997620713625551988485690101874876822155170318004318166977032803809562975486493781666672648777832603023283423923874588175405548996665865917231833764763240946055988639705143204306317889391931749193099275894888609821155560148481634850765332154706913356836037592203939895273135009873999310355371190113721734203193279778804541980520965210296177770033876340468371011600509053998987955324543893629625479784655588326835595530073836687192621035038847934454129341169867491927874200414758524375990660571186832346730840658283545622679862884461420147205728248864045059364203223698771483467930657844558514890861844620086706304239061998044022023235035730417932667227158410300443794613563717128278552856378716048725333330606134856736657692563383562291002589634878257755380823027931803944692993323826174498324749387797094029778803843603443223436098268781357068163896115841105201003008194788344079554807793915465383737859895011943836087751058725930522361831830752195523377418487902639231778281397811589543616173960899699395637222632868930976208879546998452450190315645190370115613180319118305991686197384330790641535951593883694870292373167139182088912712747523530880886682338756496852340438621615830752899816330336304160304331996487589082626116497527659225482949264486868192475241379336221289008021162346805397510126319337806417261048885849616508285627715836295083076180366993379204652573111529644183251740965336789076802824827353034036864407681781849853912201855588052048882564510344272673228691294956973916469438208973293666175581400354938097452175955699671634302498724498378629102061652081064463468996317480642402788717089460590751506627839752654831630469613886917317236934735365186278117393238356239632230728448454897495011282057391976070234787684156376161539271256680455449044299676354792956208589065090034392824102242022843571927398507731373203058782298918601733767078316222714447114173751934276433422834212928375818979226464257491535089161482227206002999321248380995789268003861215565583314605035074548707382542308786107755140457412549450045115296171737759127199359082370100325279766449562272250330955478072597757191273235563115072506153100661328796820094818306370802769647841983608051953281836158026797293766837243191201073788684648174753068138756328409771188453213408643637730415620873260986746104158050930497465928732351157972498225646755868641573266481535369115032159499205311705123876184187048404162996607285995245468859246520117821066207803629747126921373377804165115028352373743027949838457530616048654440937849882919380271485802488350266061396509175439815626766607339497975737247514812569722228873027423118323923856252004051297732460007137475999952765382632597926512926361719237672978233980802890493592593948106726622647841392334834394485541393425355886929634145848077944775644717571389077608638381570309558271790508695141320804536926878980545527560988268423077022844087367037158423004537189867319930750077702975620322378965175866081063820560429611457269627730131950195989958280279954684515019318060189477144499793136607973786170735204801713219239503692023216054377914143783231984393719909816702100636181287400396401924687168353574937880014867460554958296326697028010486740020979647993764344780750345096186625375775464780456276783635280952578469563879115591903130860414283659688092177630669320196099930023760186907447039887916144229256365097859575085188487522935198470411728430757482495473515824040538221024841469865370392567295717270402464961049758134853840010319869123055044772280281448406460582161603143724491170188696434149965803343035451612731316269757380961304923800500676557994202409399935261764982441946274070768909174150800533323930710926841275655361520465389647174013828365324224326936914022421609249348143972601194828711006617089880233210875234827646609878401673278293647639508869055770633145584620679373696637745820398674039337384407899850058839933890599795076389454964429813207977572592562329273641673827028078091016521396779238247059841115873663023270289008250669471437911412057841084412222332924635133007575401643367855051427716371415514518741194691762968510235607045215912055516685176435646000275388709475817907470498913728479260429275135372967336348066321528943399772827676289841124768385946178635486486638103154496787453709295357175296026874695252661162677932829875795464866675156331331516820482662340681630363994221897455038606020743383157727467947366248855823240807358328923700817848130739708787306792723845242847229034470356389539468544494186320289265358212073278074439139153683659145580710721981408247709493709768838869615760179619837974681426696402266710352112850478265548977543704325783257753041518557659308554750214437399879271028193921648275836164505458569941274283822975637397083314728973752522560558657795799173571209212772010146802921781588480268478215042860676533245709939316901447917522146900052355128554542205323226930788750750091823691686752394527433608065434828461793552077585801352744471397434369692255231901551512061517470053168673142717431931690913335484019890400596233615467318898223020961089394702047779516096824052583071369594232895475812868769204187736344290554768715525326644170742061390343682285563158437009411540932806235300805419316311786629229076100733330495054836923271565011217934169442221180546705777573168904470664087510905087350370125859328722300649968595855715930785057944564233962816226927557969495918044985435875269079431994529900442190758630749710039159097422408662068253379183731295649352431811843559802389428842737810815242125821731388455813208026564520151358457687407210453582886025738414197421153867404253302791256208731052150416079826346447202752553076667431338305801114068148791875772011167828323801291595611479637529657285505235775799869983111238945781940122805166453189573528191679045080855852693685033898353470363973371914609332935102425794103378025324290983025779649279610476338599700360321763748972961393258368329482686435903302406449263891013160864670064628334178774748088335785951215459084147932411222988497745937467955033191667426740288748629096450872893053918430172100146711473874292255107874899764146042560396546703205135867631314277166994889751595317014604232841730428389905405340207140594271090668791171652202367147004819043029949131138022743964898078940373869262028642627074216820188090794542488879853075251049975971220400128328940665104304793520409038325392628284493292845230804348931620401554531224901232829466814508116323749033755032829651213092474389844599801382489098141641609756458498065059320862562285649855544221658116403097821844736755189910277063757581626516591240782518232486467326761379039002883425876426096259479600827785326939636195064071855197671674289762785841513232332416792176360630027913984344554131682974785690506059100429483759676031157659454308457463329343412420783153424853075870995161093623305918112060840625886707691635450881897165527943276192099103332765109111031104817238512283448162439237075428650180436375282397059751661129486577702710502004023787001874649977283067581903125534811672420640478164747530322583506669914003455796822239972638129428237697641995549846324179806703437705763071835972920042466699597056334414639673829351065964049463100417835616171862390025076208990841221306715652969689772653039305371980603950855330437282191941197455238998753121303830642197787496555318053192567476092438401021305221643759978496481821985732156774004306012332978832618548998611827791037096554531635292095620418076083479000786619829906752501282092570268124306491523292838879722191865062201776387706464675208718038267086328837053114096516908869567646671419489235475185853752193947339415279571597280102082807633299722388322410259273643912800860216558664192750873638238528017157780251674058858083364583086104954894746926079112761445845605239700075089505811933980525199046835868341157115936946729449415896576658197662453534832695814069943455205055776833517782639884020723473925726475773546329273720676038813171868039131180048394198712139367861173472447432900226903125515246313801811485355012613830989340011945887726753444993083627752652784044785396440202185408247823192129123301902030830705224165000959881165527882017763273915978210602983785450441940710062494978695649830577680208878931077586544159384852222078981245924146493243704318375950640304759403261003935136303257868410254657232471245338283818031126660507602597423481075570663553506268271549712038211845295593094238789460247004570577111035332068244283843395435579485927726163595462210085432278543641660745331552166115266184217639233056074177773256436230409764333819739868394628174034277075123177904228362188783912105796479338823436781908498408801876096169818582310934445983206605100893142898001201387007453007618318189702832173246392822450123985924555268516183824721976275647412577584180777113805647456432384728971592657036789922005255621391804557842766691775905653976910672387559438992923539955830089959929657651732289957523824341383153771275482611323170192297082162809142417837492251766315509647437710277495191100583209580258804519299542633425037393244159566121359304552126823362045768355026403886677747023129533055682893940222496439368664271108975857983937691107955374445920665788927503935479187363004494094611545351186962179899850943749926042796204647490619733848613349055048423372778068373112381095792857338300213395477796675999894275208632999517792473279147075649350884793339463118864314354714332275582465019860900949163101136003232130341376120692536821216336022046230060806554628840702791570898520282887403872965340951879745641844672227971630531666967493799663311510807371014503451735348195853550223430289340942882035931356116394352273436709180515730762722405174983846903056548468693372173698413970555003638016245182590112315982341180802425881904307363809571050893018239550007304635655764047084348593831495003703945973400272280040792544253387751275880009221377110042731632029578347282586153619962206145114756810556146305866870043897465099050019864466994199279391256709070105008845522015851509238214652828763006795514042065897229684251428436874969588402042688996746321315646206873209350226432429361741366314670750757621577579384396996932078910641581576812577646506639567291677527571096866217205326227567086237748414367409250265931043330454374774139061916695937665511718951631383347378261068385674431624321544113468819680529551610500044504571341273206244992173494585462379023686485166579417682804378103303358365179978573293729726942857474035551051073422710619716543767694410949185883947889790581036393004214528351351004437222223233874700235129238751791692459146539350212146505691761753034251051749503681129486315472227537327046590305907378731340351941430551950549257961807540081946958050092668503966178001263565359827393098305152232747884721502118338243379591395724055816091435381615658401251820653002814143767132310753814105494443581824013831416753785191061935273681078052992763016782053590448567556811444637654648322882560489241918903932871427219218783709689551066688443650747731941518429729995538317628080914805972638522494704008761590526181022248945615865015348577307311962113512235739915968253382077652845734244817277577103393815025919318468059439591151633436757903645335888046504369528240510698198315820676645353743030339347701633231053582819074418853684832427085015745777020920337904909980005472928410955946711032728132715088282494197166373292773559032614129244952694991673679142191230654979484563413842886744016952477840421765029292739303132840395562084626013866848216149398506734204233332356835011958156807332141235595093504866326957280456840876239512001734167597958643917168740013925724367164486054482933543084604310615093488416455440670107449887429161959972782007192841193257138558109070539213949719254213832525043350088920295122047845558977760197580354712679403386031611295557622128152818811727745277967232841098061875628748921111231758052125707903668420113841060156566976279894016068570430391062616517957525411713874930667772890307530136844784258962024706860764884481015242049778640651979353980264723912274223016902147904160780654980382681959749760356508617238906753002432464909522936398780075329572907670615800481037896486358184923385853788785573448134490882287751346616580506924240587705922453098311334203187805346718011416794214425561044093958145878847100146517025442650943385009263869044725961662507302978447912811189477004331421176090657878214166073259840972534600932118255017558632584008680374069807354865746825832673384015224780319989461886163391915924203379919410187577403351844678320162015644484139965328061768358983880640826607336361913710168642173841422502585159031190108779854557223653587173039400390135830682788496837523586052204787605024980948077835996537392545484984694522139072720573783057702629358442727222534593216402642661292141972723708749623707627362942707859922685927702949917387126209981528011084990008401598588820988964364027413414786062861336613900807085350336704639108706113256007033101430864453637102329501349287662167085678157826366356513850225470389371930498954966542931337924663808709239642941386011731105862224925377267592513223152506207147971851728849337483121204698207609659930738722899474453071789557633918790347119333234400804007181193983723972507773192767834100509105724250526407273134492560159058300433994674659793733623548113342235137218846204968130182742260902557031627053657632087339252162241410970443136268203529388257285680020761167085378749770971585673877301994330422349932407388723753860196829815916735701337613895055105059432887762225131573186312779148467645489155837415341708746726530403657658088558841969689146348688564169318443276138076327405637243084317810004303116902847578669103997521224653590943013334236888405436343381224768334877365544691015440733038408476929641515459470816869010491742661542574711562583624798155602642925082489550126941478777508295211586592256418811587470205277374685836508565094920065484261123774507912289459368310738105051745764140869171864382448649685818011832428080816889550437972393022115473796054858242641032292750572640312062952161167248991073925619715068255788855054150400759633741299607359289243228492824310109049916271849112918920178143764807660132462712386072287681278322054535280396687275428998524144745829288343912923427966135891645233961918485026824425168588531897832638627506441103375896889189028393945793724396041032264824880665263712899854006947914367842165360638591347067818083965470156531517121809380484734409730567244972595291731994502024431662873379977597991797045201072392952622954475517568411556230985914227149957916049602079613603581284699058022684910847856366830203009882572075395513841106093594041714994369396551430750715645280344208888899961197163112825214251166989611528647909283906534060168957787425842447021599672616516914128787010755763676035073205363490366447081185936238039442089883442320435734966382674283904237826954923970112373719502233908840421480987654048956553364821305683663035968772891056000273190759580842416913426264636484757440038735919497278440090317028377412814609651413583969016271250233108267515808260145998287373815116637473555239691336605426100707723967909496261987472645157088071798147301524643116296435272443844984440347528298416495803705380400941472766676135597741988435353223163350857743101219650938824129992647091880194698751736952855760226019599022600715720432299745003997593502435540374483986675496390042231268213689344947132078778354591674399798781077972536483849549817313583556591463074277055238573122531457093568216095937545525027270736682861019185598934329126223616962931206816383855344498681545172572350029311485433064450907338872027391314968378178452967857084951026471437525596123191194570777143215301649863756359931102514099675844597191319541529773807004176687799196007023248448974538201902146985143061153630790616169082081295838586383827733226308162366013498036568462535024516106363337202946292759310971103255732772664062459464666179697289012198896421963449257621458914050596072519880284065590914849780533114504561156544587310924936490433756788782237323688581986238195985305046903318830230207235876884434813433672650905599919495412850857010937259191097126548738017280435280102757016257620086292539128778627920374291418051548726829145970325382824071195740635902805092585667928181971583649516305537327962033169214133783951000581328717353659001437823508904902582063149242840977457008018238489104730713757153068287894695077488173710203747298675138409175737715859512488234702072748760682997850699844319759568022107076325573020113848802187463283881159015302846149038606343232003443324869119386060418579422829829665633506126887695440064502397209947477220803283687542917938679467248224216225173031334246600726066324051988659683817472585160153598029247739809995764143499021056055836667660254433871085060841650911805887615363848967738959666109522621002475419997542923791748371434381224949274123277980633954990286950009668145403036297842274402015842775240591675340560265497288253244149700546289143259771277274415426523698691104985270795338778611112912241129221989815004733472353096761282270409919493812477009410558560050167491483926224349341414369239561167209375141816123643990430262569781921225106054028878265865535925591161385440486233060048408844235254083289148092388528321517978755930390665425276957048720527092482973446809540463856363017881809796050503807167112671544388159980303489620937228601091172022456815017518762407984832821041654057602860690139886125322491025475451252954604361743519046074078327654982645921570029822568758244975675408245297767321323532992687407130674077318366705526856686359092268895446271091005773736706342736664507419920349967936383563043387604685904183178804032860735871701620173182632044278467192594465602012584714791979836752531848823145747568469514572311529342369998490940677801351684631664704672879396634093401045429806328424299681188564999859759239944039545054904381204959511623505551355852365346407239364830882720917708290534730502573567831023089484602662537491966606796877881849345922490942330256528664379619214257642471400891240796879560012236738690550106730908723043072500195046775077034594986520119225483706928593033778234433720145897263304600634937759054694916094410809511799993088902305486690702394234969832200674098517920831442675102811594968912292571380812284541844866701198444019396477900532225309843140827461491577621051311783032143988618834373758845353870598378931769253695681462611656885744386532357379894119607601573387249707677624578693419103110023280880980544789615282085044612479252981272480746562953512425992470662261295552402736815626657284519911189504001139619085994911944946740589566066039740144234538750130097456864116525155193706740308290088204435525915374640551063654263623151056378835531362337642933713897771767366502335814352926987115418536521536571121129379365251088639523521915455952588385632526563266211552604490110102041391032028225920769410465889272710355638785508587220811583529010607047116922983340465505712775239731340353305216224577651998665257466184087565404240054317702834522026801080989987704629621708165422508205858761155305455453314895383122065164255010895088101279764025148535542909267749849153372152206888323080199929919612592714182656370265001000970732457570257797394332453345529510852357312350436458385109041748890891154427272030605775994947377306123731874411720843642585567747395321616828205491833430213585926392684941600298694338674463430926818850991318561466280140430823707198943813302448914708275167161089030907778605808555298306861592992243293192910385770164585503790292679314109080799527963345648033075620298604051289219142081111821544069931267926962105862111132598933965224822255595486686935060680917673303036180835946407624318577288012390172769964358184363858740101838412926945863005453771215059932797829057808007270321010012693537628552287774735042728792010547468943867958959463801711248798757807012592556200754223976837824092576586842932821393064304406868301263169253481863894561254096434139888187713136483083616909365190930277598997978965167960698961553021171015326110119358884821906722371248124552036717430665645525415475483132390218426949572237598950060108504857523060428673832736156124141378146832709267162491996536408702671953901707952172477339958023495582076209323157316691030734185107880224360454561724402863790701210002519287698913017279034945505173245182397547820307117182253165676417680714675195624378557179217538758067678056345312309880284014855706490013773346849962597036028188148520653470135206535903563441805894717440865960567534074661758851869485264065624824009979242612157685256007870449626073667285199174256080409109799989153520285829335521896818710029240891825077188961950392348891263704682287340101918923372173671798509271288423699933552285186461265627194386804067715032934590097998527530330125662244000205251052626502577919708150239923049798323525665626707510147062309660679109575275175819963536398948367006828762182111974386624195184185294160628618681215729356401448740772335450236689089800412579931839858453528264953973690441313262354088670537427912472583424970460176291735095932846285550918058477347675857136493448408238058144601487443141671365499501610177728540858505061088519117792311954407969745782015975596711091137089670031331393915054560745224978081642920523515429249958290905390922132456991959732251647069359085937738702209028693563388436489456699158537370959820384776276043722032115073574510529790799948764672110373760869367740857133769775681459656366976029970260087087800573128799019188600534221134122211218576866536665446934472370910102153473250487691150125586229782491600236952375187152817444560402676051447320588022770604468977295106698553280005861528689663453196209141813620001730912668239437853633333415351329512591738012859534180899743231822120927638312893416800933593837076000424279199065806275932378114557758324699329454751682864322693818171158535717598448464367235009190196277672353550946110830051177185003366994063190436037423435419155117789364494558537044273817458853781528289089334595169592701897649843264395816967569710568018727241940351516637960382342656062433483366045191283083751968712911162918073189483880776972648397949566944386649231792681965373266391248032675079483409217740981669372639120789669188334708327798105488224715268665453482690578959258884986736225475686984035987494382589304304004908675693866735620464609798268643563540550308029899373142592131960438034758754878122636950384885408659116505043239144392080353517570635330453886560307002760960331690301548627694309077953417789994746774032176431752950652523360016779716788932633301718586624887402579554118348430611412227219304307139146924403109205632156492636462707529310300998631621940259199560973171256867349882941320149728621629550590815251559658477630054126938789082910214494659002002403281546739954347026810434200130126290222129974681583645574671649514761012164915842406893808973363586514266275148116121928079130518635672271295189155927886934285358660756872113041280443892614512109433395491416907998638804364793132032084986416524628951224141415296798437224338624085249620913792155418240247867981103616789143317824354719350624508044548243861426045486980033491459877914764423012103575229288416317204000789857261676420002775589621476298864585839574475824219214790022554939154590262409483608467950768587717648162355527273885965655172284202531261581322198851385972753460836499984688206016582635979038358196063364078245490410972404462441636101212026629811934225324370709266085669660079531232804421261240970196408864015355241980861807539191598058026902995439015420506776019573313163203308148284444285795754059496415280092319263311494418880221397939156112338927914612384509775146121801420616400796908945799009714490341375000293745132982509015849377273929781556931320626738302526487584251536464776308117321598143162082061039608595156750916538757049071850853263260042640739894635877859233353785180921700379506358091540707037211080536022393437391800905065960613905975945978188659305831809092059975766366295826911100821153221475167441934733286334355202738564725909146834641372676345681421554497476925169618295257755111318822994492621517691370729030443540584689080258074963694993071496336769456355989976512675153698825601124441078271646208942482872190696818338870414090561038085008278340760157478016403163481684360566137387699550227996718839193418717632940241810905664288699415703837612223161681175146113004248629954730869981022007300079939841069164189685931775918956737024903734678330272941554595878060491096822033126436779880423864517326867951330955685181487603768256987954803226600367749799856791448100181565541390952563680478981658194382736157309594256921153041404504215885543142134050565865666234587324666936264955734295715954092265241116734934328308229540840327775029615637415183182702987262102599203813962453785128245150537372520973822738344401115028679223219096004282941281948529365439285030159940389825853874402158409086980572734217336673546571598949205128975209345301625075803144041259225630245168445269343826201122209631482783635768427574191216232621044679402471012195368613705488219237203509411694465895961128921100265203522113409715505190177937603500873709618237024834128842123533487313000666588165108634570530124111913225728274694781871181854247781107785205675874003337367082039471287668352672173776797516132047802169978576433566646499868917125535885762164162607545098214980250612801972414846474758597530367985205734701834973087131073767190851757730803854827732486691073876128497938400984670054830871431952213064403439512182913806121446879769775154101863881160997948386409633770182610930096655306215708788755134602778807341947923821829121688960309320703149905860848869840123202391485236464038522336138034490444068390808359139701233884533719664859633587667491046550445335829345687196616011212272874093692807310724142126400735143725500638140028477969466147560689830595961088522642596629204292996212504237630987825394641238838662494504699573088704698893873358777454710809542525627806736748463481139445284908493684034832888464824592047571696622172709933611448529354529598004940671509231595885364788876011677704118107985927323899469012675197392611162076288045297841546408802500642742186273909286081387185028192309281702813070453426882971951281099572162906709788270196952136380516526655718529785065675943759256527520382932760810341531073005321883111049218118271217130473347823292101723716370511886340047748818156318836001181216549970043448451026241680165857635751832300347132378237676560212463208320000419084076421448081756543609861986367869670118763576269417612748314979040415042925028956198214520173182508100006084658299077834131230546016167749904244640345794584792976892313861299830540377232329222901856819381541944357038234253714214706600641243440577009888430422806325551276326384862916610465987573951237595856710177932410877523151584684225134590168132520919958671727159302550146924360732750825477655014990172301750446588116921596933753608405782830314390537034815804592903290283300112299244000142756171022297087040176492469817978447773109727637252486510720624123064096797812363816125953891511704900377675508282346468405919666615828060356875635418194687705393741199996009413393411446555737011840068113669822776294924127077347177989876172956029495688171458548557157112671811744612714138494899520778566949433849013655676738617837212267784099779236290217090173370377433230550394205276062972045052901293375747315274170925164349589315849968003823472437896888653369507666725804877921305979219164668973535228340736624507411055051710453110293735463709755245012974791256512363561500069621944131357163578368767389641451042786276919924443591238244317302555647341311084484148748913915242257044958100846328085484021117495597840064244321038442098348994906997932133117371632775941672532828575677354922602200874149754281652178927045269402241003018608204359812013582377972442724746834504288190370729083814195945570011713876845334270677610583203359727142797757322910251723101407961948430092451767055231057106415329198996609976574360544857168913148929172490325457440060100924499972964984335576801006396707944593925248696839347022285012985385805144641955589620046766329394120439957073566184479808522721546242935103680638901178419702321499496370196933161146115336622390380093543688856980071943325286932789046586202543755117451782501772530715150179474202923442090440236214413302846001053053514793320283253410574791870745206246089732541552459647374652596071901143297267655689467216345073900584130741888058861104316889589339909046086038266826903038400994425896385416586435504555710701749479224764972454246331645826922927327875081424619853791515887287791516876236877520142228445278698951547685865944120903940469318980968800138368775445750466119393778669705208245912225687036584215913390020760817905295997241866235466168850755692622868458425229126636447197681748970746972788883834986786391376727981825361415709234763599056545962638126512015630405225199493937499191806316380862588968795386092293376761118958975080849915314822519488721141597458075007868291380620821406405343766972920076607108882794334555778589515539331805974386715519303440457788090938356209701062258981699999197515682303022800784224416950434995202375373938747280586604879371117451714044377398407975870762014670218488558463237741544889754738795308670518631879814319938730123494969519625027620962198949699650336955211414263603368301639595131179448251815755081715480275262954360013070057682112361479485579173378425356136931505021631971854789908567897440811953484865216412643267030833463370992236218790144150421814122992549961637422135895818545679634638464981538436758726267323900873065411658530404543766104744761311512714047885051706914910590595133040672324078266316641051486313337509456107127952586354537501036256319254132112080220657997728388844114247331320162752524319083598256463474423546267143349511214348630374008752617448562362357980439747052231109876431662348105760419441691661388666802145396629584944782580450095158912740615866346631140909794871104865593955993990382348227132440414973318436473863214624046816584942621935667987252690752010815382381644195685888957932278016327171044255531776350933719329808291391506270055993963477141807174265666836211049537428319603365814128901474435744624155378288072442462631409286948044868216648710706729470059930016031692007960894826059736994656742034511756377728817870202155928963831680395517378795047715768906508413795723174418461719690868298029299171872439443095526051828578920252336449593019013351816763757239693961517567023072372419551965125470613252899477138408596415842310115103247387412853228140075780918578557266344530280754138083022415652062040535692037782821408428172157963928063240878535879237946563223072805794133468914209265366196335699907344255086203581176161302461806514915027514387483839506053342042225529261186186081385972096860835075964787658854645983125311076797214867482078234634386807254490253761349694026436496931078103645728974506898976943930849770532731689702400955055215115745634380110953826747511698942072284499726249188135300593788218965665714171444333683653527417160753845990945432035674010891682247018067845449049444465838145442198068492514482608111225945149637822967221943948945325020338141230156309971217339752844228957353698877740188606867856450964648090341026438641229441335360704928283829061602910090061123070790737204914671532190228959269217546517952918466245036439862923569498800958933522128754411212537375585084117638813088952200534369312385446253979176137674016073192166500557217241576452841561415818155178321470612328076886117434568966630870308313243401103047610144948636012596562803638320622709191967585469934493196151768348217892127221672016347237463303126389504234997634733285076429907917093825364511124656494535110196341246402769595065485905715845953094662446861173512483347009330489549042293486064903472345344732719142349441221556221930992192724163673109351015324115246252611907383450020152993495179230419115736197056515405464811405068239168620337954767473846577313891198209780646973789833047560419764179091540427968432030719860035049437453961442362528403764822287209673775380076041389179374546772069509468686236721877072323336267278603838206251429825619532654633381306024801577474749285567625485683681529983907977587514684385027249611504132248434424409618232725832336940668116116687203976330625815978716750145756292520393398170546555567143416083803087699336035164599197580823596796363086406778244024293247503010223347767059028605012702259173018163619430107959438870400032218262208967102555015100769653408640992916656003400751168296085835900891054006871558549424024923250887583141789971406857743395731628102634929171758806505773586514354841740257598362599473977606293896389453227827097785810499882527052253974303473299693243160095407387002685131474214744003360878680766563011576862257515678778225855500158428438792206412864695815043218774679695708540009486121973137015964008140866498307638341510216373815132658992352794906891094500161552158210797794490876789939054088886374731538668063331432128041551876249304858543910797441685692499138016479567072065245412220752455229553772132647906579643315271063565774797733012926786764249150785740802301034476522214427934727526826259230952292094818729299914098076131114503281387059599025091559511823082749460209105305807475784398269062080825353270613295577136184514186527972170046855462628520595624862955527357775373544600561990924633299257576021084408177804165441871140850278159740775187478041563993758320454425869722240929076657447427977484356755946615955723009467784101487812838750804076753388208849081991138162359952737010173355168309346384247494069808161012243194704029697910593309703457748700388704075509375465587286744076635891603202791130002857184426467216543099722825943729711195939586918348873865024895973049139897170109933406040424788792852558889817936761937753185354781952311797514879046067933074190454488673223613620374187621030057598302330944585951171017939906851719811541415691517800747577505686433820803783389080831667252071083976440277231794583339781530279744740650349158991896626977959964575692420421649747630654834385501108197921834948659795753079889971965152598707005621744322006864031643521518398261333336919998521011518412363658322769215415658110548574770168266657982625468084853930080178531444913977438683921696943793063178712266387203439550708281843814729719108603242048253697716502464446662196915269239891087866622084565501350630968951969820090991329477876340769441948202223167554975630940834724362000517128543502804623121930384240150841562054947732108051056711038191550178814532886409297213480027710804117676259083548870133014666977705812716867227165336466812348168447056001728607100690825071238158610462306447730916049929684002919495460596768841977253983562864089002907634752792508105529712420092948272170468386454621443222669043491169289098911581834524183764501339705820563797394605201714382823006385264165746123306891024476857697669909769096304468929321756715564312311100772012029571827077545066374486962533577199940906833763039516347776203610201909957931054691758598477215536555564025792106446488134211429132192244977209908466391733013060698523137140706365465126662183247851240118752055129011055884957427336472672783616040825123585783012026951946369271733104424146097417441345206187888563882258104118669779043097728049122065952267044560219409959608429391851999632579712977686028939175106215739408271622134683993619462121192851454307117287345601347716325513389534937380443917215438014097545518071717443021866067544817184730171638058838837660682691406168080246605931394217792408273906751475121915398675115738707516510693285878010691940299885604930368229062202399209255688962012596918504561141715687931395507041096141194426283463393056279803487080820473020686480039388752045613859246302411590543734391200376083254742506140968154964660579297046609076749164570348167672487004455138910873602726837097926357893617849986112603725564801158938604429818364730256145645207971629867119303704955192851982494931840499847440126723674233750188609339207949902451102148841924468605137772141034462885667249418285781744043244776837498248884431314318757479341578295275851000898725071080725876620229686257448611824027454342656519690803405645915530489231549269646410846420674890574806687529471069341283630505269530945315784927988664640256188964951088432552720019463047240927953933284055710324188016635453805015497105544753481110572560769872561121248908709554476658864521525402003733115460385921506427363978357410137808577417180750181411498916332860292789918803347124132038583062128182839561929109001521717854563824309480194400595189155213339452381770222177367905782410898795235242209422927170274211202483536406901822751489139629758373114722931301962671948768160057363552417264783405236263671545056793425087493710428775589031496589573482407135001506202306289409115727321806972047649913540984009060881105346531245215408449966232543839224355544664646134607354708258644672239252282727808696138582492729471453320619645977441414482833375419489643202575948652245744388388990959915844986047419140334028270161381326117503989868062117232429708269606754008211438784355460898382086957755794219866930943397341708161683991382374152230652391460313688666154369867137088925842690510551830170264816807832999793244750567428402967048308596289849514682695640746609560974961628298868658568147973238575466526968989478549757825813548153222716862219327311787556456428403232877236905842544903502386262136902957221433062674514880994126726512789765668112607367317404676339952540325883326095005444263825558259944348670576219683983038478025915937681134834363614875858547815775288572617152724247723235368638884119133630238652470521134888147256432638144503059948062466586179122962608080541119811752520886564251368564201904462852234929592380605281636122142589777831494954988559676356700963462234542177180632340221525164975051365773609038555001140267699879461774369570748379739307719742798135647728478810442514260446126061257559707635247095570333943882602624325480879763156895403437706121796661849221634846455458156059518611105144086440883117429372166071471641926865786818417411627599937682402985482878524644585273652475237277899014647363646415961610925295279554302201878767174819057611216749580371295379443093436231879464605604024665532749351610483463938441928164606948865675813590589214840015456700831550011401882134401220119124687332061464471959773786298091249304313954221560705134475722862524776833125695782446529209063969094085250367314548205152239733864897147207470920118026362081528237523020414918689819689427671374044781236342846474264987525573333215517144738215367245311563184425578921813490461620092948546687581756977398651088184233050795740982649692438926461959794298223317564174697846431378005951114515949953225157023763500009375699185669933386475162449437321614387207205789250977335035685937619108733262176648054160944974943968739487430449093316400244878375317122214573432377604297510022423294365517246999712739365563351632112439186097896656466328496865773566239531346968186204627560092169713559964128057073744388497733394410244019611704783486306481065399442983872634376768244504377104605759425289625761087300174816913525127852480528971122868607003849242342499262739591350017946810530696280071882739647949307787041881482501441514196561714126518863490258882098101003036326635744048064434859167786855932650295875377182873103570782629272744628347754973003315867309709011106370236929893767326693983917305866557578850406749756031359608161133835315416641325343456981300090786036286550153022533078515317949088271108990370058316363945309323776685163043754066747784886988844318810220475047371193074739091285350243786444512332674802150346805221369453041106958576979781083111020423214761081768194440471839219147058383789130526079726636372568185998811757471602958162090030378180433694839546887593367889715970240929321488392483820808453826560488516005472757579163454016336665238474750074934035837112001372668597898311976708137351592682855635085255704346886525533143537140179225820779436056480067652793014799732319041762204752695557841961165810600639785357687590597250313629332255296248784670654296814088733024732332123906551161975804209964676175102071283548773149168693936678934376388838239294228333432828478566095358366810085998591056556374271446817634229647774723391983686776207350891879868426637632732003508897727689886716712108958097313419928272013000259085493608935790938784458157468875998897896865882249926626841624840121351214062424462534333739607422848947733867063512870739635337635751311490665232196871919770618854153088608335210649244465617601686068178188809952793387343722288983121171158694353606320739437098184778729125605043257594554252675683367293094082003753904703412277085357083130108463868003026394568856923977694681534416997701050240457623695897471274810594931017861175915973864167856868168451051800064246436985768444059618116589204616723404301651698633183760733478685201093414571364781119927683336664054714375232779614552501037216656922691971637434938119918980123667057670513621545611025669201972811204975057996044386147961889674882356878415539648353402665881016062627272024487391774513085686601532894577575483943911196369140539297344325836982230410339336839211088619655636431994592291564142780140012591026458102915836909928423200753083633955879815207786521884743271204687996894895494424105019026918313797133142933164542992977377268006568506147392906273409080476387723906739929594096943174520912487181693175743810834877639163801874032258471336110695454519729690801850832773154069916537464597925185540118222739679307840768780073971855270143148948173336347974408979967665896819604158808950834070879237413312614129733362762995017439344636404005202071361808948231508873792957426080548696577976688419942569151214966922916876060571797130829909241781136473787706490090251247497235051472974594458206570254327316257817763746746721769013580055133438019946268199732303258731185231421209424236413665822714408895858072225194516882998991283917970084568116902187513008282896501071524293006551561083078621063769659086643169080492646460903123312725866627028432515045125997978503668571522410942519763941502721087892399993480200908280041139744041692768758428461856080369056235831613619658194530278824019835890381597270600930779124475685636082595224229865675937592715059392475659623634125122530979728688016650332967940565928384067828552021624600991226766373137284213930231004367087075171849431529069174652535985402296336016145191384618534617105672819952548220097904081465126661981390713284203985829552776731653381071607180588045150106504836555903836240360644171979602873292504647072115188905861455806390265041655648161526672263370962692180971422182534631196398930540595254329829617808755615221450266640133600767008602249548140612697240386252468646403287460040505714782442492596571621978122847015273500534750517766440188388820747325816360374365905854583197983107709429540939754141126678263298134412812685335819596895180583415108426597295301929278983618253510090102017717440022324920718901678125232409518262969233042318535104880795008971614123032901965482798905111932867974911048151397504681250605299362798301890976497544885932516814675824833111499202633720604334346776020171193324677274315469208641650641848726016540861340516079195901557984531363751633596115377332496926869252355902518405393223787251144107193072105259105182952223992098505614096626251940981804092175725197499121012914465742409430019036141692618265182916351886872578595639534885683056240524111661814674096233205120162241254066857042117372076857301740337456132979790936202385888258333087610617539247277865593498548000036843116382022547854318929814830252077005014044690598216555304535076765987531424923400402778479805440987531652899357051645714518697132422527507352774636769967835708259854191634922505498361624940761379421636284558634996179841842617016629643286076274535635744840132686120601267710286507829809783308947187004104987611583669126933181416822997903313142981753264230452438969450592625557779148545108427813483682466965705511974789575566508251271305186025944867719547599594765937276244164274456915853644976749958548276680298310470971521308047021982589447906721125510568040018983154591303088935170544071770187467681437700564823267440607453297064784490865231428015522978086218630027917386935809667593646252135745433517179076317271277340356427974615939027871202489411580874656903504709469346028806877670970746107559477628502069613428338866522587725703095566614591800600805018298524789041263394760882812968854139118153422308818397056418949782301727988266707881516486100288219642807623455761633478809393980692891764260801337064001973777956639104564903005363571284305643179052669212940242851625869495223556529574050904551711644468916252856992645057312290918413298943719286655286929129182247218245975669664237605376516859630221791954732378329453814838058967965484321744807276628108436579810204156385909319368296650502354214795431006615907983989877230077635215569871250155278128834158796322105968507483416119257756190382898310021043903278447681220388893185284073645777938289656835981335237684708730701401789473162999490525034275710776765013165381495861896535806338406857437977348663520432876334134089124356320085226591821409355178154907566952112490510579826510446603644787896405319126898882894074630627431069596300649096725459491688285471206049422938615926470143115507399634808827409193405740497726341118994795111169450008371897641803567208995521854629934113672065353931274891412206908829735638694053028143301733430822095388396119116059343319350881010871836040435416737510773311445764617254556422141066023281473485963601217101069963402372570739994930058547651950434063933476182518174509470875454750324901705995825754985340511610255410099282475238130709425360706315150471727452452928359410871323122658891431467994875916409632865287036527635411399573609145652021212013429216759215396311587189692363796391011448805681002579618257574764643781377332698557672650832732991170220457168726923870336067239260981553062905510039037912244065093649599270281866833153336650895449174709025126162992781343771199310424717499911044827112763078859197629585844348952622092611122903107436493700623107386038870618742905168774807776479145373500348392218015388250859123382939573074255571566908971655761395239404783279733029667937726849243743662476277841586565182825328539822661286959941926508258746084994841857155147528036625717909809970427359549002492672129456405029429348709530148749655924999430156418109884821831076099211917689084281776716133062871210474723542462981406832116146193161549135385063005130418540964477270741379325700847460749883001083579024236804614573505332166168820150045123860267159027924207023481670654433599865080878710440900224690953866254224941030926735695022486797246265585846905729276252802652320256038405904091685872040791551772376619934615392374269309313878901179994666484499118968174913965456015276123439508832887835134765145702508735748114964786545470593160273963889264371143867950411763615806750687394737879450920666167724919827963128510353780425127786084345619447755740938758928239225720643315398325363060372065215815696071944185174032096424277198980769184841736073596455512826848370795244228574166826152659138614792990833720204058986095385898832071018609762554163072657853953434559232055056817113282332327055396490869445208722300948482468293856992821254823717287363833547910982546781616732630313346098124705187782926782014754201640905657495441849955814324401735324887900246462260945876657769000674512995057699404367181378762215039174473732864182225825646293688404667303736677714157131496003144476839220137031773134347020567204266481634160126038888170181111737330743004011860411619531673941003738794104012301979116674080281993017659723097851565431872025993006028800064646191133852506945182855348727556903526134032876115296793050034690681024522404724029318001924852728307262559990803191486896421626686660170075605391090783322963818819079547550123075424917948538051961738819685187673280487928382426883637643470929777710438942508187078668148733789891234774555381744824295200622967736427150784824902566864874328224767006230231323629556349632658564345763373130225103026201140468529193827726448317788948648607170023668527870810694343365722684437526962441681680516198521557936276751486920237192510125146527397995191600988852631607107845133727089116027145280361009327305765246316305422693991987145051123457146805406593912112714991845092176594154185850060190527407168726154067087458190258526482024857495480174967741169053276746927446499557630442077758752974478125033260947504700438349806397412103810662889453913889982752176981567318947437266323398346976520983263437780618611048161998560185514145912444182011457929468481539228829492975736556475957857031121542305596732055676031411194567176106874399460997012140772897114396056470517499961844414786698967093588969032756348693655514828077230943160867743043220359705786251741432969068759166817461625288781420332750903051952122698041595352434776438527257145642905538792943272363093488793176610865922312755814461619548334590550700544533632151188462946204443704412936464051075067313991349612094912095490896632245599695584684079759477314885351800413364750640613353253624063492871866868150791086476330123653186524399185390401577962345163641459687017009888851886315650009393480850852169536252615776913806540999772179718646461518292042097768504658158783448916872380857725331986472696082526428428987292942152292034255190313867335495008556925108478544866359766836326450276158655050651200592511466471494079021850870626542180257131543867487020707014077703248616687470815444416883312073628000955598351990890303134841941115055003684653525234172871993557128695249574904468432370987575961958824877961888819061224724166645387367063766268858713628874400379509477954078197962994883292417001485472962962170535420586874783487092200791170765543922951042783994851127619819367910057082645783576554165789209106861759674908734706680542816534294870246565893226123515942432483439501237250732283128519447071911025066639555068768809155158108279988708004721761237527932051113202768149178340388936858608628832275759167759578498715407401115185360980149847535277474086426592169911041677065245475673808600009146881983664970837623763046961425733033895561047906210341101583386510946924338055078714503937879137133212024710069596065464805161355255445700209874043021024193177125068777109912444329153986377760108781526757506422322835987732262222668064227731025436948382694037792266986367095105990474404269996869710308274476884379247122550553267433124738220106553364682083324816776119949373429939703297160530921700122231753691671108052527951836084673098710034638456797271702605647170325033604492087175394167905853869030744662811585503054943675914558691590439786537289386498462119886853782204734605659709111624561078892203754928407030382321720302942685811132812919980302821245939441600730920435152922120360742093096989041402716774898824342397425400190588522092637546434016448928285195546368111652713100320596883923518720745926777780462151091705373386025154237116599890280719756434809807586345187803150476230214171803270039828288444361126937241035784415095228296819631487893634979024687030329288685474310658359223986812573572219859978969802204354393913794090283457797340924519029953049957043552250116293577948320915191559960088935857641167421641873823151444748315303960480706910928509825089327324703603821953244751411589268787350225446570144847699304390260972808340031678531757141507954693975270371368487678836335128617602628940723248826164369042294776453495591789878804106419426233394515700066373965755984899217979814604495919492594402761743434456461173064765008872383579420374341226106650262767993788404462472465541474892193051577449015137867366503458354151738249803832041880769059664882549880762326253831845883170806149280493177022292775775449640289005366881601450418486000286357848677728429031736345973242524351814964014316495239835030113869107626051870162181470681508727104266008237869671768081895254539561229988541488964508315197810950535597363421721844559987191986145514065147451912364822786738073029391949064902001870830940902055204998585597373233075705856847499188097616423821662012570166715579262728444861284993854164493708379143090209695837826574488402633253962633963412321429386095528137067551372237499484190507874107911423599555365495778607138663108953182121425497618971535312934557873465955906514614984544873082181405007744088537528275843081880860975074712938876035960643661433845445323676703063404232014162147496884776943983466100931653382045962722365608021884449763655006815618261831199871029064300786985045952767490417840434228962082748302708479234306771467602190495248774716237590455004357646998516373591385278213983484847047274455649408940541891950474489673230439625102894376864251467799675714348327434449385174279618233624825101877155172299198197574051716955374774940646700465260663916967479340000336035935756303704093502871017157937545698358546243063746167020629655732628332455786405253026768642730970744882237318714740510085835625671616218191754129843827805378996738727268358043954316189948588100889306587405973647879122303883298091559333431117414857657344439540922166857189828406476638089686575265675616447354503031704351209363374605008474726755566990322690288405485753809771319747302855445041955155153676553648783427352859337039124562492650528202701706398483046188589568672321243593872790510132761459605401883530424257959138012205402216169112071092231320823906699093889726335724729708126142939308466109433816819696949350623978525371991914675379505274446806184913800146083318131934705727605063380037214559352175881393800609495976788691302935033265576794021554216753238935754025353942001032519606410480638199705966162167685185663726292451566028172702292556569170300783899712832713773222537642611897679410612796638246145127942924155643591642909662019476141811630463804896349478009487713388347778588921957475111428056081627911994687770917340722014183117734885577911877587518048997447190930523499099532417949797925422045881458954930756612221715078882234078717150298321111823917936181357297157896036086033423290578503042243821008627819213469204629050084345622114109907861735120758803053345969814874375449713496155088280554349564980294630092543548352944218866961296116846212254516746300545944698780994873059290641445505375593473046185512169060722218795623333051989012315732177038230063518389290842551063791208908433017821149101125696606653779503247521343273867467191580485676942105379992582994076405678613463634800336489394043785647357243486778207171352007136805475041478864762058277885073413915034136085966793231871714148973632012615630569373026014006850040246691404364847835467427886063406603495896299975591755536046527937717497489509106067039400158212853820963986190652805978941683329623364270113702084904591176167982341752442052074559769969428792093792271004709751005670254750862693411723592283562769885742744967009549770037703565032213122460738101290243002584101028314322630261832615704614888039251055944171119494181732794988119054476730451159714270959088055263523952351697337092141031057857240663819836710066477633954640027147643945697953175325994062290103080327679641042503023878285423167672254653866303145711802554927077216369130587164708681701762441624923690627753503556980554645129836953910335604596158495057239954728987138539253852204175969024372559410855078362118693439015735850558125095608785724889133399739723337046854716372394047343015733398990963906940956264199009339517822912238294726097347653117560618605062163102094411625600191030173887046547327506473616563378059321899213541122445014980279283544307917850762024083186278341881783220735543227347186647002336972060588843119664866718436766690523381075540299495795696917011202469349775436848310266893860755607757742619399186218286729801838572180560058385632420997604352499596831355703297974897709102001716075401311684876473989362203301592162349690074243096251386385401399380341122361350133556123077932053570856921210356493283869443141559757025455997010064824688744396862943089956344504805948601286190582327775420311396512787097694710978789941919825218718203742506783215981229584426250407586605832437256385931968500861081707165252461770635225328730976227414423088393015305355891618677220996756742116706674556890752558589039608798932675636675033922243251769377145463044667165349846368318336873976040645280293591258110783785330091529805998838349972670442866683463765043817353813092091440909068197079338894618714889520858105207312153800431490509684109284236993845406480675264643865238427983273402056662165997564712827219192829086994643474439161576255028584128157158143201417458760220601285856737670115281616837066975157943870673659122046070481892972628253016177657121266998844067065175841899992362014218735150340964355763340598933056008384038766291284958966159656665277188063677787049734367385982779609616290225219080811431467511194625718963412408907042223894759359191193414786284616972774172982393156726468820920479070989368642633196730253173353871391067203016762853003623752794566431174702290728833070486503244547882528729536529016798958138161602173172287253476813105307219113054902078007485685496347177199684750099795503594584114151673832724319704779986965854622588320425598721402481482813061234666847910816063157498259462157149462915948494707041918259954462594392421768807693435247076665742758964931965764770420626424354860380263991472535469719361221170922756998196566315309846779214093642884577214931005461405555904823509067247616453304920389257432760446354367391813654698267104701572165451088693676550877291671324759740717817415313743597212761199378140460870508827168642163576025397918439034034210122923864743731373965180996027769696911374516247407923979914819976024564087781770484082415498377426746538007947819438648763243806963943305632949470299009397990621831558563908421211636407880653384025168921780494316704837037822793444706820111584378061245945445102838319752871251413334144070724805505202183233208339520966983043927741121608707342128089000227259199909353013530136136938041141852790668210744490540845971404232134204140412841495619767663235745492447717896331969858237496519506657728662566250867276379364709676584519567925350016563469164373900454335691707063477183709883780926297495466241622093516379021188435579866959391568339682627940833863722899842506888098044468317120897574526762176609940868678526014151944684417321708149640227807140793310883186404279679149790573257587464504335374130592107642297687860882341115360163547990050647953219201801778431414232801559800392390077141440415513127558556899111232935876123175254817684203166682722823892992365067843861949741574610323121563694392390895414198264442868461368882301236939906831365760300811359224896599365915411900475849128793222404198875608892957699404291468002493520525851205905745622434619280720726201338675210774667991666528198036362967862362211098250016904462185578783303571594687843762349242011594832071993191096967502890560956820963282411401685292782985038896773347856645114612177231416431547376348815170652493184155078325496710762262571278872008480034029497463919611886158446383631382283899237408189369372855713707258126455088748050601336344445684026274615656079801391445528725014424145279546834031135073221973268937458224341006962152796481404162097256040379006089270996480265026877719066757717957341800706766412512534047406667581557666907837955342628246035623775835070736110089231086482289896900883865746595243782151151008531336301173475451713311124745976687340551757643668117899276623507654804138745397527589383401820827315496086453770146675762630834532950564895229135815657571849261065106009553209700332866170669789190456094558016610356932196770733133464491682017942697475405475006749409246144779963498568149375610425228072630998220672888620220379592257283883592458718527420748057397619680095084977848586699881407865621380993162232320091236486968625541168287151607805048686684625135550407766756710183943903363712499255576393454363283967871246775688897892000102193469169914136460179180166138349663496062400244496696753958253651100980385231121838153890394852217986120765633252449658329420793104067517869749464608989019247518350086463032509596734043553859913528448052770247704895664217228868154409349664306067298919340221794700525747776004186960286461395635627210505121162429334478677899164523587162574450942820031455525787932954090686571883249121415030730082188786424834847488888092614031536111974018931517131223831208889067892919490207557007974084632070552128135285991444791894253612785800338191430366312097701082842768447530775528810632571371806713211476004916055418459420743519096870726495677913669842088656762981120665752352268924933381063355505257729274334666411942068607769271162713667265213151749556889986453286250288469962008032156946876835051841189845538055658501298673836930908526419068025153002954128518313325028765045748123292584006576061556337037687691516781957581677239272143719858578503600225961249485105884711139760968281992404009065036113878057649897516106873060201517257199862375440382682284683434310736369718293746817001667328501779908416707368448230438644989662384395685480445916501680386169392565384750748158292263315236041663489921755375818561812640749123310613620877971806606295972807203079548294781854794001782035185284666295042230471352484912938652668670313616275149265244575590181802388344146859381769089926034002213941978910601695362015628622866234019473057923307618217614743288400520619321306047975688069718433623012605715884154243087900245299381008322034884337973065530963543627245512317602351320620891590682586807336809927401365377934617663412981517902313344292092194408342224721944705974567955822789848073616140761718791518494673799060898809304493580131160738187457705163361034249778174234001599967433339723196448416858062524406994637097253726149167711726846427547191309496774632601589817420978238170498485495030919243493079992410238782185197749146342113416539708381213957517151767090174367746955179957114650679757556539109857295299844590147119444254096218784847515082374897949332294208645461181052408288339620129970462685162446818832056465903185019981470542106258222261316248243755479586799942578278520780629343003268051593928169771865170428185703168414523516544491099048757030967318294790654854933614462337681449277754377821384692199298451015032640620833251483920901390125022474229974779804414055265105973351481821223248162763952738912697233366975759008530742144758434088826813436993801753634976113797330007535413335628232709437412657519067177495140718410289810180773565120646867386251879249129481650613682825023123079434709527911959096462412531656442470819784786307918342291891170053814296969139368840233488178978406295593994227138095867974785167329016648938573455463093513388405235266504245415953759202162698235106183183637838638748072480017083736979239497334219161876151959391449949940032045914790891097630239579733261221165687202929445305202724804560593038955058189965780789944255483150537430091164679159514576218356152672455153279571487299172517716886423791269905204697064744254918839610244752188842167461104722905002945872474560772153346845996848586999201927641813978353980168161324280433273009742909726815595896619762877325743628138024724894991005039474481313408331162198886843585590814266997116910843072522978628183223020615785378630919775858610761750401303981866718432378522810171882427137387498248757618007628867761732501425617488112507925885941290038902879255393611326613892261979345399946987805704981548634473567870177817917355815635237316272919531164745346221923164119616476525672373953482935119896459053917339597792093703640125482881973179012094476502052163199956576237409791976013742797533517324845949787854887533156143835448971261691170445707329077919442623177294346178521189350055897678202211058833789974548600284690383246756985220287675750614884802751771275220181683859566013953022522291300159297766211681674070207610271217719886874323104768936359614754425647127819433104174702927319577834634171714246539931227830200638035101011883139200852924722970218724042162891366311657259633097418233826963565692944256693261193804182539042591771130514240386436428847132876272597446417453124790012382522362625563111460249987367122692898551289006396296136154180846177145818421413050167978573245503103550709041808875967130760154603907276058491859471943749990737649593228984440102268630291049427280628033580026976429007111257004002375815382397556521843014298929898712626564540247379950751571063433591563645687203028524212177824961588435191610342823093873579393475013231369098709085021310818818143734818662931882507488092440348106129743245223616540346167775934611713225391815079616479006949063117090689054734809028789897578790429368965176896882084134638928747845016278771049815964578355151755662498214535729003909174712774642227047745428055638593804067699230674446158693525835365287476869289592620566696144782124102147320599000191893562023238166356958077502068220273770881570064840144410194231496903157563700572208142793197408833161604810370107563059023348062372394197326539264194006923522027024586009476824861319198432221609200684889905890092193017944177684697621687477683929742097190304551878662331650437371157479605111538912316960455371446840712657806581863479948210355208153872101681478490781185642710336838334370054925157706924718630607564083116781588545838646584370600539666490458538935581141099963513613658066101629617459238444359927850366893704697577888989589361543226091246422579537730934183099679819498734329006276371422084476654823998166886088574531019691461021597080063703844613021453374086121957781414806579070862254264112457259083779393279832051419044148555448097202023537077742858067583727218606318038675347619978733597445182148866309240502275646380906036797634956384381674222733743638546428589623727313926958926308927500227673681975326973143195408636261965034429313901798174603359088041977054168945399894923233573619087747104233294327312546994513027428917245138501731427868193408691738361779365539900862579319862631822781595039711631416999222054897245226419966727636239980228005665783719497557798682591902820721354382936008571054068493104825360547809950525898969976299623851123342426057527737528676689770696058593672752608247811554472078059882853196055431295875487267759853340116274568798577369822214974670057235477395861853497532238136595809870061862396349054948511654226041834759560080272094519553000258569764980425291464715029284676023415438284280676660211976448210366392262279024256784664074027632787282932957039169649362524514395061426571770312200737914325464506434483279572623717754817140920343243597941759100866614189487179152796372075720129906853588223057368844869962947402036699808879469790690664957394238135271709442615504861586874598489447527253348277760958651692245581243607859953982558917081607940666042695543291875157766532881848863052110108322858711978966847884471958847964264233239136717378394660251244477203030325325086371125455271393362546585488774480411775800491931775341190143355627240531125675761809321425888012860633547240541884381724088976435603770542789003752480186619413254410564728622044563352944181338602529114110539292612457620384033402803011825723306084144798421347952154369830291999613648415260475127222283441789557286634498612636400219631997301392870718820944276437968608308474078929784443599011490625390018462329250385738242347542096664885734384866113381654350871584330638830468093061021937478021503149451524532148725964188419411714555214054073146129173369235225774105429344839418193509757561749977075424746611729547872381049594224054978560272769337355682498257793979400271286137522512905963567454353105036165347872035574012771941963226829843401897378657641834212565295387176793302750037666582329289311387641311310286433753457936516533585468768222872015746572498225504430794234982780657207170015637958809635640865280002890848272167239220506881715554740281312834841803285421044241627808841124075110113707661082728937747789556213776021685966341297655916977346901049093070615447015508792771178312510030169618727054634643225771927859955344027672046276800520916351940425836487504987058099683205791408938228298313145659517560748459132330397435263244464038403991883535719983290277157871425568483646156333551932689285494260877181980774341475575905229605838733893324162188896539928928733346051952181510824524480224948751083400666590776124628713284589794106647202957756356357601914112795859514694243648375872236460951814346605262283805913446048880411756758618177753127744531216205163744899468343747992122717889078778101941104934162320832109831323023370462114139177856768025226851261906108381628704438208678412739941201207594785663260791513462456302134960326985923397160725146616449390473797177764773926070086359804753253497695997025909271126042824757111898370213774393014276361986944880652471264612446714732668868578060769526237528731310953473906848337025967745178906218701356285138847163426391511037174695373777131516219194945207613658747881584919692912092548164854898403525866941176850503593673806617481286801536304160854212051879329354826732962868054974335650841502713859904885990393620251743615201251854002138103546749730408980555998976355474080832735757065328714765969036572455724559287063727441675778213397662263062519438415046018518467028346336413807930724485029741628184263798096196507005752246880807411476881369324976792422802846733518374085819915440569952480946282411460844673709617585531371736191171461228807728765534233129211798540995602269292698045953297094479601226046398054150860900604243426412226360182321810130460629858675778673225264705290091838016551352594888470386919736571987684991962678701625066233340268599064212016491220346740053510016295931427844621485354405182531579205312237052724086584010172178136626844106714946835533903758015782131237471078218108662309829590279481742060371506989683942801839884674994340702556792997248982428558797759083794310251712479291931426224168476895770258448595468572000672375043038777436637160399713275153315308629785180773207340485882162255132125225827857260248438724790311568981805546593962762985962808835964901138845558596086572134418881774244474789558979444833295591964498066769237219132372295952637635428651324916067650192527560751799094834140711894976742962733009454380038917597631797914195136314420478837445289943116262770710872347347555077963718149747474161614707487524569437082670325469023497609617204648043639334130907328625796337485189332863600959347263991097678593040937158415034706157865831616314942947873535538897361306355697941958309724723763487728916849123632545564822966512974963962144088294277370612978025634321662809063031257780112265248656586344966031273416891461598279841521674737373458486172406667240538924034282979524745155810340624351087230943968523679161066845693369799184798000502048968603543156707430257184857064274062866156023544152207968320694655127189159134337190965750214518913473227510932795094246637413866207123895037392446416665181949659265187503383296063463003542622688554303136702292673071006788036155791638732817091841898486638439723610553678085621947465432205826140391109512060364823009959028650153956288665787723648929024521615553371561857909373298719907314951081991984123589439551749893300381957695468114711832320464982158276332096020634574609341837530619572977479455541010080513639518142914450423463363018524337539989046210090975221226500698600615344857853224317763525299013471335277166052261316095144585891454028449616151650497350184054449034158526914225932008167886231838681123995001768007585657409941932871902244554269103986171265708561202253179473168594820836244671560024758372043055430533116162932287416707931604839932594777175349349111065441552384229235536420372414654296720940459769485291821415761195327724339825621708321036094792672577238234263040263027245568241297997504765091385170775597677619104688060171298909221112226806790683141239767313534179460424975394815470109478187810942898448915484277871639754600453839186339921337583267813952775124169957201007345694703801702761143736056637997642189786104966451977853485663681798475624712450647243109137338636036220269099020830741868436706055095236326355777668280208839776019132420886777079084192269023430605371732989764052678170910087030153323479214487859216911524392020858516669106137971759964313728858412856173756800555640675359565655965585576560584998369214969378951241570793741519805680509181660753401406278196122929737362586923423432538406117637865742888515019242162574310031445022401340950596614669200797389178063855675801385375325105431520722401410453949358057721093188215979103156325438241392840092013404942491346121915853434406145796237592190440528607982660126389986126504447139654362290585108029671421122241365756461478984059268336297235308248749465136894191895812818602908703543109523833993379354801157166045180080421983941162204496796821249391331122233586948901835391999738858144097422393390214890707521143273611123706285963479859909772644639311316676134397800958587314617450484796414658397437639847667335808687613495961588599978820240417293867211705147097936020126621786744023691747806928164945569547871008355587035931031451759337374849056060827166511213994690255670318771862609006159086112565723887166769067153498172605771545644683608588103736232929768822655115360551431302658962589034398538580358527712290045317859572861280784960534396595419311933794047049308943652288153950746822102888176151144087027043287623723591702440125175876168067459698698462448333211980689103631535937389150079019878798510807211843933594010287639329109510315413464678780891607943084353320886768195646432196716103814711181400150889476615209655081852064924132564264030897173269910392381681501725111038616614196269229816173491443795965620471495640621933904715743046635660203528943958081264686007945859767617941004668706294568232889535117917140839316553247059129199731308026546945691366078522891969173225243304761078493921723008384083838509438345968211068488422256723264514154319454857316267258312645181973777920803655591502892097665175536090635624202057018110127805435731523326939514646112798413941597048421911030278507288198449209263102725985642812980971222180413177043411172453803112409569643132821011334083374831910684718916052383331636299241823860133752826409886057209325329598299278768858616336159058363386670962658932901027592784654464858346170382364798013297710995008170796596621608781172334871141939753317360536266984931258973084417880731888888020152891318525608068927269719385850234392706339237513887173174286892408748363843642332175201466116126455177025156782405793471148204882683610912057125341502428545253510016522840000505000013395494731081648628144709110155842862786671402299739965788004740874887850381422172146299083603098404266620719583770051118554489505966050946911832405078698758535034224684148310086847734101069808006276343927409216192757610185224222306767440192840775805719872462123487236986496468425163910612344405364837625043407501020377334664978365415061918326594113456201754975298116901800273361923160912431819917439921565060345398546167505566328969725704696746420477921998143842415994380564444754582356418514064598664426917672057187638590279832252650224193021135507755373095064037094140444172218553201892924705194671495384836846812125215344517137563026236903723005601735654655946364777668758902243143306263424262588298283612888377558139228356975358912523679782330610420236285692977701654556488999601718050897254390666898546748069019636959761602512927137192726699493576059861121142793428730028615199160391420940944720047595441339157745676569346665675784068981554652244809277868004449705755210976973780766158461182549628307693097144119710549864596579138067452028701195203312706732509098582651660201745215987378687292706123113809940472098337621116082577430070067388639236122578854295964323865350887011560959460866565351308928189303461087578916748533980489760978736546122532699677344771912308685785349149487420150296713306267936409150749333912106203548507305263646183160982668929709536149309586855511964110670415943870091096490503282336100759449286744837466970327242861423760870684368498935237715687801886705800843777791571100949467409801015079595064768853966123873600865348971686055834487703906700250913774935440053282254701271511243655154587964950307651728405604513322177884422225044195095775886175472304759335757475288084384276277241320092716380884483781158298449740164036744865560506310744259517328940370846856787782870348234404861032007652278041002580529785203592695230683026614663638730798536624972661429170845153548692385008908347970351375953036076389807227414553123582534856638692848447242358276388560304721093573864161896920328471255258471304123860934597710116861545446933507024623864025901376652898016554269147250078428555444271004105884485112433345657430784134595960173167878742801336837123426105576345274787708766694662939962883885738933465091823420368863512944645861023051498821555816505718111864676371111783254756389952936417329706148127689361803650869430027839589995614111211360174673396255577574150570722224486976539048213871836783488467557843850238398143160910115912536902957700597928707088103094810565769935304211498823646789583024597515573380981113642141589804641890898444591708826406770507858721063585980891256370057831383183620004749191246442450816914690753860215759365332141439991218175078462207170492564511667664830106175201026848681194061274596367669685283843157366994608254974441844910257894382780550344888098670326998175993989803381162227751957751511575159012103711713000332713343140265965218924407462362175719614369913980485502699518627821203648620805667690821032084559401046268729784073537374722208246263526010576949334290256622095637016860889817884943146893598241595220665950261226466743591509723181602638947125994323895789243405408338645745952581659490490410980414373515236128448726401959875091205149223244177107548465691699287017702775700877222208819651152047158502528427033450960479227165519958876300948634869049669889522407914013759894120248443232729126953093206582808922562727446755831200332474528919203489328618667981048041077457475664101414030874404380621784660565673679066236328757449224482367588071011601183109329326256707752468956019292842097130329360046197823312297876952274980602713319556306591535509156544736734433083205352842190568334189420635675632544982550863702670259233656583533865900129981288702141333178519860373146260244274220707286093500819359395268450878706775107527027924742030032085127668454611415726752024557564848307290295154192952791540970064506494010807655540196515005743123486902074886938676068269926104591186350272245336145857491163128818854968367279626675545305183672365554184785507285710089567228511110272036629334172232524257752609669530124944643467231645770533617242479421859563297647586824638016366433232171603698168805426144181006668739187024900991490140831358054100629077933750971030497977376556082647264410855003377110111988592322422292206312759822606298453322466261935692103684292954287045714588911177544125395502038234639911506959266867367897267184868744247186587987641561445208757624800887160181393085169977700751280021099398088895293195405875508664269886658728282565958534277311491733532428213293593139880618772855916066099507289394012745694408595094182442418632536582706632064226302804508777107606317011660594771842788620333211783872948154037663078415498699363837736305241035655691958595747255118725991185159297461760830276070156976009194214298773293094142754210062125814307611120335353416926383686563464745922139867664189617030189300655364411374146438699282249019989455893551631986120621818027474229736754450486615448406349347780724649644926069341544449348650777614581708266635578401632116148592956792171523982200485533387448118483782089640966041421417344473390645244481731179724273273824616570839084630026945760136103861923056908267256520314933478028373777453619221293627042754813068057596450396955009701776748877952755672743122739254806071464981849868180640053168095735299100684970615393022477904244246260115599522331751750062534153145557376046185551882212956131286708101925662319252996318516158487828852236964019823387078120104738485326008843407444624803433244404879744693397580541826890464731070921096670501771394418378882669829504815087290388510144539204672566690108756062065875174789883111088424951307489952789978278715595161654482463544436124310199234110475772873183033650514720340243738309002566109682611160327743508391284829338553484198136195429182924495259654487210628702603037104405163134398770727223657781679130177759349837367950016200415428850030401354586574231032559978539010815895683682978371309269742977213760583874866409091451837119169021795882803541902236604419192605723399950390036815624510017303757299358317750038335148769438429769598597490441157590318250007535836983111370368597084175906229796704578967530891393775054595534505368661149131915189522858257953950826583547368537878205303812521570743576085930780074898825870423902383345030091915266961581390165729615052563116850538795984930881289719160775890437779373307252611586061062515755915582487117506286568396334560465880854034494447437038179520891714205671001316975009540708350907191985185568786986930285278922108082371874915367583387100908031205355335445932582813689913860998329348585068349783850241224673747296453144884802693570268167435767393433587592395017429860113995601020601508399298860360491893649075352813866131597475494381341983778335565576440623699839717510863888310944512725648281462527866694580298048096670306476512477157650009548038736450146936722338072774289169683729660878423861366974623337890124427264137104970412401351744517114099486643980469989114648399899250417307710920728891226574646522687369813771254909241639335747152203138626200098848517610574969701265982553766381566233057064410207987332084078432145429090377484618187677528530389427854552148372151330582795111454973992472300633412186150008111103760258090705231593630717103771486216193985235789086825436217462772716335570973392680512888018016207880612704932664405109792655975064195979151151643224571404422828997550895560559270764778768747428956102524702281844085085963022167225696516775566824154052353217947833646453057127439612287959610666253544228599557312308463010057852310766702935078443358967387195942196715391007807197115454471042701621255012615412792198387388136966340999644384767609695200796061342008388704960683382600168513780871286134070017993740924991215469161856461633484638964091259131277497841606658606380313089545230134021602990752742662891418875539038420417208725184287419907930766453483963225222918421119880780461096180265197502404233357368998518425868151545204719754490382090567675266954660740352955111284053558800033436906608915223739711308388264242256353633073320167358986066515806790515953814771649632923182924840439663021560674921949187070133447755580426671055675829060253435946749730125903424285460151756870783754269530463249021457560859248650194977432886820718942845141405135681846733795672596536694418237178680940669494819884768358798993684496003598076857155567828019542787171446405055885645405975559219637877586086516629594708266538674110854740366829153697915808137758826454918993138177077236739569140804051489985253334502097214316173886174562509011939382800434397057210226338839604348379375876248490935387376551317938610513481764011577456889299506884416376320755559953246802151212055489848706843511805541524183851657206350613482459244802629730764431027481373243568488520009939081550982945139958695358298606580236478094386261715168120819712903566264045672506754519773993661013866481146470867652695136333019525939333568503621039387393317920244510287051249615714495427948618078074294121338252217066413778986523358704615774241430422555099557527210350665357677730873155687565242181791811799011105812080949681684989207995681370633321967752712161172990308966997109872145151659027711707480352753854792402813292213964457964127061930298711045735093908051585462931659699492387728802191684488191332705709307841584227193849698771629921152032844779292359375685227844519197130007866216178268919861537696146624391413582511753944177749372860988228587427197540393010683013536540552875620536369123569025490308658484313880252287203213110485303133451127214546325609398062812094739124110896472316580548460429683513340943866050672846933549725972919831635968598012592682393106952789778700217620048914997942087525758665643092280604548614092572767796313300710813784400974762571037164190722047009436475627312044187512759407761384904547225507460832630386071062140002781803302400339810083523428874515339168392093885761414947311225634650181653164675584717299262382359282701086190002591019072703861074323013210936623171937265696368885309221426586914107351471565202039418284293967237710548060123932466061609451071597643780026768712713273830804170252768098388209913150241247400107945209832561660812561681775245330627311492049247543760785101957059612317396090363145928249195648031607524929660277829015416657795375519895683991488065076257638833187731971179266067350725746465611856196148614797592459713353532329056551959027889322855379329764800850273801946176149993156764761610454319338591902704367016136544044580624788438445871197574690851829438078127405616335015575140725204824412169389698219319389740650628336519573638899998520313876330574647272355608189657420162620800105607152058778942481819177343611920240643465921659783125227999093263265071824006463475473909332929913429382015730501457074497276839042319531813031594830385220949823435052585119819930635734714031617708392535989927765764752458353593685738180709973830571118879985638273705065788343593128823096614334554851668655230401770464054102764382042070080902566278588101717478143846542578458468532164702812651274556834734252733580253864873475370520733348498140216434991996420936642325564804942984321917832807779153887301624765490104252473519038451441840702205627371298626640821922788472226295487040761213511583261222258624954175857187666085783751702250748885933717704529919460945143415128362813198085366264707137907345667283705576355243399659360654573425710778198317165042206131267851069708017479588661068700535457015048496519023538212674796119694479634924025210589685164964510565446799291588615799529873096713876839271034795103553517401968312559577223901645649581990954224544134566744965131497926675676249530038683301506384583053722456907311152285733266874086874481281679780044921353531135824769469904070493853273111851929388903196835004993532066284270479905258971813295774851767675148098855007614693101035105310513216373062313336091712682822564690665387013960825029498772094354714874915846346411815947150781195737059519613064273712150499336174568899847092475920437703908692129691589130831351719736157377100259292587492261005910598884913088766368620455338567122492814440335743960485670283467188778456540770847003682209318514920915027255479645098052356473058159850994606846942778211913279313479088420280371121281103789967123255921098279191335637185440582228942313704117845348198812866903159469611940310820368025308337521983941189289018984549313131583772381201491202041681203780358242048852016161776009739005819488321345858821255083069125536504469980549953377428831925599306846226350953315640631813049831023462378390490097977317772160724757678235114006533404114203446131075269331938350130611312989049041916208220648879305715579318334776263875862075476221670393054481763077799511985378907242284437565139025326730581360122902120386781436443120940967005896126481434819846957905531787909084373294008049797754974462184718596303947286652219818976081178174422997536774676118573017942376875787339814641461345694611442697325997968717234951584098172596461901913138243619346742713239954988770917058954223295548757640323656785613321126510563189758137551534371977998116498688238310175722806522630628159117335302871772700283892509054606798457584920848988390698919594246886364746117194245022270163748937485230722204229468426050009389953698483948939704508448310021107359280867495093841484431965005680654656684819224953070966717685623680104850793443500404498793368719038224628871611128298511612067854856037752838001439688409997271561384853431770509633474871118663917940201229921658352245034247391881641401819582282553460769758180234681855601055801060776779250773701162669105855901704933521216059295171373820816579753548950410774267233921513068341830970311333709380566542964949635719890366412412507799809107990948811877634787069700166027002912023598207309918658229839673027994315446230697976642096849541180822610297560750769278278067838360691182836274540920461054344543727147177298552381193202115329906178833785181638432910963585725387367182010851562523609994177673807193214544443838529993061978124210622265930581744198321476456338742188325520098482132164919866354295388493565626571673661027723950366094188962124176011987122088514074555385003800209609485892403459964873269327003919333881473937665811359701998218724723640723411052275826696997433148319392417087807527343207202015993224818819814262393839322834821997870654319823071609675223279400355267235302469667113170475143327502749843011521386770759853541454622197394435388120340209626433212710397906635692206943971655361471085551565260634180312582741843842335614687228953892393894982768344643227007514723557714244124919432504571866314091457271921979082464233556674851670995222708970313129579186618698172056431584936400030638909459309310485991531827239994931487208076929992537648630247781403193502877223031431551813398249251125597232589960871445865320757024745334659794326707273750493902817416541717146317106738212899524111607964633983589282398120676336050528528821700148330122001533086579121113034982970927803357675370580614690181849104194036426940513522747879595223759985851221279154663855859302292254785950298497032497187012410464704074543534308328263360285021689134544304922329600112347993295868500296109511945423489063096081908542712641849360326953839734285466264698907673302885574985989023136417642539327115046069084932963375171344742643359881167016047354503122648214775662369530267153956105095167895553258845956353077685157922344778479078390001512404447792441390356547278589972634716163218997196728464425151061169345705538104686704288780628599369709380410868251426432082501275386844322186881061171152014984504221467245386570444061428455212610575279777355930876763802638454782338871891559674628361750500132546457387181937472324968554245067648160189943904661688616481528503905424856342135339313546335981265640070810465780058507364196115635521723479511654893516561320897055102566191180465815187678762522496744120511528750687060529746366441394266825958020455620772283181773976976224898421250692577482877875146798209489926819118777359276967175189098180937588683839648276114041119560967552565614842091245004411895288452061865628431226295902354783385830017030998088542866193963358529688033957922797439770683513612450151984610844344800656870381605087798898219239458872222886246421369189468231895945277174888473482630711961525967160918705104525462422481121053075694620603937796332393641829102813174140892765084416695936506701911752735610763643111281184858430313877536995255479898258798852660320533728945977755630080524103224804530926611221675414072607440668168847778960371869605292302572127871636997100540574486038992298358544652087591935093166422082038586750550217035253028464934503422111265957784622209951764744693978492932326576443039477898861824468363588827083529515288082048482681534361452465979104502083969748021082254431026754772582600347650016911701636138558406924571546200311047394272049230567451861892992613445078627632461819569996107587809732631578230197102434137163646260998916906352627242946150058428139156195478496505363366995679170692574799197320530103722661729212673230734022573935517201540696371921642079346187917891323271445341022907485468501135444342137943827349530829499235061854297315137540608604628671186211379400778434253943645679684510141001190326167487649129548098139951415670960992890676450310739291044321140160248612514353064824704388225576175546074380932843657879655976142158776385166525691254270444745615693528196299634456070453799505817002712949542282813040525670628342751982364526576355009663038025601284507281798868330519977579370050063223617306494199935363371524159712905128009325393277620836184738365717498090309620031540359882537472021489346084940031141737149400918525338743320192160372191383956285240783496935338163392677869939741597841330724196054843415521687153877830075525705663815326377859559441594086505435780081741995985596934860325258345477242029585448932310192865749129946769926337320638967935316111484048804258515307785577016844528479669451911372065621434961925016432442870397277893794875731857257961593676255468864138333673294588507261205269795858840827766663516308979329334387484951902113074003191569892945689774747746255790484435312091605917303228192404392087103713716394830331653867986288682506793083469685042394938186815163128623724559855160693831325126333605201833756894241429855169411350225542380055149162559484506470144834187672357620051055026733873669796804156425311203020086261064230741140640212327695999397232603074774960077552761247929020454375841604055170429832831729228582042724270913303658481508178629840921975363948868703131565730759976963377516630207312038426680326912957972865105649367349965540073579226359106391022782460479166958305554113903220658474025447757442289737493052198203740063889661085460254803347968626048752482597332978413648400659706476267051516300293560716542639024889308173814456579489499403542576522564718930216115797036648565302708205354180594016420150688983901450439190347135644100799479197016871353767920834094582967568957842120536657657236149181900162670084056842025105345182715560110796149699147964441245747278994599723576432724231504581076154557019802031187543945415740968576881252603899801477048304131363947746735668909319467081102245113281943593172704303142431396509285001295071246884512224937045252821794757804515994292924507086204891937889823268514231958238279684195939983403880807048406755535924651755609317382171416537205189850084776597420400579159325671339565105013404917267404928535608175823702894251500804987032930522210664660223200222227552220194082890100645663320757386596383054472177706789867680066376421923877688435991327525929358906764285386047163786402121697212131638298003176039028894521843799465678083237105215806848392008730272728751762342354804118186545372820322876667001620766512753508935718167422113107637916993347303148970293948896830779079780604068014995666870917061282142724102742106899475397112363542366835947876903243274717131622727595420193475907641822580958822514863403761436971094939460038867541590523513283617795330446352797867200195725094436025783964563381237588127921299262720325594983213230365637020396470653060826018436167312627934637713217456681091242820398709417472080220701467005549602519483318881650976517901186742788211933805886712202501447243280573478224387781124390803319831290956846175192350106322590468291142557185371198266127031853723822469656797368916201348055103267307260877778801563003036807895346551916920102839448733623039425505261282001917174732138587245929360840312605739415048041558550561894813735726101359596786964636159348340346168964851335937896546252446164517877518497325550637557917981823067581779702202054519894384692157507689112855672185911022844302964535981731389970053451030724312781645182174387937507196402471568189323284556716233634541881481005067653306896926131089271858710454010095138345746851469110709126539894115275764026645215030771811803142251842234433378098580694183819833480051853597990710309295294334361366690960121662516537777006398865856971300096360578916752917302903211085166242605058925454278476449606924876840321705165158560607430804590121714849104074178782784933619604990090391279230231443302460460144337278888448934511780778862908728976863350582646308834484269272186376386662148070005544840950589821129158941721388474603735626360726109047112083870371997031709174275640042976989838221695089719338224061379925540967771022595850762805275935229971617149739408340643146009909068627630980157316205279145566330596082887662333442066367372533171162886994521335670350142910758157112540073236840616321077350819749342974580395129668081098199375660913509879207682530639596201900594529819652374748267569824038919483861504099145561805009107432694583015623509739255515478437358367393901043105749739844685764285466268161261920364066217219499123967244590240975682132565598849524609150974603245877995725124455198236324029891391827640821447573712348914539849264881979072535738344847384994408645482618279004814397262292766783126987702886057638427680386902811543162515289803546271513854433798097695884969940722534751504726005942859066172670391273050436413794012172444443202579074077537411999955292640250851343088315300253014627732894228032828484619234608145565604988876269053308774281008202842282383093297456777337949291350854386227758981567252659462193248436834423630610803272955186316871865600067643428935334172215665855613122167008781731315595863954716198654200119413790788439850857999323507585669264708385339531081438389332029935007390932980188822714258120079876474783342333163479094004621824893184036637139524619107065612512195406926377501251606821120790952306468265629665591690903787034160642122469949903178763181505913761562272647815011588121314700407683683093821256580282432034829097075649849151682624218524438132743618665049217436448718947771869999790063503676254239008497124731666018382831310111314309811387898899696694272522259025166634020843604380773256876911785880296797252785204378077602366404970086013106810076115909856454415417319096666421070453749111221205567443671684594789187064434742793293040712350435344372390597694100882907825173517574840307680416318639836904203451155904689699790672411651789395795491924966987809291822959513066932607581956446467211418312893083815806523258280088811347656126494276093883414242931749081688837540158496434029080032623477233825417564589522281025330416995136206154883030663352406651203375542308346830288605848357486631999294149731870818339227943591870987725716478068465956946562859402099467995766521903427684393926018978235963587258664041536654749858760597101550451823267977883698306018440926859921759969690660699097356607782425841638818345608362975887815514241519554927816104480171214292605116473060087670006987893830320623375946911147591508411649211494975329769150622711053549554350977447132666322795099225117927523147915837446770702118427352663231357807614590088601703141262955758856170960646424648813917265564060896193818452912564006458653245475190798131830791454381695233988515008037044776756590873116092040185550182520245868089476251054291028446486682655476548401797532072563232630406091414954428640606347561879143502069395128949235613529569054704736645267330289053288276610736523456680091132227256081380621585476144589054550314001491914294893517877520890647548467556159467418421650735850820871399661548943784768455733931284718681633978797735193592176486611639604431590536208865540989136547837835426732110782386619731248647410921088456230477381488345563305095133370283388897639139619029849078746755834005097956858877356373182178159972675410328673857756178559964886107374508679319710648141762373076203813580322964645824745997141313497464356360568437768747250518161379668350609206688375490625450531244562498041976360755453677123923564467602860857961304564249881150530118108585193428542204128361044216225192344338426221300803748177889812169766399540714894796567904123225344732023227789307896572814615921118540485363007651450900768037807524117009983666676758940782348654307320289924217966312646393808457303978733528040945089951770076354528901846052286782334637021754792516663435609134346538478763067682415348537005432810454795460241696751100187344136946333102698624090835291365746282147380705147192354713582088388817745486155977068957066970478510069947889886981620377918179828486642143646077466075793537415764255487238109757334349935211607219900973808034542973735017583584767510030424032845480747700793237761176676571209585402225714505833464053066012468598710781216544368724137743428717894338642024155679378064619513868920125037806405440767121672118679700409730217809496481954930644197941573750831698756015279854072227405904942272898834606877647917557633749676129856207375026017258695473814056352000700237937009568708139167889788138496822860520040083833606681071677393333565459464127270540533340078753393396264504068595586950480968301208288061415492563258057324021043878965601204902180160616894580100083408848427562990726803191425045180295561492045967599621371950206809574476885670418236947767929494633711452379296202127562020016915217342722157178042062699941645141830806805875294847241627459474468832996602359092316308287082841891130015467963460528835636698765252965311216305523749666945512274089486216252918111857945445571773920067761248624544278742905972818973199282823044153095049451847446796663614252673419755190410744889258215702528083594336330986985203201201738094965954031773858352267158581536585109193703878419584484368063045595925248639451820535078396551775297467504832477009958189881102221506075763354664306043184846855259296003219569502955697087118498574955115571920149905995076549204866433978343592714785305710894911854449846964082199759907418934706094732131150725198336693680080690402575013688808089433748955116683215205351212502776646004535014428542707002804701098006710021067645644375255318405110013406273619899736557495304953077602237004301482237690068066642996165864189937291369654666493895802930770735645478109456321160460944802013243073524883576694211177637917976517055504672788666866746461512111169654216270777106147583377012873824167517416150337439754514360253282068355561464513199270357769163118211696148337203408790952676909498231168734889570142389605287321071259885517984732551697746267150850616070849529374819628706256110012549861755819618958360572561533070062157413317713051833554211415944302263394651908282664704699517509435933552332796487097447030760565183814662966121432470507343622092985720225274786837602662529650519560859922876505211839989223756413073974691670139397280640474946271319738008919311414974755443411525290112046537495264302732427171014305842754062463880162986731110557688024913067793387495815575491433002336091985103787087902636850969606600681117747063832076492677719787713848805197984296471215975389218543028954906896926678772696203121423737664461365640951512735124174554798411721449737230341111863467215290703854102997449409583389156938118986797820736828402463925752672355792262619849347149613371372009104008562218150550191442878044363075377284912475936500775778298065255691938085064761101132125172620777713369041426748187290246701099642079674077516569497623155421395118319658013326631792563177452217669705540014698322540354344126314741896535208947603163470113834842959300421670372708006367827825829764971682532325537911454960465210332857192083136820724576530547190101451214052284538454261957139110703810483265397319777131581264557639959357878836504432195001047327239603596082884848922270752813047124601713679675729846732320652755871629500588656484235027642293518656076325183311616930757940455227683396690036724638702046810903731135487375162604742632158210356013671248773086285446291145663876735702102281974740166048055808154935900087519476342687425112127509923910084562791662478113404790624965378441382030208354473192411783581802307100246884120214534418016610553604893191103171771297053564205368968524120037086698151101923623584526056021973431148562872552462466203719947517661975086732260730984996237158407974069119071021934164288355248813128222034591630636028599816793751322162392736744942654219823819278157907110741287527685842496203879489149461585227230524778953080470292277554172314525105534344223669850371292900034548648953761192173729743858303502134432515130573464232958952931677725241509182772672190764791266930001047970183810410423020668137398352664693169887521122026303052833578422076183069272204166323704401961487706443791959262158724473489504327984286105549569591879992687730563990362554383134444621426251299959483510672633887830625992327996978874347466446129170520425892620462803199154122112537867001321539517158522807780131443486316617373392194531245946896461376661585822193250991690166861714857337927500967624319433707339794229355773305500449283301846064331163572835966935854322620822971640466866113093959061959945636657474194875793613102954924764139779813195214742394459406708925620288832606639751706893235827360713095173103043137866890814691039178316719121758763801504814399029902817159921719401266381008821004825599826148241965989119957904878712339935898153771506978424191176044863567890534209408074409239328768550331042368372864435786531418534122092469473756888305969588108529569355994317565748836836853289900840455461065006313056032452606265957007271687246476249099141343671623348797696764368291792608115034212634625426016773415285940037018510935141840506354242603612962850455439025845158816185152792434512321431515027594452756879208140956341597561384116695359960850504539445574497406432536908225372780560035770342440439640357026099222249243531315813977291716325352826709998667694775624854604938496572337461250907711476383940109354243858145631573605780679216361882748374716933277280061501817483744081136863964971410022018828527788488079082619204582911459161756821190383498243436430766663973273730749162101329335731412891219028048845702503032115864860694457767958589842035618068500844002088480243500471089715947893795301888830853880321056000933364422650054738036605130350037798824888636132558912028076446863915522948953409965162816972507728019236652775380876572770059955358108872060524781868514638241770856471350825058289170850968458305185268424226690623804222139040701621052530577954407082717786546606983959420041056028535398016290235237411865548971881246610954111577152181806482407282139367595152811577382819189505459046983900015289128743866328060994287517279021052342936318116318045825582282834298983478605864965674990887309360408347024534777638970070332083768527537510275664272436848128610987016603296954444664850880203412727157209019819561366979017564299137225498958176684659929680585394241070366844452467714038799867959330553361699506457582785311878285568201084708611178909093536334143582964046141536843573566242586885595494257345265825803099572457368995062008369400323253944087064082563682476336970728547006121156568184154852320397075083801322751963511696293959265632090312452777004054096114281429820051166354257912446980574754010237887229089118122885471813554400271740913135119463949891033225589984611668371085844423198289074601326745866700863786261938130935829356562939063693381103490735097082840286209841065945477714239443536010209186625953989256373876759020829161321628533310901086925914678781487809503043444665420719299978463064857941797908958979895566009293041420207149250270540517777067952539902866042457061057607833990087514290409068741414473253476361132413381111051700300726348057664809995970191759477400121230412513471210368520904804827262357043630717890447004563209577861297303450205145110202808218388523669121950847260454460568636836020249718238186449549054084214208253314092575973604208488722550639432701784081086599541538804585399073262486727306421430898572402976898423540268190843106516909012511190919597353689754807217367508653016590067155501581554028806987318722330768542889527492390142009395980515025451002892179254440228663200782833649510150985073199554155758547494825099026008729614329659426977082384249231862520932527940233538154118533909205367826575572565308324041647688313920512628495254536770050383875162764978803231224155152775194939899306278333367722577957776020963226445767222455416725427226283541847986820814010434422256440809882704274962761151281085046195110799396477642635112099598271999960494290384669895482748294549970537587141135368977059964024515181873890167367478617404073959285840029309486240885634281278988757765727559442851574839870340361761679535195532219290355004336908547208567732564334476766505823415950195090504380072138593786041328018333390811953740387424408252534568448335897123561495715323105948954818139056385613467854236610939710191399707649968285135728142268572542756285252971814741664781782885961394060617085638218132709220022520834679482464030350975580627887271793288869015107830819684849862154208903504096667355496476265091060375384192535369349008786418619568881366034041996249172108204291994107215420030549198913881474485659577660457350635537102895193303327106158932711477576684760435505633804648141215153112932867773311719436561624755049310339416925448014823244714762049382597077163854895079834844600982712522960626747274055992350100214430676066363472058964924687141116375424499893066630284704214255163472338401729205928918137616524393244063216692414198748866016959938270048231043896049179951234623382668786580678031218897052360322198622957331552256830537954794057987976551719495297628800773500123554994658199371630901070740578721735774029492430109562581898972754537388039140428418488420404935356037785968891266660688629764012384821458761091554354444340215137265071061728345631898990543179583215583868383743809830367963904425398944414921318734270503647684330816786638446679831249969157160901993229964831268715153930549632022542825046534923357644495995611659225324629817365755381132468364538381507414411619591450300948889175416223458311783875972168551343425746866763037392859376583648409623238651743395027606939401272886408345451159011548190173533726389231656690488084742381125451863663973916747092237101687991722743271061864321941113678596965326773946040236407217658258094461913451987047616080043247694584315834408080451645415465787487843273788805934851377648236255863752093763899677339260083453258198585548623092050008345007996574504827561145900322037346803655321383267648372530604898925776705407904466459395709995907705242594666591605672789346397426200599266654006452989320848769544957184907675018290548123552285706416703126193240087997492904355182557690110814070214410125591523191646484653649977194993124941967976283979555976558748164471447577284518708928386865700022796262709202802365293185690137789049381274629619769467550637178206263199894370545328630597015173171397248233896004280690252556550799860048878727501831810747033303185100491710047562822456344650464423397048966419667827284871914597803041274831265203468402568543191345008182994449376807316464325747472623324335792929826760500406774810812260909616807540552159114689575489466733612289412045245885737024833454472674954753368005060025288954882703531924754831010208076820642725322702209593155369500987032651409826361668404681800064580480554857368502993658338686726423340740144970322564517293108776860475098003968677189236442083172314620363573927971730977787087123018170740419383780738799188793180261288661879130634416532353932176542426478032879174147063769351684612844323598318569229910472156217141693320383316334241551937382290462252281385813388985455176699877576968074126633412809198080564018627295389223112084233551639683270011394996512766026301707621820445975310067081697391951218613965658406536358068155772104199166972843087790168542272946473460371808742088125978264294086255438886749507071663908708578736374306260717287575731332703182405820315832448544119936412122193039992167961258458685230382483753181243076965117377879298312244098073570046056592030359382241650504458929564211436311259036052692504012725805996500270578130155915822523317581784175852181373935263727388034139079068967463035958115308349242928571851587685756315324139331237472097698861409832199087431687464898983016111842773360478445963084651705580790990619369614048208635078971742363995603118558507319923087524535689146394827554971671791924761712395042138852680844653095695959853029315123838915718507587387754693010922048160659031168516748717838384246793778326889034941509276202875998838194326599053703992607217302636870564718218299678961727333432474608723082205574512039417654819097294647472163327897545564990154436901934603347425551701830208330522874771708426889048009752679352944659116583321394495385429795818874035421626482986699607673239683649242855382743841363918596835681636722108959781313982478016509040795715332928985488001584113309913913433870588918161253658693445854963377622923206940180315171615673520976847352306434771681900369537244110758170002379005878736538367491062105516366811659055621877318311389616308900915043159927504345806985547404304853826960622661860534546955753145448744950610297190467432511703895746583876987564854280083360321583255571375761006071520377503536578326031519151306311115672406524422481809523205795711428859855204914891594890796791405385197146510723795300599492398495806406216682477782622212260267863797456464957297352705208868491768948051488500507550057334020503569680192576170037812115346957643688015479288731709165445382857626364927826044510719148112331179884284205532137270536210176980944742671528620753155268466276154202094982632458787770557914529492860524111131416901280575045702430898166106642129001232354025286992038001750537494283187150357407719769938721041863212144433972386183256128409399332202879700998390019560271092938029585662516327094133776429941888550421162315611187816147912829108988098895919807615447974342939007299790707493242432501645267256601417225242355665632294260685285765638654599814578178398224016314227740707356383759517048854528426275668528863057679190388807181819798877971804790669030811284438974540547689166511443173182507107250119299526731497607473485252618443383289168881090857265584041986444056635854193441740506239133351652635699065665235340673451511523949809182484093053260657240677831880826029622645968700417254153611112498626221638296500267891330518401226164032481251135007074202335407843496757875877036150290030522771429669936773235898170683045829490058981300253065417695630401727899510606387909737658368862515697429933876243891844446428770107175670637985653974896238591641975749148905773557966816575059773531426233686695473081701157890170106909513376282133978659775858279491701921195877606482439183775084033781079150046947361402982964598237514178279825887684094356560246718055769391787231744020625515430349950650275012935562891795608762579022226875322830175886481759864455704625038255646050869727560229015520600423826330518841904434621326506644878497125771157212971054969529471203273461829132552957121875955770617325366333550791125415964360267026145863504711105848836958581888995096553958623849962580793967705021102282012843900689128913136089148047428121290478121709430629772807971422565199564906849808955625904613186630301482637349547722846457415044075410279035716430012279518503086419285020211032463101832900978770674182059690628620241897983282084812004533636627300873191900523338598584190150215028701024367229441310251180060908511913334741983940737259651472133866794434218182668480359074847216342647672343150308431793700948772046094026082383120464514776349714436609372578219037485829334983191637188103086910446157058545177980628198106775294447488156424782950939956727369549948990747900272045499760306067369894243141775137854453920147331555880360343581052929762034097203218546204535574289472384082747111230117055207900166800169508921698983460198700930042591894322550246046169474692452449994930493230354569841962482792218232376366181872773046936740490890022709249221089119064797709848310901117716496173052741995050067076305900441809358208029024527814736456687283338517352189398720773120616276620819336371914861645508105929817530844252935497642649285619961121474135722668575717601133336809095426429316268907537955100958573802626449667307688761140433875148293031401462261121766873654935322948809421824666677962253587728861880440886504914464786630504280370616769350756643370766725869720817114636773391526823113940458242275810843901431022182252845222088929709352074697780828720406243901470706117203117844799370903784887584059512773487925379431772837948414853282888345706544372351139128337380216224735773050712807038839483755319439476003387163812247863305388021521434311378397382845393149262006945958343250817341164921012105721776286086318965232309596298346661548421776662690091539873859541129549850566351611526704016460701704677304631768255416519145530179401857600672890506184021960878590841658723713953267164928003709401990384627883323907819340583045534006740590540591623456884507663464930912380320714812647364927291946802734720686236741494183456046516979407991310795845202088105805005826883317687423304602350265834656849866721406773830477842567963327214600355889608946088024692857457268195661576270942256181286209178912028554379199699950418858831692883788235474174309242433194886295259021992857842177072521723797380829815012358880165879283883632967695783288332508980958311850462280026648475316655368373057704681378714219088048905265691251062306956143108580394545140623891427177677729931466665972037217830701238782407879603656480894989814734106644259692965224807011888198335111095627519816275529083900424705396279991469199773816772945301377356817377880657279459444132717478899292453593681322117106127158143242231927209666270135880802998337057183304779849221917794041785810662039017650877634864801079117476263460271236619723321163949075626799984144128768018592399827014881067606606376270487483939458947498039154330223091923557822039597471752654425414798628156829631601690114625755112776083107307450461547316507365260232282446092433814260957550293170619619189071662238750105228781805071080888087441758151790756023754495513157241020494368144222128318299675961790462719869010165985875580548966600136932349544142900236310564029125523613363559205951260321472490405488423891203078438100431933853970520649942309597586262661184449694194937261942279342309047897460750665504695987976836648977398523964560829853717113336571328873122356758843650122929549354521575962063815970075689115966280704226133531939384243953930363382066530490688438782760153259994436718095716535752353020727894605080972058465328799532793428887443827206061348080830814260604212781615369946896480217948367632241124879871220822923111231572993098585992374374792031037916091089411435519212810606198184980392341476824172207325748226001916148518148397431854906183986732358353900901489094220939473386678389611047111426640804201709135615230887898830195781231881610174498175298649927925880165381452251862055422312206345366877103573799413014056923113184201484684501797233190636481339141801180643950779751483533230989518049464675999135590862050419196004585573224435936435589314145601894346693487496468638917199489397896392099319998372108046557291476876656998085542554242376115946229182308730427749898355717481187274830843007460637553057684635974110996500757573013778946568635577339800155613056978457786860449943343094150695132174937450463063580000393319094168835074551223957468179065651514121192092858612629911885043683657272715545318596680141101246201588131752881564805572375749961223826339779241540292479504093272497360534470905194194271174505490638924886145566875556001906253652823830144285629894767015634564222777202025466545897750010993289755604756121706090032049104449795495086092432164583930669203107130323002982590540721961323167078136425855642549426513716257114294516962520350948667937693175625339679457162189092111647879214518172923787388034616757595491509585621405422735258166299110136264352843761409835421871471241470137886398972329265801224997413536553648527718640191748958465861465132219905203119086841981184312357671885967498387056352739753875280879642553078129663034003466815162648499203303598842134282912184454950896391453998397718878734312823652625723431221232670933032836114470757005352626774527312055351925272686137848663131461808365759382669408964193694102935465669734302684144665585973359373466643468270992561465368995086776427580859395194940829523265201120684891400122665824548935584381879072032142627841396182125903643972707179853505383616850148188342176218993399833979778400415235736185860798783326307640837857440508485035645081736617988812847613728185846554304577219702894890024575285072236118399514872794454291354907067533783596035525828763043853299259079551867201366414460557540543239434805389576915329733581604846016810769234596516662255927203314317973741586653769981857494304929669034578886185588168558655602960834107828692508093413218832405845925223289480154066281481457648902584306710843314917843373890098676915768491468066761228290854882531895157476155376893356562913920940629547668934500312227485577574522417586177217890501776349357861702268543219144162424802363524592132764498345433068904756477267616642287915605190316977184986567760579492560200381577856210767605569602039990807746864727956711900285353989699156726260144196002329233721315114594054688633517619833060812601358943083750127810715056756445095675579792299612588826462916308965341225459340473340325340874639987627715039718682600163509014179802706510232040781095333723721257310504421239268128298812320264943673117649861802633379748744050279841013142936966637364436614914674691626310936605353876915636756213690347834450846716749964733521227586688320023549728854395073247491250322881770416800526480484469433782573752766172973221912090770283338794758284371520081406351376659748307548859888829363727208033713478812152922427323017818087765558535704170435980266821189661924013145248191834778061604607651457042862193747481715557224752439439132281921388483736168130146029401565891662340149817266892295996466032655948909937524338901344983720114683100676916873034150104242386136163380596639439754501715116272321675651956335535607850782236971299613820780996635723191911781808893346575034112660588946571960719693439138996416281284979961526889461813648046878180061675330429064706674703045540577345152519776599993952346518005704589395262108184639303986358001547690593122025914194790711057680968565888168765282975274249871769089955548470650721045129953804717235667502241663267925905788857004253513023694688131336802832888012853338178491485530226741240815544704281464650770485730168906722571208013916739004968785250405449509638664734936415914774042193730097269168326861396900332940252653450151063852374900633920447754166074537417448590399219193307552200929715831474333989128658394172970973780298565107191177599515196667524991664523206754950776515006641860832650396294537143095840415078941476478840134953906464214863062235676001898666140845072738253029631652147734637552001027803375251428656987631078373659679873295319152994916889990958242755251230084328470420252534556883987653381023506606649211479319233758230660993159678572896783992571449210525978613368132285738201801936588004899941783192215483003508862259342470930834359500461326583618985554822670017271327966348765756653082077185509594827264688362217540655217758800503723402227434853868601552405094772018001455785664972100452491322149197432402101461785333369954665062258023939332876754546986884446109940380152225269153681549504915182589180122576074795992933781894886835843127038064699104008821408063381773354837137882378950703665960308803939588880820957342317409463131379681947663641635394812251730006305160174371366943869840243277469956860444474727436183173972616715492110949998590619029382483757542558638427234994990512381907915008571121643578240127970190886595504538953596279745041608416166963990020523852313471209616221938683573793072074579595889586771651549236941759034043707733369958497983775922078897397082630438198784543680703695841604934264908053644469501365380718868853134713712361395652083439683692057210830309066090964119764065892372564250602583652541635859862223527130195543058388451764372207588752996331864765182987918886844306071811823070909522164352144522498367287739042051216711779545359197776315028034071764434567559529135219167571902263604341508671719723379253826033296348855117638120302183718322125224138457643367594307926175698651704230285161589076649813552899385054804499138759810368222303095670967644886552484376419311052381120078245777789551745257054236209203983388514979478930581703575265207617322743304255299131177321648031800876907736207111157800215887124824939365056174987669241508884606678324922027109730619088402480146385969571874113159499060213265638749923955833878741497254189730407190528528642489542729851568958242764782156323523786027624568551202396859136410851906298327436148057450914113606514023980302506274053874613912956361223008949998942160543114400610937747340586310665421209789793564676155142531073784770441688949780397494416528337804120329055599583318786497204035759445017811870029371673387381037362751064839436244874385221267745725800283618879036473996412525824403499248531637037480453208084899920600347121943136762108448450499541976577256239443530626632335613346572434123613028158303867129767377203789654991629642680738729962754814768277685698765224601640040509655363011637776572515797767245797260907812397583297611750947852520218827274509246334750009275063775875476993763491815393575342644653213831059601536803631950597250312848801342311130731505829599865920018182016635944600176850550001503087135763502819457858063538711612474716557197716462058255225593309676913340201787955160104512014534643697212187586597663705310001112229407701703009816207070782030993563371433445092844951554024413584339179965749118790081651331382550485319062338338241586834813881268504060973874649008440199748143536945789722697349359809963452848240007069936874828199012655252237859692648812327845365233590721761002988915585509329708331131634411210474059096250283533596775800158753549743423608306847396434631197460482273504372448559518201801902002795326701324081291348745914407402047235099527149263072071311379201455425490688062187677336695547039069645169940718335682905500066572703089700512761394477004792526919304595996452127746090026040628908096270196530407158598481516745068796673383961085651485886258146272562596320034721310019522085074955399663269860717323103190708855634560440760206148896513897328490662439192331170770880118589236023502181174713703162873340249975715216127160641860800661979361817999464082255999797305315112623329583890288570470608051877434074345919321773168321130424392513514797345746594589406025003069210937880954462430572513092056884568339169371145221858739500235825827229762717939937026089095629463284203797681837882180333925362743854745971955763477404018909207844459098267338522661681294437232934540699380534067431740360354263004710740151742046632190386142931836530450365624602036125166643601982991424044974649283372717310519632723266028333406666630958257911744361938185715498956105835386173142670413783192377121528803885905365132596745494646444317921930147412571983728955990239651889698877316162269193377704715401524377841711958600303383444390087717058485590638954591176216457650190981472297860551455042629745579590259980150080766626112341161231509426305268856771257205981355043800608431448356002956740524583408617768001082787084631099876989786088997422626838810994189584603001651978850019017631172882110206631151984634772225656261470766741966992831833980893576139089127659601543318596453456970863954152342238483184226915385056667192390383404564130900260972194837688470786683140038758272951865053371846113094451560459303267287074541364474236018757146235688231586501137578938044260399540496203102192156118844363162858589551264713122953265581415626345509490379874932232664298949888407998447224409952498162332149160629694545583858639841344107113693590215389993709717569800508857476846616711809331173182180397357827424306282562830267014933542516606751379874327460774293259339762137047168957103768197668565066625367553333732289232924021426457338158244405330315078187930891505286476469228231222567510204559855335608452472405481757678490622153863828700138856020435371243505056772426360047916655835887359616858225287101028815478841717078500146203619187906775925682132478753697159317099131593411723748389969955637728243918503323835227102671373602611106811055408532352644352970052875545627825980878264127782053614003547452641684012130222334431471400008259608798712646340083813899041593982983906829194348393934835346871564653456361915380854237799493361568054435796569038728084724799337388370554803600532114074455302726903845247220675032023355340482462579673171498115821079891702757719157876785608749245094215373047877702853373220623318580063532564254596886612098846208661140452415793175581099897452128325283989891412658312138039136359621119945337290793384144539252900956467027677048695012543711187386822024600204491903421320844578268762537189978284149845121435695093512339817447110462524329305700453146867512800093357210281641727442412671691556022356280132688196818717842540548619599468319328102783135954369454184795580246373256612027865302822763028187962732331193159731743791748690192133620263993542322436203489649547569251283893618540845162510962408398284430566531806861921752138297034790508171360448314488273927468703136480255739397621776818312399840364157676885032453527173404390173763782741618870981066452773400542897461579176994626141889751842961929818605147862793695544596599922682764333020155591131688640867600207884899888544831750745959010101508354474942430960740351010045283529768357587330903169088718950723492405008313808295711702868949871552684538751019154123719434381854927520117777519507151509841947908590594335999462623078074348549225717300651672335905955906637060980185788106536481421673534043499107488968421958028765736911969645254035339455180942371695366623017032312988095605716201659728821451809774316595503516579912239527830324206118016576887876802777588579178564288162962173642026322600137404071167654854948082075204356584088020307525579761505573480216789910090748103646288317327666842380866464176286892213528526857726184442035316267019543249887765443693897501362666882716434876099600071144576674947315625330659617012014018069593178760325000245471595076738761940353286284312648186282183895187325188859627207080735072715498995980842228356829815779007721651685285496300806314229616999307254509928986470206275865442104718181358288403457348629426917621322901403570991396811840750000138555751472297520005680105368834272136568103838589710747447237566844138487584782705200915693042844548553932952785340972109540904842374494723912850917962809500812058253908846787083060287085334486494198094369304544748124592659955409781684126185965422018769854253248827008887596168952189096643281209318492494503376590151312344047980422484139117952596934268851884100499317637139157368984651980636842588181688927118097402131275240394413535799257200215848247196215397271991900435884236012549910251550928665909467567858104692328787740401446566015641846230163201509834541361404317627609850213315438873007344848760380228803319992527207456588750746290717880499651971678469506477628777814409157897013809159581172715682574971532693447626937787426527700532363012987276571683829892539111788169324382283957689341022414475971021486662647581335661391284301537073287587887491208532811764653473586244559215005490867651770327756514025653573206564764592304606803371361790309803562093570381866706475485108748608922519314302882130181578490409264214440822449844390904396292296651881424573204440318615207676941390756203828398058796869079036251702441034689838489867467797012810206201968996572448496550169530680972096520001706809878355086004895837764011122318943508916224805536936903727912642939113712538265476689297646229981997058254992563618103858706152471794812289577965351849693415866310889975759821166635427911443828753005153538389578732079191477463204149284819494654625401833032754815759007849018909217442648170591616404694412162331243893735298746222804613302152084658912277935545780792845446785295082443202181748771381700003524198000073644255101706770279053977689380168846020456519063658355422175138963015178626470391442704806232577003916438924871414718749357543245221390362324316757140253099343389336330654301148391790090956185424962644222346492986210449979047634315829127142941515230088649291563700502810070245438105616207357405299828456362295612876999476310133815156169181765614144136400210224739658865254104630072886237544829019040078816795517244104290496688344008081883940264565112113251696231207115256718761403164501119803416159393766488048703492894611989021953788741867488593244040619980153732060780863486698758983239940550565609363260052755352461513860948345368025459917922823262163303991697605287069162908046627342706335377373042366687011914706785823795173917692230591461937465769639591171791612311999812395687880572140163686574965650778141728127574567572047500156973279140448471236722187954724642908603858771322133039685816298365485984445556527820705953607174653554273869527313021702084952896732823460673109079935941810970906028372180082049659205022018983522224621383724031391247460260606166460433135584243212582031845426083031531767847611101176562828259623062471186100641024544493476000527954097109045703977576063338678822931657219545498896217616424391936226204239509885434954314257895835300592139951987401088523969614078321663330270322166615463815564983232870290847677622847548154821136446675723948118038892016116342708701476087276371487743255136770851726564397972579575344434024933534922259682884785201187837468733623881205302861000134602473993472215583319607135166661464677024198541068696570059237506347325635446872724722397041498995474619486818998578888391578288530182696436585878221525593451692087862644959410066388588977473164069891474549061077011829619650903959625827135541227603128323467358919020877767381968730539324391571475330780805599383768371241908639206357931572790806533266433267721205373076261513874465678241054264233307377855173440026265608764179122328671713086683182995306501516620503526653717056353766100020977647593544989242020668470825302086076061914360074340399744607807492951481896493168174584282672017091215475906896373972121921548300388169890778018880823438644016138751481222708762697390818044356784633285992255873449525460096485875109656829899435285941115076913978248225029316803608503031501382377156607841389745304033100731775689458162801652859174753072842016460246982364603176150663947996815391380332524631508589279787950196638525829444308544937983126022308876386630510723988634021128651983115778898873772099441208088937758391369002836694520909913565399378750491925616603683404140117169168197297547751758454096735280805907338230137553251439295583826780552361492551406262767480570996492186314796088907530065424589110863054782208982199502761691561205329562364082772009983627557255874419412617447954688287324116004959211396630340989888383487581887327620614355092320961041141023824117599906333628092392064043059377208135858232388189110403501931447448940149826133682833958943128996066404104371698146680433008175661928758476592823770404140298847507001249125804614290413013033325794106723426054790025767354542208920533784103530324537106966319879610414507172755206881337782854833090276908472826328384601779871668190873492142863209564813399114931565030818679953030059957299688163723145754017749753486823838630805789968302598179967311725991547020175751481409582572630192191268927530221259440233757439310513716779533540613352095733285371014457270292265137706974467272918868513339930803635344351780170693497670441595610801968443213975117661566704359753463236755080047183063175024471252035074438798387424659167670425431001933341364454835998471604907145578253665890960161030161673626091549737457824580000061053030443902783026765197505851170331771598067138990799780016884092189658079196451600936825834389477782015658765164225190976539997735861042781350724222436381660952323234901194677711805808832921620148056232600989421366979801724481214701959944907052445575823901606656288832852388081993457817006022984607600441375322338555578742404885675431560558429400987634209832801271614516428580872772977127634538970833813534593888834990371435159370768449597791675822676002630984845928752644214626985396014157927291952323617294718744483982541784770342668131197078353072295199837501269889589169361812695548115529039871337579315928480401096296363780826282500382561901114271869753274519014015624061320580298359377173593238924961100642055083795564132785207156887444308111438761639681498615678626621495789520755353526972323373393450574600443717085065675429237859477845725729981285632901005394552189740452968105201161835545455014350731919481330137295860313609791656027591949744129050485012705247875652897296293806714612977660361551462511616175412507776873207373824790678252130755586015969472600943157462896618351436579770596995734085942196556887370017872959308338386014117053856586807553637697536132452536095437588112304836757908442733986138331159796232207857591042329961626624258796223857100891041487470752237640877665282940831759764188577142398366705361223725143183594795125193867737153850045859683318244431819017064244342289052152454002309997259594751402066179015498826994133697595797975125330209187532684280547663066167488243445510949195965087855115501924705322983454462783152322845526969429763208974473812673558267589896709220802151262022375718349675962307951469790629037736334293511832332563640702217778688354077357238665025949538545304893465770105806703195669460449738697412963539477396993762946602496511952350915829854551462160377732706816372761217226991937603128702668373100764747864227894189762522589249716202733145439974472629257260900483014667810441184659685625194461400573948448046252864528048150575577101778883595470638296308862427217221807170075720089197447015907740650081828464194631824371574878331908765912603784400194645706540644323215481949926455629773645873838505365117759558464248219439507349843201354197192346258112084101652447871016318258854314884421408630303546377356484548961083928763188052449171928489142133868094870910243298080407051507232113257670070863641825606812911019498609454758064899597279742116565728205720005562184637518523122312719835902511132732242299745382990002889608982806120693865088829686933036535874324661349550760489171633903390209724226237785745527603973212934438476254221148658304641598099515595906301966793202407465249686898704402534504693892705074770774401383481840982517086497669252537486529548518882197430427746619329976252076236663921623629108005770875500415533665164291880984138196047869503589878519639306282615566764855915420689962767471341677510888253903531591091753594060476306775304701219105551331260215497040521419722671767907359895191682398797988645191738980014339359396713555278153054487371941193536104978034361926305941085515731255702364121456993753447265044588281911772919361557276049210448523395607022588333354493257785701659111690177158937621544781470201095520209513449803253582529838138862133484176550128182367882691086587933785907923262895731325145150797124136937562982276498091310291992213979089610965818986192957144383148380407756037218879624856130936189899568457621990975220784032323489091372020565498415222463327086715551293230288285378162171272075940258701654012046245822812254521754542409028459784793651979898651601023009137399317516707268893985227480005297161870971447150086838832352262349328040373890293525024542221778539360691368145830079293729504635064626102664149393839679791535638902092678104978964193554136311703552415698165555500795890886496176408367086956682685382273274774694102440738471415787373422628847004631722790471442964125234527099990680641906253170351473899909712235370032159828077421946629736731777206548494262608329249307389050827613787468860105549469855110802442129440720222930837632435946186603946560107365293863848056225597131995740495204173850179280780857628140570098710278285508261206725080579779082279597521300792084163171393005172498230250101656389842557754408623333463839078588882421494090704712375611855838482602009085778692875791653793090460588558683852328007143904221155053051679148226595202534898377199596175372429731594468621056013468333880443264897227654142717516067382007548811326847857088876439970548301479757560795697283458382290798170545218268832164773881879110474467204707410944621880459502831350743871163931356365796634252722783052353238400177344026017868025822043810399490710713863576131794801879008170394466598047126244192301477318830263082715353349139593719659954302966470816282428678663398578176608429981544561852839942941979970194316055211459543672869079181193197458449227884392526673290982724142641147823187301527849543819653640487704153512800521490950618176418160849744134324109549657977974667002222533448501040133664850998174228196239906135279728587417467794545744751306371480771011004700232725305663705342013023004775533554896849587587787940277790802360930761661848276111436279082905770263607512200194735205589103508384449760484466920072869168969501571862682219310228719027040831164791613336804657848336813978688351879829545390900213071944740440235742591618465603982664297008784656501370020087843697391680373233035939669518102876307276854726524118372881083378985561408360819051280335983198328950393453126768525486761708565831905829813364875376063060386885556380985754840223301892892895870975539010495341364560167691771005818665887383095497365761603888669666135356829170369517833976482417444832448552700764034283752009565357498791048759920134112769112582654707205260336679618668404799733404360997868559327732823837100952925291093631234114190448198430351137111066867261051635180162222560649814668939549971073802580301975818670651221413409982359369315384208147125236671060083661383028472526033720766123475718486535262873116874795841929662159975146490505258978354692033111823694967827073653555332773444080801283061458151818774377132992178912957811223927270499370181049288263388241788646737982599438766987995401447908877893118302590538498182073571917705976609913863453199912437178371651225722168303672567447890661989927075248259687744024285824943361806967820940857861923776187314507909765080883737627737903059976700433153121405502896378461820448470871415801165620262459548464539223178489384156928930460599632868019496557967765268339021624099341868394483293399668932174655224714632908611524740659868287952989057131132557002095134188360654591290105560423971856848054359603094360159262768731947153853825161195992726520351082116728236388155312896793260298991445233064585775204913312299577483865320982545994146575640262236371803375761238530908115331695677176004749163151889234104617596461116594560896032947717075216060453104912191802038494321269186498315904318497799545769718391793887706129507586546173585768827750599947052248589400004924520665366127335497139366916919985978384122575930200407011351518841644730816755242422950040879165321332271733593334358848139503915662826281121048467596669917034581333383536847571179360753382056016570471840148259978632504958481269863351635258645701352891771132082608022362613731877035224840596452277071301866258089579399667456252603008082879620739454031648202813362393824992999671621052877196682591725037133498404315473130175315643517362724565973126141777807179872524199861829006771189241931027825016603972847584378828524988699313936815613336895366822495003688867784185217246336930247737170481710352517718674981440769580753654554479296276487281620009559504598856928175313958905710665746752063655813686155858308257520286439499171335899707408944014818694514924579179169078682066179911176654334550432837312795633247776057508722144789693318817783657505683176099731307797459443547021711274800591094059302716011062562580947552793776553220593545117483887298431445711182264012766507107720765959159625017358674212744006771953806641894193577891448483995676013402327410224027787972996556082268204669904415377960498065595722382122063912909354916782372573087282855614383316206681023824668732512002681456708324508400638271794674868990157422964888903938900370991693521267468537189682491915839423427889464757742927028581405162173968646605640340988567304647970676446325389378173974678518585866683668249230440887340243542557410004939884753956932828987205020161540293589824240936177558669952445314808815360041274869171801808044180304920072956141020679371071889256164804438289876449164308869635524738375892771882118060520004173263800257661588762980234009186509560957509991964873867710360442034627035328423602757970625654731199000142562969930590882710925599808856013121671311610512954872395209252231974420361378318860350440225362051739790178144232768424604138587330464345246683528453919113644162237691484831880418317159409582619121826821227276076396587487570710926269359488824725766709536021664526085661807244739328674788238849335970496382094537921838583082927415440855275065034130275668485857209572235295017392251565965786764724588590742456942594183049030385737355497047766034796686065001985584928780582428738392875928907133926160489448949450118983435380428862726556814662365271500985417124576687794385341709323335262802092795066037649022465376397837980474072808542326481348562416757953589363126559095971688286933661519364660696680781588519264480023061737279197071886982634012035284350331522065451543359140977820201400120966782162624173115019446015140165053456922876652434632614275031539932578407966498080121169959646204042111154335353046281927388398153512998233173096774135300287432581554030439052017110063416396543200433671817861671073588765057165671732086098339566407572717351204758422567644788254396515660305454663525000138106509196935647095727954872273497487216737897152566190902701724609842664592758839214073029982861046958396725785299609669913168048403982312222121622941713566850091209758578445615239575470354951658181825540341482437730704943351937628604375841956768390513733964627323353739631598437683349513540099825453800586380564691648676289542116365547978490940424687359832916536142674169150770625688094003689582892007885142223666596548881534815456332651746172590010389301916423948907393785003908435628556165205266601476469224740228272333892805614653658031730111179238354877935650769650714266699055025467448513123258292064284742300724450731464395501854681159959815121558777121253570088039588187702628910941484991092240018064193587279023480709593312114543638417208988377937403643437512569493357624499094355403738546975932498167480206144041503582842035661071351775236164238908382492391492195717985572151489993976250110701340004815084968964204504556391510521794238933157456248917819298887266765071031446374343164160291720005996572214952897562947887865676491511323497583805446404019578126457397509008292595679410663117351460232914450008545203495069325315685358792500212219163118796231130905372887797070261610752474120816914440965981474987070639932671936811675095468705154292828982870167979574604759802291284211800296586686545838897704139421467325410649775983279000355856879318932785373214709027068219504646852446147317913789987318844243819913059863740286219222944738455723450152265096982396265959935628316633935095937584755244010441064811499076193933289029836402905586378125439783832992182457949003146028837684121376767114317862410063381584059333142053560006150299132766352511241718562656800686552776295702267073533126050187609863307322290358708489982496209459120230533217352659160116344439560685450686471429434339663545199359121316224898669185888239582316182809280481777544998087441940513791587822587325071774848636502278389292035124111093221369276183176579951079175395170319716533110997535687107159498760110664259528344274493590963174717118406855844916289056218602697403755775879297051452829168993156509906654623967928927974315006186691348328080667011202099580237806893413520552727397828886338806178227174242742180552812599093046799624797321188876543847614645808576558317382678151146294417625456340427418826378865023892660235345409117392316397186690595254351922668149963906223567608370976520699450887829778397956624410843904841628936955536362520677732017881733389144273029467559664390820365496834075878255494391719159311746105995446062723593642554398091759285850550384989677654885028126045020241359235363878713659471165616539628758756400814392371833706283937205650789482814580287999871205208963717571527478849293805029908533366466642433575629346185799808406067676847415062631442950990723661862363178904210834705922987654907202705719607264191402768207615335788470823470575980398717351943399211213894760304869009338710993554144769570007548105826784445448111237550280181884658100086698071011593961231403853000793981245010586785190623293140914673788223834527718406910680717043943418744374103151602108661613402895329851689269586709836954327632801484225222775190345428013633348658703802746558475257724774968856991166071593338439050884599320186517247841814851122884571046726611209926482003741920168709443663707767087310885059867327598316105121301737278126847955787010627091259192271769814576819601867227098198196421025427517091459562977423520458556896430506773552052640505689892324909711178349237727711595469976353764958231597887572751392765081638939407097051360041351517319755651743718157633240014281126635942436742251587730300190978634300251357626222994281746436156869411158890962132639515967136233785993250894922269293979901139351835743016496343090518977048146190679100665935535140768638439838823197264428752523192125709585158672093374093603329146387202822454681318358853535341133711592097116922512283942747515660324327739820751991086314686200578930582184852506085294049020568947669762198067199857885214493041801540805483787742500250707946852635702669950187000271637885073719546975896465573963980255657908283576830510512136678991099690562124467257627811867261193733201972685441390883408148738178619932774486170388076692797137364434552462740788036988708632094871571627248735888872282466808130987186592125152098057586734268864024877173990849329217454658178112303175631312063200508164254952979010486732621843375719859447175973114620756433224212831767958559523972749596216029834294748328099929886774303450588503673720775652167558516336632393708779330530270810978917170141986135304218839244754519679024647186688163260270726801417377436131876053994297105446734626933266883036547316408793079514969101298801133193946982547816561522914594817268318913241434843058888954930306250063569666171501424262933743244978725546673512442757855459386501791428833075689101079176543675518388974139492268529379023253271654542681110445982899430577449212503238560586687620272118263544821044052929442036009698172017192223482987202915027199088751317656926600473516148122147961614061417812700642056641102156158505335258264338951542044072918762425497324717315655201711828075318693957820287126019262695682158815989727809082970666113428957050184899604091223314043077599535838300430795623305156225950990255420600997915776187955694515681239935767446092435646691634333104935812082454611809589629209873709335289271037219129416603004919811388450540215354609633054370048023881860754185066232345965493449066462185262779512597647243492072562103875824272616220577254952513923136959010695451474124303679860582948330730703648387678660148428583265316628298497879958752503647903732103142404113613161988074671556038155258795144112327942682814632218395416933823840886223957170422048586202863562527581226968796087823279701647437766177812869092656201776340509745020886651955123287122486840350255125956490870062057059379458551805593084811078531397925794548364017292472119166180076127264460617856715100275853275996505712177029690440287970227368112924725742360074083245744975834881233204511703520676859288471018531034317065865573093298201085772543969370694371132208905644358974738047988401116977242111589318596329984184729620090061501255931396039113933629244658555188955195175671860988972024785663115765114518074487594098995032092919684616928616532569257726457131006848290215299037942600093522444076983961733994666400225780400161880789807780800527853730400801258639320540868526807562817268626191245261624947958171557847173000181865291917818537492471483880171612664272608103445548636319823277945051360932246228620717859333214098500216314864225356068623504341567893520552231741638793213457355176897638719275450034497123926073438281727947635559495473427186807397512728008436089942090348283516421876135947809330443115283186354360536271270361072322865586544555132591220623762882277806413809904152948773682345384292893845614412452038388571524805985070055761411778148289729625535565292609483629450148829940578128966231374470224564686901589725742813842034707038750360484497785922276130888464485700930560242302343590068746818295631303997202728939620634845230169944229068606483003151231054118663473616404898464659826655887970177452843481093490616909745676896559311239847752767192979989363787736812510749312534191002225493808974305403929823428750599284972817936376247768495760789900867819404666702949436487402847584173486276050220057701624035310569512028074485259813592567873181006870488764472948803849346245067098561150334066556046903831016440701218177882691187625916637816636825024575307181938522552819484406566801213511187205710371378481658028048686730312544299770569120178233165544416525319472395802037832087339922381899679834682402308692375586626978452955038167223633449747256015538337447559477293891478297262258896778126381609496837874605510522600631643587912460664482747856373193796636826300636944296419841309183304249311356059827518308145440693046320935040398152999343920444712452870123300587853802180221861596263504207605469455165884862401432122776357740591840723224957408022829866025597524519482815398012614841735716580402692149030747008014754521510943101249165092683893508093005546050344221924519785429216466947651869234941750585011221718074978589294613824709575113709604758693095703533025543264501746807303758590466572302913596937659583853623774302681034223817465171369136368749531254491741765196707092103150431661079192120870694198405468141264723709627360321885218612397271843706918838120483538384446975918746206814969358448251002727235105801477243586739472655571681206644016853253046086127919094340880232650799243787308340791993899273085003166522278842860559747246102159397208676106970398793744419479960421757535053798674030549094449314857921383214989996900558968725572346858146662769203546527009826963245113548228944656187052512850752949819490662238749601783479194905456692609969895919423537690196655380031451173947967165324929123546096584397355032348453911093318558701991720296642429894669745314079942593642166656669475231633682597963121265811268573227807332567805641120993590885877464783275090235767044645861100885998767452716490952122955659667194808610180472981577597534570964335681690844706120767844732688982152564285251848395491161076146150329034887620119755667953098090414219528829762768719326313354375485070211735890645616378071259111320012919931143981705210224942578666035636001460946535441344718366765572646364921453538813541303893587991346429800667614922213722352404216636514368241828703917979126076868164434759933447578862249768721599882063561544180906523604010265837470948570744497650111365804412922522722733523340381551231674493880637215788914902780152174952802337813262897929413599120078644761752021274306736071645964494232149463053620608517461646983492434157420614719619815144065887549974276989162146606098636371757479209668045972815120967047931971188830255656205579850608598651978563483365678077996341872361400770180811181160640732895328182927546319768207453439243070096087185903804425383286818464590185590547126953497207427530183599227159952608076998925360555408154315512991402069698737127369846593870790749251087357384792162786322139754479628458384441487307949066707183831499318008739899696650609949461075851327926047047372459484374054790545423265651816237571941267178384176824875289647909202464501137275945396965478201834697699095725791885756314451600788549285169231754691749512267113866949660978662791452091401688744459239022392659695641410835114859733643990850656668879469194712798569973670452125088789690894982925082003216220706348215905023433582854189771412141856292415725981730957651789792316171240863575496632112707010550414922012936885405886581290457978586905660840585717394796007997963295402720381535866808460867180536339020656041865463174752971852779254604021858448113162567226066988965607833767055658190271458034165431258886225324319420069006232016158654325741744368204920218657077107184814048772738128875301768169254003154038080792620492800036676206968547731797763458632528220522464761254325958735661890531691367013939614165808952230745682742338268367854694572635905781126960587498931940239789556377190811150986775580786738767565066165538462601934297308892499099939452953208957030160704438322035756970935934526119751724190830140235458945488135664544369654776160846605091801726309404144811244814319728423984555540869140471332125530472551614061711281384597633474576313404845886139208804479602103977811090271564347629722717397352774968660955092083241820079481413677843110417596349701122655110182420978907230032434455557360452295298279629323985914841965035888722817574063366552616786852025283677512946414061577995164749235616432175673886090977690939325453944701252505971499201794164282586443017991862975211257612672442358448880956380443865182212517902165389389013565594538844077085316734241501524419736480731260731026446121257253878628426585011030211739511848042047235598255616597232891095853176407375311690969325146693465781340623623002466940709500143224204843639751639380025799498152693542082688183094144482320957851074043267386938437134838136149372995897128769138232134796685042548951425039581951429095132553022491554567933919203676209056542072402560549953039075905849677662515791517076056739661597581668291144421265848144063890554307075681783505287849281917746299953668767556306320955863241564951048378222154508193874593819268998641714804231779036782460843934081570880085812622998880872327897842607517278907402188404899700944799664929885836814045552408693283398159438020931799265129137095990216352124008265913874380073234584372608566005341868376089578504822557138742221327171243858897767357852237018720559592667014966856037936658200177304754454212469752165359566351949133803861201916761467122724914519324429539648513057940403445505037195343599273612970522194791942748185155929822602624662809557178673907859757824585370513669633529352382604781307480843430200063382092007366427488980851569126773553977096647005170766730523329096550541575020550936971863039265470872815276428728975582146866743177041345804858706417591915933995548418036103256254049613884825101607780140891402662920747182793407689426854838834389879123641483265924334940519004615881356273129693105404522288263459416227120113130388382644995578162689339678862510244462856953787539026343275336670440308501314749099660949103556249664970285385618045774662162689801055936515047836921064757888586219843351061649119472929224484171268229583875595891174871829907090474096512065248775280943714766859585216684792009506643070242000549366989238461599245330794044806788339105027914483833696587913084628458146552392388768948452909049941053491093113763848612394233598791326098871255135903139787851586951366576474204857707593838134574219019580724488201360839678569604721176030237115984003191911817419539727395040557624025080912206943398652931761651324257450605824028030538184192737335734627935767527265888781414679830660584228468659525870188367722870904608432327588278181246568941916609661377779467786108490325487399081732726787344432733216125920764177980753621025511770720519763704417978685721864920790263539594025023370871619410701445607658145640361090838816935465773242747539793628304356762986565415316630023620142393185341341471621038253095751653012383935229376557523267849192168985197437891524352834102652750745628742523059814337898635094880675562431294576239492150663750063721168073025278962469444979913068125404253773430331728461307798357454954817452215219009106564237648049078709242034798165455543529874678352692662955940044592799155335266702880423282144137866896045612784859339187365285864130192139225518259435441971430589515149950207786833735247978326924218845122203240506613139722014241618550816893095770820093824308640535263052817681574554005455700425467599976112469599933270721231040723235665802433589545338432127323361720053335487369162546411871497021918425573034033916630197371869427364235605541634172669489511103811434272807699933386827175834020540652986101291021613553572541463257750254671857531297374421561043131135260608430809395156136247183254452513496916228115756840979542139844668206597902923989292915116505822924955457964985488361844925960128583469840094740204370425822585918525484208280441742040533141607427212479772292582125403952297650557488301702955531832429460621632685264989032555307386930108344540820441248800594424958630561149208742030544376720153004370782944118791728815843828208021527152017341755793809774296477314325703561361764059764137636490269030345780155920797679745296582459129356321005612756277418958984352385548397597337853437468964931847948641609917737314971068341872017004638218321982250821575194370540264746796000004137058124944193069297253906162890709971958438619740116364770869581488162097885094206560624114580126090122575118794377215982020816392841136513436244586886025773622807775210145989562094639214351741144777972008776493680565281723012243645909791463157149965533242786458647670293011221984078763308314328245859040618437694718533586185892943129284674924374098101682614835553438807455025670755348004474347271141158787021267559051751996036040293045319901922493457292445281759751056700134015704914047660726473817615290604248075665020975597236320106823725582797854096488561711946675776224824313296365684266401971349808899774347230925517717639021053112081212619535218273958701149463038476337291132761087532691229872962955856936137519542776204342675154336161252165112874783799394778453997195405282832498403647469312192515747113230284551579849184891893518596229643085790659099223789835979754491143808576109845677243436099044956705760450541019895095156892435297562860848833348630079028904611005161538355454232042615093227964589125031540139652932351924566285891864063971355727388819863117863398894588367668891831736019995775932531569584883538635190458674767364669858530675102800912259882620432411466257559103503043440265350721173218405388424097759045235050302954929953346626690748654885962905651311033742706125553887408349320649628953094799801615385885768840088199614628244976965154093983431981664866819675975542743474261266961973338908824371243725880916130053062451768984959962943772843505705419156128819014099444083033274069325595011800403015136652851478638267352134712249980959326256778847249487102979061625446802265146509666410397903153467401923940367799776051836801943283599652428860218467663431255544942794092145729144908394214592486983782656233731254350011708001653495907452798140906474543795152502144697709227518442393670400458382696033608150147863901415897520998887901347397626236717533087011435397343427701320579225903039366627596145956445939575757169353841834047454045999649199895487252127203072176388851385751895327850738908165419535443987891211602285874313565239139049723011704066730899341133263352828975455577092346499608202964656307470985777851358307684129441576235016894228610452340143901776560035510338784601686035846123660195172412410824035163446813973663098585654377523740487335794262771348828636166398680598623358325631255228818623542521225180044565040355247825122006968982276041557960009309080069475471732655873255468945459121381022700923025578851573507010475455956621262681787424267899349364956895989073505067833872246889180471344039401354104958780425455966878230749489159029042430243708537119790244035994420684219703472723938954184862611017643542015085648489757865244806230028186174103481902075951886608748621758983776207802842521961535066263787301893878624768897461670559607316401116086073571199200793434251507052662507937537896072706619730333425980541632986751217629267894816961921493032161751125607057596785834374406579054380287520788609155113773084308310679961787193597594930888891300270795605872570723236421327818254935060186248636807441770204553277262443725527069717917246722890217028701210442515971303334512232607428775079062197661065129496186470303285970101549479654141244493127855851571221658928672916721122738673655401624938909588939814984436478556445744455044840026929304964821891580743815680592544002669850109881965309869526089028616578689062707102445528545138861602521592771109979019158598145612930440947109552102445177050463354434111569051536139316885640361785619845197030131441494838071955423704285764499096277911069133275803066006995233335684140626252132115028777048869945372386521932706468131148788547544317030771278668069667409795890763317327141068669453677300384425455789085773047087093244389991442971147751172273184679031878746031254040663228852048388126026515876769723878057869312445139582220259664476112639732061115726827912585525431715774914922861850384571647320433035706532233483088298820652231815313905046276844951763653633817252955375518616780999891028594614082692961708049955466273726400241824956714262940269544026304661824558290559158243265667760164754170815940871578774928221599689685663706628724316006835072211609110499120502943804506648874619735128476227062949764533019474757961427118201963420037529818817293417303724773755304336168729775571406437705244510800876881423041518595437259429919848089519494034687061708246989744873411716540035335852711278773405349809157693347734196566187710871239060347851898730524001225870046948138046143182315538771570673114738662319428577686466102127098341580204404853802390486752160597247237594775671041316995559675229437619185610645827866673893681582206529231040761054388118765726942427219068141597328325783057565026284047074277966178262395457154744389915717299526080298753242383226115854113858477287925034525511280926769809023336412935971983064604524364782886016253147714650538855828820015923777259305351028768613446835491027431543197342949546385897669377686596334262825024495626040139321852873865380046525546780481184942846787632565571677576971559851169181452455129816172141439453754911018254655321108573414115771608806908863100135461761071253703418409928683480189843834641917304085674971064549240378899042578663573281445127276122471874660089770038013933644325449529880138364116039874463468092498265220538434561348243071009670885139239193851567431741021680136709944672336900475366589676244322019320439522077297032974397323852896281111020455116726043955231694562348086825831822066733537650227703721073305659956751045876699731977618951480090802446221454743962488568584359196337462004817133645930583142515318811736317558285619567484232019172617789807925247003459118412527752757819196489070723428928775481741415254311043166134703408439814203727812487693389722732679443153786849723949742970793108662862772607843454331630654708352563280991439621818125896025261082679135576863801952788524359589830475401414585658703038816287208713124056555108835092988819219065319209991592918302338289810351740068415763530573669490279276841862157737620141966458441344372378065012455753310905275774926857643599135732009109637694784635458938581816736477514987363696249385797827315587834916643454539702385523242159664532479513286075715424162049628952154809619229273260315926956038829043383187305753662388296716709787680567733956063609182606861474273664084529628116934131611022554384368172993368914394961953571614390284091327704824018197239540349473852758434518282092698682261274450169730260916685249562525392644056983659463126298521268185307073447341127138859304856146038703721804160828576560790645132713866410025820555348247990456048031806101300803292410310094285797445620658647733513948564348643818434745723792917766481005161045361105794897020452620702019252487819362453268514022729090687350393957183954883059599736221317309801117347920955413282844343171176436655839084244167543054799142125530594805392405312753288314643451370097254803543831577572999982942868779293000855497205722308963366280570607847231483846535647481776767958054802894633301254867399032687164034740503943906403826402139069531584731288921801251953366362960641501389281802919962532164234246302555714927382849171092976906957982147634540578407479409510169289917355350323627156512501394096413122493185955159726729643839828803490826324375616615780637243476253864855133164661921211170366387235710003595829338619201297216916792424758915559439503758752263462629372813605351109562028636336357396271046202060573890376212486878533231706608254613374311504075971620955621447416259404849237156270400687560197677335789648185450956802611957161135729555627606619328033222044763122263030457003716158823711164600025281937026295674790040199635414445857277744573231525762804920744990724752811557597129236439702888170066577312217646274774764404892554009662253850379941273433539609324086068583968297728315384008378759366233637962464265426704021751207552246043869321788162950950584163227379470797774111979827992874882339764543540475628919971988445334252161857281782426252000836371332830145188388625518661486534919258466092140650489693309374225068171161968840260344424155406335672043011846684630682659228938771606382461461467416968121335586374220843620221103521887509685185295505080995535121127499714908641699478067269288519533415872134531044390121651194006101429365131654953010961775960988884716900303204453319009292971187926479020087930702241017851255453023484131926018678655490736721236823626932260434215434456736607270803703344809393754752680309790043974170383601577559975526618301882687782080386137335056918375917057900480227438013854663007424170283812415542018891121074844156490189790876486381227958139484496068252850952955332566599945757044233064626591815540161533595850909986186817057678082015978370980255736408839107954156106241586011374143141894115374213010256406725898608137480031314635861604537441050597574617766612866798292915685407520771429193738463113621128149160612208366272157144944358492394156358811083546692474734094944155924789142896291750678877670072037589130823669406892083258413470988006398681858521750303100595619324944433405920823058596738423974183611996043336666779249991589533765509825794652072758664571139265633139146507337540675648127246279194281901489106311070972713582135386750014515928954136168522952503971594190524000046950998798155213490329126398179300715002620802946875566865684590470358916996549938480221329164082757890793757010452985914394637691082884363696785175429403316993214466150332490348231267475106983564534958191783430002818179420227708911969523252776740815517300052525582420951040913576021631230507602255490168502020819548206747123414393488456172979255596893401346466944533188077390795136695656017949627227121926685069636903396707406194712459949430700629764962621917187878772043700732980215095545450331900201437187303269816704884314396074176146417257050603185618512392553870951833222449780308548903504334180134614493631981941351038337926213165963503166936370606549336973412977303821959170811522319342738352754278262907358683300988555978962739152204562477708279221383240756289245672510902674809079362803349620719264281591720530325803987062626316459523789794822496334452518875782535626188908508593677708091868959044834264836048307473880454699386304858111952273948103734513130690033599911928345053795301640614185676301704305851095573008694003966871253599216447533008878327934646059156306993211654548515802691762817769296436920545030232663414308680601568118636159437228728555007553732238431589096250925190108963063502412269119312752775865881626808331118685111076938829229288842170579407087580830513308979670816935061045100347961446856518459236560605443678185731515186109841500191017347131327084866234630781099933219945131371268832709062568395490501553501062829622088191913578043192258534731193030179812698945891706501509384174016499868194259995550343536094934201967854881677022661384609959366587384765079896003936809582667506534309590064374118766484978719714577789613134009270990258669701203025092945846047998379336672579632549012840346082607393942134994728021833796958541707013763892331423675108156552017020228888113757030580464705463763788194576511983158709236852980782398318163099127046816061356856666859152155504191241427615693624572960841432087900783392666238754019967460540154356545252485279423080729709287097858459556813585680775232258701657222541655591596050911324983644585381348172475486163798454886676755936408414590119132629101907470108493315910992731497786046010694318792964277660628770015523600579656045607046609233905884272476369529002567044273418669034545607373616615791324650046658229811841438905098574660725710501171535779503590491672377004070210347690258199275586500295535503745051804518791594414618588004460886499850075597730548482951947145420902541016276572606907103149330109946395131602620944844065323259398002579918091262937885066491205543988739614515026158183443907101619324931282338517264624826311725442568189433298433085649071074891743057927986811063797291267149509138537988590391382696976038258973222222832366883159456030752569691730696404191158253635984682263416844934256692296662736613369381382717194500761521073243440541809776157416259036723164265854834264155418674144368879850390386149060739476671346870641239045368749228229163984011659008334994082874704776194676344807880801792906195841993393986627182901000911284067919202052566385676345881539103937726974050597154737956666466514053154598744161045074504617377879520785890238033500405250093820571183020993707958600461296954802360554724476224759870776374646810413558392683817072176632477944637489108315878359885881671952119675247970734768586545194787445481803030377658505860801362913271831979063429954017606094257328735398835456778395426712241304829065152127249860109313134301613193601816689823703336764143801360079664689603529471043667502496556248768008817983244135369721015140513793029967841404840637550565446138825833441828596864603114737754632993422774726345021038552436295863539696051098165138391697040039981386778755508076760648134306070834040028558823314713896674373770353309428624829687785560086608143802367418006657058199795935276311253337861655543821993029694327852615537581036933245439123420739020237470138670720428019866841649335789543864016609631334763920417325308845365299662869469577119166978497074366997203889702868795708152341619144203426692963371137744933466575146984396592869804910428768246393466728111934447170586594919113980132587048078268554278568012368881455620411694130239075079484751904386657268367222595041668314356611031201992911853445898865396814168464293281181583360501632415908117407451827714939871274734050061484030278632471798372658722333680064607990422866737864646459797905552574253698012245740416655783227831760558508351336333146560973998904035405643812899198548779222695918693006086776430941094562454423807039649855166113122236524459994509831067045631848533826662499446804528185997311536821444644015744527611466156129092818774411741562059199954133431957406565234658993942370742565356531934319581171742775255119827166642650963837389256551685599973531792258573868409316288457727456948415494946009209153529101529490884038050849637933244460049565244019496713621510551902790603508101772643081716632060094171955122784964562052957777625635095131781968311061392218775464199119668579222522903284669855322614885816700796583444446948263846050130322199415318242161640399576787850754400207542419010461334432663728030800636081335748044626891109939283717404643266341016974135945869314312827061343839941588513221034889788220865097161694576831412082197201477990556371219386789988045536964174354029043082996557585339035861806622563539032144750878452358644513430305223029891490089699526809108096588507872008859943066372286003285418223414214498790504231043404722293124750678072473278408796063052672521260494223417226401319281485607764057470906050816312197685864753566510908779497315448033723598657217749418895632457152644168558363462656810876968123931597763666840505711996625985366303520051171474399688718103725691876484147936954413472885134302044090488058577480236856984206552569153003437176397830110830209692260231048498510462062853806403223721213394041354717890377132328498019572641383433391052514436224667396175551476059046196044832577613885219417714611688113901563136260175312379294830490590858896262262667800345056138235164002152477080459936270916556806216336354012875932588268612371866973210479242419108613689889084872446208289908317880903228024981402035962355531164190476504847257986699727318365860017300136193995691877463069155048521200453251634893350414555776406751224550987417094590331633586629791660311879557489486481000823091180510892328043009984920443895622339814321621707195009747692973821532183531028164250287971985181867924816048703405410468601961751619562556924667061518787908931301581626123888344888117504332937331732398898554600407518348673569108305914733377377643602690583207365143733411228082708981723754844173295465426297555946816480742169658333315361598936534943121957639675311768022898122902107894646941060318156067236433647499294173757226138416678004846085731742478620250418030758448854016949070109661871387258823329245317768221152170384428927799624198212186810607667533346894249515279760654564587966601844078833452913419020660263395594593679707628079218123977206387849017379730044498898399645097386287329439698206915452872450121268142529592332667343767175781942810696015377419494154525234013164249193292828412491631326278649979411911439376587885301529685056620363087152609818793899648743445680639977917341299292621574926679134234612632858485212039245880404116824063523257105665842447133892044334892456719529641788027615004630701848948273669846422057562145890121957995628690548726946560957692672344126981741408487537208405277707184044806866501530425172986195932472295798963198845384511242843343491099636554011795529603751637014609149077141177777894889957017899819134162701725981874937828069832451095932652001798875835824972226092048982200453873948122872744799691412650562378239307135230452395708629267174457069761035691060541712784077894200244297786525043637836889630135915121004606943621157125262796822669692607384615948834618952626212953252025171063660220143716656212853990863643849189536778166690140150809910979689576133630683705886653212657095577983388595309960213090915409035248904934123865157464056642995749641339832948069429984325467818833595118118257758819670771853816425049543544287063722268381324158174552038893768618023584751014591160415387721293388871084035717319270140047911038190564872138954735563611350598177921525849022469076612306615139650966527528071307641424359407258359742142917333902363628115842635795470534137244675804466101712223490876091598015926671828811983223178627529371113665270660808582521264962631419450340001465961756386877545523654535219719699494558250038266827686349009972248137949095557778582342978256171255778812226273674985847628949833090770506156057009753100376632041326211892752825454716813269585286138870013570380875177066057965873461717647172328016169964728119713352372124667832123492274225040806125498681057901230750589207554447313213741177746364784689314009350636539836058987258226170236062755745431625239950053799853449202795396348294544526434561567673341937668424725888928278272540509940073853392276274198972267708476473497493230775705333278223777248252155797743812902680045099719411084253878542711398172428899951488779937684959152050357841432322661965257649342922936193221402778496932545802940131556091058953274043865150465369084549879518910687565234934534935047356953217481674577423591789092271393490921896220592432618637417696791228725665573395235713437427345507792826374076281600177879998804328837544715382800456241905229294818624950725471618546333551896681075193524814800052645921782029366868232603296283771727567538519077432819012454825701458385001535128923537909452317692706005492856376136717630640423281734429534878742087401863325821555863852597219532210242463888188505046611010775893204412045913421230831215321055467755753608903731018630270937978797786485904527110487655698894249103777215502497663392620365600310115384815664717478587718752898467086636823534950329479811417289455035525963992947661061178120534308467808427475515839302767691657966434329191389693351703807115682937978016308033935841169761568931674491242681896495440189434814742791113756426021558080710112207563115290284322076739630938155624817487241478176616491923425761409362316112105629033012822052350748093911729496503337935410884470690631004836459426820730840416120368266016777276931818064834799420623836442568934897342479852023649561261667938758672317848714010820502211076531378903579618634840123062077745433565777502855775998639980257477704472279188387372895543333451530620771035784280510631932928055215211214297539256313416385079476361843229836103870831527426236190006802985116000348976851874271635051034622064894087667219114140331697028973410209777885457373184370387403439987051476625867449903843825526702288205138455910255054955072501630760121683797128283457959684621203266718458804785164065850473928264771312885377422364702071425842478720424338353516896946778564747424036427757357757688738875255320293551787863791076263547230227084216447845660832392895406537769262803947318787056667160234626218965322402964237941351691939331012602555317663516245306293860788180825827730047336226183754937123373081370258551104581319539249324698909472000063827407034325804118233792980077255817654096661552407581976389163941481163372216627908138275000842016686709441437137799503729136612224404119516679422325178396885094597195333820201658460575930408016929368763740236594369031661649607422121000953334769560621552725443382100816934488693708841138892603353666897666686635041971798499209730724038947808909093038031247558240976618503781726484022766519946199861316893246795553082428567098486942844428749028616285373048532037045592300500332948070196688193235612712816725770371643998032424822200136704997448673059757508634631746902232610295059187476647051899467033252687788302048881618267778897537124038815010599095130034070173636614126638557787863918255963412404213649942180599900250774918657327385670231712825783085311859810484614997483873254542079658484936686339968718490338350577863826923891874250651465876627543730164260017267529307129849390899626318024998470955341355282252659037403175681831613381589846527091256574073824163883710849442466943148294911451117723318711651579875848744724959649532190835791587181390421398959656147824307881777474016170767543594156080995652022650457093570282213495293575327597742097015005290017800937249153296280613831967965125278891158620069390304280093470626401524910150279217950196938230985786353746856784951657150061977313809773812688421303231145744638641272029319702408103363626957054488107541668475923142253021774779555351035249049305082177244173729533178924810367041176647216991803945218373093515220883294085032373495871844536537586864693201502090353446119779302248785272032842581011388745631201710982975355259125275527338623167853630686731835659056856003171339709072831447117122887595143716827096710694217104081597496831255173824824069486668550826635581350026101861232965629159881489117061798156383034561890324805252059021798913358573565082214942412672437616175795556349403804042561773963316884603826850755420636882181907670073620533804943500909696018904399420663551877829665241927749715773295659218533120149628861846277491825450318894621691563974246041308934292997878924794241428109696033231966549091848730005888734110380111429654447927984160578001072961023443694265946621954173911187418203766261110640996043446001797319263480781532882635120078838766686369264499092230335184879402703006617677172556047597540385723053307354402816087381153935611081981943423210275871539526758602793640886054651625704249642521410963073222264585958229174790276797377270251916272073377852429181256431303131740919060654374357881423100097717491993003521410049060112170276110810659104797868258900258161347903689142864570528600905181898539012557994653466889974778822409783903225403177229707167047275747872722339867608748707774737033707852828446104502361184098835102573589338366713021729060992298580894824482003235177800597503615547355852394954094944859308789019461825411300979091117634794844711160707872186388797099346173677694983251843020634850881136199814482998274262115669054181538925551652368262993268979132697377445609020259067590842153256881830343460910713054861881818904267343018273974885457074937618562387921635982008870293623802557797399158695775863138257415223144472758113566419804710589874670405633799972593489130519504981345936018539460847467539272075286626227704145147976047570822461264716284248690497897011764818487459264436853557123319030684639037292921038858719720828737337534270466035418510769587163465570894062836547114210264093267150290076181718321464518273307242831712808769607168934458486028118301687524000312898254519044306062578549071343409780250541048834612198359622007780443585166235086657787876972230996303287176389191969025703662380264849919051599517066802206639831799700251005399084932726567400508127202282117816131717239241001040209067788515932293929453281573800953579463992074589863889223987258851761916356391400492069119015735325912123975976888002014374779285765532289370136935885440829556794538347557166469557602687803982919629726262415628522459482521887832273959781918506218275006866676343378137317446942800400439994696164612971573792421592836338327505782450363126337903769823780471509274165148609222913798694247535684884646980956330777407235856556152440157306327587478235893320297418684196725592039790593473512612714133533592217016312788899046121872213237743972831876897970757952206472285371617277991537059003598314821911110572317611617164879813099784421376876431363961084113963971887961026805639127415833591990583840576425717525970985486610499202451198303826794750878814065697949795762220074876005648179991446542294580072550510729905624824697677004740842581325783355717550832343865224743278912039102483863509974659245333452453380965735687146196585866085657923877929017918973367857245131414168123899830839000636069542726728824602638540710249498459230911480032212575091595111919659977394250370780593644354678393659544537278549203684048785335742334485692941341511526751226740317068808740876609622012472180186030590073774245266619999029032969508232732687809690495239895475876976314002019072147791174547289450868235209029908284756178177633134172693585329509934204360709544308933418920276919637663708976611949212137641657981337214353218901136490719985374538228608872825540987964045898638082378912021325959031679989570630811012863547719993752083439039999250170198663003973617996711063635349077531597572741062187264203510268137165781096129705056351156733255821646780846971423472807254627754428640035604491938658964870636365923797043098967321571320966530479111991253190253942312846422717653125832202882699834458170712070085010316076334064583257738417149178668733005378248550181685187069928941577777166628716891561888221169227425976704493632603140437884325696614811766103296789590153417399036687061250527938173044861615807498486953896628893796785762679245779126031351559372133520630789049338723656944787273664046085046628609520686944072630417435547226856283650718193479127732413366058629441668711013829823184258092606361830493612227710286088494346968501875902780086405602366286681947490553075257314854067775868289748456906276509523545718917137579041118334464129084706508017962861990181618578710822388346740879741383652347434263195622035570932387573969102761070243338426041599912936491659958744878078740519405119671963750318913043437450705433327640834119680377794540161130807791641714700149365852614796963950508406388907825046810506045135804340435438273186716800105024967621642951894384121898318813906057162727713078216663599131257296299952681937026180656822588803357116134202097830253349162921877902957673255360346335920618090878617631758935985172826921787471455190148454620971980190245542934136247918750884308418249995362872733634859813339922300522245637014497380648320678892185484964094500659318922510126053363912597087447625003978510961464379628740963439553732794315022689482284936381977895758259154464673196319385728432864925491790432401155995417976739585521535243180742163989752393116486330810806819274345587360733698490243695331221328990026832240805241319713777931004579383097429769660004445410916633225623889381081197520606314252558352458061727667643488997414824789332310830981731164625740507958507164915142450560849577786545287405486364671148275490724961459240350782626148535254846355233610672305526409678963161378618847057598267294125834137968449550279264604730747246352544196829813758714437887769374494851095832622007419013166712710551843548997518916875201846631166416810448313319022744493456193696238290130590253518022133837500316817768040684943956148161033018373638961989430734884439030912417507152159894356376873449793784313169660170780149936842301501540857037960166477914714106619643761995884874456749458897242745071523492639635613083228790757959517132802798179198062684754050933622277135598980343121675534801853508820434797515089379556053724858496223432648806270681575154970067756692533727459914673612586596009910432407678631562893314268835087453087300305086224089433334372311354239042894052028780897891751995969640833234842680104418570991359714843155361141754348236166583077499781525649638213258010878071160882047706226711621393573366599312530836945189837792322697560960658459026200860820440679287948260598133141358955069817001935095582303387128972316748796693204933339896484918541347624952678284543016769138691423451467474593825579461438144492895607350407728914979762494051525927802959170616356704341792379624676175086863833577114907261174783269971384636479858584095101343089390586106683715293068759623304794309997629887781597462225291130218307541270365825120405508367250466323692781000220190399247656334300362931033182631052679093087817452706752874412072328185713785357367727572097296144628823186297544839889681725890532102919628686393492091894990482323374773666132325459188377475980596805782474616264805105777453908386723558625900690601025530077449972871996172862290755827212327466666659413225053613317855916192853349542222676800431743829507256431939658084552240100375413878653030139151600525876092785377208771186076965063631158651851029768980343475910212005421981620268090251988503130102682727822188856371527079280594995954981428063549793697038251794372583664745709992561658754235218784647519699224185435418049235885211522227637137562443057894734189567917169470663219965510577555567588725244673832547826104821500347040676521691253796821036033687649113380789579742521757447487442601850818895873790249230038607824683073481629601392825547418213333051222110906405198112395797102103524361826233219470390222658301574909582117694329984083898894218331507471863168016706388853247592866420447303178370644542084226227133904584161218546918908237268466405197777314781492589959911593434850852932561193586689855002981694147374463054722961463639874804419627057995009213334130636444006437175748859458289555319297700417488221460024111667544105366938273064479529360330355107228938168697680240928054919273006950054561258312749356396632387369069447182370547478775885709007330054814891787224148969023192890733166503357605268076542541765959240499155789411436997967592643594195070756147696062819463862162276472516216933589167813922891011621355812392691657289420035193202360812268475339103021465136607880187335031808960051898412048723492832259243418230891383687813918924708581013684483794560593951003608022993477520827607527957861109271704642818657199065489565124408244484652251743422047305262430530592706644140647535520091726089167099050900584161846396275443927292463126519193141125938586560967449567449536178262207686333199444587268642133728991735178125668773839289328242383870692914632473433405860238608023236130357754458854374463977663830180738583666284707446854723395229608867739562169013880146866201611337791719421798464679123546174836589808414643261411816988425249780543473491000108580227711690922175342083409686628904699329114525078797641045890055518999865754411751492006950257163262478805341889863166758009861591878419537694057136833268303882773753784906348113382385006537638919640650378001227119699579383326947464768199888630826801936101526144145942069289801204496900310406319833893770322887787298076201224221294802489289559030682863889085522369461755255132067854993167203729878094749989056063120968840270795914291225580947313651655713431415889419818811233900675556544720370837134901802276206266822309215687218035943904390258705586623934377841529821932505525383145372321704133162956372909493919435706536738852009776015800960195718541211689151787074975271639365509722737596384566149883881299170643579063464987459004389671870551471065023530489967538254617112431884970486430781457923994683958500553888646407699000024290422542825589839341329726657657297427894363809876556237039852151612230078353017226544446811424011545202557034777286944762427906729702253819938481395359834281082272821869894304174071440883364895869896799690098127731047632578564877803547752605513350317377304339835777484150380357815824695547587669617779848646178455851293104696842061320552198882374562004589671103676297929858034197223392393261298239403101216617143114531353256240138323829073112853585605904826008792712423480737728533325060312465559243999672045337852473541833247242904170944235894234870764864921508700051113787966797137528011969057003040620994653939769803843840831825729020788666288044683865345107412530456475860887631847661685969147247665789309190588832672915125467397768834931834144072652467386582981983402807362868687510849767655296077752628015912487808080712244528878373093135567367347615116629126793509841316533601403801455926970118684396486706208754689133613988928587228940758204324882901381477240980856671176149069108913913542910771885885377972598159364170658613501212535787092415341894157113644432344677574488856799740291376965117360311581031873389584846485168228471601234008303395279365597163743729057555566128341141555048996327414281364225560495569431748713877318803491595927072148435036036958278058846022694478417422565086058791972694927824205956080122319553089457125151676720541780457669486320245403462901000380827895671606057630870111878337022951910069067301693995745887797717385827664656227346178410582068431312147997864614993007345638519708848055147123090804788823384582110003092477206547765982584773995737868284551282770141259313898855891996069544675436025232399863556608257937814612465215935663164422235299155892859003954099748769859029370601387836098343488395626379750180066896061925193129107307501473098463434871187553211749821732786411755175882297848350654433078314250291704308849412998525580960394837038903216871573577261758982061011357865600276917290884461032056983640889010620084373223218264608446996237081461546044088161156111618249088601871256511187219423392421202844827494034448281937424939823456939442957359297252953975999010332159719738137323489240636278891710057033476991300549277094931726969367588713067000266574109454264180836216498243005240897364779499125370721678658588313644471722292126744909737246823178346729704837578111220427257672131943695119028615271820791309995004491060485228453116586769515605510283421967664614711505560487215805463915700762793367669332254647029988901174548605269904549117163813552100465902384592941761780744018092263977592974720530953435940577624400050456395091226595817512533045539893622693181756720471674356792920646136749188151228587585379211685613347431796979396147256513965923689708541682105345987321803909131912374536022259344684611847713718300158073233709571083500446689489660840175641140953699200444044158024216762871252780662726251645458171929765433780098437552193774722209516241377749216820336925553812508350621749025350251725888131982930370181713418812651414158756280906306972412057437262546023106640385953845505490519844573042627085662266796255603183189998289090576226647802817737296923207249713463325910479447183320170388715223492356208850206814679946351367834544837219704307246212875484695017484318550799955519945968259231228251125970885223419690174632154073455708497399464831371323685068605500951609548129457404442774514348092544328821334553169154492789849510316064292521836396092065405720013401181242312617368786926770462325194476213479639530931489884546412056102100813739762304779959512018232601096400513993979005710158087319036862673847770104452887928321212558484213167640529754723398729624775608536621221086586411888238979005620790064787187541816655539521561330857574097901797209070045005228109122895007552632615312145566449433347747175708498053999272518953967241197407415484190937293976703582703781651143682682815997952634022275982230248391112240131928792176899168378131743357823296445585488157829105355435143778188608219053799415480751177403163350285459672230107750485826629314371075646889560341798830256085292218762292678325183616933549322110142738815117874457688731644320450887645838476706344297842088002332112322963932528855280768884965448678713868712687027529427237805854650197935920377864028639244913322741799816462111194022184076971816181167837367138025463793719048493294265360450665649012920229945939791492114245171795538830389608365046535343085042587009995176997430008888049547041668090932002626157188325660106003705077216088785307789472016436156448631911834956699066419706406348212880620739037554680843407583768648546837428547700377143956062055256086762877841753937981268137083662539265677626158258247909036093759885775951230731515464749725175988046914963036984153904871860245555837659076205905838389751466687277724565789245191243174879118399841548085583912284706159436725111416283019310631513751328632684720819706849864395489406994603048275386517219413574016259767341751807455868358005295319994807622306502850507930580594104094437226645988108726486855341835486898974287434976315576134639039897887408344536921683931919874363952345003208073035686993189129857047622681373831572414284309456220095167102674793963225868415676835635513483421302826350507952300245043312221118796117941024613720790669030243198675477281874057562504663913975439502822352377709012362359630419986560323825556820899740654790777332380517009680713737055438474692071933555835532373182299000617530939789351056960641726098165692408262321869467142162541170176261884172507424958437526576041558853903596013635919968534616228947502962168663343386074239099379179188912250490245933269363098960053038337653256805632937120397598473317184524749701296276629157344045640186284433157377658429264838302001136849515317865001933511649041309382871301379178286924821616925663801947293910406677500646027617648908071299401562008334993307771612334729652524417428274280945179550082637512358070147537787277077861776953323475763249195293917361759486796376228212946262889141175191028502411499103696582722435515936764042419041111695044873933769772105945614479206796649202072415086621054521647768257790724256438277889100745959392754476877070770502725342175712025786977538470539124529468498230569924914038219400369627433869119630305443710312888154425305282696233435835293662938263915752598488492505117960767270646567117601200891944792620932400433222379620457376930452619112113239097412508129379586880517025703923096813147087174469805138463722943505559197944263133078267851231145618816386055715774151381203649170402165710748563509354484267416604439468621893562534223504956437938067516535216243545349647951731679168974236124023316125500316160412594580719849161989435851152900659431157219852546246543410882686610230001048298297741729272207301109204577487542203935029756359232891732291973027115682395535902309791669515804999464918591395136029200034187328222393265003026172341916255363546952674212330790973610812674484985695357396040487197364415101734975786031893252169267690890758666336442617090619945452178161023647394838812759659214266739596936960280941667142875891064172212171110278053281698973929814429849165245432224990592643827470092754374258426522323184034732365202075689526024044737185549428036391568458690115991606274626096644602197652246376416471215007851718828867670577026822240847189018816685835493903027592897765453197464641876371551143226494045921110189120930806315870780707049924138798173405426758092179907539654924189114142173859933023659756689648177179112540085844425284063464197427476561147399439828982081572750618686730504470199486231073767472317623762430213487939705974848197952452255205985421885815973124286318942694757542848364340419084498208221515165272712851058784496906448596013888927895555846714183208594857853256393531646692158804655265800965660410424715532946933541172235737096003953243333998375659134750412062020321480917383763234232276695845185750819482289012799906110852352528077824361693064767950365831265371778702419277750558082990765600290481317717004156681591132320606189722864752348672721690843267354924626574226921515939741390171523404026512243773969253360140361053118251878939770130056724401509450752121992221946330171939468394347313397610225745981595841621348814797312228925055288600462551669994280852858813224315033731954860017081633504595133577712373063645886318566773333460199802643396589727515793648641587619290354552228689680289106755946600624486659597389304958947239968478123238715501047091837476637076036075357537164078894103834404950491254697780500587753059203935700211536039061468459385133960727647258925518174116861701056439005387792065845911996036324188300394900933621013564526693736805079895710407706611396392623220805644250892171160234046215667448418065858283560524674710910295652486341626319387258096068725294655981307748110102673841162289776770371743435687206661601844479298379386490914285871897911861019399463983229263827971135935227225589756610581292495575161709737425572320442609743711703142482874771106500776337869382858342349813625982234036909895852860028225457131446361300067374927642634539256491864216087012885177630984905543658532374535063807595160918535418262835028621665211827361093200843839189666962272909634399046997955817779975301009374886354333530317759142276985901960862820260695764496856124291646461942107964401352308634643764544584866876353654375535236485087225269939648421862386416202288217007776418362829846470080461536380115699815254943635125440489417993540677950420109081474007615701806404869297439242447749588869726792719274586337358299992526826259014113389683290299435773896329840180534595149857393861975954210472165064875476556652485298259866895077219836594429844494948864379963774955852859341419192384773926219448403359947678429454632472368708368791289961626948128539168428991702839902612027220276732204714780475376831529972997040566939437508530072848545730809145679047128760336251460254429007610033834420800799579310092090703623452053159000640533910050190215114873382612292431479234096983216902239390221879039781769163731700436409790213154243369389994918339173566617050123971957607880474041380338342894887568606109886466399341211294540231315244085102571325294522185013516944350727003160089566675942377735074202071822567920394669275934923517002643224664949730353819105962241871203903406273570679558885318995715040870886095097420192336848191042187876564176390188977188047028135060784315425044557932726809273551271291796167506768624668914777951884056876849274853989947813703628010875974552048856996198105975735083586310078063841079681742962650774245789101394328417722189823032176366248001274644747160506967419553561461882985835608620150899428559864379336955261069587808480436558664608743417788628454055991080279081891493697548435504133389387556885372221075185581429968087161781891487419239929216481241589202195017084485654850471704397026332357484992223042786853307019131818734566521164453375834554031840661384369517627747944640133672445971440049038021901438105494472077420667773112701967333950175768744981730494588021121288212198008766834533621230108978190620853238904477898404221884713037839260898079656996914970866448023083781802580109419256502230692585079694270226617656529281626132885660765960811351545771554539378950635383767369973823678151536054836670497937094923090293680535911180913746945015489618699802004779183752569823877378803300688903392301213799545626670860437224251886947690642007310239519377878882415946669623815567432571659819421083416200565353342420300831719793985730753853868556803899202353851204529839336496383614568603480778920387567116562764425081970840095226061099965431299789001913077835212366868429809197129981284609620897143596165629877932043572265917700119035754651652483839679584535194009957799904108480759877088746705664851485848985690720986023763971357286594046285011743847418402326271147611838092533551366413939256928002438803955266461529718380780882011371573873199743839502415855099667272592324373194404584962152337860691103917635820707035288970271464456503559900394785147004661011168116155205057445736373410913239585903432470904689926207361735764891017773924053828478152798706130345665448672232389071145455476719148430566039272503181799095198421192542677989174539363227042938760097788872429681029286788336308650703067803178564102898886122505200694121676715957580726572905129864550314450554008087574473637391150837239421465685070570654398537081812426851066528182364578406313321230739120115435971665933727915772481192373507661422007967185078767476382651755333678228726867977380524719958154721797746105120318577849696601781367282626517219600746245425738670482212495353109908505019779296297184473523997705818791414628730776173847976309807625273843604228523624297989821297646091588307881672767777985418003724979001584541888959590356471207986963636293955706023651272378949665394303873438611233908536362259785366170971233969665459857195505376442116938929717347869904194895778664396060170361241469672172984349647111318899023966388046799676978530139469997736109040990014756148047627472270669097371226175692666362407499287833877189218183447433745060496040587304991318109398275717274900046862401371203616433008261061908347980662636061009292721485469077889401913210788303249441920376418560306453198127238591632869315196051393034909590809535096295224084034107859193371254964138595837294243223880117639941756479426100562954334085737953831210613551961435705645376405793374863677789465905870821300540921010464769670811031077038530690388629069131707393351167494825783183529877900309097120505296195574843839840568928857857286494679016748475588511836512509575329833327692289663504860764099584387059798012174448377206791943677694602563740461005988074096853057457579323491164212213111935034609429644432686837554986556256817440035765562002229617900399887313539591734704907508270176233636799826838432826375470437295047660655852904660861168221984611200311540898234841685357395403679813146049738972280857896404939224974084777022203337632240084527234890382832359114500034727511244555843603131131630615431715082416979371635307400690584762625173342175332671749032231394590603875560634742313749906932594860428769837425133959480015210747983127894595065095721731549790373218514100475883751841432999182340806843162379989364714044412787181991062614245695038534374787767878498181059003195585339839257159550311555545368730244257309958460529987659799727788251311784333255198090863852839982506990190423419761081190539293274984028040045629530641603779820493492722149057236388310787551707165665145958335597322242778447514741818986473182897141235633700087245494759317874016194990550331564609859190204941205857331740601802833482479246272152128215369473728813911769651123592850657260457842822210087759526934331639983143196927512470063089501127181247508267655343641311963200346903501184745785703957076861446914387581829628417568128334322586895193405923829062949193909224477649506192828170592718177386761829899916745445722386754205931636837776541278872657011814504716526884583241680613039113550509859466632699264459483392155349261663821012492261689470521040718341060132133358713205855223062907786636508386121202225329916937365796207435465666365778161872076352718028192047425535941352233813383549252831161239364245281405397950536924529695992188281594056328023707859362693562682968393107682223582843450400175331909378545461928412964318164356968703673403842085706652195953502457888531493807500610939602276167958911221913589089696366948787513228721645220558063813665078177231860529998975990002921038190737948575787009111725290881688327446284086132725948081079374573882913385679579868860983643280675643576298370903055449714690733453250091122421632986889286532784279591919314053566445299263540066015862634643850510377020034926745095066378307494639535774570109226757190597760575665173907177949061633887324374374785500623225560796305357766297028236888831901737650555103508025655229439531883676775380145056413609451432918001897601155271769090212386589355073913443385795171769755696606451843485161065948129370220512354399688539572835684854911073298628584292934339939874304115605199167056793306144495112723790824637248212881894483367036666970687111924703738377589923455675450395384712485220227594789247321670389748993468361527941363732487142737722163794889195849539644700432732357963233666909273284150030209597359711928298929520201679824556046082685024526386676379124340340994730691040581735718664661834692901152428422825386728929081574435319471142882484763640562688546396927147083651641491893507165114615705404971865758811860303222607740687614039967502604132934763309174858344750999307962818037953504406831032131515101812123162084138535311057321586981781016740204210866843225013578964885394763953185866971816730283572712150670792318168707976914858396979196678305732070067569818057028816044676926311820664422597127926115810263460551558184365701857484959675431657933830371161522106183071029257597091338321377183239226841923517676360022821396704397637251102521963694082468854539564486352619033529835957001926885104605758996625213640320416951641850547756461356188177634436450719817630487460582743916493048915421319893907185783452944096336484196325939256737237270996422543122536154081460519553610015026791230042659999227650062399038117770075756680130271229729062700663321618545606918859921266590205610380959805987971497165862091615255439849807068825825889302899468635841876018066614406232728760879628053255594899885981386901782348796104543953866428199645352680892958364090478463739018401979980546055818875405857118677720668567837103671055199318786884725351095143298399487420733219684269457722835146539486580442493825182435169556603585383856145764769741766106691290104244968373340781480997573768725032703007325321499183963996859070002601784421143995335260421204838784634570238444951078452499425877457179335104461359594361673590286036650884393820960517868049313119471548640556975481967820995598649254545667538200446825183546702583987374923610783610735146836784737571834279422266840265575705089323850466735833556172279957143018867635386618058673182930876662808102816650170682610128443601491730960199196482124140065644843566427163890944229904144673135106812418247726333769161873971069477837646899479990167571875545885512330302682975893807860095922740735747976706106590684634766363473799137307125328937606119099159341991034973323479556541160592733960603534052635211271745650152681115989841374980553130510985549321075420673939896288087577560051604252690220553518492091514749032479671390666477375308707224013233020543403631602841052690201625536534946554225102197203340370422666712781677830936115907503072055104490507641363208819445066885743317644440222776194450336453316910048582101869732922275807411377318003961418887637869315360961913129018038938079858059389184481584281896906632154111507896476426332070734263140726862493061993019555686249682367587962606661084341425706589666994047289081499869568330150556606733721778545110173761407286241341810609480493321171498076702029433635073670694903671100279290832941535687002578574564458162424111902287049306352292109535439912979599111906683919007273814541721560685608895385488465003641820998584825478070451010845738172247097035900057058022517981181091997737466124327862975813843634892903893488191396912888815508148688745961965248192074836256568931531454537554773161387734367268322854746894183805135520083089532670136976112188313646343923613872277786136699995968743114322644516509074616632143065433617413275438762141066163621758898038129143240912865433011993184090356366386783239584085103298158470159407301153496601981359473531374091646013043704396096907911921168253861725353028794203590840243834651444301853022261476208794361194356782561370579178739794162889930605276795556555498596284802500444133412495337869531464172636163812306684844770183519515307443287314990163365994986044102184518898741205264445643241005784954566428104269595507182192217208261985281482993129736852137682377885632962729891678420989970485527055093802297407453646396903962624023017575126158437999843891636065480031455750684698509724143548379790979614286107476262957719252562871317883060145493628403404739152699987869818945355077926062713460083020451222479987701088693012781216977768746334848089391725082013890192737541650221933363442260769064447076781987813803266757843418995979818817826281418783514995573843723552107671192961200223691931682584350392813830148221973891127208499124881427198911014108363678419442675093364534635427473563280526873966754431719415708724222020050534090741879176645091520726758683754681523721086395521444246730765830983506395564233078964992388261045941044370982932949593067539259865804179264739658767440818021417655329146941716534578406492264643909271572260430035614628909599627040333261651676820632613551082562894827806407808207901080752332097551403498309089850385588339454385226626873131941414000871829397318126638548760484384452627521985024527684694163389406866674535033347015455892938444122706200151989725009961475111882493537628840794907818966822733997877457930219275977777136387578205248496297352862798605555772042911116581404689044199916538585760981218893805392382067962852595026822739026153065067555101583563411653533653061268868464761244032830414375569491524574122291384261544640966212069907888463572458827191716505143095517027239083722134040719917427241002667988843320004702330678271482703748965692316340741799924177517768487000632463761095232894516636695690443981318061374096278974505411017458982056519587932580331306203235820195529131499565939262896327076665674002891275260984401926310321168497730299338109982469160289805476231178966777556041811442710930513155150653420378994133172399157311593069282622535700683066677413738336689469913118331896774378790170889660204312760516350895411858615906027513046112020485855796007357331085593112989241506770535455948963182697002686719057204313401734394205487288930218913763792538295616756000861299010501981623203921331307462089829539320702986175757298911938620336071902482791243512796309018692194940186164378758530383672864543647992615269011911342623673779509753962878392294151592471904625921047052090673012903218519945637381094033540507336884892593697298514206438377220000459579145292926071368261462154876779815348037124678737816269899899778431942020534879627109651815775265052047008983853124595758057261551033960423777680948954187216978784892902473877586891574835762392022306005192196249765370346882976006204489063029490846640215584795774282487502894833672387165486570293581628671267188552000271759212079304821559951599769614037778628700681095775885249836210100691967363212874718504547554499754071962452036024851295357333798996467022178533641953685276390811104606518990152493225935877713170494276719033832864305129125723997492333308241057244577025642816925895297169019913505108453799617383273125415462031814446251118995982039018384555574796153894174441683333574516435607424527224868147437702891444735625928674768076963573727001567169435636355393046492188470575819804633556952946030366179103920326015398280352380118345633568382424932082141067142194192063015530612057806948142020698910027142196468403139270244778852278903577587565056175362504885546738824434461856990789427209935218933342082749394285459238444955116113845475893392878551175766986491051463843728870580129952480663718209985387125212129118899246420813732655995344683748830333620344998741614576420933142269147888501716895403300025650804606051055837001438314036979058350149609861932532039448138082405380735982461933082958222442149954329319034284149794716892225399485991724858510214280456364856774205038146374013665349447350338963137786632488936541401819144158944511219256541945835499308303032424528573775147629852763869760168479577665426285825807894562252767441756637841379190501166296291212387538327908192524387332817543208299720732527733151711701400274467566391457716362489475300606548555301986645520638193782032964078025814927339346013115049990510928333802309420378138825176181181849749247984269822843886981096559562115400138001175146726171673315248542267454961896930738452263235591037842006278719240905356524760773092203557028277737843419719506895129507448847520378740453327006211126242632353439093564611134522574001259877240332731225052205647088077804941956587068093169149424161555403948250570812355353532387542243261046406654062442386347286778029248967809633211719311422124448101594772285106459852454079617284726930198727363879565313560365140778762349283144598532572841149610182179620014282241926501666889899532159307389564940431202034943269639032681202997222884320993035873944301855567915748160297897686062041289825313894326696624275637903865002870628844833813636336693199155090141458625365370245155870657762725135755694944323016099972517279443111017502171671173132839367688496440108666024058021282975909176555079562122944313644973737943428137780935694308436647699785997046801198496332221563680008650995064923689492521873690916001650797866013093798443039605579404696929023457685820021942347974978539936616446325979712752207583748839954586144067407308160751429886957302939381623347734117841282503397274516383530620089432706132040559265300965575672903692797056214626399236206300703117447006491118672580257752628245502000927433295694500838722479451579882107103798068739800835297239886559951811090004487725156089537044434488411066526522939434771033059856234233468562834718339814149080337171623196079180164096933092315131727162344231994631718859198569320665117589616528162772423639896696089980836091762130198418314588336949164832257681815333839725682854686942241757453511977108762507492220177605871170400939007455303246703472089693756575793439311025091360820245885376520217062106677095904160161323338950310563704816617938324226357627320228649673436095803845763618247279093790691058145091214030299640761907853585359985821081543657894362781432740588408574363869506273698566754409333261044548786051560029703275372468943445328983059963147954614055697401968816185723430478062145483923957337421826789677063688094419103070809417796314483102313662437830187902139985620818101111104927372113329268843455675333684323434520796577907194802828151993364755357911485442642591419705754184430786099384562227327115284747397625569653520113100410975957664357398529596795876805341187560511075765718476953506293349341501329105262393244468965834038304083303571123002955615556527601163052035026235809892544093678508439993851513943980948901539391948560032289436249837760534181558359672558927683804128187662162743139500659378878141661111377315652175317641701210555537860419721894935652738837728298374552087873337642586826051440080422026209663946801463910824811951549064836264966370656840182786633348365123128483585499273585901831444308677403394625022193507929461990720324592947796594203462878029671760500210153903169656379219062597271359820980813143070957495337333189294718689232099430111917602973423242480888616357520011752408578853533052764657164294192978620610234572816185413032851696577130312423168494005599748252353539104361376051101356316970803057926917795138038725334408791543755296679369381217964568445686946632044788112793819798140546328805830802282876041297768201451321601942270623653670439405693493421532926382072322902919866257122338644580840420021504872185975766871570747172335148675393711844226086199705415164001287551151302171816270333303929528296771272090246572973420914258360016978093924362894248255145696864952993634118532001683794957478439498675616636769805630180820339128633321720736872824199317303574900809633020542790880423365284855287942394339162179405780347464432639633324120236765491863801343023570685607432603950058014616845131210615144701384553219969985803143799994532110815550785402764151548963959606905966698000907538610827032679766020116520088102132771959388376168755872015178342735494533738761829028648942898417021750219183545471540796651981333753451360110475194119670294487518243110018668635689319115618377649838745276178885608280396335843337240489073555966728238049094617024570170662133195341223910601308421209718776899223859632634481212435637921018974666778065167049276489423542941009561543062184919825741222858022855751035640441077418969549634262113552507805620482172793018195897864224764619745464072731782086460894089362706643402681507690891592434594144278049626856469716618933367850921386326208490268995550170204341693151460434614218836072548918477104932204678881452106217723344472586138066893988322099371150285451643703900085713069494261218276059815231907867217155982057493583435963082169813357208236511131421160808017733333647651883007053616622186603623631543444380703988171881253550489375324031742298545734167088448998266799837808990371226942648399188809835512657545861231890563831158274890701919511429610602593386727988230062094858093946065895881184036523404100785706191202718225063567217157091720516180242518906064401830140144495430914523371105729016283940184943881698849257615557554817131262559012745579069228677074788699715463951266194970522809848657788925217485824733485828831284582403362315839043740880341830140296272444542487752811973491943134248455528462548078901087432866707458930758171857760684894675573833895267599965366599475055485949991794904895251551548731549869894040863643035983549919052880464353620499424776935981316496534139529651402871825677462632510751969833208595251360815502678745495462175724697729889813513624993750421101539539882145444696449143582643433381728897289783827939350764033198669109797170323145949158183806270244000305822742545296874469888547139479925725420097400942908962662159614133526648240956717864672979495760631330776563006530720715084413155758827995371777570737864699205259548295247733397782542085072420102863590143861503259312336060675911570114324892730750808161424044255464767835834060120626503069996364724767337279208366809468717089515308489974242054989714558609640718877209873852616058494524222044147949736153213504250160814585041923530596044992013728780374399186767918569628896076262434152815207402838290491451986627970805804381636710239685442276267965896811073441015585992649965952605126558765513343915779708404902228738764694017772819436855356832475675123784252497157139562144357944191960287451294067626120273012490833047505407915772768523116924691661069213747025792302723232653690715200887391494757662511500239794654906215179242830940353357014058000430810561740256367375140185163534086157397051372601604303591730304225369519826675977434128181139823475287237665517180402199376493099517210438323989430240162894799825232727647702368634885072373298141809154500806783361570063135824474174504924043649562175159743371124547611601529202309128756468474753838666292147320262705294133727348513622440987126405551854649015946963090796912806382195022269665152655366921294499993929649882357274770576276280625795923456539744905186048412439053377849049321148585558590284349861159488204166598657890540106388010623982883669320871111722613058685506585251735103017917510577670385395501433867377292337881794578548208518620489144034266983842274532447909283612501435923726411776075338326945135996872495390837289486747474974809649139689986572282181278205090486369374483953572693074054603793961859895000431374401144455339692956664652107141196232540337299618447069135948428530194079425695139662851386705702912018468957509183627635829368715424124830689251599347303790069567139206088991008159685005353776456996593111182470451365175571285776658270636929370448024289961691658984157469180330427903654211717258693565301957153251655834287804665542148303816304168486187604510343339402147000527696332939287602733349301477482078388887839414238778494383972423864113100058505848457342987076326132837937471216059617993652799079035195595015648344508873761726707227372996273897260408762139106751847125018742650278488610667134867363636475221130064452364871407438509211525607128006210950312344673285537451110677171195795681584829526642657913351990555296952677016610276731373460382598441328635216444255713083675796588133287310312451977591914519229061327163452096476760473295247320537561523096924524597096442996232876105848944783370542655083840999630808929766296618779828734559243370552644378755502511675921245604358288475097779957929183196135082705081372309331387248462251667691968733161433987011965097347690151337560050575281309533439629046621698196432168757995661849641673813873052229640407344395985542361916135049774071704248301890806028352467807602550471913211073045001949987795214889269978234623525520935350151760420127293196957862989995031248198888491624174193472648755320569239051092364515020005986707250985057015620567234081929759448233170304339766368988757030791192342517326042346090152567189281915249939954064441155211384268561719621105066249134173115061769759561511285399127539320904381177607283229582529089144545721683114737402125222732835711006253776313918090617769881327442086176792387912224614369804117851192569191940619299268416611170534147519414772378640516568846703352196788669735959597285142359973618240032847805054214254616003019259485972854212452375404575386905852404404241095170671103146122973548675594406434761409025958605705139181098377411200966128879792140447433096550895238520898187468238680225616406055572694187311738714850744686225700875701541462266694131795158214709677788247045847288719966776386262761246157718690630568265637094668465400676823612989694702007540885431331764324506837955927157348006758434369939496113490695055693293241272108836272289462247706278497233721281000260631280482759631237501987258520318125345716058835725777932126277589465425338624915454520008288078453394768797439685378561538496724290748206080444269204613853539047475754932351025683370718206140279985500348484295404213967784794920746953499472760768170236985483574850235085926390058324584197186873245781177499354479852027238924967415216028448016065063558994799389078794706978942382620424213806069676960513485280360882276641496259756594115288898788190714084048201074253640573439473323103382416342050048861966583960401499626271502278110889923651672066005221903865336719804726472256183910513816805787056080665940011194568927819218070204537644379097809248932024295704617365348433091070320049401627623525057351850733940099947355663259262975800380495910656723603204268994522472042371278779074866068060550435247136362254524378141373191892113018682341652301229988200060013873206460428623523860779137172819883316232282955557522149318599127866114785962938100821762046833657781051159604831288549589411813051678787877291971159624603946762499663455230493850138178447091792922554124036136349748048187903275634923832641522808612166172971865378612805062345544822985537562372514381240283594585694837969589492346376645201287321807947229918259198194271727102985902800282520400259522299018685569842570477844765730619709305385407566404683891512965177220927781677367320916356960837108835926493644537699328227739326596470970373281232288068106957612853192349441027047562570375984815351214561937163967130912971777547230054569400897685377740030983653469856330636182113022711861376587745986926458821093600003043380415896161568311944072493825666770191400844558279042423814183052206352538936774148101247766053825278228313388411813678133309498218794690875320616807800835230380662554173892030840977607088285006097158079043138829983752164370558254262052006251921135785031089432502611186240201119616346449080183488115115281575139777212968483501200599674576726899798284789448698814418327680817151335179196604560649599949866498124592937376405163686062174060909105169371579782229172292579588719670070958745967982493151022147566806029168592021046752660292595351825803913137369524996279945083920249620938007346906471036728212158110772428530384064496525151663963020297197660578772976625139688992239945248267002942604973188066614927467291009985805736700791419829425212793351325168574784943684045871684273475743173223639023051599889771127272108847711362064447852211551385393645845124500120382724085958281788766382928346516790353582260411519233287901043415726554885100569618096564328898708798731075875179691756853614839761280589370557084338110427634805814368560410491407705556394229017483463726789601403625311271782406770033691212023357492134601628124846873084701878750466797802419871455231696480056867530870565481450112082973826943807363353563957831516745126411105016313426341605072599368958754159101414596394725493010372385559564178026102791199801017066400666828527223776896474981270361272914187593245825201588682977571564861505233922304604560564830653161772850738838799356348422993342575973292463425007148764789780590991960774589145413132404010726664301960111542565651541332772126413917106341164172852093613411045828789447983390439872355984659784366593956587685017758361417335740179518785720796016267952401543030333200245563324149773972403683864796003382519094835709339568450962923055192056855647886864357506308860395461339293418831800890895020584452231359585364745443780423581346982028517291230206856426920488535913814415258181185918564529865599402045645738526260183197052812040621859693628769400260716344643317623104324065888044150117090997852382163973781883716190336947439894894227410163903994185283248483093418454267652659004461149726152296508524031173924940620798890215091814141569066939079038039510062591052527481321840728595113929502692384924636328504894036868819611547032094118964538903451828989086726802487363931898965615399737623015086272786865421755565199784531573259515353587571451362280513540043386769307587696883646120678389339737588879073730904489445595390765093946996838478759073015409518202770005804937243253677719903833841249147744786694477149916289087012806777361056718414751185792336643797974456136822293920770491055598407129195018369973703768030352871585374099311645962593535884474854761950218347178948223098260275505620660207532675013684506589101243184065980111190661631329463794500258386867472654084039946282614221824517667333893533219049676989597557178385058387072662494749805399299124794686867283315198834729912251596964523607575602684066642319988775107447136115043852351937192528838854563016889329382450781215936961208214988734668410630415720433234967169597079832488060208743660851986586931507344802746369441582845621659109786230263539880848692388283700537026435907748095294243154401833651931817008613172593858621196424252063239538506512714988429524981296424660995937568042805227639105406917452761924444572680905746926066116937244343745885701028512016742599326148271312846626243144807582485300372156193181102638531696734523303813532408456161119818054074580483626786139289975607325804091308441686003315031107390672979236434756556716888098803276175850202713781764979471038325669841653223573688540064924079720406633848334736335343228803601884043641420586831244695113560420278774519922506019771835103987302092906439537272551084883914652315838335289412808695505088746907116870879123756886190125184939848901360431013844202941598204009464001006745651838925909059691525628571858528078262991168097488539762670448050421920845555718205211988249486054784370913329813547599100925827223295706508434100280676849327546909223228837600470507975584499770685500759350684670479697818919477379404174285713272597297926672778422193627632464828820352197360206114798800503816688795131015793534152711821107449624827861488250998883441215781391610389538134686591618399293607177632714623425626065892330995956003127284019309828792064808160440957900975515663298378043448898131602255323680242440671697267409036903093779094257457938018253429943550325699727332577228066700391849323773652878029660194384277696452926352930392091484591798255570188999551263692130294532116408599733141467661532716223675434183776054205536778860969169907578986849875890774154547599026888099171724553591555834867178622676469523805492358298444192041335463799039167194518883361692024931029653030111635523166080972919482116410049080477233367171214746591577655158871214660694633604744885324921200358098492756163386865199581763472395089989998066309917182953758552459357238704273343186370422922335003687199874602250504310900151047818885293890287291875895702368918917662909414044121620724266484849050910995988377010429638999892595078308643561160698781369119693745026610103496487975784560995910719299844215609280940024295904651848745091170072091881617413158899932730336622492916578769623108222304492815533616592103038010528997792159699110639383931696897225703767735134128761998803854248339203812765724063468145974284405754135050295428687887779840580100688466362995709507462633490468546814361382213932992963826437908392421654983778801715520292586598521324039699555242513381205815798217794448448850703342754821645432501833099853295694424795059944316333194497430633530325893175220752792446341900220441921957190814754251870219494345504325436104486361833411423992267346803623874226633686909992754882029427931743959809351308512785446925555539783409008546427990911003542459836063204039475762527625658405041710354507509879318994371982552249785407710234430415360350264417462275845946414903298133413133565552535525498005404735966596981611250495518815951714072901670946037193082949048078375490181856249858579486558782800773954397726867102318713878269801108065402681333457983125402094047685930210604832536664659513191092596086905158164749736535656041354538863069021850065572675250343614652617545960251784665323339622802079194293696665076799735831919571345048214225547765004539500359236656716897472594231152576757200759820863089477945672132016001291406967007908561483559610745227474207804911838182736910372210382737874703212580596742253321739720233668051682887398514872067749389612247139754647784756343114230366511045984712901502816655083952829483955222894194683714755220215727426482883122700136036886209648213362927796763532615956594038587012531180651880765569282168377074848658547127955483948426540038415962176893525001399420214500288292188156044144560843820516599769809032484058484207651536840312813681573542069248736961915080996281780990004971540347433569583950844551339473777105021349652579474540674652337712989787171436014464976337761184540833985403973889438727393379418421995292712815929728831306134469493421618596673995801490965940734441679504962229040513757329266628771067722224523658974246994974633680812690953116324540932727716290151552759352098533911393155952668787411159743810906895793501774880000420487559943103443897285445594786374223171787976975574758642348191453038841460696182570597555215805471404787710204954481371185537475063815997845160861767498107588748131824837140013032845423830953173236966726407798600379181883352705486730860684524235257560542596395602109670359320399377990030701496854153877663124948548155137254735272120581681253074790381586106754316266097239109988691909782078030665949046773160666547357690664554374389103414299652107432713367939917142096803601419981523837039430336296432992635674851340955430484667807138220941166829261164869947933786560413716094483851958837106991806307155308293786423790020642909047675451444785807049342270843360216476404922595534119539561784352457747767093064036338613253200066563478012107555981460289405485163735022885829751563221520096071595279502578741751947287645513557063631224214215153970379168040453435682151148023528406930852596296620818339595540004994477266248136726937991299971278978110207073621088729729863512667123935711726245374041738473005379685177006647736567066370501494377766572329340767654236634726719230458397051224932323493872039644087589804510777426697769734036054065933487181485622048788531778024223140490037144996709351676909116406250016828464721582524795592385400552446052860048147947553298742600311837326913358170025199127802676873753126369252212178708414538199823039220218747586249224355115133008867458397584732847840415556352402271064226102939534107773758915742327725189056225690049604630008128905803815632210647121137805987437744689723665348774623130388825388494145918242085845790279881304714195120190096805521276021293321407811097048593000805679346457838832813746773994154197845614746372459741382517688787289579850598076123015555512462502712567277178398006087742568951747565547890596085960555964471156239475535362355595759156478356351710637518405193347464922213228238335081229586750564333142680471340389441312845818706546234594872238811844635969673939873240738040572539895440304060427941532301933029325402862642037304807716016782624810220834261639500976418468247796399943361290452024134919891507923239024476888855748815827446280588758312643253691028421385696989968252592274046107038958287411750716542591646376444382509752547997052726054336275458685414820081320525864206195963661075050741908345497759653558893307608217888982721445873726214473378504291824229336206809629775535970952247748815970902903780637852263486759795749172805840022776048300642755916533103035888538587622758273761100023560412843802935464128022505384588800716294795907455235166730186527417628485000744602958685121306285238803584899979689872179200110300237875486339510204318582845151937438381682743953528802809622588126378093671996961544757167716643689140588323251851995376047654070537654493804928015518384371893584392563327079564056869521680620424694879502014816275514998665241910998957015026021667077094246416738661565762448423091696365413379928561834512653512485994478787889119863126431024047036966451924770178993150274181541235074086657453694620667340313641228800117016858127090352429719131913235686198573911577366883273712932318639527503322365025239265915061491860216753968311031750177214721720926356142299263259983926177407144102093862180476598283927670709344680054354894667680208953542862977413266673113928099216849764027112354266716512332570682567848947345338496766852302586795214625555749358640611970570541109940116325705857593982345157079180437492425519113983530032469521429096742329717518577568419445916510902012938239481320892490832957295797592569955101706189582158484608894658581593004436774245905489272377737447583001422065376498714949603763449709499563949431973348399713131378818493616870012165771334841541818757577035917061159582663784427339188766368885498254805370014111792368959941129126030303836523419938248386147387100327945258906439889468434978457366571940647443181983266128801260799617445218301011331165014125853955547480796328346304248543500521151349742558640713984954725479583657903357832198337569617996084437203309875886184660041797643887133994422372723905604922356202201436188615306207956444443846376038525909356509439883944826949737721749391627234362804487651142317993886088615656610055748874245284503061044331753428559619765522422237088056065207843557168396695912080019745906972580538323319090737743917543503307908037671216487182420281881924753317891513539570710601753301051453647534144294796193487604007409469397823786466805511194889835926453968935766422503497580822464554520483572866085482823458619671365918719314133095016682887683742137350875509293923675157753104722897280558195699132998918866054222186961240627525377563356351115414160023666916332901088913377463337777133955138164097085943421271656090466810825730895310258153040141398659557249457255654007295065778786940230455178898963062167654859570912256013055570045623958315217006393191731156562013024769509113857616695247585993613911465498995410264190783085478366354104938356584804895055986544523104612612816935074821857849672388388602608091027570899195551726798176286555641626326895824477604546001795321648732228597040576915049861958733229180574030971604073723480316188156921598889283470513286134584100021941081241289895457572761627366683989402444117971517699118733012157343345067721308156453472215864536256151773503847814625132654458363611664946142832582218519621025028893428393792918832402376690756553443282651154158397491149160948086593687704784968800392009122349755951111032185165373452233901628119492201269487825244867616184927703317518854252183244530111662599571064763271904715517206265545865281755451060543179729163412606074687170618975672828992904642920823902497397530818319222594217702681991248714290583384327558909483937916239964618001549260567787202014799841539472543362037478831469182049206152177654221216301824647912142685287898662440961849862959073123076728266815154511035720998449721288259244164000331946194144765311414956738881375561452008314779398793739506781682648992736224903289991537643862362477936879067777168058143399243290826505657976097294901020152144748195942921380774024492639341362986152061971823751558666594728952823175165497753355458859076871227058360498700568427858553657947414012340596799262198555036845894333035544922999262635584731589369343157998776320343638156448979818682506665386289788454800991811745616332284617894007727195972308867753155278469201016890363269337927746462102705445530031937334811529864654694504691669041780936950623815473100885895196894132324134956475028277527250862784554877438910605774181211089049584068664564067750569661348008922858166710232896041029272403455999630628871366778329548605306543543774746347787981612725375952322062001699905049192916772471762122822357787088323327268226992242604058103158958467405864764191451651332429442240781263718719471142434479747276604160283139076976229334301002872776818158416812765534745873653992631323892724715728961785190543899878030926376891703227701363426600412358226120759850697265022954675698858763222647192596058408551160106159910578770812495714948293503699119330385063194422896206598390543094229459554242124774556737235699166601523909378156152751233926912112977912001213432831532640895523913481127456725375945668602000209104927045663714639803369110813629363885655492898937710245816380247934223780829198397764112373741214332207504751786532387040823569622873513714746900388338803949812935435996480786747736444715324114451059865468141698221063003167765369387072171338997037694586272921912066861849289289696352223460344994638865816698371220568343738399465942396062471152984165612878051438917228128628237039641673768088526211786779168050840845430124301077114745631468205179703387185185053712935228777910933709968960924945534297157703866574025806211500204842742476924725439303016668689522149758352539972797478021303863788508619604474744025585242949820789905507224477065716650316514996339064981700018884497999652401857388076595010148611180843186602168318440476445703713349225499617201338832959869336190457293140476160321324024705784548403563611157962095843128725810148140478694794628742814522111615333351797776542836123961295019619567910851911396022087720956657170601583527255817192358671487425116745667214008060994225747040770729758493749677481017629041102955532105261338098002539161285210587349031270529435955426331152867450307152727760935874002283395541737823230321173946907443183760747942611680395182680860152253788463014861068796754343099948459064562548219237338652865023354634564421583429976517426188217075113454337460746128367291216562268356457123827795855530973648825864909941342277818519143978163017573391134930658809783188184032687922419075766098999764789067576357747004526227902143554190950435200921815088059673058277712116495862658288781076595118128626814954747396133203129546317080063704936744634212639288731278111120259585284130129572355999013255154370521821996610901383887183988571015214762476854409711675174188337085675707287195203175735155522289411232465556937108220772471454003778700799204769361410027666762938235431949697755184812282975926999062673087263181111945953306183838379012162603516619679630879064225298847705358961779299304500728641875994537482640449463333311548434964389532350719349428616802513438541304898101648887965311395955623455927580676944754601883614357600329072270271321845087239563530710266249933893483902395151866146066954727443186734986531806080099731051979928575005694818381638822208548169513752246599693830520047015077806250894820988110310788087550823760291356676825404776651357537347189616672564233632460124426848974929635944239335562077718199139092106005274062215319593932247247904482717458516388541375760800290333130694101976978272289366686703996148222391422556775381017784761569279794486207977977123690061339267384825107481914795649806581003297374974831469822822138832242019891507801648709813992577421457100515419316239359849415592134514076310598903506886811631907127413714830482709490279740466525461031569038497935018725753329954293438875043341573677618904649482724274180103609487049032330924870885417426754095164689829477733679233238182656119458157865615346605077886418565659959659029672340864858930722922387756002695876936235147405362539959488005908247683970926001184861025396840398736436528185687652972538727556128037352902250021915958335341637941246001772998331487257058909819666890436330023092680525020700069505256555979321327595471427752065935261757134772327083966499465103427402675226449922514294654469909238546686642427906142695297824445216929696936819892858974586822618089175564666737322355429640339037523784696113770312864297840620731491896330732605835961798889241153636068017262837063286719116078168003706744073683094540044784881702022495470498325536372641433886313457320635107434163419693139864083177987811574890762472458334758144110772772739442200706743429112214854200016257520940984553438209915816654954964049697966394989116582966032964417339438930456233274921697877317538428439268361821805130176639945344893816556837951711621463354493774451055030891864833914729073237262611373046047418764103556642675042446151367424687460235248564448549758756938631584726700053919378935051487037732959220743446734687926992366937503276088173648491536979657182670673797748149300628751879362290229563764478024574423582218658247764829453254211547111720090098359491518529956053751762992909547821456472959098971511537407678796558339675315989913780340144052361760538836907197522104592329663894776938952352836416335947377711258469883768455546028623463968940488410072499605817556580616623951631205721567849395850591860530905015058801670325585330405379821054168513697439349714790408131433433014723844303320777385253485736736762560252544369220063567843999270957275936987129762280390794241786370367366736646066360200522744529431595979066074423789459685100150666873009032210707384233466543972106748569745971169357166746528240612160958503387886608996948356451361741584675485881873039682408684818644998648933745941850424556171855031910822149386622021397211259071725889952904946709431521120036854757427210304752397464605951071633122163225319318068967810243356423216142201434181091063419111376593369302611283848838062793545225025221178200073154477182317349330696056354951540341180397329789120731420709590481714777600557560676848742890652632516274137754070303216611781362705020820024492090656520609193865764506007153444103421645080646177418693186132606107436963297014655215990094826074100928656617064426088892068681432339453524696424131455321897129336142761905291003391140571994829257340484676239910929854391308917108144801088199145099162590568051078427079491270755135079837953760942678829578209042488712825634952866213838828781247710599394450793942692057534780884852887243940312833127570389200087674788872807781500589430961937385655562341229973271590590408868528381763816010938421224159335950075316046086743792783349552515124121344344780826191905243383344655389323683429023071657472451473483789415964780368553280128435334163896453129177865471620792718380352047365880949733574321014330686239504898518082113205732399546134738388110851340877000014198736770695425091404169900222875715279869901423972240528325895249445527111006662746072438093479863481638067814790409209021074907887948276330032325164146570356206529428012578400091596330826095913632147770114368536172142173577736148364696667393466972884736524756797464350523447840488630374646447761961051322780499038593022514259488195778804404744126555326019793756250780355361239700106185308529246948841913580911311812274948181951762142220787795403198705072566754980162180885338891841613628764968741916322412861081645129525795050353044654526363297131960201410581178833701190478368046095352135323446674875552772575666092006998659928260596203970013175284200704529806318545832916514889855273820341270269346385448523449273531216682719043166925329501745737648754853296567317113131257815910328842469042822531993194496456886041425507726598575955231104859627322804651401102856158561326145082451261233050226960839950008338641367551131672506673040884616968616096503557851330087163544387183967265824800648746215057797808275291239936157776498120814370150878059703333577370603882945944378926258254655273475077883179599711769604388874617827762630006016722855768124454851244060822198842936803828981956631344189850439590210825243778445179237461137606600820465817964080483904697040695046733745019422172644313658920640337397719625621096515752583911815242896206259759614068392687800463137810809502009903616064551676349020187867515586448508950268842110065777147228578920738789572294259087573500964354495625544912265424439524377449262208202242327730529640347228342898041151961750025993390934278435791907382654255033266195853036290689458934099862211846339385100838963603413816096997266941675353550505478717548206506603579769176065772642739860328243541862877130038920275658417287651682388296563258623722768017592876395432672958280168690301506446201528075881388205709329806199494231042230170352492707607535117379692176087466592238242789966353015439070401897051734336239761248644150401480743510247309425188529729071651494445799759149441758165131635322470569356695730636491260862294310469255707816414901097675108235463170609213151480372392283661429093084338454618428271022698179588150666995300382527629004125809620198984899735497708083021171190371411849964418635559550175975728472005958056898740438415073643478725564042432923585539024636142359847513626389852911937990199732490272142333385192780292650921931489471698755676895390541101226140923993518638224303764264510986674477761519156696257158530381884839306170826815442476814866132163254740254901948057327498080166923115881491277095046390530217403298298376797593098767621577209928697235104002895120257106664618671075939538008732633818236537315220422636996494918156712234463516224559065812482815476033418222983182826026332665729031981069814945264719695802620047056001546443510070367037150508172174817066757845226072733139047985811997451943876337326818769921972620358906012776824080783896051823518911648698484633257090241387660472403468263144634000004007097314527743093585048793889117277621713179990930522058858931769062906918414777933143383499207907002796065796878936130775783700266844789579949851262670650195079515867579769212121972523308368659331031257870767763197679243719499102074845756859519459630790803228855895416151719548124972530827841743788976443409957198437071143715138650342209194056694178503188108545870487887669305439018578192657336270757453974960394850296779362172089109606369284648575604577472811015232735434577390782875344846358342136070716707201101305434339597065592353827580592645710539495724366944047656798530306387294075513709325701210190908795291901847115979344339659376957710499828681996879701239502768788393597684158126502161013034470333281047852219742100160552339975039351976560692897203001654022955582936434802298619773246276161319133158554061343456739985836501898157624820847009327097736642436372711811312305151960761061858657425246790090683146204666428433634947364238047928602277875056074760102439634859396407531318974550512729891623377805548783321084172184403511798025827870493098506769174697862994620226146269689595787381698503789046516746047766557046162796533472096950285742468362153102669663395317677939193974858326304396480299038911598039296848103143346401475851920632413329417191801552207182594529045598831871648267379842769782982576415314902889766428476741185021746124434634712464229228031197684268215082592770001662366267788573253235982298865133005739046104834327822439993547526774619164564167139113005936746962071502889949009762553792831286415090205961273052740829992368101051399279350825113382727678266775394151611631089388115528734527770276006106970261321386132886986369710294929180609912080021393722805908705107371876082943990095015639799415169248990719480423779736534369560652656777967611307814456843020990904182023566544790008472981776427765651306604861775405356439738236722246126179987767656043913115766478893244400919352778727393418613038951900006138196310675391682823505461515213481109427370667587213125880464277705070311300659606854079450881178571081398886227889307183050417738575127025505470564167417689780149788832760263596924980132290525565971487461573225667758734839216150381051504344813207792213087677255839254708857382361582838400525770368300338891243392628494159631317955215715909511475854868222566464921540444277655379349420920938463476569095375403440411280027960847137020086591989802063659844284158975622239008011069022596387676797731691346831624394045445960245200106907858310603165001176893449684383188439693232193955124705833591559844051858260758157783805924902478873811573968979585524959134174580544824797385208902658606823753254556348084320523275755294093976126850129379816644773602592656012721782002951288717340914080325727797122393287109488103761374723985604380108018641052102170441539651778545721187033587497868909016818779219817423526536224323505026475599624277247361559665982890522504781718221210993516729395833325634852369748489636384841664190741777502627432927921161375215575758582110115528331633964179281316327903607780028722204663641531323203756522358336358693320569388062253911138335220923545568114259433411336619190426943821366710873281307882988870628862059741029097708003831582443053959876108685923522270148309970459167279382959701384633865363401498416811981342857888321617328580441314309497106371126256319110173016663095196380943103672053807532796175334486351593906137847101162430246567453241609024476675831732189363711790621167944623270079359609530238336824958727479189363113159491761149643055694835482515576602401119138664368781963465763369226661507876379954008635452500399635825008408289834056318301952842473591971369136481620817504229061535488033212236909929565670592234103769458886164495767787537661764446749045888645071934547409960848372632478105180500737489017096825207032703666370728693897522359314585625724404270575356565062566795957585387649687158248331927022603824713996563517396591020556963220665863637100730041983530870891500300123520297264816575607806880386722690526025152266190356290896273615832837639470823686807336145247105100637837887669731242319550669087806095399219343171151053461102710312817682769056639965151184882339087266571920333267028913889655798099813820793591218176071392274866977463898903323241276948436990147448432400623862689639090092816309081054421035434298817237828112537952728968362311513293279246874696965804400117155100388401741235276651626924401880296178710755638087134577063005854906714818686762764449962438383401066915798007079330082866141927982730880512695175140450204123278136305839546754810583400782138552140462202134551458740924961304996339109685133328602232222718018946860069663276535355674486370692915476860563314516606469227604547801617068918259721925632216218804231701036198733017607963432089659176875015897551012899045937924916419557885412978872148463746260312874089291563452823207650212915383899386282252807846187959620104145555050626266351038562698546651664519326716875036340568768936010945729248186723891712343205325685052410078791644483653449659566992347999227027773541774835791032505768468534793850692671693917668181632454313746031581024102678914740502383151887213118421539291362174071160488069337345625694315683855400394830084613471536240778611144522493319994210577413967980006065731349543884814008656874208442248175851538141662341495794706077072505765566958029145229686403078143265142500719302977155172238556485643655660463936365759700725850262409634793128298964040226904785063829854695465581658277717135434195660343709842024284572530116770177174847599542682992647020545424517439736338905148423186951901045918109373753450561427418578974947508962152037567018918979034755766810660334976742417063261125441417904625705806876672310249018879826072880452615461915402039923546450220678348205906749127780002155986527586022973569932867148109022693162138366855844451046082396993658525910147826309317028375850152989625503226640974382369000225533115251813835585164557749100640104014110737371198765859511031361657345310562017708366251481880444959093970615718001577131659063875611149783285190931625558798929031149987747030841062153465216673960955390971510849067445944933834084989368209905571319525332692282775205817628580772627920348799612726578450681814997886261502030689981369908560276703828758266369267999719395521118941499775206071159524135538223966104766476109836605634664964218535842609417894445418365727440770610565029377467678912329539443708139904900689123818643625168687253456853950206862059775415164962128558329803853693732501765461474310365395418410690411602440465416991361168371729777925522482982096002495194078815317617030947710596538758153758044520595456800081186815781791793142181883304365379661817213422122696541624214466009062714523745286802395838603967133821586829293456251333866593066036115189419247120201071987642536685103118117955571835890559214231815293661909917870817995559209488175539428378122817643610447566716480450930117241096207931998653561986455924313753510215031836739644171090102718819010003009326887574561869941410010977231910068313776130372289925659417305582305516760290661947848053104874224994801846920333519602820017309814834327523749166823328694406272722319552750630513563152251819109256734970635332676569027362778791693258679689952858895692898784546337359613101717094833868191756886866693991878926806200331978847073914666451750496217191922260071986760366193577343302061775993958883750039983887520624466056925810240015967520147751074214339908407010551934535755068426947966136028762651708569377862754987453461633093407366069361130604037612531427813503057406031549713307227220284363526859259940637281998903746392414945180067617011195257065828080120741504872124515276757408683651570240427960940517117430025297843295695378235709661527769517889718784475996345823689183753777595658164968442652138890823005473206905179218447066520051508245721246812641570960011624452586438363781895265468316301313936606839586943880846517892942819833061123416382890811996820794138751898770963077978607985052901225928833485065324566303610420095291806926764081707468254807037120207196828879968931285035884857985443024966027816810431763082886269977487401151948521791002887702390970633992056827313893899975672327372738966641770489252820337032136564935005445936991443210882824519101377665818547559681601945853970079798434899747010356895805954564211467938458052686444944189755611043113885223541108467096195369982230245420717773127208822123721109923278595999277816981696577442150650870082262246407669358641317146906683945827585783667800380370470687107513100140951782045989467017018304146310491814714921130565941456442219363396658649666321050867593140209731527546113086964004798632365088532752590769687468044777479872585330518437264264347232263126839991680295898812266787551042763603617849050449688945589454823690155236848147550122016294310191485720671480124446890270845521072447184336581838981695195349404459529760232782338638944054587810578072954883152081746585588961091136807806919096371863528069602878271965519214228598629964779172985609766532932582867481890679066743463980007428779207462301828957294263996614534930825204832843267038507465196811281844725186992442508758119889405770890849835313004546492834732800455869327679672388895736799922587049945515673438050584419861917780232321314323612720318544352796424921002341986089657517189950641473485628372948917119763476347490666569991569085769701206137361603014637669268945021178466807868310950926101891215294813343842627659559311814038142757383419984113057029800735853788332274850717870466792791799715100595968140148081301184737515696866589229824050824199565556721652351556387611590749102371881047678429168741224830797464498815502702772488908824738865794860968491659678813394734933388371943189495293002789210834255426484662021484964083996829387870052505276064424012342787086028448143277007069449508028857326702661625550321091073658177472016980707988095162945665026458669238894213564596855128735284251695620494147720054034751131148197192154690758061659572601974530942177478445600654847842915726761495583431679343161826241536761243078721119048861002237232995115815288697392613378371211641344326708890875107160452019472804461070412465600456596932832977450098560391556157596854013027483143546005513646080225800929705689789109840089950279183650196763669390781697972861918854711199228079751223536823881700267432603165849534485994789812213497991316991540132211790622792552107472214209984768370145482807522329036769765880267810618393634884727325226137274686825450123643711609013646147414113756158563094774556125752893163247485871620339754193288479531152238844232144627978430097454544775552402987232386974645752862362154238693644635669044398186468511338736148933737647979291925904414628419868633494588235170567988465307740358864550900607116083049869133587718279605821840868965766666549267881068233182395841845637022979933629954333137777563420157218134857992219193339673549036309005263132655917996814296746040717376132220768239848468833754111124110562607366613240230596452294243743542538487774324586267563241001454529763753293930556776382144547094662018002215069961794151046197133306395848138396326463588954988993173738639440915238987837436055184618836432224978187789808057651791730685763422139145257986784223961491767624442305735837333338687476098068866467867739530352946080080822521052538710076193613825557944793842460787704880647636505538067406511189108919558605821461851176494281078123469972809379861336117035813650536409462968826632734139278961054714841462252848783822591994934793457418642475254325513377247845071417094284709944084692770325465426983447081078248805123487707199092798836162933198032993348058514385743493267026478946422572203816814103159504105704315144182607089375925765399257240625241424219555211570379238637924757731129448123536951177246036506835654538492056098802840236561387359501688386647832454599619222333909247078413403280918361700776457599815220764112919241160438613192636342207730171704811721453846697826142488736191631428064994197650958255250330254459672120739939903571115755269263976097554855734546553503180599185712931230606338358814544685452456614155068280479386500179001120270742790536873332856299098726130542850576127955416104347185891504708580828983271206143841828326510549479927297051423553190484377661082660991306856736684554367114971152930543548805574376775192219012324884400336399987492256347925364811833378099536401319635934867836547398321210948249405821576505504467136765033975235258108850317174817937383953210047016953525307502851239500982413428313756169587312545639384388175296826398598901832044509990487001085403998416544526210914312383175058033646721146501684613474794325090591446229980664105025439915896495432744531503247698541914854212251872994265658966466288223379293998449756757738034000187418825744162437837949641885914866851137510914228213050251823811932717292344256739288301225558961156417019733956433545503711601313582797015310242918391985612377532420866476413889120572109933689751864937363225595120474854936197025681153880455264527932946214414533891109156165299854892394370790197160870761956103715657459590012504364879212990168873879326140858883202110934286666335150727721206685313560735520290107172908561925106996355798450774958397615324954982198250703267415139094772789878659918094593231644398104140515388911874689993489214090131857229141695560508644134782738466230681625989509635725477390029954179721112171110987978565056072777341596230193248714811475796621607151839877629206898761618308574926233015111857259699289208500853063149179305261917300611662464412662677962614797896421927470374139349253808957041264864976164616268887085492352171329116873474568492489500169799437126434609947645895323703614309772633220399266878385139850967125454954144182958544732288754326269697202940551574899108745749637282535516382356359034805891512642787077276107048362053838340533300810140075240680449906856869241833647879730125128504793843854293078403488459433834514567208714944927042199462523439614371628608984228632554939585719777922463663937471783814591864845306178674562767491932431877850101517069765250016074591228907492378547674141278414170131992384050704178532040222798274331841954246122218465855588183180286773997274190251515757239545690386820206978508562068496853599936256543700433301103790845095910570134084383545948564721428798762191693872952224191653914735330224885607102060777711005498583059147493846986077403240141779993885623437296493926388094129704855768569501800742035848904686677974391123229254011775546679610309346145381785195771684104623883884167090553016439492177884862728526578720474997696014471923697726452191901171943950309287859329047718500528679972563393700910931458675001110184311793384696758809152890501500407298876750007113649687023188822491497660015744754918741331307354063747889870598258584205515258318450148069404860472587846561827517037973431679290551774739685267326339388981962837008229818049137236586028816784806486604452167991577463013273203472148728037917218232894122987683330552967810398562858876754904428846749023395946184404824314438099965524120004432027884106844688018179821249574950057547713036976525972757176370403872529845995200026587979662128342854199826132419733869639488582478693239822522924140791368335688107545246490686756353044692236866388905138272152248892572416557795477720238932013636831933962662456349091940411525182046871521292485338790818734574693185711079967050843489352045240666446034581577757599373011778146849694302993623513425813681741335263840673734680779244880285101229158283888623860402269173710408235853776324218932137639025931405038319243564055226306232041208691031791382843141408124154766667467633731278274419050123777155804460687988006133000413405499420758097579372357065490528521508905134657368889488246866310629745989608397203871898367778688280249083196078301599057059100542057383995659664930482560337485171153971508443419278567084498321085967764295228115556170686988733788658395688691287827222826803079546592219752692575582078230902260554422227250935789061699163020382766228573516054942102310875910769769042265347243041846509906227860890061624326975660087430696963353604181257721333449060923288909940479520750191765570130758497956414665329859397135634672472638106253967663040025166831373221517545963022279870905496413020988934376326374211498056160168176639916054338721253938780397142441937305243206475395333204938145328253947679425031242229359398614644094055310846394564938048711481339227990204482546514033387881846265821211203287754898975266226524301199720457749401064207064586355583941416410866485272193284539995891626289750067828348010639856439702438399299808321819788771034548402392667112582262599587480142302691790190269727025554099573797727079955892315568762944869457602996815449378123143133155592673773550972227868471371229449335036625506267335919447577496717863930801187921836652946535505851702352563581068554239941871006667337220758580981785846048548209027008658570353753634891243517822153150163453773702653583099827787662947402632396810274185759710984103264589084922282577908936635649058678922734558831661356072942439261100009580567549256312647281090275005598298013100545066658074475720831662035721887465437490289573903021764891652750900985819490683513337514365070613283795519944636638106060122134995722816416661997999993685303705382779575760035647624302674724157111330505905273586418769152215337973607842836407238900050149407220171257090596811626329083785800151962335121862181379516949602377470243215848429987431497206301764919710741882516170732208701901013601173300136162212496976263539107579542475035892186706781047248783920182454935809471372002064890770028550304175559377143211722094142716104696761300580942463441161106842960741063959386682420686933006293349782912459737293671279576777564398101765693439253520400593605445814908849869161608640668931795169217560114049139872344631304933324715824685916206893989824486548368913452457518759965300664066650611694690585267800484112227884642317193624383943694369461818670906601405412837735863158270277093685726650719192080833290660867851800797373434968666189030829866265652860294015019068275682130246894621111890616038490854003225993442618816916574359128598034161098280081731597916542800746471375266143153303226229296721145799519594666254809468696272605388996581014253138559463300155440782161740570598987188916593117975004014265565347909409237055671610622075206512579504656267596508138497193696349574822424208900954128198202384709190822156590294563581174560454386266968917452228420511676212959300484144023758984115519410818754320544698103973886530751170125405605092084236049727037665312478016994904281943654715490758697735591281966666789580070622725119146523198684989927724795355552353469327584886318326763846332386805536805262594280062683979413974242275878794077652529241482144942080735321093183558999407878688475832102906813222573169403738236490237618865661004400901775154832175410598546982100315993812385237527399848017790949890185747197176970851829696315986931875118333335208358696415807021797228217189645733580186228547728608089658277173314902051013742527596332865993388110459284269969296874773128539971583573221253226712512107396027072933221852532759527673576208338764084467779269922130198788715914771162093510464861429583096070230797678840814991336947079296767183464789713628333586601295239301431461466022476829707971834252887495223107378494204177697748117482894623468075692010335408221462507574034869214673554692213047252319488044071502775560331538202835781972530086878197898872252478398089987268730994487700910018391846349361477880236296366576001038482349988690838166359252298134571590318892481659796323692223671045508176588151492826301103649756131085441681307716245222553147556210962266925127665965881141426946840702806318442740421146081327554792188411870864819730288006234571824456460988066692764761335346957074296796691125041077212352210141746735830168711909443488415923339300254757256575306971809963105010311276467503850729500770391014345182998946415302610310002576102815272858251240873015576252055730669696319577862627207428244801447648472306759090124299022154172073472275058354857731536239481147724778954860094091334973540778887422744961654353853829089110029852895149531570589838976878116355628143800128157761302715309353859864029142503455743954495392640613973671721194571663916487127961065556040197962288248982061327830045685361722265042118349533450716173433039889376562646931836256852715369144967944045572118946297129315468147428582725480361470724444670527413072837093965774737147102799396940642882655391963272226340579689051536742128950510138736613251868363335963858233753802730548759510713889227756802030935980055389289312548562917017453584505174674717434348731844260870229933394153900532510738307011888178145450790128766073196935991984090874277363266605268992308013591063020782493643968811304366184601627723911054218690462288762366980621463758738421900939147350805675006126253022719200759571417065638205452189376400276220249686151408428466589917886220718158295376928070994772408991499967489228147061670668844997973505024647158023825706410623348557385032241311325816134347438366579664794335982786816907845697026131962130781111317603812065245727501226013820949601588535332843066826201870006977118926128287940104727459713106709093795045669018715683009164611445195477395535821739430240077617762090379599695850496514228036432010220905533158697371101868103766004149267300736977596876759201518451339378372309716864522167951441919802999850843552515382316876387566747722519392039223554775916046482700243340511682273409618335621119584082970336094146680303867293963395049675365814572853448929761283292019432441438993522123293266807434634402546465383782146479065241885893874306932021712069204789010179893379609759568162525361904756932029148989361196717699777577444354845624271320673050845848294031929711133765210497256937824471687866017872742501873395711976443577326498341430451351711482138995903659423128307736867349473018441814650688335097552030526784709536064113532000326691738512799793181917136964709126926765141187458824815797432501394239485930653480407606966399255909943410835743316126426558336151453224955487801636998874134700962205079790871815382370214269861459237066131828013859435455914749059575619705147766001259014239739417406684922826287667567308794454504278483205321636489727525474945182426196071842925272604998641209283857028233068156234395833721464284953357190994074177091212885291413126190930699931126266959408467306580368373249716332405216773187440629270089145103165649888280874962238518800077756789978648473733314569946345740746549435763769011043619809457824298260001877664406429172434972734353663302524410442045852647402450069362603056215576025639652764138438838961850069476978337818054079074018346478317679497831906844122949328838142685503148269140966682424619594969178113186813058585694693504594934000357000985940854706149081628175830840011727481800299502360135926630141759085783121455867019338435148001921181921054551300745582830939314110547434852410145782174942321816207038414502218470083515795708573867960291513255766338980431082408663064729900450210551230169613632841825075477276014136423156968082074974990143867180209792313935218062048492563642265779027948494510151182682533241528386759684657306434577642371247527517280347505685487827003032001627674300373549430035226661649210673360652148917611215367770312100873894348509932658761832010306022612270350685926677245778725404316240289257374755246708903599171297825037653534807882056654279088335198758183977091309649784649813895588880644919127676554715017393015224105950575759206317557507530457276017352792103621660101080251760019324253550181935430795749903035226796003994337811941055760421541791009736481175696541047885441728443149373806396621697176237773002967158041320546036230267365472378730219833827336493759932369286899315942188139142050215521066198576214198577185207510318229385597403132019877762480096781210576385267178835271178299720493589744724983275046707896145063315769693172694783814250421625558123943120020438817461778381589056688670492630859263049526318268024442148440250495757214528285855839698354024782897001989313905700675300719017584367862572024133089340317653479969097516049579991111551843656853864297177915214642050835305522570993646402521232221740608089518009088954220032273599421926755734723709825261110728622401804907249121179717125205201679034990960459777184373225593070766168226091101839940326873038243880232365862278522543602312324850077277657573748705076467253336031340916995191798532449852638017769952711827834966136627750031643642305583570918152459085350302999248450033082855722153772454750541482891540509124383059643217177593950939167238662388721976622295051353283171055419310874640886281736496530972799747992620181021478722147125336529744049523915310103212693011717909598999864788394109476591053752933911403971460773294055175912517745750139306058360995306324252321268578068921952819352473273215591027701076567748070677676089947922788333134668204343582505670659444802668111124172382112838676478683865149992741890597545852490389500479528723623461067073132583852606489778123322586010011932889546717884579775245250808388370913695210451481306550998111416421073027046525443383392957799653837352944609048990604464119502041432148840268112464335728247199815902797695420538210024993720302767206706715061606854028722241581564370293840856491698102915144337867275215483340539743772706692523322549791327793457467475534448792540482813441738083204418269411512846401144911020692985510095065979365448462126053099099310218564789748461275400384299772570718178437784921656580672030167097340571813114572732605772571226332225032882136448622854044621488115410819919071696943644060779121585102646332860858929056168886101693123138081526144653970929818436152417246191828904839278159703703925815264728350006339886295725657656830457454466795752163082007744731894270835036225529102865051548766991499623577792700443034614203680703592121673550123795061624662525464186256795229051542660058031246699190054234851367909238270942388692700868024188256465293661651219420439545217747107521606123578212238672711530540474761462527370241355796450935391921737771341083029740344212314519963970460775660874979873797911380203813733814409876698819425451816399136636025058498097445834988474636795197868459432478121059188486015142387802175885944540054356770636884851878830841036412613690451052231812023687540645899185361373519241676615675180914726408527596440767221593916960702689047682256141738621151667634613577367234254136481115936058349603786811639763605655142183820800096738362865763821182712779372347139449030290908145402011698115184063003800087267848501170898482421399784400920934219428586674234086572837847163539612190304519525534436876045554289249338088133040603186594893851208942959254545177322373145019716075554367780094089369821198371504341245908326709191275617964096999610966950864839722408324879255602627738770876661324627642091705270068122817752799443773761877301505755818990294773788658909218603936630101502527476276053612242080658491114147828134189157492455569007855379868837471656246497506335840837077552381241948626272426937467601033776832263801566088103252221307967808360024918715263759248060842770936733900671252767293823367938391282726782988410756069597006900321893420670381304660863049216378662823194716078633884043433114509610687241296033687399702084662798650963423591601803407509950822835979638218407621770258938906893906470174973749809863579246238249454063296785707691419546123816405460756230463365643176525347839451744323323682400526582716010867434753871675069754626284423163871798468331514910145039604934469312136500730216069162199015596171211141641881641449527360567082812406495709361527330864521446793635548704383654070021907040335762404014206463634804473810600782160002022734633462073936862929537339239563287325167866013742060401884611392529819302158879606495075694236059391897508172727766439422223730208184014991604728751336048590230322708628214309329703405406097323999863578068843338214657544239748584824870315668540513187114064192396759343475872791215140268817290229426719271649178928763465317895255352704679728345933772053957111455519601982336142567865825221117015402628115728619338275641941290924731375218813575934777093121894975381169910069833329272353866179446341288170594042223477122159160046682280634902537610179972430309942989101754948472740142915600007993697002846015279863565731978912071152002847978718297803189195525746229294885811664569409397077422377175724081829085740877019075833076980353530144683324827706960364291219604196895703103276422085354822916396076329041813429895839105209981384007814801439038595441867284902525446897559193116687714995989659369268531798174125273468390250013325404048818899236745231219728904902558601874891046683000295715747112845062142636355556865653607732329517533204120730029001660547507333714088680853015502410066456888880132087961118413802518031012780038895203320925719549236471644227984910416819797122034211868524623081018432456955281337284595286093932597748316456355535921209722965984191715274065937383850874932342100909274101852532728561489618345588374566324093028667188643585575184728421324756844524777876189889017743981280857863002268351220098292092808652249502622747478334596564370424597232731768703149110684747552118869422043791769845903840728608715123854702554912411760257540781186907601320404318455103817631730413248515450246527591441963266742290741128969674658931390225717518937739021695519484623434220443463536511562443569441502101538568763814685274911952027452806052909129653387300515847738142162537725319595684338238112567618228706786060464832937443590818427714845396249430417081139677545258418508698462525046198195745704464298773571379613199772437780571859469910838832138003026300043850111943289142849510299512947767515806046204326339312771088195384931370219218208550007823202769659789393518128408041549110020440340839894147107655399886767486670314033034779693165647411702769497337599305388413128278982773827206198581196745260549781325096184675060962215254974530713576113505620554224442526717896745349218329102014237330775573551612197738344128849159132323529682109498858554746753292879314672513853914114288558975393054704110479195496190534252771352534482899773084675497952521858921483821690065164129078233414057276490754705911082694408365979086457410650994414846121232485840664765798556890193909593982182793910185151510228602498910826301599056631396514080552315388095250819615597398120556710557058681168847876737185932280844706563930583851553433865601005938554931214606086471105947233372107299847936711706324353545742363163401364749571599664284331220599881335572721007825573679192881020456531207219562767042380157681726466728324136992512034366652413667567197413006840191957899934697178660916119592465550008061403017060725420180485276892358105223191926278439517013648039934567209364033037408925723247940359870931820060997213512074433596707524553597152864269701700741536376835216627929660843966852112960925717731331760893173060483727765752885744596653373348378501035430920341896639274479573637160572115026241096721775058432123917880587404323497448573040544404759787953876116214149784335114429381420613007189203297614631104310283767374285763231134443455328208074796050633728152403495021391614002065530831891825892803419875022274445610426224127984883653171122090596619059820282210653769047543152269121605155772948362764500366036334381533160655090673251241769610485814829253306466567687168485641209224193250329890239918407734304513134105870084766501164729704473986394387813625768451802301652413209137493322588977053899743328813645973320142509056726758743433782768732014839720672252208409116768344366854576719016399994090725953953421780904841420225724953681843808964704153078652670357814857967476010203563078392612256939502419729023083022995228241226884688081630114838506965354148132319911531514748474519116397353501242763900492524235288723997032040038289844680592280498583566274328760988492543402042537872117760591191155087943785866056867197123276206349093706768049247399396463831642294134758889305551431941564999795872204728531351340165067951761716775625810822978287679099727503125362322438205833551126637364904372741808844020786400745471017378559150366327236373047394442650293091552054806977603153016376093464076504581855875922776992599050793148870209432389209139338278577125048207183739083019303023701714659709794097871386551440019064515170249575055565856984300090187602582803506473792477928449887917575326206349743073967866553032320344002567273591395107968428214596572562375349014647857659369910166025699883996843580208566165186946892578833007284910967986362191001730768571412838800931499354274320770392189599378710836377982913320393169537791760688276998477925797406596471461829413159273602557514944921413865190127106697884542393706336501845441160183241861410782945017229159049460712455838990340894937894465603452753629247611556275340873374344267229157305364288058735760178479008060404278305945529141195822939486736508364805847980101020916721188713083263016303406484880343317478600821902010170359899681192054521724277324617807455931687255191040387346969515173678952330750026138071588993425958031432288285967305298732757109947768269348945205565837205276380185702798947620352519433234469036249911321398570570661045660943878344235572497945947664127313312772555855894102360263728568285384304162637897446516967274326194320081251246962383819562885060261401761097099373830633837544135626096816191615633925224140201808372385232576925981054993485614954078833787004023703979440297872633923356768583955808356857675203342928688241108144709786271732434407593682915133662207017092127435812529985109555836370456728827463894716202552023968502706382230965402227514241673620641879419565121499455813531450962591766675240650570611447175939715497632889047786735424789455286480977829631750478295844447334139184015094741346097244554357373861536557443238500842117893037327866852606961402315434083667711829058646806932813102191614773439251806491433192803968852224754900035017600326653509948455446561848690622011323014348811055475000860889431531544360433437985717659319397933736100927931549410065047269803595620303426472690947441281723041931512993202014124251835322474893470882423404870905919220767279018115483972500139952997475209132635425112434757009866789428151273906574537935841865248621697662265816762366608456006882493634198631713192839876315066673524175349464954003365590684402590586839621718882404975377613494951588575762891272998047431966584586770155714093796215117649351512331593707605424129582377255986253827123157529862431748113954254875394873139129938399958849832451282562864466010506819135538513467052800192870525649800962097030568544653350314147752440597751555557798353304374233124963745254070784657682498074422978376309730416984040892932463454374004689852247277581894815730626009034616995398142665822403413961631031245479531742646662753785508279942579123647337830233558620108111050299562921185605699372915990933315792134608081146360505884346846122131828247751872171460786194600562297708053553277874299158742584723790005161654388785518370523256808464108161595835135254127778287283514216421748152838208954252957057027780259448381063082516227734377444797344833405119488825318776039562146818981942698247090174502357966934232573363756972049193920498921918948911778248950758213188887422366037804958914900591310894169659647870139404376042796265717741992271330148317561169819265100481466967823587256398759827968916863319181589285484676605696777095921432317133376458953263229581457105441619176143383701689565805894786508320742988129990969130505871059814761591080224253210837864604264342214423189596955222288721398003311704092535296205175896701684940079902129270480063040363396179447474403618395086987772919489123470258009024828107746535436347494469334838215796845257827282907568487496969140723853236962604007293187657308914927138494285089188746589241999273107975263949390155012881569126414940832292921699222966287085321108590066749608186918957287628960248356897360257903625887464317763681184699361290650296087023490765559268297054774805945666342010823499565154774684379215432372581585898728075092087365880231127754718445218252462217703810629474795317196103618298854663817787453898814570505444297422856021674135879738980282822849933403593846896839521843113832576545239141282188639281355531671629663688504347247972220678488876092981336497900304197566657552154772818031161287968711189022119110173595046193614368935002069764524128231618078620059929344847549364596046453665423723332466713355967140894109245534145557722013745568110085678073169238644384957083122668344254551615193532300063814604509195262827715227093569214563732590886801658953039101455774419137118986203811309493479823343600706377255205876973976075174371654322635031865400990886262980733465134873899030008719446111365230530320557916198310660386453399494730492491164437982720823835442091293666192742932486026533866993307670600344286146627934276911500364753754319205209070404789147933033748983088985267056624148994223149074799965411061112682583073963839332151306870066990989936896996719419396975231806918713482140153021546292617338298433229290127138835318514394909755844679134992389942703838681179446944012303937086236633491435015772400611611147118272912803371027522016326302578677467220325267359639714022834535943384851462496150925226256730264942770518639949815650530363899380358526565219406022032000822176819562774833845438075766171077863947632968613774128223670662918631498621014203471085465750413042644488909361865311670244314340627329878771056223845790575018289907175792854017358822877918797022092248223801103403723746453427928511072006952496307088486890367481370218955803972179230693378400594504032954132621512516756952279613322617564348865249649059322174599148591986382550129612431185687368709299543548603156990796494443776117025430802951524932791740003139855690167859954868510761184526577417228566864114114035474787369960804826791047564617769035900871044120736556724574696515075973537293403723719314936922100452256187720957064662997228089553036558695897430231040632995541120024738817104640844960246342927482092410244181173617156869688089652351139451658852816275109811705255208240912601614465255261315791972898887391159187985521341668318970104592570579644743866998416076446429025794053829551584960806872194741842349092532149628044351257057546251355705251375776555273306826265801046365917170009278846238933488824569910741410509848562313447511990157569726192355272768903433251901748223966692664482889686237387963373060984628725431349883431961307145466184472743550370675519123588822997458412079445829980819963251145943434980375306759197356801266102998722735477375137866420927749534178244838803101603993779441853737505212765796360909679540895643421889325989883025534827362261348086871343537205676356993478161949717535519573869233348663112640438047931706421223280620559953130312428035364707357177103739208465744187710776159699826320860376124418549467605049079061123804378523395032800651088404320849083062372377932496111722077133527819719969137986138219391750071863510001139622360240192083847439559050941431793345240746585312423444455052021157463230160744668161294003686476450267473407737691908040825853698098930153405289495586109696835204321377644818626105523625104856964442896457177972052887598718198251824194927059194189633042734474149664468436928645111443795980032389848299555439980874444511916970603857412629683951176791652881969634648970846701254273630562833837459997219279867106939447971660248651251016321708055382793574133385347117458856684762478599000448584005784678388483463496924532433641703006625599809265774540412719984667757867298238481975142626405348993316142816122692632877918574580633039043021889146824204162407877396461628890318809122923015452689774175128620506259781582464939643201696824253524654256680694724476187005119677470159623319751387431636956671939263039718685001499343789666965029219509432817376636992302357110222599145710024106078173030366440500670344839626555862996900941252520375595694619942988318711499111582349644902823854835747402344277658349457378385652632824851843365875330474964665686804935512449931392242226307634784505081145770138631339216395000572922628786345635847533775343915409958718283165430892626538225007400180426737763044710175068081552259635643609910180310443768377023836079327008886666804190521143028704339577899505934782681522674273575878486691066354650321029338988445949647296349234042774159539389392119993257605754914860427160621036005290602977024018770608202424534442218130060484738317147039259530946349213586103675733384217149800044408284103989803991570124804581614698142872543906317889742707214545275537098287307704278004597640468317935865160701440059491466464727349456905331776868162910585928661121909781066908918394950728560441077582430817036843202793224926582462547567601075680750032520290955793825674359767498832499872797051787143888472136113634350208614817546692346664196340499928535346864066499843240761153382744906847786874648057546629296031480280432513992423155854045195986000870180418887026676697160741246307481144453921941480931559124418437870157255290108447753117452864105179227361022586381274551737741949784216539119705156573099091953268352272998723417918730266867732221361751983523315637143550952017218932953161770921774695217647783622203475587833899441360139379721436428576603281654807435612972109155199213338900736245998541034529354583523292733054923717801847391992782521891530524673929711063279908430123551338103030137621219695873341289984974229492023891572552938179213930498379784935569912298394860614780319940293206154456671406607382177778827216415663737823178026988241207873349243539678694870773464436438077663199290883832530094356854582343792833638023731458915505163871587768277925844518302475443705867640936806896141283713098801432941591017723832477374745539387944617981987366984547874126778202419086611639888848016112564162445442956458009823686987213345857860421551584805150661542264316533482803319782007716126918755454847767325837310799633735337676432152793800051438206986019153154045362402692247321102564382306657521362383118185605293411707029007176009185793948707262352685195911347321704858189881376708453189927863385282572373349560063465375426161835960206749200156972681728126144951656955454355001705795669599467858954817310087571346872631550427666210158547469476265266576475344085247425347215503154707398975764323650869048291095210052309829742118604723059959520977506582701224164597627712379705257001486468597602822149622953989947047223062361476286230890484263152311083366224612623466703666659650224411553787624890160275997011059071110271479222432621448202776927220634800043630104689661040240846362240776628700023827814834564347104712203001863635125609724747665513467316895276236346556144166136923002742125735158285129706628128749377352762052046440290735573502928562842863903228429595614157730313651875461754016605207068339027689387815193229833035582346900136433535961934907446687442807023974924764810582890804385745875355355315799416354157150621990538660150721400911276609483128627627093078637823420487339275962531098750253967122963215280514179849562538825675300565386714130601337989706022500164058040708064127473246400949605559164454779675951329845765299959690223122022081355891538876118337557520272951186484127608275729083782651317620057623860861402342824703615229492556235502794208200907788259347846281071835401631836286639985596742800383058913372006773563049805334410456956611921232955471611194688722401238210740946259697061696018727394879732511178052480689071231639684710663983645565195725412467912876157452714331406597979333318023888337623362267990945964597179749515058715663293174237044480674364652746592646914678829618160343858853914515816823355176559613370853376276638657208776365478121487706332995397520594783764965690599246745708515480636726357584578528824506245663241638964066379082261350815830453374267963364473213158449610538826486843200562247796220619016043671238466160325643869794862848483525352667659389941774205874796597470489849290711705552477612647714378861155660082082368924880452759058266961921159719082398864654782784356951375747406157461630724587183382000335131091920439605568806935220979750126915884682381517223009553797293538990427159627293783733406283754219619177277461131322835270655866705076718684566253052085762838347738332997272697797402340732066189360073462324137721970899470104016300955467133963264388900019694965121974215141719537610769878076939578464522526378209223915638119711431986217416200539372007029326681683087491405210473187162776531148450777732863528799468868022821608536702372057189056140874125815258669890588952385838550296818220736759936494420102895399768019059194535092816839339609720822674910970012999834739172105250609359543275126870754264890652182617815202385069656462135593905119410822419636732754193356899123339104038114756012124337328531190115657213103646103659191757081057365176919292632027705235395463486275511966620872605648854716637281330403486488951187585705907296920391635036519946915786703880668667201786276826582026707982755956194215505224429189386674467946937283572271615499837608609417649477590335829827628761612399766593868805430122927022355239160015900733274019226396225256879529868377964039491145333459588451571391174855333347933853491584552645975163548240426107955012485349910800199365277276738581267335105230363510375272782820942821211102321641725125546696902979599672692353285656242780359546074740324935711285352013427370848080724746778356792645655663162436320288404160482452106531196564127298763366436624784048051834031412869041370858477687643371245693424190713941501130707420171275757224498813197480017099091131386292386994710852445182789260535701560777953662543448480580559326420731560313306057866607889155422099675986295002958577289403567794939286070223927705023521272953996620596157154319182298064627882002033115319455861815476486630249608378238881942004676289212410892157248592973811464606564157548252449204083599255677882701156932867665624157096916229544552086309116816296068825874565368168459018333453507624537322894109442396512972256152817458901224249319646433926293570693197244414633844388657732074518685207117717085044550181678981536948963710397513428431915707382293319684858510809657259882270430773000833429374202035635302754060830677545310956580794630153501743933448700045469618792935764130967313722939262620450615946907076700117357551317466705431088471569056324015793237031168069830631151798126900401815127787117534872545752229207881990260172772344487282096598029134915290991297472048768258523464544055664006840043669321489874486787518292688271868946989976108073987844855311543780802313259680881947099835299380594446001512426090812504983905382085453587067193636000263907514687270355081523719866222959046540945600534891000245842432012392527991526320939353849514550832637791388076765655276243207864034596953779602243070323450564624407705307424424705592791592831713561844792058175117624271337229676748077712592339777261370070255122302221750714055501815235284412428091958806223881836896960460765407910435399290430333655302138088916949500072981692653583705296819298295968173140802033742885156997902090654933069621084630834283153993403841982474198343812009928030730267604838516327235143012555528981936728320111512807327749659260866380437084527935336456428984688666403035870956284445954679841848727349819426920866788068111157927441696627013280617281055999012073340762631259478996734746797417397729314082988505771690039540661897215660131757521670438502247350345752201440135101068479077371260395492966166141576932170412950245582181369829290182672871507205445350541915446618294372287760095479691512952476359309566282554941307728275503418182474225165542649263371709812663353188959279043143838585589031901557424715933985391057730874800043910107605272167166508886885792624934314820454118493907412974922967791484015620257487893794507070473992916810553024949112561246545695065696787858757401761303326819101723567555017464203694320919109575721169612646621647321580733495463803282932564464570958514101882969270067649884279618734638382007803546590195155761345288146346892309470438221480869962430627848710001898845956468190462944827704129370904610628160805340985372455279528023442377490137024178908684538800167126059426435865991746162384308692826558212312945797534768164624972812660401025336906344114714571549239670869924888295363489274187220516722635222696305062690715052745139268764363217983306269215029438911502427056920950191589660635875560405958992930799960971295028462682404554514922503650971575740184660249303109702839427057727183627268510291528223320893347559149994000070376925797548987412948178566574761403940098623573055990333113823370597288804427237206237815948532857219636879203367509370199665127827812144723195280786592305609427044140158384583656319963845178017406324510016521351917621170842037507902909512836004927740579465344046400588260907837385003575088342382108181675246213927229937223331467352227362590163607712093246691981640698617815292472184970907345124151587263500218562257857497510964711110552269074376165005762643415294302256922585550948253588563649145691341227523146894903304099054465984737286905567765325134674092522299538283548262755760128641695898145636287851743396433521524051751298705442812882185608723045502682740460386534495701395360921741745703505347203537593915495698070423178924810776542632733790718684791869733406572733471533301465228257655882411049676742938462760078270677807098030500129629931643156568005991633542173362126479768607204415320270029868306676101354255023452892970395655588703297107057736955814883192693897824161544849369962838944999887368268174051095592738531274565431822268395599062948359566199361952725745151588205609927584943258321623391193388596041060707760755684967937741885101674788311448867255280980440966570195284252204555778962870158896463187183584302248025861160198802242132612177457882751958768146154587362668838124278557083687159201709632431269765405212633015675378291183191759955805413470394851178176345373601684571258554196367362208766105841939093569790999084355388818892736069055832803441551688838749552758764446562247306355948874196224594651924951468574984801898183381644991235871153094128468619609503900080956395641627567245892090225651322799063306438345964779198766233655013501843856700580030467923653138212059417469500188602855408552492488293606171227462663931029473517020219801588672370155320514792752067241484964979962501020988746714231718585850339205360393190412998551820454642040460509283034163416863486778124908049986155210027486506128540821962614888496885114999931907983003854041199624294125832439823070701043342451843145501986629752901350309158232747750893296982128749780275263086076418265127041568320096238584196740617350771880057936171640846684123670459934136701599655539820706173918357658691949423466957180567074734119107281702395720817117642360405881262776309670418608135406894785396020720121699199233053609991969653480800663553406443248603049009378735612384816526899029599913406997194414221180456786666068776292264493354902762689116274334304680506040678769561234833769776714020008430899696179517818012412812205961244334318750114008688886741732123973044234470142108839081250803100937646655727742305480576430599697294782438133770420223154205640150188338750377499116250515990597129189491187822433139791015696167054363480015123014452119465497357599940166345755051860605704172126673071528191334622997750735931354703467810333542543387798503092432683761842906683050933330328880826030149351972711115086738303517154574695512129797623039827944934001947630922463304472243365411424495013164418962775399044233295799397122155398682750964665163492896477180502387525026681362294780347908404893345667844103308028886247838812587221760791643459776207734386052591788218403761727839719133248648210201436219587019524246083466115950560464481118444452986569902080198811169532379630585797231027715033664575030732310250064916487397618647839506111156790248268678927604309020102477590724156749122430681950479678534047982841174038810132782903217898017178588928314957701284586248940497907776584829221234408957869487898119934989376143633066459883012026293212346903820057683192937990041074225804559533778560752731411155829099636194861168060191703682517563311923477844868944479839345149610088035498253217078493264730265489582067460585071393011147655069549813563027156945562931655783293905312333529049445426591031361676578237008421534480280165552995899634258397679285792092831078936498899791154870199313465588095558732168952742120549772857478934219787445486044056513312720036853189994283441268344679457555877426776693087210574436353337388358285640513513984453263230645719194721156093508691597501700851341583497655833846205437057676256492836226756367986206904583054830883800836119933241732197567815222642295956779104966095442394397913569673263998582940856117853116869540762522559043153890769603283212802474538713422163556185881924737879033029037906729457909165837029872547465346260648488607920436248330022920127943516179626797601566848716302195208852360457886028828806487420701785557844891548512712732162499831790133495303241922610723490682087575070540655107000858347911094533004943922255376339796385468529774935155966947439953558222894492972164553568497560073002291250158816902854297381818426125926056837500884329962567078618788350426445357411896952705461571521913100909592142977336384415324401469587372627076632926141260255861303541707227346555489739945581328413300797008286480680692456795288770539462518131096909210210622214103755224905571995804477642557247254816316148079238628120072769002540149170984014758345055465928746475245537201272301877508063746820116803983531695254047975062995956729328642412046549953242507280237719323396881045707597854823192848152643893116808959814702262740726163299981895546251616258720615306253843361732966442275461293859652635421421887080734964757543815621719622161724102640438691225453282181067497348317902192290857469844852516173982085913620625823796302659650115680154402999867514964157884846199537279005670076790212592730374255655664900614370090584740318820320459552476437278513528234358398825376173129623930127091101972066650566654479269088594076777844212277057865756075297448378398489238803876432752348002445331635938581829455772647688559586751463887693241886196055264375445145268901551174153091432410429882477609269861169178747214157512030850775992283311403297828868083372761885925283221875784559408558254459135724698625571352977045961554677989781594758354042154358756633279988246895946094670629342040706705381474192529092065165354102013681321193671550695251689021324412792228937426118467301858998291669448078663663570361855946715093592215788916035209679766221650952049888983351218807185708195586272191366633376659657625023053922229430054777629465195859881479240165947358353961331374688296028922714463393609936028271090316347267229933757276545184075827075232952715442896712039649476258424193989288532870868608201248841462411678536333673159617377589801564552231951875818057758663786848004902514806114963992733990354518513943285013600686085828248636862577167724639822564509929886994774913169013247872066538951230001821271946554629005932725044747478624544418210076924224674063823049472416754128369369732734438883910032840194748870766610982459268800191941619468951135895098726138814392806243894204371044976531806076345983953660038329201491980610584956629038898393177657656419534524985266428939017157976244589332810661826846585723608355291513153487895047029119719175439010879771138497738857361805698526202821554597232037236696912855393163082899893713780271943612169787700186869167813841206001173760257243043457212776537728378284244808602846074123997884613622731106031055380290023013442061129537125489710956342610615979041302098564373572937416453091086000712403465122108436461555045008751927409534329624834027497843337184890111505206872537547529183964985668629392949139398244543770691155984845265320131906939951740035269512595720046186197752837196641696374770418893618952752710589028174151872212709313112208191631583050108927640680023248525998152278091777025837227516666749618279534011871833424798468383134822741720741589794004318721151248791500020677057093760637862098366599609777307752499998743125878467539586261749588017936928640767677863059007009658855814204609501132060903674167586759837285873811200437817237090951908623072272252613791177765173705423373622678438943773147509037101733377310865224538934067425713560036572453851461960838216781806040330786820736650638380622049536183026621719766846755441952871992587892037838480907617149055645363939880964245615165871768935163584000570545669491028039280955172543704484399377402707411860913944319726576356401845613804033900984695647484148689945682299844787949131994430982438490788132609245637778243061445571473423392817905208722513761709590186342684997092225472046898863954844413731094245970930681177413990443964022242687767394888772434933461295320969535151531314912337420411279205413833862169315337209417280904678571140751397376610476807086818140995274432372237565590624257152226209907514127093083936051235464283366000719397235098876608588820074482843148108461377392892210495893834098102461389474497264229294619435808841478581992544085980061780875940470674259522423446549554711003077269655278356272044554862200271263892176158213294825441680935679546915941082780478760447580479983244328548765748723493353052498574265218361791883118889576867639173156686607796521286424526998391857126652726933183954505087118950093327833811544060276866843752881265011354770926397000654977042927235116334866676797431216090517790155221026782632215530855810053261269205453521964574339049901026855114876856535353619953886098117172445473852890602991171840536749960926982586144801157900581137633415979168691946485083541034956452981644481362068757614676255530800580962499387236756589411974459239624895169365372811671485550516393411598489614601704394098756667598654795609180226708085701905800894134042608105736939691730553296440157980407390919478279562520684863760961035632280009750000374080268514533527615191880376507709877156778614547923474160938903423973467405993324592049549080919621699291664554339275808235863734358031936071408279046849772494071327870925784400969927054939285407261371565074179912274857767369608519772418794085449480587858042301171145222939557528948117076284588517602087721148032763119722274400641181138364444705383915136305414302457844600817527310899713717844047512090943024933863855744745958834779862335310792765511506537792180882069654083058596477801528197943845805257013926097481306476426644698151509008186196967199754659908626278687272387553399690686712056450313987015286522614363925795453651008520651551830608090988742129409587861600238017805040158239943862085895950374257551754236731205870380544618457809460379318997395817258485461608456323482843251782198694378205865289648667433087658593403333463302916626429317940610144388022971001752891534380334155525197983671179724715915036666053524173443134183890607331654268832175083118567447945570733708647301632766101624384769247769976730072066247546452138865201151471688975286030340700531251734569293751677103714610009937462162114363101730427753250792216316605879572140812012901915163140384791405550116670638533548604900469362946687121452377479249567683788352366455537761790191171374189788616017754961676281770170583841110038128422907784858434096031090908423593222552661928171746918103650654380810869265580376925554884004982038122930913224891983855618606383885879725325091013271816413733366767493746250115665299313064144157970100921381171184658190471804606333144594977160416387394863363532222003508937628220341009516413801288543954297638794861359386949827055178701739252467854002589022879883160923519623953787223206803093195961215456333919677015149457965096456450058640310629817783999107383094269278847070256751102139124457993845650189598176746543949171435073533343260483717294002310084748005586650505239945214889570046414388747993347508265988120589747493158391807584642344851258784309820387416858788233570770273346537493181595818324467469984205592099912407570595458864967426409449353466997102862702423533010303098206975508951684992983597421974158957808850274333282506577604956832504320423449778305650414760335485064200003162101471963956924260889621254866496786194684631772111420084686002730049199596523246626132184128701741139811952232922325506269157342125774277544599118794504264544794542566593937927309201228207403563373472401157511216283861480360265975021104349645280511126142655365578295039599032896108932649323230454602984719707178126842900691139687538714938952648473497648902399215476127078065823366077641303920833090189564829504432925660536658564905169624809980562029698974986978649313150800703545185560220927117806775029857207449662118129647598366314715016575461694087121594242896401949109215846482600185897350804815253584463584351857151775017685239037779587453897246727948795869854297586920418244434844250531396879916219453444988824142717138344355584218650544252112430223167267565322489739892332991616789036214721693272215031812942983934133060392692198760941340701055116760192864693723116305230942205365912334441357425138022322165845779607657267904222935916687131533575822501808154527736794801107251660960258981484937913172594013799099984040291061988583828601850516454248115537694807761761354196801049325289573504284822456120157958790243849566716887059570243330158142091609734054402733888938155535871268502227140828193070636235538894499827211988816220278195266834396441185812844323526354466350408583004426618998958885228966232157465142598430895383686264253083627544712253094534969052802389600970973882394544094169046401967194965499586305501659670674623482430147502172762237518503839688161151560107852390109137228429266442836852818354676818821825443727112130189849365085861057713340744824769719266509041695229722260662604040630835390954190806947728489932921791657868888109944729310346500460061826095012856143245873280612565447347326675990504234515508016428964014165072499940907973125879352077254115132280904393499224993646941199660017764817100458198164212273521080812904158637898163396210482654875009185940745472766629419724022774503165837180684079021546370986654504230940186276069112341322838997569612302555082073601729360516027599546602141870658320137129627683744624777820230265002436444567437009898392694033203183743031913085426481399847568563376676205581482281472119399188190097268059040664918077782987657468091877557614723200752975260358599276354850554084781619201438265014691652046786346607857537281109637024298181174571652867053828354625870602072867676506700530851046302526399065952937872828161163790044457303653765090404286026178408750448935598572047645443434660159096474778444526399590272364023259662477265698016217278698430692147575133300983891651773428816036752975779366431036572605865564497027986637338089628129527575254767910081696085506443723673298974610852987069255046129605055772292089813742981987196279464468324391163859360186717029523478103869783164763603810905936329591877461287158097835496998030013409244188213050895014740838905835989437272129894013058199839083395097274607029469021725010286604755760011182286515493083558976095955824864809418451347274170228579449632763280859508392752991846419618447872486700960656036062413872467987806974923640718104177239737184624843257304541113003963205318058857938460710942618656461953158612378022161295332405651788923812506487342784239491184292372794883202770431458446630543361210296058855234302077336669505402801384735112503679047037815968424242645991424842003463237828892113661855406611570767823639992628613164252256037202300268231642052898831489812237098261697802784162191244005229117150441099247164036193002435093221844673465009064673482054170537194160837104977352295090510970844622605206696035130752917373806606605212809253902096932768682810124135132666433526153596667483474937443188280342175444283268306269568602834495750731225037228859907467403088668546747554877907188765417887360817295578573858948264663925457986717975439126450568308883119631653624616727743983916077561299835558730253492036318696112626468907749073470960818665787924405242192339315149982564828341555839004580029675930338804156215047819516469234314232666695540866582564560379156635139671566770432108556973641724633628289576853419423096731251563515552714152083951658371019611086949750782691653753043177110552730364132601085474402109849904445005405562227369136260078301753947460681357230859745923669548910375833649014131256438180906100786239463540097561507983545274040389111819529273617652057549114438985709556285498942962854862391416291799618670792742156712489227568721196040501771497323259677953781707718685909377689660704124166974727942101251567543807712911046314846584784297920704644985438718808008392985360779518993502208291163786992360792349515515781679673109210720280737114779889844026138739095036723158320788411694039899244242512841472272504400476805600996517290016058579142603330443132774612544968096876068191194937477111477129409636459100359820037844169273159401001569684176468015436083479290645707753816981976580008618694383576119477204435261620036439950120099335493652027402201469432112101002932051022175814977177010797531076318893124850261602261117125265919125000505092034679191313288020167356314052483939076387624239451634363483275696058934894970590630728444741035023167156911654790131263573316781902286982195662024914196942433424762794311152311071523217558632278232767227144718851835811819400768730146603301287605698816389207638161816965834198324068826395309511138682000350772227149310859838758797638562594192431971497257702162205419694995947683027990455998642816988427156682257022596719105287818231141514215626341414440907263084599010690956763815470402518118706650394975078088515945712840700612574334513944302900847030088434564883482727278254015005883816729262959832355007993963688426169184581574053693742293605934191130937637453434039257369951359816106943914977605732538170026404348323502446003543560600759116669383542863574246633882525076744564869596898981973397662775636415219191853157784607234078118356863956436519341538163371694635074338162237911907454549825420535133518057788587108271730286046978257512046861642306820895677563660028751401662166178400905108547558693903032035745258041560245903414605005170693027751692051140292826001593434346710466157841014138932873581870958284594384762922081328264794722787806917561291661445778696695092560277935287401180411602897710964783242547829425010170057878839240881187479570166518057646867991532105151742115570972317720651582178437437103168960601250496170567187940271911524149681767608748741816252550985959652280876728034112549198345065803063022392630305473746443083591596951283352775823802967415025833593042498681555578848278099039355744742702294382892720510213922813978399170233487688572820725277165177610792331754364540685127399207413726313628529623497837349029788794172194841436306998803541141391356441880765343044150704701325456122699260434784714871256843027471842377857280471572840672790305618998484836138208707125305471459422496947691441282582778394645175646854278167487241474424639940684619619970506249697426925604308333629154932354763891708329858920455387173689289225945289001280235582258558433842715317995802035140630676502032709331094496645582736785985243829893888933103580979774590403601482185812518302026295468703085803084121345330510319247478815198435418047333366927524347869613224947705479589293940505081193138496974636552971152489569484208576577960901626622646796921058786677439065688831894291881116066153567752003811556854845354783954347206480325231902507138704689163003356358202821711729769243963696826590860071813964081171660758607122737095775958459467532308308771438606004176363855573355440029379682004794357010780954610603320445803943021324876569564801532742490946353363035383048177094080313814578618922082033494088908246032208994666593334733403163153759684658286410872434527239208603516466805558231014188050350268297286779054846955998630031976651770440615593402106762640319901256419488301831498224560255904377841993279297349779256699551490906063844605648471947298951880493831357314979787412148421355178576612539591887010549727176644834824868999083038265848658596862170369019292950965759584041545262175222667573853869458875689149627717369338545037903009823043295583133673873122983602294093243907339969128255819937748398881445353838528891867523652342992249183392583057864328227205303549555112806570711363876330550638736257083230568703958246439294319096740763558978338201741450282626032741366965089657517353871513907824048722052233311085155653923026112069946175103394147620050921456987046079504446526697244529064450004908234913065250338568014911312444133951161051489336761154600684883080002497835188519127797613770890605825837561414665537093053538345126630946198982431206461799633139843528628470847105754262195627576379783989477544841273519975639377973004112205974687772657900397349729694297428915805141066776056932570232117822576911848378283425218584427353991215418547699522655814361383758761507368927984519894486814529417721554964823146403786400829011841618356171587621038517103763040039159045480384052908152142286901092385052117141588319835181597571740550164105674428728977104302842175519216932683213396556207233488303253198587819110568502608941139964625623726473071943402906843296066239617459831387755711170529975680179475274018838234167377127060726373760430502310352819238277087925066118561878064918334106263080467580997666445670153473278786892836852252377497353967264034845653490906183922222402004557416869142550649881553829232543755442842067508490604590562960151840713665810581281953211100377554785461314760226289981559360842286773843853194759243805705095669504654007246405508974303553233575782069766186548250694630098575917811508174208691215924834564134935226467278328521008870627845763880883877370762309286605303024387795171235744419230550462771542344575685096294365762093452628269645847829949822664003671581459415409536721141598310038185300461225978208461048105050373484535745986322032368715613027917261459225652709082494614427913224492707364021858170285894170225009193296935472513566443587107782039638762912799389223966001375494251220896597170891216130157948659577643609117782898835296414109828519186719844226361424148829063514347654738622859303556587553685346109353238216099167703469500736432483448518922369721415453328918150949269209202573221517324248802250834113846296705494752333721837644930828587105614469300264523018039125108435278486539685372098069612256261028054813769069641454005634631494086057971814751601849573920729738567856898511557688535113690938421577602481591015603151775032551426047627849810136850290828738661318978268820074284698767128183728652347541021929482678222608940436664849399175575301369828312015347899997792630610209867812095242216807828554290744772193192923337048919523519828752626324330147228156571696248038897694585992877817466408193230788394431631617068122927022685642343612207419475798485020155668324778717792347841579530670117526222185424345750685119131075201976181689864140540024853228132759350613037489518272363277063014481323427769380820263646500727123706891427673229612852125286345955030563588598168661301499688203199125770757078390683412417147280895265819970410481881065467808318326838330045610487128689223375193172855594523162152259844653275319220582132761458492625440345623509638722070809835344220309608692440623992523329560430299890826091526412999920300460154104087689073841885648599987243056617427618922696292020753704169738306583383106376947231056083133111939828215256201526542542706247873324702985893962251811969136173475860514238555572707322949295140764170191233857321942041018221306787372968423431609734429220531052663880357382015855404717679592604333981484047444231745604198040967857738490890570420637492161624029334886099754198541455930833533882857861535266797883239507413834514774419121893965362136250467075775014007729736899695315283281964878477121222253276919198405952867691001913568478903376891847103244702296511552300432343204296359556037456194430835502140715707197159993577313509029475232699915631398642792182660184176156835952928948004035190536067487395300243146437105697952494784895760694988936372390520803233450881290199477897864251736016511530890852550153042146910839064315617452519914067330610818166585337378796116360285800754349179404194795663568946679849917600735297128039782989360355341141632101396516543542088802710576128756678704531543920745299118561223421600676736604909298005095920674736574895040739869793748268725494590277895589795149560600681531553709558529834815445241930920312300806061405587592444113323451648562805215489362819174626608089243664534566687490181335258575231329438833128266955733148016917842716224397886653384775999851589133022875206834976777980067258211869145893338404514940464469300011456095175802715558105347093259814916236698747370601851532230095814423394515572112974020299361774146840761061897952531961381392379566385826445580625521355632349948165846661561246378809486421193296402598859470653923316055884476307400259900851418232860368231036248942924206653708414838756838276117588262216974219979271928171812595917914623921149255620873581437166541866569592663951235124471939948115952016066370010467582186372121589889822835420184065832965113219421989194519436579469985864170017837564233882709274547287406460971356329759557642077419953033406384186508437418999805253068979608525477721233101100234499193527050444003006880038015459223785820547829319973344436412176340273565029590114156348717683505395245846901343089505445213364965662463381062633270761058948761382215728951758767566253869822430297258669940672324956583516132431790708945917852248660833504195529199142192026404633717907987235778321753017271158790727296100877586965273350252691651521398574909491471197380449590853362352008023179145134690993709907738706870680755812208271174167381208265093153749407082011941992695485457319678943888593336122634207101427626913707622273336458158941961253819280247612474277182602579738006604451212047809320546618809630889310240455771772323014730046438286570430996093382274957480141820815336313668527411560518703049555191019075284149613270715913224372632843602646341517682522450724449784208890715340198820637947335110735834551323969709416551141941483520737313861567917667450907360557817868516271272054511357249804015774965943625148653787930675217989009377064074019057098245138868711976714906503310841073558936351035102565625124464794238190054805445240833610997104267172621539227998002270216546501618424735987240560129817571366732544646352558924096654397245380135884234310273521540999178926373630099526846431419752553789070811372776702471961552384224964327737073291422631458566239087080763571277780289167779704912002024405721744666898701019961565962362785842106972875727082369491897282070029582180361106456926721159089514569984360049525003154896681920888804973251864140641902029654148710073458170434524765525103712013952667356770505865505921271623336622757533430749905817915938336386817414075359167509383387771754484533078063715550583568127340527352031232851061388536624738633659254474263647808824351331470129685558002671756362528742261097450458384620080686877960953645433892088314063195947444819150798766667580730180915415564726794032866374948509237742406184921227093165769225640977394652328620870543849210478475586232458591490197935416182187484511933503080529372125095628740934227626352080768761815507771120209999462327285145699241940003489417572429395060457928149938166152181660464934403178906497095112472550488453300713763039630482983670822670178114256626661212520129587901322252789687258137951851992503197630677463882722970413750789043429689486278006472815297187146693773323712008957353554844225896328820126007563928344125968440057699153690183599545846704262269385195717816221176757536169406827542768159566189114165397669953763524938348909682969908989553024638689779460885326636256642966312440085740338284482484538611429572530146874905557334991911377501075595564268876694866017082566939863075296736505489436873550269408735748211835715877311411430437306059525622619302159974287159431132843589629370174630257820961995032791922351780956912727585481087310471638947527448090370808454912590965134170970493930821451040383368482223700555242582494500583821235396938742161668736314273927165989647364169108904365034367991691879786288767088048727066365802653886116480824722725760580979072729448199855582408945694084956754862017889706520087420245433972177760955616119294161374219889457926277925436289562293762508449456650577342362334661653099952648473424625021576375194132847287235227895738057071792708170893622399650423925619745566379300575451367116084939416210011851000366155843856864428687826143088489452893858136119621877638422623517637431349576850258250581041837008049654144379966180965625878878192304831860938766902683114863048862118162408899401189999192288222191408372712266848288187144087018451563716272373363290629478023098275661777174469859230127745833449608426862959769358367051149439567097729232290506059718532779670938888042983753019070720674522913017699612047685810077417846745690758069698650400147917184640343202464638114273333309958718313341086870031358772069619973494135838513956832954849322580707302225467211051906309173452708364884087551881943755591468109200740405297799103412656923098611531853754928179057989269001367157225785410297821175405281469549380110063698210983470605960880241364596040087134957042760840599446511946046980913541070145287750655144881386522863137793262334894799766058332141651860757978456710011304629235266318990834008783288474719381544407581900813766178374339299172503091285108280297517783653517390155110597212597701548796032065478671426029579641700902797709627543188404556428776624419329236341102169735958725489292809472002593640099931361936989250723001286593821492234193436132114830706723945679735990420049568244563244922936892160517192000511138227061286112982214220976723200560775858029115413764202080562351236223911301970699257834007746771374389365429859023003640734865249894073082581908453301330176136660330432722005413015132832932938226740463731640941960854809100638050464011324523820190857452661781946664939003896832077786904410229885687661788428389613339453531187587946881847994952197935339633783174691791459780057709169897402658912214583535332651785235209290861059180467473637410084394417433611295226470600166305470256588454495871484212975846839016737290348842414724680197820901194395601026948647851394414470740122075245809456510208315946448503796942866730621764088093391852236330876844792813970347851161418832048250274133545889966335756641976583573032171108528102023689319343379462257761624661985417279438585463492818905847996728222075765580062210585493988259705283161170241302049231746950363739835572914068634371824935058464199290027699640832095749640440497980215849325784199143770160423897618665244428908216152635289416129980784373535570188862817376329451273981636289591414612820699674306583003151820592691745016879668314494566996682427307748065636480492044559468275519072689844517769314445798717603548621795850297988287578209125132300621267789596833108698376731013693998898996401618295156418587158872391249332297405199252382840540295588333014284303897306034486223685708752579195966990029209148965909228240909510017155672809920598581141150855120022266538582056152610385823991245805126894207438923200011455692428975608821678883101997171741971772509235944048780949701497720757313204666384666390493607151992883354646667899251427597546488191939013235800855399960498036520198566699659751409142386772365352543314367049808320751793546800996657229153175049291490438996432504856122904186787940582577042457249399090066515036864268959675389985981466442914859136537827752454773577781825530507940751179065865698318539942428020861233769354157102788831627055402450170879931639872314866938036689342468858440187688508673602860904492422971442855326680585232627352241416445440305364647108469543438990126558634354951187935131866338584864922690898856892097467142640127897961048992269570115859120488967090313618930294677604531247131866746537780349200290150142637498979075885605125102035642498795831884065866679589678633660500496623967043508663143216806308276100159331783811989223663550753088658016118340808127380233128177087926654129770682861069956803160824994388626022332651644692610637704470474223056772800680976633039605058601861210035325918064368711363165759660684462195795053082252066962747431172054543479075006263261825316417800889601228109204400200476573696375586242409231326414814547235810490714269040083211172693232406151512388748289957447852084952015700069898008402084267803397363040433636827289743406733659186040909208797384016249968863515031001098985324473692763899994984199927773523555252961694898607133235361226306393815894579891638213055906288208654258184234404662637360428572886813768530105535376592201784043432862803933129456898667818496422153289118783401132088933049199452746642218506918738947604266173348357672754287965334353850270897208882709908157398819089990084592334665149564880960989213894065723503631220395858628498078490462553014675257569554814770823014717983084815191232268553733466031043507545963048811580889176617229885062397007402494153831758261787899666580293368886036466652856905299841712504174251562815876334008296805635101569439792967362269261012880826029779708964980123610970805217030856016434631497017185878921339092151185518537079244643759791366213725225582111050583960726900726890596758183711078407835769510164071921132608574474660164203066107980101761735967882842900222070149803722919974080809598210154441806467804342355219064523710540571224124463421518021930380732692367603201711578689337761335887966835840741578170259226728944231020396133458720667017179504687254883752953616792249988877151103003872303159949923188008834897449787450648942904403584711742297908344206548633086943969395801302775744054762845532353402029429803442876823425697798195407686583011977730030543157618174164034721400432175737263881725273016677293849176711154364740345612834561440400614273510862952667272417762017556711995294280953185453505758096036306194648987455080416930177401253411365150265980958946172438781218510150886700478471109796019020117585486055168129247444280634967232563416083505766244114526924892737446554342872895896084692522664967769911860048594103868439962715177297693784683637222799685070950610278391883299992901539373582247693050515627960633883451340037579844598904023834934132858483958001160007898292206972911940103026568121224703280047794414909450002679140967388810533896459434730955869978178604862830407796480518268102699754054462723057434453640140469558752151469163707987591635981814631675773925071915636910964508777619701353913218042223928774438221743185173396523894573140054610499765116723737698923901343341858890085825906087676447397627153871996642740111526656793108756018863737145658232726059560442028485947450411164748631059162246455480901486236563815641217434149640440139414007916887199680407218350138705908848317270117011729074423896862744879694447968488100685208276623967603297000348050725255997351213583006904705390700262303881822163172815332585897524906068051619144783554686493126761527671263602713810532163781336925025730535540345792979351854316222160380447962894193137162815109110716195923670860465302008522710852626376185600348647157476253215184236767464257814686003880429266731891261128865565830932821609982873772144866844808976670432147945860143908106390641111417018069958523171198379831870085013852166654228568482849133029274946231380944762368613492997601909812343250348319132782113871606333161370722862876798151049967024693647846933613043535895745938067379688188370446298366300639791915856098474358939414465462701179070424584533433681957319061736327482573257833622651477564313697587384561610418498534316303130402804985866171772378397075978810844370039207142886251410394428772634109984514884341985376768968675561245188571752142538755841900733693644706249632169313000230840102189043420686822567270025433342317890566980424765045776819785896717248666182311239053545000621672164329288960039646898248348455634399552616994368121677069134704887487507290355535108843414338765330140093312484707522141587124180092342913877397135373685483226710082785393158113993864739340388123475275333118310614220623834489429504522190859397801910835178756626069420649120762675336138959976656579171371267956613396123536988114110082711153922147749208220753297687470365642942253164583769461580787501196073280509123388611116404968097343018486156126776242452047857968048914520713047357160260497498352239202483502577835978042806480487972878374095959691506871990997777212536197601774436294332062095546099342728390121412564644568434849877958846877719275216034749943605803954792508977978907043891522736176238742683155170701189277496928263807831956289784100942627931834506149157006005609468978174857747524121595594607077498945925341358712755637224283236100790013562301998277195876852371922172093881637403627684981345734401385606810188362046466589383704933578107899721269310804879968880649579958212869144467190609857475399397073821815187951009836627725137034838429683355070693758777783384847796859126711024911282500937864544171803356164797727254672594738295460886011388601293726777652959184693322348353342078882304411027462959053760008281561637899416886487957367927336465707210776316630702675974678527391802716974187282292457136701280803672647293836090034178404190878868841168534431260082440124058698092889060094184181060817384101790355073269696362707657431223991405836076736107944764397923045640439341481603863586495427094066959466974206161016118061207832690060507487688811370819297683272110568908763665036891211119079115482978401971408803293483451603590207707259260100644521949172898365624919450705684950995891533027834540306726530004676299401722060888782394375983433040684902508938743998461514196854074454328475714177852106110227701223565052294237190726503084007078396075369697789569128564511799470042165754990315105272344943927813406799574660871032059461283674692494015335404655130246421698518871844969069453128906284776264688760195673402731305164395860996226559369758237759139256890986091076539876638075023715960478342909742916478267903823597509635461500760956326739416308487554070667877839373941896037071118548157102487145141308133826069266267367705028810321682797040322641945540375721468785071790050331499245657529695190812282392017190526935580877768404475518046895887091935034812889633907991133743465389901791414462137341279680873423150460549487908960025678997507939944469053708301899337795835106627452934306718525911704530124909910366573499841031863552581646338789935007990749569082866786200974944988879876827760665408070878244064901492477049111531762748738254438522892550327011799901200329521266366946653662579830577219013654658644290661754961985859572734295498100538695011725978812868738916188538414245674890776280620603252909689940352026388596532966827611733144787987575555380387257402733618646020523567740329606515641972189970820273803790165935118111825501524337544119162054533204680940992809418458451952031418576498636806098618050354586870592795298668916781428357034872999886952886915519759165930057744705772791036397559615775366080195021702035378961869031440759129599779868733263198793955094720231772274489797128421134737462427749274072972842316889617508328145789382038564019987148837237989588227730501684545163088011882186847701001651436995990587830335256946293862246008280554252510593910219710015180218472220796888360481039323124209485129412255927569657605652585392354416650866136533186338057606130564863841964898461795181716445524940850531699603458961006531253885766782529513524341676457049977159739777491317277433531741466964756244481018644934861795602208967980296719468628814927491218470684306554193084852084978490918170183683331576273860164699088111765922627903264580941606907989853210071860063605847884785737784662130224615115110070328134100813639318322596612205017637941221157666508204451972022309874968205826578499946596843351263091312882853115503240891180344424465347819090714176362619923704137160977953953089198038475781176057181664278460123266618745836564930605965072481867950781732498665114317047149648373661802099081852443040482300305931601146361119406715672959052484445085241454648600013234742895543487911929070994978498121082024441764800920279968110130070318858383508208896151386103640808484545178446810807274834452792487907497590072575679661881755633527964756646025784281839861126997230562697061189339082671052976599843094400055757250860444829559344558795745509548556117616111204420699782073014128035566407412113145265719355093508601346399313636702992212867357820927541462772499383094842828132540050304330733257303738731115787517828404845259119979195765631995582282838511587596306002429038591578144754293459330387702984663202135455355760844531601958776493111121768575920460221412774792799433626134154852017177587504665916515860560240402989270046071230296197669685846347843591631128629779125481933136518613124719654749278709884188199553574191739435473035067408650568456128938660805126094940019873303688474418580754209283546386229724894952631455470070693795069200917758240366401677723299809021198049889608495305130246797705668911983872912825925521645173038275140202776617491747985080325086274201178010335816546370298626262963451722375133925960327242552295230199672538898865416473210653438074673522033875008327897333237268575181097067925250869908043931083949110312020643315433320996699524432595142572874492775467871631816678586290930230871480149284567572364269386084632119096298295125551973381647047080164411244794840437093027940470265265658992637000301639891050376511777023242668197011931324418747442003053596331441843458643557289484576250794876009241665104484323033221749300498185034328371541207597606410413015918256746084233056058395457227292448073848434365864457284594157121028177525345243201449650057757112577752005412645838665427184599247634459346134962289659038254326628393397285099959012642207797539186341097157992435518616658977020674142676721814048387847091100750873483368725342375232894237972809394563679235279722729883337613770417411342074123625101280607940383921298236147158630904551191721638557173099526534412225957636755777482865570199763892801471530986093047202123600375564541230750342295869460760438066369841666564949490104435602377690971753801760706790400324843233351979144573146291278146918368996279840221049163527035658375289460075302092570011877452112536817224524660126898016176627211150753102232958804269481571405958634022720945103903503427603732590781386521282532706113900116753181078230254724608457920419182176313260219258227636762986072192176467190582091549489436778813239733570091746231789026663177658281704256219837412884422980566473687273186267334545220815511257611776823341394513525693584753581441746123018155998531852227486206178463364015093734852401104219761424001832921139305588403349673663469804743317515143336258926266601983957652623219067593565680106064458812086895793196279143043061705985220845588546487141602461110367274405772868970746847940025684404929923591562362479334161145124987115174172533161015070234634597064604967787478967044579001515909208187998786356660010961647048447883073143917682081453784153158970741705222592117282147042249224770519881570499302219715796762015694367033695216148962307883697435414119112174015088549703040356591460269666301040373500840871196757360892284975246533158949612410071014061511861233159978735678111658047991757396417705115848223269697607783611795873727704993228706354721602289347257995201789745719191493324007042066269004346215207307070316548417504789986364961502396729414726127391947932949525780309206048919969014309137995936993417256405904159070609960714307860021835491647851020683638406405119544370504062758915771927023245345249037433631995609679213428137729288356858755997691355414705104121731712485175097643916516514972233845771086400171760428871364676973126523012973765294917869573100293601538360988944015712397312549888769841097797660510997892605079947124634121538660475470450682707722606153622921856228735675780208936266522808520272205964239233289423318027780606931926421198130665450242492740459541492066568313256220393739919161637410643813551686008744909187194299638948475061527055208450103284309298246752616743661673079099909640863555804024698006740359559199822580242423811068125499490722572834590942798888239795592719140599096296046903853634026400056524747723240130617373753814589225623409816349723524177849503973133310621760173468616910990313229402290667431570565035540549246595923144995682695674140879832616942357957865671395659771899781273178252441334916505914180508627399357125660070166037021649484214087886898246701317277911771055766724524438387734306846053695972364180458068985870641086889467776160196819607207018456475385347368775407563745733795321141431956013334162917045663525083786153256449567684944610387195051387162396238280705195219218170860662939743283183198293980514061943555356523853867876427876556525944896042617385536536414472668879957937201921114418196082726917225687784989207152944286029240044141145863427056303502718688094446184351762662828474337768990653954176845099816372002436059328445884366872093401441414700072618922841738071562255523378976941462568539095010089123383483441115585552029858989880476362358951122309828502189589459729363180588924294047119077181036791315300066708746889998829207324818581462524390044211195598385220236130806468548043563708753188240087998825776597479568235090119339357578677154040421318995221907581643994614900108174921906931474727561108726633148393734214042898150073002271290920425542660592674576803993880441361328162878432610431612723869505700049110332485789291193225287649622679704420224628113385624540501487345498765389962433542828255947128285648945499262219574669017019157290508758039733220998268831138076943729633037770398382463000637061539497037681876326008949453938570263523185483892354901861332972658947882788449031961154716222828146259238500083278528909588055609278374269836231869281243374351695061481180967032158463316268028041681043550062582559841742318496773005938516945427178026875262160742040212869665144409928560911450641287690954307515337595259916993641162904415822655071882713440075253240153875753945197006844084979341876530875778835554071591363800860018931157890790262239132299699491407158916050289918329234667081206156650248063269550146049208972001169283342712772689378025966433152435886662933353040718148794117635450452953265047706692680969469262301465617707270062771856427574748400349660184251554798208380774307962029547619371966038691956409258617602032429788508247329283787788310047095001621530975116316803857592910107244370614443475784080163130832271276509563318157532958327759730393378473734951980193767496243066262109820991097921996839502008152898071308096320185065469172628129082221071355085061745327441223117549787560889834852952955223040642393043229022664919949131971453129383131721753680969118618482399631723506772932216598048974691956095679706478658809427859180090264673843689593176701496112012955218875824292942533940495020408377538935250210401640336042950219929874636194263452860780851262373063667386368964832575787987271483590462494550569579556186173752269005616063365954253202914679440011936575141369025217886658260572505218668357934995473398003981478871403933698523653590897633289888168777161134072557765716795279857541807231301690056977804621909075957325484877302807396547390247208584561908979198399571667686255427703186461535831243744266625722452136573699422278953240747370056743976079668115973086471030708524763732436927572137966185424498310417972831654697864377326116573654247118511879686041850191739443427214730265653260817245841386533308973648494411147746781232410099670498012974960813894121000945859981972123238759553194921033905291269813242170659989751208345049971608232717419387831080021836624810983759401839639642337992815582210130905003881970545165870088652466302154107617431772689759095468580917731478103984743059599564888461156389901803545631284169486614383450435352012649387162820520321264705106358809919140309864547833794845436358321594215463542541912984283023373101930865906133917941138621914612380008813237924439732369868648668670601495658264531051862956818703367250543209867556650554453006702391398133882761787981534190871538312997655759209005216132049332436191674475381879781433430687603671016367415762366205066762849257959538699344886290987169809062747460103243702376853514273107285906380796055869293161752665781435089163217547987960776033594711856578708545681027067474475533987383922094678714242219423404013393076984112532951994251282005135179049584305527092913009031005179826122798110899070823002551329963288463496798616522333265892933719113048997500034116893941255882732357115515735828941737840106344852703836089160772400526627341188216341211583506572121759973344214907604444138233347109307221771812222346946455999723179373808347624094999731784817230411048025402504076831314609704678507464842927424543768087698813857607760652408943560942187984099394528529396945185953119602895559257313452245170809482479184814778219755035363138567967620287832473486940991097742812531212975003909732550712209581954112843591031795467534859285234558632023557825575608456181186476162120600163814175997103114530541651941262070247616425053715622444958926701635598419968279376215519325488333548957604949863642336653704240991038359996825463764940331719321850169220514374275967380100057411360163421112547270966976735042242267683937934327508431583548896306777630034524544654010196120972947787261202152755428706009160085163539906290435408309427122522641935440344226749185552331803310148219275172043857516633673292624093992443464213512356764024189507478149510709644705568321197965762659159689414496074064070695184724963859812527794785074379403690910757332865670669957518481343755022797668364920845287031186031964581679745413992064408687828173071842982765581357008958487662132134278579130662924062752109274049506262544716845116585592747403719581444331372536810616640714459584286499508269391209839853989403090296005257001255080041792119088306502539823729636156072874943615578894955756559383195337381484010700095362589981183287345194966075439691303901473336993924884916868561981723469561105480725237452241436859932629673955051648229717548318109363846885466033887527296576375883649871593677893675448367141501160988667887840188774561998609443451607718248332409454626896668283849023670723189452092211571568681935804882478002857695598807132691743530153708859517975114936022502964338229499029080206915377915953403558287260304413245972008521920996031019488406860150190293242917473941014197514444398170142966198847015631140301670426028668165873968222775925272868174123690278601996309552013632289367157551708495201790322099012942668746809761405796324089242757303935698910142625058848933287936708855899740395015668737502319426724441427114663949205508141647207473800190500022875696227232584741334401614724569413403056533709694697544126690317102913139596131445023110286605283802660347097889729269805833509035299333590983060451263883991548349014245393546697024019689722150063839504799375155097307499094445121056852677200171716439953690392688058531085640596942854852767992747888747973305604467921023711773777893986592321818744889330297290644690354240849262743094654168718578485588251510277892529841317665954341630030007112181354420999121365766799435853356029244887899784103197597472017051431738722298040151006069620938057267707185739967107069529386073708281519471196999980311961421246370115448311265224164840300776349541022685310735178914726543035064942362773728761507878956731359204659209611690614008277169717351288749819704955682386685840207227460279657467615736794048287524601267181323909840542352843129260152640281158966781495606167450102188567532381900399028738978712184387620093408802815993915411022798663950593068864790180934105941947948695469172430677912295613074717389583984251407405748754102754145893202607388842911120819463277867431599575922529725263727627034419603145627602547533992125180254887615177008346482863204693671782712591719815083606810752210724578051806937365684241754975260653310222927003036036367042727664692710225154462246512129860033506393798534350822474568941530363466840772415345439898890029562769338857890847946983483651164848074953575745731350865178935430893426022020925185634163043296176165219280034793346991028350117076969879517973044463140580386152801801503388111766655001444668986463002177975288127512410032123450105634284401015833372079697982046390029925391723153017769270964190385430020224143694230350432129752780971025998192064377151464849677824122694637873232106905190116305596438204952892559805232305736188320003849298839247058798441383753506763063150014318908589586975567107388878270388616219636071502893718956735574310233809371620997978708820696896656089149217902847999334543976814209001729806028050715278058573588663549530384901273054231309325970362080457969094105470929486523270515938567150578392848774736284285467062408409955842139216302018899733531504144838850944985787610106451065227962532259834524039229383106031602692180005817866640712168190003835998428431818422157727124841354141683440530110592881684295830119984769643708293756537171433637519581056285612959353096945690928847216423532648233690321480609646500215202089495180620365913565989768368345335199177794658345105288089816419890851146449611654770761249624185985977736379011531531197826552292234958862105663275754887066909311566890149742936455616083052791646960258829055701790241863270763403767102578952515281276323038013106097563770346016177397594926965511366476258843522780114291431933625793257976943628146297583511271738735008307823908948805018526806921348766551961089940437868632277945661591159961631673179531421135218162133177357170579544433180354986468866904601004841651265998360738117428803101398463072088114325079692033413830121731218321263938755614536227237268942677770211293510883905755694215289361671793220526932109832400464264705196676667823057379190563719255877318743749932443506136372703112730062360254851351602844066219896687903799934280997427060613112895269673141963933018878047662036246466723507458857451146221657800667847743649443313215925697362704298815902897364512947446328019714490339449971358008501364654863000864386068563601832550488114534676117419036202894325681804146934375339957099134724225788461471590209276183078973635537342000839406703677639282730101896811491376209360029941463831155229753033812962849662704090116550675603196091648955268774057950068175064670188712415072052895588504699876946096578461093400120213583233725520050119620641303849317198618272943991943027155580013746566874726690644500357827980095117366471235060165458951269184674369185185133772390049244180601978760870403661498462533252826030200321261800705970652752863898313064862387607001315274984787357821609401729396095111730036267015276711717508823791066312905786866864427618193598462541802521613208898038046339400154260160272307090190112124447935828385045996599032767567993158541312779713890255360352245970151440283993626090889089810051917204778722267812959842385691235945313333426160445075508825391227099685667322091262423966398019925083972118704222513600923464548094407095971403532245004965727177137536058720113468884876021142267028072427301728471717888101209575664934314652441176460427734527319846521700882358010912804425218667094881064585527783012514018346601934777267483738182254208281381251157313945662501354560830748901971064106345547596928123470366620103200589142386007395623935293746392718293646836343812829105893129529571994069199383247930229156823276256346867605552591548052725852956802939740713568039124550272655024931512325486995512137036375735470568914859815522599059194005350557778741133768224923076747429018008432068171303616021986357833937143836445932048458848132395481107116031102368142651297503795250906629319756907159670990922059597605756587432003364299693623672707831239672883195217432501989749643212241999484648120017178651299014242481502132608533747627079884826969877560913772153738684332566619369810332375305476810226787746030907584126940070410910672171242832955462326242972814416242639832940666006732497812714001226821476379739081357443922764840710520807701674414828670749984287727971754688388625115488197655606004504676437072775849299643162989788669384127381096511484452598144301904091163596655351870915051914042590699509331716479778075761469941587306643561382071909629567973172161281427857040780105825145466598622121438805120860648258204366018815371495579474668143814479373703266064665726419721964677481957043398617460234315707983013648873414500912657487102056584258711750773390140173501974385086893115804491812300177526113818717968286309182885605757104666992444534030317592946470952758831850007752009389396562020630761157259343974722168873651029471033199987744760608426822294549907327964752057657261769410804866728320368336314124034929174823071526455286893631670806337137078111118556917235143780172138394369381209870386623672279849135691019492761225675503133654880263667417718322889855602448075406787146105579489636190378954032272312142474440998707360141153467429675468264565853054657894165196855381242488928951282803138866602104854144199470012970327429902297355372069210975005437304717559863943564932089079873616644580861781281498792054377861861731487700576250499765445885538433964553977622223821504564106369768906224766982064511511689207050297343391507710256924007869279330953500890136692279850728274120523229976616636829747275035076489392001809469387075367370533705734679171781225028743912319754220632946974132761152938006269474022957766528245625053349701437539817450197850296638372437838210983856736417212412112665475061566406847450135221248944507315001244520738448007520900058398080137230864478309406391079030351476832359288695009501851632383086591202048168560624198353972613294294962041725558084921763795022389548667626214439463397935600672703451464524260675836368594280886637880943954020204966740761347561976930840931439406630107381146575727941215402348862481786990587495065603493989761885740929638795690045598014159006479878026644877882347897457754060273390445031713994441565486749285891374782572645180880400176897639477374957660606465757078071231321886406403103646337093257204224551968243674633402608523198086117432830649662779656139616756932749772599279631033445680905236860331146559795407590822576440213018298825345649824076186419303408791018955615771987515941099617679075575833097682252534222748296281495519749154751930580730319781989311785469569775976841886144014563388575294013210783564780316079353013956565080932552792765174788468712307740819726959595331545590321023034389381128463508065040969685963671609267822673132894234910307098357814296826576189652517752263196998473390557360686636138313995101899936370323840965216321441502852765758394536329349294705286103279279872594088680474952215883367078568102054500778561575320268861052634653282682643840851670415289212121064612358726104065507156281698405314464097300550860830428187567410027315608331174191278108550124148674668196672063822873548380645155816318201608259201470791775804325024347975462245588706141656429460999523470287583069241857798364979253597040193988528313794642158164279033510367622449754910748898385549010384914366966840114319716479584339111416560125162818305166730284193893066758714565558797136779593880858463872786737783938607117469160395830389733246309670737303485806022337720293775758650972862832735502238139102121399122233845311842547655482819740433819711798464502948294538684484902683443598203472271545875052366884439881711868126342642789888204987661681635805059367041399603543575757641032101271195800488589340885744751016250219703155771761492647026345146752252229084580044256928677675692310950982228485938875168674986962174807720382645671898418461250314711236681115882215646965665148182105327232953074987564676778916501749282338567553570102456766761236656248676706983728739047645042284394470120294567249613867242638176146865510326713365359228306657850403214886316523868211097947243947734030885474480013093862342215577498422393585985693536320629114584639175356919937152677330401548443711688950006413945932062502323893722977854619256915069266704733218485901033499146018211760665868160088227775998673371420343062439278026378572118602556786348315979038457890460731868697519174106756038772657717859068399288584110847052987349399187231631663991728339561130694653863739339520598804858748439800541293592357410256735463321482501030807590653038087426099505412713860786418996821196140203528238776412308707382878528446852364107220842231841030202987938446451074797811798905526008199721260238243710021304853833944293466931833150695788337509540797054391363742912174191401535210338982468325096176280902890074638691728768146747845536962238462939291408104404726107255721602071276256119785973155418252451439127237539509843515485422566873075079043758943813530072374325619662871559751658632649589723809368962017994845595628894512957340138799195287948307433509219039144515743070008412029395183211989878930613038157529583303533194928238322701811014908984136809426390507282290773347414702705660652608148909989230973387245246007622302035874600363740955167660625587775067762469592345931663804090581211663643708877795168876933746287815736592151178651382997891703275354121695185707109648511533298458522436483714003500967501624254354699131216166591806887426173985262419064846720983524971746229183540820936664156783691392220405572683848199331545075555542479473842531188776872293574174737809328668920003037238120234383752294478227325612404351745156099948767915384439550308369519415343610857893516969500965308369318892496202180445549487194603154010806389841717924041214392971231603799600812476806412318232551130595103293073848911117093444209802941558713081541238641424851751579095991310725484866910863341539876765143756719715159387449827539000420461975307219721753000553588444498820485370643331718004711588332129432718943711554476769058622807666861472493637367071757072842694710095985408481683798643926378021571968234777323347127439032559688326425740419745992955801703026908863382737275258960640004688230075499326925014221095999331022414634860292896696456995139681036217701650834309555700583739539677246558941041453482636904468214545064684361478107773926532297940533706311892581379541376468338838540724466957341035184410387512911413270674912341768875529429392246863106451433810857888963089838528138831135980930138585296910988011066437236847335680533747177680568762963991826022675359284180390757680537858187097601475995545596628627169299698070805804310491556303933373045119659804765134783446453856262273407749394844203454459339906930051879413701582598434000954722030944091334059197893682799823177984579892823041306740086909343156321203135356626331094277811122325534271433829223009234022203903910137814378985794109204939559413584994539347664682713373502090949781044269735523079463616241227773976900898308557366200295359732338046130875836379492499041628131869593195156518558217264809146315239938221439773411936928317209616848953949418454208478869853634845074628826957054319073232119388301260564525962892495123393301593141809848209786809910308240383624891059529983696873259832563450155196592544998018722308425204299548163146456194390480277834974254834889413571780701161463170670087630747223904749609510136044991149157121076852582864995905490331810014214414741901003260191145168917565495532313806492585043520325198366960694454322354012491141862801531613732550984610918304087382976747486235508811249743253690041790601038024879443355905159133343930043543752022366735149634867518008809913794438868048446357502889866832009872632724518490228042466366574883900852363763656922774466233404637222904885132267994055652147921247534789194724827078562925983965486928182213139601723307096260058913158908871105553387127548680847669015801105986615519628403950996270450160651143818179844774543512236486996081338786750301534254976197095239620553636768986532277405991416847757216238073019670854203181369009770177097875580337132209249647571773156490806840098642585380023992070623079776980631320765142923587655517025824354712720977301772616470079862451128842657928141870520098111819390752363990993334559032054548565505732587060924327387799554267713703059837337184425704844716805949552710519390345005856440007824267377418579487207289152117547173389657226251906016191428459988281655651087612876259381741589976149083050908897515329160148950736768433661792729181698613932084452468289908853195453321393999840794041288721181422280910225760710104552890638642434260262824957406706747517819391661241985209870807541363740421935765419052116393408622248010133424361847864681870475345111922830344470873645158729940327055356989075482049345103036331077378296047950344304527154710465601058033457509758730430728936573784438646286363999885128720095129138223925988404988774756823685962251513695750173249045646694653023613719592031427475609126172431845915967091408419803131178238685291961204080547110165391847914319515612925379812723676091183937898318391729074221057065324896776861024162228647742060367664596971561630948848228473117777568590486913449484770470986406996497991533193909908799096381392175095421597881565703924272635359604803280652744276771989678635511650969331558900889296515750769630937834956394426354375917116755671994172459137060960040907334867784938551874774765134941846742750904818261202655867067012748851377110864259033663224211710890059659551826890649998229448131033676502317736629594136949021075381741903942995486478527135871655452869399352081513269441934892449213520881160405830364405309005398610769498321613639153637367305211901896485927249133526049685376633370149320089704898709301199919691743858089295932648601602794722061946178990712153706635368266620029761734214672228291545310273166046784580398519726660958750103585270307718975345554353813452019946691028311013855119329049384466463524815672470895023151605607239925106105300144978934780298192286376453833407398179214367464946703878929572920892256404198186141369145908727781404020080210683999395403381501605698635367667099431176406745974320518756866741908328247782484255681330202720509835039861754681008260740113017224254155391665404982248930076606807969839076579732119052109398609752799599729265394867910039664069589747292350235507210508807458912159536691819169829733524714211447398346867545797578930581907404209017231297690829651041484815323206008088935927213672764722771087462101018534495845956923376062808626497158977099392032911338447501598124162200223901908051203504498709655556972018237049562532595823964594765817917425570378597085259073962622080928012455723563031799630185959053031450850088745925698339038164452634800340370839429074377560793260226403427386881089879123428127257047160022600231257171283772286913541963495176633086096360153769646212703105314791904527162032767707774971781598267379275022396756940492949810412779606443020163925807318282873169354251746941586031750270027941006899208810901398027361379630115991670972566592310024481406502209846529976710483534320749853744834059480939377487039958059905801821313573554107940309465178478722983835926622348101740993800190955589643870184169216447358969017175134234406545199566853383397461855885980535674277671852605694211907022305040751723154330189390075756768794627268740398731058251693677191770138613130542504204722569344552575930505385546499794150776774515993993640721651494500821888886831433513827332715242927075556110819013831373012043410223648868721381260311399819270710063773630633822417555216505101272793889834281054783538537287537609975455994113484393412941738146142801187027523612668120270884696112912140920459518932928096948635262367778263233882450456353950161259085610006550624831242054935163899888053472783466892717536118495939734815012067837342267890219061803174710644864742709755927696175256528981545573439387993275113500046221829322628813328250734017210382187144319809092852752510276860865698252889102310693197116406359572457201218278495388522452468445763454240367246461037450133853996362526181057570382392870420201021701735722168942561493516846283793979507979566921156082069903402500331763395707103885349918442475314151062803521617351299494231104797066140221980358920788508807490262082332447991400588615084437116561901228761994854878929577662102748973134959982552472587902619223664992760450512558523345570622810579033728748886566305940346061505093581323402691624039281651635227454833127365821630069437405291555111843549631355524227693441114909111638347281202742786616193795155480386786558853408879115506884766015405168170804370041586284533368072463547642854464974003543894444835317256798207335592361956420456757241943461663331472661620201101566080146936291535128018355007996099435003880190488147013340152566222382539759438825180621649699531167676740354798819461810594306654149191588641171848309001917294820318885744851009707923378152364662913965124894526736553096866148564777600015042948494792844678306498924803339735617096646422931149939191545104314831722430406029257924600158290080558698071839623980293574078076391262321116423669150744099795357941752627656592484927088308510858087503238785409866228898565684627681094485387838486595752947201352605011742930719433628824431261749936693495448753473999554563680286466942389212265750200647227731614957022647675033506028534883241429226812950725435562831179015884449025731119605115241146936067971971458931096956764288337571033702133011287107048188107784319013689731469650617332682968617012814856533920112031254109353494454272055555345164185472279477222724208381572487517569551626733835690430532899399518342886790919832917135237411804849560477889505134093541647941633132014088714008596065101624131231985218555797152070408796681948070714408482771413951200994106202368375351737847780534237829915880550976533427210329892594163793204548393554736276215761565731284801676476891276968765302463475367209559316670488419767010354980057023246112533695880953395461470830849017718093788278794745081813100566172670198183819263597841584751770417855064152239239964725074408463014708710121039423919067289368725336762001358691537197503952784268140412781220897732036743550147401386658681631585481459059908709037361917714702553001101235923019714709907308553165018495777824176902075671873061626504020831003767405161541926882727564964969107332610785921227278106104055444448810852076911458530741531239276214813227910695205650438014045465295353812017283314012389404688860977640814512685006282236847830008404516957836452550527892674268449652327431456167857538097748590964292411048345145956369620469072118834000377580171045520809720547542012587049187906554878620746778267053926932275497922604388351855425862022930650578159282865955169884723223336500244585600390550864226355251098522779909150564167291190234740288209599587264674434874289299589225565788267906231793815465755261286046305420445502431772289774104349646820267971982033834226860932449794620595206716014623276834449260400268150590216220601745127469291046421400642236987095888467783775595061114781070388962800651837071261016864129306432669429220759122678575600501634510249944563687796414394319070627619274761085585659560402993855767512588700853513479573246794548414922021796745008382536450055411968129959606347284739486670121146146306951278917044781523279481595080225012209883094837804115945498210803381325657289509709057098328777867050710741389384217537593672621375079984088255155270365825469183217550019412842593200456917530318771387435179441518198397350362916490789570086942574392047958203442331869250864555589489069869093748552366573618492321897730187931394209269245142382506404704266894823181128327104261232567162821946930023101116286471703054090649054194283544978224116659618036871449223344857576524280681303844436158675749584337618926220744611465273214264874541571839209916952457875035552487372343866471882774700428267346148640734495694149404574067819119104413363407286464350297455720422629795679019689442564671450769874210179263864980569551269369267509040160390621419659319350741922844010277477026785972749202253461272187310633888399608267914914626980675527386794487825072989486471286978789305159025805415777715957695448696724888025369868018827877616157723535634817133626326859807480600749565698265878855592815951718964178190056628571203251105179125885374157980228735792603421385055972090367921437361996550222301888308955280082008726350616588429213108737362574205278692880930854790237269293204423213262861719297418069897870521018978624663731222122014822647673518550314290545383433305842696094841328286709558888501258131220846168916395258530505719583570789028229491928866137416039754406245845749966099429463691597391123090399573270883578204795327381401162091452743079820637624606883768257841181019599317594067969730644160777672474312977511233744272506902608455774380547468887732435316665301111418040091323253523737021384827579687127012576158105955387710842364041827957015121627257314990682952827840528411937678218149282397016675144570403778355376700192571966631948247403038426487529986096928059489425789090234901610102198526534323572201822867652249172660980831057486410303863324177071502476543325308152813935327295152188657247336159390656175444449860303009701337020039010187232494445897426867226273319425971292265045556084258735904414912843954515821682045541310958323251662057650951700907461926108417161920139709255033279047613357564167514292266154723677031924840448434377333678830271051168337623667417073263330609773065808128364594916683161267094950756895304923195387561109181840907461452691928928184982033205441759364744992504622394991579094415513832897858509611157789834967924746467576393209776072967767719454906904894653545469064650058734396410638654763063242689981811747551544214624541735862379445721449653545088116795677338411384642484371613172016403665191797037592036915240625580671808406331155219417211981518861264951590601873752046967461640375810912584163896267534505522176996841215340999886925693610135593000005705311625869433433857134674490503536762114719508538276612219542495661861523000020290317746355164715093998502682240031800219537231825428600962579804692393864138604648628058447760884263228755033131987863794370469610166194394794378992773152023672619725260855828540959711617000821605283795615580585277547432564033359171029919656859702283872898786017356864978024165582227786200841330174772409065029390789135499516304189171251920242437857001714398139803454149007152349949999508904246664285174939600043549722332083438053721331200859946289189420643040193316439233556596847711424814342393916343259186979187679892407786937753264190200083708149106297721850850161211867885025595556504041043615834932739460103841891953129363031556956460041231807152599078027408467520002878102940729923811847393885484637837712274869257120034169962583691497443649052572689613200387495438193412840864546585626633910242776087586641100474785843749925553409320454594366161833271219302102810043919327050459359418417378320331274249465610191090902460772490306255304711322743739321630562273091684361279590824725721836506309954961806947368347759500817878685524055303317117466069323750793476853151807834929206626993267993332751588085959981306157505800988020736902495729349288144349345457045733795464754044410977874048538288510180221126542116873865766310600527909006424592917141909478537914052284206755812320025347210559313320427657823368093371052923402829219016068336336252454074564871099479876110103384520752505549595703481611092461101021297686766118172103264973807946685709566443741012485110644574105106092300723795144773376998757109125344864353445410501920794510412975698853763657967255808982760372172264425139544088656824820773005099019135265030055463553491582432500461318096558827067249949799166789386791779048322645612819298053175170095428211712951411056252922561883030533598637229685209990301472276979468238713564995791806913599097655714182862435951814036699793989082832840119662722307864108898864688920359744001783178683109351662855548806530232900557269000766857469499196646663600490783628269295378798770395073910715826223498941020142927954296719672140975434721619466789242083591088505022675500328525005427979909370059701641000293225979731811669652386476565062293699694085689623351132133522086950440833213595613792156241602591143112485373374724751329966830383897021225953383084143750128107800961303966211442710998132700890640569404756150601523316062666856114016350264706302361869397538933194960022790499594460974798489791896654498234715892615379834973463187801944535128879289203229477378377874101593118378771291115050144785484990386763053708575400588298780566499875199024217612622378441484727044232046417867308401292229233728171802860970556880108546731014418353863736159243308822501628094442779149082866418526977035901854887188972427015350834527468883855251469709226386114341618803812279943006425258778005837028199052108618211996686868787131412422999609248379318133118065287747954940632963232162767877495060981760197286956718456234048924909849714777895781924314310393149788015132575480981012134303893054771060882286044262570661915150304889318916282192602879474569713333566645142948393418407008566242396076724308665050528018127336389214835952579112504713143084736824246733254406366647484794717229619682044032620769587238788015690706698688608178267691922739739255136714689118897196672338762151235622358940252329413037999232117270706935042366322759023935940035573845563711957587167788775466124544204198492592240286529843080619918645882102689509899501338738358936525180291937498346097176637935620170874440524120415989981011457393792487698026312185162088538989038788181925047515370803986103926637421296706674636489878668537406349623712919096880784283915523205308974964788879313571263684540618541646956408702649439439054655289461567463404730795625420640717884499803218045210104241687425848899298798936457431073507917553685663251190606767011087714329084886237717454002738288408166681474192628349099351000748453724763438735850344548906486796995495146636679935856995660450082869955690160471137608640228862850635696625505612826996642372842281347379717679149457925286372908351849034438559569742065024555188938459766809272459576339726356597604315398055221722078146181636104891375633940183626798657804644487061268701593666879494662018556937147301441585683715956510649853676271107376178913149394787516291728404128231981476191286252821484845695960908876942200131639475871275792534586127706804999459988990175122205099702237253298588597164706860813147610116813224706706139676675232544819446403955399044193768261762656256279028735126212814420699641223396883876641344655139420684371214852941417447619692284154715779115337122907452153756383573206059112971541670418930720107809105450988382772850901274408571702625263744780617820344810249131101891165301374421814852110786872862454404748021410159456085404472461509612772243026980476700336066703672321441594516873799051892375624773993533883863689823585337506601234945397552671387368276274609633731436200094980751910260186290052507262929611949957838023102098372555672556993513355946910472894544034760549099251609972260712584588837383611544778221787345523933195842809761728269187901026394636107213261054637246657985915594053570915952859180832182354866674546193468665895079927127069918330563997983826166104892517776787771863454294728135717715809524050369460980672444289250509985126586065722226483391950432384480273649115661008411107557993951829256574676952739126955256835777927267348420340871593734209461038346042669631641998102960651054418522028132498035162985654985111905918074583369492669675668632567191272701717862528150583566249789044616469152036603063408510218929299824507950281509839975771869229764404155571832358242884512347419012679516776531274960547797165631063518435029486038128695400864287428568814075575764843902960410455851648414717250434928110719179093093733026972313739845752760808990760960418330552250081203285630015918680836703096380012402228050877457356904306118789043955431048515677119718023278831470806360952232989614442807498705916892466239650488002742172395872792696467944815286852234494610987285551819581107244364017640519517040455724079688165674618955864012144235840551502473974367965492221652659981962729901235121338886196592792574679350252438130530080765759135349917667975492525088089517067934410235810063168213125510015542488831027876066771167409695487276335794664657094935224049253765831636621465037961618359408438113719282982935021216229295352365541987373745562117569047480825716324656783096628103244006376923990957763097473892275772346454859779918431802394433890659779487120306102230778086518167524698736012209983214741626733058927766972362454062564196773643500113889609812105188821470569163499332573906489637201507068037616777689858576899740775552791901977550274033968984247684060976892682639234085084479237159612971113473136768667668460703119187856615252296281871667945775555163457872347883616299858456102258102140820144754390946154184429628400339768346450438555419063024623477788343025937884153587679902170794500524653445579819627385944462829189132294977761559547065224885005569307805887520229896648568462814729954328526639797430139781452331547722266282976146852757582569441223131696817133126901645187245276159444353042693835086390579822951027098499347118192508614301569279571461124315650637215186019736232614475757934931439021914563656971179688199180978228783312649719149179401076300431787839654840523847062716173445965069425915805488968235006729016729504948181441848241387208525461374937572359423564184962597136384104211375702859547049819846158622366413281373163290514932719851004575826100072675763736258666893381614915103750292292111839564038996955406462682067501988040502524909423527430592181488514924137458692341656123683856849198267592103583577611319963371349333178913483814879895952302217027652821305383426308470644341160833933078391492460221183369499188588459798810955493671089140201983668023359008320255012255739470395500748985589417779069367146398106532663693631157991658101177173392034679084083155362637326840498005862071174720535780709864904510235943500054960210065329979189565803531892425380752028913787855810211941824638458664016752017177005882765625334076954862242976489220470295630181590129204125912749395469342951723025111534104375851001742940617223600319874384126685970879025059424489932894823444607676432045245517804560153437297112937887017641105197593508827190288830968804845861988314619451428525509250345050215723152325557458615927072426223297535206500214724226607005115018779376566912034931618884381784760834207052127702409661817658009602115747021848917705763438653798806001491985287524591034370401539649072701466988350984779191254892010281917077040080866810396326438882176919319583917407941740227751596940746582184970884111047681271584334353407356177863747591264268426112371410562425577708814002125264943689930660450054305381354010819550591148963759136721245322384160242677280159085855150204881811314664243694076387823078117874015357339653378549134217669347454119768604881331431793346559499566639789142810138110071327780184275965901859861314402739182128676435430753997686475797152683995234546089277959956529144251086856652981592698251849003953540628440778552723343583046248783388698244328912962877040396967669871047454094372617546601094640658384602898930861999115664689253855278310969158201278922833707480541670489219237547476364508989278372316557668054147591339485033844859557509518020097042559418989961662429787906553267877602112924727364640458375068115441648690808672807381082610166547272619494193083921654144444068044935206323702709685202212854987854105679604165284527046678282447761240767678294276022550787227871344223193212019734837180536328022926209685449633036059241057195562685152585135387886828112181795417549550925728815852854903232119681429546207359859697700127988749287123630835401020517199501903298045754715386422479070037302818297188472051597065069622539020379945047415104524674183521537073957129965163933805991781608578759722843897303448558304852844751313030211326724451665875980634913082331578077493693257491108763915369625293517082036227323563792487120811422340547142664271091997498768786309764411885541195950035002870616879597704110139755316694915285543080413417347440502370952846032999781959385433708127366729656583491343869232847477822214894028914220404051317660907497896966324954021863093377640652221147808896019631559830728126588939122408782766709389790036515897414217588912560104452831996888105114959095367802223108838875548218133721162297608250405583414952288586571705441996032868247013704929495739561633426270519077420866873971485258945011082245470348576785234467000390153645425730279391803731805355962379952577339892268940557504970334196705805691604190178958314751981590310608519537678737177801136785995296840282418624255931447455120338283322204064979211772932053598680233471070072619628867414986452319571602890195312117636097401480765326802638823152391191810321018301466630166395006799143924894032523114682750223269816623016614190779443827575962072739328816644491586033553161185932019388607993296936311282918508994392440326025479449744276648698810180699729515021810627158804233125154962330610830433513115437766734940259754484562719427621360382740161546661799873538581161159075500324625387071437735740625357378659958811679021060609863175165222849860259371147091312732959108150395594456244739925499002460449028258057831527817097504595643018675473312398180455141099625648889200941110402960397112585951844894177730353720304083931809741632947429042578503376389297145557201652094497983590395970178963446271060817619912224411319130854481079689797340763955247098329925760137250121261556089612674751799214858253570425653297522103912765008763350867664362177257451730624578393106803731816145562853096796240800149699683167107601364588860354526314837998567643377188019581284048991004736834995096670964482695133604488070465216918926763545609141718648028483259734632514811043961060953439609055754759921811412632637517866779832262477578419611837556445457281846136949185401824980572259854535239021627412866228782260740966355794449259444922293364803327806690481585804329961444944309230180321197729215429444343224868979529971392224102441945921709194142940238889757223544824955002227054977173058790505879094694727767971921745681935526721574038535612838383139600890293865528303955517262723510156776248105836735568329061188322582734835942503247383904886567422754425184899456539523721224859951926922126881411728354066656097203745526100919721528768217389819592280984292963256574815407897288119366360054533326624254476904063160511184557280601756214073871344894293507155709748132814840826318446729999536820084410038780184561097329652952123395510279338592572327701125106039312925808744208291445023379127605122065660436864611311885858632717725401834517563092834541698172742994382458053613827653173877477034183745779313961573143757591937006075401731094996090311523097487497631919681327994310431321068713989586135966729921581428923376397508367958307137323804351597746906580134300687483592609399938580084189335860552623723072395633762112908009842767509901301373687623470843670303486782445088724822851883041958097768628576264478478254032048864583283679607226049236103485009615911810658958887486762484297324832712172218130051935485059731628805533209405286268363283144454842186187673463118514536237042112766353967541680223707722436478676747648664692707310156625136628764038603973832330583296461862018049419609619077800329776937849298412597641507876429138891555872181579011855339890166024703793967533714513059276887928372355895421567487732365101417959269528476125804636423716270171802406863638183400038057063379246207376883878135752897849432078046980419985268618670961754029169873069673904333626392391200411405243410032047988033233289742974029976263770330073352888778360494270038203117872232507425714877057324773736033763989773224231176077153258613347322940247285646795515947167399186017342899458571366094945293900748695377911159574517299583008662011086745540002301669423245806339794364301996911821343129149054977352301315897711802702794580589930191194515028420522733697389040473622714966922874900258741564426992378665737966353153257452854067447652381141765825619044593995716487416428569333792868398802688172490714942560320528827845609092881515961159116607785112937376799860063824601368956744530160180286487666099478021819216851551905553558562627528897034870898000327281113417999071312461605310592502578810246806736580044788237079757753134406381615390745463452639171623294766882445354502670760407321031640645974597773611772467852941971336031484379709489783440988245646544983795895670917388591324405349628860322179574982797457248816479334541511086225256444697921142583746703087607832846918295149324527984347414888413985387942968212569689692563273399892155534401613392380660926128018267913870020438209027899179748853554881291158655168866359079484876088376226926759861347256437957778335256194516332070879797162768805397589727208920777552839268362554549740391589311812596457146934361632527992953986822675697008138188898448921887404059019009135635956573243727442170752462504562706949603656047251368732805753925039062409704640412487910374207230155349456742692178204911964569569787159312699254303964926540029810734058424612522817407023547765975542295847997759395327617963902475028748701996418932793429463407914418135101731497513672622236258892156332866588970114037176421769917322918872172636293485441791693745601995411422849312401140773918379795047194439933482350969656058626813042700014237417783057820989908059059426276178019191225213829191176118783060614540289883986392073400152698754090487304970526055807605408549141014841272678717710097301743170639505378286278909024854626195512674495559988765141899236797637214167943033210568421140297653631056597323370044622073710395951860103310944080676363047819275152433858767357351657288151569592151575445551646216113790061514327457872859928351084229001163636422086879460925819295131765136178292546907299919451691366872851670602551288061705118610553679283024172569851516915317569011143239987268726746256485360781311516613204190370534088853938231111978095929638482576528135801602679252850864174183215494383135392268635659735967631481524501627048104118146600828693662227050179782750166941586072857129567489408504078817835594827622455749601590475111383767819518118260772044805937416608952882016301830357267274876782191221896030294352765602739288197088290428021062918757959856932060392336837961854343490767189310076518956199812853069110795718863976550057663001493305537925954120094936874201618349964530968804659025001511152183308442100798658101452173490994474408043303449613710529802906028508969539224986241517294197224754594342728721256296711391211033739882802452107737359255653565739907972169606699740524832366247934173637338706734026363495960636647825464199491314995130909574556411930340046321508316843369690357869424782993802601989478110706395936308433444609274477884829627253987310432054966936725937507309006214228481303510311932651794878892641192355714847217561881158941147033787429993173788459228211888986402646456583276672511752109246953332832126417570301841814071574985186963476402928735377053890777834186627635400081301279322934760723458253118270989013978317497747509279280651736310381353494367956426081365397291152716075879084279220830381235484205146220522708865096908534020005043820766314168773736583017214516775309442555106514989459634846384386246842194641919002239863581086236610071221414619066137550237350661324788888275777815373728240901130131410783066869443223156433619527192345428787287275606654831863854118973373524956459669429211229909760011765931757539198187955566148993283752214151383100768614053828279224952143911007016493646520681969584015989847261109110579071862690071653322481050007423918248892170939080716692280172542812538460186542333116960759764212681318602324068640612113632856143233462894756143364397990525094319404827613104608511671918807081654915040096883295535789820396495479990074996581141512603925606352848394843027535048625742020702757906137927534890161034643264856583592157566888315514819745970311354398956413779506957289833090807700695530428206499284074604875179235687237592432153301058592517241417416209158031266620196902147226348195768754916234869691379995055614163329583725142383560092805561084409322172940315134837433739958876636939335190117864301286022027196282986289635878298569282199120100544842055893081413079364404060544004847796548848889349855379487048641354201924086296611843082422891746171629650181331357175998909249058398402235308909126445750266818627093089716072431271892151341906923131888899264751693843674752634131328733050116474512097601512737924982076860634886104715724137829468500615615486054910362528098663138372304488954797699101327945603494206651841887920601187657952042310322035894407962788303424453477265811805789216601134228369083228114483106612975196572699607124824162334713251521861471292473042894233007583171889879835002269286594547589463726017044568170127770359165466993134082997493313713926839335659289294439987711034067433071680893532017248024747664907150694176761194512770792652973191427040064246485669548161128228169772867491007394882994430739553919798961534970546716028684947951876389103489540105484525012988601310321466123534433145719996870809509996178825110762932006069840442978548679091483785286991795423407395742921650159983204568661121052643915509765209475459284873579898999212862204960844961875140488878744407934313092234452511484703345322185665145374282749374342050755906134693281313580945001846058966871080628543984439760261788795024453851469345665786832069861339916444595448680307386811658349391828140715198421460722570951265779082073125044643708003154790098783237809675233232230310604800683489966808012130772356955838460064892619875762806938832366754343198141476233004499637745549035975568268151880253333527422354030777108472213084381667144868497368763964488197647560264104401146931429740592812126523695394109661208173471588566178271003343545627499638714495677599577972198572450082510786886628479458654707308588737288814161236428131128625441699561433583905854163822674479394625292551204394738752475666928474575441255117641850102342343817203844863797560920138922280908600681137490369997594851590935045311968116923719154471118883040535114415061178037581896060308249418126845290543738563924447285752312246382206830161725266696707411095282853533713237544960612875166892274537328909298169095876172714011674553677460224660930933596508776200506706100342685524674660585537014845488699033162096064313601299853901406216615555485781150095292695905410517051766183946904999730067565729035657978064919070498538493823984968847372434365210793083200203135232924046882817431692958660951122676699919453731952407699216739158565221282811565271940821573308107626532445581395782446988387964966292100267625269910760975462791947195338813648651272248800192102451508651435048188514871073657991102240342437305984380252119427913072671899281549172715138890139259072711833512466302529436769276892975913303879039161698732694722847208127044735029756853987062069317133169062053926377439319455054565262059577398249076895982350872992808423234892952200165227607140217606520285111958089473985063234794304955805238764810215824729666114173058683033440844129806234598288028242757254111853516928762364251524087067005218017510766687520517639435594417735323952632535858907511767135702436549001715955260845974545740401520326913966432533868055439984771265861503666589256959992899175338174034216451306528954835742370344525580247887547476217324429832695293214179634971729803946214019711394326397760385907152792823330732300551308751088813066057676267340937347418179627728611205680750606885405038722269573950522563387333313700556729981770441314173086902035178938788354124103444653760100280882760560681241498719283333893825239906366080990999865433106616787517475348127530613437174292845635189287990045828955758227497141202067301015938558788046980407255016717190497021972423494459234887319509406898909123965804123617855791186336309462157752866191000812882688662197234422125923976776250661460392333090054262437029343632929859320532187323348342654992112784641582493802184910485816626007575856063891518775877020380389550788639855376356082525150505638912220494855987248111616767146896171426953883717100662300300384456871270951744608973665798280067953131485154212191560931747179764411012690485478199996266369279589699739538690363182569375713582833423445687814929704742647186507298802622039934582298863909754442881240943569946777334353120378701971540318852484092912018997793286993575392623487013584090374032699614755272496091979555590544658732717150839102901395045192229551473203249450561371840612941890444675526953116551996613084641053338461279338707887378096115791047301662971294116193910226828777911454239393085641716065131157793410250976918274862656339788508062619236969924431529232270327744915144693581418269776638954580959746099032554250635702778116968836511051592631882376517440974727417829828787418780084397699491806063081712794196972194586079385922144489770775664525089833595557901903263170107171941736931380755653145223423602374609637676953630375610737406260187749948345962045836926723994994195817216730383029036301106230141393074388717210086063354739621974300405202956522189766742531234169068767772083692617587753588094578051525930663038804126265122623785267626177780728147982571592042925155339560276409821595749384116898536548352688946840528106452053764437859521072761607921822309098684821628474722603599048789377851477256978035490577975948737173748959593678529988037838913051566568697827815464122394481501050590584511496781811643385408809492697907578941666305361969214938705417204932573200349099803298771571958871563760806962647465023986871008511926561008685377437166362190913152569798985271436701118626793254686920027305912693639552036635042747162530154579880512752767193914719120250590202127684727892013800444572667518944924063369920597179539123846678529273076897161989382513376191250615528516822889361457110344298862035721927414211280067194714486667563643925433664207686502506965257951548911134167139374098857895511822742446829019766010872711229549023764623836030558080525159562102261628909760742772917965763537454851869491851890948962777945265564570514376090450546424327216704112616148928516281270880214428205782528465955205541246486240076586920190584205222459880933820749355048417197890682733638428930033881397701767096655477811402649929950666104964458877321456529178345311533217136618617889923155284186517130674147547107976452719338167449302500212135547333332610578043977652410269940028721243818683051963324434946657428507104671894731916535642128808887945480025454026635188257136397508041371655955755397437722511168029972731354520891980979100065969260479597032872980009938003549776739385792265061931626888249953646964435081075468208253437397240767820432907839353973062113534969388631724465676821084341712338360439236451034445828811836430965199004397208094270378311864606738794725116989806667271808997021592958043449832265298550317137693269742441278510397241269367326362224027671087068397709398449917194100708026900481847956179837745327506879799754699128865788284428364861818448315396769626888127585214715321962563866526313704863617191488963614469251538871386919467255986049563261722978055865923942350512174679724784106798699259436175454480632725390786108355255566215470860716652970289373323757999469378188322007945356213041969071582514495555161330394123957493857575038952096030049221323794425307377544696614733727540902589807137981571121854663528633422232628784362928744712244399663303999653288004997221048554653222228211009967883603653868075334223466656296438664998413834856440907947081619857210073686109823713956544755362602329970303729522575366491648814849901692166192478727795759344534577889343074980855269300335660163153350919698969147082688187242269076310943705334442675009871859034904734011925041471582067797754851583808341925582395303581634739154976874033058662035860592969694211712063842964928182230660898468124653436361729296664385513363606184317247873708501249441873056960016767513791015322686093423411790117457602616298134774472841450086588102732970045369837070496622524126665073491448459192863997163427560028063153623937621174762484611976117236407002156408654725991693696201605824639029896978279506170536087036134187841954036793793858645178614561061014419375187102229804893943991063591216404911058602070928565161500750749490729833344619865690991370902688686063066683732522704445818901527666460053836862007894103293559914199690784531304410462812022811059703261111950676923368214247477589636277948202911749162473913320999356207400152309279492919633559876650657534340269274712833976119518919804164059652332352589236346289066097380219713289399884431882394853082528686550643509602401802081211611973134208125672285046140423876816659973545492962500934061975781802644607937782387631177795149844487823114460238714894059744545039026120705610180404392224646126204856250253404489489515795917257315565245636322152413194839634463705016246995270514124982864820717864049067527733066166353391010435018096691250437027362805046836623861790253143910501000500956800095585263619585466389745984729618951535307616962358260473233037732756616556626455668316893540370563415601446945557755712863442699194301771775009819450533279394040337949783594797279798166430101575757205560650008182926086392714927822457083898337725169888305643432201268839569679611742966761379846753971456750063933298815008265468245125708101709886780806454012029715282890884104309294751146756570939264133039411118764221185757742528343685200014293843950502994067973726570485315259381944694626454575714328521310845713634799915544189974534600761190082756886725142240143384369304071073414929228580408663974865644458559869581046399434300940363240528695597982996453130766374844949946717506312833668266936048093866335385680596176727384872123794813196632918511044142475358367053388795248829539323343567517502562868578516408565138365697791968634046421271041147383123796002035402589248702487683835693281969162990514582513122469549817938491403653402577869338701976098522246147772274349079378597723342727945622354294371187822496738940787973985098021125818972354184560640447438665491063019093475021828547898717538245968442609143252658479658947685857039017462935608715484233314186496493784533074087438460233936010799719375851229304296306148429597833236247572292141595910233432710867838885646726654667633752337251858346145823839365000581290431607638920690584486446644360821151368024870261295159880307742732223898474401849708179569867425407008450809278431919771124638887221756186078182670390535099297249635352460427276655964537715529209213166347376004112026002364992899543198029392645329916943949170041544984579131954473097394587372509607638091607561844259225572024043161983295070218589079906412232117793448402215785098071455589124085377683352986832492796291446591534712011817406065475037482401429868061005926350084428651028654143646238539721214399914917446095179481503090919863724190597397955705897383585413032585852721535644912811479852897583570748124421282175353098818593556336094219492065846637679118121772313263413409299135420328974727919742039231620887614531232985840175884028275099038325354845292850826627046896802866852221134895850084850607336000926306882674629271598202792047736303382558290172029384348837346082172462895377624411065379341853878872936019918903081695882538024547119686804247889112729490047913472002890999719625325644941261613225988919970592015420858592031666412976027872804782447046996252692881603440679706335540039172211712469199863242560756479430834258824153461515311776120477061483385487412018735247085988798140005241393314057015427717365314118262833181569165499773628981094696830142627053122597104426204934741717528268407172868886930185069314141876721688165419142518489908277514393370035846026149851516076475872972615619468436532270674939730134844696564071168117635451835414833434429573950552216602329783160259738731603132925906802122682337232699546370136104604539025607534172713274728250696543868690992998828670344532278616182486118410286507994035936556760271840986156128581463601115047172142115860967699165188661580438365944055331922947421724718864713604588591601540662246775691592881129513835260524944593598021718506641294942415361031184190220870258218905975467404095163421145487226703642047333752889908714823050584889463043287804302751346746295252407596389803586912772695058379782152346151982838282511253775154360638541317582683433661783518993363631250978641033025943030263967698086016884744845353406821689444108222031256434527026549344281036208539004837804636093597524653289486902116086550433777762077943103914684691319724264766252468361945855971923196957131896986011028523583643671011473438899697717572247061137630281775555720360054466266122519346415131368994428998491872453851604456238496695463993613021945314219097181441668644643191998541017098947486803227958734951507240307527319043297329222668920896783560900295857516933694883374291059605281865178368001636927049728483841181357084123802930959209913341305824487047007394973199233233666360450999112201599478010951307012283475325876184068806364104607019004298486161818382846834345948480705958714759570224794395075530340064937369137280217202133661690208212441180612469192975542929541175281263484649277536346004263823511351518459152566891189132193828176253932792342867327039982508822065659742193696446571581055235262948300907111856892771382117485894794798936360692803142202581123652306175544365109365646410851220101632442808806537511800860800798624630199159633732698283908493458678460847997601625809977998544884596798688463968621861071642543917030281231815918590642986719333741357231302674021087803433914920446973291747285147663976695426402234317809938453615456720410998986274182424595482306269212908735497354056838970487203302292704168567536665874028847255959764093193205156259757632391303949549920675930960179194833620505333908466095125456729667395967051030780952224766678787189211177359254250871607850664248271380040409947363834345245797432189265060532330132902273074995296663397843380683382304518997213003720460791992694245948223776109851243406732859884669423839003975905340657299256656528944571932799223017979511685318539861517974296357276054321373153512723318792776055946551139409255714302920552740048512138205756309954098283705674911743802429031382940769088894240254027660729862737791374180844160110555747854084893604635661424822985260627592532669537711043019017138743761323799789925941849545754581400824482044302024324397551141442631438195781964309345291537334615416665722556447945847700746487045894519235064227830941272672299947542230444539701245472705478525613959189262422267865285260028479190310642377259003461083328037799780086066011970558211048253238360325416137764645970707070083844766041315988628366873118629975323005709121783289853353351751499431247228809718981197633844005008665823558867370712352642242488709134404101963206254823641131225425808083863088782890428854256297864811239820772773300816332847890622186457138114838885050513714755941506115869096211121136562755980714715015490506074763756568932153217451483235061196312204825282990106048933456385014028977984879660428764833172800831759917897248240334752700587236652498395517689633658875699532550151775445104897537781189798335870482243877236006550006945785702248833504158861938093624469869203527852576424771401114147660083918092325107849663372551767608494993883120891545540934960058829055996774472076240418402133643172988279381635246428494786201641775270009750469952737043535965813531451041260075969365387860631998541478610639549427917533586786264480903838359392717145632430878135209060220737557580455622816543018859012432924863613340979631276014533104936636436336850396604210071049424149422498365655000774836227499319727051921342695965499977488042896591112341389809474999704525386954886914820359025104572325019753068377383022649867052018290864691080352928322443137903703344369106790291938666764050434186201540619933429205574335849819959291375286749665171329480359807772971728541418237143425539615084498708325141696045423716606342309331264555740689344833765939427953663007516210736430225098248435519890816128427961045042765137145807764753329941908708498037352025415002430143920709715552007089233084720780966478334596853826180376309172845322273781155723730455887122574637696701422961687743717098936563617320446785777005207150703975611882451573949961850279661618011708891166542158232060330303351597241684035972243870564974165779144767167192583924152755503468211461675515593197729681283228134158656184856597959457442969186149047060330271906278080674348906703586772927421398496391693034680048946509015774077934431593385576694682332297377867456395077558642116107555327005288834414976477925327952460356910253120959314134095644492964028943156123512430400297992465597225984753568152094299001528685747742238002927998457826857041875686924534590821163429665781338139708097202713739106377356585456899725058201355362277779695679554025917392290506969646131351372407473510753869681250261145877641441689542640901166248274399503602364147774593391419954590738167965631054827600639084174927490563999492440252141612715627006997364784554209010923783172561575560131672877649855501590416978322736016050579527975550665765119760590874194385414905661359693390063516052128408038109703988987527768957498953704229816003959513493031548132318582036615426385433812891478240486422518473233635834187825263681746140329193894965041900741464884103014466478011038992619513017647499181463497668994481860016414651217617550276940208785307983686196960402079375916731265975652551852649543980040009729200815605610612398815639348186024949733786509694073778008085045582894827839546745677472098695134071434202637167462522678724017548424426622028406077681930314157070640397352775865213210592871022342826368317535581835272837904019946690255459341708195660807949129893784298564408586166828214342244486192635242313056801294173804901063151862631242531745363375725081079114581664886705537449108508944512261868195509029027441771231303299977395230945476667891668052621211623149827630883420657910565411860416117128580848072099494355349609085140783742805006412734428485881306185021388606973095193227456226820260026925164208233555287024067466554111287303019432253954365308593521061463327945475830294281706450836709812433368511493545784542015634973609008623762591455821915104802078677402657551211706426713938898094668941076391644612188885477639045237832013187509449497543557015565189753521241314474375555517347874593693992506461679145256457524938431098023213084220758381218832323206945512237554728102137042692756299107724419155220219423142261466867304173462091532123136934115578604726614958588270729492676740245371524611439912084486682609897084241209806049562796379526547478270601138813368501681131288670738745878080673669782062116377106385091752063125718432233993690227506156640131777309861602932436007041649870273833943283720067374283299864555332205218671885723580924345360838426675502628033854970482366649544390499285261140295228358762991063208276663038757111183099916996231527849650460185621587489025656715968319034423551154683716892280144658332890228413526573802088333736281318570595168344351394509005089125644311881909022400418578303517691225046082273995318762460995567542579886823303972213632377117178452419033203820677584163081249446159753075763766715356886104910784258069952807630308754288588850298140512548707824318804719075213502161126204614018857526077079430463695300670651592504763296023130105686303791329508994250689938317905379930356576579214293470797321193927254395765106176099623726815701532999051038823975322152849079135883878138768546226624889022246220346874139711220116054095650123118025057658871924175224724901097007606127897103382724138826737249259441203182763532510358797724957959564294999406968019461196792062323936557948899675493038443232835565954875171239890572496764230044595784199544932761518516594859588492471525415208526425800166510606030360050544144953419526553667638938480765777130006877324994545358886092417294522959753086978640508597383288857000895168179786376296034147394639371048073548479552803152906965897861584894943125123259713458028285891822036057713542468683101453906221747187906370870562968066069809468905857730540024948794779410039703077041321506196061830811985762007959253821605162459745255611309006855588500642029042369234287067665254415866377281670038670531730634449218280670785280717726306455989284839129586585663140431970718994347970540667586591089782087605619104063388673055374955415264840517364252424373935258957566284550104237343321187365643449186482756311797336020474272601806172421434525551497908685453391613325400239957737632171323898755779801476233763056362918010448852574932252161727693580233518507092707863908233644771335788330233011187954976544692003658146832574866527303859077627522418954411856189039390217905678822559664076851066050892968297356258523439486510577139602630264517448340506040129635220840588962974180416713661088787535514753891689670301985397297613233051224673876076650043053185508648870849580049368239122481604359445421790659673353009492627930170180464806152534025433325217190229543659859082051829485134531512598757183084400371065542095903987059164475896088912117315726051718205208116983492665665948209071102996550143742172434167746487472080206610413939821965594390820478117360373965132162573043751271988837399407944047005905954974700407439478227675253214101854187490890051842511923148864346288005755038173498525135261594276256636360270437941790217753090299067090991929751136929561882769810289153197308316294074941287034320984451576743542195028273735564675281508416864151522229271663862249684725828601325369394352913405559457199938984487795567664828927212232058785886627000925847154338746337339974168443022576109032472670808056645426397068261364440081566796218235766571052115230499288096830927848478327901115742875610849188824325266455318236098386737418536771808089833869009232028858821786720644019943621643705429727216003975582685411613271808805778644411894516808798616639731005164398705102535589787102934572212158927270973401051293570255156705908728373574293477147451493651130755376776389469143947838457280771991482143086608984312104732143093917504280680283064853096359261445525764214304711815867489222332541964102179401306999087853270151779388161102761655320732114996883627130181973564391359478736890849222309916960799055225842867297465117644148977516711730520447162926078179885013721849533512853738314428202659088286361160397022755371237904104536992849064228821862050704149788398549021752314234554708818121442577643839046017190476697618857677227972762242749565407462955691637325745063253037668853588080234712579175926552492469419555940142316481656152296984779130572185257989244999387652468075128028541950893164511952481502042571055010974113222800140765317167094445335683994498246570842619810024254760081571192004230860017340587537704418640077134907533517042186756786628270159937510260709406423739864182751067168395684489770402256308602542528806567812926716059590735988460582247447519927364949426439811145117295832565508825063888624151414932254753809560988999669094530352446943600378983796452336651646543511891697909005453344808575921394795852766663789359226837747638066968595612241010587651610704696401988330671875899088837056998613557358760241082175216437961466121602723285432917281849530484303199205916875903078497250842707582655782659024385529155529102656874504766863188615405014505969422349746892932726219927038054280938970655232012421390556384817088024857286671878902078281063950730718712472465820791869330709919396023213546578494030345536102148948692607510077119418891835529673181687688618594317457335578970649507934965923069343211374451919237337857175710766932956996399338836811085444732511905250836809248549974821186842136654766755932144442153642588850365816212709201646206158058457003236863221311958071512960505393917912570777582373318852058189192612434407510785775198889579596883647418921251013559485205339530068979730899550526874507685453825163069549211212685357116084255148503833119853790358576778817654032717476789525474086344838160696367232474892074223567953492650979276710907753187275870332808115479824302746705977927977740246798894863583562568941546594010833159934957817863321862597962814626394098875258822002281546980693215090648355012498397775592269407320024341128125366370986185192827560974338308755470787692263106777481761003976411040650009896857977049774607473083253004373188419220435911318409687415030125868860529127680319783278552866382557127602832778282870726270188036680954328499487250837127007250146908872910671223265020414790245155423253929604500526454117003239105651612782175560668974411723634392629952797025390089585342957122821605324955257246923813490198692005982676604026821040122408228496246005760404544036224785039676259179710351626874238627628442909755961248701377899068936036782636256390097443802377768203112103618453068483021948836529834923738135352570634338984452755870891870859293479379439166566885367403585695516758405789675115518695172124726420211147361439838393776432964527049272537064306311302961354221705462345950434912831242405014678435362841943925766240459405640687419817070567206106678944603576169267757415760688880944739419741933556743682178383022194583586166189692807915491923556353798808665205510840302266423950204597909257480539450409204973541622112176428805706427426719952361808954722957912187995448447852996388332738005674978987320990662069184841735447320811900774201448352786423332031102824501862447876283920254438441708291373526484281124142739795878487429142984072889270015870511402859412440642152149879086625567826692592279768783312005756444798323888180947993863021690397659630824771672990656589071277279470821034640164665230657085700526396420876125592700919587162800140169833769728175038193749569175401526816477418109078977457256000719271566553201095278991962085404059135965440601273985627453763119067380971392486275278943863975628812514871804100996190578248320576007634415171437037234996497693544832641788971399280627546252165175400355053633026848868934437916740614692746714657493255088788490633591585172763251832319198509185984311585375636352265436594558027306266033262565516004762066747411615683686145741214015569631572009095880897345781058716254754894989619824775080390913272201312795791840513864369007506636102369825618327837200409645659353754232869800512086929699864716491417272018747510982515000312812694612127123133662016536283390744354967982620421895039830930307722705742799224087912995326714842619166813828723930088959712638418823472583953716268313062643841374980636551110200974207865751981407070370839015102643458710437432957026095598046003032980033692102147320608132021814696100068691334734014736104663166172173009578317714994896589309102707252255144946548687689524111275506867563982033177635515248228066401724482574631900287047995974893380817025594639171149273157161714939165536785321196245872082263912322104940153495173752961306472306472286839272408677991816526203611467947820707534233977564263221536267709326066318243813239939728989837915639871422396232315879070305222984818100824310652035620299964552323679170202777540777175806616050342942564570522091680789283031515709687339067138363351805930524924176054468713323765036982693168650546165545221428732120032879416874039670204759165498568016511971125336981536828293693388802099625413600956941040568202536566025341551211182976755875688934089890167225345664371073080038123994031510848141925993490539043296123719536989948154038849399433231997748287239329684836574806090353204841647200841899366895742068148509076443328035296693462836669984202317816972099599459363245246407627656573940412977860372933461022377692352664061989381790367321350401683540256307100475150541668319595137288109537854276795884845811164844235597944612153640934661629657765771596134466704632055199209676479315991019566747705414996684831487443882667375860276418485117758914518031636160892688177684787326094591089079947189086903213435842359418141146454214342366925311436396483816685950233820532165874986927274743955766276140377390370122469688404453046343380807027391957944042968814095781036571354262589363567420877605765528480240438225503631185457221405342277000269210430451586967467735458625507176624663700577353561770252179859871467148867175102353331733323435286163704032008192831733951843884486232692360281670973325084947924997215428309275945074021622743080941680967434729868364977616363894258374992679327124128824363452973540225775426562112500266785492277963508594587802376320502298104772297044523502305237272266528611582388276783060012437158661467975883120613681096233427123812672009586056598156704802802908427394067827433350977273621165598270702661400661185766234601069737171566712658438473554316192595721563051229811465928899781997180736829392973184687920548716502574206254015765409344532181324741251844608419677212843440930968045716215387191509798429051973944445380125306476742210120643780749950382672906900742277942688754827532173959295513922651193057978166835550974178364430707328521049657204754340557810535821678299367711755723214213936620575454233145380716904248164520247219141730828658810883325209263609544133647966350253643876530701838391192580160239826953637104000381950239617081821086564064693198695269718156784043530541712908392810774102905831040202353634852888905801760781215707119060068386911970318333501345380250199036714468529821215302476070739836904510866336321473252128375399659661034250378351889779191623334441631959250567524972146159977732763084412425327718004170387500239181904540186671328707639913814396172963007959365977440025570450098162662940000070199488418914560896446996245057644945279834089561040224495792221514221407860822415334083525248634036443525514493836304828558068470014633287803583825556713304465456219173274561372142907490630303573409247068815657745627022217440369947093831689053193512377277283733525043551545729127512123864561327322937637150006557145875943471243651634973166357726703979724629509054050181897687524868952258321071677305105413415377925608769506875417057627934306065131403757773757366272465267506848159912063953152807388974215582650585302691855143675907951567431861995337306752533672685113415705825556344411127101000520036382231641945310672147591104406177967832667372989027265701686978858465513600474537345415048190784231357909088168499517541691811778975306708662682670549671247004841786159725907971282204423604071065383284718644044982490475738664065774091621667193438022110762679540134160184288818062157510574803117584444642528922225751817149300057146875391640945167442279194077779941767553635610032011332714539693574676264551178328199631875157963139043561905233301804962203523476844061357677065609634569412716020600496309714597382521430088266451992022780791080005186469422654724065472928766116049813175392754617914855970009951217601541927053725797939453140566761107375636264323691024866706604393071380626999878289518525557670597472157016370613852629788643106483341124470462873380177320631925634128960545637331273979308204038908152837399577577531028835929318453370609680153458234256715008971854653383482096596603263269735361621170209678794043788901913392747304174051005087352974138600641120778764881203873922019106581814096885672218516440470513582900023593141464959186051370355363276010459062758053598807400196789115629736483297466277355500780724639019977464929112491470029369148947629578583056911507706658042297748977279539963017766483248098869715675463161824949589149357360027613326379805134921419240817609200334231580148069814629699233158113435976687155606890910631300521705527238121939822610945032910500521375841931960784853068683952256335894221762425022084349308498970657828232622430934823134144416558546566796082700253457815126699920821958053559628543864901012398986807517358952734997676562265469117199493095624647623047475366864156745069662711428284061415113598386615592993664233041863093434643333894030888077583420927623766337068929826622820110904105022581509171869956383363355742990862174594261751301934012641983012592137768936518154479722889857625199707501973852672035167794632439770827732097314253731074295648933527598969308721622088749700123606202746625439078122961639416587085929953098804754594410996948528713337967026565734979259735431680505421262452893983362976053862458658391159919085589427109899751966348546910433882724175160531077300605774698928626162391442968258345172167891846627952713901892720832779558613002749232506354503274368346144098315465845051825600261336632923017052801940837397469658798151237192865127600357313307628050454459481455843862159972281748659570116926113300199521010452182839039588546046586501234357903215293967347693252694365243268205462186598284124834939987872856646163294604559403190364730487824043667042306229126465463619831987430367155270049050070163178275591182550600911345050428616287180390068768811995205222624761713090658602711661694650479617825878807445555604741127672439757487285310379733048557806080965728815605365266452471018348543229549685810977302881192217425192453646563844363653951960221290224870027337949540900467486448145335727975502443836818114166579260120068218512330201285759576996880113411788175743527708025795116681472536265615663954673722543774589545926215765244595283438410096762624798371927983546090618106950353083422812285754986293076367664670247061699096098964996563841769996083637863751820891277864245868438810899566409279239045199286351304142718586853856167478630978785508692109321948297427935120207636551701680238224264016063857668036161308478939921780506070686575059886335666272294843400016639095942429841094657966971965937573287171332429617030663542294714041910287753660038038397880087489425290006478152106667094869663869490385371483044398814852068917195643337417510290359704054995592222687255643044077758823096809910629438031261878668198268186621957111544949837813500788045472321086547343098330935113028219475747107501548251469086600900881276497590544371044237853674086535838605864378372782343018178199694748824867416298235111322229571996333983479127510006249133897078359353124462734781828587532042156353337717792347664452007520422688657390775519377566402417749660590186614210897691831239910815169526680223723968509235641366540326742490442882925247468176332872476062924753600344179365174304359691625494321781295457982428264204671284436336448538776501317363634025858990006538642784622829816751097533614999676521344754042777539805657607362900752197261213794354021713565892756338735476579964936974777275639599208473672015828982663189754593909767554633125059303127179359904726797798257894086526546816663097768720925398577505730251765344172911461848692874446235336788820259139691775512433149908009164206680877360376918628639584807913153887893238674352016740554011074044244658122322191253094677353419643665911122189886104802078812358310492609756268209289427766471710173627669825579367888502965128918304676112137094290709049307954600347367886160946826710518158584905163175685121674564355594160808429890039335254914334166051684441540653563289186628104625729091017908501952209776635262850336627814796937790728750170212018376119033823703065228617328619607961056029335401664580240077801304773832558942792989754249592732251932607882766289230406044398888926307532075010908202480677628469125508463365954435901045433819410774458918968450557123382166597484916944321501427339358912967915840817569405838834188258296162285375214977498188635016625850155884378653169257831874840993242698984859345755823555162885326124599390818938759658167383893115222913864692947997627111965428430622737017310137044323033429211328914072835171197548135117337128762778545126882838668853184386280814256307008255414856108053214936000581599795069960368497407051903296915191007792110688937625590991690909832417294557580027192565273127144204721878751008789776377026732716839771190324595186714891073581363441108261760272361257679378842916002373302043335279339843800941659339971537096860359616860095457829386689132186048683144950962962541274208764929007086208859253924997106949433061762944837570479461256962672781412065558785392753435899742442262927982988771119577610431967436098085342239929726731421572883922652166390499889009062131031384637356576964701619400858344425507032098582879054446589019066848840691123437991361022144756879209148203792818499696952616422146999223231955279751554954975107200712060493789345266191143610070399090159241211724136675057483936269834798219184827129302635953072196853266632055398660808765248986232822879258078371514283534544746236100813186749616271008024088453912073319396569634709591057731743970786144207254373158152751337155599170041971961165582992217466409578014205171847228107989763481571239615093142451889725434852453638375344973108108967006800023886672356508889252013757351026336893245187345604935051375749366077579581736688446042236998238383118410390442318092062213022808363622476587355181057478012035176846738877601937343977273955273254175823249907183247683588308222324283411152866979402208782571889491326369263809463667998011869850762184950796367804763951331637681610551405842010914825673811186564264521805474469362333738366772576983780963230615757680835896253546801612289607956711904174427605987466095501585825749308072258320364223015929052230059251226806257381918318180579202892432623024873609062854148378703568643259044785840600436027461187336170253379317882115341042419538537131869420067627309558205234763625918979472994203700599829274291799989873487214001860956282880760881979282338762935410507957020845170754144740047516667049179303979572954742039636532913738496874695302147794307140762730345633455490301404547424157740966658613975741715822073836661888574579915380468403609940275551821747282982851482366412991378917227982025745914611620573790792922898846888133730951255293733994948268689038598457941487685858586620664649891429046722770538256052136119473150664228636122022088880284894751089338731266845422488071287183951832838252205065293292375866504065918887645828727073364172237873121177767306325996314006553578390476119952097726172221911003335914830664549746229327854577650887559051966033873236113814727787333788666255382537669546047645976535152820463078965175788326468874106042498279198812879563417922664301407934163049809827250742461277979708289185920559466737579829414214324010438581863161128362882659901230103140595442555249206315313046838060363972200610596929135472235253799966025012034847891995942273217159162233791583786928069160692021366003355751601443421126747732513241760715451436677774361732064641382430156545199209525704704526548991612062093125774505047675268467584832124307970268421868492718587531318300233868273930379792974578223931137225269205151495693664618917920848180319512420024209231883847472724150577993523762120732972610029892018760594169824849275539963694051071157480634245793277643924041048482978291340616328158661509073917612725297129364678302039211873578411623191329797293525788414162841617616905989173783950997183368772727021416920227955616877096874362132844488703370462384823146651982931665794586883064608467696332154784791262282781751854590665702805541982301033313712972547280677311782129562457715957977320912813224503295572152352180397813716413195321147378230071877413203341406710965027359063811647570773067277895607803938324033170491679101802043000946484355318090336356519705587151013817024854138287704476483061654874347096461975421023608644208203180371060926094932207641117727191323845152317059385922522308181932109946253389422469416295955938877114447586690243246248778303510065955806824524773918317014584833195774576278759402014584598217503553357005478336714945721558764846083624732611092794091127732000234829216376534649498836380164835840503479383965204998258202207086775047481375647682439520241640932947494731186735205773566324549351698554165955718640107452140588394266048483979576305706740268913774459373620147930509179505887652676121589051663649571782815306301737810315535661314270536283811077011995187017460598966873328176893910765757477716573959354604437824171659527576881081159548193913591787277246279176384525563291422365189051267067819541830497539495729896933339187245779322051812819767878268769266182871469890800653320674954112016054032373323263084318934090827931198859142731042722439435896423825752183393591573901326864401475159523979504400614836469949398255201767918917709690479341976446987442421801972957477726429625125517337999893277428041307130786172670160923998782718891447684461744948203561747741722305642963549027827293556603292666094519099450535714678267724066016520456016600116274856030485442249911915171741191080475957895965100406940020605227265796486147048871678563048908152527101839018687661507357298388551460538234333793932798640441077403763210168389132205067941087790434369526845421424660169150434675529187278259395464376104254147360031705055187669868627198071480537787093271977706227381208966557259545128438013439530520177657976514003159388720317506487005589806015542235647689145377931173998957187122985869915308947872938941959262840728864687719372955680814553987005844687026541628068356643268351525153761994381241495581660051405959084336508744830441982268219088751403986868161013908735733286406321317896911749099670593752873095584723554853137954296910725368751195343553653990811835521379212057928992612360205896295534900043650785167337936242074403816874151903899592047797539282532973965031239750288895941329506563856806068794004518999041035383896535631032139787656016318847544913168833453005507428818021025313577429832084936163707906346740688185161405415121494197034661001943548023066951769028551023466454369867081446651078676411212119436822539121992265643613101401865056759572346202828566725466856925156356194496044243604595944034009470842722153663532854494057589477573361335574151028941090294414704287505807890835568013026545248299163468547317672923557205828690594209349296926516753996609369665003554224651945455809524787897667787633902102081947580169133830917629866083104481044269878270965941064365168653649359074317616883062839189412620141797982161453093445285998723118147656491359977505322865268654583748863003632088687020333002963421942430938761717195391514313768194449190066605676715918099316364389921525925060546749604988362923117998855572298204681978825878159571221368533297724834869042464501846635598424628527750414993776231427794520741146282867970256316012260052469917035389296965475830755115394388861297100973314748661079170258890395188443161265986732952405189347820882319980556559123078292965155971440169168714150654893686476890920156253398704009390836189155895938002483335361423229045482666931486802676305725475784677749035047577483083919880261957481753644092355122170775399139437880566433242302194538771806296623075419427072804851228114376038450878883282655083917056307637150217639572591162819074441112042880816941588710877164105108407050555370830248872685487307307269145725063764558958134623505661466483240049894255069657853394006859317872518000250172698084850187208922008057538515057132706811108399151128178991628773082755246911662417113548828771484388198512929933038633431109916416613325088449818518870529384957567261456323096536949605966206031729086398037755219601985940186325841958457762245971931377226208406597136646466314337165755577958671993275904249335045492909311945617560618793474319036438126889347701657208165120214611002784295538241447432926527165407164233256621495382645227116662025247437531367901329404341815447962333394183679769064796186702215037111538763896884426531155359668936327229560764241539342634428458672568045248211261733468396181390690169001178900479696973027777596506109065623937599603856287382279973414469248076334500372954610059952354523686290327544929051863695867719190356219337640810438121960937941790810278331630318219472155959290146538399727456239981317732671090939402123183932258118794656216784392615456018928297913633533164952920532505911142567319807052743404810364226050043317193261324230912269355750458259580515539263771057662743635656736409665898568070234887474238912377039587141916105428598344609668273673286979323247169065687196637687248162091254548971384036673802043577495016990122228393266354573539424120816002135269349224473201492402920798418337297256692697997696497365451344896254890813932000649716892213667744901287652776733313245302573157718853090249839311322103348764507991619921027906025765279555623689499607298111762315313677209274211877965909751587032736848543137228057134216541025252674788091006113350436872340621900257546672699081368681615750826792656680647016614523941412807558276163203125715348518009765234900592078593182493556752925298188425885336275245145545734671707478266991087246037372311228371270035004699498532270019387565499441156627812781602538620221226837462908267562333683982598769793480180058805105909022145509615953762884560756459235682458753447033531907094570824904726221426957737201706236728924276366297522068782758645790977881091293255547662170221318207179080314120564152504443612657938790310997978435337115404319994528148071378986277910384930300787238653602299838249634921402524340174712559353278660474388123548106382672368327906232338033668340978778638439469592119824606220217678833983486842815791149098772452627840839607662281864492304370086454228424394906538443601602416217660902163117905060273203338774293476626957165454699148006712597814115610418840973355204435122803038462607471450514861118686764706503590833384517924843975778640697324296750685206446887925707975806625887830282709686643384619079641339206816687079121449428725781718249787672114671524575978805564510286667155313678129392803570653862724704938978876528334429738868950580180169758701311578900105983941480094250090956988677793487746954174901465682317366727770801189626317858403391625798396078811691356876880385226751338263927606244456626002055237322863269395985591516163406389558925913559193224863915453184718211190717661829219438072297749078215666864522717391538431681863232604165997707433367243771284931930960955421406606450056590743574501027589241697615720045622488273243835772268818256412448296313283458546933716372207150493015591716833720428624923378607297592416751726276184643010298559792237612148730590806850056443603722771019118228327373589836283787087037770878844224241671821486241111285716396517099415634559745597622798034754985433998604347356633122528896522823597865825756139806682225127171760574587765454150114497933280164060522072484996833765138959118371143625476629829351464706658458440975382490481294564182838893680675787551578732814744373146226609269086026064830914365567532777175685941678457330308111628442337222311459513162249378222371298108958852813243747895858905043944871864981014579056476861676523353016077700619786664458783150071217923506505319449285231593854172011306876198032334466935204868501828943109672738579987897167812096315297523593018096516492269715346524217921093479492569322485809462877175968820540222947820302672916092399057565384555442170168092787680112503623661427960250604947573415774750243211435226813712391509805974253250612591771268317268435013565052573390267532203617628026720148548457922632817852893475995212697218056170729209278267335525254756762589176943245090435380945427696690215218316419168639515225745132995741685564075467438907309389765832065146627093990181965178703896858683350631809607011745003554178740914746782600294352291419095097834559321366902787388336668558883811305972793074886256567174034966495495913199713896362870159708874234998900452085106582954787279321310448401151434269964964206250444577698597471746753061126500340208284089795344007207975495979459537018449955286452191588603942603292940708155689214293163518114152645506160726202948433748623089652041227253356395865509512692717447143343507680344045054339171988590567630356778855856651806593247777359265463635194669718670030176822312130477965357952374100392236563869389496950504287398353318426215625999979040338586440404090270307130777263940529908956586000086081617030495131486412111703638159084162243760710410179609312407668571036107377096512846972779309022631997645019285470563482793869304255454908525745938913235093278070468276475184014846855892848471049773403112420664666292386208579645937931113243063481176202847462028447240635553525667360628638069385487649678889376320741315422691404923359135591917244006721327409386250073705159097579339514291795697418854109915114530165066613854670926163771843289233095339710204175660705558217433895016333891557786559607399066324202295640046632121907569008565169196638079257338996793166807971525197910558548305342965595881100654951967874357526006490139991471219428899055467546489366071668447646296339264113025360574619848737188044480783306497459110192355094013303943686485306192475931087539899186360631151031115432561868168905514676747552478517486497974629424414134623240274968365458420418594228330141338150262885311344568409630415181328055646000604154574339065651544312561186123854012865581294914761625206717213353272350888224205179692662079782143233313479577127930443700906844042385765508208725487971104403976142116169549369577133107643931882015475990859974992917477307546834793511540882881968441615748748623693932353002662174834475281246950095585327607701499837676124927977761159622498203428285737116714393754977939151363887770959899508984619472209351605490261198507341485763543553306052943956370520429440468097614444396349816851506159282208662944748205453240800038872774590496895310226022865259590224392626331286940765607916488580851160110643497230759125804999800795527603311333613771103686336786261593199797293027615195031622560812495093808980608462052412915058772416422525875149374815389041562476880730162347457818028856430722356010518692569705258240123531150404123113456537912380734019992414527315249182320993526082409408063650141697289058009272466774970540322563056028624321593283335311822000699919510841883471628600580350991520884241809521177288809922579223546450680614346764750184917348672964761744567506458139465777645636330733749044774426780459650854050154618839981442828918383446863793346337546454522013198247081025915442054851931881976540296487193393186202117304178613655339166807388513570833475893567657784121208570730682344366041076120881681320185885580300707458725491858607163841791060714656771069999013138882797913709788307170335879589124390648557825629794128929958181929019935245801598868222739962069858160941697872832420614658157811180749448639058873019033644666717244168104911134704126044401596667208422334143147309739965175473113349701851578669863893561885654040412124861445615762060910618385004506514254867329657709198630635142057940914939752224387228079784659333358736273383345844836574844358950646523060784943401648688266395526933354732527862789077400683797014148234112797723918178794917575079896555305085221477526557709964215364331016195231618249513982642297228372257506229391298065963442753868768963687599011037544459161935017451819781176123295451315312846625278467949259487423746669801276574657594723775322501248458983219626113108497609465463832353999788863103325645494036230258064265051659169274089763212632315595526949028051775557270267568528898063071202325027788084014276753132748405339308613262969485177217870870839097698860403836008697233069044435832475014903546243304347936583093064093163942688395009084651097386411315936393729713627286627280225824262515445432763310874415552780963053748696088637810698637966239091836407667998476098068974018473345298332248421151725779727504527012698906054957585905124561152791114970682916083188141957420582652419668289107524383877265530960092441726416534353309634163345234591053846142827378422359448114583635534440430503450171720280167277342929969348494526934396380454421912920358376144019553417961470877703256445946007832418424961247227957697385618725085648595108257498164093550875767916303196680963891109598995539948407178623526601420993916495391118872024359652906170405503128713512428598780636809692382953662537617272877305900776694529028661996597150892764693293103682775532238161481845508375113995986394191734009584602151210717295445425026091529111398659507301967669861990042379292834057235601028013095405021830133127717174124519806950334373148366668984503069191831852240448231738551032402899860808056838460393228212541626675364263926522233879791236044454065665093390439404019977305927906809108207868221047690090627586964829935456281786901952437025168982613117434032402449774906503163000347599741945450218097560464232821230107071421729053810538898093021762539021928687940465205334984089422067503963660626437002645090166413387635137468133465521026050164540804628693602135628038794222974642447276106785869938614517378814777604232960030170516454810285191605287356838639542723601075867341996652808298262520850783823817615007634392886256173954959968269741639843591583548893075235723493037231204647635245737322780732112355856141733543470720311738586032063024926483580663176995171118665066516060142828998428009674776013771560886089118016089249008387509337094654296556332550479134179263008861015972451549049009028482418937826701724450354595061924099141117007077982912281023348040882675928097476405740671876640096822552588642772932409609921710816422954732401220141167761153321539662108771119210580706164494166180044788093780893828690886485324951456351320689905907962244335180588123269658525807417217424868907384089591675033981754378846900491955096385236221416972485114687369948693277362387693137135537757675363857921696424503102811280856797326795890093261322453038351123127437221274278473859696390381283186550068769635027486399184516177912483798449861645301586833403754399674078897379670132577974213439441980692108175907697153659203540713237402759592745758481308928721823829775009795964103456689631846146074440993692950769866296733895577385059328286757154143083371866460237286807722248004198647881340636703007248736098962673727950876997494793482112236777528860055789937305400255228669537983512217305389681221453600272591997486071027985228463056033587113514149996360278171478388740955657318167031257937066223361437832503202063771130332156395936347932716628849750526294436065586875857636745339117167701534933652140354601620459035286095600461112135775878452260237235626545615189111976111704147939913679222792102614509774289880012928865381306149165392841859678634019211861569702403699211033748239684763212079170313307406068048842211959345541196750550514632987490774264886942194044113657497021742557847452823749349323412616196778783047163604140803665012694734606909230807802401491525072885355329925086977576611898594098089608250941778014238873950115114748698455005435960421199659948728800281498832928469742451686232707185689379167653992136234587469040384690078013065443793468396355667556260154695730496426592012286518847033564887671178397956926344352393564764490355146595732141313106958957679539715114793854542811649936064679648437114324737589486212332949944259087469923590074487078748321774404510614381698737916040244151048122564210114814714685206919963322103566781706827104635234379249688089080604829009234078177827276194274319364770469612201904773399725321943471845612250817046155564470098788837589128584944969149879636759515954908844938811953869942916236675417796991687250441447338209021731565987744947670323856053146406810605342770796111820490472821321034631256888917463111905338561432211768297574191954266602388796978937369818662740222508629415766908170566899226863163206673661927350884081741102857106676068181236929107186933956593261705292503588622415594939266163021335037088467691285902419723773338155822182654569619816920354598978745704755449401722593216572264200548264812266326853952235775639030985209759533312384072267151089853569918279072672531042649548518970474456466402556432789558985176228757222817106425454953487414606798759815122226050005317890129952838673506875147051353403827153658792695721043840349231612439893803725097971832071904093785909576525720535910984535969413143859601465618827241030445299346468505118923022028533845281040517458162299336868385364641920543290935502196705794194433588763880058741584132357939980909820813349228466218802861100737048839908867973032575372549780076447010956062643723739600329771968989592879500821649579050426798286942554013866222316164974044380399121248934743381988311979410000494575678240860124296110277268418069046713015045682992501185529206959465179200006766541721756583652743071516899494127395302480070418210492705869181611454002869818534230900014773695766431074133599644397051692821731517544875720077550706089230144729811251059718989086399674838940664558544628158238240625308905411382930989636221711093986339457152500408431066624755819267702777634040104996884787043291579644773005297282109901679819696775038352598700639308575864214072869967030086961446767720187895533798852671423119953583746684337812414783678278607164046392759056247601870080018486651042293776182368733647126628736346911890469223050729596421686614714919325778914533746658930872727404356377224828421419949618527368895874171841557050383023239642392414779062599011427428050489199577012064490724111847529766130197942059701481467791351895201842729831601049082914921671741914857197687991096390648573266736555620058899580888842631561525471182495495765699845760425207528181205249640132578858275289780067805518049894406698463152396884695799290346649752160564248966690779029252292830892369989242192782648233671092694928368041094308933111834456376082604168730402923807098556054614441125121371979943369128198616354450668370132657895834214975922070572243453351214090784023156351243372262652809919346245995713341075375705959785756979092383918110394396764309429639279927719402071686198824743820474361915625490178072257820236364391466305923120434891766706871108612159099416362928883276733794290758024734150862994012004197423960179958469352332410757944451655385484054930860091734696705380518684476780406760327130801353682881873820067237413952682419156584510472991695197039235829283136067404954981074611768401208031446536580317392160126781313268660061765018704929057518193622591635683482200341238024099819853268268060617193750931483257219493846248927928374926369046020364615051307480623638066941536530112915543408794489736542288106170584762313446718224058818729251422546688615182938931312882779579848010397302635993142008944501283905464910832609665642730269176753275063137614343049281043757760656207231142425891008086761197713262937123017767315432971736874331809462744641119178495214690791953113650406745544640749018031931348524927848436897340363073102773981357044613466312933981703621799755431549377017237462327614557166875101086367273120760823972160097947924775870404211472383772375675998849585482805588396789821137008481773368761424759284462651893470245449074990125386604902978200389498570589405743256544311770516041657712634627692555043190165031124621957074521250738070880419574396152813639362576370480446327085920845463878590396806526586412961429193269722757675495916001004174593518102840146775199988626806811747189692302625303656395222145180070172151955260325902459793020256090755071157460469231476574476120729280604061811706004159993352689333155790703793236370202963067364885422229565804803612404654815283939426930219609922472225166030892482188561667641992972029158827547813334545829923561512904629747956309629299769843715160264158368996515998000638804954544393576084988267144591342371511859572884865395077823661931733482895217531986098858721234130954555652028070263911637256466431463998296736089139296508959650025824836418743999630887738546862218192972191220551332586879946432914479177669608325053547437615223920209822434437258110879873115364723611571855496062588520399089202745134579055428894410976446516066944834959532474010350071107105272337228860017947859756989051356941799593819631277257994595813011913464533114403761911697464396833540626702826311117963118796108223727128520870672441750439776422992841979008367288317126043720931970231684132974982105579258664142136991125609001589453791171484794288724594015960011075644476956080274529799208054748354719132840241748327170995288132154043337516083813128916251174650388893765804827561698159700721474113245103392731039619306303985160104576348297027376291246845398553486450542846570804680845460526584088144657938124210507223365966726258071951323313620656966976995679451119807744028018775550264075510570532327454671099390900902173090524874788466916123854251177552398017663148279575173564143409031507353310454907310730014573007939853729706105147669952179268355293814795229264136974097682915667068392113347213193259022745735256412189736326741081012178478658016973096971410493698202640312265196882174935969705292837026677011848413375441129787588983604590661536695181619326846654545426163574054863838598068018349932085729035413105726784319146252162713858640320427613405925470414747908038437841225824008750623329779519147934817684511972236312088564456109754129421609699962152345434888858127232510837529438141620353171916676443274251155938568131187814836240549623936566838036483092973187453156684475190804522033197979305362926816301813272080041784830954080298657413104293364732482033778491411379456477042791002275040526835697968204447797134261550376111031980664625413476429838962971504634008011534634245867369881293275204237467729388432295231194987597267089867181631969010041115158464555987242319868668575511105209184474799075012987662873579439381253540434218731025548818011847499371796849649538561744726949830175869903741279272300032058896446301146836230427083744010621034837245502846181537723454739986271483825348906466548206948710651385674745912458788206076709913733617413150292505438833768975980777243515399515155453825226704273950360394999683777938905448901456992192753040155756070525221880283273615527239455970420090338994430906477381087071008302841609790351318322747953153566209781151045828229160987297956408515869304747772606829184436631694180899611010460681727486478006399364691809720694823891651436584558233735580069035918207806622702617503618127595225630535302743956612372547693597950960297923635054136959171956390674356106694072588253185720040770429439889014621659653134673636970663113923351340793597315416734760133219718238219994097130401348919681600525165814573082424323735034425680228277824940254641269935762905724202868088080069503663041199725466335351972344922376171358843494504909707792374042862865552687405484415165581736550464268064004682162935851691024356217593843183872263871103029313063101715724627859290843979332777815573350944239086315660758867190531021696067979497914432468926315778389495561620731943708895560333503170841214667863730256997363804836108103002780400344841030104573175245321172632015346771506227051151429570998231266655529168961898008789249346143134647524570733943675550261658644803902848691863257486065969911477833142256280589032632875186206946080885810365035487207213243426502414441841744966642788271697711733601388929891546178885842043437510570856497936695833257138818337841365537229682448770377216008876719637773015233323959219385890803133746505948762192234776045738831252146057829098969270793792950912583475554682064351382444644156833754613293653214890363620042015661724013384331512252793739524931571480614997918868661943769386290506924249586146839729312837172543612866737537917879568652821117910362842945358512116372789261325627848510275447570652442943733046711060880167114401022022168822686980064211147414201866091572913712152206752579436364581852375165061661353480262537704457902750541349727868191429654058553842263177328550142844597512911102185625344449730425147019882372367833608982624073058540181314553048290236453377613029971346652904116092375490554915231584403282424379015648874833690377826269892707547974035065316532491799236842799799159064148252885981765165315186396587012241879628481516471626182308366893654124944733819364787938549588920063082579217460389464702993164743322895689080299270842180938998950242445468211365462631332735009020918337685634164156227053557656199999305751228757102852619705880722378974955413856788604429015417661649116872574051279126893761178444375160204983159469084662989994928621801982030379557425996977201118881248465680719526521319465557700619818050277230229456096046422913346997463093441767971280834008226490604588340427077349190575011027041458691965922285853518975676538663666751720927450301013082596847061472833759291638267142117218708047949756529698813515471166610588527174769394821889366772089417511759396252663984735026767602896086054437830735022931274893105170992010182635904124332618993414267776252320044060724065772675281021058317726752794185838634027590227202296750069442374769193151766215065955366427264372581452858045424410911519468800225094432813759137412142359018149856095337100070430948291401739436735655946221106883312147535932786027667852105563081117991831309474748439145029851026250001670724718685652019658549798147198374939280103359006783511615477642623117169758824984135406822624983531146450076838096002077630872918351335561067047693999349864917024250183805600575763716895738743455753594860617084383675917047375318765982214506588557796658477019327781070817863842811909722626334102749792095623296613330953650141804664253475509172487610420647896178634337799517215048688032563570217363726845524953824863795820255079475530845155157129430767515986384697158087776456561398978459722803006815811735268199327206109771580487781005528959865678833869119694919165180171797861032674675399062078505780109733252092150784477732665293842532384823429562471331183387539861991704892111727039396242889572483177720492339830169807137459063961286769047880049295335329381598301475609436889002231596684970779420532956215067315078239804660977931330871273210032626303382429383371567184101552314145887272395688749303767210448618088697165678995134147617626545556441321162382783388077990154177087565169868918070342426010106524779376481449218155391873170033820513520834386641503562571296544430553752995012116239400913113105693323481823453525145249503536045599467538050328245386916304203342628400546056314808373097633157821667852395750787179898737842481581624104039253419787211061739731283329756821681716226670279714158418027624464445431303922985861047554369323530013403840910308015147934329797672378641927507138608246051918633238736480434782449973484876249170122633207463456223919641408180478320460419483941571680647371649847571608927694594345667639854085698441144375638539089441012856528431407784687419413777934036157636733355154829421025784495448181652373526921500691721474475329977872439012668644820162859126573284752779531060844328252199761178826633571430881588172063808497758602644247704506214030959728569155729875888591435623959958527422435344798319781981672086836658383475128469882718868870840782720066893774970753932046819497046986321850767371594432357976708523759706740889301030328640951591997114496642374587421109982738996825822896220366659902904385514186016504264307135785866872383027857244521632864935445763940629531764469300755894266595620225432764492050644459420660239686337702518558774453610327814180256858395649087994405372581465971487261332129297609030872280844405061265447137472748908031880307649055971151137829545494744963126320965931992653797056997634969678242996992721293884760944351007400331637828299603068640854477484841511372507288680343851271754556800034027384244985010465269042451259138542931541073997755894751037975834899503537260612213515431842067359379666820660478631667415158921840305759845252494346681439470440472058471515896033318612716710011362750952303534166727310560278170527581453779224148122785582610988778782479275389521828034043328814325519796810191707651991623141949982723581850328307489981144920145124419421101705017878563739797252848219791951944539442352122498313042004984780631428854332977071247132815871481365946135655612015585324742164847695997515341315271447520821430705255275666142268443935022430515493598201031820430689860819501100362997485352282637320728316279740813273928135551529426515682210780200960463539340489817407207529115353563878211444855138961117882396402724721953422024131190085346048387754488245607034859021069255715939062151982169784543683735355782473246686513168967459802274525606435454835189968277341207190036493661256808209043851444235912181806836245274065271969264181998247387017134437801174582592820419532860925107957835740639469354371406113019555306828037572663619303411336145692726888911404889749423005086272309434700394663861566036913846323505462083050573805947433048159875284166523616479076445132899387956913616020230948014039595774012951607027945690988903783210761584208018849426948413351908177534816777394595698472017630398220858401457818054595804705667188200186962193239585586170326361749179477972854863356611499048671650931307139340241589940151234295798906460454919278104015476837129135121164684834360407513505419913417656963468945627342053061094007871076412552445627558497201393518418915330415274444490435339008896996737227535447536674713330566849115809623147696213405659088385391881759657064441510821069161406041511956947058559409836370151291478743155737951497050470683241363396419563532512529795566719962120028696779066190892278087658539102034020930293985000296890659347996885678734845103937416093265288295014074657611592080919210401351398782801364969152202253504190260024341119844153029059738878440346370937138418430325317026049807687580709476230050955383874295735126242864809380254139673651665832426370372816808952412486583002816149523261090905869640138269515209697812823712212178011875055202528539411354367366579109716617370495861293381374263153218032678189706058662956350175763938894077898310609966184401251798973441892375296501075378003120672768942202200979744268673265019228159457041597526721828541456195083362647736017349542520072887808021405937844952859274916163165048065412628505677016393377960064136215197439481682993805839966162399568832186234722398189143501573767797352939012142976075059054259253755415561384701519983867687770612471633327198113710042070377606657560367462254382750938706197512404350842129763762194352821660442388579329368740204246295491432630185382517790296447792118699796659717290527795534414303918433282949242420076729160642638406892647477339235724096407197081992950723996673832006143679841935345181081264594570765903619763052955404501480023169891639352772994879608509766947653650852331454349270049456098887958440651404015902846294245788973829759986220746106009732872227183867110824466304793052627182083944618181588402712944826903281629261003652536302614489325462919841929744746023235936545647402615047372431348091748258880309287824599951701142455853211540984087997518370704925744220230090814930740143149688741557420859636074572015688448893025595424483484043919046374260856472428701248628399878245858528259427222263457730965324458381115990252902440434848511124848491952931633265583734868958078677738506712852523083542338436467390587028604238598582571899365507117642043244488132292266448673841523475088768876454997419736911300067339815842166659070789628550430193691637254560792822550218883504039390756459598401881249959546614394741927309594361493180918781229349040468913404322003854174013383634772798455423593154253549420845817623510465154711036097757340234781753891851972525426816583731859891561009143075742524224295838921755342087257337508884618402972009112440702422411782586621125187605561877545456456884574509584135842450652409178413224036696303109351259551968655537620159245708498760702528704324901657893710712342580937812813586055671026526944795061571095368011475506351262365284499065153622909599708577588227636745933308778700957100847602812480902672119722685733864217021205309001580727772887911743554629218539166447892914144242029841168439005765805561684476501121508697483513856533140854754219170034831930666943663811499346893069254210812751591846604404343874796926074742473623441598839046460888927141907043166615838308989948385493613858352755968322108960682845532094174689163026414130033329389424851409036250782977356240345041250929643558959656449677366553157177670378904275599889965262574266325382341731578691712657322832808022929507782834878904664648523384790197704497528832956277612748798662287306798662316793230288633668904197842269518103710544333779659437715138938853637808187503584025616570276026948743122979254186969525743171297280140110684742831199166321541981447927149276545653136943662035374608440975310441195489485246858562335252418379432524269572037574192034067171340374648862405810766075706914542706060110874019364494090848406259595098482088589586383518507530788753388599069942094015910788563169080335590977447932694538951978519762106828601430013916319601050772396953179505796319682755181209891998559057822625124396377720125210142680246721874034822372245744799081749356649369248602178512009491451382419330353626244820923797876963587413841387016270886502269764422478262657425197053904278458670472626941819768011468555816969430199435681022535899357355653793479511930173729531830118812196739183080737576688036712651689078836443110363179719300197460577523505995864494555033813518952739515088593512941695835378305096127585172918535883992905915237985768322858523070083226391492775622079204450098248087247171670341318672744749356101915055389831855444949369341177274403683676184086967291947621842804941981789975136152057571522742867120504285953976393887790197467706118248720544880824540981546002970223542562624283228111312449982644622891807923939359150329583113315063943395505039625426519003354483521877213704211092750046405602693315411908822094194723547859679529772941485227435480033444170877058466551448248582848797509018579112754325713925220463726452170689743523089018815945761711652681669450322261504299670299719829959349428930324212986164128557347554201355091327583865208013755655140182639750222553608519757901274471872361673723159326862161849074746399437070787917711256748279527230708302121124858813272437000740659614428381076925358432164955306329123887770182878889191610762174400897849518527581198334205210743417383053260141635920988571218345627592135179992418605890596782110894374978544858794643468240468999396459182243909527036536906823653290559927183055223492771409526730816185480956775996896405014391664491152532746937079614433667922484820493788012890768331326747921830234253957621943282585671723742708446301186798266064255953400347403144565840314743684445499075125238918024511455313493603764723794753892945897454282130223800872797029444673739068223613427724813102471289182393276970575604901707187012953347989170754269994906485927938811423958636676870391262577140626824033882498672411858505339938105885376455786277557198597184198749932564807358792549422631894631897025535964941028332110325147314066468120540552594748091780049537819896425299614315172915979926905606534976885372908586898291055243453736710668535072524116191483496986820130089191606449611012049037064894776430549573960530848147232407897778388036280570816562954494239724715553647969682776320504449331727402804952661806833928089805796387047282110737642824302484775059882520319841963940829098029949432199213836705508238038763925950677953211454003847046022089222779151978632309091172526368769943725173410530079730171249324659647986590497955175658551386667524262595573616332707793479499968282040787310469435192202117831528624237625070850225661345322603873756613551934373981238200274616644828015971715775564016541609198068068179479059661745508977723974204364742580694676677344949859360577660394475634623893731097474733581551213714075856204631227294505855717081773417268527323422730648996925852102584357344915350139173547642789371621165548294583423646607313797721063003608191273028614691348962602310166956862491010648791534456473207540924023519308615465792262549582599092381948602086152198515499859354155358962411897495939222352975373005059957096819533474634907748666309164908487677136569971418411142671052185004264545213147941525543659829204084321787128118097655239695045014293245221339449094153195816064083694807420403125899468956746830923458800512482576813510246275062472585843724272989196654108382360487347971902500538238295843144705727923243048871535794307109563467805612352630807135014620566848602692158854307868894400931668111216016337962807958241816209065009440495941922245278630429107479975831685913754840687214661396817945599121622159275373509590529152414512918179964160559122613324627694102400816588367734749151961733460273519289640258944073045907064785945184654077638187251319013585195761848386355421835923774285196948287689278138463061200954475950621915738345689236111222993905733455718929307068338313630341719357002156628184078023524319944334773961901490556954714595736103661670036464987709463848924150105578086265929285653569728031059141860586903549049378511678426681406570581175269034094279715616308657002982722208998842764604927369148447629965695508256166632143113666075212234006072152939134100608097495494493282073570222041424820933329677744725637300523568194104236530861960810782719431894029278884060762358143784097846124955695983487933168797298773731738041445121601412260078776743326028055164853481108003683477956022384506342537910794828998184470513129196544796296583717191036301986024042249118177014903089311409107412102931083758261585427302725286425801705806442119615603573735750085819171915860735273685519601801204454357256827060658035251782118785924203835008567367021289115526040689135256237627661495777556611451435747812004252806881434760682110572911715179420625259379343712942565078388849667845069366482687066364026180172284406222960430703922410182126885796584782804085080292372668655554110156250112580638709528697452193671799437876930258387861709662177128239782066627237426617763883937964699830296076715248473398023358235829746010998593745403598382581405269446104464493095123997692063932053955732009658857329609314991773652628113945741987487178243385192935892933792417956082046759002379838220938405454812916500632090580131664705203975966297116231834317477276919784121077929742394551271760123294954548025908485958250608986939996689427581165333780209251616751996448696815036333560382663723828962818211529519643327967859501302868001505214551169856681665452939552907163002377106631269859210561060617837192854467886194832891842107344409208627131333721465664914022699959107110146098491440953675047230712093570197538701486567479721481526101897524115252560410572350286568102715916483430715288121633102212198807132509769795733783340713027611606341188768313510784002757029548282109776009938657682326745640729703687975522854745987697030659695170412058801202079215970748891591112665692370763930234782527402065901381881037006672106818131128938739263928757482583661837804037012818166388218475732474377093625065036442648112483842730257593784051672971675670797456971365822795721937657858934855122952776774870195014336979167787689020362375771801811860009902539249555406539645136762726194496270006377221968254670349059522398323880407125134837698010553415301859495877657538767440093220794098693073865644037259140462152301570811871793128955407851876018451480842274939855634808116255321630990253616107056125090992997242901050182466009959766210853199577562688208375981374866688532596469738572633612154205841647125998118829923483160571200740481234212769643325426439952149647109220868435979601532094234067231766243710133065208782289741252990869736294538403849038575247067546094165357186369226631518753666891352626346016812799185302738777882740949286347822040358091991905450393267863879888834985467480355509578566925226416756260500673676534854308246317023500202070963269634233860584741134236416809798238469271776976941691634571023389640188882960876765193949789315510177437183505432997296782392140356076955933199394267489369924669897797860265623805121578501620621216084559335587547834864559570329629821657650525297547643575750895328581199426530429877914560129089794550756589454098458051767055970733607948011089879645172128870332784296311998097649716109315536428462809926843689703173273207753452108499487182889739882839360981543400194028308039167860818070185810129021690888896552256350453723608658198283225070668314814215453261460889791291702490185579567802556106989060914583931110681145368925256285536320181725744382955675347992224481955808287752922173035459494230111757197555324265625284244573096306005738820011935631471131085657272454441001550713996669757042027628340483555534661576468263749323068705269768143521359491022903986488831284188847145685163430086943915482925182346053017769650137798350496434681365650564016470205332820335408342843145516887299672242710784646244406381881158984019091203181112516857357456204951780606922013351953089457024530272055496594974366796974264093913903464625837124309366054897501670044224808155759362151326095304508699608430897362757531158577343731769199058181006418657636071573454120253773429291150507737967217264638561838865985743303181202473793811293132422570194446788899081713597034595155072154361801790367390357695274648334203927454377663110439102704729157056200047586955315270360516459716635494535275443301505467117554731724124538246120133224833547641024589619962316270010057651662396006241306591826743525800452412184954879918926361160450347866690423492564976461877565907527979950702444291597373480854506874294548459698914849017989076505690431425480932429779045160614456347518050643375095017747524907170814441330945429775575394699108967134722427677458701700993267177333770632135668809442758935341625891373382807317293490887627629506314355349416702008179885803837290733304783598277621518672863745890077892814491434839192234738747433152144438610719875137743769676632909564132200278907672005385127198627223756779693204460463709728670490144767522142836395434962211974327477969219788933739447016031041809259732009213388168909736454406163831152275178205020537804212045828550484584694744224453785547707702341528763912173406703536564348236472366411929510247628857809566230091641835373956759891819060676046388886821815430557062064740078363226458604400839914582222398891762390082415704476282665821574582434815934255632895126129785322636712130071068964124179477840649143964121595193089243719969901182175617483120657002634067185503102035636722309417751849321119735785512468373024480015256550568942146489562600010740519046680861338924429632811447942475876315830475237492634244328271827963544781161018479690896743427221190322711489487412769411250733466510199143680709711576669558395128909071479880375156948276527360182562340690044813899711048584414888227133901663791551306742759581911706113390414389605049808402663224667535503567468461478563253925098982764544313677511056705011059408857705978248397761755239372612476386838390246926219676899448770009881494161507925132510267297564420740929878320933371969823727762697563564915802174809596642301639004495264217302063556714041829507605195907704605944103901919182364196498529353919440284034684401586544723067411206861310624320297308068362606236606637129355350697218752681008459063335524238992156521003598480637791706348037516369453187500470681692391040243503058946909271965784597750501915751387130625403539012447822686135678715168065907206526071501396186279599482262757231097250714387038420339875098065489644791899434350290044134052007453326443363155167897639564180946610975506846982581818518119239252672856910037554231345053543312196187433514929696260314095946144801612910648641298340207223815746108194294000095464034455502341178510151744605152874212175899504972315835938404299131390573206350735753053234551354672946866927640416467731854879334408811807393657745062864647745263029532315665317459969553412491474145173496881899935374542276087601783402040679547390142532693796028032387472948324179387674873534689307050216832737186141930055114809944341995121012435906749953523167479333058505082665245422365468000511680770754023769115543199326738681875021571457494007413851333688479585439549777415528639102811519429977962478630586709044168882924044486477110297368756671485704914249227972265307532979793889229653057769683502380842701192715914280583416205368214889921710371180364940301905579493136019371617254270052511378465892574756021474866011606818784262114124634395632142422547644181739209880737432864527016175809413334655666662265662776382771956338140438264879505346169440209123285401060290928910667628433142218360408081004932131902522510135576518810271228598399348279315304800694360670448941647793400171777697406552964561114145638106559252331753926235955286594487106327818653359859114629038261850335785127032468400315913285967978294762413226391565431214419797288686857815957228809314119239536777596009607221020901572402224023588173472954401963697106009520506401347393825146594601128660688847461853534865258195723987535816350543696239970690558978996371792267830931868701148216329949902812725421113504942368106968423778619738519027614502763825034985672755065716560884984321813147439942905803987768986256630340565421448148686943212731453383468114348743838332450961151283902329710963986132175680347828151946453999924579939516032815680512303001191749997742608024987674021144911119785673351691721312148121670037077580022205853665960583452507351221817880825987038480012862689977296747653013779767754449987512603945772507992403183398117898396833910911617134907047633998670743633948553023221805223760880985001580058874757318920346826337662898927975146951581426764039823633125169038722655121663298109435429518437798865034518761205350705443232913293217722323031466201109783150595437461164780757879726802171502138130353292290953271635267997819691376876352443703448266935802216585296101771139933838115559423375589904125270103417496026601327289816018597250721043127649064279764437284515499541817340645525102528902728905029440984034793353220895058032662518509758963934922261365465701366587675866594007450172311528002623881261398328740387467277003571970322691584300856676080966832258525446786740581099251533338768915643935961828252865222335023195778853078198619355808046371972571916836502872198996787416900928671486335640631002398211700124814047078591309505143941136113541927541423438833858362016968638202526879398725909465000534352004010528622851288306041811672918636735815930482647679485670765962693467767146352179718170998356782775551096615478150707139311677308707508674797808027607520692337849662702616913559480464796816277559724429876895311294686657058443204498780710779005707589189363557383254545477730878687821417480273843374392301166376324590702252880339173537976188466990841968304442713694947249163411227248096221395411513657635594475855528163111231035250618516837035585602449772046171809517289878796205431775528720169933141338904505625267636477389730424880349684791313687326118353237422813977458020023337476272510275765390379484496898663125822993345424189329460367644777630622353497754766326143309195080514008053931822926765542237209413555915947182923483452425851181721101635281705209874830619269932962044784619625448630662780097586007221357549351880815029006344864424577847194783974608579234471088517348417996853932482465857553365150293333708915692425429760051215241103815573392065933432362972283884908232399807394603679047391819654491979143905800852668123800880625657312434133639824523956180856003367213068584116202424949144624621579643333048862587435058422287678071403095088972612517130170775550083437056362454269150130854271441444444312259938161730833773800459655092272642426937948154683047047785953735744066795973998330895396998169408486176485663292951961741690053828199769946040117709493498204684836811637335374947677288732401685140299173570042048957868406716128393550681711493984848566457026810642813204489618628561169131268453158764339681095393880655491603866545162955178584970209425825508069085940003939214001569229675027185843787007089674013591401829039729387275008659479275066359641230096838550896583946212616882091110920806591111167635542877993140158883353581440536780749744601797868637428504579541700333398569007517880286737750112436271880512501532312426202122231488242369665794591862506217650713339698033756707099719509676081723833614977186622966572952320090336294420178119627747182388628240441663300507597874272746986729450040842708140528244019865264025312995306983972967090693624131576825938025632891451894479115649303532692458601634179911688385583768704337215743545698978559685799694479064695351020078840697598785267009032186243421862098217702845009416169248003982155307802051899970883015065410205805983251148395518536900206344307472466922917397686714399128453195240800278919602877518033415310655778318069851121435214985314140987702697066900179432676274397943710812065387193169071336969708773015204525166796866451218447719523246340407665478596361879226193928469360676148674934644556301176131776085885489808151066946570418958783238267112954098580667158955260660099027129102627477222122960617350177561477681783719074063224982372479188861523415998249815186065617747169116199692873824078503692010653464563723554985546664730353888588451589211072752786769255425050779224099493595932591753402005643430591068302136332991659711730965917933423485780687731071451352914668835234810484492912078931063431336936770076467889348242539798964349227874669772788498303550909210044001120130751680000606323045631581055058123117021762919821781531500703086200748010479031545285919954705820890985763743035942542910102766299637023547012720728628162212380814103757376862409150688364148020257193132642710855939133896793075864994650914592655367146947352995823668589924791656921727297268435127660022648953612660643230152801193563629976171458983156292592677760515215745650015857918886380611908179977367181630165251352247986179656434454436638132588876699704428931539497370707650819006915129447054074086460424207995701338951121279572915389153733553507602792752342366687565688744603672027908633245451030537364780310251429607839942009082739461562368106916012623437338752309877886435305405016261335784770662810510385239355170646449230951133654141351665517970841625447308332944790551860396405662373760846875178897157591863324821519129176919144051279786785187526327296350395744634835396839593724752883165083499753044658384816556258786797034086180638484600349993410868813450130407350679135977129786109442807228098747719506773462536491862451268661868667822436364112736094850104284730460966675320364538170118958985555614333538359432869965681199465627092197062086997159913278857626496068469752148453626536287296451241177186040892049250358829740874693868965716183622332909569323152907170491010578780295678556762457097022578933202436241467787068206567911530352098986064578588690756095847760856643612384793883205453981139736112905014370392709528042272919636845614320915455410671211774885388575001745556961519094829232209320962418440343207988293778951192940489011116727522458012144158190834395455734270426123980520272916981496975524067812542988005939420294153282522295544103452425999266653092310072167041503532175626915708957055749926691754835191249675664056826843124610510320800795100142314253969143636632207597478500908098289882029593859382338208700796109778280681570609180034691262748793005043978409949507589754146607699088433768904936534046881606121563614889131852872328136999586136752070078624428989641358229331092511872978123975307248527361929277032888474720808139359838702149706846647609850676705040160927414501409559418306239576104744526154476408090004112665002736921549463168701050837822382732015340741633442987841365766056801969360106210965752503829814675831088780381405483642201739027377523421115987625446853076925958043063293319312013008629556769777962265523295817967819595702708632210013398129157611897454370038964611178905422689166029702048882842642426400854580571904565680407615949525465186054720809926614258953975906715053336668431842833529572710765400215528933120319536500757285676584147858494230058221292170237335874348911942951397603340767720544515108133735385681270367726728105168670261560527911613600195032019416398086024967964341846286716361332311111357051223219371514844818093019569950453193145541578538587687171516693493037205101556483684948559248455326259266300131750970469110692855800856071256267833171734502584208195663684456175176698144750357980726972605129690036973333703633311166311644535862990404105925857392522797718204177022253195625618602696622691562203092352898278837042248576825960856245567822077703648935919338712166681043225203925209628093889313273911604265691909390801545341149301328224412825090744509133485310224018514392218673956442628518451911699170853061711299866582076736227446175499033420698857928044994736785892748416204737699298092810877937104146753951151091658248742327310142754941802028846403404621336789267336638379749466158354293110996216732330475449943302801109731103349400912287364592821366031794695258785053783396624674377342581162409338680044494927846436421709349812615142011807755151526887923653559503012443995768288235362685983112320846511893335741883721201306441321169928738490484968197701163047058250336378549460917011161948917563384844336580932613230545975428396788922503680604107009639050849149110318601028107004263159911454327986934197444980529163802665895524892717231896669726903404184665214033338698616847597374147669702253666099638180223510932512047862780266030580752952089005230492725885375997383072480579236849891229871275770179931858254869135375871671168857845524820118122796265812347671122995502568321767231292270159407364125356088989968664674541805963466640241915933921231215610329344276593400116725396261946803027503348845198431900217207931755079056223785217160355117810216518260369326480349748779652879714037231762446398656394050077614560861042850681057040216279230909081607244613700087809642168660376002994677679798369356259410521694771555580692262240947060781317934821305283188645783270633352927588286161199551814153401122680514777913057126388029332417050228935145061618404836214538237645004346174483622634722719261136961017327810405713443890848340063319127709089252806483574030250181320854541409430029449352654937893846689229708282811793531573681193075625688087375433025237520675571963949145003885677141052340980330948601297985384448606748094472714357998730779438301084971113673477139680849187256600944423006637145392366249107370010715353812049949314307703727679653174011672012354237428634786550096635026347132069375396015882630656273836066703488177551461858784662093513469102805895199529676002842330618265460081193331588786028962034829328256773644590442554282125869229218496158284543643937511301660312145833502718157748312445221358405977435853059395415474930487068162464188633870786314249609546758029256766590941962014950284237779010093905935659640997149201079025790707539967170207250465658856554310297114129282655160557877439726721594904628520403016703774729324655814501147455863782489025693660181181453970957734624657708987247903488924130949201762544023961517355639245269037836100427592434650906486633449761939951048506070400541209969833898384400806486868871672477727766743128636338382870862750362647349599854079571267049695383521852542491444104858955664393958874676728674319642778403008798153535073145124135472802192358752903414000559846604815522991967561756427907348154669152165105326537283229964934151193941890141037251516063471890329541793491217772600460117226249553993939549773947408791112305412819042991647808493389835992819224164297938756407728267864565634327654213815310313127012483316823726638257257916338328708960253607097364863327815518488624924984755496261404176341490595092754216189943860128482841739578637388864793181261496685437825894475114864554313838770583576935381680797433793121534199720143281455612396450783902604489082862125234123132432323546717120122531663820703967397678385364203056549346010211664577761370365594956603066240626290845777593772726302415758859043967823311122740606256777659233156665854688854271789161109993162360514945756846848206580227968726399978013197099358504080673278719185074556826945218578065598061777582436386657006472312387418777014082067128084757009360760597755003833009545728684249404213954388748820525722275938839566454670074256139759628137147112165178252932927612707749676572407751412839070164390003025848911589883409569155293301186080665941126582016858941737339413004247617480175590137072366237459273187847218207515789953944668009565370881922604857722566170108642847672606276717862142813999589970229756214056824676870016250095228167980140157594574565733469099618832485910105809931085256877795002969272785832152594003890147428489433408839541969611247961208267428631342002734844502872377342766745285922692243296117798652334129052574081837632006412901761387551802141544110390443690354100559588389256241206418558630602045413499101957080663098546507373031485236576720341377706380485249099071976803086222011452496572417950965490469099218333331650062649942891044162190372742333234130712596681647741184654996993040812034746023917848981417437785888682802938710751394700785066168705211212150612545975626599184064570142823849738671958619928423349730140244731958930250784770624924542166213404368748655590917538003073674723762206807620627948846965336114321357540656418363575723933915415171315904537479391586745457225021881726542999882468074872786923997456656218310391455421520437259330379057954983767804421176860550089525134095526829036476348805418653618882716132422566554893075185514509720304020077994685339115672714991002965677624665536591418773294866289480582821380541254227458770050474543614310745000690713892065511638996849458465179021175961586254696418834165374408520861736023516615028820686728016230307442986938058989756359797865224793495532370851232753073924995926507453972001861692193265666982018929383032208640778076756319172860836831297938592076137745530807577142316220285680660334463911605957335052950671498980281885710746170232425389565403987906793822954321971490235183210045706120552998772894876014916112881611629145031980353435756574284906666828123257935213429245071351726958578598271026755385795269781547129726941641432733077213802618923524738106343286931665369372513922721358352725242456462572754543252403452897333651628200624587932679367430198391944745873030166825574216870779521499963650138309125876008217125666132909213007283337862222721536964110136610615307474995743749417886561258642317041721808636227778434821025629093034052634972855076519478201603215232143038071303465536983819626510675418781036733213607866853888212500667370775858713888863300554912505289064545289500899401962787907993320602342719641103321647391341938127933926215810900750758939847218688514733726518793394991078267440165840061678127060251226297439556905089296800502722879205751356653364210019627063522619363126235395332263144514821959279218108629224513530127765588536615734736080262510004042248580520205427931184448392876652983276697006416807461196520399753624562815333637068668089848562958016001490321908232061831493674328625545281220442995725081602387694288154298383837604102567613934214543175298189224432448493652066346824170540146760656685556864509645463941377372222396236860225311752204956778576880495777134119404471902111347813349294217576970132804721616241365868203510763836981327195150202382130678547575504705766203244666577715501808151112773160285903402489530993263473707303099419775011033383168306147108230913677728951920128893923158548528732073347028675203729649367736861214019276498485482398844488438211475811019254085455937988980747506447232828655232408927599902728421420409357152307730880096971998419564080985216128933643655963742536959031201688182418306178233385868926297729083079883369440706838991969959437309007196513046439712878453525202886608232897008222807685612743055176905449598373711952135298152435651810373912806834425480889221261050384453511083519093475800199948980312862306068092085216164659577068128730414202123020078576014220713910451322227620715434052455297213683224145005391142946193869959934794959012831893777009749146932168870008965449805397539669527154373216262154926918059955758144555990952258015641906637274885299730561142095142679258562597674560248091329655801148466486658777035562600003512837842223441613713731740598156943691013347895827444333307072501853886802200366890834884193467123039935955316516573017476381065547275905391048059483475436601592852514155970166565601904287301393373885515330294033868116122567923847644658122926392593147991396807750010307442646638829438793627377619786791454811924903223903039030225549765137077215276999156491584840438576225083146828693440236783247567478466405702780441656223949439604887295602175095301651803723474829891764739073486588220604783020227120769083791565245559350334880158327221110574105030914468994576405130405417613872394343611823244334068088249913428317580391593718789919399225997918531218998636645878542768293077181343814202909543543031533203323140712825643152988605480091004479773762881854594750379300706199837252949353006241707173134183282424711665485553728700974976300195651624116464980749338606616279842273810791493678211608754847869665763934600987175182358857842793309942967793639154618717440118262104802070375580313377369089964496890412417445417419578184395244492910107044912185638725592706067729507909655940274238290062449888971384548633422104752001785097501773401318262864332173893259174019150227251123860658010353551850676850942511614987666760051792580366129233855830235162096865041027192439525427859148176013777090089908011065766682833829655159125243011109640519767509465567844458634133631777155981904206712595708128392052881994400045436507602346851621249096768487653070589658100341384604545835795208501218631739742948558372100477516460709593849752212358634224890864744009997834889541968040035639809868892057652968716522570506049971252527392989134683104659581853265499109419603905171435035057257614163822413136713685517645716780906630924200418427336642940090479369092742365640448677946131537747447559239955472368496004531669558710184173825674840816724949622058198507542142606888933063027451892642036209655725728558190096603636895858324415785399495366737545567432405047059348224590064895333787708188078011957068537457284156987712978258341692080143441864157847124194194910568236814984795061241676572023980614977977224140235243046645552190147407876676588859034051324037172639431366599492820347696657715928803576185596825136357849844533241527439856841140863634973671260022871693098376364725938571705784357060118633774736291691475202325499140320416218420151284568796105061850074490112087844017413909959510509940940231299803563120005181118610861973566275786015317176478391124298716360234556993696191945299475663702341016216985028689852376599709342056007217976100280174058107536556431757999448256265725839471168458695325223853174396077531835048610322316211262723800309465093804532943958909445127989543753312804339125146676058866722890452303850876682135650122240278594839626074059701090305263199610630279258405062864788554905843390883362729998724119822814821893345718283031627222571463414438611519559780057988308329710747341325620647373169325394118548155924727363119022175638058925446343267596535866999770596739571457452935719784260536863865797113198171625010230800587098759276834727434764563097173100097989226420738378889513691670577045245748057238253061848265334592803472338772503726632849425433252138280297777782511359678599492548659173876546766448892790879864489233756307642323430263269668518962119787741332622464514035425993009622140969267796697377795888099681618798120248333826975581626680351878840010017547315788878113882473365049093652845130507358903863359933030280787046736218122104013725414712154754693226660440210466790817187571219855151239449169448780088673596086855482735643279644633795411046601666814525187923568797863030184572321349522752695225446469249618618302092741552579859048507424354597603953926303908967155363012900862195666550252067472334567347619754029227620441116672261500079543639110111307920456686883866682963577757443078489851366143218602601818645584615540178044359458510994394859618611945578840802277439357177406683806234489935315149448119614512434334335181950861010700277621266881894714062603929721307076868588033687619153248319238532494155747930297177761983553960273731027908553131926003035122417487752529544772351677491159182716980276714659146205211184595674114426775630256318633240593219538949717391780617154489963440736094230962336197439640995604948230946481698025463228044702869806032122184293371654843639758705200323959814334552805396472334107794612437067613543379956472972698786037745246018915829461168231145572537316792841691282094404647929621904867878743947858212243466182861280076043784269434462805940082838292709905180850425899333777602217622341731535606987115043482566917276497202768862463232031428751862797819768284271224791111403710803879413762873994702908105912935205558094187753069786826242068112665994256464744891513458991550694164627089765909642869770251123231767966346231158026425698847382246532569602112981981919792286458377601628462369838768133119553908984233321683769058103788979229181279277305264567154210075236192563584495790298931594914410497602062054045621883686462215029975560363431374376952357550449019491898375451729791162804351821094236640167414803105593255750205652937835122452841302545878198056176897181090045057867635650245320049835479487129307264936932021505422250023647710935871759973369795458047444313855274367676287877380185600508003590471622967403140834128932839834077679771232792630841071849229170451681624305141014597068225473718263832059925061713016599549147966523877450288442097966227177880935627868795065957329147256137284835840166906203297652312028397256852886545039609605386637293925393888033879182600579319195358109979471042024723489529241177471291711810878548604877782790183269799263631022639821408332329023872795654669573078520189215203888059270564974147572840455052866891318192014575080506215866568575096542160436686010299605580002480891490664578103958515768240043304241999541967885209069158254370856539110275058642801459725131388949407660388846793957938825427136648568925800653069765525296568810723186479481132811859713994086645206798164472648624550885234169605883687178849904097679162839799257479890722053654346785784278492737046698459421256787057388488939320219980575884604574937596695712816830890819846692041024341502805303853228254495347838382638967620024441599783016674477305883025965241398321669526066598178562279523070448428651174443690359243259755026235905916613190310725112575290106151145325543634229340451213019102221024041308449255899680152164881166936003984288825126388255780366389295043865924688285107920554170108305415583806613067202986955875229739849943668674040096046701251132612469694417477304860469840690297850156197316286665178529876190462975183955868082549440418900051031980083436600285567465144791276936064084621202997949018323791809833987408143731390161710127317208769098731129251489271098195936912200310466716272344708183157623354864517473340549488011294948869839702546575520971225937311393281503422262902130717522651885763882217263876217482722405665139384135141940831739997294103559996375806842730763330861960982111672016571193106312966645619005625600159087164407765555936066011271469756095497269461111818350137107362058837413232141193751265089771062233954396241956439667509976450211191307863133505842953308548610330991307602755411835139099764052415235538894256347758299061816294465825926553796139661946594213506510980760682428391094422595072234067868369535235427538954590862064887216284417338694540277532324354155574382193674943579995672302145597894935043463837170912607503076155087757426832627562925429076892074733150919439432196456046230836768699346451454001182923052901683345280121124132991656017097837249118850430370474449807771471300014810107547332869656552021845537155445723699153613003505182084397662927948913649177541810410943594918330646921246178761834431376039347196396782065382056371935166651940965983694457409370515502724400391751910554159155680199857220261071346291110588958014881094828633424900317772831479799590192285848548957775313709439507896825497900062638683851278301705915495153239617244518755783884802170424874486773227759236057294183702005519925129113878048673077329220687354744086423151522237594554689332663997046848879664761343702227253655804865734575825308392399047797564527501933719159672907293327303498103856507110032085188282446672343717958791709906013612844071759495373086141602140231056765430411978598292606165576705776824706064351325124783707949175637112864076882862179531138933269337030056486115788116951869883886634041145770202345874742011736224328261008240078200342554462765516262101629433629563458121585848169949586644632584159796377647121109082385393517007658467038619012443483970450321293582527281559809169605104156307599204270421961014295241786417070709635497150775418467430418477945149572041158094871249526468765394009025734231730630815685227985515547120402499243012260385295489814153237883157876813146051795697140916438135061122931607036331961739505918789038167604031377668917512611391890704962976809411406211729412005784888183813041384331144528031388495481997852449482758618902103536532013429135571863253421951159984077927684404793235616399021904144903288302049014838346962551790512501367078440593200234007970061738325202206904768050351203853314385611450775001475254236406415153043482805404276468004585295637372919203894820713775597737406930266136633620784795293957427820821990740959323087966233953302982639803851165404101525085283842192852830609652069606337122252301202888646504741380746283568287982375867454015717121876165920141739250078076275548565992396839608292635121396375986496656878545749301179830534374106015041798050875789520655190648822650618188506273991517007157068093834819306906824712653907321403821248239178323578219957314224614020894580775994187629548477685041803403234471663070091068436379704725662927489945040177985913620743203768165076585783233705445390055241085256680182228171891624986756514046359625800521413001126017840461998295987574486955008939873639124353015036147436900336280164128639972736175241809572901944317761130848134524892722420217217239198677566463499648602039353756482789572074164651448388413230581800263406007475525720280597904415443020860432724431587621479985094823406205965064988117654483643048241202810726224181158770033034285872773677094267737441734338128550103449556261902804487816249573472067218370875476741366732386191484397062195666429047141347027384540655315424738421078171265689156096231633648350228761295785568554518635799058391175434820922377279619203597638243109011200233130332049957673836859122953834335809145669470595761835704582139872571679611046051198233073215836822804486548283583414581527683966372517822161876006758330677402119814536481488334468023899538525442401757835061655242469008327584970736489121411220483816949015881889008335032415279530006550032337387462038517798256185959474624043169764915579650367690881039305855102882927965565691886841805966220059332625145382248702286140880653936169652605680103813477743094946375704242446830095498728661850517596665473787885178548659359371547337739107635619321368882327267852909721597641028299303766931456995895866428718576818382526838239980030757412885474521544224859167231635978497321651887732969969495070968001639887875772346530161965317091527126131736356638539082693703737212664751878116783632446475173252704309993496502532289341568260795893262681917250989177703791306216899302278852411439256840451301905378730307233598057528660621181879722616590049739850290936428833668548892972025263965130104138279374168261931261934682747733862912216858462656187656424500622551062419877834961929450072798411407913408641509747051287001226838263679857464157992869337526873206603424985269960081176456196758460178147220035086724251958222178403759905459637920114914883719821077028281542966917924234911872956034971682850955056476333512399741638348742928373290890593992650642941407351951020998092046136858771946485487156245289155545914899524765548459591653322540339037215654739571058309838897340625190165791367064300422529680499846785362319482002027147813944546736994151877048850971074412287198526360228350670466853967654182503784955602596070076993486315682202716793376662122617218951122162420391136006769316862652697973063222185985078161945196751034356448369973103751086872506457699148501016325545454580542001470964460751022587913060136801031690662557081407885530306550823863107914515544119761035033964988018468729578954166125408374042701228895113455981866546210977173257191245773800128723721323979300105385632356685399100619249354383402023930357344483298892374425477053626918722947280899379442617434188381454714967632747080626366746581942684323977931038155839520779053279926938352299643475022567269451557750502893905315027637934714702561715086617321908434461442290375398419710258446922266287356332291463945426976207814563508599242902072210527332000219190043471841726323888173205630793749780615845694373426390772085028563766333277988824937000228910291297706091148640649153189747500424528254786033640170288820198601949982527487888260926693777832025460267977142542511528519415119841166638091296870110007953254353655160849344625331651883684958070523226715970458989093217793947130590975350402027242835341689327526810690029078355823323879247704441759267169508933771084476427894877769606827035129821215511636822980560070161699740854458137477220389294278794299642037925347744330704524141228809050149561896147295901065638381710477646034566301503900606450824807864572298880732648536489346649777554359593214997387143024922615311018101140025575717634813922486322928221187996570927517915916116941268606930087269060181189840838628071892864532613412705872713335956979273948180619725372374377862957877562796909367272822838099262145806176153226844994076872930195309042412012403151751329519252000860134674591171853932118408946218274364941287997622343932145075232872821696527709899224401289197249719305251402915607013035045733975406161465263847425544235165436789065115700907059233605758007985437884102857509149578188534477621176280878445562548710067023145452407903750604988712769538748630376207785433207816616370860529254580251819574434085479043986176422754853900031024415042669722806920497440157076366687727706666667657591145106590264272889588662578224306258660427812449879911846700544355345243147253528999579480942702691008105294684757567819078433295138833088326361650876102409510411446637695545543899186115141377723764770786664417197782911780996790635214122614294017707881249695578910639116054520732983184704219606022760382880852047385336176363879511650303373101019783761283325002453650628684379892899741797733693595024543911798603290658516284340456566126656517229324496344456234887942637382374895926744800540299646712313443846436919279384692327926970088466460998601790159896671006115711414011609423574231379192126537155909581810094623796840546849239376278023757177249800334144775077437915566562803905506248736756542034751981630111072925956854724881780198028582422626051611314119376922319651672834159032950460009994540377583980160271879253515546329363885088348550202309568924097901751497938534119931858279297793168887942351265395409339038585346433585348509603750732184737242749099848284714687553838928276681112441290204797974919058438990571494390500135842615744774223606914054144130423101507159963021367490454365187551443531742886596093363139053731824448148110347878367873369052664542336787551700096318926392930926707424596964324229158254939427259935031908403267191024727189906081845431496853599484773821308005009108321019938942024259827452554729530585868495944197141806304208892415014783143483977504980280876033845655328073360805291097871020004497909762007747887213275507300320317668631552901268497885196476756052497915923220963518054122414669722989245839599956446754967249730817083949510638482812780717392737361252312726893746377615625007807206414151098355159022362719587413348101216319898671122878605800665259041408666700643530768329226393702044192979372549455979831465674615238648491523066129704073712805915580223146191484150024031431255513792470422700168361377454717383376323968301060666738150097968646160341476314848481502147723390205394261284499765793095783972829492920583581974240261769951313051615486029755248767020340762260313650808106724434644968499569500181068644851719328143441545270958087073950912023368039518516152106345761656171969541018328132455689283643667182989133915808076242542961065304384799639943303194577985032249996177182115698784426629650837484963871077016861979249974296995130549960906567558506304321989074582451863652834351659154798823889877472319159558600595315400433132878686009518717473894744058990228233242908889551073065981328781289360576232868891447808710747453596785159537672838825253780816784711356091041399056019927577983130604290844869800845917260909029131340669053723739053841234017493061686353832756801661952531773621503417824028849254542554841860954659169107337083343995302189857601232510639724756476979947776562541908002968491261699871461372208755255823712271681211319945658019540076559859516285748143351059617157459309769805261056768878849377555897517396643623806338320727512037515174889574478798760721077341112984544179008503436336809973776802219266870431069081878587232709509931750238730966815628445867568019431179397679141670974319969100540574918068559026207817673066737477639835613974742843714171058729268588333022564282787479291112959009885221870736313496821315542653491321346351163410256821433469999545387973130473776458024824032094839709970069920452561785415527146510953735521144645776165948312057757533779135144393436698563205749645389324519191650916850327635124677545010261939653512172005637370266765725969858647305048920767969720391290372878598679796539719174916290240871635959698921643536918280961423134965609433480223779449798683803995090716991070445035436757499153160900460690261207835055964833709583209983107063373757804821680907705667003227907813573335637742805914283065658038375213288419115896860362494216149978965415394676976771947898013935814557439402234488042005141056267643019479842658674154740539323402922482741327188652357446633668896365212481889642384536583855147871708483138281381886656836112805827445239649704665404964703499456926216253445354479866489113266934780367540734356214471068964347965262337520076248202730611188467197257486901520186474416787037122367159036602426282489170945066093292017798024355768259130270132823194180767852113150470142647267109522220731650546779969441922737795776911475796481754655826618439621707265666188294171548530357605106957918259449669991972566743850846226545216033003950559595847147517748919009766815646201232272989543493651208060553959083063605566858495915145922919185628285587415252226830706221389631343015589482266755947352326027487613580488685493476050856497571665659295583706624573425890441752251199649844102943790853157075146023317822192616095215269808669336275906876434990000908609746346980354968193892456130174723180284575948696437767735780606194656412888083207650317146208102307194327694082092741886971195812314885707127090703911056424705482389131602156363792044915041942328074681403264003748397009583337547636300811590096865892412289486581635632159210513379809015170426399267605604866014395911222996117787293992147098419134939367281654883565677321455491725293497870858621483050869745780797567921505017974441999448338857904401991222141656203483453822191782347130234304195545141038955668287385945115633020549298534922678856679379643627988083578125287912138728129007028663746758824969490123684752020642387221997939037008671995739172035252698258580564651778487447766860070306082691900110574067013806223951533736686009883434118550919200420152797659269380166205376253490617734536838241207679590257000853129731973328672609458687787601963380615200419177642167813646777520125420536380686348520475430435896535270799556353611067735446193003114108120981445455234888161017632065247438033036396657625880467706167404817673081952792430828383191150677838972162744782149405657417129873908270315759955812326998113680217148708170653690632816646811564510147841172650706412777882973169074505933617080409912201869562378322210773534923005920912750855269915156495163507616550155816458114454382450476501585997117897774124209631533430897480747475412149679698855569810268434203767839756872555767038446675136169458253697442559218692020003739218088872140250385682483951878423289811990254908363689383320197174701989593243681411121579274005518267583322476812190040484187680179668911701537044220076042906616765309393879552886471567814072059208372075593487740744365736785495657289129753628275707438974106670218221837554127756656724028345114782486357932060310265735462605008493111243626101907252948313802304869347429315192379926391914853240523280347584971963144731606353459123725272851512559589565183551470215948607608959141073656672402604796689064325781465362675913280599309342846746475886991227790855357175672456260618354974863727079619545394520792002022137147072879532430428500462011028953153608283585159914579279251397969113968376448674920274804607846314220190709102450616210287713384273765317324166291271814612326498103527117044258560766006964382628665102599132652843997046848728366389153107824368406273881871652704770541097022368514664625396723246251407767529961995606291946972471511047191815643714224580965846905100346475703280491598385121842685908287290809356107754982220565535106597316611145093809305533218174586386776417756219273160155200943378412775636975418519938288310788933926292893319638983328935251583264103789095709725878800658944223369319232854716152152514985570812532321596842599824500486879923829243902543190086805032240436423897927082818996138455268755332469661111764300258222435928223579233107751414396422491645840573863472895104543813880307754411340217885082470930951118464125078433249596963602612777408916462045482829390975065260275606547306352960088059075153066927790502944944175759565116056334230735272095429436972949752649530138590787472057462338331498250173450188839119232224246197264153040829950844099184393464166721863976756622138191207235403812076441257366692978519374976964251754744252341170345984157388611334840382174685988026252669172962955784047469511058807435245510507531357625611316062146978153453723424805033887582394108993378847905203723481926085332971919957292168294468466277708517606689951803520331413806394568835480399546398574752670741775473970214465056292224458210756996870927641476335453342062738147074921266708775912242983080397859622799003129612269760933858980977707170829416845592293725117869963783752876918098124025335401742207567472863218338077033085675538119206804077410106346208057716793942445795089972593730328111990575266437880038084123328274195758447543227171237415698220082084947997439320574695811682922587023453102086388840915342868260911283312362781915651701816905326406754960758763219168357822492400347076491915786403770078455234797190933677451031221276514005355039359294793278729414653337862581058159336133514996702224079618723510523742663840198709794309014652114428370745567741122530935222946267092974264204981244498495731839522613632171785203906103880068386810805013896741734860870748881338322569667463250512773304557568236168032620610317368767389769682581580112053898476393522971293819914112515622900829190150893630392126553574680183660224482004484514576967340202871701669235719675402675521381873632702209912882747804219270218339401295747596407148051884319763592696087276978412552711307600851777656436244964274290324745331476522294056323454704947816708490577891322021468992189976418223156209035102511767418311721142395288389154272327595570390282899046839541583466795535139282343030319489161523604353169799855051677869217251918110151932406401471915622124361681732714823510021753903222942530518981504639660728550735542641782412385711251711596519594667602535648356843027106411504707297434126499319318074244650223259564316746423556702378479740249800159756065410010902550997751049957450705736820817630754378837665752637616055641351578513160585759523317689793923334707809336832801660775763684614226131838280558474100047511702069221877206670549479420367713626593669215535304537282781515985940353266909417825333234657544243328213176067794597602992497855031018809521315794040622818881061969192116900297431826706749122617461695656959525833184977702719832234381023482349787184173937749444795668566606664429236929417558258706525840081701230311264323200762472928772963048569818441016167741984616545563806940365140386119046470589962477749859322295553078212461714875288602769976734088074067789121410305192280362126931131047118873318689900868224004289368500573168289785107935214270372189640377760113861023261440767364270853224791227101304158885749880924707390185707311363804761443639257009736235561601312026560803361538746858301707960663692576685462745909466974505028877461719092171711759226286593807347603994000938171343923575340355139601248067101282402710565991507697652579617313370745636285483442034024648403172317517138857540777883350351821241490094401193864345746745701513773461317226895669292856914305024831147091135236148227529351187462205583625256685351533525961473806551948442636598589048924495647872412294391399967388484404346436216310315553191138011925635840905237815622291638373606510921116912330573587292528351906340969894173799571532790718332067802247011114420026365400455542232510292085243816930537317817710854301944830992295772927419391390264387711281978123429151662770765636397062937840446702253198265854816788283884653299933218588283402442020400289781759433603327819448249167779772725030225639245562404611753023050939933161968043947602224863201153701453186094075035834183314240534838556423319501296413603870989062160329559592338201062507148170505952392582217059996077060354922775759494972925913593910158639114591614655402091216498316711882996968022459747566811039631842736343367902084284465506424455720296484958650826264150509974807070275772180689286105790014254083947697062255402359326413304771646026606571629700128222485305525384851739663303548061052841928892643348703095781048858394580758171659920099975157123905168539360053464631424530587638170578577434452619629992655575731708154424192088456159172208398566863435485140693998618877483528136997657725824168396126918135106818467414708840242951585651640247542360191631226845785907768364137393643401004804771750801420597506966146771404986982446276384093524240307678325697498389421628992084433551090858640287355765073187237343593148568814697304952631337742721928202931403306105872979063364326722821836733310096662992036254390778982190437954747176100015033486242092449279998391422252259901800525119941351105339691459103130268088618041302486913358431881160355031971278415850791902071535897614486535652728340621990697210229709374051546161618462783031651313481739445048370287177380358044386614231402878754429928001503485878773479263491850269413462644668242180564748601414755872594009240836256211868415236001392196619991488967893289451738202079437205319305511436223966279921906400257062212237139108510219169373145590284777014833018360762102708314264764241985743944248457954020204088801653647453115834744294320251118385885697733249397874131780324764127207149962062417539312703228583185460125906579645703850166559356252355626421910951179968491882084382350363782694530033495893947202141307649592137167520121245059657647772039401452821741346130670647509449232087896281783445860908110409269684869208212916393660701928649903888496872215902212682295022139968966201677402710870330181889831251887781065997031045744654381833366360514737203200747647557508311505354463869869484557623107931310544349045730456418997316467257823020750861195852536902324961875343163382038146449924868286142749133562301522361345854177630717069569875406219137749389097439042020208673862221741637111781441810679387424910162342514299283335182382421611281234172174119223999552307976073988549070251678381644710469595357481117233303956663415138602280442162485220605289322225954840548528504130100545318164047537770278181771700825130547561072158980591918137312689368165799499362175860533155752363224614329733554250529168624356268214482974393151065739910392172688300896859759414630287055082529300461646614153493450989605312301829376819448693588281991043299789914967656866886135077450843873262903093533924868728229292739710718534525146655342966270098481778606511654973664362440419656224299500950697180934390724000143317409779752875031428017666780755498531142029821684190873139763686437407612878875913154599807336480830910407697930139268385249940919702759723422113026700577571671961313999726329342583292211961017494533074064562417919893780676507547577389238521704616513826631871457544636997653614297257627006129676706543985797515096383843390754460695589997308567931278321228555186362273214886067046809934381774993114669150024702408932888677448390541489532503237610300519717478702449678432580669096401924523629200933845188488510993010794042694618326924140995547236335914514189219726202447433154442166761624404397710934869246969225663667711812661225356824302581240227667166618269805999453915241138158738730988424964604661645212877897409421264495622558069335571865722824153791639362615339417085719960749543642914196888777772903576244303543127032011472237999770009738722490751208804791032100425066822171034922208159880973500942955221559695209461691897172516704435639121123820073167223090166331495106274416750006689317244089973202260891061940965856045508746626221401365202384656723661536154446414854303187946057205051997895971665259393278887925466178733657145515569910722415051515154459812146214172110854711941512709074223353048874106900421008888247382655812403620919063162806069632052074481303970498774921722128274608614760686012510753372203758699301839498623767220756477357549689401129200977702804134648204255951735646019925815993359692259508812729293880823459252271275659182641191066248835185851936266549026929544844185049560945243089015185584970185430437854135503304744413963723517560565199726406037852314564580987506065659864279819654425891243383224358202955353567917821614801824305518589654096877764089030209724796285626122889506447970881030331579281770510813233039871694762848838342939371316668129737579674467781307348487560941262674403290271411042846053650728458338563873182101049806678301728139313800640209048205817003407107756550589964011200062932030343987926696404151722611695883095987737639024921580266891560744449648144520847563596760362354951402191653032926233797556573019469468199803484419649358286138143099624182904914483359674054142997484362491457949671617860259480781059861674317327403101072824311879098221590893144354076691965695951287934391370970422631864120860071418222092890975467697640218365831477595555464728065449627576800566524297702732464530540065895474488049307740344397253872345333771195802360106903113501829545744944836012848520287001496648803818450378153968169772551791469414532292675852077767188823628691400741446907512918205871915452772934916512983632752255253575468806839843963185926742818226593189220997068360966534827366026636300444644561552504520268623156727880253516704527104690046053937508664006440064203377172574662776314143263929530551622784841871022075384242347936296974637389888240181027710415951356587500576374147791364297972188858764864757707526151043268133224097293585535469388591852115651635150946067741233629303967329838456990041144185892683258491962738356244854749732826855742618503495374041082569090395465743900781839350649697609545583317612683274644101467925166881302540876816436432443704371946798102059636686875433055927804578041153700545307170291997014664439595632635794191960938719125234075623107660056911842230057463936967111022332887780718088074470110327509100521253664582070017605289390620011167272482659387537236549298815248115952567269474029975760568255716424422880728384055972132464525164145128163681932229582903431822265459429445958420452028428449327742822947675841954210636547323638990671004801983429019728003492295668894236838733585297040208384728660876945040932180015192408584025401091757057532565492391777738973058911170260236299597100127180623758222693150086630739835589934010706658893687333790849258175083797150680596972780318589636161215785282357022246375924107948189421887026150224455364374529696578524571881664242674513407085636599735443920078694255354790439148914503529737480805937494526943755590151435058601609319102691802508331068799192302894320017698513939417265878010741104666584750725559733492439686381730732969939318135909289071708663691868270658920831708949222117984391278562027245630561633312014021054568881973755068033428470148809147428808573066446513181983998919072393094311872913203803011084042157482091267203872761657402095696882783878035276376773786102001297176723821446071764964498621672651131956905819327073990548046580569109763469262617883477329415204477708743733062735823642071626268360987818817479561109509945553583360769135284586805040465241759540357015610961904416506190866131228843294719771694480098275037568478416002083410465399035252320794146087376735129996569226538106898417481781519577113573220877806416558424843147182806938760494540915956852891702164719148362614939201741951636015242752711557922033612980123848516218732850149951858616265202372125157519961303411495969253689730353263221309653857250746114710431478998523525826569588325724854203623009138465603547983816819985610034608985761207514356228538026143650440495877390028620961268409314471494052376710511384337981172285217627815310163132432709671680793268793521857522678882486637676008043736071586300752082041458694936866068866726733335173139404430806681001938928538995682944324293697980570168470449183900181569695062907584728617036218523810170857115842154644074720366272603598261497948329063825263597304383425861159498472652379084254737695019308679852893851551661639457685824525267883613209370843327006353431829889513105535750825247648724297978572663011153391942324692235778726593234233873036825861534938597928203751895148952534540910691699578644799702802531380065211889666873905615424348239416071180885679228050360732842673516948930755957025876824091909847195842755085759898642455955718760259261405094708912211194525322965634985174319594995366501825726540079111052024617442094714105109540397617495722101560225688933124760075827613469858228174056672911462969168896913617166539910057830855000558419234003645091867049368953386447186295059284844523141362345834257718835583180429873033536350604960614955558807586131596297528743661853561791226987633077714444088727420721886783673878185199414334758744540521998100376559211694059653507349967112267969114880363677138295485960801998432472730299693644406153571459958227072402038617390874620192802238039578466543876910615915381037513138589965515981766464613497087333874995449858993858424863274087467308498884040264573656404893202670846687710417716400619960916120093307957403292606810849603683797306815954710866306692335541992994100448164503797801676042063543500461196163931983430249639277901103705729740077454799769557968326884031777219185124914064870818824940484021967144827665324192282084172218760889067380573058939591727940462284703122902448658642349100802598074997115534459173314210258273996085000883639899291943569212893388890442669458812801194220051417315362285942821589693414100721311567065157540041632903698346259550906536641958670507102607188272755893782835058289714754279457447679612397689978955860803916037711078658033190899476181611014432788129754342682166740916026486720917164687982806768449169888928474937906339425882988170363865328980092735961174462648427952068053899916220220919558155990263183711848775723803802275973096765632430960794762510934590246972437390067196271660009951660863625981188694439880030487528832473773702278079842255527891681280720743687969594481460324217684291474449945126930584457553538158098311520728064740692521550202766451090912973325685576870515490765501265491228139616902225956554721144851216574789716747646951699202372451127946623926389332290583788183560989137921399192731254759651740807562843508985092491819677040933972274264767040160615076232875856480824979910297628051240398913821515096475320793578020253546661001441987552202902552125463257821622514720711612327920381387531727724606157503392150483008501600118782911962026108979099622218122198024077636712827228402590085642483271614174187161210600949766793868667587162045297220128135195378875272520609702844986647902182505617210746608868294074190892022815449445755571560345825955561362954568630433346241950565936569465005046582729342083196701976120611401591666301736640466676824884694967906024382831667075845008539913261810152450543583151778674660938234142826032340311616197431928012204848096653239376064642741614859268325857739446939606540780420662403793059827338561311865238088914224268374208095973106463297561305464394859865758065812110059288863039510725806547903731902157139039691358843480011968977980536159247086610223441436606111198332337030195471840934802753084687709850786207164979347476609901538540632663565503245934626470231144234083520698525684720495396051317000229611184555541255485475914850348283876534664833973682487525050009817762936034472486122596262132344665081766835155190142906950613063045125187392758765905621440603843319286791152662848201030633819038411157092588667667396694572304734786686796044064621989038920302080912358093571689876593164426770466309714429801576813147444266910061728422399745550426648804539387659071198211887212311420972895496527077411989158822119384169292945487699224578707813705977176708733297850747770752821554723964446518657483725038947874206736311473383781564639978986379930457240187897642556168392775699058981542026773297809922444470443483745094991614352399698740652927791177216505810952106639693825418457525246234860125114433085124154723790148831510620071849826585381065459334298469604298621498611242990775544866850326495376877648616722296532751147276938132474996483688163741025165763563836971991670967164518033975790234692741467916415595000987226669751862239289230820854325326970482695363862133022583341865734498394729656641282788802370419520453250940267729819429344954348297813747835953515101660323920211418864979910013373067860091304237129272287535136305967727222001796027612890854203845063892934695324783499464733037631644910282206126121373681290900392055242945413726750589191090384654919138877667243259907751730954017567214958427399346012182729418797131325470555240198414935868699501543035174767330844739916275977303997423437679881726510382419479909806032807559719548817329260423078031867927899549053573182642138317685753284050936097625143412232559507126091956855054492701566862762163031555885282526792479058654635503082338895818809581207614651045273217272058618981397506886567665971564766865191298111920272650800378989027561843524611295641992599651406002740796696944094689228727895959070286842603363589505047197749645856022927614642206089092199345264738827755530292329469582763440635297106491531391111756106026557617282327683019856797095572686492134900627180879562335745478069330567609415887545442546594607098237833991551036546626726704060083457556732751900958828297844104169318465002857957433447851281273037507879637313379012648127857915581287868027656496581883197476906536746732046148329931836724518423419982311232382262759750585412779354680767275297019128738340707911185383654224674636722728843467442580430635662996962968613551458036413911255505634850833774035150262563135835410272250720136749366367302435559060966737384468909083271193519054527634538932138926902151071141909056835560841077859384246847901043892876404983275860621339458318854572043797906837560966031155797157325353866859573839651040167191973363748923704427446003703286784066325294489044785178410768016445152538703192816293763716012701955761420981078136109846000601417669093420031461619335101879114097244351611163987414509334787384083923991208215510408058911773064633264357054296065005759693664492920056449134539081317598219105652884859910807606430477619361151206626016513025775883945741383317177285867101088663675822963594842966561472837956076783556213829574246623884999740435034248593619521628710414944438340975261472561854803085412803782146601040039629616049021667249580347303293096308095435323522893979591220711783176500950595275933804952786351724557569291638956694363596275989318920569882892652373501379266719255322982213553242370374361364875117197505840085840574591386661691426535174946406991877418104702323011909074499423216257906082122142179481603985318925767774822996225869539892111009355930772080088589340622473666563175874442624311493675250838130977321113712704468291301222209357518855146366678952552371651000468309701703125974012269141124023460153968385539188784021694863253109630706774023855871193626730036698301959082485716504875530057350747199547676093494795572751939719309660643048160977821395719701378884920446795127460883437672365556463942245620411241757443695615065652959839914455591745656829612891344260661942876631100567381482708476144189198078797670306049983106046900174262991177386101861092455965848039021459291431147945318498201302680791620245765610586495103794310664983192562079700719195846334879815892755787919251837332717292637318918698086750112032718572904881962232660148835819773000330283217558498417554790611351375640483818337121949530021116474044379770461177315749769839443844467229987185597524892403161216366204170358666677905380796573000073938302513439846899983637129565858504694904526793035017313254551158095600061650632960594286731687232878531692640819543906388499650655272423248119797295078895230569218045133940917438449157344984734154476455237826679971117980466771480209171601160601541507266428142900472042471018513348781970308314585257602049523656386798914390873946186171913471135154918900342358284578019506450615026706541082098747192237612021515939811720665266217806186861734424625941142604084600528081448447217357719194180082839023559650549675327357950572796862097657497320640188464702492764777284423757379307487161296319690390952348892549341201218689541205894658966540681289218544473827929159676037102301075929437803765863666438581004130744904547068305539770296945675416831294216273040995367629706608818490012728295696687374508263499519207467063271422489073282778194702291491360444368712325092880314623486966770810759857595207278025925833647193678584770371782191395388524508811058777511170842338024080120507050157410331121851340660365392042990101168522496378791729776877641112798177135761388673563898187491451791589510087009233977422572714518745032288606340289470990473297777700855593547451658814901889686256766472008877389119207990906830893518815604277306574204815025970550134029741676148315102652612726909565969627048756737817429946165650629695061241047201245543643364302506330673077321726928940422507547622294281235530028344287637286636920104681381024129409420259552288640393973101997776947456052623349357988596659924045365406488821467009150126796319668933370693579729903306564745508404134389332006919063440501622812281252445775059692983893645218297255965793998064375118414127139966657776804699462172346416803529650248172794667868620854926681248871369982729240248051209365152454081037395766436485284515028962113260058005631798717932581515216323164703350167773096518485502833397736910904270093217403228607713989933334118470391961441739001724507241105498901241459669401210154573212275859003507696997348763761778307271017414639613871581762938147243630290556226086079415289060864085077717996917894845716519091842997284972943313655324161704531303299536453072442647283117707376722051840119129779133271546620940528199130547977514161065402748416947514476348157980169019495238343930917915639761350968808615802424080335122789702971582767493042168884499503433645709270240338673767324746333204055295139180741028534928965352819219887846285859140839759311935597424307708805390329722089067009849012193616522505276013965767797308436120301089751776197322626150335042618271531812653287815342762410579078039687702980302729312414749982903458884443440241593927877320718047121760888275047378336899300013234746059565695946751523985964000311344159032758147490423788529751769476917359251947740123388700050290176698323597329130587566059444810752558511778834975228979031654003338848301808630609665187363212304487495012622608562980495669066976090527008164617332027566396210690319717108004688188305735856351103532460038568065334138945783587771641724991788869973988182233219251962013517975873572785709837395462685459544800827414624559970930678017094766048952406322997661837774088086351071252217644130396043634540341720909794033191467795436735663281124559019698310770576016566204555731938406061917849408492167033577300780710516638877337958841425038067874273555614736241789256259503963634357924972070892879504108240943373402952876009945134641395073571165014484483841856926874528364554973599809915464881935555188690073254535564237066416217835209512771065493009963372304070241105359554787356670083770026406005307933649359169478345786713831474059267682478062792964820939689785688052880969571595469532105027984621818854148421745629830003913881379245911921365363946913114078380771743448955632121425450675412710605575924990241976120190441478781931697453752494771481093545037431743522789284395757548750049144317560366720009758580711390357925871086085163489827053682470183663142639765714694865885167803614062710331700122419096965668944240873024427685646936364258836398889850246516281352957799182532892998287334828988778061540197187507304144542119775122920190987791693437275153028701995327148377139194595402246551226402622737449967480555376688396292504318878643625732306420524821322429899815633726558834947204169102431251043802076041451333706240085417763474823568823303188375243681897463812176410189282112136655389155188728908849282297349606599595948536889894378892148332064254630223094796729231193456750262126917104854989996365389270008927913890470816529435223380019871140726855755547812896229703692553223961262659945759208191696544783667205181834042595387207143671210195868331558050317907765192405441050425136219563809776447663622694494337700142695839078740883240889257361246563526766252968421029113070946329668886708733636076004477484277451571782338331806803020184455337838444378741815637469576947071249995491184868599761579479329251201374486053157394541788841103881187762974695005177070924099161488376110670371447934663165956045966488733554236691859806267326480603843696167290213813813979741445929829168306320417460063390838758473152779496667252157811062099152391686562126957288978576519206044232465080474052161917231637580172807013184882156358397854838598969853921853852701087846279166769814053408165345135483498581427931281862348186291964421717182730801044861416794810488118793810521586018851377431010782086527370720955094412087832016017799615775279707883360810833148342322490119156347488517806626509189033603908185499315214242687845613875393405792587155687487405789984483218077056457418583104677519871962338430682486096600822040700102013511085951136197680643337584471889212511802440866485110509950384518132373569263909492597158243376838146405387114834086624240254916638462815622317941414060323921226703967103473239686128887934420512165949622603738331572929681651978432495319654453707728794024827196099378705558559173137369451195588622791026839762395303048691909441188274476523884129233526394044873626054577457778104740786510863490710774156572149438857380628345110180116635354541514173665315749899136446926388380826560857300271109163564316617576230704515189801151522115531797941269897750726155075850237069089170726832718197233314871215103239232631302034904450059859911550351602207236302683764282479657405166497359366227251090648395635816905034949910730103225985820690651137601738278618646276878043549662331315229199018864025498873406850888691650566298654974873958239151288961890531289576229563911533214763054853795405676667511702441660477135991934548875743057231272160584502237999345701427304862441776891076610240149748663582658290343008163823053547990312254636393952857027971570967119370870541443493077617174115091193997411541828907720937967391504694521882843746051472939666770643040582842833403995436145022998197596789268666033777165444167168803953381101987974210568131282263042077333797008469377385029964404746045944289885510290931272269698154850212168426408545605786972528623012091898552756342170300026757560226416261845377283359295241929293178920132159596394086361485410348595525648461736801936944016266938170079462544826806078697287311347846556973686256342512939793339000159904687829575328516840031634913189422172765818863253103801498010411130283100123146203678499633187577101605227087367497163954941234020628832194363631411187024755790359714744803308960323335367797626816094347174267759764274955470110658649656412511238205061633495908269708662377723374976026481613974006087711399923812190348461441199030035107980488643214072576012059516773630674176209920148660465912148784381281375119499666927004116912655183865169410776834258181670198563289151044255552908229260674792611914554043003327819689912347327834581257104232715100121870408802758058180581734922009795666031090224929205411905649305737639247700456999363480740883144412738353730440183988858735743213853509464951237206397655698071730357577176593405998437931486779874520849294708847209216209805207780687454867279872597807949750498774102939435207180895133235677790624629732055327484403230205287427223966097490024593353155258507605782554396859313113441835999837723568893983342175144578327705537218816997313225648015090563937794348252434223707634499287134088456656388328669870165534498586172061461756562601110574365215057847664821136017734475090016054429766458077806700891141325241891337204825597179717731197012529566201700306902041264729633712186343550823457977133358390360225434963613579644400761768527981431829160334301461194441937448033718133499831979233835224501400987271310835342056576785114942014938747909439779827360879132411946858854348531058422021992811432758969822840024763323541207210229008804612736907889271430749475611747533272417627050622724801648502148407855760274968883137496304892687400625940145173207979424185553114923762025858926913152484169436357953034381796594199160033904773467622419526038851833850303817557252068029560132525940688148251145675768880207086555052274219100076190600582619822619494484711741903545748272521704726125735120820971914344542159444245216388995718413353337249625264246256859358060255720217672975848264926517604108393391066842609363167179082006172747692587595153704628703321901740742995517720604483037472350101799328006033837985267553114493297087989432643478256488240794683213700448996848219505954190232546222430686309885080605946948523188871447411655753938900439707321040581461524901438563015349000638382184877419335544248083036174299296469135665471421221960386635147349594377149075039230328786482406087100766602001505767281216871465114376661404069247009356194795387343027560175452671594867338250074563504807507190801862449284469132035228039399843236645942160659477975693748287327762617423189103991736773210380992410962499177694320534492749294164657535895162268386765808950589365748267522137162894978427527671307768299835539955499406647311081853952784286202652047729406870493139753014648071096811723421024529966373196325543595175539872723802787933387270461839561134461772786792518471189615278193868785875770061020753306770112714552454282515077814933839979423004118754181677316153558305030393000214338223742857189903395923399309104320537914254461833164037335678856498808847023189017809203218366103015269238919749953824058422890796216358791477491740865489368046103946414897917487203897907909817644471500572694674134038215929963447493945879254605958028829145243059204278757378775217331261834898631257392466978525697241982915203094774515640154562971783294129402908441863001395459476260856297424906707551181223713075301711622920246887137399288771276922851844217323637736826961686106083024219388043594881944539863644810291669518273405715350051085831619299163046985811747952970058126650240477300043508445118358003136917430293916213747587333587329597678551844485764225598720132718966819975456665459737559116574923416650277260421012720032449864623672834154050203115906692149600184290931044742131823360912462906263626917052950565582296557798347222361494826780364926071282253587010892951293770347523066230085111435545018494172736330209323890716890713234723917745345786144558059328764170610917469596145107429147899120369314090278298793478916203723492353871520102766317712387759255388280494638901090967886034405270867091802554100272410692871768658675689365549330360719408937890259214386322592997772887216536125531000354164924882873222343524217689794852476055368637259983013259048718595800155323559177678628713045963710750410879213018750204212542935436248539486653939954660586745341873553399187087729401272414812039764011347179796005845613546018227450007022122318938014666324040684697788570039049707341987280348406949689961260279730550179593423983262701234300940666035355630342162496021684266437516394110119182493877705173534905187747976073030718702615183356542291597597944977861459141089934797927523368417535808168127161625912857847921527287578746544263443077891722569649899023326850034443012124935295152984131725916312768600129547549768962387451011085758324188227862315180013917325011772888845875117764220153624667892576608649299956216325192702234191197970954684971716746910386102225958839317839585654481691659171570091855802051401218244848587464897047196391378582030545542889617349777891526542040294057964569706267838357877056156104332987361835028862435693520234667983721288957979094109649053780484403871239562859735889253448883238008646888914943745957798263922156959139947900276618423761775836724019119543026073250249336234583782114862260459230743418303386179288886975348988790647726567325198393344979178075216844409537370038187638942240543833867716903631979403525942435476021577518987809552978408670027447276882345676685806423447017155655203188624051999304918007147519950246384143756192708465804143133030903147312019972139459558046050738114714898102378772494716428755310554285423535907286363568264917676478511181204752651923497102841950258408694291110213319963046031311822355938705907699027289169867969481866203817483398347747262898429334822907106953329513268544478668718646260041350376865090270626142608713974433294149698601846438022906375038933895287829857152385722709071393170694558421684723775564496629675692909662899973522446830826631070936787685074186492748306953822146392922658272916257997593878878937113176799505301916070953464818569379372578638208646285497275101136268358452225093172354912908450354719896342837935006859069599298152044767462604652677243695631207291311650344246392874504345632108542126359140841027670210306768153662886146289826839650778044424655609993620182769860653395351092445745773636565073323965737005692849522855271045388172495346936890666092126747660761322659665180669347853086947577118102459153465654930506810989267672777974397514769890284771200010015486157912621693015636865837899299482874960454057441392564004119058368482476021748679672813424852541928155405286315771273628046293582381596152192617855032533008469172176315991959609731049570935980842524780327530366652593469775785217237442903803693552335993241922949572632715034268426909414902197583232250362278189618620065395162965485971611265582522185619761951943045610660659671914703985387009792785607412130042207694659524880012563927662843777020421044071264722803836358271250114403646282760371244800110536057787837398052690575113790903087555515042740363697696524468404622209236290771372316384623118426301858300501291158268019481997703035148153694185896168236826870437316972199109429978536413458954589411226573397310278421254911830114290562160481857340115131972902005247604371159795735302484192081183818783259614753440111500746664020873941516853766395921966034424639198904989142271465758413684090129585980946415689842676945116066856567965605039330277747836791137141498205520875547991553706563681219290213980502370779908054885981464668558538984213401434459709208583545587260430448469955181312177245634436320536184946032306083299687755516667772367689148331212777746906437453322161941216273736093829901320855448541408830580347504485063004062676447195311900826283327371964018977300208241482176469658606549768191673861212320971817749552510856851064005867284239254444210845819745327401557064186198969540305386696367775049158586154868569348003579488508403722235412010820632809499565137726400396459465811275187667346797355733557111475688545698493018292054758742018089290829532005583030382836204670982583948519113708438637674540082979077854587188032194636583841504234052526715417325552928180194089364765014075561602887662662840546689418652664067238589068275481660268714369497184878367132645868584482563229579018957386842740791515839547339967762528473307124563413036643215926234338543068953044502954427701468638059601904408395615135487745487909928132558668534155703251223012894654050517202081918496026546369449224385232895990919770318304291169852065013377264038148890852154266735602979712903450881629776954595326141488557317055574370071767128329745035566011746151580682829686001190876567589175607088879516416309008504172881098488330952830680632977416686513596780040326079937548685837910902759744962090471928000559952568685317269395651933995769192099412572812929936774587133907468467575475438722730640556618675925226150600743137830462339859212212134106443948490102058752744092909292423140075133913721083361964191071687128414704696440171414938203654283959813479784664940591019916628783628080135163675705599727623214055626877274436690797125255223420491235375434896585235005374898671427262048341988266327503679178942618653635950018323090681834861843447445458302722432590093226910226451518305699778678930390881845511582994521823523044378119229443168940367142367193105041322164891208174571716382279210796768491894433833064994669230768315999840125347388896063078674595464894203485056160535445538179939239191723897403228076781884726151717087759411894315812272402237350513975035375237453231829713700147463404200957394925729393174016965923973222026638995583155274560280308227322950751276940719813732855201890879780884530447796426639914698760134131611437866849307714046638162944431071781733440463767779172645033793422165437813097921292328283636501688743991464456895655132150277565271267297432633532739822037170531419737698617779087484689273761486962663270303776980350342410421256620356287569750306852657848956155003684918728709336080064416193701601456766229788985575901868959831879804779825881206712283607156789085620492726329713162339696341306397814068200221035339045873907981781878195798330212144935502833077151112195511419777953644655571107093351701625229653824305874808232542241638796111038816277490437709850167724398330386348402513234108672955695431805238408799710813965913677269074959086558888576255232857501678873223115870730059416339960226790928458383438415740434426222321540936172698666888568889761027389803537522847296627974610750787347668221320513389659591612138341855473678781477785504517092680216559057501876351314632466700441147323196892794498746740808767867404825238429906596333352580284013573086696015825178301545466517627523229527252594360356005148850709051715071333947189753573663432697680932929496188332120409441701023896334102376601273141489062645692320937450250818559785127292785086958463853799383646202198690366212265683534146042470651553062138649032702243949726179457388394725282970587744357013830567717880600474486572420440130449885930062515152981244305195226561836867216297911064203864867165592195948749580923785648934259933339273657922597606584562535384599941341455686327406257881703267872959594749605858334440871068254963207510224494813682597812083814380853429786967145873468253730168991580156781793182287129828473048962873232335008291062808721500300123693894481099038600002886537864186700421531313284338800676111228782027500656303167908623368864501393400026034417086887028470416249401987406975007196819742586887990039387737379354841105084416211122883123415884663946368876211311106315763186446947314776253715128229222630703072673897673422697093844844636253106629855904213352192379288913243212865199256128172270885289111107897631362436206994731378449462726190231882139825300762221523061909688610571112019201234540512531739890994181897712197535768340398586848390230745764795429163123080844972517400547092242087296572726651998622013897344566179570632182688403075672954750830902050657899655935959430293530655445967207898150884784817398388887767577214809190865322616631765556876460999659482515647592187738799631799253787225230717672055068983983758145175426342297612887057011152138818845162481005018228917079852872105288621773649885623057025092838603585870702509709863805796864625039162917673694508686277684122263518364778071825043270275680076577606109290880125760598320143444246409326066077001792174705097748080504218978875765403273099855308412963400366493814531103383689523290909887600222823373710938888910168176346753650902142413299513606272196621924427189413255936800528820653115457501879392814296019930694798952543008165195525002364333259299570386797703011909530897604760572159856834197735790189006343231747791276600308540074930835046975333781935463222040470062081198790954523618826204634339543706562353055340782642218946094895924337655412718656121982337080696608207933036038505961206479326990064843421567350564396816451173765858848543099685168862292137349732224719772220525143685093765441980536708053200156804169516112656225397507986395868733139221301468928831208755814956825402809025060989707652379870682394612989869965549730322893006569555990493492070218450322034045311143068322397705568603492058372040085679870980395941695358859914273261942236562527366532636706633669102388668516230882217972035848198697718742212617007342458112496556620125715690570275976000831931508416400988236442870548504656054451488250973882598269663208867716750455495894272349923237636225151648681279943031330920149830788197425021131435711582485397817588022787002225165850899823591907646499554681816520350974553176015172978985612633166499193062230090801734978960080049462035652556983827095328048174649337000047979919218926064964298911795338524382061913946423335229766946046467597229915729218261648117305763912024976173745447837183525529776098712690574778110774407820309023705844985238955404072133425373320260578680463927496745045470004935098962492127821421527542413118400964371918012760678949422196016872069873981406056293383402399949879697026336084309187792405326895002185109540863130558958789664092695378959837997193108176716526184153665658598163504484305737960970629796849316654264540194911248831875772832411238025589020579397529537432459238967186568721534058159959030748211592112353838841769606716795897674232992609249308788296289345587829785078582486547402585175723275786647530242482735392555621736272223298294779413314115251280365761471123146262956634717701598045467669420268265964392676284471371949722351685538010229376932165126672720437139914613650943932341817891397990228546329870935204311570249792180446163386157716257693141797574378758579331113385063592470761297848694764804155551165719673602333224201765566406016709182989726441763957796359089403452635287918889853555147764049644856981205445780842050194886037464691715989384706023193856746154799413287032590560424814018853083315098995741719062106277028430963593669975533985903021182682951348424941271273197356380989427231316892010760760083269889357194480587081996181745532659057127071820423186347848465649755885356016637685507470546659686585583669197016359484742549427538140419615854889843865899313216009165779476886868265766807078454291776762649098657195399760464521654647645836263588704959562231847531533242682793290917463866690686176805805855027054579316550018181364706965585795409230510137861988439467729774013375764999842386289245547433469158293169540355498787056580376058690055970776379371641374981245068434605105729200914149108222206164631618006673298901778356367821963622650623081725712547949954601900528722540530763299378131118310603735652081626903071769690365079608188689725972037107020722570627456419706903708192725008841758578249993960618046478975863959394576451707065677679334730771364553120040548505930019712029740005663542903579101792217752502872973079381502018583446451140422131006926302116865787723533150990087391984655629487574545209838392693333499706352937563380206394285607170044975269848409511869853294881722347940833540513112697652818234613103382731964402642346764302537582906812801543188321529091638298867673768194761504256269264566247291318086650639715612900395576221544598940847294124198606392416475264987386718357887283249089075485212706804372348350526478009609957334376254120828573954263276693418852141141936182776641663719455131643418409398526640266155167513880331051913496754544931212019691521009525081620744638310686969644629808599043977438351293831970612381003891542955528970761871455834116848290292077116294937505202820627034733797983906254798282569935756802114253011821276917032120630144443364882768969610607270702355217467791030457507106736751742640709159771207329893642611563958249143425729486474401233119052197089359387373817789101943185843014264339247693229897589455432827690671062642254012617171930149036081426626511464398328638969987322247007399860705810358907671285704577073904386545570000849062113502782295853458378355001014543096120721779785882015738719874258286972102245183251012119550352914796457411356035346124260663195689232473026384930326948584034186709119882104841438790573496202171646993206646398850997685460191037721537363737585680435751894472053409306801906947507193072230680946990816643493759935784928141370412166800914922016621618794718564863662206998606794015383673181976972094557625794939499101659960832604669954191457406930743434996894555240883047567364599935317431868838384693589540177520713534383871491167823248232605649758027589561988966920015662722621071717422301307515592157892835155840676618888797000399174588868922345761989153684031889956926732170868741334833483077165085501879852605189876003049544045961296319369937744736241866454820326674869332016984526948183119397288866399131669555250166531667129552839621505092842107511625850870612975453033403087718886072274360850349495484470682331449847056899228955231869976378152422778717367157068766501335120875767950694404038511134842361321224241744936239443422807305146455433563418164453097418819824031637422216320108078892621805398076102454804935006150479237338555275373815013327366339961043905683001446656893035540128139068092786025999760706739359721628494553251374206648347650075193875632767034597871483262116449737173051455083794189694045085908246662235872853749654934765470125612586570092576346060773161804176393865999906234127034339629648304320477188754105078715286560138741107228018006652264835983913327068490351302039311285972193348787992263248904081207659687763781288610711299804026739712792034875139198084306919929472332490306344024017456049372759129669315036646208626433439192582429354331365942422701965902262832456381750977531656909487994835324127662307926222295752534973193119870855553354050213757888966316634891472533775071967503479612838711786960067361994312710633905630679518958961849075097256702944068024847908452895004229067089776481641648011863515579504697593245190233002838812930116994900192494234226365779806842462490350473042205010651301300496163574266928555873328727121393256453161541505636365989360655506106942664475717250491320933039051619601932020294691009349706481372139668536197603726108880257871303139877608854980224675197907172278736760545901873014478590266549687191175305344623476432436738639972557748042854830254804021786274018871687196602314262380847968434504915225919014440916775567769796017935367350123828493872380861052151344875219993354179762211884611039360387484671690676312309531549870213681293694219125824090032796763003153395812163609285261925999402042715648429076191422760329202931427556057131407528497023072298098889603651712962316779136157940956719307041204525077394969119050963784392483369019728988554071042990032209471735297105828391715568113681113604008515847464814387343224412072404548695218068742009132739460514282052803672753790761664106948683413920174445364920239236921392905463058269889435392400763786478969172681482127878768551189334638157841921515907560876795874044644638691380925550535011355606237574946281614919068054683726610221989750534811498090928555254390160389896433191521416570192845560373272521277304793427050116089882284758520031105109482548125414412477913185575353868536925311013684583380352195894208368680991772322983927788811335796526327743873229434621984284904720368693848969629315619052779454783848644635261033008125343347481621166226502792586924726963195526462278822922470618574848510056018409200196422837804741573811890690375560156866953195378975759551831770108131593784898550773933253683699235495293431416308828010864286971306462996255063532904839512631482055726187468189855892764659351195923239005012072382667891558112581550405049966773035716935847578956294833088142765776315377238178914837241426270594848510802105552665454810649471312009568021340698500094660665465575766451277771520173853808417646414056024346619209037427906135246036109106209174998532081378836619560300958156298105365260050347284554141393426731702428269476324970834611978939971763937400932880138533313041920987919460262139846143196240655074203886847290760232342991655978415549808117485302635891624545281676586541735407952770244823163395904213842989082446634094162798308620611348710525845165900151457603166315200064816143777882026358829264051314507700861067370311832404480066490032177966969238936594618694585911423912637615204359627034145898514140309583525148596071134180973934012614606693196068641886105784056165926814471587326274489273583609451270718464743369374102119863444627728228210644382823563462829279135425423351579549433966737077787575845932066087200490542094043540552961837861717284223508237224560764518461101619693551962354975379134900212781630709586497747757872313986324556704756861045608157997277707499637998020094209444550635641916870562469847336510028284459209763396711269324456441464098870956806450981001741061504474426041955479960862762628746481498458010214800560066168833754305547338805460892843637817235685650233748442776219773254732146481177479629407017423550303026933312603200385788936518233793442081199863109870513326204305077533149241893553610579522062929971372425094420632093605640532010784344935505105941455928132850725431255348177296512772838656398101540414897616120751614461863290185171592895530336075298549788475248448486963507302572539283689565677639155114500438504979628965530782881686529574817031304726999654423481217842727390106301511994754207169058828518590709180544752448509148247313255921213204438061257151644413264262004708740037198993695544912128636648992520886249352124126921661567522533851888411760770104013464271235385779414505237130837006802291658953382184192866509509962758502551467966501968661066336977151239898383945866537513807953394686956309072434904694861633160423909527758640205029847143783533153750906799749619326552912630442409664448937844710498467915667888661203850713448107659980621984729307863524668373882380546073782727096418389140186671252361190188216849296132985121757868160936191855589912143252446512909172670907979656865660485853112634726018890295267315347438049062758136373221690493777462389845334625119776932597310105539754930482235103416831584664411880875077691375330999159534636303404460864034683310695756288556573241410715227101093880205348374998315332195097729245355151229345987374737192790858380040888036541559603940936762498892515611210562902921758680319450018856187325111579246383586138490397218903362028106052026150357172644174890336735776580609541765487885255500632877874243180843866874960037506365603119165906684283513912048527415222812507955442635090724555407360740293347015400190526936242726665501791348978360492525687173175333337211474771751713683987640947339810427065707795954618756383991751323046529559040908133586070900192589549959655518353671335871445307821032358136281208162286855610305230280253689507117879089045585112106423906236873359743805573194702962057839985682545886188132298955886597633711963601977792707675561575667863627932683483289030340939613013279327762537737240899956706921743136380083766769809766926558983813095099148267165779666310886790585540121243468583483536340159655955230408568534924058036015100742439550353136370327981639066012242280927339405368154496508338409663156409000828946362388615959636940821740275446567800468611893301168240319796281522635864465617137940837446248402395242405603869737547369921403642627531539053863030416216076550454880671414114145478752028435342092156388764027507537378770169505347823872626121278148195052648297282530502244311419505649469892617935620583624880425938385677741320488114025184937901563624959851872309316018225052049393987991625207020218663781676285075965148871363911133997115549531802455613330200948283057669491762294914289587104142054740068952923635995803806549601268078745982642738293541888511567886995973456888047516809891215396166520147379597734266670639231596482859428549774939754158852527974162938492565602021532097130009951394160085764980638700761106199805525842238302832120183058896482571731149336734167183415950910229140362438100502574210407090979371083789583253738112144091984220743962806044571801235678353240856205743519069823386111191699516333412957382205577362766877931316704278735519928071226331851850327104845942158739190971749668702445502355162925049106315372195526972191822562919448663350078936499911204059598372073379701417734228750849462851831466057890016231209776377143175281254521194880433924170696037725434750128459766670298651119058330584223428418360489179945815654547056434403491445505527830216171127011137465714494509023075172628049971143842901457533633780888916641186048001970251729823394939353452719743987395386872953651311966260504495846779939337847870577547694476478925471174145156522545792519874046747992502192190452876758061599746182248067894134648622760932087901555346299552385292657777481755444355706558874563065117871573519528523108907232097786348743826115126036461239252810316180546071204413114424483572755144131996598092878585851395261249265370781868442185140491979355085174234758401097104902976243011018575925789142243714497109270973272514737110000408049134357102297391909243504387580153890983201132851092517389388515401639552049428632126197525914921056232521853637650690627661381731493886216167821868215125691806785047584254699197255306648052460306237847630258474404531059247225135830363692534412606999424724557125715054613166071031919674410538159597449278477380389370823185076084101455225767017898701783288138944538461929743757194259192056828989636827530824968972886664561163631601451700433455232188350142349595022363215680005535950695531619544277751557517254557825163501688366671116798026788408497306306707230874328694333459851951953581395622322722878379926974499440997674738684453373633970881855471172934616620365873347822872122265885184693797020072892456205613854188465529023526774017313241129483020725313406626961343374037413765257016423983492126641818420691015032576438302189309508414076901026182145021284078614645140579963046575840555418176390097023517973946143361899515724606333033705036698149030206745906969829012891180547711940341250385488516808339040502486513066016114979983918224791117545453108526383512562551654110899866487395138508620466468370166205618589140295907093272471615656431874699939507897873852390351586358250429921996976253684260702385505729227024046021682698888565717904776233597490093367770255817624643715346610980101084400842561640434147966100747808283579229845264291463315720554612613615859953476546771775687574270932809288917175471104711358038504573381642341907700300494145765644803577037762703226590797776240947413375589296948534682465856369993191243253927714741056450629146738763098386997155355459216260429441275234543086987452568238551476812839037011658093194211395319190596480177897533781569478402323856160394910921998266387068014391445695966954426777730286546122625449617707000711477302258789439060237647489880217993196397320949582760216325457727246602451179283915762850022888589108896296770893527992768476655376483700788013136388491871909035216496537543624092192249395761550790535953789943950426489175057777216601111441847267015073257250401919713410945150326912139550667142743679230393579196431957987238042194858945440910106277659685191670308255527276151936899701126072050232372902316368316950408850189750775236923742001549391013033179041885232817026229535768711685225628202201510261279524338352160218803623488235984432421188968453110112408441945634000281187956610612980732389847741079717922906956682497493020958033142114094701652424075858834923650414746704160089025976175927076167549322314911133520615707322451376365226215410161635719890419425556623711212016602948187053531017974839260667504507919118731490056031886071163550116077346025185692014307785711439772482541922322794500228818547236613926396911450315694782428664288440639834152260483300741785888949254860292684328791385126459390246274315296302366748100898484930187248580941623509883346878429282226974656456377135833899735892935474300185814737825803830931124656560798662001726897318450215628191902022922358099642106315849358399663969515605779998889229035964867645960045220255729720894815779685383696039044175516279742667336884360044416401938112004980056708986991575888800729083724293888518198476531995006486529616158103911413424880462895454560779991166907477359127163189554927656925940877246093918627579754017383322363469267457203463813184628561990932369571107633434795367806961961453792654866768487170896332105376791672708673791373784598937873266500859049945722280881746467046537089873089074838468987683377772502163378777076374287240642412518089477164460419421384869250587512449243575975694558939991273047978366175957858675692822661649245840743142478428897064551978308281539874721731860275078793003959660110412555152789287269821749440979113272131084948862519049961819324094812821488924780207581720863332529388856132876356401097331194261881472153468954709884707123816785658740139021985491584318448558457157184466616238817039352987922788537296955010753087223728527901023555928921417493809621616170630961531920743192829643417105919175505189328449471011286595882629736482239529442368185535442343328848878615783233187450459524599984652417632599648512623630331916490682631603552821188198950902498572513344140137783363696258414430634196305022102074016379389813106609129527086661244470247729469531350874809491819808024191002401751525139193819414906245203776035395722457558489104589189101204207473651145014540501392422501800014050955553876595224130431677559833888794918300862462025086418149183833423285746757483154346133723230264931966836569994109725792872048125998742729590330654360789979808187840604204543422350944784138062655177034473292290354254052233726638811135751356807064275369459822433110115371061001299790057170720093590547824322119766930740577125404447483780399113341157492742737681907888724246332891821922014608886275180684470368298077182811856095834933780975659755650040145384321814064496709039505402455811212468445251283557579632282872656199805794179308986515283096386295454250566253977838856871195958313377145101201197383096667945684362111489865807066239792396283547743175661849961200770667054277955052693457615969950548902493113454951687023356956322907640694384206122896211280865052528283317036090830563851381406632877348509261522756972694580700961450270230171111347074185094183459857362793504027743093672767355878045356746826598025806825635368705547496616920500393137697724606628486665511599727616937007120180115776216842327095613748692842393474935778616152487920535479486645985747796803510510025477077021145544253667265565237335477339036086529988499243026297462153302622045132759879304405301797306311938053230759443031077050672177684929744687082766785660905589145520899871890461654671784992336459787198352869200891713219680021529526171096618585134201345128084441192959793198606395194596230006288065209126454000216942003470521312852851870020829084475861548989980580339764998018754361576781365459140959839850192297769383565511369464312938098696553289930382188784837217086032559997414429244455735253274520309207871493271451920008215024533641715971832209249699670458222755686531023867059038743652807238571226823315194433738713065618853420952495587199790918635266522869697626414837473023502992610150322364748201739258273863658967710062820445790660490983804847593954803183402000370236949746021830775190296697513632093588433317001556085216653408698741568224145944636163234623390249690007242322191918482885014995970066095661900153404862509023594582580280278388859503787180068722871731243212131910365680238713314932058323563359828967021144365261740763293619764287070929629483565036085974392345840739081195461071956221593076371616397582273342213322825960872111112243193597554640382745936440646224811230846818263452275408328309832497239316315782376719676777407582601782259635341092848547542316278912611091629237124234610808688074147453040132927689377165442319966047454558829892635091699534394139997311902676636435328681654808741778272401128057077448294693340356389693330347889194874997695123168408691123155330599597956845703653190009862207149752032020446140907197060108665087184725766164952801564821945933600896957795897993093104737327911262559269971232061033213679178285959218224229685081886958850285591991208288972182503386384839716930125684716088663182681881764953002382875091689518204739144651922571294052042662378005925115269160071716537638151541649981870291178613039800051075543692743543856567076434247773414233288162022630683275516898777037063290405881627761916035075023060444179354228118467284618844635932836348390103440786334022755687033948776518302236146886073430371129157211000433867714552049425559621503515575069378570704178602646802017312814889100462663052525003515101765924211397954615762534747692999222400429634250064376510895533873923096892559179853672381865477226504134237467456042711759718874054721264535751073988096495977579517497717252245672269491889506306456790999893332449003756648232209136577980079382564496890422897644239189730020924189492984240285201485181564411419139583891906699059310352147432244786746421381852001277158143234854321994472886825188320646447516650090086184968603137834578985018705088281410209686344734597127095374859661393390652188172314022692406355867466925208708833882360646963885984564538569317642891692448411417355355640414257442311574743756362332630406141179136124090995701683858974928934339165815600872587565311392246853340254952777897814350970646148195738615305951680753508898177802314768658386402416711185072005460848003995073602388698354522605352421759047080291400041056722163199033614102392757250807098735685777926954372468189113276286886848996305311238847178060465806498059345405911715965398299403345204808132505673640377074655434236322818719224842256033061017470260897994437018972706902241598411967277328899860394417027334350466603047998663477570857699846619901875604529679760116562883587655005852951192960404522008368691103653451081034136971108916069916388074209670165130172572069663892459327046996338341588723120809722870033940462536536649698849777264497081612109343118267288233739097839679962670975228054866107018959987016859690187230589499234492778496203019005796544145313624485148708395752130144599191785169946713306927351776319415371896903119075815442820080566507505227918907030826728519878923710436252141180687063287804965648184137642170340736876852874747535171545857012150903933675155366122309340287941639476017496994127371981851269845690238191468101067647058202626901825381808501134019835794915953578445792720103190920615835361197444161614923754937705903327181789639320948781802206494240154165609681560485798110201334130537182525995259720071886877932739936736440871243320770839022102893771638299309750898809555121206649133023792891737014338169544369986527326296329677878644494974413490921604767232042405049331348144698457552354207956218176185082937567932798565815145695011845546443697612745322459984582850372303176302548120577410178040680173973561787521428978038835805227484988755331893285023157916907626764444446473364024016275779001983807530283591879508316795911235049170759742498285089768578415470906814928924192287373230827055644363753424297616947072582137904903358322164179567409010413488752236429653974061012193335976964409299490289555054376481343064410742525555662849478661565958001292643879218260977268221937819960494570234305991676777138604418656040658603293279836709858780134824313372749307773678580572237735009281221502781802583091830434717780034698645796689517098630921292430526605727445896899427965770889498761480651695126525136900935223278702547599967383472737639610981929556751671203572147965159542268362254863933116207245878007077587607520318714803835840319047321633416195736373258178427145982982625992822207505142080629965917950618944614218683178411205358924854304026433699524884276235771167563597312739613501730216252779704228642469630465190562854872299419173453228792189899095969441247767586599872040790963301790595835150978385835258236516576622934376343353784545263597660039827734846914278535251818062944697433420493299503866908097395248392766410973349126863945988772380645146120046566335094465214125358878628108839997319873566034612475606505563759929245873473198208397806164591760340691405537760706035173031284182287886963277429659170604924484184913516619962202434060625780264491824097063474267321001532738528906969631923223728876702525020931526488140294132536545709082802073618978613672300313893045018389277595882169202140968420082869762385195116479565988151573952291042334912622134027074973896398846191088879464804919851080790776320949851349842083339580446019053144749553857044631260893453602739594789820047074769169476957679382975379523789883331247012101171627114420801668453272409126933280125677801056332051696220690897944985748251881613792592131017549042952807448994189281266442682158506533063699510070247526398265724490043539416682030486317410352790392089026980740266493182271126882437812622955988998598770273460003126242253951451755644861944339338003184186157152874407849191218588191856132825284583271686735046916380373316350492153372332736622891852574912575078110427035976535420749173720564908677074647210089343624703857423778637979822750141162761934395582027806754421400960642255877758805875813532445814742911096146636094022668473030004901476699546475413231030418199664389067768906905562672897353443500021133138554016013731970915058483262838611072848879103420940060976414610473009359638359956937381778493637572989261920589260407303366393746333682000586066961383506676491618144207035047315169922200414966557693652205412136516091456487811359032922450296392159881463083211304897002191784046232314160263145101571649978219129301785366247111992677721675960419202866231999698113950869964895833654699465348876513870826409975037088069585843395406647799692734583508340626323553896729300092374306873470027224551418113568847293986057818944385638597677255950372622924767239658667537183740592164221410687405438221918388400183880464243227027602929679570855722230485564401624157049855134538684292240318973929739768578915303975856240460917415040967958429282228539833022404618412887515512797624614876519965903944940263062823389817893785223131549004227403144506246264377103065224510543280975535822461297647096932026981885074405971840331375918759633354117854743655942189723736021854584764529019810457046767066981430130431854311027311873077412112523906113603137703085242372337203071424565731124690119153174026169054697220366489205244417884968159784913119280683766369620476187356600134035717367461439061155092930472374505138363140066493277678721299646356803795738411976583651391116675609637672712175851117441367680838742478820121583455206233528413175258170575967977463803600475439408227453885592003757589250464453255785558534250553333747923196366086278055517457194598738721737872921803370240997045262197982709622561734564554834883439571411277607938583459970160760024993956085670360419333822212880099527182007454631836697096888995914559167252984987498507189233667349339848035320820695304572911253508522213125642611905918282588832450267264940562790923169983034313099840139327363102034153278215901912662627186195718326022621006390872263300910247998474830070062885045215927399266941619703164932984398705495661879505458075301959937098583491772400065903870345888262719016597545355824966646672856348955348937873121226222562483680938588529341158920325445885942097082408088511840511705323299263135374521851618742398317812440292754031021953914796221561614319305628699863884745748013089150491653714781516349204318948638841851971502852804162609702776014546287319348092492040579649772784600443572306217015417973189194792084245259737981015927206900266718235660005458308792331701455542694632711211045933067363685474724011795269175750200324216493632050466975575349593990001691580692984871517455846653826779100715516903669763332237678227415720827169699979545420617606332577139102730377312689270693272789431804071835555949005408058342962665586747912323242157576852550583638983575962681904457454860838008109500162579831276849952394553466935417559791996155320731548485575242225198691627281170582445630316163770369332675761913581445192679128822572688022051177748974375398940285561633479484430253691157098176629086912891292623707723838037914408511926109269550869128325570222891541334018453166650337885189438711269491740730260154794486915018052588326037291019971351150397796501299074141162552708343426162679365349603412145614953854857000302320889308991284642704022806500700568914825566222234098046438219316078005038975036992401747241518543337685387449130861384357105423418100895034224950686626331067851418527418891636861216125434600777589897308167436860218142251124690092529650417232278873863307579245439027266684746185786431701923133081422776130622993742743816923252371328162532704001328745961163116749452301019735502041114137247356113472788572762580816687876628446922771554727726775598694601316522436428767607289951145835114407326072173527329331876563180650663998386835330539721624398257022418988092589380146607437256037865973587405500566421535046435770101281266118900608191058891440937992613421571876981192402661578814709992345605949058885395780953808837914091254308815628357750165259061213010904267715624921440001448933320636527840456283132695483679405487741951263274138041117433693358086471469933880911046486656429725119640616787296898638027214658148875934508416981647818774515041281960073781951384286571676592241694559757899346583466845100084851296997864346463564876382151649645074604912843420322423514695332857326774205229572900841469834017744072015059525947499722306502612906419239540617108713057294517718514869265529194423834636450399376062680375887973355226256872368337376693964755991068546473862897505897570397097190311655865708395242186982746147983976636345636451440985199491585971896531944719156642260567496156731714298036028214929056715648150533126717285622418656251709545945559570092037816302747185494037635473528272389906126875747713808486464003176209156546126235730822406339618722164760503543110907707558536113396195123514401880265240603005084479918649521849957643875636024783560865179201616235885334883483572222571814924517835943810295705526447082933275242189721325588867578494146583598528436771440059482085839010811105481663179801733320914180551067457782869015876533066254296059804908188172421071169012958257225042455851723494014261586563782074945173581069980839984107133137916486764058471718103773526442653343516086386996304437578984906246383106421498387067903437245814424606909216485098187993318434049745261343176788021986912275899007495720773944926673980284835140364158665544895441686895863046077921288138917171896434265188423202450616717914875875503990957045405293394478971495500925329331639137818886158080777006581645042806702530615129439753409279310106541914993346059073383890897694224273450061772188451100134509298272354472925159677783927528494266367947180726601564491831601884022357911497462354270199932839778542588565702632593792644454898943536091604112067907917321612793856265689277574144683956387604946400035706036044734011893071254929513669633806180126934528653005332383634187880246202870060128379367296211927788469287848546254082082637881442589019055099754588470038834710927625065869474682744046862657656210267691388430174483747649796990319276419506202910383639660383354340513658450201273441355506475168925686393239036515289317289316908481903709781571372042060994479479149976373018267642548556855992526482908975247597886351527283051115137874698504509245219201817813539714002198827679997161718273476328599737585835941545050776147745535893885650159203669289580301167273198819909128334942905195980289041754187382139121161218779103315691593200854384419418584519928576952889681193290458275588467105226100996750868087366106184498084720340747351823926636606873083205588731468488748693043672705353061702154199511505309388700544644553554071364351105932566305755007159557249762177727415303143665184886389529359081390924309297915637178569700047673393579432531176505355245545764690606553373995864453439417483670850752072819488616698587587713182531675540090655438582845756915538645893748193456056665545534783625338847780778059043686675062172329554767009584064789158533124723011119473146321123853508064804701120026417960440680655691222756005105326614245409870030713942718854716086668527882570232380713595059349724054806053948331564463814761647962584044492125438412417089686325494358777982611064967457327947331911265508395595297550796213034344648057557080402148165377805099275969339401717332200115989945401135167414195947461041759587348967923229112989295780854016275507616396408041770047246804624826939229886569328404044248084466417092740595332222877169180041635853647426792007275245456882138690283840492551316001800337646624124644000446232506415000645504180245387946036550167296869489323699061176898041255676791395479210764949948265062839031070552334070104808477216508257193610087363664496994134789379477449085862548443335445629949831635944678672282954481429381336920732584639565526801348932262406312131629842933122540036674507301513414322828854416857659753424077716752809939631908423273233249987246630983175558541965028453510087494566934111096859928769899788266429743062618395612663211945325226502323912667268316557947758393135475586824769281874103298140626104541395377568459461956648482335176262149361030057007903615025694105474357129849130716993576246109313783121821036687714338000341432027992827691918038653932556795139868224468485283591340664239243573888536385472364897240166957676617505822636123745920763078155446354328133535464057288328401106430147857153300270946772195961204344954425652000452487668684008159184247075432379249631400168818189240427897310585878428290052581322664163416762957040693707285878819416798157393733079395004022659918084549360184053917952670000699863272945087943655103504257610841215207844712494302543264037167723978575131647428065357749398742067447791441198964469020468351213883929769904624045255464599313921290239926670895640853830289011832025994696569599503365727512277954466634609638786660959981553257342141776756015484524276432702983147932966595125384464010774458693882992552070956851964209435422155377839793540768797380814257964401642902076985060393023631852467829910634038923862355511796777700402849447003601048047200334011290571823556267164741378430162948767578226136716749967027955541117647753006100137631428661883653084407987412791574863145267304475244173524311568081230623157538595402647206908688569469282422118942055909071858140504132590049406504121554913691943160595478405071351988630390198335904805847214333083879901711187884114881101105244939371020389466898314088764398736899115005100930406451018654093676466745788266080084305892128169357220302408572480405145091287386282505922428527942383654955441241480840840591617068157955511392526333276043021042899504340347117997238759846673141145982125405440019479749581548803205276500869417158653538650739548351180753937277283096152519203423709938714291171599828449119190501494205622708669355726637666497006015413314173582392947957653460395975300284968663625951674468570015888785460007148506423611139426840419411909009563566710927481719595281131047770365210826447583274895277989175615899251416232681624041492513026076223507783347203495418210016666967413522782147351102711047056191262935894266109068768483864656746611450535352860909436601885094398123043447667392435707806542934923946132144377340158862422695948963971867302816475375863609348071819493557385704508082929105478535465660785740710286323710701782480028721409259784446026653551423502582668484371007776988487439478696901380078092740412425871826246255517162084027876090913253577083915984346151507682274454557456988600835907101482047772383906637033237552394168482718936107669316196057269713288337808816291913610050355748436738983995303874483364449849078088036615206160635010673539291358071543153798019802800983968539160515068180118422357645821467354032750416570334181781414038255549979296511502943971758080464552956227733192856668989407289187350760329222217858100137699522327758753348927528858868523293555933341116675794532287742819486359042773367609803293229523832115255124201349460019266600359130229470057213033947814807406750423768936757582128019648867202695338672533006359673083324585950321378546846877316932674531145294796601296480473245624828373187622663961500288654058129968872841425137866113687827232172254350543729462951652326212459221120133976048355289405583870884881064323200870617866979422733798327254013352100337891946588743863062088786023533555892266879925845911289216423424775898112287030631611357907946860099322674149829382517273291759032766927143233454774830547224042403925260674046033365203530935927006141935082843931529020914445637934873854119970295673213676233855316973686261333515288379476931851514759215861578226165142054537315439839242244106889745082776920024926527810988144095405732232016816674599750885594430706852639619979131986367740841850657215845154190458296532412652263869589033483658315729830947656310488794484034554424646824296700732463830306174818544072288718672909635316329738393696846733573248168496025917183723555542320604255679411405825188528828214306885294738761542632456332468496349287618177451102985656190524625840590547816514638312892653699700082091171074271177844107446693935405999424531118794824020150840145777189068699496791428009198283749687425541278198531642193771173869781327497000009229650022847256140164212963530990152892166824937365460153406318532009221197656470730234098693156783965160355484487132959150430274844952170635709258398367210976240972353221914207337456039269792371427529936706117085353954782526638361156601972688010670500411576576573334383094358975370221034711238552650168907869490187032284542758151020193750026643360967183196786549520523615093191955229871573711671937605898322569701196227850924218512591606744405443762793812889502078169725893192068268165541197846917048179704576493477094912061408816826148627223746140835172830942736632794860987236755594200626954603864639605882690262906370097862457037837780428382630201238418641310400116033981412008828316745941344865394345141762652912342315088682846524151512608976721804120199868768778528977809227701200618087719759385609541441405024017678517050359792517652128888602692797673635625892502675671778683705220186921709410071063065801690915306007619898277815095356479199718000511904568936711538073169363352540570516889419499048078051060917941200972052552787418976831085731526362462234731634846107302961021786791223170217452472466596816036711331032202905412139057018998945520602311786092687312835618206242167128817347279661485243996828796274462280954950036484760774240423228866179933104211191052486750982348823482694766855411792511838869925510454997451944261530719156768256208369624104768527912119438190626258899617867774943274799303848374322933522292021244153136724731072775721322465573219643792309404688096691448055114520846257680707124028424118585176258188014388538164802295147290167115997843127415766496547568551104169250326935496593767767395712049016250110030962554210457819676098091662574729087521914589263571509006323038781960331881018168326104148365222797493676348598625038276831386664159792433158970792478992635510737568240810975691416206574408650115593789194283736492912048287366915420468673518392401692092794163239307138056318075181183716686279585121504221835350931015526429353043797997757985713807716167884356487991191026057737262461758807548875103272412567554446674812216247833977216484586266371621057628389476246602927519680627005285719232231390364782924341948300181204315223123621433905489276543593140001186959674693117872657854244913307267166465762742498917081437584911876690094792062541002958590755239576126908916859921254020095242524934308648624781490437389141854342915060210132802216909183345114590162301925175256853141584639816781598644508102013877133158351298336941801600568788399027149589703511612368715792163498309273341112451854998481029354066470851797360020836225908405360112695786323106524495095859930524173667370468549156459711608061441399221302224936725948692174909565947771697815509117063215581080606095791720727780909937333759332234185729391664891250079804928040193031638130854377017618855901152922578858484088209438116862592434919043364802225258292156808314786640480431155394095354042372536702930577236831983320513486526686306290844594859377034443381928464912447739275843907909509152196061389209074281484296143614157316044569818721133348776284088275250617856881667461337958614310417385150791148671723228608168040069337391591450644630174832167786188891206593900105394244017752545957381002948046053091673215022746848917737151698443952730512001228351915451000589909053280190573250455764505330051889032612019478906160354109376672829258076691592511120210854173452655055886129196810887549216528027782779560497295419117658326351954134202552895424361041721594148532268628226931510595559153419500703350108168012692189625216000790079559733733806158341029428089845406848780399008737140451457967426256001545531249968396256481377062329275579571975382164172751333824752197139555732958517873763068976053009909166185745923556745564286536319363062761544340535933357271724778838990877840485144803042750561797137864711025446211501856303351193342011691690771233333266839450445118231641147788886644808353169393499339776172654591206632029758841427849132385884932970902046687851533021002655292946902792931579452040899027025798211311881030874253023138865988165899569233265662137110883271242475771614529296539619942768604831327952903725496589262359538695775496207347243883635647019949385501833194074928523338315478565511546655670212564616769844098339707740692332092205791032325576705439382996387147865500001202601926100514663675157227612294954170975600215814538104411444188844827664575991567720767109256324084279732611605416031564567559904985980894822140055790038538440079331419200710797090031012411289620276221260082374153007895769401196917098635720933362271997400470597781459031006553630482672211001520309762621534865132921627810528545076238733634383478400978883385959956432684250354695008992314751244423670804212850225667178610500337497920844267471640655714245147221825181447854673742918051818345083243320151573118545218812237472543824201777854727590611938087567338300915441087158183774395933903751082309173269520044069888692198646372368135024808275215136116855727712204332471174799938189607275658942060561433781803254219702414310210669752739951998831071609684633311661272335801021546238761557272467583896648707742662682699404725682498276296194298645900300192598374042032753780310708716164610011309561743519778889003360297476194355468958770603471925560834343678806924561814717073101402867146855987480373848988197620531558793551388690548711020448658249573856280034029600791226100664553275197944770331555623980163055359558086470213446211105753162984031817503577033769388141958011998102719445992751127304557519345024519985301444233147133804556608240001330109169796279635149355348106415326495587821417775142803752948522884383924137145399525285545935962024046621666981427004620896987736103708505271008735661274772321932321351850063661790584396703443558868277138860004935805988555383430653555884494393111808992303452547252054553102257103816769324109636858267521812025144578935468150311640456351861072414292130643481372117037848739500741065784226850593005566759677848688167040825155151582292871583376169592859464228714082673094117617474200624532843997667730658583875875868794361610785577709994110069840351521108759490873300397949753311819883544077849071876209193115697934017945194998259105791848058620584019272223418832168113818954636882352330227016905354706063595246665111775253292294804603454907892903415024694817650751747118727741045359582674924902081221666717377556515745046877371005032986998253555902919596829346536848173864665211384074674177952726954389955856662236598338290971665177800112974289173555542303832469250170852502253018117403889546976932109858272588494530967310828515999656068328884259364420999707925110447278036588133982115147890571886953306219055086220811248162470355911622749230808159043693014256397123343578414608112605928806620556399872812192884282863886316015423873184005729312802013039201757437774448718233166277693841549385418550543270464344197701584740632884508945457874847290553823174586412115645653228629756850066431489548489017440164230316827778634031371931072972774005564233592945398912844192160851405027672031448391845444022983397874557294094814566033157705492295919354713497555279055306897663313278088077351058470788865294613797858513788012637448318112800723119531956021593321744197978621904958379841879932281459397030190975463207606171292427194630461726202630733476735141081140724934691296981300789099976080327570172312329934969997376488421467546317542821327892206775097907085372198832575330053529038213180178493339210872493704810187633448047932219250896781725732477090116656243978240161298881337806781746234261141437103645787076279921797250573114744923736236841692129866917490749015944312069057953327742446930091538680778423365402365113620601918089529850059103092114090252542567714589217955871901965306307784052147529033600808778876607421644103372745539246858700940502408462352138998961881133681751053342886303970643709984853860372500681899627060579705843748324639107923250818047016553031008050976751602851078830094684047809341119015317137289566639100257032409442718982116123574315341563142218611796709965206129828089932281432145344621664840634699420116004331830845452381406621021954419566538557652011347752226567499858464599343521021605559242992314605388393609560454567445180922953370841791920258633467001828678833352623286851332041416985358999060290370020138548017316663575063319537671687367084649246748546192190551444665732151216588401678740339091328724552033753561634587466452164505780659395716317855224202515271973152907781372030178182457688135005050323110377151882205437341270166703499733815870966799876810463476609325696415151461225423459950720666483943496966089720268503694306445826988107078934436772673808672169913066186213114021699605788820609181543366012424633990844974831468362807541745250475041418112741625978811685881052976259178131193000155419826795697637158140145034094902086167258717203809977317699823101549275636363935274863055494744292014425373040583582310465667250571523723721646344670217166717751764359053844265029145618183505214062219344673256966471364584897105108897489135097332213583100084504644854079779933936540472754047886748858380965775649325308426338020190123783042140479422586268961591288084656361388061704912558066101994876152215174651385584786416316973225259758284966493841529998631063647300005971211722688606006424404434182981697110403603473680897513398983934813499517063411308940674153497204033781058358317267769299543907714023922583834308238950421806806171857568225754266693520390304424517135084548569934874289310550799940344326354731238289876866233389633739649419801838165421699133310329993728595501190863849108067867737795069722149452311571802862892303121409750863820131554045711356042994492192876030677700052932193000764397772936057354482859116419709172092985098776621269181951741476611850750611319088485259407629137150832354694138610425700546347423137192203599279369232899399051078833811364467544797259663732620495347238334192997813750281740431949987767364791967710925997791023956086835666059848263181257422824453076563034457587462779699385786741881138352507251760639615897679617000022307012320091720585172267392577691095398424630671495565294447822431827905367037427000563370725659154294016679413502248566284276493488239634384967818121975046783848993472642259639083988038471892521534990113455591741995848154951324049270261114137241289650633783970226331123247972419870720474931338892821218911005051667269301739458899584135081084712122884231061176812026239205693032978537772646297227333693464537526852115480331010404658580042837511978308075105351599963932073205346725948390082028483909702721921005785819593330016304185733764893705109222215565977918114640255698262756107746573601631270775671634899521913120820434559491023308203563820647296521997055993503863316237112368551560635689059481234361772598680040043134456398343957944877767388240880496674066287441304197991017558353767398264528166066239085601978413193270208962121129152780225227430289771763864290403523674477221559952221324784348853913701846593940628941014790063398869130750106452372034836243701418427058131723571647429589216901470368211325463104411305155729230782670125440479736387891318322195471018009630756984683740732718712403739547043762432944972577342267226201652761928533221635878447857252133584531244049564020995633597739446615439913423041402416004658316020704789489808266266716617220170096809361504413182422325267764662370732137338995172751436521772638650132066323504144943603577917679822399864991751624399330153444048309828996342651844430385921936617601052809297975476168902358320900555273556330416791089054210390289337693974291642940614846534421618843084813787358117497397434593337047875864550800279793390669581943209981089207897547628531038039848445371886915992632515729860486752307875262494208551408709282009020350731823258089916318712915739864183113119184018152122394880206738297308675402969095427162048521348796461971272917194434935145266015696118998695849745407114719864466903254306601127070804526406004116045506601641111805372538116193130771505147239841657108567286973671435289873722070203718761801654924485676722594589483008397322356920534290680097080720933978511281035452639473390451482714354411100513440942199269834744463080230081883875335275020335220192953855534424145408819191158353992943302057489751255123188491897182338918592340973330383782920493496179372747242394044799438969416105045033883561944968019829405690079633519427765948699204384050896263461829571087897563877649780288450165569026349462392906999441335119785433387297795550245223857205898050531000755770671512720892570080262468989857487608608553484695764549480206390441992782215120460099213561648756414477359907119525622580587457938437819335419972457365930834455572209495168945901361760779359272866749563233236164113457120269711918063315139274427962020755033055956691297179371830551426990469253272036923192898453832912191789995465975073547512113082025200769622458081001543538491093839975674912785752596930917131555102548921817960475256857914718684199609541534857617249319245521086177248440272366971119194127044030184094584559694651548928255438800381551381836155754509001334977085772104759415072479881328470972078006461920118863969849637987880546313881146824954976567776480621108629319932365226582171725133207577400698346542462653038015627808177237858999971224368581435054472338137594688253974388603138632712355534731106345176901449886916850500286573935742634012661834154013039375865178830872930401139071897201274679038586651349149817870516725881420719782277319742794738038950043613021997905985107331242694308426894599299157876154411520572885581581731235277673409151075261767555758253933612407178864211507249268508765993736964238349046951365171772145696959759264280373261599495283179968643179280149311251041047186876254709148599518731975567866711527627048945207321207948492036036206100227356223511089383065896244038805047212234037073471093980502560064645454933125147186739925721916960018250345662034515198485956707502550649771925731123611929708661506113385871014917692865578509014118467794779361369306561570091831571147809957361292785388003219476644618343198995452550973583989199081319105257174005893146753723930856440385994705912467560391256380662300224805776767706471207502413723235413837097709356408169453561242581483845934919672181948731836507579095857300894968692727616690892710062790640457879519691158901049193582265211602138234184202104628240100245362948155473107698844656457013988590034305811211450300045488303057568150615930460329715131484647653388532969534083296143751068681195357495199176618752351774662909938657680231023361346845192023452081108104362570831326212142868191646606024373941278446436190396956253232444170101604150630643752492933867078759310651598929733936554121630946290779109910543412416804393192744608133424835572207221534390265654564375580284342590677403106873648489821108272420794188406738484511178750249168494941927666077039189057761788611107623660176017158067286693388599472456179667436579289505680190050972648822434841759518256150666067757687085501809676188112072622439261515257990567940583989601515252401069729623770832268258492200079850889916342233486243509006279066530548226094643035219898516717227021022747480987238823638357306832044617069956995283342597597414646687234553350659480866687185478297113895015243289024619937009878362953537988880684445180082523354825588428325248222796246610723835052040506514035401186824849011073392572471723547147986795557255055977551325399263381389067841209936691518579595333325380950810484858743612798999252036007541561141229965204242247677122930506491179276417067738656941515457532911191073472461521643875238440580875542196962979071455746735153907587855627903421268788586546271355453346650916128559500278252355669724990947683511131208134978988288789441329993720772327164809074824080327312248849051094710845006893763323831348125749387743876464062016076654981640510713586393048478196898742614800116593689427325887650122769064781789476838002620031871546061681827095906942532927993477307059922020670821780917939620749802692660856702982271729520342398090541509967165376955129601664752296582943755479138068002410642074274545474044843017261662117074845115983176667997075782014849322941454527255060098476648607339350469185932256202929016547921658774222177687739602254392624267269918734480752482059843900571232351827222556563913763542409610700434632389495896821669550896427234762855501641869627316152692634597986717804745377862629207209856501834948338288917980167403275671630793861048336790278400508632270335308912446507961946039188904210112247426159051544755077729246479297759171490760993339144660748729789731779778580736550301278563585538731221028857668452358016119658642146733125270398502651685682197178313554207529667808291799854608465614870127457291522835475586241571543762286481579916673360362931128545938874808438675238427325236565875312080938468885351938426521093211375898886095581047398424465069864187990492165315291501574214301509305494095838863271410955306332686301741708427377234300157407318162662388778518719078750417722726180725101765696658891696402695647681781043016768354795653562993478134286036245825774726430098882165322506924946168163755400561653037819255977366401798675207831767772074020046649769161634011506275268331957029039063647564818265545374192038805810204294433551087378323661017656564527836880293874750903805269138593857065157105811878450921043406761458701152093484026765689494730369627418165085844198056503669508522450051193227829336865523343874437760767949593936945561359623368421236431505118557743615239903087671722748378562969381848890560101852469718448415267984163668017980769271306087480019835558581709259791594127767934975422812920652198243549195443931611205237144436007440529791000281280912429757350563718365311318567415447413025820970299693672925122770426822400583239148202181559873146226384923879932938251026738317019502302215292425224791295146134707225060209656311167309653536889091806888763348638185034063350031343517713884332141503283408345879130146266298822591507390238280337224762821439172511737875217593427681667359848884101277045719441465616931549131739548378681050676370122729870412835738669657685237346350577246637228864369736551014871468993743775821756025130527448181160300596862697633250527816303054151425216531330175530009689667474410831524622985665074845625754824385100673137332258224854929802635065901283217661608101720859568332296014240286466090565713898852142944813960473043123089591419559374782432097909355821174065810617770416345872908620514321536384373413635894699630521071485391339422411667242033591410140956104633400396761756520807372033682572629681976829835060818281094124091311831304722981434171066632000990604052373496909507377476183205193422596098914766068089957549528251603188626457669450367786706790687477120750357574859764287518452014134152384809494729149382289742554399839990727189287692360991032666471652692031047054925072971946544133958294375045444038915635475413662740516697867597054795159898060061748644461683800029771147136592906721193834410484111054116338227670373787363640904259711665351999655284364000229164260247223842273273367600134861321359912975169717729721011206055394633439795895924506546075386031555590839799708258031856616687827612623793537491921449402671110125494067843083979972579999648214766578580093195306009700144784721597208083614219954954350389289704830097440194558516401081214617873536416845027971036968327024605437890231397072780287040529228134138347382686217629346358089929463612065856823161626374709705363517138652568074242656144571169308515694565903850023441278295876045937212623922487677898742923943676073776729122364693944191001157919688032697953175196459582327311820524088886338294462913450052588453182704608104946442646171521186932087300175202889596331476006042301186673662869569175187417971477621665706899611132498533665408243062130143714669974133953759816414122653502520326616662470564651320485430503908383085167218847458002908094571672821464557636493322244921795799482931358738404393263674304351835333360289742211952860294620988120029948218372524269679530731725773908684280898181210757900184134521071897649578612293511171454372227448006357924608894988360069731153358201739105220237889701187099955712179663439796486625689787082100585075031206136078554002658372815207704496335550282892242593524237995733481632827418852062810765228815031745956337300313687199098331392837490705765328781158552989740281781980515725609848993602223429031241094027387546053312097128721841512543409311527052968789991658795417767895366735663642229062774706712681185573157103720130588229153073073305686604779294128587892209459003541847298580199539260652060078029875728473036385600235827283564066660347072226748918693789273157159201298517778722976226633266162124224065907351080472992357990211590728253377573176974890464883600060525001378837859810253696883366877675735195599373374560692152556280248836198731066831474493364867734278689133368390165621035284762456009843204509058767606746077182489741361203337892147780324359681368265064396309373385853468557431654244194944957997737197691072343178047465177212666927469992723910807550208586334477544376285139175329641167928974872659885894580070172200154191452898297902721023368191096274839440860932076490076537653865500281057379652120201822601494159464570585745648060757557466322541645685246870725735480395048595226174908990717088148003478479891898759175973742381072630377493520226359863325935937408977031768770518873045319355475260027501901087793911017917918242702208583189720634937595661472435650710951639987535568717843629868127639605033125684917740271834694239776133138224736789278214256588377347614362578373786286817767738269353592057634396151784639410141712085437483002651247604802941514152815106669566515572800396337363492496877073651901578625387173257453069094612400400248217877807312096236227810246044477311263105286666635290651998672522409558812023608880590576783741811107989172545575360874151140948090700550736708538961362400843591019916534463096082917348193487571681349650369275418851511442631315975692508511659677761540262177185157148965107080990674524462080628287718715743277989374586199245984709304647432836591858218220657084325626100635074419888133934822518415766184265928641262398860292977381508473639665572765281926408340574508522216459174684960774308707119729886671752995714856814494889976831002830185271646708141751640574182057830523272199612244238063779681814350081096792600335420526161315708110174338294554491207760368707136290594490067626682235018853349828177777512199006017727195118233743889948741614677760322757482241574394321748264244903635538990075919846620305668073208019861564474453529464783429500339913990355089805728598775558768773191263879386927670250335233308625960224649763841743794599896896323151753976676580610749736393412063878415548172847937001090401661713991578257193898487059818264623623535485453015696189297221466905971575370607573179655391226172885903954944385260019008684645487490709001198513319437511271688878339540796392971416316165606490578003124793891257603601779189072777771170560182613934691924418698030587270293707270859983789269237109597077049393101351581508651470798790516911282476024522966657162872765569956649021895999517734090220462995478622431238770836583296429954432365975668294514506439359485266508407407614031687198296514006922400062849781979491589704243337736400735093378656146852959476638297583989666219548184755598292465715888760531700514388129689567829200360322502232384196290594806334752694773518051118399323937385978079151886995282215265446316194595129231141300452462530875741663419442049339184666243426580900696429212240250035202187720267986062521528831018492338352518550898340732155330278887451797135459547667135227925151686927827739437704459585132309907619083169848932803192905515774241005760830764660011490883946533001640776952950723296848491934017830753812480078897120857568748503866224595164346908739429723432405619572093023021534702786996399810987844830812912279803592115330908528371506852576937291537042962295934595674531816584515980406399887290356511271497650284346999531499946156211743729352683051439119907247178018354785311118939502456719691911554286624374512896598812185455272580647606659194192651526149158565318595972184082667547157106144713917422486942338343588056651976929047152107041695035873641013842824406245072956833393081967271896299593246382431944786302966400341112939047206218292295475801569109319896818282966346650823748546180134303375294455445652350361998679675944069672305107535454823631026047738898287959378685567183429953170686946792702885090379159748587396795011193420960332624411169004015917513215669439839489678383433193537004218496944090001199290780788926073255462417196184978907130901212208734467969606421302575550166678814025378952060185352716006715300150145630499782222014161292538432946915454100057612811095054566125332124905823285268070584201372574517333048884341499900536920658490789357213473770950440537188914885513555840023338956620217508729125437079203731029615823510352222705730426227762807434194368314608234470563828412662935837961834374886737764323212714285898338110290469585712349996807335998907058221586247747164333097875025680367058832582194566801866218577294996416807729096720919065952581637246643521604905201341300598157898098746079092704788726887372139565996993747252160254235303662675892831972862911983976207228771682919129264373433059018725020067173750553312238307399924496115918935409831306976851875065487968317281033902323506079908183403287322622894912437291338884789422086336733232506124251498974647823335835247422149844944200750281694035391360503162082657506546688711196127381412415681548546086277389691933705985964991372313111572740371548454699264252239139235676583569765795353547455515298716888230105259061556153283672145337174974762098025422380953502592099288596284720694966660042682526002589635557602987286927331967989490047983404239241169479415206874192943113794193362857542153183979760650961331124264329795893441795366499906753239353797159252754418906968156788325173175802854558372048504944057050541195297291070205647297865098675521777382502781887601647924608311874166768471689387631094289117842786890491980549610077012460708082627293226288752455718822270637145776291534983949738570646238268102533865714645965199526582432693933062882036718520444079600902264563819624125428133623466520356103716328090565458801014680533937361114385531504290641467361677111791491778664810173675533895067466407014626199356722627362057162527854550094728040640986610665497285927761693966557374872958306784480091259589015039264194846965461159118271056545336450885267344981550357154042364130787211198766697833476243224914007171766812722079218131942851124804756348273169790401011370572075773371241908685766942518611747820996409177197838999253395076275249186258814022224343294096017305888990264963019903508607779533500649574807911997050509975343821387591283465253861115009336509925984765659034419269831329887720420902589948114648821385954880519469522540793889796323323325512523675634642122042696073991636557916759820764173385717721147985274772901938621396646670346121061877484557303700350572127827705096803275718179162688725324593948329902840608213727380164719057914329364980636913813259761012052710829174904746323347599258562902824568200066956900433941752679212468904017570176403279355084735191658634132009850679853237169363152029347341302521727096056221627130887914090082910542690414946440342652386081352731361745169143571306821495680894621242639234077135265754451416458710845585195648326652264279528982370248849835728021728902838675234803205748574064143069933663960055911495400889271957964464589903182202315805566499803337414475089110275612447474133026979208628953813028266521201708013583869451141103399582475483738886092025750743997221804896835249013878240411296471462132959520711275556217600225379950796648448336567526794464138310953981317379128785971967149562129615804728263143881360834968947993680083891533794541179333867592477344470263646305898484679629061934889076570517189061711113205119086225197098987888047576929792335572640344025772678994523077114986004933555314169948203243723577731765355583941019624422383017082635070913715946716490759769751746632108778046811905789558785596425900281953012790579906509894112316864987291329371097868210702580237514271658397725640556341726193769468860729335031731342481869880929043447428434790635744577014186877943890832667320568804387970189324549160531108553782648500898500743299607060662756314275666492538200347149578338556085963870834973964754504756057242033826529425951240329413595933860939856411801191054511609569142822174936802245113736864966864248371351907500319535390388914385897112288770629743519461363225371399669694847141498983261565407061599891713549557034553327484855676906314442921012590395240266278229465156926779776981219450862730259020265503705552448564084490560579683940657479761192344948563263947468961585544716881801233240357058476062390636194380538708780232969474147431711210026182472099692067591993650178589852138070537491268295721748375935966551712216625684911278440036492529527418411814207904377106468208894720990254501767802749157827943070821953196352677428625307128352003518807338578509630617524004770381878002542518353843859319667762848038986333861990216223030319547041293359941877441912458220812286753865806626692100731683828105186241074078561533330222968575702158439469327659946608864791380137777271221880833984163510030840739013792374751394261889641169653482199401352791103730235314379668681329516291815794589574622644832109190230558619030210751125158860868092555703952156957775242288714335523706227216588710682954348784880855959853016676306815663740923061507996178896907196618582621784604856101580071492531023250687700924678670448031441784210969709629146905534547643298527656826205089813058461828783099440634379600054052156827287608408164404714391851787385440099493771997575141995413997759529379411101686545220061654171223749955856401758117485112324032398558428509992238635424902430383709032772518839711382078196719137024649757288065644905312025347616154338762139311871878986486974029935186479410171768226167107580601361702157241833892844070592741389182125885112796354992809721960731083251337031536353828154579236758572686431138622727783405026270414682064108574641137017618467343476901644424442170652694288955863247854327214720492446357394672259692148712638034633040261896534226366386712804731852385074132598045867138165370387473944799787350157304997395894349277510859602726681913402431331606586980766660455841756883568756461597539334409640102832567324395464258629023266367148266674197078057395395572353980673870924198030155780694236935663791021545620329121006961036796115736819543631018261467371781839276592602578576143961666904480073601901494299770497714758212165834936522980920261941441767652859767334720034916759604781973455136316438129766832552693251257986246291096117747682600680481301034706905713944709600361404842961179411950278506582663506695347226974356792881112691332821385659251935034208506024300023914531534237097231461607098301004757596778418080057419969731065463160284936072504522995116296990016124726345280506523484586716428877487921738314129226158617878995077730876366863206259946412476056424234647921084333894805889100861033718908239940232214672528551237532794248736878048176929722828395578688024730486321773895057467479680538866252735924762969923365187155775807795306505013691385843324341235086371417752584198855099067863551486874172930263871797861985091453732313093182339521665613910917798418138126122354159893210235540585869223260860474680338080467086239348648682147418835287991997424106453127790227895848165880501507509105488873199213969142757910382681843773605235013945221996336763949282778719627128171063055804234947222959271206063521092742836268066893556642337018616966460316992934711062037808816912362008996048354422922202540779130834001747964243512263794376315303718338767551860743424515333437252304592319157333214148985088045725792227869225797856598533681261756961322065375041900356337832137903113951443913518202945440967351497260361126043731994836639848141887487615930961880830868981113776710398366922400545983820787243207323662542918492912796115439691016214828274972141922023847456268108278162099256073619186522240559160173105847122842637073454400073925579007977485916102146690051027684832479703855552043612756429812931630686066730489513992686204504294577077105204082676177390452712741788117010595128984038361602462210459549097649460513279629325567334306559344678276636350582296239324577456089037761928276040089660785389220185646539739021618291695251003537888140836635653177590411269028624568173986913802709772970696312236799471267926009771841558953040849267762458624132768002159383622681251063017594622479733751075525301211996252613498930391287105999958569997051576059209922848312366567275048436012990899386423618907023219201083984272707396510137046054269306801678310362659956627951227427258640703509311559316293457714992943423703275668311873098170872567407943080235621019434747985376184651847254902916895145612887693948706002692810150440489704011114151237611908204598946488173339197452756173667196531719949907366746505247570455871691760646976301213661707081493300853928958901870200526478158142922215039779490258263025367693530467943348791598130073768285365993934487290677598128604384736350318142105715795369594531310720366265841689935972154691642531296697433167497454651393382428859927326976701979130186900283167774015100121139075656945623064562848212785184525456759520551068190492505538489758533205161824148884647787096482969882845391906812451032954158296044079121333983668788968522437146526097476249452462037120101109531401222841591509182788108231621265557109047085053986770318564031978066169090112130790066631015240700195150746778977188277656385507357430653863523117451886341903351856376702210794586791483137536882267170874450727844344097837297624974858521494051233952374270627689790320628597526971008690907427235947798907856017597846907954056428240961984730925268218477292611967199720334602295576239624547466718454457671254688625835026303737197224445693243255636097197571331828037957624710269588223670441938020853152525834440537628326242571976538793427370974966574542308648915788696480663787357359966792436458880273491162606682584355567111815155371886554346634984623393900133616980010782356469194939410303817804638379915503526915213729066105652613851289278393953915312907401875549074610355197920209893713258024845082378928786618779373733909696099453120759949123234055743523838180065277037416091473585691323940820709201662565684117108017888975927784524564289477479746036227905180237606426836244366916092775020567143935780129445772870472366185804646945749189740210434288368554121207419269687730812669759946941018889410954399776599800897300513609123357223038189195039205376614667688263082354576856276663995716930103788347873479648517091420515724070656348151008965256239928669566342000105017612117781639452882785048015773176634274470294232479116883034836980368544693693624560598366645941492621842689049033715076129221679060213572279282223666315935412881285087658138597518988458247320861322366022339100025489810898659593111619666648523036234550331198848518534371884900006455785615728659898654938885704484460369742037742953940092731954134895203330598379727793966218536879660829733827801388099226089165864131589383844232345584566976737955440865266335282814202543834649778927566875159851485311250883226322359777252219090831594066524933725809939361282366796544114335529592393707615163555208042599739300587963581607399831172981701913594563230469705871715138596668169278380363996277829134871211926497202588719299397319668193713057219350927806781942984481256257763758104981996279720765221688606718287812373599194890748643594638786531594155810393634665813150693534985448198999945165149079169640382544301923222819828607480314135248030940944122149965304001311126033132218025057982880031186998749511911765287494842580058238950073665516030766830010606611221145922998077585252026423533859760553476643810570934004547633310561388237340066020068912124445416341624200802421343529520913981646786138769019911074824912402892713996133074670320241478931089576294475325933756196468388451330605604176392817387066857867495349343675560485355919519815257332632730568574368574257340792184268426650289437735078774267092790392807558883920290840092735124182649083593968957686115332862143410362950491751552558670289592493091163246585121615494649575114386067861210754137783391452281304336567028499272054460791943764144394232711442963950546357380382393150230166589694634150009824720408911975061067175256140933782540192805035911348994914198145456604726683360012157063683059829199369468295274154520948346602513252819612245003649307272682896029977914799781647168727279123247974034761182584694104326453292204144557589496707353410646355115169853649199639579916786905040582400956070815525858377596430261451523135160942111097685082997611110895722335491634964284267298721993622392365785462946502679269061161590882124658966502800091073641689368179217382484430233713998626604228287800940954738174484216165571357737482319120117068040338571522844918997046057399734290194895370753424216460153820809552491147383006376963281076537618800960778664392425648686592889404652641357107781858773661077792354395569787275638648112876559999705398282017341317013172814780571468460161563477555316518822413222404128878312769586925341725779069407234894061497631941011280985419329733405147703698884729762174639911477596809978045267300197838756545634190759078023996966593439316033178095339519489848994299305328601050669378326127089994207916864676532966164269042900247893162488967307787884380836329072148054425266969302005909803752745515366874464120448310357093984827538400914230097433479854686080841546556889886435376303365420062360026394866214553918533816824423505017197273118291507697139507200655271723346926059367626132942648503104651713650565521162515901456974695958849301076833309397121072275325020808961798827251514005908902276461237091671745260773454537515073577483466945026795540219523326371244417211458366672380028446471072057566276442813252938372089725783382176886379600731842869531325980197663314232111578579639745775020507302067762057863950203008138392161411491793830385294144513234884235054864315468547750838706353033968940461135599468161886539391194310257458918635927765857739826300185414608948955948804623448424782588658436372938438410424711110957603635148566767645694079044301304533951138217051891700855291446166262451125099290591904809401322038510472873668868371585591270635742492993965922919802898827968246401291866876539460670097546522905244688637497117101203433996863139767566163903526475249863457496791726298896886525658468884049248306948298325080533134144707909958185735585415549293291969482039822728358987244651530964413582784599604112679932579275492783939499151262798564901881072722632829671640096862093692879805304363475103251955460086264454107395553559378230436662685345402960386277809631643466390328164160338700472434386609085004369342285737682894539677284323342156552129873693142533189946729950774044668509726002445824753668502953075980706952185366556588920688196691672388327981178439779840390500131185311092259955123133107097444056957625972114383996622322233930393103724027149102580928689319135477257638694717531168224723935904129851935863480031979316389970276325620907524841998024944634023460114035066817471507381499109339811333923784654175439062737022184524537783967348364695235944631825778197377086590305067910639745882733802524659659628357344733803440983258613030677185913453781293830475404587905957352664818806525299541548029334948552418902192766345798324118368484946768475182538669734181431616687130168833295325965843381439540579865639077274444926462334582967991417454213363049358944976641280019068550079603863741741229437643485289470627955826518463158497057089802429435962865446681006108748051899086546283666342279413610011649289260606625916219667697514503787742489245714306913298186219057102790360231515856526944093986619616135488473310322762781531562649467506258326708697489402122239907380615885628663935333472912848304058704399200198830060579419106856902336390619483749284094033139877081468990298335680763775988877597817221839315066967380728974012472540184050218868943971603438592661372090243555822359715771526822243279656643877222104343782263979176800608860878941182341295942525782456300189731391413750845366880300636561376137603287347047385618472572383771340082055475316192653845091328242765159020260724892100438855999488521021078563391411631455667436393973750763675270219966426093678082845487524129936808345293649322046234718612621063377605175792750081198326848106385968915930322194100802627925016082625090605935711054677366190414479119725109715973336064918777780835589014861446265223655885786546258832768632749438052487222434905511327494034772674261958416098142164593139493593015412532537764723412985458649605938940459869792087507472136421954700407713860891099177030304038010780031004385770047221582657717497136561061310952661590440417378348951186526113871367817282694697251070175721842317046210070753212816248319163851031674850383266601988271309028241185716934763496866776612616527817174544569773534198136822506526203042097935313946372174857020455523549052364137153176199725177142227062713191022706087015231381682274697297383320590916027173548828214566476815070695263034635925565443891351525195506859793271500506158652966252596051885640452425918208556286399833869664896571067956971566364379278200281009584557755487665023802959456646337282952046271157446787149618439703733667865123350854499948422120361162322518733077780579391676412605856696706407190191007992894406719913854840403515856708123494808596994438067071394763885751050516400766884913982383644220355446998028215545030099620880959389227479937045710024093751690700070759180811119929228574275112433863887118478105453488513206905659238175576211625273000876174582300162101078308194565089778435385812852115757216755585489896384124178520823584892707213541287510184513117225149357431012303927160172873084713538760048896145097956773730044610009068651960171946480352905959087929088288717090481094431063120680301747870657443781524271610385420183818757714310418625485573822503364769217203765322549509819300174290028379470631363823559010739934224052721337005614381957643639259411444744053759509549514886134903010121767991760784393105410565451299931902333164107334978757101766582755869293855178145001495634181369851762884674760721058792242910175948283055183632375992261342322751858916826882033517873010979172238536409224369961058848238833236163242772553083431875924100509500304223031621393258714177923048886292707185583035726680221131219216666515966089330665275759047458389124720786692011861814129216338617816735127712633025648881926279183607749173620285271342903855320802953578222454521557490350743758222820254042609200787701566878413318896651369190260234649106277087698990887928085218888952874455164756010200151366803327834429576061387063383550534395220842555152522993225627522096270115220923581782433106267718412511458740257751955256172686715911287908709949698399736583307193700939450982196723062911913336463029280027007653758696385706337366988059178962228923972366346240931607991638005887199792896372703328952618377816262434352141910838611610922469357974679058661067848105649654964544417250337563698468452921365868834030244590562075618957424051561671505734145594866762227088361340225364069388850923011933718559899731300023551179622060610811470599677657700784805005353160590509740208135783938883052269222335186788933640935862847353796417346645880255744932342979924411642419655214628430987174736158300826593470319012832161813054018998219292677830885567194169934136054683105694250147047182039267721168841491534054202339650794589428813236883154171323248882206484184847402628684267870753478353706011340870306154583180076712628383806823953214977185686655288960377641040111386304069833664578077181128942258951369448765179361835505965811392370328260739759275741528800728277012748847749015869384746070327044572366572405603945575043465899690316952721969375736040314185571955005235097591327505535499715697531790300333432599328086486050453880718779703279367578066127640944498805251295123404221345782130834472985824603456103532141067545156426179634130649497948378879527816708874160918248587858301378508836208240201885301268011386450939591750883145872355929176747395237538322743136477416552932623193105080564949219839122306720489426541197877524469700760294828133494915034927272344717302628374127238625021763028762885626333512095888709804435623946754118111009224791906375744117609530228329754821588489023988735069339970177067436102485934171282683261233328756376153365192154537794546387255169554755750963575675844782642030495462715175469143901360413981016082303705191468964467382066380224963201841104449531889288693620036323936888569193979906261326769187929032363738412507394632448833854258204654075603413830342173662687283850472745208849931563839284070678143221925252082575930047528572700158941641743682292119126867265336662728832020033310092705941501774451512737818794411576401314894547275087535235031550652366974512504925644969227968146073331306931062945628166015409478580675284365862162674293635550940395586136068955319414288610619320019316998024381108264722009055435255532327177006389627242588253986512857136850887844274552179000703171814802355732013772849983018091248451103785913947723056509400262724243171145850112190609643613235231604009813303486197475443190663500903832013743843714718023352159688857709088021921120415921814492961421061842481948667286266673554720584684567683633501785911547078960277788386457096899378929857875321643926604024096396206015203168588673402955155653288311191858939104924142916015474186053450142954327715691183125672436496209627484381969163406822302493543341090719242209498329740899252208630930297752413822397469184956182839932512006696454977338665244819307852038675058735552662455633127450557055587734235992267156137826628599107737150001764433697337649754442908899223790275034844026813124616394866383003838096158661032528313072212564440541178960498402242705202775767595661423854135515577170773031025789315577320557691599952348601302880720501129558461559429675502033100122477688109730368398484808865780460426767615895394967602374096395165822313856565402752071042138400357012368079079320344104340062531202078388071154269226946962155773762783068615858501080800807479611355476838663983363400835970294007677659848177243012363035028431431761925963097950454974053854902126919235544458973100010431710073201004516625152746871878042953559577733774431724353281484087453828283932016350850765531129411351595883346702262716821815005384960179323374222267235793358835927760232598829318307770966416019851740464417298914320903210173574644121962419653937326657212105645839602672607817339138622288502410743187115594229405152115505076037747670246014244887980622034167036230408527033005718344085518202245951887902183784330500270163718001988858018858105382410909955854603811089810430495138630963107198877090256984575767937332455979514390421931640016509818172942059660260695807319681470530146427047217688629027516222721081061587356026040686915841996396705460376700903419278815257168924221802002845549016776033645657140923111364027420164570731824222891395484179107083563737027024239497544202703984030177704228940428309793680026841747679529604844267613220871331719374517086013842076540178996751601380585860721424013294370736267304266238586532712797456996996380657576471557283405112404013997893205240738255777878580455246942798126154863258832355526148789430532545597332734608532837327768599491288662297000027167911573377238633709628018007204243566780400268131874371980849125549738206677934561625911264812236288909173455387953030697781497205416899165020158003732542113370890959492450457501864890417610423938565366903959362587321161322215390655001060080841278375966506287626940535753462525545956955813189229487556554271666650898066679519276114391075909558439685423549860337985090187285428893532340317111613961661997058531721935302466280224191312006038517915202869467276157889971230138152208747512063655453941572998116751906740013330428300887406447399795025935978190488259766675652780486533621376492667992463576271358986923777508448718428794564179248337177193743192172058086125876875754274253232120077571124045662955394673648377792350665430158466080462612996124943602286280283920202308030511639075413777806859813001981597467115859080962416716899674603528707375936320447502897102060645747356880636695883558094128375208563596467574911483066160882241231419160226867405691545672695741290246340923471931615730174332100768184406412507402849732804668390779659367068407853501450600944903823629204033161664202663626940867426945962025154947778691524119771680984158924839684747275832149291858218622191494890598166266528411259946456796229327794727794417678946159975263875075957660717502769563499893714129117642203295115409807202587093863046965199319318810763240036884180265824212830870366078299190490582552867174307477729478116967396542081164505262598597426234807250883735882947522726203965965535570832675538506681388145100066572894916116494056662890740665691846402409472289304510481949627929016787475303207005224372182531438818082733734850327554891504140978216179177927132963794211835056533406353884078694213031366122236044805221511391183340734958476903355480054003912776388159579452215416605464146122049935699923413675810143717788357632751297954607865688913430047982699358126134863926694400976959565243329268046560003202171152780431578390953617448039521154591453296536172897406996837133440780319458899567741435554598618607396766127840865334661240428543534735971826722109657869070915456557542155215552248611044662596566500851064760726590716947627138750351548119826468761585857636286341700085309231795543228279012593324149106472631407884493919710564572971942052084469073578411580572104393760001000145002643017543404872666784756234731722089510088255124970891586416694970057167417826898351163343054949441890093545325822781679530293155819572078822314354785634998073657978667875102836529720031532708049921961848250536896037796024158941276256367976413553294258546507841501103607327741153118543337727005028288562723666043306286712847415595999049940073082964762679661053868065164764450339825053324324777559380290059101856862222570988299048224009339812575088971464350603601314576087398997538041848088938244568140771971368643987820887019122772906843345230245951941329779126464265731438831863733725294908872194504175642383686320947854925784731684597760988018648222656295791198508851918537150149472213498978410533280174287430521089042766234588884330872852448475161438104855857444093206338459875504738526581281965481194171746567148565297442482283363568295017506310027165613902643033858808936130933425525778571322190996192357513820284426075794536970163695759439655725243120668561003105759810839755576653773406421371852112430232689638267090525315468414771003254642527564665141099671373923819283119796802424351122309085722916590602403503153129630967354505881486728934738534362502744440722243226189259489230314359812262431763726360185103231247558343543340348752620052051841413993679771731646144543031406368872085053180592999808631378192367140499391953971585658944629190543620481499094547495690427964636378978313263102671723776393500109965662272864203396484439683800589297988675074086775797378910425134465915505579016476064451442607460940873229847556270899049437436020845848612050839919390776762515203430734581544976077643677366729171888433221720392375318886335409565872880443533294480906083267023521958409583054379555353135831085591626588000798365106344984853125554284933164054867365724430089955299673580040632924446504856344220438868237120717696092467532567796473735614421354732295220172867750348503498669172366700599949731089541628166671559996165855211109883103187679077650685824012512962791977786076446978591685132984656468571171760990121226816692322162877415944195801929810781117003748708975518352816772433849951338587958562425563952034322221450331377824799875579907637575112408374696225992962295788501716293198058897417064938522167446840718212674111295067981972281543356844709478314580914776605783588746336833856626659935170420948626288442915249988090058004484076628191949020113950449139152630565658807174197474033715034535597429143561789926609807241612854183537543579408342894569154224319366393960360194384514845404856526454748758053395079768484121765090542517827119064360732815243101541832372802214893558962674713895735799281193848752183619335239074065350360449110556896695558004480413812285014967628415164213358276943954768932044607804453757327893231256202266644926495741363291381500212831056414922841713364219155286185987800520112635029011916057233529415452641906903969982006417875298496787680659347079662742513642963152165849727508991661647269472146201756033842626402091217069576382393289670472834148997337219355169333349906582536860116602811590404137904482510397732597396915730653291786879044489304442429043270336321389333885115100887703527857411178656372710041877891151017450233808535411492279423981629539408226852583625371239411426614141739711881585448163575417243379606567006519053392436296997672398014638626921316790392522554116084260706705764020924105194774311173291161162840936638217739429401240699091599279058499284109221939059869464563659637921054060883245398370343933779328613869987566739284325503246342904017373289595370513999801176761611080245781741323613726005673251475641662830983266103131658437576203346676998405247248902217708097004748133495688909390288705009189187001992508582809929838361399735435425240158456576020282748760273536914702574196160926416269812265498537786322936461916602264692266912661092914757297563620430046503886050748239087160835245213276905499178565247244349342115129376854195565833940116001161913953536799668204268830516609246672533839288663663840238529692006318041258700601177389352712884626115299676002627012539424799995916014341894370644677030542201219602177810293474750636940329731650695873259651319650440404520619071082180182225713566471319459041494020530922718370968676598695133616519170633558063226638087577359868578428182077981994671781840059691713802307185147578332725041457889227584155845582409456129388714697629621315636591122187288688864581478844282792992726193715339727172354270422712532916957996820374985780669843805768516920011732311373990918760889152632245394993231730176602783938401565032684723927321617795631240962604011664981624979788390739398690959453996662579740862377573964338344786508323855928282346712604974923128838768456650453350305423872208377683130189807199078750088178801088752299164169172360923649405297004874352071593639343532415984330672966364002875038575469238097504007707797572105862356976810130127867773612621320852391101487331758046441032424444225325381521662006482566261236769839285825773560139843361376890822445780763591192367285502104062600530156818463840253350129282504166040795713113681858887589058088852845362329942776554000948087617256295184134066998993928683904318827952483253523694168934353949393275050617987196032724417048837575540908972964996091582007226753058114850825831690166245198489729278794217347480831808020395992670507581719705736725039017878322985670361509159052326426212095492372772534445926455459652532015916029209373534743029227445382707944855917355950604410833111763760461623203561790629240620752935650819175135925897474369749263593760483222918236603974375103419763354166233778493584503023107924223224323091448792313867025145279863591892974479809603251505616494900727644252040924037339728317509080573264104225930849178872429022024553138154078639074282708524777428658852287792288781836307830916066852494488699111595667884411028919456557782629093841412783199287883762818961335088629623512782443951592673558104545844144202016399854900668051533635006466115231053382850682293561205896774631881331118745711773795742262092549114000426232896296103410942274603830780031378238532259765482827822882344989412981737577890629456555372868039906351127890472154047013463812247533886571645809554377334207952848575124884383109563908876556663958352639737565354713366277200554662509543590556137019534293457017779519994102998528735451281116004765073997346234157666685292941416808655830910983680380706624096739687570739702674727405161632964340201590854671579389061029818801727755635461675090611609536055288507729444463138832153150178823375821708466152008839288996809769623799487397401816263952859529656749140188443195269166827602240790184794432164829100376342962332053646390953212531899521048725228770973016519412333888715677622183206568213209726112261515661568032688534931232543099437636397204774211449718768843415308568512060070072446209372513105558176516434570744531626642395513966784911646612558288352572454857640224173602680881980714541660842819426211663936427088544543345885663077579389299285736529092828233615161269540592953333560747500101093602450966269835367204388099094948451214307882036741246068486075320130289580245676665445003581458326171516155052472533665649432956950645403213891670721458867760107678348820412222931524265482081304931920778301800336721320898340966072987845281436546310718613787622433218294181898400602701813806804325819115622132074636263398685798434227069678756890878306484791051366848262202571117925600666438598254753995660659007984288317485593688592929979174567302512928042280299204096079089349407067475305757108749661099715020629913823772563443912334214494375496993029137066069004816373513626228550494399365259718047422441145413262631539765825368533968036334850850896610140685046783414611807230608271194315381054015539130227114816255485852643671347818831839427048814729799087976759281536896407262051705530005252377272434287908429493781467095290286261420676096928006547462615459486076444139963820308958869914982675988646174478833862285385298781713586768944811838973780505263305194289709321284508661985039110783431490570516876559963972374519395386451670365507601246209736881263528614441090349386705354232805119218789823159351092039988152552328705551824070233958072274498505041095434780584101194374840841393295075526486909667564888149808561037862332629389658743822378421662262931376077493720589307684204791139175954397291411764591980201446877947798341289761031487445340881239078519550585266943534588539995775151556862351944402365981696129293543787574636111862542549750281177145562237241694055439767906508219881769667385021620996632872094774372915196549404997837116246647028186317969606509920142196367108812332359209483225171387865077118359407247759255664878570734393501676698705826309402221399735684552251171337824087672637524944139882132385264675576817290997244713135275109526199689472686713164452209375343762320682408300516849262678588871364666142673947326391607062696129192987124542017120821272936220831072850355134773986837757884233644209188073196917450770139808399888200200585629644756456714922775250467446072439441844280432704487480529535623825523768660593243440448029896531089112347155976412019230057035468589873583689708912784177455125619772639249630657938969317728431410656670570093851397354157467568384936895345711743345444793030648912093645063179019199967248279523714877869349027561691976657682594306173358516771544246892451463912217973603046058575650768299172798808113069265820258576140197956547148168006971428423563113822858106236159881202294079673047780266677265852874805729088687823195841883447870565474593312886022843266470280906972835809221377320630332510106503205597267622072735122154587075375835253905448441716653187482777532112984107735242072123543595326177812456870617965281166480162944123278847686820051380019863555462281834111488739247674194119514421367163859355565909677738825921960834611179786808844479905369008782680446963214519634214299744217822143721883709325256226274461007289098440051717250220792154935737874981117641061889282174064862030311024836216225014827985706729829138427557784550406440360953069804800152627928627054727804917755209033284916060634023196063019683446466255970435355248389598343772739507138216716673773828060125407335077642432968597767836713437396670273905358061923781855469564629742546494362273911363090385752975519619264411903995642736268834493324802587928176052102657424503137562111121535928051874975868559882898747345790034490456507264670380277156176694774510049593715334469469000180561564001660218907933334853245219941528136549192010014650457755415680678250519258921015343675064512668535728359249506841548729304650305073340830499316482831897675861861789830261373466545034117408605384942446470511809242760908559011911232583343361390704463364655557935304026740643611850387759817075595680084851610813612263887426082106129419004894405918997394262490062979752318972339925269909212900901034377391265159161384542251633500272682962595867608417998722556155985637992674173183800719601857761502508533960851608780677277232174995355047452347827098522185985906356608272216942578092040025224995282034726932429162067151218452265577066562044931197137477812874956972858826407905829345891394831331434478114855691404501305462846761123356554091278266358331005928454796596722006183028900866965456989465153718357053951608814458314859228644686788605551265837488748121778859825712072034861979117191825053804103216373361217324062642169675302950550081487403183550884528509522791254058646219281598910083712215274408841324954117983233306567487115104733413369371027368402496730238639583210960102118563541224873094760219504793425650181568331570403334654979211895647714696536352565625728849523833551465934981139120793985541461367668955677425124174717418139855259131112594629518326683463894968530930683839832262592502233624299823798288528882903152144490062756371996491331199073833163969542874318882144278507203756497810022461542469423503590285950898153734422682845358159344960113058339375184898154986965225877734271099964562426093506117995789714564192575080361389893883562765989163772097337735796282906894152116799708289149110188847818709775239759380047666680205890514948881239726579847853052692738466358386368497699024432020579702168272650774589666970553816190904595489759629233615204568188252013830116829413280128388798847160359400467084567410056264808804182912843887508187500164806490126659519936028639184724169688159981867992717918294687774351440256591660967427481499250958783871244726176239944731568183081656173160971009578268023052041074505942845704326562546439522644540342857217887158415083729212684619790607821055498645841170455371873969789647252920211547946061728406329378555809791986582854727179751096200572848908301959935268814124440267134713378574995942789687902200420792019937927423829649378011513692557430246082115039886074870899898569095293411607877801770890451559196511971979602075453510750760510692476953764139421273675051693053989410938975833025747057836979345145664005800316250354887909238202135055314428447690533787307561111314709930106042597401116038779974056389964675957431639414986575571847442479973695458171523730328525703872861888144514801619164449406006750353230647820126462019060149604997227279652226472415632318789169970230788882303193191515195910313213901849693885976370762202542718407253924255419813989835158586550021790222494797636277706174654190134932300919766874023695066198060274122147693772637754123827386118193845535193258438259555081676633071736484583253723049986389820921694437791272488866890412253740644976084604564840832121602344869009554929682668097485865858287829423209165356897438655600189287187246109903999367444191465094216605229498646634935538483626850920010018063987237759152433039770965773397998325697689068883500075430896593593033206173725231467650183126901172069640495790479499484618175729845396871047366526242740510264026241973778179971099492035253351800790560004909631727046656977018414954258093371416638122280771982700374827948815933374593003389698963418111454306201490361486314584595306879379805431463042748714199107482937564855107876565388125019400257612884463113633966427835799080371508196802101102166458362490372661205085728801471975487412594536394766255177072963206690962720052011698850299285289152526731756572532150346064827784378634460090133918173236791396782618459800699707582934421031265195622715428751008903104534792816132341362296998578826055305778974163608905826922192583274303353357503621523686771681880782512768176090130858477001417664725022448334843789957372477896172848090233269894244588455325246850627918475259224737735697776749905386081655209042985887256969076087818624383617633030156321428944612729343957515121227963716273117237710259762910538062251288952686839235737546963245325614939993044610051762430511775144624387431163491162086832424772942063273051302472608654124060879691768498917377915521081112785654560699756521616586952971906956258810006172583685733993065791038835319897756380898654127999987489339301164502247515833773091765100880319790003378387610518070695454886178684064312723269397149661265894488657005018471296815691314157986236076584228782958663744724924580758049926778366083001369066025072174593392549249816014113494880517810278151494431703688340819949518180227403718822134116248003034767309716739971445577313125770224503356410723599227622537696198862333579118109812080478177616685122218490693406213951409796784386476344345716639064215085434314567917172692038136698501305319649277741582702451271348008815698104444155258129000316827581462646848889910590755901145446066090940597630597088532859862750995115895158162708832648570323775942091176411483084843813045898810503935015683250591361441225358896095965429244431861530933608824091578086567541156038381426656745175346474019411783166829033622994429897361187446954200327590303633684288163647195799281516755557081962930492778802831594234356093346351365039461147611472920649800729458147595875528836588188044218256973848879636236437818467756009133017622019783070725274474352457121682535601009935116347877257006741011526330646906221111326939653832700929249883826419097196271700032421142151903070719433130508603878520865929352494231936664852016888128685575987557354752794917440174633765224131471785383779150567018046169892518565445094517589500881293949139871363989006048960209251316899946435617417152992618216939579078229056111005355764233571511373082946335008931259004222241217458076392804852190798117374191288301089438811025285281865998969283992751162454520838687039782666450538126765732345128185153104343659604118050611152599331673810915077688416597042878538330081069955773052651037896709673887936890831590278857045779465925204287562974634421113921420554181526996465451249479627522886090920604022501059594914604826336553177131047491603317800212981910672810538653419668068028549209158348946017582319866259701424339046292811401494284656240703057777685753720396311762924307913248506207250395167069742194537744953743991927522565627984978426350576635047255223405807646174565023608598968333008617666569029988016138344900481746815610587647133735007488138330405080929468048677436249142039919100151601363926821133564880312309869941170528521095535034619390542939875256629635885989061193059861838157918431464254822969199284548994153022017561905969572107155107432103508653553456503454943464791055532194379011840976811114407273716143735319374383802143499510997369651683951124480656454282189384311362435129376732450450878613554008505084008785095519054020497579863869725558660018211049463869693844597795733425612748138546757349635283341421162921842597665554762664681816239469932803111983734617995537805634918604054632549322096479989422451581121671761381673381218073941683044729930603333027794809406650355426471590547995965299597995715320911371911314838205453445219427151477661857473235624936547527362517098868724973675313768132600716348587373219281233654082019764212027323293674164538265854988142303064482357327210208361673700819161094142775621592745335261210463425275796640770869158455760153434600022581015810491101428283806190471354273002876639520857975071783499043379152837309453671644526774107009832826207351112156387180057777165922025862740204475986977446579274798153015041481892314928308574799651949323556680320598041462970121125028927836583261842590884958125612353975167091277467874492534864571929456432192889950982085584087345482330036069523877013095304465793180185000628143192205034696056781868650247812067038200097001032630671533618937736419584052334178415176951331104037548363866781972365007476118787261587059845479051750269687244621814723314297290551543168092641207221558968086407834169662643157022177535563139372956337257236689530840431303241731235161445635900004596994345281419371623708978095299689861634238622576526349340334408566177515496079470377453090171080003195982512980540416465577783524083580513031495366816568358404803459392728890892549475893638806918338343013481333469980842833435777959974772586931261800902251134876889802441572344398127109051032854681772594964903951016848107729837980101163213689185359006967513913852569262955515262674949224194723069943430381068391646558204879071887697601442454351148100280654866932817680640240924656121774876145979879616435147334711426227316793029105864364750656924920091908350063276986693733928323614214874479100565664162419336463422944302538446263947342404719135811482761383124280952061666777806140642999388343479594363432209837161426747459022638227930819745780310378898550572144075854103372869220737261658361303669738628099458860853401205200130959536382248045942175021466615218053247255271715070724092990946941745681600468870309692879819097467047828892047958453981179429327130934026804433678403112525837537063270387082417308655477545728595266604606540813049550269089518648689766137156133085580705957475513752151798350686786513976918119139457800790641779278509057251851127213578471467213454833486477845011131216392840573436421430512887625874543137052540643716751407098995587573927118820660592264209293233752624614611876369632941073091686305417001640609817900261067244356317929788683213980690093757289051088308668895164549226445952114559800179375114479431760044019395768519119241629862994415390436872114945846424750179128403177680673842411418757438932425551630044567959125857272578505974678243105184877793676997243259657956394039130263767382153729991141878913300028761987488057297941473914457813774155914092071563092327645364330102880540986735426217522943922365064517321989987450628623220821667946576684151402879669655949160239155962891180608551444395872623619567033241186459834046040051582238200044622791220360024322878203331932110951778676215093083503330079183067878712730762197523633781553061591493613933938770874927761765773651630095383436688368107292012652181704405273433294080457362035786395728276514334494518659534051862720200470308990602473468768964184325403372813531391361843980032327093097600913310814832285248421252250776419077498355550942692121650444328706142059864981549712005211693373959505165544885672128058017861835710055196851181310776959960689269723469813966510139396855612298431609785940913204693249909535632985417699796302623030223239849036921464081103786777161407076103338219674258304751222111895108357430373705248181608325728409986495747485379493165613609556851842034487537132337706991584072371799141095755390057089107534928999085992346088348535774696035829413704089107290880305621725681811930401719431666498601396504718848811542614567872261939112897551395448981365828006397164206709508475211629908753088647596175462478247393793782606778560158206249159465657484487850001105095512272832304127082465148202982859033198236812235734044981151882714188272826238231123486590852145404545435808208003491718526398418323608891024144587907131761558011251757815470842642697531770163129318064895542700739866406795528513597994026533311883803570508180604568225601310357121905643790223790544691590641853811864341401554341574339096335314080339283718087657083056908082432609390931148560129557107269049566658890404269173762270800522818693054137157721700474255649927798376188986550358789022768073037681300016716180963911907211539671398022686551564326614715865193931516915048420289045253364141873301638096207532767086796481907255309427815543210877937418838390753724642623999476286713128293787591399986123005775682314945635838290868525745113470318094905490295581481386766818438927099596739888904095553422856095495397501727702334061807120685258778340092357968305489256996739853734488924457795832726803462743100424038332883642903006962861921973563638814508729650271467435169589899915267827088828621807273132854211870450161885170114577331782227550849958052167146755374945475389192099871264996760106089321557726904658931806765472947357842483108849811227134331426879955942759422297839218650261005435564649136043754425745782782097656222193577558536749991779036260674573490419809152138200022243567871175855928024141194230186498769891434795299938284540241120644130595729716453903816343117352537518418013541859614749283959204075380110324966228527727343005274138863660283808995741844441956606936428810480230887702327182851596378992738429721273579024985450330220840460952263528158530338145861732172780043857131409237671307492319833668013284368019052513477731156092339230866826026912946437737628072484657866457022324610890460276868176745436970267168590541667434829475415304445540949503456906008982433234665818608285290603447017418219666358133828670332772156123735660805689197012530005974350658788586199321854436640127134820233233994188440595309874784831415408192373999246158062627057109764024710980629712112679230315047027363962486294455727228429310805224067567500669759632713930771763665976193985554904669791460062739116922266911971852163115601145227515675351577280348001591599230614485960269251514530147090866816300210704944762464661047480836509935209213917153422139122003936150032405875362494207604509368536259633892522809600703760175267749672053230228621822955998678211039587452087151370437270376903882954887305703261427159284402462116391638274143638964656612700302570065706051556878168658832342062071967943464860456684722446087757868703753895595287421797209268103689536725334168422815259951932456366400756448287295432554912591164521352508751802845827262191100912267316172108391316429911850245808899166592497075264579467043267671626532494161032636862676095542871189132527824932776855586838690710061773354713018531911625802715339796696794449194473438373446182057749905406240789776675161384743089292242030866157547597239099518568841271503068408572489335387789752157731428677110022724566828585496647747641235170580412478603899015385619016273378014808102203631770728800989288156566103458380965245157666585153344114632461832240050958245633740978007358801222287640851273770533745745869150738430054024308101670484827196090930891999643801745794779393601246148161042976042471369702622591933009932025718981962895304166535054002882733396392331970537566760443011602804817558568311710556549126143767817835608228406529888791735516793615045339477660086475061154003547715689010041397335221921438752177067390058919350672421329044797998940501428575285931110986772075866864742250895630790997914478875840212674187836564325645550867239291926138105088476384503901813361729783844344555384335484516508084034766143073907143221913124874066203887746000941613283378622287652158414264722915722761690494851486814903438286692595793439044528999620552639137264560650233318716262756692474111251714067872501666898184519460327604585645802052186233410974104702199019718208341098337579844488713497075930661526012131058678755243223847634201576732909916158365678395466295335796552236091981409521998990682952686016311197095142570712496401026095160606153394460667660027250551201527648160870439455117845891063059733080487850565228355447863120544674093770256379238564030867346018349115185643091656168490159169614753245428106494302622698155387807716130777963191062350950079520062157390937438414230992733004015160741924682816871427172335832260677097698224604809126233927697644450888540668936386357803577542894096638715745390773591016599330567433636940452718937104050982699154909197915255197709883366948417740711017300539224401845174334198721055838605359992113525812588735625482936369334551921641969326010087181264940705832146779014742992387213857173347084914867075412366346062798957008344825291576027358678258299302951243078863981315735058010382166554069262834342538926846383883100894550956267852958821515273731478661283059202330964267193384704801273846057817374631096012252181459026356409563975402512438156892873565423736023206506036737879707683760134909801665750485123467577459074613958004582262424441002525817697386635210748451206016696245059607395220554138291225087454443295544935594464441043694812962662418612075232386911835767188193375044715339240413490844964811279221903899665040383670595765941122891002149729869875100698106917287823359903880982973133403301568849042290346226082120043322820853709824115920383770198321252677049812272516521494007130500732995232598918295415325604525996177227224778822664695032915295504373747644277372637736958979317997649091096749086402514918498214036913690261888958816809258115919977360780502075399389353981858699637157259252389955247166383066032028861361960842495428984865738555175868944492325707156505869149196778078397884934354119897827509490715301433632273162325720336824338388418059051865103113014323482395907619166602409581583139814889315450502488972111841124776387801579829603771900262810117949290015457658954285332199527146497272735921002328899460756722819797671667288910771528532151107996231325549459504438426289596167649023320690064827862880168561589665630265460974113147782089680786680456716293387702244997243109625518009349302153631309594610973888729349722270204370639438140564005623790347745430725256151361260938551409173382173049836395191578373452688307297742417253781975724456214776837308399315977485277489683997479955226564502031350772948777448042032975521857515620079755026240543250023774723621482824053943171597041554104022134615692526531670543143461914499947414955602572617475693814689113922537220141653685190659013871249772953268015675743581739785728609276254571976561363115785908006953602060682012986048486485939858822031999732993766980538275817405146853854526503069684277772466280317880140321043040724921624075022213646399831440973830117309819269621725941672216512532836610256623361986572443371215731138636608043096896620500043012884219206380708222441879992166462693994675608103979220448130974429986420346811790015985267071549029576888260544729500297481060585273557388818424740275069233350518143535759233350520579061984965835996453342418049973868524784598377545125249735996438226724391912676075215435061395324406018491896648527431562651148725421580314141353733229331696010289855018748559293937678865783002784087566431872007833410589498609431771773363237871240259617201691813843983093953212691779122827559204247445984517997956389323212116811159767700013340684646318162866304847086608086281814187727785836461044816436059587215474107120267921157384655399514224541396831278071021133248658429558935745133518438199825627574987009436164499779099569205183378179425930073225446990133634323951873511576939002590887168390983552655993753793174757303444059551640798712894912616077083523940910215218537900722028607222626711111280925970423380420481746529856413975266202339667431485139858966887178472415740527547153450938741410708081242512857758228494770344670065747000355597619421102535548663206033891495278561291885728836034799479843817320675028933293158848635215668575651318421233920640672811869972724230932272479641158331507980582923725411625698600679585221210872377290964496776942037749266084720714166877647968753390336991055552178892777042728180981116628233842683374652499751171723033360365958980687080989205490479033937703685477390082918290946959783453289419838239225553205247303045576118249984608088264095784057487295250166662772986488805113621160139522607981056169874597553331552653678771941873113269809095046684783991059953308397190502661322273904491281640004762481178330177819813658841054777615306322362008640508524916360982942658181562362466558799714345659963866154387938957570539116930935330407015149690820660281863057481863164609234184474375333889029407191542514595351636012474133256133736016574673349385075831322764843667915230220348907410816359609732363930477939853600610871804357973726521359894969633422707395286157753328629055992080541628454124492203532022552783431096600985869680154247856530681429777248473570638710986212039879253145529125617816432141024852800638712652848437360614665099968660434613126953638942940272744286127091184296709395970468306643389781231516601526566574714143576356850981371377168168711891823913253851105004764992235848304746101550776896087356423404087908799442178217713124900659403209817054151553249735857856928142587440420546681860355177070146909490836942151857888212882435151363387638328482681683644981173065120646941977680096609637955325337313702943567970044825228972624087403899080837984925475966948307885715033325432757274507794920044279275445280927805710819396422763374607959932703984411701736181162005759525557630558617797040738432895967578427592154707280454080215563303255412115074765147824214538566290591787778279701862193693654479389049528541456646286785256069210452895334792625422752317050928143045900578182066143782501519964286909098003261259704057315028355627521627836616024396707445867123731093547150835809086019485948962636002722823370619409304161693945810968865615225618159008520291619317242215365932209570616423807278766413281621260170735727026963442230373368142895689415152506353101797294685243626083975701950621425100914555244149713160573471002351490981389816024708704652731337177462114267106642696843520223899260356802038738058343726677164523914713949874667656386695750779982791175941478216612713598523128049334468512854311601653505030057324020065046476036752606988202224961514252894665981158498544984004805549734923241941888024062618623174266569123800039183224817082443542823152594829711323302630379670594204934294077057251745100434682823332008301665180801404142866100400155277384535537904428368095258290370203738308210988181181306844808011066992840413929779548335641163512208542713559512924132159156619218257196015526159437310961830785627312404539924484625424857657780379245224173750767092559657095930794993281617608995395095641920018862828310202985504742633133519700579496633729462927613766166219342001327072513925692433882290915914256790721325730351430015252708688779598990993863005480244478589530362080305241691424599146609769578696552011586230805201908212681190009484729369384609887408998540529694495026622027449042037096653975939587123828317903580554163561605077670130171902487797509877917425249599083188905987643691824144966624941549414768036598228700064156861936101523446293336244188101648714317926343935362741235949164320864679830792950999640601831848235094854644801625018425177625242120503134701951374655139606340394427419633080374045039124544055419199211407216250839641037328482157373718169740624942578864288364997064896469126448484408168692132609811482795437207035321642925994228601605272944959301473061422458803735694686819054732755445820096773723462678296257132571636715740968402630831762564592646635306158715579811968631296074742487316954862779921958363268000796982627698968301918416102411468474816514138115645335411179855368509762863055223166313992002546943089188285171364498062830648123531148642844505396928961832748521019519018451007395611498797583291580786152761188170059229649043122886820060147466458170981962803273915601651960462004704301040650061811568906332507053231604555764768305093612062160607242058736761821725749940498541375530578696629199457224933972171449849001566850387560545402654750088086787110022210813721375061373833242385801155272168680650113777762146531352838684546950005314838954120564156503223741235619152159983560528103985016297343928967745035110047744964208083346532131777496258051364092734577328398557623304266145184578356626595520280227190074733641083687734905367638923673483741554297704312264539037911013723612906028253145976123496399733583425161830209972453423527775741288687448340927712798113073384006548595018684712805826510813699011764751597943655000689172794044683552426961432399129208167404570518830091268893154443684892146215888321379083677697269141010149253058165909025635246892227811886404371020351072839036077941720605336167658287482354715475373390342054375540494776490765378623498233001104176122653920667111868995717898555502973960937131451487563442455041169738794213661299281357073160925119361140059271967680474051139721010586988705153219956966224198917714805543853849823509963201584637726014494602009567825947409070317813292750573919780494939643083197894379969071305363649874267703175504679893032556026015836777944426767044801226651164860454212302372784524027178558975300448520307567376341214498322014487780492028503653215629605258360963059892315705055121003527993578328842904849943568873921063231717606542584932681080226675710233466563657358577247757979141515214760174089550466490426477422921093180944743848137494042111233686396270456930223863037937890538030518745606764759245368901265271271766254929057788356539559137603946557954941863419058687945131709918909740431364558969171199298683586764247123287371811359698497646504037022769264413968729657534751415770119771532438587726296502356473592757229706210230631259865364771836487331603572580958848964271886613365422740056641109454909751984783332753623093086005409277875682911035228923944294950132269091559180583282626237483882041542124575599443676779335252360398223436915447950648387744885156196633387885126740149302324608439882275466714174963014597323072861940865198155327446751088786291021576766205486622632737845715039011123928419676297439209536094359859789229182332104390725468880681773486916662069563530272932319165905102602979394907096626939159051515167365946400497181126019777862077809407130430882626595789772175959507158591402786587719886867046118942380045685809266973453888284844326386376072690797122127263848041727620060846220425143858169932482811264449535031068418994237992948667275405848827965329570307408997949460285994325645126761150743611685398293938962883433174654049863038367533768861545451291244249801396905111899873983145556750288465207142676272828149322138361506075078824493590140610032199616494068237815084469873689852631843380983541862759890393148694442270673826603912880594365598831317368222288417944463880346233719832529211448423896341815971647502191389232651107621435210720561281518181960059847812327466015112918084882499427326076835300815680703016213268176091851959686907471686972147450701983442211622879846331903789089987005471634117148817151213925113566609154618793981197012433477687581571146865647095110466117425926516571468783252650156190401800246405257123041095597857862974594637959750812617631994486712806958834821674915829923104538101225421808196565831416405709077158559843487547467769265321582168098595688267640901365976301189197798392092719790285912634251405304792540990392580107937687675792382557783257285404375789147932132257694951281434123010893380953413654994126255779237851362445492916856342672723504738606401968949304084736802938096407014953008212206172965728236456863925065275824892317656178611577059504173728044359750030721656200174182186903585173134689162916480396179301802785310909332693353282669278445242630580610850959638386437067582199023652084313466769197476563705313107336678649445640334899838260299951073706686565215545656978492385238107510070995900540183713582564213103153556072623968411827831963860956358413632456409078604997473533675680331013842589979347660219003571198059001329516954630829602593712987323550147798916675730191835147025401923431751681126164896978976600200610242847406466580853624426787819521466466183731878929221955149872326141186227332316360482755896801115266047196106320477711967465312753270810992673175221272298648385745748053843959384525300308822632192507764310918545763300647637412480830855217371453890159564422427339168347273349818119340261520213473333038124076012342484119473149219338709359438040621991447461463993678626567879734681914792230001845556234306596768007822508365604255378007985184973606804036950086621151021488077606485029174486142380973065386579127170857239748884192686829480833534851603078484556343538580085948486461967176175834798921361973452850111426562787235911099024271579907514929730038283793566730824873285367291187467940869642271305057072027087512966936230326317758924490323789598751666813192190218826625838264574352696068785449251371755242293124113768153407153426181854273432098839076250565676623223167493879635485151963931804405612131502571961435450611995903055569575385940494121018047039738476900016985502167851969409083014843765251344341480135436241865308931881855805956366798338958596974976066995820964422132472932010622460812107586626076228055936551506587242173298650787632678520796650147390959460581249261532717695280997573823350606215352415622444183998099424447117744775279141340089029752031504921257743050614962571642530813075309619783652056713859844838376127400281953346628647805211088765482099493966387890687233911581151999732969127591065597660632510436801406936159129402082606064431417284723336143835899277698373954064281478049522308681429066893053206442309185478327133963132168225533047149793355745683341722908525334510159279979944714072459909298078135523898124969119268640740292609036747528806395902528309493730367786944582941783269152459454668784085891813138975008945145807550671925946903890370156914654856249960712121120410683805660083756581833581794302168237702900834245843022050940962983313861416054793048586058883626455364630570336833038562551446482725600235312837322792201589861891718812763610785778509673042695040233434528167000298108329018115765831431934741646439451147599583273493564388012150247381063041978438229615623024019666874366595969004388914549264631687265178439121461927746763016900116581626780270018752905145453026124587188476051156717713071221654310692004332448158448349601759159699685083658916680498477492514207272569594032125141479262906464288106697621001123814047176530892975533059057414618959523695784144965396490823207721523401802244084411921308860281861620712883036177113995425274844123305786923015799314578892906851431914369117769086044008336839342027680763253940034646815699694822527228013561601147123835707926997017576596104290255983261669781771015969395630220360316222169916890351515033710814106685616108819479813410091358015872438125792277175045091796373051298821663780997110442517747830954868132294205679978987509583243236985710892143847462985126884086140602143790117472469837298800050625904316261430117493359271800107503871400705129523451302205819799112580640235190974332379168753423773184115402537202747855417390018084532201334972483040186239969436657791825989483488710953462460880543491978626577773659273500420542240393730940984117421913585635209375739975359642694220112649554994906698658416141252149453473827510739375105721314644906938804521607081778676690976858593778094609461049653542066250822509029817875395491996277571653140498474690555104373995396048641658687570170111479557424872264904763648084918933903901533486807371563328527590489503750532814583095964021049295984317763709481231839445632760197841656073701851663291077191916978967420166881335387062536700476254482513853678392311188036538709033374787084795594005003944355883250983681814326117487915830018926213028528744880220718614788653953230685570331828559502487017806207146620408053708271377250967408649649345884046260998498969537447869922411326238655364716749568543746486492567404760676525190539735731097335550498118978489743926967938188611530647165668331986238561378859169212984482159514241055078213892574796926986426325224928389618541955014966328933194974496048054068650070763180995562818313251212130050423707837293902285251277794290802256510277036834640084645923165576779852159152815852389010379957272028680220655010919490523730191224330983419386984971152705172666628546331990834689392010301345997623495555178727246553453608884785155221373754399444319081273507663837730263207253506481723611472713149579522614370103145640316739620574396545793658995088226663978893822818305006894439711075079557485207934411658257337660647076811440891873853331968659394132720834532089876996654529458702788378135918230722186298345301385092519677875037584431371442350221631129070190438028773251809511758735386976126017552525610541101043106461367914321375414327303513736786630934971187710089693081793150814746821767589089122752345062805720923891570432359818139966142978573496833870702294284311077795382337602537329164024035943409279233662552189157934839152778073452010031271580901971467028288226110113410393608350757656043083989771459847090519249075392051731886280435773858852438948225014417124285184292848128426873675551211708888168209733970348251641521997150784502920618893596730293564856748540667640615531143682265931194663528380053094791659164544245277887502290809134520101220802629935332307496892548108814086723273579430961274844828771584700808801763814024845948058519186038754675356637538219337307300526793049099709657637156065607651467360590460872612345903029917189452926905266136788543075905450381544379295358197302186428832057187939396493335047356622710802047378891087223971594676464999997025209950431866882005693468469956865406580024203216525539936289207179970233950072675983721561672713100172715369681782322198708179524542939281175806507925846253659544624333569017653328269616818089645291048575646105561257469754380219348988211424981066015854948945499311038304668698658566999658412443234869156744614431564477855087292831723017499202150312839774731815752957517812370016264619575163421414926676221810227428084915390293908776806008281006856110576285288810270928835689058989021317428913005730150287154498715243944485021713453797623348825990586363796507832898868053746846754312598662413195932207908522899329842361338047450916872128254791720369328379058105415645789550725068247873841692031120679230998361055494093884278916140130350570864016457109521658796632315720148534608990175635364045508314693616559145568398813149034510740652881823607079874624448712913817581943060928994109921838229219001340807604251445549854877331707101374352233789959991857712406612435485841118342370622489031781873292234572225907392363523315145488049819093643906816078283590959048708419211457245054117777546347753999389618301295020840177446269446031753637283358252695646199491353457201424382906585594415533364741740210405382561537213720087664392232135322367400920624199924226059587609303746180266545038100502562277628149080957904344296753040700870516780198078702278780140458017194914143360149934896185906519502629327550580693753577621246593915417992294530375326443297513840285553059346872110938746675949729588366103045272977758314857999643273361297594771239694711464247246991092227230390544567613293148049031840614349852710163409444098686669242909755505986995225280744579113600137611262481521248361960960827942619971157802377584583111583026688292334666968136811518053410380447640205868308670574210830333364839125395635167947387497444282884030885518186185766338705752738621693788426580956208329408156106934221409914732857355907056081427828417605306208889784465461687188378881774170498467717343833943655828903979343901637997774115143269368668968167359795050068807720913835639752606578621864258990529340333483074188942229318845078790473433853706409023817681124153697533291977761863987895112225225657769713219541647224563072939556717596032072962778060527003776940346838179093879279337461664854973889697898689267158377506653557060582499912052191292454850269636327524161933168359345606890801226597468255662062519127761343056557408846499836204342999508589251086909741136266105626206837963848331486047774519618975387927416541753685492891427904189127108496137493752048889289756348899916892847455402775492602850619961313524653637341775811384121375131580058959747854192395629594813734108652949967803808084035622432529778231533760549825990166508209041338689237460553150546914223083096794413440081428434090081120339900425645632818416130692584343979107571517035514686309137801605677283133337490803119887428522558600927555608641407492721943764572427963179346929610933917260058156601373442583553199039433552936467048487949136386000597511982059114232981735369698374077022677506353584079676560659135014304197188693928920381311300550667692797553367450207570332499945621267351742111389189206698477027980366863628624739451594574496641081226386327803470391366249029741799629121769330822313380558803372882918762086759225905685089088968937533378162816564907296019777251705623300001668618607931078199929387649622796812677965764611942545216870404413183154399825567964140663622621374290180356746315763385999726754180193611839451322846990535224098505781907369110269970155820325001327626281774368566735347998492168465575201734456007042367301401579897573912230278853622982157656856830582465060515799469888005371695256875126448379788274819156804818828148209937213745373163456569757003538450445874398036678662921141986208285266967721767485276837185637744298444250934055628404601828476823106762595071042803543301798357985866875378897935509165321078423656429185547962784814660744103833624570001846349753879123619690255156003501654148129511898100679615165808524434267294205699687601598667741126671576749621025904257609488043794293776271143334414500490550835490291151375540954667613668936241971800767955817660887695388308489377280724430104676911607441521231248001570229809537867422550299030411074902985321541442290298914928115154816880504879387377387425748900989004312295943974903569105372101322812528465878022544352446812023061676367723612327131213546709010290648799703713511756123551536990410555690245260590938888963569609594764513564529751662387616555371971385859048244435652501881537533944936627646539285152004062394861291578851310832973170075390331115230527944314517934366504167683712118502850129285874604055903153295133020162828176044335893422880344971063113673476679184362759827214791886310360858899064348765077574391690812447542351748674267498933351860491393984529078473191572692591115375563097391131614243686016919037793677341945310754406354110614657415530221184370948284164382628216754867169022772013723826698374710494406615489806024852343275140060424910572447135518331731359566922609588295988023075524600088039131733481304385900524098864836919372210461031821500973837489784446826367273048818585080153443132882170875424343963190095727834210829733522768683165633053322819856709433734410240360908762948213394726730638319669638599077381337340659973729658157695667658787843856158094488851372144783438315135896269814973361138489224367733984207588109765260356389866963371665132282530164879154861810096310127601544541065001578844437775891194711109855980109517390387960508781107072186942286240626682288078448373915351596635024677911249565468853252878444534609113262332125785419232206121995394612130681818158798453296862270870099013289991629537507470172031614927563503159713509420616084483607994617202765094697671090105577127836351449738780233537809380918028803763403348678690740732117714130524139559282115442988977694885208034361648930354485746224466123263034596696362576420554414869386291039065712911341087501899516766644765228622049464518795571321114431312837791518999549585103634526009717542544938465377860910933358978322890882739483703592839028570638855048463913731939096377769199645502481721922101807339790056057105508568741814621824862968653142446253842053098889649533239688869170766955632146692219167797148738394758159072962502977926089445804568735146334976687273154731003456469606694694781579319276601990668058267579247714971352888267874976580591072720145116266923636852743027061535492912346723680970578171840364063630049812298935627313754317875254969781876133786580598465595458532909343835090185537626059495394892393670567859808466254140282884746758740187830995570121250969608496319272357852308157196120236228788837584281038910361136999412992788382710721345540029817215490526791554003303335472096421266147641165528432809480202391058610323733343430044774687591609769853378589722289807498947863533912279111507732373766004995773773225892312615196319635200826576172193421604746526791204604604131560580147723224511462622527485165379555340176716052078591000960559569405947958533781703160455960561376061508570821807442281707285641063444751980868772138796564507247818972739856498210596368503561558763425051221407552352766250520389348358088426406207588935516405278534504891702406534439686688358906701985939970612036700114480272144563207732528633364971166532913294509730735553011339049868485223196884251993357729348759643551898643595314028572724860072881439964151959574609092673363458421958104554195535313505407237333521558911543744115327004246976654295518006202166130310885314047463403445474964422524837902905383955390274741855688389170545930357456417174605341675053445357853506563494952520294710576149873495106798545923968781093745035366570398295596352606665533958955980917724609649920172852609589567377667248617633564652292023618017632870445419585789435820581394174938392977476759625585142049992881196199809480508570247393418287119645688421518733924496707136678631005009982386022541430322623069347980145810625199416522458638384864729200498505633435870146829125562883437130892383656983317935964857027394719601435453014272959828429440624780109929070547490358924763761125499274264793905085095380656148106768281206016808774600066544397396337308464507684737811385623172108849914644859116654322649098632627805554018081766956455055166059288585378677792639522345478553952534039245663265146215104180411258019214806098822674879777076673384486123691542392343803450455852114545746982844222546533427598451613455520748805451862607729212139016832693638227835772449893838167417618420947552176717662941802395047578889827940844970103679719045645602271910659295812698637449856243390033289083681434138793297502489864230215414201292003702906237254182699395538765040842011042059176272957917063261787676291980026915432185909766824344465430958872235199850941722946730207914777417008269283678119124442712845317456570631810548099771522921821678922847612857317123206819268063929099373324593283877193394223482711960873222584706690403369055900278875919596819071772911268972021174461684987930466808335220004464650710043887992368310804330919214568301478279852944453812253018243555051237199415806287089280807802345489082377456848859120211686689571762462519903612400847272089864246752562929068239566836578032862003500550967898894387533319354880752097025604653810848542904911658778422122679064285617761992744929703826251684928936762922005169977975664380850454271593294812047074358880637888792570146872039693860950833054034347614474140780915628751886586980012738523381231007808238587861232645145679808891662514787448357671568826222869342765382098772620828405871212305615567712010670580325257678125854197403624794836677760465689344505419414799183405771185984116447554766416831867993485413762670261946958172434428726481654322623925575435524335406789049358601410472802495885379061461693286798614054383263173347388510666966133495522946540941787457374447837282008832748664011424492074900784319145334757968328421330573572627135201691012592781457977462081081955910690669640108452935711087154125569237753276815355985258178197888865934076834931521348862289130047080911338102719678015907673859262066764421011396277608231032976424541578463956030276496993999335904613587108754053059463520318179715738074862591395514799957588973384816072261339346358438999726893854743977357425152045084504898291118627192708563596673733348226819265980795268233158105631758540798862254829191612257062802251254943687831564148735930831280456135686044423225586615130561044799271944152528066543088716369969985871221769037654910373110609442850525678475485927619680107843204411366203360872372404227375505515679643726979622567204267215828254723246405039552102443102226664336481095762793300491224975693763461114220147859687965489958775948943754177649369907673990074947705008121393495015778910369859450550727084977437278554144394309778261845902304553601785906832350851556237872560344500714650234495488196218433140899692659236071009476067939451640065706157114477606386158340786871845113474925822074962063083430879539198515251129940269775442516666209175810438826585318741412168111196456938084748646035509465727581811296369067205185205131958975087701779395770148505138963470844589830126100258003333985399861090154218538284619059309578761081071699299710045765383772714154265371669687529080844314893949038260879964232503624492928224724578121718934898400837059795811754797539854678277623527576440917059421314821542501085318686191587632527073918714398066987390428679857348840514459779709861614833428776737552973840680407430437954483124801344949835778523597734018844803342938056815861585131781958696443779592977450176442713652654669762554733003230644110021473448026911503923700361739814746892953133497596201994462995705297853216800012240521914935705882743210914411990918815062575644024534070036403518977076001507555881013830418820613733624176559121415619402323457779742616604568878973916175905678730328426883567403612311663443990232563788216957096609732593495223553766125328007595698602265285431517076083188905829347392480858821511362240577173485149389645791223515265774332927327436157330048474173700851297587668971388671627310983280188790287342158285022782396207130785459369294982238755800386260278837202236888366800270730100869563989593684186893156693884853868583460848621628453627779549158517069543963639354254579698028846926362160341483998418590548084374039119815384545677747918850665707666197291754734524914447762150394838753907860124167177231303695964363625471166146740872492458715370037531016469906425156679353064708868507853394215035990488650369844804455785480307202889555369919953677116468390771275808398019841280718887804524078001515523415837203802038259591907913977722744941595042175467521053171884340064867477022581063886746360295701687930631824135866734730607285086654130391298662001915264614061373193310172532781614903773192125619000393823634990113155051453706272610476577270141867887456853203909775761762415836694757500608776262545205850713596033343326791339202065075202131251261518018016079345219986926202469414530085024203968783057459425241937716084988608855626315976367558462787335477290775658839660104763956678403590500604604973786462020960707165895824599714765303152524514331297001724853786632894450095336959200217015803348216054761702929618275360730851172619895431711825372595675181945417382642109734742609985750793440324128054301215344232607432853073697861064894753705728407780816000326851694733077620059229728310577840911238215623341862893104907267604691799160899977953468358981504707698143327778450883453048518944469667043628275852163170857836571001863703181459281952667774980657291386134530574127014552110709749699438772549979119448876516636069690927994156227844382451739768692527799868367349216724983976483256540014626487127654581490897262746961435283464545731710329311939041280791342214018681074000210551046128074842688941979832287253813952383644682557821265605721767995981763226556160516660781949355873182444601290518554602340867259430106391798081120164147223651020489196303146455006503125755956177137775697967053518943507291422437481065801615583547431467621212795992862166008639709508513417680472812712953329487561325198877995147448976985509580158570973533087584265186867162328183368112177885967643065307144971614053895200167704681993517187620807778350233528142780783944579950561055109100296009586274894978430018947174568641325514736223507691598986730937075121700922359890349233931650245364577465171388695599932877779672877838874224608051448063891755883861622493321573716617561981544265140624840716216794054143490373692454927292371252174045303903430523026245202327373511951547136188865346318640331609024921578965376350129557893761641161950411113708028363649689969424734860909991016817699902043888513751782443527704731400085577844582453126066164974934999194260905838213581952890684797575409190030220558011756266416843124148248879029264807256517181756424092973132779006211989702450341682342611664044182878404546891516142078429541074038273142567496193858766712802916280072339200445983969865691872076084476543842230512745924116019468101508329417387432429232967352496944696043595151165007498033114604414259783125248269914912474617220694860532901936671401238790567688417138911548745449985812089351365704258416253264314374649981160182218365740106506570418146985653518969972657478607099954385684541062211005420809939310056845697288433262797638393560304582475905846543380200328202738210656629597205771854556252168421384407776678796435442163255417287204567898134042427856052569317403433444700711017897165752147192262342353830440642641116911630529264049992340178545703538242956621370419870821937981432303970727043125472248229645552415329785600454827921707924210302126879051761883123334154743380344497581897558577283950812821881851536220670687032469451866469412740497849495329765041860548398445806223601689221161224905093005473452232023772385375643168197235460406336599809044135771590311470070299122022854951446930893129119946149330987212364222377381889459765404908867665454529540834476954688552880155098561886180179076574742161203426239699503335762393095566757422884027006967625036873760063044585684294451571695166434926196634410619698240907240231110286526741562024690812023763749405931385046343880745563644599128474251875408893718605734976293000735213919601352135008248840183064136027706679286426639058527240817865630211576285903188885614904370792741932412740249572913668760616279734199745387828284045022650282707588405103514975554420378096943663046303709707756123156392085572190473384740523094606654949527178728568022930638115723903371503521325876400580663984733441703875058916961094349676585926946299322175346810896237161663029506687364768236185342337753956243795702438179274017038620636511966496415072776791187963867545958746984293860205732647317929302243525961256325087435369559323647510558494393934743632937223060915945767082274637317172850395784422726273775464200254164983945951318645293987737453266401476663436487160805999427901148892280782962472299098082700322256742485591811263147244849039912391522041697522740382908042340239933465124013136668416936359041670973928317061045177888426080660437861885585041933496513539501760327103356178132493370508151244291973214212999612766029421468244635046182898193949360206046977335330935005517313257302504388536034006460682340072871957165872386610619743969002147613741428675222096159884587651405967299013458153350649213977508914283197777672410086642429795386033656753682311616484361152077791903985697004911214981686940223884841000264012106994729830430617646466931187661885677703247345213271213398683189611082571218142202357193543222375096520896154903599716891268545911825135448495406187098295957944677558584039010168194636512324813822695588500073971401159352406394969165917088626517078765729264711642328161589857936647707137542183586635141980900084961377846694161197876054792709077002384156925657062593203885660871677607451078430346515664380014626307489362772981499320121974192091132393451060163062849251006229380554113171194202944899051577494420590573890619480894242542965523183544788453930848495008356802506183619040882664161808199320504577430371585542264192967839331184970404024562844383352141655083717841383566395521367012846987504031621821758195117893178871941745199270683943486033615388369789501095799322611865242874823244773091032940402336132512859458389061851473070849190304672359324451736736480375416010412728855859113662796934231405062666880774024304511715616188631285660797525743511311229906104257296578397987682386463413896167498313513724696038773879889601554137842564273835736989004266242483452808361897925614850702610116925054716616720742680682365252489550182898793510260456803984737630904916215224276140520413846035887738833956998885327464758318996276217529136860059234044917491979075522660019474835433393027879981018512478112462552954060368244485303600958817148193326046596541103406869228598013439046784125235465734643711376268067834416306351089845600829298260512650844528134716533506376333514715675304950331926698690036543093726396343177208490128403669767228799285469109781540554807964511858229598899810027575131179296822673782358258928146277882631489907192475407574562396606918680903831648140253829773030868849525481686999554875257730277611958298927476823415811460402431048405332594285537369102569153626664715633523027041943220838744806310714268931690754486380987936227588916201240018993138863480936240324531894563100922308534395718912962920718144114204184628131270968428119767513595506355120700073004727868707835228252047757226765990999712003526217127245545264196458385008509278858704264728849783075385549326648496761122376945437129111307283769780564691508441276386505345575435545289322230829193541709589055866153475939372647189818573978719662258240525199291948567630250280677749158706507612989528202834919780300408213923281461362492158461392935721509613091635662270980492785373992141933884718696740746850750681477677070078930445872807024805918035102823405211477150344543007354889060117671836253052875818154613843316127684057864039286430402355550709023363824455690363165074456256651973757705830254819453856182810895548452992074403573409937124207927024589108147150506328793554080228448465114869900188150070726746806435763355820866242800636179881770716794061122078101509866793197269925176684554006442386002937576530997084284004869282870631642189118676981809687733358857848984156983121070221538779400496286899945377994676899332400903587080370214321148657434775639001203318763134742319129096223073889395891988842725401200195353934824913393169584281016270750891348065722617355283972965409688000473107352912603281441176586989375595202200681728194915627169577089215244650882698979893909448059528565367218255194287936244570302488020558351379517420435121148048039136213657464819636342189286338469221136711001844736743630360219566917686048409683840854067519000646696413327436169699265187390333459164558507189755453698017454780262264521286061015234325771635713381372384645925634136263651149198826575496226935132690753365909468587833943296466973909566406429838376429617164979591154738014808726589930716749324882043455560231761093662664970353018557059437911932125020769891808096344094409610784720543353798832695086623397983423003225792241236839997433024352381507966736236590208719674796757033608095615452773602679616335658777136667917383676196105474381837198151570116966282192826862618819189826498918552921057355033404925690565401860298186255774714554583464680006529477008910833768108628984181207620751785155186299732190423750693786896264232739299666784984891388297350325640045786599726135520715753540466689584423142518119495714744984659082109251514866500746023110315326687863736765819081261415026787221977197232228061344434893839664771433770572602873134535311369541938947241321405855169584095498558931139998749824710153288405354090440897156869808366816831217424533930165348089678590735188953842533700304379609146284144050125328510764392267934782675151057508479177686549143547197957043247352434042464642169436624576721631013658173459509735972486533364271537652139374372284027038369370127413093143244949335709693400927106765353188699150507128443472244442805537861861270294522321458329103633399440868236337873945047660149551811242978098131586895472358215188505435179149446662638623584932791414616128755008191978978785811948209375035296435375376597383137407900829481562603235050018713773942694417914892255518817065997721482708112258200026536467956978598089081308787237780131271061961714145632415064745192799768198170953602991830777207732178509381831570520979032314384209873795102255162872801215384315638457570484159694498786311513571917890859733302516376924015931393111447541553219718806293014860545928871508359381599367044474710376767421644008758168560417462312598008664477780131430525032830515344494484003156123457707898286904465243688611403084725949748713997031338047939815540810279386395321982131346403072407085975282462176913814172109199994225105388591465528046727870562399888659539165764854440113147384579886252845915526593382114384077388162564619531544765833704796797561400842579022439448584448050963593162000890744248419812628925298162048926036980374445100388114178916536316006433717639254949647932108632892163952334593003551336725846530935344468307905360229947752211713986378275858268668003733972974787072874503920251102396688384277679611678942819082800358564656766248451631754040452670468695842371152996138092578650374759912888419787611901619152823019406912961220052122515308556743014834986001282317909393863806176082120180655688809694434009573808854785656888461897575927692390820168401402225437517057748634857025191731624650815035806284999268857231111481427094780706247123658074817153306595030837055899968784205418778839561247461357725699365652864262397416655517406967320658781054687339387366480256915177913817109841057478736400223750270451979260026176237850364336948024287767096750803350458115847992215818179468005660399992415674804583300423325720132913074634294862452902143446082783779578965697922571098652694983726621275445312022877813316174634004609139204797350891158354128414126391089185641761375383838820128328117945670601262106246112992102711456269307346951555389045574733088147915020552236230054196150934128863190616489976979104784767076122265443747390514370795404931447101852455329748664999538253852245759750013541626113410438112405670988032397298937071878889835188151189993597656469068588567680590908710302479555666048557694513072777875981967606376839474820346216137583660595162887794837497893333248383811813271820978708546317422074149509721531697598263607364074723587752028155362993123775430253437267540284329342755790360294790281014046647744808170858894054134479140745804893520038556165650505992240911848555410044102910599548818781718810473377004031378127275192901179716090304251191703835808013672170164482537265676137095617667129984972336549351320988641490567729754760879908655414071403516468362967877878685759577848867405989382731875591530382484123839174784776696555689621537068064428088569339501226638823987053078973355585432638846658734576528564178103469518244227072092261559595530646569395081918404237118570263026814605091179963173622290275451878213966077139266078685719897568865472160158842641905444767467502984786717489797551899503712691049806596478580720799933505974185057529891617835881047454032976496823982749007082442685808066622897185665015539330606177676053963874791818398718372659396691921773992997670209360307288276921215212853531941593959473499555365890112653511169863993628520495559663533997281980394474976630258004531426979443594567216013355193830154553959679302760362565584906636365302930170923886191204580473683873210345824552857027902441259776737119319765364958805338598331667641319421518096094352351762579936189936512804005278552933611223346889024340004734797265349290176176916525505579967118820304088994635133104417449598364082683315311384697290908293270443351511206499411470782408202390051109615167308903181791873045155120976383506024523051675732540153847508262590946333234639939298735677161511629228724970122922871917974878397012300605874407528182998588753045971438059783294410475284391418824667760829921710612192164972544743883972396483941504393048032319276510125027480134877202682948570537888622987170608345631021534740298858142242506146517123759371817775025073597165367703358968942351926038536630953006440979784176347776163190742076415144277401088838169409944582719435465324559119979395329779872371962943888305161573507696725079747949970049176679206943671589499811031614042986786211159088781517436828065699012959493435964839914079651376414904440832850088669874362848067135921191300888133507019355610672048989035546388551095792908164822267949107573430259488944465915932290446983977737993040234262273072445837966961247877146573983687717768580444527525466652642208931225785585816502217840115730815139461065031186456949349841489737716010160797103607081659409930371444578960483616952687158171504873367193844024651440742561626586301158372538894205585030036437406085110135459040668230018271644524944639679005456400707849996599328875569386754621988580154021217311458669472084975348671358532315288245102074786293684285030768515434988571327616334384509516775747019497964994863384654134203378756298318092610113201289214776623042879857079905400605250406565115193246136022650545921197409139681774293762885804325874772673404236053922385663375220191586801301092243419079093888224812760085303981451660729971752103311786888053922495299753889695696970670574946499723277904526804415006409891008225308547315704746393683137850720055898811072525605210406810247756335269554893745669046639266161075944164693972402254806345272404992745452531008063851765097949552694245775834138581102733229227235513222224533802188650647324389549986093407466899697852083695146078150443909617836319389170425922989351817159403282551671420123308972084798994879977665220578629435039864389805310730679538273867490336779051868536436023949277661643010951369740188108497561727677766162595908530680633878492468324783607663064116351355133782969252362700957163979417626948362849880343593700530857416066253038760934364578420769955895030820914321066607988325702780453027558837469324042550526939377847019569425555330095662495186636888909330785293600661293452062263084795756127836395134056155845418982064016187901656541230401071176477185513291958190690578244947189049039079410046716074043570434468675236146774596149073141970874494862810929637084100005420975150919243006218530715404939939867496507240451106365794809000338310031098610418812155847867636389278233785255253548410900009455425003266491332681486614218603183901472265613620214321226394179187350880428797777816098863921843501681279004752491849391169976141075952192704045337190164168381654410013501634482792271071125179847546402425529482455112888524512086627926552617982237883178088174835430522058490021364037705078915393150150571427914281574998903592784910782059393217899453273020505959638980643439896629475844786218067551082069941887910037312434299692350958525842253349532471145140153535068284717453046558707421486040019461720778511949987231690860742381793631300465424516129444977162416034930578634048254468594114465479557973847966501211383596729488343234903586140774215414502802904798166426367519378569489826519553378637456104587290228241689034698575315683695780073082246720802922365077247115712757989207486625209973026415784985829320873722723599472071743628114235950055363333668815785742480896496316887272358694610015932061169702143659326754221259494101131179335977358192595360068813489386199770200176798064421917138347618567036910308403307904988832622929916080756892659143471026473404478031706917148580243835862420592746717336269754322476609282793956921117599075349780704765915887559000220031287117041049681459051836542359128991023011131025487081257996787348997582694302388167002556655610461168819557900723225919288164523917991782268053801653232546983779730838007562922200009875961785111543287263978738024801657186521614776538538522777344718133934108798705478743720334537101746318771651948056205540733733942863161281085956488630519529341776135705688497916612083777231872392353348389191130586940713626854460221264574445507015305626486632277625851990978572211904483424274681607705589683778651602543177712984810242028530092762571708297024184509739443997312269627248162012831841510260226269933543190493589237446021163839226971327484140021777506831687265198119421974111464912361656303695755348507016731608449380522687030962630490799706099709636317270742440872165916684585234085436000617103668976306358434381368054150525198237200371058363833461634528753064790567818815833439350504665959847206735569688932487944016121916434229933522977197258803678216844657534041606188314934964407789738798842447127171982298616190025904532257121154682197009348659188393198223739073237259979894348107173581785191908836227656087194789445015688631967240529618015446216387407231674931290338657632559602477191735660907550390150595915793128288591987964069507613627665254421649125104751287977596017333227707340269252832699224632010009908738860147202443500733467188034990517460063399016695795347316001393648912493071279136134349273305438470565834554188617753803026801630914525298248609346532574909978122733247960609875492868370079035157403761559443780355001093018293011067019815968969043615114178348146300729968718979668504677358918159863764348653704995675830634489054782196826545142663191585118714001829839205254517818753106390926766090748506933619258274379071976928006908322661524572687296991238330419550362524202229945374503632493176515840837739643024136497592794014658358025017451870608586300264822625856217371843003941181646022231483729601212013832038833945750195553800107130044017133896133427551442258138877610633305740250266952477221959317792677422046228168828009734437897345710659832358427289538022366964587220233671920828730979456672596973527056095962661915817617542569435064459994226228895022858807781863366015348964161556924184159124508912627177909812511818324028201185433716414169669650844568027756598521477582793104688829487369015273946618011440675979859386335818223840003647723431495470860053786272431164719030369489059573103969709534220762329144604360955397856066165110339105604865211847357003017426620293097002763402535229281419191763067127580033330674991090765658390727440850848365241729920734075109197547561332206240958188881878703949320017275108919453340942264875826397934681646033582509050890229183369988814068608430280433126108298709773763930576526389426027992825525617369482391063984044437839185802000265891587486399467970260178170312694658566521229494942612133836436974797364294304920435886155228957297283182446232465943054351045605634590895998170141639126279513715459921536260444129352624584107039189914742445872917502091137877594908901472485893035520082067022500708783867508645006512242402603789374028712778894105699169502470256567800561811372100511024542320956034788451370465570989645901681776786463200517542952068558584508582709582692769106444487052469326333125129762820168394888425355725008857099212479158391276634351308208409216537637782259898965959100140986989619456371532031515788484993415385221211973099974795977948542074377642190546551064330099967912153104320497360146122706284193989257637247026783596700942057811798237043651997911652977464744908937030995424855749554397385489823649109810774917943172528971204935594715151806769867197196533983040169743294281915895006960616845053952894990947399726415297088685883871560199967457179267890112889316509210893442232400828027587965228464509049579985199671794495119468606074322572028526311196682410666659608172899056832599329773064678295414545949797700268584304633405600276994228157454999179843865768655892992106744118494347228580256119836925178953998389651018869606066089582344144242869881594802819869065316202290213434377382727131831633673743149758720509260534715825774552715829956215982670261096636339543332171225585860154667819648709261748414285208297704601258339255084237935507515111658879931495029450309790890281142404042222257742544665403699911513706856712165297593511100569025267474427334959510965011581962371071950778723873904735220933233630484984997003331852124359161737881450436329450147643293745382621872497958473045808875771591566543888039417468902576295403401943539827063102693569605378179172758803050788109996044125972670623635275790375817981939178289878897029964874913147873428650660209131260307901708020185093049091369697912567598956551068065958224642234787128485629830958649303978173097808163170103212781061296534886306395044122610524537467879127444415556630140680347539995000453024423833545874024949414867469368510527480256420275509950848454245938366423618926876161731775272574714377450360946771378647859237585271074621330423613035335874370024880247655763897853799500922180177170715213149110457610831762568850536721469262924057252524662805867341407104193810009260625661021673828071413824150942442609216252485766029364360033115653443680936623906925024407131938684513403308015769606163483063463834093775608070593015464192210812236284587512060394030473431060302277644617695616541690669434655162902410895658761636699823580704807576337109749666499493304939776759231468213626854207511065882693905325587838141395964496173195504897899545819436409085629311359310276786991262629550186412273513961806440382720552882711070915721843166683652361855506246674096700234290924742822734703119073616545534261891353278120464172094694122474484112924315513370985059127690678012378246716324971484720261675389394590948935466695030842014017774880861045361822994489282357407210210636236289431067754937715486811445275701729788560484186766022020379622049784494771624134564179514123445974302986043489362141155981414574554535155310761967933704201138789039135330404061027007048071541737727226162783685844768761600756166508619748129249080225501882520455183491486809958106711084967641324526204474472957415157069901476269635025029547773477313048469735394150130909478786775597971455488906824933740323614272228145058686289607424006424873129468697480113504017648057994291000440755496208352429069163393912191847078480452405931956906632004114764133538693378220253590127307634474902518168032124584005008207603848840467658784852206773182356143940189219929166684524151208516917950680610790765830313106569224052590889840567242212376402152723233043073656214786809362770263322582262546680349042153541448680491517945140825833634126678978034136797770807246421358715750330216895210533857163074207261601281998538072246573777426678696021123094247736351786454910693534800920814567681760233577191577043545192563647784861827534905436194958817416742206255956436740313841528795065608943878848341834446285243142048758431181158619469618299501809167904436016312587466841147732192503085323078534964403823315416132071922021412610786532204912708093037889064124337531504282433155780781086866317106550101660447405740788917485775489626220952861529022027262198426948261879850721011502935645881880460164407905571575910956069848546812868710605880506975977913114870013114270442414896126890595048955727548601847570214975846469957897456709199781487838045593892668065099439194917260725171836235245343968739675183145871829311777343835433908910799786202846926604076142360653845743454152646648307174366912921970033379095876132120552445002289310181092593323943713674536299017904682613267484070718616563037290210625895757487630716862713715315391677408410866402234476031367145026941495593187528165616798026429646252320900851363985286525531230929786339662150996472948065330604935671427951086497783534053320235978364805750042584613139292501577571678873465924381736020743613399553421617408548925868668890178413453775955806498082469650975002022345149604179199597709889297347228421023030585090163629410128006403136609726901686027547297661025263350712782012812325338295362796415509369597316955081499273956886379598242448292180799452465800447984627226252476458880491047684362273604836337114039736274313858539547101507114689140483708519547442764948034915385382531838742174181686221064537120443701045751919781650987271214158370443847267423500477244524943256931437004244186903134641315862027066955120967719373069829618357451133938318772655367358917504059229825506537635138896379418132308175813808995526187021884202350034108885768054871715399575476394910774047742803302954223550362792083093803189565555453065378893529484919348204106779825745132013050553653873090322218120029184493828315923897045611819079845984785274465052070793786444222971221233359449360437836884370541944400655489198201846499413370602738870250095802887523317358928227438876922474307381591578656893108121168650650836029917622114455820559012423921288663673805773525975281443666510094187537445361571946383759275000253479834268111686604100664908670234697394280649218244037153039508708090411038866272976186194185365183383760082649288437827942010530429094596881438542592618030874617378451147283624104026202049908976370437732257310076470252633395936366787339012544543761283327917683955804469983706981865819001954692080698753353524183578827762915995017123352783017838296496573200226691119227266650770037750850367334021642956080996069928637790291949942942804958246512939401283113483491542955095708895954138780200385695027509299275682346791295880131216857641807610152906060900437442361131513423758987777135994940000861989803732493400199569741390953127233319699537342321444767455296621076059658560635975848305390235421954619107380920370093362125233812408081047632657799792614664561589791710391711201258505089636207629792185221285881291792812899729107722568535741692489258631277940513883339364854066204743486279583457553310197682843170764795497362001631940598326906330524341011473670758076662874390493584054854690028470356119661796642394989534846229764293991260564175108406051335448951973689470908308034934653015149138482397845328432274303582840929396483475084905005669389152233551373280336486136089219852172088603949734145575553599578303294361555962709175522885632813977225838157793816691177664311410235939403336717559020004250699640445464759133991244966286292386950130404428372976241736727817792761281810000911065877190847494136019846897330679559890260927944116048705302851442687431290328271680677852893619474328875389644986332489733024154270810570863519058256586010069193710680134513436785442073223912159228831610706134512919569934988645258937007348341179814416397535185677945144394317305711764524840397260484472122421242615762387475289072703592888585579917800570793645543727700071154784307987708414823828255557517609849767345734496073773848096978624157495260575969555901880512505168996056987466921381228096163713992902942172794324581682420975852691258324868353376834967557684829587724422982771344517319431026897881268073031293538788157703563823069097460160180924572418848371504821111869184424410676024796527057261828002109494514241438478382905218924045031022661409741401711143391116152475406621195122280533328600103931326551646756495242638988003276056249805901247110410040311497627125040424092060337912280288624558068824297224235299233530797758667415118327019804950438142848993379924408522788106094754347017234573060901579871395511680615631536879272693068847597764453954383825892378269702282565410201815697309848150161787556872773001227302633922786805569037640079136287563183770128109974500258284355720574194783216961147676603284966072302552367976323518300201131239713104753109099790627567776847450197140870971673937282697562891486289994846243514726014972025870433916829454100697265469723395658266370818601896504215439664500833471779576987051759619598779255158844705721368796444708830380728443832490132234540187268614144894727924571863098514551310275773856539182918272539268174936634758578633087321799672026728756946787905475487227092370985714550505868265251340866017371141116692192426812417894784453375438456257860867660485340281883815824000251451172740694334812326476501877795778427972516887970963927088993302526473563411797350528555053239551657101264662074998491052531662350581003760720102390573465788963907618063289436162218820397530813532714654786398333538965089799889779999746353044027414412177223402601568598169711916316701544592753669474638093831532196602582895234252064368919274422104486520771808480778729893162675577460210046313148480105535125854774057595308279519663223824040428876550640884765796023324437896611384433381145070150676426416541420187001274628215413868096583751687651522106160936375107437912538628859632669875124664891459592042484345983416043851957167287759376377628671717807556874094867655408915540923573879477034905277718696800118788428259138402647663998987562604262297884503170281343421119803778133693985715009578525850666372521504964161419373189542280678482952427204873667086458008495197449930173632175492653384022950593695498417227846175371698971286836324526397811500628453797563010425675567841706098575665337286149467890641371575873608857963161352405314744142645635036713117278784078459958060120275710017641684780977591379436120766188776956682447935368593142205974597017115358981070756122628094409903853074070095002202441427569567826168458289278861535750983976988153364324489086025355785460633908076509608002008365374298261214489016900697632497005061441830951642781862366925293394229422949097864379076803257947089939929720693555816467917568127549658288068793508122471208347534685750484855944428239046043139459185473181504544490257199652927149002539049630834419589943108958448665891139387838618787223296908987822312876222133744376456091686997054518418347404377464869462211285588728785298307077914232006188867487253062495835442907968732589277429325505093299844737941176416900120264575041026047351108732546005376687725710033372847426858392484692935770002602101118924139675537912309398966340864222502512639155226016597953539583761030112913150193696953156003866418081501413325434409832103497680312808887040748628617814094332537954205685380968366564667915118231288732883699922773094988722012146450390245101136205588922504740609100163285416716172664591118021729846288966815877051476298371060367478827596734238551804545950015893306446892289647876496940076260757876167397508756694165576266348469261959932880891863555317467918510001312772864805052649693807869160100494899527126080602548077909353026528255899622403720001196984416729821511092502930905768754026826794529692991299104119073746992389514866912087260716445638611480700345532033079222394507150474384038556761758623061543654361009611522493320820220226904758492034122426837647811752271590707438019949851534691647226432132441570921448014833789703342549347630330899745176419776439590241989049620588927635488218033966733052693590559689796152149837536739503777696714844734773814032730040602605680614190136202683560589420654831368313104841906452784674390726351707460545688799669702823948254767187889716324758722702728578798378393257746676654674223549418665684720027766189368682638968875169773364466389955854967412666491592272900460687228435492647635563569843429997384135832860178829213381437691504460127549964695805309627613433060240196818949641819916906212616497190344105283506164418582012210457481322508758793876556056493232019937728663940415024002442485321966598202177755555649546202476007435953750425603089222540653629935963462258989437552990914658025639507425572354043043115588114371249428356680965416365483955338328218547268130042100081586465611951988956755449233393925027346679560882270357822552888848736078791446493752092241297806944359895334363524764765788778722123805511526407354664028693762947098196478345684174564213095393128849846320635911220093226156960218262713082964013221608077965362210197224877742586810032061610835079209240048671537648143065114652580589527264248565350434782170496041453013959870286897649969828065312977130218373284611078210116657269555728587228851442138857601711588350401993970109444739107864782489512143542039471020178707359441782253930997961498533083882694696530417518212516911039080713272355375322152603647139594514263367173571223139144533782398195976611771517367960366742629403559561598870471735608863468335943037920850956196689044070650007301371040939883000037730993627204142889636468689697074136977916203807011050562617778362824729939666622811959766689369702670955265020297079777420374292610434618935266069469241973674366290885170896045130400323941006679177080142138731386426465694393743796833228614958444843339080156715089845644866481331629517823472996715764878381323578509621224470579384044043093613820866303483838733593624077711137448634084917546803477453339526364663334811580740374060901232608678335922431115694701403946972189678120123299259691889746657658165581183991401640323447716170417858176206326738352421832144276813128931576779843892287731235873975730695961387651583230508200870312382540412486047553677394341035546863068051844333909140568360264547071915761090139204560002195667806313563505388493574219195249079615687619104057924342781094912148121554412333150414047727231283914478984849665507670948547614897840504616747755394723497258281182199260659655890183649551620532841539676443031986770610184880865735382872680935011266799656114198348927681833730368762493287505324654884493310708687962083601783592965445277994601022673558906453903954230755072991036941961383829868048371279047139651908865662356002534726226463545062896956355887659510916476710310097839481756233822721667552470607780804835517191631235577379673832965596546367093395964188178735840323364971660503253261002725025451276710377798599822199054788555517404535267094928939392999228246342707314864071271471451688379167977927595103296374559327686439172305477978398140175247701555751552157661545432891274419508507498798178521888367665109039977691130979193031058312574774559199719187784818625001089267775686696937021648615402264448691545799306146113220226915596610148076904351309340217565939831844210285940773410043651482276041343776395197995852067020325617526694843243252923744544413269399323496597364662898617831174926384758037807408342227155300810526157289396924875145158282555393351586407820968616918836826399441137220988449032982075155865177496503019758121335722432213201613001263554984533151986960535342853199406644064338361049274211543872699692736377645539882527314904220953043206436529674786642722247492206504768663311142872938644946266619523111709240841914994336051389885295182737333549847823224283056467160259393628650571221516988726990595184708113978686647354692267195681872720461505190380234407446997937975348951785180788874811701014966944865274235377795997625591131837366657255810671446228596044739397273585851681856005715449068952795234635329805218824508903718401746028913526633528004501428381024708778813465060805334857051830625681488400820625504083966881769056844073201687339468506617544750274271910046199893089808620897650351862613088096506320643813434896471862555505813547690770735195860887097674492518216344644873704470801642973972441132145005772119400002656886492149411762151602886799691736237307734939322345971375896574274117629931129402960887308566753339332336854354074424654556857944821495569690128824094404841979531159619593354165848516547491150012544964864216154531993260204297748406680094462441910383374676376397443032437411432443275446307417599144436746226791882982035051828049216580755585269891493582864892570778875952930935372870915390593626745389023913339265469043454853104485672251383101272138822841753231561753854253316774863975940214771385128964346088241611017145336488070576137174532537839600176940907804045338582339586567716052496662286524804681844542087595479288057354901012598293493288969342809765112037870739788708154952127546821254665217521511295933334239688766600241244804088225899840891227184861842147430257464362910007648275075068472870972655634798870324257207795648923507743213786257470788674350365985795369533509734145358921551490899603040266873674353473116230933086260768926564219587451818095174663038285241335740151217853344662885423646478718587991733328805854328528669473698696954547663810445545235665612341774463389461250017368645774627479665665147659365449301706452281497583732284506015094038308353152107328294169993741598665438145072483762240756276582092280230195566042348824290480578383654442531489309816619133669069305932283662634938613693595436299258863073795328674630347288779919675869528766598673175573535541228057703956302947435548642441327392214038230700117560741822145359287262670969934729633400110428616582219727338263003697576745239137577099591527279795531633039334275507883380060344778910207686114101394036689934779902511250040514530171921979946250589087068509251263834206863318560037472984890968086694879624437553905876240174686864760321231664132987173741974135411879992518076251503411901961508618887241490777677535766083141272826639631947095939231228883517004615501704583581994586633378178478998098158835682215973137912796511243485422941857889207627554307190525725440605614318277444966194865917627309972813168190576964457745849877889819898842201192224306288368099393776603234695101791278084474617903444701491203394941994762786547690056862115557711378054815536446353731572805861436372817408755673928320548306416702741619996396442209317765750437530362281246233394290949267846110463725884106524464197115880039726012727589008546497534034008790559528705727405266307290284496913383525363427934043530979225507213436758964839867577245937120562269961688198232999998647218203187786365718535241273239061317597577965170958374039020442098871229511744690606014577053659397418559085104741881465892098749151028480972948575925689287453083991773358162161220479929438249558629446106768600959372405525254071661602326220095230346329494939223024346290957274290008526024706126378150879531717965011264252703782337752627820137474872794972642393456645735563832416962319394473294541029470260182050029024918215473437618942194923867565721132847416107632817826123873881193169383522644411070835259857950852217382483109072457089699597060350716571754244600278879792757686856378110024972663207999730483785122297858032277015016399026431725619093045980258699056026110305617140574142591102560274863261356659609981748031303894517387437679518807582152360073097551500236813204688917735216680400611408874260792106480238407764118567559273299761349876640361859169943062235234583957655940501025658089254223178825205598082881379791171582335222566478897301672407981732066973832777865278939773309434590350671513120706793521023584048086170284221960073023509090040642382512498100483276654424055881641247857625508290194673363087089060849295354834797907748528186708513095962232607759149730331715651263476133111495988299262165620057869599120937109303347084379316660387898175221884093363837456338566497776399328433080432160403986436997712560511834046344164376900351713600246426623997623998766509218537580341405717691022063861410322661171132942424877609128208360397589196465826743508728595642608440257793993399866406212891837069758116222636251721469139288007255737234661078276677491176302559540057944919049623635239243756008176794306504970968509271993487876804153784518904948313419212276960952241151213350008207588298406602353156566272494889119506442867133188268298902864382618712727717704855532968696940200395169235958613790298790482199224593406375988749030774270845603514657211348601398754924921047369193119834164279976698432998310444769128633440056204236422499272333152889596704507352122624633445902422503179647458067063043078365122154331627604816377469161976519153033453603892148776166526084738251867783406651208742652667460951336569190328988665446288527555040937016260408815041878014632921869618362937415301532652242993207338626107382724650608982128247647074516795757284123351831050494384043091216116245825907158168486190583719794467482515571170408060775668210568611482760255178208695501426106606774204417052794912913494885037571913520652451290894784738747927581207376838837671103901970311765459852150522460229594537644120088501776325209034520172778957499314020973671444479377457612316659537369575684007192786825532262529240402468255612389833594547422983921209153268341486462134158184509960909717087940057255710510876537282068615185202073103349892807974402529066400798641289512981221669180976229738512183573317608398035280256049859595268546791599520112742261581666392213420537385379990775262377489855068464222324819806641984042279716429152844149323040998111057090935919712944750814715025373025166967200405175050410213285608494810382093159833608797619572812849721245185741118137094589931682315571321401248425078507585968922000124689955749569304643428722333630140039546322673879248394774961660687080334606289758607498926126604921370609540092529026039717749659398879607740981935198453222706236603494425277074536781216293710436075652374806703412369765890476266578711639078448024880889927943293290607041685416105555636624127413893402883697955207179625862943300344434009628319414117743140368781685621502124454874205604969770430387995614024353101169801343262935954818655506640019755828783901381177482373778877644319063880733645651201593585794346752851457739577705015389017539003658378264906256978752716717194781134025238081564989410100244682643478119739336440646781727693064220487202614959174302816564583232359817973210466730158644723469275011673910554018071296910529288302230933087144863955554213045619846542435704168588961711574425102845580966898903634464691336216290983199095457465803548220035561094874071153786814442538764054038400172415766511984719248361175000992501986402399835267243900054256492354690235182088243340618661923666555151354693200988039777793988790718759832785165960003476377158229137540208688933549537865315957026303319994963177605598102706837400835080962078264378247862823201810395124081554357145977511472187725549611909524445505730412327379419501565681651881052483876088270751455745874862587168200929915700790905938671211380598973693976125754579417515659115114557339745851845524939436811938029544851924319365610949146812655136375508401939815503832237803348949679649829180613646524382553429993492274531918424050069247499366175724812497943065018530500626441356541495197728454492565735132302273022012140078936186171161894863519977399590298691541924573279574539582162187149831571338054391495859742991798858111568836967416416509078811489819505364333601195489283141872795144602810777031940163863257000619401050345617734481446806012971947909749010561854573099919757624042970593632881527772715878469691697195136427070094556091975510902560590968206726050820627347064139729791458739448626007058612481308505317225760902034736334797061439715386056781000063050947776731125181689721345555675199406072662961646969402965743902587648018386456271017253531238837977717412934684868504468266673170724834887134666079869332370245127841653327590065825471960787075245937436513863848620662460652143386778371781743465457286509078549132929816254110809207923949501407056957814499665467543304346162474648589985882084243844841423957376001059408877405567655446655739611483636106986681387899716203402648597349327563611729017646859014385783650323509090128363545137212325880402230827902818663059301457288747405249144165669631903292875795787736782756941062309411778080137989780343911903293811416406564623511464194923115726710133123466495533595095309904375444931883123166179909452832604325269412598214221734382777531940616817623649273337225780828800862522494642993043217334509513145533050034594698214575363461889972040959147654083307260409847362237335191749889682108929276688144885336793241033929886264868639095120803559717111817160515188025491541245612416804296674698135058459961438064022101569328626783833234850867854309707290035979319148341546073924176338597130468816691384796127917514011778888732445164144210466748175541315130080545963738053652206382199805262349492289908094118365151919769462176122928104688632882287320264128944287804119064974133440944476681665620372638552719529122104682575623604122092416126830044387810981765425181929658165568734200855192358120916626924735485783086962438848051779069987861679151321750953340830600285157455397089694808274041091485880675890404017526667987644818098310174693332631757775786984595734315983506192355396499359866541380247263122978360255934602496343203603288902560444847068992503196859855178157531779728424545766783017310544449671263517473202504988870016788793997413700479159097583518405376220680941246842728432540131465753186374101149353601939327751996722874939466617602254107469998031705844532338523976332787498791998574747163728482561363775749174225892039886855072348329975334067594881740145699622887995606263089780105446414058062962034991929093044000336850350312135443079512267298954459262941844517178479469273646885499187298959362175584601572815047664130594419874051770044090365264526919246333792812914298452937849347035633337327682333206956586811856121663467331732024791855540182880689338827974075102973879234238508481199344444755910310672610204713767895411530561115785843652606483224415947235869383405974408073785417534171807277446507433677361114822747938504454319818032280185548534345076888168488491564430203406827396649088039158464316477302954692638387063524994440006119116345618461667676681510197709454468793457948880487440918887839266610357649083750036475217765592783266180476980396340467160619622660166508577529782102850605282303064081130310621242963313598019225519177851837751283774936269174691232870038674240725373562360212264047663706364793542006289850927128204516723562175874441519325457094580901255189433217999152523177210680380261827671061380346991233065024945366842373487168062325220200403589964070893735180436863575122464078059710670397553600607494519324350317904668732445559718862174897685517776550278040026851458183256401500283277590323234308888049562799076527567782754983290581361158436988619091836606624301368718653175615219072938048181200145130933397324603134991281888464549331690452041610722095509127584332133943327114135750620161506563695694881547121631804199876912296594987992656637472626685995092260411645592241781894265757633471312642350957814775635246882022243983146031430554769212843806083685658741845317949807391909708800209941661912859160657517114200714112550923343302342484567379100085895398875556893341882512064101873012375091203502005001299340314358089133776781758881380309633379186620544729253482508393777331853709578245232512857490926996004913592271001880692771982704778166374118179852539990709082826989325391364386661467502420720327457452768849442357680196010900148504267568067730987206414991022839196898221762892611740873097804692378925636667960835088838477669418158043494321291196029519742055842011285842240279941593058711786429211265310417163043230119920222748953775238729853562547018754875855152660696909892739379017535528639873600897707518384563346618980636179248390362539385441735563358705384256354984995995838219529019772182901565620637123934076379587865116279061291245229437966261078471550586776012155258875885691741541975411106224663248722577921198896911964554340276465680203648450747442127008414867672329900727550274121620317434062547748380735658353799096256678842856086682190489915113215202521907467749197176325258309362455647053488869449434898271605772047296870714801450645244943832735729653225148018137251610003552354926109133064846537462870830772513563730305591006715709980287028084266062800359498990188361877571562213628559594050281833378927809185357477402716507357280471780738569856175282450431690565894585760040933199856810607478024272361647516876845415041375253701802662800223416280916785059546563092579463898176447472066407847111343985929000761003004083023017319451888898927470404736630873987845647443851968668314865905438302138212932489313474077587657461127886717661023560414359637379159178026825959671497173630156205283553609363902724086589315902275668392872502958630348273929725443513048856804456137348557536480283859530340430163907079338765104404662555890474987576398828119985884436500180793327652055964006046999501862501670974736637066413268508373413840435555435147877319013431874355554903291385475145357588046298842663777359905962572524689400114583796070861578738592302997518492093986511507861281378189951442449497821464696691725536315047604841160864148401173274852726958893518900339724049228200861917455717272175305161568950000501663744090066651974857372820689419425565050144155236492045392397138751115435234896573123823672053964079456458587827844421744783054142987936332154167788149327429316748111085347373583955051487977540576973406251077761836059472410766268411605204152999349234724586814930986412284892683503964749473129164045636588099343197179260498281899310099103650739834376103049309774621287053705516186361184042534763145114906584708498777995796566113502745926176317403548310390155471958875149291754897944092867982158693946975705916859115110419313667450684788979492555366287921459836890855639083385134621668279320855112850175681215031875197453891005814260637757237524894333430794830845198974669648267700164984048843714135200919275167063436636321317861684449847655431347680985390422526994400629608746145119234516385568980270446986909362947607522418360382955985509405254462386373496519890723580044118489069980269450229137366376005805393958969747637151297687227104171017241347087997467293189758508680728350883587342934699603174962343401028183097621441549980838287280728074758514039794642845664159877623643340158542928016099785919816166296194588577404750174294932665813865867294674312690497937352832781094673395538018095572833277559008174504407674787485989830179911532320387291944815844923342920481125790096885645656653269033760924465811577099205012565172116704601393695312995591325739598118611165613934683471689470996567558146199468836941180859875557197421450749454340831239494210528152384781860967297312731698313151384941781141494259316238691692274544960182544697214613850960813673881638175946706159511048606912779823383487305301134974057552011208420649904072123496868369290906602789236673757193671562135016742695898235588020764337349215096526185839222659448751480928795922066002350686161507561338257505020349570250854990155987691092158587668666923700485132368155658685176496268741498137936980252043210484204036142963573316323577011499691373424200364896056218222222010793380629664051750551700144403982809958676072431476708005039571341015977170648473992969485199588542706257471547516497061611130780393310656033561033753830913692679974826430747723734263219069312271853406988201053398365826809427752363164788891151775963416889238290364703062510318988214464609034737611266639543914373651481077276584943576243945556899657097710886797971002100763822225830421841998494753643522408051622743952952175494271007103346694547989416777733186287682621761062404012100019731937581994920852960366999503714282937764195258644957742200373756798720031857172743738010053764460018891669014428912632966591973664953656005262413183392114006671848912706035135980756499472433443031905503984757624674420811620607226769790317862537046247689111250167332954465078639828091108035569247442831136342733511883551378293509187830108211648349670659171016356798523934358374718999236869997417552687873362829099237780619083739532212082325594001643834621383969201999592582735641812519896176081655975124189502236324503821719710849020458171384853633206850156740750428957727403025343065772500172066732019760071886362281848234936193619551965138667242212760752194945970744245026867454966402890960319686307357468213517990249108747314928949894944269602985433781148668434452690321353128084600533465173695654439838554047887594146757976068333347188187816116980190047554979574633192984817345951585801248007889332293715353811460010530297101945431007219613288665816485557449031752341790558945553915725128067077967907154008098402423631676054969131787574530856049413320919891211550061365387122766222528113668129514952138645590182658127165661198292081267965860005149281308693178247175548518577899938652923108525961945868967476863840001001162697348268445327600906249464397556636243975996920373861940962847420364739405650801223424629088957359901335852308813445021212753852793868631605873645380267720954524389434843483642583290250431232060715834921167185243300677468087668025325075996861573130413197919435853111808727581278057820570994456064401659175720696135207951581464297189465437493328501655237229026238297562249414626749455279118394991382569437475377160464429801035679426083030141749589979113584027208285291725598777410154105932977258221056720333460999043754023031657242778427551538633544107048126846716032840093642845479052637475353760516599820086376638604464456839556228091050059682227132940788890102602326682502993349710100130269745078308451780339529145334078244649302599979702119003077903516214340402024012826542197869518718136089304347099877859320194234695721451816097411540140882000487712556978796626537053361369256174889951174820027426636053389324061672788996341415069987804289808261922515331980936189106571973201129295922822735600429525721812650168515754292209735290883546657552179821709235878117041812307632761817609749930337848522483323433983115817905382392530643677109889042700390418613698250337287125163341607949625027092800018046468865692129270949243422732693075665332333003801964836809244814545726619193305593389803535931242630265444334199251022645180515262703221870269891128213709566363215323060747964254188101643947719995469235022631518583200970386669948518813179002012236413227886920206374315592373838815714377838107043973208056325503893820690782649401932841228440795842792640979314077624053643484982912549264257514245009146464370108311649889513151146385756998943819462378972982809248690466738287894197360752959373688989494946044291960613282410597878188417522111552935600723905777135334414833265721363754236319053965405048105440980897773667273730163052722766024877318910231910721454305199543022175955426437649532187359419477804329911015360631642718124942009100325440358159732483920682461809962663437059427515870518933035002769250100158510179059708707372348632193957669879591859000317497339126942818099284005485036819925321664644303926975088358110588505475053293949180919290400566458324661882281981428007883843073856628783011765387104141464408917833718967512747783112224521048039337181119896027820404470070295232462051462742647976959706827818017245740818650062632628354571783754281253288650529729085500969912885322317339917219292244887901411080937129722764461881846942746885693295640443890569798149280358902804062606890215384099811875607604107093536822375887915376492235438594632862613078603261047813462401517770440398196911928636659145439873891819141657477059593534113977565633084771939765851127010771717835558058897980001329374553249663358550155751754685518421227482576245399145963041407292692976949652750916505780704306192336667679980802128915820285152182793845559776833000106986826948141362392467916881749295747773009094936947656691000034114939894854699200428399060295741580421089713219781985596631544536577318984292811515802267624525742181076348511876414085497881017245129274831484499521720590072374437622762894351855228374952775903069864759899201248754023900250608098423938607531969770578455484068640540002650522721703681259049460403419610252643177448837661400038691422168467946235727332234957596406650133457528443023066845520125082439131551396803626815534987814558626566308877213152022752452375000878364160779276587376771072646142533075767971919363070320777154758504281192344335851110520855660851600750494809783326513633599956382573885024871163376991351403425624937541871701637630531705058926241998890931285545064628708936334855767120178941203932277495449892263299764027054678422943092976194523287332367768703305541812887865526454878125751161504294854622361024372913150344385454556624123636615379922123047672490386014130457876556764830176192083284706807983806649256278050964530238724200947604873898813538098755034671669852184807822586114714259151690780073396198579521348243952794261964234226687132208994345856032365653524444069008866176985218260658450320661542928084824980711996682145266468685184428623548830466890928819649203702869214639926016526788494383632745732625906521066525282141834449270248089428683270626127166955032573888739692908088521236269103824655505428217098002506304822573871274531113708750601243346776271939091525612957060865899755841401930862572125895469307893150393552310199906371358227956492224877755448055109024360514570632889182778313053011151760662250492580385180903286747269685883107230177718978742656946464466360684884694776204344651085897010297974191451912610698062306420022883273477435107263104732551515164799734496818765920002186717520241725625230238190011997849939050947127817959539920042469658159764120588525651151826551307065269755593842112716677796610131651497721595367923362623774345067050298356870114079067745561628257135291865165025753997292945122709026320017887607663145459458425659546359584074385985642844711027815384551713096551837443726260777771314319668119345528192787955416592986683576374653825585840294428209305430310664740748536997022945553362644536772003210646992578132848356007359083499461899157798041425472398591594405723446891111694327895168034786005989723164489063206969506284392010262752750199702068018553507557273375393588337593367604869457120405249500421079267872763838632556756468316430399505697446244112917060780084205382006303037283305606465761637096048124044006330308882116757159511650499483937884906453062448064259253440044272002457952125007326137930250082123306151545136745521728576024707628431202934550328693960233296016581592162125311965390555133270173785194318460840254093566249508116098919688631919228855502060303139288610743105421148913008988817578307437615935979810638040359170449744325622320772331057549224245702594771793078563172747953734059211217181106161306771918061603748029019097807517947795181182341030699762224677667201120719439390093431386377198130879784122499323185568250396216117578961764534353510506668573187653739045521873433442103718163109751502271734152736267257820962088695539808074987216807474861300638360785948916876490284878957759139360860082833427969176574880163113196335586903269440968517507900979410249491330572896280856130882116833375926372317858950887494282516880161302487062632698148438117909212194001080869954369237626017182877348819496205616568048753059059234475117190085494052697314349256633746074440660295729036499313636842537733344834817856319685496236822862139782140894017809907576810537341944092371303855306779424816130943119241707337103448661631205615283557755823739055722832097196472656615220229523185642629903904448372024171447674938626046555074272672190994838557252514732173706404171120059327198700465487524673068811338761335306276420145432127578866700252327233689059553342955479260297172418609751964603698441942004926612513578976330310428151411328640260498747440069169093293811861140650488239730105592531678407453866301834707587895990372656570409922395725476146179039160402847227204756574883777020131114719515431197977932372033922588205841501124031520650126869844553707107591311311925413209419275011457807036672560569920251825071523371286436934890269403127971228672648692994743573696633895566169560297546695607590505219043339543811052981957180474835206721952234040099056989668236291868038069771389957487364187974813033831955446755697066039821525115537721340124331513158345930300504543355728996228220307633389496214113876144745283883176897842330104567080536750431019529416088459345073382819397854868664238385951826057296807318242359581293534840458470508566010722469803360285277943464742558588859759387132188184847802883338607675410742560870220603147441729902818680367934726797279738063526878346843153048777443724103973096979777172862419593815498485285941249587925218958856025289279792900493531206188756345277711255699822766446228584846267429781683572063750994698615123223185249821947842352380544562937004067364412807333126775584780356412686458003616304414868782836106742688960320645136133571671506432241891514082464826769739468316248260298255508592643098185028399334209529021326020243494104772315677630114397737493981891672273135001674391227626579826820888869040007034712171535207647781256211186427254266641615396714544578615050918114042903062361261404606155313225127895421357238161163355028819893028018426041055591605678355747527537145223922376478825141880855988948925916685887460705529599968169995147385402690761007366378120937659097344659170502111569239442878272089446770009400839877808591773434981798233933765773379767265568141505723867079102147055035827226683111933508720284984003233352021164060463965805164019947626620603593168408288509312223682085978946397548602665173911053904628374618256385155252488125539205488192117143415819352935504296718006331595879487364059300771160042447759789994142744273633667214665984860363929092258591781069704406453992831976973886096222972281776931712155309982002547563941721115019508338159719180766784627681616562778272512973950180664497296328480893053410736395010331526156579131005143729268398603524750679482789853811065276481585419949812663179178914648340483354591023478759878734060092457729414971764496448802401324579341464896168115251075585902598369630051255106045277336087226859742228774792350202469771266621867301648174451238828300579477831682437759971759435518412292363625292705338665528835271255889996767256435689285605710694509306669265295472954909339510024698897463999864355663169014216679166601848571722460571137982695586629014807168488334401858311626217764710621733948258059336628749571137547404615932982014585056896088139253921389961508573314990345260358937036688295210568115400375002851526645401417726814506547895004040011839139794294797231042434802622687157175156511366264032426324302722591465186680783526027780341611762007743251357796879461163703586602461133783721267391874971442879465600406226237649333663360638199544528668889014310055170866354264312936329750321882289741712111058138272980828346572482158811891447273571333280649032935121673175525795459577344226423707630980407946135929812785155503653616912811848353666165791647080045713181259416409546999275180387576529827062008827287219372024811021397859001044649114067386444036712829380316531016833182594239373404837426903297180356501103053255378509826753766878661115047406974755881881468152713375778180492964569742797489452842388390526427229862239659335060259112908992416475717038565188727425798574171950753109007318279537173325051451521764375961196627672839076331879275202650254802221987063991796698690703846712550450478627808706912569682863023714350603841944175562045267196753964227994441679833394970441104224171909771799850039009398505741838416709719703836876982329963197457809502466237400943145862953314449720876008952607358031587327287797395676397878833422550623707494459762464916861359682378758892279039087176657357041466622425910893178987512755209569574427159056516300707686147552339511110689665511777868460560219956115138678218871510228325496991299581559087286946354485605698495522536800080837717532114065035591053757115627195010790189889080827888567489709916889890796200843707105955360086483289791140058550109759124691249492483400970626946079396168071009000219898073877732457604551018759970627561296326340120962511215522924908210412057452530262339810595018075733723380415873210046775846291404510844910945730642851925286167616831811458823146786197913058780932401034973095301917186634854433778708434909137299233768002682751775664252025670760915095045505140973617848223311325691085225204948827979441806972952115365409230101188943298160898782855522185642740084896066161937856759946914798374596760688710202902424288740604418009384952128082161573386952926221738407511570834700482365314633263535414621144072170167244383251360760646299310991511214668227747784979251681263781126157533778769564784789598877816799281366573075313529266744608142837159135320523252565202077088935672095368907077980230833056050160108520250812722255608963293580882363382608559093372682514351411462046561579778128744659280166147745084666929086837160175070348519152698099249020757342768834569248705267703390744331079332494614899370117629412865289165060478770215188256942602766318282576408362056419277435673676337515071251380352435662097646256784928522404747591026384721908036564605231079756959236825287081480500564516240856484983920234451160590296158071110997544041869232744952612208888195771758707879989856461958607178412267251799667392773558195616830220182298625266002862374748476054170780867043902088487421678180948739967723787308505610889659137824367794140176164184439906596133899857184840541514732583178570454185377226745329283249069467501994527818142521660333825925536975063197144435413545277096387678181159323260885088111497115289242476033810389198960558339711480951735029080714107494080622073734676037954022203474630588493427279846797336729378787636292125286008494168987763434134113734612330937877168519157076271287776784572575962302749691180568249891320294788245764585790411083477568532082503822752502219926796176507632268033322421029862285470173585439618616990540720654561476127187155027779670118670055580007251620228506576667468354509636742685731245970368127734855878702930524355872927065188671908666076113778303632717928542767914211687004241369516186407085683232792947870214977186403156456717301765513515772485949925422938838661078364270294315640378641298216699937920049964922917576831313371858010766919728483175835008625966589529145455239323054671164531181133339374758607741983603076859995026487293710933728716257002658518769568664551425863111271700153769483122426297266171819298681151800497057483989548890655233546242542874037639995765213930909283547290232333500216113761479014602101991981558044889388951251321593053118644628513252980767666596311706313617857012392549004602110074580292769678260792283596260700608002295208114606065906537940716766059256063645189030644571693855229728702821445550053368606626771400459927090625780162147274632183366818474467525882250641182679015821857919426248420101617578213964764324623578832064412625501607510953904654765780445366079647294334444651853825982799972811590216295008922153895437194511893247918925837783388928076679962217501836091651778456256915156323892418392069423048913149023675444452550411597564941128167316707067661169420902105058816823584836937794185752610865831226446638428667946117101923295257970534097358308403547689691235041949938126140220525933834023000518834606275406475471412406109466256671360739947730974461095372313337234707873736774228917947069760632213062445383279224907269151032582322255693006704472756217635649350796072559025426530731900112956775977047121007549251599134449649715138865740152457035273944814971485266153280852332822008224267555952152508946462806492365017187660235048183291054272635559031217732295584816343119718010771746237843829550949366341683796809341097159239986294164580284652176626279402452964451608792947232500601598680465618537133810039735099085028576195034215579280606223239381848750388301249829629957612123215251701650804938428308065370987942694088205188788183436668344342020541798997925576291193500665311377102498301596188635659786061426487703203615697552633783151261340452672495456190862097683661316382278307089628134711741911532161113893892407974571040338116157035859361957121294368541773453068117416932437091979818562474808742171599401116350164327761600146396194440812358269478893530273067824719634276588133483707238541511835013962064617727210355641470910216115266952193420359889051130212162040195526790890147026199529038298124179312700945138288101247784978315998757105753915911623477083668966596898626872272342819536504911701065749541966293539411853707842323514052023008509828864269822468424682433194877521157989110318493386132796685241272995484064278564573162229649545449206419420919116525011577178220102318770830215864047568632400557470331510146285678471294357475370049526361845315207784795368068009357083250319340447832273797094849697264886575534561077074442828813665870284725641562088608442277563687625618285000302223525212419023148358195228907703125983737711038045836468764740980303531211030115772001591550767455976042309048676921521250298577138507002176607628741098640501603883219148263874674816176650773173638236739749871942550885610990261474255265024167958875107105783692395326422327129223791229515485279189204743304388953241051016151874529263911515416843407196001968988384727017922694620470621115475544967669728550601526434558949425446792911297587138371712293114877387071762729496570862155639620609749436981500802796792895074016954632607445167329052273027267695864011235305271451437186664662942594344419691354585538884400575977264630870516108389974340006511519344138408628414474695828399030107708944284072362661677030038037548962640807287111397500620588404040236687126986076279469450258027156302957470409593686066728483994088237550487923574250569136977672498515466034568041682526712990652823354437272355124185471567853291107790313924500752387833561209954473460366502281402680977076004719279225321225438151647421691830746025726266068559791343005406141252524847885712042175478169726805238783804844883614523667378258871170774721368792563672261725745377185136423479041643330468560852750593363750080527948042209474455283609852207227940357503065475213812563914966697499019236991643036293557603797234210235941169573014377528903824223598486038003207294140055178375846345264947278356745312635870573945401822897546280256426906900079286914471419225030305512952998261797074392927362957182204762096011964263331132696303905092176622226298966613385835093153049696781325982649446789456423822875121421867859657148683479866250701720716737980796703745569361665204965524484598456765263699291260434715393433068659559632066815626503616947573019088243205591486828980895262529301038536245340632175006174906223463683014979076353259326672928348199364449550002877092852378813556724155493301855592873852476572322710815576095627986783219325030863847024389855292347625402386610518187809966135216548306519050272915556184988937789442926038844273863788180590770175001745986264789736253286416526464743571151020447428061382105685761510118214558242952569597598635785187160662441473688367728398582430959849266240022144385366431627078715768172005431976885711234482329992119140637107572889331590156316942399720393094670557786619411745484832012679692222722830935066251352031487510886092377019281291029112851057117467856173939311164838815375378224716428794734619542928173187903634232180179734484278842848260364648365576358560987210973654675161077177008277395781227668737874099134711529391948120529770230641498103517007343806815416639882739989542016575448366304942106983300262681376119797458035999749818690610684756407970971578718488763335056254862544134726516871265777875697044590543983757730544323650347895388222681051156514674511018936416844211402555114224080241174529901008909969805788504487352084374933697735383320015474310795001811353466864333750439291521536442082228600411725503684420124422916463789039175241732852994734609667959033062862603524224256768153598973363024004777829882739316934297303278652806753676844028141347815441522581961794375781759694145648541609331514159646588644830718208133702697386545254304944613090929459704445165590983455299151515776999057790828822751686332005255099674538934638916372228915725956360337448235159098708039580651838635769019779887311775151522623422103299052314940808508364747223493055629617909864324108556605750939895026925517092183248127988734777435938454584535623413553859648919335627166801402815677789947467860654975810759785635681487260159870159707178605683660199595276157068736188582632832895548948834635552183957638636700312635114875651831106952560400685356884864297690516054788051746973360826991933903448237151516974649198468713649879308392011310867465343969682649946328640355454011387427027874524418873057218717933411527624439153321257116249958584224042600857385766850710281098342035092971989924918955152578924962346179080735174825459694568933303666222171970505847545003524751080440684177029985121464494131263362643169344297909413031304093313131267414807085229555207206902615040358157630890909660023922513272135444372972013078535659515676364804425030486296700896090747348888945762186746439974008767617173538620726295995737218346716870831440878135094840708876427621890700214677894630731846551268631445811566593429499281819403332144264558018205352532732232253868532442161654811862001346523118317416462084834258141642571862829442486189381775287724995010445320965199116963468708342139803136190924458143814076903955086739412691612330244580643648689679854324128228447058682255008115218504268831788453555942955920061032625068894954704399660087248473764159678836785896694461725353165691444490325691928229375936471394858931898204845731260759116966683224167472274670693725375017122556515695656430490775844267526572380324413559693209139868777575698639378742961691441421135406540762767324404877555260812257197083057448232938952318653595524054704798405920675905500289328564382734406204209969698744535110421100836185129039130944359735152852471223195852881748138909791943181195690595282956377006309679138878044012648535143201519123051822738566631586882381172284331771822653798893219208705733111443949633885003212062664811542069709444126873533680765976806330326506685992862339834237083150038626603572051420423250864091014311701629812107035040458991622572514455212047003331978308153854412035436671799996211305481487714653140463845954542116361090503372160534256121152397207877550139359586704132213885411500167089461510013252503368872995224616159891447381963811284640929627793096845541366427301058270932832948418844918481817308788499976993776118004790829601912180126153185103944903444901860059703842824965177943291172832352635747998721412253429354798543237329543007753554299797551230506598268519219294430222738947100099873181655832547774643995684991066075105179751152849131489501255126414207469785361668861583329721888094650350588596919784861901625573249399280045999714764599970208356858848460929193023816979453407697227479408089616241049390049967968340112927807502612651224938933931918788024712312410767969704471198016556057144273113835814637100522818025260531258096471654884770151061688973915755757864148614142490468622065822998749399955047886204108000345928838246885261558795927130849612718106620842468129381650318047880034139121913888098440292781778298373917867273853867794157134859047046572173080848053655510197711138968700697971856234512605916800383947023935645250639212621992434720765169965891280631263495726580137273896151893172568312322270303983769519378892388198091790227152406809107788671760481146105135660997095727927846025723718485148052958826199061746779144791656197584899254295995011137097834902582864386777682085704382249198747484681887167707061997379898155802115089713285443007226132004512650332396387490270178506268867940852503359441481006764931382294896437348992863605763286084893365722629242455364173153805350640324032798672584769495161200414853694337637585490203672823691427000565186278823760143442824382460726872671213381921316207059021877400646674195550419611683240736529447958362227168061051069569383882538857512420391155703150419453553793381858165417657220642062506013555863942708249752416852224887730112773937635522818082170454996203619956092250191937228894272871713355680006219066119457712805347020359917357615436005209010435007319152807837819557813092931833024971658736555342324550304929624002395866296929121698102285394594721356598690482914368497585135858291094093567396423213936518830399807255938002838421333069250020695833011857710272851071983899741625877964655151873586967588708898885596674185165486407154614187630430281634201299958429299926159475931944187422091110468827431852081672031642263518302700994988192355974080164963487512151366189256092502096664687408873838563677305397382135672389188282421232055843188384745090759053035099181915493335706119168832495661410126438972571516876621293678725339341035505367808246333010615805092321429106217792620783547300896927994767224286486394303383351393028937392117345333839953281732378555923124044631438583235148812950988489600550930406000161891597881565303548396267604683152180602349440927317929179445382353199463674203102257544958552638399912161934996948470958202334920358665340956982224001507102751062232542385654972219389846262396334091599364808330371715611635936547670451519635479384341046414626423589063641718481515412495553336411196165788946303895916057982682417257255937641735286684301147615317180204750858068556610437302000364251960149226714519505442543111859212610771378588771046650598969378658532487760344779225947635276851568554056123328087851458835721289456989172829801829743337345606903568765008289933506330562186462695641859471004141519934867075571499035533730958452046437289615656269073540524760286152985632317465496360612695762985027000020891412756225963876831946933289257107206648765143344626377592801293366136332323929269375401215982202403928250923143503211157837652126680097306832718178080059677383807820431306986480798586958590258773351170891563672799004866868105419676002673025360440924931074774148255769111271039660682888800670833241323287640918947177186208257056573703810938930087770327644865403813980709699056985830981975226950801377398583483067358911914944019590463384044864525441931939494386600010383764767765212054282112921375965183368801485333872750631048898954076178155244803800281836154710720068784525606502605772330536437538082713243969871409940919233789005575193396538516595309241442028334969337992171437548372654268588903897110944023720428987104220879866434169933734357832814021250481759601938525909109404697311769794762350487745432851128546907862468457618382702920221932429531036211732903723743703490682539820017391813660085755210498387886131861792018064502335185539520753027868682850923741758182403387662774633439089617209585303681016403694347558998058344057732508998402492949591019893120726101118766389411801938641906244435895432138984763854643250584547915972361166509371591903130657824682292936332851899527254014788400374327534933694448643210944640956592375068864026416968334634398996565134414830882000799802222470772468350373345615550934080815746007803513067557537380648348629831063985996683368231495560622020378412681906165381444561663448684482329121279511012820662925414308021161431180482075717439501611725522917704572519946612339683745971777471804468909299999915501637599313612839739252732532653113246418257742798564650421396819837662137351500361669111075320488012480821363261495757731727952430205522684438900618037999773617266823523725828535135319589785608520313949622666223866350319322878871197136508825657090933756732500192869908365040258878897796416963734337506322005382824439506599678595518004674996305916634349110931618897084518818219451751877518348101825346514211724594854176558314142582966556368591041300660607580417165158381388032157930871047518032486793560773895988126558781894829669319468353205843000672462539221092966485360564221853289837591355590875218919731543788892590550720387419787363142866715772052575945311003759772959852464271051838815399542751878165659785402961588784256636597184520746680258021010200052729752392378024382349668931579737922077531872809740792090227505213144448686989125746320505254363927762609138238885676714903799157446830050320612476535908245367977523227354036748017407209258215634351738591545909954064788744495015789468490129413954838707495626355977992306105016010272969627343197480423232239437854251461969951692544172914036311015797974914655455142618886397873369433164829285211392638877172551386841853348886417726824117200764883292804293874185568106773240836183962941513119054358106235428222242881422500483178747492547428964732645609594045755873705236449743387259614943633152530378781146254442538515395994814971655486410228009534841561795055824435575958944166727845077983772862197943911252802084342407169462853352100183911057327967181485767702139283389245640229630465141463901164132533419679065436906430645330963838999015594017722375212097881987972793069890047630099478639276785436295933213233564887411258921412951300051790308131572523100809114273426037622636248943925477739906886305947057507972263886842111166648326245410408394782930242190062241672501161451291231511738380309155748194570719421684055691175161673087411963644312792530186561944368735656154680959352341218894857945162757008617918417406957419543134455451240912426694118453592635729693254971459850419347367460182886466440773608128171100254574195432908902467477291605459986995922277987940232187878892366458456810931166516027357619513456406607031483560256836274437214944576717844772925510984974083428917011184932969822969508538319431817755440028279133136596355486289910961347611027235665027801483238670880310603020143182912061985556465976964518307187801618119754503997074237548258343073304530124073637528741498571005958260507527824245065317978320163994554683177611552356343423848208143962083902009363137455647931574876723397007166764710611777268588542415082663239370501491365259995704362722656818154900657622789137800150012853552658671918538210026910637296393280736081289975229872095220836834944806413932652111122050835609792589253198688331486302411546331458949888115505195596263924590576870352140108263288303321886993603321012763547680407663996643852187488717007225556677970924414942821605353330010435847035455376190638854338146399580459789344566623682113807995779461441836763690656458877481509292657876558631858147376900634491532710683711272906461759342541494192617663722610255981493527626991841869224117849857941722647696661634491428222778098492566592744562206809002550876146457528816237556673895815790930437364278979245560241960603538372276389913267277682525660680085658058231355340827322220702848721071845825410579321766588962036546858859737937623146087460835971793407086431009859900465748211166867898171970857521669269479563460354218388974653491541465431329860324764170159057294234102304830040771155863105071646325827777402763574854802144781719055147651976440505798899795949496982881778545548059606776497858916810369673626667298892565821154610886658979968472585578573614449569809054767572514715486276692004363356805070280665749465474506142072532933083487650747731556015248336088499790144898433951923592672753074174464877428660868122336846044152723760272491321536879406451874983112848273929077716990249383657289313168274307281250448297689031194887445364369521978319695971872325592904410854774772642735875093532654667730870121356130379854531748824958462400058254545209771003810502040532037745561526308915251221954273945147689860984503737941980123112004886283737920530859152451967060477414016247609566739411148184931310913994904750518330830754446787838723430414064750041118409600229652087588260669776482487965660321903648591392960861803867944569376860464132704395960372142582137632622675429506595086215234237657663920332400432059612733706741836499017484509352883245768053606993365952992943287997488453737472647160730866022476431479873686575678239029683286417739979924191150976499275181735550402257297938217706482142398984552370554925353165301860845079286276179493467975630855559510013956642398765689846833014409600565085288509366013429390149427896397379927464894600221703479514021136153836290661104408457176606535117979671951942431764671766744740698946735291129596476441250170229834652449661489370051352462388336981059315094410082392404915754312531645585144738965468321180551854437683892582548221405016918629840857006577970332719193666884679097780691924002162316486590330686596996454064867527827855870587855699286459552343714874224129963856664710640285068808033972751831133453332521766874221326822128910864433088179147748824916432256096483279865704444572240076786344311751766684005158134964763897599409525481795773047436026405627109703423836123529850329174503537741043046453610045290209777822939785439944732572305619373477075956842982763587692451295878478463205265691450846245511902301655852340097421203600154298877690288025004004854423012659051182343247076954735213282447543242753443301970951124296703020709871957370865655206245298663588607462129454934675909415425529520079460286705235236278261676395495180161958391494853173160533838711923471538340467402702518359295806623325557935892537223510009233353726841293843295348994456687804649947190873378905354900726333524627658423575889289314636545420737097208812294458801344716532839163767076173330544176131584827342794581750190476869018791803265049129263947566284703773778308473154302139970342415990184650508493565757428766019296736130396168091188998915085848896034510221181833012689481622879205662307233482588545180288137675306883852471254137835521002762397162320822428800437453592362482977365948317529642964651658346693846165037575594734700142110993079261665991674052659197566362446271904845807846513540755589575406166346560631606175058357279214028127719155905927652367287694223005526701629712055165114896906205448184821302010841997555606833046807381473190953852584155998872306574040916279989121623913719217445389246219537391483701841145899964485573926779042937276041744261514887339875915288462178374622829503845578174879535286321369851074784619732110494231150099887445483801784213635162116724479581789050979405223853344108561573924734813580018623939902034527847827264347014452269239092910830686396500346579079878358626097762277807384681733991563352150866093733514599886011079643131099070588463522249230142711629215913637699625964285427910966733431266119785699976923959947436728589624826715514790660584096839579452261477213190585372684391566240470539216743194535152317952819581315387492623882102823696551076175735427059177234066285495725690588789330888972087875307207297558296806606768837230898904970549394251309751520160595890467171774836376173821067230745267065577048428090146924301252690604939642078946383518772136146931902981823021906169952274409292528588135918620348897546209740639992555802993650835486529824289050167264944550499942557718103704945711366537733188151439195561917851131525396405185361692254593729682802339379296461544013544389479396042376783616195864053475690226372511477500239603726655849662756140915290203632545779603055147896840554756984667989657860246942790787193321719603238459602741731661457938159061139951725061912880127453251049181467847706758675585951163311894285306862659183264815072195167268359043528951285753338789652634250698154554407363401672405573092094475704989159759239950869037592987201015562746501733615516212959503642041269129630704251257645377508359577082378525460436376041355481919966813567276338159558406495419281762689052689332416461416249998157569546221683294397947669188343533403620238358746442289356966539552063868287486866371753371271311637493509007216260546436111293446458660857391123474896706542215963405702772173336196948462741117206336427139760328811466460967109708089901375986166572766997393533154203516358690451794745346565078657543825900778783587215438297326752912030198278594320690102395641516020126404586120880993608161403167026744192004035857791237980467426639784277629276875548735437198989640950866108426723569245855221811313231610500679758541690320716534865364096798123857153012602866077723010626501117659478135966489465594384788273050013658540017950959930938456298408066828492983584927410423028690495681571458594855723252494037904189149922247443368351268372956444231266511080774510945286894473322558882401051969734454859775092313096778265920175202892756648538704628755464221241961868003227339355437105872864732118609524455935183451703742997988697081019554790825512764959101574628663880954609333446717201084032612881776343718163999732914744112485334294480143321622876925274030535559045190118310781465420827504875635548475164504431526388850397815750789211754036834163440930530246354534530870223342286978936299605528707001412563561958076643568472186720641124615717092074615816166374427902145779293796932756023893929342994943490148550423895084290001386750261392770491941887009595033370137883062437549282393534090532797619740688946149710830315464008998979576470382170704680688178558152656545270118185141860329683531635026480246782120151461240422934844106238127493098374066009449332792304242009265552706711566821718979705463710301946498155331827347649258273919445417071987895479341801456114493337362664449055217660863960087927126191067142657552765013901607273878842566060895032681230819783913784913709827267401730692995808528563846764529432663099146945697474401694794343078615770629828270385353230356140873788739147155529719529511450302089642812262780606789427173936616894031895196323937823956050686977611786790188662371621820713585815936645330630986701662778489350374456336879345024157208982661247154062590911716294578618106659866487683596913647610579881632941511234389711845058828263802633982313735127792374172027342397811769379680715802620488275779996346689376191543745627692808588766984586806940230257041459286343660603586070589820071130342999316424997869258949858702691445852314232365210598552105432306575899466112933263238890289068350631534517912401615146160895198023075438366214113923566760299420383351970889797314869594804180429766584420013753591270181319433482775181478167757362873691518228875784722062516235258187778296106882954541105414524893397143511843248708271649686802115795854712509183322517260509641062454996188069372911530001920302934589803445239874524716266796876704039101208742533506700283029698669461610062872094522551186277769190385216133452816869197618514302667445180824679420690971047541250168995627720564558358537660843564772765772936443264178604274373394971870890842001820844624373345222852679423082594726861762100139046697860822918027669757232740578058659456467614377696012679004539061156336053609848592341973926267581774923914581818466740455945833377132796743571179525473632594190232008258769099183492532335152263015612520564675170952526676158591592193557770818279353717332095880705793205742947742304465325349687910382411461222382706689743951501692901611553608402262212375838964232568424127087953487824086402487598709971155731123909589394395174210588380428319566952628087898992704649636308164353798042894734283658240931489196234326840831482309383712155631036136909139261655605650108023058123716493499250256490449535596545041734854635115445847881962685369888696925483583518074640920031778430221793525118043335129271761198482142887737679187667374765071886238397295061706196659748441807716676557045194335144713712728148916353512263997955941385801295980187766329048414715062147379449227803697800133070883849411815204959462917079604180674634421438501565445169528969558634533100582386086248555548408263820428870144186906985832913391064502942347885272699686085703084843486430845005844848484752589997103279525639531859785995149009433004298043053159742955748641010287638030798309829305135073731096415055119242195605022456863173238051292295937533149935513772439320460840245699320635827402052941513042682775212136433853783739664959135611893663399440241522527286068716992505332779763634252874928160266345663198994356521049899658677566626388986536762750038358412876846634080019310547659856425533307867361894869749955549201216252954301777644630787094709738287185417040221867401782666588132369985191108589446555306574660197440804148697953158924677342701889404445793881996075081818183166531172112637440880202619228378428875296002273472188752649707675623265497569755757816208168501976831070791167272347309141163001900777105937995815547088157766925044044558176720746925990742269595861673469052123848995839577724642470044653633205608386263799311613579320493031639650053253542886737515205421478631373138112415038723443880800584296513970686010125380784623581453506474611365596939558460455894711806865739759217424342932902510925317513997230238509924735529356719735612525192864086510160908819452243106087532526947978652254470758470205992443139107697682105428498386599298284362979376316537098539724431223597326212750555001983340210602935949389002088512119316189023207852921158086433949806175323493809280072255144802673425771615946961454395474532603066871182073869948549013524932043788573615623530246100493392979320735597955098763217830344555120992379287004723429240197272279284907819405714484532382345733008100669238929207278899046384958401100080969566173649148135753724002421516192694400922510501756917165072877338456641981027239893329732945147562254923407732676723611687138659975402111666768422201767368437958773733015622956615847009472031022310927169923752186087780408016313301853917247054448329645776640144602956021176904983323932765663180301236835728349956398816618443697113000166708970563675108447861896145567282232521964597201714924421022310192366938774871347963257356201168738691248138720778647885208284420171085572370127123042543459715881494235385346068564108989339960045960647688372738445592528474399622535424800531148041403787054203680121758209326797511529498843631603005545506783689503742087933272758901055579764729620175408170649466045930652400598756438739970287775339672233011978539694380099482636380361967726056581913702919727114613639706832255877023774687461146594541164126841433697486263056307260446647625433749136464147509306984838296315788546275422529355902130480335341696160213376632273096766874453479827228593106993889495414362610846699053187900723938714570327548240517369039729724244351086957075109725901837885800782440361093674101768379293199287361807994004247631872396782563125601167226488707433498944491779940579884320374203119059357668513301330248431751269417173524260698535860266414625649635278449552860936784177086310178555342073136342530833607380081706360840780962781100325848956532609046128698515978336011991174176120253919528190815983746825208704111349176851781017020960219901544674905612436775298099715333301002773285844124043882557901308095861855789471545618300392062546069068369781469493003695248931949937019151743334164974866478251293994557840309681970041416315213400160572781755296447410611077183934343195261946432572393614606994595029841789614078387691944187612133692439065763277083824827109867737269748091733864940858382729241705364037762221419661092485932317161887583417110274062740604539952154798413752854163737991922275523439352785631675988298765234877796635416291771069256645129419520732409151430332952449737007671319681786701247196769758878164751995112121915407128036705795609286654477740898076740153225328186439783203054335089313097134970105979968664047722609303263929637096740951395777732134509912327928395691041328807857958241427338646371282227549749153740904189338638249281370540306552304630275236878337719515643030630619493133590080734775085470967874538050842121935520567127144836497646410178199969145807087906478850742204304585410346903908818664655767918578825702875992458190803876895966153890629333397743638518358771182139766072992957388799489845672663495246758454013884593074430685555331077170416334523649532389222648677413216312436195918660465651559579541932863676936378061072917237785156256858468931199973629458119180195260875871586825117625040198579032647219521399609773762239811482668064141159465607483139979531839669059671374549576436641845621774253883700938975712487034617310211773106548997772920289299729359854423492803726388283769614705638245107628854081346816684535656493079574638709879516639389230984752440469368665921121136340715315017062769656299658688995506147108072664112767457322182233423226137258741285873016665125963888265800595256962539685149909366133859356172567684867682698473225083141775950575981387227446228754003618960515846468806253753214812841207773425032659938541556159539698258123028580500655313536301329927512555114920702565568969581818658671338480256271754846970403411028306788025377796973477179610029132822967728957922375586223774843850938168909965960272016605217074599170923974855064984882296365365276266982248211899088606444181109448509474064168460781692656440958779356090010713687873886525860112942183858062098374914828330735484777055006678312903925617512684750451717363238834594507351488962947352560605918718902977960632978981486017416366142762988085496097111162054689890603357631457858984480580070867557340495370608353179967600450950393347575388498988104212673757662659523870279117573836062685136955550973036498355872004968314549465554922036904359319963604764817980551496976109878277344337567800346992276688189375785234805883461982071832264995747963108500732172277958001116672080335806734817759087900679603178616083054636382840119800655453732330989685826383907967929401174646501784079173499215485220686502659535904321002644072597781893296219455955128476594094292126269136994738048197123290632834152549758355773150520856848753784915617675736940858770770669154945913105326732161974029461714043704508839817241261631168753279485304233193424303212591905293734913855126310045721329484347000490874224095463329709152020153723885157501783336556231768179739245305606295994233912882642805789631089403690108171840542112554035028926213351885451985792750717228923378971224735926671627036668852781607453886756306987251671141328937983863426453479542996517088645415775914626564724853957291469181967109327294570033886956619274804319738867526922030194048105316312666065007351794015989184115437664877910318875022106524762902293361651773607998384198674091874025825584162577635274649848241474822318438094489281380685842185338579700227586116525298559187163414309750149472478137582247771781650714973407843883396049243625630245818565516238303236942035950190796601755659641735428054905968604086380776648563278057756471025153350531814891146164255080938529501012209967064958582299348448602520344765621763412997919691490966441287951537839214107598577313072396741531612459124159347353796918075508230365827182777829825505994281096764798931023037979039282560256563319114362436965492744066919913245288960755439833742297651763017140499383377396928823801458778081683874986633943458996339809776559899360819252578672326813661641821993404404863311695565584260422639421889274134492659925515149997169098821822134726109520511906182905836561735265139360251950566566812565057501184725422621669517318718759456691457643981067387432607511554781498399512424040683272776786888610176641141245324907813073487783439533214190966690865464441226810832463567000752697452273128036146293532420257659567062479233505315658769805489034620016259917155021696368970655379050375038902611441060434127344422454396254953955451506996884003347965117809046106863369127917661663714652907068488551420156970383918379620640068724852661514158119498007239237990420748320965795580143192410636433461185945970800217737183795702439437880143892586806442467995150155973914912861908911304350769127895661111189438277051802695056909048139121485004503109176694724584979939765061105108653326324210369607842017348119137547596910853463881166010176171252340671666942679963098840656065505239756138376570268705797176488430551239379265134237680253301203255497639474801452666904048149157367246507664258757708606697509249129658340296775906821657749588236557436829461464949706059861452024231815881948887061932232818257773256182146435366471237037501536495250278930951418730147633517762017615191261968378149383798259144904562911205722366085484455908697635344640431395958676383306569258507280250035925490325687103376462544915558694451215923394018940299131242356556198819222406796259933504305276513251311481777490174114920869129443670563756450792687836937780118243687324020820511321510122619935037674806209204512883537218192822224897725110280249435079538654158651120752441479744294118935737666850969452080786667822333579987266841610506910172055656189816650463417225929292897145224123062759869868911564069100186714914526304288623962113386754481530552983249289448561175704515329132313919020195325889280281320824449505278385760449753670503652491183782870975579912596047771251011583546515445406229378167825274306706632990752281605815654741218366472762920849437469243674786781009067723805680107211276514948360377637719421556969834039411993492211185136530596387087354784951510511862110770672154626954505708386299527732207033154022594672857417993105543989818524363804125203700201693772410221409176735263138883033581874227970558549914950393807495581526479885041384144420094235449688709267963314832431862713191108208766760011717631563055519844333948728323869042169857299950992883750021001408749044366793811708823498820534064925069949463223517386579746729193597069649648120581828576922131169671515949785456498505606864691238363659147022926748458351416792230702359640129513435125567558301259252113957150559019831559544562949983352864279095469377964296105409802237771556693612115719383540387930674126144838477677596021985943516048521688843253758281665339000497128056807816001920887966571671794305416737097695904462404276615601673308252673822481189029699752903259819706991027090594946389931408970051185603659812536557549738621093678238243012062270066216801788518032488421344962263101471787923380514284387994297869693387796286321750612060092095136609526432535479551877074320497186935325521687261672587964159319971714398266728256524498384469696193942779294368609264478997647929955746547865354460525516545887970834419746866754718192567824549205862910185209797070902600186303748514512822411430039155361865773047957763546456197293157688500049767645154265688620995676515044054196532791043086449356756828312314880200051560477199666252794261986913442957863324077105460751894582293667505486928837947623307930512275506069581228283321081851822412181614195773663112140191684842070110739258756361146368032480797498693540906156744872327057924911837638812370725975768510545329452137204508300532023281944727557133831729221777374795535388311394515285915963313332740067278540146084863037954862832184136605064809317814946452074233791964769377968525610725766543051679386787030727466422281735584752711810536771169344886190030893571501585159206584577985409285035860039680559541829935965865699424068722675078992151352928563834140142533101688810662269508631343219695296139159802366291589507193360348761328410674068172150378246488276400221319524090694952543729815735084974417882515802977583587816677943802094523384140460207916271906271587948422220421381558885042963139179937784350004263994017004121868454847775503161948066615210515442843263186860070261005166657819797107160377158370027185311199107713902272219505545938413263931626644747210603434237531128272764866834985266692380840255882722041281483082248262351304222616282315878263903677326720746429781283401943517802781773661702793049140829903792240483291331770942585693617735113841340554365201697324194628898336601142707468665143211667597522029831809340081078267704019987805927397528965215344096456728609792462262174869020074092414773382178885880093704364734720599888017966451829037516389822471846269271993007644752648638672933270736973355371102848851506218290714781350015255662426172874282549466651256928803323067774596617789784481337976845279742929099444618490246494736005991269954017016214377861924199055382909681252402030158255159080951103466375753610759650265189802217811092517825765707606046749917512739328504870779496123193847951423475093685715980671218941473670465072445386256784476472808401263527019940606237123504053110237951084802888756520708463703074513297352547652844225752132840385697894117568168200616753917727438390075368128634015735495896339803246008314932934640141438250387338089481780910604658680664014888225698164809596509821444788613502786777066251402090493728515921746563533501483547543214274492038107075688641318550229565770580585352138019078056428309016115318302847956014818571843234774414997180086149465588136951241812566905619968981899281559873090610236438398513396309493024744952397224388573360409871359788402228917118923345556749806629480979967261603180694675345417389062817100177623861304245787141222848180907703426351257687258877201779935885991580639011735167054582109763238706579281387712289653267568194115956045657561889742619709948687401139217196235068181735793191982388347473862267111154551426816927903854768313560716949918432299476440124223733531720444310016409276603606614965891452529439321824484459697469997751515464338921022705467341671731948790866702208254263335275156423540426346434429949842322626656110480835480401150777170188397113027861320678355253380005478900686389370275374446542453004230964542161580766045099890818690802464469150847128197716079543972561530074070379483884708181272320025606123608807442786328283784150770303952026700341528869739224182954849995849440924810462764951515896545820042663734385273462383948643848122894434615825907455516405573574480499477395660571563266473075517606838322329379383571821185922471971901608822662382595766493541976389218909862661874902831283539372817412437550847008311625727840432039377149436014913655472512908510419494307289721495110097288175111102579789455453567696834158613095263984058408483947639242934863895148046505564026922245038379631272321784196780995558258366624029902027227808366949246168503814415637162044853911266916198260259026870920795164898420155820950580711106370332711117430221990653353815224023646719588383350420441560582183305471852461808883551962061861942883254695129724488098547645426918934114381801806888766867964249942405359560681426643665168446329831177476185769555302524009641198639269408770674800119601000733243500797002369630154191367591548341987735789814911761925008731980915001665198112030089877633501344990977152093890711436143098078576112074744979275206799601741163271752125491349347030561195603628311724421510261532816372806411162064601026700578525116425357010121887440191812077349336950335075574566803467735672500871120757423946638093439444230450393463778858777467718550342941174649695206626213022000594890693365357906797035948396848020533872071702161412124120827865728746768296676792712821490480307179361132392826664853772716093881350925274420999624477983210895654927481887569068276204652694711368779317833772482583644188548919008369711722388713283484757769054753290696131200219250974570830025036773768926510102340495369521058101273344991167245084445147271694656852178267330302715748737074649582480890186361443084150539424885735561561731743247820826830354313074325227701251641445002261847541104299849490268275536172667298831296696395647459190117504455006314885019149368999576831279705092987615541675440912262625490440191221058793254468040188919335914320964319270253745301105292092285013077997539791268862286326859784843313945195498118772000696159380463331817255122559175333546741000765436455648580257672778505382231923767723902266973216419188031839182154972151313054229601348689758998592951176534627316776129660194963056465863293408689073099573685238499297998982927980706503223614852490329488191171599694817320213610516309690293276658394184999989568725433191450788661383453848677628697412337020247122810868162941012429930093342274874127257865277164061386646908619938408812320084389387773249029158175874032760402135088319565037779743791422704406792534241110230474553479436270168550777045775811757693875709688854057149774069714601716496445651309077952315513373720946302390084469211319139344062163306933246820580245319740665876664683632293943541454447518535213747558386614026931130410292605913528576911795482540290336364676599789106701183630602142731668411916757101954820051936874623135699571483889188317056960619074056954325729661479696533857091118287746141221244153153999862752334629460919243890086398673271760754092776115901742369126830451452759629167720160367338599166973492383744196935387889525960757410469289874009767491339804317991691463745370929044729391523550231692366603570158656229873460993847687812944128512884396025906616060270859018479487138378670705776474542861461099036106071258737354213388855752745350608709200196826552302040079899354828544636764096739309648225208145311422671624468824334308254235017185801879492922058010530433267513631293868964524755972019167121328708686518577303891445286622232369293538466238872832364447231851977933530676003429346999776913847913185481306867288747043411194979528593986402297539761080797818260501124080070032649151716920647455614440823402405657770227242403766443984597720687122930119100409231439993628273501514285729552495477194261728172138119703460546034819081863310921146031343793180466763763313422253492931872262740438012335387509750790362547139712809935244329119443921976541201192451041744521536736473855705770141717142318904304605781524751543624051399065387235742325788043223510689017942545304280672177537776203524675750511688354228190654552174751724734752992797013497633829737244358467593340148590441306920804069692073015391336544913871154055732990631571696476824886730195588873514141616687937444650577880531499438383544464771894113814036766879279310396206079455362493555093850386066304508546033711474434922691968781446727326907959810657737083891603671817917136585813225846390012733318719730138963970949027057931083540883270815713073019074941814467239705000311616963024119383634770156379499067262156051189568427989773730307170282708886130483973421631189692564102148139328790951399245670199432058171365949820974178623456822082553779369019283282293158978458517979965246628864214219115657069339439251978736316160323633295695543514920994235078492833683985843940584746125663219755050729080708968037136333540429819702491855091218734265546044290539822268146186501561554557984297962888478348718655340773279313036432654197885361025870021652977482464030689693880752152774724824305391479580548939314002933758194919995231983093999982529614480075983511720098395504764479031197353727293160488402072975055835392314328562298099308371709717858979435826197259915466349782458729090979022484887960628259615072781728764902991408725690205987495567219654161692142775992842503414736257760501597176906628277477219949910732562267647083867076487355835048209169818685013037742041868713074776368232014529834879029129983689788152033452165115305910220946295936648890608566705767978081648560518737349082909351537255744805021219680571086151059510165133745009392496489923829973751155199022042403383561300198366156395915177712959999592724445597120571636542131783714543662507921706342231250896196745110143115552950137561447379481249059076058289169369359746632327809248536710551081454442307703596365893098219488710309320936285878988603140633369601998013861379560797138224865908757668506886084216188200507872172975087586731139917268037571093104363855536589641629248852191158985225654350827886766591238819277974789079909637137417910527479518074125851900436995993741207021048598653093235121655275898137678239492549673294083006103696701363192443381012549475625000371550814869578539831830989964747733417749548559109912705340099259063027058073818075372804947782984975390364679876086051020694614432946516104127739900033555315180858521793219843458225633648270046732443941757330234202710215786472998505505343347848124852416347295163665662159477475203915413571947835190596068403003939686706698836535522532283849783107189217030027918685673585592996132644762992596634812880232798706682922260364372124224797178735580777799672479258789115684241380322893823349663620392709780912141095340658102632608992962112821409129145197641756671912244508309058494597050543588772023053005246465191216783846760036879907306469460907093536605547133786746707785593179855006400225057483855238218379980495640660661589065709289066999648345972521916281652146499969713399683535470373362835534574386992643678603630443308517827518365030203171651891006137432456886306756899609261637324715033665004617715231773520310139102052341956872467787583865579275322688602518756579824041965260951350870786173566885819842199960585517472737629885065068429671488642889755111943619131655593709860246239892299201060241131975154072040501456505538995804817948564954059277109596081424163075334020353182276066453956282622074095488676164886562320619658123975109834023215208187633686848351568089899082201183363866514072434378014225988246879040978395066132906177392207425765110253467518571322462354960344114313913661430124772646202043165302746024220587818417343228272272540600890546968954877301815788579847134351965765542035280499436523190436063565895289816122448857474191773888940067106950883433601961079103649119016637260293494881921165784908952987245512373192215094351020402370900372564169686867264226271214705857152157495959576060623782345112579726641960315277660598491300957844578121318574835932911616658525099103732902358446272615406506503605655002236714853544703421662306459652862617444794525142114582362969655382735909806049343930017279944871257605798364952126985573700902856416777150047765975764212363615854104887452806463425976700066945112620415289021582848654452564611270513870741874330419557723396091318579878174704673488520416047974967695728509619630108907803514688465077598230686527978056016126070800154822232919754457991704488663138155262304093700851617552427947692173487719341828609815045263035999145321716642438690323968686415594864983868954959978811259167241480013314817859716952539691760501556336442347544495034774449218267109086365110463428892086159374262984430974755198279768529299660870905380146816775466677207075378042577707025122961989875530379765972255248756473116285552720274349686440998637882504272903863581641593638398886615798862506125331241071221994905612733293325239623546156833194531011282482031343230841390298990348031547741709416461533574626582421069340853485876525463598694338016430913987632623252290720043096439752933937223288775994518171901419178944909692741642417795795998099036369302547424174772039898830170283012517302107756041037567165998347854787611156889085915987288167949995753802399611652195348862274945323820028771080745579076383268718194670015147861938952625332769423678138270700198403683092405189577549927852813021433302761614532785737994708030853667997573439971057538844223748974904410686622683055401463243612810793604889811511690546830313397716569762694225788318172440327126508096998468784377059584191240360674315354561346391217733807904529915335067384375086826604695095374387771359414679113733884624557914351910692084699804670485542958643400871265417198632822681966319249352991801339867835159113652849446849216448143686251864203318128767499228249277661167605895369964603241410777735879670443058972465427291393198012312305071222082846033837706299481998309474799096531051819538665232495498964506771440935950664004834438547403348628231728394261903180651614821767690880262984413227511362334901480060411942833035741489531037592743927536725676918829106533673526000181920910997974746063002253736354448526920323611689497630817897571894793301776580324191899895099175189776282139917578127626636023654508448833823720192875507926575698503416189761795463329834538520672162957479422949984575932443142736881650590398315679770438266637550727591443509502924579897552006441859701704161037845252412954655837484540255934995123650046355677534560663653183506268166653409997244371966642058579248335058422701522967716915405024612821076767944083044253659961667987870312333845063515803431914412348738598402770923778184028082124215321586037487333899871266349316795496034420727945846346112589664042219843139583480957137552286700382035690559732227568641271261727007669776747300368908623803341821860261186322791592304322766066668552244113931184719519047503337026740172546375513597673862045645378200122591725624490259263382664522812787005342689284289844609887490496893379825882405630154366564296361036008971327671312889801093089691743253694744223625153701070099233261901125601638687641910641359246095884224448908281208973000703865392824260537644373789314668459434833607883914760028298275630545778053455861050864680628640123779847242807193872998035732588314729180178643280800515706351151187484464021407847685393795085398231393759086806416060272929720665426734935834426117912015861069260502127157620454941660243175961146913519403403108153777045519245779913008420875470788543387605247574741990037885147933935092649401578289176784167410698736773769860067396608576960929356398440304433687712290028084746342466274253986304386378736057431617096846961371774136936406368642445144626603507475909497060508359903174721098804855947164655669836135034932043558731410337143345687281192124598133289974839196346024814252208021469848204202496621732298670281082006237943067816399247474356220276802504000473315203716594781679635033367226204114413104656185454107912563505638855275172264309495290004001952943646060656829491648348338280912898677138869074986481411723208616137686463233531146548547442785494824046554015129094306756975372342021402802061520471542651375247903280148533682267466544456789165637609640549390034938727995597215231794275801912894851848823853538432212839297314310245007342077724889155532310893122808057085258433836080630398691512118099269150516227128178070371105261154565644123237451182339383290230686052593471473986635578739145792517383144885087983503911374999155502633621294923656011766924432594312596513041162414515106615644697400782639335317159666551224438520274927074419259578399315065396466345156891428131045522455053467161232188933439366684164496797613512808386897849459371256180293003525038202315423026194877311271834819950310224248924740247992619043482366879458011534359091512776900165644301872989920282946958972467964936388036362630782820322478645923098799328476501432436838209272934990790100732809032030991825039971522810094443016573344297403185223269047830375988125680699398224791505228740599513032549738828358553551693090166422438197489305955644385849179733338585125038200101206197548920765455988129328943062854141565372171864399468300936176312142133243881380349218951267348307475106876707016590623521955028945458696734682501599739731328362379675297270742970751048681323268668711457300582478149492096816039806168929271294901591308252250790623443075859284974973150008250961689727480878332684739552933001446140072438365850564422467236150740760203891802730433922602908580054960942452426594196324159916299166058970642514800133429738921524689899552073559809455943258335041927846257439816706879724106195845372555316514105815812017405507867535885196369483018982302458671196220125185881460667677393100717810328411272580662895835104464305660492020998073648322996533602609758175060701918179510263606250949514814387823314321464561409321099649091568515639713532703627683555003276401559479631917209776338366870590550709211369574278540116975747799763254899840971815357238993929095407195319128689107161188078021154039037069811038383567929668978402049463078418296097415240290848357196254238755978907403507281515757993943932450723662016438000681307651080861322390569944524481940818054637392815807318900733410360174999015946639677826292086093326515770100835114263035620083620903541435587391643008749659848384974927484244083893302858682026820220284249106659851347798908321787337030392494752117042421543558383558822310387920367808156743368765956494039338092118855686748825881337606928362643633816464437427485382652419479008806104319080995921768138303765942442821305636411287393539379699402742575165842262529164432295266024776901745726673879320680750278868470322730813577771074114432098285978961742942616615424584449159196187694914445657571065450384785558207279567960549187531600323823256664876439597848915179512314329747574334776362214813040425206060011507276743250120073213447124699490185301303244986466253769152258987315945451597980400702451742935086543749626207370080414458773589945315861294537303645738336624690718542064835550983562748462874997247201552282002897472579688347271026831358237579692000226303799876702187019575618641765610167048977856385023072116087016409684389618200540942682782164492430923253079131601834135979075413212898935568627411667197469530768179986555821047541275753877943290598035035387860817507617602794471890279703517275735965770556057618238010567667140062864376247702982282566485911444023477347428665849358094441596222663529979347615343046705481574773275170418645047818933831731124953886364422135168605574366700803929146859130186807716351162918370325006631322053855535702371047703707417723554601313692482605392278641226926623086464890098455055440394585904524055821827412853985056394923162850617065660220406806684036814581117829890080745474032136007881266679281933059480857656849590564580037603201425159131085668163592382152766146138225794124985859761852708664536677457418778133469808141638230009222207536941563927636660500816236943913955909985151359034550963999852902804385243039249716693603322612425104302679787570277605729253930016327853542139546064687222279284282556643962103847817476109533351009560060333678351172465769325103294836881125777375709018987997969733266052679238700317815470556899908778297879231248561943587264711518660111153184026192445365938732770609536468006910284565100338052523470373152343280059577988998261168576825536964122862352650042330544603656907513840906220427017698885352766840940039826078327922064489589297905299883673015085904337520627018880760424729956699137641582931643603090938271291924179193794489358028784653947035748171125484708470083395237368463473313922040407677609835040664017165770394229244188900017773675591257350370419505478630423267229146015649374162215765845920583376468243602277944734758632596572418856556143398591325265532934623239673255834304451732218121930800351098210453412637227353646642041776933036959690073232808520397778664601477528780123559077633788378691173906742670132260773536561507654371736036224709768641020026612360981529465510068216765664994205841165456430082577912972519937869894049263566052266955194127859776016809832582305779277782325523735264501749267045867357119876214855973505845057277868596908560734521061287337807784559817237566377000531064609059169104091243397825418871700562674703401697557110749163332388641561545851929106903577133819371209984563664877962410024612745636809191821863747569983319074922719341561937076010098829250753117625147817997193657142615705358556997088079553212605265658729099986492477102406250273937418985575393345179349967573544978074560429940347768599000578066554614938460575673350205758833869375362969094638683353208752992885460671945428979348463168186572609981156588835963139079030460439667846041652987879987364627967108312287840180012054002260120728587366876281819543467341582049316159948869492817180488354020099022449294033197936290904122512320831363588039553506606225327367539641014979242012682445412861558348231560090061657605692374688576421584735878483945491332587173296638501789830561559477721976663461161348925948946519613041695710507072004012744094618689656521970441606530522457736293281718170208743281374213082907948415590588429746242188294764920446452698135703721412470007433605680746784294867944439697997604789321604396361222008280149378676499438317496307792878260915523446512539822503384557550958527682287704756046584375009542749429023022758639181833940524501259861329335826188634875945891183484757477786501187941422065557647984334832018241713798409008784250647481547771887950470006753336560195561982523943245276324918270991214730786517003852315262040579148099756706474272833471002391007826199757244154730639230335208274373018150869100487316626125302049776086003714586463359093636724823454478509627037945137670068325569228187547289672714049072944941486729479742977789551056794861450411965134047924810688676879654548846034030351017464628591635630655963778714595146013392124929407173947920839572744834167001447720859210207443526083919763192097700573801438983509072211572224110206644941386978380187184575538079999034131681202800403041204770543328517463204354341937332451406193383821383467788480710387849362828287076721089686909620367947784684240342186363232291780672922441920134590519211233388602605614436362477715069011575518197549493928964499450530451099688119739032854315446916650541250414247271664588840454480282893633321283472855815523797572366072710412174576788539192219244523195644531810702606357884511961926344939077671434298040459450851222400253431112641728462762607839295216187477875550815742959006038498828692425029609208884700781672034573285336147388306437401653814741320171066620035387493130697263481840794298275314533919179871851530988426873740111593135765956556982658684332013591407160670791107971976633855076451202651124108080099401372769746228245605368486458136535686157535346584714871167312412833393520938509561728060292050031240298791640444924705762462046236183924675361000882586425099007515461189260616778710719972564621473493932802667944586282903453221020619533083425887302075950013568079721907318934196692206888083963145092143086892519130871663760539400775949055384311197753650002717009838705370259520006062224783387809345563049543553535317072046655442854899403591117495109833030695843372922476561516085023987696096053124539319869874511417936246590658758167789382439537634535474058942355402099002100191196739109507328881586860667904672521340362802095235979902141957580807596552881886075825729412712851732539809536890947182208958829403505924260562912981697009263713294695562019158506369532946020643158269887523875974224882177880016096115600971854049018578259540049376276143245870032072832986171545481882842918363132321332197081183746460171927046134956905838313432068509461515820883597205369730517961846611202373233093694762715954930335934686314170481606873947592364685410283754797887449056023533604817807362740191941553222936375580876359634434715922670652699809239141626751351545833533644162844090310000476928380527918299478119326815101657215431066922770143150430287123668298742052023931528369961398911084928795323474451177941448167572777805453765735683499225690267550432822643373743493241065347644913151953670123457077789875219019043359929217814147756056579803280151238898522547699824293289630958177727488512656761941702740789757118956377877597849172680288969087905877131703687235408626867715010712643745989797916233076802406530162983315636504815540019290435526894944445616442168521732055249084121978546812390032235185873767193481233688644712650306084690866129582648685840111426269596933955623358252603028922202554016176276128856952769684885546400146536000842001883466281600361594235993032586976936646097630483562146306890712754060240133919789225297570745556110279224394364488876723447705580749367057959535036967348500878300693725187395530945690143729603029148409865492435552742241634009583654290103394736962242570493493701964498413861659249377322558891869265299863856126938275073011583811629690128854735705656868155041323493216150150943453303857298955358534094471861905072861478778214831691360386536551183896604999870560685738457526856912255138802354086806933381188187427876336084109987812640364978788273436730048654795595690161014898785943695949784870316328033380371215901871153833797845715518135489632798276226053133139372948825851088030833217722393436919175513094140111695700855172906833730998834038044327766100262146123641464186630247123750902207398814081385535532166567411019474360822000501948534872487498151251804825320737295766979344493960336721076833626554453338860789918845467002077996218551218302203192553265561036208134771174764717946650497337850888974286945681360838608629353401982539186380721415402573581727056917082922734376365409634591171449583533576555116392283210252190494680695190061396329131061947418875387672971077087814946468166465699588952090284595231897916105450195818716712688743893317864386263228943517313490888148394369294236954402982032451281048329494973341382190811639243358153802595021425387498505134757739990398237695686174648085704486306682602085283866963712099673978464665026632621398421911288532223277507058951558148468015321142645290693192584217615917357114566390321886559802338608869213294877102266765825557738109285833646244621946754169211149514041487525455506471780681229543215523673979955483306062833693722436577119250862546045999733832844325351952221816560577350820456922713923373093421617717801587120924115840134744452833676590370628710978697318269647644711424270747405441307841495506591359986018458434106223410978568382668395999494596635690580758800372193393989976798203461380705829172809650556241592647686493016185952923094668024514331949370375615901905766324922531140840938297950100252475166177747834571826936035910342981654855572853114755618312339754395875758083924728213746887341599703817737534750663860276218699073525299711517602604039449465584247853295646952434472580043890984743307440923662232632254871324756939240937158692800927422017053545912378737190898508054810197782107206553050296945643937551404361719777554088171873696291156707852084121281443867192601064202930928757032944044070244943405537848061874160032401923182601369021302808505220409144085243196948086012700299571713041592028909279995840755193297379101451898377959373911913377426119754624342535231979586182723510481821926368721338682179844074617440086501096424420834799464105907287361344811955123047279121911061655803904580540777539050053653040187324211462140002367190244007385293637335424349695706924076143931269566638452895813414064197805186675758112314710234455012717486958608896471107186066655935653533527296232954570329945449659941496905355070302448205465791151021548588226386018969897615814010192087181702062062178474845471226868116462852955766197730502567977620444326625137533177440338398471542174212301334842030345894613767354272636313280253383543198169355716075230007858270660117214594098789752594095076137805463238537078868984077965948448337229935461059704413238272525734247452630722003327130549701973082905755358942347506297775747720021449126485990237310303306142326209170916512721926420062177887648048314209302487541656513377487441159829658657926959483950825790362838258673056449860098710717181171561032059322850166883742735739750962556114183710881704031668394088862091434447606091835825199349094973168293107390493741894402111921672748170490290204981350225693430109371140813301404099588585235831965535789621419946834222550274191679448004798131182183174333581134038600256035454225789970442487261345797740911077298771175952977761417188655479459485591646566917226584319678407745067252993407720220307340666879792530318376207018391736450414668355606724081213201802268807603527556994399525190690408541673960657178367223920575048557882403678479282891205202496714314662769999813384156922368380768144216487222153546077434167910062058762070590855708263283011488586387696122721152656738358190368446094238222741010962281382149303241082867499290580535264775496300728506196582415802865823436738809261483050967661778890854268416691127747916467662829936245661336749894356378348235550414212469541556951103845968971471202408597226179010589437906679158773650284225160966986049750958232199996418860816392456282982665586976998689156744944519716672648398236503060995016897153776254142774175931249062411764631954687835695771940542583155388995012870342469655422735823161827910827297576515877450217978213234942350524906663906014088942727214038008238399084764657168852755723239148845759638109257186343381870153225713998776523272879565049011133996627749049012523513469350708761091146443349502596878228513821938426600989313917173219812066415615239573254246029998405229376039576767416089136807742179545078420377664334992831649970873374890317595463716624183004274530971327508067196101948698338013529682924678752221189389399132793468923924796392778838129494434009348207023021325747708136775211534671086976878375976774674017595244802591064696927278843730907988760141060352813547699474615377947509280319393708498486422067669154215761584738356473720722327186121226351127409763580563324071902851676374368959571816417147637324400791097389495079702399052298871532195076304419345928150517600382113309933908021068933690707438598052615838983756306050827552386065936009119749090848183261480924221116174130872685206549307452552127458566119846959975374328002045218717821389307889044204194624075657610999737981748024089488060829167036902905808267900722742809546860828922582021250764780756584311477133643461368785905428190644753442345852954371145815020102784558088179343758019276205783733546102174110154102805829720334484649353776902034552228800424488212383994878092194776129699432451312906460787614196355665683711663548599951845443733473028143158274621870203587420250356264737555735544398478196070395767451956495641431667588509558086443927589477124622070849732424225850736058810958932689979202373668533989119258663238125481882136856757170022622007583780406911129881172084904815561230845888872538944174204822892016551961855621130994513701635114812995801551307210106145870576626367790004761156141097166999543155341262285067769163857350816073543925276188076474974127234067387089860471274470094375898025074042567453219564399103379658675908706850268725716082271136861433311175773762705728446514262118730222703791833630847581194379916668423156160286425510885742588437696279680821840499887220918457264824722691431522058942329251832090517691034397794205607249895659468551177740058127146881979136080854772306543289073217510561730456148592889586281566665268373742326244045634774990849202165584688349293336849485594247728242894692644958452204614611411258172618691389202955724082070093807743601294279772455834720307989849604837995497738849891656105711885904349291708063224094267350111699853798743236188017349829631966452586745048061202964469902022452042245420542658625254621282943997336024014752593318175186566100117438638371234925455030843884508104063172165769241017798686194714288020781916220528060917348482372596393344960205873778769989536699700597341810354692996121642372502238996534717235915787728453181888834401982195566940304475285905338919778941939393849274329821185877922465875067880922308916641961791254004498853811770591591958859912211944751468045474961186449727595906247843768061416436958576324325304304749662286990497337278653668214871614662747219638410627593663293405211931758623344972110084332508271472475112774089601504578560109608182837771640147104146024426139631180773713715254473085089521251329635566356759328504574588731040294683133101316917404365460130451478015779463973234452536714738869250577470776088202839973558760235382525226785795330795236243615744168884067609894081685934107645749797946472243376038768803184643797802052506006660681642976734416656389437517256941265631807271724730915286180892424692744774076617746900623634202416355968611309759742041780899288322745807916553329427733765795581389332668337829259705603415357125706788745948151249671353015539072922615682162179029198080156222224969857015273509930397569321520911421721147821716321946552627225763948665246685826457248929435493655556677924630019677032838038020990164658904830846204065849541254713974115947442424326899203321142389042948441372816244730133015475328352315766127879999960924632006433440904837773122207544751213665760001391776290700528999652719176152907748763491303885095088957192207210817823241923226381943941314061539868380014117447557019635972078605404500195773430342458357427195860054566138903053959532502112302187750153135253425644277294217820791036301163470870610092390180690749866715891480931470940874667967193081863828419263086227374467581188124248055834070859987254156694071148692563824192176791274527585466497779506025645088409859959461324826498827093246922675911168367421622512308233083146789955001103933005220477266105557913558829693807383973488891233695174086449063199909612628711894487085901412191734651513265021284676330959600613087328353864300612581453474161664135027920275318484086996107848865470724106536055162514982752855310995458731186403755767824230086926228104321815119021343498451974852589696203109022556277478282601441541612482006039953592437030672335919538191633978833838495613972403365519695051609173111244849641017149540310015309815062552041308926080541248230225026012939086835702600238087921363435730854319571337011812157813979455717074100919130245520386466609596354822223076948774116376848393594552067369675501326746333501306712286713260246270653581967469661091368502232655668132051794723029479392188223230350533235232103496726140396754251815246315683009915884334901929029108915396413602015824987966193804365362080891487003238361724950694607872571781601108564647183230432010583482297757478409855657334138358608469940173421835256785971425673564794762843263186232511387504952056617208782146393091094532691023146672957883463528387915269963678583410026363987649846174173541744183140473744999360547105856444721191646871828882858667531713019959342061365647363997059302265683417273460463672270512289767411051417428284640069214367959904292360562224421275735661787984004005704963643577009663577229758808896388493041333535981908148134679031287390489259141153958094324140028782711562998164508401811437288212141566253755233079086408553997041083066409347977726363619555078238250544408984114048055260881052695681113365835505989301451101008862967777041663208579091163261049771133732179045154087858576182916357538929426901291299022588044718577071026222775155654690348706181641128419814934225954141866094777458278648781411079713443669933360792709623366365860425859728520351821009303196388759481116045042301389862899834685119262847282598852332668251491026841230541982854082348634032350383322373017433582764525169043480715017368870739543923345338630025474147807686600531993297808977169304411083978543260536507354380060082396074006277005545970793953569041948718467277052566631332428889943893652351571567704785305171145387011815529229514587316134814686733791448367340067212925724728621134859527686917901538692162172945816394773763105068801785734179954494516670321663646943343821962499240178348746748884771635826090473192466237061358706985972091696163831637533993211460259923569894861392949485954630293594414032995151663291661176767396680491021788621756862971530910872932258988875472825780143607492350436914570657137032142444648207589710896583750175124978536371239433985289441810828090100144909909169996391651270108191591938183668068276377390036091745550863926891842993537679929746649201270521056984224248396386502000847658941302173463151580929196167034441960221258110193998169667888212884445805176819565832638817029820159441320076451318089746203212387262846471848406773491372177023243096904453582068649127181240711526544417609547939076251118937635444196870933406960435451137057482819957446045677793410636125525880077874951206143321532719440680873752132994967607208127566979216011024373116302519537356426752453919558679687553543577665478411092101181234806181531101336531071855674830257617298997306832974916994187212449364253655393830750371861017745789054994539743588180699909103886263006404707037419105065711875863400456370606869653190064928471514170981156575074255798102166365511127524229723009301066339959904824826028399918735053207775485704982268720789922826006830776243353568899628751142674690935294791254941086512247480304388133518282142953416026756391611361242744903198462043211085854388093071670305972815427586979802535782797887419075325970805381835752473478100892105835121778793023017901322044340618343214965697148041926181083785083289268902972522429848316999062751419542022326937540554314680903505191269814652552600761329388445686607218794641267701855181507673519853189545490263001699580971447722449263418051543817035064598735153631849458145938552357812833083161355800119667723030133318943599522032233711802326705642096792898524940111270760133409587348607732000309916836983512147672474140735633988635735124217072765085940150440929348628755349248406416332389448531787443991929901973507168227329796815373261453218012530992573666366251513584626922274976912148260116039028867315576811479741255471174915420405973903440082826623675689878040645187223063237660828724662147119497963122685806947721209767235913766439611996889172793618586938989350723878172389918732002682288984298090049606701276351955009810829402283084357070337641670698072580323629145910558943554004943005618496515208194527282844747862677605292942721959850966115719967770218407632778199659466426706878835671120623542712495911741020660082095053521576694570269479886062418261376842822903860303269447165449162932572245316491573975813609473241233252340707411463896608503967884294279626041341119750483464298879522630878874317937934135999786221195387907966691771244425575706919068610584989269691857807225367987951486474809638869517451788774662054869870646406035891717547128792653243897445748618123752702762085531864577879412345259208779634861297943526171268039028515227858458302240167111479049935931318634942182485609103281801714991742475844837390113128452291209818201342696958260858672165732394370795357791066716000067288564133045599960706408367795476378140783755386933565125877323866073569911620580723589319445392488927163391199943654737146785986175524411387063837013646363360238337837188803843135629214315778518627425038301511323614064547274383068003076857994442434239933782112315694343897380017271693083796121234978778436941100127515152710528881784299417632712934850592480051792491111969267674918740591651902470634332011029596327226704438473945452349010936049467911476787371282085198675482787899307396578882430312023883378244750370706551054104054115099679935850753453442605134018243368823623226292443072861645077852381504929967103776498575885628362698003840734244916297483490916017151330235759377231784660066916851798588411518827177144281789268631784863112500850327584995033127547178394663683928716424715801614655493761346321398021723994809090408839822343121618843056189598008040784068737997563814225236453157238044615620084278036732940558235267062442396812945751241017080211603243715345819283459542161392990846168519243722768323313509924812930777529732683020248568571804757734206611371024207961896850165729676780023158489011006449467626609656991311793563783273646647681161666531457890649766773566376771234641111156594934975964487111258523789277640931524913304992940171278381555745680854490043643562077308459998960547360431762677344923564521830075789483199189456456947205875023840631172790031215258867189227478652667420154194475797292225125710682314264314696853755862666221559505947200806956056810236470928351363566697056019800289593015840549829894221420789848917039596965273321038080912259900260605618957730587531750560233329727338522899907142566385439865415553718288168157989744193906835315637990166014441749192183956172470993346387483801568666955585453286507141296177352744503184844890935549161390662795039942330308962893298791966184358280148809311002095556613342673869118333329707152321685603900464345377759453561512168095299370170570666381334979816357634747867981313383794151140502557270996111031564947943189792080387863905593119224762443476052199796920257513218770918096043644131251217355183999689091984964579961553407746346361634777032292697164925593336668484611741662379665903663510942790822477144179925536801092448702426078874968452227932585669780137872305789035648952031026068555168476561593636403873990302697149697642544029573633597035857512686432587876719336334327253411897393516980602088075430123775228455108146404605705967334221907611227151559628645576346724413756445916759669953955947043049434546174484970214179582365833315929120824110975486300233235185769339292826263794268104624812344778180896888177647475665590977004199267133145269341625139186479224081427662545794811080748618817680110175139046386871110830175996192687859459147514478123883079873972740987934232959802454745424413992976732380277596715748562204709532684127869370726862863752981660484516567128936590028794525501999490301695777868960594333045256157106984964207662940338323487275738681191209244941173927758972572282160038978508331113777431411237286522637520363182760877633810317087581748889102716566705551547308109257703323068312803220451604433010919657469381023266829874031344418129264830689411059652508165466304900474066369318548831486513897013126752224098001596596903155895310586361961189190727451977526938402784703534794380361788538220644161051832983931725619872653644576884359376836702145454252611734329283707369331267986013401845307000077034479368384398404620869461898794206051080694227475007516055408785770784966077628092148173123236573965068356616526342985443309574861224244004533639377413137052631991103291040602650800769718422317257866049398480568024575238603743211190386917482779961748179621179957696794438245833247060619758166580353778737984351317200306795968921981326172815666704289549814261562001325271890316695693830730673591909055383251516385722994396530377826346518349024802849803160272641837316237770910539332423492279646704348482051726099491966660068699674777997035808945008768214957590504940949934753954722629125234707442289997539136972551707136354758814465355124660068324223598284767990471333151273995945259618303124693519449782803379239739798783337630203765821908399828867516888659500805612955836425699657387958642271575913679148675853032958277683488482992090807434427173706924420073021076220609034782332383838836614337530960853487128024965365188662823058194954217061430916107181746686689429942827502856486052314815114415634647904201708893438604959839508034881521555444479562984779288570486178978136934601078152152513988132724047261297580426823287626126859436456871268683301855797592292355486430596810087420391291930062933186468187358808465683464720374207868182615569902528011427175008107114496717212795497245214452133414697450195596579914404087766598032154020846830555212586064114589269138585697434890103437963583084035512986446919567033878431650750151163134492632433676161691342617946138173175631872711534100195558004253323521190171704872407031447285602091477848773300462189533324980748427499107522403835978883707847656691313266373030120168701041663899374391292717218457493659983787917137945858616143897502001906156315948650645865423222466979602053008236099236122416534891392048127951633858302516815214884241723059141792349934193808919978805194211168263483476392918817870116236197342081805309076525006910950205276752531203624819392135012493931916328318391478193889442272094232944460153445268743965340017277838495972996513175843417560552953520731422258025695575321915764807077270600779178840016747254875751085634833794370991549326690349499515295531521016296231253484939327409903270556780853160244590949181999365308746139762147644725950706826580100672418119437344658183412326955192495275958370361112918547243496640031557860905804902956682370041733423497614884596467178764976341331345368186990396810584737556557188425462713324422106637980866302077611997239374038521612194101087421227203305012754451694070378171475649237988664606252838629029682813068563992289470244583531131005534310658916414708930419954104634609484932537837037974533957193327588413100336858021981562212306139604780932125186144625288463828811983614463565793265317889632212471844946145117602538446463120490836798275279453751096168824682730615764882852602622909904899387782466331831001838881617197759286831345541752805895452186108164767430573423210300240606524902402333758800957299855735525695760831859569342927538177588910883786277497712961475975677781561890478717845530058179629029639198212867835589611183675343499198321734072049730245619996465635096771162079924963903901792706899546320126892425041111907609683775631422616493191400093714696723491741238854852866753898651763561673268537930207711382122077689426610006362428632517673787060314495938660469488779245222507252019166629893903826656264948774285823959543966919363704246406360199383140289254754751039366613028612754381272744577331654459010368521325681516957235503167144706036654757434856632158249007795756222734627501517395768368197782040634538218779422428079483008690531706181605682241473725654086155454273761030974847262962667254067525120762513577626722703476299752700419410611838133470394203142693677654018766536955162359084009506972229964658045388364884188296164442737109955668530222891771708094994035005360872617674489557203093501382076358929616502927087762794084315732605319298188424751217210071870459261439310429903742005380748000336135724157427571642693425365239626902543746343202784193656560606178147309364678096397658515087323310315970324122206828565355625974606788789001159843562927557905604868741696645210216047854729451637570014898650083710077744541885055417378914677051417885055100691712665213217762053718028433107378312225149891748629552169071582387150161813883772870016504259564957380782829526148111614049148631984391830620846421670012464864749942915542235152165871279887689175148229711093162919497443705425126749345840877083808511145829583550689640145578418645401585272762988861653093654786944936204767686353432156001198698255200413412063843753133998673533944995648692032068074552212103447922681677528764961070262958648876082252994747659966712048447783643340373690729078414279827054375043423701668418139177550465361360220741620976228911146686081507632588187980860667300010387228742859360778658384373271095492688661623276511067336348978102481922050274581577167920848678208686430823107118941467360474472977934741327570668530605311254758211669934910404213106828996264960154962635401770401555964610720171339623174182655449629867853031383775719610078650113673858847509066288207426460068647728767191129511830711662860836364703792952371889952547054583954442582794848773388702399885170475286253967592226576020490057076885155523091479371866363943829227330891748234532552827631783882525259668963553887253862690789822258126840665216521694885066324360325332485641662565547972761106945170855491965353217781003742237364334829132835527201267197665040371674956956624712209810267020645993878007069411275701479539306427529705695382342736190337444553453552643270842601196798660298004068983747636648463167649123670003960102773211131614496503181163329661626770348504348258708285678114818386974816819618309868431330808833113954788916771007205461906702401380318730790207115057151931317071910918461591124167794378168682603139578961297926000868883116072917603775833829664509214258831397061637715496691954983927847372864135007280220179272410660216773834043032561391732549238880388742200722127243868775502263382605597234173959042617731459728039251307185097495992754435564487380332733848429569367474552704956813976129109657558886704342228957108125562892030092307092187008098164167780592096392812400934215538028489965870646600734425377096274004294618149869906315100087735449808602270801081250064802049678188143848376965592637654656174904129983055316655856250106208143214487607889026677629805417647494385534494332229130614279308056697938957603365392735851433804013321800024399298814327002633120388888365179115883152317542876467596266710138944615516648772266716665325163641209898580306592631595447235924256414705777798659675295507947083023180232935869641603039982855702787475420518360429918693255278546126524449819676494123215230043922103913033894954079487374017096221166547772272387444545342163808859661868460457501853490384780050627090078025896940140213297849395267102430859184273857901654514362295874364726108502822573520389777603691068151865859484231110375944665003946305942389853198871790322928218148801998145041685841651783766137474199222823875284117498803505232547959814920241670079285138195638742285881075959604013408096789279228013336557027742906462975366738268074529660555664593063788275380207796546266622397054612852910911362464755010094394399118674289891209675597637699361283929793789651736843364098037293022651785925579341945238140849430174344938626669022392456389756680962770155316913265148443472612874903058870244973754390021028721597505274683726157308125552858869463873295892250710491645866627350638500138416154842835544477968699763375370742938510409844134875436793300753962326567121045558884496966988984448671818679845564641711053055124686291329384460708001143853745472647488424584965616027753472639129295561983384709781416978543693535450549013579155705309491020931312659409157570734926809511467786468621258312325241874569785091614329987616851755826474258076618984842457711948923401282239339431308611186034846727177001085747584105248841370267222706831558342982160055615017705766543564230210114744550921025284750771645883549335559361642367441547518374609164361939288146695411407936974640333851149680928247602454661580344132252603348928004192971369387352915679502960051712898314202607336500707814740236820779680168501918614437645573701254725349320593916358410707978943893461441928769054242431058841998777487282848537937918903790147774828583743697175932502350239707542705425717103706298092225231712473855128423657510143549539076452842139391145382922687256798384266874610563712679382428465055832886877445181954294824059392216140513749452856314691379994351551228307437734883881651446195347665558254513954894670562854701991567987983820836893615419852759992063479117889114180861349703740580789707585802258797233749093381678807996174419003718199067923600985143624478026552083262167813743184979469120709834100282448106690740248459600048595572152095042477492798115051867369483546411463408978859471514405009044267657045300040825584284204355927564046933267982075778284827620463598212851130436667120715294999842677880584826935947338322754670183547112014694051173965378168002291723646853582729474365899433866293933972491723594154645722419923234958485339153656068897502958874262765047807350792763295643087111218642533539733560274264608572044143022864202261681119441821402898979145567531927841976694915301589514179465789062041888151700603895206764789921624182008520496366053928456478586823419687462355455281066276185149694000978871433104540159777332352067705909624917048220631786579179182664884120544618009522043219950594538768687895480862010910271564459907996585727540121942289618660165071040653461749197437030558974293433963104516159333825011870095665982954286690647777641537172817543096979768099109261422615755200544342495952929112473926895372390809254178064359900843278144223931406550374535174765524796833565339680966045218290391827419406645093834813066747614637768093490634503150582079361586375776681153303037290936489191628501640332143560455631924587677910083260978169937151588157274302604910527991781952028562915428680339838133150723520759218697465977009110456001165109287056762917286412137260144913195289405023067822672908495914633641717877426653209072175276377937716987560397957765588416532123659189771004215382471627458869157463292248089653747192063959567946370766043985322102078581668856968844380862251644300863277786458050856272151064795407722379562566958441532626177460349733046239601031505695364332704598453234832513786860658243244854087321893408382521192630174717783710225437316222789237762532866729797380892838034509189376564447484396377896665560825894768533476264917208315106086164742597548781914732459853510679826655409865991616025003909069201801711921605657237771674389439591479187975807327905479627731115566307629886483415664331424030900757065792197765996910109845981370877339035300417204826136662466775903712408166095632891899223193957001122875122616967784275154004821879670463623716887401729422257135120701042209459471587645111008848923213731061752768342881221204691924362558682707050253056319761655085084129532545322570116787276196896101447350349082007328774320079874710792753004753523403857603607706316262791878972423701567664926100870317590530795355080313027081842165517871071005150019695685991623548655556902487226090689424995617828318199025966307217986095336547681175596729920599393079551146882478748057329788132180533134156549118566107576418665209252373287446808923976139997725823066633747466636187870520632667610088633001480229816606293677154147160847280374584458571891904802681506502976750684396617250952876199833397564737926140622308381625549018853974716373339258896045411740818955453433558211763589955324988911032870913398903424460575446316860847286252599006861885459445635816354585890484586008974421737108823166549289540355072820452607441398471751712947134096471283765473271481839800413486207562872630528960798329598540923049728193080757340187933728013723160245954088609256134136578507762393226111478216999031138489102044339661867454782768470730456254655118090021197359906982467842382346346678250493951489096794096184960526525128303638262084141015725867206317456518034725703176799799820629566644624748099719236732934067470483302967241561981504157899840557610798008655110832025469080718724795184859668417158862424954683642515674854204783701009521396064641925912590166742556081957750472760489207218643648495782189462485886358545622177675046716271991055426557181043279032303510743337859907364052215024022115431657183442208565876884630491645256665549742871294906133977816843641316599939402826183648167884125976953816555722663595462129541129025117954412934707139660175806567386997556339912030289061666161370145600589724336662949788027800577447881873704891055262601925808241932699834811270657414383891289050994651338352213565402715340883571208083761111421349259803436913074357695076590072773844566805545480601448292259171859145350448994749340628355742761527501464091516542251109822094687426215501018777213431530474303029437205614168579406952061907349498512767029778348325094660186261417252786374927542907550649381779521620063933029803540434798614659017951799681941410112607133770161936524242707808319305076976198837608839954935835927703460767247569937104715412347960034318104980249172356819744968788558374159150223507494656009648201540289482775430162981220817845136750767455705302474249631520059557785514590761696127440656952872300303776090505688837118125484765101926708445847585757186813461201043765649735413227228529460895990082025348153466318950318638923787843174526502263441092239726646759378341746145650594443528240167660241021430067303240082670695556986307911987534205935547335547940757448420178387090075203717087684568148129718009120250517444579518257287783566728781318335383016210590747853717946622361420954755142664544324729653349713852389686198292152069362558419437836701533924206070167095677564943676139583031029722884745977754665808307696413821973437654657014968641712438343244887935755753315441892020008951829834510120841850749178185601997262042508547181260084184593324955336694799443025306618887816306334386381715239954477295026019455395547992010126778421366601093307655258857515441639074960575752271093703601417369812568342296836379643738780922027934802959793602124353960393207825010304564504613321663518209551430974317995940359464048482223010293691599916508608924209603141678003139245987336323327639405523634373312793607511501153821720511129329677175247993185361396757148100617121482329001863746583456283739842490021867974014584905232543997097599567692072602695906986362268315444328207760863497529943059922213798808511672017585371537467235175719176328663028890492605888574882312504779773502415581011573121383699419243293018529238036910382841721495658294193883438264270067681425487002763718070516857368122406167005010416429183826976629380365878288038323332631370052073478024844298784667153630762073789315949768632470684103693265690291366270240638038806971545747718299564444697306499329346261130027513796659170692789444299334240924008782192909308404136901704032941186075086150166567397984732540594983791133483277906612669669453047197702671826383874585638635768955461782418443567203900135935668331387024536622113498342944013979749745244025318013864893649409351991545451362897658600122268771179962918023348001902106168667472490554722094691722860325826941010574423306236359240944175334817264078965284059318163474220266167985126279220425587492252808394646265711447836228815493591528144564483355176091015518933996377627143379646393610911106645629835340832362102672050439354082384683980296839024222618519682181743959848642238356262006021170739815031524818435891894732904694114269718097386480553672358655996012138087354184996901680840284746898680337147250053316056365717278558379460902291226518025500815969146570445267719716564857133851927230463339797213156126425007505357011541966905013231126551395504082628631428527813887261635045686504644825834889091736075632597758080565043692812386522589687007261903770150974591823367447032320755421611399076231781375675571019464049983404219871325605894037843131336300528843670374746856395456156821101374774718841621035523289759459521538442478230803323113508585912710713857560644846375786285691788984385660401821707932590516048875490790445898884724490747462947604432890131001850270385703460836836626018519369276232351918654213378105523415440189916607222100600602412946704921826677967744833194515792209008325482784298834640479304915054236978559525416195197390678629963400440033437114300623619690609434127981592836203778412613767963510515920734653388013964101484378229364043251832324842327805045410760464145155733983644631851735583562154492038370681792982768780420837027876573443658647096403934217574926423412396653433383162731675125884782258338625872069152527349419052033638545332557155035187098478782922994657578639509141257727066580607152833214454075817502506007731207511279989786954865356925501933239525878879902917265230334657863208155262437694078619440689976203901575875707625854491496852175674559701722378891393810935908272779231963226966103643514418885921880523213817025198074887599381884285436971270550858840540769808689991215402218551271845988686562954655288942755862301096816249430115798709597285530602615024471054069730217646365726435839345519882998068122236778109972784498958723020045232575317684148730493796049657784180330751247460162776874111069917783740948583693516558471249896164673848294582013094747165171396706520196387210618725538821024448655284430721527948405000388712404629483008120288107776849886572375065230498476704946897468731019205219041833927210338806929035309017645396325506819234439335473567417046916140560657361213774974848713499280992953211139023659335689328976471255673033701614353761693594662606001894898315614352465298867464892198743782334189721731282602379289957939495648645175518989332886465863153442899530894317650336550099425111771422742354994768199256778160591203793256947392500607131725421006559215504671662841064895513989329375201658193333892900756066183407691257963101556967608932629002797788663367354616707449941659367805748550428246933342924573281707779596711105709254175200236745842548613152733990981297712186840665271351616857917270139266679320898619709768753245955667726469180131123307886512025579389718699880381345191915427553955920556302002905369098914383434307933084309981063438153222013882202196171596253978204780590791708960615974994604980233171819347698811477676751319412492127301085619725146493441405699387572328245359612779534514761979997793461374240225204072137624877747458078654561332562969796464798824204217252215270265742592825247320636506039747933506040436446715979934071714358998888439781833890163250466746402231655939510471725553342875665859574934046150541817254871099241146350016648457198540562130914599323229229642970819108870940751888035923975610159469909296291294000817550732058512034132256564118427104479686665181774880477011015990616025465488254693558680295119015979819110013251930535186457554212611039345139280622031725766051019537351806406494810498357131764287871154326107404554906041609892801356882363450381426151920823738969401071372558445225185269781184980969833082781340227641525774187534220135287059217958850918433327229624635935100913290733633932429016499825692409338820851358382075091919154977770405628126723602008461662573759845642056854681428545569654982264924357002883613030056799425237910903766631375456539886734834100071880684685369610468621159938528091228398090859268178133126214613727459171945234622470306753148251557806212852225357083609181573669846273487122157247684196817284279196149635512178614645501408793650264398356781743971893435453557521564752109231694184151353895353857319951655817689244674757424562517745823776667521569326179830164942301247931634147317044305641539782260354650360628165130838615150021559720455243134394564521643662282572002981593132110003998898329441355577890486408418001849317199856248026054612901151076491662017250317668463374637240249486560717235168909302959967198130291649762955742081036611090680545445053365716619449629573580973622007189152125815614707676991418548838608071072294947592001722986501583117432628494125949718233272118279773212407049341535349696386613731952984423318658732267431049404331290274179161587842097781805485153021196583025609191304595912022537532615877603597541244613826352859084746654861110100836059841347347612664856705631287834610989254915861227290750600517767865330679397810972920081813303105418094047995798763601735952873268580882049986665304937910317359700793453193749096829281263779327712382980396504997480488279335828291304030680002391136626937408907604851170729656344879293593213017045016056461507159601949489070600917496003852812163756557793255836773324459047271148090554523210505234884958719132267489813868964746022774778427777673128829614628448559049163544758720729945051329834476212327395272035248743153035713487482884787400600082072372661273363584383534639666055984409985226823136009209771475592434385365242934713148706326223313614608750833166386977630685195602407062008652087938176289643065895206597889723017582877975057478069293934146521886690047145777716567541825119697218860855873397209859554346704232861188325120959568597512935032734777751726505474782378954167165090466025169203286777032931822784039805147297197251534604229069161910157572600766860074360259802633326876081069584849259878378413389601583976002640082326335210886336204409596087111686544851306925510297535511434375826718748366999941945678152544012348821837135082176173978945827453007867364768305646443672640054602448053511936558574177981168323052193463716019629733301035703365499030289102885005721912842265407771294504132807103420310969475642330807760042584405106015830974677194826435825890967336253649635882980800657559692916990980574307290527283579131635827225112689769284532516968194034647063751431434214032489461239887584547702997662705324925649929709030579759237408940669415857104312390713866792468415484126367219791639809764136492957272879711815598083200491580194684825539184770409406692815638851221242536573109226465448907426648188360575691571134639683105449486462143379268279364802353730019474588139980201512198461696333760765529522551259017819675349301376141878383898452329404187412548056011181917181129837210787129959364046310041147388765947683237409798844934896721783667696269089463456621606943496484876774074228058072048041183773012417184741109725536226989296368404628957709607885691362270847091482493858373746546091102348524046813564572868111895509872394700959529689503860742598997292102763494193664049197876076935587310183770556157666258851474496650960227610010461586848924526486779679600250902682200908558661063370363605471683212718226235193519169649243591913601568333883702198563525337206915896192092091021578127070065437693521094085808858506473953640733874287786509169871633279831232842735409593157366079468599000565248214269049267921832295229808449668851877897596456776686314825554849787962217170228039222992658050397441563222569783883187035869487879949629346149381115175072632068679590214951869671615182702887647037572830931802339544614177747280123693989576851066362315794721800556760222973384039740194322522971683264932282627999511589501638792616627850899028511925464973944324717022139278130730906805854653506086999087804231452115859606517230094558432679608135727802857313173024519622151573709351125854556680181276381681363663198829960393452425197193941597703052620798371016460381260164249694984103114334005417581727294759163916582806866935032048995953460063548975392984633543464859517481682178205017511339583456109008957607901324240451664592233276339299329969222076875855606292544204854782475806032035166661701678641611455729076996015115796138522967514501743941268532821973109378247476139854426261721606495681529623156101992068656541616003561486285223817441474379643516715984595023405049410684800608105541236812620970102559838317078247780853843586200203140718013593435426380552066082180539083742048433102288641105869708961468310970094966752755426177789631675374444057832302204000650013676741010197592834803686866952530089327915057401699761552172018656604965367373613053536503965163771967690650430037484485480928956399360415387284426906824042512866855913901260009049569898146419282272849605455016515495952497443149462401450025423448166906309675415857103540147341258058574738348069560470988719986416427024434803490564226794188385146663489811618141576057644321355345809750429716605762853350782109331889621203622422546896721633896396785230286185697632523991064882446525864625404922675408509550315989245258560827865580820436456387143493366996503684567322172537217561071889582037253147256015154166037578010682860638309922120683903443538685928458934630999332968128389636998981830635234711580847818476605518844244132091354680685135366089371828018100969962416784614248091971206369751179025590550847767700386053198848323475052369762944063930307258861779445321441170048849280420099771910214064079966584270985598462831078103422227301792202069305111110008790761257027818756241077623301425212504736728876142671705580258588843829391929041421219980127196101759930781065190951746201974485533141542636793943561281326726074300358631666911248659918111123334602604716037887285867862574623561959296124814809257675430264356941708231018552991339181008909417603885061622126423916654815978150317505259743135309978192814403865268276944048155549669380382859118008994831027358259331329313363549610183802021932854845754162932416247426781536633623084137694932867003213743491742747863908987890155366046058053502705261917701837182526154520442464900633613190585158234405039160533100900153903372573214761047873786637575702626504123664484633735085760659599108328235346293128565233880953692722900877059495400593304699464029776650487249698975903246140653511677343802162945399988362914120157976454157748389074302269094390387115940575151602395812983408671867692378860226012275407261052949795355897509904222450813011145885072105016462364625382853045717281404679943028787283302370653624003552857771741476138312873659526964345313354730765326214097714299358518952310834236979234157896552686676532035169219761140353873975187785483266992493074200759183356354678914445405021217055922228137066464003963462769273372031645789538311858890589245225549507013006245254183575477835222643234577259007892375473916978911212152900796224906086798114106078806531771852153642937919032177632172267246179156696263309789304375444714888969328450478262583631084988175578189514471874281601461322099288320708222758691324524304829955700855674977714966423809656704584924360296180915695997536184144603306057583924774545362588893364707195029677873938102016341592542687492145284340233697316446498547173397846839756753106415625466091771376214385457738413911921577000209790237145263882245994152839152001854536240561105916244414043759698726530166096364365378615382618514129768846827085687207727089945953059219232799340822311452623037977962317392762598417484899757681934113909492447367436491916542365863892452076065531172860579099047294163716917839105673225365660551883410327883608560760948642651099382899421530067800971288157018441640823676256148962927898229743493671156256010984456041741621184336246323502365861685691023801796963638689187745029257812879984637001159836494039100862840883853495404596972081458056972349121572659292988135165420983391995226325368963633519480839838725950099890357244155275033855751571467458197581646826205844268829865889474372823023382050068567070966710927870213114764624936653703406967129508717080947426167351926670993275368290309330519061048539888151976592959114700619094758338490997283043835723033296560022371310714501118207790204538799787035277398801251210618839929642755998934768737171543545228202605159272302774225816564291462238410547287606149387666631204747583597718076322686238478034076636995165752690817527425414347290084425446031491081446402709691494573635820529562332047185346236008412507763272274216534342494030922261991430902806585234029102844017167838067575005608716398547911768766609198078738080916170795481096388671239826598188504286069277666016762667941113013830765948844189838041468368804273866806764165687461823143197187024574940965536228314770145877633863889080144414286696108823879362812368468602019957022700516775797986433615836837800534437913929933498024182461853634382643859235171789600000915701141032313566151493909382251050247866833899646951920736952448018699249228331710572872535269792576843618772085802324899693810392499541178691038330778424436491395911818878667542008418283005130142782856825067071649095553425079966867959143084008608459180141312608823050807084985557024667881105234963232499923121192284026804485672480211528775345084435932786559167088515249560569042431212258271490867478916325043346497381949278238108282534852869978430175386889479521389997712688715724592371925419931424560784861709257877284079727675852254110268885951777927845215889790693732618209515898678515599426926680729283301827469982810636421250690593661410835354813969196512909084669353569142352671951448532249419983367665700145287758471327304516775476686095504943861400379395893485745331966797567867878189046470570251423590623516404745547907115823406891419888237888166021061060671019319386237041135788665060822489384462634781309106297761606327522282732542938329586580064718179198849669433872951556051143104511759778690921363765063984813979508168805263854815116084268675706057677430843560990231583458195507130677091253089048070824956241400391863331085187505854455176004214201286836597543366246004440463023002600235554296882966368527468220876950754193956575725838334591086291953612292440540164803894518938394762791559469925049772339148523936912493667948898902636213864140245545568207064944775419768102869252905935603726404396135680054099537393666651368633228237279547257879533530046178770756216934683982533690909149390551787228157478245005335141679130864149100656039428375718801649871125344520044718398375045043789836187799878627158533703311356830235889431102463852713605001179753174718049390290025235129728000051757353825683769590717135212839090927391399701122396097887682830240746127959362868005617352898088608443891897328763579475467483441075261260032131995099099373563946154618639251073702654980938646022987280462144898399516631917865835040821960062494308895458986826743948594982849954261264181712414572908566060834348882903280280357479168823649726848797902671690031429267126387257206777505751539149415916506099892908608355979785358980363093111197859123912498870338727361271062819198074234032241321392745395600307790115780130415106106984974631396002118002202685259823248385534540879028700646706187489424750270873195674100927828893188211865145550247857082688131407694654984425456471397299795017838042796373970715389627054115166113132295979342880136039076285974312915533663989907180828091402458018145077965353339471411992395787908791974839902250520681206662550823574716753811934726223032168058628120427626872361401779441002450372506556804974807550622486658435737594662441491017224721864822119383985499537944091422882610812044927686909362701948853131572058877111121440865852969356779501560493924619995029620058597807252460131112286468624855185377373189066826179457462751602997000907694263852861931734276258740638288999665393796187838669324936286190045560274772398901608763051510850813880226296568294860439712351082285563410621871641650740401659628787025604302002496119077288420523260517312166600976220326807608913358890055318759534065864419486516368595386107621334061851734095625555888854464385852084213505862475446480338759222555353926516776084097406589420351333048176199848194667619247851401560139730971434652143435648780937198593346677134231552838280883174150846124570936913651380621469252348042038303835398539280554851343661507468828120574390450040188132964893194873750462565049912600760642268684320330484982488589320554551023983246874056897841251416254530430771143091907302960519173363334451744915089473601383958547284271199495852150831281533173765161471452215487668765931126234204943680827605839246445251677502353230175056633698545808583628987467340710164873117675351837088818323875277208185872177802365378593486329776848887167673720226549823293984995816072638707256417656142922907095732827627082856018088112355076228529911078097963725198825158956776012375072667868621710392983876437545228680689504097331665505764586506845467181011289977780432617068181213582227458002920647777925250087187339131298071562066753503577880321105238527688500004490298386550030332229488939547819565024228224307894494040250087266653458793339891856451997685677911767348451291782410732881309162130794114569808781129184234970134458905147403857613659701398563050976723388800185404945098368394027516802020338966852403843051735893926157991851474215869767463992202762268929293879641479369773145853796213122254683819069437590025172268371205808846750601803477134715350898549471978867728441384723129404652559103224184532975092098014362171840074747926505525119774223855402932433404032091046311478929540773030521894078382941472407989395730279358429466373327953605543290937059911616103721467269463084099497498984579847181109178649825555909248437267503268949556600076344296227190089811805415993874632561944870104006277365771987803664677516764671909623688671780050992463393523518847298798767685581336012730799276724107984772012286775592306542280586008841838277484718596790182204054903063435813616447097790251605444436584825204122974728972461157117483943281129680925987227965853813938894142921125166518970762656206304369442219023132286627662599147835387076648494431531661423118654944269650378097079835488633474539613748244432997651850285333587178278991175460259054874605771890588365088248864150655584565143601021651699828045418511009214252473744764251832897810311539227559875201391824978108896837810267016137394926862871593701212537675717444965171884174527841881900411209077479388526031674253361146088337827601775698687935322638606830773867590848559615028019398793145483472971358153553953411123682100482496691347009978039915050571262348752764998592821526147932135232232890970684715645317903827344835642903396973236762928481745612624404053161421343440087967831962504928205640760674588283964355191518420241883564281548267853756102509221285832641121426179957775742819398788151696410627764727468329821962223956743241144739886682926787027888019402236311595000098870927890053862557130626240059922777812727727626780457789915029159186390307102013907016491246059373118614969330073062662493728131093211486327663203979186226191510962876801650476240541006863041283089435677929185141139181634319444385895860305770925805551876788717712043849118998692581110021308737081624860117962018296967423727840751669563581319747559685216773412883545372258968930642786829114778996905581067293811115391879598955774918705137522152985238866891617367999214744860493552411594908928401685051231037992253266604183502756239216208401476270445193836895065400992468336669381952161097083214388761954169103114257779628173923749543584633606203873262228227186819939802905863423050039395979936796077235356404883096473319982794205334567803047494630888342261900464383928130773334147541776082697023242937890211417443762992952297163358165235442593621721951899976746021988962435457880969124833203052521343067985185656075851856004306703929515928466338374746809329573433874563738303592350031445800183594363743537933666234996869136195310164092976812985059683829750229046137195221708310566396820858114555594633137390990753838194109255216104701956313358242278858575592613199799119280333714527992158543434425690655960594027554169884812959659909701330960837125573333076883561746734749670480561406139672536899468416079543470814311288941548739021200428172167469799619245719528766226377259452301315467993934444204014680766888502628789119130624095741247724665641603705956111408857831948333493698298854467877890964167322525849979413771276970653702632614457280745734410505811954156859989294689654785997155692328240930680117096989867976567465377261923497302119681225400645612890262561561072014251236700048659826544731862879207936988385392149377628357863787867422705237402634555317714374732460581900606164749140213777258235122659594182742580363700107129026356331893005311042084981024260339558185376085421736771464901325111518051495325259954205435079780021127281280248055166804055506327862093396532481757987450328263069533035305043918488899860721341695289615144509524067622089096806528977958887131797557997710491131874066506847041286743801699381342083706586610238587832812975894749493642946907815031213265498908004264264663403386492571029501240773274471701094607192408677462040356882042955219790463525416781760406593094899119339219743455853873238232898879660305701272342883477981322118088709579330701889096740335775665794945940654510577415439388374250617430691153994208907567018348711413402896047324185277002850519668974428107088541231825133048966750713271245308860165442762973478880931872945141932144420135493671550241688098519421714671376874408927616611600213562943928422389313137112369588521975024459930474667949976569835472482535145636100313982682268313547726374723683126040829611067969704214167763014289501434943119211438224998558514120789099287635692428989527427858174583158592242309325290328699558762069755625937044683470140696044923625685065089843070206320289038263789109115057191704645101735944732694925369464684149459009766079282233618354910700039809637463212021742222201800742250889018779819512491837209351093318012488061369811743916390665991579847906464159663088689296691405120558498046600091106904851590162939589575533294433732603290008225333543764641285048994389119727450334053176846745786273933490965847754123765156562383796193659000758990170275858123263070400142975115393907290989470988449261674355429410457162219686546832270083685774782197552789771832210200345410210620708681379447171392604048168178862004916138576500093576954995716134317573529773394246191750764422525562354515728093059851190690678110874307670263354024372475634849706477617170185778652994355734124903745882729568623406497169825954229957991917533687812767599507521056080785972810707025459641657621700774049487224915615532453436947652595546780846372927854345214008672942436694321561357459093278920250774844288715325701994713502941284101644948345924015703382698836585366074775750054611704615951821184822914173569994304769443844606735124337124708359610618850881210310272444100353504078181073813740858675644915857571887724215146197510111069273004985449879936971346125647182402522168432735046650800529766512085493319282499400964516233585460034148651799045296929691616661269671617946825438021540837517666377107723137371160754474304153171875411269335301559251073034694164862473817815580580790390155380853828594340525790703596977151668788870886388144063820607318183865742164109142633292024201733898810499490172147383759063037261808360817572720888195730116382338893559740895759043794260983547925833820529839832829932954303530101756006638328921962712030542419050753594906795363698157941267019878280475346566568745171570859340158829205199570799967037435551666528103829745153825201354303585454026698968559073427809118415832956871237402963411073441136778771286640008762609406287122121381475666147388556463731453458387669832713776860310983289473483735884568518787484755775270182667351316925926693522470443068642906320530458928008021639909759801947019298397218836067329807280022350476611556552714779418297088171215760495928498198321960949281496655003260513730984095078374676610798253159696095573116435144701745125087426397888884989432248712355961979597523684832073427901443240570099754475134183317505519952453759310772451610210967895934194974473735995778098457366543074697269175667749164869200625875948375504520534645980358549249260291467003820954261213441471554227400009826841029167741263894334206856034987498744751525636473248263926558838756123070204182643702007240883646247883300284631858758972421299491537710836883703422264023018508668652886628142916449647438559819974545143449208198509804136481145880395435060249052027294769626008957292451617216982753945106428767664755616558247502517699247374478675052537190909495081300339237688854980046150219591206224945588261915826217905828309258653392000850986095261954387319546132903305049390460586997148267939935320184913021470013389124062951785416814390079090179179146536371074883972778093814282095872146544285014810111420066076355440262275939582765891165232380571071356470722093411624782860202163880663611149153884012810835294891001962638127518564266690286862767751159511599385756134266639018769274717569887753744243431918913399283120602259807562708637450605952656925872390474896862943738742529760068126659543301823235189561233982802855248350500643150298589320120146447561934038742721983129965808207697219217268779447709395742936335393119972979594813470418578948161529152310832949870414318797566932000933433287073555877470808031951716990045330322160396276046772183524117002485950188448243675550838122911287022797361168606228749802775449639814184741473259855048504359825769133838199943447417061110072939833087308288164517167405802120773944539989258892770852280648601137524052861003779827740905793180077778970525756277391420897365740598795944631464664642630733279752900022878110066688213884035510994093169989173413359682287765990143356954631567624788646932167132413655913226704575521833293674899358694373420119128450866609309343076411611354717167732404065967724516611394739934428776494175182428792865962865504111477167895974595944910994625815142944166428363073634806816687207875375595023425301676978851233329931222298519978980234627450091677555364558230934313815902737885183006391555448255486080589621128371285229101856323582877306477883563058852305854507113396513245956487936055478193336845891385983170609490083871396457967428573843641827864605794237365636007602076322342238791326898841876986383477767951084871505358824500807107788557267289761614356815441197893053347393488621965576018006215121261406772322023187833127996119604584736418334395210595492882111473123947988637318006425556390462957246965616323192715635684832233272783463658374953674568689174769344848604259819823631830974678680886915087020717903153006807161601465006134110376211440104739249058810487386289365062612333205329403882761397343043354819232417143964361516497899986660204537489245107041271735797095520537514104687744283981873424502069675390057457948196926900784138201163758453961043592898805333540666264908554369748817807502181870276636928268053749937208149322760778238494684914244614005965197719137944783795767706658605469615740428753269915319889108889308634568984362558870278865186084541277971525083148003193336142072586801670341643614627652403105085466378330725823013868572009770363423901280770479046856095291182695152562757724560401400161316458087036960733043879870648060992529458423747783808886598636525241108454706704016763817339768660177225415053140082959336725433245540314820893993550583545509944029939757768574032592101510504856249255102540886300706886775745618372024908843867751065843637100857760736793556042476032151939624002068863287278679874165511157303840971301299461084740924329021755991994098846402676201961649538595325314077205445224067015178837264817654041769408076358979639791300409774249724991168587911608931254946178482813797907820929719965519709847304915499164743300072350692122878033317190224439987403045712467192327187372394140272274978253751076559315780725976937850561670043308005458868694105946383999752058814509129465591247015779574893572843762796161819883905019847092001926170214952407646211731376645034958887193825052529436428216340723143178021177767048992152609949362078796878640415921630864451117186758172873503930783816748270712431890044315308917744528691418966544234006001368653901498748923817222013533327141737072709117965689505244356060798710862138482964793547165135333612446639914192092958485321103252803994579837665970578558181779991387986455413374186534849717723926201177771523331101492193244242571996180848419535141622594644348829873267787201629290467732769741378893850807142502352289390428699748080243930043212140893864999441093011670525308466701355298932762315603565814488655970633453051265263535818926457523284620800488053448270593546067044266337283721803528006334496402949682906498993180283126527792049363416740743120938344809535301613571834749229048770982288591740394787268558602267596545450947126313382322539360378449019398295600200530314692206161387760881267212630775929290820091101101554470871231905650189902991917115285708193337161191452439255746167292913039677114211828423060409382783204457604151713432470710528669731843199951606705573852642981551749291969072331450429692159047946787547902938162247080944086572323898593636675698627311100116486096449187427761302570712694171277830269922174565087603212411093657077125312342010728020669820388072263790531976127033825271210358754628075696753131648193556612603476034102801175142204365257459140622555418279714816852848472063773279508030835133842463700105420279096091734702605438215440749039370194211380574607618064118490727221500654665875456781283545206718180720788796491168717938760319287407466050284417412392331262341596628777694974789871415055548610270121911104566400961453937965020752738066235370049355906123472558107337475577947416575264200550548770673901072938379524433544913904329141059844572318131770359068820324414579493867607749104978955262915160066167798030580887892967924954426403192499812599445839615580684882291984241515843982833759958344005717109056170584904814523486886416585285026898878336330790321125626772724462587467695219507874039669209465030052732870020396548943486197054838976386539730381586764885029046741414748124004566857487644504904148863517358451218681130501625521556651756342878236771245632817598507434223942766482284987145514695792872694491025300483142586952861160843430427232812162744047275612616633527560131500073921001605567597763367055265611346843252292852328381299841569931109530437854522887776037855284485979386689413025817737024710639773730912679708519150121556003276921475900305024079413097036944405164666936685132749426895405201500539479321888253182252657219203981500299009471341383746288904396607199440618079153735612191348766148125838437848879441574066840563964678318375181287002792951486482200591399902030604309990807710145669507878144253700371757880428234544715964522317008577043864780748400064296784510415741734890292120697950319100982169407923967400783392864726148739804695159713634067141900927502823852197165565978995345864899539851296853611208274328357902119717347750791710699296242520507708284005553906613030921614271198692528524246131706474589392275173238023148132309275296165715398094104865006530985032330601418489405426745175192064791395497049953888066099709857200557800037238079723956448141497996892623954952045651737308341682410416887631623001061663588036164721401768081918165239425907801763550207435806695278978040930846600910405273669341716321620330488783219623691819694385347596249254226843083520327777753411931103725564737361500487912831278921451628186604668061752202121860721649565701989875721657584219726575673890915992388427260547960133710907298361029158354900232399133132136677016218284280495037700622887588500975375395953072575540610023165103058971840904728678521977872442293357844724057537498480270132489873346590750523139875067991413102400297359164303301959412367219231456114531276409912934599218796150626620567128995646917806920932665778042279009130283141674474752527188531624893628497563564038470108355151728043152835880699686526981183725801745537674679974756741540267528088853397223435783309458290685111225393142885351407978420805160937252600284015810211902600261278404945356020201228337542617914189111910190865247739163672092776936814254284160584372440202234250455186476473221590670595396018858037772732798848211968658700707398769157382866411857778110436092380400903175210864790919898889610670932815526738899786426657788343828898793839201677391922997879977868372521455512681536571910164487891511065474743210191775187889181097489136505004483494527470602983576510274243993072674114819278402181173190850624025757358347255147432725960765095555711655352520097167912283736114362785358318266036908329869549757769718656003527311691000479487033371248853567865037416658934342206895642963242850314945063118315011277514208303620916074031071681197928867501903917474110264757422397950007984873041368339025895535956145714462702814785281834444415769211009434799586653303029870047269253598083436008767546147100611253875056253494850376947916191125286810409142639880492696805050465563638020294885361938206827177779298782416040313892103709969169000210541709086163591346596613314531174332766065073447783811407590020581910790361006926827707287001556215118631940061054032180604959287822319396082378707896371089273579414719900626065688384833280487784775770194478055490163752651780310544780952055606596803879827654259519355954953460791021513805242129760362663162255337890633218569541987679284581929843473557442423191298827612682370817494437005854666990577102383539985067804843768503029156175391552271989244471825055978155893733772981836786663702595279900052750883501418811570332071968957280351869344189176874218070394480254002895081501690469122595448895394802216891429268508855653463254423160974618960983451713550040105643272406160389209667221725860977903857801082813125038669857917221312930757141404099382765969942724820650108132856521065521160226443832661469050537121902615279171782834026050326427070318904270691086493523286550716097938977139153898950692441680062829339442702456795932843145086780350697528618399079386756311556150116254032128325921445185982054856454209928106725910861868382696080771854046577125495115483916819759755226204758084710402123965441219305212139847290935762799632564736640820803038824745021701240958181259237600429318291094198583014752450404202898188565335713763469891109485653737197269407672833685224813132315803295200535614236392334238340770086379169564351858037470563664539820332830151848167944573854613462892204930723759852658416829639775976565207611547841224679645576942209921470616654563245551502843727736826315066713701466368751132543060297147533239195737304409829570309015089878267745602727452106358254400113514540772499040833829479647789379236303638602009022079559967104169144913280665546553637389881770254485615549211182285125722117994910137435820522169148692811105488404462360245445327165350205667560698490066470505056699454447417687665857908637161907326515846980187940460691083443639797546600410919435499546400934608075699999034316391148478472686636942647225612924738828538029071188851799094986536001473725407182012236914829765461369287373914329334609554605920921291393773425685335014975191300591261398357363997095289895774404532304839316588957062345067239715165020178104658033494965258351032447993255518103424605494395571022798482931779935398607703337739478812387974188848810282007004523338521873494659773082598258194049646096872016482404208662595422245881720221108261706245273830583420668844187982448864344809874061325603019615802780879044219315046399760785380294267367723605520375163727561392302607391333594774518043649436810313888216306375593208043420382812229795257369122274641592563962833552598193153501870780742251556416185752910244555169109960018660620894749861550844212583888904085007074819888856658243887297412974794115449406682846410284861520000291546987966218620345241288816699818727029407815241439556081507521349784723790632142092873933160583516234909545576651013168646857337700247535879205459883994682737940434515502678280045545678045608370161692801827382464511286282527851364208445726677917966141896394723183489595829435985315393515969625137105070896176834501822376895327664111847294713840007369849251131147810044012683230310466789547872621759269720981819645388254658160695961288761016456011126400035495385669436388197925285194143452396847800529528447931527267429402155992154430642311077228196940918192792151419886553432992831112563005344793213288752399948282198968020698529380545759867280771530925600798260550900290284338507173910994368028738356999638969930580640588303277992451152875383248024389093626545386724502081981317672571445873358340672523917877058029032584953550258044503090700880593459266890601377234474271301822678907919827241180865511094828444910973622005479611355094413397919359975340561465570306597858952095799484126669444847025638314667112979174871729470592223069722735508682741415448846379884832039084608235269174207892672224070737872504834151741135352745098791572490272633062075358786192115730127976384439436899429516611558668762419113322826803094575266130134014503127837239733862733472618939485134263019765804319674582515998273662162368905590107101749484172062246817818253876152203129169927758660868258501917329736341782626012552291406845270459000069604683121164096322889690433935040565560646674180426992876305452181819824290874683396182929863396724063669043821693265064899352623926286364142060185905215604302445263925247567111769983754550586376499412364690319749680741556526897208884612293204365402518611644129836373724011594949463302754310657406082482078198375827689423236447487637225396817364101310552827832911472561514992878047375617417630684052254313562197990231010129690964569716293457918321358819527679634061450168583712939587373968903743639000878225412244348809912427464588327373908584289987645112044148205955537495433571214645803428719126945571531305906587355887871487561092912428619464384216595157936482127798368715517266407356299435138155892412622611856452362960093945014170030644112775047729379141898254932925607821850641462942465861777891834175527312321240318580184047987482654533290473954610016105262829463261204896202435919261309341498783882777140256491578347413780754941196554898422115594297620516455079879252272774267743883113627149080232818988504736877305514339569630583461729091131903895828684741474571271310000266269794975266795943201479572201137005490220779831731299226747403401423945062627896910756462124708518848084640926129249978697349571303465145330007121001912856245022087092628222621781654347719462451410118708649408159518092653299803674419395592921974733314842492402861216512253480213607914443184797966579203276937303226219875565705562986705734033640419510725820643083678542430982707107463550134844949335282255452634937223648992040883165558241377520939856191626426884055593922229303000772650641318158644273550370677571035890217908691641014229494649089188299843894418226092566710661645941318559457473233379031685729699287523511823563923019132737878341311165376284531934814467835992231896068833205538235782091141341206215018369133846512357342668968192890404830144595767770271550520676011738889610738920167491858413522191716612215568791421151219493298119618089361177691352259380445221986151727870753313538367099074898996444126209143207540406057634137024190560792579572749152705468742234664201101579710159728476070343748280969055864412894921972327767877331555034152356568024377943610808803470087856453587606847237857701709126425010649390910877582406294504750581570499982292371494253756067489410879179831646490063636511885913576864726581409385802254793813049945256712814862421203815623159795516236178930684288646436032374071685880052545470353030393695553699141556349478359011434819169369573385932730068270399118579846654221294083622018977214802160630022604523195522754316128453065196218480679722740784306959884012127203612221008232449460903316935236998584122215841804854560432706023287046060567592441957507614917982954593303246664884905899104519445861361210166755299031701491569550562620962092188936136260868099549211190384841338335366192964135436891396238524657118847609565297634285594303595529641919466110102995017701997182979473884277892030048959941279791980589856402835679781882310325780333867527715555851460187175385948059157142986968350314499331957132021219489599321640021496583884414389822439276169789795971762717663034450687893350202669822515457448157021902306669244581787368145698383353420209558515287801580647574225618707636464109728898440352667764763040952393399452941733044522261403815466118183115025727564165568377854630483773557708439455234644521264021000518910739947840599009697532272433464559844597101947286493198785145944135680067746670801536628008651892592937581391967434287621206588628454268600610032568117699963925658321177969364876211178482607073826786429275623355542687960015460195264894053004855222042119541694267336377550701225669170985807912593335596695928700388239173553105809569182925323249052088799034676485450396194248165461613258323086502077825414319239951536305123780508672342926294267776395547399953830106627545394916367047557544481096216816348669020995787643806422032443501853242113841155834433954573616604646354181082564042286285682052555337084961286123412903222740666294798198848814558118481663187959918042510968399038526769522743056530114960289237420692335756716205432904632154853490618553570197290730072272805666777945000485301013015125859507827112679553174775330679828516044341222849037073175111706985915568014605450662810065729122449148933316116697775005436557248251070013787108999649632000166636797242474735381038617571853370478618862846129695487265304224491394732613385196458562765787771721145844249309585723146734409270804348437157087161886590152694410970261902811941953149013190023457919643508758813661497415352479879844496525218474750741661792183470081717185615836737783191512257049996046875068106784253406308315382209566871639673296543839997314186807907441137266575323978634063950234919727975080400575587453993844843401981893608412148932941988839498933206433239034002951447074988607133996473938282101900212221399209495462618239300433006604028463014813337666717571045886804440744231495279616539190867459192900601310612422476985360265021217808236421666470426003137249833593045870859017317362571431975181384047791953161149941517528813564695408392664100408119853891035795049634951079351538685781470515587329236979037540706318631799351104246501701948038290661442396884816545046580164172203883181103091317698404544379896702135234692581329590810172369716733228418585634854436520723625519914604422735047305674019673871143697118878599989069897043963394780237630676367139555772242055850447909270865628334708879773110706484750221750543640587681640004230310664794888084092713061817371778151832012548097752893894270749863803880573538670082698061707340334490921099513489397174201045722425958762965548347194129016855276056959854586166485440138426680801373325001954362153529201840891070247360112544589096183461986261134103833961399234875648529041333656983724148429116786626330795183160229187415453781180026019399336619963813758742153023594656247712811400749440743993164466199686749795498731204748458796768328856711008848484498266426566959614970453268451644361451968864719871932283767506302303564202632673509286707343558790838612869929756370736115943470114583662332508603408416018787084492102976652888039342626408807235163173582938320229197799243996648881972996771834708104903429053727493569468067877971577176409820028164313120625688077668062147726491482718911408679387571584002060232544130956390245335307308340076808458339894039253030063626700446676625808214091495570800594706198323354852054645246289634367528212478041510829322806139890776703368113783949392016978818463922560526987872063027669111902782864793103992711841244272006466008024940489688815238035637413930323673911598713990457433346195689596852771143435567685390338483366025453640874639121665278580801071988978082541427623084877476226631185856981566484082507281787397359967038248915203959712475851695999147583636486590216234378963824958065629307583966826189986482990219939247271756331338945450256713474091010453211387639791247765080768411441931876393086558275703526951241297613195901602476750533482883610462783955497862103622863333327153129706252239746960863972603680124131053036927809991469801732127433147962653922679269249515210870831314658973225532581926819157149852861399320245512964760453919195799220412532128937425466346600721499687131046302461236671412820315572150998396505661535608135362122563390520171364268498017343742500234550092492701746039550594796368341379432940642114897071552996096935084817031148009849250658841804059506577191609373969497960444650347827447162479908731432699139478226524795819620283600571399695418937636334938806777181886170853373094315412563125614991235062764805402209884412488673713100851425950427827025402440718408125393199140013110777937930444308858407733442495045993732062146593330244031766426900045205525487438473941407759127174214085116214793915232832333368243767691484999152198256837753229641422295474976455074954353824036033677510942655956045612813886538848719231940234115350185547531537077656308091909700916205903965445060807287755112324151348225604995263300914660979935445879724073478023177599554538462092376160899601837448534855709847039629158897783608804920240758388455515073266171944623761335096088460281497663234175702030161266492355736699572996558742381307830234669302770714937889513544082218970831060311556268785934636056923140421339540585316314289569672575692227530800576346562561395086408629894702973473968498783948455497810202346717823255360232013852662690954575682906937340111106280259824989149522366744472744895302882710854503022179958162217443544521671708951100587223282925780149597785543766782535288646823669889686259485294539746882990759897724124151920901707164780366338351092415948846545226134329170740505256462329613814435671449126394063352148447638734637682097925819356205231243944892085320259280463047142357630368399105562886653672587159338048934923719087926785963893527849870606602985864632495683824566471966044776441516859586922810900324443490535452511763835822387825988181220822695813103861241696215188863219795763458714245521782919300844779827681456589355918140128856782856053295033477288503973862866225075397614551929541576023414351799912832449413273852960662716398242243164921813403198411784013535937197996746016695754210696195519529217234414382619538910335494549315941539106786315068391797453428219926085838920662665908878538250353440788974297790244660480260204992397685132289060979390795316101319901379171951661228999824818630477695475154637634894209052029240635736888132828093274584742933582394029951566530901439342635591699855278639173413996391022129677013004038910695069704782913175072340274281468796790502924737797222595029598039949193829191683708702791329065818163757803927931935970716127993127903857687044532463689327834215519320843712213429990863943876109390459606240712823094613042541326091241179939529198471424731229805956435649541316330117396303312829924095921078101068234758845721705109969047666068358081447521618637272452916473989363260145782134974658870688544820208069406829772788683852666057512336448287609128317624308764437297285164766903993936427285335043736757393615630768093119073519956688205217978333426644463208553841867946629697150433054968249157581553087921742472388402739751958282373798323122723234443726424296473932214618639410046005840763006821409329309155132280723057871941023041052381147344284450060828131858677877477354478080836772617429019200001774503130547226001654801375047379699881875468410323971684089805673211281376446916935974956836399937428818944737570000289394247874326200101871195895399234512018093631220031952701198668406238426765250027831940725627850606979049572265006304885472513637058642408350493297056389998416628056785597634025043224059134861948676651161522013649208164812321802139314488138061584910399040086257829832017327104658369568509512054200429361493193222116194098137802645936885993865204546025802510458631670261305668776730776876111575643523032699324508686747271941319690525573364647623130996870999842490749488403382934753862184409731430757833172047251667265188062966756303970319123440591540706604389238883234468762362269524718941745034690776951158049732676066014679999937158847646108950517934014413358757478449917596358346371257984790268340662914839268055006002392849366494232844494676801517754881019691752928022668724836938265131822596574559268592391865103018572912335099792186793616235383117126335471571332973227936018379761073336196084937120351652291634763889239594335462195405270414779879104600262723416225986274890312901825340732342904082442813623360958040185318350290141455376731365844301778088000816284865049049723260985182482430932588326797196440018527979187416110673610052193482670180773967881580806387690306698429025771517374355088029248309331834918159005109738384566722870587771365231320990741734503826019313833198412661254980761004483848749443667442814762144614235225769231742692168477295495875462491191199421937604703080680152336634347501556897712405884066372783592977713294389035518609939908685877872866199728735903986945064071369682680545667800356424296415081870574191001710422093824732783399534867057799880794637662500015051254726701400688202081736747644864247287813009276552430600181869604289893704386226734250172960250018826413989245890583968295856881250347060679591609195468690574564848577805756729452008180893568950263722128513107558486207639026033485155642234036329180765869768723556072037576757572670669347767151679635739695926744288722903610671827875225239721852503944376948744310761507168675632489197338860002585117562474377150521589633265094272175672933100105723686782037597857307833075304056822168473305358720395582351654171821028032836793047395646149739626102595333612844423372495596450819792667953164617457818305164128094551007299064281040296444725054552764047111028268777283978268105996209307726564521119927565217814069370092834169481831256177977152367731400004965126550999323104902731007050439894308509917744462541199277921323886042068107072174819052253946000714868456970099053591702343258156074432785409551290182283660888571276797661335923869123499331922752248353526565569322298510585822475638958935251823932691980626767177285050963768883938780321339294048896008712827191858045766541611915329159589210518303448862708180964459603727402147286437801129443429821263750112166047925659334031908587656008993548539233442328086448798157035279406273634350373879217294052379482049617062589669274726310467968513682226898612084164741970823533535217485630113690854363698454174724413453688196524514311676199698104736248455942676222234820845278567977738238829684449465937225968017819076811599147464710641855604259886791538732390617880900376460304683406904000770170543505951479193984795395475396508193491473153426135244839690901539246430345918405735217067202941097458139561452277352445862601419479672543552123533969964692702910421828049410583789639373263741745973033570993808829072070832599021447794864329508574280879847717609163269672921299163495579933119358269549463527301145576416688159913931544569201152070305560086001871395213274517063747444387419060331199053710971921820555592563804390658178235465246390183177198202836020863219103869459722929686210387155284622772637248266845725496343973395002969366578906604723119731107113787091052753846034816583210232832511640292636669628676980836071253599573055874000557977077248468080729213024374575534173627222570427269150946119793359792319095839539448488583089364414359596030797795680898189251497680383168850853063522229453780573077622973919974649732338541403311472997360081928540952364983739520380303352894231202061197561478415781192386894753283714059095819864185102835009569152591787382077721680023956306061656308059006172546945479405574014808198312983508914035638339119298926253052351845558841867962218444665648110708834829764023235489749552350852411557421049576489570869402579921391690408016844870379535882594618615536437865115471555104518509141151380947350185613004406066451081724712488963645746596794068510531167433795862210039489716988175676268885064466318820483415552478580979657476871060941646574696186393909916815507177909539953088129287001785268161251591372959793492121433527294913547138212133777223545115141672939309768712772462318411954500138425548714266303475425473882433787728612468042027662574261203121191274598801124212630743986763457645228030325885711786239537432023216922434648024648961182980360544051707864631331384503227311677323785450115322685249995912293861359686992136485528798755713940612891778691434294171495853083359485927824505841011154740827075696498531692579980383825687041026878885516132728453397580442612257958123268436789859287421571031139606002066293535794208093044402577338537602292888209273338640265126351661569000065657304127516864966068288712055059972718616241525923603540085651396733849857222007749576388301380640074761258479455815854365136341552537719340896173222161217355987656185495087423628424205185098712373927634181027401397023918842544390480487739057740607654265549233195139945404687283786726321698130350809544949387417916239906633322146568806800215443627212206408536618296037465544263842850738812356808990720370038428565493483385076509096321023964055856270575602974845700349208141925484402623273497784885024451853436850026464696606272639023558844850509491275889317037871009392371339498453751446779026576840570933588396094213904839527988531293057966327175326980929918990585723882896103784071394754797232707680673506298437105189190625537960996653658246404718859977540849553821811402980626320416141834866415475251807250647884320418498177905818781228658033278704135764314128927136534587907293270213392082501055267140386482401482964782418644616861284003437998512078044991425835157929439529303964585729560234603529957036503512182880255882115925789322038342905213570236695173941873263108548191095875434341326328883616259618197774123508102629104835123450114294088608938662945425516120698017806261826823559170062093212549429091129790879943866213875290727802936458879390091726546864558855648488517095890676757779639556700238415510499437320135610112236089614291744132288354297764216635795910893944652503149693059030011769337446730879158268032960119031745995504138262667138329733466347240100372610432843775066169780427631726376116976694490785645545072281156729354444094151716934446630165934531277493377062341584828865513851901677362823876619455993534427508162267887010513573809153744971049670478751961828753330688539722044504993693538641471102478690125209139334042710238475340753452275459424173381400399494879461915952214877468675908467390397863571785082754154433206946956939764101096100225560581879405980458161984388809502002379487837731982918958352430518782772638089813648211394631381394531746282318530333730035721009397566532274374205811627885133132483710238460278368799861276256377156996314075955992181640870158813325352181443055313143942318604979775385281421579639755112957699323776808825831805432604909781362588787551995214363218709358030260661215832166767311608136789803182851809501012425094650993149055013783527059889209690301927130026549158034446193032000200915160321475562143633789948713638779676032960300636085348252790253646414967721866438582145856354460086804970823263211755113021115734000769254987015570299355686253628452101580806191128277570430402441023400327878174898564205031317656885042514912363112798240702771975199757186804343652035870263835046558090018154710350986375687344165122280281246704344696756344982249916964944504805925911788762422607331389219967523419240271497242318680695575298011063345447443842855453400243363613507284984313680780006383921748456886884910122007190303018974164113797749681358819011208905538212765296624160565554713470495040306625103211969872143221197980477568018514529580037695168712607391776917341088952400758977316611677264823188676891561153408572340214640097757324655650930228489918197326399974781427449138779068625912002087046580572984774026810313598318616482405512864321155988836240748031434408915212256033675043985592908613414419326872450140500573046777547387869079152228327665327881177885122822395876865333128214742467256609928961412800378011650347611282052347655364256919962311314810581310831384495999278356590931693320729900693255237820226288259117094635385852492552081403654819683834495834393524857409530005386925223598804618340312352412071733198865109168676331535220847961732281390185708981996460888026791473474264967370900692214914202003670635584974716070644610544695795450603356358373162004672857926089853883589291904924685984985966721540634161910435506788426519228929731949062468212456919529252521800891249663136070452457170221356214769419262541753653040033949335054103070369630661165155487702358119394132077279281944546376430959565589007220889432280531526689840147112128248020697177075143746878496988249308429194938233667267510134436220125004133430734417028545197651653655493228610453082654856462537435095080309955971984855884498131054355905085596868253351061893318076798057997718908895545258303776257340053255489733784506216822741221046221356802696291138624583511367490773073570472253768250017914485459478213155687007613376407209559704413817828223957053412854914058694747306877483402353078987264339983332371956620993136216130814072669998322183804751522835360906493275919730633255681602119344796793022357895337630936023295722887446113230873186760391453575634169960730222312874396644977726184168599123879230859720241303855377907840257439470260774389619066348980264372410435778181682041413573296017903596709313791964716519179295658504417087380070384347836564952062527218410091703184660842748220074688416180688041922384451558982917308763020366354145477873727108941122228478329067535759271865533886049430639587411080106323538163376178860201042029212005158755244562060539177578977197211880484589172845707471523012586439261927265418914793639056927583702110594712256281921947379337466373086904261303148112676835160675626735638497493653116436851289206510785239341686872219490302444207368625261967393821012649360934566165707004582591810045299996846137708774360479810623075422370238664793584445176462329934496138099638671488897152472217991751538552979537098208735954851991502427543560941659816605986490649324866085599390657425307311343431329004499330473466184546989639760730209507913004637613131190604557407602882519969896464356274649319350530353373540463096919946954700335289444729991582158030104726091508554677776989275357539154019716065430861786239687721627024946553986174056990769901349897810090488861841844302450895417650600281663007615568897391197398696460116515528724235223590610865689942995257706685733803067031231732071396750432395541649485747464251649895565278398407517172467045259360844144501415041369878971144977042765781700415171745395527515475193463884428275348000080373308666597161315725998731832365648667674639554022265496797034278233326871775092054488910795961721566149191091008641929692793435246173998854005399974943313242649587161448175285994051111436005283883724932600634424144880979421030101923687714212823582313539334768642569211412254011195210744653604524187575591656243871421814275836256677574533421155763917577435391629600381807666450314329474732123791041979119676578081690821695791703965101100318984587582060905998487421003397915877556820022099406667537382361073548825798965178466620481238281771187019061225811076772307946850775225491514618050524115421592621341797829698415692505582395653483925676183965912623256985681815002501204138180566687919184380283786107919549871022788308727272766115360622185518848055076857685075299421248358555095221878020119827265874788914506790286439397348492484004691294355680316540416670414768885501332845797262721096607454432060831906083849762384507249136063103819210530909237161383698594638846527775467417233192800777791372113516317527712150148701306163415289929094927356593385273437604191222471539006536211724952606917263650968349744012596860105519803816748956894367650620104562509820751198657363770222243977297913497854880528111973373470210563296727974085778896450452969902563147345760900718967195996408414173739510890106970475764362421638917817610509970537270084028752610986434985314532759763192513789692271327512418510887967990183358178094150679322083089731262129751631615463934670920268008274172079235860174809547436976450562901498702961344100480364121393913275322637109694076961334136754777750854319877003539024224055651787428172027171958736630495115130153945936475422051698955392034318915959793546719256919258393632465060464969973146331240259142190225045557860734981624502638471868524861256668654537633009353080745758517697956156883210832136638485670011030782301993705977756918476918162214764867444049166919096629904839720116963218937806563367805667899661668541602166596914286267347723756804905343374920221411605154575160702940986380501675421295009088840516006872201518497774971661419939913053976996470229041315814593347483344358976189354186898757570779082476877258643682365412419736803601733510217140180161055720694483021630611659841818473400438777973727069686018015361076825414045401356103372760668071900748498903201628745174407846999953302964514306197196017320345371307703975770873385869801737809766607856759328376765489333187719953873975178382107777733269086856620983338581301822749890416544643428794083578419527106809329143179086966683054107338466006624514170337751333125313736376274366672847331805728952490823768317762342965155542240480518396274038954928890592558053993538717382908481660263617889900199174689506093233246861200506759338098362421877060540659713899510636850366669102223046153741628416413482024282944802812216874711288505902956543587111801650242940305273036312876246941896887795870906365933904977804304148648242978102146763398458776719242312542059577531084524795993633899724047089906960554335954440446385282710290847689737715150303906405877691475500089160807543637377456463700685641432913581300959333631060060442835293906912618184019845979025528507704398360922774801738033461386457042963669563894497721340163506479802785272657925042908709715387173712747658138617251786853984782590920567318471996564063045419867805764377358537746816996673423466027955619945856023443159200245894390930936069781248963995286677258008749115538014055713452779138504585505753178106799286807925140003313385458766528458424412212082007288257511881244363214960838165698474712520348912726077009230620581195262579521881597614830398722475589110032289879842532951964585189817652834660773988973260861370639982235691588029743182660455011572107479087897780974737467373715926069725733103461155272216890813553145111872696783795949042973374033842426249744087429062108769781137245199861829845090878050196247416561586795771542204267930363161040876550893522826699965238986321220174221306484936631220518849544913718304972866236661018101950159637104590007193723787395530068765485151791327974152035105554208775179443330906323149116378009624504287580011614003901969451952237547524596046628940871387645804499389572224413891260320436665386755319725901177814245630868608341903273468348601378877800660487520099918641813962709128300856465016804776475813214251412162378210692934285256058737158090514995649187048266312466322661779473401031394919464814473928693625208987828494499156493452736179434634048275766711515627720050462585230697158643433409393144381473567323089298669679595596675570818148510888111524073411479374542346687691774293964390340919824029272166911305086717137123257932433601501382985407964213173745203156271539200865829362723338312293083984243424060200279146117450892325330123049049038160765710674288695241747992120321815070760109578564830782265996911808760199164719403931070295648473997384499552634676287563369481550986433530290899437536465950062348581343455816114753354292300142381527428364530903283419215008202971386584881613576251238154099102116598147789598755044404513949337518335866370053944537061505803943662167158809623310546149196702566710177710078554729112743055064237094733212942746511252366211264519636018250068820236144782733935092532226463149810978678889381135403941563731830156771300776413432182438912732046561836710565415374296456123999350288938605039737800989184661593336748342497069762860383909799232143523588600121625893135805894528721851054664662950788738624368574273729781544049651602486019876404823897535404226022161704335849388710611587192372566309077416306779009311844031080815256861860412617962243757378252412260160448013490775088338164627662713929119743960703973606147117617112793476196710407110977991029073460827372169143800524326654360091414115008255363778155790801318202797801016795208111683882284014951978761388923045216376423122694925079669832631500325240584113197325352094195838245287807968379278666505136128383565777788903082671577891220922914583977121627461840900704685562352500413958309301811715617343797188567777226023912313121255342840990471275076298555907509801299677655076310236392080580781870713179018755327816156866726045015627646187897627093625626453593643541263102103643005848197278633031815965062934484636898755888336918535517293738967076486707764226685857709464294031582172483204655866444292988054839286153985926100056024132531196941436059705578461413741689942894803488378319311763576360216743492346143935504995878011508986565171970016263239063721528778135450970226039534214100124496758387075132345404016272556850725173837602642190140217662600912482739765087683396570025469333794151148652590921270379575100556698750456926350348594764153666932506532902423548424114129546568223294699132970032345174390374047744609681218993776440168101089560836471228631995654594729628696361063557997938314315277065575257406505749850605377096105011492865161428980959108563043376381273558202935123671965321692324878616883690904031846684408842807339023933611447368834526173273360408108002840429463305015875730478628482597888598178415922282293323313518739830267089462954760569064360510246626546931718630944375736110576954062409290618670430495406113932806529032119025936827272296577940854563967471681131697333260262828201526634463556094701616327882846550723539571986374767106030245442683674075450766697950319065911896958484979327014409223783045690525362322662438606519397096803118457944928360591089029361009470278462821062845039223006305435808364266557161578969498926180389781020373658985660894754577352926002946152719095039015027563528267915642844803952194672896057805727659549216576842071448539556930116304135033479719187977468491115364384727739574661384539049160066526425784048127686402117233959289340380505750885070781232414032511925504315856366766215545088338311612663866277671558571421714907810025122685867326833702046833486536475485810943010708445757400924001873042132522591003678875762788981884811502554166416045877464721575282408851019490911759671679968427903836112438078967963838749755016765757156542340196281452843592061451588996892930539831177286955334301095696970286061578417658129689488321200401706210110798885538222150406126190611518094659268415958917342480377233610017634540780116326990519261786672920825625118284179920773294428204929039347907415630772902479979479986353857039224953135955121277770428844128964971900496039464369905398467786816020852461083027610372974060432145393895326601496060392548128824865735060581424214126007275386218475698786838228466492307913639566104576168319751111813576320535340504276321666255982308406249880130769613306428479143505317288959182412739834063414883482436278370197267355212993706939354895552979032970686069600879168707189835185030823768758536373801266028051587966259914301835073159297891687059027428900726935230900574496588836865652012534009756398350548076292784399938063107135007871956840313737874669834944032625354101408630169434961373019824218330923790085911068197861396506897340680582221919038191147832183416048750062526656952054685061490646951457381926725405031582167495358116965380507912498116290201172731338264528608848994784502151910162472078975358366831583010558747869309583568991242034932379156963673925255805421068130190342878119237962636753699212612262613243991384570270450057442354271170776411218301194361566200262429149938995824400992024408106349987068668689408176546051229828301660011114710281184406732380004926400450539192257180985707778316817724982290108615530316983273095751748313434197675606893749806279085201959116609194864381424752422740302094347403101516903279708426485313052207900475813620874558958411080324321472485162935239248484431805270562845903243220517920150538737688797686926427078327308741454782294622800003353372447112952966633542079426807135406657263258975000376919693747041349218017474513654317601937358033241384914997277629780996002576650796293736871553343773531973609647377189567356569358075202679707212777807417753955724413828061215044993324699672834196479267853424045046514646359163026434283460305678166284904525527558484357921445866574777469582738329972346104675398592539459313559241166775720152179142462418454888705718010736911645497400318373251324231470452406600934055712150400279894034227552143567426803741181364446073785260799900869478881786216053040290031509186972877624191833934060971355972274470459099012823563262766414996868133737223655192020560047696199617310165870775518766719270032417181547682223280753377597416902421279975492019738379173671791564983601927486369047424790031698055482462660996006140804447544951775875815224816113944933068881232732474757742379261829433956793788836864655850983827961488029959205695626210365191452481332501806520699084249132821595204836878541699040474714287573317084887158535393468347235984355797927391256771751174383079095254890171690013049984492464230759760781186123852092230058655603369060943333538800151391188358764462007110169084581182721985754959126175544332598886381202116294967931851890351752704192154291402060278141965092909802196406606661532526384625557576729314226604168300840298412385634538215337407020978799942281514997157768718900888302602106730057381274022853300768446520526085874880444149503175236197983482013538079331999852295660105278747645318941744720095612574104149317146993419334671735838980111455168390789290288144412459526147146309574893732788435024253838555973522938009920329870959302816779522181667848581485760114332508887148515993202906971593057968017093338840118004133292187381726881453081830109117415563701854807749171797935593010222629107781720034844604770217051594471970294095346096229894992858315823085052892264534312460249219756736827213792590337332702757891559519680161332585180077865624741366668576908898118987101616564467612033435525145605349775947854780620952826492398556234979714840819789262850701743557352166909042982321414652569911922545550768135914900797136237290063603309986797457757065648780587760565252647346036380915630470918071989604693473164883575846138509289286468852341598369664320440979618579041716939614628692351921835481370843340094743553364216788373277034155795627629098758826842510070708300929708169271051176458117598812179065624264046936377800657967383384678423325566387433411759182261273603133979712456254132738100600829614240502473284334708225073819896392580851248006617749137530963285204456025478322068848442670044261030612023621838729522669281623594433568204296404995082196081820085709981275004918328276107060418669064323311526377979758002551516330088852740710352836181790356359030220254579859878412564429947772830640211160201558566987216787146392843157226995712554062713895279318367346900750456295605030089504369099899835506968766205393496483216948960903984190545367907380450755773283867078953947073320549424469626485876182106159391844340962941431417489252205131713725103013816745724155454878621267588860065425832299488108811796972757389379981577688684941742510126197606654207198409208428135232534385592050258220250008365670724961559546227640730604113126944543647114648410925024767180948962489642646927246002063821580991239558763298843844166536099210066893632397806724983135506755809199167835016487203020169480862716071625532520285230235979819039917595451202675940090705624389918899546442706808710562388396374671933075593414531105261475072400317455916938759377305051052660408981926926221427567723567972501201158705934706339864563547224233890503725051983861831483871876346510825062540697534474146577639915952322220434394484787282360603933340632485743750018201071451136062847391677173849552127642306763952951770935310833458035087526903909775392511676952059697597394996430523659909454382501832698661946377940613409490865269099622168424157961864848674950796742418458369024892488133585497377925942401021632059069368323594533586148656216522375195780911501718173722362829362086906205353946020365459968503983630149803317142809687816911970061768538787145846700594927435238025414001814450076496605337416880103964812699764796071171431585313371547962978567466814988579004733758419045647699819107663529812307457596771145781659028465001815785233753343258150678599101669495239184350782821798914257076660878750664102522784793410042606039845352815553758237155850900382683733330980023436312054999741850928723397986698245316691104099496928529949673946474252335330282160200354772842713411862715190989511543251769391502792349152910812398211179504528776751035208622726248804467563691861341143003892166865850968539720546216013566744128867546375739466670883234843079938994272072855720780895528891983039698268481685917800213752111772514300276149315623266580850372800794169743628857377893283391810961431654234564119548785080162022625882849792298606714395463647893971694949127968415617740489385223589202158311971340311751081198106992274455172710853088886776068422374673655492185402110315861859234149586332283929525644032809026987575142281698516966865819791729106984188203460106570877660888855460880104181561381242172054414649651233682559771406619879637617786133127640155611554867781679805751751396433260309183025234330505990026545702613623671284836127144241696127060694740388343752354381497277263180321934356640501515587456372748800356211078835285904664837431363842612348854842659094420748821945643350899123085485767875933438709504570837744091139646916886859029828083699370591530739052858067851771604181785317246617541012600901904433064184605069434898853372764214026972490979352949506007022100516950169781847907971987732697554344171326518184456575960179438751562937355649404281346607515541970106291314545644482754660594287123304826736827608712063016460132284212583821305389699732115792696278405118533706927682788495216561610811875226000103344564200270106581232366576223601711662173448055124123234324193333305111872558491204212541892624432607155770155443912245099093689154519161224882618157948390741104216267698303976258839586079263067408196934392563199754367593456907727557521519419705856414398298338813804827262981764674859857884129499969538645845260144209582256575383417135072317784471942281086005774443576238456204150961672453079751349298663096544696432556449044735922523071040361595705359448560950851946111888717046879954239899802462016061684513504219383189490792740961519007177603151348392321724441952349153293428632919501698520596318162122777265763761524216754157771252230469835063150865906241253270482689244977553085991221983142908692358148494828216914962127276499987940161062562364168650542028854371907679144051242204210648262643588685973170958141998656209985167099425486485809157380552421624925571406269289067960592034663078192643925176588689110298776633957701335038157719908423428710834211413543327678593476328461930602768864503562699730824793245700853167064736119128919848114170579995498107744452323542092780803904035949797973629779805929653706361331713266540909193367847720362911961739586323969258181956143394979743194484940338072840833687474381537900438482206586136589126367892192767397079802710785041897492512839074720214936279285378175262405870769502921943103297319735508376628578213216244340962001826794964042113033404094316570230197670550116955199139085812913481906522761497744623660407926114539765711078676206531619725798510853487608433691474592786520063321081469500977134068186219317256043534726458807791818814131076631212529455230648289662188464530763096442574497997425921536779312297178117065792052699612771130808674224419207692599683308303080654334869914390507279272191551881434396591224211822062625807595718077454898345992413978155052729953167587335609122364067776563137677078337761239030986015240460467082133666536487528399446842370431195342959721128183717939274877116085652453076022046374489048654562293507887126333133643922893299973057665842246661198097695386110585742867278409781614812071772993943050077154880072261833763367756124866794768058560486107889185675932191466338440225818725328005275547539936499866105290856718986878111822709431963125651552301327858372629461012572644096157846434748414724789572653733218273462195823129100968666330801970988369732136591081573412634590404691235513788830995782352328185380154679722353336338317840693337837804073224223396464431383689860299618518504057876085096202728144891957944899894002983200483816403927693508635910295355622279802805669531708191694241269256729892200240451774728439491305641814996946283738957979009512025433920770323551500120948945850965382321782570187610857252401696480312957974186710295842765619812208493741232896009907735788497812847640341568267493893126626449505598286234553694927362367077043907326517206828157676841886613100516210947281251874504048682680253607375054034110084359884528035682810244291350906255729983146634653347681795923868201189101554701553662747703237812490192303085238774992225231625975809472685893460765278702417089728616245863661950268890749305133178153795748624205445802445481526581134875806692205751921946867898655755431793519225193540229831083435985675532775286395930151024430156631714349782003526063122981438834720005829381236435937889083709225597153922579045504364136892610059465337939827405244022723086979158202118591834811659450271290106705917640706480909957025365528690912959461758936333906113159270066141696011192542605664061286562255421092962931083005926284809078410638937147914126442539363567045688550356184294313723633811963905486800788423313473020089897204680389021639833811190344216734359664841275719662793804834985278881451572420809934490761401662715672107590118628778222994720977895606296922501060116939108261731585146100086335783507309738924932091788800497054794711339673851612749336066587991046300758198168987776863492643970557406096944895176359659490561049730676484026187481491744561151329597841176205096718652654182523277782335009763250213018434016855858365949206263247907100401709349985042900738382118900668738926842433570228497298709272163108264296109378318963730457939865088379605851239022897904199790517192975052857158842445081503939429034973011261880424290134316683312962537715733994577368232594741383702284347020334863866614997416482842415878982001672530274947960801654599981126753624139393861232478539715351480162359128854058173265139839853064593190005244172828793785006202331101456763335135219535943337364167902197550218935042564878075571609643249818212446653464225115516405970589973411589974269645035091939916284173834794936595647193577485649465140363989401460882782084360782001396318236477187199608166591000775858131947615720098963797443769491900878275414595618047036614149124674134686736365778448816051661830640127578700266395001973966008836193421547176936832904689740165682613308694416802110428581676807055412472216100366769563319133817064793459465684088109458539214023852251623117739467102133423770225899555417492443709282355273875215171910196632338946963186724500382068849474404351907688874089293440852311319094345815495578546712349258983351659228781436025553153598782081607932686577254544337954613798705945722272939287789379968884178873959496065138939369016315946331975326751655089933136459090200553943921861195844582404355636568005268051040901482517607179574105628058835167450158461571178437636167438875472480543512790568532161138585284380396133298318528863852323830791274938076617221701286614876573651465528860424568167787889846675720536681136334922657867041464393192902404603396023369410880984534351512120059943300618726935864887817842240688862621484749946215398754148893961050150579523966400826965913153524907953166178870677010283948634204650773533804901154493965299296112162564725319786508031652872211533357481460999325898833001358052402919520232054129654386761727460049038089339303598537574685726053587226468996600165069244375905140721108335569025717471546741525790232506938236685567223579004296350432575320092447112398805546448816317813949521715862414218427871966062618686060958708772935724325511790040921806346428994077404102019174326908098671892077944078945144058219167402551800100209579134886073168401986132063617412933962964664708733070474631387450288662503431368126883102535848788896253918457264659611710941790609681169591189205932252051145803248482616750134427016865002790210953744751596780883101416111823043345831610066166963368699244320502609438705578615875021321139639197886102274039881809251253871279982429943141283250825651715099535805178359618007386476420244800767635352102957440401228950543860200396872359536770142545198777891719986373903877292740833506807685370880359822253091573927120093501254020195376821859523814655043076502194535134040955598724241456690773455610217894019193133665514690916747315344244894630368423439425045089876858662193327964891376912583829670355922872048556935931195275349924730381567581213425142090031083616132316050006589876524077023312894943559422268379334600111566481931069620693997922670274758466409352409965361344591210530177702422806362829685489796680505215864277165256744461686036574773716942236154345334089391115669019414049427593519007351475559439266013184988455161016614155780059258896723939541218709106502411794795477597379082528166507647921535556206346184151772691177702223895423752676703833361984316785266946731758064014057234051865827641614777442170217985549666528007928529733500603820175194282027840689855193730648779323027447945498996248129442096572817268787058593341842980524683625283304008510973602030544868546599521709629594733708187184680758333906228562596858619315434665911954177467926921705276729129363001473812246338578103392566384632448316837523661427399599093634742502433986333919355592751654307880354245182789968053072025663643841065705476618391262751109598297127593980190732284392544628672953115947833584865723564244614866350861995613934726250320319728877166329295553811759302633253786335412336713667920695824887677845459974836418230068051640521681831520464437084528826073073652381520287091089552352511390374941768185602295338394295591734219916959194085746298442644245348498345371309515686117395329125848263218556286348903385961011744838567120372501787255227664246799802431075689751295926424045592708203343379339860100066192405922870818857219088048962762981121002490201997311870182203951611513863353811186625236941488828189944765888193811926290108171893733150572303578659041911990811409525357961462463522201317067443986755918124078355782764630639240058282686202981078693660603201086579368655695856526427057798908867273132881627478578152349144111578088241076699455412461724364256486235962761913024702210388021496585466056515083210063593049000142339677551882634679194888950603387664314938631037290931017833263426501045106119784346216682031724434539199071770596062662557799191715916907160900077154890610603343101370774659053302665836534527157944573407750699861174996912950354952041368510252409593275571231215069875163632134339641618742552511660539060649938658129230326343524870198476323087414549126718566470723968446097622304287075569593289985798091991643800991389859275689787584441053356905387946669667625323183223395232871455337167110665185433392199965357899370691699759247524252203029054038369369054270658973364727516082628311823783384677726337148722998704352828618044414472273868672795433833744638402043971881847619862276413490538524785236290746438440206839764213530004297323135273932402980072556473304328858090566961005868487666131256696406636895962938008004970176314305602587470455263422197543858712030874699124497434709434879524952811380522446499004678617927239551060114887165418251657356715251104671307002476423737537229540103312438774087806410833517668564795083264358095929810019507748105104019140753919990055100202743210665766312319844593961231911588307574127613318713799512519930933401783822675767147940578158301272321786595787783461271838369313953432591908872721584622312847364176257605481276927875063561468017591170501859242220073141880387608630243383675910717638379769709992805333884647151153530651732517222401388309493854788145283449228943084621221005340576564744282100839542264503998575365697792459966461189724039510119021537346163507461148944460761894241068730264077660629847561743572234299340829157968724249687522839366149987982695624756990351410913165101018546640800928258289245856266436195924566251342244206412809745118353826101305245726149614771763661898117076515672480884769151059919009802816271488591534932755892506807101804552346387748484772614963805122816934587210223755016558391899915515937491763193288312407976760474123634387491321350867160534700419895879325299367899609629385270722535020221296657910623870206223537988563389556243994712423278385677476844097754716699544194669401780349699307332128429725333670312754561251343975507385893147270367467656112841196072010052434875136091947043537449411115903274756551988710607271723716711261259612227967394202518912656072589468477071684196888922453692794126363526970054468507475498506881784381567426323639185838410490009669168374277159855705507627816773664373196459059876667980570579331792814090774544993078095674205361979506289163677225153975249560452417438451871924627379955337391666368775040017840885371765453607428498442919651499173439303450375799772235677264637951742555937007959608866214979572991060404495585964249184163836258030630725911428304924301740874798914075906573522386302841296722629298484022807634771236726322266505306753405637610387224536292198268333059698523922777583787005019438245240205519186620701951611905372248530085127854088615047532782662937864990361606883713200144929124442125306627166372080197065020926799635742665495519584574994262274533368333651694038526704653338306101995971192869659593787050745744511864664142196019913601048295251148862209027774795091461731358778914643777686438042517913264175588086833135672092818990822375975093111113287758949714282434266036247238551187880069668370909373485423350553065042387556485057116296866194459848855439286702446423100976128717218170544786328484563150889154510946130073654979464541328705102953041796490162771940143304895837315797609914758027829755106469500024408394131864296568970324643771517318616755722454578364985392168140831774998950674484553774195858212361224291713584263115410221295025160809183206198233390929917452981157041651066735121102818476811584258555492070041151983320162953693030882083675967242544040513251033580917847214418658506834486244910235403670213489554908345870555717571318925059749158886505252371795918400344543722225714913704917423590386629589672460955330702994735197504333191786811819836195564717358740804589114023307620286790924205443289145064956954619732872929401599941269187581088879598818562521936190994708707679276101840271802911671681428469142518737316952143585424607416585711936363092924389476327612898524261325425196316537193501839817484748815221695866047770026031747563180812444362110271170049350389203987667862059928429243955192648146525155386076808573811799248512589827533423267883997313815008247750825374455184198872811775734069190655659735895852332515042054620134640174051081693600776977325906854862658152755583488606532236644770348448912721408320308543717682735990298178461323119570264758447343045672223188495427993773606815002445133864887251298047506004600943073318471653699308401993778579919041648879164087695804103087142932232146094892387544796341650586134858276336686910204944011973079110808844230323270357896283246533311837080474357925683752858632663917239940886394912645122040965699365885899355389080148892945121010823404448376669415962637632059575135066452544404209799785841870887356060221312192737999000699517690517045883835086165448316799409959999129942254250066016827732776977042824719987319218126727699064125066810969791056220793024066201210521711061891574686900474353964394696248970089527694085752150092855194256260048519321852607677996389324891144011128462696541733871824601490854744719664090796725627724220690802538523175373308588409701012348942179463228631250210870850096474896098067497524380762247994818042659514454606681006991213035924611920360323887007505844841419327805091453493248658370983911418682857831507624219389623774671238771691342959442329582452441402826254973915897333988138409670993236359889784140688438972869298742086001377558550460388464605944801056983796997573341123487183457968565103448566238322447391412806995450426760925031674565571073439327032181702992694948010870912694623531766623949552804104457882567286934513730638266451367491316315440572095934946206277180786881561155763798852057732129939772632532105817094704193952390177712618985464613382631249471826166574986199713805903293942544372881027265208069105286583208848401344003122493096174073117186158685320965931665312263899458191728940707249340064992972066627360553714099816369367822172079142555756605734582949570559292488592478619032383746994639355490519180224060859544271049842287318065775140711921010195070237392019938485032750807395627478920493714687717394199062364278585541847852293645289405237069556237419696162277965183207686185419533956687753751527944316178495607351119921813773496977112733702566833141242100314599361449922011929350408310509047706390485033709251564760484910057047905787652856586613799781513312239620961237464462898978013358346929228728224375841339405063461240163261071209320137235949372413874983369000190766475917289745834321037982030657715893388432560022899396103902445030410713730477788393711992355459547201867090853675149369603286522256119687213850633437859757882430195449790657944300262995952395754781371799614664782538209899352107842275643243990930421630248078910349165669592989799787651031427621765496588957239517547701205699086187866104969565408371331412523214393941652004197662089137463582628253749665728342325914437434036971890554996028057341562966017972338505573079883367776388235055648946581655244506117916193480504593104552743509661049297702291648219779286174929830549690496433551515931987761519415890718526061873042918060629871249920758889968879242619796592537855647735151421752315330417251582107248900517565795971232915429451146117225461893523098408892645120791669484966938791941040875896774147704109325498538147808868800682732585298367280157370072202936662968768921722654164019276375733127201174123603970686149168626978292094927150658045501866379649145710058164698743364235120566892603084776839871232543469038727919271203016579607654113888191007894654021206827543856252714834418461369936464574984082704141047035236072203112752587781786104678284161577259549815140720443842316733859912178673516707970332396997047350140306861490639670021547982534337323265347701904347105991898841848019859957484787700149874817896886586976701541518476507978704513756634607705074469674742805864533548168273614733239830398239539858570083025143792033331691720245587527865417887209902134717691375216085609600582727539456779843384010799083885284210407725283983452797273312923316099894037816449754929205614250775050014641454108433841130638000390541393485043286948857751069789093404996882892659176127213137040694936746588422137060957295387248047498501301972690088950037006681718695628819963094025783740629547927834961654736889630716584010073293997386642306944489888499611188273282174833527073492573631713799514450059563425624519801749192274027987505053061099781183419622344422673653769851285284630090837950476382673525413300646168668103684955392853409722647764561432226772526631184885983870761092754254259332499292936839828209482327344654330356253997915686163898077200748051374396595195269048667083049790575092875265428204863597696871536006947788402274258406598251402070370672075944994073771143116200098855720896633278052733223548238501398747546066559423584942738482860817833383702124155922879071820717544652412805179020455499536113848405511182157767336825954592026159229060247909717846508408899371834325472876611478882796329344629276173030277049257761995541436994660506154628496506875924148421447977256462785478277246416376583067344711553743786129045141191845255778427701217480627556286336631954904884435980707596615976961129764622002482100384869400331065967354111303418327648641772031503202096252962059575882103514735805773359257553083925066494052411346350537873533667913052190891462390461004656453163101860044736788649325112146177475686285562898662009176534844166664195882077173781735615243317850749688736175667893821832478044288637461054507294420342381829126828107721801754714058140822501636337597480768042271815920328300392791449214039987468431732619379995532967892996154307791856418669357914773753376006658784277542149953614261018999629449864951932404619753219605007906513586481255869212107515777836951365619660310937276810651625344258958454577787493913983054519064795106862078331582338854616578421740624697036129533939510835543720851760820011063480427139925834035336501259419093009599079256514349749577580111701631137761202952568330812994792294067577819543299780672734028415699208134350221265211903400615454934972800143278367505406367079367238104503896105111502619892000813401226829529951527947510869590841248900602621432964071131630375254362109201544602727330274812314210217349175981985805732949271836487427590963726635914766630234188336830995936190701482491543419470047549427761280332499095326413176208050038180093443034680490120418460841550126418396713512759139062981415040394728324918973469947300480230939648515629945205613891738772720744283230432887334761867559424594984367644085387215900770194875659185764756742050789393056893960266478842228998513000395748779084706892228112670257209194886840633483732659112723733456975110700218100032057699092921690410390982284365484754895212351169382155192521711869521281461431835682567410242198883934781585787716430809168652643485329398735355589907756587648230434113768005251038148761345515755924821280961867145869011812424443615409229807262709496341121361068416869954307071833567380002923308515684166109859911755305235600087345464358746995595990622633249061127625747284677894530989831436149490638330852244924938627213420690220497963979851907984224137586717153983796779239273283030320272079136695202879623126338031329740548333209458189674032348521421396182488410444891423181915430657033173860068687789410763296347709744755116988964555271334161132776065717400685897658583517945765872595361032144387015092015574042567397120181296090048136684604458757825460602765694668329804590609368939727262066921557986945394024391657674807885746206327713607462337638801704064429456804419642928100471765903544636553049710100425620689076433897276698712082268240609153321876028694816359518765920324593769814015664838555072240888013690222492906277931439983642277605596603361338354325824620913397455256075280599851282553314510107268873621985640273538436545888441667174887658272337512090600515333517197283178988530111967510226256499976181163898725085722116693768461657716516093881084947060712168073464378624045162585422277306878217594208507052600631924922738842498764176006382736620973915366823965761253224307551708457008239798267710384424718965193111980567891248610109554402154373913364835963760022189829323683942431220907379672224748392641074561583704603693754093749851274194419496378667338569217376934827314291530418901413061091279863030997783576669604844306680638599244902838747014096423336600203059518470557793705369070068871625577231865509014368697478054026988132333864336226546368274307503669568142895284606340980861846322437850583794898879163549066093102867811718018151362658805084946809883750118805249271575627884517681191514588762528449786970616217017688648012301802008244969176248417113579525128238280059582407188732434310190738779593248339686880241332128551008912647264366033067634777088120349429750514105940092237838993056927578063076537909040614006940788943144413122336788634031839345471911844376025073747722934302306197557501529339434047535996461263225655267972764234655755564545845280364171842091492499483141354416200850305363202082916709748530904691845506807642750754697179374912228955417133097006962444153285088013766141767142498596574967006645781659497416726940075234968000584375638773864341081808280305351512052718068248768712435554532124902437820125383203895513513027066036087238278549842587845182152280088309111258473616391035523761195683054941460544371561673405424205755967799602883918765084339345379311584761816005095718783535633633607431799743487352489059097444594646265230556672736228209208478533494443572360139863670312349654304793221576324992299559571020572322631966868895049002384861935735009377205157536906547294402045455953200316434961886806446093205913785078889320279835196622602548098252098592769709490319116953043620019155307006074907334348041219174992420066518171590611202126115073500908499314495638161151869027761965660744182070785558060933442202106441914640259143420257105797030621122038194307200206432417040510617720838157738168732752402929512036451346214669459107097653235250047493407182246379145189230913410228999870270635016861960468893628222955049867794256026932183250396895585045346659118097772015102054362935912297470812798091661900113846146947103617610558223968951667660887459684372608467371057895080019270067600923280325705269090701161190778465587580505356704448979973370561994571933948236643578371778370737895119577773247630614301420022517610791089058908407642252760975334944276701343418893879712439294787960081366066621917915750703900530005769139045184038718864561078417004353747381201211911046293631074868066248844519187171756406487299451878118463691063882133197350606944844395693270610025554616802989573877235602218826801668727473191521852586416381665417970194652295845806416728264087420618310378203820673194642531690191849474922532503314180876530624001371373824673536867280792880128847320889316762011583731397283067835880865630235198169996018691924742526237529498720851708185528839072519205058085694476337257399404609022488756188334266957397797004138484606160909265682412067147679465868798867437466830199051689051328994939034808039339046576410456374473920382458534208187458097691449268415958713145302153214759621137585736193249805542470446846667754018263693778530476728336461860222545123755143946122891506344952571445172032798600129314745963364122233960526083315765220754147433205639523592055644998731819127143007712853769292178677906215101809929714616026254883112803707553760753953529654970990814526815519893318744233954275729344685307873192188741995106143549474382210923491520360946036134012366448592847383690622772585656595008815618867641153587306803938626117245008063965167671445478397883450267852616328846347632870529787223286783865789509029551906084546345875364814760948052474419660235624149687603227938012745177183139685318414520637173621363242901578749994916901828703277600543536896569996768387162411875493541502629980193603887092770373225993696720073875682897822586836957013782659051214103232931879138850045310049530826067015761014734858533737368559458744014081785567395646389402134408359917412790956292304986652619262790503156996083728203738072661350226760977026290257888622663511021770355213209830403692445301515058254297674974242779448079052971990081085074335048707955380403788213162810528092568515132514323662608517964144720064131800549917664511641623779043324797301505242266734808747007373393535288283692652415834051558195189360327936133081799232240117606267356229257883168832525006585379176796106771970933897216398423017549409487422295062858239647261282820270882952013614955883471798386387837482087519649075581947689617807940771402932093272891167173457025694179691867196712622442741523273307766957537563355482490136273935617189451717877548350693385325937174994134540669523817222369998328598077319215992164257962746802562926597111054034808020317893602283603989789468730692386131836496326425011824341909939097077105249710593591345950744922475555138981999326409979939969328621351197906115689502896189159680909745443844394348647561250748395757085032442911478250505029636712321372517775328351189711189754014860211923448392252010794750710555492268924079512787198122028538444683461068134321135258780104235471992668450171668883235722702567982199199279969221919825578136389888090693425036175071883474562367694774659033083094899395218711028870133216522765674503931458491569061781035398268199056002084523133079733987293001023533596587540781314030079623216071476461665203061527536731422422061165029566774369780322774829804629908276768926060741760840660604696259879030936358462182725195071200824295290894349970348089305924706807209079770071043281508066770464069635106299075616559192509697132147473897111429224870974832087786938743453021229070590155581151318274982964039241894474110726979441781029019230353212158477329029805624971836692443176575526138482334692641331552713980087564447434505427447248949549870949465375307683157178653315185563193312669674940197977990242484052752517837514810306631540825271147368720446951484851159670358838062162528503920660026562836873670204289481242131665343577171224026483122215944762107550750982226461017702432048156960369529418031546899835804165370569489180556825746347022305330810478138956459065182583310718843211396937807098834411621874795318762524899908151848761727936779163341645715276094717479386940404420233047739639689469397052469350520799302475036642976152550425887574868662628080085046206339415194276536647001344219730581781920263827435716813115287386830485070525817912376213907409516351428154441125017082471985264793514694111284613941608085208648380325490702548257693720039861207607545761646790784617545628294182470851282102695892473455460322140580380930646486703750834832419163936994547703381030957089309862608090657291082668357907347127025880395800695988466546735369851917898683755583683418542227125154615522685944707550898173665888058028014450750445738708086535613859862243022467877149837812241841964465425890468051411461647392736958365049922673647533585612137515283256609194475159611667131863822797492319203256189402451849924485031577516547234395966803715549394568494634504991487157486183167144478704558358619466835250124616685213527340687289693961108658640844220223741351505952063272843014541430667913472164661151265779094257058897373425886912266138346906921490916012712384637660990646013021258824792863116732465757899860861401574659293904963996337965302503489140853332495022198510406662654121443898368854273753576247342092951805068461893546051495052304358374715999104270901240404217806013754599768596292654786977343483429666299024725770631250654516403261203247297271070625097831836630388385263181222152725548977946214747142505887246757244163258580139749401357560263785362074798027281408354863995368232337660861127260515977309316302737770202253042199410941696492901538525505400503555571591525929881905137241085346047256038864903501488964791724888376517712224139929523529099085029685111516910439383238238471076954210269368643803467988950753913554702087321310914720890439684715565960379583797379478236997553385553514354642224053612439556652535000429747959353138408707892197751116606595028299144451816642588744147518866603572479549745762343361401034441079602398613633333196797470713038306337649459462689320574347066463298929820832694744954839868512263886917401150803290190401246824091713255052324814755497813751800657679215912944594571194770823728593603667109499009680266092000815093667274672468704480801517935522798879078114096611213768289797663152394265763651494097445441423681097762403364787326477179852105298152659966478103992698323187498572346176429155376643035078113828282266467938956711761660676518242362987757556921209278593096759363321077863805640363363247225546582115075032537235183239101916764130559593888011911165323303352022654366522682482587762811165129506433959967896240359691519056322768184208548303801730657332381876497222766356678361798610059416326167655742194246504389040964316064547680003304058923885674963518981466888074325292705933788539931329783566936959542556491665460348310209150377232698357773831101162291617363245479504930967613513421307188690411105144176556524305226559395315308288658502204803927480547887784582280411817370930814721836604882841719252324261985645951183347796750162658214595823629783692550602894454881386882624225745701489197060441908105498179341117226160452448377262949220639776209069604994889293187606849852183380435821693676121700803513302566233549050371139377817003309042878258253133061142565664999149334958899629699439988224465238168706197998828924676980994286635245209569376512432537241306758793351130549443746298908909175838716489130134934146687831193238560949250751278606323567308626567072607628815191180265572016182327274601556046469259330846863006312836702943862373304044260696375391713357121492649281102057819643529672993565597052513147959407655750878763069461867674267864143376608514563172138242271127465821718193639548693331181885154909712002000641509139659700681545928508570557948124140341098889305576740859894123026454297790313351963066520456812552173471815764981356701102682843377322156622121844512447486954544791758855382135269289054937047302244921282895099680614080289171910126330503758585145064573183309026743700969369284766254423730779785652944863576110362502203479765790171299109696157662922339488592252174223489334832457756708527327115472667684717442901666466489155453806284583913916423354615800319058960222258606882596912741347574881460940744242100030052142137602067571714719560599182309964068830203471538306579852234336207267656367065926254763172887431247467356864656242807298850812497037553040379481345763602828950145886749750394569452133909291501490504535402271845952567429251564797479488148281327211049342323233337585853823427328790475929200483334044682387987441413549973666292093442568402389206827237704957822200092177265152508400963655563151514212234379829591410884321744030934073270569365028324451494956186632170973501974719561709944898564769059084658936699492307539758758090638209052109745793751644871150298287389864848874690851409972799210900600342594798010568961044839396898219503896841987539257983652918436783688564602054136691787849727507491181279670802929377595479010633082741113314641583632719753134477259860114808157775336779220702943728689459130185713805226394151031415492623457130475931120360343952428371383494792727144978410640117443864969917013838350591332496145336396721995990284708132906673997199471772989341615773927800143775433522700570978073069956194359588152694456758750473813461229438697896601379555573859377245536232723951085682057573348806495360329401054685207719952930628962941857120915173228742148187732373689571975667176662063824535736280989964171376816053879520193753429693888157526567561731275742736910259944237245329018511701952083583081083083338175140423171579263653531262320972495165549934218828151789835062533989276806940262089810612207782519327419110420657516968558484962279295324588613963305247163202794053629666611947105757069230098990618571334445970725599215185081165232762578826364709241061488957076899605644055165310751727543631143124166912473906869422579253032512972286689562589695627111938411515120908942517354827807974310710944605678439618804524486955804541737644978236615305306466007634311782173901601259287480621525371109556707619889953317620631932448440174439511629938388748618287653662306333505247705955295146664518862647322080733850498053704540477912068004098052201074943969119316966701178566045877381918972581548033172706482027018003376383728328493236353622156619049952324944882510217050273293622456924655014120147128856242322263219175452156204051574479809609702014703465037548250084557876924163499482767942771094748347131524350294186358082268996205828542403518996188685157162880436319991296217459765509094601589034638217576627021802068854054405056540697288675123529099510804436446267106652730067405451402764128173228278545840123529217407601348785284003024105927517081565760174702293483323147608887443128726536111943713367540914412168335888191071519716929416543775529713446136421750853379112941250927723896270122777755722785636767023467028226153015095030316574167461750844047141730830593917697996405507696634604178769281524741911635003868014657105969408466010814904586909344942083553056043007090140821864119273829122254960422690045931602879389250410681832020257837032070244771006306719794069997473155478260403278385892376429766656464332239094807808991244468618306174087418933714868693650493995715618784901474616885758058371423831576513911550530128544965702429329992669370589117687810750178513338609534897518814251866986946172395284867070655693200068529113352256733603136827492996413274535981609850839023946648677891530626094180936653513454771938803146875354089866221633536544262243661523566952029440530904659333002651391269289970787190751183990474641871113903038825012545467080669992594966357168513435005461490067705499553310134741260870683356328807158535563924067297022755703562840265304494197183558977007159888851279478283841129801997446323622449964704036111707953878005112867394795210207238233352097741431973934823360275531593673943084838314982618240642918815792949291303496952732484891920300466780916124414540973368129869195886846889220349989134589614193410393858035599018405579971586600829803848763851148373963279893605222167336911052797182715773173910791349584783197613220812656971055165630648938942282315729104103681510238074861055149781185452742025481858995795494919646309316790240565471325162742169633649656755131858622244367151845898665835721673022453148637008032954144180612970325786897549455668539048866181086969947054435051148338925776018469763260518486913527681276784673090618301722329785344337790076255822237104629300765273146959754715992571388009432621562063522691436146162469762790828526238872896697541605215870170228874302511836722692477766324633857662077267756515398965097338821716290791671945851520951477825639523123527529765499607028378006085186874448440795500552291836346106944091724751999347171392977557379735993751430186331067220125192423318321269693250379177523236769952768399843702719872346579453838652634292031135781961866488816449957940588140879695870082769898245840179862394254277516124595170788752932581962158485331115599077576274818235795051872309504088393048251671401183131773285053393843794414672091049582448538215748474684507158550660944164768769565594813519268804651687307389322229749624741572572084462802895890950582354272239901055030786200017574479574884479724569222375675264640454872682506489256441222926241016461615570179364899600710267546060089709558270131836234785171734726241627021459324731318489826033601275202309740934206804518592825548583575897662966652652356855877067147381358653110133370228655670625997866538862770184747111037821169689327739008851096187257373018340836072012796215378813359567619153017025218521595095519328701437956798757948105303049088045850050208998679746746086075630374062706887763317777776200372746441033266798035107229678992879601371341735873553330148137443828889925385667789300440359834778922696341863257846511945841934122532810203847805019979012193965320033406357804195003989399951175585377855358346726005753752737430351153586780214665229945368769072813934478736669449785065721017370204894967896573709518762445789792299547409534889973919000995845417693011116087038810877357480574805122253855785400814130015176033051707951635049632438592807825821249756095405267814675497277404207230393862812054149462693633698264080595351132382755092700652854968076218644266399380767888365848418710274234359586280538689929398864116066785933999438587800751926388004131992959798134407729575866014666263515463918455368031060738202260730327887422808634608366648391126080882479528062830034364276251108448079054809989613002287898291340813087397465295660827423019429568022395599734666454643632617840135007458910309351813062372359573872009998606683814577723309630896242248560963772741896833924253126957191933972195602100704617925820066156452003570760393610935502385474806701001795358337901740011066736270788755702982399167274261005913783201436561103129223099458090474760461099779093613020567213535075541168154274453884192808438837429111371177341203103577845397621850067562562776584722605574472056893900981682931324172438031461722929937880669725570317121388859586418139284482010061667311644188228826211932856866535763500029682366418128485650387773026102680286183482800646769193903963804066805277324069702632498961865638951223182963362778619211711076411874344527927026630366590266502791169578192256964148106581606066983377409255369539128601993974305721915623883259548497104240594877491838834044785972448685421463317323527500426034314074197133228264307560415054263349912456459995788065264566522059274039722746325504205555630565969510301564713128580727420773365259394354863600551434999192664431542214221562490469979951047275331760846526327569908389031779438920759789864749413129437628314533390389957962281032627780074190433081592454109004154753838459471143921136868763820080119803447692565913463277655131781117079715885253720051848167681068732857327011166564124240423796356849923066248956814309761180974543501909280230335334986881011192025857379647165081940076492749038387146103529000667930533099852161659901489479445900053733953190311314152588048150273336303629280002067685572912094637311178209247126800661273625290969064786665180237592912201938141088555586976827154249693688143213515227467108119937969957947875920629552198295122563448737443874478639643000291357630354920517715413655229683328518301342366070050285025734868107670657567892901636067269498871538107259166458788743086055316609494069911227166585187622393672561854822781128437955447152057897732454818292679064010513279608561982237357921343062023103292317256520798978830164226989742200947141743447735831322067944676346070400614240385273151503241927241784735430190291966863504635605472373705899928609365017131473247161588562770792328399516095638278924325089408610837941890966966887013739761269524437368440758203831982473294321812310142341716694230089624391222698496521669522587293231988706469809841601137017983460235533925384744112662531661872511030813367574650750312753514038481307669979846295683196227958055017488905952586149973123725547182152596759660770661182523700261635353494309937183845505891360895518853103674776559577037953143283113636631101565460366100933144112096304620718707539890594585358984761398479614769229877138032238341608156140329851731867642066119376994505247371361915635072644294854979627338062306581233416730184949366069243377031338117775452276224426620663221949299891259153771457417888969829831751652869865796534919826632984474292741349341434342448530458408636704902845643995524533516682934169180563835909714354886007139156554646033587357853388678013278723660430322208225354186143353742082812870978839464508784450370609360699436198401068906911165518808452352685043054957218846246080065044504404855199037446271870913802405772133702202206942999461593181377144797251717130219482801141483764462829229853463546500062458801317687802985531796861003568102104855351619684002906360200509824794014793620996440655494465141257481407885165608512410096334563122945598625550077898392704895973394148427762973520504422845872361816960149013216786306605787613649833117856645539473038708418833600867940845255230241843998857472387040005801642767451409305528309067470760976096443351373298530089652655536841138552044160199523365086860072487389491403593736517620372965909625381010106509715272410826374427248890024077767265039708711381682778331858164854233695900510768266859851877523468613599102304893355409760927509849391984541646804387873871273399071217493033901268568327750994053827270689690820906500967470858579111780195301756548664418828226317258717515825599012206382243992036642276694165017457650728804040301535909966605780705796764698958401359523798391773954305665694956158801029111962524832394839156751114470894075154863999126576307087237678357697029514827238101229483691179526409583865181071494165477719550566992444310867665096302880903050915471566128120128897179292384054342469282603390768908753932426788272429385747735703965130691579073390816893190409128891978205441385168074780883040067601445249316909686373430259341771855829145594177152066924064285945994325554641173681241034760401962111200105279588235454243462963932570882234426142376930935663608526437893827630822989375754975028454541505505730901916696036305327684637902364802759903378305749961143448287824236037006770216868162689554323016112517761366703860881814906067110484045337125722629840420668628952740336709725390830053862904332416448479701065359994276260812994530512788534810241244371054391930607308576740798141766288786326368486940246369925015060577614674066960869983587925996392064411479554708940028088428870244044993065950047235359053398836466174646724596712600210745045931557535709214034394360394473438971053995848315595902530720853747769235512138034951623313858178341847789266696369638672168450269765924241630643793552153546412713348581856837216085794304293206976135876672649270053158620523755058565965093454380853554003806561711985142122009264720663616751472025096060473269287852498930385298016105330399393645298838058507251270022433429649478150270309964187315755532578947290562837970391479643862333683750488791778280966477856675879871585712931544301794839146783830263107076828182677131026839919732721935512372415862039308261358812879006103700351580530449809405987331536655527335222795440351203285657032924629939713794128689212793803604103747611226887356524523385636173543322723664069981444758207786017128075079621197367328232330079580124302153297535915402090961307452233976970641516643293211209912253460193576294286014439156667113429015722137370308355129562818687210420296198821211557341350127652208443741613415582934863009988541156798329903011052349610466138944030733241932522838580537772569896224096110284609660762904759524305928826988989554438647384856808412001582428194722489398704018660609552452387464708803419563126896868899711735297302032182558490600927110055239920811546571827811653580831894670646856379004582737147225123587312723958413022157810750704038078665662579962330763372622319423345028784679974066951495169080890374779708049847489420325120217908724972651850130037194364977738112585876577195998737125226263383566785614868463810259636654915296271041409827187266825006854663001916519131211802408304156695881266664054164430261145710930946995346915923904371349116899120788221462917566943199207433944267372792085342989725125845212110468813810245069975498288357667908954639316856019248466074150648664727761793178006154247158655423295723669709114462329769379667645369130043073751789737186975655054287011158573774953968434575696148042849021738387342781611423333899134441542749783662901720138290305180632821883990498413576008258928298808226842958573040625211637913168048652327134476915681801437724679535380253114344329012944509613880920665122851675565941441830498730246748592849344685647152104928198207793759304006657886583806243886697747198793085123211524964738390918458516514260383781979617995652061744947220772587314127552938934665622934778889545202890234213255383986664326479446991900149002554821864662348915742511687888113713396315628742823563957915303091492564324140198043434148129561948955875799847983962763091435179727104153521536079397598417361149642291201488733224052222489828409949157232386087375844493540776991108436184644840035760715123247097430853210841219676603373907569261395456528462004469085863525472204407291154850033563800006659839518707004154373148094399898352700258259261055314973170914690711421048109381524073652310233598716119999793239065565761135238122866443497324767876328981481792539744474362567372629661896368433188912235303529443741653462172950515420139565936104807002146822821619596299725777407518495235233573700991483756834690451426368371045965991970426913804171347903843678553823729288653191072088775991128010379291587020159861136170444604942930390315859263094258058754832095501412985783574541123901446411422453639721364980846954918561087066787064391270886208604631351656344201221396066772923420861917003478326338651056444190944803938092812456324015383027595064895005142575363604363748970089625744227929930286195159138118277814436009954860424611126447332547793051690479123862010314528337064323679225483404959008938083345808728977213249891869428324281322602258095840533010090195694070186228749899349486696547746149284801150779499454497169282049814954491200985356124439036429081477355228734720184367512799276789300169149396712528723974169030505108592883020851264312186246215058488446118759177437533519361701452121707387119647654777501895725196225580931984486246287602183257114342626616354761534457650433517803093781731981970152736198044085550403158947330993677592842704914041023225999914278342615439353982560687298957962156533820327046259210138108965820233430146786817862336639946716114409797644790123830748070153883394331338557846023672595256582340826135483712426544114310783638753646089601628494769417989010851544628760762346799633723470698050346228106901887834994130118621322241976374490316842312270372827972431158889768100109461421483618705060790963863927104920773850247620408163186878556807644165622450823131745758356058797199170443276701760442021462838178575348429830626322735051025081631086910729783100742648783832637268275762999324868582590408188634243119769449968775582211524883523142178798739629328973436054123050514376848777828220711449253780754037366254181763803811871701228150270510834944212390949790164816110231084050153976005760402792327056258448410210496963307660118811028705098571089049845514244037050001459806659810938122274178892369528093403441136604062777165849122713108908558978671152958465509739729803312717513410296684215064457982750528579291763143733340618674676737723362786136218254004355885829342576691150989709901807713461741678822509302102270410287332385535722260798301940789547762851569296725944116265537268289297847098538146685221470260309571459860446284821843304904920104359214179056354078232524046159677377956183730169481380351296230334417478155331313646351677076619570414447255749652285277860927516396315195776717526271961111331980268478058550650200060499457867241374661431273353530982360407121908240084412517460621208904605037320556998867619805095249255799926099828273732597023395703920275540411314703251626873361257486271141361848056281912903045228584959488355062303340601442772957780177034801485805452040801104107910150666649965808215323750836198682006265438885433044149776589706139408929257457906367725028904993362469189184469937150969280884974949556199509356420781313227747347344482158855742270857955574006731277513036725148614595108354163335775809361413419955428751057451439219777358131049433300401694650086397639586153687827665538290710021923187975655543401122310970849406250759809448398488712637572773401552771949454426488734642698558424656526485162169356148264962202168319335565168611176864286983114590521442902065529084473312694169236871382787478680804851680637361527811999424025715858686963429336729635196872509646858846576507124823146719846811014256480945289081346007767420005013957942131975080777364043615927935128860063585932654950905013943671766209698278971254682686913228495400674764258441172458005683655902596245493658383432197939287326036169477817117130166523941788022412092155218961961641215189864311692036588879445807283911875772455177152686331152966103595517392709959032865566654955089007297316651168473040460286403746400616671049284664067305821210840562146629686522335930540336352316601979746460337526989898506855786580646448540488750355155259104956099299234560264844381994862424633411042683215942026393763064558283046572836915718822818807770842968789092833266260887507589997930968655991039813378955417642309246615229318672545867761928197619144592348853768471119220430140427166109794960701409766097068798483985047567313527563891750170967618394966037731491112725232024374505882991396148575415226295072714120028723302541485303888552669336548958858650070826337575260793589446509145389739511856311700234356524028688308028888719611810888695242623090744426649132666993085139994576058828775257117749539886973823818378147577699627879632492559834348867218180207526867824237056104466599430320862496863478200407166684336021856349366165218820187775004219418264389197918052155375344816851344675874221686162962448583497507060084414766448602443614382291029498132532025591594095020307664467799453319718488808729680752262534796734543198127791618419023399883024672646040021401943719706084266476716324457456371342936043830050652480550989741939316526880882851797959468743576540826664004977804362110368216625689460370411786769992283600519132508676407359423412069962116046794743564845777831741862429727742902367739278332589758984626081359205719860591656723751792650889794564487159756794060453807400752518028695152592528348346804747718975822765134992054363636062984218677046899559082492398299822406486975921622888781434160563374804463470619642522190208328889982445151691141620033103830314079861988926592694633712298351617761185258225883840075674438175470092917381158860054520547001775807643381056221349334180533033624845856055085456132561493637945405786721975668521382684811879608906337646428606599396088046087951063932725217241146127665665754530178590622475228998256367448198942690372757930109387417376189661785541401599414494903759235971215440845942409323557607642917977836079994655235592790745349177564559058963311279979302807970859933887363914092414903934427266792682303942467233115567620241493559807192449603573246834599589613770798083958916131546477796420094069298508310651716088738200249566261583905862919174556304016476089391195470843620013956652052031764442608296336495685527269543106114144337928861758435127230588000962445599971831922811055993711617698901154683296678765664480128073857647613439676185027057004891186475138605382240721600962867508059127352031123846234486045310603799010692795824058211635149625528548342045167066349727555547572298136775218172718366747162306345406901080413540246391132186039485538170315958589875503331712906305229085880718615349896926730851013863672657684589952499669289749697300117464892356819112568060353922946146533194564216019594908175250378507604526217798920375739926711742840064501715029422681145233730741366754851806027323589903379609273081981302944189606468037614879797655173320496572018291712341095540764888506998276080399368408329685749969633574096873602765778982232104795494836639016309479095582381648019476228714927733820311999294510419161772108511741165881270096047705130723591990804640372308831059378720795488494430404861382104585308051588519032271182710937079963498967972022593647122986685602982032860774162181970397148788367803311929275341172918523548863137955080652413171960138873516256067210543452314063767163597339335759206863921292404143197223146442976584152371616225779175595799492785028343794510579346185245682792967147009479098532372648431079479815512481631762333781938412248026631193514261437140556092072431922963634238332536098101361612498630052122673971692366252488012778998629036516915999173367001680359003331791388243873027552479226103261089197673136006132266662201160405109527019334888555739183570902127139565573906067026075540615164712920662964680756803328056981231597375701648831631273939908743104116951666039971515131393149608272458699511864433871059873027663246339703956505766443746351557360670580669839821696039990607766067638526647959170292418823377792444442332253692869076369712054159982838764566743708623811378255721578714196781206971430957100462379664100563919634445698047623801386336976183199723229665438793499011034849784344436798948231376662074523775449962671009046986841196851268886685092018329115148248769454183941140704754586234754443747984700744484953848845711143976994947236016532124260134934501032283603487779956701733144337671978833069235497752427352505792690068812624380041201421865131563646628057921766674301546346249990937714706168753148618516510902716429881367253496294567507797061295772638877805872889286528593930457397088534369637629012452186175066829940135524736985392397266246485611167264873064834186856798111434099242089502715647914079278495289316730444892384507500769816643435456148375636061640490771760609903499049850565011337143337635699145760375504425902637435334898451012110635520224435862843025950040157249688240478652658931814296524691398985679697268866313966737363825308691862845961866898665769040253016174586728846564642991509270948924425560241729431262510285056551919282223880513330424058952794213237608279864845863886520862587746312388989046543961434182412652316139846336677528095406309237708574792693916096724341946786141956162353081783410587076642378986751271285612000184015686230371411071193367908449229584863037949494045040549763531222180045523265725113514751811038762233516971993299590502819478903599506609734599483214814197564626664240807511091903350755958528577717949365527888241515611403117468596782962418622698974139011528898173945479998935419163811393730790057657397343573640310488487546991472496956215564761363770464105220551757299104992626594686883266369484039841166534894405793199848596324436791527161928565794597161648335279939350044664256149320038178265931139620585882155188981882214118303846105303262060628582791675549693563096655599726537974438818000421753399120078109640725695704522046470094627656772216202596889430117630774346203469082658633319384075199827147110080297837776878207876375022721401255205805911886742093981334201098068175597944061063850566891087301215274567284084741032137959519297638521153775041124135171909846473250222425539834281809219791685461765966895051754566317151660501850717333069564398401262212164724679383357980604438101201920524477092930208327073690104553508239140215253358717257583261938397225387223391613579886362930510416014998885824753863380986653128487070905998003408928296879505501732012336393574748841930306839101830660326090190820982435218791572710341182752178061215941908812185554234777094668397291573522886114841789502220966298612604394986875865002089815281358955510623869150120922417466221421918663634553822505189843569616646972971182442322517367158311101309164020379367865414092605995395010037879439623287173362075482354984921755929688849792825059255124420783230031367751787244942125523046065958944432392761172174644030630339514845740027125146398797438801379319022560046484210323774424125293280688556630783412828995253267669207154244364393240172957515956605828627970826760910223713359460629950373816161061359175745829443608459016870153666160446344305754854157309219324737084591499157568774181276603947495530111089574618631839462390032361932595212703001780944407232150732874937766393595027643330744707475989289586006759616583036782680277632892621681447666178089376871222838326764568596893914502459700397142946684950044386751446166298916175620661248904434727555467133339852098293063760450269136226236618245802408517402117003336370831962953269281184205237976323839560338377330060869157373483980843068463114618895561483641479035187195905315520406292527443941248368576872290546910595998613015593564264705743176073329557684956745384420209590550036958777676799603006201047501810489721418352489251281967214234515202550799889688949769118177386043845427686010448814073693000850301922536022473590198191638269007362581826722522035624167561470094288277425483088874746461288186672078379854341248616049507617878587004900748568835897905939060674160335478167973167896013635987340520433842597547195831427913332717478511362108868246202217036382714408214722884464681342521307676832043418370066144917731167164861438821072415964055178842151089009238138044635711280728207001455177751817422611103394702682851113363595203652488989181943916389220910665162015180261630780917947507707897235947749254567179858256051815004922328919871898714092538220010735518967141965679664362847224539618294917220240008915705006346125232514029283091018558289291366391051381521269164298379095752134140509767430367169694088083157180153342406729564563693900701524113294804616560708364926473922578459448817880423916578661530229034441197130273683025129392729542493061929451598311094250968863807032610374110788105679777191373106139640757403747535691728482565803090410042714873925171370358884923456166523535047575031600726333070443758560086440753968305330765444574920017056745673821791597104542852581898102398701665410902045242145310316027353061158549923225980982757862313757317595528525841501617432757652827744780174368269498185187640541437073081883551730059742354127118457953346361594036949229723386432391834494208198725064982226802505672875239568672451060860501464044542345636949847654334651211561522181551751424189507022113297155118340635374664507440759290165483853080235817447955273202702222113344064288056412902835017830826455601439426590551644264130510736080461250284166097291733289376930300439330314193854122328806980915427148855605032312856869179379352350623929400746619264234703864271126631824506413590198302629661679957714737336259803453629789752063897595359041014437313234505921260321827358640274995982276438006064790302836379332563821377326049103269329261961498935997003851887112156971366037350511495098544232485738836758763503474950182817067085456353895300815899896739171627495609417021746818687681100549343863376709882530763572615365784050080953028188548446287597184230969094980874178871878275195568038203382686555627905794842374166421662163783681231732503873040023961945231129464071145124658799816651091311945825052434904076283417477468531540889923413972018799445007018358811931960101218031400732627367670825356594939825080995226473074179198073474384022222991287192091907753462704326343883855497029179566254813433938829613497866247724606808108949582150204684959108233236597308376622633683776908506387730163336906999502890334637956880593191827062081987189797120696419912985612185901874661525709846177344124034380373004538262056314398930331126658181704374735842706606405978134688660773794817393293499554600850165668866357365611558254428329409157241984328279786056334574123441686409934619656825445176653467865089062351736751672818390864326745647292767166933142731602476856476812669495063986170209756195771141293069787831418579165835685248986277068347522762646112305962820788788432315278233408675774172394565466676544245963195375198816401507890369467370380263618163093868281068582471579597548817356027031769205289401526218377845338015804518889545867213792338389086459052323230026601858492634744432606798697486707560050321122230476039908297270744876754480082987966686629595591393280517446966005079389511229919268575614312866678994200474037403224902518903612713757883299747120442505172855173573621883074138235367968537040857769108781425894354113615456249933549663502943746497595950801601732070898823365765622377690299562490042846534737183475291773961264527845294242256093725691320737612069002803777748062429991510554108553461022748684410204131357012857944029862919318691826969136504739403914888773098895950216320327266747008658090736365552159394539823333106183057736873893185094207105631427565636197643889011455669902754949075202227485927951873182394093523132651414843317160244854988299658385222605464473279764591946563079262428828396205645843769411077748727444776802707617799284572192936558311779943140089130721629374378550320737022112487090550674178507024654029955300994858343836239294570516337495998905173854261746275501833932149594087032568813570344213256577761383478388298955120934713096515037158488476153231947580709434611715660698208229919118913849353409808599337337444962715574697858843710837038766827038334570748810722049762402542666906679868143414097291165187794768500528925565340081112303310281337655932403677784209042526204355838562334469812705837387922715972223124665689613750058179654720468327883049177779336223132805928911320712396692307477777426353933596401835979207998023701035827965418246648270446678825315283216001849909128445867519888018206233860003674737178712673772319735401523580717326762956502140410466530822147652340264911102326405076574955102433394020295935020268830786293273229711411265038651519965983053927945696711508011227579289439592812956437045651281643021970685319592300667150858088329596030600235928721549294226194248834017535685951646146460617718759710268545258201352973379184099218543670770507070422263803444819836685380375792724756162678459758927629232641788092781837451785265984985666943908432310339253852778104718854810967980390552440577819932406663774722685123326122994296332425758850973042627723319952256931568822502476648505268046341373975003081666857988340924452199024156317615018651979224970822738423660811836738038845264086170385238342094766530015437299498242008398982048891389569520192732595920427312299261839190081268077942969043413657191547692913722485149394924178709071047607660384779149199010350473516743468770039313403792984853342090077705929697870398010315638697948226400721853139520969367576274569214979290251675175101990368310896421988015932639124212891522974929900307888637237720113431248756714570779557509778847798739222836241707864928006290799870956872977376655774669307776488622196203351720409852187454073647364444908951893053002374717335314859810712834908222113326334837724770089768759011490973871678574828294425343644923683814441137411755973502785972340851263712681805352063211824048514843216949310502101299588981434069850431004856598602442887601797649258859235678866770804052015818383385046568809804210663274225840531758240940477486310308223510533807380826323552572318068964741605362906171689682082322911687179505424402972785892656473005663647872343311885492553007072902246854811888966635524999584575284973667271317716948342553745690875108557329719453562133908020674384969839206038204761282627697952436839501498035986264225597679004821451167357535705630561621822274385477693999968600182535365099117308381757819091614836491618473483437999972532025717878212842745191117259354033156565664531907866521962351729754804982740856890469399818665543672402908330427570672922712448252468841010447817631546847493222997070476971889324609320722020444653800247904750987964984244493012904298273573481786504511405696273740589113053719600698803018412823289385282407804229219895721818135980410943549803290724103125441987091766536304988541405380533454445051663561018607382201555754456596380156135757004190156259932786289452102958472812499245487432930081029074276851353861912141267556446241414770504616185270626638980084806951673711247933722493239936888281753698886262092550925963987511456253021504968336137222705347431397793556900490994738430393329937193052862771067677767277815004441896414993164751877434155684249391602461561859410011343119201663471757736641846489788322383603510550669439564823871881075759670101204125868557435734149137282885593461611213574779942953732834069534254885378383300453366259126919524447899977102705576438061306724591124833573028902927424509229855015655691308312271016156732310821900289880587724279217429588770968110875380531256286926895664951626232469397706222460195478436925790723738876725240246701651728895881419223508789450175932509497482317054338865294714761712895313696076589917638695649159719962752155533115642434541385569833570830703656701482962468640885762707730883880124431542056151717684064066094287630121578471032630103908052874874981143275158097863137435828880137256921355180413029055776586001535760675715610660622986544199869008912577682345030938354136685822428027643777104671211237665119112933987389334878411965581496726511568713295399371298831023108800399956649586050865663785250006570576264622816329724106602505134376140786988754006471187567670279585731577769423689037301936121524143699042907284670614365667736304925503577783615416391984818928974623504191875223278751196210764358792062017151622632102084202561724332121427318575959987926565008462905211179810437497719069241321939061532611011200633895451462349176285334941561351651604834180564643782941852039307852755558877754132859895166719013346971286332415103646175567604735205043553823344541336900282815818882244250264954860884841735793939032016015221634335971344345163930192486293714645015257731112733180404873007984138370117425135539597985289787907091224925264982884557679627874778013800066135444310379838637010045765377501134836120652367791708811604864242032477453385495943422243869511147504621543239104633178883491594205642989266667569007243380668000740807836785819754403759001048541194469966085448025635056203341303142943662829444315095915996663833879584654559340846893989722368433351202829080536835838949757150641528858071363306391136983482079642387574297272478147187431069241099373793646226785648745668062944249222438251546038667265377596811470725730845163794870104816046142908968552580576794895481082216486211602287038615895296861294880606383949777122249370542755999880670257932208793619073513057420708819612143380225591577841391876290679346897830498952991873012645457494212832889008633044851528114590987279919465964102172155722114524134787826692709613230891694076926660428660072876038586090816213341761028487868972120135931544602108537657079547858878123525697621091845753145787202866425375453925676346133157321385058323835316017218814216110124879977007039516897966217901983679500465166191264682424451372874831585048395502403136200422968357654575306067110843436323715627349917809435581660668324524990982579108505193026625665896989909225932104845423671138105115539179530603629550009434585664855044943561595829630709013082755573388439190548560942866295827830213786692347584494890584100192242370801823141544686485454396582597504659340854529652064486054567226885943792507153942997715679770669200456880042957326015917302030059376918606595696167569011775101754446879458331369756892373993047430518832017624131995826034217441232786034418831943575771946339259106593826845170701713190251975006829052757424194820476962737242907149283281779645695630550005178224427816617330427912010730924881660583738124996881662996495948500303350887154551732238645050845020608986666230982430951570013165677224999850444772247197869386650821239711972136335093597755722077926088441824767650347012475683895305816451406652001231407774871407024924594645668128048910298970413139058762829721541066145039858947195448359515356486546196419251456258607283814106326941049794293920199963674993287850040575126006555844819466790725893632828180123844822085350195556775630231472248256909385403630491062587069688303385080857151282931874576857735414702183841660366087834337376946849106741339838890602485022710056263857718384894550036101843530039623167350685646719030457534844921425876251297809583587582083121075999943502459325608376625283281475534110819712523489378982772407464948763072226045025588164524391651106851390315065627858590530239832838570158697666952797405961835354174729967626680138646054759427643765782307899446418584820653776472641846574525935739518383201479680398248232956864354184059698969018663287784022132364384574167183207171653768247435058516088985302235743365951113430510403292316465815345912028714231369972622303886217154471863479057404439333960712595775506462647346657700790903052689125657861941319295936953918490165772685994399266121361991262022076274273907713217856063275983330362458137186533206410717309964323326702847815129221816179171787197556432573919249130551926149146782349405036766808110366488287838686922538909227286147602905687709425219107148178670639853464122891432354796713501247609085285856779209693452020556984109854866029583040492475766219922277670714997495639936955159160199433375460296037630889250447980331495363803615651276982726072306332008139421172850860022986462619655093220682285853519507830194230216646341640974316374325078811481322590841991500654470475174061847204439816103489487023978963876289680310820143498361935038935366653624126938798973377804226128838504333853694544955948132190942630791359606455106001081400496441728750764109219215974253346408774627996216041900496323817427135756745356504355944337039528039637575322081747191518506404292688182110120736889768644059661139377291223207223106178882857115816853375102150390994638228936618248440897832934279299116318267128977521868325024409543914016250438760021534006873070115368334465127845234131419694447264889280184527424006526218634984869213483325143522106206607872352575500795254056992019354500819031725213985439027686427894488320798179995769478602153804659308212692639320527755904794320603149707041566156155446309459871927126276623754685883760047357215861587276638826348770158169156595974521337156530359760781706743344177576448727203332916296226404624775922789881875371468272514157407361260626176564894722157348046695134596494317292827942340236634963850281913726253994853610223139768233749236660536618986720532821943531829391093533543971605777046304323526556962325940729043190790787536624051162110993908842138123578636713369449428165363774694180297399924357295409507261200725747779954702634033544298833850935781657695088901693425548788111095616734662132284891006936364464578213702531561309445341572819760079423150060683209807673490791252692637543979475829630530500040375856612803388719430559588614346081983056706858191862247573828519730252743052673657648809624398569258573745438429314186360197759642319283713161242860374924208881709222881962470505900041483224481832111547939814379426302021249800701171180019951262170700040307877459609187443885706540547906441516871146511321959285409308972335521820680522829683856329675193832611658705280786445054018149324894163971635821952172191366906578133998967986901641303813594065952194286031194469191792659572755431870069767355874187627676477681196800025510133094449443121073817737214635243078251369255510254958281329452958068645161275636701431381541227886002664470714106059323571199309272056923842197846584672734917344674802254194105942897199938523463802255346273001445019561771289460958892862456619864816451446641244397622554163990979181014249073594418962947184256777809525892398982307362367702827861532000857802585785762934540174252096213009091552231799075401096257709285307153797611079990363961857511905637038774167972546111348188925417641894972676347336442894171875510932908899927787404624292993173412200615527523682732744164271580664131694763922135314331269805637524703872683657319749821408463338526209184407821755894218359402839904305380038636430035801434412761616680182572033577668884559441779260055723884945016376590863917964475203311935385242233880827230784139261377065547987235220359111754317222497258222982081951813845026938572196164263176480187874564690139908451214506387332689481033358607781528738252441481042576689391249490929031669727941532385281047303248507806984947861835878720431387927706923794550646614089526745390037279846503403034705176044040814314594775752938599369333755218745687184451175169400300049782476798827388754423948925073352745831009459991273704071200434661694381733773754224749788271612854609663237903616718584677958819731565160443639744483082838813219086662255239251572522440461484430507136583902579694659371081413362524833324874749984116336504844753775433102008667533109690320303912205053961493054611894689558829064575820767809397736039961931451518486306213958829117282066240531510867674722480300651077226894773536893946652420490474524425381242520267652168259797157320032255273828719751309767968613600379617011210794012673283140310442117380412443233842275674221015896957880633911887844037871651844056102599502095997159670731814831217914363330606160416610348092122043552204455599713455167591626419162255479699898376984304522797530409974024595583798704310080538808677840647066573326867885169165982859425604024437597449398605082689050672007201728995912854994366494548937415295968683022709748060331986296977299398357695531437405748312803740402383617987310237606749701331255630881108343314451271314005567784778508725975309480487065338786426834496517558398658772466699011193302759286814825197941106200476489278051015794730176175914152175340445954805680270517665559495917774685646948769293837029254695592393150763335855326243800207484552868808755938820971330662587570296389339148708385202085655174475998227838624971506065793148168724149355084201817320841326866041966228751386677507963306262741995655275393019879450206432417760307982766643685849046040047514900248370952550036441888231129321303999219246517459169113646268536171524326642666078895413110317446701362187083646152914937132498424238319825774136881159904532329218831477953433974570541343028409944148250507675226374119615817854783891946539990280858040162921614546477772382195840330945697769184599780984424752917486682517197518329897171197259900963453285836466617382383093117874384538363898219043639780751493317073171202031805045658712855148425891232971955520079399890926432432730230211020202557961540338710488522194802275555558539190094009311770967833223464246610406843591631601043364328593203042513096199796302404613249557818105953968167486008387104789880195474974397867438586176163159598865331264389692493156872437748235610612786385793640622220129220172563025532636896894842255057253516343320686614864967693636124376816155511994430125940686253085811353613485126175086993109092183575835366384901481750341419629570482092720242106008059704674476146556054164093298434228083433859929168782241359784801136861093277141507905937270511973046035645974994360984837022497134131751789980996747457486792636179623220188192915318523297396108514613918476468344630604964937731418612296778748959580055392854404767577415325041965543735374931383004808826217115186816720738178647356554828027598530778426504625658201318196611330070258370923680013259786972511582466263503377754881403081594349971038805750447509793517437714969589361787006452394038915407416147726147001914674361844080469131332470851960944834842679994583205033839353922778664318671568980982179336079079493648635605981408507706097258253888320628565914686889028777757401129760012342603937085969214742720445341337950281520123316502649868186927483678808947229887232564892294886695557604112868130036983946190768984720396005915868001977613856426158815628908745487437162511203837901481987065416955832357676749073459757614327257847606710121288983859623527029065591350350540264156395172216291337162501923018930407892155528739967027290918563266952363886023026354883245915965930165363092217114261721530986956973792976291958329668748290913370564074357426918788909910393053495464550759429969334970618824144576129862683020555098843482634430616589639723826701522194761997733145468056594822813634023800940280193905665414180069580653315400265935226441942689423986479089543628500737975994381702274537432041380158979492441185907161357104934231060144904460651007581981880040554950129694595630728879564062647931572092594963813101548029813255520327909367260901085628386954953754828484661286049580562430046748935827248742532424268860962850975303070414819603193310017647442062047444358737627518426035880980807342644463367169286976881366489745690588757770697936457824538261405387097165836500258623096401384595976776905173395506621996256785265965350957026275575081880801587611847415705865145419118474508526876489826888020388141131494715454216486258378511089987362723398918080202592389655666645617071089739935282003885821324655641021905266848951963385838102873051666585665331231396107970963102544496076491892024499582881714757934393693009364878432719270828847442294639623296177500560910087709026730248550185101509808649427556487084041284775204484051801891611200091427973311369127618580113748105710324634085136898562958891490419729883095400889370738578824823711833425067173811524492300931757669593362207760171818960829497154043196338274375264685431033374562002981553280803637412088656877778047798307427890163466477311190180358200268650384360750348140426959709793481250773502375568447597140467666730111334407004330409659065109708763892517660477253525041800468081419241802164705579032190223543136145933365747837845723262421351596362573451754214828886112024549827825627448350641152825162423217229203762471679630547187657737865157692717047293265192418136202009012692474854903202704784047523310573430134539696374422256421762426835353883493486849736815356840818459001885849514557587169899261889965839437997589179868726632937664888462841974609151328851223889660777406744961164524869110767932675681550058856726187497436390439589260613743620504586796544211222926595245449839962544574029374600665631430140272368402228597848522120283562697596451508093148020590246912245370647555007513065161082407633820201321361080579447874659202832261113157919207709221873184043120612272001533921459586530521477051618320314295927812022209447842873608375029943714944897056049627118278512235236176750011780333357808816702054726301287385606739517484181952395004913046053425321913731178031115739817510397175783679333581034216112844187666111720655437915339377617074710179549982737500252023576572387358143908340676537573331373743284135928973457617331530137389586579044373833756221649679849793819810008245932527401456600549525445770798385504263952608489830113227312677506769089762780354738912864231046344756677836824566739776308022950195121619826890604546135562994956858687336798861007883337646278671059591514973229421342191977595197570967722627846883310891012168405399279065865421656663309584357176608382277462804849797939761863113420328462035201278981548851361073792670499641898367693222587081627635609690540744184811625064798775079237379493592405702196099785662372489979352776438798534557424863348518000953322797420764312441224041964517392324029939677767020762897522107311537451170181359180840166404267726241539554721278991618867927290955485090970560171937167242190062387174514726418684688817596259136527893193970336461131774683225143247899052703289145321935013486678182322400078168476314917766513641431025039896372157688996172857477253939591460568383472966787883130205708192663545614497355124183460145415267193515220051573418146909464327054597350407577632077838236745216800885503098256234378023126692232657779129865619404525687427126143050437016719312779350191804895501834072109719654591055878575060927000540248298415668785352220572318252422858818852284239447302219261395238836030607354151169901173236190233866929945101336870391697587286605078269406329156857410800401916913677535528902947431829271405727572761399376917057224006860008834083241788733571268081720861158107890186797565332441649271433078975952467855844429756064553679548558948426698220383965724260349276892614406108925665315184468560363862087373335360152684078563609887834514598132934640760235127836645631334474494938134707876440323482758578237656770396444506264592446420468671704237085058127077181889068608299145421276704932860946464827309535545888318654802925657113225771336112989304404271966289174829680503803350227878878265481180254732803723520315526230277346137177751408170113910895542616020439624209714728634163471422847976719054384200907313695149421240213018451679211929255849800313377099853101566050963583188968278021427846381998756173638446714475009815992352498470763585158356767920342628848657985541050934420149234978300910230244407206228554988805158412300744504052543043463059476518149343880986376217705044573898762407708899570932193798764217228321829802073728187045850203248406411662970160333906061950509586801312131176671361297009937882244007349214729533904092815977041858964352731761944535961310506545715173881681417178663317316701953895496644214092555691610395412344398371238010371014341826754064174166747024782307590531501747941174089478360837235514907293150041563549115050376851791120855978115932065202482118030934611806068154865853269673882342813973937297927498627166883739045141521448705104280297562394518187308925125077590057328867662879776863868216678818889097373861979140862968176632961273915232726951773326326914829554151003049503113734326789398964550568100915807189087506119699277168851246946479802995330352988193444523026655150136015304877306950470637382269091736795372522321837715183599484934614146201275124173899496067161418747205358009680753344966078354996080786885843549137179654549101925488447412820284203546542112979439691993189339593898822786376697755328846958120883068028046240473222705020887385877285830088982752669088715394977856836619755131411327811289261714275343504852135122579777850221320370042928421656882834475681145116355025537749139075495621548846756679313700302212872252619666109914201510375233987577646150428502608177161279042011997025972291055894593918973925996955322108777419818488781161452533441462633556858076887938638101114555517195347338513508050498492685490128466534548887684451204559404702408885828162747582308385702016606830565386367463289032538491623420539788908792001962764164676315649868717834696480464842441936416521403544966371090793876198749081162410513641848751287238412579278346511068381939728008234162547452341169121620191970123544087631846560148558819349735733730016117875234263153571312974754677452893650957754348977007345672972953542389769343729870839991883292304153419505425039228356491217674745295592998543881315836970776908434765884075773104883770002662044619443041871363972628736283391343559513374916675580027508533240167320508795354476012161177272106967859659595118748852023087262688957070611783043750565441943237151373745803422266347191079471848750160082106866715265750725724098953721510112359304277733285003404857309450809126083349139700147025992169235002109534871177191132969218202097477950904086463520939076968323919620988249054499539459003330365516906014543734084196597222233381086658367040401148042260172511717959963199108502671989909249303744477122553710107825180369723192374188603998964592990947800890374367847699408663338139812413725933153403296896548451680807026193816827122354689143565467920187892418665447117568496567720785684540859563579518218341675501952993520027365113773935017926635015455465565391743432101722642795447053351868255410933296209250694611353428757388783760715826297967179612424236369896540107077029041198727166345058021226151540648720800974228356410875920425388041544082024392265063508367704058244586838639128508932516358172141694011259462088050839979296098596497418015515289855826548131741593142514116065844815333989046187558617841734763570602327650044126626210358195825542181705050067264257051772430845326328048165200815761390124767536059314220745977346409196809175942817486671046108355456294410209750129256742494128485607364891925070205954912189511763102196516840180645744944029945054931059160074182760044244522004517261584453869194907275078519897374390217113486798984236875367287428995077662699603190199641383699455818062209620814169661104538751181848849739980278304986583106103210552434095923696715168842133012940715779446365887506828526545310240767882200833625504451176001494707991923158164128631071380097596101321045648782731060945629915870678217801983402105976476312892258166725585642338150200871105214345999111336811673477205215490080641702260239882355877713828354826288018071724497330942855291658559607891196643331819993120287606058511373877086477711002696100343928750408500697975505732455797027656779852191986383812421708074675672990717112845068000514870628775131699773140916691714894503543502457289333834338021938218716415701445243417790852119866027080822282215919546244412084848550899997078692368099524529242010752774560028116929291340912804059188120303212431408236440963978921240921444305988463839177750785404408590112579677659422327424486592847856475801174113094625727564840390364880881355103775897234567776890884421552348079218670919642628182884515342740522957121288985452265629921468687003873074876276835497700754329955971015376545458339788627186203445990163507969976779505004535561351270455668156098883756406514477648646073583434068642449085034960472258996247048868540132373599127611797774288567603526465942197926178630599945279974405869096888684989765201195304413390962430763492223083389116960280983885782849815368139923843158571412659418814257525688704213053046968076496261996088800271639977692382350937851281861111242754439082285315377571408877130411647134484090207506314077997356007613426075640364933314128314862196097490863270381264293683436160486430720425716122698993799298064682438387155110119225057177169798930856865415785376582033783580844531668516401760539934973120396483518176481828162441838489187696701949435009681259846573837623772079365980320250312087349285984844165728477000496663234111404609420425514152195354299885452751670337343091091068585416738707083776866252928275326189766503398058484581384935339712282372697964222493342267164936498299874554979421890036923233820265831842354075304991096383854597153194692249956882105351553261096926081958049077229030588704045676075824980714634795116257282617030703930833763444103440334735842553984961043300810048483462269933979516872608789883363249734722244780479527399258382015465029185595005819978991275923985955504286955503629329334964786848138349813853613819737857488677165627223816800594082626755871874132348765679789988750934620988117345038412564751163116724118191681055426910229760871777071387253918627576326994817808149398493175837739723693305642641253302498457527343312834290537880876666338832365397832082056881695330216561444321361236094255242034677889471197195615192830833095633169935857632395020088661602700986754472277683766189029833459226176906570575100605922546718348581069411545101463881347846155884268270379252569674388025426844308846124804526623596233925641747750145628462848619775883723011924963901019960080997538740627272947477972902118185317323832801935605559372145067036484833751729874176236480981254212617023843039687956396448392213141918457499700997122000520157526156940051557162489534319033459284904782729477443462265830261706670928205016130740561360426423058901578030894315169606786251751480443151102484205682564261908293222782576293594914207716199894486911624703644773705219145722658584385451614762909136495383646238576413962894145898209679930426882040413320527733764527332661682386896920712390812204519318382805109764441693827867437849902858489039388891839196036133471181417659755898435777083036231535322020612891712986977314299376526469218491698827653736039535986677681850043693550778025421563356315549806393864064214932048892078291867038061026393121440314347782563069713970073673824423020607109950060527309086283611052509807427976742883789663946045850554954864530170753586097321065597998882468403234422705732808187602565363862875670680838717371532589302879312622943302986032748655611822364117300781974822344299701954057767156791276038440415427162734405429507021754980549995504013349783812533911594265024407206320217388166588900016943755000994495576889076978210116906122762471021238471939354474910899652647241343262958753546847280094128536690884999054458133660904635376919989959596029116172445095133009106485643977416426081662894002733726843337261091620212022063676209075861403405827933568257860345892792547842733777571094911219016427213809288680491180364206684481913049700101925405826012151298585587399557349430132185474133840314786219490398764628905628776049088103630641511957016227722677460249196208115751171717609200113486841821255653236560516803738216610775570072197898108325727328292582640269819510316639580549546978128002950091272215952797035014563308959495673250808005003250578431097472387598382679320868094231388028735574756770728108664254291038880887345468061106130766101281776748377784060492416191569682085622252766079359280275043535291931137209187214505953698840211097292990576532805287735677431943280272155456673318311802721016439251451686938106024162883927656500416957638392192403284830750831485507827560991535599827228086688200051609967098785233440786431045781223499107607113092704019603859561060284842287371618473381780050142187090509513917424034429131383772886024037768146598621277868760862375098862593181111186404517460488569969873997967996718570137952500366400870773447508324891303579552586400051113745971818468521582558946299039060474110377661144386900673504440588968440750552238641079770587085399143962073276793832026858937500058084939274535695839864064985801859073089921374304233862443659167191384588339895846681441534764584331384368200992624093314745680835858470051127229766633035331582609825589313498757045549282356047951757880508991516926194834982425736815135453702213442753145115689666235856274721150341077076091946468677645681569355982419148821300746132463796782093571608731160540903232605078976724716430937880415456502464517907292961413946936578553626018303192127131224774758179232637125640596783196129556826231174579634058761686423139091089969631860689272238852980415545611685865869396587349022851344725330126920526438464738646393781626077968649126138061083949489274553369528649855310086531980682211266488711652394591349055732452563133447053978587948681209422763983460809856192032901990770378444366936146093694171785095166265727262790492261791227860609462638036663873036303096982615559609184462892647455258206991754849688892872899262020503858587233388433864995280624596662061262740623645399543555304792301223791356620716290532896076455167136749671388924490796266907147133737458197928743001229063669845781490332491724936785988864091536613107037720371884585204827866274829693586957420440604803219232163307907645222832980188617664826303120587993567837086325958343937452890314745696943142195552411596493906615631038014384614239260577338392547104518740338629770956955275663483642340327787644640456106052479719677563512711108715064866583833939245587638316869963064143314578711397831089767075785816067637737405979987886659649871748851296588034846572279874262604379329398663987149536091607147457286208757992974070599060554946052615311916073038759155468717910538105692555606079674341452695721781047611132443012170756170361646340943734175153575123842532397864855563457227159076485900916651881836191632695105264648646634234641860600339746701224582633687868518781122671095496736878116942195981102605977147060244358185715597731145048172711715705746843495833053414474967564923659050065356640213227289477408685036982602357060127737062925777534301523411102988993820513055803427648051642924192902530186913351616814038019917438785859772780371653649059415392574421085119351206535765269394109349865729646093119158551883300676462349514487327300773558887763427988943434586128868042226494823294678670506278772292763608524034104698516727658473385470419761467735386710686400051329061232907863306860760892092106361936860812458785335041905796225330612850621794419152891871168032685534179824141486272303316655243931999262317275348670609730883215787930840476810255898462153752951422303348132262978063936081394022264159349039243820108078383824666396153113195878533956856764404071311498737455006721025836270362171345513562649017286694829472368269954364626075852968448104370398053861135213295111405560082906010635643489833023053987610383983267577697910438819007413818271690288165031752847570315288749853776243847631926227047983040681313235390216096954117921232130193051364515859969111637746172191446140923884263236291148971915341152519573908251965680457415176748114236248103148502724897190472682068568890288152550041230272964271127242200152025475955732658385168452733180379942297729340120655397292634611471185440977547748057133076364607675816958515015044529527651835039814529325266244999259017290971358413915076162663702036625794270086694464354790275450546563151881692377587527014055690637906266656604417820015536718358206846049230183746085012000348748593442237728376046007515286325569077882255886307397342551625240179375347410293139835842312253106888862904269547684189348134789587797310365342452391388096125325821780920597774134714622569106621610785734944387180182948409836076926778571303667303198801093969641006623744697233057623380761211422000190975883681748711743585528668531470291438646457845365262533777163694682446676935281472533661025626496101512616286988673213998728531389760371720418037960240310564935254776510970268264930519533552430187388495925065670316958215865402725915509941915695717554775144467115739357692099320380279787600090378908183907331784199788416791739888284715251792619645447434559870407999148490757632832200884743066755804586779947205218469029254538021774878408633777901899404387940443610520211386382926648548700134385047562738131259532361781680047446740539324620921676043017165226570925614499361973030196746363689419740890304512016023036912771189279007222370440699677928757730515107830180366096297971918625195991490675961646911504875361753164230218523851970586422973529810837452540130608678186901202354142339940647110250495568131810077175844742905404600366385754910045327290601398942730384302616643528080291068000832057503030774624383918870838731567714980540508083364953729120392417203886302053126790172047084730233266759614321480107721346883202975999727991107709407555633172900096582377613022956803586320409387520561389435157114587492243093760451447460974589428990858612545199437350887269268030801632119819109762803123007092422975266851668324953760519292582729760590096185423770539024467631112940853182295096147683326142852954602396156090377336161304373989059789203679223172470078109277121621436974024143079872467885300990836186467257101195219069982996529324817608531085763257792160085966749978209174577317694491261381871081816075275734262871996141947583343998768698159280293983894677186441506597556402338694463624665766961391270369426437508123787444316420193049462060512331615139969498814753496008864130189448572920924966633906774922893353609216433049054871632662542413927117257935527549199635375579016185829810733482506311194475565854120604189455226002874565413091267972335197370863547934543859315664901042041039210968757231117869300388718165037601902677402992681856620034544727728633217090755983536265196480189356400797283086776657314489977904699375795750966153748853050201795125633225737069172622449237989881461201753813055198520917688577602073227031490802611668858557716578930347100192179383536496212265999805731783906234581300108937463831915548668711359388003225255987379750182962643298899226503997169908315827144927594246706857251597980356562830432879670468792454448096665870068707732745975496883617090096493928119788988697474586195994419989738054680450800180824492464241362465010819554325994615548494337285690675893214163773199361222064209015058509818831875944520969903414354745027213952243290769095447098250575719813290974764442362585243178853975619088390599820960085567364817131074982245862990873593088706496637568465413276619442452787676895759830798313321138087849054375999257034348143578942498874497071855244372331122759585565102823349117421495151344945923975442730372553245663701522288839571946021532677527803073797738186447346255510768162517075686183168016214053188130692881405563100881372689263911313191758213994897672817149436824326741883859643604575661353011592603083771477953292860518576518413117521201888838068418840626728451258885490254886330734985678167271236517434361573455797279252766570310309507861844623079150598577304740664491914997926988650900986350706761579575420929672043918011618222293795133275995369539966515102357505676329854413768874988983077904379149152125774940773499922472109918758194068829142419801881716783742950753974386116050608202961933878086529766014968512078896408234763043969971727115228140549487130141793731860785488098117647553568769341759790632738714325547561846013257269643133816155495825750207461169007834335098136294880744681459504098644460248705897748728555896929123566473706551103771793241776449193917649414234208503343581526710071558304928327920041559975022390099543868151572300515434906513505617864790390702980780841522738790205099372632763157992373967504816767426050677992073241246675143975912772324621746307165017722457036370971681517753980790382004197223741352003241488981296747583648364209747893001961769036340193704064152461432176276121486015189987241098872604327063492517943135863131514596681081347447575938754364615974780250983981967886615977404131370073004329441159758390108295291929239428302407811807047224551965892884969026262150232557515480231478135058220022674084403053975558894421114963425901040324588357390255331376471624134074152750293941058901036428505010574885519737652582333764590757445424265024760473289249345016803115839210874061658399288023996265959737539263772021842564211976900290893565141243713056886957606649744557253942282049729742592284196711616111571622139146302468422800502690139016036868086560746779268035286583740358081028049313119748617349636659312755256608563476607814709327775347337447361813359390015936360444361631329687604225885500439315870295480221882458455171214777896624869228747068164734032187226198893500692876226450651535776914819868830931322733296566271900680557816197880824223572608377079516585748305252779831172242175796732565819354589043782229336486869401992754059159631920480521526054463842711027222033514882673033617424721611923453237126196067870374067055688816344576188956327862016008371073962771185657420234624944528557598954430780131912815433037122845882434883392133397615173394325244069332880521675858417913218027963402017345671971622714542791122317163988052647068234310230622196352593151538265573500660387535750740125775654828418377828037806923840787780051194567985548152728403282772706805992038624551805016855920871017532652050033049857013260000980332572520378330296817477270003962433770593447703811644654749257297726021835896541676345407907717590346793127939077327559855195652581497959422761799365419057222131505392200236418936275352918983782018836270987007613685367244787199024162759367419685612972772056412601687056450624998341534173023502401615097787236037066478756058689101725982514068053008722543966509796804976659847509270274480720364359993137647344038406208243223528033322014470763878792909275318820767267723466761427413496080123472096930565983177768412037219699157930337318147204947109880579674920258941861445794614375517331275957877629597122888602128903089976894443466922239517897086797564763979544699798388869947310858831929525491733211291709769804184131964445878617493716185402731484338611093496938447314651757160282040352280330644902739577852822036973281599192151912526005409531798417230944540377195829025300447207625300588402023968257057331519578250148621799087695388436811287528209179112379571343240104168275681174825674173306909819232246320084302631494394253862930608734447850777436179343545969863071680194464400268416869904722597102677404918471162889335029461812427502802995724096871026256916073597433974116394874508981621378661088890747580453064560992706391907357797380635050079497870357378805406287354309965577571608396818704003306721624517311953102461894309658864470185249307435007484470057360711302074342499013619737449839104622517692880411756864772180714045424655577423820760951298771453576613415221161330060821106378601872724133540894438640359445590400493246504282702192546194458881614731177783906310666698186188846271704180228893364516261429904958689960415277088698039838010201275061622461169786825162439425176009956532803656107519192195065880805589840093341447546753837118578619061230238656035651110801293346715381846409917318472294411032661625415475577179752996619681021378186008450697041069321718418399764353431194149008235304329587081724432600123229319163225358351311015477062813852912328443075143103016032939595700287308504685072247059782173628451945352921445585430474556066110099536824736061355062850486201437260137732658482807680971810605040638598284401409457935893253366720524443168145363659578317648365323519759335729677851980131023406684736365219281409668280626908548485191260567089361694313555665877198651241670973424336145696553437283928971304160896731132569624791637198158010188811789416433114164977495856679000277906793011240327173082055806057837193158568876821042390628633108896156491183998492110215284646495306466958878778896195106130649010867167079174039049335928628900510232422706370208446446489371434269635253861772890704962224979947373957689983282412458394372103851237323502061689337775595447870625125910730430333833527944838263024610476860242290904835266698906634734319220147060280485044878122880210573836465012172634872181060142169101234129433402205172842648043308891582084489447953846607851771671720867974807384762359657265173409564352347661937212401815254518145554229511713441122153981915668551837686031917866812951320721263772996130491365509943283377694250790243069634536685547086017477651085881781235196544830507661832294704682626723977720968543783915237500301581659780363087706285993963075669953144467508517989569331628722539124969936268583428173707196840924771724785156418874100987734190436995832536147239179066833139548117903699512602223419108253061354888233331675643951927233740079667596974784940233277693931088370611192320291700061899444976823660772360601255887188664622787436073529619093728708502514364933636007683798321430661144941860056783830992178608506547589916629979508481679302309813800108685311574519553562167615417092891452021396032128977100399624786363557781821817685432377433404032138925551632878340915049636728815232182101647654398966356042985600185432437027261561518382429136953820829009234544993230778285474665389594364276187350123894516258843536908485712282951631012317845592549675070297993792587824326368403690108780296420081753173349098850552642097358174433105291871877557824566038792335997960094405494307889292833850939443616490096950974099052824464270238855091938088293638953802227552516909997909921195110880962665714079676459142803470545185238700999903574289176001014910640682177791983996147358131135693483842062805770726962600305653790005538559213216463065117249323154532508114144987695238714243229896473444285010102743864072879171558029708559197742563188782891230663274315394232571174749586512790974859357944973526073540544127810435972789983651821889602811341597474498137464318103583026871920788474061819851724596945461372918520724297081059617985759307396510485342299654772102317699800342160488225144372130895232339742807437210083043946210746961975542749269046001866494660126068624369131557983833319546368183412703562751781859009523060906284473405349841332223553525467279449192456297195469539111500399100690734733586691328949235019148033595282017205096045166243365960563238490535003055511166160006597778640258434887315492095997743119606681294252745473197759717724752470423591631885513788260384705234735565775254679911111673389692730981496578268382918572947616724839457768924125420823533129753040150037359691208984051898107924199436021615817280565095378056973914564725385935450109336407030599808638974133989960989489990860944286197306265327081122943087886091606676930291158913129901855383867932749316193981232243225700620510786585559643683428394788240679996975587587277258495921144130823865606689920172260989375076423291734403022326445946536887774577436078076485494032680823127578563573629674011785724833787115129168052654586330345764704971206526617804618014315424994937949455580550391657989910695595874767782626196439474971679997352776220810723370893276652307908012814723853926673063670385003798762558441133079401152443999922915169813304733269975006942092547834549191791723716303780574635858923663450991504340480704231061301448906022532469693522840564968069986644178003824191383126911510215835839356954997689783723009442941270762687771065678857277640182412169104981691487549594728645059190904928194697132116402151216522005954771966384744995158056338702272847730606281063504774673148386310001055524911469575841789727895715969087099664337091853902096662503516580548575536719335976380082633323428742925465624237574725858418850392775405710327059204300782311500195405404550183613223684611697067870294003881683473447735935918333767436690153602643732090573107213292573842368670421638635047198527976632404545203963938569592571048874387945391981249978907407570558104534316055838384459064163702476849641875927290180683890500201713173776676069941747674767852657382324194909589655236140283166799277861478903684276779625860250982778477995205126737953681673822793011742420352145941716254898293364511696064511591686470190901575221536460270683841472905051588644976513570448050605360666499333745205164337290828176852178980672811993166181911749692183066798163870324186763927358672386874774878091125907830401052300672136952923556989395773457386339767308128192134055837087037585184240736677434499412103613204890377879934917378475125254199410675494192316163569912295809270457856907218589361085687832218977017707795268862533111960445796665476292597893492768449226047478555466062846306759756481672977872242340214498352789352382795717585516355966186421104271309355266470956314767339370358156536712642933359409444624374284800257901462699777176063369417506670205169328428488378586246850350109161789079146397259971353606410389659112521452208481026135577065006147540781639504212041743869049338071139078894156415381295205912300721470093792564399730232998696704298414576776430341910688501524029281596473628808254605797542384464729030077699453529215819924867525766231745398300869338539996713380759920972004852830516207705638077834919989745236983924140407324320313780728684354890089516368151595264077067265941208844349596026008296163429015358725997660920235941288347521769665842619864534108836774270208588066846211495004261308738570261895996694727906134066670477438065484843232609078438616020560835802199705002793057927119429793075292814063609528838330049311625392790822807778875155079370457801550335310170736966770144708452739884492970724319221688625019752434467488238865233640067328586976303846800503836947546461805600120775727697135758735647124694801615796445024380726383332037179804979910104350244676131593518584009481085591817232708795299222906347155799758873606645943122718294016027658222014967896984160510867889899782669567336502476980408933905109085490139323946093950479131984521661339452602471352004268388463871856506048196185186931392314127627280462296428041962209341399439349393720125635320170150989731152181978393350809223834277670077903338255680849636598271198338754105542859054463510098706924247863279303708535778602736942584868629062157121983950118230693503628465710320243774011334206313960227125663224125304698511449581451741548710120175102831847240424553536710816470409976006268309130080280618584968275690624234829079541065582384237864205817209921130622454219129467901412319153032350196777768183209975708097603754654814102855915208242627781413454079942744458847983926893262437110579616862855885940603699151953671369728533814231600000124411194356195309986256108662488642214855010992213308404984924511878372514624456095902424830604654481441074408856592370506443275695198407273730006263325100342573199962913700958086137692866788661826157323070891465834922414728118317398914779232934512770555733377503926979085826477168712502615135358727189891963155854032131294178032090192467241157944526732895531868426425572944023719154797900182178299698287184888428547625313855704865218853888360787868632168773028795608063012206803745688086314918977889515647064736607623371152811542534115588919322465857739068005764260704544667905293440084016902754844884771208103437136433804518940515425646098333017471665683931284245349920862592527065320288676859113516669074888880959011478139625236889704035190008703068625460219107883787099636748676977733957344794769421323476940773428957386833752288759691744798700014183601945329010248468845559150753365596152741129723001062547146042514744017766857967908726157044632117059358316313379317928900495465048031129526764458297011430123821722614155260409984151607073141425192164942731117603271557316097992122773906651272187133537102795587637490489152071379464472293224287193913104276743534301834091224736322703790118702275728270764503445238478390104859045342063301147994235297392496419411900251002564308225339023288299431219459132375567662620557904443341429699592159273554021413782663524086242359006697142942142843996704620635454500637057426344245883381008811860002860680205296568808760089493756044832856934047802896864438583443734095226645945102026311438201160087133196741687931569081967616761098560476850036093685126294415426227638134487960225510388069048395915061626302679562679213442209998937802912802393090557624446884973231675090775174470394083895169640375133357764868878840970814757781521353498995315592186246375414225308211545326636346631339350073654474408046645056466006419400362192143656847694541941321459634237336065479022945726101274950655691373859243731361813402835068313164622756116482338737089849118251187188859187734481557703481515675243990183788292048847471031410721391531283861570711680035658349060930526472794470689584109122273641093657180690362143341025248181296075836973533453930100001778493669428960057810808930857779177642061034617152158662825595314983713768167085412549184155639909454041096800984698662507325281243083536690934424268766065346672123766355032477613069000258848327738759565976593761267177453006454964673281359479937923729819381430791500131626056238143786664387428082660610516059860574146745587699584305244988588418954816848508839087897025196175671643103726712979121195849679659322388702010008041156519332239878357902918022704860595122507280021942801896576377564927067944357234066118725370445908106558501091104362867252849039159641032210556214346308156547132991852401268975315132391940889911327983001069443347210426191301601256268762865366565225313480589829017766411672246098252708578354406162474355046168301612936506883627306426606450736188525768893012766197611761234519115511134479004419289483518020419822375353403321634588219361207520739149793623592178366378736154397350192060824817436145621667739013504368741877828328262541580348227970924347069034473494291344188399818764787894746992453818229013377339652391546362947241447996658397578274563575804020817895676935651478284601467758882981273239124325561020307591619036674912679581442340052531398628458438245563932828928001681273423486504706459171318472816080639252792166435373015192952337902675526187349462741710032140436842775695724805447047382604878192754437100193278384507041531838470344166344503801831923978157068132061480163315629691820911086285446914441640107327779639168289284547391709735874418242870096851086498428494631012124605180152865881118779514359015267633438047173807424118880081630071846603098930013477646876139461432005078725266524375754151021899640436661669825422312227897465436808817397771859998659120458407882385049091559692003658061917837793764350865856307422430826149317065005211782388384417578643620231316657173619446715678886821662874511061460610517322751934335202533242091157280298940806771597772548829497392220013153067301698073731650171151934467052675734947854330161195306994067386190602197092362765116677210993806288978884838915664510833206555869121560824298865425893212547139780531470348656014094377962348941119775259974572759475080781365820215600216560793831120521743142586908702325554535306986434443856337044822969173518919433996928585363299714510548705884688530747913349265867729507732219341600682871969933520398209385181692695889244848900703144385875876896833500718300066921192423916775734559419921172676589489202428406099057040200893391968323349381177686266576283550699664467073309775181970910479360587137036991790810976516640953801913460505200642851026512930828652070225564461072324658459158032374844020108905876199525393521217053224909528359067464710319626199846378823639764296468610749991088262059956274341402824937442750773709216083183094275541735419013884315614155348282302460521144260133049051997146883298877100300524255060320852485503978558429142864615568513547498764597580637158073618483638275007484408504410341607024470320143094801238617831783790066011849561780624138173186122867171072223015445847421169220933766506345968656915722009072533542654174086236776549422939049337364208364771599384864012159455628534871956289288430472453502114077870872331898698816407448867543561088641500890548469307387912507833804426276844512986379194065030538742277301911656501340694136452042325858753170079944732309378961016698115369626112581272330413246118764277729915085137995125079515130902130459643040235439091347261982815318747088804121253784793333331997066299884833281827098757677725400567973445308725065802034288178241050118531781772835342809384675051267925283048001727496596648550533690628933035498839483329903864072766404037169454346471000797162910887393438375328078969430426383227524796094250212110746213647901072978229994939801589199105015192609687371907886519569971894265645662744125554629408087804818195343963235304365488020787989636686597862416198826182409407850070852634156285658468928008484565124777520667916023161167500966225417260105641276361269597020178147807907249040506506481030820372901736633259490851616788200196858688351652413129182355900486160461189038737344311186002404048547339467712826747784840158924437583090167965672456059879335893934547837310317603060155995027347479351996276771083807326236744490958196529315476888046529410438367829933266682475665495813578677334034089628289381393286483405842370128466884506325697779098486990715875479561465624389408898176562894514812180336850849673740812069010881926681519529692963424662437775392051067853738173639315968786704747514404487668219712210676132487910394701832871622501570594519221440847306215569577467817658797891398356746157895371873036500893285539692017669398063515393951681425723755633181832895175284248055867087571992631448505578797890834888033671100128989360301703279924265806474888986902257595576804329441220967217261303706889004638690488073257398316044752309523269475978089300261433165825393547243347049781860908229813318031676194721454512361148352399918448145101741594499034110172451130256219658886778344648419984862138337398678522739833700352013684131067808424200357685780229842896265667423878678898806392238613380541988336341296065679076317946577425828631433199773587392566063569414629092131311124727814103831684002513725285479264094104659809222353673337523849591346083039230265479406489595830124646249188464981380177629652205503188745064619324872002351308064362299310806692146525233714678428746787052446767204407817464059811874740616832354006724570162299423982704962577390026939181522314157922217465331712132661993768116448834580863032757134746333297362217797423826957535213134329910509727218936580727473988968310225987279156988217547914382753667606360798083512343603631453692077278843082807973769111610632146968750048527782233602902774831978832994846220642595073191838531230945041504206154137027201792434370255457442983518918850740079908068540437632167302762685466388569593555732392246030009581147898064238078751015229254623184133084990751716745478270841573686819759762337794948695391282418358751337180432696251230594531260867150915095426955780145974357535341680130147495582844061377136520801088622702060637540740035022480926984839600941956787579708447170868601903987195925870262846413349200764131914387765763829132891573317893419469712705379894044105579346586149785355536798207662515452264316540968193453022889036446236790853950228196667205381022057085974571618977674947977045355222452320542707929379185875461778923388732028113870515588179783873482593849364734776713438258528236773323049422836706951481489671151418340531010903399736124811739027309390222307311709963695256920728216909287722076750412462977134254146848424176367674408263157338940262075533226700804504839984182411226870302089570884052705439160685670170718246243006460357615005998751835279239074763124174998645954698696913977313823739802234962526100583414513026096351382477199902658151418518266267591606168963884505893935564665537562972599873949536711513011861732203111873769054857394953240898987013807531094002351853892875895197836075546731020657282939797961661599367056410399329217673957149576042159016576520933298197886640977863908012824174681418779202208501739115352999673209424175122414477942615183793280802698578044802717676851426346115097014962963010963061822878335944901113799831528972407818677219166820841688651472821468814925397387188894604478248937045356737042327802827351697435220813570419736091648702445047692498795143111650789913525022295267735691734493817101214786680340535989762650482525439132489456096443639072603200384216782924081442253155278757993892898728733389880066583356619691563846082397398322197660838519210837249758968468792310023031992949105255551983897247138817598307773520344033829316575740987765689495661114598048843558937829152674483231465913970305149148998437471818647820890341971231355346099111105585566578092435549165657696710929872481107812173517944029258759899730114673441524638536808753368776412872546505054764433668144670664108477535603719457363870633530153210797846257855109562870575960036708634438465699158007008273991627136732646898057200476153200163458415045381876872049528563552394915618141989141246074104712475990457982684045423775503232061235441617157322522647603987033291170558979677441581589167031720785349892077811361421471232293709617904267786270470393560529440393651704422764673733528275815796028510369216635004541442717962631637340733182289587554286881013877549332076817854638726829807196500436678877171067492157663005403892249045204836330969848622459068510163346659176342107503471063017865190063039328791378242537773903884420117245289737844853457815335661547452546273601264495246498697215136008296931374653293071284795537217551258295412897715782347337446126919608097300605468067984715303532903234210567139146940168471845007088741309589935110789705735972790360790099714283620520326421472947095709473433886027621181551816885476207923344174587001650578723205861928343960522082180623705604819198674118964581681214605849484970353255354485657029911234145558221142511563195542872976760104348520825544418537340063395154634087833776299729456057607715418966868625160952494664266640772925874273906010994561395016073680080930462844325758229414271140448446719126232063696335816042300511725122985793536460100552530035451786394862666596184101043877044629500480380134782320506376448113556690753391945049096042426037669332099667918649082374978794569844058395035257334092011229178897070471792269714731121014125335439886500938566300989944650404055660884170559750091073642589605761884345680263522149423509588073662753641334585110013318678014678712070286479625769677575923701020366782941591616958330666444903500694199713289545100131411213176547766607694050458467634501831410529000945622857958656101554562852919342938715116979936332539024767451009879175486249143835889703532243763390273802741198561270186049270679668560244609752844815643550955574316933063129588742729943001644900191217366318046794776699600249209210160253025482168802706164531914988349251518338806887709907942703667546058113064113018935087241823764174701617417604625515201232976124225673804681687144415875200198796047299788071604810143014331921618234547234032035631982010258178709098982982881571578713538646480640448255991182554608368609451057406913680431977188681294153299463060763839119403257275457546577830995016333818806000971020027478966956405665136704681617759570844609398902895465945603024394206440241973647402156966042061236369086686776915923168619195387518701140469627914596412865775810956740215980777582185955168987478196584105375750110421115507307056068902386487538765722539048334899936165414441174018710538847219557640475182529168898428854034453177940676359423293261544188511285460129547189738291357853706515247306684269043643837476760571576428636833036938998825579896407343723476895729967803078546411400656153043440561868746537707362443482334806396597979917162737939137261913993777772430145210201282443844074054096152769025169361558886040779703124571938962796822536382460423362831315001616911408092232161609905120525251257409783720642099465231558729848364937209604317945643913438793910582628471498094566891086305150156327473437528077930968453336350076698947091264191878683552550268310261634851007887682818619363528649427910067457396745464631533652990347478205021889795811478724962092782372228792597333915177588498016517055615382028826025730327945199132669155118571102001079113930667944604189536055774998735401038608217031996315864332350128884151718995507699553923873400745006209594795767230411047933440808027760470776547534917357921390684753139713043596202210276386020797366931991896961742276822717987399295649775106906052975633491008259209063504734066241710440428813165292312016841677388549136257201978423636384782619285889756877568646404450378927116771762794327215704881856137212088178558900608522194191645562551514001236397334759993018723499185821624781011968637089877234425239208959187618362902083287440378577527141868958060221369294361874895709436577395801109567859013171614345766268853242603066519355456982237414926447707722861994701946266645217144263938173921004568659070980036001848932435045344777063554329242180238212049501281120907899571411973660599070347371896219722420506274171564602760911130792206535672481697756519289838596621143174683302663336742775531218108931462212291548975543347972046434682099679993616226620108527192526611382055346962682042970939209509860761265481999691971967215389262236825926066217431756451878116821620767654738166058151838555034855608989819524551003042328956759555955332293994843117412662535273317251281555372466345296772197696802816393997485459956785239196354451862159674666305546934165978658550675232007023425007388470022066474466739773923480186767858820566420386900348008317853772902649862597245281264017238033138098379600562509099789563794298233885205014452927372181455363566014708094265604325887059742420352652466857015996895929347500097398019811657692774675594183315540989366564858913167851783666525782517365840768395426155755548256862411452006524358635897790746350058913940353849196232372351054035920533507566946446572146820573307615547055668548093737799339621129393452719929219273167777572249500018441688935735346735989631085450339168648019296725631968175747546786526751933718645466824589322615959562398135280550940929939211576775985961118152794548580188526373370144468779249295276845145442705622994381789075235127938873172118153141677210538028191461307153507858023738757707626908254661311105055172962592368480828816715451602634019282060762709220696027994396452365469090287255568574587523841535163095022306193514857573551398343006124356006402791406056327317703616073453454358723764328596677176020664589945849297242190331648474497729386779776801263082201062372229719628668761856734880590251080583849389475081284487398623938587014038474471905803210936130116206864067387169261822887576233604727772140751858941353074824743428635929766651694132486986132599456369185747599985866360866961424021689589587291800662109271579012868158032293553914804339997068376692483943384219399653360475548654040136184390594115722192430999090313853682553660533963542449816609480952235874488692548778396410544030338948764496680840190363602295938565293640533949763727197953417198184136039239342567383572161535478311257540767940820440895465874632223093084596231787649036653492317377598960881848670643707474650124467539181444333208149771336279719885256567075614721817981774321218679283553068508408637297338721571683673957753932735001304551195290841543036440941412023279820710879125654077883344479525003993486689066191833028397124281576430764022707276417238292781025319277746528371664417706719114982108029058237864987981049198246517067531145923892193241717437391153513905458597669793107800663855017214819393187413862226864682936640210952236860292493005990565216579908388577314649804492629774344943736735524297288288211309218066030757503133790392578232247972758810939311346544003606133703605057317730066722103948238893120612996873905469133586724522187529505037180058977912159200673554481153134602069460599221978343174602160286120412339684361947964126797307249381590531637905365708639360443106488736983030269880342315538497899623468443828804731182078897545024767374873565039737283146773207413394498271826622681194979167324177758355572956918895147256738004335857790807350437995297140851544267997399171715487904155836865972897498195676704244214369287278064516534024089867380288701672742378695888047647984117918957014654401705845704624340999488345895256396702839921238758417289679341143201838266232022005296036677662954858596376300701221637990168734133704183768876624968203623177407873402419052950928840350539761376007167785963810181047711136469800430792865724514370845522060367906323909834714240060443397331246364976939524722691646437797692944624230769349990983424406912929890784225251647599206972247745422847034950098658481565588641558677458737819171261065800615278710617624213109612535656463689544238373699998388040146058969782086332257534970227594311094602087852716429663262034309615638597654533027711279696070305940786736788923717061098909402943193511814386838377396669216263269599705852139754402455863009553783988308001942795394063818031000061668178172446354524330970057946893927267491933643755107611425656842415306447124615523697449056821309927688672267799366786109057909993456898761513753919751371717267421807738496156699660338963947641849436057569018031628955375094931824647714835068621034275165475905151173916341275644291645890880649134344907770323879092780212654576846122570399695383011539325008211735610505590686738125439931386741061835025456979124271543949879454301342635656875468903047336354965484246073601077600140845879761608851444812391898128908037340803050610364043206512634082284410818357535086931136475724878020095921049641632820091491486908781649290136071625755805054237139773106159274461259888055539582153873290971709954178066281244638320918685693074765819769315701427610371179395312246987376493027892209768710982705505258049690899963019592630014113673589529119617152664002833241969151471985779657854820778077529116890919354166182677381633608719682951147648340715517831450308152097290105111008759271539777882010387252261272269499684785871967348843183386614825064082865196890902297372568197303385954479199958618068280961999731586605200818293852234257299975185826556179894261830534456937308526547485426403969087794559871043196092948423643371407275560295226691089661236360213725673623388945319599853591653865572611635439481591995714785875799759844595500066492836658019747322790879035792809094984032245540858663860267030539891041923673857965265174615326049667231188790455670994526380869635954102835323647457127240392988720391974147481229513349997728378617601950336355877040293755595822160042032633992188859391974734213369618970908173492490076133957358232523493819440692694503256672682725965647376715672691572867259894907441332041047953921530530371172685121325546406233544949062448921641844143184357605643716743558481815906859231601899372174443680332118682091064162127172419125683115273690612828131453507220101118510156402692635864231464868310641994767941839241874110100866063975158012799347624392054217547587093448164438984703059017272424759052357406104765771426162611011696998006733728847893539764644837581586559950815057960443171867283410376973651860228946284619568946578057352802616678241523040420579140768578073609506443369021872187793885095151493984424210080387764973085484917077065419595205434870045711141817757511725736962453325072634050393618518623272814938286090328035118338549585360870925727677863625121794030811566213419370527148635777155102562158411397053874991088265548374760609611548292516427490952598980143730276960549573638824658968016593967287711435617818755283730368225720609403049464713019047181362804225319363830540974726203070277444164605936266635944215073070163975489655903192311358407146810076064433428402041272708586801462609209843383058755450148739967735037080883765185365656260110342432978941554791942836759509311786023554844451504152044729782330128419092929656723789693535038394964588412616315640138855478426734683315968511875752978994636088693860927340984728390527694546542717717002469527221968498623672331732034550743252458534100611129620737608697421358193873598703003120194300741005036295811134472820618405011016077858666190799731835116920905324017582759862163731542818015663414455854898548944839966290003286534080433290549786782846178644838532746088083826518388698499344298937603779427344151119693604578079869881356056661533376227341647151606096846957746648389214521020512859621425143053295127416528680223348365374580142896269540830654422045658933152315577573891205818578293035132777859699573424335069328412069692940789377226867629815414865651990751112770185658783065762007169662468601049602439359229437205331976616238494491688568015077310682007760020369525820339591444508042413277104224481302835641948587844646778373060947518996916291031975084626509745810977408282607556370664568774229069109291703946618503986407690260153930262823065381073173485042725704198494457281974624601387489394502846902158183139551219003899323782391804190628877285094898001209741859899370058957656350930501642192027138976891850104005084579201169523383838334217435613041405964287751077962531120281941652761683579010449025072625757563370537952385778077387050612172055090531156507569372657143866431300072851970231918786219721701869278686067633373705812089981197169286354826913839409040985502187138896032080812063017038739593932203488131527377668651467867823618709240419707138549878110660485978843564349777559227019877549452951030504836342303481047013249301753708372267643585073873931782556784403227333051694104822408427305559044524383857300055113254147874713963152475489809309733415047216947187001657991572953304126757780303381082598580393625365430531898050243172329765224418097054160316561155666453472234795230625021219495909044649032234440518579494269180698842713301081498731939539542836388937798518311281393891443031054214521265527857860779224661969445832146169889813622780475791655333302010497409448961114711485224379218762372102718282386097855006909529346236042114262309685306471466705173806722976787334286821944264483136191885099929707913304443994956277579389615126865986947299315935583299590787240024266675255142170221245802726860830597875687014375024268834005528596838913252325007632529454393464195399154088803965798376356841404727431427411194729393193981455145858217014896368862745101149514404131068939781554370986224871691561280428314781088929384071534153903796991371408870080943717617739395852618045747125580596400023031191057011978804987457482693064967089460285726000894021286538632281142480745294939421143498340498423999915643852366037818897258449507511927563706249548071677712138086701060701360418446947495019821074505529585373627520875074778663807896335194263801110574875008998763121598976838832899556176928923029412283340165027846844378579037337568130801455185931072773035374392232362495229295001973980930547290079684765183685791888603921118949027626330541002097359623795974720269759783140642713090922092123547917536094624892605474592709512157322578736950954740425790430709922930552783322478955915986634903523417240356490736165339549748188948201279831909829696209736502405239982296960195597079197245968342999862645710680748590754520742354978613723969418492680265036001051463190619575531611687547612495539659143291874465324487489881931026468737995945277619195503626727558565679741478789572158102746195754009056540439722115628069961093026479479680451659047523453027230826107526535274193251236900872416524108493192208897592958099968852037428437348344417602413397782441672222289219409400466617133853563779017005901713205728950356290981565541839060276297492194284046315083487766029286708499664003990108427492232775950319016066820996459932960664624350396673626028161311930917508491745748501975307061940346286544173458513565341586927032035778108147449122355996810567020183541746755717346425596276875923119653941969720989525715012769401711226206822249298820792595922717329941244725472538437678611768464760353523644124790593376399228026947488893765199819588611234097619140576894927338421417363600200383586670268433827343667719598482309863561681854137173382307222145386227043192113814553778844957450648464376545315219793256705823699571028248781690721675647958547548946739815423108105099814501188551522699407417067170812906946891960277261618717973655929214068076771172095848184362081613611180458892051528364582905224697161342589559291319505611033967159939476742032791454775831220578622437510300659935677970513349028615167983944297458143459476155644078993125502173701512482453723322307126639209742013691686359666761309855267008958346986414207012055572977385982030270874564714950997811077613598998808548246162766801086184133073525945799216762313475450680510743040871990405661567425004491139851856807657026547795272545185562374779431096250215552624970498254725106430459393712573068196522941956711912169453492427421334680173695917213276704103301681041289355698258247226267741472679866834348355360140950999135840891800922875795025670058886867916329720147658745170655271925022216828453349187981769251756109266728612448627282173109378734663853336623442790398424972816973154599211779497889079683062925829321814525003795724784542068286363845303025180296890296551931093169012282257886395480749288849544236372971678330482966020072344720704951019622168699060487399542859525250309768644889781957378803973243563538684339754816373619604143864494277088843171971854922515774725432360989857997588258708416507254795882667116882779631794059210877886884431199369315226076058041654578002126811665431112138428243561750290703216369126607351509956091629213117759775522951735158726026381775842545726781790478441457936078289061012464668134078392392798674770543330345238526410947589422647045461350961770096955398574059898358917717982062439877605048665075413399559478979110093331660411317598915565158254759035162986085696171410285169079906480644043930645931994650271335825548451505606881910865289927850477930909085909189764636092165865392923549930758493917211431985333856950172407201422347822446908063957597389342302153906048080319137823641848923652348064102912025849903362551997439000009560477721522185550183376080285341595621485205549971770618076662774966936688474194482502211244744642585973681400723157998289916011071457036944863605880969662136950713059892486658279337035650755587184008820577109631995377133682332681437904194275692285657758264403938148453110634439963420763881335663927930773090443901750369592222393252601232328579971678062900229985637121368519572705943038491202909043586125358827236617431508184545542737793766070722959722325081614044563149594486891419605882939031242830407238810681304084904569075749213505591254674658147664503627509390489844283441770873522708199631231164693094125135864145792414493384235472115296701926784505245837231945308839809523576770286901835416022413444898977356193875414335647195750876323549084014300687822376757158777790550458857920500128848101287954045148687618577609170185654530281004554353519165406428316484859602937409096549062288106336482434039929377182996238089483438433520779063147825612584608269921941491480293776820422261673949835596444672653098992395873299947056750911907626152639091886454214532190994781313913833178306493369443050421384459919097280777215399262818771741329925917268690051756135646105790959929092293712192417559234495364799818084353465307217346389501179131013250212234122716779919307269986874920879117219259873299374952686785850041827689790365431077312026564164945264627335078381013367852961526611236327495071446596608587841396123329302171308710865269576338882222370864521135576794058194042592292888995560092223352331875722858165372358482259084424262775675688565961380884797500948947800798062581273372317976368933545725912605221030673059706980971320819583880885190997407127035085157333930282883909017896079238048057319710551429375774593754138205070809537855267610314945045729294472803301463539364322078212498241851377861909716169511718425853958927028433985260937631311749852606846695309760122139313580509655516716236175263973887692349031153693309213861974489853802382872231523088314166957316744856396927010624973839936212198508271343982898059340708078102916104476926495907639534056075391131712321574271433238103039052115277442937816089903052657022705596972732773905059592997566787316616892260289528535188094433705355879222555201190108686900072384694940344299560756707654447492094564399106807448832011810955246237232123172650067377992538373958875453545390866960571594555030731391434645784885894122286332955310894127051141898850889074277173807967935201786033554097542602954495124106586257042004237111200339108607392977841213027316068052144434045117092287894249808399721452777976741192598999221222297580344833719181161609937224768354733668389968713816806258487058679940700248507378672277853737208571535563627144509321408381158860385962954312389621672374044125693626370826479334845706537521940674347387701572103093365053590726154768747024686267594797861077317512542579189815261578553615740967620483907524911205368212948862692672007394163840673051044250545586163583321470458800278264407020861127680758180685561134764003478074772650310395970872101958568969694028516501838211015906747663138773220537623515778497473265516663755963052430440594155873774146976570751379141460596537605906828041033541960749034021122750021578649364547033811961383749369343930539747516645344711936418364799395839248295317578114154043316605327968213682728971561404964246687005749434290729640958003324700289069412941230138865864474707034908758789435372633949441174881731660830445547073305079593813147630442580393779524288338083106755216079473376184556892658749899258555480445700744850100628113359062956924261242971502623105044478589664364009611557370390280744876220037589558222996245925685532761452456382068586906039774211580647995980696466104206998559993109035509657552598460539797580457017515041825540707538787525888963075017746518992407674887371906601247530293544331208593689954834093489822049910477260451379400732073892444882478353159750962244802548770582955563198670237022956931297954464203828000154801565243859169166923190940271932324079060026264978125926023101215828054756377945471532997499414360884677232650871518141426886934666922565156792161192352822329265098935314234675946436407643615339055853428757820487393921524707303457783621791889767571737516680179979347885705944893736541235019884668712929687684186093346419360685364938495305308435622918538116481813762907623620330242036211132877994718162630565785607589133950116350331101400144845043454373005451587973936256620483361472372000801340565223163392398108328591156182899518103201425758890468957043021992409670704661539112150741489277820115800907656817790091196989218103450273760592534181481319078543267614215071312672907900772766390015056584355739862614448023005974323325744145608216642088975731606183941756670231532646851045959228059363800593881472645182028482868523667054116148522332689709696058825063026615886701181691509204027405851646162228988859271808583187219034801496910489339172736141018076889201593192971002474778614100359997712121017659663413323455394691941317969439144558809970501044950715411343781340776527392072197576626658534005346442404059774324221879685482635852768588814399799449939050648749219073470524720723129618273810944116935813986554565208223382754300523800295823619979344873921556890866433887992868055292460932580555731828300194095024161639569242029070596455220460375113173304461511375019333947981616131963786815279438121549255192144502545717562892910012765009232968567645314552894341913358007326117360451262133672550026131978323717178256661073013982251723116581610333582038279467417782633544668154409945042193530754886096755069458297872279689096709387777998889533908201218008195460611871279841666084160864575739736321774636786437400147574331927783327315675554117153168922199822850134755198688791286619497150642051403271619641055912526335180563906480830424525558530348664771218008024255858973816991770762159344098442411907350786002116842006635940251332775033414531286988694646105451052093377947248703387992459165001000541294396420540102265083382934416231716606272650005603065491583762514727232911478109342959508696935350754855979642298500821616191677299242886660836402801000109870814343745072357852035888625029232907528012255024770243527091868266477180303749385008792643501405043347332739850828156258664846588763431375219667989578884748962319636206185598201288433707507442269675662331689661754298715423103357665533306221331665987744007137166010034857468959822009256558328244530343686359180684326932476267617411081867441737017165870030969966586713418704899340612596680100740918334467074047162380612592352726568730161200358033642013796900871962806381684656927130658776709919778415931456858899306725918491565911975738700995550504563190337277891258199862564379811230264401251602231959527951361108914169369258429057579140484156811853253711933524434738349920405486130892061655528122679971453327231381551560629520769631987135294512342420262803990580131910699534025608497762687152597709821291030508656744896286928766835331697962414820669274331570054151891046225935350170433070691446038674774895073553492409687910986712569154703461683373212972737926720178359985503153567824560690103705349783165228123218365256213850503254563473951077648524235295915286846445760862686539739183890554951261506590063647620018410614247170946225834653372974273493948962475995461617212007301581023631597914922612621255376327203843833260642096003846714196993682625478003115604945061153828959577044888676940454386043158613267471873386990095509084498879863725518105870571269562864273579410782086765446830087054554634508860890217830216676141719352968976244026584511278213765322670702454846688171113899114361995437495872330456235702251813373445375428075870674195342728531944885528288333122090893366784752860636527512904587157385598683449958028895748952150697441223486789503290578541847518015522033319455959351921712670316346894235405183404045938892666377603557792572187352739808513636145095686849047838263661715658223828225417055487315872504136446092810759537936875409594492845329322772194131551723330309202666671098244286684275446944595583415878914151281999808494259219935340901868579381619862865132838283137802288233037499230568938400509290720463385407161615486725848813350842935410950688144688062261363015830134238733065573777285373806924075759635441671788815115997117962672658964564003771259834666699687520708695421589260000146913540668995872573362637195384816184904849078143981340564987259731547536598523866312122749973594178789210897452534352891540789634816008845713936347040852929504102743596582497349493038390635366202686098624861118700256379156635874702493111645605680200830013743236897752189957618369925039284176668862861883492999973067503181690219867720464912826873246045932855432038943210956593384198734122783755266844841290527676081349172780707818203163582177569767826166374304936161863179970067442731764745620234274792727096548152693227583503413943653808423069525773046760999737932184099046702155257913097139322787517395572225876478896201769524518325303051275425455341604025444426211353281838885662483347680802206317180722708494465285462020888414786341271566289167018672235313101684400389275511106355983781897380236241884699435936704528280197571392556548085329799742035020640463576396446877885913320228917534794097749820047250338896782476880678141788737291430826660196495514292746081871510064583182734179860018640417240446480956395809893651806753208949597653706323517284517019364829842482208241716339880232810543593455993555944460466768849637723736637728490829842177402718981766936813236300957062209641809186729480393304800418035660667098541078622492917613102539969857642706367155345008007594879124132759979946318424552507650043916431564348166510343294264083002621308445754136690640296869713276265355176606191317581671462356825133878320774347327079319725297043554262447729136768494752784412319755255401578815038495870351290314007332585516753288400800567707699539633539752345882380836189792029582919708896495633128392820852293595500888941518264468713216960901073249184017031853467599330534416983710780455416552594817869708472475542364961085536093059831548941955530455828111314523528305069043299915228749233837255476660316724610572387843804344088030694366999896963230874385889398495623397451826288177474568793549748776681705813843556733165616222443689812694742641488140180912041019922461325041702029956232013380273882118982872442275071889018322582038679032748665838267373576734762910918082885159048008753870230169382587858967984211810163507580733348514377619493661075530947493936745354072481109819257124045154482347939920874228240801724544208858793326313196989755198040226998340020499048586744582944534016238052568472734853338678644925057843961007879010155064388543576056987117112490692821774297376692997559953015072358860986850854497710291434493929533985840621964484652110308811770328756545828730749398912347475828266251205670148738678498389703308645463453681082217027587542846037170987992257548085327397238932229290467902818793965684224752584559049850321391506659705094665788493015394274995516218496125154421913903441912079781960239640697760613340213102195305006114016339831787558487569396042845354109545371095440438627179101606696983849952449303248618301272006106718913272485838401177642732591986326874659260555296215828413655194099911499369478544728383703975282200833116553932500566847216282090274614986962898778944669503526034715965870629604965943145533453344804977282135578321310833447955960522092268024329855804556127343732005700112956607266276562323728980107785718303465291791309321459585724427851735111335085963853826103359223763781074435423515513972840006218828474165634332882061712750879926578108843618681146436873448080279907439548779835304689243537659908685489600082553656613355093793030261852833704376461218425795529613025730223791734816627866278096701519058182468944102344368848266340523266958981462860996291408903557482466458608382888151790052516288350677796983094044803020739735369692999820508613248285783982536388667053863965692528739087932391503106888806782001388091836651640213936587927103609021042868701064718754954575708709854874335390897370988753069955511265661659511966809450529883792636537093359576789525385836900457709273081327727989035295487036289910199987768838599759701084447458964081363363543411786939344132500608845244540461399978523437029672012342786430016999297758015645389455173989062054106269897371997570236565083475400949294646846255745819210700345226694028614812718209117789185705421563370814165464263172033427016478248001905847492581069849805122040001671558146271991083510099472776502678144598470684045820685758670370268912549208171860204478060543339386933630547604878730029973944420177898102167786815321490644045895286654963517448821454546776437767398886346282029746905851325471217664049905560132861894362856004060130230567255576433708028711835594781142456281127214966164738734450340156311223973689995328089594617307524820028457197216080229161581294681095412834940389818534146159031768746375659125648724285023377878219384925719266709622784951145176609260204636198769190695431356323710394552309111322688565848020066571482491337285542466306379824387046801018330268100694440047389200036953372926374690494580576020494180198825905702940414507613345536428767391567628137008222044134561277396303478294712637783052516817296713419488506044574997469297937623076777713797901466589885698711912009006527772641683312606892282510526404419085184772220952025418071312131466064168916127007780035430248497266051506029068353424407591228227158070317173152670634185058353442462331649796475813422732764729240132616145305099516820427892089424294168640343512683792815391567635014277827055273323478943972285190354995619480145305699868679165362064543791864772254141342051884489393972173137581949229917149152175429374244677921665019237828092925573782319064844177991026984378391865399798198649115051195926412005367072811086534448142956749095429280007503355698281483933831750220574327217409801790950399519504514344219584259977648738681842069105916466876195072880384723341546315441958601123279957031664018353925680381695639722704126377667509755151541518105950171024192931414850564183570967680463614637586396301958242208457717376927397366487625014039832705569737439788386354042715911722899481657431896678922417615578912855466543111856902006353057148472247716904235338434736835889225028182683962197174972971183872185105394292960545553160331272591804204867634368227701895329565973289235659353201924664828026499412837265245215189876850102167586668814901968349992759631674637756859217845294932623251491505457183423439193448858872316990857455221182936987591845891503426962905284264934509570493628955095927724531096388320437177293528168880265972270363839013935621591775804961137282630625812833539628200431515219954732054333197637492780316727173940992506095427642052527509060226380125396303430037152131987032690003125369575307153597759649586247885030059635044073809053198195425997757748508686564518154829929808731016980159509425019575582427938728949639139914637068374018303193793169968806699810642193892226521525832708375215660393328304662645451859877499783438609051098866835099845607533022961390799234065591785173741375101389759782080393691295458961442397323128895972528891770262114522085687506933345369968196081260794958038381004228858459431866477936235908231733809642594166484171348335365153298966785211106407419176349469318215815699151328077952795679395655953829349279579715256645649697206633469721725102733695324732379479064689595661604885871507648245689890392631741584317425923839382775874421246570377069705133258211728465693728115782358079776276758696439047193481994006181832822908072594445495279054073723148248521971830827257281239477537414852733245347943391102601635217785274512281763258873275153194757766103436081499651757028554860839277950751994773983111094453067546572290868877070924812974725141705160919933210142683866131227225001759300205041149715004891600639182677561372458686105310099038199232120636707970900147086076500059184485603921621348134129284183095959018589659411029328994934030435874638758725056125461220972251264505776108791282648435788152994218745276385183608435530245250936722611961060299366306406495880921531302265844117711637207656429932084198529106583088119555642739858392860062752329580782913491676448387740218496708205136815857991557630594271621738942279803609520253476680632864455727159945541454442934869121889402948537114098118804417636290557944357526028963769704430400606083352813249409954272908391279187221723016555826277009868402495225266365336324607168618570290473818347346024220240363297444949765476054105251370943261526008165972549384337917843922115956935967769791388963166759496879525148864169930507788547615755088742999858484065794409931922380755458747057290059389819003969743984639168832217971946044222140903644048583171020401515677796342615609116243270524076072196258428418685984561427078880876580347545584161564006882447267429772953911886643364025939030195519322451298899360132554207861030654167989825301126138522998846605992569466494441547321674650433714079568846360207018810733450892699505735403511001093357924376395810138720824758565758628024871686737202695546789062662831506054337125520948377755021608345112254908167198082164727298998854323150033598651525997454273536494183084050197717934665560199165558406208751530159891589875496207983035514891257375369420260245695482163844915840688683311690638216168381593461502922846194831321422740675070318285448212857582853413236813140890196908634104611118222779782849210833375201623513954231733857851440731751885395392283213869532348113934790268508991660469631870598439508562915679263315795690728347128659857792561030376975899041774065735186182948734848647984526617314686643161806306819513631039004000596855776669578927759032142174311623944275567730990381203878252273857275195162981224273854460323886047963815145789993032069874722619800393448683513852938211533218779676735678385012330161313692704627469644928225894898742535022216880578336392692480288488140274089438789331347870849359524947284931956801666294811428884064199932325446755043648809438329895806983600949633770935917216518193213970900720670130926147980275649687800720500193516473357795514773535425390916340817489844852199476559591858084267099653241766946483506428099806591428106164109322822122283878562574469400620961456275163045951856799699239868726105792343998599187205382122265781247402126981778757162917922160144876912223583911612370609235945198188557414301505176348284870665575631285461186222992108464053145317965629646537066728720108056868480039575610264977156804893262227848654474913987705279960208943984435682215849902488181045351358389734651473697739800580088799192444615308426264367193358262294667896039201578675309667594861816455298337433768050572059622708925555904784258372892211106497790446671708736986910352480373261464003607151497652904781511509836135130499187038875599260091391801838869229078543829254747907820731491782066165823676206063707401489039365069074773760999348039520198530372019452299068193313310360988054808959085226782181586278791151109526669680918200341071413765758706126016970832577327377834926473437979179318731391084156537136317686648679156477773731415250550603793141926539981452230614634502014911264363011803409128164062213371130053357333032435242633507584902108167360581785010907163196512268363265327329976643910426543938351847334671446727711451966433222366010003249408532818832675075204871610243764328544544098457214836685256349273492946391726374558856215185505445637331951887768382536077553645912177893294879350357340941734175432041756110226798562380029877018422799973387049116204526558760154439405734199816755549880834472334069763293159875122706309748744417528617800246387241599226780372408736435783869338867888767370891366225107557968717729376939047302310182444849189853308335972916195314509180580418360283343759093388537046057565926665542440471668832689260387868009042626228110783549193625929856489266960576314718061999635459679380945590332162227365116700458446448896467142987094282253218714162611806502313649195376130059023532389711250517254972525954398106465201575527089107532233730402287894087557027753047062376329558108523093129448799782284739230573108322744419384207821967653226907165981181488533323127326446505364857740426733843593580981222499803181474735034878364512210659033535090770191539036144419828765940550772166128744982707744201022058017723490940577267509255651293043163758438973479123913197708949195912865147880192286828668630369617185588961363636203561469734150867477652153802018762459916318908487313746373544425262060393762335280647168472137962964902513409526955113021102032574232227434029206406806462934571545058431881775240362849310543159806539250101138144991667042525573666063306084260192033386071079517273086007601181011761808419966053039552979733552023850018986280171952114972241593346021275615946807342459010154484088543835367373613018118362526935736845423876970343668322472161982384031998846130321559454179163136328425054450020247824572971304128380710182617581602472167497563310223147597475573192272736872979621341288450992079059748332523114178550753889875144701392128857536983307356293730903401099025389137564087400794452597680406537610200290676606756923666762558154885555898352822753318789118485468098736032610573705448063324371585582161055166959483161573111070403827295833096986149449099380977024635573384714146071592886603571670910675337483005911727183068097349703270602578040496955358474470470887322624052961055023677134140980001380038926248052128889547681503222911121632187599895133370584078221251399816112151198377536952140732865735639087089812659113454237571327981014304265017782990145227346420620398503821182518623871882071673027613795853986707890147422805293274600726582719744011364314125157237398621199455565247983786547604716592934635522484000567827747397323785268501494217106148290310494095698504355985294444868460623048343529566441197714975787754362819749830715954111637941645058635506710589466920713988553992045759213756850039375136181011655560740495742071239064220659073162769884657255377697085379967487794383897490839680301097002725084112176445154646676343786999122535289368503011306282721059394118765980965032476532838233850195084738739239215200499297689412630331557136563856409034411027001654997546847068418814023788272543792644639759563098662949811192744262837186211722774386202544427044121702210511248709496427240814291078886952154085017843289322797721548436690423615393794540239041083294897119265675414597642935491469783673168583217351416301658370812685844476484803531370238117032023938284100660688369125169663883040223228726453390554181089076517978845142519126576719650849343453686314595605314092166691368520411210323908094943402043697101521844889199000601076852413655294141106649272663511826054470479308817113837051256353498124050225282120652244117951797075182161945311591693957725227441452814384418019840678536269578823253480952691102718594340115299638480216730214231641819688957611580329024498203293643078297055007599879303659379394383555343835889844666915087427328734468590436930637923767762098137409090247642976938317773829019605733991701659980440955308454927616870440532400074992956606485697983278338637821276480056345801195823479544386580315494346335203801424512802303815412437221875988119014426552743452243209091932883515016638078124924041354235228368937847277403140979651744788260441848869671783879780277592416579976672142321106816816604079371341427929257712924766289175512316188040464825970793622056776380383621569574546334638091980472877988744245125964161464574796501000559991556192322196763995295506905811607588815773507367361265750372265027991498325053991104292766439138296958210000350684289955753230108936747548687925694462475000170480061789266034227095965167429239682826437663428719252427054370800732334533329414456125184756605595049969194886441932770403477727104012870608578074655001388744532827105727698008231172646058966032148515304364304379928142229271046341797045015345619700528428924707069923624354370179443644360441267790785254375513379614854432910310937370061519390131653465160005626099548270459929183739851494819973809450689520279572429661040290622180054817686353385200296364540693650620198658063096458394122704537006603464911602326788996959353563481701499915421450725409737174532935799711456332212538554081780143108757609897215167788094443249821288355769183061220414387335232833322715942776438646357597305718462526138092442796819301565959761323724471124531047138259955620708998372849337337782719538566045911335100249348783993011021881812727058013201077811724554745339976372110115405183726005953620525109447876186826737334108655670562466013939920588839000882195048640704043636000621508802490771018494681396073571644596031972270648018076557459901130250101130266732698795498625121311086943440407511016662659981623274658731432188747933681038645419147798590610317520224209314041502535988296424355444897658025940396225653221915680590078628728067174481210219944476286646774284978174249843958622923398890650795926235120080155650763892397608050295913000457304789135969199227091923942654962736129669120038515959333131387346504249797787388522051475332364498638300052289718072018894099347188684591637695387320456113406777164184377936049937560588568393955297787489517770890445341227217086830626278920698191272005708486967185674107236117263936273445473941909385250428024121841838070229837137472595361054252211613123734298304468263582423463756256888711982687840355650144490860733583332279750115394577177842538246772302388106934303958389024637268780093954222677649070339293319362247525355831512482046837282808576829221154919307774119026689764091764383351802003505993972145363805392068059912539003267882812876122653341808210097215381969637712423911565096538594183922206075811714536680618477458175973955837128220831867239342020893866342047854281417595427501539530037193043969242643531035612934343346132508832154250812307896263208187338820179164373866754465308070617219919853039211954730280371287100750188809357117176082472464730984514844716669391615035072118313971202967764039819293760456316917396395182960646178729121847449712493207481346614990566946050217034108512706858150403541521623209775253943666015148394670966129255358648278730514632532624025836333431884731078759665517112842956130815647754935190310422569168273181058305360664728404111323322063567344082246737102258311067693592272416285979353494293178013758376054477859970569780858793675248123342824892700582937248436571320431191800179239776037917452764313448938680275951825544583641264634255699287105181752637311890581606092087993595849283974698792068499158620536978154594735751648902490938893988862622345783103876369776142320502327175669201047322852306173309753546778115122299863204074684322497007301555484801007109819105655424724171529463086205306259300098964785672561311542429219309703397461865866876595421468072326131927553427446490358170002585055612507752002251799254694982897524055030265393478337774880717138610296533760654753206258650473430214411402209235517272459618237395213924748433180966586396653099606668053596979238533301837707665983514665016686616231673594993802995163334841345002253097703336332316598364117680372112805930755712458961874955063922079408559771377909721322861464249703167520869230489297030019852570023818344740211783447157043059430983789777547264795816275824180816249124551554337606256961737795805184870542198543114830199193423981886562726404032239898916841860320451596120526430498633708298931224653986416051967731589685486303663010436451284706416801231482558131990289803599263626186987597014543137755464766402176784988070507251976311557193004606924249915959980237233156874524414117416502233976806289025486302264906653019463510596618317514778110982629088565912090897946039296719198502570506770591313477144829721459772857595319469962317288555384348606966703932146176245144988477421189776880837530403222137919447906762314454289223444521974470318674521824153457118101332939330893381539093742624057106500886667354614360609902279018895985215047236639414508362845260857221414779468105038133209053239304609847871238781524152857009287254826842885432245207047973026465901381156373112114466870104596741853678085792358793366116472027360608240467651781257100558589635651327676899454552301518586438156676126182700923090425914841418244463925402868336450472887715990849937922469217593994399150173412293267637077515905804103471200654283119888878029860667865861129348539895473480154821316665717684089635140284885772768406444657606484549850723524511016274292013574991194988054337470843772412448186800501531016684882896554114775748257625298206648697245931470333187037586234326109805182641192172569226638257441823096524721432236977816200332046895486737540275719757527873539852548732100790662406700811347000277370895750802489729587663109147767970833619176173890249304322133034360426224331565282224977739520095667383430997696804196497058227859914977216456152878644156850360729071377208943762500323973358885281195940869512560533715618744198064864282152735954476080469312623814481737720543674399406257777567349838760742758494974938869726791978316029221250104658706123654232313720977917769374144200555790291394391601062668843476525501678960486763303320824412864632401865940616717010584723643708697417922975793534860256409949212557493816601041620077564969634484071895758579671741013989846026640820206278865666592830930186017125608639638969882840693059241536825893559463981898985636612749764804474645589281674116162579004118687930249152589802116302637912056080696663919407664323453362122713742999107725442973066052783277437358481877302050123534754673407556120899330231942627072877256131582160963091021036777697783529216249601204632632003380311761114499597912726667470717902799222481693014560053491516367577314724071551846013836348439186567972294446761579752887815538281680411275055268665072904485017865858728284321710391328312244703625803725426242116981956962596388397407154164244909353840616097173869674444702180552788494473035773886478317526375897890293097502336121591955278354108808248422964657326902491234627890606572319460239030365311871212006443699916359657811630116737628317009872265702111693381930679979662591022774056017721054523774359969773799869114543460290406408895109089205876244356242922355603741407020899248662300117415918508694444015457244021779957363577377366041809281902658644364153385707517100581847905813364712396258005939315723478790197471432099315225887914932075087233365435386866527977857568629365135968295317189980721352792784936507779951453608763954819500950570936843331115066632740574170767948531653823235650825628254487960343898099055267668970274924970815242132155677140810139073951087468475922358141736928955846536388547118382709254305654492555307674332325352760520325877689507040319942577309339384418111534589577043796318811870247566501473236642368905967425886020993637176036343147601748771993578535772048376447409988874518412478786672018276390979036750560215050049753292132534443283963732862800132089765377914869287531321106066263745334599431873858937366045454951558934959246518981623059909630460732741258849208211415467855034775685355715143814367991897288661570387717792170141664554756775030223753188036580507214742054575316467802970482824264838627650241025511166166845828966556972710960523171147021113332991509046738774825481266342762693549667271368254838471689976211902634609815598011048270472078870370579980207910488526578789177608985767675546086847604327066945738859801049697168831529186268696863464668241511114523286557991838900660146000795900214262606421498168549352934895039818337555456590162150682921616271737689660293449006283534268292033512627463649651487547630974439847631476519097625792639240306088657039766253267255145142457328998277269823689411553920376134165910771667108432485796230041090942808448171876060012031435025698626943587410067074602028634647938949185040417813012077878675371772842774446760614010366529081684839648313052774706067539099934572653994339385171992293113496122262438289325266878846918549503895268171863387493563235586574843856213021983291498155788383495761377441087022754976391343362219135810468318214938489862110988800317017667299146829971862555479878823169828696110903510410550271966861084706373282263043994630859710484406266816130123175632490679936009340058413592729130568826483242728601059725535093680270075275437244572593352636547835263861989864795762182348190178506549685290049460736433184254814951624957644635029176655053615640556833979238006317163222960108732832798897318720481219669205908576087145224843043712320561533964706733846635892975431993399984099413447429805657223595551224621221224579372721188159870958923826868769358772819445373227712680269989646710455809043307579154238741108745797093592220552873060399290742933675319149640134758173890675428274076042128168909926525894178499134060659891761687627917379063129566931746107353525387564153149756859531179445680580631807122225419210932700673749422708275530369344645127446278112552836087614796709254051256718629820310083839880688850268429719813642846689958535101004829210971180584244101025749002049563474417822109307522686787790738637155079090324601006039212902733975607681742222104518231497332460884082370523651044143524962269904445949170984139257846019850899663740972608668084455805748489519738408568580334297747808735955209887868871000291445543224507058909481774890972711073475933996055247103617020291962026918838523291949687089648719974758281027812457960576000970893077013168753084061756437239686354871569697677746566425512389581790214129648493743543903677355961260830769979986387912652181905577591819884955543104311140433364482395910364994528161272368233152274907842874482735498773608102991431875864194756448153350144361185827671957977715675289813923918191726350089330480047094623285621163938090470830661204754061692678875783322895411383860568777446206837719497521653086932339277760481219402202110533286671932683785812227434097517251892772219608054596844299034642573604538243045049806859772371421632814842405338738284799074777933129636450884055603735512956302692023121934005355434123018298165622048994434288006192438042561233484921988195254750782104605975290127068215033660884422547527081505365871453403068055199124658669600960328578610521371434590890445323255201224578965779851844570310160425139074253750062662887290074063769271762221216140653111618861818200985061682217270770623351160302166487810370541364581251659645659747288168699759026099885499667542487735360630514212165724962617274252113206024380397630981579785906530892049490511145955128661216198633641868095313294880304711468441438346342122072186838648519623459875777073072410713439119368267832753981860701925782692834228466838661066400923579450219203783631967151722441259020274192233320204295683670711487735836663055479775451766128967348763156177456581838035701052969977341548955057142240362565272485106145570331252952692483305301582355100686510970615212007171619816833337187525937377218994904963001090868102673046576460884087779910116485386720089882765973892539481573443274721360726516812507917086683219040421289311068967934188315429921436347129206401154876120668658528017189184293928443809968948214487529389100290859882136910343214440783129116691599904728332524149186554829030649305152890635558690834367673687578155029149343564538702639912518553059379612657852353114946327228782418188579819102342446019648709024673250341233874951635578187757628954845134541426484602305440495325412041939408205637572946184378915547301613024308364281333022725188030367603614288644773909575365570538667768045027113897290033352616579814974570034849820064650124192638480687177057009822463379573509274358567621172067062289585824120972258222414026454594344626438830595662776037388428350877036865517759144163645296446957470345407724751866449480112830694546850061170071164680128043716861620285013917556939518869457449349555149618231404484020471042270416780830424473928799834659496299102022948266997510642152652053735893704943481002365629292633856947137774717988062302895328035348812399947341401450786274413421461319254613348524362468512457175352970288989266979089682682602867361994966563131672796165760936397125158842315524428751075284640089818608783891982806351488591258756831886900853434316948292334027271396307261428914153802407433712153096129201924466256499200517713644583219381820012312605731601172619478234663969842998431586354480723760726761123348374803453521167267839814842650215670788855570727600179745151042509127215177298670137959907416978927404341641291713167238815208392211840697794117757164467159071226835191112317150404256848564323748120120643373661687087088853458319170967340853993142557888472076275930182837451410976840491652926615119623793730117029326495230135264558695859954200468594533119404443307626682161626914133557782403255149002926177459164665802760040833872709815054274410051949180124592841481323706181627072498923030618564569698084094485172261929870486398482121124285756928254131994088122910548463374928845143567934190326310590815388629508668664300030670889215704181455685113718665534199525850353772039706218259321995984029567423643971064289667448966415472056427856822504031986595820994891239383941609141939503887960957094484986798950148134874983914964887822402948843295417118874701368036187007973851400917722915297111676829285005182571821361311445096765901145742154932671643698500431541447637057764491702813308383908712268259672317835791025291165947726356655790502627527824715807694660661927737658853338472787953577940878340640715179428789346209515677082098042094406552181438325810271223965074323295410310518983333099312821199757278595096476041412428274431538065844898261687950611460601941199159174275636721983095976955811636315661236833970383193905720511727565688979258641653233989906349863210935300473347240370440140734889732355845113297645983364800983189496701631213707646764081342629931670949176879284535183855699710895141596685098605993011891154683014045097284618938795864412809784471271747864601175010724828116228317495304564127455129462467964173328514038871988049829384765937485439346159079924670465655142359292547354049489583409978277743724867062160465983267821496413915871852024208453803412501108305894278256996023443291653618630340965607144075020065641286296335192073014581548610923704044929483527934776437943223152259066234879794192511334525793440368272599644701162186167530682747185412976031980631363384704563705790995478721854589849041349776798840091753064500142340113364380079903406092364918938438762820816196270999023775560897885718479401937737161990071817941153818288191009706968093135104715647959959276934359902144141425521639093684816835558919809981766771978689674964849268592890974347867086842425573896286295990815453902805537130282288745250394012772276049454871515553154480289659185676808253955025077246702307254653534733652181591148549606948849779054355577495604917076931122160719110846220205840340699248528042888244491582756413378980299690069115998489284645725359047528591438920624268184141888380158037893150699371846898741990352479199135719725818459790748788756641197275615416321116193127119901425577001090361026167407571593808235270828628323333981165065561610974735954079445601411455309566744457515358336469200667511057403822877925088105250883367360138172125754807133281087383645115537287151981814958068340742184630932864304987714812739217391543828602780570209451620807656895648866607221172911987791595564742538074786504926540071808660159575475920527841211314967877588574147042082162558798655015619976913528846880579320536557967471234537292576261463668791622369220426733836102637429975788969594201059613628287931581691874398724015234810958249008549233675173948033950572078719001239732529418761878859545959087752074397325737717995377069619677443885269943426760516071066383998122039678748279023086203245847848108393393865344803130474889435008191860210982957096040156890203598775257170062928086941711705884952290556299578081906591726602089607187495041410943771821017769457482314144937138034227504456098357830290508145032735685668015194875676291460720630098699678779631134821477040088865322334985047159427462105291637466339495422267824882512717445723720898314086367686330031091834402223927293597365872983108202324743310969392069753868354666916812111848056149304313393706452090886513073313427663244698130970648011111056263233911520669199913945496305186249154364074433578837437772393095034402438878146391473252714521742410575166667419133264797028432725968979554778408018640636710230003854670523260557226622293241155842746313314755547432146938777090414427776758111974579610808932643496371638850350604945949562864441416187941977919085411761896910264842174646160264720383660990389665498100050639807978377390369669910823940028712303902797008858499529483423583166593912825626812125582226513634641047806844321024826721725094838282562195027758621893156988542020876038466624753103918036219158849722679132268740670141747836606007863857033063251371455885410744594996771969626872285531677535515040374074284663205787722195492816530788801081633726256912373848770852135163639210813169759405783609767135562025838128626464700627226080156694314609715830547486390831048968660357007737345062223878406075944686226648121789190112721957144293518769624549832132703174140152650252935388287141147526186219016537476454815956598450068563126798998194626849203596476956959615555459560165102793878265883811440985703044516891373182711291254502159461961282069602307732233461946777782879248724002123840029731073711463111694164376800579742912818553355515949474856183787430784278709593204786052847884205344447935127228213608158886899832241716704219705750530849464414574749895673654955830486310331618534666651324735644718376564746973810368898660633890024921877218868596268618221891767065396456248213791273088448292848619695805348851193319695910039323640922069467534246292249939226424769660196455272452915359117965545976346128781110724547981137360120753357315816142239037688225354812624168108526412571181828030677930761448341154018249134919041276969377880672299365974493182483760692774690392387703114800057466520828847733834956581367259655219718181016695482778254130148251467313077331261127426336161131774411304162591739193006921515190238666089670944889497369511064470345124005352304744436042627327831157739668276418445890783382270809272990719622623777350877448431070339667118248961261884117842967543175859976938953360004859618695390833335450989762663416203213765127585089866343434564565761804960015007903260811288388118166588711507294374959580663933428193424738697953954517229166970701527565870189668406566556829655543609240307800700569735548728118052866170728010095838513908536312627410380425750097460479698827020990939006881468949402356687616210861263278167220889958022754554163696595777723180110159359413352882306726455404753035042563023640642730414522721456805204554013243386428896270679327811624863087329784183842696886647389708800934325687874502629546553063930289970915790868330679680974265019383983404975515353778622041633750063339112960131303184273265971565314182463792036079461618660358637556829032389419653991399952798417915603012305713734524621851418161266039563913988503064487666278772583503609113405324494967307371601607414762320491875168541801567456500625997555211219963234508789451443837957784282144330774433368304752437905198308996357968568476207576812655052057489752385915697414267355667351012563158569286648526637538677543384300115007182735779842566085203283348714133594403742401240158810164756821875262620765276914455818179628184579664440849020716319264258235797831995198806750535398786312801353418192186782305623295188181623404266601777557486484102242477603981086838826912386445943472491508256665628677957049626350081247832761867484631240001854362931823783083755354283027255708699798438189085784807977196262101392678667247270923376771699405006385081069287841091869194240914560764677970470396171827318422903841308098800095606442733765125993788989284112818980775807659565033365238353735768618753037573231736826334539149921939731836077755275980450932291645836807760274223630104028638588309033083500311051519315775010243574525134117166891886221969387281142940618876679760073822737064570192587908985688090292557490685939212430004688169704231458811748530921124624601390296798307793596503799439127733261761472962043314138311761783540939888907679851332407177468405238094575646491563687154559781264427864356740474631661669685647826459733001316022299168137257134296032789235912674342612133918097698926607874910060324221108632953857763243552083292192518560042455766711317197346369648961128766270204512019387176899676911687702002118497556604669960902351533918768277941557055881793441316237125677636338510992109562136882192906876266788239492934524547073434657247436875947977171841510651343228624750732719370703216176267379268027307310313617268512282567071156435720133360080467196661660520719701822861425841124603844120375829577612267358732752429322518101096490484757179809443942246484269659427995179143196213597543933544781346909551076446223434025451638132331265553580661617280998109860078519434653438752577162229870741339529411382802390092093688114891029536244148934977313106934836947249833356525705864957030387322461719215042906421298671169437462369172348965412004611981963016195021086996362475578050243493964936307160900085975087913641553113653360073557769780656296533562883668307376699349458227673080863248429872183061283700635363726981084889290879928962836777383588089293656341229794536406637737836119539561646628102546900702136102778487784972606678258222898292075728617365139010484395039513686156177130683460799177084064880573074170333931593002822090076466849313867760977731416937577654028502323723361299533317041244444644406518734041001530933133117282535962043889822990908987200628323775234688870428153024339485774365345310976360194759826544905464281604310996639410072840086260395262585324530951418412407415740403918511489678467868701232136710490700241039402073665586536814574933596734997154951075348389013993671397953832189749902541060348045874225224116947278800193955989542859365186046423367985274047675270085593527486147776005138751878986278183278140336745739156130590368063713104383225242109597763279366930175746421500021948820879305729024335676572236909972304934683662427899482144093190633314450122506677235957888066935297339422897700741859677575175509551203891793453926428749701612378270977519403017778431577228323905872156982160985920362547937278375349745813840452272681591923628156765582088328984496475561746807363593132183258750748837924989183252140955463083687349878537255453141560856176122367719548624799149126304124566318468005996978186808057469825991079789730415291543859623091104977816548649849612159357498287008157689699381268994208828274817442132126037121974990947151989309400156571226330560467675769273384828115006872396165376739259070472347176282987854876411399885491534386100176990208538252490350165956694068596502540222974572233735400151070976779152724419087833530044694612536065052577233724174842142401527615403632134882946263450058054564892153741095765171434188683755323801093956559259031565574308737721614440408971065610948123693627561386501950545782463442190286713828635016151689430614804244381675650837521077035356722738581082573439273511300215715569014824245314223440882623008058785947684350108946256011238861839364414402378724432520884621482723734663981177119968312139666130822346917778783738455617879029096074393954798021646671121498359371291895501800809844487082719473936146784207362196304915121393127551111129150536165638448260102710848797303424639810461968592851085010795410888923208421125337574627844252613730693747915287377751370307920410211260571945050728899819563710618502768131470144707934889102403822134413809409804558348354053992146479572871532604713790186396261923429673152036392150590501075439820201225653087194577213266546044799808917080664429112860420090747257637656509612333372439108742559533299711851491140059367614238337012606445505857987616180319903784771834853585710646055869843184100139307504672087218073656627922984007671725614979887053149812486594522767711281677820363844512686052197072350225998736837670635039020337898687533477549685142193550909995203267343511153607100954213393850768364106113968914543101616286219715433703407105637987767985880599503907188492400790843861669259943272403281625650299407868021247301855521149013390736699882540038094638929476192629869200107168551862936077348125060887496598671062360938577829070223777975994281054108567387671335475089470125975348545352746636473272982608010595309560521249834436839408665378520778585816321852884513063593663451868083722772620042505678808013128103867069648816224398239559044523945594757701303672621392699665033831569360073202341569150360705915541448822590411196522396590434199763095777066533194900466272532740887283977808837918073005627776842333555678389014769275690356053934180287507871533507737341094436055016527490374223305016578414904804471818925849891956273604356751775883051022261048026683055080537729112974002353852548070604291002643256729928103562145632432178730919498533436987161121027668905424660770185941686989192052040194771722817417552083921037828705628057926424441016011269161964659252838451512834648927247918603554003322025084524741024951840355465959574834729156743431899038982412135151182448635390256759850059757262425005102694420992490084960148650374266328301957962363861695044663539243721209635150142778111759719976076610672237050097591309915249557066740753373348632200241542763838990653183751204779530371504887332912635260616859430373046874109715426376773014423204010835428345466979398231585664568965615997839774499618098324505953502651010693103752000444784173695118339058142951142899478001931111678596022541557072569439902373350385307957010969753371251775042633381173423225737596156381682658090232139466259957337268926838469264172014637337044395409670993583789831175160979089351665513767031994512228577470088039261088118601276860907988276143536375562294573413600719147368988248291106074106195534970509140421005935719441873081865810919581992952194979527219703712213279111830227347580091192966532220508795805868626445259911768531461248026418150001558847813686818245187993007323930253483968164862939942580380621007198781871521034237843939615562850975656085778905450799716734742778935536264668358723600684440673331306521914638056256177699170887031098142117204202205824241236187627735211223373870916925937154432687109713701230860272052859293199969117655032374840305500115982296017304034182789271425136560853076826399008510297909305239677795803750505140083690672073507283122752759359281547255930484148723130244305952378653434383252339805799768872541461811240320068029037637820147642343421685417187104737377697822871366441779910632693274600380145796350394309990888917995537284285612461307584911203569086749100413903185552384878449414437176399629997685149752772137602878926673931796993799837948826935987427128238233590208524993236303015984403184015668278509112323061820157864518138413626049850043634681705500711815621711052462824121043380879313327903441600028166964077438410758498449432944028218651203570523039603412201175804558458958883971257999477234751039885971360088109280205527628665224469862208239257842843161599339467207952428846397828598727880935688565631318329435365355463233064087342901392732259102877084400462553846947908239925771067215221061135169515875901174854843660556159643125217791305876994436626651177132175938557228449620450150140195863552877140579858886298013506671075254220782616587658876289240743221144164212791043911150475403709287696032843138880143671140712281966301777490454246692964477096200465862819173804085216967432661255488582207213364037730617508551988254619896776435538495608488034730625001990704612055268583869854657647828856539988694251042196345164510900280494582078727961798128688532507861943508500531259689320402100101598009962733914892781640997905020582342029403056554531098171400413680053130321597945820563184453284680905055624783448752312891928280914778539983614188802001800041869942202769410902561087438049734575930158745898061197433490864701143743278120278888522247770755648969514151167874660562343795507254495681224653296158212722728391910663791633674195195406208617268119742743196819407946967039301515124869873261018944071461593173978822099044520494823889853799124296418075141248993954207096407486762178325438593388616878647704757917089147441356734034904658551064941101268397836785817566190391227068542247904509855493659403453014911181957008792085736527896088528331272813132730280021602788466640268427918830391741428677380509509600030015740300248034667099229327609704584797919680765524635766569494694833818702739501872924187076818828669505120739584850030453482875025278488976816665706764158303653884446055105777337183961241760837055746869694246514274815758603542848105233938030365471737952836847103209344281759393251843363489477933277444345978764322912677987951488079578776107082587049297969022899989644619430304796874191710439493555268712824689164776214430915429250516331483993014490892855213175657017813492950849125992618914647203335127109952415289921141881321854916658800219848401938361901092293035294653116796502631614511953779980856197757961336427179341937001641291418789494964971414623453916557325327808605521219923951152118175932221380251533711766815280776431996691522961776558608514629763671076928605224854506780586892105893314197626020638416297408998800473097302890408693156376133365456713975020904063972844301381828581921419901356049205548020775966834037273076008232408511776336526516156286131471148791905389915924629773734304618310071760222789330473344313984621961370309911459412259501698014922549710902793052961297896255626012717705706427809278749550556845222366675216664298665415569152355697527119595100747580638476941476881973253552665910287800049783315919320051029580730495706651636139067809376900617815404568888723654623656386759712403786921919789566786715714453387026514339632489503483043592399027359249963074228918827423100353700849120881939191971897123810573178834274748688845085049824519083556401068152973051947526346789881625424485790709556125112527416502703782698728590433920186254578002680028693269874690589508692811320566967818665268077229733446106769822799056750651173789477319371239183614241708662981019145400433300702740983073581873307067999394887445117784333297098155428590314580220916957252474463979964086485190052052375199737451231037245472689469001561215749845835073510765743571326129313807925263290487863870814312836477574294685678990209748320443527527184611953275591363015220159274327509949958558856454767428157449308234060156790064917127135746885562423888540983171763722764014550610527062282893917711518666948140263107232902280949204024491902252773799286213354862821688646217447799384773617164131280365102742824606313206968810814810763810703957093427351930727128049789134445154031740468208300081100044708765867206821612201487058385918511878157972607285045276371672587089626325484541608329639828758758420216851973245040005838815692700793757978351601259335033365713262333921277597013996193267327502357535747286557545050177445938854184148910491935677998102180552853791620543045751341478633460279623487957528616438043431440809363839497286381166382375692516283634615377205908213617803345366347536343299725837119204377399733296273925042148093589262517503065541901419478556215943337687712429543991102414908551253699463317801494501715624615460042814776229214556696510838519151334139923919787221555001344674640491647191669012061642875588897720486801223184067341295873352214409307503173435986095649952813997441905720076380712816065430688423480134677067440814916128141862420053896422864645303253604368770269015233774493018509355581104610700597135247957825269206187748865351758939006408140965291427783516547881799382957178244718715313249816206911327518514933606438622444075526342379467088232562630034076854082845340846934568511767409689029614303748404326759886572944913591970555902444331824110145431661456371960054759129655622219713987766970293428303799708734980797071073862540452591444478864340185807378488598239533340222803370359181597485657993166897225251900558141161394435403400606907950666861466542488049182666234849043516860581140674488537154871940758885669861070827828131153085137149984871736140147408440706303018942977586461609867641531562946314328935438424781012832376632304523876612993159145704840532614816872865505779996850406977999816749844479792237756230694459248281459429966870993428143531364043949003608749219853162941670394089975682556939704597997030869808263562016565890952582877110316209939402013110232439941679173119186274322104095556759413713805234643520331833362338402146298225279387655429390474382061331518860644723851146924648790686578277584826655157287847001447890189183151854592841662658329588133264628887310730941969150280652046082855582836287287084042141326262605345737280421349838224738123847561788510183014236694511271916341889955917358920368394525547387894779742198068212850871513234594162695702039461976719274718206126362092866561825424210477624965511162160677505299589864713137061886792576564228757760745802243177901339946398660678944625416934338921065349299765186363116868399266243743278197587839208343219225820998358489809624323432933314327732112182781366413515363192487461913184470986557648601924620676462660247943106788680039280995914972778603341008299486954112150776883554167049774036440864609432818777692708586805204148274955239680469123183669874635914592838384258947142042055263957700234965682069781748780120307402247639556069897908194391235450598620406432072213109948099257182837382128709948193123077276566035527246794890765355516974201212035910326861944991269390875882611444985474535896608113589888470305050548521906123087557430024539143416265095043441325429943982851476943647516390156897320651435856554894044876805464151653047513403311775698558070121411935963802815657535122324310948884185860590719038076986695758115378536328479846087983354703307349083942798771010110718256504208691105051616965624964187971217839731045173656915525655484941013993505213735879171567064824421452953385161679954457740683084577346618066637878819222849288274553440844051053212840700274965750782306777195782126117495226603251323837395728350153217476376994573995385510847655935486227845007861835487269368531240850702290579968699720736612787253690497495721775600210620740167601385546325204231868152833146048415868457492791947472915917649072342834348764053968573797130945289851008079304836096841960401099221425233746360717794551603671068049391814600208960085938051848880430977788390642779281239279656053928967372183467484535185919681121506535341930759142797018530525175872447244436191786448905537731728116845103513844183770016705818916248194376873915834545793359806735511064668045243484226240196849555454778449416783212678484784026389304178551628903679274710172472669790450694241025611650690549804831423275195347586811798069353320213592324462416355793446500186206525154862438741872824482241734166839056256529909499813800020184749866652045375665124157374159739704830691273467126550320244168078904490406306721625953674715098168875437636281601714648531311615405549383259348674835350583609641020860040241250684285985184684488348010367560335147926296401055780615952208397497693316083599669004776656056413349597744310570788122653400139420207916916919224831582352515728581836824908807256531262880530469935931408369103688002905997495694838605572615382915222948539405853748898589447571780261745902587711435721933907281111705141449569558431597236545101118279284667585707314738977893433845636600955709094925355332309867628924609627730881464046894796870439580405811804760942685983356826605537524300975658398241180866325287797623567988979780857897531513878730227691627799429345437991706179532045800723687264715152759414562248929245494487706310842848694081779648941059935013756108419689813076859885173677860884959915574078606943320552670226307216477451877890176643750450157052965476187155122886617140039580484792855109722082184952615219870269668618378415620480949707310600645285805537227688317118751139509815308501594447890325955019367242060500516511025261466901938893318221424149595120151414107440435466488747489301603470594651222758703192424240326615189444269106017770543815896840064174056211197513560884251700196681106021583130769108128409715889119700143893012304653942430359805705123429815553229591722003899761871054251719174047630744233429578446104945852416655208441217543800145713286607747361324392163914338298087773303598014223311712380094916580593054669441187914772278039311818374748432507925717545675271866454676598992529743964112787522851660998460555407516501681724605763232474386114842772312844341578825841622480679056258196067385020016450198416517358250443083266002376962374367804158425599224325762502169603819162445235303476271300243796261763551209482357699375918526641380516315462851179304417694167146613703478986052568227404101778295259150839310063364840157618008923899244696136122907871101556775045603896995792902290492173204640155011552890026263558740327183237217985674042184096880050730310891560810455821941181407720446843201602700372046421069483642829912781201199837720214255036965582990109889643433830607392691373313244733305594323278675534687513099968193274309966346368023632966665089048091507541319637224175027799901808563964320545837363470811078887187203344263610376814251005295243542979249318777420688920193098638363925030418793266670810394769914944515602595031658171396404417679686517495288205936842071217155223805974936922644740081778318956537963030901344937901572774549274028002292419942230160946394913116885546858532885084523259688288856398530170360641340902489949376172947686243363152848562189701020788783942172567435881843883207639017353687400631422551595128022028209378213635112154408291784405979615603885781907561577811339114316491915114976251355771285333603112973095170760701608306231002734839102326539867056317208182838676290851478699223110805933173784657525202649016895380513276313232847685611420174989464743665551119083363686823574139568598178461818862334222977336212304004119395127793464835441978503780465099941127435152828760386336317384393658523950692456455655526433998773389898511975893693580654365347011444721585111689863258899110970615818700369842038816308953370365191435839843874958480935222954850183316857373502098344198980316701633521120138990166836161941099465997133456809554990598688974344661916210137574323043140180271751625176404845532075949368320862782179585661382687109679896563456895213867568247032986882566062287099118989535124541259075374676508983364010938852724003405063926356885642811165909930126800059201685110825374708912042184422434863530356154370070047084519639085609691808528356215653054736196063650483313397375738941445096473345808083256046558779313568076102147555800151391345898798565942396868557619134778501243462865073610814406430932702120870659151849481908595348039137096833245112878945252750158662515979635051386347421305516283437717830272197682109706910878743355384201492565144847848757598740442740593377634390660570373740718981249862618900133044072293311802570306183619924613454024022692479071707920794928350376328798618460804208539958002442845520636869577968645615159715030447860248455172556820126318823316157947409130159659563450265196675732915394302450286475116954767190282735289647970303234870735234197771080337687975877926221941769383157391810463276101897823607236272743612501118572036380322642167151876324023082427369531787581429546193701241400257585171938318763999164445450690929301187412443830240972266511453539021643912528515498528319571118710045376591372613130637370936097406798706263140835075130723108608222750771682133444520089726180215122757461856997341670724646486848430683881986716661085309457265471690341499624258378378521412815199678246635958377698067733959301351235013486645989954359662972998667076983904204409844966567523222284496598680393582515913411348171194349173334659648834100190651782880570117474872878006287792284729498195030103961825069324762594349668384736117621554137213090908880422315649200906190644238704406109502280692105488719384611577594080265395286119119734911742961177947257803141341224578927811596677207476266313351966307115722481578339177104471101342014473078361320700545961712278786163607149754687509929326419978446336412304160247448165609220737803886648783336540904629498520428010602422672851777536609639280633913359708470109391832299627678936682434463296537375257475689030501386642939501757931210673483846112685793533014216645274452406946673584644709898741783579449088414810989526158810182266753702246596958673612716466340618229037328822204373685640705250053635569836195069144284026497300598938448892485492699104959809509311461114053479344786238813692920061992799099375857005368754079273425316218879174211063227142159058528164619002781309517323130602799871542817524042496197188086962918868344054961540019041941526455453519053295253740966704031754022538380581842617722382705137416603035991555938551641466777018319721368149503203338783864281179404596779755908822053993576373035503468697657842593278839927322980462054317162492047757795339402361650239517091867467530801225603720922332072306359306560813353445875404737200971531827330454590753330727757554260337245347079507301169662377312722153595880322392603276096536318233343470476059411240444406863055756750540463114409518980600787429198830897520642651571819934229981920052145632067859718587791053973292578994404875909128956899254219949968348405532022797973939355258946314065102805913986629095743292367558801674540110430606439654045994252923870409571066213130737523506621922997577440325193902085008428585687977735898624997158508849764578614408343919503599635818962200402408653212378023091930516119633779737117129093408390909013603833197562859979359215559769160803327857918803482181927332018314783727395311960421281693986964568693550083135643068261919405446459491496457806172663545539157336404675148349780214061041203742926506747738661274146660928922865545822723960071706451116589007369187247675285093896793034382039585834899556607224521344005821027234484609346751780128513793792725674498828900125717930430796458382322535201110038283887561526592450633481612016001509794099709185967554561319024204952972087816740627343874671831896793750220845670429884294246960250887348349816354994092239349139793283315547028505932651603315279593027099428366524661473013618089972518694231909890334339296277644804156884463605820013135372721529053384716909090892106647703842817397068071958492288794688166868119351559632107691295198774515617484066958190222439450328765855512240781025854649449773202833844347616930155188485325311550965778093169672465617066454847038110193533921996699050987928211847593659718339797592608465583293949051582614407200164432928258769674274123307248521636623121281349257241239272939934029218299047970332467757364618535289463769105713834418911727544099066871762530059256037688390104676994241229490901657484109151980107445188764556560569909489133639273466112022647609075708982226707839944334146419804251930387838714978768584903136211281252865434349808338016253867955493946704689289271635564244164396379213150595692689781435371632636154825838002407135187590880953746998149694632793646100773586115086845512909185322588341309503178698837195493035016082772478810695124978568775500292444515778398933030630811281654166756399144559096989505179661359630726241492990746893654883880493939687044082843682512662635338326817964657077689830484794836590136811903633099695966266830845792161406283150362939434916314321463683209910268625629823964626565292667455684933743801362914787616772119197415438235222818799173699711562130291364764975695975179054508739795770323382930935766653129657167108345603644757650801908180100935294436682464776364368641780426837697780411547482857539793636152787518177785664507051560319628190432591988919979307104993800789961255751293446618189159910718825544423799711250575934827504596010423580671024185553536176596350734247229391354290264928840147040916383049852131156123778133312132887524122193942773810802704865455919509238314057315817290719826008156246469235841297678631102552731072644630419539708564488053615336962353275277576324066277525027049886170119537816733505254470406022582364830394582513011378733539276245818903546809861537356485174980349245140623302708085053007604961923669656942570268679261697199797046637450017687419511534026152914500413696736933828354457280131724349982749687399497892392817143473423886355810782602215889524069127481673897741187019867392877974689632133076089881950122678218987981073876481397376051669464085101996122170078108278390196093207704240226516128803055163009949059789053782824647332695973401083916209816382691566702423146239436438461931663994305745783163340537018253714954031619388670188714079015755893727393073951239044043561027551372962170135376274877760681055357121461365521470917411594267230187889016551056772700376471027116578944234820906109712536685056194799896723803981468291278883992228788955376523264174924149272467491965723874100974565416997560413695546974882845883420916226223768933009609023044633711180636859398188587424626375561127633619938214460470571638243185794450958815692409758378418060397195898267086315942352547279767776557236485632914595149028218638765011076746216825101551183608975486693082511226908445514289572626741278386769616612460751678491644955356081770917999444232952765645698143848446854886991550132234896091234524341739685433501737721419353178822614963599045854167332092998359184980340401378300456894453443012370140135312843271565086274973656893444015767036920530185417435181289837091238332124277678782638824430896163781841748950551871859329038765426875882489140394143087841180249174712695104745714620920760995615882483255582829278574924940114356352763838532580856648714411010492747673415790478647309787914996936999493219399583411745623224408703371966168274125434341856550251317306450623333205339927175995827247638987461440021563039891672700982502591332698281747971059039849124077053495108711696318631011376943161787728433889191827931143612545696603033121053199356714435246338082841789671027148445931257759978041899277818340177777442736918087609717371059760459622771525766038081531139100599431038060991934932509762338016360635743055127110473211527173214253242108128033003792769764564098485568023278403053460534564763370156768150474521271881208411683082269065695181076103536892216212333792796937939871326784374478360277293397580598095500317095951193009724683814896225223981605068194921284762911336052748065498814227355247002825047738134259651765932849552761427585640467857309183790470910448245082466479127638645158060721373429347669588025089500080844199935981935121588107728291356578532280211650505714393516044453739602512988935717226435880822367257293025911480723113775818609277310580655750968710724267135728071550144300764248736894017549224250822290417272064516398960687752604573963916469500684529469374143291615197638122306577697278363247711004369872139851634682136368370057734279169674483200709678981609822537569627509134772602642784417858652259807253003504543467622060844100546193863769190344154331349326489769089808260371641782359747544609589255820649382720087527593156974271397856590858735669274561808874111488241242251818677112541308561533036072147634485164719016677251307584239496399433804233325988362831088055380086553347652281322345788007080372536052306506568648601143763573264959294636747329367953809557293762617520200235563791857865157775517652297717673678712849332837946613692386938013917578152812780808371775848004619458087283205280626597627648581787767980221871298228326017826945484267164663580800161642577763178151763194294439555474149903345937727137795654973643223327909992913531562450517460369795969872222716591703436543383449676730268528474394107805242967660282428414764533475700067976482415627365173258958253268054688553824805047579952496941572180141043374083558882666695810665385426965244356073737183444374586515543827849793293956893630629439817559627433900252453705927855901140955238710771798714194451947106466020524866398476139157138528662234568471826352969435002504942384378619832272258654477630543283567196790737164121385846347526671890611338351091496246160893164200305947449470816509303971078757138840395429415097711834958446465385181228429153184991199805880112128804873395805239500636545944206543708260580435339616730507596714229350541771156506107596714171648577414421403034710878261233564703985680937965302457908461079057757310469801837876839449237206872745761753533242091335595663092608203679901029696438978024730147852046865984436581912849558370917834855784887267740898084488422333066124747656155329470863331747998847475405603648676258866038505488165004837705627183092429190633879150505372568435780593693124568556561386225515133201018813495785482090884199369380750238295140310516227779732181926085107122322138100704980037696775540089441915627402372573943180066012042786638460612364005024972748302125661857954596548955181042177405247564110761585880205831992171590975506401577273900290828935102581113214936835976400196828409492520930835856591825660974807393851730454862923283554997020595953367610034030554076396606617066808491025268159546087585190023836255435021843287541195611875828088229294053314345496206593296593089840020840237215416248672201488631547076213110848598034093788244580315227470199033428546778928878171184983468140855325896978733475828966427858510586602776826230306374872324632331447659739415651545129357914566286534343921450384719430226599911753751641156230874362475263300651404146796248973822016549387050288577331241134793949220345375636810268635898202134947382194585560918182949892178166940639988184422595265420412270509803661864342842565827426856762058798247797273891391649871465316356595531145261573416321686014308505377204154541077191878786201321145635780866709246577659414479193369308566656081771982324217236891161667461819084035656104895663233637866653268424045405451703203569333388678579942280671720564635069004066624448229194119887257395294013301485980327597715187426510031326998052262811234420254263604579575928965570208543552965373054487890997396405512266985231929349246418831373479682202350555116072465941138585544333555069298064909033174165555081213453879193932641778175270636341507998276051527691270979026755875717139636903251938741309638640301787782805127521584361503276397516519146750536755682026538284115682276073725394510032856871255672334936087992960547972820256858801278639713081860478807491614852781180216863295561927517030582711852780544931008127691608455798735297527693044483126930376557409939977990780956222933130626097799261914853878991858599278189741554677947422327989588790411475650901156165324722729171732770613628156096960727979884861147808114642790995377526648396354080241900476069735895912877132543148268436811151421508533237576788484628962323580206998812859762560263952248042845388900464865566014091231470426660170616925624666334883187351365904397156885520073212391686229788218370084139841367046391697313892871939547645416458853061797116644109306556130298821358994730809080324469962545750037242760007856010915222350495621271526513319152142895637070463568896696421059949696574203950987400005950400798627832812332829567320054344637565358383800287567841074825171877270272715858061787660399188339378530989011096148478037392267320635145399374926795127929960107107939445067554140041084133833236761588026336272406271248968399352697791412152679443054725510720452029186091812603104434122143514408000461736828182190997052543199383844863587630018882261429315368978238914671288723057182133278194653616018764689248531067998411737675345373704223341934704391991041256275276543342341298377574827193832120194483024902676525198836224773969001101640730679438884774938709831785848573594998543164880816356318074016127825973277025938224518062393565821164663802059308126465320241181578489731857185500409840551476591453176765213718261586083175425242377665077168128678841843759152170198782193234947988563500608152088285841866957400939145179407292427041266499477957793934447454295503937716551288009666362592034884016047287112743821562765110447426550869440810693908811363827013788973370992200823520544341303571765243787112731267497760086039148865249688989061825196091404992190581554672476763385438137983507388469676172254765352092743155168248810658829973252871694020062436836720941617515702957533590980123601773826760203395969076669957989802971923497258875321028497762633983449789720702990973989775972247603701908974574573021699595806781010433372744877896336191872374426723340562779117981620909608145319341360543495142155340416608701845330883936317204025062655869489917536577075669884921802182621945076790203220574805535090967442210552125473462964980195175604981290068334648267891227023217947858564886008286875602695315680795837550287753728095504032494167267916272739261975061552213468230396285277538710418992408174217066471767561756157601663855890309262972075449789114705186326000821301786170304642260082772987051709654272329577285921073788938834852526222546588485021275239868463316632780170818652544906188202852232204714292342040045629616694046680813773422475145330348194199715070633303567636329222247378337047580245892454194807593962181470365408483342274628284929591177774946264917706337498726769012191880463587607749509907910243098670630801088545374908358601052556835450197413763511016626385685162410908444602398854436557714316476937307976338683941810524749296800696707782600215933634810606383438530764778160827052203453912179162573897312579822308054705180351527101256795884632083612068039764080048622896499381434002004285793420320936325785158945160365289729792217392767148873873728442478470496215507600222914653853530025946494845410381433657392413376857415855033226964408412509032961607282142598890103725065656169783774807760299983716095718092876422813321399703261269765681997862385689107453359852331731787687312784166672308845762912722183025453788049148807460488120936628506553462993191045069403133076464385428102286969059946424530443165305274691758478296612933494178914554989915610807960052584234203903599691240810281471208793822870134085582549906337284752087886719047007231632201589563299806477368009411751487901048787394420134059912183817869959594707339842198199542848923400780967573507139164542407695810151349604157329471016047784066379242228457347454688197229014825717687732667825044638662588144012299246668153674397678154186529729919429319444098169833647651763865434500360074176842805645876789414789839953598824520246336097394667150909743714329157246398398461537531898194824109528759075558854188250907125650266235716988832288226691925995948250218964486960505896320850714649968814394477459144052141339539193311529576414064866935444311885282598798940208676429183219916900849844079289817981372394866824763984348033303727743279425969011064797885627966168920521153273573384672977818818866332869983560618578722379204686905411977120252898430719495864839253856019714981406342370915096983414305624066617456716558156539989006169109326299270297158440010605791276280176568356048444761233137193995067685109537062490268946437233077328628063195000332155099290905326615973580379672474106928559766434616508424494295093820259588789911150323689692841317724859494488114628555671477055665148505975486730146429207949458593914836721234407800313873453081345501205953448107762823923240205022232952733332389520951256199333515088079304945895691007412039742940349249196358186855898045634148502243105793615877968880063948721323099864540703104576281045659616190659107010544056496074796040466218985175986002621809745675208255618732587878551124792850293801264796720149603117979768827835232593522071390923775618095698685091010824958132042421303305777034283305470998560576372292564608691430731359137661539343519631286748570042229095874549603750689524827165237568602731733141382535575034183561070329863722343222262900343024865190641800924913996752474394449988961297307026372801626303714934561439128395408906403217667256188931209955640745742809565263451391480974526133416484938224593701560957265497683961871454047081817776444971649084092943938728302145794508945166847026289584747402459298016366773439425272292315825967913048415740871534766112627866078117045318448031582707208018533453955165998452309332728746122554025112360689782455926313782376029872348241055866687775307463186372804542682530105290915225181643158194497344090436946180600193509598872368648734714156296731819704495689883648557468389943456467797241748062481313746321148448221303083306224088475045583279683397442713749718212361693379159148314767720650325759631315173457823764474218541517183756539381318747467515931532525313385135686571449728350345208560314542613579456418830096113649095796857273411494396030251999246221456361729318768342187856434728328711690443767219983647779416216713728645000539881151343993035259255089668491937159880096385962430690454667920245370469896179056600712754024563809636337222275084867780709089034546230388256431139745291304643659127015846558416836213525170352905285273273895841380725079108190819453485820285153240475388360861262515965987687826700242216901273951369962625653693545665648821953586606893694931722649060173279489299918710714066778194950661104118304494917904907982646609374959484503505089553845529078006466972138841035266776496726454480185063970785610358691206084636022727590531076920126922290534630373537540941420395363139962713169985772417721987605119992394900007484070628771612638941073419940191891759889508045673953008838511484640787776944407509752088079718666659000007568905496910275314869556819157064895642613440736613298547021653191902207127604432545160038853872526186700906260012828997436740090113361200217298825896810558279411308351084511469859741266568433970248362244717654100449884991566889476556438995023095955892650123097014792511741985177799343114624120860319798578366593265183209227078473675768577123312826553434726675837822389830428285228295837068077334833333190519080345186104286936304446527974795172998835747002569771600959216007268137097212589408446196945797370069619449567762993253175926572317729234089806216753473923064785044863143239795924694283771724142213310782528834767440235317848539716332575444962212295006105571301674049052677139635564962278689682307349501729328315066746517460868611786001544113195723085104064582892698924942349452320522215309409353646915801654329288154076995260106841854669400114496212984530461000270943102583912652546475457623559414993996676257371076458721258645076878354295746569220213485056720071779957565276764287294266435463671611482487298555181957216786053658889633552854360640630901250299144016291309007601168219415140464420967147512704492377794171416574134612983802487877569746949326791521751406172487645268654003580727194869813594059870960314523472610773002088971978848196627741376614621891032185526886557875828895181711683829781690005320059227957713399797673700408610679511284443871284869253286104476969629955297424977789574767048286243887101619398537326434398238564581314241402786206574986243266604062301084066375914538890217176929642905287059561387985432377330784292218234790593560639859633857667968782409641249931756232890253060219885594948145098222696230544814612822648601649242620112855967008003981828999941150696270685255808183668158211135005746573283222648822309096252792306704479312390757074413954823313182475787703871724958286366819826496659788207893214671239897403581586537537332644287093124066579864396820172970817410394048316030807820529047892040439885197968210354866137218686360324796056712701180140387774176136896494638314450159027973688908452976920026259254889500669206278783902253080640257964200521735030701526962059540486122794152004459174417167848391972641485395879690105146224157693815370262364062700234135723216536688025107866793064817847268548612514556049632020692954849447286584543132201341614981550665656773577566692599728685117194227723525246893609668053738391285779799349052748189467073223535116593111428124610547171427418865096967002046379021428736523295148729801364202799678176364769674113810524451323121499889330534573793899787564385814680225454252108520012007556456091237202283875611026584510416469682266113967868279959385970780601726747586640729420889388884786072222508844090750168809764558929201516988980137365275105509122287061879567346167503069584003094042200857344082900751805117700257118186180067746719586992862166822243487605085388834110233612505057096113139779987697643775141338430840555725634864994569762154483890598358581272820479254707967731652754193398924900617169207547101831313366407779318323747887540234738531690782412362218673626704854202193313521547181540034963816126002541159240875639236321572977898425816631457497641664800539606938974224345889735656105799272502999520633071256993140019113892986267351640803606422577921657753224686973619337155170687018053106015623328988789639676040849878498396395392834875075848496824054295974469412070135832036549326861711954626779856995121568222638052929171483033664920177456174169179014625203978857782058872462835768894573897264735435419424608752067523899940420770893369001788526568683326844968595583608501851875560957123913114458944065011780136042817361331726410196982436187479619962965783677449625774597278880286868351524142938812055429183853763986089391821939607256764357281551854848200457062627364796866848050517293351315489215319756818926140807093673529548432820810926585302796832147287888373012429857639380583503437018319060459629442065895397614432495968268210387387971674480794668984472114803741454908788686737351491311198372833303404737957832437809074006676411375831263033309662188731053612925241296200398961803184977877315445652383591596436146538598279852947495636440990379819249970976400749942174431183881244726610787765367635177062486816031132149403855787459810145837822307543555719029987648228143134795199796079903976919916169475732753512469743940378130283073439174891977356840123175356435194945112042184061208958788247266713069540549928922187935743775996542348258009029182573862168014670884857024935365550107699765489412922009092111538978115011655970020497541392437127557868853365919962793368454955214495856470791358269735838365050641085064620923839973297249597012156446998448699511688614626938366503492502631500135272941124671090594916614741698759895607087349730118889623728773195326637386610676434732519448477627753333383289631478752106703513397778618620874615418425979053010433780353718650558528982007784152917177016998619008064709257448304317807399715144120567866871975245064050219419288106346675915362016206126465278667387368268785411917306962598446169588389484280984930029376808945581207441549357698210163577209306046308364390694644455737540237868634910886098153763737584815987672415895744038121324530701361268098202449192451337984682816307073451378974760044619620735650343624140889607291525807327275168849725591808218422885898120734490534445251272285393337961925507624139270762528410126419896981776920669013467075091414106631654393079783109136203027561183821159340855608895147463776644024719237822610164366840327673042130410188762624304161180313542485267325467861861834753994147864830744370282836059280697485816727420118356675776549578490037194293462295763570437393991671212290752927952769062187175214979995320128976538943312573463853108198872796667867576502282107460033345046483720196894161343930256914455527143568949188284038343144059911807849748594104064174423902864110070812227231667838338682973143445427227949625309748245327874241304729843963072799998779501656594752469979486148975791216665581596996869177359033100900941139233121229153665232564480975119978668023551164316336937133249650401910763222966453383716120187659073439146597417773913150443038611880646816299108876995474588912532994220570520260931233092649079729631900938329667960418056960650209303734963418726619193014306147704394368316612431983177349873524173525617484110177398419739873262724762053831110300879139180538201829679955910001741564333482904195459672420296222886249743985475250204199181349089871257818161754276072101567850051879867552775451072976110889908053355232658499463210299634637589597330625266004037801109477463162008860515749342592141236238877709731832862039930674709150095803469281872460717415689366952634755429412207895067063049077603598052388860654984645261440498191373770382914449338912026636163874215127251244992203152804573360219265935200039590554399068348893858522384769515314694741301329625388791308061828916482044452874548213378094950647136646557785896546690984234646870095761882029509027885210189606139192800704013513190471910839813692908221950950830826439783736518445370333854439717768632054722426346516877061277587889124381772129717051472549550683160201810571049132435502197897888440633334088330701394672164403247103257156635770873172475507131970389701055949948361443228762874069991860619961521177855355351906197050575738538790864907629464521513495222381859370334930123416893026702027062667971988619413611778822703232295455743939466660324830730892203402330314026125415890867416156681588571228079653307083931812985278396217813477216932155645416383747723771359024461484328895794107933246974122147897048279682758640710828746758178364946741487014336219186466242059661728082382199555002335703011429473381681725880061549997814752112351896666764026612122318675878720231825114352927295740785553213439071636420716207071755936744572369699468151862801792585788993968355713592085257115649843073351295065291644437848972310026634307407969030438924001335736414868636316227454885155886571813145600770578683022038122068737994080115411087771959427618351158430723003142002841698640138186005828421178300795711292656001452695047291846983511270739727913057394637007468400066977844664358308142442697109538610091999179363340302162658196124236307325060442856611523181119287032729957252926710600829760343286113094661442073516154358791928593450153766939043510846852004004533772738687027466355975443365851267937960579453623797196162834805397323626612847588550101190451887857322065111797797782976516698928015287688687148282357689077466171501414281083442927195298823144985858810351489719785236817539366305185780987633552559123151425593967383453840806382543630409126664516819125502071079560983247318431584589706415414606392733329811603268776436132062712247056326433845778463612802659339854807066330353170309787714110397331248435744259346727318586421821931141760534848121748128954227323263246831072368292478049441205377150388276480249860812946205642100330069333290784689543223528652286591514521261373581940032825259086430458792282687532777573513480225190429065275843780581360054534826178231204230654524463293761436893335401504422101713400898437484906071776063966240083488976388344911713558723569494049076883669288142883734382746627867989020392162798326984048309584566029857548252377446374198118030591804283228342546690647560164697427871133447267371541975122859469136596905669910503151592040943573441197298140819510929639774293433263911337103126501206338183208557637972120227023446459434022530858728179619571115454041886981634003938316622815115980710887397573189573293311667458657615079770491277852921864825691768631522551252177810037071051066310237732629090193745131231781901696292630989930813820743750999530816173131650552916435473102521400905877776479893195410149788346033998688608581407703686043532439156405474780003942312916343067227508787945404290387388491275731450065195990412515483509460168365940534241480100069571293784616999409581082131328333915427035958722694079654777384547118936003451015207174063768075322920284761471645599075769723477082524054068802930171696884697313984977684168453050564836802744802358349526548031344282743247298716965256777304861176760618303269896109216149915278776085197919920546354191239328788539578100935057999100503571553833736674150870336232486331998989154833458210934254789138448358586558996071214841867844048593411784359369291404504405751754175260167892983228677365647007814312511557202258217596330857476947311243321157377530087899896255481971998916271620543543479541250166458799493852627771287894193196049412228274637685954519484879690292244357723735557470634619935226607005548356830334239807643061084391910107945379347830250831890353601788435708564811768460694989367258320809652087571671201564364061816568028395318095293971831206312323109343656775413217684488209358273044878602121212839661320448667645776483296127659008199122459193793395709416857647178308897001262603519593456343082083110188375286623699123256117284857785177112918416176029206860561042852494481429287258563776597192519779519265355279636976242462051712091427700981243256471140121520187492405590234244101647123299371588420919926485035700206553327436665454779313683488515904138093267721116739193958888291958079215001625274137919925596825863933785524247038480198836872689723041228140804885912164934118902156009597807823937723045024991961007969987489339875195003222805989798695859552493742020518127246401101741223150194819136404946406149918288005224060903290858077974528110162012007592119950204235864818970420925292045429542258487125278062194021144538685049529546656484849028440776849202654545382538613722623428582859329861350765978629140274110368473281453670719713725435231130333356163399361732905110580523161595105964641710282415074153950667564564151980597211114650787552116823930538782737793756917422030165252877671751397358539042206081004249971867746639951606774151436512910145519295366112290801205912383278219039604231239770556084764561968513908483419598875385237257104064756171199046790475319713975624990078652673713122832456191465296822305238520465248258949984805489602387723844593743561554684152123437043554412308131549141855143402058235638858705562403717278807533827004773590522550131810086963398592673537820490566660786556052448966831618969104752694603032266596646676462199676546311437363017124557525591785921320388953462435217528805077915983219852381188829350317316202835360783245046514801898170200382948189469025453493730760441780637157199376329260124530830523661017172817360237256107093055537395669130383886406784333896413788150444273309409062398548425152434512549249614964333795231869492056464396258860698555443341979118624149574308030731050942321457406888026760050024150946779406337456489332790208119590352229485256393868852967759629259981570186928673861154568304068696412663125873225206156010807173970219964927833362916332710511740099705553609147243852687515127229266653239342455398330848016502084989725224069083497834342249967624524410137972055835357832824258649528284694127958911078196997761307386812506011949268362012047890074125227438862561380879884200432032254039700837426836113585676252604162476894418313418313257738017373633842934708949101729358045535688239148484961373253575237967716063313669673840719220331969462124283635276300312586228876404030960996614176934100167900818469419282930994979842798983558406002402543886967249342917690105481152840750107253372354164845031524804097557755258271265445241216307054887966244446933861149330401128983158704552038412094555895684878903916552930187699758976299307705291206429780681082609205390395634823200411182315769646196230078699529365654172095449634014415626674324225800390700090206069127846711295865588942427649557637361206554020069115659594529596429208005082158671653089738513095968630557531260586546465423666126564831486227800424929387105658868672381912390709525096557523924493537411493755714388024349796539418803742010991681133726644908912260257017151732928709628133855804788965494153177633090952257398872924052099737355884380281191789486150526604596282252137817708312076065348361435791869125693740377410656360023796935391284833600917790986086093986858042578524429390340915504201454435593652485270055184908580790127994189172059977736182701672383538090936395580703454255335409056759867876421408909068392470497467793925943301607366691110821274466172409094875687473342809009876018770965031876639504961964735440397100862096669501567542874870721776631032668287423647257958782150171048508819061941859850136682712300999934504259706114252002266824667937477122551633683076576525954324643388025607205444670944473206446392602951106638672289938952873779111010520704181656742400915919590298087964163898981980677462304734905033860473896062088451178221007957971027314799659562763146533592132277142334169755068497752345914462892069643768758614919890574640432220682949221081741581442629387964137784080430270364155114876363922727384369090434751313666750775474510883404304862156258777656671196455258849744380429303696223705697054424785699039397417806130208241567559383781700688023828252291772759693172815122252336551059974773729973597436565162618908556756867192640662651220353911052556473233038966076186859257631855314605357556625819327866603044071098680855333072745250595390768529734378186808296336051009671436316018438463653530743550666343996771903203570233056728154874671255542642353389804272297452945219928609832549014938691714465949641740457571519570930788883997556819963912913920699290324445228023005656673931318040553814676959525856883485588830615511739881875711550591691374516113010612967918659526736506181691904709824348730665501437339053486899497855132040962882626863171840920533275989764689979601923953528163385222677104728984437292149122884212289274368711299135752920571317022128090892917446437475668651843602936998095425385347343305260535790141181627957982478921158844310915310073250749713368187690182151589335394538317574734950337459753025460314329086329201753208884334746223704466839652603890865934809871042135087430883588928541238030755470312237929224063678299596882204898693633859291929993001658268072975023590348059949881415104585107101383157209550266047992522892676852620202241022104513440249948439982315266315716260826399436150535178624164855333498726036424764035553675103579856564538135373354226909801286652049090745186407863321658049324969320729209427734671359650290578794002506439507191796563819760814125286150461318707710572845448856991636318435046504880386049889299521826461750765491681065553533916694677314970856537100989646120127884365518548311597457741457977139046091765864555097410635130446598741706760703379785177096853970887078613677713789569227886272269405319163314494968146904048096240080364547025234790694307565922500325233263367714009308644407782867206074079397466651223130451598222944744579101490600295668166281372936892327241769076736946867211280972983215359812694754157589306329741198986016139920384773705480934275659514983968092636410349991047053300687371124355188379101522372358204736458583851244221909051987484482862073813038780505481295982350570565270573028399669497593292896988696963582976490444520849520113156914760826672703660482010153310621087427843314957860003767832634108212675919563236423719901480234759526913966740316135165613328889698859634469393113921712401997760208091807806328644639997529721335065005680438790906152258465314573855689617314155811526414444428526492929619432802450369131193810644673422018897094272857916234147527520795084970678174354236427613981251542126130458978948047985565182153988051787502118073653866763733131901354177315201302382043879148836603593448681802760490877455084204710250492062037119594785324162207777156717295933528593201455322283780685725190295699272785065857601963664021001745325911299370056970688494347331393024023139466289918151482723437780805709949695322498763696205936147805939988430152811822126034651073647181278247476443358300312122066743870905046065504858557256082686231135099905379716435222864117269588107218779376835387702465147142597475857797032044450286609816930931418002983118196774249663450230538372939063107454385653351028325167025626359313664408423680877724205144415173633032534589295968752108167013966787334391507482332179681487102726517478705695903447658739234674179012581656292543272586301170731565626217295430593007715943079065314166316744217440765628739177275544731465054633692047726806265658609276942447833347089270306741483715067333868045415086902465859225208977227564216818007163702307741987784451313087941837792514121983780755488805120580088666617726559898836108423996071251064979427680676582886667649046107895429709202102816420974478029442665065554177904485851957345154214545285453335555243081126764206096068737208001978126427341329942125528787845292128873219041489892285183735914548321037565710542307707162122634916957252927408882114156522629485284076111696579407309200133216436998272598283519695039103434358334285677980161485635778722757586068197305972123129245839061935348704540550714507064317749121589333717248994710366776359305384885240529753633863353211980706477525006801831425201796458424834126393413661319987183972463406472646753305233533559918906606087272743375167665360053486244676394740115994512284514546929006201747661440014345498686110564202628677646345255386805317526710259135492282998742581228502330291463266456684504589860596947647590448540082325602408841615433320665637990466754046692278647935502667539559888755518147049895023565814023936027897889416642807150164022449787669107131019692484043544804668167928788837330824571078532509162503587109497761852222133104590693619400164471829984786512534140652233109086778292385519117186051516738146162715939003167114301582510394421299496088951698396275991041007685508025635607256854151220986335794956318899727997622015222637929445823527276403673658639569580105053248395908356879532903548263488716832415931687789949660304372380390107655542858004650627851900208437585073709479554169807462088002800149449679357594223146767972862919674087357286241447178451821809801876928908786158516724931485706360503959979951701571949054293560920950029426302048833007791247716697811816904034387709012662788643403186059902396881677171893463157194607496593921256338270334240546450414071541403843236052456450601188644176530249799023459022822304928281527114805458486146739301068998687337784050031333172287383138429569343094547124031064696663558424785732245577799473628902646436083024259226953538508033345679551597113867684424556905355074767093703400056772859324014452297330700923362103969552576256498809032902416181517667209671412518082701963085379410772927688294973011783291500684177879797681540535268634730182340566934569538236637912336607308785509394182098821329333976881841505105312686566194600143379208575533522530203428731604525893108493595344203439827829454664252518329747564595582714594872759382408508209529705256319416595777270914156836905548433417175070051021616467578836719411136805890473572099083310286072815955683076738198918307723646198837464121864198376215907470850337762227526009493653667093754236572883567068933050772093544803326897581671963291420892430603888598254481724745930301051286686547219919274929008532080370706243800503854613165670461237295114381161374756733463728534093884327310903125212536160241129643424792817872739940570812930917582875865748056302845946862387808483447010804738401716180419170814939829891749488618716010613423850739035050181414566566362240788762376740107043538953414374313543609761543922163319930474677350334643815427732416765391382682686406773190512464141448505631112357659167160846456195083859273602525175958995778358516320985721031983463653844947083566075767938400444427026280972052297741040525295848389565193561478131710792581788796272789731649166765924395173599237254560905227346332228791867555013290579243592689009873383442306266848040700944306393710135844378186761021280599160165161168058124178568983059328790684483401392325246854316985154712606144634903490863166620648508755759404821459456646246697636427045998884704218221568456170927299948311073993831388649428867158958146802794877231233749376252643484766851588624417448496445774458039769673968144361929395606473683683284954792419581909778937470849797895415654225236443259494416239478227341907651068668429925276235373734062894903266696687017167193255592073016482875356561692941995990592281393541952604488663844116372896791470584429764370795964034452804490797687917697989800748529803510281898001412679760296145026100924119130604037564997246863611267976468917354421086236305008731242001676312279321863802056241884581494958858645669210440151778047919185922682888109895651648023973520771765999341727025208477228706241892255163232769853424756972997173009167730645781515086320130451173233754791068128663590556974292910896800980427133503954850035893775840879582280591622841747165536416520248482739202475340782714921792197065133504345462159932911018002750770648481532876217357836446102430011124327345237923875892981775329176022604348715597848970466985881902499388841279434433378339922579435951478614000949745972719649943379578151010940629092509063800273930457264532947355860958586221786145214608817682506956979016036607458516963755052706181805234525163750235533820374336902548184084551968882750085583985942432689999702217362680704472270602193963749824724361888501738931966673304064664675610275985950347829186796605143214414404747668287682932750109890644354286366271942537341555945453340789725017334802336115894729344917556321787402938655657915724866443756760544758748623914771456657458739547665706160570862518990183680921031542308823230900214605472435785861156009897426399777590464689626464900294983575987263477231782408913430825730718555292115682690777471540253228672727557595958267482596466424930415703206866039371585387203993769903379754869039649416799363035857000190669853303440126056058565512287229922458553000353791568605814661146568790629689756958523333787303048237385093613268260722758884288715973821240982244897045712473361685868524313546415608042705550926374242394271947958072620220347517249742877736471011547204506872132567268752078341622430977737076159502588421449299417691710642067356872717869294387669635972227042100018470782352478375961510095468746631100736436572366800259848522895297497695970589131950838571481255056154903981875974895010721841093568624196468701331935627839184580072680544510950934683734263770508105464323239180363817199304793935820766945186486111517517649930408664250771991175797483741064390504808645797297689167373769576493517527722712394956340225236866207016757765471372145559724197009873564246784263257750432696544256365646714047579874853924928321400440590620827076544052441814456172152913765049708583982807298019388266146276059268737926341075106374260833998960558481275021604220226171613556503954334832372734737040654172211324774434195805543713271679034521025884590124575817762294404662977708328233557379266483677172045155447789528663281621263424881728209421341793225592423531781573767315283225008466102468891195390371891852591069066799747429706181762846646451140760188296060045056419026750414655013183294623580490931147638661933255289655932508457766709565952362816663811922025289475900144592508185547446382873885204263376027678125304910323787506913172925458100494043486312781825943908535773884121321029465774602828881277773168300344752697476124278292767744712209681181130622349182119186815900341493434898308320644471589936232613332953086776861671434731262845089620585992912643562839557307259129341720094831507053986453307128694683231918003083146627754772726575228935235117500974540792243519321072309935515308220848240567427443613475251800048620098491012211798721298954941500548823590220378875413762646982824793063646789007964849251846494062980348493268546393017395968224490030436968899654307314361387071960901228685044525451514554193685409826949328608129771552350419600794799374313970882948592642704615866343707687040361017644407927361274646135534407941160784126891888636373025498383134168468081402465185743677071154341119044409650920558848703395026508889741618837477794127723063685540839457736592233446484118807032861115262130838628335224849479102618290588374323796768008510793116488009101383463638130503804233116262339490843361236526085132245939417046063753014834136276515351865513365817883027906004381420438854417258009937910462501905598543252388449201266032708424733115740236477299462299444763165395031408432938288247941583228132184461619842951893149345078480046976871089155288224428456680029620868984446316542467446666373509973963425793441974051818543643099485067801000891487138011998175637279395625927862882188179030685718034161802746109422835070689385247508179033914339181159627760066268937732495279333805441574106542789985785184566140711413054957871386604309000840953641777292641753945929441660165317431316787150251464548830344724067194227607377737072990662455689176895856280122088881650100249211721143888169589366677147881100654348017349996893377929656669295558006634413879256192719832497350774200670227488391339658539713151958451018122349643122368781990087958962692468666730587040358678117052933911726358855089169117407685122598919448243635069483417957726421610796060882936113952390671307656439220865018785422479892578011012124591374429189951595485480337419087524321403697130768462889918714438225336150783241628736994910589332656737196069869672703540189411431510796008051361298619453246248262272044263710420548253630708159508910927872768367361590556517086046781088988757096528176764052408517290475206348940775511431510346323713861131288390657527561926971908498883806632470019479503408030648892486252837193296373172476600223834968780996965085217892847119291677485612119557885565147838447103010453979177822424858914297440448845319663896281389080971662179592162049957829734579607632896051374103156068412075789472598715120068073591150338370533659946446308457314907799802134733050886715463634049610919164148248622247413174616714503619579070145772517397300260981855387030783574476159168514805814992747376394705308097036091210673421056044865286159527495835317700932967348690039034830540004765546464990001854896790334407814296405688106901454626061164537388241998088411260506806693138602340424228974000071870682171531610809868798708861001463237382616864985987162124630756846022267916135806292979159348384166601445224593346614015367674889030779063839245837544950522424737542713415480082030837331374903168860370489702808047765966936177660790675329899528963635226816301972261740141496199664199083330921206109433312753001481883074696945024230917428231630029720226819925235253062951921259907289753714876586623664251220709967566039828701896566729231880306005861874668680021023579502016672495302482101811240501523275162903854794706668349771484893886587944078989403053953325391598835643102473349321175009783658234975211783385795047967584101119722278382156911761409459760852314346160845076342459786218419287367676366818276141199235727336805313902832285680182266409323145389703217077795582991245536899794494934355379917906326006484716265433571568247412031341711207992263626617011295405902428726036036729276727752524431982697338898893841306375683163564034700642318244205170794598609843054390650184136019051847863663256330020319938016840231795650635900100999843405073296087900180137490539842752301935179635748837310404384249495570631630539350916168913616827024242292997972498050237277581791497697030967207999513355985917872410872925708198914804020858440007200382792859428260035195044808390818327041202518368560944484572711042674101514789099358090648789699309114196508570429700939230607118529790352731088429188137195953509795199474940996069461385388408364148697295215237746457047542254169904914471492096461748404798106706571602894377917325455549599232556900860658277756326015276391247012044570557432710863355152307236634692543278148706294416915246443108048173469964931647431760790048021069688732875885599254700586572554674209565617198782707024906896107813788436580541167737882277696738519002617528450216843647655955574038665328501191654772785522795302067898267024615165178381327487279260789485765595051806056693328206346678837561723639478239753652496607194095497650693370502522556241143600901091913009552331365478255302837081556406376934271460678473499970393545818808647964130367670308418159797325528163608302024460643536098720984696926958950032291534376874442752111364226293572809918675234431483321223772977234899836890517894674767856453753214780719991502189507358337612736546455514012221069511999998990221426511791830577211008728104098797864574098741673454522780777748734296374573095196689546771768228687356402493986869144415251806540558448999432013038887638158037381203915494782247507038205805230032888314876882044564889122265788993088091705496668194272848446574569016300044453763028949237211714744691509802811233850584339258216241725786156791055759582512755790796006573844893383860237200872815945242920510794602080536849847793173843073468015722674698969776384082908438082785955518640127565527480387922924170498523784637898164754338271223388002184153794232408407471499225225447314977475815244237971489147427547967363634400149759528622957220641777455505367763723491895506021302097153192005451216421139396317036239385991612331056169734305574820422011121186627201868946095483680827841466923259414477971854926069553240032733656717173663871371896333015850918033923215966791393460013855446196285127406147216453638843239000596853241793674392695165003815447378562295049295845506700543735711650636891924167486041139593229023549982524930083968610064476831004746716430444890030354763700799896866962459731481648437008982625009240935160608197828224235293007851056641207575020212280597955591255594377202884069562101414637129219821373142799855210734200798083683475324375798595815900320160190226870856303931596911739354412592506614825356665792934361390916286275622538890770986961510152888524368203623034009744151777406997735307185705410678151795333163589207885783822269879808797148868646473271974028409099728308502066212716262969169648130914104376514077340847655591531132010678281824402849663367112816457286312733155075734682973886392969326257218769527954547430944047486283259963808682025486669180451804967560043684753896637721066764030940963857501136938151401171331361816375912960264067165610195949732154402808035848820004413028102618949767954749380626182291657177346280977818732857532271410615553356192579045220023136107802412993470959646054200054814120752861412441352674082304559577497408099644505555706623812828960362811648145956942415653692748949433699774325553024855471494809131935728210260349129627042090065713408522648553467872639390491426922459037672587198925868056714288674115937759322582817477276151489713671486874360466570285606980145746972635519344718322125936570557945909770698020850256102338043026988318858075676216041492531983384315098756447338708056616874104897259982157833341501043808881750478558391021007143679980915379162581936112908008727017425040044489265221453792977406331225014633957069534298978331751863982935602180524977734856283215929687331430047458995266250268831371135429138218540444976439628198899494767840618691444467342037737600014241237925647355821523906895112625432413159452535106522050394715399722584564493595906143220744196115401129245298404975718163457397294664742198237464817879761917755003771466931434216725711510981370274303508075993424435200538022425417299721062113383543023490019631496381600598505149592906142036245735061640759071322000490932773542564518540248363331424177031872638886834758353461437689388105875902796446145774078695551914244662005094019384263467749187480244665524107039586555413032980832774408114360768912219435246766684052499985874141579206040906670181938866203582451449420849972154061210545874286798040278405201189461154659491384927515768525005085649571338617884448833979859152853559084172465930750535011543666108061931519614980938483465063103730334599949585029283920778626029297368289039005682601617489303739966427876884342476939698768070301479102263778784164206228386367403326948322116651867150540920615925281850665092786649597422600175773987573964289945065750018373719139389611208221941887815927195430428713430900808582165487631249881073520089316632649261710530535222230831780329017765954088301065251332749546912494425752697033086817937389790806046086206293584936540057833064846843212304119054937950896567907234061242627405327242915022513551016507309982251078912593276584914788890260261818917086881705134365297418931246806970008569764220602501086777855940490719846972898778713979855546096140884096286905689234416675937639047631772922561823966631885474875658612553308665654634541268095367520119378656570155483886854121484475993044605843880253191404283133896237286578033525548914400664188803074372616563379540470405730837053443946056542280334368323281174620354206160057328169389636009872913631796620915329069572010784556087766597163664063063666965111843613860772515577500568165247429973028547718814519243604952821195499809155785235476906203070532066475434266113856338889426406291166093761623295282020470547771170387911067837292797167088930042021725701226601922832035751321583351430293745073759359950464906625794251374178090087353256984256849008531275572205503410269761630078765566749314393930181722680899344780384332438209692600183416537431587977406343135054230011977237715736219572131419242481338181536601753128133676177254918573291621430245606390332139951873840201355972271251845789791834891007005458319054973436665324835515399329442189120741643272149686569320476657729463064049186738623664623310957099504029263156047501736074014801882416842021745148537818936247671626106954623464985888371360680101159317448959387297147579256400768634918591531156261568655912021023005423169272044998569027167364585206058816604005004556222598103311857618172701458000955856922428075270936835591662733615892013684322737673518340863825359696631608602337329337789753128845720023336314689107741848647100298246590782097785145936293015721826460345590471504505013152365422191931699867157588748107214968482865696030345570858881195749097407817255658496521365074076802239687435633403545102739533867358227826459077155420964289229830492421928814333474029374006741025734272885180795908210171770180404022714135923665364031379060086692760282037491062192841377969473046893235444967508609799052093234115744000208595953081744354820944758821189932006284136042866255586653089490037138979619210482866341565769102798895209244959971629524598587762653374926862990973293058495255766690939209750402299293020268105066913312480785141895431080354111722687456196695724985754819724126989908965281043925377780110993412343261564372451966214233494038481131424867958337711982981112712884151741823744773871075560317614775974865086906017130429352945269162589663041825224353140178086060800291588795689863797612717748903690343233988823504015627099553926688261790234373729782918061283151936983255574422608338451284551458323952062146310093417348145296148332794948495544689195750499812863782363265711575743637516981545458196936858856006461876645338491550563104048843252072449560338326923874967506906967152169083949391299563033352438774375171256297819221886175947125757309158693522571044092304655168744652138274517073794762857074134120749819340284949970756944608277704353970279765322132450065608120375595684775072466900855382710017785192008453801065732368746294586042482358878678508054476427328849574034299316667715745416257907888008931960558069037271468624176202226282632526477463606753521850704767276452551633836828996934673663287501860983608060762035286666466360829078632758998323882154744925092026988804847341931641347065273214995455184057976599502683842989141245084347699055756321051814272945379388779342133799874485324826208845037102515773409813213061031840892518360947590985723646393335172618549163073021578923875640375619286109916682992984262730595796201511194323504389338368342087580238220040747921916677581020361809079810272829016416770165766028489822081387305392852864329711224707846466912182437790471585917732711178527588615201122985983619538449652854812479110533934877599409111403754316256317182091427232374980216014583636392539440533757368039242465844965360971324919322867414783536984218321427505017036190342625546836911489959886422664290115054417931687017490741927806589938156394740018790390883194816217439163147417720752059096568665315222215495332135737863762843015748839369812178772429201093546503308449809027153180030599744240753529283089780486849632449035613862343172082737528618658701933074863131676398115881249819509406236348413314591276902265189031966518324695904466639417797096054239173670994682202983442149398260927262921207568801386472284275119684397873030216758875433199460521841335981559625169830340140867517857372796191374365881019407824064704956479407498503932632415318006469970913247784319918088769504816558405839175951368021394036953327322319521659930226147126325089881300673128841620824978752538816903678420706421752888148854666914097990992258512356298018642747390170670260786264248413376638846172736268882527009631255415794112518509988450922161624385824068204005966891623281665739440791175296880474646935738886714735849320943229034158512302073707041753707167692124579576152687025817354450711176485296350201907736226366617005470254769839272693290422046320757797454682388742267593638994532919844207909177421815248514256046307247460808896699854398464368037039468091191273754686127176323560366202064364118012358834383680379025174620672856327435143828676113214256244119580085130074337498197004076143069305849166319728997441289018807573770297750843483272921238156770509240833313514684815376629857276421991043627160977130995743312053862074620840948007949160696986753505210019427107270394658364459571829786259077254108130399134662909437914246403599317398184404204696670742603109710685187529558241435699265254129511490170869647849971083813238993561293322483361461083420273914647412646324533362711693239379080475799673035939547537960194551703088770944381504250008446006197797862225487343329391576117702642358936159564035713198768387074122236007815147697729488997544928788195702604488615687849283035902609497040194798752233726426946950743270390572693710234659098457431698007034396986798533322502191106987788262323061994695978173122917228782913584935652697494457984332700534339406198739064988007069650773969228538389911337939989972243759731898581762125350415820681209990240545448469243229836176831083317026967354949870034157566233316799240082189486763512637220628210164719965931326424074718836454729951988251572595135304977924065354274084353667115407769539644295850611401460933613374898631475396336273137689284429651554694858579533664899643814717386033008190075343472716588342396335858124047115622452709494717089272633266522469788081665130782915290026411151094285112663093759118261936139462066581054528436583947573049370099076419679696912400349289312010448774813059275713151216828614807204794413623477454083038718895895261715624336072159738475804415064346631237068284788557463830923638563709839667561629381131815891345217101655179518141628539739698975422393873389124915300645156984517474213647364540116449651603066810877787810810698168483788807578891191910270029523698719102646740958947530263560997939118916683437540876276865372504137607033619696364002287833503787899724339070239084572471151525109158097448631502950220873825521589543021724582168596857933290044608233100582312992368797008940478400869670072402018106987397149938413394768510000554697638611038027082701616032831440029989045720020835826008750575265787439201761631527448260742071285022295829735496284403101135962651719191548904249960566755813637888783334622989381269569428240488238462664271329261460673584862206424252556704518247472860584412733540695903943058324119587209815084337932390931868477707756585559355478250751235527322856901488983800526571795980587952216955686913813827881677481893590421272597841477326472070620123451757024999684842584852782444545080123961812625997594150468475283110970482301398431609193313159784643729504067756422131996651803567422620295728970112790415086623935929325322721362058567340791880070913876096559686904261324828357553336035317324415113361265331951680355572238131748567665352532537766379685159306458088019856082201917275085535774328005629050294181906088355755549745201834681331590342862300228017509058594242868011517390465973097842043162421703715577179293360782394938502748983753271067710336445318432009879315851931761732196350344078856234830541772490941213874579679906536737627636345101634461246730155325843593400582040635999055218140536621846394112498847780993013113008345105759629762608839197144724077026189843058431369570931972470677257905399671290421671746437204227064766553975843488616250931908554223970262374962832235194576065541869464691887795451096202061869887578284032411622938981261738130642547409400946231655333001691321895207538441183428797038846314995390187024482726766153216671801781170325293809093885587824983044717466090060279350310469792209964386552943715030813989971142507470487908540886152420300066493217493053722183808168830244078246397635967198437826865469435196306800190690378291909065861105183813040059655423384513464643531357300097831268631912981371349269868424199717682551758479161341979097820376341081557662467946887717864201727745934338629550491895921283152748111362763305148336922412802491838649287655273496434709932228506840519949931089523157046120450037733581857179775606645681799463620988310563338161330523588275158427192168807057172206278904727677926716726919004137099711393135709038360523188231259912366452916689654730604373791133143719021647857433413346823567995053651014753085652779004129438624055032109770545443685731086979065822878211200580279868963114784042124669206182573898215554872395815456339785909402249598962705992363600066993514143339128015519479682105974900516662978686833735649117247925903344255413483925981846930326549878786895191090873007223955411193196748558498270912391891667199148476654985308665388933296045369887892684881139062685492731300967876317662961757205061369761418829760824697093259671373764821791925082648179013158899060213557302279421400275269998736810807966897018309555661976016842870213414635035090084851888903410405256790512040951549461988064304851009620512497589700839718285612598521278925070142656701017234092275458366442708624556962146960525429766915708380708015323876771626716443028662269216102257270712723244305922196062836152625834403487057609510469809444257465472848801669519767021743026680969302265638325913797110532821988557082728052587033452961985008998709027654930286615256829729758832789075683395010810353132465290662085766422386789316390560402484403505867343007582958533957265781739978946347894581668197630087999399305735991827107863698806363562398719274870660169036059970774178832362503694879611907828988213455421545661179445825860291349350452254838474639447703384167793864241771724395519437780518844298990789087366193272856364001527638852637345400869547733933097938343804438367221932673841126133769958075057497068466374757797059132375579815327811776341653034152230301518332913305801111828701481789092842174774928485617188851492580456624785687766205620026622241717408555774607524239674401799835410953279062667593526441516446225189527513997427705189864054219740516070665065242807622576532579635850576849347004455741874876851629247272970820670913202152097898040292515823699121667924659463328942004951624508148142234048024762588484142235043506505120574972679186007131521386961888627579548160819067321146443467201239764596707501818156002386340934134793985781591216129762479317244572796977666041841625033313573904247790820519502440297506031607382654147313927218299652230520986027095749245168699484528843380937979234157110308722666599488394236269243965909168518384472246892195574732746372720622273640482542940045603594969974813337831201607460550691646240536509417619009809500568469215676723178920483240540781926575197887810461511481300623365753330713837855815284206379419710681685192106306023234183299437920435597316641537069776199776985576397169780483515819827698304537656001947147265375313231947752522811869448012112706174705269823420826842460417393288969187013195957809943698408154605724425837394798814609889913199867588258461546081578470192922959202144049107895836686537002472002388907514032377576412249561824300924417364027724442878338658459251840171662587221867079752727414829714537201544995920656348396645160259423510603571239758765386184601619260960672031142175039711164199545214209695472453816434857560027731723944844939460411046287482436172901241718117673362077625872034718081202206509966601116446429513159703697279712481936884516546418564346989660859066855524006534184348457005748496459114037044732016201409708448073050954176239692541649032199827099843447461554199539472137869115913604924329576834398824751871380489580145715989968963275397821420997683782078951879984422130298496888752618710262827665812083712453679149741732134485315985032965820535083069114788929976772643262719555642272324418094485687865922182368248738307048786529200519810827261462281288490532452862989935527478199021349393801139239618566050759887006718078645620048038419234949077204977823172784262375195201976241535755065112203258579567578723316743408740248813125451086924770796279575035910780592634587636651436949945346593971184261736191051147197068040390490539890088176924790044611247574034691823256784440791264685369974300929347856962339945131287538046757044341613686787379952550836386163515605588115619552358397835740592716019694580700119510884168007681878203185217480377587742325713616691032753098178253140222252177209840725945265178022972866610656883675689188163769875347049255987597689614822725709847287246922201386804422513863841932949055552300010968387475794110462476028469460698580305567294958271226827291195037132820508161162868023862351182869511298844043346971352197741159447626451817275996566595468412444114628811112152389111157035406963852925315306350261909915229696252923031821647702868716433326144889171682324638422135151575616513682158901319492882497372930553906066363375759747430781543275751642084612953706093873209941634672826950543578619323018089901147894443051435736666723880167357900781256921465516720667011279422951344524724247193372399886696432834242747297565504528767748670015651697795258196359185116953586801557621886713291358084283516605052644304411677657409690100494288635757109654369082416797761697354398537027444151926791029542868847285722328830358083830899091109610483684598748357834988390115532177368145301614689573652786856427565753497706532902715637716877647353614262366524201883144004896410517597187280925658314193676985128731052165786709587192314956230415443438175978169631880603274127851114352987033215564129723883352186026864233857815224746563949072684319843313222667867497861950200428412680126208982486933817634967528167988345829496637117880321697917013816756439196513661938817058727738098944730726797172999930240668327869628917760614086783105092563650418068917776018633024733274053242745356917038267964094202914174636325264957298640298349026870374188774834066201743622747898857771327265579823179034972343728861691122134435154681455835624936416791969773031310272780415097313377145785373385025314358121949132118893119608926507127912316980590734966294261330189863769146347978654599736001886961461607133014358329203048150063006503575989772382044863156569846451354611002661349296720801623807948252143101090546216164147296060382963920528002598554230622600713448517743062248071226409695042243042845979106137593571255179151222458772860454578097930454083114709015171233584303668745080517269078591456190858819762265603879680903320388561700006639140323718586353924267141054475902164152611498607159678734902798911322373919577312666266451885398323296114217674490092132053168749451945607603758421740604341780308628720990500894126514583728392780629763884882412262590965900275481567899747038272336493657111770571104511415610931624712237729644680525911886507606555056601655174848416454963981190200708073568576667729160073863182335198848467955103145242849885845119837989096044884139661361317749491862949284383519888430030602213230221403796453301047828677581186105293691416298150569497439711279892052446457214566551565867339881222675279985584075834434043240177165520880536960874660292724032106273199176125096279632523666520826934659420249098732629843994752722650085938925565796374319426311628864445754143499151532594100310958818834031403100400938771961204866186530181980854309450654187514623007135846073997854688553969821608195966326296559752803187047719639775388566415970275221293676551342957850058495809966693811227607894230915849750897137953486162448007029650886566565933636638034365803026147091199034986812422582630667612903293819439016814061584587331786579285125549551400815549434881806569386916127251622040008959469640450171460922436973453675538884508495507541315801217098837206700423760753769318385288611938062746813432329420495174008111618842411164219333223695461126972297625409372744158809426360934187823977688596573898301424855313259208948077353185216277161199245228361510794373801084792594091105055011157969199985307368289907268529402408922346021518408659905514021876323264015784106203156367528726940273670203206647671820102562572233572737865592220785550129666306048740648068634821429044246252900922267012556305708558756237793062713636670574105180579614914925174244862694306599723817466621791998210551151083179698175024279910736530351474546894551001595315620981167962850295882001043632802648851133740441633659127451265154117825024584249724233741679794651809174702638258591922259894400515059888250002115695871770627767623654008550143762894443257283619731337704223630554645215850067084049676459325836601338618568452663079649215358734385191452806120859695683008959945154562598856640855556740625181830533389127856441410297822997196584249776909298266127466037413774737579810948494636447871995057139207156838589734584326596157055602617841015299864295137107679807501016358015005174713546872948150622875365919178593343659477420480579388122463877643789067037934519508614437131483670909652454313509858073729066934763834354358818696096351252419663766798522940322244623616615654883509026968028976623092919209439825096204086912177090113000787792516897691891103280444045090078503051939367172358188613804762209826786361719826193853572310141474819988277786515184368145834381530548259398248046317381485969554297370963701006344215460091267171050403657278751535679696327941652356344288428360198003613561081072887391658221626641983784607481895990325790920278961131294295372466941365596580722381562799004617269526377958412011370060346723163777096939927626829198045659762006161889484817505755662812513451390105708550437882614736287113764819731433718771145449871121986598200775390814941299021445162209704185723196970552610283001930414106295386532507932981037516644655438991622360042223799449650812536413584297415846315122877847254004259428851371816300491434968575449018143344514885505191359094431294981698045813985089136415032254210974471355665840921950582934203439579265852862919719666122122693775681491292685506128629983974808021897276417529539983352700549038646713988291175527208991181567041621510239669763007263199877826093138140511604677853783072503983439394276454499375424164318020076987268874238309703598919564209837614374666262442180043260353009280823477262126480512944324307820993032127465520046954236927395675769568440555612078342267264316479006855433673614918608065383592242068295229558199207507411240750565839981826889047252902659608723876466963692479672408791169132067008409110980873280846896261430550363267264991593950274297356111352882637578968213620008834956063060045483879271911292667308371840800887681251378850990487490468063805839640933557911518978520922081400791286467991596564577096246518638822570949822180877672590418069925811150030152223573337602155313424779922111290629231322473711032309859106053277655286220227027591750062917796753754292335236964891021470939762671022021866074709357485149352814344595887544599436498285271258933294977677240937411739610123050714772774789754058790381460954854758522017548920086273419763289058174104531214704021629403360122870026596814254446158949338081675816562946876335061782920698461957962514089271691099260907433314692143528919350017632910969546829692046491884535814483208973247606931902536561156282211745688257176605845459513570236407653615649738000544815090665319865071841352329362826223313416349317257875499009646450869600044814673859619773106613818882696578083158369674308474968635745141507251292292945514349280019372940737234766055674787381578121536658019796026845322792846493394245901282642005958829892100059649320562197846433451743585801061016103794962759600630616980422064748855061801007609288897745599762918498497967976984379139181014428893940729359979717637422811332135053200735200758210697206572796486168148909408327612189659599654434982128293309766359373332025915314860546100975910902940666148870138689891030216111892701010175341747869338777837018726478417135849631709365796978480593942385574768022382192323392518338141761921887191656742494522625492051033519609116412714367161674708771686388676007369474506922912242930071510021364753278268657280914978555929824461653246536872680117361990906792148325491107404853859521827245826596583576660724115621456062044978330140640799103871536216915239852673719354472549629347846442625960412669890050188352721590192017766508557766479261002829460649328864479887531485250284229626244063548107531858115450078226079855815645257310691090588825886763569238829698149358620658503138844094442397553037311004149961827910902931653069912660224561001661207062319789828730686805740372920529948109753127473965481122441587344069234029575613790152692720339576531512179573451077630265120301910712990359234720911915446278493131074055761862933911853226487663940794322535421433833351509018802761379627739196624065018155259798648577169599031155842575205106183683480170300731458573699378977994479806582364246270382976302957005648738315924555449401375888204059539774996266987965654297616108409978958730667735169543071676476012241066614361402887689919445482970205684029958807178261701283055865972866752919549025330436800545231564772410149525300694237368063573523947942068028976221098218145925111622218543758368156811410412259960963740530871000525265151211580230790939014415821255488059170587346027930859443911677947074340838006963592206856324549226405269705539066643787691779622432532683017376997599123444674488437957577842990416592496321641630543845399566975568369071815261853854303997309149792356569382157640876900498685712585794389983874205729100823911667436599030373629777093106654924182231138512433462579241927756640951822875437168351863722238415328591125005331361610735403698392308770236337044949774332996730302076986734789388129706533330307751443976615785428974402190500985266163004861433679695160860632197276576624260507236601882206844551832372340444373131574993037531474473351206013749809849116266947777143760055829575516159360997865021318254049891455500334427760018584870019717509509428327038198993046474200859691077667517513135425110741511024912912318455236309587983024440710932177503117015119702972950620767982231946994805706849678002246705853957262987829045746582508293816773496029092462536799120147478624434763766191719685674246762622819190096797263528776475977276932367534497756764905988571924507800314760635163445511801906832983025189690401081079231853560950318699486046948363053938831044153299659529032918724232353676860718782911446881714919497172892865046628978599133213801535437654573067391482971932638705571644799359565746915472821137676348426337069371708233271298256160309388315679257364040929604256936018499446132234104935215295617548324709213145665392702547105648850416574088779603418320018487771492401716060773376702096571229605206729207947562496547293109880882131992610918081988137650498551888948862175129973713981861712228642155089190628198306508752761448230161886535834838136631301362418846307678694315898192628788945553930880459908204320162419474677563779388091494351136777491712830570761878222273820650289063822961569730232534268399818947795459857866609801275203833721017487010284151669297143727892273286109670776870292920894388292670751095525874404620467822243574721962238399312327137267922618182849332205652074677313350230005517170591737652848148030717629982709226466738978670102118077381090432473908215769532527480669511827153628333674746617285990972753956856098680706922985020369430126597981622626543105646828078463782792753538075947610900564870083768688733653710091273611450262194189842528894447686594582744752218217554642487901530129760410969467510346609836641970509073670096523160515205507741119910989759543891941006263372593787976285875823026620847281464336796866804326158202008432632236478825690482825300730698520358652408960017007412920316819746356093989682316619583100914948579855049754447835692082217624076787834735126023105269681057482611205563670187659875504064723807346057799060671782526738782306749425793556083008636459764665515472905710590939917232847985338091773879590307651254827990838686914452619490064345513902932732558987811517079902880766244238718993368461106858018328671293416550100486666866355233441433609218349316492841155881098876855346405058175154372159237581322054387368820656431245095682359189171479318404423018893794508407933427660735096700539165562150745552228919169915331035384084802182488501947835023919183299621063846529576634250948042385345894215264232608235212209603875725521127214659755838071011265833346422856583394778340550212227305764144295892041929526142630067463443787712958922090982511217296293479368350149260608159167000126935002714556928146798382921217198455499797447140041599812804434857054272808746925776093126510910874229715504221585799796831883848681529238389278417467965649002834566328031509472026458797459423829132573525954925990868085580136045384617359136264112316552299475881478285108707893114425320976453923708739457709333846843207700484928885699355887282971617205950447977005351189550747123608218056120418973282069693797471439961940613620807877872331714252854358657814218563823943868844339623738232934063707087371408822988859290645275649713630977091685186033719344294586166996228412736105677844607959801385349068268934691887136553562247458177454713693156453845331463511497872718862646009585060495868616214575790141225597592457564134935933047093403882188905152721180566314097170183958506801923055045932720199929566815813063021919034411964356979715439141315890474152313266085422641927059350509366052739548839567763432619077410188423636860126284470877744063772150163189281518253654719230282173252079628214939003880764989779800319216877282590720914518465524052455699340963916149016239085290958249313300547516421469965078029029482949863716882341711345862393227367724844511721015741660410600691698721557306955382451058777868170984830674209589949771974188318857178210357527426972531071228850133399190679987676362988272571880193213218412548732506866536707229761764827960157900772315499886425113866554219349403783273347133728000282046323256941297479795377775414866556525661151463933649850765781505491692436476332858331360230913926194377603157827888941797621587033953323107815129490042859331991907887910700529877318433503706658110770203454750604323533300382484857037169749391428202667899709927841117014793646315912270887643536482973127444564340691181525136962328337058576897029693372051590008493425274004785424444323132528210847392144330062785941594419148913137122377192677644551841919825890379142972362058128991384478754303473067004739302494195786651495724413038477499147411000618545439157751448763147374308367365382630651991622631858383068650085374109850653198254064476441650024524396766955852964815073771682503571898338345494510803914326589340042856840454751605612932059354419766524974447989074859764513475680636119917955434950343614063894916439485714613434722554211558717722280437608980933629428898843640470791334829166784837109309341174599055365082155942467349224351432669433478585774727466156348134836871431451498580529439663234056909563748333707876152137061485880599562081744931709448459443327408036609292190328321705342282512097965623757205494249072216934578505231819428113117959464868767913696169301445921718724635420337049088363575340229339355713627186071399203659352291468722395511732916313654106711397651193358580039074370133164468146938105371257161682593840439647803661955356666664925535379581019510880206278553961664760212010413839008190907909861602595159234543695547141184797708056621783309720582839017576227438093571057382398027625468831585977546590290467206888726717886070226916520806331528436378011073409595666712318030133110695041060751082791615608902039716588477457055001021789313493392024165896603212219362173914655885224226584756895395403368647288842008251155577457917187693296371340649327826684673324692681400190827588206740763248655957895102793039682910146969620757252009930666116243445104678383319856703269816245573628217919653986684687501971043195714871381745070977211894581148475258586961554535229979488599671512458004024877556786331422293709641867296859615793189415775010922727303940995803830348479382283028042621053247564003077993913004623417094090563520601421114550651228740571567551469528017297111959739744660401650185282222576323118166800848236851103085344984918327597862331871973608243260454496591951133447179810105223214990893160199742802920084872402918280219808471347923319222556006058202102984874877596684999855469102781234991923161709815038421590462949316247038263411647774792468655388960031976577356409369246137504327188376316729900364675586493468921051637163738208024614997369089319083954470756772009418091490765547552777462107793120307252726462386150955123568354226520150635119183666155294585310983409079595778640069610849085626986691634928822321431975127024386407039355146539141794787193741091613920277588386871541976341440040992908930462846272820462907682557248071402174829492344926053413726541055317857618339344718546800523660751478721918949387301112584355046810736600405407293901074820122109724517534710209564234631292111641984011959130926067768926610680427067686879162080224138969097975840905652957552892333581132432048447238212919619133799870228933323686180565565278891171436974807120712618104691840719527257994809798404727599151498594153082928215754321028825328008554119664517012264008111480086078820540242066526733726744852162726525270778709434351563764979246937314578219523436260432251172456478566841990037626498387446662719821117961081017363121330037569249215296412522855182575008280604109923849945836451386386417133917195121102971124629369729625508133731794818765067533778802522023579109247392328951751468886696323074090142064305794927975702982473410936372833553230742875240668295339567877181926814091394512952552374804496841481072819993258555724321643966138703913386542294496093993866121631698710497753269539978242492171263572140414268763352341137565201985419198033939721481954352998347860015741238613805022531608429470798943556341161450106536307331768399836008923117081372513359367548013107128132464884644925504148197026141601332779070425086758405697650933731758181401705312005396559618284884749708497814985575753214513261230442444404192236668156442309708689000303613102953270973869859914968258224482164140707731259278974735765460055371935711864499431072568585961237104312619476772637536193086542399324120585226886349306039438079637316015755383939039092860583723796890869531555362708142410871219424828149176833292773251179314211954777845933651674905578149107869184128607997368409879788242941982360393680402114754217733515581666136472298660908854439199276816624602159209881296174400261257146651300210400521274112200479011264941884231090298203703489134277324279810370722351679077002493324470415003111479587900449425151871365339037236389469465864018108874425305038846442624064271096374948534957078606323821794542710103239092058074116581489334284193208289315870920967399083507671483375782058852301224640075740238283970820237980125103755280313311488568168111680401785957324639816256522876586147606352046410755873331299008083671128281168291474628487136951554507639943553847471921307319858038211315278226940779500937699065228274893770966969108118662110449402434510270017638203779553079961667169093510449659153059186420825173057772148873880296127022570337542784363865260128793975227276945760824941473832549927336376314148850291886111170341226518563662619829739999673059927066602813015883832785374706024426254729799748294573994766601478352435468127906423533981340778990054454603874461149309046570667807486728063937611681001541676176638681702784637354025105041038876872443272590693819787130947489319558667728249533768549050317836391985680938819878007208674963670815157412260889548558497771865680872435780770510263906545444326766460564212578652456734803496760991541089525048319191983382545270239384373648680404468021919348899124252639503477494652822026675471575131495671649439949730573838199730902090478010733511113631273493721271020168558222908332517242560735503023388940602306703011912146474641730245655952113443320933155461050761778187220503873662517187769021905299900796016322500194666476699359120563667353214954358311680753865208060307333259367990858428107450409532638530050672099813064800282924995840215257908075752318115451590800771037764321522575442652957180607857939338829260643647901417451843384529697065740074617120437242178521385638772772640203997607396885260187340784312632019391434758709336208997257611958194708623945851233940502410406582213896190579345875249047678783345153886566726876201017066209497490799898785047082279859179265615448911135472259641020716942032831117144708426073505776516040948947178375339669865685933406658934481832852865354370639795969937123391273447051368769445825040028553520809342563878562525335602950794748915462134187453184039349034203967769209700938249868712409020204286169112442740420619331221563371700767511190336450529289469363625246392276196589841971494979575398899747263369403391151921918237986443025979870193694762179604938547188515760023241103361484884155954872602846426881099973855781563700249681454795837763396540970367271507843180084176892817773396601616270510424620408289986075463405981973549827934846190271166617482305774164007641085366807726658162399009800792379585897383964954827217953540439009568314700689901386100979914189542962341384994088228355752744009844523674932202253825592940179632078021411394197934761554120273408495157877531118696049606381966144636235365405524189006706747035765568553178349491976176052216147609882230628103568439865284288721916124961383568519083503159194472528957024628546236454377816453349082933870535822791998680590478491446382216516956535526313923602046078890822728399234067229774182338385617363680929102867552002524803873976820194797255812087842058042756495432109211230491545373072910622841796754746537970063548559116789224091620687849317478126024466851162394377233082946714189841421380388020219402009094461901618672862793241443873776910723607974996195117093750585599656172657079681666737885262986594076900939751965296300843885883226721670277656221685967805163210327401470904589241517041908945168852257093112176557893347723292999915089905141958197447705658360116596056374753094251901923840480465944822554231231762641187822140447700414447907532918389231296583017897792036846961680641771192695058172738192725068014050147756587283713081149490326446851568159330976376166838492193403076804875710858585585530748574987128842287330597047505236191231169137249858686805411904955427942454665848073757393257040060631911709909164501236813685391933659662548613353740477719324854234170530595756381864369155975250096481237283980505318003993323697755788598441397144967603400420688515709640192230300609109698892641230212011015261829561139462769957817913046122021801994492937695697358911317346269299606387565074992610740739430073687856225348855220641553874587590691055849834871007552766057118556181879862594869885013743586991063407016996324550904209472982374724552789130351914844672808409976070571115353540913561590428498414181686884666933631468379721384279684257376046864702814664143033036893009315296487720733760012666730162735821231235997770522654136096932623232398817665435802112434793989691439410731748928559313345693827050233581008570323677247605768392231071822306713920206759653982672656133621961974303050912365549735528977853036564417916294131645126783483335768430806166117321749999428360265517797687604784884047173138521347095750669868887094670015421571416904816358101419882444367972925396037743748413916864760531835251870216486132790014665329263929810136804864996382234022736357749425049773221027583200921082268019462402741619369498155318441216267255948541879896860857058865780830875199269784427273643686336750372107303325008009353369246291408806089898429054585982744299487393866808006594363397504813252693983893128778436611583964619176818000790778877322363907349264431869852649441726220972497703899504491494886531069351751165513718802225653812255681898508290054085540869205671878457944962366592888707599113619462113333861909841047421978382952861779315024789060952524193360115362170906853638568047357471196534336810282153161951704045139276511199010064417876553664381099586563955656090935542463446653399083546201844872727737536781863713990268230677381559165195387516437447700746429299884127619390746108732181145354649464139051222035642866365380123492934673284251695239731664419099963226148004497816983781247807789400379610558975768093612673167110524423579032248211092505219738033398294073912189783808299595913973879047519631290411652989017459055361970442999785573036748582960830280206677993843090724279941480031290337042040782619986711529544297813621755456490054234008053681736268223480928080644041551242353399013054871515511120754201258734370147153974580156759399183267268404768397957244622093181674451064563042805649934864331942717425903701397661929291846706471046870697154060696564154707279562498911847223749987452929506212653447656854216316998930608521560788484972926691450866120166376983641810349870986730653518777425221364972046511796100924915773582234670479369416910995468472774340292627185253461752050281840035442975809559025351323091132096245638648606061268657132047452685157327275385373053779300238814161749767451460823317338184052250836538723981869634741446248835002533339543396205219450573206633581764075692232690888170213356625084119615106281660596794144607302363939114027843837126912836177102785786423665292677358851471990743851400738224440585120036934988311789286845214940930598888425615867635502668218986379050383842939182422466667577690740809096925705449832387765713392300330883230702947393722176267123924863077473027575669338305337936730449210547682323842739709398758557777436493830951508108171700489062918656176983983947628609805099428824721848884601913061871963529811089666658260779605646059441992732385804097458738841368865638545863280683742354164554495482340676191500011236966553417152167000792925192958823349160445699320195771443697861520120210568108322156974544131893856698375280447927184735903132559588089063214451528856700991989117187539491964200418718664554255583982331793380269288447122223796792446451633422473004132078462818282960992710968476873717641794065368195373944843812634303330687818252569447745932234944656698952253680896295325564405424866558252878503653209159174796363865569861657111175379786819092816058058916330834987106830039824832950607147679770994921848709103184692322495625317526365437763962952299601840961594513547169071553154604756257116568097829410739113011797084599377495960905779329041717781366729260982777470185031805063474376272394847033592901137776820125916630232681163260472653021373195072209888794891090993838973464290819052657332389348981066780043977967248173060489584713735709113904889507398605622384296623049494239098524842374088848741834832288798122134833674381518419306368502574314044879877142091790110044090695970678818670923146237658587626033168947608853770803429001038777423124231603137353118946395315563656819098522551942865135952295287506185530064012545919340979183178006951555685988102639582244740249011225305913828350199882127168348109141811337123035663272646789212857340814207736690514265532605253238707669536350540675163085444311887521962403041812982651340584022103093522558034218708615275456638598525789817155722625116353575184351271121069959355378357950285860765262844050885335179359161570091958252291974982798142867548828297096635909982212350318650677114483115757380601253509037504329042220517482553078320517342617939782546820931222061405513380309444256216275621486301112640849724381904137806213129125343854619947307395526894942688155443846662132714186736416253276878561488073828268430610154643133687125717359807442697686298145537265276089574601120938774162510485759010988519661036212166238618786639865725072968067311405529272392185630257091781953847197140078339023799448233166864656400015115897181731230052537741689884159256130418901497949758139225524470540082340305843254665055322018102041415219354068549117574980659382820362153377363135863567001821900097365127634977726933862637094623568468720990792082511289842629205272560139243842702220467140548812341334617028894281089715538590545314313868765027189355184722426145324698631250971152333208133604750995384994623601955755983946366045763336374796594564838380750581844376390198548022947892501924111030821558989778962167931289621214251280507016968522189071416474816497298497434389733820989157322594630678150468428877993783447922030329331735373766643997787518323095323617646644673928783673367256275913898503015537853326140697042417689896824222264727730350709073914386995787474592399404169620760932269788771931096110299518122270568825805868310039245517381101396264425226053431356498356429344434488136535435998499999937928062016903010124743694332023634919204994354735367138436595417929491157790516485148582943821430044331601579572556380414962984472745945887692674744027806747364037386332848620898359068668955862217506054188428865174171311500561608680404557505366759908448192974114618870118120908604223357722493099658145376524955046929960514327907082669554596961307788235046679321699966245803390021200776339128666827310691627960285371618276492799619520882743152165208331745065931716383027530718064120593515585308173500389628503785773946334685919183287969343528871453622162514640101543081827813383303308357757973115710031324531812088965658777522059596085933128689075893088647886773240521012779523893411952709723941558533080372941033387463309758411850724562967160809785191965660395248598019419756299526607452997926520469068824810326800230458993376657050682210293596904837559952305393386333883729693594927081011507258743380794352614956921451884272344933975984332226131553417329193368437334247953917741359113359263759557066970748206810636924121030855029086691285645083930065147012398837928015642908454232434361739536064460813227263388898981239256935039735699077169692327443186578151753840805236060426427649159543987970098333634666817226384238498055035020258639690777613951356059102448846796712522811379538092403075757581793939312925499439977689599640261243643909182403597894258988771195805384025688221118605101451360368848372985136979056596056990240804436726232216956406864238126473450646075182261279046490853944773387687408999440296869199926620589394024717711615715553554999547108478577696129289611443101026306777721637262129183953780720939993083049966791291779108303211249726483718778176598897458899247569561793229717678762169333971795417764209278291717411890237009301541873185586441450115765635428620415539066044508976779978796523709058186107556426073534097429328348239034160751928792263652884093372034314374514985633019397190711873009329976828123407649306748731350366113920056375935674549618292800192777968636460960218815085219487946879340063824420539015388448840102423130067600291043708474977752911340616321779057454256412867211345760265169410286320192500527547454349439992185275574198742118042139213102913787184089093760948554599838080364289239312579111759498688790051814066665797257508272651985241547407761358279975565387658179221394183007877019410422805218419494578334933359236403658292205107003875346553930671525232630328029168620304558973425403881960589126939653913319428373779360935313977476026609259978168363780929574278397847723219848517558407944864693367250078906323855608115014365083977329341128261299214854024315917428484821477254118806303401559948003239983202685953978544580355571398826320939200373702951577186934375222867819925021826606605471780634022804586064625820604524612235250373684171848685071828294403496880343151466527411350107041667307006597304924800709671105002873234209996407827757259988326761903486090442313398506973001990604558798717173183952443632114939648008939971391771625609825472817442590181512211018709113562172578808715523521728755647549615911460881311909163543323250222116924625128418357510495705050510608298427504575170891422884366187989454056567736648272113286636778287333769589899255316655150998905036399392542538414491713761705286133704601846559405225072845995534480719606522702455718653904657297306288949606936052350984277789045149511943348184156644968435491132182524240857598868916552221152248361210745484060305805777014137863448003610521220651031075014695195820005135808287198488386191320846098094316293267509220932344397593062620490243580526371567483932110978297981658138820699690223935959367056524818505115941096328915706623844572450991565538145551897861235654787965566343263738680330795103490635037979909593111637908659312298138646041802993667998478424327166737166332161230120915600233776194598343793804916996109765421830532365600803475932897296745357697166411575901342486086098483511244658947938064609372320269081487751074770876064467922520228863863143932009887209532537819767870955541445519114866374713187358504588015917684625492369237276834603519731765580522820110568154903736678835857463807776732829501899836491039962138227109656077360707346116699383813473925677661814790170622917421161195915880354707341002965844130826482609101796069802679275906566693583523961663435015070175838452047821080725813662695487939399080369723860211644301601750812461273040502570648088471744851276476531466697770740846331938198573448657339855901799885458053694563806697150742501112598420351678191417235307918850744658631219352825974703229817443598839137962004193741735951348550719766463180060205582401143173689561137644318027289604989448538974150131679836822606355472684611592368761498839466869355455818540190375877755963541686192452570358669565364129053925768028090222004989363517901385660451221085787639239647272144610606069087340627426548213196358738813745698795929704868844840327350101744056959779290668176870470341495987756414609875951948026984294325706775615099324033524277055871238508522424565060465856449855520108163545718150020877030200974668141355527035016366177800422554262094421853044582287149459044677300685688228175173179330974719616238280228428274057804221816306354895516085882815154574181580285826380102592021358183815666584556056982226678505239965130963443226520906666382175328183242743813981752056456707879314368092991491643457298196928836300524818817051927231037008963729407870756744558648780415885229594989298523427728926440974593582675164478434621667031944831223679449482227063816906692239481239003662104522813888213578956455963560787534246175998188932088591757105547448636361895563375899406737150248024347965921322194314045593147321572321600254978716595254419553108345300021397935893578626511575348923249079856662960837700880062084228956494754618554919996333530789644920168771607460818083928901376603250614556585659444323124871699538002464729106202763636740774409342181514213425110644576269008226813760594679418333360270029508000455776631031124223428960937658834188781134565328088752030416069499679520322011816068439643885351112024973513518441610716639681801413716839090940056605104167152575597115474865991169044814921221082902452279706403069386438111485492489650278504271049566174975825225214703859021054856546164639658537203451217091036500193207315128043663743047827135676183822974510880353962073582320402383454787596014716225778787503458798931278798981047548191809572278232179666234751748928931610364732001487915771077388243109965066542094949946247923341878724325847909299788197475440125253665256169602611909831625920322225448857018022329935513133076357689340667030547275730778057540955937131459064892584750841146619707333352564757113709993941799167504865916972697705433090030735969545545480634357500941012736216528823689318655468519094123809525726157294899304808996010671085380796970206356569659491805258438326609348321010165371138489425151492153346501166711946067261436908721192281461211074700208509001982925197653428621999480026997504451904434702655199808876103712654037603572669295620258564299242175617475128811295456006629076373373327870998764108038879212791002371871710597397840537089278634190317260674645597570028795298808888872815076956473576341873037604021913246752316971415149244966608493327845988844389014470257164945015627829791139244280280740080650007227553039320918894262919569336424502099459982901352569016933624140096759000387800821029572549281422832463911246632070492101667084288941495412003178810998905854855626223789161955634785381540561991142421802530870578826017944484274395984429282204032623160559628517763910587591124285271227785436675430511902107285873798734968133000072675589405600622365023450471487887276008421751030009666716390662702313162607058124990820767867958352296807537522805469156113700159264925399262799464744964148347913236564817659436899116062360834318074861179219902607842920590889524581162878278608812098360638114394214437198402618893666194804514462454208800275780223587933706938029709645193336914513092985108838425377047780252664871629096715834838989370381818750502558120886792832723511400962613982500538411644160968380943787855085872798151360519902585797492828311127618678566881327695781934303898900115084654768604640793219215068367606368929611955152282524182019900903839660965396528196643518911802504208906518703138717595088253528724377362233579395002703795152275655426124037001798208633582891400655598800988699350430572929999563233457280257403627724551678437079930465684157978800871977149874463416859947022710624634193157430352060492195348772603565171034621113912670039352793535006952239007681107386044504040138610613670960599851751267795830223023633749582119462807142055685345483686287871011045400684054579523715285151359071403296140804118013916287247247429105682522271686919087150277951249535766216470269947143164935273174345684249718168153532250358500581317361073277867129061027053108748307708277513941258607720357305326451163009767723600006957951088547225883824220001452190562487087522234279862089217354084393449481859512949175020913467949576711370345930537561733183708939300564546193972013303587402792321601097819925613156825736053523488800837568994227932351924919535925462411768791777709576885475279261823595751635213856667959095320408194146308687157071661766718416316620461015422733974332245738039976907029554881986328419307504331777734317890236117373266468674960124305550408742486456586460288120057944779646304266827420134787875953860400730792059567564100832102309162314473467855153071521734729724548962520551405975637202939514798679194576357186625990817900816991154297986456151293720797791531452228250226133615998566841546358952522123520287993332156122173677341728614261432222359853420749357339281702949416207614756286358911475475695477522298196358584423184871914744111074387848404585284520284324089553442243760368804469674472383862578291377227405565944537630434094902866248434867478057126623705811184261723404190494897508368468917358563867944384756172296623823303861507785399369134521636772408694053003858537972011442376894934178557690905598208628525010818343636598822179170134822453981674847230915534554542745590351746704480857595002723674710004156426031510840281900155412147359636217192380140650978506818188917325761471447731850483697789913294315405877537240599526862997431537208103768767282612453783927441381787472602431987109336866895417382364287293146163094164560475535666755218036200031804475917344171199754203674558834851905438589994543897031993919512445587466982024839878027302888437356007740728498682203681213136210709028687070927628631799472759446148191608176599205305066763582802388213657963340405525841182958594906270987321419996636976332854664846475966081698872753963346076426085715457464439774559810299196622854278615852183790771265101219063317081346322149103254241428489473574653562220582467053189999885464963197615049608237902788311001851008358977897807651337218769019585582895818544803597258715979068649211059718501279197316646590241321563719940812668416093632517436846672069988367200436820764163926788702683088538595041366092714795721139188420343633122483422919664558853705707125511435033457592030956212881407936086682230796283407255032421525906083856963618977627139986686650436452522136281856903141844656511786150823796746235247061995128021848807032101325233693344842131205649500663245343852490000250510095670862083439410444278740291690822656559173939985414400559910987847321354835284197061547022056178529166904020825318327274868396207195373410394938509526860295047395515231305591535359110750777970214826228361097960173175110114120794173972194084104456320446093601924236894267456676091277528380005637551575459339982099151125767594254945889795755710487526200233865602998240515381323636373135896415270610243155595800575880266919928840724744328514296850191778220162626208583607892957066181642361624078007374483002470894357372636149559423511827304116688825735007202851914618889690353624457401091090191585793212675474508720385336886552513288128426947604128157215492682965075300867153633938630709565077015844268927081399415871121350843600725058738334994907399634689066338452925937950693694576487042981501495489265365684659534553376670964976481547673182069338431564003718809339820151757239327927884137882706563178015596501935118597061213496010308582367358419035046361478367929380587178013144540506052674710728912812318422066733948071901801900728526562470569686744660374795540134770733775936660948799550188509777893305160417462877348069238065464638041521385903592450234474049154025886358861532757883672153019477731302401544099367455175019015092891698924654186010831526293048325814870994561304476574906837951240929389107337768164419198383150441368278340008452536380648189168669288119378674847140320247571332385446159964659776926424009697067429784149964341737800151364143065799501919322503202788356753878374268302292038853114637894317975269473626756308269480623120101567591546725279936775495513252954811273018791566932749685238434003268949993658337869799260889406238387242506850159546244116569033163684895008424467013027405683202468691135523159533806488959259613379738116472793882905228495332229502210916076844506096381838107082970809373078435525324501840893620266569070872663593921514060374965073295640127578037209077421922911833966542448469559671058892101033156730444556599134297949917386823863654347569874993496389836620230219894972335625929872993534151426187140207899069244086688925001947305152509322240531495168291197616248222465899935954128982464327200920744482900399051452171737444891376244935785094457476660262933080282781626107306382071275655529802964200562750810234693730896183442072399602956632385489863867311789364331770780362287420026945948882485233798268712183893466703565767155445660826706757992512897061690006602100423841384532466393062725218094894398507610257108811303624775464659401880804699329928462956643583080325387682041410801796104354046513717336041932429043455528762941200193930484976429249514954760775944639643342433323244469302384614848826859043684361095632345772136710100081570154449666069019061871303882787248798410741680937060352604063497977620025589879939198856279141293470077239994113762151284687433707841157314467918842363342903797037310202455694232554285108493099119263361313984371337039018667272320403438092648126876607056428524970291277828778868669229054215156251324077808329906787383090848029925007094015963443803330936921469013032102557529810469125539494248702908257075885859089822507881049092027269827435827506600298009393508564794895943421447258722950809905956627893920130712222730410073490548794942564899464977878044362140524131262918591076927164469038156445319884041220079460541892672221807885426339466343796750876545841993939302881520223728473071801187891668896888607956727785043701915665893517890912209200350098104026678250871065380547851732577640840793361935890261220879709007978460123225904853655471264466255416052589924409092584664732831154125158095605977554601490175624061295968866158867581812059032284352297034646286473969290532348361199697909349371976896371955978043407785916009095516509946063651752258913926893466560771177154072460602462180038901371798103116764627746562967068232150002615292670846158743779868569979808832925148394690147939024772525373324714087733986425479456073631705242440602249982846409708659113523400749469052315009019812998424376190306958918931139457679717851177903666813226736889556563685526864416513148200312494537653494157093826227516651710988195225571784174631838451053525846082944336009103635548160518810526461968140449515534725058632183837387009523124617263133702344456131183403973876260557017474722049457337064822097389082420464591685636767239292311300945414222608290695045409732134323357029993756649144897530981684866046144836546356053958033198343112903933304079191386806552434119619994544049370671260795523519961439686490369336694299273169094048036561946076735750784122433428390962907871870713324026246526119570184304489902867393014986919970173672695772923291517852543687182426469647005767679219544459569638474082253730322313550403867405183878819933344041379769864392081880958475004176660881428248285367043040009947375041310756885116335802366772523213581128385853697967727422551279174247102870190717549121075856574366790954757872720165960947619509208798354680266420695672873895245366632239333791675931178884690467793307784033874896974242659767761875120907289651698435186734434038500738618633595789923389141114671540323135629388456783203912193530854533181647579902258956014224347021195329742805145360616374343981527947357223716197650603492329569568679864028815033193987129721323825508232028570068843954216006843318921978671250706839420334833498158592920725713611542646858651636732413863686685294393905144921602825100524842095429082644997935833355524841821414656064244677332227844816214456419272592056922974389618579830924075593645308757981677189518703489593526304576672619246780481675728704011297285382459639101712138011003143140107757703085490030882188722049362209974094772101191877781060908876250142807636271286014222903533531918064651193163509956465469393982458773982134603415437663773274270352491802888981998071513200163269709639914725441671282800861804129945635521962741341694856570369086787721100308755477492794285611635617604837270952070851987669406220866985306806204880486577500519221162281581051679112899706200965775560508332692238155920578797248402062761811268198484875296384143424726957609089463152911508344287721269957472137727174468129386695648275229959974305732071565193708434152334029016448211323585397755141840893647200886321788304054305382172292569830352789574985092872183242931223071995233775840946588516438323678410595014441760087750057420955228593583921097252308543220851711076755885346372213385858592933155661224786823576081980228807058025711839515134209007491439942859694805663813050151940080848436833931068182470816097196764108545685847937234076766693860151264194316660165736767245391688735773517723664041801236095497788199694448601659512674406037577988982741507458803051260221203600023125481529872196431746776619138100831864949789529410530017787708227889625485014132506739076216981506943547425661675843689213094051753929398635435335845296752050841576954953176404860628320677423057573995836478395932747342496195666721704818848323916059460610508502573222365142937608387782660945791785387571573528476596914420570937584737584259107835898780831147442617935152526391935666947148905105355098793342336024691048560311857882501386820701415368018881361022423152791669637316725925174930881529046946257119197356992641011023657403286826805203336979555196935851899478434115177490838020453227088986548951386523807882309943228177386900827154262908234087305549069113965893343041900265428801857647769841886205555053045489360958822871999396330301534436188123988281965230311928751286779919483414918802370513641259811759492233007197709829925027734197991681778441437900988130736397321512552092363029038242272627388197542105895637653540666236404921658411024858587140707487529536759310947105147589111479182618088774340381424994016347254344392345001523289970749493677727417953572696660027374991651480396942475387015517888678191109774362606001750601631760886711268920744335022514072570878131001084735205322198344046545191152657709840218758791934137075107555962753975298177637963469414070207732558952986973729087693791579185554291038243256443235458945277707918700800489256992993530221214830986174964446595231067424560901984034848346052783987812433180731034013804406590155789449120838822233110358764533310210637913258059303892041353956079537356105903912129299665923137690562224279366140256036031757589550827897815339720458127874007267698557932531050900474268044539269181523486116396260724754860956766799338119089193062480817247047513394404356106761547723991734014643773460958184242324317892858698856609253020300319101902868161700566195412808081894445553122072120474496132783635312914576205664795238267350941634995093844535171640808533363038802895179279072990430158945076156762884081857511755282486449983763452850914956556948476282441860649978140396922568576584275159005956877190787613309784933613869220172404120326786225742097438687049918637828059343737280139656232991364871215088652997850180408367511841086867061971852537015031482343423959658632202155134658410790605518613166065994527658302647856207415850360270734025046176179082615438785390730374065410168973677304035645350809926548766589031693634130019703123924122675124839674151894939727153572095572279185767634468756155041220051685293733117061708219947983157281966218077473101258758748321358421939111113033728238846857929196415048100504615514128432238331983047118401548440598733863369714694515043378497084418409629553377242655688437068822610467773761373154020265492692657271859303967298369403995893256242131851722626811844645783194052073315046773170083028026136534765549156172969926897647644992067851274238437715065875825398273964363976168853852914938803597340722234257921505141933958026136112852984844727513710644746452449076381041688087027715391001082647180594013814038928402375593910139465538555170278829323455362886672129757511458938989848494953040658841880920993477596422409916518206228306847258959718620728083973463505334955506551634596048311844202545099798368076938951773349557149214519616851142492799829869195867232640786580817790849571074955579034373244028107346582136249824417052482613719774235069637410531771634782546484765010249182997254325380290618299631295427772393738870249693838405496195261793007301507255943278877299003999003415519483682924577588933978966282686969614884841505689801855713361053611449510983292426685447660987602842554635354677060343654602101408307346040229053752066378748010446947337284908663069783195299399449524138406600036761570357256030229426893858933074529523100502986606490192440598389018811737888587249893161445479445635123288139083207180364272141928112346945013856509372565827348402327563719940629652633003429956420150727532282870686659447897187028963805835615247269189903160478327217483410071305409345255205673135623590491722264744505708162162699220652171507192210732956389363491489130491280451034254640343691144959349724121638386638176010965266120131404877640390045157293379733292802500499857998296811033742610342153629476389996221205512164194234181500654528223453945017344475049931714896754714132318266025324685039844178979939409640267490642176429855661918916827472445476553508289971964372976941100547876152602924028008916734028510064725177742718609440769519985187661657669072860488663991098787670167314456438302029572051536552547335140358384582557236618184058492528821752724199121659381643199646736855764708050898361499612094205624342703167220968187899376068934702531699092144117530694808596144159304777469373125532851851380915304123361739810667234144988558679511229088056204015759299966624187189211278707463747961981317179418155632225869839548478294953909791416512940874879287737534476823144358429475879268359963056094523000968217961713741084596424842188588579589736145088725367663805430032263422453676961656218333982980426178207635267402593688961784464150627268569137706351386779965760824438456591435274725569561325737801737717906331536145483415479901841563137879441342298161928324591742082809708367920303563700595905378888985030710485434040191923104472998120287053779311819000847372528733949515813214067004007296589057037225183763613847549211312730993623919231869034174268605987128830286489746599838690328715780295730933895504965023316579310146847612576078967869501317368486870603860161488152334581201723039639598584094817861655902703329283948709757689475292686851715696873793097517514885060664408061783801599147352561468671961696919505646509716086091657824657527376360548674820222506831732122370680486846023650538986165386847867140387483681909583358781649245997908338179334625942734089745796674643658975143220782185500266699506306588608641221111798246105794213911342812267664472431541267781420250288907119548463131513383494991670401794531074249342809608307426976088466452095623211933444036491700848910653680543321522040108085040313084107996899772416383265002440166943920195747880402287335633669341270276169276307949951448060090608868548218949888092435235462399422901147372678332432001995963004641853470106395053538538592902332287942401471151900919691847370981275532095891741690622301974659485862861498033179872273628039130635264662755498754186037931945619586506701565882698947699899006254304085456815321141700074583562616804122332594803447266735463375427475037037495890820553245536608340922981340081965634365534194556836187711457075036666331133932922073699243741650120826989540385414627272392904928232522571216448744416362560548605195612439263077080236259177305890139587389090446455620013864866188913526921615957173515665379829124663256999652474186896446452355036468587299564289321612938870055091021159373385592490813114725403035958511587644289860952558671898703738439178935751232859943083342464733793960763225718880107811527338368644792650127909353426832549522744981885327688026876600383253400990177349320230998320568895760616758434615646029176847193383922346506398968124645832822056687496775278079694642955942444658956310486447216932577591813711882101451011810443532593862077804128247863176287987263479833703328907085028916960790117157033379870551817534685215453833495984513388838144823475292829194831051874112921645952573839055023662897157105401291740760817655408182065511169175428309198724870981044195549031396182713854673224567589837266505191019733622377418460403637031783077681837574410201182537595798652183887058127781265979656031166123838056872910362756295303684455282278839545806587166197818340942343557850744094405362508611673714038792326010559213232837457867049763199293073518573438741307713294421286025155808677754609259711249061579206633147343872510659759783554972246755509534757525567169874258991269721209429178991135738402386542366127693306176484344661119859248468952690582822800010395625027456693153826666290967763306435452105808293712056503662572528774178854666242598631331154650488295676954658060420309797505819213197434966609309658147147074788330017504057853052052200259534213757475243418077766037079305470033931457629924372318782963672582890758955161239046243687951954558108812521351366105911623748407166465115141251380622035928688984773150209485877673832426070695133022744201979758996285903042564891615072552964949889913224672116145275005439898210762809174672395102438954566278784290439312940294346208090003267156383692628462935683365365234487295579054078990260963910852768106461854425661392502421653893904463815641910743282313581613522016534500667399499461282594083720265434844362950228777482298957381001180096796133888502139740843358923880543417024466503445338403859920328028005866795877249479271084518023862648022252040340466063333602278409907971915564514003705949490904005714550661129944282054443065114114064802958193345468418544461759669610757936220210183404950878543036870240815818429592772761118930797809786636538456506021720239546807654733793371542245589196488730323886663422151894570453047075530156024245257953289305713674745382807335634198214312338578951732383563137813441940691992036187187558275787648033288860914666039658797745481170500625738072914649871614841237384441405687184771977924163957234768333136679394313053287648214417074701245502510421487589596718048206104346176573317736105543793231860396339939641900989211326007730608114502838922536053767789962663749670192056269050413618324697174361387970357954943357493135494654422591182727328636105932533838071484996222754505780244179294436703997388082542466527600983367258854899314597631995317118726304373984741309473070812198082129073088492720431521781515948079561372545424852776649579722455875725651778639258468599360466223519927232320303084076575497207533025216754908865796523054203523358125809661049450481378371058522938287037843388846082660308464398947567978461123476727376961142638651996746743545992842595396424965534244841978560547465369945991515398509618604541477873554792008539701528837725765751856737641882505041591378235246368416697615413784686324988268611669429560222252333940247294416402104463953388457649511437667692002824015255786390602189301570714646917260263252172974462638590199400076087159001313248049193927753266161424370221801862544540990694559994011486906777443289704846135378102562784134996915657630192273845057896388903952857603091889696004038792450865223946041528577077490630335279817404384345716098449583046319495128219044393601108538569686617536444671758833588895379394296580932689560479046048789271123412993632191630156716323269130847553110191187968981074635852828928245897693204268225600007935016846548809817462514159798241655329866906212516254043559220418370844400704704852888068148279060353702325971074311452613463400466356096866656200393353902282185313571800903312944342434778261467283959288792071753754471519417191449508261185663159185554161011420582103799649529493421297274408074398310724957527452995106538261598364201148110287037175348797476397768516523949011305793902546327901374473068828691459453184239082448330325278843341617504985428466939895829831795621500999513789496787169262527508895440655837767781711027016964355935805788669260890463562614983451723594804525793013487228090430802802610009089270226984975603434782309164334307628434974760424996089761899189439729339748279092609194089764666858952913153513599524774097072017627539874897866098133000403877026316664950520253528316820275858966983419688807310297351630688235213775841417032189411628950979490642697111572593706898903216864768267215686456885537723890784260033920069619372424095541489663677041357440050626916045380612904814563115980956396431192107489640051051418839947892315295953437016089329249312259570631040411530453594223588678010225691522663300379003801892255508992445043431526703751892268586821699611794337202608437364833883321808035460585231824717428541787948627281766278437844009199312701515222236769902685118408052962622369873096611498203236976933256682716968209808892597608086510993892227898949752834516587198237665134705829738125354089294040555573045734249046426687617996073071226034404008041910584426373615358306176628876715210454523820281252402750194956469684419513167954733427733118055572459027817089946813967431064689336773732520223362527461638577357552162518046061100703048735713140477413625265759741158503337581513282087230366845538817825357750553112014028645946685559466633290360903095336458435231126048788306235433854754479091689188257286453436714128264972782407736909385402214148505087415386007395320814967161914723332384044547493247850155155786753850126896611541539163276874744534111661754469355779176088474570538714948800983676797207184415025034204062166838000476555124330985024983217444055430364077961126662211171954046274361740120608084573820792359283849403244403880677045328173872459275225947418989078429117390447401841966545935942086366284990331916923525936067482924870748058688187810132706627410383799510967771805748722464815003260495204136090909627096548394034511495003486918090134551646307934928830268538266020175984681386905980918402170168374786339591280899609301711780417053282398565107466785702159202645470246603529671788658075775572347944486806655048298700069138342534501939119833331244260666030010566778319017769006564149861380125537413764132838033137425006121424687050638363036920312877683493163602395171348344093819912028807721830916090398551974530801708602333809121631247504035003625216773215974331601371355517591029089809785209366697973247486657136835853529656210448722848301334782341670597217566165013209079073592324454968289619624882980878873355901730915003684614057924449201958824483910957399143371154963850583569003844570447753112288112274296964303754913710124859568324193289152175154808831062962166904182057177213205220012629534868556378262675400620901615609693654651358568929851707158836763207434197539548350692618492097644359942763547732522577592217280298601323270152155703033789443205519080366558433378599272088717568220427056091247321365827453996934559696225544043614449735317292238374683880949986077565723132164629951766712678258592543472497809687407602401318424738379218747718986346887424227705692502413077080365114263716199550351742955331966528346544651682148343199719010559407509743090110680030996833961224970607021038096849818219258085087965554239860522140365849629324364107059779769590793289742203904740382971282336820346860943420230469432475294944628784528837129432741595345754255586458726752101972420886767522612407042070427550912823244557958902331543371419364899637025826457213972727661929134559879870315772006438440899655125546266483215303461199691425651566083555054026917549815152039210823796215716039325953323963649585720228316937314771775585255056635079586189028382664371624190716715272227370383990472176365028084077334031363501675129671623449448878457269065905494205906190416533209199719538282715763918981795594257569273277478151576772313908250546689902021715882884767464012903220164527290559211742309395481567033840061413017013600906521463424773694647036899227699224667163138136308911344411292636356035851420576053296688851820521438314774772131458584507627943332972155190480494016776424556665855182033706194629308179328393576898660285163683834766691194380394557318353274658782925920850255390369512192814566729575836173584313963968920507087953907048391446797448683415574614198410736034567195079457064041355877768054134627845264310886989954920230101245743326639964638095956295171244166328450871000959113105866655075439330357834395197580909468890076931737953831003593074551195314327153536590484370655791224743767374378291393104958547248975625262058724452939819894734545775430533637352044735765015127539038760243410912625107844906676987535536798108178223308313839695232502847699962712499866633411133379153091662581417604780840496384544331844958453722960266560752805555856931146958000745366037914851420362922414334602709000495653350366145449302420992072327956873771948429285666017715717901714775272518063869728547558811278194547147387281252062643841892366086068256489427053008035238637103764791390163176388596223342398201118863171346956183554948472308663569722406933903139973622341196112571513115855401477046418069195963693806067660316562296398582116804572357788539349773961548031737515654657050178680058826455842908062139639085117088205477513779381510301291166101032373369101829445731400958384108859018862037150897908723808235322632391310725851114103567947609397202571135067950573440441425553903444483941580448350166051467675074089542268960922054795860846929764022992664989484411298549849333284463826165883371902179762833171121203890975244605132155704712104634724311368275199079937587910861067190614151839271249838018088628291335978397954669915869628570829312143512465639075933859233335682572736290881636196538863725575368486565228044453568468645506091090869920982213394229966730214015498420476609231196950753260787539423155153653314969965948081736279429480826801122785845910244160845862170311031415144901202015223990658597091383424564444152297506533334231962066210078106148731954438420197096581356442517775134705579881928726953518887635553153456386449728216758430288045519774545307091255673122358521631526170176274864530025227855826043160258896611322879028369591870229476891983053836200518523973889088979348006561494659198560935730522946640304783899764007504181151835146518322182094124955291567278194086937710954655298329299260882020930059096999425395750202931128036038730106033003743436570956891157339653158238022015798682615460648008415940976151003832745460132851817711815308347177891843061338541669624242135802752575230074862394375242678131406352368967213215422348187630345472329943157107115579030314623252102001561110481585428692147142914327551625491013505484153808177429312225169946924683910605354119276402848453842052281149320347513048114549983294160263198413527909703322378600770249207773698644678500969347697549916996602267326073818020796480698093446178774362898098401770567701677932526065447146764670092592837105333708903027394937707563175415553774506759860744409182219587652983337566196527038175952309398114332919071960474770064116150563143299260873231503469389608109318396532295974257076872064696627780366825332551773008831634415042804370691703309118679453053639629646592616672598837805187323906328665882115459996714935934377763808855730338870299485393253199016114640404936856729719716696755436363681620137069361578388750318765650962975511225891788417332642077260091188686666586968362514732519585134142354935171302345083125825910747208156780623735082384604619962133741214697229783478463769204089452599975224494799907738478823839453401752297675900844211662915345894173549054125450719592372565070413268636695448469758621277162466995518760317245456125125122519156696331332764963550499843513766256634403982674009545335623765206742366928370752269817836587290484469339351683077968043575958080785440661098944902445042973093128981047091380191849815763970505610523991183662095831612305395536247698990325288461207553051459576625966980229204076027088873390572227166162371008482916563247370156570270157774780831398529841512984367133386239924439125485624237857087573040724701251174685225097787494659535228618663492949002945381340327348201882993342537701387489665756434619748553943617924595982897491133925484244767092713722427747244371094248573575853921124290216524818059994500633226364205917432892644583100839011472028126613926087055359814765290985863038253626397979871563572436432244855652144631331929815699155759804466570785511761801406075739161718360977301375642844693273491134846794069390825350697881893351368053634199288601530126464138936763128201986470386835649631926149790963383911153307818003934318400020471151709481548603749009148979772635759453187704088595140466644146332172686830002208681423746532994685052216625830673433893377886475610091037167295907215837081519418315042313206308557444382723899677132162217437723235830432304648675952174108687487177221815346788015398802389197165265314038376623259167668591336262845720293799146125944546684343450162691022832549868141086955319168569050332006027053093013163846511200119043311140068624551377167977678980829448067198558324227023698147902050412741842184879547562681753268152080129101710833013561012835080271308102885525666923239821700150542928388278685399786126916635470220654485536994753778657875273355045155681123196091515257923285471518931022126431991127380857203822101612426779993779567905876821308720335478019532928275800250217831583658285691383167651981456768732799002153981666970843358793095668032123803236294616361559378500827783952654340241181371144539392982411700529486049820546088978247913563432899370451788835126285501071872332657751803835132576331774462470239782737304419238512871182601303575381748844937506148467415318443757559187446177964705143855309149407213715013059049717410532649201074912188580350365932421188144584338649878622929204308887002015092277145783200503825595015440678013405516665436582759659276846792500425216682861589547017158149966325005471598192159510530480249671084489053226705324790884034218772062782846225667435156127882252353694330315409600481489440108029809300170869884661357261065906198637691726777787325132222714883596806023468973303330274487300060854299598741106790386176017304830387428611501515949850176344689725343378388258015766190386438318602336639426562017688544557628227257624504047526387261527351633967328969127503169217848014816651400217828632538666327803837839555391169014200422996143438899984535844737665043854484548758850147037256000598604811582767427712912477978067357597814998500875023426431681960675502995561468630029271148179807905723002810959961744784023518208600959088077363784018283749723080170099841717237649854694666004143329417210303458540330705788816066157910950891723222339123930777672270826149471497264194985872870686094851124881172825231635061578040951220915733462594653917650413204000437113880072539785172583111017216640537311811055936013159198060138840638398478784674908824590085431453800826258858043084987101582398059400768874825785246089323927434940423076883498816657879304686020743563384098761460964689704648790137147513945400882754670961219251457257444364425576478890833664914327377219608078017848125447514318707424533629004401766260467319939585039861812889205593248931207216160910233671093891054763675540082912378081558064630505564250807422032565867594652121602117227312126554799067244614819195678347281226666554124186007249962186940303877795858270499361283931740452018304031116491423964386637582913759538456822007225052566038753491172125724011242442308612153123311183274101746589802801232555821742846522764696812824929003849133715532095941014570697700807312614731232198510721005682704872497263687949949786500128126808691421038063515867298827897569745366670624484021924594115007631690289669211001003291300606047506734884204551022181129257902015166753310938727156167683262120922065191014003488196905734909275796640489837154916358345505968013411405353783698947764898140952459043205551169287061062992798260293526270552592003772321750652387756252197745588612756013075779325586632980535845971928729744174487409737838440245685725801960005493205195302927553532678536097328428307366962965929192866161583597850295834705672691218366121487279846460495138312155567651713052000041910421377854675694740950507236299436641645279622430917793052589184808682003036366726590458998693242404519112744765243108041677547269023278453278806409459673481689571559964805952592020353431635389492411337355639432971990080390393351584065403446563996313485922836574530225871527260362586128336608501383660702515908970029732510538269220467792018315992908643481824645789090815703587474272621995627179149941912569048475912227214601945039581538147698189644608014620236061694053520846852194466373414608966669691450346510828090515496091071424867599619085696945997379043345297047053478479549024509871202966057640465946410705347380060936344428711026933664415650172333990877316976148977180187968558094679784524105647160576611425229939883065786687777617680463292383888252540756618392522519265366940850824384938617014618727067439233428480470972840395525140757966450336064668983679682722095979639342422678561038546334727897546840829545452572901922728914601821164809870348972434721252524948414712723303075551012107265467807292206407217016198887600915194982813429819667906031578796128745327147059826815045684728977721182025537019757215132974442910041464509721969104778456201926004989476372481946185923999150503359906347996191296719279935175792006053330247453403422993622168924831317336062769642005416485725060043701487457877586219211365864805913938633789149851665907047108216726450396123838625456603194481490111298881046836525669227279481353443898848416872247245045565844835428976841872889889423617286395544209311559420938848433946032190671934535624682776383997568826753652663797225617808409169326017088498579428344716872146981535649054269538974479454019950852496046123150053037978526693927124884491437548395448577252939034054587277127551341099729515906757331368725203095300645977734531018478801660561599683797053714711688296182681229065966548957625665400905040453907051890838764040844543427420997046671442281311702512589707383098578620543620852138057011890742499968367446421318136161514266357523762740103757982879456515454689021970897252743547980290963682630063288061721383514463559219416498154524105983337397871307422584527253693508600745773281376641554844387027504598937812153763991952542031323605493359358522493734861341934316646570623584460249141859576698016192018495607174905410625408215647920135203959450711721248530654218491449379026117664658409538897344598641461768152122821693712643689426563831703713449089519895061336813191634312460022298919001670577496354337848675703741476486602527705608588922431383098753829552414219902281028501581794113087366197317193758442602207532982991953444972890995778422175858962221675384264363607232665800521464554396751715116109145931479991516673552648239788246820954485473900658112612028721480199064954546013462665375565952712361096880595936786332254791745300337298007253345899689640620961784365248528548192988917928507446628731909572500656378326555063516310812895989436848258437107041458818643322891573111142794457374033458099712068269248946223816272799736757607209234910416061701172691143325792797749610648507963556265966537182450189057781547031556093995569744766778462715369929662506858664148141092605766419496998462499062486983891009860187495098292136768349657708381813132198380105910845662655604153288894735169030358498279376163480555625968886946186607050517526597824617578458636039058664646674292361820157913922091790754744051615850515006812463017217337766552680907852559154507313222496162509650655677730650910674965469219818641025493590029375876137372620691392643052088642386883276239614477302969539993512866814676198957459166055391414383536918419626642453439966319237745545085491292456713599508888268770766222435028923104395429028340712281449207307811849714966276841703122646076802695761657881805037383120539089854851155555662467502132455728846542984164152343044228082966656004551715493730520961058938762095959531850053134612735196865158747643193720897004955376098815675267411544314659555799401239989179704809464541698117814551172197619293045463396783264708520231056835838058780572513267567718485985808665106201830862248497189911521202452049531099905758125248371391461410516157083769211700826222779375689400583453430688308827198679182125405450222876880492612181168803505057051823581898313977753813308081755451414759032779948222611661805141883056218203008832410914305438505643133245860294000293910670232084821253545287015765372866568671039118433239441912943974029922381742085545930206113850610970825669933690753376859944436265174184053285053262455063935313281407160896218890000957502627109906307283023217518929184393989445589939150677604272703339961666222895153601557934044234277101978666412818483239955998826535652903466846025288770636065831235300710251676552393596662842076506512696090833116569015877088506357322491801299399049521436312065385591550579577057078997978296650116753427969717307967191685017018179712462288789362956334411856584419623876507352508928483406533527260315510087967784031972385830749246490065024825637366803404748996324495721011481411720911396185932893977644363845723756539770408340176313653270354561415909843239263840991487574085064529266103640422970985361497614562318916729037199457707404540482637133827471180607033430786663755524929935209607243255002366281912245289670919012231825930129499751281071035661585911788652523091111540539811503427917602683803125712089781559833325195767594226134784585203566051929345798664296850085736868824448367579030260013670841480949443132009831717803566111014615006556829055332508283588963417321928936421685170632968975128485982281977471043365045799011138589864923534835525117007638538152030899252822733745878121350704333407151114654031427027066587854572105714201775632866963694663939934627254684818007491884796256671726008963603072973979887392302862710759656901209149718307507018474890626132813767162823888907998066558224703559168960084349894613938043663590430307535835787671476834045739032839291657210049058848467262307875696890115516081037167366508880844746668966252425118635559333050897361463330400154160733258222596122634078662492557687224164510717607669863988735934988811646533206996976316867619354791966406836759636980023479903625174040292253643416544464574697013516694005910199164228498954459772333808237146178823302692498661184940862734120609787779181454820663378351275085862145274153676783595390552954279011434389066787442817500921670206545536302297980827809371838382282885202680740481491805843229703755899209942998844568161377653986357986760427710029858257436191066621618995367748027556581350251287616087156050516697670251710789315123662711675012492245985184408380949267121133423100230684573595786199468091814130161544131243183904188682122754615288938039830183011795192880820194286613108430346080791754720324114673735322636706754614213199424773371134848823868356979627373872533468591037363546248450587662523495050387627547123798009348494682936231292232804722532998805818153723755108874426832399221723944266985383489201819604428056105615631061231104670825622257703826399290890310093979875889944395349723134402303261615682773171247276323277656701274662139903411610958575145460913956482094634484156788897232253460756353411733389393024063115274354722245159505117873964445792073669018405481811586575071309075480781900369835617066406238674250291375894769150586355602525964102686123543681530017719109369011765652471851843359020074392803468078571295137423596009849032577884796544656555817146151259085631675652636177302140117071962847108880844370600975194121924894639752401374119218036727928807691281221304179675329884243346637803844444878434818575010506341737736354201755963389468367093850641073753359203613305903397970619286915160215597148628497997375725492675400949928208381309444461578400860290356951149764334300465567678455475328922306810449230849207894513404627272524517348198464105716375121188164751159774588815119695423280616083107453943267831954207761408856382262646824921514675191503999180490572132861818923483078348814932002332475885679109316471172697184993648458086289043762653045895476212012365585935692512111792966123044532638718049685007833800014506891576415873961089548880499549726861304944296824390488799885486725897365035552339128254099627936303235381073352795398834971775459141407639247032273798255912098770579841943423479574131508540345480622527822403820211764619027527806645014586949693249760785298221319836178039097301025430307069513358762550579383014631242208489405576512495217132633232440079298578683040915872610943703825311208285232706607819821929503689878385478472687205418016580923646962455031605254682589763546963608695530812566945830295922464214467115428078678560599394199107223480710234791271850314088932638369113004048476144705424612730651640245838666711798053499793965611711828042945740315350408490107994651551537062200312414627477404639108848145813290319238130955470644232447097971179320372310957776288620569616191173272757469536747015668154868436776581632848914431232387423556605546559708487396046887915422783910287009088258433144020621774680121143426858602637781522672504269044658603038462539847828505488806869669957622334224015305949939039708707769300806624580563983399490259769699131768887799250216727003523991042536684722051715234090548244615204742021256355900739936428641692618447084655529136743042642347872726957561059830520234320812025582877131742571784876431197432567150630626984818782675317229056552582036975990137483265587705165050969995610138807777753518888979560871206479809836276082933574987951553391662600485617472527659548230064170853778563486083278655861072565381661807109327860935946846749284264606199475022392206731120181920026236625962143037736658631629997819067929405980982949181604182415258375429797258306404341026330069171953527920263265164004029393466974415519795092769025742375105638643351318499978626456301215964886181766325350741335124101571458343633770313837604384600649032475479493651145234156021746223548124712273698767407454398816360070967076053875962712154117126397446184167310038899178911084010148630044333072270037147499457325360300815055979861537964739626676861318963638760318096104469756902258520854683150093947858002120802289335943588686610382315042787131830373952899842519667005584212729508426403424128846496358491286044951040851306334234558521812646178255127055266922422407841641336113229867050332645503232751999731007107128562548866610173742353405351716891135010290520357602342047217067038320911998815469817715028922524782868623625797552500974478087315816230695713594205685437891761840763032101283014531407403176921152492076955077020679723741015022032450878439681171026670806788480500210293689973976174358894599451836252586704007822496000460781777523545771214151880819048791125515279869462635071326865645551978950387066225065183484569120064468239948243025271834240864281897354780332153213953973941765969476859810724934956036602227437619536693489912123353564242849503026805146053387905156669987103271950377610181661231407854443734094022771440699997749801212749881862134675061923076345120030996845645003930856493154068300640640460336384242448704261227536558385752101556697841090238688047794386708472356117924946036234384818822659361734369537247335050846587441649758038513562432595287364707051238224809995742956699914920465302604683898851594016156518046059073025070751246440313534513295417910362162848930066969721473421134462948322414211283942642930291916561823064487336482478987326858462631848479525406640355675365446611106299109807878473083887987562552401951877813614378728185488141049331702690242412275543714318378152624562668449579435849117598232584494799319734567617485926139123814812390561948618979890946877418058766624344339557992926352048021014376966719063652947843362876265868964033765760573117645648923271804382140999937434910508258816355181685538520758011219305405779163502163947413858546631728327031080610380464927858885234119244965739405062433809225802249783295870940275670407758379292246259098148177217808446997342079786974871315858276963410667469040364571637183352815329819144057756573300521608260199548402473255382547642698632763213797103819539490423207689160581659298401586199600745218026071308329948026751057043544608753470398319831972872806718318032207371896092504511398642728228750464043770422262663978990501553238595932479772036037881518109635738642530152338733020318653469365054379394836025489700649703757540172896345795341818212816469652138882711371477515535357049578461944410457256743187718923044973237728247423231710530436280912096246877148770263630442931244086243780393781744558576212158588752303822276691810548893704982813540510274813586503231078734759356144539058597539645283410413463545162657636684008958328635925610211022829319119749765852269188236815743027996272172329727386383219253057428106872221988945476265859432354779998137616304446982258843837296556431205711383824223476301591740807108180085744144597742371712703315066101119809501292787524936777922324737957647192516688219225394810773562782925145655345868675464372529894115410574240343225151470782364121091919187916980395317383452548535554852806883976553601445039770871454694167454254483718826792468568733793878475572476801362181716557059386317405724820960669258469509105159623813006877956082570009666402810614465884024563772031333073503257595830389403500028336314138737972814914060294877581660987429813884008831736457660116629890286713494516713760138220428732858776795288137164210257818009155064805287507633016963178195308738890299941456593556014612871291081999809094616661211180851628898814436666210214874191789502537609078880442352409575967085574224450375256720180800571643832792772393486286390827409953403359693643049663077560841707350945157444841279822660983750742500434163538119158871987839353447755299215503964082627298596561492232092144648424637178511275263957877304185279650188720798531072192691487481375811638703803025312626145616090063738396328985726289714926493930567219601809488172374134997408656265012909361922655085081004952847394423119277984443849538872895991382011286170962172556654528277690727762245555870632206603531502714887023406191680202759020553164226698362834706568224474435452990240738134002215483945458719857487873530286009757825299815500103840310210436230113081421120188806554170325262752490878270851935455309481284676514793015189927665611651293713125276277005159131716879395480638031014588772200123568972568697211793624543873314034146180121158453295350749713176719263799045292253061356881267399498596840339638264347084603438731468180528350922950314103837576649674265490441537670675388699169454268119342944917588022597915131587488019482068431064407389659924837203552229035290827946063404519444160304011508934475600992478687290444883246851688510334256355676677297037712961281317587979489551744597999517120805865791892722872303755606490210905861127425910151026687992212832639615742595547438612991278944558796204808123775024574004869670858825167488273685428133698408466588726524445205440915058368186283393600303606928404713913032126391335977872967469288641914035482947938645510271618291130250485444125484428414046404152624175741740968691366595889691227624819674528294246640990986129534695489339418017604051574647558943010903073539602069095063227590196036837193579068061706084839250567625634703553950551083186411239979857095445157534252423956261077327371442037155363824570688887306216491753569638740204074100230947978885542647283547343375823763443388651192347007780933844066074787116226771157592448168367832947209534774155883312998162918660250722951480134040853172188208514877453380769303324302653012506491190007499875081699667980687135481658183557254587033993586567909069498245126005954649945340147464329432394412324290855857865826486175931803715077347629223033977819613180646812441493268792515602371268537113415356480722766332435152265936169488557926126733621275235038056592658215956782505744298791802412716702742429662756663941670163263535935531202691659640104012980447252418652321563209868771659661962654438005265801350325924261081395242411502196179858994371894777273700476487699103923284460792812787267730480526560329761401710085545659970137785050214645950386966566564620958011598780520217585911555160878702714427393309843296383403160418531849307226205937147174406501774485308432360919970042231634148726588033413325839561219351821540243866812838090420759732623570707880670835923991791718242172023153602169327750649942036316353509613765929072433058797284887418558918463148824167657031642415606292044820375688309940896141086335830056320287984141721129409498661677349823074726550399771251533683065351181157584625496927694942763189218036705974074744861588605063112452762882318248539826260697250325528950037402624160438070772444769911738500162751447069559332469450523405087015152345207681850297865833120276357226134724661714155004726699499391594560463581034166992636010588746649062484002989565857456076557002269328289494644083844713960579987425800848380679673234742690347922449620136798695341931636209578909898550249875665837635822182973246598844025750739734455708956961620996217084853610463743104264272600082892215262891095565854290696118968420361211793934800142172114455633809641831685039310229985829667510242379376751465580066713209793738258695710958924011241628259011696716892836183560836086463948069862643580651877741368322683729310221711329876932296200689579899675641917812326622693086241744512640359417757501425396501281641061976523087772519841011109843738970299326542138739703622983053510766677863867598668550046715656209793224293369733267224943984164437164321667111239130040579591860646255345713698111270422147306820527180504266011494172742585343331113325112677749395000392384300164988040300227698397178216066966486115350987160076048120627333463458722389699062876047100769961768665200805444681689003687765462250488131871949025533899263047023756383563199898434050314441596911178153322913281710801635074986503338141036923043002928574335707608633115189346696205508922087954712033536221082621862900426364336691160750022863984491424716167442291488999219451022838478998984875698511965885073077368730322512745241806041622445844623141006703952025195598569247918983483112693004326469782800061439815698715661513733372262425342749428410611027252060580714834506360636821315174348819459132979976752429961771545307208695502257993412216715306008974029238834635463126428942067105479631158864840335731370021667983804108271757894985776214867539665521771237079336632610824985175700836257708969242823837778808105818542176765448675973754306177610404543992791365832946455574705159873605324807671664459362237729032093260826201493739864521696064232326620894845900928877500152218946078350685645069743593254807258500215193255905530285690208497692097774505340479294204768804365256044760671472545158842507940441213412705116413252446712779565336861176153047929078874186071852551357656017852758876795065531549529000712564466557549394376461174318959931083036969949802324037589726470395948966127341176608637700013512979337450294646743701165367023847904965799064039762597066927621498434542406192609178192395551937627798230945958449252343134036595164724291299864296697788210914369244651394956726399604661891994757337079172733828274070401436651225140347981591997714843334207000573425932281055823602958529937240553670340364514112546047351856723588628217601496370483282057190275535962305109473615921944707494572114663891763691073654174378556495859111118286045542224904787173957950312906031747109315998282123351157872041553948904253780662675086048936563487611635031944671968363607845071011449226990586027463683450194523494547941473142758436553179495684290555503365461505957566787306383523861754283398462993181617045414308104476290758375234213826843196058338217505684419870517053594799544239074941235198209737903408022662327934208708898115883303575270787044984300802804686182193784458635074116111028084894038710307289675690997786936030864197559142009813555070380514412047444071211477969957678347519689549848229989320468795014613394722946492219217897420639882015090396390384010489142932551751611833530892510608511801779533399963599262588655162898404016781022228792526765407509833175238617722951196262121619911908302168353866746635097064626708543491171477603201325574042538317082499217855138705138826243601542690084369621744953947171132815311853554585723051296704274755028816336064387422549544267174063929528773420861960932993964652029702748236721075989586267470606251824917278885956644644152956468731431853209841090732588549110613461435590783431791864105058481990923247793800235270609229648850745471400432905471865907804426335606711300863854168698488319830702438778230225310318590843207153582612454284269883620981537886345536386173709914918036745355750780015182868131821842818568681893523992379741115399836165426157379002522868099381025994733860556461939983594734122049225842493370056239479088787199779305564484452183213478153825540725477910506413146426558238625690547789546137265179980765461912510486162611341910512760958189477963202638245521759559223790315499185484465869707591222654012020997648537832399325850326697554293830012552884314752103214905472423401978558056471781425163474717690879906926885486981163565062977511972164092911828979304589529913892344571137922373364115500975362735949912871677457902643928897452452537867807023937313812817166872672073152438420574737752682203364675603287222301199160959530839566295223039619426173542257047784267629036399254714394481345721159800440047033133389364213792246040640285492511229242181563672668071207385374037702900182057212907083245597018967761202254082854233463660164563555056279488643415242347558086770884367449983200110727432994997371326725897777635216025919419447092414775780023341139206426879441025072003782981990748189437796023573073908183900867152121890104594835264061750574766858402012732227616873107879136667130389687580079783245649844339456951006902344012381335621754049332220498851046783307239611454416741888890102013482058749252919528188345495536603809388063921685924903778996056345420673367960029310331372204371924051199671708767185250173267252497546393111563886832959153366411626175598670298251156068355730449962691535342450699217697609814672663138264587774519545202036773381363945467673972548489663096530855546840008070714698427779073604319202635433361845586752921383820667573399620979599145755813069046568631794427603982368796580061725862795901873762355494478676475254850407574595241302354434092872994956933597005229492193870606184839763898249706520881914499926755631044786602202542666474204349170158109387352739104338767287493167164905165189981828321503602453385123179012579637304798545052740521557840147291589079327893982133001842417581461785980592588473390504619795412805327816125411705422039601626964392727744894262303249746625861903838884332513644735889691588691778176461450908101167384453352314620301877999197317046481806594836210421186584185323540999369918630827901749607042668342012013025824305190117810142883802063369981728337244788592010952315487357200441107802328400498761821337356590695142647505437728007189824973476602258882314245084947670870067179902971490883824836275369475724174835742405041504137423248615077117109642512807101779511012387266182111149807950402738584351778650251364316796695906081461259676114552384865055431064790160734069773163102748372224624880827972720824513265386503876533364744034474156512272748426253735342978195414023536320828774978223745520352213983022517748400542462802702086576215101208925826793343282281597868575831042628284839128540240550749376457726619886307231038224271844613001412666433474513416370118076137863630895032083833838028811989644732182275887707785059924348923638388205207349947262566232573156952191520071268103627616102628879241106273479812870066198129255377855397755612535633458697907496880623219401781864935557066613944302165502415865904175737286766235509229489483641999232883431510246406385476573905156565352421142176926641184883070707038524868428553170308537426768917672099473318570197506067523649486168717816555961076556858418256299636717213573600521677704668171012680879831479242941184769765471693673942360872904792131955489656586017663498166608497072615430817406333985850061351778797106229002353976002412170357310891144312560911417441054615858521147072344866291662300741017145093192637347329632196924147885738566775225997097037971054895681794474783245569422257673170252776859425996279977767888924045353039179716909064630755413885540562416910733819607767540385930828243389205900336006023612325795782934198730273533952178455138426916388949500639949105531392194303947632366022164792196119071724493203664387453511106837034080521684428459070367413040270137351375685099160841800701531732467858693367189828645671619144252568002880339395972481836865368518822694457216470229383783924211209277746035753177445100012707460410516619644822590800610050672023865373923391679961168657790979399259832578932783833257439524648065606553264315412088277806814730569546876160046580189228327514378315506950039861707123894569383757239779574665016928435077075491480638770995608791228074907373387933801441893032979262305258603723168228936398201068053270027783326957089141661569106203903223264568462970367854465025002568388116074933768755247349812215761281605862210489520776666206985049966348365764086964863943825671458980613591219330388498645186788441376932752359664232905640659530626980068797681736897624175675658378253956868469105773994108377641874925628468704307139266440711304248662818303357695717626086529627669093820258048177341663687115030061126825568406005064105478120774155024206700815230077221968353389819238426332433303188532354795376444338505735457130536307237025008307413626091242945082291914679863773093987518090146291881552190240460266324391080191441975108397812855341466842590681925683938265517630746356902908618854567240221037962388423024931101067296498040239735401981853155947080613412287124671408450891820849166913998792559397236491369842496268492100870190524016115073442554024145786116061547943235708095772611916174512646829006913749177967024207687488900264828252560319427622519521663313596648839058357029078996864685349542690389192205101592688820668530495819196234507068756130543014617591500914932293880820839913114560740453300044608718110910391239276327079890495561430679882265221980054268561344261714510503386364282490292107840856567710103441853418781253957517580111117295218658152443846221430036677420882066945798922466778623337921924190225639760352321899219302599780084830119684814295845860524092057185676350036206681212648442284864213238716852972867467789257804083578431122482174889749609596748760588843050169100770862707879973589577243507852094303372390201849545177448002975866452117322146301438479235539819619530627016665064115586688803674950366576597709092854234209530695728767020052645171693746835281951600968259929558616933455218263994553915172228115222452830604772249662294692895493998582365645539491754643882597329170006755713668938872757731465847334278117238389556885758473216733010677739574679056001273082852380471191193854783847211147397554662689671517589821050358559827375237386434987942186362149678976906093328590146003012341945378976866552015435111284666041708635345718649677461841797114400034957881843220425274227274246845112118325062363862296230498013003200763854091599418062167536166695828656009974946294298911802583222610408345866205748807306173201291445792989623288321808205461122954548408391675503665396520999675867297181811431901466169797797181807433978099034947509003910236041482543141027082291803261437638934520906881852275146703732448421265787526464541267758239815646726717583814952073592589414215641712227066831714477726923087196464744745516227294315849027775401363295769328953048755269070820925639660143367876746478887934817386822660283268113442831090397708265314477646542275389293533051653414609247153792788849188939668692129245660044278335082295298703038593598481369185091700774699709190275312658683248264217156605006446560374809694667537040880287392276029061187056196346893973229163320056362124319505928632854954363685567374670692645742090252510682010596092671612578503713183968333676063428002864609873372902510022046572012136161161880357242999859392176228513327144645333139327091366884609691564117961147562026662493233031728936268818241836556499538873537919820463583593434511709660035165748033224390896315692100220728419844772541832943874600337181682555023215501559391098236296956805213571643978428408291128612513224788699665330590107811320427104695435159592657929610675849398433787931126700659686274859945533099903480912243675549015126447604800816382727540880540191945817371549260178593458714561706104738680440256944350003560243656850277763819758727428453722883865118463148974320440002733741885904360494465760487908972471849128583865661709456446976890785803089611466819590367312384251735721893229978158925909618323051498209250193529220351402081122459174493864816346904039460707771869908188708968248151438212518556613291293411700392257532657179356082769686764151296167123414528174150782095414189337582581673927936779298713414765104527121433705331030314748452696256202078420143224743355864703228572638949572149570541520634437527377237227356589172158330364357523598986205029491878729457448332102728003311302536256472321456148163294148188498278393866679122695340989468789850179817617344137356607883441012585953625399003122180835597966599318200041052296587393025398663601694576348299276135944687571444565327395806184188891544493582205691109946895626845523719529348307205875461645798382996910909199371977851330583589047441926682398265992178307242584626511332288833663984913939924056580899456493649265172032179355028238649128112667236669043088392949183521604156944687061855391613773099317894170348912446860273609061701374635043705700745136057038708892930441646681855577312180758159272653441105375227663685189569841898379658257433902769469949324839668709558604915533915342225669554342301647458245556882538369059994432578903329422391506881845827620362310409771117308679977226056476046897906827602184466985459512944982516486282438119748544740798073786989940291946140420724037791509715392376338907454099269378049018388088251542079790084324116384166500739595807881056760009629324309461180646500980044068444496008775288154303296071303761514729366978230964004647641080249429591076474899873952942208307740413603377586792954451138791987419501175938959143011927828958709705113519917943172644881288452323697884331694201976625670307481841082587419444420314880611826406505273723199895907561648320653527653371316902673168356582329092288139269498308147791185266136851541082218892813288132351230364386471605887348176122780859300555502858706875669877702329914009877408312903076944154993428466293202311824806686158229473038292559449083130297659112326674364065169273793241919242097049635658346725435779277699416722756628372721034564151909774314320602855195863855695171664755974042772780072998316025957311716080199895313544142489498251342326809370208821110407132757242312375755146403455159624938713454978102784173663824278364587960693192475028071002768273791875869037770391277795780320791920143687474998208599112926858440881832364904625283262583963627705721740606531761467077621297154626692147727479052189627699934710822352224098278983562834157555170139339301778671491262985256922743849441094619458557707724214849784251347864045294710730206375619155519151398220212515302696196899696248768383779794111996462626211427326180626019315160471135630571411556587001367009677003845202758518015482631092245954613064675806903844451672779175829228529424700505467643960791176226075700689412020480903114641017792075715927365494496043912701856137089666437909082445527243740440140759852500276170439540141677768978644113424737260236399411695328255920079314115477172837985548691902520033693101724453909108183657140613678623326166167982298836049489951133454875967733404738110760387611199150672535592226489594233654199933076312968229053901196803324780184901620234769168550456438275581826680064204965113751755982502604526922982423831941002450385657454108362600097152796528213517642938511104390457002135884469274520709272346373631197977312759869210597726853052218994417750421763086845199690346275214521826265336391875033601155747704319653394144362464907505235256268789330887781023002836038339224324652068720037518419337990374452290411850089611213570067198219417043005149424614722569357757566232689538323125182190471792384994029621196750253779831462978038138400089692203521636529306660180599000612267213837074414367594495392820381819071820945360606507090261001921795680135103715834784342739014179307506436009382969806601905760036583289351569018872652231705360882736083354674478251642746054169401460828534697740395408527835899262459287603200148330192594342780278567752093989365577924845976386289591275758619086878761068319316728943411612724859578990516500411661323767470132801272279029689317575393111936160314578839381896084444520714930580741929210829192731616824397967497977256979386193629813210335115276520541371824220289670206604874726919889529877253108471598341807191594969293633393953606383793395919345317473298148434835585766300000118956827198501418510878571622443056928950372559872925042408556483019952468972332944861061007515220429879832506100163600396324708507694712693114928896676816931111290410830714529456970994454617478467064793759075668284871942510981240299461470215494514523263151011962184397354420794346084106880507855507473653190567943635439756773212299384464977857061938515728140688387035749070475349789260622571293213073446387844593286433624264381236799633705844167001721163567679035400494478267661121948812780194112927302910321835890870914252440423653108554882928643069976037214043389289056319033048653729203641190109258294301966129905844380627223566134578059736617616436469179550916698472841615716043344914063409573308155868099604613931556737235648852853411266652896673547470655484103795352468860704921072705755321829686038045736040930234407757193630969407438490390726896558521356693750801263465045101897790858917491131878734528156180764223658458067091115654797558384643950393585495673154886014296123631627557102536777882599989736838050689744676140701075651582398922597290359832289811891287606877512997711295486618119050657655237817974137486080778055114348146658861100796108913353392111326281834203272108243337677132283209081697349209956242271742254553761531381056315603765937556932657961913169038235874345179055834466417725366647385371846311139381618731235706155957742689000072833690527648322978844459126174282121342372164061260150782896169860857534229871623046701875013729540724522979687063175015132576926720143360295565281666102118331764234438033348441353657725514903689456601270109349812762394172467206828613268955892961592672312169939381208538439430097688495726766855613441752432153169167881065284631296487852999031119863181422411955238686995139063351321903543681256883873560917837670943715510228596474951086626599041635691781806868809409129685000546136405995352273144908410888256093963038033547043404098332582344850910134705346663076281979843784335198385899329658416638084641351169487521701104226158528294334138655572539432967070820448841991650732569874471971219809945747725397698475163253641495573463726991378408346136459968267550991142447763015975071665005901497648911409766731316807664180766785183771496019594452283510879964716805992616809930952222729077894229519422233796706980940806627344934504896411852770954958650814170588232281211850408549944525748698083843338057041676446815812817859919203109469015475696169172991386779861682752640048959655406423813844839641090996835358411759821864649157435301002147805316493482061521290936920606657641808354196316754957551006210371104482452750287552735407109674384739993668862110928155441041719036411800643745312702491797932830522536387006804129834217634902716066194107217507014592408227924139198538792258799730377282360048977596971849856963090893079271291974021872242128497256286252385660440819616270552633051481986954680609153610615541618743605171838107430832705801442019997627226349202019922838263394198728295806452368687785346873136059350986047958766469630991393250461290649856102355147655801079005304140003413828996677238721243973640018108783140641560133356412101365262258739906624981715504863182441938926986345473548713457084181466438286344461382355182148477564628875901348987058524285253643522605295515519562576719146846928695346302080347516068897148049803406241777928460889724602727853974170713759724174180923756311926382914244167865376788594544592464460744972747736868295921463038253891527873273733979548642200976839062433110537454896711626987789094671439490857332107200904772133674347084891275246069910257101890638696832026576692844661383947074512105789850068106154060590227552794088974108521769091880465632752161082472811629459221124340966105292287102979881276196152454240190404713260194217808213385399055827120848841516980531425554290609599332360672753740877766052197034931866900711586268499695163138577986153956383127370673060514287277614764412315523671247403671815893402948397709040159090374817081609575232004576601688951583649537355087774612653583853244428811669805727264431749186410482534578965405468393957646103956616000191222368061622322477525874451424748815910412365120211175787643959037897214193754997801371594221673018198873620906280464379523379159007758489871759298053532948731478189710716090202890947935578368953082048458019871725530598765356817450360757439383373478424604120439425900724172996229379284632274299361484823408130350973408107573495080672198102737669508222902857305068476335874259839454518218562096470434811228015168508500964504780434938626867411249104801511920771911354346588116501155345919008029259287154495753782420190832179455512259740617967212743650915552154740752724747868292792341404337493306962053520625707921451067120376768189101517473696989559072992722175027474907826489350107427914265208861142837117113658776183157918139348674195440333284897052198794804388120498143153075253138872814168396934448509782618124184161641883369646691420693658672889486273721290493120466951908678408891293442252434473276035874872236813214129739919212833302304838634762507636266824268820127605038230203010473710797270074712236273815928988204938659390643674831465907565538877534429249490472205953913481354879075017954606179473124505678569215998469977643823401110159307818799976366774374740799659084425435960708400245470718619521381371792693391003195739037985017835113719902652937813886010507394049417041275643986193712755298013035503235897375318276798529720271098956070887401149808826602926190378422718677443011726896483556559801830899740618372504937280091475565216965026828490927719042254302683726752269176732791363292676042306944359756867149316690968432594152454951024309703219258250700206963176867024298919000442390295824280143428989739835274596415636982455396326606951988586625076302365700812141592907436744518972358220863989752337657051783601517421239617038387376713966461953015632453861874411924223851350229216627709608308254027065236237761956846759129160886281831255578057367276027024510028165877076829382033291806356813826189395923568684470929804913980561084738366275184188430309178292378068128381971098564676552234540868416937808386487258755637944174758037978229106578080382442522271201244412330057767664860330850589769523505506567956288056636086076980616822354928137442054282853404558247039494211328395890972304752532827081854855847337283433051291201043602780328347958897918267250178982814278420645715891363052838174338668684143791326449010907106042518268739313692188149043103021438968665588572350826986004560395996749520959496532838152803178611763114149755183312454028975297441544287564668138025009825310626045065293387092389515599246135998547958862927737691869755003438895389736989255156715048476870378630213432194914685033843819743136764425436937668413768786998471147462389741261852273460428593735703105214544965063154294743005550942738448114477628702204641033015683646750816481555803439471974680576021027153386835251458096990722257047365713389517742647553895896775296517688920717445832884429909828395387566599919657770005282473140917906092723202459024924875853046470311665111286471902644922867675381563809014186008373060904130334805904803104315508986473001551631718244620517038382244799228046132268439277100993804727193323115557095965443476743450222715758927033184476435191773027276749821359130326240361315335737903311251322992574411637681171936598278324227015284157315950775846633784375233346859364358783062767780692273852635111490303708862847528865521531566298999848509315492536915617349815490202797788015588491261273046178052696277522549718186316822068050001383905890580588838136463588679067004458087753147263357888933561614212510566096300672489428780398395001688811207512568371961632582097906189758015019592568563850979736129752261725126021466736578589855550670844083349849804723045343715493824412106204334619392157332440942267666246750203889372138172906578920582383092021883707268621723502638855577052953169366824341978157162553809318258995810054302373796746785758229725682767237223936178236034826752680920420108122859111910056063742722586851365920982689446832576084014508510073329007842639774947818127544469418137502942106098053673249157312251358993997189220928000684655109208278639373562900899251573027281923427601106753195051041860395754994021833057336194833092745328301205893130286486392519945211361651399793900391536344283453074455542879252005604013882005000685615539526521406639029842872224727965445742131224814138824500432652640564923247260576586072847497937244456845834567855939490833145173831164178436661241915063335621718401463367900024468359225458995091658428600470818289814794099391348629767205324875356114577255066974680231823755618741987796924820820209124285211006136334212332802389439975192278523602327508295326364169616504759502355697774864750821825808123268016641169242197912463900928817381274152855258549523722900685100903055907863161075702036829632256026028142932754505674843171260672403428965610700817281444744579014409697983617606336008144017639741816833175843582254622364486875655367249320724065228088308763520883057845232877485095240043071274550206865156737182893813791464781123559503891665646706903268926511312282688582047789541896680647744540974409929225633833750695578995703692423099457607548146606805688847025683827597102949099805302532175887497892512900983356848423325662918347363055592333895188232171285903849652332684491262157127703209777510060066489711978621006942182145203217219059934737507148253382609029969599925782922588999652251838708585252335143625004071341050015673146314378776210231632744867617345451663400618952334602742159520860578621645774941379241291645077604543507289488227290301808667239997024821022050123970509938681585033406277351790535855196282265651433475440968656985364907990478829590204286367940601342096484106235251625433139377074431239863140632943845263264028059544367148171128924893772856164784500192399648159927550879406291135839118436346902242415310801090449908095632526613081247320570208302667357431778400101720263647809546508647035671589584098406947146553965237509390013179224799783019574074938831728365434339909714280977158379379894949534040406580630065164310303585684864156020510717982359682091675791521271192908940492332759213116261600554707951235994447393402600028063633830555840391609786866039135757470887766102547587387543132798460007616619757599872840111269259258290678827864155728041402986213936703697189201475375548246625924570620117408762320596339080622748678336291499053270775681908948254893294777759821497393737667971275367101482146688759615979348762105619566729856171419849529309046973060959715599123163057681962770112838740147393208895743442856081268812255782032997598235628651111385310146704854003113127632828620742025122516142510828485184333855012478511915682251310754677347188398155856858177453399743093982233926622558442518125368676878768362755228800715606691506485183922516106745898606489000797975722531276799312691324641379671085387370553523526395094531787646446481549090931840444200442134939763369668406572058116778500829403744436552474907719537024768405586618787091518543516634378640338976355348298865990039960485290193103973690622989295896377007293918820052817009758332097948703978805025342607802268516508621605983205795546798711481388501849801873782165629611589270963930711806684827420010531208605972064102668337142282481694645776632707573152176870284676652851234859879864066477573413616004584972525008909164243916720892901995190449606007656727289075248524952560425776502973976035964103842088604278770402661219170681814371606500250620057984099873148926831067061392678810303486695075185253899886711487193278275832531611544375445844662849622931704625949374746828828366006068202219915111727503670822379912646964146436564145676363073826897959025994115182973921702478027737230068977917898356975040465364416453058247428540810189220892000892224227347441368292929051101752723036031224829901002161373346159960232175164939346480457354545642929425902877289062927046775679743666901825253756147926174641485086639985513704658023255637715460436444253248978535497753098814795080678541059632898560937198693817293258230052651566330135188600009698575468946883284004327917269073105859797158492881568976964947422698042868727769983906364809347208348913326108889836032273217051878088437768087411763653346104934669433769734790162356166737406614862723593862799000666218384417620197345843248103938548513606713541548136226105434570822082588137121536729486810047623996767372706050503025747492092565269339550137729541442262373131980401555177383344542978196363028565583640848996277453161323957612991814657217285642422677356160869058443945599420960634168012464762627301698415415761299514506386146249488921735244764905550899431542540870901758759903612657779048657286443926026795235846699778299516270236243329352837876375041629409940571851656617073521881054018203524857451566984164983073626141947032208771658758956652191522482270966658836087259486725644431449516871134979624554611792999469133766604829482057873735273606874139289081019221291852742315312374631901243554730140755509625591395903366607672440438378391374140475485797793514400677326678269956802988149418115307810753009471031455845776743572235558368053260788149257023698718644274806733916596030870363643986188197953689648946356003680886895753388839240199348177818585658166341324765782061169507724507371015393673898317905025948385141860499009228193981507473719731271116492329271080903055998851348969717042340160617526761189326346502371582644488787450350847432236600479492572339247150566283306848571446196026469760366850203579106674018241183257871017750623738494323015588033484066849081476435577554084029468065675962391250304942707851180382114634014067217816552434725282327888899311580981023404959087238097832757501038272480273383934612580950197195470884965370598632310730746834721736819601210844288042368010365377444296990463555295291116660685622808921619441695417969587888105512710274750597636359065476140847557703967365691104456281481872945012970025412726445293726250486634445790890505529946963118014202834194355525247690006099578063358011412603032259759197208742239341414113831509877040998276338895805414142323110575571695307215233874348028748474982467287350052430351076663003949077392650900817339044779866527200213188422490404585085464420349769449429287856580720199437162365059238425210689330523885407256090226185850716337133838555328919223478077706745031703120709996319591250623638426354587695660079995437065213195471753429658578574818014473166687185801765902668793878489699310481809155600519823187842835746880714345554102255854421253617705445740887591806593392137623198287662403037569248094416821137874821349015109555074957727318470573685245994018741800155587813274446215672930882231132913654357324770809364483078905174543386905760009579770816419362259633293133581236926746267044849503136931913626501158567019818802148953197416003916380410068865678806918317486217820639198003519758498960032053071453706494330642095449000419368781597287843774486148758349916992362424604630351256162052609035703181331115051002877539876441670696529370580834703845557230245643158283912900865470781957097218658313136157193678829708388089905766435566937117924460016354454815585672510932473135229191079990134232401096070615234439128605733515060160003569946756873453134892731144356205818360041818668594338843648749493544211902387031420323095040747596887081878473159798815756476428563791949581361513085938263594917419819286103889366948081766282777509336046416631377727621183657678535998003229441873037224415441068461995055002089650321631670765767040235452190460367018502295901972902725230515552682544909841745337260144124506850106518541364611797477492628217248521014887576166740526285175966924089140899749996746629299489580176851662183910075001545865399056732209512930685758489439945134459336399902906586417869856956844954337183912964591255757802751900577490427683673100934168777307142056737297180885176068745657010741640072997640000713910725921224052717935189767008242702026290544954772852436862485751954412569356157594641785289246096754796415927039946541352029872982403897474264254589146026187912032159247883369769308352558988103443217166166296812223652632979981186738377418275807486334197513753811582664262775434072929155595026317989341372777739532582888678515392895798046210313525187355399888865212734016653928638630625769308292596555944009752817744635421024817171779257663953310843661369317733874572499494224751131036594765424514577483437416887870299974552248054759926322139387846317115028136748544718712667071179304327141355523686719597843022539053331209276598323164298854020240612293364704404276212936845939312270101531166353128923799579642878459530896533619634160441850192384652739421155414152631476267600157752517579133232110453245325686264185235020501553205932054152439802755534620080662898379415800968377473931756879251842053098090299128044823357524709719181856165227457484348054025227256682052308704514781228422811621075262568960922175541957429807539600431158710002803960921493849267118782614403156732653158750884345771897615278232930082107630433226062745047916945727677792825327532470847353814095610259769902748910418441601275368073840373452050746259371423005497746035537604541428876757013828424538973525077341699954844578344660947947462797345762947711380117274698616533789261129291675423022757378725345061279499064114168315520686010042092250213190931856996319514106053867579361509968970511528204462756867221363737325837450960506285660680198930682336270630214852546084662163816810539000115149261669172609583308809818462509945409327080746589119196141088111112540044064155503547808690351625785486113653984844580062775320268845616784715090410457344406536668216546178862268418377791920967674104620565495393083828638410500483659738621671356888675919941581520731640025280352932891865050901601759604746891874347027000218575504335901085753883930076963389062685120086610730187703841571728854632295320039363915450196414331377052869284464851102481777344148787574635738367407252966548260180098609337522126031784670824995624378160510715300820027418555448728060823196108790590986165055660203532976714428169781277726224114178715298705949820916969921909896279562167428708713511207370338060749698669429395352890113938919107574273416703599947591240257446947305048596274719986949876676091451631915642252949837418929184732439841075203174322414484174696339299970244791910887949851051021959019046962210180136294585958856668228024931146133840943861709350417929817422515722427562279820819299320232400911250058142615881396117900338823214979537314715532569523025470538827044229002144698444375790235006108398741281071105125713866470491829992468723056315220070139933932535548833824522592085832565083533925649576124224146280420956401824487395428708040532663474876347115119285395581179422545460505580322377381171083752399866149878694183746074333781427559217129605319557127510449064984206388464503338586676397884306969002493370023490579423502048835979627751494156949924649062542610542718550649649178463332096929158002324803178285673923839111677177186501172257227717137893165862087419918410588819134501749093294821262657172576044909281007473266630385047925185427476088698343802706155199049169466918862556464599835560911501026890808118470948053158835242765459294495961645486932484206741320020562934579410380203099205683172248719312485812484961907961840170391785569917566264126854068604775413602762324570138125780662157232854030587867482839760779953048171587869551775535285560162325806218988502457451824323233916229573977198468811074457034927321409691398693876006744301883721927811213838765913421848218811717967689270954124623734654344591918769431190953996757163524128534043382932405989607214360504768426145570039211538161787413665611455336899215444935060375411888542797827742370942424159930755058282967316767885956707242587426458616747626020233849888675231114223223121441909666738419266484981396981104332525053737635481973537115855361923755441745465512978566472464699307792322542399969011334532356292892169527900907259379645797257890756633047312707448054758322872758857916116557679846710547569729153552011141165871757710049284886168810302195797784804563385190861692508365433289371238123593788978347764110570704744410608429548673164634592799204035342515602693981370129827583151327812585374954976829236932826967074721550268168524882540063978394532975706887573749500390478896280284836691702769779201889102137846895624125146210709319133950076450962263548780854517028981459667369092101705131251878393663340806722213444250800287336359623172661251114765383530770323897761624080322762778736522257700928986761608851879367535452061730442946266351987964439082009968435814640964870962317198187111623188648927374168971184344689355214051341584758118194830373908482498175630762806920821820551995487244357499073118332534093403136474559865527810290123725258076462561628971429853476480970227321065808601877107796281221702957888624883281628217208454851254431970754094488612451792381354750971049767010361186114188799683055741736568398803412383621848618459206089959260729479535677662780806227222582956398849650876937208783970213208957935851485482128463656256360063054110873279637232435777075977730260364116873207359304264295649122447849691021586240905458623725410619346802329221858288044798813291397007245122734440920172964085091813399050429834141712937107861955903826204322197700732261713938028392817529193381386669609658096506984982736355602550606879917727309503169350632334618500758738382516741620126569696319787935003413463226533451876521179743015444244142590340980677383078978930708337673080020396345043264425798938681755509391306419567672103547791163902698005447597327838686555758173104805813305252423981459801594024914986343985323318736474366369148142958669065226039569059150596288953602912863544467950513344596309674291432823893226606734169548578608573319392329145069704317666564229869112507797026731981458347208558374256022693472588414320368723156551787765968883864880931904509032528220923346256141498148852782263379568202885709336178156478018972911981067540587727820994286184385162890752904599587482120188425783231734415412547645997811615810601865202895294444057226923309451889632604118434026685367783067995387778434813311792361058745684167376390851864858398935589552076763642385458061892618507708943491310948768381533503917090403400970627435930604752422503433008458166558418451640065992340885353072670026394065411230007764530850459060166543639344169232713075700824146256209511645058654207907574579247172357807147276616711843828006369731233516995481141390709447544853463640892013588644251885324318146235644491298858642578449143531875178947936305342976644790504562929516525221896038345544748589398293494764235349499023004294574882470579558519221163936020752594657963171564507236461638519944889475325694588799530800473630473287164749309764766287173354123826168183704349196503533837175134567461850133500424967599464947285690088451424997017431696817202271604181415225513032079219624442053353092570815680478582955676004925164192733308906514541038275220664093164577410510481007406036593746574402855083572384674308442749797880961181034310518627228536363404850882420805416776840838109207540287253049890244954433733258757074241971365867570374371098113080650709255067464421995182740983754628727671211882228594437414160038686525625754751872843615800591851352329437395916931190784316033225733319243202413034199712945852102412163470967739100218321440610220785887324262139698096833002118106049742348967337451122632266894046118870937594683222965245510657293231574645525175619835745396019318009361215103347814926120802649181046068030778720464958271618450373173590421602575093513295773611439373769748293703621940686851107357541485176052468245858448987215916960366962115087218837994745495971636116991566807261624380325479578286275793550623136677851415603568037833578611086200338133117684019988317395364165127443428701288279625785664616847295596694074085351146562993097312023562220745938361882701192415103751362127202421126299185432397354499117074583617152429954911027170645638488686763204124045803375861679954933160694289874287005989915269761107178292041179852380065812033517728946277827904357358031229692582628502247614224053632023698614580135437247457484532113869428903513858186460159873501238268393609975047147643290235907980180805843661610209165514163770322241653161494273810953182148718547480374543525971996823107460661616077601905788085738229171026789172852636027867701094728598868513171211083842623379330674789173607704160354148850712504963124408511152573452316323359433811293525636078235942250083330009473360821844170708825427566630294413690096963744389737880456609961949673827282841713933699180375793508147793980259770453840770451270425245908150279760597203876099481864729346152942969023854445481708284176894280877793537779930771193454599091206411524651002949881915487220547880346473215382565169127573403053969669782517932564356275198545562812139939421734349786064332228037197694542561968125704774644358009184137953443651785957184613008891361358880221968597510095447909827531211299602416243262741066569562139309390062831154916682086885359695929808504953258029611759359734696633659095748493155050295974227069969524028852066442821435388527199487951944496440830866318206715603837980776803362772818375631663565561267338570445196833950190172464191748961094403447921572688363032182548383533621448106269994515406373217819692327176215109018632947555697877153274849917347762539736967425489911067214911060928512989024961671881961672516239016617695450577281281698574043777403395581043780345140144376648135874808595556887002084168224681373292235230614049600861602145427338443291875796666239205714910300641671875650143268990444437479698969317724628523602885216391204848632891845759480376369577094998302591202276491184521902880883958009051280651228871211357142108891068187058359886671102177997885845925264989038336932223744538257577450559355770296607594308714469446426556834203225877470646074585813410171377722412692945614112895590303423790038236333178720638726309478013123567520772558028596508326599319628936096349279045873574178552022666612825650400296317822656663354096477982509887509958198748847616802913764204501279660766720844821832848759155026885000778746412982006757224688170300019982104151555467673683433644824928314379214143604663097683499979120585332577059618480310040121807633200118858476749997939356370781661841117829706560297366593805183910660940518110556082323987767718440716225280118839058247972055630731278854161023383201950711214313563625212619565103344974415649777836734193942725563393661521129126651574271003864983192911993465710608862747827123836868487121071093836579856056208249606899346609864390442699497347952368290157748707248823900823568580401394928012312204847292092936746210334670707623765122716675338864574527505363340676192057198937902021469926174653569264024794035625468100090579390991997662830224390912705185455216174562264612023942424496279335002710088724104269846197921093018194488426317100558059694448915106178257901142339937779434338528490054291461554228450601792537419310189328903586323821340170034709495720498837216877263729447519869152595229868815015232774727415317227140646002999694960225057092564141684557701453260898585913957857231994856074607924972458496029245126526455476405385833615884766754258613235277075937981140512270642698978138772260774348547594680951158782750430343049815844527491643559510225572623343902825008545169631512671572922409658206168935059839211747229430426615147915770475747740207865773090449123304023255170806434796274190462878046335311764835471182043926921784124659088687632283433646971166404032981574219154245176938901224699029072709718999423802856189842677606634047055418712633739999578555869614822501493916821137722699366392404727067488489776222742798843062713269582607318776210426869728225137996576866774614455192199380789222621089495095921315038560181273624588900776878618704570566133487584676357324081302699399915369054524689060310575383623949954365347224359979103449940797047424998891541909364146719006764792758271898414414059860153214629693466382682294531625489957821629539924171341857501637707736013752718778130366957409304566987167280627407163742524377247349972046866273978093845247751930065094922666797558263577184213888958544902812540802078224707080888080589542193701266977454887149029855816041397073862903734738182761953070953687479962792843227184086038872705183140770919604144441797569607061802389931868628712304039013401490919958042335909939124379244424018939184868290435419237920625256127134249766808863495333306357265526731751872110661742676798937709802963571250285939538214034419482805332068114076660742060502637360817108144208039627220077166746210657974626551963664198514675335704193678978680090381837752930715914013542819935346307301539320298491376335374088615775738836404349916802225322066739022905888581505914490628525194960499945673465318379896169840472196384628723351897694784025106805133339538003051617925812015099870018837013603123379342954363136655228550030676846987107660210021456733144788906399040258939045103268815173777403177285806444123042630520896095810165122996079845154472461870083369885761574914536436688592594983393415842797615878452731430783191542910229474666151587843521018931858653477160051876411907905397538014663027756108065798183466341470713147499701103079792622338004624306126500160434779324441111189243619910884010347000425763927582339382109527563086809421665026442383740605467920262571299968434279036071856178322424504455596278052783095368707805129760864829432976585724337148286701919235995221027923581540409316440379435199690342351046414908946055269151431021104567985962202108846315111080739059626744712713819304039195007854042260211726611603974007416310187083338846497786117071068083956000841159636612619991544300641245087730985000021318751135907150355834218500922584044510424630389317873069272675221647676086269224744437998754102589321996308934690346149077531532912698113715205396655473199816622808358976633881800125426742443126380303452726995693211758921935393699801361514026659365080837000988201872374877045622301889835960906781094946184291461775027589352232214520174117566399179051688292688295203552591783334745781096608271373263693685677599276605217418695368238726805884726799666834481787972769005045569293446772870021929491333556682273200326810454722220151020463294200605635723807910621279045829158824808950368748960561952730913024365726603607788911742423273109290109665828172117105799092007095534141187404323359542343386945446183960233205258644513892538062246175153039990183718834856458890949832140519848844876283724459420883252060896914362131365789789565913907727007042070135248426807740065731068458786400073564108731752166475766161123200241442992437374617739597042117385180728634693206322796078452044133861037414531345887802576807141842802047027115235598688670404584023755979700027730947622882847040389090280281954843356133982325479569442030868768746419315910831938437760033500707786336645864849182599354272900071935907285169639311013342602884913945748980335679903700062704520697758891078318111458780259551213374369260701614809866428010858459102688100231493517946976399237739562470815948839913507075444894985106587792199169212385306064956201378642510126959960082805449343447928278106421856485765059267212094411123596261203408682814998580183474709599122046474708229494596936216270803530372314066543687069155301111802981346204321736581222779974404078300006109024094799827425292889887428737689589073013773832487689397911177538074159745569566254962020085400957659152672922829915023813149874620967478903200238785931968194374664784190938533521602472825526174118474068500331860939814039730897972315408810985539263991309587950231853416307934861859846671621038448983252066538749630584455725645020372063428019959309273237779993486470039663585120492518041454844836822684685006561384658490498777746710142649098784544327312616071353635466025947226728293886676639920870653703218486983231040906460205014001656393149844741469440112691227386192515817006399095168279290262639646956772370355769481503217499728921397061691414032152044439191534666627401084249752055916872426816983280553202851348139070719606556457989175596343709148577258005017749554258838957756000193783395222874447427130093862475252781555099548418635194906013321019585841820310611893435410630335934619452484432894007794904784402033204476826124400612063792336955525159719254444370068619589243424254708436476443940105769987377864785474347207588238765113523152984604979256801425516693282189930293870325153052366495851551677994064129120209383318254872831118009381564194825430781861097483156331244816522241221219188966477159317278206605547116213667951121399757168121055322662299909682941556930340420884136495810674309088412954096942573568107407539064195478996164378945124613184254959651606464666040205869051556739566568389256074000071777490015489349504501214766974085275600992166086914707275834840532978715706932209016471215312210394496124298250772919714575171643126427843098877247772011629045907423151063843277906993629515281620455930610676821305880826330394084715879962571823569934660494831300807888934275113907102732808900621180331394203158942635803778965890259675675938757726111053912774061682829143251701028180004983842152427605181523464960738227800749477063952590500243249026442837517288498597161405272645053970794850642688078916473446462975902253545989931720468148558674258224170588244142062177032442265392672885463441621393751662808054533375134008149611507549259184858235699171981594425578017362125580374907401621299888498274223986573855066635322319685565709834672094110455668947279733160142386957018666949591168278727508182876205551748633014591750236186544969762690873567352036161747557138655465796543848829834580794230298051395257389070220771576828444410404272870720378292084608893439369390692349892882624050448914112583977871826281066651207198447943044463842384420149716637630754300519966428053008141860851425432674488482878861892038800427189571357426040762274708514523021967327713432561968244689770194907312739298835895618239903028699869519501003596034281222869389784476192772431567289298774326925671516887978983082768562910871251588597374956590421771681139271313714564345003809723077285088674217947418102276109792210622172544174579448370397798881635592597085054289908217566397782397248950983517550262412585304642993796291315106743167552898717575212002078735611275449631758131676070570441743390139409097906540197036592816425879214269702104532773291607974201416741731223766295190827748231874912279414188624321876177650855155068946537611031594511964781615218036173597664997537075520697552126451883406810996821900799830827743847284640775570185672930085957570211075274625820260162895409538020321263636730616512340438142588298560412375071627137424480911817445041904074946663725195880321147846919941483451344404203987880023652761760331873535634413414290946922419417936583858714425923830066665783649524191062532869123205083971738981541056084179995730087706237972585198209423177019382282461889100289839358159674399803317841689540441631231043276023751989685311307072495484974825525744323780477398535777475033757453244143695551318090430627963297942871100793647488950657524645038433354205263905095788858234708949441815793832880231589723696888402939208317092634224976546871357320795219166140201101069210785469044784205294534716956585977736109628316277225572988301964350208823367355562238683187896041168051948951816415346193451101225598036833273697056289008453366806205678101821342681428669516847581739061481525567139541916934569787602570703659249440485232228884784632590644750200085412798112269338497708365170620540502046356735349390252626445736940033509859981217058328873415054286634841947378356616663085720707577991939270416767025133769222972633567257665724687404970964630375923581545784374748518588132695036836429169599858569298225541807907931562399578436472865314679726893165048097501449594396176304906861681451108803013983672838113736725183153021870190183155154795712947347275654216991626958008678086751209544991383601837906365087781921090695223936335452690189225300647348235360197792659793973224778289798022380033730113336062307709526940767010635648627929883597363566809675259914127417884211743988563098348572542449347202428764711082298725680733283857528835056831718751329841794104101177914986707542687309991742678713353646955281292943567978899529557866895394286052692365052158946023663188046918869448770513399496145200618980086987932725958977550309853987265252517676895127262643334842261584102742771086127909728747229107345312690945230006572119967866935523008729041858983620192937836305339462366385332888987166653611350359851392306691238298786704186947206618166311297126624551469772624561696977438902040458246122219714889769656478076719554780156880591396867531667151941111795677619861917227086849690219399736732975048832123396644803082499881956377510409665340382847406795147705987783220003635031441637221870224637886639219371482669825462849077893466135140954324041836562882746868251844572571946388974195910294065403909899960195961644105248214679658312905902143353330366651391781180997626241042731955521282198250282286380919284639415027579033158694703578072280364360076302356766324565429414886904456685221080161735261190481752307217882436809100395844141654333553075271562508003155103922951517761255893112218948199484259474507049290189983968327136676576356761111730354416338318910404319604516305271991875547446840834595931116531048410512206644112350479843456283489770444269615897197167632514521646232097106623281584996218816744255240114998453461726051898985848292872394669251938939581130723252541781274038594973321051940581357723224426886259391349393200685194599454288671471965439856912441716044019622737954077792273872530936286365951091533439507286795359364728232345844139275533114833767435252341474116481661529028068273184767983095788525799686018891152846799006225272239997395027547515340594490113706631368869232579534807925756296546843390182590517600835288565565669763032657015398951676780940164458020626592241915731791956429663346489903552382913827339286489005554313915586878364789886374403074256817350042703326811457032002710377151562250152336642689939743256972243957876909106682195982385643442708937858102909429864725713723787654802111429723815805562760954145729454733171665615657079965160861560022232931489611496713393833643403485728225273090730167816287236539630422034709484711886834201829076245707546484301953694119944842009917383172854241928665398341273362541747023135961332617156628169053641170953899955703322383357397682039871736620716053804588065417660871332743566066690825647670671670874675589790119698964346663172658149897127948144907663288453015009016619940222513009955553581100720772236685173216291637701571276786449402474394943368489602080957986049226524708983413705928035293180381714253670791999189780083399846057734582537786257315493132312951115113347772293404871679974259746564308998736806106928795929126527443577285287441591533215160400854284502218186127106487829771627079165073593776491868742957943664627540829831014056993732773958315557981774902648548079529467803056401892803933069173162354145167105268276281184955679922933666403174597847720218768122672922592090469820944078281878857076920385499131769572081058565879202375292307346445186187882571507587865316479050402034160211374574181892343287365798934098661347426876262697647955424203665159493891202336200800639942087758022649461309591712310480728408026009258065252736276074475083512739656629031757357427906116043176422175124858716587583220313683878432051473011993427622051518003368523657789488391213190118649400547554845940181003083545028647616189595071016470505835146313239162946881015430119031690472103980628969794022473639683386923480872871456271983249278691234331588872726369842790942454688761281225787566634617222585644507436893402773731190541561032672098332808043193731850929144939057942246231684925737842759280821238384992554720555026243301291431682173482280013712123915692543295274896767278149149993902109497609188772463812793692402234049768215597508691649090895218381352473227704551478148016942212127764128008499036487777815592864076058741911773428381134688986709795249705244557032266762815710497569210238790146404169932831626210847353314177534180968430367491937987905375647086111222356219661640561733087266111449579047649230403747393886146018903396243669250021527326642799311434721374814853551885869602283361235608075821814962622513826787314679793409789898734436065267550914547934170401835789519156265688967555544839475362299670736780551839505247407811680152883884540527047847278177582013903841044743410124091606495645073756405495496449845990582185523505093063714938638284387651169866621432619642302634659416742339752781006617659715100645755541619442597730646633651340094353743650239275921126191431145853485172946859993142890062809696983923050440132861602040430344809908534108120926138051807440509347201646571851894270133467222095808060766021270539059596462107616189044681077682554748173601019572912710769510955744813631945171320337047982468579196552349779938644766946320766695791800731891191801790033344526063126674335182509862455584417248973272881842566874505677334847704068310677911327118359729470434662895645498002205402209371607383834542432676883708060922530040366745833738111677036582982950323940773886529398248186604894797558631324000470355437819199184764138404392486622913330903038368831737093091652091770505790468742351041882831090350045583833437212542295459680139556310191351856827743979984262823163307026368612349713475262557335382384631397540864775667187109156472188337166132279673349502717765800266430640865810665585092117836858374781778972801798227576791286523243078569729123682598292462922928494613407443579711585187481164948663069625801138644929813502429481699624701693557471804068833155502463241216298345378732993453808291703801667062039720109973644222868444163788737530552247999160923000238688415726221984996137152251348581347985577783100184963155373475683226384015294610876254723633005182794008902057915616898107390834639750418915221007358910340270693634737013342093175885137784041260550633698107497972302312569696558844502101651062111001273856542262019402973951583824165476979338538190377568229211939255273883808208653885508692586125205087096560694112299221824442753652379853176198499811851607759756101398262461425448145365779694373561991883927953513937944363281172207772525259343787695621332337061775717923708888792433204184238007914493013594556040271998368939357180811781619172883254808915750008593332925417505043416408782827403374137837829348359139629186723995705944934152355662260372803840548249176148097329865517223656727185718473013601132475519143615954474023987388425913126531820948603848272809194490358527980694158644207964753226426123343200222194529455647140105394461801667142888720857891017732044515758026871183788711500830567161018056487980484227493627225854123395004745985359740992579300435436102012302406317880954223474954332002189343775211297378079116303024787667859502226133985420271452674684951711384373177881309604051810706758198764317030358865630480550318529408092644508297490609498908843827631074318033691930727328623638851410152502415031419578677366850971786346955603448761545280471909479181948405888543800925938827122407793526468611451935153728875981871233247893569403753999382441269208766184366399373448643768280214136595296523555923700774444622619223929074658218785847185696228507660154781498048875198991222362978553713580732010543757672932823769823666395367606647379791873332599714988776021752720320236780008947408175701975114604926437251064386211995931692269404208474217430455971445179210644236953340420272573764068962507506303835495905464248264964319070906789734583028574331996822408914380213254301401522619455771494715281817866102247502436999071568643061859291733484058724251554068890193792076540127475568426368024513035330219529391485442908797922573606717054462254335156569753699879887858313133015658104496302894981188485096160190250233276169152166667499901743328161108976420241843966598524946593188962001098999739904288809006525515673948121788070766960603076323944093823122347946922499011096940599900387099117613970319189972484865043580455814879337625950464181515439807656608522276172319972839882107797977301012754658458513303787458938375447234578380934351192619038562064992923220430148644727484886287978415445817868453872305014417271191643576034651840933957756464706739796625243883331671711876952565870107280898656612596233919341613548719778429633774782792028957269402732562179520303831756569521150444679467428738550911771338971861272406261585214083527841450457721480789290971158385298314543036327419280218837075575895919934342539702033133956353162897063708999604857186316886039287458151264560298103303798298134173421714504570640788204130111518144499366067131169270698548022346744431948875563191032809225531535407865578414128936393456269021885931876934429667007720115130343815877256144976793888189225993401625446595109734182958528107084219863265058952355491346307183922931649684013151446458813799705752240542385402924760832978417275667021124072403101745518506012827393068722369376928204371703081223966972499752813251417560546128850447620488135442008886617326410754673333516005048751453375866759370364361221623653809067020165008492001608264277728495809043121935113723693850942586265114667134923116839459394598622639628228177066170787799264041940160165369673102229541478677013793922732717081409231294995347873840492285909481801972327604875547585852417344345808993564112828393514497943530377188233079444168474597374305001644448861509388275524846166803779022774846731369751102522462497559073802762778506268040633422626131063874090957098692314632389012015041013964983109873608144900882355099435529742326847500990775100023185757798411770722037842263017460856695768796788748760868610098102476405681212851476254756485156484275982497777038395134323364716091324718107941148399532950445267097118756476801733233514788698335649166878802142849755139486198744184180350756668970840938677437987360832443110309929703786423477555056134440667607227695253232082990724790882860848475629828486645656773219075922747682995519367014345909366973928723396157001022071235304845914358954218172397966177277597249422706082737880117937422472967060373762284566188053199556486305981227078812136617409471760091432139901227313895670168342166320512328356107897663468499626493451065134576664594040124300140393729335777407403740914890902333278486434979436268411661103166522031776564090665362926908030771990811576005433981643812860213204578256224022574325815284065294470278501462170363438581677935383071693913704582571634055916762506133643125858652625900613736304222902075848592252217217379241863405843611506316042693945337856181635290460247095932229560934856109020042593410585902608932646067070036005716855361149112982046152092265313629531867665213568767961068689705516681403515787338169961504427875444422700511263901769108355572140130099384687411588439270315918827905466450599154931647022530150070808455449946649097506250726480111404801979789244640110714063632447864161497245197554019077280465794584553035193359687074151132235954082184541164555409491855738845151117762891610741081160727388040203339623933200787106725230676695072058795772056074913599618749648852908407691304267880129100999093996685575430229796474020827129173802724431156344399311703157548453937532233606726046328308101748403645332054172852532765190564899880323808568325428831977615191242329223759162490495477593738210859174039266251462578437224495305117882729114195786657374665202123896778175358469879703183324658311272900666602458779474692232842084053992696782056405340870289948075171530828878041279769133379839053537545780739302379361521743523466346413213229453415270387124538203280584585204478504094430078189009985496582851861638311110808270361171000013201729727185759020763416355429806354254443112013772328479511449413148312762051728142392605144913921780198142322805760431035391629897820276360694340790888205306943779179700094906621755550432811365642813053359135696990282749870395439617643435262698240422727245292524091227580926688383534299410323175855138981673432897406236932934992748681596012304129104605705282440050738975231937576968927498147056937540763594983396557969964648393109647870458011633779991224641488589752077130341955544671380985455190889853577425138393545670215319037669866408567599481810181336640767786449680521266955963695921270969787735649524871092741128418764866754265720859684144010364948073361282019077645808303009513194291047277300935697195186401386760357726786286113945004038927344273822012130497345439657259141985708118048660339720203049529424340404169863420657586415294995504182992293534285479009725150772435243549607582620071333126132123901809264266468218024737517843744880061577454039543455425442118654875084253762697889301326539228480148095400374328686949527708608922177716696600225297965182026735575425214612180000868827165377815532639486473823363369189691265881553369709391704067716432863973671953370869117515038975157797237224847172612120766300658709074687332953830966139976319003157934662771574711895306095207833612047895494373797358022655088622679197701936531655325255398747356734430025391954428710108600863067185848211377434976292055856825597070148053987059009604024658735730796649503853670474203325230029714724538351627892451325446290738607235316867569454003320852112328285315170927780554488060935170588268190553998193550923701598789239968847215613905321977272195957287372502806520937399256882114054817726720823473971237088832106710145032135099139084208438098756242661821579177266323485831930851585853276713739430658824357620362383316925495848376486554151922013653670118948357999890237940101442817070717225730530310415954987221672243060285259257673885441740783376867285257730940716453063824418707167711026009319841108099018199084639733377214190293851047701941880179774329453629126226313746976381165304373404984505348429138916884661384419420507851904181778345777260441766323864043549322429362577833853997500929087132055066236840104055291351028829411777675180080678982168266395425331185730577468130656900356838242399702118455381512933348759805396601071685319454652082639167752904435419273575029818125172355919612729830083185035330318712100965083178898789464070809146121358520694582601338146451576778187593578855723219838225586938061704256694654985465908787919290502336285471713232885433398048783036000448694256264645186783635839293332236048989406418560751058131642722279382046148178676592112963917144418826686107414495266579976038217012188469952720092653086161344823543076745347070132246741161949161492422958657299938336923138017635622701928182590731466555380885653304691646440528507971900017008734589797058003429030222261761368680924417962101294986519851741933952535397715314922381852220875741468822664915523938684674966818395564996286378664171706861173213031024491868677995660941893255314664840356855334390467080769187696765528065903137029541907322081466260872191282988242606003687681803558406472624557543809264892051687339733375041316964631759100968319875886674640913774861047292496223509354847027032036929986666105690233202783623181865519244197475180415348764049499269493828679456099311824097645364208658339846808335405214100313787435913429802601739436696559253187990087815023011461073910882343434588784507431288648565182626177713412502245389821553775719349390654845346944375385684869781150245267905383947863436722348540816200748835165419649646539715976099178230700216508698123145361261466331283127823959990568925024040923128765412566459895863110403476023526227114430350932763344252621791511697424381525659955702095844275641187490019331584040696138117374929897171042663374420868294339172041767690119461764223404353873581142349378755855233964605267666949924141701887855435435671134740137637278380089356867787602178252133475163077837177477661523338339297180141693151091774645429388565668972188395990331272925469349427962721551565659562337832866816834007392366925430245206687896835970394121243913876567605894832794721573109127223302689131814402370554562539302104398393508547981750103723658448228834580145016130279037783966096267259422592149190688471932061065086973036954320938821773583301933584563917343024205906153362052383850497283827859646517000863795241244138790851769044284647030176331831861754924120627224571938313003702753568359523807685257168172775783539999756544497136266182756023955615219445950163481335903706072370379159351475691992276928756000137858127059605059884361313733839232240125782182483070711109550047814614914154148208079519372505893293020791809717170435277699662506729462199709234992765630773154727562579543632523683529430088825695744668157457969525245923934628744384526551518586854884275661350228178482740989421564118578331560132109064655049436409908531286623400404839406580499720873706510819415848803449397677488459269220337344199167531541536588681662895021417036219120664094397669409608355996396455721814726645370127315261184959772833349401018227128608615419246121723039728020809994518034287761980022204504655300311984198131361990445856592589646010186017501525875284105070268508351573043620251163373843463692005775501839718149824736260377541610375611550371389522759056923449745326117282895764887976716571597637669090455839721736159056311365081129035679779076322596245237663485293915755869950846695327224703161088295038875476381058462504558006739183566865302617806165656819313636515767946543037740985670888375619146188115306526311062779579490891397090051843762602606484674362540289773335375107586079354056178808302955887672385351767978272485896965906230407212794463863913987335923358340298216311443550105215786426842446663625189611394366553491243797662808972913172033045201303001564213386037141847407017286527530031056680973436952099565214572106259745200664518869022933695158391081987082060349406347428764855787657984381562563025177249022439220751879226151515823075558533133095519398159231227693180127986686106158644448475513483673157333221929112389772476052776583330546256470543632540799714273272740070325491553786402698254557676119419162959718730989851774603219734758688904381494751333777213230816101499548608539529186966650039657256052829858145472854750510460127795215964176102487454579863595794916068171739457759364845740635005928582952699160878336934839166119471776346866236936778206772482962741330552103390611266564246326328386089861966500432850243827164579183493391177954799563095409398501547761099101659463373242278235426690063441361152532546142572219766612190960144356977630206817505727870218301825412011555879692282840623554197910045778493070020061351964063485624292768818736140677780175367151892418344528368752450490731891612895433479232199767257948795453114642823823429021410437953087759955515942691632476584888115617412080158378182879652264579685053737777316394142735837879866986144774690415299386392763386630968494405314218546529961121997540375337677987622595106517920532084048199968491132731767659966268254649494558630247416464927340235015187986637472877472506696607754162564641509887088485886581584088063893336512599142677650418161039140259027299759663436147360905978355645679849725823846183280863338424378023336758217582306930198676823791073146833549046472823898647668240337346951709519930203501092846195507396434637074879750475634310678042030768771592999060859898263038100066009644584623347519440588742394335176113519607559158925013657345787565922147964616525210319635816510734343593917976472722404178054484254283171311806421156399637884138730815563230961748334633290636601388631195162946597952298781306363669385012177210331629886055839083167283781849282960014316260121443243737835174830602841545248896100059954046455995843495784157416207505408543954643498989960710400546908166300589567665668735364264227142849659049742272760593877820073859834068563196019902096816201618017800581273362317193643329811702888998255637878057261869000264781706535395309107285355081164747446952560219580770365922334237389043975225132439740190057019056358687404527028982148873109686204308288347974013697873675995628214914004540655975800287851634374754013392604745470278291306143968497217255304092637659945520723352868034489079043046702915986772855337861875478412702891933079267746266637343728021258592920851210906874154186498327423921942567930278545661431782490391867000334280038897067470170074684545754791482925309953636951808577843722135769443780707259925227821541179713557097071547294731474006678536158199188149815571001408087700469100104262095716101986830232078989658670241816594547818080238369880576231351155478963503813030684870451529316601227143139471038397485536680240720448820833911191144594327594354579413964874654390496993186609385438619979617723370006938083611265143711055802756261264875978973810857320493835445383564075952837715900851165819913789383377599285587298725437126911273933296676763465255874789092204145123610782603774569359637122740950174423156643412130839364455295752282903989038500613074834322953613169074805571279450670181374489814911246355048502329055552775590104160357425086995179069465217100165086988907679885244934472946846367940441349805403172122954811138564636372968463256908970791273596593886761691898212483447106884954518405159067720860333418405029002614369073001159091059547687904360420922983813865373268694884326487933300324682723842461479807796756054157613620074785336464261591881185906198435323625943872348684471210127744676519703878374202944287888511852520883861605900081025543504567523656826456895936783330153684596192406544295126576632381034212937650438727802899406505104405167902325313516226478978353885664584572828820109082144183231688883382192912933360152598392180131451288470478405166160776236577459899046022612035078540831195866067628546254885247053784204724213247996146074538926265579612189488317083163739733508440734891530770519658836121453766586225410510351708562632925182658296789149290602292480956901320921079873894530582595652332015744080920586874955843238015777550880752648188480751536397398776296252423317306898409781550532239734319186930753492881944934115215656906680791272128297034243192540502782749005915558694554007772433332020855787407141334644677132100728805613361661621678300485439990810115166833690785990269076086353375309381421504913792623295829229466701208536186790540831156720234623875845744988676532425903730890243533718318072193748333295589843179603004220940209619484136534230944069458836521052988614601582363134494368643278105975984802751189877597124734304189180906463956322772845045717874224551544734544947129978125064730439870120361198869418402398576075342590913076510517443404279268144680126522361202183771387048861860919701598403498233459211765300756558257275394936990644891896576770716025812663231710054708652947058238567544039113403610010201855507157922468595228755954543657181837595983135451986349043903959840297214528328274137230603678990318517709747426779849865534563484631213358626047122225014482369335347942443496820105107118863484112780977435804941297619954856665636437896932381281202182768172421591941744644776514970943093473691432780024284661093061428646678023869402970922725316216821466229717075772890885559616730901148614094660054810315581754001257057140935612106612534375289359803026658212407792371976584723893051039350829767783891058678649115402420292867395363801554348326240246705136033606684311101896985491855703987538234604270026867047170711061173924105715964200197408592617593316590128672161471106194176324676833504785602727875982480337264155103374809839303625761014018960149317013710468992040322873956558357086998056999184368519373572768475948641760468823268166252822207783597878556807574990417932685388474370090230122386752654054007807634421650042030140893278000242603966584972772716886950071644291417513823928125465320306722345775753269996066852802796071546438232116278153981817319454363971625278117745368197563447582323626000699605305037078273778984565008418033471422725079442526026556827676333542681421150320891671001375324572700848095061668528533574332750554320572447654034618395726306207407173969496433016229967352771272347849448430019155673689331002792454575679117905527811797044394624321159933675318031694587258007310796263455122084803873114682819876024902411389847303735838949132400277092303495860952229473789727216326776435086904415431828815601450208089950097186747507387557944417480473943731934692456336107267259082627272593575807062716785019360853267012844959422585705538906318304527547797725306399225319815296144928465364730143517510436707001204311846955678929540301358460217216390516787732266872014454102157258131325052475277400831496664693300532857351433210338679874910939077977372933041586756613255165736997930957021402148717098739097153747957953072598931250574337309716816868564057850147669931897936542068244269987000581082931371124425867853492177985770216129961569241615292796684124210023478045944609707996537097283785147072209228288244588108534311354677816733769077057052582017521915971000590143807713727248417963975038965227386517398851516160885218396848200423882118384323939226983407290428736656776232265159383386752344835376483268109966124251050227849745900007254260842145232620046509042317285578003444034500233708117051230255747003471360221420498930143596253871241502848960673901446023584004987874771596730761828923560285207106149758908634046570073564825951909454915492518721491747700857031753322773130436331539472856556141942652421057599797116613871371497528078245306233091296394560799537274953650740076318241303051377183291607696848435146650097796204383904609261936532246323118213066197991805412740314603650972257240743154349816495644067390060440730132673038552016351733576563852596045748429742869641601565748281811813874702289473542358666290676097218984973322506053544488657155136929975349965958196587288530564374093514646981781017980989862140268623320251551309046913451961605102548072617259288075579114426426349854871267151278895733072567451571585627880568625481220498346614706733368441712345867515058018870435405239507055159738212347617354891449785128491891749008458851142207395759117383238082985581883623791248886111709599494751099879752827681327747130192156372371489957278334413160539728977720782119624379435994271429004780774927675363421618575759538360580849413981426620644899166082059326170477931718131824128386617609286372301269985621197690380824878754387329106774054546226626568265978188172426069498979459215695830628777100441623106288568377207166710862656010323284295921083993653296956341656919004345010718014253115940384196008677159664304221905800680966784793217377985173199175775343865921615027898790530769936392311444080218333084822955037023776267003574880831694947498275735944890268002315727444753769146756505224200956966591120096740345466474370728151901540043325736553972871511101602102833090562408830978426756817916707277726368659526996645530373120729103060892074081676258347823780598333735974534076337000464642320692739214880209670499836297123644222060943399626117070984989516903612567646477631509308152979493467286540154624724675419599256515620449263179073078733863494920938141883822543181665988916177030400613493112851487159199317583435997005650075466494821586556594920859603261985445198999678276097812557077855827269799886823462170017783892800084720917834222249366130542961663676395829600106787525811587747762693914474836735153901035138149512711332438764980769548913038262977511512729513983562249945170537900448691688581346872736461057859673186074974842643607741778804496293856069300143915000168127282992810209646451356298661715455256802166899335937711938163231755759390801630861090582218274736342615994471862810184309179633186665432926838669784244494994886257128099832973523234774892528435552358143984672119208181377653095718856753128654883012146321822293877176257196948580297993457275006998904359284554124028739615404278001710870141356620323767680665156931231237620364165800178597168014430782679273391273000885571118054199067412567390634274394941420130897675527510487641589193789946328437154129963995973034097473201632822964714821706222653151480569993640573671594770441650575078793938729962521705211608627600584978245359348488952010374764862828981550950957515044102801785364598170042422789083208515592570086468637573589188556150064544585742645542593814188554906353225699787707675550455730364478812281061156524338723879688447026996073388064059208066509941121004904826788366636408356714687497573294032179655224956243101951574235917996141096067435070543553673193479545273691874303923389674798622677611190758808406165613059549407150231582123033801996468448180259643741495185753652510203515541398160916630187272364665604430433520739120471627250864362081137186504283887688866336009823903893618072656886530287420981376277902370235325900911884398793899233740600701475573045348185955162697226509838097975762749320767354609880033354671599200232502639564811418301152034013471522119014122015170889347976161965749371595721152873289211395026183000265979963734568479317591785347318086500807112097011847214014060301418720237652551321910456580200086428822670862964088334939173424911493507002602449363193633073360824486272400277399566505122705333044368483126613709492189083786408545996957332487660914037125072215803573388115778664918113658712526180848784412748982563475423037796196051731691707786253356643142919291730868146995199222580697987783365430318700437629502574228112486810839534259060257253325605592937780199735980144830123944171762658781988605150242597203536338217108823237222880266932190792829738770214878084250570748551723996599190886724571878347637937572421179371819998699821647561512876403830088268173334712804945624863622240321761514038140516090410174049367549855080625317983542838810796948403589480149428507273784743794795964620455769999568749569710792518792286036186163967771385790382689880375428412306583424632155657189482447335093348774729189802733147683215036994781079409817289110937563423130592708432442391842907834545967993049986569020603813128718610158817062543017876364817437770112827546448675808814107243382009380109364002292459625128526081483889564501251211531282396593965441340611620958735902977046495790038572562673260420349602127352455594630341133978669239606838866684367545325248404728621361350751376686616410884578681606693713063540977200152621285072977482625400655871459730519112556358572824292796715335717650160140750567317872254905456296967205729639681786396497264971116386678671213188892661112888037355003702432835992828568635312097001491904325929783316125749607231059933016984525337771667518064352357982077337356072375610031823160587450771286205217851420250853485377879028129705718236812043114703562373209069768463012562120902831564628755910512712718013268597940362208007705564496448028345789039746060292551366490496768032343098434001415197547114618941413192203087280607532576495355386079713262614675164899532033400853476381287467309665133163250674447471850905577638395304239464305259368696746426961376689580563696077894267562677926684009754757840533989221086007318258905004123850994895633679258548863411371929958684183192677965478093747883564033908076288424029536439860769526061568845571212522321899584360825006413770263539352447931230624998314728768539600925512502383447795596000358337887131798334687856915688739406355022969944767962688843487896397545037721578076791557759176854728593955716594477812997069751431176590451293471467166828549430453523350954042577887557616516999598806918008750331963827480372706612373246426372325475650367478415791994951585808971189135681573189629374199125233008116029251562053267216498487290630071645529061783030011080223387869737249911414903101618578229259059829338666865962465794107607218591458529491536730039064909722664061672027529719297660018668509778065179242156192660866911152835391085278425902599871084800892589880828690133376862523254647916149286959052839843637290935440396082958164392053963764537561544356547355162515360588064004617898271607376295427278149739093946304614575281137886103364623486271815384551951299640314786909456275827023010727619266487326998372204067411013696728519367090972778178405043550963427294737757881422858352634330945029413028916036142697385871681009610911176995518057841702274205127055456564324345250442501164390161028500881319453424220470414693026428235797954945216833816406219421524928073717363586851278255559370658963451848991303022999443110561727550440994569011425493672217702367549693213561924078864518190253218169064769149536588185259118261641232589488460997638757897256880259812417600739540602486708536157053679981803288032412366282582281745040079948060058781228738235697019178330297398090718200253699694242254102946767000198450413227011753324731141008875802735767392877980239688179146161934791515132784409881493674147596362306986382046661319059299680215973149665773628216773668220278901769374096168185900925528862878615690790138259237128078539864685429174536802404328726845649424487392174689694218987427971157389346277956115901428365271715571482037837814256091664945524490091842816619506904877909009177480865454513282698464471036475523588383655869963084808479738393955867996844734333244722061856498623054206778275180157831544434721558781537570703835517309647332274045735617307262058282288308613476070634450416780649150332207452852765272837422384196893831385429594450007916334888104244356886933792478818056157449725459356934923199809325361655944416997151380421975318965370210907998703437686227243651871923903107524648491719455710666485350169796816838168943535927894288841725266902341583871047021647656943287017827202228203335744999087564798226872837592761437589113549356547626281888594339859159985387731886601723096374617921200646000490958997667534212304030925626268085176479609808124713442784112833108527200796711259121226979379286346453289632800738795148230800939224842751429196198264813489529327589890742586530406878252107838257896938517761489216566037940456720443063747331041492057683243713797740380059546124814842156525293181241404707105842471485304480274631966665678528572598627752928637490937689590925871245651074312045522394961500918595741589859756881634015123095632249220264296048207058645672246025763871190328971742071637514512634692204311080551911049859125426937852559851404391243021296318001540652936520945609137699912943888197486717907399591463378664490725270922001020852236291077634378543277741125084022678599866985709312386526027016227812802842300610147501787199999181087512676888075631754468005752803728806229742732607166645686689380074449161718481466442651672696115074977077524906417337894620051090975346784858583669894194291024484617938843512652645320350016446326506176204989338614471736619487049839132225764408050086879078303444122491170089002096545820508229216464885294577268142630415077872949045080721826988642368526122235099810353549864991224757623190674529303365841701073096348247125333483099324368215615710537114274202937214326827628581056922261377226463875654437341680574528429021803117532239082120449150326268973861449675458183916081270834872775402374504401956125947963098801961056826772234612683603679553309382065445582663155509568863802222225267885055964159525770977538274233293239157275357890477447891779311823518220462586972322652567912270593379363484756041105902062169312916783594108387873845973798045188122529551846470127093076093141848441945972969072455616265360517097445169854460670103413871717167559590317986322378018808297182802083294598959904061463623453634506168654221864165696919200411784164427168145173750226870363703846401365846927080273474349098180745089829159320001078165528550539324401306711075860793288492217089260301881665350559439983016501034333930737266362976941815201666763518627525401389172211160920845447499673098665678027118087803195433982668509358970545173242027876293885888879825812276712150474839623169813468645049088587546689492773981141550400037441015125139432137902501158068906254522616699514939012063568651143490596947560006180589948355752616613500682583507849454466641081047274349625166330134974032202138720069419665859207075432246746144450592303970434614451372880699174165448835801557248396641276324481386513125645369664902087042172234828496394753912823901909518586182203771256242356819209887100290212902106616331870239996823211462577117194805872871173358949619804308884230579169759230306807962479233837440969031356354635563753597647490802238833530578575026332395855842658076439457776463920668174491894615735694724484026937268523398874408152933039626785364822657944070683866212433250484572923667101536763228167829486857225343034221353170391524653345862912697025993312902057449278165432415771223686444421102578039933583919022046654560500056339980905986758650856000772554889393298900440475918440366157552983671987211732096386735953446713486973024133887656924152812577882091644485796971464636949858287588549187041837905369210480525972467422349656389525721993198235251250246522481146015266307137111566485938453080153748294397364418439174171246843811599639280772647852111585662926642565943735219546664132521649761421352243894388436529199165918809469060677483567971642565191618154338870496612591922461218778778830898759144286703354560451565139216623757687543568850857965489643124043730893382713394937155733346708401648157130524933622815319076824981868390910202903919777381750080935242925689780919050733638898355870896129475929679777395556652820601978684614071332128423581423153430478346187281001698598291177805782609977184405460358457928611379023868250268744276514839514921270890387846538067344866547186861780343185708147222608575143481580819366765671175689680280089508242436875919712252434735029784759228272281891618086589016358875141076461199349906472440144144073084991125236038227916240278084761618907381175544835935148460009909747652251140061835261566857389586364412927559535785503650193821790629927206080725743776776797873197774027174615301150521099996823654584767437535304774694057800965571302300126894834481289612749524001365544884126141815977408322940089557985663617738666956524284899340089847709075525796744714702041869198080167832861996952826367899375027842073478693026539409326123313707804732330536879113987975933982989042061785781693998642923241735413822937514151454268653148788092885738622467256451286492363277381082692049572427457816865839544968738166151477858612496750838737346674771581796717376004833926312602628701181221896692227257069161490001500823842668783297235163242257577273130909606887508406734702908410071106364261670017474014221100306096824652641350414459718166594370412936662139164813885506350140005202373540459903931682943615954965715292704238229719438014655091376997009793825018073592344167594748904471678405255142835375486707352463924031461250006944067463440533016711658275240777961262423938933679416574162214479476827464168504648970778265617338001245024355788930462297067698156537968568244853046174833912239141958423479141593565090138111825556434243175554842513299726322876748185036331702050793297292192918574232897320653189038948814901182624197556754137783126635328980258623099467015045329572951734302180956217389491785244401290499936490115260580440201358209306679433755423818600303547272706023542283760319632320754949113350330492196487997190880961555069681285816416009256209489328795460870935793449640964595795798306908619261530556414859950074214551070952219358149395454937863874543482906060021757913935809700034066715072665553344721833839941224527210202000211217301594666304280166797576996358441505997855153319402610122520511355370845825732352727274810159863877093033397204859317756717318225273137959875717018916839189521917794321327181345257169966689248527691142212666555990425417873214006437865455533695239867055595824941864341169907760951179898526026828855964473733795264117935626396432180988716358562153663317677156736203885607139010090934535356766008014980855592561749291895541403269791422187859263255182906898033526518459682929299470196950962229667440134079124740017004834366899443582660953668448418545928313391323215899987417964238127437888852343944188021462829703574303064709469911784845806339548011299190956298813922337468850638144490450542279279311377955614243102005819460122723833064551756088668159808090794655951885294618422853074745516027289142851036210789044884097887518815334116593025026542436800690658675449053954962605718953583550957552385983455503045804579259406558009735033414687365280479072410162600941208386388921102441602347064147291866598122869858636771439104064428612173938546704040368825488986858633090488923624633876150260830155991336332456342536719638239635456874363264189291047342940420711859167135653975209496165266746842087406889526345401358797355568072430631094045532857283621935348615241478268986474245476050009100291878143414992616709002296282073494049592126439718912214948269583020867804530642795284539102553627424673847903426124039073770121244154674217531481726239604017721788338363787454830093193991657256197321098206528778493323771308457347107759498007234046652110606089631162846923155214669611280527079600423813062753162332729241392807441211343882806541012734627105395282432336941647976927619377526236171570820435009876422808462050621455491211904069390401560090413991645395380866305154924926008591403021400537904287861036515847861304705981103526261090528418645046640295527830884404597681878295157718540757832965157549211843040524238512849918890870561456173168000531735483325189674556866148079153687590721469814811480884833950126957612360266519371364089850272245133348339890518466215039699962619185552620812469687295663612370247565875298926097956920415403242023062488157215771287305625667830188937764018241205010045562902145605658161117946705403427363513795153266519320865081811137078451968612951226239493847392143871920408587498769034865384386496362833981879564703935003821397851204968139076258135441515717277712289708527499551760212899345790521505461015216492120319419497401912590382591660564044797691979399424305060517412897350764371140988486660540544828685901584411083531710729335142515661419099530008332403013222156013515999734364716252219175141546550705710491556438456795730951323415882156322206306358913350090529844906989739836961681234995524063981531390568602056751556849219031221535532143448108796228302547324685821150028484098964342533157160519585347720557106478971769322793670607249131944124728110588084125504572869245585559046492542924668389552169687620329665009626161056301142780753380343783384834623815137358670108976812068956691992830430117933906706513372826716442224663579934447309959072630864664081244694012028941165609781931835182945616130572949055698881893009377853717783308629588095320012055882889450114048014862523069650704721837454782917393874988141913586609864215952914557864520566928280483126170222389963029743974959973870965397419613788362371355019744964188407466030210000339707032816361533669563368622150796335086265285743734653836172950799105240245888690452179196212706803763622858794312241636612222897373607276077257603035800065221577545099486061165063423848669389828308237566731594878193292689106044859910549102693281249975886731700694827517651354386057130947966534607020664092661766898862025595681906606218293166797416722110509899326407688654593711860247968065613310090292948370114139765901559796053448024570864874394972963918185947695329755571062656667871756128790496499560602886342974352673068369844786132166083835837803364997217391821721098157989252719821159127499547888570263046486901051785691610542542873177133293926848991348336554091537420291387498506090052050645211571433836939446102554031189355074800423120592711238903952297625840550307929053821072853384852761130575285729175714654259675710602409594586479291370540776584350933867923966763375505188752351837188999405555921222525850019532585830322234901239973421364715755312857160999139124425079361285165606298220537019149881627432739241515021404134299339485697640985411459831548688727760253852172156619113308660628660698456070573251268269061063170318080483770702363749837065151977228800375826340226221131773708607942589937392149777418021259175487004420525020661600355338120935860122587420351745736262595689354706110714789442685998480837272009738206414207942936086092095833784933153953977617671646863567536744516996283535553735219336145869342617540503912643655451131424366672228828075841436652987470623638000750136705976675976298464755570240176437248730542313595410301249836880099960095707651015469931464187607199231403375701758522457318443635722608647165985318590237875377347132800254452433431583787044860477599993012071314778814195534614251700307500446704734014265389125572001585081129661753351927047611998121182888803979403978193044368003570402392003320489013686864520869643680992276074728888275308570259098350540622492759483205835793370897085801837008698859062267686832581281350635077424388115071507438216075746356825345642199605253172012885189448322660501744080959770539189029988536384712164021606040670653911538375983414581768999481923750762556742165938275605640517873077532732756289935077754098588730975658868324645044949494376945484853841446352072230405834669689565441763114352857271064951991222098954832766737031621737189272001703664647948201120005345662972084588505564317730929131637965851607530788519472754778430682577168549516263023022686342267038152896377572305796721451076952907982303616472614398749465970377560977734384476543262571813684938133688445110763077488389371163994893339786935388366122985579627815375139126465299252765861369437452065510939005750986013701724444941518484844674405645096458650941218559331281383190823413920578881809085124439293522862338295810276159657524547162663326500600992837233999243397241792823545463535442277380190088489262692538186773246516296157882249157057778472011018830617789929809761205388365668891353745749019651825605355673885678774761625057642607237986269446970341063155493510807035515300832040814717241964245645310572739741418709762909753688331931467158860515569999640409030955991874229835164241213602955106206729272570796342910448941180150589830642350085062479005644385204105432041634233017210873357348075373585664165708001391191704290704394548860201219652311199343762839971759275463679354822246267269025171596680678842605153837750563677678540191940612229410805355453366735566763885246475707602639859267328559173298687575684244767194666206635974643084373909940835261910862333668190538808429358643021972639078011571596188624377181208121719166577245835668953946091810338178903580791810082922413433542659449044375947346273623543048707875220269227415524980015781413920515153267360451362599331818527045314188496833793117912654529871139143289078430588056411333527269045687031628809535393951215935355634248786734599679410194567587924694964939566698915760187076563259441146346026507173055073888999279668444389262197029376403823793954073589125951254737221038074182270768615215061305206314004500068691392505945201889909019606346908468357478031692670172625382896753404228879169809551706820640119306002359074080539000028625755228000800363251893965740173127616970652116811993674173472028198375161447340240607147305855093995637752295180737518570063480341149765262558877343972650438960740327838338526355586405119963609187520100679004578343263972991686162461714916525675004506930357632016439183811054990871952297211482308208182497672359660010103969839533763898945988210260905156592962041176321354333141149006232589723892272223630581538407307965851804854751482780348754794435818312053734023181790886073472677063429549602658920315451018196046155280982077558152452881251461685638164017615544232223659818531003902331372292002609515826747534459484482493433725774447015500838995997648378905754997424494572179310800682726243681898165565673023566340011194114938040583305647000790694902111652077470130272769590775782010933857234501131259030802802138755750465163243125930374927111669174229031572286837861935987264329418881928620882375195454679835199977468429906747544180277891055049349711038778741876030929056706123126932236915652704196949909578313615653067353532227033381554345613073823302280637176921941175953464175869680649583873951842718887055576504958239732149277102679030180681849499531910773109729929319270876209587222266337685443998124073356369065332351691593602040323579488948394766144003955152107271400463038779635954588173355980337200147609169939807116629233198395222089707730612857494470674575707679559582780158422818227472456216258268972587729308011557519224237926784188658191632295772183313543986370264407904725210271726833914663093523945914425417926123981348175443630018254306718078613507848005175334627941053591180753233870464402411018736233304946096113152686789900263556422185710602359759864583472192683814815266013172895138966341288263413069183573037384453559469131014282538190663260733958588392962751144941382051255024946970769518542136324041140995456686090782002115348108092999018712247016493525754458413515048595444401912977305409190410252191157767140406689097273578507079326192810886066663215391533497097308637591151203251886810952779280556182036576529483703636387069684930159065240843483367212004519662505308885283883214891195359830244577395536403314031608477643538203799930473039856925771473675365017289857217176476478035033025089636137194934055808014319949926206078445622290497067376921641662272551355041243764575662256389642042441013032986812387712837545045606807827262910810001995696079769742239412292086821577862288781849644751343807140080344633907383882235663039335395531859823332560686464425932489335040721953542381532160002875614800712887303150459609159556652919027260396637412046193036180751911923928791672281390226945338025977420592636143982506068920682021408741622407646372306771202884152807246954069896817472883148522752027722778345093351707374065411310906915894602940844907544578126590599042979200729510875169723725840975632197486098100997534156540347097462795835759549200027944949426073072536175271758611097339403250449492852874087788253304035147963783442979702706180251695362697779997573512993270754126454047970043012234357131190086004700380121966966933501800285000254781257136841575146758824861647574312492882013327791179032959293806800695608765417705717605928183400642874529874349160664661789645661769165261189033950138561893805245525322541554051015993825134094520494519866808227643227613980901286111454407974023520178322177509749168995355534199090519851627927085862525543697139557282168891148704308604164356806467683831311000823044934187226898540948621190547940472853798178021872912980470328877032669182668234235423295120892713370114333183736966185271310249241664287992184914793200495839525157710363582622531965779465790534147933138659189311499605039489449825771886708555943783308723394346186265865127835891569849096723049502210605481378350338188929533913517158370448163643709346884981488949585262975082556834485674734786776435078904609422606376012797963206589356081997729564740881063286756561714696842709433914867759302922427766487158344260056852320257804807169683415672532317366438580064526489037313527828127347523664583403251016117730231032848251739315736112051498108308981170449047814656090227762314790458029218472924280570130218330253893593609022134888372721880605581662668222279198025678449415430232806687590140528223149400502973253286027493974625856567765391135740006019632053193918596415895929843639266360069111820856118361548098242588350490917021036160352263381018345371282426715386518964728047740107433616409443109931393615502010186403358956183801707414721689435526141399661102482260533212314841980807276006495389592246156167013347973174112543431914077969954139962719566674313466374915276474683097503333190428498453157465261166486418313076704772012182224903528855747021791228516265785158450450717882747679985205736332518387834028860888244512290404561555334426291523807561783629931548080096141350407864427944561926884155580935549083944676131829323643470425998875429995843294965722778903947432337112075498456692222655917840440566460100668263777743771172252924076594494280408553106566146387624058661477890809094952415584172694374525901276506554182094980895232167851566520813482289379195830554536621435970080298388182194619863304446836673308478086677157313852648825500251997233250186745599280477338766229074108946773128613822131753597898189683982340539164608624667407467814243015699375895376165659817658840786996718950047404039919163324241682615022268216774802707045097531773523580221425405103002262911458831904811097452924815329017634887419455238177926409479344129304301750192334757097081461497338309915011105495967111330529954096620143694768497654766996135522954894400261241791492098624678873933858459183583642262914473816313337385366973023362128898433128534652651090056860017709341691212406356900436032792426400270677095042261466050421580569390703787003040673532287087498989299339764687701726230393546711354267647120093878608440632302997743075192652223937487018168625819062756940813762416981818694286608860245035073159218570662988477150968162958917979325275380787373340744036386924048465035068116454392110183188151314344735172219469264316262158077487886564871752879472413349535125202820802629225540273188954873724662015804728179776853317941538362812687016640713231329290132358046289437942777771805798191521142819602036930710417807781695470046635617124550849177794219759428241367249113767402383594433477693261680816834645715235171171500588188121334421378781649711788790032889420753800744578496024866506824298739604016480985869600553237930958663938461283020628820627268192834870113959489766116266223305877116788192429556365601562578035627813568138933706096548799249842772232622813276520658738012832159030586070432543524318408385918731622574079251310357797763296940508311463388583112629537450364018161588865386646466063085853730184272393027407883294432104093716272654808625697995469992663493129178127265913276471382883722245866493584206680995278903972577254020101066830693798174564645648490648855768351348939876948966206090284930931847740928159456747087620583936775935845877374064111619975225535941601702503394651099990540969407087670993579638866568674391696080834667931485507611102495490211865916086365995744693421763069865888844955181965988302583772370256359080418840159822051651253730301512741024643808468994110288708908689759571148640070743605768850351497427513872392419279216720627156014138687472938243566885096485058543840649219554391185451552931083134532208666427158124370861959782538305193867973984465495108810816681332602071062348614259760901206537219302286898129499030718155313675571486087246636166300337922649044244794067924374430890422898432385581670270502420227333600588663646315115863765740080255844525887890646828613549739935988155323246366987998397140344075139075634000957534948682754596563482653485647624434056146513350856952595594001546933185926006753735303856033197677150660781684364442244342863599321166376841614388734969877334478783908230074585360886635414496166074332982967268711669606635742047754344717927032985866951823679139467926590994043561662049319532732378410408388971799142253748084568300370569263144585780609263988681750489484218184555727620550239753032552340956708789262673338558258058857399455614607767420819626039470168838941049232103330261810012174496561226150291233124802417991481035614118950090704049355961085390268724343396321273133503492355002107634754365824166429066552661304882272990590550530520686607314980686943582316552636556882564432528882745805001003986748859706721803661080195532051139010173394960668270671483021957093174630372992157887043884340039902612219274760106346815250903095968123118898727402460948832762077435709006047516347119252937532060328490414089698137465638136077574624673317578944388496504639265940491374231335646655007458862207504761721994933595555414007939201497750126718149049458958378537339836545678259537023016698321425155534941409321034573395258456580790430315505816407325315410746606668246516581548378477795063028381671849303351361893129100994738435528718992164591184012162667405892680521316670858574203937720514324345851883166393175280359720887711221018676831509695699620699160165915298074813195085108890473851385679570080992068356314847590977106506859270612583842125861077221045197090109943415366327002831005209551458977471305369946537952488648660100810104588958786321357603948206007781115420691538172543176250673988760719874417613093452490563154090181810028866598693247717751098593684200933351917390466134024952658515590657574452639232178378709524214774871353183306810126941375620080203499900884537013473506901168291136197892005918420017401063796984623741586791053773695379442208161743242241753755282312543275336833033302939957036193376836120280704560164827523994003442574704550658680079193661751904327799328145623627045157821049278836984292097474653128422110989609571894223656312821068320971681314646562253033302912942916758147613176743406238628948727069714476036434052684864956401367911178812003868699634504558668352161426143436176939422871206271239478019600879777957328870563695646072378054253198141999130453119334553343782752104814840590518058674086487994266279823238010237339534214991365791799690322755810620189182870585676624364678254711324190827144891458877267943050311396665047541267035170280927000374530105693965760511170692358118383366195776862327353356328650268207640411111053981930072594320007820185937930815702068017055811086864148993275731604367541538962331603355198639869839434364253953009340057854854417050496614993897166644717386752759935102550950054715702027618705610307293197936001122465273086101051463981029480008408814271098736883819886564217451475652350223273687086123512238498997997409887419572139841213399918394791420127461243548419140034151143826960330068114260204652462429588907629190573957258193258802273152519300388426160800930455431606654799658665722502444131964284958330658212226653791228447006134757872069095360257652615957901768111753438691831271355426186117168689750826996940551304137133601127398212981908775702586639639359076087582948359070248113679042465720459807645239884290142303430660178841013747792021714421836429972302520307721367458312514620679470940482715837517231375960652398258063291241925589156312406039051463071357198132440505412208329849119844777936975351113680129120424753010818287981194116995758808756004500891149431165228423232626953531822631426686040592662882248101427200800612823849627567377250229830884601199240595267277910148560296692821895876977231364664523780586567760555837923178447244649658825540684267944658225534475407711787418183326174624407892838213703115542466763068820871663832463950010386760459515015357170915481906171691058915220375252379848674646948039468918141018787184967506640056888625465025240114589953475820343379566048025585675953014004864652806622323996634608565502092731548370546254278821331990975583461470771502224250000466392405270375822695303313520172254653690815773672332685758964907796844971194822333514509698590522298957974345156123739821111184412977120677031593299017399629516401927723483460012940730630688812118853460537934853576866050980978748827202524210916169920210040157001788839271687511584193627861357844820003687352786573393905768709307763455182010550314152688995226142196548697567922337202909617376820267018784762813322708697486995300467439464049022891463324453626333789541832659959980500027146070178234161287691464497047909584691060929835361741572474232560851063412538489801561294531233848435166045526103907307327953639958104640766435520145927397509264302376428036121319217298487879176216911381227209209058064033636161908260505994370376690806274498933376534279356549815179704858300966355174979603319689661312282526801932225023568922615381444125529585148658610558979059014765259020518472914886260252220495741411720493482207205157670468628654860805734396613885516996362541160591717426152634758446434078298001084152975990697349087366405556469667806769556660808781828360567739433921807679639118513925394396336703480313168416121641280096909861345754708403720115138188513301610906252639844791114002905390783844733424343045068979279688536897523023859203803277568992134056887293996018496836823802652290915734113962923749288279124113648171214038251503100429372915011190275086383564192765145847096839074259623715440664892847917560014195468705633366016578348312469076657864141602735303384214200464157192217870916672214094399841415711617675898550873384627000137154046556950361224681288034555376195458186595576924972210087969654384378624197415935895231215703344684006834137123659397594059450100323152317863718722077236271026393915522544885194327713192611831577335080906475889061591854827278634880336373323076383380418719113938688837963565485177521550995611943398237519253145164645950545114216338203824759916940625168007028026562200810202985316225878325390791487667765690858806002396374979970695476807497422083685376476061490192115421169895293369400065343446295434213518057909729232426743004333964641631070507361504656137277265497769166333086169670394416326992628735225605847421916591039021558129637861074348966702569026021440035359868374101921363258450982427631884973520570768219303663493415531692107122398762075402601919164200080659753924494920003301395520639020953294927556499854354193924546402695988566737826733064112063054321730176576417153788938961848253677259571394039949516378398431910344282810287734072360668070888364939076769784154696089102505138845237118050969847389587402551618003576441226368292689647806851058439142834046168817393914205795484382759242854467095491987979223478411568246324879969295155919673698368909267282201874419923942001221141759347873079239325570694466329411919878984911096330173315423217246833996837862989370998649867208452910856554665259017096274816861927276203504043612247767107115993444730956582889403825570144506294573962628401788705716536685225100668101263958190128978388332322362606001333191908969312723096061247777872584502932973514136043213537850429832507445715803756435872009505323619494134546589492077035759118048087617965087938430951994227042554868961576610902270185815607398451676862982037584321707345022099123640174034989008999697910318725088834899043750386731638166652020944296460262649148807194324334078341819536382008582325055773745186455981777494373979269840042645336718568296316231587621204601621613214038255479406449842868903179217899740887142690178787534267942856372735264008037294556165135209108289573450463486416064124180386985151103284255631141946233120039481008168303199859534042210164255789125697490821257478492437891954974865438534325583939182966666876486373369082592115497084975422717941308945395238665557964923618090159206147255939190752870397062886138869200234868509050126207237433838741683706698288598809655330289056462208827604211308148275489070612894052088834859478786172632871440513636157797762641892268984091877754708905267385274954836327045958015265437108548380428170370412832334206906203002014702890320785873225339214772958440838800478022699866831190638557170783269096177312751099205898316334253816322653210303662607547528800130982130860738841830299297656902267751198128606614466010991784782053785507110136710705280738854162444687588193322278926923741613838025666048603008511179425864474315017776204219558570719102690908475728898349274671738052136982147840621353283313537781868971931292967753953250985029769649594907960675438012471644905426755275058001071997474351872901906093061881529241382254378880048232499758130341139089486431544779182952669411841008068266294693560905765121713189206282916890520645668310767555639498647147853304485084898675625936427894685193829236334769592452286737756321979706563004178118580811861219770409440556431342262304798159705878219216918268677316357254328483352885194443311295270917996820074526971810068222123101983861414641805950518687644742303793767818799500685938238460869779000530058794350650343704958880208557464632225062224108400821161195830712837981241976196793164787808074405423215495146504013707822443067281206868094738134644349214462418833983286566720316847969873036759678453502682707827308112224204117960254135636397049480335055246145548466920645496453081402440918625723866927176022983343364387293200487469770612790080887455392173341963724493923967770822078899464257742187012155356074363434350943371220381740422567108434055140428259271427673200179018571606481059787257457669892941582278176777627716235570754418039918068736258754424210718224190205362711673370298746832303227854385088554170193239054969081299863197297710687856591422577765047096408934616832478159978918279964153338486640751253709569833783406625819866438192140013533948316673058120479958437375470170628099142745670936885534268799558458209832337844997753727733910271407654522475976919608363806638026779217221910218682540124570990861106617159226497198743338494031223543572502025932215443669974440505853716402851584206735847459438318556974484345050852768881582517199070330352526233924348569718003959712438295981925175486909651636605506233008269744862507906330138162738798300559575079068554423282738741174170505741359678647188692331490337283572495409182570500196250798998164282058415116478223660220060400609400479297500885294471697217115799914108873825239651722699615977933426475435673341023246674213996793845440551299134337277801027795522567470725824029092547206336595490966292343017583814437045432003615430740085215604291874324915807215597720093410911764399736257714971045153214209542304289887535856109372181355557563667424519638450948173987236185231198894545149648539213363632364627054810306077243660259705255343703614411870048869996986400591189487335961963996020285534743532561531935371979891680982249620866069985356429314889925590510415180616201223632727254291775572879213292021766119188859222930764130426983483381079886020943227446615167330379915393094808652288152462959353502650951761587017767792251748195558790126181816114377626981751332582395189571722726899481515636974233349378785511195296728424415272921912396640009500498630585927440099256731927367923401522020885421091871803428856999224132277127278547772246320401307066752559598613589779721375321649202645961676630911129221663084181601167203360737441766876960678682304360769351683905127610395691761652345118076307706268577252623423201936011238378154265451186400995628824938072737514171312059702411475414117783381143067944398797284268110507110099365491310362954877642090389709732595033072443997551695169150462739149246292106318451467485018048929123163601134174931813411559836652507955306596026629159944254226050014093097683695835801011462355369431645633611811202866512667924105021809937720499944245171634638417854562025499605358216003377616939938501613250559268327588578482894992603214760255401419000112622916275087947607207586401747204309973483629622168656907765891625617431055887666715801265510215072035548953976075788851641642853908664710801858619420943718799764688358325038776326328846254393325116809824720926988305977772048712355168439871555997607812157421501262587589062898250872475536431537927734713988534965229497766117210611738146684181757909128431645933269671698754977658847301761372398920146261042821497612885964463812677524454435430409915566748122104827429323653263356563378052277990322391069945546466660048145027400124627906920024758017812357995258021649842765146771297719015242112251538586455962357434226652547253183966792394216766624054544568797290422384947524780404289523741611254354648789181665041058370346064577945865751706895992881052387329091360273235927333446442763164430806903252518631836022202048021360134507585358846193096622892098050115001209351062626898004875109908526320956395301973434888507790492756446620236447933733014009434400107983929364854069882163954118685861099257578276223354595189259981745495213228280542852195488884753307422643402843006061914960527069366066350930653687413910632597471678079330982479099463557341736923030272891371888256889534748023352865735650487755008530749659238561441223134337314295952488286824074758740966354351956871875509386047087700557272568395299309154321622764767829751709440862397636983465147236576802702145511778868379573209424441723765252182199977700957012929993355807792684668745511126250261343271475593542559905665346252338682090532052074053714297831229074539263080243314709760220675315396454251090519008810531396969549738014957131024941000929140054230705961046713458262795213249271571856072364330538967107694443911495538395321022389908686263586858285279954594565174618996946502548691718510278653695086613925899475088121305726156057330006961947256404584382577949404994756234207838585171713128721729402665747308876708526498694310767720504388679403386598030166970564802331843714310183968073736145894133961366159570543214842526698255872937172337254704716245006560764290399465051656928945767539680071886144724180879981213892234598547775400385283840056959636142632292266659847299425859022632824226393312003896804792984445337870055235613649085176653112284169313128115037458342222447170508213715787952576522642657537356276452529789283174294066970939773756998182582435201636437644139941011774327177351252221909367102456434844709035126413824676828470642017197814746587569510481871021786596817597021796221447279350803727593325775706148365129099345037303580395130353970695891835095617037276770482189979686843791140918536471816742147886162758465404727613312600408467652948221313612721512411103280400616466381452850155569469233584261382627903131510600085442039202110697179190449684292645744063385201202207776705515814395629451139306650137086106076529364648825533870269398268605067376156371678797491915320338853624198351970797141301949654490989558984217936771638275881925910586274275617719141141945013353738803148258020659517733331211088795492793736064633434211186516039659359201081104427535245407680683511616603280177174866073145821474275869261429487293641148237486242681678328360915270733772354180936204833807358229224396842761995592275820074659747829862741473378503971336040523392421277216246442132799404470053826069726779605766195108819467469286464387518885864685637540202645011349650570822602031745490983410521692480902898983634098292398622233635568062232743298358426605125010189592459861496460554568070817461916734929457498456548791647903017008374646832316072014625810547688131609708498855768576486352160647778271985087653863467225410944892851734313080233405378720557862481232814761444488565503223878215222037835908868363380621157801965870965755324727655058566059566603990159023280684226170883372453729702120541854811503866560359546066246509857505091190436815561417331046562821354137036122453928279410964001740499998791972850331511384263925017261175256671128757471676932692358398518736043084976489440891676474522579863297755472014186247617421023433023067707625661965005120869292481367745955322328983016413159781363030271910539415386803030350486468722586181555062736537994611136078554491587055038945569839400092511907602476204233704004210165276881362799260788703226956495234288221280091854314866607425377933124912237088473452440706006330410258749365749002309424976275908517693833692664074108762707911183539250022711582118922778280472539880745128547969115943166525607868940906204392613044496294973191359935012696777935002504975873036831236585836321652130228692137131866128902352911658876739266643059348787392772985921939510829747722025746021853222565013705580988102175583567888881941667630377905585152813780032121395545372438923237611865499168641722956250191478416883692370866966964808379245448302891286950345077022463761955133339458213547226414328658201721469775395313593006121970706127178343226036627901016143466312639951894435868208654557314435702203206664242236772609879306474866327804934071043002690316194003424200652997387424663750186126016626348381208282405263480159261354539430125557304278631762737643222993428843051366819452232630291219281467580271371709997844010636325915138492912307240315839031563509263693494979949122253457285530419890184990721711629353957898108309372619739268200848786641905040635135551524503540115839686713659529043693504396921743172179451740303530521703938295621232377819192924690975295802427136051132364788507326622080764126990809469714347864131279541065224562429821725757101322162915878249580158816354824150446506453889366511793248402666816266651973061694808429072987708979014022894342558915162737391275950561882544120497980684814255800463022094027232761795857200849907293828572445600301286084106832058356718413564036517212420843139318696361695387610873768193493344876915339463431645151395229528063744705241347859156347441734023770597432492723323218910882697277686447536342706771918933543914314663024046222298302125592370911681321744430366684959895944339161931917937330466939959373237507273299551062462295040878992802999168842641350627041326293407716980237431126040891435550344327092220397834252990326286788802360572052813282146080778451443101060818113339299901905999504964285364703769248532704478384956684389407638632413056604540936352873889841546369906149508686426111213709680122695366116145438102123997545091569287907703380355331597807850001791656209521244653399199929626663309339427241603975808933813946061931074690861871544471243723315899594543364045473311795520310307264453022746190826848112790167628461584273303815448113997297488949713735350126254052652880343686278692145485209270779894069558664416649852644637977586244210717588027046462099263645297217508064120629818540400200309614147585254447632916992069842189707771152621663343734141418024142821045130513766765480564803026944577587369824764909873776559281860997055790887046173031713435220985152060780066704880162248192836924653843552051631720933485114365817372468172729242293007863106250020911235247684230050459898632339602103922374757404286492986964316732867715009508839899327445969538342942190183279213806309378480187025517637557609195011942935569432702783182290449662445945378922624839177262159362121128905166378907097861287641849838910497319875610234946307579534860258049029221644279412464285228496412219171136053532676642425844084669458751516441428767063828282562075241935470740679360516210995518640751055547403519243783990558659703338484517392230459667685613414623258046449820915167506467160980836673525270487582271625375767337797412734267210367266163159089305405941648253238319497907045548399469311582501101427109683929132013047477230107138869639293702629591353938074734248671544422851432049311251699139753417228750348708667669841666135218088502332813558215605416664771013166150348101167889249588846137830394412342630345812266086646835245915018775315455931987843870088909646072009698325728736201299486934113710529742506702698553892368764926828182291484211338827737287100206720598459697295192654555447970747772644768219643332317932624320845684544756321764264601919039169730043670813895811101396034250383173815217880960051273696823034422420971947336473207102774304086172673044851833885205766596360082519683434517141880990860975023019432023181913370989979521591382262696718486073268903283445767378578696555097899457396228286397863906005162644033436590544916091453694596099917239495393591567970372004808412650373646093289693811789531310655132453880771813326903051179875929967573160515685784943331698136947767848277313228277347281904837024719015058001217719107827504375445458205367417786579436695588522080377414556152869112090544297083027550544251525309970816515617370640558960655484330557333579290437010030257051070422083393112419692546645419491551039191758166667558862036471674483564572375752457903325119170694858940893741460542387645711132762610568634460541856327451415698195919257533511139568688027732570744464107909239802122953725629368222734574918427888006637656297296459870086201770892620471431939326214757881920791106632021901378393436222864375645191626151686107682788330697829383444082969641279177618337412308124375054975838253202704355673291232860679828493879305677914428819941977809486765642135421573260623782602115884516119600941334027520399853351397514696190479216084683079434553102881916178022243726087895884476903258234146281436902174946779053631864621843394015126672032508030732474089444675039651120539453042236103844593586746512896437003706600549904097196436599602124383326322683451647727692063427896521204153318340261899666017104157890965223201036175486996275331874080729613725542342767099155625940189183610463012268389170057224740238196185012090616982286087585786984050305531464143844497706018296355479733189322517798690576713500541961073116839576343386127964468904698713313186879790690040632574215781802243169353992289597404049436487386881457164962203333802237114801279404568430359663082015407742579998846988508838418604356417001559844296255161165686704974165828546925460028473548384576433402746773938953358892382721040439760326826189572805412762774723720983525880249106426711817391875030408904545906369809625626572320903717307567414454420425474060963645237214977403137326075152413547306608634075565680894071901415416993928047443694534483796033231646741537169419192956179174602228202592936687559902466137706759627456942266756903165948243492435791918715921814381380713553024699876257159571868897809592374268073802524842683235183006928968914042306858141601739308796667490913562716447791360000176446680119903822601119860240089858252830501704410430749863925445111164483968447086586064636262831734823316524220793314362760330291919391330394860666154979537751289521667392892132712701669844629312789608104823839877893783148351975079558962940228102174726375399542503502321849849917013089989570429236148112589495898173501053485304558774866613308916179444760748363546041398395420052428959716315463120668451605109742759541277931895475156599197640938849021203279219725073524081572720893295136920979012179176118570215544992835096257055894943773839878650332929364472191412563305988870529782846575819163379083512457912730621548439569008197510542421042146153135942412237413415167855870903129041579083798612891983945285438602199847903156589021929904907722224971793112069636659956888480192833406237533802919397712256282856814201813098551788159769323621259128459040799074184069829630014823779431099967263643166083418452364926427484192968342835869873988908380208439285904285859945681058313767895830805414640692875596350204900661997462264626518929630172288732644164004095739546369827356451019964963809977527775857146874700861732073909652583131785419447813194899651418940345291490132004312956287353245132179757717623286773612902903813928092001244222757828153253802899721884626260153094236805173640570928072728708049060933675945967646906670311854328570484023903164778505866436983447199805684722004983268527624455802346251437883693134179348161087691592707902113881959844026266570642685145844384576084030555045469746750151914632040655705666825953945628318943693463209622549454061498183314867555883122388070186570653339939955449770613401501138164502445627443229521743417286551779781549489448325720289253068980443091295753702674664834771469761708136135646110857462868689000010128606562691312477783590711347917608629695217051938234072603835557489362908848377786007929012120257359466729706917551241691302659235056443725469816313439823257765479813252868313491215105377413033281692086029994512671530555086578210279388147428234676735228442003189333197371345501418140214052893822662973218420573275609854839249968259654735531683501693342245270934539915638982567217790529319995074395142930274279859762564288856566504449234324638639290991158063268139251744033485159824409913892854263585724599257671813167615355032963403272334159835487656982621399800533141426859285252057986572541760642377716582809017903481077756580067439811834495049328276275878275629908500062495801386780455635084727135132164384758420163749521951316868394903748051149629589610231880901881044833950198977262561046869016259860151168800929337483064553739453151258154183805075741342974983403954794909705282778129873260140882828863700282886047551685096213886897769961782532362080258042800656015674893911663473402581616458931814106133509146629741686325522770562641239197897316638767086657887780108882390425221953356069880975852073436587420094004284000224906002590345065191301556355368516917667645744869675422044005120981019568442962493056488377791534420979173793227258877661910806923185137320424154919766633161693512611693180157004726045117144654368913569567608849286361391189505463617926936621554504546965324991840182524703171010672841094280229410950652141945788337828406359720004133856554032029115544836347224750322956619895307981150333113737727357394491063293287486205206042884685207240398164744596180857857430861076574026421214027132751903352976757168626432572219972993525119368776993711546805386358954601376062632313363968709538990009198916663925028242905053730717890648036049801116697919368694286557821472977723945348806018374380465746632920730430208864434521743182696064185311256286374394981138946961659011618622335183005873836919322578114668953670840499827343667928803248699988957615691233857534018729823023043647738633804687102543593547509341037023098708681820133549241787311743464760461346188174887902712287555324732377830910184780681959164130948838135087149596385852636490952684929056387832365874246091597078601047604323509878168993575990211427424488683170967444086886208432322288049353212155038893857843726267137932641555999281065600422150974330349737146386605812286331072042090828738186023919207114548560431705280044313335704744803091576556994329526734385338349443713320602769704119913063559607175216189919109088222416760690710405205441734614258360792206038458688309763987185112237108165680368952928415734421000542002868915802596331278601074776537626692893607748672449154690991627009678284906515930779444088355378157226121323830096755062236348984308426715544769393154599656545130225866490768788839673493875458550550578257871761162068935356779066757596061607743557253405099432524400232432653995904643938273858395469007509391316162411868358733208612105672311382423391263704471890065451725491755609952284424032465911199482568042434770896325268319712794181500268373134228716626293025757325425383079868606354993160426079137319029630227153822632395968384184382805502465916997450753916988131840784633675078431453923707002620946993509006579957850171882779572447490330647993394049825484792332205569732068152730615719298225285722240627182202353752877654340580091215567492665119716315101238834283638982476928828256178647810299433599958996556947189015926294914236168889395558506458385124416685528873367240131943229392007562894332423805024319911896509480528426979683598121993653363774721916646504771713673148351112086412862367165507482069396305193185185865284071840966249978110615750211802511587914562579479937795606928807466253441650423620406118047801036386613148684025987878832251697212006798636445221508624592891899622065619047960166822639673274074694985864328544573297082682763991575015827028726257279186812259782653868602212065145073764788463550543005480397280933698686903253376689302262194944926155010976574889898607717915479588984166133337802760669699338296748875886580618003045782061799860671520133599910749016536723308575139231084787384302320927835046600199897351446984334962840955264511309036342288134836401146827217666682308086240584708320676213705751793400649026850551378940082461587382373817178163643388169884612476655067124632702192649623978723460434707894937905431892303566456835134818194682672035711438532921682207089413800574702882959517294617329542405719383408438717868406210068893166825933474648466261890387267612741962462164827542797953157134285889278143977570499491470176271675811274914882680326209634760501181604631988927741876965887306765013808607774727397984624132051099414310093671491056509737812322424798236493954699707501225436535095996004222274772807357042873153131212742118521259541014340019589587490308061572299991929906466387053361950884551124031930076811320506754113591042691059773138216532808243390351025623195682762483771237791753950775257139877569265721834654568514561534614348672281925669722985593628152148399173190323491884122173169424975840530070567868259995823202919431769825701620907687564926245042487178938207854494473952737472665545119500493696388380388275032045857359723149118899244581660965054030997697823975609258239981705302722257406283624674217383041365219717714729396786880543558979222989402257808280822317757381442043772484113080915883120602710177747817724767318641678729728478939265734070362419389809557437892447046373497623493195787793627172524012417031928221955382158488736921491797067449578523269093221337773215658936749058498308931356023975415030289786842574459734766598417733423917661106854317141877510223952997270292500931545377703316893170977536208836669688897716356355277381783746280627977435750791018321120282829833098261217837842979266134922851357635622753561655174226378034067234217394495013729796525597410158759289964552061358760999214168131917366610313713798664905219099839290351121425485144265466434800996576110110276271243404456406194757081571827014679165202994785367566830985467491104080434349731674177918217388781841346585960240504167437716606748129882796453016688359753244087360776078495101053066413835982379239548301210488205437760338656891212475713412336503985879443611453373774509103855801471104714681919905528542884513971788610167088647380281515729142324679612752808216618312391311057375772359110688592579756158564642655173610191672259053489622310891863031170850085460861502319367219822362262199400456834880504388277304450339449627261244274413317042934730525505554075189642265116021028344443125637300182327825879778387893808828131451573462756289189751710288441790386895805018171529312363368166912411725060685250389483387926649202862253705735580533854958694487863483572045908765191436334154430556767993830616110431790746636597761588433459573084306229948589856153414215173956728613897136534876902232010758198080665328166495151981539739740900196298194996262962084271713270074595939520850116033169072042107661646537792850168832206386377976895471619591790385678605218666864016067763080366365636374627361929673781312248708637097930162412884649390067560146305251158857887771727234751012379569257135390875428247692965441792466482405895467799374547506900464991856247348297298630409851290476615336042090789999381771579643385495117167515733113247602868457213342556115386042011723582569445082343063541290668984196161612992245487004803948428342816075932234467317173761465032804326365814563167417589690986049674499891836998777570853809472442027978241438353855967036329599762499912910888238381375759115777074434985469607521747600788285918399443297880526279608478412612757983055132339668941047928124146739463099463236557494569654575555318970038089211667645878826694540908785969237052180152879909788250075698526259006486979292765440505277489233789817273074177909136106438553563589488572557897982089866646682809240461103610594603821496162738546880413170180822161705651909523967973703264637558625835211009042807700254974616751712080896544145705203849349303533080253905616951140676752248424676454120494952709310156955257715129874207492952838907889274113737313092820167475563053785739989663895338653555391008741949549530768765263829880865529446257121227108672051618856322923805388879551895915659973901259794014262169674333466676783695434358724350146703810187885722621672991078719298475812490056325721782460932734580756496002881558846763045779511823125476811083892149689971572093124193514413880083774500146439198309965656253681747355607425904343880934155947413902848086215896139009242285581987354681734165960053303255907491917388023819256860809289804116726141308348480964880151128021967176676975881843386842127812073963854603142015683143438908961342217078449322383928983792352589483448588039249398044762618098340370783739455386352862330207968789863419584038964692209154273189161839663154760512309997781161285759777140837842291782835092351514538256900472103270765200592555472653241852270790763368133385278454829983457662883275499279736688768329904739463171415632827448529927786286649258604382887445769937071533076523816844980085634516498306926161406113160869635242135940573080834211687164513410915802315894232463857416360703391093056422978196782482138123608380266187032992866673501830705938295549233315563656263835302942711573603608914604585330810373850314549476926214362906294159780038007500256053881103882304807655545746859646923677022750171980666419398715217380495586333353450301422102252925785431103037489812504494203781923260407584383792561160648966833945720654590234491844486952728577059224530409880022446579456062269033523875382428621434321839001948502303051067139309275247326717876744941063934326995238861358816711792005293424709660524575101921182193222095225517005355765444798442112842426659660739736253135853879373457136069829239868146499774083194290706938655794008469193930475236703015372711848941330407431716489241520397127597645581294175853989924096397512612696623281554514169869725621945183909483518523960300971952989138621644177747453662806682482948956688865718071292641278905333421869714766700807025233513720180293918503696374894108966930935865061901464261096194876157960873217384218779116036203898111855100328332821718131987057126408383071403345590926131435895688349619113198694399377395175363665251534371577471895106617007782483637524048147044561435692426312721063096741287280354283021396701203070068537611536887184654403237719967081328833630095585009614648295026964902930191901953278059165130670687495413926422818948954943317769665518767564464725835751503503784843374656451432863368711799590119100645241739542234442879596206856689231618454088581682320259512470361753876729945985004324326054929891683940142094282703501403574037833694224508528316058573362248147767292657009326912318789547941617087170800735863382774728899113121668483825534490888107145593640075612416109561441562886109277871117400628668666164431382192047883628132582264537304466471821564832512323614542228220490926548150753611964384014210823637148804581215277474656370835795630416002675875141780533215340244151475134766958364119678676829180714172338859961410055303834507995161412520386324137116005628329354490755086236126769213448415163656100764382895185721757175542522285131796567900928377354979270540324348137453445184417267905850196326684457912933106766280559360891524461219860386351095879065420104685133914217824627179404307408852427147839643186103154404395681004379049606576640995582787977672580762773434904598933664798166946554559288349946245788837454862488433803191744588800305576368053137887068091031387063372259068426045912060666586075183957618636877560639695191791967531485537741631972347413313706489093910969457094960579041544271629996107567860414054290271257322172486176555240241231800136781030151260545323188484621163652762333624110667094157796912893054965009848458992364589540796253037929773711458616558827110868464162279800250541114368498521384954490048961058673598019307780737108598278144981336069185009215436408122081552829461707223869274760153431756132995433636904851272600599050801165898761986524929949812878102264095178080389790472573244932139210520489844522101933275403560225821372096627486919976520243983038121370198461931173954479356926913882366240052420760851555831841219888046197496106923388803737595747439914062353457276459871025075992571594599327120347630092805526309733882454112017244518942370742409223204315796621110291022273407223457526154601712856990398174021544583756706400902934773273140502605295108724382004844327307001913248912264369998291222878739054996235401414482049941915295194248293534356898618824600639260283691066077156656015428522392294415772314681122132532582815896455386443604554370417031627478848276144871102385015301489834075312535078948686227112699144691391937039123312220218892949397497189678468159413536003190572964091947061307716326585314143840488686407372686430057748733750155641979160259847893008154129111677664069391035739723130965513830219538467221750566536468265886266334071372690309936933549835130136738068424932876130831455336043369586742632044915080230085343864726328498916052152783760170513212491031479766174432527981585327065107065503732666345129532721451792014339478127057173619325316585381479709616907432016694714021812654493005751557270327254475506897787867191829931334338533075439978290562823431932449242649497472852668449865329819177406272449338871531079379144170801298016383223169929493608626512278834954181034252389584312320308278765373716266364210226440843803682138327309526513878989782925255635209119900010983402580961640365614371401362604896511896143321647590171465344738504760097230824129398891410619271416282152147665134958295781705419570382968659097225733033418551939133405353204404993765268686143772749521722671956311751391897235513807379887847588052684855849567784203996253270630973170431999454407241343997034727088072660747395903697023159322886401992423312724001998728876538410001374677718062564429595480656908021087770721942536585622134530639916566317592020070118963419036363938375903271998798074724506751168451866423881463328244604853412268544832119548048221357654572153896699820492503872993055965055985106828460001578459697632700701100767904410771348891732672816992993188647679884403054985448147806776865616893575703318070632626312071691317862205901954465628595131118614048874547198722870864509545882315729965393933557303817826200384411018850857941355993182179530661321698991993836110667622452928924070913013946691589100013656877357802300174938789099385729868667591369866699199822814355981818550135747828211542784830899150675795155529374342412431224430276371981556470194684559844125163929655744239203128722857849008073525156118518741142816606713943284647992695863599041066893678388620512056264978994687843384722520079467557469970053303835213855130704805484988245981154979321219012773787047678458675578097359718872540739738009651968665410479449772241777652481385969232970829235509586239566331975059811146244441259238267411789757102264930792000092264783900085556013803855953833228723919629505891441645846141818804835311475048353928210918242962319330888395685005720065291721188048565032041701720556451275288636124892346854913617927447693889997748205289493649647565817200644472228705488044348286466530451943923767932617619081964125037830063904964483382770050028619188683630250949463431832302592228116003203082604441594349171632499475890284576212866319168805771115763627608340012412773811870379180813843367967988493369070624064145479230822597334470764459988089337871330762664204469233540360273423971897997159481809008957177376929238855825162963142302389075306978253137864499593724784583270692306141010727508214154193375159041643555807296868726061279677926788912689747749842844457616075104381120383860889004393917457294883875504892572054066570010483294338933049202944538889277704389211207189676627383334785329032787460569457337808896624809266474540721433341421187893754717865798486461747420083349410688325309596343096667715599028202003962552861603808178032550111425154936685293798801252036591343104538732894372598328593368880636950352398079124910499440351904463477871592212593011468918837117373176872949021206896684658102236776546439687218004116899107667002199841083921100085122059367936068251111025497336193044403756574793496808075103730770911996245666461345422162496868699965562849601351593650695732047868432879585255943235683506785715889766263902413242247868968229096680625198751520504636134546664440240538424395984022805881196938763292767955939959895916375816582916862993451011772511641669663078637169783414040824712937462780970245962107236649961070306195415892663964032207205819603905371919231545363847360534618446987971241540226409161850510025790446832918884303707920879894539674934388550715890830734721967749780321694037053766403876328644107123536228784290135716125326050685965086247301075600987173214764310953210435446978682710604053302162161988111055955375599417955355747805082771137344736351952366383572381056790526503300820776428489969963056755715398578913859456603597036515654910309985530960920142663379056955798873791134980323475074276109063021586892134772672256463434040941036543130043589677111832786345237699226491334552949816049369649051835599116829980025932240438438546257862989064813174757412514601542870445485602297386201497067882152026015031396257243748011003785992240517218008334400423184083957858312244003233569666327492589274741025236979656219855964103798312164996600740716985970816016200653240699571449478546122698400009003079036941660137339802172114509354893533319936973815220098066585697727460680038918879158548377481333175832017692844255190059340681550527636963445953560999373811644478833272470650104712058410320001334416741321101776148746681118033444445063837228553272293864589791698604857898226235440997500906527199649600866699394004652272784462662308492835985291390850103455127934935020159481363560297905389312808427786021786170338685121630736751721035085057736955177648656547738671834782947122329140080727102461386136775619470263870560985645536151255427016636792071711052321815383509034399479410324469545793908431102904061187180170130977411066288363640871214884969770968779502751245366229617127458521390125214584429942436344386652353100275537301961707879386150813943250686912268270543198734478572812397782154777054075880467686135978692083208842474224945423172065929401881414075396864264550327247503440061997363347791479829531608976677961499960161627374594644028561614425988946118789866015094650417199649700235403933253401294102755635387075047466826866847481748587645383732541924284390057764300796810089281500922031049365128987148415041780671895703620757066462162921699636252416625983691405086127864923305813479304605620499741246623285421421139469516672512024379696521987555822041804621492220900293194019796611617520326904402746916561511573991379899362242998502514943161875081858613647385228756194366108898771819766809251405421443050716178223069676737620801527540844780331230536610994472457826918084478738744353119743651509718083912468278725893441835767189552066183404349124400608386272388254442031045909312101364842937737798368326155639984656193397361560901497510051343964969136553994225742136727166725719228481074414412417984801492479964732482665365791096821812069329742398696616582890755442500700574009463862178334333185429885093657622405679123630702247799730635276503510499477286131729420710033364006881929761217342812817010205786898703996022891953859436656410337488881754727319976425518353789097472067352214019149378432294946195842511461386587365015706062020571462993248717449884873744375162032648858217556811057348542849330128002933911843795115890035202301569400983274636221735151654725508266908669587593578390974692570026174583239642534245403513223848908986266916583350633662496622118334800804330929461938614705964829946459393063432883047191871176489228222442706793519988035530250011773140150522439321621644022475516943758285902121818004644959889143116173766776768090351575023026012691149569821768946952963236330228163720302600752193257908692984502151637485733479454140599998946458558254767239724684961068253724975111900070165279622743600808996257908897909729061910593102002798623620943976322390865269601078390588596702740054346995590755336670497583882557777774842493129507220215021353020579877758390587545109283560659672059842107702672666038161148979942141553806416558993961938516755736308283936854224484716204401982844460775142178765173504586730752902724628151492327808826864354384059093234727161765852389936459177581802537261457317515894837671297629131444137817720296996018666929491481130173433218501387992297790120218155089590102732623257911446237032049802537899290527994470723100274760351240920515991892254527635293494882070161158798168383785060669125177267944731363095358654416246319121961063941792410539551457923508447226621264671243259428050424041245033447049978638797621713267785479098566936442403050718085107365564942478667824181373573170584167550418830195157179772558401224248599268951233663355119610012783441171189349245253448432059600138600588312468541937066689394418842515754590268359134788619930062061223136166790682842984167643794073965944058943047015205569464107430633518617521027124653150740542448331500864478496199739263890828878553920093983668234648597810098142044409038572104524726748357202465216631680079781765174877281650970337046941419580089450368980350066359967214774289769899835933674380011117100638537692490557266345873695713617217389552814383370477638085744359126957913401841392282457191229085070851322279779625732585508442292847614017581073733839105767471209279568584779576748803704737564597502291626920978467849147059701345669089581615102551101524974412966305354055724631290658687571403193983374337961639611841390881266820922814485159253294405230528653081464549234557605119990087950397975870758992187473019611391006918506222935676921728389002913194173146930584441712268694211001840033543068063036142780148354218970908295069140595039338818285656983596411782855026846831769479746214435790195931127019912825966060382119520854745517311258166664680733957223540187332241038828350741509057881264638806564851619205252104874706208659094051774800003080866699347298034749885979728650570247488060811560727092712948640994999444074656751812134190935842848863906485536338693829260585917711769089811191142314583679287016667605808788791809915936073912666360677455552759363410429681439352845405105146199735581387088375607138286186040045265654977416340284482240364796372253225125064304832652526923842885105414742700178068495416501908045663380340550784623518539964227271506566111331633138926236719116139777094105954623964650413038337702580454641311892571348978990421338696307427660723667608350117747457670232269803603467884425261243281423763441869255547247284879671746960086959947034331501065474942592100572822767899125375806626318370958237797552511926525665784940902260543127549542756227443982645549671045178174930888465865284196505652269193455305523517940296327052622377505927255424673595242611619117302828322212553492237907744188576451307288434320523589332065251484959765054565719667206435651733836908930395041329115650950394457912502980808756148765770004326912270819193884328245013504325274297427442880430551992383555586434144730805065428009546874214214437170733082608485155530873969032671218829024074692396549807778617045756809626008577849022732778799961612524436347436309508771737009945063843854437619279880574631355595398035562080215844041729184569728535665811598732574677149430591506768162098636854911353213114173455009192222457075249012537860430133349887464455045632772498275181812095344005052498207570281575585192741769650471877116687070915907662182702487727838502343927233150609092756014384016158291259001273478273423653654567940057715138637709306339642183626996839082186831750132717055301984199924524430677244555516638495238344808019473292420454038453564501505053257063026568573921959085938259734446169256651455197861382714668013468999403118962602411232905626673831500920496437642848354792131745904673330274709965001580038282042927043912320542054926189272000793624047438604871118728180427062948998846100689678245419871829697699977246882021966156638522088670358721923805546093250786649021450984179812558279055120499697876219621262030943596283421446370684904297463550893094747076338299789794341372806842810993280645299279721673712958919982997280412506074907866091970019615817977905905731034653999066897338706008152415582194186152701319219473723698597581281150180203715489734979677855761831574174084932503809484731592808340504893036675749210652040419307997051102066716943816854995346700184442405855740704613452698010878266713479424853760168735698066662908511174293970300187073039054913634472580941224901911463081405690841943137203452862380775700334847202511215218243169909985010456044207653432233384548009331938219357319819893732802900676370087014596191975969453314852936667780336168897005779565295487024877468398359846472807335220318716558683399224554095494548769874757699545820129713341051884873297311728360658401637244786889277870363769806985635676934273444646086719491970563408386151429692068353598440942727123166677715445613722758118150615973603555599554988583255173120900227950414015321694545541392226618486034709316916509911318841921930331834212206671774220517613087229350546370431637073643349550771005144628072036393783786641219829498789404409303377278294456596259058600855221026201814970373741326941611723532813828717428276413646593803783358454587750095251243692603420139970223168868704147787185877277435440880444176670052205212322506712907632621867235714816932535851761210415885700422482749626104211005527280856238790741547368902712865709169635613776869940454443319821789115557828223964214928413395710069278007728181315199439404171430181763799328476828015114631527528963468748504892266581932863313065793430488713168740800221042436700867992261599261453101016856616775426793346773873179010735479757003258441635469068508243561424285032506592205967583093514519634759988988621148823145191424248875212606477936514333368101912522207819245914507249734349663362686184190559981729013867149958577922043579439946872922909025262984109596746337050200338693888409852612687023150542273944263828041050885737833275043946534803486619225278760007869687097758059007921071407093483398399729208129348280615776629299383077547350844690954845695528875799985497022298906798791808012542038991093242750277956761521514335257314898004070107502460228107714046718581460475459927454046485260565367342727572739418114766817168602745742457976511930851882899616172002914121814159489787716478117911216873885736199038077398440526278567139713095907114467784904335464849011871113176450246646993448896145423821071733836316508614675879595549954138261479780883429010972514469993077558816027691642872498315688744116483942473553727387734075148355220769171432491434408395413383876042865582011916455729266789550162999653048506697275178135285127486475783627794621603745684804095536772241158364297867047730376909777914021839171930108597085518662933157978257924991508963217396259729338586557788936346226626515928517819213476849652227651042928302428827208070379837885261113755623032480370566442849172371926858829978992975658182395156057051718281149473914143184432583881019970708968780289086796245540135723165417532349893162261597008728244473716746809508579907594062854033957903354000665233480749532039269949369082945372591556286489966413660570727284757761748717404968140724290727839850477272906884424520234820400328169337632114050773544339389524663253943017869495785324067001238545041726594841174800520152383443680415471786883588432438550177219723278273731434445557157486421738253422283351029513302763724783081104516697763797004259602845138995747962406941448283650186936694548528682058999050827854797361518453995919090743847347434078653269741244305712886564023740999665700867500250560763922038332607887638890661637353411820751898035650729406986293371391361726634125926971943290983725418806928171505314809706854433018056171865901086713428091060629199715188605476463824960626532951592523218807144093479307705190503888446333956499280555072133627325260369615988401851510207610794163309453666040473357698937315508176118323711706107508390336743044549855687543677454173038826785835717182383602178747125793021777485583341023554797749878726805649421267507647925125057532067963265074789640140017135026969476293083973990291973703490833390088163340820660317914343637564027935533859441857998927853378784972069506660312932820167680637204652963293082960975550573849856521237686161117069437619765114540138555716233276349649016908997009683865104779335764578973593852845924091294158818138817525656580750770026721095554475504199500577465741947341699420854880941364485364640547192568794424228788464492477647911341078698750853833534572084516038062767383772117657027733881064046764414062636093751238260339595729116084452203092552602664723609758495564366747035300114789842741866488982282328546615631384678326096309014809985598730503884535154013715371710287173059556959670302665246902679766603328695736237444717029241799479320980021909930130260875743754989128866055619381453355881806919453729284224064637907991112852026671331385243737260235799372219011023993526022285015089167364767977186167092275687966225532342701074161173541539635104464405181201356089034479809756560699401261711856469944534129188858880628426362368979874049580407744575922455296899543658480302688605939995528721003906240130451532188822296473719415214099678117008076408841051261750783735293096953421801229835789121935427080166069120065607383001644323533301218443344668363664366717309045771156647865427316518459859177148517668403048376541696691809259409469908498715621611063850091384117191002870136137934928848502600704747232767253081080460794467914079537522914315491385929936071955436285244536346394016284823712893656658183271540197909951367872715585553482337895808053466276744015573019831589367057544829992131425160962978452830110784918731301979193393356014759710847977197540545682911459515125089956939781662681843303507798840869215070037695661818778875235863128853269107226613661184354219986614545032828247598882103961879199172949039327627889428402392866216127359159030520109605356966875173841631016869896079762885253255507379421980466150802152793995148696912305427378923134866074415722590997575689140394591222737628824672107348669549535024688285973051357569684529221480361816661508737820164339997969151252615729463683070031853828337059442988345485717265864746278679763904280911568042957472513972214766906273513797467197452120131680350576569584624236719053372542711941704157886041258911589240089012972866815275126230027327633817671317641784952714206411016441713688092813240854713148427168744171170882156742811395592522024046654141208443471810230723284268045874499255654076168728061826338302745259796111914329430249283592357940316194509419797906839819372515022942977115277686272897147486650213123641521440912955014132907411363544746433108820722263166459831593172734233509947842283538299075001173283979753313273820992595205243674849866558238875149182246059904883609027709290246174719763683535478273284511796205071089715864526302929275629005643375611940983251581838383082672479105327921835083442941890457763978965702556581797323925377513216612306910246969084691894337618759489403313765997413350262130671191567908886176195175352984002138062603780270145019910278816656760357587441746151283989220783615411427790723185136932740395159855183961618415575612442510095372238621336526335171060656337265397638692480647632312349574020248955337568807779681523130197938179026707889989059850551374865121310958656974390463729080074061729255909285262894440388645574292230933656912443833725966410449056428239590554272264552862038026429025168227039991093776417558288342649001846151432954748601222115758893610099711270781899505059489424383957064169697725343009564897710968429501313071409677547222015006504833881082717414583242164920858336009307773101627309898746251175828414937054061320164928068786781767585357435419986363810877678206108472176316127355243408820897454378830836158674449400365781657961066731190539126927636265930453128421661603036837952695428346023285175574709264685466713786732281674496594928069415145716053811265279924043716162971937970891179016110591800470992291022499451940942085046445401548162340350029714246427433760464736729799148303054215637047769145760858256697862192415903537668456307700668410528967731979514758114824868281406750885339924472877570911445552880647172576006649792595109523317429142380740292714686970885066809770052571535515670862225431385689987070520341815007257837065684353311613175731089553066892083252067052448255438567647115672972971886889079985349154322765630920649094557014295456099775430555176267373694368694710175353970261735879779240354904080231676363700873968860346381255237988564242854729054046231877743407049393900427221152713551012222882059357999572566848475092528637462968293475420949205630429200310606537476035543174229069759938115480183889811177351614955374603913913698264264779974445259009766138387223479739673506684966939945365312727202259319533351784568807509562769748362182438979655203668783213471713553903554722004661792574821427209005002513888395262724538978870852236623563527664558748915788884391457159444328289469731892590631462945264676551996253348451819960597624439592327925902817185878732079285212156054041639384244152325307985644793127486904976748224705256983555815675154695278330705188758768926598709721222427249481276189261640213630665211922727054480440736640055817645491405400706621904273871614896889083333302424688833112608946742273351370794339242884980367618297099539790940892349313192520684113500538370076754722667815201294484382005548981416770230632126491119028297046726792602064512129008572361402034601295928892268970897543009708702499742633853303774782013868368933761530433090393923991723075262390461188660834126027833886494414792629220609592087176005900958111906152139639506915551833140264809091162552604467425901610705430165995720137445094406378760549902536664979664303485721968532147200402297595926508592901902492344488160471031520822286709916589914813000874992749220760867409190716650035287942243264556902228770609186891414199095472302569706522201487497818521587956696821620531271264540204529173309157025714724728066859618794241361979887995154009710104263677791735520445458529948505542426321580499814600926909150561294716342816013834958739281785289371966531001838060512651908024992805078732299403857752286146711344091889614540668508681839939233134598020401111552507264022023029062630832463757251120808455715509843173037307002607162384663035182339062402589898140302039835058429879192446778476194868990737084783703765575877370703692434898100376508973148915332546611674944595852559671354020163155400556750377835801836112104404997697120917193020718983902086560745548100475584741620229170369361284285158713830169530240320006625459050625499167400261858768624184346036189109542525429096441441556509268216587443982643568738025251313944632867705593281270862595218699561721808800480490258197505647524080451502581805637019616771099497251120700144971646994092322008438675671364638329226315333368970453776932311877474892155474109389291577269193211940662947634640100783145634299281532798070785346301926875873066232849901316590860871089951710995727678916621418095176085992236433561697625758556959874549950114019804057797430609740859234416213333010872565673945824568933700876590988181789707734216695935653949387287172623297715617650310924324981928639299832991801038616017573212120097529659447619468305668042117342672449265940689915319950187005896071608662373326183120972082630902335906780610736117639985297617073563157097112858131807890013478667819999473410747523329859877107644120429951563280925398695309333757355023156676642156342237700745794675632692700448247065499545119992143100820806827397391524912858279297009911541783540432559626370911640616884834179336880636793802748525143517970971281141103434586372858720934200106453802096055683395304108796188554615653777565204167430805922939154106190975250317335675916727626628798737312435659075486035451492843895261155074454839136123661208412690339485209130955462037385877709613309905157224351944509655813267388498237343330086824814747222606617902281976234855600117790053725432076462724779391441145438046314461161319447748946914162758307859456927711764153557154268030698743064273144775018667607305687184228485128967783344301175709931042576745473859007558027349850565459248383972071860841865601126109434683529855964741190658659931137016393739256061402897535622673483338018350119411497579090953227141773848389908656098893850351145133480591000225428348333459605320224876709626833993969200402639906030264218213092967506264896221244945564217571323871205809419100320437153329306486208203184739292837320599355618919134861556510260782347363513017733962826348325681125188586082534688978879562745322317395450085954449525101255509786509214599629087595064189669731500904609668990000194039393753150776187917817249128808757083999493090591241365524520823716490537748042757491371888514444499169225788920661589946514548959552825968920857462043003319078107095937073750826771523929294912224404305932057821468878382297227950429126371386540304202783198889350680531536434136270768861423502858599020341779156876814372591902351644845569711877454692075444771129315836010533727686624324569620309930968493347562008444996575327371779735164227165289833247806891916965144484488344241997293334280963861620034566626553195338737765817306538197828010049250603666274855827011214653934095574732080676664230125592346232730306249913361979112397818616203831208832738495301799668436123409363840352994692449172033568636379353340410934090640212436816357106896875821984801429156862263256588999906059162344789042312832017341277065524903434885798980605049368828802341735833661889404125856532407435818233225650766049696217304411066452713893822898955111091696304359962094141554729829988226247700107970058724795849036092671316942080199388083366225460358113470132448805291372139253892116539325060160313761438250558234706809726239321574492139804966943779061958618001224491471453807036193999037696428975745982474665084030796409417273035032017852740745766793175973237942150129518483004074326741778756901734731715411921617763915872201321133999746630120688398094611548796312405580255459841386738065757640118925662808210964913019933536127557051568967591838276933583427463470321420224958320609524776203866779879305340096861791442162800919174477515960932632347155230394892858900957506131686402310762993354715546879424159003173730257769432376829891346762929513512793901057593257700668549335798222765667812447689806928026644535510031954310390568807303724326172911642912277207497120922533940182447763663453462411792656121451732862571599407518954369901679272140000510857338180816249437662861742990486875227698422187592370476027423264129415535120222256703780200831312613479220855600727167443191427465093308930375696658371940663662567273614723394603413123170494077684312441201033478874311834521383499450568885447744322307717867898309201665397776489900718585604590655609706833711157048809922331812497145518379329807803742195858683641866296873292995116712431794298790441486019984336323853160881135285509771170481038407048712565014646069179792135063181832257877084107472722186398974640659987494628647352253331586771956762091124802117438682764834757399028606551889571728813890159957556536785695779589317828934151698213475924580115615427725846260298273891034611483353306037790733373807189509079502312484623182456140568193102099536402078569007947553717384312662738517037650531377840944976541754002881465613541647044788942355295231226526362846939454223211535379906554224059795733105901164087012708001291580186044976262032073791811004456130495753631426393817169742772040463666110823934536775454871626870287269981370167546350205932536348096893022819852558521777415858663992216397629433071762530075207315495448136540456831621625195996262852105614646296056928693112111193132065355405515499185131658868729084018094240461020036381608135744992076747966973192983710178990825602945052330459612173585692259990698543209047231401119937902446887207346540847547629090029908616839137900922090847273490129892522739640085671620212785407139750859638431876878394625108787630891537051557499005136822151822311481215494331111328135033191642495339616624762546443416113684852658341107115837437577117613460869791546105991894089946091560250738209364855345040243784046082504483516755334888803804326922148252525179064084504409714741129170114981172551689057407108968598044406880037962177058823875830530798417234202380293590500348400919783721710249006991175881361164495755822254381299530623627426391206999001393753014108011168030384386402057768307864750227706512477144001215253405027970452440769774858079284300633819794034041924233849286083422208570870466610882449064096018285906471225145207899623511297476323745168285123991432808636554368632406578549524245190313115529484541094715027216376205781429335811247506624976504097161566359413377221006813606044375546946004019938065861022539252038831878545211738923368840871265504212193597212634379327876670062565417001340012277110112732697097136077220133824455877317387135968776555345704466372980232849945146173081466563703352411551701198187414534698398106443977605564473033341657902004861093056843414085004780020472659271650364441077264681989302398800832586005816198265335591371172734033861969510938889989172584090796013453685892618963130153375093066139459510863636320777002232760881175074253286562842566607385840459859777244383612059199713601927316681340754533275422061715910455586590613407667401645964420505912325390276260761141119980325678943846211738378810781698097406148268673763030988910974173243493795538082279444281483234046447095167393255361127330667957341892928585375262743434522592042831606654546274906621244438633091312768233888358460456776793014383757552530097403554044836396849496652662583726247775593968780585731606659590856603808574610813745830770839872236530958549139791697181733274420467190998478733947641709971748450330522589981371891018606097770863312859801500269880993357913791389357911088029898595862999220581953620784673307775317052135734743818375293087779993734802118047649453389790789507528722892774074424712594787364892440866569684793898194952376783262196189134248419930392863075730896233584263001455150363517662451904841670482235734479729247217991900447344787409633714256426808340280782169583405367040845353947640441971636525018585523372497088163134346766726611847047118453941410609876219193140135869754345515960050193839102423233118272612492064989147046166567227115025542726317815016168262431125301947929554827124028205598184820881751415303667163482221586782646301643263720206987925158140336415083611756517867552224320114073101507769963966691026393804216209357838196222526319501912556872173235244584280958573111254603434563880571381383020164448897182661346739075479071407622026649515889847276201932228368859034754512687216114993317495792621064579481239923607922423353131378636301341794953371923086296192339381838912845339251356795913624698626945855137686144523774868444186993623647139673751607735475595007248384525977745661020959859738891455504357350746768318505850896113558768138987756247109125875257294045722810072677781340016845165470232163660109975334566927713713465525413017899895758555914222077623393246140665640138505657295331720482819800083010613885704200069491069671577761823573902556048071859616755575774295711158245226824173966171261891278130402182883283637585063495467502790710191744547946815665078640387373117431584133037446611054139185549761021594071049033053208048443641150651566082966932638409993522112833072393738359345246889028616237366144935991537926498837190821355225533514771219921594923405838389429268833762458631413895195999186234151822810773815326976392828139630568527315136242120418157826514966548550875667907551062864358512593023375465102732460680994341135754376271093290630587732154370629443399718932381586161003036474043496728117675348105745966685803742401603856345772650396419013406501793755178506642485106531867243258786167079902261188460446959642791973397756447879508903112507990693499351692312998086416692056204695195823449028711390433368566075703378652420388677683925908524979921105103784199737884194695194120397859605070275028192911672763415819018572738044449869971723968465516835950200468279349610826942055160029388809480787721149084097888485478083374816588596656286732717493504277530384753158465455527702378364359476526071346688363394866943075967616470256208075977596608686258324147224033756577785175531131345779278062518326038550522735854987685624190732612955972718486638768693647323687510338665576613642870464301398071749036031134451196752056537638930352486445596172813863457708196786318615213406254515256555892249529950622132759844104295919446702319292955257395407809218314552247794270751589403351168692704902898435999669614254551170906754886994830027888936317559031869548282799241138656628064571500469012981790246954669263117620267277221057074058559061974392082441160827494167565818273358933443571039462812182482829641179475030252564221274013913396188645663279821666880678362948250723262184798980320784651704921808402258342010442076706033478349261454395302728410560513479221386409878460025041868333554266146292783812821842541150643608127369775926090040295532677576419183456330246693386681231175780225054921254293339192174576277189074068377892331544753052725168470780665466590747126803741380515381088977820039137699322741073347212859321339406669451500850668433572599513296181511261063535510814211927455150120877716432074629477250602782846675874357937446949810524354630172788170675037492740573061501166780518584086846635554175479029882120798140369304686217518945220844688678549202619129438255917242013922434525681007898699106985030099601974713405227767233655425474717567738083342311354924096444179190630734697779587999441381453623303016640554056129732923918101442101249910495028365966486831117124504266161298191496896069243641764321385144157020363749167410061326898009660895916484721907001829621905155924476536765660390627645719856025176171998768283196080711668358219398910515130995653808113787893422927089890099628774184386502076348877050618817574164957764815517441878303966322398430140039563663601536820892609558609004629551554632072353611846580976769022259773197202595969194612906391386671235979423263501432851772385851541845346827163227808410210797033870809382909444277689088752172530535565903249264480375360815560574508963849231118934950412524545470848415281230713919006754225294720453540047169431751856210833665018009388695416916617625873098081031562750302809235708744246246892364464985128302526857244355259373367912284212353084340401750207489529534729939802672891856621298130381944316362730911641581281521655220338380357589495272926711527257155454654183512826142570036275892874425483544531814808258505289424575820577987185185391518229915864866687053541700981365214443917618543002379844554320447096436060849186587798533021492463836835608332022425578701523019193668354523708325172994181293803018617547897869146639405293690350921137643557400599044471758182940606897046846065603323225621214074026159573228362042843092823401863131964521972711401864827129629188434203176834478185900225625643503078362186929598678421845238968221682905387324805429036772829938108184399933156293709848952446512984273540561129616411793422128210548145692629231843216362727151664338856309305089752976493747952723822410835775592071735325499637470566736194215973270385580787187173100512850090197421266317123723099619630295923600543412892823667682245647813204813085045810157102915732861864240031289316521475517142492236586775994401293779590720775910564631218422035939584258621418846170544540178309859236971080311018360494309497227487390769441809540501579429057805836334929190673185359967897398820727268563426758097527268454294930627118334141543024981888185325233000249325531654644288045866858359997604259596369315267241067679377183135281212281264237633934665176347604963270100940491479947554851128086098106430260022660971447551306785713289580128695124880599251819006313706998175258103972593882618405160655442039464502002350957037687050526227625725368733261024390278030085907873120260620985827080942893376110637576721040628497102197382083909898453063785868622315356464902678290492573619801795186748363031679250545141780949113730097321804929745256467046352278712191589160399581177503117814939691734261871695634522258328444032782376966740778443880261320646678379511801640922626428810259104375406809200741844921079173646062549928945262185597756752347216635214227078501717092977499250261323601912741295173955437001419025259683225081267999543436601913458573638736051804893165648247780876384264043570843484701783664289297594024263952290037603302335160862993009541985310768432528723755072329318405026482965663317615518885391325392107461263297915379666061682578497933376240837608858882950468086706417104414388532762406504746323767194355431707821950461698126419169607817129459331307054127995113705001198002599062318534151753043945458329061742241782320460891668235879309819841959017269458070943827804311178213467940554805779833238395739213864568661599930258247037492277114729279619881011823353292263158803576727729972186547352023563166821576521335475437665525294295255513748245529634320987189675660480437829972909251843793979482251271697559205880777760908779250039274804419589422232204839083041394775303578792031430428077825537814491720587833579117534229389623651453592380274825906947800429523721955903233468304478031211075233996297166769247896394759614692718031922731410118429366329749847847909927089378480341036960078310308123391133977633488691572964842902488131253960573136299938309644959937530075026032903810819183631242196474957606309711323883077158840291425328727940759273849527337331570211803794619645427953201839318959688348042525619893220282733026880891959853524448430034540318980911964375869195860385295628749087186953313171703802141385474581781492268219440293880822808049510278672304064063468818616619927951478429900195586435209702992507229276558304478748957826247538811375725375881409815129388049378838646567667214720659365077150282711702254802279931127497588478358565247578205188458768598705947740339391220213758886603673352830667039583113572610131391559526768273397300274318491313031337609756683832021660872397920756393554856710832315627139346870223042922664853636199418056378384470670907138907695716913860818422536050186135354907885468908330591169174769911542666669720909209684942817238699414932785820792755312730748696845128936341707579204092119753652235089371493490339189357296525643800832934500255694945169122841822969046231258888956006925325616685098411208763216852861352147025181207352069807726192764577620475761210407624684547323047230702836174572598438591301128137857166857054227064321019736504390346452602778953317235539481861657161898679081415647095083453837291686424941626011923255113842008874896986730241048251806883387511014693098649916351339353624586878661856958460593519137311944416426028809644784831788712072657977679746047648717186484324479630301496562149334363164302139193508532791669870734395619677726458525036665043729878540083096859208892613041238481979125312089397317864414307645277700849576017726599189467972762198682899280597425332708655491316927385663762411198717548378335637830641660689097313306797802888632986852591627022845969692469517306743401290450428678589127451122478009553775066784715783307937552721850521629572168346333609578289839609097327461879435875086916865556251234529690476328244071866217845841409455989642784915570242208293683079142723527337499579309830088923077280027726838986694156768352041028272247655402324509432641726272848257172959055432233254907697475489107721497038243135431895943704348900561697227637704351004543218641301125694848807356692189670153147752697583623908694130998308030206413344588492594657042257184307481985625868583974341510934647430628351695338374012503898662566221668136985195280541620967815027722439637983750857181382643361832132115971495931540398706342471629445962856559691363897265313778891893832415236062190020209639719608766334685199594149511565240113874395402641335338024122377792930701503561073570838478603272959497999611984778325500414018785965406494930866739815442419996063400619934686339792057123485982066072094242777009818323791858753786939308794901455722136221908693102457824901828194763407154838983287263398431657145867613290420864149999184053745173991690724141505824672854775539567106612939034824517114786288615588858025482937382051332856138676274294375115691278557971570707516471649072575526434545911340106743494059941118824940628664453888385690998071463941105950732486439647433944115935025558152956868814900270027840467096315227277461897931228851686034725584083240403865013263445042078884891649628389250047407949137017633552858802493949900329883620523824593048441878622290217436535204450280114583588245665874760195752050616249536653915971410963010394045584372801096825417838757865875629273286338136086550917723866626665135452050130299529735864122825538484893880955564724685913789251439125894043166452630001503984781225036587320479990445607815143355632256024117575821361798622542567610761394993113538384181932778297276733166560581787033914770479242519772308149276888286551962838179151202777227888817722681020988631635752993081406120853390938248892781466059197210344625857009981914164296463060485923489710041973130504087022479331459453562975540287144331584303267022443618913979900226722636881843224545158309410194550067678394588329557978848940450779615896695909671209453312807897307028732429981863008799889865664021887132790345884784912417590743651806115085051747914948703740976278914873722994663819032288751386199923378307645835940509011003977201723330390167113165154670820054527904200613679070296336001000188860791517407682147358085583754672235183047928221957334072019635632054972278410368697854210685555622443368704902732959420098889816769357637201111498654497976497666963611239702504766414430146483765304290165159497151270367206475489788289075129601955017962563376788111690404348856047876474336266842277652464618515459814240900335396943180305373654085462845619940289497262727043375784839429627883594992678441696545827931257734720667561796544503809316707916910224495087327530547087785068349562765773315799676940028296234378400108524555318456632025830941572986923190498321966081709979675482544840331547124971228358047887615108297698828395808271995147510234462661325894284623750142674162992397226246243143529662800414810643568487787878236956736377744222135700546496731345857047875347797201959608510685253150748592250962143215712223569377373572450741703794275381863459877408671025991090675186151898522505389237718397820335674990028075971071642802689131786925530973778061811314451157322213422112272485597683750315790414954995077489926371375851091140562191822469113506971037430761959777026533333256891583982685890774322931304118574509572595492074467827783219433468987225957784907031869615370624568301412989007090012349077167032362866800191611675630561229091300564024885090729727700046077825842947811962137010755867040135528068333606804003380084414787537083921280188469745569782382329833233637478480581392532474593978515518103013548112531182631720662082766687742950537945988098459717075472666389903072417628423672600239735785796108728647754962898806896371805682965060360430246656611121410912573821824842342566704093513472911456614764550158870484077638211968111053194012942598991710390231901252656222256367240226448032497258385956658942593406996856858222999666523550025360239418860796891265093645694943355361528001014031447100791332015050887067019113889911445515506756775315264995405950427952867839516642224050442480755898378090305474460308991827938507394171538373463494046717632085103600749804778031613640266277596114057145420339195344011232793089344672223172852077495506794247238886053906206351820517139341733494881793548909327380771958264690849213158163265029237684210662944885478119331752489134926798079082702479339442043255308000756311344347270227022152823741329618113200014362857881716242727765663783582209012919546158291842076569791490979676412108599057661893287151575508197763865593562589227275552976600208300552919759250552639468027067767800898970385302308514713376802105109957958422047469848537789485504387412215282686527025838227402634720149907947005452048839201622655944576658353930355731099677483663838387347257016386486866367987257326139881201695997442817256649979422797929683658145390464318910189724101781566915338520040263927422154871478029861375057827747450572655712652492203498692240615082522654068264609262157962027940150242321335787725357998496445149544764416812452887151606162848557865398694587409088580885104774729220840280656828483432296591725615686649588311543258071641317650916500074247240285957261498604122670281624467786186233961755091945807624196280499596902704514480394897458133644055128664717022908696369813132425970720303271262195110723047416945273228333164898165198172801157474428617997550293237234800069161408984843601637981881709314397034775385820540875060702667067239994286126119082029848701239758629215223641816419846235738570478570583916344852591234195519993235391706585771430581207161535672574591002071291417710511537754262811374983173836209150392464424839804927354473043809777907349479097562454319518273099795443915018324957282624942953314927678695108859177418303835316640960615220107391660232134351207629210270438745614825313221771309861396663613017757264903282972590485239542880399125562884169124361777947849941207344281974134034612916601368041440301240463666246809663777161067808515806971475102774292312475918810036493459344779840490497116035877968772972211457585230767001083418494218121651708329115380416406469306790256006203255121683366043219302117120997645347544323187541581120766036334870840796318301189368182699999526249724827122788987748715771946307874487765238322007743174897641998604732896516164458071965750785202941439370314919160255638767546624301219958769244786797987724562480508228735125823135488194993077375358236256161144796086084051275282186848897719856015260896877661059742212053688221995900491983956334793403689668447024742415168176816668999901183737321066268039082686783206832283162041594529347723070335770151931198610683143152367362776569426318576505255781465184487759925656506974257127666501265983967450039580767657971614855430540193084406452529715505543277140761357173864902361442014169069315560195208536884218443103579752555674149090744648980681314875225379194006576493633749860847929701539520894830717747385617466116188404503245401593527067722752765455161912274518482840730443017866909651027859076964505619580637431117839288161734001243811483632585682140350338983776228937774865604630661270008581945046637780185205234653342626413888105236077833788727219689465447534218705486654322814664384263395533288660009040008411227409142347039718205015730158976202600382180124966998483262418638376842452653878540067100718326872584702462195480111306487995440983121474716480187567068440552320029698762710316085265348093401481964962988122679799643108717720725831604754691792281030905377816457481283815452326044248239120970966380128903735380748713556901191254936369816077099637154578946599762779871794388282698414773174393256463123031897648376533079594541240571537298266169269780256974295738726161926591386361758263509929702096228002537143676707397710925335064083610273608459753580211693609465541042350040663852699390642308293352121116801485010889337599809758704902556101592726019225812194483873843267683500198260787262151255524622961930730140168581640484098911415696722796742068802824744768741250960304523956879173842333338532250166397887295264963365551620706219849012477548223794153923729691498979219910975407301147489142802935886333790781634309432467798778305759163703817750389898157846828503465720407403838280881485991568423736377510973286788087053967667584722307081264636008525133632919880374929793977913097084796625341323638740613347668770949865656703845350047371782299382782620853693541084637630434527019890970079054684291177745873081462501968164846881927667868571557067278720690389990032721598926110812485492047674246530391920308001282881156524693406580738265637004512569268382407332832654859907781723819547331790055980379180315475052209016047528573522599461256931768919522940154093068619672768318701203060963088709543881356550727291899535703553382604957965732427557801204220449270290912470281187259176428039209182380289932411895029112723616423776604090962228990045450306292887946277643440896386689326312041683151193876879247903926564015765403331032193281586255500316891054949693643822712603755115950994873503508509927305062191796205101237694570266164317132461895305008968190954735039686616828169383870622978577100796808591575960389478785627617134992864090434007960660307070587070768138144250181286305593803143718566337781685795866280205869932381965015107978978101987127933610144406198262442795670719615890387720150589841286439044350234263056945454496589055948842439137936827177851924824057660646884805870930267157469908979489977345746238181086065715424184658659880104612135097726618767540210132749521919747232097389163831333649102288896608737716752895523614535362957239750493209941171839227789863193234538331879031113803393759735963266867559912647134880269022762560256509141735864388059649660294775124752563426698207315876858306531435253415480479636959034182136868916556369796488335701362428450843805991708732515945607735887965700269566413601257562276894297944738412405056928785411353771979480244642672903101728082928077431445325341205235572739520118416901736980453208988318961481738938772002901159494434543236773732847177368526058855073533598833447275803719055004510935321654662410259244835515858636186850194635920759688504166914594602426412408631418547290866520314711878562974066409898649380787589584492721455008499245261607770303388630072202405633706170208472014574948208160974848889744523346211961673372796858013733163690500150258928559392862545928765907197516494142335260172421356323550419539815066273252783896940743044983749313688448752999054883495913809028020327541456458229932584362703224705841578487406995042178185890238026208935564098382529304990191396441932267772052635142574233942823339990310640671309598590156140473211470203034375203819127015221788679247745597661185148866316263584277456064752524925930766632964504056813814226533675814076299026499385303613187328047163238135995684885279645265424183145337953874594686947237422992520558840427621147801318366376463423339141742331049652029940729112685832855003121984522482165437385996699250133641076636136989802479726165000252441503818968985487910368608402851084558798526398318982958607208239496459689804894162337923828948088937534796865213552294194342156636308062861526066555510333584832172807225096086080336628388286275962792900755379350528511347371728651626620178117509005463935666227366998850420834155025572385060276040736833922936076952687038341583302773061056418432737181256811965175949718179332652350873833696468602393787870667661128526394877136035000763553965595553724240601904805354191750667094310364136307061071994685895873461024107740273530755647151105053987029939981489634863503704148647011229281592961417443412482490298225552031447977252936903455621712764092413970475704373819523513179672282233128475605400316221292297303493065681985803250239240071090495890997824849732451153985620832982200791769857794358296722510960733031688200924911929392729436967469278921730743123596222769629314164875686607098161140709701043369047116893222060908094861931531101576448630985269332649745159830070835181907946640857660597752219055430415846078685547226519672105912633951027591626521387984884901962080368209685480209744749261505615603226114910739779591058311937665392501827319836646900733250719112523605447685902764738390632457971277297073296597700245036764544822128149459807332765481064567063975678536695527588245840203609683816771040278427733330977669059259305496853699396215873477577670402343238174898270090895053867959212555239221949583674572956590394445038070044081612435184050253824170987673507826827690318783972588907683793971193996799596221975573908357341808517617137768523902018048644029158219067744607329925516815782874326635736043655106203877690713452595776404980139995235344450735345460165940758636511071120125376461073059117406546652930303697528050586714821525942156284468381013541419277289557975602801313762024642920206003953756562303473075836342499305053730210900372613652651767466344288320242065909208739486007902379227326532030765646922666336585949897941669547963421886275685050475394559320743972081746328896355587451908769929347393284395512609082887288624054090057691834536966568824962127276731524375998767358536409603429304364078595927501762403647980061836434563947224900146181546333042041872159346456825479001681497762489400013422476044159515803247016844632859657826362496395459660449312080738762661047405280421962139492281516277756502583080718080074170889326016627030335110208290937166423463621074457045523960060738646486834529027210614099999953050287836219358961753794172787501456752695846120107760777898638045967040028666190818245379258413273328369312999886155179314586191909895981820104671852244367064500043007988825705320183356179447417498977829649313648009845650113161408540084577336381012599047130007965518084173153982235386401488981536664204959698345932672993862740086199249345419435477837984612058126070043197952205174083537154303192443771762719622238009225794526648230344632813461809364858567274990944565299616671637608398258646410396498113597528543511137180674461719754633282001947645765216074111289484001092384139391818185531395723291006656734423773672534624012466497048751930443478732636723704949143772315830978224681943069074449127105868302692742802692378361659219189286626303952110400827448839393289632154475185884557031894088357503177957231894745156089133131700753671576380236662295593012650936155311429797771970468196967449623426097377496190954309059899564287985244743976046034024048315531357022344160955078136241968471678367530642839793123506899138459248392541911342862633992947590200935591540323362745950588743256971359750903698342387690254880913627019816045468285480854390017659244998788968022252702187225309621517546647106945458864804581941943362490446553507793458845829896296502974195601459824278841660259148246236796835846927221976545563837460284176444658665600186865660424975519866294295995408061220072384931042034917972405685358708200983062069202592944867909205123212713212770001064832836478941694513333658577348191075677421763277237555739981204331611607560559275134658969262537265894523501182100671993130640253650687639687728700889048112539579554215009168444308215380356509414118859221870995261162235638139666556997496551487345227258093544566442492544418754913541764876577613834583909490742452608328113931781965100372960340871351225626063464839255811410196477557582476122996090493612479434789436580126125747011002465834308010438625367790664159441512936382668931504532989380091712486759207748692131632453442063799098994273741401664742942120228633581352519990267110767362479131385841650148925763388986353532548207661194403617099909276953993589375728757466797080215832426154213101825039166066665339139045630809598676079504980939599461108900337038207731711689284214162499634943093502799514324313929022972101550517526716499580214539459573932751677572211537437461569304172978543066047157322290455564186062063912214021648539664259324035603105331360739281276986145949093108834099790706012718661389183968074306569366089834046683410438605109725594682830151675788782620531130381657733034224283835096487334324485268027201332065193050143983822151468718432766415510593467086051824155292612843082025499346373531264710946550063938175301998353874466657489327393257071826555053212747178837638405728639674343542302970695371162285614840098513956939190620954864884278785014879475799700143211697783980290991013594936267262828118673461589187195338439863124043625014345254743950905417105478943189057736217860949930198102853693026717709788176130913223314021204795251772935952412053475514492900282252834020726362689250597662913506737484176815462114886810992917994151578860241221252441331089567123925719870528634871268337772338289354176002306228852898811748373190793510049152363656173954447804664184244425406834819362964683843403453938598352266653256664456030208026950871459288573619102592285826845210593860618695017874837345381349958329390302431642381999832519747545521048303220511126255692179126013920763419088918766762518641163051231222554832779308724856819297350618114483376489725557592687293512073556150580870873548575802087721959236156527129852302416281157807438311649178642922321524839975703949457057863538353735372339572815432915884108821465227942601492416759642945108607589028188366170153134508895079125427607959209352259939617611888804703415864691279557644980778449419326091473478809355907623332777905954397699156367861779103706992603396674266722782076982353771705230455889034753683418505970801702199562865684450895104370488161099677241771055400912125460965069877341891928724758212998690886423437351651248196049846359281109597872717926013383863470456466233982134202276909075967664674137340193600381243959069707389792127049344663514367617427820176097247201361337524976129936192297683786817062366280953456312119521667415838238924023420953460732842878112269148636604955014884004280310395432422558284040246372765719435086190705629413155720786950614586861275740209926651629678843522674881111231049994162720553108352969871408564402490646248849519753957998214740321560575934602904173226441980176711372990793644111789300414983742971581341008764644431612252078667492517196761952733914979275065630013911392611697614928931307665293637510181354400570263815882632341035132112584543018738919624647600236677386746327645151738361584915758660961087586039843432692266027594907595064107164520441401345247744292652741158243089341006797466602646936685194496238528701728970096271386714549968490837757561202569006959464650043018313090478773957207599225220173720884556181292905987042370391905369105296691104235575430768608470597052970382873623959422175072590279663716085242466456639603932906433359102880267782755457140419983243362680524894553649971974809540934164538630405923719211021997533919324198938731023992987253944221914866479408237708606633982239668012568388564340201868940447137634286505862998640097450612769464716927368232309473798949193590795948359316460008659405352905275843628964715677163370648059910024153278906861707981553245293433340649900642453045100906602163834109292207717710145131943263035235747734037094074081468416814299229183956560786223495168419061837293480533097532872878191500043234403029579214807045334916989947991113578526975015331701679572574981021393819657999511101552497129519967640829304622440797505558057022936235225333352848535000783141678676198590117127262904325045321994116150807395497266749838630281612158886038560295251039634808503509271299666416644577122073787292505107272267253376531040923409485059395300461950061656988798554676510177499214393049731740063882300630660891858544149937471348970941302398295239506782043724834513593243696762030774424145606336993636204619899313666749301437954334527071931787248709376265216625709092025811917813563367135845558450524464181910341940142533849745636777498139741512909675900938975673485916539713530942204928657109729215983261201706696455135330377345213128907755118276349548995942415192105708390142723977924716521534668823824137263857797413566690150712167104591217214411412732343731378190622715444349853379709831710203290375930148087292293844737314115799827610160766727862453345209138849180238466130987705218060835535486946483476565653267140338266898540063612431192112465534591963259718653839250332912033455341555095938328704632679961347399387216139056943489285967698361597259254305009991553257488088379558956071260530143242340410575037108206299153076201161787676669726417746236650127990311966196404220594247872399855608322571151510227950450974843356443885809657824131851323050546716931017819914806636727231507128674157265687273618867117412855686501294951857664323552566215763361303732015596268689781085774004754429099620510692108001495233408087959721141553965082680602348748877146653806251378319645286237544477033428128732139887005639674698645741708294267870839272548330811994333433029080117149090692300187345566910234191518968586744474369961256154724390618064836602802703947114636134284867282630071288633132383450382464107540574512024506111389178493707304713389004796881339690182093095213221294541131612520247299186051891970181408300741114087081096832444082704711115994730949342102230163914042894753102401642187600154601265341095798624179636028876637173363565753375911796579024793556549259193639153638891520002465117511841987668290407624273662996603577851835698337706490388222827647078348777979582668193215907403703943252102634667536584605599133541637756183663826099722976480715605145928226413199854512968002438858210024527045036474789638787759674386822728059813119618930355558337712277440783317109890786396877016738547061517316921661013916615400441023377313392864560284691177610599939079228284078879360012822428880818434585375880716569372266229915723085312521201161399960205148166860175849453001288294350885288768731880217090732211724542938408917101676002062772628512901820421038128626553730504143297373929967201264520036675387949553332296199996794292506646054952278883951706918390843979521115342811336858747337725881324210988846183422331761456192730317478112952405959645572076580581558283488664679000509118661268249041133060948961110387864501672571893668689209526229414281416503397352978622378874180861605897247038110741644838343317264354434262963522586471213353357972003207692892153737768313861528510884849696513150081113339517338884802934430305765828037614046835575937488658402646410673196524785815907852736614531485486318970297318013430065448617702545867666092428734376533710570376195072908235708972908075302769199127519030448802865973764326179598348165495656589441550274073307530868813188787869745808792699520055553710600935279640950620118453471929277911728874660661907459639636195627990298521522667656723989925852367614137906082346655457367800945626086778914855904795139784809361196668959152313232685269478072096010363759147807401079792228968172586515281824084773850568839688716643399407017693548111501212618450221796359807166240196892704289124369076341170794919202235304267073350926300924021967261445085908904816212602892855177492678188944464591069902319263077784340270692805802315298882250867450113052147095245037083182363042214598196629009861236575700923948620481326112477382031339167726391751774501135534036520489867996507445661503480803744688743125455299033630032065821072991619163429181777176583771708602100558333671566155833174573855750785907856824638311268608972397707546808646774763363728206164591465099724081565193799729257514888189359976935417455537677522192376671821698833797617421842873139052660994543467118880557180352712554483725935408391414207076100702170012594142135020515101219343258869053134512825512470806542230050293517921152612046077117250592730457872992723970431244995136853829220875805448118670160074829577671185857401136402107622318308668082996711095033640366065497880942396405692631843852557699938448720518817459984206351151280141659197152047796224849528023989190005492445617284816915139178680008402851583849210307396740937187615204132695646233332540274366242482981155340659728934387411709210554836337908098901065084727991561990556740731279070181539531015650305281716512616301611084297081112509311089403233990729892094246296315564455114448389078653499474660455197920330466639042500411498718933343405917359402834195945328386052110450485525948405394253908932563558616679053355420082587091083377820125727429356441459833031470355047410850557349342913905222914078051145686497723948964554313790417563525261577086828066517766759961733192992845584577820041495573867029023494754677687047199328171304488343579664053211990034665760462037866189314381775517128113503060728133591511366617673723865867369090162886083170334048763422908017274498607410904224487073392887597138188181011767491330539485831602889675439701271688241412480822620259602207966321207314174316697249341146700334683793259669603297146102032739368864764387604358953941516133873606947427105550332723969711871486210187236342217875148974659145658809195559497648526243927964129061612994534747450643193951088133370344753284987057622912809351795080060992160686692117606305239052257034648494592117519152303398978199923112318748076748120921382639789255851356320893957338879570666066576914190988978747031871107765019752705840920025802483213671910319398999040409061436860402614174995095697461030394356736748537045482271865360998656137264592759461513312283161495632716103401059800177447761323178482470400591239374952664580978286602189472600276949445192884777602500800880940932432859504458317267184868114272066766942957997861555899356793278901863895400009622844894108879052558025917882709765173731054967025911256102391751995021559319240571852844588724691268678077164568176469608908480627215504162979022776784152138967900523275035853340888040188848330568329440702675480291755624450519019796332738894005514422881715280699431376706830764623993592718629176704865738427715705779553635236733741148412038472470469500950427361326961670719238422469726193630366586042443235755878244392322476686979114922550665006753651582008953314774488636622699048978494235510172559057098320151109782656002319132581398415507827860416971538920219487435983620282088387274340503695964061221885285892447153258345392952051950403712263473111581632602045427973232673766889574870326154681426153285230235609432754569914629689715063299154906912740238727912630472473495807173343192478118261873586293282412835297860873563643762783633632360221367389155251427057255268487006751303004471654887128005734509559312259523343603873616468080177606616973747498468435619870551280780194955877060884633482126587278236377455701768494934332259757650061474355118818918881565950253617384740837351636959702722686058595765901182167152249910385961512711854076276905108195128312460107663489450161617980256307091759051587541084797341176367772818292054521241163258681879840599947821832941047698377550238048435187951205566071962762183260928322403977350447406867091014791857331648064964544789603923916956082778650379173709152531816681793129030358911362684423524752523386426839153889858480093905826705889067042655544525628991161110856848608216500448776834119373095078753749212348097189496006844874155856773006983464569468688712671540981115406339351336243579319201046956357010239533761551992466286703574248527872232241181943601639584774519931032545207223169715110594461935806764096590015505831628287232374158688004456705503667568394081610085849930091727622418052429154782621472220267972215898396260575501163241230449731627587251955870583157762283861834664422172384446272061981607059181436439245565412683691204352065633739624357024789327237485635442724621705612838579879281554120831287060221653318621534543803708250380721908715803361872291147403631367764978260450954707171547750069366518404802363775805460045699491940390579663064011664369123910631769390801340969215664978441574283504743105024655473506668047388564102612821481223605961026579157902519763847293060635192164283051567269942583334818646762031326468704117698222851601050346109848356545740488698668043929753232736191859266603220683271349346333918164886894743330584537574772351805962061820661389695616350672720461950580386654891702533846912439011940021024115896909317536925346726795174400835980842396637766369647795112534619005203807783002390065743640859499003388008721471636289066832396224358765524617861498787548457647772628566131193178564023784468235060111889089753643956626956397478771517096840651780009825384749684904016704693652059643607108317872244209969644117551054854175867595159160420702668662779946869653259615259108516660824996618236747448082600931805744332301700875912155340860820766545809337204748734198052346824734708192930439263459492477602931551789260542655575770783121182965125927177999660501572635719021183886640511332667805133131133681673404004233875277660291254829012081323699627189778995041550995955973860475947544710438556756747011807334085942289392317558299152176023538482029729902238495303322036733787900420886051947352151980098023167389196354583159088692778855439428177209622272352445176227028694470314085079642195522440302751447066411939974525804759668964073032994132721137514867595726363913149132630035726633756237310242864688187159450200222802552941958437070074251852607577557052265434397972699955783898145957165918582017517913743367782776396127443409922949535216624329816507981736217682815091545702034906004065010220686623413977995066621368459142790708888168631119885821600345496979804303884216676141791810017459046701094519161759180642658453820562375634616334284054075726229031339223957199331256285373394799400937970560493796846184721349429169532854572230633435094574873596426878167659070504273568081953809718009631582572527041444876337227938566616811628031373444566525191076494275867170693998111024385401622318880750955182786771592576606223520564506530408857720223052142912331196142084403977286830350371594744626262235615315466724703269309902695523353833814325379972285497529229927428780602416056442866433658902227919951210176906878275458273453566414032614057374326830355109144186398944851363151673770257639333853412083792206004638720831382068998224861550122950080599485478939151007317008212460605540184713428360865790864958237631571109296968819877752386627301136389625110633553728633444615473425013656393796697107281779994072290890015323621441227310294995483759382301233674318362578222325332014558733077413208076407901658612188606522251300471820784080200256168585454567469278507546189190507980799640972079075808687613250932277842300109027385856574406802263737029014551516922830409173344148766098081051074825961525596905239918359929842656511901733862466866843784545392053304320317318738808654793644599038998840099431505337464913241751121157553376217123355187666337328576253560476257500505105393641208801947510535803999115061516476316197768143458346333319458517914438063360860986295184615208029541308996414553967990127963514861695793701274037369104590271496965467432269005113472781602037759768904381795371346568934971703331977930497503227140285015874874620596214447022910271809546169202424727179766583257744681672347532376160760315487680969842816086996427914641439017067288459767242925175478264711608319650620723631631550467107826496765303646698691044634051654834550409050954458895100317325011761952996906558305727571121172374061284053261473720845401086510998686347338005573010140275859418421162170118684618773338184698820055902853385221960556120906081425109968031254304329601674189312241249900693889757360584974334775924135870359277790609347176975637552170442617375543071040611435069577302915436273850058189223907458574631122848002545478743923584834080397898714635462490251760236454349766429413615108876134392628442241330338601430072233429505480093063853115685729955295395071494542581638323229961260510928315151748857616948194120314571765742447192432674105049270627775295554997902639441226736619147513363918760527473143740782501694563554432609127943607817756870587896053048679753325500672779548990812190329098140253714818946927568398101808833649496586178142201028603575052978070728781245599069711420104346663168959758445084831498686723294135182846570054863359907540804995461777754594761551539826217975645184995115631462351011245491290602795621044722614662847845423051647408982289513333003059896720219658616537039092254180947672323382885956477133284271720103784524929194159417153517641939407213427789612259185656066214745119720062012008137516550677652203499640553144114242173378963566829819250399214999476613959661450423448111634313884939885386203217469591885562539246277412188642198115137653854260790439234599161311370780102222298733772453404337141836751799824690021880518484278438708930723867404232133724278559315052927334666976891868496793852842507955189211838507243245378475200777283432128156202148643360639592200798258704365958589342097658974140066346108886666634262766354472018089223175879534809410802621230848810714181859398241800760018783844523119720371715267486762708401535840345122552235585213384765688120342711664809366100584932532884400885408266999588714795845447817004625244094682543619844973488508872118442116104916246963695926470333226498356222704675955088757900339762789114850071822173044877676842814445797400598321401019187095411358198070592322993758818358649368789399338765091414868850074148915127112291099986811791258494222697750540272259555754360470596720633025433471920322610722572065468023941445458865258916003074448323605072509972262331849506304184495338864709092190696995119184648122209892584415843536505165733310296667890341763558873350698609988887413467649305041102588388986698137634761626136569120318628827161218406189169717171868025376402516604226799220400793764159143757196206805045650832217284533284743268473315084947900053335920877225610004542396370249570268521914035304583371942483142553985346355876462756717594579052707416264570695325347521890695157143653985297623675140652765989169647897407884182683455126568363771638274712853534791237223614662547451718060661213954638661288944474884591448111651105868618386770379973587826196846168729449049027361818768833905115596317881390173988778773102544008129890051695250806920660496809318515271913358771801775658294055140464302928678257723403218634246029999850730725062008861960447483706053565876042225905279687691040004931527506095515366728912262934085616584325959857859123304563150248864525132832501793209222280859567043508764816396779650511938199136439822386321731444354579822675785807435141897608984778232283572038081279516722296446605321385553559577623048824093789159126489690625784874362043565942191796987841948720891589037798629064073899358846548957758495429167576982595007709225372813320878414089285148022800886360486546122955416875015432997943038970384273764139338394495448667125886894253354604724977038077115315956160635705651536024311399690098254917652154728293240219356176312451514816747880465967334535528758468345300529954294846914130732125244117240587901682724709587392717839242151866774138709590181366224661771835491240520944049437886570047814905997341733328476396305431201740584050307506396212042306446184148088185473627556339191780102849526154573092444687221377776055896672613012246686706375527666080051711729009008208276369037536964126839074317447600416887472245792369221823377788569131822051753665906339553082053240805708333694147416970017309911020605149275956227420939972547370736159386863945724287650092554348886380370262429355743322244318596415544906913899787245478272895437702093891139995771548459034277122290319906537379626594297065825240316213876628024895851164490159691227739806380764277117199896021004304415167864841377853981795130729917526775677487897659915434236323013434686744898027046847454523564370069238240024959461723790455893457145535386865584148469628202881875442075065612696421793022944217828532792638815218146484990334336608300159131357199612440120984005104784111396109029030856810271243926109960322435317152477116649977731398217644005045496437486159952727932745263689264963155811765597669561156727601632610110722525725815533096001968656404476531905848457091895307652474403589525647079426383940826094001538582704621794225097874069895341902249659729979270725010255597395843415877714436075827044822471040867540997454468824232708293167970623067666202061483374095586777866054660485751687589612837632615199485255972643838850383021591495194384170025855607478989891491554283896323130355653137657528261229206002598905472488413504005737543291587935742783463877760911501051432226519221574818765639650102224920899686945176532828850678315072673592855623166766899232654888402467756566965146619088035040339263217732428897002718459107597017774733305214674478135165152817479553889354947639224673150433647833137436005628925349834510985192206844796684220597260880480094270265177947368280053005679813476093209827209992699724391790376898220068020781475583840916119098661528346002479286442400833515241843854873381437320035931647423526449705815346660914545296613497013168645312057268669179565293661188382521126130560469219237671752438679164827784327993526212837419189607506915010401072067190498839596144248739956375669692761444289831481425228044141136600496955240940055523020006196234318554924256728581366722980751664217497946469158159982284403238869274210222860858003842387932241867054371856170563544856921337102535949213857699858386635874160389954910748578906617513509776079882758139684233328880094761870279595862118168155087964645819163790797137747787336384946749090135651319425336617689632408277782687957975630582322964151442911749978527390440712206733870487152339198195000631056772445922647336620232708927891141433186276609598966177345467130425573391428713759416977582730823743518374509420247269194168137398285496077591573094474327398778422288560556886766298964933806266768325249676833117796382753094082606864145854600531349392712982461679573244882746438232300161819689906329041376965491811967823549553094651668495740316908237648341806235079720932951529844777317741467586019866209093694542992853705520729556159837230697947658754202043075542255961879238434534681504662075757331713839916209262264257765526364175907561653443231628499732160262979660559990851740295872442900998059354970263352736730710703974874372782723669190260955106447497872489925585203251382299833730920623803365456823006195458367855079492799177930846358649449441679901608064870040250175077342656482659612285648181758652720182033016102350818766476847641616611953624671777500538829288809151351764930934922574132322383629854805392269342732851833544779780347005607248598321507345699474307027270150863277720205027507722056129661322328298396205218262155161958265396701299624674329221130512748115142493439252754692772729130926254265897018964076418323666307146213143759087675961873283217133227909472940386049254712576776803271956569685744031321827542476732638150583643685442830936546267098438660317855217546595397910490825108506602571397936952491641387334363660129646972033783297626523061673953499381005422385971548761092599826773301506187929811898919476551360063737936948181349963418212415717798269586542609403199457739610553439652879684240360093898728848035950793718531725612609969163311287876092415864701970377943810627869602623301748007950010336633517308887421462004591574303064819112493706044783282257768399994937958320131577416089416899749803463799811790049906830480393962709431217030720205249329462058747343257637340924082142377263331396213105159159240850174911364896187920882945287204346747101273907619440509188988082223121770570589006421697121297332884455380851214883364715602510220796641624816623265084723784101383663978339521405116716207182786229423229832636587927039429676989111189512603613639307379097262311241941277591067099253647758595005484379918800818954041948623302186354354185215168041238961398158731078435491510032029850121376847429639318789474822440727347976787678454851399698712413884825257466522476962564186318114294125171504200145889518298696132552874393013358670277801267185685582287037334874773335249192229301703302680163399305158926720231460291768564203732210649017101594241098258640163229448542685955170557800229817237924761424993610034702268718986250410352938663964131184102026575688113903219827495887869502174419269323779724833746700940941681015141733143282855447003030378753056858193744972168416013092930172695039026152669532836573704608860004714544346683848684856873019218992861462855240313233287032146440993669534558769283642706018988712078305422097471615675397052359295785563373250857383153292942903004564363128409348355276944136885852628044321093489095467415992074353385125019859528471504529022585952206470655807940236086720091379193873262693374318180453828068967103711006230646935190462364290651706308919620042373155412391639605079977560310642252270356930015444012723231477432752246535158600779485450372307791360725192770672516758345167181592684986173703946118191037516814548221916279548751737901628806699567578722277610908518567545896465072859577633566125346776186855585708875724686208078844375415326206457618572046201376121637684410633380227929608926288083052361161279161453406822476805682984192705249070857285583463561775926088468456640632577318511764180728028796059099278270029976207442758286376097282574877032892772464354731349372906096820676977334656100641411910266408018923595577578271190166761044326871860671849865805756097597062893896987239754770145200155522965136135834760710332153534133843539484931410328540239134481281879554447153262479133867141341632764462733700778194988223668903983776165829461215815279967639270532315910731541977980429385585564084840403709842856122374396464506320871793613885686324956369282439080847204028998424075386380134656680010205856420497183907336884544190467859971766695943785516986998047165851238911769209392420857815033294872999495408024508976585606971780849829498739704448880741174810783243828284573227253610531226864536273372129708615049717057783087716480321819850900080874508900643183055925159619324582446610163404767101404375357300118785421868067531901091467369689627911502517919728977428620692740976572298590381361287834917115867926511691455794137912892604959360529916919271236906280109660283723899854361653679222686590280955080757633382494430365591027887197516180880769852361795984555533129128190168323824755380623856429734393997517208758735270877098106670412298373870114640881608191290819047163350512923051246072681771952343403772570077314033308898579664354432091999847920748917446196988468157695305618873801008407895082411224922669528825072923167403567079983467886103721512062360190723475410714377403282605068781820900885376105152527749992920994624576936290805183590411899464821011440041847222377896008708109801104831842880489565853057858801613525366787927327548531004466457312312170084518029161304652198272813985010013184619245238475419473638399013910382354250873023924575548243219242829870371037625063807378296238305048307179026522300862561086807900265028363493184346891226210075464363774181168711651685317757870862243748327843243446976054385474058390333197211661770437718709340730604016859421934665140090385759061674401349799343933021391979575427336887597007009709990298411230660176380021565704885381425433145232610847100001610782287540738603695242764579397349957843400682050818814216050932932552118364986392030701096810966351598565594567013430455394081472872944361343092314272485391409172721748266741408306812243345815484930141985619141650628085319305238512581698915169230778291256958591394956216937708154380224250292694858827371562084122854106338974846158356452375304987860382955096238516944176615813537554010145310989867040365153209619425310329101436173250509199284466796177607840987408945931565564793543925596810953749086476965746825405960369281211698442676700350556334787253610808779862124129943767249393870107490942965399306772674815725409310404593473645972097800766721950196935622856730103253772503825938083007317740394273530568959049232940231266576865094687369325380574179159766925725243048956030329105507629125544511835843376584324022626958416639562911031411954654885031676086813058862390388868733373436543145339025041474422863067212940766335096527192109003057828564960277701525012246114859349090134681749528136317967556974561502768635463197007457242330424713587379116460913103347610211748973565795442072791968794437453554485580107922044020258253325459304436941110444730377654662696147405999556690339943546402319853624698079611354103306795891881267664906391180879371534903020685574242021863427360695684821756515018053345155346188306467210028475403282274603049525311015458258017088701461411444642127027786151788920048741939388710752542737593629951647271100326315702486057635897156215596080896123073648711814452533349454163873559711256619811955110226991469814212171453033260411919056996285268809076887249023266841863849220563476217066866984505284335933371217225962675025298431483152330272648431134420893096644204619862704491258988748492255205663679266699905193461432486221884050321952054308829863900591939142398091872829885649675329907834698734204593326716023268760115254916683614708963841489184992372123124822067875569860329840918046210662380772673941278985029844356485799414450456338955939786257761727909249978346238871812542943293529175566521546274748755180369834955406884081615340599977372122536717893665044858155961337774503253453592945526987703508014367837939353208806358605602567924386644919240449469187334053864675282333917388392416730018206755646500137747612881870709119548521960402870675787624144377525182184171903540423943775592324909808559026838470977416512503144909943400086404624589572357663910261703072943323807533153658924598280337086535714789493986523193339465805168558025982438577201214833704186677105759418764626383328796306826276963392411344960373790123965007595222755682352856541446795885785419468841219498113668667249728021662985882278423231850564966080840735727377748168928019322348345435906999855721924221311054124459663441801069118061302606120228789587985606685532339104809407844520133464434162883686358147381015374231843334818874218200138064632620793586978382164015023669515188031293318707546762812386938429403998948090018451282513623212902587001975835246218627388757055426857114931277235891076356583255636313327296866598093948040281136787464055358928969221961552223593554104926865460381235782415729979626497883790607938589744065248731387935740244566663793254158054719747085552560150076744252034805117674206561820641447878312882073485160359260436585805471971581557140450647823231565201780633906801565761514875956135049474397362914237778841080644688408081279320565682054737117864239880132674391400898724921765687783939480021762557179804957306937971414349524144486837016040187120738790509850182925233164165309826319672708544454908100676693816122495502748164320857913371884318955420961447340064938598229736421754284675329041302329589022569822205949414227041727990997450484360578099373105147840026795316628877147943430733636007591045786572254225428662230947746168340414422591408859389787958926726087786138856545272395165898772472090371264834340614108595833005795290083227155355901888085727199753595025716901451903765570070672048150932559416248552839619555355107580478596400436520917779940120890890252053804777179405509259484376113152928934499138758417242042746136629481475400307249967900632487300915732082426042012476579927567663087984882418953489600060308590631983279355933956080627876828643769694970380301947690229967006167292708005953678974181723575565161469264332037838260809155435304833321226761904972696306289146472423603189217313223992749712879250065617355921152084950618850729578343024989545723632724790310277901783876399370564652621005023122694535692921152884466586897560422975591788492315709540818059685282120845434625373863904068555371299790459073354134052938280239158989511253964929720835054395459376730288769757348834041113370738529581576666660014012656981784199358265942193135603771131540031703010873857611355794193371079927898513649443567264048086399226224960970128588451677751753818541320369503118955792572777882686792705655676815576827594936519001123016056164624584851506841784759924495663256220376057961191676200374916403267961919743972677131362860071859576548314163633817536760463183480790735414783851918251705075597932400235978876900710545085600660969999088089687033745226766951765575310663085998585953121044803418009050775936754393958965341054554164980574211302685182630622735165257075098275124889449268127154591620349508016316246485690680330160323272507619168680885145341808658744343641614589877475003179471815886806830123954581304922588771998333398562069236262937656915187785268237304015961191312669924355242464579769420550984772915579218227646329443067669844329100930850402091549907023234832322992578769351064286439054644564016672207393431603488363200164253855309866724986109885466754306812443080796768182277047504633154053281314345726085076923463951387079702592005024063742170829526073926579631887811630557997447137013793449110536613120397849493286893786636747527038967089495033722109164432851633822374474196332700315644455676882061082499693594770444472149391533980773337572042727142509942530395836446674329643952062276770833815961888865475521138610734235007923886113010056625703023056494134152275356429348506252282683278103589403402343615908021580861113166727785720994903760941511263910466572618071712843873948926185049341309269718820449983633759996251205823255357038110495675593844028957648972198041627051772697826049449917151600580645380896303793923936886116994345625619754688153079822359311292524609816104585722056561217707803652314792226903027526081212499345125058606830233776642216986115705310275600824622231406911483864308823472689889064324996911546257028521986009546096504435960915637674766082673139216028442855449036942225873667826138722299414308676383910633396586951962001602751567693955492901258847522985988132985331561765075626851687002214858474362862885126295063200755838681615120216736659529555342415150187438210383782977270323803510474503513174235358360337468503126116821623232838405075108620217632319101483162802649653260814066438837601170065042053184492491474365974419001783020147364394031491269335079325587462067809020107730801234205609389029341377659442227845706147675088512560100305061116780947578719330677463993902769447957036902777960166144857599476078185960004769330838121417376994794024987995599820699480177237195478431867792145196687830997620508550028328441896198765594345753032157803905470666696257107269030135450169522492362950000326904266836623404698942595300088212520398670928989699466084359872954268238961894799273902677386589150653649345169562215685135824609272894147934465677730316563931837252814572581358612325604647235894633559605540254538852552087661268466554681870850065918105766218870562308526609460244139601579004168810553761740730009448154854110358267364437439315373693419203431199859919110834901945554742228489111639055495764102365700467604225453425788643763013028255199330572979748053409338133599830454667525481377381141526158404693109197076666828032538568182741469454177053285836446489769492366935777063860397213335905410678093574040226175750990530936561275477413036390277305492229255561888657548264319492228958452192134750189465674095472166090026580474642743751369247340892119182766919346346318704852553026658843578876274230359655546427195825940410516860677842016927436516082454232746658050482307523475998890110221511542404943225982730508259468768879828491167154767346196752799613737525928466541546940307235686040903320584277944016679960340800804425467786867288025950954381318635433271110976737344024436016607312916494609612868582537685146650836109696827393510059374725259802019681472785897075014763326190937400384178040554991379260078348627005008451176208665852069175519166315560144959160716831811873122525561840236261142773794569722824427587815547706085367593174863896305613756285810811579445977599982448513561264955533117446444070621627926859551364763191106381989246406377253888657280471406577870233278718574534525853503594023995108184329400280877058014939016109399698656745780937030900652719912041946007199115879379485500669212426897191317441902386491304193591383252814938391962046769278331134466065998236460337264657643443739199735117973309050066732368226415342989945850140021928839439383335732367844476524022073520372010592999499552162808207556220940753797242629057058586602019045076058340210593532953501583000467377310491361079667297443604517645125187016684211055619145848307030147375524907398079252406433705318916080124737724400839287927604911188223439641414004173077639999597470972539523627992584631174190007310712643877514937166240780341176392515169502668536926640564318580951282096728800448515394686065597101994993367315225185023151334489053383952877378016454296128388972490659301968819243278348817123231085605928943482428973462831620881450907734991431495653905969848250744546159005434038554487530806309159521399518024251348226721978770104611188817762580666847150559041243721085834187702858267142683176215964509078106872676111873242045868423056587972880972206432293336959403207565959783692414498066125331976749888467091867338857757587477600518340052686122353742131107604297641368789137419097492763728963120204768405567598239266661766557811083474026000751465719780257596059714208759634398466270430613708707552801076356411325867546202687273807947713514419781174636616001756207506998144127192984717363056881725878958959857968271629067412198480808273388493505215028321164659011918076263234296447838624857683688411324018757404320126871489597519255149542830067485150700786239891001281349932701326333797147745232035553086627845656477455869609645061155458407827760791826754989735517062423045708462529731409150920311554398817142684533461637619319964067633658152772748307780198797906542014398415184668668318016817095302802159112703335990919112270017583421862761836734948345865510528725775222350442680772950076608865150680897505998750129679641591379295135985184663683618268644924602576872375469607079045438651798444681372109681682798190054218323297891992375426685639816572286306189855793312875264646039805237354441614315711079092826138361997218939518362724126925053216968874974984899734751811945486039045787728706104471910318045389247936954887852372160347724756052955555871430194076620831116826797142747610826256522908889075814826601610373360177634336985871059247329390793460333890025162086531808386977758122087815396078599784534439398024548858755128511229585542699165867953034872653508157983538057926495062431028943142985039398077284731408093168688002126710373213394256925501731989582528757709176546709873604917856567399669227468682198177642065469060281682798912486145093095131550408030915199443630937191176420451825714148485040253715524240591873553902568037783062686445791075883816535049767059253185648238239349310356037642178775729144486758721669097685348388600558928940976532389672653425713489445886731538708840272902538747160708371276188534911784003097520110231440092887495587927640533622881796570584294120956165977611660214361990232783020825115302739637094463707690941071990290866241898332008836400325387199544384510805743566080362546662467986921765884852859748825125778797195531538554143175271469273872547944367119614005861612383088955167264023950954585636558366357674444083139286566173085353441704324170013367716659175261891966030777795702644617313297747637808734065138741861922603887498900807456126765625362453456814598284354612864608571362505378854462140801225435033136192416570700236611960060225280333301991792593047020305779942806749005265711070426043612039607405420698072604684184993040851236117881684504460650566290611989353063849115088629682446656296979004034022213791593710311227073001145900193801714991835248810437487449909597620586988845071024281125679382354454330769120468444723740901785660202055719644501751977913226640110189299060255862192832886459947103995193538074441879117993068420213978821364507551951870454729261734392171308336922225094366600577224737783622711674510274143436638671260158587629269079329827510823146653092597335309529205058577462439245747192555473225025428465184880756868548790959039296292441952278835028397900530329826033507129154239291349712733981858849620262436683191693324036273586468932958545365132116549785585190823867047209561151843163197343023181853882058014985945895470474960582290316743380905794747387786182069314519742404476570273378715861508454198275717304305784154135866620433139279284452945891490479311645703555531252338243947761589168601403608302744315309770037408005993286441983340594930182346958243242506588740232324255989933828920820905236544554161925290871769695614076049054294051762283188402149077609335819818028006743341106561975100051438578915762217320972958354028064867612603602952640661649365568546730218359749097074193102379917257851852353912766490250318147832953353535704975441477324895164764941447452802681287556012070493361516809788569287871507319175803159150157045597556598437676716590352674562197357596672342189511508103650750018737489463055553259958894423642904757385430852245610034721953542442008196386035325453115556950959336911305079601278269788565118866760912607139949997271826335703542350276227475812486790575955830349916786177454785356454126503320974502271922638498798064185145099187490316877200822027599651915555539590832745295966750880308657666140943915258875870886823999279871226577759761897559542005716660535022066372054675112453241265475874343026296388110740344806266800887416072604688501717967984463715560543710608630101503539914317825264946428794915766847932838158859401868034264429158037122281528516967568495072823776744233096412476498284112489082122575659166561411341746451993131542135220023672207978769301591151125068702250766203971270544800859143901428135223719776165946993386787479168024938764351246900834926992788700351027201340214371003199173020921787834058372260164920288586719726177538675728273062947219295551478629646637944856869023207998947187248061578938591877762918104808029106953965828694658126488776552056421720881461121316051350592393596881469340182125242078594912352819823837932977192963926998702469121061843872269741609330632367202482783061714087563644097072879821272330778972593487962019142680561991259037224032686522407960928268827404316727328887515302059549187639067598744110290606513909041979201939843075879089836866159209206039907700083563575822260924775984402872482659077180133273393450338843981878667552937986523567512244908281928445260920128896744490331707879987825611935652945536422948848322717145104305652965657127401513478556914067352092264355624001668368072828540798964824775342137411323341185954236045078403439002724692862625874319631224551372049087225138200016151906134395537182067548291307769330448773999447711424668679002119762097348102557168372465705926737890833440420410535906839442372555769822293062052987090088804931142501550470208623769412498189837414686225360096084694975981070999382916002256369983477480026540493351422206529897232594786457727447152380441663685878286113124701635531897866124045904320205412163097724212095887249748837355706092637869565974130751899959907036043134830808562577887921280786516783637070162712889278448663877375636756315563218817736472033134970167987045244545031796037860794717836349582063542763860220115613766926693560008645924787048272450727270199788276745210573580710227265778008420053346469555634332349710583899280076575335850342610050956503716300722812490863337042203078889172851287329752331375478879541043299550253492229484696611549255845646012323209571988785907670198369863326812209931408428230651273805588326683934388121125604912857492016208184325289497139276769325250467038204477940617256083577545481969724487773007437374860219592776139853948530958214707277104357531436840470614824935327365372344343990456908413266739989967945124513760962504465084530080882767953170923819515481969992411377235547675803934889045145940945318715566704217264495573880262203316574364092189614030805515361263658268152678505547029807444386037225730117235456832141322054194443219045308262257912402772758694307299289115969012589710618113960398544822368801252947667947821803770243309626284041231490774758747900815825686552376497667320121221764448852214811528423750283013603462262493843403918199128667846004075963367721999150375474285977088490713442942778988917542132370858419936836266024059084679153073629997478365229324569913007288695712437781837062219121907565735700112757438120383587520460747867642795949887691987600943453365721383798474888534109047006756225117006432367749784620326274319517846459000376016465006691359889211393085392742243107757962262693021019783437755265970593558489037523213745191671645290573351383304225419399961143704546603468669808403514286306487469479309607888726647802483493908141595808021797999450262420066642629233617382785914025451545538682350123218016704861695118278543782059896917660433210165919017781215800441351348416999864514446429620713819685829698313502804520385290116024402134554140433899632079042776679397665122849233308797202156128037297876049102415385651706138071984646037041804067901667468657272717365664873714842639864432778812096324200550618430121885825354271542060193205016516811310301412309738084246966865489926404105651299475859466241728715321557380843612081496862448629441820350819229121473259294892286897043500114057780585496616453437377536402878781410486290579465702562749166963534092289247556282285255169195371583047795495005145542961493611864821639182443450469969053389927373652028218660741528411811795786740066230649760911641505390827408934701471390262350597225536641778481586034384351778691114728241344087962493829526583309056253633226928433957541449030261243697963783345205872239974137907965952916818656386768053104429744628389800889778572001872615078055106264075346757418496881522258783410316936190292190142634294274990826156362779959615239739843977976822270919666268250859789112175911525224605552878307196803603358459251102527749098881363132604026384809296396228007529843175964852522487096306226861168761285244911291679674621270478316323274397233131126219354058408045184295816319477265299833146707704000440529638017046773249522644969262179998899608422590506557345602136292982001443144320514050027955384614391122422853313830392162691948350333586511486483909579734244213299019970051397891730089221491807548192536092781481805034783859347075238208166890000982776731665913570840946886184288814821928390643349574607266084442356717466517856323526546173938635321983735340359828594820277447406788266075703146915237112562780161441233528786283624168749599035677798074213244635060151298333234899183601559048236393030615592727590302216854322260729395036912850092613037265358435585775982529034822005644930314014355833042369224015169311431015388402457636003891913588496842697196233730054172855295392118613587405345088255880833323365450333413631438569220974857058934211135787908611681395718171659940294108117783481131192624148735208207159645334113259605733837636357923014559528920805502242688254927276071056356527208505978235451449041517192116584114096233198881832883614138599078682611472909932857101374617359623209492274988146179187669739375494674234697349753368895207397613977022545419210799434904687781226524785649155263133807743943198350921721464179833815259469490294844161004369879395111297327335504958198967293349774541624310527721837273369820744982334293989933968447010870617541323175686687530077062514952996941408957293469682382713195962846251508058365775603392076137877506632386572916618306421840796579036664825986413343270082856263901058749030016743465948745558200781617300948864860859755613077570110109256947608448562307687011798748228812967470627306154599217482948481123161725148847021726287797899230284600559844611739216281464461833813579976691304894709060259987409573090699981240522673011691993889469107584420632471067201599150246372987300209533740820255426160043392817226569936862454537691433508766867104199994297023102494061646419944530279544041720932074066729332144456410336215710949957511064211525587701098800863567330288693504305237247045740974640292281900776071758351113248415810200010050255442260319336939475637969535568638553103624209044211372955092457837334011266743140188612839152640004044801662397088325036955088364450699166426253286500257973513986445136087108780727337311902689958903103591312113692698057999144969106631593296193591698925959923423589557178937543028141258632168881828986287395056484775520513933101191242130989153098083477214015385552730533717110912672333946375137235718081414723666755314547233998962727344348445478926413536093463050823355609055781664783423092293048026952862991386509605531165028258255662437307915741006868334621741277464273302793582342630305111731274108380178391125659872163433436150890984066650629692479573973149948503888419928364498554733387600990979009961141558384104471455105796991306097525620954521550178366716699721999983489286029263647703562666992267338029622272178616755423416586263291745633036811131500395222111290209768098156084125563513999803574501804830253269926615933152145563549295190244717541560150781180685511835550668742153566234590590112864566285888369560802538599672709724873588976118600505156116993158262177182920929014765893588048895122771951617622542347604791063333825700839834699243475010117644002232702252646917491853058416034928932099267708401349813007676030035947097216612790474907220158443620583424384535673398977123807795935001368851190396666450878366674417571664908683286196930677244134853444293611814409627341298881445711031695231672044197696555472921009842770600017430847216903140755462516176477573926462015523548974076735077177353811868693487916287048886202016377134811318251315165472574282106083511485185627105700314739329171708036673379282456384078533498426202427758391836764696544170447166371550270065121003340200052704011548345484074650775082256927842880507633163769986680088161015649713693187611503055291178198669913249536030910129504517388553501994197635357285186038595741284615787764484894448495613551503353894698294667300897238998143896828216521009871380089950480632186593545010054522136497781783388409650732170562834566583171821997319245538573459736502562912460917328071351226309233581363059777545766660885204866905078498188513284560825060924867615504822881289751972583554796483783510635449499427828597986140898336882715630914673890541749291104890841223758241707894845328987740375547072078269459183071766319953693978464782051605146838541739208042228267689495926535522905812744635255853614973418048192509616595234565922692757372303630767597327270758333183706207268556320312295386251252492203292853648472982641849837485847474976823993079177866126940842778120760214673606890526043003087857621904121405161558116656314266320387262622452070332945695335175792694617688472026171828619492357463025991517394047405781845961717876623567681481831534014482825666731485597450569194325462166234965794098205955303692690690198550809660755477900861021579628390358766532672399446859278751734124848190122265166641053593634056048679240289708712275990666546706483815554398825438051309961482248106482765404978673440865621990471351115663613002705417989394416698741659190788457820321400277230003393989986345839890860616110227977047619227532163173545784654326321354025812707310326373580082251638450806494731876939408498695190520401493741530645832730710606936169610265547867914017315743958643725109749183315184827410570321115592113108158959640016322351314688856823659198801259804243226458806384295353227457834635273341684782649745690499670767322894049500993330654464563609116929673626567837966534861300809143189517286759375692600228711344655852883220733692676993481135141170170909374396759846890769133961026189414981820965338806020982361098028802464088852083553590136464682372679544630407219886933385827563969777747977778706759458263273839456963975316583850567116535933333527757754548535563432247194095402847972200138458782289199209928615113363129204930826295004625545851008991838769865143134664021779188337708242375591572485016618639022327356277335104077134343203732431885567147709802777970585827271768793294892983110945456774646211098878699135196190891383016794082359795289579646722316438051981392551776074480790953322741107098130943738744479187989280127025185203044083321495711786040357827055049932234362692338671651961515102339265522035124870009347303553326454524708650094024832116937557097773499682518669802581065874597877149176610321789510665763897183819719901616208696083421092878080575584861822533446688503252511074281836703892305883523047758306734024778724522058114496219083352780555893723176663347210774178346385591125619716060145324604738083587282589491136083217574634691879345005876933057382433736496903563257183106063878319935465062252746531795296960772945357505609430376387416042368249110682206920531483190951069381699648688972836826728742944336105707445099787720686710832212583072344843609962469817275207826485198378599670930304279966324908562760090658139045706077309636258597463571657739161433918778979154825135360476596930335571548167667399011701802211944759306322590888154085974290456437810763555443328380450680762810659831293032892556036490124544977628733933662088144103238757792681061192873052319281834326777733007980812331396078492442890792003366092882659662987392389917352573524233265574198596520447722714333753848876695581687038425334768326106034853770852581936562390416794472266053858781139696044793986897191314454382464107618619827224110380993739082852114903908338910626834414956166877496353717844745684225960904056301473389855469649280782982375230253113587316481815396413205447735523786997956364705452585604317076385746627736942371915325016581976827117428907974681200381436147277649476529977583036006769285501744015868624253798973251637829561981001621340893066439392375110037132148183201612927006469487931428833316460057110748463513722188906373260962132602664574008988552167432840216640019658676323893896889526299187294968604895510558358158911431550222129461571087681985259416732369936965820925350152832203577769627617164410946473592098185366889534499636937895076894636499578664149346982451461442820779700134264519296848777880467788969140920259354348886714525662896443619834266128164356063481557619334390887105910754982751866181640053596482181517918305189460125579391861896560915697834741826686673847947118646943298601253021100578874016052339437544227196017435587282227827153594690321674225460861742261513014771697422565813137024640702570113303303123365821753259562329376417121523767805831441517222102275049540132323092300683843433373252870300924300187120262736406593948658443999541266496603705048673607356510700401400435348370719550201948690138952450849467536090137408675445658952336327292907160913570584654514599467765632957430697464392810358149807467949842082048340242052019500100695618588953897149894479842258423463572931831567845083916817704383876219838624631385699119687133842623602122519997673332859046374206592032242378317855488619768615193851144512513179555233296861251460945303855715922450337416197360203514297417394300498457921150949727425194751009812907233491237534894758668395487740260597797607831795739044902713826392983106380928382891842687876408539655975480617970924027339726567737048030985825610992060709453657958088509158947078595427094195793036982984898830348645569507810381523122801734542115949609704626050032812194722673896325758585635674285939279757062547263604246206556703197654255567748817913856711348553907668107619704003853932493565818222022754425302195009606391413046147250609154217659693421976997381423390196953695176466824341539347435060824605780806135742623121114767844556156568296390069474870718568985527845394138329609545110142462739499070015815044378112951504260717826063635563010378588920446270365280548499030625661846921389940581699493398643361268538315762227829676892846051344970328972353697102249697581559301108435603148407174784015791664824792095635092565879249453812401532127469961976944323760339243216637347212468366653442206808458787430345366500253350088651246159127536826249769855908830644712582097497347229139729051262097378120924653857438651142192481280186594165175309778577766387546447363613608265967053768454210061017180687373396553670245621191504040499181206743768609364582678026427555458130530296213899427654063431459062468988689241658526988862798117805985736894036638685657118098961531530540111506965734418590400740984169010294111124972390665201509388305723787544828380285119949287952670084931178128864973256228624305387003371515032281162012654706281967979034741555176952595333249108356338954953869969657035421064378137182095627022339214065542403304096846858834847387391264605978104934414564845625073395709465009968649684479754497763177874939713856454769252800773757110099745004408027890471733736984020678075179415256962478135221533409107916274531076754874251780083303339568230197779767170871709888578752928490939966477893315564380982769130213940293648506918925294349302757991241973010733180659340841087067359893312320424265332236835603065996264566801343559949839507956827409227850592632431117247482022724739396442695185552574414790558411679653962001809419983663660743343890896640837599359123140562939695495306207274144614783716042157063740748395425544114951981009778394649679639706621994101080423279963589098723182539726527556520198103391644825972684876944899355711705185083512483736584304714778062307307179208583523230455933575903687926535725885474444577916360289696269978166503993641694132009197683681117563143782946884676973603877542398394706883896368246732152299122964305096010756301173290802810545948865625397474909671486610690656469016683400602912346119870453587842854996770793557180376855058101166557554520196189192816763664577814734356637910903295572118180943856928000111581974119568341372395473195048266174193056431129054658704687504982104563855619174155963793956688078834827073315601969514493414101648485484531801261886614819607902747038703640793540713112342411940426664707324193204018300671207080545605073003003001509724001660957295708992381024705461195600657884604492324788285463443692553948201198834522952949765303052061410796984426906041456782451310933242125956034035705738200991254051796809645337354149154965999746165650140674197002910354736845173372621319927557416094673165250305769907425986763193284768248368568459817631473391632330746822052493477280809119615344191399482757766258027148435494918408054811908773858533195715450627345043835043273566955789701247340826418398993863727891033707112174558368991074207710602026958115106922074856795528737317997819061168447273717954641613382815099523635812961964991346603940165131348856212005381450639577294081677206420673011729542225277422055280416198888227532069383899207206560895927822660484788732328923105630717894565025448666460909365886311110656929038843850319236946802616216958685809458821431966266993597650706389202116771431240297291938397967249494247903531995654293536398831115996505023557942783449035218033115138969344015123419178346750004867239744913934268177931491814083851450425092718662860615811133691109306729402580378016980942087712121118239754843030117652800326641976441908662439326449504813681389146247372731083547671714235151317339734044129414327140515088034019775632733239618775694051324557627602336709646510585980758673281063689897282014199540914344161569063313356661088811760992863783689236168233813005089689960843814613257684767284871355458778192218821672497728797786329092015403689875723302506305308849071934923001497207390069409653974067393619185001967449648062533489379513214101534957587947538931500867725162451966931197625550670193433015040128931466639695936274457075811444044629910812719784305482820596586045883412436387254000387821990921876371286314374878207879853063547397100365865841297082998499741066207219810590790394848801690953867391953691710018652482485908341212457535430005299302859131316092562732772073452895040510270138966899023636295368260933647148812080573418464884476391925804560889225275338300325042055355281246100728849801564985583144300408772481532914929256636115731074368965097218378900662514050784259062825215026222089041376645162261686940476251548063820744372442639099477385892517821860380923071922559996291455259696427272621769791653570851778826953644316316231317530660244883753399313098966407384338262645656385905086683056286945709033214229383798590631525830314594470148026998482326268572980033830178213659023178194048400063820331029303546448681385523725030560849166163578711132154528348343476634507365390613062364466123630277523150272115686771410651179146438549555094531024137274582083644620459180449996002573679125805171258040513629714387681829845693810411240559744045591190108118815910856794782314419319921398726613812049730216079115770911361682768249850378562282426098895213383862492088638724087562720746259689078288952422382159206966670713523276006508338668210666807942433369046842661261512742551238015026576788497030696829698045161754819460046179021397175707419297039468600084689254326953828464154656685191224017638723264165284568718036966244900249549280514452782155034717557194546118987106557151044495183365214410143548140731067157836154348087967926740884531364502689723593385012710868249023385985555427201972192608355510872804598345028626625507656845162974179446011238589935316103406652711937548528753788422188437966059629117927473040887417991903579861233376405543123469709085063753776101107727686094816338518301406734845806525309699892867325433481137811288228661811923848902076886806788010388168977196917926110610966632407645365596789757832063018415563362555158199481047197709742642346644019777686100984182688842447867480191979534494768327227393856743162890261127303367497232060805643506781210288468545935556672807734759014438687365536069562793789001997304286604003878466668351021207012602180620508919928841286144286339815955677432614118897583403555587836340488557970724864767437333856937193199014653555854678572942967850461525045519478171910302712447674515379662341329157325839228251052761811190052052155983166595826121098319036806832816105490767624271665404591531594561846726491765080804194820917853240937597923759022490073067788495026456335377780249056757235209840343141846552003298747125142831864829984732899751977006964047439807583554313508059242735989097487549907111290322479475759993920176285313039646450072519383889199800312200178400150609234455077347915654933247013194723100245419143033048887890218355975399232863953653696034746937837347760915381552379550532514058023127419615921658482818707910454024259550105320025249218403388973917731718875842594449804330874037709900529887940799703249650431641587140511817840233765864825655773048213356282454951936080620754567943475342354153533821555403404789587369836532117859129461842646048042828429661018121320965055245683884544007170581842278566062554885284952440860511994652673525525567954647345659691291796910283101474637964304714367231539268646776417881412327755824041819616489376757265455708850287537102709846803866954473693060618238124402909086321548180419654532747534098893374536438303852362651133310094316748848481504718668026286654294202284895688617723914486936539887209412324295893551149086187215439372258321078532343312227809242412342196932259677055429001283527425876502606578602114699034296594569546174472605278104052322704554305543595599322375606821095386508041432433726158762513356408660896096457879272992338956080899578976344741223886475397147297561296243547211437266366053292238073478298851785574667217140092598370491806221575253907085964055835763767426799534206921194169256677811120297189554497740911476387697323408350002936823565392093786410494556571386592436181570503147870838783806906852178827753216980477774642805954421441909121461926076871852111734787088956014991387310493492751093786413723072907748069343612186617639396290850068590402532308393205768277304117904279271991803981511375919932826460201401171641578942259826799962256215438740699104573464966661923146623620761217406605465936484783269798298043694822994199299850217658820324935681297715398289786735877665449664946714350867196029712076535265567042580659269607362171073467301913542925071407960087396675052194326401562312839160836374580491493430777426874870977808257243423978698276752903212920440656311934425032169436775915517954713572564629938237726563325406982016537035872849709058828917675999088822141720528069048519509565166326792661271071323257960254173587301948904352762845391131533725236471189679152092786991217478747777433816118329953133651446898816910785644823406728476337360734194452249074653858612722110494309207865361882733386336375227321892748511498619215686745688589669379957628820219567344352440330661864254774755456145781863155708447440970856470295418954650641603640449317698534374237553428242894665962970615966725597356421482434933811234160144623293718939441130161593085017347137534123975871040946091455539011339059681130948800151826109044810288513778136663722923551774952109467321653314786583346579134826572363375516909010433144522175067757627915263708986266778860763448566895339127954879739504096437657099238890125149396224906298505989362438797177911594270627597828446255868163216736991070153922369788500483724117353833092340262288941215328526151569564830256529524889677989645188072069919489497046608590080740577022921530795923886156002140157558148247360475221287919221783825222524133231361062011260842098126678215625656540303563769485066677233675716068339192997147544032553397675198258747981996456406761005265425407708620446307905686379472472798693068393337278115168371384760034897196104420790518204807385243537934886232552344053648751995335166543227158889183399141884049787955543441090378252388469497207396233080768390744386640549741481989257926155889811131991725656767073641477733594125507732159203444733248666116853928329698040036676883015789829913052819222061158996562270768778397811209045189660010321144293690936089578230027802017000309249527378195852827549948437711209634209517091708997977568623355085861718934517975418531960007897715052833800861088048563520393154508946827407126578895611481524727977973820297841603411733131165457772548161333075466569112943877326978582866376006610556687387130265961764016078655596587780661920902350599498921356501232138748243344955094149829896278120085729731420645241861928589105881933948099424344006676604154684626252009514600035108266511007563363421878246564139652623556461406478264110773260440579690361601410333730754680067008215552460366876253496799319527392145239271017464969590842754954399297871771536518046190654543681305216346376886865148797724443891617520896809120050903446771466164496225803344164297128092923705812321627462867578172289586491719033858033386988883607370157789917170376853846699119357205378154673014020293244179013051657208267960129374909878063469386260844111905151212576313301440961393756138570946481096199324104082323582292565473894108111952859424975981146351592149102708028691742219570284345189706883779365647988672394792001199842245323248079244127982725555203734723003461700688950890918275940733715102039635165013511393864795358902131058091469764919228760219183073246518072021024224371138681301845406282920685303115770416256061612048104697269385224216828854069282347263150375902236277492791349993626778167001998394773197432333948963392786846403334040216891899149515804678980273746779516821602923042355621061695620156941330764955999408749205616520294127423050163120371369420494169938663350926906709134260932329722303102033617688265954610154932455499941032078339528313086314122442431930692242469814719351156908794758218981538840434993019038054814056889291289303051362970811766170696984025194826020685403972933538243153899655444932068446484120516091969771359103171911478838955400709455593756517285441781790408866337201051890748911072429163642910050441464724607549685279789113371045988465655132347089285193988747850358561305313635454389290266057096710338790281732376461141677552103264585173563338989183571067488142887836980817628360040935942129293891816710499662875438215576081901410265995719091467390260050501099793628177877564781651143190963863009328975602227778728269302787974116804462944601891139803916969183437636074364425740375646160390967896049193443639292906690426307919310990604611490117730844164490117330799462679531730322286621906733786193294490017090758701023457107533159489489398768919243991992056559136896464506706328418334941352265101314762950432166953654063814642913688615956354149992274015885391109610726588298282245514392804399984311489742725275464081390457992071306604280676267329123674453155539302717590554957601873600102352265785486865522546703710805362721252153073536146180481546658963759376812672400199541025691494706436555349111287172001165763912848048062462789061611082481695387701606172725072794094642866295465128522460087530280908262929667817786347835630045233221181270593283348518376665348024627654487729880676583918275762652823199548653096586562129358477117399626364807211671942833825619943152594956784782381462568667303624531233304351116506904768661853494151169421160327924940714991913657358063819850659330571422338487847649214404417410135177814592794327712721481573061852631616755540240803425517105105248097564935026835084772534043225506037009851182812769563505221559692721246131178680976425460439281616025935792139898640264897456813061582068077534053821161559589983071175253132814192403353373588615025910619051065406591097908532888799854795626238412536631365913615367826247085166661936860742267137197514142704839095305512550997732696511514249676937089088149785623115413046376718797422399436143562478075942481075312440981945843670795780206835960646413636746156414978543923537932554405301641449203803752711138664555398290245159702231491521541043041743849843693323907092988962424342053153909468570182613234092175406980636407861593235802005195947413623739108890843508822073091639076011412364895050344269553680894272081053031968277302451349329405695628730518627250365313259609217190315615081429398021604409913336380174699365787232266490979554076071317946971146790016305723567196744466138873230725233887711538633239195660170241071656824147518351163379875005425214465369330994802970387560885140725308268195040619216713494199435986397029826836961655937583935998024732196978039025222650607874659607037667638571621366396982513253330369086612189132187236998348085868725899286710492795087946693736002494707733731413775637805485513872666637052195442107127531811851313205241879247353056737565231113820531573613867848394950827279101706843813921962535248022380435054944731596104505335031997627429365967529645616280131825163061691739095049338190899217559309994056679921482013220883171581911351033207780625352903726699859788172879070910105796227123004078674401171924824936800496951441831741040344267614462646723689828234119395645566503214181443790486381553721064147728305701148347507689459357261384663547107541986452176989889664560503288954890984942999871003220461676570109873320815906176050398673641717042711254825260353158393147404161332861039589039025354161278950382148693769248440534949449735726276993089761071404185027278288960674588955605502161384406751575734819087731701673201241645171155406985800676876578807552296986475116538219705733962789038658855888621971032954013178333330397914823507156923133270624975981592559654369332218653832214510043253555569911087944493101296534659215478120020494282690242144248746958923152402932569930737062583243432734745617990616746107853495708143477824900153001714629467563131757164286734899865530857637259703076123412131926275945552055918453393912918901228067441879140063441887510612628069359179080922668426980764575911867667910604089852244359215991077213165894029351638024799986499220736817596873029748064279250212953398521765236831056757452870452646273748582815599669022445900831341817154502315192185467922138699736541567043714865833724794371536948281850487648940907116648796486350380683305940683517097015664534720085117320204312154473156913624717096099915079264199789228672882666176791293645181338190827075781875480726218392616787744566120512997712637908115643411759825033475956683607435762084839957926478236893414203005306821655884761191537673528678446999618915479287068472849034371163546575332528688842274615843306329380494001963059530627861303995682887867377499781180906619096526235781363304207847103120676527835759723933240351551521001483189919628884881602884666513372876509143095209053030789680603166504551880518684430659573688932422142013414463817719196330002629437382596377225299989810974570243621902629869755135914109786830512338599356430258537039164478925378996008256188021639954325933395336317787555103199454854436910652276935497574849162945763847601424992586946748097632176753798253775074425408738221834627789615837404914361239284424963657985048466912406802927474281109172355626680914872085186156518634046974556148851419912732278917076624242958414141785550897536155864895112389123420515422586393439344253569490615124159272858170398455012958203779982571755149894232448355457358139652500668574720316479549603917818079725798989393110329230324184131603522362138459362225247062413769612790960949559946250124668028280092879138100894333951004551128667834787330228526954617332489250773836377372271942422340466277301630232276301953965099062336507675274121325225854375494227951427710167445422019488984346561158507557735627886465682756414069730845812537364127205293478360238548952945171680040690303332999842576724488680028762217527450580759640256543976782933808941292947435121955499289919769472731406982407060262226643679439790772247220744487835598195672887227288513462850521834808952252435204114659888266182382490872568164022084740093209554038429612721954005615701896837949965881285914915028634186835310513480419002059012180454934450341634685737719078284811672877953033214858939681191672322352856327704902126070559882126593513300121703698178915280397948186727915948171729659228999730170110688030198923478793027826012586670008261566673663458998440388485383118908902267527817211329434727765152822921913550444589760678626215327432203756764447208182714137164590685775887506370861759825305667518493204581760116434202580843008165573485924553627556284263340859654003503397601218837587408459486119855829781603090687028531188564339264278033878920391201018410806703236973694307785934800422970587709327451130426650355160829483662967278056423120974343987318248814076616426610351615212564435757728340663631733801790149246901040965405681283681535713092650866530267742703549109919842792014246818008469800172525849415835744010077726528565789298624246333031631452327589845688768691115316599740779999296613905519847951869669874711544832356038818385524821529457527737076756167201890473455916215408197599511274243804719924109132501566545810327458304090703037383971631736907809694229470928633515323487276519903575965648354231990264247473365493111672394366213875242960426177288966626896927604348203669188214887055913202431745377648896941860067225798621790416726616312954789896240056927851530366521275119035934459570749253125735782173357262862452821778014292393230906348277219413453385161669230649200871135510340027840576434932298438681987582220841627556862375705369787346918395415996254372253605782097435837318178536624396483520346707369295998022559402577096683899525296862392724823242344704203553422900351209574057770344681725587182405563784183565794364543279195236366945683637347956193849000737145756272484101993963990801632412346670774246044505827669908532459033921397223590349823836680540395773599119740928476647918987988736891816937807271468026750093716502833340305470262753181101679474558227554578363102522631758939801647305898193791061543421002632971899819034168122334741784114823750384260419487818791254539271445334616064434650752832133206497734289291119988966129019819324715088982404320475830170588200460788805515809573734488788914188936014762264473404297352867392921640792773691544259325679474856692038216798669477496846277662313582958365366236017492469725055916470992300630131622953361451991637905892398488004684609308585231324509919342626476292660802334736205797558834632711770349343119112611829413439283966038590612479410913018962667929822095435918061576462384106880308318624339421256623046084647995701768527879007146694312665465730483224622197123696250691710070278894517708972101718222480583904286610089319536063054007613579486629681355669134592753667589350939315652057563737208754712581238240635524089202989019373873757628328140929984339416747315831326777943908333906215093199228688283093210161573499201967488117679473941300205361426240295419830033454177197709590612053011142180102893236813670563368133369525794111534491358740925147808784895611004231486458308166529324987199400821906317498437009964621282726307204736053950487221036735581797045434815202508668799974480546708335189060732405669197050230560170823332910194732889820875490304139488353055381170940757955716236859631214036113049115411446640163228641134085631879966552584206329086019836503503494018668805908369344654630729491881891056833780033910404688181910366045715221642338123638568110077640017656010783729065011775084164408644306146998738940507403879045362915233677375198755243819707949735591094727837475324829593990280469352664645650799421873343544000472065912625759057753726000402845847484231552959687953536058302672739166063711841668414326984673631580862085932424124368257712865536540964714407447199376671100623874968792180712463954930785211684015925857913655480731609869226543482752815504283090949660792533377406889869649414399428996812858781942294912817080030206088435777724667771742572941155603412138216452620720860337923320853768114184294691545697094886405984090617927457476285343671309391593688830017526618575347437530764097386781601595921420079626039851238888181895195848948742802004569382832791715438801131244612266904158966169263293720045647004000957148002083607422115565377031921957456228556126458722847371364934488464991618430928287082083930585990767147373823762435883133451430869391665257198579274854308328877243860455614931453232839955252058543484444879231231971691061125520402023404152850691948384187495442684789433043440289546768933801992382371958998715682256469533383634438162663136671442187556475471292346490269121057058623569227137687966559368363985936442243489624745443784049983425058961178111615966037305686727427367018108733024754531588690457645645304013884313701934702775428408647104135613331550545581588640829516391006456492443148353834510000678278275820736829544311364000755782611706646455040766613370675770655714612126472016167371704610984011609704681321535098070414184466781266986518251937464885890427552036760647665173071410622660526341338016449175117195823575714655916134878943287730550556216871659492238460894021607074762844895835704762164244636906362940059327731819440267488782821329454271237454299412418005398599121930395570722722456962150224800547892051067662067008269515846830254326642667846778933528146735445786416726430238981593530606396752747169746582372348986158968980221826891031190652474594575097969855377740318154638501093848154994497623188211520057545869593438326392260562606596126381809943660666302620064147044960997637430877274516895377114232728538943812346183195304414176410132104026057747978086329434038347595180835027498588034223489966043109259068824180473374835546231349912836975490061454185532375672295300329023739356937349387510208597257476970073167968509809726960362447905179605514038146883534529133228798676656475637835867285616279517781935771003402982913127096840524568728978917314017704992939089853032386751397121560964021137376722864907030272019143260740283741614926775474905897400571952480983603102940586604773420928913293919477996809088243843290137353168454436703317550702935388013960972131601512096017159976041346857314494784003836233867904882672166619468757598375736304465043908580843635033413998981944923275084473229516054517339260102576155197612907233347623906712953042714760799844426336923226105414301683583230601294698142721740399279872272939190020292038523785635922092200261742170582995903642749145769347731717907910344103788546471444538370422460514286599142422816861600919222673268716821689145444099965310604002116500593299290895957918620383739189908120514043843790076630518651507020135194607431992679930104794046381081709983137021827860326692228113603156684948098158425267519087401190614877553071020990708377005719359382261310383802139792772494007809853164982357520079130478942501823326860539407898774253957863377187598679736799606993683983266669365289874637039633636255273281182307904810620355084406148696999696908764184001252548684543551671595948877427513786880175335547678142637448157371502698343409162824722554735261551699336142179800705526069174230452952930998304547237062528873976238063229933335557454227286932661584264992891860673711417686350163183849714591378340036376226008005742866575884772432726395734344740438010849300634969078048098081486110883507828253562918918145048157773830841926010300020041974165127069129240815942378928768263002857889411312087608798924889965516012525519043978277655141168095521595403104203694578206222356961458690124648585031081895368722903154202255228438831239348588020671735253266156780803726734297670890879971169322716223692159453438439096878832494633115725829292949506314938026924742453999660289286025372976551196100329407123708691200069244922468520494342706049649330467447237263610582933559623662883650166698778884681199206948451381335478894216017859622882679049233124585612358301387283162239990180824183310854677936248271937586039617016798524953967906988062250930165198180468212032373396987004344764368044617016039644654855020922084517377219176362732525902833563233651893465927214594122119387428467536779148091464114968426451222196246318410085666453762734637180899096162433180526850527058979054945839369665957564671441349764224693868729508520736600000340738492016296414250756850281303463559303192471610384947202781849992687372223194577422406337937030365235117353365938873690557113207648910219824753780187845251803783645757328427481780309644000586496126178825969541310663640135865326113344463592296340245853733950058817647454862074573045514675504240186453737460539922129911705039222264464677375823618326750478308640014719993415295536296592405526513928463715304514916185972197029717734044531305571199071303530465544153880273124923580373057041688117018108767262916211130138997454661483634068463236725078514539840125015043285339415557029544474560683097975847248094545662140658428398384116547846650430488021725176434067991748181187502710452357840211266163649261315012732104669468798052986688623687432745728727252678931011711102039939831396633236723894710775382235860781497196347366089887738327578565603491312087717260770064748206977247274838454139015330555587070215692851290458925673363840477172761424559168086906877049433152870493668028867848411058235134963695358110679533391263949199220516251028098459573588822629999320333073252533308894660319639456639035433954025691060070907490296688815544823934047837862427389249937160660396478116293538585566128727068608621425651617076877048885680973115401995138290900361726292447371952158364766354215843563134082655946029142978418391582230308955065256854203794062971409642429882641660051182385040693678438447313195542810760156776796800119129994619906983899799208372248954840986269401845600302825795704708388366925080327673518225746159524572087528008574032075252926092860706977888495527495909479029821872764438099636286161417178319384013007467267007196193558958903263634569675967254330531183155092935948825491279341986166927649827255417986787234024261395520676525689683004302799166029262164825023139283986028580483305565679202996920255098491990330970215554011734140394663815782251452669796567773484640404970387675744542729577567188952135068400845130127090591032912007648933163505709310186275866577734329283334363015285264005021395551792853414210499853947164738337426768472665242362058030542976817802798963017963998419823897531585852586022649105072440957383782012847763806130285907621979051192146661702750506642068634326624390564011114659607697657233962365816930063486554036063083264096244621349481263694229082456977834670197738261917954569206291958866158608111113612485846042532411721805544676528111815468524546117887490372668704326019646239483771388483383972617037119547049508801406547013154747925386439642476113226851485845205747461654133626015970672121821030205029585012014678817793452136248011666664129036403004259210047815505084901697391206822452843914338287986825636636915477274528653569919902453992400682575272802827569984157430289720428983508542197366469772091045925219034639502867751422066231061571732135807329857070557313378092484043500027979962201539084869538953897054916054980603987960341796696521763788758368255680607770701164901074075200284206780705771236696084796255322590537720122390667700447582520636020479256027775051767377304395303940222746216253096233201244338911320167213526351071575822624387660591464005645035805687670073489662172441651932047305449567791208773219755170744514441070584956651887673019341632767236231755557832553986035761174041486030241080730097215845716572417243299350954157479710059861680944728731728184536045993465880967380360439598068127910490677179232357278877809971858938052949158062230128076974289302728979656884906981103772345709272734678601170240687629182996792720977593066832065389587232385125298015988966852565817907956814535346558933798963715981944078397050586895250450311905529557763358070976190256943094466826606231086345752540455222678087998872389274440062780338775920749181948859858478998444798448316321168517363131732002885641070922408498997984363922276760587420618420973245124386643004220843617967203638383859314803941979605801869967643999893421231250828211443530299523568889707578470243162763707742867610792621892120687246115290673801483972230793406424018693166059311824334915350700361499315493525109294049217682734153425733416445832670164803708103895870473164983887224061669561858247142105948102409920102094268395127745834166512966098633721937707876252032411497829416774941209032240094295935511844318114536278951959854523259077349554851320867436344201808733244664131119175490871444954870565643250325842409864263545140562802262443023116649973347060806803446605491813197380758932441568386944710659821645582075174746787524929402385054504162430543768728068595502311691693166319923555735271617145211588219300115318487764010092244042684369164244268673498628262211441931502829440339694234852743476408831269161193566779869065780616453770274061192859779369599626125906625359817597776137547013027411366179841489566001771866680877130680092040232186785944701487838883216626512249662051087028004337251377694662551107496005910489599281702553959774968977173412991542935401126021705299783467379660387824321274805975068938479009626335156349083825766735321029283606279235251249491716139205502149826320637545298912921473869197282455162185763689536235350007836757788938158724350267678739726801081296114564232316242880050546646068776118966820929302379138427052093329419092438849801945204143825373373190913572391545983205413798255306438126058354336841266506251402014580398879375092758758438516297077962395178024279142548852482724599188633504905792657288589993196052728901065321952249619713563513025368879469541922246518485331910746635349944034685782274383910531063037595594129567702938875272035496213940132327731855480060099627623058648034865164268560472196036356800091820559164934655551217839152111116893398286713492382547199163344033260156041862094236653102600246639956544183154175115639952249838439488066839491276611087714128702893022173674843643034044392182480984364540176691812067045362810333619866234170323468591425902753405028712797337884379853455796031742891238125436941504034652476159060791558021007988052570933660661671925339905102547209644205308194464956399683592358584359736781138414511786731600062470486352738897146461080827216398320166244322298918411360257050959718856977756082257582432744471612639212822719372444101187203364042173640822507491083356413708385736126251645081986205398870420677099559884816450296712908580269747973898437129484383170810113670627887652681958867916027562135763425991573037627365863815862720156975770626239026124951117634716447007692959045653176610242260147699992382807770688076137716791804785270927847661028532990998219796056392855369566090232232352556954183313038355374452063137008375659953131926820769558178085752541487348167520838754801216436732094492217440969213664663519874597324878761694841248475108480837291477266899057007864257143986571722189114144919682776421878764106833661022242505164623813533034781023787527564312905008210977842995946401926729545708752879208588886074445954063800990237506412814064574323564212911167929586036145351245626573938468021201171705709845284587470550255282189597498142568477488100587281556917966989671941785163541972713106609821939630862931836453289826302023706036530992041139270522254833595147553935217641368688422624208040591181515382200171214807783210825371986180150648096422901031776486597101444094915699546832724487222333826584365752660004538356019349738128033708803598624861678359249150727291791814884127042476691331337893688163995156003938931966788352233446832922459702081500166039429825420848100180444488217097834930153501935767528400336784167783304740536736793435511029878823633401822976486344308915858026310744091258493733455863300741177920601610550479498010422625463087958653198498027388182550551153728771496310780118317834018436515581367335841724048006525987364338469770246979667858352323185398046647016354012037995637029639074160490141572303066049321510782079351089926378943593518980391613761706223726082413101893832217179424133279320018240453413964347762318111623438727511535267623029920138656365728019752313378613000055810679436421060075629134160949971916338071695450178880396539945496752682514376090254252636770208223377305067218955657050515549015709788550786566238310020746672138284825507168766001951047722391936866731924832817801040530936104994665547522480259298384962241237498270115779079687022372190563267924190681614158352970518956309283081139099405863004904035616637152522133304166390176334105851685660129573600263269352445984602678439395328500728306555999549372531047465941447925456645097405805417189869293746143064456840130012826413802526597320210405655457332990967041321019975626787066963117488320965719661496094586931997062018847800673146973211876621866024165503737602060576925268035342719616498151880602610052758202225914543641598453221377422166382512179777971552718995471185117520511846354669670292690948043412513535993090917565703323547509130294139367154749808023969074428404792641909303811969658199578340441599859503900626910939248636668666092755351214008585582753883360429414093357827618169159166064236158816124567816629873998537856032776769097929849040816259266240555355556435105837640960605088030474189625017983845689045069019590264439296267698608342053813705447298102054361297658130676444224214691702032353167931244271690146296171042869180753058738220041146735119995075621701503326912285660796649188393817243422461549942757672847431866556770644675155125078737324825824836314354524665065364663739847589454694962195398924432563962922693707386739018276782681648902566314344041528648489623341301982435239676681699704714983948755171295099912130339978091166738343796861369591612743115782546926275355959110678145977906396098809769989014937706589908531480171450924642661529128029424435241569074547044091610942393261938480917389972240528897015281266238229807752127100034837768056854081933964040793364798885087225526871440258857484048514889229120089531467906273342896586953682014680060748284709018438378429482139745747950426646122599597755889443256070724623037802551752995081583930364949972331670106728059366288465910670993608758412662282890083826766426421572846528233479731777466239073794689843982079791253911178926751822988841215434140293454156759592412661016099781221325020808370342441413996714782321959921668835315419578785761399053664889985041164602880460222624529617876646003441404843602808794874537277295300444895823310429161886092075740120169062060009346796867645392561791271826056819537683380072886576146916313397363716461534748042864698473370453017347097452272137377816491847099156606808998173540326597569148876475973858426160047281702613959057406435430440061079714870383525797158800061582596846111521333886745646367679053498225866618321145822132621297079805820533170840844209520632444607400140705393270965323945405923498312072202376721297771895948279838762507623489646388554069365469325926725008174131957541197424423962622925736128576081118371578342850068324426544687699397490740275719975915622834463892380709332666261169981723548281488519614767528260363145888124372203767144143101808171799343194331842459846432932468381474468427874650674760177576011500227032853292166525908023183256446666355995087205569172206063086269624557672700912443122475244692200041456375480544220436663327216964359365643984788273127856853664423841834935055346339212634274744470774271800327885917612570207221471653270995110423897572505599612328756287354956874808955601123551544382772844491668541002044324937066340715692362975800081680547417588158497669020999413674580009175947427700500956512364441612825198969636741642826909199466713293774921119480354337424639129737739661677125702524355312676697090648614289468381283258547938038453939769197315732886790195917883536974973707741435499375199491437412349739762127526948607590805639687649193436340519037584012588370584796212612386283164438704573775372805893171269530160610407265263954696971994876310713378009533093174001485320104115582872935876035318236513163835791327176362583576275371895123102699595708196466602846320961845693599590598074425425982525822406360707771296384623953145120118094865122830947907860316286557488330028332528231180832279155388362594679011415620010554033005757937853567203227485037465283054831924044145134812268699527355408621603657197989837742135526457150849249876957296662081168388164634872746218227635024748230164355167678240035858320530541974082552499178054887904254818244794475810114491920575665771124251997331306326990921666223225468011001675690283432955826096661944156775930568964337709256505819520326111813540223496642884850590058222516000882018032537900618224004286425196342280465158164429148338956459434049543938856168421150985019375019137511941003984714537253839617006844040728885893782371003727037253709594472091920567615056252499212514167666343999373962348107584562157562267911972392020660698114010703853836813798584616566262988159612200576829864540272703143358946092543191603627433625311013163527560633495402460536643652150062056473429588748391287123639206754519944513358137052496134141435436166848240095001988691433402687920007806793856259603901878988099138744080748697470036666099850412511035543071027380253095281969549135553105338606504304056422503587915405784077645146679091686426108096837931349915787147538105262249122305804119264291649801172539491589248050102142280303703178338505864430071418706330032602755037299165054247390819341594184163178701420379298924931419552572568916586174991916875481292483916689000447551310962121656142710838634728971114806008345063116095651236995488257496557150596601341615461979461696793364954173041935607352067827456486614790396834706855841568511181773987804484011039589946915728531180977659000107084667314289583098411369486624518038084164532285385690213897119195970873539417409568482612608827913029110873271383339859945579209137912159945348380550687218236341062008551495664357794833375346828267903987917761429325150111407814609957079849934397553596561962558587842761806821028329401692040487808943913504694781817799217764889523617343247876452100302942895314325851430554229926731402648592199479729999102207670272754099955027196139448868793571506045068127952279005581219378306920698046770528635074877428553221035329364805252071092932762252768080252486470235505842402394024717325691651375206859005938301879544775274475929176208407767937989026012848059029158527060686553979919181831760618178942520881769165036830355539135922253382432846114970333272790015273531906492323843149349255330050404537497051916866355208582366186895269715516976929049539574690486459139278780884540208486336449296598502016207776207021230664547317408037471654267722892244553381104493697877633358770479052861530957155438721042527157974078630932071080695607542635514664595723720360374144833087137460376068283203737325848255217068593179396532656130017352605741482885649964797888275734909330799604364317743327746382115164429717957606695167413001937865921537734234295196866592197686423464736153366205016073448904259040277669457098317170583410852302361640119939056872890831284136578786632222191264729201588303575335005657674392240268840204400198484357026048691435883581937052410826019912419662962804903524054781406041999187130506811565132113598477640003503510967402879312835571162823480243787313818574003602195150953295681921297190335407843612212186903573601170405602697125365813166205464890813076918464026697887137501650223691597412283198576371963218468363780671034619709520559977422226476496541953941984863736172354534114904256063237455834190152049109274802722384438568116080124328765215578554110033548765085358195065172986552990762968034703520530787080981473349123503666228854800942255276506166010412233970359265131700278432703302561096377943684961599401241517436643233212893201500330910407993382589357606351267987559965835439973925164362597872402127061081868028116408467486518508153370808314820277907612729181537022888026623793413049691933383481597272916164572990170168811935343741980064594144173444815133132198328548997599626921906044672332165681503764393270243823257144839589665356780774903451770600874763229008192497465613811961572422575914348792755744274283452627099605012869451121066417271022010001461504762805302078823311913841179435770637574797844010065320540034384179733308175640558333503266518482487932210038451152100813701539529334877176292800233674047291140173146367505832921004618619504050461917567785983879073149813489595994304831009263795377217625045585663280655085803291515853688594307408589139290080993186259302732967884364050602484770788971420773807514055995451352353069990466832492210927114825261225968534171170822168653559172007385056635449528974086339995488387978889030919534498226259635218784177380861352165233238073001387564775631727434769874259119888532481027129049536429369526165933165457053789064795076606694633856933151058703799367994290444064489215779814569310343728421713185206348200653815811347669692236910558259249515512338081508862354497305508469387652351013304247419162497932745349211455841402891549015918823099528401006098157684319686768584431242268530300419376248286373694077114423493120255476599465075840926233481116624619247027688645438196058342646620277971649541019461584855996072017812978885378300615125629152607067506411055700108615276025056438903895349555758215348375185558449051212781878691481227848552698234665458192239612865279977337141528049037417455377022292099714486215598683308776226920599385231384283412990378938128250138594663277030835326726674195413079708639029777653997467867368351932816662398876127387888351812433925224565591737553281997917456404534701012673990764264316480905837141284025473121619667047113963168132974486753898287264578780086333705955774473032822874325509033693490347965965832400071813536968875688601892334971753918769118886443202858347898002126812661453589485487739726173013001148375821985157319464506908818547462929639143280088491925250494993216171243328970885576741272552755058710478269303961675817748013288008470571773360972568735715775851111188187805324936843078220605582216616159201013225459628988694947216417641980553539240246982792238747828844321306231816650774182862949840088914891067388889359302537438350164607380616331728337650360226160490391850459697565623463431888165513788953384762644236841543851315250628523694939653915023110299557233683288465566541321418204605908234830865488148047105097978691461855597291791717486079043926540445556959668945362718541107551393396241271332022063687488732226119080141601404544848324296992895267958427983396249533861432476997830244174383710612446150906877522076223641159329778123703189883913117964914592442630074654275740914218459396075518051382304651153178143833803914232998373694877412926485887134292620256445758761280858728460739167841600742172402860096219171750964536378312236981646551336029358569211616303793856809265146422146129392100525899234232304699392552092567404686589722592971101728781658048757159792139084535481720653817033707052952855830048306075080607888085517368472571844612445661390806972920561964094805349753963185642634035322654550681992042402394702245196388843469028531332805236095278004980184150864719840733977250292608558263178088418509420823286472879382439343600117143587254676949596313429059387642633366888462524524708293290479358922250754530398983273335366276441176499983809870706982274025774620728325973779100671642747189593881694922147331946937640427214867777008509297421826805715015319191871374724973906370561467191738822116466935742655633317561679376411639358208228789087664712966052641140931747978248418524744683984382899795202740984847106842360923175863641886138168236952453365757351841049782309461264420867793654186471273442177675513060410328618742011322711278063076404270829783119589948726500269078266887925946026302281480157642287003053801754100889038650528751574427397227232681718169853707382765506172068914842587314713741444282626277275198840336285317824808274972647138655878351796893365863213371029221063952890908818976303265513216853958219455715669334925662570438587272814525234859132150198346698446676011257959286949494944959741020685922264005665404383585003798371285575872733810732961883439600525652135296839294866309058913137662325846059758537273195169803197233527478382494829876324674603047870249918454822497977272118939821086486771475507080096898518324137087942839815809143406715811855910982860892710959575988032556219563638779831239179343132262581274633478000845289014881638557230662351789869486749496523114816895199433722129427046734052824574112102519395552973208478074882544624025436909434544777722721658108532267109071979446573700897479046189371776625620884261393348955452186205687482368530450541515565805018511732020910244357396398848094987318149613036228141055968241830563205396032334881346359072877409171649139317209097192516139908943479281871976360414574520505606209706529658950945112212305328935342985918100638093463204631532251952937496435886478874539048364661953092434261276932683930267753842731489619907473038876857634291408735768714708341908595665145949877123452868319993685958119005281783656010207014727717449289758198253259941668081766913911802464146422238001565326821158103893012019742658800029519607770541478679156216882453939486806085933116998696150110589773053129237637712223214005348131533807830441305311812304885002082175186174642114682713628030716772801193804259580411666366145164483139772438576274143030077892536386833251645954404586133140721013444134513492427789477444365070682452456543339468689387145333448778856803083033512180255517291859823534264776410112579319189287593936935673693141237943466133749384696866613780268213055852831711040540199499139919976858170044996950347835978529801392798618143822759249527965671515032222454288207885067326831825779535048681132739291980054353029421667583593849163617343743644787625507605740716484437781575780297059781462943634721864221315255941555250316868243931859780093361471965123724781315532595673645665522999783098537558186373690365773453015603967359386581357510426356323613758371540967922190109010680848985437602102843087638360637878131539227764233202227169540676395446154795531989705328212970053382287173453644194032903069753219876495439843631997643216234833337977855601793039243658881443570448843578539816454209358416009950490447089470166564396466562558013525526057923696395239154047582846528332663197542860417431210415103034923907113145327125121760329546272433435975116565124051280085123554101284069304316232025132722666853115953008999823255628347224522400167681697068901293796141168743454351200791811856207582959258796323044261489926923389837830354888670736105460343753379140681148868142007490949401758151183188336648013672634776627737814275203786317691419148473706339264245743808555911876525186334101542539442817705530392778272712371355910853377323782164303953426349556674534076956323226180982117888252821478080410652631321471174022516997965288194063809366673401831090615976028604784149443431887694617785489602572807524095818594657030868470567071375331425387638700605348927247137822723300259120548484458462185148208021687186180158782285956845418282091415609951522579534741957725999515621158772437661596052522571021156246135698745701198225186797714080377941794425459209537653506087172330011545186966982452538946314826914532758037487239786336237463313464193280298240819339928155902022232715276058221339330862477035423801184940130768320797213556436317897663150153618232775392307022004307496075191216529549084912807729499982055147668068463838195344021573947069085718582142548450683024511559080195851160437872287438146250666215096727464671063912485051601125131378695256555912393656117687898710027083462205582962120643430568757843328798525334478218646722888575573008234930533216640457906776813851300399951694378624177491296151931742568707840188243245259996125433463523936702314891177393134565297830557600134079358558509644485360234151375534406936041238152996728667329783613365348463085434463333506846142431065320943813772361902299958198207409234841550918870131396474704302045360583417990917015193161496723988446285772810059803969996821328589085871026652703366191812215686385776811297223667010175727720039036184820323359953924242418205412886383564368550490850076197983230728774447342204730130920192515118517937169760619714009149059606376697022440067256426510067084893492599388776106984440751015080051672816596832157436944109805490037745704750832035629681967290290076158758885156122157508506307135435647377117860825979182494780363976501412986070936049603597763844239922863512342636758803302291699536662035549375212183489434371135156996673470858192048460206781841310205108766869778749997398636694932953878313205417281143175721978058097590791920983960282911685130553338065633410409597487839156587068094168101741933986746317625940490394319756386423570864329268489503757461783151327078480027424638030538144470595355216617718562973494092623819842408984275056265328204521597218123095565309298252073654361256759312937709166190612367828740029835421835659236011244562909912258053842402827523573236789116479021271710601058500817375106178697874423733845359595231185047006562561666605975275749499976494221384481422410955746721477023028189732331207699145031238597373082365420155005760432428116956571602827006155898142022294161867052436959415032697193701325530003344217424435895103005640020824190974071070615101861177863178980738244396465465934961368292464132041872101633851482162076669156349036882721026582476972089253342457729664042877449382883893030966734001173907321423896986050757395455095748952560602312430963762516151206102470560945111722497972186085082995082847699260594200285885616660766722637979150417187577011446334012290880842979417742163618103402479241970111017043133587156624177981104998866496704129032455501232440738040188549117527696006330846296146054122896152033258528302344952919313157404516150748909580126464382197376379180284568150761008675222695797465222402097040658278090441091195746576435781208088675976506273807121640673431913984406736572955071329179772645022085063920012042510556908139013550248043531755894591486400832056559445294946112073301785452377754753188733559001040542916135358058959842671402051948135839018368859252288414150166399880172080943902046645220410178819453170725469665424177149958737252792654440129666152364853136701473941587143712132853073477914424505069145792068193839096662843320464698900727863469068491539125109248325160746691362676839868483259097053576852965772457541915421880439305413909866896239675444930044222821772883382153168105414652075986343604156538408743769934193184598032740250534628748342958576562476801379933885214684563319806737630802904151248743112826689583647573708805996832352715019437071678620878987775931965432334317275858418414663722094697019654329607189544856737429435921494884543451316474689362960213388277313578445177845787506613281358327745617449306929833460355481053209299790903097080359569272440465299885236797456454616941176780165572875055155006831183983201037313650359228396472290633180454101796366208593000459901218401433409852127351891141025728878880183158782785245678792617411224156854946537353311885742432255578587163657087220425261323576041568177135249656652612218764093872577414930910095932879826573052766798591201854266649585533224702486921431287322040726157549089806634332534895961116154442759728860003005433476002053406220711319007674625675550644663038023400896430014377695593496459237912489725721475038988104372044206482389395661450401428251525540700431221408337269281895532478692838362456613859894266869654174549544558365481492464777034844924172590443685726192652821737479908998851716273099082394599677620631217415126426064881436482147236759930948643030683170150873847843972974199641345774127476372329018335056116751435336295976473665688076296189551791542054806957653651585314056169497343697256072451251010441872773262767506723101677422812242442383528280869065228815374723873396386217705041885953394305679894992543444995440586043871791471036945846996076753634932486801839294495231941727832272269489956516524320290256272909703922612106699839544470741910311982461919889057342251424928801953742889871412815023455383278816532513572322796662348396565506782050711045072575857841285827746282777335891688758151186558737197665072473853795479326145338912278918087761194089308004222931188331280083646296517590234609899487650049504439438586304965125325265365551301984218978372402393757135050898166003021805887411910321573096077141344012489070961286580321649737162433914663044127914561414219530814985974143862060586420980773880324948953916913351259993642170581402402600747336470403445729381974166136674133363087975128985765813905609744574609241686989457654652924957577290785191291777495008517637472723505723490261850797012319676786735611054153451417265776184457786089961903007587266138136285327217076945507411543056622882214845027837003279428347069274845453308481150762743891288511167584870494854019578635835887955517931044964221036936292779588628978480740951665134101313095010868573459433771227318513579740285098505785477856326983852965622756834527831751236985148083262289071371060910224714783539201205085482879392862650700264898024597140365141695040934924054030613788193430380004736171471995454935110488246173207263379428934494520344939084404568599540520995603250113750565373297958333873190362857834681209760832929814677761375806643788734988783886404820055974750785502570312173973001980099545603075700917139102683534552799503949058061820004818848132332660450231870558230047459621620057992594884023052304770207546545721806917494361252307403157567908900438644884443886785167020207308972616886943262157074982115963096958903435478947943165746040412500417582962333808544400066381209679151587381618950003202058185740466453043938209837588384106787196641506252760277352950962768640576086919766144075880601857732867490960051497612412160466478893229834850666252366596065178519198468762237713421239363600518847587930951323231304823188688522591019204529291753701289747908708135213589523642884061194889184977623435845482290552145589142459214178972640713146995820508879385396422382332254151057175448821407754361133025803663512001727800568126490008897482550242025149476461797167153923004805212292200582823493049715779200404555857912824836328967160512881969214185399060159758067289855175000713684735141875810933796081958317689664789657923829583000686472307993097405059010709253513068637214332183438467917380616241704503583999370089053304410646219122249568897706702660265624794693826040412833114567938094408458027488428135174130609731514564280513246775386594565151841736613591413898613043010404986554003578129066581700351997333300280679926455544962915543714367448881191741790275779291351110511626339170840644788773340833332543617365166671559846646363322374637565293777128364845740445039068160623839167506404411591926227439831488278587026169286655485711630968121294838072358211387139596404606805978498344299198658065752531064699834995529630353539550956239823692747799411688668067060225727360710474535534633967859246907870984978750766966634044846081868519764310182641143564749480699566560789277194247131828168649923982767748515332110190608555080602447467976004191826917808294415235243152910840019337180834545067051348391088791449902048738477768688238526090570180899024127345909686781695300079645095720659074175153124678809160438158671337410316398050963526826138818214333717282896167778692724662805541925514343833573211530764967167406892880647683199676267138620387839742504990711251212716646969508771401289910311544245916327246557268144436112651896271698921746405633781399185514397689575704840828116474749735082639502326495309675918411639884865288696600918847515060921375387275821422035385634375189799101977997561303503387941099836672951564430008490953496589420191336414635732166881684307163814345340978334887428743930124167550436461259954304811964419222944841845808001566910804408690544582845268154772656597295449897854309159217277563257668854159668231527017671659124886872165441825955489790987798079319614066979312419906695716266415391566595150969768354371887964481301562591246540771065898850935778587631020643630476339901928663025853487089083838182979830562376008773687669042382488557590211227058647861985361119994756608894049843143806237396298197681840999347792873283698015472051697119212151128690003383280361981065791470269865010870419273296273575297373409166987161468824586499353729115984130902132580429790458889988410455562234362669687678277629204521856297302482914470992576539886231713569831949966918526074744073858284449005781939190165544324632986450392034710311185755438923669102601439746859117409559128676675582470119043576390761102242314918050054668303417737005778247552215133059923989032276415003034953780337417833888339292361363783842185716577129052332025781772185500098840617354990658817634825750406095127060894996750667849299479962323222436394611435121714926650324132710281056152017762737095355862661346368020150230196949133098446899594668594496701700514058558567601227474137399829210613674093067251786749143916630726848085982475249112044119877685875362621787084919248369636807352344944355841644759437883742412311803881944013713266482141509465369425591231567184537091587621224593548657497481058874199990076488586874138240532672797600943689878019595349160609944166654594752688117648931495587251916142905267140416772497412780343045427581716902504536862023904892786430151784154134793604213926066134294002387000708348325357275453145523106642089324544092451524484245439567386686601917007819840759459107260933516460186246871244227752746451088901756848607006902193803576382424272812739190229150692519708656869693969478188762749132053696054343135877546420564437160578266164152176722405433054409582183789726604685710248736069940795168001590352248868386363390841034215889570847317466471323190429015966989175611387413718192184751241387897570275070376381807348411955262337623754337713336696509714418217687363518337109035069985476573203669175061368381168904092672646355710330850332977775387555224636560066386931985891165191769369292561758205708096515887393294229568054047794446656962795457589176092968477417871354900786202786516903732729965197757506831031339988198626770442481968466870502530280828066168564515856171838100230386873575287865998910677297665673515499385849390871262430940835315894213224311126947956793825223013784858670194938709148721297911192493590943541294160977929451354024462722049454045854463573435152621148824126007556722584130506602237854836682302574428876951432952037067179651221306829059980018885360896051961405964594971306922496550496664935959937103507877938354075066472175994960707513519383244804559310355891388940788365530606664745478611573910063439305662792648744971760189082450047388957817351785683186032376713456571113659655896995950811639727208300114632748654966409244764677129369701963919795308026240388499511556531302751873505495336431288984497013848636028673188002388425716520132380845695561005323869337890159168325568755841966773200266789679787296452789259405183041663313090561171358972005083018833205750026682840699272911979629636345147594862258387647343719703902746836241973307102002755410912918670046664775034996189189445518035706904103447915498850308874780629094893154250857248013387714690103092210775943767913913978383713343040618403899438528449218162509410966880337193468298363469608701433718976453580257051458314782129278015060015543866870712077519405923846101950572197980736373988925483873293792962083668753776012553073931960524166817219050716961893968488362437344337499588324350686633820503089610940849886042278183962035778359790546193276483959638796757493119742227226665394374449766759761764650716011469910580548543275028122810369309326797165583481962099043130959868568181741735345035638267864478118639196646913939220333077976319432441171006958575998294608280818957274016832375885087102249541203098517842476796609687815240223169514262105560855949794627512149554293772419614881918717919595666556649151227673635418987592057618360351292412996452136948067703698168041452338420127338639343149376609047202367426346883312244153663547639149350538797578810411235648202274825255982769504360292883815346209533606947813501278941599292735241385834316260728225698165907351705105143586111479258560639046645030203385757046525905859129726676483481508359548850474317796367272294877461357661008785942630253314458605502168119838005003162024647190618100203189609310460517378584718456655814960604011225331981941739145723875008368388129155103401439004900575519547845065407927722920972274987314921302122170116904817518205570166202681184451364244298663465117038092248982001708343188117034930390224604090221715825022152597194327327438723050323961045100251862263647991754479872978556607226148173594186874282034969157077009657892670622190209708129279477054960421046312639399388194306233890404652926107577938895615906322388416477283730091635408282676887229801631244081336640156265092541155246888124764978574353262199735250698138913167814223986145384816982331485579560278235817818416584019125299682151921581295427422507412772383856385983677995246259318793257946161088776459060087649450503619492785434143348034139232858300201038780580054384278667915944223201150450657380264180721533941084042061966429840481479913830353709047374479773872999141627573671482770124882276311658737868909116680346637115608072626942474800365329454496426112522938989319334459117163519457035013198747339599514730586620236108947961614627867962925593527782469173962264494776556414583893068461774317926892755477370045611669947379876298455991253128579783128601767071225123052431764648374927440740865125611422497105774312370576916699643885801158663391827964923153876107139302870842943932496180336671284418878245310228889110264791526664997976880625652110676340353670472006992208319429972622251513901574255454696536661364285279542568804792261873139013472384358423386194750015145774022457679781954928545527552623827115946549852105436873503766738815962992994595672441345983759129231910547312472127382263162363297818593228940709713083316201722187190528257290953321547353899386813211159165732853669214904474699999373875563215385587806332780870160305416546083907216088349428386482708971733720496654721056940911294936776132371295411357765036472413615864050098954928563195795916043452888325902932336681659003765903978799805468611882327118447150116626252408249182905698469711829706760174928746299474868235990449621662325941324592111969277949595910257413802419575576789481340789023147438971082269153216791365376884190184659053867668484281668878986579035222601162853119298927887245272686519259502156326320792981772171534670620032778364774572056444975428319892558903058403611401087000444087959239983701125253295607215859059470491202093603830726978528211648117454404057426948155162758332267359606000852726563177935423003509758139918311089409250292780442543953815292095300263693443671184719537422058789224283791098046588225364286532972833768428870171417619299158173059746234522441163401253239110188805279123059170432455957072715466191254048373735285825920600208764642889578047218906646643091018400899386638542461004634284781044337403964535880222509790040388583152019987427451302807167476666438419260853826467406472534853798224100472011755637607898529511466612260443757476739471505952417155658528563874947743754713008619971755223153807482185507241198935231662608750713792684034439940494041495910744734920782568937236375950438271147230211118815009252708441774100114623366430559815231166784617189138203191614125117814747510034969387527329581826013309049214392498973364828300286520813307333877431481933577431298427781045884089286473893909855045421878559546446621171685264008607527595056349380536686775665960163768002658567366723913117809919073066028485272440543691570869626357930922900089986533561607092807055742966237230520416683736060502480095684980774996364929809745306969074752123040138817761283657101180923435972079643170677655569287833089608236039085519532936962041655709657041357340551199991664743836043857053298989355488534654905958746293028300928363412444470020573113396402652674722914641634642932923599030625688491682458781802733861828624641370303064938678981467270794605792816847580557267071100051683439042339164756545222297206897206279302526705709439933351444614498893979405470727875088841294239320260580665360419351766617547147388070831160711100324282742036236832938223138252588957969204179684031580224317830996476463071401084872558577783729257545173183696048263237054877847399877714866391637844140868769481521714924914319629691577815258673543936172713969444949121756692175984666683728760741289141133114995490123047783594838579709996288114794470958149551752257781262511346596280724011844900092411380949561137727532467960336769489143244537901853523312542119895296461422126006490050688640247127858945462815867546093520170386370444921827727979948727378573518169970272342697476520427543893429045043197548562147507415671145795189726936382171935628336743757297287472576028945577331947387898765045221801673727433671777102776348838655541050203628838886673735987020271813073445025634811403560592678586992128893908755461013755080340778042110850286441808151416181464140989207983412943015747752551593890513294069023909832201208276590402755995835032073056500581573477931506797291233791015895347802287256970933843610249200947594589336717898194747734985447566359324810174117986507599528335524695287891686192282536981936390046986906717536275890719850266304332907889011147907084010218124266367383603779844061392625490386337071241333459484722597840836832178870498302807797528743988616253759056724312048297177123629206889534808069575670182333611515862995171423481944449877286990340887587411246974939623483690304098134294285851724277173921656954452149426605266069247514697440387273919002185008454923795975955727743810621876188377607766554250449547313894870349042244946444310186055456358783666294948475869642571181006782988787455808516147824545864224824967660790524659466830427540419166880462009396041041451753107544764782695221195342785590166926101476345938514335278470879142898239826846968211296249881584923689802910763447974037268089787301421966216624781797047991923594572160615312878927475494129852108359035132687850416519605075930266773768555344182583992974445500455746233714513823147795892015359705410925966619641911697715871403641152458271659965007292032944740403970715004394417124881553526930272453679979278050518844237953480230949652031786736679766726179929188798344834956210447187637424245164479499593721431888353494293221439929948250921170255617917090774886968418316302522789089112703360826992031185985671040369873550387624754551290896837972663142881783590917536171723325643374765379693436205529334642517628117631125204548279871329386374354792335074646981815739765348906362566263166291299582198874611745215710747918169688751011194231631705024113931667360424622703107968077172611941988292002113194967362974232882178790963058356174603737356536173003928571213761119872487559901472069726936799035054540031461011650784696141168188457194963008688224807637202892109887322199076276336415282877291655432000262999936566827317588447733973540413433555979941798374875272381347124313386567069420355979696926997652049310663028757441554375239768350900859944849043251228025702386977946729268423379930951524505697727506261487393688915418591210963366503719742222189916502581467611928817865612646729869587960777815268167234289767390709425074461851993347226027085368160078313410374130265985562648195041575881022384454042977278751480520387418122824444559805758310840911388009975666638870943343163747207028965939954724896804859847527182636179222695716786300127604937437704617922228571916051062277231862142107594918361043505080900902338237995783771396687170042261157071370369819483939619272790477381843775070192571421200287381415502875543049540908631133034211897277674491322938938686500791437825101528684474160222195386133948531454719780452224004496846300072979667655214829223756467410072053875290369066482081601293073489696161526477392890787100141533993257965077278715880634502121901322363678960504907363524949934232511076931623340421894799881470770432967292676921219520318276634043143058630480584423880599915829549903833954781746628202124356890161819270612353427681987712217567384363463575496778567582844701044032254753473169987580325746331697100736041421913662985052892554011841895437802548838284131488251348946597922067696769309529980375594516243765308701652710912626705775284400062945784171116896318092221036067315749202078244816294910330251773658137400229616968353549508795256271048283286980408169469534886791580175453654517385200041574423650735761922093142649355567344746539159288459653824885478838779929093020589548422218383501420769272272937709444159975044366202170369819441106980416806485877622748609455466714904858366501756178191883390079869239106338314598060560450478709788157241324799124621275538328102480976952496216446880000881402443380849721803729788126302283748964476528805463507981720424439237034347292711058645780665251754059680083345264013319225771970679305668290524861159578988749190233023391474968656150503217478800275917310482031537669817076505129907953983934803058277412759449414457901399099590286883701707217311017358548308838940865916357178031802083802105558146933852134405765748427753388967745105894831135777023009171009961817280523073752516518040153176960231795327418935997946180792603181132280097334884233087004560833419282697057937056568191112563626797291672679534633650369086093070202129317005961447078512533955742530888602111095574767291856524601985313620479377394935043248667197090959467411668889131927880857471063916660173074542956437773502512377846514333453241019051204801201699463420967407661359386715461963448515754550312236625572651871316091575785183033003329704623666592491528414405818313636610094374113035497432423862003288159542743561405071311774320269148571725255168399325037050750495666122045403057021434338436073469555463476273679775668973284771208292199942197497629024305920477702882611893727873425969985820856230148609496665135462001353920707747336113894085585715743957351462169427395438152479258571441260446312991149088259342872140917032895729352986598298722697909085831040222991907028103543904694349098701508473019709616910141228937084607364089869709074835001211860360051689408318734493694288792247400150641770953387026533345646161759419054993862778910910742752030281345810116309663155224448776660740963279288536827927269648002046279829805605685194194642063754312835769035270013927429978209198285705608244206081907601466420427164329056231963402383432691455853952407324665058213614772633812430294471178032164274863529637519329070308358931176534632083970007065749314476105523159362614203963512810462155561311825706535064230312411056514003234278367543349817609286153483988280887046190112131530483257733575116926992057495857233037952985795309091982288115769487173987011698906400620877319951972800211023383370753624201341825413882097154068207741589527416725377197299110959100464859415919474450522888409940859360884703830137309255491916521064808949790080751138284687678165347177353229805757494880181457126513136075286014648659614023645312316415918176453158216880022878765479476687541040609240383217042939790271452687058847252959680784741869880183062176820163808226870665413348198318082154110654165779677633496912306485083730804883101795594042271602248519783031011391530934302413451474371524932933472654485435188579777979361545603963737618486622323969097400415285545274061902183076377230461214063309622255450046555314617234255010455315685027436806868843534273363870415453254177589910537565433394568691927748827789730541379563030816196338501767813718963435079248303209987164361202557330591400595550235675057130506278315096078894068642280433344095400128866010402795180642341656362349916357743277604845991978339839339343907738852486534855329010764501767646898464228780793047987391451314213155713985865020503309340308553921382890256612824412331995151229574589879023374119880341534634761706659971154047602265175991344720027628154400948904519281116979648993531796855474780432425807725959182769238698698013592776497594352796902954512583773369263571283503509555806398702358566495698529285989598764282478810047995402276311378389042569198074825280626054035482205089878292938216552824888769675358362507864146911833370431230919639858100003125796392844609374148893910809295624493654761766052565410287868354025376036011540694976815403043336538485133452859637132566442691045030792876549040275674472618775270423384240677931731902303095950928270377963049563577502761036752331194051082884228855397462200403332390698014222647659313405606212337485212447831478321524181363188026498098319377851124089141123840737658883951534678508177232489809957359024103701497597844022773559776130380008215303659890170242381469258395437411115034100914088061913113404099330735811422843930620816572872558751130513503022626443092016562755816643172875757907476176396020469039653522005991157495333527102868494738917195732247002465134288061004422747116072759413049033951355765523694964424805749695537667605420206321629407511374781397809049885198717477147843456875752443129016811182804031354279905034613323870792363503354521297679010410195659286074863341367554282015866930663746089407011562677610715621320348928436219200911554892584315019502231941131244423480676178698065626428344041354582707697998838833550885310099321927364028352663553377226533795083570531299538911598580167303703455258402243802336327224396076740816586941155055515168902350726772115533848116876005972936931112361461112462254115989304188599410642434268212505038324654147892740093814951106563450628894398904022763237033062353389993822898432740380319604429221781850914628409243920264273344109405402144570534864996390177700707996919586764345641888329974683170341037068397831450530350087100586094951169960415183708821477749174823742389264511350610221754605384247579761271699917342337237321586781568202027030622797121450915905205996562685704713095957179047683488268537855801235783306481782809256656053133374253938445398937826579434741472643942105201724608835298356771286952731132688766623520180343727581681994176265605510924480946604357435004969300363519488124528169553730153645044851764354127600692368815668586064806402971126145913546478898842723334668660204687270288866576945846730557880680710030944813806259667345586388575981503642086741848779431519740667110583812897802352261308091030586767323532774262679438138670239273397752891520259618654420374937042071284364322978659579647739725016222654220440341476965232368580209823724325940301752562574840438711364346857766447140866224752129545129149478528411070922891617021427748672176296414606594895161514373691542405718350447346896263812347080887252815766372899021390522048143146155910739343434786788149662262036756479416464418995855724133327398951580947064615170560571294882334776548150430775708009644870708931565004242091415273736988788674299172840983557069730443230430781517987312047441898992114674806644814618788427976611952138548753554388821148573793292485466994425624980424225658948797965688003598259193691486666319045135355712921565657684594153827076989415461633702762619527791361536735100494384236158969725414735918190426126359919786089282937112124342459288358638080551269187375700344061371089763829864560348973340287860220227248771043477317871760611933350774905050495581558871150773805619287896205491921518554829366229881442802238827088983012330827332465779399697483132391645315751822659974559995885022169535457420018854054439108458995467200862217142432977962754520343225707516324779957237414482510464998118993798595588920344321055994123364080682524970070467019174117364659989982439631712962737764113749664722277344957971727007995377521925396576900077806726088748229112244348985020763130742850953981730306111696462624694873303216318295688386725263857473576253013159722239688213198203733586880412691040546599449188610858372594895637556995203014184630500703641672002818468688199032621297298869720407693306798545915617741135444285805948575090846954773819664737347127506537074232814188864443120407019934563182702902564897870884245145016820715736009265584542845142209185443391689659062414049838705094394202875328894303416576643883671171638195150680214089284933686082345592993915572904766229823566323201674587780355059412572221963611227891030725491392899904468486638594654135007935155683974062984244214534240776435620759546302862938621726510012019158278028586691165619686297601197007586603908181709782956639891498102441663958640432591665202113396171379361992200834239429461460356002708014596429006658524449476307009026966526983619319149754118515501410969152001129188386698531031591985392963866382298141545600346645459660634828761965013264734823747212657979121545631913599222092992738976616686098004373664365094805829274062369587656663381500098404825652672530396433638423797828003113855202672596805178097617638826308724074839477409706350710026820164141648954903442522538558788162643776058264934340526260352069765698710846688825727686394668929749486784416126661612326527001802848869365798955245667363427687734701752745451900072296015103164326576589348597203506536198989919614377837807843507958177112314522926694097287642997873010169737083148015331042873165452779642744329285553909130756012428274252941565788157175972207583668859206152796947698463158868121071740774261031524722414586085931045623662204383171991879788333982968649790519018692556554590210105090838139791664373329029314196894268034670635565844199392766586345765992062173541550999050744638622505883038068073898553948367615421288856452386119782106063179629767676160381415022456540744397964728092861480229118930913057861664337872209857583465069296131867146740206107274413429704091644012590478916817660226180701186630834625349387989802118893113391424921289876800924397546048420244920992454847755505038223970878226882551560948576014017712934839581754443884362367130282396245065111766354848383847251732080263885561035322937925212817122858093586647982736552761407635775220761769454371217861795789513888406174036591650028842520194383314466019034297116398174102211543177470289876498736335984728552414012684676766494253273731730057114161574324995922011240772309736314680439751545420420307354013892381572864544099368202314442491924470577192322776789935883113596858944762392704024594740677076302787320772570681910619706255198131940346669977984747405325900222841390613392353649814513857978706742700587585037809106711683172734113287861699765144495669064280699460971501486561368760676758552068343259539572470816369166141287371339494342336980410284872223270467776440018579373289871669395336526698688746596563596165750190442522616324272076376608629923908617459641941027596820533209086904512606421884066906214342486742702224815497132556196030166804913636565005189542662060702089087466241470949577678040735641001756031674655387001476960448999506231379411652807147692197546628860160782431948285883864656662422776535839340077322940464872649689850933633055350889660227175178991746436418581165607135885452297274112639322587350183079933760676293111673479171739212813338444872824400776521270360148535097218583572816669083959158804165218276473302837246950046850525553811314276569323368499349259237862121901769544973706900066300730639399903487466606596394225599751353667535243527918275166863371800773164673656900988516465057023837835370919139016536042474041162887998364397614576613940660008875809574078385523813573033634704925471553967249667177247921324328454358978682559574890129515261622735996711726033249630109905737988088648471076124081200586953807425846648616190548713965247590947704014940778229396537182130076032840998597973824552940455895782618290170475239442738456440530254232862965823002836744734673721035090493016529793971866538670723822100393940994600481817778175432770025599296864456989509629174361630219438731553691364764685476189952407226304817445972224297278445247758413232623971644256472282871176854305600883057950407644162555602307626135607204235014877620355988365262649408318380363723091503445891340263376778062503567977721956102905816729047097349334927519066527682342664124439275075366739563933869573111715834429239263259362041845999943153783998891293157594034437584987374596490801095332769584141210868648273532650363275832890651704636646657221472728572074342808047435820234760582870368537016738771090685929649230159030532811674940296040062039460489407890073880879521314180217694375449895614320514124561648464789835755830518501506472031535358009446050941318086384278235578897660481024396136848079473682780632125881960780472477037471773967440597385342924377041963711118925530963667801501645270333559444872460328280346894716444095662769160583607177832939664849342238530344846789339685916468747683709534741108793684805173164924260663353492921617336328824990416972528185185758734043215402952608356136311521741368061459584707373010278817612468841989636619732102469694125935572682030401448871887496045166331604285313029659043790662064022550042782327868822093792138346369806969825284634195583558450975427302057614114889270857581322786194509511631940034359071053250932477342570799870392692769823234485696712822055276730211032593846240049926168810936163289929218983462005225035221070016671360465314350743392101323201911707821677137187049003303494682295922365999149002683153301092894140299420991710447745634546169679784198374663886469855835523035960256748233961926773596484793592709383814501483223607354790835485400748713193929360486311421286008468788109121614286913760624173070014099529941301749182988860482655792893978036053940370686480732206216016522771628384500927364165167857425183656734280088428989857505621101254946959883275911763118858091571798018924457967584739618447922590761262902460369548884088045387340236494072231847986890247578666997515590112351476974860587639476992457990447868702862404923743037651426424865255809845586852183103290124660509867640876021802007695209918165147142758234349614549748160884140241455661980522514393863664964408681262889002188656308661562909029929977409142704651415817946578763964611800421256049205503440968230137251911224869706562148931062781185510464784463760596925961635192088485655123103891918463204338884162278566369542188142033146979862163665016881937576962134800638006153677619803199633283500493612285859173693893152624263174342794951555434191353431944906883274139853660718082078622347087770666352357190727634946146535097942793018489564237993051282812398590027865415530414698357411881757315922085149441585841178665790786039200701261824107769609650726081284474354833269937750799210703469655622010844398459308578832330137276826706687374009128267664622410241599524811476283086120044803926743400862232034041815544826602434222739734078133112849273610481102077335343998707100620149615798530367659451227822254831463489560261162192017279744890270103329431391330053229940173851440496858358080033869062390769642034062677938697898260445916716104032868848630365225424601795514690608815134104813762146362091247608592812137842722553610412610173725009541792249732119552672743560160789094835563294347301784512921437404523707465710020974417917176537604436387137538480356539944918101527942981820009711101091703552238997650947267637471622129316584573492657321185569017594902535721757264955716528422340405764139698819246707211266491844691391643425516142666994838964001779566351673575252724141641066428522309643208982356985265038979337043655640942276770618071208860488849049544374204431509803113018408052656792763012875062512441655567350654430932391512054182812839908009087837245343038156447372632831178725075468930765654659407469842834756846583606674866883090528401566280181380361153369531227014854010704124871331981324866961704192802959511523428501124494062334430645662855494711586602945863394395069836132688321356434441926827196048085353110321833432824856730239371215140878893075065175221987789547166454619405088938175985503525209938967196433569298914984195293233212629294894855487637398627518362140929104813894478021317063335575790827708137407498433807889374195229811409375110480990104479649280924559754043948177774084211922125058992309614655672038341332032835143216534547810271977054129413317522164099903587462868653781635302356976465868753268601843445491672462998960150776020737413441152976653715966586386296903580264662184800251605892761904686012588258770730263475259356456208678035959988034727570207982844985601789376253789249779162966571899753885256784120556509829974690806952144716823844628295509254704681914338009707144177538780343552298375231447703094148687146694021519881176455248562070586295221957775783490269220172098912933529543513871223993496246015771039179982860409655992257592809449822548632117034949679526402851864644965349609302484950173882887460117831769845497667806530096680099956834949214279158396957459700871357420656717287071163419267034927447283716375596629581015393636975907703305087393598774007915697751114518025604974350498089851389949809343029638210936903861131592919807392629481914069928799190996267350708081846302084462492877784322130620028071552954498741371317104143204967924102149127508010588564156816159422917323348066334828278678698299433305055215397561570381504814209126690333685422862623279604618026746198781424264043398242836782047986444625677655644162845279363329417384019752696050078275239021851166982138337473486062934970867851908453830164078187209923322909733510636833240537966556367153338912736784978911313180430807678330620817374763453476248763083226109095817374615824633235938174884217155223696758131034821941962100916411757689756433042615762875733601293067030640249216727604143823171750386295663490699985683229258309735820323285017895159188401110854680136618811906073094684384865426602618758801606597279646139858244063929052281571453698721013352872265722411150302020239779070288287802077628198497355281748596468199541581328954204180072975794819861581208838252255629071012784936383996582002194948929909061448603305034990247680252065708813543987077379890081919920674324783825235483598245328670138729652441803303091173896043664732865667413278590286455875750667123751810508923293887434265179249943986003848396321483621869865458422057201583103518431222393649184565474839910639835864872627155045385276315897277076124719295248296734104420663530898614402225585675155248136087845855699545561759013366242086045952051788844115195789926865054910876762086699109515656134193629259245897238817732798011199131065780233065219363143500600679321467922850301170152083232252891979103812807369849806535745990900970256097198628745564413935739374828603434764695186201959847728827268264860754924791300131843745330548727918839984841216623471415525463046694586132039766992182100295175334825142612869765181868197042534359782040961740448944733321357608442905744565635250279504161581079289102632701261249594543396708596437852922213046051638515293530274115912267571756043073108326481386074852489855748243570226339387078510277743570618430290392786099353140847768843623917578868129997124461481393146956701395643157507764238865545875217500231633370780915982434926115100865684059208601238062106842914842812273993643258976868288011375410037222884985638311436024926832085673205838397793604152748471462093125285227981199312733580209931317310189905743448123346385796719496013323973317640276993869172919566389517131397485846148327758059653957372534073939206873050848105316465582116002971948163117613990326804079080226207316970117594610932356914644487116865140189503772388998420570687444304961355109392144064280243098741970632619507563549232470045678691621077773816709564780555559603408311563794467222966505844375886680396086175958179462866990125108755513310686159744864955604616382255551327277960167847419653025996843057485098846323000449289493275003234991221302796138391066051153738209779629124720525812588170398525004618311192014565334619396734732820350958001624470463671234250677670402152143021286569203368783498118045308617157619776052390130306010551135818228644455045338758091119023051961819719961956347635166793889644212197000681604110422311749961241738333495296348118739689479374012323178299607491922395490490115474934925212970974750877121344400011849168754671837613190199845033894336954693256698093926041525969834571475064541266236716321567042072415448106050513116494447136937031691735535946937484923695200127301764126084506887348030376312271536041744114375795695814785044330899865800761929160654690515143370633725528943499805657418418983719925316636465516361064197053809477114207920779263807263049471240512425235361967677249452528928934397908861601226553509744217354344611761398975809035908916313329130680451129268719596724410299293642289337213829523213351029685075460144798736979570556835629187667007597438201306070124791654267594874086922950791833773783434129901048164068065948055827911121998912309982413453017848025660003595465227342576335695597657033016562357267293089257726142907634857224640495809201209404827243635565909772324261282546155718881918227032201464632285336214168194921846612519817318065146056962799918867672324794777221145649987566203420003822777969647023559986434162915789366745740218058539771803504068107105321778025598674294519709349778592599761041252372087571136423963849762017018548533722768714109999649795317413367451639711601628968253189506927743341452730372062533146510133185834618728508773705727659397431695575359546697581916719533374124600270150451275960966567575148571723677226706487486649657658820308389967362525917669212852314063832643924276309855558603326887234293674544750429613805789428662036795969657843983426702528391474506042648977372855781707253124472145674848772887409386397391381393249632348263384262875401813268138820133207434645315840023410338446333329335151733409925030960191797229260724138188483332404938173958548640296620452252454842697174963549314910911255493191541033573283085017055211270040289289923658976886635338850827112614833771124251117941551371610675093310814627082464004235921193687102492544129169675904469851804519004990506808274567808628636248591391925495364546479169661144360512736796631916354970943883299388075693513977046133231907021610167228909579664146181106116211285309892961353574746015045754847560967452067860605693542923700981994151869311058741702027223423802242620368973675550846435896566082766360975370643661917616922891257549205069077257549510242226718352327340361097356241689710449357399208880139040213430550431267388027953560332735860148839592577334979303024258788211211952612757917587388672377281767426509809319446176584825854298327389553246148886373820264330937150047264920052059884993107979810877303000926472420156933225788699778668340187300418671082611965824794725831533360243079689228541543047330160909675334364692864830381250804986451975874378601402538312527713899167812639005376793320797648812797307545312057025777682608940716148130438574455895595764195781049434152700220920714905198789669168334171791961908498076723447172261885812721556013010216022080554593382517045694612069958668791108624154714710633165357460577024193573422099977604179838256161926882223321515591584633889480219729406549730609487306775313044731703506935967921873620911483131146720522219731354395059969562119046258380562266760371934088183066356194947847702308398228291150949090660147903381709070592381319548434293287396096273761457729285571840250116205608193863660565017366996813321860656357188950823366863944928889217065401406065438545619829844568590198357498463755396936917144287550887322304022749578746011812772605304501597655026199577048084785995443119109962704167153912421646494924553556324056060528186617311415552394426630578191282165147873581717997147631171059723035604576077552891284315332449435958267935873954746813174278141583096086300533518107779795458994928335866651685638063033484691024800581250094434058449050785326892265910623943765974783989000946080910440689790337691143510178624498522789135482766162460209115567386608685384681450669971479115227244635431531642160416480147857415781005388955274076605978812081277230152197776703610795227193955268823096585327694246710069286611734149304386615758481193914104450794694842574704893275305517936025195160618546226008630957205183269110588814220149904936869054229089419501585654412914822639421044360080293944423299575604350445351600400282328593572909554841407500112647270104787363908524903377659400205962677528760422553170176341490529736242430560570283691443813805070734209239141783350092987591263532349017718564621803965929211513401433533223103174658393381238458776758891858315221785950034043356981259515321060834820562765419411900140443735475649574461573124146706624725435328016961985983249609612003575166222713196867984044570401402906481195759771633867328274250338396043015957102145081994072989079840810960419509432662219479758947500142002512033131267415747874685610292311594322068024238916353319190113214443526921016198473155626715129282091051660163342055181944910949604688960183633751664384846292390213736082229709984179756559905939723771223848995949381576693945254607995812882003624967417165914219084423659541483983753636346643020240314482787248411604534533753334003630314427045789536682232196965730954607512559165883921918871175543397032530108835239732730065519265788749203964336602032020898078793213519051585995015458498455468575431592027362716602615091437399773602835571242140464875440360701821690090415573329300614039779878675291141140758285940728034349591403301060254543461083588662592159120039738941614785132015032401901203630180685698944589710839227333307041877587537612403877635168600703924908754543366075224174964228367044405959873212174524885783291077750996372664788341219435177645948437083431784572585437736486103173280223746408744996922205883244847770288401185472340893184573494291652947023198702092901977746532802864880662855889141676658090380964044572596477294310017392309103777806363565639371973097133075646612843308869905361858844549086844209532136457962029166108350986129711217861022844812095509281148323827676571347111152709496774853484850266962094316249347946786579052488849365510786478722464942452944998599718933785925091850292548598933590719517758556703590337782689508195024428268186302671112210559376499516379851946089388188259302826188698321157509819562116472959060375302834909937680283984767585360342787833296723990497704356403413364523434533633259021622515879229382829632349836836887437870932662477610646119684784783997554926768399913719339486297930741362840396951490074049982845155116811400295117677530223503937629190433763646653836587101291534499633276697517259200621807050280338376514837434509964101688630952937755966963711930262942906461987895711832788567093709843726010979318890465680203218356235892826630604593503408084772761036521900630083100368719396908772254069727511871080092559063961977935985655189563789522905619165532200788437162679380821644325635130331239586591008864608859007269422175706889127539309720200386041304724108080086859700383755418123021284338207437410401648080883603688460576917886995686690207528964376953698333081564343449550428378803744789525231369269105325771363726039657121749536557136688505904551512260347449314697067830002361530978924747016468941898695228748451595399283017545957569104875182374949974637610196356652281702312344821165723775688839106626013181127677474043194204943125911261784834866434409174965519714767644786115646057922906924320150819446983402668321648609736123059160934314313784515875493588142681271497274497803932502055865328644746382624154442573673585796876940231482849983312402915619359189534715629538103407923974397389901667037971620125995279652136916322475115796611507194446939194626593085949039849413784207084589975330706376628023370532341356901597245504760123191608588170395938785762212347372732613370593425450823295937907999275147372575455823847198389735193845652287320382866093711990380986283068829011526072245798593519877365910242721702634074019437896479580955959098418915881312698168742174882146053478564980783048958347008945573177897258782707209668922846571055273448213144789019292834990298901900004445497937690904957339104804302140622773240661482652178087846951073398881387774746994093954175902804865551827508328285067088105859729150338608513518355694130880331967023467538462025879193893282960970990690830753577075860708635868553934639461656852180886875675725563531633874629953018840915962684136615250540132076553705380334860767047347739078858983308125514893095479209864617735919168671622971875117007810034732678959720630330167922952081956108488665554109854589726231029383568140073642208508105330113877314264320860166784896344022105405146876118250593946619531163157031638444247434697643773592179111857020346844503031465593222744856036589774169179500887622763043868268550691751674104933423915426622195431883659295976000342704953868667057324944899907635478978035662020863653177555570913326836857282289198683581922298288961278301057248795844665002728396739923250993766337029808523956895467335507645742533722047532794169693502178751487795619346919429852823914314482833069002471420883645458709967854346598238332624507001700561920490051509986024699357629553347389893784212966780951717644419075025434413867510294670625776437548664830840067370331433321133564093509660236274735039612339153400157496188130916230957051503439398069100853335268961580097683813777861646338290521703366070483956439603770208875698104095034357688269493934667812587495534505890620056738285072591942824796445863323387060426661806852722908548375214356146679215958124011719060067535658194858381456299645495251833543199193567296455213592921132240237516489963496485316804967945713662297311722608273452332428014418235972360548990826531377589478585162090384035623585032918859672755174459297942880104283761094331226918183541661848440360137870808474439415138853037022834370939993349341565114226336029718825845688493391002683501420883863379130088648956644983269865307309019315954501690140899709591159452705751718521926437403928424711379114721166854711761964682906334774406543420092703952696069330238417964134013547894881039853898890648192275444627248403288050633339492926404303921371736067844923311276294060442770482451245022290474626818965920160201989161951073351975297813194254420244670805213885677515326374364612273198145375186563909914482783820939960319881782205068061895121054367802457206024641146397743376419582888959076647045903402174315464257027890278952841570863896078715044894462142085614496138508842232248771154239836606607207638124415548911253326576502260187171060931790919608418695315347456204526959339810302892697191085260316353195562469845688695178534401778472898037797745724841024415375362833649467186485273930986066479908650994237400207197925511138766765486786223383590381360746222182003577934652136813675327372428343141555642208686214639272371122992617199699730386384782519893759181175536617629187863296901473386690672154400606500466216956635652980639316283644065709562660341225990369663092402237619885784297078158470383283357526801050927100670911092079585024403398011388174186649447327493570919549034921423951530168113560489925133503644414272083584069279378839267696373077837784039588702678375934150256108056093662472429726123173974198994957788770557963296121862963025053370503909297367354945899029650949769732112851395464755160061397948021450293036803366329577844722437389229373445998063611010286021464748140384544316440209472808875800963434875723465504224013132734584498454010531211974490997584249967012839129541677344427058703876203143637435942507339598234743821168688055029474715611347896014213865034312938071552403989474837243058253465344639087763481362570755502400442354002787343160978962000025671314491546151632928256411861876944265344416990000176112075226949475015323742681382113751344722675182519484929629002543663857118771652252332076323416013183059024623848094192736093764952554986842809840508279239620064236664026245382376972136368391440700667640504729152380662260218346307527739102195448574971147767082348899117588373282920110223995493013489140806073173018645980355938358844620759014066938892025571600734273969136180763020600305604586589331224215471498691791596364256019985998210094807870302315303752043875740598126717028873503945709877679202521736496480781062129836661617599836640242090275586297521303867762055214179126899235001465374005497344230855977786119457415490819228626227626128137841603640388186579026925669944001447423529156426754195624205096151135729050598525166740169273537334798893784896422125199412846458970054618576767040330836912981666867147538725422027703143002883720434169717052920787359350781643325150104562131020009426077849453009148869489891699155652047907740139698419630310366633968190510574873305396716254293537944669803367595383217592975769746775588538897799797353416316637843359467549492142193277521701360842828865696908377330667351616746803850967481832758867489476514341781903854974283857632759498100694780165465800962352195704332023310625566072604976567379697405589190552803100272612315954197721684823589299404146834093226453585709530249099305796695095124502198228269692496198154022240326472809519749229687628146889878946957848173255143010125409867362880038735449188240360927655317521916354733162622690675875287688123154511521268597830174810994608920067184857390701591784060727064112234447427990415422642782337071406519523727546104954030515522390524036656468734249929671116772575326483456359814164166836778185768182783416667594601355778810612712053941587516717800255802422086523900640447547105891562860703374702865648639193278530141791268752734965695977663976062294537379681988235587262710320446064079639310506198021755734340605947606709581911227049047716853317828243545347346623936153319748112270054920601630674142638952993099838660570158676599448706723148177390108268686052185138852845624547659358194666003377264789283599862010624488088529815152317830021440956346684377073324406265614246435318726214650006235554176688583895063911042826335495510689636418606037652113085264195639497538611968135829071571000581384041969500768461336794789620136405959296438797959168223829542569457941265458569959933864693927376947500085704919594208915849620730636722868457042029356398769620511710180511175244386800893257086921322884010435672002807441767973257802569945506784958651763705560345000191370931833780422922515886946436683345672851648673053824825096748095727084898936889129018677519140726365680287724069942291579352604181873715113635087185065836145021897568322786146868192588312859870386770460956640250767156730099316288530388392020193576069217625308944038996441705690634004572061166896742475523626974305926804958524371120638360760128059932666521111054465250069979604142178047335056982472131261026249668805176973600903116584080383437430244694399886828468072963430663662964769135734189045752412485659241838024714221061483294028045441893079774677058908310702439137508640010725268484540734341573986864656336292782514937603851760232993355715979602189467959201499845960218668005692709927158381073675071644744157016711698473813804565305508973667508399671843383022836228481224068881204209175169143634061747288185461595096222676870874527894034242886318356920306925549517681202895223862901913796287624468435094232462850470985244710407785532371665136783344050173768724814050687117633274723217225665352660348511158517290305180693960085494714805854507082933357965366182248888733118653461296399916020401497313663487605348746181619957792678121556545750612909807687889003179350174708998655981571469869906461555044593023321126713775216522863645604136123582792537963835079478274463821270441111220018499582439353581946423596878813884694309336022530953418000258751959086250965361225469265584998633203014212373241469163921155710298227114346742578071510357284973209593806034761579807678109888035827189671008603673838242525064648888408635399142315592802118114386359460449220588361327875335001724400728510170811231645351876294430168446994304849986221111304037484166672969568857145445518676013249241763586860848906905988605099247884951662939276501102417045558638291061148129470848341176898741211296551033467181999088545008738560819257569662837009562633678437773236140396857831349249722865671743762686542673202592942646221046057524456691804358989883050039483364588593118005840241858987594993023747856765441703226644040518126366271565758485430564944438517709534164609920356352914110446749208917554578189436229121551031633947156272944336832526663514541692373820646992587872560934935736195197277403712155740425973820361128231733706080926017841952072753472995536159547673847375933780985789623474789521263265840783063496360356049525490811690832835976954732898150774134447333238371766932773312791090898309808190563391629270759291569542983397682327257049631778554853465943345211189254449934227746502081262036368479376571283988139899099582741274082950456368754596548861458353561929686953078830136549128619155227845107477728772999890803142560200069714098212009914197096465069434589276650115856704310566207352390399001540732861314796467456731020745966369517860050038803632139190894118295165072926044685049674045360632170744484770959006777844132750857685838539182214408098733511104492369090215967279394022390950866392269824170933868503425173051425192825274197761036150786253582106515159035127109589369660625845577314709433006323473795297184250656574530273964259914857049567688810940920185588413287887779172830177266993639376237470759427870834980160119255509943486083270939869095779308087500961003032003061073135473877082443591842965788227841661020411473213458448639049134454175607812391505290644943367480839825286336594608206986944633656791700338351163665772905118992619249207783784491017125403303592471899890568035137057754688079270695057511086391310148630835641642287679081043033933938651007036389668131192223734781177381167610290774674344510027275794865921421004522465751362929422147478456613046494711562896405747196530360997110040969095212751554483552769263703405230990369603287865302713066035377959326510775469014608097841582207732029783883198897847889558289770951377597306369624782019888790336204079014414716732991844623136040360451560982667783776380902956852089273692940517038773256851842172502384501776387294047788371963026828715396809583727757846025636231415268616034626373558313919594194538834181194259157118119454535270926841515963234346059999262411286018278748576557438244052810364678464789130777693888238861654300797837793537081824487513577449062951939587033211730800064941313316125912350084812272671605188246528786196758294786860913623510822180064698960887929012029366290917697301326879389132161693174146757710637603368137902560887496462818014716292304059836595691571890092337617247302721409430766782725755538895393519528552964341366973957298095842903926000968027159431598636738910300841239283002059418114371786923848669618355410460637071050554067830496296843369011892322118893132662623708475652907881446243819360830678723569265380553088415530003269482742203732546487610973559148908902514044396525344840337341356935497463404161070218475188813544811992707722385920435433918169097326542908318619504839609612927642467884258338606158008925137982281379799100979397688943222515174101307577616899051316911965363655543835446704636760272859176402684340216543306121692324119325158072333349094469968574845077720279852364923010753274504530096613371021402696704398892803859523383323219941089676619204838251370062388344767393060475422637175106817437387791005890372257890426479127335751820898110086199260508577151901995136372309658105183933529491626363892686147830645058917390580135269102998627765863487439887259906564768985774445265608152172068988089812052886350026571279133616889232822336018732542282665143177241477658709151683202313134957956302061821635360746732258364139562771302753562565308153413847834206840341809207888667417593207131416818105255958252504860237867482475450200208681764890752472273101848039083832310718668643507094085164228318893349140509078922014434046337788123148892941989633670534582265898529230267789791572649637235625397686149629864991656262049732098072656498028551242409878112123484295428908479122651179174654570986636917662755087270349684136744501703105797973525218491238558408934444898702947309056818170433700490097601734680709977609599232136204085196571992890873561525942707541728109964368707967758759214489915859165771420466018737090276418451141722826295837492030767928235112640907855387286576153781740655584903579626544547043082409271100542248387853038342262497793526543815212683253217137419972169601795200208837528953116518097821399735377603587988616789848524779355547040026971485955469781336670097365708625894164449122768098238330812124187770680370001885827614428787344344515730777138592242513226636866552403623860490894719474336262059097271754764913097947058015396180429128849873168130959799644416479552386578070992407070120294301049922243128502793290331615032674904795279714046178406926844492376063159148059752381703018974436449309009457844205944880173874883110818175497541841452143815270462875381946144818276126634000153606247290101746610769031223667042211665919948235246571441727808893603151496639567828016195723737854377249697451988235769067815240603605882759579484174448097767984630946861922361901578349753275229021915326793067012154205451305678149155907037010477734512630913849987198335236642807697737413590106051168061896368124029605736838469853306916831454182839066918499106097609785510624738049825530654710957876034834635842554628523173181102327263892035705573211663147413729446090114792904025863577739270762723882337845953802912972058013587908110826274373592277598898673492943627072106159117675271840781338165433547356778098113524839778542661350900770291478601898605509499275046107898462906841317073035590659974765883620401937614634423517761817984034159370280752181939206541722570725858831282704810044472866045488543322858015888350293967796184888450086523748307671740474168297100607665478272000705737100795015728212530971522720435899264655913413134184762540441649748829958738792139920778164835898319863543016473848828988206501924931779660502290871961457737279941449370255117228834059859343279005466620726415367585840913634994923556378131050758692781799237372029121894202576436927166794212136272077627774048943517503634090516357093692853418065502069640666965446229033277266313632682146787851336726528990720039567068176288013103143824500205424748914383498090309345192161538402896582943046864084503897719971680126302672069726609096557759175081954477706852113441933335970580069552609632408055189542665738722107804561016123352943481273282786385716800167001831908427248117495084351729890339989403318145197716262674242125853939405951854979663154001338667914536518038420540618250365111170853815404146669768647722018323473752818221923639609073817224198113390519435385160708486045699405020469140017956719210938882523942218437466628759922138851324131623875180169874573994305459290481643679128418426569264560372413443767620253474516237278415887271043617002562315053724478989071305178189821372331408821006679333968859649719582656172737219662641555623695761231283779326588352616904420444073142400195053391833153189899380989258938248047984551547381030209446708914404065562074493759067424249860278058557824300969108339005454623554837185400936832018446336920890127740372485465167540301607700194894850838791308211568399668097073851126274420191595841805448527382543725803859404111847081322899403739451631524724502885330077048365743786456037665606440596711672072067317110436292579245123946712583112131306495344927232712449045535472024645181197763072482249148550572558960135477538040356666140131847366855417773766614701600104241107757108900024294051175618355087095019554130739587456567949691045506659426573583069325869154314521070378351615816480223888038206912840232186395550088650518519517038704010548353457314824032984252342419048459177176268417656776448453398853600211053833313141394149947990149047529032928336963411171386701243287088146789003248284443622486296452581605031269407060242877913770641183761676564093952079062693118280276166255742533609830286719675350822474704226888965920669164835697239876506742858327201651689873815217043025115675158459488318810955730393740406225125276009588030523738183094974137955717030034103559485853780232165964976678204183190423515370431513204952145239045767404379904596103719262708754675455529082696829670940500287071592970516340576695524271495419287151627643147437926448569461422965014586193599934727654208382638493242977383747656473862026615810975302468773950900393867046721561970004846580364747405137518549193271688277125979532452593421764799866864948495734498994685032833804444526492855796566698006106578037405196489925373607769740201811324034663895592345829181102573441970641888650941316347698442070763627406674467225943023821413915189844149834770741271274320154863040887610944320388656868023243986150351872039529228122570804140023784270869508518634148223105230278823638720171091140200998890523892553782613384279714707319829872002797796576637672257137119917841323852811504490841602681342442383685914205084115547207236867858061955076307293378650772780409224235698012511246678691363653420964052530321777909200761334077639170819632684260404764198074873050887224915987171373529951886989052013985560172942176304657201571454749246290769279819539489310924964263486918125369345066979796798426046688532402152441464895745741352763600384524920982125423709837837017502043221606726468499668403819392917759283305848754075240610431618193713590701334210615364852280989931713418537857834444711834485274298923957830189460958423584029215325954548969945517596073242903240076676570730791631729302659319180939293934655155339939925542524085318071459480561400506406562984083280438719649418058361149508407528247785231147617480769407559513566334194838169160849107848944293625030067096256236727811186892188651835449878627011242818293756909863921126342667789448326437588348664157786338760502187475510724070991433746111008226028258095967641964102862799617866725864119981604238242739463654783836318269531747754390988548839970960409183198436919291839475848814448950662049614762181179466023399479709726335807482316487464032146113508373460083055946280258993935637147773392449815826750092364689495355390387327361922885191020691034895494864355947851956563759591356863252644297808048115559334872782819703216994732166393748854851147885039661578758070302974778697934737677251086307177863853461521626484474151722262607915704447690413866591269594029619061637015182426747863415461271590471154869519383377709592473169142907900163940004578029527579036427517261655541585727845766169133797973227203094711054844774892290846237844194826274616193285122173615257073376422242790107778139850908052408910758973137433620909547001419859091084080885146179993164112809905081093116475868287115666823549084127624457547735362311014179357308910765452747909531881524499290246561425790084713518358011406603215860038902530607972596925647048160278255812376635920408939929093066614150580153202150463262728471724157227476003627027010516167932719547050024243989692801261463073218239065444685150864698937379643912552294287370734494616040773777084839099065977222346504675559845429075309355599525385311276857947123328862776151800701695381197054188309123071861165978553479343051300477005344515695329469853083897150770164527584244984660671937050674654961654992298804710143644821875272887843781909230527258668688796745237602545028484087417391878771913191267374375372129618739540478186368482037382190758763502342652349265360639590747535824990216308595086804660771006371604266101898596371301085590735408936363363621062119640849517485501536986458949581523657382779648582213372802145136148627309794657881081479432011371430790519042995870346499255512430891187562349382208910811160647773108072178129263032523820855954333134102677570798250534293581573639793306810823201814743831131637007966027577793521895486443102284890688588926245350570359378863210036898776375046537653699390314908591915467678428759775738337184331272214437523182578692483902065411887433082645028603969508841713921242293201777088280965423447355562742997559037932615346772665008069119429693940509695458227657458494047693890670367272609043083589075472569664777607092100848063151759671258342594270256731340178189572419314995914644321591663452597887223601575871777390037789448623531165939936897987301106033757226738427828908015705845070554264763834022649149450864681505391591272939875538462338992333951208888152896600972833956620194921280414888520062043265345091391525547740120228852873566496944621659115470826902153929935493144455430006371799932431198864354410221547479996106062647219896953268721429435124984750270023981186703493863095743047545062653062212902198245925139273280767084540199384397071988258400446826630252917058524316018416220572802694389324920663947579639054623488829500846877992314122907300273878201813624271581808930910911330202197668438616724270906305358678715059904255931013911938456909839778910394662611804172412708834320994092545325450546100213812649137493872650286811391860333982742206416272692454210328336152043600080943641119961309181613544164835099707490761697485801625834581792794641196302124042677261927573058794704925095358614984625884475813695404123630299331739470383849735710822863024308017633444890205799487020723621546059512681033808699551568834437112072154302381790832487799774671862946292602034550442226092566378839540992440200256757885879687479427838385524236870935719647066322436826632961361337904655559379002242771805124000405569934258330556795961040223778665719072043806817624972210855964042685822043990731418176052997649662015519580951373627183936259308922858657047359018249078387841015254097698383864154184343700988347170988655502959340043209640597018586581577700031260263732241320406948432952229094511355676094617474062341358162692263231094875314526622623269871143069717919016122312416285034226998063984347663571226106503149013436279522807218982546433100644957972805186832451917461619864664953451489092716043025896410278712541086267763622966310728623282825392954906690564372669035948145411451854088677074204592557106717278697296870992454111119537130583271039996100169840328392397620101195477706748585023724072905703232634982609072195919771192512765102891447997388694484707359396141391281241003262297425710058797638094693094797317537628216899660289962206527020543111284828261524054394447708543248132586993468625162057288971052292751070957070056031353582615109103515021008831302041141086060829153913354225963834168860167444848092969932891352537337030995899541169529131391258793479446790347325046973355028185551269406636791958650014184430929046526086219283898238155914826681525157153526066548361764023935842110122806071242637889708099179380974054815808018428929812377850148875111188049752430951905257374700253814737569287986895386140978273706598496554901031500215363821612152951390291079307675256507161746500429117222387324866913765315864785667034177013694533684178920316221254665774909056595658196092056814594503170095941037794579301347109498691513665782660404315061746825390620159297625135633817797503210339173171522096670799211946748699549545466455223798986037974104987708856395975070361019592228035215189892924926100976428634701182130489048677383092408827945556635556781195473901992160272988797508715242118105564261691852951239830999430129863971621238180913315745293667443157674768053731177411797093891546081392408441814647104986742925681345047565249785643903278104110906917539603420056665141082929655733102340785629890958010494948067731956497072270386689262139219227285743544527949714582100086960525261720759087622928632466655195036891616695174576691183917162461138306017158893178767880891967691359686767860590039058894387025057432363713175475859488248792806806015539943203809139909782641908544792284981394596500060359012270832548603412539527672174785458656002991645458062623693519949379515708041831146934655478299449336440282212940156518409255751996086162269436755114204954752460034116195769171630890325821111162107134449991004530562919842917335397338848629871376937645052588556439135734454536553010115745766589605765066970902579375112472892709873881348334797903017692831581170115212230471074889583692952895833491117821352424791167158774140814858180706320978238312026760503836235056310426648392385141507096992036709237400017758980200065389135872735844717398927724321122719805837566180353735333973716879045849255806713624123157505848560667938310785183337028595705187802353628212231045233253137099662673494048942547000295185254119925860354370621588399077390304628690661576850395470539753676932978010161018792139197494093410567482330085983729759475761968146762178113975425907540570612112359281079118253869622183048821616866128049992532904373816128937446961122917357763587778129944148963595728882617924434817433129351484937784439940881331999399564325600858233908276914749181374812661586056898283389590257751472034017536450352203134531236216755141351471969654271371467468750846971660912689211854520657919717005346401038192003965240415567341794277676156668225340824849352965721858715497779739261355073071183838469690976409908427079720673500709177792554084605284778798934379934401994678536191394562464796296964496920416009400876780034155725000858880192738071733585735877326797018776790463162222267643864668582168714369375502356183138814470740330659219108066362957124042297414220119408303935664420404244567935119183219576710638163194012472167840729132802078897070261930624515487715670151018903093737614922380142908520587513588647330289142333285333594707940313819515047105199326637182445805171139115172301581378882055387043740183329526934089627761057035441216998891426097850026082146709386646031694115878432013507216574354759715756027342965328400523919910752915895264988678868326796612063125212391648305680561583472366911349118133206059298433162346238411358020135598420887163008197039808010601397136920954670576178676764425155986438335289512321935586118095680013088883269289924871682564139289705475298574623625222480310622817891431494389282178901907355196839291744564130135544469023013529056615347983407559537889775188683670170538803303055877799237534981125618271805449949222825608191470390806383273124886462415436516884499503750757600488434270532622033289233295426496974205466055866059057158303342654814449478737370432305875098702934944364987728916020504528916629192682041247985044165092491343322910170010914014426735848824107422704816310704449792118881086903733227200525550775991555592876899229636192226993050096950182370102417607747585247817126879712752222454723612109974432590744631214273891544865349737587380908354664086102445608272289468119483612833112431943409950791812759909020491820854043499878891336951272181767637237443960430018920833080629008945394478190949581034465358544105285572760986879514105147050284925523767823329354049428466767847584994541362267237582022431017756213262994575930079636315089928346962128753651185656167439835358265565981220341758221141852532664677640486921879850256662128407383734688369431258337061571488710654013621743314761783744635396301156185663147429391769344223869060058820619869762005951930228849552877011078051205639892588589620720663283956431838687643970177566505189917744907900512103970814454129245534847015299318927861738846504844328530957212541476471723217687379388999940881732864274588384711055434351851097665764652046456177523026168402018426718309209822515349208475285629992042504340828681567407815956949003326489274201708295482983620351509284557635278703912077578391634544386596560531680334480788711098572245418721798248226430765442573063874552718837633303250083686803764387136676961720593969733606776390207507151634577786010262607313043708869098203473324529226977048073009616341772763572187856329949658452607197464010001426852407363597360676690318408916437861086776971093896421731240492721737162562306402904756376120808701026392130806242294677344970411898410229030128877888222008478443001160281347864991353912384452615560451210512186454752346886344444511624474299535456619310037127628908884942249592205851970405899466494118368113171393453705379767905999573364817015160585298941130510018244421694098446797958113724476377763859888323297911230520833768294500460735754729593505594324112814953282234211391383101476334597527953199948182087082284321624997796430699150366093144228324814014397152165690479554501504337575916472984323243215953510967864531402263719173864909012529250571851933413044837564963221682195259168585426805545801388054793042079045000243509013997459275029306587337109624613944357124950646495654191524165290444411621455675505531238357219953838987285098291019997309157609084114928182123964262810100515572193509814978327413604928446089384017710394572816555390979987067583927147278796095770992191918769572008935850754392959298132955999156342443841653626597222720142938971413958677578064653368114602437647016897085464666487278004543979208299893769999032656447769755829750828523615568674674666091225941689671515739121420819382772931336385126028236902480906431156677756599511918443765377926084253554286735924825087633661414346386319729771663954850233423262568417312032606747158827185213807859029203162875697755128455834335295583381229182672434937412463766692095216056644221424711100275662445228727859493658736423610990588017680573082009729195786615328131066962557840224948444210711183745809952233665541695718120425723969097309929561687865204276410070179429037453867038692562072618101540457583087761853803472871834494311718999821453185619633306562378440436676827695252611768230311117222346251263448677605611312470035052983722883695379097731703798583081593850982518596107598215279567540799058079951702526172321671509533568254431607624599147570747970105772746854474099624798875788361378925795715816121308633457788626764777687067300384920276092073205004079602685914869139404741856507470587838634073863351602353421098939784685961208576022315015416168222097445891011892353606733587237583340013940647532776161032670129390855304855325558186419727888091253945223892554606182688158642835310060959843229967948978792243767474670434644703266898283433603587613384675168756036292066835476789333867644231521539832898587695937847002840609252638541353240419888528491135624546882804387946004620286093267160489422001598693314412173016395955022581284473952223821103222889153795072577631311692213389044590799554426469834930833284191687780056586701512032085302694324386809419784707897353965019026758691005553166026967913409465491899627853577391916109014427832816268017300139868792602834679782128187575104095275362623604089201343096039356361821402506530246509122831246052090227194484826430368231739113216332284062139399536917966423498080523619172910481804361133768214503657146822374036536084938633385321846745309415467551331015816589046923542604763913282695416385219156326347444351796009853559748459533433134774361031440398172569362127650670055057203308905415653523788037955181855614833759380978851407576577608660187786426343539566024514912635676379905590569912375174017624533449750388346736664585129689248398232927654366103287000768301686610108640274806077787032427936308383498145405498912059543098371170975748677835590133149881062083510185506590591733044287285155227790207933022735662726080111146672520762261745275942833672604319804448689544862587943217060406054846783807133363263982639327904560898703302889731270667688271965716679775911469477505089275527624143225564290406615089294008303150382624681177687601535912105164547386920818888426278691719602915151229497367252726138810661882257663502644367538390411314614239435387326676726046269209059175869815514564587231069805428837017492894127093498284975081528252669232935068686891175983919438135047962413372281315704929635645636287174661123291875282977925310395759774718124999354620487403054092848110033928249692648163644455064607379812481128741479699370312089663412162420492884302164245184323631718650931675126974798427861681278203940144311789770704417111219501610957271944440195557961391593929916008967139744344144208374895972588699423665138664942829539681305919201418336877626942802366986444390768527853802585673661834988096437580489505609667435033904210037833537008606881954514161603038352399587328280471618456703676688559405022593339632344849892822996906434391454654324522787808151856641817579535355353087525164949662271068386028292734091433483805124412557025241063804565217503354077474883877909123532101205014602409981056477925532999382749243926716844014209863581438996087408920133875342605054082544890339012637910961967129640197670903279655439288160807290609573395290534927529652682933847179650668705156394186080642581902087689152681278586338198751265482398032180512283659236601242757316967895586402437110030014460208262081932522197395192060701333337780816121950930904408641450718291761464554408917810858912946657215511848038210599024235598924476524207194270882858931090388341011750207193190563886007736021244898406267653447045819665480548106175420117296120185645298230420549509773268183843017101673163013799470079035880409874165116067799777406267171769820625042806305313681989772094379616125035961224196558642092400028470146768922798962220782544604261972438246438965769506382352518072920259698791996593851159047499039713494916094329292316418577818044485832627835286743552241683860630783357533639171798204952593956447211710873254308018175500349155510006791963857735138952927566851808636077599829414393493418413235858081447668502702253156388946722377007078920295472861376132123944257298608119626672688258654168355874147117806199226051664297291998434014391782587748477979024996752688472109083883925463578560142683783687238574269222439786935283310428377143696717055809153378140769882834599612784046460427189737895251729869945217707605287824285009015637889531524640485072023599137867828905983139321207921655166174707244676456850707744442261616323129787355303244595247299231962397039202675111693496945489702086284362250424752106562390627031722303989731609652754211485180262180844408630474815557127931993159993785715449393723465398050492105782560422944621773974810448802114090181763148293766342707206280643789953703115119065135881739793416425769304741443504538431296151776755684140692708773015984521255423373993946993351847998150463064112974321097848148414437115525991524391498541447814262915513485626783595828483307328553152590657993289999033673863970685507276572359876367710673538630495951411899923758588145506170334384649134154516145448506870099918288078049627120367149930061643511762387312013303765702448721739485325649217174874957024917396983525627590370368249961538334077708566964244738109979467355061652349814503526736796151477610807773855414566531220351145209607954766573496227942949488056354235203919137391579395444457251982836051491168317336554647569818993486527581680286000746091966304511367415132175241906782219831724788488646540550537707029707263907856106739957207349564937926338510374928664989277246754798450365874654653367340771249632206484067110686511290908057865494739364089683930667324335196957658559520595623477636151137786563596150773192751510693721430748401127448142434300208626795131093440112643148676144792467782940168548664580123576169461820962081450946526527549327387926586172041114549064374858636296892580122872266652044316529659744583086859052025663226587786723268059372345732420098465670015515012208772046109852702570574605690665139838992436926079408391718340839801976253609463912776394696198817172813072907756956431063409446223608467140416886823716379677378727161165501511411664264215780693907538945997045520613745281950870799277313088688467869449569312684395972696337289619084178206905050385969595058209840093224651296817902490024564112964321073058947634498375378300722310802057360249055180097548955096297887316751385349041630435682682060469789943220981997713564611653248387704350382998513908388776341666167025863004947216656048950510736033430772931981777988581505143639360432657552497969713291947819376397929134468499976441278953269945537975653048267889801783929661953519991227334878887616389559790462178491254178197089076820003866413391498640880037727744987365177189630526313326081058276572289237519182449934999888551827241886627688776973693449022591225219184353843180980470999055715566131711385473101848950332818103256457221895634548814876430042803274833076307132725971025694053451561262310405346630492929339361068120860869340423437924218376893416531009411561977555419765434156196882679826358668969775626242569653608876854944899849096112207102934077501527073994254783577752696564749074132546159756763671041096961928876897695085424422191484324987614526623595610054111572293554299843708931588688717668991759917132429236180649737558754834892461979214760613335594044937653647235205997310561868300947222602889497648942803206354758988406164654452702626034800882174700645863864742294832936839705688821452212674125902765156707741183610386841360527034964381213478939602114869843475966633691539428182126957851264392956548339711313172255437543534777316366858417899529479014129938474407329266793615998844131628721570584189647862377384643035126409927537668880774162062743962277507230109955829157584534455343687522882644978799709930923948397006907657781224991800911165080937239077904122888945332123800664537047078439231381213241711377799446283348110543964539121391326901428299864037965871311867142902785763012842187688684024486020237666616021901911741644535722495873250180101722737973059821589179174121765014388696543279014532086317868175208310615534318875302817904222616546518078182707488125857702532921390955633664381733044478679786489483474743793582058918125208382472849785562983121021240708208335079053069195547676609940899387715176762979054204815197030129957631797284421665132477676702281717062529775193610232122012453989943538895783411581611557803800592807231641717085509543956494044573578265076754148439327735219572730850350584882605172451896730308008600224812589096387057091123939198690001499376771382983108746837828575927134526210722306407766957021849363339564451751186357143277589230399794777556878441973794999265405934151596785359179614861323225189375349471830811725477863471527200736047507052266028062578804914967351232381975419866955716942619550438664636533067394413822907232431138669632307504317072476544717771438652142476580358737362366123454171825269747426342946592573304238720286675441160346875186006654391127852127324785114473849665863419281123932038768971766498447267591085781878057381067858526067715922282886395866484628004414883620840714544312779953308656811074570057911388418011950698842870640685829558990520774366863658413494926430188898006249698274023457314863016655326281331520338044380794106885421311698326500646784127712543613427789611397035928784889516150098899624244061144853346933813622899304344094662684021668114195034490560895205320301522972152076598993889932526758064847546612193684140485391106564103489619104512040946815274612998228520235225812384614228400103834564327635673925000587882813947365046932511401440126457887918345220999631206260444889580346800289299207517149737793659199510466992804557140096699223343475736960170771562435271251993690830182700724105512776856403817196868614122449468836152956451679282250194931721333081829232578851085270728877421423016504014092326607700500346327292508140845780917343521215340901753385054382976115663087410470979481363450644194839363769772662531615574547493470217799345285766263087323327271506788120203985469501877707573105584305734496708048451389725309979185441261664326642549581577157953500707845221237738643296596518090217698641949436084324665781039266674010782822109727600357110041464640771927607704537167882843988380739415466243137576956513406274327356262604513044766401469988602197064319004457582439339039032440687228013954881701158767958959207894207094050682098016253519587830178000603005532749189473138034627102890437222907486948572788984503860734277838290137419132615068293591630396309936916479928283862306673790697212626346348501966532993405220042853613389712039499886404710332497269567467392547470715839569305948436685164380548152107913735823706749352669770632688558777442801966251843241991887184370436879109877121906875144674597012220967040887571555417251257272702175835607879993561995049747309868077034927939422906907255302211593617401280628888409464564292713166499575600129366384316492862290042037748390949213270094004537822363419217685437285010882536600525962184933100978310463234607293365043348068992074885859667153091589722468677371943330964955895332671185606907628527705528252017025899101243282581052261294324785355350949324368363343080575360695870861881568367420392309990976621854553072214088158419996410690582092767567920086144504223708378626316538265573162878177030379018025101879072715995886352511861050611134165752570270548057003811271361647758789312881827525059441973287049870537218956785467591030046456072553183981029079852206716165360879787561015810748498226043700054906684696685059263277635429335083916627299886515162730639743309644130660948199707496745943734718962501185857242069097010437788850625891158090940884888074958791850527619673428030910785625796692532254624278386378172254640611651858938467669775474697700025511484892084715889202518645369621527231426164678701155413209671533553300728759671199340776328420783891395677324624191654329240046180953906050884974330472361782445922943066261657825768379652255861081174406232705247333066898485935711137500718102957314598818582482583607025359975915184924941921846356871060991750231826429015973129707661458062320599281153291193340348378376412240114470941995144616530085832595913883759498701257998078760818132660669213998988202641883537272881956033861626010037830038567926366162851235800339589018331639635285832392813300457593656228945265133601428754896714449324552230339073947750741813564478248290452159031559183712464405143701567219705125271126910431640897303465659092580188852973307825839059572977562822269937273300793862391696673598883443071361720948776823381733356983375751802799205819759931302333439816966713867787612778652412228626501713982854159440505841904145301413151239607121872835217514492866419869701913626702013639868158522331361798835915526356953115620362318325356697117840892481030363594819273548408897585463633995563237357453514044451219786813539039908297097169660459766012070441443690079761692680963395409845544204851865899939699215412201897545504826958211484290557074438693850086350752739831688883508080144672168502686099262065275818132511793228787697532148447408028300424461924939018470622995236507918610973167265119696059554327922032091966412035090790311906873097239866925161584684540813296576854555663287304877665145186141031651604227246788794499058116984294130143863520733950015545401059488883948926202524295312284660559583714420408959277468906033350822587598035076713531068658818957932613208439681068000554548135410873976129727087797051536588986484812098164060976542268756958985867122610877221730568120173549205155248610749374034445194464474273931507908399533373309684085080281532796105021265763461499424603874995261083429346902794226744422359684728447067622548868594262063848753387495968365761629941877300981066394169290911197646989641973118933225757749461743611855391934400321282110179328219339828608416197932332294027555283240324283248768451740997455216238651766628086474466813906309156215836143080912490445616808592544112277002395671863465140188204042895378917400606022215006598029126045755363345689644355194376979279220075515028786943251169383596180645912217447839407324313401629417779754563171307772660529407952909751571362224466417440399223040906215952141491216819609511743464228922389369680610719109581580941463085788243627424089973164684866694402498032008800549166752695350165724363409687077681119005889378000194084201025653091775141860514373511990911763081210255177547028358589092966011569757476436001938997262468300886903451506988449514185023621611356835002579407168518751727921897280135220524114933809405761434072319854132103443774689762417726937866698176641208379121510313869270971182737031822787495066744737032895911349202998692221631641669129940862727382836863385939681971454021161890835218650180415894241713517332532283890043303533258859443059304889980678268944079409427482951440717641771139180251663888744296163524043487351331477658767402477453556532348224974075932854074620342300081501414573183423075865193189971465279381663759479350187550203693426250664824212207561681869911390325790118315004415939758650149190203202596909304783670030944020181277488367469162022972520143269047613105341660693787241349943164833507704071172064507934192458335416834150335758338027060292942331567142764081396676494661470031426637365977600397467756151825086523431304555982754834392442659006047176439222581849819602055360164309839702605369933911216179351127325204009444646020288693229533994178704817962150740586396279990040504352319396457077712681114255183082644229248731699976609666334322332140178383297761638825476567253794391211822640823842425820349121673373460737333838208217035549624089605558206071867661431163807129409952551074881018384710098976544621745166971149523884977553734145173686646019324737313602326526775432874535210092625530334211040307017960667756431166017402463816682874388167597258229608423125157151726205539699195356380670905059103659034268753104002999738922462771260519518694518951054306356762774660672445276453705700733547209767839876101546217225914662267268557518265791172336502495375887866762865301482435264174760612480956856423698946077805750387963792677844742017544076924549422474465240280634840859594840439512611595754232066037815879751529879518379223208202968428802270936447372967598484422036438849905054927690087807898951091957269631934834057108010714453826403926488740656545531518522030044455603892337699644569682933479403656370582264504776271891061354253012623026266286874875825847680590961882138887411425394742115917095597892608779648961531515157810013216437003180952052037826154895503061286444101294405146458351960469033360952149028093328256645597298697457836457399608448843432430772132580091877644263158621639794352352846826437395183680296966726112470467349113406251115807811255417480715090406286507097891717537114891212394940818490468089687401459810037329926014015245814494757458240222961793334086508229171295334251977505977165848597932043151121153507847721117495434180701338280018877922901470617786817550521612272205653482096207104889137576386222283278478369919900254683234567805177873138080809665135922468940455567050329020599609490419711453872891110727785986133273343959260946012740413442192869951916375409520873443687420043002428181057237213112432732516568678020831796912163992443353683092855132572817868617097797440530631065067133971513318693267414742213603477404504541790448951888682611054720659982983943537582669915015830342262829149941889240371595340543276884109311938659166692754482468109937865748913477831258425024430023578093296204448286460337175739137571842911944786741836303138692652339767539096718745847689943649284288827481975440665852477636414124417050817568597962500592321679195064270375851871881648716655972320319861414487789807869476380217007431677512286272155244934021135235594613487882645175178164189075334724468871076114423937108956059068228829925324096129174776687219224608953712017083037647024244195966303410961496761617324121972302948827832312126357830940191504317892976168110531860831056456377986714464991627018730646020105390454328279666472282350246714899506063704614150130940284050139052416376843398084952818130604527651486350156327046421273043975729515612417983699451359977530991579408231194526505560329916029245827447184977520233339294352791035414255499579867898865339369597337374499135938990245305185992630597819588662216624820183667423279968702204244402413672253750296776029761729487585715682445404954619010469177525418449623064495110859598415875835591604246717492328347352415308017140509936228501453111948204592341336335374300423708090583541364611007570946979883588667764299079184806874294276635956682162416400898498204671972449595972897250805339659988269834137190730734115567287674153953368911051683901025033528848225966144087232206200098270584363203879332525905250406321396308276235979514020855967455060500836746618138969488737066019211253870035910552085199488097215169514759780238258203968671569118750946259506722560779351999969847344833099095157478139976100767422831912812269446303081871154468428338366695956980664834470845885619474273708070464137023908844003173022596508150629702746484484011905853475054408227567984706556117696760675554281657597175056841954011616794899423454468322923400116380011661492689977714707463661363848696611407955875736450165861710038422007585009067663427255782424110547845858608497713956233363342301234980978741963384602875626137859717752035846736561604279524270505042928333518644083206696406636683714874806883795653123659496173711901264522874431339016533438896216933151425917928400798904534308113061656085955317826042512002991953179792890162052032536239432764025274526375674827862591811103301512594377724272953938711594657893850286937628276779763932144622579694230026652255771811265969076304529275438407655360234233980453982417702690959147645874939241946497301138991188381329318681391392626404062376074569364205819426811437067396127479792315188255157415841401339947319062120855428238752411780945836344500877445628076005816258372312167700369610620276771006568716902476222116310635139616556922955727276186344367889299214744217192372026352315430077467909750871053982166341683727512509340866974359431436803145272901063257572412932749604475130095049925446900164652000774567846950152455063973690715143811739657205648207771560173867613609328511092382557146678006224696967671714837483980051969676205761239095679981219548113669577252764194231467813767649200087832548745395445929324147554827604083015279696903670283777676897566874665505445209053209846724350479023722531463729143979974140165429615175683944579798369617397381438385514045092697057745531904434313262305088771940679896564561900914069418732153289813428326729050237350675191991394563529015958398382862733934920963806092125293241360102955685361668774660339271917325917247435588590436623217894298103335965403761818040211570453603373369964650928456688224725551381240120066756585467769476369735543958646875613984310575623074515264414565797514438506867284794912131955739382177767845891112484789760262071490061328034658960321057273337059607506343194011172496730211590130023855572417576444864095988352757769727158812790416242402817090488125571150812615751617099275064980122369891454836583463793201148873154299103775944126198734003985859318847030129247177523892472035255592674920551430042944210649523224843627026905146361702207011420469227205340557781426605138672309302741364825030588196263948795316684196998733147965089992121295649190371195666370177393201272084052507507565109665853956373079930487761946905337474720256313716344285803683942593338850190226461442930057144336361985718215935728080896874487709154542596750930860957552077269060686899045798321124345218362223702891443608439457484870136500005661958284856914071495982610269487868197157019745577787467657102281324693495218643799970184816956855789039964313528197575935752614952103761116313846976063024506189858715374791072377734863910099423137677812009963794302208124987047351466689203376001998600547034145835021089591553124535501045900979176333655697060207487665835545875949313011082148254825359201246574218379478187478237407260053313753938162522246606606189225670385911687653488386154271478569698691378674254537572487551627479251573029809692332349220286309647042642396471025084680602535155062085185212690255696723068358864849899697549021291259582000803950907436021540892097219631717490600522035868741581201795370001885563719767099474489204153244968766520354118827241817002086055135470334827439599045209100456502025651834138020305910059552779209945124659520038472047879622610924485819649212596767319749295651736574272252267861223569627301283954790183819544633994075001531856361935119368947875713187930005359889757451988252730670170510627344797980655597422045208747075066371175994988731713622113914593648676969010173965789746478922875869334339594076263150485765613990162818760430291592451891316877414125007107485738297369458645078507749444163060226507520594048494663534077590154655152572103531932973887559643005900858143312232244896218789560069774801804708981167748613210141930550481167249642488426205396411221690613705789224724173832992684742819542110508770700358025110380023533634544987715678765544457088538622655209921285002877967956068796024260952065770420781248614228226602841542844156070496583801297863864045308405418519502170010258157742779633201127163846310611513361425033783174903771344954409456850141564009005966911077661587391962572460740207042883533404747985002983287709705281449911794847803051344872014167734924039785741487541015827888488381635369633250047281650529715034494919112086399792438491388625119189952209659280661441040675988732629584000218819597919950038124220603894421848270045907167198037906359957537871586549579438914572614393655833059245470958423405070090647329750114822124725407596485827771096202493167856357459564341733196067713431036086742931083191579275133287280686371793428990314000887166994977214327265806449127443174583670207751952999440355155316275869458502589951558398116327901826448299963041482481185856649819216749542035244967766567898412922337346924611015001946173504379192955410462182284407763144971154338601631971733037450326981251300863044740968683244568863060358709559756484123015454868425776379332192763275345651152041983561284364251198983735581309554860284095205166137879470025976043261322215200541346803957356389775771275152579704853555632310514464546025974873156008031482493331711249748007617353400805105876832460991295916215792756113241734961421688386227242986241922456174241128510735659801694630240258324839460389747914606768459368996368491546455451689598610569693666008793249467445892264196092886598207459451818994030739916599002518856981803803594174792213980439469042641299543645108623162862545870340510589375083838011467376078950837959399396096594863556353681637978462738755153921583745676662786504527551426669204965200006339514573256137350585091666632074507357588583130304407955116292126451814354429088222627102780433903611681695613653817499845904535891223581349775067651333061141097079972613803986889073203190081847169883221757018953969180548162450761116201861914504537772486197512348285159322867284228923293001413798886912276229405269632413548320981446888247327191752829002239616465946003491071825168513451061366293023303279775535214223138271369535582818275025386323627845878453743832178073676275588307502455726273456744514377564234444760361919409522059152098123545457497723190497567449165977786779559577356464102263002163483707864548429846878295233448864578343855601643373414128238053831305751165842318370254030359499638019713959582276974245404513448257640450361013398019855617306236090845824923124704338239040839829977641721251642873808410247995179126003031059846623951026224703303691545546920715574149480604955664730102541085600492755345173225991711368925328017828015366767005912209975431209738517186465265873938210182766220996918410468227804590583783445770603633455512864696093111426169802638635518700796390992724463269825501595431963253739877063985277919393840592692097674996987803623627134678094362696713415079334299326614082704518288094694628242524845628590765092135779010661401384083425977628642943758640869181341971149968565514146554163139326776708618625567878320855776550772066871693707857925442875508186465716299816126026203794261621987347887312705250522371830027720280453555377572109522722732909435504065804278244237741599180474215521771691526399108966809519525804409657925035682617820288709898884681939569353092603225535419271458538313262247700991292765645640026299868329475606790338593512183768825828497561974258870122950226107669217748745458831118337209622566415361254705605472056270635790952349290124993276210552377010661021294487572755987212652176749084201951338693458969228372988183748696370491118310543558329896086668649290166559497957444139475810849409242093524937674985688210732595235414403271452119432279004434349620962287889943475284106500656885852634882813367744128569021027178260558511914173424360094379259128143293496804763523033238138226319467030550947529145708969985256668890939315163532714585745192549366380860314891826374769645360234461134433548201498686316478682340623764082193429811137405348340951581655355434503874913429415352420050585730892126496110835770479687798386804984554499356372003876653998976997017556227007983019017354580828995353308896117545842947605406414180118447281915279850419504995754766141001394272006058280398659999229035058594639077701217729011296245852040446638385316858877427748843471942858526848354846487904242823510457797239152251775153954546987401566396758221311145380489877570990676389145413379654038278725742944845087459507492297013577748120230109040627925255703477250381452718775797431876206850518703999506415662496674109375936889513336906223281693050767373336250621461643388025305349780658998543318336378317357859554676340533146414705049314152450413746117657222883443054401870442387992221990582433588420124126201236726926859086016518163584104477558966502480314644588282958363300398795205356211182285807461272745626824984915454605448908658143826609031498812748412229034461137987029479228451717694267606703625182128279394029758662475322143598607221035854767136612004412353333359642792318476207046485062075324499275941315866673302585767717967557092750505838599906539387520231725107071372127446186830417707482439970299804628616976783629858499782773813813026296163354186482111956750276028097800201302198447104013216054017554099835618547504478696064502789371366792719707030845083783616591042709394593690344432197876905494907896070547537611715838648294432233707146090546944523337534160521329821349504133042944282702933961311211463280159862016218049564719252460417522128293718281588130817486400293086447367693235086109728021249456756884584701894401234536786221658893797856399231307729990527972497483224988218266092186133625628423525216009251266516122927228107213789335953207351933215234344812398754279680257896270947706252612040568770722522900250902818746984459022591642432125545944540427254941338311608350630369722722613464749793996793044515563708371091291901708250884060288304234639518256934183375806419135067978236440198031634752465285872634809987237430034374829890771333913344319983094443432391762876359944347503489525873532484537157348794072745523091569198960798907137132212321183114367729364031812644785717674745738110583168031040408556415315676212670246927117968843523843371812915972575209751483266459779381597057410032009532054634866316124682987925169389615297055175632201881344984781107202122723324283805371247497171203044008625350756042815065100843745376362007571733767944062117932391194735901580609776511361359237570607564444641016928554516142200681685676881946300556428582377052249522602990147039316359121313572601573978160052875025296941389193165965646235463126741656265430053074122684092325636209662808098724347864303008876161248868420639461855074599796236184413033725308049198345216680755138665949881804725369010752952299287544253943934061238952079152729832434297647103388143420064517716566946451424731632349309196086489969355318991506581339489422270115795957514779324661098404283734520050999433391260675038218653956348228912538628178632867239926209083252597938274475004577128822728152053001851464449165508829394502625835230007552645898291208239816029015124200174046170308879572480754889768572509328253068052060456934594009368477954166018332348648457163372642026074459384263238302453203872408467937554547486381536182898878986295038951182383205176428300198267069831912913428561040002123447460085392468902627443602435489309811105795946039572184636833042064157088236876365363664831523257589887396208098017434619215284654265304735277552136683253136030032610713379134656068412690391964924601875118369099633830294924119469317781297852156669620645456984745377494459394071661812747199104649991597123936525618124153607966859377675497501912262314358063838194665127015367432133099892697792704660687505191616453232509203092902058138020422701465236173378920937987776634851953444040707245024070889033530730899219107963018789349876985634252886540353387155384063592429776685190024044524490625307964657036095637032096067044094214174800573952473870117876451146239696098208085063234512337470955831384281861633810272641501689510902731261242111065980822688780687811250018668093716944605945783650189837013495304950816137997114434908260624189714155602808321268183501590378661431025669046630011790979515382727208992943474408319261669386261560279992135136152363465015495909969902911978747583263276555803546026939315256351744807890493688375851595071619406637091871251632896441407209636605141120366492011989434062234508950151282337299675544292463445694696360563886591715454178285628686640088040220803072490019486883103205344026189088561542968951224411901546565910506461389426966702966608750382718794907192715169919429040859438285582197315089529432554460933043171153802138594872447294007401508244914995373670168404234387822974204991776595564567872224909563898897491232234268677928706062391766873215913678519874405790304481221459305498224960739689245173189019682492956158894041077719241584515777015726555464413918372137493594764640301809769469407357911722181700606283211452907346216847364528571443889708657142863858607818537543954825430772442448477600435812669448464393640384455732335027346166588673566069433271081333711108570582014014580402606738558659268282984417436754243272519003638064172287679921609695592751662009859335077077336230761142597151158958564708073350485120197247785628034552163501388384706414282622052442440528931164428448996009230314865541691116033415410303476714328867033285809027069161927195432397236619963282541212431039227129373181321988114119670464251734582510505479184138000244409322558561105284606649916814984113714357739873610900441254125331407414769028455587409269433681035747213009413150301434045096357082626903383934511812204237546061834242964486039122595678587633693366452664912901140385701618901658325264626593184997873396251877464374917530608602290097529297875099382470209681559027795401326264708587412740740602388176530860361757518705717925936356242980387926190274558547624484910194333548993309640541518512209046801320941170222432441184087125906544706579195600122656026332114180840724994017878243271680100308423653671149500733363088418324692853749619192764788780775683773015988371220504399674423447265204868595187123107116236523990720113982325023064207554768034027320647339046036053320757662097411699037106249906068179046505891314574679045869200773348956515440008623152025442752443173230998582328790588287634922942725550970091667592907108164042984922148547827110780176748820413516418298575892644753537245818167532848907564975361332641204010107816330625231364842002270896303974260512881129582609116934319894833972643813322859982385153453079005183755603680605433011951419083789049155751148552023934359504568421926270620485897630980581528622358714271937786927546887787620772232380631169877996658287918167877945953232608746309101467061877445131973311556943322291636815179109056768806893316425262612927473152091728243451888622182290000295011286494984066254871494941593667459418283959459667523303635064723905520377427033789517715592423646100987607764668151576902642819981490774086698618862567834062512580014911815625041477396216479195869882863164943467627370293476165318365538960963461001799499313648719816534508300413275161772393797618013532225856985438447427721084458828285159796312386479737097454809138199934883835910384830005478514067951921659183207187196588146850137588465552334700111762750815087965470004794581933519971430862982043339803136637452179755641999334273017249834033325894845138754064771089716381114553444605462189210984968669787716789542811424222882772871599503712022872898907819324810648238201509276262781712388765838904898573867909503019453768407307147951449493301988955392302242591929324831475074245351363933648041243520139940312638538465898084799991050636993599093329764437361637349369434153513376398501788176045775048468054660138425782137854306390434300482719140070611736174454655990647283212076476395002226541820427190971873062934969352339869898870851269049945977678611692916517969874259807438309288106815725327379509382254381100873026737983167400875881118733725022123486137428502552690690061303822948435738002468934694405336367221867310745538760886178565493083194157464978978844596970260287656079723150415152942674038720690979609481537790811029775196844749380454028959121633018645058523132067484146053349983835336816819380512611892478862995341511778153558543011071055720556374929521680982609934734793922884484912762926259888368047350217164962301009179357395539362906996101675588155172476190541872929413254331878720581252013037560422606806889167393106725018969261067143456924451661424182558876700918810555801465339113356898958164166546838175747908672111745317248264709449720747436763122037402149780891221551310754595249113460040846934700567287577817301443674143864034448045158417143461391845795852636988861978477624411093683143306056250336234950730314681606185958998667198393078605778214399018365101644675909075190989151501835502107667924306448851231761871115267459219847593537792016780090366060197799845306907260304063082167796591048863587508687935513412677332370737756090838405371167629003281534493886949622517683146135025954513790550974454799228804434330926639408499728262690853105181793469486860834578231221107426121969205801106855265836856648741669632917703119840793486203690741500843620625120413034820448066913237668941203263680955713058171850961185043735048347896320671245345924974297423674329448631534659143006185130130644134484876013699202783965779860974893558767241262520059518078474460870254707331071831460497069184286964493313160065867013953824529647448007689821582970698369958042695132145421487836875777203486304758456915235172770123559859518654598144327125770042257677831420672344787962873271701653718924590033481757851058837723632758910253435248770197019736856419310685443327404276428966810158545678163234307214162574829148443517009567270922349140600665957137582110557754735994627306187553645351944022678015106905703784385720381845772646403007147555934486192403825555862395969065988632331965160197747673230576064302741321179412646457840529603614139700015014810402174861277613477960633204593926237122295925247022761804473116093417205455987850216929547646878605712723483815351056588458816221032282792776307478717496358831701966581133951056099323979111920008146962755025683107189192585433291107952977405311516629893053679014249838382579676804050342232672944461096941391359999222961271882734658375702784034765194958620496782679506332619315894588727429210714165103950062762969810272189478214987377863708386930516215434516589465411391325323450720389610636872906932584323247433261465866619858341669554830652861027991832926063948527288205438153505724121489364430823782322930485601981636000821345517595674221847806600070731468332584537065659244692922540731143933388811686793447933424306860779727451203168310196085426081222621044857814970216287767306516966472346802958834259052199526810338882423488562135627838491382002913564777877009899371226925442856335647763823095579030132272022742173898261594673753146342542010711117428959128408329880396452950787847307830057144555855596330748066713065151578670192916264924696818454035613229448787098174799203773519743167697310993925328014398774856432993761774982804269654741434726648908058266614215573790799463564658927402284144004444063399024925486674087155348531394042115859059693873557670772896316289752317965035969852023743035010434203837691840321232904839569033521827668615732205802033997664120376438119998280629827087032675131792704334751347698934858948550254360059297242879677796234211433643934825980893060156474928606137408191239354742894563167700531419984554544529927629628496195916858328108179573837144008187076016573220844164268266077094557585895931434837224054844916086416916623709483062465873334129532727604249400178908428301529977073645269409832073895955343429501876110725746878608311655237857201784588980826962396447436362193407150812613449908403422635346399723781612576586386397159105224165487861822996848814296756552803156419379252116659776372367092584923867972716086579861847810073854265367556049843706009407890535605821005369848421847397968369024597667910071283789749419440586838318491440377496638378073714001981529323508027765753544450849703242416042430747865127671128696327929583586078982903484362276803148209079388762744403000832924653025062228221612100698718126585283850146464064849038581004446405714631947305703671116350369261703073067613064879066883333788160947859249286932867949324991178950547401672399637431102723439499525769206105805650350126403580088368246407226289693635694314979631918215744228652384631712327903737202373491533565173101195805228686743317729220056949081555804528211983741511445783023907154715637964789559142504772840703243553609296654828447379311684137929016030150374074548542493145765770816997900432743746464622029434703819662345742563929358659555715713387444502576271490663961643413375234135597935062939556137018531523522559703434974952055687078668451201842078016007586289328470740369880268076473804410408970489673789419874207619763950466430243795909984018640002121576953596195390766935279098258352479079176616907090629672306663881806661313768656280367017166714605842318693327291651225936948406628976444012242316978343368612038136131049872324378598123509247911200192739885045739647882371269708858161493412669687187185060848149791624090264479655902638216028363331371104380558487958571530298882947003353810328454634533854642708233166185375770333779707385559734275115037454641990675438892554319844070207392002630059969547275736759944922051410789165764579146891016101824882216075151516658094479915810049236482238464392752632584406081538884845885449598244232053643746848516108164404051741112654816307607121180672501916440827814619150902595336926827750288785182155678304023552987429197554024835655909003269331431931297524346139174578626772413837167133876339807770108099273041309712647895232771117095388967541081911029462488268394843299468164146505600745007087114679507396074647452635150765948358562939096891508572626873331639284695738167528445349798729482290568981999090794108765218993203264520692559431356480845899814341009756768019381118969859720996374962770474275145500288256123592481515471199518747329374893407478530690173799582357335135795627041382916245471032013393279933367776663072707751049611087590573854990510061951269938754158578304602496492881699501194146940679780572673532776493468800250391775680484160252052907264597322757770103067119096694549205600202854897563417558883475811080869560048018615998294502673598109655475722273330880846749931161593642311912332975265149209280162862257107746257465318667030146690894845384821448611271554785876910062405605876245886302305520018026536037844021144249633562818470223123092171504142558351026963336152677049742465257542409193753712457752686326909881942317835555051308324860855069925546750105167208150397751250977136710592495330229594243574946691510346342800436586933134000604172333880481196170045668226467514790004919915769644875843339701521623546294252178985067173451173030820961649631356633237336228759889386024791034222724625336025980753073113456469931174087447328324776173210003521246862431832041560778920577956460817824673852247600792650816525825324825338940806848306936959572948304471893388497858610213942193982320895329121718949666428502012214695988656411229926798474407599281849959438715928863100461331442868879076996755186374705941651350348484057995541657972457721403877063349414314994959371377500165676901366886809813868710578411853563614414892683730345342001420282683586121559344089148538378186324497052103411517202530804102546323198517356943013489582146501607508971099398141755377502300928503030672636427523967863919301324275420458794451962867198736854478193440237941413422710440167557372993008045509118720764965895150418514893398080910357902649247081964781108579044937184267829965715488438366581993849009952134004657700288746451499128951018193474700127533994183171692691693480687969735638947020441386681321884846224740650857346603059234875216454778291627446439383765407968007508419975301865528398665864822274662132559559156904813369346653910450471668249175832432769803436832101741988724586151183698780287808576578316190329677827345612217187072571559244916936166642469907506593147390670687617069962921540328400781084743776389622274287092391482096433340813305392780090889194726631402283543190981740887427781991426078276542932374152579277584834878166296897319367515807044896738378905859341493272305267346685619285186925769679074361893526191484389436881283410572850728850662737289701374641426414607038917928547636036171408732992496701130559624319220482301259499141605270901028696934846192067084692604091782809770836858744621455534372163590245810074553040308654766207295202013434949029741428940459359376883986362777791282830424381444609007816680603560362844937067299295424244494679218592587569457430256047151403343434210695719646505562352642949896194406734783757508949940073365768185526605510393932581218318510075922899264229934397186852369867577963321993997990806188170636194134779441206678545438656133964842494482062901562130614501904133855353743159497442150894009857615531602032960388951261524633020864640934914437149091512053769042342338683419690756119769535402249382558062760553446977204193266273094728844005247542284808630159774407702577471120460447100478824169511856010260626757371025482451491696089901393456845067095713991880184171274148237911639621874406110578350412844971942033490545567901626805212592539553379088292478488703107748898792822199746832057305099589961570291566461243587632521847856022578593323115785259798939684885594915945698157965597757743793353620239208442027785928703097207143721446658225353044708571442000017183100994423539535105691269516631129228085682050280169004312055318041429293722237112745851429789556676735797837794957459455901494775254507676630783791313454931836363024310902901057078026389477413692767346707062480501607652891648404623266470315177754438047778495115100569152603636886967347025337852218268024155328051806062813020012487861974587802781394423354813026013845951800996395786443972422588492895886098022165358414691874139721860169676525871518900345847191781402003785384855698951035894271406529859555814078685483582697176735348357695130259877880169001594345086406669706279602572345920542913511338910872022639453643369705747250493249975601778358696805672900859005101055236166704444066234903497667066961668328356147653093475765713844694726514755736095135733451406256500775766784432831773574054116742705467266333759396050005852398396260889087054927888510746000914320080142009387844634569894441839317385742969788800337013568256778549828610483475769445908924379220356878784520426632271273716235327988486792867090290499832077740296750899095735773633816370963485259464114653884037169597596778962860419102126837899722924631142055303118995094723164490398764375231145680633796655841604986983357134589491416776135717795299877823953060842667153909109419626371554758473201136471439252688945610809893573279461286863970731886392836432426135163645003812333387668887437187915525965635587417376109031030946656147862687214136460413750352380754065141497409528020545841010800324870358613230098681784843231428985377627298154789807368759291206352186007133949535306602848127927985429490063339677774546951426082674166892849829021270655905780457549500666369441608618191372452097557741163638695933383197047233087300482245055315578441116715399491623734402462114976891980480246203258630203127098761592002722649483463715919692630527171483213733251268412596781676306573779946474793257856303858115924398801523311986285697423918680150565236408643811653478067390292810410638997895928945897225875454783623253066167423633687076426653769421778301565180446030919582078817628468317176420494447481160651630327263353718335246269176816286613965116403424719645165481752469071182740967507114489985215442244341172559236073859588344719532538033674955387200332298980820345024352536606958238472549820390853637993417117755083789930014939171683872997934752543246424956446480718975828794728310184104197462970082209115056492337167430606374470757705472678208848769661780420543699481881385492597729958020654746941629351358489156206791317105449773543251256671462508745564554436412159954454964070231694629829167480041923001456526313233133000235122093559980076888898489035616460709882859238031736119649630139330106312808553537174547817658240634043839439569856857237358418996448133485931768155719741536962948248704902235696949840841164111219843227938869895932369887075175604937202848540340689826277331065508573226392956903957636193228709140189074170641634966387930949048499078075755827434049738989190908816599989484519051745056227801286448507612978381849589027168871874820692220241024025493778307036922162516535267893156688286009370033139887883050350301153314922430807415204197989238617153773260824235180731896187009994106524508772601250712364824784953398453917713691800053466444893842122910444683272358834800156749818024193034647245921252666549641986207905075375252308820860674882113235909943124927086739782806843645864690593388731622345357142900726435688006149972946336345014807585525870527407310110297756307794028386062893704200578402756576846347161842730598455599214673118299198741879336612876400066538296322113439602957676325149410425256645607868973589297370492321216747454754792058282132351423934575350827209922937965397921018360502593874995854078766327270554492803536025872302572084213207903274293428907541110021950367065978320850007900648453949179377047076041491390777303656994866652939114424687243986739297205611134178558536789669209427747490191287786054617113355891506450811114722424667516649016007358771857703749855263715688217645611591340047793431955714304993088636969028731054610334046696578023773088634883784956665119796770064048962791396156020117553064743181915985138744890396300346589357383455941270338731712951579105916956747633089122712644430719726665227836257407187812639422361805927960681712249415127428257195179412883798298446355304717305530271902951453957269317770943350486244451796043502829495361655558670572089482398399251715828719994148238460208775683444616987654293663142209632658709968800146179341982261483127299298275819177218199655069676857148411541394407806600844774919768337845928012393637208711267541287195696330794069765628996243762427588690646825183272687781278103492698279208425294333023701552125607678283645827764249547812062565108857906568879695175244272391335747941604472186543646470178906108306812165207352739676455773623714982255095597999259667156922455781012912836394485446281118046319679010009439260088805389504512500278734790962171416483295608949954618825638956218494790180928212837882347368749002171821639207321039511739937650080725464743627963876401255158441595359237154799894775710887947985256677480731504629548673738213431094062971948875606690922018200773611077762269569599681231125732589095119554045492112705262854141655473095917576205798146002927339906410474365666654288201532618528942163123245610013166968851379122228197764640535388544653703218259822636410803546255205857484567839040690307384209796364922582484411067180720704443264655175449670341499537324853276961035104219845648583773652825221586059857508148414888503978050772968315632832369215063272207310352630433360105366934855986657399796744523434009691811898681012176625979434873475154480067129661587275969389152617313690294096801576965603188404576266348529846942273389873030463043857920560283094423618937440946206323501546497004095521868947654805576573511069935790953986639901913236757135606482302779134881291074668392416606177592808050742110854529474407583421979247315731328894378774464879386034839672985234509850426174612673804484785276042113003422344636767455150598506963559918226548042905360221387774114172533644264074722735041036381888588676319492678222190329666906359426713559969500847451793766069608806974504827674731083247010651417279400441178551374922407957300848373221645667868450495682966214457492160328615615731527913150052093524121510435223456746287967331160743042344595705557132677276873800749726066297582308639403303778754598304313751276592595493541632885367072372411766968009567512054802212794295384332713705543729072927154811541879178168958366085639756133808397835537699292747237644256295781111229944472983175704435534254382373450614603816700327365562071256325024466601694074996571577102707184763178173206514028378407372798686287290102281070518136959283767449780442781463133225904558093435237854152598857600733884316072212172307175414933191662985539570208869824179701160619044730651481816035629007017802199987947884702610046873491452442432218914776226403369231414640786291469845899593643751963376804571927700882654343262035676810317611104620825266411455080495496406701664639522101227506973741195093967495099029728137226294268815059475179258084295337742578796430950714007860013462311314157954552107364244753609478414042722375568477411738171552257532179422245864894716125542231416757942220232548480679730790241333187685077485286160843951080227932717605597356376741345866089623010307297341154100242972783432903570064632200999737403865800586153111104961775927036790502188242330583356974948246009066939077509395518170871189947748603960243564597081531643036276062446045526690063406116066298619049366039977462727509172121101088751654736775458129072673732364773773954068914843631410584933367032705612875824867566846818083143137587180957105697082233063428593419698971027209703571525193421581745344468262472334089064027286248644434828601100568251948427840950773280529453677713328072035402894566005146472471532214662738405871566398317689532390695915200763543397340308309963598587188778135518380825441628917954587241194369793765635863129534443067270651999468779461495706550096868409116809760183974858372125132842647862402842371196763278628956386865710703446220513340392547814142296040260261315240412858972300873186451412174170124694503684006752593175531896418712146489201100253590488370800964594884463534845457749306662463519159659777369643105007023169879217855155026690116651959320125629228236947335662909741895554032675036973203879834743257054709495856134703454461732165489428300730394099708795200914526486255357378425869348494994661018504595322890616035730831145196837503279846107424768502689665547520144677506763167244866499907536986156894154976874857664483891187933579111727343535067751123000213787342353308811891360030734698815181609665605059687007319304873208338157637433623775657694295362063689288200505827547410167381316383692861466824937512164000512825659101108394868806062002666336564155247202108528623036284612884295996927219755940737201034643453864593583717935808124068217457053689408034363287302331578972578074879484379691984280439726641519346003983040923246367811232397791774305653609419756027062141938505053772692594450704240164597235410842134403316549723715960042440277336458218968745611386277989620585500061142644242765352174679772420949355657500376070488484418497663585472131322567304667497031390892181608628634413781358245484704040730255280853530751742445654848560032480905244356988980087569570219584248560955260573083430126117529040577000894302620519697450784424647680627580183298233441685409585529263812623050953731065471255562463299296010992322800505452923292957432527044917316261753032932737904556934938755085847018578622553348312653054512739420695491899829203771970102054133862187679883723364685768980332843253668044969064331423335479086961010672704795445671591171594335191586651032776781984540983887348743180015915037058529907918400092273441567472490365261412671819072902792231708814182782188327200346439423433696162725476789746465634790204392192876133545350645042864710773295351169974769939328406391539198885473933523662347162197180137361162420966563222318777414297471345668649660914318040999620495147715396972960612623419217214717140715692229660024118507473525697084139054174389796650376971143625935553960534365571211996900183315693931357363615705876666290333486827085531313368420574224004564671990754443330780445317459518322439967459598192931454105034370170586237605865714598951344506886273029248947055882085691039811757174569217582623085316784511898935233707797017035656559739726104803518047323064377637741111315721058747046247079964461816833870759499498809589564762600245687301248898802742076552247256635536001073812080676858282546961943991756058397931629663542347652178415228419754393948539841816824438968354845581816962047871462926892571895876352254451941192336471914272909543624075074910614072061527834386983423978969221577938932358854576555623915780557992581394897009385076595443140742896485340878603982010808809769380532926360443347865127733671542744619127344783153391444530402869852211529785901554992817448512408431920011903248574109578183360760859176770254651919374630673756274427156893232457470428137888318272343388796575707887529334734869385113930711924000481607502468428254969439475304047569198690922723246073980850457967109015526056172746010834158439055384127167721267274433509730567952751586643654939948319955770255512336311369417545596176160149221689524785186100213034469227473314525011532341871881572659545698811094878265175313440776532712184914887558223445356093783640626940124911965838674160413216017365957131664151293797510430260206921549313880374089344654138407668889705965213784828203952114818156449164570792445936082793876979405343392527314108800670182635459130201663420458120124339309103591092307804432965043726243976795867349317373031421670326744739859636448124602333002670603214972288525166012424895096968795821844203871783024566339318356753475014030568118892076817792565232539677355782348905987635823074776184028549477638956002071295776281663304977357476806024446363700569727400087241848860807017719542642714128410409778527924766754790013396330642104334901907512511377976706006928313022736169918540639095882153284760875474719135117934061118324279024487998430712520612070499474572373006968943810142744053173336932002435185580380875850306993309928360643551836951629936682237545498513969818472160348829547262876377962916714816506614284022847557870040272458067534050447427185773567006702999832823362065403960545290088545631828741875368081935958563727796467472253290939058994910486796172181062613199223651643517008436033288421812024020327732893375570164608111259557456288126821291004029796965821257682406418524273406861072147313781196041611004316756443372728610671361353582212025787616672975423635895616227011507897970922445582628572648670572835866856860606989688387419369207721381067824075057082584666526657640157919944726214012574562033151281184449497944809098412820681991198024517425412719147114561440141146264840176220079963551112879095148514104944559456681788100565558574392089926041722207427746215103532939953186063535013281350083956590160954843977069040929485573976417595091583025857763481165972962705724489067339052927533668858529546467519018453540761884759140176434085089757625495466911720007863081288444839328153891921980979657323955192203401613913239805342998614796560066381129553908807744443498817113675207860111271399219612957610197211467269059430325477468088754064299866838381447413112579572349936704387468680300308791833481746153321028189441814839920226769787431655831399143212720645681848021505592163982486445608770533588163596404084805948463466524994264033799527914621984167597439850242895092851582696672708150613560308700997643429852008913332743831277341098218418575286754095447867470529490666372296818139114942443939320184117688556928728022092428160752041002924463073136694837733874125131834715683509616377195917294811480179376538227698463837553278438680751820065426436013230887275007904155434176084710706467642820743829457249725495597502267058366159465016961867170855906700774905503199956137916691932126864067852155178680557642190255921301312430439750156201971234260234674447958436998385103069900532003244584258032221887838446833290480922703567404776802528694449022231750072465717538417583151941447422536370435560008835098789093389529612549087205875746802273441853196713227987877157078636123215059892638926094317522018485929858813825629823428922137984283572414588052135650516122459320512141509646298870056790232640567982794707470925422733953288425817724049156434564259498154373774156990822787475149140511214494620673932130596468448421118898060615176732123065185017456001219850240143345957712121069816581263415351875066583323971217458545551210805279762696062736847403999361239261539149249959363047037190113170155616846316581211806899004339202685232138510458901561241250724797952042725691557684341880707214645892672982867519160869950906008535050746810566559467974995982377333282832587919419512953487216974284944296152452481064374552966690474621683710995237080280657954978868952989544730546865892534617425102620584348714081310253881570279890694506699525256850144834561363939727196528709833069428704490096271163510248804422164026398965702992139206696595106533574946984003253881704673100925954311478580564230739817061147003209209059163437534477116597830480228117411663326325593283670112364825986097547638984568334562992198789892483210131577836107579709173158511367951835226251659200391369080215723623739833726819644985318725421565555212925784408164426522453941710450435943855734069604801933167546648634922988212801762868936307414112602754881504794275480358088627998869136113901896253786636939380296297385732620019165923039187132563110149674881266221297870470711530880376897275906559432655333567592686909098444358593913716050150423618609404726343053185300137594996527819948277859958064178535641219282355651851192580853175746912728215458536693533142084323576356664121551900968336736294953853119596931339706979274816919536733402735247498513656416685671749849663099944083460999449482737469033554081124776455208094043946462085208341675981095359087047789764137194503299921880181865105674140120469748780031371196247433507502655016864042947930182647918339650102057450624245074899252424705236642394824555145353164922007655172809085912453969296557285657298125975576283614841637765744624784890322008881168105642634300923872505079827932020001512110636688849363056332971238484819697613829162962624517316484010465881588453169158654962107571786940367800330864244155230132012102201122599849403289310897776617044291526850628074789402872507216580267898149285574144203357025927050920315509443244537701452953731664744471996968517689205868261147849606777361122169997616018063618631941739926696070160812681849093479432822424408513736191425071407038412537234706826132031316345759230846070971642931877034769404902145091012859412864364332056008543451704646847815513422496520473887444981187565742304328241526374151028855066953769790204649671358889715744895521126694603787359784420545676511769690547201611998435707520065285594143798100597962177467538871392388925956300947629065709515358171299521837515792713676227204033611563265560571690444049450302898934054222593047115899453134960859420784498642203806217488595816994295723676791107585142072848493652961395821896336550379150446684309450569425905102435940437946864251429529695457917462174086493986959266854159227854382237310106774746032197262611056686537239545629688773045213511439663907681921943990650690511347045910951776729344774492422800224373962653979178735457059259972610830224665940750950079117517047233284051498728506984403865038692912606639862851036340663462951755869358271669875393307036058046812918782082022022563511786626611680105859282411271705164012487984610591127728832830409995595497914831415492159386225740500668282160667205688148575039885966203559006366640979852307169410043077711330751582505877907553750553485644610897914897867449862349437491152298227013805797058846696755814312885975397713676454054094479263315157532584441572026028698632514406392489268316143668838497053460068986592635497511151919154986515965099449997917045417753976135417957457040871790575558380167051783697586346517858243797755069091650944807410584952393202531103883323691732199520457400418138364914571960666465337881390878637827087690047117034753272519447652596914120740861444411384855911212770997329489320018883003176186438988561868148626460423849547850157325447167633700893305694279614829614101525904773528943865424176716992207603100577854564491045483809606232225486135238570482111805568490358285449531752096259252996163722904879800140068169373455424390465245656982996058131450756023660131437877982775856740282129582748192013225107870090751904488793204814694425090172975181882601685690537962837984739969637186677011278714231028832488736953160103088025367886175847009126113982437267583947518701528974087580946508639581791694800689762533830987637708590183199531714166363806011060890880761817416937552914981880674331181871512177403134427882399847260122953430741253708226418479760006565082220785776487255765403597154171676208984128572538559052712532147421252911907131042672776385817740585637400218136893009645646861853133942228564066458484445423046659091680440809624713746255666286126496955959786621197884906189870944136035273146489696300668966239285147045106504475964821170620573462906537901648081613536155957956180259103814287787789958705463502496588831560038429698841133051449698166234509808723538821214363315526558718649561805999038656375546514181861969254168428628786879206856129813503929697654538762779388940560987652589844532682339408477087428188509804207185521690838245131191082690674068716149010624584078959736213435610036821179636080520289854323044423929983851246248240655105853465356575110878043653582158572319838138411575127663984336450479822505993462185474031709943651781318977829794058456262206899919812610186109427384326341480323370144659525313258394871878772083305440815480857444335482971089005973818280119274919888235589848515836296412917235841150465440185081414237435462708855630953200244105311615320333982168779355400840836416869117477019296449487514104017335694944994703859036359820205194072778405605783762317681146406999902143016006623927651841023142165940742307305200911984474953967762850074776155546554053270018203758446878657571342405439937834842731993356606550720675355134558239233064141225706466084287653972767822123723837363769638567473840323000548397792490687410845623950625662011954546990985701215009085413246288372063241402419817062776377749912101616243596914671632405465130858119649203727924163212973361416968740105331975743074021799122031135097769704244772139228159244368781889038631130477431367707614638422920744490904251857013159060245383438245594331973402103868094392515061987837532502582051694049666996175673037677520113103933331583781811000624152105599251420722521270050595952511655406981997737250725990996313223006210114026900667995084590637412749027905928008153941011648385337262979477158757139096272137169239851613728798702185838580944809523101718413257281424854575140587010317150427162658979802028031088458418418566850847151349250082214086482995266398627168850423025150082962683922671789662215966259513015993454433878186477702738514418227884849567687599764856620513917069864435892904964988858801527584699126712309332459218314945668472046378328666884032890773099061219583372462369265020058305202565615574500907665144057951095073538912176438373895479748072689964955598034075531303347960358539627391234657936030385292518828703814872058043523179387676749610036870312669691597183223501768556527524652317711333903390068851626201181474197117187952949402003909285456731302865085929519751484167270039781082180152343909876311880555880199143902088053497070024538333072315565069143768227594363432439968665017994874691531753613463049054847475630445277277983450471726164881067067561834671570836221391171504533515479521360257305508413043947303945403572921886866524518110913632208551345186705507568485563199886507932221661031590595724297923074601273418577068851924055771284213467764294676890645947265926502985506716443062984915070316406388771921295213797746909012962045784640130988668068930259537341939623177121064237516814863058345421319053170776593308023325183009836450753631181531999370394230024799010094014972549461155797970872541480580400427434041489798696224296525838368566823522229872579105690497373551662023417040813678440577054672691658011954686788220269025242269834819565433737079855593431619587291127046436896608674916345811521105464499321658468928249964878793489416534154286363021888476583425931910619672330058608576842049067583968961272862773881641931092052544795267160811324029999530685752936879082531612870620229028934372767908500619546830082632760553731366856764808371834996688472089172971347223820149226295290970524347526196882969942033294032651117641547441630191850720383504452170882847423343730979967789358283662077668241598018280046535137117839223852145444009921075103613183045513526637476161463127743940187390669587206477554318923068248204929320498112882333464598044641717320826037953049923498476466342270322729786202554358288632444839704615967547796032946714316894481248541165711003937174007843102209609997948303783307017071833039662718896025842448351916535318162583741567019343275917844778891368128332782062730498890147701428152524787983105633616360232075035065588229033186913276674665658355913916217062264889476341674946843275567418305813765788935851618823113924737961537978730021175487928420235636343866520733955300851210891636046291294994553636140777888059521023504696665644925255316601562556881508337271540718009479207525457014629156588154167794108611127165814653227471726340369775270169388769055626465963959096454222599437181306517193184278517957389025535372261959196958580516685583954152948527824813638491684331160453111654517063291312497483287292970447987963992403105402561668553496804992077702730787504534547600010331743957434935709707215185564155633635972329369621556729561572006609545906841370334426295743789270719010687871457177278598623534095641904157772405818437579044441882102869257467657477516938899690242045242090826182356209714188364131433891298626343672205802783714671271745425618069877345624911855333646832379626516572152923551720529639933875587403675568264059053704354660295900989255849283044975197949007994754905878537433246343782784610729728554470530363038519943454283159990199351568601655578888456083210505208403894511183747236112634821524646769435160053146147872595790340971028004768327376180380835595804404632794168494747164551792233776525432419424548255119546701763897069722685188595830855623792145996579183813160862236044462083224871376821429174451610157658751838867354189435919536928005466382554950642335450788053915032006578867491555766568363668940299526961876728485905865834170446937688313432512016433522142041156849874644069275953122338485392716656046226904723107709432322911772704471302129619511578774967643526770948828420191593943694485960380704201866961285390619088737452598319485566118979431797818261333599088618094581390498767432381542652177563154086360370272725942778657443768714576683506938486063839747853649300909846107268344380469469965124451459935032317719899677856071897216689707584752450348302938205658096154799027674260003782282630165573184019727405577507288591374413156902765385042616220023436142259718723453714027786943369967860369901501183629622702200998255090962485119314149044347642795112815099947174164689927355010307172228512013980391069305108326694418035295395521533391315076994848760909829525822324917668777749934709779054859308899025861633496564964606210161513373314956860897011730580436176380554168195395866986368098253333178392922224142253023329385357204700320805641284481445733799325689481010831123336751063965183165213777559642914839371681843260311417536515277312107295490705562725627849168276549627909905672305662794270270948912212367981134182849307745843157509891477710162489346472971509384881890178945532781921393406908589879950244352933447537751140915173307755780677048715440279212655066687875647219950475964218952218728141696691590950209411353319858144858918759879015610469480033815236351858370954703756810018192727639004047169497138460670389116334519899248375827109300484284587433550542593481207225334778107133555202642022831165831284880018196176319377897105161158823219034799332508363372075142016911407674259357631545685830039411519024975137960871313304883249896236234720491844891103571374652348085997949572768581840504483041303746556131388979385634245242788746720805575435263372973872847450514949686054765094724741413772542234863178727124573840497966693028038762196295108121540104675814880757396349973687473971031383034096468826579980294471891663085553799290686114959894478550621045238383489929226676041652558024037220128435387956209285989840549338747743682378604971269722404263999073793953721004504894322314835808240465311955930846860868876159519190420372545039805282969929388998627703433016857358389666204727899976700481401693885791121057447285241018201309752578209274624274269625714273835656323927414430166251228041217749538521884718299873528837203778069834477751249126680404279609894991917697161019524603105563188052389647427989827448123353666965475580039389542479435541000501551774264088786825034898910341699687274771069831950279668560253095699441143098413581351195211834676047883374206274861039063339698977107410397425733687559718869463737542580683273898726655921687696184581391511477188358982117203812808265453775215679312633130449819046179684387140436123933146942908581232658921312050541560552811256436423816492780574194185876029807833969718141260210541492649047764934896631616931648507178091306219657149884047090735181779980250245503357575655231759662184690974695688820352017893721177689217220036599229693863743988534059012508788327898796472331223984110528680227565590667205200722250017851908130254903703394040396760991255780434102955218685316537725538159451181110711759557073956307865062163223598076179060305578930930565040426178964286820363539755518260140580532515760991360309589978946034994307144751678803757124109481763701702106893183366136828319899229819326858872522777050030423389175230625589222882246608140451430200387046259306921337184540397460103904510831470094997665629223232003643293244941277452116689871858513613606896864161436534693664510628319156633362917872712336909980929595464591998049502774974976349207204386537095106316126597237601340010587135342676545117034087725597753089080157211614916720258410216297884763431460491652139058817093257228266581847708131712579883255212246515888313597839625827191466409220982089436459660875525004934132123860012287002905630780110785323785600756987409602353905085426048363316076426708692411122518413463767428449132820815369506783265037708185637807338522507926266394077049280488060314521979428264535441988756372922345140078147578745018116094588938356611529422287102392035059728721297976156380491874325452071782399647828945992660540472146968526569740962501962849244622138744479128905712931384212065697958550245350957054510686004089844312140842591810151614514750443260863961458747018740337680721351412105015319267206964827073862942969351630947669853209722590854975934510469332898489016863772722590332246583316080836019825122343008079986713651196373177360906619975634139879212258765275117993300818594224318262031169015609818848764903203895683138527138817235547088278018341181353522624898736145166445346571123573958547680708772564034130160219131494807381783400332321990692568615499218737830083769926004793414094730414223914935221551039358380645640662917119544650750259770634662184762355100886677362886203524317607191982405275437677616946851783060087260192097569759456176781901884350966752827060700414474707910610421653262345028333682699764711867626032882559098000100409525836246638763700036510659723074717858699737380970695992544971327761459394287433572105121789976133496688775698448191429836254995164029504740572765398681702861964603067695267205538642563972173438794699315112090543697578106550597964297933925933067985937100302459483458870087271041608974044272801996285232358749524553626827016464666009985240982632698011302775134187131724988196588631805553716052008586282585873405704364920828660222686694975209830267837756836842920728383428652494062427838695358149176203240210873486310530259685592158770908621577575691949764538437301855149078053763110033147060551640539692561402393215212208671816633542454430803093459063606057029747501445936317612906831782455082276823940318076718047086773912242078536906931341134103137298640465004731906012776497183369228859788780288314635077878797173976595134620503209380314125031418544556234774635980268079790885876854177892612778850602895302526883272256866485774533189298687603656918694657835066324151609168699731195070716077455420827860569245078041792692318386357585549288752626802981826718869220343822895337602794519359783933925737651835431327598558118265864739585461353343375224824007674209908556955256991387756820059627658383684387899109585562869067654604665566564571812253682752651303851096027374319172379462404813529663596210788449497083322309217205951347870509339238044217621817541461303516915069243336264346824101718348995683456259249955742449615021021817464312810467340415074653945288114092145199196213332220616975206263020032721963478677769766784696764770229243216049825199118205909499029085746322463216711208478261801544750820166090779318112451979729823918106192405543394503677676335627828360770499411644028998060794418836203144833410829292757676277276286320675469484027863681102158344223205925946852426787169864868662109168261174839247415057965392636382228717308831686908159194110097387006618998098044425418323886587639737162506041538309308252831745459247971025093286611699037248577745029059843845414012434594675560514353164619345053757811509345821653795913223362630249718829910182701673659258399248488611420174518807784276881883799415141611455744739077305998021913555631721571077787435632809864100408779107207987684716385070097011020881561405253637554183235413201416874820648622309243818703635006441189347945143408722646395959527597666862209475885251569382857204407460703634733316353970349039590665400791626541042202305323491160258150469827416199729768421669094816045253563319167903266523445418925299479547179776536247831828994892667302567730310237838608432988084106058754838202473373772171818433848752981861530085443113158034217294858688133341587119186085823257655069686963955286421110276589162215031062105589952344934464202891908228269784178117022931701473372701122354906599905583115292804079301124164856023543722183337316092941778884332321154971799764023694566950901313835407336244173088890682272120821163165359328642442025893251862884046016432027365016287919474875008078230584653932691400037597689886242620730347083292047580542223268401852473681359791357281529925926098604307158494942049989326476772737601535317053376126285303296995758505850464436924635014335040638218277617717020744102316837553719368903320084203173177984584072343476262146126283431146166820334187717157728879428905638542782019015449315524368513262829882692442259598357380289134557004091656636757799781860321170797226492084901396909776677660468268190852452319560119262647173576682815593162228510388344641050121571297700609858076577487353259872376425649098822924473171479239878356566332420961048729904936725641039406819553744100701674024561965569643356571742123045351582266320876866658782227873966702796114494242354638089452429286800313687179548352564998780836639142859840862678989020729487255383689479046117109486969282982109079171430769459922819891079787408727824779846542888785710855975134654143365664617553211086165343409196866496459523177924884082759369945171891004692641177195631711618297987552299439198268842986661288582224570278098993189712097324822189764219597423839220518924699275288518956126065279625704088440488713629880705156345929014494812266560332405872742341739435373451292675008447945011166824298906448846076954411224889876481214719845596733349653068101608655363851916518796481850165075301995735803721062312494623260974950300056930790284240656159021915452717071837276400233020150373773042478751240170863446262224836319956528325443774582778550695172035707236559624400573382921000300911199967891841281681622414944761173864934799181611579347439516591876890345433520093697961788055363638096111474713304177178009187139552670686729857555699673461786978542135172402233841901341990909716556167651214929400732994699863754329691028900765351251396002104138923058958415423627332114933317081661787637376995665871556339039753635852709208527756016019972312241432334918626868025444049742496322702627394663581833986655676689496848139664372266839013168622583696991373356049992291967629120448473379630953055614509991954600699233810624935356915278362153244530421848670626425021965051838075961520638104221218858129057889502339672615544398028350527289636382848744876554829949793492381956545560049439483793246173431274639786390833786921193865741118353239028950693956303216871156551149793264389721940373941932689247086132467478569589831213467882725301677851093100907732846930355647255441704557203975461033345226109624434023834753602454925877303606875369617969691697841999549812100506745812945275614048160336660382816202075436392541736497504129790064130257128907154617708315047998773219205101100527683374579074695147354294622056347074291949081269648454399141455627372608370368456354330688947744105271798046530796627434445251048419207678296471304821459002783015655822461653458481797910341702819942207236558611100525615257935537727249828201659248169715928240362352953355135257903355662886097647142509342203907325717707412868486489469210238623700895009519296853470011309506227402544811950341975154166094126590684682576359377372482257348097460461589117064402154393335723598795381867574889906312350661383425423760946893225006473027839065634370042391999895738261671162401506923409622696016850319160837327868974481125317573195135747447481114797478400045666967223562811132454470535891793057380024093798216889622324812103655582937671861466836936119623646446921321096627926879553324268921953628705528121331660306225802809116395835931220695169358682216974351796001333667405436703201945304291100666848053237351507999974285310715797401644740659837503917491448627511974253808712281457559819908149466314953167587226889542604437684836214689079072456767855098707800383689126340491207056200501958964769015689315656523979368825849326069625587256865380289852563401400882092420307149398672425498766160238250426677304110093528336196359300992667483566756122230458531017368742446200220135649758454112111341722152902289641728990033597207952524777427286039120764788539302049049691516039253134872502346123461885100041864712507942939334904404126051988431819858428400368172017390671505719218254845408585461757117116795530170466641688897899804358595151760097417929931224353520387631958031379511205383063662499573526302732338146901075855695636326899215072270415953950912439052748996993448984279036480506620282185020170611517976719626319977849015889318552719497524754357366233357876742253611871916434863408986180894752612382416844614541317380595913008697007260232891517705996386984690439331110245339931049838122340910842299732568248536890963616745785143681068202039971315456042926642753806962963218365674959630659851090513012362246469631953342120458010040040886601988370351547157642776449331984085785677593886075415690452234608489657768633212567355513677053996184108108975877331784868743232272824882196648307491530992771322669585650338557555336136525729888235797393444519866667438117339340753529029398458642428855405894294207784794369667281640989584871985665143506201300182801269147791976514112601923463293165611519950754313414369235550233228635349320080910261717753170548044070708224213052026292824448807700271899049496633873587842718368645152147019482691047012964245033947079581539974631345893368207680721374174008493385715234194995197345006725051724965605823534227880793605949681200780063538688677552593405806634398419623691959775589202699396630573675862774712119405427547522297399832673210941166053767398320765522477815878656731929733130251809786751049572909761886729955869419505007005857233862592754315404894078867492638165241705577723266504923148086242097862480049844176236020198545877379072148070043464142765436390939066961812089601404349801617806794309513544862845825047136649214076260126170801250952060181006145820686215119401280692648215541395359431673428424973088458118251826353423676434578049772390433819044954665712852144505051760967711562195896897657009823356324459382921264769498842590631556736919188805815357956921381573018159391525546676636616835193700657970230950216816065433393878623184066851058223417950961156527831707361244033017895692487708120885323222531277206638951289505674029149391872290642586261665070460303771967741796132121755024731735063369501890020694167995682864912313210450964186296969682175424365763715889691344303905228363098921801853501847792240015799953821709517295708486384205833133608050030051289399196086233369650756631021891648643672817626918426232053666446051835533972562133899096111541305670861929110383277152767761169749969891276308611205917367130866134545113190542676256425323753383020687340586648876277870797597413413304840290686099878426026755622247009977442660194419300730067236543314969745952314367994633733126809205828295535518093043379379983644209509319450900158209029545738606319433709374066711231091160614898629586068558143933850045704207214097218459263878795852968748788757629776998976548679928723158007498017309958646669778491143324816513756550331704363225654575449824200551267506378510939732291822052507926008935034554017408565073608943556767025212038791061778115604496496429011008297271588988931533592969753146523391002981344446925330305650073883315181075221723089830322935613071766400918747480901142611337228905043877890816472985689747771955228368569808492781147413994219606524769326897326999606624139990606363328359185617759287763229558482612154899136476126220698384636049526517732330169677511268062327882163019122275863506920939555038720219834110708412664587999259398128881642529822607520324239058083022971153387905224331624421541533032010104701367167120639042987545666009587138133312518119258654632927875062556555569032539263247597314037963685370903187682946924494538740042846164259622992887223028967198363766984434611613709876370101540628337436584855354634214561076474866499579434605773615919150049916833947239469221284021307446541611150815976086147567873664041353343260822300876359300285849853252180171858284764974587925990748216928832744047008967128434036351945429779038744149916380756810247564193223184512719486305839733964989518317276926017250688898165051922801627884891657543240394162238259695596243638323038663242857858821378997036862980451922963308899204153423539048288839064027083154631388124265807572481245821399495419027743076634731081038613396419625302629554867679736641333093985820186201921251356465174923353966175670429407187897183575437386099949644109594757911146255962894757622773679512124679930376826793054956825611438902110767844169492166019530625443235721987076457315932747215273891793391357433228298885212895226350851780195958792596126170929768847752032891700496892627471478050125016697678845042542304905700339358827833219866998430440415607745393965755497481239322095432215031302816661827244123298289010392234206946664797717635213425746371151299918135073710727021254021030767481150318305106421055160160409278928441876536862487318835766236259466285391017252245428636129739213773168105977529671987055878897001406869046931998525478833480483949393669256604199228167741867278695219758949862573098573128192570465087253885363423734483856570312293314572655864322987800161502579066707448998016990404437810022877179739626527263393252128947138087703730954163991428833438343720671037862014961780857669601663667337193530579777521083774207273581009729876230430035937955032143870162080590555578075415128236313376802310301171839031708885054351125725964021957957312252947530467530380623788911665824615538097829305187972958738911221987322655133530051000894156309355147733302199347543835386215147221803909541171007061790962477776607102762688080481373324398408786463655819019362437505092943285360637844081900514775309725167137500969899123150841408471872814447277768129514821606373222889861096935473517253858984701401069302588804887086716672684714858807772224170357650502748118700032681023049370773751673243943396685690858900592724086220225639520312093757426890916721997436355721035549082539036828578178045023353893628766817673424089898209272291173410384821815822680686588045022538848892448763065635239656995518825224902114721653532085216898490199456355990120643782758712879342065550307932225935743751279166778056890098105455773127609898150980248405326497058074294713503430513214678358964938022193122787504155929083381570410337944511747034320204197032131844641682972529826073115881895033943708296084581009025489994701420774947965084141839967166033254603588209469295741838094161150185205398548454908212242377569848138762512975094400148993237324832541520889364826192496548174163974562244087636170104169954822186451971615006890947620149956366663088239829060793266903108468629522329686185682585265779303230401797737071376011955711749089770774490329194055763532345711478616180356415389828706612704146921476363727180465101780825009534734988969098546330757453320719245422409619281876923486258645449983084871526747189490479955869222910686620970966550180271210072571262032247826708678130280325761136531456138898413707117231318837830410464506972597918880419363676215858242694861044536510217838935243714430771625694075599624122257703954699926873766091149826734990805900110227241667818625235129433210845383942435353743107199528551311752168161906409165391407562516538683023035169719486329633031772980076438299058759121830683218490299459196130305444190125297812820281394605165606463306916773747875938432454520872287916472284783728344321405232331194823501941083772243538642672520317730843447662971623045681753985052127391419286072602947380484034766331844435771102780334470645236280840254658020010896092580424847138960532493488417259791652547683063997682633266722108177948709970578649505755931500004384406666887706457626877795608563641046230585898698570994945983720254172261170634603540625051053808469241459618538038793709121617221804023742138677623441768800788609079220040574492185574999555986110363718465734441191259964413490191297300018101355630933930667407633614232283472708121536221235973108736712265093433810911670243692203698817834272272743698209512591142800596784759725787103597757360362979943308382706326514944034225300982773863366195259522396612597184211717936697599533705443588384353857735283394512152357616782603533515203566019771524486235921674408096696168835941026956750763836777288494896126321623125073830710363743793204724271920703617865953868649100436216392383534349568874440439619916245131489287198981280555650671647807352125943909106572740171568646302054642294560433989819294085626383059809707900453488479096611197572812582145332755778159567392734747962583229272521410235086333308026588372441197665812125373439906239701989043373131803536096856921003655268698615867810687137505405598963014823260825619877415909393695603246278189897268441408868303396403901072960864018341466218908060417971893735820605138918456384977555215107742490743886241098333568289576579321562170385401026605308431095256567693411453527952323090829106582464548274121282871777370170229900866495496518757395564223005281026737558283253982991558985581966600740477211742592100022769184736679249747573134131291939308522697960126071865653757142349789867081013404328938331078083973708963460951568126968278639642514263473691483457639006474650082536374352892197862965710318710102146677050770578107017041450984447380394182538705137140283859431377027650529176979203304138274937007554863643679364480794333667225395184173212445447152144172956154314776217823513550045340127524413103679740233264722851338528857205234482583928338160251358825427639579898040944998535566885228963913448463925461103097201569503924712483848656687973996061104143975413130322733194010619607965324764628520466506406776423332258385929188008566911441677643030337761448811891951912872353151771785845071484537194215181738835060386444419596857979430505243280091525205121442606416093913005987211556723948032599977538910363340293783225105791124261251105284920001162021713294984003753404928760701970355033249950527058752811644446499510454443963930118082822122555481542261472363046035842165644294330550510382635186653349548259628750795290839608966477442164096319616201575507056120647133188252459072662907674284703916758948186051144056116076598234413782426647181072397040886050459962864863149717123739608351355261440748808015482246571358698010763087144035124250395016328594165237761246637005129370986705464109359755994896704969879557857479322386334370111441870011694499754842721389634083944024120061235885406888996879516833567889827514230652546063236645806409264908539257448196408445845798095604204805343710733530323936360953242973972110682858418751279828807034084239412858760071821448052514501341078269736440770065525226312612052857895463741320326177289674091996643092626717330404882125372640751699646086831592504530177409895679185523700446921784348488785093853537737928665505545415376081303790396300640669397118151256775259894579009412770874703982205219548284351675292343240651420440921907661538202536181079054085658594265408493321414162226481581966623595844987199066775700097102443888228956317744525224571165836097529453622306227763195657256642406907995147801983212510640026401065846119412468779853314623645682610091652798639031369897513955113030041249918417315384349584832524795590884479201329782581404015767481521990878678710958160528752499490613263400388447146904109467667293451854099800164691715122210413390934450796464840437735035424406793633431671389848164618315297607984939662125751123061124041347083761656523680884738913385185005004335343359740559961324918845439446089469693852291916472191303058185443797644251634400637736316861796390313827628812964150254629416743505814475195887367041557884465540341145888005249113299081429839611062304653600667694633221987836757009242643603662329565502400870149847549043977295447064612437479632017538376376222500196816469513937344623454411827987012073893946094703308666258185717383664996204744052204934925689301967814505755299250144511066188974423007222380674896233528652865848374994342423483633582577126672080276731046392288589388793926138485065446654318287562677286987450139551750318092760681723340771133622934535709026128915393304962717146870579133388001350586250481309584417029585557535735388085061525326890339483367907279234645895458405386248567140526924140369186727059662311292651484009413862338825047210844269196232368636888787619328411074090510458839706309899676188587131268739172945836536413030937324089798649321815681482819223817281017936194110859312506682970297799883513642546961724349292627951959097682927376673172970838748016808822508497208624710533817156085553163314182842258747360352572522065707043258003941617896284565122362990008188322971095303498765607398076971040056781167282871200286353856924487752423686544554176757025096995731010386219338362559998363189250049628121496579623164645091689381340720559965744658399694293803534844232121203165541317219018586228457192034817216013045004099593579554198370273397220581117193680582252086754459779505891509239325162214025912591532865579042864546051853202151247178531487614539815680515488607363592022589205773768481601207196347502225434323221709637848799938654437398585746598081859209097677245371126561825370216868834364685186056200625564980192765298776421642273955011826899808907807844735835319009752986136596813181146870452335772280370624391072856069957057257481854242912973127777731890722862298539380814914505176600219119971303088297922049735507555651843040456043708332498093449882337449160767735797340731229607742652180956510185581312387781768681968166843053359879012089617189618914228163079084877349020701753914421923128843331122172341244037991512112845198759229953172854994992520031134486773438268958646662819020957537834858346247082219993532558552453709452136333486758150694920536614597935918973134762067060055598613663646221116187815272489268836801154723733734831441080978868012574191512963511689701463311398444829841370227874145119468377546069347419254356273507615648672968729319435974583355549715529087893948790159499460580729565912243430661126301720549554833796599286390574947309038549594938967698711717045170591239647465177895196538127524121264266951600066454943069111871229544793407658905872503927843581012957535316748552679131141106247933290312472781224499399693335441380409514698593612080567593080548119806367550553472720000870289988773128457763666964243025717018385015330205160225544551069974637729671909545071588850806008176629622561810505020953341674439779682541160597283616964705689579310206839378392303469407409491370269228586572507878291294788464464452572336378932062358758842862037496029017778982992020775707828415506655382958867345535080697479414475955750572986969226711168705635564840275781385863351671525292498111946037201875989722414489553579032238078685358786270929123316200450092118811043328465313612554081700169548763348925009955299073527927718287778804777089248213044120654800562649679544044350732431829352889988338931278686044900073363844479544698516712797022348320255178198685995064525876665982660964849548480600260595923467026424352155373421967221490874061762331292100168248228207454541038821615969671391454053415915509909402253343830437847228505899694094940327616563590310154451348274218452080027258521169625107129704202838971903155190480524234687184220855946199759696918244047858272422319813373759042596469581511097814989421058272248181239480848967350230096263730263314452675741929455857688751135974510062828532128779091983764048607027444093519371805150072560046145954749934731835043405016189110978210108946357439511439621041415661651526302339394464087816693281481233874575919685704445785098405251498826075526190604164332620429271250140497640445376429336812998466868219816979867919577927291338288702241761769368663898697776395841443712242649058825879357040940247183664344444204633442042986158949863642310157966682410125189221294318761141178052555020132601763227051271087210475416288412611818944462196870463184120465745510812108094571555902427706808127726423646151812455759066607120597361566780964564912952971835407630837690132176216073887716866217688805027491488216936862517170593891516698122290470570475103548855286925554469686769675536423469713283532317985816843443859417995597110314963581280475039183297376875992396982129512485265067277701408027260733858395085043323301492850176986264668198110949028875376554425702343968376422548566322500006952054871310836476721407277840952977217903835043211127297078067529646811244265717021136325675460083990620173840535977197809863230234665003523870510670562694971771298790675912216671295162596101636671386175221522544245327933723946206441461213548500891902992566235400062035752671085539592585873234606654476159936012974595185293536647652902810363037633479262124074123327178595591250247658627886983673644393617549338038524276046249681477886502046378217544620128625391946532261133777356031813230402325832919184754942856079538780372066442886981436575992976241922023138069611537487039663170151524148538226070289573770394203083025146875363922010384184655993771499074047322877627899472775772209271653290458010543147854497888758631852861479505230141833009961580567334968812029252307910436567176012135602776170080924152959687846784123531129274848708193260031687626579224374392931492364345873144426701266342663827637903758829345534811199929133545756793069920682617435284906053143634554828713391022667687357750759253946129619051774998147777242596264302551874467708987905183446742572471027701939094156443248070123992645980479931573278327034435906695832321063442070928568835815248126836189725001069311043267587216623009990848966681756564875958704630610974053967158045841150501438369998559840374383903309853086307539180851858462614202012232749828825664188351059026586157838964629838489408489891558309932821224383782052736184726358804085860381532530314960559883315880518195374332161870222538320781877548757282649929503047924735580203639452429459843791077622010967184233850251195552292887045845488647979408481931193408399301156569894858385427743709862148684858655138157979628187613260272749738839901053766659968678027007217729497440438652809936403825754862906748655998524992589559042327128928121229774608662935529055910953935261029981644714476550865405008852015674776406378737268141544927708890798354772608983456448204085660672135374810423312262812022543309069446376185653454816791494581701384750485094186574515074746396992731449553444398093946470441088754685501137665281501676448200623081657366119829233147214472869215017665870519818702574964408238574668808652407921660121043523876619562279675515380934289229688153762927132094997020812779496297093301500821576370189469039311517978523038109413473657850467025619115525043454849941869660582216931372886140526005929179562148735491020740283959043621633996744758793429406618306899266881758657143861311599521340400446910360802175978129616578661152121023019378755989354054190481593746966969443152362314486670098314240272086616885750372074741645732165712908765601384904656120314007585934779602042417050607173197716601837721012954570538966403092000061744760869183430049950503562810581046509545697961039542020293188801669668083841403650310529246867533157865536765462410288280018139030293309052748882939995045228944145057850660478483308963928808099516810497547856982236841407936730263827042044070150863833441637040842412452592463018115273671484427069481439303436979402911727320373445659595953514528184553213388906188246578769038549691494950883221141912625668392694452618974145938971573740586098779032912794282146368697096281166695344534999216454744568741280441426193579042694331705644453647584446691723555945685118102596730550668895779166820324104781537072559901539450291053841232861307493872811957467440537469969661283900818177487523108045016747227939739553885741220997665152541514713796409041902839970920376095917843624492996371293122635629996886297324349539010169211039975973941079943720241881107667510241340270608543950100927515824292014584260915108368584741690485863865054131970550442971626899670751322693058209810587861231853957126905668328255380540824318292250245225860545153037191506765310288922209866365372853283755394365710487627457713546849142013180321133570030330369230206477315290065708429935889898800225977681204203007026191259325754283631246572043602172193230838379594740445390837470113112324065693761298215659241244553823916311235460573179125623040551885035192744813499792372928105608846720057491473380739598243365750842332036824528612145976826658572270543804528857117919584820246050620784380931362317979322665514913274790508967410120658369226467134937033747050490496092850525559321518281766532242341982047995420652708411554074819213984271552500142744077892986136646343136052364353458065183813093090774275025591240340091141470701557450366334296792392271733330629975542476121768353158114721108554106507155285462709538476982525445706286312176632446396971246048236048344278635607896402512833792237644012530846060521345050576584786776422453244643670119191781789884895440974498047692860660742085576687853868554786955215846586536783222480597239233599578810488615837830161256710198166411202992835226612596671454849695544891836717956983165562069795693741945105771393419572261252097044751986262180088713493126078428026628957858465992261465408501230534779983690629653992513318319476619091165818867945336226260857690579146961268325492215517996378326558054371545380684558756708294294706509867303559756457606102311252742398892891234682218761753182301922150714028195384716917452200313258588677003892458190677803028401781231692991383979739656425871363281577864419870741157414279460468692438093918402530096259636553160416035132998554277650491850760868748786403455021797790973739133147562114673788116580620849434576075830566013731330194630794411633632694797735436432550577821878440342535496235887377327109018806587645389063059348668907950112621838349588483786143054654957861456284571071614186037505073906371127381380713419782392895754447284512407499956816934237912809326258934253794401125756308273957485242832832918835428099992138919608833001541157693723655329418791774257039988588030835824676781259540827897109206742189836166844702923381127895651075171058994748363647840555368258773529933773440580896655507940577599847546846115863915733410576192460138800695156202199356526574680627067326316215653854620177452417175543028115133816857939230714768988301137082064660193925378806728389594694749200830178980795330788000700183270517464292643581424745793726358164016261976496309428805407618102244268479065752202985533556667145892763451748317411325103940369283148719470552711688427761601892224294514599945013787766860829343892305912051505826371834552382345027910681640735538108056295583923434258632286627922666446618989090780814122775896359955162355618955649752061208805142103375538537173453511561594483207131856407643036522558790375344680573911397150656679538740083147095929028798856832157257660546412894294051673860940711173159273838682464573651471864316723466875025830934051562888696049351620098006994600933496866652594663857938239637178353140502579299521150777244814414656704082785590868191972408560299199019120754142492103921565049670343500606849174459770122554440674423080027877647808389194776349616956539181311602150791612377895334399333216677321932679466831559898827690736531945103407951322985103768683085821928297641733232170044530228346809221600955736725683781376201439836961245555231010726346992914760256438514592705964958353826623490996726986913628292247640004852037690896969007833094874141599088664106685131243675782535217389698667773844118577417534707969288062294238570860110383855614135502136894897837709396310006315591722163000953969188250794133777434710447254962261895328816234245375771556294904856396504245909111585453558330230384124707932591491692152973728311271549700614453807163273915570237105117763500892904660758702621652102215513548307041836586948855830447268226383663330135312905195771235214051724047528898776715879370376361046813973372776864161796858709796936579721981177706024383212357824108260314252647354505210956411283663762522208036421483788639362948376134303560883885175667047716398334004501954756358946382413475097167643212518065763276707495290197685020400387234000592580478198836802323110081029139919361645723759070727800854749472402374568472093393278604343012056609166287788779837800595724739239783632337352560109991564319452053745812272892539701582542728308434334688581073977742064139535240552659934786736477634487992711223803880267768239212489146778129643838672197910356725150301457813997305783892104255036740067135951058123077056946385120106043681520172867034887697855471045796083075767039434761899087678472601370763606609521452648737874058914522181462220124802848460200797445394956803562972771949670024106549408521887078601145839044646817140689766689183895332540288992876723555139324069223642083521824168159797641779035068615024627733168230053384592824691741315708695982968751744276742606436253189550178048241501892727076174927133575243530129943746994610079947482864331928132402140708881143925259816163668513000178280360284805750034928634085074880915055542485467341370273658562592386430695934731215960327265617804325626094695743209871460150495285709471467263106400078800554307163605603608965342870038775124106775497252972368753684600865572458744607545520249903856801530775350884122298702275395591181406267316289899814070254713574747812472495091775470140863360319616561228711278873082968143443678128219236782978980076510059414238926348316824804265947511427386598921333749672807050977564774702204813897937330974941003002171148304408118407500375407744342727518316635621728773746597665402414373810031566834808434782621342957661012817332122877305131149897282339244405947489434845047270719614963825247867313436309670688799900978517931263139065208612775098944818572045225462897367125960104606441283960297930825062737456477051403333439210206195048496803174700133261593043545228141755780210807010318540831565935193544053043852203648522913929358307832085893435013904801509673325858178773504440756358034776209184993558843133072396412256325687052088581717607335101655159412989051804003007440076967401575258516683726426163765708160811546844016118054572817844493294554720650426604789414942714761798273105417254412718040293566065784020373400111081762157299127519362429349380460686928037863630096438921389787256711750739376407009403614063390958267904872056268120505264894853761347278830228304111035570226696534104545343914320738065954038428211292497267904487664531835060658975874357559204886538526986730531150551026856385831573729198049558216294247926388367203345989408100557543131130525552761827980915484800879277112649957468080743238103148581359682876077999501411257624034546115774442672827460416461854289514743964252683358003618764698348987364503389314315831174137956851950276233269004467779456254327395432440754486771512469246774125084388181025153293778121975756018491334760093505117072677070157639692067038755903192250538625477591980280761589913563961910470623168743334237870962191454012259035257722586674344519494192392893199410630113765324326481165707680982174786220166431581675851272051199188700611599548356734265290302653240744544267634376769142290188069678580309524418569897060978727226110626308898240326941263440791346641245518003713866044095164621143423982350222329539010108308801360085930663483433803455976553862758082476841534586325179048417587949843435326355457363217266195098376370247321074252592456262448340650231761542662517749526827315907515422148737487832541860412989168338590856150219977290763023205645062824316274494447509694417308815637296592941094874784221878817670166165101495960467700369722257340102130232003859720194152089925271318181210042954406723993819787358701202182399375464126221440878838191517877838415833823859056866152383254697494612520663226130629932737887225077444512809779243177645723291663297052548562486563813242216160750507500810386307532650621611891424711308966385094069093183191499551368749568706608337111916720950941898690607352552379331243640000230363596062791559218061012771467238118844243172163224943917905179959645355657402575256468374630583029042046062552132372586462175434560237504741179351346697879411047009781409565764934027152488830461590481996582028133904645014915259796020419387763097472588467496443450923905872720259613973401766499708341793199716866228874024858389373880999504953971954874320418234977758583021336465477727116418993234059638710145650756484812182314062392947860741077047346947261499455584115750399636237468162828147615751428927580302967739236610965812245268432820531629162452409358575562349969911247873053664078155117160253780423851012676792296707655444989475934455928425648329375273576314429473885597530823481160281331447104565870608514543127575831598798225294157703635395526970473398480462704164740833195578689590787581827521040105032615225829950449832510001190633046756294221925698312757779666823797863278997071981087725906323019098548418339728469601137473589695470067452327998657951021756166486082261481373387118521264724162842222542905311788628071079174843736994422656666120432478040956449704662754513361756782163447704538306042807046738906240683592607941603112195319897196247720104704988796967797521371362352224446510171636135846579998697406120187381327169310275041327106180828960418881575033336747625423961921668106918204624681074667811478268612505233696432889204426735117809495908203854066757987260302655707615654285838883172506085960294482729513619262299493371603710511217226016779873287194321163724051221480504699302647730457593342781483975571627249025902687715935613341040547630883134217972391103997952421970392699948642200282908439698681549874347856787978424346371022646830019628616793609797224206803588061321361638614105083699792027634454090983856190184256103573898019834465049823994886318557089728462808351416124317479868012848933504684614544913136489507450082005117694446364857640740024778833824023106214397744955196645913073659997588189179679810801546065261749383161024265025540597289231975105118422027259622324775393793611903735254283802442131167440199732499036289638308101803092376732647849211378207910917209184987977068624257740072693866662823698685581984978746519867789707190313665873420655941778743985138345123231765026689071569086680707374775540567359792581968938606940236501632342552695373178999478690069444494427829540077317087348081481164555223759725647331944356780362972630160492752742738107982920620955225623624834762466352320801738587970012075546477718745120960192940664149797106306830799149108530146605908600168687089286848814547538162988393527984558352469412695061423312901128484140147092794401088056009905060749675600603281361073817839357556746277054072602035061217342988472363379848257819978228574295459251245245792734174156343120269310425804438498022088095244891857799105376308656075096761151865914539370329172826045543786366562419603165712996012199198951754172860143418818857813910890050902939904188181212047187323864176829373402747992312698485573061435515209554717591083576655837299942947287659451018462883921478663126638797753188013602826783610168661857884655082296405031983628974439569419953993463057652076198144770995763250890902494563225565005679032903109063029151316089340494704139936561540101624145579403785002310238696108393030501630499506876703055002510551738200203244871596281414278706179239624715353162262835948056852024517473825254253982795257336840197578168006084089451324725456388644607629696959695597261532576792219485651102015919082854827368329462838164447068569415800202496443682598978340303989297295957704543021927870551802387890892664037127281895333601414716670125145733639838245361493326406059671857875071854422491774513859452126339457165816057832017346580165206672717023839995374030274045545497898659635699657970826906406885039443266434162626725735705158122988262159192228443583810614826248434781934424747326056164686125906226086836031777537645567815013902165517023615351506938393503212032474155249083741499626869067204287051210119389068327659905518324195221557903402247687722618096925133694947608278631241209659756125056322020467001995662840175206610302451137591603558429185281757932895927695863847651945830403960364709462558850873850332259710554919465236449392729217858054989860057454379670872684431839296599265610433696458624511292442400600079109540402281910145308378826273581846890774083298915064731743189054398792454955539313173290705577370470795325478722623052292389514382329023518211136821979077032230739756342781647438215673590628086965346603501530788011272569831439061517099933764663231048501524973230950295148441585534456767237134067916932422792544332071027749528671261327416146300451477811360420237907026363950609295827671714255814684952117355872689604938138177053747517466146260563663374898753421381168952861709724746285402023843865856948227904297919570438820267226627146568800567677001020814242932446574226118360617589725232768251402788573325243229371141545942096539474345733020480362612529968519649808267674118807546201598922770813527620343496351186297580068588849646795925718977651148593956650234390677721992736800868945906472845251736005988003011591633170061004927177485604377386452628645052960556525842887677907700410630435800317801034450291766920782145262300697461709660536736931975620218750818004583339836834550797659497056207454060313226627473534753303555540504506726209014397815955130858355365488354735648965257611835005776676197039561037996432534900889504350664070948977771341314477294855527781097531800417867674732797903928129118376444263926643935010245127101965154545921635753673975771572585710571752661772371118014471099441980188578423916466006657410718349674747355657330984013725194719668004708835477214210514950232355141035571717476534419508305787860852201428466297110551685556692234864879699553834387215457254696214852277394929245899910858900076459402574024424279082905896246114372309088336273023769177231432640364656482836551511322053196228252965831249671684374364095285704857049565115982072463490609573103038196849648759440614443014924655451040519687649342282084110859831426202820753369536030280945289260193861090986116355601367465494438676337221452529363999403367214166681168910636338044250256857293575287346529970021590642886056973475710612752455851679535186437561736552000782756122653874545848803289680797498282689008809948213283484709938241055616066671953982115398613114736623296929166047892290363974124780136397849064020452300499783876945238425731944355028870090833720428105045814136499578538307022338011496113915166374380061087493131278333599996828950774760851622581467752500353592694290471846719854672826166860116411696787349332236875372727048220148598109985850655634394718397113847876052081946900894729933026863164904966472237188522180525984620910644204670421482500767121526219139235666177115100248469395472050261070379774337524212761916061247472865593145374030589469072927926598695153591492896708446339652632572141187304250398279213206097891144799897900639736701486013489323422465360297839591566872999233625122915842692704825877901822033943314739594134339362796581790578898504772001156326030107277270904317536578059110359787254877862426433848898356548159063940162588851361421759159194785979769251906323717342118105558312910122884854690896427852741720655264562838424691231247067269330956610519019074656561842687305032692880519701467622981770787648502223280567746165487445707608235341602663190500077668239578355381200313330931437486142639473005548891661203697811731176971613492731612043753027623838705062300063202098361044022209902325760621289275566338448392959600490121077764164155687268396084109940210646925703493146558107125153067838824101938981715753846469636253208221833357002163261033011512977480877785842915354551540709448356927204251430763126949644301961455913555563058506259883634888682810843655919078381347918355849998631400872753880188779314530544920948217394537889719017945106591733588334635294042353521617205800767081899471803343893175553569476622359409798284499345133094976191518319749586537792748217438926218797185350140639194968247117636811291095155836610238019175120881075120307585056222498594463967107920698178120409874423120705300815667006269468596499050090385010096536743416986562722102180268071949602714921050455281263123809771861661531872579589208430767698315594923810362336734184912861284422385195970226301441454736156085685769660302833931816176743146358308195889910647397374304336166179402479515459155889573303652197195209873918900539214846238265070407364594226360282142765036082525023471697954789270096398487016006333424984060536180201189221172550766208760265660854569618395149078396034229118514611892993115980478493610278322106124265415781227587756624304338804416903207083424005334440196270359304435142640604823955471431071749458508432644040937713044493396104383918495463389718986757328717719070014457882594134096819811192840940262990344908659174136700656949864342863738851693062233830096255310613513885337744616419533528305062820887769980776330371896338413521363222301059189629074955472891153879355905563534452386856598723173366335386232743547255767525441149259186282443159405750433868315015915534790245256346956964070926982190731752103797885663849624538519522441895916929012230588311658679211396469079582942544488922146030952960945336281396559119310073254849973178702088247994132586748931350319356507494787469405018467735529826057818111157652204317339700040139051701428864159601279806560949698531324773179707303231551868918290244910225262794480720838118156413634601326470295340678031193504633764534343990909208419562943915885717123015349189986255030183869276130989408925625717886676218122973836561689938862044257776671512930131875110917326824231718795985704163251593500134301539930022257371216302298519596574080555516564098389407756094347516512335411749014616194011891638791464551098261979552907222634790298069797814122007891869506417198414523924080432369533788465185366638233467524373214698350258756667199268311479347602060305493483854669669442859645577950708836297975146405732686170711036834355424008493109937309971104038093056123922527599736679080081057984548927018336121910554768751093801881196421913364262812778233117140455218264323235998998915457071518943506407854092199733756988800244893908044380010759908187198722044832896128718139511536402512943608891426096639889777255969499236904014037633302251943114583951905248334485574774344035723217213032821788337739908791233539098614582705296718563462530746169268004935454191210795760868966732970445106037323326227093317679243333445739346451067793433012433828623814322409200174319653564649398531623231126801542668298864631372188565140376475144165394172026537278401327308662619533055009903704349451936176355929672247891147118657374604087829159296227866966922892409871011053514446752633001058327259736634227869873681876882397752463809768270899320148243731666775359814900069312663540005169904349186464550237725112361776930584384675094037647042747598258878861441656964441834468829432982663290175279866105599810959021099917552877626177112352757024067416002699231877112969046063930921481344910269756264675110340962203074640586094978710793521483003456517202178641907693667510960875911032782987004088647175711684308417530825433579838086603035968778583399328511527117612000053693319399690556006881045118970856509352454755693261476458095819550649120467531816965394052577940605043349604085678510364518287694354766886685233126547325114130426560080054342609861970515610934332597570225917801828694223348038420383152885489935387895270572490430697659254218120817899777040345251053300785928160825943409871194047767479478800978305391937359928404884332674090447222202514514761152153635171427191273042494282519707811515454273672468957699712530502888295253599378392774872554583426525179680991507942699504889274334184232976903016593689416548084868392844628391447839180781392672118861439586376833889045556003878267326563271952503439832465053617014311852921516081036320532951759161738807271886298874230593634222049180663146963927955226777719664649403478033716087144424975163453932856016419810302282573464420100069967979425126827827812462577105449653888980705568274553057439282751225342978312071211410506925169884906797909049193681469537778406607721875492866013762414065040340732868824243252605355109926239263772769248654751896755075280884274689531717274214288033403909533841023224543954746258669533824644198925469924401307116605489648074183795119029295872129371826706212663253747974509414524119603039049227627898179134517253887420091320910800672757964915879393317926234311682166064676057293251373477177097419353941495988923405481016296043779682824294129741111050093722878356595888161306333290528874958772830787648748881751367380804510582960434518287218693619167863209345167588117799486647467575171894481949822999775842620517054582548819137699735015388469276509133527893974836934564955022023357346751349509815376079362721815855110887786482647692060565598179742560147351451418603977844698546812584756859596466243526556458436266707223381230166438505920393239611651515220126179875233787452387132419160947878007413983956627350920133524450156662806713896795359898089640341475920204916683796956900022031889098149175387027972624619197717204153900099696172870118820308350677342354345359518304755582999009479460428305294626428511203463030203338263363595694932780634644006763084862867580314416854147207912162667329310179797264156075147334827220520814284961966811963840383359381714262992584528000646931208619052582089960811672783850936515955351153668414530504560487171889273779679361973131299642090317071872889180014006899572282630308947729477884878575255993449578384939112812896350958209232909989675322281090001930047209365649309712398239686989881687176786588355773106410394767856246018669229101692540374996051764989726163072996070327778487072625780108649234253105040741983864989952309693965108972997084183602611118470721473076138854286338335440396176753688333901002640222140249611484409988995955438833317709767019155822172169729966261493759662090795823888535816632472706346362206410141433699007187298268797966348682788354480470021082083035967284182344834188551711764901037087201780040869515484766173736931161830846109979197661924845558838518104713165490355583598233860237870580845200768025693380846833147320163984436897024358584817629572257433022398618532080238205334367222672732246489323597999667589648313338527159613775017313969199366180401607299297277629030486468888498118036716134583588301382061810784925538464930672938859320589432898956834384633889196043679620684507799843896333270602572323290618993641158015283671828078309506804157537757065850268146052233424644668876828575024469792208642760435241223770629015835242251256117169925023681155168564026203745763169698063804645633135900093638931545183202870462008668544622572951245058484554194674653704216351726304576591013443975775449246496301376311765384730416669915685471180842085717303496786210234917113621589573345926448230740888640766461898393545887318752018502946477377186808518453428022469312299680237100784940239748202604120632811291990827611920168922984750944315129979922157739898981581249225916117374260175424945568557348400091494730333167963068159731801122154656310929769290124218295254747859540681983601848167729244387539422727974664872038309896879922635748773999818319643661581441898191000648943250248877366387689422883868212354238180262283286706250678739559136527050012880769182935227277520022432806677846811242673858829259670482788898832408309880764852047630387928122162475895806353042332957416839823276004623320923677620386147455520642347852496639885385207184293021939316952357269977754638457363961188236081504121621049024499081361308476359730848148136982607091036841291157006652256063206250409371712374550217541758658573758672151695443806058415175417915537572517787608884907653887878766517700738166918759185918042301744025058730426257807570996896251535426450049892630283087322760492639232143444333397492980425003251379464009196169786232453582970373631628655947285606545371986550629744161163011989738652288362825031340017858587407592480561920456698502243899726762553721498095554209549896857947713860337159593759551459802767265465320064722931841071687631715632399561036013796795642864567878591046077837968297923073912601582243933204839456476194166992315345626070167012288321219041281977944537787757183655014786606777693917971654791660137795956041400574485619928979803460429452373574411068218113815663580889584472995363767685147256826411495502191462251076609238740268030442936436138969717579349534120976048057797927238884580421889246662862862588015178510246333858174362367355167293613529011193986403437612515464644513394658362520560082041514123219312297155564324453936863495057329257062800083059730877538351941793011250751924089585132380259359720198992599324732642501436078085840274800574944055870675864176227670921282983597891004547363140943524771833999453484071592507963768502481983384585172877529869385277949581023416212051488097947189267295400999622155007496672559788904695835653758229240392437884072345181787859769290396890248314104088343356681292740250761959414733142231564288884888193208108366812435620054083957880156249030158024822309899158954286727028856602288902321053242077812035343470588706985029032548169228416882533048530550456673230462484473239087915186812993329804312778972947955355282142007163504172194354880000367310311564592636501418443773555128466499036453690852618184499386849254867894114125900961904715803553600766071684895184529730148544975063414078206148339830181314462951189428187431476155841415621770594631196720591907794043994365913739093371927772100918808788388550976070618950388322166888768068095427281127662411488639600510448939906982408694810297108479341627863357177700053515086787776463962545162770363416340602556904337904274808557189633717148537605494547137485173370097106249086023367705227560420920453343732431664657219125245874242550850873076314579165549417410684480212387562835993700200731459741946580060801588526595363916505557160632955851685391967778953070461787475825730461262894565879281917093347809864769349204893730683796515068264176971370544037520553370150281464131418283374043684561458005915887093129061845802718424025723993301268418038030864233750293571166405041147469131234566956334454354759546562544841904171909011000345828973636963233871286959868944362155188861290297249178565787431764866993368427297356941208591795043954476157896349131047058721093055536798875077428588888454212931630362854645729497621535531689353244645919009874027788139588799923633047529934093140508108730811417250270156159293215780380736787540076584527495507986381670937895074780155481378750451677260689926516654052544049534828499966989448194862193049580173794676043817542609806165285213522186303841252784995133187150309701162311428754198499000212111295661597075194572178426177338644130374692788153561487446041620373468437080418941362254542038981299220499460163721217088369712777770628327887966551063863164452617077315636814131708998097096998021492164700951175149350324716681681698596849408522722548443297545542648325503554103164275105748933300594667590356991887589527033699407596327264637329926918334348378939765066774171149927401054753556253625552394612989055223076784343013006141694381018138963420183595923420943129627561169269981060751415577929545386122293995103975043723763019923817081143753333371379620884158214809595789859724736429804039231828830150722792644291426743854032102690216073906410011604938646131127488313840762575710426363829394143432041227515003654305968732054069443664217971140901559349598025649907532919900403624267065355534624641671085171954968523399443010702824748398566343866091384935180441840886864535316371216156103669772744377479285438363161286954167562374335197159395247997358130881221104229544469787232670706273064237623300100563445907186505187294694462623102632814494187378544890127978893113798800339772010743087411050976652265709785995658581749326014697856697504454494909548399224026826549796141589487519780139772794049356956969042051185861677597501759265695724086517274752602601350092381761154962022122404267426107317976738108763920916388896840809351086575783005917748591121324404795849316400692548218344444764249964187590219780339791691723900762729447075316683585039495389113520775435501768048706524689737615855374317758994278154984173457850649772580993991350437779944002963910167475054106005102916862820857711737691965465595795494666466447976915275995945783964011725075312498671495793114167152324911605746949799387891407233071486284659249657990829292097499536406963337418985525997352064037460772595924333626051306427469171189144937765286135426473063332905124031455764468018750937846787703716351164387750176672672318656228668924357443629280004828630345953565831451625819691327464533490246799453903787593440250663028653318474515642075119087945567043555749787406417356290107208273052138080930646305943689986514330107963633418337939779264795396991764291459475627082119039464101556203466902479960766980343364258902870906385419826562051801286750757235173880545661268305889927617816281194520892035643546638826736284263421673544882282624943488591032151497651914500161686641446477641655154126118012153683404273044919235880336756501934574119994013643387994913732713960971976719624331430687647718242572284377127928377752473551576282515971722695274623938885940538986384315228499456276534066692392847332438879215257996472795959626585089478541622386362270178815280905607948782607091143573326520165358933859366086262663535848192297479851450214477629670193334123733311534250617830308269529794255802534247151918290736933892476614660028247735977089753784069359644051462091251264440841377004045001792134369898424247557283420152087059244124704493636504905579129589986730656439474863626590415381047955224382654280428350394631917061028541527909654452290803655814285687125233610185368096762647026139812460268195399719179201049064315941319651942187979441998440429861572615669111328344029845771250785632504293229826417483350264720481503302506066562995851963244454209212390066941065482166507390138569936940026927308541929546729679022705251425220505974339233733057892547936171925281352079929861020303459649682121505093112473014926769419776923780238168824553372131421417548867849205208080806270039499367951609093552473261322661974579851219710078115141602299784244936530285787327566397055903940086501679617795464184084551368546468598306622456945342809342561781010268788397282270529235487659929024610401727250264008944737553336968970843918323947906732309829512545860541630077030329662224790818383970679828267781372542374971467608693198637351409878324271005832539786003142682336125479528939839221672382309122612364288233143714118576603458916620009481014820460565985073627673262593659821987133820127962344238296054177904342848571283020336241848297473182943700016999538679961283484625113140519946716747257335706516383472801743135309396090385645550190696130279007886245113502268507584837485140217482975319171069026040539795840537249684572111581120644319324148678229537349448349230592629082082402055656624382129361144872066649460806878970553384445853161917656205382901626537150123824765324927021330094227062053729159481350411456825551564738623849754534940212599139836466856681266512295708216188854110189742922022716398909422490647383275950501680918962943507322367921573900847935052616894928179326342734141229252669829556240353190138963875258314270796158130164310155263233432914392968652732140336746674844173985064052194897835693352014055067729083579848962326036011756813227647545359224880907439360292115760678976341332751875246673007145162224978306385936942763445075882612946620667627260033703922496475381124526221401056965868556257833979504558972263528124639792132194934751982045081945226093480485383207593466120805013822100875107126144676320791559577451430451969247589994116283169453691742936301983741325329515164768592064193681598453648098137068299923903427745344015931282079189091725576007549595429598495190256908265048427717381362548591087316154505763328084460924538723535978205313776395120858161968100613822271000701610611040058996755155794800220220857357321697943389309636931835829435147305622277571414084604995420344204067251442650693816678968819006206415850719421979570634566244566770974032172418972414662804005581689619751061671925201613192511572545931957764114224419846260740130283198671075130778213881312025034265912433386553798780663200970963356087788266686837194688701332598705343182355351464396103235056344012523375032331906331519180732436361856335280437954007810790813759246017992281080027174447289363467372981437626400822069421176175589217527087571133105450591326322791631810708206850811174963877619893925646471879107736108400239048022742060120198766878091437211036613604379640910104048522336353426663944644425227311297335868423849209717862124389369077590316012999218182704944021900596904103656563293617849574771517928664442112874743604764088395285539827715193475780084539168067679821676141017972222298209890176720084321259850141858997378565673764168935552367426234534592560158648402947896062468012268681909486671208128543718330606303725927486940154033973833838248660309136423987089740911812292901107096053116600745477131878796105857388563899873349261597759428788082489976349118589289893966405095189135685412641028870321725857380655103716775436823258095306444804985255895958495061683807383845274286661772264605967406264776259173596121821180064689505740978548338989457891892157212660752121892036564433247510100411942387658915076094370096675213189197810538616071301373503395098423637520938996930639170771393145000233229874289833396125802721317818119444009230173127533816359631257245722069040329412145901689326941736714850613176724930904716797413053368106367750846340692569613741571277516770099510699957870582806053407331190968615532735009112463918672193007304123800438961495617032043192687752472960812639811147994985315813682653987570975382307859516181415732933012337269267072177805887381104089857073368395345944731111922260636760428147988701907420689432941136932303049543061448675035994554897301205125259333494029749130589822905959661417060653880707155781049012573294607385851250552244565340305980156414994830745480215263568949126963739651751665993656631933228545333452125103950103588112956302802674720455086862880798443869759769438267911449387282985966539138128961676144499216533939430497657825618566522128277159944321638737051002867633990297623748947297699904274614462924318246334667084474806351321172967622554636527134695758244643878800743694630385437688966101490914927309400119061871181413780921335189914158600961701300474579127535643030194962897363555172547461017860012624550921451019374861596125893108539017190763442063042136436842669286229032125600589697774493705439114882199647207353805572560132007998364087883640802867077952582336584170395018868896765085031257696016953474288283844224760445334704176587587343145398921668755982788789450039455374251694260503267944468652650212254708817787329097915634016779086230333448531987138323620852880910293878299997969701917592785464204458929048725984725537703872891799599717788158760668318447434042629710208733074042926682302174214586849632161973522135391335982962722155621990657808350711526502981991275456570722053278014618132310885048232870001053862983964171348547684924051724257338258983983824010677859998783953017216252772091952538884075082355298107756269848980118783754995593993745180292666567992925473256938272480682713217511147753970301524969743825077590094628465593663447999196816856849350858968318325918141085546499596827956597006132361550239685611928880974894729953673831080809865348226403212771591480450747949797025285194923801308015283492688781123623926805961720149926477730361791069562408462003235761253494134312494471472067540903813309177418640125433387735779938742384303777218560717935707797499383457935305220329597879729985186484714735028828124896881164168723657272456340591722104626143182302097969467147951758219969965725233505956504417375547623505029143535917773649044496655376071216172841389952881866102152957141085360350878855669371943161518458433237892979918836496171258511538528884140346943113449968468355700480252425039660994368256583769700950770750551984140633186102831185368293711153669038558467894071069161767695929381530758394932554696149876844291675690187643083604812895998524476963929957516682326512506641391486094407950180178493427498524764451280982544713991294596959167257372810473836710965503415432722296499785525151520779021477439035987183494002696659342536708219644539540505394697558456637123011409799176754617793543055983350888383084576356372652943901752564115817061672013439472026065824699130836233673132577328559971122659223948405292952188180926357843764971014243373056049454161789436305087730238269062786826660337455649703966181006498740154478442085562721853858972560391532405279252898898937282314946286043768505380884974816602946533281994762725190016585675795898607139909548456761882038243376923966883545815283835012063335093687303994994024414863442457100457298096439506247473903916173410395602873880127530821044005722479775551784481130651634948247359230339225796629001497358339107041161427465646489866387006161116823275859429028457779784678679883206784458600744499455190496000078590206450592888170309514987654774410775449909804028189796326654263572694178036881087522829316109660298562668617110514912394054523937504171291856325343158665006194635500313832085316735681311931063058145236960090683166388561618940829125953854686084681195948342051381607859424459231037599889371256778761708090090849741017667310664794374064617439903311779570925870288085425121536280640281263252954269448663688958468261307008497505842717844368076537845295360722062222673706530213025284474967984253689655595789860382762213123566593152530732397466736666837228710749904200141350250301576087118116391368487352734504337024754034694547287769545470072994483257600506044936863153939632688646480100779100321795125273335513910075598483010604670926846195471499891470248360221905290245914373666594441072268252230873844497943483028991183303619378681748960768264253261632030763195499693841247176219852114515194927436236896486005487485826688076350157668524812341485787392233373625208451572676430917655103382480942742769313204319836119985357166727759026227534863729558263359714066734891749690073339828192105345591829356702670142404989664111619001478981327653902685213715499391101681508347812147911329125736807378022647463814657302033437627218993384993154731696603558581410234388797327816381590488689618929876744579070937456999467223515352024813740445705260065227876190339245156801569396505028172262428233942484683838668493728400048148259450994062685959939166283875125005253742912172005858919964591983300852874932462081690458741265978631723880339826379997872741500899399477376530497583356501197375891552316928055819220716887997372913806471344839627460615681066984175357782680418959216356389047818106766617591357727301225563876180034787750553544160078127266329953418975611957331356635000250475888864748089519707281612190317730203790892346592562508701048589715469051919219314043719148213518417875865415955257179922072528782833868794130900742995496629597481035758193302145316491975467326838739134709626490985076165159434106379990388763709404591429476340804067955387772695022077168774071899387990458865204601856315478875800398991710336140812746055808739579893217005652027848078600743578254359997707113479592389336833000320026889069374627474131551795628420958361606661952400425957773811547870241933427203272626913375005725638968377277841836613580316367568952378342532957264534944725962699799936275556166041719073474752389514683314210943510523632757000837221095215817561914795728572932342652565272626008927755852357341570739210541626020426346893253883527577624308199568891574919440045053066609014766609167120634740245609364136306240915708960249126537391731406343192057477726312523719957535607593328006301108754886696049004600560295181405329331952525103529589569238245246781510092574379331143033838802474365831691731769395916655560714447456594914370949267781103608933741560123497019075528293457698779740794741345700986209472778075455691066245294539723477577524556198168640379099972920547276321221491677077752260549648064520426512983526346603616734741187279149420212942634791808040477311197913183816470850614552437674468684564522785468765001156985255621767569909640326006229198685854378608690887016447968559271192727308564103294665778315313569392574858582993792862502086758493730500719384921661914695172759317925025061031438937181402985405708816979075832137552707158468277627533533964087233213782723928209198409009486556095089914988421477049199231881564361990504925614856585613008862647836771132628762297917888822883758085130825471347293286554923548070603928762802777329959013769009200717907079021046805451331807136311650244012554278949005799371813563203463943396587913101865917176013809068559020171487159846222407783028515001518486160300764737794320178536599290353361988966878985259722780584934844461090695001523533062195121037742132464705299127677951381995056927752555559358028950170341869362185537189118442384593295507102258575694558006883290634172623892034493998879971031894181386015529849222578915129606821859038040230066284901416823040254249071842024006024700423308106254002725157894166235033374492816499845965512670270338342512847591284779622555445599051997563322213431277066513918865180085845172787835576231305652940334309992804809847010697925208386426737281050460714418065154083172373070569716684231190248304717779537634032888095307221301558496778980533083017549423281688182117343280199712774550514740482034647369722502507891990070687858252140261886871120235002574618165563766573827361414249871626272785317135552679468189796700468443144826762587501995905727385174694853879421777257787148334693980868911922207526506380852117196021730613198257067846247096439146514759446088309729921007463636426459262977238059929390995060314593657084162907679283814788455394659465033675161273927595443078362371992404465690086373074991168370001540872490657579315681935110739561324168933614280782029257023520103999274394771944225336468350106335183323146978041256101028149288069209074382940301005960621449108789977882367133830708265283750641329839431284957754089916214055551705448123489799421335271728154109191814236950851478960776197459551959921995972806175578122404715681272752409047992308513482115242728988558525429572125570373388143903864928506281458301668190370012240268960914256654688382215517829690880769544429988543337292199050693198881374938111976060213565682312025809182324687605755661365275276593082554947553943709214688154224568015195775773078661876745802619609649274162248204184270563942592848547175760726196964452906070049426211269516658654131027425377185225295274265821445969262247661295753226392362593026897705311456462068692043041149462158093032421284509196968637280650655111967260269941713082719573849539439325824904618405320454146224370909920201697110011580315418679098082541977229887477349971938207229541354833594586877602916875321027663415255044149545665081179904463304998760382243322812871745689101294929649056894882830571280011759737492250014041972831037556244256113411446214914855950231783572304264106129183295919354884202054901274536683632385840176634964062093943055164958556515814232646929349388856838980224039627590104668741214216445772160391410769755862669781518060323259455291987178023492785323940341833886165440431978353114288511403892813919635873976413816016047933788930009509721217392355463844868389593307218028357244941359675663551371218109826954544574589274790815036005687897488241136182858554630144673121818651175114366676031394988986218417440271862890798934723430948420833426919879131333263505010012351887859497056965563060902829756199677428511887094511061786596103375071341011017291883950865608095107942398710654203209781609416086721353184087828299988819546563083984342503517724351679272328504746995148803008462605443476959815306737581542045582990899624285001475623565409850697272414565193198402187943395306606435811121849187393635928296984000113962529654988893726366110671343597103133510611876774054588393322370720547389527244579161511320755197835292685308880129931647862265872558318131299469783940355995837925655088052612439693300097396020127709684730749624541674763170520801444433561355638163865892226685456952016393034665192882822857592137075139712676684807539515979364531959251070963226070496710638287476279953616196015257293301728788431392547768925687070594406160358043909801837617742195146780338727921974479244975683400357058624756015707192312039664517737889684976077112049284276271599049254893385731113268125986548654087509124724387878113730417561080008380693238196589009371474992598821522507473247552003179344656218760577352148707175467485737129889036882918868927486248719542048933998407582483505287479257531591229578063444263680574791133720757299381094333449623787349854895843962271815067775821824816494797155091095317224631930887009780450511918091719530542576981288542169514393595818684451765661203827113010728665519947364254296085046954245165563145905742234708795932913416850496620811284116811936981281063461320053393406472227126495428169893030676532067695403195643500568577426558313499053484730078540869717356279944682862752984515224958057993436545309392870368831347539935568871016148145901800575887345806973139087143396884882378837260524956079133761795788139595425911615797009651892274394563072020312735348420418550253686055103959542840244969878450035255871146370320306930285293468728579143793411747030846730839836635421186041037891734336199999063049639712632560091877905510387175708050849769923178193923608354708004677091482710571945863739047650913959029068449487580365095866872404303958532538424426468524779746468557618075951885906254100146142263458539096851093664888769264367596530749831465244362249409251214851039619398190420944864793735813976232755090781242076349274037052731585480907810716631548829733643092081830370742088143104788083440236213127556047312528328243074417104124289238607394111971965476989980918272432342308562016723570751365611716392947073840700674038944657310339612282063032500579657961149515053280989093030323350875202490891161436605634759251112515711482747452334671961002238853834646851087245618226470973611849759513007329813687429690295671741647251091079163330837398044319640841685101422952062042113408838702040223602527906610503476659166681119394499827566134799491898937081530041053002637291721041622357920731905835702179715361547259378717455530183736624198056975488593455092031627566824036847916400691318132524541416874007561513815519993301750245331277096957196422859251851308679431159281287834544553023255344045010636685127049873484851112875663061795331606768290080511643374435937144431325128728728235603660399454294029226315987338039186861325131688512357175565333354676874180376167561595667933542848639870168997827600675771211095936255271923861276352513524671126364686250357257676105586985677056678429282379854197758851827252132262121676680028837925950166997141797665844856575151378843700410044738725508298406251664066888389560516709201536919787947334551921042123280864795414940206347310426148718551171519441679903285784972656744168083910010090358985762168944858946434656208901679303860371824355533887378466596452670267749895781701957508609238031644505389063773936280027316496870030215575570762116729831144994323160329142096484522864218013980980390612756650711806491771206591777685848786971449243756307902636136359651334914120170151569113236424333470916037994879441766004121742192420636962937985617969969981138941919704731308833887897519962976724580825292847547963559397420198121836863855606316767936006637249372598633598900215827391288543138280270110427092204923453401689959358600432152316527814655150164211819160123022394461967752647212867408357102264842822682996908529574233114686716956713770462416269064935912687863455970857872595146233950431257007591598293021642756688015838084659232231813694481987007240916861906410966851888522226598535623771060114901803634688790161980582978834553024618828184639157104090035100819822420205299640887170806323498934824766812282706790085247192053819517959892259109311758659307358403720926198670424021171997667207115285244738255574216927416540441223057825222789356589064028168132587735923515873924678305962680952749303848807751928083362984074111489170707868568743413717815275842418684341319752898469971695421852754690650869576191573147322340530335102902639117717797944332216068112895390637048989622158340321901626926900552430209860881548104759114737262000565161138131057131218219303654907244673913873029723531577832854896830591786661276545974190964709210459876873553430410306577094187831627985139136302022239235668631814706562635051375747795433010056207556628934254268759063858960984409365183946920904832042273427775640305067674621894455277721504154562519135687042432009523429867146626621166833159014650547072129294859979170159110161432987701214501244173608158073477509508540892848590951270293681087561059097289355295722101983893910660903160413101615159063458065338697009533559439710455577369907539238618097072678607470781786343188467685097992764488996429600230760210751826707199712630492845449278579439392340806268333191016483941748489451210131539632093862550378394915829212106650719285716132274869222631639616667662837085420481747555385584228347131070962962234054789392546451749830293872164807088549672815201571148496599484864861737100479689666255113653859992379162936059269231942985923855569424532625453041082117703069864271012951293097798487643177446740637622247046217879694759874416501989683039650793701427223150992586031836952059912196623894019095176763276133316023835700049530237740931471050958293506853512656404726468105940547631271537764086795002457143192879205357347671785397868435724432330536781417018638670000005026278674201909009827630417941133607197185376906836854706616371068274316300488863718433604380759580817068639013723323712374556038631453351746343153316769384592910212119928634940314132126331811767230505814803942258294976699460466262021727133582576399312402677010582546636320138218316689217346768399820040532569359258252256287599610363394268451059255032849138716550188197255051107591005127932708230007088105775023850726216776635744460038542761966831427192181399172165909901017858421616267333423202777796417789871254319347139803902523861275372355890653896549802890004363438073393777045315525346497341566211615053419214869771354325475760660318529262482783798433055685677260177191958986727344466997624665209714041839543292943560946611800315089992451900480966367742214705542778977924833628009314614789359495685566432014165633233977557750193462388487221473666825243199905447413468104871720083004766294296781772235589272516156764786138171322344666776829247097891837008918699056977804924223022702960191783962710893842044378677909264208036283461010382742773704112346630890241932973064806365001301540598551440243066569999128311600505454312222117179561825111895741542905336310936067402553039954332834640319993594168121212960229823723763023466718742243898702581151622349012488361710574917354576407256931713980431141867752447435787730195664066262745469377222934677001303580393085118069887419896249054296500852861553324133597810256137229440064017895954436277603346076068041625807447309043195163341180308689391244863112142332187784935593377198399807699663458107871186743524350508242843219379412291809756833231134214186642117920623619625146490893843775820448728268591472891107036635694675182267540952840353993866805289643930829842629104802690752896938731387468769256015252425235648406302275548388808664160022124014003047597996918823255045526607725280888342798844998392656671056006007310188003840588345600765768614367227563941060487790403915034657362845806864285633488574164243440487325407933579874057335747708513670928612026174218912004950629559417464427756415641647193765256474420512929266797357970070152157794992971346151667876436636542146734201134924853783103685668015287496104925480361801256202835446464728753642462945993117520674537827758872211796170067831434983717407245001479238535428154667503653199924187812797781636341059700225904978327048040297281537892758324735352616871331734887329567365733659567765558651777228484877222301541050301491335569647480948300540244373223004422959176877558123758467662028850641421717455063673297381144954142579528572716664401320963894298364108942195435245594230042157409612871710294488914830325234044424462355185689001766607693492887218018570945620797218143045893634687935947319944236521661812358031895741528735545245794379768287382910304465539103632440324778605285531652773880862293975054898729703114778227716134581196014184637814937109029243236034353535024574894266480802356572147113211620076896426922551824419649181224062310026595424787332934036392751577390479370912906759729591709157104848311244748249312452177360777966564352838419108006713063321793742752411995542727361317502026716898109894044512750572299799797103076237948407724729845342553436469948559397016865558573496899769665678458255539770954314013273177772630896433491613105692538055390550392545327697941263519692744278653478384937862478060221052247196726129280784012052156705889740000725203794133850090960382108528499218810836923702467886970871699348077657311822402505482127557302644351842202113623464095194500756505347422019697992597956455487483391596822834900211708386213111887152073905511516457227216109073991059400432786894787944793902494097376238850250496048975727530708468411574349417092132957713478537450345691771686242235159565054929445777299491937977016326827409775824386208631252631546718725167558386350294372412840995495480769055756669929161179901232661328696666123877924433137168720192287182740252178006774746807448367895304228043943525857332209918533644435588784509278922904187848970188413880554153398187112830020066495691169228978564773599260192467164640964816389923193615029892682401046768264097432226503057513319643573790933987856369986049203803825364868910467194510823550046447577154968963868769817240632950226159983402655392078939371138261201721677673927448483457508773716059133587005593455190147142065391655845342149302623281377536808000333958780803067092194582173834101922975230148483945951351811118018884448087318428272909898533333627804613140151928330960680630657902214285549185059506591609590721876009152347404569051750633388315452730616662493485088138869600207645447459250140038300907045195420213684577386388605458515782404931168493549962758552883893844827936931144451163038830768091247061805699317137084099017059884369318091405368281793359960476974570917914586263483721448882494592553384854980074326679479437935038914801837982933941831291189134760190366895654951185667403842663385064813277888200936118814436102263302196662271846132444087620313914420143985966444107462189181047610532985064155881364736522160876403215576775499844211433713122722088964352718861439519309133378366403257811880168613110025066093010705531534735487184627399344693222705276603944397196203625594609093412685926333245703681030658867153762044862411059523461321061421225566925826432987785772542100292373555787409941645869975360532230730878445918745843244252130355728152230172882319707890991657761421740361260223062017037139173438496901130522572788708272130833371178935350831490828233815465959998437559208705059424794413350042040634973770166473727839007230218259751310255286726159087785663841121431588576030084099634840642250183571902082368092614798425859007624435542709986006817068147585364304637792955359649470243676877335643002411849940775955568555999065075788562788332009836239976258415390125747653829071552251107453216457490957093061026792629260419026035658582883408334733597038540017610118469930473610097374670358617094350268398345055575254287396314547476649210118368733481142144060371686396668696749082974779195447888601634730801658319102202441798861732798430113848560465029469322994102548716327950501893808290942190667242226140074793832725851997131922821170515338601007049465559740691310865687625338389440395754650062312611608156755507135636889635627776592401478312497489669877240111940386775143200005801508283335689904758424890303905541901083400014938223221395789189089761943985796910823127132875376617495503234543084452802271613921224941096425425393566428635989027001533875108904861037964205558951923657325735579817330990050736034958108921238198180034073254499998839908149063656364114798740846811724249351738668793635678788918605504245655379240778636796174081888387175253030100972671869340131623010556791006677097276654153504478781222659821928856711753774229270097015913927675311563773753715099428019819819514744300648476600619472260915856478925665089815292486902278561082102894402988275179257556072139629374722072365802141806953023857625953059317972130373565758639461150830682695001642725487495448959135953868336457820692170441266029116576508823008244126669218052701272768132581267905147385302818689272830505721203547229857127727241243632080933499109069691017961816536661388958758820356371387143038437769517450452474324590285000717322769413909204414179978332629316329331101270307960270147391780663922968716734819418174734989114182689493736040600477783976919021922549919987817324998621362572182158908178538365195806882219910529406181867400984373944717636485449316983716801858082196253155718395932739655655821352899672910682219785935809225157049114991095798088214420906622267584704171216235826022668330833064837667663280135484069628134988928459207496569452980461831462128588667287040119536635419246155057297092362751491722512091141395888276269443463836761880345327049523210205336740204571980666542887958112840473127694675215106235651349165592111808387528336135011307790481949649120937600474689252117486681532108597252289935941420075290655657474932453968351450906527862564920980668684849590185584436252443303506087537693804492546183314634509592779931330764538736411774104011972532633057017557486106189234391052628703973631737097722729455512097026201508151396221910145428541880666612534235421437175808266917580504103919064905948701027484428383578100010279510756210338632126391055621742736106562111046908624731033630909703380400424384463650784142656870377777159580337947772708049551032778876935159635194972615808738197634581158072620030353965692651673795808634895897373589431548623544115191642940351011186658122851766971182344966943685918627178225084175310150197436980659354628138360138250772196491148787554122518151560809378874343294621720863851054333640651539917402687435857928939926343421589651852245286738696102264211915976986348292315899559744043522278417212162869798330597368527868848969722686181234884708302880064945272331256124001390852374251658866477262693217308659652667392999673931512209181812855216588995388367972744313928436725762222033111996490415268372903049547107858323122935880219399077737370293886928945534465122554468089426983291719455869174047594566628590723602692068242160819295279001458622004018927036003393860152394907117664188016217000735979919839569222349618879370179174899291376363705071621177280173652426079391106251315110722489687079672086214033942041271709593866524392842000574121927275412660356142774305269052743893690042589308558978265243968111162579998203794148240090293257398118759630106210660100556298232839037145147203828068932148053405894087818173789832559584141489015841583860857417692614302452590613383183819236436853233089683315736221032338200728350379178687244402380571295767264198880847791708300510716296846285562447973200016548161643090663902166987821204764838155932366387500758971461207128002151953922611779959320388287784746558365462316159190854734444421779702005554201177466151420118215585039628194438895985210902534887320682634443117245332658771650829343520446822764438453993134943388609107024009055722827786438316002420749258810257704544435800052492759771215490740193187320960090769002879212948075096434781620208169911593148892140000696759942157270234271418156901111761884138413682988417193043150423733210029184349424006923210491963371728762027836062171213568269193652867987875356289196047814446129571750036061037417631357975847807173611236548986894963446185388007770917560291873550928850841406689049920329416208750302075786135979999433506161469197093662175337844057777052912480175203378806267014319494672412310741234733448184395553242229089020246124072812771123007161145574633540005132420295763972800859856314547399169185757536561771649711426599181477921971100100796781263701939505739245495739541723412171565113955428418267271689069194918112418999935866127558593334526291810439932387145508912901534750594956451737545574261104074588029526654658785534390305138523019323336615710029675908364410088425390986832279363829134278744066201303761579699197545318498877888702881302630154158137847736371839251524945047404407770370634485648442099625920812486130223810857924923864971662846259601636544262761561834275575327894936822352452050411776666672786878416996532795834861253778532714623649028848629621808704731052760076358264914789234509312261583615984457759289021309836822640521643560437189225133061997289226044888737113490518838462026646987913223522010521630996125312846770889255162665827346530902840244292746246970210065010227510321947602190385939430308074902813741900085000361895577847612803923818688839887087183072977066276944028832640198522666523731385284280349890906432855596953865025585175789321324754143979715852484550010709904272567673359159066243979217719622441351582858241966177614940614312704257951291469444669073487249302933122387150746332483983981857004177882984495691598857784218698756780235937817336262242693922614240075849654363917471260732203768090307638005541595945642367021037608296191271566679674744941784638751373181494394710131949691418237544484683558292961336358491308349875079011900511912273189285577998811786886859458417025067558012052682086588528277777746669286127286878420933177592480058283728843939282535030828553570504552785710421146879007234999850743412270921299045614794068128787796931166936072607971443880268759775013529603236072811935622624280539525010552390689622515665940583665796698208791989051834365976098580441700185726513601991799638018693465989006335407252957432897327188000702549653512665918241021716617838238972114296109774595930710520162479139665672975241017925148631447962743347575680461393570415246124611662163391344017928111559523304652217213857387996978993791924662013860785560237060668806996304456431019918945528414886411217780002303211653636449794988498810233622576194257090095896649532605195158974303401485348534189337978002341333809622066086641745349944029888764193941536311365804213099553828227111209367155185649609832894007831137787161182405807159145711173996065451619787762090051899748467944648058040591481272779722612462764240569993552545223912072972244038498645396013482365527435737975360145256743805343803076967505377200921997282944147654347076903590622408669516505167514030413646619532116202563631031468082378780217228656448007376757513326799755257276714100820680261194630979454814685852648094340972537540167353121893139581953243444667012370639488305435330984814241952253728738598508246574021373929964623408329224191820313493982837813019378118587339114703777451129152243983116415012049823690366285714467671021817840262027426999653070514883694329234687366988680451417735218359454236408103893970492903548562247101476716987196271992262601380667081721222389271615081662632548786339821815088232679457414667075062674610002177842957795910742059967323168550691918273750116818144086225315532017105977766512727868172625622777301309485660418985723886371097171861515516005406552165031058974720091925448987067302682643749854953683816520860074128894280369655019946614289459813643711272689442685542792083863765927296784813577724722923629520061237772937867799167936441410136844897958425698839088434749901572028356437071840820277830589448649138499719982906388891921784492798761268016237896855024927663444868180497898093074933411896142299754844909081148077542820750671156494936503887405586417698326314920329522997445083911308468425945765999415079793348050150895046204277036170117277691230449128963996900523358819298275763074418854932960426891986815818163038516073951981847459582679296227133705439960091523296731951419002698657017171133195770367059869719052898003151240060244104248635395015310760134076642392384190614310975710167444065312409260618338628341756930900017684779230780553333845669672190339287281711804119349378284663516607575507596086248526216481661262047996122468035166825912824442100261857275997563878738261930529362077108457715218506099063469982540609902663045723377286026404356015614205748545227310857848026600254864619056910227202673530838778381554319605097104264835542948308691048864106559816689633686741331788673546674198370831717492550657436955935118804038707814344792268542370768802190506792475886921509178463672581431430611674590516316431345316255325920197309654946545269173794925118499435261606874116132362174791882542166804674234970934226938575457212078317884555805568681266048137564743993812657840813901223244215851209810329762879810757631228913768684760047865853729174685964113665009717273171315580114043618051240150161068486580084370767799195903871968246955233434160513686022092457834726139495902038277966578940243678711628714911495615288604140481822443904751432562213076093271021237164538492158097327913251003084060882004233447263531052714367042882902068696154102359473071210942154036765145075640466742010136074206177582854959038035048650644787094723245367618273278273169402157965323743269848655908304883121157176414332057140746521766846345096947426314235312600690383304876445125508027982631646460538133842813586594169848276136452632043824255102130852217595884875136290343872069833915304167532057374753383267664101171378779376641411668806363026993784887975292297321711513433204764496094020900639135580989238575751113644716745462143716027761583778427980024929404876795343073348051560885146025826633169779749625852141209715106338303712688494446671891836648306784534136201133363449736661982479022943961155319215904109853740615972039485761832581681734245338281450188016714783849465689454402837293436946145035015195645674134089865720449843016009038108645273093291126470361825751966731086589617027369062682916851238263476608420086729955673688004465036080364922745270333453925437605517145253316822909773644825402175309239177778386637344148999740783859952138474169855412000116708881671504163504821787275124989358827338677405816044617288654707926056548013693732590744217970040510063012565467442228954569603507216545516048248781823122550521049537315957126922140178811844562071906104062970515791626722381349900852575843205301331924426765504436354277656530908086845407355824993350958352516472556344377744603892440992769267109702731401077098740716919176274329307580039957538042227860023678891830364521564791075004009128440627315897282154704992683446949302943771614676783483655700930116156184277558140129713783220544291315133870524309545720243080394400550594665064266136646754829222759960681208015803869222353999998520299744469376665518360462218856602473865176475152473952837990216113485328526967093839436897448490171710745316143557565936158548314836916542060821594805622832181098681709588032600789623985161908629308276283239133424308545565336890852126721887857988342610451087091555104512472198333361658584405512379313299709123553522489272200502975746295356406947670969138284562624463677508722489231944228151275103009000097411021038189339174333874339463474188909878440024961097635042223790122894519362234553671595915422892247628263571233814890090177641205524163574604974782338508055323416045584152056828469811861442751878730705575741493082092145115999662390113960004449332535217062435640453283940841613694650891470205256677347786414681759917607848467189200736302784805637401238389236146882841124658137047667926885409215886358524671799536545299304500418094119951250443933968475632941767675247855571142371195841265158830679714892131709228886012586253172864458433311234683602626101066643826041212140750285769039192593665289462637969432563124405624838575044366444226696093671576207086924229374983441560060717018870017107246095720781864827327681481515719587997696106076780871239127617748750614331265288765934249950728311785779022744832471309673946250987865158002735320678820355120727133289351571647118791015173663808949142155167332769858316669291566038242721558969835718760484285668058197313999826507250027184862715058156844584211744699862198173814117130196925559032596621237956825669285532199852826116380804347496682898221864347791058733402081867511181860047974677734979213790792783534730392978961558154572109868120966383238638792641981858473215326845112100990486561232448984661265019132229479466989807582072928942973493019744523162770056211920507389070103174142647588652779564069788763088530590823333003686557016905304440849260340219794906382431345076201722480205275342504237485833948541189328139006328468284095868781474332034731500816381319920464187627882576458173650068136364477466469049757398934105191725069831715283286459089648649667217287037158947827650149974531259734162970352959975021509343549329224379727127773802079240646534146522630195291287578835144273515462192461498019608662736077364576921761637935287836968699862919957413573248782274977034122162080765037737165889185585723088496422336228553038759949074524856465005137232067435831846683105617520481929532834620466983156357632592854457650628526399661143476673363233080877317057888653676306551973993150739128532603159369591915162181103179569758301039924832279591441149026137541515446634934613492295172262685135790817288535914453012627787829701702350661195002869947054358697688058737415570463230978037129995199972109067270598128510408828966989205682564229461169124902316248951965010332558217356207534448687768515170491887141994096251579745997526389016289494545464626978904345443184821631599503341638553192245782824690289212814229621540736861384812830463460210015257999037726870011153842978397798546028878761200945867425521074730933310410212598783912838102336850700528657808973911531945770401138485192322853275823435227814305557350975787206710831750514250559169280214909935976585649784445199219632973175034852303140543441238513574649291046399574596373413791877986918348207818555856256704595611484224159011683921139594627431543289791209416271982556313379203588991518213441595577749596177216807042600239360932439488846469666344094309393509741934390118791046684001379462913544540506356931949969904753592513332424433657030813145408362344883873492729861413219245997558614516560143272642238447540648059176521108009986789602769869990767616108463722462822853350869543024716950613841434302769057460052574216263202082530021149243572896622125163868997729683406129138052399633815646711851042518118240102323217299044801372803470854841166551528787200352711843276007056549277155489189584127200323592024542755999399329231659684679095142188644097201545289110657601881072575970176220139562936465062760991052596103528638413307013546648921749784136346490102228512112876839697713398781562217516829610047293081208022193126213969943186766668145739433067668643043795811833487850324339718742297578460413945724632636054352438685502745350014585445251979576147149795904452018315469245210653232029099511330901126652084497982525289033884732911979523107634126382466921274242571706957785001259177478879759306787071426057940425699739151182300120869221407833929993145555963962204321698161497732916175399616366638144149797095771119888340793691849306635484499523138903169941533203534526150906204326405562331169913882024292700350700822531689242733978605742848332248086089597347784252988597742152281624958832545664780189591542384121717175936185777640694524458637921759316378183125482061597780705944670688865540780486616780807844446796530188291673766937833422639644420292531548131129953697006222887808611983791144556977151287836211647565339243804856373529785724799602646995624123143916125397330971730745937018869950622413277753595503389654728198617207450319288591547510582226675941145329734332617166233635741170930928447009243473232791408650817266983246089766222406273000660071814132965622913559013981422813108569285881907747201922089386481901391897720917614939954848771517073295757058696063830289485017752085308611763224982199584513768998050476791899900390745319411518742202151156946760397265464559728964937632947581679212770153409768866195916353342287072756676463641161460415291888408248380355531962829021672467838932962947157641088398169797607175254037426843523385805373643759960317095626460837328374787023579246435113476254339703536637233007535839943680682782653373801871583095295268657793660558296019784389744614006710545333939610823791855538194967034935563473991977487382000626106984997755064906459715725384080129853412616508749452459709909579907510645767863737919760423478068227118730376418067726051439518076080559619388484421549846477885754782547108540547970864574118611113313784661238946393519001001872682051733625414568959160563385564039567786883207210033453611109117643275105249131937446227623567094638896142023797163015880883325768998074610263582886700444480189894211330981114179878290814982679059267310790093886464472600095225318616746633990527892671867265583788172052995777404675974315338660632801995015213555792385452585834570386563150605688562044470266769562067968768169716050573493109210421439248249374741823119141686679948670152721049315417997597301680186469431657972319578096197076172434494446254316150374206610508298266462555559725581730991275761813128293150257217144034849615340179128841081996018961873569842978235499756686432221795402800889171270594239850102541321925469685481882766584993334068767870513690616428225314620429940863941106265070717380502249137678065591495070383143691972748122592253384350813182193527799508793088809396407303105335560272942091500215383517403420512453390066223046231520921694863599995065901113858501012348931993523418631754290667102580196402593286370610744337247948595226532104353005987312821679875566212867477707607599022882534075339449899909589590819304899721444073943407618706599745588758245400761233686010999572292388860557413823076295778303498208204300281338987418895304252281664608746177641561657044779086266476789168353862425364259275855169509992606039303855179056970942800747225988466331894313499725924056020239481408109234746965676105236206629336009027851088971773047202020846612461426750318201043997946940457064090769238031630038570656816740494457495907534054197686767014703924884262499573308944921325476362530160759172162929682646056020441391349809075115793978400293249157900965229583059384640295620839721425009118297335377476545549670777589600166260799901341487018668051266661068391936827280986232674488473583588659639396838517013524515895050599282027740411937157119709266806825778806412136460630657453870559528413839658916287771499665357522391849005124164707403960284299420844328323888561755711338757334908016291102833883075476673598668361673072692511658431287964062986393241892932678718019176952862374139927971677263799623348843027072324518686949496066703778689919464400546632717103197383272403411411750957982006259665131758543705671938828790193600146006807093883855829330750624474022046754077437928042757470168865556999387129919815401097942124248385148859792461709089081070993853926537313943817659202801969956615299941105725275732027545805918984342917681297090882646745584759364170599765582257599321110979486574211313450774319869525334397052022582019470843517778442942775266538498468160127280237958371875861287049368327312837980898858158223445470927189542408313820937789629862225045299856643991681773686012111843068966033708450518912532277570864977875629193402743550718707650340420514026478299605941759804832258318797730576598848406376559889498031226727885889710829242262312621180810187884219722148169121604220982914601888806663179546943165176934298283170781168601060845595990697409940336479490776925081040551378280727048602477970515883450829205774856092943978704827273644550320234706140146872616973423136907908934326552303469007838941819154116748086776089969762242949324635021607566395324789383260480244957451469248416671460407483052620158783804962972328382570628873246775046818207359450900590589670997838391361956225415554524773098160591543215372304034643267416123826201591491277826241613016289333981862794050399933601442717975881106071378331025111050898552002717590038294243438074291877305378830739807166762334759713437253143620008448691942721977154941808157057377287835833051434352602869194072032669650569126237426981186340584806109590897886018187637924068768094191214071734609441487767416787004484814161017208646707780968825202211124360743412044987551922991313231258956004225278265423311251896798319392540002462797576592433695542668055404534528915012709925768113829142337555428109492870676675293840851910323154295965364649188589366944510038931719509338930784463691628350857460297769976793574618998912524358715929144183322284262619617756366508993194223788242527274782004610378708419710612420189045204262785920113674012262846347259355744541722157004133332084949597317662493173337952646023705003917329998883518079606685683234685367167684564413175560306297388013425455505595220537791199013223175079046432201330716380930965081110708588303772265430404378202704469238305490785167061245865675003877754582291522616831767537097211627833957307837871300915244395001221661663724434105818196000836606866005330877049253135156587852809668148266123737112248171859117383093076158911472641752059375404662974188563980319119046198991464305936762830114783204335706951563624606221943787010092453368686142102013228319033877512352227914917383823078785355617364860004203993954180300364641422324423887700353188304598434464062873215160000044578540121536266838765236912878784408978859227605294674551659436919763000383277129472106876890442899604602299690141411780193514799415152506359667702717009193905363133827873143185780528050459990131135944190263238440799702372751430103765007516410077954792514094825707755243357765374106207957144014103308004073965439311348418092490538085521031269302164087150168704428976044904238358888440141000182491707629996726955477908317952806975680429861159841635782481731956740360136074100206017957331046156281505071077751575351704419319317536790661612460912074686878059296214368085105406308388663391000324891574165594094160280712650485886111474842123361766796280271151458521302234585399443405181261067897581141256728818862004078434244129589756619013061341534799978854341772798452053582595440099824581949656471084027391532221800578266134508666931198382335935418410608730716775420596943567783747177009914478058539973662871432896078429415129164900083150067292590781308812623696706482061017197374620481754903144628278464641316146161013219301455665054065417449186485257423385553945987014901486920442742993544048860688916281738307596516616296920521173557675456567257482392549731503446797342369540326854654080919041138395350282403304099459672197149699530605939135807520017210096381864648449430376673310521978697264300961743775545052769747352683637930015286935246494212712701904878707562901093564563243243956324376093073512265225314397347185999607869240866181868414578849951656837899167795950608709980752469438870488583147417942609975791281065728852333631242493004337615712628017463631793322594610764768789622347263506287601294708366257285021754975201418036973431410179457585107917068831101248442183758898852290193817494775100986043622430492894128893567628075542197251490445969535114976373825921984967071922571124060596984005421634767439303529716987282632700156567623384817279995616476933249585040393761433281156182247297442322434024164093558088236939643876098000419421207159070578658801602035224016584947952025168218041342979372060289752675979529688316373386540814246331000472809536300530390188170657538942204363735441642162278028237683612671096300165149233754737055725531514839008180607490805448066694066654573954250743962496263870927758681974431731939923968258829595911728505245868135904601442806778481630402826657792948943434074804244800507649200742906827278179044508599394339751917655030720851246793671015972847871629782494808554710828319981986673383581813164995080126299131809627044206225231662311697038960315654751220564454429380256280026298549236726918671572364777310642477706795450013327738121722120568967244571184162744752584654859804017549812909998539403213960750764407868701072368387121807079180765987806988988481342001415457835309614188056307256368308977594443701013871293360838076145781314387584680183235343013372192851422280646968314362305751773790998378453946173404514853425717860511499588312551659821520881970176277819526813055601188318464052768233391587046661600042228530990259492034462139696055348247216442343862650200664956024223110502369601076209707044268891059398992240815559966705592489046526273828707721371552533241471252982261567043825831237723571104948466191447499519291738719623604633599144212023823211162046261649247621361598799169117871995723000960165112526933304040143881303545886866917858220043919226756101584847694334823020250060813289156709967214203422761105606434347704980374589107790295302789904500432680880722283518729241470176080825499780493585932164856621807934688573011835285718854248942932160986417051378798095975885762469515980100029806132738304702038935805185286694946605218693287234143091865543149773666206648480425355685336955291398536669225262862719764026747136195991493704630981586017458286947000394801317327232813542528407458013493537248276165200647751768664317887462509337401770566610129427488616148213557075342879379399437955485998518126966462257666479239742984435003030333976205747100734666566933707448627209150345740272141738801789579554173173439097696708965597871602912533269573641509469697479364820835930299065170879699189964263934305684263420618011837172110539835347682395569815185148018606413271275836472812414300552931231367836633602433281442184160274362450764184577748359876278999353610696068021703747793411329709198722105108448321674168091820670469458594091019432734698757716085831905714180777927202897519909632221346045381203392654610576293212309867626157860536545815455741080579558023471728141606039046591758460422026960392456502750143819000491782536773632977962134433488918384161716803816030620101545852172533991637568117512573862256195945716716626181053983206633007381891803543552552792278371834144327317748244492459507312562217006367613101771320771320543779347330384526275357072687870601649131086622373263341622564209511104887737428135268597200253208130219929263465447903463949118098067371550817053891702212027511230126429134329911459541946649503449516263216107582892445073796074715390146034505356912872340113064898069399400092649029165167537778707172439761468929297749270424437956213036017602589116194271284807105067379381011770633272175996139862962047682486775494689528435042355101361761274636339477149140367445019004180951491888568659425381626571832721791865762599473012471294937381958976809052357557449269734123150016528135634237301453932672972841438846831844370018973615732459789174652027031042588915610184533682187122547571954265853109211984395349527291117195508841519350366622158254571990818978946553714179747291796816088784956555557091575298460441599245836797270883884265643212710495419368735804576836504586646875946682089347146902894673595480881982810792118664235497952563280199771163730983517826204973491725057259827830093310391305730598820447101855333395207806321633930383567432033037308903563519667944334657556426517996778369144774344290526980871999066142048672254061632097216330384271165069059774272880410078145263862110848610349975592453666097592607169239643761828463968834193827234127913598890846983613750689961169420718303032111707462127523981642755546698775894265605844970697970509674140146144722089384731093869093111656838693564052970099314262434413592929969719397992886602103506972228399358859454113694460438798328130957198976620075965002460994807064682999400031571647028886370950712047527254840936958669271291832137131310406996132685048426878092678504289470921271834940340256456364030242772874686513437633567604537420001558345166228076015211702351685527408930032204209160102027061866065798460603849700351926369782889286467135929987011207890830869067110195383060055433200569745438817946819718414486828580899195754069174996020417362498925691176908101463141039455071398840333478818091973608946692839200988429944803300659554860719429519514153545116782990278183533984402399828763693280520228296544031878195201058975238985205596489323612743348702020830510415048527058967367758551182257905678494391228821917400939768150664827205216425810418635536328427419571242941342687708896783066732347746669287105284090790812758081062718517226028050500306327102888766827725227747397099539763250833314740879489983898868489009316809460778676451449376688284221554828732798463717954769607473330816572872256156869342947917533291217076393531917153734238789466295632407713723814957630479185928122385952952665835096827758083543461738492653674208720411497764136801744777755499968353609239982207566521348863567648403133864167505772397077688681102634510352531033997538881503971098003570522720204828667076491397722727216492875019933706238287282824854984222806933239259932596002066863712561774923581796082634546026249188065981005464556472762147329011750990215785487371951374162183483575629414119810352874958919253454812344541268622593006600341499952155247701094447905973431012780514704086912062700857672642889161916643239199897589476016989582421914640667075393941567817008802514242961406831198463232876459509081222837813225100618010744309547423340026152217924513831707310574235935047950629963922507039306123771707499412751023990544722298256160109330980114909113069499195668908292640732728635678978057943058301906742500286225599587671343236764868475053905744112302526029970858897894974423315325361217735243263195077894026968939373190186509638864851073736548229745507119647780966077302956482960534480906338037048042543438236008265075160106652997535529755533336023862924533122425133347041656255100809935068054170191245926581661086309001843658036815044513718265447206035600815643202995386919324370883311563450605760485504634133997126216484152374777374037196706294564537910474672149561569155227898024712030241575843121613059036863056035147355528507173228568569566958599226218794848262346687310580178376332017095578112373761504471867256764639738934743427325961719732299338638445232936046111424842593963742079695322527416419757692158066609647507883509087289067423898596449781980423951039676134413495988831586243073016777522928111417310205449310537976948792948695632311094343308111263343554528987194482456340642228395386718786349556582533787690960224640837401319124378296871021935671117052110214598257282944493322313728519004652857875574422844903196304713686234314101936205323599160497927382368877663921406342423516863321928465278637596457361733464879696621698016535554523860790793915751301369189798797035868729023186406739712105259550901662463450665684475995156769485495944878557587925899406023160911336957663040148039774314131754814048149388709270189981046178702718144912394834733017213076185231327427100890114512592442556120782203589935698576527681906947855597935684547912798757655896492267067162484501773606482721995433140549143252011874654689899526589232382854780983655800579256067522714922779627654666152434254514556789722139991615598581385968455407180752811457526808769133109747176125049565431390378271963972749102528202263413784803536282824795690556567250997340058480629789260496756271051013467184331319937928189544187724778223190301830980101958142693996026327263531252535667291064962814425851912579977002085632370386864025591982410084043760110659209085106886039780900158610087280950070652011414531202850887183288736848674951882017418203178705066618672549382379594120830791845573632168584744582996084210822281241295997896271398178606018748428614231155649617515751006338040949193139065000003654474984758352762624227365021465799380041726587032677289653753737293985701546638848980669736945680226424414943922054136898985646625701103912011338449795189687018286341696418431223597374082196420825258986381976759377113100870956195471564742828620924825761492828161254277538542641210859864349463356087122142932294765566739855470395571478527550252305873423036554679123348773477259528476332448265420734330512552672373352122004728654071296460191680982741826080176933292853188348356933528227176729776763459107011151373089506541198086382689797776526558851795959603998143600035820710528625627248620807988260560090221290518162209425040323046897367196262620691582035970422556885955535733463122976947479302229863289403302746217850077207580931084929230973068006730766181453923569560795641031368634456005184217772748756690944331995565576355738503775547875818231551898097987418069103849436967457317773934533141379979020665316647922081445141578091885015596412461106064501588005529749436123535084320561999543022548331963897280385650587449724005492300065162197801473629133776561081580744916377062188551373755889991448308439635427644436304756304313801375186524388015860425597536706458977137385500382625493692006258732161178380252895364798862441136085422156055891913698501778212965422102193581658227452999048953328929288288836872980727546922726325563260244615742518774257020164961667175312752866447357442014701408096446816354163353291787461478572019603471670739969074110393750984759901897559326125823595991571043656632867321716408955883156614378845529148373729881749716461493719698060315175734950620415120447464048665013704000759848022410608869385179753771138465621020847631754449135655753980338147283779162730770132674801952600737730211978203176837806022348979269485896767737768424863640734356743281035826720628817305677115162831521611319830483418318186394211032112777899663796864468428690671979707427608372052387357732752394021187946800848663965989713238315929757716578483423861987107045512527197069992557807383969842612448134734000985046624023676270497457880220218393112862029438686366975431615021944535038059929738449762362906939041808816994852772360210558778499871514192160010782940470625816574703635273347342267468949428484629613778449133426673375344446762476719492173281717325997280315079472998368126367519820296491729348235265343436297414861929497996034572661169141865578854890113503216370409867877895119012885647045880232758340590669373167549799289340639448178100211256016661807714135481065588906649714983713273271086074116150726313252669151887729291115854800303513320331000304052817593009390456030298089291003970256629176882698567815569018427187266084037020680825063317770313958357897214167821468899493243603913754083774721273209924765822760252778796466720359006899631570578427231670758625418122648838374100578733496224121054827485220683948215626877788265065010617596044860321326262440218742495052040232359448355996205547251275740139748003107764542909654989854483751903820450386069802514588299457054528212349122060738050918029257905041344828635226348851335769864430687063163339529700852261855066783314372433090483629829601938595559143427268636800908523013617620897047942876696073138625889932569553142752212235512271088652969612969951078878355813701624416254905163375579790195575564891375819673188255480924355275962083884433460929518304082020128632861665373862573280698755381007605876209996843480137129087324160825378671078115939676994435915513370271915144933919515506178592487829333556277491729780294304219656885629484583717422865684543219487222110178567222543291863508858244473864815490031084245249687735171502626565517441028328171386112645898579568952176367569628085139032634242854289020102192450521497216865726390216353832893388136705114469374484918393583437987255410052847182449936659435880362206214181504008501983508204799310268332963469633148735087345186514714453186788535322940042012813233722603207692339732321610833231149119368030194460328229716811283144083252075189033494363175683347313670742293262087747239570886432773911069706959125638286522620167848332951762581736119456673336191157571654812539612701039213849013790884675498399209231893006572977281243500757311285513226548366078346764294704012248397480526123436239617213983859744603373987892389212643855924651388775097014915478846335587083991981806561557412857088486459954998766522644278169853711039232094733822176731489918498631524370806371392086461186201858290503299564349462790113916826904385371967651164843413149678720017282492819908543711610237897677651764931468708564039702995876438962739875418197605025159016002344729041818263205347029376854009280358917176699003943228039021149909084405009609607488564567132821095471841406516801138843154521548741515143311459932531805604023378401914230598854571113680046112192019683110989148114393947506218313351392872994317237830410130882678386869658743871296492895424602393754487018325710617459312319511364551563840488033523898938675136038930391402010856433081605534339677587879262352263902207671086297842049347063830251019219375331538684481027195564616084476754329836411781896197840584718619679818488119054724384351008551189147903173373778283648931744012404774197421450122483084071320395586022874630730361992681851946469522179797252554018686023950162324455511821333711849813105115724342358566168678733889853859817278768203906403117060146104399231866709233451328489044184728533466623484212000456883037374198653664774561821999578080739695911684537374319935519384382472994484379774212177928639413517014759773413455084773616785523987302460171158444961412855572993271206368494048959767128793451143363915434061792950016017131358734733807559713106231120110265010216915749068258833664229133954184898422756119272037780776456976527585140250278987870369433109470014441173638733567129014259316285775902695574538666996335051744270317935805784352099064159524219749402969043610284079850755824337492559569287099824172939207141141228814117492082326943047814616353976226408898342846025201287629757503025813774947007408193008125995605990476690741902315457857220885698737171668834794567586347508845910994338772784868608329003441482340384553419414905448996021186563891928045843565224392534117900893911315095228955106640168344432397021316372671423403306149934461399050154546481323774534419216225666481998233202195879682132551439606001367285051995550321217950391437640307798815616348878117456138289574530449943416036007532261758063497375066444831183409114698529836879336896426940014683543449280625185287059316016385855432860603768598905540140717801266431304456899664688804141020485970416353960623174177207432536261524302156192922224105713970958130338762703718132812890950686640144194935338601082127487673992220795922195334664996717332181608085436557354288062917468252386137395958007936656806444391657211067854739124669594913427395982045192518099609035465603675810471279457520469619774992563884601221009811826552387647653776929695551087431613750734855800715041315135086119711181133531193666901732546784072302630081657329830539886849441701271810460613014945206135514766840108536622906452376705314729927202990343954161355292939088867728169695566525584352224617385148379250931035436001011986701607318718837817609606113535957500764592822075068204339457895004332669576350794517193001499538843602271585154824847127136797378559653339266676773824428938354018349659166017568283241711395503705221093703454337219342516709561439459889514233467948351576546061347321503337161066585527560697397688087356295287911488278793872837958608305605785970456988596996443755210258892098512632777169796446729231034980925829655717411969681505512083036351668756893631545516570442294984453315580143496817906702548076990235047079473056920007486096117747166875874633448988340425634005038663337131610148440061226932017994524661787705596191797843819464144250739693196977967333291943788663775834475335867286308058748098703002988350072396564979152909488613852492172977523383766448903099180352364445759144255516247158426336385228265257247870885780656297729356188468921380637161580980643635094383344400228618243107309259334845556952921760339635717583001143877114558654833686783621016875674043462479877536610557903813683501672100326971764133931488306015494817769487630478355261667532150185522794064746170359607852158028133720875184225633292858780186025310203437105343240793671640716655248666578484428586918207744420890822891926142568396237290954021002372524241447144995610825500665505419519838937983877152468370588369952841882343974760755521195704762198206981012067852404372923490310237972699358506245318736596189927736830844457343858454666384562150014463085237495614258786506474894098301661742818087130461664533729013153913402421473113983661433300921999788110129577200293473074761560737085154253374963168863365897889912790099580494800528505026573792716264236162453487140525982096746058209194407788626515092302829859401349852130824727251512229894914567838975362152613895325468827597805188397465438380332209626871966081854036920841177681737175003523282167319119481887394703442106547226002947184594735865253958783957205334226459724212428779112161378898336007326945599354713810388604425250713978995597413556569106687202876241732126657026463612607326062037962451105324069188869481462283445709123113539205539872344818218276562027445664095433124215404407604221992488538299586547023087623533096804140782386301038727599053909673916337967008335445018142550363257568598123163632260682744821624187127012425127038417109891264544929623794321451355216192851792728667228935114001440424576029070496330222891203823012045782831187726056727612034518185088978507469927187218151997242103540674497825478039820879291064913167556247426733990480273894531555175760095914745637489731634230954433691491330949462230180449448551370146977854852402271012293138124298910689796709470826224209601805934164053905479197143317848313133641307952174217508368291776268241974562717793625849861537257977336747713810238447510168925069487820549049187681803806030709224062417663982067862031601088219109512319685673338480972788271749069473147871697705876997745213208010569647778805891784544264593530127488517241345531117984762972855396766065546297207373696419665465722930821118089549716955258521847873327462363456170688393366812996576977613013377487994028348771324204104734024363078609307255594240608146522179276815118900593249483884826220126690686677900970903994617761642009924639257293123231967767728174299418897411189136638433181269080302387155182167518558703325977290222945955912278720625496418548069236102318619330374201962866578403615485406707212680261346961528374222461662508526387534147051312463551879108971999495854363080658664670723336445006903836740544986851402599650467425939732738687771673437456437559111046899154343397844840972187654497402120114054098478423240434410688756487297198851694373312499310728012954241832324175578965431565099441580842616760681118607865652575040262015922850695087201440996425559058834827429520797200473981698520261790339363371255227240899225309997500630166687979585409629820394227270734129092855854081740112554478127837559806392085791305625283758747575440572811476215112880730388574609824996446035551429188659590775133147099172743822490510951193149119440318007819133921168486233193216345564050293138996725118531657255264208608892454888764241269850125167991792715760247480221866498211262426582778328758893091187073124314156805901900911495147966865612712212461926364739911594234618112538965942542416467666450684524263478587043850692744274073581883016751343474903752537811710499245828065810768332214095855734628880028823048741513868542771793033219072963227377781892634236525273328870336625225052560317955429180014635853994412046701791876526296383832619650317102817081579655819686206645420466441211275068474670688903400470416067933035890396731186042237090208975007456310905855570077007330958528207251728276781057857694610496463478835945410674902612222123379227431730848482493251728881602892608727408963955065496609921186184691602617793610541302082623230333333412178327682537128956074525631182033419159666296424834975621102699605142125491674186251365847916741896055477478804402859280980230968313927786168381514703931730214191969784039010747273058888481388200834544170956324613123296845575307853095379435618983642291102131074490151649483559731972993671963173006927103497297673468866150740092209416554040196490962954751437844141994900249917048830588353483030879293870913768422830820936421605531897448455139624097373198959860715803236205851138092975486282939116051189143133714645920869138481945065298503083881454945914070982450705867705648907917326963065310744191584879580330591413801058372970359429582184082092145514357571967551233506141829990465878093191411137595683794897848235183694450933842988641571045375390586292138433460009493078685342455059229372791594952818817544109574198894969278011894821888868411789036939327738798521328052282504074290453167827746493466235062272005652561360124728813553092375602286404170185575768677812221388718661000699850771365315095559796173630593464692593432602152068001828110216697025389777456927552055879156908871898296432343063870122976371365951404675736771722293590049731030736891138822664547637249481412282029284713400422267293948197124614275628074899052096249293744427666875991747167706288872733183654332061683651796937227870548169621676687581199807686312975845994262207390326430460759345049765983308677893518453165977323828233255799451790441574078664121726800217487131951304015262700497113321019252217343078632573054460232829544142047987822323795396137238482723073561036413259204130235879098909557059680415661567472006706670908716360491460380454632075640044768422833832689463266343347198878890957861924042908933383013016608313347526271466261589151363261179691395582373081009382268790800358374860032366208625928231292649325290203655727482064619337829231744706151603467422701468487055336905518002842824588939387752155499474771980059048458540937308388444152757096084011198061898793095606511769171365710954969762454650041419023373030731486055070918795298109782173374090219499801287901601993724728187789947729847090539363874536187580621191114599709079164165809692920124329873330039633998238106220820491283481058994092073538591899173713680875536739541832532090603430304615798027405860541851222396426445371660718778325070624312083201208199708305398840320913078221086667886859631600107448703397005204861893248663494469709189181099915640341383123500782326550227554943861102602938875730225308291014226653823226277928601734030396785587767856860070129337778649185415583067978759052137849192234854270369805240448406230998357943440543127518689689060771210276770257416469637736872993753980570836189040719100044342578604107260913372346477105370530540522872073839444745303917099997269343725429403286144086350832046337099285355094332658916710134858136770343934684555834356884059708137713184030501866843491417933133048417416283904240788520607580733177274171291810613418661010463050263579308914958064919064361224516658800961399303571342305463523624804811937123895302087744563491557574729672120700282263170754568087032125395617299393258857557595349217894387529454490905545982369535895700943968187966355390404997951694278020991972777787367021549108876988468465083982214219529810186563645290079013349584225765218818233901420617181033740919690413787589036328885567514081009239128295394133949183995998146344796934664703145156949207221506753449333649394683561445142238900422523639061931598294192083605360777872671813077547107291512847613541504766484043804374188787688364197585183225866774097866035594287834733632696186147973672452168795912349364371078778345633885240020283561785287412361056058156614484953794409946178937433233828350802599280902429824283652342861388803033890344919246153806724959924253248714314437629717396862940162660762092790240895083532857693601707413629536799650143957542921402191492660361056860942785311402142086397580245379815224414752138565846103032440216257534623243959568001617459102263273255481786266264192258609675368210018141287310758833565591709238619224480092538205763789133579227187063957625752792020131182083688965523136051497440701145786432502050756860983962923059103971841466367862488760997460062909718072409981669529598139607869720740467962283312793483636598998117561497880236995456526644094682351524821173939263618032900671492941157840212170363099083917411987220308236631533480599281671183428187832794850334946050962615275139286387216181772400179319032939775012825182455786002584136422057996691987920994464240912415010265605527041312361026399843478324312357519659353921053755674536436515541161394461213412268736685655950769015322188141263874272526667643213247980702818016414303308228840030017209301944524671184000947239065270634873708318224788939674701658626297780330336324604402174409687923113943163105830239448574811244389931998356209023283691260707259237708664918780990169139224408233956220969713463982739793383946378302962701013099942704971944769051162784734252684304166206744570402653379549496139234752026033671126640387165675485342175484767310927215896241712879345408095896195078884289384626605973376451300731889827881262846732774492360502919699754743371772800901140660439383482164020629714800088220893613571574074243684401022112184747296223715115128792303668259287598538568600130946405561599737180784621171932079910583453727212072433452039209631586425506329277199599839983419219745199228415852243707531719773158377275188235804251062609686278333011571303721017724074711862053728870386498028974211777243246923658793528858678094353553058441162469459396316226185983309751955390539500296739477931450167375776159151210535673554174093233283916568748927550496985487103851621711042254312436399836523770225566170027151364663592307700642573262789770234726982616999345283605510646553516567540542699759569125615210000112384170176364855360345762275739816660513410094708241056535605563400123343576442380108363019132148679790665333458231205025282639548152579200927066788724260276582728272035010290531034207382106301093248024860795536514885845725720219018526722031686130593092069443024230662997558158633720224392399120033565564057615518519130753226975484184545541715798881572553266301066186311168525241129231861355200225402007713332111178899578372830356793966677011942515289513296192335999192812859634238052250309586305206127833754234328609955605584100508705592195200389663941456845632157034531171447433153655493999218881753040766651706962704420190788292039394782031525330589291362148983263285655480523315338898482635072191177107333968365875487148897334648578478646770775449996479674484193990109878145869697863162915833665528646074438810521991621373309417136576791682641803255720826015260475932221445142240571054451187284158874571030324658194261863666709955683609603591622780290180595012975102979862554340840969116694242658262839127292969940801037591015711775801828808664076424837944913836551830840069800300485528196870820655834307068132559829333032716794745901525553163348982857613591275951832819707902317202788825266011724179731409265549519385846748708650528390508021864362556981506220963714585649400992727271660972323458729287273446169871340751093724006321801309523262719366882605089140400378693967279728145746781089852849641914231971983286033134723977250131282657127135178170508087722763646194953272958361753302003538059184866954768807025795604352070377979580454500154240732553853130984142220481872333445280422858024888821049240985130930369603670555286592028479683672736786068766373707068756014192063488715498086294953270412234680265324021775132933954590899438804274045415799457230360606825562286871540411413438569440141824487588027663135959758710309152627953100748869499154710246479647054892246925107449829680565424205794855631425904237090527489072965875579724617840142781183056032755934856633750867047679637531256190377536849835409622282872475953803860955144669159244379193627251716790697154133709063342846634476954693730321501158962784281426285736690942819781984421956480619497678208307186614241462212168506563561385820725960536237505864022212627694302839543394887273259790345766902156974139954823994171314284012908563837302655417235758075105727057017271353279726393584339160463949528377645995689828931139154606688409823028894565982716137243176741989973461108688904792839197595459324975663100751387883170451919031848650865179005401181705164121186242284112247881256745644435711432671501751026796334653347141830388734526496457282161440121351457331926161019706656764796107307046529264635655643663023483180227314606375248231955130144591700597469445055665012133372746327238423591386058622529396877155435510104141621128451351777572189355806069533311716720638731142938522959333946301927233216210323029005218639622852580715103059241799384481701347348170155555607769207233850860827586516918663543580474936807359337147380664107203023705465665893995532085872951278924823579775315068784801747900195234353373968934178975929343666532568157124300341998173406498129221426796627277635526411574348995642779209902856889969824773510137672744293747660641019388732920487910419066495457806677698322576085288032164838302892792268310568794439660562294911257653402269230112071112680415949492766955822011058542790911583138143154408011421250895233875497928592300679207787567843985765387366130535776985934938039305608871070491048273394462104114628585118942596868319297335782234953116381407616687812212581414968722044205636626534310584531194966540829806808349681432263955607880419667013277012588004876133889580817057300912759177356345318743625468706879678649931118655747392485682842662953785056598043202695563401828239006458094452691490124582826971481270861871074610360512848293239100133407017229690262811508430752195609902029967373562970230509624811944576729931294975523757360964051279345040877210575262947496309121830719183915377712260559750828216905662179037564164114392376431350663731653310967650333460523106290161008324766339279436789460132115885346723978209761260278079391145947822220352192246125260355470173891525737072913787284963599382149843829552515741311020755459810227096638501066992862788255220203569165458464806151390212904180215546575607482562692644295988318980902006566212121850817576415607029931826719184622361205904427581068856387076201762631210850872367709284283409857657634412338420821600966866318986021138542449588900348182329325551768055652472676711650281227491806854529166348520522593856740144368903969010310569508954261140775403776590038038773448175500554660001891376443580203564088119492297034395490255713179988031392386515710459042434759661924411212086846464899241764586741491495258944164411287756334178993720883083982079548660144267506924551766484643868472655622844676915270226094978168389141982790334085486320765398837639006859407253801025927000574453649240550553562198417786005404076565811257638699288925786745154674723266945430624111563262348990500086136176020118566513501057300149546609493818071896463972177017976711901534944816979140384856237090912401906343844292105011140004295626980959063449932232619854041627458057582184769063431119007291778708857705347763875854876292080657336519031596104754952195989542497731546836173920687803411374254362412397692449542047553543014965270833672422984260779899853406293200498548910028000236257513877779829413022646656875277765282805815893080767421110004878700509048936854554285082706130720751161553306461746392024607843023142291557526150860476692614721110210715145056371201434353846534158996591611514570213182073845354790030288911957453320959661277731542230003073633118597799913559312120966026596426618544617572645957497671643548514500768538898272675548935156120990697179280897445873274526441916174125354919634058029051894097840170678364112346132101853330249923309361505532469797065215655052294100045934368060841567939023745471074880814876513617062488931898743494714522495603116125220357113861024100495163746619136852423571382694146977774309169950222549184550880617692377264207415236265345637753353796077125284506443844517267991167060559682422978660140426558573755901263164664121595707311538105088578038625022827594216397316766794212267380214680820574691420042684877755254012266972682478495013559347600471622991424586046881415366578042879390669157022412604185239796403902587858518484443672128578215603027269863288343396078032847892676510663601475576819765993359939397740671370353393470259173087682868338965185210935947680491914091729834373719961643035424503015519734218617325242359881765412800836759028515803361554068975478442237037791226886792796639432771067172991544687693344340233213086705190965454524737086095045883041901087100056593890666748827457400812585660415209004808984982228791776618996761202228835330217864827552875392868333534338120085899648872322402862890221403175369313379036940175264978406692845489596374974249318095558620226001009126651746508260965600179548024196599679215236330935135221273394468244982726735557626117779129402123375095653881463877609544992645033934073639776204920287968034685396866885311824933664743535888933840573750873911384257988921110748031649173874477491091653869385323790312303497096171566394450937507779142438872125698633400837558046539664011024294079017619180759970694853204188101999804703862889269216417291061526147462804376582917777040197042558521782122804660664556832267883893159070687878407692019835321903095939411891407271916614799961775888192441136218103993352593068498559628673509420676630267723314423719527672700500813031297550599140549099739413679106235191642396099346404193710731934267164287447217117347835042867244816151038863898411879398475478713130489647332079748863090022674602389574805964353643120415045288465297702345783290820750078245989968676560737904492824102081028187289452815896390611104641741517724762919055972438471165606876119759456172088981177095578245179176203749654215142311244922543949111984096362889296681374890136676287486319226454969280467366290991628973901151750331122025631781500153059460080745726224810850867522520990302671703450427588868151137942615238127529194658389282998919483703467214467997765275499948444766029693586063204317592518327691828860632523150319855815224929820891612110015355543335206004621543016176300840146110848834211153693202342470427458577863082595980980745044705321392121135445198251623188680686214832833615692828665229103715112547058823790939159534976808115363695245461928156952803022371500767472952565251010102573311109219588080143824061272018113218528885575216405774346651041935770234925133555132844592586671225810798583689579250077274591062084936466814405944334284252201252909153165126383151839663439782047079477490009653021380971899739513799752730720533918846309881240654211479000297918444208522795884358352114728813196729932151165042734277583960549141464191237707332625735200562594944438612727557113550594058945234499701019149141146809668009708980775887483137489054572613617991542595475475908590525580352879982312667585375521894125115068983648375970733469113769733557912401585545525992176393751565121505410151979246616560542742495619039740379536398948254843306304264161444280633758924870263911313040826270746493485063227562956203036214137162815409814567091691035041778107663673351308612932097915319908949191130527991651179850362457978911879608481631945539842442546830624579511743304720231588237233418633915033921587210542525626189121556581957009903924122804177377424350549754667043457561789411825368734912721998072412957088493857823267820756723949630542054001663161831381087609142480224411940773238291269418626068577855991060888162664966541311955897908142358016470342973662172411923098577681853944835195847595128012654962588274817193756529070304153722887439401343789555880660509125242531658310023030125625933755264090926393283814978889334402496319632149008915177465998974507050414551110510696894983244456363797093175289713389306123347831031959234934614702959292950177406561397281491667480960534090867358421662980862299522534063931364420119313320235343497426877012880337428410247062252536810221181193952696142826968727429776824590641948365905782563726948574425003018915922294287749635557435571127037069140097747631648287096869916061528756244609724984600585023799337003740794939713468285612042457106070769173036694783779458856274343721288843021353528092796275890311776159002096837986658039506888729571379271184467049305255303722740652763575967019294160994502784664474524680207651426287627610328373105424163516167853283630932942923680768868769372262197090424083787322022147306001511880484420287147849796587525201683513698231722453464723458224586009225151193032224887255909927556286634388577556429848899342146247961432809655598442447725845821771862759337432680412399692566503685156785268844016506641713387731239468206800632703429895545332188285363192943239373092208095573370932356101395589090890186902777757608657167855248078774894520739350063470262646245619012290348267431805639289172385550096699774382542178136415811586670179403837798092544786296523720719011300243442119339518679960177445705438075184571101007003464625064071222922913760385515365280178848223199912302681500838375560459051770730308567496798457199753367414946807112375791216322917559619383161136910575056067688970129202610397688513347494155073745269838444731371364807741200990883266749295526853400357940464317655674872869210239857775215284437947262607116346099479419543405643438803053286426793597414388965422091468135288551961590470525767750439442343231851357184998152077600800998818031606321007963819234956884305736219907146223534096662835630534987048176211085269393715586701767944151146211457589587038455226358313420832197704460256927438155584610739240509639085721790889502910722092072841312363732020020615723160194107197547009058449515801968725989502056523579609187113230920806707560660940417683871395956274629295680132688031975150511702008568940411261352688164516710223296759417339747771479392025959927313680319907817469778228077374436489637260911422500134658808884330999220222541214449260367037081867300914868131346038573488517775870698039854790181832065672853444996352015816773363245231431132142473189779239132810990477322410826345650130303320922623514409948547329342719344145543173234192432988082288087604567564795319378096130928273588961121864310266574959984032545235112127559607904067491018913444908179183283342890513775597982152661712755911708277132786832046953471515068692167176338778853268200592145869569664726144947390114106670192196421477411097851356363888863916598858998737731090972538202830871417639681915085706909080424267250902875653269100808554865320984751320627090317298479858518963073434313592610255663983677568925678321118500316810324630347146701285227386055972731439387173839940609296382016231500907461674058103120712322860520829578578481343289366213133473814632055701635352378184297539166573126860308534285845072004248700157183973351995413802621068925319072864487116859854022746619401067897582985553511890900898603720970902750250132602930587034025166288892512655286501786700384119206839059142112510103575806909590751486803102907865168837424827625105860337953114553772735362406596486969736415294907343454125397363087246457590057277981712306347575707670260462910314812326340060374783947802783804733428160026459056729879269184294852497363370219380265753929464763616696499697810384563287229226673141035930962226206472867254046631100329197915158756249517000858645184818596186731747744885627585747673567017249582559088459021927041186913690725185445688280997624906818423401775195993596489448553510298175983497484992542442558183098538275782915431114633123755468142046631914665873670429584184601928669240227449962155446661956197470448560492378809003556238657441051514452713741702031059162274062427260734821115807857157801930975183198040977767311089521268886506256259506928870105664149913560442805650388536010673580028844292164494763803920153703229745406721742168122562398994564253152113631038595660134957630880551625133061284719511498167779786850595990526905520661224996117550787325099132621113456019450779430423102329262759898231207661835713139470156742279864759387799033762899390010750556362478197314666163479344726309232549729914140693273726974506732187710872617876965401182112203797249350641290006027221746703224450959023025784558174649475533456740628991510476652811680047377291237572632142543714028835503523538556427056620123619105753449955077874295688231538065923187350458437388954581375422324793263248694823768612273574867084245525770230033828781515325916600124322555123973894375823887042410950223774116016422130302946991631512526341861663184784382186684386030221780841764257191852600659633566002363975270928557376655707540788589199633363892112554194767926156308897994427093132020457741196001718360030692971267669862191046564890289176899028646883365631038141010026033743156953380185468948239304119819166913571930472841473504436186166740725768507927051527290167591980942628183498285413554814215608887411406569858175151172772553214937504786365004878715702156319756893889742035551402987231395092538906258397772362186508299383138251254655849964032897095503363609106808417589217169467461574173099458266145843135300930064983847978155113447031266249327114524321473892997178174456798362614965943352279351676528248594891767574292867039244919118719663204012649916086449791681343833377149239554470029263993507818424108653997143707959383769797028970234163400138767888334358448816498810878888789472317912913159135087427356911310403829227661419673775056009170939551097974174475887302192084026012349923596372768857468510757367962622300927821400246941213502864863588179781342164581032099764205568731211969215326042124718229960859989235513079624477899553639096293469720328788014034742750536049477422134276799486044725454310459505331674256933374393343418810948853494763449091698389435875450946988431385740534353408010118675496612463931617384138013257845712768174106956621505024991178749524939707540605274908713980623803812129129238533454451908555197462499473392940299381765339864326083970034145677547449237832221205142872990804642361229380207063359336991127446975281439877011270201583759810701981017388062439627262849427202903922766931649629719135126790957055206833702134240085425789578137414176367812636583953422928274007464486155363821348913603148712078632047165511205306364859868582599422425256595103467747633181286875549854575175055880364663168293436340025497292208678925568512005713008562062692666592513994142936271636495611376404677566272150854127590469636200098361951514501331743305834199295347387025403584590489715316178783359951134378396795690662000273932054144597984990738057392517098677540950114553318114613417452493939287961900155854991041548986300322799337007692438786423043223963087717707454888350329423993019449379900255063874814721174230267190646037895307621266156669628739376583950205105908899503190101736917743575088074892605959195177642385621798167059955053331290326771436693655284084117233903014326111468664161147227327851819841882496174090983541786921149898552992821895292325586762395099625282146488229677379872518541313320298715818244427862761172926285333616918269303253145147562865069006369362730319362586229801496248772951433126139735115613779142842461076037187089193262280147343033757171615552139111145172246449012698871233944742006053894593020059433284758084423277734727620837430275261918037390161867424265262808442938301269197255742623344926857559951884094998527908722142530010586873645911929815731971241694967535296320878879220986933399299155595281239579522080477452345363783848201254857767730932266200489694317324570132292266958265271780768846274893633529075449553052199249020264479511873840662578984173683498860235486669910914948183537926793025951067417609492193270427213962651229990897728340557121780551531858456257021397068772956199910581905214002270859771905173565053509012469182709317468693752375730391279280331834024577157229149174668756602521441790729349596589362488463574003430261801035957673339172693119159017977814414954934287893650061046736079522735162337299393727327650253217515428228660641784405846872226412687091520721912284513286118418898161128608041385374959348414668658125957708005534497386919810585165522778079563248500712992973993190896820167092397437322016711335955967505949526793631660256898685234293697355338301879252257891417680145347910188296163063412185485113434651657474760033849912752419482488374940772482986785306244277311970684878630904214572920331258268261790766048042778251831828864075769165436377221981652661157678539072234066872084212043837887649057071573596659603899871688221580343250988136322682428809152607266335596370455616757810470887878088635610514717011707641565842597718857467783928119359474498511617615762759751981646843538270085906648669881691568559927086611750815984371862707511030284712613049060338207618148148144986119023330886884551296885838685258741730355808579077217076998130257034686290493169248047668087921025558104054393861140976557807863016296413068488917594435456411745898158595711465408825035349388698774904007446865437891890464657147567160603659477274138756214498346872242019662339773067486495154846691808304699802937825611215935142688962711246803081559456649570657785639275922869763052096678689746120438068285863811232217513263347942118572821247609339997455705711711140870117625553881031102293502203822160573652298302726641017816934444611825960556388614339145850877631990001025171366423158274646433116821071109643520118855058457909608828496299207148395875285612862759726972432950691490564818953818939113851529880097606296576016834802320527960313676494116331813721960707136673591049066058376045102403871873713669199885456336905593046227784944411397807277077638323828469395158090815614065089133702486088478181677310379142892763278863826962108441354051963214656182156021098263133996336854790354918038708834012246337496492161984424609202318596117087997426673487554972947367516113477395404982754753240288431643681511057571209055403729128038087247014312587524305224720680992562230969707248592664355744631739269647965018203410905519977003286151385395271218391262343120672159953234481942655330344104472565506773174555329207563699144617893118381973002426422413259563235098152465563743366922084050305262014167674324118933100497740839915079672800707382490242155079529440809540131824687155988373651107637286743186966093106342926707127155995305773847223629983792666334243337327491113774702698658783361256099585275218223922578185693680025690713958951832930215680213725012889964356166228448804363204549213406454023380639483795367350483469446073115285427276547356082431006795238594733865488296710378772902655639897388968320416267217392149628595317703543941368641269054701846848649906085631011896901015999617158797119851031887819729725483691147796696952977440802021999211157238680077843814149087035188444231469181344053364999114771833992802327248932596011247191538302911137986724632593417618285306115002695578930340203607822633327187074568490607656638168026150146371901464882675992319977697379386753857112851321425893837814299599345274795017040228171629426611166186478094667520776438713306722747175796140831192655848006089370357378068142486645376207904883379689509382688520217803221255799928207699099837294689907447653447974138968470699333910435991923661119634805342260060575806033531169991497452794319132177151928325031096977728619047941835012374923165812139140908828042431565958057038573295207382738354661255630924905759599523650021992127104054120951858626831849068474999833546806304016403459240768962508935888061179663649221095431345881083717544821196164829720468699615142434259220858389612951482059509327622480922715208602136165652376644157004492811156520174293237658479955336689238461747165879843892587764352772218566216570153424193667360231476017412402312259011104379331633292258712307201506976097038469555761258634654240210814729961671383420635315510079503952544611043122656142603007214724414226127783615299867401171477677902554978642643754867233146136564783419581936597024689797662476350967291031292488829770204445519385655572485761439654618800541747197765414169386984541493951751371845127653153952602056155523046485704980046780587771924639692573531350266945704332332403237668871986022751386317317209971728147163222262309728156364420514212447426838849628418187704516793763097894623212910411090264633130167044582874779598204847301750883104410140719039452565823800394674474486225422770695781191422502705182265660681887237821350008080527236764796466611085739152601504251452263549562001208335263942857070131168024818887591714871416239376946680771108701335880714247970536509402495255360517387696185560384507104959780810102789044453234113587002231191398861505066444280345484403358560425198403874672891225631465773559483057605896793843228891613209185534690637998952779074202808375099089056029669915511187256357378339599318017556900885120218748375501973180746652887207327244445213354099967393654390683602734300434700764984474978947562888869175260659928324210665238164362668277282910438600561019949793412651383891552060020053590832695625003531337736851014492920251702922125030103753861852768363598348639358913645947789535552058368255545131215220458313402689837621814959976303285375282290697625360557110332224768908954983966343824382714786323290532766508338234587237335267624281147017850626329101475978621755560202558213868112445854713956285156588388212225152725152467087815929654965004122872158460418907527564800256175896833387426500578493083316145186484784201198825423241343926612613319644863500988842673269202122639473074389542026473193589599092824031475881438974125252954190813035319583283697031270584795280338161684348698662655198118031431005208775713283684763420068952227816593786328199607292580552882000153310510578200748626713919953533912890102644972116611525036720829934994760942113183848493864875770120044519649241026055641312616072113175844242752169538318829262756513204069919567072686164275601581121671096914790869412199368456721200093778088029864266939144476031798263239464940186346756769409420808949634066144343145406035356155894036616733326420852478396868491552702330591802139263690012100211281014532749649110572032510951177693256298768315119577384259158591518140833070265042430831145232799856891427183238452953980894154607471245411436211836820179459865282161250104336024104212383107371196958730727304048355309306926719644318916068068764198841193231456653087579472369971589472231457987419008385673217223118319992758571734580857187714293372736618976320181531785473238210463911095000351029601135062351321178246983714267099012801613524522129793851781948669245904979924208066579589634776839775393687623751987870853157106052529040015869660679956653419779687003930627647856649171517795466969625452629849562985826116221434144316963714118285789401908737578524073065879886529560275097135590703889532390816352775925682120014445349131069101451510522619738787153004076480012447378306272094446495303941763715765642427526466854399504018583574269260873428203828774867311496168383312494364624999101761979352840939219563442559755560838020920976129278324154457909285516805257354445622540516103223983456045644238717715568090432861731220951098712502542316056301196122753979994742117850635484866949522356765105848574674103231653390918700373828766342307948728804249935427107366552629337054823183636748304440681549834456219486280704354653066301367952176994608001346392672666243047572427357984875487801218326391676072308672962410279917437963877580407504670278205170351150910481156368517409389745103073575671802718994804613676785592600498961254483382211050445299104861044206525364204863904910099182671244858229194872494457112219324354944217872602958381254569923892798697276797704013262560521268686598832477184591196270655102564785443211237456073567196906360691649389076890787126292382186401323784792684258596763008943699725470951497023152705173799346032369014026700973285691242306080259367145469247349281353211691905581368432368421490520797192600701917449894746423851771705631181111568168894715360813432408611102719286717317261447929546611879085527442306978416844935279381144244871778839086991222119295420823424696288996340086997765115043433567758978759670761128622638837434773631519960317351191426616899586263158187015992941034830909510494394596518254386614177751330550074072500518774100976627629735731050578486391552334488228856317273063777168394258386381573457965894026855733739688384565234999268628897188562198109795902050883027102087347526755839424143324336289827532795160280098551976132923966270722150789833536054178780544456631576365733115272139778988756405404447692567425270748071257833190400851686257573463371306729052927071577332859921560876796321563832898929574947190325853732957053533141495390530148495699418455567493113927648537422475743995260370258970107448525893435614855749076935765563289167820837696249622901218751557715091360019743373776153448443146708454689105421875500760595204812416316800608335135198603645024119359906171561632195389620195979550661922722330716060046321087701587435930425130043170923174245392789325794855564364264326795426338777224327446786447240261908114076367929168487673621048521447088352919456485556045766960855913777681899788492405684155246217992090779727104969711939843205120665061990242934637780517535481221966129692705254478511570812252481840267498013535827846461009653280918464374765874735203282543320208011894109827663651971433756595523624620096384361485461903190914138216994502225130471374145767376575777360154640127770965734763584964200414813475792108528331514269835859607564607230176095992841601330823530194137115670985215821687133942294029709144856679417641753062048175425929930853811302690568447356768700389424216254639095489473910054045150750634886405198066740567819736969110969776178046885708485543703508871033735786450691687101194891008825713455981649856584285737266500142985317291775274129142209642565318327811207008596314333253438544527214421524124356568529022253877242883515919723582005931074122877960886334494390379520913359449134736292849512197722668979733637010343684873057088541585683734013837523888817046406925865918809111798861515725587477573177369249811881143742926812988670754013161357599281225404643683811760655383698414321743687310596656963617906390463923847669591896652718683396859090698462125189932169374570924887611875740087753774165985384609784642748402488074236573210331947461861462057832206345884947352059584704758214411936093285795752445715996908908585335400382680010474990622835245436367052053174578079656261952399549000344832020961911906113479465293503181619594197272560005404051571339955035505663586571308368141099381514381752406590779845908596541615264668134021262104007817757540458644429303113036140587744985454264696743367451838421607742938694783488289406122954032822044945799634402488944951125257211732411738400156354643631701551575117743340906885292016582019490408959137899677120316083377243031100103711986977942945856640385126291853020423353458481781442079891328187773151062036317348215929463740876967915956088744143260476470143138545922516266319636243442741531178959250959277550700655306585696833484704979877861498631052209082523783025812071531410344905048422971410403664317669850432149409749163653286648647646819617368537988905564864111107086248347962204745713099782388132481114330551272203342500487549217601196979300388043855308016480756405365064487929896487995673620430330377395598690545890191048964715927125337303266452767418494123120493194598658687143298433049924991518757566226741545052676905948650035462258802338525111258890431113826984958675418262328212378202251538502281060896608554779352952278123457931241362578169170578278452483573110254106126580967826136654882346863762281521128131836010650642467725185028937502435664210342211651872512397911947670473787255203957742255619313646921521025726742282718522126156368671201599997112326845014088340097839371583783468618927651887030752461653543035533348710954461916060871325731271695044602907355697754692466956466832638766920301653469860782537485700107367187380662404443742490341643616785181746500319404469628227988426358816050190705842809310383901867690911609834563759209023632749243088916942624305807686110071130207853127065405641981516099287722000231517442902356019556858680304482402190852491286300143456236660214804776543469998799214704580052400991015347351344316063223210054925315361139629062660926698304051692555125083966840385046289628442879878388524827703880585319386591278077522553468138328988388467715490187593498164776589368748671089513397079416071726926911439655118595824541937842432885563793783190307463027179462485071072311948617079659589816423768603877446218968772713433575280035637185705319242013678196962750931816653584302737195858393666691403711452047053128730997669474387223901673456700871839907654239002900819021095149459894913828320646573425298008173741921627261597378016722121888020335400889255359764986560164052412730391760325697128697652753444789909898191889070264042979033492535354775775626513353786456982498225008001843534676612140637705935679029795471260597575237466385333673002172484801630477656935562049391033801744343912835594618292713348166318158619650838677976363910663562555162680574567963013480249619938076430278568541813249735536123521388531873102406631308589750996458023968406369829307838377359492691269060463282553643004351778897417151599885926302599822241562846490582467337495020342113837815025144754374423300347960194772421412383158880466952982335866765701305496548862160515174278434408012488973505932315989895521310730069129630620420939374095598619826527857334822673330762931637838083197578066943209669119343886355243037048113192599626743379723174662249953114187877305386574677880420929342069118949007155842699629419412931989937231445216956425636261508935488787810060261666758074048484968284566739813738047522877993767919482888823302054061812068511494505032914218023472925011771527428749829339591942133817372067270450596982543349266091846099384580717269291719614401467851848827485998653792573536458575821983846422064809213318478784181139690108338119155138203585454593954624221503398062551557985440918894879140095256603462340103032866301424440172000570206465494614745738636933279141521085395327743525233077823074201860447796686501429756372943298017002334299001836821279068019182977263515039193412722344075688835043836655681074209485603065394662715135121317638162961058665112591161581408407761918396775988082180982631898624628141579410933302898032165249847025679891362420955208572568638048534808805827781256744573589692110832068264613488898201589892453213151687059063231568993781987134332079795801034544580430345691151777208104793722383870093138262772714493775288704850069934182470066037911557197056601446320636858164436049937288925623427727185338103826644237522430378401295334480507123177769762902238099572885995189699128283968189335743810295196932819212966531386464385308438036088697032511690365251406822098153064111539248200490739894925054899256902280886120291864531685289735611540735427194126057908422063668747277888862042555654141313891692672459597616872696666360912951943943757667259014208384623965433845497891262461966223747418210790337833218666229108803631915564128790397092273053319565301235370100318179955796258391508829348842480849290236445073041005881980428679862986500759440254815780029898069952973926248107829658578273151787889554293581214621072219048648577601804190278643100945253716245124781992980653257588116469996774931070564166994250364971832303274009881414075382423465769348074168753578245512830881482125031927323703122442566142729248418705750972734065631530921706357932322879366910291403066382672611659107796940129033197014302599264745845443036144324589394925645027436919130138887574809855295093953821552060226117392818866294000911869026599261760119343558126317359145887583913877849369386159934080577566241683698538367580960483057833068701813897334995134375541713470685342660189704177996389772374385513442371828441423877190339377835811162717126911216366022249281922219872781224645210683326328956662947152010452618740731045544771111425568211026849242619383150172050212293605709469201342079722819067312477274643964740986403160800550031052122759457881643380806757218062731101511773783867708754622562558366486228156501556973831483778332191015322053126628942858566892249921590367848362008076036407906471261513479088027089195708800323408646192611485951959624481380742013219115241766734104498478452825433854073843325156358095478828781977109340700016876470963582748898637515683204138054647488065592466268048636302191328642936203650112408244880124855530193642107458137222684517621932079176269062599255583846595997106557691263444040030644616281231430209012851145957816136572486064590369742181806078571239295592834008345936291562089467603390380284678100416868571434637081923604500520964307369443104170386227381456833956967283237624117759918282904295168656757569128475494992081587113992956440123878775961432888117224893450771770194494280624380357975053576777621157959759972891759583885269692755203270442705379932983203351034769086241375245699421571970106078605306973541146483093771838454985168554365570891990105097147496656128264610532776935754354870352741628525310374020786090810706611096360183250474849280629069588212982597473719113380156074314326683766758069599723394664327730668787103024132564425599287761417281731838681551744867470329841133723856693647147156931367720440861563300927311215978081522172036960695875107006450090424358462619673690916786073311506625491106534135141665145881528621019829933782059406063299881501708716047559616519980115715651066656174342652992171623343575427428284842290730108688330857945416636362584096026823167800177761726028017638252907849454508965634775362998179744775039994019383823798736007922870260478029099893898548790884357785430330140954196256590957262409580615121888893216744357141390032104088899997531347916821637932694905694651063374581876867961788112986827214164961820844659661422948100146701663432035993925292237847742104494009057845831745019291102235518075420072076037938971579731003700721182540792760561534419500694155705772771661284354270055975506445791346921382809903131654279014085838114318368159613500842033143158198096474953122717684333333021464712658297679255286434755812087349913755204623134731166774812428791111863003251951657334713314721379068149292379285723085384517883574846396676957564455691784548055528154964961725974558106780940407906219198081579481480339391759378482077812389459465244231004239373760763863365120967354824867466090148037303944464070243180222104942403195896449506233368051927530638997332600012812949853992413773070293204009259864357040288444787168101831334509101262979461211080041485308509937132100946816455081896350111764559062076333043981887309617257962332374725261619233106263749401635642257965258887110794793634476577128848057754665188827087305051960850593364004273575288857803691577256475704944967207192289271821765171498531111105699845434353143256359774723323100673579987035028939516926246472192104737837809379034158508256081456492493605361576030409841699016033367689105520664194163049289106566968169244279003774670517273196764403974686169368881991578238636198815392323892126843893824569388886943649954277482853439411976759540426319744903564992120961967586898944774276105182697800287830923310202730364597235182803638879094386489196825475503451323762738961221038557918101863453584678897011820246690489773419850221386744083007853484227507577807671928168349331851353300645014499422556236169145528312832752625907459737001867438001882568575851635772653195956147625813208428538803582440807866366949702578383403311113185517362870165656967438399934802082893320087119323863046718064103588581811825077953836898717587058358259677531994599428370516686781720135772289217538820435225479959576236951355136641029536204894376332803964809052151421698354132498516163659996510355913076643082763405100769818523016912028624269825504061420914340057628063981640635688720462444094573685734439918438935172474983899389046081427992954431671243402730521665581344012018992888315991958844487683616691704292116687745245961990108385379249111460218417910346412057795825843518982246845467969038925730612919559703196131191729362704392402100844336444951089011817791954139558978025068152072175543909961126615271981880012807207687282413250978102520121513981983702148837055929544852698430114873597235207420997581290741500767760574526173369374842103094299751989583779927131921359173083061684149793138492076080293397301771874005979212165905752006577167446996493120501286122210468010772250193010899318456119326166223305441026494652698855236101711669977616557956840557355155940596191951303350460210049318007749036140154878662010299458221886312471850377034374427691730160309627242503801352751107782941601293422505461313497065520551284164474562257508663317835795900883800857067857437665443853238842255778851747862951944164889807764490524015429986820377006754307414493271528750773509843473123837476146549034512131037484854433519525771389201945121286234207513072477245452643990959294665904696831779698728207726470238082218658246800439610042284060554044014954045594968472263750326758021289195050635129938424865282453956150344036091921944486618468996471183672021371196722425217303182659241996111236189880763076499574753521504283269173991764916865762241916146737809096749447325573371422814446902324520356038958163202255031121689943522190738326270323825472672553328432468962367160791003264299702102118010975556803356242665977849691003795459551978183345436874881153185216962404901548653680874468707177208841564549082319527843208311131326280860306749468613020999892613927466634990137072916667327352839358225356153080144471722643321064638573487533240833698838499631825604586466474978664085547803522586187220648150425548436021320728730227767460222886398534915462997539578129563955426798181709826246352930076655643282321865709168457932802461326365421072535947603654246054087669727999385420000284556257635212502629237189103833045821765472226422048265253790562161737845426801029867808881208936564952698405652482344798081143760214568694975734195121694724952662203509818706642543835370531927614886602038035512069878669434299497024715436483699852603174307078048316016539950548446171521633112018843229706785932787412300357605203940252721565540659000561403528009039916134942440950560309182592924757597610054056180202440396437530925212233328900134490862543789615578537441907194401151398036938845758863719161553306196526866950879573113163494976471695756047196991500621179700316626745985079969254142912507803795629825554798090881318401380645383692975873839822123849452498687180529456591899160634508944965071816246721259442908883067457113474148077908568609787020500526852495833454668520293857612759918153863207006620244983530440477447624419152133133508238256532022136573509513916526836332754549243289676128973790228537061266912325018606702885265581924487415990779977784212570556663628157490764254516243323740934343661804912628198502522077551340306873214088999257183220726943553690600727004562574746356983236784139940240541875686259720968341724578090361797210738965408876415102177383565745115897725700692107899712483066417607190690960881128947057179333462093793656053461151843044888250125388460850893981855704869305825766804869802214380624539694128982263328604994128637402663481017979600117444623653834689237113733833135247355940741750729974234245739866720766683735097251671356448694837265710901872293263715463023340327820336689298743097729239094113757597800335527325786536964929574211192931288090767546614194647433046696815836839954548904443374741123668427050830575199047532488325960944811637482594509366967785408094504518571108679175315714936474615287686449957357857689050054441908985107144311912379883445660227460157316659601306920171697201585802582730793229852866648404283709655555434616982266194610056432253471233705339719323834198778974883546331911803966966656868630385496165249599779443846988234258178042216383438607236451339857995707001423373848452912925516651291395017426946784732887983652107164811809597562745434542609994148914102775857638553818065360634402731945510870931367135943397861887327592597709272613775190263127964282736923115835810101147942284257099089995107958068355190208267585310363949035454038601643978308126895682443791047125332837143552187174255580374460044062154921207126334000341404175588076429554143623891364708901126197873032281261794701949917769329523210921583862927088187068443376542436084638305614991962777863963627479763215347015594001728751856951047802772738676976172130238360034959505072863150727837263414250524808141487822228230706524749117598849388058896816892574270066441410295284723909817689558034558713115561367460387256374154777019541386542215647418008209942860308247708007235765371274972408628542067131907830512571753793552702829582085761706792598666713503853392161458215291932456519036496724405799053320344945340300597202779287075369551243528777271571855049367326549587682954281317253296473671440703197311424701581036887355257558947154288452259665906225074906827336400984807356218605472784505706377706500359196591057512547353123720174140749764544330064484028070872302008066569908350568583122966962557657020281477263340042969310102387491859063852113302958137851287637421007515982072553775531341211904988429768027395130880721678375846719494571714607241668536458414080899922291808242988667021636343785778576520268071292543429534967403687162580180376909734593680045789211498448707356821272122611626814462676043149497751327577262279862712749968451506939587692080237518725405086403854356904735874372223910785763665171350399243739805773087977168632607402250135706543803110749043468024931860539952944727473317632850343960621006673492209886108447144816067313480403450206363003471542967152287770284812432169239175808524271517281247895939389323569938390675979342885611352994887756694496446555561751135179423919379960228777834871629668027193063137767701798065423302986904619529630364988375993843693699027895263144097964134514438564300105961183014142001674659015366556403941271239088179025683648767592345299436572127922892226382387944946322350528583460106873068265263758715286307327441380333844103774740423231551329974440323990305795699283397142334815750004931175584670007888492897279118042983752358328730466675868066374196505724289005948816984594338765385852776012567752712837080840900682230777957482179034240591447111374759237658700445960700220012004235756134691075388371587437076515548428302696692227801185918291028396787528841618946490080408627959730386952826860842130284924795880219877907738618847950486356822896018080155819549642141046986533790126953552110277381766879255664681081229546720745510500218218675742852029225652343761315820378856534255484977399605812778771901861502440762425676851749954172948968754002528944372581057027133626613202424626082234510925101731399233580471021243567395869522903420861744329925427493639848840254831718016313501204296919036551344573183417804277397362675238739411017427716497777185272644780620527213130438879371221021385488632741733220561953137775083269705891579665678934159384816386985178149595004396615785741872986360405509548388696429322629349302006222340667877069975582965170337063431084886314303747363017166763250577788200945432152818074869691302212772377245642123710019964192663064114377524340395319010430822374489945836354810023591931683879372707830302900738361724302656682699545236127037817732511718120645232587376216981824547340872463902650213494987466509196574517303343326980784929440825698669176965992393496717837978559750401621049675227087848361205685488305726407679776713228331558266635876321960059042407884998675247568760755011061520733878565257980841698612575296657155264228707078852622102835628381756986442982278536650468589197700885476223336744461262972140990333156582785345395860712218555730599871250024249608807212617159313929369853213496855895068048295329118265421047672786854816698588068203010719733473590766040378320463073684538731859702311224265516920074078593108180031731888105300068475157477363912218522778388718107156432306228850467396147928857915794598701646250348465196679856069392485711502070914697302261721929844792160302021799403350374096976010800115109584751730935867803396759466242114765943812820906886476929609171336017230862426478907813645673220552800112910960292291054798466841851811505034914366037967621581718740488210745980166576354745858255780219099591740685938693134361303313085394175177382384492002518209050426445774285077537956034561628250043959660289210834126832511335218923886347966520781256583254146288395097378240148203986700286280445513693199073477782774142494712320898354382528333274590820880620481619166769504430425076887236397562361342750510852298328105447484640718128172372075301986499951054264031153521695095376315619240469471359255063654186377340759914431390618246431380792495632510183941937112866552464043213622569286522975175969507938336278204389113128081856617520175229545525444300153151239590632814974858030080683696463225550349393252519432167995099517251944200945341025247138644555197909635017307280148293668720764872211835526177705695247527812939431836919459306837185962689389176471937822677430509495030487009443950324009992486083269334138427416458179511043395111896996150888683169658523289911811447814518673862712878117578494212201271405171417247391853228928781000806135081525521552478355671961390759799844822775570805829464003804778219353449043269873959631838580246078994529944582761448458921355942899634487831363509095706543706276104312804954348107959143124558268244264417718233005305169451599695654374347954345256462873622640496728224499253701092921456954875787168682069693403718186851641067419067155197954310921147717855695940882737895669584435816531497313989009137319020190900452544257591920309319449152457600131940548578931973406843974474472119719091311063224511075693173008222514614532679908011638290654010025796257758554483103872026641213377540592986868657486899057206517904182364397525760391199304281774401027231583607129981855643596046778628586064033828462946109083794886586588801098764283074825886855725882079869869523308798320251714599499972010704029801830096406344196023988197384109296910402967929324141504932488218315483764137916420415032581975392186664305553911642860826468401393440292158166719617705600706993355370042580248565797279261478962367205364219482404606962778413781836856315281793575432176095618918452289815486699398322003549388374541967012596404695720060637675672255237898829999101613680016128973423415991481022365798180675318150425706514173770180243932737405732090317443259051234012804789814834976874403609820903591869732734531569038692682837902618052247808541797232642657359297682608308665095733657652047266749669450954456496833646718466938595536758524462629189064376713001082234126377007156876843959639417850856493459592203818218272687856932234019266059560975063259293228897580205283730094901287598005190153969461954687677163695336129961869252407356853161763794515271852787052477278464430902829648790684092233917784915346069214695423006021295746995643615943103207351702100998884275955734906587474005623747454159990632181343776661558682565575081043095192404228848004642517138876797377204923079206001037729386940234900529966062633819580346768341160291920695462527711280945184154021898492947032047676113419262130537968963902358968448820427248363237674382468266412500598155168872027239715270800416155228186438667112976278090045063561913877458882058746039728072599989314527774631184958492546789032611448742173825867373420128338613425203541479858509640529069416554427757310228152942430924152623421075178968286883973486273342444224485218798773362145807582111944289517363328612382786881069364900883365903688126480842541294569794620910884967666332619535395360013579521962364833456908233451306894209374483129246084566464642567026950968322951249665293196946437414392940284628015335354843490648076856989201035988437725483719300050396645353716797244339412544634258716195050538606486823677511886266362880580331531103450548699423604262313466193767609363923579406176308743796714969034209774322786824016610954596891376785500416193865925929971171660871557297138504000745396190895425080227637124252711033500205275606963816104622709356548416090986101428036664682268761392030784794852409565016580014077479431250300792073960111257988660861099979736991858590663005219947466246688123889194068399363621428685051324411498662694771430010717832568534637507289330621901582695696684200417328324029383525416698821182700222609259305147612862767686316392349197810289508910211510787949491708613433680831662648842450893789866567834824270459745889577869643621967719656529738128605718206750809622324606562446366520813257813285055070425348501171943582502450435706243856311104586478828371037614319178407051921093492182702401262622059564921701227950998243890148268609403703746150347975077301826855025909508839347499298121096366490394388356433965570725564630797354672141717588572692485286128445888786500388695442146327582443620753046856069741031663668867455514449901847443564379248561908494676299915620083035851879204751986322164586309568331803778427077831194610889003873659606328980655689143267927505627423730619741335411329970986061955372586267376472301988371865652948858877657808128948795582665857325363955190788317183489581804271901276340405147770538397920127407760646879742871250218754616901820891364492276643346496498766795616660897048003069084822651398471920102024420088659994482464969118010116348730855292280926775175551201428219719053398376694827055565171458585706856188358119553826620328609661552599106621116670056091187520025639279564510487106112438534575297802459061299982491906826342671281929358667861721960735024311287276825825987969741475692984710786921747101994760554609007782782491428636606113526164211368654773717824733902802596019258189829919282957698786449287963838024300308961641606998290632496453045248470290951855321116475360626981511919113429433210979068707083033364089883848045744963813207976412914465254831086491473409831668299631650942615201750001402704463398504977184341646137403331469857538669312713551662395507288801618977922411492801774898932607125045177678393353420171733548263689347461019507097684583212757621544026345812760515310797949250699529697615806899331806842691866553119612410310426709398764285229812122381864796146214710659584266050149362511766112108080619748190965259070425665271688075148995164578128923197798580746153339490758082365011465795119070104384011076635052723455595755354339455255578217547789665312671992685893488134517850859457741425037474928649465039031153979153795671447138690490424768740998180106923593799605107664384894469704554090788476326544653640399116266604142854079002208940736399984439566613229636854909406020080813181044479539212779486346615322864552060333914560694010542835368760140239696056200522992807545327233402461518054174634550998507400685049298314957585271303954049217673790607701364538696746805077875732127676050211423521832374907845844873058106077515872428882600990589364745836051832032348651076188508456936723023925969731535667479365418721486200676466892687415479178440041360113622074239212834946468852345149639539187448820114056616532271422915152403641136045257948582224443538641916704279942822869732130037104458142620625112919070014639540794815420758086914058427598523129331891135939169089625057055400293442359870111854511290351473257866505368601389883451654578087487408059377817468761226141164357172035257286925503696306780966428624391098999423861094927609104249907110853195251084332140017698674242146391119542763753396405957364017971079230951892719141882281530827907373601443247779003999633066050574542012271677420029240582754427483230072922832797287792558474145607690169517909743071757649775530713740342650844076823712850675204059361723237571730197190358716256987680971759688095294494428384045802267128725920547807004437316323590524234870101167675741081630969227603202884489366664557488824235665261829950978173172878975879654134396540069933641234186599330333635405652653600728185191338172620422066096984895937171412500700073079893241312808505895543393828836051365667369239589968276749167667730114330378572122032611043383685163940476602379440473242356504214489096806774536421927164711740199538292095734212200260563814577649736520042968129613132557216715535595338536439186610971568871829881095863425620072024839904301894016756839848887112544644561784104403134010425500310438572867146222513862126541832103114041893518306370233434911888039873341927049434612119138064044937053116225884812107440308872434334119662282285416847010645093669324271819634597141584927855678690036356044764934124705258988980293435769255215661146625794643890028784788165432018526154028654028462858478072510006211415638738009084014066184108942356775324940751923891418791536487646552286545916238901414920391723416613761358928724031532898030268680728988068078429740866554731263832227534718944956127684203984944121163039749610810481772016953725889015941445069205955678929850408206552781078703712216647434851594610596955845409627896076704517325042667538974569364924531030037663003325208024070033445548703846864122692663120707453906616532598329837844161395933185572908606030506813017594663387131578111966578506255923902904083553759025639624932838127127755441160798020630007635479854481909658279796502315270088264124296797716016445660800767138275360984783540795007371305162436224924757056345988136291370317763042271207342481775452555712427182240484593002845438816310725039568316493515405216425895574487268040030470310127531549236885214961505682440680413953387820279086744215726757374753488362546621144462985754005329062578118516864423160633017938278087473949851711669623170366465253259605613733399999857868025572649283965580628992063807843684426831604621194852947943188604255128227317993324231715455128355640239612335421371275770839355618520367582516544280720750052677794276405233560105387130774678767636550197517874304909172094662718075121460573469232195220723698775171860223589116463308256905872484325799975934148129296708033493091881074237227988785261419694115477901304368817734773457049576383379513622946751084361631546847618048380530773431962948897980105117330078227158533209418589180412437876909907327865780267834800463362540876405682489535904639991050429861244213235430586477184259546938759332513464850412175682092637819559244234749768749956292216982186561030713999501868340093194716516188853776288091950613962545576595302289067026591025335966324134069834746154536894425139912148635786445936236483583118930852271327627989125846990752309680422888390676582775361781769998919928932280500644023706234834276943147752522255802627989143898246166259164679309586988648692020139849781048475829881079803310629911402955564617060262918890403857225105570937583569892451398780812005773105723885286890002114506168245403345479080382532665626420157225723275605309071438339565315589119749354138376268716649170928063769804001490451057227641767955407574825785085168642388505935603297200297547400765782566660576258631453595104088948757516704688531646543116536422816574459315785018719363745974052951728054795402370317096364025495805984798282759315169362166729791357539566229559915686800235943624103421091948373755863661674256841564003394012954536365501350038639608592029488384523038750325623318948069181080391738048534035349273989893123901825780579401970377747766525781395243678830737166219290975774412934397716258805586716848753475032876918700912874077476748391244383005044632683357284004013200258043343840565524291186285994523154711230357483316937978704555409250466694718705226289355382746629597079913611606147329564792007865609706529652043084443721055432706751141198141753125989825760688991033586883329310041371103541570638042168442955809518319548317436477590597443962204739464289598285497395920083650701635450462577015501067198396144695121480740541495012797579430850349983829939633517613986306185428381643179054621546933202358294294292663502374741843906085427326321925054806164976839187025934061768993106561550479944899481226903072382746099444878272599764344958617911221018692140013278896544833952066620982188382986591990172374052605596829987438313996901247210827080227308525853474030633799737917761577894755093932242517204119720239143923143552236646882081372859031223671885489198015618373576966538506593286518451873414194847868121639048213647715625491053771685026096434722592677929539935303713452822058887433795843658432745565372415726214661316069028412348017461936409388292553560518147361062227766848943333855838267514888191036901234570977682385932638552681628350320334796101000508922148789780446782297767375290574441015287741624148384614787367328726741654702850280222881121689208517686299765345241934186273650114603059359943417521976595816418913306652932863366457331274843605374132121478799832728051953001248528724925331291090619403920205315715577547960479770552284593710672236667946922788750506100961825997948042226486643749163609591792216632142605222693510170200266225992668464403134754802379736701483772683545106981953242445583472374960539243079441274760608238628661405115531091142170734938356777502518300791209519761838952176208933870835631853291115170310382803480182264887106195837378098491451050437018969472325411746454053167083188719949797031422888561935756477666039531242542154532901479981926009800459078969883750123135807938494436982436538008860818406957094224070182164229419046816536520451533499846159591031546413469497582032606690471472858856652886745719689778957364352281412040090260539957082390439120511894681065747192529537535105126173731555456283787939548185612109079948513059878003791905722411422627687374859168049508405064273045576735219662145293546863963348400619799799897973502963686856807884997729220477363170325693127831266294347463759222016382124970843320145364637181116452917527615719283932300060902394590547988512872170061755483441250956070215011287636369469017895585133097959906204406865073075482086167327762568249684458559679352005416759174311752713815069811811263226568942735680008654764253721047903615272800159494100278960580239588268805706830007330272477509644236520392014364422816305057125854579733740615715535196468787440815557383685698077317951420967821609387187423132201549824120455237516964609131735668128290043275126597978972245684202304676407832073744845998075705137609874660645438802990279168558861402240845704139911848163764626352997671338794167394015509745208684295711646981405951628153169706139060585747815123504495347368345365378286130117820595443125358206603436667955467627146477302333787859146863770625462089105247897794173773196566037943180996549883015742427543854149475875136541305980273767711989693677466938291077663520718715689241278544684214691151426061164984544688709312591684975494839539128901355855550994844294638546084041957150616342697154700332339218034521064362578914961331505393939969257454287227327967004866784291744366478038053836738817142990232631169719026518861456065836368330508164044904777762080556940451815817456498927113772364978578483615823189998913134841602853381275922088881304786486170727984747606104105453133686894520827858866211265220505258498454366493356788611850742376970816371796308631775621666533347043579737829832904537273110794094266117581720687783600973167175510594713593312351668879533294967853190267354851692184431262920593257870379632950200528604000096616872655759679895025232452520046034071200770921653088966238981902951469171878242169243362402438246714522113152630053286279136412697228944220563068168813856446623787677135926094094139566408828620049020541649278868880309877132126996834503986544730978797550458814376150348135319517044544241266366260113071426509143561570156611893139262159064905317961935716089371016430831560974538698393888881025216424736286161266723153537667458406116609979707363305056806632541159906036234448826784377893496576346640707648893635787965495097506580221806169409292236558723127705722817679535543327357843363442321090995443586928903945756593947927333907800047195129360435694482505299399700845332690019436381836002801859394492564324351924323524063362349546619971827461109601202945458819986277598409409809183078903655891500645500220539895450043510796102684916843545552180931801983932422910985290277926326327603217815720999249027434048818712067381810335522576762674997935743940455710655831695951821621454778459259172065530194618578260566713483694248334534272808229658942658196400593956420016053796733026842763339949351332858496855538794383228789814433866010494722660523374557648636548869487886852071949473893361582425709635465098668051528379799618902572057485788958823811343919310139230068367818673603721309151269245539567070990831578631887721810688856770772443356437867062667840207818457395388709682676720380404813322281282231184076178650230140810341204945237132327185763411958080082923852093642431312189951883136514921655059240208010235723457610747677090068784463251114846110821382842918014440779859742156888391467762227222163786138703301537980556499465831287477880450730923744941305472673290774769533232129788825909470682625261298210348643538233595766245348523167359576666178721782248909107002314938811573063746829864997517755373459052858835774036318132812186388827244286018938555553808249305854984387091593175898542816016392104404258819484882482613526164145114988513468554743910982000420581643134707566919080626148096329128069456194098002352354864556112460225941650233403352035113165009095506310738098364653655722725013383380222535391951475331757686213710744521731532708791403297530042299920377415419269829840580054481008337157410923248864545990329934710927071281116322260747514183235840818287450815436306364412918670033768764753709170320683757163019738614304738117042992142879672605129632510875607418235861764064300638892526791465600429633171947707277015394439497239135368672339530637707936743012197856476770772956402410496808259881903502710452027304661308528848008392361423667571950228337460173653708463252710251877515376330666874272598876141373062949082143189975920103953333950442994899341006461012590143385426090760753971541695064150362338944028000736253129649013502799405018660439435489320468870506587936093217731992122169171818150637635634395840423636961029029634117930477925422889865574366403673680990217202789858124765756157938446799245403484919442882423419364960030874698374511404055630211337967007942570200191806646128976519110221860926085029622776686046088000491234310926204004513034251451175088517871088829958534762269991125623588392538910603582545187950737605307234488834436763280375695811531172163662319058831647223565050155369339947599001185561297407710432558190627456576048356734353130770058861222136237552037255654978695409847165612438008830116890764063449723080556251323296886047078869241195025080328937166877101675321428740179131908069366645015928960228437264227962010646779533489217504605359866327348547188360906216408936322034713915787202452747276880487047854698276190912070828702070903915638837232122967077235155484239536583117136869156151370079126975935190054169035945742075377701100342514787720097985148111321863368883257499678560753994398728092624287644890275640892152789248893841684837172937862812713047060780514134485067452644198875122959337988270480987435190524975885524967031409109863430534993783847619605244985794216030683743084929329548012040456815758263289849890099984585242598337777571589673092583407221831979605739853634393358886298897837242080868034436291785500471678566716060548979161402343489265359406927501332770854115842014324318632383201306070155454907984742382150304642501725241262671947488825858238907925647439241843611608171378762566623845361026529718134327249579390500045732626657330226926467397369318896511734917964343612717122127517570205903257720214489207149297811187129647740871411919269816004487146532982591511647558950483128226085233040047577766390630663822032398243206692396087058228792987707530723894198430145659596501935448567095801892629724691470721174369351335794837935779375047808347113734904895578510528836580344549482430779572161197324247526166490364560060017008899654467668433576735183153709821893265436172634007706419978065935987425112282867351987033170216968920153041282074551115713592884646215147158637231432100740927238828826775433381657618110625857794078056725065797798142952512339128504077447733835188325593202297436443565057606403544646065494593146719093818819802087236307895235137980304880546608439959303683804819918436964268263700302216449835210617922210531918818868099839545523767775249734199539863472407654443860186572233847955274047850737029552467935674244149492612638050608975927610913604476280792932319227250403057927110907667590066539708157618569643429366132271228046287751388171126419633400176384876971082267410140294524139238716178211471176592205661014179501905189316431721590852797886766252092717647797574435819138697840186229484533734461964043997479151855184898939479422732386599021650145758755671272652195440539454312247323122305092226571779827539991941002741272557839197900543915368559561477206335287365825828691804750768294341846819347922205431096298743884118476055695848637519772865076697243130515400365674881972053822265507772311057084566574468866729474973017501703372635792764584441309461889054122295569257514502759768492790015997092562675589588505057978401254545814552281028440561612217614311638277692791146163732859243378765846270735461534627610095747006693637722705964708455548217080889676261464096108543137997685931495390535463717878528626564982123808084179515112944132594902059166443165566465251838272573562922627199481578093506468861503981547747208292546120859314346967579797157274237949196093723903124543026812724823026073805276671910840000966321109775545773704472193921228656136487299074325170554015150402101701607417851168317681840296004955581032678016573404139534658596428932802904572481315844578440217359052249722504496793518933160249975854593759110321595213430249881944388324539973128887571057658052843014543332598802058498228329707638489086791546172539355002780584453967385919473927690607288065587227899217698263539569955193032713308774336180510415453380766047374755880036379951501914991987358436051537163862262448930791766481107848415877668920073142084564855915357563449797736859734879136993401042622847156349826391689750949426529312715631116567059779773799720806130325116019186380403323328441568526414031025988473937875369429171892884153756676251099273397350748020120707626374615582916476132916653033628296779296945276876497512443017522340020512971048185631896348127209176335485305226224370871336836987103779879070229727791993101660105108087622708139357261725667524538402842762645507520195059043535496479568182502805331316806686212410637487376015686709548417572275676936035563144769718065259361116348949058138265203904445923797145679075443590183767452089379486491780132950742062797594412005000742240363151595552243869392472764275405362444312572401165000136671508675844288725252547026327442536892772161004355556257250403274276369812833672206745368130516755680275973713371966695766062757573349712801322945049060303327582154009562071877537717343420499046172284673757597670454970648417257431375533217508768640853536881048085531452358364940230790391411574490841984815601827790967590213314057102435877193247153657495791902647295216941229052308349989741263229445775273053444086340630292870184900938884492817348952308659732991797609745085586421067800485299162613433599233474195467435981727385691292614574375803794526207114679296754854475240522240829163747721816842499159847641885815917075136691858635533918694570246821529649603632434297117951907180138426255979032926170141900427222051598474523887256877934729703846438798750500236578954734423674322318914682456281581942531259457098063570415160106013419038472217745419584983922796404681167646556914909642760138914581165116711063465805251864068502346694098836021243539296489820963946175970026180104137924597503405480751432350806809361616070729619351387523531262431313019451591925282990737877735527633197482032259981117003931432494904658107764107243035174615592687186804877457492051024642724449755992439819390403966883289972755719946212724200084210381570180922725391458065886386439260528916694036056864850438734269832523936382603964435877494245790247823492443928884045310573374266464272081569445260076342137741356964686754499338590153846587502155911619307697609923308107818341118104268361769042677048559371495670426155158886448940268646066107671708840765795758043744929015282094482975622418987672070827719893982167263839830202873860662437157082690718846791660487262982155183514215746649377742482249824914700682975984406942224628439940685280957447955215512939843116311275482018945169481979636558885043018181647070054868084586910342078704646642849729030993489219517087199843595935888348948830552653929984330778713473540407215197200467397583046543222971584610541035143655804501512991016926336470031298714585825492651130851863468975581627718882939011658361592476761571196492524489586934551704570820684181299477085696843922659115431702693880457441215523014372564211111530640813575119665760563712400738332789940743758411764582520662205505457321451751028123636858617086527861880634576913057444022464735567694076090515828230885523276482665127259764535879009018966880915155188771772953125090722188785271346473121578370397354182867428676978904909991911104415512118054009305668069751713292703014761236989419105681563000542054237032963919531102889908433321701037829553111679519656227767597295881934475763134723255893459419309228970394130067574924906229161678954778853957766090180526889143586528380185526106027243513294161119748866702640823459377012345330696554928751315401198272032467265929636633099338436449257465078789146802033563354176849187281170342414743807761169439038270001245780964678689191336416698834038362733590872972758691265712119782012319877308585322692236619197731239268000216409238634014166235698456239657326220923647202605892183846747048722719873489211385232119242624623212628770186925254623063780132181968443387434914663416002440361954290709425429639237271448486674831484795373960502010413042945744647250631177746370294925311501825568796678362326507939655045927589753216990789390467656404804228151484120317387564380655123438594232117676737552963898126831860641661810647889501740748733915584384279768379921513002165799599953192599251021978855679509187061870299990519549894047926183293566119029484644684020537538162764309149271323314685115461282702370626200569367913663562813501754778225850490669742534020962423636642341541252632060494203276059138715293697630664244785108703536866475659193499732087649914036936784604580066182904035637880177370659459673708573028201313416436898009755038199635584544957806762517879864387959746775680044064992147894641949880962698227913494583219436051644892177795633000776619460892573820172643959894018331301791132505792735411693053126776593303435412448268165098024374053910956928963628427815046044586862230418567202172965960826684439442513624164967085614428050471387503477461733379234414028633360709153493960010428103823893007810295875884877950425926180041936656364913634662053281188981575728677221183534657390804715100642123845044737270514182641369000573118415772111577116759340018035107116933942122169093183682820590012129315652868310420636194268083516086082432200543408512333659574123376311801461827252912875609953736846009389220797567786649851437978575643675072753584098960106242230334841972983652431156113013397538113188684153870019276739840143395478463308867690718240842093092254306876148014198734366578082701203159155962342386866637233537576804337341407488914713105656931968493285530684343685506708145005133814675404882061811900406682961979919473665809228715493366066903694189812111423470551751829913025844652486268799838913195191441915933873171692203735633439884701780238212642350737144624084997003519939978990333513712951394001090970746997056824802738154854155887222472453865443801079529146236369028886263601603550289190438296555746819497579157021730231279899935130990420154013853599972039973303465248539356032877871110534534100971723269681244762657183806593365129737610972261648212100293296730420352832008870940445877687517234185525361427062110648253995610091322653808413686213643525155617953960750276175439124351768484925858560044679195073499219869495151156836690067851477052864175455912844689236188110246866815102683845331649676962428412070357280925381014656573194917495516344961417101781736918790098580955465348559103648183856074930542938433009765256179774532516806632976518079894604914677952414645771880178805859620574943176555397524908902987058473439699942570190332390984616875084804142516660042909247852000204724802898117280444988465500354616816140979582059692472572462123764862976436064714542597041043112806110983704069886101055419278490745400005037162928446099880546114863577669481072225713972392869259295858811851125050571054240602358218280733052894709157816529757348886623672065726807388112207480155248837724130715193941418442853780111911084931497685063354346601031000703226403681921674739781730365601337949649698140867829218923062589607316891853892192911449380515980854747385306023692286492776493254369953828807647881496831812982344862064071302261043107140157618059031019052607030384636131995471053118215056482047781707195799498332422895386471389152078520867193378010962117385999591405603354076339288449555984114481986606643307624440855634589860385444015012470065819301266942787405760563714859406829356689877934125998126449451316681315329031114985057538007497204954441584260528348298935665177494806685181243992773909246732658299864981844170942427295075219244573630506897224865847557638214101052758944214559768633035462892998990746885076255786457855525245371139070089431695761415572385428319919821200886732272180224820198563162095364700955060486110897206298192386290026740191779208221622750788784450897879201020958378646053751446004362531621019814136540481368940666372676454202309935776230423249770371252095017537773451945178178628678755570973369624870098033082378571868849667357195657271918520602128456664922579484788787981441160122181220035738679074699014980173740901919143604883212835005017978598059600071938302109174229298718299197703851003756212757006462745020452468219721165675324750321127568388944822892227310163364796889240187340636860012549084817941291119649234456009908797183952176690215239911772428740561823149065311923045287756013058010523756643445948962007199748072124752470356165072983541585340203413800862542615040616608863548099755400305688014994894923620120675148706798347007168697286686016124179472780514286142111045260405890511082952417577793167369597636161952171384668897876883993333999737903015709272524795198370715585081009575980822863119129148113115329961032189695309220371462369614878651425546210627409525891282864222719684762474223440952698925396888420906307288560016165655945907871920060137855274755866854100028724767016781869382075932278599883906354699339054256377552392057003132920999434675290067372871826537162565336824433138083967140355628961282190848368133144999999195451931847933219642134236550311424159128879873113528935908458101558651895534150818553161753011822891464401096374307572308674682393643818983615071073045939654664000346981090358650113828106694756204150759589568466389253481503374815960414326354100448246188600659919244856995543407849264040369760461868476673605788953901629050695550845293300746742042196638423549985542092878497999359925440590524717940809154677810396931552200208159552864680837652759625551364245315249881752419454001693778774676766612900750830598126603097371306266015913833571304141206896984454271500331847450280553113391196458568605836091338276384242595756715539682977952643557096462123360781473030039971973736379484619392342215896592324236594479719910646002978462347501623500263117186939166147481785766481147193467562211129700965376478951795097993691210697206836775631742432068780964900867355118453851109380538212803425009313523594745841929448127245048481311612311437923679897365427818616082053469077148806558054349760898435953500112927209608883570828317178357070955044340653491827647330203894462592650157545056683533330253785892792723385650053645172748051957451797723229328638959284244473637305699251251867886087044942981864541798841687353360316011612275682505107890192807017018940042689338701986411978585971882954268228070442364376015077298680795571929931848736696810198320630577732694952571281812178716820558777732773865245402365216385238473423632925923063257148334815971967285109656162969615347341630600968303335485190259145729568005995542270349385894822006799845697125585036506802694624167582967529435087491468849075728983694831438798477951839658115518264342863040253397688314386335105185900061411698574293286643064336005420787780669389632938447609249474073986766305086299477198155160297391920070471953369129231426904356031082060392739094267429053478895188391809596063973742144236835551525271172718577146325797931450684210541146366113929146537919401318416665898394341547954842042688832290472191186648638757329299511540539111970799536032939387900982076049351744236962098557885620979128779342854117572409073185325513355283070400315458580873904268249519122017411764655723632511137553462166787512880053794337179919373442895080334846783543311739546127379080113321962692032537198711835692414641640488616453863777839748303962337809871495365472042320357005548264231236976998023181161054237667823647947171189506612671540985380414564870291069689400685191412557907448794021756758676877376151208534988365930405080058166736015089813428385241394766032784542398309283958716616534661707235224521871832339884633789544732978171227192092760743199160903066834289177961510354595129803147257212416407141005532623216638864519297518177581349234529005116918399951200424550615188319320019318623244069744081813876048122244277090393549341478584662448224170070118620604162253387285971649553405341275966270412794226478822004776435376997285499359064096418500118170024325644565545580735459247977879824060274554041045585965210575434472165600895910562273677816812167411242300568130529553422804282826536469612927716395898391041159530575007762289531697681563708925780009692271265238706526361068547308729875259421209886648069029633709467905133650271074738292877074530538162760280731046398245209290369870780006844963340536726057095511041214812742322343941299339137248626197847698062708231269273293408463351020813283288290136646541989698317616487284473876002657675262617963939524180917537222670656598701304030696875203600004668653196289569124306702734136240969798442606267686022728771348495591705682255199499954485553029911170148444280060280779218427859088622329151613474149013971157202113720197440956969921455340021893858236206176383473391071291538385645267158589229666800135321807708509936710398058371273108911254591143066137099436905005567911602799281160786471645707944255936061419526551460465273389840725423931729727387776970494249848532153020286185444277304626910907911422625888269881561769847961913304703692286378333766735450326791113234785258994764637402175256907504307968660377841218039439804393994516622403214307075569247340597161612565657033035826524758660119998987820140864758909527012803901154096117842432388930670512883353518469541354296056550523710349348198331914072872243409067020133635257526347133222299128186961757746681416676183702909688730590975556208733313555284215208835386238023752905356865108395363801922269601273268738263355872116894620998792224903867337267317022048839184811245504664574126906267699697319089414746513724962981830360324005125584305732382281907891703571867005006532846771874950789109840892890482700294655977392983973607072587135700117855169229070544786055657292088864188737670429239551583642913355525836985550815284461989382862285602299698846928835965884696581638649277944768287451791330462692126754394518457132330605657187506038245157413846533871333406087981754670789315880227712339249436720888718965430951596019611327560024952638784320612974315000809291354245835685247747892619310867008161240912281303132247159643285127769770091686681389254486215164986615323672543720825082025626348596663449771176462025991876154811988036744773533441220555216474093695358837400293283536973238429658041636717377406982187183332219359743491691038215782847223685392114504680859987931290536532726061453871101365167100366284707132489047695373053965875438330086727080533078142883913570067422333909828522051923712005682349912922935160148032154246543333718646379912519178384352238313633846657812758726127773336371613730453623331692527302695074205567853123865043378390470594885401188445701263377800812077596701815824547823864148082518575255300006227336056091510864618829012514132736019724367967361106374201150202934510078608918552960593258392539143847053770408626331186339253042822017819260589907211317819334018427117327643955441153162524585353536311831943540584119595609210341405131090706586188235111259375085599493263420013582035169645359222520351445264658605227620994278363121673948079405552617507343357606323934157947364970000677577096452724991684286390090068230446948786233729445872907291549675659215204272584690557630595645781746348951638659998458359566110601746068516969899475372105850752218216577588663532567300692717222373446696232564318979993375536751533000865859241972032481300193810367521112501479425995228131116897339463950495786756458903914363899148004419886495816355302641196318827351896160679660194806151902623432581924748738373304681502692762452245696908010002425041035908985217078316469207192643169790232940734021225723260876304809669641609826465433556122602987688547674579720065849027590972244147868655862144516688170665356258970534656164189374118839480954188150560327213334585197072068886257218949624715820577684077075158036188667769376854958040945657675343054080430292510643712841058048367559664269423503728654460753865081073541337292824354355234260655964063362035580973656323681235400222446783413678197572418533426359101468064982631423821800866370368297574405275855043575416549161326960734530434619003856847557708010553006309724469921119741455630423341766903018312168109324423411786387415449380419647837252308647714695888321323080155903850317873152268925354796415254649783133972941093721255176286121082073632930635929415704980184727498442707870948954445877453444226924723892001283219572747891652070455884725085269955953656014294828245934062098816812573541032885178666969872844350002394876792451904826160932370090520432344272621616967282749545077718300758328950658347401404174904573114409112363354785550748134005337572297045891656026242223560362343363650566296723930627266696645129363419139786145162791965624896457431090096977363959440118779011918358430659013330720051635727116809097884596214978967507115030756106525918406209033378489870703870289002555541928300370578468448542649080551545708117659498796813620543141174596999057082978135677994899786210894793491395150393671022325018766614863586729140755443485721020759160314717999529696123462345623036347482246007614878477923224331474847671158021356694473939070084119887978491452540582339860276618863999940702755083495768917432183925310958083019857236856569674379700916384558949368484749461545397977724963647324809499668188761858471227931964877651295692581087359982423855873634971725718384473764275160923026702928664431711438621721001455943678962344850821811169995998085979467574516682335452007865880150009089141163868534281209583510868404553281836422901233210630687136824211309512864180347524172920181508891958830202464318670625996901391633908580339013562338187579678903115611981272660440864222394964782339884544955421920923531610631998405929191120612655662037827467137632158149049029610175572721066524104893347742228090557830434275123379545901891675150070051316702664725098997896022708726142067073733513373091978645575800620454380127141901895105492458890671730098042420082760244030251729823431594028865911083801055424391022320648323651106745318356079632450496794273315266292384183243332762004763938111925154336531531773244786048982198583313935182797219671055889663998221626736783286941023022970385419051201466964879518090823889882984360726911766994084594519357010974071203664789819011051238708463603846804058899360891932817622639993258017884143358820402766860464786910240263784172091997575990634936845953868601424083520773129725058983524267344250316347575858481918550768975153074843346287555186882429317788661637151731781071327729716111425867931132576857112727829866190944663280093621379480201658272286751182297031583319974090669460040226501118482277435686818960203169354386675952745869237638687486382229892939787536191873858289540165714338062257263939955310644574556180089360840246618926149176205297197136696175304179633280704793993029217291211708281653307867083373943656556518576710246065790746992187441225617103971262520884790481017714316558700312244133415058321769540697660145168924549984242270010665387901235499588842728200146431242133060994227694748164597408696660505107860388673883319244666213461252181092269802755858535597949000803250483598909853679358820880807882488972864907781613957424192569486069676567855693940498885518415615489513177918825741153927227132544470710926219536069484205583429539855749601586597493137396000361898485669004821254084938895658452643934326816433233834219886286468354529949796532174403501142583020548876352035780025852764308764009201241408343831597767216952072672801345354434396426999677034463894089120413266819304215149015066729178285880039583657276925135675952994702733626709744858346517395870018798118197315694035266416466649037791559102908833998228267017829577804606095127961799147541195070516979459901566066929762525895821687117929576514254742101720709901119943049038600567241643413816865133497165547912693038850809638574782515993791737410348050817430048076235479801786703990259014598779282649748762496658972945246317821833019584595736657156318519421730344825390006481094560629051257954220553273908997772480120386909477402271587230205744130496622982902748534790566996406675770172541898980630293957198489787619185478281129931305822203453725099429431701519049737534496901948500772666803730181420905037037610616847189982632465810444923932518945567489154020319783327677248238086805525403357763562518760182496407888703650615204458529381799692077676393860435688710972320055281150486926351560747347547549137084208425917922635982098380975840061032805096018371931005444565901574611876589706883085986397251368194778142887140170838086036405188110880760465086185412137554568215171789749401266681001485155437444209793818847560088911189214042976083536948829864442770540283792186623750291020712628307343553246993453103109771108848231479478104447657743764017737267619655529641055655533876829939394223164049685819173966789717102691792031332904205637723564567078186979539621526601963312201752272726587961977245453436752564311701988168916644388031600513149467903882833574725225386584461432804151382115354524478837039972605246508553801401358667264689118417484709153761784447491303837874014376295729561514680695572427696275899952069663477384117308644013091861846938748490228427059114163283335518947126244714223449439355526940217740031374562962768917146901138293400765835939279927698560137468288671461419099593449556257959612294488241512716000811430516444417819299730541694636128163950029184505741488028483118435523776677339785953087534371170756617401531646986581732466511635058045087066693583534727158090307173436342930396840343350386410630783765964645146048098272626814465238530480771492453063506344595644886069892114632337781584089351574775395891985343585366195168063560090234198657562274311262039849826096393280564594834621425654082841207312959558605221697539372363478545794328044524280577164579141700153944606831550160926426882071227619259906330079937300796349289018069032852063275124977210029693316855667529392879836171007194910643073385674224443028912146005726161081865685797449922584727319519122322970795843040766323514749530864308465073749302041945710899118789627536127138629156213771975422658099472477765932557777444215339142794307457306297217027892043480283530782710462830465313417369789774251105970849631879208841273656699479812612320887174369497640904932556436656328504695926595096109032474835886265645220490699840952129645609070606261702317209957219626580293338378607197334521963149586683143880824736815723821501026935823208913779251671759064290525657128154418922694585941656413823326600749633766349209117907735956537559414109604276696667428216083017999828955140367266256254051727540584964929589947100346252821976866764482980278139087349251367838293447054824790140273590747369714075777177527983638633487923686408659233318468938306214166682003321611867208604908424346270326389515642157808531024265450538034703035925405816197825360200103008161283186010369674515183067410769876366610798440298747546677712042819187329919378644362991977591163854968483402047358957058869685247451792281772336774474332836659075852718598838969500087610547027822191692252251438456106115669283874919263068568593946832244114287021111422772799512665488824735597530916232217812443623711060068421309537725594192311052617081913144564878975984089922976977014366811665035307593473341771711385161964396776397248168132197647185461864108580199569760301828057614792166619565744675201464888749635537783250546242709657208217965540656955311536957907856694285953264965731716250557854041472479813493735653694501756000093163378581613318489966185311226442189381185907212855008341060823416276809218269649833356721220137995138257747975431132381486790822556733093236157544179829439386543455367028867256515010399813314344338171036370081643451024711773960647624747683554526472429910563373091520515371649521240718401105227564952937023725398124730681332060986333900247217616304133154647728030950304531084492315041707738237229888447437778661149110636797546676499991155079417327589161526956788114222235577693180601151450221031668241026885981789408634711272936347580589671930148122194007552353274156218936856534713207278738120814860253510148551848895197368863481846970101164878283187541173066358637816206013372263382257815309717727211420924635791348640594276664433275229813628392435570596528270279011998250732198615537612894566638808665404373841335378783107095034388274470581804072177664447760502072720205432558241923241700984378041557389648511399115874614469726380973882005625726995699049232921603879353043638788327146937810296824407654096946351731728620085719831118567011617905785645478114263933302008332455543193247078946395222845629677788338446158995729297638051988549062993399348872202929659525919023226789147864218873629390202628273942909041538326940684511941814841243979972655192538458774048508483996637166931945647159818493339207857865403067713589356795338771480803649360184789229048548083454639624294300846026953062517337417555482477741481686542570930748123475034853177256066813217972056645835724476273815690838373272997551500232956177968990339569644541705543606328610297164886301517318014700407278156610979409621342414851401374922885098727558079183696076139534956669959404576939999993268354522718087148986065503969899912382947379034758461630265968374453415367809377203780554116540505758789168428077383046205838431719834096585389189312652872441158352277804971115248680978141863461303453394146926083634159418405605714683210754780435362892075582853018003972119702883854315873661599629695661808104958411298948282110224781211406259399281193888690916711349875121113082089839760644076965985049201291294682174777859395235321882014103915791334196427770870059844823763735323392376864265043238163116261963125265972866508789910137348054852060542277341626691993132047853216524469416533655340782671946621295711686506392021164839945564701348528172409473982607195524877147856466925281919056667345623867816689662905251179414358932124575215098326095832725273715500963116031655524468502127576731979681818319540342226333758228229974341727043005092488935155820096325777956975181159998013312342085212174257227812052316057480803729835373255359413106316067678011225940320727274242304209058164394796480561604485505114713626132305480624696328862756504752148338503942709900028028708781343818415469145471741351518399260450919711119154102428658572664586808684538157924692802246516988862582090621061725321642763931373951595067049965863261063524726556160823785121790856284098735076618062372064197072138502274628263467446965345872094228747052385873334933780787441919015151488713845803568241522712685170347002825192313208077138546525580989135932015857580522856478339489063844645065508554547829883000385837165184379434462624277715218630323413155808540543964342276610433635719554433975058458676246636496056333770452804473165162448130980609951759565356964194938155737923507100496160276187965524585186334032751295919213275638588211350073417617603660654220080705667640660745134537805533056363953674504926071117727766156978680375165634937081186343115371775419062901881675116071891860008339692687556972804101332471519054675739108253417150732792888725036853461768484138222885178135083273310433294928176520138452652512133238672824443339895688105392519298205695796167298365743751674065457576057090072687959565175622445929354461775521603095388647550510012296286949858967640256283822910370131768593817238511458522879920550589713832352906485508445658384575563149353040637773049249691531727826622928041579000285795846594265513759321695284422617447407968742346651830914259715757239596932452437025117324551598426404137547007066860224631412515726578393852931770525403778037360552814760351358653070048541958220342638015301726804446907684329046514977701325774327243094269486224390672592151489660438368265583168932683134601119716775328727815319255852723971797989251648619805189696460594929838948310558784336335532312969301100207952016113935490815001148410871987340619148240316187507629055784950978981489504591279510480556485957386351246314450292529503092663421089038003012460358236012141682472967976641773023406407091793259085900957214916696973632491562904679196369797049287288158202719625348441774474961771532912219250155735060841348252033359977848417489627249023273081004410199481833682834544318617814163199980938445597143654318558199323025996294933517340362156504264577307409481181085067731546396866806642487179680830130796053477007508412953623436865890020838568084396815928290419032764130004015184554465466066644509604319112905474183274211824573191250428789969914856887386878557157257363744954984483957872138273007604614778013960999543940047944905262980318213535568679598867207261654860485915766253053415118505761306421808373007899202621911815530061468093719073702157515973422548866249710840201646172025362693681686912063593095049081827940615227202573434218629471980688855663830516645610120892572170402813474972297778077961006442300365159897801114975745362937965973224843069522179406229325518341343374512566147553339161126280383883979622293682602658531079538540363111750631664058180637384473180837673448140357161641018235701623943119353868522463583076380543522917898489497237389228360376587431509673859625157827275894428716788776153019107467097750458497337790440458048880512182503059421641239541188574939599129054405715737231987551247366145962322991324732062728448621588362883968627879226709608943535259241977163474655327392825951552356174884340998690720178485782798962081855446387935849393230817290832663555116532135006829884128622668561050762103376466960691881986145869331006615247981281898475785055405446499880130388713207927740332330585285339864207884050631799282464754788187237716016936901964132360445118677550518856356969575357044705295057208957885501816312851772185625307663538679808602485353370152382386984847906836704565873383543184670385051186809888027070861174424272646968062088012925237122522783008985956674399139719352812384477583162705450831204064705385907882145744000773285531471170300931349173381084668168692342980812324186758121137684042322429718122723145521597881672091697310012356473177225989079132936123499704268981638266740817013174686158687461038431293953247063656331460738621023470797096493149401484202333972151944680545657818372350056200007826044862703372591821365162114450812018761420325786364148662225850874047680329735728517455040157743338238351743110636315885401590336585487684822349931170760677995059744199097164672867751685567732585767902839809909805745666027696599520000847276665677621333077503184069123637980078247967025725814438916670738539672392780410986732375976123381716956347714333459907511413452879875711960542759014929741710289808208185404490826130404356645346685498811889467034285752768709888329705009662822139924918962925316411634852937611111095932542371486972431825222035583200504707392356385077517600648902034483677829086873923207537363734597204358561652148269366848288067515657163628753757077088440708274033447528467369610390376836479266565211571924723313309475657578708534364552481268842481212055077878421590246699772931674297101753495436302806412071093715633914954295172380955985219879223013769963212920075344875488015092693954353937156662071940185240953183338900194272118417157744402389541483497408487615433528113591064010529365251338511596862825560800870140752348186398923220959247758500925136530582958316653279521853203721683724004353746735249520793189444683463829827701322682009840350149775918135966084428817647082889111875058112920975972884771528011702692503172424872359766351879770734394724488799839863107798132152569074715924053768098593650891321306339823970354277060098585481479864622157706060385422161276248120890171786708360219954785226834027775841803579565338953302497444135999906023207470391562443746595613288874375617024490829719435204926146598567789437285340520915256386160527416308421408828754647624828895741657085415097743511325788720904019359330130806783503523663774571978368048615338937573580528133815943555797795864185627120093372493217242518951196775684320149425765458507075475806279698092889139761882914792848538993587488761971344290561357289580476611722158159047918736551268966805386717120418250562357565394684103135674940373087835960948896750654932093457524771308819129083879789096710443350583780429456919644887379163181848301669810041806960139591292572012514158326238282531598763049435619068507600817156605852911574477413347711466162751526749549288972965132947557210907659318574332606180680827558059892646734573990285247990553338320693322540482209445902447658666271757721116768684597995919029043292468341866713645891718525999088877919583923883281436286931313632836512166276257578301184667899761476029865431684801211751196972221606480557824739101523430936629172367711316190011753011419895838658775283538696098113331237367233862429199644132748692322980720122531114551007562402658595776358682180021987478202311294415945499415035269825184826334022252785302243301253299534287967213703090778436908053409025026871087512248145325008363962247980768766043273170138465562745675238541401089461489624589696173197416391682216091347725965310002760475256168932195740925483592663523687574803765157493839947559615537729895899101016868447777829363424042592754511998148003999636676015371317650032391530366043376642167469103183081427522206025285592889735525303579132902897230720140826399181095263236048610478533557914509979990201756952465855955273561292686270750694966019889010545066836923717766338313368747914813755288464401878134451854135522502608018465192005859679104021086640886919946307426362485765254106913632636937381875608382020309036992344771737520630142045960360917722836886344542737152870499159992704586395438842259191450294107842817457517752288545689047981971273737586165897776238376878425538137574135370013620852822691070300970594902405321980709885636108752819904253688302153619713819629429602259663303344071206897854948823189000771440731231323782342034911584485183028410117580039710090921895819206604565340740043386531793743931171502198263929434396677311966524974861643713595376321880934190296296085929483152681658215606363317360863055338781186851601058211781475532162136220958338077207074457733334984102103158701113988637876902147525177839978861575249714862649183330313844254486242175348433918914502996767445426518405930433714279352577231780295529228323254114568829211636007423286144952906351319118917091258102128716859144463477081118956922110191085265870162949429219279514208260005842985497741274144740330622652281678186182154520020715636429918037115300755516933606246291838852261213137987628128942165505382622266374853622285074767226865723735781565366809582803971750041801221137370644181544849481278220593232590174412682772496098136980584035426252861932077789760444882250563317017613307399331639627572443339321678884835751745736407777032241501637552538118750280339905314052085109674780790212352128901694587819730634303398443368099677347232590912356951784583067868254713437094658398569893113830306221352677168993183411648229418265145001239867068822553125174592856477487938722508713959772366940052624392492126017174596803752350024806962735870605915704062970323483142024549158608820692621498690455109456499280705527140492483861418396982768633968990842447400908323091041353588382669052941151912995354386734613686241058898984496882576504813599303768246886909256530896618838872030264648976033928673635698150907482081468175919384586876865070367711493200637904535964516816802431983473871189119580731672143810379116749006150828379694452690282658526721573962275143372166083995880488963834338203744700535016505451241405245125804172423419410431746374557330345454098904576547642154338615245781513083808113232229097246239603698664943929494174078803794355486000771637333087651663810984100998935189727047609388991645441641680240602938330025807070154246625248034254914566119848144238400463419118524227509650417996451614869308988248039895947904665128345599586188572957359199475126522098422550805228336300725559050216011004708313551637090416765358486915928788334228522500094811800143743486614755806300004971309458252608004985359983671774583767555593366669817004614506950363365768241284397168161858366520755386942508579443229234971421086164025383431123123745467370190669123777356673236585002965405127256785281232733211281274231750388237622586055784917519229446879846356316208993487906815872599176878357256692945664864525234147418453842606290412134160127322664545128716568419085744842946630868566027787192686039435377213037998940605879913768451445523485875554034928682118937323285018191901782634116108200846668143068124137164901714848604039669912628073268762178022057798249031977364258177928971424911617016586078454720229235101853028432066883779046111274384426415652107400466196051886105349132393370010415654314347317685746277151235491479565860278197375986330217988408980225852032317500518956526202149328845393856170929370692045587783280413448414552987210743923575097268673813940016155016267783952475240516629382406284011130694594480767439373286927091016706599209550845884108926469573364001558307984612118509081418853274092096020396128728106663350864222453057535080999053033451425306350145866731758488700632578836723087886755348216374855019759870789049355416601610901586454828820768462470869736472784808006806755622491132027269633746511190793778681775674896795587466565126113060886199615180176170162901202080838745934303351066283460410149538783297109655022836165970605352145723767558606561470240534896392119062737504653784994587765864529220910296200548661153264269085883298323889746332154366486307897445755674367043243326972716000404651985276340840690480856831156985022214803120898887222279647139787914749770053622714206064430987262256388179211661888531139832377015067314882746300477227630271539542121597335687262839701321687966016249373375821981541081154774421983934912154785632586029440315564653362592942457099346366804336234844509674659765079068362464058148483836031074310602848862693173283880971987781832109386591130709735293691434034402188989434418387093387865395385156772097012632075933935769830310541470389327883078781359093697496224112338584757966417938293112985106323221782317078853770386222170364918050462070973191247333083381151119167916583834484445972221464593245980086577151711247868165960222333134257451575017855571954234294471549457653020797726813005194582359873742586184149290770447474250385261401143932969125856613782439565993018763866484429626589074883646262745429165972707903778436351547714129139262194169704193188640849029251174304140350256035167683242423200849805263064864872430439074663074675363222460177377363759537325759007890335917499590536878843115397171837049847707789340619785192702971030095973087921868120681377781954012938408931119954155807474365124375935189676312589482244777150356860452312536334341974827861001181612718246301561607711977482373395943361541581583308661203578753256707092882957140398871095782690671985637490431766894897069634375272765962775248237849660212133339522182603983382927840055128446800361532731479211096108756856221887942349120748901257416263315165740548356328046773897143541991163664239068964170627216296374366537311003674942661661816667997000158235419114513124680297650400488902093328895332131981561597738505431055706779629604529837006524736987738713851986661175095967311920013949615857249416779300174438046058008900958126474407127192204649812935964262148186175287169732866291308495676130607186827105091119064368707955521544194369612070109522604283562002928249056496140300327028992905642090283001406720312573560625470947249565555409941620099549671962814720373559994461317482082932452682732847757211436967920998474963835674552600617636505878341637306831356486302173035112531794386139052479317688076402018861510718866186513525558933524248009608064215607743838183972329006647262027666295697133055264764151684939797357018261347536752085199958615331104227351513420045119637413742572755010804701773550118692310523703239907107152960887197189910629062902833622280648183343574978253807676760423838798398018273960890609205909189859693125326667865082653515004167054914839115613664177745664338164228071287668822155903801652074256923962036109070923470184584462907349428503602620643323344437330616715549098993503361771879567364586833947572942373969201244872663549010942435847230709003760986790616023987554730833577919931397416539556431498753586551957511780892670136268402211606455286824505895354103859509321845498387136887696956144276329465506257120157096431932400683534967254963079112518014820179290630501369066480063305236678631697505910528555748910639453643153981912793143760962440832506669390563689216051174050512748802518666787262920940756584394516631347645091145041354848081641751359459168285065572689264319266810721640524145277976876681955366951050602234317638807741474250349314610220085813202267368332769553383014650067048136052007767144102801718540118058405146973961005654555410403592643075997772408608464936101913174497028157271748892996384269649844362484048596186202695995118070028787160280207143943700728517525498495662711454148776841959315410395506654555905120850329641133383406729214020753487452471836723284320183146781232833804554024101756652210254029792812767458177603520011870832761145625385043822630049534828269077805401340696271538899935858026479667424286941594118150720651578725185960020512297581197062390653727011158086355575459492403930615421269538898869099917632496342327945145231389340993774201824124859260110942754033177566146053620303329624101614618363883684280212981410880641490970193472614066551945575796111933665984945221049347462694987848503422355971364759200914190813952759189304906596595559206610953365373709847587452086508720852607404713917072081018700308283452344166786728579633722869897432493154964886208211706382127162812361808760510127865139774689181376061691843133349677751363347718305981030347431752649010048411011463226887447799843817576404580658728457838656502726567635968303120376371121950139245325036321111548348327672348531588665306590072246417672833737892674670978935302375317637198398760705029380157491377025741557707155802609886883693848497459702252848391744582804429859903802945768342509028430715396739315956344425708376583744297294757931320413291791485329246209693191992847027866535521550987309338493558026285472751445323433438026839691783265914774554947271922210997423358560913789421655611645983161865128676435848050962624888106409715699419681118490703989336748858031666922882365001597259818771956299816877257341291816932248841626243569254267324193870447939348154790384242234213732079276957949391222847001564969828123329686404759803796168280555171183256858116181573934195702451680607640659956937030218630906469704250907931975977513211051991661602925960153376193802507545334921775769859475618367902939890614883065858633574793337770504053023630751852966636007620409483629165723797050775755492326715993611172274485107207163030275158519386939533807246514864142322400047439717164469824607948545174233803369952398612887403015946257759663849866845187576976866601440801409505518552604082283092104429743428293177163292372310466905620123703181986322647130306958506472232186864877739610596857069504639160093251498690998398269027388367584299926821315379801515905736723654129081186233665831688822439209023732449920923182984943344265964821985123715268558119573149550939250071710690820296055262789090403646215501304492118765066212886871254974629722801469985653760345383030473791049585882234492487172851154919889371103192920403641566854025833978656872129659009236104989183054160452821216488537717622631149198200509392863098475027946563561131876142043559241584440260501224676297892673036831879930836311687495451888822556111417277030176510818569213639840531415346142503392815672308473248703609581865124803099704395017339128990442555819141996924711702973321487660355999596474186279872865265993782542058523167706607282426870574100064239750347686879337160422189354901853932166545366282079523447330058706424248876475444119588631353662978768223097420115411479228550928535994422752102117915077592538782706045415742768201507345832118526829496585761293369694571572455521777376803740086326801677466868305857062587135753281285627383707832816272131822343537884535356024673138665722712206826759810060178308019496542465382643367930848749780345900070774562840474642597231362504001356843387413775535149662910514249081824973826602671945024112521313086218086651317845811696675067929697881711184948176061944372592531478347624951410692262155420618993996914384891877016734534128029835854567621003357797812126400063211162273910952365535265427991361709761740273785283487568076552010703372566616320892327259527232536040128555723451386303179352529672239141846877572494607926941109436275665573252168582719531176422350793822461053453971435815664634120454391191119584000711908968917351475965151066489383060237865904212468060296930080613395290127730108025649719117075403797818661067435637376089996726151947938809703607139452015476162340037127099092989445313376637998505543747023412021741151833482629616660503295275144697722304697696187728876084559858838575103678895517603126736155979559072980660340547881406083441274941025364931847745217193903775582998058773125337072183985253064175977403761657487756808821933249334763079599487215238733895155788493726472458907554658572577185538003282418878713459994667480076497441612698811420534752120938400269002923677005743765754742824217536946533749198761003184907856041273393550556250134692218639448104746508353848045381953082430224028832909573648667992298233279588563239233802910590918797490258021552359971011316839307412815606009825392083541086721359492484495158925025481223290571114205585507227504172453718699352952463351805296069920025510589268603797925008617638328810635448739782580428547162136593718458313567354463443646808440968495021974343903643921189728164660547280630556567925483481076121480232886941858389927067284609282637332053872850485359767112090987740011030324410968075790626435098290921760927605409031955171386806002292545322972221422983243341996286732959156554832487429117894283089052142453912160846657928947781328422049492791435799778203556710921374421643632314604205035264720477695364434865137047222124757408500606943263980595653113327326299012283198023897170725980910730796596440512823255065253258418161824660781132306461283383470006850506221734596712665700350964168674795864167089697768171592683492305750798892425449038275604826912193435327169448992758409962895017277059648075870096076769163390172018771674580034925232392543783132429689601097613566656499885765365405804438895985460652817552836907669454303069471892289240064800301180318838585363538498206302204500869012736190687669404627839641963792306797109159088413026091789350196904602851128651703848563748240039586291179053340938143396602238323931059842466642098492259431382208813783395317443663494773125399774183822891396531053295287596072960143653367550036711183680001076870007047272995889392738213167784872234693152233729311713017732847629026881674506232121538022288281698734901075884769578655828098938221735468241006850971102418009316449818703303982751491195277506657252866681732724179559861822041730283451838374900037344344883069927350603285569718140765994352438279572825789298598849572509775959968966148849765056059951628307176414546053238111774795215013274601255821812977175908112967344619442116250102806041086874998747011778923987849318304450648447588560283001587395613895393051935001398428070124015813928312019031274836913373879366825724731746854467595231138036292592952855693705205511878277923255769274502732253867799102844110562608465680698646689335528487570746927666403070990696192056147530145711366672256495814532394263986341122700858529795387032440716182249316541400146906345312692959856996872709141079509596476695626631117975295376962499376054732849136750336659530444971284662522074629412636530298251566624073741439969826542108218627978918164956203105002620773802037287920222075277074967869254661156662892400736986191298899893931056689239654314979799685775864313007044607852597025478227144519298991349340448119357920220870277205316330788223594738107825915877627637307702861035542483317536869158340576732640718556913441827521144963733767218905125781882653215547567626015309182747132465161431582309797292947078200729399578863549361745629217548579876469283073241148002632334685678179136732747191745310741132814367931900173164488531640208806765042550528009102330744980345842953781448428882498826839267598678741144139244417777203242931294391990126534598458191152600606391867425838176764465957086546077240203463531397653788330776368813898304842723110533532577439723894379616196023879071600360464595440091224083846084500026735010261692786808994326940115679721933400736207984459154919729538295847329928441836451885766369181437444059251945008534916788676717550649569784010838580542913479307721046795517516243695848408012117541593350454978280977065098795085895549682117411719507770839775353455274620836613257994090877699889125665972612635187510257213983131560615477284509388438176847609945927455406170154604771915133806496493152344936635475498173063905483265227531115401367392906173516446139880689009638389105496414426449126490235093046190728897653044200749313699919812643345221970643783030496676041167648471728337010730416822044084281005325150066042912701249619092745460067088219828570759663968298132924071403810904014514940866774785333372766318227621633398746487365972561707267895953100446281272135115700803690845218528273705131380264354811621518018754471032868258457836921077933492627442583329573630623931205660056496864543288375674949736705112957881253439254779428853415609723843567988398234844263428347785357799861064308955624036988578217554356273125047587842395447813133313996456817499957564969867177766192175636243907403324356500620625638555116174482426564818163105725928241383254717368152879038226027390645733110095927202229810321166740785448627826435387099143842033774351723716931952387045816427836870996378189112700318214832966372403694967827079911114415340835662894682038194354517077465786163933310029057303127930778785463773459194847849158886650574959967541421771678566034372685709627042233693846974745952016655596919824561593699411717303449782621058376048523433195866858659123486997375804247943390414166207754959564873260969931323666658510823059888503077482612256214798330998267978582612696121598167589729251891475174745598635810635505580190749464685445983669529142569858896792155627845390773165786371168443060595167843730966415547501395482438920056932917919158220520810106790504708059000636072914421571830856893656825344528480350713139300608377492920881095926167097234695561447870924834435956091442218151642121459482742341977967169773370928270531788081757929714765342213743869745857009030725484911655400854333049809085170251641259480700736393202543375768108462478143970741729133683385774273103432880838014370575437962893826264443034372067846578191811865562024945715253717888073698374467373463401178938251645444638159409268648174120551889008691360636027515341307164686554027109498971114897980322160919399329637245115746466569876119289456310775744370594333693168297812591178615333801817548638962147866238827624849143177749101245244417247842704728983869005947537657660766701816239681879483695989737158147038925420960234000847178609763839052740804087854369459140273398232495007225821872102303917711142489886278887242038533945588698206355492979233361099902999657491085181358202547652429609192792381696497875118268014287396403338203483296839353260946182155408764724481270940525396723305948782620626151194928804956259492080804060175774557376901039425505899045033890945741330657162813980442497252571894274794651778362915827595449057909182523365817277946197549341043743391195905445092738448663572418823404685445659698497250910497956033377671578571743772678783738473270212019278537936028003781259332116420418421162843959435997845420824878060855780468123315206975903226866011050611384005674643821629193896343329813020629565318730930439451249537766962833595579363451121602372884065846101357196231462465322362375758124201150649281573852491289300042947264082853300129675429832298014603638363230545418636595402188836652037709352224028337423093124360713378208588649839936319752993804253668958891575586870120610791304067155474923234034591312911353119638433454558520859332708497354683018837924193804087552168015008183458292325373179885781847332289574468176467658771650085161850469802574541654097204154793732501868967673491565950064767452770083308144307604987878070403988263408066167017918240787348205383569488048916247939721191839142925248160622128275392338594402784029916096835455411005238916984951576123061271784907620270895886742641386108714799587659857773880667619082411158751268183629797776249541542324881042085000736600871831016216801334802102473978256229790721793203854134539416232592936546094566980836809098736476388130332401102028954940706456814035135275118533620394059336643142387764208101011983962562573437444205699767913767691598033151636754098816499234677860449804198683879362795615120180904977327146500685285777001428815331041093146049162887903964190058121352031927171721469367203750983564987489689577136147825297107308984932161867157601665349584161478880158639825234158110222222690446149968455706056543328422306188379598823678500380489032790524847024319680803400579328020534795809575821722274301542538897576541971357179192550340879798746798713178315822126844228095362522542036076368704875888395780341694723597130349116031838827606593452686772694324779993011280080406492412627220826247444030092312398666218926567630745037241359719064409094440507907996973558296841230291117774814613483243986200570974143455870885787377556832896211691600085049094426796899738625905357685739228961540515417590815340571662548601836848214146103869037315996318137678888780893789525265146909654678438671681231016484767042463784097694370310189487517253782444268977034678980837898681808423893397058319909952917333243976336708180601729460633940766300961130925026171079263119211986378817505273384786108857387338585613513167029760132493294546740023082413342035117190886026181380579153589433934453344173387251603416922689949317806105122304606203711518993845251506539687959709244846058776831460751832651480163607491768680289996435034350262366821339124180634655223844222199263247049511121696845172108842741093824857082085374021680964328127326781932921614386641495269274167410965233443523582791889177860036663532246096345014258853868304642562098002488074611016336217316638128504700798257002124616169861243699746085601934258085962881680730779964893762158328949189955704557439396643364985347449035782341720895639816413029533093646144926579922403211908712523871612166320849738355917650946304065999912900716331353394482239356451219932703844964907137998769562381229275533497259180857515483558625396143252342793631376452558217228431255049559614603486944495730414082162573040638431931690390368296559983943277576663024239602086050904430528325743545881966547632568155014364652297977407077718454324816824172576336932698075040925293419031001343793326302079847016984151654450122761863853864656133637284983884593757950271133426705479205595862170886290513700510564996692030844877624661743063333268361166526001361376618976102415053237071390960229355305190154237072265200260274668441170593474700474106585719596300115220479755856392015109569034099108024806390155079730825270109792538231598909835672341098336269438225850372243983320469756371899519821433267531535347534574174462490837882022004932511634331566706058571700692473162091087980840469446586226879692214455844833105895658553524352133329544880035924808582420086764001751971264497614310793768719907840263228304040102943358000645738325015519295807377185709571056284071078928073282463573544554556305203220822140901975963030817535982287819039059898238392804069570371401748838748259423831316358080139025383846830668204991682998841114107903116402038221558932619687000426081111241947722810019254057838043308750081589181268228771572492529767291211312951871877113355709503616368140271829207531503678080311150521705576188630092973502077242269193349128682964478150838805532091585203715835098442922546189144684877351357362404940018979635941030673667043156667030193953492166744204189581696394199342650552414338239351605986817763618358286102749519451638159968405575015281106769635171693950750091300601351420790324132014128767971448981023516013450325456572241797219461205220742143662552897642760890276610685902307358004856824441790898015235441371880076782843804628700362672840358114020734129416638402022444052432234552943346881266344773714172323210736591612528606657176505218301194552922962903335219507439427786869979783300345990485754039095576262774860773284450649196847777983411216651187075278193655866048796793516296233208865631383009402436772157074079228232528132182268662767580150456412103831901852434400689393402146254794868177392505794223376519293999875764891561166821565807093493168331817175574607634422714750148240926409807812295697951325367016443512674041474947293506889442364589803218219145330580552163793042080543120335476149713465770315183721385389384607639781179828990082115866034214974152261227336383918426332095066091323553162298245818049159628036325678376250706767709505404482553617587819067702681045683363683396921281014483161959570547518981703756723757585556499954383004327440612857568714519861960202136575982433295209539665198726752678176343432993108821762030902028578537815839910309028191517840833299609040969221281687812011489010656033969985014031741189693271277174488547434565178222251047369611909582562011851552615953452727747424036527792246476265503506773831924143487787046842604216997458785181703449955678595669469906326344389056743287469233350635288128788951734175233269034295401439679537719209233457390655933611741237392082504482648003579560509034649244138862171251553974828441145903461134939059304670595410270964240420173416645255861299654933355377791777658454931611135005798893719601547997556316979529825227212934962533095677903202430117847073009098377330734146662276532009659094807998462570526133081055409099769965028059238422594607939343722637824488672652408064197384095436760717054137084997973123506705160264882966655959198496261674703981756221431173974015547429521959845203378653501728780301649588810371144189709293352635545678929038382890447664175213724073615277188937646648846575790230166793498219615625214225826358780412102802167337833346446726164259003018847930138206283467463381769750204046158012943780401897518607116714764952914200736889705070885532113957299697225270103504910462600453914267601315072732585823453564152294048273919639269375549196205562062185379248166141279767072788385663783969570075857240671194791544018826367118453581034033120633816895589070342306772428079721304400280792548770892391684582765424087665998443584854910527481327488809579704620929675093952656004963441112611870801010382144579123392130624291287667147589491619937077608836653982897278396152853379886572664634074438012529950759475563657998647877770915346248467607626799794280467755016575943207851810332168919438285636979349349704943898895248739486841336083004469570424069142373843245239527734076519385089201745275032131795772480933648014100672822348480217977923325496974664317508149701840957256213866239846638354596009691949383472966138002287925735479468887803926611725889616096023400518467462086227078107485504720921123877438990880011043790782517511949116255756019450475102813753225042443361450757886853804903670041789060294829782251801434749112841394051421041276925309903732064822282505201444060480746086296755496554723514771584741664929065481396833029499729807678584723641447068898573706391759403042453722288076491027628399826647647464070777531162297623165644036158331561527158564346589107870878681655069808869838202151166675085237706216521949483756283137035604360157149929229781731897654102494463783311105715875026645560033391140271902375958979607274059655862054797526513254250555946027924274078565509300115636899456796985082047165184361561939685831151869307961096538456398083345339830204728877368148694770419696164488112222050036797431970895036506990611949496412807305668816243520538174814655866357102869976386893827545288727991419356724750598247334289332661409810405679726476982654709513495766124828876678821728317972635685648935232418087896990893711977127565063617149148121012387446937572825685295157708837857556877582463133768688428815833603767168869165857816170306665152040528010915397196576843434962931063262009793533737254167258478923642802536296785067200390428605520042115049117571994569429385817864399481289732043205961310300632247155564175919356825864193242469571103781236743918826712592975077568909483576293392830837556253909689684193181673230816377132631574504270853891497669950974417550735657671150081923140736024869671315605073943045699092152029073682572005967144234285748205814752002811927896480602735349618560089764234200339469549606504965337592924520918459658638227285608694056564496754828085658422773625619340173305114753408477978534545284995775284598086177400960459467525313909766440345823969709129983556670859358337312951773765990817138775100945043944293244182042526212834255790223065307211757054422298947058716472622842406459116687375940519242095252414529467477911364955356919331336036110739418073947878044769455205683859585990554607841406540127140246335003747954834116488025959542372800618325947374708381638634465251916773773036097738165010080539070017517437563856804423818149470497968699842373556583987376467612466332032131437738997289604255630591861321092771115037670834611243101531978563236971815445137575659529622862395275353873637535573600145721620224296398315830374382749631689659100248473628186848733706658987326001614428046764622008069917738082326934706478240015059081403059009818645865167976941466006636522452325074252537980379620870561800251129422256812518405598223399813080006272195462275480982994233355856565713546321929047477175575787159462917128935682362783544861813667805490413167064455294171889681447193336174032366875569490399514698701767773016612460565485337549956353667464587073252794179298467824902641159681358487989110683901055137571691786192380108310347838764556662532277770630104756182727709177670007400247180294529496105074545158268562628931021482445961192622331921434360467043855101274309776069836075862451376944787174350298847701780139574575193053233009852721382278965359824765329446136442584637708066248869770506862056030363688346873325506105628438578361015958427325326250277983552141084303409465549946537913379374083991650849670432863001965951495907601560695582288815141731737504133756699180735652868878983208756163334409925507587498858951376658646435295831775107624730945463851354365072386281836756322298712648433849228455935755406767194236629785362058455396791049497691425645872049797345030566823530630052362145432408941677031596331151399474957127634130341229371683286047938192513760333889112648210511872824514632429502235194675795096888668944613178333998620024541825136482169884573767271724009905474558539859970800645833857623569329603963121825684919050095882847378466907759990842114745701238723783095372622634474317548686499321147436355379027205243481740303776813884924476989102261259550491927692162055079117950519999979641304871310819083913112169189111955080846550647733611375006991764496699108544474439479898679140239698028450325574619296191650473733370448979208719329695919426429761912726502569547106372227468122489030392015346849024458195052601996072580356771300189741572176921309295266248582451128536618241138342884141741696848562784599616431627880979412909687458138298104366269941611475498000492482520696174059949361315392692157223560489740716694327218839204336094099119757820513824961451196631003539179203151350683785189123299823367890843701367047102902489817562491122838159176546517847523636035798117323094498807801832156694768873814464052721809178550367789802458166119585669189283975172758085486931428303709969465266863117551120380698826242447325235282726024864821316850103793743966657244591232364338444086392309413962902383450355996903988971345915352085168759528085130757229413744367726454304406214438562059340825698227158428948042722827073560931736392332797818751573897486405085026877848745117035664788081329365489814825410712731204501686631753215200427412868793371462616748645021745549468668653857239866476817439086670390116527216174305233216688540877405892695539232603493411175378809601072278375147602186067313731707497797697251490753042259120866939614060586983502697040829402791343627546940297177010635488743902624997234967759186683878882641905811166730941172870309740591535207506291605686107241606629706865903082830404992591582264081941961082264947085768763271541529223204150799419173734145101350974537117264433950302295408429925191548038858403691962055188739673539756216515269668099797239864430700550420819757489521989088175908013767602535633369513023469961687646404410925277583155202161469353479353981429735424659464833414313095216242569821629301115772390419906249977526929517726785738835748152554264517203263821868014254678263840149615941295541385350552643599285365657438601370305520749406169989731949556860087953384136813006269284909794501365007188498792139497691373051919323833886923957768955973309856030857074344452459583147088318646414939598273457239999167514668549818697512366308981398978784295200468051559314768964816993868420578491315306741215505810500321345993160124048849978509052839919625144140118205328831500701343915137076251144965462238363090948188782725406812572878854819783881430189584994722451847842627049547248183059963594500396896038087421860824545980649622879433061615354725501780793456847526528579178302860716901944512068542617583497196765068499987801053043469211933253340261712261063668767479657967203800197977025360694661984183444454421172111231620431472681120432559653892368242362555846868347279508251465065113490403827488328151657831285729838761194723670671995198738573926598241639960007965989796135930677839524091324156898596007292199689984850142571004382391430261958073923214175660519687732705911868084951901120022759463001259981301963742435634926608876082506455211210256410957376438724222911351169988690552935099289281633952691107914140283791507832710287981957427224198553320407918915905374139034767022134848265654447881981038298412464543911113790590201658438392372470148329379632113150120640190699066582425446830940049356481727679408933081266149097777835694029399586302481017512726898085071441976607249123454139092598376170547852340048844028153803044112285834853023740838430963649066981512563137881761129027115622042350705259214415982086679615892955638450968325992835610183650022248696178541508464366543782793183893796266805584684512892120815197670699529740388913347887407486588288489864260967735017590328954544267285028583322943000014181175352836870520636217414141945367077843294594312034781876341365085700024347426715872076320767194660683079800624700100749257474204272643963613407839894535561979540427619276614070368524497092987860339895305042565814674896589488467449681283931290116337774032229395856391166035037760653666172449830218552027320820645419574748232741367617779670818157780158725632615374142860478958258149644543472685967792049021409949911011930861931424065106303255325797516547403959470699967934379855872118184917777460112229252615687462310675542821528342681508845099489203303357458019462811712300593252009486319987173033275799854561578386613002344774990824253558427852446381040659524680573184945978958656733324114635579016231064320348978493626955839084003453619915671348417705169115935596907332186967294487042729520861753269537461963742022048605576613213282404936646385031909235433624584461356002296221213213704196683425288677914580243110650097427005552830344034557105584139150012583147118837828033273394570163028682405522909006815432783091770502554040016529842985207955110266230854274558089508823439953271725189644949312334766762033883703427265391341672525101863775848350371244219848226248669578015683322832133849693958117920068231722091280659083138498209798808920292147519919427848854808854850947453992229483084270616361983338085213308063387725905143571463471896337958609597347142717653385414015847621563354554188195118316523101201784487131436420309122165055843217650671417866036829222739631726497750619182832255481971313981335752657840528651274599136438121054906932136416690477202018253559685954479252329633766012039238557333785672886553935254281194716083823708991668177411262254750122835010304700103679174669473190895898654977540495064920081139917597474080837162370686936912467298427569342774720749965574472830582592674956386313639967599671107297877212166412806141492235735226344441964142352492996190447969028003186055853916789260177019643885936895087354556945772033492678173562719672473791959133879551636377070511410584865385622916562966440141561994392072195748292053509206188616899581548734775966915548016689823012445919877247570121526041956767710931191272116952236529859215324677324707260648431432054364451784179377577955062919588992716760127140066477733656822415876929827445234136588972585247038441731333593844217418025849633975755983275276792864023022037758310634119774428109573282534597580893255860645952626598644593203569980520364625743958632939606777064561527814402924711182007061274944262671422215236041787669106290887402838620758111822093037713774539160099273747763237123709427505883351406521398287270501403392356021515198035623998125592050767540747170474320782207787095002246540953252940430805698933944146759475175878483009007238178346183600656143923733350254569042803497715100305596385444329217348241732764238528454996177314734177707466775341478022015866054238107943206125348849937813027903078684420393538497057185977146770412887451078467677400941318608873266132907044079027135764773431546789055247782513693141709522776871668526019707921214488976351833554202097578807032742546918987465376850659028010900964372592153434154976805164124869169134451914933654851641285995923849598657233438565064238804929643778603567639130217054980545675676424353721376954860853238147764576078227944086484786139237908601244722995265722173358862708349110442523664215173561771417672321133861346453265478338558882697277700119492601893591364699977273861651283771786071935412772515094228700297141974519625484106190135174083920990713849579972549782811376302147259810402256522492535256932902324338238293601941548305788902451881816256384565748612766981134191521292733536783193843478719621635988247673795437341678416636014641749633177070565023932708139132640094707372730370268503306119972507354458330574564123704856435003299243827119211225775034293839315466687255937666034787551655823631526905317802390640817694202662115632867180760038779552664843595242095057119982481579168692775873044096932180255715448591263809818277978918097402254490056117696596569316735505470098394931853004139787089750277675905347472020691248251811757318770240034195319577716851741489772944096602537341820561271910449598944464041143215954447493528663562351635303903182407835974829703677003516424575576482953224080849807275026127542566539997260338113907566925238501062024232876364974686145261633973591221892155576213861816248666102313581081178077332369636617657436172470586842071254078337755060482446934778550669682009166137904606388347189449252223820362572485028075443576337748752403313252069190027560072255226375801370667048880489949771263483996920879913614021299189676801240185071779190608024028539645392571300300305855251344349437176932117530392514749464507334154987458015000677968375506799850678806628793988407277818431970762165722698262147101087262241510339295513157825558897106459593676647295755546382128889447372101919826339915970551581985036303484907967299068301568426433096723105440040493043158027089622360835215313625294711119801405905724659251870229358840047028204562589062457157796024077430847673571143565570539439508182020529998189119425259846195237439277190988377627661234469323943561139867973509923930934230838945935904945032774639077793289016955295066997491476248018348983777435233349077286666906652543175347365060173971430080436251644064932213000088405318952045488306386671200301167893224360018286585996673403648389816990806403060282233376137931333984401402795533517104451322572936831891806508377293954277513389911156222751125948163592905957567341861948568517049711478268382374446764720867793824818959182947940465012462908785802034336853638447818444338511769608212647376278847081886975624280828493438760341347910594127859932487669824591528423982724575750524100784181189219777093267622807564937324619184898802184804651883834548835532726709758429430276301207816154502108775271744124177213380855641998172827767780184888983613622786516063707360303171906558023518417926250495431850023025716784216484358829512829603444430093109447801660055298864247909319961543926314602707729330910536948889232902972678484817351171020027139357116300287613196692858421420725662198425393805878265541182403415754498978349398014978361220876757330289005661425553058253631198804327440724721409661903044815623489367505279000011946732832600928445073670811894308241943100313051810052528429975107416675762618045998329167589651230551804123472083552223047752492575907571942376804573952936297148086286542171062439608719242597876441485989386482241506144336475114529876635731470234325121844859824195638138086206272114543785679162988182050583317306722959588159223023093975395761884781463926032198302784405151443527942658682303083192030603684383661128818241451642952393865406071551173351720191754878786398399942618713064813879382861146252007527811923676252908144252746362134308042943012421446932117689666188419735154230230898835170417323462331701112833907417258733690305074681243046138212146489638408657364659795765301163803143923861522784277635510876084656419250529170960931687562745621711365689361030428689346128733939068827459073800592912443973367619949519815712874129091026553624256301247677901761608593068386981960620695861265783942771480930971449854736054674069965324949420089063089135269332728531841369518660796934883270423708270035697787865226137865540382225857517115456580889259189632609472616427361795775859004716414416815239388378966441915294326638493423316385746100967836980897861576841612275298948206002109724638023699440026311759037488963309079931676388704246534367589547367646566977506998627178865602672967415227824664352089873505647181559533026011740426612809592072406264207796232782099106497444488886399054832272333053565597615739734991587586063441538022254972231814518205841826226874224743028699847253399375372235340476740572145562822060194910114652068785242932985449979683704607569673676038642370571979996821680597413657785005425709531717254849781751273875743191603471196626047931207666137827740016304859377916411357245265063628913795345592703616769139073105802523159104047129203746179103631658014668295927221287453068194826015176575916418959712513405299820379547473132752579554775232370844070515369344840337472096162547183562664697635226682316808066971554750040861788228909208374757443359753712181279192369318740092243634417551626314805914794522653904732167878267434331682381318637383023936419996668012478521090460789902408002632796807416089864831165287809724260734302606810270048792800206872380583647975620540076607268588956351754465932129739519478232476393337857334510606925698766547209054560918118602571812674428171282683843915099601471626853344460174345755301718291001677585534133063461280322590952614761597778696847190980858707565093605001264352750526954801638371371429204588820432720501278164828007143077299814078958939833372697300505553716442205629321912965727422132609363756839772419026197865660872637691072570202990931329152003749797033810541396849457605365298478303436465666007232700171094319922503308691360232543281717663272731799000286976396514941501000751114660329701343840391981163809698189796714958476201928727066914685818900723758576214115774941679461732906408531005897121946490866915979453654498917381335397250922761297677025880008243456840653632984836536682595164707968575797328646259323943897746973210920713340609746149310290947869821323512313058980517202387173771069499526819337937516507914347541721880555708499224718891863838309881912040519999854249826329136953466602149197550859157454671766104780257042323890474241111524763400926350172620406446163981890798474051572315671976482518690317479303830042327803411564015207454327610636372935094077837341100101407890747155431498393694317390136070972786074145821890477076924433186701378579965892762263562728319946815440260850650509617273517456961377940259882160574103835062620436338877503530957644247070209234413266461897477916919775710868309887905068080870331254146130069394376784739313452831492898335268029433876257153685105139520041010993582012166735346068310883771689051399281142695999962471229031322045748564701916083559532751402719720026046175663238892134789513552745135165876396069160915877850125963148696621287648886989377089178124579712579644852059433130173819824967198214157426144950767054047131997324600402733628042008091522320513478250792343700712610669695382396063063465801026188911110362305285096227401085458201077569041290542429744374568413611069065983308706001692825156454929049160103394283589721191492844902131213780964401076688020466607754827931321258541005915064151946613581819178109516923646264128622483698239813166180946703861459765750850827681723231956000752559361593078325288203386848074266090119766851729756284370597642203568281996740749012429172163500153577926214513817264059506590803910849094264522714881018321503851656936720517834304129419943409063241927591357117609141578599680775301987691525986309598977583242951579166753820056583728730905881057091633042469147603671084892731343382505724655244585449655754727391609299248094340378599906050224714546444526950151408724586528772617251950804074045064037816768012510529826901352653679469634727498527128676152085622870774778205219404503656319341894123714592134327903702086036617256444289111626435196371484057543201393039396927994288000570848185049961460299275647901771291629100454851567785583879088081242702926382516794318305921020133564862139066257834976418574312119263195251759222188867854572886476174797854826669114016241932562985450311319705859136024173738053014991896122661709615601772478894255162349293235975596113574375771466989429000617497793958861425785013072644199168333020772088760801715653132084334308947068897669462264124233536162985100674559084037424908083669044537188406195933133496090079027236810991555020329751432258314292839907265360003174197401636560134852986713108572816667841264786928318554330538990148337803619315197764216965334464875403612553466434290758464425302218005950416019624645069384561387371303628216571681772469667740655388368332098836538595399464910736161917154595572795236680592373450245096610990656458767844922458714505236391580214492109387329475357765827144124342661440567617916983095044846888387160447628074383266247143124290493278351902784576433284464872123488420065111540419036066189903098093027075611738838475069781586836016954572799699765489344307917304181442503847554678480518971383529052092591409691717829922065824775373114288161940116997073817570055604595951092566622652456100889329538332849719787405858741131348761881976289189459098278681902104974462899787919654748150842325291574290671500049009360321962980450927164053081213490490041968109429483285543200455773458697151350604925209757333734513575530300588879305693531241667181661047320647869263674275242595309351377359085899375583887768480865295150309569526735420817730058347865188683607543687511704438097948419735933827711133692777288319382744509631855457830376305032084803610673771320870105792720487763724162560052658876067046694952646983345957775064582367974087388547072009789057957955190153148471041944559341532079561324202057756065094059254048468994448714440545316976525088415975377399096563694840271829429893390306763727610028697563431694355006514205368594906548467413747488259379612981531680422982299330540521952359537704045030072108712360446205367111665299979609635051337554208566348465117868233351502985967385900835493675362221611394970625258547093309612137468587683130015056921786352784483700879744129706478182203176339666392385486734641995389714707613206396779949813103229485837871480797417593931521415378550063474278407402389142313942792208839722075069514845676894966597002475290642476821499113355221620544070102194176271990919538517301866607853254826994334243013225824460912237322896229716836556189376252968304313831866209902387787958022460281264992674417457641850588297376737818135691508568301111563854412494020714528118119847135398065013929480491387842260065143398397775782659588984544171270373956487360842209891045188781106847986675029883481701828380473522486802368547511627835352681586648077413480328318501084471377642172039620666589419338562271301678229531928899649195345968431869571102902546814358203002260623174154162943573949520549274312558272986732781991021960857476414495256520952488785225274497893556721658678144879627046627688148857006204329686439354042128232870423042558626586731873785814660868432878651234334043143036917499209857087231815122167733559679311856504303344619070918393833633761077642568327554203626783637155920140267006230246006447701475788729519818469938055561305394361262353729930937830160288541808703615820256840328719014269042047230389976091588964265059821884676403468126565546364113537094058443991120638935828108997113965732244246112632714901134373562164311852632783265760166148187152093607528393607405284644699388183592734791451669774877702211628953814772542068878219662378811066269652117792560082133791188572247171507794593266476098731663701938983926254488529767044469795447971674774126069036775452941763245276835016912209083103436426643641354527923255303535651667529912879876303372030980394341939928262354570534412390533005994485210069872217020389199332202910827422788935693251301132618642228276514655272191084752039188764097421245605016954851685109504272681831731542823172791276795485932263742807740937577854065894038048651117046906068518833568650157269570516474424727661601302338728189363832305964856700580452233585360802594783281069683469702812568896285660054346155042448842358756126783180115317785306104785955876516545343128620279906260970098105486285488849822069634286941123363123934756413891549257522364640073525291645985698461312965342578588992371370992483587680291617590928050868154140861099226546289753121750791578245069200863951789579394455285024324277598423382216393239385840776395283535531484381591752346901971913337706359621322076933201123654332927165316160955089887414046498697080358203860915907216859796800126421067693995654704259188223263321508191108441230693286920766719485550566815819502968520925808128432216698452416642995064316314989128720541956463192445378457309252797606704902677389376292302419429086669817690881646901811200350494969307361901953691599429452232611608479286888574175809716921067044614483706980943177679394728609105251045666552339918326224487646344677888666456562550767104575123848493683468510517836362977336788218029991294884240548425224142867198214365635547679469723754288003656842385646870693211104034322923241089201652998994209641242164383172610455564584268642309923295760799438256007203797049910947318944146342956389336868376478206329755592017171286253970437217242968519714973215990411837507128616413750981990359604556334161011005102280625247362013633656776638328438106073364073927060729153742328869822892709094242298718420253608307011390176348282756538363532778052076188108688332986639553722764330536947033643895060749418946397910008738993650333786735826165929827301845842673224575963290621370172388382446652849247434242794971471129673205159190892859997890978842795920728892154696218422486268687389008878989526251488930606275068748852721909828738713176937351860264569278175022349397251907428100471978047870712024448187725632370567921452877250150604253680794295961628707857152927280215402481271553182698695221994355980911324723464855340335103193299054674428511108216251932746822724834200670908451269094538986606126247363103155467484908479671492338961179040335860220073784198958577565297953767042752186800574406002925009283250235189913615500109026086936789921846435340547123993278401287060746520074203033874775760899775592341396524033406193312496854068890094509270469601466726838266948745791764152436968048128856139195238279102936664756572192554954417499686313819784673198226102244342627350484695154140471062408468673946681746833122211309487632136304743691408255066413993228663779658912616007776046937245971586032266793516435990742041875102102393727715863159465976627132214714058452966203422285026723553252008251809884530511371990063222589388212845412891277536513237909447275534151672015801205454152176596304688009910088116609504067871536022149756303773692239192286584712855484075503889244314577616441332802162874771564925397074929948623388207026053812450168642335933633821298135049080767748480942909548390275727718914954050047108174569886916948908105262334765335544129307021205729918643924494726338262775841863697353886557159293069324064004310357557192862070142549175872149991215651564581814785076394875079837727141266196635333785707139249789917887721056678592784579109604931529283687299523490099617388510428981581163253426212563454236445419251967968035204865852092565193401521947049423903150957358468037203365083927932530000422224895480267028553424122478308660986288502104558160584941022745877589535717900957573789703670710748203730354288920348782629186954933219254445696604523107872646479615854740638415562843882498938934713780920501694348961929032676836178108793747824864129452572395801733969340320113165257796803722340983455519541039877942336655310148021986124135223166982658828070931325137793269082477202886288214389910899165386076911233963896467427566937470432442317167267124071091245170619622017189638434894456518380918136298228408715152051705541128790111556160389091621368939646621777844938765455892024670292955908575831551378824382269493495369385404210860923925933081160166817098095167161232856513865945145728593101417915673840736228079713068679004784486030219469991814208538064960736143180558449796069138712933557105880564031154697567126854952251464025210516919986295640943401781659081221981640309255558931087051889940311323688792061539339086491162888753309073117980789745029365501455461998800339024044712987446138712965292339033631995467830653682587398402081528366883030236087618550501945080375933583099553334621121861722493893855814822025487864774169592694269447340199251927492442946625148327807075336187130083911601441756024502987538104013732296848929033067116653005488077012025862727294645977037785330464282142452724154927585485939191775166852541576793297169974541670078652694817198877461342997880118501974875876389423590180038763336553834654123854208240756871905862611186630009061363821440498936829344174902350385997595413231228915123584364293559467304678372231247973266120903540688915441392677197944996289383903521596688125349228259922085972934938185893061485617279790767461586137012766338136766482318667612347859275328275504025229260188726704106197065555650835086538784953850557029100911943108123134445380254783988016461419760562842763258167629102665540038263901987887433415804299309816047761403402503005918725315313016543012152378303865339506752164390468511369129550805481237959888668211989100189503401050305964751038693607528378056630808608052112638290218505497579268451827069982283782662004255912126132835719340029161314020457783579180536718635429653350232344324003300171081252659516583667359892312417985749686668537241446052595177056024161030803082323428591461384033637857098133154905663165092462779710495204031314368528507379350240804563513048285176904251766089948246616457885924616824743005226944714803701082748754257474075485810938640218882360820430668320750362579593565012569848097407876605432669293071036062962626753378610174527147331885894146159368189093683431242057049032374982835749673511004964713250105567885986457727569178822003543089247982551806216147163280230266068440985122713679476547803061179620647522441951750163596468091117874798165969811280069505387154622920219822327495341735081595095173593878667278792352499817328318700884256727413676572387157565115452417225445295816426455048539671127487456078580289473565061918108440694052488541610242756777000862867765015624284363739218552571430217507433171560346712784507356427470222632638056235626958795047466656767188800226780460349902992120989191720288979075519266365827455433045967516181987582926399046904493432451052955134073697051417141113518578655005665327951151037044642567687712760977147902757052217393448823690292599277464778613642022022436577632483742618632863454334361045474303135067816345097031950968839879555164845315730027295005485181395098060280475556398591399705486431761147624694817784890117696261218349636720402104535517773599197741416124892536847600433237369326450564710223390954812031443787690342543532387046351876409333773578328676074490953441926492946773219790838062009540059607054460383957224729197979479345506537473718053366299354144607557047784807800702741461678909433798058560043180095197959885286964687306857902908439449434763028455303782406995008845549725306573435231844732988727410693885450181961972578977578195449439450202683446283081341889108058751670086939351631573958202638660192357666672641838397010874267066314381530058293542299439127897512711175282939461910003585401941798339671963214214140841576798084779920741673944810924465595695243312377220011683996756247835544969312481502747729087821213718561260468697133875210073310719988029538937267416273549815891060053582149300945031891501911564559871394430858241991257733118700993183756951763502335303127982913972351731995355609379224158622022210479811499256985177407419446195660127246202091147895489370230519781714515534087198027204302684730177525225194854027815705637964362855216291910118357019769043091847774025796952905112022228466825430345066982895380833258972780455147541494595659986782126955834267641195678484433310570845963180358452040652293639065814317794321956220741289856151194441842162642609582303697803655317232032163958678161035923083809136886301546425860329146831394235679804218083467245325175729679989158101472126630379141922169490059298077473873745282129925394729404404831325825694976269596162321552789524613238741535973675137080954816751351393302972047740197525309382357056798674158146283198781461757246674283855151253129367111899987687709633856516749161845799456072777045633034193370065275001031701074749599738171290052924740233419210587998504128737204673925459421387613294974165712669396907572191465251118272213470453376067852161621841667972980006121515245698831611804923343577689578803878656548944040901246003504557823601214077906600917825898482700157675158649150158728110648752683110653198744613531488568836838938773399347078820070848543692943371091355995556561035653413470949618705025630497386207942391938579263890738334863638801544857321196161798591945674495797054545195697865052869030517626272257738569736674535270965364412274747983114442087155964764081991591714517783917265218403066185355480328581475431329153372772372848425427934561618124682980704373822255223128769076227113557173504552748537544012314116276705398070114940894052871929027558321504737296555748979238506050387298353669841520963995032635119772109170626230456847088905571452304406543020734507116823240847106105808896444669935149596545107571796120608512695094663559003474576380857109729444578672236791106814770950214279725430772367685082025318511107543609615500593875105780905437900813258603834272903959420873225902852808173762346506019388664697623033708952876701435703541151604688488480394077724749271951582915216929175221912719096992029306353098183168550656610538795380000954255854738970566079112854094677155930620810362043172078837764985576501669087877502756599835913150876353876096345006466073413738588544329055472977579693064850787628140148264868048173856519378121959579262017178990824208729268106344491954890247038618125415335909676070864139441847720918475552852388326867484629676521938192735389853187467343933378354515132364441972820753256841919465157400127854606326045297786114531748474892142664116854132677129206808460122423772574510728147480121498349562888687874993923489444479837140847458175630100309607678151578001522671494697854542236118750902584407802542303743705245860770678713256804185899032870727312378206795174009022159027856610474473550334560902942584450623484620496529247055546468942471028639375965954756522660563196282608277197336893310785434480202280802829485069603406082976882084348052286689856250292428782747193339116731634224516101769305029867664169349081507568737853334246324276777504359973934751642867276348356503909743044652232741956184299501577044724133075291429849757707908086044134498899175987344519449529616679976635715017842046436312316261735477561864814726941764487234502365911930512540792443575438019314354232000394766616368236958837205722419473613824451935136112016663841379163639833975304994664923367179986627011226709433478967880105998018767422018114333414243254254946613071607686192961039593423389998410371576016768652928140456143968086110180564928246217589664370058976736007825024279195669011170729592761059140937141765887500778696693861763732413443533982389665295914744640071218185302005774754465723528245674179207403579384248921655358661423293342022109735814113124253636454674902370324860511050585867537738240872607892758473543180921262382400390276523655225420490432147561274884429604475327707228278348931251422739925503284238307863482899140791798950454817187754607814975138459716334097149703348830019009493222981540770672088219401719493137915464403264109909714384263716317938739730909256976005302297200190717190506724568002038166182096302128487767761531147728874085118474882762199298917603015435786215366595526715502811787567915035953992353288760432774588458913324688405839868542310792080617333493164721603819331085299233589094751393580588806007613406858861643116383177229500702431619510946082952029440108170292271066984479394937275607290854882873547878152127150262792633420858768031330184811770901626530424438709285888187363237531002975327347400673738847279279745229840438652454080661014657099238600733476691425062863561986866363025391844101001083701804043031880998296386135965936012412109989312653298837440160613534710728900196616900736279710239967298811993383318514503777686476864714183033278887510016250186606309432125881731139873934983824250777029728237843132039721235440163396190100592546762434905547724386801432242941059987260697141443286571611732655424544145218354639617961611387044913684018377038008845831168182058144501385505926621900000507117075063495168908632992807471719980883638559893960605364227564823561270726104568922720854387265532081266265108265076052797609043465884732186513340498312228500531384976242946252491849172903464741369212978094245966665796156649871102502257363676032258603695180443193648023795005710866590897920566494874497445277389522928871722796260572847115880772798994816694691703272720352630048903228353974998591153006576908610454773944331369847021732939439665464781153285132995621346844386252456688118940438381804536294878797479764225195685576564878116154775529591636759919288928822179898326399444025359612754480589190292224245597194881987029987779529041408308078361266245243616341275573154972478451250700507773369625236513643164649963920688441334644600311985096926035048142576436947153626658000863281807565330096996891690732527790447487787165434310146552970341528738150386932513032875266017346967100572416656741335660528196570672971669442443425184479043952634557276310044334855389753337763167975021629592327201357749798682701660074890569788470409253737610325744430136286235265027293459491690305637887190995960904551607562709581509267648726276487657697402994167188521192527812811556799924500880856265368418909195258908439649743551240903347600379023903230295760987516975141071106507715059556624533955072849454774259628359103205212103742803488823165018699522929400753828077832799618609478032918242022168509992760116712547132743451558006530095961049622573434351851218681136793228350996297517217526696999497191782122907814035599640221735199845664704496009209286926117342791031618586766983471485458914123640349778229166542167439078385478569337640319611835320841621781451078015629612070579460764965044020415489839340198736759337689471590565860696963415880732837036094594623479523650622937612004136226313605090415128519219856920051853493077501896749110482521527972165339592664911310073883119537414409910729229470918752864310263628296506963241969611822528048066779188425544201547561346941323515708037512238857057816561942393436824405634406302523332723215700485905834042263090854239738784458617563704159971126859504616698110568359881482096620068962148104001055863134170049241953607446026740977874324725688390377414296232259528736870446652913248937519570688039976753198079495434006043283303231243731597273522420093726653644792865126941601227004549800223276822201525334585864376227516342406587755791622134737122000623590045193037202921911954909906373615031216070292747004266700189074170220487411942826424331947693605325515493213580057466534660122469719107960270259229150488362699450733174868600406624436793547383587646270616248831250498943596573513014277233650895463195084519128876597550689918911506309876219107493460503194657623684137842375309652183262677544199505703137785072674197137000492794613872061572106662427038455260979863362381008177598745427069548067816875341027060957907272449921239542015255197013114938814931413479596609577594542470434595117524168353439289433847663546924946140442414855770067961818328268177620830033238492526389546805601395356903965739736268515375876625655110497375311448268753963171807027589208644911049058389924128859766655592769296553170920237365797630564612278871848762627989828678699964025621025802379776824459790010535692934963234615897999615353925412634024889655160062190583154905631808667691236355187897934080687628298530614869138632344380797920794922806405816091189502079442545202214602963786383035399080777679884200135255896574752199248912454295360631546327011739332775364023359204493475900956028902985006957653738192543814432284854260853426139852867845712632115218548993732790944868038118686111508162020435784845632551438374010828333490951298977040224353334650466207717683117828153464944887093876532139784151472750163410602253321418894407469633145023803879306815950840667007582357121334297094950573154392856845256037382987429341382939448137539873000256543872228796342555100245374709753149947977003120523368044167797098748221724594656818911288382046989640074876285955975679198785151446144854278072201305779958457550787694580659913386904353280438654489259450395200263336322111466955585142368544517194075966440229317436269640284149311604168359655576443379587685632195046998455118368363445519163358327218284441853819800093281603300277939566518861109582926024011013404066395363087338494218521052313693551306872310177395533655654056104720791589872152544624589429503278764200896244014379714843299255837645960312410841218486922418009664270492182093590004936349352548184476700460567740177627139708017378300861027213243700705614695794464418621381231908407274958546668881324910191282404480804556742773305741767279058695880811593634310781964242059410918296162627373720511081323128657747375707419935551238782265619252546985028458086205176506506319984919540351941847579132905005448135179605166173645545094168893375028123937042855175681694029588142445816430354522650391431304459836145493428831442006004114758269744450669520722367311134690501893425574768365283135110188793113729086393549863114127331922121250712961011531868711858439503711692087409054357843511014614839649564972250692528697308605585167595306934723661260903798533844879772248174919113517392308779826151915048980642172633447823996499708241789619064100922262615947274614652460535521000923670019246447905121370614321247592278136246928116870866800126718347171515019794185217894565994817544278989034043216633817915628561177699288277342203432693596894222728625970900039473113781604337996527406353711054075756473797304124950099033913902503406450246114783403299539750327227458202220465206942024399487559483288455628805285617804551894991052849854676840903499539106674544647315369678922096474234286224199878485757750215542162574914559858773799598245295628233092072218736660630232168272052364584493134486933257814500316074090324333024172115374486601783765268535810070691120465386211887684467868896676330117658877103627777332796821855905407483645662591183654045303115534064770962220756825153451378255032373399404388081915244085783922178396834002727110341254811197566554518470869539147822299954370810386156824233190684604657552805496345373542201064138716628006195895445000637042111389218975358468259420501349042675488455853711166939354575249528506888397001802033057758737933671468474652667817105921550932986337125806513838342022451291900947478351577179464375847216901841504378501480698409383479394614355790758428864457807479974699181085038312307525171801042908491998446792493752566788732527876129940429310599310944079245702695274177828863089702516378862805852848241161422513822848928594886643478669079267947079282199587221796020678073222055419153447732407724493327001492469143331839662209972200008189785128396281047672170100354033867113042185286759008501561954491824155355109363431170646307778212260342456828389942410239386686976071566020624001162113456826017865670969059243629081559117934970454369292547176511205907027854320827527763661770574212891359842039577519958715443133213400605426497161458989925708155871097061757993819052627568392354669130598244206897372118782911075728371523248739455507732562552259905883771220195616835251521450811453761792172655694138233644374312485017612724761605185019483711785849418696963902652232152703549562257140307220965746820201525985165432894414614500077666485315790140353600932958046019302058233849635590374624585859946996066052635880197508176385884947725118294116764276403804820304013234200781835074233662324647592342118222337319899245284124865726585053257636439053209257341195821180300352548849016326297790614652540758247308410556799165309653567977982295349732094996894729425133544457783789241225833170007926586987559054482555791155077806685067859938348251597274553119170532998329587454288810682583258427544531557917396479890127159745493950844777619951133709598524601578083256067021337916571457973902844199775739928363802878557298117825460329248355337624377909553883705692345755154651082315580465578946954559069888983256317903406640499927367683705389944138472313349316849462525930284132355402812564931278484133166898728190921389334308185191920782628059955599753456482142557431300309651676104497294225953605863568675954233347837716521012871390302083235923296620658343081372450824355505538307102184244653046984893128014063744904087745426151610812062724500771943701999064874535409781811033576487256298299888315738509699128315118619111280955250757314843647290828499861444078535299028627866423901645100007557470772130759092250383487452827845613359345847216196351202279002472928121642830956749977243576527137704321814369636380346278752485548821621295093046302226352035010516839178080221642663372509396454312141803383331270790426234139868039085984475569893211015852512538187732982270197196362111646038102965012090978728108614147502722872833086586057260397317095319631162546035005533843252238798646886164178540137702486499560401089552797139159306230860127336979725507663704075991929060607969635625199472103469882214009937271720438723857904707857851936055401696001635100275517696378740436167454831745905474516067845297316096836459430437693342489343816068744520009167389753374203054632120607046358026409577690986564222231623713653358096920462622115958182117757450596152885716785888206864677510579919743657099720643003247960972871607311480857244305935105577407631807681525541923988583191051245203540956936542176711159064835660123928854679342743585057636078516629039468481919194769818391974359201715332326482265751774019532994663249338610537200018291305210250415889784076224930405826266885144227070286760341750245491511139799297352392567436020786882787439435799310484856199727868220090235016965716930126224762365951202070053911415286423954734656604525053949094342884098774173799654872945708383994948177058740985212452334163334551657993472225173908439531346069204646962963156921411844170485473939833413178940901773051636051211799808572999100093239483432095429378322799114125798463921358377243285261491948671109743756926507716357310547792330205064933950161636477263329911573204824354384259057612085815629663877920500106974384048750955883097757920285765217097912260577121442879786763796881479192495072769058194367167296268032464353878180120676698683967305584730276374688013532588681426951316498251173468616583536046421776957518269975472017878267008961479022446182287371287300744453826450101570958360848054647627478661865502874357539201975345545460732011670269746886450198651965486981756132231367537198444126312396374397481965704840737158619539792112600094439016867783795145308251829252576974316359810142574807261974064244612574081754555469428413557536530927113867604564138387672394960064031311714382034435273018068101831144379128096221328073076596028799774353605362513299001327516429536758237703085742208415299783431075443606091914235971831875932541323992902200448963094374779928224096234366219408558983079783153151576844995481464185082091407496358657032438096371969521272783744644441888886840224518874055069002697640043030044044958416689641261497297251410639077923929587977368990556382448625951755871123844177326106911106891707773517235422985430573595146498659240864285703577568908188921529004861925338197758694289641783322539512488093921827355018544074280502728101247338981661501691769606814623397981832538904770022113871128473114752860382842356542564920608422241549106363640938452203927115344571407318590953891439296795465383115411170640572560176953539316022292536841236245011955415743119624781242649889506820874389611316133664369681478428705315384711845909826163358251892451631427477353594780960254533885346506701087216314938004542090277885720586920923672684426400461348468811029078008643841162649487761203242202119688659290720017078403802096606148399474188403366508069684385943961901800472269953004654566327550705847070664587121366098832295749909679373700079702688484108940004823493503531819665137237360967862830711001720112902849822562832717269587326378873850394863535395722244840604083228161329380133716767326038028283702610130637266571330555632571455094008268952588314590489460563823867738842582511573827457251702351858109896462348687382964361017799132707021439468539299570658833772325054779019198267847497995773422448004205318186835862406174394822787008011357858406471839222534073688341490804030195387622083177827073350609585507308472870836624064268567857558509931665763868587257984084697358174700072064712159080984978644284612079595415097045422123059340511281594394072623766953467432045067538529694279359031134215576458452861838181263511391044434075818627666716060426361363885420262246720255813160442769597133315227545224023301162285175524835342764562964457860784022713279289053370045041507458102177755901084155177106348976486860440417809192376781219888173433953599924629798535396493231943436414563755374902290370337385829216287246477867956133366555848556682437892719005483805524532480520659199526293965977105433995215714634609456612033703951627189996119289137545370099125588047468369517208515953386598819480207651404342754566928930890984231126794135206261763698408129581606056223270742077623768031660452939326430408080691507888298793252955856490470441287035040400443430485571620901996881124589733079163837903216468294758156822846614940352257482553833976700163696090782039850359846699652221264177174347124375276103996197549842245720819820280047555998168496986171264002555394084619125237134972933783198076048324932051559111645488577550315915703883022411050329867014887725600863517556502707520914856725067716972621870275262938996860479815087017855943839590930391933845450865461882140792787072109846536330012431818396146053565115910275876410704084254996851448314817889693487275792689052017267022123144566928671373276944626668404773308300832749004115860513239952369398726760238241264298077363411263180998007418076220791032387008451591985771508565329839969157956335710769200358895410008348278813078640448679874381461372302515666199754468429244468132828510469374421442936336606218069070775345847568671653704246804562122490201290110886431417052432209634687658157370227353786281961904143855462817108775379419684578027733446595992352436218084854688514190297780026077854817938728036093823593785212845544319017628574498789254261343694793106770297090192681202718459853665961335376594100202605361636102299716958976848099224895242367420375034359155844675999681410291537462621748176153151380776664664335396970240793845924469707927004493312171506110376891590009210074904362064682104254788734878264915068169889783795481615713064458239554297152708101157601470989103184574022990981859218385079978084574052834040647592159064456470187637602336164152183750402445480457380859015348298793828610107373251199885131586476244915640126978447380929862992772244211042633766637894285481270199234176610198303546965903096351827880253146240045539939760218308158132917729348472522691319373323739576298810755484874804482925643389338913399786108842618466264897183673430617176212878006349544489243433218444410261490367160486405669043359579415022503790063734431645263991289423462589848495507185179422877707490428519140937030586968810248419602207073011164454426686186113157396818820375739593817502470184805707810048669207197523463839382309861791972473673283246476384096268634132832443834156190028652778241657471143758730098288271619855668031943539909540638531098228712615773035643633319178153827378172371312771063561185352239901162155999738263708767970087481675935948851618590203790481926176222014055312529532825820934533465824811150413079301421926474651572163009507503774378566422302160608647347195789704973545488584792297018999473881745031867554880941744626854962780733689108937246916549227868714867564151657040894342319269761369067601486131994029514883579370714800944706619804113750850926386612409623386941805808854843433526869630984111142581133083697464615408736957913095493807867236080269000549369781662531518516983151591921124771114313801735160332498851581197309498025143877530802042184315974130484302331859189249777874052805875089469092185386899662770572510873156068501144721227416787327949293657990825060126475920275623637144483658297134792250565478646285202217663827496801457225093508096506752619846710491806574817871846882953410275671365137040909030880580847563059481755835511070723484865334259697565135800680810891176578710730891742351345138439859998926875217330814676764032727217370350535404202915682316217983974528307966491736090549273486759523184519982927183760548269264025469836371529809900283636465997287524797853860553856339397524245590210135938006458051624767907620383843884044868391910710639401536591608488838152930771009962068000559225627638611585895103070361989756305382077479263214285299049484126452712111629470315309213413357381258828273237222307562681260766180664280512111956970819538837092839469061363065046580567933092358171386314803338311014188412004418737833833225446182724086776418597261935071601974786790380015924126126703270635290725688175843208014479239828886921129167505067288223993123799979577068131006717358815226238055935133997195385622079138895002273427463778625292397503830397444793376138080285976145289063032400971969699080577159093291633199341918783873242181392443467933540352178811360607637752108573537979117139632034713641954187124144829205092892717726492006031659189064894834174566354486357066089348032558719433198371278999051376937363406945210267290309186820120277278621089027195231141962065812615883450251796726168927261626251671296019331014887149337713785644122771805425787873651945122810579706702875202427879058362903162576877229814340957315850936264317466854124970243535027332961372475753051601685324322183300178189591491044147327353012459928941469363607957206116101822660692223239189662272569987348096176612840512971655692346053234049016890036089776803050078977286100610554461540889481200840018172875527931138624625072866587358359727171879868169251598628482873212393040328922141446686462495700586059613758200595695840764578107363669321442557574387980339701891486139056849644130390208828976498310938723663869109543709785959081720610988519430610249932274359524832312194843433188681127872674081221493921164333145479879446007452807193475060804403981341266316891159767633355330291165583239333070644196783024335296264781698025812587127339395938758156912762758536694911929274140135053721610741433518816027798851362297414666280116459570581066004080111182168089855601194418351116422570273928865353831644026544307287276252399373329085299403958420337655456552595271653343034397918041419714694636183788061340045637815900323122258967405492577378826863153522338239780038796572282112975162592827952466751989615458578897065904349953979869527732643277466864070861856383617457465238656562567050232048259285516185961616069587330375753787839119413430824331947389831133820321275413218218872377656366457772912050390804223680096121932131928867129307448309493736870717264237281822483280583143580516100771371495659087049156254570656779461055155415584650967606728263179565611002202316346910284023699914575667600718251356174216546328695221577742525038191912107647243600876591513014527910110898607725848431674312658289320136008992908768871751160276605388683934270474378752005486652172864472219452782911262280658774802279597046340924760449646110199429056807640836436099858096499490452936714238756347779877873368289554508756464135182043274184041443755726689566242174591779409630662965451771104091422969537865889877177444635848974559716351565157901181913621672502113944556878737768405687870212118738936285311018161097672502659485655339549319598383271481557270578613321436823543548277793199049163944890166953733504825091453310383033817228291242120121691510885084821454551474649505561727186060194847314239536301316228784891877748315420458374863101439688012337105861658248590636112535254193830435778667451423338776267790634215150542210463377325788021045827231915737467074247853443067970166927741417368869370704164679156870104203971514499499378893546739538340562605072040679540684972382735748574106748201692452865457560822186889262401311633946039506699457529110338496931116046709284334567572674485963795014633196184017563131499723966117285836567517978224129538874803844683952133691711292138865298639562935066768686490311689801500378095723022300773238350130316339904343492014499433706821154798741933973851601263483541447400769876473121176918935138061404505445590197764943577628817939263335223160609487665745812951293349051006521862244975072447072133944585145813380427911842369580449390688816359378220156862021538145498957695864409469786747633667156171211912478630978219080281392021253311848001386032739247002225028547281525840052252695257538543192410837579809458103122474332026783298432703194765350751612315399507520437757208062326491703464361326159371400517047739010248312188750545378717726329399426334754991324961430921973184630941789250704824109894851301954705228071510488463620769856067791314627520716049834846764095737936516705591754979793307146209949803832703441742783947373552942027494142812446888352378929833159850448420049990800245967422975748806471125775313797003498625137203997839861419595418156977187211877293688962213303811413219451955498132620678093326128237021915558120672418667248245550662213864957438531694944841926257477865725256064949298196984151011864949316843800170442245172582343257697227814651685599148493090167144043134238278167441858327823401898709584164635398584485848120144906364804006429614960221884422392847879591033764136222005240343099964477003742194848598874859521254434125272638462391720782728757673093233488037589961247302055319463053674149044225367496799016337761783015997905053032426698667286928059406319608063516962297081322825774000553781761359967924141575625871501890347256459026740018844563119506362509482503855271838353088297585449598867944991894579725698236325043699172661885261063621919096289399261086141605908024158860407143376495508541798915751426089465086255816700737045990997011615622214780436984050080254696362345531874314755096285607349849366169657020975152606508043846543018736276298406610013235771772806688745708651425869108516127929331017538305370824661869384602653837113048948566536120885643209607783037738756506493123209887149732519468821980584837771471212069948820061997151763921695782215469067463574456270979882582252970388619821121238849601987679528047557841426396601702622481932944747292570232286907057845344105537812336655640061903581132699093694451818808351151344378004609562596513680926653712174992388247857614710042603341714327737411215095114618121212362544307907018471526384153347111356995280558505915935764344932675736193502892818728874131944476822082869758972577698226334151786861765517828311347814226946360171392380434700907630209267390217363778670734779344813976999335421955597827780311512760194157382338857369462263242932322292289059426433760391946242213604975015085100059891927830784067887010432100184688650465075081477297604418177469992758626063532484209584232742064567379142219700862314309749232152074817863880003650995366742846865307893477749388097382016177558719242096489664338681772602496781106344516192428910103221481356706317564291605154028452858163712257800186597337453621470781396910735147357380025740356621585887235343875447151466268484674572869436923059013476027749309786973075129535383008290318052377685259890537290136202086836626855191985711873507532377974002456410806520422368937880565844139328699989772316595808666445565461835552423162008093740434037441846525986093432002546531372844108592152081086263146691377124697219565745234854326609811875889636876182150851088656409845384346646925083466594136800472885552801999849517651686527370561656280406852160343226809530150424092090671571738767057653482185106862179401491630130293308278438541713625660568753602820018453859778604426248471756852056723206230355182807812487021992413192477262125670498393046676948480708290890674489470105099448236514208014891854835666121397018423783782773684485566271083252237020614605296564581804002946708849734415242791880656564326179346685534908765585535303339877540819991897872473656317438994084873417634041126034681224662185986708771448860449624190691324957513857611783599606123000116050096206949200231608268481156399451511819005671854898145683921517428489634246305670947157829304664638691365573612409736488087519981800124199812047458744820682358666747981602176086858313661985945495655862117807239057251378878694566711630374981701859486726129012205849624237571484362023319898637731274508252807795149898138965214005271788336770752686103120480131307853192126954223538210059324312984424190492293255152414589634617765118371858327192823834453244751598213369066418732824905893855551031831118567865785943189062042044004017747735534836712527641320320201730187914898566704926289562150214692477646893311898712220197203025846999516485813311893787975682180834248730355921511777885591996472453123759125328094468815443339121929416578633369194785800449771274846818383825110829684829540800134399182126318949535408747642452360291459659193252385951550498734514898811442199588772696044999664177062255575088934019851968977653991789066466976653319011858557654117557487114052944678570850470704713998543161011915587687688315493142675932512174169886955365475965043335388331313271077532838235654511218809602861747924811269545944939018134980984718773426119981356437693424370075170101496511504753125011759454990377970924106098548588766311282992051003037955754229907593180628618772163549739014032550867945469147596549630370801243396539624115487096199901038911787833278013569334390575061058388540165259819451604341345337713028153918928615317802532072060385030886440647827425339631006669307490880384677814460022453984730292593671704615129508924121671052332313295239826741845281469921497069565243192340471696971467553871955329230320315066799165700284129156220103551803085394346659585145767906564956720023377605055992626270481552930988948887858328267257125160168257632704979419468150813211325339890048977199024342150850841323898470616229838002911429408716404929471561536564820196604108982657473938019177879477562269490177279401125924111949896273204838733852283558813759499342251955071425420503084125534979356978714754013783010209968131924417244845946433643920644608306276040289407604013567036048700034480194145421077388613708167301258675777683754765768305440610264233645719713644329992132775815421977921015459272410986697323785169094241086165162394130065109259388329872093413809931065090559012874550550982165347198778096547138500362160315813431782222336127747314567970175150320211548650981040547272632540683329446979907980853107425538553178319235740944267360159519056311770125434095553889945109568238701057761085423100636444433543782667523340893075757490229334500890227069869098728082649063524703174516792289877990375857007029808348264147117325507230822017846999845482809903199762828011822124066600240035601583782983924344075750950418567533821919662944825140666299685995475606556911323774915628980729950634269754269075410903383728871207131781782045643874510239255262909844585697874623986910023975026565241934364449363778552830025429904901901434466266152684842594008103390186612946786575041518891548307566584407749516892583859589680891354022290031085190739610291577430662247861063612618120227915040786180661014980788654283310368938935160479990414700265811125433990626818564325533009028410068448637768991951796998835505418464349189769187905533088025542304261189635137307276274717264525356530443791449295906698036752623031078607615886800831806710393020888573368659198291327998094996002403000575161205090651425242010970770376813495404807270221560500906718404718645113183346156727047738061550223058959391654712453915366742602366962639407554462376296478897060300254685545634234083653481949189718814115878087669563521882905888875659100406449569376180673713754466311900245930071924214744513515695150910214365769668731195986980369177164320336963535208963436479053490332859117332880735798600468572768034364206636418870152324061885881978685764697437096930111839334381499390377597825038711190545491716864906563590431638157710981125184480179614235450303926806046592884474315399060407264693644460786923006523054698604565473880542630629873727639776321243026346187793713022020234664518044381010828289105381276415162652412440790956782858651068727924543400837822314456292004122603229619646185564235664319051634786783670870020216614325641812693699649184482652044828058417377384216613581745407310629448886689741404898528329759328928741284869020899922454914615528284175327510937056712598433872519291729452366123059753095063782080951561633963729071626074161149386133320787474844429538271511245947738518199192293307313321885209641833751685637581520532372699051838482285360047415102340983851212125034378254633677816263465568150498050412170917200546978838581601543231897102427493137510744561453140353496288967453061496600055281994738219011714198823934273682809315935384759701198829379468445940898596814560338580302288841121632573638642632820054098490691116002162268883164874752808937286927887816805910418406484230391202037471437696279790425730535808441841382861105427357849178670379387880509175437052341304275104196759838320248741052154874835917058240710160303197707357769669304695758492057880826752978861488567039914733558103060871236845180502020186291168257737991839413542504748307373338147042678447782422230565852801165649704890854555256783059407279985789928832682900243089277652946462313490773299724661526348333790190438568827632245660504559155593949469663507781119524353824387567992002013468378764298955389516884446962493589007891939020876915711253428097594504808063229619439286196764895934123678932065927382641979018767591059844817362090853156685596902250098992816451721706398114554552858342146870316418255301215636258606837223104081628652523090722768489087910004199455528879403811890657232915619097583402668610077791576064115563866577521646270452721652766209372315540401122797259703265902026144124174274541233771482791412325945732885569276222526248223436691477726911896126970637849721077770368503645596853331396526108369942547578095861394429469179798538801837653734290234807533246629000772861223862632995929707031202077331285828439436588943470332325956721116892606033187854643240292966155783880854979557691699710252306505437884864126175173683971325392639755220042104029976978907691080417790226325873797360921247386719713306201161597033510955259900276436097995198542940737680613386451989882455071651228942204267106234824831577709653043268507870392160665834329110097939878354819442912700311624520617836873825637827323306185345244029576202547666098203350426124364367334084554420940011275763491943855187411787579855799157986893000164210380515476838479040472221626435502197331100774112397646123543290807300213884723097793945385720667088291405005777489394065030055097089668397396883987757428587893948281405596534166769721927807409005881792969485209211329036231951396839625863331080658301834443612083588889023308940140003297386937927389887845647136994440535661201451331333861035283964692417345123953485619729735782862203490118156227691283410911724227561652190338754499010901131931142451308935287537236373403845409399316201865760176648621309402121118826500652273422235513739329997608915368846035428550934624525975226184800225268127566578485290168345548329979895401101918664164631524103904760331768739420625073115838171572954401105405065595039786346086508075984462067059151675342985665658638669299147267277158830443090828403796220246383527448414919391474287475659892285689836889246104470431740006146692998370735977674200798511254614859924052588212833401723181717780400874232293982495656977868122503703698469505645833915093315336459937443633944823551393250813456124514654446572829537078260903144042839302930140787925650674172691914175055164565085082539124531814540714079454199526857795025725968776816047847821136181808141635756104207636064599123871949384196332647429726795816530640636663213944396936539642060984822842034787700846665031678748739808461817723679411085549131893634427712134322690312956484878607830950196865455402598951897202369038700209648274387234325891475465370465757432056180994305769980349256859798727987218798067892036606594820700030173306536506291123705549495096726002281446489487646011645709193235690297059594137739592985292259962634479008982152582162743798310909983919859719174625165683534014582949936395149263249415343280505752932421087731753582832447531644599907458767441459375986685094222608788278727046567213733676795291071497524072447211467666569361777256245375979003686958847040106407636574596616130746475162021307904011385396722168249071566458923312973446771345872790017650929198181304879683182250463365607407508739608476889915851080574697380492740686949205869572119491534728459215574529043969279638988178477125459915910916811037637854581840630683784979749499513894336481575910860283832197963713413629801160341065904525108953048529579726429478526872860526074813798227872437112669739292757592784980567177600704218239152432709928060254356747169756961473311903272982407666593540927431294024163993677483625602008791487175985092009816760088583631677543387312192649600444718065178610770938827946508742488618129020044850208376570201924902874247372725056854121455605247869276292571781300943185851425866711385109216596822695416677892063229470938927817479541009315132408165145518826836642801641056038053925331109085365715472852452584073064477094316977312955607039273932747273938944096216377422076891720195193729128715786967790282607074935164688051609094818818696311032219504637062023823018735171803201181317504154541639580638518080805603685506763296270254797484762981626172828188375097263091135528623774803465689365560911440059232361082323426433252187365317748814537701578648534690240399823662982724608901658209439485949819755928462911647000320943468389821287794212013820236006821274316919796657086666539012841798748852538976630156537933119190200714782146637834995202603281187274420385814256294461971563097580558543697835903569173272196787280440308975379969790584264577202427326959402425028242432736472597600026010329268705537198372831844503431841359659289868584942714766942757297896802365356252361274822222261720035046590266761708281736724354242960138923601865626147833773247368437292788204619233092603332729420202619654940335417247808176860793528653480699517051106089344208121538718340179615003122389149716620515982948147791331800246858919444169307428338847700562996124175904987354552648669358560988155977613754012095796102915148781080541562534937501385644224090567649136090928403461518434040122824992624144565237936499628300134008791558985509286235304872098268680260309533496188774530128010738154417906091791104245358901810671162491022122487472765137105194104972014821356446464781652568217037321912087363287801967820957320700741437977318916629386960304835779408313126263789484839995679036111926638662420637515267776965450655342871081017313656500274939362152018618783588309663420079415436536115734479352732451747476412034491784203836443658440069292338645640464124521077022682199258490705565315929047053616040477540734061967393434953088512557458275058856310192767609682869993382402743269193935749018368496677508012174702921748587766261865359435903637641026924800697732327488842877438015027643778838679251279151762747277080294835825139227557594255758037279741827199828707914100627978466069177484249607354725447106236039982270463844643081602861190643834911512902581621309708017491983724021028829798647218009437874316934995470923365382726624523475155175404715924666288236763158109508771146771554593219487802671807973290367344382886775135526917286500649106723264083943357322881763201196792341444535506215758977254628872072626888644294563179768642121365451251957779192374411536177606482959518874496438830336564301697029261442486972809084231256451208449884693905183496167043989225109104264601718340137770787256604655650691717246536170370987108020921677297814019821409233694296846707347153556439571096814091892438435459098530778433567915937628084092744145072568049889152065192700477461809904299977748049687090592096186688069923347235804059192544524929158642197637634669201923026825760169424638072682826472341151732195889527008699178269549632083295102257579480476146414946287517360643101849485704877757366804784436067232379467702572944525216375842972762140825065805137544078256828001737253717116561460333865765856871803044740133542776548895978026423889863336364015397935092265454758727162314711099342528321075332590373903503441534335553357934172167092282320799425197550850945930909668899254240511773564458976336328801252994908393498933280670370269367924033486068618706816792338729001525114610166429515610784362259581763953919362850514814375056886989017452376478997073312568330880375554345919606561944551436880661413877083129307560126469571547532739850268912346167856502003545575186678183769018281283390783215680753681091676252178167810417635103622719235147590356182660448206288428728204080910779117392920956945426114712683920254119793211369356120844915233375099949501602097887496479447617315565840121510352331722667334652295505750505150416973755614709687945754372641362674986381941523031626984572930009233129241889056957919868751250327777457377081181840439323157405267088116248018998839458181798376033516537372111947663052193702489407796594128854721293627963691586795155862766774693275652539045768508068807410153457294540918003200128660997846747430505470019849974736140513085695654266398455598072773180996121609311514844724171618478325372826549369751407628015997796276125507270133293037165903719800637835112793338183532174868176594167794859521701223898880463111271212044718941679045845738180643095020136735345511514506615313082237467336138303439017861768155203402736591336020861700382187361711616388754542329730429428593230902108422351971322247264497398740809133385480694583228012925627442917947859765567643948270169069334092569340168061982986441758298198637353219648564927584378490685021166926268006165664625527505647777930217510864247977667926792199702714205742843762670682762263630547361034350362131009614323614138239565279502476645613169985280310357276073815354705621000061075179854841722942907993887081512616997741579629209008991085771898509655179966295268595410592264117684332118559300867969767023577309569680463111725376730673656609688979606208771549225135693893625492174883385483165204323753554251385648390073846711013587936409193754408906387749381473610537374310431980331295240907551513102792508445748142376149712734153789867582769259492623355358458871549832018851325518007905846546985916392878995005925750810468305831049043339631629327544498386526928025365951958023796150505813703980790809944540031497869000540314638531283637626680947287179998581063633566382909816409906686156078040505773124638023092603912442020303266656505921382164124768437854103990948251288622510709979990367755594828837642701635276425043583323424640210649767153143191934178911307815709843885666851258512883999775303628276470308667688679061650575813033653842658570227886753730267966834360920897868100135462189273113584812486275444568005036396526296660107980033804693219319984923236077777368217297877394286524906750638082180349089207776397449763629390261377743220529548614631216523723547558910767521124341132552455564283412022397164246289817427834116752094338157914029795421540961821421739737783373837679566591879783575260169507319715072111503874347142159361836045398742191199970100696643201357569388021880918780454430669692961094131799670467163025374132385342420297028974446141794600025645700868459001767072132204426880175449848868165197248754516244176631203380087426830213112681987515565728173575643581368429585288884868387176798957071206829873873295944535178777221416012471521429429587659501507285701351005712416469718309312028150771932732824943611476960283845893622111317362123526538625011583423687529075657497599940792889210948670581051337936965164715003403130794649505967671214897824598467447778428103715847977282934808663973839033487320251607308644617493199925573417402469459102387852089437241007883969059779477993139230723195998337444420593919701129745587231411708027537974917311831475028325555750012289657859165176437884634985118406811540993918671114023871894168636583483090986246011755466641806625634132498273992359753321707564570816703514907188870655912583413107045479116305579572707308886334936975468143700559036807667747942314996867364341551421482363572184315743956299638217737774780679447518215220703683001345283511907798416608004331013380554283567633628253180536587529253285140041751351194887344077737720351943768578481949528064581600099230580010427100449643127403045706512080100467959079846193860140609005646449009398632105386374086649817284550225555175209566711809772619490867436761377652524788060925086474340838362014115284500153662036728764331923697436590293862797700804889417716999768822521047648867969004593932882071394902942561012602521347933175494192132234662446899081399065401254688530151154997596677948609158169220911862567664277232235662291421715417653357317313442572013263066357263894864595272471003647055445332437340173686960664742610958957924928219061033595566847432110643947490245439910221100902477987833704668693202314674142893326655205702708720658650145530204268154570585794194465464010252610343450618778411948368616412850511947835252298326630925712563642703347374559803253602073262735619622596314413574434992226473305228416728997911126943305297546152372061092120858248159826562796246524867518491642597572083431969732921184302311529301785644780637915533323259135058411255138786824424158661350151342307068755438345628148322516871916623051493143733888991565627842641382801987085602425052554158756009932265566297762494066921566113838712976832395824966616440870016131369043077066186579897982590299587993942625209683138143496075919335076006676109744252300710519554502027404209366493117779665976281915701153709969787618515532326276074472577724011479553193023137477638998361065964251318942723548590231211346688194458937292591825138425451245736264599950087373842704057830526236177927454148757142886122978362101353943372351293397777736475712343281275423604477107857126475582282353443907737427723602468622276201555332960991424974513767009903005856758179597282990448152186521332558582699815966857657395850231717409717577019625985729737330273920495957349302909261832602775857743515889257200457910554226518550875343755434496622014411527783919712147236533900371305154366998799369352590935418267063449861356006469323644076525453738874551947930555781371328136019300608869962369679165220696472243245257336689765485274975780330236543721365183292290309572309215761469010504007050656778263848013451818400809243582041975538110629347510881355782539837675584688220811122193419366632355694310958603955841101046011291422163424657586387808433027402991369866564969149857233467296468566343311714826961989112298615475379658254425878114316914012267049823590041205648336019232193878666556950401797504347463015162310493458259438440446833484657595765510956177997086230208168566562697687646441478749019919421354881244790807916164800921976569262292330607610373517165308803349240254452727161412943451226403757462818181911308397884782735263252253643767897720687693747735830107884463624136903194331157268700389343388839250957014992512800179513122447047237735668430773950963067168946000348983945025336920709594815600799780701977559091240237632923570812526218490188944889040303023879478599341922660284474850414347462307783522569440916058962920324619017374023041372111371273175653663600753643257075406187744764624838953384260535472178246241404151180426210860170417532312241689384569431663722349763299234908973107433919425232948045528568657911780203937844140174437705946913600806645085022710874264326223847239813723443496347643345065663467806468039061248416822908439050459280551636144307068366961026195517127917038292174911192806170079244014451864525088176995433259277197036915959127262182107549702854640101174952982304267307145921625636797662556906465032947570480882262501082825255742412350440823443271451554124556943022539548529904373009413340775765452937395774971528724288087960985331798688428480186621608010334528748088392425498534412289640588965456128153762080139759166739205407413435204807619890974394478117961753152209790623330647347838871994490487211229283946411162217704688226887903466781245537340944277867668373732599817812508084605008329730570071935908580713012520564163475929873222600335799386581742274538704925343721887827928661479295812432544432371147562835831535837048347125122999606397055827314431807009824262339293628252863639323947613367717841906475773769402003630167563602331451461851263932956122198552256853896748019979159145379768649614145358185232324263151953362768650492829513475857309168115456620328789629087689408949962450975655922290574969126659954070404581895161160095266596492296534398409241021703954251731111101902438080824449265423869809717760299861798016045309439644907966825664856401538117153831205154563045398110835449252992268049964830810160968625530429629733623468565328680471005893679427255234983938690420293077273870932306043198373947362843097442430289748517509326202933022181843115664349002214818144419726090094514420131120765628486483063756546600634134969439848968585398109189827344328581013226762242663366014785656384222777947844166093400547019495052109252547143381282040485264347492525195333659975445622427591037739272333278890411208491354016215501070992812109542851943011301067888761768079190300852869376216964939569112495887593901638707075808799775443806064513452194830639812347831153800520822209772679389613127287328710664059906009059774851771524269612069688098372109492365826666688353228422277959848934112781472071607356338608621464113588048390779272658129378920884829517020890992979691411580713897106818396009716474817940740022788742292652191846963280510564259186580361177123825264214844046957361024644911868024837412992666969384852871612010308446322959988695964245963683756908714797081897536254848418643414835159410351652913508192889426699755863879732476544757530975427863116295851879247782748017263519007927380992310091737622274697209442585581407025847483102817430083275720924515447090855399195300887193954683885274352182780259495495624459168983542368440370734779893347492326293841958362542403399625473452934368757024607017951762637775315250688736475076876090420809155029738327504249216076583028451850035312924316321050400859195472555975170447823600740881490380404738349489458222387038637018610529566239939114453309182045212552155017850851109857124758712645303205589091984132563762483908119647130185298272047544884357293642441071534999103905668598895838951006738382315705847286988639820291730381755333053751938888667911769966853742388244167581005523844193993381131709211465325726212305974059966608192521683226958679308757149893408461550918125048043572149989054991583992985689729029131227362474115078263781949137797442487778840838705303979169343091432596155290807192383773120796340073466472297857797001120772256353463162736900888844430212739692004936111612167873754954993731384459382261715848493260851720371911975993967966302877185971433425890548536903003071644157640751012694183618045670863928086647301313379242616498100318323942372375085755844602641824714248685684195506340153558189470746214381297326120248001331270432766454922865091477496051756791845514756523028346541514194260581552839124009763025036259528159867397333903101749541041041296037973605510298944624956152774505348182507979441631515830632913984958566786715132533371094713303817177710177002819096255598109698629905377436951015873207344207025383483780185097429217175945964269984714341541851670659776517938276907846424587142705744194108970473942295861999480011640435492659159554355881180273939070437936539181014957453157092142067951489874560361304531667800253081157883796008106528044613823354702725529692937709761118071186964320798111070525286798098715430831922525887498066329103279566745835467896404011165020594357817785087004153006005520561137673697623012592813288241372420227976033642571238723286306093846955608741694443062508585111671660158826255903028368276354372646437578449870765658148587019425626715734091872026591519612489909920086505165825061649838837929331678020855824396213879311844516298433671502444291283090751635389973915997800805607376159856549850921803040783538521230534373375769774262653617399451649233631804981207909549340523414202841758360135610248571632942068198262504527013120909963484850095762673297619160073043610341902740607829296295466573702791533289329217721281680926891799066381905376920711802200270817947276928299033452924517364597523974881948655884620199934668596949828778052123037836654733469086508207101387633284011090960199945896255618285707660138435156512038892275688521025022949028894482296994027384234442009441707619937026562211819370969718577371080151958258411592043605768845616354061043834517729418249751110119064114681118476865872685465858675841437780313148111651566154140066419587757720096086739554741870453298348930131628898847190925643068298038712747432903926418042628381034798628225537502327287539829288861796787268771175154629754004886587113882863201825064115590298726570446054033495388606496568882730402234499770784645984448460912727589167118909504186510767011379114747090062927867207365963927849146101313295715730194579536720413838309406501688967705051719884188134867919845007877725570709607825194504201881155439556052553217336907194912320593926892612391118678228710012799259986985745414928773305130942091911384958533594046918464252736316378421094991437879362326320002927585754991716136894658310568484186329502740649926954400237652461163581085964544130820813843956164024197278562779949046379482362919323391816148370822381341021685247565773667806615763356761797115950825382028007142078885316175636665733661069713716416396930615025271058872432892000395766076591507093897404364928326230381537333452876074787783704995918641903245226265665344723954084853728712202619976556841520305107151758274487183928213634627277288969281783082001260448264308012953200833406283421532850268196523706355831118587441330894531336400097339634776930880900975743781032233337588426190729122651403913725542958350023974312181497897764058967247309861214640518556139752375789926742246240646357222860974537884309947732734235238094345171733850031912963025411103187668579597823666409588142449310407901491293943929353999719336806097771657666572648744497721028674819740412983945924075347924483711608760115065272544414703714857237664161892766914829479508149070327853994856413721872638054768513641385832800247771816627526562927636944557830074759834394841249355089650887215879627571041082759377219312443865193472087349030904353002711979831880032916862164793474199714458619342550405448761314675488356016451949580802379014345676328797379388277374677223526993908463693402206787578385421529147451935182439970995975427814607330132937377666081341944371185992963128313881237079145490684190520067004676400710650736512750434865896162849137416139098256375878269806058282566258072597612790746568850052373396080037050237693797735877500088430015949836867751076836002352870700789564540908906588420430291831617807857146433151965172149455499428515616776819979625578778015764795855176044574651721027228413440204119871692699661510316004746674808993766749121633541275969032734719507756888237550164453815122025627816634602866476782665216643608199575604028495099811415431346472222788413926717142225516094797876659343011780309937291111518199232072788355827190534237165958952553737361181920729947014203700843415114690435584874668626617755912346212994732542244197405687372601044479005982001689042707089786802885824254671005733389573280801763302645083795564958705513946530796422233904434299517251046962786975156077028870464949503897635227171977320215083794133052576473299019401986424743040594334245574416956919841466867101184840061056438909941506147318608931614348451635428375078798914427568466662272108936918514835447460717792645272587919519712734767575702631792516185865828412412514691728501337932367765798687175696214551283201788012267060128153605539634880147365917780718806888097606474936092625433086565456705110880450634663578967574695460032236622148331288850179553784876014499598847819921754952150189124774960154758560307834049286765161210454889071069117877015138038578513073719202754111514932685603626594998526692100581113133248155874462233753011692204531418697416445565946758698676238445206845580064680871741221310892747046406491497036827178901182344722245906299652604364506554063166027833935166507273898176916319368139034824508894152209725097875084366536918835398549872192994835445689674408708823399119410252778646932151151293968814323931880022556828473544332214421753500185003309608524338689269267658221956861342684974228284050366738641208154386925667506321251188472912784787744804574914900571070176189556625247261461309112855925647200323148845931054082232162139908574761549501342134479991066715782613927332271903760348792594049192772591997214189747158055755718853399649284355345459313779231096086208023935786295269564003475057084042162720200469987565644085882357398366472154773132022093071079955239516026448593148014614162947071464246635910539452943399418471992691296010111684274217231177291151499377948248471734442779096489047364084486803047002936233629692838604538156767179993963589274135794220304209584449732751548370615124214118658849765557293260662227578141764119793494976158463167798852913839800047815877195196976909334124957264017205713222798636407403138376607503470417009563625592667068038423905081209836333363571612922088791728723393476952164721497820887416854264687636131075217837116987239140399698208435579654485618763626469690090018339299860625638495241892288560896699232008263698151175966150681650577380885553968077027333013394960468321069215453369381101303970385309958512069038183255815569775593916127985043186153002678197365985200431577693892798866525625220704460016880943884606446205242764586449807343416502793249305856438018782279190084704113710829375669854522724766842699030173681161528833288981148498494984465564294573919049565418471146334607486494555429835668114648975394341806724995721045566164890055345547533332308100587882548508758613499696192581895080649407303088759797226513694122304001149501139557218018887750541117979060204525597665042103943072779213579251468661044828302869532872817676428526906659823302705978861048949793340585377170975707027622817053534362244852842421040838052687061396584630540642752294542721605348509565200405416290865965097960362351602980570066181475600218201539045461056362724341807688151962736607282615450741109043198005491636656341890899708134981440630288772798564776809802129381432728944879993438858300007385464328210614028959299703238839011413621529296111874981214357865877562309838149762836792693696752590944348459320420470090298228231729807468610211351558799745778592988484802319072057487851051085555122374765564451524022648550268872956529686312308325398119272598466387496557301078720787093750673064222893129836861339898802400644135076494034097825826507766745520396371756257255481413272181664365175876041016122984432801757506430228966102367893787187956874928917847061744103839091726928292765728428716998410010728334936189407562012483745404719618942889214038826056300093776814420442211927488213761816839475279765221085774480342801170223952068767485438666840000737977329931510984397818707384146999906513210355780286495854284343824422401067174165757698515284179016175964777986354284281674808541724528717169355008987339382669902933869595516142911908482737133489288266090860078518823545696383831952310136466859697799459446193313493724224181708174423111675542335342642135410584451954800967513263015112029670102954122003501315240969357572888696957387294081293432856244213389532837524556461675153110078588398015018825015185271058552030259503767220637092124796051541655598144594423223025147192348128089151010705168009464620201306010295068789597144078994961712230443066943705028139089308632144626775449502210970563543221035399012993760650878570802096282142633469906743379794040736316942893882340649858380605073050224256261470153569202992782177618768520083757019220274445654508288891128658566244906656223923175264063837166243883376827179081956998487416842363260807699610206257983257479734167625258071367487375660448873787676494776509861410655803220783058906486955241402158632089649886289472822012870561318372849486361254491407106673996203252324408329224447824815497233313455815827462655702943201620410581007742985308291213529367958263564965421937908749680890627461859626558851649507500410982274028050635048653425445210866461366759373177964568663646133176093073492378759784777755364242457213180454464064902992526153037103866667122865502824723536978555038120335367825974392339507764825680944799751701101495043858848042353197904246042645528755299181633366168041983111819877987468703049704512396756146508187272761746949215059309190992268164447536274980800995476712794905824537424660959483888145224545540203127651232568658671839959127286028879790186508170020170506817212133950841881858770191152638055181736090419371370470770043047937461257783217830399470241861494834367379978057319133685211590913441980697281647506605356001682468463124243022769258523092122153090374109343506609741821266318500521624937817768990862354763339047254761859964774164742785893746093446246968177080755038908808131177443432334471656042048672246139022794900493931533812160521800952843320225652565259204226809636420506040145242394675251778958008398433329358727738078912959949078004727680000726476559206639377500591274470888666095299142305743091633801520938688197538622332537827927603905609409614110402427392760468484046762837623977009845760933898072894174658245815038198618902512626864751320307217391436233274355442242750750403282434723469912449214859980794588855669384358712907942812268833690418223828658103557069234263058540100475099429379699994490961416204205355091118697126414383215834034601216245000702204257423400850904759897684562173160038863243034999945684849742144649842300318900011388632806741702803169117658388984748445002469503864531823792858430090062548843100136401619630069804644928875712783534292118475630189538931775683994368281273144835127724952140131071625573071776346081374085024587259561739590938048726966537243047085181230036236593743730678615556720403051735026444765574232169955847554408282072727970090618208201029237341458481320683550760565098705701453409075927313934464825673272549193573734289017043741545485624971527688281464337634916109823311515092833236503162342519771345985229715845268925725859724726250630144446453923988950152079914228747331181025970949456316714456157569024487853117246802458908680646438222733668504551650938388317219393049376008387561936248396293288604896041096398751875266240032364292862973066635492492292719892679874111381301188481167493827051536915141175930523978739838430868920890338418466466887546128154750506194593986911847221898779086138042987009134755169979508206411470959402742092401594578820945160421860856638840060224086960430847642893538424152743210026100967073369600854744360806853592905297781266006296877373381214066198077958240420185841442396758400520122063638849330628980045792443098417040463831557332383919666654817323866183096313278656378272970000749560331191500455411856081281010340074233718886950402010238564807453713217507317711227952473879019443164995726671975033273208102111734579891864766743382559789379274428698614597650685451504016984113778798405200892898506708279926598626241847999429482813463710166313491041237724445116886446067174722056768133359459438987573824006779425260050336564581996717925496376181354230099146677731647571261153673671157009445385543129582917989648613849427597610511588199895797327096669173695679446720628370982244937004553746390313898826278309512143111434526359342862886697703332432633192729341190092813076549454494797481945524953966981105567295738691797691622308532426633701319822109527165665723622247195208488979001737423239040478941641088955704892176638163511861439579485503992932901200945567502882881356592761503102454362256034178804715029118253908212441674457494172879923115562574620884579819322138984230912357167362915435875818873001272633028214814867428044608320603904088056011029164703689739389710197030879457441493479929152291180912255933609914638120695262293712675502273820672092383237329618415952944645748177478437725939870790037385218689239732055304238288168223077793126294862344874018437269623702093273353830350952956099918460635469522430604981782217905157886539488837932194820295331206470465558487140780069779449146470794642661601186684014135130456351800045060110247162561745465939528529075648044242481326693264260187638781135042845578575479394400527036635942048866534284569767811902053871107116346477321006983205673257218161221904899693461931337568042350428410947443412336469905515097372653297428642638336886100167200760373118857691664799643938290352379192001774252742583627980657229024487500154684977504564169345409886358706845044956740630052705702261267451935761115486554460119972698032565672142265404244535687699532070673760545361510840736557139059996164758519233438298327429452060603688691896505444782031357709244309854531474211232062589344805925528036156165386196472562859435933846984831455902402305469327306109571093049969665862570926831755056484765665188661985937893130402554766739717643255139837501307831303001548719818719827409605824477409343979702681178385728288478245678339463392736147853398764554170067623419807883112793209282155269798388969107219550427313675792325325232832562019164881976639172549589655227640418715978167198122348211082259466217722676506889975694643470630009442229435455657617197122647940016367742082754205127487856518205978151024137597517964855352543313730952009166362019204913553777349768664784500274612263159266166015610665401862577555551745331524293698582952262897533840650547567297621795184685655128034168248601765444073212839879196791401312664802669335360094194104376069724887883062284402210694005088354639467983834239090279690166648542175486164294077208741421556433849041067401827852492315314081574166944516711877969197540001451060586512649858831210557435164752093254090123067795621435789323011023534897373849062588270271593556183860350761003121175262154008109386167061089518286214088417607166310410165706796316310826883208335649785117702775468118079838327480365789597004114113282806133152624530260201951071707599754074037255412178418816039103351134438340268354712278375310868783818511761618406799992358894160538998366159471768312113618752923392377545845551075310836086627109715849008278692449043980000146335259490868137581710632748990976049098200195655934748871318233616833258787785384403235698757943220866170398665802672445769981241647207584830954777955260181630609854795923268124465281548239648719244354646040200165857172376155653242824841533220510361928737266237264474779512232647235048217116661797595471711657470825952874485178510981294804994948606497132108550733525561332173809233839529095813640683756551399807669882821048833969166911477044251098978238047442169693554055504471217767989668937209765081068050400431500285582636405920604520788935645998076135465560820852845493621014313452636282227791205321005531037433456201860540586774448930417869601114108448878561068090614746242816290889209650337776227642664561983767505900097050537295064730411609148238916541145724458405016646798518532250499355557467207935325438014962853665396746782729492022263746114278171119083963761256291561403464185462376058221943456503296616555320464837439425734141783158834323938664159211494996861419642334037741886082263887761927131370934093509675320943881474578868008977675665225169642195053239552051676869023421950498597389270337423139842437167678391416607896893341078742780108926596673977275519627556496622992278941963907682795517295795694469483953268352300167526947742610172379869350364698613032161568013167494371347795980253001621887588026903372635745102882301118711104142264720687710277509354137722619023445682680357125354185018969468937096764211005725781563328947579892772901995695034391767677293434193531772546374124043363146278835519543828068548036503159727612750114519144965783762518302669489258800843782654721596976028740659939130104069688483622210612411302311462596523354443194927271653555245887104482389755341808003555073721490600769001509098555907934153956084797715826797422681869008164775015302690469456343228965596413991265649856020745401056689484186704632640388309457884073366022233266909843437997640769503024030950273680969309956306382904668241130064727115145457378845632215085737007707604720220489524004853848469158723175075831021299733937694476263257915625949761385174574240781795095970951792122774479829921621835916103723606516196749880843519135785980334465462640479340889655028303767953928906161437166937153320400260273121001759842388792706548758052421495015986669365672419111166630083286636575226728321931945472470051517651647386640449891563880113678629265063563097840251973417968598367697901979498906279731222804516590084964049473192861786042589828285090840321199066207004308207222429623676221123347012682183891846988349818958972684304762951646152135490003663430618166586217547999765745210815409611427206375453966442710356944284884578325131256191571791823964817819737862821055020201665106092477444768065766900537532937787033677399271545207316039319318691614413452887310579355567962167488220552325370277287975435658863780336457355034196546009480127483896200086472619139157558441717533759934823358385023048184810790263272394072449066117650603073342169480583598075693328790166634241764444629891452269097565630827659038507308798057676359860805705382069945210456921114293400309301561628313815883990317377728977141809145111137770393118811627620013956532749577581088909593865879955922763581592395843819225495830827179766694189492067658388210064774037160173489473582417717011612659338646091055564664298271062956166781392667379358537210413725710924788457767066898522107073995474280379096619341633538337862680122727676402411835472345125271377781165257261371569824870037781903933458085294880616653511051395826371568211047992468061562469257850448259396608103669113707487412915372130338462913212206263785028321966871817581362492638684954473830101800738195250713258250784760257222302858035849213356368289852301597896858831737066274892440187442966359851551036515249572147933505605552972600573206608263562464255887806488557609674379249822163230184805309849230640013880666600614216581291349876281654388355574486688688141397864624038786236659062537821886192880125753886731301424988272427072655298994871193418083296287069949967496763801495267231086980179090511029339619089725238727266305756596825289137457499428295197774291780388222083422354880633595130165927262052112827744139883851995041738158535049270258181272692377747705466438599579078237037476553486882438323283795575674067288958369143082565993962972492998021683267653709650618670393828864201521609217679083498935279455223602123538104866918286583762464748123571690184073779892554488931445970233733861151908338483777818667239696558410187414216248061777267523881532634735672147777095978894841703256763474889638314038423339247571674379039284003253531624960555710343338914610838235162633868697192320276085667127350610141233562610492852660402737373070392239779934733744592046377078411998120247137841408012889300124647651425876869248474562257254844815711804847062872744762461609540957470957097015584682048815647978246827577278982950873749537568664948187889580205752486222042752448796019455237114440704588558807133576684409259185957594250923178921924806823835052399815317449521525571384330816789912080540015947243806214529749486708852931013898421989329603127483952402749796151511855251561680934305178410489749618153482686799660665887227764922375372190476102936631089648049668281257254441079623412638488085328928457639760327826291143412966497765156847408551514676130347421873412469318404482184740124162119040832075798443090851576778915284170519283840914678440908153295899481947102469278948943914883408664118865323310950424729901898408410824227882226560513327695248186597883537133250567981033915225694891518193225694684260447698974862561262708421824453864996472119830530705207298598310203340508051841246526306244787989650316483364758903343681334337619964385385158753112894272938388422636140733819623729652816088634701663130153476215041637111255895761018314704518783406658405706416988844512850927527207895571254416678275531081714857259439260051902246817197945050223555445155631804807845720284757699458642692436287978330456463436252984723151160002693556091036234146333670300130647790105489024659972011333806536669136714724958621267122761864963707404425561476309874178830250872405553403229092147935747985796100945014916568433948026210842403939256882611998904456344598023923508714788009342849060654976840123045930382951298148834405418400187772673822009931043924188401900585912467429490742914645902466189866662085856413664652084716065295007524988062025905713653796229239708849140347873314946570170700557397393369369957936957446303766907903462955470155474155612118829475383737138203058948372674788496330280681935860922827699663455710888848209127370712948137279329279205271398588008786734553645919038028535176002120845657635506916001474120072556132108203627838421870116160510000929350936234726730217138739733424931236796662021958263086079260592720617213389577308848413233270448308799837793858779345411416866856165437522821198754811159641891628978674569858658291561057159157126154026734801726365833684050570344960820879959928619421316544256175174678023061508397628934314263530933967232098367612632263525308983933857770331666901598835881883557524967543340961095945818764333015072655301173059118837434602023330074425455199096523775206175592792761744354618296975721831276808219264112428405008295324785117783351486966513159025912507771985775082248207347981981965036465633781139160530879564929518179996367659466871387928261247100215055273482522940043257309398592642278237499744381058309598712614120435900741333561145039990840541140877959060300316733126293672787506879837141895381414571904681408263118104014573165001215279770254480516391428623391233376101548515175109282260779954771021295711639757000392976872541562663246987353782604179965453723219961050840816051869519373565011459246199379729080659430498486808593376350740364126496117157673701553041170318993841209065063165879068004925902905464966691905783548173895854829032648211814239685483576052987268030667899251698541067132318701837729728488907477261216513669523642480185712448263937918831360792073699178301236400243904506655377168147339585957772537464277762569522228716758120430211015274455938620305328827532755019462340473410229807011524815074558149719645651097555482728244516825941844841095375402747207438017696603291398885150717031819207508632383746231392662150833274365511701084993497244822652392654710563978954334196615516483895647184495944541085570495638155749171347109537031772191592695948397475037001020152576927583416500211500268203118396256883733664789395958316164309258300989885056969853631294640122547819179294383732525677166131036497439445111351656825891097525495800418002169614165674869226759872755314185491277391939202152537578027681403484914726270596489770558409367719336243085762532115188078202606506283577664715537298020913812553164372545699422036841193890358637920042594947325251383408788780650081514424892160502830440147650441368111420865452604046043341962153356828274298797366491938316481509832122378367769850749966144287312464584548108293915941989397082715385631139530633008280504219107980164483020452367497658101126563137146696912819374800442403651106274791235738918982510027485004810176637218132026067203651952748573601889584040693550844370087148900241003170496853446060756309012592760606123424183941435823409469686454535865454180921127737726628127918635459057252700943115802048660870647092176784114359394931827260655121585178662892612315341084571797413458479611826850620103232761808544426338458485557778428057199581352965092718115377125178950278502991965718903361366324088396894499506494595100633998445963730712578481543920116613294678338551051305788456007965585186737235573725820059156493434553943802060090673075336515093307042848923738634085899140014808477207235120075461817364572242499332387583711508468369846455405727595953721582560282535763702287938583532852135405466308519696366484258464233378152805782727220988282449371837016504718562353007003386714363533446450819722481551077087535081782022965900144384194884596638307956791293386651318313602009864377646464072208806509268367261643725096408560365795290629575076526721948824019102296967551449493336138170736358988831868911018394646568764879079286502481791423180343376377847991296027871481748732311627641238765138785975217999234189143546094872299064618960895202428410025041791933335247040231779836816693193140798171263838314399151888298482859458134853858481838991229048831827082133268645272233668243344680384222871929135938532920826076943024995959009328234016910706346177139854834749719613704718291074867532546107628140056840444836111609449852823453474771965386803990758662935178155390767007138742599734712347835960702274293813549675993406195417451768885119449400335287501296292431131809496482320346967859500949194227829070247957057190609137254573045508340667434134940907995324178219709017001872430713183749129722357186719884565138139632435658895463403974069027431220482179155731689546214241325632444502280747457840948064584450007996341051477750741813755335682259495777188683912914242063821774002632533628700990544303214872380702428830897749903723190505668379402775870456226973523350156916383423556387537944317189152826032218586655266507476983090001533811442822838459624812547551439007818513682612369535539250050461100863203982347405496860283530161603696387533333332937207001568570668032569475765062940306716359632129718978517211031837737552725619484856409465551728635765208705320978734082764538635724925711001803464740934870354815134946214324457526708987753040835625574307669425134522780922232636205734329837362195708602167875403619542936266687746136421352887041906853062587331915481802797304663791325672495636444108325999170091273429033380848324597525172244489492144733899518644299064409172166598632073017709422078988445765504691262565980835155972334898037093833479714590022966233564685324283713781646281456109338801505055785334127237684447219805187905771924162303881802419728889038407622684931627498497479102290009223909575037449476420639615981453181630451708234191328748765739050287229450584716499230463790946168182604585295528122776434009753787433449053835184127506752129198576434829516828938781888903321685950151220277837883914128934265190890426746850713442532772485212009276537376009070822416679789894254936553542227658427306658086531573966851955878494946520511327574457625067506511390025103933537528611157142634625923608872752223971630821635896653115466295035342595278179888488725506307236024736670571165577157030314041873468350017771314366236991850864144593818327612950485088230287308617944741872853362208066743425007353455181107565421249567247734089336660564919820019361446833177609073894000318813657516604847609124119386960240297629476732880075620286565051464129796650115874801561541359225374374495781830477195285477232349710338787081068003605229097944860721071603377745574732295503714828556781661029676143984827203687705000384304527275299935302242952550355319317997311736209525460439564144002351498949690578636050634528228608711434640746899158490810810983679326434257742519904478600555026380119878022177719240611576503403416285928597136286722539892969547447845151705940040408440850220854482212860206803973295864737073848314132250732933145260855306001052440570654987952878336608537587131871808558424622412041052750936342862182257610473424100429129897281966178285277579001766481435487096063307553339314298418882125801381117097441991046467802960255414348536015312203748611574064154333429348721735695500179863464709998343973595150578512987105003839299630339362901863258202764971197150416902878013373118932550703062975887240647882273535033797842558882386353416833188295150703888342376618650333920547191588435465763782386660398648623238599884297406190466346109250359633822098322920746581333811320956246171438966659168754282085916485023759267824715371581923135597859028499734109356808596460012278316837179817076807681077128205275516797176962921114955867830711568278251587156585139651105942140508771310109965288380693627291901292906509393909021713331191195406369369027886864877814960405837574861752238415307887558584638868204712918163170742101018365630228900224431784267377526925682995129588605654846466610766724037392408292899589774533049080675140191578232588248880237142565071665255542577817400432534155283872907322822161627236453165178368560730730884524372814091892913054946898901995522228133689555300400360201326409277205759528582049423021131385271010577117793505060862096492092396712698518772297090070650127792485650468813899504178549190912800648243713350317106253466272949156957685488880165217742686092069572123706727179165704369788839502747161602839148380349133668245434995731441466134871873476762614675395176881250756574461447743229588674458900841769034027040163802113160757918658302355403275193979558226502555174819902130470772116710443227096942263004037471609837122870789919912382109225861587815013622826896397844550547519711941879811493179158857083478462865909423510823722047411669361037200007849867299881766367840754501930595430066582985802282831986795967941109387406956165352397635676893536426052663337525965562420345126524877396378161293424169819532566130575257772152200722471788207971770735728647083858689806149884626539421516798811030178277138772945982507287096814171268782877338553433891621998407579645690302936905436885878863168632727188225970551493944206093408899650693693309130549578725993179777493625146982611198172807503998415447195095685483288026120207430422560372257442068452037223641883322694437878753195753066113597162874030241122974761920091894323067594540961844731972517387200028447745990892602739940641836612222611870820376495079116730984393106130878264107683434278847698483008107358795955270056189256682727287260770387700652450684977543836587311202733161884593933476289170438379132385066282669731720872451903742535321173966598770317912158561890414008527764834163599639755958886430222103191059468671853445438469075943078951016974337098796908495317692726660450033146143043494933761454123625651548712177432519809275810687132050770468675331778587878114341963214703927732239233493597997993923010893652374404520885140648859644791858316478664058928415068515014655143011856375320851404175828616539617286182744601034761100382643599427596559457936572383944146871426484429707643409811954662623211545044954495615166049231314038712459853061211354449134742698651200827992584535832624690185372720553484217451173979607631449023429954099943417677133310040718512166414514850773662768766726032131439116871596964600871816833585145783965019937972162516899497097759855421663648915875650535053751544228245034725449500967350681687067964171849922577733640305732273083754352828967052190601089135704123503530089235691262861055198564093301212312259893056905577777678566291780305812698318079963329237087580060626773980564051684027098884057757390691429964434448439534134129375802664578215159499780599393293175329050909400944006954720197271273508109049395686629944710634836632914921488035711049456441816601290595795708706312021389035021818232960516116794296097466876420411521255672363168749608113522845555612034015583568876230165170889844456927327502184790633893738842586568177277522146145095442038231443580799428115171211850207026242117711835251740551962720891685693813413033433229603684326540131715535723654718881398485286421146513122296878433512474765767787761101510886874999057114551308415285030559664321226639864278206548973351168240429632812725097308228162798445177811220743393536717401570635501207938732804944602769121133598589236036557451121396792704185172610316238848517146279341361729909636159369217844402960320334408588274085434580762536626189502859436567943538517419026121771333863698708472056014669833734755639882347744255981070178406888362304826882995800449585770810599238099452223856734800297167500982150153703057113415795392308133304271482996656799037583309904962194325317146667260995758702164226454003651149934755172306559521167398638234355009155205795292232107367044383271032995048993195081560046006149826064993537257801502218871839963712761045901670745198420869728219317462434892808899831105708561137713787298245496586783817464295840680140301664931394654763951836718368567328949713525954287112918337542056413420608728477489306281232593338003654052371072659996078022240757115680153824200365987385244148981909963020751282309203936955333079578186724838008961973661807764281933944954740536946562755770892807113520696220290766970304160408285664391442978999044438456236564325926756309530599215535345828733082861198875140098056263000416363204696642249093437298015857243861073941952217980314094995177899066862009631500035729681101739552580272311506200690478374909459200335083814470464645802345211466983893056422323246487735042994020162286039332532293153567426384610727731905437018550499152180787507502097614602992853552861272549340141002254113552100220001574676574560083797335597503885403504672137514991792414027731771168817117853539105979111121444734781207914075439363877625818159104830756541748536758421212329576269337361179757007003853669443346026114484955041170454023773418414672929283553883046004916720461134962557984719932032964436611930749604828788056288949529966794228039914432434919318175736031817156156344276687099354550718546682111014768024497126664029028359484318320132454759966688256595818413411531807140053965381536891756761453203217942118181590491373712584382959249529500184578924330368732839541454580985357359247547231816675428147932240532011375712482016567287762382285746282275594432539620085155250587437471807466236621413219478822868067593127392893582180834327622877751629664768590652366773220305843134079222636421064244988162040287345937011936868300959609200915571597762549812174969983701428889125937657511375575727785373285444007107560428216103853822458011450592739493954289575313646231170716087655320110912982161294407144900764428157368062885151507183712007623380757299350427577816356044373496690163306062311266119513057246369588212795147250905851080349132268698845823501438137307833229244474541183506602450338988703533615881582375182421267749800520383611289043724695163597742346564898438993610990336882983400641358571185283475728667211738371361305537617044559419828826457332729057348478831028874686171604503575628785556896561609810411002331884935854946742770426113204042488493371168383178814786585681791198490049311624476376587831969528008408344084422233298922754158700163610070199375301260952307570051070481758813516034908808673794135874620009277223925188518798329082584098419753479568760634643320773436636030118339904552423204131001417464156999249982092981621676325179619103109205707476938627369398673522595741285757618807574855849451989104782929496836143358956790259122479085530903075428681796043551740444934381262453947173096464643724437705925172511741776233382262379032584897402246007492581267146872887740430497790856928601320654696049496539861986963932292776847091793410190646495298761183734577850442985695869583174748377937186515549984203344456386892532820964388438279683812978815658091092226372404833207427822256318606848049005502104496540491789510342883229388863068434552195847392303850806385658349069314527705241418790894279552385633822650200741603749464366791693780000283426751990407656722858268338071245206425031542399649695274116784001326589809569509203900653091731833268287164387446663758691207014280588800565401676475904199525398780668300769950706360372743905660092330273192673175547888571829668332841552183801214066811341845855565561143333955013233600827903228126467654774583405707390605343546596441377996475915095360800065008291002394397519959269766046761506984591667444164672244972352549265546808319315700161471935399105216114873671607479418989077325673862620058225010358901514536438496615300344560499003331960878279066266042988599193191298184976334213459312755677076182903986478866538536751152477410267021537606050549003173452611767072715341134420612411008733592820145484666232917884953613025466207129595919529025734217694870365995674359079185224042120977785899492198515612354572422279514037106210608110081780134190125634837452364402942147152024163293434536312372021858147540834825846301272190056791195907237694046587865972876784095941052122811716001353786354106004437013631356963389620789129200264245428762078963390652299685169507723959060922856020302630255701424633806298665066522805236274302929077630984179470399307334823267424871797988352128994140447397506142269296940687133586907280836139033325432499221934597151190169481996790602093257788902542464208286251855485668598038571282176363210489900778465203456250582639587487887506496152285675701309958308666073926480139479381569395650902019119895514624781008710752863607172296612433094584577283722057811477812448858097342223292123252331807867339100899870179348060430532140136974924517569982265851594544404747670166760425436553208672959429126256814825112631762730115562384670300283487599500070807787854751511644450874184581268963737864543646073916379629396610746528848534946628066674555275620632660473092538415664824660959020084469532905053392680636952363303131483218797445302797098525031520418939822990514051249071158394329825272105373797059929176413565864347372015718558333865572220745717507599417764514378434973623101447238078501081473282821553381874994305737137801154962178542143790282985152151886267371113185121359080738459542927244771672795938899158355177756005420843731213026459495063720841792622718842969237363344073197094989343918564933940573921978090210029226222126710376629312948711118922108362189019582667527320048433947278244209268824723747916936944038870280743842810201467596971270728941203754477905036129259963978547130295143284474219671185453602831513646103873674824442313574517222395940496510985866277872784793844906489323980076795772868661671541591419464475543189592420673580311753923741125242077278952099706805698093017944095919590379595204773705395473347542833187775297640977207633570414817196467474100088895772731768481380714169471855973488347866099841854984839559632901809233660030522876261827850511653697536500242075819436727582290756059321415824959400100053370191850265191437674877486873252232698219736823617217707723076955061086786574949880465572581133702117210202397554820213787489993381494971100211649168342086815621801239628391692960280235976187640757902362713716833035311566814796079222977580254086018305119481117359553853455302110445829049052844516412553537866608337997597034731509793457017341845837897782386717198400055519991184184823716061794157220564643880040506720677284620643570398556831084414182543400616326685022074885497486863914491473260748364021296756412489918062367139932680368686465323487139615092658469343624460722926273646579919175221530711952306516217554398131291583907013241004615929932705959398815919822314437198366517130140914792611691354995939742815612482927101234406914150355106520530681813746015766800579780480845691788477744735532206116742805774405029430654347414614571793061039566057540632655412416912495838486114068033353199347570035909199104408914754787447830243966372304576136987878477147415802299730142958794707250933856804888982081281555569279253094804280124243066111468283654198886307608548658431964773256824955073785072013657552547951894787851632441421475549990177033416137191579445425048266532809708492311283383174105771945575523395506508987423028310803224907425677247679894836193286790136698220577711470513141041812805450929386207455400810518226658852111595249820513279932919216129366287551130296562129893481952539103237542009226565636954847778299697033722890237506512202095965223380293475104710311685227451483191974325947128593528124038996828411581212829298189827050177395163776003241322904363005650217057787416470817711679269560103154757762019805882185396119093796429292439618480041468445827605162252865763926909536595175000574530449215108359845809694402890310680326194166768265707096433708840080727878486470863419564083726516089590983534503659339492886867434259823428396780330642398471910746022184361190273301180202818904294022108106619780945825941591846466456163563991179906387103630926596059562330421017129674688343138755735482833316970352931283830724609694808002169426960376735498166130351098871114297969830776564472321298309337587271318162143093929362066904088845651550426694471887131021349457631657137520848666500253779469807271414141187085035510988158883566328591674332329077645882240423881635143844543880067727945396655668582288571468399597257576042320583065600314281601175112532653681421775827142692434157722704417267170163641349817745056218017603421302459922159943660725627049013721015338282613001865798117603382175938829400350900494356873313119291095827787089994854732679916439121096035478255232492937803052575863289646887620722684215958249538058897824126493213542940845387780139943800033117666280296194048614179924689660417343507412017361515774528562679140390505517446065770738588112306237905080184781585277362259200257704373536278546822769440940628308410381356628213066961298554215881273631743721855251115379879199230248944858411152389325598542869216833235997437850304319267673209101180020207336861606076689976546282655996440276671118597838705051968173381895795316888006578171800636436473663983537900441197808270820572099561085364075695546688588631296131027408389041586028351993835217190358572309199967244499526578463772468061173210714718680590971875966598546312674793467367374803775376692509885967771437331300520920015970731277443106302924225267240209487158626121864654021533536077865418262885218994480936754512435240212544554647032161296713834461068138459926259583468026828836183584762808934799159407440009319055889330800575293164014996037385637904671381737511257703554234469426573166769734549661037306012146362669252215958639332183512517670190420926891840166241446018552703020102918311573481889304073405674005324449137973552911332843321177500319001391737909968559795363795728112901432478807072246668690983411682386744114358217962186414452741709253189682335740686176183163194647762047217497461057735171077149827816934055540936334714462250719945487287274034826618230004368299367489869103001492204501955022647133147408380665544927572193892202949359839619465373999838162031732320476647884159149456310826309183326175027552096187509972107937805698081704065708445262852804292514514917560782966835092848962719971180759250606251673615195656871568325662744236291658514876705493291422261498281550788801361540459767191960355331162412234213636560567769588091734033631665885262245288675763543385647721436025188787970891459523521893542509040199439886630591983930603911268383931565187386466960921189322069486773571317076951963927670123747832301849680554407978171344828722692318864777298055887663134758782290942887600542151782006912392534244112863533898205113679151881731480494803963145598968137861377658461963148015613249953896904692404988424830118024429202306366210263469257555002849683630043759379714573663160045424901835680733027155392632042921601823825065669836262266729197822543582913115604551927634384244027828627095799831931697376393311477483175974030480693848341341081591411526983221920036554279606124442476070403854935072189229373789948302910603929272803085046848062594853878353423717703719582728549683682336691147619846947614062321556300453545076464721317679075980262011042724115507734076153929457560214634961520810028858829809387090786667247153933435120606280339417095941904028155767191399157176601121997925589159276032192987811617479752670412861207990042904322655193998925692609832463617793901207527105603599323912267782136132632133349459131837015176604191149870442968407086919312585239856134863516125928653878573682905218355239211663453099327446377616196437444281270764714848612390985346585410586223428873405248058307101593674140346585581551910087006769336990490620317055056734598284660808173381170314066727640940029887927247139518712777868283882735403909698649732532149275980973716973408459253079495588087978056702991423095246961263177603509088550740402996830095184058913935040818542739954718105911865868465067789912582290907696653089716897328878406418370538731498834119272571571436653900629268461698423408866201866006896406503022321162374330722403928542920523002327327024851555533620696520394866506329925941743710621697424255260623713316673527416779217544591210551172805954653336087738771781964648027466875213767219284650865713646837951204658744805264983016878301620863458458714824468339635856495602732899316543890888647361181700272278001901887123552401740094547931151381053877219236645802955141678867777535717557896100011948815198509173862594940116377310985615236333144481023162328044452931836148541284310912314009626574053552002997004036018934291197057319260978081169696684304899553327595892518005062399000521103085711319027303964424347103086663279385662474805631813735503256209488975542331573413935809415829478417919490029052116247176678614578896680223605045892457780514621670073854538402468794802051373170765365432337522538427800932412685875596176356302077606312566287379354889829338702757938570160819010225048581768048208137973881479930069441208036588539644451049128870697520721154900640626525089610576624648921683399209571149621182094426997279349871497342606583088208384214818439634748277486967647237313230230697217140142185948808609620399038172822521071560954811821644247043050681312375480703518810316260509719226544770799079728376401026109729325989436584928033820766396232926331767886269718191002763534148077417508591762626617253974392578913646285221093377748469712614992144087378502058930626577807453164588045569594233629783519070445829462148079521347920240499755007892154838531504197749138018456483243187182187854335786526599421855585156287767748502943109812123724762926490795113204814042556176736028409782055406749454828371065278081693121207769016534550608913971997476918799635570597558801932778613474857038016380371854522847325351436312951433536755707579570977471570576926799736028587035403648683975455821046957988979113812013201284906233152093283492304313367024113676763975255177519721566980980157506282122279812804810223975525139866261607403775990082072752015482016006572865612007320247326505608964987066612820292533292844896776679924900078925503894258913833730840504522180772986671052314072064648936269263834423991484734493721909764635230527014535425914977832620993527144017467223241746239041041058959140680911839132904277464454242027341490832206690679390465652898635968631639624028826285362487450239353472077912841084023176635813282937476120251688747755425465886699551498141290424532323295509304716283074907321352887934671099395540029536036927889701047909710094958555433498730412953552596639921557369937254848219441611616217185546509621388781040071014117090822198522273853657610514481411888524762207686632589366300729708815413001126125016307798127065509099772489584897725730367827327727120071145994877905327497054768806525965108671703181365723944795884623335486662330026025396633974389245896572962710093448802534622156627377306226371287999297189149347521742066240458870832461683815709193413636519394105294466872951941029159642654987546153885778452612083560819100426812549207739152789628241575311430836842482085302723968965313251542154394155097956179522951875925810036009150734574671692214923612735634637844752092092763558955033462570959729594150299071003505571143291365475519585360098174547994406987492307479668036585779696231442420364479856734492775972789135083630167003129778572848716495696487674015011840460645952112398897956329810807716296735769047207661377926736681037690346998905504108427343608732025358453823828045638273046709992921949692107765451523045488464894682903960162451330733017771843908180115541377167575708425299421173817154599022489513539841224588101138629078435984988059777569481984041117288482833915375295260479116792974579058712876283930049938361273231831633977657300283075244992368666389675911757256315748243174431054986957948940482854918838423076666101668822381938117321617862946992262887207615805500145255745998484852653699998180810494259142378410164663727789039613823456598204426673217999036390601344842697085452128418218414684467435105566903591463791875930306256115569421341963565634821470700381694532420897276541008611247655773168207794328391072946345784460872730335872149585331454237472847056768780999591197436274093803819658956046117835759131555753798622036561883708136327076296894177029478072681018303685094422798559749892839592722738691829416065840574226975930761742139546631562548088265139381156776142219815650132089754790669031792708052081248881015451436000342557187350881482065513911576830047299609741699966173880344948695918080986559528765428975393313924412380903615696350415739235942938870878378212016774687649297975981094119481838693651310894523065749793091397364934534055857958569860075862973346674365772949569997132941785944462898905282991103998013172455923530250532465812768271529761238851720232702614687886334020927827183016739932320533931833370640980729888814546388896046941617570685303055780494082650208164271665449566392337161622369351452271810395235340115422839724214134362982141756446706681419246708756059198625704967503884849843709240386849865595132218162400399340512439085023422306417849560633039689236685105600858339983229095313688419426418180373147755323103797294625681777965645714482627933409074144617783908791022652066531104019775059732475225060929793093022263040422087990249697856972157885996078109717267812955298713198678488260544605896114812714931005276816030144172569906849451382675775776022663467294601896667307314204059861357954968076460020721900038499206042351574902606498578295031008304417433164354142783178898133017217400642532890012648665389835795285871295144845078933991801385160323366164520008596861692521197651826558250978243588141692923215957439535577716743983884620170385280051090564832165214336410213492433457788583497678990102260542760701426551914838764124943643924494808935301255354141004645075965760058611126297454936474046736966585209352178530349995978772806816907578865858277577704871911616283907465396175603697274336370441080002277788852231389685099961594160437425838759846492199826201322015124490059643830861923096783660263270811472105264117544761039994909426635967654562554544048552163484913726098717447171432910186833764814757086041244716517708217301146278044500440968535678326133665601920871679446935230739212334466953825096423834262830689792444695356386247312479776430180491379890843839682613041820770754985468583247180151233047390189232584757301093170544657481820282979899260403201476000814832914656643944950310292270028038462570336176878564037111111824986259945393040510395000233950113664536252891480183158680576298516843883868116436098688780049965989519661443197297151842426043014535323293278115789478045698548663276165064877641866212603237187080359735267279526966860156166495394156757466225369040147617674022282741165159915117127678453657883246802797513140856082821931984849646943436800149588348867772818284091976422640163287784623037979847846696522412766255775000673014680125923046910241960186223028207048312557137761604571077906519310875572139985272683046768992339335061132523794937763817984241850236584006349969205016696276269065723741833750275242205419413195681725354280787163780601395820833491214842519093255638263328688512358430906696977282662468485851642554424017633203859495829683157278169193538571098138589274513044834895181554556370049995391098146549489733834577959182832520144127094765164490204160435974296384482290657455234144713868490058401767022595896939683557177481592549665639941417735634959566247232392191570204952649579402398343075840101440309392050533235056365449369492316948960874380415548130905510231487166015378792452544479345562567749188435674031954797840363043563978455249173625186818815594213579649294010775273652509617365624759660947673000312500068680247232928868194363592107753091025571530567929917313693929453176689988132952885300330962719332542903314128531151862226503973232502308092988593844308088141970818680342651316800056216590940882248402756702272098350779680996294472458964434489345123603857236953517864489759483410688979837482293444207363330370659513246335300823635649570724982282070406099215640949828122201712884439473950421958090138375463314872147816877842966015085889625270610813364078600123466093568296794678233614660787803278812642364457302454898532880018826711844232185338901072234777867817127272526678920173295265156106716706176759481969742450457396429820416614593789188105903974474742768895488914848901087115164469881062410783144973373051319080425207190956990730284534644876918594612289041715863407757871536669256765835410467019181281550612819779188672377189147020500270155664464535228128239338360966729478966587399089952837199854167247474904013598837225551220803976439750056586536366544020251889832324538049585504592237807952256654032435571586316021219279127316079045374280059164186401143966615651096662425396543445880184070397242110213381590468861474308022661530861679919380369850669446112787444867459192821976082102209366145143353322255781175725371744991111448145400584563060049558125847955391586107686159785804687467436732317007632211688406862822129201936209659297517851956858335573030995597053329375820768008622473249093239145506012353650843107159472650094640886412322398500728052044489300456276192848218720817021444426255662384277543302107641680970207931816997491028270812564817467443719896093698237652567180986982321214468637015926936812723302824561685718804379081130846262036170707812730345824619752049278533827100024186254607970728138155881823567917554060614571699296465282120253206554734471990597137545903066298936509366963681876287975246136431121284934419551352220866179425670143935281521567340697912424774908737200202402023830717042792845613138621363838050755107705928691518294073282012694298077541879791746243692877378447730238334956630938095982253306117330232534383777073585648982267333887940833191997389156281864218213846705401062231095024944112872198515228153939666295590686171042758121330779444808971297870419803829215579779906739354827343490829814688830500229370904418643616809878353979014981109097972276961146715397867498327203423577696414611663493280012688340241888031267632813444713912041899042538362302208032757868758050834671054497032938716336102844763227978711506968104576298664904342218702866032854860141533691414206394916588603131851926005112367968256561454271412235713478452847577130653122744564205101700624013337972565643862733514705860009696633735370871781109409665486210219387229613884918379839396684330492588325044146139014822216634807978750569232770675973719274632137625617513415382006146869842413604944880900757304614308910085257264126490038169461959950716568818305959467868162082234402821685280835909128748319909533516495727341547220203168626876420495624621090411187684420600940253687325918121235854503373231331286008096127726822099353139323796151845877564338258313783504679815993708787554186627642581094420570333086642278156900934063133239460141599963852881957272277051041357307983468803583949693769138125681166261238482853315460048868677486744222783383167502068459695677577072080957724901552307223215798634437106497795097270132482292131016340352435314787809000026148014103899891126414635668689927328948863437784551264375762048772807269931319540759144156153588903400571288648919081124934110659103223775696993776382979398416102079145796501799350039767022863109856655251238990050789451351083975725162243562469225001092640067662712195178150435421936599962077842037761019601870735339693786125582633549252641262492546129970857050507945145016111350981928750395688660886634326301596724878453740828383423956516156731151945400920734181426490616062199332916049419033046855510923494207343316186626570491944747866609050027990635844118906938646772091072744956470372566427312240013658911821801091295686198690336039642217553558333245910964043399564535441640153353231643160301127316396997285304149161912835939198356340994127416376831760327583109324700518963226111404348697486370786979611035943739459072413761504662936164252392716392152364177059226548769868617719556574261622056472296384758916443413812627845000123881535573974238752790031899318923504390021992740164141505556839816038702648083289136978783690375048846548259183964119947809133721150702878568490182179660983033556701947743636647153687676061767955471327778531115350486163700150087026247566460950342898238991560712686928299314041899930980223809329846398822271128859241923093422603724710878943428957296795942173243364015053128459333217203445265290698076227330911589212154519718517680470055260279489390828047389272938564036397985669816900576350363066159752361489232163332107893676801111029851684500765768508361275053951973684122233453537685560712631221865770630089053933760686261166320463354421117694798343549016574180377832852777531382866104071708884196877551195969730852273791430286647837734328653921481629191540309009142999113276949123786953675091237450023593106025073365610471235471982623478350204324370295086568020848759641042881863561235350432201144505423845796041314267184931215153677296638883363973159332084549190760194717642686798627094362756858290072688197951331042977459052945055962548408256382828888713874611119562918752279558443083915309756992704720647827789493615548232111570350410102408145829851611608673358652044587245984015453693331616086610880913160056337901990744014065039819806689776057745939047059281727820063100316347260828580437444437953517243001836851991177114307078229055661492710351004599251453201422045735586830889045125316228871750325565794757213150488815541466931650049925311717764135551197592917199783923604726282707502380861386028373873859066074734063129847830321007524000370962389170763558730654379489536364757447857266949730541315842449139271806585506945768289993033352252292214235022574628682498980030754015011059748426543691119142379653963056967657521655448935947309792313564915496118684314628924982538058479654062528030397699629161396082551310107308768252275185451617015804735625422220610120441896215508648304780942447037025196521620476242008111435453160715230447826380407425332785743484190222501664290418449979159932908792354339066289529669405224527098138300777433862136598382713237376917390641547267178103325752030470629562021950954588802186373951871532897780724465228667214767736574483206552165871086974243783471849575259057713525055516834890039240452779464344842859197071381968317444155140571636631305117585870141411483979668495364097310596102684523817197851538705432666355092053528864082987425445702087347042532635874210245107237335563286509772121201819110221288977715459867355758816148759374112903771299340526783055082673109750187291690823640874508697386572119388637958464504855987842337480363327823078883126741405567869854706027614962148336384762904959106758528647909408023039021376638776842996579768849270054698586466740213180730642314177542182306006144973637553871491460140871735483657073548569060726033050725910250404585713432535934958493134363938496595902742098199148438421400894531597529252898515776007509650346194710592268926227925692933379505457609681315895266331877221010198180155370737632940811246598992224095237889822109978612678424204779783043935949318442767792113247672854629385846744286462513061165615456170696272004581790246277296134935220553485439469508717847593834525819501752672312416866608429645323262387505009124785309018025047648787611764154272648245182116094817297608992223771548279221779242316487191034518784615324940862456164600709909095346523588772591564581876164349603766296218680855530721876706761882148092703404263465338635501300436278048139230844553161624216908973723699353021513004294092041218474092787688258836689055310856524526307854288479910363317153744581310396200857926986891651295594669278840601756001360083898326620126821099308314015867402165808187638828208382210473759119631959178709110641178923817745587908151829768699704001735939552529254494771653690782279406060961430247829076919272074996742951335810750149297976677304058929596728994974932046838656571841582912262775702109773674308019611164722091605014283990412308105481840246049397302398731375884373197031649250532776127766995898052769166463751692849559780607892717951266964001009887884144453812627667364970278529067569610488545774572971433570814097244138101660361076255400860663707105138547084488922243548060515926964751232475544975714609052896215281860348913881262501593102207730885860422281152374836411375187742328400372307893562275245136389509000431565596805641196395804882667480822802828825779475409439203023783594266156783993182668376411860195480029618420151214507075356815267411395080199964463302755485247189859807356798142919002767965354275050433885902875644817955732982237255565790730251278532561109496747221821912445936542452054621729449150538469618845147565692996856505963342636294360052584210169697510404774564111404363950410172930190992786364317703638798741071934162537389037586301851462021923273403901866902547583243643060815412815376360719818197979125392398510090537709498790655564833574523188864202027004292128537446087993113790701098087331665148787230761745077999828324384081039495734188137466357538915883091249738902332531057950476921430786564010059905598061005825620111527742026254482527342640853197486328672942867304148095173999909160938711457628189546888826335567974694033423915534095198740531516258026232203065906044665821021965404571673691742128600402958930396773123622011622435965636734211152476534368898318975230970499747537978857184759016937042261823874581291806488968464717102182499171740060384083679973295984862706261826307344825934914038419230474738090451165466069178818011655189043197814163632443717199667394135647843289890495960328451485869645112147604525160060341771689439220251031591132380949924894349572559799061794941492980180068178034249610570772373936380130278004162101193894529259268353928173626395716683916180586714710159907377159159285304845673918313383200083279602062316905828063207758448904582430418826400773514073102874717633870705542904260948124230685240507506588092958392976443913771495897795217170049321040110847936077124927715846470557131072723981548100945215209268156133845609461323271391747649901057020513849628532163364442727871343292771869936590752118267094480017568507246887774179506846757508579342287353327232288329219236495903306871045808728466537688440798977431579798829366051544735244989247234908882673913750752831418625661025963066201745145961148805376744158423369021608718014679965698021950544085527253955077786652623018925581263344550339135187886076695180072434516064674630729802968085609443408593581172271452687467629935725570168742548686149248980596448453486458812982388284257132408870206695702007868189248643248379498729547925401664114417171454543386186697264160610239334615711015354817923078040760150605705232702671544029587016927981186297180890546286635630960651318101580715502912846178108087405687602525960874467255610016078412851517310950051102618582924418643674175650115662607678775071588699813367895579410932246050486760511309562300261965783139875837482453645207139089163083060963355920924094681699483831122404395436739293277461988638597448191430932011238218643668225286651197737962001918520422343263511717502547538495403337574700130096467870559868208187973349369225415634954702396848626091592421353029813688048266825268925874959040195851199055404367971972287051272146023907701121645798183759147391603306821535191052970382802565358840418912596846432582214187403478222905536804874443353207814817258988059871140736319215833842447791487554537169146872366177547309358841809349724872014824578769698689231156241497129989847595710337526645485906567140717555366043674649323718311020373711162983155290908446171226695863375958087241476231711719624449558426467883941260303452205181994635018399781631530064172822922275161628631101339418439862309724848264608070311181550586812875118127254254964682547381135549309419784073923634690903993998404000059857145575709992693256616149166267797423314179173010225906656663871369695111111261499522068125779589848130109290608743240057062938506205998090756726374783349056952864609586013416768711800854322565085413913439285394579732096649309945428436277928372124426316409243486003324598368927304711994017094694086131195626502243272854692558984678699970447521782278884117178632932288859312873187545672552662756452734821902815381858673896538098944118788225707711625594454767161876566084685112509327185991146638904120068267099580300191417054246803526757674752786211426033157351144926080246618166428009261730562235059963201290113278588110589053860534391179879687446774458892452214566907195304507947728770965016738903804587014560053005422972289879814494544867230094109967401649934459222069558464050495817909319842873887698882048736848727884333748160215624689356086269514563983307181522778694222078429243616513217408857212675214640636989763943844473104623676809895273551106452603824843275576404079448395499516022419532035455489007307954912556900858198040197279956332350804897717965682144822773265912504249829267849526023732882873632822033034906899617685862449542223301775340124451041971159565760890185523692548457775865477362484292356410022922468707608042233892190045142697734190092048465654579860884936303034255218005572146386872317155401393292836465038464251775316831807771640438562771489900150533594234273115187729228101144151508287786151433386091009312177568275639492735551826363300460719380541850995419160194293069204855013030792597547472261960175940332496160012956740265823366767231307666880619785537040085724815583699217747260558625305951875937153303134154748592478639061123327865687363431444635064361122231413959653593390335530439998347643884502650329418748621805145380486414045192378183354384473604694995252451634818121754804471119087067869039395425470318780664898850787220313993493972794071300318093716222282295121689305778387301864839773501644245267831620790875156386056036441459141151943008935731044876999432671679639665790858913647254582904364615191877741411246884341072174197643420999481084309721132988898527037564545119653525160177901540783769433245248972300280566195415337351434128295256737015970259628065055647489239013647513846903470251126351867660252720917551456665382560470899594477828098191539604030625482915063800246577070303756555885069024443848487533944332254318465066326490983977213434588780179279344166300410920752943145760110298451985039574829734601821093649936783636044143728802194797276106168013497378520621625203612759309300096749992888728197051643324722164148661370301286784625383474049180627576704294832466527298427465138209246390137117395483833359696269176937244472493661411160777053480630292167177927989797010794093178267314856407840005349028601618061604209582850131660100802168633946804744764159710552563553354173518577750894233776214191264549445811508910112264876297855161754044675757396020572229668323911588453837838164642415305384547222516702967540873275525969309789407734315040828190474478076688196812907194160077860333810740407825678403619057195461542263784568287040637118309352821270893318320797480694182322686423358532994217706618201308032655489345575844609749639463454640117848267431525982787887187031330764265039063593344525860754936447459374707998843439651868721034921035531486207589869283511151722160196545884250213260164011630171666241442161887235135778209862897850628275001034532775223755116274428875886376619999737678582678546805434896757801407535110272863366466044817520611978068905136031744258663753748220101593217632521852522454240909242153708215771047878952820377739317912452434382932867582550659616273873996034906199900935307835403245923089348906738813541115545349601911259198426238278469498549855897218449219161900933530711730068815548261863383643143604815146580623597372752928167983483582650603273621342908124934357664692861180524951104087056704892521221037052110528655937311929896448874784881425420520530646360967965291482115989761296583099107921498799654463495287437399383402864480429835828995210107690435398095365287353407532204212034081803463373193032569291237882630797837015727250277857742136424302468930574416591443624787793518598119735392913174586317044250611335935495527802798891809566208401053617815049587648199197156455919030564048042182621088521984087856763204230535829001402837902961322133951904629138920060803306877662426732866247984357319835734369555520348799181944679221852551554670220357800971606415684491481837127863776090121302847551094651981336040817634600171537459508386752586849219919677486525940990659592765836261632825134845022928123239630867244909189305613685938586692458723270304330820946474941652707513319010050393599883433604397364360612571933386003658093294167161639720526351546967038976371960709983140911979658669191907085232875455615611407713321681033703298946566167868577761546545772427383282408502289077789479583510131529421792226817267534558168092634246207743775411459494743756233480199025749436036719659882050084099341858473664873793065632739806502191299093763923803016675380459024679424585459483557678033223199203344017656781092046117094998689274655482789821399450647202269064279492961335466894547139406844619684283242086269604449768716504109658175614907282178096741053356788153734490320021001265568939540179470805048316574664622694154840680357062515484260998360769136253693952403586433683190057510733272715679042907425494806832213531184202993851756039643574937383286339919726889303562950325283999937434001420792144133957455403908432032881518864723246560435038498896958245319665399141522671109644992378591100407270440183487336034844096423282246958982621466888217455945274194930450549230374029031585913877298969954155604676660188059663784398650745009992575077727546737054017544580285369710105060446738071464572960199978086083964709884849219890817940510813347258000878873994506823638250089207631050776341793580308444259256997643652604558567153192934436352539718367570475727885926905875241547729734148166672131623388280553121693981516410394034449571950989606297946633945603528798083073987505729320683259874323881888815882419372934922603279406152913509885745077530362269793189225839104373506930616660082406658635064436953426609727105855735479016554127958588337861755317165144632632749011815573619123905789760214939727451067670837482414375114460887175179840599823696989840085031680352138642256921214117518483927602855301257608385717728907880481297936771902790921937118623458747427927498310653448064023370622603875536362330939543343889032539390923933010569954418357347778584500162032036172649111218408678076748727137546974372630092173909603548696177220419902335521264304388931063416154650870552265620019208201838644089980577264939911701036707532462265982924641466576926016559561087342464243741599502608828280576448894137418159215249593497850429579123191138486963506517719985199072359555643124533583775656610207039960041006053367607828637811689119345912505848763391772278835295213218874581376204506783915589192133147651424253568134292049407532484954620384612797927085592974631922134661814483270347932494581387292858391337521908705443111915173549485453101645239074197609701443362014946537922461277132282288172721151075748253170934327767871686281664602471318033604430531251614372431728332137548052786505001477348600051555486084355914431341205484923048849890522355751524693710814578143786716962691025179273037672034593621918402392965527170891721409142310587411789512672671613392734692930301708604373839617601813823458483295151938094853251070899621913858596577656464640492915321487036841950909677406080974483304421929855760930340007767441701331825383904894543183788593625107282197169557013215808607270205058616987698027112634914641434167799457567508368284822600235383437423256052828688328509535982440141026520741234266890299552066219595652089319332057476523792610196185932835853158502415626011603285449950891175428436063394724647237953394443621517367977842280124738379852580621681214791548080868780318321272147557979158947940292771524094648536153497811248722486694008166123555336037424857454799090781477573622780729460439540886277914142235633860811660660874960341031217837511342838246639164894605449598881228213586018378608140466085732067010904257773570313414876241471959653192271435212152770593887006787031086271553842587226636690781694313830771782172607126667227189661316535619296885373797535615153477934266738262878963918316250617325724000138751036921747738242084644323041408597916066246026252055070879550198685122598598262627057472553367304651478972366672770472910063488349568183421801431026817579838205092111178951243656796989466395454343739956493389295423405370992693084504351855124388694037319293918981155793517160027916312635857283544699679662474119362557843757810916897948113391219997056007845344646718019085783813452065955293382795767987062059170229715485998179456590574619760049952132232499298966425835825996318825561067635259762344588269737014821184092704417578745241991546288126432457711249675675253376111011009486750699910912317369676276498599899165104791879885701078345511386949016532829083985358231406827341144628694633007936703016091481980222517384674185549323637095413519442678120713972872665359757453782493770629231594333444933504283757989229374547459573784663922572958701954790610654356976699848276157782952351728699735910496097709989131956221216491082547219558693747518598838559923616736276935266899249193039893432214381631411756577425635688509356646087377052780379370482247272762374545477382140095532313578441270096321471933274993712192196325142555280842197560500687729754683707138433563251309979131016599090538861192307040501590951829602524308770438633360157232078104201504783588927730549009651076362914378041998693939635495399585253840305773973052244167046991256245990352298987622206262355472672053349982512304583541336858407502504218519612428068373770029644077104334481733191248702324035613538281507256251127632551896626663792948229645650013755460844497468694308620233916139286539610425056882194767871252292157957142032431426599538204555236787058770596064112570355261279190327926457571196526502720361992849692503267366232220522783041682507667890750625352892912436923606723064915733865842823485968956048890340107977913035120820442130690756841123542087602222804235024075919192120072468338598569085026019336934199901064548276520042053195613533869702704445868692190742721204974258610154710034241076362025515901496475999407664452943148162014695398674421306911877026456285434710969064352109956130682721300244768747050218698295726612980812808479142395504472998522126438885887413218747763161518138196295525721821699732424512433134824209136989839500323017806501387437087708120248419275297685131093017253043090184182903382566847736560336540788369144502167364125224658806865158338380271225800905711735464197001429786922531956681401688717445328585554949182793792188751606098696320403452288158295437205696011551113455421523397140515981242423909648218843307323542417057949083356003292316968184623534866533485346841336550791472184774926208867694287590701823815178550959297280241935850155622592682541253089343800130163692854505251574885211414977817791786686213151088903434883272064709428533489932811129923266529833814640472645232108850099713053047111995941644667850919973863014289122031212166752362040715318844739100894839470318438852906218259369050588707947590247550130341029841711373011389075828389996439000198157535956745482467428723224204777141081539568632916290445479536165750487959969258032093085251596553865920430493217761786478001411352377783017920622207848361781303188133373159161937346172840344667049288285843302755069796033738927445720710259996968837558119857525226873252275710659136560032997586242436740436763462059441378762395705119898987417856741114056792179543335270354453645767722552127306337193848845611387143049054981882213814220231646367867290354536890120035618823836239213288387756872871085069772350151176156798123736322565230583386915118620331884100738262298235861044606368221043836819488646502518110699286885908654623278211068712526722888796400500721069683398613812000750258713910833970469629387692620616259140207720045798749400715646102343133834407315829130718624072324102522065117151554044930175157760118631520855904334268430845806978725355749333275690698740179608840748388577250806914777598350735943555064555761250591353919673599173339807761613299735444840008981698515235415963633186422874776867162286541948538276488788828433813658340969915857768331843219100576304222076539952768459722150582765060818764745372599366910632809541118715161182069859857389248407968129788412199379925222401772554782272023840496941923480434203689163854229169107934565767982836391930904899156647146003634965826420225373843883544114031076513204434188952233706830313336086730274623939213014270914006395802622936724444875256544384633539026240271588678987781658023238557225497465479230296883537704643490170320100947276142927214039894777675560761998377099965852490175205830198084834500232458787810389436790149636463927323716972077752772426243550342811639121455948237825662728833139424659817742451361785596961682608459010040246461081745175562897008430474321887069075997670019699823476613807083371675373117496681259072737717826715259585479257481392189926763785433271170487581696013535570691128246474129510574219547374016119810941332536453657290722676265982743559561792573532858619658473562493349956860703140832550225223711920363269750353549959877438702922945809368349488925308131870105988234195896876582863400317719772071794958352916200796191285660153886304351980014153457276440170536083334672275839891382264958301076810726372199141591676143362485079357346533669219525952998427571493636550537267053291284289014228944060042468520016676165296918427553284174407110598656019738381233712050001475978384550216198448492423145480672165765945454122723983848779943826704435879043032492716972427139803356173892993119918956906343542404837731320159491451998921096029149495056128768564225904741815123907367444062927308968900526163194877104920600563573203384703675716254370791529473044859081870002228709147942893330844112829814214789112228949403200868287546862914884729757278622879726112849392335166305511309152472758666031158476569795111254793992535578064065263307832649552114166733751947935207577909612146778102998464675531589980475860420438520416396322420392289645203436631389122549472544792686071962769868978981525139615390039214151124470912862713710342203849119950484123876614519111449988955005332573358027159993505107341058343292020343440091390500486601588395118244565889406752360895202153017843225976553336122351848017572617205576574100542529548257137359973230411628506031163097457779072800688406888451167296832928782343631411868731523125725239787257620532681152102841322306481719917016034104442869064839373425410285006497773891369778804578879287299300394399202689963862673916372079852129379274721771996159867111013124362344961313774783475337834256018729021336900142479338903936905474788784434053507217673610142695226585272943825704984876749058039452492056878799718068996770125389056745659079185599778977463748268280855349290608746174308629808836023718103077929732967951658972029367341151934468654446814478494982581253453002844312210899003467040598552358245939033478660782551961759108585989228764858326956381894487823974184113883916063752680518257221032285466067949487495123381171443500481502156617044497943574210432966492850072883121446695871236347100727061769499147383018096390746422614104103554706778036655043188684100649115827056217772744376046840477795678264772030359964369998377768228586919903316080029070588986492026015720911133881962309181723535342943859254119008665830769487532791774509041015508725075776943854067598085502702358729039923358966098811512262268674695734698257084874423355539117236340938111247024427974947802445080997067206119406121560020566191969555221187448606504996164233434096534250134094108464587929249122540971039384133079410018996355428455673147205528647884684602789923680943503402789631243954156488687048573304589614114548798602939626325651455502515212355855638394489813840418002549308709011059350985622214643423043569485044409298620410749645643399939808076747969003917427724738767807999556017578877653170453125567154500392524803893150485998775670062852863666129177845842828469890586303683721501853949265327166655629318533105472647002800847917222165626512092505913582308946551753564807197100276235248873869550415001683914232454940942085133961163375322190674959021796238664717840104243470062178216340711755403043454506502216588408968324394915021393344221301768512363661063296273041434675283606166953847355796643529229319306868460428575275455998375301799031853996116980283759598262901802987941566763408368225919341398079306166257391087342831844610182746649028178477157422701948990185293791609858756227164696723327593165765622515684157255935745131109681381968447417524462919117617481924974518423712389467915345151502833519973758642459855118592915731653460191937693538643381754251383894070488634601145055746371721023988944759963609496087250500931975298138610492119089977027731431637098592804212544931614200381918182369869991065414933003275294929254923846425725643806152582746910690507501278921500858028800291796194922979726796895779463086981747666430837646233510718540445858997837839208598735699383766863998158393670767720192685575346962692734868891143176080921327910199040213239113834867083592979459789340353066670830020839021723270573101935146186453214863871475530599632903578722509545873557016479566023698223202285865880977579466951371399398668842748540953267967081635207193579128109838252874810546047636316432965132839504042570632093200503226098233650236052400009227732770291605961359300607523977829452252776869762880056685781566689537155882893153231819952898289882706545876924326465340850487129961872920652921226684124086723798499315775771618358133500784006058588580036589113354769591619757304241551214845543169388301298380852110878011922437278933962573236835240135207620612238830776978362507922622684223548817786090913277240845566883317448324057483649819210304327284074338354214573947673143156672730184298619243463195255381649564612106371429092880352825655643006803346022369384785888319188244157839177066394737286998001943276445711569813379613256311168212773610405381146275167472784587141431830449032863153106340758729773632756985528015392249204291215170768713912820243156908317648562701076158821248900793541155050646617065525349855281192473896250726176783155331327021135411564141148594734194784898424414855554817952528615886066914161932762971821705689640174155422157010068833605320907235712907880979502749683669247322864499331546103713571286343397384911578342080471878638621535639017732769086621241445455367766012582942718274810862778652382413924631764674733659233747989615689102432505324685944509468068746807406324014353786260515806969162723009546466335716941925431280706267129196750340749586356323768772536142784378252120472403234421251188850608160377697367872323578001556315200393470610827624167179182307914797653398033856957929112365953717083254360976672391849384125636732081360213006601003880376471486079753605745824706328294230007481400208159621929705716281685531317251259078243708796368175368586725906838270347256200134677831944541727283420870827655380353416756650543937110097181626524627333602755206045240688361457599725518975444280052959626407861387592492724301912812120022284061627683267412235571886306216849320376538891163319018760151301844303878112400076419741090779728378732396631087856272748614994949141208463217098035151796410041133948870075779830611732867996561805548692983466140495565696307830654137167411384575402106920642288227609844995534562362834099139484858332291381627457508249277535123842406354915080598063610370212221460396348593666763630827192523927827930592802210526940220053770854441500340990886095152157011143018930338224571837288323555256189973309735798157959282990031225506259099857019630156188486005573146419450990049008017384659540695318491621893227241206054945190871014353282266143616903075229518227631560090876419901189648745807960517522136993555268268254601762314276220795465063802974349235020363348350746205604332369747367213481662084505775633458844409693173204620314880523654096625612992084730852537089557197079292938873884018540961457571654735282479296351657910710644717643446757420189064376861621802339819724445178386274343393996934138148374592251426704163101239356027224770734443091524426842981864583503902971139196419589628095513684627499310729343113686578496071577834099723857476023231145522509978932359117413706863793900291261505367622568099543618862194694231487001605589040380956844375061474397674142527171812724303529430114838085531112425991819617893166954963315816168637157953759535391378791912610560109398611370705583683326917020173353001979901323879478388280591397103323100565964819375414323523676767629995073119813875082622750384676016520940529552153314319434284700435224252816134483499947381344720715758014743896636038539125381265020584096607687253844860956899740816530947675533796041162341058388097763735538339559181935606650941337639018159091157985180851071289961749852606038953073039606730183051484819493626626171269658275902097523312844576572090347006590964692137044122849030005082056231888939658701557898902052872914441395354319437703089444709903276387470001550038361014864726032375041003346175961411151683386264743592722314772659549071882527768427282047618380807278644494796681537455658915262179434213283817267568195599882199725615247371258560470047273993209987579115054045219383111551289371929726804531005828045466396398524266000203952583334186554006959718198228561605461034119776174331822827986906941313433145721372540133953689367039785439039404851612805267319769930458440496172299040991040424276123420485638741964318587844557882957738922955518891039559776585371499984369313230035701403276279439952271416084805753585963816360500207955841224101800844046429787464919728617022739598648532337820447280445415626825411723572971824212317429964564987231507076838177209746938170319308096208820335491809893917531311260992823938565167101943680768411005712339664625811208759490439782761750585445443798846971596237329337689634136307369408204268620967077017233705997186053745348675248926402073964902343138552605318476329950104445360293859611477101906691227640659953828544097328449755438544540285211906425480139922272743797810044086116513906663326756229708712122261138185353173102113903787986389492243919515547715094675965226534220885207874800030887266731638498162895320612261376617098294685060955423177413411677046321228598210696921872596509126435438403900701361482937464729149637382986979724778916386352479842088727197521146622295344738487821526019997950420868116885071926091817040854112687446470539551485006769393586602413615863846887686626260594870963659169105559846456339739788955627722484025883315090140475814506016691586021841283158784453737440903746873769943709268824589702479413713834055701397577340170083093575891753392158697921795006639418490656122095037158374491097060893713677855886183938339481078471798814836527398098160512074419800856242503823469006334620557931307692693461004344564688074990235192060527678118884286948297394112169589908845374678047967006490545357029108365215338421878946487138662764214656669866566217345176650088945946003418280998277518477741495273835336793996667570017935237696566422037494520316759336885633481380072626851141965316103037081513368024620526320371985545992294617178487434575738162338330013260274622010323289227306026469953628882373190562440462477646022521268029501876701793968390488391179476535210832471515052726930919384823348008209572704007709104527728834514029571926932880078223013655780200371980623233088215132294428108474887271186947303646171821199984415998232811682889475523510349818570941423244718205849080276570699710582679185370129082579557397739549548316856437902690293996832590586664397174650186723237093672551073618033036453375600934022507344913213470278288001707503490382786844908849848670170608700050182962223022999950111118255382477891380477924985874012114053048467177565386283989819340915195004139648690302453975214306613756751613290073814997860698617737332391896225533600247691996028147268031735355796734649336321053907432444655534637815307658966411228692774315854444307167825287238303827655523700043815345089379366494552632062300840210447002444395966307314514837925042873036283643727878238554680463557498851573940220462852211892816042772540683975995797405036890732379720049689761041536574437582271523248145650612225221363375510473726155020384033232694981342979504052085524501027176282407975956774719707337112240682238892025088936532224280897501166233696472096425041044977395315931198424974053094870279554028093573565694606598325652638941053902342971915076397435807749118360445058469123332168590963552421507098799833600244002540789630283457844189144134271432538168641655490908204331944714569627912287228069554452085778280345184050007048167368914542571852080876429724237926138952769268525092799082456528998008364009341343682818613228343135638853609227446568914276035397657914186215919566509389622481851574016634198583820316434236132832015628300622893006618266035367517070548507200671837679843682920023388939106199827460557068302989786705168547851219705941861255235510481271792661297191664150076346312611985024270272003758873207804038569855167676272224071075355591248371471798422732259554656509390827577747177046786092170794961081863770934549695010641354714080815968735461510303908692983850963722990161295432509734968838135819499552445038730914137097956437761910776553521555362528435777741920209017878077033565688925081674093399109630824321835893114813510934307433040147435820340021872916781007501164175177834464576765046519486610026415269857792464134105374586944557274878270313758869454026262689088421377649120308311402056761463054786041626038882281708451102450343456704826031663379711104494778102829356490078171791110300119556162138954947807217806036898780133928541107040373703103297834411515342382570510450049525275928937971272007240083485846545519893731219229334713501289473438327861655252084199396928895579436957095841718344483984148192265192132941435811884577715522408087841980070741088637661913851152766476451036621043174301605141477700973270481100342158727904882818486140861333191316684876274328062888949668102058301437963094419694407764241408335399879278573500905724747777645298778466591202104212886497302452183873208987007207757799252366674456994108386523380308512056592274942615711116872673789361704306375397595543505665037630991314943622589360763851790111099387171949691489298290655019975093256495289444825973175222587538676024453586964513658990741432551696703042669859079558405033803307788045914793168355039206769274764188145015457778665914313814570986176850405459094450842687646841205015802375172294511154965799063086734952284305854069251055726623509392204707227564703262812965750215391820634985336481982792182722329168807396230638005498112768282598769903358690136009206280011320671411193374067028004587502352167671864847707844316556415116904382832677140406587616161082664267830440376754283576722605463279459464769928831183221641112076258309870898155980499255455874974222952793556508303797017503992407393288024993527399677889832220859925507814367594955873594418914652524834869656707991504765332044741110771503088687263270572521631422787598008746752651667724152558678627854725103206836225470664688165185899143890846922127790318928540480965679138802114236457436427684908701693068629541822262186751701516353886328180211352056935805912699780788116712775092372395043494492181392079969483404240588823944704450467424607923735179515017966758241784899848867315333604273093105732722916217821038799865090180108432208006664942700065848557812066745411263032788320988123589884707382425989460809629872438745480633926658380855109563253053615273918995850613159980860407383486904716761512412529009767978014194794228334367764894026643765821638909869779765392097865070291620403687495472201674561402692940702967361219115863429584816272279516847810206378133268650915822255153352230233027642009249296080595837352576025194724262115635159798893115087005180408688428206338643064555567139825600210711034052198449801602831971079318698473189636110836286809507422139234484591593446158460035196311264188495840148167783967727738763238423264209240235550691237748240789360935783496600224537023927965002045653424013809197646443533538311786153144210753622810170342381841364503559003740187871235735919505294389359145279035470278780427569350899407892281682044230208283998029944079438735792281536982838731669170695662303275336229688093385219911125819720149906499057608969701699521269729822694698838990261276793608510849366250963011428044150920499905908295702955542268753759361952466925769858639006541641125395293036447663328992880107578022193427975474696521075823158997652896801878566356039170484903093675344541801716987233708993671471974563758016336767017427438511760121760925231541147046991291125805564427936969440542878768676858679969994073260419496745083855168938844887741816856050300274636688755308457757357185996321204812404717085900275395307988227869024862393540120169280711050212110002077446635676149853241945134595805749493146367028738745369792562837170571595801203710025559085850352665970670750570346134254727072854423058893690099148266805904825193744416099029388370672203784149667700502903179360300318406730617755505009773862998225784421796602046239097701303513601164739842576295674195118624162271889379665856062902584502376597611514358776615950903444898279481853120223432180696179766858416969495596564624646989658126165618368627727142733755365655587623385045639400648667560018972787231136010645487118068171808174884565273384845021276927728906240229005282540473414158765019429041284245468689030783993259914022265642872433236638878280588555300333714326187644968028474830100605671230288069896529513960471524378884538562310744059550261491601811198138331947449080794135908952615221754367934328566864428327102845296694759232065539684184203815648867728571569653630400869325377432178631857991946263444955926865688767574258472397370487617545247776227447960781402170339990097237701735506542008052627721650888890661551096430223738101153403253025745917438883320599295554384367792500428627925453151620172102415616490078899572467914291499418870948404924362380763829059825530301861701666463358662588442225200014426346118742213957866460629479432227370812106455377313271344330835815662710941513303255293184294065402591270918543080658614814807245833366102372183376996447651056138065202466413277849455110775024912794110406779411085582319859032501472465390217550990146207173392250088832565577954246528371841211950866327025998429136868625231208064963107790570735751012388162830917714546682550460156726108353336611263721365124279693276459135123488665871964265319832611164720745699103554378986354277817110487489709441619432433111782641377303138495233377932835431886196295415553855928751796853971344364350285351118219991472359512601820392950129534330204991127608393837706257182759038610143108787983343479915281323474113947383363186825084479207354478699107577481797459361631465348923773351276415339878856414159418656476079104832534858842074180073053530516151133256955824295589752095708175226543849949390524685420369660840507490937200247221438245250485760463692173348938395956417096015563887217065043491215506522712208890163999952447612657714156778557104984899049390960191292460970934883316884082657204338148101544041197943046697413568552702559157317944851325129894496092542365963599565209755549627121817030201224525869306383360846604220167023925114181861189876555455605857724791909873773882555749916256797532362086917183144560681774461255427330293946188407783951870029907859755699701804138460567692539217754750335570510198466021350088270312195054571705431058031442326894214643835491832218006397456415684122448746869953248466966700446343039717329821321467761108269021285604796306124756083264783762215567368999575654955347400821112675705064248368139271923829765442625849106252658137472105196307766086444363817763847434322138438690071864931418960820919300392491926090807767975611505067005059778352098811264749078585773377350405709812951359627867477318589925266026687597181752411482354318947384349563102335288735066586085078420503385834893245276170707277939844947701265957275626380514065506607665423353914796628751674236890456698076755485849690593346732960930337665249641464130576872910439450918269835878080443546464144936990674955077532360728682770608236908777894183614787604759495656752849624112627844379461562349290822586151876741122199203478641560540207647822573787192744106240320619879420253437662608615258974849981852194753065499309111314500257110751042805370260052284719412351262316491859791595441184902902303137746726002519138724685076069331047266969415414608970120992278181700842789541156117469941242382439955983937201253396430439247853391465296939940954704227321447488726854341178827078174836576310156775195918465187190379751158347961712886336934043571016437094064570942303054050984854907758073274058183623372138552260649031343437082223371330921068463268831637625975109380836017994345850616170257942115199295970362975367220429051249754821699773584890010819607026984580202706590918024630213258777858820074162578022861067573119961184833823743954745896916565296957257473174224583027017588958969132712141658864948304788715263419577618034777940847519199699843965667383518877515933632583815728811906352689922624204430448647103020236867895194315292875148679898038452421733828332281979427524264075184955206316071674503986857128517458878431512410107270213664605006459431391876711618189189126241377492754441504559253460112475940869970878963512637956662109042234539631558527199267128397031634183433096226523400317187489671739917277597297753871833222715897252752180220120013457252255310803923290163611007710557019872310225634771817375189156686929075400821628069562238649513861143286137912264623219480421036383598180777919021943695415828032318868861437553398558271497244517096309712151346440590993104132850519471283771680597013934523037905980398441902116650451648835626276997282666402249839751529424611366382050137929315436230565938729532915050190979669298647917386307755581666647799430095775322695236300749446079840044778463740934439523658049906909227828115008813257075425444550096429340650618922789380419911386612447185554427282478409467685682830437198709823775575952352673520719986573602154569436213532202801742762451786477136813560039270933313419027269912094224037063743779761408159153923722533348652278786139453542869699656388745903774930653100746041337085326934928251957901409413546870138693341837415118782150767670896184785398790967389056767323150372379978873297513536404398875993042670434572749521064261523000568481014010606081476221234603591774879233867662640320917788610847396072221435430374594122822585047929743030634849433851968909353848700085446600014525855705005142575374484597685542339185372429750924437772826141682475524676347675208345228755170285604793256970342853186291825361963087592264385699173255369744312668920371607076736427698208047084245614751212793376357980396685076036988459608532986767757846824276541339412345220257553721904994881899592499194882738704550107509168258680122410859314655236515102133415418367900392622804323317842268048002931386073343441793947188780180104710662263367725678393694772140995947749891155506397331230667823513061134469013666182512065992463958905869803492398160541150862764443752282610996401496544980998648641069804375845191890051941868274833696485436833045606365301550950795298007286037657970534130224897705409401372949289836126984964546810119377724771867474544645657473722091833257281386516005187281092220829851930446630916449521329422138005872793018799231098985721721873142374839960874753789681287848892882491736627564120977249002192084345531042294678293019977822322404828431606694093794807504546544421245554894784936491312624383149141763341026322605893687928495432746707830788492060661225227897193552846676376809814970714260090773066390695555138178224588859943065145523182152640527547313294896028711670790588159979853444569136765848957795242384903410135366483390981901702819474370561570901138101721220881101831830695950730781417582210470555767935830325699672758194863724874537740137883974355869289428716650463063945164845148387107693746315132035633018030221438639574276959333810598170366435663950603547866702789062011033201827265831361708067918466514201713791338230667240210202887983993622662957171342693166694090311734912532717774572920487464751604754636092403175926029975507606107022048217075186531134047781259867485934304876590748769192260220888123951490706127140681749835845207927683549533060458560074219146007297944469159429316514550467713433133537340076989041954638303344845832382570988169296960705527014542162833855524115720649509823548174933553374704177621060908174588140612231252698484589622893091734363265819248031370829100241405793412383461162133237862034850514946002192563885852021559614644257027809234069825790134923011490485257683720567206338617359933515814652075846294148913470381067082413597388749087894182212810470718914574916964058235142106707693160655312224271784550607152001919489868014968998061112143700206709527993796370745123127211409291029305575155811333837058249528023787720449361504868345472488960473102676297795334849990579150891337701258286614336254996390529583790709399952636413946573000714319900958276148916959806747818181188154089010819198275380082435337357425889257408118914891449161797894553231420159098543763567085285306434104691108310057764026031618120348883392514070197716966816907855460775936821211208859837283548680838677917002203115809829035477549328479777171105714531006482901858488341889458634906518398426272833933474797370794601877784857196984658688867997518229031540525008824262866295330079932500133479064724537815296854745814643776840657603205732074733975080844525399888442763676565421485652477659860893268595452934977340368387457057050643099651322927901129815073217490576656433989017999051177031112880610220349084394304322416575229205647310887557937860697393015130291327458449619025759009662656300905806508804723160402243092367493427085748551011696678954153668564298314359599640417017454574432919453420433457937994468191959159336027295204412162455428796562039610346262892415468540608650089201782129129591407062718836741183359657416207717734133930147448132667796816903247854033455348093056383409528243870064993225369109748996215468864231899208124627117144452931797278516935720798059186589586652124157386479070169953679055577233633436825661539672239509459670841462432940790172106079891412473395494125566808879079594780022564070874129380919295221501481824376211499073645597170069575504019803854451815586967567543079904148527807054895232692263442456394478210321300169889034958636398897712169526681787858761400271120453460538064844462420288537319434092100000880485246461414478793031589301312842686657810068415607465522183294374856600349707305075631444715402429750284473678036517772583076959767859110103118284389231486508489830333422502081188931458740961378861662748217791842215874732973321807719161849111709051600167248110070622811759300764129722054936360972420841155663078387250531308642655976712068240354295290534382838406978321206271084672246765201065762765977852165272808866993387904230011642763954963365038539404931789432247116471746139855699292903241556761955200278057725156737336433322269033002799029938071027890513289172164688913108071059891959118655689902491088303358941970459462608675741408323364416608844795482499515337931571158825704650410633610750281458586893657600136035265325879891130561546597799218061859487959016296401296734750910544578648940457077794279975610822239628365156106502310790768288135168876062427129872916708877092859750742962132226645184367445134172769259164666483856695680657886471361027974772358382064481949941603403327743943380530279968408244130873114574588585411356172827133244585075493441662440098701472071706468933135026603723190453126458820503430600791946001560551329769790323267082625832794770809220376062112067892078572523241099520312223887141059821982104921485480951304631307409274127165551851922000841851945579214398685161202731417219752851042024054810702873218954433937433492851234343733630843524946621945109940907788520396068809474606596554942039607131220385043143071552918257333950245119844218686044121042020810024938139686361360610017441973238229491842057624914085932441319069766901287240678926639076298101862857385745585922326376744495434147154363340306776844221893844559590491516056011622597838444548415063997005950514391540797920542154965289194085285124645593947957222926568160750471609042819417034037877208098259624474465191320166178835643631132507408531409837809390050039247362668899942033069930301466995831520263313591372792901401948829559514122036337333420794360324811351847341109208402222433055042707483833733990712615781699017101261655777472427848661645478880469435821183299918375136549777035230014007397733344867098106317802125803870017293549996254186316015904495639440370882181733857421566202043043820141158557319197169561261339186224809415517856186218286235118164732051321386906486426876905578789294676506662161773697491286546811257491776394745270951945566447881185045286220428303733809630548488223234736715568509259265975113871095541302044844049889247826615267356040475098112985536427530530597801093666747210799377826761940076892330512358855239778011621143148543339674258202746658025439650759359389609929191454417235263955650807753408952635276137106799023927952212229199184969833871467580088360999102265847091251175907724410652398730963278775920345418663203790977306833065423762897272603138953021103716812115365633274855353331717142646795579244836149287971104309517740514111659273442463064512069537493231545446819088260070044616626887125959727839793979855597154895994829509481931713803801862377546880931030120168052031724384809054611754294703136475110483038326423156093048182874728214663421867844719172029315270927784777030209306023797682978730415685408397070754856738056038679924911101000967137382991465310543114441341972868139125220971910202118536069780848265895184244109192162035969219049171610315158835811257420386968344225585215253285831428651549071276702073756176583645131477158408758013427550664067414639366336531041706527102756907271700709964634319582670634199640627640682872408950919035966493759885873579742110686950164059955149901402837303023508255646333524720955378864405677379636210053219739624621441717852750833191091884075922076527442293374997018951596901989356239154102877827455405862616686045528544891112043219955349968309995028033040101080330045016873812930249390829518602845332062743137571616140705449883503319777381018335651985320321761148647023920667307700922057509505754972448587154722239759045238479509994671935674957894250259102496735433334713275440716208429968902314111850331827749957796566264308176234014486461086416563203867271430591463600756803746926453022977310076596689516711809715963225335384606959691275749263609482400653800483560876852993901853889654402020054336951958665085193042817449985184581169749233839792610323721915283218034466812224544916830958178798184732318982711855114893424171882042032208763597359779626292391551395454601079024912379887619813069080970346377707443713895378573960102344928872836741264152186458647928707584315924272162453985082358468462169918196197352037164872692151153428986549630184143794826525462463620099273602908062056686255071995049086936407342958533568336198807748092458915971621674853485386497838483260931530180140935870584760615985898041698774886521133051917022506309499000633784239664016686639469535431191992952235816792587986864107613837649207848730620626065334871401844383476875095931040647784496277028067506507148948409167064852424315855753599571484587486922200639922848347360130330833271614334184756992996240424255790326382823337549011052659025801732234902367287927086291431729313136696650771349504080067944201278469772442220319763343860032045967511553220671033795691873329291314725229980903498791414375988745628314237251578778155000925928334735842817091238111968344333060466179935629032068577605563704129429030531964158616693960966577028661364277782813396302119259230223766046416005544046630019287384636902939151411140319873412075240718112785811515328328138496506713087383452050686235451870121478892473656874316980132908400635409420817694016265669566703512687630367817378180696660177869653852750372171544294291786866697295516121077710887501905829929972114476767091499487129007040831938377294490801239638756226020366500340542015763545671050064150134749896165029340034950405714719189563589440473586133169548384474880875483488705312674369406412169632233558622891088887538311142501179726112409869094234563995632402178049209475033795849472761833917736012755262803697894371268215483947510306997665907181884790383455998370353630240011545304602511068093239401992946596871899427330604508472079074301608460723036572980592240388448444629127060215336526531983798637555898228809488055186355483967515861440804057332427101548398999600007980383433853447257344549548594058746388132916977585837403477267300735531396994216953319725578056828413035483265269142613842969935658500041029441634934778069397709236173988485439588735715234815951100795290228466890461069058534088848174556892441557577306701669229254017874380188896517299684661593070983614947106807439061612565497470711787142643043464869827059566684266482847247235692711218001263448629294365563416618084943331741934789914967427075923755783635964665475854376194916890549457630952811128896418784743120928016530567011186681484501252015719064645970400490382235114722762291841559430529866893379789844798864335483269310058757169566790665045677258032672036641432153477974294434290463841139922466141505485044717019309402842325478761587825251367666225167689047141840953276867200332038990993784907047956908398410092641225648844359426483368517014370150954945647656062171312723976315595407755928989184037256311377793473494129256724564870524120035579813652881209714161848220418164202793386018229017317577699804129067837786833459672672022920785357894912455589693883612598355028496952658674451546612566886344381311564808863592574118830974882344434506419918272043135543907736783896862902025407619552611675056009469521127186025074433840499953179693774240290261120631213943044318375584706922539023084010330461315893280556873734209432844145470704310558907872250048891749797846575155189281632016735452241875899641033625034972883216826422774888798065348141101984748793526106775838791273686468332451081437515535093677536011998929143658520606002624517382930515279066806224661166346635687537364588061297976407519852685545594131604680233502788318376498286250326292856175185560832118712462379731750140308715825558607808297178789842010342351620926208362056093707764665257485088777160936679734954882086489882851477530542876394935457067787338142385202142724981779064098564106999501199655739229830045553204412927459721410635005141766331134929987748728911497917793472036757786363605045932611998923380075979586949703112850051343165411683135568775070808191607877169334241679752706250105162505483375985321665930964241051663169223165149382850539765444929727067825529888355361168970785334719626997943768797799772502304158018190522232149766063560760971077472120795359263851946765160175269374389807966864382878907234385691415529997646333113624023789395632299472772019418964848849211695906599809295693135968291854642523527091488492240516553230536053607150219045129529978513803563231557199897076944954942469264136935295821944384931492275639865954337256334496327861787944065910307785449060852350159487238259979181443195484739539211108507900168940591995019094106323553849356951013450201405214631103509824550372979722108312158507058284751042004153439315203625278926420680814736233613335967514210983351466078623527062204224543633806266836361588804242008421984886592168904176382567673437564821633879802538899849878761687730179365851887645611856664019098023605291012359644413723736638062624997814199037507194086135827873490095742516638791228697160550173231281835419542640691594779365637112431730350691135663378282518407145757320473220633159851461439151839935531907765853663172779119488761769746874710398686185238121283393080477686231888200418126226452411927889898608722385001306722831613992242608732048029051823521289564428717597265051973315100935785039401853057585394898160933296123502147368279439755190737624981844012212810297126038482840726177931152128578668010247825474739301986534192312598395883477323852659566679859056307584285385143653845156644221779593886018972915965726562948146743925795981430364204659718182097502034812818390462680161952957725155604419036756546502639815037556074398671993704998644451105175850745811488629363100925934870075427233515109482691102862632113422817646827682271587356237590612743233249384092099725122696612617159558959132046347358387169411786046388191734510782403892328988660059908578971028033792564123710135237652308970258067037621198276587482601014941223875330257947363050701100361456712580477852220989911956736208715682557101945185318193155366558836353767259469499062012909742951878793756979850262505516132235355339953242127040627535526023729120796319498548720654674672063700526940511328483760222994267958964355313603568643253880430546624093706271215693444007782833520872348695862671397341803475910499372733970140966048956130127401917942764490573177130835585254186657135599202979407276110677671732287342948889874902411659261403515477479059750552071586351074258830530708827435115148295601313462197279666111476213114635925191604047652403462258444608686684790732265737668810072043293955328047276822031558063584182957609626123347370606688689925335184822589037751093136698411847229460180205103778283858608704350619543919004798385540647043081060219638018090763100017980875219485196539645582518753886241845749404952386280426853660445849370182444026312156714823644500312616827712948812487883874592772638429501341796048976293262279911534316079249816323581973288213858125702395833304723920352119470823010312538171893337158949328000622786471103689990895601668528521852314870374939875296492031528240118901671397535154381554982103190942797045538293390767267820443774345992817485779461769168415793504793005396520081141235462776755995806598296889508563697251742604598683040828955686120103579582575834590024153034134084213604302895709473866312702318962324069039158574125178366091143291431880759902772247481943860419255107705805590289300136350508553047690424220893664871497248741432763988273398759043280097353541622641916974653982322759975854407945375214232982575048416521833898952739764014694881794516404078371412224496848734830781443273970669764929770071827146015855963210546138923020809042031227792052076443002679048667650586558363508301409089342916507179112478279567390988322607918849917462953459418758775834490414300479488302003092240084323827393737956692470166490762571416900003085542252207855677656780332771472478808518838279739635759126053315925678488090541581474899531634853201622615271659577466099370677746219154328296978741968452566951537995248912320156720665969917200107884504197400740467372309317630748163181419594586643717283016023908607832952526798560051993886271306024731234788748622221389654526332593618520737533567526196092888039004449768461391114705897894752054517969844872924924892960223250571160580031777043451334166631824955738755317900505132969024183375065273387432131931970379511062810072478816941509340730152881710088971321038475159562510535541382863442376713945492782555133672032614696700508347120577701632291667475204347873062260597903445979857318474668779761353304748221801701237145142467937661234636118768934251703590626439293024243961278408966959097770494143617324644196424702613596549338125367936347577233390535958648697122594532049483189177754177827907063290496079154657810092958608159307075036716260386956848744101052220044459475307265876894465149306891018875728578911006563301349804730299168901255058693409824704105467464442876262627772570800987702424782848163317361024579183915036382143542409586014629062478332294735502950181087700237256672212219979157344916575655269158349741817675205182934461615997021136668037111768141611382530119778130699968556899881734330365357440649121347141651428532006068193838964413998208422552224173117383272063982031442803556369120430448245050690389668051660248397464988858200320932518199125833854684784349574235435988417581572721464377669326579518719134908073918958182580707663891246703522491314228544838455148833700938491536428066125052778840754743508315784370250047104856546144944347286662728637725615705707293745140723620313417022096805972256333779546880609896578602515177633175554535699428056389974962763106196110552915659938817649239740689477731945101626936857405898300588662910197525718737970822992100988729833421537985735982750467678371523549353246315715203478159407482105100110338727507387568224010536192670694843793383925411993230860741364619917432859432308585453850173404858846954634116843884615591918042101033012732180474998271336007085097605647626060592742943596889908038407437525793307945579884769555537944293239658497390603113071319671416435713938633261001723797411054982950102579446161689812789173733933937970466079217064086850817610376572015364746020738740877129449376005570892309261162689300935224185995369866792192473438993432027000053104090146188230592990861733202314169414327124290176880543202467106434028241723763673815158183376107857495779271316458872271177638451454044167194711340611614057336389636222143308832222994973692700060337744466524183725777008559796969624200064387778620457954584377761995989828875794308609188657916199961503670980519809946421484851039574063779880283212561539548393819865432830847594763082633087078100940041505697142902206620508534533802638420907019695888787553551776381138030599081015841439993518551073347668279050167967227667920454756430453777830708757928620031271179977905800539690390289355515273322532631537428885527480358759772687254041660965178187632382187209633944031053774279682118798666718899941845800347673606510451398932032064099292929950506151607145600238662540513554744381109069894957383824576733944141493460875724373312123802945326423241753812597714928754255983374324767157984885836154661057460700585032034927996767805136289686298755364164470692312566420080459364150514840366574035895221752466984911323046266993018886793258667168753260772763803407529767782227304929864591393502937522359200277917840101559782691373081623522610957352750524394559490873425599355948632961558508881405667780130396794263796175432148246878040178177861324955903150797874616110506723387574039792746690901709638238462526018962669135844128759322861175478661670512041939743327285666427079292419015079922057942589632533777214898833431438318131572865867064519178733336632029153988834029228998016884718301009412743452433856883573763720182119475756324855469208290179726295898920452323397158931701432926947471761923309576992323069281568315944825895468432797009598951756161230646496336132470525149456679293840226479479161523339157228394911952553937246829420062924902431226256028536147874010792216435624636483152380265238858098635674946332385832105910802337257101505792318420318047884212899260004386483209984318223203384856970636375021687786920474533434940347869026949677144652983662963924884058546041262658259005124988650203836218513822064945742375813177124926829204529949554862233547870608931622060777810495318992582884699048384453172861433636347594466941278241654950528472524672499983170632819914188004810422896423266349148968483346372546389211788539561695218603906110148658853170015240076466328002051208570670950904958573065473772893450190675503916646221597323664912537915008789991385183442564623140893207651129594498889238244098955771422686646136034800239367630046029149821154779102669901557914365149135767423360286386866950090367931104246514486775730092848967365545444003349070967879101500783214154344486037811804135239161033907118975172498209312526359590623565460089610912595894113029952399100416196438437192864667494721680050020981748094421538741318050865263665305386824431709346918551263222786173520308784180877655880968863449770513148011235372201517488465510669341102544425944527499748501336534781945029178066647824472311823313659429407922206688383180409430038501663845609900964533487507112287490612485988876732793937363663841148760336177885324435045466426755686322917331588646561916698371724306682084063225594456802455420089938506040128076537273136987147255545222660414688422922019944154443422940824123497604472730429498857771458040931591517906385209269223214765992875558038313762004671111350052264868936317360744250728984582147799475637458340493865855765486534677534042419936344046204454791450282323525582020310829022817274888226979083152853895498879166337089113962640179758408679378031250854785404371193076925366650698872259417277345772565203884628367636680295737940055760337734683431571307699721872738094855562064139090703670836474521035584299766219616468547438428511387700901414841819288644402626044176989277205017228525676532819464577228465974338324286947073085144437049159627224514981252657566689250548040695746082725371010680513355910593869975344971486176644398128653314956558534083527884935882943439349179165478155707653881211610989034709388950579152763089069460427478169011737528976540415699573447196562059208586917120759513286052241491422877734815757647644495703915188524699966583205083579996635618221080312633206559417415514271868877057312425054045214371351630677959125317394226841239797557578412553461892734745393794209325960471349622027098266355589336092381856878393505822827417259025181561200867224811026804985571400846976384377059656645366476752627601447124612987839170709601788782771856094018646939977563849519544018285774401754809712045082320388268478793684709763792779077705320814767137334254525234987635742944067879792104695703019056784503346772181011933951663643010436051923794506088471110289629352760671611988126317367580309306147661064178595681780783408168324470103521729342712778896166732485995948876296588853438138493775523252426073536714168964979385224246801604909778024639188849223427324508331566583034679739922625828985954938982081556095865703820852980785051163114783757507701338411902948018364485921069755383410624244232099643420645497650257704371909158480256708058395398395597168626240223166210231002914112832015787932776572512288352783724047475422240117988827447388343544421959725053123208259611579991026559479087534163818827742538783251745670470451822986185303943442815632529153415462940570199842457520714429089357346613961334217526479049775928046822366053047550420980062474579926284733694455352069345628596420283105093803719676782781618217587440526180921432724830949214654895420492771822812973632982422006489090314000001787003896931077351493979401944582623891870167983822263538225216204316777227599171385647258281472044265164639683371005287199580185459831604862853986298592674779740326604922737020739460626347607377287268547632953964456338835756150454076845323658430242049869833054199140327979322878100101896583989429140749418662204684320921534974822950957265120042022719647908912829926339349569492960132119906011016664281785812682482559410934904292740181253787336446675421256493267122069418204682569945455159364954444959779736578447391339710156201468283746899838495170873593265504443751994542699578041990337416998035774604307494721295710211557148564092249944891966331026705261694400919491742705989507360148593109158022126059065547389945390541285941342699014989018434882269843569291902644320466091375736295918529935728822367219128438720842008433163841847760940660026985124378448015255013579980333995453913597596653521107652571214222649195910602427434094272897565718485255635603895713065971767098800282919632993848271549438351386936077774118175483157333597160853244280694652163819337707554209632087707517361753806605025625588727031289546635325969383638468067807157276858460097651544841046494241188509573913595236741958933989267249662435681637716608941961913915528592752288170452106748667394530839589812945685504407713680882517437923394529216477886930317738543253009232159740516836020551212368859433721847357625480761999352937985913300565019974596040301727251564258024844549543172067275275084658196446850685664484515899776634010025799900469861448350530065510295991644230773571361496826893595257086594036295669594434415150254414392793831776877038031771293420149280261344427923473261114905177276802717398644834760629921143707719591986541180390853593943555763688406110605450072081226318266899259022168274555492895482910742571248834337249791780764476893748205615511446687652878570845264785708992822451246978631805016808312979125494331097634862050412253647719860193516095699180880833935952215859997125295588411330787287862047854436641223457120317504296153439041576084629824445453170679105172819322887974254220705487920772910899951388674148635629456079370749914342502994965675323661897807468600019645679827917635169332368985738904490940474318856372895352896978607962502189536572388635045872835183982789975820404771881726284731014241578423460648440826719166911646056311732498664936761957892513861575419723522861556926065415456369959797324818465109450388899516115555867285273781686962411436007113538639519301446978812944272272250564083318195108918408377810049484489668426465779675920122255037961575038170211858565233621652773959217487918108830751553873184246150693932826721239508982045983698507194967389999712128225598472942153541251477599672510474094328773892598206005454050778097411587353199164272337072704915766993285017886767932170646776812982951534149720951962977699884436019706163047164658838251580028943357081608935114662361541989287007324739237693733165082984802356490533032225122244236285150863119507579033852514928778324638571339992447825649342534338345714217478653350213087759514558141037359971534626379318388812621329068782347418428801260262493272771583011713709837262227885549657594960317278058536203986281118533900415872353144550696601840149963210282982628467832189898206573536781773557598098062646709724414896201775607893166245071768028904322539560751865879228119608410716039950925318341926273656568057726993628936787949017976435643605876259463746745058739506142374035841910399978912997187576159268882218506373050088933905220877580146774745029682581500899521620489084353248332701187228469485615914142674596235118105080598320078712702444814920916485602397054775930720669698765468351526594702146591965359081300581491409762802290780087788678396492217030394324548985926991039884057163576067374082325970611039586289715650630008314025249143440771203716258225404218336805058086921730073009137323716994735092473152064090322167679963061254798963058714844207098346329761588958119563860951702813655734080095070213024630437361930818933292488999738885345431668264397414014124912684338199706924902486814771239553099944979627549579269296657456951494721998957398650213188546214036256849652515844644526644184805895154457476256603005552540408351750129466047677210178533910847449304154632147085202670238394291598500916073339974870514776044190313951318144179219804506293175051468514916799623603087439986405101984699964596889549611798130649500556475877148360333556778389508119452480577425104721076416658872768119953548552334973330468857731521401279030954644603243402979531511447654942779592049121246777172975155900676979703958149900669248541372617058432705690515836253024818522852958430624064864529370020600368321739955873110676921243621266436489966961328693143407696806424301598695405637886363480467509539707686385913068913268416358107460554938746170645680741534855940643163718421458125924946123202253433708769819639221025467847747504341251815476487305299904523164878256581333625200957711270628822481214658174157342056391583225216823512610380354479181604877983237257702738672914876890849627700752423605207353623487172888729232455622832845691113085853913505478160893960663894911059283501418998568811977235651772610643459704485391265667138861674116174659275340561317407891163635017280466855326375306700679140701865880418847009920838545052143727275995512007706261467870403498821097489499962572766714005006086029879871277745999854759841395613789109734432622425588612804260291282817912005923588854231312634854527652638330474121403805943956880022748048999727887155339549645512246044331851922391106029701171468195443359539176632298200857477349337749841872232723642655747675828715415277075105644284732925591833757756537695055038295727295410858392524615924379220217609491106485867959712104392918276929453894035661191033194669202236139181752948136007642568834251179257075819079744960515774383406542117347100934101560139100670784144472729976363004158041217499794830734866820213879563334839171047335235310083709639033556861025888773306551812708024186951973258296714272537135132205642015483282704488572112962668754955575251599293999277815055706615113675270668981157928418321380138293583420990937342045999099562356191360492031244583572721869464311499729800898296250209203790130924240766039328705167587601001343836932859061286786115254079018490950887809428296491933399558037116397693734309938637661462479339004906354940438058647570932253927427944816634918280936948928982590297157988465683118710724841223807980303136494177070018002310757365146510543913877703760529214314115528003879802855603558495996134132103464013674366679393465330997831008439320342800462103705388260448723256068727723490015011346432602559606811012418392601567053528028996097663340421348226515110709528972694631621092971393869742962775752913433543523350172354154157883050745906655053751123976946957739610307076245771272039832877350377555722202009610898273971406210173763593693395572091759089312157745267930974115900387113133713689335148029395860480368961541137266621113410940054635824029583193069744121566575458036664239141570912529171778854452945677723764500182879028655249304588555016654962970139324350751354396279256902189267328106004143931412914419928916816129996188937264370268873297613083914541725771332621810710181384996944839616546222811361613097108039367619672018056841441406210737024296700250446140838359211085372169633884027412275470939837549495021915196344319395310735704097306631219355953977230617903463762263784390295571856378699035668325044085398552859614754027403952181915427910211322110283135572727762483384614550586988202879654458011029406878542299927317936574912284351505051574579323525549299541081403546557136364078146378176139165980237576479295073404632707954396812505637558280481877452184046661077115159314643950185652145217586713045694648121059521751998176221821731961527513941387207273289926431577566378262809544265929299490778431580391411888815164465869185776298963753496806163651305649854764019765794145620543412941049312936916927053274323296941946205773064320519399416637163328545207097524787612918577801366426749561994794525190564830308008064920168956540829178453304432799976284703959220261403648492378878424144267362637461855761413469930380671834501132073805946037993707441550094453948531938356780134924520329997131125266285438590328848532154969296405369755282544391386672574798559741526656318608294353342213151770748840614387607284161543063316145418415646611751990071018074744791031972577215761983266045439461749620990778720005081147775149957001727058486059276167150022440705312939873843748816440920191372895243648533764885424998950367889061979929347851806223791311735561160944566234418262545744887534075771957470466845115687842126139724679107306392534750398126282521913064310010918053134953181233740993947816618237640657600101431694856166240454458861147144609725703771961926687222239768938409854220986686621132386321658664531604985295308211157159326532963225621314061802388399630041668435458335047127742854385860440884355222694673208570136433832777748147166703757268041841166242338898872313272553516453826802317490254152314815967486714351426358556261108758295487484714841523199262114318685003992160383318863516893189878471056291393350759003473768960368648456158906668627305012493456499933822708673635172277939763472942645894676733601241299326712114677741479647336480597456146662488155634849794979597953252739731493484771287094159494002905609334134941029095101538123120697871605144980485740349893756785808276465739965827810496705414167228976242225397271723278982244901227075133667814596189751541512308158407022558196702108548608129046219106902605251702745203260303582258580789232955943306863771516471123046118112572838673092787214415096524217822587962983420714345815292148705621492656526022788451688625228457097278051924674367505188802328397215291651470090829808548101985175790980274596852582865075812721654621864370049234498869305375355268255132774127233144990644550435699137791192931245265479024043874846808370750581223385306009096902111241845646424091294358793004952185136245014584685173790069310204784201456762800636040281340770203886358683206383673643447806788528502120442287206230284081534431292964847806075410864210760457057073625650735665562986761345045608334518405967086389538298434442129752062964753234064443705832009345903908573421067188424171023609798700986184627624718083528995711503972914074838136317993438977138693549649173248941621964316027839208533435019198698780593469533098298536565262945306328888236245805047781782955174304031915081113758734167096606570476953949282656165931941107829554131527323153057833299599217238540424816605393188813785195662652753217253013913484758014515119717154847985869036549060394064313527690576491964361389008867367354378347862580913083139072512961457917014959365064290570448887077455704797694949946376852957914096031123285206769694021824179692466323345013633865791305360272068874400346544341454857489633379811106872975638013808796157023258101174220098819773349806845715936044313832923414622679313483320890265072366470482550213237058237456806871746744878971315628126543198271741781498113219976243041851755873827132717172822896755956459015284608264618717038047449742466576129192320858670108749929244608024831569046384848906488245095710053588795789239302842513261280465175414738481500087827006885240315214396092877310269914686363451347876418693214724491729897526279084749644332936403718645536912653053916973659780848053196309919924709012653062189376688432169497938302937178028941413996255820814308240116046249352368906352612045803731711296181099675830872716232863453355696675111062249612385186615686859962386305607365348296417933056790038652847665236181139127067978323393278210471413257169357508334803050837535560848533257080542644720497548377278058824003177075527669312471973321223943212651301116211838177476279654148631276677222770904687409969870539563962033075725392405889441889597818106117932509365496177404177015199135015593499705748026585258693955175881312052135351361680052795638677841935867634246596185215425055225731462873061957725284654936046043364100400295387187645101356077905041307195807543248864247965663539932029786654834102287394071378645485389400680496589792716245880890608201680136826379899154643845601523738505197480631994922214669859527209636991102423462937596035553769840378094573592115544279316822924275359030589489353127563424072547241211073702027282289220733110054285348494307174010566553116202867965767002861670526654715873991130964490948901130062905162148677700417745639854427796664830990786750875350607364647765470827876820434317826759466208681754207741067604605582849341777536279834022531876004420454607572524017951009744190644142941391158389268828334565713216476592546184228488819055484845715222919128774304908282090228825796706451739841506992234311310913021519397664409699071406348099376478046952303802500197524008467328979648688449080971790422408315036454413207181779030655902000786279308020126558258130508413608455421558661226044538852229251484663812609304193805933268929907795016308864666093684161593664249285737811053782455631282073274939480905671445335020271641293191304723673563989328735570004673099295128330449369511409950466978110605615627403518869337721806889932971325141531678835207033578613680141036497729112105375791428387015585028390629123545966558902144934389274510757341917056448742286283287541019041168667511570413087428790013314147438724993693614366332899311466828425554607654644630017458224081177592024827010121390686312811433688761130548095953306423609789461622568479875698411921840491258539564859047146144116865091871013651986292749528957981474032619073866245599071108590952007416921166524578263498812167187849520324400426143419562835927174384195539073925166343501252071321950242208188973168161905024263385318595326805370237734194157550036766411731498179015523776591018167200877258334857972625436648466595971307568477400110211983654855273727142595231726921970819102874313766461887218503169950477967226640409627567764335617749162276527039410916744086334105677990672997106686995879390073294825347574226701485186223115324084990966521883080555229107432816448937848137040268997731608151624102036373479396344110613838622727234816311422476773768456125852682209351328217551657084584526615218757579834391573130832939635714434239509552995439293454133168080317651644844495277052784337626773030808524141611141321689656393068155391032516128244241809291841474064187849966363500102674993201604052393530999634869340968046781224777608079603686845443947398510160356429943049485862821010826617056926429978273758189370891785723811186169862060775972717889146490167023951724730765120722369854841245155305626314345434755788358082494093521366848538198136393591236383400867287052002710380009522965700020424915235470394378067917481150067704083233624826970645689059242209064272807113925945187460802881860363848236215603901360012159841171677145172698648303462562820883127216747898112656294894399411103838253431732600534576166752296516249343186460695096091047542077631593853631594558074578651865887375045107860708852231384497476683486584547364008094650706509309150064403896238287717387587544960132114575607288233589538103449715440762690432526978526630137634521006689330311712918762473810258477554934368909377764904044433503942759771754540166255827024153009767098732613600846754099857986870619516729449577830588198472740807493732828410322375595608173395447997652855757332507307469880873797120305614302632534179158760086389380943161011947122642648721433850694796405910541870194351753131546580519448525139718506296490468876405392867263226696360832088457091450157113891618467420216922729442501022902516522584751820705833623737383259161085408905685273599477734114303252724429027033052378971517141742750588403481647218940356834039066004331479573374775781636874977638550555120288302830998024385497381683045438210381385577206183056495656553536360106073412329930198943479503909813043627860632566528233247522874573442114110320580731036102436233333393587899463545441822276601753412813664336228164918446685876000815811419123131330679932230615694603207739029073196183536110201455095971743187854064968765078144521312031990473017985627875949899640276026866342814332073793199018225477529133071388098089125930502527134731741340075118512986624677226375370997018426606863759512341692948974871017206023062633183336340367685807654811368901623679392730819863376549651658010858980925966365956121740138551696705314554739043142487633667031289312000607888635817413070704986342055169051909608493104207169770455295459636899767752341495570096227120648952305059341369124883241567621717921445649672790580633423829872706134613570345224679124742652005359192536517911567197839187147041576217640583863951657437516411753589004233310566305211569800389487232069928056146484403765032425131745220680471782336830012893643619011034260763105879994611599523377061078519278156217041087261099869436154567430297320443282142337303732938963545798216830474178600069301370418618239529215223411079041820545679671133111296499972369587842148978162460374359841472569120160028048261306021360168844157018967647220661710147867230100347233877097848711925212614231353449053128680821549956288505915316622282493225962075691576452868182344956786491633428437718379865437494901919028723289111560333928808300150881995246114097030959001258367403521523166615251477681649829428439916827223473395751913837365570873455098953034236827025909629496441742868478384101539897796500887690967981911942893275755301744184865706579992526196962924009744505999356271585354272650838180200689028134073752668295835111454168624347941107232093641803126306565229632947601359899080353676691713151796997563655499285763199119777269398972127561837922542850672978734681414538230961692841465981482095092570851011557152222675968721867881800824957381999492787770819646722578002537916315772195447433669565625651402602337893195908307647713854385529656362203381550472776693364608255868488936999486019597632473023350299688522042964657473037260767723979033042632151962343252598508279034047647520894787211535281000630267751212613270627180127902272280302376042136353936831111298510944260646033609413604349104427677866500459800161046867570222682699445605665297508877365862821222182717025250479412373706765312294895922882550734372042900822818273202396819190343870718449173360189120029059035064646194895865751059225347803133135447193245496228992358712545964295297261746063674811886395432579133495032264550483394551709710784676447008035573159159342118477568515190384814231011340307639928527650406808489725068801541325908906378445677915053731639808678376348749943872236391152573004179503512894649077007210610256909326050649173700142682155563539763427877651868710577913516843127889295613877461309672803092630810143047416443080772141403723931117372697262900907772201544181279060523266374721852103084693828820129304888253923231583535248212795018477824152372301967177010511438503002694385192333051262765992935506268157101435723699649423030974098071322089062542414160220999375780830001162840155736008801089044944101231454916315166365397243548251956245434599858875317208137588408566692461551902396436553723275253995337366464458941230449217914298005527118395251370471233222555590371031388299654573859754034500131376788644541560103076620502371792776964075927337399252412491796680883759083889493856049376484520817991244825157493156305474617765214091183984483574444527629630864464533828201982529211097340782004029583590716125102343806609976117774198961061534657364851347814367737782515390300690026455400286830494649330158290822884570138707762173894589898364887236729104227846152359935208826619934749341063196363379431713060020611797744176161873883883158186004980437275842788813505692998644123424134370405433160349617713162876523585656038901838634696607680262514032203995875825815435498846450745740659261366925265262072694297793971565567016057649420332591279514214791893700692632661354922320669406063507614356461747923986224801801134393629187537800200170312748686230609480103638819771028112280421762542013387820385394974106197139490863385379276170585890186659261973856716827406428546042530450748880238804027060427379722491429700419145097779209408548713323274285511172764414484778504848819934022056828733246612275096337679954361527757435389674790723970121954498521649754045651863992034085616023623763307380115859038321692251985270348842385292551883354354206406136918490582352873234158359657597999967392524940858351888154604982570523453741566281959339768897350457867167531180165901388096310610001281935517246082956860744124411808073782700229055684537013929113429963298601082404804648801598209863943550547637299953555953982419465669323074322392899777668201083400627991109234438652316565735490113561872306610353550208311562701252674207905235515215483289709582782389222830886682316901872794537124530547837708409060930631702945122163921314489284692350543143320999332291644652796344844786327302232800889107730443314724424128663561953609024790355254868961245139378665677956536504603695500450158010796782733888105396377050639327009338874326596255336275615553811938961551878174181149537086017388751467373206868223054431005803823636037348440452964233654906714097196547813342998440915165197951421660804427039234874307418046937053927537475123074002160907005599361738729348934087195789707304509762362280119242574917218119886989987601533409655418485779183137737957656157363148237665409794493840778864802951864872986252873062679645859641538871000559273897239961894386133691162450668435819927967011943149507753163988677634864592102243271838402542208431251413905395017711864172018830591819063804293506138989694550806357677544051179528411746290859562351738755324243694671958715716266968074330316601477452316044721823020000762633597678988416386822695039621538470735761496066396555472041643393746710869636532036138686518343227837558809285713543506168619483363197829763198580437905353763849590136990690525414480629909574890544846645186250300690513812570815441213263435752426106882129704342132006344718564661853902572839297181728207879922525071405184343708042229102224916969786895817426505542792942732030284051065448178711304635410870438122853315907749547632748389772389364171272945190562581438684818703932409615095010771593667275625242739606807340363831513302186096050827752657833698741348099478286192292035097976591629867135965703704649313149524166908540407820362377286397541683797729741367592973765840705475697988812075083688168122308988715987835766489398931132151003665896858765467018817081084583714214529552821865970079711851088652445466008186487333088594683792511871748221760592948233801502175034131045550861956471118795272445548655029805774973028370506388828375742861442400401379907050987994667907749048019831139620369041813966889633087380692328478558914088358978103562906972552799625722783169914877197049806630140794961554423648984815064713754207103406557427951352387980465931750905708243909145475982345655386768969677752087255097127205279944961552883278554981462859960372153115332855264679683241487321445575594561290430385772841749075667043393797665435153645093815172932389938137365961645082407220955854645597772650604033490600893895201445401949826431789385925789161553449547694327166436024736643236471704231694325166391488575962518144198029608108837308819520135174277593964673990480044042261327416426215646181616405903016160890230912168004832383731369197204634924520899578502681039496163400386807830931270266502257059709315340677957767165185214784972673089550477033827832098766898282141784655221930276712301074878525687459584890839970540970502765531774091917416447405514253313996417875805254673940928861760901719108374566142968017226199223772300565220598331318658415203883227522825886098156786679430817219448732210020167897435996904887692102262504481029241570568913122237632053821750715108819492231880108633019661758512138080151307976239222709425585949893064872819137063593324954623095924262743731994285563237985830585761935961547572746138658589168187758091340791436205894104147140474143521621368234684204731946295280748941895472377447867366495698833422227911256779122893160064005935504071167839728628082511959131075801682825365918459102347746223387640163559002915808743775794801728791723505034845400088338882364992778393733619976041063256836927616310840696290427544254400468493247994379431289238174708186190298076551338072736377367177417798286134804536962781953568725519141447274539617987936305329676726452042241706510040959384076254918127820861492606945627335411469061578561317551159902469671508262256944656433589833896347684923582367540028503646826218691120911807763064681081687515549603121493848269248144987810016692770505530377141649260612474930073938095807457393845787771029239658550431180273335748419474823583591988583718768413928544332929034449114102276191960857078106929152006608154456571529538262886934904141531198269837415922088413350671404503059282049634739418959813445374892892920466918187689119448753981940770686676699491875767542554808635595965367460964176903863594632537014972618209560369067312132034764667584042608778317003540039589460288509001248289365488179426345951914260680855569661880008754607411663697673203284047585078627191198523022602251933143653029972483192250745229157357240596761877991013066478892371700147002121652694128889579007469732949558335642927618787642884891849058499431870917425619458396363738260171272033464438634425991131772024757854740604047015054321949440621363579009164532078522941530833053762363572079148879422255479531125261981793806272335811160210956555512358170902876052219368061129338914265874249802848710980340322029625373685981544250536018670533195160847908331813988122896752239216940650371519384642806540766403418743969586878671733519712680145882645727837339546806467651418791498272720793356820140222055341823543942555386629304045432450093944363635136658025311075725217128768669254334723421962070437729132006822990523614224292673646788370362529052002983723822641271802089063669056731673786356195113462668950905948967668867997683993689255182342171347061821544228718053864005530247336054807066415898871878353274559383209923061350408195618229776144655031829621997327430928362481292812026309808842718979738960127579748237606468381496140102441303462907792955924893150237358271761114144953293358968364490912208507744538347731328405703736785180117043945457428102035943790214898698657500982591849803284196411960469122661389475196504404596186266390762136970559185247317866187101581570541935711461769604627723610426961787264936541080763697157427015952478147484923871275136389321675861551301096464061016952377010743236893927330925675158967027953171350858684206247610190908832699438455097569374675137375857481021922758218084767549253904383141380567543040715826518138650048341694090943826998338050973386649222782732892420759157836169476164058583402263184556796329001944268362133723550732936620856662447366288672401649658649191067900421411456897992914282780061242500678799432034379258609432542074326149710428198888033156669816604388514859098486522856723455494695547727246188069681705485965559612671278699534814128568852272719732223163429062698488935488098498220346048065505553435118397383595636752302698496514398520409774745537824598075824294658321727091156259388641166950163025859911517467288405638185729301367103513306625927228711857245281006266531574238824069781434687381613785351401759447148213037461823548719537522393988372743185757242817000488139464371801034682059004873907149078003158458004571911577594434731159013631986328334618951351666627908698373348299455144030277832525981818632745581517357476695659072494207216642848310207653252507387083440704351829935631617188898919605914506391609516606972951136410422185078468467949784004245066328175393871801684060103893146228820001621140681938378743214505058294876501287785486308966343369851075086682791332801368804493082629429231341190834402654588909073353853911816412361590974477621425061845410841850790400052623521960168424679328914942778733928649324524039942436884756574540603174825062239074303338547362426877453859865234236498339499653438943285019889651673716272956145432193044832514674226166768797066476096699917898974833649316439228754029128264761694750351835853099407988092737774951595043242494796643372593992415097091202563444847081115414288195729970257824395599708100664756571595832046199271560578132254788505545419797171304255191709598841447075012868469971121678320818425069654467671995023923765922890820380450285479499536136197522299202128962334775373757099474413931024566677200886038028363136995344493877279847273804084961179535857835746556161264293681386322236637420657943519471190592886646780337103813585750670534348604664224913748728573255813465884860116504698155589758277352961383924386850841252021817957879056223897116809250923608457170626583919272343523198294904849860910033853140238148849392072527541992012714979091588065948186357376926322278970013009608467540476756357499286785939904352054099078089762064880546689255621828974767266510142733287735593808091393924706739909840131465784047513286717348470520185970946411621638338441750245408347031695854706570524460183188539608741474683436850806036928007790073786551746074924876114408594195790776061104208653163185826950431163989632957811922965695967174486292360206043028124312928788525702902332184614520338500169586555685728493568941102525174624503193542361660532505842278450297034455723032145526007772347306202815987124362651115814843929093352263939486465063572900099506617108546196554412049515292603336695559624946064484731792011337042135780930678604750143450650568221761029394622904012740666248854720125166359866718066387781664896169837132571690992816897250135300355305365438823552601370369999350384337562261099369239097159473436590987449247783811309203889598420167359197033828333127980839531586706555991687005713569308237898558696330114448849704840684694977938835520443338850088222445727652800477498819846439171427009671041239774454076905827838555573049420327719310636335407919889008920501998783116911626263099775805280239643943623876184773083169009514930830120136897636825366358791276597794445816534138480819047267859032603479639738782582629284202972232960046900360500465832980678621557125250973427042956613706088486564016273400458903957051445050072767328054555910937190147100548945430629913677917334454404860237752260169483901724057300470404269363092651455912903167273677911344534204639879202255747740657266688412062424179122347281226250363338059034005098164551487623264779041929567494861757443145348797417976432277175560102725025576226246718352480286846213751317361917939204481843899446885360753573709588175348852645275229150625480114947190992142496009616147131719427947762240838889229596828682795783857546810771559639197605476090312493631046597014008160718684608695577702947292953876500274581003028921624204022580914374985278896223310752931213760657161846359544773981327356991139251577814297861569657454093111396218801818742446431619629948389280330006399769038044242048878941470813324569777348919196353466417561936174232672572613199745166399400786855916670159227680210302211098838368934525623563591885249332894781463403494983123712393557506559514779587310464129415924419470114255649423608093343355201235137183412974581089801356419964351153044853579052207791721965147553367575834804853261180013035509566435754332512387587501356838789863664534559081270122325170058289516086939974450293256351537622456680639170045896043946584391124924380598028730066271878415029991884768368145461774229093347695106737894750935999374703713048856386034097882002274702903554867601116462041274969471814127673551815816137553603883040321465618294048512549170550346110997637012964175489550697179317337883158804191393459952899312795516078239622919256091286141268593529558054736476742278519290775749637727939088650545331391219325535516294594489279043669330432504294090143590897656324267142332216397834358848008148104792891996334580092862322284435957448702995590374877006618122478955621804962986166797145222153130110405886927611671688857095471237467548833391548829346655212126538048208608447302702165073281454167364266151228378088465897861251102296722567693180846957857161275357971154051953274772552632407259267263864112337053723380350586142009122893805782431387411807651901397924754483903227419824604152182456227184306039769694515361702350435431353050529726422656718607967434329691299946070475519680600591717341773808974195738222353935529061553796124857421117268645684699019479691622856445132693388041278503144694983880080635385764301636745680129713487572891779424854855857720843168176095934109519690659812097250557202675769886682407912745119521070401765987800812714095847115920787497505945989601065205752082609174540661197763015968903821318945222413377432929632151312298203978621604151130168441252182922296961463182497092651476567270515406713942050180365773383817404827969773625310547948718796902821158040935035766292381674407567514192347671962801584456367890565623499566812341812948888969094638115050600610912590532877943027042789888666192787737389489004177724702354138184782259761478663949856377416892792564214725413786395803470151511767692222701617816463045280244761843758782195796659121526528431375739723140781332534770572588587285299313007867076748693259474479819699180931888536499443643275610553843538239088127639469994312224409829009888051548132426946404081486439892045216627400270777163832148449753856531641014099141632866984155835339338506523203435626915638030455763235440420422436272991058039383777606697844309681916163671977303020686493895576460262143180452354052144799754185154005966556352282984454975226201210793082202134491559792972066111671871377398828384323218869162989556285170212781619360348017931220260078938757937582688949038524956351166775845549302320631307575879366752452410259214453586649048472248852316950821835327369378091661707120927992989863244209239908168552633452918891861057990298824690101103952071056143959040181919669201243187995059403319402841542891583093898652191777476522854353957559733539127333866826461190952605401845643393445279531955827061970731657931844831365406637263994140658271322220430092607212064325185329286152549595870817477605556482447853643642744971561986190364202748024851571286884030282711227827299669226758399451793551659136922591666464156261812355944373009620536271163889813551128450031276926783608643654908263378755294047190776138368548187629687365406456192929921191860845004143017128633434703444388993482201894557538178739255318898151668717446935129507422254248015128013132324925544540075700758805712768089100999860147660746275782604222776575021733439026613428991080695934276836022854994771214864633051588582143376197696972759988906509333285768166952093493023782020234080581606542280658558389253339107241473271298462031510796770875041600580130294293472861718706029358784000666585941475677039443907087212036995347648387052432611207316889529961799357649165968413103675414883440519738161579450046193114314545354059073968321175416553971418754481915481655066838706612924908405839989670005716361129395401273053851219969154582372821275211103395601012579284741096855658333232910294845173670918264080412350274374607173249893575298815985569244719825664930802960812873852429907759315743458948312587637744682119811364531741961096457878155172866501866927727995361302231291924581174643525653289236914980570912584275676470480398102139179133813735586200067723334952594200442326450785173916545215307132277360243888338235819737140733051351931498041730809645030262474105833628554532627266097316344884286165575758383620038364918558674593924743026046461274022942509072011421930519257769991175129347772817187832198948973053933972016260497775716394685765680054412040771814301900263356434872251799773916690374892778216099986425537368725054084027835722129549485192509814324964308466002512807748817092710910602387115980978964749528878686523850956278641140576476729348698422893701273546032019530595858923871100792293768033372764027328500432081373219079643588395746916049766839588464313113437817313482440771805250337380201129506058395684341227570000411102984573543835371802254121468429931142317297361578525436326650915214322659554124691650432349157571025917496498793258760103865756045370666266577449942311981354337111988931129754941311365755056875623895863171835847129638354962362301390084872886139104570416408371651034050244510894894619834571524592445618314621705672265440139102018283774745958928288045230740586734648317109728351848351565209787891315622114567269963511402269948157315490264180133418009711048893735406504790553070013726316896730148611188969484052674534428995920241692471053240359966506452516869437426606857882146463935064902765911236740939587091094179982545286950564393583378161405939677798898866089604406976610162570060537023877096845580889955653536474289671027423495880942571843770798350298688067780181771637264066919058243037130917962168857273170810439458594398310256855412619136815670471015376049464838640718960674383208935649218993198017215533857711943767434926599611415576330304344316116780682892479337834181286484098515304485721310725263644526842483570965229741453984293628736278181924179687021856237859381157424322437607726170656265286650309893385088738913429928420690576949337999741833740084968841369494660247438560746058901668538926599156649103980318153668854960995850001362630060360205167400756934594575922282655508994332466053659945245402096762505154781080147584662994649951559922175765671578729089505114099716058637543576832015573327711440436032423533680621878549572861883301595257835766663009293739921399162001750143732283849347367708872449029252722354516441348473292544418896163887461681587799903157130371066401896920026678486473549859099109246398189903162693233157974957798307294520433935631761169621156012659776341677479610810319194752661111237740923365663824214122801887699120307815460869230810148434998706159439004407436994719087237457974936375025947924105766762268190309146664911827596840553284998742141636948051192471911904199901325450632163537804670127912102088053991370066863801996000852844745990858628079657854220371818655773464945098223994434496211963604230719505365580162981495110974103531499941521478376600439033618540437291794360975626966927694364648456110422365465974162230209245310575719179972889437200012290067187884802597466359934474677555383482905380243948617034807001157985582278038192889643777824184366713472178898695160984313943288827353516213357100336174969167827843125017850822249239494358698480293360079191766586102605513106371177630681413118955845397180128718769289577284948821821373759469385630661904975459932035883141772251070533529203149726849777193543411958327192693032285768999194875693675520365304130163718756426777767246787965968065783067493622389475774390634930168325358604943248267408709483201721281372292199665911417938265440598353322295794060907973181626598464858164794385423565896978711022558779895493575835779127287297038060417668572916188237259710696748606369922182640029194440963213593725368518012385998731634158304013246622498090464131641413658528753872756556704806035657940923608723376732803683509559238726004469213122199143625215165411945353644631676604214134783752391837765270141885035600432049233606379701930240978187618282783545259837006793925312804126578029139242033466334444825085523292357734755444221707041229050471766552722068882033631618255517100502099924129033484082806178564971994391817919898028843571299620608972524478536893827184399950554462593981438145620612676443369364239751899724132362537362415111266369052127902599612036892597678216418980913498515461204430332295091184421485834958568742027306681002730249717719188205869266199458971737410500165559627674035557679082586643540919569450062221001233519283792349687631586162456322611805622666153675278825930049354648806945241933726002173986290115131792545365719542405093223639257910153544170713577919210821453264190111126346700104822738974785813702461190412783979471306300691807447035244621236805971192809226976793413753773935725759284448923782630967222693927431635877228571751396734305246998145961236587569922087820763929123149433106378882926453612508658960363481048076344559756646874525666063293763039445523496534970268412445775004138528414967756876767185463672484827281789852609999313901214125581666860484612186077518896170634114296471678474603214564095891299713909881263678744648838400890943313967463698324159185726370010414127050359377327290543109924731495637406991894085126327023911078209156795179804376198478381581637995686065071270080175721347305291760928621130117545668862593851691992963479519259411668967028723216770180207979483255737752759356474543657178297985329606371658884859359885282566893467323420338223520258728229155253357414048361958778223988553572298204542209469547380542933651962181159262077058450030510664731915310154328899572806354886764907619057362425740432044865591523597978434402116396856634049060851370274527255555914193049955564846437870174947621979249382726713053424575531118681603562663195888637063450975588815405961193498635657629352595399691477474760878163155754710407388278368511845627196635319101301748264749308781462861436598492144695038416150656639905481618031588412218722214504848938756625686730531871562580565235802013960003498563851263392711432487451578237648149242217862693497172824580499597782537798350067253121135664863052565537680605495591049881223993533491956409100015968635070677976333498803573494248096529136308685209092294778219475176339432937063135633638327014318717379056487914925889558528620841773300555738334020892135110354779357806420923824652450376008252852607974502100218305224983137945805893083449159038494000365040442836023906914359079336135294907946559012555583144928946987337907979526307461276149219727235537824655685583411787376081750007529063992758319726584746543448593595517679392809425125211050954285973640460979905637190313491104997971985863378701009512632902856050074261343817600518711830393791013738764225561318293143910461235439308066434035778912341687313609938841180827753584153709249179124072513140896227184558080595810962676743664297427889304976472378697989230984322341898761041307058885642760285187743696643083106794721108187667604109410557150365758600102909470452203285138414706672104296866666517181090508451817302672725358713663173195995940091340181801126604704565023319719490130014555266619258796999292261267311106522054606678335589051234313335222304568067754262104713386945291762236811173561569591493799558949823717636941513699653698128025176948170367983727933421271962940222587868639972841983645231090984288638709690615740103797975430099705031141505016112462408514210784813738953576256388890055459908122799829862982461123044750000568402906994410902275195102499654592386461290361435718737539065108142640232553021908079247077845650900464973494452084867233118543374946719819919556069425406607574408277106823987762373987924745274505450295376876629422916132112666125767740932253996212941134438757197796560836839764956546278277749232564299792090350199412113451747094589099303986623910065451935400189238739998954913924898268312164711995744609366789144371119371945757397402656901334757157020896829590388976719730599883981975846432301566480786934669151843542142894785515518943897724640709117387047966502344815535876656112174144145426623219046269328042586317795303300573604206801354192766534943522462768104365743941357080664224824409854872262944314320365319701875778949535417854652068324599951329490823005141598545546723320712909785429932941885018153017706972625981400707954594494957323718337546946895583812643022759879862880865324285146058273844909760096125728922408561106178544990328399324944130985263833306838463757288098590936457254477503673704262223957477572658256745695735961978655683615050326077145963747268252196222319148067493506242129499957155889888619232441946830476438801220951336356679134200683779815942386025281116899432227370898558174105334187741200234463853607906594948340049797784491680259455630745628636728076666983280186570615952878797044056097083664114936385267616641210628979654398563393768884722124902228821595038825878653176370521960234605369742209973789686586762917853319853878705606328295706217606103334219736717276609903866455236662517952472027315456894480874768432959680771434887334250474528928598365700949649204048032717239628028810050617233377180716140597567586035851922958745409678518241081788280231105373146706840829777717799831789073490162324748219800936349429282717136620924984077045048249067806429663793695326161871674650696875899071150121394972609496711742077628969048224112370833197449731011397365034298517516391357160456694726252639137624574021344891431569102004338171141277447933734947051766653766122085949198743354999608012427258574158989162996308552628820057976943602737543508282373876806486761400393628792863084452515425700484252701672911040317346198293962609121373877824344192657540499759232628634236162057370848391909053191589371464617650446421600624701057093670146341454042493893839971783702928976608644916883743842906738140928681638833189792673028641460036137633647861493878445606671532903198418176902615442560785920505750006143352504857864770876177294540473760475590905018336323190685947300593183240081749131839626114459815861365706497735107246195411391713517786001099595453207935019208643383796705980586947602642585231048259395825210414155826567206044926298028506570111698945681151908762835554329720321239623742750687774629982017582884240703836690998185330183109631896792430954551609007870261884460167371649387352031639769922881926487710328710405909534654138214826680053680208464592261421510454837713066386196473450843416753822281522128715413691371211515651498017061156937491735148048444714158622649855683779339143948309836464624435203147271741850170830937146684397936719680813190920642092810839205341107629537099783105194331777249290215892671445641273367630404677113805757606807367487888355027723219824532461029459141654230117443149035980842286247968625453318759563097166407624748408793214074234591804488112724243418385663365237709904181389798485081235838450033580574159116954704190996175350458391874037713296759364653078302931346024610578720074564486409446282241384175080824127277541496588615961598694702068159365344602058432477147929159451460607220123422671460559186985884091172813648353688274855050983116569785485244191629814877166749444909120230078076334871865522581490426029937674471284215975610790646121620663545110303393643381370123189207015695709221842696078656462898972803282836340279950736543005304154335446522902034003198172319498536834350541212559769574557422568275708373953486643113313530236714522743656013417008625595845200307078575924823706355997137152655976045498437727177557814721739484797877831785645581039964234434241372011911180985351929416093729943312806588293585868962068914084365984717397817064088735995160522049374606788274250449105620090854352666205538752120325830877013306597533541567286509770232650534156815720149072937972698617299997569332973935557048329794159117014564935009703237060019697967786707261878805706071982046480488157067126098283050546688874132966308352267223400623163255773604141285663624138848005085620529777535272919705130159005220847333436079376270060801928688118429789094326304022603895010194624325774708185580131836586026408286085587103049947398197372977292230460662809709462884076208559524285199995510986264619239321265856013325280120322415115341331737960657251479924366961591123226816587817877421499179617689291995006044060763876551654838974604780343519306680866870991925611186726777691554703921878932721461923286389819356575882587216853133905497658816423843353443610940092917329766118155428071844944912622956249328305865897148273300156684760457420873323849579303874746961421323946819199714254333891993194679043678144851641060650449232511381169429149757639818109098694657263990645525280192004685425209092606294139881942659471019929437186779497607622204034266219565276059426234110122084980302400123374928342741103197059346474043700046090789404015236083918971601544127635172319263609932368296774323877641736891179719210148535650460649992113769898985172847192659729725454671341420341633936415063688022202019379034910364889827624862396942726793687242998939992241605041154881676964105228064138424805079713531517737371990279633857742608507643155619495365600506951540242066759051328061085276114577179507218249146891069529007589561405708071220846835552907807518632144062355013773606636853990529375589699380331535211667281713041028259661050407584462268695030841930562690463181305036992425064220167955250487685908299123406783021017773507449325545120566125337157112040335319182797235614362025654550392052447891987626741889344530711324650923225295829990477207430295110976936623357131090789531578095013884073118803490115260784346166127295399571092952873658282797724566382147700607632934469282457425432623857951968436807655932859609249754645345730859394885557927238330876226566418430693176146366874044691416215358623119237703745831077016581187085831431209091034456873025281203735697172866556980041150556863809510837222044453752551757752467664806324220058581999893183771297812080565681895634535816159191466824000633227578424618006014968703598317688633747652059258960059934141043015330314905937838972148740834094463801907803025020366645230540439078882788222069161276975135682773793899811069662348018545572978958858009402250559952491078778412655892848968291369473451194635437379336616404422554941246614735940102798314847395422488067723293460587109317779087734467536767900590686500949739726738257063689884875294779696673787814837992243076993326127965043006737337861099247040177832063992115814011489574440311518443900735213445336046706561952812255061925365209213589290959715859360409253769139141143118996054872569419929918263651932819357683388025579313263997345332726357998993702938652201072321833147829586541377506394141387159204290133839178114813936780586897613632242729143276944900836786769951300996428503526055125814548423198277815684958930683976442744096707544757279341451157811328792610437690686341503467628464169007744013503221414496331390856081524899130580190119386608178498324176201475107547406636730777762575026376662442056525644347213248310337872010827786967331701017225486514029596049393808470284129560769137995512572459065296200134554173748425372007468232164733513433013794716793774430705199321675663159154863320582552100186415303159757466704148459228774662722699458375838038548270917314826565472063990052936288296022065987966441857909040799512164276879513766689007454789972528610299675471868002114200526503742464568687765630269829819541210986174887183527776899018243496945004304722360749542445763437380171625397533491029291089298182636307813170409815535520859725675607472990588682698811050693616229979707665838597308655280982214879233847155086350565305136352181958306609073822966926668586966748867094220598382022899314495725772270351520441046781328725274507021750960088472376579830473562077106388655046841986864445322954997497113136738307372304764756975031946785761861967363946082118194351958478608140199920247828656716421599903974240862487790673277628564158453948916851494694598737206784937076699133892413954449610100125729116373156765047888610306967934957428450524480656840081259002464577150052355791700688654104595343177799657980874763520394241785130218128392567405657595404142975826596462497675121989878473321956916660881586915005238907242353725190365752993537163771658609472700198636097793445873023610954661029835684021347446456270421815828899589932037483812631430984543549505028375572950602348903872186380257248389943174020025261500215707800682435306098000278796129824064011975601371807265691208518698303880207214167323692776895749477611235527417144150993679873417279979205257802842039950732558066086534440584789186680026246516848681411306907482818036543830870911141766204286099440701250395484097694364577139580588424106662337971061756748485090586519428625749635113240080603987500129132238308562991126527970119662852111739766766028497727681678335357745355545098223491145924772489033144631329117378534347532028271468013426164664256107103205257057970969227461157537145796415160514036040242408868148524943633304034193616757602972542883674717531134735289362915212765122961091499021052767011410069789518208300195660843056176826558108358491345316714864244137399691692463245162945172413343553081149584181453185382597136575003021987100429759699182937940733886254196442162423745611012283142426021506133135377746570214496985561572382925404805191025890617487228014613807980242164872589822991499213092765908905486682052541684190918414891863054927228063212088221076621729054061952166975710267626837633609204464072375175926466570205043543476434744016736655865881134699306597814712404312419323305858696950661351416178827878340664519828684621637437235737367367068549144206248764021786497209179663946350801215966290448872118074294082368028673490345003110543448412619408309976995716520541140493104850854235796909044255057305965566404785862211058545100703332006797339065539327806246437401687652019981920439532972689600995500297817997417168371562877379807235229123712722630710658625316996342693249952703301421509526543096959969913845496683859292794063448274726484542698602066738851987539571460651927516882724713608195078609151615001681564985560664899277685059278935347883845132740794164431903007229936578286099147753415432688966096444064495802086298444814973909559131698307054629467555701897045103637067779000834414915741204350923291372894537583544516017645265383909022534123636808109775347689754432046560664690700281984373880026190363552770749971955314315725575835463626095746407805854458141472111423370659468607919164676336303620758754015326611868321927355706015952167393985742076212610948985892864687606663868051198237720132264391208257118193183013232922531408002254311077790429269745525730050382175714826409453223208572960652816677215318878188387629911448719289178858859498024729556140813094188975322455256240926177247520065755455528610854794978031475804645831813904150314978508048388452939161231950009880034315845130749540430488881443386956894914813231607233034091954054329909105764396450302731602081622170224598898365861401433612486248311804006881735497651431944019758890954370665497727345516301061295675513631472213442165129661804361063983830391799718912154208963107645395299554301333620539539625667760118379990216543467905687996923680209914179793316228962109360332221996931185060142009511396684514962284114471915275828894825405758985330537643746163702612975095214158619345767488324845060471028442621683150909284793308605277374009176377517726495473314709527068107196479839172913951906876711939076258302982221901661190608083188731023464616592291300177896618556538875748254725715179255078420387941220966062345416736270309551760095407112442646700829595869882870217875143373369418745771561926295003508934717994738822750182585340294912448107169910795870226345642670436501674197385506019245945802076520405156068295347248075795605384341506534956247339753338669422058648468873915151056771953597214356221772443036205373070226194092581474621334221575634714032644421299522054058788154520375955173608232159662799031640212966306319495686164565451644198227737055697290838878426385033817353408843292279004394630664912726781762591322984814346474682382468303278914665241104344996883679102875714076295666975233233045414366934753221361201525431725339438947932462373742568324343068246505758738874328891694329896995128264657468337419271091017323183482902832401959182057483184570385212599256010960628400863310764989772519178833649304964882763571774985844757678891093483960658210481868935111773693916927651439105694499818376464023812129380617275690882437740875580568603756958415336427770992069604390521657662006663906564457758225793418884185181246172158255412698868151377456553039969682451696512465980018197332296919531216042294008978238250234295081278867124863568022926483251694472886651589528172524155100026866207593157105744820745239759356434262963548979514563038646340325360244756513356373583787552272356464556375261159173885708038415050968386189703580588169059598947236741166864696719890328393386145895183871149139169510712780005566942291887793399994057497906705787616750964709142781183718065867887543220150962671104304034633670222484040345600218321845330965695914051568903333801137740357791193544507072857156221476063049828175393771310244827760075494666185184651930466901957381612528887130589171262698622324309901441713004192885166687941636689352371202899366251268794125201518520822621680200416365385842937331191471253147650212576065426424539934013547999742831070562303323394894828201785426714130280962119438689946388919543723377904567774992941489978412496510259499813290819484251431294823796364981121982104289772660710766569171051716399280875211796166438130312055058746887003193695720629356112285417572657770294456549823569161795512742779695802928094266487514900562797077450195660171095293164007737260477159571031581986181309563763892565848439035705595148212472009599855514355008988237306514806287773269097361846276679223404309371489254307433481339483009614458148136210479015837402620966244150527999700122482721191068350915675477086059027797735039181959593875195297274698626351369906109665519694435704871099171564169188302005060771788908820678174911765506192070008039905689328386239329973227080991904394848637587687202065186048219508286689503445578122234424347324198565358685636524463315745869136664382135957048650261007415048888674671832050686728613252535706242440421720035197925954633832391726884111255259217099897179724508091765157632063975334827852314322631146811192731956525198199885926333148153718586615728789530422052469488935777853507627782195811011550963794413199695560788954193037420875358727574162715315552945831896232382083536700097141095374078276287736294396575910541379180936868028627254657939090826037781014566535636285209429530012245067743892686522489993280453284103493689221997369790901171517674396107334908378513306307313865695264378508337397020228158198652475300373601724994514568624949133703922859050533376794359265001101874698268640265299317480911226458859012052754929298814057768206749238227062962847253785865221965686263583076615295290871606560161164953623835465859704515087114540203771464339816438457237881884843512515052584020229683775732233603152553877036955369902593907161968133420588271693565529928060534629529983278048244795136224439835516630223129031595558856084941972651447993650998265635739676331793699874685035517133498567137303251390524415244553288073457892028097634816661282666002454242122348609232363009902392427050734642774301451716527159634631951309784167265427959140784140038658452787894238614319363349847607153137890307954772997421684827318428032129515051623088674245253340186759370270669979700121725171293641872513064143324791897938830946022710702033775175042177848592432048604201456015829543378694918919539563103935604979158184710915515833538987388431367197619650190000150203395490957086984817353860944895806654795660183049812505364207033153634248452569320119197683412128988518868492144321658944884941774921451898764240092307416168012625622076826998494073817830176757246196125697063445078710367942321996106455570162120855260942205303545621258894861866798211317051663223546878446204316442359907057053224273351429367370041439736415580230266475403781970282343550672179036302252210810410271251370841835412520324812362656162832652832208035682542730050350233992613647003988130794196389464799909525597322471999645834464031788807921041941412340816867066395248122022943959706017982589370663428127871645409578049523687667685305766213392724090909734377755852199112729965576023817116206474716120368267250976094124811477969089573538294294970971541423499542463813937292897782706448861605023257135623563530237035230990821313551276031666525564915723383289155653979676420435138670236579664757354685783583474432302424744683961227384075852104008426788876027958961251936710472826281538588078970386782108962232583395599285815771019505758023214639997599402371346224321953257526191908953313303392503345109444291723666826023820729223002554995846248197013840339123331707422739078297430736123997928699458920450722293118559101765961736789902533806770090625868418305654961437260300741949046659826977407208139100665153558743943686429630351620276406860235888524951768640835232860686312738056684833440311380408306515518058112401918004198245331364422704926660354497958833428076953449898924765190014861685518644773051252464647662217356836891255612884393126872700236578426974206918577666467831167762472281918398548910520174711479592717113821431676732253756317584558297333669462139397185339727395914107988061946057143555367658706058732915430833154981384177445589797770492642350327170151847936161710219702762804331190224609303118971313841164738799005614243729837992764063035907335360432591453535793900875950873356461273833336778417745911265520422390948168546110610323066684147922339596062872320103381309085330706251205143096140252105865093166643845545077726375949868104299190525410725992349750659314075622712688069113308442510200238895941902172319114279075880760090362532704271867698248192839064028382191347448558728527419610350546836675939384487990335594657867002944151248660004217747113178842624906564421307737951455710200025888394144101354229119756283841667355321551359126565353374927447926879762502238553999602561896281307233589403872457782006913536236886829879943041592879720102063137560349033851603312206923502730021047207275077995177324520040052605389810202795238870518602112038336326815116034228118945168296177273163774912557854830201759011866244596397392623334031609194993063795294086097989319484717628054419269512594665451468816640255234193110293148069088259233181578954840336960720449561688146102663727170106765295896480166631664727186683518950174101937448751330378863564159699774637261936630352118152772228404490392608223544372364339306491758350318072555562417799211050320926891474484998382194413355721196529429142759730882281201875740958661855684924482550371380608758141079582727560802279570287294500599593371879908413532877278034114747231548156616513769624262496601734328722188329541852796154655757730014369892262252662091346905526473592661225973171148944899841805280310513558342886913982147094840116762618956994866605974516080463838855181778941517953752152945789195004499879815684351960920902625343954251575930935364640585549988956028888711015093402203683823941874200251186639928025167312186236524253806590292453281180614884073993416892473242569350349106592080884986016125602933929494741184259114148926134203010770501976879393612962120257477951352017218037257711635863214839066360869032632327419388763605186279400526288443137556132116434516087444120219870577972128258753908493561329931542740458683243708514945653639651641386243068382655237757176093140341010274895696932522815022152212427454730020640881792822546653756871695046975767167131638358969450176959863140920012523572448226436077986064710434068551898653128043264044782029352006231027849392631349666355738787239464854503820348737693084591442400030435087720349882715669790393435006988137477228594833971416443885300070952907314325771978191921632798190571786844409622920838357130420768107459141816840863863626420633014288891270544578305153902474946536339412018933556305888542255243612806009208565195703465675911406630838475654894851772999213981528618176425999471516183218354789771565254233130392157040644606864668799893454378408344624519096132246667059564726868545886261373457887147290716105099231016408479893816740919178781246371375133088844228380936647435375805744209366404374334456277873209229084857632698994427054031882903511445374232379283086397788451113162575179442402318628257178976001258092879838209315103499773354645369769614320135460225490321967126424022350244016250852055037442416816241140477948238289005002715205316275656657346692257083528238201878446898279677843207626301708523347779815149040978900037899342004419314414593367377073991152401482498331103759338261293347101858142124635666726581697497160991070960437887027640659107180290177097918176159068767856743962685286759918203064675374618247733291703817697001447236124488612284297643003490643438878780148598307751502667655215151824048124656465830043078026547167761277794205419599475081874360632349057768579273733875069547334189263282359445485574956391333910300159005658770187008769710222497292565214082069514469029936738217371031660618050309071471574735821454944131781427572423147476486794408454010670097315733050779783224257522400289921174348375450898472319011713253783455064319050895817848859046253250692187304651143111885244069821501037843685446516632541175813755925683527765827857994348614788873086821206558129326424558996667622660014963423746267493557571918887063450125433468893298785323717148175753239656630201709223268175184551141087565961582744054493719305915604155950982439947435666035705007984008758993690532623228682362724672971075624424024740949200521886439865303251708237915329656077079782323798995724685564673422807679316114977228381949220315331600746088635097868572132741109025632937540527695628589645889084684733355496789187741145436993285425245902050921867422681916211914768951868633512155362368946792569500040118943950248678108975725010272273175504356230203979401331106657996360702963791519242917302964300989588170440459621298313444005451257177902708721834786061229549378568589711274830908544784859596390400107818012151460195207167977739955155775970883868883564725828408270161618720787516806614807612507463522578349996655653135965425656785352086422043505543136537223519543070058334869819761974585893355288793914864668617062838061369982732721826034012445050494348303439156618552208186453675918083815831933918652114430237450103630253590351096703218379440837220449866125639166641204052461157596818919267703886611504678213740747298879752770126750241527502045830519089034130996381202707471619994540796704229902690826085438339451682484769248943068045643644443420824521651900962180599335600909620865540870730155991399716773359408204443608210380371527325258149760370987107860248797328192590375883852909381659271278855876966899613290410660073245662232724749077385246145577029041645333685288459741238503943090082981936022327636356865539261467585478999823417005199247879770363787354871144256461542202863276355053986670258395630834550982606917831376494278142110805119847942531235022142559035316459097319185582929477383170863699466221754834360331109008356653725315957087872647275512979313975737906184749470388534246873204530970710431118004253100813111579224953579282191134008976766642393688423887497832974755559193434797915229961633372218209103198633042179602216428380532882797832000985909205513878394005944926361713002592661314208846496911763509769240547492086801103754154063893146764507443342512855647558544338177331656765421956949965536483034826980366337106982345206743582073070902365842880409590267852065197731003275998090384254161327583860927773229607017703976809826998460216261166715921898096699478308631298243846666098654694637843865603460155427822369024354518167212991139248517680057474202717646567949838079697213036236418926883246807008234827526825454480484091299006490403232043306553763272942752586803454535239545967782455733629599351810111423921392708109439836718699852256756195199307123577778390464316235267844122935816383462516646169815760530281250598535213434436162612475558858245591077676120304282264714539109541099151691744050321449415966306708968948470644081984419764690122205545327825918274939863022607471895448094024256667802433513429951243169572765259878645102114880547224779784450139240125896992975648064662553956955942603336393551416028580640130606966704402560499279474295892824261659274241294016622501453798777554609332043958365349320687442597824177687889571895515672032005175080575250830367996902327474581932331627603096485690177236527891354806684967414576046233884429623441098963323238428203947621903728947586138276463646648292438344570802230191841013786591726956259280992354321761322538428180963064980858689099851058216439245746475823353456703388532916088133259665006632153750561866379464592438139151587047135767566633084949494966296799730173315683591066698037379364368437333070213736181049606739844628987543892277497031884570329787230532745805775378730733224485761879631262993561195356957101787635664313973519116726964887687300482675522402750818809352990332576169055530372431032698912876263835177083436291105113089196919741295643908588692846674138238271509956434281379427863877079068264912337374933472214247055023787191053264297373958002510861070023512718003658756622843937727035485303537003522039207113890373814459247157029173320434567466767988507478123793013275201104517511002463877912594655074803651752670821748196272633979999298426212089083109898931811885844094933607495582015401456833020489047140616499825748653330385243704499225595801142710518478135122791571036259262064683876485028901501696701823579502475220615078321844335204224149712253864758332155396893133633676898437212349022121833325607122709621164150744551746979223454951979480819714570466506309280130928339964767805663980234547310637836033816452103611757122577926545342875288012056247013940598866037352695653626804555602325416051472356499441222196833964986783165130456490360884496714920142657392699720084426696141693086498327366357285110893005023490539197438227360222634188145692871014352583404717368418837040490990397155451430048974108065623286208994786581150266955116317103399807105682649428004627208959136182845569560621791419449003505337380776065257118158511200193992289753063267379534056251655053242995406892640942127162594460385484138903559265756295373427864544498541893902070341354271881815704839962910022826102325068881406019236054767157894533354998256019125268886016448792292726399046229475160527996457284302351781449416524008692793217501658409844675685709732863251177451851758422972172099117646334810662627048687838024173010789533918639939779099486002975318781566428297777688517574517221481052131064742053218636506259007640483996731120991882291513791442905160458122895135490426563024394426853539013764926728849289397622437515723337082079034342140917968862485860957513968469814630277176419231956330178248974458776894898430930833423742935455969715822184417135144273114841276778447384096615764541824165321498326072219095684985624242707450043871434766786058096600109782635355428547480587659078346126216928765851098269287065754536268895580886942781761034835145627711163348908486303601564788612413588071046966068805320900146555426052115355693956101834435654156271252089969341553901700323860268904284054770403206741739383234364691605509357961968648534842685064282608475387987062619300112346318549299646696930847426645677561630416539003999841268497212164206082282231909153067317997654037727698041739568798864944293038655701206411267629821273000153222593416901579601328684263118031358654585725910666071725185428638505195507009816913305361913524086568829158809442179226073814021928983510168484409896284700438441343716602816543794904095618975738749178784352465437585346432345586985997333312265063107926768660680782988298386918453245542928856330453309299341353944968061094411808899437758928123570545661951794905090322240485744896171384889369340976531149786929790929964928016935007469913037548796770335567883358274681499854154604409160213627021660006203044557254752174919261957011267484184000299472133462919193042250658799428372944336900994107351371627622464339790169125470447808663283806779768502323973929913990524257502412249966240648578134724996404639992563232863443681799585991281741081975261103326089888417096090908605312663022619018837532984588164260287980258113180087149987626436367656497687241857065206516316653056724408581434171691756176434029657889502589636733383119714602096846484795140452117430582000099833020835301644225924407813300133539847362994510853416520460683132576842716207371275319529354185836037145048485338199510559726572899784191640318385264417711567460612915825823697050736471541613286694122229600869417041744662766967112754213648983257462376440472180085508878574372315421420750860091034829212382954083103227180585607281999260582589414089545327999387046229533623559856169410645638418294356336729867121238053016997862507596007618477586098257671092982813303944283976521174783034571150608829303812904293750260365549972050827754204159956071679499075674811199724188654772823840431863066423467693429372616289439266765205904238175963719994813554967227562665841364109796164539834281803333151370580446572644446208511927906166736307731753849399977967242942855179831917878712426760612026494151859541873343371873297008758786280512609379647805747313809536521986467732207481880690886680288193859214359349726150030989950892829948632796881207483079924996587533464439244849747763695053618332237788805527258221754576360090648596818555216227431280514730050905607341990720408440709001892359188128581038398213595151164762175736758493386831687643929203646777777184835231779045237350615772959049791726761741666788068610307623685215267329051676820922479596449879933449773104030817830294423826143643456067166954144186965619833150657646007236349963954552898350750089610848951837129152499284522835019836245550370891591799379735072001762949235587311712906287173539744445275114719537384535348020791971715491063467878240490080257323641890954066299663468809143454344097136818378128408691498221637860291837572297668306619093280518926877052156468942521352433732798595159970094758332886653404173760503981497212620756135053835981209638721661302104298360499352700822654594109748363283304788820541673781510040522816547131097091090709394547949654068602475363356484586654149122837615732550037511314218899832965303006857847692970618912417198379314985940881116433689232752809792557353981766077243683638951335893563436009198839396853121252034665684949207978295176053820840043257303310358388141237697515752881864933096956295941751517307126866146094946206245516942929469030781422959076527872645195203035425271827880146841585005233895167183233730059695977756278919827414058965690621200012554003454085594260708353279458905108788008510572325725185842002656540545337295910259549643708955192528589885610672939047824956427533673151873197459622011990360581327285258916118356622018143574607173989565600293491163944918612918674336805183673045934024302154019061155894547155140133578559236562535837454719517797929343998571572023874438116496267427950774859716357704154919512389805764889469120729251758504817342616044289323975727264766795474383509377739119995404772474993366225274430681531582272348599497925353806739491721131028334732884648163042248853321669039054224928683258337837108005925663687943408998463010037837356632748891614965426776220654809228393423933463786550782933932024351350791250713757422791245752893435768812075069791265033120511449007801052062861575097070958719407168640502907876454965155122288028959839598013839148236591237120370965311852421093405550876545078883114323950879739975829443636789363733640361912757830333592540123805092849587761202499310385559802661257620509759942826622220052291487213618902000192248391485800251343265563224858977173287622940740996128089685606604806889320308021556210237025166276032366020805883694709482000617566053947038205475191725706942188307503627660671164966070732979772168278452714777130368321846322963215507369410445052324542219014741056604841738166391102686793581165872303503150888198829889384700753190257692978037935999158393430280453111956542684578898435676846780711598672353914743554139646824974438433876527576113938062173593720828460657307850947522598127580615641523162105550641244101435163991930637646312265573850049568573476916256167898886776123314592627847473834139541491141357189564152880248174279500670601531218607522840509880369663726446980398807043148207811551258326551385082804080172545191559411195240827445441568252870944283643584333875971180483755684365657378415348566083098157896854073354572228297802409815920614271326849556133241140968668861531371785924461782125426311700900335737378850888377566235952632635296506719696620433086798951339500770197261173038130122130223505913052611901035885061101098854735964910672095846681463167298185755604725121944659422912755655309336577649561479147407896903501061736637069093479901968446058836894992766979070994850440699250664879790914387571253109700594011939902445321601230022070487362330532102413809369250004499842941470451365333788946907231207702432366379271303013638606394683343608349085796840449811887122081228971842389840861473428854215227257716682779597001205967943992540230279347997757509791766954904504517528127857450132839131790638978393348365487965733341074116769162389557711548470670696777351404805140163630022358973672551312454694517355781479561818983502780742963250794264084380294368583942195825661105640399568155735369672350996766086088392235988077256025936709906822280782396430715986536398938178997071458635095061061429666443040338545921871695771449136307352551868991725888933352634729573968578907526111407290302083835595385459472432551111511205009238478149568019918227355812048114879982297839719757666861691853984514389443111009829373043122132738600718094278729983195112930264788203613233081133669780060678120136635294416227562984763560907106349986541214542651787749740423747764446506451851063222773558310103215325050352224584889156240072971296435504384932121777608628480768183782035618743889825425386140279322889646917149057182666385645408775965813985708590140393962608366245650182756424643455092874706603096103359720441933470004174096871023322454403053249897338002545538920343662889776126725629326675315618260537911027796797937907789009478177079850157240612045010414747231438761073641503784214259096648073783853573818069230709622240950802223174923615378425546500480511788431240262155673720350457061516351657555356951451086298191637748324767837917436521768314662528127152305218198236602231620352518141196427529094335142624089690707658548638734776931706603243309039269510503631090271566666180502949628710539100640044341698383534891255623650415577412794460327276821877180441387351499944299595459682217634833226484399955796962410209364032591505900704179897519447024680615819623874332937159779721555508116334063092858990014510062612151917801137444707219011720660708017681176302590634682209329947398616532115733447583155196138905484931109899074015987034227984822263376993799474442555553583780899188665418234651254338788822891515944509994884498536146231664031972291193539958146943180967343901048855271522632808377768421249214055733059175063130013485659558914668782470545002179841994612962104476729037757368232034331006876328368062787355956142068074653283611563416945071979058167731057100610435087080168396502338946943545218176768196696126162979750336656837586359566544111294296530393163171429718836933193652408753387100765974941422706178110922771738527820005107964240067323501591835555440540380564379658688691182469308882309833586780230985751712435707046991666893712859529422956606501442802894547742529968707973613017216887333153843970051038492616865889874270213593105124897173221022350204421140187589495591864926758617441190091331094928946939609809496475874742006483929336132341139704287332072926644054757478364747137993680723908372400908673519069548005169171128500411578512125180250387265092346985410899160929479625958713622114613028734215996025727175315884473372467218186613513933294342160974400198308566793298509415221865064875665090046683494675128595411896458049305200975317776380855191288218703726585586265940392929308997176769952872716579044063550469325409492061011455132910161486916735426271496518312935566142518949422812031622781513824618168390052075154967448891263482531557345730618383412420265045686862011063057126538613341431353149655226728089192167402889806308822869559173540118405491087016017982160908121568131887070289102468063520745777812652858802278593812987817647330478317287909399886175786618274068854960101602088558211970667676761205974936362581430650774733010241946278807903660160596129813092974172625313771253821822214380658096559482056954746866296639666872408709511307626054286984313036295450215098051105635528896012180769219532698853276807816195648651290931310907317735290461525136723213936061517444073867842104510052470837887876715041675700540847397424568422526213074664550758081023724568937808161721588014666001837966024486095431644903718528108184427306530252967560244733354434695112486526103788439072259314676481772527093858539509528650757413113042349256867974255235503495091843200736471611003112175742318049734585846077895607667719374328675357784683629234814703852302892998364766646170179360383292663041297614411749902136342660929789326748482523331539511192947125987092731718945762676246589724618585144080949007272506365214071913384445424413885007968552157365750531635720360359619192485854386145926621955529462043864920434533491371083656306725353353479730761476532848777012072160175256932397595673963912203716624696798353847361966892371501224053867748602145477529011076999018127353322030317191904087153097683680113882824596391975243846862298800888816488464466174448829937970578226081641230786056240994434961815750772875738429724499641304017858171915365754689228804174175840601691443749790886991713813355447079560999584567362458847454017148939253841616341414712759496219501957444472990614217102870860452844782746050862209784655595740796917748326185173015746380113958612099139792782615335349179899404082943411848353241605326917119794220947246383734164098590125519615605526931450834534734163164631712466851722828778052770677319353019219139021733641907060393371786206618435102961598057810962223440140246580461422666647059222689126761017973624903648978880093093671608610056890245900168553111840606667768911263303033796398670589625190304541990034048159831318469382226635771006464309993609255651049722633404582331835318665198130783208691756364605549958070784296836899613822024774141113408236198753657495139838728571124605836338923334652644394713362371363065643021998836012747879191551156273106818263646851807852919898739943629589268892578947660740550721639339152428806039467895041056839732959236429381331327646559020167514490058700908125487968894740196604137811492300496358095138248680940884501549748692288421705468886009866773261406970346096544420140005827915368913060693400643518856419921604186252848890493569905588573343135059375858970256255901805534306558111261257037741753594491901190770721323846755749891844227092110376766675261137223702772953242679609843708586192941473657143409707922398752175864385195758874333974040078557429673450556670946462875240244573293239549376741032056362515111556290931660847962810271822959901685790160885850750879984189754568069814764489481183794554568345911180511061976834240979828184778269479667392356169193857034893889960509847697134718813258496931515373212500286915412406398721117886461624509138041120108969637142201573780977123923252348332878340333336052769215266252018163004020756797214045950779967424274430919693234324002325190326327126916290517654169135357361260499604881114191834265860725037984161188092664435981232305399800656857756750361896212372593163555886603296913241664141792588885983118082582494637757026010711948744587468904910164709131434821011419819830506627537078367547246687610520401357533480598514696146405258953347431149261226477910919560593509941172425443140717628783224080315833630430881656143517415801168916335088173792143695836210135725587399206157274013353416172972302487176564652830917054431201517997616918065564549586565615152368087382945883837614060897304869027000613493648017899101637766850431992307780472922550568371660270975308998309769963423476610111613031495777207058433999380583576604649048083280756281233105352071594573582264156422518521806409761477870166156005990198910403316850469907237613377251111721744573981743911127607352040260511286383482408583756898982052557005861783630303351384225870801518072624521242745490264800259681485833816193645413522221743231491067847802650132565813956750798305624625773461116774309241356118181320675747258808191726852070801584292417560721672990146723930659865236109500576718680726125597185850276228563933364451613288390171732139192445953918073389371804547533099865451641717526969926965112204271620429551725564247944616064007138449790491341505615567491221106168876056846905465260908873753104334177880843596007545182199961779900615045505537239432830664043412280188824264641781212158003400908938973423790324044828113268928189125482920657009975119942360880652420268078043506994499571631366332342465565383830394969652555322716281239310348925687921258866457846878567020466371699023424346847428816508251781586543621207506819192897620679463775261121229350948015466645103449341621770097540599103419403757247858978376713600187965516321939083589847110929927567644340522303671601446382736343613615734553430427064839403661946329715430493129422043948666425253675459437310094568737610747561431594038741598298913594030996690709882845265575227966497247854796025783158547231515059842690772435656132983937901658956877323610127414054730284290633478055054906346147300432023286807376371706661800694046139860953542671010832818151524938627458649024436346614652271409112898344146815429652788131097810763617270241269373049347505979111449514091866714195664435209857399778933039476407741384650586170835689207686921478317786620856019543053317626920560375381802443352939632825955323696603458885310106848879583422612947136842041549644894884872808860446695609345868953876267460006327805985361112726205601006164895212690571881683608675151956689723794446345101251061607612108543985351777859819399932255914005272195446117937259875559831778540916620318815009423673564699449584743662558171337721296431222819296696296464801591723842952715384302770231482284535908561492133887593591112995706820486493640018780024447892639610076860460256747020279331255644538019211694426954523690034568062338889799940817291028035759326012351693117365556037095895081280940182718838872218930887992017655658097370795004845814319762885333307679513430308170510274447297829783418455180253441606266805188106271569681546594676274229712507677061669638504483419286031814942724827420225391951324950116728891472929036535695326845999246741206795430722969433990263548036120728778618832340372725413783671597038396596936743837901395304951863856878824396762310627636017176988774867315940414807279903378826857368938223250810538043687500037727960550671102801123760495457222688957950023158225977305486169534742230062728102715894364632675353867399980665690143805571538899317271160605242531306642468088541766814123787416434917522852315652383755650277434338734433192954056545308621360170430789547315622776953030612834985097638740324341636194352645429214444464832397126279345403668626506081731352821755341333679705969662015769783845134013208985533378423339845025050093051578877953660413714325530257632988885444966818205265235434000154614149997342980523387512029587313324568296917253933006408810116596360682949940455067644456869835854418857454471257426899729091585009877693876143361246226061238616517097937495869284735847801317967070678711882703544108030417458277168752775828353031041072187706747982065204230428267651514989045175158698074003135448078083764085408168256387901339900557598075693728855754374626753828116310784568019324773895838896260366081715233029377958226603968338943732645203563362200179809126569102527422017366724012348323705204717856625528292286461785072358550361044675586534452489594840456435781226960685616589156996506432849174600433707861633355523399849669108131191688241043152737917815000881715920118867387779583389104631417886347084567839722731232705824691929693426808798293908057396822007268191371098139465774442305670806439963574891340067923877951168565097254102190873232841841237138461959424980445296751372371604345429739778598415304730913291517533418846313604196570995258545581558363482463964840367347063363331941275184182682946003949389146748943695746088408471362002349514665327829985676036201632743757006523114780993100179066265088239499163770799914350255563589075748485859489266730797719008574374783538739103557765064151667836845791627235544267428382330901851221247955423896975075319396635718496966575884994375789237693121084355179208081779219677610716851777003873858241939143860146848783157248581633388380199665339205087921772525105694603019926037206903356191666218242016502177157805507881115825674240286096024932807478993218328251932640665499003514423694444648281189677697305488984756450492584857626854028863330663903951569750074241324377237698288391491331391266382402196030523018390761325030761229886060053817591733817541855637245592473542916226380881321144314625115087872234889560814487174831296538100765485769878714977640268119636287565238428245903086852103808957339124824330852171472871980508489781341346587844093751690876656580918381045830121941662617654769171109147140451438165177822313848273060661378955493983550443498080286358078973575031421650667045126308342067245196973366667133245526384419355356103612443286780487932537428621776674094138865552555085452764221470742702708969680867686523163264275582569202070055930836600368268997541101462837336760569286087746812935483145367670811593012013395518860954206803355224402878062062259034257847734122923080108243903117774360140806556081314952778755406210996344728684476856162306178928537345873646843970152586500533313313111875589758360470200356360864987976224392428972925547170879406918819110763107302608643051474249221597839089845061198853614523045831454339066974860420733875178504811726775545084435429316891969124150657819855176556214250459747869006893004643731310022289909750684983255220733893200038738131909093784228655300677545399690947472968661890235784382646390079698891576715800103945335361590362447973953414449396773660570107752330102040649468689548821886321236424167893953563069128538529514224415469348153910078208992483608687783929212756664368079186640820683189585395622076316630751653145829166603274589716762962609702991759620284997242416216283102033492448613298235112564023692504447719894912860397537759729528375714933985944414315451476937944778244768528978228161810467631982975199703144015384645019903312717323667433978390014416878113909726778345401397157139999630395049877203329445659235742835030121216528894769430101291051470138425692884299952709863024012580911568146771409685503911139344365066639465670823245274448707981540853273869089249904747364838146305759474068168494587387938706434414279551757720630968990281646868945375775219771726444635800884462485320023019315807904855743580464242350468314720725959345772173101886326769406881593096812524582457307875181672987254543048591717399566547569979063299677234538828204276438619719014501504124516452127053604142461643459071304037409091830761379429253411514809654494436650605295110803422688507626839326170596947820828949795752887990127590495477383436278406536963101584819515067372480532625611715366912125417749588402768644743528898729475807864722274211190308643698198975377612596131141514785183615137837243168700503638302442698749105999936222166436906227778966153612230727785221922638569361316206451129359258422175023248146657751977033556867785611854754383939981319570736948950441359589130500627495844269769664086058989542369859396745301049280831538389328723640146136614692137533283984194826951695736252905356641222346923637863114185071217902750970830844589786150291113157087893127058832633131640279537137355713919870536380188155997266645737263626929765892125884607198898050717913915419665142690122193128088820166340137977386312176332740033894839448377692104134779331769036636943896445707509169716497525585121028734638229857844376428391172751642678806445316723317833108784616422749905413819823654864222981284424221128194906644493913498383515123722832991226042297096987218065937179588832038083366457231763245251529087036837070161718080661118739671473008081155704512457411567736544984467128320291024161584374637962779695116565481012979620936277067301023926960632884185955195148061334361379942249727058477170294577168352176527703041796498508391491836953945562375656358246965370211288440669699897015044371644441476229361506885350396709851185230516585884781022659177047359106147039118330229367676504351929599415321133997663671733142301891589490329485846333258982010139666305979593474285129959840554758509539811923062352305995077029885604967844487237337078416213297333011727111539073818502535205509362337712649635295470910725931299895050812641424365167470564246957108840331253363999180193121505640275752356916696539477786401150925386280605169552437342787608863465906098956016114667972204725236537944281059828678949972786110365558550987442777922919335439151561862415639247772850247118218044268253845496932997639430736382379153963737467825437616092665619793169500696384384919977311415561420890846327509904021533404820931438822357069875008829163564085592090138392378496449087776850321489422182390733230604814325844564897419598939370656623374844464693869958135568825957226009445172982143085447541127460772764914940469626379115222378810079020520622100384404507118722911050233470884426099887556891013279141430426612214362279546257264974665992637698775413572033870742465718762889416422607321441851698079264608725671245640833701661214005319762731924499694791550571167003104012024423991468158274333958382402434719116540649500142808882470980651669840384711469767997512629706326999212133350577888599208576400454336379294281836007523360418121741591315563436325888520709229698716029279735748814609954453148415745689694129279816229253629802768432591797091285597607568395518671630625988641090122127113852172821324256853180437902505540579416999628841467274664856527256426288861613550965161456275711074943083568646524451622553695269982151735413369861340772059499303480339005851168500758303281009806569644867349343183733229505197576567614492223165622171301791590728214658337923937128451417460123582185093170072318927653310371009216176292323051133787080013672596420052985416232829918442751285490409391284846765950470775955301784128886394735100863559984439520308224970035027362736233847511529657627809726821833958976357267868377336044447860805576127003020962269203639877381152533019667568399200229808103169841465670715437369051023323964851084037380509943628434761883804596502833754125329417733363106042931681663920653721472543096184903164364095771039514252676386335249724650453395007458837795315498324186216618478084207855944200427162964816458474220810171699367712938342420302446842184618326409995649837632519531048881047807241076353040605882390777224238394913337149446429641151740576132160995402874027481060206551470990462336097223596600239939233519948848122327615202504859535379734723291294081974456992821909668942786139491497686013928396747450426354980199072215072629588389232784887494866701193568594330815023192346445422993220515325016320147060395488156252076012970208552472019267829773869611541977914330983934348555562912069856301593951789649997635849474207768399032680887664273619035111228855033537197932187663315820600348925469724862216178893142105701162577474885375640975577844050726563782038004773832284679501152276390557682502799265204533982584424089881851534131482853334191488766230984904375442254949978872324253709045271274921654878683851766226855489159293153659161851925389047927644990761458840837293341504506176777334420031358969657348596513363861313364163195383223327673123647187045522253531008359509193776807640730441420897820936931830619729107965044834756729521391404029298056344746535725750438535465008698667038047263974693067283103185042615936587607923762175840965799269665936913499935385683555890278514284628717721821681095753469850541503273236363242258789366472193821177025461352195525934180434732188185428712354308918215714719771272938861589052633288163077179844889557531236618140295236707726653883243167345491468076424259887551514182460117327239839609080958034890409566715375132677810033855727815324132043442180341436097004466592203394391024839258941517028604194292713204094088286535759603319782000431098052824920333326659990628118618754760280224258325790960980665303369831368070108058673429218279100613274701626933291900224962401759722408119036321533672016842377945473402943194572842433215478516187618300252719982147717532103439238546146236573532439794783753691302144602974458803799970951180882299155924421262529984515990937712716288701268583294377193295261720500585887307766963673057754122048673639020166259547324702814917164889750898926183503110838273361991615417723045923859557604233125512860588408741382490785150711989310902677026053394261974265186577888443956577832597245007426872095668391813883484880166723240507273369514087230061456363925259170509035194591504387991140057910192544820588236517484681341716594942031826651495639967727797535862651677560604511412644199298888735957779323709295186913675193261228896774537664867834052656603467023336491445902355394864948677230467259191728637228149992693199816184751717702719651115399414200950320776395265402711625491547596415546808450307186624821427014969858117339054995794520181559529405324237431383437666442295368721688271535900400028975442256895874916434239711662250451488466574431701380036059546077888142440483556035121064981699712982218770221233830472892633411689502141906084211780577396061897031382382040809616883905828571076073938028930268356541225451100070760988526202076512024589320470801923737978072702892753001221180231968004864282254082714173709705890968055148044497036256956009706127019923059542004845833427721034097134551144091370933965665393132935120048007467309928950499042254880873313822841188807390411352439206547765867254433324336400965634442449811745466266513953948383649587952765025033846580948103409358547509992896917826837143152787048607572437666633119035397463460762963031924610411471336131196427685916746005194335365503066760755830453473277214363279401806543617090874730628359706057720773750681066042115918153955865695864559657095028783851848219195719222173317580420440516379131905055439862635046726765102766634457030213909847130101317805743874728651643726985463157290651635604977855269747645708266055683485839799581475392021887923845554853582352371308693882169850401508955775959373258398138196565446100902864455108149376449568583569753415073622615552586509720819457741905923399967138370932793132306899079045100094166994231197971769985268623224685996303381657407477152089179512691554784869441688743335681370122187751553338596996516391830287673947266115453840624892760139109568741699805084936702409671759466527919153241488067708673745974502021120147247124118493604801589288077182297613573299862832443123279773848265722049565607980680957572643660764203850339152167780389329137703306635164102801795328056488034273340314545472856711368437208742820663415289394518277382489187738272006657245805419139735651219665417476210826688381752626182461941450801838072370459252545087764735804152235641818969275152574153337027276437343039385103174660903885388058225726577668341778113131709101442847956476293139215384444869896610786951411154261967822805424650453954557074846972523233517128849939795414272537326963937790156425789526913272254302985722691447976375288137600914590862233071417868128225921770531309998094067918226298320177099554283627683305225378034831200266998744833407501111745433750183267397988917965518654216721602969310632900191909608191743687500978734373892285421743966194055606298171291786707898188672717991524715141920818352359814337146809496414401657143557059091505803738079189512611754981882506225778325195216576113936843467810030846202910740662376988692749932360415643900721171956262087195587150294949209161802554923072634140197845944332420159525822510568397695681347930133502290066511896683290688379721888642808792891738589462859142792094618412272756475985407858151031223735287963869788763961346552788905910833655303711371792047012178723622364966813548552435830134669027405601025162719271667860122495255331262409054112276034668426842601755368176672435076013105408587136237142441009914057517446121684275583450435145340115145584782871055341386586536961272371497182177343262961353837743205783099654288656845273900587261625272575143056928273210860041783746510148694864165430822247571459882034257808429125369300393696563169321653952337689470949088327819177312740754466671181743838256733882429433673052396183342418973703957649512957798536322629838813903831141033235502116235128491474892557717731598782478143809262131785991893942682618364606810123173096081975021780761098591311902373367987114770854833407481799013322903343693497237094763178556255198126560952606934660612175004793273011755265647284592996590572823784922728035761692153739968100182174534501704882533390002023520991518793366980648153723124520162248455599366065207463992440295399158190503554302628713856239637045701386991010790299327096808528324463365441887917165466993908020180768372463561623620036232254619921697484240428709666935267029546280608090244521944223829376458653591297099917612292159148641262386093976333478162664607181835218125861013822507759432887897654683280963709477047618320730853434331605910265478870421805199261819900915874510185615651200323450304451529241965205323520273621624588712924796884789784314590386662761063483289700132903559571881547006469678854795771019226149722756508330297528385925193267553072469630987467851140799091835292743145325550675020763572045787762858205332204675324639467050340985594571915821148375038073411539649205816504408112201908734324896813853407537750565368637808675816744806094227218380258128368194475123159138001413802359754868964905086147513019308411443024333734252730146136549194814731756391346801210232827537474838119156312018486331585055905502328540145052628089688600933337434962149513344529103162236873797109764181641014905353598691382872816051512375333329516179300532619876168178712660234146974530183751109434882405495395183117788572821344995859164960392801789317317706274636027200520637520589288345370049304292861696514287615455799270585293974783006528155930962006835388560475289288403110164442247875801392709606168152618162861503951645375086080549656015745994382256571535639849916008806720126604341123016036620799801169502781896443635581168403825933844296145373940725707784235802709654178035929526107910478949683194277897946335789669436936930444430656218521628947526095436021385246825748820152274417198081099444661408533891303107547809674333018150855949619230303419581294848184127313920792021300388258697930231665449876736917463092726174961367297971394674265434584548923345465560907267701884461910104962970413315263733216227647700915807163331780131691800595934853307978173430489320859182848935835731885317461422976158436456756840306135265615850125489947747165611525472245546853505234886811110899542096925031134186052116763131376490337780717452118660970256997882287848794610270681059032990336982381316266059531622427367247424681674421464295022355155705508478154179762386085609979476244062643585204783632891821097318790604385495315543975940199790920160466304533334305284077232331529639262431133991530310951581649417111995738398471511423920468717782468586200325499192643657140159301107759945894947499777055995658523743433854341867396621447828625004918603333777009854665764102853399647129079609348115632281835058490783452516710629003572502286056263795571252603590126177409483827295016745580886275389404212630968939909250915341564368118999512923259503689932782693790522958184887843619877697178711028219336643346671796197431517891366753907576960345315236063017024214621297847155299285552302253182430628840689418616139372410672670543782084198540433012702374125409814970757882763336339837661636371249214342828640499611232358648678333753638524822161200648254481587869521356588677340241265068227334414686581515572270601928282153894830734870601387172369019924429877750296799432702504717740990792060214239902374802482672158331703304815022355720086109184047427763240155229835920554566939934970153636024122708232170206193638972501540174649865236273769475371979268254164984245847482844885669467085428253759367869545257070317759519731020314216356281685625010804217393524891068682280648020803507209732364956627103307621037351861871272716378284223477186924388039306619554438711108510634289618043812915281929366459458028124101116184373075541121118695165540566080159107663659285313020540149436402321279262596337543912584807958422716498783316849396813147862153612040410881542617505805163744504655252091730160303551771070159389350202642004285836152955022615544632780556042551562837092968169662132497769967215097653666000875886636317966484674150290807287903160423407510706797178317863061770730783158190990084927471492897829217358926926948923872130052529664885319624855406040634888143290210803843557298436528374216438897944923037679127855472179128777217881969218853010090095364975423763369523594103485656000943762810769287004370569876849537745913978794559484463588563304170374142905716662699193291126375119659666901735472364080471115901791229853058260650541486215443656718413616089203686840201619786636004391051255939114469640676131513134193687508353214703282947698578904515452531193404850063968186029916399068368153851180635156985010123381053912362903473941607793493540265442915497398006339266771778385629764644969509074959774396930518579473920027107525079775035188814855972912586253938535593325765954449160028072188689757644362217945116493198459270131568741939382492950850484399229852746437119743152909969813302074252071620415701683746335723667574833449198879437689127076400832986456954308123528433952908729388506041850353242086886031371914889660534815733999950272907186961352069371383757747983637096676323116233643042416480312198277239893714831656608418168004522760468098013384690763084356734698597178687247483987953552115364322805520073277271526813691109029373472343643065682828449442798838223557762710931331778925328061112687729023831097383246596200570412326763337663771754101953425898743925901087281426118536281135754751393108590510929136261994582555668127972433629498809902026196324564155149543970676020463965617499773392140591121294715388438359356530956627227808425996189589106917812466261307150929081882166711197899102816842963933681041640032871866549336300480397045790260401088545119018718561290391813745639653238117957022034087810359183286843469102401917817442097738350667754080304687359840698565809742063745171783150983027827231277213662042579406610619074168645300480047225851464482495592505912209707300854598171087157795470248729436923426375337839637909249009998921502896209624116102808785141447670017120597199787345542230493405011820951590205456449820204133772930820105144479815930862681654615999173666520361677616885808088925322017286015653543865632581242470483178648449728894230848188494017965562073116280232284391211340269356251892590684054944265616513946473929894025702774092037073994305747419526115518530694387888885869840083105471043574711856199695551802488770452534728080364768195938240454209890117840603185275890837830884681449950192034298585014594033645851555729923363374702769067202566649600536100978901286824395561532735380732835138573785403306121060256658851950575460128009844505324206481891540409980833985121618010264833139098730361204169020307740759973113975694474749365926956965337216158011747029650206402794079164628268572851169750160931617454539777773033020066561170873425921199170176513831449880036683050634313877547137912069033835127275133235645737204158591098382409869000047444219362047747521196015095304757723597164384180426064840754018324914756625599522192878065562353108232522284332312827008327166147828052209280737729301939417397451547210556891785540467169663040432912319928857337974588838507721083746530134422472430235656776028088909658593829363456358553199238306632650167274274917470539554817425020930242443082581158991006723361058078722761142600299506238261109509721829011983993266725631608240192574265210095854047416518250094398308954624032068435853383818931903524074324154915461361955939827870122126742978451495277157654114763678495235403685051242141142489689198620914778492740159070461570534743598303348264046673921126152849296120451970447302811376786294842882956707005462929519924890098956913257082677759018419338765869934367806841245561780633866511201022106595804775648501395220799749999247808911063794466454186826754233666100475808579059698662860762006130564231767855882377236070784446334740198083047811766887321498970632116119737119008845932864930333887385244883725033993259720016915547692074940088201429908841775376119787811218484064674310266648556167623917183490958082229739287726375707136817117824305101711243395421334563022098955261913845394710193587754055199735541765130466739769528561210055016302457005294388440811064870157705096192673222323638369575411145325368972582980550757034669236291941737059147882179586070086826856528820396151060467203979123889282720306317568591444416558618472150334645804317782192404349688352270346210186918800399152272239454036755588395018910762106249795411573882638813214840126032573298093176426334240875139918701844233487026056206074204279367444555569712085059786520609527321991231329965439341596004501849004397935169518938620297874967042276789287741002788833635143498554241923449680135022976448811045739523486731391238759744274918737014740167043527654616428765194319658815478951144765564759906365243510426683092212260971048473920217311057785818167388054771239014936726885774859019273390226752226510108574261245464483412144046859874747649650379527147606889524140535343092929314148122974909389251561753780101689856483376246651796574617947574179616665578182074967936852662402229886725104099429743989762217703777009295695701119092327351028940337483875168988331968644015116903329986556228428570898883556355155923470198706633860928712307850739217874974747627961073813862767071829504076472764891211378802483642966194889945540494139874646948756019794233490696983381624537795174868850792600008036725679932037163364174960044224631274006328370557935068410366445488014454822220693352126183770690665006848278163907041865972247433242569912804185753830237268721893395607776411946085487111472785408813648160126914863073876673379647018296543876888529060813364586386070748034087727306761139768560170749163419563244728305136486542587875345719000780374145785181782214573844253652281481648169542943196568864278412438483082966606668485530828560976271890245880253447865305011057606417090303762803557681813059014967181091206694583560138347455910780354944058824884405365659537302366360413537919560361075641864299007354740634971609831339934623192348095668210589094787177432545212984875526371619086810812848005655100151843245560486220802828295828754931744811795729109719014414671826388321946398838067873377142191004098978262521956827137805833001163596137482740034995835814064561173513612882504817183122228393581440879912331427289399778833018352781523611942964160243306748672936825586425074476715593997195274092278560434026947861861042145589801585690274270923449816255250626384280005381488528310742231369923260673212947989581581150714107071515672375116147898382881208031811417094606024593082188089696023367001681691325001266887181794145520294109658122807747828264613584034243726164839372442574111626433896293124978286508370282128722443022979093149667671541406389574697753181741608506195514059533570371222834870400237936883092281056780795338014668019989678894732231362206381794078603950873416181803184844167061393711727832556606963254258872797010617250035063091006956326771151314296083003047669745975283612434546860491190093348568410546139422533726318067762465342517431226473931644418211638116940853555935953727177483136323961005242436480686452406099861529198705114105590412001994004683803196106451315091735994284830128137463825519152378412287380280070131500500228271322515650002054653238423395384225264177864382102630209963952870593589321586904465393506480761204786272289969780962299214574141959972106028807946199474656722253076684660410957572242400072157295809736678560067047692200547501879361018687356444028158899546562832985527214877197398923261626805085548934666894645324707925135108552097424217211072079866947210654434987879903099706495801663812577422102325496754541036149250182216308425771594117893091895231844801971852554548300650143908295505856224176688781965570495446505073974773363318862403468981573918552084287019323687486490986705480706437384669302913920572281559022221089284804194922923599676429162547377155177923124519319477631303451277559762285145794013978672854141541371886698331802191586417398360423413540277268764381659579377844034002226300565556450552537549043929612121508409902238133052772340456419017273113840254259000527777286283773328207853086273935172997439584833080435780502944176850991611568238296291065281009078278467263720173552831473249306601308470140773110181187637622553113685993870644199529518724469453174345175022130098479953654322644877536380633579197645685584229842677597381140807980490153862962497018926823634276713914781081737271941968313478751652437787167793123761227898038724565987341274321944883830158229631963781395250472980299659134875688322006587791430567097125816095846916967106344703291035072939310218516833279988968508849039188994211474249807276315832171968272273128176658980112180632717896607681477927882489257634543788102184637562910400111081702179296822132247489742909192834832531523190682741810578917627942290532642038215689070800629494352042635764849917919500669338560347102208059237114207806201753000372802148902487081885874626929366670919174098556173246395728577564801856506321369774153508949400754514144521537369356071456661257023940701472923331580455814155284743676614384070684577412553222505276684888858257202500512301575914272547398045465879807639050034269167062761000970072300949694138153732728067477193558903242113460653359930856472050839146942365444570040130810652036905610073638437686141365885300756241345424294957842419249992612321765670773863948791659385068265673971481829856209757037413690571059328353485885740383409685161259826628357847916564584149173306050513715686252555197553753937517758010508106323515851644200028926217494062664575351525281610389780157482835952100452769778192633669216985283996781691554901803149253252883126966932696478964511057770070499581792912331353189900378114999338373711952389047357768911840926093386842683930571017472384549789105059700762015064210679932530763375549802039388956375250873050995173974549257862368711063619973615515965279403432280485718304526664284673341259565007909055531306111193959983383329200638546987679349746819055829779681646206523586420780056008987127075132833488786622818487069002964365202016250500126987314552571880974179018275565600793392363891915339962834184832336545339074833576329976318713226480254116952727431105610650673413820004519807671736112256954461508683586394187994080811882936506438316664267428193761760467278772520757066805659986803736343577850771958958564330181722540454286397958594282006004807475728237111144152877421769773617501552739098678339088334439747215554297419214638764699777867731163053411460698735337256333871538557442231154928479675910096222367261719290676625616014836744660286565699446001390266175827215675376999242817701279247631750242958866891363350731341088504821647376316494421567194081035666878289455036176089858452782347447857136904414319542875068808312610025799937352844249401032946584313402914625075018726788520559699343568773169351288351790308163844725312060514917720648367735575717188348755440734870327519092132797090243234689062796343317023074528427422219288384508011667496001262519971946365493972255300125398097935904163183897614498141015963024216041481507811927137171603168441621376188996559055024201414188365059256280882065172183081449006052355109279140465839152960331672007312759009018887340562983594686109022608990130501960630306440287666338735893829289217095383216587224266140050617793986540796396118048106140918356053369335152526537399581120854878623543424066960697351472877001549261490465070630435858477595812012522551732114309447067654692799642680901294845326652512564158156369802097327266581667349427736407729540417077577257574682614666162566350419590536648260549336663710610804657736240406012728665273473368142957025587374552601000402604363275981637760601807524752858453989718928811276375325268478467951926456160829557420968185211351065346994907827526831038067743597310838116084587259863220061263786593782768200478324141048122691974519363006946670267352867930176313715856399425977719090815436784067283239024670921106923538434426374954540495816537889534262213765827096991812132677663827464742761800368166221850188809741398486660590194945763435888964531743079572207475913130174714826940869097149766195080236626823471633483065862023297779088288230580271824880794793132088439682117390692055550116739248548239978200741225503262493558550059939638655087330773215904934835403498597034351581606137136219275083151572922690326316058824463709506078020170891486481579102204357032921138145792275621703414219937401494797701998522924404533060669906146535822083604210581996669502591662811907029749123235673083584260558791241714693448841639506504021686539588884144900511700545332031592586948042260857966344186476971472608574972663585811950450018249122478148553758527829814087503105360769554078496533146388488505701399659837891375801392739127998395143596408534676356906714368042973846029662239114444362334077159980543350631260505193443512718515559475370185479666765871692550599465180625756544773172549282522896701065084412412011651135386372010503364899927137752742253896681731951042507718969094638961315432408993523067065010925946771991715045557254007026570957958752767931264986639866649877700750336053738449477285843830949828553044535860390702963828779476045758709362092985012272258105050434785917853161152233319881163407719696300732845417074932136889698619486616604810855511135680018703820370836187695997412629096048213683028145564901200605764194055219080219196490691503719151581571585193851445390837740165340470012009321894985104880411591344837342952688865020416229639387742359964521569465653356131834560628024278967634875293942990961695096799314295374888204527815100853189049067415502065530227313503130549479769102139473437255801594665444645846343264514722623992589108034567391848174643324349630087270263032509257149943095869632106170346567938126460060055231751879074366140797480105233494005292877403288495577635564704342879540051145698667375202976010155172031022243996511888644832986264232366366322741248294151846565485657299009886600732332625111869788771763520683507328332301411751119319477377687456608004946286415905832477494874072730298805975439359551126684149383568437874989964905640876249683346276643823265521766879214368377783020415974075070008525894014483653430772299784431167468658315858877822466653668528200426494703643896548468278523751609828284209843470838483513513212063085171532851424547512669093951102942099670169799903013660427701195737754937027578316317590712621176755072494175189083960755126983735716637465353278291740896852015943088375201303299201602816056717694891312017405982238652057387816917173610539215758932330924950348608065095790611061092919396575097165249085230411898139561429827629445322674819331571512797397609281878831084223963347804650538660733814627114336506930719390152945993094318601770479888382568903245434170991299047426602805074443212626295060287588254756798932777878625849874934793704790967390145460487037285181205123456957570805268648911549280137488152805504641420914792378616297752136927723274333032796776479411192621478775092121374609350537434123495604091292508449787046023767213391461106178998555104256014853398953917143446154492206583397036180344325203384494610553293191292708429862789279347325476950391086152988417778802845932359923100451682328017041700968916415715203767471393005610712392451834405875252379900656223439921288482782558529149236170492041492642756797783115251969414275654908080276472267329459402075630146018321912180894701065916321085651361237684244125260102158244394207282162779006870145076767082151188536140953335964201811393102201270275736681934585837424633371729214515740998412600877414227217439733859976480337582528066735788577525701833179375904260157727253670354270985545160388029878581265222548624250587364038146847039060747073196759493216170892382631970900384634744791232504331814154737079526992900328948262175655914113365794799166799372349788379133767297191165586884472937287414618341121416333342148671681634814570873099644068078233405858185579434322001963312102296618652740282464820980487491860315348630320352279451503790867585547127719185390640862311283073235624473889860743398997747161846788276173017605612708966725537765140383378213360639231123232790450062148500006617194161270146448775377326489451929636117404036093396747663928618291896834848157056914563679661753949648565381029158492484375724543190645332210358548389560462007839526544816566135566779524058271834975987167644658879760324992752549064233791810926190496870711491613854691545626327476213844896394053205021982520048753428239605322886192837200250848065435231013005991864286565860121556692659117640513151248537444739305913546005325171643980389575412707469485671441847358711647938488523373596573622419229481990744742158242507475163475930311798593035808386782805326305447590498782805151953617628847262079535695899446587804989707003126271302050259985734539965506338017572353223248208049277998744482752152877669296374118781886472247553774963060405086577137479656841704148541556743188744801480922008517000668121154787679383570554484378067921995631393280882043647895840319735738222742225320020184197723805420501938222956655818026504411820126179857893420668387156085230408112154063686109332134579869568042034334067975018024036714170304174982145093599579338570344479147953436198602255162709924808333330174114467584800127329629061119736643878959933515068567916028269106608247088078168744930024549178136764213802793678483320693940322673732581525473590047138423482641585357759492864036213712698906262083629087197905992365516088988812934698862083601123995374242018063799158589693205050207718193176479461617022571624733607887497664444676719704827348973725205747305863785709303864808569522182455523350814659299892928399855072913259901757905027598069687463743982345313943683635379667437285290191771371161494354074363183564656787048800094230514076025805632919206277674441017274512744760338265435104782570215759840398002497276233083950057992566437183189111246521807762595729208685971351361611256552560012947183817843765741066839285560566582917955547853581675956058326290041479299145205171146185323043765469528980763805791974361922480139593852250829878200244490728318963300585542008851455243159498983585540522863888449557065228420616585896678532142566702466140432844794398406766476924166638965147720665035468641453425765503012451658580272814474932722274497254975369288682817601612244110695982510467205918713006169319463190394388853451916094579853962052767187264559659670680588139148483868539313905402549014522132279417144826793235790810489787499906788072021206782441669205708740534699388937201544673488404136377688447724644854469074961342497978165237409769003097260195081227574508298606830820462286490641904972725768211456555468348753202454826533759813139530410202555477660391277506866741515486687435971485933632173413688522498396653405381515711316851925337333458530649271082750269945159767241596525948622807524508136063358567234543972710224733606485304737521023847477587353713986087409778616696467479238195039765187347570326574740728947047343479797208521045416151268276224147087750208813495237324174820014384277801050423824648215547749002234180516408050796519159617704143112391009997176965480838382782263183159888307293591754673425877619569577835726123261890043603629203620857174937429471072547469093671381330414162247382092008499470589536651449435030730304673606214017661137843491164805554695321447890672730607491445016592971664012475130207201731330596686391345662086576115202407136000933895409560710253786075790967118074011582955298551969198464931585918286380542476740795936838839779641649462889517415634895417835911258655354660594419522107963398921183963628838868586439488894139625318650374936100511633761190537217967690032601173141464126223780129986097312587556917107278124940938982155335317860230177164740300615232057918899245844618145834792177653245071850129183054389232971111258712307194186157151676061899183585560294214543734829940575094090917050366826087483344556856634703808983553894131031055803135464531147590395377200353752914956071176795159055713070154461236617622507920232761371570067054841900321238408807885831431536753889052950204011095919104595603269775736518074311836968942646617273599370191442987675498106715422214303740056157114345271885975925806497764699452200277312950805290172948766173747172832838416969328089111665733697770760552870223245970279358572864298049199476430660447738056745508978826506826151713143981065634896471334264351014016635296145981556426095617354391762920201572910533154225737646190790153700627604321338821328303039021165872910894815103943082134455477332621562669992769649306422766151884254046956956103829296706911258813536705248809448348126396401986398174786865933223815389776334607371257246200195891140908171051175672322389736977088079359841442366755439882605335802393766177232148907225758737990092200285981841394593926537737153569806307723568223321508242724390147942325547532503489609480256932738086176450452998909701828880775792875853173696588299733740191573710796594774912086906944701452473826887215893467778557331145631169080794333006838398457834765851459958990630107273948260395488021698324354105689499810364815978041922515357070735178359111910481947929408699563689134598034049567097767371199023360691832590261668617905782385358392771053326280002535788600264118934414339626779258238625154057381163051986213998635368237456227621496176496580155730391690339004952341418287295126403479576491093526279647777510416926751164319782527524169163112195471275378208466452390731516617751065320736078404587463208374115863939776812236767014854507821765084419054859216749362947243223679967847504748442301062501993648309828282883551182470466695549505452926371949740031537568540455360740912827862281673988205047961355615507105941830147320217486206001457577413492307127583811255075595742275203940421616884147972954366140624848292321805682567870073526948616616940701726879291096708694628225651349454733146031879400012090721308080161885659189191808005386627530754307227533913940031233446354983160537144744477198394309966158690253234052214789592056892345366643949725037601782598737531491202966658524247273330689898163739444031104009659332450657741928651561913260105336136965867797693415553865056597036880967156515183046878335586372810678054650019673474344192426249963422829552800455867477060929600705016245574121750977677898290475938797094025403363469660813922434357333945791870013763307991153077397762799037594999776449845896946741103491790164544952737664945261739938868355931251836041631208261180907717360044983400994355650432929104562867061744984624024242661610703464492450844341193915485919743896278346449939925072332608328752358470076612026409468327793244687053941117810873423297031671082711126165930729395440303123811416473475240550808220553234584672349204708598447934793319897651481306015891904729278489252060302602983288173882218788827676397678118227429545057073653895895960796796286214427463194708013444872926420785134164900584688490117460477230195901348533981014593221813070767227456389825240659502833897634486239381216724411124724029629384575540222510655489520060808293152853790241827355176778746631723311041054313413724024659515819443883228225896089495878657204684458116104818728035087021868184245996231778561078885253102415909031610986804613294742665123963187296063867133838915779616207202727643006228817010488595354959875105975390567989611507494132937343881539173216066399903402186940791523406483440061911390296488557932878094693403518480820633792770278254218352269951256607376382596273510430849529645050846780761694049280524317968141517295453081829716231435481641921205025261863235870004819453479342712877351061403362172170732907466505660709218784904884386705776942208595112192450774276422538555765187161485864419377378467642542513115679616654600704934340221961674139192076716569391518242385984182790666378186541421282876816386493226669214769056355824118325185107109628611594387866979272243538301079813428622876770215949295075202650485493422803397862904637330312627153854226812558603757334456418972941328627697011132690595340264391685779663034441432988807682081945016508603057547147454167065664526189604020398558164271722452052306310356120717001302730740751052186923345344683232053446131673467047755273898963168925801840880324375201948934609279199626526613303880798588931242095256138201236286853683724115656314467938038214877439272293261176618856746320754088917757150334065069097433944839948180317384252930255172018154499758582276663562364523980556032713773848815707231454362656080685450048382046420545833636226384668180226355787713852685016635051126096559017337517045408974889916805007085142420685768186947676233467514212235776830427240988226413640038656445538347212615899288514568154730530723809065176353824921761129777715625057155293381384800277538939126951327302540371298481553313695948446615461906373183078443162693701982788164708323973213860578436568439135748459657689293218316318552424388646863503820466332548181722350751678833870455020602405824460074369774614789137060395865886786343128201816395209646141887544766581892936383573106611773309558408225020495728166339204542745601732866309594762576282534824978356279964173697200072139213084894436921406057307945498215488204343422843094263172155861368462575484457934356441195547980831298479549800279656282530216350521600855810461726596982283032570970353248284994936390833396921009676387697089747387931892072768863606077322284833836017151175653600657472505662717561879657274163698472614748736053987911097908326757504360586079303247844403059806387498019149161044332696532659449212601707146101448146393663261169346015609190022475720180991378875846650326102719840536091228017511050617185049173705347020582079812405320728370870683660701817623277359794641316984984546085742567659593712555851402577578075820996942380245169036053504098284540938508844990589610688657706930014756344166818529073035275758266073624578022391375292417044362003491226487509355996700112688683303570506364593035334900580594365342063702955413195309389886158080700296571076860420192916476913940839100041567883662401544972268023155969153044573690194967905517282517652573844423722484763643467875491626807574551562565109796767617380154393688364672019842133296212642049286979318602269410382366200895087363225093026675466713482889295991093835484877611133068700648725400557855265141726022781557782618288567718368296747032359877894656282803729070194383822600375341771668700020965410156794983478846657645321629672849908442575988758853695685213029758067283827628515392165497624689675357313404329660371386698910118011350001672642446838153173806870686169611949044228685786784648933777335950409413062095936293082430585174966911578284052549349343039554802028975853450216140144461794366443077380215713446474914373041745657124362503414202807866163183033028363548307050377769654686316544591337685769897710061793682928810490160840708938056304652356497946954166213662556797471549563058938484305569785055768973556447538030033628379837213217819475512412223630632764308671726361570264990130441122842434447420606210697830713269118123863027876427637899377593005738174958087539189661357426543438111309084135990095732680137333397802457549461992758017944237698884323317135298883269888080855769981260659935951847480337850022918804373600260898555191091535596219579133422343510114245096409772074657131167244368166682062764304727376957143966920362933917147769038106479982280266983132548178451718019227571623302063659833718066977502843668562779925032060655002203911287403748593606647344088669681635581325792106762809158046344779358472560277552183546879688767082338768239728520691348553505749931058770754284608985087839456659904123559222531054022256088429932937794787398156724181130956571892191868326650006541064946197610146608381055655388671214693980533414481635405157531031599535193541329476612692076809875116561078932838816432758120623593491765127446963499865766908764091784105561959822848287018751500787661310012006413023816008709337322548894163559936149647522217321922888260411975430477312799717225735016519734619529661709139768706646389124630454167922254078435258630199038668618538696650953877504439269438365291187235737535406739482827606196267554106261519089063241000711697509327680734798145067322685176378609227867103554691856372611443692757374660616972507982524826317231052936467795132729372968115284298705307407950898330888962757270505060810850653467029874012246992613527650702269326716625999480564671214785412399673524134314494913903540701241122841503434829600122599936238811725388317410012074913818634511019426304679616780776156626451947481965267287628379158070520456579221380991138938950636515660280648051007976237710006493113168943563981322429633054304690619622251572349870347155331743898192680453019232154072319282177407503791094892485014382268231042362740758750317258570237630354253445266854110288008345787402274982578135435279330498668333054645298144497531054210503429435254043306131829740679639014747395813590463230890611609362988042631730104867832119612272480306665013773569777356612973817826847627921295540556709288509158437912978364795971791803741508469355391668084636772236170737794262574494347304777073424946958563157678907480069453362227999011198688709748705685134779621177964311142834317521209231534013721526680675973179638787580246331257313424310011808625070577466119781964325009108000206662131150386288182799014502505970704853715408574938719462794431263435385295003410658804880247633196330464348104982666153043462614675622925604718812657800744842302151786261762755564968587578488782611460927546529466094590359443810526077362683438254242728337658774764314890744090592975814843833187139250559264476066673173768404942490685742291184953376118642810834001123910810476372781027226505086196319453577057478482778390637286684239010748702700830143811234597076300522789309119539370775419568231444803198017633486417424714012763227253143447539328232559563901348619883995658799332457334431351732761053957353741783036147758534892303096169969847948136747137462050706893027984547418905491858804065801328164618279647144376858907979501811466386986357774060622138388447865962607977027347044581780330633654986792419170160336973241104630741592276127174779722797983304637443402173802344825740129118833816101205588003860547309805068550012366979070729947419841912592114824008248845704387033577424969224854490180439511462996835687349399421043033342232222911826739032542561026222569423828882683566582080520844817046173463129607629898231121723301400455705278305855835206704303089789953583702386663114345578869724728135810258339615891542089753553954874157730325508171687993932940575144407702945983683816449068466517645936043303873582899923955634358738426940645332565774184271586972824668989233781258032749169217590310349102066363382113987878891129843488977213058869661000648808812220622922609582715068826946951350663174801987876900696678818254797253096580210118340465241999460286630173566806397385743966935219764830735063457486864147821745753804438477169067630020461143928291913237817144067964183717101557601033731640390988128044870556526885713331392514169322339509416864155548518634858396085803821420951432372526793171893689608917216585991665500457071202574703264210812331381281022537241556316844892004033738932237560564227968449418095005713405608060227699192864031689925623695053114177016133161843990818192254447665496237124207737205522900131210177101698121732675468648459368579979730156904785820956032671469281797911502080679699856658665847948031631311420653888558262015806356508209749417503708199632448285369309641522026121910043126569883824517159510367137589106030654222120678995541234357626321953595335444396926621520096812360202836419162483786948315839863160415976316693888430762082504335028670648093357768592285576518124100490655360876540875993621251499468194228416178774276128408954836744755515791192834650090951087279718805357189107631564097544459398313695237427403227432988476958834125429920637424388233599804615072757336498506315943022931492996599431898273373209152417444299974495922524305873902554644783744820137242140626680911681574241992372899617003856232555806225421404738986646241623389933144934399002555937573072749804384893654490331826768356658731552896916333811963964327837935424199100865797020977581730593507237161246217147311407328063636775631325116483066075176858163224722237346812828598887442637814391809088374090034498010447679634702803393913591194684427470978521158629284934313918229683819511188502886162820172873225350752320963444661560038485205727497391454988569603657105914054503976610978132940066060465576813063898672177481566145524508111036218629249221402599083190213003777114559003276384576266836704546222927222078872330125543048845418538685945594526985290761372784800326456517093261359393770654706515223134812983531140921197943687325475323103967622706677608044502402661187273189058510836732134073237673392395564347016069448110265459385502018906908553711050222227731915774550547376576179884589391334462555778880266637981104442044165017557285391914574333175706760299257830306300989790441796575140981304359561352980235500741496923147222744794804999156177290457868657299680492057995856307091165750545039077689832532115221143842291702400910005948653909129713576213670044014055974856729186090035605472311588138081479476013847876954125331858946683177796350432025140365417619253657661880652353471824359310798982014172489965225629752438215935211749385358892023922424868787980336203617982238695952711895429116060242243867490347506207745380200094209970597405666500585387111142340750466771546761901116909059435914722271818563805028786830211131930957526774259543735527985293773463887382157975392054262728044570950763338639026951294354576651218830744261388374854184055142580494865289175619821945140278170033703856017491812800408746971217213675576999041277409843312514101297537637536034785397379884454024912206706086332866118829078332646503229166160589369903522657191679739757256491792059101589869042814034555496008834358947172783323822675126062013143064921689792212134766159409567594920052080303112314528852117900084341213259736309111223200189403571339203008346022168136377640109424059779161591573460350006230025335072665489960836376352324307264721668272540107690516855733816604672230958097427731649979081254124307055045427742270902855860275220177276913501777637708498537628949685745481772691634886731316248858983049972901549742090309027698630440945735628985526589216107268838352843923819523182484445186185041770805060265660311592370986469282429747246171762828370515612864716591632453063782448727972921033782743199876399774208020086461668775281823451565489079065800854842285988595998933093520003524074437073025478876965111015488836754123905654171308997637359587711232094050956187235418476560292925616335509221610945758689257141643309709475369422299957158933247557611440626586691398609300539339643490597566771870245615771626591019765487654823932689781227188233722740462468627514158435284408544970755700629945270631811659834360446673209580305804134240011117021514403167595418246669959234427432353871312615284653298410323511814598387749662656296861387922484926405399035802307857656289200301077070612043553703019097814584703580145399662053228664176380660824348379765521018432878784204544943124369552854887763013034393770749976614415295235312027063895808307408712709546448008615895491207292655032718004677349042088986189059340789290228399409730254017118317051481817955544211483975572853554014055590023085327657605426252267488393115252080420616090335505722604863792561229864461263083645711573906904178749116093527149057827396348866164469646029797196871882129214024028655212519730495597690068716140946775403507569383888539784953562977649858189851309959528965888626014215665263041038939786959329333494367761909007254858218543909144119958876995403514952874760171453684294336337740605770230339802940876465991604980919497488938200088391422218504603409581336436115319506279523261952989492398475198312926487488477911288915165830084784998440082428809454161962553804500724680819000720159472536207190272492465268046488417749914772979739226175192954038730402024254087193594274750322792899382309868739283359222092405266399968662275297739152589682206793540495696235596133770655963121643797200810123828847140702234142904412928083087492844122871614562245827164054593870173623965865112971386262657754061008509490167958194799289221460925029108488374065985603198407539128002006943267010067770063355935878346702307334901656453778967304372118965147670968668021174420221786112648988956006180243084742465017586011260881296761490791129787107766872580282158262725808760507714735128375681262001527945662273190668950690202364750468486955662323600248122076741597656082737962821316810211992083209791766205077630017957629840575344013377676617861332274821789257413713472760976118147419600565867836275986914477634700391212995677168633707292776429338239240191017393929265007678552887706005991552888107363123557718007341349019602163878663590731009237511855309143862631224447170449565657328755050448485617225193019455648036261568387555662099984463005750195999006038866856203680634165050243251953485107967030191744804584656432213466307614931567146345808644539006588728799035819547745839938918260219696784010467573502685402571811798171631385906253590728277994034860795297429484933742218292098553640672469143796080047650948984631668793418522531005253676990417878238612557264660679481878161191519628181385013990598034159653809796695679821958816094772256605846873154033903586274254114808755064389223477584800708324204944810618249932453624436675265341004047411323473373430285228954787319869585985764824042101711086546384065114792394669734325403911409260019897996150831835855175235530550046574393349061213615666674471477727610921611685935136937596871604791422440191602946118026958323808769439437232529172463521159171753040157583730645381590550354878208591094165816907948370193570618710371702353063300036230201765212283477139770389628883574165013443567179234921096163204350946892399803513004271156035834774617745136670754427394539035324377450532581988331155233130464094895712687527275160093517161575057615654931443426061677399803458812975539077043758089298046036547812757564481211263523182956542556256306838558322258318994642469606428491677139596150288661798380654610918177701450626458902004402242320003689845213144483162687816906427143006322660508253026415937823008109140960357634548561395064001242971887817661910794046493772829802313969514710351525916823779468824463083349631840462991172273557478709923791609383795991696514306085255358380234862269726350203117893637866324502820520156963998431200085714039543785763818192592691347659640036677641261064257454862671450816988897577634689861648909309475681730517163228316034049202714127150176670577349645605616302250610787877640039595058402347573307242130537350714830281610542106347160287728069050243948125981574874765808507725758570526591303387431144461876347706414186477713461058008068228632067241450221301621771774344765223106343838059636366786077030036013949174659309038036607094052478260884469817672661314613606799180656803292474221957710772967823174494045979320297190802149175588111040617713064500455073909459842780201280359881770490470753811063297159834498981852166143218783683192730026449272917556768025888184734106056156460183772501006087804462745498663810045965798054683835329075997757322121921405414246721741406382994850584203567283711695495948858585107781261733725512053196039061919500970642785264682248623062158304008174920110651446078132536108100857701298615679383875929141697168101049591263824421458781065461319794937568599659808464473577904089214525461461485686813139774075353028941632936133849429561106806788504470889213238349866615620327933436513293531311992025633936256729139241234166985703981626319567608125396733178302951515758948540277196743069985563374707814805875285010424389154643064266350094895093500649832978117439678969219712706729861642373534676326611238198747295145250193109299096948571422362213495703914708185542537237933861329891121437555263390343377608094208096642588142872833858071662696011495175768168173117947106755927588271680232875610912099189972942353825020169239507431842452933895594638512087983843881794328582430349810873467313397198736317160772066363927141068110327875090647513605199287213075857551230821632736080057336886943725974440998132987947638571634171399417632835683290583069245783358874146131995058290197888910110095378146755127228957867220666396618890785966927497029144043897057514510260404722239054955838557947439816552116673589231770745158723284250484622878753080212811314198026128886563512497467184592771765577214421656825538470864100131382369871035048315873137462914675446236963049183875485290612963791527141735630592553027787976971976950522199787216491092163675406536778426111580037683187623916079970174539517700292198264155169117189277998146645339338925837637998803596762034666260646301272583900898423438430202083934232175900175340810855747491873761769626116708353244140410577603120677382067964415569012876526018499900322865923223679619447091644935383055192658373873005099301860964753783809668616096024182129892927565255925396784589923120909990256473672759715092965483192128972171390225296933815199844386263937144877202062944695843233653441225543773794367070039385101243496501750777134528935402210126431918962304896967391731535380289514513111047800729239003363569050444613110101343472404400748525661226472148459889479362482226188804992658857728180253479378566838115786375103514474776746792383238270368732279870718790736355284657024293321634225261039441178429839051564075614904775253746511774186397425939136511385494863882719713007601146601003150543006306588957457394229894427702756845056350724012351876166999556858034228600325740701544919299685661217600784901709629392159468272874033886187812166441825440898412816470869914723190272134753603415330246007502251352020100915620481413406302445267456719608633637682453955603952356293628347792257706104896405933892009440560672036311992696377115923756282466865608812170912422039079253256169034582805544777753372216155302604258029118114263026214694241587223531506883171980060446324431994006300018530886485004474272197472631208607573137310329505617928952664207333848974474477084568798815841420228093527259038528172006154110437996433875680023105734616660382081055204886030330037547682289983244420783675928417001963406067124196887308402195650531545535683732231812988925248103345541487343480279161506347420490714825696878930323319358793514326568794905342107836090226797955393685223419458223810490128358344443289539611051344763785392868960820635126484557428635220563220758952566660352204819731169734051391222130338280297611108200655684150847521190066862980745849977121065530186723203283844505412836057828122497194843111275279588107968248814794952800151019309518375948222995799382012571627522865106234370583776323396056230819437033134320191334069601511906009513881273818954576323259041320297418624046525435228051027744901311507130684975439901743357840410934389583874108686968593349221579249452480001448451169370760678096758192009693209887958238190512308073971439411463099667590614581502963635502211055478735187633895500713016220748456290741015037784481728979531065944878705835710546075992359143712141618896699232848870836781863085680504227139399475020727603346472166197976640593827495617350876522007036717266025418636299394771418316739865583598667887033694505087083718524801659706091443834511618341823158680024022128984488719161680625004122433161548921126576205848867033186978814059493324175260425527728888452737353970045051730837007415682402024972440791801555382058132146102350895642831434533689873672094540995268312860882422922621539946773069422054378979377779258819736593737162575513796870144238011894658992839618428200430834928245414338806974840850462146936045137819955492483956773789718763077321768636376338090169081693467382531186995875322455128199843998778785986908701286667406383206191544406991289078024900618168270591048727569144829862596440038887167221426186223313176468102888386805030268205017019839143918044707246465426478561394527299046904033765048514621773398251404532167811113848421650815134101826169837419280357489504046731010829000305989080547999774281273030805357421855902994915564898312039985235442589184940105755747514244181053318253966864954403220521312919268292193952114016997846773208789112227890343261974741598746103851345485231766401790710030792636038218579032465959452036971713455271378601969154398421565090509244425775829525145356045908148787814748356113717618171434990011842589351796607954275863997595983203562386798904797760143562010352287857651665334915889013937868966071089715610684510932981317699061713452915588591578474061706963279262832378858059803569375118257633745361702621381916543203785173941923865778234923175724020275477931921326706485986422969715333457329175990850830914026455290043583078951119083014278939877899325505665043148838448291301380510031089041425195568958268194075158930029170104024343211308319064827971554858582967452351148707809400908027312349746882526563542895742589564931130202642654548434580234187365099017199340005781762716143441268955737492956253577589217186666559997175169410516102581382719412728496567063955919108509863414337683939181685101227600311970909183344579082466342762748783317231950623022906153166785660203482844556316976770280316280797192304882933825421431848303029018572938385700430917168795044075454589552724011293808755128512602067483257220302473232869851320920334918425581829517533524093507727391511891896601078090606324528838158688913876451445121474204394560716941318102643759263781200489475597807563860776034462785186761503700942976263133126553127076912905217009827569430613104452872145778387654422410571674513366725740933515946102534384719185054647156380787300315008217542248229471432682016104219918704035113612787243980959811878063250303111737944648183289554079537159843129831689862933107874726708079316910556930212879583107411450902144964819034463118022902094604476031842982558298654320951519211821025345738194194749972830427505847965636682696351376279516892605091945527895622667953893233545845616104998146984650640040754002777009981021340227702158206116501459137962940691908176997039763597473277428825262930483565757600775670948377014389616220385702063224252232427331660356346666176111262386090179407012299648844928838894632511963829492329982092436371660228032388029515293343938837155073650418243444283199190773478283171459203566439260043139592549332450946895618637248693153690248826196385857223023955968440035819289086377720946709414191349458031058234962579454502474769816667950083621149951869068244206996108090979312478182796266190497709648256492587681436344171826243568702277953390504512494792612565429797064313764175613147581853232322442038748445808718405017441556677706749617925148684620723314314781413103188892607366043501466778363628903183499770380795795819830600450611538715957027929325721416899539439092424681757684971926032479850496531150997026672427736691638458803569945775833689195523386342734461076204644858918782627046022227975921840993051384099529227535120998869773151670645683111681608288150278828066764111056708409475376326112512220315169201627464313305126069562702972087537247184537198616999882254696107678793242036628942088180933651573837627931357979487953643088286487276127833538856711482031076897188744524046201693210159678406653414507649773587901979485353387096247667218720928138735284475591163915692284943712657475447230853334786196372514145143316800365089846861925396337009061490911880529550803637461288720209898646326518890577765353730591068113540358061095853391734751884844426101141388461842976878243849062323988947128349191604118787174877998338122018629497989555825660810488510049298050399357867000784851607073454746537479207974099114226616216741893130303825825296424336317934210603482566197477429573274720693072483636193178724289763522742626857680922619580677555453137007492442950984375827452687472139778470639094733093773457208439425736156852857149623085916632828059191904908688384431193237192950056707330583456063538392351054527994227809878766465558232945143754147056221603266202883129281556300101204988415713615533370794129182655055795495364124888074456586368463676348717024410429537910739857062372480047373907867685316242963398773707189546114116509605814810281582542780729276606275913498236285681136531554770456794746678799931679939100994740489085550129772704743992153061588032720750542290543949155378587818937279967418194223356783944975018670743735539967169064259143534863138871837224367884188868365109889275144423041818749466687523062949023956827470735037871286472277723444216765074903655234818327283936878988229709000303466057341537196201536277431271912051398180580397569036701620344428511429084727234596083659704608192747085469265465592359394448129395810357080168187611324851850235350446700111680130278155048467774910248171232275469136337637380432441613641671750480921005803120784296892298717362178261414080077051271939155878670985923420836381355567403684755404566123874587289102978653796679863144618773208072235286899998656599427739903976145895331206586432733097535442520524516646330530620110750171412490634557561122722245142553774575145366399995511315916506167483261250682876562553997731142632097172521630608712108280572594707274619948527562780224096961955366525406241413549411356805391416200519486538705812361064081913679415807775060259840422715603279031472790934461726683693019223816363978183170678096585105500511179059871397409572479201001974395056556510140921943965995084367922885996726926382596322231202566072652286135822506223357681597507356575243583827396445210549128843622748815891901085778785051999436193611588959501082674809838574371762310506917104699698626789428663926569094737029044483117681351428368193551748180681814608682820698831888209711983266554379243839478353287925743553969709025093473816918835422996425224994325914907313438976764263422196020504922119835226242430382445954310849820274778388071851102275929055459613823153780148095829299155269038887083971321019663599105970058145213802658844468164783141626427296379954352488895232386586864071917282631831364479116049238308516505273027005354011141664145820900616174099966031662915914004370199621374370935219067098550177257528190473646773514823669859023386563067227863158540578212264074730976403843747147955172633068383504874096405035403850541823201946922392355055707029971400204838251778386240353827961900640231646498158171363778344197157728591225264403506816006122585787362031457302249134597141658663819403366491787806292284642108588036461742518126035615617309436506489159181149410831001888384673047979153676431716574612387632422910512795020911756318047267514054264489717086521778202721864395650607727676106282142673975873423065173724440794231089179188460546802087585561813895585136105437193328108840441717889616888272211408820937200422272739643612628311101534489017128315238154444498576845057122939633274267797687336172109977716510505467872299671190744879121794121235402016730830640686653511241914861120349886038045651475957580635539809763032026492351316086128595787478357486145970937958596286462288494200578744302317082351722743540678762593848303144766112602501217343951324726255701961519309718343517137485143341221371496229620340288211059180324097746780257828006298198385447516585730868730115699805730354392362004497996459840817821543727092836029034382662278440958862103980336504864994443803255968684123768905750989167470782276176425372143896895517506912483930752617425873160908856938814652989210231174578062995384204940842784284615810814231336678370460995785038678504598807256319890247114976122866326414079608325559962869064105024647632733500133955719773216481986599733348302233691454388677713768120417651416275139797151780923499447183380357614154114135500050001174011685149750129021241275938547632382647158384089542140205472395815640632184125737202907050947680345785167357559917566265204899101130331626612416504943332309047283866258336256744971153085085138274540988165827644085167158026046036081083757527008689334093209592296149920813233676820526212901979938840517687432533478831508331624651018331996669054347782285612471119638968832021988971927510491561851625345999546296111292634238663727619331348910132450150074300011014575506638184327924028738770892279566136990822615640559405996396282058878663098335763724292947523478161911374405563386952008098375209472222671272494486732811985928452835847125012969094369144602185109093440001033688990648831209227828878883867696017056766234396645376594630256652961234618023860043889470994653757753301988116618700184965095202406411619290877769403885957175592117885138467896493713973251447366683591974963829061265124859884040087729315451085093502106761395036029142564052987535545019499380504544481440537932762270958581804490718270204207361714285131961709875483764707141968770206002461868651598680586775551298739128500991398218661618467431745852115714134062456953271179782901551848811418865301605100098001253903022885287628875911969052912638407277299334177550073084088792241422443421384085487756500499033291741800955040730293294096736906765855378513307659410395964635450626384745837168230880210004230507426182285108976900001914782151455965044719165301084818908205369607803777321206598058841036765173057086174931962296889218818263410144819245134139222774679226297695496745750467038859666539841606086544280643766237888966954722437935765362670997656932564684922626168001499454991079665020302315161340695017989571810292673549615644834291275846308763132741507650903723804797403340025387982235999848964104215551785585086889824226511144211794175890223237011262544119925008126116112737902182526027789588071899734457123093759621635042795954256069275397285853640514439623749331787116025872209069129884640636013652559184058336066533688519268731688908234711115459133760347712783012969927269284056926352879397848748803208033799245762453528900590149184725280180727119652062528506634427442093783517199804125766793861205421818472255497517640795004783058584679289696307105727925235510545511860440619545421296511065219180005494323559977612685482149429656504523176807578863187020765950139443483730040977120217026543891442212871848406547792407714870027732802669539910643402376484023137932428035924630772135759907351469547548765316280467517222379695136404972912454189552428624240352102645134869013292136500368773356205356925146087612149903848971545620546270561262925182741756213995939580790506891858372029460693040306630809423412901357489600839374302336257449895096172947269635400001292344611807698244231300914623639003353208131545261588511349433380101759135931221142810075747278569733500780089080069159424943828189095863984121860290758423842008489871502087599524899894618003974333801696650468248859796489003867641565792407422759352359333441433862438383921480136604099695616048496027636226341850155916077246656717380643293940994412247867778272995840572371663839132376708602047879394700396136495789480303251265725697215094768315026479531943624011379161964115514251271864666622502015410114517965097384840230892716844260281843282400667630216324979136405431507742860265348330733862324321391982421944808203572559658818488122227993321223327279845323174268696572024951203277653165076962566874082610929038496691768157513677694364358945818097732597467645310729134715168055977771358117259799437612070295786633357816162491070660299382353627198250209480144958604616364740618324351851951928510045275733798980671769695988838316267630054454115572725990692535348406962616504120632380601825299038412980041246658039113946153852971210841713470198630342657751829258839828944236973359723573503474453739106190929607107136895749054983938612502807357565731077641644941693820530381492533195129886976610673026883080054964911454385881264374729114992543317784192560044567594685749412232603534649739236732705016658237890209452531450330377400950440057256371347179995504473771625954635234080603851091884200784532167565278295671847971670747814439579776818903139954366940530793805186579376474011759958865693596218131090882768949766196899042133298944552935715573282282191168522791648219840662311884156565426954532498127943524485769403170535718071209517940242157449597521276542059285853498298430551675966559436649064279277326437525459574768455322763580007314767962873755205165206350125462061789650601975747979004299791298213429177607507123382535674341640698217724319496933987492435106142646322453978670477712184923026973259732274899533898254115165827716024109042011821287984367710652511014032225936280619038254871605402681246642961405147971303977770092699728851232409337642492508759810311899227177759240470220684648820502888183674037858124013509230675370627660343090026931269003842837042223066178437765282216619777030730525550942760774795999596444077589169333596395015300823765475808617618227397495002948340372196103170684317589958013570269723407535639875415052681611020781269996418632535243676281164063623657245806132431600339345395984914932029697590531442158977475008408322499873200519025402350678770675364611395360901533969042865930680844915627173198408929391871839918622712021503493811408672826912572926549168878380512805325385606517451494411550173882166204655987940776094115752735391455294318502657155719409473635298367099949432351897792292433736743451959495650226302455025425384737236017409471957958815674670338471768413845686740133094951791884905426939063764698602327410537142036083223107935578534510333098344576616219530686477495344390627430130438152052382947055719232301055517142957642886536045814061295796495401651075507579109053526799684030740214817642524493719472652247738489035914427053108480042594407493206794013081860966272956602813635993609201958376333623383678943022373506284748420274644789211312435540988497117258178758288662498830620252833486269611348615542498181439830816360080565756018543042125366946798911003772499975488511508281704439556947246899760756263568152306258819931183857539115727769742140955510341047617201799841127691913399116178797748722100125115938306419860899616490095066100388314530449008362207830603345818430185079538194290280255840409518678697581688127221790724246736833325578644555151217377914865348446773230601404717807138254258475778345496958903213208125306514085152685156692386435022061122615858652736391340312102122618274306252742716580365644940164471920906609895031908286532570686408409414717337410687080893619227745566255571413699552726374884406813211165781191166658282376411695061205334733012448252157031516612843597988073340522922900336134643050696831340649369391675875279868801690659235592256688349351560997428120601082146889083672037509641530008488797898460362510456998801848894611511967243953033498062532864731918235907314130026330756412556086947133066137618608904172868712647410403151372617387293304003840159848297121932101237566072810499754892054897248478122518606117180634330756546747751171474001711878039599273117554230026350415573190539606222550242489045214192356386026595554766523058590972089327733376553753164535861103939051149650212972558990766101129260759674830711794604661582760428845626031911994214712874855268087008015341580942236908876996205595181476952663046772537205513489651246181992782704541261450242086513326240751194803943205030363082841968403006620190805593868306497051347868170272267429621814702526293680880509448528551872778917041556051885774149249445327064644131555491993525518916382154524585915998589390477735435674519936370602731172991997339321481108224463381634701974205367800008906187226677248033034175762396019115413275125759165981383310403027185423305572064935118708386843070507465051602650571973473370187666155442088340833852406877740839045538765348364133859511519823796948683077409056030908888547050989592845331126077261577018267456089313517493881554594236103941134484323894465742188830316517458319959495182025913185094994828667216637915869333833523587506895573169069891368211079475512841785715469290698794350329402844460802380312884715547004364907784969371048697523743421108024505136289045335048299829481145770812758079122401852054994332807125592774038086655687478410205208806497122674115817838543779523050368289047655802111441300561510310908173013906825846981094566136243818229023235003259287567703952145756091268208939964318574212697535534153322469357492474735163937236723408623689732658113900042281164926154536567965351967673232618849555532327256926456238974045991931108885118495083350232645584311902181418834088503975929459352590303549508112066761696808133842229572984446122181932254768264314754489648802168736425842761636700829138515859894359831186816997782739799387836065173505181888287910017930461678853530916627836708887078084525346554138362911281170897436210274220336305167625758731189911249211447860470022605299229012691175253373247259880973881581121400073374769637069599294093553686684030877076235999168091166063364567142745150578440936483344193593749726490026476586035725237320106746790779523025874345913937762631349206148760707212307793732138282557653071604408051036653875868525302268309583719456139585949279713233622766373725083477171304759340441347775159081781981085711749962450289460051756843624054214193963448128236812969461207495116040112627839510822657031934871891189215917825418398318707856391684199350105397133645563276087100137916041663693455345621962396991147534012271987386151534831299017002907627544419106098971534507419770718161054259225337656515266415733610484159875624089106852555706056637450646222370587579095646401019604884265578859528756660861437040095288624518453994671627008000950756187736314131338153126433191728720013112264952530749076460398101520058490722246835806133966170353242734559873459939458621644407481082782003622727223995590064293954917480933847968951087962547706031044860530115787734199558109808619417473408543241509839864882911207488465771950294796435030154850678344035524998643434767645155409078692930793056891909381635381356171987789178772033547744529322239474463683048907002579351489721716045072495602184507402706321791297989139322765355642892501490858199007949726859564370808518055784232788338969707036601247632208561291270124371841087273654384460532678615653995314357772104826203367820363631961275685879278441817279355036258452873445375380895170590073050033395095389472422634471948556124491842019615055888122741694213618923481834518540049540451806854611458812750658428220371894200976823062581839417368434984027469909497079431935122696864687892746954505564944382495817424151538572271480223678286260884327112828801439544396010585243596523986541964827006808296115638376739899317088656014083061960743038640222354700435782272983512108871407412022946865100759109034203740727818593148986572803916118850574267652198574099654961175308429573176426083572770497968252676858658952152960167537821042620730524055239903209790413356476219576313758275797836998177167548503218134178310017793352983048263788582020121405346413136139084690318329644549749857914296319710580857943009631322944845245468793067970734271066744310212798834391292067976783776452109155047257816801150336198050586851794662446907083281440396054171400422442032123683701754549333201961336141922829964314862949662998786524506456360596943829252251482522253737841626427533661611856111263375647390103895449447949359772168791044524883018109585904576515567454339892110281425824131030551778284372775527923856704909660099718930640114442089689990536966401598926116304220490682859996718642817352457812568497920547284603138094422297699150930366245591641310679428203151727926960785449293730239621749361521797771625392249156007037609211091431413798241917224137445983664870360473862500038884734149487807224101038211923220608093088492918230303445804128729000810679840855817049321705233824947492316986811859750677081725950053139595526784986641890082952130818408496219479750154585829057404807207729165567787384219079048671718891537927422230395878130683826914901450498770567355559510593897407114180732928646978466347550535346138862334183320119182032642105991652307575045872821767992538408790109065145811053963426206864352885735030739459451911079057986837469544366415029018534921974476675660896707963333329840218256031777224937130848107009671256997870053534022534058980350127512123822812389972439172096830907126460094198885261643950672285448126810894925227668824597733146966201728773055662442265259619239137248974182009298105947221782309762690130437476466629869741325204850444853188203121484477473752209258815023707564112243918008792076975753342503723945362402078906932687607103807001454511385395686086557390612420772890415577533851860520641076052631505603406491362657328058282599172964579226286678113280498455536672180389697180047403394481362547742293179163596630849425998906005634403279123023026719162802658515239560344416193320841495926101824912913270570575439768465334306613289573297571144906320052713329247568332732246569925022287364760570771896008437108049584732221939584103191344435652092785657418433480551608736837012584756458198248446037327987762524049069123246661615222749816177387517767271961609475780641694266095604795426844478574340679714600589343926918269804967994981995547906568901714976831311799966539893549373992192365048665732344640714415189442425822717354135439825909733138340442142249199397650905322034124105117090444887614345410901854816359796280618434262224910271454280646476982507437375304837045281630122448697504734891598322923597432807571222783477997642363833695615697982658178122187274724629063537625777190553817022643729497810367171348565585719711304318227282258125618051984497049303923495805948505362550018286216023423046088084462739229616148614396437919112013438899679549106498049527594115324593707279809355733861316140488550153411130077976138921119506504311077340369366919527601200350270423919317525791625233569001292268882657230480588250396442078173020926149428541140935054021453548012436869623899762031552981959670742592530514813389887500280749214107032883049055465070462905107310421714220895993403708686454714426368191673993765819992937610345381365806285241517049386000307845301015849799741755143974107827333596300955987873735910995357421037018489617618101345027232813806206311313413208972028194576469076148900774326086370919031393280654300936189666164293651248421696180177426994849903635021015362631372466474322526123117685644305757220943941684922179330504076066569533761138912101460643724951546931687903696219030783404746080734131181803269144439451065453322724642156643758972546496766620063046739255553570679039713972991643086994905376542841281114115525905869033636811493589095852265929801257092913010930791939939231750722092017935327079661762361239283836464029818977227996522809152176355723822853953157153159888230776105638241473846266645696810880477726591161738741834827920180433772711305266090428454773103015601870696571523629884851153143538085002527658621305090027047000437208780491570056621090068735736477542329486136595958544913798383645499808220329835343665377522654828758874240059362046357971862158051471068999552276192696193903086334312632092124661190941678630758069262660645555788034390207883225267492729822357736270121015744811157013491534734970541424462071929487040701378151442519476152150294873407197052192630028462817730896451547775713610463424246556934055458759818092470484692238068781822361764582272791085561820016614599518826100975299563896910163581640399907914437242897109802176999638340798711324115350108644556149691999521843066382011815339294936556021753931729061957451365313736822635067998706177477326382652620598331630221541842274541114831625579384043856985186476545234586855252971697812432596586661099645350810477163654552208692440553794046916562265047653858353401397708270929700644969380134663491412987856871683703552254445404938805936238695484563570474083732680289002441551967519924213362477294886404061223039741104657255508235750459566377529232298234990534396837016217892081653445842400791205604763762840319296990600940655614692319733077053442265811220666414900627940946105456188032505583838228465266486957802597411470716765985910123549827305327076320484765585217668918256719024541953751008458789494554273142131052391290346916457565418991834595929161964146512618957422452918286566235770068458109004398850983642304204292700857939628173325259262841361086285857696051987510351705915830858352093024668324775487136354831199741250942040024238590566640439539600317841614862695276759410662939654721874797162484691151140975842384063084434599714685523012952864280959943331284559802077704737163507800684103735433669237831272647932741581426014695308341539981742216396853979279654423463629402456313011584121129215780684969055235934520259647062336569717784019964438124452428700963646378005274863768012502046509068544089799213823884328693271660690812430664149462588408512450949875925096983188122076909545165815107836196865935972107474431594550655247604380108274705276271007838823933226933972754654887066308102697759747816866417619020449148819509585110417821006303865231975987171448423133826810014437984277257132909937864749146212485869366262396383525419150667353632879404579026823097187834810616403514596932045600639758666796666050145679130229094227974881531483354938796873999510900186242940038236812300941393064533208849173772812935964239773491790425505048577719124673929138341945002195815855005175315145677725901082072484414790716049559447546709569391789210780998551252673426207340243262696345523972157248625225751841964450717895752800149963115259290021321163721242471424894797442609316972830462410623685129993748146027554304560563949812653348618268521124890686687569736708374140252065910126137227263352765135444326193859580465226558184083841937578744312707551631873147519976189715801854250472901466233817302212801953727669313356589037589578874394732102251320956979664901518367694904672210588757241303984000569319175965041271694308004308374615127136939529747203742850189655104434617622427687568938431572002363380748582753306369799952700095994635429934837627295175044750092373996467397585278088565035802248044537020714938298396284359548727910844176023307194988134799859775699247564058630177118246813642791162734145859808979929976698042885725724653513022260256574458099260125168378426413581378051655918385239285136134841906402019735586793887318572609184363031236560330139488460010306797472887358388306665074596840561129207320239785905560414403735584362494282578013746601227745037557589679696842765455675479406313948044697782929489401650724207908662475944845069242950914790243558772742640024287649244352841264936603943609896522979096552059928471667798571481395121504727984026314661737631770376919106735144859913575142953347718517484980822279719604650924059465248488112032219773958847927535331592708511994120173235207252741009207190534801335567228550890129357310265433576333975469734878529948242350194416234400399263656299327652043516911136446931337700871195969428768065772101487335492889475956916190817094757389058816749943114691395426200518300332742667534305405850209900705599204917235876754824379344039841394832781213490882002198560205962760378139562216898446848670761217844847540297842780882113322004264916558938272279470091201322631988009540448583811176487596472921880964956994254590520321547988045724278807972368118196931154437765649242845162858847754169533972527692182780594594055822510212417299276977526697175552241000369194800196820489620180372390177180539485873187738673566752658195467563288715201644048230199458937404225773595390635101387192404885879366699686012180113627132192538356737114802018092917453526321797146598329107358171078279142057039360026351905289320984465816739797303883973807629605500070055664712012404605804201541394750365055934844241267572012828240260486817982143219294338208659429814885572138282397427612314932150224552912124070204331713644682112692036021433407605974539632438224008504820294846331694036538568918571257708821985456573357647500841303114079166043055265447053974517147420185515439717287329236332788820244093973563899151918169117915823188576769547382062238204743672401119514067572686761275965109900228804135423620124547070359340883324706293062859715594065346631215198203998553862009028625124627247720948649325774019485187394516033093176898463360561465794243547208800572221574951885084000877500231318653016429277793696756756972664986962208954418480844459318690292506318496854538490801688583319154496438438010139205195075208559738666999102894162690609436824115366461229825931113335741390110034626830393578457348714277812785057014784805113351524084419176919626550507353355503688613865528261531019902274962017910306981289804316755682165929473128278239836465159769814204161740315031845243509808335528049187673988932374050615861600950947311857792025131550577867619832404265646932446876317262119123370918114676365629819559819776298593493940433486692026507157347718982938659322810912329440780430714393235879265305808887824480711891199798293054444822214488221283268810224171862079017328123492579056067059998358106850879271203068069589849584331788889819701658089586306091954236795086434105763787794533453647715861191570605707019254295691428603082611302751500734580583797351883596770515081780750386872228649941034501629378088350899775669352617054739266584815352061592281919816962752962771159594516194037756294541975705045501109042840754059747656835052742458157119293931654265667342909689692352331222493618002641350446783250018219601874271278337987355618822242463108038051742743720086183448444610580975612074695138186522638367221051891250681654389806708581555141991914061443767544402630038739669881202231806316135728731863606159220349845345674021809098801091010405870316485409611179578737739914964203899640283932536212508711693136191826417224231576612236842506810067551213392007457128570441217345885091791890794051767789996053081362099838701476374105389792760457815700132992706282790120235005696941776396123466944452441686762168709786789186709120133670248488588131322012627508143621771247529084215734965541058834604721242259601468558923481075088896634664094487674197196525805478032689751131182102043677622718984921764100997572057990269772251019105755989748185262597552847349819226116275634218842287368183258137284131294777128426359923279177185002684973397239254311707028353922522067035285795192287278588070218355969456645396158362855409722922648521803973608407483304521505549636346596552772529826509956463447320901059646939323541358850205202670701352730650823701133647396380167422948915724400082960951086685801922603413025788748711868447009403889437353205458474952474845875830520096953613157666388017082913367432255031055010604341630315277492923766097255859411322084673542809689732303475914317665563352359988654000643013824148432797016863503303950717002172805527338205860511074577906130912697101016008714137423408921209841788267537738903974342197880654359755418620104455642147619046754978770802522568594067296135980543261530270574965908377678348282700287568656238325181339563868781719725044559799252595519927102828348474129387883378361282720667129180765177570318708426135940236294285824802809028588036318060808178245892937236789372071494921036251696776133929051069314570104981768086270872168143724876932604464800121594565388494224742606864881040482930623207060204436213043261286334433684670000497707092850059157257083683061680998083846419845655667088859171152195046072643924463318832553377465484229281592105014265310323007038075387693888241734353664726986057206380327032685262559611184167689134144429748555711585812564673427530451707219921003597501085162969031593416683141262307288614121693876800801322177094546831739900021633094255497974045716851690701583608859428449981623407293463156082245288177429313719350745613915005029064896911119981621387838744550526862214052765013271019155273457747515035290005456591948859473790418924716618359954410652401427620839514479037681916472309759041449999307164799533912488752734821856042796103860242265653214213542209796488536526475581523745884536091398789500850470506613182484105004193037061749135725715631844943998095897635735646286802097495943478460261591726368236805421413850300310598503237485525400504831006004210419695098069486896343233758469927107431598838050212127856381422429932939725225620365161045783099733283891023126325656660295228156054629906913333001267256986889054174756805545792798358528256232283971888738519965486954907725772467658999876483446240659791723586707285800830707243635259198998071120295138910095667158730312767171523732954005856068576099127915569030147073487966311184517119716852206680387209274988861113375032396997864982036589893358242275346058095137009682496678608516087352706650889253624540370511252338461771960914328101231884713770015301559212066736661507410716440099359303088334725773729632923385512195615225660789727930204902698380937233074310830907414356697017959859046036512899294475495596780005799125926336743871735771085938542097190513791324107904134109011235308146913031479892672588473057362165446701028393687836812573002294636926406555496659968384418287785233542035723448612257353795854844882523978163958946520898465077292974524416504534112264865477128150227666722943234713636871979551320784388794642780640651668396042173199014581311382654334773990795386734135177561765094509341890426399714883081502572518550096000328903505512585598354457688678144992925339777606650965080780047216642987821070177553470159667000837322081865029925033230884795250416421877129100058264902534172547187735368124584972326678994729921268696265914552838950296202992786935899927586427052283345987513260042262671995063954280748408450162413522441901376187880712090937087091446725918174480965836089361400184390981770473303632300376091643243490396142377279501333997582433315798965959514810730553672387707185229133560924396987518568437430031033959933308801501870444481093585802585707276666095053003808364901209750381026856474250025906884802704158451000860059422381168952020695415256707996502865238486424946317855738377159848408626662719657614678966989620588453802849870686239695611339074582514697807784598206372594263079263835141209511583228033408308533366824907472064807483705948355538666422297652017816759995018617887332848286445065526847122610893118021726923916011156303331587168957199184193811180932079736884962500422915287835971822691856942372065068841127375398236487327561670007430837094674959174894008216092284955611389637932131646545206345816452731577621126829526813955836016128824534167746738618930868981275900560807585862260707244756076111818330682782375060840628573100129220697466615718401531052402004746620037597990958493164907106676361295146393952809151768217198493418089771039685218574134775861770002154006318958556177733899100210747082459736184357623632517044983448656767873925087245435355655480865785371389332065695451677766326200667748137231384361799474282258793472426899215647424798569111875188665913303082467926143584669939949911805817358228403363257619873867254266608327208096284790647137534990441226728285130153585142782544928761865397584589081235341395974695654304835763710505543258560945805158321510264845274139125631516130340980531704878224792229571733418774738368672281835510009786191875540300799106010406531250468734015850104958281147097930071434267278107858807603141588914463615567066585337200363009385496897077717467780552638227280153793862693660196165352941624646187873988333167365554069751222889482534662999563571763869594293764691766343397778338164111468488855364539511481760938421207401097969408032406995454527799204122014408329033531707092184115833949385861952374316914531803121564506657756681512634588609021698017264134558357695806738993896009454074372418763291546763643502481000130414151852958392900616022047316272447136740749740866461234406884195006075500876099884253252898341422441086672313889189598507078628372440122729579258868417119224738332331212772045368822441713284685548329549483171836356764670451651732717339291108465160597667976359948590185056919688562736221995575449157500107338716731684470809219075378625279690221030536734990653268192339732594589118080557930659243607134662187853710675526211095636670587860820790407643945773345630223126718319485942738735265516439920800253116449936445553914841182892425738888290310251477100842809137511897413535285816864533287348812793868814262597845823225376259396465804899100146541454827413598603560452118106398570800155209740161157028361596242849345130579661019869697618657999732043161655826904730520267656803073342638220009440926062733697025942739931196521658021715548227607263636400978186637154236996788551315579549517174681802307907240395267129845652640452294725561064541283498402725072976863884462203456987580384481129291844333881892934411744920835754485564521736472823832787925077111851422074875059656268798960651965075131731839894196859325407397069146678683825124032655162698497690093319863890489708408204083894160877147425036680506273248482607535522872639765475231121687322676585950880125676031048777783645066319553490797212452509989419728984973552944493207165286290215305573990378496623051046143905436707761353533632441609057427257253089756511360249939456948458368872267903928864252068281584290333728721824227074910748698663907778300927030232156323298070194417445197137054893630884989313218859199723253170700003902524134645726964678469675023846129397213884015691063026604174423178806484068359562278240023403209593762443514445052246565841226398295073708112356580915708194669650775471079804445446135123146454253439566840769595348506370492975826912419647208858647010171475984129477391680640523838646006476801896246690068330345092356388599141892248453538748510070409639246351591361894577185671775427643267924940210936351687080073844405905594868690650974266040468911036964051353296303195960585945363756414026106010694074174758460869984651172828524350792650000411663024868795857636624715515071694590801532999452477860335333944636735729552554069069963415542663229173156177612423359099719373414766535028301014137340523322178961764030302277913470947254855220403053748611476139306965963934973596121022442412555567549272752683850835124514393596020716347245627496221863009810825048212090495457991988999288665914865820563613401035129295274652116859902484325694393907621523992330666972721805454164062034861019268369216085153768589772316938100055500439971478068661546766010327283770160170170237395168733855035448611926965706064166675766908742397928458629735332313433975371215565710796899549384044503433973373984275166236381244593002833490719935303741765831724355857527038977608490524203752087676667398272349923422121107421855544782448368212609937056756601132063267782837671488966825403315510142550934551642001076089345387604164621410122908130684132705363458354386269168610580467377548183958424394766295853802178656650673882295236121454507589899759063796537010554461024446660345706835451668960702943212241905305531128931707502220647428684144910365541902319025976378121075035405036827980246394692290995051935734277328400990612613888210565337406435264042377119685192633179349897686355147821476658901320296507580787276637208777175658453507230868865915360564199770281924759756691932103618606704542256161612150172152209117551370259950958600648207622703041555126498514990932136415886971459367799441564335503781047799612113218918624203216706288125653436250747354136448254137402635748809558894909225567381286545562211925348420412327839531870289100401523713055894187587172947341642708378813466844910010417091466098726893062731103712168942449411366486053363453346099959022013909551998152697802468119943815126536573038649958477317597985938618938567102325634416193948964603193228805199672908103624587740731913879035797346025552639549954703221662798397810585768909173423518231558736615494282994530526161995753928019398830454592250313824256260178823488131762159928082218871286942486340772469803870073904841660318099655315065249990808964365623398957690970136186389320329071567137656711189691412776524343073668835918675838513651262784604989205994317790046542893739816415641071332261226088844754657514814503995753102435662455330444848953189869267501525750994947359377688315887330449652698438734484817003101230897959283798288754563605700072060917581367226628432998762921692856169401532329219454453551085386655894563290976849440438211997504541719141343368070256571098457860160834703347729598804641540506729051550180740081117637406708307379909231443175733270214734995368689688248799167397050667906978323047192444635040112484807618638531293317568539313567381171651199917978461082174076529044137505021980486993602863473370401506863967215063475406129049733989549237256144298280166498996855889025802327828723773082773334306798043842604836901318540237116560262419455662183658774355224510573640583742888718731200289364652090379166539390978982302532383490419250809959168433074139598964199037073695108936739220095584024558811511287942878089339818345649404379232882363513600235957887585421189290710901251606075201856468046176366658415734272168702608286556266557450915858647853618685447521086746606460041280122564687070902621558802708190876811481634595257403114169934010601575853899017122743011391517314994808259840429176596889435433221999478635093568616234282740757512174287562486356837590081121488911579385403425910277562425114879242187675192235368617406478959708341757085011235119344975538436025958814611548773931200041264316846438764953714582325177638383817583478589621509249839852882324928148469166772935074294696564141917494881830737421462338419967190773700897698278843874467954366314306948652724901350795350257460364178141224911720342579018667009096639166810470774875262314096635042108745440363418386060957546098330093585003171271396342834179999865332000607247906073267163794190125209989269508920647184588184921953854773412885094823931555264680323323632308982333426258021444807548596352640794947891943950231199461077782944011358602791546286926929113170857528515299648225956434571270602714614852836192330227529625619843079097942578661427216092501754334870646679100832704597388008527015455275878698384284770157383171799985487725262092228058598295583030153885498460933493833124706726103958503801194053118039063864391560143198239553829122674484503299082530713319191439954043385507324274281690324564647019700601158429672515369544214377275148914608677708468134121134158654696283523497825428364989323405096700232139472194252748097247628053030468242673088331150152254120132259700071255854821061495712700658117869706728868318925624518366043017098787804058100398310877635026759352718779152901584285608054546023161130355400451475135585555316483677359429998821166588497868495600848786626255384271783699083122048189226950279898348863623001908207271934530509213666517144568793275487686457993970629625802738995541642943609249472056359171065476911783983553053427428423878746822824802454126139359133182403462731454557219710098224994732545511140303023096369274711234196790386894025479704565019432831878079317094203328774253396327106372491084843868160921833703249721998734721566072810135009843264085396162825518724781389321556547292275450371055627064267511338633361447744755980723647562928252200596491446689004084306679747519468941108352397103828976205793215562308828215704074931162739660057720546264992475882753191387687220504404407795102792045488166071383508989386269577136039137853989170223811451438941195141195060872833734556875245129282992657686227289887281615346306161408256862941574299715622599976856374633961950744421514131014389337336129992945588069525070778873746279211031530201731399135717116906619471072459761102680621740426656721569192403563124382397997407053723363245165420858323040234727389378812540018193444815715767625713068668720235656492587406535919615798768867943305568400056600024820691267132477176578341425427104766885148801255743871932624528989367597878910790479794209996698402049721899285500212615654806411452022283440855026821948132080931251218208719449269438519829737945698221186553115396670208068127561383282006597871219266094326169588757813820230734118916629821989421117488844941838058383083637915553977037657928184908912659264488178203928378135180746730710373680839587061370784093729190318629923093282396716159224177229734551986731765016879438393801134411457909870490944100276613025510848547108267210900815006922599845172868190107749474466658120188542458348603332731421135542398209269240012157536827475317840796342497767697279699718460737758892818468143186580170598013466233967638464419159410667749715301734951717230323909315333312619250359598411317188148083749629585035756659091496221031624227386997046392756366508671986062768441661006389381220702482234509270251637429715419180276886765099383638830425069103639114057383223565429894847187806061908743146664265982143011707082697150025290917785810369854479442330682440202364898830985725727986178841726096085795418443657423256669088999318797824287567069880222209537255983544922495490151336698183821723354619227857614070703492374255296507060843617086022023900374566159655804923643615795435835935507815347548147751785501606818234095536803414475235410321735141542107358615327258230316415663492000137426878357231603153392441053821368434579085306640627247292456481319979807870222863170326779834200960223743859916589477353737663420547167293209970713501826662038692619264052826982963662982777800603018287817747279784957286403977378132361243432797872778607473050313933620848198673291024622793015331409528276998116905896139490163983179918517264848558664512258054973127977980473512501271132356764518404482101498851363479655702850723422621646105591948331035080369305445732067558198800299566627596813605654937097870778428496473215753135082955731258135248308613102102009296709060744745473066908771846242352357143806398832203455968862548862866458582694013157048768777030083215234271525480073591167881285837046094618112620746514241279586837824359111158073362603111455064265377177952879708630096435058478439787632526156944212960608709183950674185195184374102580466020571292723500221218374085461713089321948420370688744706823071567514475372419041525731795289740206354802880784748687610197766425672424235636166095733138907713382530841508864860359819912799820518031371456874636904312431328818318377913786509473030109156298181832713349007478255126858045436530506873367273242235004943755765415870359426896307568830734615712481646628346159457821017242045240607218430621074127983386503341496057952860169895044203160154263269460514469519404774808990119343821053761321164842182670378709689760694086304679612617775677611454643698075428611998094685926676197448958337758097866210462889874948829548902263361996941693243895587645249790655699542566528138995507914992151944603875761253135708592553848528537484469406251530277222694543021633948253191346000900918354195558581986425770167460066119444563540665210048219912072190507783739664585656767181201907201793216213438124780786192525403590581698619331103228253407129580322984036133019352082430035788515081995437373363563049392335876394150609892118782855292803846683312614406899948503684433734813031693454024276083794226485637685110832202085609766725240613508446856289203565847885195180755661878044038622283678992688214381486671414639813575282436259463666150499694934242069750005168412118716202876363117562669944357503710510638162594967164193497704820533586484076354976677426672854124133302070916611763501038140034290364695153848719200919660637236114093925370703181869383047079239381645762317308293620701049050199388949881492897919891452486463580251070428750313395230894845971457323018778263062339622941560082900866934667472632124844248268088296891710923968118770182230146173490961161616548056212408190771448144202688004677165152079518904919318694551133566221554936808880489810420096577180241048285699450453463395535388712124115442363078049499820794568011271840938514641493696696287632345662303860577897175024637551793930050592353764188350754564233815818232680919844973597165671617982123552212460354543716984847728990225973652469109425164668564379270414589877672581524284934635746071140602406005301423404165585333271794994510773530628687666640380042797233028563604018434253159598886126370166822203824737046301936372154810096726768887685324111218552648525671533804750913051127993991464094192471406125122596165070305872102261208345008284562092817278214495996973903389359102908833964114425319413331231424406145665063377887653472781672956528777995463302681325000777876018534761409324839073432690356437540664641851468723344047728041253811589009398465186232490138829583652943372191827099344141626353508737668945940101170636012880006458153735188312654561909245525180715216616171795210201679902867063987204662104089194301191548846678537544706806771979649167276031521944251574823954278818949604058100949260264708493196568347602863087359394688363155670287666021795286130706699676978258639367874849422326465182858334377682659172559363397920190907871782290473019767956410827183425586331256114946486030422141716068646569031030988725415515939209737887092806771843338320046782447501559547760899850177254697318534176018287234059461706331915768699195238883136498523587179078331429056201346255767855725868085395271374192887805098835988429038743866533808277178700455373452822647868846289782988664193950630389599894392133835932170760664331475033957954503430434632432785870091287369995693531183340406269224805435592701947042494065355300783424793440934182947773335388873155299301982005758337448940609658462517282938768306723326452128700553625365411412313439622627976477467319100096083606659794670060063596040025079197538363197854009405290792092481354181658219237230163567418813965676921747493014721670155277591941532131615425497313185805664456853961917523527859355834279104874494893286628908193123480570768175665909186194596638707380187691941760615166035239802186725136148397021663264810674806120009870223262949302195534969606851582055530431785950562005149288371611456480483542076843978789916652086992870562428579685292597074533645610610737231685211627543773215549501767676510149158425577426281009302957107928859370000534140351675808737717889425191789682532766088524315377795174422310975732438637363980901063051747678276794501559972816261209294220037258509484658706129980882565343608747723289898055610817464965902969917335024809925400670077445895817213780383465513716262271830309951189804663021792626217002124426218713367236796395911406552859240367732839513542573833113363161855684261371188268641136897438305779184880622792034773890157758696967493961455439461281954642394981576826955609691462110785471925812458260227110391740625635715555962276025923306920330555692527203263603574807443024158794631511864311120265782852384409629396518548026029765877571285265429978475554611917979431511318905092756206504011329090162352911872861150453527876203634611601810868797406322297558561371181391032476838342302836042127076697009138225692687805611782749668157634277851408637247511260508015697312978765817050541810619993422981598988530254282821017519499421954045737890290703395734575387305228569446031783009043227544763592647684431223712335502348013250477072105296956895030884514877539132282705786015510802602323025661431145789877442133329790449541221254942880407193794501634818821068102758834016855128073065438936232842428123867521685551290025892991196181903854743528998693573549952952307179371910429312338136382428048875955427116207539169684568710427036248356327074793089204636167042273781074085567769874635493442356560672139387376354879900875107930718724834171228147716020018260402646723945782237623185278185532072486422681030658227019615359600311178495136133075921080436599082944333691899540983619718778004881760366139169336909397292115897975159322037079106157926067708755079933936280358135837075253821517909826216236205871373758790034233930157659882431933815329360105474987492744331842788909121804442161635097275783281673029601351804483991748758962912134174683762751256890543836751011378168586153968851991318167004448357763216152175394276361504982467513505037971497198595815096688124017414209860495136954487503437043702494661100304208041877901093686417449522363393666203893779906848741199520398887547106121223304462984802820793762798790573190845460043812222752011126755119930566616687885221913850261908682337871104971727946421690250389388635423429287410712864421853749374144459618211333775856642989813295125112170326883592616493019594656406084515392543686272913407714514816766657247511094988338656215461646620755536718555936154488786802357199666657470898012567302129334358606427535760192469763027646219889421896518894021509775823159136226510021862197885536974413623656949756694974590572999847984056290455583077223312877292372455611174639251172805250278646260995933895406662101145127050779656076987438069586286432029368552358047847005966488819549267878726058112780171661512374709478833108040583901140341632349305360729284751151758858459938862292887787608688626298660413499260838562515464690246323349929314526036426516797413763824919518997818233039427211729766127216162920036446695426836629253478572691772385543850140562042575651507719796385057368065111245666898260499456815682358616086525026245742168933230258732870656016281312635447816844835033912229116000136134995601353212488130517244026947895033289780267531731158017543219869842068242622842215559908010293744320523866697614665644852844445312336587488564351478380588460848260753899009834599963271261837244577467467813888182198172941857845898504942450177740708756361359796808971000676457291687230724801811667734487536404117533509989249479821378027186853660434213931790203480583621393974663056362104176429041301896749477337183861412492578934477101577479157749722392248796960619989956870285215560081498235591066196072549921156933157172742363767686809343557053011394976871185108858591229183160285445884691397383388763793764426057949695159832656404308350131805458085582086779624346318944313492876558267177196554558860850290692348018720901586677155484384610295275391529700002767012485671042557415921182041148051012470746907381948040940728300437679186310946721047169986884500521308976823432739624239833653765855121141640247565089334577524272027754996924859488989464797104806222907505517855242825179439913702830749381563718227141455981954775561874809161561772389820154528737934813016990395925379626878601257835921923892120659431250242656673419675523566089451992438667139728495513398221860640104986127284604742197235187387397978276557063443905839995668300940978939748956748308655929318035060302006438599951479850718291710653492903517080209064987917659165809639507910442559711357929135684568420863949685705976105223188855249597849600300968026091708165875586608306141157279604857100447545772947322074343366966257860672843582482527483669236912035093759415781375592458432698178535325866098878989652941269054637239990980495765938048173472229664510350993227439510329388267791177938630187360582839578366860505102913461934002843587199552857029232972472071868001244037852056441110863220156689031542601368348253802889691157221071425260404044310360245476370170369692124810759204335902837424594718716220199387440730831284056801589836606113101532264133540967920204199956327994467760552924918752672166408864435022443644542695171614528782224901348556976586144900246120835095475090915619496120268140247349922599595379356292169051663137820547541880319572515181164795111917498612053836114035151054767588881084837599124244635105784684579900836848353087485765308577685146325269581564182403845670986392602540537701163003647049634293736049299062174805811289520778183775506547798854291520422844160997799792955256373322784278086137536729156829698957341231248433489169665139057479545745866653355202078597030922064346982084181063201583747870277331823022866300803112071332656917941628090384292764922763341089685578067532345241600690782630830968135969546711978588556899766393197577005979142646900456290491770460744455626114405833638179630053068944924641386380003810810452687422369001595426076999592437485325127730237659230826434265271093692778571847205473302841624360215673095910298864383139074501402169451060801354023590233671518544717931241994267836772348178577711654485251558766599691747149325999722555355316298444536652407616078960827541712787526120447232492903756822336791100295752607232367970319493132312356909987703373661356263296686820176279729940585964252801460075391317067182310572367914959018100186524798262305042710534507214951968758101997422031308009382977052378793645984585403954219756731749633890107537991786638034345064320801730148112887699981769626817536095755105437089209407650981916490322572388387787478024702288359254966574647496483807147256812291592131506788935588384311007533969692855623904226883018364831977003817828452552121303208079692523375649852689636436601155320475012750046107404514975284892857373298041999654133382892420135708937580410241980043902095588445573704003350912246500194419930560282017847486925045527866690531354595459737164523278102465271608857838774665094396562574206887206911978388965350945204499683805006348191167651610441639595783800272688242640951889797963795138314832227123022010043818489646713362367535578146538660413257290828657025398260385335409463007703713265552084237418218341116817350694862312277118129472825974081404985138183477927633721089014219382175454655860543579714629363665144817907404453156815982567603902794525397294773522325028055919234875456132468665195842767881369176569828715396462621805938557024125004489993418583670813202400120919874469677746139628667498466642953583365902046500582777389648263841695168244307801811584834145830296352973400533095323543876774405872953523520811369912952841376523047013896216458136258484461094443436994717299792713290259128946098621326458688400811034251535266658630037366250111286018918634839222442450221075236100938672442785393377053054129784417837900915922331578074752241270682253326881171501319156438301883329826596998974238116540031882602123343116915277492841645723476466928940570863008904055638606100068238047224665367758391162005792552213910332368776147972536884585503668156343216888862587327062915280381092482102481147358506853756783216251432940939442132090817944339596594176570287751777685193576575855953313263536492504194825644944212437709169884924534893039072777666128681285905256514124735697264464519717066064251429306182588818236316847616198897332095677023698793426502274529521797196877765760898884403976162281786299823461256925773381140720527712819244085582331595420777148506289532328639920653809231238128567161383805166431161746490614162989748387158706030188238159907185788654967368487603105366870760816411147743385371321300826002577853358126812514218189502292982669374383480074261235424917668732899614038258705955769444067952459197736778284945520250223964877475056083631528168964702794320837767481941055721091926238758926856968442962023521465832850060733710250721568198157797307741024609555065750053750097652281002161359205705068334379801691454506556867406497268302035487032254662302523431825618470922315141197481851491618773030682857035883489501470194245624422530227584639084878137446024212793956327617821557645857471162679008432481873036416156136930462664250520841170864961210542867336071802355368283980043247766865653292243246930511207079092771986849889917669920186384232279467638574797731677073121168186372234014708382896406177055268176387012456941741636114427880429332629117709476038191370657484464564592874974556565952576826888470012330525648918077365162435193468113283150990007682501264560757813217844969937947227645386640367992191889546852686067525467384273583549293692753765514899329806475615667131663931702756405796584747279499779660802208786467578933325597569821266220633186606012051547806825764793963622705878453430751732307339629679827253432802604681864956748704300534100949119765690097676983454625682749587348475206555445674556249535112312838336501099952739673313737259515705975576460567330961984890812197752395377403346445350949860666296140628334765172343959969626503395170542425660978864240251696035412222726125376704067321032534474296367427152293100311166931171399513642828141935554111641064066831627553361067620663053437214846369670442116892863994420109693732313558694627680299089090238415925041708429563947832116720153306282360640462140154467855674620066895955034503025844138066850086389678464693910903298197566212849259017638279155645652978605564225819983120833566628923829024829279600079381665821952610210421217532716732264809622801027397685545493536274343929055068800458887300099430390929386054571377347059749112160160921483766714350198979616510439162353699666910869104371994500133792829716555538048076011195847131406990795105056834557413485462431234840064854963422917261610438526699961934351375700297047096537006493225596823218364784321150808839179418231156808433997467259523555483566665579120893861844530542067355914083930058738952606581749834477962113323354013161787483239312209391187603997325548421449319444141622885194047926733043266772455467942147272348031330641949203068650333187960004768573041092281187797010933655548490537378370541566055780831588785087959547088622750566217007414801378196355375858241199011303416683712985151149840071045693390936522708080729753668090101717654144291748704535084217130889627912292870012575052355362186922544844731538289565533230326893757915218017889329042634744850515660798372011006660997567801147851156895760892936037230936498522533088067082626852197641948232200426109050353564372423162875016231356458411844639523621837091787346071542684174451888129159681046128351054196058831043094079595924989712620138492336465457524109017719666778375574712690238029331784421915008413073551859269871548047425133671372854218942485314386947673257623803632123245623646347093065088495295721964413367908519277144929000595574128867886433599541099266297771884294380950120884459126214130856508385665257264827878381702950391576740279967332000819989974175817924506954050272547439830596387884526221813629102718454031777203359825432148246828741989029112365496981382374488250163610597953959011151684485747423700398266602393906933626755577496959161596405182700782956923613987333798809181614000731207331490067308128105807661960118888453912831363826361793605710888482186386965036326540631577693943042720287706110084759185080241960227228719565428578092030118405835145878912964553599023651077413207257231059362177678844053981364388904514615649937399645562679776022666723428765182404028806733713753044245670734898145716887818902517514320970591554056193881535557029760306826978176932121219188693848045914084127636906573552299157299974303317688664616283244906437374369964348273470022308118478445657276416674147109779772411448469595030937991801334057730321511444385041853632068765218171378319682875217768919831209969121641853623807491180174718247715909332032542010277309086013003546007855600582088941723324380737682014225683250234929947208065591340651045801313693736850508544691977155887921092575782764737667672821774631822208472457820907543028478454300336980610542586477398770428063455623146157325529278860590615065760852020028892650552343546766263902580605267615387437841238659089936909568768893941244788515020777282154778105574182796941214653014639633095584468182596721525750496604264719110150297960036828237044157955197186315049327003479535074336489252239548922409656898324141507927810405319387273614794774653209086946807655423156276874674299785446783352994539166587826590436101616863925608244626876069359124141474430203423697415715928327228140071009424921096230846263906044755939237654977392449637007620205643899520189340636788960186294484208983031639293045751049579127924694075324291293871882827263540343501419489184348493959319247568455182360340266515413240819117960384985302045670634706338846799938454277663169502000442790195305423016590070595662862205632025255636739377762379763594049020051749954226130758481798995139376698762828544788852613806234135472298069677359631535247919259158539295377667629515669696802768088139234385731964519496517739931318785610374020846677474070223907492138860647158379042330869904996415643135458611855127882163549057217828136618587587837628568031303642113090665519694798244823889417973319001059811600414693776876401174927079214785541016562309774334770652083506915668625017813431749717933454472812557977017234199816886596119943478944813660035592807794363326098602029975345687182463885972599902896580183721397005688721499163766874443218109080776317524941005528614917626152963501692325790267564122735378879979866896095376842592792772310182671582523597313019997401741229018895672355253145455845534033814481942026490469620157059541765793027925366062258495113529455027263972683208426511083143566200187665266028141133517252570095946835394193368661544262852280783816321963471506828227721967051301950118695361612687716634833802391313836024705449175391501075420821167867550947268929330663914106798039265713137664505516881534519777049913215331202136330460021133882451754422263107564106340189942454489265167419637958257650903372594280895427833955170421348673960287031401680022459957006062731308654763888306569650682163107317212269286603907590851548962104618271802932776003475816217307724439276766828487267219064357015149056314531201445800820118203164217894580497525249958615263204323394687004501774727076309645718188345108954126093934349668937948718570515795650965873895827135794971440415571890509358400812937946861750918012415103515629268164242122856239679309699261535853067781494734391696152423472427007843943083738688594239188312506004537711910601844078599056866158771729318390383719480811150240813866301078786946392926545841713210538887381026341180037448443146533054752657449894767190682053784244993040768980379007818280483380798624867309086500743811376847699360567933269534499542348855173168257890894821582179468811520682923823756260976170615109168506619344887550629835090580330213374630141333063795822611970220295777613416837045290494802263304994505482149655109832529493364853316782472435298093340495201213660520922454357603567167746614629164854422317721573753803558516583889066244823490044456708274636146111980917933806617221440296308182526353022706151964412449231121685592341963799162554401143862322314541742199745322768820188286707984219149594859561014187665014666742293195612548821125815620431188017008313305531833224610472616141214588475246049199588187285116553467389366270281479748270590131970906470828915491856250164126386982013509752381433285182855706005621981758942663701266661457154839640678875193720859893549312007419790795268710227243308229946882071404711289528178084226500635735169491550448762249670778965076723206195589475239346310999017952939155553601414422526409572678183770434113508295773365107361833377362420581134034948244353474732639722618851679125300847125968583750675411703470206979042866777585927337973785610174995346364282019816666396037033462668725958317795327739587047763840611955067764030115305952581628971180247463858271056935726578418795510111932150167201625498092970735285613341979797748073269555362178864172906912400540749019096038356230955291422485871139047113907467720088695572540112426454614582528060904432700760208594822311714250979592804967451615391491584743469149624159456512322345317920749550501375368823587258920750904469636155985037526495421348725354702974559112490159510747003664700709861257992440303551324126368189800756367183305381803757660072080851341835278874138332499176102327825677104252784516168562626470312153694513088065190512012289220860223158578723475286075142450020215228827257100978348709146253208033389654568991107123396477513677435073424930813727384034374099045652364781921881477475868387895259770702326557954740081328785119977621886767719646458286156173973705045633739392726619229855726209343642261099682893076562080183058873816533164232848524540019858077260217221252580120789999673237915077687961451809077672985031981286888466333268455769089969961723073127844501840751636998084882290741181375167118453061585549766079744198271971294351727271834010763114427229352946163205387685920140502562843620160927274818494378044366618132820460985104562927175285658607615247506394517583643815907205600204950885041119207896497782488227349723639464219391072605914220058190575852455776895120099308011859747985555892349725925230939679054772643540259139539937752268887059030883440499962093285033598299583240538520719515535120697934221047828867252079811783045411594235338691811658952280975274293521129859379298898695241366789930004568942324210290892588155260075624973651082686298801100608471551723769643486591273290497409169736041902415399423745917640999727868702969208304872927636103708408698777453127736092570946469415584682647431058393637063866018603818965550333891154732953441754773680062078541780856625902108787250248529218476546247791934628067064796024328459248740278915767826009169311000815531157412936676128654788693794930140086458333623892797058996816082857505677242080218391047227078963320275355407947424297502638683962843398587813168150538390760933650734612070814023954495194287319321880259895213534875327906955215181979468065329099975573777941855671172918675194696883517273685834547555500556261236786095240376921329110880182698028116235830288310459974545812276049159288045732332449431792933807097607996448322226092009572632234094401849281155192967355012833713200329253434838971532547557170348841269066453848734895162724383211198245229467349608016945881287263951766120558313277338713345124846960421060025295827454595546393298969622628407854967467504750745738006859240356190973299338371147838602488347198646000837677537107169224640166928428805286297973300163442363447106609427882928097763219067600010647398832015718260028218961091476956788042810180115964253679911268460587814016728001283600492716696757011988677164137593744233451795550397220988509206762199423154459800842858615458703503596283263175262903966221206767770702295822795060308405188014012276695755312540007806152615972641212047617574418085774433917060125797141674501358167807181346306728380857889489597708961526110565693399008477157393797731567466097277546303328363289643133815398211874097728589452427941230310390945381984780911720909674761535233742403316306485715622240205787949506424334701452073904611362829603915928440059222420199592572920008465985636038536327380812389641124867990285763991576426828090001525266448760026575355405289377727218839854879622757658305417139914895100579119837576503856909478800416449869207412258839101488816217244159944752339885124338670973554187863762926980339874587359815189642358467461904069551295808135990914542861189787540224670611741767492363780899376931363974681598809747602052977198860008676095837317605257414927311774054365026391749267351580169586832436448190857659123019641775090174865809376230725583346338231291422425448633899755909898519449480578279986759091043705310486970866345821441841760456744943514622745390721234533333886838339845556353579528302632258058932391296517800690634743269393911894073871184183564504377114419151590648879463204397794288859342133326257293671438483909361992349912251351685428304113150571165579498010135676569328332087841707449522765080314574719383931751581971018454417755690326587873427762738159564422281899495132561602538655981777284047476668189042738404465124573036796476545623113185834443971868121994190707233844493365351068630566419693845335006971086976855431080748065468478518476327668600342153351570500168624614456371014161291810351399848581359851980096456702748372913880982583008615446896594440628081146380929403971477558546492054167328785133020791643717132081027440010886265352395365736343915258330595245993888462145410273682614602755459201936465576498437409757228231185609006576060048742347083077986985312921685162685680717929171025588051558534666963387437965065957592240584280148690302738072834111708050907009642963105848845188510832934969643633190778567170224598352167167023125319276786684332297155605671610714595245513303397885860661852578119891990751845800287832664187327353192678116410524289804472681671215122192075148805589651382444681775792998615345274697343205234700627132344798108803781971542920619273991988158385003113521740268880564116130538873578367127147568900763369695074323119025059240402773754123783611199488887491034023117408190160367616125572188113225014283483508053933019543449783673871536677463692582147902137939212432720983348309852922271236977507197194778432252250048369057033679954672283303903087890968614096023315129607080258209226225333681510410950806554907473240219164704158092177177397021340285032785484414869542606049562703069328368665251202259696811088082872331110414447398716752590765362753865237825819303452257998692124243544845417275912032828199539111718965169729666707831117606836501541271997728806353403779130779976795026426880136481928350492558082524927054705431771474182054481326806683362322184045698048531201392964435263939016026722797429042827353121330363436195738417852847036253715862767111027879272432079872895180103737931834241365780550752897298370494377554438330978342955606841728533567567627756279221498415671752395668245699914127208809149318396109464121108926456114115370182658697559489043408861301698947678952311191179934784643606255769588353971583999286090091707354473015897711515309576401595314371329005445499133470189962329165238137006118866346816637767065900506369849397038469843875676403877655731207064338232824853512750724146941664359504383861462318394057351167440827660325921458742669900274592147834371558339490673600936211466400597655081899739385075591357864599242604172754713118547512856556469880017370427990267050801876267314553630105697136980206526436998236434913428788236651672376589716659658234703175930992269743006062011143766847708505227845590205493825713270448271321528143226569927441052825242719064637385394030908962526169568587013627535963216732812123572338848870237400021170668204513890696107908147601156708553538489687798135309540436248519507265194427075385515282942010918211256587858232310569660930922356633387977550732987222001646031209525960187099639549583455687089197988575292280565159959701061558592301414814223570300744989786557055598410438551226858865267319986386458839217766096516670313903902575999880107262751149443735516759697602472824525379305459846995206330836295596266168701512910230918149660473637551644363650701431747073088279033435800929348624100127386820900410478451400303830739798204082278395252291107174929477741918360117749196967753224585222845888942145734471866132587204312782334655044455942209990267447035873971566715258196722937744983468442077762332247290621209622853415212108127003575094442339873887456052189992218154563566843670218832404097646814640742471646649675487321297375846107957310228189839621137974271663806046148730146382820407586682315694196393461634113881342994563086011175982959229272990504357478691642052449168747739168152699644831638222605796078286786199971377158657149195635721481416974935023817885854882866585682707651242187072235737049417150453882341432159029293470585646618283408409697866037616655373699341212932790416156742808615250354554546661272676963541535185775717992011735755529853846116182318630799492257090212543520324478392195572847983416847632927996769208225976290912982033717126864256395232022633167341652224587526937521210702114566372756628775657916203718788299285820747356794531444684799077374067495656507861977931935485308048576988344206085648763351021384773701517416286035786035178660563197821904062359971411903899335116531511978529336923047164095095177458347739517362888461528083810107390285862933015728966776289364632047325554834227920028202602057810073461798128811578154859629793502959626377754462147351890359625878542589516321284426512285841339489336510198377621167181759592649246519542766594455133471803201995510305703555529037289945921873537220155722413810369358117184210574190741216709484341176886940289764233648781214760832390783041176363558766944748720343829523898493288530268648282711109612618270276084475685601052152388647005965580056398143279551855575527310426656409879202475185587593940263113074624661834683025715220299065225918135623891061195571867074052276447625122558301002713045171732144241799450279806460210545209864731698722302517533579538351717488762303002998703225037107192134990596690786990986108383628515764070782238062940725718299222401771164031743793171465285401676169534685581293669619256876103677701997068222806493037578104886468803595865732340142203063835520798523971175866953168373367103590713262019766964156091070158006893818601834071758627059665986178185059792086785036553594643434268011478210033603185974282341659323139585677455666021538533416178789334215361994479296271496127015626797159987222764121673265397127578428823241297968693162580308507682881856394731785767750547737865770624383354269089280203447652664893704788165966870025157463315791564968652947104326347478960133848644015823996448473407671001100643165595397224324282076017969522827578104241665783904718106636926461579815159384863295399701711812775165023328138742191679632320723071352307751433582974358370599427898662864644544669386018267110203431513546927392662764607570253273145594934229661650166449137056788424901768997457918966043918235505225219987151450045055819597154188180842422909072627535794048170748692567154665135119697800398661276041586134452851656494965999521269431394833202757199231383889430758201427977493847035188022151593277782196380936125572559963147034230636703355573353683552461228466285173728141741018036556341981917904988915355740135572902848081467488110053186383174599867863055736950706604809673577255002017765413230264860632154861181879715697820843041149134346619208761072911145565260892622142021160287153749443154830802206991790729455265137115932264406269796952243447038425554417352759956096233414322723488307082297051511549515216307280071088930006885030870656500736936333550491822615155245296467819270594446466008908650327291043185472231282419229663163474769257867708488753497050017366906904464481669413436641906112402713774592106103737692807722519376350858074463943053137866597995920072220955340817522406220810386280385684506989100358285652420624960448195948546779306899084912454943213506731219687412865438427434191252533577212578811700704688692918945058287801822729638917537125326058750784131157888985838243683002522563249385550092014023656155016358494056027765191100070590953067085288596693810595724738647059978288388189504392776432765358142779922141137069631590476803661149962875368934848364330128442180508970233198716198910793384511161937306713506915659209535335937403234193274642003128659537990722227652288643057608592548910280381092638682429582927258335053585714083983837623486612207212738745823543456089110288603156873275370781105971852038328856039962788862606549584740011653819692273623865924787224032558630656619485823059120709480017903146830673472503950892689900309706811664458237686350038533381480275239070616380762808576018438711955030458970691583010868564686152942566489500542565571073728345115066544906114733132126642256549979862357215016553944633510508501222640652002580893890764942887062319671663451367231075892870870170953823598768802017180999528076762470821097323215143001489781424122715606983676162493007026882116582727533150680325685449257485760631778222515828938349460315785672621988609552777311879607994377203158896614625905492706452241088914264642306032001596371198031338834477992725613006456535601406653532347679162387475173040011669796153476223794178668151271736465603888793101134487987613993847032978986207679319372785224200045339622522274472009058568956767571062537237326405206989001395190788751765069369776202751311816678081912592565058764260385542948990121715931591965023518337140335315906570592866176658777629275264149093823369633419438240387237320399016104220528055190528921001681463406407549981452220117616974632401408867873155093874211238518606491106283451722124569617736799891076280257307293782056870027125709401600636952077139753922608660894014248689532898258774333064101788224660386269062612695373672975640370190307483813649589326159784150514360800703535213534681505220910547642654762954145154182845368721265005600535190208767117636764015631586852856840114787820475269795095102373685354257168127208020346701661977059096517017188274378044530799282673436708996359153718224004467114909185154374824207111718598589831164389282515165258981791080525063697717451161002926489333951283946436875427771648288928050708511209419931972100825503923119749943750273369694055515692714921949623329067277844144793323219469049031492115098681688928621561689792109428693635502590785209109085269526825005386526415836182713558233808071358636418407359590572242900753776057012154873573532839438093414023958355946495235768548835872658150057215590796673577417345911021765873567699069472085305408343224500695040867461834558830238765440123126542013642430111870130473186163439376078534218101514738140475151061276382774216625094398040129799741929596810434906578171778227361928320359917170508051997607096892776500920529035331932742472571049274607743636175211390445962697578410853825181711745623671438582101736498058642382380804031010236775263306486752077380953238628400223989140781065176178528435527075747724915141378786597231390281173232318971565060345768174467577923672098080115270154735608512620512906299625286563386529880646209537647406048854448261034096582780890792481527773152650624499455561656657256273250415074779379400276287468383441209141060200005349716893904400050752038533600261921430362699510565150656126230875439745696417536760439764525401028375722212279347735800595406970131744261514465112483842385608570343794361430953419603921556672733682773599356546705148354165469517447779092023243294764398670955280600801130966520814331053748293786140736876755463938458873707979315339779624035913041293989139087974355679653597073069318227140418514841519768459629836741313985446011727414917879146344948581231339920689948145961203033981499912148052804042533947294982332405986374695120589838841897521280541093354871979978779595861783179187831895842629398540306663889728139569435199655489050134221375333824681476687864303905725605674562426621337906804171417589133787255750578874979008942745005794894132888649439326112404931741137893727119965450059766496227641790904447107616385861343632961278854341138840781174233402871396356208062833574169624998838326323077175268950706960223112417420275175094553746622203186085648363606223296479106683177560688812871145851610034983460314118324671371317769399337823937300071055296535337399047061337064913241381805691542703128053186014123555255468230450559101042418514628632172682145183773384417397745684507568037986541995033606384408971440455272695497936992362095476451914770066250846294274177759774832062972267168177304258086053416191933704901713211213589790645809684965759191176343890025674579304868712434828147969843499705429663964142986848586760945763463785517526807567590837471688503479092649653000531733832117169433458830826921762841427005968434707333477207798894697800860136759814932574557105073146612885905813698327831202474030422113595282914683174894174431181478408168560121985858441596609397137237089710389819633851270364457460120389995094085846549856849986899842237491260578943015183608957900378005085077760360836674816741895674524284711346312416330443308807878097250262498582310975549727550773247070229884593169678406710285630180147966940410874714012410991158872711623439380532287872209864388008300243813719509607543265834274701006724081981745537256293913292398619867725975720823711686343402290411676057471508990311326124792027859643155320786857985679934527071335306824109105706279346335224650097798451008676253506465121753626472280931737165278357676418094383697255611315743419381853192665366881203239631898206356978630028100312483761813021466203580561512906955854702345461669106746493091919534743049267950795910256706791027659985052290339168560245012574330827994457646524090108291137458908924181502338024560078534826059421776685347546650360842025109893907059649592773749021583658788744062202137327194730486643556117311189979422433166689449532362827531574524739464772282662486955660935291370886658735402846360816291037911647219181189240295952768075034722345421980982451212780462327396014085321614303470099204980047543574184354796923870398971069046545446012932512121750220281905558376079150686398465952098734877164942667576572245745554189510901123371464951067716591386268295552920564878944353569089514624276774143723641045251937821368554042351207184097262324641987406271992981600266968969090402884727000002876929366639909953184908359828536054876817366059070258881154774448826028793476987872772689492096811460767086976118930727633593369675464085065090239573952499639376716346557465235340925826458943432944308162618269768026071209948153671328665942360554731699472765175934816400743477066845826652449986064183629536074145971515432776476204118938471750737744515119002650053388608383098740801216636156126296614167740141965224707529252847185401214353357161091562890742421928357905587022114315102659128611521225600084028102343816453703402215021671852504910107300765857089045508914375875284847953929243098466099943141295387772258822758994938633476848199936382209516577206864818828997951834850557647475541348100907349507292378260826213031311837533610023067433756392932258464171648805973287810560971162550054737953848018813910121453334101576513703098720908495439700533971387410751615788463987921763052185103074049965425193370751136103734137412179777778577543244364905770730202074863002298545779495921215946714593058756053778341603590264143544399821518218651343989885304611227742304908215021393229783794402514773567531503317950941062597616208585031279583825962149418575020903614826825085870302747413362137657403150323205455846623620485681048465169865701177848655337111226180334159293546137512892552239279802566353061639268761016345737015163291445918522148570206467714636926169212710176770274961568023297093294008455272596436690411604309932961311898496169841952805801321457881138107094990352365075340324559653950222080831090290960828701703414955196762306248563836807978419061880486515053482608596158389602486881542839405899467082482362188299991088183206408346409899295310026788201722559878402869035852874263302042743621207247128164309721077775177876821333475546962701457785752383597798586195352715844562808152602927345518216856000274946114385120715469414156341941031711030370763984466767658177329415667326618794987330309711257391295100940640130452371850966330640156794926558413322845972256096603036389842754431017834962671186017264522211861452830618583565849563200546283869628041166370725273843624797724605677952108577321907629652937222869024170368449979176284187484708937523439323759147215364143998055310841686525244159126184301837811210993138477618513988203583886886255659195457767890962888653302274494313914357397316828909851250419112479386296774796897986754555867886896437955324470222123673959120110707547245067242770740823233875160962923713003941769250319495032500517584816669410610209605827153428634659661918579396006873142534704236047171293298297339422829902778810256432107389521017840803916402916397165149028296248886542707975799175892648075598676396317493431969121207428400642683166641483738548785223492290422026948627827220530279125446620200974857971818220665753053045827718892208429421858266418852818244969116031153894219493545035921364967060932137887914901558414183747208892318614015888293434434692913864274348835957605768900330897413257918319307433919995522030723306876289164874791304980879005127488357794596158863937527085572306806860012363983131177636657727109461799273722992991010801332625094473727572229631824650391545945208145199845716705813346766066816369800583990412093166841348293215349369793286654687198229145698394358020524672206291839256938257328901407530054863034264567181173290835123271487816239975376319124714916486467381145174867603622472129900091813821483083351215195128788999889988081001017777151839563367761312198558196332920504219951289645274754062001429092799500519618307772442946380749957174053984818555256626128771598150188969866583190336755280187428006119491120462661989089419940606419845238333184146386808389071483929389193777403968608233574788099571106256261514587025883685157004836829952297698978938293948849876400127753686658239750423050321321678312000266322296781029430812585495905755735378310374485097594445859609857364842856206257233476698741515736516281291675824348465284954776459123622041539284781849311273619061489415918437744539012042035404871049347266176766249761375184368724830216574928693812817057570237962984562622140300316865857881065729184866253125353280341947359432114233566561820849546108212876551899940831656988442403357153256619646699238041299071396335739796688265180976236987535501465137258139212471392393038060398591169089475022793715992243294382097656446029727312121642890459885493263906407969751359614777321611816666165877175149451605374976265060771133026832006820734891205586027474588841990915181504621466179751261283187143053764579548193907842237295024415687721645039956061736225694660230335309340768987413204383824155285267446864947621245273089977027964096415600620777400799029580272287361740107276622940065097656591111525446029786756922421833631104559441098639555687417605540140120821021896736152514981828349510028193653326765812670600109756118563729530411576952042845811319861626757349233070609494128614870036234328053648794895230208656018622734361535300886622502979319675310406311257789651537272423151279903393319257386988893010797624330389313758373992531232978059942782360320649324681080559071272285891685362240716154032400864482210128002993078241972516423658693010481325449001535387057808525745978976627280957181674963516373002601885476955511372294837187703787772667260671995082583809205226352322231989830899773971624972767636591085459130770195552680254784946079751307792144420504055442524936685596136579939530798346122044166582001395428778616754567344561765658039046261901775061623936199126751665374186522165933113594658066423655523131990265165240452602697136642643600731503698698010364705106924187109912412130223358277306698003462481615884214277400515265225198408136423276020163831896619122160749894865085161877184022012764236068837940603159760081179216129476166083671268383482208041373845748842426185230303233047162785909655946570411898020492010446593501433412930070625730172989835330418908918275493805011372856915440787903919505530178584851968915492873502076253553892990910769419845667790834406649781116156625984951917233138610603030186920396196538799419397305342493347318091238813551562025465188063366588118707261286293384626237737979647887403508113000621262140123191639122258309020189370127440491897546706229519933865180140434740179171223537431360496292324070025361142376241848266593781425899060744265052367554048639341590773004405309301698515727402923086354982747256996055006450876561771789493928632637454731735912119005449520018292004605645575900821945691645037559681699175208969952866777254778212365159823106382166742338622196763356499915389462067801368275230756893991837660690313927748771719769448232219659034112806721547586566681818234870652229051738165727936215516259360318193122660444013210548905911383743687684974465130369291045293842177562518161382479471840013581081081122460777656733047561807078056493161703001083806827460956555583177490733768666543027873148746511855156883095885585816697141450886030795911242827286183867188613730412884742578898118229724833904686800832760782626981664208463832167201276262589070572875024438235179819515189948865587047323111951661398536437732992581692611999939815045867736290587176473201049229401188108797515159914146060374175462636501000500281348704367815110576429012462802538808235554554002252362417883440235738893705880609822618288031224696439609667872181646867582725313727913377755463904119503138503414734154273156110663407742397320353599002551241475715762715699001557341379271720462544986996975249954672366045010588086881729718576775128686921254162465670021431379559684923412155652433992230427912004830462223639509564042171297228999399916425851631942687178444515329018130653562526419368982795468072948507748595469431541066793563256923519052225801509645722811221840897727785262957487417630751489833788618371377470575488828092270205933536837011935379495226654847574097571873632148003531851912263228758798624937380107565200512311358644095794914679830646383162577554017566886004000315155183070292861321545598078041726165336061958433352296453653185798835750845538494620056606578708226879016270863699718749762175187373036004784746848003960999179617531175540527392322735197620925706507098607431597577464675069825055359258026811443661262080445240300778286494446472402945466455539864399548921774152530814231480631528917402875374127255189620721003621205962314555882156057798136004042027723811598141487087077493563963330042120926540993362966902078665388707048454462318850280036889972523839199888428565562879097131772635958209266319001198817592245015407011273484410658302739104026603308217006655604813089318543887739984539773842014598091640624936407076773972930808620456368018172975411747596740341159166152219880967363231541052149909148073757915770282775585929802068265230531908208340559989580144505629316724144121008389450563649502638641911636195957682911132002552200181665180987953394183024517910701718828496161907046885687551843002038637760809374931524924347702351278530680564481043172976286539016264920592527760497771498373967146822339255687395716350810247760885786053389822453890381034569352410761114125210941485964774301902387103311298783867719776845999372455508291336039186364837420937531612637443233057871097411222134051523647539458200034720566832146087409628042470350746565943152302546522193033973737552358345433647125151826957976319929805416669769234710872535328144327339976021796103364909363046966783904280874113599249626470752763968725321756723701225173279502911283693796205009625165022595736615422246247864083722710172885065727098438606123032497837409005909837837629389547107414910169068123321273471234905130291921950252524707029772770884041029153779138215209823682661034806968807481763528272399758304817610098004668636790814504423349370364050979643037478210344062709793838750776788049533523383150163798805670291732185587696686311466225150442932519493665646221921982910481514701290254870012115102103334352851836940590719996055778595720194438575285298728469519532737278037365243956292330960511236114276992761909057146431195710815989127440430051618872910924454609390282391912036554405834739224726511034446598064850944509222803672869798303801113360638244324187713105212357480248261500321699378665841508217905210270248568157852097943066994337551380534323563285308776414570491799386867799186911018470721282529521671348477766222924146741218500264110015823143137143078653384171549960191145357248640667016583022589745540930437630799060852475982683781534000907240584658299214428180252851952076563673673850771741090199098253439005034064545391222640551989717776502028059705738005503715029409315231402027227337017965791381492199294724887205052041661808102622354802558071809441845618401987386021549168491062547194956847119131736062341026302516304559552922333302249707336120103601594122739092207844085934934918149840046990794507442278842973575886910519031211522415815104288885469659545842526849016238660890974963343747983129249316120589848205497050606897799007163484572493750343007901037423729422146284708721580367401109372790898791623405361370181770212797090379825402112260709045172646066797381382524780404142194914590450540362244912913257474570936090108992171824957142160047632347604790477205551499065416152630002884365863832656313214043736397985235170656402650175200276010375881182406629915701199022934902333298564166499033195711663158921737279264622422560150322829365603476549442675765027073263375482819872514233360288052933241514695504688534233529562658464136886374667600380335883067737282539500203612768310302351987527625214658953979838351336163147509957364626700073741727115112465300820152252652389334710858945859874216841920652750079115218742266569844099833373264445756879654483513682925468245687550239175409732014382491721331442136462602335730316963969037119816454054209887744246655188563461551940519612565432681377373251253947201708718920365532039141637110624607818440538866607545251126105711251463405601357803450227321059769709500233475603646607086678997076992557050873739357598963358462543151175467200107886514827750791708079543896167311910939830923737266568065072465566436081184249339009196960750826200497311187795581520789832709969004822055983603678344901230000423691930478034494550140459863242920280098991188050587000053053996762125268168911048017935669296170408513724860224752014740654487098053271004693088761296886874110507125600545394877062669056816910077109243576767229052947495183285948052273644721196417031167447822583194567430367219909184046428235722798773915896221091200411699621310286197378746955470341831153231385415901872849950085929043624830193880701398674693378095771987272214904315607273170695078914847996657854092105106228170123854073288019945496532242309866259882105944676864562919120183832220361744986689427374834800984622524133804428706002586077603689949296506510929123435882240978100110545587683422908065553857687198035148710220320240708754230536292182776353334767460559613242541671243656837648245461198646596637195688808620255443095242020683056127677625879061817394637412165543533155854396165265749738494749527808336643678691549523879123974928677658335110435224615181263687333215157573778047126626777231087437560642043592121096045147828324403734289570260438282509786918043165641418650170045924699846296794706919948778473253900631019379086336870986683652726999308261919374147688511164789859099892599714443732984654437492152348597778268864126701836660576270814614369905269554968982379785118923141923195180206973251053056814316477865276713729157902191745301407265789704250302810084998713299729511310669747248085143979334206514878202723018866827240643041101980069944408179900063998350479972259718429848453840440052747184080219682883669185564615347180142437888895158823069064778007839094048193827741359136489822738866797014380338151756498637177406535573363227189250601639859920715717836550956608143968247054411728948889559269156793456352835355925044315050689728328389682178365775294737550765705404239103853025363977336957417391441775689362209245156823127336721931956057415314213154114412600921962270294737001049173663446581674598117529089444272068710354831282658084813468500339335842454967857779252728279782365449031415783101333774907440711730188912011880537144087478384266695935366601740657537320123320957602121549584844660091098613544745159944008667557663443986441591701979698435239121970367691757900115846865581542112313018540454924247890583936747714896167694744850702351921088049197026949370098428496624201891154315341336056045259238895129038755517309172875865892697226635588127723129705054242448508532507053075906550589296154951547234652038474099301899305122348267854548855348137822897235304263933203783797919201296118782699279218821439854910323034630326119714819660636579605544771538781134366198959757799973200577473919885883012331661634815929038904898331577722930464684448941416010740852667298157268260352545416958046064825493665825328004236723439022166491429938659482982396332055772944028445092403727148511279075991928746235047842345731379297202769841838040707077274784526008400282746346757607735230878269739774102781850260770612037271671995304102048145310608417236007551299033177689161475748933349517590131613816056936971047372913484206440537956820454525341579195150532795859039570191888685509274060790603906685726264561475721629477818666556635628808424525426777819786469965051635331137562881976118524517983316917603734137410474234480461854941085729307043444511844894695937202060644340829577680032768260775220172927893726955637257170819102477886557695294263186342821393027868092972859726211736582706390610686936825446862262029078870567949565887019314224494853298624025497116618890937170236341564465423561034265084903137836146810155706976466180971821879348593403164943497313586458355801641619611203357449419916260049782409870570742482280664271086126167045258833646574672601642689597709211438031512479676928264395343144308760379549373911753790018582065616938488302401746725332615567336921582077762496840837946640545298486968643539907661690155500952313422173836124876170816852543264286922812720603111402996101503005971610107599141832189263015454777711382901880556730668218714818644593169317902746323187398841740236069568711002088560725817997774686594521675656362873169151562259919761882878880267499375037399160628873072209316056173836796088967206123116834111443086888917113698959227611543314618859776385685224372428444859078566283235036337269317575098163787652059361588301999195288206863232951876261767071101090699274709070577605088753107478393040438322366855761963136447624529975138789720361244562898870211312459286488697280834626876933235510312619971761458158948547395690453414590324247806348517959149245244819833388402756659991342990056220285813560178809244144863752436651376685375442367048027312847999711815707814236547329183046921484878576644358231693863187156157086057796507126982365210153044231447796229905467015112830625905772318709708999858954796879722090909541322122361875814826226979020660001401311120966936009689245623912886983164035626090536932491419150674648590053572862156826736620001013163675516533607452620926861973224643842469731887632175666578907428880580688577210854540503914943332728773498329494382369674986450185352398781858903506115732233702189132618294236232482244062368969075423478925825903033534924576284244983249850339477680074287854602008898403126974555924763920153443902178011362716613650472998004885192031126855432308572942920181864149104356393475258826367172730660820180742731593659621877687362873836650200128011193956785407073418035689353790424734966499301358235631299579754947022486241112433235493778508176538180654790625837108454926921817173513769120552598321033309346886083411998428229423610107041413510013391562330389627994975185803712899798308737141914565249081786837345912636872904507003572308988621731339938779044854538707032544879104925921364792592723343891558585609223036635078897341253107853816167700734169543822648517633448755755705512962577932943706455133527406962192272571173354145161155493338230076280388604754700437601602083439402081829079100788262873295985803804429417170843793958353661740009910638134402863828467235352151621269215931851832607604739111550793739732996964652864664747557246628331245484092941546548803205894594003511981321294080981732966481724328152953946291644791180635412849028359211916640806380054674034566194712245635299095077012579208508750673937495801787830843943319201837150616174084810624389494151868511563022739297235576924410937164572757704170586296331569152226850629965787280449262731961583807046572426777578765547089708445797569774504883425858255652394459591943148118507796279930539237291052425970358947010036856985462129600532807605437981309328114052275612947000865416137780662020371321073686456890654212613884643528542372409816842283709094395444577263504090292030020076330739376178788499858833153861973675483650015166809167863218519453424541171424718605981550982008939353145585751074146147358180905699762520382057750510832800399461295742043127889482404505462059344663738296293196755223370438145639031866332279789848909051192082332043160003545428986747504568679533305663612779303067242947258310268339556048145955832900622028631112234727012695874973118333019900932048818800682047055801512992810910729965251822171656677500030465695256883953797951856974081075178316717295052627018417678266272577903174400364846278345202720643779495003511380197406589127950721947040029190851725500619462541765291364559882618021711102619951323523910412315624039976957473018624597970829837382486502109819177212281633676509359711359151542373271865754974141531934624418217060491220013044681440264039971740402623136601829553224877202114577236739155867505236193152067791610506538130810440044451983495662211535907611346890511924204447134299235533745749705785762691305777448830105059010967067484461923381314513272678912355034090605046239685752924011425103302535147969530815836959517998653963754498597735136414850705132613947560677732206447751229240490546323649647088817462891302139719939530431263892662376680828594153167001683755752892887480606098046995718764325902906446161694096909994203563464879018274424988950574337350373135217047047165156063831317014710220484154120200149596164088132580769457663899483612558000567864301320827977791714152377731326068634068650595062202632373904583807676968811893122632052372791593578634202014730503190503955674431418039599497027062659263595862444070150854909317446928005716542879326612513292768030034065153630033086380868885166550466376846681617524964663471003119064832545562527945593505432720609403150818266362555055042515714181175354105354345120254864087340851833461114124849399030417937777284651047210938238375692355611079726325731532063556923093413285230809297604152479462188073578249373913221561339148927558574101271591996041933718520271285167081081113517514262570141960696039302725906180056259674364767858356421389049147025327095098551224740139094945713026884383008260595855321382953240076800659308433588304392232290422091985101810682198328428847786972922438336564558248363900137479939248210596388790847068725341228557883336650504380758376869467816892123583819406585261720606570197872828717580980833631112189244409846048007653947547524822704954870660934257098098738902552889217798245292742689579865644971955316880647881182416316300215722053683387029817360027719090039919084977629078033663844889499137840120134271299661570184287191329109795078603014528512677623393009860148361587141813475062752204431074979071266130017373133601572413123374817050220463416679282449836294044255639489905429687278971132611094799387086420930072973999621076739007328711593394537288555934279861237504186085837274618650575779928465596893753591715595306194586916429542048065205418511029543717924763148139227160115846241700415313205900256651930865213178002801475083688073807425350298102982328233333833102961041255508555770170566547233867394129222130840503296037177734753242746590313340801694944870740936516571615908143125249490948176005486996756207894341199693625750405916444573767228932354544296486593831033524755430510312717255754346538724322331625272391035002898297946277968258374113822425779478546272703994742968678061291743850765800306538525748230947972553698255135110786618008402575630311552434016412616369263024405108984475236265761898228205703681211233009604059728851627722817147994236021555278390615468111736103959446623474969686771542760700084592762924593201149609826059830583913898168533938493289643064158494900376166146488055089219080068141395214616197221153877331043006701330507758443571120448373238985146935620000092506431348240880877515462793221159156985402703424713329893114732029000206383310378708489984537663090811348400706605291032728358964452263613289018081524852172740402029765916301014182496318151579668887000926776189098276566632223761868731942180689447678201065258817841192908459625203620712070799039467844842646825743927758634734482378272088027879775451019684990352436219545048225567332668368309363220341205081716133943521079299847306516462443667896850050668586276040447600357085938425467354124334682492771091917525739353059103251613817978591921329243000271566075845566910170329984215469236821683733521056477116574350618525366604496949880043986055126661869687785709676435336187935846722893435072486616654092262021832463804912048643821385587767390697906769425516564869795222577242821986854161189559631392973591105448426614002487036632659827255429145242013087519467511026021127585511992017614087022874809964318015043425030575586842046863038001881965852317370381319930167208263402627856637959413122393435454423120075400567706776262082705055501254936876782121616300732367414978788709799943908595998733993870631120095582057202927983417333088673720111954145381945541122567702766821147303051218451880758846797531004531300709171054180467536452789070353224903755799473205270602639031902573643704504101175674889699426788210973834563651501104981230051537523750554553946573487832896674679376917464045823699874509606132759591576017513209985954252704948499530097426975142895574230444919812036080372488688797456701791347346722915351327987288954300347367104921796458720130027922874381069469433760717187539045769272630038241066403541999834160166553030211006207186391667921844668719717328848167679625995404235774630119167122014998995834147156040596135335738976632735673379976687363818427324902893597638733327439244292144729874891502971077757359040596618394146290679568520180344483999854693066486307504301179172497460624381563152238855921079905050469574552861652916388424835997678284501493870633841891172305504400483222523993490968779908690472656170271344221804068822008153397823202734614703018463567855925321691826839404180147419288398228644973493204595602610449716064828899949526355790522195138581864028169405870588409969739118329890694350923005988544937823027772508698875659541603124040783648395238443788472746872668842078039435320291549536806474273633614734173684567352046703175681691613735981171484551412106239364240772155077131612868236959775074176943249010951226073596412554909200037468912976956204490215413782859018382579655792290512212856902395730026727693910626857376333701659056810832773227634054794026257877119148073713751285144425395880068153983441134858613847137989479564031658873017999566315520137171909717337109682963507178764860565110581364772052801877640801513933269902833070800729182679481026672142113290566647139556830457922563222855649802778732317475316033731679940162315677041644382266574528844087566961851474902897185168934517465822705252142342703542430255053827238611370812934146619731889604724921096361361396998690996382000790621316031229027820444693511448454411140557311223498380137393841898370089079504026265519411711097654918508075229720562069945057746575824731056907565111613062498929194098918413898514816303049196173397604633973393323386922451923171984602006736017559461989181003492143667383898553644308209486713639702540792570527567604535429024579685762118441455733564657795710468515381145783552369244867858515875406380838740286195141093877297645644800358214500160589551181492521982307271806133976616381430357051759740555560266465821432827823748438676935351544239974300575284376643490352975554864311064953862856995899406021983918442978219635772557564879447092659844080511626674422055579589719195845787604978764362951491719887087717642290188610427616420692132970424705849160152121438755740951710082276563252317623733790055634756791565054398991229997479534762660436296434089003095582444716093292761357091582770454913741563793365282019024834932125391324651710237799217301616618844195060691550574509798578114964281867842408556535806344330900306947308473342523041910217467451721812122987621457083988459494254451326069403410044698594945760721736711406156393834741230890464029166544160699614895536673509837166252904755814527247227515690205998564399115689370155690204296456586129615297368672467121602242342702574940285190726690946364982914608907183222854420646920984075134137471506617029737104720252908703766161919255316027129207326635715509354220815099674041245681123777018264516174233418030446251528911636308899990055221264978281147405703313231703325061065932140049518243948018394937188039555038132565026666184099247009609009090196383833945210454156942344303941615840578584531334146082047646419587081918880514716926685607486570941244511682342645368995181550034813978664415292050907037949776830265750346435647660939944472399723016928471099552502413082501402241671512783609372352566473826035105598995598667374597852964576450040163416817654764980658844862355910866550141245679113849681940413204836791435798235459419992112009520209363735473123384463297548093304661870695697470240074012882318541170386478922488842553202509737425568337593116515966529612164708633122283020181665539963841230202380722481628265042880572836274840217275496809924538992074089247949987689622128220475044720428559193006943245375867414561232113546317451602751003625494463605754438231898162421334082602681463697263701024589470002123751755100423610686990657913255762067360847615611746816941031822729528842738886159156792052393901323478678849395750128593589730124150239401577717505857117582658274393601150907261233501542529930860812845512890676346641611920853722927676303386125772478906656326491601783323796395966707615084458354219765531281160688659832067880601180800505068097262506065959660504602697094410696704005351014016897485109397536260994829597691330238829578693692978359982585883374452285987581802719161128197336995803904935938987830589980013928353292856065773511285844080445190265163093472693485880726959930646259294269357654744838531377844387395427997324911478628727244431319744876254621371151699392847403885456828392587969469627436320466041996360883185131222823959691892339030775314001382456297459716090777159298175774170503082758223939893464053742876186799633884910829476642319427139582427766532156011326356898817478020241452861488870573617113994325532643744466971163769189908419769001335275521201317464477836975727159418370689953426928540131647808030518965151961578102585406329211211825873959396331337500844762441928855291769797453856909770416878013655422354158700150455803124431576846176314864849246542451764010086897797583410931930933831302806256887220338355773826386655971212344217471292142933845882139043153718176149886295620645894326969403588389422256221690753845644894642024094440243244560327300175767466009282971167567799647673305324181029568353530639066899594823806002827681304368566564851425275299566241714825010421410214420138235319534402960506390516604967543077954936373471190010513800242795197295868840349069896895237038021515072873386842418520310312856334890622223810404827560924983714923361725163497269913026035123010089111171625852140858045744392078733161459946898068627233771080486720196363056777669728040760060256017919651390430026171467262046396715102817580027505507935932625165057605375510489536045191824794923625489938613206331618904881605205750164925539580638313122941543972940861660411723404193929576571728757168086650278674687137124869640505206309778067729090196430794782547566903093504899680630657604796598345121577469968123861717841978262991262328165969478305951889910134198212700295358126857457671442425127297043125944881231823976438902062056189492623171678701042159991786025058146401576042257004026785990776851582652208177626482174376225677182695536833392641041702665060467717191377383974637613189160430483935104845040280013737899981682943902487681389385047990703300068978343504916202923832449908289767979993703955302240365082027169971910004929321331033852076700504811372221751689158315953676533468187206845813035310311119868398864682612167879190877636216657369878362949707319733725928402603820665092667920817681188119056155945282351554350928590737839156989585192489110694838875680976265577778492765294742243493217899998547707379840388987630006730170636795396267921384130260543857170211443597496368665478938104989949100101635407432138821435721773860550885833748226870394748030110133545310775084489290270419671245784177625975685122941806936546732073856886559428865376630080445122160276542230111028275104924796867798221712852102091697658387668761742532868363333707887151563015641807165763338647172647608519574623565891481955369598625481691557041934008607176932137522478067084308130942577811793894844262338055927533328127238314174257467633136709745903821611288280096339793906016117607000351155138462814031318401827101892714027346152192747430937756852414006583554436506899150831327859991474159654700231952754958840440014793553630744201791032691375897773224395212689263054633060903454506547726410381565805933494526933007898148566391092655432559796876250947265557236379333750415918309061006779639684923831042181651204727343826761247195243140681137393779865515018419877269197468363122026167302558008634547516925489348089669511443009625810558907461524912750104381325940175442866654280817103884077235822811125981343519648420557383584800015130608516629639943325407944815107553490178193444849049483415326089466101004598222527589196362020277766612993381860848761476325262305186264997709660714401341354428861406647551772564510351704577560911584898525981114648969998638457352338354454764998612453168926751384259675518475307445121692692010782130143063712123036810765172143656446441744029212609121875328007896979390264096780125424966326109557321897713476419879631028021424322402952633718092786389410833292212305682311298239297469380415090499147308444341221332579027093895037749024608577752185596431967968670566752299479766164099129439974702646218491560684691367595208703396868888766518965490892117037831512914711436119191639949275571761412390262896579616987922094327912184533997432912374178513625132109010218943013874723490446831930610930346993967977709230787350164386139365101406127857847724216660007240698609079811672882030419178683110309502831858002661195239482821311488720023949074728280871519374169911031996879911981498904708569389824969640768469545770801764871349187677493233360419461933658600941241428940658499899748283622421633064352537186613495389162923410645771189869866688409767445507793313006446888369237692270217559000769325682833662414859113164653846370039029753081487372450886883646409263642362477546894519549328500729988958501479861742092528114226714762195056737013438961986262269306056413148202767629813322266454565709554814056964294066128794749070809276203177291512950020888588283386012847927985553976972958077959813892826322414303364569647127611897875585636370101693613041303685957006120441822700416344960589000866138469441518055199671401716012741424968859905521978802765399514888113221128298960063464883112285661855067543484924246661214629146548084833279403654198222908233127628585964872079100200887230017258197726958818732009350003355525572398675937035083692624673019506973558819445291792283389137968430748890665013050147765727006234715828605396633303018849087665126915583591969631173934991730718696051834766373745620079221251870300625709565159632004925012654211564124572402416209733837646038769944618257691321339498045177303537139779051016351292938526014574350652665208249023748496662879811051978933627529487131537342104277895369250982455848410695688565809486732515824717231379561500959547078010086937404664155454687380465841530059062311643393291079602676580944959532317176710606110711434102835368294986053013650032928873669179913084863413996358985294443391528632708138916554972147862938354605185632014355434721565557407076435564230746602230236268220176056511752740213015306591763392748819358349685713932455021699189927447361647603778740698492014489914509955257502813288769235945642298338558046843463573870520478550496303525978085536638042017893089945136154888269425060877265399562395879024935045430972378935462694375002616484379319930413514551239732086028387447708670499199565764783247719170063714223871212393980563010386588445049827441283008221500283826111085675047008928417277616824353582631573366529931656791888898767774002017085192377767621578825243367466399881247799358468073967035888699517235815572681998318247264431351405824650623832704632597966559339538139505610099830246567064656747519578543394347253329065718831142473848150731094213250820747397878583271414030330523979580517007832412656183036912254173228129958536893136120002032264621229709487060166688162509154390013654717091164236891895795800668883475542069013560201416551848966121718671275225129020705803314436071067093379397261677239735257775810063264916065245362513018832187975550369252522112851492200487895855224634576234002671827757833937692303535382805571214011874019559404558850891281879054421733849040706210300718552879564588192678413943813694469277481436711103650117155348422225587882629481873945517243847056409710053798402814464107537365320170161454583183949990204002577262735673390994792586112528187966811026994814139265084382943811880293376718481324973169434884495850956998961131741165931529238826628862366888009802421477483793410005680445570549896808198624700535513061913179207706546834269009686946525518701161528848929843109065546269707364463046822676715168774103691231224893947751803996169364637718418548858515738165001731674782819349882467225209491196529214460700230420026514444975201943091734698706476793094336759284497195156446594221141863239888283390995144106212242400453617088110826211510028872891987373923838987407718504499739507142610820502700520248490012717210722354319811298423049835670977545591368253236276726741649099389221656876217298764219651531526894937026917933049772762568600658701921398153529224323906522859400708802963085239582153668806524478892230727105097009997417343337612693890322428483798331509664264103812205041600966454261524529558793655866715087245868730249889999683589993576674559530219444539099898700711282565599225941932870138673048066470233460658312857182270132289067203175500328042884147011965669396970015547466710611885893971756608299012417961281949414996207172980669413218991106680344154492063289335725987600453669850729310377658868163064819383604480738115736442666759930290904905625466834705999534979327196969862470897169947861036314238356211429208069812245827611642595231938255624652522399272978387304313612473834824346702127931002792650237389474204457545836569929742869756438581810068665542911101731934000444036129985699128633946216793010515268471969877476820553023780192993598810995550548353754459708332738982079264179050694956558107507084608635543528877035888757020997836843790138247537444927263730270627015597135866607215072550187214015448600774259776266426513595991137023319144538469327169118363463891282178005375385729102545855438742176512567443879389478182062835682634876752235577726994076039935321729003804370164776635627080199783419889233384879352994558876518373528621562730770852889120249184473955544981999500912609850998086007528218800964104880864762547107284703138537211301956988474482974932568691690668893712195737061933515373937461942351841556744053908692405381801032712838444925478150561639810766785841777942948446876520291239372088346040711133421379379440937011173946330929604358427883538578155388830290143949410629351857402352901263835196255537395722223672387045345558710852826075574586555352797352200489749252533612720629085953238506969440679376924884376315157366251136384445144389091810391118866200265775288260225603859879595421671295318241562835163990813988622357822055510773138207945090793477259084670900797030864187642614406840160498911631190683052282339093598101320379069873952361050533493302285553100166308385040602760261863227044798256242011696417014375732950588592357899769679202665570879970207398649084633878656575963335256243125673114684314316498383884372012671805081999783690714485822452903323216513320434574172806995573468669832856354922437163986003519690553379703953120451520912875013118333170044074592164400881061928618021001258269235594626251168483450048367950685804812703508006446245323006352719562835856809624308971254762906317692108888896583211712293607681012337454126138766778823141605948757371690274724796579562319936467137222344593948225326463911296292682517245908096018860333224542333935681914030296819122858927976929734415867538895984015733449082328588440724375093313012696815657901452880551193350766116571880760290023702484916230170375347232904445393815844096781653471464535392525958036616513319792785331768154527538151255122983463056142796933148307672966511465994855298923450020494103010446673815688923280404964272692165517342457277065600490173014762243855768790394452239256183685977471717252805358962626402988098269522432814035133319447138634929078914312118255806873809674499486233046746929857893390446110595829674201991500665204667230118682667021375458494766681205077838609182641954163384104642828694159591747567206532598727935700818291742805804648931945789563577299172705417560216442030419630368573453597467682338541033695596506950109680675564918295068117814429285865608148243944067583912075110232263990571991809498027680711540130932643877067562181925663683889065458448952110302323588342229889882766432576806777174248366322307094729071716594570170746301138120387942008544666970230378095777235228220050613896235784219413071393806790528478139055339622595712868927800188884160691361745232580315932227948201192108186184397475545352290714521908005711747141356123323428665740870407083604218552375431207285945849698486347251960040974431057878264814940010311066915952633415646645792440242830833647398663409402905930183781146802658485036275869988018503122132136033928192712111864535272084397900888656965251889410059959176028672225742693796371640546218517417034583180655475801214092887876083012770677210033658085272740694306237584971599691042084559062867335274995581306076127865927466966264953301304507075885172673714787197253647345256412383986189501010284029930375906314374811664882857680250154250868152920018887912944693856390521495531986984280163932437095802746034322627103209321141811686600209143667250210427209453152778534736988357226134816310903209778931951895898390928430783800095340892258946718307128198465481569866756812975449925691442912345335799834901535288683347803904197742566349893769530273100663538855719682875686634398845217306933551398061114290718962729855616853417671090367347665699887460626468303628176309313366299575314621353203188425448679270549338178055635063607715960629032238774009944657600274606134012232851500499783507135524328162528080115757547307908283569558734220753235936488497523905910784592347727305942357280933331049317542318367703415376308978503296867624605959783893774895245304681799936759990376611739235054980316258538639555286576080316293932623631828458745551052874750821729337484827629876012979788665673162948852149384684024103583990638126030134363103415810998918393096106396192162518631245161117875077661190539175184025634177931058335000477044479559077816605108522377712586190928190721656537689008127134493871546046949880461620482409354049697349186000110153467158768720918852983815298395219525629035513461587425714445134281745441146645447776000078560406612271802249422543806725433006658233371473082437446662739239262561153001835377512886846978546104131670410636379519354673185731007193833316456349437528286101882149208911517610671122831020690745132918585476020613490017017355466924723993163289501453308954192634126234102526329724549845149835803065920847826570631379710996023308919980138231444868078823361468555514809050301016001012908327761095497829179237015865235254871376472367355144464818635128372481445659746792312730201988304742544189862407487670047290365999613384925298284819246886694181643335578311827618064824740274617471136599101767716021410040780237070443410194606122863190313420424351249939302845083603161412975486327761838257609269546719134613642737667996653291887281458402316051691612285800199578847972984234998108287172489731546691756039273666171383698575991662725662066105074247810915762214037776914563857013912490305601878009015009454456084349079742796451154425040323604903689823512962840591730701870499680225872778108958700260384677542095477461143063835833697218600043014452372197186247584780394884718275890482020152463384651168258621594611151516279545834862292469578764785939796451157209676116555201168312798634143790183040484974461210365634749047754134963559499744187943341442251534203379284588066326381435082488483903454061749518427410292370562569588652905119955252724268327207746663575223223590405050948781993750196502620535156530495032933700860183234065694976721147512675846188325280550659997624163243727011662552311481867125069367955793428091794578385141556576668991523466679628851615472644870091642673380927242252338610351941259378236905664283296122355220094287279966127783872523381770554781320653827491824701347815725245784227802067813863542610095393380713736223615010479602424739330010649341310223836902232822535758227337994013591042687181660822465868322536705086753196783951064737926272886113555658497899807925305743004168808316746327597960663095771939149308031476476977119841195760844661508117446000715533792861022152371189950238431629170404095972193875041716665039248701492651717512009982617326345801139865451404696376191884541746784728907023165074760454226074294313395920140689149441787157561854671401763535354573581883492952702791969543622307829860893016328308736248331144429970164418624356765192182158932983462037238847401832662213016371842398497022098856432305124197215517871102840272521930960298020243120308911091239933125851174737322786149228273743317655657118649265214526656417824353482219688833677204828886430121262621916656871409687465948367233152242162699862880964502306696412750079502562382791965979330090816684721040945941272744858217775896755864891630220366569913744281358366153843174110569776123856148922893533901870794468870594256686802298082940180907205675808552395959776531533923094637088626185344649241652922497511548195904142691923588180305210633388788252282859100310918022097630251717056746688085728068246922602223031612756085200032551575648698492860023554635124317646777719499295761831970296677117907576024933342176645878677601077874392507849238631724708675352484180964906260586965853003996547802903593539554815052217802350282302890420743103510172968711633766997291390137762820971568157356823474376776317847138252608353863722229078642427786097741896260823877681058279444640622444035420939397343947097593017348454753329319743314775353379831063726178357943427256876227085920158692872703938239242090277485288357815943762104820676510452280186843962539018722339319738386970933711946101256302809059122805053365896967138861970073104906319528807354736729451072855780739888435566749345567182459625069786874647608325787761093976844957968118953782839053704093894500552077984396914812386048705189986675208579412808437778969545334746718332066284654144669081966836130440641584478449166253775553507897565035772345017688221531310529614274034270596751349789042389049630878460597145873219369870067700024642869246526943188084558778095269180684488947025150103395755580298083094204982599429079430651021322740667176735760876336510796211084369679460868530560684260656275378312996231375058757069549442980672147049217688429946608536614707747494401859508324830975951429660874982650348868311031137622449358873292914188927319094882839238087166155527038213095100357413813070530813824952198087430243678411467121527687423852051569667128090016259577569964605997147628319143385416608247014078142301641321283342240062671011086322078871497413495200462703433781455877456780060032518629191526172818932203432295411694268785405895454238859001595921621813954244243730882747384972196425722432037072171221623992178539578702093839512565966465089327395934378111447382566136748765253522223670218105982290678845346593384412459208780028594080830190499235609851387999246969119107108988981018633619873907527112294290426890337094142225059548067913375546792279893181426466902991239398992807711776187722807237308639421363636966467932323141559435172301089859155350776716242005420429868736884529596607920981045328353643242072752852098183543796322316538267087085609768733891573734779738243425676564914167887641341908324364133273932873371682613681884371814940366070638779117622454521470214812739513104590477913918516126785868863951703185743005593119791162782829450105050027479784728697343569640869799923411497188028069257111473382346247958346562068490436267604585176172643850063743689248432114166781208426240323415735155812350452697761483739101680922319143833617936776027866401512957352603763417076906290329649934547301218360200930662576451722488341721625315944431817210456190477153196555846204039637868892680537227491797798555074527733441280438442355492757129040154345477470587317751596845952128740402717863583656224060679058467872423802307822536561611753401631627795637447504308509972225697316074817556872976316414641204807720332485330917227327920534055826427503994523264217907976695975716205749064456518681469708840554290821564335066959548743794407974167812052271843807718842060937799657706503398053855456292012488571478413126895018631553352296273852101430623593533875828782401624866970650076619930925319797604663620314442078975776667075094274172811155548767306787710258728328119768029038948365144745094243178515584476311647349915767663392593819811503543232459192497946703537886569210933533863288365460518900793521166618269132782281222464071593906647307157608649784890702898683482421115693769273921079880787686962022634750297647468193882377760280448907968386248610887818934953787344891356356515278907224030628159096031228136295907402560294688205040202996956974634554960539822688511072737649549282805703761239372581021516829059101952292178326701742150508300361012245828259888722893891622747112485363169077972303347716959123573310524719878913666268070197118018090742687103354596972194082199028308624156787331697488919703657681878612627600506418459693674464490294813797542974474660514822040525974963740347665788484364854376054901113856610659999809029813903549272989013399521926259158939450091240832784126738277152079396769995553568987088877982325500438625553291233753612329735529065143140964720118936836266334161119084660350030926329310207169341478456998622246248365584392305428973360140581870974215908794708153877755891590080218944214251540637934050419807169888335788634269383822350258149627861697804898679724686709854714468228792677728541562326656314442279032850877633606659236697050714248487262141068584296917112530419455494819570645592195959667537729005530748829995024330385734345811350455311091127315025530444838784420544924006308688188829109847168567556403141057197935547572110746723680843938426113617314903073090102428005272114409761671401506545751786419381881451926144791584662745385605851326039113236026356175184224533535173191764125868413052998139024294020518506310550520433305734917811889242473384672451667683013321717538782769369113827249756546128240567118337717260717193997694796346784970875063035468329388909293987587985681506002158909861386032527798611832123225359609197594914556427118534307781717383346241225602945648306288198359273579915128182760783976705048981316588946790757707933033160427116750560391629835878717941952616952539534400738233494997753903160153818344526602845229773970781771858758881547327396940475343514268211158650034049552824726168297855652593570990468360052753499988779184978806876437489315789999459685531209518358657382392945640248750291470834313968264100262317579492326500262076079792785936864971667963792055317799301919840613195659705365096181834951983715627925299392195948676102462038785073801708333527251620904089877096710581911892625630627746656773021485163940391072692812568206388491360580913182827351619152972394855164374091658078917635550494096419192762374874328392386750327386761475400649573131944800095001528672352951438398465532036774654040257469837054365085688942429863667309683518412637727618371902186120789265011584452517658284580775398186422832383736378352623688807932461587931416406492783672149800942521904539824230043044437562246738948098703219741682890385464725855899320656237444663253082380101927605874764610220277629008835279919082063755636069084435939412245277360442077522246070749456272171699769941831973787470906245441760680305275802704885670614148635102154122515269760761529638631467962578515786545572806157038098834778118499328886240574274963023542379721310926931604644968685218433827318662864219057235603979999331966492362059451454800782979727582467826844827783583521733238708808896402526576770332949387688952484944119832365781868623226385450073508879375296405183787294110271081227489645009485938967395343498285628057667174415048989110891609480717275939261378997682031266164223499032334139827899207157288623558817414822849914021566304445341769538116745749300620208257332910860715999255339059817718194686703591055844153495189935652528090295295519765018312090255976814554602725407638593938534336042542379754811726715942951101374225112967325071056057528502496038398099923677407829065022819678466833642663109401939166683715607674230585422224781775544496301508628068000549434321221081723242328879951263655480559538835553394099814380018083169294486956834312553851786584018226482435605044620011721090264215770095599756995604833022653291352969573110209152893542777801252204831829780852778511585606093138290371021356056566452837476144895122114250877161497438197758280364749350934200507690629211193383085327404744461223675500757725233377226081638414091287116502179726457528768182035461905681464777551775521968524489316296340907579936465778127804007062989663925561151755268456296386119244451072378228580976009427124196241633840752334952231414771962555047484604757322017859327118444094594936459744443150892695848065024355269252470093160943705131022466290681800438773267141863481838859593857138530407210207169573857076789297083007806371397339590653807681650568986020124150376969116435192754723908204593834605656632010954455766947208604765407045459328797280151924321925959755468924190725994526082601812959393059487799126566510667420855579907030737603290910623823499556066714643793776145479402174357638706849615116155499010294991678603413548948407877616143805005812397773793202071911371839012538809728009535970662206306442826665412818913854566104128403593200802529215023424666231027390366630834950388072169145739531979289173908057422493736072283594541501524644965318920882232108285885048130656543541642973620843370821959367440820296760965484093726287891012225611723158027746934674771446218925525262076813180766325483725483248106883555070603126745211576714674974936112724738559426991227012136675943880818196473868324440245477800748535341766722391965422488703826813144795586797551317410791253154244944186911743754293599237931088038540668571109429322889375538140327544622328605718599502094802915457502887092995040380946896610501356275271975454243122447759575002938727790172192574373450776495844163237077893526321329819976587658720841348263095076332230147559829563212129401201792129002399568433531976648533157734673980950218990197509403686244567503025597964206462421314488259057509036764525805666335822587412674838440213787560522932978511585802512666678484424116892411030398085923532682177329745227596813562970304895636278673605095339622547627047853045724037963834764823430185228304650608696851023445172110047338898838093072780140668638204821822205987723630538185797443491414670404301917486760152995273537716263567604775926093198039668314004763588984515501348820546468276040881275585471074838932585145501147943269154699917493874278789573213805205582077934187044813088495084648713682389976522655082392343973404435062925718265863771830325085143789192712110306863680742246948082374150858299152643384618556864038514958660859806519559478750706176217928895030397987034629407581540762531103451096719930141099650802079344220551522202275158394433143643479056135117993389723991022323437365116624580832209038501755633544186422579415040383532363105074998952919205175586830917797073326854019731350513804812098031584541412778728018618762656591919180193712820031663277621012008672672203974520091889063525040559443505127796018494868082024278946507314731903068476914174735673946676862118050456998081954062672354700182611319716635617078723340413378584211184915176044915285708816875520095387972082714534829905725437840477689295227635058676312696141196214317478714387533474490036465706760334946930899402207171706233446545255552236118079315093272238250626813194849563765539806753974774223115351358146222963174839912563320961196973511987822895542376737968994088417673430896230400028663241004619088368019307861342938666899866946947597502737075604699920743657018069586018610762440813929917327680106446597687903518076333053511507189240048387056229537139398308871699120024783649973035209862125778613808937029994044261176433010955271887314913113189407199288865463271827807843506222984026222096692052833790993891855637672590515156995957410622637542101555778888585387055810595910087150269749404818431800391066494244157048506881741662809773507503037965004973793486154287556439134123037635305058946994048727563654088853318435606838178053019782754660309939999265324559974843396274661674595798667265859542075636099086598679423328692555898400511466663849541164838322613474984094008449899375053503518723208669813561707813928314991470849703341689278460957058457381008931600566359292903607470981855132908299116212144033096907300514281824455556829989549058862175905077505027140556317787294915141406421676954738749420101842300073147009226353051369353916638582728849216220034295328039033145710875367716886568452298317023485177734489915614524670549486735185332224478153240982717765096948129509261582307391239354262905019232699462568134774149083467018076696835488339261846194525596700108627303602981209025109173395408831751307743014259664708121157976602457688512578937817773871766788422731575427671365179672098664128107545972288143413599356503237477882977088670773188081404259598880377265451547348979086037109207712480200353689124599125371879109105420827493224403749911024584719334231870230383145606754346138774419287752971982412207938847725736081941550171551906608654715948290703264155443819706380861720233529765259400605699197430682177114310376742491613545249244956859801918432362797428011897928046272188723217872356009382459899039489722227331092414166379663205095299702272112602579929723214937804499242351257448152316862137443661456322657779755871657762500217484316249728701745923685631648140193318282435548253703542086201358854952281058721179793706250103715148408953206762943000794868246481652084469553717767441801962723942828229363013109821394997793559383726049127263197406512513385134793646422991973749663603396365781798525591214824390282178894322592459363724140381811774219476692851713438590295614693424815102769230204678344258110809873134095907613824801382731452815616075121640509296129437516122323059809740099957431732165600397845808917589842937149871039483950840535322085729338287928126151729795366492903928393762372738998718351216502213564070149016292889264934940100200658501056768169445584659936185500021689103427008870527365558221884218471963322028360892933482760678063000195637998200863936526263524662669539580398028138607836423873964551170308005135771866335509738383757166600795024609313422781804179639445087663427841783036805387442619856459604073387752889761027830063652416348966222265513046544790960555187110838189435461310630004896132016645384777616402087212970494425013385249662071904818453960343057661171174405049128808758007019337340235488797631730185788898316177489406040551312368473266112031723801146174902167534055209959743731601182558042572503352197033625789593996924844457992083822953236267578085043312820909804952085904489331281377566119610668577223458144041490047567945306966588728664461227672688399844489068105564192544414726448071997988654611165626839682910934231054604699353287167156926316434711898836166187677085374797654931069143733136418673596857533238453848201317799454144927915290199154546124065852133851205235340414122482016961110699582599233205779817082163847244703949021666240936874534129331407418824736954196311674073081292681273279673080749316583149648786357975552976663092069187916019799450218430571525904004138705327484867833858561965718337620387145006890583759631548235024647636419356211594952287442430151867403109039864167608956029973126131243117842046166656226055702429018819752283592657878433245911111242014514515262213044275237914393972628782610104341074361121491535907413151626740713144019250705412885312009479501670005916094624663088509223392164877565635751705961379317996280893115189637633251942317886244419945583457368755595954055305624506883620984868611165393577676885855234126199093790844992195879077602499768768624875565764558927373005320559189877981612500421557369826159583813569901238062411342162175988705623927285486395499958821086284761877213701114016347135444897191485006598832716743426458759551872959015312813619576414416592431994817773763802382227212967079539156465455442499245766560831897217738055090040835801133696168690732546456278111604515221190458326521231089563970809222932420181024932307418327351286982753068981497840279293916064405761098637285156762487897072548618758886093714687778310310751545160340616600739362022409155355530119586160148408828996241677638323065555892400458159673433380674539681525295822261222540000749770498969830611061972013850558300358959587313825811975596080073244327654088180444649677120226794349583731464724191247532178650040907023383166886673424714118105812462548094029602678297390257165865536271846050629003158717948649888297624752616794775207799633693377098848227535391092972306851384158784915358316528541251848090761505192997433560924167315402828496201807525541374699409002916071362546384707795506803637826990768386122849751872319031366128347495450876779712557743257722178182753869095062517823927899704564506807388910321272172725077374251859815365639861942323919888850857727064590227799233092411509363394514841133027497943561879116814352037451610359186613548146934881291942124082885219038724344984975267165441766103115364842694147366989897940382861232297697065254305818968486292843997589958751564597676852664098932919255044917564079003491103075703970904874015590813226710570923928989195130407734460881253588698056054360590561396506983831032419493132797302744967311238207063383825395946366073936329610279159813426025223848783503041288454413242246185710107085151049443949360814268484060502034319687227211688065571870031456314662863387501802758007244801510475227044936653729946198975542718632908011913127334490783453453144580045746798787672096285787757609664805145082250609343177768559483047586044078028262980609888244101581207590544472834170765635535432771282873263823017100653448458179186865925404786560627702160309052757879876795517820903379363956594217893784535736322183107601738620765390835683883106171225551552920428830214483732575663336103403735487370319155442418852258445720813184270945263577588770058659011395357167318783357535703976868291417003304112940776656960910030901575257884452410629944299978839785861363013413561951380949402670814420368353752599499662251723896085598051673751262233130515749932065301183242038617802190696617585350264080215215111672263730188945260027976267976343647417677081909060262703040720479777234973644838010179551976937005692335355447323428168742736945808266872190038729463372756359956991355510829699843800211376851189028024742798142529390761894476575844827801288017204084326605453704897734133943813320066888304607709858737603097043650362251055176530019171550793350038216010010725697392515421412161312262239617416275759634959494512167890761232288864550522031384520133695043324667237021723656659593847072055037954820523551706052655336158401179320566256341368270247664012354311902251480532179638450360693151320267135059339656464824882442025234256506583530213885821917897630839266893774051971462181626602341706216887001467488961320934279491753961002676036646264150842192551856997961955686631501383250079479416033975625213905914672372793796424589003476895234130474189050159332416546081110566724106108347799256833737454970703556555272075639883804911006120068779130079190905370372691262882332664491712170945470075337084185238138149259909368973357730487276334447133748585805620992035805297676515186095213342379730370834355853162246176206756818657375198378158530014784625467022547597945467292005590567707485520759516199867036519543932757327677050093441064371025758251341626373005096557771872822092663823764901656931849230492531411575035979972280036398841142826541075032478496536139497705787784347461274182782305291864860918763465989470743678816693857394353753246527245192205464950875281228608459599318179197821634003344718703904404624783340391022335362505367030748434379719547984591508639673174908440360385237812237845766347270375751337645019342060770828761987888909911268957931100174627856407257477892003699173698223883001075717191978362565335017321659147638157436419800004219124520107082028591775819274830955138851880968528008135877978699368499356411859191487370742229508388982370548744057924233519588075115135194828987639792448930105874146620728182781690612108297303769570403865645302530591227485558936706052234985015967521469311802225939189823601740121239691789451031832501343371148500065861541485191379976491880077911671431419177884819685310332482169255529693540246000714250820146463395863256640872231245626531560082212888550137306698837551959162825801849797526817509041214519964413547427220390872574011172746452588477100279861315420456754044574417294549700888768325062418943827370003604887982757299721931790861974523452539874636705529910670691030985214312790756588063910388727557741113447945755739980306931144375275096156762216746613021047166744832567478497585612538248294540368076343017797065504311351269138807884432285878519403027847012689311091164305209109685222604868706723622497581160795942646790405685622720668810548669360533022671189507864734286214853544383209733991623280677553694637989690220755500272035070620319290195534405447057046472593528774446262315969524328023707419480822650072618147480013508730911072168806240348580998488636957016581969663493913429486747825848243521437170749523287419106222874406661511057883124634909855144402599638720657243035076893755743937067193733597513711068990812553042846762546361983352988968739311352951550500260555325713934339629283327314873630924870483549575264473842440138328809190369170430621472867992758975756032562671930507530319027795761614206190524399552701237429350025354869125011536580019130065255253408570635633670015265441711455564189850420050497776434116264292746309631269346812506183073637208045874059898165596806258178059538648066942826975176105610797875644361114256009616955328935272371772187714062225693812121157377856380478814886736679130202665543578645334277248646106554667196756860412112248481861230184071824398531346619675238954580157544893220295415832491391429982229864398656104194962526310234179469970714446570740757636136451057679166141056818895545702489445885229064207845181519615679377188750866081106383460493516161449823069407045895930823570735798140554590064527557693120474455556084792589484086258988810239834514784128942259231282158051741619168847418288039452513995945014697305139734377549419652629172124722056614287664573917967436005713615001125135558405737782251922595111433702734411028992274605898132242180433270118215406549308288165381188840158535949707191176053663849231035210635637461244380693036146451906889541015677257036951295291159149783237485731211866660406466204578053934394586626463489980550181539983567107116670045361043346066935642563627636845187502017661790327613814378943857906671167574095523960478460129145485554078818734383243071599813166529442853601964967584304353349505876577590837652692405364607716616598336166481183040950181318586115999073238637824137870763894167391873382504258925345723908051677375676643760118017453112437753739262718484442146895822374971635605866335620975740038837747096769062820129350413618373719961362209046954447951211306924978311207023988440466694506503861823859552375358023273852482323650156872735369601670704959266279897695524834731345032885700717588143608673970185803688907054650083786305217358432076904636950225437582776719295058663081954702348299876895060273001705638741349470827539603834228931579233375317642688057853077698225901584430938136339123812952875673697773909408037138477837207432408645791526673622955120413711281646822369740473560676312714758166071009550558525443908054895207474648231321194468132741312629840906434419772803229669034046115938679003990856511052298779831976935326573305005064846222377285400728791384830562960816679847224265533118338229333247991634125652716253415457121141441584140421647188457443417822392338524217799577654499873027705275684904403222113309173373748198460287304086754891083616155746961254994336409585605683103143886000083640113572823368549799606385783354725246767736271955165665091706606937531182931027689026581799921453011675268451674612086454176928929176217326249174951387445378465658094585601065680966302532251021811222831739812951294297906851152306720770175781574005545205708737060331362690048489323853174917169752912101650169032927807375178678001154811638619155204025847572456865702849069815258261508087371276107664638841307853516946330975722053367192952736234351456774937744548370560684947375393104939825999553241130580566155599582951480364420921186289335222400671497035731498532630355373261706506362876524315398370086232816802949424510245276152025888949236064467560338225303843288482166381128072628885741844925195606209076536474325562739828277832343481753477728914858074839379695600489334453125741802598498244215879709087099622274641962065597955819697344699285075678983000562505199054674735325010839147792164084071890896141581254861041696631049651510910536627024415027280325820634047748349899382163801841141400722186620066670643689745492693239143450927665891323449873360198237101550649899641047053963422548670460393278455729880080271655880760959765789866370053886483698752315406220425657846610061436304781427171560204597998758604813144618515045354515507436287946453123349720135364033543035047513529632616138583634949713007765268286088744130495136300923937152752810927282638451073562699772548841482503880351936676957320315403667831497816643331976328850660418539861733634534994063695904384491073868042732872314932365427738265418719412701642940409859876203266822026144323126941074317069063488769320925074958398343344960295963230129579597320924604513714990505610888964327552204238509941323681586694238099839236227671016620097837239071328658000297626012860771932006435834620050038856147617346696838328688622905915136982480077593219646024732766876716757993962195014216534350107944170187191351554576208447882456856820099855561742913149851241558864199446481070307559370135299615832251805132149806910586853968993045707698333282692882948171183510673440790133240373969579236976190321947971547764068233416804625474398743563807554719807551319996497545643683528369983955087666563016862754300877076650702540126983394131090330513422955768695572118900049578704743270081510010757871677717733827276996117155021748762160152657205266482966961485054295935861565800454396854185181982666564319260422986773537887433709511651094986771509281960006036550580023891220354891585615103029196144380756415986054070546240302744076675873501972987437466267843980544087065428926377253083319778356453167084592451139344879679376730055567053782427554605784523763974806861420048047579905087226202488356293122495654063242181894440541692255417080210073799821736195234153975080131713845985288181061587309411639755593599590538992275549661358644570943650395828805089170416960546965024189060943564044662397581617834831085692262035083319762270242200710385910557754677240114170074883724955066408851430139943639176634900901381299557583968253403657004439299963522072906796833188719989714220623434495218105475704926672294019171441680261849312390715599968938463073195315602781395352281286966963494784580797090229834455466875040525096876656099488930715625696709927833548065400842525425938012271204059791576819717430880295745273656966702449872875950407571280493365027877666696728195321067460129822237178830720711567327945919038173107919717130422740400593287605195668136940624890069391126440304853170465831765859319638522963995520750614223645332488687346428963989878440954333977016803882251958810823129208363969861824935731891714343349196334714456456061828136624156070953637733253639355326224492460839604782763009684346030227411979145566154763782277174413885764721914380225250622827927183132306259698492519809313282476595613535344745217081204147913587886608424935716346594605288508242713230533422004195696777362574685278893175250955632617495057289737110910390090084160971199043904993504389159370974270697580108172910240244713291703029498987239117446687261487898488675966395926132954210681051024110973483976342787978864406153629200551596043158298582189108991177854298089850861014626874168411104133129140116272456978896750466297473334161873083254766663224053921269842592820470364774498288682074963947545943525966200438078604317709948109402416869309086969024758875649146592102166658500444317243192586000903298520496999749781373346574720042828412500391745394490899920014762051787079080149288777293543634429539974530922247453105259835476580308335620775829002281832132479506047633471930264478263097207347379624335604720241316373513320993595739629633107738980380198141724068393009300595186027764351089511705730444654581667412904373948435185861559744907729067464298136249213997619334702790726273945837068753925505370441551031212428968200109380834880661207549634816312786485744811051226989624808831401331955443177858996418415465754979001270895250989296893263751694462406151617523039898504988686326160533283239498882792222730940875868849302430904714687930691473461418694202117057745812651279037001601863977569474113080340912318124918917338417621051104798392362503607404892742615233627296667320980027485045116889185637745324618688356749286122447740184806472942185285126895372020043617940359799482168468371236224950009156826580705006339472449207603228869990770106402723113643504212227805742564479376298484174352864928397076626944727924181586835884390044057605727527552169434612083351737044785223122139058006039617738595767106347482037174573604477085626922372921040688036849051978522775689368796150835436294548354666492884788693271649887424615856811965215104237480690509772608512357478970810771607210048929923940912384780602603699952500866092217054892998727969893878714755327324659422631937606835397125738641472243928328966145899071662680431208497473350818984924312270721864513455288737318685592510675619634468756641246730672869267524039240153415637209497180553474023898197029758011950551235056632108759435117378648658770624003088406204076594665717411507541250618658946671749889128766295687473532674901081001682758316703490173528731270012069617833613317459371331329205469912494027950163829988105483660083672217373347341447722797206798345177055919022170904007486268854394771589199191611447733264416002362244820217758517453539657228710371690556879738119437531687414756683027634007873166579012997770443101936518173054229328278362390825555448277025497647564452599547792831298761308782183792973069847838456117145618747289031211110772965940154749921663459231138768524632117205502857343965359039123468822154798916300218928629137719090795267736051129623914478936342856077162657142353102311490387327708704528414813354846151779537775230869035857258908244714045001573513931385374835643835870366211446937932400293397672197520038049408388966860074276152848907880587992822415933476878474914991307538322322327398047444148432903727700883311900353428826710181820533250084384655489298677960008768468007474262233711061811203761249237555620488322465345592006496394825928921454136147836100669518005963648770637311651988879785344627476857586264426668366677379051756857813247422584911705075853505996815353505008152321847700115676568650990306079299571210145082229014721013504955619995489130674215328311653934460779800996815719352091261617091482075604745648631077427366224585771686107308418481766206031134786203477450037804203788773733479441185009231078091730885576309651450145959667086217366754582434314795120574366165562082657068858288918202215118951297209266201784119730256679489973290890296575602715966807898749430688850658256655863811468747893110862364508511062949431948575298233671459793018144175543912014131603198333295375271560004480215415576948752998265318667330126477673142579405187022161822298991663617535563325177352208021080881087629031555151252410423424336574379356568533946074151456764965694534224521231384225792463423866932998676468532061710629210207672468007311865582615204914777358981241083326246841791576869417193358923272836883720835209473909475014331012930622924975638240499574984716890716915620195957432196948544922748604334250094560045036661270872152311660565837216221194165234800934187063989926463362062181391470477892919854696410894271547533409170040122839615744289000330635729218653284469124580376196919712778283613226824224230393127799229907086332591726926355382767245010010465450039406409316032492625101232146213224041499959343212518107180990709966644852175104956839082871887755002635586378603617357966927102033495328338454114408692198181245618210902966943067275031655085651680341021649286034052665057925262444407028314111101828492858067939948476803387633536420564704276600596913420990620839441764501692977269578274794690085871682862503695555857437262643870728785699717700413631773626890941218642385232882189170151200620917081036634573791511038685485763314056072854093457090041174563306871835657334248116195980789981509006993205800339875127646693964693428326878481647311563695458152773203565864574356439211195828350478980732434716761017774819620543304477999246057112871011630230615180000072831792412440829809076722113316878254582400477622362767243769794389786659038685377010266088860996477969484096182414415871673130385109936834437166025902403446403037629442757517586889069326713634488041577848782374151593614288584777955440822157126062329333224897131952130648081545214957606603166321835027680502644911352703857951090278641700652754496748916910664692348423650512170338869419921476796339178827730588594613938538227576783509001146602796977596810057776710945382834295891772993475523208182202488064052391627182592047259228559948305642596497448678533824951256720244451799524454488880501103317682284749703242819444052686485577733726251247849050382459200212002981368543740968001635228069829640789780733395592163628358694424870468303591533631421488549508084029701929208101448162268251382309219924435574139945030882530806534086086552539956262223506244663953145458772234998060182483474063039979121791753030063384637329201210930136494767102730368473779898188673851679914183353355073216229274126949751853870455937618171982416309400088596973418073963400302912985721730542656589052457447976346704836167588346941546156301563323786547750264806288167780610482730968134128434014885152895828420661361204318376095394103343732465119974012004088497232223806942179704232719136301748241754505562471015084585221750224462234047625926607895567939191440213854211007890732314016122619162159519003466970277409878641832719965507664685583669579558964191463955057529202075144969857850233767692348353802882826144782809081599079607405968206516950094463816583910527703346940525191724870620962183721675307574033970879928190262592516222959810341214678261862905685384238986119207459843938178432017522346019236289357758317104018408214656892996369126636407084286368306330342374676923756709048563885003259417885113557644298326828012973862892337943976764639754415537923585315376100150620217627779990765763837640731818950173907546109102368754799949708330900092824955134115426856035625839826918916657948517574091781780845432259744012194789471161473984983962444243608806955873308968945363564395126075240531584284786370885967713275942114564496289884983816611904727290157382437537671344010418480601342149658656612264928766263633433985365618708707637233813299085127546273460262238929314171850357098439319610066659319147866511796064973323011981906859338628317443336538385955770355644882422851037216587271853887711405109726915077636023958099285740227961214126518819634968917082040571097180248492804691949107847423641856622855026491474168175806395788816967758225264442444817357666608165767743006821332143427977601978219780962079260730913671577468160116936067153460187328163651395532423662449433532199745488537829243151959779293856242508251304279876908023450145076624511364505925878268751212212991745062733769678695878260133977600876449368639857861223743580295551886526475821723548266205319975588186650530497041411766339478681690057285343011019523653702223159326961650956921749813955255211134429912430075169816902592715074045468688863007508494002008488412310326994154482256275316021895931780816276063603806394259381811463078153691050540236443782019614849236755887882579271408848968212147157144174500233497200574490721696943438919156320674495952606923168699863905128637368251427737342210207998031952355741767534845449373659102902836982376744947563315816111819798693555044955032601790898155456219875692823986011872923840000662524002342880457969567326996755602529982478566222110265481691562296153248705739553991028369048417073809042586667744753527237952984553595000404245268261236448341171772287603790627500166393254539233221785813739169406712921999312576550039300020571416502532370398949731313499023706251785631559858603389386894307887018140372056863400814930044804097951861479079345007173444272267849478318462157042876473360912876555807782498099042620034139093721774597612194104171737703359736355788018215062824209535694237657026291020399975907885633076310901229956920758935265152564399050314873660121828779045360216551632115166674731699313236980427157569598855508376637620315028342127554441705150229239092775783633499038662875375113466460784078524175765566330032994585681271640534175191107501730235275575268559937602021388821303432461222871282547585127507357416937009135637836988213264835728536773578170558190633567638134202309025152251140140957402726558316730761768123899800620830232425189003602344600430981034857178715323581082899162881848185478492305296439965753239210961399429190753208199710539805554119689399284485294616438489192130958398176434069631379080655227196534669341065766503405030396521719248524043027808981073087414832067942852953746654335206390243403267916982651635473502595672824905948001979132294920224322740934669314542712434291834949518060094829022683926452684148831231433796787214114373521865577867851431024268310865562695703190013299928788102740281193856800064647303157932602788896285904512278400468671594804409263806117467640668519834254734522946008974311300839944621429098407605759966518135706428654961160250339036873963542038053534043217349861052027981596473242315180162599576891457210426460513071538639478907913056900310186264466169620282038622661820470052771914909222577320687050656428048262523515510289211117050701368878120033673466417804879192349623790336861625772518744326015199483724302209616420075810271157387965960112814056993822915354048949461792980026985708910628441763441081705664759252487211276786783402583668533556774832679900677007937098186890662822393545906594001668372441684218626609138899751158142225687062699724796503330071975648518836643283589948529960877362217073077550115686781831605728606653097144572197639423573891722016400135923794509758118478698035661871945962771190950936810898776780954202366104902639681412348963958094411745996392345043214622331783132606546231280544486312637390293363650218386802085970012012873937336694664782175371913290309603170589954953729214383004579614352698716422438134593380805896334266004717984726551875853690799543188372741053808526753217106051005048651226216045931673954191640994988418589304524483839081330125084116011546683708043511544004816547037548322236877266142780142780356525302886309813938845167875183030584560775826743318243728185945219419417161077300536442501985157683438555958400978645350969012779729795240349559676722180801893272337993054069493797394875605333318162215048846922568664895976909308250964743887087787093287149181995165620946657866225944661337568506292658629769103545273878163025900419255675253742199099747610138480910074571708939981018243514769482402841033563037696742579589189264009469153201384360383548339210991141430256942392053230312182571536142026687463999101470942221794304363264733612589326443678012149317167205829782935793610365190622875892925070295482939732364317070560216227309556094746286839442080673543838022708623194383389336109284987490838864922461581102532929219735818376076142077101518409257668765003953124353053018800634512303965660320014624064972071066431031869263353539231044246017743874571505914943927008580442162683789744328575843360784168815941398153940803086556055864724523484125829025519209028302748810833776825238976954621023596390119847985380184153333111092123963005878178586031488880202416060341489572021009116757031808421523144366648403894025078899600664042322039454347385669552834954354242152020989951458209345672617905338135864138056675307743355160858242059879705715622068467957003595046726392690291856652798110185359636754904684866190245406378159958586676686648484845259387845923381652724823873251914024601867134154156037165450766569606557709740154544175848548002314064927716943005810521903308450587356011700153181505733570048667075466824196957874875270509310621193085128678208757294116293802792866216164049005021806458075840714043928885274700081476971809938177386880624012451840543499118413560618820903027424694719803181323827128277848043757983239749123358022657733391748233207723573302950814657551957427051745359030352825386285152802869858275640739921324532683243037636924963455685950622536947285763806651960703341063413055504095300244475872189076595816710927059852611482144427698818311779266180949223177682133410587913660787678905953665221052200058839683136977839074192611223277802949381189236542912306839637861166017623349597334851597584344492211340759255760913582536535844547091071716583751484519885400123045418335071525712124020411787622652144625176786160831966473678863291346385150220473795527662387566893047555320879575996282012514403923176404621178690743498044115095190932182378546271195608350306083214777808402256376382511456471261927228566857218125990104890064613784769866984088942976918777964876661310621738885514564832387615328886701754607754271918910046676875216484339690261139053176690301045876513531442611625946867813195610216543630237215789607195651761640773638251821132510356665472078021563659887770175715624807796026409830846689314237037401752243515624419050015728432166474531300194272731102953467570161132433123763716876200996404973690597715817313529739895357175283002471936227632745231385292115190347034680837313508001987506669739435129857269119795620608934760218288864546756568475079887850554130269344168970866268491951658207872986174482206392120629396049135619875494811887969155247329771961370465925852801810969303216764122212498053486841261534389872981858362060556239300309020944352062996907707614967864675100591248178039228586960214012947124443402019959656389726061132945560856702842905861477940842343736108920220774171780387669479558796984993757992522393619741490937535361458891821040934298600987595683525328548967370885233310642605139544399708975517730321078593975740410335185057997040121443066170129178340654156930738204437103368960775807179349079485721831294960705156741891564039224748522550198525384579758084549848792105597751674925632506434830314701138810084898510091744927562699932466091566344299883418744704845098468357198194394268792793300302849331254345651802887065684567329965462488248108368743069612146306354615187346352682283504574676228320497080704786910410242955519987049965566440646127304699574961233025056274852847843214202071193681082050101865125169366007546730492408478138449237300061050582262217601831567077583911237971403642944348338877684337181634060962536722533931931143372393387866681168766444544964882767750572293004676384675437846577939136536988115600806241450657070432958083442277717569723803799811535616765206145452141532667273290289565300223819573240836142809276778900055006207719301027856832174044513447196703191986949074193145451161538858269876500195699401059680926969206756846387898297562044229027235096573420462492277809744738520844257837607749839074872493404684464961794797947229004648473553757561740562554636603239634756889753027535070313266671504943471984349869234444891235781363172781501870309460883171881930635556459303537899382680989161558410470670981054240341121588896721955515700868064276575107707059131269648275186240449218713050972578214132487807744607984779840622403551833550878407608258478292611631774929053203533270744264485357509236937344969616682791415167916286485518686442705620549447690062287824084696946052378423098268069874041836620106975457167025254345150664951945203329420782727760111338357799661773073614774318726022846481296437546124868701099574962578626370830005299894674643587067509128166123867822306266411797836940481751587643426512291806699268549725344378385941918266516796025650955648429758756401659280434260236697126501881051553452804725791308510803963242708843309898584316675678723055260504953347978268815530523535908954183735155435032735177077476372595776259490315091150036679927939822222456358307512689378829095120753335728255297601084927238894275372993033226362635576601271030542168657417809461855194467033761412920513389176592586865690812014405861585348715919632226536756450299510266319277914309463209318650482237089249062497538215500330195680707825182556885247283254723940606165622540497328954957056081812065342161257318397805653672955149044394096120245652207813428188186388724580706463996713559391108560805124180670458027124473620634398822498500109673915896020520528065966778186307584045742014536088211678818777906790542787351284278671534883888525659543480842399934304906275094868038256212653131549743985201814454988380321592382214076669844282254977547925506423181218416455508394390561769797857023033965305176788019198480776122426929988673940784657596296819523371126192931496804119307993568545977241161910557804104046867580189979227501105600393869468972225474276890768691364213891637895746879023735393978004479735065796967312404348424410282097315382751786795631344541704527959959403526157049063472120279110269211939569710924572184800266588803517109136417343429627812693630482783711873042214280281916233497136146874022540372098076670556628420419032038640087052278502748331299163709111018152817977614187748365550627167527814667873191703147816366820148626386071388908818180247908143312977800680586594341599253222196731776218502516297625771864863472118351952790575953453438001452311069823720254950105826188675819855169679189362376242339629502374390096065670416824983385803262241301050446410035244952881745265644328616402052748899128042533836494288930020377272042849860410276848353594461259297361874103079137920011465239565761066385509688431774867053388582839898583725359582693426164491297987841537288398350639593312470841528623525101368144260931700075439908246049723099081648253881888282500334011652192953374319158729017675054715191550639628376465015275693889530924633956144152565349087555709444373926833886789204739872345486552725798026413938594002341761587184187485171163473548898969646231018851180709432877961767958204330717525665179603885552012004421157473047202712540350584228901749659924757464616680079919193710274650291586928932992176574640117169996844792135987680003769565622848857278704943198325318312411052834883305043985150860630328499217270732023164549642949262463541221666451228315553942044814261355775187563551492929853664920933718123590559259979326536732279431518850465673238924219366257442988789692573611270430959273207371204073284912744726560694393431650490160936814499844752375687174792371958129368330155799389870540431232684859277632424582180978917468890811900432327453135919159553210194716845884182832293713800450123438696336819981441889397554712168204014150673453731925997207369016704268619930614519259803123368510660428595366780551239366096066338356574476632461646692916755483395811023458253964378380388742702691785946339331575591069491051573503198345304574005061993483701393620050734175313166024912636092010656533582997907494719068813353063995869233940017163419908936981873030774843631662371347748739236599052062076980731584690060656637116465151976893351223845579828842865999086726986205930041007985071099253910124600722184258177160961275674777317449581694704991321955121267031439658577652783145130802356503601738318661997092097626776035251009387185533298664459059479007694177067625890257890755304191481897382775491308510170519561292964649738479245184838989325341858527020446600697385814969232295974369816109801718812715491358611109281797636821468438021476956483298842797022402926340273235951639845826836814175772449364274018267635345497273815577277290991512880902471143296572210106027507175587796826212341637375373955788109314420529985543062479072589598494976283212249705941274677456196364772823086098677674112451491984903820088935007301187505734713167194161477435197216454145853763881670405248002835563928077823496253070920607828580130937959456234277616806497314331134721189796702728792492702340984825962631241980251866711230377448417492675094789805188941764493669037542221175320228383359160337169841976367091015337879472980730806393067196075031499973134130942143864094166587399159050668667686687121022645341258653736811261264016454049115688019188524571385684978737551534300153820034273274295089390421307876898616292851789718963733761384641199964424883048473907105059840839883071048621590056035302734268874700770296820337218679907743950392698994159425847505919144615567409451062928941180993504268089206415627924288914194932273041069754742838787432585846955582194712431814428862091330293224889229647632840451158757698427360188439443499689952161333549247205817069063370845174070960263904005301945237702406966242162696327542449688237482559253500054116967511887761532050499875673563991797195930987159379270178067792643529189540970093428382497836324258294512456457083554995083803123026844644149223045137048941230862202055721629869120619528226216791702202824606897104996570694432497460228231566455540478918664777774314987071712959139208329716017820503804963431698102504829156219428961559732187186205721883850350109544262548840518065457884287009576068899274023487845959544952893045946703167986725488958381215826957886233934898558231111344731843083875917369082743305999136288701636260442187724533210372467670684064683112744340927132483942980778979578969792669769760912375382246216800761791630866962605278971728826499536916099698403973123189864221531568324544564083573463757646240505995778124493435101036397706582693287999607535225357951998554624371347594115348876065306335431697186022333970622543402299153493714991022147589994226725094229519484975147341008107991498977571686459176773194573244164515795281299787453705716967538041232942015898492713780603315827376772529999171366971406515775695574374323861156907179982184118052089803594236958164703948424601755545601613227599648404192533917189730719801294402808131732927249720095410034933903366593237774345802180169712868907311811910995603934282876288620743161111900939351813518015611016789252198968631498577784381040366054050888664589244173839716827979044285200960373201597372322984897049647158263573573734444415307909957614386150103929547653077711430577909857258949867253264609142733849577180491354973463299166087545070722761952812358702581068911782190825590327105716702254940895715779020673240248278732364967513302201189134282038372011447677326321941294221905027887677640105084121092984162209607416911941032494964179229004947110927978978483136361882951650408860391603288938207896239858269396481939634558106926211461760384918374267744858564395178101677869821828060416181542433603472648837528641775377603574215832103341495782762563732185550352898007617041141683132535035546833545854117431082439033228341663092439372128943449364186184349442542762427924443178489701716007467905906023471077816282460830113439335513156657084515733115460732789042382686977275182871260983714381131008565889389526705917412579558019160856267628516875493544007155429645825064402092281240677832031772905527900693325899342418407177849447085222882852501819830799428701366190680901886011314255461945349893104452995722045371272819091517339310308291528583010661867819613302369766225428014578458150889951478725525786514601381794591441645812305439250824246614377187379125844968901891791428127298060959172188975876337419721329467130811963826678466084131298332260922439565798504660604592374989289936706464073465507576595619438923816943870914384383422197021929891984174888757970518950880056052668057415267526888108716447717060639062747939631815268611449910410714861455855807120735599038627222273128045441130524853780765526502309615476425190765411717111121216416119872723129529475932059707051053743055043169807930345155679586979711280726836157956831159901955050987358874777503428011142342302236418356496514236953836952819337769005434492371644985127115297905319611673035752400305331936646596400664469907132088256741329724286899269075787010912373182916409265514060621974669618954798441823331626262636890424866422713954197912814079457993383589014547446537955374947465009778021567559001282691526622111551108861112440345984579290513023845484693393631453884803415310711335877081968216997915948957443001782429795641553103574918343748716212065508903535867933414679980711951334317838113153608164848896829897786831363398880392722516006282330401890411041127055279554380786261336161552897433717020346164004710309782407752795260435855272806090686856659853078437226228301930729723683533812705593724813246193772618547687787564962956492641863051293900333255879486929221524254889274078330782135721098643801764114138510565832947193958170900579525289408946542106272421750048007402555256838872575916706516700278188830281997795783601948132515288107537139373010939205142234880643926546498927232334751276377868307296869858041545205413776439720722264792434926468519779178848328010890367596843322587387683399036453859262952230433647408388429273427534629470894297749256093682492298406125031053671184244017063351540157473062927660289993392713044701747446704033362340002003910942301535044932996767446338830759371718076211153319702755639344542110246716560226913988016738443727918171011237271096605650936875550582209079440356957406368347046368789892182767574291056431650059233717254143926869803014548327753508113146139921828322775689332202737492374545230207717850060032306490038693807268293150095629187130552761551681724280745221768887372318692693260011495233171430126651842871567065472337525336243825847228009837255072702379968600992667346997402873878887472769738594541503872847840633303880735409545711308049141604278823704846990356952425657967787146513575962441538193087002744895856619743209671020802730890400503058994623949307599453489706767606091030688755830419444390107359996665501184368747192319137469259099577248788247847126280610533427902467981191260840128411387259400771803735588538353446876363924420746889313061274697561517762577252076350331390088007481392524447056587914695891759949067912781162104487444666792964545663410683253956549377079291071707300341409456858213477633203282371603372584788722212895512397244153481229395774409110625731432595748353210795766338546307382108513559957345669121732349605884872659966931431600316335763945729283279484596415094507321791047735883476925750080170058584087767443690570826282410594928887410818325538138039617453068007402052192576381009994470099276830814915994863585533506191425843572824519647023136399347655210990488808387358868559329493276922072127564273635132165307110365537500589949117616000392949358504884884576081595743568637338273356887722225934308185652669806526810428236655827323177409846194943905205119068330045740705920331701618767696713716179198957745792995403730682744339586873749830340359640451501209101621053468954354719427506444143515833151133436325678132943927141419699558646817937444483964436589046031522990384342076272574828545903198968099910839646640583287349867788429938678465479675460368671507305883337405704791951466811089535714704579164798846576120682431155240795617514813849563757794587652218553383050935335250246106102231487641884339543013437187971990579583372896546905619009879820041463062252558606156470516589166491781972260799011017949781830640999142377111528432526475341610309898588254579360906638264225762609931598071083120726668418192776908337017839172399810231580593521777526473937440563467909050505172136673881615317233393359790319383426689005140051480280764115469420618850690204477671798664330715047039174867240973421037929603834245318314315762800936983141359297954667734760361143275888332490604009644452302469115940090167390738812760763706633206312768431527754420682411470028421324492493053988224990548873752071428015947237216193671034438768670182392019937735879344540795899408037612805034627920640904713970875031122747639947197467014312707387525415457977170607164860808128668836950602182609977672911969492515135113635955251042837340738899178058546127500012037627103142013345851219387335380106589430711170710859548137612673397973151477820589584331715353064647638912091638042273727164905547836913080301256186293193031565212516018522353467096335295992854096892536350798941826467696481518677578968531283658943809105366923384863604597003013991090375683809836993040837421698844351915103910410567798211545328998012119225999357267603154621167121395402033883245804215452801028992049142183600477923572876274068263649614793689588267001947115327578925490073246701122630518010393982485264666608127570540920958521444479611557691582232862647378469793573777197120364268808183641403960729098126339153593147029539767038803521048274670666371486453095096223495851133996949122393188655965539039437062673116139073497318578094928646122903578615234608462292364987680735036338128251743030341794212313023234808271300783776728636010486877646760680922168326277118205177859360801902743927797618878301111280438473017732926482079327702257476614114464759495893177990698765358556274730578430339800196492422239415014997998127090551166000022866716993058528317933167440024274737620249506604981481324019915464369596862568917529391024169292421811185560247725669429444827909520207620545534217254914409239446070463458468635372181062997463316887797080397436038874479748639496144487626282614794873304475341844475026449024688061418141133130890584261222179830576797615895823199695544222077007651111086574439844648085443983824945904466398091609187256667311355904897666921092363861872104988602767976799027555917978098753181205874473354713004621034913463682547569826616001506743365427571194987464444201665049436409696223646201542224055196375163577277133269833804666343457791115735441221089776011874699464931397832930628344319934402680705036650957479557302530274526467366301773225657767880232134873909682911294029500385627284028905305229456165107243788401686966226173298700235328595507077567462958419145117628687088334357943491711238306953965167216322917245644824118899883424606315999718224621718375720068435093855333381659752313881236994950918061672891149521583209592131019606906396925594974642666637671710047885024703480759332179702101856996346044697331779951707997477255332774486254977856858177985657774488613354329497629698474986644077538517999022754285445837818478309080668915765059754950806140108054137925804231627618797887059285805008292261574203107109309016716056856242476814215023271229932614906364268106127192858525028728463376033048363654459140060982210753288936978520215791800025978573031744708106824761985109580573363021317689893358554307605828377115262111562201155904052671850835253527420083457766264886314376813694985349072687561380665448937858939428186644446346556942434463604754029459673133638299316619081105493234557504842135795203762356463484961992396221226937773753366742019030349354162903758462510371565512310558544110687307038021330368115635970336278795323592912556067670118200322001682796771798196166232830302849225262417629938764089525338489687796759054573836277443160152127133927546927982584298623857401666931192514372549681720749607781904392382361675087695097938260316335604978140979480264903485036979401641753627045349625459767887331684031678106635328006694513940722899391164107076691473492722401667861375050597158281873977834165008644034317691896121146501693958568469919439837537367813340779237132419758083778240898171256983586692705043299759803727568486079828623036979130273097007502964242747678592882095612745872767550398156675903710469657600197938922537404900426283454070163292207586593059337992082008233795166325771262100741948716979066815495918376247950703127145043482936568524790727722899141847118280260488136599406848026165890978775986507840359064120031062881598582467850543626933063799638138961008711094002704637608068257028960632530819941102713752820384543520582780708759473803649540434455881568017636603967995752420880724090044193826737951981532542861567807774293162624626309806118213997782280009589016417807903101439327044074338903904181816131959784739771691728240109473003732630359017194421636068997490950704281189713506664338686762053746516563538474017096893984530055620228641362624993101765013128077030458248492442311089321338120225015762541489092956245628546071879025517755961626261493505193878252684326272500414609168254182844719511216160678579074150819355543965432912564630054121881457414270993589815505778787231172475216629118571420171152708470688506450725150451353578618225324954017647719120197717624752217527859250264019795739707240553443585352752975088904196062450111788096140044336592480382275607780089044660845986947992518844506902300539352948756499065580954598838778711740898318091716064055094727582137849296256582429575992525609246626934180229766755620392730215704315975113400668119354101193886299521408514867508903404794047446720629212155004132690392782319431321930745868709876910675048554421894467375355607644790969731268069928375093545299977353920745450040863162973236768540603323434615176126178291076502799620837104069201552124605201821759955367521523465056561532384085337905210317462407866217694110968695015424936228854046305684979361327647983904828717827418697687702252659865758143885358266690205743348899802564037219257066551533392958350536210438146111182833350102042211263960659980248844698833927939387106314850640196731914745663108686582851748977783301207277462722171225247572054517519255547415129635020572977070599840852067900379030566712987022674689068348883402847556917018564883939544370548030328667927162447152511717111396500676259370181762797595077800802513514627659933290728968590507348966585466112426270432382073899094600726443405543671858343355301329102862781977589146651089125377306755600944647394136923534390903416773040032692083951696797282324077731489340263720700258876627053184211954062413940048974089397772959062173405816891782470287319655079555136157815666390026254516656356082764309758899923024453754426289444322701947557343978951777484881533355242102520838145340497763504889460135180716884800697541644028467800738268251891968381759076538860201063216928325215099949654717903304315852468913394521585360173309547972327654914829509147634768371515358377391284310831265587265979259499602164136371586088029882061566345089575676413308237335871650889001573184122086497485849758801013241919360458525099940883502212820807301011880055768419579384264278221934188988092720012537496998968083557830425407339563918811440910399188456708039960240769600235508252860393699845466502128030729759462773332685197709133682123284250653255940548495280199986996438626279890865613538866103949568429738357213935876722369726659099862117072039802340508069572600002845380404761464261790701500331187955699437729388142430434191709695881399392079872674720756691164531583342030136958409434086353310411157769707720640899189407212256205335957472470490675682994278085178141452843105132478121278676946005700907404796676201354595092858784150432419419256312418448981667417345923227520990311796093473827259434645792593313521116832252275479332349264471209621933559053061071476821544272683867478776197073504433895292342395431183353353123990644468695669833395606703887659098199742900454310640383648020998767634895739608742361024978642946597359661755435923744444835927181005004843946285536512422920507155252541771443713717841459271148076861189610757147986938543756913629738964638776795541036144004332377620357231121750005747692906084793629755397287201974255093145261544623954630948201668455789292821991517092190721983056109778298120720593337895688821468746780648086066227272079615005469631903944028541159087174857215825618968218348393266719012413461114535624353877936164485966009881295844943861760793299279641041936625007080451596801996434919957242320082243195814403284955074878124024498162774931042934529768588066932759599932000373282851676804396590583373728346901576455203704594796107010674123318386163137955015816774468418343562787498013490058808339524487201600304323134610374758922698378642164627157478190918558864369035369905294843134743300874218576088956768637745944573754607181343310220573388434797132961408544880808369003983914546365505126835939579947536505704236019134415904452931084176789116636605315812952330117189898556720584165818820772494374547575462581104734221014746051728221900208450877376670268970933276924586890458598093459491774139403862361646549120751772919220750446244098750329479981637816130822003130844132066910013541627113998875402767382283869329997964030360706652695154947126880558381933834693343982103592555785804826161885042188982366697411062756446930270526270339509355741853404505614685913316573463287999805596181123874352039923107164120641058667047901999756194833181451636893103347377532200659308800455554237181460193410661646643370094557542237751011830912429260553349590744586453064192654898146572793645932384492022745811244396414333850035076911147240739150231043368569180961740051668491321141288014863372788483016051846307380445097365078433501948489059253356168198012444790536813861087539003602102388210922490685816079856518271895944598169909684473048012785366979550626397291308169153689226814969428425997426178431192148328881775489403100252728197949214164868979415421335684890923461478515938293404827868468522920755031327508841282142053561918276094605054329781160299409096173174470713902944037263618706077529690682330567796695111015974335122916851658874209973923848658512126293995319929511144457374671801217715452423107153526307043729641265418218885975527049363242497539579737002006519734400967539016738524565071784113332137975169287652409128483388798777891917733455732619840374140989059350530371228728597313402884647254834976605020230233438795312922274556310167206605973652754834747064406246149063674638795900994502690304907598491780325735073652999320700162959739457240702383393439474765503764704127470659993002146574390431752321492923216818131506466738102448744135445540657424440430664696315437217791674333622610711651113533881769717067476116816212059327603680231401347988159009322946131001418303772518363778871798185078333705205540929526481444867211245582467961899334376261427006025382654937016833182103671613608373945947684320142955363127424877934558184957120775725587577003102669544310630159126064591163701237677690069605509036089374635172249104474776003743601581742836698445006652817317042140200233960717031328996274660031513565253670203791996788876427908778788439529132925817264438549479642709187793060899920986351890540651238754112759946464787724121429155224717228503548384301019788341742977588423734338561915667150012945700920327109472866157819951383641307011058289496836876340705765889033090845989838011268436433088543584748313345191723920625623822882219325737682877923168449582960511593840433523527292524264196489466437018156868908578921561597661882734989003142329248058913209663112333608866312495588950210876865961125441871804000834550244000320165842891797169978119661322632322542937760575457062003256029972117502403403102844695009927789284796399147407406827460595112407539924662743826594192830331507234392490627247320971424697502142295591662852352592362577756973461275547124383507096850137389506254258008147246467932181292893457374476726270777916933816542871751182336099050711861540263110487565053977084542046059225097584609176575070818641497431705106494792302230393109124694719733686673419163264823779346554552937518178185960018805301359310424252950021215244844391841428336587352809347212988268993144978729502904311545601004986422655494316644348298862402811777174413774723276510553649567177100473398899003941665770894560801440339988259759751622606980003792940568885533652077785967002008350838022435615689478093105150002716402334772061303875310983022132522599576965049922879867784444137302624037820067660207151359283463092750625020998433797417172362048830016481969185525291244694354520858671780623700383200359835816372747706921494802140364904007515610230880051849611058880161106357567399614475208281965244616777404116158210516016117295480511298608277607009864948693328205565700023349171703009021656883331927992024946448771451703299703055142017423460293326420288535226221873646533931944912176943437634684727357587233074363324743910071879864493373218026396542690091295988108562214965359982611830985655029921848914240969149204705467809657699537911380520390126699644083308422982890188130934600325158303835766222416619065366135217700185998674837160853073456187085780940007569804998983309783376290230182149608983722879146970705948978903216721861784533206064123420155506312811993796982839043464359313476864600352502755397123173332673802636115587234241810627440270953038958092251207400558805564162594687228542987251602557059369390897505249780355895461089450481127986610996982791028271904957580084348770116165107425591630181796618211768410502362287650814187400373502204371126357285705208900068089438432906113614574197983296167030425362199182101838807374072396672762599556810944328363113649937905436495675704678126971342353037135538962668606936496214934158768438880117881786031691753826414820393803690825405535297990013544075007870286591424469479191056801988744760612495322168442960638284863157716478678113066014888259858049394242648375370706549773217807881932380603719552326871795015534340870974774083079013671954252916273907879289405721326740579949688880956615618231772680873747413351347445383549221564355342576385678963495998032262674697172126791459678384182298735444553752400421902417216384880936522662659115681254898001962186711028412261096162067425798627228565652683534444895372850287235518346210769479807302292507638708127170799711203775376404837158243893265419253529062019729641418445205964724029389696635947790760347165975555580528625182190035704475912147192268320731765899413438450311129516219784825105744496916124760298732511065145361606315105172355241969049885541689813616193069091691107116457885197285226964241068856502800626111241249180672086918548367753437400222389606527146051681361961308534592714136079590679174507881055348704626742464436505077179212534312778967773862428720750841928880361323703030676509211531048530401789265379761492656721082010300105183174666085711455681056998699110995465832080026718888200406151594042264452926882117883155592653323206298507788163655661187889988244881643940050780258243766216851332171655569067363533767219175605426436286753384551906943610450315366586305015372234792206813534655165695620918016665152859135436843011880781369084652413904045412785841320407466245171495688772428425882128288793341586806448872621704187294820497207356147678465495131168060845158517977834119605925053018014316739176661897309552977968424402759744147426329898668030228854751990468705948331276241667684730595161973496729980633865016094250133701578622101879099810082596030435249076672251760347277428451298210043189838950501554020858104560173759929389058116961816562316991960292658149849376832146678758961976499083867874066145843601919174347120200358762886361827163639531499628757509206670288800336541963334933375840487552212085132575628387526118544994140152978367146385149743502357027170330491880887800273537885898635266707621990200502587277164618175610015690692475967507053611127101871713653872495109154539553536124528806621825994634321892872764789946830827538199663680442782366568392240830293041212780059870818313362883447574248276839157789121256732984489415119866398584107145679487655447683484896383604645748691938598723057798194416097935133338534948607973649718241775037385070489654748226473710782367503892215528580534524791439930600635838477447998643781759712143223656067598560668135908229420681122665258371602305244210500611293673270881134745251481592296322430210472248099445754788820839367198892928698928448632730314027426408578975102298421021030141516704012111019651446555519463646916178824270824670888077792303021676707237044799179959262132185189413763194543398613194661412431045843158528902674633899955370975244028234428478525584050979049331338238692047639339729598646278717084818533485251225234224022376702490497967036501630521623942666456282541809043389386288318547804953847278500081874314005042456117245449592390182272858352716292893341555181426508356385040570586081732922697949273839520147655129899840604577998099238169835995272218155704101817334091532044151956675030395871914611324696714674617411845772876805686738506960008728454968477499255461247074975260352129705320843154769704215683775730207920201403693754506398735632744977740646920457221601644635443091607500098211009109651563684516238496787047525128561531978082671445188347638445068660463840660112133989437739202767167896857161682646812463781906455647477965691588749074385003605282948293967963275858726849522215522858275015244555770597066143069162105896761712126535318810871812116706041683129452397085431004349134622520056747159848299327185657956286715329749325219029926222324574493601251642307993794306729974403085965913281220768183518341534693267738538024048330989850120102350438226538264404481710158467899355308374992784163970060397700682060106092623241744127153636243692890866201789532770003592455089608196338853558649207664336513070819917697096979027589787843028182625404839959472434413818782015977552816867024086730256429950652154756517535486829085615969371122502414469918046826570598509930528182319462110832222645628492415434337115253032492653852249410960951794817200893985231668067530059324308876310224813190231474636698314658936426716475125137665917699107850227101763560740405372896666201196240974124406354564081786952035017786845701930401673363355095856520681127723484892190329018176002952878610164365659916687398433557497655541714321714124879569979475391979823016973067076834723786874315257015398467132062103376680482913649883827636435801654525528147932480431983841710339967517243664265101779744695005209573977073913728058450190936774443026142918073031230561354041667618267985633632793309293938623697131096747211023551759972508039496033664659696144771341778350411646013125206581709631769693668050912644515556159170110862109942966623871323211572271056016046197879120664241822741005723858790759793718210597918838562851749502594588194207846239733524044431843459809921676916916782761911807414743900505749664077991583792613583757985997080869872946634257650768692433236950929553373583298894060685771440898865361917798870150027587711263968042628553282250195249198591850538557030373395903575216151423021870920754869511591118640343252982961891878410105162293398041202784358259464092882943354432116219993728677937987849565567447390723731789016345190707976704743768774042042187327275128769780600669055121281762089208563548044836237507836941682799585301846481666260617404163426806027203538757557511691900124456506643201717809575557374322690871895056799764501424924805955533384260407246745073798191461839713330833934890372035944251675694920053171893235992175664411226811617115602961223314685877790126632906461422174982081093826768793057905544165400414383482923641267886650084912799847056609377719089355060262707123582376931536867451202049254331650366764636190979319122026294762925863255384321085231445724463385886870406294426667392767761986232349360590237091230685558660626511011519857353585013006207780343073996026124525787144527236960946565267772906224430146378035980915384008150543061820546115901941747846620327924722021823959833011621115860463145663799559601111952572117135173802469426079179946344752519830289305757136677899128958933312489454270907842179995225122511758152956060669521635020994842965504344191044169777071802773913992090739559282223578744757566685327338262532885309476224038000809588596883672599652146291106459006520811962383078648373823675783551576410928135958285148941179366063673453229179457831554186055865070436994262254281530617015011314675753894826251768349539125831947364490915185559649276457468816691968179941853510226842889042194235895894923139965536127743252440751152655094095728851711257505894960739412302126740778527463604681044290469610191290978184034409629964597015826657123796905710326254050909789147618596441474117716224051813908617675186127016758037428666564284973818124128297418622470103851862425360342801837591243605332217207256741507053783506090330565165791483091375090783072401222205455896401837363795320461886419302032490099694552024519414942128320300946591043454648453415840760498855157963411960929771508731982100808696547274765201967691673993580799562479588436937769466483575479189213000722217017241324904675462335871326503457354355884945808367223265893064601977577851345654914064095411109451816293392860705361095951641981837382454474152582223886109567075168603831638949637420765845324204996389960744096987072915467436613876526973543081232224534940684090895887179537048518040953979960753194820358287957897840879407516262556669958195187370825416843480435739691166182407816898140030118017250675898077425499762399543979037027181460066377399186774843596075620004432298276934864760583236528048511387692026480664537258166995960753915589142193507918248731122941053588228676938775694487313762688296682058583867951803952891586381869489028505515624035432266551956987239071371628321903732207918725923136186454646924294586596900421327195446687244676082637317635363822681546910917140764417192075147693674756751488222016554007933121023505200582279443834533364953319670524761745423771745089214807250708771532136559299342146105645261907341804400981302166419839256088669980965509612702847114580808975343714909800594747376216757012152566684177781842908165140270065983580822883359729900203995444279801805295053771214931795731694667041748664545533181213118826281353394880943731344230713489028376024012441345182318582950731283319564957011464570543107000901299575166281152727690188999583260130235465427537754812011025373464608233382575018388150110195614318152998872688044111348076758225907843211074758840563121874400189848923305502281870341933889266891984348054906548630233821030090345834204560443733882344055551231875155892260248898948305483900433761922911618736629515969910976146983787085589350481740220184330876564645791338578985355273438602671013484415489626657148824418024009333354175828465851954317597964714146839237610783308647218108952823427783110314680830376932598956846119781412530328594538739421102645731261099626573637439927652686259330046903621505914026117392714336844161312242235957887964522273071024226516402616963553742453711756209964186704568352966582165375158353115014614532366490426118831762545806752964428566690331037675066509169530694492847939072960278616576216393596211161218184278837855912333814292890905803014836622942287629029016428506988078299769831552223920158145147925010378998071717784771440277952438472864179902436347617322156670155777724482957394362880613216320465135302437331376134346463988589386365688632962103913723922417327249462011654907467039419707714951809527013038512634608241379869105694926723025518907130439482804505915121602646071798340374476559573104535924411091513946645210419188369752196650298950915656079574977536439537287263667240324519945062774094395570338948660467017808367269569128890188799779658790842908998566671051042502200698253084895777921470049222992085496972086255556252999677766300955648282498453019916671846713738308489684736804579549140064035285238797651610224525655327661846389715029002960951553020377844746479408318302836085128563304065238682911778303435941360375455242641207286750611785106438712103581720624703558460691214594783618835781297346659665257681669479495230679703411878900784664658626170450282254915112900007013493197773278266518631405668506534414168308431128314459795498071328494866581373532350070791510375675292109995466799538673591182158511234141306888443457600974501811759641282865427174236614407580748960469266455395751024056497697659081788341637746071202109836057558919229195517739357664347676875180317722315922127694471886126085394470302280011436880144507110726894173471313866438675270068213980984378169357338976182538543437666367857902424766290975571552130953554830767841775404217711223885749021184123408024138633068059489360263514979212028092669858508821468155802631550422184462349227434301282387932092805184435906491071699964243539104301140801337235190923164443662301135197286145613619810823155382138334640623409233980873266873083603329839299269578733270298763421768339411704519132689026498007607528801427031924124422787033854726986583359052707207071614208695003353789203335771210211294717331893304456998774780665122710441568113426258680129814148887912659410875883047993515394337808312604849869733629895466184477072675969663814127498172910476801155926756380692730985652349286722603342269159568836559174266530035674076872516430841630903844290332124286628614670534481851074872662311382166919057576715863177719804662636096556682962442525756454108883756934992670996074775870673307894166249507440546102443112138974262165034329432302356676791688108289735354714547419334234391767242279165525627834597925682221210531879663342577266352693632427131352856625928849147053155475384053216661966547128651366467884409900017210746484851310769486309691738701923216430170899152020641406630776734470442394779910274370214303634127282519377981605861777030178907408938349520619044139079245650585586562291378931705426556990356618597558839842645567905277718557474992576553236365359602953957056726096841346561952476491719791788262548448188403462769604821053778817870623032688955759418241657223729602633348487461455114887878684063322016569535141470586579408681924443111084226951107364650463213796398450429576821869864750685972844704956846662479407455833233470897623245595170510424642088656907080479048605683412071193792541064109281728370296672614674683225829597194918937790078183464593254871384654769491354448009789301393915956993915421031810496098287280910526959049136760946371177484481354210257975832660275935845152094006993413426447027309210922360427505415177698377395107518782758942909995827354033152374497551929977405466182246086587497632350303395286545577404780035883408850226710175924954275163236628971029220308728675474864286874880596441511780063701790222249938866154837909211409454079022694110213058309391865144348503796758114693940744413888903465500624843076335805603092338917769257616848673697503127019033474623132419652718084413611128345903194117300095385981220431675715935112228420307810616786530523912175767186235232668893353746842524519006607513351224376425224565629029464014097534077772685460366542494639621122107807344896907121111630491245390675174856408341883830798367218708053508583858619106105575455767187316072204737399503941886026158198642872986612254461735766674343099940436455778285484569197933533214664208125214009440151203173004070767479423498775920780843305082203540800226282373521258939640731801578535421109262282104690655905904866571535141102217616509121435633560022068563879580224441206763401876905867104399046836232613293956383760992986025180522207671621869193683783436159812015065477972526946259961224116818607985376449708271765558188980420739612886666428197160625136741520268561214097474807174236016634199400124756017678042337248462005757211714641905717991585577858762254229356269741088433919832781816199598462305089636288011042878362769485611650176855329940509688439328256969305925030382983264907995709097202988059079434875138051580080346837550956111663148813962256886629150331679312110430538703470538638112711688270789574617840725810326060257433055524120926044294510619495353337419675886639784989717223888185420862448845945995820126955669234731326686635213528727573779253724098173021773408074825903004917069768381654441830801136530189215751900878831758474681200613843168938152379706400804760123659192735059754402130083257310578692778031057873753074055229031283545668879726573649526060364261585549351278281180633946418617977160106345452465980583645368333635771706344526525297418321498984361707283035548399515441315293171043525760380645046251110799430703985866934215729106571658594028737327315457510698136625582594954319240999698067400745867050778705994558977031282291431553605847758903199886122878271369140025823701489725272624555163840689374834652535414059259417479958761645854956997221547106385377306546860036972715298887193390961657078215253129437662984052738635584136402915074184022623607990132760246208517549186507352696527522876953835697440678277350851268723271824294573165481765319530958033027452791174187053006005713837532065795748610491368380372890920119577410557764324129932214728204441789220239984714765732154964005838764876937118408402316024089976397238592167643245553296736222547905272560677167320206398464043235082634150986113705456350858758234743860332349948933956305195072603730342449936649863024048480047522178250820235127812206642122438326019967420796382496179627743034915387461031339137934056004774251117497018126945881695946326570328808074781474361476511580359876753446936579126069702869695586117790494335179360670872062335131531678488545996392670302794656778284253976074263099663264284369018439338182964708613299147504143009779805612831737783709780713246799355910845388433610543746454335476069422115274231799230624101090806868476370915762659411652689352625652435206241314163317811554873196682380953582626298921432569527929885431259389133442739824734392677124190586013749690267163122538555956691716756958248527622291174864720404574072321584924782087798385557165888057145387921963961843764362953332736935477698555805677595840010345071520900997563861844750523018832118850125793364011671663049523943534180725242935763544939974327194639230181069076854715342664345413791003243649631983854171461509098567839087197433046816811340446195629398615331860211251184887217954369099413992859431044617563263943909415474961631258561235982471293719559664553674745568909516183077778995356160797891817953930796205315309159581298190457590968542730371040813768849206465108142661924660651595815354623023175318364045507205198699569987110025661275060925323359698556540759031598010329158411394373085106478118513610655619108377489139758769094306544524272177653920068240518847132893167857432009030539241937005526520184878108475409754615142242476334176180346865651164592834221198048242785850471075038806530460797620981955295568301702044434671031295729201681275504418449438182355242334079874969438771849628363040436695657786335194153411946828331128631976676526150414237241203812719231143077480450109007720353020997394128799659060200446926962285888937237886592375057145706570650482648984449451470152158148837509307211549260544567162628132379328309536479859565820339960439986012237985293695918601893952320996267666897551035514029331312194039620533875203438173314897601296562896325110107059853066538955997204423115409158424408548517895449165460353664101723432395330038323549848050648312833180467933738728764058723646904946795407288963656062571634564509884382283917262790220623602579625640182832808330345774452337422180900248719857037318974334241239711404734302918158543241822065118254060911829219769199408207974165277850911690930470220712344686505966879458433813330617565895670883678810977062258900284608454293145931640595510079291796638148652229059230107232039894806440760490905955325264349022163530890361016577915257384839231640402642495889742237317078008529925513701834802711602922341621466513785415836044637690706292264916719203784406725073794480713386169002709684058824943690373639884948036349857339422234394589885874204532836763805865849248208243933644200329477489602642442534042674263308837100595037196252839024723692900422153398816183466459588545192605283103568820367674378507302522864611857918414714047412989479901957661996311285865271695644473719776278758053676672492673821109766056711920783685486703747715154541172930709683389208851057219642219826867970743722457106388262915178406469086283503495573148790872786137247763402190113725183628617337298708792949213790414714855236156072513191732142323447867117280190166228180658957425657004279823807443126758773421851503523704267226998354454030417500827474723130401375477951554611852697797669172895704230439462875173767160746899427261810230497686342722685250889992519261334177232515070003730310894532428963634559181260008006928081099368912534667943119879000835324990701190148594512860619748660576371440034933721938044615635084370087857561973828048593888346923213507292058694521493296436790116029197720033199798383511339304181097360496380207814742784384079827243849220623005228078919651337484903173054621829545668170770287540987413022413482330908342426630965960681197924931013892901178901876558414251887934935496294681846000814988597258205465642872479100452872361187751114791788721307955271395313507529347053466011037165669113740248370137996726309460078449022136863737773883486572796338739760598170158261662792443601092486514621951142969814542981488580974174400151445793004565687433271584593721504806954400301004933621816599590027865101855607804174666831964854711616081761979173390174550076631061549408273937451309400748063479087580764823978276737733554382849632272115643652724674415018105724252491398382686286975325479728890205674093395085096820158335289927978761224270967718693711111286288494031447778923763426791139510025367042424120554780687276592390172529865662478002980604694257270905839330271637483957293920419175702307387365838497449130451203356050137870572102160897543751183734536212853560450298780550309717302556460881140303442484679823154068336080445652095356017507841091806309533110743779329265089724564702602198407699336100790600267523744795677992321411908972062494635347362893023104264146396558835815456691453116856948281700923892528681300781072061351809111100134479679010388603519601948953052193075606002574784785080114548413837179171302476346898222367210885092133794299781434048844735304999218780657283140920635426692952908449381935004217164803180122402423696048533760019783535832073642312599828320942981200788436267102269043917645981165264391354242801658958711803955064696636883086667816852775883399989266941833823867430772123315337499706575075656804237375289092262132482981182102342576137216819278803981911357381224156039826560104060378917854641189981367167561767377204331675602248364651439661220107976755517649733435177196236538570273132692896579829145137034343974263113819798854137116721711534130174118048467121505361714549137349811764964723386269049155552716868487275946037276995258582787032563764175066359665658409549655532060989332484153089914889766445535741125431401558950395879106969923593484263798435413052182464524681113048379971743786800686975246734998662166592156012678286493745132341682091264201140567343492481822790163858447630306480567236091724262586036725816130121607845879089203750376815489881924382782468965917638358477025462799171403348805830271345391793255264274296320029926477855417345433914485665528605362916420525464359044691842975148140868726616768827806349551568119764617840851533137461632812831079077542057323926361191193873479822348987482464006963296056328272671235649352840436412053112920261787063198011092080560802213341294335675828322919654461032449368404151726877001596057796140524403025424640088309474955634431684530144244318257099458166908512310177535006846906615650850136846407756454248494004483683619801909037993441300961584539600198074669012570398746036587881400926906769835834115950795419374566119769571408254601341577455655356260559984373969626468686411533215075976607594764018006861326933774004761286114926104995534274756978690518529163426936558132328673903089421770491079900295074863838321496252728380556057769936239319290732848444866654492132140436032006535105640134486737607138342119895859255994515885421432720970916394372238053812166220242048402260830406712057469973537662670253988905673218443000268090006090349682177384713771104639974803072391749197083215173627671514965014634027611912634566179773397084241491708520507243215261926616414087323419546777844746214102683158668878598899294673647565789276471352538096286194084931929809828197657787927126821359993075373000829410674254083449683640178005034720686113463668568671812813231281383658166577759742836369988013604026822093448341552104322283719768927448046473595202930192330738563654070594862255953900198307961468425326808929426853499601522015849122746192941752343358071936089491135732411466624651615737004160995731141198182054484511439714450323537942696713801682688636035900906235214337370889659348442260718756004500799122785367557226435048908091843804379489764235364571364344047572694197628371620569193115417864053677587425270879176651278991977491291875756871350959047106749156524176508582331760817456696039541956225629621599472251225154504697257996051098949591285575840315191256217345563895075495554518165980309621297767632393918520116869693713426819129702699797893546709150306717543489389906398278329941571410379327365650669680124394104183438551192882538338243829797670033649831062427849725085718650115628650797401945948438078122325683081929003179590800380621057527941554191036315208996146992657096111740860416205290217035170216088821844130860178480273298413754195044663209317597401072199702895893475052132790977985068828517455386980056501516976323298667086736021999319518814802660859306987569142893024790639662062791110444470354480089658179210532563831992901227693375630507153361858963492850976932158388492351605083867035311278212278168313837887154575845334830897602910845800268168727231681887261280043714169979353179983000630696793944712638248701277801179024701698758457552985241581381873279894889399503583910493097377126443950283468763622548197557919915794058641670280569879961869142293900620340097186533260568386685471551585483569002274728499851469927407635427844315659547822376672909453957830247479435529647264965298043752653025662486620743359209239366756314516780884192124043085920009669498766492063816525119605545140839848145273667373937322745114311958935667634840479850636553047104665250553748634063722543459403746092781802731421110315089269438874447843986729659022667939074948817121910746584231308837765942805539235294209408983935552102838496706787700856219902721533572604678316773322822486998172367259792298897314768443290109483728144394244732234364583897083751320005391465691496030849004478143296247953458136766797497040157049373493649443177438842688398087078917011739951311147147474012104797210189314763409276707113559845598798012365267383686585345470983752284530302319312128380425023938610118248472344581949820636406112827115704743248283943620969766918907027426100670346103031101057039217953476481819129079834933207511713017646472484072167747562195473341074750710618474375057871900547058999624651658293748413127530716874812364791306251289204836535080965855039113633837258598702450276658697741393062925989711062964665065018401684385257663226514912159399181524360213424664904687238371370907050893819736459519097771890030980381733831995615634334255909270891314128435318842868825855216497842194753898272037335579594560532969261616075905140262580053013183556142111585751825493329152130500170048319121840226940143496595219446686290549374563563423557552333371466553278078558487781534667755246310507930145177424467572698678989299802560756763768236320145854446856804363691409271025456986162996267990648879123655766559122879407844062683686717542738063233334145563348059073577582217564676603333679746345535209799147004362652168015933510490797615835692134792938733296262922118388990429762526287874596293739458226882303573983883572714624963325784495616141554885609471951777038369725074708996825595315834693448391400798461815550118115360550440406437271745836096019141327609958714178793216383751507535496649376559398632193305213920608587719278155376558524245270487331436872273535911353382761481827753494743605406297749966851817147978579067156941152963002207642118415657266455384340695540925414116526269355939579712228721521130761014056843067314470364626468071749268504974183315781730767664585155955443405533732617052671205440890200039326282101547406944139041299208180895197549701710721245711634662619715678477690186655472840393076576243906766148385043461100594396223740875990922629622749082249513542314501604987285296092981772293200158229380111737499156299525963337511400716490851736951369057201232756294864862365780214612692315730165825808679743568366847277079780574534705714623930222860372991170982719665603692485999964938840850451801103034718392458148845046421439510686727900429831005568810139954342327771633510629993248873003563535313531182245917696298159146010750139764438982154320842339657460556162721833115458593145323307976290884907547266488980786255209544677666499615719389053437646803760485991754966716129774135862533346559268830171616751399803795264724899118590958867483888574075027103275405295040941649740011645221344750739007619335685009166237810320104503469728973063968043716661362765932150052068366070648745259008136429991501987513407439284360263830570052921329139851132691083605047409313821732725172638744728043488623869921949150555708106652429720574793288432081858219150716432887620007552173754591777206862563506462510335877128970980268686713610158581206751258032087543052895809647158653626807808153456168209337150954692840669315292876802246581725322693620929532023388100705063967872460173523889883213320135629947295479543237676996533967742949649944169286935311533964140061092453349944372136265428175881581560449380843098192457140109198602490236835456602584662590081951948752835085831209888294503417767397092518381642915880141139639246177356732389497441118759512481748186193161891654427889052052063616532872929749289206508045849610834864944956211528044131992929993613104519853676339241583585104583918389659287316140403370549575349544874606038205153510788354120288797453305320733566081314752820463636825088222240102305107309912657920331762749585124464308311855223133567438833654018565203482790339928499303625499400180262009766708283728468982355482417351620113430917866711561819142364631704085187661177184469492312856536639662777501665447483747208400397012212471518566893625258420094786667127047026079567881688965149056877429713856905220237068947209044715825151700092945293809201044701082738589058596653452285539343906353285686938331378142109826196315179701698291266097251997307721053791999408620985326094042150070495689046573203643533229922686583610935614809164139928292627599859808489236252711160493759897034480720490021908329428450914815806433350279489308142422386153897694187573304053786181757926624226869495347698970479039731659988393551879379749459944798189919236294204340438695297842931249474348669529944038351802942797475655929768081884810431779530375871647833767472427737493675051375338429086369897004986773650480978254620773203783849587200394098682249662283787619056682095840889489683772966951210549371472102271859155824261120437016725084384981460410375513704666036980030165343571750433310380594353994970760536777535599740435694100274686496576691204386733394004471370586455852565181228634120072556819953158696260401108861078951975450818396704753172510199433720073118577053385828116320047156704325783875464015556136701321391335054334527773510673266282402255951115038051746422494035253437760300935915735606086575562909564686345537109007637368195135188992501593651499304630350797246050155727030511485591769008229938911188215421072709770111047457547832765627751399463691177785282932732130837139058270031926911078167882944194791663941823141383994969863837797978779443061195691925986696934755849560024788395013965901935674598637040317715722532078463564843591179696518007681695529369154098438040819758342483066692160028305713572406296874295551914702711833934294480587647164264714108213412786159836440770645745140110553264788067593116719758118869516384868462769003042361851186723329954381723858978826978616260685316289917964988728400607287485082574441329795068953313405952612799305661384788527209632005059826279714344266328277113151097722049582409172262429174298239324224784164612238062960411023641021414458905870260915837415146393035103452844793911658412743750550958369184309960974857773318025509368727685151203542776893247874254550247845239724518650790301330667862644766697127606042356769824262797017565813000675255308220274925353440086782734364665417563587787814662709891544670771966595438857399559994669446769562865630037585246898232394348181315076435559056327448152261222305826051042413069381373181317262761232837695662332979420127774670973536562717786652588017018598779867752198163416633082577720809149587720405755770521686821496175267275142865199337505234493205058435467678469253867219773995522170279153821932703160014520301257770295424068021195706622506674695760369112159760568011533014090756116160689507544308650519349255117592187984690410919096245436564091174144460118565048867507396611193521827889193900145015769371760483894106988589758790616638874133729362469898323492108814281444393082853022086636438764862849557756734726461831273288887336780874169289565008122943606913522890924058661072895578400229967839152046488433250555969601442313694121397324938537889023889863632445651408045800247843823717662294053607086821865715826393025341570448896028021834401399241047689115453339259328930127899624398697849139978516453396650000867572035934617211394375939544873244514568858892361487666558634058691470922913610217146744227112131702520733246349508322844893743394152844063929523097625129668374291652171310158384902414200564323852417961082308330519490645730069235892363739660475117768713177885474848579356856115003187440521618339376700787368624314157682799776791509930641648343105040068996145794070210456181111073620599009352644251102178215676862295119256155313344093267870187750151366887263153461595224963373565096015466545680944103284618454854426683512879501651303409322271403525961099372306106156090583278126238686870087972883330109412684927701878199267823321039095857625389943519636136502660500368034413204133002275421644475555920874551328972886220956120702499145326540453989135161652979188596716232964257737178774166840960753392521048214014989115065173366633147564461745428161600909995010077154281800052052628409548688924874805944248658209397089030309934505775836013017446361683745346650941475522910750826386453917608972882752559615939707176303678144646023044109318664943064062474023398020927660551383606252973712710637908208986187035211001351333582728739077970826268260785360090166482654524080017374277537590083706382635043401634107048502768760088435935076104721860758057786177689779638447817019701399117587916699180457207179788604341057616780109182749169024789943767249476217685608101945484344585883065771636507917467321609996701924151497606797829478801812558038460898087509902286962290957346476905016775795796495417674059850251375860313797192917434383886096383391799635725434979808675561110406016982901410805461238298660463024688532333069828155058374963256536866632816849367943984982936286186089073815233852184756110982856365822611835034244821418101999552870849730796199997787939769328925289158273313783811693221587972978854801309186732150164251001067043482655689340592812531985390183492457938193167921286417344481804120892180813814089264098709519695636979383824405576547084119213330223664800816502608230479780546346617191194917397007140067754343664035675697903225950101938992973102113255756502172758398512732867518134126997551440310385383848472627697156116913900938729726448714292145017734277368157614312617859786328527104541906719268838154972332498797487787504896655636891393171190753912123234563374263858582622346655766168856867045868578427247983110656057143043127197235432729302578276563757152582804083942895292519957257112600817884017299227274444650503605754946339570161547903231086575653261749971266032005890721455436624300822686521380602829284424289276733613468458332726028102004051686211282690831760290165962282589169478295493277883555298525656333757882488608171775480735952737475125950557223195150966569561765511374204733434633231022845466807809487355327498014125498879963511734255427431816762607576879595390264305597366384823913532262503829410027078780117199795635741270008010879996440167878046772181298885833377936792575372828898185055234635181557713360248134524627336043728541844486874328458826004346184465652829631916166489717250409840848354680860983861415320297972798334823003775103238211331238249951538255602243318564791238780421612795359261585576721946158219691161952672051479548056127854437634383548125415751028015383827597609213544786116209521905117446637911367085457567363421713315996008301002016883941403633477604920279375594495404770464808515677707358511281271422355451942081508277659501737672100977488450155969759403172561328759910131411367072235115910206454532323701202807907521915493759375428801612808570490326323335628074496473058028883054251405404694039475230350634335924117159193183936455379468733063541593870676580959637200372327442014711487170143603797801524265043239422195138645769612347478119822051761254560187353222002190169736266882228008244273865004708911625450511066505170704933815822165601134100956631147687539749737305858902635444623872595250545043408602886611763890961299417830542210648799012146357833649968199036167213110307159894374910262671981891398139611531725997068322480053896347791871918272783808524664757773653832213714881574597882482816607305084824478534404834606520150763991022464040712263696083056311824710612728500207115706324901447739686347192348770602583100701738771253463339381853890569934923491192697135517203382550252666843303240476388620519568150863372639744951426222204593870680466357010282545958470351466880187819530129351341335998812563497038939311089705400352118876414682034584456350617020973164563464757673264017173637556749303520222932042419149829939189258198558831163879374377745977028292564158967645074023438283564572038854486254965253779474855686844462190720385557360838443034228452906517598067213000773251000548708390255803219870974760378729343219886730002300798080677030298411077912145021948710576635301633533543710923572780034631379026995719073537356667307144975559354428526375853775279212205574491673217224318133418414830998058055237060298695202976604310129974053872894857499518153203278148735618219927079689473082260345797873951064078947954563161297402583242356046747069855853420058150636104099912532097563211938113959599871151307058938166987530701851978413088988041556499499214797176560538574316172602351663217130206820776316274537952022767918998334842191761757380259940799067304960201600622111367219930068286550336157827095156956825400728987392737781636597785016451838738661654577340482128018427378053890756526816385654068802538491730699605998273218361924417252438668140951394459206014751907511739666359512284584723818164590487425509164281795176152865690425167222917257999976179155848377466813473115072919612887011854263729653722209312427113466963732522290112176737734959563080377612231618274665285974422754223787077004694815981812756710474387349944299997336156391928947978445733799631591796446962441722618469420472878789810043832759929809350695448867063807270616321194280364191204649864410792660260579874592758646600757642733723206743659829286914980473697603987230596122230917986023247636402610808218250507773307446453409825926462287965835544007411825652485297453989218480742619398630766247550952010926082833905993457912673690879365718037452681645043399958317208127659048119315701911313697942752146616683732265916679435640850300901420546783205676251326066604441435748488083935839189343876276978112023157055106301953772179342465528492490327787875305152966888888193706724386381027928744183358534120168712215865314955118974138870440091668346213731574776878977659616334504011607659590343235658612642573442696098986696454039423717150375839684944803584765192302454242463768784772635475890599885201005115900018079674399396096109292795715987461877728882970978573875324686277369625896860555692553660520412056549953192339427332079867640981978497152933561308515081339504762713293067349205955877151502228683174531814317879305539975323380225721577698837560702273355472875327918346770634128842540949770517816434995145004637531129309237902805071339924467515898537310074230879847402545809901913470167790072175520478575511618419061722363406149703539193626811728274463403736858806591070849975387070872564635641464293519504254771536093506238400227673865858182712047723689327780947309915849827233350015270695851370558471017744075929966579124596286758670210278982147037602832385672970840532396321473499544343367412623106880099246702003338613182217387788215072460988711318132799180813229776040797737181505261246309671085159140658236664420149001738371000833589766741767047530767687268538730866841150396129168645322038641516424256429043761560321174695514020900890848808721389384678201289272784480054189471732034237692073102266855308119539551475588094563426862555176427703973594456850754595942033856239650916201229789807630515312671826183397051763329786448196915364499293791418547988099052389493780476495302341337697458907855974983895310089072041237652604513447316524372611786799983868174974474716990780231905926508480621846330703280715086178034356953091909118368085594990896731665071020130717073305522756979924826906231855801456564158064987653577000841275719796553081387735205126201124194492165920610502420102194475570272680037275589738182307470548033596113456632495549136063304704091291306760572378013720704362440432255998025738865416322089501011091163730280374461727418481200145821976457562297433840541127179742732677878290620829368438318560954504467096749924087043838598339589946107152649723020996691976153949892270466547513692042637793869934479372803419368220058913778730099654215710744172209406220256873704700139970507570675014632612971151080874273572164093298262418480326756699251544380465197337527546254070671362397986441404053699242601242418462460801377450647204315693581333167553634691962718038285922012270697802060242960651441785043114223385247918173674395603829461347343236175841047823184192585127561708705176555104731276854096094511397072554952371281552041041293114497598959279245247701059823313762553143513662788182964275985652893385421011402320380234010504027591029462835519270488801164740194157255879547485625091703556867254250370008369734584704609816373711552458553440319587757349798244176997014058701987566030045999378777311888988323761662064157386879078705618913151920054290219672347692861301461329884077778072335917709374974057443730988201638463065961623070231663212254841419705838482005047860149429442727402434065715803303715739969407151747605525578116109923261309567620147834118593522740755874319464280718338087327522269819921204610820164085774760786705108486089362807662376178155244732436650078273939224816912600457272120657941523236176792809490645438851466527682386803173680782318671101928005812014942157310640584305570850162660807799685286099934832913389313203628033371346934585109223589609186265645523031389318778162986601391682579901593380510204239660588010497706608414012109676145621944269238892632620386975668781323275082241376437275633522740175011578190691684312222944742329752249975322751004272734298943877396950305149902506927934507602595101409325100652968080135484131866530355175091552497150086617315710368226294436157655930054795824869297278156132057459195892156895425230185387860721059177178283624421744249911445649191327752375114895862589924550164152913864911092378241234417816321298380306621608016970313523352647980772860584648068213571504908419751473206541545594852591900625413816860103085856176857463697023684322761128415946293821882265243812723011615763660520106248058829751690090408459869086495101819313035202122529864375099739618090460164740690589240404788198837800809924455257376182639266815865883954262461867817826918693004725094959064896954413256178279176244252305143887507858546613159176293284348830587760237511950894287627261718091679653641655085685148399930281058224632203416510318274359293448852671254324759923271258113813374402876469228956179072220729175225633197384303086447731998871967252139977467435507434781838087353576719166718470667201607237783678647920692608993897916711854588121654190341841507462867764088503603211535054139683533212067205845860016774898783382070578662085802259728129172506783119969181547090932534768834049857569623511951681125894329758682897757754272671439006846938289560235121654062314027527050093049288444377467407623902989056236929943873748387684613663444915119067084234304056189079384308490415596536565087010218782420886581409021667065294043734492521963647677054513488504471127646869500111454401627167212013657342305561697467085207415022343325116427906416160457477972359687176452979222536873941227638818684845258974293513086802734092508882847663833162888624607314225267565014268667242917455135354382407898600922322896690751994172535109525317439314356523144373952610214897968301609803392602940409632709231400204891000434489242467924496414235272431488213200414612453805136276487536362592218538334500940851260848820718754884273580157044575348125701669503955456390583100096211293996317619895837712434894678691882007188626954024932351284181838459849799098484182149876449708225762280067275614837144883802453484892002612813469889753580370450913555973887361259200207391478683343018844190034792242863362635935881971388372189644309030425397537752753653139183658098496438227405060126666036063767986988933400385059277777753623911051788575044691576773888385587877048169060304550293881764473108365072419316262945875018984761114075886986514723871913675391833965525456683137965401396810659796728494078757907352139342464706211860450468066399280802009070109527696939633426227331529680523295619395323266762488515933297443635956183634403267215485404611938729413057330602364788500918266487964628853597322626597246468803586011716391290028170882097221882569198744493518680322043639705337699946217498755259413354671565825442196541205201052281505297564463757104897514009440264997715819250023485205490411149094717320344475305712004313025570981652660677518515799881732895894884009545874348300715804197781984447042367993781239256820569298358977264828894556032423811283809803310345098400099849319355585826936415769692612679365407179965822635559453110074438646476764945608896209334192789704199644471125843676148620554991181775304522751893241547199619176005336213298645063026275067068543804041927809042556809200206214659699006703247394403992953759183719451152643693628898088491169285214253387041478418737271066837163670853387003212114683817984832533813579114639095654333794447044687275474904286201496250625771348401082642652372392910920862529990316281646413127829386386465970282992250937376773813345154922699655623710441561724826341263633097782337192110403866823007173723325080280849219754315215781822376347541454305969577212083156952159444767895068007340659166486889222495352130153759888506150742896348252732731085779406779048929707546603110607635456714812497214099994819013195905808043795552703622419996006236443610603196789625301078164925504818101565051937960238819550441593702331323488785238811772249279542629961683501664620344675979237971883533378892100769165480130461939442576455182683831636706291694853624194498987880880636847519970290572891107616157304346889075499452635111365056188284461280728290897284882697960736218315177006251389146642684654119926971890937386309812507235495170174822938324158760278646082159076449497623113256331018906125970229202656939813995716323784737066926545350575258506967054257918972999450668378276532954936227653087140610440518854970159028784169426757167590206151886955454521980391766468220748713900130437605190853670168508800493760340967647032780903385427454142368317944391115625569406390334074512190949520828633244345288307845810566703543832492433228687254984392635829630932830813722834244982542030265966776452053682869302181128612951851455958264924940549493615408591747608471054882893821984054225335175610811710012026301854969777027273908186327348402700258153773420519755685019844999416951756732279064981911125899925704630042008379313336923469530386027116563193238448277490551802787543116802085393822910470155351373211599934159160230613782568279307483149111396831150878329155741089786698747513679998077447472047029030043549867525120559028399754917388927585367768839765037372241362403748658506504505217451170504069788207155082878566847894015809565572143674205654883019301187272022245477952070049606448597829957329043078524808607712354898806665949360926076445442017011480915421114286031479674153998060490602461584165423976874864152329337980729186619668411212519448811824722433861451147157104454287949876682700779886402739916789645998391467476434544986646286946307321826875183049223079216347448409649245127975569024714513346184665304842985568488272186375773592674468988708168256978734986722157075424691060402723062010289357528028157943184049851121124805730386871707520433081436851266429517464844141067807793312752193440652822422363433376694555372919971937970913745420041882420614102751028600149980868000058078309800079767189620452758034777233108027139810394299610336821758546147469422915925246532930664474132293011147397093637376025454844757643352972403085066522635430400035178892824751190459712261362968370380444856192972163816934213839096197497410772835007729199847605583936318125341920036734357768792309255508873392571833888876959216283763565555184798744474466295097052256342556765077469436486621870028253528784066273275766785235584960850358657302630604997773369459344554052102441160512102937377599185612945380023867347822393017424384020259500921638947963404593520105782758836935886250489183388767129127277175745227304930755136256753417264819342774233242277288495435334377854777320960331826389928998115310287917421299436485270056302794680073273346061493458293881710219555455880734765204658907619784406101651849040259418219841034893706517669773017020393466071749233489963923247172806353031894482471553938192374653870915452018916835232825365232810315035082652736888080987385366263022112941378224731341500847090416762477012479046616635852997410942732646443998457083688868243339424337031982591080415051937961931226312023466011216781215446147786912493106569453068817875111516034068951713579898158170364760445144220615678975329752965960013266451845287745108285702228777904064784696761981770674970265884157060544065059377657966679022549918994211308221653571537874465576969058659790881752369223608326072278572152398952126628970076965372176301409014313251868155907439407043600126371626435763427263547786797696587201443944700589121622985098857420580766039260294498783961275594828899322915452577882226563368324667577486070155556712343414536402567178511900475239217175000871455891716648640092007992747988185336615999814276628397068085710564671958344651762866705355482042244411880284680353777287530140588218493570492456473781405611136342215086197629573782753311383658140817128649509447969052336764715781252067187742393999020102898233601506374667488368593859481141232584145330018745265412881078021789128534381118084038309767707614694310050616686153234591012321595251487249788875565078569101290361474818904011005813815735499561049858561981356344512137387611168904362276305832556032909708760068627916408956698571412163516880223857787987173381070792178849562522047558936335800868277140576062430809902942857026301320712102311578198367566093443222587739177966779616516389251601156599270236992026861095788468998590921850422929970266660655666799050583330942915430713180671434652204006040134527271622410503644075290191829575504676108099257594005958912208329419585971615291133918866846027468544430480746581810671110448548540692907471738959281823154592028760409889439295200472562590978606632776230390113206925231109902688375567599483083938162086279466824033429094263818828240484613432722859971602167846200485047142088646323216968663396205146528285993807053044958786336064426984391535293085988344194327312214779796412996955141613249634660763670639402486222197110455973458806559426374767126786609545990703771432993625750209090972901962159619960536847939742722560283618233680786440216645749645093628681255583133456489151783130447659483197320821182913225251582828463285024206209654361289607824236791085779367595517544155268063045709175651556419604420184653896191575575643084847888256826807253398098839058090241384981892057292321995647974406970496489154624194313600599340918924404706084855683189230163827036116946147971531808770675340560190478149910682399200210196299658452109447711439042683256237512786281079915763489168795988351678165608673996905032949088511875357733079948553204498997822917469280110299844343683689658652132260540873367232719635308015543492373262718380311931770307969755755885422639891764808307369879063302323033215694575531976154365418785101610801039423001456866000184768154298316466665533044983601036912323825267756855057402197717218870224204840567319005183865424780743098227189826429252821660026739906673090687018849886510604051619088915087195135836602511192243940569953917661798113987092957963009961411062365338374538172445376796158424340702116928187185261893265027893100562414361783007417545566485938441622119249490537475667280206120006551516423161343616749014837022563248640769587916108503264588903875260573819537873728342645193876280241922682899019719102935475218240329978500327991368705261358787383307587603353108254525769033411671219551951287256075894723092828134577792322278256297794715033380212073544751259107817765449226658978966080999347841191442251161869662382198419716150274146357547154712510427961943565858417626060751565159709865187441838674388415520770565064652379229147014077920156116171745012178250641558880649559912308962814414657467527365194042671543315476362715332822797245797776782276902134483853912011180147819107020284218743532758693138824700350767945250510998572111451288726661273832212156696157698043715273248649841171841125650950000879205892859135853986259668464254164722462924932774935280106915940829527251330575072175416686539688202133655787025377267361272875152564510326555049300791171834080306606694058248799661169123024402839877102870877726802839766847206474694449043744425048200690364818091698957572130480731024474888599210089684113038978595178640824806753769562908729609717083566363310668877585234625478300517022933879966282345497018837169814728573511121379586273619515441866873383372570036578123963344110488524113723553132047056470014937735281272609687970457433329083576645789184466674959360077219374627656823827081018935222031520977878593664138324105087936759034389776273673617327358630080073035781634816972453510082815567070819638157082748489335725859788394228744155157949862624436725422725820976559572185322705532160658335759372630060580081485015301410558932786184034364817177342959135326181704619989182614406239271622134401661826090365402545321614887735996046990959265336159221349841044466958324706040917007265454407122191027028517972172340995642840857145816094141261243671384144410242383897713186143293299392848379834157059911893046934006364782875009587019390098649677795936304327795849064271216776658978829393822964856268526075767358221976838286092330387950472003271682715840634760432650215764989532602916688732523541280734951699180421969335350276201580483283035598557096367175442794498423514878864412273861467478766876604913164450851363699036445340677188718063465624925593813219852439137878154995602559974015447398071932452096001188125279991010703949042341943200530584220914659445544633782721005973235320651523542567628158054189314508145831451182089846653788111010221503940137034727848359298245092015345872415734895177271835868714240650683077145850022850818159377074510485682015079539435109833188243326464353847256798400330064360138524001896264568813263849609046671148821756832200904195642877163253104985639216655034679259683445159520726039483355718682187910692322175337388215199931239838223279925271031680575484896637607305081404586119405209027640188370484424258100451502829935693408999327169696378345195278349171703303604059989213536473884722839771738816433367036378148659426495636573129982259689370231882938494678080403569544161474339397802182437252633715682603839744329782463866722779229388122125858406918181216989092796453051997909404589873492434643314253631206994690062933908837965786267223022458649596117516202897142917217376041429305292351443175728705958630027932891767086019913341711944863971888458072196418393777751835562119085908735378943177926501990011671336395370228900182925286181256315565885002783639983073607754330287848253882951934972700236614286319034496392296015350618248085729193922910394085445508261236059938718783402319631080638030491034264020672854203378796823350595651428778877768654529514074288750436376091517076717863216531571158787604748386903265706559867762656174646368889496314226480640786386727936005962273915419320315941729940852205212448434944213588696522497688624033558722491254104279237411999182438819665545322082245842275218577442776480619228164863561630213370496419768770406265682947050767671522399717279530608684265627526341435909200835561795660295657449626672219629574482820197855107617170288783499573038366929860248091616326069210156545702318825659287553844915051197118951164889774419946497045090998982521131301700055146065711133410804792110822609075089033236402710471298670931749428739620433506585638543335901719641744594711736821078737727486677169855802790543484847325965181971814749612094013399302545023817699198930878077198918074099995860900698048335815244396754370643980251976840169918586986101963378214001327652977956512823852161880853101168719144960903586404091441779364557979100836964708945697052192105297121407187523428300562589788698691571248912514274152897083790827053544968500032124554966681312148002606673128331314791038374118317631468147921738411105723306406512212780459463946590761520162068233441351231039303524836204087320577824210417631855729088879740105108031353733026026725573572729698421340726154310967521063119402178873635639919475173721054809507451108155040521399382931028837553944595822560772582688149504458973434150243563180159156947258714562176381120394310353842730842271842217936136455045469261896205413287978035993094448089653204893657108790027416916530448255393659124111574283388551316692306230763684600341378314998904720881942116910766787859137606456899437266529629163715813383695289133582933381129667129295917687455143435600575210866826744570173253806708771107649446843033024156364946848088832032164968785524306650447710417567958443120793028916902688037744585550353316961718746428500956003026243157541075763276500339264690969971569933465418367731458258530488757961109782975293393302022468178499196513699150690392374693939216106159398878480916106634260707311272094172241427704723832540924398310166003924379459798584958351196389582500439149793043669507648172678718615223072629087555810361475424306081802706673177667952887915465412548960249284780723686149139903115619107860271972980928961810363647065463042492159529828248324885644006326513858814228696726054780563024752487071295297757531442187209054541346706217227679650798398087512733511374264445877748459235929438437877443266560208802250332773567827135418880009405605926570224015874855272054465481148584658607653904659331159437168842381401623210794029079857818823115021909030278249667507140047960576478531546353834039559892115213090482508217915115549483787128136029494367851988996118442080034836839085659643771155544633073165526016085075729392185814092353427569956928915821516736664112795264847052313618220451362150299972436675914816994777868678409128035811940944640096337399432780306821628161915686984719759812758561050264012385933020118840618276054928484903521160935785172860965416439164519252041067721791858007265055294013813951546669724751980937774868365847387779940066478877196069269081067239171403091857082711650144867909164580431693414466008026483074125139018345555059121813161551734900265225155801989771565161748241274458993753557229694905174170515492882754606478807614769765919774885724052334515246896585725714181684738782295195653070406934274814933880879316261969844843430031540466097894612469007936495297610945582983395070358652786825085511506380909074145840032781202289413166367987984377347416265623180336873741584503266856889539710800237144812659461499377210351787745488182556900586300257016461007781594049884995473285684043981737453010153404374178745379043343445068079158526992512433113958134506462607691926500541904371116945330787054918722640305647436577203483612441649057580760237789135455017150795507444023918726922873886305864585719229464323144091721200103066364547455009346480165333353149547602408832065501361992930403166670011509361255074119923268425237162628635960303642711401309620410870344581481414623741248759952627884981701727351957863767182631675088195998830177690575822565126066214218985419305003390338055222774991138209636287311320077385266516014964942202620225881760742047743129360042405715143273077837319211991192114445457856408137983413442164787370082506632479544516684258090107926346369955864401019388745455616529065978117264179421425614711373121986797051344752386771485172412974498790408556853281120967650683558312638385319849083378263569939883263176321799592541335344023878714135867177899229220224036158954912539683742241145546111846501595493968263425240588362569554903853669083899005079711858469262409924632723730543241968313941107981531028998827431896673728261079815451630265027641057606569186302567082687744471961069440236538283651325589246066040229645862839007863642800740207499485470369722910376086665838219785916806463164923748535803501038426346399243123251657842586130661469540273413350931785152060113051411057061676921611098341220711051449548431804921478324874271505304815778012054850096233457288946117313011806392878122672080897216511516320138842140220801096416207112047363181130725604337113751672349486070637928162583510088303635213762485847976114079991136610404221914489563798758099725166399268425834868498196348974766495125325916518424364221927643574786552000730309513731437419134583652199765610895260849220546150544344789701424429063266099624626356308108810115416093644178432376527339146280770018323113914468783916126145974923285159916367101453452930779838700638863588966669744039531063966789546774300961362477478914654828248741424470761196550770253978056621266819777836083911081082059254092599655055106270134070707921973179633883916364404593606380096904147800427177294284497675523058011735137947631328978490896688815326528788825951540403698864827820912168431752082306138103155568505812726112888991519387203304033587739482224921769094794763646160400553168010596624135497000850343653857595889387430985996830883390014280255262440691572190458193981191422843296538473249809829253757035582045729463016763534861900332425670482540015663731746885142984043207599104634602791960071442153321237699764555533698949802752714595099048726332728207793248815024761651216104794740695791372757244806121814670591064735946204641765316839764070117333210583099824752827618528158373517583756878848101030476377187704958220151957268382510025659365538332977403275317315972934307531330937466402880054384273982997647578089745396009850064114117438921898335293084290523632895160561836538425646126960110599784389573458048056556462345697022517318466332861100458533204383474048501637133658506508902532258477901830918441398075073314998556575209045622226200371323201884620344420589762763282899345796131880399371406130573988551489256540793770269820748250102985706336245176013584573627923494051794604072996423598087536272116117328441642751118732929849758990204385308787667830712516072091612118784922036002362602817019978511049200844382490755150844301671380641988743188397645866874928421074308179164027386903051666270652870919902764353421514007591108448921320348826542758309378129420184906948500646030161945509995314458698783649374163010899018919937920257682753893921679977614204195075264864021953349209022150168671191155942590687766642666080742054998591787936360786715318292252877288466569684505302964971144720595482256344374078648412499112907148112739319364850794916351782182703718275687980663420106209315713483674113831330672541789345405412944144866585663288344223220377647316046201979312214356123272130433541001456904813020610702566032425825241117615622689165136029460427552503851824244845909921353907289795479622857558380266115387921609811183168370869558618887007388398328669020743990338282354359434652856771405043849303177373667376676372178392156156110182535822500386231390028465618296430763881418794042981935319359965956007482327603525116836747380417847553839023417090871047586674101462650329518179981420715185255237359070903767289337586134791050927455825389856781341593060102374863919651759569972604297530527642068171789628867156952683384717939352779045836760679167155833359391803599029682642211519338852249102591272216554553099667109730592321423770960877451128230692524051181835146184536522757328248499257454680017306299524810222819490174979164447402781393714166295019626765786822342305756542550601741725851472344036722418726489541548029457503162312941964631186222460316739403126147995543327435888285384466203971810694794255241717385757058790276601705961843257069290521253125579637331899789981946386059207838477622818851874213483608687331608130164493002736457061079787391931106156430902822712450071689984575127914671537495551887466865139981832928576626943737185586532884633145584165019199334299262565804915716739934282607108156511050607300797475020681909971410237819892854207960349695297955537348221268951460756184896471138427978144844362849622918017981124252863544105881174552971950225474792801889194094027612922195508097505377056387862920773930374650787738462489261159756679949901710240747020090849889024712850537875135781805284268988994859488351120810599621079240695186415015072827905316855395410749077881758424679217779553656190226140568339551365272814980752845997009864897219079924122811778949164958069797188728133022971481181503885999333309547704693859452760200176989124859428125112259965182567684973323971867222103309400723510719614572915775780830336923571940347286680495767068681954147591346808003956009797644421904401802820172180443946064019634768750328647832610879814738499964601060648111028034927333266301464380447684612379218154169920822714333330913030347494138622078270438063603623825268898804304829150147705009267349669549121648590047700676774564447983447323231618636509429635647049844208682920894996624759861492956538298790763732394111350173837392772640868414365341676065109528933558960385291772327457221856236443711424810777583175212960220397320175184124830987504492495554802923242711351297482272856552043724763919707910317857879857615357061574644465681339422747194969992858311923297857443579771893968501901523648968777939752558051349371012659524692109918181310038886851101881926348530866734560593219680188722096136119601601150329351919972729264137820845483187058704837334443255401766634071969759956930073244571325392657305387805823911613974980672070880798274277421044746279276500685890855448452781942238369400608386463353055872903222838015325357117993474780883530142478123361562818319674872153030815835244001345798669073975082154181707996562805007571366863393591524356303839960512364468874829789808479146813957481278709490854560136200041192244147542690197717325872380888942863703973950441314742326745154987526060881462177241023283934773485784907787121290775768507670008100922829326089381111070382000722743309801347074838850125579824597722965111921182794892514394820734983928919372975472275102036991030005276531497307843580812810457257154672296201110574121011572404811629825268790560406554928523285745858604571383148316784462861872213077484501780975478504345107558697375148269722959524599714075469635647539935088112894159635113954383353171691755170476617554987741859330634461193747774921485552793096056158543100480888312480000883870421860018133259345200957715303990756975232312669848762071562504361375941325248816227969699318451097740223274954013210084439120200071400539077899245754051378420180232488861990171431547501142330009798162256451160975665282176615556344497315707846908721593285513281048730156957708783114030155555082780250234232911561645160412014280151300892943775695600466522284028814372187607876179590651429563132230610120901992530019741254897859741569622459763189493145676149218329247129151044429304334053695644429678329766023273303604198653543053496760754094148590416409295612239946911258575649535882897727890894788592650622596381256736027246307007296408547897683978573055772109173532261310511226451235792281870971614097035100724141343999804592228398567735666969625769298655637966817751520325680476643695204125178612228114979194649729348157166627878515369522222921184808471808981310863462704614250378221085098744122515199625882700235184644823849524896748044112883643662564106945686466792633058175263982366889385849553696015196883652342544441222590342539824383947287200510577367710987845400211078978653217902619365742277109874216049614469543268206717375979487573177954031548555781440128942680879980010828587809401276610534480445044814080262530286760416039613588925578571702140810462957124566492015810758016975962257406721841460103824810095610227847979069776643701454400764131861708961993959246166857509428431549806411674145635626495729941270556826535113999376284653148201837505237934182175133588337145658964968929851943484051510402081289198687321665422428524407194633328458630549461200204901475782641793473176450489469621694782432565715206686134112430630516667365152023458754206030725908921010605381723980545075480493070480502392147813647025303773936549484079759793962545104716297549436005615800020864748292687804561987561439940918261929183032610245978768317348672680400301260540231503533003992436884100340708736459657187588762772654024767484748402203938200653790351904992829765378350100992710867016327902052422937243930982406955536661839874734242777522544431376223223848317860260058681502540824220702587449435412258598660897173812535565473740976225489318355775110064801537607947727921898513024102640503184508552361399788836994138265641665053230101053953030191071090392810266294018543008722329240328744084208958083110223596594709367219562099380788507419762473024971633532954149832683271076654743519424177356811983431376916778565919242034387734423067653778263592011296357494446190055686242139835612557534062743012005437902514353233925463410391439558822488941345687521161317093326525138225234971964227940584356278130610212101415115357086226314406758687606193555447172328029769671835601705527702794687985479883964689058671012330051689115162875163208757335208646595948010424846071611011772209548676988671353226149492069718722294521341810412186036634246365120583697240547227778645894788399760522000065779361521028055170077077422745123720964089717969656697562166217336477649246466063192114385114216022803865749797480387557842206064539683201212486806577793457012155122900347639293224122356117528180802692604025285734415322923906178730627595012053425185284492059569622109379676073517024513075763273792917129152481472698126733308785852980199809519752483997471944744246694408026892499079537329445751721851353214054479798001958472407233213218752235507538921119476701044902490255002897323599194307860518462063358263873494343039989420124208306794077961008613475989161989850237067379492453145130495619879497326682296789562298355572567809859887401635764225035420181797617116791763033043004846291681657189644887101097157755041710310764634572620554832912747266377480894625420179762718258856736388021484799721630533967018051652823836624761200736841384138545599548793391146426813068794952016014677564592156217235945663354851349334723159233706576067633422112137659132980110716312016510208722230714163834415104343825515790819634447986120028394433210153779277759701871839973970636153321621987278739419686042126888696224984421692179339115785881597223833382253058279426559038229164556092871188275282720532761188898295328713376596204691059540911142253204673103307971453523496578293684668896420487298469029653369373866237034573635842182101620963163310295618665109008803455510007010616678926560762407416972987487629393556318464048685703596024082591127062940464777815793796658762007921366277824353021203504405083554670309204361259980292978553639162524959600690212357308484446611081983746883517973522949484044808019026332838579925809445446452891887343483448596000207984915581553238855472925277697178525121668247280168184547278959883807677531729709496084981609337793952219191898852327691678287809469117485122347965029135203676510700868093300153669132480929846035398335891456635238067709690176971617052435871282066797530738642073491715532840683534664708464000067659782645755369686395746058856838698131458331424369481195943281011351442112401078452679241689573157606571853141147511463384876495764975452283013407217197363858602493491100062585893687705055005211730904644326781023079453776332058246788534437937675546543356269909026680566877889665504377273541570304416805841534347802505782620088808891717866027833168542888048156620454397449800218874975435870815840209503584479930692501281181374999483775497129744482946072090437109541272997272655114340952931228283962274297209000826443198943452569633297947180847855828457307836384994421020146817491203332821631117665925007945891971504222301806742833329919229500188815901338946948158882027417913170735673747426380535581323178321240372206871206748365349707462972242224501347340939742106285156025953897632315389613560041670318109452648032450533316395256264177293228932990920906994030150961711149473141441118672344765569785051512058314515781232857980770525829134188121890949028520724468524417735189174931627738672355875684792017670158020080141695519556597378579598638108244732704563984921733588671613267732645434761593266678193621352323095433457082275071133461902773269093470046455081421340348967418467084130956334250978454595603451808918288212060639145843938316159996071940388512239029630682235135997347502437837520453608979771429122923705172424653515514257245053520468324432176452430815788045768445047704668134149625462561456054581811526651635132062036030605636083195314347803399030931824199375591594420019243439890796442356965363386179162801568287032665352303555361209808771064104808507558129104241225865932853421620383810570168202734868966740998066547211367664754409380703331709530648003923701344366263022658940286995284527283764368084451419030179749137965498095759163988390152855627359432488701065275431964774133428854570804479908795800234885919945612725841226492045392917714540044845132924299845908780285985601058007342862261498152730412064054084985854708620479279373722235616124091932480942912890427566074659816400780665634564892913934248043218169263427318239543372856229672550640350069156231549932419605700347204630209767753871046055822469845944282732241847859177541204227504957998505729408703336508228357062119820534348970003563764723902598370490815658388154140963542893556608181544327566393685613468971501994475304102448836365308882658861974681836712255937289106577959082984163866339967230490672753368135356204428497130152170162894509029057870466237039282527312995277093476910979525791786737664386591654547898982764997489293317157308096697590083471823986592554831535064205385670860925189641791920251172459105091027135777668284809660770477343669179464128673194328732205089781221975437411077600925494793326146772774587348014737433484772202509141254738228982664179241551096338338961270499578092319637911287290420388867362769740797181112779111423479013745142240251972276254237489164067034775286890294159096515926003976149835081050857021799956468995284905765777484289985048287706218337783787091789659692053984497462065908370656351911482533994460606087695028471421207801194148928776156682953350695093249548860844355194161872037727795021552844169495288014955969367170084456472181530340721452609249576814771163058345607428060571953940866671475941636229678150688770825967815835767304839780639913983839623799528880433567059058100953891988693013070758734555437102767153850965271241613048067577937082538464622486451504166896986014577265240155730763782313576343282699519449856989009654634251556189642491526908843400888328126518272541803638246130033396322264369608619190553967616622059896466642947851975694631112934033873657388900330306001725457856721034189451242266504508977035533408845447155905616247734692732992050329613851940085105732188133571687199163072026501769501820124843617489293193784849391164527040405001935282217366730562108691415162418845447374775534450692280389234108984066394609835600358885504171893700786653107193798274294071081915541522900437608168137355281409980996732460653105731300468874729821920678418031265870528580723845654014721157337682748225996219295681520159670151591591300809335575475128805222022330028587416085928973496485690011953613717211508963618731703045693300468871837161533250319110883032828804647992406421927811678242156239336706051988733661094635180478675376736410080711308774379298206255618173205327644521275513132564031872277530523638304254873346450346023209194934805681734816361188222371522833218259849531803556898606740752605203277938103513737056128549410928522867598639714961786434145425135791187277267914954057472381199403886113892995851780033031615398139462264308077290181870821089070696813705967752474196259207122507750736746395890217105549965875941798502457780325716949265634950221723132320370008831890861170129148585252041209722946597072084190252816221769260031980700199668790112946034072158264677955986447839768353938144451241513755963457964155109337214941211784948393187592046536466991932997089122075091411813642645399121814518583860730062716278439440448696439824656878583483984481144698612819920102479287009071287737321453214744030661426240360353238702877550836199262920834707697596939776655960433733457898635687198861509437261701103659495731838807822848157389274207067010230353917365889329176123176750730786745498331451353574173707733843786751551222375398632698529193371742289394113170882995373319207831963184991577292203695223803036162711809633644343897077956624150585450100677418901080972514535535856379726577859736541161136386096073880574087240148719273429656219302908573000845184667021072838904527107519549564939443813072455955985674540848472036205418710258030802312336146666752336858790417881381458489988449866375707110033378773229128313065438651197484859395266950786371886787610011046489620640164942898204069478900685677328573380216549259901868709261572202367025302346669014468826807663432945762781617283400598484191844752562228174286352450564901050892818311991268423670512620252345343830929234112685760011994759986652826525611625498638573411538922726928757042472985248039389547294447652667718287628336490842613049868994854912430517506345083501050985367422117824383504716001466479915822697292921610893700189717392622824403812285298224154735062551358366886919455748638253927411400596934775162193892883366173136709794387088163867729655084414216436574358659965973743350825264804059591736643236872909437385677093309612663708074721216363229474812615797566850602702791528652590306668885432610123038327215421284998599520590758087252412805476941053397321147554358800472934634962506382986078225047896439739736803107078134498285664678904798156541705661930914290718335021272089403723296081125418799986138700967319016300922825214962907469180909091282029030024071796355046268489964118191541663318593296342317022306692325072947466566750535395867547230440022980447598146282384446377352822263979337895199992299165733249174234931343744632852190350319854285003050942601995363909514729327376106718401572197609244826622776965208325111728107340706594966455690811489068157413436172470984851434673858034238605766674742130296641118428565064402291181342728129865653234212321072092387412162824001776458315969275331928059512841170177147085014641843428858709666330283325673813479600400988411776425699269754831947590697655769164484438644704292280169058751730406404842508467295454291790934014702777964239552245633865703343773295265600046225959464755000085383296364891772230504864515239403186507671906824607369986290351657453420415463227745006915825603367479486726822195369158368008842507833429620867378871674015934832984850112321700566973591262426464077677928470020993976863082788682950769463944901801509237218318404428407728633892207228633189462654499222723648605002192269729319891275474441539064177462589768532285100961853358479066821631176751414837809491179836799785950490867538879461152814251373905084792315957993107680315914505062151672270477300066639322942540968988306520637832190781884793230447441685116634280039068867915529126294168429244920237889609945518263794811127189449894026910693273051241594447522805736809558099522043685997649094982956529438108946473127269479351006588027477886730462764343792904844436111367671961364405725346205756076744217450477345054050376747073644724166839019149971469690694225262366583677567419415098254552870198649830060117663463566955120968573635564130997028320132380130773827228322477930849552273396213640800816427981126883603357577604147600090736402990301071069576934090041252679681154758854178280283458132077563518444776031606549818988869152169404874650250982293365984166377397941978456799583724568314771545366148823146993365163256760921739154566133855624321108581247433997863779948451894252267074008841455769371128331469000429003710528373007624215352725694104589005572014687023927420383739700282603302668891197884093673105865057105931343095338965868433442745053240119896675157556937781345545155754675354215993064156945500732225117087012160859775677314198699908394811859972806821135577510840443756264661641882408772535129098496896809434104450865147842533636501629240737049290535290594776012595590204858014085975260818290499585145554721193777839077423260385759469038986692501013588619539000466280268970351877376122488627337008426253369388889025291894426275517866401673201801408212188666600636316329894015107217283976712370826101197814460119384209940440173072959212098847394439623800420575089467154911785248448985765051164717521624295419934702639190227880125925423266768785648810256331066247560124239281802695525787017836275461367692046592219426491259812458068008447738496165150931085693845926201914145246866170703708529358156048148662959178109391660741737297843072412732189689563922715379468134167683263043807105358811276498640535102812968726615471779011533749379547404085843311263067537193599747946382829379219946141785052005495626451138957991677967797957885740266880118327427894303941005454990842733904109975722143909383825216674534132465590255070669079962004915261413985312649531554150025274750411986409997086993900404515246657955133649102000033824619721554848688545888125506951331847552042198742965891693794340301017844676810563330608106520450383724803580594075089191846660942361991020298137760443866019990592719656711833473015836885182688713134065230639261579005528533396356006431806223900385956447577862771678641740137199081263412490709765142863668817824123202243234542984653157927878936363398757711126659178355171824025901259465737260696583240072180296729468368930985306716716878823333890352125270872700178447488797406012912410864841330693465540792863766816543374844218058497794117285291228071544402686059730207873419714083010637021702348742551761531715664307773840630916984319167095579665268872776456484296397745124916878637893045634216665047300654300066993237793724478461579373001073734863049012196537888464280087750181166915478742486547226223965673122640986622110379205682375299462473658372752825622626103272755418346112340473109813630838260325232849144691022261871458861021292518749777656890734325187958522616530785880085020842461424388617481404507812835175493084428376718498426799521321005871655589227954984927629064394039004619106983869624240453023024078488076335373043650467915387422018021275474432473516032326602688923033858986189537863279355646629905173425100187026695456987985737818627462224955364700504319457212962092540927634387135552545474739650483563314399693017014778530386262141897201369135942483147100983212876291027723219502321851546254532289083079325948353297618282318402008489662400424526187575641067793434703410840333389033688190511006460926711399739421263147592243134981290721070216430001277459247654478695645603150177335995920913119258347877178525831415295392171738057300297078605090832149517539129739671906897302091313283074715938512014239429630112402709604781098068163965112246055159856635470643493274740918655354164552565610710670072139036614212370190106350884707977744590935587888435541928911646515885508370502814045969183037841928880555176796026194018826815926093563419309446285879686876406870138739546740037835081752421941592683817874380468701933695315662626306669374508944770191141102552872872002375904958683931361708560015607798289423127274307932328840392675140741376499626727007828833927126793424501502746125052107825001123429528451299168539736836663997525324319046709401803846273694681473869325116060888760666510421340911481425144090042436448438663058116870892902183155915799320827158328252107749874840718136603064175762901432362146131879573908520452941454159930329925327481985995329587787301299002922441192164397408019881738409473333415627853410101976126918942816016925844966128713083682518504612184349602303271689290756210948899382473782387247801115486884777376017961669944078098693508187305908564223798608312885532903008950775524803383479655331340986415794707793484627834513525382357628282416511577792052956185859226424491162042118218156629862062621621717448687352096045203675589123703137725364990346117539774956894208855297532787533129018587133398970079324912229888652371150782573201911716929425869788828095057721363499933567012774059068591171203730185519604829457004582303535504005985212915036172759127962246023187847310801103515714373882934401991743328087182344933009678258945439406889866879678593105368429071353447146878216459357640564383547793165183690851804516580980133304606737743935636924190306732980887039840304338863412730497334825057368010223260964413818055968653290217336131684436646153675708064767574030164728972443898823714331257838191470223107031062902493645316010805141648636426209924998501036017094106497415675536464053585370856585882595773766771770729764849194375254737581462923465766246477800596156877654657891615869315058175729413399155176654474758656743498818904082745326928517438136600333790610375194470218091055452940907333250106457640574927273662965601883457688021682450988945413170836667580597801213210412404440253605766719261678285548169507920703321335210616600569432302440685855885573184255822312705219067951071341988573617965818898684933679663777248697688510434838716218610944462793790543926191103128479742144112299331273722278982522425426078042312199226043820322855854000593842044317344348175646786770032674889165629567895465624690667076288309300352388989193308924441772971778764837011084304966486344464351345190016579688136777756212520094740257477612853298346585545517550593109763423965512129753765601233500954064484939622945813879760920822955829799313225379008454716476789736137751984524094365492183853517429439442279902695401946736570307575390815833487495298264456567712019626856936459856592447321926441464149811114906853405866266023394034071611531789762149557371110273722599874081283624157707180732713193888569365484128875874709820377499672746428792500019220413230718596950204617322123070822993832506100359214060976722685280306123432477034900763405090278707744118955033201667961415894152565369557496160528759156649294261235387785464593916829946096953186125311081737391962331484792285893392198647585421129291290024545759439919436450207049157204424077196640127037412603808961936994956867876070136066455698483834411215300919315438025782144339159370664386418957168918884226597146902022573441060534659375129741096570874289739122894975856730742342438432012724763707259447287577945987112920468801482532810515474359426499085437349192777872342801751029859849178141775393335854183933478229231452316071111570460958528870670933263787841197392880667131239387416788074940951301122600999062351579508087322814625532674976634563416877849020937866726059476540591475334571222936079406572937644799755478619530381129100529800086691458912878714344848286326612143412730030971035304131525592995735707604559113709499700204285983463680088159547024621363448598306609316706734867648964132790475890009785920317377071088435601624347022805602023722836698489464083897852421181248875833334076083486558058251026005138475175458595129381750693248775087578486928437974320844988890662551677868046074119573978810673134079683251942856161240729338306328080256684885121911586919573567492095855098813144867985570233836430943035496139724209115885115115831821710958247525629573741686549236109327297301944281910345084330356913310354689066798807144225931716455611587458321226095136832908865777690731307961288443582229695206061655599875016203715624479497637226422142995119620561249046094945539309680864905963039139966108861612186595174752978416450386216364883745441655379451840440131340080149273565782573954255529644895095726167151662521634391497391213743744612153064551859562834971745169650969614803381005152805270928940553019588795774380323552130286183174739031790119427947935772295607553109003119621471884387038154976574697242162503715410553021368348714726916980067334371296412993457230194568365583561986702810904503920683477552271966900990284829042499572638448782833289005115848659396013157086971498575802630124241612260818222991299387929877943145038622125601077276426785450226964242551877805681782279703953506226008934426446347726410183583330851864467650850679919142427738078202363080380925908123689396159243876584402992718841515549025911584478687263053955389773103401234916431383154778547404295860797554831846418498264551187387201898847928710749445002326795316372712905641519304684564662567051379458174001961047409016388131330330167044154454746089719290752919772451422962783971344306332111324252767713479039509909901385638304635076332138278652013058579868182105294389296456743652001270182648173775644957947163218821939181904854791056394933746008146795257489123470649447582317002337846188016830028190674514876070996628734009631287779679239642441525371006151021311791630489355278984990770080460020731757433200361336433317429473567791904570628081592976799897101992219581737289292325894575998446365565223941623231400083672416823341178266576741977084032216230285021160902902909507915035652072441552072421869758511936071985562798235963654993260983439048226811153776943693338532923416059877754720245480912644103111842356494735506129469820544524084204423634334417205526811337909216314989539469026606746580996279216129634501975271046266512361037715565522699285912625110621418325044749208341769684699679697455217234379195903839524364652192167907552618519157764368210859953266544481245264795373905980774243739622585936376927565372017515265553545902031871178797474611041699899666868088617047445818853590441464069362714404601900195786457677483892343932641612178556324653798170685682899109637816336465299201950210231593454679732939435790228652830872629090464222473176532291624737589172532678402841605312534471564217014171801295343123736520852122844204398901542572714677161487133827059898433108604700010927195170739144713740775831398889500711048276228222484474475123623195581078859583911520520731237330744792911846673209161441446422566849039140136621066311355092103576578451445259023672716970338314073283088858028082378926079106973296977006024505836003258101559308151792940149866166803382895521761733929355219845892992179881053153933895518012526086167813643450637602971852449467357402186090054961044184110246430976620172759881702370458381471695928765871017607894788479754125845756658806822802073038562086515226342258683222493468480259737608635005087376253537090687644395090260151678564186725587235476443187906217341840304532346232947732367027212172317362092137757122240921467243433661770024284388891654497778090913201500354414460107860820292912868038658534471968879053070234520455099821925152388824501747010070940281428578853443628780195003875930528768495254480428544767569896025696660727724332015101572719307109205730683049965163369483530107662337997255246163123015184756566316176199294451254385730026215093214135238455946722412128152682648560598408038289171891936378935820739960818275696751378544575457021421523397020568900959527510344373958608192270548058985940221297409417270958088808762661669720419354818141809267734635119258194946684039738007897283532383055822803238247479605015021854229176048235531655151256282208150479470440723329718244866279922149005579025604731501985471191116984594195068103442590698809399279481515015931758111500966502762072438305932454765575001971038260767174549189099823099455896148548839156612756717494878748692214631926069646630686111846619133845299589587191210677314608351841566596153152832449855845979781651305669996839488703749681754087336540178590390126682487585401238979565093336245160294337203483375159902348695854391642787619855433809264399320321622097842848937689033878658247166269594675997010924322565903504447300055761924403583528059021004747485149887236080375667506808884003627866995121927490897784488347248848767542457100015039441651274773451645165085484299641017056136864191270320627442437919481343418646310070644140538861592171486485477853445413143987550578180378737182859564155066077952714797988279085743800214112521708536466182054166671729181563328895095964871401322352093017147842507116331791917960999923109455264246994835841647439359309372341053842486961001912179316067343505646953019802200635921016091697947215229452450844942052574321142010966458610282156716174077956385580395631659470421526147388097226127400679167744724172215393542186318731496688275035443733038657683753153865094184389157273455869170725965140083369545842025735732683975914550703186864718584583255768021989955938305156750468701037629408213264037261712269191366246705292187548259659568279410262122880643641083105728534309656811699419840505117827708282449167809032949748490779652378031771810383535769250987599497602419719006050365263469217936712260382021986417331095901146605312015859081260255640021613752003375164926745753975510708075331857279743146422469392076886384257553337730990123377897283287428645136950905004735365925143740814549596990402474033672577883375542295899044289196954533811825313850898663457878986443367269152591499033600310096238906255531750396811491748932547345693632219028736402541101744540291462869233134882232884689675308983036494764255961174955357568578887079947983387279796809566713605860180198828518542222806315533745041621767469011781877786787724083841345412936219707278028837364289152852819805668359550525262961700249491281500755369173258726427701478231354525738938522780512117907837174154719936741151053009147293486984757734440735457045600325433225327638580635542356589335335442126601809755694709979771797028395316534211227923758792784116707889766011922431757810647339293439034830197247428581287835020106578698652148407387691974756314523204853067771180616607648428202460122532701142299316204733585975849696565301255814606925565572069027769808505659634475747699459187952059388201125485216876443120657046211905035652128029935746814539948253387396397797471952939535628219299417771318570276774636138273185446926537181150606781157246106777559655482437288562834987633063973729986964785033092711303788181574709465456997066356547321832979176878244674406411166265860654715291764743120867647319332665072311810013940423441275911649317558751681150448063224941485683760947846486230873644636475158988745392631040511432711769589418203041435811016988321100468492026465584644838319295001316590356071966959452221412338955750798993742188239418385250296680239294066340694876248812925571787302453189040623748646320960962248620885663946470832310011530614649975766276578315832132845026954093328941201596287273361185994845839795785996972956915472689072893618240733132285109812095137918397494326774159871682743488829402837692112851855649764237179298770158644412697628958394282032145321500491711467375692614808075710908002888420730377326812687197885355464762952067188795946077222247658019936850695002341293727029702255235143353162938204467786815286265378446933300969324609286051529411660487327988912581588449713487005143395547334184085179404102121459942294553894052220037249232520005413195756626333924435709959201879525163293195758157929484017238238428298795829303196143157991777096481549397635771841375103110519854077424347532347057564940982583270103429490991587241778796646398827599700503775453362033230192385089963545710289241436464357117827501997388247074511383591554233566698011589447238613406127874137986450454524628823812172346855782490660688493704366852285362085727688883522074102257563764793055130430860724043326131052386928440430916969418739219868420061840297475237826978642952252293291098648038784923002386670256786680985763601888041592884402660025215235167398121540871401832403439934635513352723048729838748500053372151187496834088615429834131168561404061648024460800567128040957935662355706065711134262460365931622263284508986130233876968449849854796974935724589295195487349713220688080435640853437865244605095081966217053122469432889301179247167054366747268131871639046939146135615827009676243968328670599065472656737289956598193215350729196261882262306272015812784321923130438080125358265155507327399362958436910643244437029513071238794206735243557763416983928187101975635979463771500234774164295850934811664213838300341509587076265296894212552370111290392794494747978267176826066530416049406052709121098725826992719060646971042991836039937144689045628141721520541391697695690066675490674520750333467916154222455345075237169794199876301813605756489238397708914609280041291165353467795344326017352281938992361995481028489872008702904994268556516721368799177409920906511259574903525147963903284121728904902127385772539843768099506068577987079431432121969609852199526818270044262175849110396090003703758657691164032414554462430504304057744476408317637756251587860012582854530612505681871130513551911198155183061549551220649926680890016174109502370712391081334350578242252482760204423167512283256759527591025626608447055892792097838200041026412433744256599279605812189282930372446325138088715283971260107497528178187069425096165514552610046747520740344119629792979604728885434907826593457232161811653802681087296448128949012655584190254339433075861447528684052429049313663439396304123410232468833439243171658517583722604702920820492101816173033068415359971829909130955257721146285537694172930712734050575597372102111864940891837580602619576081831043395648084604522341383421665016185409995778413715449778925650145737868434117567127760846092064550280262038735758502973724431973047653348513639228434491792686310546523602191621951845990184472539869265930676989662962309426948116667213602059083006173040180757303677206208627132039043546410482721342916847049085876193307616656831841133656173153453780132837130219883006344678816652568915753159084618351596407664443555778871848599240386350056829718603422212866881893697100319490776894207601069709976242305064409771012613701222904262323845370013084288711574845713433149698506543550479603497106381259940848866684066837864427060875343303617063641807258005456243935442287389222919899799145243336994900258938282510608872797404042470253193261204853244623316987746651592816997558785373718660608456134241866867532723861386209513951935568362440246483593502717393224832700560379161313100549269331241640678740000601802008885822953576104835491502905510739412152763610562474994749616684199423923891045021473552475483542083098592713774235727199418656216800463918844095984834371025552020323808286004608843854128635587648709184457536607136365506000782441366745217323604948897528553315612714844898387200368354259822173909594682609995366805820694473353070165037360689638934721698620201368010530445622727509398815878988460973959732189549165769425650050442517513541029039310049188584480389345712843548055768470215563781190233314703792287048223296474901445155833287059690010771933252956963798040225399788670927526372602913147905228216685048459643643989738686181333516001455842695874819011999556524576199672795887635601878128099520157922552456732533540414086402010309135901835506043609730002600508832603528882180170138330922749401854540276474895211378035347076693197494152778232889132732809572712140550479723796843872754921927484012760446310982483333013469939393650944573185721518916667842188181255122710638454586345902541342415511212825741607957437939404295561681062718283767858974191883551482143622471968254302224669155009108001466931898284736557058043452080312261447440818563310871563074199159330157921889300761112312633084502852187092138037115070176062107861858153827059290039084945008126923771622193663619340786172967587309210546987337065998729550099711206958485485217909113017380379050973739791932387945158852463746683044103867251152675676710552540684131432084366943979789460401632595126419690720013049232349475423908183133899314679586091821928551165941463001305715916621398022892368970283884896810250734014230951067664059378725492572661125019447679353311133011437404054001565778019756550654517936837707000131196508255324011832297039759739480809661726639018426841775522365238388066822306919914522377068828207857954216945709708831169846863375936046069675280405947639890928510854162111887890761687199285913198042493285442963070947796490866238393977861553199127464540735385829431078879612899303500373432915368015494511302253098397048813803971111136470277821302179166692409904216163232132013320640451594370644758899720208105155457692827319839492553614742718090361260865462394339215790974171669345938375224578885792091796917302190937691468768251911150753800741127032024104349173013101754232994128548920466870179671428608564773482633097542541070940041920737075636397892809710031025560214150941642816413202211524241128054589478116106448824995034264064255666098883981484694805179649964669032349779351189829948178949421357401953798861409731853924197035284135876735019936604546294102898818269172719707746836979264245191924391919521843064688156232166463624555946948563845308854138187053436270951508164462448478611293619000345351570259474455405079379281387915206377091015557561436155425519285765231180686480752564566122458681447874328765722730204625760541232108827890205261043423361657903929448289604782972958208711325842315321200851005511301647065443204668416035478341000168354126309762450653964814074482463994498276605264614930344865202034822245434923283580945330480933419798258638268688052099793764242207556459371406219773940875345831288831240185366161491455001271821823495432874353882869225153878858638156122087593432182280250673916241615830470431429731106452735272405370538139391631912195654491969872258521290956093912572500624308008689340894637910326926162324110525935748430866822874420806188127452600248324832740510918597586355102319032956326992183207012277269067874086574032604088847124122163598495823237511074785131112971327331395549340588977141831199517267614159955334859269062897294551611364526233537241614703297470036133299630567953781478984224112566042089315886480643338146905688724846176744180438224976011762193799912472515355402395753283084116965259090369479494669793323892265013811453128977250131999277689500946040700191201842983932331229078881200304534781573837374723725265389541091462715178846699905615367430034779357142160120044102157947293544673160227854965229193240416475885982702490531153784598141061395283036434720700750028879730940193378653432182563917962364973836804189575636399728724488334418104385500644814054480668679642427575186070700896301952037370678594419092752413264547282642428566877910842969229956010042200883238226903641874494013806262803170772683980257580859972010760430505617753689822252775693118004493453628705406197800285620225069953427350001369960666211611519229807963799730299672944418322976066807782656814916634359888514298904421094380205841688963401568637915856963166815341204846821918956911254131174173029245069821666883573624474476548647238543147456631326851327490743861146550798674366992205851084285255220363712770647137569862928749547923380147437200732977142720795001982975213501343182255253660462646974497203522656754243524637128856743266835817481595423942295397100120651778017450280622942571634850799916609789233075540073158871792108331276902054870273019296865860688778007567347663613517753813545302343565117958163110322070190117943204659950568900011777303035735301506183569586691663024621606755276649702744136296359189701906537514755712828261816501818709287525163096169313229052519776671143302194030748886358189730538316168665613178650550550353452645309860885928009903909351619861550761379450617718104939216694176454110690666195139317702741271139346957580175401860421517881921180527455764843562786785246302407174944245768961347023973024253634214273324161079818473171674134509305776329786263639486517750139614430863536831362931075226625405283094048393166462626607360379754900132818409616220676102690717812467730564870210072788557918232248326255336595354084352229643968727908332172705752142333040271708581361803500202615684349034263055321197495179429996477486480576475707055966426452044965670280917288917950323529308917507536497314320790114581290098509877828537815089006261470081734333150376265203642152617279937313636737433499040497392652657171741338344262567596946758003456115991164472752607821956146591934864466534039014027474964308069466724663507587297579878725870344737369083811012465280360305405965995050042678145226159993884874987004467600806639331213671597344599622350804728658987078121097389610523331721377684351065016819129353141600845436700951907808667193154532633277897606937109050397822842552231002091435888506342296158017125047991750037786296644733854178102316841797731169197529468650133184082056232870514326704730036494196517448692506779984537221207889838257900404883069388901872787384819693378874009084864932255636928568900013874809395447878691562883164068675644781453456259568748918993486859816388140713387805481626371798729826027811806678167855782919418763795242115737472163780937853668901462662907804988229388055664412136924672387179230608193885703478199135640643362134734050117189981143941684702416879273160493149873214866043240003066848186696912187381971615479845998167163232664689989178022752724194652806138113915421945577941354408499092972208327834102029412259999200003687708883694565839851982633418581760091082173207525880494542652655397698661028370025034951444680554927477751624502215385216226153816453882669236738204626066035540105370910002134992821244359596411667011056074802168509374149633969251222720032914300775424870209448946004648824346226061988068905141310701067924189949848900729794908648189525054681593577526211518696219104490204531171716899227632156725965923738522046486284671030221849965162754084270495850485564404349654544379558093112355848968241360242805353302814329192176056099996087707793606823048784711318194225872930674132028202247418959157427146592810669065946620844904312330549769748272658305022823657740893523022732194767315435036022767965257300312048526755017859317924284727598713179644354758449550193083573211107182449195522131508914922840530306321871881668184497706108729547936226959244223018711937813462266647084766489573099221472387991667745323666332611845515638981385864824819219053226060753617623729424544339752258722572505022625161386335173057227839120759797091695557766124504795468761104477799372213945491630389699599295125408108450518028254767292069056440220424200695453893751271489822539209522704750354755212370649390314243459687545984451395758138600084951929162376760352490523196005009834598599578024369831090800750934772545295764600028406645424964124400685363926314141697094213795368069688797389918970957084745163375845897305392599121457208141063559078491218394263870231863829362079636397299595431002598516649844320277390257230830495101385490609626296269385061819967568522458350801529014847233885319777244002696246596725645469445649969673465134703976775594022200701379745157931387468876877663017563268826165512558524816096546847129003382239129390109523298674386679164442947263439627257636625427410838509332739631618743624344431048067865099000164708000408475459055001386784636711841394436794160209549474210915328864577326309943722656282251991900987622519065925761912961804902194773067423839011150887784825220161558646166979919024496310931308167202651546592622799712916810320103811276112090096995180744059128904096336041683563021369081135061673873714479432204422647214030203708337575119015810706550420296788672410414912939273336934601340235734134715679553247548807016377690696021562841242315789800568023424805462750012761310620986359275605402288457347980593342016937633272810950114586558719139918800680102423242001025130911273578934661366300685659217434634836911478316890616202661969397080672412952312096202182721413803063794190606961608122218027647969064868021865789164944781571234444572587665431738867268945225767166768066841411105000689559069430562626887678894573140964025277502981240697435563310367729197946230603324256134499620608209151285260391651910011897457173279763184577166012128524312122892818942351675281094362249802058916430191225671571831837753339928021425073945120009717679364317554898029281973908575746856824559186839926627239598206251324569833324307028783702386854762864269427283541973842603941186689697342571681114723269193355395459905699656631171587130078419265467774468767322122933804344146056247181546611284246475714276733435621660869652637566132229523813930959862998083053581654448410023164921241655907857992520530051128461028622038116238828927603986797870862427962017280005130716109471390228853913361190864895091899352654586488138253688131223078816172301256969228263352932050909350684675000867792527371591073667804212640355852738039956489482099825590626521683877238617483480785372702119981303265368830400738737339567959439398279103079845543764998864432383576851219055498081687152820419495470205149726359154777871500227384574205618749155528569578275067513800111288197560500806517527200960049038933640443992455806132832926829577532445161380694453268635701586212518455676765379964576588886532286539875977192260197558924720572007643796148600786212273262597081598360005971393717348867510493480395232987645165199817562514066684047730725206665525097526124148947431290183310768893587575285603580035346709484423527814692675481349826204367941987319969948405150485714664447058567707319539645885898921486861939210876236071941478488540784932595203680324976334913505903122434313820575725980303772904512880129726965812378390150103027623845044727864912405116841924991351122949549264718476134932105009703898277181868976364942299210953230733548709155978824526904788248590294760435327038498260158408256702586764124508773016254127179839123686920483944318134784211802841039709648340266915067371616488308874032565098998496377373671658435673443230321319776046507496801080210762327870928158692949312488784979940921842031181279065050159325261387439092709268060899945242390727460377952535930559864423805984552232369729457627426256863793100795296334647433536613020915648578439141931614873671626341475365241005973257951329599650792659770493789222111032066613654114199186078412288746559271678437051715811403921994396215626423123025966801591929901818856664916101104067447057478879964632312806950490330935091244347080435356793281008007598125490377545094319373494093168438986086595929663644777181702751935461067601788391344411745109994909896404163053323981849814837119559108967783762240131198719111691202537724694572817554848866191139813968194499417330743101855943233930240730669883582572103672561364025360034159548609417860980226201473312179882795325259383892678088292561762165315640378361854272805501444468934077931067301863755180656150946004164589633500650096250587827809633759606049601472656425151270635966237069122217195025731569123862087241848915830333358240287639437818285959249399313995812383459316366586145908537833759770386182144166554998411716214229195536759228619110475636557765891932031937443516139884253815067993110269985987613887191168895595493612268107593086533301917594873017657984153990410061399639596973421935820443082851152050381711578727242286292804916005058859138983209222543919201957308900655332231171423565701161982781233569049490076035243744775685236997555867816428337751815106063689407244325924095139642184786450917397745460983022447264664812275066034493846499918957770199630338957338053833686809372215492574129352952185205474108289135240263119791323911230325746286389620906795353066595530686941287800677109293498788677452236186386349570448396149125531854603239172890751036357329292687499189113173533429513439547714801029567155653440873729007219808265439031711903921094691222432474247605376685202424502468086945758937200581442532582817487165043943560929848732295882625973182530412786988118160767995581382181109946610942584261773040361972358122061541361301119160451598485995331834550900274401866217470328008776674776736125526390411772983334797106482930244722332280337248683035230221247783559954882149158361615478680969689277228801699038762157927874216725054623380057149277578150067734984481536003710747930081905696207186353351976083062022885531569919235496260129556279670182904942450460191615130440575408804466081437007197416760793768625596719542191615765373707227548583529462920122161403752625495613365399911197000377186096489408741427900049825954228112726630558902167566307794167368928173357307957040548711964683999783755814040730627386587375551067906746326140621899922119836054761200691377409854596320679437538998912398114551274394910104633580548120641698132434047732963650995503329199471589272795417681607949430130041710448410560156453138996311387180488225405525224500415669298342520510485958197893117927149378669984771123462557261827283036715618687317885196147195669609198778028990574229854735595477450510205308038707748319565774597471767077705777548038853954402033181829016169302519154783057731999628626421563146306995724314790287339870840171502192404662526582949671111974328210767034305968295978788898445578683910319408719182702208419656305053110934733355648616648998109329261259783040565217092769279521593591257916596412503188385814300801491280858262500313661414176572939023910176923987174127314919827343193195389875044191452026759966384799944039344632533155541215888898501467127622811156157472272570417611783957358070783562940403467733089486247326856086330994204766681562818685098123413586324794244115495865646531245145732712838012109623940440877336208702942731578274632926374192814246651147365388553105476527634238883774558178355872024024165119006292639819325548666036141532758908501401973436456519894693790121058651303474274444654318487619028656439102134105171995043865172909428140389537899262226924213932348639856260536600172855907483710851798682971489081823621512995634449026728140949644045355629846703353838093860497538737014208116630254205825717886972433609821237323495672305644414970474064490926806681969825000451659068827183649462149085228872986553087284690733659990984827820957425233690798129331730581958204380341779013929453914101056701687389626116001452913415786509123910288725942802326192427155673385431947206346333355074863213318315102747955977730079604325071044416611878451732737815128826185133084595582898855394471784749258574794720513763848123723784347097671837478578486853760942050141596396053380914239932021876445379461335525029553224837242048596426074150385947331017621899738214232784813615974402737913051201916664101700127499155864402400949440983102646220044029946198631902607978737285618860958118791803609183580054927744956187087135730321160982190760090564874954356055984871015659550190887206103470524828352381042423336373231395787408601526754842509742236070742385749976773866313912096164558121359055923510276089928312806293534728085939027111148997772706460184368716607041329897538444049644507831057156917608077809945943903475957129319606931528893900495105777729962269695911876743442431631707781593402413082392424878112316928235188669371211178881095515362763412891692819161620445470141728133169259570182336169179579476212189286454023152415895300023379169841372928845309081964340142027408536336238975380497188287579998254687049977428839321089856262981097376161745348041229966109768492305852628233490203909165318104994074807966167712621979303237249996157418782974043614135384158740573881694776045100551812376133152852289660309761609778814168815258277493122546293036380131320847339240017083535695490088227696013539298722546986690788314336744419878434067409828162962574537514824192968980378420825463867292401719524377755572954480850466246390118042256674203454928611217408633500234075037713709032124335803960783238749095397988515647782303309478479135193226665789175190356410255956794388369937777785206509841336623914393140887729510761993612094663586174204557558145611993077852004421341145082190226160675048279363047867820060916903863675606332163307993110008693939110610554559481475311604438070047850693904348020808652733445516243194687444749144067791062386063048262994848300670100752234612210409811024309631068485845245008698521461919885464722847389901539381764732350050607025517347973529967301812578997612350439575947701917097503611185355234121021995707567706906307487238407459812178681533456227651985231995986003033083895786693539909651280599134508249089765056246610814850024193843672685189591053346016949274765128536253744645928855097645553954704197182856984759514707846902393525976234747480073426097229759765395382569665575401280257731472825733995449272393892055607907824425362060614440265863695993697082040096319966580185910722591291325652229752873786686069423285785496354880629479706360297789044880213280534551416168605184001195955622671550158429058926149418268566292471655260701113188561849968065289966710586775664164920660661267197858558592832054409717121066213815602466824226112537276381388702272494273628057800080711031399777034795451573709384027238170411409896286135584663563027736257822662945862076582932346404232116243105502154392903277400100530794668444637358783684407720269260839451833137245965878371216601782976551219485577719850440145360326733164015307526032811900504444334881538854713087749296544025083905054211629631568190344820091871542322359040096302712671765605987152163581411703924763566407596636849571955280109957554849939385002711087689183495109922401918384089426549974716760300166466068715437370386449502192809804117295309057980098078203136621484129382312525483847897152618912558711445920061852150397462450682755781827218269587457032145863225437379170018831187167083805695978062263496496364503547278578568167469860314210125132120579130282297086389733194798452126881224609029931865928309893747411770609671939179258456314193431469898199773891600455181954307249895109457013768519535670303396295662028320533372047369851964190352126082433240888855636179587963435458962501921733262725832012854362870143258259761587719966626441457634146520844329672258015964922170616328249586291021108567370918358578325586321927750897992914226980556197753742983946756182412987752522983382279125712893578006929556657518481874530601211988902735898177267390969803439226106598011763598996127147647511313447776363155831611204207239170117156939580834724030305573095893505889398509581836554784373450649169139787605817651193451535455854900264282012614546936929381851678215099648034465451771002945915891429417175105101821141933515599049768910784243352670270245940999857795463679723199337554579234610925905218514186125621627332900473807857663606486338166341767384863514521895560858937092668475419903603513562377640317751103726422566960627263022837658896978561013581936682578032881258271922220591736743359461902419481050391065389582981987756226957428725555875629820739186064053739334605833149806890766021972698342803952459363037460815106531679731833037809468643176239274546283670566711816403159096504982661993203217295577061077614331049013776409412845624304301066406048560357981658674911922615773718620526033190111522966721517089038092225589326415124807025345704803838946755621157532298819225908739186417871320387144681832063037868778331536562974577704277393319921944492108676398122589316317974620256447520294317042770668047545598214299316513879328698795992371492559685592255299416381426971308374845538251584785337985131251344364767232442003390539627672850012710643262305192915180903650587111669476151533977966983915379570389989166532342325438618208335564570371714821252889884825304875421433443261831894014969421654352034673517482113004644492579533254026017550335901734034921313523611608043596412411831859982904475210136815971015836678046764727193703738119355512429164130592346502470852021465602718329550065561866335592387760461983117036788481256063034130700273843480726799223537014199232320825532686958539215134329441382352374089011156794978637329832126285992116829057013695777563156066141487524843624357049300729485275290725805822863134349453976083763870160731491471380881749791088696950986391741160697742763268739635817870447443093105195504876950886505697086128938405824493430636322655525221322038310513527336053388317299813160863985817696840076096279671027256333131841754807744924015961062057076960672347188199514681264708749347380421688889217336682145359754002576305907466124453225134734722887795355571128078344948594600209490890934216236415045843542400568094952744933411672334843891949394678111549813183750170161821381375676847422531809479489451116324902195855479096751452438408114256466621734900163238219650493618364877950014612397036813216330808419471021294864927785316638042365921817486801813793104689301423705288935420520425397845730851135157410769883901968086871537257868910844581876075079642871706866068998645321721401660614814741155082315466783504028044325493391324357899870220245419494291440960803288830539654645106914377373603312550364432452344556998701471655468636786957417546122362884273803479586599083254366975870798417124432003936596852379832379515552790786611250735618991838977527670262511780206685887940279301550178036478890370284288771170318357715931403106373169181629169956408175985608910119045199005319575071394447703245585406497207547241098050944698371787041607905210048281701339838395763649874438775843979664295256458288520891106013943546712408323686115758552224630413473549309433303806121192021050548104206151150672718979133167243725373146145031310907434145841897482932352505085854488502818250668112555412786872523552717464239879257267918211750238265719142946765845178764191633113617831579785747543152705334887510861385333280247244135131051096387583305094852020267552010821839891205665290050069215046624803966046183638666572039854556529427075400407603730995832449339262670394103558248186681965781212775118785714753157655938749446519979518565549745840405406647856407767055514813333964136053359091257452935729699782136294132453300195463914307176098216581345885689447368522147649501635268507878409125840166311182900156754850093176300110500205854289650014962677242610000545345449809903831413837473680855193323765869835971192945300609550127689093921076694223160490296832891874473438894211902155139432616323947052056727273231736745968032138039523923147719316278831258023210970585506855005135733866613286877785920933130623295174580796838596692336606657787392502710911279268716599810573950301249638964391251434224170222321638972921090575262221320258510852471320240136605458597059486339240880491541283411333376450710223339672018462738416457528922026323479903005516204825038424407326693597465977502854460437589735554850033199928243038216414176731888682959328712822610644085115856592493011650907490931928775219212829414379274352717846010071302596312393774126444169736850897472516005239701969005727618929414260295964709624544013700306383430845377412690362497647393994888867134260592343375029090884632099410091399110971060133419231643992904209046139188928908831866493742661566569297497302347121575704321759431689444832262315268320033509467862105599056485456406519427383905191961356410840189049994985122999708241993273511659556013324706055222998757424732354524538327754579479378738585496139781725693804766290901090891628497859381220343666869850760692358800961251668955437826377606113357013950833022193084871062023365488610779604785979557114675193942075344454424570678579572348703939411720268103310174408514635078716140087371082358718090490907299656001798069166592345030490522599576673381000136139666373811368015518937413702533895622460071833745082968090485583363634712142129937299592387197493093266189806572044529578639160480523121553854855182018372752836820873401944995913592613325916371777219490843199392327802227452918317738176555410445313135105601069056184601591397470612726535813172111705075657273540355807901182170360801987573732592228431207029145416417299845728161128238139591984718095727287944196987664854613872561113519600367842016834894071410367597130527654056801508182459641652521474192659533988508911489867213839895630698905770981606588315210005211591323972403936058936569984307654096597992149781822783172542499371966266947526292458799739237641022141021483098226895221740376522670600318377049355885961266048729294800842213803079127939622308485985511576391914351180250659603493560123426748660997045383527698896255797409872478648479772561032090374558473401765154182234134090320374437061408920000057654112920902213548846385257857332971141802388038882708914097113678895093250008616525728447488457855345226672658712857034980152123122947026135130633073980137763295979676098367355986250760237793791103726297048258036178657085054781124802376674162941965829246293623481012041015372981323292261748884508000849042660630990824528659507233256799204699146623348940324373132069159172246610832284501394822273355697396955100252582172318646452045951442289233241049287635676448980434765369913139037194063885473359424877865777028700910442996539952768231140532536986052049251058668139236129153868758917460587086876958305945571423732250487552859941998205668604405231508867954518854999954866397134102053497731142545039630730480036303273896864209167090687906832365355603716126071787894550049816952818838233456086811797232029422814543508244539247680276631526500893972540496901052027483440362652508179389061686356154264907690807148270838343502568127802355959766546525947048875799701171424745423901017210284864785339321891045936259621600254953952094801447341519626639583376641962789593630687588352532491694338349651636345114430142470095288908175351102923440282418807402602890046209406052086738207302983856300296203761751049984819788134329124611975496545232851347382000679248760416351475105450584029840540928169567141510562378007007564717634456360901311088439633711193312235918096235653600719642053690909227247591766790614031064439170894639599871873427796291291285562400912693431627935403099062586069027488948373854270527555145041360443536833259360450352994978397162148796728602239855177599188992487258553985032576244492635017069415835769443343851289054453513775908725592974018886052493667225037611254679422929928989497459459904608421040707766300333431386540043536452661501929680994177968532271859034887869129344119707283782028370586522580444693843484080463433291267280545047625056349403139215425010908816138208492428572985099006289288453963058048942488244132778386814025737914322075275016085093203090638618761701476836154667319504994526313668132560425986879476558587057407480279536070823081266664939086643345705842571103040654012927321976171487323666022121010477626705973225901575670631400007032123137543717785580649086527896413629323479630289691163098222881127771361534469757423235673227440956832607431378565801168111171117495609201182187773352520359861395702645191927883497630392690216812257743153815658942782292981830794700398440199774068656599270607748140386668649327793926814993728013340379464974797346286991267681873221088410812977164818622869431196882758038947196678207055515421013769920291484032095624684388829233009074442328680512154843774588365373791008180852491973385214658589500729144016757650096712984277945455172412280671270025580116539792545708375345902657271632905561526931424698762165384527212821753201752893288544885543985528524571887736093250515461991414081455137328691451701257604822186054064044882811584043532556793452910190893340495710787765021327125790758129947186447175303990369696569360172346104538402330924063276136241882183741495577873414181680935549650683401956060007725583701424350162995540305700650238893537961490475524674620837485090581273075767960446094128067486364507347764844911316668515128984177811346751044298144256112933855376564825544774341069751829679442938792308539162103280108656842596291367040822743073802021639659802280368890386870590352733657972430423629025455956353869053010743826411440743949545313201811940965655142095353950006414944022343729640613904681535094205423930287799067351127932264408720842230491497827395590127877380401906345064711989321650958978996867088058518373295517377757535459696138723935397099201291992127950865862986260051653358429012453172617058112339221047090635915172981292338426767518983664223857984202221926044566384529700549121744351631609363478698351825582698978466806642896291451319264752649509350519386673787267182158918645584695284787695510163175398505478830639780764238820655258779291141918605815925143203015767271333126317579769206617685925242446413323791095258877865129413957774127081564356007745604976235833171552964783180888844387194126617793735157730007509073611082091798023618311758684142976875167752188331188007930352392532649594711161410780484133559481927009765847970660605109522153649920958067444225358932803501496754833065553067555502550840294052444205170786705970128660045669011496391052968843489957413104870498482154712329996589840511178379989537437608855432100246196493500787745200751998070779751577799003584764461786930244628288100711886788774230535812836260666282797329049523361475486630216026426785827064244432637367310764474244152367724149560827248352435746160875460373010642665102781438249195323851441343097013013167343221130308562960188941543900308883669353753242518693918816453928539747773664038073808577433242072560700143450410769548737176729092709251511765833003507612526892083481925684026510644117297790580424370518179016298333705030011521345009728866785318642897654330282241357907142787762873585050208075063474366291631225768327479884036359225153525784360059362503147743399376645185997571926810547143557069885993890171199303593365809936913932185376358735582134439728014755508055683772869552119080478079602964453265907181473805917002391328170230366878130581211263821978015861612514436723477247434154509712229893914759569863784686954710109063830165140683978227932612745474888120554463915083115057655433742046273886126636863273819270434810189346202394447439873575593021754270944345754007073013323156028843975525964815155720555603140436397222477766140548493244586796499577933361847398563546694624250841375887828254666965692180128563456504953973997035954665863743253023259757202990730976653045086531593702626288835628504663797064779957468665377597055679949280361364840325506917708248938942952238503971381268194207635504086323435873566768068949106377416485212827090557109419631332038735396779844208321192357645051245914612030975074109712929643098947926451884244393052931327677183731508685488234992700771469372180291375691633329152566281303828638988957138442221100547257915552659167897861252925846602651561552132626332944237246657696325936496394170574745724183311385736145978836801021741019296261146617064315908230739244300208270833498899852213553470669517743403118607160831960652439218815850076393695638771017164308522967653513886306703942591709379383172740800034875937680235381596518779975891992639634475264984223519486624405917381953279747434274339463536261829783358347086375225592899029015134535554798978737673933920663760748045602997570131292973357965947897523186029690897963518562704283134907771407780947318517315181628878277728168825677742879055377558517254180846610918496262919455948020270679415433383881450370497516903642291525809729200909234001033930578347220992746070636435033114421088016302570681989161759281155966028680767581032647622118009332901086856041868159474623153389996598055667969269895137721849390919015254333979869557551519865027189463321432958046786228332407258458515837434783798242028399774198574761053481246087714083007833093385573387083185339716676116998914176392267164049617050476980938463392074198273200573021670356201788981535358259132194823406651833958954083856570768640534763133115475745205208826805647998452218724418103885249576719301615859032867199560459836200741806890962699151916833507826787486519163737245773623951418518886194607701928047527584602677772634713411861540084926049743815033211580470795524387354025295723385293339193409685682632219849908702020081688652340913482230343271258896960962327204019808099551241296581104213955689778521245968056304900101828187192209822123095173076187335583675389293544037065109721251665950457479629730921825752103477978900049226995506013664800940236406358008834977413620966683671235275004406870487309469561683794705155498884780502045055018184787255732953439548908606788046888277115278788953117554147228690670889220266352514767264707777519731215946361680332801958390714571029221240989196338923845305594248418687308779650211491923713416425598305517644127452675535108351822902235564718617404493587262649344322680985216623997617807334034417474685167644257044527848515025365274918696090350698648650691517736449099399434982388203742136135454369602215506357904950907345415118431791145495292914972001332740664096722450478134428446041546049889005074276374850320388941830808564812152676691543291208670545469681447163079128586807759145734436499030380142152503101348617404091770632150769423021906198481557580608478688398235415776400801686761165657616294400771533079157459425565324176753065273270337222961228181938274869118495340047980189982862715986040002623212740366421357558236460386272386733490338474748765660010431814927819337466783235859501038061226225539413370498164908530653923920194078204626799157405894441415442142721163119435027765196858368227636062322583217609327403617047270197231327840974415279956891059958882232471979750325139287713449569288037606560551330822506363077444053157359004329068829695533240255935253868048118313905778352581450264570187454498489849402811047809085529883457402464090782596586439924044992075479245891552223349763746503544529916018771815424006945660089672159892277168278229250345812829118971465998920498748806230997136758032569452610392018091238665129550426693454636419514272916030038244480843316072891414030026410644530502056025949825475947411098672094969712540795661103385335636223784398067782687991096617273831607336374277397187656358623230774952168338709322090673094173260367092927995483701693201757600985331772196062354502865528484630325555169590690058284265649040417124736173277034767068980302879078259501528185154490562843529181870996949007815479059266865914552967498466809779439325479066319916386400818512694736222116171197635378639374158827205003741705335519352016020555850500515493298570972287617722046840402929088839746582606452845809111813792988913030538575724007485096307844126386767368267996163114886273289589743495719102589589167868760598842833985476658076812969330581973919629744148139075902548312932716712660936558087078624938553524837657112481515526763982154123594959009024546733667407723396355414174959309287309097318011110482861104796786068560344975818852331336041380969622018395066976942011748076042611430441984060284115172170162823709684275356864974635257581286904865454313703057364159597468058386128786094761450399464040924148292923810992122952701461076054438616284384255571036571096234276452008323346407519596236458145027841911797222892507466572180590224733748368529013154387419202601660189671789016490270460817570727905065064852551916308331385526968491064384224256968709152704060569374588320752790916372755710665582687924119612117236953573872812977977851633528813071214052066727752107027820799311970928677372674966653457464942036150694028304534776409946192642378296398250377629065989127522357222187613599524145436155461941546755593086544307747258991326156448772825363870023903461742849788815310377113120839279816935637979079843733456688067101278262689322004381777498715289934147500826402730939800616489385124155320489281725349508050140784944117889205316724101992857928552395211716910955853140903457214989597611282126275890840050634369901375041221041012207750043518827273990609024874426248002251744340083467690695065489385394697871074716815631027837503816688298474561202549489475934277452739028566947778125674489880362703142791190264014311150711068303833459925688016315332852028723368908950001103860501730587952837505253868591391363647640847713505326510134126423814408184796591793733554523138062459150375954005021646653168668047181352785585002273151347241821994504215400249385366021018943682686793077280124075786371223367871023573897669965586562443846841313811046112333023120452729490822889551443746515528236942039583727346406299836620890004173583894767585600398145259099618190127663713050005822232151214024901261591487800131525101267222314966976094725449706734810898787342930822115351793437133913897004823985048681232844153138411130617530665688781854029410636461981504317249827020804447619451957699160576747797226996556809978159265807335481333847542170252948402890260219316394662522369731588161454302812344302108453395866428990848006814403315357988949666427661679448852983469674896976342156016657437726659939458414139748902530269353247300955497823429339051919758719163135519643947195396792674107691157553266251502618178072732769634031231692365014202537625412887381791235603276784643047961033260555484210476462664550531932258116073633979494722600315494352890146957711314463259079633225573502838780882228805427791894753147511354656076749989715953813880764573377100181786198687597157012971615290646163792764724555750100493775734492548225705124529578245724621510390492363397741083588947073980200041121171913468356065040769589617891006025556949235402296996142259955557380394809996982200746107993976228307567559915617551708210449082416467421786115851686578992619443409896028229454774842415499731084565854253605144780065273765022210202503616603202443116360817913371211151932914217878430070454340801685383172878724155344329439233256264333317414334545316629291156807544731882713011667940409869334221475922304347528344048782113566242074644418913202223672167878417129816110608823445001537846637259922292356396204961627818736642439105014930279947705288153149889245349469501594684269529866423597024040523000729198731208582061951654388259721982527201036345290357358195411724321001792528403206435413409200445969338687976011860747785940025279539121913987523164001752451202880340126603129771190072815675027447250907987944782317216457899021084177085007023217807995757556442180633737716292412520680137808552899325987942562854643803589135806954544263544058637892354219409510003407643354655707535536243420912950101212194339563768800501486674389120263322355372103337729466615906498588476494320210208003253669441980217016381286352051909376531474669878141029916283475493072720061333936570956992266818818543066682636300499187069378287647316820478644962795687792815595726152811207017019083909265409262274066247453163349061566839534915994131899983971237630623393595563771888443261871715905564333503439164449168351489343089970253237352268619514287776418420891392241669647293815421935735058343391709603353460394044585686108078389149078369727319193691848527125179250329444915770481727254031069761771511800280134633585929898533334490624620382166576757103371344455465572361417200736867167971928865547930109718426089283319248236149197681831854953645477936798816223042039352927399053834394202939963481519845710471538049310958826805411842052493963981270966652051289506097780684849751349800387451207175088283513503038501695406977608391558773976601021887315013299554983289537954561270154578563807180802271257125192278403375749791317155051493324701586661823851880290873099089155805651154156128126890954739840327184022877527065271082771295560497272015171025832010312994662188607020089561736020340253273295304357713432402055994184488273646958666460691545023694679379431122428389188323115126916747440573843005114561200129418810944361848161521484832013918208760279641002622765641278541279443245730017708600221000099449331105268558034919722407757648920449148780167902118908345058123500372208447457694102075378118262243583631624605494202621506916354381657247673755109112216621736317986275744259156409511852962840674494364888668979634774320073532668148675254114763338927207257872304576261452416126370343867680001597326155652037419359437844149537646637134394316067286176759668720125224302548186526751991630266422636277961935758365554788416014282526915658466630061851217722767109465975919794883329717540708351627158675190740424920136741927196767397926541754759548564279188575035247734376810055237203473548982517948181631659130868412394788825811913991015778070034620908062654883028102099266214833490571865664067308259219083384743168796762084696860315992849283553450227624463384645889908075311892910124665242780059844026683787660494896680151557156552507400953456086235133121125314450348939957655806079029799075952503062573134552523067901252931151072351538174770883335649446011492880467289572814073718376896377134337280004416717363402861783798715456057102218912424256968577597441694439416529135222824619544717793049873633166176486098398106935523571721133619463298895126341482455533729960293090246280118385324798647751764603050624902551690529845626951059711221545234217943725174482238786698410261953852996977248191834201500125533412053626194627141724687584616165095396074516943382657457469726947204187921965532433197267573942311325507451231248620151765160128401325299762956126833268531483073910429369641855801933192337738647598228964621039135816188831879591704580495153252947975103959814420360774587139009207167605883652018466921275877688502929901920586117024482375183210636293006660611311926718949492388541576177103369515690778953767922587494873824443658817734239323724842995643895365462003434221808188296957078057802476455384362678192343598301935606544679889137644767685780406555501493134683795159294403951206238250848655071766417009283255728545495167323772110814001294089641513776186334101120056094864647401562430570461887039135019904076112551045781164877184661074503081078622642145301705192421873668780205268372211170673251948931663313092660340909348934982732994298139709295036032225724283382068201377700865650426972650830056192597393872105155303138014130374077223839776033643989745009776830313419943817142232533335540106464768446560670904355680221576758131704498501344089557758785882004382608064087074409026843726778524607348049836869246700545795818873880651743542894224994730829084909345885404106380819157444311858701255669626406750871129319460199941151326419441649119980531630804393925081503970782645115122375811050759340683317469178870894040812559242881461213678481984297173211827849900722344964844674118427234901813091390309100670949319745266980602016315683598549795743421537316306424403340275803029890331269323334146117246529859194920154376035969670962665080584211465760798720977155497465238047990778679271182363556704878683713452322829406282190795854958003139185907787498036543002300041603876882526259316512204494401155225038237728763745593980587963483615269102929470321119161789831192787090479141361148301186119771779539767022710000676522040829132310207108581896122109177758578416996106202075600322675867547312190357486088634009360324773439570016954559962323698051400429979850512325756945167969617760659916956839354971936160640051331164641687396725849219464682755188856254107483787037215069617919488051127718247144130030315567649202824014413878581335561661887116343008722653676239221499259270076348362169698004092754392137239190893621981946289215524973815097458892066398151294898247814241222487344227731921598107321869912185260552338701033612674976765625319855668435082397074797736552780618777606191479873947128186957299000952929368550636495187595190999264224997377558498179144513849750273012103236181135758098319500337045133795919130424319065816880900873815663860376028367831365162329045762872920324190267385631026006825520580098205268312382101024376170677167227304824087741793301132145022366556104536869808332411358510547764329359851824162845220433362123800324748671132338524006269597991335785016874361883854901214432486403682231004037951197325717891379883532869293024828284943884015172655476116251096517817963737794502343697263655955937104917135520104334595860450421237083787507961016046246245548584186895540629454750022836112921958472482339299741798673953199262903754382372103820975758639845238227659640878418181837003203219477212515749073872785658561859530054898207589561950076618329413860452408815578073593102425264632014187450501581531250760856673615035391571792551103906963242845935593878148953510696942008418100399016004870434658251460521847562710878342118038073586797661505633375114233367578265037471136980837563110905184930476461480170803666185686903535987154438779575937405115091415329621679171818797557378857036902684896206406254270641084297597807167103413191112195786467524238443108714788554580709816609615929520922881101744281328587716493989985023629230457339603485489410704061169102376770173529586005353552688996495712852153538285340685089188361514054698493273242569969553300032761055591129806295650061138300235873926337711629383506905410975414442410691059277928867767977849718900827098264948140076053887199862445876183788394504109974958072549267167887333862729826888386828583445209796935419663141445570549914273584523408654921057764796149084694550826759211222954994279544490359679917798992763044960473691850853629341170791165918516476927537572928394692016176041877055299494649183262233352514615420196884285800453281538387557165461015235083870607922976719826927904533080411031545516375758413704047083570741640836943003222810852327675185421963899092698475184102371789045705738959541416257906985838472505988895770566090071004005202806213621617523508225494574940276439724793363493057021512293847845299325687526535564279941576627821374301972100848931011453467764743335119580724987408772850591028505238462671426292151949005285952382885908214722306031472317349875929741408758259460720975435586029098151824433493235516646752160364530696170479776161446920812213999520564266349689416387260237454953902345790944214174498388262591570891362620439241149345974477628729814081760927034778422106053275243707445227376278662920930103311438173295492033667556536762293931490219613565401755438649387509089788642952163074623956532895505150032124243894671674576833200395022790374305007860401823319628720859079984303063169136886069994419086961695789182680507098462253364260300709010037890860613488719697354428920577077995266290241496248300190732624687511447948290644221166124511458854524809732219073174142080813363763406077642430516231366251810696752792833493674468569698842234624289490526239040595209738663528949992026440065219782769848849767044406397287612231256597579190388524541454791160697368783976931516340764194177878460191102632776969222628770117554477819913565607615592800863050529130678707887532630039707078633670856529015505509576743307334746630077954637160617033099052217386604112579340286063340755833953843453629578616746028006721394604057053257575496181393841519106338388403493045835567690656321215595829726876078203212002518755712304942979494725967784160470206806271761442517766853015586339853677344273196997415492084367239430885944876050033865592366938983605511378341600557806669353291658877256742082422294420336738178528715465774231537231986006755927946956100766787909770944546274130494569070957841061539648920670285715496986078429458049175528269691820808772867817690294398004899177802788263904003816331250493234613027943780554335319766854078410712268477192135290458274097173127529118319647577787731927173394002873605534213213890507700709078466199078776149937759115677761253399845126416588343019217228818214417037014486912021646385600706844650327758461935603927995743843593857165730331492302123046432504623802824576328244087592538117532066750750488937693865354584276243639163272412858447251468762565322284967979045973998971737707657085437783686084270606344600971123849485671280584568619885977895799247777486167454510922324151359629316857189280846579529085999988400780207751828634984659528052801526798228598860087823568107079094498905760037934153166787402481880837951250450521440995622256924637808749259260034573733071369622300226597757925715057017107451824920378200403064670369674318716949292231899056981307365774714656008199877902275555100743978924330727285471896346565735770484480710312950335790377859728914255892519238117650920027540481143144687321477352207870683704259333733474637635132654121750860229146674979230622129572242466933854934381424327530457550992370679015341474931560649214956574358651893700969697794413954437912323869259000638112819668375174746037764013200689347044116450979191813396790638406811778886608590051477074324233397159798653219973111632780600695292949117542190603125640423125741465796131591164906295755313429787579314642048181063646623186254845041537736289235786134741362566580325270639172245379460031303095718489529993970635313360282697412031228877266934379069104209489063872685479106991844961417366563131224948094784612705161866203919883007914776843454946190233633522227822250128419798518132487940568873087603233728542365192881115641956478625684912698238761954183792857248794375970945075948787189685583595012602247162381965404189236282270951411327476928698297518969589672411054246784110931423301450027782448674153123048722638852131795097839869510180292906337407244435126108677012257543039964244022771690528613021352188709214050661195293634191871152198222343230319693630987737520308745944747896501353149380410937814029950330907282829874878768535413877125205715048274940564468133837428461479945299546447290928432752678764890919302890308263975098396689695527697041502461901256325802629109746163196854602018266125512921124306838651687856973294306343840532128461708016150317378872285221653608935721522135761495321818887117272992097172250944919874711267705787286210157011811792459603202472582590047008648079916850268407739047726581065147555578675205750774244685287615282966437131192877833670160363519250775297304906466233932501763899068189085854959173827282786290816370910104929578493154374539653216338781843069925917334003361092626004064993194335113576077831087144940659008891290220073070443204917102888852204396638299539388730454194948236276826113735519879935477072151008453718692712706553150685901552002278350134665877595905843894179682055295348387781982555676606128947021408747953157941463218415053001739785956806942781705306096687841538551531886856636496689897917952300948119702762731198356061354784155306646602156226779264136269313857664760408923404455843784741804547076134578709304891842115382525213814190495600004227883758238144122880526190547536530136738618047569980255344199485763902294279075451666557909977085213329308533822665560314697142654963043112935136829922805722740316578832764865614505853686468409215464532852455102137068827090648866989492118670348946761567209844921786352745960027308133802110333996197880704696976891387799061566954833135948729730478406168793868911339233489648726220745255186080605564683638383713174804172730510739609496327651438751083259185972497632676327070435339927975937917100736715887082704982562239943563777327890644808700994561927779618765197867624080459473588805078136163087719652805608145394795912720515244549231208218519372891668239208169492331454078622181801445755709734478857149082355469092556896582086877284702326415306576495896005540964567969078785706494109911111095081946375703314993574612568778790932276576744137290051074010593820922681983690825786584056725105035435698020101422978802316826604856905129349300836847375564035150409447554460182622490741310218112944323921621194362989561205915458070559735431405948147668665921335399066699422045827266757444278779433833549121964691736477294409282121613458183813422718753243628556265664467119610426243266236235515044307287983260061139543673764991167597124986654570052263106078985546135694057672583924853517339926257808811317733572766380860769356810614130267885731102444070914376591994613731800281995572847009128506130893635252737144540821698401781380808379366856062199167228086822332658090241012331601735557893492322799791577200777355602165515468690003234555152224521187176317658708161652601571013033144122781199737717279799221497997063841694653878313355755507513136353444227917665733139407615281888158431720826878300707099269218234518298919007696595498328502953858193217315354961580735211261515235671948124339513421612220598863353004720076464168116621922951463208910085990475408019664976493585105629126058140095496415483015277251934008341208790807528238309661539887007976486043331970434168455748955564398072420068351611721105429789053701141603636468837268047978764398630633068154257868224592672853359343035833005867081312741106827034145168486766330664624398880081452983411512792667163513140562122146422686737064562589517972960472643172877689071200110715942901818093956943225701993439329097847858600525694837542316343135382236129738240483430547723063926831659552171034740942273545256712422147972211815729571657566578579302269969519437960928680973756437800995530335478370164574451215365863436010182305133469718792888370230278166450497360936896952496226886851411472189796362655880523735156721988996871486449580305965099802417445069839342879422857224085806620400418652506369771728121119562705254533537248609018579742792367084036302675824642696832525432044173877362793060317552652263929552355551828344874325562154796788652015217846968103049438813616665675462439844764811093574777887894956845226671528087749527921092148708888867534484468704440848504440141655573023311361872957914381163844408393427483644938403033734218848040849027870350889274811746754350980443565871416793681912850543683715187851514955853026247511318326438282839892978845860764009277753638334257105789462097245810179874922941692515278285705297335264420308366607160495545744467491687646599068501533106125145034752928017612114752007497124364895781466461653667604134665598703938618706982852564415403542330364340220712285647255388531573336091666525887926384430616675913565642490905005702883514317513790623427578625719184858100445966138517087178577824697339936771702798057953664332254772022257737283806550058397348038233806616830212334234596628379742964551882393340072743300644532910950899264526357341970470348254223322248803930528519615330918902003010508450493334676322601350288652134552936378793078283379647519445539483090959929254399112836139374148764209942090188279687461080214465594478446989604562432450914808814117089430371076545842447414848718980342146321529747289614733053514122368994563083730238647793574540988709815902338256426472166821078202603323571540758764959398640984061099479697885706892224547733187494867415303390303754700420875076705404444579859017605387625621928050030140131410812435211227275504028784093414995500930201359427329666070698196506476929131541589144674931886084493263624967317688125526377725287716208997498737853163411548588399360697635815498972635431549459037105808124821616952815675229229114597041478312842558989930997354097391597090214758317205642257550435743388581018804831451667505878776225497973583501755907071225512208202828121111569882889366221675815827017677565493713561111702896451634565781121921222072331461079283956187351756492405378281817113561274277857782793685763331890532883135805434918126343754064305378541928194142740794000362140775485745175356838990640161016714905081397511246384965172304095384921088031232269654725465696705498804416064886142207315273548015194445318371031015559383717564880063513706750406795646121404954647652499311209971850654447579861493724542946387340745162335672523444646748255364964140126530940959276371295801384651278879783527565011006155325479541044135320840645539997468591941788732904253222390843502240370970376281655500469182614002918662494370016694999185586237537936481358248816120433335680601401088587381731098239730808131138402710863037550402506148408645579310080271843202623172489279250464999716621214191615950514674111477362015883575898581469691047330568819682738310914975697100406833881230702820486533983382142110794268027344491641308518971449188997406976812395330608700485363756778840883107705615162924572857949996708385024424139971813234332249589871739946716018977101702555783122564353849280410460365679952118122060631251425146885750940017225985783378997439329745942284731867445908913744169817741200150772874154084429235244997725863805773324678366370695136206564224338958832320915622565772849807716061413200116736287907036539803140806268532353956370200137177813516528238930989508613310104518101789770294668526936119793957763995373233705721524301145472234996847541078414273258435725912208268435950002344139124967566300872375809611045451738907205959480272064428938574679934746003712262090968441942157469903590438999493012853249481084779507906737199884002350469526164376820214840141715949886416911753578540058596721919623527633913332201327855369748476810649053012913548094142485818586738337548686740149123348578956363480711973601825879834085684090641957843473663018040786841125984637452673617473826369152233594750188433151471575546006942212343536577960974383743274152673254353102747357504924356810459753801539561530085554278732583799428867081051661778342427806607436029796581918161123413748687082702970909241477684418491538885932236109179151660707825192083378502054951498151797071587955934497386771667194188340103773523235850924551172580824921987743261614591509416989037523808759834495654897608172941492583904863248515179210605312056285846217096988341461885068056256189589382946475401198827970679056240660138225278578968123323683378209291531995383655505670758908063432552450341409895557857938781903466689002122231298039159617261903171046157891708075148474511574676179880218445670360585339348156917231260503913644059885161375253894199034886254835339100998333072170258038722592814167078889546341530895910304589367803235203204828146926748174117941274237499929863857748568019574713128255409043013711966875000992936969586254678201672952158006279469631796691616596524135634307734884971619723204192084966816817879074862239825104750714493207113870702883505407056171303286320215835427982551488679025408207864438733148633196851457499096183738885904869080218102454909733525150581174033799173020120957194110678280490809287582745994474050041158490439506098123255411940493237449387985706682913207786377100441225318629095036233447961924790758773680792204933706809126954947802838029422699056395127019803698508800481855767545055442844495081278394706661222360637284713473845448673126529123614911099163244943886538933198675637940217560915965502967653998336358614131217880119068128798815424198642918431044584428800628975363756629226339923458734521748512459932932017801537836781448618246406101675218650907300990474868704596762339150570377745508060100917012611574534047819146299232315532613168169469969788507329417470393154472170127638303684002559215929846458571002075483253794709930980425615783066332876559642082464668206643312598749261169956744985117206258706656282954313855698697581882362067031841702872316462799745970040757505755528997285452997119078646833645164328867115721279221774403826035687496228714523819232005039469108947754671618345837588832296835657062484955020813349444678964591838685080465306743416272719667207912981227906807107275869486322474541547784115135450600899236647512670127754387115076367807580978588708026383292768187333158863698552247669722269653771723856452564283817263406048255901302837643318567524500790270588768515614147891843345058700340410747341932632640463483325905859440590513621977526528562574032161362947692417762689829383607933529520556392630945380618367468239070117701608393302396199872155436685526011815800253730611217910042363342572029197007166511076899993039460581329987407903925632640593169813659257973179252994826303034924261131228361455702124070861250235338861184360914318920429771399972024429724706247331264033426390572674801209718279296876313524117979283800011471293936297625875138639375320538878226224138817644084199494093127844060112851501919002684201054627492009494475840056993815006316638495923042418854623060764374124681573987718352992769844763805812098710475186176856915368329407096435449717450684820208514109023344429770056552473720354909874213843357654499961557067159196268113988473730357352825810491748429509051950355610280838945968473303498834132273894542828066018874908513041461333423629861176134806552132692008417917989895621638787342032652415253658301950505108013771098010199870781111193519095311977347841156265271094297182871054627580033020313512266772960836446304366725423280842973596277793182514928929817294001145300416246516052081026534132861059288930938287176874325037479874061094958229674349090929648424463457981722473002888041717491611132635384662067891990074118450811725407423945536385997432540991467074573113565548589019175561427279499853476419697180307904785613122468025826000369971134375811584672482322310026829375673962283681364401439409183811701023465732527155042540859500375714676235459956644995928142966528123155744068109676614529509613668368406134998328964630287700428053036189758018967885673908803002272760495327444786336104609946544200598241932592353746722981504061914558972837658797898625663421493402895314978005362565879016681140677594375868094784391772819656194369071190922688034045061815190764655471666718881344264013230866393186789552423163294291030022384687592944996001947479590072965711357275971941033015227181611426219143906784694270530607637696815688959991648246681731357677732616733373071516355562897606205464303614891608638176890954485018320552678406236983995782876081705749219662648032178852495746674495779489768510937166961857887854583291719710508749001261531262598111060370457071094074365857939257522868038549944212066506228363925093897397507097049102384439680741203451849983234586333192347704027596745466750788685753751242447488072077708897892448020971952937461955247077248468015183418975103136985911581886578286314711024652359615882784821757203849466243040236645591092418644562346669222118003245018947353412781122904879615345671592314924199073552475106562549294980647493864842631851669917438781217415235613801411650434466408720871029639973742683507485165263311705779447227826885374081889666682076852686295142168597735720773119972698902860952274687463215176352242500846431694379323396953790751696002979632591675064267371672124466531907900152833495472720362096787935360949024498077143081475490873258163681990992917002542597220976229029367679615774713475017413989597424588566749992835189798704023039836079799815014064226441949497487921407701136806392352126291430303353552670388211713525049591208295332894877990915957605385112408165899670203898747057772630286959211512931168560501747510499563155256212978227757507157497874935156747980941137364134051651004941633801424029952368047676820719287355023557589026538102912685662013903170517113075212975754540329150639098356689683877425381325744810998467862178078533140551306302251939683244682138642742785929707436045973063781340092701803569586097776474682971011392376369042909080045555177575551842707584094085337873066871803756885389737478029980940243238257119442791855622822720246464996771653305271524395418495399236665939340992282880634481819856217252843338773095791144172760804462694517302493262373366904494178614045476011276937649490524530184140252201728252531204969228389602572768220001059814029803695683329977150004587741413302251554431139728261036895461503407061717943124683387355842885487446288625367994562225278538267415185779935635365989045606512242249739178869770792540178518750148208716434425462962136732302566412643796114129768710826546272959270750773746394593604344324059495608926794990403030920180998663524588130231224352367105922123236893591272790779226587743270103112631749781745570373037492132316683867412386056744180323625426345457852137038429010097209668983487870724807952648362678251073945372465006108360865480359101464841782626040913388276924571813220699531533512590408182342636883791047203372176668358582039480294517595304641684631080811824201568840243788989766503812576578641603223504438941423255137678296123690927516472224962572147444363227400024739343943203379859141409533035383317294043518483605520987578217303376113022944092870900512468971472243077652336613800363078714057428739363027272577487465707539530890562290893946516208464221021968325782299218499421921136033636587449094704065228764074518908589503579214228580265655654107192436646200212556678251112061751168572450279471830489344670977973297026672854076761609653185887793776901784532476322645530001852639654763868527504955426369379990571992820100579216653873903271789193363251822194821835832025309684380705827470904810152532181604341072432989330373265717491737367321936593530735938444596161442844372993015888069107025780474659005529543476162967889825344546318037687106933586507726313882990953639040104176964763234708462944649660944604967501993904902612313058947751464734903761044250547745357762335052932583656225717683971667642412042812812991396229219985273721720289468104103096636632063070678930041633557207753742039618610899530245715992662366795602666571385860963042341831045049432390038413968285401531111902114622275822565800304999663754090913162619913559943442808347031758325994737882183214843490785742287088215103835408870481980965395989766728030567552928838712682758974570883574470350408311121526129862701637034473690118257375904621944608522662672003649622784287183249310990091711080167396188426406333319069094372692564002026214495192524158169021435471131495223650610581918723695196461838527663205171805060319131535579929055819049350023890008468190715914555079591542476920366394447418959045353376736735368602202447564368729178046179509601555266513289426032111573404692830233942326257628401923131365854205939668736695216244869670807948031677236667467816185870320786536284257354823587173892573901153562589586522064611090442353445147481332644906335207695287648273436414933680291317044415005227052245571893410088005904910663326160008686497859161325311710856736429631338896308659657960878631583293484262163086623577893991069578322195546684692555903136363089656994468326642542535469296847379879041742751444841978819889923832548005244103845936866283138812978017945842272464111391907158559433247153077493085255956591210002184976041456439388178783827903168922117850534893576041416333076384364706002298216885123755498831424043434449541823602441696731598693971175964682071297269174563196833729183790332765342457445443307817807840156691314301970897269904018924457989221656120456576876365985947570169443826317568745444008571971952055406454821180626579454707884763622820580660801807360904252271777016767535432170695806341673887205188165562264452686096232926855269278908251906627867853703261662401494410644477853224707483827017269810131384143365353482499832374485596194193361694492135924689095401119333210338570812427654524254231112525028506174505169360010217885133454161539000961965882187897787401412571232555625085688380991812763523860121365349641754914222931194640599248956850010624063305921191051122415390645379887870052353286642409484766352839430932270650892407581522094985401563028943438597521719308490858058247295015813515204975499239130937925705261773122471133892419822364931503602501400179064027120789942510063107564080963539546784488520870891923793067233109732435646144920986353946707693464371926497911370347299609669373233803524122819152186880444020085435806844388086637002545070369784499585102048304541179063317413166743270561048513013985537575465953056153818574771452202849950022430453088981498427563308093906651724541173241136012632386244147037897689651093017543529852503282853151734877257298819947521857286823687645977492068094743671810383933626077783791968481636319440612087528300890098619539401518250133227621105213517574149580648017139588900601167576145027386729793453840866586353179491739148946596224491975257338413353370256521403279314031269179832492960318131608716081904043334853085111719101661296550246699091805208220273668050182041240999116929009889927466774441526291675151108592296517646950516160111114210073960870541010832023927680118129412922284536295290000296795196146151753338580032589270347681678466268981767028536373587985371699465242746539290153021077617749304179527161661473181738076222930158610035576897212401814827155175866191646752013554848188854926710599315712765225392455278378283112068655438730725672189635397306227628028776917628890848959897266991679663400458215014676807746539792213011810889121830882989358362566203545552050263799749093450570363170350570359445444460134656155897683707705282789944910899420003509425247882273581032683014474031350227563468393223421812507368597978537212562681000635386294323454741278016899331615653339688809358274827797046831060956194375654526227003496900268533996774274708447293693532433480832997084166938871884838466872131659172170771305196851967322541637428878493335198983797595154124997829659638183477529486840935436029394733887614181033682686278773038065486930256934710040676638102010484996664798913795847173681479148877362370115481598133593063243055568685134461669948190003638049556065867842908019297789790088890448565314544432156093563399200164899559493177021467910054970881876467208624291266363943177298413833271014583177530566795795828066787607819098933703272580790679975744227302785148076122778827075966710003504181706850241690154937307357920782872798375934938450715081480285003020047240162691023154280055223094548193102229615870947042399856527842436925304479721503943997080063327907746987112826594063538128477143247248719464002645363296913323958236961908443546442934722528774212445178109801663449914040641796103660486737612426105242020830273937586800546359358668118027131483069642189828313887530995399022187771991806514033856039904658788258777996432343569241016937861991581588868167436235727678979704181558138054209415225927157756618234043872798843182184668043391688184260507599388246257820322738311688042126891825288683193187125368024460084854899893035958573955912398869050381203753993244967466229706562886963400288629130293669345840564393580914245550628182464118590585677469978564574414220268345322989072832110656149874990264937252225845911548630601993627825353752653688201231092877712616303999640673720907527941583548968676733543867214900589306914825278554927460944648956337736200607679395603700298549032262339202531040272668088326589726530704722450717738675980775056239506772804125690736185863027566278479802282849732598870732024808457057511931617062635784234754809217006228103791376487090421179818339968626158748841783964916029744588714030289466516827869740671263750710528268435285039653285170771749460467895085150853211733562863893148144859887727177136772843680262213781597740040641642839798377644457937736287918266918726461791813923742456405775172292914042455960555207416003004388386870307455381046075776234585800479161297356863334120979323231944552029289113767480004500415576424257172956542810061691777149246755793706387383050181179930884647454338386827946306122207750345606558495747571316434895344966522590579570901190976220226833955157543117652319033065809265617711511533675862123365171573890302117442532109426695385160253150995935874346367980031256054385066875308047151958594201254174853464372891842729225174822114053392501403230157008092013429806828120744561284167823151574515103207843703221864362777384813937059659446130233205130848858636835078733293090546289879052813525017483309955885778864640190198041007724286433643347309462178972760219442317846509950076723446566892089023589056777142347859642714110691088597593497089614330122628436331351399292295652745382714427194923771095830606927931490188718713500999473173372441168375663468183390397410196517287368912760925864067151630190161309201538685122503413236776450534486072769593832395791684697975805431574307530242788268406537914479055656079133283741671635081642590704310372479396758959449053925382673062235243037656363492921089285306430046867357225705221213307949161714873597298714489430533042207374817048072771061125215472276682226946809099612177574214628914788989650932795615741585058699319244674193062903192973578448486367405306599084257150268076886577379130890036849374636768721086683435252587088351893832250106268675374699537128455871367958176724509295516531923159043421546836834037595387844675828948150497050610349356004697605137795522371378914946740998299363843741120868994504566545688291026195455610700097886773995195063955085090587009124857716573287759865516212519694404440345923281141006123660413936753811194127155112176013345257716782013139978843741134294576102845481856039325057319267683301617134559701991864126609991468049285841423103595391411733646053391997973025301346326607564949056805134991737184178442605070869006124042674798542837911398033347379576724337343966549593182368826553975796586532837559414419507447914766087629249375325579677222090958156089031337506797398526280433407592030118692893371199105613511113106159073731301422073372939494510958861045105859524477735474344239629260762635078740783262380044322355575701170180052621850563312782822917612710964479239919337819050372811461494536201393511410579939015295031255489795092907748209312237366690162542555013685685846307947944834986275793695861556343387414268720263727456736129082956947839535688469830655493615435258759264780956379721257610769400219291734079705067530312929587387436033131864643029399304368183313639755829047453293635568245615837906139596820208633996349324894105014312886472708044102173629823268317322712034972281356791914870185519732825627573226469943411675221048390086731952358105762765904990393222064347361734781457896864908877852581147823336238908657750483617213842203929060181746054342243259958619257295239926927165320536771656903673620988520577930010240017414465815399963040655137455010062040167180848688772229593901358964952244927802438052222543332462138830625989635008688184547039298178655178058799516357704990620514537545038012864902372270671086363096660405320217213618687547797686062901134832644509159867768797377656056181566480315583563702878052857028095397028471689715446836346225389882385620494086293429755245650153948468401157559594409254769641442074623107370214457350219477072276681321720107861270674848416439668328511376041809526734731418985440848952711616976085370432358695195135276413518159613599280488586181183210914394479401734600617635645132502203155129952265515787304285112189192064005994164763039055023056984068173611833749891807059892221437052421296525625043448487930727249254547512763571664570189713829236177371349317916375807164184303509463322408162593980527214151330755975123192445269272443674158714830174171123605510005773982805389490137075762829508727019154373769920345727405308092092169467739451840468928542008547048131014477206216879194256552657464321798759651356477172246540144235270565266812785012969223729590939279572752173891165338529431202249150231633399112777881503485406168365297421064123071500347835621325669858043289054647647206182389491245449701968711593502347128591548725152063841011596661852515894412911738070545329281042671710417067052152570829499310872012235689385676010397874092256448558676258805471976767683570505414780660458350503990520266953492043905449286536743115361210387278766214130071944276655261631485676557406597408288299855807645059451832136030801636750559884880785627570211253634619994208091739177372676921891578258326620587670897783608903956947086828020550366755406007391458079928992059904621388508214022690714078197472658000696154424476471730660520648292012096545463887398667961300364361224469811736152392611594833845025762236808609596863313710634230802512480766825366779173048618817441499654590108480830125798913182391922633980383791686397273089377996465594793871666724243551774685780058180166429291116555709699601040291401581714536972727843328935806540947134146572280092081976179812825338310726141125170956944895197687519118887501453944593718693166890456304485398141057248656488470259919973818450491001635526002266984264147815225445289397408076856574496118249086195051405729883442347345489764225551760102653983299733879459331740577544865028140526759918876585900799769682407084834058934508555523293622421720967446698546175054432348104893641331064574087359060978010148219117235402914919623454029864062753196877080214069068964560514698355366395029667877134686992070674816261033598927500530727742702530046778934551481226600146674847174708137615654302550698546091825449401177993052850625115888242959047364661695588747297808211837973362888366834003791709102525957828597875129169741126232002078181155534264072690604841859691668209300866447506418485179438727753358474479384109278342251867333708822787679309939311046556920502269830515753526219378940211913277490369669058555794954462170104821550451891477342126465582472162121547906557492193610252663088257728436815257041045975628674947423235966401200478465978419241160488889680819785041568035351127997448106973229716752808142103188165742120851396574873485137257069176524397135825365767046460460091324314411001021775671779183704279921554602354712795555885559561615178247705682865233457532540878372551552439580913806777010379710172137215956740826054645480156748621150440593198534530663386963793333953092476291378891260174353235750723297730668145684491909014783137221883601598357787806904896655668870333914522266616958863537617377671714753700494467533729279845610824086217236322432076120438436923628357226648785380019272427056951482146939617834589308950713001669902315413629919946637084172912753751976067183826028452340051713462329027612396263287518312674371566061078642555226807838195651564527548911185338616731022611951085829361083273050542588278547530598091386111906053063491327507381994000055274736787432164582256240694718073456089541904263295631125854453375260543326705040700712690000503515690421154245560351146630570644712234699664088792751766790341807922851204713027679262491094404099672790047794013129320361185696837026961008690201916830597473173836036350064534200708045122546336292820624877091011819437037511824432337056972264823596481844054074614720769789169390076637219728257226158275699336367932406083658898637805918556741878724770736084759532708904897643009016899871547936733884216193142305446167650302899399018395783998779370281753435018917095451603236887641009040967232221105250913640615273994963796635114274465353792397541140927345564044232777211712259285143066320932625752718530572710776940454852178479903877176468886250817203667015273123359017209831763798670185568319536036464729952673712587098051556476534112291388887363177159779670777855817246133571681533798935203109467788381138532249502745004231960454564939977188689779791973544095353414782529587143739718942961192107824976459083561502058750131628181072977285385036750293231816845762338069196931857390253192476099383614353033523602599034954299133815707840020501339982437256677683202507802282911432612997287520909493180768952786612904931361989858269640776475904556158922090292411144358128952347100663118390132159251878395589325938330069553009031766067723561616505664432787457825705795251279900345183499156550039718812456842201285613551239700718290237711661186657269609153329316647332157697160782644591636386693157209148330821243334506694949869603271909738298907068308239801793335972727440961860195994624243530352425615583989161539786467843737870250883622734657832851679802606584655407678225768488756263912984975011839927293824717359708739182557229682682865100798337495360454198810239397716867002479874861780932239142845918638523946408752819797642736288499303325003259240492312741341643751507536658314526210109045911813753237215380246905909552175514219106581456428297571912912000356969517385232025610925196198113901915834533459699718037808943571758694557814338537560046684204931185539763357732391184450767914501692110129488466347251572344155680115288597499096201462049940118200719737883099204834277733939088986582088909412415420286212973695788185197412268642379119273791777205450170580793343813968585716963587954674296101994914388887185901275035923243293690190733268293752181403597611364703967444468679929804745346506172176125547894940815964374620465577974536643552375414037729368028733391120615821057922880338332348748068409131108163827673910670351714376876578353367922726409008281723316370384722010401080193186347068428113495915138287750699762940817582326001602842480496415386737325160186536362893884223398755086529198584826997573984125243570705415640000647504722734098885516811687729433948890762672601291453919947408614383885633458542340161952111163394050438576568943594961055795420569163141013035647970004946398605068412320015290665276874463853204843159384361742554788572113364581151720415656190421559366206295790637425791505332808615382764717506450036218790334522305278322748840633491366929351390947135273428687002838399563193216801150335372478240308230317222169058173330918788652533562884538696786651692733169054583225619553992824606622468884532802069202973094361567286900622714273305457866393111485414669905766044750139432973156860283873278355227288345302507678058216134076894656126390309929090595484073488865560410461984262659810977349460703747499329854773352817266415169662810193590383186477958664577815846326429085339656440247172244955124102680896009201888344206368797180482968694158533939185904759135010353251205617071813379212709568235834096462781690137965624130544995928577380325908845717151620610385253962709153548224401202875286255736101352967335066096853510147509992938805033713420582723307910031677205026697621829755648126034236605640639928400552550950570208347688422845832177247428442143529316480138402005438488789716971231071538632516339510309172078974647257214676986577831147343231600779787659684225294144300509726875346879532814586166502744966173485923822059578365377913734139011826105050064201678571470233961989055552240176175221893136405012434911947979094311358810679730580157744373481366449619459865605153425884634789507474866370153502535317719913621884371021433098654264841352911764417709043041667629807377931072268238431516067104860093757896716485032521047439913685572332538040265937334167865013054425797952521259321393975497857701269437663818890761706553520657639650314380066712683018496112810248913326111448823085566895657526789543297492378780502455579835681064660257232561014386038703485367191970339680383770647431700373649604830555782083490518613040013000346109938118816146673837021992686271818242324553324691116306451536845656666093970199924203787541291596981208869825938728256471874039716356456491398943901244247922908723846841322947144806741602236571953506562003253691510195305171214066780857524855585613337527642882829706238758131119831056586954675269180670697903445008198579999787769710599683484757390055279462521397865239631107698542540307172045228674517903386167368233193381414283374062213268313164357235792461134703469439698527811293084460037625360859103320300907108914796495787564241817317928188446935292313870253286208684952833907994219207476377956904850634004176701162342186293320158010128442524886640678005728235182610086898223658638611455932293896766633226466608177592937311927004713207270424362198047786048644365852714968067289598997646892585547039715328138929847439001647770052649919968770398852969053756986956256733476183041738051877535873879409187628205571792077897586917136352512425432194782280418694512166434904979840833972291535373599655566291675538758268440423169553173235554951689181931737617374345290857586388210482107188457919670329732760730079737248662639534402251996617856391926693738532603291822513012389846492009812058038563573205860805450897764958950598783344493197077425430854835003371400446911816070640899823494364176301989873898608444422171383726617164750514285784338923911347854138476104385061924250152597103064206598073062078241872913397574804940411769649825805739414343668233916973434739111715369418364453371695005339140869007277306757073452847529071190141931763479999778833406467134325771925779022450178782510446880048240915522939231857840989886013947657608735974496527222870155260261156129002636460063684821983436381987654251213399697815350706514784138230809302716947681027873131606449317217445391088495942650838984117204629341249068226211150957512232644786318324093019842704799186572223253487934385532052883284273482280374390812529618582138360147726936037341845495795480767067566723891565900568196534127456669351698895394270298253434193030414163569903262916258103417325587637436004068662681924447529547062899854225923418081463252792557151851792419982613624372758550844231617503574408886786550793215117836076723909661757973393553851405549724774400232536375460079562591400979163761610638207012469829920908856942432110952357397294805787723139710750938156738465168035028845433931471533489335426667437599222740523246196399285902773473287434159436272936055413620518876573473128446546943204785459513482709470372484467238217032002610465138301959473736746506249924708343543369974525354241489470351935802778924924813676956062343862853452239592003203755658947847308426741963116893396976275442582647660849932460167862960237708799178020926436442422254130545295479456034181941913703482689565118461250766840801831153215565355382865680006501220594533053080047192742369306684352931207305150081481057368391741189593657602054171359115120454919937735085022381536726683267765670313139793210061170891619289887523376955185121851763177869889925712275389302779081045073495684230758453221218230052976492166070779467870543884663882074682402755777593554091471555123260723582731236186828433063867468828931790925484414214760889233062224007683852261895237083051654402263980476645612207712906742775811805965516819662262292908047604177568627756382637818992427367417058494678570468366806815125491776821667242633959122106112861499843670331840377054778063708043326447023760857488715514970999937506878721890268292320568234417431762056235829941411477334800849116842727857824478331994875969073088498201785706527002209341518718217988549941619499942305168405262364787267583429326312024744426830414449381795513676772734144125527498486576884541185997256730825115483899696259106175191812519845889612322580025799933633185516825629860767675806799321460333901308944134996814528159337454421135350016797420766430567526855436009196512902574056474195867526099323285616207396296114898274700371376472407653227585526366143397313144963669233855669991305155022390764798089637163458251154340507764999617958976169315875324670766723306737013533115649072582859088892932089661280563185465822874406252472985514740037553376349397611103548534931435594222469758802973019440469745932514514871425288125158331162598376646692880962707990048104741391793852637566279425137714258085360604937405781302913549213495242177954533359359016100896393457570413437488361428152809086429691905864230711372831052266004375852070366057925611926831054545645642058182846236478220759083462708884432308983910559890240398914620703325754233360288025897089888547665027074387671377181516707150556358419384944403354515799469363556872442572594303541603700985605280971449834235479596696174569081159229934861696855611502603416413948395972558802625051687548175103388108691374297113366025451245516158193316927703049631899284504988431874203806130114111169624342741893868878677307387459737770956117403319290841714405764428158800756832098865388532606462680174923682136408959675618807788408951183329512570844466820813846093069150616690013704289016181355569179906135372527820522676698193317869995903175135787953310610467836810776399568256970488218131149814298286961402259629794785630994255083631253191191071486509857411597792429855174142906608970069616743691518083771508937306744429111432984558580528423989684029861204198026457731399762097662316392207766303504964962239885939963978998642705274776204720893947795724044643501049259432899022325425822565591345584417078730948723531750324671440883527983638690135125230829975726279569818119390716700095982322280242918378348709964605350995394052813301953916585198390038776756235694176344638491943962690178475774159857901736980805878389146728134101611163009097019941526655296088110225943819668859316837143675860484749643542475252900338867767151505263309292344958563807390410656281395393039813480618385804257391931570019340885732182281761710954777105996785308626279722433271201709583470540131781466608825911392433453305532485120947018186264763382910612727645161233737334336628486672286031855298602652581518763261121223460151787671586348289727768753502690155058148816025234158905017074063286838401317595810619606717095463458142726522282039047622331863942821018087449778809430974562041847472292139191083873051505399729370490732726797902176110892591916723919869121936162986144741924823505823091491122248867802009610834848224660443071065977236898643477952506891641604697095014429950071450940576703555593407077571121624484172530553430939926473806927974065164857980086645354726604493555456542440270383282947388168902105297902511338268539901210611591212430724013987118304457746601743627722370861362976351323358810486609465252607418650780773719381752404885726246628219577425995478314739143140910924243720864741379912840421671357709178288679990025372521905065724944895603238311286904128623128411150223142652616792272243585381869335438990445591221140523791655533112092484804163078936193477736679040004835759954183209858266491584264441425387628578920484180147429985791603888637359445827550727611280326187796167475116439745295848227804955896128135792665302086525167030909771608655334030144488316829627391212547874753577621166481135686028344804098104722492335560041561919857521655836197636716177441489726663863247071972133273468185854921291435583549893545183438542438850057821152971945050144045365828838517840596482100955393144441539648768718495102758069733162128907067420524077264729988596090450275333415940668116193992951422748258140627319052104079902689712420163985458377578677665404680958086874891971018767944029151063897947394816483060002447481721493563005116276734576831567577176061132432439086424101765102062240083000297109518284036494232854267687945228566411872795817111641689421834517478881354910276284690176792425103258160341518460015596033075004488409485972739563576763896838022260480114545007932874917760573868179984665516217632656967129000208909672428524156945721862003964393817421074155400314061644428284046238536637889614361396046746402061594930349908314853901404091607758227063612815029762049170485626400973995237651910537990471027561524163230649556665239528587463344851400838616971810871863761089503015570986714246736928927348500329321548713675138248703494139803714185501778908590135064100087768165693719368693646714289423609082901517879576795567260396296651040755705108417723860759213610094490515850695416903644602851682322675533407567650679605430809173306267834363859678475392234991074478667636943182689539785093459266936508338012313851658557429702632880481657623850993823504457081919540176882143793734882241303556255419506685783234218207302820090333431181807426894221680206273820195957032876854078726357990766278199426247921671093629585004713524885865199648092596253695541466090826500326879614343628092488938000460664947685051041879398428667015547452781498270499692044411066375594152283645956746171280638745815000910529487962827430801104238270996841817770744932715946149971735147735641747176194105312486848036424762842087783999427077546419103279895024415006084846252274008681571119030317829276362069476069289145441101701244167267960528196456109249355929686048570263390331583008206736199620213278347337150527197775975883056781635519664935840990497970918049320319574698659256526993572681176597085632116690993568098795749001482183630945385852565517019981268909313628384835047237344429567927863086904881986050202827731653207308227688606499961840447898511567179641402858728926484007636395427859973037472156662227957116397753172340167399247328377593275119195621231912751143794397559404476939508117516855695306135847750133326922513402445614665398019476922262429099057339395427266287645299245512822437084093595945528659255412161731733183595582053507753683021273355474006904841179626147738000829704388954989697995342523039951161403035376950467590552801110884286020558854448529122097952256558179468308632603522765954664255533411013046364059394326227266291245302193498749523312135541560446949435963975117114413609470736974148830767896485626449704828871081142937002452563872742527842345401491141516507506360457043093657406892693479613465298553955593694949794779315324355245295857112852038020773122624272007551026457813837294600065611414230334131097443242561939652839866543386010494154052724520287871486892120115771714386812664602936604108337593242599054714526520518821965973351429682714339875095555914974765127579828905636239171860160582504912363387405968043129795278000322294157084584085516737272422530552130988725074819703083558372424885847070787540361559131423860029397394508852450957945091743544140809950851960672078109211930847402436064666334623442205269060722345719638079790926946950784666965224661820995182538373793491707236036338732245279003690899539125531718446898982395412833974299272470151972285289018860974193153484225798558957682604312788438003567538593623111430849433993015131754761884455700464579620783380494819268453426223126858162717811269168104121737877238523294812776753619884171385492558742704701660178502646629156568486294576916841915965489682896573698050467079070099523363043437188944007271313504305208938445148912117246195612582476142321886915371019621252773101103215021279938579688328209834393134259976567365016249006496341041449642722680599189714241874633435210981085616582569178130798758360393612361932725322058841852702945506319650814977595022340538661061074727707319778101346685395002584454553508328384717690179744669566699899019365361926818496154180232430772389320045019091104877106740856088378108553112155039780639098623329105175232011256468851454905333083220527414593112256526886661273882474761867695861962620813329017218456168768221353465501671430553811528462126768113611139759452674363759783417432983977393451134551276825600121108673640574133510335480177323676000069414727002493433735150944217237654107392891261865210236231435285410932720344698924193286965832680125128105586128102385252753127037485252647267724743101062852971221090160139404476444870892295988553690741090828751234696066200779699261915493198777777317494532747041873242513914639263167917904772557560546674034652976324965799883619833027650407610721187142325629604755900732587349137712064003186875339814966310128536302360514126355640798589179594987180661579614662818216807204302164449475198402088561265761291138712330185303082313421206492191478055861071855558671516218598653972377318541247606380227806035211789773497207477192148184625969466089306124982528699354231586850502991728779484642649108748984249772899428538031986343143019814762024847700643291051705385648906742345772156358385871755551371106088451189486084168814713944116362437187845382369021460051564660898322030894667005973035409658027502594852799748388398375216023987969462140430987510420672477939902692960742794460894254683161266309704961906007045232083085353213617459160977860775486957399503363373183697444319227733376665983287246567894671654461105802753069639233225854859511176453152829223890095020004958724824357434672370394508585820112926959107089470672780329605782307620247928389561460434420676190537148892334391427447668041652293420000406703250913051046385858205027481376893141602588018981647553171544023463185952086071572659524239817179363679722468196730596621803141376782051611594629933635692306993485034738145855658276910903933238063565336945548351568854114498125619325397581647722838801689227342575644072438949026237094945840622645662664341811612747605476048661178862799096681538761917987212205281099367410138894891094030326354616071871848584409801033221786954447218967771911314993229830768750153435796620025694425603765686880720250654962591340383210377003821033201040800609629492269092135633983516490580016217492881986308378404749264453218424173324363382841528909007022183305426658128711756381606102284204136958532382009218043104669860725899232717867915546674598925369571079954216616783727539697049243917795227810945192537917828565639191101333075701831697261111313800970305949826553690663277837453533607812723414891747321640086498819820032906033461020173562460246152299958364933579905877705326590677687708920425815204770010599502904671573873283564818690100186223771405625145631427079971634849025971602911059338389727729259308667827020714203585415521564172990229591665520380624662526937577563054109738546902270584053332062033497659603081238630036906671856757549030875997153921480321952927436132990042956389140694838118104834915185808564890698517040651751379376101232949896219062038519345101876488864676673576826888354799520018283901380162637087737956905634503258462834121605520550292515875778357970605459741161290335894847325937763543917142775065576428762875900454523336391416597952829287242145965947826848837220275282941879831619074707464282256700032926105423282834269221026485590035352456360083864570232392121550768419070527456899422610966268072152096789755086307585270353444897393192029560389416024007904643104057067713859946212853503163193729716086989736766780131473732928185566265047176774231103406473885294092297469845167742555367384222873533438866727822593811790680937405035835707943667217728405974171518274361715373635758035401211563944065895220706800141813070583643496318386323918805689023676400530692887493470000044462198439520843702887642849538189548930985692710018983339753021312614135376897350265251296584534385243687841989198512698292583551662981250185450199413820377444747847861909227489967114207529855358046003901551606641490143733220596346078828943254631915097504032357896312914278787684976084011449950606527309481783556950677317205823566761741005246357307487856137471668445841190772271492258739964996616381070860333472140332499472858352190845362047817267321540758763753673363766442548415063006847137945123176321946978327249419983732153022335114003729858394695926075838055204648302166056723485315629190106170204917721374467973900544076012226772709174697972672896811348381408926462323294281498810661630867085980594586534970925422556926361703602182586629274028737484979751779515825081657922650285353332910809624899879709158376102008604338305294314225308239769807842208237067407461153463024423530866966434092243487737001692458047585326980666597472595355117524001860540562044176603863012961327904958491764276190094477818814876475164163727423358235717112124533101069603260269360719957971226032022890901704395786427236644285653334251311649413172761567689800872494468216008648538952184656203368342873832964315000133207428351953560165953542901486589414733954111032814229568038978480581972321289935386070134314969921177849494647539029124277481232106021675676042803507166198540666267478296733866129652374693754579645816880968568704043276199357914560375385292138631637222241989027289009768631826897017148282299368861678946642373466266552792133212027021734004538792469817953841822747707122403805256317310185376812832711545876040230564952549821324492190191507732883466104839581576200845923219631500499426132871698432356269872500983473645392237187744675923325844113666453062049529976482095197317843218329655396077401079899788898736789140954982105784364952801388910439986151715254569198778170348007596013128994410727184248122167025073561656448483722485785989009558827261202892656383823538850770580639295156256135766544989451424861618189985129065126955055416549827479420897011900069861138321989395398122027708311424168618434472844383726575000947304563466523444360461308893695710409227841882030196990795379696327746566961669737781209088309127643834221160187069077508408839534905170916479771065950315418604440341537531394801857189904503396520921849915566234633239349522942015290691791272312175374116545488581553444419421280641048642236919889403645282224382589207929202673474695225552461311738243886519889707485519315490893588610531778306986565821014422939578242684974097831730173704488579444846592259292854023120951840174121121524390417658069096294058734438328894490999063620436140991323532777054285796613231925842046294040061642942885325626838859244866850021005688757800703608947956052118849473754573006964787340766609176376863552492438667313080842889961730632547818143054676714919845933061118337117670875575920143221251871252334704490049564589503588890997149610301120012388595521123224007797557014335792237490496280990817841289232166017767221871918403000235952442948101292412809662262055160326471625088489312882363296419378480355582009409272050427270548183217202903842941219913301891041898002037801963670492195410564205324155682635189821564849078188098125728705130984781477107311454266776915081363154630838574759053616461253655091790798260046925225861620400618024709818234130989935221169108658001870216966146290931686478791619278878542226820216983671641498856402127624349894168116091958831447997847517351990931580781336334827118747103145995510487836903194340706480540857804832787935719822528010954894174787805868788671025483007348670054595464620769981563065662285834906199854310851581177559233018921486606557347305217422976585388297686719255155222274970169692604321923969522207473696430497581938277614471193992540719815431519669290357071841522359590818504226526360368835315300783844539246564756511697550742498315840205587956445328965149687428012653627862377310324026971759046913797347083728858691672743574991254539116700314278675973568122541236431376481437455346368719142584968596015218391726033300352341049628880844721848084533760987435994769246368327788440751239034718277836692989788082325695736223348316180311296011504286449982710213746757047692230159403512892606605382865920697865849046358695608734695438420059627724561986219627002261332146075829993872284686257657245195024516149223034679736579028316447371879942933335736634564677603990429891941930788895562132493357551901097097605624325537673487700392586673531929198146022157231427600770630886863242653429168203994424483756690592555607798736805857668737689459436509908605497916853809188381532260496830104638387013747769279316943132236760688865343864235696263074638972094526049181153868520689602793422170168470098344476055673910215731703809209331433500166018160743421440218251287316011931739000235762642326573655555139352349680301496518125767210873221193303938242604491418552866692750341779693621916285864260740170459860954263496090081795043018782358170366958480470608753297348817019874512718345000190619883054918835732702061892858947338474382900887372361014321362995306030990352743956007689924244339974467501159219560039152072024960394051905959377504822091051615285487400166560705717433258542551874858352565291325790447829183235452421906556290585931018850170935018824684011113517010881595139470528820600194647466228387797314486480332635102024354521322651094603383548759263881791909568289711990632337148565391587170710491105910273924626682008517332853597994767953149307018808597018014724580427215291015940212220463140361121458683776084106395257452059849273797673974979419778946844348876428060165501470616611715855892956976015181238089414155411498907768287459257062911260093604991169500656388984922408214239812288751338078145050959288461272440041428983251702171461573872792312176278146881158691035168872633500327836770350316866190284850725351977258549388091335898662664961861539211125149532449031940294698688583278887937075986874797901362783936860969673448222435608526954660134682951846991699032248806234516064851250344059435073303846202025527156418553874401057017277981207259095145007071700504894322244205123445490999838619605601781084565716346423678070827030602410643284453820468166852136509104170226375947021623513152344142416769588617687160667752639997479871643967548481361212460949465550285200233478821735325156395183807272200747404242313319025523796141563311241407734861439062020548249153791066967246535669395454216777134733295207066997195476113179970432188538194157259733042555914973259490715943122354046882694176201670587696680144157340078413167595557257638132675691987000683098208006690173250734777888686841466454854518334708198262767848124672010085657040613597556355985970927781015869642823562575196331051993794368212356028732474167074523386368692388039656115308775505797780545588015444310711753903586148887156287337447457705948989225896835759224074516399294950630958838749272059387865097931690772602176013330451251233172920184453255724183753859371113826475041661166869175733172006161708632494964160788766237264665014925780492138663058728231238801796262614403941761222568630424269456070107531016351743735113073581664848222405531972044565477796680730991347449657456849381577359967195637421003199793957255772599396344340338850968140482266337956171026778691491068809866631292314094234614866271566427134643170966873258363143847883022506731479158005617669423265714977524953756519114849111530551110874096043728868646300521792398254409787582437598265989573388858657289253687746389330484533006362615466115964715619546604540401341272968750158946994491181309664783299633925204700559187504002023050853402807065714633954280819132931250168961357365595970313598497557003224864896301598565064462525075872093696109089568349352282368885094114263961654919901581475207478014635056031988675757398550025112333892793568855028643427020679691327337575286842144044170368482842094712912629349186699113880725696874399691302252514692150751786335213578589194401075666284962782664733999519385106944068726102647398634972321822945049387758438832604560983287863962063214978472344335912085665504306377892058870234616051441557606104049425416913659951757279418501450779565985604246553897324860744875910732066186662604833184779869582253244115181175490181880601440796719237477817458877001259289680003840293283181934261432840242596395074286226889410236526250133945783640604705564930859960755755741480894751384618042761343034394539111300635549797927867750823933353668989322548197540820970245266560008255247397419858182791320441807995761363575385813539810380463639555019154271522379031117084392785812890163965500906532798620704980224211695575944836562425649674165844530658484475314655935679113866970569712454038460645588260276970521610421678224462136850814573731627498729391952090613547520258453878261048609558655074355897740537225329199488184027859259326243144523196083592037839304065200166532065054772225333091159717403636104308162632109624678446035679455593200046770418858834253143793504432656540602022575558767077552978689486585952167923721289497151143706264871845379609853559694369056808502412484257701677779146666434618038643178940628081243065444255886040312478194059561085292067217830596396085281058364474892635955533126922133710874400563390858015858656039876243188981588115920313445669030320939784691837795287746372916968097186892857860907656465821379248394336187471194661720909541805681334199702862744156577466153381197402965459979280446224110708990629598644440363199237270007155880356440305486794139346889620646196183479653211156691417469601661055361166851691974285324922480162470716393859647191178961593479109560589630016639470400981297245573765307475173314102470529250746464518097834864419226036475689515238457537843040446684136081942866498947729143937285673116637732274866527998394295860722562984899343510851988079530706978805588427132271028672690265350923291031893180179335930836136960110196828057367805133549124458539443139756588676561029782683481160180998713622785253720751514269816141669132636684235694915172693748115104835002118967742571797106328114271760219232474741818959789189499243468041656075174306047177846454963359980355846887215201173235314986962199823021712420164105298455786616136513365903694170523785943771742092304850360959974243378387178394589828112756659799274190170438061238313716418051587789010830933936741326844313735121308519557396374334957685170575992871025814472661779344091795774521717475871347230324137281960503908893015820433617431270129351079892953278654253415020987640338089439802904480524210736076314467722249916212950040939768331634587235455249789254051118867033345738601159627085007719833976641419043731191513442175256555573828029019705904535265519531851000922017343740946029657875918143658103124964545236863365008417263308127884442182872749671381148854364027208646629058946010657888397564057196537869467629143256491595204327401475416118012615245314935741321090945851764740157125484620910717304784513379720790732438802587542784877612341930018111702636495786048172199216521734924780024114654433239460827939294071724129826346587614504997829386909898748587226707265710313104780413221235281152928185355597416843634500282165454379155635429264621338922253871348456818069827439263492369041752407723581262048834835173546403395691486631823107211683904010238448314747890550242353650332726350090380904757562669851559774324251432727803802753135454572445620272796926861635358246109560217306691408786376507787914494974087860102179278890508260895164050371864653156681565649192719436566721640356565380215117893902893188695218548817365861663647575845255630418589722735421360960577779660286477277516307594393166121224192566136095177736163695823925377250193677204630371128770099358190443011897512293609904458656882187428884720782733665176289117037704257596168533895968023500741903574781414651844106113015240264377518932081582615879802331725412487316344170592365672420187899116597329866045176087332425946308383410637089969935296397193575202275577496636612347754516417081470602573112683315108805350719776604901775564763569584851875096620217962518250689822866120866126393870027911033678611840955653796354125467962727366626671620511634901000903251340053303720167817052574142181373342024438147992111417862360909325152560934116737835960205101306778096736524992428469568580053641514654287575313040388170533036413117665432338464477463111011737966669090213117147774900024695090531469972250639482192538916185038622518153028016378603926835379818858700407687239721122612673709696972637098550369445663974557846407855449869795884304921168486038063310880870413353431136442546424129109995479286459276364851834519405959578497181605657633196932328962129812277278738532495927147480660921206241739438918334102811548037821893025231412739251209137206501954050091748753091040907567523691847708431254013474059141752266218410524243612524441843263170069919399466118262639762019897637877215496665007433914741953504748961627820779508775290079846976854771161789583507171175360993941783701648539481843103387015367080026953759210565818349272340348946455879443127096868882297295037679650012256149615000073705373426127028743725061442058883844144875639780367030154827857855187580604242927908500096217906345916714093420347155136322413102664971866898836672235458292747060953648263014903312121888226418422678667365294914739386639442552773752033387788859770704331808697441892559134755880533581562193691225868770754997431975356947601823484570065490945356927834114238444517406714486147930276584432353399117096054618254069213148032420576356284204354475367483485669249967873457862646147992391798875254154476762875445945223770898761751947905135624170895131368486063472219822402074782300594832244757397463343747040482171986910584606401465210565508488084163142617823486797095700686312205710727346931194682877258292429545661256612311682802691831152524293354697331831133082738618390715108919201250082562334805100320333278883555665075163655381932908984051915968660228400908609054005921584020763448017119931541658067598281551086391777392456583592709078279166381647863382474330269810909158730440819692914814553803396311705295499138656182141722049003244273146586559637279706827131584874315052341960345398366336148463248770072578885856531370015294028678893999305181317263858347827740305109060500678244395573291706732041767142763774446580067739790081321631297340586700055873885897242246437892993673679363271492546885026668022272639811766036862874803171076026640571063247694899581790082334737112698325571340876190880190043725449653779742184048206309701493837030186726357443079798179298146037973722027546450639887723792233836812730756795549838158246551908695762840000131408199766160594004701062263062571843908927576567143999312943062339744266408344814721995337543655537716913129995311292725422456624148163273881260795522130276284664507144845282481420607434779935162614961180987049209561612396507997130634586289800675371531420081495894111471246314938759084976469682914030198559659619033286451403818585203112743401792572356159108621439067379481080904979255299534398519818786602547222938794617759761618241295835658152850395716312632873275648520629467664248152399472412110138931289919727686873544791551063419758224127081965071008251195794453288837422784787491854774893131826568532608709139626204339362404033448651732635539260946434790870759067533308480896460515561717371731657074273796438374679685679382078970228797323676381701910634050439188379845281439598434154870773357161994938590138926472487245002577325869696349510772012844933542779100525782618498011434073220864949421371149822582238776368593842174348301329872215649468886691677285335133936437335820573609615761821331831439526538548993816919327273989552960660238605914353981185861829329517791344898797535872086637141129397662051803310811632856950274850687890935848157950340733206521820547873127078286292783706007484176143821799881034395294726193071451392294983671883692007032265594045663015498208160455160953713046368233167519663776062195961494644336475476226438146018952206732698938749870340067302916325973212512135126958958709728483394753742272462090611873096799160237919289680412251967192164821558115235920902608777589220810966373010184456204310915911937453858475840700844420482542115330227466312044007023033017622492092828462955446039821862618253288026327753070954667302653774678699365777141658975242008977795282916453332613886019066519408331453249253545031929573608080660755556336728358607479790748082949879823795722674093278044386273922598981984517950553240524146043134704718436190615919662390858247297655806707602980060783643531395925316303768830710935285386928018268387144960643038299289998762439388303731130270654101600507029101571262171420074726215835219193843357942580289828150929965045000499065271482626202311691353257155462980951546915539450611696616128780385714526226177879341160770889880706600520609824665880864983199544629001966656490277035474616822488977329423075711221719148726462622320252041668079059256401798218885258256257576042345010929386248023792817553666420431341586056962630025854885991951824194083273388251959038498388302857118110484885170995167526502356646282429950557656540532579265665856970415499849771912981777874241400999112158637152958176666046335836022364496672495487538193016101776613025889995116963943844107759288697230372803219837217619910797733562849926105789703053347814949233666363197610283554994585403304479867375417918859078329620370736160919533555931917997302917219601828215558130204256858763083283179117277425860283531263788044341154736727612326619736722415144160281840530769917145973996116689752212580552785649667456919193536979099139407075516850819835001286490050315357024708287753478820317792054087927385134265706833816488975282670195612879716073089948582237136742177411668135524283348582037495556942670202447618536870396226896204080700772703045516290902418514024788829866935337780118172051511899206698242330348683761858960117087041970622520742328115786461755398550583028396087379225188410716870699597347462571797292109521286645226672556273353439544532451592959469311108904079043164492589250734441730775776518357014115474123083306067231594930425427165024792149494588680357595128542046986248740885453422799610078649374145709305212675019869984826126521331507619100080877167193661433096332520522452939887780688331008278615597050483007454901698374708402735012371519620668737363937690388684217322039718174543942613949138915125489817320608128908091738841626232582780912993577025975955941249948861538365907180532431868665268256925777074492194240909264981140790759360503774314838013162253468394950163719157279641728263247552460946222136444973702421181954748619286404792681896197990374826438631629055873899339630173963432060896979214739891262405798519922116315185107064324197433994684732966047677543593485223118266571212839914611420116404505189085022682012363304429029661134578633926041224534718468867978416094815125534366931845608461084786519224177729738653479670262112693845865378301597899660859040620277811330063990389325526658835267408684325916635387915243685266150005157034420872903196175140810453550957468227382239422446747682927357953151712569365017408774225361862579018648143801809656540645614607129088669114029915921715842642292190845356719884004678427349747619469134163785570689832729522062280945416966689810251675413805137009376163993766550268536126309691396459116986361015903877942269002861352812752330320456958231618256868825049530657674922474715762110954850450709790471028796486887743325838921435419033665975546691901656443750323155701431232288400758747693336354622505643463550726712266289686514138645329899238648789835061190589365749910932015097012016238144955438537019322772959938941641119998232190005490076023204169430343319221550807033091253013540596224758586133495409457045280937112750513390642712753055546041993294304788947722917406686734140299790146891639649353176147875886301387886670157813132700216860175893090724226945745988418943131387133984925156204180631241193122588537827753686617428132663411267239008787050126794654989674577572321064344517885511486368576612961474516181483619087518416450806704277954729890650793747029759947154295466788553545857725306230500078998996850771183180724596210285093410800213063100874888839285932804507206819511841618473151489394223470045846226907936362268167115414888420176856591637520198623518763067225516628739742440563455840948832090004470857226204380309447304532359666011967080449607421547776118149888440861589805727722225713903248269485287077545769930431176224116516950200560483197842033318969692048385876434349885120888456863978371521033633125864605241981871263640904500021139937821340489426239430146690926213053830273328241389835160435164019060316215150933113096596271644734024697804716298185680414592173459216533042506313117630087345974010515265353094744355330356006043840076273913221607696873350402325571201234769141749786137200385303816190424860221652155181016499377297654428586455819579764002213194919345359909504758156156132988471337596770002084998216380828624678676966372854593563174513750122008271667206988711024142378804757260294991493020735217520831460197187646514112840998006147971746374945261192221770167721927594261062262562355504496716035688537856629445124775642076799952924166151855620786393825971659605837958897635482903732857250415989603838949910334286477552748145582791697625332103811287385669247191885794584552785004405652425307463323167037485190269253839746594127309514216214930280545192276657691657651627719364248565251008716752961916386427064312961643675486662723014858428324105401940184986316683543890060732759110569021645543335565831752201897787982179686444148617351739874973256654792376119911238504479697287660717868011671305725036429459340736005066135560015169828089577659539253318168866111655821196074107008257833164617646830058298036602733770340379661122211186390480580699087147157566014383271797030445760827341382230292006556682568408907212079721293825382688737781737552817136287431052164068492346437465932244753890872687651738593427174306105248811686032481048808698431975824240742648639634324812757697003242796039495660924431486364458183376891633198101462608866630069601071236707129413893029009597079595007705272669970002412101327092935746282886930859306303672248448924470599103240335249800530596349427598558280988602332891063311592707265878012637530477839070077088048369072687099181575190422247116767328693402741409145337794511436975648243723177263935234753984716674362359446384725697920329958842938002378388346215870092735259704249029136530434637741322446712143065557221568867447331522786264073027314377644682486678276822608032506276555399711776074290796304276216225204325602202792798993516758288430609627354377926823593565837032092509052365233830301563599232739112106654200905204964301816338957537767248266563897556350550083999033929321675547582603815503370067527334184932823331136007598215231940248746427781566618542656829507181973388496222397997228950645858767928366670788196860239228365999427658522709233137837636058317542323006673283916195944166711951570512351547709376053722305862675115141733599790553699721661938017826365782165878117964976175789716631514759128964934081118982450037416119211297088939643028356260716682741518830004039732254548372262160319972563932720048686546794225578615522407382478565190751885595177035724313932176628846211237126888912199202098521760335153370850438783436330085697465909885164368371112908189556872333939168645941561623211712395642741691767192190090185043569727964807684784137404874798840260535137904702914341050038125802808563144200816854291501538146319817629267996380621709753849420871459717922651764875276711414756207198536512335443709582956388308871557447055339086217545616407883954630122292164303722118961563112176050781327951502454982937805399491582214246183113324185374360646708403641443933540412915562233979106951799116975994677722845168162640723195014552225052296041349048439278256408141081481835407626537700800633056854846474464687904173484487032118185058001330576846160224587066308597435344956208998935519284890205130315812236748565705284284718828130119204045881094645608948388145278891089159592814158080105430981935366383787203402973552366893117539631104431285232378831008360557491342417569038692319705114204128176723799509401639014023899990447239450384019345990130439943528691334317857777824640902668837355544255041621486158242612949700019198125104835122111930382352569291749521085354407898556567926740771967373704578599430823920816914937580740432211801446919079652379581996922904042016681599874593990708231318728321619560719032099139886667241365128707952274803124682128955651692092321014938763445635536613436649818372725764035754731005928513502614684611002737060370951873468343591146688049677640265235791635258089578049116205611507171214520514273410784144756578591016115202341450334235120251528098667465881063033030678081045052736436231540380972854064025684590976213172054093161276649326260243096701307534331000650677637216513824935991696120313152789690477844192243303012681005070982470752056828380196918170146052749112024242438787253409673996906587086217457711634375922182032807271652608685899782586897642171387830452486276259888972275273881005770948944055651469569815984336202012206801720895626061045037053331772867176365055461826836781142370158056710294890042893158195652089157001293387594651422108968815011420025664263528339597957386706616892469946174397604705203927492793920891131554258555952211601120997573536050447895111942583984729089216058915283349268085039956984748938888076892240725171089903430177523290839494843016064828654844397849796090334635366928880901169847776967965267683899590785724482482250848753884858046894090783877709705630935785012864177327367215130130278903685108283540191816868378572266471814040494686793504220118912927646706528804497932909826652091152204729055100500393363475265326140684921824071721482460189504579191164430032114552435162937554072903772831732859464711024717808776072023085565314829039509600336493070820631680328990387215192394222783550695240080734964913000920843991873303382592307482379278041914465724164614622803246773136926437137557055474608505241648622285086554824933397220144597581993457950678451999203259538101028768757850736769666968279787912705533821844748286892236820014120381526904588118082025543996658830616493009616093390675082402136622305491153898921119703025376061999577342335966593566302600019177897232338776073955500990306672995940028497470919223039730826428450108443881984096804083751861811291235079747850975334187261789142216998015745359852214365371599973086466728334214092812720229280325127465397872781106389274080707410218274092202097140839889528804146739282152897604054054610667679825741051768168106405672603003859248820794330887560022899537450252944456716738980337943294597561599732119560830664770255459078160689437277549156603221088046228912015870516501361504470039444359632860474378437484572556148538957549087114695688733276928270488772730922058807528630131202129320384626012013575147516241119699457047743462335750723841050907511417719504479241422160113818981520014348153446144970875752526577449494234443671339774576888164417087573416063467091010465471203601163543188093476569354995276911348360579504328461762318333545865177111418290328014099534434351126422265132594766414356246752127421459580212264958483261622196005421729015255503066600019117182784334820454919300248352018688304865233859842122098750376533367625737947286279085310606086603113540941008734893949100419036275306471329520653395695715498749143598850148842428628218882099701459159480112468800008816879351659158500521960405865822481162347449535720241396782514502306183897688004304220491641495335957546307318287628794566457298851754085994455702092216205856201519071521981049302485687235018045090269806953880155036567729855905860928005380611698076484460482818653103500360783542556577365241527635465453114444713390053638976321539978974526336305648071134502625831338114951493026790168937286625331815278155758481622398829800168968145460014286865426703550451530584486139336425742736560477053206505714928250362356724533510108848026530795378965807746288265636692261269525648941613768078434522492657591617316688280480504430876933006693435297437049323679120507495618744734661868898806373007199884549981418578634022399938099677112747012732267060833746238361383032604191072805510421624620063967608608303292558763514319533494235988567345924729201473370304281065230585542963724160054761382827318914841840418850106396649104335863377862448319251016255056779420070345349892912674487182204536715253754010001999246233793740664155824588184744560122531872231755723023850305321292222445303493227745695810920753630432827286400535090843759089936593261524365220892416718598932013429122887527558918607497129036199580539110893582531712234066583904239622635492661520254207806823402378412984519791781343982472168384890079616119925222788997204220602242809451954212753179612959882449392031844970317222688053561701731274139584284568077155322916214008751049147546647102412952766546571972227332258545874355667316952711452501474345673973786832151856705115092883713357573597362480414709373683235189968585438068414181829189964497606470872863835943664610569496116583142259228038799953422070762573235777873020142571834935241673122879098349083632794622574514417051228611034075297712600129910579679421492487819104925389360088859478072105074405166504289471601873571404405012965432294674070961650424911442101019425008472884291710664354908954387545004165018866544587690157220132621216297446435940363332498392534835959990860790349979156383033319606460108067098413158694963174254540631503000907748920912248429148139709912021955918383772798003743057608857720538797981572093668379687782171554878160272511914909594586011356910190162203931351270134274709834098502706800007085906596570638534560328556088549198364827430039414412513660240322972082855567301510921612704832013279580450894846460746744477202842827265801205414713190874988820652457604217449934336341676344906909137826634511937439361221090432387266083400568168653085652661373157578866705977600723659237776845278059766024054923525726716012333241363796610674286034810496477325212452541357703825769077072683257161809632751499591074649766079941190354623630963788886606211911430712959074428096222767725046559539302877895355522104870783356210198946778390634278925523849310727460917283433630830958858509858608982297814143251824564290671621634041717985553490191978609747977638964478565225543789587635472691097059659926517166414273159219448064272347060686630181443916476795343492904985440254371411482248914348278938002630184114075113304279615332517920992496207904627130195937961161316201690801991437547560091745723034015261348327030089470937746339262917273269926202120691650039170916386779709329304217561841525030021241040740812368440370816517285068460265980757778896121362522404373588195592593770882772003107137557413613640877599210038129367874947407938827711019288513337321345608523561601906059541193140683951416102823219791765245571850344345187591026492241663306055652823229232885045657009822348821841344122576357592493716932384827403662358132224474544384556315988170587629183063886036840150773414065965460862001280683094607543851533050122252944423128546762045261153874213491105607749055977656656306493754185428696862536284507438051904125382786516569362858291979280553980108032093464856313717586382672623107926380492714960562292611074291111875022903616047069922251929753693443612167493809658853283520829664400064575071311339088205459489470481747726931114071872504247158078080693368234666935930504166275401969425027288981185926633941906645072717337332124218732768179537308127244217728202529359003699437537457126952039230736812771200981669365588846255280650662101093371555082103450788596966814218749507533877319163933932096394862913799867234381581415439106090129311537011468914776301313695578313529533451313146768980951037173553371096317009944007189066232322664445259466243502583370803526883566761736219052483256360944855886700056624206908213553407124810314898899205580977079124531251900202440387779641478100026094591768037819633341348553834266374393773910821706063633060305503510044155845664654428352641104340661213765337652715181807432244566183618326443724704833606920377539152705564977463012167071150114825196395849370970702319294222676083518794082617646064498858230145264089075381487261459426520060776339783825596335002922089039809677126043244608394868684689986172711538187558361962906836758869392145721566853394304132403686510321606220045456490630872103851278351029157487437385569010165118468544437447246615338647931974871194165495825236467102650392365869444215131157879295875704906847091238609801965306900767233243688699731172181257310219352522587778726105017944230452614292991181245343695330397377772806363168767036447818732173439373054392525553419017986556235637500397956516225132698322209560220448695261732865289095383450299326740307083582787959124018023170674158226789076892191883796430293124269663770593870871614755564093951749746499344891376386237083161277086798258303758383246155661586720685288947857694026149462861129801046669557870565086470557858050284023591098717309975987328751693526616913243835189961374682739099374338738681688680148930467141935233165948322633011614275369686684027623317716641167162438000673816080849675432074513690726910441323301508307902847378282798522423859570436029896315537599062999766397542038385936799128746064245452546685197768263449073803344219904834994728404808738570717143553561677306971575040088941846874055624047542656351221759125329889613530939303113392950605802232051310196980192521389636434144276592226879247728806420277596460992143849958152837929711668607814454464907597672381406645093954420582067637191434108294814924558602965119650727123502897462727317139208600112397268823982770252157811825415608780756381576073281751494575357323886200976074348528630169479265115221939480211807384037298921881850855235844744073423650417929742432617204232306214164664914324181287621373466394002775488222566672894036190635823995585377541878705485490450664353172696660117720730716934413279599545687289239204073290801197243533338518827040931665159350403346644068706214999981023421309325535226531806320832595326011516105787426278969027166011838059459215195028459370697659361237671824942703827136575889899745288377254306269312332133108358699980052808802325169122028657924293409525167294090765513822213482948601040262151713212930681195725553305743165576756076356937067300552322215786644607915899356047572971381492661963511142234687681224887751274985451898503016395477534357549227772157131555137367404748427390082230747295755236278610308958682214882866623077778957835621931940295524279760797543878130415962957176128983606967914697433486774121604479318605406067354494428820550450045520912732566996997878027060914895902324123124985741813984316955169259175362115653785599675746805395638892257786404879663902488615798767553411354668276782514697954992978649151066354957003012515677121014766251657478166345948395127829908727088040681521360376897884012075905828581835634103178207687313794005816399997539524441866760342318041908958001863969643814247071193946379122517768291869986401609139981008565317128451393318248745977438714189473712745065278266120200629938544612296834583253477185477869555440734084174731242404962362042514060405949150378740285956786229039462739932260592305911384088080647845755555926035187933514984234306507262358177403822555480809947987892824005895948222007016442343369350083979591225275135015777886339691608883056352487626025227397795624542789249860893161911414121725867816342344072837573829955961298388757474676645227148310412945171726775117831928067789509123526505641847371475821487219508772833076834385490531181087640864803422969077640797061196086819896313552500312193373065514992842602762565357601207300417853680148486270833032914724878954737819978529618637364567702717931788643324924126423036070136156676814503676292240138616876197349784173114916161881136731725569071703527500438586787862023420775826189979755464257700201034706958074752915545079895429090603130334830684993518476701140818639211549273888421064570437632450092774004937763771046511977654930936233686719888296198230135904470640943169352108407931090123300786242125221879366536005583397155939824326033985733732844792985705066814519247512360969845292235496662484069889438862235050021707066793044616131258920509215214876548931112982573371177307303096326210388119424654149828594707322950101551035653173561387173791972856214914715877996004092578600685681467780700687489718369856143077688862318368204537209131196191401892034315548129160576539649721254930018199907360055276314965029964097005754883242330818925717213834502863029694022745260907901488117192068867712184930923106218987881557912017081873678069906868336254987573445463090971959981348827683431953942965296351023451786175883264858191380317429071451234834189077907177969270662972076889581228993838498086088046737803317098960539042803998596228255802162835480892177831941620125929368016417270417747659801827885602273444446189206243212961080535603082279947418719504593492536749750022450558594457901061335376199326209647947866412991535549441629024690927777728820889485820323683331111044988840004131019282325087839896204675377080772505924189319083720133027727501465784097663369039518087361097041906915635147671566020187242667082310897984075044106703266347602998972477764762640660937809527673576900700268037565443890341484237134064058020223329592246608124829707465718522187878486393831566248281123885224884820221131487128525557758527189974415661235222140957245302878961409277112442649597018153549028666042796317992175059869757877406990166441099331525232969154611061302540097912898388004828386144190470507296610707819345336224638992605975856884826182598341884566850798514134786066597188689231255508681183389685201270431120490321665772220481874537303894344206128389563382916232678658995475142050689083813066725955483901218009216909363564123570465804996033497435934639241227257866834570909267085852419680153822775919695016059816483652314951011387250865280739979059925795715622448399634891918854666722831769538269453154073999235966820884181402345997030710270838485646579685354892990116050315407702492263950531482824867638168064098341050942295146707517040928764002051590247100512109541240185187583455577455848889576251742143526848729014648000112030237437596815191928622708240030183989978358904276353974248227921464716948072374978241164862790092724088288168678377120454340819238333329250667739718312530335229499811962606417849111700995605364258665599872540374219590531464437264804064183593656758570601569927260996757890590279360425935605441763276663272015817689772409330831673323594967039518134384561104363457363669749395605675710254738907162477999537742282723564302669956487464084203296685703435807778664051675355363983437651964192314008461603051902014935396516873882298364989539311148871728647661291847432907597786665521022904882540300870442675374759167415021669586503163324950530692725027999387269922390121720130358003576231593776071802705559992268876831588634427335648023411631132679284304027558342019908900347015740828043736207828485685446080073414669813176750149166211623520220055486315673295004935265113082170552923638756117660666464111138336740144464781324986898183338815822866473927768453804201177942355583012969544249638875054044159942017068468330006290914416664628806883849917373285625595679459521060455639500487739124671582991750224060063357345172609155159824534181277978328261771677525738165378596281045345217371543052600018532012614546862494267707186599120339954236538796114996843861579890903377204189368340324798439649983501223942310513646260597698868069606100010830555280889984744905573803306812808563641963445397227254058590306353193035257899517441932698532434219388196747119230555690064214428110472662574083681331733788869755681972655443834041422911959779592666913169278140411404284207028714754208071816495014153267249501130287928693643140810492481947364430729931983788225294185886135194707555904152395574920165634321406864498653306372722069037366020106935318010939151026147577048396888997302241585937314687165200118917334199177871936874882410990037605750339955753765280972463536325879938117402920618657388206267919362745781932907280682165253479309641485763926047611392751461707121196210774614593380896890344174984589597788993612376065641825258024363116434352732466119954417194034806782309616687267427788117915312200259117279943746526603340216480512330062830149269891702696279949981790694611434961992594164040475787271303021484496141302936577126391029010507002934263958306883072619699769105188476692514728650231201847010813884091008171170347409278717208873164252312319310823284482667574775004111111434643469174795715965721164985899736201372975676196606413695880507040247189391630642628454348924796652790243650201547641680458340634109454812656690170164914169687407861382149023252825309487802898312201693781075619343808390255214331899411417687889981838874396918855202963782654092373021176114794418494658806689083952150201008212574219656001437642535896842934639570867336276026248566676457267443888982186920818645505373923870159554424086231360839082493780844853825661769538902412318631106733510537487000878376757815834367345067860021656672506481207811450161064712331941725317678241663356178096900248644535971363449668736860957453058483090984020189992619708606941026588624369311873009884046410756959381516072007088031126425719791478846413754898147623385784907206066205911176348271638842498935332870671385487305139714619357949952170596909475831321862523518639398107931025242500082724296256663064849451994745316641417117642222783474277230902793607965578013612052661861206518326863262942311638323319494428514507534341837452071755655953008914913905912974402795693520090600962818946457523680028168290162093991196107152654591227201522419476673278728485681948502515572127982939180892069998451896925501026031688789659788993107277990666968674869238112701182219964681924551792491734795889638167989648586192238459580430973416961321239215372363269570141292295514271817701572931026370531672242361207832304764102679751877386287079345158795444523959735468710282433889166485882879277502250347535957546453183690333537554446917927252051732854130309154866080515417778734827368773711067913178834038593383597021770290566845821341108137336572895589135422386887525030459409349870954964976270418702274806712002681335699015798657190455916561705867212350709563787540850430314374445426477413274481332726463242961653928991239461075865068763537896673633252733961685965253358932885473511068195756706768001755944279189044674700238773661450908791723771899675334668056896779274184040763895112419248587250850630629521450739799179021809354244917686237765987429343577408448275276013274064592056338387944645855722303602258493815655389692255333743086854188517891666990837479843957047622351317251079721900612907431824693303542338256338508794755336378764032724755060867177472322140462099348162153131840487516937347577857019256615528090453576594242369495207266709357446923057079556040020837698540035729372798222703140274245817301946842656656638391907111895250165796135295969966324305494612991347797445978410389589076434800818340468596876830690378134174535538435746848812504799167783288062235943480519758601304342366754037274542615007085207827393930537464408414516385844291952469175766876854018218558900069813159233383670388214352149164050362407670194547025198774126799886949943493380814604840574552814165987995971580643060028525928870815704566423650609749848136491488841559764510540159965840593836949617342790054989099218860021506064102797281133567893097647233962859473897746959026439136430801327808606975030878365302326286379520605029198728457671321088038867527227169432195806714828189202872049965143651034536965088773933748414879258477647031696387142578620045473265620321273054376435261167872625361418174809585254498756393441124317383630484263037879762213168207005714873881977615842717401879886514503684726534237985507120281511571799786039526652714957083971591379748179848701159602653286333248324936877150396926395261548791081211766199150676511495974584183188355275994426036292195378445366397754973225706924374241744567522528983745987659542670592228127822030014418843830728578746747142863178445348063204467332444015681775199419693460730209246653772119419053194451487916727744702783779662830990041897220397857231117276640316326220584098823766471748307359316106176985416842309988075397553261115895878656760341428822092889689869653014347943026113684721301428190133126312301682663976184863487394876145180986267519118724317910369314378695348245364761095128361775607461108821246854013324367564831850810819534172547701181811224341178738993672382700622918230861523744920587643633122113080847943787611325659707000249871956576542916719560063061518576121574165525614649163048224196059776200184057339115153295426919056550141079149319291668458439942451734871588036610836137478680874653671536854017402614623565087300989269181486401646108954609651434942263851604802071138992712040154169814101612853209631044771567505798263481381002577063222493160162276032372656175092743216050083015645346784204172950802485520333618567743105087831809807445810449575106198842131377309533114475254024052337544515567961908284097954380854868620839720715292353089637160769550279840470111336029489494766966450536124154471479397960464585111884865440791642244061001032618274322728061821857015520110950694654858570048875561701843313882578749342749931165578677585838202017236633763593083957002867607940752142807994851058907702036278936537092034763562711009776837518088982860646452933879693415165281931411854547265642608805920730946981988924031479943711029539884951527675397370961363606291198528956327143736926448361844832356780481489177214122530070797938348838073870851252978837079241626307545162637437142719107504087548305738795086269403625792893975343099352559457076916433430369514806490302165999423126557860029224381548261053342499773720355910702390601789332992253076795172146410635591940277283780363573030677371305223513861238093284055462973602514274919623135322328289205662596906415394908677567804964469177886636839893445825992087816116280448726162968233381318831511257280648827565852955501165536880838156632232672590418676317010181065089419537813516384574875141446676236813254046645307025429301672559613359358758012047586110006010956043815495353616755175294227621015473430309544388064883234561293528360259178103964858435887337919236366985790195666426861917179720766151391421558677314355725899370317426188537569666800777332541675786991521158677375264401051099132215423545099702936884684962212680586724331220979723704510930480518994951728880687144310885777198636659506051607142457188531665438980262886288872307990828845520635242342209943538541814153770172384033538840587022307303655780887599948365898891663767509199235281396553770138777689923823226623991027022896717641739341357099439175133208380400229253354871995351017127481066675018533439304685299450657686929853166473628465047790486028464391509046594993332176728830476020601740833637141970907780083904357259857538381152826933208715781327199842046760267829202324287663515949954443325939443688825215785380471827347652510489144332827601541028730391632168880784406199760985757926709108449628448910494527291797932515879848799622945961776663955854138769077757130742299011951151763433716469202211059898979743392311851104287193814021633823046436040874970306996234162481283324571943038849421481703103559048806368525448932079266930835166850506524537719554093856811527093775143803267412753162108035809163672479197732491303932927562555124766472500624622956388384087689610188347594858931789932176139808953661574789222257917368322719300552514110915286564134259658379150587955062672943401089463919243927651063979254960737826987368184147862867842317800966119852621057590622766077985219930513569710938654462020315126171130619005636653267780453468074413277457783604559611514489090356644303385053130152142005551454334933014630538235422776622430042735498674154816634959638012245347401329161982348717604247074628367016028176952388119999049562944608861541414463785098533817244704291403974601360320075211761764595092609562494662695817906568986130861965729364794623113382514518082211859468521562610796943663106411913217717117221891528211841711439879167965906708165230439689485241099776424834049006735552043593900720416686581794458917172192860024993752950011942120349891063689552901626313284338286064449653421649063554290938938117659275833162887219933497665381737500562827790862289628825047622302136378098890184165354902381478813061898461070458327166212767942831234853752417393384989151008001878904646990565418636047324809466358798407582376939552892067467257405316238155420210459289146000558799016516970384920128440693119858319355925175819135741010416365400191100492724540307336709218942414115507579265860258490455621453393015583091182903523259177141115193303378457249714092134419389610492287603263784860923859669542410529867704155004398480901455423220584829765635675471229581580441955658071837050491590748588574445689275305639971529279530833572617435261650653179245295917242439400704445283001597929887992420558910468375765936666161264398398138640523479020037436076331436656333162707528992323087778149262982669605867239280485539712377056483759596462172444284765036195678664299989351006421238101574754119128893862441344465166841776955178299669253166187076578728068154687051095543709827443413103939048882638643925353343775702151333701642282197084136632456155869689589681327196334892646657571890427825317146324195066473286821322577752263266636304721535773231172637064324293474832659872369466924513722771592323845316747030825326508520086184439939283202209049364808312725994405912823301896639259430869710790745438643609761942190280665216223940232044700676414982192888588808072625722631794776086336361502134629280484909127086732369224299748499460900575638416286746577964241325288245236353902567759613057157158645737614069854140025390315930757642154358135181313877229018194583490166993033930748818674464673036614299933030155067230532763024978846705289288496762662577589537511577667458895918461665231612456270143634274951656364231404448975200881826560877826352884447936242551294829425869959878063015169182981328605544935351725711071084603021707630687654047266798348129295780151447097832886565042992851665486371796756946566346439962684413061123450388264800813410261512273044331647712888788593096989108916388902994685459429835083404446423078683768113516785639808458586227120647916102503900738689778339241731518547741769155952753450970769750293753669372133587538394580760270813339040993327708385586313103165160764306225018437452918031234286922117609500493943653135365536091761000178878295332253315975881544264850819557547551844846388567998559221237774254748947693538544853427714807136527383498459486069208704964928682869955357367858409949475539706037748206239798628014780938967591382577174021562575147255673182200401774529513121857830861477338268993261441185252089339797782703471822095807015689814218507588649766896907428456221673131991753639262285997574937981329383331283085505276483446563473759100391910378890113181475585836266317010690548848572691703233593823791197464711500776778806951274160273792421191618739290601916352344559858062180916877664439387582545997651444923681266801150568954959997832191837324527239580725920191165563040680560086738205098746085105152483550668195233428482961744119266555133938586681822519544398087284107606743946569826869271957516200430883984456699422460077745910485243149430024685755186896633365129575937825372669840392431994618552219030808280528252250806433553943846660128789837993682426282735400395800512706779521221932264455242528499308358100981061021245603809214419226437042386565395585493375501253307715862919552086672482581166832162414693999356838191855060476254434420373258712721125701141031617125578741741535821110916855766725214050664664577781576833948684033538093101494674465198532395168324798395855016223552572831136656384881790613369658558675326571840945120524582443901583145791819516521308146465213504003402993979718843688805343452996249668300368976655020823665166043078269681982450395235614432593346489328772389511075776568690740871694188174237181304961982918377457237138178961665800937775198279009239856165876979502362366824354956730148562661730528180267474509371866446278035987146440840947080149622569236585765490286552237965310810842660909481719485831962712990577818867619212053971881282998501888462481587051168471590148759242973943273619066997758560818753813484982121438604867962914567980410652377998681370712655721048835316678065091753750763444216104530737965233389665341159948967792285501826827923401709992867200439328145188491470429406619394986570078663192173713289073312763593343161383873429370291500742392326969336632630017718890005050480910420653643272253796794211775674424446295293346540666518607795936380534605167520769885003963936268828594252476185871384508529714013728133213168657917362137876697015380348715046732926150009062927210649704979255658590192688717528440324669574094543062061985976950928731210979568216311021025793805329787620887184514433557776189771208089508683724073934132298835370030453872020082971005711725556062451295047353913732324287831223588867693653075396275139618489782873137375900332677864334557632419582171695076732233436323511122233881172515063732008212552623027470676695651380126804548125300380190130412475220656036166781239809757195919540223033242867909506399125876275104971593584857091831472001438544605299728123375991732508355630431279192790388364512986339438007067540581120665014575356835039824742829868737485688484657981242643060569665910658287682446249165806693304095234316951992253264319648274069648106322927200980802121252356247057487923465453664683875856613913747404146441348938133444739839781021666263122987771820741945344236748176293015962326912828958926639535041648922791248243683114057865699785893377530687974581906426711840684456808582285613750670869198640238360305795165783340221188320740381440404602528126215813059973891959506568109378460683448905860672965077840783842007478888067900845404029292975241607805051473884698070278642068767630958478495001353212312369432939414204993141805692534624904526357738194970947137470088503372471358623467474079972488899395158146027056427066936027440048458808620018089857749570279624681548322824236914680606945947863414562376539688392631182797094736964846898387954743911146121436071194011322456117904854849098360058634740749519520302186354350436470923047650783053382966662278760575147044566025141351674206801147587538135113847356228459827729412265070796223229767927652996312859305733363525810086481213858188140003524595976515197804162213651912132589363210835146350773241825168928954833905337928733452414090905207431007432642413347279518295681308093210368159463571256101589855557451726096156546647244827220130822119650891091644655406496393062558105905352353461817446541985693337291978843381875435945510804895411871851565878362957005400387956076586931521183601428543215037090608967646049001497926793221700661353171547667607143025361289043763103903511562843851706813914285181584420645706997540452165877215783200668060694319851372619479071760804960654333185802289517109423763088967173579693941492178694804308989739561927665577261279321705255830603590740267040516725749875795580250432160667094537229371989680374919709152005584023495985457954052953747368049752894246236086640114334897058220883361435325628542543316439178975466990988979063950219694278720483481298382735773426259388173869207995177953757372024689628133418977415195573370335088136494126946104894620859215412113602906801749186545633043341510290506317543002060291314193070718219551291946916681323438606929327859145388316979338103842250131224463701298462373475103113770672730066548057973040441873981194872048457909246885218425316447540069122569707972294890583682110700169700230662846465604455647837061751187794883988434604207156040572959307582007421305991330184930609833715685722216594377928679539333079061966717199662541789559368934306479183532546622698087303574103290477351118906706545921741757762327153844419825742161171046735485426478530677288373082600684550951181983462995775406918286156999637709291798615507431399170128424433262807462013675427171796904199322847469815017522529331396307386498675453591088506970148070877665281453409052617036004918615670857542327889853238077735810108039761063886761196788503174329288906206041536744298931035871277981513209945659582108046449675420027454704066390427416973626910623416136646211549424009148557413297503186748360319894406098347719358734570926897442018413070890583938340597677198277345577840050120663818259141333993616200940394928291790005334206953781770893207122606152002828407460754043101430495424858437093329227502912311087556677035153066765127700426876160269515154545450964793756918875767591734174829794243172276656782446346433518741404991845113130012161299520629148722120429389566873430712471205622468596933772548575860335878880094457601411301100874194902048501115158924670381342339377534774664065545694919154662293531707290033043215942693506135492748968035545002218250375452958645455384211129920626370179279106135170428929935449042599990263865060217881737237243213526426500045143148905904062013258423887660771215632700654834353128094596112855950639152261062295303582419182162952032831399167266202587570308677302043324791985497266907621478502888328247928433472397484377109000953886320936288311874003007587990730543939809612388327511129631922714936621350527269651990156159407705915366706937161440115947569332947135702372620611904207707947290169575400299234621653511693888733197170718571695348863882317313399613071821809280107699600817756441992766303626786631427679780448798787349647019950897185721955019681205090445055817563435565511925452132092659276511247806889915042225402508240760387929050237154250329256050386299924190222602551857406929553832904123590511618663752302284768043512976222581961747632620311869134512603228718714421256357306992740051027368538346125351114771538055987931776036329301228686329399442691826955453398500578509763115102784723129821135989256271677944427191803992302500240285939716400252208601618266328719988537432377138366545577848350181491053162467125601741621931554995479349914325006466584066885095683600198616349639025829190770460221792122540464774478923473189586261813106229004913077555736419465057548589918314221783998687891627306167954932957941929124772151618501292168465540542282614362998415632705355988286433010453532384056981729687574295419414961470472019441462122210750643621317915133826431420164554040852206855139740217745587452982885832390843295418748843543114976052414813617893560116590141459650623049953322126303787309580451245191251023010181978152785582002867637487231130096285273822431946260503635839067078183794779786166245319515150124573163138897255259451074178442846616564948774509228834427430349344237927111685298148775452302340314410251954923412310415980197838517622958256742238587040915305381866020254036289421943017351492061194588084181869511889847258908331780623542055243794309961678012051633571800264644970337908241652212084392900424453186732301182918988908366584807106164574250498815673663839708507370877670102265547898247497440490903429778110322994982366180210924138865095278332357209712325381064175013172281582496463197708034865920096663713219423822011116293978628169168399292460366226826650344729545153927601422507827027352377782454287230727526570624873285440394296475099944502094248978907515518365987880523010839841465943764805160838375297070690619766457512569112046439196699802484385125257292305290664721146761676653225408300681786266324887105063097549166803584407766035115472316472327648773922902835816280306425294243051642509047360912192743755893534690706073541404334358009601360852972010866722288900275164427726602710446267702036712661334652538507691660979514918412271056929124948623576913453140129671560082109164104276637709793069602046687037085111657125259381619946931822095667217742722938591239614329354167498480094297022968230940318526342965737084574844273723320577258372025515122397028521862986737898767303741228742384347904808908306266568551252103817937428981355717459011263060275777780680245613653646542925446848364726889845172860614947914811072191658140793407659079490401299722752195502994182946811805303500323110115683971140159218417673719185157714942704198550418242036302499869480380392799422203665099639911030520764114199779470193924606115917509744532897369304101317743124634582068392868399510427493287907612168940214545336961515511920078731865471820036540824715484127048028319767537138743959247586318460577600263998067763679356053714622220529064183178224020024967242128785190483947888492273487384729630205418691381285997853721643559130389829435826998048294868270979802946219114868479082246612211914429880232999981458355649246863982551616788288437882666654960591086895078861047040382736773347254223850138790958310115890514748880402383760600794162113385256587312261745138697501135028269426384373062984437972379724694124607250651462122105155551960487774086418206834366556344102890960816607521837404016749799491956435581796846900795401888899973781874500060910927481739717292825119230171291571337679051212595644510596366055661461497054920071568469373360898660258059285448670222585247221631176698029240076312595773699497515193293962255025063533376036021786162417030788358316023590616625143248776335676146182997523080430326529937855437951366198913294153747357469667043387513021280091864633486258722581691007542899846983114843409465052010897516789742981782267520908621142675545623915953049710964066560408320725860209807328769272053115030838334812289286874899073899595544057194010152441092484535717887764986214245325174899725882485603063600901471514815080208958937369800534125819943123270708631280342024602467194972483278917124337017586630260852512020224102160799110820315290123112543231391998441996128479075087503641513030278860534039288386397794145787041737311770023171415867809641460635578278986748218587270248249769646796588132248725905720615417061854621929401613329693158855319277196159866999289564955004073257280838957363335466558846239232017835740486850495595441945663638384872871750286615253558062725779704268477633145372061277000453244385118759921699758692884925139232885168809506182719684751568178722268703496759289759212238611448995221189733876840540785476538960717758736044696963674467048996144532295288294696994086704390973413984404465123494971030410698893984356023229342596894299889624466377013437220793030389320922327733737273756079986480532896339117670282990707902147501224076343440870242539522839992433887685946749602578998267841289614223426654731275077148081790468963654944436973853833727574264325020461723836754958754931062664772060580105935567410731748569090234409085908170414300330496752663332701301762623876820797505251574684790725162530854004593481105119762651487845738763479379038804056769040107777533976062416952605078580544673159524808491703141879411611295019520994269159802688880989276473325223548349622596351463361104868264399915770185902793822636207436100073559809116977741135728051526169043095526630776391643592385032021500006546010125649440016410507272850084191606400893733328846201234009522155877352058791867981370783382908343441547118652616205464428100535057455805877430083295280253187301363703498752090347813787192636309491594670883616074430062273974947273364450094325718575137611440993996286519429408457986655500185549536072286352847735662486049672880018282624960858409857522201979455031306520187055769661582040223677703866183251204172340138046212872012295957733055776176041355204061321642828777037077137537167892936389258464811590826103906903585861531206815687360166958060665410772760652400689240481845952079739294517671814684607100298389648102138877701807148429452040058841808718841730416571703308205696067662938671172244565686893282573543848232504141537476434421102006187136004435914124049461999248042294488294863582740554451036321849460848199541404396453673353814386624609716636263210459259333592728841294686849696508326922380611037013519329949425013970766850041732813604857464510463493642781116684324235817725139681373138169918375344724890156443907758919586127655010073396425183207069224298942535348968943424781107247180222263999517409469267166049560754844381501584810258088486798788866595993559198924050248826069866045677037804591580632080130987586196412304172319908460033303877323623487806109663222263239893162329453550355061701960427952089086854481346555808930248370775808337945407111983699146577973025932301804726849160619701514053356368569377929648810922428205862489054969895016637020900107417711186105269335371827330906782634193125405339275025811011278438512740925945149855846684473295487119349335060083626975035135376801346081936081032047096399381634046978238177313268284532785181930839215475723426183189672939757318265552313232209508881943374730728098749046917668290839828006085741252844240380350129271844725694592772312572724107200712793423316188276560602234326619732416963253441413276555531932332730231586026799515190337318605897335808345323410398653291203747904992275135343424595090326277284801339532891266831134152636329108096033605770074195133411841324131691733890741827214150263366170816364959665673925550859139523993856123624087013397608940179916220013110431660261692262418257761094414515125470630105784286697098041782707763238090143859072968725071987143559486019670018864385325215173194077665414393766315168364147154276887117202601584731063128683584382197656128641237403685797606877215900841989010258407702456705181369044603747793288223635103160479410299608892197530402725927567986613124460991250320668606720353039791190568227634024394481680963589700152644114502165077274184350887865817174092786492399632088322054376643782680380141547247033299039901652791618092463840834393797261695550860903871459124960130022940344994778379764566574479491733546233079627391839291948046672513833193846183622835513122259639906687614634868389901858386234469121021776393208825551365155263971503652287244679098497644875293514638293548506046976939417968075518910826879388256018914551055618960263237430368036968676662003859882154144215423412383701343810029205633710822247135325793694552163404128814180146298221271661391627735484609295919458172000598537360966244085956583931736802121440623932164340937084560395388896355772215915810264133936807507078493731910215545614787687818829208587074404069123721294223257230473287099786861892381121307625466075214654479575470126570320010549823678698178538383640097267033316744987536685970668437511832774826733251625179439906520811304050653663080405891280512956737751155783982003032268068230254471853195097346178581446369748725586361263258842984874237099405656447977836435069327733175541150187326721357391601866614693845326953889854415488767002757924391844764234646273856437346520352794217172694343809165150587007227986195480827653536450722225969388208440085938349330143023600068215550316297595900922819183613347958062937506636208861630642561373623676540822032132386089150045634670737180235493066440245766359720086494174181488806242144324372191557654367599087246306642912532977880317971435111285807197099507959749989352185122698676991346405664882311288148909491551510741609967210679090083337390267925110352836185094479512715650803435337633436057294989240683766925792677373449734724135980111656831159254128205046739620266214759925206524468859501347020353959340613834378246433767077137734809281241531939963412235373394212404171721325108034805000023127694706342185512799141167187816724270546592502460061620319823667084795835367649127984910151652399503548196094886531375470932830461898911131401869826913947310000757254543224127815493689019215201934126113757589104405808211826421699120391028832478342822330799277145235577904669538310542891391675060749597370151873566901605231750987494354576787753678477637392645692913031721304480699788517079995548810884662452679556356559487380402232362526249366807375971640247958656376006963752708055303566903033476108815055761140173508558362969259212884725484897944279995096234566051487530612480535073690486954345811942069982037355134890874611362251533003877407601689684503612256325110353185637082937206161436619925890391581375908769146167874479156588067412998026404463995710300745846577114518055436339507714059184313348610132670793653685096402160237304072445638482237213682814696925515167901820782354174383571895068684911138531415848764763792930621629135732242351201307499744120182948677544391262950304627561400142176968365153592480475945576958155386093256344038172536610526501264448455758712122416471190866734267310031054302972792680047077748722785224925571716771317626454197027722769638244181389835991648522091790368087162962482556950064916535129218145888006755672058839014990473011837676687809866723665655163307945802991141820729614176055537964601728538100870859048198010830897195539687108549789247033618711365628672625678404600950273572379855352117764283453680986491756167475754699006901950339525928317428690832421516358539407159899465071710593777181983965593867173087616118024429007201878273647004255012505225196932951087864678610801758697031401888421290026980201073486156217876087532039198761867758949884492655153977177079567709456955834179370295077992806569064296410626984044432173069941132075172090736069750652222139803943905119777407418173824857291697674840340310938743150901628912286700488911360472807109978360567094726124270280311811571366816963229058828167874207989275568239229743010223910183087574193747131664283543275349603927735986369416080180789440224316660197043655108429647895969836455012689831412349314267159323302539991362650731775603468464991427219547966465817991638193421749006322213823429879426705121767818607426735377155436937114547214060641996572115294697144174621433715793822404743127105021339544946778350810868099536932158490611563697880091208554009028185271729912448591791147592587740496888550973242601568863545194586349504537247835335647376568037988495417082425735594877088123953774392305514216686669752398598839034287496692962270700390509463142083099321534300158075616894956394820737292141665351494122469300170257600973837320024572844759053310301921272411445212339231189553598696509388271185328444895943605274444139642313433804363552557433010021986787171648251714671202173473344705875552751549078518692447843365295489537594337510774734431215310479337618893586030636097909819611064804105214306088329146612100172547489321848565416646079329861229638514620660931999205730834687356369597749323964611183241061297733972225635582659647163726278179908602605798637737873843996199890867961452797365541368593426360946102315616801677592255103754072771393509340870294427159308488599248371306770721876981412969109913805828142210726378304327616477371785226249176139776467955597539777838101817790718550976970776247100107857465462456949610961265769966664770915604177642832373563570258682112373920678662959076420853851045739413416162386374055828893204887317439983327010069599226285954046272622065515631798885526422597725404837091273705510399618377760234568417184127092144053880593052166436749383646952586587654880764102463636476045965741257612033544609511095873039663467939603396142057160653437677174125593614472159288202849564296378536624444537338845054423867695427408166972032515920474832824670840519524838881899580876737469781114310773066693679976872882416581266146931894857293763268675394275050184624048020902227769044701408305348968012482732900417212502307623013135163976299636049881609700967231538409323104244172698287573645754591176623029605503073419613163280594461101075219509454075512304253581696413255727241377101924916436722028126293431347052720768794912694591638736000810706431896456523986194358774281206283639886642652281382875605269302041230724915696775803125241411721108732207870209091431783651295913808969961736104131756952031092272449486291660016395107814476710136553435001084833416332050911838367767797815746876804781050362380455349492329147308396976237387550150877757191665444457832620596684283128634602559812089365568460089118315130686522798871533427433971997597544317865127473607236533633039641706159276914630714515178126005322200116867375937856639296202884048425327542800775266142361920929439430249192954786394334099073530436931026304264926221319281752218973049151503444425593723408239565991923521673653122686269247208510333983742975244873424530579450066113377028051721645769829505661252737970200302985170423815707651838517200157135203386920674024978059980410152122192178236650169167893017879468223992954503792205674827135361645474693156992494724710666029622668131071451486634522189407243348416950515193028040492225130275817806651385095736234063146285204202849750688666384179792307641815337199929129838921801457665571775235245257795084010601585809478619421444059363564946395644239299165456886201551488965799104436511233035914027720612731403260190664046210517905274075410897617788889194592757588825781720633259819045733187577297624217037295948261422941351015729663197882959389316494105654385751684473242192612457657383962990288777270591419860871625855914553667784858996086788718498619931765822894086857658580089792342740627637986172601134647305430004913855312951912843263093919466578322300149088353363487964918859231401759794848748938562986318073889500305873605826784452924298589199774327978053920513933018892794006082403408937154114682839863510494741234384385292777090378809878960567392105399821358425881202948984890274094136828183993738613524941645899871204230278378660719242514793166596053720676793849246985313257134343637429878276553374924899298300758199007342990547386664916069936883323646115015553368107259684466546738851796775949435594787008216730101819197507296754510636074861628308456775668199638618698103326040448981913602799679426033514522613622298600068308581006325733031411542098144522248667331508893356019188327087618870496177691686601392376592684944115953549160212220244529928998182889739644250734875724608745568083380044565248164177158648312149220696902322835466310545610681461527683941148279725184478111693010116517099824962482054821480890421045050682658831130328197710342937889951406531859821230895334317093477197683974147260541018505817689180457531121525294554290838835766746248271353329776743361321289885722076449602080045884799832445932194747146029473222741495730307157598561644341650515253274651744743509259495839695711418035380082852045900032888433083694430702107051218063017906028131519799863493194221142415729706853375711429039198090356705946396688377504742268782492692620105262270376097588327584089420972063421942704657208278324106454696847186708375132424060580969672072489154017510440656056021851273728591360421414911264454065654020707521482752298517007262239190531704068906741690950525880245277910838451926002549134726801511757182011367844067303600793900791696695499228025956168227453068708736723636462498982584140931295821568847487777258632198222231749393676858494168113778105900879202021345543568415185370743047288985085079450017456637557299987987922922329130454971849706170073029030540301718140400810927002481383116412780045851840249949041640646678575547652270442148428787257186609067998772507696919592069721452030114748436153326105829956415306441875430350322100433182455380505051010882614792394758278801032453016772797780119047978659100511578183483774395254494626726632192546747014488163396775719352354067032747740285096455833484023662763191708659865788835843009215987296955156618809281208313092235105468314536366075802492497563434085615672864709558636772091414684851633999048766056846078913067101249992317448018654013698129537140206287893135163791540042829135856756383250404377769544380854355629059778751525006208710236797165275882455879219579358672061549386846510482713716800498826848011266800334935265145853995891762379006519077420231972366984481633350079198699997828981059133148654162040389044480489444716957105095522203351858306735442377089442722639405460296906542038858698338491560860309525333270393842122136625833680534419754146148478056087803634485018229189340041841448940870464439532022782561760950458477743511802123643761748875430860718149511066687478064638224692580977997684088275998966192599307366797011257770493270505003968541337662808548733531129469094064152799877232501820994923426099650807907961821473217619634769360494568665439670815148953082864602439027806329707892393367195125265023680583160183546077993596970571647354788510223211951914074181545845545615650564660383856671665202598877558940879440706128204962276624897628371162320693035079590200180785463018115073888201809077208300090748760148858050939764491190250742900150391069891821956422903261103644182499733235609493633445379744467560056711819018349148335052139296157215857370272756959518681978160275605878507932577851605782485362264071497998708099507346286869504845657050626664736133879448412511845154270228104546926531876035032295623843880159171071591537756810263521007230627006277936383014059389743384824161716172905558653491343835549716610183339537045959622530166208971085694432792560552398449617678572270474641654673276022091451655085997913843556974643676166945579922196192245793926350087327834283836754354979000931151044972286919255427868408813779992149397816813970748884898515049643807999953283457816256152537133732217671968470312239356850052686422191641584628979744668268214206192223124311796186759994376726855339590896564448753725850554584880202951742478518148995358560003119513665044793780720397446024524112883040742586748229608256697621167985388247001416888493834243092564791181703244899368084407426970222213928884737252506128829404177262396626232444585461772687863258851543398884318676473024526409109965348032692849432787503599259781145226238784142059102212025125173802763666595391834732342580552972459756422534726453614601126223922092124120146271716467939441857607396376855817818096341635681069111414512813196666871126384872957430054939669544805180566342420802868579845700564503510362962473835546218362393374138540161726628500430882537462944002917807298327350366170062267621473114417926016346475354798752086061775918902718592569149215506049539062748406113531536239303849147852259270751350400949405733155376121961468336111724417120658709144063379370215822115022128499850967782229614662575887439905741311361640060544232148029466631402151333524845656092406137556773740056766578373173110481302047531645388316665537730139241844177735885172465114163078435524203678272536135703521145315329005172195262160530219069469181235609601614881456706835987194472155847077534859234940271897052831106644688143467733154333385778945107708093354204287154779875794602463292091363709375676660292311702784972085337429107011396630162399057607419734539970870693216253302875851290680209685387802836044480594344566092382834281915509428523297538670758912900144198303693284858381502687815580127275146174263502512127833161253683734261617256761889354251977123826077517543976963332401769827326163870808077196183424095214658816696534056384111026367768443443020670559237905002411563951464970450722083761104598108591396263293313821970094898499376204753350226153095135010854313395337139315156680985246407611619422179050049911273985460705297034549502054258299026223035632047964292032843282927226620399750764480565647176118662558172402616898621023505821574308520508454609572404549314299763823721638385938068496204154520340315818307919799038570665074510526030603818533744968866656525899774839329001605770666991373941701425912270515235022378008660929316916517200329644847015132752170489337196552881314895851973480608755742932769226476940364403734062841275193608771952199172722599586340520756896033646146671553847075605638139993366596445765722889957118591658132983363137247331391878012830718906081760387049414676263094142428785709322940606085153757773916357079663034279028633813017591674996646930758289581658388881537428358336966527103215353543090260330414458581303729130921632342790611489781254964799199262071738148550473524348656305000686523056059135124880250835711274115451092166941785382828298069770317770134940565312668430899194228707838141857615632839159378741456114112159208248762439953244034971905384448562667518949185642118816964796074022433968142984683023908729682084057592199204172051378357064002958502932358179755081565835540329855384802587357137905299344496506144710054024824988327839009781856650046859328036034292219261343656012158780131729198960446275769449770989034658425090486911772869636374693853170619978743281908760286101637982844854294881641193360845226814592871325148052945675418788017358329993214713152312823946190170311180716050616550231428342903026456103945110344726612186987518344182323264377510819574022605497213727251403741127694383250592544786258837423344230196148364467418679638410791888831293147901777296602890576788339162796654971034207603037105692296431974756062905143582255805271017748734207662858395529822190521274992536302814524490530255663334999328335355936422059636022550915854931706658401488334095501019656857001543818489775296144498742844707391473177760224489591816301216292165769773908890620981006970528270400006671711984533143988545207790856961703255093796859216197192106592199515999740302859452638395718610848332942255319894145857497371785429600181675356439325736663918718031955251791063849410551071307575542389907493341959818585188381628256081774917865390012651482683518174982949542826245325657665693873766244950884550035902999549044740592836155533165140694368691036544078807103018406627713762096280605955956858249447181089960278144451283673393015198492804008603588886960022067805797633022366427935489324185759549972576413339278972305075788270196191713135154857342396248270638605718959533174647735832486125136525695989471205214788770545480140845541495412179688580627976270566160924502736058984741244368506279207787553886991201296921489549773568305073773354085009111874140799474889887257823718214533069615507841536530884009194548036133320760969238234257011447018515407458014473820772922056389143436852708448738309216048373525209902654291593386180700020088415214403712695336708265139461761390864576711962246764760232878770803489763737969911691966959369611538140254321620075104198103629046425844122742462734351965953195017734605439762269046340562837840799407648151085825445390865345053728662165030574262449430662221307235683620325728784955450839714882505732516895856598046359999532767886741920180068070751897777976460637896652873025001249604162942509458420817244169541304400750961373359914107691938897461818739795482519142118227797298428893443820406430549280265036098995515667063384657232632029350427538268479140479259027294386508486671195002330579129729334825613133014059501724260893245218188197936871427107877088312136207049099818476767073632210696131794831297462151059215578830346845868118884296081798319871462039807350205184216449049474437204993181833797665378523145624856760945233425559820802326951010517745359347066127972318637372017100263302980563542884385231210997908697445366680377142738679081486158216892725676034747841602741967724589205313563829363227808707363636972043087643528686616205182813658334450418780902843477865713553814857456374160767223621850193162777606865439877661864105141703328209257503212515020053050856139144673774503706270231472241254997668012423509013774082235963399025967015359058201268958982009613112252577259021228483300465912431496697130714722584607368654088742863535501052902656926879412127050809797211538119041040233519590863640046779840518092754338927186145057869745402015518571768021609297214354622489275782889001017727441460808527510464058831247704167488895852634714422741831007941048976400817926317638566312719298703438041836505810390910503231754251434753937224104466669714179059947928281693366381567858637028240885331096629571113495119886554672289826931331292690259311314077320262765245671861109051389481022980500184110616522685229877819715162402503094602523748990415909045098981129544500335020873973420526087679467698841765275253890825578095289524508584090639006638885068647561286212722160282743642610065761427834278255727091818134882891053386700979473349775646618356439013573432856526851345069324565679297810441457266834798365136224858297606150445587373845553899309080368762561522086456640462163487280973406594666289635189386938135259959952292459995261376621401144512822144208843758336602177624971289513716028228996509987775240386928723024732856594935557055179684415057515081510463978504403450774093717924647418547050970371885268732179883769148865212863276298302392971844096535324685539328089672193904167345613381604501258259246912742911242278813085605701351195396906474460438768221207293090022707027722735902746652794658163268430817475027732358222911983107619099327329035901180671813617907042482140943753425761635420086415024943917043048712265310098337279474382770361415866327312501544026190825086452600521005645956589288930598309451469526500116603691784431197616662399661018236382578196955610296359355792297441083676275112021924053836318842700579549899871378558373682884020758295613897150893232063634501064050832482968662608191622034247054824578250110249183599898909473720265348018866957942324137330808289651348773335846474043696621415255893416015801828806863235470718953652075234159259037786572363601973047338098172197175253650564532457211473392757741916997775684477580280875922323704997225424584035849321823762861688713310322236430029845488665316544052504788976273759861063161039120189275142383953515486945253331028317768009871235480986365352779645933343144561173611283914208256480149541826201450328078886756332564429399813206123284112771031287457017321415680177224023919895495306557732314161172859446159730409174827881132633822399058075455843219409219476929230420860478104375878794651630118890087287466955136350933281147757811995198332862627302817296032516867657510578520191083851245633733749166345254461969098306413681558978211106542928913800073159186757809676294761444867173785149112822371708172644223069837148397564626234340510064580705877304623037169366960735887325376125113436495520972483257798377748440603953751154763187782168823044108464749101112821599572421826937033139142603451519985579790825806408800440125243661810465340317613166607792077854119322469300315448681258643933797460623585473474952829980616168249929005970084240063463695924521916990848298678621360324858989110874384973626311658543660501761994944288965301364954623202446329419765791780720111111971596113352119219939713011132340961595169099035150346696016084766533339516837956659138453001610775595774207947268083344930884753470307265414953307970462449984124954063042590031424613804191290598772531164105462113694824613424108196275689719667771166249413222591172109620877171620900182518547737974412409183518237636611535399440650018458130457378937568723238342478539569325012893587140939053661806041067570437937890788766650139220494885205155163036818700224658655177589205062387209622150184610887029219991650312554877296527588504554732805611832362066326743445181640404721400008740942291590349864886528290117423073438353942788084461562574035658967517329493672831750204754462337924691987452971582678350762360529259423273665740606645412088264621101029023900854676269299941918416463789789353596059711270926788384063470282286684368244157173144541985401906759294445342153166766639085976422381337950178000134132197496731226403572590449310531274728246075962516678077859506397002092059935046644531673604751678605791565043697841422367171070621536397679447462074226292396564368069317577794841278043641384150110061347012590207187196292481244155649192774017856639862369403189306565991862991001881525776045819852057402526442585243797168397029908813899148623693842895664129076360102112677618412109232346346195566520804956876698096276865841318975484120862877756919427681667574547738604188176038189464227753733848969174654561871356623211787407969047166182208975795774462107293586538745883672790531511712922235852671320907051537711003114177968461616223180916962303386859573896115276064039120037031224886858297255249023055984466318942864453130375466490221022938002280310977058640469988967033686664461413699499413620052979800707312891867257300575559121704113121102082339105918796923345789102785531546351853257249995609439859004027604567396112972155944991887393572011250671754292442414859205815725086726520670067200474654921779593917298081477786126140187849230182933820270427614308515319419140298522370939920687538413776336900688595554300160182966599193451743804513810209560497681688973571718575988716595200117813159791447378665347120040492232754523095767565947835513150019960082668562852939186904327855920492342514594078281861857288080244190280282680728769203931283907369675236371808893594897563603919274857456310926072071269764354054383329462782201810268500097032774608109175793989650310445475580277906887250394147591816768969761171138836406588350976930725307654595005282889024510794217329053759595278640080763924915803701796631900079489562649622077609451785071578661507657052171196620175321630755924293997070894409826479548952164265817630830600996906619420379502981800834781573016150372832151980046383117097417944216360646679302069137516335702484414437864567958639699053596397932377428272963579547976861412329377252166230744596860357731372397173807172475200453731099798192242154563044717880832204479426497152811272989336850760132437785359875381256043960500855309648019800173778729679165908224154196884760948347738373065966082874756244992545778697347187293773694403466113791696235851602954207083226529360440648796248555214042054885413594466832867538527931166511604254089803700959493596540040946451007856401720271279016087087199176396226092695883450248309348025700980249295626134925562837919793008160923012431439257085466661219582620453967364718904682302541777072750001352114955662200539053336762087206742182887227838336579214058279440308366409359723369425535545344005468118903226762286673018228152533635497510467049495269588595139554512870460825919310839092393071872844320090447696398221933335940743254790531373461765678379515610967985458245325285817644601621297069556402391603010899658791133035004469726455420420216036688052022768507979674828137264111166873086728138919243582661767964928721892116024404632403206081568708599887075172502910734560621404035340601920050593818626903129095762567984023843229598810747336901007241169289071844014523010281284793218675260024329547660150728146150991761835349324676747451192629437403457088086864870288134308861264794631109265638732408352150383796952654489752862100291157439929756418061251118940313068418208746336425754591417017933969441519822641171225703103918986791860599124027149700680317837234535954586223599850023722526196634818862241119341594340922210295771444744928761739902405571254896732234946069938442822941480990847565952599461244142229573599282540380469621955301054863719293981305033567781835031851812021128551815097543683260739848262909374381895911748228618469844337922123079211223993800506869648582378631873203753076446861996589809776634687638274253820773425892444921307438133302015248103811962152744239367195131036883842996621095125418948937910898486763825740671010655707869650220224329092171950246632374383828646258165444721452809764668205807177092452212141064633378326889119794349214781063553567857277601835896620391464800732974256607424715767004670598667577901133010018266185975608968597550622048900267243598111415903901733887904728967431020207996413715315556085127505054856773920050872944417730778883647342243355317373662773727829787797742496334175363727008104174498266289618620185761773402611396097110191869196409110768634671714221394556456358696334874488940041357353099570292255928366317268871848039007974321921359882697931146636883870777448699741400769542978903335008847189707224773054220027961334959200317680500375907611115195683541374828673013877754068709556665902883525877662450724844877237612781598146996358884093240344103662078267577583274946363006014791442233718005037873083951605930895435974377179389094334601329077996784564556193820451346102422196435036513217089078812173598267103906317167847588236124126842627186548398620266289185898206804581745472939455771740300648455919788420318826909524455461705193344541830914641737278067632007457711151285215946110058725438899817650915784990821595343789095221690937033132444811904468052165997471466222765337076563870308684051938513284152720336476262139862634634474192153605190452687264586851674803073281784365102894969446256039407230734712268122288731803858814326609371150059419812082431778966571417502295280531964988605156088801471911763694011205406403819604310522098798165173716005139721169915552459071639351964148150923061208717359903532902012574114167812625675599344909394262700423722089524951011725314920401510077757206874627239362678485912738326369121555178771779656279772285957100749635064680663990757715796763958181758072604026791811541706194575355594890335257477314125616965750182355499090565321111356745841139300718518730687070668887083573575962864791748881555539907035541935719783472786845651648676190181788084080788751116566405563214771235014746318841099914708174054151314032161137938446054756063561540057633634599535010541849528431231817781016045952503954257336514928641900760775382629142019136701510222017227397236931465706526897181377679915872235566703639860293643678001162634668943893582318595332008899217294596147591457678563424791768682973738779418211297803832725996106661502438943995828956437630753758231823816795217504324813487713432775902248919111197467545144735564202421061863929910927701611962906018254351528698386670853764191329575388043848098463134562669253709072294147176760173105389441595392303542385007874316342787964093567263046336711337636308446915544513704798001249247748320537390500330287258340372059370451005559773073204509862244810567881110067737383551813101089174422663142228797884248218737060810336776484826122363028257346132362705871325911535143338540385797842689850705594456075225655048527126112815986186395025718481311034421866548619642176621612652468445409914192142386367585740546995987850331092140000241441985572009340860798050819348514849017175113257243088329355744851926992549566150101007311766696978147812235342200255528045301443801750064478577570297686898844986608162150355264699280378561264282067464869474772619246416010298940200309581462503907874240306374406319795559998049289868492642606844745160071203018157074823564596099366920060426594333767860830677850025451595157668202105120098827839468788744543234882443079615664818961771821773779419905746575162759495224758136748029250518661182513461272394227306036494989858863328288207388038272601031024168451204318598397855224777894892012498465085307990757639589309021402182460135355985904226092558009943480289157041034667637783253470490345847232128609113040121441508446806663674174550683440187586255579518411601995659568428082200153922957098988358400108152361885337134921041257847870528934652971776544438132389409522982666567958379002453858593010448777377887821452973885998176988915488110501287049896704035188374946347400367713795992641247223744328563995775549331793169532422092383280747474233590209561324515084825590046985738978857305782977498369077527405841242010946668971577875138849233561887811312509246118823524937882430544491706130899769399621870968772210735653992699239897279920336129373265307634510001709063793296339118912780859810598238067116195901443171311342507375508643940171021132156197525412841039973836495891165554117816549164628209942432503022243913171485040986340268391612623698591346118112358503014862114223086740888562952803067059547439372612179369495986080022846873088934372620761093822662781286683103951740608128090448896896259360359036254532975283690931394101587223050507836188252510266075878530537443400210884203859237194732818779890549600387580648012837541556950187353498643127357638415532745771368300431685793644465417977110609355036260143351182084500839607439989334591052007216535436920564702801906667724064246873315800727669738643056835199200879637252579660220910754161971174864887884370958841244427423005119670053425584601090036517083516764082908385715081974279010093187446157880555908378465028931670977733121242722052152671638647240707215905842124108580429935964953776641027725921280532396763903011461791231980983049010507297070239772721872466973282976644938445810909153808931729610759329013481924424022737491881243874261597624585751161185037467602767545071370422712704303877678800800271990863837513012784925517417668108839366462496642547359692652700826577956759580439180192665159534028317245147585684783522305296956642605912216387664377479796704301326832218019691836142152852971488745717082202495993788206325031928659887531360931651646928358692087598699025358188628644740546996148633052938641609774536091000962054677998509541082097503134455620536095152413459495144046810942121484761232619283570698406945093014534565507030689672900837767601241110629638197745138091770376574821073645873231061070377260647862843286084846731801910221207319705111787020932342802166991875824439963210154687881092129669389099827634529520635839323984456928692422423417851537405900505461610972920721560152535343609951212180561952347539178855231267362030829050207739842071800642851221132130540001191439177563042507448597859838661109149878964017199297432428179674934711960311388824002565701096365959044264012538563795765205217458500031082305505163932722023650472408926932855671712931255652609266264178663346972697562251507501230991894756368438755617016141420318656607617167751810119976200770270590236783031193596711892359525814058309444139913983928862549682780223067742624605224708850783116777988582935103927257628226248842167379589785822178319741569757292135500716792035083509341911839387580449626442048929492178617955504895296064550907377014826460764810089875915520097166664423031633094569540727637908344471775247815127229986384643181677321045807652555014093025921617705803523018969335348455137320474906104754143397188734781941718427160999130132166448894281853439203635811083635103216076826974221314702468817582230525017578884467351773384907664253319285954436172494575965901203355782131794754414405574001679884684442940885518153265956659513469736251085154805317343887461092676063077370801956742856331624540918361274214240162288612595823643401265778892191203823416114480248410938186031049985214424165379357347926465198061661096329413862916988707217686818844109851807513339939084610729480279722680203641394810346512702515001012272015676347790916444828981934501074646841490385055687049155741275827211127897057998793549015260180947224749593619984424262404105252025506143587452541260182008280977367112944609174538468281488425425828701225509940195754512626283088226115205775917355178754138880191402868548497077539719052412438689690408270914353985838939678187574623691611122899679271122126148629568426965341448070774199902076358969069388104908586876282861948563077219518380114323473884626379603610080534057260437006891329447142979125575191510400953043915596662879063320681395064936273869969312393875357404412983112593865965223224934643899752361350214801560946881411733742955766937128773945055308006525253834636115089598812921647458041573666095158180220541520085229088551339044570829540924602641564620057440691380708095150148069183698605345971153058413708957206857031104917124603927281203629032074288793051740243510638671802687626822265698168426886928267372440028600202840158557742260797654322127843198237820337221673680287853359037922873462099198290594347772806043688976027666534333992166690253370246931963831497432719591557150503307764812337571382776218283650737409079982763856808095533605220624698165765562462000637969716606591337801062447034608475030016876278553549025459736420724132820652054696615249704578999758743925081896903251793393361386582052608318699371002108784826988191495843406182663421882173364528720197915342988326584677869435249207509030457728373041052238170278992686183233743686453549774195553068397584044752655290650471900222362947965959238815425340126813245182137540219568118559192590216301234541898999018334034303480777236172915655505222119738573542050599310834349591099142584070009679107948507529100607830620343530476708753762258836359871311010428437331058395619065755163089988641808284800674616009948587696078828802898509158035572014018025087971607821568082600188650522428066567316631839951116438371320318169069124735881874058925052870659257754408443023066309499193143648301852671080338727884741844604932840469745654132732768162661996404313731014808071823675447987248384385518140487138555271743673354439473489973750293973813521174190697175439787704083260096839301353756856241706658066238998814087499616525895691568526209814326894725245222929887365950868320131793876138272624641585303857787423372511649237512329169524378106703036145718689917840154524054871349647423519903933804400443951365956364572828018449642092786738495154925597439700674084994366195140538243249028075024625934314351259985293397119440931537821765623326688698809964836705228650775019397215962927207346950050855382654525005607610602537057501452880541412393893988757485800264224358218487956608913867681821615201203836943840055494977947055396753044982873541437905962796630515941865871571461702227246011933979529893506502539538437509582565788771031242659833409194261241292699880817184429758877782325641771970431068563651499400121831097017123438358630568336732400621086293902441195316292980288940621692250087989828897322928213983405244207511892099924214501961210725329178091835839195469716350043439018540213667697981985841404111369921254522220958609277808158263426337646423899604445968173415490470566746270670996429769397266597843314133796392993190287590956039691992957085357699850198831327662857947621329629421107592339491111726294370170853588611876413466803321979325950636941321931120197297218487836598633102231002486304406487794525456688209485617727432655472948075876905321311075905815565595173003409345655062235428380149359282108266525441068455704635232493166327564568639176052717471316706882302621759308494794618725487838470982252225772423913163315075191247465088878531879962921682371393851924094418871786722255252283506609299371778402030124321117704630213199682879016516483516362244659217092857515078662890854418446168899910831221236079871722650307083460337883462085588386322350321274521960305067517889887967835554111352228791409147864088695900729210691274647540926556619942110713044875466324721567710703507688158483537480266214475026683932405210022732700339522028274118982591630120395630318905234280110414542696374084756695564896626646733876296314698675174946603170917566685361718510386844686704902886210125995680821207168231246381803185594357414503800918941033072393943769105808152075247634059377898620671850497224908660819560065288146485817276143759433984961411720519615419328201319425280391103389228666155163568379255959696918407360315692971590645635331585379736650367284332588436904348842394097587934944640719031069503608441905168387480473517474173854431888429857962080158352249339780323683193908000440217865166448882006933887005328243904322874880016023284442329582190578631513197949818070557117944651443356681365294671007323198361933779887904488800107717114523699599445452801788702005228088902808170523225403029831549885071889267363562091760899601141979715285166953436237565488790533721750242178978167419824909558352652650596751268455838821374955529966417346432229275957577550121768332598560266485927002734717930720068124533521469247309393541330412950425610450285260984044799491091931238476954308672024760506774946685148003289074582988675385193219346592148300879933356718193165833278203230450215847402340736072513851276590546131299456341448983119796863300234967861325665979476806912308530986531154572809122343397452585327625188658455867624855585088643872764767704708326667876372008895233682427427191557201805281647762183212158204401029982218252409984151876135138520552253757798342704149769045897557788572574138961231907085942484328894030189562183699799617654942381798601817150288286005921492475964404807326606673598030578036993183462437766605760445053772783789065917670339240749592639726902874971525943296783903311815389042604807097484688115027602488834685391066332352505003615761891707174026605487868846206650881316608718478901302750026364533684074182375977136174402812168594772982070090012893276328490078801313144900831573408947771382315266744252426145398748948103152965996874193893004365901369456997393444311893231597705119312904404752222281969653064901236857179285714371428376139233075645346623288024501902011846582438504753653582624640710111585578247718669772110866852056775210759368945163837286070806898764298630494286683021688593339422008239678498075280440791308519971765322324290775255400334289415694042270548969751714515905348339180748439097594546962750815628359607540795274229692661266377828351944938848585942196650915247032509464769672136296180338443925760192326708063252330033371515729205411444655622448946688590367347928346153463556566566300434441836543141387137930812853775256183735422500569222073771990167577528382758934533808743931570107346126114959398272116223977666481074142355329202917928339236456093940409098282169472827471519643787543086809690864108386297070464627362920875122157502945716416487567855499871984024691040862999262452933000092672220394908814885225559433899051277392145493164681749908097727558942618624866360801570218118168391468836806218553240455751096744771297588971117224401157452458118753172635285004586135829262220613481611665009959014296032373338972098501822666586310689610521582960644905129031683786939581943168730903629464991128711856657817446123441078609885610416619338446465181574258167676258351516923463732357108081445916131246112045153949598001414912287577317392222203953501477126061026329912888629786156424618190595623320594930776813250729301329429174483075300968912762229800190355936807752468680101359603971984601458796916748983890851456661989231401437070571299127003195919077403561943697337942597124082605987266065286273416193818113040547017912253308202903322048981615190870719794467333028049861214667279256306516277379865629535052131457179414163480466012600774382163920180428458092889359002642845329509620107669841693880409371187959968095265563933985519112578063046237710312025517861598637885366526362825490548313218798303162769609185038659901220429595466326235629495054226641283768816983257194769913201123023756802878897070694468233494265296726992807507653359307022693441305419564158626220069624160880722794767822158816996219087361811794425986147641150882853829714985741838983169450419299714718289437543197865744030973927645740858824853244208677181579715989590519561374162819872626363537915559233251451648011332479548360742498168289923331040258184149944576947526475373854092988327169559251182530071185889047204588996407531678099283244901693277876604178729352021261425970307016434705675217141807431078710508141134127206351804404125063361691163344764785764017108594140289176259426705422777340124690019720668843949478019120250973157509622266383048616582863046465384956384578167223520524551133230499894376064125211036986058125832320456917764175032777447272406745814238165500779054321510548514433994177151250481576143098399540710198159955280905532055271982718270920721392668879922617117717185281857341357944884659861327938707782822850855839846263808946952607993744428227911065693623910491259295849678444448015537066911814739091095107952989793040963589103906655070383346679016432788488578769943979809608710920521362904194027852418213241489671390706746918988931451471584235014940647138265007951144324577721142685985459085963641633195211692622171903428108751404297664442004730697180040785477565007471510856438357402765706179511012790921162584340525316032383155246033067541665510551999473610319922312131080589201652861050791490989369110348515258884584331712399436755927673007162385888252379088067327074429790730285654577352274246351012249623587717615818705656275942410215190554297874190386392647750470321442790307002050329416414497141215626763663902275406978942278805566901169685472836475444267983798825643639340352321312760061946296896961222297934185650705313330649925258814118830337208114262591426707256109823393455346218102196864165302453514235636873631530095895992165567716964413548883454838691087570322686847332300773060223921036841119841669556074340787824547713063521940437361261412796124703882968473791671052572628307926905378110380788120136768589312253218228107536754185066446836139788695911683258031102385485925427479824501345127460203515867403267086466928260450524087081615105737002061153749877581160301679953951745527988989495317596020502741257594116582271100594891243397041767647641142742748885737195075068873264639878488624887415326544392020248327490350578925340741986403057328147561114277826627880034575107476085550199282562371963378607995548279172790774951717615332257926690929677633134928706078449191259616704830932251977642309538945800144544612847864427941206089761517957793389088821673841019658444968110872034600880711622462990648614151705843010377244645640754903987511213486625845624526401105097952569694878904320651480247388380931803196547815325471009906802941982590392810479510252957915923831395777081819096834053759539350073886825398817335719824030725088965719991716268383380642539263745106269960656320452726460368680851872785771232429072987774787223249921843544459230930068639408836667831982329087620567170767530549815541096915546678929264320531363945064594808331971219859023736945434300616333911455336914440021110268876066844181447739189202677562676235213632544020559073851604789407046681220576095628497616880383991116768079713145153939167961965116034545396235818877828629321212165877875324539019483914419104716535354183326310859888229618245955602899058244317836004801605973392024633383144884001412363927149373882383330322697156732891012480185573372012230331122196258689729743748397134584297913493152412529253384023863257181550102769536134457641126809948515208835623697264762229861345275003330635933134256554255095250249928389781949712717166657119478890154500371935155006988469236844514013739650480385758198736264070963158343627146615178198151440362614747558076299269698407979235951833670969674940073090268960694678393642745737836728704194661891555466260562261396096524710804683852498376416704581179772756591394222929674788748752386733961262514629299024686100746109297756872097710791311432464941192583136073093799662599604208964652426978887845001318088924887622782231677313228631625317006721057063423661557663234243009255854139586952314580253826551140736848700770715412307343680896245637265730220975378198773760500977261501972487825462679018569260355290549095552293503821008956242963697899037448793440366575526504668084717831745708168517491032472686796953455637883616075983173815936337587343390381655416810192567859149334277813052928559618262206912645201955172041202870963081219564327860948134104439628886098975792678247065909060169403891088525835916764988283183477970630472112496682665628866825797620168777709494831520899279991875387375479207461828773827192032757984655831158251327007037514669975067951348422398736816788750697165751066230452442406567897806420288138945012019931755526979491969080805505186401733212029712696887393651896558811263926742869512905017257970937593482880770844934818744819250436333254996962565001118756441866490781772473298757057507956637216705366737322401166574292020253629933525136843411631179330625551301316375658477984236942089047261269202719309861188757273917070805462049214068680286297934154822599189023488737516579146764115730751287405208003143467634171391942245130840601872699855724447078604742272765732157694941234057276115581023143786012352650624793271084335762393045083735732329140178032473924243192933295288315642473920171994023602749264306131337087492013367521199798221202155534642727107446663734292401327612079900499364846081823016226521126375748331476662115511543842193911445605294497370984119683401116912951646868196515692169877819557464745354578622306225349087476847892413597564149248926457248583865225882414622864246869308860358932148136504617123152192469639305479401398393472989555759309243122762081459853850409474293672430836396918121087484448001082038817953526044573452984456669563066470243606277573352844542513351575934918689752176542874636159882721444241827387597231987489768553603838863929788661238720137709162195164365912816050071162319053615801270730758815715194980642374518637721640467505861984076320626731891587128420976450105050679801585608844785909756508758723118274089166722342075296779951447068834327951104925250198198049305686517939783383412780560281747203871287364369301313110766186958237244087974715235792791195070006497334055595300561760476281932048743476626906225175007988661464030130276309817117291946154044396610297296911512220839262728310721838554397312130395268448299908674546553847682250562849957234434082501816369967934236530865246113380572599194131567724311213254390993534217085955897472069378136692567025827463026134465074712592765897799962859433713358398821157175171157983305161448223056701028734934770016778998341035285946982104203165275404473059744495000446382645106385601604448115577628860241815554920920618338207985442348435108134239882101480070958692858882194724850271251580742985020654296849746933837744686015775890263039086780294892946056404011336334058774131565820872723905414786002814535981685210221343280628443960313964788910820922873393940562404843003248762464499015930231185900592359998866579156608840596669527536824174306508582085053567409677762337626558455289948121367683113310519104780344145365071670545048869246608945473674558713772910220466289071577214828957258151011120038317692131888820346448853786774032096642922470856458419483255057927197295618562136689559484654290013438017022097896213289768291842775344367054680518312707628940255047583407062397712230579881451357182519015317484452178843360082850841750690465122909119115781877770148415950642562112662237064408381992176405846787845368939216687498861008751731989508408422654922526831392950729095399192566321841070345560912770149027384835721534298117598748059130990708567135103035118322948545668036955341132603710910625103182326072882713234502671057259457117846871449468834293654695636767038700636535325271473438224550971971848851480723072932469258596259733153345692512025255317899715845578073908058355130567140398536351990052557543586145160618160926753429371714536213560437634095639487362422846408263737991409722720361226173583313524357368960805422611155383976562713927012827300137401684613308920191660082598010935765462026902576696433750006928878699449525608960935831441193218704093354007539438995384947126114063850393957217530186527005511412323609824291060195820916910275979495725851873765899612178913924463369835251050762571952750265165097866727096127449020381114016022172346443837014159728204294090058150559642732198536235728048396212827328171565374263498344142373018920917383925275070175962921633087032571897795541723187662555513948249015374489044856995692273773042157217563975101980129199864238661559876824624139872844609803465186429328818107321668099191399385622942545513035913783462594867245105941571437614438155884333518524954054470077011688624895063340343256139516305357793357664139816799563068583066449681514400429451016127478028588856543444812767962515701240492679623613105236570282492248876373834385062502875608490764420574945863939902694283326393050557850843236080639668612284765051812018764370341898307063101971610087698075425769371194331406556069937160052900508290374338123951141488351251305895890381854768795066973403254495759093460812620907620034119687765353343967607670893032636287966778591344520041374067407930204329341174221458268224303753300180193136274722814715621546991486083513221254981923478123316978700458993681420232795352995903007167137494249687050381934798307227524438690987981996699231544067975637467245503531040148770268786276713995314961797486671493881388912744231581702370225599603981326362516761905708295529957050888681979660068670143328527602282941655934832998156563483367853204254637648547585500879557144762690166141318997952826697157751964878627875010610096223243125849951241391202500040056850432541697891895344230484286980733017077144462884307851255883650262374708622020193226384839037870310245548053363340761016723632037975047052377755440201736299120595424311079714082824639389091958057229508569742179693317514752460237515610757958836075362058991722489592431323619192684622779849711545223530607110118441890029180992467333838886499144289274849996294541329374611953607263595324265888961213541525236242211631961006760576556397512126228936735823510607082693923932570155932607098140848654871235815014993029302412952124197766346466197762899181343515198803552589741657528318667441606285041241886736744528707454567634132027299099907901881211769399112644603603082732723112363581845794904685757811157000956492258066852866952537188882387914889281205314377895663364336284265344804348335272306550772769803350551028432523660213502102967649826855554256982672682689505564426421667477702207046701673018482984764926917651256959715945241363754426480791503598892919448018438953468842236993312731340757955866731326605439377072986978335450308543110196719607379537171556919043222732579227870372092591383047971433670355401819229181696657669288069565965570278483742352713690659438986611227674960108486047686708947834817806849688474861496671862900408455197011136595089523550534056274980593754166643503511040536152454397837796609093675595373097952091695738289017018654285387295247911260765996331035054791775897396448204254158625677982730662678994576433045036174898456144284527505449282118596696241780954437580833547461336546867423855748275836820374934782435356614652995495232040232464893610069529596892791229524409100457786708155973644600949777657960891793832605261258440464415793839119288969870675862833201723692033428282114874219977953247649344463838267565670481180397861156478377596613581280848251085837855179312398073809383339812770589300406789708079788760969572496611628923038640630013918513961998986937597606747337217650461293473310657529659997206443960145674930379282206180869599044942612041095720193524493688493124794031683829057214880824392468017444023178402343182063137801109202199080514967265821209693591145155899115915258145996634650764992994495383755096452422746738183713609684382256259074672784023164735854842086673284122760501415497995595365367158959209462718871277338164032904793750726090463415454733108906389458397849187834221461192437362565676114041410966442232248978469717893098596842469837710957323479957524902969356426421096587127458305881566378768903086641464821999306616202701658715831226070285425913293022696670171586752142391706647157754690428266230266270921494309012669600517211758480569974668233858247735541752951212734678132279964779055236436628609759706493513443793591495403448306703649143052415464222233597952165935969327262915072119112267921443595143611437347776506188533158052240844005767320784423959191322230533002914299188380283332111976709903332141262192007447078939285791764052192096761084732116653270322050121077934839070502239419021228617682153165653788890837991188878292039663861306227890823381451896755679391657768507673547839629670401712155211683339882372379183079741392637740751907081593687766140202617351999192621205508736164839601500186953624871139289248590343676952996409656849139482193386429581474374806272805861558618507119074549852753115413546891176648967463549500180781125711019739772044632475883353037917977584464474263018873860485255530861512298308024271446506132725916668410366514828482127713833846157813922762026727216369791844927383760445427164442009661845993942206851547261373369128790761796126121948724383315938088291019326184097199147722799371522799957971176245944681026880779513114418835125702369410776981118887736197864341606586381377842985966610171902733018389135517725223645170235855428213591885749052808201097967941925984622279026647491619268912672740496264337227142415813588127754171568324962055409997460311403721502795780194360458711392140979594335539088921050520248846800528037289019054483018180577903317675585515491714064384008762980348154673675608480404321210938985422663521350148369504339547170909962335522839877031449352605099603131269928571276300378145411126818356259699498328681457329684114689900101995919116890031688908320507641055859136907063112698250707176562297267664152733294816912299176624292344307348869601325390132115193663552518550213589967643537973391366698354293147616688637722477215711691283414522634705545924208156374044304032630784834959283026567428166587987103641731943211410891501593546589087732725055533933028249700996061142092964622441858513263503863974443309307632875830655834800794403433568645337173764388415387251447816834863497614214768773602299525621057306496409997864869818058390786593219983093341581355514847862173151100944810983502168388261383705175133007456781143710978939633467243222538136551208312839830503130656128425692974311636453683139003167939014294669258165218207341469760062984201403579916980629233394092339277505130158299387695353887859048096458014118558989398667176532082028889349963192821854566336495515777065267680589146156241952144164428537098865991826486682584658318961931769764577583384382340094082344356361108056874074742511049246494206761350727053132034564978216597603310420991109603009404679004025557435852318299102695516937553293219564930866018044794035597886176931215870489448340662578626713942211400392953158169503426788349471578547476313293024973409489846594834197778323591930201096728952722476600317135069512564551017614929050907445080450944015585182911429450901205024934362745311487101377663433569512455266852195045506347996117836237606101429521361810194470757865319757242179659392281508398340633105879818023812786538782020793995310919430597942572165494611193686282800875612349130569114534471652046206422749985394490127064018302152110628364618149069919086435100675842647112478808448380888205557257991367287196564496968394197604297778354725587664874245757091265127036653738353238670418852004615222854253650810776153531392437567494786666642710085573367204442039503672127713085452168881600433158051350719353634814340054135261707843906927311533657065475292710041856087723565029695389581525141640035097121649585706146899855588443611353096979011408540838945265525397523788784506213044504754886383254824280489829346289484797728170350509679098942305102589476869516983910080479027309228316124588836288850251381626450470749708161498680838234192016527529571494155408162536111323404990465517599260589530043804222906579014884159163161488452483845259929674348152091696444405131042015971340726727766119954942700731517554130254679034774375495235494532562209703817452166211523523006260149589727325967001911999568694854456680139208327904385513009993785397567160448730644604612843930629746499995223655144676272409094249643870572708356610591716982452943824910101174411247266691717031655873873833771984839699610991697070990070206985160542030308285712219616490179473465985385987962099810066060385659514421167556904231286977698750887450749327524001562922985187829141910054205336925402423692051173523468064696873180967800223945202551122770950317120414105119718786676247206327469810825199036357366465506689261060359359735172205652458570409877356075978892322324707544394054036306390133292194849383630931008402395970232163367359701827615390795042828875861002038431198881340122419404303837553546567153796939254535358687669507654750248430781085263190689663299207999277917231071109628972475268900466238031636138729977796632055622295931585031772230322977078927391505534543189934498729883287834827611027126098871037256941482628694253614807121495946987388044155266033862385358906468219531611947684003872748482913003243877810615762166753729357053271025095532234162653569744742704347201412270127438887699020656736361772484685063580158668174517952518600451126309770451756307640793496793643738688914003661326206563369065221385824484083991139322982849687450305711381012124395402344334755704038874810228028223796998081249180805353425965858274482507333774024681280842125958009407771945460658018428334768979768344225074993991375735006557987342977621481157696665590459454428035248990103452478106165579332735547486951878372241059104100581349392317847794002576327026110366882854661981756539724035689982628165263572981125749562771111059687963005198341102720102376704112617406267603179316104261907966482653662195827766920519377183347521384740875994706677231822850050746869470043067141232609902789894851159580252063137481138056092765189451865668720008422532271026373537441507061102716927793666787270730396948726850236994406175081344087689451749246810252244923422977095656294239453468646622751481946546435848119501454595360870101302750155591281027716275416153873322365938429042841147869772728904622528096520559873741157229649651001133609868221858808017091608816725622303367706159061031504576192095896484493413053692210213677553580825504723765741772484745915261738883390591068824718218917820067852476426877728601235887756366248049017354831834188513717399553419334965505887473228050112728527455644612056199862351300213461321257135575798316889449455862234698261977510224162244824772920224388187370446685358559449231989536234852248438199099799110882643416093445153236101949049751773207946891973246326605630416383361359941975210008575095319126224911455441996997090551637499230421636120735717994987669475074733560226835580074209653777134408307729900902020825226952761513910610794235805702207631560675550199364185417894735808100480876870892250145654686662472444433940685260337277642797980771123739148891499742372675583525070423770516836971500404552739951802616873352278855707305178607334668633915872679157849013168644322137529551939192842785339662696303588332143834856864230446934118269671889800349464606086010447712601299183125916139231217571170710218233115834757444075065836984648407434374647354933746002360410093619238188111040371574545580553697420210099788758873668192210870367193196435247928176778573854579590454350152778545134787441328918102083770430215789995480354359257599627811720678182807251142239455370086242851149590932725422197464887849537198536358873141215616105353326785958018639193022226690237633175982596060254344997903100559265684159828004521302085677347528093210988835706869335054416325827872684215917687291872335125451575540359038346003971534152620178427239363750537834943693825212777727965290676629754697431220788651327547944411790574623129989670137326175528370055260538128636434350937816591429927811015360461870128894893903578859792048054913686898454787806875474175254874701290133368863967253444991816262057681463985316028930528380971812196251173560358698297144827020395664601386665158453829175007684035795663352045830125744091606177561723158515351573089109177805167193631408637257048392649786955530042104856756359773866951642666928741116444944704117767152648287474812738923835471512256730645901923546739721731930504365350444372767602775551392261869289927636281410439434431053958589020817016107581305718039213744866116174467200116928083707970195816726026468350155918377723906733803180056845132490003927558645011656439619172259647978908415560962661909963045333601932419329508945100174995834696387835779324528065155969636524700796927423481705918761724242801597637508583334978549601479343206019409153352043800404100176648056754341058552791329129610985075011215359404519321187972336909248013033429356437813542217413983076762120653665452743162233776633873452181329009403994268153602581988248602610416968792852851409255500177401102719855643283260702830844586145676939130175032564006583953063476204435397519746971516983379418024918472152825385713763351790496947140361551655492412838735241972958948320785609078245860194405864411811713932814116040624357674078905304720088585270518112680585241004259163938563146170200532895325692704037203597085033849740017739923722062008043648066938073128325406625292768238361275924202215503017552710592037903959604833001565079707697731073132645537330900587754472258134254263024565281519471523506189334828925729350654719986667750066692952309126207285441680123295297237850835591583950622004936069998121554707502076072949128551438153035698336440480733202137550768298531307655852703212905390837711882838389705814163900756780774814565868745949887577037757128974559765826364155656623287936274075791447877747207033657571327239398800534793559476573487023132047359569982688698091527569198887073530188264646187089693817541105258469409546768321071063079153385571220686610205770283028857847338942946979113768128866196282312146301098124817505635994023043579537089916593461542111329437592474592408662754901723560795856865226834330361183295869089600806754503068464599336956622636800253466756368143733648898148223468737510864030576888494786490642428502808200059030920916442543730636647320386064194020006850204204290453977483337030959834173155324628234685566945067369274676455560605090743120559040712895412898616460176823421860112455552079113540914486110834747817653149229884972496438962992223775177035025254345784842330790959645461462907482153761630999433752796737040075959153448370383269292294524368903175145926206034870381817117393020107650753759377222492247882999530495141564243926885543944577243424146706212345701654626590883330095998273830657706896173849734638948711235376919801112229387506675808598161399325684634031784339084535324009788719493820261167254698379237945077194375910662173636376320836580922026188382562035963037752327028200590542292957462069204663956051178358551471417724008784209382237201336500423124393046156855985448925821553258424193082682005867842960637245234720333530560388307307286401699549423673579818865189283100410812810023747203154494126724609033636469283594499381090297179383072484630506125017900116110491240108673108510215268099593262477165561318835891677495273395722159483432660667670570196621414749705489563185464322801699538039582971881670947881937685124209996542965273461507433679389306953528028995142067678056434014004475493803984801714517862790946916592676376110052870376632931557273511116313906646517882386528482569263419991659959537876301255276624288897987895331445682605387274332349077403962125464685694754843467529882612118135900239627570667139404850082129083809083112206429812621731552665443817692214225146923381023997883160238019666212646841821549914771160925479915786445385411604125162856546460922016288153206649495675239356679386604880775090278169922656980073394585662776925483541701784597420082295515629753998332433806997770861151837782799092758878964836744246131525034050665259494153066825200850826416833387934456599820815514212001343880144156580634193605407776949822793081720794372692129694832157031339209533955655395037689864428684857534529669753247929278346874737600161605285041521500302916634706232783271694222619232229048196821675793547033552517028412929188433396485652382993667356474675549184051945477212197079489366278920088095250221059942325416591287494506775176460046339843749397850240436473286864424921117453847445504268550811304190964135389775027849345935820533107305292692791906270258198494010657160440682513840570892507721685511546658637140150590994381505635475383111183368233861190540795740036855520258999239304406473582629089396515532793414770043400646220132498099705700969441773340408781849681419593421660647527527448867563866339190701764726770180966715070147775546587338978495820394155452114191413164778679644792403605218610798182992353437909260433743698754258685301391562373007639867417710096359944204652478683422546542417298096526133247705897276761009947809474700668644614144731283295351041114301470077290665795382725537384591401266673946637689878670693163961256910744526737435031863494863316013691638687090184769280428628591590092311424798791083947640192337019784462477455763605471712960661993509060673210658579981458843414294972251313055073223086652533902767391892336304650444976307251958814967933917750436258923562229799282958912442631667699275044010666896887971297533942457566324322128475067362496504998575226706389749219202030142735226766923472813874503584287361306660989667449690939824687786188006739215060988016823174319415610455909794196438601409643297094087627331020342106131337878582195617218560479663270101555596047111206585198368002665553353796259911224444247676801478938397360303942907997573404264915864132026628870765254762017113507453861753921311784783644726127658075069143816635711393985239541801430497009659300918520267266018606428055498965555665795822299461629526705576945581738872742226605424814378741275966268823920154433941129831676179904043630263396564434491162693538209355376433558433652546218811813532084557044188516627991173685937205745267430631253333536123637916535450232794514755150054055382089429006004185799003774763556717439393181375588406294446576553043226263498746187068265555550880315687088976814529745468843195867933412899132658304133855514793579916765155901518511532062144545846871712114965815296019835855632589642671277397193951385209986638474028397184560218220959299571032449050425746413031298737415834380067048258346648698602287619957761182893841889293759784580267167522586190755381508859310203771900415328697753537956322647412740875440802043680323214480131478823733802107459688647292449907324250763699632745589500436875663136472906353774812872527795033941559062280244236715749081280525789181168969189685218553069823442083282389145209144583104194067072178073243452812710200464257453602339011261118052053246708512595903756910415357153758787827390088906399358795284415059053855870006017866519831556385505849031372920725041640214462186237595103898392296636465853464594696152943562859951323307721002928613914173413515971409953452285918004331507417347783610259358021879595910849736642394818610314134690363994189027559868547914143206371350706060715487483452343946347203937715450354895772090899673445137775739359713817109342464099796388850827844294187993621973664472625674170729675728537418011018745833681250138870764415211405161683481170843499024775710086673520876506834381351750606810713275924531346722700376115901240692485897672744324578282530476409323025276557584270599299799268691798070462461153697809438864627031451696502492842323496683183556649296821373340300649791048419093120855143354526837427636821294333995014677072638962749919050885080084574795404656116843902400279415995914666746577086462991434621562984979934772835730362695506578830834405956467450762822207501705778894395858713375525920094429850212596399708738991350322272028292165570292308964406915040567029172465470567503211495280035587265285764399867008084141760371763074909126286585089720061687444764147857101871886671240201322703956917127171403728796442924755413616895281247613490990360865339420834468225400686026078033823453693357818352923304874920240838922014611295632874369652958146251709768551369346156525747623155146349388642115322201224101479128740637893622072641773559095825400383084000992481229167218512594808278497016501434139576244103197163981151672307691017220120992268072919619704131934941681927417346362477823116067085922488457960206417631830017270268653001055987034197370321439196600849441211221511298785701388690319270841057434342665555563641009155072230689808542683725965098082643435712083965959117673114835411809271558436955849650747527166128593107984142053043606280411524361088680713456882586501006740538918953695250862596215653299848470787957007643773581311940584849853995670131611838487043725752328765627923210458472692667707959036546291295650608537519421866972739506578143052817711334820992886649085912060403124282212040515982884805607493320116837793753714456427526173306296979167280815831223937533303494135699281635757533361407873245297546740210534244718300127010761063788852492010988067425058053647046175184439233482951828261595168760122528200605276959116264015262032682054647889261009183071807360218421281722325554793210081259187906717269740256736485622826701366183607293077239862112443797407120428070742761529672132462143851678781073282144814180137636284460776711563190103448677109727412554260722147456938733526426236886197527546892456959344437932037489223022848577814152045618786806331133437358188237582093723478782757681535736047871756032482112041744693797557897306803154554705790886988654443020738486540805817204447231704933270722096283413878039348921214539444241877284199702853095293678227409902404902399716797947436952431357663676493938361695997091965070539180296399993811533230407656551649371515811565121079445304973051391377335687096127525858992779685137700932613364918478734772027760793972664026550594650615898403506372869423894725998351731241146965170400751958798703645559004529955118409852553712829283728431593098457417071226998842746681638544066277752703542204437478098206117988788282830748552658292239054918213605755187844443828118902104584495597417301752260868017421228153723559279901113207938384756847272927865538599496347551308729168648889004659904962985071266655202813248296785699828346528837931351214517683809712283923356652871098260608624564906061911335541769092696064665107329215217978850272530690865953748190247460103902386355617063696483196984382929381669672934178321713548293717584233727120055040952574306881627746294808393289228104530701805791751315948507387817849298572337585503848730905986120504166150864386550002204704440743594544813437163152657745402484797544184559914280049340217727433216654513269673339820295848630510416210139490974239375928305292348842203967587195483671137303140396194778739104061308361731964649951035350855438691663236233827456559901883611701136081417375372499641096692457852619144536316003669929914113703271654592312067080024040984723561833544038187504469368143283938092513803608523316160517857825851865526600448985188140541907261121205624266518384977000632725085023662768913374057265461365701398702321105298513047377027023158128039975384876290817439370596785036522626009528087691842740782826128418959124951354848576706020861678736824077413603001890727228937441210696942034446653560576248130712166878054950850681648608350144710390701315480813319500157817088078743610028063257434991716416032470434598986131318419024700487835319780324973390531489682588478142245558622542183160859036196354570081812125427948303767629447764632687628723212436492931680872943157076898978410995549354016923808845274880277493425895721259941987576448391623464380238158311315379104936090393723748991763693346633680135861013298673283361910763129480241641395202665444444047353026866162207300615603093835178040677652091132637661055749424519472972534996110904532488250501973708439574888768853117360831429159053797346879610054467867355560156342109054717469288571179827975705770743088399361317107067972223284307356352548720647358383972295869876491545622849606200441425873726177793207938521353980001953989638746960424761270630265203712170490535398716531073589833752011198464735705609223291722008775151579534010893321281195648895994922476320344525009081990916513396686153824992867451659006454492370082288793358271534946748943627911861164077264857973389359599173044708866339879946813440086981339989409435341720251137338175260203882061298254143952933074928435448808335915958354276194897954113757199524355350066340191462279078643235175970396971013293969757849451293161002060287994041283764177126185631011160619672590055634696865126906479140202922260077031376044686465913808273214256084353420546880297345912887963555893490337204919209963692428555827308456494716792147806476653423433380390487706265938172911466248675505684081618348562519499866374961531273303440662915646465649570179921173111101537567729172833282367164464055437167636803748933100481015367446057879903872296616727668334298782031989497476625661354710997056291701862341124504218477285598961388754696523997530579859956150719664793436757387259079451366222087125834927371744985082366977296441491503620879668942895369621710390956070509624902286230524816437951343846879445232248956713803733066478119550415051457348687178440701149899533249556601900980098684338107034750609576365405910633608364532716192576124781573021934509025839008896112940802557894440784833006655240666162193415407945718390415644728973005094089215022535881147412484480909158860716060435025762534299642565637281558535494541141389633760121900373992130728075028680839285371399056612902334969763089538352402615249687939118538331222755970408139195309020210003034883086106331318195223817433634912951882540036062756694398951596879729155427340085602244168833965264985088214153022915019312430093117927425682093630980909758291060206401760463390815747733036898257803605346645907578808960263843828884363568866723426175901360028587039015654687440447893101947523865589133707451375144597045322152660980055179939566878894404293766464176503751440009342631163351370873401701718604853753536822416656696461585977944447689768581982740198607556695287666699611190672094561353687659290683540525732785970701986476502239498710191536293750850617523203024032286878474076586574745001066775132398373229400517044056470160982378822282076873311292821391217954896581614790108860929798490082677692997953805681849867870219713924965640687135489201043444454061562321152347076886794994817067219626546390794138082286998850659436150420967240738554366896424313263792810105836688877732695307024181419159668006222457540520778008081298836396034335176850633117927914940610989744123668571857037762368385705943422987813722341729410939655264655956735581287558535891655438651882932579158786342917759027342465471590595604605301806801434393247015687573462391403640032200168724208284718599023550286646627528095616665560678792204871590848403065165767409509602532920593668528752800754379257057379266978660393247947260942363376867634711324720106304222041809765111287448592824216221219702457213410245887450445871397972974464974971265506726038080629397974454862983500047837853525199051707940999895468244933901362433331030103314442920037697100910634348763360544405546106337600138098996143482988709020606402517688935769838446382452427265861221084778275309948847389478186010797822704463312995299599563449655440290404756529232659891977513385066563181600148477458244438329339533700604479073854700373981813104647056158478058182936010768837310293578366387627644147961989349747282658154681812653098125327772253553784777348277161222349761453997494624507451503410325760773076570536751721642796071987407836038402669902904261149933574779877346385151724503987129984222944797205409385776215487479640588732049947430539713544322816327065130490435740170540208539274232966193472635279869347007115489360509199162734937993876630822957767310356834356191583074567123801269676212083812047380242629002432110647882276925899796511109862621479643151936051301368143467938531969489291512873886339152344606883115110156072093332555875105323396851203265157520803689802191494724732642525535711256477608014067310192144279432690182663614031778449881118788815286665600466390562910616470539579514845665937059597679661463483696016235040074452190924353147860999632276741328878961372180443896749416659860146104017701178404227460756152108736533513319609174708788498512565327952149650884487015068589138876869585953107900126498131015639936797772031281240289868078371520700144552292555660873970555332669986714992127292407431374009871053131772452152189364387496448485818680415224780435210232405575596074037712716007115804327182900721791273811667165437263059586923564132523533452289851895076559576169628281810157639687760051510383688726133886720796099317823198414055295073756605135158654208186163583242124067704757912369678385117822627344186998664874831441662467803243193336229764957857897485639791617015189722749100784119198828683333473320942322029985612976111472424423090944883932714526076352332238859350911701826759950150841739000163442449979256668905931742656634655745190410679304661097075684949375704075276209207342634926046676120475721004964524649724354367733158175275559894665865502936888848781584506625796286620523161924544938703016357675597222361163691050696942472855915550036172759474809915395325238599308886634684636148200713438654138565914162361175659563297703417494600999507763013991714702289286484807122247288444532896312607717953189063961042937566845727616227465546512976722076276255230628417253848687020999928967689398438602944970858821320995085468472509588426441725737457815042635802960997281698092366231578979456700813475639144500269932845038629309365872145028004264494259578690283531664831867891196693465415826609812228296460630868776481911160750923914199767329953810054298237291124454463678855636439541354862073360766388624784600926186248185580890323842358349315145481590562808489772656271692589894689236245770839945714134651970955233283553103318955901343791436751455996964017448264670848775350816726327430932718050839108147202283615974430482779443676923522112697341511416325861733383801107544203007839966541501069270685791712488297009619522610349578844213542571188959436199207438541597952832156593141525718386290975356039142585226962851599891183591740328651384964230295687470940101706785958320874985562100364759626900862526114883497725039341400824006815955009148170423053425822244581818102517603128434770282874498526543193738842838571722177447509938084801588854712253472362415192837469346734374233664566179292977861734103348361755682769410401128691431741728648681712229479555785989404137455459123196498760526680439659772957372003320030155296861516327427111441754143741478773732168930841063778822832896819325044808692814624991794586484308735013155637652747698850708747441821306641120941219748209587582348585411118312467456959288794764169356731260612288575129057083117835684238648839529287496157386705435173424752512109827586152433915469588651346300724112148066251873372479417488855629067145232934113867931928270202103488882747501715129341320696041783042394758077096613946569517799749151347842835001543090921281212231967452859207688937028768173261822041024718905976406706203367236733293048054676378217741302247431789280900205801950453077607947809987366600008377273937498809066478078032900167457679877383571846822652936642212511457724679026162945796532337244420387628677201521986446166713789969028852585453127601177549214350509360312515654309914317094951096514330893507300070924260105048992713209265759502607957998552118645785935989877709324287068664082370277250427472113149051954199359728738854835937226403016390005911221587258255680192254432828981743181030968036531093856971652238985373153093239353628116409551097546584140426368660171506604030724211367779924614116864099788394406132724472432387008236846703001607056421017438981892069683230928884775826385313745991987276750359355119343694661585429136432516938357550301529099658745807246199250529042190716296918057765366505101047511065340759949541256817556347608384601070366648690984014417529362154083214889678014692289134669664907726661354763434799624087688034115381884772864691670085153587334514038982055385357665604049273153953229510026769392206359477842951137309473694021893114028500146099453850916367028616353988590974375832497159549743519784890696637709869056883896486125750921363066255236163502420135396647737476884191214450324356568947440483473704464382617017634168086886533438424932218321508246518702267917885024589758494015644837836388835305990399884254197691229659069875074913766786243184594865370646340778014683364782658011619823116292492039971547747624536299181020238531095048712878923124707528721617400236283654879998753391673122638948236848622156669531586172057690294673273026238606024923573079975923663687486813018371994266819533545961218313995099970962495443719851101165391851741203438502082403722139306234125759623991902551670482897825518056691740685359564175037566622661717438351539574865356383369098360934140669796568921162859105963896751616277139091017202888954608044505200925126023769459473135561758078265128260582509569575666864834052202564866377084749194077695295080769015071426846553065972492297241321763913394057554914073408252504897512152450190768845473620394950249996076450270164874519032786451897703020502784258406124319457664249814603357808588794404096576977004548897478249498106621574930847068387038601409721507751699134880414537708046695645270997529386690243926980914794597076750859714191250072030597533371509025734702460124508454095834644200200159503389642998326526352414429387603948897260838757186738873325036715716695111785539756955294676902283631298283863164963289821659382180030666743806092007323865842911193492817686333032744543041360234552634669922921019990230619019620311873775602977662882369933097167108318328929639411897362278183135254071885981151841326418562821822917668375732282973364497676692209445558549131984154232554346707413690783960312984026034838202042666260566295263550611049309152641824968991974146553316802989648067961597240125899250225947897433569377922833235767089752858213879464147229943059489969511098961881773899572887916394820370983824792367621322436282086198479098177571781740737804229487372782488218543229176019831198624730256698954424294168254005430540352727608696332669816316068754884615774021426141687860283705313619763561898745119971933014713353954459367004843086280014550791414839449551525197224301932851424988903524212292971412980946324166160273878362153428978383532176045193774842138481366101204801879653969722660874914720345508654006249013972943184751469582091154639059426723342881290715212368887924116266573996170438461642061926661309455415464942335062733443032287816114282507037025382394141982974827849476408074653747458438806123941214215789089295273437455569149580184791981713900870301921887910168245476618836543069495524650258702695413737358304996535291690866254764308629449399899010729900475053514691423514482462461477614063122137384385792817084556253521867632756949694406870354979887430490454898708641485951155042227173404659841687984721241036014964341347337149945564362713954140130883697429465258264881017323380108357072614468718832769356521669466560908249473808450308529888319639066968304337225504071000382037113376813363369057945004560442234222406435013144894407069339492357712401826580805793867047260460094009602040980501216261930554017411172099793748251358415867017687357978444794077476137174675821354569537761964675888371436633823340088813765298926247373298519552657798738925731625433893403768752665909854241856003589646509112428898262009618934996473257227319150065905358731969883862463083922538541599335796295854576478625466996070838187246092787527612246638907446756221064523561046881088640142903118687049225969979785716433985495500531564194488677600711333132083172879699622292371995572919277377565421014433636406085394190987746104053417048329718127203323300278641862023658157957338184169366909522391329347683948027523267796544677551115900643501664343724440004578998670059100980005499821536236322423026721080864653589550426787341282380310092773069893931347078957181139294104632347269043860323870563050161046270012740656252584156750366457921099066903684897675972544255039624680055539664415975168839298289486582422814394591093678007439982819423031621157756229117209991716176627744343731882183661079932789418479924495744192064688858345121000407993939974487425351619336187261206758051055384652846662272665950864103955296573878475001058831047455789707233925347337667583310443223735538780175868100677422228873984663677086036671399175468126256922028472051252073100442827908363689048461480095517068739508495890960752737974747076313143551795595422485044098072252763827540249595006223322557851643658676509080384996221834400391404107939012756376207327216338952911877493277663203651140226663596132917601168750948975675271056346088632241579612212560480830228617979986654705735363901499771621217767824864040243455049295721496183471407640543795887259570483481495198566336233493506691743257680774028573717551126224037948546109568033140644020526392332755458010169029756389912355342550135139986153672122281685834426636876070230237081528255181796739337776188117780137607205912737763429440960514421505903570949064916512003454639558235672436630880863730203174142246792372501057906465922242863438234757768825067284521802779641002556749800033934615019196025580752092939449499644071372099118921539608833994321208048250823601434827485574278936560687607815555390341046058352158706479532523241377419734551177663302085214117004163761116657866440873589571966578638792785131927001675670187448475053065679691655424902382284659490481107232989567889642559755645088135452872363515194348683666453804644609028186886810615503409450609616865988779731184038984209944813621304302597765926931291056123314256075704312833633934214670191276794663574433982944745098716729146141191147678644274085742902697342169929270270622442991227809855722919568675649198763505722910909839278228742799933722971436987313387911146029672620762094713359198375969674200266167477353560951182898989332782942499046286346751847069634149184194473535300697524278238006020858268448102826698796201662435775295911722550824055824946888214304503356660090557700715232532574857323624733775935864202695607456769670053583406094064692222194423908489957508013260305765619071400185575387334937041575430718035590243548984503748468070286123218517836775744973445034141960727442969386553610447123624636487353663296039119020860193528084251141031368949710231399974031794135235596248953896741810855669091276976534062954517424519719149742130810701522777752869255712228833543838016140881308810696025244990357300685864630543064616596357085378648803675957263179641940704645066736210444774686509443510618545502845017497895221432010321963386624668340543283176890513324865681802183967405702644878735289687799640078880426510810364880453738779308978602538604654785759744611846770178714855230574322089288744191449529203472142060959132071780404152546150420722399989924766284808976746741622582402260692316955731038733765938156416099104256806173699922137009638193258632658462670797665333700812411375708760434676039586123176137044878282744913628085385819353395960719734173221504517070889100703367111975198589655527716738907076154006927354765750540331397256514946010546137395599498566228558273669619963374686561246663385313032674260209871024745570845432344332544240564480148613617135194108706807222908805639996499336866082329155812934420304260479834464173080380644208150125684509422812529483687365703764453644047195981910044707487644431624364003816545216966152478684513824076155830997782623996068216534759589443229135486483420417094471015874588469705661349955008468192912442812605294627828590770816785597655994507881573535365151851801309775247612510964590387325761944299608387893839408358892998584861233183147779476851205707400666094967555867867850430519787202555845211859594167675954347071611993440587588805873458876618706449839467980594423331017680399756883801462006390388480952589661481536419626169896155717709689457068498820121172712782812772205933026424335593216832325860771634009895293646494627573389984374369391285269680508878689381259717628851296430608647214295772842134131122500877835498151931993339447874210112692257988099849277548108195697985778865936521593420227923870667552975660666922808680670896266507375200118007861070958899702867254225673881730536734919992127940538449783878282540022920563176061554994160949878000196474248580341699839351099557130534646323767736882556637826057431019254403238213990781092570895484137556661868284802019400204458429978514050496230820720133304089263604214785076238238759014611189009104888849186368350968296987562373838370283059500073295312679730065641522557234946136251804149561084393589912493669830400288494551687387497085057815849621250540640496980985745595367648267891533991716798128727162462668309789578946137944220131075581342341219285985522379002269113611437684695796426611165653922234505267314320880689680838555234647491166637358367756118024463486366290872497553562770091881891849641957708347660281989215939629326130145496761679022786430100054264932237219168455002399017659724482399956558746091692016677158149675089760932225244966243214376741883259992311772296586560490534907906961064609228197337832329972763418506718454715389522093894786120180011344932708338735474121913093117534889322393662465811923675644150915068802532900714050292949929446812002302523829988921795661653898237025349979269663704158988273462038283666874935457048550619175101421179487843235983917408168146260737463146172256330934990142928900318833293926411319108523125151850269086318265084489511915290940938390908650505749783716638557327358947736281987693813681819815463578659502633372185784922118113615228542400372690105988827386989768649001995044876655487605011290497457401372659402544978229538955013584918288314036003433875278302433425212012289542889501228372262614034466674771050628884748356352785726432270929090681748806017988776328895318522883491806957359024833582593670343283315777630679122969333125077482198222702109797821565693543712132846425188068402125538244379292551827896830936321829694214501069828911097774063155330603798929114938201273685929826047506281567243521055789567420486804924029487861987234731336285702182465420172472752276055604348795098266736737926701357954541998931258264734770902183181940974995440461468568920417883334973400923107470948437114124837084862161960456907919124327161988186822899790142936128798262460793133651429278656426203446844912119123902505451426174196242020086749996567550038259435035749990823759498829860305858100760502985453512372739008017102599463104160369961873489414334467671841890581454671888960295239437180783294236226734085639773281206951548126163796479619552322004998493035854087693132565139481852499405699397452393774683808915029668961343249215248817184947927410137978153070118410031531618187604839377661160564268407999286821042582718156679793373888314463661902516270397527289473876306280255324203682207505120263370127284081176190092119522372858797113170757738508491516309362545993263261974545118563954749710333720488605693785449518343250285681154133284890157457929575784970996431103496238261472635156530919821198966790547425542722559103047010131613588940564275811605840291081200456937488597499559497209128920446532738830359346984314368884809706679014215749374686326317395303976093636153486910978352323687129701582343564521839378498970477664270821288191623672240668368133920440954990940838926780414249703283744976705226242682484440513861088257940591181163990209467894617603344176287379535261218681491643968776917509190773994325636711338609285378171119661248246834363174368984831230917633466417194363256276511652917466488337128359635398124513719929204882399612416944929366894623068463923869215540980690553400359710930155646117901756534569066752579689623118167179191679317124091749579942862015013647306645576138862524235611887673271115826948684803182561589709858223569501963337363163438871798801762497923746326773603648027706738319014042692488066022165729346310053742016613027477860493859795384546030633218376396203437182764136837696260247551814851275738261251546234310738807543362948212809643052097323222660807121330847144135214710143347465223785985064462832922057431531066669160889250375322685666478382642236792252129506820647615837948597238247416198947952155142870524532684669934608768064131740190007878130107074317908820517854793050628102348279817805621766031672999304443363739830224162486840268103203633399389798064076789018167406203915405266124050341341293312729326501102604519305223379773080841727144985379213377018696614796556559772102016128531773140333134998423724186968275256568114077466139455621811642305868605937014599819073714776680814059855267489329086958900190165129548961591677945382013512299183946845669615187197537173176491563132798698849033309679798191079694039499898022327084399972403996185765805628091246559163286752936352309819026498160883329341965485876906138816248848110735668078048916780145262606028719011223365628840601764368105120961981336074255617076577465406729476838904286843020749416189655390194749121614546759069086095221866089907316756264289471263228012907655887642736381542886516459091996058280298630418957053297264474160758063902742091543145241323537660856377224385659719378497998516772157828203331092949389793791946400813390175267380209868293379983892431005073885926040782563526442795573575494555085940508007920660959807727688354162315358370967333811290317807146704060880760360090003770378676935068004842120213543955122857211929159445334309299174680355733368822984438066609542634121189465685648490284041127927079581727834472756811386420921850708145956173526411721918243643692597866126912855057309381578797661523885773047283449588380612481532185906849504204718896589242198554029031548532003327255865202923595600025612941409686091711566541850335335432958987646919323349257585145384746287727239771526484705952821298325308049276986706198030709611735391760526062216693589581201844427544392984111393032165367405436767008531425910519713502226137072187793157054535899172056296981159583948428160393088910327720352715858867484046053908101522756791764643862633376145563733402011209774294465529163334040004189345899405159776042952733079227607409679141789094152646728565388817122802103618979529349972781022110326953308978207902998937444801289856800555748010841350291552469634339751924027293922850354882201068682210431626372396728170391309399405970811484394853089882347542291956218693561096691878644045296438633928830402704191362894495442094578221976994473818535628536988385717729964091547365585437484792584366214553072374412437520545102038912663396196739284479574772003068286452016157144863407838959607963849483090991187931922268421872969230157590444537168877180164599900241176355038622980204282900829691775573092835157682223235149235890583551498605248120984751638165164187235926471723408619669935205841722995961362725615763981314793825589514539293622303013763859849345978801131310538453338852492170677769941350625397216951598474785229974787848203975088095029369002900249303905456636844105759104837600659365559719730105832797718513867996227940948150053007108808617294101339985893786663603181991743194773103875510474878309427878214548012612844222803952850910278197751506206680000337482825405686557716207065341933616795373385118189452776608761680083216678843222593064693519596313906518980456995083147945803339306872088268381209515226598185642386653497184597275318659380670825264393329393265102805667046318641619459144018655992013610826709883406189672411841807024546372230778483745704758904604184900308073029613074040926407822383990349784107998261492810069013457861484675291862697865264242104197822168119650778932681821602635024730494998014337520639307618975538334785451532135096056032455528692762734366356905542819346432012034210975948844451335764099473214199690641002363067360271270270135827991655649156641975749757365073047618690153750926174000516620506397621257554238268798526095235376780799494525358662457423283530017421023282817463133517278612905079813043619546386762716578356960077482680290050925510016938660061911457246220039070262728876097967897513269855131972681267434880701520398902888315754746101910892236471717861112899861112153146493050843322417415062858139297754083650772810253372348157860320917439760663642594605563250742831018333183281532858812375614704367927328253525010341269050299650928959544279771438542661100921962292614916486866157428953060380542852431922362207458322778828305418239825927022593696936651246897007321154663886927661852697877997981953622676133806244736083489949140956779941266569487811962353360839240098082619574009858998941360854667760249199807253726501518424968615506617367097182492250160725576039999597063302761253755061442850188887198417930695106873293216613194512183405256919699959232865791203158207098092759672987896012058551401652187334411777595342503045776794972700914719344422618621102898408505556096081163359327556198001769371330193099240477781974109710370113215060721766445417648901820243646200200043269801611284343802705292674960271940171127720909646455480389545439937625840697048817128148784410475030107460169699818224836186491767638451033356209670335409301832075041933862370095633005448867195709574022470955320730574602986520778836975496446376871036354344750019276501885931364113607618499344993386005487111179008493349952315507202101747003427158242244367299145663443041723459129179943453703805970287235552642682459988754686031633968273026041420138462049305220341821303678172543085826904578526302083684645755733737223438867417046588983738332127004028386538251154737056792989851664279633164243446399497936343547000346219151063735144459631744088064968380058816794325764446748324660085241333232995769290878074376390374531404404060909479274787639286012068824496187380675421511864104044000611065599905649678233911772378156205404514555695159582175414671705184687033928651382148586526559545051854319613668370315905773756188431983541795572162342844663259715860552761277002347155428619361393094925657269765255394080709186169979877760688975905668101286595238558140923512194517045882155783897394073316131316114822258820420341157279375863964802392862098874929113159354816492070395913549425711811389121032641825063921704437521678098248898699637310293153054604389483352962648555475510757436020903320324719693203187772405886527256194099171518550019998137950281396791457814298125110544310006115308492901404104247683122449533418652344604147894699989506203346549594743889468123942414769921771655388098117681408313412240982578709390457770991849388116947146389074619591088350424653014875688556695411872454425703968452617800752306152046839998416247538053782774474863263588806693443016552491960398180402907761307525791546988088328454662234970996494393295516300007779702980033840648054019790865333981689366522706652343339813994617507892666022841053264528279219110497983058366204097543878833685925930564131738330672967375350996650135538412794242748124123802807283250741798701731155560164613050919033165075024125705668972820418535080555775746033596347619571440628372566343911837348697063963116930802026498140726266238140908319665982346152713230727550828835183127030211682529191700438133102607875953280456177862273412520794199011456413986051810580417913931400682668799812128845542033565278438034796131151609855873948574724890248133055311425722219580954539526621854698485583889643909415028827849983641301564620267537194545669016008088904052387603737637698965427347589657145675277024542370338404758308720489753952242212166677192647233631762634191759251064491382362170016883754211950777146417987879207289706871009886126324582600499156432217771424331236788418028976157510360358967364456075196940158482200103967901164770390061934599214291772649086448547825681465691796004831593857722808346707146230249491888358046717110094734130336795356166812271135718368984712243895336601733264760485357839618372104949669721127210712662440945189415388322145669499149692213491003475282600698128351805417483319080427906563949873822045922537331100730162796092186451018981309952248804631392158409853963182529024701679837955946835187122308259952918968132541796667689348777770621347879838188809959734100497392418420779411733894496087231081553770111794885501587372907827130059170999521272129082881655612162503192462853667915265965760435586460809941907000976032660888686547196548565495471403807155475310507155983200777464419059974619303135395538660585131906202255541610965005497676175858240655474151925799548036255091888082219614356607580719813373950806242663831253879411642677685346719835136044158183611496384137182457046296558322741424367736377427508696046195509608781249563210290913602032801729339728918066875685918212357705554960336584229136351453126655105282497634765552874330857793450244049861098715208563145811557350470981534148130657457543355652743783921925454217042008803747635721984706412019794034482271294686306824087138041396282453432558920315235529267517495038800520538765857708065757568631400670904470329387223341776403353302688450440782271211284823795484416039848660781555408660310335022182419841986789520256779198714509154399678967382689551600219848988648287500121098245748426889145182549375642660205286749172809997884069015754880000282696528166292591411130283840948561299312808308312184131845399367737008856941836566092311748114272897514272923127490713148668005582509279949662105426100513957264062465104205499346825152429373332040714883660452207213098887736944430181019783685416147945150665525752395524515367172820397532137391283794026098324845403111856582235507589264463897134206865956500211954760498518411885462955850802610776590779343455234800894888325719819652189796464297114925676947851975713039491501777982011916241670139735920288547340146664955724576207876569704233884950243896377273611590488264902397823780302111300095579386415698808334514056126873256657160574583209932120287467382236296554476563918040033721376956345955180405084068711839500302648877300576221681356549060044721240027555218160277445437326256667193592416448996728093980303389474245505308829304947027501539182895698089835370246273183571561310991544604326974952207492957950744133832013457321281577194702168814525705149177426612546446842400880081336037395101998441863635490627107329125859624261368336492638006863400293497081966263836842700062946919361687066538989682850444493858374764585942061979071566983893205541217643085314078191730720663499670618594390709372354279500472354568960537777430382864358199266280587753435135230741320600859994681293932135571892687080331665871653075427057100397315301911895372060093626270769271285581417541660708939012505708651821329626102171226231756150522064235743496690773001936339971673789066185617608846766094880354380970360857220178261860086412668501177365265401151798269608791842167745700214867691525561748512887693952791496207933659194755444130053012280205496168538460556092549384953927583556672172372689816294375169679195878236329478530277481787024619183966365300481945082772739643539047723025867143492417971982049090228937687175509499886185646623077632042699425787646498361800947381342684826821244707574803234828344378070558786965888435114352849442278790576666636517869865159273870805213887563996976926584820839634006944048517888004054053159942214027441029259667659776045569871838349131224070948012376362446085759569963576815672242176993485619270569905913140820210213587107240144723263318337642953720779036355333383825519800016783373859729042909271464811633381175511671102576753695539214328056763701042770247351502067140608975591485868629328262637182602452927103373607124065947188139522890437140693261928329709115628244889930525348157431093670337636768925745521605957436619055129692887387955435881815992141817222920944432210990501618221945683551030733278238982150769210727805189687031767130737227150532622456797721360268863179122945329904348643681078870501804274660095983853071590031125976043158672872550950005568530100294670125195324406375663780135870816197954211941066315429067487956082257760032920117029405842472473650490000619373140577017409548708016262709527323798989203837364431134638426450524994601043179708954425555991115545758497587297836430165914255111432115955223973086215548553692294155268446240997215591350284272584088217949855203945992670443344467109112935067413369637736446527616403186564000054008368463580597217187670738342996858122730749872519959060004216164428984168414026959044136214421574242259605709512355117714569756919775854636374139650195753136659443434855539571679218248362989502247946894931155756155982665488554669674450837955148939960123811665307630260689822626669754390125482324226183687182439929446999427505846433083726623909662935411460853555021360027624745899719746737543017136036990327798866847694854931544648513859098385555517816004318878887732528461650382095148103287448657712145722101153440655601860463878422664855579789533719994180828912266574422865824289904747098968758004766495711815615636525145047546118940531024469146915843701697530720098148807883280444406888781674945105187553271772466146537333431058569737221640188465711186627021764714069566420285521184817609106097706876626789852066121987527344220687370556228499934916979784434769214145591350347860774525790898705454202628396132783489951849379495738169014083799708006104282310563761762133820861393745911355539384931319924827999995765773697699441700020879856083408815973521333512738962272194888233964709578484567983637828232300299901182337086293182400663204105074809907988446770509104432030794128070283838592276477911632216954529247356913749921277937052979826681700328821016317647313112128062905733822817357789150977005822674065162910255837009387345926051856731839574383013906383849005392788140789499642926350412499057647120141096266512245136880802066204399734855852348055524706316914508307790469394904146868392833144152702897030803461769481459574056025785395148179773781847683429644266284236114071196061650644813108027781500305193809745153773688974546216810413168084672101451240493219519616155435295483457092764215209485813042869220748939137411979189117542009361960148447644548651113307392482135770169207835240217320068084203356049062087001418919509464626179253173509551672571462101809545183102553742283373418786772678784205996595206563992999352017775582815357016483220379317117495667128673439757230405109791831808479250801999477441544694869375977806347797146380653663838031395587065631499806717001098819832408329697437881023177487327395127799083950840837488747984988293912451547134425272665094215301073221569582348737239908530233897395189377711202504886074575545725640205330018400199477663594537401845250800731449589151887161620377063823242624105803903572010034490328109346168460493788260153486402151837269749627777095404707045106058756437255082445687457174955961211144256712319377692058890510181663834312082930674899665137963990704780669028867858947157528821796778931579761073436330484339412884697589046565951475632953317579304924758692622967028459127291883651508474449595069093262774249228954649756240348694038976531599036527142895410188722128299693987518275575383842506635167433262394790467043170409254474256046881699859950990667252519514932188693685160738007169727081645329811725731032958457063923375535952215932880665812315649334408737495132787362285350688533370443635581831856604601493192729177210550689099144415957130408144600089210315030371239852638714891496172175092004741262235591952789724331433333633733373102517496910682075122454609641992739490065707986834719289916511849382420422997424342399471607762350694899461886898224488106229802879729720649401172586103376760523649643845398223091395491427198126798542206754690479749338396220836694859266150433217642074245731838491589272165696939490886312999108045831941620745087892193933399049427796892683596471862320811330686006063454924769075873776851312227771773946454653626215926320087315353013263209627288306504391153164543087978473688444196354303816041522404877129133525360765508231741608618372627046106253341904300865090150009951054923161164217680037464925754332322037135773242123696655290257823194297857299559677667965797358177083173116019653289540868281030569163918803553901064693265865696150761067398006113047314606473939600680807236225001015401206468854187521656198492035589596647933102523918661791591215802478423325088699910535583042039778528479076599042354139045404167231947693995871313514163174810166186509999580593197801316197997425207607127204816965798345177086870699077040869845280595205633058346601715897647566640749486379523469556391797695665618672243218436700910189010707734071602490869564564017275207363746097624627222348654923551969950956600058891006041879603776429974306291020950934918966105496102554961607010909555574496759743719058981538461004468931907654772091044601272397908842246851906287658945129808808179856813271384446980181335769270001100548219632537633643055724632655050073933991102120562118615846011616296065791785308494780946925609236113627085227859550315584582514412542975197216292263939955014101919316447382492465479436194921242612867684073283643292404367475215698997984943459854318644166079108471937684492124033397549906117607869204211918096721960142727424685212562445203197797352798268400359231350528945493373052616610734193104735410706466948895354680904175780168629633779349916069175132437508269344569580565390992818213624063120965630445405564483723295584800233288893155567303423182325146355905658179265694267832419889267073049839585836252283636911257123631430312466753605198107868977589707921098914424740505289171572046294869347838993422556296728892549230405228489265199662801381608932154952333315076991129007186053134725869609128190310360365323238672954747706527615386409608266858653563627807665756654067577751662732758903478365555015261936892629552554066653773979152969908886281481036865578888171398276994439923252823317021535611459885491487642773558505718251906450171890568654900126925246353604360847681399735746851683966896464841001342425538618836745705521270933770048962754087565630412847671751119963188988436538164816337706129723472199514757081361685979215969719336312031276959922981098739428366545812309423401548185180558967078107576555361101235191717818336871019781021586423767764636384782784464314433280433967801866462628809153487061346128025426350832968787921170999238891550294206645008499078322580715454168456383281825513989337310511845911561664954167091492812212620054070966650251289118152964061786952270267346039949982864699599701105076241633588966467871272424086605917895611039424165932134513894854898624005277327216471218367010813868535256992972198475292033328352384241067340422343914404144933160652033015798174152268081506206634495953321697297211147467678441181508323403870471210258180817779348699585328486441811338944894155888937997993844730722416374619020786294418412898022861898477041794412298431268311396668672120620387155032988217935656352063141608462239582577438559687488530830798705621954937329320725614566576092496682522361822497272468579070187436596611629520123641883457154550634104752911996812782961011413300461957646368170723433750727617412501459308685168387256333471124461105581630225784358016882232356659817315136261255762052487514418933262231545597195464056965600724374594522789094559641603436379007170538823337753420701392555604886291573395769406087057398549654229819287914128621040455915866493414910735136805366913453618523199148245999684192739700573892049446987806003024517878998784472876824629113564161688928931008509697126516522337596310310717139139552861690283714432190264627623568535676997652178311147027506116170921526217395808973225341308083678798258165731020033975101536341614273508004983009174736699428879207079596638791375158934273784695993631108029545448069306624115174262184608910007123894127656656243212230151161426434255236374844116396878231226113095607264837657826538433054976573845104031833436822974266549538515255239721044401978261145945313671491645816958470790295902145292242702676163831063876115882870149116687509507571400358155155684446658043688711829995998618457157028947681020427920629586508276461104910895244037573285897617963432994650421362645547026464894546018441774637125059927871336862365376840079663953288231904019431649650918774826561692299561933552135101723223344155383511474396758775522385140559777865167638774152062107494685698749134145140658357500543542639409978546825729527061450818100528624345392012208877470537591828747344071712749393849530443757292893370664510792523600963738899958761225342356357612362443490182864184380615403617977594020239049454778244570347544979581000445523943580896735658845135676455731246502655145144405556029918824985095583189673627128605334098155086719692300802825135451482377142181052091858916715599878614120300018584075254889187469546150962970154419581043561588871316791161117085068188056274029439511497327604365145820712506441400922967929766918178761163374535693637190603968233566067182121725244576230621341344381744489793185831583638705716370788701077061284583866331227111927953709789202979251040849184866322879379782593172210882715939370315078145656043883801445633985660368991439061294139471045035156160027134323808158178942710362806913712073891780945050017884209410619153400041237170958549107234529598151988974515933465880468694153453669995564860255897774572500355382038580670450486613013164362935338540609815465101432728673885727338473274795194141914319481552498429922498922977394679822537423896575325542920822542205891045845103987751519998220007127019938265114794250427289665694496599651211584574090525606625676181309399110421525933331995758213806505551089497243423850716783036555637615207514328085249872848525702872252627925530433084950490126022966999193156681403525674736518100124890648230740376177521478289757033003469570311554959573071450770924831864547587001472796999489196948836097917380150814163227591779498870347208988486737294998727699809841492377740900811865324244039514067724222098279123571006879768739641965102213985877339938619960315759507941682575051823917267441884684017084317190356987620164884390987269431776854993843526923974946621459793446736940038562719668588778209961193134983322214189594034814907352938228698753321540496926514993431880811212397737817473709322937602825212664081634409790713989354649717127256228729168618934716475283131816036007483511305642004279725547007448543995307243125027480855542166678145238392395171001818019171731320606136938989390216256006272318362709098338144651433376956143369761545915191931903502323144329750041764711463205158961336810558082517177302033222610088734925475938999700208362543294349662230082596326530496973516211098314828951792948359121940571182434071843761496786023826264317603209868364505794927681845419592653525233105418294939061846417768295328994541861566561701185076549320680627312289880928004808586596059881019017958931450848444661224175844561584237204610420314983334157058977107412864492638893258424076197421661793873161191711958024216991925134294070570881488137260668180879903962542316566620094390256739380186154711938199628082401043052218535394210754049839266578503627520594601130632945641020023710648416614135976399374179793671048113382630378780238924981870524380452601635649153523902805667650134514812670437029536113166694031935206153303641339993186455896065114800473464669335064226048608744033677987821184554578482220272734694556731262810239761184790444771841917217021940058822082601402015358237968690625503959287728036955359307847479643309666778228620334175550179446852418406093059571484693158102794843228413746427823091948704711503916175216421121756831568889685481339552029108165976184874088741046611483120253871424452704102218214175525108002240997674416922951058786549124933952093218281131255908860671208322626808402271215414350079239101130275927480294908354388122805380867017830228533821828772441976861707894545395545085924218016465522200532850184309847116145759230697543536961326704076720972082659501686670883451408960742738396885470141054564920897278240265795026042525226155172775863900573914647795212963482239766402454005698216712349210518689050551827149215519636128991389295267727291565910531939160101195838371149659490346199184456571948888363105459793359761813463125484945290042393565093827029890899725656348319248349011925569421870024619642155084776771487788479450909802097767067095855051866719937826651349792432091538442871643194762641031839589761534689518273941388211893031931884456782504531904964864043660481857398895051612103561434826914843241574803315366721752358141917856096886334074367869923105975346854724514185240878258397663023260424055469772388713612329893185208906283736673613710912855107500118985892402336604246651711403745641029333675408304174641899751681299889510294761947008645367849259208263258393102245002619216837627887105122892239720330295345005838251410684974169161917307030772322879341689050146384331503357408648326809435787862455896427523127882686507262690385581554853063227054108583588722375656333026385253696589091782941198193563795500459774419542669503866935578079554762623687412660662337214559409765875078116863352746875425389287825800501271144433436360307158053326945426032767338004632036496592610125205108883762864465190348918666132773410196436409819116398853880392465851098308911904506155591748476223931488412045246317496013321216992420908153388166676674279369068867226632469201398488868446459845909813958652963347321099664935731726762410217137345796776873856823640143686806304306135797620279840129443538332459219194494311893454987655584053093124475396728084727081874913411872580962379858879358465878107264113551855244869937992411591686215485273429476591681979423180308113692848858626953827280694313290221688260917338927927136623336849782970840628335853274200287446670069953244268628302631196817316431705102127258698585135378862256600609500965356746700504119317552451252439163599261949693844776276204010141024804093231788427466868825994766833326955246008839309765702083481110688271385943747137314933154469504530566608223161517604761594138210694373480540885736571948177607734829269548054098182808695456929734098835112096601423383070995276221085686044888773336298647039111028342589741764939256030627895546279061057618594079114361349885931474375414251942741956756362370017135972227186032957118575615674655663753683641250579678685355694740256049139629302147720221565440578224454294940947240703034285488242204385562505368041006625178835336600873654068603249276715932663484463189058428061742436141070713600676229504193853623259038049305575763565505571915881039672392635359316955424112813674315268220352366450774492868237131813775661268594488860196267366786929509171176925901266218637730995222700695488893520758862685637091891442518636817442218249906466855574809949903899701502845516946280114834912524296886451101604019588415995222575165653259400980726444573045876679277294435043758625553725304149879825099062153750629923904632426041641963117854760248925934255181831474299753630352656553501463641460468426668505738808064215732941770489060926526592115891343809951473265281141707257769376201268321039766324410705534523200660171552268776901291536217474339885796850992257722852334317334640998278062607720321901047856083493822643949072446914515150709093009468625801753594054419547550090983025661459289812158629860295133311537994915312526944628750608976373905122234394256345102207452565776643584587661983880565010281527718622870332464775424496021628308946870683734292100273382298904322407869741849495354388490121261158523220571483562449183960678862919448725830614415440872974888515259156432257032803549730922842338529210300490122017916758797635571158571313204023261242784364005418501961835793265527641216750174392307064428790267329130738008090255024081261435041509195486238151724672815147640203766661352658390524659545312525238890881673552375173486732264710506888077564258875204676667694359788851521123642367264470039498097283004978692095228937548038578871274816585814808938502021453158750521203521693450733992080942878977920644942472048625383090509010705714873794896239363941492852758889884885039919326301370305232535587058197791069573867617881508953536152620531868111590918984834817028308389859005799299958503717202548852681348422974314768197794911582250840308096308934775764847892976899714762997871564881262731503517818639212877562180193721411442324731970789584934514107394784210189386322126317181173610369878620150098486295179303739256875285771655628172693562214003958727764346737220905616570758642476746221017874737052841819040055163560041997528181113741879895893508732729019237622605398817418196285261942486727832119319317852725114615066908519425905940041148273576429632862976482434142844703759089297173335217678717239415822699737852059394491546816112282719532273987781984835169612837121447580602349653102585246570919449121579624083721772525923557583074423007670224324292264378644225164646796848532265675805059857702415848737972867321938125308089343011591831352984840389441835729854737605107588889142768355117642434218898481253792823876186997774665918022460475889928379192716281742157808797138385243351127569493113846962177185762900585159978603554372282990476859593432271874908237833425243535824555002535452444545450363397350119059349364821924597172678876939745026976072261120879969978886073537129679891521454457579070609086969739430925859686262185955786801791586396910128091884194265225513029948256286542652554164784070310057805289202684364171775768169316802095061988500519848358839507564222929850987257469796633274960249475093809978110240383450612726767411167716433916480067327164318825458095863224321250984849671707765284577564211440118432607609306904154665525694254531232426938922068455210276452626238881626699312432216142367670082794305676027951053291076971340435582417278874241312665706324697500191545961514864859300279428524949162544725212878387655995578045485639315972062054085142167060917319261518329664556125215196825942143565063211356689679823603213052302768285820865168149201496498653695550516996492681685619161408723341276549981125022568564759552867522359974191113621292467630235008685106571438465661827440078669969688509936414570114557082666564238917979163485048666729090488488357023492500403000017723077686343693290223956129004297679490440648943465343541925799864328728519704642454431660559714173523078343916236892729320245298953003536860822518985370278212149210187097511220041129240159980473388883787903909323087882850245459949881934373800452725354924857550247791500023005001743699000922582068897896385620752126994582108561514321611601598035533105049710622216716920906350754860538978076509213766671797730289738627372756972501025622685959811925156652115887014945174199514628543760195332483354755028294264979916317935785544230071287310452494580581648083970218983359608352858486863678391240468091577542643658222857152247136220099011315309091895962393972933084911132388257602091473356627433185821604790863379359896430329210542522720731650995806123067768748329972531089926765560320977980836908279713375388201738177977494089987575015091472728933384389215610499359008690566628043973783853851908052588153464177292574559429057335490488235569282563705954956471998246706883799491242193936204619828705681976703739273051159374054419391721442717332022846964801573078216783798360091126400358935362037768648224012045985072864086692712428693015556144189361733581147487563192020987425888704104617509448643418826213377583921475131820171748955561849485672394735281207376372379356607191008378832848640110729440181148689505051944358933103311167577036438888071186785948266323045214729715351515430965560138539246226347359597972758571843099294337950557205976613516942273335537551580301458781645640522156733907213483541596011938729113796974255186584999740205099456626998743609728344603446230949181206903880612239815554470349209541076641256175051291195817945990407647359586982449628205556032771625284565346508947992455659157424361020374721471947161577450212283658045395889228169276191058162377369490663920401081104478532653998310408375025742116598355010990080669758994144198309729134860020928768015045814854175982361211315429492531985751715431871444953903096767645404159125694272948486825337159731031324424492373908316458897737419152609817946829423955617717275991986010635024339218002480549521044185363099350423494698644954757493973907730249820841158795856675928791652068742999793193905551124215695434622966719458624675639952148249927214696033910571573494387900209844208336793535414160673396842224468840712105500882097500809834270415244179331096961445210725661091114974093239244291815193462161236652179564193513733070900290337993636829306330412084821598180828380171916488575629418724117155478162203907453865698947399331345404940392304587351427164203125125269177552642890332503796564257844882499071994683706735341047941938028754607992449926135500355522442258792981590219859338312395357079170207461973191801314392910304033745639882920148812520977412296360581224940912627981261174668264693781443841672510589767316266763298462448041818777200720139126356793881040145871211280558249188944668703664194088447755464152434587039313479427210672699414284564207062462451031297319550632836835367864772039436337405400381449250112339271910426366647203957356471944782114024298571627371039940845633818671847413450062959226398287553197159695154508897965801802771784548633852461643244335848359016435681365551869680993618937292787147923014101419216670313397181380172563809953981941419660569877372278649398193342234797960230811970259272350267836804907346902852396655811610602499378598733740742441418131810491642696502670456490397419562554928531993169619477968816080458179571437363232378555297810548969943121458000895464282798671778142788231228101087522009374603782738158945772340174231286734940146214996331040691562165668587442861169185798002826836629446294474724407388251611025858992688867803532791538161072166412889505177342409878345095672748670408212265079636671635075785645686329298714941770334368619333703162179311422572401596971582678034460569293277146675029543914621501301930486961543331069112447149134919576225557397581317696159188087180850088893568506493643550370475770937363135785167761471521664274303956052858632054488308706626192942655316156471981551292163699598881592884094817159604797795025327059024337489175999405595593417613179959768064186439657676238071596885008245082951357863667216893633875787840148560758006442751142386814918773919555865651934859980515265338794691718632338347641706653866908267196077640653996712268483743941937369591065290619294371368912786484003793530817811807447687989193854417101915122752105951384377585148610514775945400416716535169404055286846948372927264403136292955445160989355977378088507001796871387839103618006985611898736896557949039161496903451691700239736286601799878748794649876535079934100942681619183254424245451492529104520391833670373207756480829481430222148142345254307216196120478752887886407314309605371048778757057510637028106616430522292026623975319650810941434075468868475042565859976063647549987869682766556356794891430542734303956972719081834538915966584226468164282155190080545588975675419559644397227880103981591430836395860364289727638888947774474153346567042201294171352255444193572018858610734839414761028134745277142364238148695249705045997913136294281037046664061514164597131823936272730631696086965307408357614007317779196127197698785319219014919237360974060217752268144683182253780456567427220485688611820330428759533160760978471856309013301280104460423779341217872114821783226118366432715587196342178747017091477915232182837388351424566433274732312470574851088023968797271088662623269683548772723546444901729353590570996332265386005573682171183722185436804320564821841466667642362969654698766038000211654616701910781998466651935348605349485262070765340267284247019198057006510035886041992557293462751071989145299177001420763525564447070723673908916153349507221804791399040080844339220756248789089144422777676837548770410231182508575903966419160692819472197079800351260819625001955741671207203870924865959666257070780215485774188910041529324678353459532337685314403394852570625497392112288353873984930657689099476929771785462108820202212767727934057375281678419613145306868695186863517471015991484097883483683349211843863171411637881120916290885912944701589700829040044778463324003099864722958527992541572923526896971139099759551901536059079049259708118617184270264618630693439406851237209128446648347471358610296847506844707301602581544934624767067181755305908715939521684843217859351464774520904953540503128554303672067970655846735329862607403856005988752438792618860283607510651837950810546649182942981116580434805702648006689362212041454823736789427290053973514666029409221017278869549792697694032074269045679393188545661322790658138792757679806924592839640769389597991865977791306619045418920591209654122898755050977879049904093264213672265159413179379344220987248805287280940282918862064429654315151853104450465864029028342878786509186182508107193584396885593729808351616400615700534585850486214553371230064402203615902198359211370065041340466231547673005120433656706304820800591848836306669844860957968504977513749029170685195005209978144619202022667869403960536146592365235994635516694355950739756858290851495531065553436837977622334255472311807681405411504053918975341855468115321335036885496860965026380714826896427903073620793283188509226226128089503191244814860062265320740179028618977194416302583894878174455015447274520450265750170866748626971363762191768090540904565538968974279429013479925624344111459350942849097933841120623896877502974262195883064914846066867489106429675760814611695678243691363289905654257033384077700748834449855815834007604601689829416466725990953874207116957976308891933280892228460004470489344458705270618005891296023314193299496274984028341233450199156229245447804523296315950542235709564096431154730777673587452578297143442965445048098923479368884921539269257863568300906261057259819164580937840897642630113493057163821778691226558356377463373450929492139607254137007850516572093940483811098674769880649878588182939322442707064103714671701610882714355850637141103156578423237457543300703172016598366825542396372498648745446330192256814930020235372109675587797034804932404034646833681814354845156975099329923612927318387895833756365880635516632031294646453859826029520758043954406647878617553383555638752062434162981920515312481077427742687497840746663092765386642374987693182344953181465956319538315102248468957402343878606738587079684293179154448322910079394209311633366526995465870064947646379167515734773070091407672387251409750639025967923768634520163102287802503888757821073853832594777039824141182168115615197214347930232622272259388259211144521298471697374672451824316025899167096671394032934056236928185320629941702053954495743691439406187084371911645283821124528546601026456729839401346006738249406370046755598528797949198682268112526014865407813330926233060830898471754308317513818799520033448987400516690621771083285672671310236857941098607773004741524435090934060914979990585970387917806178374084469766838503892411211626545018651319659301590391403042741680631034431068061186000471602489233299934713836990992984685559236292310206017600441091069265248847589769099655425680498734385736623437837329496581702872580532106476438291895759919654101860804530092735606802296009277517992154725352061044116191704196944919104558311811530166274130571776049494158634829940275906758832750954291337105418204678348314236013847780535052120449479891552923129219494354763258388551551994222987382766909190141567263623751943485902002674954333244034180444415122434617031881968347180228059835830160098633565385570688684855795068873538852656360191367780612482761761299261994039181470445853908660580441775308355913814077999532574451995003890362070640883101572676171145959506623793217598792426038010610156730348004522157786363923047245731783666637106032952516321897387509678191329199388843206779849516615118970905655442631505485019731086784872484206756977626074000237258360748846048059362149441091874062372465970915288174601520433048572480906582831533120106083958058214358451722385559425270811646225830143389410874154195788891911136744146931516143133158179329326382583469888040240615963350100141341089802832808078042833679902795145377125110735436650905540136519575904463410340057110126128974702733208493639196415904949352218910998313802099519950464951689737078392512438878570943059289149488830754838821081457024952927382742747685857324584217439782928776856497631829648151177712156455401341976267114971375680524483653166123197549141649031785233474892870656742707763997394445726499355664393191912898539239139596408343623041983731936934634473994208128149889783147808406577555857308857266071898049609897682621440817033325917250966763180754422943262237455758904216054425410299457657778758175083755060565716512185313919366821002035717280737422582408298335634674307133451792286674142432886030741901864937025031454026343879192299378504129058884818745155715956580778601388784777823739616178246631738897056664192668267678016126854214824873208359426019809767097445257257972653265585591129323842134187244436452219524465608344086888910256527608999604698397530645168663628936975486245708113101842301921941552385883915551368113509117887045025089138682083114271874057640701972988896968014764205102147786246832128215516464594549948579620003684364947509822343287988325750873515089695879732270946595600135220057549822843393948106115042948624055985431619423606050855656131408713600150473601742642269262177923409735881021634280243980753226224759113103769686573490184672586638734828789320252866517863396294841809488169394554906875974688413843918341066449900011366477186191054730846872594018057037949771584649682440317530838644475751175160696740756151770243995408486164752915567241853587723235124521120374694032959382793763375279335470786459187582457471688015464850839086405745485340867362889584530767391252280328224787066269242343157253153812106968272137909155584911621348341909702422557940021535698968450614414435529797163662250143934454624564524020931552493103034658247177016687017472747779513554092866008517908471684414395255416393304271132393101146223204797358022042745284973581372431103919526858940312354592756612494545961896717755331144579577808399701651329393676782281057984966689443533172566416637889610185218933572287377942133252628874303920661260477545530626469894747837028529460645575953384879075854258500870924223643989707406718220222890714246685817374464239759826884111318943795658860613397646968432545884334216877466569669656790230943102213332835734529142133067719790858546073600599615386711356381808421453519167012141422916329452520853114440032453477508396398051412916724034432008165910853560273637864686439605907764320673749895609661678352899424789890709862945998676584758282253819467749791455366594517437571682501634199742354428710195687438075746353780632133838104220740720383660094450121303503662090309706721569336026780068325817535194667961755473332725053779586126363359640992579951745187224696926674626190774480964216313152277893613330515255786562120158030907414219109941016339470509715556833214252723646817161858072063106758282946775400534939187169640104239100336203272335165527307656157667632928599633824975366162906144845785420237862453705199713783131903613443487373656625497160338573916750163466697382558273564404777744262878863780175244482551740778968248495091779430602459974310027488991712310402937068982657951162548841525322072053840569821135562834482539579583773958621795520239680058520647367651133786331346707224800780445261133575374854451119853550225058221071807431525164290255770961213306428231495875063003543004357104145689287070890660586477526540379454086539209591081652673060123080632888633345435585218101417638449405054253438857584657048925071131361343083887221058626372798042436852182382636411055285312236880876809213910367434421951503623165039514622683333591588670449345208612927334984713854568004256205833136681677225830207191598715227841801875254282071846805881229738048697758984274275186146469766250414329688174006119155507873542500236549124595517116347444948796383301984828695378143336320733443997603789340911937229059615654411158575758497606315343497193238433467412471908221182758313635666282063000316670448771182666035475137345489898072192252257870445850687829934021929963789978270806253324870775458360401242617764387570742952166268289493082626586372200591428917819176226613627110662091863644030939930532347358773904854139390303959887471931173829489410214313456737635974733983843533143101137095220297005641772284767847083065215382975192906552769142619955073414812967116947483743353443015209131844785932042676185330387638366652682130475774858829762646944403073823069077036064659153062075795188585831655768054942782228695947669292479047147259491505739631731018521390769760183341212542177409200060338809287190622383840905652700798635246417504934581379550130397221454977333819773573635048396895580569803444559452407012445933111061531795905285363075318361003776157317024530636456642366967493097182970137005181647114792472692774555002833154809528816795424061296637994558949751462326834755521708195894689997856710094105895867074555485189465677272657143764547337643365061253943104769363671697567635144569763376368464051237873133416977730183026550338433107217261098907644194977731139834586526616527547325402751700671438201507529597146277468781496010853275199237481968287159718760797510831121468545311639126483462023610837845737222977177766418361768581637838349937932238913859766329117420322105936483221670571587559167821131925765423163879164347039837722879288024153540742891211052581291431126552282492729812242772874490162154855021116221799336857708476832098348113328004412585385399740059545510342797435008098426238812084684323629130361051289139930846730780842555588880592469390993683167272368000487163543443440141274140679562560559056604596718052667566270787101125367026343103669048819879877619507983577236741529262354759773289525166387139924897028673195000140520373661639790427567622819734414932304957101411855513187183147625969338573274621443719309553057173920233875775364450055576932747971260251671276425004371019821671346231692917899027596396341047637658416193136466896908948265983973839282196839556845703110124347898504911820237935088187253986989892734838687419908759692391456990352272804560446755699062576627987125868969413515978012075005752121001469193964841904431248798697474755645768915335677117014380445207973306978278819884707437282180893850401057831635356129643509894807969281083594866482265673698037315739007232134900340571417388620529390467999391052514653294229463199377264261009838033875321740416824677997195026634732731674932293722751254843250509178661667882668535509866650828230130953723716743169743048291021768471179540677469414997500456776272977171803668557478456204642504151671214315197701107691222229183630617965450279543162275948646067605560921214540792909112333087850283868621555548718767582589950718379636289838555255836813596212859442705734576330427940341944483160049381786585301521790783092541674945675769637677939031529171565928152635626541287917001708650254914963962851871179102469442211571856103097332307976148636072126969488612895100247063433465946949274861477912804940364564896461474378843241279588560251109610779080292186551498945320050546764102518504404512903580873602255782778752145734628077382654452683206109967199429681617832629632368973007965066378621373203322849883860648238198315268867550645249196036965406425787302055964231242540909273871345460234307619721599369883950245959611800867009394548074078058833582464963534671893138737090632471622355287190862679002249926505269314060182195996891324341502326716136569860144576429656210109814711703519540300349530193309208610787274215762443863081938269213120228852213149530235218760867700547977437304342216189049156126597627807649217059834328393688495482218554319690428811049377853327648615031415458113958800930883722401749604666090540046074480110964782459874684027950556221124961970032829991963646806064569444179474188359670638019379284363921896522796831667399104631205925855648601838424489770219666849989120881606363773984568848375289203148554801854061400235069813225703605600227381753544333592313383172881030185687066868101042779489655535500059824656574627707477198160769850735740241004514210898646325543689068195870987913337319932508121013980653482195297506952189303989321120249106727741856461384235496730484031717642965749659387893569656816204983850071983992997398415601510627533513329636843634394145472903340103018557203461582662279216448667546441969440570658466617260715100364578208523823695348797291901432515907974928067199511059197909647864345063234152246537791024964159359255378676361023558711422891857432840116876056442246310911471000527101981590258495853147748560975859629036217082330035097282361692361726878271332716945537531935970627844669257936578607968026973365422934024627757470667716878291305744034392156151976612887241224287882485094663988304376874534120604476988004654017198280762711105806662376310902061938988604671822691210957261841513846254757281705309638937187396203511737939271647344713982656178877469871481578815362314316276996959460956455627988231862089180470575810288062201202995803109120334358422629269441957871573350743294433750616429630365306712623141171445795194679544246329077583304406869761474360123004139302120433181180975601796478985300434936114259125857410381601444805944736680301385758854900925476374484729423375941408528188513802948208887297852795671474101883988790068477360738943761986722217667609391249230763301523114054526908858268979369397688719329866084556004376280410296725866239361713507309089308001345500312280142910154080372437059250293670789272787351066816193964257894084875341567410732453851280487271826473435143356758720628494879178219330454017125571010744058995679463564321370122727814544868528013224488663023397006676327612962160061183618941400832107659985594461010206595406410680168352528594556273895198327291908622375425432353302843411982729646937816145704139561116959306433116709618903076575022400052217582881865445501195056545957513413095728941204776920114793710187734336301045208296991002930452830912595751722479362047239473509020443955520420516642536685371102968489915557984997187427761902391021419061196601480480310747855082867204083040142011985392207412409606130184497755959285227173636353372852473075684814410322188862496598499346255585156449759605162721734284905722599868678249316281631201279818423939964820136587786908914036258481449926986743913414201842094368970645196036142289984034641222204455942388210519502112090060805991554868905375756746717410921415065052583687134247401097414439209572730070929138587066424951143618421868519650126808231799120517129700882974487577182181670708238408430250040392415235995672969558178615028212067032222095785517009874585680536142806588074452250153730166058097787758134936817484287379291820498545994619722740220224927961684116133305940129352378896872356425145043890175287905176177226380994732378164657728339956610000776646273429763138751406948944936546965416713776686877519675688074386709763049839238019024666400916921681990000923584641136501752576235384733214550017514013422478288087219737055208543307166911764607556758936877964705348931821720412223873954066434721944491548161348423505533624471781746951313101960572268544456869802925808177555140627643227621829225776460180803444038248229210280958046840365095138475221678562800074143676693823531571898436021805697306152028577479098758650638973391787972891886176052015319261677988060769278128046314426599981926571100510058647166617889826163802955695104316939699942199660324636342691755149135160388610857121456919490967537693616045883707604830275759375296671252251651904463098206252340386545599645129467646081643457219820674863049168336402064355965267926802590066736813610271836212082455901779561351590382412425784052423628618823595270147958975876915813087614679204834039350599358321846262003118320919055994507987239896132443268074796988179381023420470564045982261681044296899194212677949779262794898708337707674862832074560196992386053361405981678623688667840438957178140276115149789870753509777002537569830709181014763407919230998895636270733777082759024191350076427286398827838642603649372401083162525462893128973017187565268773946381042995216719240040404393254124701999026938060598087361907655616365621437228554941977265237482528322252970633311263113261425398201200604400380136881733096424653764839467371338953446689828413578012545440492294480102747055544231868507812895531135752710794166203237637191400554327296535133931184986397709066681402687270482107940005496217857037899775546533657732929783298875457530822649594441945695378510456735926890537056364617120357910770104946994982596853837458041829588998550492957358438007399179199345582350366098108214307651084331937070741674370112047227575771614441263949433280144472423408935049763322895291938467884553837950351702441984119165208990704425013543472300030721028151730045289560224649645586629625133164140582925713914078534677088257703673290427427022247775025192891142600934647935296684329761538125534259966355139489710541038860169405714769659410964648271762421233296911827947182102469996741494894854444571470434931389623618381954671260799921141561152750317874263336163202545613841415629159962420976152872029092665090361648573327703396921580101422715333669673806073207363916800559328959029710733675476740449867512746770115586041075971352489080497205597473308380655695227621912192556654994443856085008978660781963074865635564941722964371844874782498946306895231844089845722522222043154230388209032608206051812085392721429545688464495806212748167837115317550389942195081079081819448735396593463253197268391020614487386105179241285583450802349783238498469581807156217612617065410592992261799349785535037882608836587015126131919662750043533399039041976480375970517566273569860567067257920191929289664697670482608257645394271425829687407624831399936381235832002244547705667468913524893836101777168903423110444711961377313340061981350170274902952470810104157536091038429944221354883115467250408144489024642898511891126116208855074765852108452181333123475023923700957830608516681273084769307895262989921094089407782207399068155839333405664824222246949130074259400353911983963703498769656722828963109741287425499491952544322718102480368717281938548919600381702265690339367636640006073739508177008255129991311601064741297066332584050778196856933591389706705383230411728530817853342640832157036389624139849242627317550090847222486438056339345896205718946665019214957804660334859513488959607633018860708295086336660495683479031700814523411972197230998134334483876735275300177438570707947045137907974657664764641540448369240497315475704427991402522357355528596389761803450789530491690149050260941725296419976447274228796033974317127974074779249107808974449551425366552531087150134633583235822341584884333197143978538197503905035104333854732915231673533892196355702146820027769035166007418941037245434536635163063313964309723321699904005996739911828073545493650180567967917348736419775508677897665173661583863597507707834605276777878289359538431298294794086352478208806274090983874063298518974511611030809681100296041410508748472453328641907160600092846524550476734137140062598766777107114061045401381569047594583690574101805116079330857991759177229861015576380201926613087297342249174433503072807498930130260576253097411955172924531463498073338457341607524472148262005525351760213901337586212865667173266968461661278891572135241759178001141692042192940381788975806313940020191215754747308272289376108583930553755047307744855698280179120553542325629773456398816125313361562746819479617810856256807354085094598131659566364413198353258535137604447048143038285187575233868357091586926994794873842950720585505846033630591059817470701767005173950593711828393229737863308026280250188061277769675147245785597772464377157993087675298366710248670946212662176873323293904426292311462346119466287532775641939203950380101966352769355533186763910576522977624992023128927455262175803466755815138057102995789042163126079745906609737347990476264394544751803619932221698654341155855106121532028658151349602867281720106021274623463661036155510284555995100368455524739192386623547657439985826846325185795237658062959903339622961556838828427568507407539496826521134667476098302409484697950439074878838417611649062824146411209002103057282747579929878980276508820516961162825915198666426850557873888570661166652533538928599227401154473421421431284709206819905622729213610588705970472932013376055353654011999543277663627487450784253313481402532652304096454689378705022932295354943216083832789617268643672129148932525447079318900818339497681907178580345663677908822629899848205857073702946515157738520411071271170442053331102602827533037464513482233288283806080837976852579019157725584950093756751219291704418947240981853595034124030608724655312421331990301357907760784567609967531649048236547957695122218036224422806827516694940967510024756454751006983395677468186020779401091722127762672695457573522959394183196260030948279791137534835807657973261496757463339624562710711287045559500317660164611537919490411408457838788795229645185382503500393578272101899649979052821606179386981108150833641218716198785367472608669650086199397605504246971404081994047024514480746986333380422613482698624391291159535913539532250532834158347485838628604288041584322429470726317708862417497089181278254943495182975145302331704770822607451274614949639707271577827322890577540080426558570521072049302922307733792322941207646487489245040573489011443680157710386658619601555496723914709085265498099329881606256757780826788996094860365923233521884877694851105436636801496535297582675512501895727709031688302281458780737887270199642814841847199567860713099562831916365746982760546413501734360370723877788595416761675857228798110842184193380953441668713105466841979261216905764907926097321197213378847852424534627789865924242853464434181938513811386881521743721286203315553290901110519755884154871156175255150598879761893073661294783901677214459839779684680809562652778443962251211231333514472615756456442438521541490238608828898263911473083629753887291488268192011329645091740271588397161748065024460942710724129615255754552022145546422033014180089548529417362486806112253831863150394889045486539938589436320042995257805226411541587665378519084754711066457209623561710194080673368079173086112269072317096837757453980088531208095333687179942657157100367578324721833926708804378685796814964726603091000034158333300771945099624600296814344819689715706660090998490590122305842316766452675083444798577548515568802186108641705590587752047744816067776907585136941936916741009842569344061985792448191051692327579878703072434353708777346559486026023656491542381168631867749117873269788830597777754219780704186903616641937273887788466356742581691277500741257281242274336130351175143751779203042680998436157939430636609068435038968195842541083499489061697917986997775424307868973378249519823530929433160522463113806061408367938961416698793359871727604575345386522056408053041233124978205665787218314347876581174496576738258463274046902528793316420942827179913204883962087002008877126941725019517971875214260523040584611453503665240809653142315819506276639746702772286412474763969354053061206003007373875010395191311222401067541683537718680262155921892748254065470968564466230665115167189027200155585424120348079113229501301435291039614942623764502370791416790298119828028786704374976007588726279411351131208648070175377765480537085370381725637542061516381938624705284235322283388199944174467933300635624990008522708332454637577885385438284749307183259782000452612223233738632658481901477568992163251453844675447074204574066902152703719044784117004935899021950123276241153377735592634195999849022714663419892253995584666095996934462629455772496337281185180315080415701465771294883607325687200463998544250962853650814909203868219825945364509196183574404766501991815931148788673062157336843325540366201626471365370692836745129007989138987747015725995884650525934346094860150665748816414275177177337080774895480689290394439999893301943196599761566888925272330112436150817973168495229775739227340889125212477738207382079287909144357378395342196929230466963138491163640660469457918062579371878132860103575921798309111683178357457128673196944530406557971182138451759020529182104057833152646588330464212112695428770822887306279231334266274343862477856136226890424172243877263787417178951681790077352434086134129064328769855426211233568559767583632010053484369586105866156778077443495794540727714119826001640536060146779293863985783045233953983881575836936411109426883750334530730789262538554171534854982445316868731773599840905177700026946568809302112976761674492873997467626874168150074093226996498714515149003681083049517625580416430493930142667945504705896659856019286134617122907830984606956091914961216089790729761359640800942724072152052270312406706743520322714336318941445890654549812963352082215496462413595734736115412020889533549538253483267254223652756643074777631102304301181694577352565715381670844763801340292050281371867519276180395814366381107339692127720880875126607612748607571743410016367793963319412757297836195841822597497796471710479485125282636910270687745798211467050397752733637404670844445365928868343358327170452830619694815983780130768257004470035680834640401046655432770656761689988052593652363467793089589090074258195228502815447939034197400999705467785561682035042440738275890189942023019116524805357708372441230807820579913242908317549610862143462549794271895980351969573941702811484501682155574028338906139086048067063930360773390477188252839320117077377349718216165094156877536545861103785531914962569210375615292316362307511635112603982325907586346533487330940683252951961563480014528454186314932004087051842204841916033123994488518094650395338146605846601025922215424589220108119071778446281354250745710069739543536676049760255484423799729062007981446784517173780723301044343221373926089194735867365554413189431187384628582695715439075173883943911671514887390152278902472122611617560915126163285263102925511355545364746066129608050838601252454914768300040611588019121360576939787132085174288382592684637360978933775767516653184108921102567407051594265446834378643205920510178171417644815180482693509266452978042180056355925640083583364812972590615228076433773524976774049772968328524948577371949990487283696890405881046278158257965212750827777500233874026543637046369483146524623559352850473953732052360150127842880666840353342656231303763716348512395481722486079799296959164602142895802850187846706988159100533359296885993036911556454567697410057258371571394547758197073023309891263710858458787909633820708469194362460882242159711655631245706853743434587589673580244355749635375984520671382259655297913268302784289486633567573073207223855818490759410324103794561820578520698573514882560338081604528302185859207727254543648476102280672385877817152489103353635619772139950349661505127516706500831530441182843333120846647019857410387921776829302851297559791333285105680651681359581039061112347739147151102616226435539113426428520980016767508349324909474493067888511528506034794975582119826869971458492813932236545310499959346613630814277001707159873777219290380952784864256091256129961285588931615787253665718896282168424069926249750890452337179652074009400360989785892643012128165283342392231968819495227940912389099150269114619369518181685605921113210448899358885539651999814838983489109222790842446713150581986032994726367928261069504101378275863049141426916359445894839402777273812366673880773816284808728936235630107167104144485238313826058797146430323749178383277637058587591488890723040614613069457438051434367648423055019344489702087617160544329680486050989183860871319195849184485078335219757065347972486876195672902515374907864117326887391871819796011776133709339246346437133207027754744341930846544786867407572577413533705742883914329518698101164197304137518101217123355029522106313172616620364176119812544520223392318701394207046836023689808544596284016926473172041611614937297152037370608149051577155915874845055056196258703092692624906895734653019096967488955138058074174395016846121428835076295554545241672133207949816794210837208318277691961264087357410345298737744363988482100383460534946374608667224218690631972406101400380947588453787844360204132017619246159286742496928321861226857690483089558005004931191109364263232388680076673374182482501354432886405183876073915974678008663760866619032849194774955640336476544882267350082159418940335009646834151260928651184533637695104567666824344424649323127081599174088411089651317595090268122673565661208134997990808461871846644090307228082548602264084119640516425063003588240169886294932614131745909230012658770059962693608130883323805705090113128946425401256018631263736725392208135438576800327361508006275275539501380138939017058457486634587220885320803695228285526884334266502776960913048871225579373524399181024777453968414782425266221857673837384613262875085660969321356547742774945010716387493954932781846033652072550674291137934923782237785912029560348317015471837624188054193290800270056727942721957480382643219431807341970564284580423289353340257102228955920404306613730515250172279060898917595627801880589270191788125179643672319488517573530730420614531745993869242897688844649296518499030109424708225510746862186591993263353026405856742597167105083053743244784714243614896075205478524365460297834451286290882271425269327294564822749786501333469666564812515126709286391444479653495128295626708124080816048301862707282400686788808135403360836655802644957295865160409482131238270885207301874692981741873390396234545367999842240285040383126521585876076384170037014610145771584948305102373110843419007980086677677964037626530691896055215207461193570485572867156059205425564140993324979829838287727157853615793913754553642810123164924552426869290778162554996890091454114412652446372394368228587938590860533934521261928200609784628364677820367802849139568566795083415120545757874619265354314938842608721166889578684006401174480062502204606544374440686486971387050414094648934227075203518990799344495604864508922765284657180935164140904414566757880229737562817382007485422652159850753145666717089828143337395598813133226471336836244144000910618177619927536393308338105615022519153905280175410702857111421737079934699715351592926804201316071283310354591564619867436568334248466404555837255599534823333973645839580258341116707360521993787216920669746065059504360563646498051048634767740415331214664617760631855742072586642181084741524674299555986878156379741711168806556738149979815075426102647178941809240332369343109497703907464613561599070816464461654191424534709542176000724138526180473087121612812362831952433258019922380271993620891414857807807341637776172048821138763622648629502262840990587958679440163131952475803681969927345105771260403429822877724687465532752960224552545713446048886681217026615931671430451508836245311259764087884921052219748017699015220484912568881556684948382297635442583148440503389301436869193311565178357176086200753468053671066921195864379690569500457044251500596845153064132107622368965923387858492441178975640493649333113931760716807967370382439558380647147304458690562884624394618652760506851175350810771879348877353372065793621233913653708000026381113196363216753194963182670142407411207184618567780526381074602143939461314666187639482214150711065011895502425587898828735964352632135372218770315672016441479000311846758778788029742030561502428394452078793114139531278755878969927738470792998961918005145334062792788312167689864219495658313278779981916822698300284545871428418297544930905777298687384169014143874633963998813605645817377038207546858307511556755023079220843812306228686497764295807377085498431044272125910287371378102029913388167152065704366550657845178680784026431185476140032046465013587099099497740348535731977685836304680876463871540416290886710319820215765080033710543717747883083171529412230194168627746549005798856337036805362382666577658609580311466174241059418040679276674347632523162374141596751839683199796386623274760112911278829888322074951626638294337961487895110816435976365384257326463659927177149960762356599561807475939277882871545822107948411028152916788831227490667231364267044599807237426613340681663853253551251612072145869297067389624036903610832099181611977433566086454225753276203227242914663279370629363486550676603454210348975549020035786125278073652396011918241481549065983028201029824797636018948829436829569314926200523346612329852830876974089169157194755974694470752170554490114020567316662922692042672928763760815285034500093952756010392478904385440105086222167618927582930263724315139082451124973086967350282118461526594850105288767001302279981764327444405345581568577940825644525749192039620268196926638143994524350200628512129134148987520042935996988911062080480714638838542965786892820281186811136505702018735511662597720696070596585423179951919318546248078121504296242415151284446994825824777139682000215658340296293242965044415927492717609280361326207153682019035330735286898164980015762102762247026583598890470636913261485815515921111848095980727762012213081320997827107042738990372460278947606278569564163277487447325902557081112485488785994019459112073838996762906178649507585443729906535292114735792086727862992026117456615731931824051999144283894163803181562763133801358019086046566066493257124712798654566009208596958177015138168148177911344154335848309208956715964465981661589964228052178081625551504198502486538732931263607756161168285469213938874282496678377257495543934821632626176267918416393309741781319864670284257346845728783104283776857933757416250500964840408727044889771853937630042379714169326298148803925751332109327141419602755469221313709447843908047543800031364939874078622840379196843587465608718438483607277703798374599753574635418634957217559981617920335466678602852522558854393286256285950844960643562621242468844593291158626619471020444778218865857567167861231389727021239589073345796578816742988955766006480711220255886275948499921917446611846856504515036169332079212269101064508517404079662110731561417129957249440276931490255273876818974924978570524558767686551511320326839538622089978292709485161653934299994318566399192796017001315991343722094062587290910809333678768063634669728748623916130603690716419360585987092844541443819974951551169243807226158925803356026570377637471656013811806226944107937324799779086173403888725961815321471231227524392307579478617733690461591480850250685960348640521329877015097706248738956847962620430819394128521460880067824010302741103850045362765262181365692041485203517895672202961706102055797895414079282738020323234141893186277442584990675915269726315599612817878687821282869820044026659008436902856824955310971276652972197313931641640995153764118659674812716349056626415370538092589057562670651590261666925557984275935179881528075274731688266988350983694374348882982321272224223765341924688364149615173386150171943428025986285047472083064147907970507945293031093958763713327186730156017700325946666298961234419257679377533517662999461492493314441912194342124843569819269554093181834878203980387828373329939188773460314776189071239985348097839678945818226841606152313094981749101260761316630740955903455445028027762769240681436519911021336484197080831190668153219598839782799527036123009866173050740544360078553015469487031026671800663576547363354247789784975455924394952873600026636138018629737613988617473163355130676337757920474528791574442439951223732168975696988577670219693439274370947596504069310686132638844575207878858750525517587263215556414539088082158891006749632960826801121571531265773078309446913450789857011294676279006295420294016416541000504768095075120865291895465304766385054930143855565613907220025579773835577165312268242603833308819655885271475869117626197950027437498953035695668069958872236078949885985435861082386665006807682421094437149045554938218387393362115268918600726865712861301332435299987912793236567882292408325455399802808206904215641629314614637438941643281373208194304315244043117366649549838264117317123711045451911470566375205682770647534503264815707687392545589224913034082489592443598006425516814611961410258604901427611266020048293663807857022411310584621230362793703672261450871873803039029646785824214707812063016202034523613099146771797579978764466394299987859137685189931508225943072873278839710771419073575052162333327631128181475451539853851021807152001034982025365644023726401860081770695405934119923804332399895453455962740760737330676173809452745541044592176506149128339636112475571238581759327345785699560101827852904042386778063944428271365342652286950718251337948070117532039814197247440997311467086883354665828557410977004545159655570933101481400856083855076526969640841506015593153181062097397937991047712602777085192972629146403976010023598696291947691921784117048245073106707453922281836070947349941856389130809818202218138904887920559224635650727584931562679896204144136142095503070682225243058697016162887003191173593276945034158086593621728297098807777178315613929939183977917108235988179004761646315163389033611100486068002911872483969736779269246829412029962233608250182954125607367758924356029944684240203889081765055514117324157254668298584562067572906381099016488039847030065009618848579804765785350406493397650553130768011653496607517071039298152247230507775659557331300302141493398048154212528827816840542971428542241581755332876012237140925735307368018882260033676546814264967108305872899179426597617515318124555920722846770891900846198311882735895392350547831428234258571209606839120346091742274771402845362948454145251608335605138119778270136969596641289013872258029512340066325687291751281032923684957737836153666580679895076770283490793140747234396225259507413627394811383409920755536651192998407360992243890162205211283503812750109469125922695900516857377065189403240350720194439182213620316078655408759644337652414035653696958861160887584385814144757543897512384156268134521165912584535620871903183638123416557881958797002646575076427496077131316298856549359488650230263153839426119230825417583653002136566923633091406399254441548004115411306408944736258236304033626840394878885452752812032925066019698992366555496157407236751165727372038489356777581732208559629584795744202460253406234911274166759289775406860507214741286476496601630366595055020763195443137090316491603006598244141888386108731092051251798397498679843973121996495516118562848830683977620986422355699048745535425462613472691968773096440276723207728712195918193546038902078161204030569974312808146803117062900984667050976419662108627404798356270675391348930162756968682157610781276157453281746293694827827165114228890203973975739902724695880145133187876710232827888862346725583040947211304734672641756569697530298600356489220654577158995414324985498433948579535090213042306852900885152460168098954239538762845540347267417383621767296949552749680994507132897670314616395871559082256902359279447989057336093763599902780846980723579600847943901018099239443136286179971787309564071584899649825307715801285635375447178442452389249630219161959054663347911160123477810628335763291318945021147373934715566295723299014441856273258106484065140182361243745110343871358400744757532265020187960057029932629312031735386018264946108566716666906774335963293459962495439058671223125831901683462750219102509546438466232431740648247414701589671784178147911483661030055729076312095842639936391607474098021463629884124769148358537212154100006995095901895214209670145810304546829796345732423401276192056609259549355203463017068337172266892452892489839539987199377877277258852294272563874009624146323601078314342576219484182410662719925758912636656830440470423360615323402387671077627680624156069082563911154301737667585876066259226970491746526360487232624684584062096544002913273657563810031953822575239056124780533890153560184197016587956155737795364854425673968564485974003023547322090921966631433302443781832492411117383772208739407428836439848335358973987251092203537232555258115564473052824198639423484887805610265512616320108504463259003150538426986247500796264546355998479898026991406595187384469297509942998571361512440670648898887616379875970720172712508220205460466540065208202183799130348560504854401127237619258829288177444850322460515671063730915002759090594633817630974488966935431831717181714142277379820705798208551032115372793789087091547846503594323233858113342799570613565350665194020160671604724560003808768814682435858109095853007703217655504371583544518204808310502048908048115993347673060483313452210546444241950476503557027864259323216015491064004591702015328235132366187709073880458067473726660672840412977150199278915436984404664575116220205496150155219967192766872918056615816128017058281082728804652380331534095974895633541842781538128474813799667782852764507572258353677544717005662874677343260603008444686302794565253325721630224200370232066700502324235252964073301980058098323976307282851581917920333284780302554533176103679946140889061334395190898685385701955198300438169444757391492860925939144047833327065207769248661679194339504520804870674439740008957704485922193443179786485625429969163630737012240208827619524969996502398625771956832014414034910982860416133594487732006800826233220238897456035044408173376618312178968991526474442685422284786775764947739748446218350869677620296823646164138374583072105668094855682432133962882806078354540701208142256472025397912902000131478703966238465046487885413159022187214116567029072732094913126674368307946819699471007090675795493111895641096201271837063810722262522052489797624519315091258099647459503719401436171560741809830559815591780739878508385049823320564063538955912025845726652611695051498250858376312204262194727864688480768926262618747470783820213259799835521193411639329615121610471781459825280014541480301084539265786679685890326339077902391412359928795838457707037453689046777506819031387276614884883233274862248832754554434916246454966534508143654412063718470390080081709034087750827589533453355555607808482854154433206316072756521630787577717826618029883572375237475304140583105927944608451876172736382443572576652489451651494590900541741730169972125725154822366167107104546015413067270664689933600801798566300418931076722939255323387229281436122668772794746694286628855112558022395621720229705433430116295790671912434488171265258560945947699484246314983800231673428342070830568340356795075642456829055575857482355472269406998641713559238538573820035786031078883414063991028990839010649855315085769752302756528786401519369511873797056082201642163515791211178240796819671334485956595204460794322414480156610907381338077278666894070795428234314264394611694883122666989146437734600119202190799212724197032390658079643689336814411788750435232079829509300493668241137718003438882840326966954101728801680647219144694773509206862572929143717039749507212284352303129421931346159927221113911027938985442330262574963855735306406652103098976843367464978876602539523439963213553468566077665039608692650385929640539156785084649697340146942790234483709148681198903861619068257616679586699956834935200558046953196292980485156786342460634442262598177158904221020880575106336508026606509853708820774252600581093704595481547727367891972490701838310507590612280840845325756238307753675306525141431799845730752938666297786350165971757805450874878327414890902177969565383906953858052061046636313488711882792467522222219750167686194495750334266957123198749440241337931903221836585231636306247249257535517292138884212451358306873250449758236711298421526019827760819575772090703710107377163055946564358504992266295460730418106884085487405795084301935789051038713087786972808618270915004238066815834879478536308862240746045764433931438922073774849366809070082211924257387411442961292689872282122222013793049241670060893228935261868859980437305506082870978842272472872848230029359802563485228478402383689787514711417851680537840086863638612636167573626438947399765589995653247774067382860382607711308147632186282691780737575273405419162750577181923652276908527084310781601179346818300452177004977726807074562442824806816252274086579632231986192112897343693506287282773344406324089557670997247532916945447870898285971338405997107069084432487104813704270721727276607175231812197126595026869809270867882988307906395369804449046339275086159104395375747758466558185342492627400521287186622018326124087092572660705109253431522224503176166606707944401307891022004211312896564855600031138184664083730960350813011093267370229162405843235500920746964541962430608328456963781756715696275792114699576367666216612152346122704232567944608839246272212596163035968981008115016128018866186234553570267016266533178741472329981276638272227711077340493898572316310790922203607755090380659216404393338028859329101262919660089104358501953422388045808456370948448225662159363759081310273701610513952310416895641369729916289457958531021865379887976186391274245164067149912647754649430746031838903701085634670803420734989363933141290533592925306506925494425520446423204150661312033230105055595410964591284627724997326183985276388282980105174065225065336320203448261954782222025065283884256244777938862590089066858072229671554549428399903798177111910042480613972898458009629963534826642448060938080886028089614464897988462436353663156163496044103879349055818994620598493572000013747681700537832094070754916565250372286278463408464745980950853597355861437441406425271914615267509688081126319711062529981182861241749853534813139365985729067142253408173617005081868090473904079323220247681487449615939328806405152574662745842082619958329876581094296983240301064821572934321932419480469975914078627109895450551904944140833425094760436502110907531591913712180065004319431229018723000157528151880283671357763068738457291118481799602868180045846573892880206294782298476936444966151729535780635719576006732463620009511512440479833906933862216026447245871645042308603239016489994609399235143419301728574773656137619361413977930423006690190394428230522301312456159496546273102775436860837095830365094974460274245018998431391159487174140329098856426733074324597727942739961258103805600901965966570931525515876964617161965939606236325362959742806447581082911134652416547250549238804875733943556742593199388035508762430205158757280673624539366659004491153461017576703331448193925168272716927609933375208078433418731600897276062538351840014864854697969180236509179903970808302266222094377911937029986291863531790009695854972158540381274682575744685850321747557149597054887083580729429284171287367309081650338414051768204981674686817117737953833899036669271404764398778580107411496163918755810821600387941832033296147128924654361613159585115729513258602292825232632822099316750653320606456169606045478071470039692845962869064193369214243512609696554380492623624534609507186368631076560756050501931782638698852544311122017027814332132890892611330868963856980375590570130429117495297641486491909360692525927262939034101620004885107102081607555654717263871409270825027489473331274743610162098023556502146653107089610358178357276674594773479671595458671893510717592807575602936349935278326486516432025790701931119978263753376955290990631952931719745249655710775969415066062651532608991499242910820562659605671919341241678166788341405074743798489280980366535705179753335896785837280674045098610410479722996289958774330176700589693597371770460547194212447514576885484984107487731224753618017982976097687203505963462255429083089405267231937185745591121593496271232473375871317390002663475596761342869349469588003054670512486158862263911032971739593894447838893038670406360231608309478419620200738398896796258055005748130967874248247163259540785732158576508447338882465476652138345736969172494868395268593973678706974719521284086872736203242557125438887830522949045226093369514366388249071432900413510572480794068412962716207336100197164633727978930976864742498077648182785821285285986088073944789019373289796701884437504490729502831881536442330401365459283950333919291999720158503145390394543413062815816756960068746090753977136616225494665166675394271584836287496628035702696269280690508972065470378946738073276763823050017362940597561074318352800508005920796794819367726710809981659651240561709094157435358011073516404936894245767699717541145142560272922997103687261465673307528098815430028532138788779690697733716746834428738274524101127125916992566910434837297949389455341524998031419904034982306866370991315099611925837654684245514746581996265914163890787218988957185467166595230388795164109419579993889373314823538631807049682262591842068481475198416910611831445274839527803699252644874405303914638523185936932285090835868590608303818010477258588151432267113866665164596255955954836463812292649560016408765024329069729084934591233529582103357033357205281611503862556633959687631646472004715540740376960387159586548901628897516610929794194561228719585348807257176497133614315432985770358716831611635440924941326587963739694889213055367649148464122842445471743033361180973916860687216298892209099944973453367955659434804165190364095475566456496684644692733773044021856301066563130428582604372609457525270242580885535508686878416705062137336112617586363907207949266604303811370969621660432089376858882424771926612299009526773333825099962097098226099575894893289093522580546900594510170482276130713331110350023072469039353032251706338597453792714422561632779763905567476931485796737338486470945640394712154883002277933970923592336505446896825663264517686201113490534965818905705342513830862232290034904055738012459213015249903783957774106875694973520208001963569921775051171542113674304924439704028558043114130364385688238276576699694541770709044443384354265537319128262620371521753267601126258809505951605642506385232855928155416121151226239557985257647721794293369050200961867474473877355584388518321651216002098941665495412768382735281486108094847229632180900992818449294138365060363261271243307500848334899685309725159752785624786289287096350878874974290949205255692160061979634555141378702869953360724068343163480197864466457547566489988874340433253853289020430391614489482749981943954860950109200407862087932758223137295684462203907448582974001161331870270548375760302927406143850051139438556837772000262173474723377766284090996986427272394363082556999347384836054039355836204144216395871426871880440228266393118571928778696830198677087911290081503182455652054545421100824501840896315955637252993787190599527466229342534294177933441153830198099128490274665070699740266430234869895357478251289481177378111796022583745504585743171438886292369283688556966073881313522107463177155720268102808397479221241604816042200709557982668403905647258366548124776796931275955627177475450909551970039192342210192412601824360343950388003672617549179491101110457532406515929001269884744423128825707298950367427971905198116624287648518029939250623502852363577066096050052349648954855231355825788599829370999603921102944645965727556109763804359278441302902444040744782337514681590998614639435116392369906955635560906872430010431149518082965034285351041802283147058220558227754712221530922733364819137098173035349448565782897389314165205328262874258710110971061115217854920379784082550039247572120837074935260040180940784874928288051884062345620563123002467320818776792045281025386379015979842579225169421525048321059728744645198771524663931375794636605811950624705845121557961452194849628759976779787229818891361136760400668967266264382561940615398690537939933803545749822422284593099277388159950711903497253821467794212606134912405312683793959711395066828211021185543716489272187822742416205532048365589087035510093151767615732545205078817384126916872116345923886892516840396256572847987029805974762095898994674211825254987895594191634044278980863451862475636761566249016377750228340139505299050808525577154735047315280106015163952693191713595515111319059534855304087458585305603045957036275664459380915544204606932050737195351960024236280070360190099118219510474001307592140183745375724534063444146920245383526851701385342686232049959798598411606519953169287362760455287260464990521593558547128729152998846727075023241647594049355219299596243640365480500950164068683976462064853953370617407935401546288594401549910933371238434263713919324444584810051951805846148040865150058485294934929603851774354232042808832318820872364664731630000707954169701876344016125598152157878773911442330832532802138537644139497304534457473586070325921244127884095140818847375279072808689767245351331674451218100288107337391303025054617792818053461475452216669513473093263061074170767714396180216339656959710568042195908863134407000019899822490214103058627427330528722063879110194713297537078258488417502317610218476409991041190962417031629364845315850065708684814541145683825458678843030150236924135569662692559443720157269793934612695592264770911349185725516616758086472886736121604478382890538293457304818377642142302569189351745199054309305864700620299569099221810784200263839093800363602802995528289247581845045742863554770042957044220373824262784501406901150577447300521605360949966750731637430461162046407624921136552055934085065763042010822790367900799524995259452714122264626426073272212625143354301691757735453878080790217764616040782230032744420661853172447638796210488999825032229601508369540354811773033167949472113319263545839223072674924232394660637818259207258389189821905604351580065993290690433047755825744828552147860349896777663598676327323992649860150442343970934398974230739037825080667115558481800986063892387473268155195510414146894182064700862270237152871837921006967723922929018730209191560996407255338423256499976480436996933204555691567871726730001834256070724955192017254131668374262085857679354888588152082432572060807307732942919912540366397828713962427342258734956383212965021026082369187173986871292959112083602537963703079805394904630068021890000212975289777986453431333840108265167755308903025695020122213041147319679016309726398256654720754395267202198508384323483086480623887647576438608324553015007553107401372179816149339941021620707396844593418343464385834039621397964410735407902243671702765526816487209083952207998794620280348877024442070580309853336703240755697451773198233877614593325854316920563978815194784336623626894957655592337530172773847816508851010001848070793087111596763980864408672772966199100645487712419795159247862817367670903396915237122750651294865285897922240893060518001927238532980008163906140079354675219937821510871096315666630466610199548005401821753281310544948249393757563164562798386067084740494555770055993641527786830513899622633017795991493414930777319438573993198892608146255072008168574413557934650339129859904135960089978372033294924727641295477592316481990998875104213739218767061145631162124598855508627268751764943920341355919074039389417784340600048142929459038595249241934745366156426080327097174641735480101629488915865106149879887537825553620375357548960874380882560659272678538157707760833524712427459891639399275863009581224380621798708587147563652910543136787308873143679727157912710863962732367737952030296811872319429498845328664246604020056234497039471697221685465023042619582840887919691815469708967502844957349315574404078329929411958324121777339395473499485938068838435968462934376073594859030453281937291929000982791218517255972760463162157571622684939468343532635267530114509023480350142538516330892452086344907492404229082928596417970921727420114676353574243467867030316465480389740140514194645640262058065800667761036188056420814982429625640511666435701567246102685967822000546286526907438913152893566002462598367471380845216362079824171184992371238967750095859035402205025231477570630594084012314477874770458117030977282122971975276697767987819372900533322130771237622499649221779892333679769453001648510153616704820131863179983701322194851755647660912544488777326845720250566994121841774660474356769417267040203760163749112331859781947280285318494342013547622237552940625990915104260625886924746632342980991889168260330775707258122583418493744510555430247990601518464512777760014678377740782926522147307343660205194698738491404260593450409011761779620142106204121603804244039634310315003060852381119878680887226628888596863740543182141863020579127175212429773923335473610237876185976180561810371609364270596741933438444529138658372132188653198845862063429023724552654415074712988801581316968682995593448806827439675770479151115858588890676841212700103955611921228056911430108592398356710341358137724641751500846927924543510870131612008236058645902755032592259354422373896461060996508992302738229325748123182930392144000971716945788940661788647425749916988362802767898508201855955215457551100408058568964790147864209884306759036493768639991493002267011830278547687585531794372196826070065045345923906590146862297380786041352597510630523173406665328079154548212683688098742572281390847771348599819776389455468788876454023458730727672795226474757699841059597571504754236771918139010742923844152726702274536627145775913308146150382024677215017643584860261620913319690834633513651863523719936695363326481656868350542769830074343249369880726609191796493544703723906553309103392114849176868595872363475381842490823256209549212214572901718582225864591527253485183288130941327921916518609778263510892561640493630582308342377447898339745908743319531104594561034261621313258769941817522450051229226803807700826938339728290676325931178918070262844858342439473830844838161197909854135065547374233105139049341781508547094076666902166260842936358530696029809475636707464571481380827476973721979360553746282812122547120389528505769806464656739490332841193599149242468565223023047677873552305192096966620199624386638661171196063133347386678042140090531213613130661547172297361894791510404770363817925144835670383090190642001635918089973426347056742789687653398912145344766679479169603920574852550976618053794929285144463269453600008920845445637466442182938523676058643954141944991606256222935433832528976553429206584712499318634652437141139260143209238793988148785167217266121949839021194542064388920947878953710404681161627222655068557997831503228526277092198304608758046032227807537067893055965105505056588924763107640340271874904878712907273685819620325559614940193930862026420259811067515875675867458335772835182297750586601734855916563942726830571081384918576207027617810891494978683659534582110222081709547771096381589752194549275121371844377483963849931824516049999624821198722688823250842296891567995091056756750579280635360198192911046370927165989283774395264816880989318169068964095521579977861478366396483942738220866325298669106425308802659630754572587625393569195665930452062584908268773141007370027343045171089931064122517529478489988149354912529074571844775120108563590876015634051507791768253547710976354041559843819964134846585137259802576708260873731654512462581687107991291595933027225166192103499318161385528220719614803247215696182352730066624459946077072682494708612788351929910651407841179478522983162381835071189952864290487304663800334272951961693891112190099530347818159957046472241569784246898095657936648830747916804884897343979837587981479572562682883328216531713556046986277430238767206565645243457423147236643741724261825285760493891582738219219999345340669568172750511444732039525188766261092095159988247212004271241977069766391813221521707299056888990839531019897361416100837185136784566275068212880102274437239287113972436504211111058303195256207337084133442513616346024656484203069868761775732425334397809789576760566014755170535809779461757660256147392050826044900297884209146372174250903520242772028629353440379337678444991548162988155185271111304049296275684032775516586357031302759275328087460972659060023447264398717563311636622781557398020045901556794814956887418064245339431097763347097611997755713720154904833220295453175697437170491959741778538393148877451209213004469255877249481500848821074234540832444381393345202293272070246939130553807470274152798502152636383951957097150945435194150089763572378972937918551158219543911128075059817515233735540024006228641678896496001074571035416501995123416431528797771261532215176318718412730108049971889163957266121715843345722462844831319481419579270844382655301764463422725120300150300340099224464725536008295147636195644032267060372280113240533221491909833803405303703620540120411963596164510057034196298277346101457698680909778315097241630755678757892843385726294054573153263336066104592903774339170764704306496530507435969669128978626420038798813126696958974107593677815061006982289637701531393473304737471159246975421832628106089558128593120985416019442822548228058508626814655090916838405474236515772896438006880240317452046074946997367068982092293709880658817937085036145502891917648057837550153544434713514059234373035595207325700855529493061517008048213495370397958129793607496513009323973588229537140624451152747360915464769687067338597143544805339554699171848701494466720330915629032043252891503825977667694173653820884351700590087086688757469219164069866501513513335785362006971528276724767220500697663879448537344887868251429088159636686432789768532693725278086818123558372667392294063261048627851245299093533572725108312696696736103640649922399562493039636439319053583171621552285962511787939435914121420349493264942551647750353121013698625427002239057789939929528231414196845005417911092149193550850446781006449874674259499130052644649669186949899455158067147815647652715339051240193780702368069239201896565483227326889448013684639398021217381810615264064224745125666507977963914211497419664347837213139878883388243414985080039490952128678340765094839274065996410973472615815384474094359970007921445505281720325723505833313159323561614295767265768077621233039867910638459073982631029195519415735111005091737501067464975808924994373277761782219087555506695416885953794033510614583207942365883505578687280128771147397171571491670337655568732724358672453056299874213675882464136144495351004486522251901281461734169835371587580289030560299665357468639208030637088414395182515525214033532157519969897028366389348729122213906357114611503832011559633197342720025249567673313603878572292951740532216092592222352104531920018435405510644482942557093795888632082576222156229938650828177528958316314631292311041935273738302082259359106147976837166954966017328319559201384357924746864658994642247350323139675828174057354218286311851590821998721929174823002758848333858465153722353124404309565066918744115363942856924970959164891905838901391868584165159142405713676114939855814695591142692558257707620631318564481025690064417176299361643646459765556988363170345622349173111763577044489121121476346760258566307152079136614518542640485015752884629014808936736862637722964059086895507724206255041689876974635555188727366980173134460604677244593248263050256890440265574629152467033811595885307077361994553608199186400663592460255089866398605227708545803242980377526816252660404563000558911758221459880466049877081060721496080315648274744899246848480444579049749661507238404240695956235194710630738299512491760526424974404074409242510536133951791087045188281003948993173169436404974517326479082694672516919142468760284686956798951252895957010338234783232074532206416603560013042663830708745701370105314942430334335998097153008441075735629754814768200015806929498638973881143577255363975683481877319750138668861920808651000243316774458631531267897008771109175153442790336006826189872258382425767387310002538081636071072630139264545876058504375563454180388439763732561807412634223079284673359588933444336646835884480608133062250331632035560716870043568762165228140819760449984951090234034184480073325470862896028853290567883546831713265631041873560736256471539809197288129977644462171894306617260279634994984917361970388530909203197969861646877560472815387183420508132480366121933603943921037975249553697418357432038685317952372093718073450903376898027555005294696843108893471786971543052841702731031205212383662960119266518192815435139364947363455787408710612903967094423764305517854370021940203353391848419622468592382720853315371781900600976043067640206408820622823499108638010127087136966058339638783547456316461117014207549922326809281989161115211957161244395949130182882910960492760661405012268986582910330933977790880424525855345343229605980104439326456125166601501726674740991565909268917780063243883637163028529271747640824243503015990826259720788805070331892261156439366196128325334898419570039255874914543752609390340505490569107679618773278799091376253042663490191723901986069987105690306345890373033144613990491399279787459970550370782559296546375675645973595636481928913582306125166576914424685430578939434424463989919350316686162076060484163133330770691709190408104444782240095119613509260063315974896453503027381632187435056293901550629259476385086014937337959698994909713143344509165319925367726795666149742494173132245499843473720360218510046543312898685876803531434056797550038122229440676720686197293869577012662446271997825903874420082663024138256448706597896471853397650680660044964020020042498814445527513303919702659128132162037531187551386185138930066220533855054842044739965597685880216838691994385146193154429615055279567880046085861491482820255672804910309988379074989948540244192978351516501498883438815117485190479878498312012628634278614821211692466519792278831506542049007629244008389473892821139976401587652811886774717679022074737094145746485845704012234012224948769612056294808970583878020359782847182000936070900159825293456989013832078399417806168750383246451062274086621555406905225642925003577465912338525310704552708939072169964401269890862348029064662343104525837237867164353001719794270570568861051578368834779807072433554890218070758124362016223697412057686725778588684305678383947017692446573139649828592782924908225160875533080116668610510323008855506653178928970346489700602320497223946224514305499396521017108303460189915483533972890051218326281321229914525687760028022244708108264931755954713223722085504098611069443905994743520302968947372471144469821013520462429759309997087887631032299838312066191896690269864977882885435130837402953196142002441995891963492309283947924292281563872965840184551666761179201640038256790660052774362576267323036288668044819185900171807436927626760732251007979269499316748169045314134046060451478880387920879083878020929373817002846723498789931588830711160283417856160774699415547569826078048733331048503873309470491605148355895020527114110661649695596177580616875270540608555794521317272286129877422326381176452548755569585741746523875217830391024030076162587474256991455711719997130016549231628750796724860585725044333648033485863427713382491477888425084608268159814568702412380968636600499278875064142263794658718442939975086290253642487685142095058379844284775847649871924945482889949935907576627137489420323886208707989945724706422961881189797113077077694740848193497293056900602192402420283417715871071450547888876653463399922416914970383183279178311521831109656332542007350833111101641559431369184910078019717153646596823294426110285303700413697471110073172333269691525224494235492575438245507383135443722875579305745171795168568491866899441417834094197509164410874643004264035800745500943690313564993541604717534678420184304705208988663123175650967316289311828206656455580103420639008321505475919151341410029037555196587920361663867214233903106669895397332010701666475450075084532118415452436990415590993409062334438234157955018598470635390779319316288524604370283258263032369893199880331676680673703510733507047599596187966371103047554288329075004184653818731247919195944898910706505100056192931758551223866708788653935188320747704760155589567014436640506636586604947918707515014540422666441077351083861267748281320766763221684461593372036458743557928769450353768728692887537371802118475629148378263064953160867920569273921691278428336425932450870101118970551685484092758824739313797710369020682360851964865308030618081838122085795097186496591957242224011442889962308471931399559696934705734702649166973463063899790131423886077787528126781457839127676206527299671321662463579457686336317362607351397007473119077344122776691826894323245637014045255683775310704841471859679984119799588692764072662697381131987895150475574119128284470968851220977730123818037745448826071327036429448564464057002641084459390379667624381455201033177177160005603329800336270432205247237719479438224479916515773346932373397518093958144242175275996974769508085506935916025609610505720735525786097002491648391866571127003246704694692643386916104819377403219560534309113095948183009296200968684748357512581111314308899096677274638080504700103429786345744239882253283858789785186290342942665996570412580990657370684825816966683078623560083349183241143824372718098666508716998607513055915830607990464348815300090134899677344791578857793919470387193679231557206326316288051141198922063221692759111271510398031267391302523671253588077147086591627179474565475706747704004693206938095370628082929715666997911220394457761269730961932217257509028358363755577231832235378467550351246674148169219455749335751607020895716638913946064580072737900871734196228775270605413573330484256058217507194172696918582484182833401360947402068497090144667761542621541700330671072758245247858599578330903887290143402168833596920814499349022960393208842677229390926127579865843540226547320688702266299685685207966623424087078418025834635137144086687972275838762492445289036255982968577268049423980509895062902017691673076757286260153570684187701888141604645846777631533187520620225963049669998897649674086670801733559778971964812443307684847520829706815927162108466076214531008739287117511949200978839356841282884549738459830659865963510893547284491528283286384531742379560600021904743830926656016467766001084948532772334789627702696870366149331243484608600963595603173414145302324728981611348280142122593789785564408156293904958676098926540215568924711004418251388947347155352622729919807941384508805967893110107766173876290579518754297868571621650696468125661424296084080987437274975195999292353362655563557420985505913263133973784185553441338212152855565283570545184485225577995673397114628003777330633102239130742722255334277156285072812413092458941412346415590997433291614911564582895477349617736140215241266951723194715980127998399925588270637074874873636626862756855421678508899796096571669999873338540369233613223511105366017059085766964151733730872058461305397328740877700305436680220635154762127403270708429291469513797008422597342701053019973692844410022348255044847467891463932715629597319015433001354372502303237703924532190374848115147123929682269836686925686327343585220261990486004076146458825920456097675697238290911295802185634096798066111448664037725961124223693284735654006238055751049260249497457338318579144481689769650145827098579026427769327880007541979940455796917742720639240378553799463965903201807197332715604882942330008267188970105552829269573723541379778832639269442525037439984599930630442005921744975693338388111709446575686275966495500524436789846621956190274737830888840650809947850437518713055680435176067917189379583024045350604772848241301614638222262605684748626741542279600792414573380084498879439603294773362318541843922726911986382340248699342077629890007153223681770333511069937913517645417300558562931005584183652285982697390058662997291451446153376318396510634949033026544007529519503067590917749278937777181224783727448299089012213851843823816100971919328140083447150746741071768927061995582224523242998073730435149507579833320104582458151154771001958291435491677765000480052377222974555105312376686432116674947530015553548422094783903839258320956030071645103850938975667891215164240726336416338795482036076395187756858831479172763110721146418687890097944280517937239324771267830903429032439132074833189275346694883588685634035179427923881965042508220568787556414217782024181561101543149852263691153717511014014079333641879209404286413704632338317568631360490369717485386056690838118585195939830183507331824226147836853440184308849206625004010008110707058206772175865978918083587500496551399006344681013472712354133175443106373634885744225704114632946270879357617781667778544246110806778495014069967945101420299965076848396964078297963138542929064223279273477305080492906325095683756235902899256686297573454583358006253930375641097002484898517039649429126480557953725823876729523328284304038280085237074120906606764464098575206085402090172310872404298604617452168945567203433939225731946368286960060748650397477087798090254641197233349670632795912000123475145071275953264484441864380812720392561883820931703405770493438279283008047225591983373673030820725462785830591744952325331948562879069080464770546296577194679761744741917170612237445143871823025722762418229972974943368849529369667603732775698182501875453048554844038151039251463030442664809128345832817142545180633492269407703174448658772907163325559928951009702690423065766996685850524327834339903935995151642160771191670544736547206653373204530589148917886343657102822462373173850078198563806128527389895656921880581803862777876516117900416604580031482043483525591683337015601288729377271349243114104358826740559141017845604007979307082664501466649392033909222890129278179039726744325296286061976948886758687001498568095685001163673188019219790007047255280384634638006243285255539484764214744941273527771638574322843734414197828260411788241624273113767889417185841862815949985379857849362159333916252572605658216978628964440756658047725173288538490742003493478655306351356830434955828898546284424430068248908971446311288419640269992739980765624804239397439464210332922336162606182090024882927274413067497876071623903975117295765122170652537706202765901134522062550167894413493712293719613519226218839265771175866810906852129349313176666010983800555281405987057170632861693610995426194544796478537080974922737335202575403270637467334343099638301527572430275042864474937499100097240894074989602812315294106417667454379872863648776266530689657058985331414723180922066035903024317615455326078656716959922284149388433048137948763292004578178790667219001916186946523749695272402113743162277999090989827574648272875167709526257051588293498789220101639286785204874144403557915045620911809713182602899287728924287510504014962827907042420794888302540996524331753023525821762963034957477966592671354871386129022772719506736318456856417925169119928501361913652956524401971793356682000241766650482774277316881594569712676550088125775011146690382590750260757212359141741837282403463424623818585729697864069706377550916665906324649555711452697733361863688289989750041578373696310697945909724499748176822072607520336895614598971326599108111222398110190140924716145518463541134754933669640700437866242543914737849590266802124240379643834789224896524288177118208417885935872964199599920741679709186613139155757543992779147580574984847308630613691981240287823338736879084394500644105798368095183291191857111238147783131088723413964999456032272906306080846765273531090338486703047667352042733734911237488534318216613562546716503161086608575016710833278284609615163135368603391521477447759793668534163842330875165823266711624499697434923884852138818388130083939394184556750706555559172716345427340229105767112341834446403668720331844860762053362798207526209092674724050047874402280533345767233608564746161049665591503626644141959733632224181929255616757435575204234931080350022553667111707252148946876702508503974970425153660639474309736767750115828916790351840997638531920297182186154831541041963862045074207237656185967354729717967679229883681689402014984196212670195907019853834639833547797995059323897521406960432477166726203399563796075912361871701679774435438780124725371304557048946371453798580576108003286405581645584552570933660130384221933335998725090112145739931799267075142797829581851973401353336232792995686392635117648169966702655748317627995748877912122459276443223981038405697745424277608687845629233471833412814640901711782352137442751332515951344798362772321976890050921097228882826827580282007167144611307640263960064985080124211419005690135288147504503067635429411879581469912009556854253453278261536203146708641190377284344654008707741065729567795103728453572165558757283628681831837020972533190458296229003961256708572211944267183855107997333809516017187932706422226693836678773492902099829517786886147962132285214674684348436258491557746149866552756693537265680004448568698975353945704909690668454851465933732529801632567217917387010134764811835130221045624536920392499066652064840374643972584855160358596691943251554168399339641715987058577272009908692241824416317784796609142741902743934227075837377658092335864651111448304441942661833374708132231246143250397126322951457403501374656204955904591125719606635451476294554818863224581498864445648336152204394099015504340155945188495543917341046980753366124402883118482754865555331335004823420447769989924194692029840273621439525168498136872858091132020515074776887779785982426320767670664189487158060300135577066727664335573579657054388051737151350706155234547884381502319157376044545935854076227176111277741559877330566375754670838194970800038504541131642209499390757107619195027316314809906758228748170226963852871214197549539406579553479674687374048497105732502486558090775829097266189491788988031653124940050255205567601352135948676766950984108877737411326844810985066624839964166603787721646526214865288468350708174984562924943342678875651977424550049258266482621459526992871831274624333522574196791947210928478898834196155869457055406663840259956178506954572674122629528089584130950015431828724049456189645503788674728090296249370229016474704470807087345340984430566021828968571853131611282614805402709475886643420740770760962526084679804089613919823744488501108707639987178982864973545499060555652970356220133450334529268032555599223415731264943559389580975169996103160507568768985769689404666116913061557921292138546548116567821971657980565603324244096120696747259047280395424041255390181553563869918970116000484222605046967422342854897684697469321286489049305677709744479018261154435165238909822393206892901435565252534917145194956404302827218527776665221591106841039266037592742582296219392304792235076766902600728388982249515342499565213540252698110613228976058618626641268413963846336201421287758310971528714214358967735435775892258972739490391208438205175656932573346385170486433318216002667533290911636124750251920180952434963983601015387620150363230595591722181999003304409291433566423477535523692113589990526016607367901916283788870138128186360155541540908323619239967947929423418997177228977949381966362536268293491891570469663658855371189512834432393379985491565416116004269682864543392380552734418958455319310564155709293662126572555850905434516108291538113112621646805120984839365836673283539337579344855206625788658569602519190373371472096651972714153834387181947598169595462160380536342793398173916177980168895953486791118327155066107961874686792694419942554482374380057178992042255836795066418408631147042919367101290275967556201906878654417458954921023854029221202107348025964706414208642161065162313298946148990335015918598155062337138309218177084290232707749438137861780850381319630450552464611078182326957900321745431299925216092404274178465505640634512952268761866727438782199987657418954130767009439836045989510693415012745220071260788838667052222737725810743946125419566121054550822598738365838597538798302911011073142987608340620788345425845664244872431775399587227724948299036162387625504584052129784140679085581402121552915115116368104828254364593334745067095228667737250827456348167095415516204204196322767968967493469922560649727232155673898062429303550544827548704952761764452767369702839472873591852288897448432024420259589449034020466052106172063771031469708306545742374766409708479725053902258204452756745470524698433807495745735490768664880083739723083692333885360443460781512967426291452124483253528339428890192000532643245286750450155638854191074030577653504349676434347919388603652670164244698471133029383888352638522528159074149986380991089674097682853731518680494476813800864663014137058271312431692398024818046204328953871914645138815985735215948139189140789327346292763197117786038014453049191281966817854930030326255191521050805239014050665995418975695125027371085679295617804195128690423569515449822941750699655906184528916020173947340208155545684284777196152753689245800829052759124296160249164969119315200995294315034008948794760783285092001503089953208635559089941502243063036624232258199991106979613948305266439848850395347571877824618545260506559748472330873275688372889494526756181406452824468797292499910687154680700952075238369598985636808082133995794015911153728572554357190999442860806830320019179652110938002129576264558160835146736317748449113804508749354169510944713186550867090139137208242643898171342510212345440930608996132798509769230016743935845548788975419658960914783076397785317063925782182996062685914989373572666133817223840219205260485714585821135251162355944263509511392680387309738186140059696958955715271947677367041666563046078082365007530224368827944769084062015786615598129288298981862106019046042672207959369285696617271066797893612615449549174467549470386422136066826973134602417134669804891268252352793761499550813288200161515891805146668105726960137316820938387919531482606415341004879098510371239248752586099682591178870492121782498155518213525276152678389644476335546728344837251839288017922470061811334859179834867580291613498474674760094917558394094565300382342710214020509989429713861094673340984039651187703836287085756111438771286132846734669728531576125616587598811569158198936043445376234577827915341988151487947944364796183362544957773195170805530044355947114951248953232867494181289801020801048635711685360076309447004931362212356207860752162931641204175578430284640715672984319953171400535789207991512782404305853961015932358684461988798489953720196449967542568948110859091934191144832165382919356464195085861518457879468066356870927810572025764485500187440497683584118590986929511090468306947050253742606050683002251758670846978532001100822106431123365403188214987419408378757269136059194331459659216159851771502827175140694976166490419682964914074673200016520287162010680719781354255288228620633259738584699453562694294938727645330454175914692853774920394021300242428773989413711979640427908232116735949439744907777236611935672695149641559300567879638083480757285398514288792520437103295305111172332681507545176594048161447790777057611979274456583692779528944693376556914484677328411747634428978553525009459983335914221477135415410408763180737530697153215668481406676816434131226544127373122601934132878391728821893228504822643871793971833671566468942614312827705700417015542415945665750969458531349462269700654509176842674306636763057001874038012498875657625765639444302372612946103790930691707558271871514825115766671931595035238931523750090284384784215790074895491451666658062522657143595206537258819936341760183002167865082543944881766838223853268847242651672253327240370204490693096709355746731246751511028355634089408971123865034528901661670769577612627985788244016163344673789638821050930619104386083580679227441932155581741761398753257565192824561531687717778779813812936126287163899250712591899649928643735954284507392279594827416462761515604744651106010332118745354341297298020952548109654205865741165852623767083931161974670759414530141295209092288019405927166453568083258776260270401181140785045718328595277947620116601452083703546179089664816225072157741436530547167500228543083997055890078525010335739479625456628689497460291619427359126320409092471426025218947449866178833892651229882451416378269178456059509982109325064754624638159166417670628659893016718282982805855587972891444865100990533988153466154596810642242041154303324415958143423743590623091297336708940459871661316500745941291897741957618744260764008104756970234231680642312319198356159982709019701130445216324354945096804493444754928127495310250388926148174270806494686106120699764273248316177492977001385249517621487845391940986024535273114662008681816924031606904619902056572843653983537552173734908169172579755633200463535089127472879212453517283602266516859513036456347276904755904518893254558266730603366703717763868126615034074769643775205248903498969774398581723255851653308654329805011158586452938860687599185523234956099472541566174920497380325007902291242774615344397616008228290047366425404200084500969262292595714352769165928014343361048726721896969852540072993765065358850340620499434464889261328770221708578651488148315996490507056151563177638136727260681026411216989408856919086102161923349854622412039064433932325354454812120740298918210494027524206436317696863743371815537021709489935757696159838497942819475185857916161446563926664284782836723445980007257052092639716944133882892991736753227277596729718154321991178892430297574684997976202239805350763326604332543436095140609757803584649526415359776963435616527455900928587978158459481633471707800359101265982759861744274578148316788049058937907100328331842068831189298979933774413881331085249697847540039643833837144426497659454082740327474259478567226710597533566862939232344495907622494295341682082089339659636268661635406908692061695491353889202755099466829635881416774910228206755642932435135341415283708213234018771697622939617970742273760444804650733663096617554010815128088276103951296708338084466498806822004385847181189065928893691346794712470810359880288775946390833952366623391619378636791373485231071200992090735709686339521445261097310357944807799083265632554879212968862404170685733783949652257878340785025068153743570168847330529705199481117711414243118276539612816351156933443361916670409982765483551197874777266390199516195742754963809426106217324614841148487453967339204225686454507556966224118871129865818907566469252636829776371997245024746973475477810230450621922478821158521207681442084223874241537312057839568199435882051137193363361711299487103628619887274210440555790508756812870249467670018488892082596436366102984120457264876822504019194448862627857221501433300504348495490275992865024227813800677024158185167607764612459261822135275559854243211185740587123272392993599119763371582531863757347330282784691381661928219852419850334056048438244803202043186755546560678982210678563813857653241476683508147504852935082853143496555449777998523488784118177536140026225511930827356585925305653094779928958804322607954473794762991653531378012573881558693835618340104686957263080423572943909660114038554946193055730523977432208074158685387907803811505292428480061930524114751283462802353534441517045694462382232505108203691336982283843999392982761656926614424476106351180755894154708386805424800621366681017791214638770229631433031961273339370914690831495811139738320432263366478371607514819288044520441256139170697540133434668170890317282415658601129977677933079648874554008346460590961484961983904097540370259531569248825925167190182763509390856589888167689049557098984479781189122571320757354309770227450160430948325601033202413622361296160610724289882981509100625214935597513788462589464558079245806664604132923892026348602012815644514393759624996905219245686244276046343976011475412210489966351039726498270562653961965281113032485049615901902213866557958445624678308184991727880372599562803236853379896036388834469068169150529957804768223011435027393095057762887803599284960003019778460666196359494869649493835123448667537836198146793692899606796818149664724120023349996583053366723319316267176006618424894750618770813379270187273881883272100838824332960295973099998172705307909697591909774099667985034715087853501405020375595369080019335037591529218439319321806676846739996508118211385829496636400199722537926571762841803353219081037680498458705944919492826510366559742913943443242336185725573217765626853119021889181767654679838188700517254578714350300339488272817404084621547600394083777019298380666691950896937463515784974894175791002498433180466612399264618546907909133204742982162286730634190346566009051024298501445157904987029392045099773960381199934164340166825889034181499129903407289370226994451346278152582996464919256687441951384101963525309125915632454324440694618245568510615474986389508116428712589769465391933945245336155157028815223702792411632215804784101125488564894781408468521036606706554920291422924068038700117844094158768146826876637100644624332189008305347814349891134531394682773721199155447052328693740246956043920607786767750492064094962549035763749362845278193337067810492095258229411592868533866346525096025834487868962062121752156886226071033710289760173354899768610646420200043733853768864232126064883513531606429074581087472980574413346270133098070145581790417631670035136841617798048125626327084659642391939547594643615116948304916434681216761639177158066279337747394892314754461579770842666622945540814935097047060442800953415813477369283310918541224510551938874101599725969455007029891666515565563253547504928392799517437427009158818283344634274446107556756220077458487440068413407739975252755059726387315269735563211715891193927025287095683662414151809252065472320000240305737804956363997231807439738148776729272481369502776073061035958779043222222218805917360523877836155791877835932550827210424387779268269102620461780815876751712258846676630736370257032938024381303007664173562239805746303407268684375921776597490192652846551891676603952267690214971053367202032864191744621281800955394706952641356787585264572621346173640276784571754812591895811425024258008969066584660316601556729706735538699276825244983394235755122748781460893886664784228131981652588055011836734960767537085103254119753046639574908484506023899436174018937214582963602861603628268346092103175862375400232201502252669275543155041815248715883700675379826822828531454090753641469674231084503081551583822705091267519275907972769969350547168009166001004087313680513436616601271175836352746023504379866208428035931824733068869850437971032642308427093893460648913968310147534735016311926485592191243623314753799220908875509017704577372569345749259273552504123055719009293492903550888193436924246289167132165495557871131827631072324732794648461945462967645688780691827890974327459423696022559760136067841604020625833804837425585754380525940241323868075909404818622032435069994363812227850127125700887820619859694632951429518286615259102634311576576141077511114132357260200256145797250940597944261628857591728627476954946998605461306231612227805144626890228410771050943286200393165090336828522927893772691601817209998783633323902202283182582462460234052747943535866473908775287314444741379995329571990582369989677107287758666714439103167691783606783835004279533644985303496771396800290029809349884591175735795617493229073176686893838385387635173595632376264600803181290309922243675622236108146588862113829540628757765389220951192256598704301676463044267228948254253680774303169750009662594852801598076706950160953924876318255867168820110093513811976807912364480727347752609026319821867873134568068742966863660830492689914722614716993229838751231648911407550679056349793651805914213270298007401762888999049584726430002320068628185281103540088992992397233170931249186927457629459978308021210255019110697033912077939987094370742879103289747395886071687879705105424340315853687582725620047370390712254023415116796715695350277540700351398691098773071013263193455727788067117457396213446839526410936921054460157935960834313849924145156448597301049525312493807891595310135323196648305856480192341622782334649482759808651870341921746038597475356500330511302422788399709657636981726027411463773400447459447551164382377877375234561989547118218951398810286921194136897562822511126293166217673786992028186456647645392139695414338951403415775525294938728166246256680794396657018729162854761671227484122952647001535358624928696145579652943971378806382613112814054909306334244095759566081915645260648270607729896292477282130044013309459947123972205444812347678761293443050360018717074444022264860464869099150711803706208622828420968182657794841707325546580629221806494868722502528412609542756731951862786552120424804049969230748651766406593503219978817441846823043432434398299584869052909513223305334598666936668563586043807599476439710733349531839588239514357059720632726429684815268171572471553195310878314939348884979147454381300592245323512421513616024551849545165004894569477231601715487228893506158967595258023866487511199460868628454790358239421637405607143382936443380545915603208992457787418977133191370637395980510838511810415665753934619427865826396449780617887045260296884411741201545895925681205671183397234777444059563821290630056326410273529058928786184483311294078428898208349638251399702896866742202627231545376586535481084753414567421912153990997223689275570585138072213342261685784845804357665577639015311159324806136236182038306591030880182660085803721129735485654987322607086446364179348526643086731025162947130052695241793437294378413399890031918469961177875722466161055963735708906678389153701108729093829130445238801557365231069901726705033437901760030729717195777783591654312410917658728667533022036391959822710756837337828742878692848034315870384716669130359854183388240084068207374204626828993711683901778860967651433523669035638280657275752093075778569892000046503835062164723959720547875945798100752614427192866317606663350261142201131987741098674279150308854031533282910587616782331511863618666646989278628276728993788697333919827334024770740298454032776796940285771653931432005408472032691279785124394108642000627069827282294820520339601721253003990250664455100665370156189267667474284483045868325546736823357710501567181805496201179471606528363485255613503558644358737194293319349843983375404530012230914521646404380799138760596561072744694962581136250272416699788473303873930769381178243001690187036187909520555967829516671647424034525423520436695786267073370683141174754108198997138166193544875605007503111717089781862556815583097997899122102667447614373598800631260150946817290825190152903536037671170162206224800129935444617863071581495210417089035801700695255782413564272363057366915836869120962875624467390287082282749782405950859918389948013677135309141063595467044324203011644277017079224126130133645197732285941263589561618944112569482696338295860636986919327374897579992619409071518092868881741558470421078163637301971131828733405853973187339570626646221139894505463342866755393131374686082646815772674938310883803954915593262191848598740251155825778412940988133227374931450582178426274314415187921393892655448258808610415162162975369365147392085747029236834591601443381765246532830394345430422475469811407333967437887101986315417894118183326992321523011897586986747637123590624996144170445180988421571460161807312187684808251525166628638394390321431251738252593841785870792029776175413257481093089290494442954934669894540221282267927752859788170972449425228289765012151238575137238013957166051213152865477976916914500026189515615681685508281491265211794455508923994681032494394109382165485228173103245052278939046093069732631816954994814672456222569935474064092825379131362491517708711385388851388985566025927655567419212646434883117249959748791947361418557263901203069166253300153049231110607717209323255156399788934053725879763540026264210076193714421070051251895687799092184949800392268686086811451534399747048445977576458649723099155254541028042140435470679633109619140090229271165507420584974967598474180334797209476801216853717146619643500950951003200213212970402914348988676639710011469993662014469931278700296392448470661657912302648848845977639331849195359738129385293074736841924404771726042672769620608549899812027933807259996932655463919279349531440708288414292964661345443070083496710182148114230971546451768992586202761564889058664940348957901623165766181044011276023856266789052955905062950902447286487996553425763587809506328797755921991330817350392070189195129394639262753942362223639329723969510715237146065087522211046865193203523355534175691599024150395430575088405881011108722647848996951265818038924826131598012099517708164027734322039157004421071756697159995817370570780941875144743422592508889770772305444259512786996510924504759191026862771763721101311776234069793606291615101198055315336796478310257153383135324156701178231778709650093509240396869806505188340052284635913796768323248244133050542441543954466744083729630638338661203991394807136805202992959717894927785626771863645647742185784513396597440469347204468628068869982925554726095185782757869433322537597948056070222274518509902091532922292588409575786820094534686148297584234577442701290152617811659230556999878831788784871043721684425620160201942485578466370907668036444716850687027183318348237401929889032712037159609100629668678401558719085117767418014843712429535522998011806732534981460669955671125748605059654478578476801327676833585076063096119819175452842535942413148200627320884068519406003356974464943568957322699161850289039204653322039689528112524965556107647926159265719058377219095083664517468554648392916143351739957098157685006762065581756578542794056078396935611618027071420588403999747838863723364170125403711367416822687348306392291409317907231533414508884996563462726011374817047042166924784810683029369972322885539876200551344122466772749105375351697957343380718166187571468058712826112650641401470950481869593931850546112775770835582197510817109507643986521968005064374404467605088524339416354725548844164715662426823452430683085926319987584139268632878270741974160960176973848253115004666203620035102193951963712512009348869069197555993567106273533028112164404271688611441237832236869714831390703685392492943609071473324546300084543723729486322792559803704413969342349909975590878537354227419871806820683386399816680223871092014087882587626171921840423424793388599361176759407628461871865757961497605069918117274065205585977205920187889469344554352085016139194025396427513705566414899862592981443073417974314095014042599901378342760930091017469245173693486904679700800401405249283316808104521348009646072379693519870493386220861565590983423128251992923180551790176258834913149001308169012832132140329558610542399275924624809296397173536688844358965573329559440336251551235150192370093907064558143791775152321528440242650983841547919026999895298974086834806454638538206880492152871608575469092733940123286840051847391545121384665928818523114948528839191670744660976439430437080549961076956276831727176193657621781155286573780036943099981073748520935913932711513251863542966140298323376516321989376743661515870745593983634646405080990014157424923422516107182103687602740884413893893897860133340487564172074706567085879121568895593871966282918788824612485322945249861468622153357250167490459225375116258352748928639062602782017544147222873249177677372185682809274193937391357411714763250108281360674745661643265590414342534545527097863653050266064052587492330095509724137918443662377456693818109949476545907163669744399560165117318403214274494643247193530801039315945937913206894675227369964929552620446685330313564923038211869175346045970346451598671788875042065234317452780394651187740848628277136413578067783599700113452659412470154070378944248575906954135142500856266324529406978409779278604566682131437780434462301666456295580919703706813995635556163309713237716061127134836904393362872085166261775080053351621792812380852679443061631320775743455552194895144718171662211988321747926460708754456746804476958858165487172837785024502618942406058149381225477240033867942977944571038031132868146791863587073799137607954392037157842795445658386963447964524349211001488077318746737433163441740294192771083031227709888688888993125471209036737195904551037139587897201703312374124229662552419684724558667482212569809991735603910879131515508083799119435794965286845034964735048574217656953339445287281480344874659772105872381093805692180806974007756697094028869559147984952266070980230585999385460967724999565377922612235795221780865453065375061154156693979127245974168127368670097199311941024577175830690209226785083073187195724621022857063449375360803690736416591469343776312190826027190956292602536061250461033975027228653498561732036177423043587276366859348169811664758370275945899315195231552647345328171819955434613576226192756412032675203507152049505679851376866997360344017648987504034517046541327401628216372101950026666449282159521565165173561300213405412433321011635746631303504955580595168987581409026288695255153658276109432002976591128887779462476701100772785355490907469972360257410923620769625295363775356130520270913978188876115065015630363979021150814838663012531672668646958840050098296297701621168710194777228157307363587805891917222787956709656734975922603211119000116425249488393234823928197132626550962984801888340354226759468845147807203262137471355616382930887386747375023887548624123759590049930540493649456851317042368358085884719137651427089298386725178744314138037037036872046120529624792204266227916364876409347796403497616710402527765723273611493759145623769669299009191944779562057881787818467438299978949783041925554686134335418280122100995274405089321018094090287676025480148434323997547387521304071874700014046893118387055166688898245690922244559211843884942063410120689473476045315122975323314778212571149777345637974399260786923988545296570824677589656823847759006179200036832195378666605904785199664784048615658603700320237679169871205047241099740894788123518522856889624287852388980968708017255588984421318614944534866204208955910690513095760807203875477136219890119716868173576363159079092298065995651998446183907796920205551247650043744942753281985622419436954514422797314429248379795536924584395454088193532734358697617685241573619119766125013125054555292000370218820869314976309513061286184029762363169176141708575633506259050737755125508161222495031010239936873329187331165469207282986683760018271505863877884661045100134813913548597199414867793067107430178351796655536752564859785054808263158375683576406026449016245610777985900016505388669759468130791217254813346012608605003869818142922719835817769805364593533676296481262482786853909604996784990118548963826488429760352736130928161692406003977261712021294292772583040312877019019617723254445979486977371921719244651845188336468864201228428127653429284107848881021775386131441575437484051956308089115510484909758809499066802477712137288800268050772975786297533929205378334979883926020149145566193314297100794363441326954181028505374676142793623509048832468279651541680727866904099857710814274868862377017439145825541841568561268573085850931014554044036536964929268694268289297629988852817669634644764275456557261653194469295759453080014529639583378311250308992946292349510842138985893493295719150192059062116165552297158738264837488405682510777211984135480996956412837022020278774872092270490622868309203637173851779085037026534647092206208850200900676019462090735864935236450387629983070754829650332951183090175868077152728456181108949634973126203867909107884774413698811626446918253746903034482599255510360759271213392326348001585189765492574872913328536998876813405183196542232220826708898523524110886024116071757708362336558076579990692305637863072875974026857096493883858918478553287732470732546390579183692236059711640452064680584894873748164095344065994953682376825403298798708849417451863988328980639933378770393030900455706538626912624171786883915997496629744621404826310082114470672831126727459289373507827504195955977658426580012286189860772450427214426308226712641986251240581910839457953997827259580888284593363483897841719782919690119483550104771889550888835557570379171312119737894900199055588255067422536755310762369766709410895483245773947991971900316711283313015014224595375049617033280441524757959242105521707919332559263476994982795997153319005634284113122836691823149458315259745240973373896696845591630369612136332587774062138725631518790794610122488550045770128623287915454241162023491170371894299575549679588243200368477712508997031723993746684159573574378301174574699687472177054969546353216671777190228814848905169132063168157967234475686813869594459771511387448245995271367269921261915601363961362655682135123372498468641785148175895780771821574597903939176703927174195845848232689661784456428079716141849218466314064186103367407581269412169362367668679296438439822186913703543253643554712821485598016862456213170670670792978486798173520441619970702363865964736615472310766355344068304542624341198487992307528256334805547371829144523912394413059115546462524228703159323215659198402138316257001575020232036390821942169711431950530319831287294419046451186546168435941747023607908079231200925864080003570152759618705098894432021369582509676243461096697058807883489564668960522796070691113781775972067115403894768234337537132185588322272212035358648353152665470375707579409420127651581243216036989307399703278913955165586465030145219509935378387216706236053776903469201869127611200947830113724183847253423813741197576483069642834668049955845687130249796506160235525471641847099967597479455581315713494945167271938950793567889967791687008736358445245654789059129006175503480939894292673592879711960875350827375609093497589486882829628939257558950870482582365524101923054010624850732790644091191426390573495218731438687148646013289620090940689380986322262275180272830764113063599454033959589728037816614331548103278810557258416986140073683427694000135531572662709615715692500076595430744607456228221799516208740946745635830044498034016850585206666433302640408207548284902023782891550754050537446365988487666548594269940645062332623475287708901479246698473902387494176792348964338892908402936223801250578277418942090853036953835092002263999252540458522035347566642435736101002181951984100200062367279550909146420495070636556616823076726939771386368903640538989564912684724722404490653286218403449294544433508488541344797787912122359377419438522907619632459677720611809193355477991696934706472036066626587024438261880183691591557281870550256524632538400268650787791220555801857994577398184614207541564796041679439638634773765891652081717533920421331963383536431651372987520612544652431376875686832457138303401691195636242253154082099085194880340035635378257918893788214690325782943504326448315698994109410633031120453647622520446132503147249572466368360305712987336679626580396332769699744860977156441699121457001682573316623693001209325416602651834907777601588146870834020350224267463648318181729107509909721246992678839271370180298383711937999971083469930719129066460984629467805767109658454722942368981450211061470341690783303155070612223268898591954591489125134345428232090370490587712463680755316862947736459694173604072063095829676546157920157230942295183750697107678465822118179782753391645443885313195738837375111063814298237115885742373394764255905138035460051938426789046002474463840829441782847907440645998800839628439762924164760571968161974247120938418990265522661087747126044929972463589785715536654980119492552722809277321300277322533054108896304396529034527191687927613743636728082734838362352887700042305799018669814629401089815561159295712643383068370222677481289437733973933043422556205368167903037794440077940129837446834179738057113432273640315155914708084854948214007900690202655650946067847614630176495078326178235058731291056835259043016651637550694825873991226054008646007006996305071816213261224044893432413620063028742259572710358669227768501788247874362491613630794438966255042612737500344329521933576082164307704817370084725200219303200963594341149781127774776533412372654160031385837095701487631488099842628504497058158438056958874626912652078349707282670561021543854104194935565936387123180776368925501453338793645885206532902749504520981089244921996174018648926030486429536104997538466843738646030328901204805579128854752077305566044631703014154709974773516532995679898032325784106467237785405804388785691840244403981231882655886909412320298439458781593314516661248954350728091960144291022901480531808254154512203707825336485101228224907229329487547825740818830946228700745669045640756143503834452051199206444460550071684648795430120813698870426757149896436732723753062054348956074907952447323086223438671353249559776718627324293156622061422900199132680417823574314485668973601207966813267662399222005662391884194906059687309775385086137803509800780987045180515511109865417140719780284036471824622487635762704191970534912211168813961805881933706628789468466407260487043163621394638176502000948831623105592396881027653733250305393970363817273128018325726436640649467569618055059554725761484699877111135831303386166667644566973636388121502703089372378704446112817916062114945681980390217753036114752344576418652476244694218182479393689771649710410689753189521980453692097096331352734675840494065577588562935220203025289971464109197859905280674680197182885689378769251574519276939830647008520632592165872881019667590923083652860962186002346173319048365925460561213872332662017976438323970300665558982891770001247998719682477368138100609345463964768300188590311297995038415469612680865752958113445752612142264965387745008859627742590630321850307827993380376966578808690519589456094012534651845451032425621712578975888901794592854386501134924720419032980665169401786709548909063836884914043687191998175147859254790608243588593029176258308459580596811680949335511032793315847461524946931502851277867206195759732562092606379073936849390033595849789556272053429811817675315485934287025232649661148897896369539739860487174329024379150855518279638481820082848882288178065029197192411406977680476362262062168235141710703565700726894571795338143340478917134282826084875628257562790363328305681877868682014465027128671648804319749153357891166213993233687792796879161566689245891545238120217828179246841503961639279237852484282500722220619135570824960802578185712914272646211361352607183000041580740984861843848240462808859210233175520037752962215250027471564212108815396069049216377624467065019337393781285198626128930863725805694256088901820942403532933214262498641236195373669698240640613257810343385712399883701059073713008604587489508492557472348848294366173470526447593615402185520993497449232498121223612812592461470487447417357020379293342845708919815091389351790149369557086552669290185731621850657539129591366006690683007397476907892647980104459741925524280511786738664697928475402293899684418778559877574694957624449738269703459574463966944296328684416225217151792662145895375221063526622653211768934978282451233605992791081868182525066292117891337971649392766594690330983158236438032799684679996991745569027697095381214683191491952535277965348659605552415809015282919436197873134381332234438099001098814740850432271565350040288556709111579998706537800377170954350266942976521622855063349323232493140543043034748473164185359603607998691344413107510068979081151181052429127548739200132875187984286460979303213405915190290144428393830249819949629020026875167592675077975983121447780466442323016757370794440020520161764592656804331640057055340351089531822139469425515332582815498040502965322667574135748870684381559014763706588577001562768996547930733662360419261754113737147603121114824466839621442504633645736949469629126988091541362891019170911672050631632159467891850800743206048439713142869911657335383381533590983177935807559110253979559125056622858314805352442315652972281470732474658771014892880301756958226091175919362735583264780597619386496701397381248027429728799956746681848021994236078825317401709613782599118158016171962080438410189955198899473017422022753430016376464559642425903882737429073939636320874589054142257769220032132736196086828074609470639344929226413868048689539176381059485306776082429388389994507404260167252860907232788611861448412472483873945722877136350711710235360702797694780163247323824415563575858239598346350786768956514494075317348945807000916018037034595652319686518298124259464566191342925274570860468361399844219399457274840851669983087232148799897692299073683689633664697060529598147389156455248023293468282408590075458232565423819871877007090878869142154470859036104908740452113018485711303513421127833690561850175630449496800586391178604499663041006529019721945135958913009347684960705171076725973364068057162982865029019194059764747615487461134970608198568605846309438700100070866214328983813256303444939154108548219495561591871180944453163832496588788758745517749971904466152362603792075961456385011854545702902628015514912838917957587277251156454279242501642178394882305661038280932125635312492228597960809262947985673846499378672683937249135678378801317309256278113821370723537394168798467865359337567879314036300030711781987560728556024458376896492308369938652228834451636495948063870899189282788217304989604644081952101412455920721160179992437054275294999879028568054978717943563034450500445494876213955398880175366267981176174069393240008102389157918124897096137249691375356080600932181890442406678109872574179175363452875976113334983373804531242835431259911836108661590370221935425424931198830832944525634998073915336725579540487050456438496742436076043883625651214595124214069066751421264107101289464075202918111524160940360038569356796043926094433243186641562526655678180429947975388381693958382651080152127312699022966541517230356542144569708481628257538093936133531262109073207950476626344553358009434652785448670579237681006535639065388968233885292266912450446803866190242141768022976748982734093230277517310081115033407066829102094078298097438462211042812528965028567089364561218626989298121870247552153939242431113724028313259882146933611770919331744424940886232989968193122793682699257543270851077839954105446392492784203113177861760938628327693900702622028077708770047954250717045657042926179931591469407855712280011812751819146043117284921282528612610773020741188286824524602484985314289638522742739164765136728852976529043052014092882781943887431983491107145813610386537732406574198368426486387449538455553154856860160603196420297642016749688119811242093457065286485374537443879738503891396689339699984750416099568341681830443862905130931096287323647866839108333912223234392337741030540585489551177613656532616673236727581168019073133937091464012809185470852772306827103619450776628578944212273327034342988276109703057541110075896350951821157118470268164606648466374871068085170117570338787472263788850844153357996254908532475733369845930966293450505970647320780259397509108829099470854574316147165648708405532125153230286477607811911830721735514268158937525392233230310894966697125530545474261391000760461110817430536687733732891624845651690002617058127591166006858774952967748416273466184414718717716663919868907551813548814045512226564319055226192045656258385320173682530819858599178875040269564890078764644605598178768433463730493141455436999978726130372157769393408550242964432760253920138006061820388697901842603487616228598801424257936525024906919004044656958100281715541830372043268187136958075964117382367232423360449639152541738005840647201107035815777463001274575338985481894904157803639419544951310466561151855554004871694569551325956618172497733527410274060637290528023726521521351631961560261109629341723595715671503633527080225342409198088719293149123598198783825175500838421822161419327486992793293042923110789911703769048419805588300282796127546679644228834953508774252411215080203877182420026312987411706370081248619228714066246217143770647931380525184352672785786117864655769687612612038071718019997126739978371310359087422006485247916036549355876943755232392252781030321094263542374040852452466619071561542001653385833078413296051031928769885894552479341130832736546809870141205941294712324151361434524746711789809452590407656465168754325589783284053843239252799525470126760169043923123037646855765913983801853338699650516902066503105900810892866817924383956357342608348068259324184824853020881201514806175537861874184893347305658016603935354449832029662649229070317400624516782051305434917194999497947228825450956057214399222358587023038644609369511844948115468420581675262147212975705652476681585058563801875509829099387444842880522497657556288044217375436941744047386082626412469424735022353919496801910054746092298872874806485411919828729596487176438044599999440460439877473705532369832028544388148329185459179235519972830879020474491375119493023665660479545566181945599537107219402741557202842522104232528210700146320865680713100613679343248194670932621077454046632788826862839996248865663753070886644275366458951195472763034682540129827096424043200353952329832936251857944706310298483167578543600755337464242944445289873364961987704625860145459970484832201529815703713136443012285826004227220923502824305604578254286085829474868590580932122493425713215179982818656577196319332035971853479978247829200464275000636547347457694975612008924418229701696326647699114284953610680791696483808600077623925846425161099326420368521263485302202722650658237287787987848128715334833808097240476238848842743428081406103896016341571579969668464383504629478786284222656083119278091338237146665636231274015545146739650484415439102019789256364217657709440739523317494989115024936261328490059799247160333736840202335973089112655262054718483179428253684403171512420065430739008258486575798290959170420491755933753823165350155421812573389923764529302730354651595277495488005296423097642067823528148395610690270333227255466810118334746061567544355291014727789844753233444991101738056804756098924121800587932362085502753952971385077725576555365192689556713431287204756783299651088198269766313828802121490670887092796480401918835066015108407339447403048327244142815093320996063658259159659225135238836227684197675400694322854767636360659454339545289049919312203666555260407825764572671788867244996444352326306183691124418295008454982187718296115959725216059817484171350619976800732300311685971902386137725927516641282215304215237397947519103715628383657439383420586381924851517761527333556224518158169560895646968543719396075692386964380348474858359004193942349791393933989675957461166823918444265261268309491958418872507894219009060163085627071180612878347445935459703809715627000864062867730044151971242916401548522535449458263256894715242308537347149147452193495454929242475434445857420565055551747230241701085522136436138474986696930374197797410850934395868481695865083072529923222487184125947335065089802160533230201891170202154360381020053876376455747023147142764661861366224733939432668872675331533710521418032289098539439068509784154912622404100188253982183400883069594776509696452569131222960381116337117972341196051878474480357493683940405135296482782574277299576254092159001983879003723911446487732899344648660736588911046594587633742444279642754460216332031268270520164805761295486918965902241458576486500789876379078021126577516404212599450631468434319980519304482149280953659414972361781369921075846751159682494130763337260761543890470100686397525693665781524105457515824129535701412349060139317491486189084069718990295870966866410367190401052612769266912115129979413969548534374396775643408187705593656909006464338306374448596148759613343295549659134191025731155942893706290424596232714318590938979417298731115771559489214669186258780896627155796353232755607300371638670148523657809725740084362979930357388893555904461424391979546551315566822122003669465896937470934954972515805615470994536725495944747982457917372498646919952410070234594162735425630252885421391985710646692764640961152910569152490469639185956845256612324249560402528966465635737947691635212065482454020651689379913083923446449899278342756290984462192524942036801926901247905403086465219990320095341209638716449984710762001253213291667228458036624076173525581555405472383788481755270562153337879962822006588980987946354499674626145240613960198203163931795407042541492287973071565586246287449930609509917771545603714456239979620824312332119746489141158273216818668313595633018077160461403449582028215171349415107462785274149312828906530239516684524470189659601671664406654640383717244262306780614989440046090616605527133784328422426969971859803195776954110249225535043948629687669641586975805328943505453876010129204418330963104900684316574403884857122318887006284175401260255799354439084205078976651761034966257030679932243375591619970622287603047052704770891037928141426618594248034417320748664867209754280857557764155036612884049737875755657272702177975022349916889455556068335117177855749929966138126754468752420313156561661050566569758213967475236823614123673265064420860222949313629411229807046485452559180426253741800087167084139968094913621559597293578571347167471589959291203267880192339814180556844144013163738390049901467244736848453542409422745770630937318543746359384499050929241940375668047953817648173688243552508411732577300036131347898052036716721144923820599969192817192115918154545400114632677431746110561516008308875985243902939956024332421617061461286003850218214710930706993324824898424891826521880559227473772855599885597301341011398597569642429462206658899689142071120783893375864018612414661261289332447963042031113700187297400583610740182450860004608867601559224131749509255671972860915850402800642426692600218659043965369306725431756137972553177346662622280481173790863227074841347976880781153080366732337806974160332946950525494869737383258341001206164701660407760899756999228241235935129456534976761405331985997768467261133610220812029324948089452220992632998449162050670252191979595158421688821726278658950569741381479279504876765955829049031350691404614306801640905645943681728162358851943926653341595966129915451311528457056231253766422704769928473868455846606933921757019972676141884693362854890278411283409196053328047299241560255639013144023728038811797115921498123760564605819706691499162190766498728665224775112142739926421524584279746537983296523734814678923550486192638102745892791230952981916431212515229666368405784614440473403641352364773900219553177341311541571681751200495340715687166429778244284483831664970148992452736159022223015170031143796229948462403761267268315984059140736714048580431230817969783539184127191139314689492274745344418133511314689537541471561308519887962066172204863644704298129300201137852472507120366537083305569772071143662820221923813089712329309318999602076496578531574012365271148050309501411372875250139854171823560046709532482152375945720309770967742291918281555863155424398898762585742948741492867533853543208960417334347008632841929368287831843907789702783132203447516717171021797161312469778637903147452729482417341672193848088502238649627321472752062804803459789181880270813601789684081006656661830007575360860712197714308157555400819320862967004303729226647411651050460396773387569623627818496717994326446800687875395374682280613641046691560054129675014249057041865912066667549828872009020178216403614412029859154541485954887373474843838627178627436995713947880402111523676601118395437075129334963740383397503807196006750476020508186367854401689282252212217626576180495093414846883706470312496958099738476739166398184486211708758868923090587871554916397458311851801395209609721771012146417155165543212489384064678725794879378621562591870583183383406801593437605672741858198435739990153454859471180255267464804981893848453096276067824344888382251645944363624347997433837288101304065852723288679303569268367252341287962072373623880548302358719240038308379040036535193168252282362892141135705018345896633378618193177046671825780897680398014042925925131193482475950425802964256514810080676259392878147468987760208812550346404926200934893027512437256681737091004353464389413195513473974686325827324773769711060710783969542780911061425800562726618176592019519420766723282948181050372745084469498509658149467847762087408148293973711725393831160986345726430744792833836510855745336511563608881330663058466448240091243949873312486937894960184811269736869452694536623443761837255834400003220364822306479742923613828478036199318484043373442681617586986007132774842949827914142189303974802666369252795262637046363163955382326405023980238059036381830977691956801335722234087218739446477494002062082361552219259262080567824653415227138123459668663245780573249758680795941331794070142848950913963463666539952882641561627549843989900303433032558794775081954900164006386104070806029801298567720752603106290704907682976254351829129818796276724257904881617126644314577309875708635792902635388762492539554997692208104448056419856727953571079899558229390071209653799432309654937398803540090072856737200872591231687596432375919414315369622543749309795845851937120770648967368857179488657043675254593010602423488285646726081845807991078849696285197964556499887159028966959581316588304475547783273653044668110522183699992738006989336298764514458999296084941400348255205195429961920736026155943289639286174631282209844976526191679615346626681840332695309238015417687458711628143545978963508374004004031187193541717535048684493091844518650413589479875274244179313769878984842585040300568968519537386801118321997066729799473357017887184180440884751903077827230059245302619897617934257982691679375119440785794694919275877160341291589765916169849080663750250064933283646116710329038487319896971828454955539012968659740619782161757987775280181198417191125593848055787028508578366838973488121431475920475427217209080659246879003953099508417753641527687437299834775928697869692632922962426606720477740571330442821603162927169980377728079307401055275791454830037763743733628031494815973017395390705079916755245701358529206778141366914034156571182717623333928626297384489670259401504243928346072261467034765176576947061260554594841976040872657558903817930133536952286257956440517272506788652209684990902695632901876488995851405753691408968871608586930559549660701449581180269057953666309194177234941773361982148213526975660521516757060805250638367742488985760488808058134601999001185964597970522565068218222654654258552498068443358059390860879892051952755264596932157329337827549542520848625360894898082176362924971902264355776622723174626966064065640757730191326496641158371044924691821346286750114534873503134463011012634065345548311675998060101901178678009622708218739763435742531446376251344694057707658829125773884800854679757822681493573559883293967225317017738510033650215306666025596946688812379017541639123062312271422468472746168013722100274410462515312071923695981992321318372476987489957076721831419059021968834604071521556675027198572683075947252375367040178611897415801859353093604447294913488249285099861690125862722343584842162721801253978493306937594004706066430487819773336909472261612557950023441982935352902979097147913080490224142197002353405451525046004296927624287359017662244333768426131724754708346399279446566722492659665410960340612428531475677262056057589258863837284125329103390859739467238159630977437870318221654070064875078672196486127379658082997632687214082208005800762845107483871660116931341444977594220053107737173107955768044304575337931591087491843429884420942869044253819053890358247445626442392076047386310138790579397055018016455005134418839704741156250910710065145470822743632581673055621199634878762038732098971848688026664537639936197204285508983682927292086768488516217867421344828593101610155419170383276222843088194503380897109303775213369655741633453144917258730005170461580620661643384879474008863242005870311844415971012331404444089535660616350991792094141373217129011862311398266139162393380038347935675746880186943128768969165727969519929864252023219713682542299054388080020618830184084658898378983074713267772943334812624724587517806983341020483545139383746006942576272455767416747427275981924680320151886461891674402565356594010405342528062462854031320299894781620773266424829571221775552263182132822085583720087139949168713376561248137266513117357520260851971288543249752679028042563467929096735237051454938235057402985532307020044831268105514567463783461532143355398308742076953150266515072183419276351311305989620485499011045623129493135182059766229440350616489211337494046269039381059362150573109618852970591839964176182589959921891717662491912942368211480830317791052399723136717488260214325505610602628671913468308919969208584411013398908618518666767243673580071466693278419758667210004409843637164429731119221156505822633213784886053044954304642574782722961886366245929810722856052799556044496481314906700436683098851807556774662426486691494587532244754835635838609169279839226599546496672895294994852072282280132869850822697135346807336103999805597231471765695866426428631203389285542174881867121187118609139237966799892669250579313134781071290407740187248126182363056266343749138770224725458299436329725278020371250072549989579492716448053152505662072597068369311085652779135512357658193319741248371115046092338590817202955307507263639167464529998660004177712702497375819283735052295395098550255125370239876716926267416041343362505604328805305762047444208722821098785633985648735515059345226171586653708033742069196282914838575149367005835675604943539198674030132477686514064037452606461467117016245541148888171482736969168807639958404370157075217002135674850197015212985852882216330458063712456423141056931466563876159957901909262991327004627993079537800535973455247162144695375796291038632482690930359657788629091786069913234818156745575612402049582993563449946772892172531940976285514806493758033513286653025790226025223779243427873037665549551396698538700873461346579460240354873092946533216523186733410354595117915079102520346570795715629265929913777002560244974604792579139776790111292953162732541855088949112621385431049974085549833213063023916090678158543944237962626366656862820869019990591001200697052547279321821441099901516184666257105133550952338861303350887805832779445997185745828580731421921323699487402402783034909214433495674877728360998975565477361769361903412992790236761145627255994037441405195350541698913072507081272228346120926296264348062106782762105687856141172267302822776853614767855762850549820616940314873250765323054230804694109419710372152188912960742226753084774711676469360857845900736087225828845017411292023745029508188693778066956960811922740306159114639053726455055360754224779317690315734366350705521778317823334707707828822917457033754221842939412900133738328361929293110413998762522724269728073441855090644446678026417363434529966972347099760547324070975187344355894436780927626826910645989079880494252665214586427938185217463276029699793955861072020981201112625157974563353249053549025898923682913443002911767284067673174083490306805187067538703414593845395971662975885723467715108246793841986976721919957153807186883052216550906768152360024173661622858145499938238831404890590478069285864029449875668682554483734676613266596987743812051468553434278729335006924545841262147983852787021301026203410566243823375250757362928492458163240385002966358466991303593114303122053569525489544178007904276041360422131314612306296408227027839739961124159580438397061438064306272488601269133321148258487223166965503238066603561222534012043738185975774904894804888961323001281988688274254091623373099325150582896587712646773330306550582896329580202777109934698566481043712369348526815464772312266786097149279262407754540794460118749935049511440737416249288800523414386997458305433492556074902081633434495283081794002781415379288171761753683741898427888432344435695036081252295499387432844471416949012148475400395931964870182993623056793360215816398678443951848645619101700004461633170873402014925032588834439600524378177541277879936233571272871135409118350642481744029158743535733084377719661096430811425037581808002719865778738915880936574688180693199201987849997695560697885879062005976095496621305571809048712120553138783974824459249223505059925234380732592928390446614945919113291836757045421278439592979380965521119503523666361431778078278433087383923767395308229735826669872844693685848188082123477520959956015448879681496563104474196844428381256734969454233543973766116084625767198921706536624721814808581162596757738396325611428092828464995604830206201713382793714020708368666735611641467178023410436399876149087852528203058831680831039311437287588685181582387603661280123148588091067065951605726121620926781033963880774083157653582444293689148182012101297902043465634074308599306685388454083929809794220076781173920236782673639191979371353758723596485744378547728182915947177903276163249905473524067922641218232068059551659087893145414270713636642077882274874472090130145584055422732982809428312939921066614873318046595654587718084223446983935471415000194848548504822310202776798970840872565876953044039224228702793667384950056363513100919412660921329877783019395871627360578736814895560862565513426291637540180339676487244550792340902367465533122596668096459193847302030055260723549848073623066975075793446282429141855851038919713981176910770736605907663523199335709101171649267823148234202376368427679925294279913035524442565069812682593592240548574724084450494610742897975049842037578580283100186763551353281393323391680016349810213221257087853956136680324316539955287828270208773245733694759501974790904057731203893298277895735899964175518289626395843986336487097530278218465192308124525627120141731817220673990772922332569366866100102878961121651236394838659424574808611912826766431661482763058326453407890826824376936377832743943878078602769618653796054031309699103473899196002795205563881255235357018940853588066964983826127848932258012642123301542710656875348051003450635610630531236992138175003819808057363318780784963173587562197925989623573344552699902176309281696399890972818491459173319295870638531966632166409472351259739509691851477616110452935333461641433491900532620175587755165623066458688266134963123101465736373906552806008921572887846771800116614162574262271632678523124480481843052294016709011753977092821945883959395165410215096210578964231310446803819768023923533390191647968883349022847613114173336925989259986450254266803851292594694440806306668076406559570944362042073001159911782820645390656355691871873063113962252165708048063171314481446763726373571400611353881915733807876106344622769411889272031560750251008119042606873064712381221326690465061083210694517886181581342001693616360375162300711226620090637534583043358837297234864318727552591947027975394638277701305763702575404530093160998892919252896486345886474927224416875946949315871929632400266808576325298514034568052062834150987786731163238867708718416793962234401349001702080415329689429026005425533160439466592948540612530958630289895236261336881652251772593918887781299018045732951437013843668531486655531811252239324150541901899941261079860789916063049827181488940923107588581205267478619813117967613093362634564138832231278307750827027911038849653190821845460643007727399696208183122732353725153048243851368708845162716803654079399852273572099097750050679943002942868055785231490459534415861216614916721537711324719219640060253125648945875796101449845646418375021951857918654695292305748409792872065775833060921541797659024175410081136624874805900599663082571747304332559448298452716653727602731390197604918525661262627564889822848427045032047574059726473504050986030410930373856520090773465075674171663252890197585906265103967583083463271618623443675587319810355479982958315434583573847870241209904825728355394876592486710886986068755899109530356332163211812653689666450575565416349727618272213893006520731724234884826634686938533268900628271430279003122656499201340273296657797418097668679032441891861610679735823383411039176556624144524557273614268316800033038855931999589831897206203605859726041242947848590962201669995055661539868948099386815288591222756826941972010622084591032617809814552112884927537483410912533505535809326049139088204098157164261879804637599268320522475307898698827957282525763775781115974231716808106462200563228754454596771131236547259598607137394648281780637840850305305808485613064576677193020220765031924204783744656549967914417478515358856959101279296821928103885016559036377655896297617624290284637854032031648017905629155574658449575730381158636880586736956318904599333236644917817080842987746377219042103487602750786642264266909637525619495583297392209865393746419756050954045054294123174512812589476145190919613340152576716964183703446656644231396458965544532671664051497893332456838563629074937714183462810523310595482889777113144359350312980223042759245023586402477380007602412372135853241701969149664424971958792792368163301055816843138468142801358252736689572912613097338598020703882250673812824639068940601799039111214778844954255544743602077318242025365794754843238226508949790893409333194959945408086646900284097758660806395562130588711003442417057309988823181810275715171494348290157774510241203852087399067649504853944248160649700844316026862023724064047342816978010567160532890795360748494964785063927616570539108531875262560496117467620140912393122484664423740237823699601711122360848247135401330020210861873752671642471640804591369755548135965222256467440373792852181782364808334678024243661413504401334682681763064632197741694307405851196465780198272072965908978136057455207341395889400133080705335463857919143166963464758628982158015475317322836245510841749142761173303510507012829347876463010093389228818844720689899844353188682952052230942544645447698177289894126578408039211016679293866297509813827940150971641789701962498930320004924923387590492523099212814529754270179883292911973528959830920374532654263286097615406954103162767694815268173775131884718739082579149404239551235016829485105054070121073182852984721639851925230321026937036532755134912050910861604695917438541368286040084659197344068978290488669551568236188974099414195058321296417618576660470576569629387569626551625103033562276431881461916174177895651437058818461026827996648484882623403670841742465154020588801185444804581914331531101567219532383177936007274165670381945356207068102695997627697166180016922149533581171561098796534637684352881562027476531281308442667230211327782519916976363779809407826311581312496762728899365598485930095616576136148639107585653783234389917330227242907455543552262567184236871045892630613704829542006417448680300999551332352228037857585794281123016036412739335954448600877785898145798009444561541970837603786758120294248975395566404678261466808619639639056458278371674518899428650193134460293832465687924544888324348697694023568952817612863271825527455040732180862668595154635391750107178993786929951061611430648054962757067595837927725946514790280798729438136885118640247982954312766853656255324421310322768194583412916192021965810182524321235411375587839924252719838067639355137306230636616773374775253222411964082295293211046618774584194536227516041176328569401369899228532532455400760299630150894041594065251683934571130475477179339754411120915028206110243017311189474960377344728031219832331069203681183820393115434582181922490380264854571086271723913889743073089831865644221470761449714884612019073591672055585725855115827222676840329640258741533583212751697696003089491184682526557473944453600364793043164373791315568390764844492803484946165256993575084395818080862915663151240756470966330239073781593760909508693027437665432302307643053201924968220831693321848634010547562417170509966471908483730964293389165861158324975546338294911268315894743472326823089909574740440835485126096457521103794451479094692569129166570048682944309066999349057485277636562563098246824626955574865213300306254996720043801286235847030788385590069334278582320797676708587316253554766194247326136454718818745814140350781877191755092264508028384198724213487315276046508211876677265359959704126072542743414332244132887404184026091994859505721627120067141492654956971500179839258431407061648517250631085821065173232180318708236210748927615908021662062321450612230108918032982795796298851154532621893751646518503938977558879858296513586119280790493553818559115752208248058780570835775850932484572688217576384496967454940070167237412433230469768692091822132717514182451975111184392239895438169457743009516417619648645127384014060560596675864819803157910538877186576590602037794365062016442190601568848984908412462614407204474242753885614216215735973552343752467436133633803251077609104575056134468714343296919525178839127545406031132404591485757023092164614201492892747355811648537127025985849698992312114073535073167577636462576491039723303630830776678022840684521115709407011417729749679342710523977869577320126242969763419332367544908187072189734401530888406376755477903047597564726388895607038202210070731067937053460851583366506574570657068129130192899062530708380886663202094695821635389682602412021480375653797345899132706636530604434441283444916439223655875212391797909750448649494654921533742441764222541197998032642399517405645710943425788853601283284195538508988155075848299383212378237164453618024921092386064472818778090841958915957518389482809230517159563735677798779122251871625738940220013638566363676882039593937879343197731013671415536237546858397600800868192981410327647592569288780153286503409151178689879903712613003190547035182048274410431888187949725531895867259620636420700220037038122025205926358391672639777411919514140074635364035559979743791957510095429063995256389953892125496278826307212248890361961127993275142150375522298241503684920913190118979835699250595799736815945946608858283346477641929780459581816829409555120349131203153120206588709258638035871025153569707239342799793831523650002731086929425359280288279672297209514923270727110776134456026297175161376493463031293286423882011532310587337262857293110233007162587381805270171212731047528361470131408151875658432871494094156279558200076466051998692210444645080916994199035437162110630114442588449448421002195613976870066999071818104916691504463688752119725049568979385318948853008725185579653242414980710506207879969530826221121206217541306055213698461346397711276849169753600954954817601921293194227978235686982636800422503437531418404199831925065612015415365540043184475767542661944800971476588136971327912946918144476224208334703595934930716208260812566531911349666352207533527791503551807970346724481960570143690475837095639433082156923527478838012186311502580813286234502852966899251446734533330849354607537052391797909886762698283728840790158054240635367901373774469665233725798803916965883740836288165949551785578631036377312185013242248191598031134269537579301726215801473854139804858773971053841572603295814680225478864572937218339072461413365447095052720306237851724171107224759939654731383854050276476970009459344921995603210195079068420837910678639425601625552290913946631043808503316345639945654462991499014271855652429949906849287118195553436849772514530656886091222703399966166186005019113437598707644036206755447175791118376684034331758131105943767683321816417319526912174168872602212524084274928667915435916103292380395952517778443230687093131843595120413637465553827881676958385640098168851431705714934306535006255260570974637277043347410889412994887762048225278217310338937493610660075936054314622986106702337336832333941317556951344444656992428659202758570291138577332865404306807063276444287610041084054827554868928178317661358939491407972245687381339841438500783214475923277144361089957401744405895098997393171664503557826792741585130732008923829441688928441029442313699428789567282049896594083766300193379846056226620808339211468695458036865720128083383360990715234083018894973419165620813595294596644014740726716122863181215390372875274315223225210031402398840549932165779815459664393443150107901420443634080830461268411424767162800550487058626444869677006476544949134490874263796855524795360646713824874483503907625100540446089103652914963430461769583139275620225554099499685999936719021409898559441676668775147959659731470716356059691070755059154850444969845638040091755461953611569892154605735136709829700703659766160387125812977315604867276798354529728663747826120932236592128674831597801804756205454974000465217914011479468816417632747014870282727839329653728120719479513926464222890651919843697645310820482830713611354128206484684823755869814366757067222009477591467364131577402924045879820534781071376297330931982838728673900593402375480485983161453991974873346777396490311173699288456507725168220875353345212545002838186317977434034148486592325881725837552141308681836351161042820455095094447009732673442934914896846914786011025069177198243710715717108404587359362500134783972512782979020750779417522149491041737460071343792752867144608963325191443706854859699352551246425221855650104957910227400898847494555747514670351274001374826119002447189376612440214177793824410960598781308936683994284357774597651701180146557550887741434940370093273380327415795300447455649509545461317670775511737270924797848800379778357683589242259600087665415883631222136650476164658658269979597445299322901548155129243866603201094854607781855218129059941346182463960537648396848395071465180258587410699342936216915725314417745961105149386955450651919835181834005233032224751332096928073977784391021457796464727097316678131244226016060070139964076156227298326491262587299122071739787924403800693916571570128380501380878645760136357880506619059439968668702758522473254132150335819652711963028847296605042664977808438744978658451386159249620614727651278051703878305535351178052138127238238995753494315327580136954714505538339400859840857634449509141960527754248070389772258347665512813686605464596080243522953282267114745763943582391886879871921706705930933191906608201376078723526032554325860010624756958846193275078803648065858083384423349041691936599159867015439891124551465086374569985601155512085793555625393719892823861256949194961000450607715040820080602661116171363730438583357494722652476509663854541196782520835817028531788572761230692998110829022222132701312433987377848615103802892946576571639472366165272238174420109215207307676045385501283554390261353779150103540012817822388387428752023776806322133666535221422682929199482957970419585327860075271577380143011976877327037853491667668700465938161401468704835061927038231210225897433696615291261558554011153223253165850629223867583335358670493793373332181507850440901009198376666014020529138465037948173767788054063383656269195874459504586591659836569872727393163800343294326265515000242850258176050498514619361170264743974413117917522020334766045457869429800774669379544128301332717774404305399938894867715640202749678843020357121354549358372224496528803354330880878450525483870336452980058612488516577492968272894182991995066250721694781797121961546870900318953660155380012930931531001924555651031167014121181376514164846916535862672781257155369594013535026109372453250947749851618678948459578872811175751236500411969861300755649833659911288472837257986079493821576612397716276023698990693236542238825470750374965650279235123100881510912272909282291797752265288544028289608225787437843576093478988097381314660480593763300190108320533225042936208224382501369722342571137783894106457070363730660889877482122889044649811267955404676847203872638823762121528333829798040952133391916406965568158034450195654568569348739753372625641606548184072631146301391912926457504423939947542061543101911297840883451809852568646678335215081434798278694451103898192629199190671995756685003586889076250224831995186426661601449880771791348441708675026483533922083541155724222230758270834406580899756881513997506877577803003219685898723624109856180485525773477432337727000695392066582732443596176307351006726555653341363346445961752647699310407509875400984281109957673627456809542974981432989949975695925262327819356979132486545229231882850691058401598396214578377191075971306726679367586130765366758998939580160690010515985134634513350546986851463025179969811398455883954727648000548045058576831333772628497583559246198613769702119769813657734112546125302697709516535022211661824544345976029279303141585761579003997853687805411849710406733884387085310379726850864407153666399411279696939015236341030028392032175464422081825422362376957833303347981963276120599159851882326103285249234303697116542788348502747811391668835351507709230987013649914241750766020794501049431213448708483206210800746321516773337318464019535319868460607990337637574829130518234367957678357575662618667591766256921139534606039818408020678628568955741835045630898323350520974629512575310581678782281254727104895931453248902932087844488233068546054160613880709958411411648054349763826422005071818790415199458261154455508569255314565351291347548440302440460050265669104980261486929815061654513521974486155089606665049969168547165509943382182095120948387576440322609737692454534722645289225614914652049219798917281163328432779850582492359579872395412904658123608291789752413365236230663398606256738745851114049242695965722410314071485109736451282833886197580228696585795158370277214161421334430452829269951804285722749999899508804211015372049787166048323552501746984730510181996045382673254559082766436039815279601091675947469283421317901250821504850988084354899247625383092304340028190388734913588241897267870783032274418824360483156914154027514529880749147075813657496152966312159088745490980774787126332462513490076779460212945813196985405004149349452091089013774632401874621578826815729373861696874589015343037837392756027972067343216085505067274403684959063940770614927621302563893175576285564817329419960896068073834888343662294436157716898089849439630852457525888869338861246623782580863625415296099805734164033442120043983052504391662693688453219163933025343970200944580879359374017610908352487132989093909933099153996183239366558851234294307147021778285031551208101879875013149613413440453122541285653608070423048720254521798977617303350011592356214123957316596658729630568576907722732990479474191725290284695723954614788640666017315965943630411288079050969297388139049021585276127509211480424943389252057231214115820480128808762328813965244212188468193256427839261036259660023969702380133226731241283726720038821845724353054171317705988505992491708585613328786232714619242332777989270831178906358840426553951125472101834349824423740440622385640276923355978050694075103941807863540534551662839331126651789436949995821207539256258865072791478152345684865428268505638081034675027129596221169710223552016393959572016848928348942565188603892273973149017255116300238980535678406030478599091883004790280751475941760399519430490260748267752752175716603656752804511844504828945609165478392923817344202191848973223751861215019242830297676714827570158156902389319180541258258770941266222206883544799835628118190095615199413830720290230866910865766330921580276680028882881475372337623958682821841906597041474666934327391281913806382955713176070295464599858763317122594815413206632682746695269150848355095648508059126211310764549989404998292962325865960250398167234954480230081301699659731694420667733207074816284809794939716005839954577281556425549250173695524739435084007877784079403919124901715861272735202484114024610594587866377352743969221748672927724005338014632336988126511810970956229790255411882375812925107099766305721609209602740287771954781484093644624021489451466286300597035416645151348341390841496647895605416722972771006262169777765565054592335269345054162909317443239478602083170880714408128383619185764512271168899070367792983510896902683609257723099195781927044906939536567122878221922559667903931322242642558187361846818003826358517252801301252379597019492439254009850601902598028459116300121429565666699747108562464668329969136482043345222011747034056610829460354413354652027490941991548019783628995959916396047556134530227641641126109392642684710841038087163617928323805841103427882391392303187647742196892612350326936615223988795380999524271099613130568915079174196995575812244278719980130666294193355582964056288874208899701601199635439399163350713468931122184252221168239540395060409466448656941026744614995225925153683013354541374268238709485891944432247748604972275400277766693182892844998538615963270607891381366338615293053639343285785168359755477934709216342560317342058994231274236565438993157245071976636281324746016576719154500391530161435935620430119051915085857418558197042942800046540970555357425698499507084616797227266479503940884796772724305615469227995796182938737989286427602563238348172837842769803314762264712266463343565472271333163900359358038715276909654160340320321457748286999718401832920339943137633620123429141056817977331102037248428105364430085923645944211245463405747048067683090137832587660619685231214257492874038212550518008864316960831974928838225888311177287854220974646129406151677378244778115492433227407316595682240698450848905060541537509652416107216253431983662143455788209329382528340304840296407884834219030410181272169542419097686319226495273940029392592403499822056798301696615098175162520701343980062329480128851806475535800623382048015265994170302071003769535263228837012623982805625126918308838823456193959546313649190536504807471564491011588208086308595908850643341027742616424697848916469168041444933161972667171953234113842674983945271201203895581908627296873563900354846914408592621507818904960851850297970519469544967903485006963804881321243406279317514059372640447977396919908782770809766873571313112466784261842909914455384993413732769700791299788624605849205112656879942820107592614224004576070482716586716391826584470913562529988550047913590872096333388452708013613457845187179919767386077051623254969494281293555757417677126245660396804680098188776105443922000930344880624839562294402997360844429626082440244928443282146560359176598979877624959579522098970125636645417304471068552346527676577724586947068640003436471492229775031445788539874095340396042039129531135686553751366545473393169381499167206672183856724649490932303087355606909380335372306577668894433194169077272894654925148805521239297740756864140798148240056295802470104236268698539620573685692976799245162482728837971926648408018289715670819381794938693463320182493556360893504995962201911707343552472109876390087200947226023315877859599273115200507914566308062713619732520217586929625010718544653310770144023417949644564695472024100757211146228291472573372617567763467463128688597152221526781350728992045431387965622885376613600437079481466121582437608026861315615455100782960956511532268902768473830545337409037654035081177292396121678168706163046333974425838528822999648890938890625391757753179260195855436637478411711449794046274155900202767877536353904834369937049732509161915110093026412223544557070276331668326119934786578983597809301083460870855357820981348361966112534720613163781288589904134843069583309499605201053219737356394577556583476229581847673065244638538065440258452241980396269063265989298450899746037141444499309810235046719346693195609875397410724888961362831717178591364144870108785560621340763691749865217689212917357924611025942826499335761592762429845091143856726979761140637836766993223241917365623301341768174953265604237300483445161516793818837746919564797341365275655361736346041725802648234322155462050462753206383242097415269941617987435563589700764489617796785724730418056958634299388261109353887841521234473747526227356090587315487735858313165536722836097848892673587489010875398371738328273079523884483848527586963768138823234190201713719390411722884654754645013696310327561880972834614191505732087157729954551102453809681818687496692402449619977729080867151796291265591294544545244864924038158348000910000149946945568496831914914853115821638386547049883821476013014373263636782332501822280410611707916804923830856214625546994808304232867062258033183982498687288470476592954657453984479030901134882668887017868255680600355590331176425807152831924204469330722331033857106644318453804372402339310577424059120517788593206178669677436212039509127740712284571753226826897074209643669746666888271199489031024039131165322229962440675283144948457532715726812348264560081840437647865685381777652600121856411549173456663641606530209964087598447944077059910090030360452419946640792811740491825458279739719166380209426667355119704909382101758581890518631707892601458354108394073945725246641563333150131145565544424947808371567205924869908180339015935842228026475030988778228269439866217093672024662059597578664981030087506663475216881310967428690489819910050518298703302035780556226090138984240539982263404198398002095206538991918546157167680606521601379796976181411352857691454013299793430985853246812077527916848752416758584364200371590692392404489365369566692608605138623820104970513298079054635563769016312388828035976929681583505864074370784426934120751678800178215386622574224511191529206508844643541325961097659309121817679643427849509941402394934010071793979519470602728177835306378284853352512765906126774884224226361572856163861255542663452884745327307854328627658117646663833319926766882611743881809207325584250012122868778066769302769476804368034497139380409684640422272009483393101174572387710150368663950705011815400230696629473702743325352386280618862203044205221760491381839553850573041718053409546631508289862452656432937313851152743338151943398183332141441801401161984037289889631786930285127748550795305510325250400789782278950054431077225143473709588712697290968295501309990293716746142473343383984696288934401907671475988088272173376168390480120217157671736491812992827989159887863117389910876238810485804814996139892949325821946167947553390006754005872488582706571811120503663546530887463517012985991889878165599555378649245747853744385976966569892410596881146915479284135566205542966959940560466657208932127042978864853161972227037388269818173496949018265055231490626670275524762919048095012707470521846419424625148520937822185633215696153979914184053274416906671088498124166381313605700166578727556383542208044537872408110034305729485137777320329788297567658256711709309013743087528386451257039166769388938068649652625606849808061807010271763107907317674887854634373962888801013981808498585583228222350652707797610635752959416127383377625606267402494431168731872514981620257170887168185207283862658806877313780921551434809200768140580764110249208694775470854009104132642767441132207667651638103532543771454293526725653827182835097330614836536867202798880793198760210343983069242636814470185623543022977545198370803384590519890645442064292388204534797697219159877762026166446156288370385326784139435443271495206150058618071542427922285592238203625516949626811560930062441187354121224689264331914443884523957692686866324835267448639566098915793192693066604441675689439130488525729882568193405047784331706988644770772345195158239741605059087150925491403009908507969241696687663922840789446529077814572499881931598790975854157181295456377135097471189415217084695261075375690840702435065074138074437920803888238226616195236065602872923418611039284158963127236321217780270454375078393618085807337038565282733020474961182881706660899487517109065845449959133423639646232629334211142601604081301521611090332227337944793666407273076946607881956675734570733492039175230474628526211167667673332548673879296214419407286881239705977236380589254864880537863415371577752497195356526937218351993796123885803113590035324921176445505151403749898706142638862914384174735157631156307045992250903023439035652977736724478906528697036369963624709605390307586406996236151393554646170120388906860070029007963648935484936873117794565037924753361677344152953175968481860792480997039054760138259056051880455158147247170443105008665338339458174313303012483136708101095177477735646080431923603135575822617193131172216305858843003475616090679039432737954180443792170079224271411801635688889427596617599211239404506240969665847477863352952725682625215671698250944450974789607681065919824862079917060571932707271833529264132105725369111147586548225902540077352992425151649494168283837154009510864603990479968584557890513376285289335619808401791534682534760804299075674014569485334587404926465984968645254417034384563248186206261557024335035827261816154822812491457566423396064168524346801789885294337601704031620840837759340339339259370674335681401275308837793015096812113186080714926344013389225129769403389566505282846235056466231893510766144256411050139756882592837074228988797283804481511818648719455431453452260454368524372378524161600595419214386035071471072221777202348977750951502081900535154546269184115395641657290318451272258437725197385040877086079986593976986637617486972594309835626730959662805250577202489477085639046376978866046632972931042937949027175280009086448972876786105875081576320964026691147945164871732566162530501524057048987576794394106644191616357994220480988545541814219337501793739579199789594284368960404520658904213404062556472876007266139578330193825125832674889232608598819476025166591766966621301604158041829435134251630707013380171180445146715492113250487815170152376285703538493940296594557661472875879329242053341404254378218371071017405871389613000727843591297744136173505995331731195040740780734425621287538969255504227175193351934940345803028537722006778266785733901160406562060291045297544289278062523156096321276560801877965638715987985559046810571332962396192004331370836249900260440414365371435137443005964941436733175265896303984809158273807307599122106566380865061154750037637566882266081499170485515025902153197882382153701790670977970264263206227538645249360689741544688867517139017779204511973000804637711286081601204867234537452296675404932774695651833524613166567480441505179904981004964862464519799023918575724907015050932963576028245658051459224740360517861066583107338198135728910394137322793780057222662246259058793354855111153732977388807583288607227119521628390947017903068669157683472797023099888824454044525060356836016251925372860856491149775024125445141788098359361579774596050219095909262624243518764082772314867672379441713280161330658967754401654778990267461309976511202638568854185825881664899505515262306938338375762300255523059526608583553314682945266702086038392319857095300136434864438438395850490857319461543962739043342742052338525675873874503096960310221284199889677613780918794212866553669477177263820037238173656098600667648386023132529006089408792082528625454369457359137837422169863974707609592657195152353512818554662394787199707372041528895322305194263113876730966615463564263864002803296392631426790818628907203219517737818277012734083836289737417449051793752650575526216265796150102955452989546848891001303199847134214816213396012177593963762170782054985320043494140201699882051510828768843517936697483614143313974577039272945104705236808185584120237728167109209798774363381201048769002040873585388952410332932350015207098680370694958794101542855037716637446753303879881620495518245260127617890730790537465636792380524930930635760721838210864680059134703439868530160297593644969302734198931930921850259684077239724096315596639602701314656311608969503423571602769288740479327950733938374605805079922427992962779482110286934660786230987304768191049117683697694295351578821834372333558163517957464059651426250104709395904292189346531210029764929356353775256525166586737079361203712583611816028542913578761318421880741231874345635134404335427180535038866509715426144179041968642928123699441133342477628952472504273194757918831044605432694469411689958849235293762725378888312735871501436403282818044751866959452442318686895657392387868837862123617189613659994823166416571130427685369013541553162712439671258931060632566565308099383664520872202211314132623747437428960246010890301187211816232269108592494509562088998876319819743356625310795976316779687621951548571620100680123095124035200907799344049142324639086016788889080868949201826714854596839799573564703223180308456965936207580109633467394670029244167358078768017958781168167118267965299440566532590400420615652146464199434479454780622591360216858592366731402904125204579388933725036104154318578486762500709837025990033630026522592937500549099497475848343105155605549451802870979930990463519883839438286596627056232729379089621793862226855072637385645294698816018425296447278883290447293464750363578805071150878151703368139355530685112791403500918756355094715887278167814251450455487762440421136817487197041018610399031899477718800710470765466252413143911856749824685145613451036976886596647946312089415462095192382569928815308647696689496874853583781311026526503135936596635883159091739735001352069682377004210958553406231496069486843707080293523491018180040505336956263683484994950330653322939318854491517609071496576636052260594287567836584623660213374720573460771342743235143501326106721874593306883571774901137737464775364349978893107503671737263169934059820443993608710988145890356866269963890115909823895685180250060463470580141518278462707472223930793357492101032115307680658696399298507250401412876725083867037018856156622772060070996480682849913628472486567625723284723354365396666383151561163463726480396826679140343443077970388731908822957932173035372370231681499751527842219177538839964057429610086737967395246132834780666349802261061265307637850441503171958249860163197930389164381192608185407671089643722014838984927280042561627988354703914438718065014236217991605164124121448906676237849993158416721790749846925574856770963791622223108468493378443637147585219141428924433547607663534978710917062871232640103453201084202500485019607165983245540073390809582338157106377218162398933599258112745225125046685318093177780432781110117414881389765852072730546234618283504752653965838932678731016929935022291215777795644550887896007043251686297682412517415433386848548017947946592315116816988190363623162592063691243327215637525557954912872764683917936063072820283322463990072687097048959774435621713697563204400744208428636158411408312407342307481989847501817394385181855074357970793424722504380651673843570364312027961431725393368123402508864064101361568120054408513397698742315484364205881291843211889505533417741043733156477397480266695271269179291667255214785789402552413647966982953319414431773924536386729484639418738008900576964277669896532509308413845999678424557567835019214418508657060994630758635772276301650263605109633582625580130910468325386779438005184367307731167152438695560117203389606423399211026630723394187172860899304254804654016729914727131415424137584925236863391780001423830519053990529490656453649517035832324883717389847589319953077250891736488677770077319763873168836096910883917862374163180668673263853941017068212036701958099538948699825942595029183214331633719363875019830251117955384694453703570632181329112276503045282591565143664352176698762259783265983534241882443467258812944356614488483370612610183924914076493095721555842584487935952797330488018996239071112617871323202630469628173394776605578030267213873176280320105197163096519580284577242527452700862873437794592679496183996546854875582753576652214340250689012124458170389319202685990532768862719239104082800426266254344576764574691303650058068796529920083643061159189719522238703791963523394283562718473460980669582813814413123768027360698140392635731890990688111623561021871492412834194110410647012664724889063523487228898206121745542187128283808510412165572066594700750462863247659060772224945161015684914658899700301004719755227023856832186093064753301901062261039342012875290792638215165473901457079889322491540093286003740123564194268263159034044298594317350431555476334264470679648184586304722580254717789428682696252825761996640235032698639322335616840297355877639927623180791701676701481777808101149597404913164384266940567673902843045277467818462824292545857466414018347024585500883056894905657061777125068774636763504067914094007981364281800786870548224285084683991305522232545747422451467450979460738753847831866149967087683107163263804737908959223945772552762363039875043193889262026090948119611602815091490318752798031265320124243995939052502260587763414944122182082003944425769115029558932772014573302558348692856314371207059972491317998033426361744776944949093765475252201483454383877593910985433808544571462682126038256634819749714487227494577993863145038563138138249977022305340091488141448775985826800112957004142513097843955806856755310698779414817028958798368605609937279493184020086991428444326984924614115437684202648769772824191533310728802250082961854927228608066030105803224176517673583220732525694596774633267893879306354582171990582051130213172519081566410946524462335354562110051769031421682886914451597943362905991217359098114033019523606406187226929546684306744980659426933131195770494723741369727807016577773135749622500757314040069187570260742878662680396197188489468926609371100188692002723130620355441595819239196200264161118895983295525245307746192653149430775466142220423759716924302385092800089943442100971656696837827746728192634831295073220685493826235706183120790099984339379450365329913204852044300514416667667050859196470703325124928619807416097907275853956016434974913808811303810721518745056096406608519114444439710856481679688622695123883157156883013423878666201112157023166611874011185987066975707647968368947676378698957291276980363825123592729096949970925725034233585537392999632475304575532003016735836459597638642367809143366519322496748158905544917272243452486436518533749039609395364340523842248150821432698387922754209008393440227115550909686516814425647909586430775055573753925043215607272433575960474929791256019290597700428537335102230062414217035782861010651548105802728787851265253987131730293984252051454220712180091725754843661150893552565249475309147109607134679780015001341906353132692557905779872770676242721580677176194580080984753503253091549662591974713182076768601157688808414146095625065060799593837200165779450721448738411901864950859730986161048264018537383435689755002959311248797615617338830688571497373392820859875058948199625941154416200150023602910297892357338721197503969622959555572248420905834985199129531543983429099471101877458535632511024241395921463634460578200080238931726516985067333547484881956526935859215955505347548587734688563081099250948472817587287404688384365843475238637257128891441373071242428629188382431790551013997657270174440209893288518441848446712312319943851219245351375563535636409148096342716492076451975169164691294597306219226882686465730477554181077012187711832944087004259672386637465059410656655542163601641225647186679293847575268951400574038864190401393821286437971531055381649275374547768769583643716979692781025749797813963779364308074934993374377633350591086531746092891853803629648822319068540216582445631273670502186100786135518886260777315923265244467267638452195440493780809266544958721927407478660342215600384329096787812268031192884449186506947659453446777258312377600566754009022491142379968342581201530672383190332985088917151317073121636849704959830989574492872882096970192711957831520142905316303239668139511530678523423851517988981687688274602824043658468382309715927546322012047091070602084331162730698376431967638694800345141828174157052448001333127073962471030100671442306706420218285840172378681882402741763401196779143983360860596370965398384463790411193081429614206688885746706553542140079670895479519028323764570236455922022199529856964204284823904966192322880734573793853869995883963041919252413579834394080277595870675256921541229932728810636212134317886806851712261023060398854412753091559308897784541253577243327252380270326307783743729414988390753850767047896021306899691741145169775196277184584190268890370863165558170134098380013611988753005023440476997739468314717637945059108188102757059798528571539975030011523718272680852354704261992024795052433739596831814308164356334381051843267086331781028651153731118106043876316456884868775929488887761849932015657415427001074453071220861986141182771477980489475265071344100870978410548354301118324771350326650051975923782898856868097670119950046953626819002811029456162126440775328247875515584284709236443164555731777081098342736647378057542125888421239564117897257250222784979804071962579293487274219299320743833039819746334263107603322890991014882730849040822438937195765792038697362345173975788724170291891212291489928106052334324447984357632286839805623014660596052942464150369335750630432711092440083204714845340686946603245327945736950850283405285772849871054667819152285680395386094709525426080512803653123198455795165796015510207105584214957883245351620633419278050129963885501105547809944127331211559465242462470991127419699469348068417978710360182229651785064288541433244590355929891045988051012182277393015895102397812853394753679600874815650287759994417714857114818558294409086588818127607461166745409224978989950829158105054876982730308051332913566305222783496021276466954515322562178163111109193525706701154361938215014482302484723046587150627889215483227389319871159273695782082494945728361713992035671302787910544183031581761523366642459545798203764668909704386748268058879630391738965504211487245407618366248596519764439177105628441964081337601719420281975153877376794343248042817018647026365373244983133217910645905998816762895634194497071057569719349853756782550097952057389866889025335403283684464731344115206224340588766466934237991069355389554547277470095869639252707582894574040641030463903531693100251827956726989462820798632706107282111238043394952389208098271578744965465195383685370606731492825945771958360658774302774613254050844303688357012622680772231826838576191043193331409207741904039344147784815159515099505273122142822731218739542055391395407473038237971822026392272319517976802896931699730011381125209076229655014149482218259131114264844173575879215976777572487599255498723023927195978813384490066413564929826755818982355338334152364470604118616835317082038034345017866209848843003887711908062023173655858245995324483713077485949989337998213511967416014770578351145240973099328010084575077275421706716688732003466769572319513816194978977136916742203180543976343856690437860951130150545583448695574482725354311327033149496399994668004671199193101060371309722543216732419231557982887995589066398044771338347584544525509280080042519320518865937436749514181036430807826507458859839226980410524581818212707104477977226262170579523191030608362492586912034811502463596364323744740028271745410452186535601784625585426000803093329245584363797278053405054228106013443997820923628677830561503428131519217579141639677151935304284193167534534287801943446523969904226010898371086414873995729667605800203684723507048581151544258042509377006942385245565399885724632221625808797593209705047725342424087895710338462469237752045248024829848911401765773442424933984266658939081097389778785679852686800367772843686451041845065767466818106698551637178688463664670646457557383007831682466811863145142161103597023785002970500376161628848015803121131559288587472078230094199535768554759074438388254535770019678271601782585440826319319835079021399835112465857234174914870366291165842185918534647383136511161168855053777015412262907616628478780812561491330869136686796347675160006172927007728210865206535419009512344507990539880972161918591076678045329070249253388560096179130895998690156270679019111840657682055188446598519666579409673427982287156264126470933978130387396385583835221613207527444175912539087720682433628653525713054291147233890076368131625031144614968263159305566685962072559554299244655887723432066226698071389278513443737560584367616144248110707590150356135819054796078694607901250803099342016090750728604914045232490534416052097573941541202968760578895918690976813485420930880192906497913368928354781466958011765036014888334037958819381384596131176138981423581587620467242944455196161412847634380091379407803233610265293594853180003052306634093658043027421245960166790375986862643040939155484093769119669090356928451626617062466522455867548427928483919532462488086511233984109469162458122450394213701908435869317303816786299930565863115240605373421220253226322425870860135613134219256645147969865885362689796793732724830937631730738273969713960446311293413546822557398220562407498853231405618712386071166740558259531741098203796184520061526528139127268251838159039267525011823036136270687156930124255926768157287322347241703574420717456836224937093181609876828109005145131048721845343802246875484199929232348625839349151889941683715748988378941474547255642123931551684444954776379132660027466070766754506493396712030927448907006403987680253763433374355846575717347881875431880781972319060691377013613451175967457593639336784079435482139878526159183427391756080822050727423479706751273151828111541319433274759469598286194343180779744100100633300279072901308917420871946414457496377849421926188338859413298739353957772518811317913033999810495807577181404475103654694807241388089504816022536315302813302323594887002168034205407009296602343528401808386248442201563149013770759878215634630047089355678879958119064697325157645400374548468423754281638114975083791779178560814925718663751160818958200686750552676837942900214418549559412036714754422796618983807852313018131143040853949289739694118605480746282642380976888310739718485090495738530266497805270221892793985201903297246835418944465251289706875679062875966049950754582337996513066353695777584107283313373950672612963019807541574997968257310070603372443001625832046624690483372783453781565911518207158318777821918085173999763482313532277541864881114068871435488270696023516798427912991530839472863954586473289939405240927754781201894928411969784334014675456657082348578166997178208646377393716235447684666423293997644489960577004942946835566424071125854486898958814645282302906144945212411463374059067494575035336862828067642346513481057475592338007703683410771034166439137839677330675151631895773590087767081959066073634083741081054910838152613282052410834686877188751192085545342817761008919107083984559330977533083694932029530593290978437653234722148470017466653551268714834634583944131037258469346254069423741505848400695908677161575958728051394902871550011979576469383343547900604835330826228252156658618571619655310696357589441198214879753479670956485331508970184690082872977371957514961169494424675566136666176022716383345455230189128967739548363175460558132432811073288603942080825120077565141394737403169688015070742323679094967920132868937469730964547949014799356643033422593579803049746907858964606422218298535747182963666773848660021429114551862178437023326244742158942250492261423792884228029007347836550876984014637297220485613195492180514727341578911584186816701239498082360557290100831881987685600477507312864542643205137403185150450373787996781943341096970707119730833104311042524853018594371529054840352118026840281049904358672674924376020273339398304364509281520875642835311447806118854188430123895276262897553816566654144004027002583756417372875957843428924448386867330257638486061318586096820876439781411507731115323555572477438471837067595472311388491128099099956751786213587363299801009702636357450102841235640761144847535555785852884366320927567613889327360621781185389131030778670365001604273323642140687848465784424900247284927682080490645731511037635980143013027838236697007954878170459779205203933215287408457074417428224411747424336168313370433892969260534563250641763683051646211039590121547837938897818493567016214084745587745710096968910087788628595866307240485671334315753674207733106952043508828438350562174488927480156741861836959498350592498025859529969953256312335100758521297837662046017020450613620946642161251479788167498036983491276530528062100773329490204360252300880021619225787802426432148628450090088452474295265691192637497851673592125763381873904398162449841422498676815807432634125720568745898300822410133671180754024257341355906347384084332518106973430668888110770777280131226533783761371323417138775325969393978365305270447686217134907387827668210789510257952012832008082565326180443553863970245149040661846464998273089548116911807750543107584628637736717502580974051521020580125240822673400602504714591049230987920922026660214253002197744368521820981437074554984824952054768481612223461988127411423755676393644918452441331913293701402366271900070258803897604957008621049370666392003219426475136234976569914461887977028214678180435270298415593019180944395095484294882810849750392609272091989905768071293630597982343663303977720065465434723890928026412518064091671155074514335903184248377494856568613109266231939156737065601927656341588255545404794464933770508287023580502151726526957394509508164892378671260919906398101413885560220922700779064336853049755109924472978805160202653073556804512046282027129275323278599462921525393906410812987904576521525038340406468099881824673767990588460502737127194124413600923425087197361439912900902852626679616717340327239748967001774405895561422595327122795686228990598699606164050419027096642025727753197743707934270505183255712783449627112298899795245609453673008207684667590394202931976154754670356393589055813792763469583787302779394833576903497456161234626980913761154296313064241785158071254733045457035317904422207520570328334379576012474226420524033881510750024305821258340529898500181895557463388996119664968895526270540657767691094427222159350130221392977092123166716647786502201704315667848085480784333279751031942018964735861954600781996510724152123690440838405243875640534089418451962801060153647017804599075763165691886668905370515861962212826757400355674920566661259255392756459877630597271013256016640889551531609179446737690032285823244617528435969168730459386939248645658540383198241731063321908709414859652507270328310978455912638019699479385633098647953531467791522387239393270585478880528559294869653220845178383833664807087050271567578732118561834609136045917999125827423143530557604447868508358011752665731372889414512479079921166259175380355834186512952603530342632691351331811966967058009716242691648572569371462292712089515383964969526300909564919155561577502790965287635619048047515037413359458771813860258414062089800139286174948097962822313364523006519264905149455087441114921177755605019485858864561531487854261742900860163587542974041447559838161779949860435623355454570908207440256717388737051700329197570840310702525426209950592559584226227335896293305770240068020284277982829857988537769657082759043932773211688019481745305062775546448116161128088237987281538593492900633846727261300506086195409837396578804267120156335655667888132707779375331711759093413910419919395392400247213908598828024684909555849225865758272758250006811563888154269152323217764155967868276950497903466054384276633773756225385338597268189295678551097256019996463682042996500186454680367519516679284439013935099908684611138536155975977526131956942115714990335476591773650559035341175990478871840283903422483517254824405467290660755091786627468208637040937521097342651301811688669254695626373461238083609584773015576865167622131729487765354404502721615473941422277299850554085004288438113498496690373161372925340833328670544463645412118357722735812950910793513951470624556406649955669767687347818981424471602936504834662065863445817996892224023331695016990397343077281233957775035641139309843741570258009900613640514686195265533278200290077818698540866718453145484355845864977990746895962914239298222324860447307741407240279042413541930360462820664834229484928034410466939635179210534066396016218601782455952144894454544120088210092586069501288990524466842768785668245310743468911739285884543586247130465242878714874055949485806426040168340219439364903504940698993051986827374428015532035065149416497017569644423594484698111452928226588859739453360577344708413472455507450950740097716285622213682540857911859998789831090986338084131120870024829745786269867713989223066820027911036467695548193374255556723051615817557288652590004110294119558824099783851905653771188322336918255481997147744743664808865355919077139817117130115529409691439508170823133599932553166913041358192290296324927690185741493960466119886923131452539752944018647275065467503406429752313936035717971624773433646415480086223306668618607266499807176515282737853326831517258630862534594482206290900252886771935230916982680602250623223725070508886048245030910232775731978534385525681383856635252862042809611264307895339438223036046241807179694569920791089107895460130768440311213112448152293620523155492566786435405263295145256520008598963341766615247723181221716098075547455430258351849107844262040940384287632789233444672443000161628105677904559958556507822616902349913444382259028821129443847745352684801268247472794945136377700409078665945886290682862147329817154013672029288486412641901777034034049678497100619326070256935479854790610541044085365330765891845986300460356485611913511288732165747372163936427117263727705605196013209318772607513265247232456561235503724803392946384825221755554515408355070243302777565441613399512925462192547171449167366151089177078619275462365753227920773753573612473348802749573064508339934743956126277607213665009975528783941039257309989223767512854471987391441988299129298871092319296113778968633341302930300735144877126583251308571495714942630916949024293873887160837300629486083849297047508885109836587811383122991856677179931255524439409371211045703848083002474497769244408747315221446731348732252628290427043876095644033974744235731609213414531815056651502283263039017076560363968119465401953215828373744761045277407227526373179782854251668691879812061847646639915732220437643482839617105276501302518801071425551847044836497804367843883353472949548098684135504752775941863678214997279272670339531257163786974103352429308793016816424598999015042892132135539175412766544391077205456347309879787538371746286375051164851780770879827244699771558111287515108837435446416409449192420558118647812071212535411686227242635305291010594844440928674354235338502842961464841763308179395880006843857438904382900517989077243684923455046702021857492168639360794798091591261751035624549821880733278174580837946778127676234039640183567378464876955685588349326107253314225104313971556780402737613290058071368536163819888336895542717214624151492983441009069829014109676452693030083423441263719999779971789023988694018770809675060829684764361606756566283829915914744101457998320265855642525278792711433784251644629123869643864711375003812130755912494328459345914577302790523762156635827546479630992073434433937020244319843561274136193599750378124583570498326440168608371278896669928257101558453777903973222344049303219368661515464061166702957993907691571351767535925453135120940759825776471882691937500716418302049730931166203981119424976411537661138013986455586731652636334327660287101118304956003746439600157053938316934611129991003615114804766522735696277350754771472674398477763344519146801711528040497498840542576801017686497590480484117824987856140298261078230715417633658645697249640683372920333764239446919586191534268115754632192388870981113457730965067087375720654053388768633951210185994415415186747427275116633248970168530471481652635264687486247787121465785997213004177174502107496420203348934305303888816370139649716863979034174216971630676185774336411645760712912007629239863202783624109593197959839416812229966935946514275033244858752524128602958652547752065841471144222969998317439283270457888894623935375162015988296761092856217970650828947094462758935384613310446725286083802329900188515930031792969957248726885823825529747445431774238446937171164377292814167661668220308379136927495560325671395629169806684212112233915770562644737891919041094690644123102950575164254207939176492136317832965759841773403762957630406655179756013544456516875675326096118859945067660640671157513595282312622656807044872339143668544398524483156860655152943940914636553377802048062115907288069635505635963813167528412723909102427078691782807791923179967245291622056452037798673550892811220929306048364229042355620997024633382450055222289051759109619722484528326942012637646101759743248006543107015633784654807178563722632416711954804286885331679859441154379236663318393481665843694274112215739418962711880061669172104665025860358357601604181945688825000509167964130423942694376806262713422152774556467921224964180651012901715221746979055270975246140784175748948126299349936547701029390624700066177779799012720294272689070414890667445844402891693984046715130314165057726838566511363023160757188075008674919482843019290898247238192593532486161877165017957452188995175684468374026703715731373019297611961094550936782415316895354273416384685672034141888848360729278147419939000513540367612620345761356454298488082760250217875175451197929500066275648943430121393472263370227645276532824264536331779873656605829527826601383930905646669003065696250745816389101107286079858881386305864966129192207809161020575170034091122534311136731879002277455596298603069035793711961038152368787552303505898716850810380097894408121596400813706824027216231405859511313397698768866932978863490926451028056694327206763373116874000833217911430549378126901764449510752311502913757872157971462969825481371102135611367903440491244437999428269509801922073421943885552606517657876231409797923600034480415568157370509374829052880617476589804980524908663325531606912482542296954834657100689207000937284147013798347130740815059524368906731191753390642266869544150712741250113664677788141961078258361491971515556291097273739687836493763481467723143283352691526448102602880190790617275516081461268692799157983966300306929794974441645701784407085394843334609427368812977887355006489298655583471490555655827185649676843513178596016184987007328289232284938392095100894581274642631442320900392487445035197292684348969321525389015429413557950533983233100608127438645561860760214626431955466145448691637066051285646549215546391063286172638033934268421809569991874233537116613113543024784276373343698843736597334906171235307031880492876593587132403870415954992977767935131576149128545100842152807017874672170715821652132989709049839216114520060977408317465685601471806998962142121994793671686260825625185041832515946938580848441975298034011955193781386456728137168652643913720701765003302913605568113937558112700260083281023994096979147498450835962632822913062832942974648632149891007780095917430024062739129272178712911583571218980260114121949288572466250886281017545498360602679590136580028827937360528556809513783159580909317239832975759045332779527115044036324703545670464415076066838717765080023601003414620710523004953834610016393178165075647768528798510931880625175957041679119230599558549723088103289906531971163992044504636869232540009547326532854462786619202175447890717195562716481536022053926037916321925854898012052900303887342590101168490880226027256483240990730478828843246422501330532369653196949146015817250155956372628451441626489613999897946510874271321496041662178186883831115608494239837519930715412299989510356895481361589869278804798312922903236228736854282993607162743013586998230506731596872252693957902890696477555805080181426221782523695504208585760881729315610787502960850210236591912235249395237248010212716088501905875157459530875944170323633422637666234483959143669284251808130701650621664936061544306301399414886802806583839921995366771534045646295103823014369120094476671666728888874912758927781874377645729110738018071347420267393389776078688997744858703497458926812930477311827994532606377045245344044655702672799936825477802136404271349971316428762871846681040232324124925477023717112988893165661812256306306389904333181683493156287680275806106415575377610658956678839513099691735422976950279903755498728491490565495258631560058580432356203434098696007234004031381298558142857125947385658351167742842192774093355904937890835033697292320148024431109986816404562380895111355310476215145531763571387721372941383612089204224683678275913599868108239707833151106997631501993381215054688384501346032752894565512439329141153340457112010449281192272884527683179120268316746748688495219496007268008563939967871018602690745044505947768732621960619475880792189927797882531968979580622658298722610911654589108973504967185214895858700645828270890900015773639173632675558215469349669545864632059649049799865128435510567104961300239056820606975781012941198128147925208700009548627666339017587766837242545631877981450038576047291956679178383353445560211365928214654418377665162533066415914259950147364720278302880259514900639582733940380093494107240405582497225867240579616462485440429696409347071599134194196490114400912856034986352642970076458155210678470486676712270113486916878019416606999784298801341728508029122769697088781570221897115252564416021787233632830866737776279906854450029084218623647095848742083125140584337600671193814766140341521873033285526245128121870746812851729221871626977075951698045799046314754413124825038126555190133407444233672513926251155895048369952952260258454196755456836720392226663978390556188879897461124247872176262900568425042920355832023173443454037060075468819755492679806071830861825428499690959783059815005109873725382013221642214537104373056587592908360172305827468403094907456588195687412665024903893872059708192614070455126253622857960900134567188855432179103456240526989666478216467372844454375537639392546128601147029161229751106046538584075113432912942493666585017724556023559980982428246368859835885463740212277893528425473609137907090566054933372908959872260582021011920618331445702330376968876432223599973819039629212801026131662015625085396260905533421822827126107454940540397198635181825634399060528552947567835544555531914606084482722498249493940870274772506769482581793050914125618205823382807331984982900620997709858550537325035001795994282363427005612452139010917732274008276515137353850448860695144583307822605890371578519266778166257289189397913146883466828891557824382557582636516619416016437782395892508753220061517112110163791154132532435782838186042700900066167474515887657502091990198752632430604597290321534436569168595571649996033117373681933826013360785830116315533925624434553047544416832582868260618483740662414598952539622472568304479780866453285726624819863701312358896547579877804939862735662628522089828225944140782940299425758236421158819969872379226147143902521269890193915264765043762730133568162010506129455671490189492637310814725780659067857693508554082300004446712968873172314129309113511297927384025418872538864648675341436353746331137054043599267791875298938428996620942344075256541638419814569571758264769070385792729160668283118964287939565020033993524139010862017912216531733457736239669229896930338771673390106653540856454189366900796490104035853905937129149637486697324162944313782455378596045190157220833426770775830985920155382168056305009966057358142530193927242815595232998120429094088362305673224279504031095158056397284086440967033750904672054786455239064971316651926567672444991667034499544631875605024944342847271460927169264016979293390059705168322696134191175443680229026629161589022565806714231018666135336166398972416294419416672483500814538389336734879630203347459248343376825594445304619743888838345206541643047622857630991940566633878334480395218553948126666577335256374408977620475935428469314333549018600371076532147530169384294877311866101086697978984669743780483809099162162738622853840457952149094946425750070688741462302031149511895809387672899464584205846985062110727747574411223934413830678506162663257693340026303636244897802182240315539259967351536622131779748065070694345425288898295225343931391651898631859546130466506177054692993888548805494752439766978855352604027087481074584604581318005065715788524219774291493081370691376823062825390976881682549168518780229234578590122371852375514330358592324815463616388873475210911525579434386631231226322273933391198245710944471639750938245579813006862289972020934862061498178137626380920718173041135866851345947741313691599716735337594310527227650988041707384896713936186653505513101322312950141080152579771423366226050346765493748703757554129468320258050674891542569904353656776284437540564102927105923378600337723772597100259206116860928762278121764570939473573419427425678017988293083105888076640487723516399647363087072650396603142447387192299658519462742227930577318694690493979419813806137112688080178987421390869097377368620851400832220441822072778286743186785133164122882188932869028686266661582699673009806676540182311957259255007418771441016943173091665479082900593026816562689223794580574777482072497204368992098241526958881880545525099211054786498941913167338478209663167965053268662569318435458297289199088908147386998995738224747653278064860909116814046736773185082005037113350927524146338397482495332648683658242562098736405542647807843236706554598789992115653494408119648469928346630305305773490096473541293059263372212692055808463918920772280016600412556956069065190472723325415775529544513673491686745360745194601904628140847582119361234123584472508877670642376023564687436090423075092585448072746282170639179494298513788217009646107999986939834186959366447639559817347663107346446638113155782307887962181637034383174812209978326231423524156755128123695098500114064711582640924763436760055074349716164790738454565350243945531265621383719706122280784417614265060359331658810186870703988845207892361832630315150885186227753996088940448819932271692116700541954468515167287356700974724331448461803881984994781166657552078666709034331631440739079421781217048176806258824232269288178720744387835058359400911577762333080066026668365242285273738275856804933027063200350487802881866662413154825710705318352402155866362039245767596716984286395264599807101798905995285073772657737595785425967303972195482574424678753061973309977173580899993081503781570083734117815328901339170873300396217073398692160651745756515580428288755238690264018078621869673795007858704782964566175008152317535983312439285619087274347611087802977958734811566121030208109095881972451096045152416720868076006878496673937548803437991952636999492961277180115761926995795577958788622949112243941321388818338112553259630387182078097171962073346032564382368979562614869974501350795032632216744709191975691978828646584720378370384545071820683198283414751884229955415800445361048604595558359402743681333712577897201659634154233746313646597110052886330694303349038978913015608161102280534514128783911147810649645249885480793054343014320158150881219067650462686430695258423219374347195158467858048820591888630685323649474195119232334410467456000840693125611157204581925181175568402973001270439238488177890724911644443017765742557814090458167783686824064250104199600826348571199426965259742154216576698534011998954883272775746654115445393440369009104020241821639113113535463971878791402360804227847124080856824718713347743039743398953067905061342957197535409265508026063990495865875588102793402539632351322666733105093834732692872822423982344992415045650813131343755564449553865449916617143075957723580895945293375492781213079680114278343723909948880268760821403877316851411320141429488183023592440595840868446383302426862524271380483971376556506383780306524496523882149664522568725055252779104207605006665964169444627595539881126919999067993706908131008101310813470686957882423663099265835190451300619111240833108744409032903536117591125314013542465348960469551797425872295370898214964975759644562460032162199057090488547916437984774378359385539051973819009159196975107384141902303561524109114917501920405708021374391606610442501389859785731430135148900116953692862755574903082742832393453674181613970739709616454067489995815342469059650270725416779558919274970534782908291869420944892295414833439676878759793717796717393331864057632149799400742143398263225967265193098986256594619723323301942684397891311506900038009893028519544931524674799914778450680865887445051564752136122167511345069418225450502100037285576377286637119944904248055656401588171277588700260408278773415053737080199496181063860671851034996965079590112762541420886280389578772753517085937871135098330923038766932424891936964972750545071165068175193237606679745429885371821643936964834374350423499957626098119060138346229058631280562345435565407434521645367938200413689020576751828866249955766862929208447331998394548581664503713251873501793219560200253404219877181366975491179308205336337316745589677189863731038070478230842019701940357834951147431136060588121239443385743800613419002273056094794712181639605417114510390335076417399014945328318773395333637236299695950299802552886968534817226750433184736123629452064838825380798157316133394574104602170824748486023913768614349328458434248451238246286342984816825723859620870171494699276331630754689088562895069247316818575618769004519414021056153643217847070718377395374991185503760609244773365564124026967835629890947086720011171074587891365130950503028502425800353756780960162062567331420345887998367436855868970642041108633682488827761637696977472882567629495322514579598105788322561321664614809783558641954556980404527824680357060282640590792634488915973402588889314007244071495734975449942587344710902189422955308982789304914384954267280666644684465673986139494842994709340968769366198850185079779977643398683805061400927169365949940960540247076498924402153961429731148164647425224833080545707752852435890043655048634668415215393959557590773613276039595088971027617935828408715894628414787895418360822433962709248447182674052901454407738940247030759029180480820966860851252202404190121598919614723392208854341906346506226111446709927132810810641250829700985251338050341701890500250008339136426249761989223336218852597676045204667387057902665382100687001834673562574057467043654653445943626861695777067919153557804294731955670573129303688532239958330600627057433900788975391786789164173422636254089230071054315500999333274216669914035426057433503018419497175109147422424514223130586130061158485487683183950182947276816839301919938848597333410402516515679337486465232397564233159042665021848025746901319121603607535398259737510222723713555404142963292360253222250661981363763349035187834315027794437142465201936184363745892094917205314989621457051157779377555668179117833902722675945153752369098486564418367329512851909268580056304230937040661063747977903815008577056789144422577353842936277136746582369370786676404444507767852789641760017402162371704641038467052706636715721821857050065652915969025449068923375410001741648184385858663836571254387645402337935501581927393410913414762286916963301788325047119239955394792151300126430720850027974813684362666658627012915197914451156728304212635396316465245096878496718112181327509815901432249583917136639916680788112892393532504910808055529421517716605106403699330412429986577813230585200046440778286927608580277624330713467777259750622500768497064140453635511503367749849037695742027982170058574598194252016139617314159334248015353889051238489605164552965978503367440770572929675178303374027796951409738331041907343579102825908015151180830024581365060705850862438227381939228464921699507376656231577132868413998045358716741475041098690290385623757136716328111564615505253298402288257782145603619896649421851234844807936029615132305453650292388717654160722604790460470980239951841456900474687264645676653360068928608144795474539180015961869048712584791787345679123065074483762213036646096531240709568424216548745736084516490212104156223122224903546728823964370321827938439788225704492384129310471258645196172356727002197376765512561118593436591674758643043673284210782081669680566418923946509493525939220017231546548533707271694916827726045693189061342533843672156171803744586678027550429673125414505414212463908157751161551748865382781785852591504213987039358668275839534683642742726900087430596479450722983827862260177104058289195207932901791517613447685283521621798291520078978876266425796480009439399606201897108259089378684845636817813355302183990069516700789114305305486854851733439758974649855157256337379596797630441808889164499700211151544262352300701215604935826093674223252747832787095975614050693428365806376401782684893262734088996599582073486442435902152848483295911384459786412069327513826154371676526749723590748090389682054464357938555527425844224730223335958420539354869901224557247220416420456266745175548811121124994680645468331908051168556901567852388197223790658656370392821241516964143191973129076421499460080677267874729994362623656405684602254811820592775037501329767911225114045226706143907874545860308322456620945932269442537659365627371513397158799137642332897361148651059534946372565559546640204610500452227155449247658860806818975612422076803134355810197659423549326457072945641232488676902879191940516139619446859806998500191373559391499103558064669280074842507523098714965252851625123441839864925516477893087541958509793633454059637487237548605406976950257541169250763061317176401688949866794460144998386728085523023097584118144388991349127262260411043237019599099325223337679033634979301826695874556860807918166927866458465392699789615107600782440858056747829022914259006453727691058822585725706207185391465399833240671698061079765879896329975283279402717828039684180804149955997534672248051826959822975957513912307778168318599853301053914835521261106492118067522364883931418761755265430238958117718496679662255672064744490229823728089325376014949817292368237755647816789766700323420881892417162130906176403999221559749450545475893507077725292294736330314947639170993834284536502006314798332170609220453768724233131461527239624955758971341859718803194475603498546947358007756239798478676568064073320163063557989213818334587961934036360319979925324580389824204869883841498167659122847412448846037769009742281502938421882310395609288941405745281741093310904244282197468187479189431574752982447293012109146747063845865995888535042890016550968532034056594563371242609117920848599710051159214858682844007455459161836019785854428956667138579117067803486430734093837437693436864100645597420220019257269953385058181919018048845570588360619883192918452122789198828979496611804799812089222604998450185987562960715489243402489904558107811214728949458256158205961221965803542511838401830978881850478240029732278660685095404468064749297996708251692303437773725247933768570603786742436550556004753097502887486858524354432116733158638086839911240653901287477562725692167393448517697999063317898669745588908387947294306680258855371316851289005901398940697817288817186751400140007307118769671695483951073470145656758928572823717599993269537647164266809144953185732402858542583984590578894856788002514109514095122230216603805538689109570747335176307466878045336329345329886859523669539122041403708489097575823013341011748185987348983191358906861848182302567380667834885940894853314637522635642168315895082957727710011851082205501607640359219070200319554924827506607658156451300930973803284238631264228989304820595333360834539283692608200911302732236020038326800235456239215893483207076022924913150302588919602001997662313436962042278115895605389732721069862006871688110912900036235136286490698809065464086441634932538800787729808749758986171388417682492019691246555182752181078607095403906088505849906116325993605675452939588492636444139283344999245596974676224126733782294524983153501058466015186641573589155557969906522730260581727532077685577349148435935811618673930734138448223277131177878284621880405097718544166806807415879023595542135552025129539953034649046211852152784074633763210864879666439682208761080508147958510897113841331086208863216858495818064201643444504087953941816425763449840060116988640273957591891769494766117248036561941446469018421151827688310857894781529952240615842259843300077661855027630885439569760947598357287363001272532456907948658259473221068235513516919087541575470933734456954819369839411793437537087506953421612031364027585017559815945606434465192257221522075521727296503781903731823505319790973805839997937961085831790332499218515633822304949935557116804289368810231271827725815994205126721298245880521677036007894008079330397292277352726173100879131346906673639317802229446481370576587775294655986622377582166284110824619673689901392248630976247794021725087349189468939511088017917379127717454338191390126988904458170470434609339232475065137085118906310714285421468056183060282243105726154715223694338966082509179949567394083440039341991850729646182771551121076286521591165016165488133809470872103032486459261219864845678694445968399120311547973042806100664819398722395814885508774398801451493125669161249066075499142102761954154455542735852651938697618906854441930688960411232007158736292011608261321916139171659803459552230213786544280077303447768880503215923002854941041328306291884136829348819436923160197811908016009372143774625350789432531477547923951926902409723086741491019527671862549266431164154116431616414193782926651265377709462334340065668292614712302715878956887315950136375822783261235695488516238259479421319938604879343865074138744659433728067816314762940738598331119507568578761810844870650384227225793132397856641130881189471987305679072889584901869173539543227847021745781570311873111720989089717953971829398890252623623728843833812623958133696986262522734601736163941944457704840936351236679479621215992695850790188891778385825969831014210812939671991196498428241636450663888063408230600664307416067135599558438377929409005938382647175947841510911745215753276668586570648249897612919151785782796464697604134147187799403910056715003365990270791082788974809181860498330958412356251763378345441593513761729197792774009121426940435596175548401465896657041395673901314603015498263194921259727322541257603690451618112003096369555170096655764806824508064204154568638219335686983567703321279047563216595187428600591613089979571321113066326185195452676342514719930382813351215222011367942093002303551742505527458484313664627309870366346837165388951729091293824080465568350595570248214748549291769779665737116251141704261082894230706149446606048796884524548527785978465367082504681349183406356860707278581546482810494493019504682179153973681993675176160802082797848350800498766452929099218463572311506269965643575134630286247374635406787516467323869686241563165369337868327092691004943402457723723041504484497020196030061046454408546364725042100028573528780455036292728317322508768138936197392184846041357411517693860066502783528826920008741655385514466369515906350729604557603011106292609422011253061631204245044136611059566757225282496145314254049561778946478559421117771226142682024242457591023005070074875418501627156024137874198762306335485567347591700008095284050161332078886333288080626156859942841974834887496159522502966627294817715517816470869135968170838084961982809470813848340972116009260941831840377753651574458519072060393218620973510060228550282843826704405557693173779728122535486289066675634393678535784614439903985795491410443198900042107964184026818613822345649560363149675444775502332438591366168881438095062417343989822830957259185724572927332157545588130538751825445541358539490189784426444798823863567151818679501505904562267289070003548973276969095610700762730937547977469126328939568002448279278376491922900412358677070593273787363250869930266595631816863881617317099693860092528922903290202276049099708796454907830159598482678606977142781601261537590654328897451835829096930228563373216882681398272289832733082357357854069426572039857368018151898611557196652997211353585779473989755133870546729219796635889058239757062506990107664461493493687617828672792367480854179427927255146895864067187718146275958494943961541344750052087972340840267250508851418446262847772637563752013974557828597801881256646993217864000050454320886182140466011548867838374492328728859469139823103127631472979448871825240408113496065169217933930384239930365493336983826285461158266541334005998931704771973051469681274093375976109270645188352820135387420747436397328526558442625603703996410850537886564042810043766155977719760920389852188128513965154619868001027623959886047897410392996892649419476375309675496821718614560902148514906469581500783229982498526490550403271754473209689681370509788553738719074343237760483266684729759349299075312661028737749638477088400243676922039774809078576804531268594676219254502619770166955412576749074346025865313790377113770395642349562031530414033511549976699039761695201324658542456751140634849987303165872905711541671441472337988763621489777984543683148898799537620395673301171219006026114712883798831564388063310357226810306498112403626667648091238156154592764551222378456477556922854114498504439898291713293588561056061378944725948803247341601905394105634176698895948821226663621490519041841182488871427288771044421041547162266795222340167035089644291495954405438342282759895453932439162366324499942825576046785894386287851875530283052176542250023139929377091490246134316338515639746311345478124327123213911011376899112771402681976932051040546860998211400395021257881740341135954179473650417436489180197779082141980922771782097845723342241539504362802592801326554865822472959543854839942458349002542545422186869408634006260357816060140820729012451999694473636621262894414109733609387896199583646584580027012835786842201971764828972116739966661862914570195518696434434672570713047984725780393515889023909339087323889697308526375919507739552622032148512414148543237847234886387544666484644406166242267812586197621788440725866785384864379470973813989664365493228478879239657463589875666022046209277371032782332774970651156445497841948127010179036906060468969502219107000917294862987729670303278636834200893448933224664546771118624282182982695024042912825912051059941759329917359502780666005773186435014534582146208587228047199585772783947046881820721575580375951777779126052055362462750853631576216530399722020257292052039704617055132213366178640213650176677633975469462597790594359488961288235354873667994563556303217151046458767229578851270421108445373643262212539308334377483022809958121024519882547867775946254241596895588292581732177027945245763748256834139279611781097989816234032545349385978534705528288026561930889751005961025382883832968304967913770662122610826160956161776008011024086542495926462225136770350932090788654002308857048461889184948603208619895197403123977188330594011173169774910315486894871688240922620138451870023353059809889914368929140917607018613289047484758919571164513888049214869778354556866014168155860133147557671235745297073643731324549945076698329283974878791063457776753011813123128897422902105914943432189486426155563133713008934069244449529359350212560850097309870411279239137997292966501938126247996033321947211883124900568048134985120570162367956406321851630932470008463411425164978231518197613276295296106013141669624937315364445046598714658657947517167285100458369923000303030276303101317939290163168109546509306967210959370364906069069110564142855209607095199865020845961581372037100587027645163734616819537241292632393567520340971671052781978879665391933983929116543023476690199246100073055984036130397190344788547935580704995447156935860574485412208414048884697243025045940654016229235642656935052171691138722806828141572211009477636977327253257225165281538064423831912308491584936591673401093810060345698129886828217410702305761249926022319262529411878748297837564970633885887433000576436212007882230298821408992666904429937507563949761442102306645332615570285094259578384131257907689534242776063711132267252430597848642200905661378887020967500729165329777835154887325874043707250783929637071735499811983313031969329007468132606032177172059211362754790698244035775127273074341800201779079772504977661160604614668672327460859615381569589682006444626098883889619672323874059795219670115136396501671599801509886345770336002605752308397408707884116605561125048706525895690611105611873970320199361417510067751098011388498709745356156453890104848527571569206288229503777366619540906217602422635729967521025693080831686694704358110354662172466619655754274820786000091114405265060278290650179296513980105741180693716078098958049350746694924750146704192278767663708203464730518977358108620393485758971200922839638332433307342554039497472136152604584805032605901791119557022072690241877764223965209428605806642847566928313281568043072064893585293048985249930674131365072177023789895357940680443964124357061929783356132321177443411272745033935055310919056857764677402365883381952980063662112741023333364952131493032866982304981946780659735524518140557718594258167853942225242556103470786140049545674410209465529239169168716028669990983234337196010550341130138263427090339613180378650765047193257925124855417189502821095430630836448850199704308404999918425229332056656241711303818694101181532559823410326763300354449312727816275668124948736757111902957228035724368074797299269541795743943297293683088932239198572353947157921014287660798479781521234876876467612481887446908802245273662639986142526218392242106777731206891394707682511322536158681153201510529803720942000025303055331704544640214098967905547331722895491973759593771456552036559308324402320635927700137724536129257175729778718490416723363401081394213353418517170934857927981896606979881763557680663974386842977408656110762289633964550127706634183910593610678020744321162752113796589369947821311769111035686613390254949626600881885027592327096753364094256694865286724811956533659988126847153948908166358858372549178691223212221538226725057100434178215610899108310979794333714021975263606845035430826349390822701308946143839648396677825549753570774817476592355791754874648731757310487892841377277529669191896195081732534425644892571473123283491352548869038204654447381688114173677673955849982261562559990071794116786068486507719247433549713756807201864117735660823742181543103677358111500015923123549580170469926941064431885430601227698434124327226691646256170915002534371005566854485664109622896287814681003207078400134068730618132320783408537330319838429161342074943408947370999664042195585764277893170002165050771326529580553700024548241096580913801719974377939794053988438443106125951137774843195570989620435762853300827383104735571885596716242506648714896847621116645146371288915887603166028899503791166308088428770015231540625636516502093187360539121870256562141358183983247168855458637454961720640842140694844645826749992202023034295939793739797779687910394393266143913071353136099808730338385456590687451622604300370708795241584322802727894122216219225972599759489566121060878413188466322558620218838066667513105369722039032776404573283529218194816664002912833521297711688730726534867071350426430358417186818234966125140380051629992210679989168956478252210626354136323806431245313520761828288330702716170564265118114206463124537988007204262486565124512149130079355222037004699365450617299850049503165571605073877493702091546268081989496316782137155456137814786685167210607460803666379897514825018865131515564794265567581813853575268102494056402306601883263678263452355937820978436157384594961825396333579395125032240359317186858074116086750489184128290214142920654743969877801061936380846720318502125006307916600203988855084666370502651104417265186525908619812281919934172525987096065069401355768841065830270820318645100044684620585249543258442853955378985385195757430819350209555704483416029052454654736813581932653743283051983624146837944188997461294866026425971039316367008532994597407936889576985763363390951223546601162065538105324681346111784571238872137913069267115473178262902227611565963748976680053760319168833204767810235307524595590189881360253118925479195789561636506177615142792262796771140481172196914070219389937638488673713103358602254185857483043965784285187975833509928307968388288148879504505103371999201170878495925016643866099727111504203835057769421512983426128601791024891214041457546659069810956458873098413033756307475892796566648008264960750397013592151906563241180954010381934743375211804736571092289438887572656532567836217237447203829937627947925326369190485709338100535235973976570304745974231629341417200691272581403020907271596064986814713412918466820135401210747433103997395950778661186070204402453148310177471490760359972504057819240736673673645376803954366549339019764311429004721751724573125278248590478954091233703605415192413199486421773404347926608219201467787860896542355783360128365132088021871459396763877315681938938557750445214695134205214734324337515877703134513401439662197564685614219130430197797897647597434225152992353630540035283651600395990571181628660915052419381605591609932630818617812709896199263845310044044322176793526608236411123935695872310522216148580402112197040511899570988879061381726424843515928254192550676203029595595593568168019469355629178791457540872781112359663783218356595020571736798829601893368296906077088830934700401732758596483746582024676798367347364074195164825190803046766577892769020409396394021133804506014316828350416373345710765117420652426110728292011069468123145289436356025905615326014169140195455058791807293639006265844914695334723082431229322656235512529814323858738101310913825411866438882948112665187038420876555735431286866363608906022758098719267696500930222959163577148766892802242426786737789555420074141713000623317951595354430777899131713968697444188677893619332927866500748489881058118462745594145376173845320507542227591504128420908458662550968720526206373281203001344863428780261564390418009437662149892824793726333157354669514731667625587661188813438089819521494572673406110566522696276744282250158275506099781543475949302394711247751287301045192888034059545627998078402048786167746982731373766970173327721354827732574466045522566159163578729686943956309407817649282742197989109590326562463187304553914023550787777397952210935555693700580169781816323989772308819744711132260233764750276757277425571009362026173076173491977091417598660595263214925789056733940917343918778560857447886903535924597294129429386891922137492715646154609917485872701053385330673516865936048632184509072260101783361514840697901455003086916127962290507841274254373292052290528835751801690491947271485008231123276836861517913257763042980033896036075180613070304986394220294171735751446388608873300160531712756220755449168410829175268161958635407830478988768463957780221420132182774187667314224457868252612135470579754421436633201807272397512250816020113791985211428127401859883867589979507226579215656907328724680906175511096816628756871858899423300061077126755497595575776007955779420225555498367330052260133263782196237525799214391265732090622921254991426879761443505316355655070485275936214387760271513363235380616590561425334939703636005868424764062917940048629405424597295770671063706238605129225250575257919333157597069559293899898776354303647855994902199565517953825522758840399701882153453832261556525689224722191483763327674894850543495671644899212972183971584596314404892081159514766083115423457568423959737641601737993083550592006261859937470732043886807751908581583696180803134509195831551365388139318646325341457938290865470196806856397844972181960265585302086172717863001579571854938875621987152328976872337415842802822207484113831621001515319731759872097262658175157228807527335375273033556528814893491686182460384289437556321054300551232000223234778359303997715518870006845349612423559192953342899665046955543745000222096277114352750631262628635524015201789019455436648343080373904748792731307515948687799838087009421632465301215844728119737105070394491067659929846392297927809872704954117618250954794453637709007772161752807520469959933912403760655948223499587610924015096432101316300438888422713496772381496921950841243688065778755251437052505375508839469248588343026713823799774790901266954474652649754965866222033982379159450772085603610437188433872809501738857659965345494575111751116808431063831770455576301052890000042924497870615231689344338406353465539580672144763539853270995454772379846097567808170877728682603965226345712563194433452550589992891930175611121648469883731373493733081109207231967828566071077488527668674501744215197151114328773507889431422124034691789722283741837792776218712236275656769456986389780548669646682550450979391279775293858263873697596295003612170126328883164447891241596226039191165597387823127832447647015134107457427196252969724150118143326122838028347438551905092492490709953154637283964412939355541239650914223751117915368055787869531846322178957877492068693803368700644538729650217847165324699625177039485683919157234257826917169025073225693452484564740161127264864159722132549769850292115291526394052958255509847768845631594663696611831464283368785358457715948103224044542777663431428684640877327766721242029494427445199870730452156775578959940335883842096059104190067818017849166945676187223569822157447364451896815707251062059646464941637056717210490825753163442531099711900674874231623370699027410772125826661688305736564975981297034836957796420429229564482333256514310767242914006903744870401385484133811425167489327713664750383774937644774064182573584426378802368041204886599581659385353583519537713949994360386928672685377327848477676140795570369538431101875504794471386983224245512609095140199333122233385093074428922370359617947784109990159952690782350015349316227239055513249080940483224343449907531772956150418377699733095438441726432401875855247473556183535102238451986106819353412157225834744383237237030867762333792185110940966185146757571826361934910414835732716579444140478554826331937562148805787594052959847621204735291960244074321493326640960224819319929138178634745019484381003281677967602071553000748924624727500484833267366365736398813473748097560010892633432391549235146693566418931699111088380826235397081544601322457907263962298307836274792391735509928414347704635803952137516407833674152856343023017646057753349410071241725352514149960879745066665373536499167539587148482581413863377362708913234685322863582098574265809151095275533482372989397994129150360629598740880844248576091576732093402932535923869159232347423177109824314960245634388878221885375682256999959831573086474366034166368883182471103502959818135333123806175153731772933539142443942446384800970077647848984681800730441596262329520827369861215996871331549803063336398533523113677118824916185157281981915581082890555046408497591989048172312063831088891860249069875322045810163263023854888575343448151596862290933646256976008688937342189175178403901593890223646392318435551088445794441566231066199679278757234408817061077114951579439479591889274881333139940146145860830298364298878593336459563343449692244527309194042056306761005566532684796758881210854314510276025287042607324206683724046900015876203618179030528936069098191361943593120791048829297219465688721787535001883331643308946769929268447242866800859318798847935030600952742119126306965179903817129956854868111230332601212576192415541530477097726718978607253052798371683424970968899966777662653685492255164142440779841764191557333547429264491990406870666828444093653377771134650549587112475644232502206834461385996266147839087584549356891135108245028146544960398086536339772537430249197572280446887841664215240177273266853098789378172653424529791174414547482269229992037578414989647491817546551432303249882422296392899938871470639181608650773488836389708792479961111926344492899765710052786637283562227953616859142146817007225521350999013709721280572164450321693088223017654830012778168265855845350845222759059061911851441406629099922611094475442524692364218410141994669173011556796679674975778689194834166536908300964465086310496223751366873663646622531679787629422987972150022090177492507501260352000291027022680409166188100970526312003020660661411200878625278623024017294764143687297712955714330861391744908579100925526157151052292422915845866162063346141259759379656629177109777860795173447919340578128612290550989313134078111064862453262055681942028247905974102427753875900492938258809271428303683254351011592164073196612686662143300288275072577808288971837491957869154592927176961332789476526225318052460819829891951297123389266848822005187983586290347089896065317681221577508186958211986343111760609152398490652913337230537574897096296615646442441270888442694628593454227685331625910748264084187031831862208639639795911764474104061807648863053631136870209236770842494587599026983354811160209685025412883197515110874799770674375527371049630589560983914628774742946714520735029612774891027961121838906294621378780299600840850010861399769834600959959582205738000645411291512536212355338702240532451610603000024041040417711008433611915382296339371191447909702046076513524776520288236685759470042625828715069070011249811363739767059693550827466549504468464567923929992214832922158968664706966328660048304019721485378133725246671163231448567724697826698637080136296733995123520122939504701213042788375707238166686706258086296109116022780361977095054042749124158322985941693236911913002094979506835255064203958748737034695839906691780472365322398672531134701985882317170733008806110255588323008654610043038872510518830749077759515339526956655122300082261002768740301144895188126199220335535932300002869081895131991885294235806261724672287577925439200374568457962013850087559106065085542785794126261285690511904378090521605743828312700208514954350147539652582972530811774596747779812476507936004278947408569941265368602996636660107972450352321567732306551906110861766474963989231310632622654248303004086600942176943564651979867105815148965159535907611817838113834603834440563313693958888477811820809090491989171675950904997380051382228620057856017393101068703141296227529465505568845821478592967612680379340689371211344432185940105908611693272987532121527593847757608939746516041349904360013803048702355468626807553341738289188227040018383156317361936853062219278056446494478522970826313278888663765413572936562609201618744722629917907736805987479852263757211448642130892685861328556073645297089418267305913031260581379472492524633084588784094461109158938086970368722935540995395587578189507726859553317340361196206113766568569592384852531469479582857246693318740647383721798299349120288727659399962974279093582468878394532064892506971706184678046165159294985481668552778276826822387402505593009872382124011515321622521018784350389967907678134247904048279892635682870711826737995004125464565949966601783916888212359117478651537924628342934384843854205646490406689408806068181436967218457108212740188103560921460124731020198619701834016135305684226582332411415354402807129684928310317089685253766348023588418372758872306514891171903264247091349422696945614287131224520512013023061581943289520148872524300700707311068969754240271972364906766157359014428632660187180366670605209480786280087649603668212566280740202162279110082974031268760683309380435127031364699928175074498457664836664496377379688707672907811972167705604487170055891252448262918510048035121678061428701404708902630283539223955436456151572513460329114596438081557945780731874479303826081591328298785752158546840409007201914373005137761090272331513724487732844401341239310203904955591038204144552609616866022502825513493297762718663798064369429626457351273013056000112172030801345149192756255918974384813819382370092464344086401832413407625866728166492047426413320218345478434779276046633480329957427657301797299763610888413676886429380396534144322695750941901109108447979020524362708010115403003764073862840193750963498254147937208734995890877378449814683655735486246867004682153420626780246734741553889259016969275776162525260612762461022128425763051527885812850732917769797773967539767821764693310133973450581535810094919835498191412322860499535275112995293659414460334146679753456482580450127536783520693309111111094255713149030909323932022730525892935418541336090013961377432346183903168284540405752255258593673320818920665932453412688121799600492684012738046440123233730887898195548658756137717494733403014093381366922886869441852128389601689208859307376346183950156150291331809101597614915112803176465540629229848416513004182403103229518603378453433802586294235600406174464906095365657965138836949840748057048346177333533948671479194788742532608665470946638375182581028209182947737276307449145007104016098702056874836243189814523673798535802448965092293882535105262076192927562813299424000398332759246661942194897002055822063487110477055015589445716712005168483059345644802274401345297031981213956908957560481843227958262418640999425546876754521978375427138487399203905051619627427405777941978851645026488698008244930843041826572356467941988404244484885313811645091449142925867336162787447312507545676728734232197093029998043130509158523583497084420683729298811615870345193161874873110534140852167106980455523548829382160897025974703041719667705310671409893562687147841464355463609411126622208218382475154678253331671876141521837899321291888159185284383791108773592850621413807364239934492708024037939949032274374290734264384860388465742164175392780173226876639520653130387114593699925274367760761285674567084072287706058591322689728007213684895937621014564339250099343459059327803639683207155351561721055918458688754934290992992476851384806747054411951831462890276189754755122965239100960997345509197747007865170393325099816451992025842013849753902658077503365692771754017783872162244847997924296398507025425419901045543389432992307308075517164260330627308057388923940854342092557879095718069710898259639833039054852575321213163452260166367811404993705222553455136364127136139129765242826055113653999331926410147405885022345082888887765368706122427095280180521846404597165121148640679521443339429087870719328590864783615536999620141018468510891983825124579423685135155309960715486605968633515111236009356151284384431019744749550257975451333488207595859760986679974427859462263991980278512831652273211319185710730131380684286500938671338005085101195614594793551545467344654905855128289416654836386861863473638709854632405467400980701124260726406485132406480181008619166657637533283035852229722733341520950753722406520769057406139920456857406138866724994620865910179045489218113122581749891732219398401093784805424372953726302848252413663729073627959725253418031430327811944392362481555302779085007708554310075694506758185392426725802983438788317541808827165567515094696667702918667087837302403457652049237299775986368664741931497235306549931043289869918255523903391394366858418560039385273510964754695006663606891810909414330438515351835779876712346864835410845657179877451824818601317484307972821770875640601563639777413073704157792964322263918295464561278054946691930853162896942820681402874302960348792078335509148815498985812588970453689796447920826074243494466477891105550826659568649348846022054892729347283645942129997184019860807995636648658493891753511322880621417152831316958972964843098183697748960379902330166439601937208985511045510909117671553925869656192832674117698535760339620032657265769010914829506884307259539822600002319991534989387894915218332608533575701126628508784604295739365734071417297409226020626501205252565150037894792843845650449701911333978077297042619267268303682203930607191054939769974961035250367438933950136499249672339851441598029313917975764138260005563305985210015450870949944212153438922135201092133813409480726166407242100227302470851679589244694069922514620450955309731705657922614934019599198270410020898803042804871273538239513482248724591545699514659262934835560417180449763178392558634971345653410179394364854887475404307104128049938419809945034582120389726533489468227177606324607418122557073864461908365863855757837815546732432234813380623395024872599378114268299990739344586545282437338126882798535793796468473291575129300986260329309699971494001326056138648405757820976233256302300564819238836095491337496128212642570233425378409704419840381838522366815018520583353019059833754842177367350382763080783756263908211372153853792671913056596180756933409202332693102221039394370199646659438390739339465789137473554117399910600889533373409877589578196163661461108006011587582975996072156747098690453498746131602503751981796655444637459105120553491085195787749784118714699863347303325064967245626588868393776403032801612448458739229367248755129517262710634000768955236815672462027727007406601059167291316554747692910571329143253914427085014509157304499374534710583306124166832532921738322177146774175479614994978513935149113584479142617875441514346951535747042929236699088523955490358768719348123199994962695211736534464543457533577141488042131656552435687050164599525947674204643648754745297665163108050067322288990708523183367548497415656537609152732436708282523101645399666766517639526744532543386908011093272302671240075429757885385083429180762006145923647155553107403096831600696760055672904530299404497343424231971036761345740777392056530568420267029161774255997020797645399517384944066478745315908997159405114805161962811507647086857277668905836153291682001828300540170890972566948483950324663442907904315388825157863746172583833198259156614615356554136148220771691187239593044048728027643502441229917077092526859115504397391010864445982367917408328350294805510947563068838978367297799865785412359342949017421634894376585412075139341448634961939121542779668161270351947131985319233550735123703812353397115996692384573206971089027473919547873996996858587202659022831203218238988496750287745091162014842431841665150439585933862504021804917723853526186653275305080025803341785070639039679308494613618267649981786159408530017727462705967439919766076900346427943427107756197882834288190052128607591450364524590320915503881356224999606052421504521726830365972208023668024909725818406439500832574361876628540514095829122046958815202025706621870496410815955560037197403569281972546068068594550257701495558454508709387362325756629719069745028432309406523934293430160730451451459435314523644783100719542230083651763981650046157390637155547044018331260650383262809185890702979769926939221876218084737692060629055739403144218519049951099860457976511919752380836242154098670070927908337359688973014071117473291755565336400979926065100578436880293126548422163213853585414758754326592309508202286931447612054982662880697256065956112738447855885365348195682581946076499351923650228868023541691288364350377840650148614124727430548644349093534749077662707980079297280912373360379733825924420900746619473455426582760463233092688571927984239313720608534422475318105371677070344023455759254991127781116988643327236651035956444573759912172799995253678164060463035698861187568215738575509047130081820625516233069412541706772525959497347581991620000587841706403756570663590684805970997684216937742413142703767127095430024051494638945270231262167508155168893110937825357931094871538171036759534533149072143564705552015327026573097962559285647845241100066689992470286986041820123152233783902712105174976741787779050515345398880169207969888232736429698987436891055820293655033657626321409430660980666453964112520844685663487866917627913791093316203226432046462850535083156402511814368427355545299664644282443920946418106913014983197437328539421610701493158091423478040982271639463950726369222441077024750137661853586128558688629620576673359910196791912538535486577310689331268083130278211773177879740652689626275704665012993266691401849605473384621958418429749826675737622886064793296798583577951053302691496216485478778432338308480261888757736329658085807463583701051230862843105858793514976009956348683670731372906358690832776576725087673204134823434820647699296475890477834058571661136575953942938509851399610785156005976959086056754064134227632919629275720192594756583645592307826750907992801196071805862644136305771115581289109424086665256805252491441333667242352478394592036889964255972062037882323536555320331529809059734693020990351085822735286063833939024524911116144951790946264265491282785755307937933192837379024145924917987826125815087955377827473256745200806729500607318807501118851841532297865119704043629554087085009638186582403201729857952297407295982467764569484640267564518138700706571129768010031740976424007569977002162020484373926922161285590258056544566418221488813256555878550762461081100915402372327398672013841854713569404421501811046183904237320847584318692561985219974247648055009235983994672990561192495311376818604860579766547049774236924657583944041060494852941569622626716932138807423542787018909467755510932563205959490124336642063623757840096278197352312113754765430271971958643829276080985310615438648982257412535918728634787025570358134128897509348474083013988640427110422166598566612984301063329387491804977035732265405607256097919127795904873837031742148393094116291274099154933870595213610773035709494830055203745970393571674360078464339816479140388674850364058359454861688620117723184095498772150675483618591125528752346451753451331232072593683883541008212004757919508476598840133778316948695243382038432072390578096842598796788586301797580874334955909199236909802166888847965979000257046288380468001638890196947929786833714741423256701054520980350023890907971675089294438503163574377903836383459528575321396659016640983009455473359414163300204798954073206742218155363842098935080823597861646659363118437244776700070036908615710876341934054851924772100440831200655145231762162544679585351276802467019110164648520866891413980004288333006583134413058810398764816901423840807754865526444159385596482457031599344089510744935027274545460040471220979107164339839381964063225955304820539414226006570796096726844429600113716721292294799620059767923559958948440626576046415197353042327960998600306087473322720835201565265523004717252516885799631642095260737690588143854893594875487461740554015500690795715132633518255989994034079177096088288983604391514513198192767701720243959018873250982029334593518521492481536049704875526937618954153062194361308327052627786397194870413701619111570090089999533745070086293894115928125628897616793409086104349555978995168314672779573550148140228072229639243468270620030114823291842644023191774741745966425083752621251185538335561567348088845881126512076162992593103087228835008157802654532570467213162723344578331583738162857196066286575895991319407082760671565351616405892983803649668316731526302820467039905442293823451190280973808857608015571128547699429472386154537341125500183831271744600920957704084401921468683436800943049906976237216584234640375680239318768377427981590299891034663180602876351654663610054839565269286674511283448620179628909367488882688265874848847267054664460265988285161714509169115468770953087865480488267157659296177648772501893315518086272918672365539605293597734063018907113559272350819997260816743278856627694750873355001995410900975587358355513118942889262387776306001486586727471734069560616145347010203572582088831311423790465227840904276207188192589322881274389164010732403932651148694841023217680847509871667903708641571857186243042605497833665140670426137151839521676166947832054666416181102865918707743071287317103229423508064560946689200251852296857595376215984790674701013812596048288967322604708785914130743954340351023107655324919222029441391717382628739552901851051775654392362898044774339283726643730693889763989257605324870910300782263090838471369545650650510438814283828166670605034977285651677658631421679393799582316923338716792397464650234924904594961520104639172861652787726179336639683103774424814788144343390585658802345028733976213805149227299705351423828468224607730746488115521386149931646625876034847957326322400810699300538896242692949462932355535968994230060790794747630297028604961388063948441922501199362844982941726081354482448675765711693561427778269961550850848217045058147187757630153058605552123437611834013370444767007961963121195889028035706563949745636726906151937161811037206768952786727581208415599858376638080545971023969818493062206509468259171323391519404502285372291444878871049694984612005974604402620601247470090033449452480216169390015656882392859174443659696395815485765862708240401664692498650755967885195781281336694058485465663040455873721471808271377300437153545255730577679893391503515428817678202431524296034583698187037156525141130984061062540295204429455670840737756789380568263882284444474121456306410299346928036241816060181006770406514341878482642974583118738108516847084052272556148409185180621751600790506241795221029790150579393781617592443933705452108237214548397665062098441594558099126835990288513998034108513312147888066212360503607165686515793621064728510769069512846443528325661431798755037979209752885391058502106537962935775288876353147225152568551413672929270247517082439335275785342972804772105240124098490253411911920577124913329281443696337283050466956816264484042763384186753129276606202369529021075585731748426475693216220970744505176287748518552091437604121604340065971013201515120634706835875925777878897163133985023785414165122540694628584691758725030383977739826711305626557168994204127414494126581101723643499391812308417664092591792472074004533244953994652091424178261638405844345431379001797098185025093229136585236234368158690921366585340286756627105618950025043548453468799539497318085088861219339798424993367563031600488407127514262175433867179584152939846178223118116279303533451004268639444368045474716347213443504760217785051546656489735606512674796572645252460574860090132659354237667389050298831467574100619945290546226111519436273271837361318109948923142847946259149987404577281932478604201048293286748492695927978996555735650810712110360632047838652137054454035792759768661452911932130224695912779484764971584275851810315987203750757266139127432348130136555213428102773070074329731759209727663422734094567412541970320764307341032498376899671303184157290452790720286309939638191667027417809676640188495657657628324710967840524509820351135582639990833773916842962384661757555682334571702532191663786955227899959587061113592717002422472650276561092504841224321143978401676192094867612974681702671090391138247864985177889831009341636735080544928102270200900254539959916014074951190709668452028428190256404406821055683844367115193858278276773583371629213579490506075399734155502704486193830961348152876883477612876493027249976398202702410537637752066039224334467879474431769586109982382967401698319444017407108508733644230258366641601010154367019335630319449703324882816122124075555756140356735387335818284751724292339814927750537670120454093404506551293270820609473024103017707896821984098853511189324330332821597303479449991122485558683767661771764698582115436811725408522029082900621960016414160786577497087392465624954237363588637040103878334188911450708776097415444825902557988151115651114072194137189189976130006233497059275111108607909294055919515339537368139489447037067281830516274181720928468623680607121572622856852921038345123960726222098704295129123153348460957907606989391089147315233755734222144126260409382738754023928260729581295886454753942312198001729472653559431924898160976813571850385099265490442128086340712426067099220356308180447503956280958550512388669251771659732192594115471258971781295481234623964334423704082935220164945110131703697964410235828045777570752045412148201430089099235794177252661618782091684932234179145073653049048855886659901679985577106238201940107176036048100624234450020830241845536498027399555230133802813686993090243975161023051543820105851878821759774638573217631817074574703075550093741255834224562480926839518567592468775352064951292484758792859326681940600857733630654876540422885816004254835659149309077446262718830730403784545738086016817107293935043776813250028325983684709294873151728959160331515439500160512037700957984763871470122348423873796055045938849369876450360500985007521984515637421722759020902886068077406894147044538627610690841359126763936874137253487641568853516847095457633230373255133112768106656393270660807073465554725287299229277782594613578407908981402512620997283891714127125059136800720949338266499686649932813485200013906371269286027879515981255671630678576553213685906865873255177882547951074650376563133366145007574952724518365983009541159212887930570282809807672253969891194743740831602912559944017986695923113249726180338318949834766579605484485553383473525788416693326041901549384696750077490957008350549255979821804236989604229401946848571228601843896417341200648722399791892281676892575631422690397036379033941752741636566915215909311504757330453953334093876819677821782514140945278052927214550331007055179552710381672837739583607622062510501932442944236330377062095122872251613682427566183645872582776411695745324905880797480318705575981503322511541043251965525595592182841268158362808165546364271102083026929997460103284636657493138357403952249326963172835002953071703891674933849111260897286433687182279741874292012027396478627922859932925096316272100931415867150264938489107398335060391010542072219352078671902173244091751782075584807574234565428754547484874271031010044547140276423731406868323350098518347109137319444580039411743054249129452208669231617422211140341645275951580119648398271637286688547181594460503376571057492276547050015650120198152802805926912113177760463737511222715973288644751031306129894162839352408405077635537234282066080496915467566962787911061519471970097887241148240298808991059855693535037778700835838192549544888727025271898063525038668541293239552162179281936745707821196876066840771748055408392069310415661456068681999891987676919750067686222845453657145231767880089699603157101571105924760948497501994170231100154482898308646545403583252675693066981892769030852390827473569476362443723976125627094420951278797478995281307537416476685969783588943465682647549727591541352110195164221727097969264419106006616172099198171954901379790114004803872330007117723262795008168308681866406440152229929431566250826826896603061703844012799809062139334413081911110351891540550436914322234694706539680161573778838536719240779986680995684816973718661216787850038184014335324497858104309598260619734303366214655940766176515071059673896927221174692588357847784073523712643590658540058718738380478434480322861905097696812849193683389576649205503896325819288127905991864344676955014716216907275002912587612928608742749645167052005427938214971050552886967776917900896880559300027756783884615635724289947362534402237797187589853825644995484953774433247786048041392935549675389649791225065421300811853107234303825550668808751419573729429719066500820307168313630825078916350551911171960232809290125314968416373304805027425587003208046602273647712131202209332983538461502541617929595547518525058635128181442183251085377893100893604410490972212310975479495450939313862939513675826694272066642727424000180023111831977045396833163324889056535185009987604713676559792380766072437750315986727023879413000812235329797482201440973208541931061846394510593058515986422414818378747766104806929888503371704472039374934805157594455184410444479438378661545998564694724706787976798002188661418486306577343629838128884336733114913307176463563120097827565078074614337461236964296889764691265075331378144987326376607752717051976617010909492649586950161377761098117142423706311671268972924002603890078567793803915669724771448032467564952616588311502555103536272692133476242292564003488760523516786145676178637562050753080337560200948900840580829784638978631786638750867982717885723144527347544857649158073193249171587399461815837064602487840141359115098203575708272753304980824702376503751315928710228929168997121666784464926204882190435947006644631306259359713612809109625573604937488083672843974158654448756558246077389598016856036640856324259662931708453941754956432024887050885719049128104877664035770088024658889981734615106204309105105146091769372877021510322934356802998140860563024612590247977473082380566768809883845687711481969086073234787824069781944334452976663291904160048774433490828395656198693223244974504985438151915325767969473337943092099802137426317150548342272232025451396231997553570542562364237414625963033653681143592459156381465774110418650601900053917009808240256255418866926099078998946639594884779641939076664217047690814542648152185966051247135952934674851635506853857988326265138256302909945173784487216126043824120772159708591490688703206937772096633650751979589820893801600978681336277217677343223841696961459960012785387411107014562511177021464572852159460218911396303613349962349040764341086511977423515196351194057553669177728233389535834587140959690006712330402728331946457751329096383951297881042929434857329372246674757847652350842549002657397022037962732182483163014691556131995855895860239620538213497792927313386417598554606755019647980666116393335825910271661069334508447076525944493162300088567417271186733299188451282656259763762956794450787422724323810645610597546370725439508992197927833873261663900919935514821970879095979816501487554977989362113044168946384665880867702204736111542425837934572946015167071295361452673788638193071498601010120478242025431381802804814058053385502659426626304405096079325995303036278029935660992826360027381066455168934972048598771853837560968280483022844980215361666538810565283087140685254157800474252643924102945741502707342590302417322428180381711623850851655034116252211648742372917529206216115390299101549848269235532266740690172178304248899504824253299443553050154427222500933283359664666300199837203164172913584204028521426233539150901694853694648892334541943924566509622719949476945000210494485024616020610598175726286256967127143851766351120792986602513088054845222976524445066570472517843459240110757868652914806060368658246551071179136936977396291676336018613257676317575543585567973841095194529371462573179403174194972347185617345495075196746600985918362796036815425409421163002226667541505930440435167061179846616843328031441889436305438946882735439857344109310326761031907005646357573586224587930415280565826484870190924628162238883566675740695265744084213469667610829980335350935756490229179825424690431330046339978436577841686209147050719965115009305967182036820887700539292824447873118867514829055223025370555737215577163926931754357548987561799005353590982217890024826785703063083968458675624979528942550124345381890748971809354116284432545278229116050448479291105383961561603481209300843200453990523011627152362683082697802075864986339808732584300032780266014171989234548918018552646968610398208451303088062456886653591309678658024767489821364903243795857061163241437061999689046121338333925738102840224712370618108971287848549944261416779907003167612683222126366427847731253286035034459112675555936217971749441860200666020701591173816336581315803528363191207804458471505978060935461366666914162528258720676587281645307645219281037367510578036210421530598014396857913182901758538493333094074326897905976735987911381924702989589733357646722973823479769970775108654937693780311350651209665670972167250662882565524227453501984903200449981794026683438950071796557291599569693421628723128149167124103752669473192615310130737212656562420926868862885150957956247855446569757573934703938963209292165222911370387210597247386713082990931034896962772805540680628094984550481898822187891176649774035714391824782155637107581398365415727684930850844262922428827845105504050154578688074596751176600496649782982374350344031003018903496371765458363942829005981897210870046830939577641610903159263364055643086154249585888778933179100214290951229982369229787323331825779473190979271515482112223284095373957937751155536599112923565677173051645658162334589237880145267058105582330484433016744319400371852921965317937640192999711326664723082325259669420730785550156243489245654425594508933413994720976054092734852707853113449556129985200590569526861801261473073067308330887984845224210110767809178063382726820233189771959331159225025970640319401287215957596864693808157263903865324190187435885699707260567188611023407206732213788237613477459282962675083635530882379815027496489889675035678542448588992630018401787949969304231657858837620035026089734630702933692913905635023049475800112058261385146042882401463591006384118068053464968545397795007815502908517221791299279545726700025361255152964490719902535631951682180928703984678631003395416382731322054847595552950370147581386578660218526511483010248752383486059722979089395174995710088100688243170414411733852480526260838459392504549909593483409185519636441982137369088230235420617663622134646505951096826783493979708993904377465409016720316379183677460398049480793869201471344613681052832023613957307175281638565727072507069698794004151934923564822932588938986002186456348260219147900264974535504429963531014189357880774959642060151255977541509275336448137106917143304935430638472034158362928693453338804288920668532428445193070220206905983142576031999501114238492286551012763433734014657160326931834129212538502426178538556606738836232144247286250521188221287581196324301194471181118794831240436448778707370475589805032376292965508138042981275246658060977906154230639444843733641431497762342546701881715869507906992705734729626721653342460999220201063681615803992068809877023914851887096082554514839910481464485135143379390333737057836680633039113923161952207792356092280793028049530816658075125310327415598128778917939845215947612995426496211930011521875314101664863271339176612396374990917852272231062506851158364789514398182291060372118618058435855954254869315591207630082153420528601467475120180054704087128444263608719988881909217105870400215694011847510557525445068027357878501922888807009305127059900659682583229056608003687533015602842692632468611158097336184409148401192206153551297955728259532783229536131412382731272316495055600352025745247292315955106763771096228746208460145235638370002150280532980394669154064097500957716712440192429602031409224757767507686965463595517488585373864177509044370256263293705922109283311182637803001927858952072338077633564014772733898811218795748342274746695733251169011634703688027957765248335444824009699285252941572875942891767804299847148017819864499777824185822936453432550683065418395226238640109470631219590888534471190534968642013707225542425876149541634936893548294991038860479377587229226686587723483453213016519019235573776309833690715160078477520409263389143248405865245875730130682507995789494276557014620299363688036278733912433779382945430933644422801373259985447547955713267362758254334724216005771324512355112641462880160282194004650964666455369043691924707017496627578215588673842459536935141147601245870137349596010824173738885550078849834690320417088168652193293417172955280091420201068516930551660683699612875203996820584931824128322300610018390324397582344840303384713511386862321647175479241149498695809692468712332013234419153257918375682660021572753080083951440193402850212186271658330913534598315179039695720053803229807877719629596731616493891632633062237301995329891013262564196263402824574173144711564749950403159856483370634932925478283435121512404072516201019729898556977661958953677200674295567771546246770800861820528357815876253138987132731259421517384976622895196419994846902285731353939372785381547512997256577285405149175199650067200420728913000906763657805660146475431189586724327575865923414950571976172080764246414602885816559512333965963337248412528257385467278067821573761560150751042502949619047824302901775640924332844463607497531121977787130634884232294197055127823719277821235016899351826741304537559561787475564164125069256769033809606929972517305951623755793558945238690232660359340160385274368794776018765189964298997865700725555229563676200122195572364051447176428279851947608283889682176007354723604653321616106629170283140807258129879598774654925819165209626124148774763569368805207004688538676248604257948974143732613827429286100100926354424967211871961814302985706587267002447969077277360099616392508284443336810999803582592911234739101924246809737844963181525350536797063459105962956739765550492856396001957358964603614799918977237050901219803387612343750606675121340406632456701150912762945371545090479226131234883468599992326174735101500891694025097616971876905257033446643511301313187410984110429310353558924862172967218706020942757494801362926388401357035491160447955034668424343643518265790664591887280387508659948699373802288100979092462326563175395865036087377854713770710359377810113964132322646952599374481022234753945357825274300103234189706975670646033842636261628227161260015316073095867528949572896904652238954769273054215518145407453886989321089974577217486440641615551779616361353762336113151710681235680830822215132249995147246473741923332709560954256407006888552774601038699422610593470069649601790859067847684521218947331835775015540430582049905747168018578201260701164581974025115078714533001238965092954585751246233771392625088746687725766150314735532032184893064840103279304012834533761884098024876126494780583380729393518154108347762648342336603074219563735226382853506694589678516814237706217512442168250890527487480059877264547959531426552531297932164341635637616372175767285680926264352128333146222790851780063616220574617520794965206533857357112720563458109042352433590645566315289010033509927586708276094704934585100709404692693754196973023717985473472920330619057342242933273943981042158456853608468600819945777126032418906270026563047059342020524344663260972992612243559862718847554895232898436787357456873753281502347853405585696273188565193298227812202406951998723003627590253639602817598532514159147778227786425875648690415698197486028802784707180354832233540761482403642834933186041220943520417991333907753046147355850045006487471515397514172282086409399617330978890849762294385615809293987664311492156090755259493764945405577929678509965908644444067820531969467535283014551417885946998806819224325587984094090420732203038273538296713087103678041283984347342205679475414407655878197267967598013890219133715364987519280550066027702347385569345259768591610922846359493472930391644179540435244505615947388791773699048364942148989158504602048068853056440155138900963016074254897842146515956677765062184875247912938777176428663889095821466144086234875722520400281971922840974506475746722295067197423957613118915999856103622118676269691950620096468959063024608604463819441883010724387616411103828158101168669460328770648787517066888307646310742925843992511208936199899750158655208850655336769340035255219380534469144678255302223078018604482304107038801619366823754067498904332143470285496097559897275428232898939475079866116270833234120663742071295371181432463433519277770671388402322719047175148434193410133204152658246973846799077460176750922803085975267577536031484951749419262416566506634559321246974026178428656812634631523665209027270008835786741101438448147508314780261563830204135949840034494956489005163797657819341229393386514393461976294741109271645989129057930165308965543305916819865119273822025251311818066940606365881168707765652392696227914914230067217375723567822974352079137982153309713946151552785091860694671201412513812306886954777165575541157342979958829706414253285615454757105670554094309175011422209798294381334515443698456692886036849035502123155369997628436160849362799344835245152195595810942059906154395273748477610877717395185832292140677954550013743854905324602806003342506390002945040270150468599156675852239059374471637713642654497727489872918917750608097915377872371796018702793734910287792035274751938611823117795439946093052356713930809259419034909440178769762556339492046941790343181472712093762886879878478889802589487116714449897767862579463125602740335472364923622665495691284092973063766258327769054355967267480123350223015217250885827601097498255917679393968867295994859112540939328935315001926356736132932493237655382697256526192786414390820260799499482458842159099164226376197000161807073022730992450313052179349216531866900791747607223761085541860796761953568322164166947821388711404649225336434964680465865966187795701845242514508835991007720988067022313499844299781028225988305908158924885127752744331928274857753968436903477610736334601896527340254876215457467896731591038122322366913829358501879024384492735519284313317704752592291720080721719325135175791757070093161150502192946168563479111136391930366167981107977494665060048328499372535951609304925780106331670691162927317880643489350956215926882410815764815827786692840966492666898493505643940368049721195030503019269088850736785274157871377833052534790273662041954699424790495975478385551709650256342790063147256321555045417877228695044858340177180225553224734687980492307164745781790693196784437439942140620053443286152683397256195067749345223060906683399080731503605491024013376484364283061785155242619544737538605599427604585585009158285973366917773543347644891674970227342497759538779613204574514255739861317365075487885786637818714704665995954247834139343202406807941992748879359255191202889534815360303819278724521395995139945747754681202801213000539874904041586742394620073851940573542639122548870242554293897515343934335036104807383234761756577279415843567854035749471282866622833825940171913401899190696606354555864440910454539160700711704819067276772398773190052338329973533733905224386640856474731019848347752296455043536859944314483579256539636570064073022508874150939535432642866006093171429933223961755661441953120354366152459847558871065739298367003389855937270366428594369601804759825424754020335938703330118997584316381752727341486234875286905867814164774574969814551063397523088061882998900941452355252697675850320194770060770730530378377105765383515627425286816904536649500612812715198358438546923574428869640552446123376799280794388344384017698927285480079148680971475275961018211866329411232016271941237491279497063831521306514729149075644008804474624512628609682036213544630192812716993991065056141159198721545776924508637184238657575078490275963733282344143334016324278546108754922592141123953213134132862363026903873551345091365150481169830916391941539223689101858747356761270575676363931248802420857729574741751711121641753630427650577256414160929658448559249466210549618902625778689925204381897362692448354739456351793618071745146962527167568137405497843101970910872218320509795904800575079385935036247900266287977888773833333058969537150669359378249567335308572244828644083595104111453731627383508262324752238311887286987161314219788445175998200856962620809001173936508429581798552941619483233782963648137613095631909996725536397255940990333228252677876480478371944618660190063371780023959263707969861370601665297734577864475763936539978492689413890005193517177673036585051002556672921469010245638672660391486799872691794994940858456102879664736788203184388758730638186215064455389128923830906025176304868773570296946707515514743655387396224770437405720873290247305470399829801913535090382664432685563311648994400574726907153999613680499252217017989643081276091689032692582907710311769621616129104402925185160860295019047670096367250101759302711853730749777994066418781557698790228834387681551780614717147862664489045463461194563671473410959366588952543678060300277465546642314297570063019871992323019206666694959951165844440703608085052512698314101287230480657461547957860508231467626273826261216145289568725204941649362082596049865382597162796233202962846099224370269971164244318339462733906178537840151443316608562923506588663279903076884081934126149448468942545730554281243748718072849171128891632671382872850898664658162845838616971580999013368953484466288903469851699608132358676490714488843651797420880205773270471009038835778526147024780526672711167341815212391303864573852676514213877323467338758219159142212786943917401850715174523387134470995274610027007665820341053693964923283783716649588306065221012887326569353011278467085868356293905041184195341872290478712466107528592957541408182164945835290446561520373598238425815810150623890550729861498901816682220180702223857194294159949919465992731984635463874881351008036991944149016562497409262762417010086162173634316251799360518847751993865050521966424864167323677371664128849340697003368474694584871296087874659016704545321375674897551962813378238956399882200398533887936608082613328115063442955161297583176601716296674608789107918264838605149353259038610988506526962058963883367026829834387557925213870347920237543833609885665811888558658759971312827100468966857858811909606451972950800758633521075213171248105665251980462157088005721627847602044746939870207573620720828893979312101283798237854148185849561888909788575512043649011188822052371492781163980680623808779661278280059583014969060456920057717496920451180118989342862653637740682638634862121514842614203748822125527475141747409239651743280260639194016919575832604200171560032915213951155453559632884221536101727620552584388173080969915853178841077142093904923507217767686013937020263106897666666185114179830764249246876788059387955341368565154648064010321564127123693879613964229888767252473237267865633915481601816925307796091502661985049821653205366096784909086766324737779281514101170288094111614593102589381032915817737123802306691631536618586346918684934116948491883042645864583433731701454105214619566758957534942191419054714007323191038706677345648686632765633169630515512580834685840962322161813484473722249426224056047421705518976112331106578395624618335895491081176212968644664817066986851961252880061006350070745399620593826879610603258524366825749554407991667876867099959359333104641557900921769190216087322782950191160290979833590510767805371634447972411690742375542416206210352118549738121752870813362535730415396626208848450446967266998775666865956434432085309809455287256820870661880748869470960388044200668921282662156336647608483781635341630876511674086565545667328578873896879106263574673343623584028757770087282901165292446073321981267047054157145697959540976622392355776297352191430948124386193497931903559142495283163131221102741034169287142500706724393545748389761142941198818732452757376986254359681488032963868621945896097849379074403304576154663773295250324954390810177517904107839238507269805118171424644073675297001914214297024535012567379135482818327131156462897741596359264519048674793730235088198427003108706245844868465495200939344774817654279626125564110759274412167320226713715838015072744660162934782650756269589494794228474428400445967479898468731991475822639430157826733598090354792242088277686870975473919749224575907562336263915551326859508985181787006858767792197146846071046711859522040220119518342663251280734538659639030884476077916121319800892569577018222767566029502221597481277194566520772842817114532051317228007979428513894042529309380517440934579298787959122163216699042035804439842371547361345382561291173817119070093010162992660179009617680497303694727593544200687379812129774433077723518848283232924439032558440213374107690138695237518037603477814953817668663870876487093425460967027754353655965814321220713890891697813317746270442577041388752860403077594424071044765836704694702054114951526391827263085938920814199956180059421325126027625384163406978053416591941385660506092871901092660433743302159775332272517489700092813404690401378439870527336607045238427944037411189626203951753500145271721804274658295853447352236250652281693403852153604510059048102300616197712405320994686508372558360936473671635749910534067155220932427222151209360673333321899978928705177828516869481816825777596457579811932087418333436550969786776450115505356540105770965141205184488700705415668629263943963264458286537798829148284768138566142711079151900582858068988251756562776634190138373539825106142205531855249162170204447193171879499395659377010630200218856216834645865239324848956329030548876678340766717724795272942646551960897578958856932877530835948583118787238351777774428258204148887884285464393226327716993931566287179937669163119959609261312160062591419606720020159776821912742601859322006509448036941322601458439605438017662670728665872082223876732199510602914285923750736096516158635582214415010103943543896908554454756349820101105786142022095587875651299925373461781720181511734082940053696414351319920688004644456954683894950492839180230733993612268529268446454207035702780356880871432032548392207722550183844067988475252599102417403532252182961908579390484302618745170594642813485929065001006621476442381493110280363461642472270102654710038534572581313334671050489230893462288377287101274422253104168386797137552874711034999487891393326385820875937537385972093656264683292386285644954929155869653463506273191325738627932028559004446742498545331266764066550000578160942768139358530537946707397351031019816263877642002185706396234275683522853928913322008678615495282418016920352228789292390295282489968998847940395499259383239060163998071896176663156851262539162426316758636450299229604615004998300648523947300653963067219441211909516502703421479722592190697493367450651760511778876206822739865471302500932020460614728804216413595517734492422930658694830119096205508229489503902982390297559058325914934573117351722263220152124369294157244101431704296002391917680699632061058601125961182932894362551740105565890692547963435735318910617008367541690604628854212963481024434053275830466398738644156548984418083695468246701845614025309422564231908368070805941478827557156442798861515425088102782992538884969565707214787575757158379952388702427497835952968194746922662386012015775486314128447549192017482902510095260599202872945817061809534172808607616010577766901158586917609977392820668781939852879601061548815048442404883956267986796573667680233239717162428885714036962937787066944170598397386249603117022113320735296320144872418280759918869339387066987771899022776520624323582865717568174818076952731237585149931822100103771750880813140104213256136671252643760457537670235269223020109661409263992184359493307049506245270237509591382739886963069801961624237170594654706889902535555561112347507804584832078415527442569154016696004005321827728204496119178252922081823903239869145424041458034526981896238358918739923014462642331534076422621888201755948637482708936089402293185311484696393897613627582668553712987492006463628206754577587263166684758602388330195625168853107298693721751767218211455632509567378280956945542779366835493897449528162293362365255246339872670632290152752141398885085776885298478160224950879969034676153953376363313475182677528954368125006590631373362209927429363303239342357152820009470716716795586788833047338280017729657132780152188310675699264746341973895068860054137762708472122780228436863705547754542780842084479354272873429488635006632576567020490857170739560547340717935365054167177775824478477287152022051178987358935792372464545856378910827386296201358440275903134727813942195804913025366347074064131449330436756006872557792858549150599898718077404774077630298456699273219032238882501211361446100634954728939218283021622794292186714108848888605025800113970506045834354414428569141133265010767489732279427711471465003251233227350011754578614661388268650641548760830072437406943304263399999038377359315926563064031127730148873918599840472459695347148710771990765679970089277984551339480319588012333429547253336417663073143730824423458043208062917303180511029029679043182950610595167939599126515983850527225906024368977854476334876864964529913873620054292639166482245300057536270986298892067899762759207878511637992090121027637523214319206703491237353865105512233353075857561665383666768410799432369893372124587411266861687503490103709476457000119545250931083953362432047142367730797236949460417904909606826476089641804599551690831766833566408789719424893629076653825726799351716893741238711336100331086346976345749893485084405363367749103925706786304820403115217551577092963259003854902686189789808701770899525292105348025727933286065355958252678828504827226826955920119702818554975426689581244303218281376247590808618078258305307699453945147856646010585130595239032478736209772742218525749569528344023626205594950790030262326086248692243247828822744929748851010347234296455047669054467926354122486947125699641287885813071693796179910283986199396412319668790076725845030987493518319799919632441369784637196320162571626729423394864234215604338742872532185446616284039534401370112054840110560007824880766354136040262481585491388763213707523739282822072483559045594862949475564188537877742053466988979718997004023294586942867166144857750680153597198654405106410159651531084487549094923847708652789349902235364429448262087914970949904551368943600789588590293842060287381440082223823917530761384453093547321026442457578155046061028166394189286541106803688459451808874069902593984205783811153143556123471827912747683641775780493652198611230213408368669895777129152810193292569825080627027806400934345680079952883420979548706360901108269774367325478679426558226117846846009827390486238124213760301416022892840026136312953292567707633831620461499728585446368649601946433570666071711079877141552815721953818419693078760480020295989144252294413764240922821234126328308991646904965227692510087824366000614254221571349315007445720015007857568403977094686539484364293169152350762857064216853515120613956871961463976806158877165089393327524471005068464397136703146078140488627644412540658494088909468721454083932084735238183727483617346255008773067245728191740777831086065375263422179578045109674040081145364794829538901182904110826970810802739762120261969737004638076233783824328661603592209254229261128610612650322974244572953072540389779005128373203835573519645018552636368879274490840450514603611034962804355998859212174746693253802426043183000624065112380492679919290305294747238891361426267738588352508520717627011118292679443418779078019708130722155255227760519394720854733942051990976809251597654178204086054996219182190679326670042319843781711625887840014890383690233211686588024623897088601629937531138709296655980902653794930387706481343935558280723548674032276879654224617377653482744371813616063268115021987161953137586420002468823089145554188062938205918460104475276037687090022414487042500780483319743662022902394228141625888421761695167525501377375795124351040529089272241671591441141902947050429840853134415661810310198731963799352506339039739966284632882771677045097314811686464880228348832132360111889237697424655600826547994754818247088748387089692612266530972575203122263647294277642165846828823342628270094450829947770562433501675807435713491310981509625221178214302485030090417234306750171595217266307133029045554520221506109040003620810463814984888087768632514876763319102570536470428573437389848870025153041536538281239262351173155013514444162774820402820243642265532529445190488017771683887051594627439235446573611291597997096413337284739768582340985167999872308818138411168078706994949214772986319388382425955112141401687495712336298662738863011264842785654875452118663081501839398371206966325941902370852352880593040694371882839401201336174072256761760923935940140696737490916550647908815250647748654775020546099213794799774410195371293937345306653638839314746406445086639617157592846601144080743100829052879355695605357868508792091024269820249385519823831176510947867275934796361959782514110650387877611146655330390147888875410287216493466239085134683823949415479909087174509319719566885053549160766476231029457193206777797523916257876795363442582669813433174056982297433844299020041640019635736404094004160171238477461674809899958929096181317035482755823082873350392966461980600016613032964111769286157655522586720173485954496456177295590861018044190842622361048263428597888139630453437844356602726056776751597282549156366199782439077321219984115216688159023567017475369059902593543833632030231701486013733002147676014858115048669439101417565780950669576953238411561730948510694083213922598529702777149518153450050097320664426418979059285011752829765113920964256954967186903463970884345714110303203292941834065771523460288785130607142798514141794238913391529138625006254091973169848322238590805189221432452872250042721900656602129029183480512700826499336568489204817543524458053237500632261298960823224440690880069044484270904908802526853588133355287926510229500979692524890708303222472516611805212436459095533728168571706166939905936116312099310492796057154875091566425926292883990257043487512588079400704272492398400921545208729565643314301864341238929404510050201182003373857134107227201572085608803852487050907010848610541196287318141110203344926564203224479969136793967224516168488686795033811397285465658522663351557595015017169547144977585015369877878605809183779065489986630565017553044544230976216569393664514806737732831404289058094798334794918877018136894555000338946767232516872061807919011674387309599168267415602668930201241660675325331076641707290552843940720348191930022339761009876679715661196918151056022175903012062843379955265926246438171978560333975466561932799719135816270468403221204253095870186916104055980950439285928333122396233607890727931481145654638728235322573682501917963844746618871360315915473073570354993170141189859935696188778833807438394348512627773960859041564740504371358216881878583206348113565998668314834817855406088255846728730721116556792943452955627802152866691009147567190271763612715321217661050322938095790522934397411203296495695109691912448170526295308535681744615330695961813132962107441600940293022074975991736948585827066223215843275618206257983381147756791575958882029953715668563256202172093051774378242385812706136886491737963072111603648931840135785826421116587758892429765990620892796585167152296147432032640798366655005026223613587257231299230611037758303130936216597900001387249267792525723486914381895890911099048992728525392852376258726098267148848554261384798577209746558858173361268012342899603139520913434227484136660415282670059383757277353250186874403048518304602171893848857473860985037287495582096416973735002857823922006143938650860739150388090105208557565078498028336929360833487897761534069054157129133515211063105806941638254707588441022778853054367932013667020064772128312408592103520750167348575427120188056221589003448726943107431945073833005632108339256903730823632335129998904489347890884360777209815133564590713243208059662339063985696137444915964818232014616276941245153550932519986312762505987658811169998186729465191048569409312451868930392160599321118334780802776009878553582264973740775140368695781323601603165079601237211163001142124464775408246845456072825009740708915410330749055429831442602085961067400245267313188448940282893009555937734836869877589422677464329609361047502826785970423554696334892381805888280269872892018849023346142003716349311473606183722089808357945781836472393840781790545097855816589706182535374115099221043971025821955146561853760666197049773786117825308664999362245952043370541807089847449732895188898586097482822029737957627508088211729354953038477204014713138982389062176409294552775655512037015630536974936460142228609706776726208492881450440633560491796036660104622946980737520484534947804829052590766219886919657683715869831048749292898482297128364378514324079596417792004676949416865673781551958946053846761825978200000933222133632360334475600427389233098181905937778043561531066310674723164833372376217312732907055926972521197664498310217199466951332222121991585976943544477866782695207346658626290772908631357219027550308399842824838332697717098577215595964325449539317309631090986844820547103909554716311075359407849461460146323281281894633171463143773313717143771312760415353375123971360658917653841267308892346922217112096944629586964209976882133762199700796957463011917121721517445372318559428748185961441456751761976823077606321981575309729555376134137523336951222997387536198800507824313803875196446253159576878300361884580286041725495751582610183098477217640340204516552661806340895163104041888722360847094457912075607152935537271328206413910047853696249465115293570314032165739940843125121353266532644954931958820248032936457423513942175372659913723260590766411710634232078344708435301014889424113948138976991085768616107180232861255105194169191338488526339229452415430747213401408806010503686887241734843450033973395197561212438504096863924483059617899869503336988239360316050969838211358105214651471290990765336438305333938113961573583954620707152713072054726000822021653085300395015602233847320372139047615721162252298301498376015158494295912113783003405634471518712734632452671423546673520571134228588053236722331941889556373614730880497583188313391760520838216360510232960242249950674654882848639857439560526099194801020265589461987870879364546878866403413335323879860299771527581931486240099271490489575680565602354803988031679756237957350536234695526724014895962656657197562735144185477202943900999731543785905627071645232013345120345868286713785436523837962306506524656681557669348184757966150266632331931031183997466462328296811080199082519075066386807798234227102265126646256133917653268485804277688281013326485826887414049161110108863668685121000301246123689384514912539476449982449052023986908908294341105602720760068192072979040675677420180248187383763135137446959786078214052886695761006330772313122985072629344625924075290277685279901482874671793870996604106394157683111212254723428719696280126626800516980264927696267790415493092458349457554270999789839082456697484393909801562255411100692728374047668580416152799066649783703030186227462605357141631654706409843877665178503591807582366158069359855421748249669469943258061754894876473937768345560289192929548010845089928224406373048230021279070652913924915329312581617811646228070900272861511605431927813338404606164046611308808405742630858780722671171768900568635927863038280918773840750689953844956988476403296710990270910008652827960175490622367219004327188945809302967451512007331447440626639068706419824728284447544289251282324868343969757402437136000540490658947430834516169020181219887952203834494173799810082401918329998933723725518621188117101898192213834734995188180581398805018661906325053594879691762864697454403766580451915226987227475657179704683220090343870164617003733927134357542322081163499712889428011512020945200470940435414319869252974710734275214575820167424149249183442563307606675716082259901827632526394855429344570471065683574952352507416718047640741666988637579507142740412093153857477933895241272602640274173873338494717896866080740830499178776489332517998691822326251464986983326219036694725954918287204043741951809304832320418929149596012638396075329352502413428877316400668154879802155278174762991112528754435624094634240151616163135772177352666332973427594378114951579093023544219613586341533240786053730025250364486681083114072579362273089721796512335730672679387379435157812885974507558162373905878103968550076747229485883648018971028171583769329501198760549156608760309848313615127228815162765678297255232329805051473733906618813810268953918740707210089588080640043228905667486369032546197433265695388112796974477539810597721312509692215648493005261953949062131932076620221857148882203989994914953411483333553359894900256812501991842297287959880502090556175826635627239085422717956189991719414820275040496862087906534190803978650771691425929131685688466362699257539035441762663387601223653089256328938513638343592971290780915091683482217168316518976993871501224040489563337436429781749847971373074439815050210169423574589491716373498611530035939664780882073570424780681418518613102553104861809782692719798003421937272478530075833729917256281125097419278041075867905705717995911087117450199910778031668489561642034831768391854183532454279888341169815806267866019943132313139126295617927684211138495817938878239441796078256403044934146498061231008364328791836964881378190292779801546803445018788360089793375396346015593793572968286802431346401064334631843748177413591706021214172321541566332991957141277012611585910990816030530998649294057313780485566093918560986888560432099405854201739279872307924525924355365738453476044745427941969864273095912781492848703158881439265411337112285294338353222589232468830396380525651323952911487949665576186361039567414051303152166149684552929428320479762692879530029774141697280021932124900495216486223005083115974436374461078729818814504406241386695756617699355905565559363322915758529802996368143126823237555778284014908193452967700859322512975781475059746322867480070339785508543890462699889765738076067229511623615633468079819471440545316226580085335573537389407324584763483035249345738932969348174032764175081861857630743346268248668442555491367734454898956554208990214633133196155380764749005120073898516438582561086707437787172645363751187945909838839247378327578764980195594397258263699956400118897704544122238972846585360871859282384132169484344844230334830604923767016579843855436076188442073968158957199882544805076372092274423002260910360350070246710788645789164008754922995699439126167909451979902665294597599266792428916884852931655843948049162990673256301632158188673167376592183167934550438110690241332995503445614497800425047829241857181183526708627245475547439298981203633567065431125191593657737266856513690021997877731322233452671228345373802472671181345315197895971206264723106808966302327104421484630036201858659830509601008661895936891209773478210485315112652184881534144990984365019767989561485960993387454826057378962346926136391505005721218973137177275345473960620950608160005967842009189756009384276552654099659734054478774979705467760302746161620932049819140590171916580712011997647987719833916075108396575586002056053435274758878533578515725321356413098630142831861490340291135701220368503208823117988319813380357579354304592838522414332491690572239608125300252911376358968026749054971236810646885851840780410808196408887701571134866022861632013582708845625818546842508146431975968853405692016723793026313262381562297427764147204012947052643293032377331775305615837858059722577703697820291319221716054683555241687404671753361071935273502790636888804395547853737967368256621558233807930467545324089400186470856835700169803886112361269592726247840229299748878288908347946242962024263359731782011258685466011173613494577437066217880197839214251529042014626245613245235275584428648681928350997688282600323757501478746553681238564023595033391108042465453192420666542306980805886113935776226457579330990591107723282007070082093585987319736983701456521625145269621025691275431036638553614751653246206792304808351074261056947752193028737900358166575463498424694675654396817383236930280213761315369690961603804831230733183516827871143015803696503547994905931533689112880048431374803103240277012040318984069201295326077830849038635182592523957490831005262847587402356886206436835986107420385257558267072525091436551623470426979288682773392761413249840646813251897761624324621882001806547592496822613460704556856221305824302284665544109823721449201904917968907587372978454235844585021970692640244541344640554324212465804455960495831231063418000177793743215375650750665300625311536329180770032548513261460381453562326183297054524301959163096515870335733611703777277594321268884323344984460112199384988896195325882674899572306063483351682588260749731583876324944144829869329105435647887032162129454207935228128461526093495167078380094991076728687573615434087182194073287520099244059172731088185682130934438488273240186310792216243226042175620917614382316817376382608773159668082268271335401058813503900835625079743890941665519444123041360328879603503679710873341593450833839166924309733120815976777304801657021201432576524855347980690326855878566534584267935072528296349624391852618997134596347358343051672469996246658708486219908038215690028002686535835546157851354577525930770874545356905675206433614562421424740542181352410014709806727961062789453716930990210064042038104654031175776067772211247014983112293603804997525531591123771995845336344349674426467869651034239631585475109283395010759038416493728022266990082423535377882901542066135545932205423702934393257595640486056303987650256002230305870093414532317423849899305009173675862191604259547759246957069328806575238183778655830634102335257309795569428872449992502084751648663740771375837754690056276932109216176525426067130605509928838394451359439572972167657386617504246318066311809554665140037789762980985480124081745696130730544665399181374748462757462003037574008486612635873340630834551303272933372940794795396742036018950281997418665233993742539882792626186229352603466877114763604675004657279805685260882395792560663329838526275380302998478716049593083390155274275881441424746170427880078945252057390695747793561904768506548881887754314581585727870404107580320666495416623769032268233706228398658468642995527818670245592481252622610830945852545905231409365579567657361389024723298607389520422997416675607484854282402144881613381946795538739997066891185403077659857913347002586818000776752429839270040503334335370365054117089620068108964160179680104177974933435851184691649177016357119151594865826033666670837526963091122389991629773658368432182033952829128874295483890799450766642339964996892937632776056028159606549575477258781188614098960918615887530363832017641271581310775149560292775053644063511182426899636651392188317348918298883564034733273625446134658711489678978038875375461939588897813093291722070559718333705478301833962667144054615992161322557002355529684003801259502201377610195191436379624445249191086932306330333216085948003415797520645592272035837212650293123639643602593618998876379269370538839438383855197319999875271071700995927081646058763925167134647267053007387054614304758438483768731886767489919572874845669589767770008432367669864131312851136120158480155123476655828417352719242902880415991176504901367737056825340798462869149291532785840890390199196803268142834484319131843349167055262729211825286410274285674824676337624728353628312920776082252397487131155840161414060107700918342133537161376994678745532242331520529102412194266186777966833415901034324913127189582128588148823186689690168790251452181411111798317888888242893596606812677835989748060338945456561530473667520480966546961466416618174400307424275391931111487851368098595832387528471579541751562778441445668127939805286537690111861014484693208984435151368110780901892655113887810660511387254235247701335600417315364544426798379557610864795393962497528286628576602202103062735551338289884939177828892529493509235154395494013861172065416441518047547872384811532743077309197004472031900118844945133038094505763071048466824047942985036034759318719931962207417475782320988355836273682939184036430348854699141468271879117990779475079230950882192589467732650980594266552223118357593508758123977733215391722147588420398115663564417690620472414347538773234449878469072763569845212790123704345584654189622895841631270026795849054941058278422871653473189931227460984089632235811819197912275358282258304099518437999466409950357861474710792251811982275535689106111811417627273341671984787686404792900071137004068768146126338186891185167300686935727118978449647368391311598458303768626440241358415443530288812463556257942596952247390365422305355780700695528971915235830846149201727922693525495349785953149419624860124849912226116168778572542185912523817330583929455024606027408784567906116527347180773549968213903756801582917755525501592817687211796869144727755842696606652518557089090371033924183519206309810817948182833864371878051383077365723822895626567951482693700323890681208146635391949158432241014956284528618551289674275960006517042562283763742674873056651218150825058238381372783969218603450662241345193730290388936976579234858654000404848036440580741040367395172838589404101685680322480437286061652048596527194539289632062924204600573466271593511304497470887764758660905400943584045682794822443827562239713641951842847699652377865534027818180533981311011773656571098233112168956170798454497648062530941636831621327758783215549087827853675671555237465594317490493217696793105251315828500523490301749075302723267298092153291870707854334699941655760809637179024813259550815998760925545995189083646435811273088428420564346248083949690178285661742818797225365909464876702195660735082049717780288556326522913863124179328759114756897637182076879093803839484385943004402374240178778033251632291605549244060342819949742167650981818400346475101243120924992713114387177271859515160039562519661722402225485350150191396241524069435530155600576827467365947876127649706928730126922208296579625724360173791858555069465390372394834179452142402626872627894798666068309346786391557230965739986544700865984940600194755787345825407271695336235936185514442872015697702897809740086840490888278023246581463592185654721286870025980887293759760410503457343344621782386053631375701089395325520407732180627123447359435035532562816040156746076709003920944675196519968190565769962033072890403689817821709923124401503334753458528841292293606827931092256093695985217066371230818036149883405445243049487110584791435500666769774079819821440225075033774991218689207434453847309110988904916387811589311660913592318070123401610444611997097478584888413130246233768990281392981932835402138720192521504000820391487297269671580104042077790184571280944754875526259147744895278758471316536151734503753970210922995040661065571185702746506780314755400478774026540079608570646841167158132805727047388583013508843078463281780617461770057299119021999114622674445073339408323789392368905408811392940354516534797667194300497616705273267626277990864360258650634056494432482295977776219536696965262924703910044298085049879664073603824310597686677880415647614258236818131116575131690391156228064358056887153741934363847774774729044052385376272996937823691122832567160935679275386900423615759703640571497068577431880555372080015765757575534658014937385207185109101243330265580537297692324303164099257718237530841548803384095066710583991619834780288506569752923369070559607289608401041879032483846344856371776394757101687905826794274620038172562432362064490678936865176676986625504730612941450116355031348979424113506063062988760703701810207014271967811651915177467293000450714757630356528065258738634293271051137007496731240846116638045437282701333207569020609417377543983735935136885174180801337068777139827131735642504586847042864956721277554388116921071305830027962193977582681771657015130520073749623116748526955276125431400649544745904074455592557796974538958239428172677903214858745437900256874044910358501342437190361209218401554532201806254012838517971643905244257059103995324310587054791345992151833768094554320715745081754893001133740651971058367273232922853790666615674995943847572617217455085641842545116025191039589146605301483976657701647022639898223810982332322191631396659063163986232917416521794597840892470925600241165722734730871308031678676025729897397799760403755779844088504578076653759502321854246689363396063621987976988107499201069600494942234124519914106971866707137872665825857666944487887083267046605685536488730484124241100033897286879689726278041144031619589436293520170783779821828688708530560856419142662756136969971767957718404943188010194366470306125672854399773230300494183195903927396385174259961504811199961333217199523352635870170948590909443626337256578830768458490759267671235974419871631326487239285997360281445999030603110142737442024140977198581237698951720582622478303524469126744795076578468743941275525661227657737332926023916247028576027158668694432063325398890776197904152532424147734428049658578385493731546590737525612826153491129373785529405480979539664688864805750176536782080466063355628951173433867172627296227309443203737880942309888825019062657138366665571338441896834857814043776704893310223827462265894921155577838146305991816635109554965882897274529615420418310311130759374945607444102896380706287550280235794878233554223791125733362862923986282976851155261865886670123248033395857121299053872398522991526019706135392944072588779185051861163412677636197265336813050087843626078757156739852793064887820773152681889868822556217189905029951031942800257635796584504515936131428286733261683344444591855923458915094485406148041539597799619524752208310875608891415502970342654808270394857065941098174684788722666611796048760249237625916808131844085445703962511177549002852838282177375224979294168842882853690253295496524202999141199100718699520214489294202365168672708292651631374911658041610959305326519036614063478102806445004795244555514911172883721812845878344413738917002031288633554748561005724905172270413273196230771831977521420620261313416761730977275612054305041815925419927904114425967560962132251170300666271932603683828446835369383755405485617115370101879260823537495161514218880615016708106777451630340108041783253708107722998885294660451991627715899126426538105909392852762028538996465105248461696992476701929386491649209541293096993346166560270902144070429172931922851919811062317080281760239086422110904384850606691209994332994989862775777661865989710819953781212180690436724311944070988386055614291885216808578454618768498165972447955815335158597605533426237154559722491222230322882311826889182870697163203673220284202143007014502205329640855281433785857892136718022913174109153940529948224502628235982770994796082475590528123582985713554851531118485664204425512310710481937599997843020541639794738738110556216911821646022624711098254336020486749928594050458069101825639351815099240792504005750756827956490109350775061450791033126823350514011989318547822551433624914573103804356725251612081410124271864332295768709041506135547785287020028867963343766782475081670700720576411002129971572305386975699678394402198239954271954317928163637374103468136064227587861525689399711153831990893354185427376078521789141828613673806041212693407778569689560137119207293773644158586293091700643106588074851267319030641483238566720992995216698688570647854614465945495385858437553124651634575616847562814380228084153919753917854297015181743874636872416068178023114008954589387500205743020186655860239801341645285349364103590396954544030516418379565013061026530537914564552399689079845592780931788947996906903633762170042170846907834754575356871148177398593566347442063890988880575514286134414072396805244194232225355235104726662002597575977761706730305320285803643836618668210009172876091275533093812667498298742662752632586950865753048300670314189093383781463188234482238660782245928276309256088211824735157551259649328788927047908963414367526665139736378090966338942408444907959392013578457040188523398425377643181344183166916941359260879253336655017547038642140644848077856347131602827714684285081265922551587629323146888528710830477726668304063779494584416683980596686141462780522948958453272049325797880857312113650316863683602250471050372869645237627103750438226651400007877653684173734549599219975505253589129564037684156030057304971541471081195244460978698350872290138808955723774756730332783599609193091108592362337779839646175370019811418566445692533152707390879777960490280274198389178476040910005203750165724634628794072471330939231430408043884528306692962359152765087148840188538754519221043653055010917560791542466734039631950496436073692944093949115111429778407871547133335397934021345622097271980844752619591185679793654536264280779961738742080962336462514986870774885819728359692538256134983246589900531292600246304026089731384105280103433567349613287279624796256146801756813076760975441172553187310794849930261003971065679636681834789369811601114905007601098681100840127274484329465665025206101192682416351064363139778413985960709430408228430498128032264501701844550645932735834417714512024454360784298624218373488216040636919343260089271805267440126312895422406180351836202805765201850915456218631914822624408208855684418726404451215195174901959360057498520824989652385136666981220031879890626954680498317711611722429286297855427174254954109733195240473432014600751384834371644042505188331223837378229050723468695975854024820520134391380897380894699091127730282225192445063690123035383244719614906834445403167913323763322908614469991852730888393192402437349801200773572979149470742836216080919576429901461808710496851493256587692042933290004488382205722242242158807299513191131777109457470416980510272469203847370423802591592705063721713674129707032692113703854187042157874186759693380983964897970882932284127047346039896839791670086991588115224290707730770659692547063898245495492577307615751148264592527543125548020537736815132965701045947357674065978455103401571227307880412314650094166560213526888978612667031091299820776691384735792833028176193123874231175392068789124855601602503784659254407318214029520402439701297539697696393497451502652526344949594151475464595019165208401174633606681213001241387823156203796746419815248818274080942350245301055294400567659634254860126011632662465772337197773716469652277385680565668057001383727083110950857794829466605130774294761125926923512337618679409234109180122341063912626317339821948284707542804838763821825040236980010320885757038493460034772620953995882693898017539968635927614380418276140870181188126998750105789927482387526295732444014710463467956486646358776110793696996043556949559765623651087121135842060645304005576790864276144964134204367246111434180119458262092676602610726805932187868329171287541099886888234542134730996891375266094844646871739386536365471089522657109147378950729754442816896745853764325667205686302768490949757058850316343824564250936217455419819734124808760316442118375795804710640869571947719548069512131342353823577803365686101917028716662773154494306442444393557435351478342866662526026526281763842977166314104466169272910519777296486489554680168224030250076837820910694121466580131096675126733805067261894056541089402071146932101654332630710357582956553206492890053948436717884505803716088779953350715133720858242462854597877999378741459005563952605786012859941081670791547646732117507529995367634635862089875200853848228469774315901961615605010999183520830347362538545844733834484187879327118813316367108659382241991167785672640931792905956693364127895287347129991227803836566774210963670666620194268963407864318169456592450774495059513055268853962732173882984577748821511018209729917607885325847738520313757511553931850917194073950180985764713871608414055682056219640805539334257296124416321818373034864786856840265243652608927937404605841073275624499678339272615315729010230468781527389459114281245657108075376946479424737419626573718614673766338513906701517999898999063217094045356821779982121858142829136339928251949324195531612248748129046654470894083392743389679120062675536110769066040751658275688214649394831438309942369221072390677078073550512665325773747612394921000700668412013116102797559169461962495138274577939155883974098818995607436311585432967480468262561077747119834326783739394376239749184857868599505780197164251891454201949964697123475310662738355606913811554789353625029824012028232330501750759192862992947697368441036417457872500912923105230071373147388114112774849222158438172563602206246621542796604579365253078515258742698811118786572195517122031806637720672716120343361907398093523745898125056492624048216964085113854042484874175601152477175064415387461142173085125512081446398243600708670330222408070142759320344346284222033921348874905648639412145959837813880825743502474281793431379610273706486967227946392784709238788452557196334037558374903796403953358683939563658377657728983293510912007719942960419286871420301758079657956798690931834678460785919255547858246579873464248449235586706997363818325252579769627124292319620187915656466111562124582541160320118906089856710082987951461478352284409288444023806391594526235412744197539936588636816370148009178573344676888700745927435805739391334125278958766032295574216121954729156184492613515404957306333634920878865851371257406352729178692385474016877166273847404029224008976488423411922274044377973514642253496895473055986322994275562932411818681715838569425823458026547536495870946560005205181470695830897993360499475106622298549910066791502819228310860042039972677870388732326165163738827881621157834634154332401963409402565702557132106605581162096235004421102732578482040353436514201322110445593800622178070364937995649592177232694008855044183067890539264597232270625221132118459799379826117754072450541700196966876440671302892183782694870071346566399685138091307161045669928838243834265130847398795151729331211409426351983566903549844033168225183939196684570208435875742600928819412675119675461273982999669552377311940077711348159470009041667168408483945286288652422724900372541066136712955111078944838899242988413852365370032915525598315304685872624331701200922004101475738569924930983261682283081119420765182555941227486556064731781321729855539772474590989717134284486214227231536089483272239297235831045946456493985796358429359981346315646020021326015337101910084606522429418239003347450068242960255307964976180449933681939807414932113022575714906491864266440871593535777713315021974103413892483798216782666473340156648074658918498474854808129310514431314070724282110176084568701712631127147061348067155177221197819033827507265958509715183810727903499518794977905871696977946343741804347892212553975728935334016815849583538314123656691371458939729638509180813468104840961598846652918417014419030361604951582621793125576564584502660410065578224092901986844348404179384292517959155172988733289501771875608148698992228038879268985370063363976268805400541526447824270947802790943103688853470624400819106677426724180548185099101452396087145165188312665630195796193844650877633515617196788385740090827800444191095291501102363832025499762782047042147729869786594415107861492659802117819252372996494960815858112949493552018900222645511394282574401631569767026309997237313426620948509490084759134642252387437188481803737674071541001447627778636203297603724785119432079382136563835966707123115488888207309830623972595686533309062073026115483482580279716820270448953612262945203425513834687318548858026950027747318104081279762064232885909289199137791839218370215026774489695550950115615022624952459347171716283673708450658169000132597767459451181249239607276454681428419981370773935788206163384058954116349918192659955387137205275266020118968277822006931722615814917133064286252954129692917264256651266845549685533197443643334398956624780772980857792108059237527730107544038519482180699883208412243546965689639000284488915166485637494810080673673634321697689274489563838515166269108277599892305508935854223602107663956417267286639217213188802730942926495251637606143055352714363603232142934484924278453670190983577191744466993491317570041041980935471654121438297882174958422619837109706795792136541783200397327012349056985052742733397131845432035234244565050779444573409084448285446199212241555222073261541097369116622388493634051968341369211259590114811215936331710179741496236260811828276953062476004106827438613171464873517223191732693748356430492661378625881390622737321163754962869183768446113607129593772842061742870002308727066244521034352054300087159130394764549969639567357570581821019498844254944766303337328247501170144262937196925615495670971905965663328639583199739832145945311685619877387722817310139619130382721682778807795323038277615518630632386797835926512392991257123175068005812556730626503757857159071231444859567788194267420503737198837696228935188109580362648405825298669802212987207725694841405223240427667860484739456922952059315974185811841650302588896610233813756815861774914610100561070117706588782681328009709170136867771354288819582387696753504289824480607019800551348587759673536252793263337366921853506401149665162986592305959235709956787103264687743172031872099218982742268769331750626464233410523478320694589077178880686342095846834795834945053167761088544740263718270740017266538448658935969166805067303559924553559109455503885221771990925343605657016301902555181181884345774112567812803479664573103147257374041878406889580862135198812105756825299641844284095579397057918753483687048513449504960428034520358640416696524246353668927241587436185466189781253694917431700997156486817785710893839578204234155525284701155429693061229924068207075373437075842547199344901896317418306664929262398435904441185314392323833315868170956180558788593547854138071334089100819997358131019413815094261050079002469748015896563578977457973540345221490973842006522741253378109366315186126367855343615943918095001076615947508145763604957099269674493575221968931778767184056198756383897952053949857504744407266402101784567680508798321320489075417530692898345913693013663893869591193371500367237223098842101914822132026771819408282027598405584663374948076447855561905328531366328335666345742753368519298032955940098899222538590324313545923163988362745413348140183130544338057131059399218910004360659862213587872558901136602454323243925282852340518865717630127398512734698244655295951326917702989232028664852548979691072554898182545060316899337843538817225682135347839376809260274133047520008894208894190593739049540455550319528532471711983545530517939877191461199513490787509005614067313559308948748078771821404887114543406842328739257966789229308918262814746030041475295006338694147447628878348094393713398440369132249239026574646806876626752554374712091597271445351181536226481881286620916724104375505708928508279561641877720109138480846601597061314251668175021620692635221666921207873873145520414508893426158772063492942575855762418591933681332814082416810403313790296871068970690202864173963065861526900891976987909119505513348759451462047074100590693836293657171581301970363623604355672938867774168088715174070043286284548418568156546010047643810353710779057885381278254714500891320210607736159500392257964362278294861409039432074976030016221612735509481657236276975400151997544006301460503335338868697787272070755391743453664647253915078590596571469608117108876566504324378995505111598543621922716191594169397986378984863736508274586950447788382601162026524128492448835887892112997190885232405945007569020915271806512465800686807134458672949673879795801386935360498749330696320287664864086938973213193882287330568948219866463113165991710454933467472038621193454118199758155494101282406239444116861551784716073642433320528334024745300644758284693537451266161406656791990934187086039176763517672625973963339829050755225307176971166839056965722143898243083869269714237966370590145489748210345113377380716346000868576782396277660886006994852821709197838370274624399242733404719292570897566756434654078687802882714835005005557025725839315419579452231864254773689154594563610861130323420535458442927872010611159861799990908966791356471338278663287268173959505364241880246410639792730287180644937643284695044936999197506626494394446531155382171515977295171156723798410207950345952158263899574456082719754708617876486833867502925542018176004297251470089292406269787545825286108136980752806251174362483917364103840568900513822851112770265450099699613047679196927303444317653098118604872770609837332499768786672935791224065512097663152878110714734987576523993663322726107476647660939247681105659124286598720951476058412684804299482183512636232787873743859153300596863503633566273806773467840527811811863472821505543273330296479560667182490127366716823594267023075380444702195019277624466086745758864753527868103051972162928692517358900068913598367075865272389205572486525895432278734661954186821654524572136191399322030695044407023532469310959677252224113419161758466667430935266033581564275950793325931281983258261926205358285346880825434536939367376422217268942062529027500247176106008167391186343631551216063522081023743828162191151915148472956637651363283172945628788661999864378144188126680630684149915631956062712219143453625638841971302248840692383108008068535627667677528545162804834631426935017842420235533350598205900838306276589317612600049272500573626922677794000994047558796907563255523195081248024146070547204890783421988958342267925255835453383369164913019727883060919431030680046223375552305202024554439191699963524535276417185400333485517021326993133355497352053215066971171621283425373339124853229294969723369115379105589198408381365407219158620638094411828770544864046472744459212438650632472870324318703399618967881833390244526221276069002071857775636845906984714427537458151772209955328952963723707150999294451663703498233683120714467351700890510571251155993514425157902697466340496693119164416013445167582837569639241924310948204441145250849682854657147138567322371973380146517284856003438094088484532902117742574891398073152401822826595367084894675002055315466764959418323086510861130629982659759022784818899267718846797035692289187100742650686420048904770953724390624098216356692062721253362916066231373474675339215640033902436582064400459844525679380537753867525306063132136905188781074141071250156227288829938075300729023221718718169555529008349801983252672400891036584867008526695205297081494151225538963627732107794441890382401424841128503743459894691582617471900826274774842682502201347805662254342145071990439762192023206479283081993455462942437398837173691664074801439468769052648372567725860091091672287940571777824837725888959314095893304936018986683446318633493856904317821953349127003775181997157664614562193731000759566854396141646771359774394223168093894755046614985059873135975763785351498252745823165213361407489268713853041040216000855441893757930051746555880779784642248586260037986769594830473847829514954559146202216470119242085863548468012029363082682850274682973014469304985814839617885615669722303642230216917293343195886918380929041795814731136191376330049327461372729322169794033138019419351802422823742451065964616332940416841099192355293130859804946106778410012285078147091497730008762463988599790573039437479566225627146993772171136040984311660295135793335095128205954086549207552979024597250983049463090728396510683343079108571233557939293172991647768615318268869967853249133145593757718242311072173633765823205783073146586118099223345074253760968594718853842277921232474275716844042030882987846811107652547576223133156082251182761422912249751987734104047858697669643640645138446793452592269535333189172149636633212582678271050105769031068931538012083748349808342139373470792143588184311234632329654535844028888942104374192470956704836845975244122763887397147099415568733890133916012244137573631809136243972636622971480676187803140774674446896052752149572199246816638793015675915734395904887155540336478396628531061052274167234454532385909063671342360671940906127159094068755668885561671526834714523373561107808489952949514813598354054519478473989305356433838438067675949952489313926877552243156201438209700641549262397370916368600787920630420228269728776724299515943877330798326669883253130134519244950660708029767246592773661278871886473061358021274739079772841353477665558821868826132890714467972750720290320664708755926872956747927726542205953796537005499462039437794687144128652562537123567138830267724868197390068740050986504806004375054574703751940801222931882292934849746627378335986971355292791466639287965796462941285929013599525950753848993877064578884814955208647052398365475741365130575303777694469923232840168728089605279401359708838667279820882851603522801315162997186286599871878387637220547537545741568587672675013041853333097355620149794752899358184810711750103580848066125018740173313118832341089510940814074850993675697462070042954341548163379739364659948318236937149927719365413924250095044182585437602195372912447490688557292479130006227585396389295623180760770955283812784604865215235515529312913353744696898398032598486767245916924192968747623029317453126513852919443784561835800714734769305840305189306993139755282365807302304003271870619645057445352286382037418423159312338395379924645674506921054428935223658873528554521121953723373328891796964433868352294667631685388279382637138447552544896010258735477793290948030746104448858250299095636905911395463062081089799587892868013001345763112198755852824911089921604781799722815610993425992928384457122055349768521474987247125462407736924966124214326816317708180423664446007937551804195259874847322592687284905457516740653598676135402256824886202224821479061664016249890039386475244173755173914089437062153767228596625631724545486185769565567092381080972640419125096780180516886521531414941867916311210173258532935788600924188145340060839601039561533702719261625940120389174497686893223381572799422897393565571476568730024937362053201558975247434897659474805843413450087748361290877526245231225056977385639032588901159332565176491450891126746252321454842515805521114314548020545875223767498978075038051880673047868544971213432842573592302059483039877303770792495188839524219057037094488037296303362415338475253727832866804254289755700805787267634367211137263240052933310087234024823251218446093991063718931244721092443600343051778548573535744577848686336724041031045072074805182421742754489541876940842877706789865724813565699503978956091476729632319831625976093133078650313986474361356090124887877051342560035996402783098613371499754971910489953614949261224565986383900218048702766435399071502796068138001348102744858555714304050812324787140616828073795275880069763976679072737934923282177181170153107614246336802928578527328595942357007957781389214030351220729415247301951536771653713812718253382422993371298898781692659991788379606254950166718817409917887927679380839562400497288115126396376021432906463183879769639046592901685023464449227650115180683240160996292302717284948406614606343405088503773992044652659601456158568677364163241552283796563898278540421825922143996361965015922411531324708310474406919312253185073001002578649429416914097261482125647450408070991661957738267461669069663633990698488474274729287439477622205767972833416761980283825946131664459672091226210144389722713740551373803228354079096721030501541220790979275936069301312913382348087507890841675427174086441296823067885419829316622786001026653427737430995065357496725566307934690298721936063899732845428554987218303069909957703122501195458973922163273972473957881770585359222840638710722079815692266198261741947068830026399943925295612980239859293955391794216849688876306513028187248693414107257598200264498710306237500769801125340208365463178658829464193233025500935106741692284533401243624537332182061112067307339064244866544919065384380325843060374548339190445612765352014470998778140608618517872198539321370823263346042261871336620784565293957690843296515279412241084895369691812040572247982883320456367660166364134012465696392422893240489063366947982919836405167215857969705174993132488340075744107944911009137644033532410813162869088993582328097617612133860312233955331946585765881445259910722227614602417223614943586306921763333622241888291115378163397683744101963280823551280302420491706487385534015077050079597196691923710257649725294346814394266518925468318536160622152197200221382216341153404997888054432354518976508164718956760686662312706199449800018167971495487104392299434766389151526470054220226221538017423686231444369448364858029478671069894571150471614203809224838996192232317091706304960336351138056868243287169834204431459201988995880541541231495791703949335345825549787890294536156051204040095019321050302167272597089605130213302942712688999955967660644562304964578222664758348459349962949198983120703599477034762862563060839382933337157646195302811377225143537437456528887655069943371646902564671748868894720987756827331092521529076470546198744074031433258515980185802754962986473274625974107039378731480329296053165357960952507360402747498148876715763819348772636244117288780890011885212156921871371023297699775286104997125178950577791648136861633413467734359928669350580405658532803092921027749188933380901885913233500523743188634208747690330001262110485648440180851227836245273265795949942236605186388042979137701149909450219782985263176290918882418728072857676175054446641037339817235394249312898921656885676177850812446756534311176030629682381718681695547970632937118135201148391782823757058631480982347270281506305074502065219431893049550877189155442914258001885544111799826089702375412571967265174828378993802041490127721654395566385677468661239412145395943590126333308645323997535845605905463790391633274406560031919394153261064328392649288139208482408353026257246067760212992304831098628920590954152034145892369155798395487236303948135205370324757918433253999166207235076282426292487894773758009473448967367410440067320715645170300152902276203565970439158636387411245460218535730020747785095205876688778963113593446646237292190764543167227950871495116726105201530391256362597502032869743339874323968010255503824587744009790706948697257866786674993155743365539253107985492471163932728400194316706360002346365318001658005954474977281172498389697877478476132393719855644148843589281574977651175417619074311461229111249783724984506590126171372195179387902676043869623072571902068037933801693251406014382479036969310930064294037700823126695400141051891252197439660902253401989032470318325987593432721446844518925601142737070453588038171325316985855444057123631317030977847597659547574324006833352532215319991151626253866163339780394670233244701265837770035048737947429463944439764798472549901875073606800526570356331946785945256318405247716409263774094262960668990190076744783147787687864587274412724824494557602686756189000009999108280089707051604258328079311518926271044018816548743238452286724937202286162780677729021402791246873573153614668783359856268761932059074609781584704977033348363786944471764761433111212132802473942194273457819539257994171791346070193811854884477145129328067539976339984015006408434827185031990330738257842506260775671401169269005421187280930302623093125552689067122125095354330109611814751404111885932797802108728737932980178053636004891471579937392709930894922351115598046659381119615449071993154620315015900754058120515802975599059131165564514594671956510613637883219434934451368945090376634844283630788692371049425243742210012111706937435723995706294188622340559439500203815889403146254863646127546850705306048138832498345546185818614664162243370015368070104162009668681346222674701753492760346137675827227822718278409479996935521201938576545456900913512768968076428055879220301666470396688252519280028287278532641438920129903800689905911772646182848818153962911146291021447476662592274493409416619059613798946598110113032660773017727884825705980906590546003441823949696801998597542049655805667009520761794120277167212252530597446121008213475819896392525830939884895457411641964006191455269607835008972568193272398457665153790745995186893907745053014127904825555790107049705171008664294286512678656378944288409776322698670285518933463634243003745688328643765314976440301673274901784960961078075952621473559942053836487790445233002610448079891434192551540453287243092469955308446814225526351077106981598834882228673241610553713465242596029483072248012182769430722330350749370410549859342593596999469865950418686084568148469336988236686377921195893153689853302941404330965201312684306237322451326321788872052439992086349997535453533405526000172810960869333841759237905723808494242735884000009577467164347911118785342415458954550233070189664071618642210969784024000491507562181837080850581638672452145620429124955975437781868849928724505552158561167166140847813418993048802680378769405118361884955704338399989267478236457249064315154884261883051241905566738086454278941827683172242887349264038726808892701976837867582361096694840580977651910944761193292398183199076580186947970111032141496126753816619106830832550191876998390789335981908490187394399479779792161851256083782611240173051269908251657972774348001100870081449324795359292932402962247209246643264109909363726647873733752185113900967921508066579202509185982420358858719712803602471686969597529530194451135390974770073505028125004743574618153168700992036821155581312733641394243814951787918754178716109356505034249313632670836479092159887231732969738220526257449012617627510064527265832484823111018848320564487591686350077988578486055809926098607216069542394478569195055241202474886297285115035102484316112207630894804645642481768891608051046730439710017064675377102216313234153067018441081228707556406349452987114345139710134310909359209296961201933386916748774801063332163944970452122314783203517130965399680677383704009514270567840388931739402857821488749876970269886847106034597092449878914345947855843215062730653352592411408129393366133473778442027929497680806740915089600906217085796268555681438559850773562658612908772663707123706115915209407171183635607908315068442017579119995729175886224994013681871723860812664832663090748003087902236702794574186377564499116063989155927334029256594648568859967769045984191945282744907349020123701842376076177807303569626257735597602528732010434256927069159367590497136537492948687031669489884978381214243970049049812898887367961372244061428864221894523665203042960145135313223578867767297458718296945801196315676016347767518788650538798660167507895358661389771371353579448329442223075580922931175028744864014528011595713738215406562350762783633369041875537410750711165922641010176921563753953633598158388638300016669882951388127092918519346729125394410592802546111499712652053927528786736838940297934691930127090940532305654581820184434573287430509075184100653691660532582482801631516637908200126143052380008923486246955047926666712261911917248052659199942223160459708659673135198869982716867811374463314853908233949886819589280486974823916790691184851449360500686965907607722233420527665416876146116649516618348254329548144634483941836744538260492013343587548265624810258974060997212669409559051029771616121055032158510762937939121598987430218216559367763126257605861834201331369618928724179319557224600226608971081956973883194528934600953401642620160458463151438068586028934222943028353227684938422208823701853198824307377538726682181630540154062886259052356629302724612635083730554593138788249144632535448571462295956950674041438914768171310054338349170965273395475400368335027687604842650736724802667196150074175522988255863586781372120492349374157578663603129499402788386252582890498572481150449775789275678132410911150357434569254500947060500387537075393705817247322462720927574910481838611347685100585986196209553156524894329705127626647676103023828137842137440115953407867138037331802385302065512533188741014620301372534994794613773270850360681694264685083853386541515810524825027436680086566106215624974925519073618669621459951408470279003162711491003175400470987763950733058702683230235156055595060786928512032719106543071498316126916380531817870560714114281295262067733097573060400256486503836033375986859614958550570812522800026735801520378177282240696363836090979607300705935310087317360304493411270468630138486354254432623394240838522530408327199612799626006814657831202843268387503041083669889148804375306251614850698693401894065882206880422815522206940755809639368910032904850342380896865334169259878868671779660502632562047330069016157687246581408039538483448608643617854359742848646162844472575039341170546315238718849327964025228366182535818244649235412508699132276979462927518379549400775236746251835183579520631406618872301705411216601606747996619233090178073058245487476532631298835440804608502016232490538332409155071622040313131341227623826927376824255436505613101271630204858882133666753298780253630905597628465770017481732046294877617910172864236733778880596634691963112471886634809618516741261140114876356074676836181548330607718737457674404005027674934608864021311770738713358864377965445644199505968143326370838602220688880633816652913351828223830405004337867823924265218239178970801235048627503698791765072738004424489016734419741518145187272131055308489692306159411339696755531432067739743833060778706734249422952667675694666091056151081016221786231465876042773579287281858794555638014072557506214851219711078865850170830807853630486560326680248074488648968525283885985414099189934976711176759214693968473512244096520013809299502380595259352053724694962500760466515027729744214179085188576216448534215214447468792936470362123467330177530498048641471144538698861652631854426285022625776192904011334205897697810406383070025423291234280057725953419184793598406133200099005698536169512441827883659235430096672169310229176492723783895431760577871203877634774860918458977798764328097185279658351007692905241164041856426091749222611507951777337386077154941242812461300369368276158288144179185436120960710139497538491794847684895799373608224220189206781749984387777613510008251515363161167774040607698335595978424751917180421028118391358775833227498135691038042313998807003299174185036595917150916976110998159698661915033352345674737908832873822650775738445642911612482375389837163923842613258200851873322047594585805949780061972964345052910905541714716899900587900442886080538684929136967279570738313365426808627033127475755400801212291146490707831918107944444955100200396070340127137300735166511467966911976145922827076586013281375567375498174744609288842760154766893971641917540539627952064627737511477804965586804043316759665793283473690698483261279879154742015035808489048918052926898222648312907937964137182038456613727607789801832684701490114919046850376165142877491955262419890775706715745741041258850574836035085835559626610938801640188172870759170037599932531341041781776286650075335968833578094658410132877453216033002048369813793943536469603867510757506597077748726833428365481464922496403891172218415626951741795330322781860930406330213515098017906130274071655318391922307405001735322580645731171294623962755166884531451456604086077594740556460685279258938643323533166377382417455126605127263717105793791449185634606798059195716433861569387098328489104534134382403460037754665854492728421153652296554400882466488832534050005555218855441994291826839982054043428260300979230862908645187932641726348441478650202471476420102616766574504874198357394047746705197067231646355871366135837103165950592273986359855259048586378858179866153048489772605745785231385146069234474726899034855265619021368024643437309074928997952269378037704516351035656253578396719366493064515424950452060756413077412966087226944670743055527042393854121770293399629873759502938131260764137824296561631767271357716086868506776136172611140748636406502013554729134990370975254662453950702269622687173565870441371405580190274508888466364428576897988223154454260679549751686205779178200505232780595151210699903888804626270069419450469561925570398318512389411722687022710211924281307033142783661733626944299866944543357833597790158570133495799535232152653780219912941028637692910029861051597753219331349919067001838987219771629216659242230361906212724772785028325064399991827889910294002163651499074056457821542895019136610961381876110578049872545175612952104402373834035350273971499101166656237136520707209758544708547828554651417073321898066505009724136589706098731960170123919031136467411463974295612642954561960796591215094568038441796526094913654254967690101209473513454197199102688547162309270674878488162404934239026800844454100499453544422670505571627619236038485506518391725009795359832746785286518108317532645053102197404186312860881606117333204588140242825336932617289601729674738129315612197316569468621527454483212001019556667673725447553563372890844645607040215992355760555329301351872848628638290944146998285426672771487992798341647289103913716670749660671333627881448768365608955187191117271084277703770038630048001255549130872579787941402702898532163514110952098681197338481224121518199380127331090573186905925723086930947412881529617071521124826592328699565989328749366708609435206931261113338806101696857227360451869715565558596694680450630480550795804983581479943611286933430405520101750664059756762651608845457527413433609582734537711144953875927685817305020204408011007632009120395040395685888967979082111184946516895058064713780337929539565015270578025572074997581380668714113048404012209059130335781980326910754653814072480595869798286974321751423333304615298472640796712987543206786312954263726807100691308052382343069153785043410447519469588323040526430937793458635344646949815851180781014048175371426714345745425416373728673059079333700775360640921563268535025097375260787483561776908385931201039026042482528118005063990014576301797438887271666501719194689692058942018192607793439473921371964448116275581509205775975149352222720495430722781324676449008570493846665149866385812585536010392449229674851754947996455606079239188791493130534911239087556856685769159078622361563256652577224856907352869043400008531796110339222536305861606489420847970229513382094882229503900268126078830415949730834591238327752981548330564938006986599651423142231322703765216748312819975306062163938853970224375400225143144719122638182406155479820028272108018165917107468240651995420335138803210508350602719089549555498259572633541314043811462278984294309740748658066574006856353911359116615285570160840416848829030637697077634197284376979235986435780194144756155085348360016692297651248747466783310744449326344496687546729418976924687652687179905719428634338062599314562747471144215319640517482141463800406805921053540931909024906777173994203216356303973872981640874279867128868247934731142657996214284738111092458314182575540184609498581523364960294850293850684375090907252042379778459836309097156406987855666079084722579074078470124707855367287864186063303839096085707636519970473566784103155573519178525051275661991286008240213199642468209900884013393832222107570175327241164621699499924500902293103437718124742350688456352155599176232295004805443938518164797677097748069600855999155278937684176649436250042932611558363226532653808865023920665458741561933569302955719933287969899502548394832890040003287669459715977918348861918525138362291412821402336178918516268949569051002534229846938018312890419177672320811988633385985483329825502306064201166180930819583898733888312085402807377492759566592214172750768191984720671381878200804989258035945046318825344938726039085803421673252448084660790976981866051639191440788347966027022579507140682550259018599246665195564155244348956626304169772496888007640481489559611090236707180770519528102632067148091607593566160689870503304436254733079870448374863618827703376676014118138115616872742499855205631769572053135433635164319217073170442609226684829421235051419489105086994482616430221266285921387303744670328940999613211995071121800212256392494133049325756536781435399726164229082101966774145155925294315954133325370793653598408209634876318174983587581431964173312956490158441434722505559396906732125960529203078038994603859629609985194424369337777818665667229728571887351128588394049091639321060643280215507370533933394837680246550208442284941969548483488831169626817468529996866314864032124023893566008524536099322377846356481205526020236224360264243631949267485350380880048466999870420718254616605317575970222282093067956837016471913551876725547892785634407366395780761739309009798464885631212544862310364373362213191075845861985512160357953884794805121297665579027651780637495726079918267715037402535822464030173378456628677153964589180570461543617001870926953108547647107349591303367698722259447537474182796443169810396846782547168306098808005936350682116277758075500593694033511434848255024039681510990419305362440376139341653112649269254462118889846281652281515773711119084134877443381166715758521587648418650886095323892270567715141054177552144156344183673127089633541059492137172773786718285924977984829831979157067419858292403408535626847145955880080688594087215625205394285883073158134775622553762234998466453080947176681791196297486343655904876307347977722857759609908121939532377352001862875752090907388689361020639246278160941454671733496726603083269760539742982220380598024210464585666040758066916558844228534647397796503470090117810552611642586811015046119365567596304229660786201511868699406045329324451589508332293155442342459200214405750985794800057175987287163748309369293469228624387795447083065377204361872877815136481690329041477156781173221318939875978797775803625185453818989277492349286269637581282892258152031447803948651021222131682421818586024208832083619648677425391993235419297574960015848493161449968581221151306515709397012423696498261731513657689251788898403210975825033090106593360868052093407698935721705746010019552927429318130118304971535506656131034027344288486190532873509610779754839880114397345802770980352484257409658393906204721492269507434371077183560889928846628897927118506649867351280855434536261789084902451659586162257527880575885188202667259208969610855711759623510625612789027743979417290929466731997455504438360161490296227854219078813533674072856071167385238255339446199618070040645541805877817123323251776598677284813931387152441708221116906417290225673239033897555146059494110839239342192433837055244582241194760313394241254115605902117600828447380128490932926226763366367323513453975855119519539587912565811904190648023014319773454718341428674709140366408213551708443974388225034111438368305046315132865812155727586455128312911134163718437652015857251630331094438860001515912856522066568997672678519294997407088970826551130205364885828879062644000093825400729853450730684586555296246779826977421831970501824761062648421113918192381007894661495174806309578596289422905045107981159674410936044822129866113258682920898651611032403382289293184587960823832261693723525902763140539607537685015253915523755673637741736572093432646871641399852669531779802979924715342049120565479803360512500398184521030573156506197616857599129334169155221091694886127358233082217289564014390452003874930145989521236801741289774644946905152338183345142497768352302815024710476294370200141122435102533395381699427938025102560080069504075845557576527691235065208528966887982686278580462855781025466217920340446814704859333301444102093737540406683613257440853430006937924281159172971603095891454870970656938982010294524490685334868822135018479339664249445863270863744543079730621200963588332101666941869951246854065333729048751184357797841369950626567409429985065678575800890076266246975328297316003111007515350117072972776770029797260074709072123355030860982532185301404986239321977906616807835198119433160433295723228954169844586469325298883582945421076210870109137007342240145174751706920122556583805023366861534945107496054060183149241160310227829632161135659347815530550059249202389823011404437096956291906095543992731586061947289165813721889454085641912782228821579265220850842783193188854105681500526505777348852239823750648130543077956164424882853510268116813731954970747529939460881172885505888547168558013073159950549646805072675642411108863344081111683823381576212263153270595599315125318225028264863715694636652834665777315755836397919934980330090979271392138964503775574145918597315499062421647831918855512510593137831812254920437272638053492887926784876059050209923158048454928681489048796905578148265498745612777696085875892530709634792878749885819242592435345326297238280047707928858346239029463198049803595473383160702749462583893660020410286876906267026911055543828519309931957546987479386399115784118270669218555140929968447326981096048728375390484176409902469320102812865838504104621017121799092157656578684524946262538293497054929118030889833088892241992385575670786741581161193674827398123245040377160039086465855332785024587537889777081823847411802313269256700179565870415322231591474842960561910766510289656343796243697096557097547545753700867019546044307809978884863352704363806615921021037146567139689067137557914921889377472792356788178220899050969290604424723355603480588990534146090280952920056049092339960424748700680391185728984763974849834093660456194845698179643907367389572194233236941624932210616631841335057726508935300852640781757640834211183402891953882429062602050309938548685768578356775583761256961709617256950974054436673214650023380645587909437212111818488837948181263336766162007652086724604909475090799132523570723391224420676556404201886702370854388071589281817149487121204554304803730900382755299902106121402507846183715380249481154175806152065685023217049573926774737039957573413668449209680350515678509248033595902272343871000072522029392867710473799085764467552136055385205175030073723364445032309369136645475585203874865815309106184858395837061754815161697511938808477618519665716456586895251735937941068333194306600902288225148711799857134328209613720360062315561636136083332516216345803604004090056653405205039991393985688640176226258734260557955494820615745660030591784561831560718019203042371912811610432706397819941141589761584220555809815843300124355301835785454140966661143809934227433240443229624435486361967199484168033523263588165901636970032484444368325045370664094978687221085825781749855888776382527314837093871652718499683717232411697011391716144080541421070085235767028128146061056142417855300894418307457317417756762834473203119388214250456983725591042566710994025306425554803290613051661437565499741732102600851865402449527206511568310024151969810000648956045458375891365504439872840547642695881708589766260185918753168607622445152321341456940277730113489060151349997494062381000326615065009923640776283536232325559337795891099376055053793634910444163023096263513608854204036093504155428993948999546078001669812355476685993542399712938751084609094403084442196752656282345858121487683721132226103113471620973005953399703315210260851705415418958409255046179260547415376921265120703937221408617003027647839807197917716592115896968319836168459238317977433478582190753889556044655581221310796977961460313494894246665039925267981283807384090285460099133325109548614214031922512297929071224432809674274838459698178176697817325270401801577961808415122615676025970754050453292461653389528303450691155994999490713522002489425796815853874050048185021267941357614374235046192161530561172345042189492623313116626268285190335457086241693323058659208140922290126741817835990791808310915359494083907677561015789145587939799929248023782345307697856960033232929827649016868050351417744923035621090016125281010391003418667725885388385319804066359043043962500182439586452516871774373402675689207089307365346674322569059130693978425072996740967023915984181812737345868920848568058264164990476238975044553149947934053098958415667637840921150869682151419569199782466815496472235093008746120414292616016262550858402600101691750642238037539735575738853338873343984023058451206649634173158625919378464454208440241273670699159357761557312560913858683258233089998708511149636230965351117839856401235521590094783271463613276356741200564225795889993337757041426300790170034202255858880932848354437809628622421835715807635910884301598011495173102563479170399506047886424888949138884419421592395430175127448489822295367639438399062145724586839716103724821469011051802128353177973706945713050702331527669777876979853838208765671490972876779516659643985356349434189888430807921124593998251128159260556815866798891738271442406359674462300765233695552512764206798394018132484259723517963435718242656160862006606179373529149374488782054518725587428964600460731721670270208407572246751787013686301964910198637437210281436139616906679985259300426831401576536178963112911274974563234082999776976721713055375695358489425308939812312768970170839339792054772441101312360133669422993357162735172787224053359318601457372230766231724201159724681958833326160837144398015989337438632826235990051685638601101993215747791712663708740821683189921620460653987064247121132955785669031127140766652931677784537866352293726611928073263138902612350121436816522416754301406301848829775012064215808889045018991466799730840834948002258985281849553279233962666600764521370602726613363383047455727469052397029340606237278049469492363818420994146164611446461720078706868480417729337721147510667450618710682196242818128615514444828622294069127310561500557911494245840648571538899750719551846655848761750040873893201943988297914754045339270389635971339735508060986753095372548736405445373458814263298998957236256371697610915335528967802870790715151431122946710224535373894185021229033924962298802246801556973166095374166526824814041159553773488398095131380534601603795664484622607251686537482487432766581210338701404162360437594121622180713069888469754452745330894411815725113002303691631180298846155490346907251300256299178512765034076590229679685152004332622261727445163869756546005914400512864086807630741130813378181435781266984297114934447399451995678399276234551061995489134398289483594090870901136459491228190077677174959619203997529147028827598555570241354797661210664697364591308375941425053492086471592841752957467230238611743150638900794336060076828728234780053416299157807674534964049235078497061681831470859546631994305823665197722901954884035872689594900155649404290546958637767698858534143504681599248004149353934117310644313804936014370568570398656353624430392774971813715471412792257352040292590817281873261278059109293315561478611705264387857475537995982242992426913536068429288147224631405878774954211912976275238882979736165617437667471678288077794822900136419971705277633881932139904376289180149542237881707098747607059207614824696254465371199687666654672925201182913932188290371505103552711362812452601783350767097236657903300245588459591724736213721098729922889970406278518916400623896967588845540702535090978374838294309611855280918262109032118077859093476429762972889957198807572390151858652594858049592622904177904595626003346034150235353651936821420749783946528741307841440008366728932903122167067358254704477403593974623172332090141139319684830346846854715188694815986558580175942279273637411797662753906340828236228877119954747583875957190392615172069877220176481560457663920426078289833190890357904117444844417282464570859775113277729686787193395622128144517571825729375790813641668792477136758079489330091556296802680090064570612686150869364816634472734083803099750151986540884215319171772114756942365785949590545821916062065744405939357299093272037334753235437945210519827407422525418927037545517159185744515129133594617583802867826696728701372553681443666245905532525966091958924240155580184729344779791192472064099475738774887755109134011530209458327435680768412212505876501681775364125159161365836031215233822033358364597182376695344152837020743328548750925420060372934418895805802074506772764086385530064601097245415882936611975235909160064681457978697436679119037656333903432831339961974493033794954202107800750791578165771069905050793130066246318389373808443803750721190793788729085470330770940277599383004183376426987504297297471508820986166423826578404105710252761636771386419134231126148581927514948693171992078810377294903542232844750349900306178382680180884194008120377139834195591474549850479134823997152382623315957700390529946497868051007537763841743049100428156277276447549752812039708926402496795449940177464876002026092581086873304398301906082054125551338018813193722850260520634621746281729812338938971114873314299795866699107484057400737768229461176106849207553591277351314288505072567528800081066831888864834508068186956690938310614266737760547565970728042796398432555521081996712491045814980701628564821892796105706764177533477863486763098789445489388664679888560089337195266796493457864687625464019562238896269633624786189288065428223732637410506111262791494182449511200408968133699473799756801279692964665401406489617228920019498634936636986098823610206189874536258049661033637041043062271518092983578846508100183414240840603090748185801059152898972822034611107365230467389751446646684986721194115326582111918911141540330361245163842356873383191073864076444063232584095114691561458843469924714261908674570103952577427772652634157558747061828359393722260856874539445238467876740695994661265891849956157290320848281493145858377404319392501828213243975995377533363415477281565500659296570945005964012481626223464659647186792353579046816670885420344317295899011533652286727128752868921719577176649072900921488409823243165502474323680994783416394580985150320158591005081069074251541843639168749245199947892237758240087499314216781420148404034634037627988113663097035460213531435558324541387986952870615817849507973730179104015876793486114910125997455986397774709709585353936087330516131910826612385844767985763473088660993806567649322439464060145236080087655193074949232665876391298396175128571379685340581810136086439778296116438850840195661493009390840756334678219594131387446248816522575239305740390970454645510918454463700856133479429167958987170822153654402753511226353176534235744631547992293488213092298089027608379547308252180523059109539248929123416116502361524838205637368818202619284677660925882767314046384261243205597540852721638181381420015005438222083431904969109341848456954688308259699909826397596172231262816715185958344230192510059912346760079155503503945857513594617645644009112571014764605568138721938444499959324705623159876634371937540738483398153976681997663559172623069371831799583031456693253961558227505277789171825732871357373754992318590418813910456982348309170758882068326557804260803402077805323509310080765273245661360090895973027398458669108844371260095341720637851718966585625128862903956065600871683817048983238319260651629438987723404866006482231461411249287541187254489528337270405457069569012776716152094707857487995245717083665234261809698997302839313238134086848746874195396596361791840720500601197670865284240447508023175805233768422956427386733724684039632980904052724359370356795035681561878827195422398345846609958483283894172024533719754280054228688310767580620392136723336952492223697196565966599094965257911781892026017678544765458816148136475758891860317466843106469865904861173389621038406066843643437336591112657946144359809050350155351328542677823922099429475682027481324208703047584786981206536559057966346782488020452166341000481488652100804487371783162605870413846894333477156185910282278945238931948416218018436977080329019354919088635169932736906020173129716981234236986981766673906054844899800723801040084209320629152887805001904234815466376770217990843704241847484091992164920819384161038881113033841048166084763009387638558205783798352057232626002093348212198393711648815204397891813359675068683800844341377282217221868211754159480323048103492360486622229576290663563440451644888731198634191687770348424047331104909157568727104047154097050670901912531989406290137733947828560621048789672575546764302689119995286916923014356480339936087689753951225940979778160792132994950026600031922283686126786062540544346958098647254878403127444208300828166740080002814255301738083407095245324682210993245298907693392956223039172574159230114217119662679274305839953247579636840173818158559898636558190376130722454387064769362827287515581575670147555299005402034953931322325030142483220125368672609380946638794448114187578337018725655087515754711378558958599434884790442739768083242421154998258901846624060735548291681319941728229576359758385065763467277291271622395489130352292927758134598381786669100201907054377915773045594849604213055798098441141876397369688823705913626701110654284307360101036991573547110935349294034388046754132070510357889942854506051512371424297492968935574100090591061046244482409155493847616036490476656828121563038100519528907134106317982653986631855706300565419736734994520202474329081649594897224413258584554785654208305703930076287046766625946259590582742359054068018810788848152042199556363053891755243210796167182712871298232941141902767544807235306724761721735295222955186035341927521456447064359213571237416968420477100569572114446534805505142258180873199418446361753053854626507594598652184274903680070419861982507388333844995083359884896095977401436699613389679461969547632491184796004678828773821950415912561721146949503691893997273487204928880552267947985149201168897642145325078927868867165737461281241516127950726623838273887625819520085649480126662114355786584464138676941572337898827651696098899273310697889344011993868241130947241825349905572043249085972810611794093202592392013643214502069734420186667775419481899475593763594510786807478977332638208523215780963393162742860930949285311553856683152109564627761742010943763213766712933800481749979000259197909487894809187965496378382279761797232319330769880182945408181894011008652723581417614528171161116019504468804989662162914200455718270258673660928090846222411396615783245849639696618511511492286147210524998515627420549400294631919540078480988171309151707408809302986819539227301250344931809838607910637294909171228691835912139918353694439971555981016437312030724907741078258609681016034872056033858328258552632678734371232903871843172467608550546610395973485222689523878829321647995296642976973147527544338388582552540674564370645818579037903662042167151256514629601193700922211365774443224934922624418237216043350095109265301224155937273813503538160032331347732311861097697120869916569852005782446631195133828284326299908608922328036047029963524584248235014581740657183367861263985691072790661698521170049198995597868563739145870101443223656619779547519328805814029792055413685197389231438061489240320720258245220110924928465311823663101124913083976163253090920155835982669142051775248269177031491353784836079155863444890838154098056512108599108328835194892662554893303435189450580056853649011520360325666730388561737528596536223473000409259497594064576555196147997502610914286451698782190193838315218960560620077470969345325946817711548894594548207272498715371933816122817594978885862080932181830724976959887445601813941873197672448177060037514301707744553056648312578428289281250255187400293972060112661347683325637708858774903742747037386282467607090197800607001864203866601473894178386021423786845530900529145013474972441764489695924321688844054211607629710195991156912446734106343783754871062537111360915268214811538814724620738135840019947460148776576198098065561633508045531701086476760952048538337226037076328765160850104118793416550265945050156492350842370114181434430981531028099181716921197678490039457919813941241264669639574752858895436440491520416979564487842404493501483364117721323192030194592664999971133743085587487759247891302368666715821827434717020936513216589151664545786308650919176285646121113248644687953849779065299887253703231057742181352465632237755452753994418294693360001598462983659751827267739436134042094075170927124175757333978027115975641365159166362969290664651155098938863374688342081817561022571982312210254707471179658002393962130130099788326158997933869746976038575793161066539274570128749397777899085521532821442455097972527346473124929344986342446885893530123118775819456970547767869410188480508373782094033525038662666230055142349941043110497844371631543397335682720554176594026728810905435849354799298367175230546930334025702032032253481921385928670023237157917734479322230700648392509320861382499359294026387804098404000277940365597203233828850221856469083809705352534279757086613308699489451662020277004788281217030282339808659123878884871313613682836668110798015262339237360822521560967792854328228104183856744642984205986268010224818203244850899279122639389072214911893112996313413694843789028618416404642762630379060902503284111709653971832982263753904882306061991562113395051132332177951501715736944150381130442499501147878854636677580418764336127265490743773801251834996459717488490573084767880741881044760824259188085441147304247514259513757874350289712248795045480640480532341321824793777650082022292632655232903902288428035328859903214660390288192470881569000933067224508491969544870195493097102877961096237115089947038854328602945564019752407671559385173272701023124405264583108119466466479719887098030922606230841595659065108878432597857963783446439341868926033240989352835391555502118383689192073744433295335859631921951342617412839167146615481768467458089673592017294761946559642502291818633392959287597728715571861346391058691418516274572310540778466226345428146337823779532665702840244998404815539878669550304332594341155996136208500462652513152578864214551267545001544050194048061581954109754915496348362547728307604931113718573344593046563182425395578599624960252689414216354837145127265680078433385759924671288606765285170877375063238613602255265804893041842875799401254746350410050374076633826320117826637979709293796705041542831557735318569517483103715834932949510722069226099302442945619141477367791992603609388965618174205409860240207763995328763795076785052275802881958508758957013714071337541061830434490613667923811247471184994161272513904663533777351048715476608900112315592728544672292297044515936825750255459782104066374058399551547142510892823218641788069287409375568840712850728673438537765639139265444493347572448518990184216641771329152081675802355714008583108886718995744003923949957776088974298761905197866480204860121142654470389957950248723329364444356622595333283641235922957623790791058491500455787352581435121447113992240581226827257091336307429262378871028333410472714103838420228087451323717854516160736745500317994993024100063618637058395333574960678054593474223661058869259205253803579100890334015794832059722757924737739115039035237322223536900833439183645385528927559825374274900130705064768994201488788762767972700323083943521940163852609249998742491806673611066221859334462966705029812595401650724131510469062700564775494955764420797094276367808687902771193548126215116590531259716432820097327119753923778360476266575169379119349130796472326997552348806855529149392853486396609376479999089183090254977596159684210310371815497936884709554715519181167362340364018562943529102475411638205814885938276172540089310350803953274552910300905749147592393683689913406051997653349603714432618261231624389375411498806696702439894680509621520727221707220118084119163026871436586649542831734710485098522444786938350964896602698247425697921041187036307527180544188963931818286071715384038939726906307468442171075042991629498445615761653324796636529664323968352214080925627830603757991957277107219691924712257936034656959661242061136882100479380258996806734617058673663710718265995644321171029536120915030710233950068030414819439724801771311595930518419481655149156796151039662771534352080317142333485034216437899625998830074736456459836369799404916432545757838836488186599582285647337204054166794413285841671951618684145947855006562194336669446922121791043490442918004578917174303999215737321562676829255796576126198653536073076673930743900789187522168378416261256501236076655733001469033265738326596243741754065171881163582518041310345327716923423990603618002191008361548477247987263522282294111488122761728683319980310578461030381747026839678074901491848121214925898970709730022018313490484362059852189917055603475180758090264875915330352125820719264044216392059909392391628877645453730496338833636319901070348266037918229116561274004777494832378050280283336011352699513556219542337237345618670563663319080645460410675767407990323472832008343148907269285991442468657035404023472257560541585567533980412455646131821578723503690861496251570260551161624958328844919750398008173625477677047341590178415817613848534189058907302978205860392618154147467320978561986392217673629022926994855696599714424598287427896542522642783665486159384865307662392796907451896777870370705614677992923860379042849770566501311762567062077557258444649328147318039366168988140204321884554659063386383522564822981601571830219960793354496171116030986315403573173585211441373421622030376363660909702648837262278128245142981459216897732036081734894809335517553659312294874384342386219570550170036333964393165621115006541455586202753336921572978099337498091278568008739945643721189249165357012444247459171294712421768151843586336589583948811817656759823025986239518744685315541414701161570241439133549657651287831498130258922055746076705533762686569775194039766638543800935995226660338241954237194764438673729871727237378048849118830801352525179230242921471090807540858760942908730043445777631934282904914362845721331407772435923024137159620868142548452323757427018560928120690028873692889068221198994571847461279287855300969206002845643915909474915240512327516987082075995546091328337028482144514112909478468970949540786405857699432403232374302391304309137576844680959810956961745628799842722816360391976875750729747065479054420680332854474463209118355437259204410444853900423012240033138956490630884824484013910894090015317001138653665620593072197741711765778022972368016569157784798350854897552544875450392725743491725926262542697949840616815199188162339917098291345572905127153179176967172489848006994133999173436143322193319287747403503310863057006045091556918245208727686010361945075949828654544366920062590911023218677735866744389680642504333204836583474607809213425180539795970055467281789028136354078904484001337681762759330684172140108758425660216578918472800542492113700009448013615879713530665057916769040565415657573663852708015838615342371538187560075711410093208980268174433651478214907266693167246059195956734451714517914643259042219112088649362378831810830376372764434290105406341181972419054525107174446377463459176972069735158244201785548266262099231309193300652721321113703055814595089090018091404403449481273658370285267673198108956610694732500504359825500256093861129930243287364436541019120365547435057674154592948345665561422562365840940600050626608579167933006382952117599700360675111048540148586686322659370234742745080577699926822908984388639393958233229266196416917024643235488754939508574423907228619206064129419273271376310135845273950108531784256230336348790584800439407832662061134718670421769562813474585482893847963282843361659135717459177023957821392792259016242122720525705794876113619412456719290581088223839301649402937886772649211152335579451477526651539256778671480565873116312386119556121183820378033296739507335125527339892503956140423173842910989993539376680919755118010986538939595323907551180949543312082925715603540065364378818131882050254383928485720197085085607577003065235719444475127594225273039232639520834834654944170694266341960639804958194426022955169798499046842530242248548150104847053897647403089448774551694684297716136100021816858092752028979539339125160551274809196997792083561630870738471859599715608786697812227001544346042293951842117387146530177033992909520965556879873735019724625528966443639351434351166472736367388998892490805869875325151663614962724720688628562548019088114036581082349807374125217616860880007628118382195102650214718434809897638362899765997235486634044772596775755826958706575101707606189129249531037517266602568955503414249073671627824325719440404743587932960585596789340742130392127882047111574606222702148828593589564780005478776993354767723554290962201327719216979592048790517364381777338102539590895306908239146363980436781052818458342634303960063811312738859560344017572616799255098357512238537752351139799031056800190703884168863709609360882908045732207542664525265174668792234386878410916543773891381638838088913933772198829010427040943069136138444994196672831145891255047046682389990757738824447571190197030967979368704607971702688595006140473328628281492362815311702958473407970711337194285551740330991325965665501583002295773952739939427205674467786066980869418820657285823902662515554471008464896156770048285576630085794762821097727784500887543616946606413187184444374955286855118914584312522496204800725610052319727117888017310007501106331848811129654954395093827628061597400013619209753662244814612345017775409213710464474324952994862286445911702070719742717150799147963500276599754422041668846316247743372928197557243713872119712339911155528658333300767281583299149015874612155833321824746370373466288504541001889117071309561422959403955828959773279388470613667862492121088410253121557857536498697108283852535048425691370142827317310624145104066910233694044637669239916270762651128177592647851446052399107804740160911783485850089783918107261292619842323400329114392766378734926883802404938698726475516519486700313330260746703599716490661367424446481154266303023237786691190520447633814759795216634711132498136002965996363372530823304411597881507731467035470026827246060635385882182354349987025280627950415299771058541260063007218640235177025654790133044714332371923391991380840763055090100197427252730500458995148738755247686058127416352652518296357440488002479371843913521249879756447168236384100085706585738695087090710630096222725393758974814865815616665117047984635576333761668331928142002651295416451331563192448967269971521084452506008466844913246498881828269696978058632107814033782876641106823171022084110108030108239516508373549516889215110047125711614334299667040263020635785544169337171618379623551672586361187580671871210856857317514248677215438973701279086689278850422844360666448847375977953406445900676054499485812810747110181178025466902555030487593410597291939549283693317136420630356413725920394737243116054450657747666792874090038885617707214237449494565445325153721067984007778768165196166964083155878335593489366418389313018198983029734543160264656558557755462857122988129175457581165678045875822673711091040868774141373278432274957970693345317035240055211605119634377962788174362072542920537393686963729993028906725025050349440188950136897670735612834604684187960285999855624303661082973744107806997763990425591430839980310618986384496323751185847855022776188068946772928488181456471292386238202902110144881464615911823731195239531590456782587848565743706698779012743335655329141768610826994970335838326250735121246815481862123895139362211373808183792036834690562405899805066618372340235246970459093843859862736148449815713452903747308345861895590268008339135729657081631491456114872125148274005065374918694230764176454964153679104239832113299089956203429227934925504300570882548163924790261664817164880104211890680911286087210166873689102010393974976013511870503736674856358429837495207082732458809872977858220840636300114903214231791107588023161933696425475650265716677069522310207794883391478654315038737838385907190917181864952111380462280879430329591382888665557767733198063013798248210106976205921528316612931923237768376579695141307959106433115936611546514270948454813697158502388120527096112124864378341064107995550945334495628926076206199002078570536289883910072621495668680482589689260392777422898727558221965772634049957184108759381532494532062353648124993994597802115087713046813278373891240706975000051330240647587656749178274400245734090528004549298892290384298174032282303746278466769088648870215573523411310084526485279058686826495765254130357966201397074159808878638145945822678588665590680470742349760348596204539248795612993289312033875141561880328305652083799415387769998400315119548939137551957641268889378294836416789678500262600941204562466684464525075293977946974731965270073228305416307708932545587616533093234800837289971092486952088561521497258893399659960689693565495462075908331323261743144433477782393823778197643701706163323996354277482906423700536110824533039353811028494005779383090660461024405842215413745299865310237652206016090734341763565676767999066819115660110418231569337389692759828011961046622146720892377308415501429330846822402188066620309206971527163474424123003351090358200360385542768993110074846441066304908275771008009170170015526037648765464645016105850709350068793880369076473421184445864803871301613882612829969087894114834119692236444600677249248910837738293272231320832692727845702893225046747127911911757197290059203540020711416401575247626644294374119349908382431322797517736584566857812731972968366074590586800810119099532598686019976871000422454925970228775561573841103321881602006936363684866303793157356648806574303778891012649578163635613081358149532984743406146050905752773143529219085299749198285244463414733914637023106606279914033476076066573982942403446331119078586712107758673863489522585460288667266270133908814540852040310196518212498944503568132033485971317925711957649779702046953258927599163495376298240555817244048717084922302196973533548754825948778041171869537628460724755493597703741811898539506903729473537870115705269105675434483991516051731374413866077889318349169149872311513950869452540632846570470272874380406082268998369667449534331159601181454327979832737899313394374540328524524084514618278234830023779478055788992092999312300236479706086611703138819089550474300702485279892819309350081586531502269519636051439314650049796910241561872379760794412402710453640779309095032051650965883429565843746852247261225566344810659888075386937561463114142031312901452557235821946131919124209933146823636655962206490860695226103978220240871982783491861594952308902859422324587295930348681046571183494958218855118429560837236728965519224081424559870552774689366896034782402182438385159001522899940718587857401638142452375150199680227455545260964297932063386818570702423313271013348881019482709698152656168025728725199139763862907653407287306933922875044065998511976938594248082860618072987994642542632138304756955867560607733212987169525159583975752096714132116499369699006353281127640771155282683574174321705327768385737073092071607545536076920432620695014583725944429336868943725266395380255099284846281604979408285592495360522042286124103364010265602862431976623641025036001357044158310028391135551046754882406194604413587036412564690609808058960297602197922409409192460847140450198304396197934310479876100753478106401846142268567213546757322312330771563329478697451372683749361764834775618024390906105177259727672617698075481403390026591095285899291417067876114607986333002660288190417658019880513579522855265569085709448662893225894123157156739710955285016052444267827013909239238855227496831965884742652408376966998348964254979857907727533163901023823617495949699932620476133166605735973535903788953382279630912830127397924840851889321923456352670722735616104170305879654458938431317541116529937126936346051751879093814604235911377882250731110866031205139801843013972462631079329864715853803997724537328124864103805452426475102540059981833175107553642383010442274938968507873371160105793422635702112850335465837438207843266488040881007574296675152316621644467904970583713368592068414050443345562343870657270794919144183423026421806180119716843301222448441393997103976988731627675402170547292987852324838650196283612254519999170275499123331979877205877982110520973682287827287004392394822868894633302630511275009293700209432050897170931589976127946815312656005037436292933832003799485555020810415936523479405440291086697305666713614653325244362459666860840722609189075831772630162174719547085432598111841768955163272899248247804596153405079914628162374172422025886910031685421446583955283650900424863019366375853932182621059077437987859917875156732557376663569148956569534074356980575294145222146170755736787196192819611470021724446371571762618200131634237795490838112949661569409491097665888881344803577163256546752827871580246596501615634268876239569576614318785467746337421441343152811445019651019359934522513877649213194314188794415137909200241971299681789070616139136714265008111354863179043322822824362772485696139160307065007110650778407177609977713988987340458477940761297830720478722694039040913629237803784604711860416130725788009567062994753296252288677680616289657574878971633251894844120945541834922426156805921722590174340326676555271798124609366318774677369389127896967038371296695187605283366360862469120747903794755575098180016676313415713748980965878442431715944219191375378223091565466419809601753383564223613071466269007923345074553939032573807721626218839242043399068384068828964143606122601625784606471771679275509176064116958191768225260664549758043278016883446943139246793969414045923488020399491453015338956111283604603362015021478515371692984609136995403961191076297118455933564072783111904609215052334085291923981470261490415172437389320421946308259065131273439874444507974596868986250266098343271442162164610193817734050961937520469813791406629172351029732239603785631561747628237012513511328385659720552252874547557435028836440593537737572139478098501417072170693709673741453798654563804461992184103709970047416725611395806152060109491500352822424755390269822724326626078922765632098493360554892765913563854554622397193075238861206185490551257133927431481898093359684469040050335327391249140863195249505534400009918193122691763221331818010784733854528078265611649994922501933633304627152599636791697930266872671130187269274902376272742623718886758381991186692328240086806410403997486949507263428580994691541523458819938295349510680459994764512207441607873432634314725120394250200602324281352933426222602542632620706223220494887842927167895442366643347044186351155574926481747849130584898378235894651934456695971107065948559601969974992712355684506566452490955673649723067942412049382480442577262683395517021438377848637516709023891543961554914389722486521946563173042167898459646675592483876755969890437968191149841053937833395723237965677126422917430726119672221792710895711234345823223117175948130419555848791083241271839221890932286142750150573665042802080119284261734456164302786582687080780697810128891477853598135342566158925134963375383171240355739971673694757379041724700590940841434277475036881276548977263965471912325385773264571172260877765212056552609803077239029414815231987296455377454769000869780640231184537898789633243174952669699116896233219450918850951823931594221585729184401268085108053796312169903647770869929495701590621941530897120198813593326822171381602149540989681561341149408343149495358361686739928605938854549897109634143692308959116321362301323656199803358700240957345456252573018640396815200407841517691452634181495840945773191129334842114122888628752789632549283182789832958896081460099279475953290581165810639662395515212955785550616182762518360747432305960401313956059964934200374772468243983541403866783080975244394777997377180939757929768325391074374600207978039246702308752212351678751434127646062416572960061419391515563237351017637736856535098473131839347423937417027388632713498316760373783673074292720940444840304435922613856030769421767046284397145358764990548334997283735282666200295993543491324977524543589017415691591047419759049275159171612393756253342916131720832264284862597794195300445501356581199763774264114015363926762579014514394842426979303909469126879107323030161258552591930754611356426830602443427293119467308440493779901145350413468879382170786003397917726777200486976682398896194167032061706806960046854259062395257207712681056431478812438712716534289944592400948309007246715323983482271219017283097720966972788664592042448385611628801465638898694176215359211664720896190069574970951978327730176567099424330615871327801689543368753243097067057913629109698893171936997547614917872411093277483444043743719147965879436673123656044892937702384987374984139815641139294966838583491471867131080923763264065190517554715183804071544754543187422708494744729043007553258925277248307282343251564879216398280900658333570718746173543687893975281028298858824321483943967536897970008182837143215413902580100167826236766638268801332885495775337782747078534774602324620300344758676765267631353349833105518618941168944130312436984537560008882665651173406378629155564097330179387646166955380965126105341590815994375985354799233197178918150746429970539672655381250609338203882504555834035356325359191109120797542504654974776187677514836062145890676753816564145239608693395629017626894859806862859456193927290266562605348128013335197285785249411458860393043491743272842868705214459994609768542060555970691236188988762283187799825777567082648512560453973630204462440621641854766389366550395854038271572869514964854715130938860579706696234235806774059215979230653973838613042319627226933841461517067895705639651022507097499545508554996156720936909243643951365698432561651668936778893154066980582945236091645876934380286807758195625646527007102050060999726093577557258419610762110229258861557438058535511280114117862237421976638892682067671163556483490533058518151045978744107414339564927983281570865289315898280719311881338252983074855156040535075412871426711076081877895374270709497630916349611021348094870317821442172796188677121479105811595222010551414471825170583343172436925966436882824612489140262883735510125221634926320783581866924067248208363114976736071939032436555939196708360797892232574773321785544752586805705910422787183457584276206414220368117667826506529074791576823861755763521810911365079413691865228161167728689920084673709304458387849415402072036104406199355144893504822427684276463524195377858614007469776690171403596997971239262333411590497089663919970250052980203501952656712235502767936954880101892674867632869118541102437535085655190664255116564119780607816747460240966619358359671334110351733786292549054065856665009175095749690986452217125255364780509408397781122008464124395576734534925317344792693265409305512585538472960357507343174081518254863276651890725311525774833495038233208783499329384670829937405463781713582036038124982787182104700722976942204069474784899986905450561855330360924624062062625315702472326374450362664669016178624773963489996821638029617419848362420745797860417640526299535602311507306850488670628112386915725521567991154328883887079044655912603772291314019611693592405061668000447732370149960813162436406706687159182023915113398011042626428476312783807153825446317636016478922970270946608362524133828164896820930880585112361146031602994775390446424650492196893281144872809053493087531509889754220470096972306509798143431731373373046966745552946703572444584578668495804174839461387098996858744815638761306307933631351321154621605469029565016297500706644607640506365277256838960091085213188341073980491661261466749096227355807955537043588509270752044643279787212899857420253162535906767185589912120004475024231671713985729841249358763557051650800895779950198222379813267131709713764468556362313321946100052413960276858362762057269583673985059059435070869661631190030976085376474773773892188207001747993239735829230201809245481179841667723314591800643272682575582063395792320849168716791928474329069365512669977296572521039704286040161809832511768827511071932266002533747443705140281680682751040775881942540018443756244941132883234585210056963340864783572292211761406799561851997184004780107281148093830400881389351188529437745043493367375057828962644880584541587970432615293315928223753337794345222523605370917760965814826955617972556570498613437258391058796468271904445249358238490624528278248374607430432741386236931717456843434126328457566418494908644477723299521649193634368041123958972837210929019761977206211909751681197451163965261911446526687855195508500388395613546549019595763880437550380201378381371906876903064957779679615884597649684664868896620386137191707153980571075745461352825016359998068982915773957487340033156042415632660805759135637417597092828618082717683427610984356728139674864637899333382710365020989715534384477742109435190778808749760473566269171119846347563879457018737572089733206114675644379982981823853895148747328012122539716781360305961305138236293914180463258159852042122491001726135060132830979026771555568697936809114099165056678242407628406236622996683718947556363927651676362410912764108899977496056643512916966928200294167846724901209575832342639059078368098153367684904254544468522914562116552514637960678738265848370276217342958512210535036255746512417485308310071839145098560130595552451728668207905132392888833886656809337965678855210089819414149179622226165242908911244011062958704932583156825181575674847142578774380010649796054303522259840877704628206358344213509220866757365454938555355369922453782157039536299406053950284458250361930553068614364043537111620364326171915263203845967742189413354364739909949989892530795302384239279885757811134388764782577139245645966031610268095891133990199969149388245236460171271346538191530860897545832153345986480190772522051783226742834864536391631104396265072235787583892454224442611060410512430521365198281748698077395878825199338900282311213562622538534997639669534916213295456236936210230642732516887665037944003346883546496609024803822202530359031614508246944119470666247007752923661890964824036513441442511988731861885786050674339565533011638866747951056619833865682990825786370138705560386142452937687212794805701561096018401653863260156668935842070608986173457495883523778661625355388271066916560581847761381965639704383721721379591276576888156765065898125671472020707534297373095106092591159663171557627964568882193237432226110898810933382690742875912987490413923472975674140761292923108031216520455464108183792921086445787805106652658133930468062267844432378572666075434735785358948184418207363731172163655272875343563992795024120567273531721294200973351011070900800046332631914610383148277445295534234903855840906465381120036830845694776131720578149621299904950717357183199211964129957995472224373934627801067360416886837540977568192576481312278536785464065967296050222743562704604683875837996752953002984662504920704746549550471704943527482917073297550868004681931802852352028078024451474610981126851027449742580953388543769512870565921690537782932740223526293216420791560777342697126983564710295442772757959775593748517359097242177975580150840629742987486559398189562220645766796445279844634623701854143298190841290941955525296651464138291919829973321724282218837803986323760494862159203215936133122748180297609801577949496847087360156868468840083152476360506329281186825448798384378844014626807078154525789912699427430392933130686825523641763668096611686123559890565572372088102298321078911390600149240645100926291702174064656165289740054299660167281144271896178192486781175499238991420653215824304613833373674431395537177563443640602578826912186239206978129163277168652953503233272746758798728995232566043469284049260270980520293117800340946053284680672055849892075910124235695945323355596627874744158781483637104398007484652113060199927231769915651055245511061245327805802340619587021506966295431341243292321688601782457527238295263640672822928440545990044323437967384949319093553216932690369051308692570352068105900189039264941136645106567255547354910973443491640523783234108326696483407270004322419338602825632875164634325102283749223877279778032035251180872867483458856305241230142450167584518867243180105619735212381934870299938844773699527480172126347634550009972093808809430796070779483788565233057628027203960340989960134075135857089690334536196914221181858332919766255858176183373981094016046951982904184518839997460259079684374704983104923575226305074085752826109756933709987018357334373972869604541059416158284785281099111096097497672160275536848670032749366297952444501908469952728434353678856220374014082847373702747227339419853195933807368950574797424686764656736047066138764223547322131341580003590370800550157630148805823060159598544683941048530539682888903253605908764276150878737797329759438278023505880948019122781875946942780932618838159975280171104395484521171895277412408261438866044269513788560319852972236830519706238904263580361122273170383732194606149003450800055213750052115463051789951264586886861833393800496943305831445280304570784419232156966745746276216626093519861647152349998558832549711419845675110217834101798463937842710297568811579807385280786441773437795985887096763614641758463592538984914274131625391163332526290887336359241082075018692204464379721147235381316488308500555644842903556270628604411452780019815121858718352292896577207992696602586901118245060969825666910937000086984975474572604085675611530893985593242721294495304954125586818652719611386215994593971405971274993066213644024007225571573063261683156617708313476831364527875868822311357044572142424721489643925184606410443805379009951488806566318795707612039154974902169761530880447424575714132577411503685633159910141920103854194318962341893449632048883308816731966556700615040116763421164041809836694829889172084792132457455415434564367384342929404011837160343356137785576293289386023009210642931688638786535177917766169210479206739222411452013191959182440885629589387312289314515261334595170077493119954057484114722639836117036459491145639890949823037646443510842811616957513381921905509631611134202577358033019951617382879920905176982075905770973801032617507980456947326356997603527993664827904880354613087868728642867886025719901265682465977017138073996122101301387649193086030193771332506325823313885086898061949199582352206037345656156934689942774997736779650048858089885734674528872490875327974668397437058986280484758519284622547393620724743040310267341091763066696237743742798440600612203910981182666781406356438958306219835443992128204288160708628963979500188813174827706330218307524331186656845681975124188687637977025032921845389510282108363171838227726778087657668984840912018410950485417433049078294993381784786705685527731103234059719217310950674960227918706069689602528106224282244612451412342490142373210934860691752957153683820475407772128267999415940638996784423418596231931706578047494996034698899955678477391758306907169819438869347969913935522851702386296832675393409305011966081941666301803964556784970879237429685239269369748788570546805370822040251045627377535582812970768463068445626441186131095194175398143407562832538722164246840562509567991285596554784239224484653884501562915775743435434423345037042791310989907442612062555044901122243294173120281732754126883035741076796523136114890506528369507303449543427747694791147214089193373592195308671734738194376972824234206086690652069702610053835193861092057117251404274342063948886568223522895214641963791430343214199967448334139044824253406215514652704236431061345347628689228576511281417532854017627719988881935128837603830705873465452142985766850779334030993509880557530779105759378942060244349478812642306090527387277673493311049675306792440805193202314055204583187217943534291557019309441568131319019047756780718002506344245947607801404871948503846036227301869414727464724253931590384852841671771435326490996093792445971457808413275612973183559483604817077475800998794503085185002496564904660905355997975542511495194124584898989370277898987386882077485544270660472175072522808490791463015152174282261572079075389330604427251702269444728502584967711232282233356848845535444874416101844180741980902170981831423872503344917579769107004973549368180825652564888877256672399168355888216271227833116409257760497668869317009517696914682302725900984522973643623265664750991755629677791223221546737693350081304178357638939419977261212625130545798518422492372573648943690102195330544045763951461735207014942699773329918067662150131410781758832764671523889380873471201485690976670263289884547088362448744632342878037135716683010585125131830654272532564842106857950988827153492807550434973550674466153952365775636375860669354524507267139943344453972344018455353264171622643309329310809500812543194848327716917588473529784853261622444933119894637760555602149613784052104205415840281459203495482381862808998107729578260597987551032701344669043387545281315227546407557302292420422406829762423341127677319583583695091696466321836351468889179789832641368123427543837313509585433320283793509202585587766222242775173430524817491591696273856212617338585777438104177093200370414777056187667555709327287137742279915712445513532745065629929782689459411765509594051020901206712948620733667705976545163780838493779149582900781294874058678812774576067039166081800114346813699833772015789496502553359364788481333467333056798683058711598179280454776613498894973269372160884507911130878084505458608118837245769196094401175920056126036048035049842094029156796501555809312885595260380084586020403572097255345706649699047073418753264470018796868410951650412983813137988553762789748409113054902224161141978779053532264957507132702472281668906678929314584793769833802122518162540577290480214398504356956221373014162415966485501740946704662756179980126945729651763472555756984027705941750982179546480037629313588557220505166221745119082189673527642889509915814916889436410057385974458019152392920253573633304279960093910722657900241068946623484350043717650757084373610241011263056308847926543241199432231352674412936147712652187886381888581056708756688341432519539679815640164715441629517004657858724322600341734984117540254359624796184408657842907598839921362889867328561602080230413532738490720026833773455071942106565096310465077267001552474675026422431391227418257378302337027705834234012309636406473410590223921459761332165733281649378709936822258280944974407510564104631388296847044466781700071904667662537815425697377732681310111888060733146343434076233169090619430477539152357463537587294033008871385601840242778006652113319907218676667126440772077701684093096361861774026501082025024458495056848704558612407992911245360758538230882362919352292312997599265871342115236482538251151702744469942836709653973638606519253171787417803152476367538280644647318095403879124431037097495569864491971083627046552908920030734520009182738966228840190583534154068038620725777839583116314388036346049655187588095213086473963167080909703203748486587850075798188195340014317074723240011989889193799715703075704781510881976640437663515966437639654659250168807088943530238932778852043571444611600671705118638315164297548149500420317977374750520460044897803769548700203037307355589760814456915027652819024388685026731910656911936302457545185775444431387986039388943784826204331913250706534883990540310406377017071290587093729582319144995083698499870073672664942894931522028476717519037517668775489434192016380466558535682419471974153440752400204008225662236704165665437853271949800466936038812383172486713128624446351065541046873512969016840187088274286157998742660898396748722044116053904226587045235377753663014997149106705753494623437174790386212655489935661462938469470431133854530983126836296619435376765421129706973512373650372946248954374070404504945295447523516719736708260586117950682650271347118175815877560532226884615665491438846178911749560781946112273563658220962242381593077592315174965101594207294824650347091539382797491765108774591366038505271339333162611358755478529131643439505546195165451310924316595963487969433571085399619612519414413201375679881321662513734736237521467213190230743286907920172170175788382938837591876964572642755039193419279380190498688995485261582180553969439385586109507347841062924604730667259271837388268960189287443318142525309114598229007970718741115408515280637512928236006346573302693262569296022014843972326147617404493205436659320312030983575470179015916994401571744064366348324043607440865715124487276726762113309996394312451956580388823152725950851572988602077618145198137906780269097990056232393005079964001427381262118703021450682881998067042298908651269224734590578133056898332010875611524729922628464012929633543999223344678671750759016659477116166131593906106360021194714461639705955505490120714785061210571116296604700213556946348314068796124010640344583565580218616253422499508072032691786547568826093633961325280870037903615051829207436554776940537390607387104877849073083505045796925314078820788225286704764570413713283260186059626005965818551642407359750601154067686338047824762793761388583831984052689896208784760375109844573777395137388493913995173304176981165552808382440662457864818235064773790624060089074257319349647740526267681388130104116078185127317212855019311964247173709121432331804855357142441441782368302770513133014459790388212025710422841059281609559089036884272374228917808196237627086944360480449852434759089099473227139020029297910234903678968373574566306953325206455262879373110131002376521364481043419476789583066922352875373792718102671077480552941694843107230197758473518954061236382703531689291434041680856615441638842182056262454813038871593667961521417828296813606937973422203453727038134315520344408469655175070669671623690265574044793708835425319475576792570821034068675599887833016828772013693692957938270107705819665259799724622679819367867434847466977476991554052859597365510828336281287203241958877692563962240886106221764221151178750342146301834184123907469500794914249756747974430825886362002399603653480846143703402991961566480649317333298342354959702347199003858573788567367027044767430143058433106605497111189812897499295792219582235123209159708393511299826795104966157770256354455753844315748675017782392743541049506531745963063543560098445409980963008561732321704108616665184623934692157049659280367543971044350670294900067480037332001390059585668628716204725796619868251959513342790638802432531694785528937484722909317401656513488807028401284793452944918100397847562463776339893607210641626270892229573986129561610761537880404915747470656254162519411564631373450899293652327203052144119243049364249484169603492192504623741945818277762558397370477611765597835901524921620707171038309417544067401179341461127802062231738832331896432059904014448809846836954696212504714152901471827856492992472655805489494306404066676114381383081806117100442134082620468849062127466703665490994374966804116176837043735660639665998271738293164137820453338093526667401640807753683522565132037997261160710804023061463906789107523779941071769959307615233889793019049720780091527994829701695132090360917571642362620438639469145066534862158555023891354924108882179572486645834651595939579980287639442116756738440718979527589247266133401271267515052752640162058962475157453869120051922774929085517665685410631449720409602746737227933460993959516031855178524197758884303255659822683190327071914077030364268745476939257503812173751165535317304158087209718544001211427508830480432822156159400878245140802235354432948386098020601518546485780566366943158816316063906686442915603409378218158474707494206529662584793963961157016757314027828955982984603097532296232639710034555580852455426079788189402431176207818483738635158067940032156177645643537813766023157531890484001419358869417456543573555865849119633694282674182609673368947951445616521000012696626211752929779315465347593256437418920885611332491691483864524766252959451009274301176775971332638192680210726626555463196361967566212534258962375266511535610228181764047123913720436710391177071419281259385118720059786554594799407272229632582099131865036422529888412305022486422449308591296483754495564085230751623900494265840045071383696859225444348802856062740755936119556394317273581333700727790580075450016520708317095842566181587182743047471760283159998515951185496273761972832400927591712823652468273301927959107731786579719502845792273341954035299504355040344605581708893324612470703616773111335606775924099427562754305366876206258943145589074071322691084256346259046206623124062006920326744133139906582908354863723059218263822025371198984672661380615839653746697606602009822367023859782033917601385422075312990080586972893314305463755320305043558855582319215864297638454141169567821882979885843757208687850902924524038875590944809928669940351507312232537872151371808124290013182357892584914807411243104993054710361418875897358458138668187683956573533989400606097545904683159856842000772125570782511322139653898130766491503679171283029199398919585324742497046222099111370658276828913666230869721960294611211950093209079949001983515859301987941239420546156710117786365122659569440124574885846025319504860355505171729494548938212661284585123994056064667858810524917649991901462166927547061100207795081889869529151750024679668963461874565267756363283048892657604744803878249822087679256899754268278575470192211446927034974816599676291475387117776771084279286421801726921610264344140376386888921437276964857374956558036089438058680359254896454186007081232365261173070973028631874263612198533521216744407853655136208944450590852974665450691480086955760005562811744710872077710304845847222818634558560184327579322993677486277704806519217078505434020436555721938427664776927301101506588048571301513293508989143560686321973402590103483489407094691145104868116106244961507129031802598933305482976687617098899374737459552032255220711684520426847319200390377782448679685393360834238500994904826351789412394471343867322497197486399366798744660749105374216691229614356044409951725999810178094990037127643481856983144979700849785369899528463227966570389444026124565978912464990561389640424534483447542733116945590809011792346616266897083968330940977032855685291383440022564330103334481456589079129127327821498890771370944251098026414038084045122796535815489737073716713574182270968497961060880548335336303980486762923971125153869212800470896950126045901872107221975414143952265816241756544136560976379297157618157518119046662887538255299771193702757370422963722654363490895596595872460096640891527405280868299255191025137588589985727844097111534715904538440827270930427641050539413572743086449640499958383859922453340908998257122915760091318030029325902728373969433848607502938707708124175266727276377504958753247241774535782819277764086903022309320021585899916249084906354959914118182646639866568214823879944115451754259576661716061894575386232610970085390168601811302774138570192894556809508734146779859048631249071418884840086420885241325244359194991439622239414877675201159876661458641555449516583448033975048700347342161462588177320044676423909611930237736179053330388640406370065124448067604219568459659255454988493255390672304946038936243343472022209055963594673565412822441063344793774967102791415699302460643548179287407139491123103566481711210519268425165116473661826047674341413898755152156412893146689315595092707471514306664755832915266597890118421960053759452863236023483176167556674764215043758651296682390159037568488121821178649549216907441130517442198955435213615678001610207865729339457072789489812871960424381939156518517696340276791409004269902319403124935127626904080961140789928806801577758482552397028751917093004689546062896035024266689264757594974523110626765242912703006722977014497357448991108469889804603474727259835875322747145004715038993817607433406794655577770514837852750979541745921890801135234213190008888890747004256476791786718283741911273718980047109590360586279066006242054270401869167189631149734276507869202977765206301044014711988430468116776312279701969309884145711827586443147183745963577723560574121818299852805946663495788903256295416464437522024424110311139285136504814749661517194615190501024692143177540386485365451604733908466829556194900088261916221624274492164465665614107107009248445152154919726176884445976844103949224742379775694870409189264509304611226571796741890563828662684296919010595441136744305460100175799384832763590072738072079428715174904608980668050386275978698906713197231785965090070486390615711578592199227953057461474370677029514772539137789255621105599483253188001053048559382438446518148562330162994911639136624645581225596099990259112490731650970978455784093396447154062648475562645805349074831338392738485217685401316408793980842662470764336900932107705851035887899714631859593885805587012305848917446374264136620354795191142335196471931705335122232165539519745177997391412700358169555708140093229496845886310268405689208931721069279610148145449565473431262191087046872128784381459522829422301395907975022634557826301936192038520132800109680719315730201215377775048007689702989441342766224694961649474386751499674189728698168826698646393679155952533815649662238836975428236491352105014840551247369535797801558487183279282544844168064601749745534770434962252582156438769647222501341972331961598798815577275280203417042516025168802273591435158004302880708819384724882561901264802501155361561073178142502355356316043962199569499371297808076644174045852227767669527861410368430908477077264913083319316144590345726319922520378668222857815605777026111308112535992360997802843618675572878165946716861892510071854648233206601410593395098041933018424858661360026971533246192494322794094735887396559067032895193474854145177591520966746004452528088021114956063873795664045522681720743898985901108770575010365489570287943662371144635238855792377014773387636058575529217581264475703336766283805545483510954956094590132349451343746891227475386899612966436964942461668849876226479722118259069534690633000214540577394749882739859566506070012354629476177775017507395384198473296378046467879502839428305443692142922747311188343504979098734314722971234754860434882692731954698399691323630054264408466904135915109882223697090407151500088914733550223689962291184528027995862322087281669058396250928057296154889965777979729841416588972388290706291479020256608837079943562554397350562245607112860767277311026168523355399940230138369045512111329436391460473761248101952485454057750576026766197228438410630809782008119810701067896751165769730450641169611697790645002823945593428541352526259751073212277383758026448050949034288811468108681945442951840302209037607151850127310555169056872337268114096189743757034268499021071535638163941137928797414163416274633846984952910237937674235568419160525064060276542302595914760551556183841693757582083666371019178212256703081087781882361615010279391038674222391289049473337169252456004244379670088981193652770525330298451167207750066368281553273445712629193048657233097754341838235836573715176022280868062324592845112458291938784428747163922720260270076186915395912555982059107756142733539687420078471529515144748941683199929526952627838283952202942562122628640236061027736702618203603815942772752929793820521927467853569305776096748068765319716235011760017707293837887802721810887643012361974306861318670943189095198190033904662744020352890117975348376089541699379680240008502704745950306494175286751501312984994180892662785834548509216238635255609493617943413320448589148929319813196158769261834281920301185969839261120531820364911501012858660679343694551192998698279622621632647392151419376392457973348216590451474604024502550479988980737861104559024060044978292486626093545437675138426724125096102261657829534622416702845152324876093901742521721202640983952281796654140579032093040736102668636929552131281139338318843714085915158543003916634598118124244926502935279287583677328263438996326517123546313075424152047523991678202855235181492331328043141889162721335768538033499154608388954608747697437249948099705509659184633988408541615885365464919816755325439475489224084357058951173597432845554570927191576188924938122117674293355627792647963192944676019341116052861625047264543973941036568612866637895792868181613986032072000772793731320718488900665222662665735671353151339814493353988310710454533294313151275787970777019995305125810721615083182875596757031257772153052071289772779194548710796836127620174031424509259377325028295443271264166652539906114667860210263190445863826906272835333773434871047919946844652764759325106143559284385353481884986015101630520084200434123658557222989661812096114172791403059074270295353853280780285289124211849122316754062041248956050509727360841847541844691335950437938302676757229396677976839770925803709744765403694971084720537403758822260664136002780730423296964705703824089720257787835552167050270849307615307870631817590106581496636788539159866225788979612539337350243591194013004942155325975153628829875479379261866671247989945488229028074095887331440483039279383420381813140023270720706419446630977720522017468634678701047721564666448444579602691864008537990615003461550076639071965308156605667482663118831696759750398641686774140297988614264279362219738517990482425004818663382318187859019441957432977033359578143452765924409299921463702592430631863761571140908454480456838398103521203358777759251342876901842016543644093121942661172724771043307603358912116617652177888216341691807755976550179405699478174488824291991433167447691379859614637603409347927664365624490693357902376285587092597819093572263258229404567982048639607788497225311157051019601410268965759761664444826637850205595516532049233635236230834159682220569976198032328303513455877684437044208056256277609321551685085874496023977297622162309125865160176857684588889400631187980917314468082070240227697369278469065251748606380206719984080399925672781002891320558374155214105977803181639543984315718648486421187117163736229401603354823184982548448053502762397887191718679590994460264305366128523000333900616019132572931728660355193428527634857207306472003122724028528529733770816237265740277128404277316173373961245100896482410034804791501701050001451083808849636298296042514582682369091158356183504290189041050550148072573492409941081054595588742457501927443908147906195998561861308324159150894119248785964225936256574573732007736945308212884805057052084889323049961142120881505726758330918936420455781663219626058647257846469883494842985523083546380712173417341789116823409648552197595942591353330515205351607907247268809251864645883034651419050843318327285933617705895009334449636664837718266109768876454218081358420721102440928389010010857549381305416678960158074632007134521609279297313959005277656522066745651887982678607378726080793557168951495823821034393446072759938566686975743359177983364536715526547849466956052359006266838633142138017328076850251871800662113119684492274486510129339432518980005552652517298646714779858075926610864008303155046965762399572948953958453833924825543308009093151509429330044738003889931173264039163537617173087808932828285540762882686490978220818426246793448895190249320231264952754404817923959169283126512600857652025533987890616443769707897974571258125214211617666109370417372599597329888448589893761976400388405642668792431269004974178359753388822770341376113566804585650445822515547495094168426118698681604434356677496191788507835992500520795708061280286434918286781957721722948892671162146397997003118727523944545668015047031351182727459954166030207285398332039572066572768726390761419576836040154952059048572859607733745158027258237370443973192089526048954499732231140934605514219825820955594590865779146985792252966595604623568177272259496899000290178949531588745210651902984946871461874569502832348798823050437112990556042146672837545510277089763703143987742730798104187783432491632838907976026287061019992844725445180882787811693610253487547133671411127825028535350947115576752855910227453426288217410306537609954775282660562181471883862167985217986469658062648565292709699204486728012639036632279622801494443590542511252591190037298287098848016823974918486548599569433560063162173893664610543057463147051274400304375762948752132351448104806366061512070857364428720279847562528324393217581254459001190069818252238016557445201880624002563573064810145824720992567954165196103417169350018969992988682038854269773338071833723066279005635564914888326106089130290851145664224140875713766231358342113449093948966301030306504152006735890732720605703048362482123089133531438538848347022675018278754769807552590932520933898752600043416574566952602471766693536794231739774666622472135490823079815824430675857167029902022713279458353998771599971603013825614704848569101523022044254682865368954420879572482149054205829679257556903831063915182447855981549200383564098009516794308020334681167813229557749871066278387222448485636706843102045568559529996773911915990859673384525038530105723646888653865836631372944807542311852199736998659376087471029351468201761830353789830577438632024701841028554485951580929271440682315562264001580452370594460762479526814840317325064236493560112612370455333476534113846802097924816284808044238633684940760315481515861344455952146281031932831473898840581678552653948839410043778435832807155785585088413904050993581443806008636564443584019118188593383843112189018577177589412352206093166465672574051553582305111366276593925704559605327503520289251731674958860603202036994540312604309479585253138686743398724076308536184061508731197143663945890466872221579363376682397058915913501019834323040970273503397655085559686378958847028761884229550085405874094295103287731374553233929543011153270718278744063170305177215301317170074082320869465937478210159128824680755995430671441999589664008143119513938885103958790254639608031915577255654334859777855954902098168994902206048142924186425151198899614080634167691435013552654840635916987909614557402516755369258487831992022331221588314277897291086197715102542971270507650944888785384212305511868816680220542830969693531659071569336385620844927738411644632152721509838019758680493688243004905042635111201572082496235438552694984576913171786819430209899628728097961527374122752949821127425861943369817564666919725997746055816141252994557701346107184663341879531361083746268111000973602560254430760735305044565682040142132427510203303714652112611411931564482694724154893635170700787531786521620590056746611459048541783741601416823035182632459819119614873802125047529333128581813524494201211875905783644980471983579314484069194614100241263145827863272205808044100888447953021714337732974120853010774104612813753629236857813426178199684993399227982734646084619815510761203039056582994986683053917657231330870208819662298828810362375105475667715621327993760230893063189256528399760178035521218252368124337707017065770880564288259565843393772071985036897582912307717396307690413769391154235120952308431803520445560699143651599920853036887803055397057687845340628923086175480615319136045199699958562136550246055169346794373290967650544762743406831824029483744539825422711831091777683996256735423558464231955774400347939208436071626695779172478301234845496972578696134676091591692326863426963984400165488435771986773416918640307991431551905116980775020526444873415977332608683967703094839133872418820580206490485462028496705528094504101648351747232729233156833173859213705356983103435524057746489299800909119707997565461827441933845909959128650377336919878756247262233765966131549685813945609121271267468415455318625002083067187127686090430416985664865582627624146333363024925991311730070368632163699888915419781425622088161092267819669699195718252191958125436981590175088099964753047080863158556859431749489885235959051283681042547172742082150110094582699430782083668720323541825164133372584446250090971289381052026185514024187666906420859428368902322761748082591648152291856510082762324436420691679003225925447637488972503955991019367842599591748446066102628016938156280983817963507152472001351538593169700846125618740442662425238661598279653996374304090237699175816492571041624559407703111752113769494511949313810477882361492158346104898021333410962758904027779932450739197372304666508929928928105194169429680154828606834335579682661216030835718576951747390627194095316259609673853404091654633064626102324471059759166687424287775215320273149927866393055946357699202610702570320501925001403928139775559960849453729451965673074586172560854172836029615589415227376594554426779911148680966996443615189828264774432769107570079873174972639884712474121360773190553377566150252886754782185472056229033449015373837825458348932275635127102164692467915985535844695052772869795700789985357553173213771077618627186344720123676631356893894247015294788031412037634211546671556799865298539616367647604314058388908095160267978894453015660228887699174341399361532045389775062515137745431696048636209267564663547732912424653193572739768307268425323948914542429860599059136076256445708231854172108929651996947332844347458226876384146211414794660971010106065813272867387460703717504141052372702461233250188434365777535820654458727311505969227478672467126923595271483229427434333979128052461668942149352879835112282662916591840319758094044904680059361209697156004902621360387014035597697178352412678395067084706293765654041837511672550935569553226598409830399875007959026042759531243542231563614189649979462767042359813895592448067267436039831278520117489972479466264590106830126940273837637375993736903965403149392461667832009266155311106626647427734700628286969973648936051981210824816512294330707811855555098301851366851351597251746716915495781369808681868714996607840752845443429810883395894745484576936563831252999581759740364445955432478242650811278175280452979100549662957266953834426981407972077762375530775681940930360554563853157076551531206326631307482659882378486029839483304436041622263673376878267628675665615691995271671892996284165966113835706312750498433720128968578722375389166190808405789670813020593812546701509625853231634786931971877899209675780476880963549612031888398892618543928466400878018155030922075455353602708358221575035648047352077893218525308591486282544508407307344432883063190578345347047481686481005270982627901101250317765075809419107089727543937095582339286769457817657124426482653838474711116151823270925139208870034108618299230749686038498486999400393186041037855828526203567534325175371634816815593912069117591928247152856656641943172872006244661615665315694481645455109194430396343503627848102404025185799291369906076566268285179462840139657513998369674030657120980505545239225084086717453597240902010182372489059094950932078305847990459445907956763196348444645042360400518779061423266844095644376966903757223875381092438364524262447956369670167524851668402321480030003370499211971021794291420053637322006073692086581437626318302623607796088440567527395662146784912304338478237252781777294159996160872879710926627270504959910625262387760009901462474993675720628303265724196626412891373742034139722962818043110869718169821587018333467617612762795668692383811166304225487190190256189822947156217483282220559079132772885231504059705496348333951188613944236748402781190483974153204340037871319012863241046627354272456897496611550622108264652291050615703331652802223853357234576922866423109731548314925873383323519581899696221133548163270460921185913352567515231749255130389288996869130201517098701378584597544522208528924712602139469670370893382789017906190731661132495300951248928239320594507795865059579376218012557708389690753525395092027026806069644200802002330596383006713266981445204952996927788901950078032650608823084025662175901271900693152050300012536683896447240071871553477515393223965916322125563566527567213619992838072290688497725666190089825521461012477351195497290989476449079233401703778755142771252912880470107792694773119316521737081014072431304397790438988132832235347540620015008351412553019458418260429755454968435922493291528962120674185396087744330735187733265982817725361585371514521620435304345032360588089670589697740980654327812451147748305587763477079612598166675563952098593767039185943972324000884108608480402315532679838126687269306414260691462856521357641958482816780180303517527181322507933453332106511361276774655507345097247573395140700940474782191112235338292622740892402462933240968706510528381359118270153315704344490213012714929515619262985370049153921402740978307070705816146683621621108050194019089514932068397104811425644541744208470820638547209772338439080888728013164884632500594378964022228701974593867329587470737469656623972359825238810564774359770197659499873645703633787975013481473697997479941223387574568350251745054384542818966458241112655909680159042949139465109284658246479942061020351261161731339484318691285901792364830322703232379834267494873248188220003188516558674338784157148177277326967731219613862761671722401641918192254701528838746512771266933296268705077172318474352523102026593865764643268078435283396161271214951103650990632837438682580513134751794482636099998106680834871818613446838727085282063686889302627924824854469536718987870310353522921666684223184499137686617236533021744609459093367144177899103734567530590549164165363144139121636585857350448258874182586908902572550062993396547616366647817431215283853918650710895664236561296310649749622173428420849889829584035211460776645860439009305852387803387338856204266459246167807022635407705138403134154122581223726408384447265607056250889769881662886146740983182857022963767281581436436496740851300673481983228189207089004410775551786398028400576682324469320674611045186793231790724815858645203407344095023092268477348381070138640553905483097007777086317351205775452586489381226152579054521700962947650368558706205715162201763894433614840746680068437398115012396300279194014821945428270532431557026633055344730766848478872432335557924500332466647725367171566293963042935945629610913018836938321234191124924364860442592108265490072392845233705330266973271134985706990303592457767958501618460109088585353785804559290246219526691465662948718013830501444058657014061898754869389017146273381706816138853213873470690060172604038447626144194638903681853154360550811521474880034040677907439411585595282676613370410009745991436770760852316243071108249454505766585995697001226244843791522969337081770659580521271843263428073437118166729891038360400813665604413036279803311634119242779036148077930192539854033626257332879122860474066860771838491984465727073113425260584009093859833147685716346926021834073381389556725264107477408379156190032593077257035811714441226597698223964362442477252316762073217349091534160784540297561663271142375760083114690182723125631190634930023592460260456370975061272089457041258986340253470621039002220581853937329399726579090003853957812535547898513976723225162608108733852041468457829714506388681538177177044411962283586108382255914296745944107362859575268251841430879704812997061058696176002488012119793329906637274591947129347742014500976975603593777162384218837651508533425727438231939770414461068166017567585562758769762463907249403479962086480597576314880951730147963172342027039509511485104692343793829554601770199282058289905761078890879179245289048085431171350427172347104653031578152216079633794570167249770345125006892167945109333265135089529484187537691663777456816125381676996930649244530784976903755848514627646835012355006553516945390691332990822981725291999135106701793928050528877938537994235184175226473532316983573893399020517894676640373743212009026988230266324065083469370241489286528512391888538615641752314609959001641561384609971953088913718556192637495438778133287236311339947350288085993618637474781554282278123691101033580977273632610773019330662724531051861447410746488720889693319602683352281153244227124733885570935702981415514697032644172621061216065616105380254220534966709024500376035512796624010647952870880181713099405285108205983371900886240219574494314087045385069311260847205819526956946353418007117766674091704675841876484612279940806616762952119948816932647804525567145327429238619453324282379661169856894940610986945136842686061107282044853407624218831767101916730200491409355309383963303664609187783856814059800524724793279717386144803313422562546280454236503719639043376410403871705150003844042546419662272599235585757346760821096180493234388659187323359465937577132078186097500250823031627542086406097736055908835268037338276815300676110876396072635718414382399916772980472003796928584081747496657019483102547398398513327434585522992044769194596167838317931108120578927454940554953319530540664542263234674128498927006659305007177961042077467633533944680737039898980725689257938575496179565414868216562435776814869326421639012322136883250676826471629115080359400115968191832624754266252520005233752128766190165654955174460525816213411443463481878211372758915083053103115636732218314578325630530630313177163861514373020524285685316545621990480907001709242733725455863768769104340775686126524573129891620529628404566570068284063682528405595647857543916826880389590622149807961810142650075269328012786433784961700601689090650514219591012764808688236401460647870446453521379008486809615258171361828011648961449018024024069896365269521189944893290602094446934973753081374942070123230325540878535636569953260648627922570346662313190494062782877620925900705679547523194643154252578022745595340479460031980055660778434976489451836167718905195451701723497629482699629950354524205680786674885483669272695539252598981834622009256606989363657661003190990985394364879038375818860851711352770551740163180569641532818503575205888773899666179377637577422944241982349624867510863638416822820401411966998785314521551922563935624981130496855296041704757508360634006442607929467007292890205746984415819153438340792661204662786381431084600147207801627835903815924435562918933319271564772668362198472724437689262714566162003666484318297464260888506155330046484499219768664819569461151720369752657723132900405128089222294169161456084223841291614071309410867328863288773434869414667125072520449780860538140559057223561796905324982336686208174000801792795651330909872065744267040002812234233021834787208567308728042002670277401013229288981021099291798252155215329528113158926392992751417718854086426666514716566682177947346820953394716793359661789598832214679724245543019375516389946532342129741022452996933647140615732845672525555318565260136245484726235524709899789430127687101853581390952916453233715925155460154559759202928452024748600664704282224302246372535390088183029962354034038847155798845978814755641761554298520749261365146433445538014336434930740180196795955324337475793735094748768115176987194583786480093536966381658806481650187951694221545602194592218190027216432389338414577866612897992926184701117360199556759760388148998231049202708909938746928466545597429981609012657306188703784856837783641153119383430435579676438806219862562741656564441184681829072840268133066176614159736528901721416952568839872903967301952443359641054105186611199055432476015007224764808728054531145637046479060803105094355546303634512103051320407877302439963578064417370801124836017448764323641883939612076432539567585004029829018625550442804867580515120815284804057127802378052805167924980171939496329898556709303113977603124944609693264896433565824797019308127768324675842798889961037525792028796951048886754066320756336490497461253424921519503668288549622674970630917154700360186066605611622021040667992892460337619940632181884580789202528533277063634924843224652760058085653742036599763278234431588032792569667315938150706072911345139289159525363512898056406084817561498604897889705820589461916488015087470463593719819745618303152974768238966723319483381188378191135658830369953877814681477499521469890397936101382726409582226599494857972695154897289707709101839010733879003798248337759954561032139852416767045151099664148251965374665941264982023291162929442311200926619295977208991962933217667792111922466226022185157004482411449349264018723946927824505932319859786952169621482882119361523644268193270099908786573769559870057417138296326183243010435017844879699315680940977867336090519122901783449203392440865843752893115635849267235480349129928814999913373997123308572991964320435539711164712403038309441694279088573323807046140405823858378322590107724286123801525212691774211837635303050109120868833966987617471596421918650058722182375089345722775551348495833588727646909300067485291231411972840056161342217176213145828249213561491292815032963548937838943096503975548999743557477641784273164451241013574779017947494602281734074777308078070292162617260820159234226747689731845808111253441349540582805356335563666702604168636402141123687833950558967065731084969461166479521024616728911265409715395000792356608803764960700800096300835216062005734147433936338668304875111093320158776484257058142281903514691708546607684738777486371205148785718940533326026397428245794470692062986055099602330162714034042055471857259720704949481860531058288081878300586334612338839592061240414135923191444981117213771649933563153351470093147085622511981604987874925310513198592524735126350199979038054672552222370604603757232054788669156019489815415366222124986726291524580591958321114170422609755233487414261406819349286349239351875639130481648129164651159385410446474165037300122512165753185733138138678064714802707551935440379195470042858668599171233457945377505671436532849986055868547968508450549259463846919858549381620560070561377751082675183718521586490576462498260179881666281185565751740686367623009000078246375823256143792354201405846036372350722080456841481061569515489379749917004592358728551219996716051336614286301330690789139633540064125351312092306859852318800603271965809406122786216247183053049879403960017362316093553324312241139323316754939282708760793946517585670505546514635472731815332333925124711477270158447897194604579810945640501229591904054155380949034384217042354824443228525866323153161339156709025776597115450637175266610430034054698773417216613083695874770439517769906284059358584968612175783939997164560773953225469800732475480473202379002972888026887710928491620620062198477296325014136564074707721472775513381722007583109598238683318564946001910748122522502062188500959383915292528743249132621835896270666209205273408676338491031657347284623664868833072130690115185490593304794401900028699843240443756779643014813439582484980542376997787400941304694999495603843890798814757079901453204433193847389791154456715578417553745413103642355800784720293856792482674256698820435182517414865693728815565687913449120602716045155576361633867225063339748636155853702857596715491615788922753136245140791118105397235978095627485930426989968841016282313401979838564447484967219940571588780927411615493280060032282787681052161975096127767996964292899388995819589450322816875408866106627363492322486342268822505707851129823200507411330247434517702718688063596159072570844631697585191355386165193245322011595154465097725356270682626062506073021102636420373383446310568695606018940087351791213130711473847123721721440889197537184504309195926049919916865376668180252945382699365754060596695690466305509662549609648356359151494844396062688958970356999230150899914076599413258766694294688699292845415097697056285531420671059072532905832906835702100779046151096973586932831540291230773899784477436847699070922451441581373572522080056295356961417059476847880155753327592799981019740726251790249040078185280483721326010163475467384147850889671420834389911603884204102521166375523844181786161640169372799580562705315754045164644696802038482122661762647888444409809432327575893132381983282705328785532075253402051830926019879470851395845382313767406687763847836288160862298586034306821265068354653020937418564212803740697330893117318852173204928715565132661347292638872762382130885339901426639268898710863598287961609268980311453035252366210620104184630380468458193283728525141582516054856884342252525372499574327761322773200576919547203824298180416620705364320745942685329272044610204235764136598405343889522989763361924927283990986128767477292254017197795872262859196143701311784054949834835416479556965274132063622047846446179407866212204940190786369118966956722571741559406099057831171828634596083012881224141969186069291320917805924255979922190415573769212062699420645222635692473699105179065793817476774488410955472636308445129961010826503101567851044079686229231143555512442708740834292775074363289390795786995365523743424010019382872482416431005541335155613096488490756827444021711053608800055005402560209849366959535660905758132748471446372810549327222000147234488700372163637098617198020343163225883172091264586910533532935987944316318672735357551560736661512015053744537573680163389783055494404505618939138306782981689769068080375456005759292695244726849557854702763201533632069166321405201018701995982342151431939466264640554560996938624333062740868454451915559141494494583968796255759059096535321600552753053253461964060393111508251996006357733943488036984135602530923889753830854988337048845261972078193593037470745698488865856408948290742999242444037514113606858349424637193583396097711120645418483391281884734714966716361264174157030140385075486437683610896576926719427534205997482595606903966315990159572204667560696674187593209846150890980091400663379683931027494043665823261377716123515307514773879158481331587878338730269883995605732328357185180748685323401693433138273448111396991033307170701118804715016234243586748338962460742547493291668720669558894571759216019538487255830240035194590900005786992391321386137553413904950879509816473256254129868952304697860493310478804246396665944900672079859579610251951105504788535855791664284906753165258094674014375079478088815475357968406208574668513165518317757615305112803578697276373286061749669908305412763923026709617820999704373251373887466541287069601167085863490528768363037354883659337395222187372439166765937944961489170876326766470749556390864442344384622591697947230368008338131561699731257786179839114878933861853737733887847567887407888785682996338790945208214016618736738959356954986472549339101897689390776542477168071393563768373239320779706125790001275276475487167250108597911788277244212622784834206492105852133262332898409026128479871512740317044336049739242178190871150473583600125713345539373767486631044166553057172756878074829276955136848321300044645010428614057831306327289336150112315968166273930521353380916124785209392708096155980246667385572518398056905935895959820936956992725408629725035394330213168067266819752767327676797728773538215290156342743883270167860748471426524989688233852364481065603959450593074531467891061904373066256973520744929880250289016479167518257909998557369023748587666103595546982388500072383408595581115267470603034537451949413943320757973580601662789490636690037507332533947154038123970274905800888346490611344325510067524433721347492957781939834332279218345989434631594318959140154467628891267507335182841848432260951668236320964463109365517634103207886078588080014160975320864747351445631307618558309101843884911462429795373308360674625020317293161103612654879771911488808770213331898579623327963673909009778995966572609882104216020214547195248126628592661658628777883712787732045788570871072154707501871268664470887890932173945745452664596147602040429748484272520314760884353109150649425550934167188811309095145471185649061499334225423040289344987037052178622652169219568299746905570233326725283925506978182241042027091690057024058277024145466873497727141796352219264051465325519636477918761230797912270178959640913200012345047149433964575090650805492863963551053162839496363616667510098908943431706558076694218241953156682912584613864043334554745875797611611341167477030439234188428555201152247244838254674702892753101650934060103080124563753586170953687463238315997286737798101165736785198830907142213649662502312955609037707327053129142387530301038446135012868984861537588398884148964622363835858017113456398679277546865561724935127320040148902022843655097010929118947009487864560173960922503483665157339104741307451588819551848842183143652456271860668050446862545217110931062471374418442669717802339707547352060625642159574744381236154272699133904789589585083309840656730423238169179142919029604256766175425130190507932101861652459143188735648580349271923203055795652723456212859554562877467722890911533824292535057945907780181467744272769857169575791057045648223222560950146812261198718358452200524019705957736108422702413369690739141881892940567918546629219153172039600501523773092686778351213854284133156720539911322975608796450522607385917446304160295608297654304055012290241348419308069204169366184630862785565625142191682153609535455910284581842577688711631099099611303181206827559568427624335541365296930167193643276431759869165911443036919812024967909976297442520998839686825795917669735930588976417288468149072041662650414628641243350308164870150901606005303442735009244987264958549600580695987995959023214055925682995438823585546269038502374023394227093083874811896980256919194769618899803430955939623111386597199022870217219080075826726280257909776834198477152634128024730324085367741896772008515659640223183952244270468810795591016339715206815441733054308060223950421281823456156644406628551081737318462756055766386446281433603046084412117535965933058707477944084257382011769871646810427179707169987764572070610740298813087294111590025368015484256888251658948361819140114060391430298492128798407115196818571452982358661243179055096981012136770935926717161894227452623395234731983497585049874293781936473443493703343837509612076284692818690712937853940989474717041332486088300331353203305635570088118704950665675544963608998619249245191623414989758980640527687211093572388948348153143954750851183667556869656730276716809684142305748726649576500520089474880484136433278490093608329540150307330838091322397267769837791375497650159829282171942032207102007503176618106111801900834740181150983609668951509810629935638523413584140422694079233030080383882039952582547388351902406653240532506497397933172171408520185536918621396614917806055766058953704458312632631392074789371830496038042168287589528094680835687691063321641429553651597960579347789604849409465639370545648719467665815174644945129273220504188863307581515670337812060049021257544314503411474256474016135960573833386399770312871985882915447907029127360626028207992302976591188303002605193263568091843249801815041424756449424019161781205953610275013115604797364925734697516486018723962245280409555139067542170785019982781969172638211284928805741137851652487335779416688336428576605446073867526689842182106294249311993804696904599081111108723960103513565585700257472834694755340325850798983532726151574843690624426638246704287394038158549804371755511675316473684204120917270164912494799944447885868836345419094637905641582413418507157716077475929315927009636665329221998693732214218882541354629780669458433500781940035206723892058430805365164174475586046804994252531921651422346162331001727027373544194862062608012745597746702559506896692630896352064531218607087871995224070135757866652100269778735158141873786205834312866247885426783285169154014513777508663329576505096317492759123440315346668245257402628146629882555343055290421143560598898102238707331364919291319417024087559348462777942050245540658399800627745969839563827708201050818558449132632562754321829909900551741680600523298320005118348388910578302449673745787742707668842372800578421003577847676198312228762333547498878707135059118431791860260211647864156120897744797816588371333954061283140089592892369956607777168243040706984519050197974497566488822768041171077502864378288101452079475432733471961240151621769109586048836823470606833899930383622918212996209664756748313211598453848909796688488726898433165313878435415122231877185245203908031920674289752300914172615021177611537102359297167344325078400768932609339633490424538889718380411187874444507913823806116050885575077677571388807645520367690863090662067639123888092557088705586612637222348846031546823847481861501477751255975464118823714256279881466291417521534703772266876527389931269298628309431776997759760015626339178972128255298543183945251928691005347667407594975094485365497562054018991653522426710490823282845297417158757580879730986766438640683438066439861868522316274870197655426038309838526327047576716683116239603619434122590193189663673184173896937276968956542521758486469666268425939026257160552938941473884246417837862103715473857627272590765034605703675633001333569418584034933053300100212135152680809853298729696890774128904563233799572967271901290619954818246370662071059781207029798952825465215973617652693164626877427607038506918362589725496401428920925264345951604340453464292847524591365701116565154272434365540587899283932961763250324459134381621957941371918040571142278581011904494074213564052384771301065607569783477162127204302928590047345784418298864622502310041977905849797258926700638407246289270529180919286551666480160260854155629792964339458312369963247824619508104888249449346774472652032643463453285319498762733646721456916675145056806985575755368387591565321492758726929005403407938518700903970114054158972045372654816917960890205470523342749877397581258669142892495111396439413466391435812606385180303161287483383620803478900411207783419888864318669294995966189622170640157889831315518945304012573026510290700740565068826899021088580569185116775279085492050538927830721086162735904389276670713412026618512422180995159627898878906226526734265669446892044566572644360958477064887589717875216540382644083039988727899230753230995379910378856280291616676177961818203374393516557438059256949073830374423346342168459673831727207446983145963401082662032680547784089129918741385581107946306101432682821730542292063133532080117065187491082315019752176653490557616948494298396522360187644019222195435726784354898658051069729222191842267707364862311496904268603128403111261607838837323050535749923976513885094490889981783654798600807588245370155070519167542923361683878810067582805893829170646730816703421663994459441335785676516207696251604646958149015065237176767804924296467432619522682834810510350784535261361069162213356057146990625508235257191916355896998362698921196155448471506082114499529572327440176164472232306955041618889041431786837602605746553765733699388370010826478378899242960389100456870948054817684585304554898266656573179821024794168491318955203852931014234268764557839980538256415550171114050771208088603805540459444824406751259193480023778939989343907142984144200973570916142135269421778998976875012708325259705979615717421434840381463376053197635324324831481808129159407481383451171855432167623786857627920732995257725493687594883343822770728424788049440015060634480226908469996550966454890946712849874010837701605528135913272657055824477490990686231134485016621604702293519730917971264047555529119325463321527607416528224365558087957226287096360948221178194382154561355614718379225047913018163499690164443036013364669705149787337434160611281646416028894184175682323769505033667431572971057974010778124424623282981081718190711876134511116457869249691817655003067305832647919957751014825843424830864253002994438652868945047098597099101793954086440548542262791936520785476286167357834143684897320679427646670586199464136716565157014589160520836678500529607268373903275145697364434745834507674347123132897275487853371828265437736340290426943257927170642855707429725557391406649830187817120692033550943909087632295744475420600775997499206012752214014275470237938168330153547304756625670627163486181738551856439250685653350132794524750412880682056246713621925230497949109643398704872916538237889725137776289488797953142340437883579932063136369246929662646249811797720685392916692185173762059797859556256214860334993069153774250347976536839313674019120727685088840573125067471023533920813233253648427825620261613189414904742015550446722772113211729145298735102151438963568794073331045571749330386403794459466058575467672489741657586210321292268712839800992886015561128552558550120010464759798919660341655958208108149332538692557508570363558930995458351339198755153879799412331055964722655953107762992215199941408515516519926958626965333181052411220239437243221294902790116128313967856123924598168712428196927648339076651543926787033999819856998901523244120818108440123649793142458835329320206930714638199192542784365632669139388055775491145222275776062536961854292316970076086375175789012366944935210519367345315938292869781690774731008342114166926144341140914431222688974387411035063409098823004386209827930777564020024384063487549861613109940813817855285702493927493404398345692369897577163881267500508329400506419103324319673668553005291581626561740636210162002175396727674648362260512334378487246305646684433789481325043480242962464121650918140525311496685093577774946135178833384015116938470062912552553522033279146705439603741248962480641840236213476825516263783772633269818604874002850709529840412714812084863932950986477149194384573056017418713985952810977284665746865471717152638450283311793278527973192953691705463134335350262634235384839682609228594485341829053934679517195381846264235904429915211103246328352862646705881522332413300284900584973720699020705892031549270186884268673330612048442103681658733988123673436787308936342068632298177481222535230096946027081566107276102478777382961648131956829484563528609933795843666509553177093087362728266333770882604881060830598598924190443024367399758999627623021116853261639483745431155850004580622191541669056094518371272626133773699585493527491858123969915505814370505966528549839007931996071347198183759975963536752287020899747368832089359861258033033115112301713051985602052943673010160722723400723802523596797037069850567255163410633566176826637193553056835255399956070546524997476775962882671892939320972651184960362612123296594244561096494137200002166655668947939488946979960835833480394935345733612648048690541597059948801003439941819488275512858562299245154613245011565676220434357142056598556941856796611918038156728379420450868558107362161815804030387649291917647768863666967691832095417370277058485910942768499140260895666173948493261685428932956783968085991332739536756924062596515807303860889711500919800394954901318680582858035746883855843885657545097491036319256104987076376083404383536427114820324204494783902291589662467819620203342560354216878710922581173634165851862337010880993089650970143661755884125072639577580354442155368996024443693253405148663630091819423280654232622610464001879180265525103332690209210242260416180972078466716162276683331908794918141849545783129372094892685478872276704417963292422452594378292124141372030687318694051659516198576267396517585269231139912315043386903954487530774633369869047386227258305122130947501884637179570654139285143247137849559206166482766609660233553974198137884465764171797359645303516523485517891159706357500366651989221373094715261283706175369277875165173919933016015649871986346158639307684506687559271295293640846832330183444892047871609541480349956841022763116375462834237676840357493197412340587026598316619535330672095754719128471022119078345780287970855750454274183717158198459276641650372567322060689334658966398501564961183972221129031923823722741931260221993186948850679176759499605485024290473032276127646367484540272607803084227459564690897204723210270712218292876020130110128827710673322820060400750309899360720316656055347750319328549419098217832022491310552122580350329652548824039810674805768082744277932321181297971872495307276039948038225167481882405476056081189764630028360583794673366069209073173104543233121567350317477384425053338807301117867453915309663423853935051717191609329841583370257795968900305256009295772993068195449976561499563110820128574130946853223044265628530876256758810630874827980736191242445949305153699115480639947121733394722245299894416933462395708664325109955278568836467548380219978260766638139288952198933755265191432852562620644986817538646585038401339496368278229477482240393832017626561804918828688718634365593640594055503298540192467805083105509266399508120414433041139447125515416384994907414095955410815837167471408003659378984171357301555402773025810672733695485447611507454204584732947395789934019347187923858177047964465347762692376536557606018125260943662465450486561815685503037972058565360907512696067836655344622628093840164734917244118919555668454406007139656105194547687130334126787706421741202608244648604706100323369197751781754603129654994117612876062890224951097716245797038283140619917820516268121585034609017494590004733982276760062681511247981198563124697114060707730763512561849665549800072336260836558075166361054801745847637609451102575549756817812620458935020967230872682879188655802379915614403873020144507845626572092896919855098888159462312613804093551847351981717069848795847185253958298524954744279846806431425297484336413853004979828203805660943617802942642894292732668002436579529481971653209588957367932920274368892456766930754561597465122252598339489229609307578655253382845780500079728425984766150646258121070850653668366516771236767753695465672953466451335420058995849253953368065713826998690622034286687187053299595408368922876083955723478070415570316598623371464453987142514605723047661993548100596441665524499370703004805288393216132223374523856485298345732570827563847770004081867873699272186088389125750619911480922020818757770759538737834179716881547274621237641787023174917515253834044706537687622686157153865313490682129598639624222768495189691226888578546007730742802103059057085408348325608807920909043453142597798461843426261912670562864265934239314392530462077662389024015663866649162211540739171934082855709526819108025945537109784528015465496091714905856655979159091712642176258715615139498186477032652258825949573038687445103003879690841000741338968610581011927995020357873467287930674178819249061140537637807185319621915860365211951012983172322785900810986113978806592554398495227428637260639894356162133620552524928971377084082806340040659124961257296839888883972635948015788337364589852864253909275635241371295382095096948216140364552128353911037573014876554728950151375888145440942818010005951060026697207327303003929604044265615168714780460959503271866706220179580457812188679213374761502403911177921581474690592128130393519882007504975232182132837886044740330569798533396424879105611565102667505736056172121969664550724667985000289747092646374273866916239240586505026870712481423668590601343684379070313054678928113722688210611768764893004424330332008874735892119678631851485445818953712445212858171733478497572966340421239508918144513349559798632004921865348136084097138994500774373104993268589809548379509935884001132712700966560278162726925790900485910765934811053823440286055753650130852663127389049775126687350997610535175061045080066384870895472444019252779333474520639264141209794108400860861894665164726191500555354782122466467697902167081208705146704891719194708694206072632256546873612155883567334719883766767125703688277305052855405517016948628701629975579671172199896462401578259366920397458206202488073238120485775931540969153035626821747593060793558965100376566883242801692845230322677298500768232874602671381498219484655693636974429943763825170038256216146886146375231626477489517768196512233434713604318935530458536382850730179140798504949310188993139474653106853721276703548193319536473324741940757880086317690336563551644850687242825014133688310845258498074347100744742616467136958642864747565818877768730897794890197025379398822319644936265598841701696334204112211147465316734054541032193209680390625976957618367965819945136279665545247111474808392075543605443840174701323510231828437141124999669249752347516482533532144717348814677133741506963246601239601546247499283328001597839090369182749850247304142484716890156390403994449733163765985561642629434666608850131499421667362311222393797887789486611235137447193135771921835111965827194464310229042763664275709569173556355835304864270344820452464767229329858976408950589465762853302337279536507625986759840021919317796317599973997839706845016494556617300162180096343972773618985843449788231970041734546974949849988104641633006947085593370794583078071962872653349100077385165658495507649697778072029779362694796797820019078184402747065525262021956555143065713535009683993810078204152539854782452404151802448204533570818441358116533572000447446164285261820332129558103089030535948283178150381963566915384027345594436103152743891134981983183435283665562962282855757773215231300265988957544314115180811113337095924531653794433013367775287054268186048506438206542054423494227467848672577947775227114445008045494829925017887991554008332974760433720215877698945443845817391080894967629120012374070474128582311587325266267225938725449272894696083962125558756690608069814209863893103584242372666712123131629838334944034680687733946798082320464722397727182589727191703225683726515097243718855574410166400229318569376556479852447181576330523355007143661273040196720954051118563334529564192594569521745279573361673554526011462760159193712829410567293355403812952777749521298272180104321597466294617607691947143738796859989110984590590565560688326825400250549673783518146912581979734605103959160248110191980156001227574841801717614449435581877037457651584060864180159851252276150004269946686432940818107299539696916921351962024203965442915575490013610043763601197376508580165860198951960719977767426505685969345789683289835380307632289532563533663483318645186652749779867903330459683625840520294432222999238809567459130268171081803026700031160259238825361995361860101014220278541285676121218626217051179692980344000642498381814743577249486322330920397266279775983034306035114884198267822052608712019642970201579306908429212678419528924815169228795928647507360221275443948994979341800685002389106537209076339035153407385745581514593290591880626874446938622358538048717348247959708532481236809643039182014846686898604579635945510501784290616204460043691236112864964653612721029479617559459388947502611338921337335080911352080963397234479823298221833698910465634022823448783635780230880782086522317017896025527062884116043135786612989502117336019109474165134771403122235572646336328187981715791982237741110326659820015560540126893707737514204427852363015445767500572259194087215419646924925868599096518395422647376663225672717087117312409837992637280116533573121683242434518466157964116558281292219898528427360404099709975183158787379857396778071301272945941216479478032598523829682523701984393612296435595020892514585238302253284623782868385811874205201237352136975859532013205019468650051392325638331884136544471571024448242854293298910782401155637167700311907694619637949511247142041462112246846453942569216099996935209123797301491419488089290576743984326513695305443932254372690488361643879289746748941048178062469323192557831800465896112126909474830759552790634368265860534826705174207395314216779271111882708314561274160340481997948859773752643440329527356331366604852614723597110178780894606898999218747051818046864556666409915051582145110106428797893265315656811747730918175775945910424765101234431587016288802433864420940710894234075452562276479082575047938539941274480958942421506789108373817477940605032612184562240218258223779052263216336791968122841679648936754520150639979581852888638569298460197668803722551698071580201898010857069447295384429409737809547941861483867667081186336821711352180428742677499508134118673393268100310446782838306638660475181408644562165466627296022356366031719174299672948181662925151396658423289254747227902524750513330082623678111123998245801958933185761757616272268626176396480119943035824287201585285701725195343725749416925915780592970455967200668746652546649744216507141114129293083356340028590330802745858304277896879258074328623362330447268325322170275448759888677540740595335588064704261801786933081586149889575916941730353127083773183065889707286024498665604198656314330808595167213659867562679663671197366323664476052651300889476790305868291243689441197932494015727077505624039304214725189521572864104405731653784511665915054831152235347558849218433373233389241982128256068248665815474270790941385396023783238163329089919058525507534536238687889953156719540731099464978040780485769562536582967122501732263777734025186196901692047956414624407483604777427712285085831153220789183458133446400655216321717629906914760812333375873128977204826164770309763855561992021204886372208823038220623733669132778700136457056026726256473251369864346391009284344011884095620278552824156241018383568439527950473178017422675593283250506641124873414830029593309865457603160667144005466254884354365303971857341960985933691180350407367391027720018999058131708436497941697398834689530946436184316223013917339879425053792679672514261338459179024908040252808160017936712477969538540961534824994853629527512016320489653691255135865684907449759790311552635278045835271220237588503810279093434618408687039213255865427191969106604021900501251249854358731374840151767776683235735108161001037662463172383037897443133791465582623971392825421266724953093600371370453420048609031256966127229205171325951173390761709150121411974446154311733909891299483014548156371439690027026793280822038173577867529816878575722297996335440806617918070527303928626541003484939476691120192116272841220382069416317238080372903399642470902121783568118094975485094115153083105617944130174230222787610387871220254328304027817210606787727021615692354670737415179195735091323172241261309098327359079792509845473927934741120255946490825136387227158030750284319388277331836583498522421527459741776473198412889959944609419210607095711497314737713334891886504984000772826536573948705141585769650065872585197797926664510547661483976901878817907062652900446348857926011373313670459290259047598685643356844743431580228986636202535064673163032677263062941048629693431707366306295309567682642096706849827632429660771292581230152222086235455784483932669894106097437401091694681546592415347136347962262037711221165810966970219636953489127857092074146471686414109903846309549395549149290527652353116422897271711535793132147324265554628381616905200345593937829231393516068111053999496175082472923784872272210926092831709503849594218177030912568260551936056357326377010449738783706097127833883950812103056623818281985351447192410776203983064517761048792819205113959148320976178527646955144512295107847140953437429170843998497966367384967591883309093035853686513862606834498846374245418183139090003460810133034946117966064739879325814209063809344093090474230267321883527980178724274216744756536639465859768052396067699745088641718760370825243785368034737290196860263602395532381574825797194878634875741784013021568882970532025875260146791617885127095840700900180188568789668449764615468628730375914469140515164774154617560411531272090117826162007076770905331060500888152524854191620651906685939260353342559561006160512042470652978937718395248480133151409553729807345539613228016465920875791664903515120953774110840171026203875954254562201008943553026787265235150135238366503206395623281313269471263497875149085419770936667815877955883140753416433538154709128282312389708846141638943292846305411670504021388542644964654354922450617242281444352278618135603250852857389597947809733665359738064673967607303864412798849307883424678184325729658322867693166464531161918712456559570416543805514978166054296041695583394770148496171265762670156990795642150955716023863085736173355372173583905251281553196070619243515406853405552830167142549535586479696388058192179294574455539252041159865704588452518568576111744291709167344766456864796885342145796525792751234336201240155243220628347077113787784515395343719646983930795230523674077129423836943963705849904472724507282444436874907914604842627905140693310430691155107261476542919148264379502011242692353028404582416564840378849008331831907432031374192513880812006195657445816366980812046020091236103732128933265355322133255984372615611960522250294675086019058572705705063423971159564300035668806159037521046175696516214312103465710114949713952957160487203671655335372495290040805835144581105030787572275679929695498966305606390230404905155733019471219540380496184720429977088916742287894551595948232093024957048620449746732081191319906998284257892664182026615520955864096863704419804715946541511148527551655852958987746698458159776453703648375764639838285956734918584295444906399368805525984460568652552238543680537712618933326041134716475693682110803180207652807019595991213771794908981948683253603077981327682735558926088728133317966796043701688581671696501325746645745546048510786611877863704686653554425087162816855677611101755919104229049776370487477706620404254921490612250394519497963672770370608996793538125844943718302003332397583720343627659064807263431875024902205706416144460476756219346348081104239686802914460755479816971953003477503531782906982524500040435867540601742062367907290900037134530750171494381664382028901086810864337487752213670338833337477806223936152663780853849507864969069813967148033704333644887930568669540238981255331761017080003504540094219992931342718351381894517575890166423421994640660524900074767529742169351083455924145002711624144700357652061146171609049696557005599604332110663182448008029519743945438249072102815730917614447710731304107292334546649456034850186041847959990947827876811438217225024238216453847638993371572850279308650674012965021224584706599886854172279491415874432024679757905648697194156058658837558691993244226547751249120988939601850434743132946302317013543119914279366130335588873953028284521273975941638019375989931054789298226549955365371141001794711500450507021806280049932548296943358856183311282055650752774405225343879065885642634161715309479222417797214226794302100238677083930373841478636694906858346231912638817685837269401315032735507251737741846086349983788400630921766826115950531408625767769128625789410605632060043245974576138756685488812444004800797730609360847096816851660184146623364667587944216325593137814155206248481353014319617847051309673240254470413940066282420633062797237874904237129557717292336880661365195005170058704426577168064712444607326990596530354952323010823172780053166928382672209989356372938434361791231741031157493750888561261114644299259464959409658710478967181329343494092952590927100100838596256433219977357062510255804960054919685580569180838732014985289127886250270895277537526014122843445309439601239939170793789603887637444127303368483020863636757736166178164057962860479203293731845507405852995127273654734760390692262240249204783964485007193508500448869260605336305887978095277677524885471715495725422936724545311449822027084439647649899496207268557821348591293887159964431091097888736622684556572797360053549329487124035739286941043141139657662438860566822139636951121247570576786469554660045422973065408112892142658749079892676747519563706599840556447948861736106135934161447912809671949739825994691850111949445775283285893693316280879408354606255478927910163978800371193413764468780853721749058792266659604263051190559474651351756999094042799336378992975246382956626774272920461138256545415009073422797004329984692748226397089529828039594120665113766457261848188228738543172514884621402787283703205732748556076873542870268232112748068836248465113449392492037790181107088895858912624330147540545393306724276437554500925102091572019626482314638964359286421037696952913217862954168329745684965388125298239855018988662769941676942399932133128754500886801128862074348902980082402597642352127894218428178333959430080584844094640996035023917790643705865829028444621985530687407218122437368641952412157862909373149366351140968307165299628850530979954255453537437767812750013148149029487183099593030236640294775470916194815758001169346522398426571047042655414823739082171971407349340551181746475972649592649379150912315243239056121712816776631173690943518432247185214239123145454497010762590682604753387217555229577870162448244600197210488754831599220270257611930897134792570641894158270056337103565926426105151626172633550887721962104262790423329958724652605874957854734289262278537448071962850285125450593494553446152467763514004287553398558228404021538766393388751270224406720729653794702449535140927955173503285179425787481779735187495970521976799197636757674570697154609891677292937683119611628236462974781158377002621964523370094175855254542190621231577077540776022358825712727702821678487621657587690434675782153018684723654789749382163495620463116362286937996080269492003099616475740414193741781557602357970527280518615788009250873396153588978800625219297893741429639710958170105940981063578568140806003208526921546888466241478528966609822064324181282640187359304863382490803828608315227751360041750360228728226627801507466152518588177016031530394572024028909000667503597068561699970222104914709004646002237970065320808901033875894200234163211392582873744142561832189659881048485656480634956726344021164965665825004685434759191093668838058464695823213770076383275032036453398496690864827045404849326923003294484813668376121763323209473735345850332815773022249365934092191762042633293325359495512353379838316814295717003952837680376639942530295023118774840331504387579165171686645461175000903792149396786171036974283696679094872496263099549742992511751829319875797052356739979515435204184773201604099647635823368124680161332566647769524852572812061458552636734034500627312224403453283082564693693239260611497701486407293360353946520175880353812182760756082956265638258403859477108502109963106306125895722932124986071967599018389346932091312050328900556241353538479010062358413870295168911714690160085394413601655361292036063848392295054918587315170855606048003200155211238529411167140949773982071832576391630608754826566692083073217858573487832788259685168506299297709716464546618693999039936674670160603103445232416791495325130800021452439683266123927505269242593063376149419636995960408120266618808695515770328317301394176236018263206610003557295057704549170197568260749964901916769648281279479938121808237172590629308912820187683990854923065899915689925252511350036709504736932493658886424425769352685611096573816837023086516041326853258014636748198328224895756022817721109734469705708228055513509577399008725602606217557147225158557506008087748963954967497144348988084208343862586494452398515658728078827385173556791781797645799925517616706623967306000982690868850732454439843908655472925477786339751305756288983317522425027679617831556583270647586304364452589832269420832841086541209321657372576623573424549556604169738415983216970443414913090651758833329364565917933558391580725800591507193758503310070636780071335797794202554544025247707362880251867190503052953915754425124642969112480990443567599821069835896901422298021504327956924737242775476512013241971628474331545902074849829293368995412872615891776820522425945717994215238489217548362035984226259146729666620983231811863281459780566057387263898282344137218527594335755269427146574431060590392685940229330659650505750726455527915631646773418287184851240637520368619847281260852733970344756411386897824304501683283613245992883590892940967173853578775610937805816803947793862228199060178705862670933824288292238200906641940048825278622785736173679084519158657118539957020310653644343060448772742137917855677177634194585648371043238540178738590282887123468549406891434211677078099631570637933584906090776215297832051557064022218480490406712653702760507895053709640882015465950343209853894280431706224422937412593360354520067372155041469742940349167817584992451921981939347424574233697981270698022313894314807478825166686976186781028309531573434376770898774150322086022003913673584557605761152068655466145041400246333283730455268954698668638769362544467508862915603370048166929743381067870074011882485690237513121002169342675541918761876520759331497617418554905553013301639757428306541654879354150575006606196096723252902837895093273168471694712831247542431139262992692915985299525426610256089843970007676037277662456895639086848565752086692050616374464104472705696529363247584854636056692400538751302732431069927473360008340713914567482113216541907478973216284014412833455630663467560967457902693511687212428224670203135681960121793017824334466919407468276568930482421635706048903593011837476600426467604968224906795829045890843320023949670544610848829020667882442827753249591774851713982157084307458108172553195204993276559631634468060524641867091890140060009996974063991765969794030211663130338513895641286766364399467504056237519143898284223643539049275611272046085399013263404973450957395661264819194395765513151947112845142318098921116866643176787399180540587432705618264046978735975899125787767765858793427122394932929520906196084220783186447986085983602757461871862708168472794624904195068596082418447669905397006348606540373927891196763159521453433413734660564639485325724021703683909568290836634046560574342369931138872898892498826349954214894094295114907476302192106275479762814655449633359994034820990011526545381596627618458829359810736364531082200919739089254816608240347854642006991896044466552101799417490848426658946721152289946493946000538186862265336140092698732340632083138475187706241072394920066137401913854794341996782143009250296277904121326218628637507838175843017919245437832775259591137069117001851889784208213995018338322770671258690674183444716447029160407203583776112654990118429892611246545179300536622743089574887641748606812245825967144303682106894477124317149223124854828729784669716640587251652332867084014717296823431224695586871083593409941681084692273647252473942016364843926633280933350645913192566511220144653732602707268881356576649648250427294655865446241989187191486568047474154322068894293334695291485718740075522476280779197447668987496755976573642024521844697034926038547488685913546391291536392554689306376079057129278598574588871788027221899357891664935637547238612936618135398583716993639161866829868695587503686071169123831859369299614935337105189819286982242670554688473574109431089306571948489504364964329787148226643115504114597989288683860107201207659376616075451680819135680943820801747594717289051960026347286522325679009745471283885993057581351316769660017170749310709119228473884695989673856722689496882662690863004387135191053773293804419722402366656846931847078302549067105002373724218701215383697604919853892650461399801358378780275109219145306489417385192974490901135472452650544328481661354107266370897825112250283876035573377463603924856314886143232984575962336684839206587267663925228199843173988656601252762042762713651332665363630406535666856703156473498528556117490301014011497568254150901177216624975489119835224067228038134079935021711590946831272020278179819062056723774108619987098092996011838597604562838490670480869093915071156290232996804162420880893535835513545035804165546458823361378019318311661289622752011730713289689367127444012183142859228358654779807872209875806878282766409468821516439397096116490508907403873805721882214105916409671422937228086742510979601914223040061246021408637564125785125577307881565440915565518751954294735700329742631253272091133716983553222030540011130934831208711103563313947692536069643113650304204477851482667192607532741293373347575650510011066449881467696684859325472921524274334377992314451155932308048530990571731041103216606924240584281280707377427923331927342054510906799579860064069825743119889554536095614916581865041350907536183495125180604783012843400743849994333242728609531746141739316045668928549708018993598929224875521615735953631286793999938387110467292815970194607765143892485654522932925851026874286479516508924064162925531250479190616086340874602541706384811202262881434068625183059815291486106332739622465447849167730170155210894563085862441759667688487261363785138328220587600155147089085006606893015570606087047046184372698770507331792990388692222182126935620468411975126080780923277471237994506462750889262149326980322189626734763400314501816281742735811406041409048482460438468603512607545776637462341211386277136329037576576396877385177429275439939812905876895760504286300885205491715332870697376997371249593822998971710144780827079011415220726968279895784617088602671117772215036685580979837165755078532231678912827025258610426694685401124433603178820243857729558937280141163766741064592655375788221588310310870503854772646946716395026396050498409542070373807072962014812297741515447411002397649381920873098365739734189263135427253111152069498835561813979124453456589721187337782412093318485119469477365923899255284392505737855492239408094635501996846384454410887046065002465649809107692117486306127185653318657361658291283227991865746693319690281979600506928962081955868355012114449454889795004614344491428260614187386893707540143312024384783646735268633524174794669377831167181654733732643670929803599782668096227953591992202933207186618491138138655514932372016246162866116355627107755553683140221156780513607934120231621721435779526537602507270258804126566061320345759264849935882974394261681507570548798993039713040269101394399451778162626957026062436884934661565711917447093182678589055739761952654684100870616091562668854432286067145479214679147133568869995419948446540862122451134465634247403072861720879227691866997317482315962116190445788142252897028475441860856349383120312660586062343492635100334904166935574943961709598337334527160696894098066025599296627034084261991286226879722869552824684156236214013806894087023547231633917804100718271200749413450432427069506554103539591285879921684736582547536184630675830195023533119562337750345003462450868401110933600040447830108895085559996252418181738222295695017441598448548433708793305716222001548087782953660726276154533017918225748093102445237779441394335178983067599194788236001778568407583845296029983009265802117508238956103258344645661788230912877052573494476716857202473313136894607122671709463219583137060455904350317796436159622643778512949798051224595202307596539845355143134663376286136240281080485954642160439860908260490718169863335910208502169337022282011047698061062846269090382700633682691971622803659458790067213241111597509439244858608326794778797021341516401637325265021637524193630449754461495252627441707633541164186725186019561700601592406415306942070317373786896341519323943733037534720290410078441067359765857891701058303748863377892523302244381639086753384832651404584497392289855149984714956141231573036588562185908967269068205518939128756411793650672294170761286124338221121347753828547320228931439064874204348928515828776407050408546684709640276876680711067044042039060791951812639789892501188946350872952415031154489920321798546543675839853695471856691578196699696902503201529426882647044217345772401633999664193710802346542847401284628366978971116620945240338293541570150884350396638177455706812686275499100607772028606984904914870555429147487841523107671362823016579325229901815797870025373523813149478470683749274774011605994568699188633396311304201075301730046382734977005221716266994929825122659911503189497290983197906317967702438182248377229652879448997446602494110312414883308294236743959862352049184344012680463106099302910466995292583244844177587174295028877774562397860041025626940281804630502893594766421690231202960715074029306528223360860362323765375772675480056638513130713806925599746723481629483148216854657163677382133585454941358553928004140266554594733654726910023338446846860756031660657241334808234955391989204272171612615371675808784134968897632888131085731188770510891821724154018054259559519725041421705713172975894377170892116416700160010614992193293641098926697622591825717376474035928127489650822947694115390429465385670899152823814225972944349701776815796625516071919388451063793291686261686916582452318131139334104048404727929510853287031531634681817387638947779426935110288689514552381722968573450677929578587148419679864910482121529026126437321491856493769176633498722663558219272689043391936452293036106273967265143968636292464791097638980079479008919015770141967828708558706890720878610383938829460964948582844484841385378034248283288791904236833449648965898308271710424487574312372677308377098082881672576381377123193721989199181867818134417216516536044688020952322908918133078372956496857072029617002852880692927215506573767439111999657086409008298869427251667340905161744276896771753606654671707837316833665505098944897911935882638450177077922364144964111483172795791010333881433775567585593518854749944029761468955171086326258140106438037177860196338430228474035953292987439604547262109475066346119161103790840612621599168156545969105859587309113170257330151869176642701910511438766633032846869075952572915096481853647327938928695306265521934111816822021875705018054710022911242227552654352002529496892016026015969667798006439554774251961481479574903833218615222654673976453624104162954546462719601759718082731343609089660274380350185322490637094873437931249581326143077637064853731295172874927537092562509619839281253307543582318856170477171813715433827044273360853857078997586261918867088469633035489371253101508837247852534916527549034496394039128674628690072992529462680263663615289873524091648522691252427787155229248364139710017425365818794797705354391486683383372602084002137709005055110014085138925893591594612097759506878221619757182910127180033533402925289612444077864945193384142660875859277907119424995316925664160983629218152785004044055413219110677276242529159996240276172847170719598003826629228395205945768200028899910578636276570695332377843063860715005552475247943575766379512608468092781565704821112145762661827735829268442729071086557275459493052873039946152681336600209483600463998224447236648155234181310098556231280314771224942497233561211588427945298729737400581403954465310457837130255390314160675346965497285522021382769109295507544077587329462445034201477092412993557137634113427789526632752406673789453432567967266947069317581248867726550138019701630097295268077147967297405332433895783187856131897911464759271768575823110933220356074545914356719100330318079752934318832374281251513476260616279540786419386134229273946666344430962320543823810757111056482356518499202941978531810501933124221235329818009857309130893006809313918393135221671259185028395252459343315929460851125520686479691297896931017384692247327477150543934952687565099219947024781544480977428764371183526081166052228198994280796424164328460881789391575592054578428984768753023378595499979662924287413172762679794130542447315654688448192968868004547208643024931706642182182456174415440402150848045838400810110959479414640861297033162469676881484812850732499428178328935559752354011830020402477221607163971293490224644862230658554664131212858245135753711947798077897009185004469573719490440119533909735121654812790487071408205269556326754470188583795859138140783364747471466900790114606521968922695925350113180495826386722982073090689591672019822204043963466730734262348040856663416005592230589979632210255748881256955002029185544671011332252761301390314611191863039990065200364425032045418043273487438903233844284599906345458059681364401509953579620973302832329942716236207995666175487315331673594288003653031646800009545917968795637844115474663065544401389723778157174669358248903178032512892769529429121828360985120877104391741062324370934246416020375845745326824127008984251673659887905551283861976247580793403189915525375536346664248827160180206297833608154955194562129399888458503907880260240677102069634162374227177666855048068734964386923896630464415996787644022238379343992563493696023386352394390347618379451444409204712875193706210089610199563803485317148678538982907169437081410804701767713844076935401000504738542262655669057827997368399131630997924923443617659527079881134340329932501469245295604240306374355849336791334973090459400025504049123857490228957971129312914702512262747977817807788696774923163564084040865539076122504561121268682937840769210272202030066793861759073798640854322579698106062298920953136585707083663924548754473531346509070205939484924715578807930103581790974523241950386459112370118774646545012871912133008853662707618546641293889321726026722849149419673556384545633633779129751746907966630176835786218781892241389667039989073856627416078586259670938826100348432572073229840231308990718214616005731136296102547638195556613420678189864100575965237153441867626698826666317831201645789932151135324455900005278447316486102286201904727191472411610044756500415032280329690368197650334071328577252297781003254132184614405649292100443883924357554323296151563601092140044978940182670496386902960536383571749465985961601769438912735120787387587036277955117079588020475893332544659754898036718000191347135894408706078943509585221707465880154941441784182444100116520105350078370186074125604917231171972501937895891792018395074089055590670310833258692107074388006083141051115465995421197610968338518327790817529536981106352248917342510872988339305770328217932463140887065650152144510625171551944513376837630383393925531872026521961540826839014307118842620171895519940182748623443323121459933827750586748852475079073571168080615181058568285288514494366380165709340215189012613186333526460890197174343632302244909615350063599512490207605194755963720402128658672228750092737715903036685918547584013521353464920490371194627848836826452547244980741027003248067670729022753180103572339968732552656025357957834623505125936510098510245683713003891651839332134666318221756571772711240239838450508116289159261455361406553599885100874325621300229985091140016337865635915380211108299405029776202282474140179240825022844884371096022335321809136315785279463736560406324176630188204365613871794684692472754997739169718024617827702487522966920394774548749139603193194951922490933355592306224753317133669109764812355188371127256155823301301456489881511347542448301849554594217371989501253962131365732394684420364507783514773707714079109995494206120745565715160024538799238211772912577677617147185871698295471797823698454345824426288975283119502159315522890234397129301130576682778067928002007860440048429624698509687273591606211712571608510965179737083072808685313554176758452611792420126392312931834006949482020522930093925152186472327768578488251770683379757887570972618462327079289372239793044924481304985325258260877075326075548374538904713257204240135100938882753475832865363017995502705979431636927479475984998792852728156950091391321893831279031167152478110251114878629916948904677964536502464525151730230115693178732466378978015971135651168013079066794351286799188848042659720979843895230756085766323019440769213378119529255352957181999653419474986425819912002031939623696303709048942008553108284948365450655062133370980802998422333440310404606845849040099790995484444192629167963629777130258142759482070023606230650008562394955715652432520197191858345964500273365861260097117831056864279688581199934724919189636160031400111226372262552532246715742836820643076387981955247328445482494230827084104034305835307444624271431341501836922657047453982255895389623835211367807688480083412368809369163997161775990749540489135031135885321529576929662330660696127157512237303960069275941706517658497522678610864566323956641105470273884485783451679332728867992722266784802383396074703274375914635112799888866423518504558227483044734305391273078553811219296317110450662712681795210650935040756249701874511737756568213595291846351845163213755678701441057974271229236876335244332531794147603476816502994693973331066060719539546726530270543369567040509016365922540228501607485382965034317403782219113845032079599054410659483929648140616400882960914123424335830544676138021575040846455124921080186317342078354255307853186121957559607611447890643284107706994619053490535304543355628870585118816383728800993297921825546675227081311372514360112162212700045614232195614990469440708354881716636553901233005562120707905517674680268629133460235935849070106940292486569870656974833338517092770646021904754893506267260734375160144197411947358364729510067914715187477274324772062655855654825081902374550806178508443213383800019454902394117114327045681889700388847685132743789129317291629367205652007494736699350105202013990882981316416655475961312582560590015856059310680696621731987735631804322163897602163816108681823892131368992181923292303054268924683626549701801473828659448278673259600114264989396138954573314814602417349151553028683473249112084015749242144090920740414351849240412174044466053280374612584826319610324530602631256427707035838671723089761508898196708694667523379813996839440389308120248736529196690116968066589314212162154068188513910570697906591669468315662212720651530558258490411282720778476587963675839460673977240213116117469763633031405638181136762255756652547177191778801557037543611455222432663565747196598461924895750407662779100388344577015772486171578278416044452820467663428478235654818451798159422773413447963378419740776841283931949079492314189108475207322257448271813347131234097240801381747354415879088626713997069134521128976010870130971895225128176006615294540787106145857168903639019747146768436737344371356553080895830455077887219068920646300539878381559155770710140551564303016737285128819072564279573175283264094445129378242157718006389291234155879924918583472356989215711347232842290876845449049767647779945734610318906758928925082525420106995400714277177346642582644237029758002952353227768751460033098248316450422348780070921245335774985601206586140374989492023350036048046611646538489135104936711483568191609049271039095636718934403483990759378712031524223961242181702282186540062992367377752484948419696273595440146806394344328940456112524258689958434961968022726409477995986998424517296132456641242452994041461912867599698887887528906134980546599662786844068130260731705856376534184252674854885305311133792270284137997385957807090155292795024823544510908343356683372288682814623855156714192972671096453388017900028554278839778606071294085848499423864222577976769295827961888402520080331010592711418878006937794137137638863827477915460106224738517373965931786782004574120822599685584629860884724465696778418102361430835074722270027374396781998732932759203157802141975948575942658823198811764908714026341539666829940061430755667612332407491705653538164033504652750143769207880195522846034504014432862701962066310878412457266927530580875394358798093384288651027741125070292649489272979457185301118622731765329217834752111833103826551051063370217678073522050188879066645218114959649521264124580901207377128051633642494127823377064329969138573850857447553230598096398301988240365570615163507122909164043689106786826450317780176328718280892063820775734606790572103034838293232797023744237459483293278649104168249299550839199818383026112558450750347475412324785138390601238950281379897245147751169858818318758404545758602058299199411500845841912204801864197439695872526023941220963671024080711471700619975910433212914665294956529124010354144915766605555979735807012897640935764499487255550929974112604761762667867016635350085294288110807995167032871714370823881066394537695232295084908347271093836232003999113142234101015227507692485448414952622431801401942089842410168023054502186025625542343125721667909249944211856231429083456740261226106243834037621620293497506443167790349770866135546884301466637021996945755390560104602515378936382747803882183344607351296366006419355530021266915801709413678036431379812974772805165877436260492137085141999751009730265735714225864208240635470693501797258061149269062470648257643756353821452261811720274186501726376784132377662777290926172436614589992342550095691294700086822357425194806473629435208462727044634452431103253949268090406470145961006859158473843929926664581632742744775836599201302904455183876104273095375047992289478967428795785568676345624448819590412942890621022876855590917515012166178347129425134407467246492680740757578756168279525763273641773786534444836580818108985821888482005728907612686450704150343999078136230357239464829396584120598453058073109091219240061072109476262106331808399671579418015879441428482005091515418926801672577262225231698924225923992912644962726281346376609296523170189344441764212969443007290433185622894936848290640977900315900503148875152172341166044129589035236815345983701058886879702520315955947560343703734582318374317726052841035717701540804748152980552981334107209143538006772939507075196320502123302868147412073479918319839366107161623228988077118606944271760758843037677536686913907824658023284508606287796027055246042468364834512412429454391151940770620464491597200291919146630095170308330850582868543095337979873706168493423779042222188861358947152150063924898591822781269955319393541600390377988054310530454645779903735663994151809044685212999003071825118666398652253591922415036888092132477078735184844319238331132577104025781051641761122589461894076214510832960341682464028147726228050757284535363847373818528524167876652528319847076241061542325152071826554699312392874583653902788353083191339027310996696530301426997575307518912636474920968657839494057071396282875110456922496836797136730815689022992230986508566607410047198145161414653297891753300784326837591335232031626607231136954221978196878201257459684609459348475254601570908133414547749228034458693704821759963955548006738378536921211148155887760953251940513357916847077150133616232093402320407585922462604218942611963806995090196439246973673564670199599332471823620227650925463836324065675568107342920973521998404455728446791201061396775212237585357964603858580916571090474329465540485296266073667313125879787387449005101925591120508667448274442526641454993989016317115823431217903433777691410983566689220129553721255387417082256051810654532791981118015078093137620593198710659388232188130101944716819859296242686624225633737238789473841447420046369514929200110510181029836059031179805189453516227549121875240644834476533779800395019177434556457138094077147055178513902211463452565439949361648363138648691609694098534523760863146503016829400899378357058618600286130958483047726153397624974879660749121006044573394607522175592309342110483701544563600729614041950565400206228335271643130004017248096888127148488612798943838172076865598859306379733552357347541077794882525131553867610087610517735933493070341998366746136969944869158485075920812312937896029096807472978991807103657230224059380288519347679884835018907125932843189848579336844298573497971760264801314059023872760070279210143281966879569795162711731710901447075595167491602372407544363155209252944804690481769927805746176200333780202761928452199080437886945254767697806936706782504157451281575227518514751746861548147453137304741013925973558302098037547189120453437930194260995753966024834540570200936057252852002728465728799550132417420353664542270603952665013288026968748970302474746269531439193977053410133765109631354882965987735214011306140878931426861279135975605151141677310128227078776973670250244332566659711684892066353313160062851676437043420352336187630909495963185740519544318874513646741973351980516396836378867666500245201740524851214097557909930973434791320746698335645222373275936760208838182660570964346287774922055541965817768801274372488717969763455183938118408123392487997249000887452168346205030006856526943512819736001484192864982952575064377330926271913888746081348622986117418704318740569848508670214408877031311401319242698490529729499986164508648751594515639696298196528759223987220008941342567034880928559149052784771288973365832384621673656199095749585103883327836679845057547480371638360881138371010283718914569979877894376704547021190102028010828556442432849191156954641578433673656717528103975827794928264511973309548683156242735940876101553355146577915298749933637815825021034158454359463069865548999386259981600692431006866093381740145593224431589613460030824516905068180879702417758835048075584896721041510591450097238627076621193936725232814659634234006237114422046994903238940136260831710725713582769126223128056121282890437595149848622765864844502388015891299587056375291201293899913922529846756588035618349924701580902465625900102126503784852451165695919881510283320864614071879669622624253917922768455125066974439966124906174938772735804744539363193480998629165266780562636246983011596470468235339952740085841690380143009997860381601953631193476495021114690058831299637597151377969262774059431941503845579524141543289232689594342555155295328487566771235556523761017160342038099081799307111517156702775613627559481961232736570469473902660597976945608337692500403509299261054460751390107289646461210677832318412930290686985438072764041911036923717960653036838042707127237600108009262167819591519982816232277370588852127357251868137146149611898114206577730148205848340944216669965604437531403700571701371023105414031609980446389439454080397870516477954732426708738046627952167027964948391687414847058375274287499637663131329568726907492589440272199214083771476589002777220534443309247041196454049486537679581690850775864334010946980091059396778368640908699773011532977957283445732005262610686548434634464725294338373132959247805861708596126898652708716377259053771218284858460133776496626490140231952798532058801979882554262607080653919071824033764196612893578121558823412001729417231043601447517590069491888013196168182035268516544190319454739939720589415056559905602535195713576099136147180649583560460946160753378785077401524084418549329843830811658004428836287656702022337912455000119366640792294956843980046410980302724346156099870667827522951675962380527350323258177499951403661169718149233782819840650874377381106246892759414347620423246772174163270902043733766360431402470006077872735551327074838590570447399308025842759610873581490382341025522545169534953102271130924999909204412346440982415878308171690154243004999617561302067516266953301859292223584654696643682859210574559108000998343240826556331836225781203382310847040602628326750552055940493952287053575550351182042274947620961474693285932556426058097913057018120488377797617140764835051326896036915664911489250663771561036620723901352368929398691948130519511187916322665308442024168562595664176020244494988390536422220263358314364849488705117883566287636384599594440469812415427816784502422186829809479705234657306498767618215575011311012933669655854602111110256750754461240001010683853700235990224920138344998444748339489930448987098530472676873605470154315196443575905750185197924418913050314308741003407160970735812974331758973381355594474747238357890759149491097519174268869241068508572747446764023147006603804275415782559440272438965286109842657632912804669051759475784664764574125153596957741444514046906621346159414221526887234677225807554225425709540709219010052931919203786440112908785836972316709977824584909470831954723955837891846115564519444362544774181995836892782009247822400786124358943888356620937551797229776902550832945251271080290407590789029692856582155636611012902159274617032575007029144892957619692149115456819567206002486974922161178389285898748097775931407601523951207376062454888208031861402701580307636333580213752454516469431874647858784390503050607710070348222591669332602886507731150873259909110880789391047125762229337504930624763509068626615628515391218032945362768488017949747283808046014188905660991641280047161526620085960185577257322967547683144054474765335828146176989779354486923179774641951379717551282578747496769085027430722021958516358691941326340958378118484463008166244945090318398876432874824908444378406564181273785985558673599280321045688621803178103155709059735818554327799146604545768827159328342104257596679448603782246182185440194469161381780667760750320144404486300808921633970178604494035427753388855460826945234026266535171967211370988115534405032664287885499760022432341891683039572754976922372138377624462600956038397523928971877083948005970149902461611085305751388559114878546739593441262162981122652408281872330614955762085742328590151055463607086201140451667072213396267004471243008344028271643409564785197740286441815631469212685999909617183796365865422806922324158573600687251892532133709790371480045057678688674157116917933510876294620079110230310523326511985375504342884916961057146469634970534930785258198406762597089106006119900914015095207650026729295590634004694804476746168585427119253875054591975213209092445779431578297258809564353958371057130484148069765725510298932317412989084662534813651398587626104363711040595381236177991081896909292042996185821492745124390744512970935643691544865124221496667061389678048437548240090088754690150413532708234298094191628539923011144596227898931136112802778074191368049397323678985085866364672485884037032518490223293972362854750640396615375103850304445811024298136158643816218297448428990365677053237209136098114365052272408021347424506400253481116264336049673606231542656393785214674270675562142564035578708262800664285945654635150766757789036075031083686598813650302764994360366804608784937693511742250390867441562126073368370890427631996392143450739474170723025956698397856699675656419529047954745737573516922183545354679713630123558859844093352863603187820668009339275935355170903252859059747939724334910988695670695128091919954421854044649854127123665863708174395414104912785218575011988866253135156613442261660947998189479427221690488923172071592784051484121592406927702550072528330570023506809839681670215048416704461448913745849011058656329148725246883475392236081282914367136678288580060531619464139976036354387203701772325150208106016446742929997153347608027616017592062890411445934025930438960593863931574696990295671780600956851919144885558590185377953236515949954820635802892873406017764513204444256688382297801370434112740478157890256249553286340391022364793784646510451901617765275632319507484015591187376126768109524682796820833471832901921654936463055556020122917195058208577510242750892908820637921145101855722687125270370850072867472680034653907720659156352687602457400949312562159017031377182384834384074877493151997066161859998981853646960226638869045458992267276143691670179101556159555598988125506149067875978479915434266604964413964769783246917679673400091426225623013509344170009821112736059775237681691411346080167954310188477974763734003017966623180409421255984044285086297704114943260287405258499131923956502831829816162615412463717725095612224998478009227517207211353593979709885033001228990004851921863463406647869737100230328192836235671010867677598924108998383132893433525404139176022367677320021864945745671887836223012608891561653108816484718172469136506670245456468934241284685267923365965402810656280926190139535650495322207902425324677456455452634231979925784391869431235861837568954059095469885210396603802820910356277610679367143622985916618456499033040380018698656591960290937270907155993538809894108514670765223913170148615766622779072534381977231321771602435992127030282005744306139820063794850621764355629079040307841707967630446350867049900936417546826982376913931556863759886207661742835166830523295057240350295999415734606870562131121340337057725903887009154008219844453141984011075750370052588714047437635491426440356118621396181317872287570386068978016270196943085779480582322397721644311778520712820333541875741263478435766007400406018515236613420096403520936380343257401166843497902521539696864901114335715236541483682091406999253532776114494320882891022602823707769132290308262664101643561969957353992932224027639355213181603710972612129051250860078430264872664556745012357072235904247767811606008596311786280678183618873150856387548821584705057557654854658396871829794052827571625907140366065935347688659237205627735205798586793207168031244054333705014507610108411912183948880760711636717029014563207001522978972860070412793650038427346313213489000014972543187632233867479496895870468176041316048472854062716506375527326737284028392951919223166510848501800744287586005290251513514814015720045100537687458429169727869898788240357600214119520237862339506156798825630596872406991765551416322499191904567129934887564881958544180834970739454589045003781914942565801081598036327918727851780363717250061903801889782149916717028814084708592434946275923184542610449729452446322990417775411608670594863418282271029339643397181555895877088361716585164686110202802793282097179692471377653742194749408255630893254662289632570446061655315426518451460437396473907094108722059664155985593953869030012329282498200352122883414371132700527725134614191720209399630956276559723044891187714325174886412589706051583470379125095411253834568256893927849791651180407073965199198597507522169543829029152013019138741897710706525589950941848332005976491318512598881323716032475734969578907242359635128023261886158591886373587366111800617818538883017074964495448717577805842894409929054797700037538801138099740933399167899058133678340408915515017410483687739099674074959645258491889315398504189821253996627775199464014198717855334514452827652924221176113172266795368459737688218006375134298344826479804732845060636826113055444640478899753090590015876900482704183802907005211619097920465519479997652996275792089803069254268444934151817224923867094873755675718872093408309467182201668812044672682878528000638015763793198792568561334780029762514614515472971779139610069066921694632665094033081681277326535188498393203973741233801763115000443957473847557832302741780141333653437178835730561358411178663812902596189418906745670397720930952080235641770663438353786235551732543058569183216599844658790182535139718266340151913633747276521398487790962247410024738629712746789592140433243644439083861293447925441851413836029361088391766283308931434379565393517958103484548806066101796618119134686611805595073703495786886878034741704478654814127269592878130503837707162770288938302982313111406740157634678012652189325354031024839340292540862143864245421295194812218588619696108938886948946023715311076111673678950594455070203419538622414241932482086753931248480435701342173406152330973804629406702983725955782321375613708272984773387283597966403813008169411539968276625443398662792039229142737275911854833530918589517871941887119229163620848167649496016091665867484073583857201193888756856450257137399753850592918869487565784898272006535112938805756096717270776051361667200361058924726102525169716016252430241011789111157483559840659718664860394298543893328544878280255922852072433925462065675655099127415650795842380278493376509356524724427139588079266876699269684865349660260218486373521146515034303080613034020635470274872200036909798281796988804363114190102528458040782653500979170982118202550925803485103666553841037752775485911302874117543519081343823900066018591412777989155671286954497704947891163608176740644680431253781883026243402470618102923552095394545286221807595611539161326415859389741396767551987519705234559488520831369198833516563543160589264234769703054363517561503500134402702931099003135553753930787708587871823836144197082516602209672653260475537177925187893034405397537938356867074563607434199677718752791978765012150449674564423651216186224709372813578253178649012918978201574889210093183800485757788332151292752266649324060786757755611849228232940269681549191127111980288964312660017176817368106907515436972953288414169263299983522693050498549223662359040259617287736275588358187528065587904196229296158628013154651526552414029770757732110301056040672638293329829714320431690774384254757159673851889596413162516696582396780203403650950220753523340945162431108948163597554071044532832052137676151494060223752071380823505641881537450569068735738271634995420246455062629892451986353872140875158168049227459439185441224573063727522565570762765716949812743661744100031573561023230091655524553668718644906712513590680381903027885664718736779717545419604178441759823927298020944452536957409917413893833942240808186618407712657636893388614960511419233447109602816917570930289584123159533673359109642928322950935828833780420831105432571686661802926676065567409950340061533897723010470788340763286535585436441901539292804047298816431272683425162945860458992632842253054351350317713749161687053258600516992895775954912905312500612918794747024952637269760781670332188411275353723189266520573673001442695722679417818248484120632460619999440785181288462189931004285456057233689501324259959420615486810704707249583296069219626059128395326574229176592545382935751530697195602898525816676783699501159278539335803022625116799926288896035784826499923779104778819660332671235302540262229310803660018765330507019797136895118141433005412163893666947939525665014540526682929693657423226346634852810950393031250794858902944137186156868663364639445924847171016804128952736290129956710576878736814694832495848084894270940179951377643896137182529292402494655839659653907197147021729754124516554880737361547343615111277465262400137081834842875653508434321382869807869357230078148214918402621101670597098906120731039854054303591061204642905106287502216837269091948212781607512041450183926088901087092245114158913479106534936572854369311551325388106066991382737410213655049322004016416177786071326482771182990862659742932422292670869390420481080076176581653633948821761935206838899128198706161707496652046139087001872892416368776524637372364599804688625528490591122133112789744199919157656429082071363746002019680720394009241907350729553112030199573232806208388399665443677444363028016749495290575964079287547905701019275806236417690562474102586866057995409574151730524586079575842930563928124763592847693718331835719815939255340564241771324265787925532674130805713093951388914124783920259325825783146234580199107529408866176197100007826588545617822419399884190315642815209022283898729762583033490393281272184523393060827952256575315681154234094856884443316879253933229996714859790297768201707710704362427002976428326731759895452146367163191297379706706117309821587635564772837697799891575145071027435048253540657614330247410285082632348018747459610341805204268768011164486343036987717650695784504900504214341303092501216877078515771548632652627621333716328947153653421051117657453940255547204909055869913898638250701665665606386545295505993299722741790943334500477370140704696796926701769133841238030817858880049905095915250554234858619339874518244914247255899597595827300379228093146670436334665374473290284317740002320666744234458417202387987318499742832127630769079657932046198122747049025395771412711767246479797756648773481458962407317294218968096274467932972202028816063320113598001095104850569286387087899926349967968494217116139206678145588409694163824239868792590216962439168432161886577783675282659327567897864492903473357779597801641887124097916458703940846072413140523438852907200448188969674787637614524935662211029002924094183733892068914404266013698095281423530578748732211212726984131907780665277137249702125554285577192678078676416336521877653594512383252282922076635421919037943457463859541429667686404973009917356560474704302294569842771311748968016461951833149552258378289132849858528235957375807022445927116608284936497319045123924572136628907335389192232406096063446728899997827476305048281359714149482455409773083136520938281780512332899618407302239889837969314695294692694873652260796125565430038791409807305584514127694254474906019326679570387005271025838932961055529720567921778340951979665543954258089025548368133901786226952034473783837514224217006961923256636634426347914173666539978158724981884431183206165023020933384239854585043646247371521465529558459512609681468975497796332473269436588016601413819042569160132437463923881330474193002171095152945455361374234247413050600761368717576553254231310217838478238052221422542415730409192547151475103828185821530876831567122571104466734042551311814503391371037601041073194428080552551489624682363932858654623606934355886350059421243287387579776656964283591988648697198735632953958651190441357145830194871877397660269291961614655719602165687332400704143969534755809214646366888816889843702089489080683874510863768436057828919592634572458757430897593550923989927177827780926160590584559517008926330285533709062973833876827115239448696804895326036941777135714595432540057717097924681285158996790878090778612547208000353687276599644967721465575393414977505343230726178823311233264514591739375422554844899937264399980643491889370146073216943808814363057543216693287502440711741546376766134362087703633405385971108835201384369013234229015544947354672280217654782928135518274612684648512123580823823420565115655452954111009092103846267172808932170230697488725348232137309253987918535561683447416531264113594884817507634752979515289498643847449023797799053734859503198292063226129283688445278222513723365155779222893879228441836101393092477777796221309974847638881608509727164407625079129959014462151384812643789971044299754716010518150717522491498980239615323884608790546419727399056444152792013773446812915554839606551549574304350662902885115348611514355493675978783631078036611780849779542940351827936311697010598980507852022964299110731502805261333880085180952524137237845135273586970365897329741121859556764147470070557483388534571193409519347231798456462077177685925122711160660535267817211316175217961193363851424511885856632063829559127357497824316723774122745397566071233109704538025941908439512456549487446849054294460476752513727139753442035377345260108822751295864576017922643688059439933083670541559983324664187185404157207210277986020338726439948741889937522776426447419212176424551920906769352517935351409973527314151427348094866853322755354551541138440132468060648703976260025348078624740964989328294949295697997816987222824402036943407648735659720868613733714390941965441511333895603926129388139559681955989693688203414249112268206660197190268681757582177637729796571378225649277507831837240370929202196348749250787343466281469514824838739254788726333616825770615778168308135489206242109461122481767012460978624790998694706772178142104817503846459244617432454245735632521344452525601351568451095175935193007633325911118137117227567212870209119371365766942245937398232757809441882393077523514265581264417551128325636402548720677103213601116327824349165983143612046823068470845260048732290543569048057483188347517888637321617959844831720438946787056660913903390886133816486424113303648312907679856688576375588757057718927717107118848248475793245591485561307860160409591418830927736619399233078712308707917470575275943755731402594680923616157963914888184757724149839596968018246434366320721044462450822110059754241266534946565893384194720874522336446751898865893978671074310688375348887665460817014388753037571873523737803254882520774865094495594548903318327682864607130187573616854854286174764285343811105015998520743147300362767040207345048379155997268403668012498333047387914890389869277045461241550395692974912029402787740355224742732487599995886276025212308752288384936333075509965154737133993672180047410844199421436494820471750781531987222530357280184712593681306893259039930605522337989721452851012209115392428139663699660321119732843760789349116420429818099482223986327503241084849811195610373939123322041349289178019706753074762197659670173328981339213527365721209009713508546842803587958370738011486321267952193888969859200525307778574089166938378319168563671028469891219728105160679974731916526581238605162494106476195436172659687846784551632369433128241134804208508969458975843263275573435247954844756149340673774228494010085890764016488472253564275804065671367724690668212045911201926717601283253125544265662221470970386671802926662583253831370033823543995007229427353783859070015342564953309593181538265267114096444955593237745008634150609921824116343730924112198775687843204936054740890133300521457577600364890735780316414877521124722474974745800551542785163071028597381116875576862813303803393949895051472788913554320826024328462422383178551321802555986753013899711104754354065914107284722250043610999494137687777279676706835721406009427285322487373456090783376148460043608335807090092088027397883571545801044066151611815664432869988269662418141397172388748334987827629494731338512713422664527633869921324180260625159389331695911498128721664246728391552968063191338874844337467740280281120272691020755405404141844603555962244938142468318729479720653824648369130248903789982238513486489352260805821510487705511877998847479741112902845032990442811247310228774928517995127122080766868846662227911254916747881058010140901672636234704503308318878975519907873671033990193522869284728216557061829571040436650140546827532446810860515188739292161500729067024788093164755127137623510427717100093819160632478603681022657025444974947170441032920737851987060708860036272814591120180646669854343554848489122511116758469262590380889855802830532223158548535906048457898054034242570171131048504493919270806535668714766536874615432804258400083771530177936555550370403311906744817958656925590884349275834397802887993912392528194846906706781626864524204876327489382291176028463292022194514638971200281039582771352512171882853744960059265573708450671915121713256000548871380047358775384813277903201458874798770582761988332410731495823417058690346814140809989671813665940937929745848804172626275546911838854815821167841731498256869537509251470169114465084723418374963615366384247280651206435238194229296004306968923016804365790808822942682193223160214039321879503059397546923880703525103355833668873223484824558482488888065344387170872986143635337149026815943648630426321593374327371179745792573358146167982610063137190755347020727746170382503807718839671823233769676701699208045631663110069514027596452774785873733055771927277648089729105627788846684405996940181610453082723597577331801475915999347756946140906469607772947311113941099766160261305069956019015250321557962492748576419504585236593930523422044279804293470524511794436716700354278932420913416934594823140308243363436390165264854375534166033551691277968156290194729269916957743195951928734092310529846928661169863249653510205180145099812135050728829645849194712956986534555395757197566902875995458958660062938199492928851322484702878117028149219435313988469475317683211953929686696580171470744935499943174265216810011008860608264961995718364390616043799029953532780320041684179948380284100727217443513877936426127612484761350218214637105386602277887702878255755118917708552252496788480682087998524395709955219160126944002035524079547150252433901012815932135944838167553440407388025763439934546518167950724334829357756431995396825406376925507447821496994311428501522592778990224741941935188830694108925489175913854536004808185453093779173300450446063362742548534658565866553302169834708594486456577235153112085958759211898730257879102901730297647707158768221250648247433623818780828013592244061413392579817374979707627510664516912487756552939538486340025751317290650866281561943934278459039503401281202811037054202747062860534057901055280700413039477903674590637315855816461342826510059330882868690461375830536906945222182744124845145969236659946086811028061913600251463508261332833644785663768510845304688304740323193563223667254276798081594566285859816607352974749026119851343484788027757766637711841852153127163536303874298262755727935912102758312071082244572827172730842425734720842013871685094383611873307758413991719473248113236318194036213754788150340123978788692258133923568567039733218692895952078592694301453850453325416969568317261381762627688655561265491577358562807154190327515966980858160307270085880721192005005821965321676773869142129388901218448654392555624658466764479815264511905605083544467761694243376236747846928594182567675378294203014569515731797547436804213854695535661587856397228618787100972864143712926718309894582098215669496538963048356373013137518774040010899650885898028165328271426886267428011457425633401018595705945119569819545280513047384954023624709878490001321449180276909671616393826864184384392954553979608714384521047259419378593238499017398517316066461531693347349948092845483623123808721226846524883857030444885804170555742210352747959948898176911724589625449675631924442689903767466915794779436400522309666727199098862938643701474764382040340064770672383423395250896128481994673313502729258555208834771361892095098534498598434567854240315846359045960598035452798537739236814198902014613163402519815859057589824439373051074581533557335323298643478205704391032614210756843791135598152791476469273466796147322425182829269419047197600694026901425867939199284343693012376318430647004678880904496581148849062735003850061189502194106799622835126743616607131854673872393311521522081559749020262563559033098490216486246756347933217617208849078153435822768304385053619614093483457281218436412964808323130526217752017242340762454404199388405401038769222510373691050832781277987523134387287002701952893127576282154002248269480728155837931997071425853937424041058566210904887465118878609181892794440556914300743184102706856497020667737770260496755879175455856233874538505966900588395076702698674223889983695818469788558224275960970529720639107136988349164599460716756775002506422794216432744447169751967815729957653728477710384381492709375096519863209881381323561437355458880431097888876850983136065171582605206138493455341181049164063967064866318524907650180104186822913333826454097236615555952457950889897153793203177319819057858285376247550089953153037379652125514629445450697711707865815412697250206511672496147944287374541158402394978407422450143780666223454547077643266254700575323062191317014684212359188983340140478229165749889460349672647010735364687938887988488517334744205602955886231284983548473204245527177136853029058050328191115971654120854452997210990986229368729919590431151989874790070310116899312388531238623060680714867949394169775159287440409982707251265996455714616993127281823953556609701588152048534873595063886583555655681697960358292638033958063416984509214591882213271241194786336361798978125025215684518440276246130282013737829254456664781102125207909634674692682621966046898052933141491740465984447649846974951168622515144869069219439365328405671334253040953671316733824206311417241960063803763255455252756041883984250708603761701551719858913995007316086046073455750162730406956863945859622683886563871281987480722005022495465195155436191545517095276123587911085594186494219893247840978294139490826399197089342783317904651734267728291590652912965927649025091604667426189127965263605769287685360803176944538504524768111707357030422446701527616905633667539462189920672244451428084916169698915498187275994578285682182700720387413429210983017834691905075006891298457913863462234937599713033526680583600161081706178748946240827105509036169956627271393481020557441312245120768159165053187438462619415475222890840829542317122258384452013868249500378088765212327362025933955399721513638432033431127963151858254314207837579078264109240990263305737616181732113008342171456674386464951484029447877802418957240360734327149005920296825101633881151948299672142244375669541262261851172272519750063176668821570247246217733414242288819533390796333101879717627738848215982856165243267316230860729701331118856237476791092507942953342469042842089438872632452714389837120002080381791255137286766479517245564690713495967273362229401376959018497994480829833951644398956765599604867523775337006294567024459728738547111630837106274443848779801645018579676734045522137755600538872774848937368934308386420299398686701191906484364979748596926830825202675872764876391799161960912351699955179700188259436374248543679757537229652362242057337411005073075601848984693789141458339981609946708389570128391225612606770676220581969456598671399113023911105867183651242058694927028301381117443978980494316079729309519304888511862927198176290928198186473074483926808598060342127881267844258278625776873749261167771509761890269137464821917620582531517701012177179642151643321333424262751067661738635785949552304155002337695723953236776136126855796030248162645297306445789234530632586178205225236092805141228037737572371492895080260438065284343409176042473887794835727346299544921097314785852290350829730311906280426277226031219927445767710754078856896186389379567003845647229251741830133782516726977055492756162985492132558037368109449240252722848340928065316850785612186208479432843665595011759213901791958234241263447938648376491792945196830191338793966081926884403748141713392378906826459370443428388130272730786598377662952704456903616117325693806074768586398381376884530603719647793264928462040768361697190159536363790381369792476244230299077926596762025597198726118470171164583422481463946592233504111211282146178528191487195523958500555523605729018107125671467963367243147883188785261266144566043541989859982564236449072803071529676991800934953800651626789813346068231763280165495542870435571800158692781095429049402098851356176959150006051413793635847858403122411687369389197918333395120112660739968510564894942572051996525587779086925035975487655083542643312484241979648962380758255009572889953207398004297090558485681305076119829693302588602544335269589759133051148242399628666916054352329947675722341456666083725997036532722317417068079770954891101868438917682434555807975536056205373406548423218025128467948213005129719898157953032163467516716977075859216945188079706006559434925300147114936503838476051048335863814740205101995022733630544063342647836780296753954682075654230296028936180032175157352125180739393493824891498986557903314481504476882754081420476281065293149874873006574783933945750273519722440852736569416196873401985491670488475492275633961518585285481397579505852192416966360531293325362448787186274249606998617795237499838562550516538105330143659628283177705228979545671724611788683903047459856996204986231973327388801770301939399007486004780946900480908063952183721500155138236457326135985897336728873666421749455473551710509347122969186515605100088920920585731932444467862216229002427152536405522916825497158808369182354142799341923869104525113359055075695263722884340109020703506060243005536161348293716866202042124716989923536134844534926008137171900305326939893900603462725291132072311989698247869505885490243399319980203933919846854088209736865935829669170051967604214883816328054867519975523680074835219924953837992020548716707537207549501952793086116873400313064750403085765197689778862828740080262305481710895510413848189415094191685920675707098758255573007595576135340695666413582667229998146118288975490624113702669226678169048913642041952947608191271615795848950661039336736868961383156368613430354095133563167836684604350054999465877804584788277521548298824309170154859335571050767700665997369314720959210971330159168870153838224612742734283467169386901767279022013002938318548872840214749997758190151115310993464859794402760155386236960009137824983301832103881948587740846648013095840968297537805953480482961773373881509607205353092730408971712679332629647408916444615465911368059536815629192336851966084715092289121796351283270952620512384474596957274056567914219649680024619327566476417568784573413590121209748039777812416590461600394973131556364274333942167516005107022916628379252245679934742139449914527605629770421553698943866391749492741448841258327408255689312957866894948175486668348616651138555576607989559353971012817069202620887877736926791526528442920890212916036178542830554823780138579289044048304113349575911097119008450542733489555393404709305908291805084708426355237159549988060199832905250426766409874570237655967985299657370646552225949554478370907507381278997376004902775225525869475284968993762587221132323525618565919229232168041002926137388674138724585689543487840122954341541044786098115671616725801863425316401830772542664386655242250322067012042001158858585692097281672238049288978620786805948364642121234502185117674690469739263178930645031769800314107153185006570439324569560497116063469431355335106205394225568142535253932581123042000851844886148072305014100311473030504232200513291264603467175390244450113684286613659344954079982112770919684519176239399720592699795079921390393879419590448863889116640587734452418296895107139916067781688169227425750779225201860231893324857172222545939794720859204228233128457306309519385947602444067076419419672091863502174788594053494471802155004066691439251742131603703251161490647592767197746956974239849962695778187553425555260979886414996219383337335760378512672443327708021486179594124409998134138200969303246029196106805743924781373028036431823372676047329507247459241799954522268616846408296212789365959545295964900505491184027898168054719491005092009820226436693735080049992774688502461405990636886206185160321215938544843787192390306920037219285382147461775664962022936084022782074167212986458089135638650366448105328318074761867468793453147850719498258082208871304943489813696359013157486167299517450621395028981762772572675116376668368673386235321841246316062434946939178619308853569881892092090560567167265524671540180200833841708937993382076196719108094429282984986117978706087273138813113028802011059126743736214163630868695248345943479213875159691357875180832552734134905583310657156176549361809860969826819097235408157442978947896795170748995978675245071894839656936422322991975984104566336160124094818471085676961078113539404584436010095153646169593561445686560647348251116571827854881098277633676436853214679065323274173728334495779365232398242480842787459387486543500933737653695659603023271275674496251945119626648165472639421673426768133539138034337360471863218761509962467716397515138450583546292744538113067348503366937607570681917778346315878305471480983353356975959416741780026058684142849849418970202361645476149345262165729059745079842627742660528500970927684291527285689514376242773595432927189625419198133660624814100573242263218571082559015294356730711304365964938205789875404025538366733313420407017512945526886668543992050411706989351904468338455282927076773772992117574951445159178239551233704600762763326507282361544416024273948832760897271634394012306696130724056438393184411908960431337290133980950212821569341530691038159071473324714623578603884157627550626819431071541218916771203244534685016449330503784130413765370630572083857095656334278822785606054338074213585260894180720925409047389215889287090224526243112377612466132839593145311950230505973145490363631617810676634149689843035749239605789560384483695536852115438422594306587176114939711472570778178385932388390400476705920051409842759712211959618773944491577025697623110386737525216139173292942894317504268600425287418883090613771778888719525781026823510642092841035384375134845279019143302129673036468971639604328474651800624094552459010260984174740681300163179321721246946238879074230777202701718522819752585594500408414402655640910636406586917654245936111993828420176653514789369806091798858851006900849028885926183361318063459008072560647071562583288341479375049981722580773978639885289696082902479067232844793258050557326232682176103566199776091966646870984129306755029525051773383664072987292628966042175490955976769993054899078515777697035703544836586449036360076174237038806187032420786946146310944969627476047889046484540998690946135086792082102422712024640787385449501198653780408764392823639195116592944041805678798171410850670917478573857516824755957874944632242100459643081958156440408499217059545316985654068827034444450218762034696389657726207066336809697154834035493675205954108445164130300562661303280203312538213715460162911836562963877030779175462893378780310396397263644898959431211840281995638662723853060593180846960326574710621917932225632254364080965065225187071181280171963319090064095413184631031548292530190551741173229965898245623645414060480233940111651447740592356500999754204618831674925738861905652826962801140217424942483416187100066136210494015490788869164144383600676921810542837081090510026938021842837752547481186190551212515075942313636961656685206306692828965830237557965861807381185777568692857745558400456704612564355320685853851399760763808673727862742803752722143141209143922816605179780667456473880260811988383870953546404420703084267228456290412877441095107342695143972500515795809819519678787688205019713386231103965007040542060124442727034835928023077600571465508672277231888762098631504305942006891679449020760179329531810795617544062487214361460842911394303246587738307990350350489986177200749809127703101352585117119954305428583153568376365649503129204680409259244789068570578228155352319331508986724448598171346737539217172195161003693031869163465325961955375479935952027274965627585349045244439395210519657770034522222483704969367738039520588281720678168834608429997354722967468088240080959834509468907910449442157219447384761668551963178249124133848685901857957506559384584831814078441965103223812463485141761177913492593618179429758189024888429307824067572056454087047992442570884184695885710503884645681499492840815828462644445877105991119573844828873234399077361887689578135798359069910381511234748524981271878906710553052420421509669129561985563764945876381602930347021173058460379249450032036279265140425286761207197901082763825992308040098633789794611391248295818197473343222854572531227648255751595036734387367403743495837126391172232214218074152855024726878003785484411667835270774074722820300825143539426286871458812476902272001553481500208841891720003846843526603242113734620678170074052959193097740933827671270467885675322945683847014070848364304425538204153224618410465603676926301551490874221461767443162857202652555876642600659887819482109920456206224597610086915985050859965932529044294914026202512281505112769947353746673613220014387311786889087974849694282408990519387847512359473587928017592540583298803235231401144318100265963428771396069574515181224053557020776908090378557383580979325471848491478220047932786903061135683090529189993389748649078477376080167752666937739739883462368757246116290288153840372288468388768566426215795968889995206106153801237534226575540660109485972324945035432389221560356851579208222164696550750244036646344349419523527360666366156239004753903549191389705150399011094649569265337249112391780315193180498197688225711035829813846890486966178546424929542083984326116527529431984615120490363744157082139962714476373591662726739000478130836444609425314519005573883787082962056923166109588611927151077729444494660646046396227572354319620948996423494230066780617162520401584288529326933298217916949362923818474285142150909971974787537217464125373063116014457206392822591998859080433872783385252603094649513545528382647406930319702713394325411500735622331698437992956152622468191885920354430765811066399325969369579258884674157997034222767933483637362024302594363073484827376840763439783978766389017043747468665348016638687658155449667847440111571624713985412797979927651809390013112683506444062496226408359875894575015860438351284181566197125145884646522785978541283141849495891952051950635232929799744529098249075548445421180732290301011499996298019500519645527803611901839790212408673623981113258590743739065803547271958336171654303904060701134845599748547263087882068081144399241809833406482959881139779294070365510436346863972059164907916554935015813224132467400250461571549200348245209493573842302762915691734863595751328649651669083373184567678869649063941765086010920281962713137568108659984421165913283270830902689547543775419040812299820393038574006761426774424038993230294573207226041918698922500205416706572491375903715126570127100138241590353206342039612719337396978798778011032491043241689800269634996051559332347747162568183964832942836230601061512365873376291088917069697045609700366624085056656680941911776590408525713899015928863566263446317254981610512514765866841207647512997536179030366760762167593597380306143774354086038830620589279137446469829009157172542853256978608914598704438090838677898160677551241252989615177912540454563011033577542407279598147102767756840667233654804704455473816404124968150536276023154525968108957864578496145241224187377619593450595178785917407454719030514761180204156123360602279849500746072362121673399053974162372822468659437174226225389573950568677908949535913998679970648198127268882745954714432932275071109446175830297855481862076274186123190533827764887502467918211350890787291020831130163910485406921392383038556212532697907230249492971496605389485054622728519909873991012750150562610950888245894635441572334057247031821335360645887865699194815704109805933164296795975057609681157849067452291962079708743297918564596123437810268810552186336889311179239003196365383632025701448458608466630154842371385507768740242155688717083036159862573188296430789583500106148449641284070520082062690981650249499432282613110482896949309445562191550643508488565086780715663704327223082419886125175044326412513480938579998981379553735649258522348656684092053614260947300988766519475655889724000828008624107016537336610031074324289921863921911544543587571356014785378201594989346888140728303012181869748160432322227173629337018827651360178936795674364876372304224109110415433199786875890965544551405289043699708651965322108093706577402475053630052135330972094829567131568127141948989245283724351301991852291140497995967881550608522226920165161364881372664784747890889796809646439399511116835709443129030812310282911000181178197457848762163272892533508785401681223930274007611992784935693512141273771410543311214891673381074770641303805581366682177367002105730124220262190259119918440802154715116832001449036128889557150839400982330759811502871486493199155085340958486970476076735580200918047128267403024347823975541010313531852669655782754831137887970071761903766955436026152601813834140156172429356297896173382595078295016964935455500390044945469983685285955940053905273246142457105003181848125648451603969409942381934637629963050929946975764714303030130061153260826839618605807349971216228086506152848767469047654560472817958546685557776938231075677782830512793455733047583510724126250050110453242435463077413853583220251573389191050513103006582391901964353144233048147733649941093589777112750676043001175943032278137874354383697229679430484603221435653314198188846086540609674620176466375547722266347674553592893095221423120680463398470172960523655341875646321151517259387048886215693693304262393575416985065067384580669262769553033352229581061057844394892359444617161994763933601331995003492344332540070845023267345280759458152442052134640796560653463497220180448873066524290532839800083952251935848926451248269544222231457961840934799561062922106012864319391569868661175210241763625893495635076174077969899482699335911741859568101001611087053278654930160493209729909459805046878904356608380951244189129970773039161566262563645276927708592217962508795340025858278605646069796158280265563105674179446430683978840733475074913373413215055878979521760019134489947379660916255078494858907642844823413106220254428230703139220622443626354476477255879325712026702469405469855371563066399051150609741922352178460730380084533949411164912206694792581677030510218836541165143988722522639399092820648564995294671968553180774651435038230110240447484440996581142976313371054125618253305800176081325100619157494429623296704917301635811968405154260761043814979028779917566350333620543539376871018066704804280209080346095341537228978802236231805607551540346310183962212090337628512408089381127002053087720701422232510420625279458152791803021648552085347593996120317302101063997286873740816731538757621363605407653430706409850632663679222393497749234241656402658599362827530658730078623228826806834154668845670694051423608104138754530503650126512970890807802503728673169236053337079388941647715820698842639349998708152430401787807015389698033458099157848287280688447535138983961076235418151647259556703486228098518789273484471669264368068994197177123125068862439185384054076418720926345912012190629488578019401567994983466080764629123531956824896158109900082032092066584530921800762829564441345540148219345690475409787797778195568356031368080310785109580318523354569657284659159803234513814352755507655067645696912296032053144908040272499032164416260378954230401662870631485173602199516203463159500899397149627794221302668510030054554201196087854759822801777325358259437119511631991864757814832100583833832953914277077526174656940102757126288767892015990504903447462795589418789700859233744994951223014261914275796093345485286755641497098993355284108830752907980345702033429389424208877099673998614287220959487931450491965831827734388748804222915902101830513973431006052507776411711835157191738324578039850079260475702418244575751263359448024205497661242925193427229513567055860228689423839132177118408826388690208134889366402793053005204790976616897474636303429327046796635920509553671896768347070054792964315017078780659306205094830171286325074564190805898527782212231563526828703356582784276369361549043669658196852781243049456785828829703603375450038561971757633358804363949827653347173658707350615217472227994281948421051795844785891448056852047614089262372246709325339395265842731014704348940617990364932887596494396829021364596535075819618754481462329821182542835119914627521126966151355170886720816984128487823016839960369803594323622083130714355786200016851582791579222774638303803015851437518750936921465308479023813163100286337129629690746520571066775747702085809251540095280344188248390941887262506487301552912789937249804214542914995755868824656561747669081133519892719410339211743729831251740240106011242754190558336466604602079990821627713730467286990222015559198349686196853211721461258116171799016214466010531567262131188555856273708607371135197143612419808403944194177946854316621113636182422691844742770710699481873933111200957546727596076989608466787742181751763752199477797709064031685752836892670335065521989409271411306026713071889288712953251167565979984497594620326569756837240972619922800507414077811678314043351453475860914214119909231911222223104200040393197917012134934639812651613348210442020821221593039144964529403770283520929450799066983425876682232476531391152882892275359649530555482947385205779977913933719425234213708279035971223949938785357510404679317707071045594051069261192387887198267671988337324851873737686719578735045369831621328728577186992938091412615281866388888457317133605306438862049749204386417235364030057724154646011429393581932789700522205463012555656129028665207115648676558440140301649664168994961973394822761090799124779629613583713652625497236432569537580035335911684785837223295745916123823085098766230762570984428634143452408713971785143707450390171675419292209468372538157444937915973369010277125224320017032566371037034169247251449833022834168891244273917887139336425830977014135544081067163440389985214163937146350243281045204433628013099304014121558486354847706053619602927212550917394036286868471594265498670735960396064548810623390069977727244474152964202725852332226492054391217546836835977852502071833878990621695235890911545945654800374009790894469385682691759666905625805314670776327808514040104606429722252546898835124280420832347269338431507620247651897161304334484504822237696266126891552718881024748031881990794105236286372132689875019153408276069749144615783809764533344447529080847242215420672686967141019518853218338002904572855483225767630789151256803255623474935855577793921077074817587281869631947030267100137798018773407930133027957822571879846985677136620259418013350442159915679761661333299192082980510404946232308269473915267918422289557996110768557519786398389283835461792353691001758444987347439179528915208921217151045195875359711073658625036670167447500819178217740683599251091149950436817749667821382043154051511082742807746654770905039437447868143114748021052598964475072919264098901453001240432610905819360996490781667025224793016527833336099006383001277260581112815969415901285485072040178538702519350621860012425482273417268914476463848904343217936297344435006254711117912032264807078782629765421844515747319414975597169841317272033680029599469336499832864246108533223389368939911476966059287187843368135901781081683088319654555310015922686112741567801380220509873634767764327260532273727960511189026290186819435291548094823214124111860165708670675874940472518526356500814670030746302793767446334911852902342161115558512531060312425322023416891020069327374134137377299561029829647205149938886976779153607328959165385790865748960426990549339661155900900382399899632270138647158222867074223727551333536650875518241474690116132755263406709697879510394917987903680315155281520409290246797675120159668279459718605224536479239069074272692439932828916276990651723168282863025049531887143111050579220799574900560977323366832531398232103098195449641948021376814489623483269852715171874580093241398313230973339150475066632549395276677740378563257327565439556350835062868062724178252571067838581854887440138467696227164433380741137063807487009478550406382168294086905787157892487386863740461410802779123455951241679749797563952307610985895887129584797456436520264093476734764728043482010451424791124637862418722373088441152621961854995204629840466821784917168236683366791476648260140016491659676750875708423498084766252868901824029143825716502277753518370103012550889256281656632303043689959486098871035699226593799776588612358039300707751480194518211482744445642815403580085621832495435454573881826935701008405026565057122857968165989389234915202785135362303779796025749153262825139710199370989642120681422472115821225657134249679538475153877651910293305453221966698377255246375692538598301199216899431833967045212632600604542399422084047312733730354956798188456575646327252420976920196728422168378557632553599316700325341383582335401820187998220053562339286309261344548624649928422986433312008013713722259484223120210788604046397437593857390777312043521600327427579568247287131656471886734995862179537125198334359344555509105390570707606744203680005809173821730848583702479525309438151567096337635152274684628473610089722189327580978729001486701227065884715428774341387600649819199855010712784980685081211600811062290216403965228489226433502874937537827705975737580358830621982068805263131574633005706746514906866188103365221706072913143146631272861867882030865042966767605752633385588037327745218077669005374595380442919546979671402518804008141223690649276765295599451217607775614077512798170131577037265520771542424893919443818417769592433100590393699746450576425336127637114337905357421821345607733623012921619732554743510879016829036924432446531651205538385702355348699506920799779974285529328628439631453471753789415279124934871481979849599439370834191168247980052896329617725935507855067714626932403213864575197392144000575669050518889134157781480627771457753444016567530834007433220751018620700143263563710011177930743122116542240976672891911399721630169041468385404731720097669991074626115334264547208026809720606388746276744563128597471897083001799873793096219346042461578217272000317213045826705217330854174181123285688923950492826594774322882020166556440310047722282757775064467592384745542720612245074758728355818491166462413382149454569045242518247498616239038055566599692617404229231998217128691907680940576634445592491414923313614988400175602039591909283128763312828045064067590043943512668159038632535297826277262867288749004835171043987884776654615522726295496237725408022239868687697848971107180126688554158559273632050780975107747911241703629104864845786427429592523834135061208342082564873013861158900625076684076987174813156458758495603223537363172146567891244825049076035126462396686218617190217445892019144453525840985058202753311222105722644180364550025837866415943315954188840087228411225924031060194335807562462100108818774517059859578414343560249102642080103685332962165060122421230934643124689305766600791367476527160985878995685848558117676817401740701937192303005196442786758615958166016844418420340101435067902865904130040162116484714403786416142257562432631452182343307067151745320368358571631221853359291194323224445158940530869573983186086625019454471865396825690485202587864496204093566631184384739604977819964409817849334457420795461185211670354933506625744878547243544239420797824030318715157250511461955077436313653663541458053873159370055853231417865322737931287023098385391285834530681217278970444047623776396247255050150946332922008068049846178949320370246729430919915011869786650528754209872384149826261688702313340621438272673466340340205437679094847564605672462189553773718309794410572242662239663949188109638009808523586269251792289525622763388500885418779907596859914914053292110129801237026028224087365314063405026135756965109438335369371744291015418173959089049389022773094587131875939689345781571894443360281557620259943068118813435041579132111099534297770214100087596667902151654658676471521059735873194433109055291374524608227163125225204112075518675584151294639463167696514890977626880776093944608809570190235825130254020417912596893660365342841336020649159646641041559164475800057253608669609220718707061853505983774986145511946765801545332668594510363895545466510862613549287208455445453756656062501036159327387158488753376755354358462716925761600702019786113352623740029946858651130126146997696454003001110065505217818559226053059238054894366308831753214089849590383858764713233703189041736214898927990206086166250219225955818689071411041589829557003960635189019485108474028630177882858085335771130448729513039022296595370191380092043012291529642403804605847472441937899577378572851119231182572381952326403414204523675055140501684369486518622759781229881203617300512836283150276099189755058475833182344470803077888808667703449230874853111664283558487282229517873652143823669467614479791867142233868687985888509040108860445047198872422251835165584462827993492131319862197033558271325072696982737375848714632779819939480831330191347445438592294878775196485792022680214903675240771888736832558148519620586635550519477180565621170167679472484513043538644394676768156560030486980488796003474809459770608319863752345298059871699557297106737136630831798002335610070292230981933525265415191012338773547491544800157961362260602887897424060188852198258221726728859882888883569962811098277613709741567059689943477527465825240796100140026160619353489865441232005610044755667645816133497292186766460907998870798785125137956976805167741678528328787410517401090293527392227549150667891577708332278761530356194988662884758793932211554463954649942656635149610895534578492056560768123871589324063711848439362419080474162162364643261213912847054228873926874762626016440894031663381095625600183296509438889722243333562703189299863858708788027418176468843488607650220030752373293341595608544916136341034727702996641904892925626457669854483264541812381495786040706683714421828801683891856623781613922228428807100091539675544143435725545526171762254404293663049245465611177649376362814201586518511403527302826169163939688759174399414654427213877732929897222716782505353572744437392195849486397712760382214842090888568172979274626300852756517155385506412543123045066003181463239886150321181668684581075957800647132180448749089665492135988414991409726097041129318762457821572836412302324709494266890921438308939730379295311250735956401283836383106604444524103133985328753926800796429430324008975177392453601262852980673887713963164947027855107897782353830974761896149847158129166288309037325163634355627598401764132252559037486480312969519186753517949295729821534248527965049089895107030903522153202063060348355053285222385202464900926471538503066027564761328455604111256650340975187866731666805456727225624015125359699621532978494558548126240437288591685912660477744283662855349513389842074889078280318423747841259320797693213349673365418029435445814169132544737028645130529886991699397967182632912122080162942150440529987468859765087280904834450401113604869227292650184393957098389139238932579295545429388669246604974926839552726905072139667407242155625906413334162421108091498029536645409674223291030098398963664346834139131704712891408222027538329220687271066835044996224727010547421788623044195348017850061258703602472758018060814891333433775473536591551890416369684326508536608397515904357421074190674354014955705778635648703866616434225394572462878005324737830070168725892413381795624400328126686508983280717526327665425649865218679604835628842634637055209781001465641777774288658843619926418085144464876019797839548776382814513662406035657318373040592906164734373757290885190376014618934223161446296787196150936192206441928988611685096615099721541511655958986292437277645975145545865470116032805856837983231587393620990499896128392436421651127528469321002185991722101259815009582019778693560056728454401485382592718354248387347770169853029780700095690684435904221668878983466189984985315932215112192526014501419194851432046553422805082337481643398975080758378696410410796114638206498855581963729593652018579030722201513897090467418148853718558231601111660762181337377910410918570281395662873139394530841837314587808585342272236058010703275027407953074985515994417675634438770221678638234787862210578924308398252458513925165755277233125869160138493585390385958097040562072376888509487209597204419031959102475607474564070315275244458494748233909740720079086551083463463391620963026778596100047739017328771606614714978976595693419909239028220508664070395565385464820053117848092747144745805497692005614683518023247814686032427245818716970622127641755747984662195615990345135900849731127513544689595232577003960731814781638051646032079089201409702009319718435965757494342874073688306072395623331015543813240906909148645044730271347336347463197913613827683518954163739632176385576106827109219114478053141317482432115611308136529665532463567255916684703842789973353309230551993176556344546624132823366338463856066964966145770964438553917145106794295341551527303133665955861767991030986157243842452465914645691222973173947055448996067958206013545836753559633896819064455880422791518307033609135775373411298203003761539790322026632166220558904065899730173031196403451223327733406975724228388635352750228409816794917649541845245131810610805358363960031096003322397843017393883137608796898242461192156559975018179607243298114583524648215234462238852806497257013552982526876715652225016550427038397171844903426782694760536096829315640337788034469751991301326550738738763310020297560595567917621228894013288963747711207309546412297017650826139651906244455247711189394728751672597779992237474099013899301785031176256640729375671965230813532838606742896741939214024279995122604247874944578623130835504701028145605718915661475086463057137068070320174896905352692233143966461815461934948274842937707286206515595256606211175318456192048304576940168323202223202783601188102405700272852865799438288080228199409970220802701498084842417103085460765833126487431796668498668430802227219350065331407237204198325201707703813536984995311277211497596308719841856171405421952074359072757911450775131527044470944189574606915370857431422926783807994245503987076316522594610908945682031931076394255412235337391203474517096982336448165819583317216548653357537254921857731014937148126121376249449392913114743084525987573294942912436570501191431444756041623759581192674968207698743170671083898182485315690026904434612514234641916270068554112761327501674041499648529414060264600658095457816113789051910728139756204031195483571851838408109921586569749121982792504175492594082894387657980275350734625680118487722165985173479742573553743918102402142485290549451084673897798060796365466039215560243984011996743752001409952417556404151148573629921744783700703061339700647515249466963035845106787578331074958422262899940133852254099843072861014183017844198086375584388182726346810519328354359859282160828858614915970216862239920234392191720833520122991513285384144860591724450475465169377313749064917353719293387487267212036053607724514122217371687770018997517352566491227975875596869172312269487307243215007696422415670420562178212564656506392374564192357669906319085142535293768222002767538948862175915054809642570425869839929145534792341907046061682656735898508216050538920137732755451218245082222802180101273711139033647588677007981310631941810383971493706597024305423272559813191018319426941382705093645699028284930715649872971577169692644369255616143394750327401741859204001938032120697719058542351494911828103363986760535274349778819493694564795983498804671054197215138536645064560020280458236955671350384825741811485386235004427819841716299152558302233041817704769476778718180425304878222295935590453487822035645540976005537768749086206455858070235608047108816391987427842294770607220723906872968311547575937316455270995011818412890272307775873651792420200291366951612074780313353466586321565115667252595939820909184209452072423807669935895091639666515589884275107778571398891396036848960225928136642677300098780704629133448298787542783177298464347251045356933681594382496264936428200740660215961653819384090890346495323769371061666138087082087466523494961608792185712925990428488410362088884360736999420004203122064376094455498219586031257227357169238551682851181972641357108304609374932329401264332757623514143312711749733626634811707654449438755662837739295754836512857646012602571178859663176067406415850493906467966226286462911355393711403946673663037262490922379245492253990174844188944225087385517678888129441705509565892112176624388764692522518177685487401700718353547717853942062271307466960729753054782067028539714454568194662703166444871217637483571129744079837912482464878833540546601761786327437084948368676237155029483169654483402455414172407092537770945930838230940625982928857985260839439991400625227110956154898450556112343191274500401606278412845434225708787593387726052382480614346742648575732474194408248104459760504937928742982175562814294347715793877573651226768827177650943836186860472003510596962172175747642166610593028859948512053622715488968688872545646451773086095394519123642012080778778601116258269235729937977087700965664648766940962810166801276035061563309782182504202825962955017290946789375795003227797543580513925576376289242308049123182401326203500678826475816392289396613605642197912114111291799901320878837467706905798216552919173225890931908430174390357278003668710915778851359978892852188492334209867554900470490001107922102307101068442748725961109003662447120751093602153201728511170920659560153666930285165933814478137477515160218285252482868825508203973642084613023693125567229119431346344214497482626822808135293074313463981839762760402284217437629180948745419817235687262205022919967496676824022808539021738001311791139096737710406781382949821467468398654675154609343736211086027192469375799072674018051478065371263735929376554313170669821754995782668855121043181189852860321466727604717559009770105365056160676255423147959597026163926232913516174240152785937116156515618383330906075226820967189242173316793513147341041042414871796893921539921729246075192616714520153411222240068419374265135384630640509353434786136061740548265231305692344278164227084760085351620904704588224827409965906925570551968356660282751138300101504699794847293944198281030499774487798202366002486033172895109753102362909150970975239732119336834329479594043491599456012198505899457107915434469000602809913474142639651445539374873890201297925028929663896708851381119328096938095254583100481594688595356429125382894716580135918550024347218033379755859547846474220534472390393124238962480501195726495076260557135580212846778566829361410650806527520114196896857135124978236178401481331167194729444136722212743090035956583387881494199592183455591540383234335662360308513663181879260198237656448484829831829987909898073661389366633762787403389847695292659037078609345052579803451672419773619708179275182747483700710494831908451328475346662632230203916648214477492493859704260358936762498932449701737342763811613846069610032000409476120295787331609335753785772854245223486399108667817936520246694906812528065503355929186340049404810708086545503960667039882276228819017718861220490386373851362989523350577270936480381143503482715365781759944778599438772684716401453459061691219650401301157245834698115101880107335697037258698585104086853976629273751659477310837309429091389329284227747994156819681727549748601964870522054668544682481727157581617405366941371770322995445596780748976657041503664851381125933066576534363751680403560611515351833489368412184819287359515569010844064275662878512138955016440268409468773686687161567840758315224910068861872245021729178191619882439285195577344787872999094585192738498224645664725043995143312408273797765974309105134457956183334871147601311746768583104779723816538852147212702581877205541609553013153889626234267844896656702796354088202204641801051757359848560546160436311966580294354035658843979266931005011389022487671965630367461832496472120580213437435070339506368341721459386703922713083651736660922921492622259822443317809957271210900549430893373118667741913657507619264663343076374144391023943894735737411131420564189899457039838831066037593178617517572018957979171665093217645012396899278307841928049173372834486667247569295575858942415971132420635919895929179699146217673347344226278263203341632227411914192629074404011028025115202139167995067899246919392118798337905076997974159117496330736813360725266591336508049567212819451967006961138161562440011819090199496032427732822246142818909960213618288653876237909184380678319761923839502700373121777315241668295115295332939753875230671031840898237684847984762962032499546016116712023265103036141351957734345789984325092022235875952709356235043106086941278765875946732898104597151485833071205177971523843080331785603517232273666258056331943322080814469702369505982761643280399932676052269439104673044220256530091853826430812814661394020630146850823141325658988560707989054271744791314046839027346669673397791076374392273320339208924661719190080071468471704840775268966600897464922787457035641852482227230254682045881741466125188262154614902992858916492162123640644547459061484554921487737307433509564873302235609667380233665047726665596378569434017488560529306574778834942370049942010047529435260556204347643508732212858789128186206604695627975281667888238403932273149557934833922540204854937568440921517478327513650394376148091954584460035955341061311464686679387825447371128360822847888287649695551220069763274142755232696914948476673484645700186513461494217558034975149358109361004669108447450336110972223088162547652987412937090501222753116862541492850753712384444670419397314413780997478606502085858866659034272001376085045028895175355292930966495060641567130244382702328480437651397809651557425299729910447333227098580879209829388159125892020189544030354344175028320425950540041800412796820980366734728686837393621780991415014562224584766291482741305583283537274832023379922446811513018869710722213209176018858921086892112278630261627287234676600076955114474157384200816924887503382762109184547733385668518499667287164856664434320876495901701455285376356373089018617617590438458015635589214774024591344549083357859789791912780970932430629155843918963261652907481039290327758966522997968814083659397315538085844177562378316767268600076152351300427109769686676729860654635580065479334585275898811566302591926544055080277085950203000806136698660593631302137960587468422936016929947074291078358737450344960804462604942149652886439382834056176480831846551204739636776856800221402476015465875621057977971096510120612867669617996170813821415082200317211500933410172589588231745596229055024827922021730627017580038267838488218602666170295511810520275314798972065334585099416588395363304726442554228886835960155762507486840854947556403604525915390891368268937369843878045206265471385310535407855441407094751628918345327082993783638703133011370374311685127079152672692463231007451693730143879066298968123243283586284168654670838550853865583578444044000550241036585444109697928901426308765729696481350136177867102868219661644021668793857657362284884248591045659408605357420847776608515870072023452617266109410227752129499402927681150656066539442068007996230924168350965865621085466196120708288302716669587418664801215301993885008402645592157985609482063881760260567767321556833622797792286848604700737186044444436259640806009261980109844015527317658080763584860719191991085706379157196047820852066079590574250665988124539363710218766560304959951100548764567688732291210768834645459706669927135066658316239857620195023748297307380682229121673804985159431050012679767533109707355814116163831753373652193789084739135263418447763163158876961114365069140768938114696118737911232953506383306414321212335488813629358363769084459164975716113422571752710454066221226649496071967516056132333954887235144534206796217019695158385215046032507805495976295835267374670844244521421192298112355760857023209571190675163861028355238202585329341459344464566456701814963675590364653075570488868539230472026413189429937782636296478912803534987753309247792767749920754073967794583199899116264780152045541949126538459520580498333226405223978096893287927735974781787972662761049991882401198333870160616122587896958342556454748410791669381922289619404604305525198306127887886244510152106840657258738551614492313939383711678116589484040942900321441478529169410441208348498673847204564226261503362542086780092634767167168078322634897712773163014320664037480024740290048382186923954842250095234664114700716474530535697952854612659089511898494553744899388474797433937319947990090508953853839548810182581778930026122668424246788835221237344982182027607893899479344311659264621563775675327188993115883507547169049656556566176014062461437627229223075857172578442129212466465921670386005155108732372487981614313846731968446309027454046783222185206893537423888724268203285947012408743652977230208364097454515902894069055423554544659405494799900176235640055658141505440337598884290204216313538196367831929037809142127297695501622625694602733196760079412740766481566568421201089791950005651219831379352824369036353883082563541332848294351726069739130796802944201299118530174512359504618161566657059341875907520108003325041715187238974429267487033963243961886095309666203987932140328426155961689661617001475494589758928250681681230969945085050218605686369169538373027047318083188612190127690646251871771574274571587767992101350185625022517962132769087999695494588993287538146230213198502305522316956617255584126197957154429900201624440992619515712221298747507782130537266151549705765809513354133047342607573607420889249930459685440948186243010621991510417435367847366325695798223996982419822283965414244719575708223112403185759110843526034346171177623197678962730108554275167574836139200205694565833908749318114567945251162329410307420949378461580547871301064066107062862868417894519795804635501716349650420840777769743333144073753729631998014654953420281459588519330789776899391011045906948194724752202377449082383445772894028411051043908438401906516359409655687113710608801260998639322313505226699659122572751801333328390932292914301205929984649800995545831596037965332724153730854978819391091886230859956142918562212564553055163471452927257459565635254499837208364760342927035586495442067673310307236520281402038315401136853188531169578466112539080752346721957122898806588577871817983215935422408036685385542549435730920624829930864729010275791609689325850304981588517850804542383692568976308095968575078115399614719268817212129631019275937462624572961499872008263916043203222528172157649013344846922214176498125109633106602235966240769877023117875128883459609680004830383847982512545292428704923763216850572821143511574061464818496113448649097630312093758417071802676247008313259848234663682736444801418262537474303056552479461530948059651916300565512426875578559429867564330428711938532614140015674105817691632080532849580369654405068806372528953364834659295681535627247306596836571629464164103147921496836596981574153385315317628230649524347468831402815547680624047852256033922251458875610032412973700465488085551756061611994233622081912088593876663477414138613768499727453041969375923748532789509840049378462874544733946759514246759478861200063486328735112613772155574328994163001217357884034695920882835679681699564996053785962562153146675360857131415425821397782621811421279381329812892575518672924344819119868113760078080437341682807854658684537682404775393793182574171354689848774927251629562916759667768393876140933899837788517710432800712270286405459006653336102109122866261623786131849303747721057764934038104995501373237211477728559721002071084759990601165928699240528049425450472237836690942585827462678439474740941599295383071688057749808636427064042420224468768464851827923365847497105214817952598346767672074588570298057538772326656868885728917899683457658070996752973915185764825095495976028858154972257002321191384291006541510028562896358784491337539183065346096984586881131478087459552889258587089031121632298280922968209920092239118624695975542285966411138163849088462836571348357700167684714962221815996295584117528951877052693793538469403365183864203147338896147679860559828007281205608763023115857838364259671867364085960762603626431722970218860087829153801889573743911203239625050312996663944474111635924320075062223334547424240666727973797174561695028851335912313977161188508801136935898471990446365034618953884634429042179249765087535360244666932817025407346052868518033808038483989267450817465738423610647457022919430242704839074508567153721297312062495571127753649088961326859430210934607723257782679189000843889874462692112363861256648592413223699241401885793752739111229627626700548363671702520211812445179264687244434729925869480538695830754256634665968459094350551149198491740037861367763487234979790685147383103970374532434987728405113917864426952962820618012581728208583432695872936542064465666398745197960218897401651156055658185840118736157187194547533464597511606399610265846321880802389046335298265961095363877483038826286530820637382370460121419773727625939642673862176507802416495822135553668825153175410162217000746784758670724979866151841737034052167465510745684729432092301243163116315291076267650194030723488985291971420505413543824631956141908664030035401692249800218428424700972558470150947386770496520131828756352205298532415415606372656940983926176800314421713294888565007756980191520585215707474622552815203863451771654561540566489100093347165993221372699753220169529551997370412099152887100531102110219895125560793638242917412275796640556938618851095611160954243049438259104800273502204822168727164148531964092957139498164176223755998450305708645366663871251656730231679752428871168784624249249598801686963139377979578413791393103635658384825145386885028689925540699108491992878062310340247654590110377847819327793346523564645645758560825868577893035307364488211436826720784907539953260016215930586469998891122966702320580922700070469397721173534644523128123567411735742200972358341846460624780233354506696261241274578858047547087526223406321212514836031076671181783770417643249078461320134030514695815477177996554145533330361856874036204992248448453422288961673159566088629814532284917133822034275727461366593443387400735901754257889571099482451237366499868463274557282610768155404357445250459349283748162197342454617185171803384830129023815902382391204960852181806595526590124477909531345795735042344491197005584080719758652404898261176953009790341559061004180099964024377949988594111352415075076958618845714064902809411687019683380967867040404170120210188350030142055084596609475528310437092575129862198985922394634071131725953351854843919018014246547049569176267285386740316055242749682100917377690118458783616092409848943973905187585000606205871465378582460984817893225112236185572095539705902021273584750503761127690296579090650106240261744022091196516968293749680863612082460316242924455595912185124966832773184502905361568702460907250703272503963782705025497043863825993398007713204362930679763458758053565534358409145429825117918667240551452365857294650707597608738342736403621990620927290059113082020228329403847199934124120380375144044658618160032697163992423781099700497340451171925605275904872850226819935792894000104666116120188311912116470653299326211917352013579319333636251941549619857940488917084691757156753557662840247950807048199191361026342933282620907406695210647615892710523629450393222432747378368742194697086122593596802578389098596399101391548358858823016336907379020576152961206877071510501157389838550458420829225148817691312206467407898388874795597128634677116170141000879583815839343186757230868656941643503803634611533193973379989279552488327123409178100187571488246193497433535561775217937895919972943103398370155368628843079861682220000800212978289260414881765057251538570885020438421598557431775917214993346065046409870079185645962958057424145302207141474176524177124755479598993597466640605442294009676673499552022687115471410484345522629970786795214183718335808768305258031701262813187648209256978962936280438137418778854681902884696289239481846627577971767749564936417879305913839677726947623652700749280949893938476011629362404421208888324573839925769342848440614244575122661390134151528484226332341239684428715240514730414255042181340078482446745967666149417774709374594637026501498877600504479425725970094379354879454181753806491560510659895022130285870652960519569720550640160480970057147720154895729001960234531887225960720039325082731473604179487263012974679073708100686386089965756225684960804914259408210739104685803629440157327578692595909314956926656930571606659613949094443091275179121811413506109835279098245125383085759057739121131726679150505632967856780056603245835913188956602037165478060563105089011066684436216961135311925225481589388027853160592171182663224168104542051412547869274190623273065701655230300300827006880971554320133468088641924292404914755445697622355072078774945228944786558892794769533372367556694177120446707755913698259713090954116173041539595294551051796793394272084020064377856775150631049676101555657925670828343523758422008665368041037656000700061238287913330552273843703380844743778192410489753842513101760781859160040006004280171348518570319608606497203222297026602217172092023867469410378386594541289583860800716292626227676897603864183284078525691125010582706172293389610482179258734592438584533584133008683578430536491833478392434080497198118394723600037645254775606577268202442932634526258532700073351141416090443096763955652159270677583316438288744370841489566701867041788112105535961746430493650858979888675255079512837320203815701249351332442456563994986692449364284366738770718515621519243997243469360244007050779226416334036781618406007504734346039133005600283670397946413465426436152168912139263109892406352988400333082973345233703978400137074636896653450851855906287749993009556436764166234918139887236901813082919453957745522135462249226442774371972673025523657748229930474185502874621801465919489367366957369349450508261316976539369061445813523675242640971947604579697232268172229990768507110384724745190951987496914871063766587984986364295504875718219370293838630801931301503833139284825857787350202636193147083712532478511814686078919011658572932569339356790647436059654706259115631279789653170867575428685927742442162566681942572606590559268648674113358806786077346245809442566626408086811221014953362355586705955113903346929216716183465290026139221526743644584621669777159278400370706074864054794039240102019493077111582574851881702457799488399008163863359250348170243170190629114369182418809929044236485295524120472674270841546530194525053462668090733126447189846045684347090224125424905663267979219490640431824215298132759285452007107040570394985700237404343331296789085367281808484586330425385040312080406296076433965410001075212852411900140810784189474853559800454108787779899536840048126930341980189698229677630223804300112260849162108667930081687566695267131653393409893786694719635053955943868157678932242756583546203125943111469523125625840220994333004011685028532891419935855312102783947433302636009388855750204013396037605184544071593953341390312895177133783973685141173535349842426158927888098845168268950370287678002707658769274179291155100696942569337871520614423758565119749375580534684385046629423018346622073116857959320669432848380665520194240569348558595685393016075295620900108322095003412194346668597977702734452246321457036253390004988927088932013478610197122450694359674834803273018916509735508117461219671868096416246600239639767097341248290864226670375953197615980347105485876131859152147880560940725667185284322517592405740550291899159585342697952573184609841626143687862795077345581834288761347260526181669920372334772202639420730938612815011917030526139684508381906600911567348746941763182654199316139628067202941968558300682984542294169498979489044711063702012076168567752935187584054443578111330787559902268705295534901402448827610207681905668198355033055926022906663254294452494990431128881009272403769072192838550506940813037762305938367320460413761771156903580430602860475920078184636717792864394925170503596266903838914524443158195610257888277086285827080396898693200541580788588336265313124327420298815595876944696034283257220937477036396480568322107656842658417581288424706525982192567798283638797748924041095312711075001718230399593004097087841652615317746601562362330902845743100942210228161054061075122512262840051769892004050382479257484151176987270475948253507157722288263118147900858753967182699440475809872268536492822554988167663962726324859170831149512689926419265579381953186365247620597024844449731716088508744668561964931675646734682735016920031204999124234093131592280887245244695587024764677619153726277975092400944540111111111171125908584434814381445143321405105457954442029012288370222960132189944652339267912728604879192720095661514119164788892365586514022287892988079801187847116464697703749587858401951503134310839962394676074159352891281410127903015260793695254265005394932574326597046886406329514822836691915846687625253418333558139278313080865332280492605876212038953712298929108214246782788931407517981653556986642014632738891779685299848090262544930190818992117135855454109431135629449385518368510167571650010079230379951184896350905508915964917206944863104868855032950350297030798698517869683343758519424808822173681646523914496064686717496968152189037971726862613612258112881635966644524850253561609793657248288535034860458619986904457422177279392684873981158451932562812655493587876971637330056468130938633360734615661258639620403198007689032208257873210736430080918397002786282741689525031657436432383578781146055931051727125083938635189722236661924440855388885493242465146520953055017249454059144912693733515091427178140479996913006070283938803461584277669548115219618817120390322815428594702207552790968500907066372789868484136161070977314995232291596751329997649567783976678577618042573380794888503608429037335928925775574232900993365756879143641108073170992125174459889136837958189845428253568179586400830581162244927984258131755188794941130892648156425157186232721627122410608727996700432967595975887718115671131930607589003261434190941086746765962564401552618762724292617192086518165887555496799020669972472045892723949637450683091299436606667714694925082532456584698755827722250700120938676792734894246325164708713281814496539280312223077504757424151126563651311101131693350067052660396821523204213958460522306578293471401409679854523018282568921900683647089863424864714688708787209630369918819713235782740794849837309311070805665131196911100702832839619621974511411914918184461487688569852472483116774747960774454584145939089108540389459411365805212412167005302860538569471215648820657693239098756908906500805546333642854427602687623782031711513038537709882040245525508773156677987240254930441918507381799520527279890104611275192262585765429359758255011185605081318952782306020677513020533180103877696763750989187574549747725985967614929963160591314578973795636594524275730562401621619068171902525694851402255904099047130617969961575029599889092010605249020058916032829709428795705623170103337657135659410995219618178936743624857223306697407726202900185877012814512554176721209346962401330900478636455828978736706944110269145250116166402987351642870476684305113580256050949894418559291158724515921452878255741787969226599544751928790730426557782369056817360561936075209734215522554865866939038547680217269655962023116531764609654354844780881118901519980901244485658401777566975039188457094455618066620992359139049661077417806787030935551274366076827164772455956799411194102900764425582827036403912083271608819343645499387521940422376138279143190855367846277290572080366108738150071207719119888178131059841214412024580231795498903066825619638121629003598164591252932326901178833096463623910166844724391717636023046436141035267642116404282968321613679466544092801629394201620939760833041440232115776919933592085538276936565996549256516610773893081423506649752833655407272795975336014320701654610246625673580820301927348758439153212763068952754367704249503575975334425624896099082385472927637620609197464652651839257490242910488940395012252101292397459583090570983598163014159571610740916913864166592058585075398091281861373623151561314750977529364088870082997308453677868046025744324544782223037526275539367660499907172367963084941227578506885083416980714375280587329801154792112208596488812471982682259370184663860278852657815838592134198149124715930802830860892555723235924619544358913241154793498620594656408678194834173433466383058295451772633501821152072199327813289213142450512763179744187935058824870319413787738976944653339371614862828800721590832507245055314844494103377467963504529180839802925603774777340027420837180621071588944440157288354919766915328748594569407240270212682455459915246433661597005451648544075976286435323237433008400685929121102074182649718049127054960333096516891829286219403623122836662461213119039412624800440133950838402155795889903229267364338915222447891794719272620446622985339588047063410933063579537714738688227416782190161845400141948747480279429360407997922377644009016574394833137310333633235116966821144212133466991779846529460529788385525050039760991334549856445416298943278102246946546120824525252606171845605841569230448675293133477678464278578381774243340053719121028852430758470392148108560916872610792192462608947813088992782869204144527437926948349948968498676599782510047046596972361009870249808406429107138727191414978487646849152839920300324958426116266076278384020908133058442104786851156712215991713143188093042320167921664412832644549001310636922433710644441655297313293098055274575526385287288386704566285664116145288908487091373270943442636810317915482631186825924531570396022062595270236768068490608702906944657500313675737191435031658188263219296099446051367820849097225061997457809845193132857108783741195288509308451647621420605048696847442517450560635385757444609627347677170030918825603139562340776630165096662916597202176254531810663693797379469297645997339502705828659788613812979356497411414049427821956171728263073702010804034830950854180990442423274952795034301953852819886289874732124588189980429951020756500247233997613978246242822507660783219483620302212475276664700516022090845248015893546691257588479334175163529525825667348652104192402486573515156178509253193794505566759239139067938197894028389891898779783246912457875720462672384452456862131430125067843854615547896968097239536909724622979787988075306456506666605882824707941215368119756285890884585018746858617635235436069916319412754445164691346475272295315211252277918709641131580297282630158998465837679543411481006931850846405362769550775589129111687607730854119530804700667224935356504140531901566803535351330110749718088286445080350462426465424777239036530688651089206898593049582765227985678831741177684151421019236725506203948341452010706792280337219329530433699647972043305272173795336194096855229854345683044231574538014684368020934986230416392020521533261555762982848473630923179300315579531172934722871549498636282752765427544678097416626600203792046046277898191026525524521193362054356614116335324931172205620229813479209209761368068718648201713799397714066307170907309178910142781607689332193800843756587729574111466066692162686079473848059092391980571260945459462779432826615034308058512807976363973101684954505694318543308898689859649599888798468380905847788048119026557145417226460962321439838661167746858821760669412571714355854914513977338866497366504944596168373002178565848271541291733403872807314945237800329440130502534205892498134774160798787600984177103867963214145229354459221899995723387834414283353232277821576283995312464721506140070721472644240510714657535163896715770809234206062670156517809633926136667409066535807812556883612729666047351496304164667687766057715781295633725730704417971286871593596915753872592212044287638490670646620469946821361704638217457984395892076234125437013152903768611078335596511750524967950805351708721683117343407705457910668054444856148881839090465714198585847354223675632977394663063845722164002520486530450089931896154440741746185383958169326617553734309003116039253119658468320182626638590950433444100901483780449572478263023131909159717492438197365082826287944077959527201074668669732982124029335391804160626093030319844427956019537099274879928356540972180298108292405391796740653957450180791506454621077531708746233985856157802129192314381792024860904250402710145348910025458890890959295174981286081510299180729795258791036264642462567304206549146155337832845427172382646940629412219529960806664587754590112194440233297761490576559394567064344897151555412768593917314388440580991731831305965445066456753075889188516722110774510480740572473746813468054618099708564516751889943601183049669132975844924033806811718207897491732882450445075987878202467003963450656867078383332771060231221094107559872089242072753628305335575214157554183520879387738894073882116207145000512394749534281529647981011664172526656644430351132870505087905089345737573141477609155563275634876565263476244390106664137771720014400743706778409348445149482776055613338783916976117860674398062495176461030211770450380816303343149568961467456156923617840372313700156041515147718334362872757626962498169032775610186676572802862521655574312108093857179208487076776336866255403395929644022875719774142346943090121813213153260265185025601742453555184017583195423789086296209090883152018078876944746994158007834625662898486326102812104997343491137701748825546859667850925929639262975347188822657657790083839158701647381549356029000036913312277925061146815731530204599399516201088171016852900227674302639720854426783277580108581920141786012112951085886021573427225235562158349143404950709524805345711688232156846956317418700245013448191944615744427103419738016166967734334923997947451769179026764045260866789650205840986071403692884514453016079331683928745248006954313138607032607008716728199109445557013675892724941293567689882136802498968820937720892205582295863526933068050308815286628446048667038374243763752738999508505875816712969104874112245566202250607198815987304331314430632154237395369572692743365438189124967933863892111270332275410173708772512032614053991523263597456333038286232683512930961996416811575541306496271132030201211923304460028485790647663852481858166908881691352317852477343807205322939573939153558932803734712876108610779663120734614234151086001191762501642621983695679395164006685701126413667236307140075636032956511456490572110171278530681062586621845562284690627335544743481661102524295267809279523300335074308911866148739401454354062569831005880478188009374963197217257360800128975774125082839727404291008223019959139998417189611834912806885876913462229971826755067405238873880166859590303996393218788210126016996246052562293544641575747632151139976220179635599999307593483826629965696169556790440812613304376338313941064384886582850297388653442331790003950821174509297691124881187957461181266407831887044031343457198756344558615125984385284877504316486415036284206001748971983616399436372009843488581940463754617184169909231380320351788965628783323372240317698762364981835971509336605073681720690277108273970365723523884285990647511993177653204525336939670439508918363798832559072092057272424118827648602357733044073822005874694942836162569112884932883343719919916908245648396524806474380267564889513078958156886984591515974013286527956068732112857723149154654493991007276798206833716982946921496627825600333063978672937163822030300395648918171956720186156967388613567324965743500816550284806983203574248353475631077863058043527509096128580031803898890118163691243370088089736275348913815442251791606841899642293150484125096037301606003721743579093799108395132790736038158514842378528106060596966237712485819127992598041565524001822361306797449637997620352474790497498845288851982062051606780236834941410922202676913366467094585752139811927486275283176520312275210750149591768396966028544855118782846129735052483267839518277124217796408741710064420162886191366289138229200693024362442857572776997503176446944387576951092817977633287070872665043933588107838807802825368438565780682997003855861137964753211748301842165110528696621399921609544917497329665414460524041837286367195247087847607349212888729506501300419114752346380379625122324465058513953580570937015165339492447223778916292998653948178549037303724328352977098112753595598898608575027827087288543418996320703189136181306981652712015378206480043491375372215941514570584728415196428684613513179803793213086437948378417314737036138995416616522775384033714521641330094476843342227110299578863733024529890287859377334790034497766786803132590223732879060631066125426498588508184345892455264633398586644971111898709713054360030305753945435749394832696610602532839653152159020224378053526258657818074960630766946008962858416029896585004940942559503000771618629558545238391022179290039673645614459343444757793013248781411933504047415767843343320790729632195126139154666505864796604915845318037025826988435452264145593676978140051764027406619153007435719912737188853806954863041059453348475642628667896722716137390856473291704732411174581618563045004082251844960233345325096297015480895581928233254622862534386701543406320812025879937095151310459014669275112762575381077255898574998498596585965769220575462063950438997711741009775313590267295064662517583120800808425992895459501091697400531594706006601026713526632903073052303538227271521878497744499547391691750160991113543884419374512054401717081472817264977030718862593514952377906639968686837797135428000178603067798338730738506253072396035110053461329364046109919502629555310913062895520814763292529527076358225631952021861639684094883997013503683122206609588638761931014398412785202804948299062800753514782636927954117502920113172667462671831964507425683240353981086958931016495523692095045452568497122689122477931621245436080045949167852456584751272028353095608896743034465826421829933950768815524792219150495879208619608484782647741565026577012728216898860934266276232198394173476511990559447574852479173691479828474669371729469199001449252488082453360101935582252473516536615780937131556035397033586284440624499124132271351348611399044469436225050473899965222000789340144372831349994155439439308407548434546978443434661233578388421342648755297939081757375023556076583751756683647950653929535250662219506012191920617816408349915388519835451529254196177381589193603424097508694386338108766739917570374073302338533046440896171324325184396772244252394490851290481194437931456684562970196050659039290651742277389180150206542225204017034589986469078139375232766228412592272131662423893061012584271490488374343710542619753785100371650653247683288340200626580748523087907261179246986766018029535684137963157583670584583787395794835633316604500631228263197073163008288579594322348180254518499895952290212783643974230028823731164308146627274105284060642215111722685299015559289759272777821629770732787822464164352741673711812652315900765654883398529069551775113081814685072500779487071320930139519637217939770098057054958205275010191976846549870276823545907014873079648269027959453584724166011768421949715979534602086197579811278599643002092334947499088419291936945021779434415345866354676418865681116420362993167151605711531219269405455809672097932691401023467990765429617101211537135281607169975724397360593149273941269068572854440139775524571834489302308271730113654987256634770446667796011346702958992679375613155786198078671098988529541239979152076836900104359008486865878002800914519264830050303537516494194234813963591589306593202630970996597494804587018199514302232808253434797199416551680225076440459495957483777968438055424191568629174080750463863999931208482096249811017930481495076898780442503783098812376750812204924342615062196142956766655003654670253735302332155244361734018037021289898721786749784815834559221041117316224661195702460290533702083709056119971631441828601411422679165550421732209710504878231625029994420831941836053911792092789754441559949829345950810907894487328121679030099507224410879217114783098526704584919213510669918772310703345021627394324828739294505867153947590483125337943678367346537318424087440407133590192579804067934836116331373393225690355566594999319826646277534254797201807824379775236207370777043188663595666857139071851966647694926749821546800853568926852880893091476108542649433512148489104221498415445217912203280518351600497830261537911294161949389248738913869697782983513892139031515260751503978747445900520490329422360461995843195686115245650851018156582526502837048964010900107228881723808896811914734645237242563084696850880082098941292304058537900827512338592945175988134907550101113798843478556611554666809522938458452155596095939112800426941749152295084266006548272173418381789214438759434974898257255954092663587817912557082536227091371381535847610422860362228238073263726306152881675114834018525043885598485686040702793494368650206797996902442091033261641747069542481671157217371388163858552853614886788983844459194176539913736053667477547640897634132712257053305348349180977870364566666494219031965758972170282823399426796331393437452916664486506149078459346607564238015470308452302108338464281618077712510022709784410623011693608483627162147727610932436080131651665569557130965619384179792219491229569235488141657503179549625276289762550604461095177121636290052694353068893965937894988059427168259042326399843383080761929214769920940961823825157036768667842776464845147012073778249341584678582620862180150552830842111213584903475515637832076273451319342369521138719642255979176647543577407944892831233170192123747990932474295454477790973901201115218769777744630683581175824698040204327036373376379470439967037707804879779377456175224217018221210358372492425222025430198856623508252913653190769997512213999701711689238685834373044080244909877251188302318750922130506953059838562143879413708009566101502192187771855886175699933029049646982762099049674768537179254925259881976407679959427124042252952247009361889368706389386088456515398711488556277988454380149264068455129909394572353525237542054773979735334793492487363166347478847206686884227843511220348806603007798084537460313407213849618196658972823892008940270219102352088686976565235785207252726328523091207419754124293426185211966466863362919574115452834315528594224116313984685506125742766952815330086859081254433415758697763806913610281978304076642265049958860130981655701516329486241429068248477842540038649940831659000445363866653554245376282678996873880844474475221055514742958077891531101390525589261703607947968725481457289880533048168330117382868673126190215873553338874882488850632559119749293045651098804193547084113497045017160447596454119644927405122987860393789103687924340641641567638600433632106268608292002996612812467344045057337739513119625624937402264506740397892065070797280206726378309310690739253205034994542238090530655073500348407315715194745711739824802501114434466072921587949363919216648415251229286005801955019935122339469273390229444771078363287260000442253173736048292536333547446090791392342916859702364353913720820048239183567830396164418554104425334045898699239281956098351628662698640299330156083164213509635108313429190343150199735064902093367406873840315687504817358546021652134116858481264512564009784314634741083521175188693813546519503671880374150998555477433351661451640440244818213610571732805990700955014370603461835715141704699003569707056560979032891757195484505868990081163769099083763021021857622405722269277961969531975060760140281917602903063364531559991816429729201699518386626811728604113692999602594853470891630348529398491876890075331695946567995033408641788260419922700518091338811952387289792284796015538154358453338460053431817589040679652892761811502826489656577521719819909966847969349983053946394119352213181427060888372376767431514677633107430125864583557779222088475380172443097748911809432215732699841476777655957000385709432477367002089568948651706569158103519832972104251675501201940126360183541709796598397146474544979245501848513761942958528176459958732964909113837071060286355572598628076216157943695342793418627201634730697174251633730936198208883037937273518543592431558188807500030755037568913786950203100532659107005969182291252230090840119937168841003516393835565555214407126404530187969974337643656751409905068487058157240758957317911430037275502296774457432111814943166090389583954224873557141648484004383533560211707682350981863828577176135765425454356398828342564201977531537704669421987324980667115398055683774973711134349298786509307596303209869288862560645694470433061097542123807662294665443517938461998145752257718695278677620672962469094777744284402556315792338152193001732966414910083492168457132587858362759831203740617838487612166258945881787876759252491364015348920784227693800319641182086031271227316494816228484384010617343020037409716122507979295875207904263484458203923983092248990294855053324546038804121628020574547963331458059320789909635339019818363415769238104377221062917479673127910701940435447155961716208067036891971505513885083745124982226398869798746012790895175297401792391567316614936294574373642773003297741012410414955764279373082531161029510588742079249558801201128464214833339893946580094312311268042957750473521531558156859315296112294731173124582916438748810843468189865548909431539750797096080285401212228852504193025467018066848622469481089873683042014000450720975013320340113083533821104249208869578672305994392713997123360118644767788540298022626136675388247337335551753391368828773784607171846971911899016207381657921224455864415170846458838028137960523339850436857199215720718865638873199579824908281941488332108218933517140415986791229530712625424841866608886920977638060155854502007671450356004499226024065766084773346926418187590413410198212478523250056399021384375759858420987154429777685046907119481462586998857610363040380839624220932339819859251156000917197261631378455833214465087130440747587656752095538436620033319384005584734060125766281771715087718412035634259508905411618754944311443060347131778983134909091178126918045565419505360167261696508732243167462771955570803866528362487923046068366885208838270015514085169942064558849002788506832115797784136074314277326592926329759086570547206017130057093033397867644877431542078199776052256223961141087913269742749382593989265717517686936878057700523886594107058558201675331792732351579862570589259619827877881799101148114405529438270048791180006600163430861548650075339125266714122563224968146795899631008594839434554128719936144239177409642885029387125099446353845016145321755291296671459314544891173248210098865235355062373333700486776648659316618978255416280004145524064579361613671459068152881461069691193064191167849432535028331765264057715322275011865117536666097203031199373229585665209692968243116234029563375203600350300908102558592272415147115632276477370955799370427268643823264227347295305932685406248419875135057514686360240628631835896848995391231593581109468221902796435817524067982004101958356848008382671811974577334884829553466023307385035337927802259073539043888304611373511467397347651264860923583561043475131201252976041635009789409222186116465022770205853028042537328353926326378393584467275643931937716926983405594259312732301816514621483798373947319186636143520511162729741603262909626110747477539450706703846437329049874570655347486898977779230315679790661773730765259478669827283733315825726869055178943410460187103111966481621266286124376344893743126586216179175007269165911109994125679328009669913910332102226216437853858579495453464320677440160190164216856875401885364176892399287396797757846208357820459424633447886911433886679599581756910488746960994682772620552119625134092181209309982667773594724792060919774575991838628510370091692610156439637164637137438662790415842366855438369908137676708666036061710270304626625885965712424386181431714554091483637337705368088654481000629318873985635965859965484457335882095736691729249304073612413693832389513673392548491714539211365236507263100188919872281964870777758416526062062002289155533776530624511106927051623810354798617044035326710723886230228999264170714327088148577403039111663835197642310100598072239550280467058296169239622623227609408865909610379244819270395563676719296728631378134449703685876229134994828791936887200366292657322018437254043444181063430178109504578251217647504725650651685571247868934799994442012776972308037663815636666713308858389232645440381823909809114678617904326253857024735709167469112932839109761948929803243146639420687265463249066159106178806191414761242095667379567183234023725307091874205824894125427640275512733192693121816898793649056462428478854077727415905949805775815672928965879911025123483553755496967954245535318569013386310463667562913245042034476646888382825674230485799999421159166488641233385901820904589054423655216416382600130576888649166242223598521683404714871183040028160367757520186954972302306447209221278556279452123697918550367129603111572078020726383283741685192433020408034873612615780167104472906164573418300128280593778543588386519816627591932696374677128427545140809405233233265234630737485657463651373795061618454985932908895555552102595288551481984868078618739992512681996721803108433327866887791669546299843788558894091007720360743676055705625463232596310422506846562690910316924570961601547767482496719936752232736094887854730215565188863002257977758818206417860384876353408289941829193049386379001586688687088944320548429834044394282766701204123696628520368095581730204140025122448854732729570606806284444789007778898852399904128572619918104650861140810402313500129133772476186118906163648201881012748496990104597412110593784367201389145368773972677543726446489410304390771516255999507840175550974079518385309400258985439923471751968089588995849939189306271557460274598427820328432874773140735104736022735371022589212981560789574067071166319383431410179122382419462769949753515871258549546830426250870190125669299634330665386226016513640598694938846269411695433560354648529223979549739076796205190329501733720702191377231735594921725877623572972200482697848544453154977517537380050121161090769323118643021728215000739325896090664825838135446926837819005892441774200277805718520024118269465446617263963325565135665496655168158933684534887099001723718552379067660747759834990678272426785283972752401974382803626492016549362853950487907904674567924524453659343728784993542535429279727223156104108181221639647449038096351592383479284066540578486212611200890868635774468838182629616799783699531833872407785623027783469534598821653053386586188231016592266739516065363407140637306789428459075759022222669133556514998292396031086972967972433171821135037745253083978561397636794267901038401095783537337586069623291308353810033419508447290502848284245409104150132029123499249834356574134150910923672951750965872250009402563578109029833294731785122454895423974542525414949458695005565917289512819678980448736775194376901402282529919906359299068362370691208894999805368839962787802280707744910480798811021778287531747210789320413733121112900570922643910240017637220283088054359996858381867574814254424129854341509996918942938102435655256863803488506705468884304545548899167233072208705333871907602753801845778136051609629085540153885328503417194074025058902833245511247266054450468073529057771633265889853875031256647831869116199007272647504392898093272365651155855373704872293277966184368661008523309817905728456271447878450485821402471574580804585207414088791555519373738404620547084057569991767275867881623681367929036872791105409630394651019155227088216565395489707689085386740187442327375683629013716910381361395279799749518978260849814653552018381519586970482809503154464392036141099523865825484267849884566214528803865598466404933993183273546696660401402689554262871227222534406464444651998166667226435660592843556821445523371288939351518369915651306936129181752056130087035243735892154351656260769446927695837110152846740439627454855380828621278662984890844833590120462231935486181423986126925904881703839588611380597264111341814205203204790872290299444622096347025007653909965477671285770418512863199342905561796854610030575190364109987751822590494261617435415012453911485654468612274159004616280033683382966781824104696514509462671511873281108690695487338288040947824126838351761575822914712382936773082944569505814291718328668478754751769634620792080162216582161114662950118249994255002815958367813889287773402518559916545947427848567236855452126928290345654651563084005931474225022943684852488487275505696376808508819294019122028550144312719529965570816626043452333704322617316936430290297342995462912939547997827476891935019815912822695110463838771502422590096967546317013024207765305125496683401841379903010878262996374554807689644107294162160947003612598730420085256069581173746705986048102984529753389734618155617291241038876883351438748533660196270282998311288224565279950089258180514911693018155135261414245427499182747653190913178127831725021807541449771597141145268156716773344511620730390652350930189448770688332771865871776503803036831702286927404526312934238959067161698077920969119459122197842540964554766858202427882544674888011646782192380183723164152779617307040079863657265110170510607045012352088544699021347692182631594457290335070333558555723649840280367626334805209476835713931054637525968111754263243252822918864605262447953435454441129655823239145988232559704595329542612094804271575551041862135399964457594053929117709885742071701368369809990573313777090741989404218202828607758172517500846521218728542472668182511611783135883450909537940414944318774907018182804074754889577977769726315411694790984555865577613830713316472941430692182945919391128787240920412343230273811468746550922370268113763028561283223412873598230488868863064769758080348650150253476520839738634420725284070428722547054660758954471943098716957089547262611108263138631351044720935893221567375011826736320362596818577282325168107357420167682217921032707402689642176571942797016454841953526159797119933088242875652844843115315939909744037130300345342815309584442261620283493243972137665846657995604774596881931109143616272190345485214896839868704251936726868674361711050868709630398873358699504724522498866972833742064543298419707884432586797097042669803847123165666198747642057548842175514157195543160769752905308869287959813611457605517987565042685298572102102142133724735873380063279545534524614228701398434933094292360928617321772277899338333689931377025149994199390980335775669737555104018458362303880952123548969716348989372368941815670621665521403208031750304879581243879531655751489993888342367369984802037934868528078860796966345511771131385477639785694490873109721556521584486443083538849843109625703267266770696208882595421626275492687494730169315518418784371060888484139467451671894926403993169375107050085192017461660312200798479411572533744472987875382877906329711530492119533503042348514944736972775163474254556366238318384990590731492145331563093706478420812986102142024883659102800953105028610732644744229007658930815333671679910325495312193933119415391633494944576728557531632000168883087773301823258444724163205990549947085824647098914029492519222300719780646493310264875774489129679160873583532811604259764279968222303768469029318444390499161399720984025994891306223257432712887555625101133941594116646838901965681840392967961010750043385904556052951713155968255854538763124088444917794190785269002907082711984338732180747418912516745503137086932977479703007220808308489672986770967346274360833832132587339886441417153058569535787005350084826075473292751561307555290865857251739021065697854448568948718272672604539251699885375210352933496962842756569252203547616186574158998835872724318399059492453364468134801957755572748554766967182280657129061079027003464103615109450816635755995071377224701434582368971307015691904883083143706975727949119509950694847657554746306596196913565085323301262979192140376092349562876972010908865880263456499271389568238829919599463101538408297210047690559088881590030453939307197483557525769615555234738080327125186513864330519584160038873857244805450827796560119130185317239468379219467814544893184787633087013412315727768290628412346498072751571376971433723488390776437842023087560302052939261972173514207897536002156731947375680367019506685949484015868242280723876050386714140874003392221730290169764759758992481116219453647372224542154239173090657740842301158510922044088618580194051237825054562986135352163580437357092218480879173242876293224728959243856290114794750353803517207255672342482459849773713713051965588232722177061930466408766209061052262392991477179852380085462741911266586323203962205656415597411329680088399760487121125064571324445517491584152875806697431829954315564104206885659259718413216151668154939611717566201476554989887625207240751889056339340436184445866714016198700809340696770087187443465449581412466834584467061834568323198368535956115795807861367340165880028667341502469169597319059516471851063365943318536349477569332782479360759318175585885094205863874873692525650408401139294929031871539486496798080101764776401477889977014936585700202452934925725332132208198061333803771294002102001006905402874108196581702280225178533303901643009817432193296757633264674666511588827435623501628823063653198900937958043930148965045253777173960937998909542148950300866627745768770607951679138777499121491330002253611017867798410229141458189019424813444089780332851349856948551028406230388898863034127638414969431860346165520919870867876727957330815054623383347380485523773376262985389627728538786969140982830263708208264138785506308676389562735915628688712694569071436486064583738482372025249547550358832448876267649784442151933472939690018766945306293094596850993439806313787433022756650289167905713349572150562340231175315672265562440970218916221581906260667370979073706304747044530137074298286859747013634004591529524169255472313458451472726630266748644875584858546733583087809448239388108128890626026601171110808614063404426622548865537497945644589575678132378540530245112000030756657908324928937441765277081778964962729083175003260081131223166902252682115430777547265398643524464207598121935299018325934986210243017902687837172920052024418345052711791421080169270643472254044191717037198745263356638508400737673574384436884469898868651688535629654965157251925349217741011656224835109003121384423526628638188782401980720647881646013979980548373800141502147895347720042802140446346018144795372727233142067136366841979120362919773348256574790012508590632992001861499759744628375033251074964708477435895878021630332391973208664624869240366656814721570066010839807108033341445445492253371405952458979235636354744211468560583103883587500064597704415198077170415518040974885936430898103420361540727149787618450306967773411570071080864418728886815614903213944461856813781747492537254916466872940886555734862504497825393427945297009523511778464669196315540259447919683238702286154248318526019281596887198111460507809487029381301416781426575540897903915276142425561667416597885017296685771309497090275096393751415169700817486983480875977792246533894082513360205152666091229105441827214598343066535828203859855085985251447459263421725871544757710753929490744520646633721684370124407178076365993314269869174570916928807406553144870654390021363229930591127597932447579360984339512959440466504584411233560925955867579182071409397548713189941695049599988059524975729444497082278734859030216130849638546137263497378150769024065585140188282600615977252953011728610707828222366265356593508006072088614801476213697425469486826004495527838810325455736924831932271941911221128880096749449142375387581700061445289826829316256056958248030644912733060369551743295686905395486046249318153395531544335022271652583115779835291451037726944615456086850574264236831281588870332435221246373976154168532237529882235702447413870603019723319205135634774520992570903810951549797283715591745853546516390975362609542268123268638176904962449821765795014664609850407416855416698012503145232833470648775873004046619947690484872332039920630976801970938489048775310175224730724117572878695116693377333589500724758788229129463339461618465630982486707868187127800618222645221403029602380263832916817514609496435901202079913426415428745634087234155275431246154655886943118433694456488700597875052660725523933553696313554038920541940006641079129057658409307474336169797152344489635837020400014398576743350907204628863268127963680707427899752715499583334034480502603531920148153114957706917194026655447034223046498866748849627282138188611381172206477114366958631329567586397005632614279995527181828644560508657222674880252834508189122727832638183405571741765735068510567303380544562292575672290769337820187909593096016459390047151332696896550769195479429533069614460530277901061086782865009981522200100515102050563074139356936318512531574248762339318150303195411366638433015276821623482863956980492540404180642537313775830034993491512132181510337748410150042924870309409065468178183864625489306708767639974210004306027703726189433006409839056785682190717806465368385017385933732465478133505450609694341162464981603388657227177927195298746201015905994406809008513547982139750199651759309829105591746445015071592623079201947494913253390486296067939942816452338627462839804416773464177938927290872129346085500700260715830298940925481339202930573967432962485572111010023762009035992814802054828478836662464251887821605809076639835594087784549555882753280605899814462450889508378627502411659015481832881037333200687202575746288506049026332592064953739709968221340851370104375289205372911603191906937784020641049666049804024843971775295855799372307637283124201296285749942897780515211221863709108029955286997741842371289222893831596981572425917754787467309380068591424292750554418681790136557770807203705488288047377857069822013510151650675474283581637538448235832676958511012363831703601652706963781764157254897572358623230280685289874344773564316353916696285138352173420385419006495915802511700069565581708698617783620747695872679268441626914051836495015683892310826581184931772231720073501285316508854886847375123588059924432522938917138988675022430305094395509351249512324626407344702908486436688557002570092270306848676902268767595403416387603486133518217925425943835902176713083711124874122391888063696509512341189688511663462035406495183993944952751746401203139685977649052995189923137966949316296757720756206468595925272335655265433171630992163888788013116108759052483148015552736602893110016050876821189386174699827629204843788592272359964665939993917601407072276369702771723779446635284769979378229893598848705553985949932186893094319676199900824852823217505894714803815254937137253124306441196876227842605863928989230854741913164797939072287224908509324907192201850192888850706927734987227102083809731394381325383222438523765550816977479953040526330903883159773965917240033374117423836805306517947223199503489618080831772117041045019794062014742149032726597793234834178083600836639620626726980069129316212200663478880571532840306399651643803011139392508059259988126243106872938548751705516665777120167641552253810916443973369419642134632735508100169755016744082763299001857751693782758862110238089723929541253212517921860256680441259758183668403734724344311551124356278502882581714375138891393994904084712886811286438893790090937492936101718326742383171942942313815535158494393953654448479190736328773404523761324362386923645398619619005286431539430263527142782832799885732180385282137963948467136410192606221319792173732009603151792022206336175928878660310678291275818105839431143375811720212128619287037878613900263775669104129673808177283762317500891867638890412470606364682272786603725615579824285467894052254888821413727829330333731996676246239057202580082727936186898028172147629428465688235097657161657791090063546325242835230081649688512486913974977383026986795443415536246664572581449148029185349360893429913602937797147804407248504336915855776912648697800513577373926092730611509993055212862035526854827008868310126063154655378305823952853340427666194585759441007006726797661450901672185828253264188784577221661911662806238220229202524346863905869417363442258245053006140413899944409007818960655319727140343627763021736719963210201296118845379272407009032588771531071678896163367637285419845648957768470258889055326189704152950005683112047171147699251706632538401758235844941091439592115285927938813425794818854481636648768565111315512384008159974738025915444149500314104136818516326574482462750504418719802014333387531961529356142895269791382142215678446351657958734040377880754479573101141624666150880941128893564273374898550547273473526995870528587206695188767212278028786536084501787167128453281347005507834537386099660072919055262799459957395915613250106594072275268794914167332071333415690132796048661783414754446883373783218897525616331735265231191987549594136750321214908172367801805026512159079483440023173292778606306219224274372120671345703897162580904336215148589078218072695930264855175527062329120935466452757455589308337350796459500064722391153194799633501329173904554113000781162559487692699274850143766675401410898906598411911389735715154131862236829561774312019826664351611802303280159114694239461035817316643135796577337010794656430485605105192956748127120541012625785803150805234604070297321905730483259704893804445391168194357650266955599209457692335707737049595035197661707247698333431803858163049265387709768813758294884713676081794436838288257178875400623849846446246083955346633819517657562144047221557376131522886043947263170702945126273119428676037983490585605055513337611722650195298708030307744672428962412804770265406338302530933278049203155811068511879068105425171290031093859990590168551763131625341700634034128544110695733853115738536081168505204857397556653713261036030259945796628748134061028684159720370878217341963636626254562021078123969928869869500010469849575566764121168407465057035722943211748376973054864411977247945404409215364465584001565968557819266117500449900166765903206607750325818059804144396888474272229353983160565437533919848253920917594925597040839414276225991276801691357476794997847558004344376277982473408738361576024068703234180079809190413952042073573416267484125545506361006841125248931203375441259384489546128853065177678922617324779168218418735623534347031124906790599863347751757156610848652565967378887161167518956600463681030416441726062467389413713972703902508791659425693877957159354374386076287378661219032587273668659780123285830807569080200292700749084056539440133405880214275021170588951870795087731112131371469055606072758833536181735295739012963908972274782585556054168438393027260880763761262721535614906863412589537861986893180160585808407753898270407918658667098304751689986388577857906054684433764507312153522963690084911152379306504049533027178035749567878186816742255083245721511024176051975017729148322779645200676248587822688628503908907758467182614610454237185216363918947045459291132845642473438737284247221430630674281292877045244251982034709221242372976131081991156344619113089494353213860778018676921192741500617996418316138562415979202304590808231458757565752084783730552894882674785132916400342712467337898730165617359435274390406331648396884125759239968828673984447271935116164877597022309901200421756336973888637791815055041232107429017425603512883348337271832498179780385498156713824026845827087493726186853786854651117435072789900846019757378806519751214298289285032348474091121952033955547941603553509153118424225645213571611306797779174924544782571651014413852707239415062634372877606745439275994524438348264805940867759096551175750759250636348966291164205275623863648809186756178002604475808935825683688724836210499795622154583531679970616415457794827373095433933950959081818669042700628550406928026919058614853524656206422366231492279431311809829489931788905188475320131421715134539057627729059655484124137223071240788593148852809935403361050799789495799239719783001923402986147591198009488996819201386307156946379508799645150597668839856636976014189399972480899554355298502540873943190821307762913014731412123887122783430490943702380749365628960333503326025393142058382748587648966226211035632813762688500617426314875295933468226625576137655658970963356064583724632376332525135688191820614224570820593966967798098112922633987463582732969129982189822703347374070345026209705625961799017717361642848789432362799423097665464154657566232482352932471567284999462966318622734965632854112147381793883112262576468780417283032327394707981847375381352301935618472801026587374395091771048746012506238496568418745764287079324749634123212337276975425992616743266059896817065104974180285777796268167181866270725056612527340002566283771206505091880722738521459745662432646645809665519736150586027673011998083358620298213316084817030830653841570057792505066895108698067109271016685690601104923228808366577799495262859180289918668418010936142630890928640466603782223945379851336464052984713170087096833192675319912138265457924953573336233857855931072417276824903383492942019028076894838750622243179507833776193395576819012153626936152905564880573312842497569973119647737412876472191473240208930470947045455109727845860612169083924106498289453846728956114701909235765212021199349429938746228464865672159551600169571575297309614864568670028483139222745154006189043727128250116657775722622722407711342188289564123461180387142588352196818922303765870877854807575216362567730356807328207835146691690587141379089996592503338394331663612262492199032670754678222615039074737544832737046398653180434354339741020449386183632570646919225771279010727674033056634350805540511955151221058674987884367126576884774342645625809396174042845374321882333441902102663672079361275158813769760413604059911532683544234225164088557912050830332204277546620772635264945052978446789327020120290779912250197394391174480201433534789856765243885853669314123082323117266278167707463120452573047294602492496296207688727158822090097616854532273169821423109565907979120561763845304873404706182566581861428454211906016768487639681707929544551315994636630898266123150462065513123601062764923321343800348452729702077213765594293950817673453032178275462156227247739091486837874771386152356410292243421004722724943488128576966131424421340824195095210970544635696899210492093089414274904462619462844493172423839317415507440527372996532009261559986218805179120932168502474636722259777586559594702676255933397111711612612003991641021126771535785570646327790411270146492214793462021936159017248670127426474152131483300331300851182444111981084687298340496932052773453316402349034816762936996180681009721721337843886551032970782750814818729393396522337737239841668775515430774638806888262739913089359018165746371765119847996684606855135445891036553258198439482986076537816662205693200926261363520787514095622085643519100160601166320704593311927716095758343297733836437481941408218483635725530450968452278756168290824623048571567686502297049207059740535251473002044993326785093243268918328767496087020085587483972727205041442837255810053807348186463451999469941780236373339833686477426294464012229969960505265542469609135564343389401996336585531316777850258742261669216246877973853506830185980174103696194849102312329347756993788671454069993386225356579424286454985903935016730759620857275436171868757641906672244466981276502676412120048269163515885892106386650569301272608414141807803889773710255191121842079875692636358026255833922475193364137401818583056514606247217363894634646994711845792042188457121054359353590266521862098823972117067157918234403016897763506130131468435434703421126877118185927290869223218616049480603168313509992128767772939972011051949323296531467255740639763213320240412033836243942668348197776094259993487320188474932363471408289361656343004342134237884926630014566425637519170870106041697003784085198500083617023221812276514025634343787935226691439089512367349154804679253655304558887223686941047092311893447438434831542987312915181382369533428907271926139628638095424283872980926405130440759973987974671762329999891749245846867379283359311745163453418794563358429069811286836832800677390031273892936044388530430761464580760443226569551900638712008421200807204018451766168925466438850316876179811348726811530634417007967063340507021171861640323936830883975541557912910464326294451155540341050848940147865691823097428753963804384843127447854708994909053146800979373808797234476097296065170706723779460613253911248887985095499350975641744707413661521451530340330827377397900940474867104115053282253672251243372470069784650621327376373896216884100468903279152849572206460416927984219446219554720872703095154404065255640711840621244141586910902925949647251353369730168012264522762333200527857858957084006888711562471062825780790547233075198891659579819717337820131890040336736397574005949479032560672100127592666038071720866114289846950831922043513498238095013982634541383740813900914037071574290210944449635358165659540120721914533605057728523761155107203249954065359011477406590232203868562190602220508290995459945427221402746245968593118728424782333599263557464348230522100911208174487537207618936319961066620759772959834765769095010049450453603957686000038662760363281414735602021565583285280088472793550501611508979062702830044959344468348843552973374978909049256066163552975646343175576362641415604464421515238286834429991972837182241861148815566611357733156274354033019591155842857813797926753778190613198510747396756914702174646827321409129192597834596384853440944036010267333345628378089936804289354321357899825661207635167735915277814501633879446964236482520726738541843580037251756006785917333565409463457561408329234375137290667812428940340615017883509489904127227053927851738594700053788775836898847257919058148864154327603078564903074617487523548483660953123020734759387544419477648775514234161639079085176226290625107009577089526009391135269930361041794574781908202921011149077686877331198269038261740686316796831583105995060279516260711274568884629847467168830945321017845965741917603716854915500058895441551995258710570235243631492909353795505758933087984359038075364680361244858026322674976915420870901605394604464320396390783444807074132819737667820214322919784790944435087364410138299303677477662771633576334324962706761008217223402041360793517274509916917786068959257523556771679279953601358865772210002108241644159529188699419359041514806672772284800176125893537149016746361654580525411590136392641310228509807646998766663091321070705899847087368976822097596263301307042173239648180475977323847695992102345992075642907149521371849975733406895915621701315358104196063293559379461728354888962719212614992458709147356604320393306130791250695476968737923149882092668595064128092656910744605210595253384483079791205567589204951097992913308011244714221729502675383739392692355549730867011734429959724087188656710341674070087275541450300309783166800723666279561473140442830826757488300101275832899829432251178218156126012666602004479446107170957407775656448929879649406605755176314375422158620496852233418396095692167097425510458495382660405813949900669585426363949078471042378040818023677981455415618670896005660062663780796140493981737216048591228192405929421158909754040895883125041484372092057511981033148507046839739516742811110671226912086649324174398979007107231861440380888032453236471543456919053177859774230633226204664453881951265597350377961542640996538089036413474320267415415640230592992521713391732639017008020976175866233222477328170139897768139485111515651601057697027232917372259813925884534295638402387673354103840507737750029288126271257761099015642593580583736657189019799967871063482909054634395891390140349299586698135771055220533900089497125501804231302520638733202793065824371469337624750083087818869486791175521012568183243665630745735773173681403480743091487215964040424092089285726313411948664064902433494941551810968077275854335444734174156902479378265623535597730780851301030901247194370838587391518472147234823847187535518605474595807095795903381446077444399006170878941442117847587491333142120036282278226290048127491632236767487515921369441622618074509507488443349965862820179545947526714082524746831137998723989364853121220571159180144753282743330345755495179860899707777071227776392740527813995119391057282860812638080319906368877943874009401855042779524041083466145154654050131383430513485846117193142921191921392942653515123733675730089851980317111631627951939905264294027085890977004132740847877271941045578703606496092751189116541141101715399976855958539612755768133994324075082806472145942813635431912886823934407054262180771804690330610944686426571792175967118431287916540344107156819584001300441411307493187803307524116255332156014831559274956449735377985897793905165204752792272330070002435634597461633811156994659961020062578126825588864392956608232679994682551293542177031424541206925033599351393192468650338297010211580891772161163131139115055148652444449700203606213530470157848074621178099292265525323264729509337085154581732548733240234134091925739055214198268349032398917759211814005172660371017812307516146231550615675181973914186737259653814367835156174802979292386847735361853035666594652640554538525164346920366905715811711233537295713543206199975036595768750409008565245238200921473067244097495154819718005969653015409015750274470591273051242243795840233150438697959033403190724004753526220534310416129591677209426802986960709400542141265325163039554086881291752413809374957001894310715009143675348033945333240564115057085133233403178726808966919539176964752231671861458785184625884799569416049061204117510845031643300210754331131201655031437280036172633310607246699242514995868554485128134580247394887124303999920032457157465827885878398276223625213312090946750705099536052611484020846406706130398030338420153268869549511494338887340388778433149042347279852941569734976290066026183409645774199498389046313669002956308063142565787774054217488467530389388016980301353286663595560331000149949380164894660750055950489811594736958151821065622848081008907094658754723362847345621461470520266007267686561828562994011311755565688415063678682269354149388873372744724629397830786275804748927219169425672079312057915691643479385389763673116562390579569248910886209090186392723037070647827151456671419678454875041027297435292300258172668943086933931526563519121898549895357318933486991971643738236674793335521745050922906375514620651419840695739352961119053044966870686746398781637904455500211799162270952050671308395445582090232369904865367073614483073141191258864340306898951205112615443174083750085654885255519590071660172845279006329565809713785260655517994963422385072081007022075428015645939938620441938808618178654569681192004456890603073743901075637676117246659857592633817013488922128730746572007066600889250869735603756603715879843860459211242623508449793744745818576239596996292277072658790313163474020417767901904912400829686754755223455050912321830638100352697238992715827521555874264542429785491263044299386464852012058736803835246240806010611485094599109680552080191944810285645712241757471175975863482604217472464927681469254954594855430824681057693111620875010848643715610226922565162163551371332520710620029353009741299908100334410209590303703819579186249626491689844618300926198672964262794536471873842267032921158510153296943523585955476634710319019630948958890226218746815964731228478643476665388659857228842790108921940779468395506517866706864013599786812315220632840062146122558317449908599105435605094207380801794842154126886723750090133712140518480582424184912462149945798976574431228818680820572111618829759524827076362011892355302308757298057276246802434253124934560758139233776225502285986543413997021716587688890441630915616291820083432864029926452386468694597863338669520507741137560124467975336009288432065413809642439665022075017649233663335727620860617162800507317812619504949473767593499156497206380901266114655288464795323346562794308812272421817886680246663182372168222549589813664516782307315253767518989399208331421452458621061990821127598904323027779552448174854848516709068725423322916644139423930822081076790385477136674746246512087201069451705348939992620766429557252269795133828803349979479636901132270007441589731276299585679867487096340190527949615211169503044270495279019699041737342603102138792315168354087952400530903446383714745869346928250079787061676280907705628859225241005707326908750502072197643500296177496145881181659967551387424411373476991052454797017818483455684197987167219481031898541402244467639606180515580621858092694830109073894448653117671089538711299629297948542647674162998446586994632745040445332587326409804772453966663206145632242175721919253635645152540071666019690345730896758287799493459101887121144275391058335669627520157702150874474714514235557117759362225447249471426953115359264692867794203589242966567074467732252827948930170386534653313526230180694465659291847738341756843183317883124302928312697390875751545149093224848111384404065343634831228252700077394444054550968143878989350050344656524775625255098091118026362371090544819528660492134959917300502407609889926671979418496160732039259294396375936804560874911526486532456514432364972099263225054032778763924584861526138221553135544245863288596424563391628377544603045134143816874551081775920012348466956154562827748956971769259773079927190913159134606915989029621308685593611595471538245696596890502234894083938044554280808022327343082868495804000416270712443514336028462232105892757204711695649838288348421848674533730878948750578195062860200236940778253610850971504981075793392346608241497692761380852639568626171079042597264723456170081912262747673016776182031594428208882135154876441407289797378856907028570875183694076202912699358667689634585762370387164622854690620703748657273423908685411717738922244124038800680305825070937614142689878079390624508634384073689213087880490301278611652901616477429591498930469054793212831297340968534107936505195372427780829092459097357976385906553668499945071087612943027757271089901071525547995191614016501417477262118067949537348552830233926621257119207164498677925845321600853170620608509846460474575709707661375969187609608099867174526387363662069157670386244611251463390599281374160808055321534486938878322607044166207599000452840841076713238126785105035568880354541187456815339133113996395032616422827091910257659939797488240484838749080522197036792363139414086464639672072528926334403560644354452758477199648684949603860148458165490827083981751762607621726913604908626807285966189540128439396736502166272274554823206328392532370086400147745720081003234132480894300595604549185579180007951965841292843424969569489222745339383467806145222261455166257562737420447180461167155369427007670508224701270319653558262999886173718847865134426092915002353882075628358248251755767780021236145814844926136525009916091341273464624637155719672470843631235403465359331085142122054809550110268041093111771843964184959433313646698572361557586667526364490368870286111842437443865947642190336231438207308074300556261688507180434540317600831571110071062626689572442962690500884387371715601615016101684081097779616288389044926440731856619375025212489945008514633279992864017758992558593810487244407594830594667550293215405193108013784623991795735688709848132363715558103153873068962826404212661410992207625076134390821650725901797398294448527814904093694362402474943726389111272086278054686496173360584179474824094547757422299939592683420747745480469896814063721097197879395054136353825759547364804540557661531241567118197340118516298990834614714974822801410097897055507205828790596953061661479391117079586057681305569233162246533790266271979467238908352460132242070871013992149288097619371720002494308544542006147818257018631746683652579310038685520559263783248921015621968379570337206970661325014328994112051262541732479443845001039077432834322384178234025930884172650273120829684762723737037292521647802405887835930913257151830979605532585232031470518364014407108498273013198665853613886175792297636518280427718934102303479410295043537141237617309490635044859498729594425178979358646124640986309041479845155763907611812512465516541184588996283818219935484467528191288322129421222463798024880765353952915100940251275574002703753828277401315054512513213420360300912513241277665147610546179490832806821483475885725583751523645259950545262397056104490403056031252049010141597699198078903721901007675634982220705479689329921792186897611261584102810951675854673702302732767743192388299839683455643199996236233046285143336175733870099205724568244856799669694563819153894397460734732942595221548286863340592133918336363589846054412331395629242145689485085016043178335035272370580111813005915667175416458272602561863172851840989305723279383723573292309738281417099451058506318899786862768394412408623070101894359360169168049442678672494822972630559166143047411028989504814214949099755550061061703603973444560191311617932309573502032139832747886522471054387575242841477143139007028062983752424761588739046925904046928106365745514173602369803549062495650847275163765248209147826003909461675494769065968671865695231391465731029158564400842234394070284530094535152523865091003186903822393488729429260438416518583949542975213070967423353997332144290577349237294287363114313970419434798354606822585196851556377157645261103463975315408424661734339677115309204952295696015090947286329643119791624577749914702721967920613582817375235263566792273278097861799827144604162112111237178212900703834189798474361428733252072004357126389083639498696264585233725654597928532609775536529191169211863775757365539474000312984314003247121107125095624970835337571952956350381274103100558571340678300875339941726744466762689527832296774653954929364170218755013071704568732159847365658692391021334943663671147334224095448118176714554343593412974618960581181773663149244494677416328891460419595130910192437420735836010279582424461516288230802384998566317574079818207430858056009973380670143727914952130814661395167981509294036932367765023810005799855516167440513372946314838079863372049323905552209180254667801452325702618977870782095476815951652098008126065522291884454313025378033120821501420080989477559226916975515516228426177532138280845818177108286409630851563149373011971063109322775159550153810250617931450156820318666445833503256917663849335245196062806305913265118934044703007450858163327788247741933413425945357700711997264436180491660348856751324081677626245210834761632247176238085221233424832114163854156872873632991508831980134062595556143695827046944674983811892147251535111119644179101125532722697089795480802959056445695394042732276668636175149004578447550984676858152677205800956019172282837533102955527742698841430020787944974190494912535058970859815109573185261842679771325320335252088600333918981945808065995856910797122997878268959365711692977381507704706466949038527260549840712083419114322619620080766312633311516734946105149443274171918966853442741990307924501633869012207822517873986645844603116153189984613081340532415734242255785558644683639808323528927927800686787953960681697844692135331813502704833716305853483071567360128206940646011880867970813101915742097997887927876994112746336776749425485852145480415773025769592142095212308213853229369560763920218881880584954697269415644431571803107040552136667391498456802596393736583150095695335979065203809655991798359049783822738654064072891173059587702238018785942149112951378860845384844220696897529024240610111730751907520575445718484510196308233720302146791030755832516192196022680157169479350117614920234389773248896454896647415531182213078551185222612163967947051288850051728020664547517535467769560784595255266065695636856091462419685612714830301125967134571085248250748356824715385843506260385047646284101795186593466298801246931819102609194586864117954444981232179838943971384499863705058565622243947588740586673142666823407112346612969237352533471287115793276923462597832084782856369937689151763000174687824946445593834406475559950571752714362354934564037953752462515065094910945805375316816269370394182976254572121318744704190121851413291577969058899781231426580740857303532556915036818567206502465223789129409630034993640535995705148935781595370811079325091974179080743264006721089502800511162406541298129814316016565823099698778076323680291736558648747547397952431565853710527121992857820698425467821007264086629502050687221562485657827004873254566424509407216805015565748312809160701446135383230649005776147979255790248420002967505096286514860193347597695502367596882625877574611914680324431358721323879355586560530448861468994936923383248300840241225198057576031123478509539676087114812691923633776790294924034323537179782905338126867631664814191819180789407193991253675183519886569192066650964066467999802845249484287987789259655216761228093632631752816919478538173265517587563142976431122015454921316965259056781170919393403743370709381499429187068733153483068019002938135146543308454516566418447143523387556057067951522527037778060795254216632936936333086242197789917993860598994073811978868770902969011878080931831809512131983863309568951261308648048675691489446883843187566554756723580862955617210605544105999602825563754403711642257036097882284357473456340966521537924600194213674934847061268917670864194048052152477812857893246432277269995368469135583431230447241453406273962876332217454065813299408686647925020498082983510129389876953576060319101497704007170509136248206026454137399265099912117342393754356299732405114921699899211106716631625740035762708782392930831721378991315760822156741613171662614857273255669656333123494881907619012493668429198989260034895327652618449013256787490476976800852576593391185736661434623934670816484828573720680098455625296560252240577629341553615590668662696309334730284466588911821783793473094030150803170553920043959594633906319209934312972102190256470188317506488186353311105325030774909854804887638875158695412413500690451820335570360421634154572723128325304848974591588612918633056526538839552903817856035392162125167484576135178600167178888595582996343506266852291261055379715355938979118099544035534066040474777041994598899566320828798454809841435451987625741093391789649799758917491077869702372872265302391794179947935601663166231106057414977957359155168010880866696441250100853045814777624308673089647241572691299110030871615207779796564554202575515484689090939010940864567469558226787800363722948602512605728545740491402488508688850317795103372529547156187966388952200546011086584395377830909371300821249366329555202728964004673486316301513707526581411054392570365835039033377923407290472259435894963923631353397057835395000073952281418298218823035095740660128452464160053552541496367659730091068510126149103171184160658239140316125189157332432635047715435372602224483731107191456235392628920148627148544945203644024772044109662385983463584935704906384875897181794724363228835807529931635649382121501428031950930896813847917034236754868957789637284145602214729453098092566095453019421833066616914716372694710564243245046821238928079760275411374840189312163889451842065805424396182504865320864777714632577033303330851047918076204342179219988040336800091864816126450932300096186925670004504346219494831566934725299507453376016693299337372349633526919611717859195000412712170403812350881556578578025962969066092520690155915884648066772201923233055570284909438040159453960524137764629262148672998346037014867293381292143829202832158561477705068115695911088138046159207306331241502981574591293743027672414269398673338295797095388143659928944963144867259373200947079641957189932257559093502923078187856075967171957690953622930233269879199171390812330131897446359069077767263259618654898866647745496607393461162963860541264576155088096439412050967082177793675273094470575078889120276642109784709134420093229022336256204505433074125009384600121760507766298614004912155966353026563456900481086103258040582822928571283483942795256761552066720024977310326967415464688994091841558621206387812316714722072500637615749568619176732429016580632593371221574109669010200434704629683703201606440558936497542321817574103680699122435609710014844124130833186688779713349390878442411787117461248833753846102805256479104139553569927117372287210737037766763956559998993005688971119257249755024203547693549621633243703493355825284675321837866763760154006342543809041619693110595684599291599048410243237946883417902311095726336726580462822070748325716760165244044065608905729766954696176282410039294934886011918147926142235843578419226717810243453724427710207849504471517488429359376909066142818669295290315391843751327856379246900316325302005157644962753133327597990664326163536821683439661155361280725173033768797384478408939117627204309532006517517737508604073428823337568578563702128757485969632660078836254319326339669812438431061169864620102612772832159184066633611459175120413425058363222912421761910686377688651278301152709525865079239497000514250400053019577868178970907840407707799783699426191024808137948416702422691616276629333551209653555163956586056073436084787362595216420570424013854904664972005510566651027079222517413881979607423526504136477259662284815000468946412956176207427264086982740648920836629574495283259179910299749918909367950549988165487291112226126695397483786159954024900517038926754978425628079229495748439773701418677163039877444369045354235989503916520535322698907079856162813551646290404796377745189086953776114116120300853131434925858225936743144454408018703078427749166248843622227791036571661810489450123403173442456564088983776133355460428662771558029129622816377728254651412598660153813133068469220469960539490743737969687371222342130574089702091962045275245024104221424735179846086051557810845046754883484657503296640297000557538957207952667510220902354265022619895899380249134601697047237647993165522499273635009099700486139706003026123985694640200812340424093299228004719886939663388858882431826532080324569656582744001614337639083382993014789732898631476304557868647196092984080192307830583308448916618094613048356005845687418722906457934737408941633011359067539699116212715227983242369868572020651093691818852043852043321056270841686690443269381517903941933685721374789088933127626760591278893734356841490944754312845516489992528061454905055563567966716963420875829656339664674752130079859744364988753209083933404788624973958222201021887499735431715653674594051695665221227352476127874097639696836673006137598923778093190054289028444011334222678107334026591689771082224139796466849733486707671392085973804793838248908073250181150605127621012890476985312547253305478561235791497182618114259886491223663703025742855627701161301916625284647921233134553599240577293142789616248139675311413959170759087846919152796975593406121482344480840709385928800446822020947733055435649590939909384626216795041217884045122975164311323530933085322530758093285137976607124337538665745715969477385336159167725135327386366529817050267640152520240139237152229031670522895962555191074225088608949248299305055020142883140706406987582508967191634599226182901815529706587556196089388499687770636352381942004819487928940759393711410035273463122146333014336186461282355320238809114795591043653142258239330719806219401301133961726371667682359854324743768716074970424398812554387637486267296249173260579416317830636590413688468983887278494243492110775035479667824723340689564759265556244026258907540470702359811566846625049232921549797724508936365802139069703449117580724097768761583428918755941229983283270032640971842540106078790758830436224474382718757194256596586766912057847354113097256762984101805990346931573819506634454184426037643074769698789001401421071304982454827964481350461076735645972917874102583690984747820770215556656541160163103047562731399827588950503575227396954869262400018075520433811551893078221678581254437305743263195783894839995565462710438187747647717865148295794029995811021505483834684794015437931157981167397389473762818224260039809843451378479981391366950847698802433726358891816470979897217588725274932879698882815687369722041292149608138214377369935736269607468550807886244368806997343582979279322512261447716736936038425838586568874040154099629055321257707775083572463560573617740167111485007887490770492008507947863631819947750883949287165661482192853918915844319988246931275476307754725190378279553562960040832526872557573383900969132928861969203617631629266478331954654611605967920124408394755031528967808159628561290268211911525706509364053438492185030777945733174398059649982593116363939148923249699732555693193768141011045297506119977240571749689317117047589727330663347402790595437172963811322222749598509892009931351200742195247249718679191577820608082204679045130268394961338390926927451943630468989302924128974771539048642262315879523626443247962478280931693910790187621673665830985862536909842189692568194832620524052248324115512119334998445514185018015875466933961809805820090628049289270544936061504812715656490079880355050926461577558034351275619061486527004515762895045756453828108286348353304791769673406252194568837250149450718901793199713713382924838841668476791158401174005121144354561256888479895280744534017938663595313196403504764644604663111799655440100208476167846775475166551302369680694569627844616537892704089004979458199987604010324249124018063011405344863750497555738633050448722026481193501264419470165839736841310951675833493556742502925194504653841067711931055277179466180944212218942320294707827117617792926505331065998688598134230013297467558837129292309176957339613777821590446223518494114931752659941910244495525448180618003107817627146087984261631507637965113364862899538513897684021183389327491931979005496386812746317616344284975454956782936220284327791496846358783595387397505499472442004992247324185599254464508115013424017144141983463863390782145318372528569580053465362559674573309597659773574314146429416139510063772072414526916772805894599676137862609390323884981188132348092339565787395267794700241715612249771339726846383154558469344252296444053414635888794547158653730059559538731387606369777093039144391458932833373566138351295242915649539276059644051035039433606951905440031826669939202021300225714226149908245011017220832525180460150673309808349731294827019623339628651449344384349000558660483253710046316043608928445967929377365168371296411179525807360605224455125655697208243011719400444228445138938135294951546706978669694336311415432695040882855754509269255060660872227691080774528517743511011284790463931993063067361989146869824645165938428866069068744347685511465080907846238098792391070236857992525738021048789559474349479261800052193137189377325571395963312501470698770273211023490048632190354899398884506017659210968354089568888053430035832187499105124994744831109661170907123731644469887913129992670311389960127019241453104190624637399661756697260184006235643219824627142426365980977379093137198360514280328702248264170872192952012377060988838590790550462337155798480628680934813821257431965634990155790755990621818101539591357142035878820075772663471816247167685777778888522879051884833316895611339464910520131508359560770805213209260107278147189670203105428832417133210457575785212947262755763984745680058670314635998928304742908882269309471630053321474346339742107615406781917560534158421528198604612697127035528166690667038264078759688970196510791140333488679792530006738492919890296938815519696635819561860173587345919121241866912099147363684028106499069332168596542588568926029228223417292030114513733249114044194558981889798962704067205743336284139925849955872104417407381882024507977763348368483870734996740869006507469737289573969037845166749342048003810072198421092997263085546890193690109720462394428195075398575023879197510495841212581948419592060879505492082543727426091165965628656267487728953564210737990856006579515948340853736881837795705584815684359011921896034379751453377050715546032210579644858147489589179204027308998314788896708642862123566971821435670870659504394469717464032924490458618191378939392558308286507464223770707971732799579767787406804884086706795057480849087062352938277442771787148258871867394418049555972847093432726070816097922770621989188480749665264809093554011525247584687276911910870339916342468567345104374069863575902204292813357195363657339450809098909280240968027053805761908874263105188881899952633324476388488014931227857296883421304731227272636944574109528403172913434552003553334087447545710621825510565150339003662234022476988417347133770969027303759171111827738673455140015214540964160712134215371965531639670529053141936593000480070951341912833151002810639684329713796048755835767151037151463658482814951351766349411854670426772322584675556319132617767778617571554625017693370528527879609679421059221655647334843054949661244266986001644010052232108761531315064420790374817028093962997917799354712417148528926990621251841596148157336065723542855123153321523017805146058318823288938341487786426200347989084440964157241319995841860932206295327639117836054195197439614054621226944663930457051500860935124612874019277703107275649967358197012417899759217870309113204139593243845644120945817621338501468450756628911893561945848408500646363849304351354235404411050405379934950345461051491279223483871631785759880342158043639850036033332793641255428206302144210540876210151970065696267843508752810140744939707857005460318659547714176973334290866134460338799417448426398478147064154140357569885280686946938957412629560812638891776141602798389934544811031380592729655928456123012135602255160712611961525439954723067135298775314822186531119778657018730910851893166568208391053493422297094183451405309698228287102384522197229362482546122476090116396656100571443004071214357497762449415826760506697480442541960206889390029836164959356226144778118849481705096775382125373123927107900022808923059015694450166194708090003441895819958944426601541628633815950091769734012461288150070926232201291329848665285461421358319587786694608966315055542406021326738325279785778537299601814787959524352529565799907992031485872170567346921212997815009696473600756250400131453977798818541048506679479807168993169221207935077187079207264451594217714813195648647770763036816465194143152742200668924838691319271225872348168603337920580452247885204810996563090095793399308475481262135349078091632118637539135592512245209930633105392960717617275482573752739516188733758922272647616581583253047317599159935551973483570036798438898621037170926719861754196661638985823808730685699729064449292276213058418655193830201382441974329932546905656888769727838428843060533391148550995402076711659864863066562504229441123786232748355260740277844477390198074472263342031344141445949303884164251571904900940810750858523703965674627354901591958803373751800668817222373099175989071011487294945252538623961819310661238939780584256879582949918489334576804248529909193586762481857747698843241113741036320215920501463611986541592483406803344006038556190166069555106183564943476205406889878214364524003767340956500351143504739548813159221796600785264345618165174153592177200617580298094146132662063681242389066292374631136043846884285534604854387674992883406532114595474153510560853659594301929562480652859853074243066660238777478153910563791912080436988557214994163407926610067050149743666257850670362930621159848957527754221830226458853231352234622575641855630638344447647556039246933502286558190319972893703774543076571728509147735873260373644108578800964211986477095473696125390882274618193014106959066975097212098899380719143709471503335917631155539209872672254238570680947623899316599611170781991901395317716258384494593318111176336813005279133289267934401998006607139526377386933941387969745127942813727791364847765987672831772370116620215903468891078008908766748929864255312250184964281020168061804130421007520811253387842803644436979855575730416693586770929569308600603665167890996468453791651316680100958413714896146611075853842936578305664215242764080534425278496617783698939488334336509621149877432715645655236972499092861201888255115369596298650963776511797765242335017571069679397212674167549252814738655349718433787508156303393649719069933966404698486743768119331665602395260971572779657038061313943346672235398675141587093336329568139307125825034025843897435421951883675496069705146205993995551677224043633595608497970693913947663172994606810757912360901948018523328808210329264149488388249014963451214104330012418057328134375096283056720601043694318181981340118281161722579661228246299206491234443923003603202066957391536150493473478688628918102490151150827686313619734155389908362749526796516569963273581962636893304968825629527441519990059822411008360767932117267722284833141332097834706123553681127081731151191420593715792780256983963654623279834592505530594512525428158849297535828564658909641338402628633331808590513348707209281802432578534567040617182995380417140486169842400583844856604040620333693186225067856155929292793595688440706285552602880605509316376702809276444899997225355172204953758998464299894228676124098099255373206670008932370246895376392344956726290706258565091776110678690385873506619137425850925826892867024940956090619026673809210844709069784065092990714029254823803697422682589416677778852544197613378500083623725911302380057516391550677178071648874151358998419150595498532414372939311127059978796082326516882241050524339245777004476107059933686502032771133403691691974464299734002236504491772073240018328829172554498673588504269825588618752747334909360278163908871586923982895989317842900821750265100005326484453001666747887769054252491053812817211916390375498228960500488432839715260731810069569637317282237437499887692822441088284117627690852960935033585588861192740176460450046000699390048062326146994145518952097387997853908635493035813463097561400851073278071191691615924954331263548878639088463289688316174925991429241163903022455405339075088380336307928019930763368469907048148050440824536920931553741249899965425160036301074074371235489002012081920325380023806718498639725184799550780680773398499099179454851099903361528918663145540762148799122285422303689453364131242792436963927539868531042733716303322753589049027826809264320706147842474912521265415217295812029984808332935060630584156245776744904998146858503982348531060956210731035683289802740760227278305968737785555081954247605542533974159791347801194285802876024699950249812637508629669746120838383265931821563511014495504964685112535282824216637906657663995267495304753247366264054395471711565965694465713411507207725269844860904815391308974335719783191791764725921447252339931266908341871667544277611670172497616715923165480831659488365238253424189787778812553202334909704045495105449138768923229802095333678720068733892397143494415240690964612799500272273923469072082153238687297315726983074002516198085987002795412589446388449475292356484444956965212523760410150407101548597426632800720248825466792867394261340106870621684939031020807172860100966151816491332919488729350191057640615664146001173864867543975381775603193255845627774426443597059274641762571875426563180952516085444404636845961453394983070960596877283947233473976048849470366119911408889105742609284849269863383372123515809144542394588864882126845907235958068993254626384391074808315658386389813006758346003642927018335088076133928426460754001540027254590913121295237092301608974698552496589468476221706587468402558814304080839569285705678983948325813562015396035092628636540553903288186047558407900191251023949161505955085835865025796305673427322872371985544525277446611630918904029631089025899225746556054123929133297990001766827349866612793220220514261472482467650928023571695409890817721575041283778244409925420511266700447942334886206770787791016601559034364152275324426640824269822480360490788166820031881853572293116400721957540295334069107263532688591621384216900383584856942863402226964842077343496033422327227063810644348507661810608607211216762876885414482276928208523707124271725140707769451861321930330338303343904248255239337489425197287510257737881814047192215364854790232867034299136473381241271697519281308987942155451922062843042252733971913022516701808710812966940867533991065268488473958988407978492606017429531592494875197932175109702794425583160171754961242042197584258315994642546277642504099934806238444622731581636461042267620691045615190526065867714769619551223454048248742887902982426647488394841510587479364688064184703226547160616641660170420247414909506219106335431052764103729463609074460466237264268581021228327006461738203663646277198761941968578652638791897345154546218504578131915010885295267994364257682707493931677534865636175165484565861423688519262462777428987650438273680345110906511673103034123739205268877967353132489825252927789732684693345995341942027100211676504848943540100274780817861161097451341939972972515824442292640619484097431440881301244302960668164227885619847973082642700196117714547748162002905347745891023214040481014252593556541304134189133360823448493061672838735054574598805003262795969952309665080884330854866385139644921293650180854199521776977808150170450851770717021604261398037584878730302356016991450054157501617483377082025729267300095328825197056402693150553761463799615399748066831957273433004118503689657431542182393400627649371762296709725061488859575270830878956135578666431720049987229995183232985129354530460283909673377530727505544434773069649055580310415816399670365590460817793488294946962839959897122182080791749041927713671392631110257431516223065653489786672754104997592852714674196200642314031690447017370760331700494901518238805942143685258691417344592483287235914707902324333085242346462661630427992614208966075021942020716288747017402022542547487819764663120750966772605571471578511425638035828315233071532231035486923862825259918528980710949905339949136123028792123366679374872233090124848642941796117121285511436951198485936171588133349488231044601175349056192986638297061300249524815534454628113337300588112402764897380385438016978451507160930224771135614980958715027867754757124817064348378585214424543019970914057941949199634749751657020604278554788471619227645422755348465668016955536842018990453567432054148612767571798763847162262369338499148092082757705609820341629349956351156126534248824864395979335430144011784856207031738809817247340434761023114794092720646487428817901491667613883849948565029014056317148155683724860002108112409821855401103021946474171094705390009553110104914565585521248524598650377402328950631062175662387112644554768325223686324651093733491064970066049087104026734722712765112253755519029672292220227028735643094671299383212937759329870940878031346080423443664510146584779690580004611275949706663468030703496785154369381639520707018676373454092582354587317404190630701557798196089207147985826729241432952368685049045252894803271637022466076372953953580195592066853032763041662150717073015935194730350164732010306461398125270533804935616743732141237815996914113757823407653612024243919565450154273250710862055473200075736053490231107733650966332870421785342249414541780010227862930552518813692318162042585332676420620947472953121340819796670351528340596127169220164301228169043119926572982131930243061253278170518032737573983344275066590160927496533229243324914507676895754372598742167681389724728288874292515601220765245695806923572578400594344110279184135739905449623029508835361685543515650188707319110295235644461385452000129026405656694936073103632953773393983578725741555307062755142815224136644187903871795933228221039797130037655790652612563621462984684243058022044426119752836008276438686704357389308015781121615574232106687927962599864289626087991417533895940361327421916733578251104734775474241980430036460319554016001632792365309483327680408836329419317934190327315339157767122807158574458218410119543733221422108707952822915316147827958126984817970110382988419073248541006122821113079387706723172165861676383658714523877342291594107833133389305036214194828497968521516553632398492603440838602718910557557655513462085689288072006509852339626841049396259000713371762262946877637448651823869160275334156684206589249832849923612096774244353060611081049549550568194088878796260437641922854027412203825146955384320757958221165136018737855822839713657493448687925079192399338569593771547974109698475476408387660668987323449540845151230540993732975756107044510876263546548209516904300226479079412421191770766515703935759973262202324604807464153212574253343179282894081954909418866046227113599256570830351261422119751585368545006119248278539818128427571078111657412646211433730703992668908482255586907184689887821747577267672956339734572381802178694260043930817990916635533624385688980647423079469076796580056037262002694430827207362045846579368970206426185467926325789459406636745984925745788569086744700086766356169169179324999513441145172416231275153091428808610004370882220778579519073892775780176038775061446407867288056163276594629962839011713980804404744938250453795994433552890910228443840645746192177861370377453857242957687871094213879741712840928505614931429207282249805059980143759095895956353389058896353396647819731430560993704350953425161337112509108019866878417996789058015272915853337632191738567864062920350578393720289537167391900231310699696852801285398763896169931847641039282565153509607339305607694321038078213763539590041073637620414143710388086514661694273203306805377690128455537035027518579713031570241579955764053517735593029843474315773635828298046856524677698825970153192420839107214320566042961650847851321694721791275818902573032335768299183063889389337114400444832151724070530515378158782831856462743610459440213339022212695164083193343130744947746007157328275843772811894693537069072974786467338716760119092486698738114295879468091207563662282903104571089368232112512433111965497763219270614258255534430145744453483678516802406383446603919437536819449123464436148305397267146759032835848195401864752257741296291276073222106209210412449944039621057221919159088918226397718388762197968200539064077229666087090127128657540476969864228620408409441653808946165361292936355362461373011983123780485639269252748965422913688004907675524653355126580316978305584912309012172972037080985229758923858741569858139272965926108840886821880890203426793677504914601039108263363267630942894914686631993119406948729133653003257295606779178195915235616851798341899650822823736868188633159441768238990872329632054950514148502036245452512093714994771353626401492206460423701334352533574396990817311476189857304954092497074037675530588926484807840934936868261787184643428816447186331527015520418589144519770546507371923040527136555918946848224184785137503952971164743945295007679321628881820217058668507976632347916271407838914864135681713777483085525769310345257610262642095351375299233932696759459020291702607888321164292349896099822278862701143618407774602381385472240968946081292589598100097914651747509538649174312070912149206859213262752259580612793943416395060197782007102368003470973267396735695665366988131823751748416546150191717831160042835344523547448775602919230471332529326423143591542869207630543801338384035195726798861543297838566021858519424925936111221721976222490616327029575896176869692616220938623316235588387711058319442122134140643603543431871864740720428799030581291685357824053284898664643320401516041515744542912627226774311895760340374470429530074077705420561816203664123933370314282351947080922944932439073959305038865617395612607455128935516458195252174935157785510941039415752848098671631319439439468578563208222990589826194708096502725680382745954891973724287940214863073530149816227703052755544982850959820202030979438558210800344041843473399606587619860815412342061603925052937967973722115640578683738959430272498187994777887247802563349765540807205387842226850311353603877549497733329874508838218062675782853662799796935318352303029452952104156488766096974794083864912562188848642421431448624758199209947446548546376566092513637624332122716970147012628714973023385893064846772155447722053639233016379446050899986354571697732590303095619707090016786978092758092174587126845309272838216371867052955242643712797670949385012613392783185782571928608305216469186706231875984486223652537405446090093382781744673292363044735670204592898553009874302721527948271902570502390851394809056235388809925150747918073161721730513549735952280138915452539611852157574113737197989729701814253501710967875513793143185618980830860627982742810842746590162887629202636226702817162624182802458611945672029321859242608069818607880579100138196842419107790535666717840306266158450975279037074709479755332152118499286557842807900997282818516086892465378436312989586147286893891220268239622785688036135333879342546002402752483557047349320463829365151786216868627809966007553492915914710245363278502861345044630969682781316276267470056546098037881094485890394839467367202702871216279034842971922983192394827529662649921241016531206484053791583927428639995960469131757780840075834698074460900514305333513378022143302641635041376577060375130308841596139518953203525327280144916018161918223509595933688995164021491061057500660759689861052938071531887979870780496601646176548209819594241666132905674772043392581821965329894427005392508620951476194316658724488967374748962174228414257720183613182392048816355620890723296207240437774154270443831308919684230840262344104248957127367524988372024151662762647273905007106194733967830320349780626993510169892810655607654568388432942166657882608428008625763933043014578686642166993087791967495030086610529341242705909555451991274489717395797608324852968975573864360518029868622994769094936464495593780633109515505749267142786797590732164716912778187187054795881603349379231164964822707691337378222059625079255703897749572598426470129245307612867569771978787457979437035370926278081651948853015503144349004252530093691014770224671588913064596796131967785543963083336904221296244596504227779861852032965848719657889226241149645987183693053300120220201981223229417542333430589808994209846304574779055287977494196296101215300780475594609402028841729853899339055371284910513837570637739543825755333845156330822671763018785082980298441229765302690067159824526737282537764259903386663244028263038672071845380082805799942604770670203459207020403706708378707918354535520020596633114715827236219296186488460018854341821940020561251525923340031231165361582467737795393589623016988575819804072977802616186726281006997420052903228410652624176603636541520852495550399553652090337125636121377406636142989380449458428049980791809164546246043759099391541235282902501365141514097928592178131877760193356739520860557762773447933674145273215907728323904285549177376996707071138047788698886529048653893814975249053999573056224458039020440760103953438431140244314942990032721844698273522713196537373503331061197826123527592827349789246147088478525400291191161268030561974069884201940207944521478654644100043170332817745355482552025726597455500851279145154897459203645583382339859014369266009180538701740400745738032575377754018328222637002107574281359598849388614239720834607956648075326734708335102478822400899494203380976112046792659491713822203321131756201479390251626512965973691780638582102941184047398585443912978372130473079545326811620800291838489984952632106635306872563079448096082220173696450641659118669863303518769977241591159086459422565187466651620364664663013993785983112433589267881728439758552824646764978813880322355539722639424656029076590060663116604331257255269372550228864799136672988356137814226998483306421719134242054047948462205982397247370792714541193104000023193453342669650092653738468691319256460481972939402228527084706977875139462511703952560904453416531371248989462841601022424001142307519691188747286247154192052964815018315181493623417911372866477884942575648495745822345243360079133160283303520287037047624622539748246270421988458017333080020456288504261296988595937051041677621421315376455211916556250816013075090375197813162384881524287778053036532199850742874505956054549186368462867078021936479475352944403924694842029219999006613655432082182706722751526434755033049513521200880462236898558139302136427025710192707032864357075078470727084814804225232253017325007690930664684357919389635263002828808142843531878205994376987460763281000738187168670431543693018147065629629878504787919616806407710835428953768016094456681645610562477745302711043418667380312626498053600144488430819488828519870919440336075904822776304190454379017142915739116002317168254220666256207870849793956580851630740152040934048611329576497564959853565203579899961400005160592433782009308772396480963106590538641215944359492750153061398524931801178097043910605866376045315094724728828635477906840620465746338732993249007123491881574724305108506336538374482369479742590223327308327138969260956808602412362749278176669673555764446151433244809827356149031069585236639139419848623170551161274936907671013586341809928325857366987745973991654622300894547459018871272498450177994465304849894476977718868643940108865183633345421793847101574886106612606973666477671284613143234720791225067073220935306660133822629585893114756530051702907650670406973059001867538036396256322415942090622718568889658398073071515477297412675760189507507122932896824670856362008331141618101685218875860236831943906559783503147594891918764164146464202648220360918688630700682956064324312582567869556257154706179895268984377253192873368255311564837944845453915311908124262458715363868362799892350665497589346026711956310965350204170990077915677815260618901983847386635252784574217416023191697382841458804416532492401435595300367338118280385673188597361360168882793636178739077456537305257236993812101114649545622990726775422772429618662158138732820839467724807754862037054606993378405771854186560882036064443611808415622819015015655323355987522630686951739778694337829680198867936437054752597852129464541205774967756990567030547176002767902213957668399182130610028098072746043039496612126402928416270967656771790911344201364886207901449575098197550860625127888396331237156947994421906531772971967198274327910592368447205992095112147033072930784351274241314741364139313814356152950982075393593813405683892065600352854193968860247327670261823732488576219301746097435986518549719940533054301118052010127200500925342849848639433300200690004890651286499279637419136532733151941651357444156373127036783133666693332979108406268400072553516220223149506758287288185230633763995211937100069413562413229273985741786508386483668620123062331944680453987712893084828561158301486329583693862791361111629659932909484663173664990061910312836245257659961536319964862663842520762967015224892034897421864089487299242038664225582356906082699057466142454950708394794916544935746040520418998944050834509322563018938439089823377228000694146009736000358235514586372466226938363285446861226053619215564123841046357880649164078589167577992188335843257123824605048366612642606333389494891529790531642980533454041826495276488137589631300469826563912048489844227630347794015029618965605120088704752211824187809583061834781937653575991359536181015659548056546583432381314220083983633860204577260873199115789954161234581002063762646349151855519404160602260348556922941832941691824546231116175788145984065355543234702715005964320058504910493027618084020150077189780535131846847218682367736616541468021457154276344077812339784512968506769312454714192696902822608538764230911236104806597861593340338424721319979526671217508259114963075870205171894911733544762039371612561956601049066540063970972545492982018236948216114051093858028837582665619509044160800187300125192726797977453658904993431389356110222478986671310799759816324879302619846953259319074608042306621120197060017709587309678063579863760121220400281510154229938110584716124131839695184301001496263501119177194952065994888845968668784580081625830587844050254694178278093251382519473344095028550702925268651426213593831714034276213601019762959355013006063095592449481808957905340951631998046437342444628329387655507144072110041862665745881057853802133648286902915633795243249276003096961690613335355129111520796545054736905676255962012576582667842727570834637099143258328795462436741347969358297923341681600892757021084856251819704555248925442216321984989493164467961716297771457630750820702194934771051733874475246422732568117987421000151011573012015750876958995964861135833809552440761990452446549815536029502960878685059488882742808487735530779785247194490314065610006259913246656356196137018144122934550358453421818230348132751061472055221208557694150701582073072205681266548045344406256232129852571986181060821311123177895015610126242503741110542747568018644588185330405115968214248374238107368220692830410506851553768536148178254222375110936555788320592179529567957890830428839966736621233629984200135026259912529453634002132339944558225669312569671812390904211864225183973647139993738934186937259561264759756828915458368859970921940489840345029304575438589333824292378827612918050408965687437785524276969258638367204831836233673029074730879510509399980715450922287689843934757681234997000663783358163791696431266830640631960513491820541860323582683376560781909817109691480270318926492422806059336881273245924341633329065580414783986126970511953823598191358174492930464578445708432977160111608637156521394412790655915457434248095729656962615261883925564522190743700242203150578436384940188631148360911920146084739720964359971500929770493507518514925802087929307310522395343398072957920436356982745766165311693534312983207776288566191524673854021279368394460209781035433619045627532944885180026732093815379975941343050049386581091560828745495989466167718462370272654172561559475067234655240196261344108669949174865971130828399972328201576346280050992571227459766568385552735900472613470929587354399690874311440013510802358662670503238287343011110268688527663216212305264240684811216329013326158049203675547606119999936972888058410392523638600729284418754224197246152218308872010084782142466001720721095357729176003049297068196069150983815710134238043623465299984357423924412576028868533863295997800355120157319124434559537459808046173243236441256295555958907510820357949412214624957689302285172813895036602896798001176675620765739343357514903221748519238154176505085294807149377403889846738312784322842857117781487003024738885665589663730072884613600506397632181345109743946865273977103459617171926247402221208111456398038759131038710836855986825437157963286208849194905910519056652749734763566971773050408224090673174864834045727004737802344479342777969218680611188044952455708249469083770654539417713721377592529822563234924030783326542256324975294111428076394563964999264621528026642246122194897494446477562824783040481155066672453262656316774908849677591754700092290955618532824732531169913914584032758697831443414101257429511263438326584328932163134152534111334727973283850909648615354412630274987240842209448433345317344643281571195329711869392757653184024543786104038772492406529871315276939676601907687487065184319741944926748977081809532205236576804607933468722158942750942029741239693925784179466231834628025988410255917563457707880825149080519252456359078757793493262980125960228986240438203568879761082941312821155533087886050411065304752983131977677758551752100029143465880022821760518467301445574778238858193904213910043390912810037145457062299054947139525906070171536242611089837811866709386702357068099916892549057860067354549338679511212867331044501034523511943725204229184343593695289366268766913130616455432473246529232460947115594878746174018481018734892402515073370531838099168246348202654926282025731631104011911620029866420215871503223643723012076260949936767652163983602219820288570775319359113519773426136211612817889431094446084628140047841369445571563896284672964910111863848355472595438978743493600303676237928711490427350557069955295972126505784000017183802131420037041636830685998116069192702110562344722051394770975951959781057847126756547046827022685158491696170816962160016825228095280821682694428587325976874708117575691328303228648889514783642480316398614251504707095361211217386016968024144990711650815672635553798797389187250768970245873507463510105168965841730469517999684315632222025770124290033908109937183840689169950122384828901399704248900075600090328916169978388686980737216775529506025201493193964513029685925798223384218401260011210706539495628157043022056718802377650140212673933374515623341927536789393394291747769651407761532028271160842803569109332706656618982522024746803729631234517784131551066249866619582366152532908432849288537801149007530418254201621846328653748713697659492921759589547096125533051750393071945670107341067404624788861212988462212765143236020303058793899854759095032133799858871916664342035618457025661414855050793206230059023285930756484346440281280604127725993246464045521077202203753863689708727482544151734943668658887513380496578164119191640767050957560399294601862207904556128237609400749298309335927076326004655322720635319450651851739422133120239637682119145375612147207595322666017670389298996358065502232946042430167061711882308901496672004736055468433910122506354213558177734626688816203547188818834454032039270163207363962874673033207397154750126296933476723651626664428869332170249404986502856022838931288270577506816186091652793562965159234030555801095124643508225161920014288334113004646962920038974054536817642707958176673804128815125798449868078934139910256981914729798546757456070896469153443118064792351367880294509699214707488099388072038936268141704625439435416183913487652727526366411341048229737115833689726883251224548169153992199571945750859408867448331212282148904042265234057786645471116100415569094466502600607007061855448776839913772044532191417860613201478796383202911391327010619489743494456506220309990192962812176892900302565716376748170987815874146640821282235005662723455753685040919290818548686027789712430263353919552563338107521244593795642998147390493144703590095595500616493673618253761182519874272910850212300048944024039736124253756451705633607245182001060888307456595985570097117037470895877887606436107241591860499604234296386875594841860626939121706417519561235141758498334751049199578143902911698114472941077945322157398910821937110109174451887649751716520132398307373809141648189059322829421961518568323816017595350923534802124123712179335752015713053665482179757990084811525303967246701158332528212366291472994329775472256459130987101952137185412260622629869410190398416872717861878588526700240624680912936954961377943146578094879240756464372260273717268025681423218299023409088628849672915859463468379628860921954841627659688964906565201742876244188623698348979623355724956549868270113659674071041552313519610705839516373432684458475987861530099857890224218271915587584353328950333687724237047515524061697971800007940311912961327619071034888266003256857953739858313861532743041563038590131015068888280628032947725336030489836589155928266757234669138813796768684994295601664830023658718803729129558794267104776177498370107851145286536791476933584210315900469142638949922958823116709186401831098392770459482008137196498999455079343441992419987270759618749333260283297377913955975775960127888671894510136874079647611184794838785333975102245905219504217792417068441741691670922088488388417749634001082748281241683857581253165160940075578049951114972980410201607234226852126410926790294211666591077902298631385397548513705144102539120050582332431614366166103475207278077040619987083464520604407855956309508986939744394916268200152118341723243488376079815622840492954638471867825649617374395426798428204326049169951148711712518930525455509433862528759262180538738138132495148056350861606026844580385538689519275038168764328874820457154766777989602230347704925161365006894646481410124260727830131186652970954954804430137123571858042007699598720494900444232084155810257957358116174375348337780718127736597539253060238928581364630016059754970113620856241990124984269242214620343726833217756840615035443382927127549166659619712645659595960702993345162316135404259471164539881337321065312784184064337030454109647099678612545463890342965375014171775969622156845963271605809215760653809546269555096221367472564269692810615260703967175767640974186967921512187394923325853997429262897176364081532014961813126939676648828812960097008639222497346464144576046622925745439085002012122746721514534466220978350812924114080547443418009935073011360739543885345445014171862779288688173152086476863509834912350742886576542429598996489168105801694993525712973359038080651188616853737086946237452830050606957885856552613878351462064286569693599441751497080997913003892977204145920303458382875046387725762354195019711760099236454309315432604604913407249549531609306991820965646116314461779792615410270021733368154770638574183876950750091803914136626303644716762267498594341015043356107719988494118352306665888374400064534656210077348433859273069975381463059180618575679374753213636845591514971112260351351509212641796476562192379376390301943051084743550498723196577564528998761056511503988735620024075336802082268621119879774614332562518742247726417539587264099171318063812911209283650340473895977665074630180596220176433752071012299672030374972283817590620306606523809163116874598948322613659863171515803610544873162046667569949377542193760868247608730213323886744319246543302737838162578891503592636114659634795613620967086444387018772803889388538533745980648753121894433616254063323036956499684325064596059749933759894777564771569090054914539012231835110342675455180759446724377172273895308809258688379084486702412334054210656168022956395853293021750415719984569019827414391688994140499398182467159114535333819713373217143194875477605804294486928400544072995863552704023954064368856785825413557309700799307608774740796631851957318080170378455124051094508221017406350919417720194148394036259341821318494673365540892156651332346276132624285416782928811843319249160452888094570468325801035146444314386308611554029568939651732141841296929012496908452988512888458627023190885450820879132731401209331259026162715070960742918090082384824467458774782575346160950757198562481684571292707458337086839661762583514805676221370764668062076020662783955552954690788615378554226917701377681862588628484548689962567980857895319568997993783608846111726119226022619784779552209391597980888499051967071396978818713843636881374227206890220736202954802447132179371126187989391859062571480549009986989173827814064219643385929015162846395810529618710351912112102822501944426345039821789619331581854927400522123296209758212340781947983803233533503227809199761867480073573668220772834282185153055602349502556310573804793898347141192726247450266550910318110021519095575906932016564384133406143983588922144570296011193997740439676147994107442176274001135417502066375637142523974623311250438044726603306801040583483557094820303882039192562132344912595072849599493315800390414244042308414972511430302524640580379099385255286274116961410427723931658850104693688194294463941777821387745862194102006320783493803784398116878772696598332567829754783702726031361386738655210627711671519904357268520704893593590440037916746453449586355252506149861566681654908275280573182503325034890568014530592155626130911460456538628653659148056866331702058210557223659395859695639452927751447825231917549917767010308167778424279696719857249995833545173944097321020287110310477154500283396272879933055805070342450123583185747790316240402933148023212765589424373583219544633936397914845327194136274795111845243654102645820958514274519379861793436432680881804446158301614665857006257455269739505412782565870750371509618446132454635296767400225092686009754607264649988524425323982298321046219261912227928350065363007801030507861826906642440553884247566526852637460833168563445476658478779239205912487893734267404196546105301320721996859799495199288307953255533443708455876078197799371676988627020167093020659210180289312747299732320023337841838124087449682362662271370748511374494524594809098580123945316037599080284649298116969669018626002943643529127350396259593513165034287333671741339356090824053140744436417019754891463319430611410516007226977581727576429918532311972554504281628405997577597694631931258541148688886685967651799751414674372731284735202123565323329801407119181465629552862677209027169569679699604805471201252484854627589952327227075300245071195525104675128982926954076839645407287993159447388814892801866984662903754559447134674277281302799962615187273889326966312020595423402182538973476375759982923121838722614705938881021325560734727406164548874238724212117542014006000902930585535434639558624631284530830107557612349550368118127516531032820724419524438260095444472862384958655738302582993165756171401905938275378084996491427853028315071577162496365984204706054652405202842970256705281055291562051329741622777087713522512435986168586807705194805461535707676148733144946916581701013354545396594123448897722037029668153680453104186362164719592453586789665823941062714350349527739429233776761718449565524877673666402666730956150571431962803437472615366905658538174836661680564144583156839522992644093370815118131800384680280952807550026057458814833237907442655586832668542876145957605849868683226217474592971312347884258649267337738381187415111186479639232985329595214299592733517127728852808206104836743441485464604918129570003468856608671670920779454499620169108669549808536064732312089191284209949990614023987551140782451010407469656795116979492123658632481702566909174162689597144254827323856057541833699474389768374559730247627162560425621563736571824357444090629779745625551365828850771654973282009361520035663375759506324287360959729448225434152148074050850826112014357089016859299988383474226678892134275072880693512694348429935514123700446590824942024347487780707998377784406414100433278789790515735963817482161032962293155454854257403675381723618036609911129010706429299747963840695333850626657456445406347869707307353435155976490506502183022286089181358226372975259119521688594279662639314875313827179445231285515159244697336820284938196489451296821936003698525036097411668363440585512620841182650014028605992409508122229986600937357843078424167763467590773995529677393151738577056369517201748041931465301155083999728088565460588099065764365754797554067511226090423163622150018734215716825111809788523108853409538057052322773102547294326293103951036792434663608578562393585467376555987157596251769416431550809087858696586040342025203913903227620412303125444050045881247459323818195938223802999252671540013079886925536461987189590367473276986789061793253216750401839081850263239164034026592378620567014430976472245977022132917368131648722487349551141578446386566361940652865582174780162415093185868969441220616052734496887825043193241279500428262319209259380846317858758434855348115468505160098187784242382174658523843885238099068372496887414920796676255211798136110027218632657388943797477000395196590328229048515434429112758578865022238699882274918979199116715426178038843025773650254473663694256032067504591837063613645589374710166195804398804155854349062476818922229526413036231362330301429196052873903793382782117007152708012700149771964262377499167317610769848616006958617262539270643644105787509656040383937444142076303365719204892402256318516695332877266303664684130216367354706240276624807734385635097100844958783347964058481915175373422042259352904609750744459165919997711237843802758731288745300503519814542324083457181860517609657142557985128582251126294774501815450401276181734546662262740858181635860241231573127781887946693679251802151686308527104021081146007958926161939320082856789928458512393451425362324760746425564111802223042281460536928958391300237889429130874037507891952234997714965507349723357259880139265768472352307172535305962368386776886746884163756006791192746119184860665507061313339601653497565422125520412956253184385359547164053864492646404162596652082222932227914415930576479312965549217912852221335140575860970083346450746370097302942907124060302336272079536972132927308065552626462459973788580262299212124440915217214299325927697925430151472724334371706347495707144958537011114985685873242161133668415762177010263674262603671261057871328191924633453751489119997929302800908794314720729443226402769954609154896424568422393234050535168278174905965760472438098323846526392128105647327442517195266719960904296468314255017133297766975203488697119889404434148470280197342277289372699077851360764091557222034561368654681882009160486943930801478484074058662341828274758698124270243338273591630765571795552069004464960180947601121243309670208325124526350422248046192556996761763614876824257990405393157399805373372287625731673790372594060013171509106293782323424936195226176730041809071946786704718787205150396978036077965319528805610898805402406434009138513108221469540374603700621944460232319725727635656148388490219573179813940975968855723872616544985248308526930379078131415608190609890714223788219023266322752961792168767224277761125850249803137252534107641650443506035685929082636813456128615481233418073948389603645319856579601332152731062559391241859938585565258082645163177835810065910825895613418352621006239545705466479989311842087485297968382819400610465390803662728521572478589324504017350112366096593301581699881090620419614563487046802936645544113735939096441060307104658366156526914219997128946306305856236981854074486464025852963259291047195207444750258697622173980088916596356214513455394263914292441746165208453345583609593169858096094259659745700102568390301499525053853039279618381125696768873419887887728130267674335278031276919257163804078688185630429727049684648747364761096307237544489747374182822287602930405184374618251509036274220711240492358681206844610788794865184998642805645303937116680838876675347059889197418813369831493894444553134386445814699690378297854746267937882600514524900503519776930904322248612308492840240514749505046646718209730553507711100623725719742216625970218453671079701577099299882041023987838912985055725628937911631830080076576624517646000335358809587843291693073634897103259105699787305434329642127864906207395078777574066996807803879687858856567250573299998591071467317184677921353988437355255518907099458212168532841951962164019244743366078404956322126242171958200884427229131551068933446338748553892614765153585570499361391001963220170489011803684294367526450302858250534986046629484868566551838228526184114376773794276471761676629285139884369871403232485958603152962037360976206543586412724889985117651963065369373483897558577641495395702464010627274509412724144325385269764640921740955278241837076735901612363523104122274418124670216837063947467871543192253118811526430830800275893057650712628068596731157944490010587085098216383189670812724032807069966220844678024529315740175118796852223581000825258614457769648940284826666874697320071274188237920067516698544931777003168181222543762950429564995549851400951269519297171611723822584853501965442255534531833116449800186340361751486064186750389863225276307964714839179287200448496194358705704064266980431914672758940447380477277350705255056254580415339463508825737398857876382448470220141447372711112431030074805272863786078642065050608697995001237291219275439057476300066859530304677239977008790433995400929520264495319648723926912528832173035804301833342674382577848228666585324388251865740208928227319338943430569613199428693518492554734191983187853863580189192303536848611161468663894378733111639083968448034271161949794301581300541184279728040196282648342957182254283949931513820134868360503877939422169383272020004696240635763724490196597798574079139032128097660390494421649868422797561306225302965969901517150703627527962140657728048704902993939455791600367659297417183608617068727337679814204623204614983059033288347147273203078660816027218966228071008571022555357486850788058617669952225381166626063525188314996654991190676660637320518411803677952767901510798381149721961622359427343413611507443353867271751208339331551765333776733076216398047715816275080013176103667271677891606926136130951108574748451086307981816198764236747041722300325193419242625724428845063573610129036334791303230930515651510521369918886196159900454486338920709050253692142875723377524841080568266543439797274473058514563364181201009783704769957446201755040062422152844362208355974571604509044131189988121338045080919348494995619568539246881044894754941848895353512866577748526767876364289117311302825629461816307729708320037077783537960662339983391137848904363519488199813994296416587788948050293127849374626273272270922921355530677328777894412434324102780149345512964137560283706813834658353866666467223815851930057067955018822426665482269220927190949020553364731177042562387490509660122214754882841288628680985082650550620519475046611882667046013985361165016026397216971164015837712430121297689977347659370378004928762905605734616337073855345596078976221426675481169677133633513594746402760824896441766285152482228860631551036028134211955993530934982393890111199857029581154002429976585988270183503839546419614945170634983045061207877335530999385284758079078280803506915113789617325720965092945787492300858545783126270857407884337586473148747521285573429808507888002048178381035587927815949170656674429600975841877758971782420604351859709095312925432744803579445706459523573945430701114249233211411523002067271755483763066149992186739313246592764746269397016129691220854471336546337509123751582673479041567628365446987511891094581653164922873138383329355113519390351114515441561928860111771557864751569798492643415454701537608502554510582398405506347683616581168555840322904161243468639820368547182639486953252250401586134806168725345677319375937149482732427236662299129949276820995593874107675060094495718717596798289577419784636397383927537662246957078313265876656868623344234620057809435154223764924108271938993284069182498736969842793861655436776500881887712445260028081673647193959349273229948798041211687411798157608889893158844054476427270031013866238272876387113478856497207828797523441239805474765044272630487130954327293122651645380732913481909557799459560728590199991598333644430281526592873283785234748080948660577401445022404189782300132289326175768037799112885874454645700098249807172101194137667383568734197429924964851243663511203848369492038181457221806742394267655791443019725704092264995110273582079335389112634191557725024898780396041169147779078795065798477080172359297532086396462972205114607388824547467645369981660005973780998305207801282005247041325851392057536275365218596809510288694925452963228680187343138617196796700991662531723595272359179408699491938488474462198594640597937308316142576183299262235037249197917696230182085000002167776545323400238852226364508835252039087014173540408042211731823702431067127447158809882618862292680605650870979816568704151985938783766370777329097711503868718430475701462355038793908720004514759450575601657782098664719332532482794536791101954477183731600464208032441148885597436006688406344285573429490663439819095912549438618842689257812090999272096672778945244069709503128932540510022527348258402382492387023462271087301401687231386791215557584109535182516524318965846133926742489207661921683893539830046267859602117517412758388005277293663618082705553101858547804249858949140092667346602790779283270945619654989553609224435287456454603703988594946779436214812012840464530394521910189783204757252555983960774551421554490484428176721048750641157726671897324661331982632681469658569897685922682357765322262931184665955092072045175873771528482015292868387906194560155409189378954733023538693965428644722553309758131203183978454753467709158437453772680255584202427907750039466254991771159987926864078035418740179209168716012719940925469324075220763945497442424088307869526843917986638028939581631128805615911496960419320210878059646700368442571662772126383324294241430521621234376790750570735479646143237878192593691319160551946496985754354780155669058897817494045239696208852507076934421567841184349626180338408955000316060631216496391439949789575258716730799909306827650025881655197965102900800842142212456299113388276997761414162871571427015894417275586867864073293660563808324701237052158692476124981172037109887833167677103477663585328291173255982619652329644203764260616490002781082926396115088068830592664827315639816748017475931816133814006492525190518534269718651611888786221266296108628771058204511741128643913525970387927599141994125612169188558779240400315919875085962456004779705970404710742765736131231853239816350333541524706901090170486552971983936358166767167185009007846146536281951883174746672881868901741340227093145995326541070229429857689701366835416256875749720782349481596655978230177499251401672450002485740637635920909150617880840962355790514260429661761847601683756727453498692626041787826079852357854435118784053002874836901211603370540962796023056269891678347481248063804675766155409468440960481425394957501369569001046729402562620209344978823036968435706056894085743965890015487860822447369566444821356020076762638842635297708231072087556759663263926841560118068018721129963830892921944526870733182346064904195934484192371932867960579207465625690148296319224125033809345977084489281816802325122142499101905218203869676482995104093819773389877130704564070152606412330090075876228603729999260510467209317940219548342690031299290522111488133492072370941439928757631363114429944444937601381335023349312564765869576040257855414204957429622287834363922795235397706629551519700629570332905344968775867070422595639405525665073180178792668551495951444089113723134095884876629995042138386650688616731371394777449978445690124386154901468227065787528728624181221988561755983607929435887120968943355774595497913558605312451510096961288164372113108545616827856906935607472270806103984723093154428056798489164703514485461640182948817114892684903507878909806178611558171919350149754983514981880489531418440012946614018055730348632527313610614885161409542411078022726880850959075502559084776285633687367832314154089935185092582780771046666812906193283670833186866523152614700929809730742249169932961782652086505811962821376325324688726922108919912160361468860169245538111769675753575764578920603706812318504025232837166746732058293458120809672601539086441232498484257421810558940393252234906527008059404865845625097569088528154217597750877976622693974477209073931053498055892374242617930395476728655333315554210100317119321496903867751579474248431798488615222839545552041482802209919711463845649923034119894374368239783520702887571088346558977371860880139681920588209328475645806849220636376913110218702960870914267704854892060093945315130130682232794273379145348740681979915590328679601482378936570796778422508354311566777745198402577573781420013122041799140782959073859452035865120844082635087992077160009526476421220840535341782058829565477249319461090957866471327340387469077725621865377865843353128242051831227167079882207132665362102041575221559308237345591568881958399224644854744921320702341790821008409949420005361794677209537002419862091772074461306245063152288351821478755473559793632241832641381799388458959730309218946618277912962062707771312850488240875998363444329913747393688094590351776092761976126983701510878678088156425684034442574421109817444609777774013176021861056403940069920633744795962710392764097576569211163107109200822692937259924512548522445780906142469963205437754073817234966911312335858475408442717824874618298388304539772747742156688416419280395874268555474957565294552184029308766355315957784776628271784808487026111755060159534505462469936429403613145048416349577384572732526405930137980818828443248890694951360166815829124014941943307738058475201047461465372538642977465072127073538667661674260054416150621808630917643933758978915285760783104874803267999027517622450975392573565417222500917177871202460941920537078007807737134175673149141835732477712499138856243250361427486913062346160396222705987444502371995965495530619378234682976333703395287322427321707129285603987887485493465654500454391001494430088727303678279551225345497081414436463035575824095315894857660583014806213530109950791885269029641196626454874248259346517649376607705252906423641702749587213035763417500333221836980290506345335338323225892640633315724255897336678396269783220605529754391646533982154318555348656841152369400009357950783388801650030787801076278427896591952925003794985632060062046712724598053837631594583894673020318273742446788619816004124634549189307729443461020799337761740319497957453129843178658862004013420527430889600496844972108900539805461743795170568806562057951882027222405234293224301435102084759321172887948413579949922602019953883891362333837482201245297853866181713180292859661569097335789825948024110985263864690483177996072829708557134529645748490402631744869562660559849322083066309612535863686164039235212451484643323663821155346177155330091547100355174042388175541038767349091512770245434384328984883914724937013404241434047655488182312249152316528479966977169340536846394360100013100904695242146025886790363278865253420120577698026874058307000774779367746900356166010320714363742982978968562491858278811385968876675849329670057347375229291887582691686171747024166608274959154872092170227352625149957022714017838397618310308293402969012258258661873905716207467805849995024924565554976468635684382009428903882024506871684190205967308460084587223659778667930145684832365117602110955349593687350919771787514449564206927472717378978963292597521008773867989033989062441215881421238692161318053964425140629356609334892154752523706934278585504985842549873740885831458905016999588922379947023802063779627151381538104892260847760260597064280455045694199464765960464042385469904961784590928364392272278998720966389232134615987308324716250332214110214736487377950783170710793336668157246097221574036179881566121920591035394587553489515625553443473656864139618434841954904091487182039752259070535427060998180250195076639375283340628549565327794533907410108908090295343436247490141221476232637178636621600860066645771338482272742485251349212868521061468864346719553256776051486666567650696298108616980802016907704582789349002409861439407002097533264949152740578256185003575118333311179704934443687779558936165242141306472520605203297889234976550897362200420096243498163642717535678109194953830255865087888514816495945489517462397984426737683497695050723090688218755053425120983498071961005578559954484788407783692580922797267508959640345252512844305644375992635789216482443252272298976353063451370721815136976388089920107259273597133643990474988389608219407618459652701580193920446165280251220882789498028241548164093169591126590005806736340381037183943582047623101544588517979593598661258920701918152915024634401138051687833072009130805416991208629578085405222721591893808650843529719459083608577922441662399476869061524611646969435067807397538064039732900128837298581019280875748810467933243369111184969197007998001664334036893848744084671974988461136398899855847712459899319203262276251259360451412037987678467745890247361211699377655281528945207160198771476108610809159975252667115471779762571415272330897792620584958584162402759057644650171974115999163802574512670760446401978302030669610905747025746307555679990173192478172233628129194442414160808538694986216944374395867023858819478097069330218166525488101091704480423510105728786944742806461449151332724841340008548395670087168941566467575500358970288326861734493547035446010014817662596072652102109778025698390912483541871645065398853280654282450284424047859012012969801516577897657320218673724350699069299722214598441440968294362840672034886968792384794189361828405129674137944369027595159524493628080251704111463318945103257346912411870725003800284855924019898971034641243011834182732388961765592972024178819667887584114186658099930146842297014557716450054350310360611377218298323948979282897890927784760127124831364001011239141969873464277464968131084213019013349863574553256705077091062254222711221422405271624917925443347009673988356372743531469718785905002396076175837021837866120218722296502592728806393624186635428733213612964376724726462640479864152962746398881568723805562349291716622494932033710973685914428028374872226954455396825632978079395461884308011085720452661157430942818423214230879458088523848059257547287441658718542521645709429387098655523688546750741182862313372401030189551564517928342997435655724443276035769023417687863244756767437141716772729129577262892451328532595004292782135948735327090085297792726157369272090074612810082703383803840016991400288847630041740146684710641573923122971498302464680046085057314995140889101469601683302935860497869811672352127385993091724460352552326622874593792445632734008128945407437909169709042905878261298717519030441485190729315900274157346920257915622663850820205155928111387326924839020583340126660917762025646654822400563452653825296605382085892247870595392590390616405582029422897284207824684554893779933164107557502263138302170095887915233145124257542630795985477527793384164285916455098820763164033626485489070088626693776888426878834846809680046086864456172180920307496341794637940591634716892126232131826028035214232155077562181018659762250349805400473334694654583962765205366360026506311355373478111225945981589464278747276955622084175517820987484661135683965737858310853241413422784471793442931245522726892477060976896398681488560961842163814540032734352466708587808092852517789490142132012693505292564377428349006915862885492554252942207073639817686017320809594573047300268298562506080865553620705323299348958444209075420606331280306341415811101360300366488753686910902174965996771311459276246563709634671299915963951339413147456355474978000782279455080758723446458552041958244487952388520722737386894191941441753249731467522470926402220807774312450836188589602116321799843031587334759787352704273379165126288073118975597689026325587399290220446238255911837397682779542465719076655576389407617317936830019218880339715398384544977727978525127910380140622446467800068221270268889952297218908881005723198308034590184463776762064005078897142686103186764913314217491118543469258359652153219908533068739575646393780852896068449959775884872850518590688789218574204345813192050229953438368795535147812649796375834158021531437334259354709381731400596412869311020785607511706840333681928919309562300969861890655259686706462361619547518510618714431004769865527427913099480604135184475783294303076615068391321944526774876945972969996408903653712271286346272039659378256586410085430287297666347133079440229348086629472429766663736878049054911657936627832173063635211825346405169949973283965253267059999368960055137713519079906245991701989767238722696373580366818198423691166047097558289752868568621173859764755743977585016069630507190688228581412475909406187219378268914535658528845556216740864458826972389723681135376696718824558121846811771110516051867281607249943969843133265974456434886130855424668465648381857020259611511927987240130723891895299323526794489142983249559247613690069692176683962298277419422089035078313452414249031990166073730862937043269097381875563262470873347802873519800324016042424135303478875559500276006394479414949767104871950788713260630403201892437239333388115837714108715674070408036221756215797882731547283481079724179329051114505211980170023828894957622763104426156806956759757684645966745429116936100318315771650245354536884835583618345684707463762254120632648225200652004159211822388585549214156038948113310623388846775358414730294714056195036944435424968009231649000032465121184551810186629266156840216227373265923460220163498429140293417408888621241850162736033205427707252559823089478209271691707215296742177537958135780973725449877232729539885090966775294705105412599168390953263922262674256580976913580209246055717151605395129328132968906705029804991164541439799797655177747993198851803222655168390335053348618205610426086845819611645981254417830518974740694832444374192723119622449720390500705683975257593050859170910440932476008133470567259455282537375163681060700536617655141018571549294652773575815471723651804362735011951447335975184639359670939333094362866093443368512538615598898930156569275140772287563467598423426902217018344907195978809925487077518063504894644977272140256755151835627351390126168352809503762060913992329934200952567704957057081102382007419292288744216704909774972575421672475479163987775459215971683584358137402586217467139439923853381902728164747194826866617096493254157996798019055658726185902147529967563872351086836230118054952970280297276359863285300733901497835197938003203781821136435043446869136322089160935738639828565651202266963311976037475029545921633940833072473440195091161547160306447987181139747808590438070581253861267457874854475477709462431874168095583323375245095111863804248852478145675259622720417660054693665904365784542211882513008468462743200680971965571112857806361284497316196522107680487256965304020747330389698792647579915840153707812782511580638515822758739993734371659021794068524287292273531365445017687268998190893029383730186113130193985866542498189273229052388465366370346168448843233940849657973419881517295719755015353597620641159902612715331502011852342862546178786231247146739412517436432444168838110062157903032480102736972176396593310979596236003800590776801871295968296337035233732871570743773592325666175570407509034910603265800916465794963498808392797718866844944813045078733642729444657788263677058128771098923013323048905342646948217810557541803531684865987251692745778268540431486059741211870884171992673377671076827729138560290456089046974097694940448625267852515669447120234271938736897568021828573399061533052895534520057911352546905389506380240126210657455909972693748641120813286474453418543975493556670254419552280488090905651530556383411783708784541914311077855984767161304385124584481748455786504666044108362837979594768397557618578635468240150048720518109406641184885701549471478967178861076534032018936481516869243327227881089976212126358171909890053777491210556505654383991762019414901044312573738185223614404045479457506428182878638202584476134866285410687849601005753160117894474886027028930185344966939778740469690155595176007614608932994744411614640531177331567468720703515835082405393717410585196803894455568428373666607140910818993076473477311956319606373396398067963053734379856016576157963002094416861441196618911090047344589949264813102619112984248790775471162594121237012692536750136420456743502073061668498768414845688812093407574122178150004732340012919652709435492380977577513318880488157292324007066385271385040667537762411051187218323817943872288068032494250867095681657305901214645164683850022548189602679870126585394820165208587446916328482178770144600632365954574131700022266965848340824740147888467561494270928568971933523873607361598869484502122904572315205908255275158692080094779541100225304862585219135247320598647691811861503667827080142278276907383676985050022076977162010053531630693268154279852074849928197117918080580005207689587927294277607031949367133770442571323606235185343472733368551090971808226443057268528013794288579125316467126872646865913825947195728870673530279570426097783562259276332002181927286848423837857888795885795443886505101904994361707145781174064093964694820817532091452396514221744210718760793258326894446690096503577265573676575366357092779616445342773642169858599864399676270666650952117600320996574423224366012525630936777378603226124393840613201818252833737828865678044235123738931728383634147371911828324350174660704775716496852736030817999916439601315390095948015697181530971459300259370373430261067108119120571759105618607931824472923120083750680127411778128777186009033287690555641197051834893432255115947212505633342956583930464429128767760736529865618041355294148557189634774273792413566926570608559188949478125215207910950731559936962553390797306377920266077071322557615663442856535315056632278793203640303452525844044447842207447926561272892061388997761463725138160982040059189527102185874541129394655487913558945878004864186633393689512371245295148231507887772016529234862154450116816880292309517567170222854895701685835989211864040998652501945929189967490711858230662155761471483853726362508036515895085079729507055424862918196682461592630474333426338026248672380520526919297555965316779918753959197669349935321413423951532938641841955796309496477914023871791728096860679299663475061061615369450093369107053538310927155648821990468443890751152806265984392416314170964202876989175027354517829034721350450495221188373333797286934671059094391206637485803791935492561927571087626669814854889027675186973972409847952099818879688574086362200311265053900034471024665661379554640221229766648259015481323984685697964725859075235722220298777073714373369759706164205407006179301177823498530177918426519745109988405198823418642804683309958656433590193235104753391033474815816591973626954067701508671304230257181104822592192755658340739868119399759955546273400531496767616105852875575603101372272613800398216412915366710184157689765456565518008550648132715521845870296128027941205745129011975485848971731389910617832679970661171562479080149120688248490334584760361533824774363922130781911259404667110174951313001693529533413287911116771611347795076171432672502442284667083224254377610580354466086411809271657186462956043315003281072109457181774633269219601872032312436268539459707839587509252216417156375869204254660482793369026733558244764082326393347814793905976190649176244623174513644242174891679000264244628426713140742092462563252316327434509274825140199207326650101264939041565280156877833184374464684786538862552042178835188808751247452259516027963062348455532367909004049114291724267629074718804553210815920834281758615845338028700135067494115786268168489544258083825071031725842902586318461445769786672122476314859862967870089571349580503250203194443382160025380763003736308517688887959927443164951261020824376053700398280424322605020000010016399830653598115506178040322141311906107945955098021230316421800072117629756675173561746386242665833506143952367895324155783911390484626735764197153151559688711169075721273246451763827913418903184091557556395367402793233598747157076419947661134555631180135710101006763760755149601630719950772092488440399514737358348460886734446866976091453362189309397943081336867089274614885322177128174399089025596751752916661690302242182531225435626678059277075297030595520624755275388569904632369912081412094421747610036670166209281001110494702553094799379130835599998963536304176117520459381997481705541363685506445236951766801616188457734959444767511776219099308502564644980601559584356596463942470592236337896383590574255496076471859956025026080504182266004302692685898203986162898736189439242524829239895059968555798601209307687537382409107399528208196476917909599326935917187453989476954513740158937916005529460127190076178561837313897689174162497663211065751804315900444242708668045331778225766454637874016147925722404826680261822748801619053619257292798624720622683706587232856043839839040106575944641063970587007541663718248422910542848636448005444496391324704274323352920877799445582666500425011864539485878471000616338938715171607434932818563818152852967682895377233772569957952530488524743163500162135939384149353486680654884773017082253292870978530488677812920629244691809083169645226933325141880682111096680924057266081638429168684476179448272716442281350366082060961534302684320895440920099816957066184596308557556995302256342441406648900684474738632448016465920599259481036921467115393157133354460221485761691752212847981181107900853804496449135223577538574723803596885003736286699558511135344513444274006500021416720488002940788216133363465491203587517891956663961715087602666841233467762926069986151177833570368961098091663769367410577196764147657048430017632638547930602648639854836968463566792655394699288400450482611146824462806861159620986377481617616390860339110888033750722487319557855014772186423753827069910798642115310065854312493457876637014660236890072304732970247086752497857980081019313013935610338878052721379483795499053107661725560697017984082168625185406430281197393225842714440777232588470203812663848975738901873865159045491345354161480867560046560338431968942617198822549785180589817136118896756731197122325289513293940714965023184647784559033965326093029092615268221372880916870394775398382802439347504461598779175908504470636620261824574395604216681164972381285491043536957238482546641684831940472482685681213515703681655471130979412578222435105621002172673886988029283172112018847882342412427014298205314482255844336020060088538827303714149873038769811422749190290064440150319923223588676921175037211612745885996758226886408818915219932598761357006297605694719774610828147251894270363662819612824076452433534318718369185889483202369344028746070486987390338339218903816233977983537758034162427064334359057500305805830203900556928655316161339177898862509532842645661537439262397068289033916894838340625273201205249018552315383162102980443079550575553703728415340952290377058381627260093271014044231435133086915826430371611950378315251443159602070875266371245702570750518659918560355471049762498221256928665204061494235315246938560308755596414116735730761501218648560593106684607383512121138535625959065968311493512777502832888251249603681330131862474320352344235547930433663724497611721957582285425619255000676820925702148729391180360384384198876440486058757889064935797573384438755143008267721549131519751214497405049762620944194384944252129219358880952038382388063378077422909592554552903392625334658172909289276853497674550136255860548420001327367827431170314028980315604708013409996374100998283455131114834594411563813940659354771590245833535594790507522643544026797417996024408911053766763722492904833610617302596102163939776210684413400714981436099595647420541611521946647097879450254139289180510257999871454069685938239958457104407569527007584182251857580344333945446359131512084126262921261149489284746940699337239372232597452147674593441949954751355461337642773528454479071313328235998888297324861570461468426212484998081926353127300644935930768886166860775605652128529199829493369707977351188146319585972058575054757527779222957777465045620072792974056120736651190305450597244060355615936402326134104600038263011671172751205466262623311673226604868062286238970372400153270738366339934693730699442287357214483475028817060709359375669909421651171423296961476842484461407889935946740875360342225968744759602067727919524606076078069952937553074869419175290918522498731223323725430739515320312474905600485783126342048513623574113612046042243549642863414261563794205657736470268493314386801430706071029202876600268303544293087223137994861400684102475583756443098674370465757434801352899575459742576145903672599933869198666623586157822254380718630780544134093835239898657983494167336508751886669325282722347414444359650959630354174595365142700210506148129136057435741470820223439419349173515981594203839289047296199646715038950236054832380906135474619247045651065908290893530749851564444024468132713597895435796525038899910751231971362716971099529041490519591309592909666555155725787075357470100847218144425639033445846797801114530203249676214744117204868170300143053811956321778228165225094465252620012290533624732338719336753603347055100691428648345614151120047149119249073102717935759649581863235763751931080991336933817352948472325432545550093578694622517334508174012102996128635788028249396102163029200476090351095238505588169821432018297440342645537519787171606960105993996065462494729747032004971479759985910586619520396861862211706490417556831733402509586214694092328446675929839262787642341834173322776398868366815926151032290247009038420292283793748849218722651049136273184177464222978289120405498124874278952217054061885140217969481221615952576608828585697058476754090175026778566943665642709624432446483452204223519598233210563029790133321150963742425575087140117796722923101605963807913756699633741923061884267178395961727373027854904757548728009463340709189571307961282308621636437658732117616093695828119119096098499927834693973061577206070347337156639154868220704531128996622367156282821721940175386827220002086065263088410059765068970347593378191708544306528959404385570322523192833297713619794768604828559951188262310308364074339227317544730144562736350266096003047319325717523941899246868593416432722059471958964462884619488874229505983348703055318776377738182188034299314757361002397893629112566348595367340503194280984068325246296209303636955814177145710584011893629295183473351729793588554940255444069043071787204845609242192757510837943119368958546621129299077259456508607379362674104309528222297755958246344214991299474511057402948326594785613800048119030820455502239853129395000956424724007408451845589312679545947212715269382435118734301699730070308570691096328770481953093754273268998978281144857726969053105782849280878660320702365067265594776601715549300828387301149983468553169325631364377578340550621950140242255806678281474250347451905619082503759220835510519355088612383969703450647891281678254759494961069791246270845100838460290564969495549859293618730674563591942450331644120100095598646823737916229454715823150068620860176526289208473346032433580367091278337178868910998135874833272756008128371266553898142378773277859691306073436360811792225532043983059880772659959186568253005095167935285138031858514753772404544838398489610763202451765489553158534856033509061630217318937014461995714285682167155532917197981276277035145350449275008732759174512859064942683249457808819550099637261111413750240916144199618888820429786154567524473973535495818889088752125221866790105077295405234590217306637400182917328765452496360372240443177571228340536698191290780495838745062824365509229333331997119548222703187035187769506792091290659473589324527475807329532503219396057414139589741578410718868580912731894486379921087302868493291158773544375856864891485551364528276324034606076586892264534949003609846238004756900666172651332428062593496489503704868784495760676065255102057409303322050876167310547623630678451094016883680931890991995029120264607732563484525336340348956208999804937961343095552747352754157080147586626030700123759273868762682863527695633709058564365924804953752888986749710791064270008569069136555358957327620881675943748548958957472266024497673092028666380314304730904612208373435922968385720678404087062929474627038044798018240568547652339656124212441805770730935117574369525510129175930831166999552743173098214513054344932141579867344966725789248643301063393351554695308115712412057752239519202715875893460609859925177796592226572465207935981249495535737871074378692512614558758024847211379451008102962032593676742526459944985713735249983576052178949785508062518832805449774954815631710592840353757467647293736981191795272269501761796947175978400641028526913232359933006011642028415923899016049646163883088220325158954845504021962669689178268193313449119164791392145468636352282652804855479776374318907908001425683561416660971753378293947764074017436403894411974516176632376443222098655530041847920224105276423004534365251337634126072349036480602017458244393159761553571239334582439714342152011893709382949895498362462624282662571913262399875827585718845652323628375002286218383149566097157045734835688148604627504245364308236789166680269344724946710743205959818421179158845431266435802372457160084805792830488622538639980745529053030615697990882267014132874089822245131878674422714539096234426609291242134894520422550606134603976300875182971212260831015760022114723624884390516154297011842261896719738704563787211970715703270599138163125329588944758603982908973653596914247849052060308291071705286973726526718131261037094148420688621813445768891680203420671826988440019686387886604280662624370413827822871549936285403594658998786754371969427578622868103761771947321167964257335660233180405258353286097558317744992643254082658094242559928056413482726728529235941414691309261424872952912588902803987196561702237374855325906398847663583680628505103167144955209413088954077557178218175007145974395770843039802572086795639626978864722293576780470967509358243794875802501043305872301578164893295413623231797085943817644360808206359138185783160905961753534762460362309556643551670269182019420142508899964609528337606352473555448296385608122192902089577955509693769737662144446723227622021260775108549548380636128378870331490902249852837824183281863431830751848201551866137790427842163548443669310965844905883432016442155733990791692021752006520404042148594970654728012871630369652536528699152574240398423078731553983874812577716793809930360247701908636455306435073376782668096340749298702738063506941252282612852757287758428557146735525453323488929382959370231970723471862665625367101810264512798963692137396776681625856329047410378503057333822155421361895795180436639724557440312343345377683546896080630171313618989928418517839759342719372165347037912675705236385579507903109391473173636185186151263151618255284061710674050639279890418324812016755527396932746471687326448831020926401860796598977199109941082984084388062022264629469581122234530302517402949704150003842415344310423290710561225929795694341519329734573526407469855391967413642295286876537642807395540846182704418784417788699925317700637288072005896092385596451853182845052295714178202716827638143003896846383382453004175481027550445079146723075776698432280132372080232141043249000132574733090623847614490352954067720822087186404427602417456892058617163025134030748890751443117029766301271118947793043922707773320388721942347625213592352490526379587155799096581936903730718850962531798429097987242296301359004277709360562740281605642398709452122108571790256504099029205413746678874218558804679253426573839493085449722583385910074013275299521427398073957617243175850882751832921943771745223199058424950782493124434918528689625783824728607178752102680999220801360423812432542156764350503961462571390059320946498476458596100147774512513255108817782331155723782028060819685388124639040261103174964620015554246745899160529427634628532711220348991414122833480027825380831408776497972123017624206359098771490573307436822780040422170719447545972040797380967693473079734793825700824174578025022996951086460317025883370950917392682519317970475216060851929364528279469873413373355461393102098711868805560112077577805677246345094350352350459701170205816819602081531505179466323706572274191024359683499520380662478425893461176104855673632616765606731850807587872966633201180170300753989268625081832885359063184215730835274166428521604752486437949939695441803456116462155448562169181881441690112883484516254860867960990930694051291597983731161171647167071744785585185622202902575411148666923114488989314046785304229444858061069019142084075604695360881139297319121097654080073073644388533653099255254130278853073208522558823352658357587523457055938391529006490445678749251326249923064978152428397199649801394292233586931825283586951614193750117210258484191077632528486475874975090527281380852206728589729308282035702830644689927417119289892592382540181823936954420756896718661737790315553536061958152543578823466465130419242014347432793164908173479675531999040105237047313927964308844082727476478906521830375881195617126133950820847593282124314781745890173750661668733396353195935068722420566655926189089000954462988356855471193403426141000695476802837190989242319754859190624497119264650930377120360291415170705703810435739017695461636059621324993343164678149226491040906519875280726851541792666566496795101372372469985336358083199449470065791080616465566167626729246950156785964676324823889776090048037332115353401528986236789015073727930142067113868456392790681697722259990787555281351690723058261708841043329837985425865484539686577408276555673236879907086815390040355982375878121175881794177698342275058936815274605645071364261476241984996879207629314457858714226688728526805548871128638088422808929574325489310055399448803776452299898426909740985028695787906307012857135478782828323045783882244086485627009265817069921563522162598163242202351455207740418103139817347161629531970155776883617485005563407387518938211383225294573469785749982445469451199580465027970869625039620750000904876881747520363265609748614800813351398938346755309302566038775343999619261714000226104829092922097417943267764755622397229030625318645375356226374881010694567511840629437276406065370694287471216699368337624534999684666794043136001082306594801652784688679916037153913620901955051474589679667338424656379426451192059084813251541670620388113581668311734028423309713230968971760672875950071699315946439591367028604498332280493681981806033795758975652763197044892501347426546145683931651084497352357282410255296897098918105266606838109192430282981593943759590020139262542784589849662880202620054029566587283267273354847705741086133844161364385009259702662458083614626459605925204836738693938532946551935621399878379054613280295125623348463742933273602777623392083044863521438032375134921580834628914830597173548476158260667020751508014623688203116476901759563462741396173839914226767292697472967368130573288067648914614023751196187704576689351431660432335062514339417900717290054933516542018991595778725388684654569251190045414153145233977421132738939170880601927621519374208875215923718578126842576720524567555677073800054140694536789931131463841622596607334931039614913692869165665358209704658044921846999527910014305975195626075788765598760256892579183619430935087845497132601668763594405112626472090125404768583886405409360599989831639688207548506432044900807411238219727685054441048381918194387331255552150000496878641961035899247358598056933972195863332019415847552133257683259813651420705145007524807820246166028569233586177593015304939777383042038470886443006631872689179597138841912220660132817987524672214809807498524213631117819239766411973660727261028620335877356857137690993871819624787100938880591030246231938770468417697273343155513118060058523165135666604499508917215676862403712277706890023921778580393023602262629284435660792653345133339357956680549666251826197869681257633065003654590564902926040908878148612765270667703892971995415890304912482148388227772458891749157327206015531740794543309548680514635816087168576903760611294413394887802452016084335207289991231934964619884654018693156216476289076413519404596628086617748188174832445242010473032885433091849413608171579453476310858506264938119618943586550994895943625132455700761408974556577451890691614224302079783517884059535104166664494256891369460732844487268438645692027353996348388215690296225793073721905777470369897265931206452871954786945384311473888856538621238488878801305859045478008344221799187076968579396734833095400067412893235649452147727742457654167187468779788855268993811798759987825371065791452200504862599193548683943359408255921907349875705308540868472381157944900000537656871159262067763660052684922249780737023713084508087733623528377339680957992845101003858493125759477163686067874223557568663800507766525748553879029512276926761036132826435574770640661764401343359155619160533946574558266295162360574104623611693158240006189539029148718763705592905260953411312907945209599350549289985300088498698643918584162768891923322116690701145077778359742056691840968736601720274634538159964520432453087696095323722582606603825027055626099363296424414759824217135936005539288836533214699223562812895032663005151515406142192105059363789935208714359240926568955668259490115460315764626187256755711909571756532219184539666529618846325215642274503223362134231769297706612710261281225406842124058894794049157973903293303246579981619128090338863954762539532710723941989894843653099953585230046953659714864918371474623251837247035509593690145080544924092000425525595309764317384261138810896850376249459088798002514749283742130817245174875618316864879511845741896151507783135039239981203657804205946218172965482811849438198063237449532357001602186455783812582797154737074408651251784630660914514792376404318271926327838530309195036239684388169946119916583972673930582214260704245283031661386226403881621748303366067846456353134426928178079896494979476910665879171251624964638969631858255114994204652175055428431169409440261311737423499161953737603519833262420841467271802743044693723522849679992645460854422164853370142061057334067230412122780353420341342205639875844969418176990543397387606187092796955779449789506790805965752349158971182195180956509617258644168843793511808243215024019856091598961564712375938431531591638765316662707628851411042710800534063227378300451408680755965150818662369504457060205448776855425790498813153887501262306223639853767779752777650355752536018952606220155083884183969074731024216709433818176351263381036545312065552074678359372962534147233492187891145235626023254760822287871812040259065459117583003107548809499781944864376544328153913383563066518664692931921565486124036269423291299353104290762213863806178353022139692063318676074495265563725946737384773018728134635563005305308066163710685729464527675653134497145764434509304423851995792363212780223148748698527885002862349833078917998759764822616072786196809670013063834392851298150771991311104009206928299001663237762117571069074186260852603572495353502429205411433214624006399322847356996853240928625791585133887201078272588383481070021670844216761741899357756637504953010893879097985031628330341732757729520728832132019569873771736864514576387587258234619144073697438543030425929801412017050953290529112943744002957742991791501757271130435558639922305807894612424928060834452080583151540999772785304262116693391536315784033912896529437460900246188317802429229841765206366353363729366908604459111900119062117852485257371915719596835194735455031516795913645842235685999728907994705947840917315466967167594301960207883895981162969419906286012626223784140279558314411600572707199625718164983729668634886835980142638829644881932162258152102177703217980659399453678232189707875566750314627111748302978237270748264921594694078216525751375723167571585578542330298495525095358647379302351014458873801157076874154475972262195972883602446879992200463186719031239514655414664263185703935565830032478542678593847927308861407173747098100155875902423751986516230647448193451802986713780477925181491671951792424828680441965013186930790754341688132874720014957774679033441824354130184836383535842907304739216703700456638415765051041820765269599162595677109280837746445625937911163764916343956328735821845873793867662694964787794452303310567394678280684320189586336604539934217334251637469358304677808323385039270334478648862273335702734166315120114233247439704737831185142309350469562183233865858248894938924164702497390739443350524407474135957136306132086200936814626749238185153424049063183971083850538439000412450683376906105812444285641717862675080899019336974438517816973453115451477961620616140017249482925061808227209605009774477336963381457076924345340149493484828069015101927309681987739126496248200829799968040384355806782746942764433956151816930461417268096323292978446582423584503774683113604383486995248367579979888325002951566881282615590891211145507384463555938029022893719808007060608582570472393841656521411621844819672358220071315501239464162900086597869312344686568454700864816374040368732506755360569192595960955722386820785556441147394121190640744462493566967689221920488371212833590126069502893891817476060076424617424484119817750186595115721358742152956534191490080838315141891002858066447499835191098677391544918577148979460626508871668787306273825950652698704151344206101762057923570314594502600359315941879827996524229770012211073362386835922445856322296069580959404910311834764272889867039593477073832728724735680811958011810598439492155234037526013020801724673121914104504199709385037045978111005112234928580093481702607201527986746740644939267346005291830389272575108332052660187441155050219446466070265150897392784668806666974510505464404394229002347677021617082175829797899448162338943967385218289515166089841978079126848588010992785827427790595993654607169754037245259192332618925894137083494633419554176900455843121577730199272310923798713705828119800215166666935730861308799466914349341933720277040485611470976003631183653087342798985499849036721002367004559451093290730672656871004423892563133067656898010659245119251643637847722072877283484926618897758147414734297638774179563936267739196404818987815101714181787901323335511407493538819430742541442572602618829635339622689591974007426254902538420381106822296579145124524366887392169526687460798705768159981854970907638436265843014508107512819884588409423202717612711255653833980123771940758776694796205312768762633245012323881955553709580852516640018926296878826669674957437222873618245854712526522644265347395510544786585177989137072431792864823810443577267566158325747157184747041453484520578823308353037209016000356323756945276707490088518256850905551815244311123730828196226585201372330710898763457988643586320102968423191388515162978977600104989915827886420538673922035572286256270227439573141047857069807089359745440502265895373454615804364009884821377192055293730440274655081540602713625245611270031502691592840146788160442583635589271932882802690159896402633343580615955153070614317595403278689071355905005128241525535220052275847652724955938453834128054768820084126427696468092817117207388659023758423954867485077621179596473701092297160666309957861846763880801502201834165043751208856443544426187767993805516424629863589937409528360807249137324596739519036090761299606084782039432079412232046418540454211990065847911462753749041838387852672814632177363307640613842262840307382182011636775510302869302742297368094973661042376871602442677909465999816492131196594891708596672236445282333398209552799579507294515660990046029799701955875294644118440383166897779609843084550673353207496051926577645977089381515840305755091434030494182865129483009914504185025246963182758146379258484612614459597918309145589817665201574476610482949699093381367277058559494320414199463272290591929258853673440774674958555430393795566781860909247589512513816978254100873913731322516936726637778604210780290625316787336280979077346230836332273246429570403641778598905295087908082088512037334183964211418516424028080646072256208001950737404326186032652525678912358366491578669177770012455630930242603003427615211620537331162590833800087534399927967077389573155793109620023525088239129641438126277989814017092514569414041012360700612831265732584217326557645110602163194484058604094966428800593762389299621868050559165028437817373824713408951323954835964495960856632367066793023545835101101563834038198016932281897451167089956483140576954664693469872324408186667282083880080040461806230543036411009755016408293913974697968013865610678171309161919095438994486353629008493007380614735343119406179557921997721591650259609765691943546583633416729623543572698032861197839652949829122715489405628962272300285823504308228742797427578047488856275895713236680277352857206076572125266099071809930046805901342922150998725608493940525357595283363325498524977310776041659794193105762703842292118485309150132074081880230368755285142139143061281146570413997836564433464964136611834874043136769047635777457005072945701571472978143365743066221058612728019195769833467760265055109837504400984836915330100847921152542846766285084100922996012326584561023477150951184797428485785643288614907342475374478681712351220446773026920055526589474173616154851927622312138768329507373540754809323850569247907538340591674682571521006826463470068973023203649416275391216460436432902918362054000081475465886150526940252699569898249740992863861609217040076084373937693284124926132854394283029666323828527729101585564808274678633522410148813544760580493424579287651116585818201256899338845546139868859754695174662791479629693267437293623523779024588953345545600084057088701996346228036159339174248433572064674410118158002705145146218974692778789370289464266763125097336712267317922160607885380617453879372566563061578411793453798908088598949800733261150803272253379061965264437195338386683188004232785071258716924720613157447785512472884399469831706536845473108439035640078242019955964125746801418144309421482800001525770031191256835602311145204412262545880355690080685594935243850706613863255788930204256019328613065309834846358273651024439088940341236410236714992110685115190482879659165930828100850903179189171435036043777531582807042106355155417476612397330225185145093679111141743415459442167100501380415657520452236395650907023217233781368939079364680751450731855136845251135843624542803736747816138228283242768498544851890785610431062864710215406686725720761950826237635226165754974680353692888884941059835355082855741130741476790613881396258664553092607764423878474871951479828691677709828115947849267166878719989094287404815814627223717377608339474301986951264960759046569995370925966684471488354480085710929383291712701432534068487106960593133501757409269502633966859152048255913101795086406779910863557192998354316257819630044183073779143049868509643399404108731797282744353769073049767019245345736635596839642542612937523562782282852945301630097573151796087378855055481097892890416215547240266022740217840776022237368678139551658011950666143031300724990299795321307942565432492560425195609958858882656040276806130007918847453479901109049867596379603017919273305742235326450660707203831269901700223445897594775407528913643188939637896129070899173617184050493512911597914390654776516157572580778367132870027172084014092778731491959597936207533941232235711000102037987695042368791084418659150225844371356395307927676997039839544576296372305056953793480429051521964157889835242937877218644332831748994865547161666036725172953352135692385792486030783657003187040298294496182425143868337081300516017886634791484861836083263565852268765638747012892129977569144914930208074121986839043782398653346569763685145948831603931308955041063197777123968721583205050368466831871573487866767572014231128854042092481710496758995787500109305078181271520122281578533520271321034172169333654051855803670906563702888238005471468078667837641822894681493170900524905181569054365812999121860725785781347484429011619703114817540272045204841031586956559036542851432402987805671197661750365443524478803851672042929744943846372731843874416210692498460422390278173987310420810987368944175823433241079075356952789828966011930482957337817781969816025793769064512745921094447360499315150984043898497212007298352808858055810661429742251351086607779185820754468420386742960234718715028708690632878938298846025850725747991431432689523472515013217311856154117869849813003745176949131968999230209543133237895906034710882353993489307038367998358046722641929843407405501802328505484971349432812937872106582856590233295030986567196425949935434909409554888745540643733973334162482871610045572554119135702456055889299014779552841887450976513386368709677367151061872066722854576071778331588204448796098747801524356376949685857554126921675661868394292030936227329719129622760206867207509974461382192363500862792489093789798836741809155571938744625370989439178092878909431114209870036061780361533566030346456548735142779083626111530625997870276799811944980977700563819620551643749255609502885685085883489810854954070690878711890501672429918725832171442177231018700510154764109290682283396645462980810245906826256436254183307080192138169349413969226077851485358914658890152212017620083617657787316489106980356030891782958833523857333380823428542458072024496755077574745334849534767645481120182190720512833872175314091914820517185769918299092698184975384405875755306127482039647519422990146203798097307682316603181597436240423409627116641012804059108924741485600419283052461313668713145506193877601199230302192006253144635650009063208166123089276918688954943432575951267828100319838402455428962961366367442656972248803690356653663148732293295797949972928880397571370441390947210231358986641896870248866282304686072291764810963748389422115716948652544110145777160697625940149128067760079400644573711732767925801881147110560411531528214728608983313418511188399157761234818180784590894252468339864822473123003602198512891640502761079557247276013317491415224454057109470364675602309428067549324996107784636428486105290501006514605919240443818209239681933870359419320454335206266591028463034098580256683477795490561007603647129482139963427615258547326996336517335514439911143175386155815421665208271089205781215146979012665531856271233501982726845803340003469506324355122497012222232074946720329474795147243559250775467551030401734549650750732450372252259446104914373425660029089013482937929988863673462756240747722788266999956173304557122725406658869531465033074072099810622013276317109776078002260854901062319773560090048380371087651152389783639305641652565929703143569459826830044969268953283691937185976209497011989869535206485918699921942527072127700158305483100451300989896190233756347093588161040061999582445833999190352043474508681303463870611767840499446278436721424569781209315378328734505026232210434054573946888344995448713183575113789273576622625238640953249373186121602556771602775321804389305207431451218745980568751054191846266307228041961774369854343845786646148702723665674239944876547381494832814424488177549134629377918942787811089359307054177098153576587995470639048741833176846170301296326363541350900881956976143675863861298529967624937402122969860964242669263930145382679446902291396907627823191768408839699487808883443591872034073917348847877100259570741766832244167920350352194460490233816701728421725870590430522909781539696583331972090771808886374957077175817005654546249959662741692558633310787785533236332235097931110754834253597825814210820658807148521578118107138257750547720465835573174816711424412595871804199958699959352190489801233521535312033042920347324031228587085859208157023917438078352566444475905739509229752467059423647992244285010149900988003830846224063547520785151776165283968079080118042864735766439556329631738605533654261358996488296511321390639288673498022147829396262784377079853331138190442948629379871839632232072808307953322183108326486054673294458625436914669945578541517944749167908056384446447295809817936711915537523189473956982903073333623962600257913403849845118374610452309037003916573373716763485216059104608902865074918687307660552477799578369135769211439803050379517135641170744459572680183104179807423183585603459794887661114384601517489448507678267459574891389749389027490407146812833588153435427430157440101302305437060431573408930609360722794513736271819821216415125170696536985532004830041607647049225192456373139984348139451801208186769044389492235382546763344496743253648737185384284709856184218048172750952829366534582113215455394422685209883766699326988822568872543872323191553963108780566284001317203903779578845811495368071652088848992835533836713223072875629775536021413065456707470710424589322179735396506060724667707504698981502005369941045947030192154699372886295502487310561015608371009564341203120379333642538492056595247543674527201721775357505380430258335376676559479219695052998258558101787878999204407437875177099493655085647741144754710932685734155329880540712275238797437776159451834087869656056045850102648216582713160851125276885083739702506812197301899997598543808914784120531823726792653034950799471741410042614945450156075434682491306635900464697292148024291780011774813329945431948944082990337914973895618316295235827957459386454280191588181283060862723778870606653952910485747801822321403703425164624110075101638360231454565075303306584264733576531761680336801434528696410369766780900563656391687445402700519410933830454143757993357897007214309523965915610911989724461696158843872854810065550144585857401481624258448849349031760479787460429505979454144401314312512598349572318631281156972712982618661732762480389806046656432953146466501380860862411785882579739787197661580298840034685690519656508858089444944432652416332903996476298091200798945141074672644842302811108941927365822736580811909130597096669999058558535432213519571369301343285749799627030748756950157083783845160184475499473730153901212010786552775577157250294108473279075447580702947381101279859520936090796418663948646138949217345791614125034418362565875830166245043930401929497128281555751559839399229410845731320106047024722732869354755344475753519313850211115665314780184314362950298744812629162091489805076775818249669529254403714021259313752535517424893418874823292213757394908737482248502802326312239674032235556430198011037033051047011539540350745348896695727319494257279682213697397183595928695082896788314295739643494686377043517743538363304333546659283250918099362754597565735582704407849174416734496531948598273638440771825482618086501521272176532612767220880155372278204615503833793226251205905130825138244892660665833064762238696064241152613727721673747222835970651851176494367253972263652067116866675080288521260781427743584421712787827432792512710341524512398730044939233384894993477538124501295321985447811067767890667572350200825442268743294751720881913974483933382091557218991411085661534594552482500076356874123676186997008192344169377473116476156314327288813318462764650406119992070928765742864568458579020313773736701485419773556623973590302349758024402940820581360194088379209041341414408783037890792659005357265914150797676604194415194424066122430378902785918086518498020204225146986053162332942896901946609105960877831032318504190435542721274115018510968307940327739668210714345380757148055370217313258915985979120088683615654329950850624232582843910106937199309064481306011593182434858206283052909732465667577089839765649889964562443806234095332423864766487918592518528191464604305178952355452903415984843536181199758109621341347538419900524049192756074681986848668916146602606048524797773117533728478606632286530235597753496836931310037083370996400896452319435194450857510429430726187216600222965507797971482223397680731957141403095650399660751776648597821859427496864911622417889886745657365337692233752063212798692962216918803053624250798633303096968212176773092726945436562920881230010299266353127974860926669181870310772995910007838260267783839928838830747060020441438286532932573514726627169917311625600764706789182390518058255626712357844055693858400005923923216990300610694016992662205920788055108865666263510589097533240411074674907640862811412227106764260445827189749132668295404878676432507251587131076576528099859814245265660813537710234616760074160025502698985343999850838918602061081414532741604101649384819759335275818986811359129635807101140808962031416556935129776134835603288981672550874446703875295219907338168021266665276300470393132552967880978576163732803589085140401369039833209462200509128634930178902303800615693311925566254966849230587179520830947310585746809273143920897457786262238973596151126146787507352638663765683323757638659818728506159995117500963197466824929748891559473270148811233937308629105908259013272751076358886546478786638177792433321166628682860904439888001036467347025647009640010535442473865984828552365990777370713801737821398549801001192878566355260117824805132429633379040198451297505882429739992527774251913814361141216120910482331900358366661208547689618298766986174742220552120467926717058308494252110467362415840057069226984078082105833903485856440124317448975985715441449555268528825942728467931312623625434438789828514190198637090366045991910175897878274816316058714880243999015658413163826936240381383829150161072512490254613051451855411895240760844344169883096501293175021747888471631169938621794791377407270327485644559243061142427603779650536730192570954016688624517187132402355687473574053839487721604826027644295937374994232584453845184477814187606182129273862541370845355886628252339289276932259594165074873002146754340341323748734534389764229374941230416251749021614091984287958575268234813712205093797140318978604603493543711317768868112342838959362808227314706512630392922657790649806574986894824502884364844867446193529251923926919284013482431804416739553063450041620213591257193136863742463215117059355836882883378086107485576805906244793064978094145371817101978361093937942596578237827099301158316497676284712472954532967869304085288962722788213809213059922893333443854559870952111539017835692352713943019720733782599042564858930431676570917112116559452832026484813300776851308491036075686244974849754141324445865999560235809387592967998280003652143206727549782729128320036768733442160442172474472901175163494209180771828339529986013456581635393554503596545922214036585586497112981741328345649555373994109531880376128874349819510025614882741489705761297074556938720258756185522023354799130581191463240079118895114303209101008861319184560956779605934568584934719613315299604108513179966189269060741453997891296134760334446961938011328991331162833262197915592599892523642020496457424916637604870757428038476071452190753781831912917565055803798877073905164487226758208843874060421620389938096559223946108430395415318528054506065454621444225250300833057801183326727587777476415555345606378770044188769440372388138936064905140306461475710972572218042377949633728782847710870751861287478055591666493601770310958406982409772270744873045074753133299762988514014495748622061165478196648744028575807078702244583063950882727461652190736628530050457436402470230976544266734554502868802985574457625087565284041256808279843377988581537240047622567958889273287325608239472010343746900412569369421991075492265115472642367692070301887668764342110800811210979695609534580447178325573398451233539897229032430770251998221762218821619429773735497092648311073615604462902957471809727281046491949658186305154655007585882505964338596488865771747249807907449534510079675428926108485879195190224911367396979668368183493925918745105125400582673544318132879797991766337460358053158115323981278015411344174631411323647478329741610901526729154409372852947655228532173266573706026169032287069519882549844630242595406295497503452736061672765473418649166473738067020353153529289151319671445379186717440970607943259428591549499564863351344220807095874796598779799156262237205371143067008974373267110391653786615717693852090254750376664254283436329522880413242461880133594303433587850017803846808675379217221372852251558729737635329628767070844438048026867675339279300207916069871405417735566297645633332570943612030308870888749894642785722045830761140951671904057821145475444569786741315521634933568315771806366049268390570659932036872512580910409245459469198970124480848242161241322575572962065055921711790395911352177459806406228978776937338269071911830060165091941399532978841691074660154243988565337125119393319329418279315020220095252893426009631422850908803977338285938217884264636594330997178434228955214200715966038765213585159862102896813953004894982015084543204794573467860303344966814666688459228658602706286158724871333950779314452498211157837760141187229728615527217895799057883373272102478501405585256343560936438490669087795713192127391608217811097935202348164279909758664123445255310086863826957564176004071795637846169951498131599760886197219878539609559307178276281821785238695408625058508697031857491338235601458720695735577923951421971360363700059239985532601639515793358857183477522084098037843602730290445192348906219478436759432295336415633887791355061091559738499334151476295561919918508373400759404398244313842701836850837690933599837108886511731583495943592530833309366629946826672800773088361724101397013876702772555414539102013189057377754160819840999374370571775614363075076043801165243715630165604681284378158938487204023822698746850694658734131052194522326493886435289246442960315421297784091648076759664567760394341083945632698622521578498294867822602086182077027127428713061894930629856709565887296336810041021702731520689748505757661861429705469425809585384727776024787763629093462216941571896592847204418443548344376300897569324944408697270013458288590315741953547240341493816139362231887200185050405105338117845372911978366586397637188880282592708385434919745282389986220289473344979327500430777946900654330399485702232572898735477732686680261503908325659639666078947438589850971318366347846621863470089686676274739158490542482602039836085099169490646802244558727718959538397487991100746743669223528517887933663450721631890867264807561018367749970796577849448600941053034680343680758993795754147316610642579663122611737573260798044557540821820100924319404352764304667191378029889171547899448124446868613046413670186038204913205046804423864425501887525608189671769315050187854200505102532601037028976420228442786512730306857204955458998852478653314393261771500180862808465760168618964838735978348096206358067025343116870338515024390668679427134393839338383879612850850214213055940394060463844349058734081067493826296625371392370254999596663958214567520480814671313357836767899120375363897230976297054840399697707164408836727826825570326180753089335781839007722923226243982739697269978198024367798725854554548728446582807009969135714854683357091738913228756000251333014594634783168776611555343672188042210712219915547565880717751884891260715689707542137807876465475297386088626225325413876373565449314900421924694572431926034324760282698578671232987565708123081666324691964294117717059729585247947074728570561472356672036204335039148511339509881169218447778255663067884111074849557602125128699009257295937904356311924395644908965035322463143693616775709079722169662714982274396115680584507421317344171037968204713010860235113135303508422490031860540187495867336158551247460910070139577793856776614663435304028534955365347578190325374941419738663086572130815311535872068190464170897184650580125203676194075597836015485959386954820181409680679874435800997083807863099764671255143184680588157430254714994160370675935218509411595690628433987348852363117973191288107961509110656591917051366735844141654353366089699575235124301622772187865502660881180273495390421660464324079039446044456035699860706485255748471890910189071737744780526292883803572483932315276678711118376239213033196708388476324491275441264219748529663452024320846337664701913955472266973421928610356192166039644260970596445387151395135269248284414358924126614886086790681774664935305439788200846741703556129191272059964046157091644298404303197768478591131812732778668818025774123871308395634474245801789233914250374689117288949397993863325126031790910783842736888794397435810870048464222477496131652694720462258569999836190509086906244788086181419214157758225684527911191086964723177551130390714358704678247676911056223732194414914346599435840880681265140852804031179025370818063116778266919307717906186773353380368248923275344429291431143563107968912343178406654238557760151734693793712810615162576732011433489747940106153798567038704139077628412820053081139466258619112402577776581424140736698553401594799002770859087097518599171525464179178269460963367048331738014817359463274731385547885965124361630039812828530641889286631621116057020500753340386090787534126632419207504882233979162378236840986064704607661960247920077989279280955448803012537592397736625250370901233961614386420057595817107846599187276837087409591930786429571839473602214834345328204314265553372361625923589570543693481775750079067601685693752021766731952703586650663280843195407535747824093587081016108390705153157465195564313386685781484323022623796446865716594388760374360357786640924938360360344708380383260668521465105779890571631511600391374630934881543242109871450007922669263304151269296908948081258830807809008916729133076913548767065484619998808839019818074746945684563175385659774981162095630333847097531821956228311412417873455973199958890757000327000413514148465843509126316184532424145646835748379860863920130515639348587866009160768244807204963898213392097843143914613079865146698081413122654571292766804362769327853454553452545276668729271404143402130931702089282041358866019460677233380078622804195672456868037689065385929726385259772002013108698999338836069862122198826309639548684684151399280844053065099932879198653526184581356833354992151034824990237198894987430592828129128391663985380743825783087353212521059701910182401238346366832167798696409139441085965747812392236522583196319590153714496484718725775885606408017208079021757607652000022869474492248110955464016658135637600535779317794763602255126785894139248673713220171920685010159939447954216074692944194959160544996389081816004365019458725157702490530393518798551490490795046066294379976901110001820783675690774572772736114078730049620923919019273152691388476301916667549731155896255522540817696013937343545145439147493870352557319253908534649084285084912835557772433143004041355433778835944216823855156683335105798588985143550304179000644950267448695824895565334124465183821790671547435530934189336730459630757435803495128888293689547126231710335676917500356101147395394576395426025971407369502881870713316212331746242628358251601279891739968127926209438639194714985449731546317202854263915949233044505627304119912080343644387172364167804625832715451599120445898430639453539180162531624704329350837541735962209282642949750706528020951253680345797375594066959431447722430937094452140277182706788945729315491358058169955993809034786013359542101219686229877685739758303198384620402300687351186642368710053810187372639682531627739432864969954778107508886661972614342406431499277946352473000160932762367560649179770315409535602630659242847392980654031657415242351687708008300741417052184065494326059797284991268110860544722649164963623577846060864282185940879497086772017820080739746865607568259174086705919419955500227473212482218376935946999039934133677522781793691739292162189600474845870511123343510830134865605729811019597577400791455854546034441857864440905647827908831624906009508520596814820106765835984042456303895196319864607250365598659922564644538039535817346861776570488079561068740723284121299166661495265060113126714912164936017612588888688432160693330867681480567445042946878039548556754704789814731136086012771028369985624849421574118530997078492124794238772979785870970118295217702798759442473466122540977176836431945475143470049222628435692295803751287757564265823808723217912940741805246078186981337349353925553646549345065714974723565613606672848468617886099210290506069989607433145537133968954851263923037366320873121742148531222187786711988149132942694484029061867302912174978697020567191105058802829867320657248350871002129415128041181072592450562072078572617988634265991254972161378338007267777059365420112271006762890481109788118971902380082436865496303177879018637390342144040451239042563352054439277001390726888435420618980940994142281956301058887513003992263333567700739169607358983606883707203556162270925681686738102392313707027902597682482445712389031505145925366990648958488136789181822987069187893205278346652175656966603356716989495126504647829092156442374132281779752586410070507201292748920191403740038592517401630547299778188637231681600970291827538163430719533956895222085435528591431228009788036712662289183139690573381402571597213588554320221871973169432929037072420515436720206734471452644330224339692110306229470542660055327228630159104296216763917766669605462029385618321292753511532293899679536198226714164974432093593368967274817565611003030015706652538360477686717577280386479974003038548206703682405885423195765526332821600776577263576143466032943547958576802173814235002005636491589126897345088756693875363503763944508493419486696607780772349567984472773613812808451714571306512910709490012305921363381565635007501272241783332414242488304432907523425383980744957464311673594446575835465931075734173698278073494381032937409712703065298824816071316842691553505286024347755329307830843107443128596549692530652997836389151059750858289204342798271014117891485047948473292003461299504322714203076897010612352800173765170808645410598007933938253862700872726899735195596435809756279798858212355610139687449983525293522431539950783270235930459600164819647884634171141230388606556150492849931136942537723096220300893812826988873742919514446884560913842033593910748078527755414130115493536918625009598804296207458587015063886199951946289702596903356765438979851512260537588699359468285166531791779019067607605021957610347948951451736768131346818342033385887978381197478198034240492349755305838264109265066936525899571524664639358471641244936652146378827653507090492579696589898571436759729191180306286872857310908697529272307783167784359466277872513753710090341540180573753841775276069629679510624275584445118923947542909958145657118323627354613251240726080953394649537185209695277836165237460882946219732384954421124692992997421254303011888371969831681682317979987705566410865475624204574261855355357118548137406324675464732719845205319963730504400739124060203898224158154232690404358225637733652827762538874241009711575445827844273319584973385551901527866460206118911904511953955250109500773205985212032885777566185163413605172836515098072655242765248616226860923429001242473132179200066096983836810702704365292190962745318094293561699874666366961378981191680617787703142916503111822086340667250541349453455902551059013058537087987681113604935383462713020594645300112130608362621709248221635620426898212976636777793272594493337940380651663316227960819195221168806973813387623161584912365300348604576298391045077705368323027998286774554182880431816110184282506681485524525843329611610082518933535243620231685875999853783871556739031079317497586256279213487802942860100652393056139624222876159551624371240438703291781668391664294412465709055663285048002112778439594095327808801141774750290311862884305566552049300961503312940914613088956261690538292263534450509249116309044790056013301503894289152565896844259019330652639428145290770370117813448487001063819927339012573729514735873681032795584475147917447755503751277167197288045756219708240347405838041181815950984219333883373186163311926456248647212488985867417306040440479999067175689618386153334304323875536491104480699862577455250691660038512759833087673734922597995174157826212712257057611078978732589250755189834895227979490483913181738579230109371446387258867796762061310072636706535989707391933960074492323091936107714120529583798732602567835862859771262326850671701340386438918133157167414431901982057458740756348545922563860875578429146184785352510448746571567882928676861282958714457104178911270464878269569440672056401564383732361915429216749704553298483587065649245297410245896619188627667983610959592011262086588013044081804731573765632012195844593342086669745367553801350961714428794122058409053503382537740474000761175942054488498085264697324825353780256045021156321382289624607250069614836186416355302565962020365792072138527139658135967284371393637712729024438800548781640996513824757037161837672160363252410392772017611542662780859059612392684153328828961914865624897266761377154243704077375506664943626134304873952215053477602566288953368016590373660842479642575338473369544627623112153444729553168776769485294238241123501807107194218758683894826231840376488704358988749096688651663020623760809818582898621577015532898244217694919008000345709746073513721196182870908255593785794512362793165071026387186449284188233333227655339700757040737972616401909893011475579047274125670011682013434475002461243993416104439193702761161026266631921734497400315420371944420394631864593014925339095938842435898365986840291498552866447466764631503914189509054049867104094571582810030888189555325783344824412130690003912519462503698335604608059754658311204501949111560788017585255864333121419000598211105093409201694806304207482866631383926515080644331164287525997106466259011217283990962887526419361423511521660630286222811900494371238711908156779004192483264475124805247598879703214613688040683649126081698199022334006256372202598325236324404197504389422939367983667772045975171667913546692073369493874845405820794497859087196880007773311686623147139758908459416084422500813868222508404065947172541047615875672288196217678376404843144194321820770911127757544406964840773001978762754113593643987911711336114903930846359561094753879108162845129860318919954541752339688320271827620329862902924284324363367725865405880440698884098135870280320178753537979673985310789149767332750169468603015626898912714406906593671707922214781460714185220198193019715520101774961191733719392299123185282363874984184947706858431779112066844420936389285739064368659344590170717353729946415507794824441855320195190024866043065391061354876983420864663906705462540828528943990447292909263160067329388543375339913196277298554154385975564133553187562683194619378202683218020122476615734523037920825268988386416165124487157493204867472152250461388277458931507123710610619824930753130875298972645970492486494306256928305042064439796268390024324027317465079970493992317312434420015414067326460302869565716744647769287911571123691593598256880665113250747794701254391499553457460111163230508904406148091010752285229525859769072686593491373195709337538055782020092638876815510233715912127941722191732867879370464831984298231660736130178171883269242764809416567030531077467669085783295757065920693760154323710728365388433928143260484941335384537954141948984460064441661226493893004980710386434249945588871071294254223441903085357263095129990821068958417761669251956678469647384035194772103844086044600978760715087147713215399360570105121048830313859935769218764303339831318083678431346089461966370132650976605925135972779983011339714471937670255562437615990171672538242148241921025140951775303407215012489775726329871281169544391446838301669151708306492523336974210407164390575085726696902505251345537585159885955979778394300114024360482071300788350714329847327512374861331417750384149825116132025829875091361342655950833642286111722169676778989918128843304500168710603196296386958866006808848528462836311148718655063679977780970373847377415166436278502256237103502382895381226852664478130589550350781030985521018339398872883239136451053531589298596949423047350769418622602156920124843713762957835248052937059437557100029882568932411116533394578069306428748523971340897009699112414836733137738875766322716073499545756315364004718565713115154702485564802033974677698526008292218675512237882903932170840022127121713345205429132622110062226103115518746007930375143813352603181715978880980083052808307186890044640282012770895318204037191975089291378560615347366950952755583147986602004330761831917276658528183188277747344410622681791486122943384443070601603752236331179613916774027592162412950245958392431304730967897542463618597568006569759196284701103084628361389884981288234650143339938055264117984524125672806700161209832066131699130205464354642549735140647341417487749026387297555564757913520344113132975118399080241998330786786972249882486159792615873580569875015196990152567775476093738673689754728450548053704471452531011380792516659516415956712467711664018017525659414119192109967024328893007921457671439493862216960507118427317625414323857656427360930850080401877020320070669383215997297735198806731894978159090966892096259250076353572977927870330442627010428488824527393181020824771983891653171173175495583172921419829309205607669899818158687920508427207392334902503759518116343193789751900222316627567603459733173536505145905699037704850562214411587666818712817463802024922946809500060967631561743231248593661069407913258466670188908591304269598430708739025023065893019130304238387237522468734825113007199703919922395297788582325100927135598771726870571984990326980117486484348404486295307727394133365730029562277630319615491951673525489380169939489696851314620715015774862634571983896454612085160972989935966151084253135793152177381448512836664155200809153515531992253396566015065140113234564347246342201294754589605023178800146336531464426556375727029365864597531074537600366136057320137662782362206404012230581566586378805867264706094416148769356396849978882944237074502692225822645570767350897388852356786431454179220598663314541604559328051079894318365916408751923689082778262932756334308458152486890954458512780031903594022243962110494563142704419798991298513445105221250984089023671850720624638446436492974619948306727732857984357327835822865183272491504322018861938969224114809698697594705125800375116313127986722773491379227124444002935163542951030745231545400275708536286809135446413849027345802377316257100027640315369276593811316071862230433767398567476578593481929191421852079254439447047249038124786272355693900363937311095127366717752962903428918127100638870186975070772896972361601146422718312527509637872046203901701637085366414230475063323224183948566201562723036380145407341973902547076472735010406742007963224891844077113547575970001787730924370937913047497520712152879571818098468969072000102141305085839272950061303907337145053037861953707958368689683323785749417834891663805823357988376307835741512527425654666512949513038338730069408128909773985461471200454523976749830171505567088852243251724629434023723233338600259321865823057782199292755769636939395759803267262103772510785427985151087010600443481237999515620532420247776898456074965678293183449957490843826002401940020635396794376259932812817553403682574565860433883428952266249354580705701017407838064830857131359989338180248022708818501920565870956933141129030313943364519530751799301824147855563100174265116640483590997836021695541841464186004136674921609880017308185183896619525913644198572293139431710416765633928591201733502554954840834255715429509898111858972465416404266633941920441558306136217941057239449256265860134646799433081867182594274423426492394310922967185927954608001850986957722809956447191044634329799744540353990937153680085360325150668797148781277244571624909194289989972045068450358914750050194362720488026639097491506483638901720962355323217060361596596424147607225332880458088434072138037864967211110385459843626345444614308307001567125622233914657199831141269454272874175844965150560513144234885001326843386335871569271424100813230962335729411610144050006109446414935935519088064917724002015573558871295837997476440611856079555161726325788814064656637042583178759285386943223618229426170900160099638262525150533104427167102499679071481402204875157411779840494479052999702281212079423997387136591903249449531043283384159302104596593868926363224672988149220342750351557995883341296854029186494455659462991743159347610981173829328467869092162091315335557113103512217098677045353596119629267503301871873492807358831171804167847594550958993512508436002222863658613080100188256672510403808260207992238377736036708300101948674886003029641785040137506667022021633740290301073077048220642347630729191934661518536651045192855316058288590388970650158394978760669890046329668853417899593809008806617911294420243276357819917009302820108982424506912505633691113038903455078744314931685079966079863833806342865455416510133374930873471884025110927680064769329062627224773586353893035620644242887624960995906951100674293944237510558842373260120841618878169578359029474596097381492233489630366848837745323857175264965289375227525691863378287173597468460590748933843660879256056508432859924817529537454669506729734004827616854746994920895861160092233256040329784214389085136579977619711088058872192510160150671846408702863071634955951169578048513441778802868031051087230830099210102604061425970160089763176461547966522251504940263034082856993600825261949091582510284918777670667055792661809404624337456154285448540403026195946756240154821164593290461826802254242299010704655125989987982061231296878110556079994931316742946143757280827568086042274135099527795688041662163132240255901434464879268743789028209071647331782049179253670847792381699830560048802830981706150958832847922190295900432295200914255183075766894439510140257105771398769091769734336869334155794221774180507036411092095601359360339493241110932667393861025771364487630228002530105355458281097189063755244923758687175140477864211696285069137859875887275174836902271145400893948641786440729352172337781133301163679796887033825754324789684420298483551607344800279626738054861534618708754929043800882717124440221490504044507669730345196121294236427319457526889304963454435777644380396880509532664512972555497053886237344305057593067839578834951513302248200916824970575999736169237725537515634699572631820726955901067930883894896357582864975151813175024596069406795564824407129209954488256474924969687933525731927106916527779384233065240386521440301217771727539737946440868159473635739742488821014972859307812692702546876246605740381818516228563927522261580855063378172874484788005550057571784845942742606574395825101934832188104764140815152430985771902328588525101946071267801983027130384541478492694165001928180808087954851644229551408487582166173366833909982577938876851382815742067241093204312434853486089179330489814654637601208302813275763137638236851910382277782039382036892350861966855593788560802102305198997042096835680880014358940970735029078197428715280878259246314625674374239074388906951209565266968080129261843803773454823167249195272721017099548132064889602856581582256957600756176786880232454116861369046975111544475818500501518631949144345078020789880986767119669914065371958504025939679498202653335351004846790788108466666400459991502505809328597479020874895682209550424782592987613702362725980164759308707456063421217376977527944434048203694886921100048664032039928160522512299856051683206550428910905261298956437107095949150750983735671963086329353236399001337069404400967760811569720505410780101455668431359671621926680007347456951707951681348162426297147287537070094915543409363088804244292698310600009634218379063494084781031193101841999245003216362056317748297780097029173475503497946428482559338465437244964199293536430608484678559282281200098728471414795275678763044483433152180018150920856686166415960001135848995675613447043583427380166068047714410878828454781271293902020398296694904726433610275553326423497806790660290098797219973978757651412446924596172659703262195287081948207236795434185031842366098033984686939210402012657726238212085782186427678574999040009826517503119787570925344492704138180959579337782804498152538460310410399702625711637646913268908695059310602604249405687019147388377011103011178854346136645572466619389006985740869510451995946879201970852000813194989600451024125924405036187495132227535702000636938196718897862930043860440701991793984013529324995440753676984692000951499526811357693569614356771290442406960727704575443069330379591756611454703981797123859031651801046428178472133863755872358603996611473611067155414691207916942718014661365162105950404375986270630495662702943454740283003622429172993085007923706001247421113560062541361634990275806298503405427211087344653489012019789942414321846825134190906942039970880580896391951577033629152755290334552933345666130676903417111373112041888775610989742831073303768021457395845810014479767327541435660894462338191707058068916529291763440239077154928630156704299187418437750030949455470557335856692313525635789322611878692301319297443061242725527232716797162093191636627640354633300964739314145502184603275584225293474241506774617168257155711189364831490348248949325448595213951575429741664448459839256627459641625690729090288062044200812007768955103862673246205092121113196685937416983889928223493052029232703106384684534066322006184913202336522676095295314030855612402158872419739441211595320529187572380445642565151814654229987627335315102415822622663943645518685614270828165442720711709989169048255302551492662435880413207703046372337790006484561158413240836898434362279450278923001470082128600455830281897244421813961798801618780109021189771040139034160124006661826833740083411665415251774922665970511580584533286925298154269235004448827932120781228623267684526275549475766987100700098648715937569828687146078618467132495686839481896604338943373062337027785750793890231310265760237243568330133095341865804717231493969583793151206346162820458064033620266162530305096183046696726736131693041736104953415899022381573475039477393257588358479247365995427047805458716551685812959298981032955087644249535053782300807707289209242003748197534856631337004050405870962401767712519229063010578605648720263300667508805827141611201406379323795346723719855222005347782717529946987017627433443588842831757539383772073822730850652504733323545349094759772661005833732591158194810441490327994298623804387532086929781778916550884657855687395494299479789138535422466723285225971756244517275349187123654470772330110757274058340554174956828800594512085902624658922612752405861876359202427358214575906096991602512495208001915628524020302393983748050887329150110238643514607373119785889458577751490772348513641119102668947657083059144450577812013214823982822914612402260602991099741352691289993512224233311555692314364637402143744372550653120481155141288248102195115672998714237242126491127386839105896794465710633186435082190036776133891750535981197966141677590998235373307622078324153140374052991721096266772720251978675375412230338219193468678292786941884953735384150538710987405289614267205837014968091880855668451566884665683849886675164385410779596107693232582151031965610788851768604865758363877616689334996132035039684919631068170553225097654758917695075789722415722393674955577111694863418877436083044819788079012741422417340328442913043850134307239246104446940441285311416083642772842363445240077044068081363246783123604531220239596298445449100402912161898848039883614025764788946420450334188398733052321941793176550337969751220955387380740700157675275999078829148510013642793346828613097113274958403148837266774657145535663023732077621449823385753505826429904911100705069231284831672867137516052560484460172240215557490994110135386024042087509601642929174317577428127141595626293470748814442028360597907006035588570587775886752288306439546950652507380712307298414585754941389543415931686930004642199952476470443582547784064977682359656791841753370478161048994991094224320530144870654662356075629362382948645569250906690399992940509452310237127896625292130018435680520828538977871246683660325164061152070969085271608679340738649482785100073437897762961200960363207567764971193928577785217739689495405485262013104034032042628318566428293722111699351989596407420861864886696979390574073876655177332383804674629438460969453537525265758067988971559867227185420968389274385336116657419752775674041275693405197722308839698000928603803950742770415054369403144695346974630561926550047016075894350266681705205684237531499812701851331235286547742743680444152812815941705722294597650286662822242117270861644209102081529241835888862833562580558041423388714952716836543289126639636926100164702346037382339386220915898986146028701039535957034047081025410431691432517627182120010031175740429072409251652987441833174247915925569830876435784068615786155129085323423835490487053635621455585560044581958530348789449042314920431692115264636799158906938569066969131976010198370942678574821895805541779380200623746395360938146325528420583527976605323666290435153016092872717705111229517100177973109220597410239306228409636671159421267925564806377295855964056146780839222965613052326340992074448309031876713720408008811729628803678431959297727039744911119815803305053910607533694849534037708633503913722715066713108511648667721219209773517740127974619049165767638012549427752058298491973631617774563561183762991220673403905375459079499546398704184450711369054057482861570239646093640852003436794339167800118109059460297216435386373449969828104577231096374162223509199139602017627457208125133714726436998756020821814728406166347183106296507966565768083006358852686428696862887716362581859847341484489636679313877155862070812039036836049238396195735133690107666685401826313079381700279287403439510569421724262983839346811861765792384731082673127946568662822166158554741582261815209835824781158140593713914138905011697933555187326817053182335881055171637783768875467757310958697637636418861432027819775812106560705155760572860639261131254110085487640717157843189600205671620868873403401377325295394818279227577666492767432450669908138118886395874301339064550477696026679806674083544274478497734227998738319171563950320354980588489363134201571316480225502891568642860260139268142118889574124340377854512303640183778471136792946961333682944392597354552904773846549589288317828645985603874942297430231298636931007435123048067545561685505019359970971347468210455571795124823317339529616612755208889532783527147660910687212439823771153156852868941922736306845035459877273680652201342745531135724273523756715954764097069832421302945958978069860223218594196769847216574746241701392098880421232566244133532219289277192303903966783463361265194872101530235851303632746347952459269635375415855725855100339502003277094310331760861514634695834784907906643527745509424893584614220090729227918348565449819793593763956030526395372263280619888677831314563036038223160650928400738626739216755022074322637678043615681333472673749845817888411991144042909478119795960271860094927130147533822108440327996283004335027556539769231362308943011400073236188838033109375402261728150900895956282223005817721776638988503760574856518810800397526783115806825593580017536754950420491178296516385052707507496349610220996781132010084584293545647279612419137184533053097548837583504370881951266913341530382282469872804350739089691513177465422948660315783471577997931107934273850311513373489466546369805519320907750393468114337477511863009711096280548178768520721119516020419670946510959810963611131344803988409701109336772653469699434237803174315681859683580045985841579395001759697565143108375060447264808213135479098501653579196800766043515345093757635364157296967956183207299136940385756876919020905611782538705786821815981640940901650158447770941980331724575292915376823199172899559059127943661971376133074769141097490582971491547344619434656574921218426887471863575517234856945382999448073149897501667521725031056366680247528559477173626257044860291836026481069803590969082863969441317685321805674881815575182421393421322671011904192263704979666697485609290118185355625988301451312384163079539302037935534405836255714716581263381640772457244568267528076571068416525653683478971415439919512478168523464746720731794317487700416725549125147791651890193638166290883884900522228753994308201398743697036835419531274231395108701434793038883748351229481662904205892911197975221182461956633593640269979268572897220030183137146240119297816163791240160953690288799853015765965087286485087605518080495157069568750476505255959904946852417014130470860087506580963483590912671115138563557692060094026959481410380707129985804874827968874192485101550952450365467160257498383069718763312033769467977028497351887037156312228521857031959359287318984701405685481641243729521418788908823997813134495470616665999453032836937424460586557268387968468449627213716567582581089492698400912538989034369204746174690575453403300915441328561037345503674174595559003498268622128330321730535440988792553455653616633997089774916908089804345286090913588391900820248536128444739083257111491335284806723511923539563006078245003946664200034042612332254288744281621266808209789577477389570229228138272308309111625558793263195027795966767496906906789952851366286391399984804731875111768478941889069511680610645413466053125434273999797454336037798861554322256296195812885036289650587960073702217972550709337733245068392100584670531475101636112087905918027072078755182122605453674174174702378200324658413672534242970742555080476738863723769341048125937401562640049499858617648115119463706982648195596748726689622207224029023065795337081651546277693359529304283132223699132481729024863714967854609240270252262962832303727663701991473643801306449048218753484999222907360011178857105623962975790029503531626972145929782262445862616602551301531958293503567957908795820347679640847804276229832925033660911072189646092921585150636906111182228336994173445915528103092510190685006804377636598252864651283806275295441409428906082042044454782297664884186475410641163787141950718521104735118454432754835003269737930171836615954485244740426578318537203545746917351721157043923842336621801139338573471712166805237417826979874456989603417292759248928156978181645251491520838541932558206203278569147974937421059744558966343002837445419596099123366148742419194229468293414739685930439395994511356441603439256787707599762682670782930147577165916274021776100927503806382764522528532805603555433256800288457909447833136717396262323607788000934100245106549327386516289154427886257118885222098993390380150985751687347348293353634117220710087479481387832936837074508541980174109047121075391682842084231570562671116530847534769170034854344643454167055685155649305525948069755691943762919852363353561873636567025514490741274663042508435902605973248594301164294551452046835622652183579509140716661094782973039245415508824298395863649255363028894321812365341952327156814977020383043590943035601597118868807566065283893618806200083145169501349873833190681936505656520244629515593545961614120422187631908162548335365724565299292957240829277252018442602230920120688695483095439758672943260671066579907476207497347406240944362940546730122072753808746508781948380161296921937048133952338809680916627219194557887802945968867347588503780979750964443582526350333261331306585502574957955932982536833880004745555904465758405629041338540693729773570179571367047758697640158077507908911930400966145399695899074175090375136707495365129856610647196481765729097551735122790272795990510634966583827980400689505960110449466195708827453916022355783569152863678443789350525029216200519786611324968838907554938151731825610687563057604452355957157061922013577857338549613153879489758017726758944039273453910852419564262402378263562399275698707949873526852506740415600268939965599426856129019192226777723528514878082885233512334117265185072547191656195008297462990981814333801760198240873209399313942158317678907535164552542229799181656724285276205582207622436136805112879312614517371001830223619816340978048740890263430858357590834107483878729094669781621992666456248434492084815333230923757222526505645093638711688521622609804551434782062813939696349130784569018566821664875311242798457303475080778997108361866249271520977273712977122136726158984076566245680192584655323192154113316487875963554904805709420944338911950212152847724907522079343511540186518013466238112505707902143304499553927918877794568061969099908798239733970349760842593656617430128191776101901178857211474402778516756278654399214074994749369252862638027630357969391687623028225307941814826006559465191677301643290729634518510489304747529488254607730177556398588918323982784735514303937470217739340716388527836922113558692738486692268948660881529135095631373960646406799937440481078059063273155410104081136738443521706366180471751726296509965854001837722668860256437718768403945304076483607623938634889002437729990651693367166320191736353672484133441582527368803687612253211039915776558308621243459629400334713173218878595414603903768217674526318834340197994303591732790848501854099501036307288722509736506504908492119192702449627405112312663150479521653250380235469463539286893377544447053337695448604195130182577107623443749567876138333625602902418974711605919801532027085170136067409720940267588154547023045686308136042219262367798364839259277826471527221878289753980852745235764863681813242480276437709953402500709127821995690129296932743037276697397881165149854400514355712633297356262931973902531540408674920298590071134237797567016395132486367429313816825411980624956148910989769981225327927850085242943257401727466586224148893536758652522396162678613764391278911992552619097924215407188317812255587744212385890480030907556137294807705456236409267039335791876631932274636834807981605839764382276741879948848807043169927806723195707929004423319443301413344874424402960469124803142063878606967284266709452778875477198628987461080734891605062429372896464398588179832618031630916084795213604037931676483152870409613605185395043169823981995362514950205029235229024942143122434827220628090785315082938044366392596902832139796079742668042232262637910281991218697657821990301310517510095198833018264813468466616314727428228016048287331455400100283816173340307945291944868808787256203723185579461503749534087071915501512870752851313446353876433407815049537944290540911409514990535009527590305664317443249420583175616772451716813075861288624185039698182860408867033137091760528418106499928313039664455375496462830116968255561324193306626883524166927896881908983295012765740162946934794438119189721400420207089833003086692932525825641224560451945196313240224981242995913674844478857009035750235375626129548573040695779836244550237712313264399373947467173344203735680171349057634563985806423717595784403914378738330526104878876861173822300884282492445002200608401601584838750980354188918771560647390726504171352816687466938914495647982929293714011503230920652395081826650999757551238741351717181794951777521176554360667793470024023421323692434638228652575597668050230970332374928678654402881706104305447573771800878927093065463661649086342546428836902680358777429148610210137140299330149827126238112780830596513342471186552444999241697864066110317693308657795507347920682139292903825512177916210977421733056749672144252011493448347924763914139882703436159565124124918246955851004226832952948409695679405526533632444437954874189282824372979091429548388391530405618389636049206086594288002245531416852066730262850956843954271502054443527318812174746221146630358916604415683940102611314111720874714761827824495285566717564520282864252354624297381417561341134806439849803058917170897373098605761224835499124821706928585125329261976037181422465376053296383801006509266686471754671933559151502700212790852051210034649454465540391927151247249697351024152396948073297970108397878445669740447212316283441778380656716176702929971230228175370379114393254959190259796153044990990315357871178177444799967231221959939570039364795141550088369051686856945124563416082584746655962910250622219207351924670207711964603895814076477754699481292496415274119156878702879633220638263551558140035037012551348570466732502838937257095841177328887725125230565074912419502907546486694593987798599494184519864032867661511053928643702858370499773704430201285586048552399564465096908261928208174488995951445565614430460609299455010569793147571647423312611591070863953557697620252248246509892144241190989195168062487775860578627903648310285204953198497839241239157063768728000146224870517040973056435982674336145978719575405672050470299822258883219212741235929101153563291182663715533565422922226770090099894984479263308672743474360092434569940676736015635243346373914214139187938043429286555995003006797632413321104650031518259600888734310839749250708898711926610083488918717247530631232221280001559774877123085877016519303331528875917993496895625841919867864116819896377221641340842886235945366305478667530446359361484763611044066613972744901981572687444941989293029644208857330142334741292985370881015891758957844609354457536119867409335726374468350593792882244094379238256704441573229716424794563402588549637223993778985086830415339808350383321864370715568065961295042188714415632587712451749071676796866390588796659229315588121899798956047037324069111152397269201842857691384690862785488345754479065345333280770477411765106641306135670410925565594192883865014981882178385626581638367629551365839526604476843232346266505998465766803501245030499436042608200290454573657195025943750968397657111868144546915546861132860493499089886566686604844334765196096623700494916983533137422985567425177332409335582340443459333270501454959667639810254742650427595611069108303543367152468782789001625544763886783499060505937751413180122721855401843154220981811654677088635924941857369039615338292623557669870166272214605205058161009877203427420925733645666280340321488503598136469660226005862175568861316426911182637578300994355447686809251927148999372488571108130088392933212509880771520498554656872451977318527221560855493192660475977535539557091348864559967010333956529004595966944399470706200099990217548753134331036093436661112168256977901103665455715259744676182409674831656103180223121827358554341166723698763819075981295962061446371200315498832640325126775522401121235604188771546592382499785593876264721578947249391118039926911111996697855088503885253018678399885706074699283667357173187504516393981153695994856194853835987049171061377068072241975702140218122773386009150657336375809938908638750910385785679387650518678234590046657552843209061093012016380191581535933937841257051391204566248971356003503982416797475004652414115942159400736942394411829596886724860957121662802096501336958525869466566854930520948509769586788887285229943879518125385935486019819397371997151557977152463236239035009039271042299801140088151233134532700494876126030775180164018201314672317859014173626685261933669375085791231476306547686518339049201917103910359613146035279694375926204952673959675620108244575145280269866270719522326548249446754467980439530583628984836186653129994483853029990899654479396755123840078925317268426882170487606934802927533822984179512079567668546196768665310654896769490876462922406687140476244673852547773321367592676355565555314122750400643213110037667780081683428919308158615538007300494034728131739628477283454675281052058845233451982336287722134636937447757020812025981135487012092845844310303347621912102600176633625938301171071053265542131020206507957957100049643928463802053821589456457547300433368408647859120235305901678424859879250095921797502253814196204894079565422272144474874551133257693105787633456844129253865903803807217187103509582183661204201128827392455895266506742715663361239926107491382612088610083451093627488352996856508474063204072025318489082653924402688819088043912774647707711077445701704131711123876316003411173462216322180729549489136335973528683413202464487112678038036377720085713790714240189397186227724729095892393888980708771302258700782317587913111243819053702463404510903167990058779090096580089474186739995055702886148754656050898530228048147954873224949357789294317148588185673396107154443311928898384159702842899259983124541369557830636263596618262396039679616988632718375804329128543066834762465335564656502992113556899833516693077864025320012509575262136512309120367059748645974334730309543195636474344148954221531527971059117634436792192223684180514537439840749647843222756352646100626621549429987916748771827663534672604591975316424774848989002322738314298063506048949860317828115714843400834732844142468194577879126713215642566273348753635417955174358842449285249634879574955314541961717601057388307415751112235119426834986035648184388021186578006802483915521950299049406491293701450632642806557070596292646556583818958466372283208981765521081663296007018148775433717769099520243742255501220750584307800969946896204943349772371001567949940617383129985791998547044243465332976952299300570740026321612463062774409452168548589933028715138257387066156895111247276653799654808166015000869875546088074786008787953364886608762853472010168274503169954649531823346437190173328118255979948689857954890605197429744594340481274183006770039269116994655285792965647671278337599488198425692144244449375131492184764333899831180181805594293946101372329193381018161951238615022994474859395678682500675464955559001244369425924443325636207341693585487326887864821980900706108474564821071528073772140585703283392448628413929404141394929787152222318661781043462617932360224838641200705092839734364982764952879208428948444615689104702009575335577342798559912240979760044362562392769751545924238562479760313091996235696613233729360394403687299052322867805602494976615689644083482945260936365924334091934003566429235749047326720626146238146046062585600757109358909808458029594003222653136540909000413586485930317176312005330076317974911665744857582059742926135728334318777406936655645485239440238137320193375867122863635436846871666008347465545384123831468407421720366800434250703752326104800891564145669714505433286126928965324976931334506777871676221650540162730045727113149695111027491136890181980911072138201882806513717831591816337730810691891515051651647679555435117807187355740370111820042044198304732403325905146911929242805878435883589437261087782008149880649428153623893708338724403854361284374834075419636068499253495705355499342752937898291938054120989670155289985129316067229102389646477379850356188706545799414607629517458308395766076860701968940323770677487157613029565735712555860984051027088269293439360515987379192933029360364642620816704159038930255615883564982423759104826953037349660913101930161427657990306153932819033123880762411979484529696708443911528978256684946386572788594021636069693219663916974805269785250939325639212491383994917058445564938828161721531951093143810163970534278002476302992226669876065648595979294097175152975243172496881080388408787636581765816618870947289049732517646346040842780798807482468290404108542438347778080751739364496291567287886616468484854971940594297003427690936523286053812657747420313191401838600307185910307700529339644279924758553520404336982461013339845297081352951707197892386321377859244898199346013921407346156025574800763565148068937196496547389364693847671405102233874388686028167645848729041013516845275936036918718211693558927052190443938823687858291997775438648983117117939316914666473707849585970359712336079155070110659199837915596263600413462313023529511432925247540933041377005681343506312725138997223671887342118328078007646991869226882777342098125644322552005449006751538990313860401963693261539247302678956677866056841235776060478638645031957041081176839077339476616397015694599969097487785256076882835972605928369418870848593539914695000540757771754767288092646102440175205344997519360584170324314876576270722209131480793952337127762961764941315994489010585250051665586503995148802200120242662579463790356731100824570132952522764419973230304037786937101075826101163695010831029184866946066895644113954794236268887209730622266592440563786603620189094270054904371090389101526203363504501713359967004231634515770357249987187017912516368901853461339576111483867664103534611070695362633875696098971241211930229283353636403293162745469535797605606192775923831374458642825342218365101889523950931079111943229417568791783155675300355235755600340760622840684657155198098785164817867537542886925743465688079430687713104628713901370414344429728603561166065621209631022364053973260978716509876681498059217318708248584637624751702180896640677418756356881922269344874571401552561680845247807878588211255148845809254271326916311689884429712055389163145024068962865549288034720277166938952904610768320766648062552666592568121527595420893208062400729415082395339261435849188424452985230608485277449033690086181997595032511706085646919011536970094871217357256621473355885526779860654314378967045005458176117088544201248223954196378757621929642543195852947839750263251698904952224224620670362399556092887313134410123844247477983128405883742904172236682397335060582537631665508018335998006877981258440856902752554594044118514836361853371575182149040332081587675515448186059010306382357952244178512118214599891937944689224933420079030861120083824061023513518261684717536456608786077183497690481008111425964904281149638307882319851516998761189579580898795134258672081398920826518840072490628264777920115910191304538211307657299233543380948173760245263582574993898215271850982007634183438185155547213968003624934353114638812267019342143463792060743375718473457969369620741334342670646362504881714787823192104398418606473409096633687334675401171995414366358684895176850611474746850223128912933541951701009479842053017014413222916444761500715685380522350182412212109435776757763971936361714770889679753267399760352097743964080381004655082947374847173665116806340145490997063698440707094377823596324347866476972022490451485768503393775027530358728478576673306695420027749764675981102001378002670824039484433311733489534880583757148185932943684853014750712615806263864119630455352187468794972023056735252994891699163955474609046277543485602311984373696373927420464192827847612846395347710834189536546063161475394450761760986802576233092680257068075434649583376329198672920093801193024091423910591352281875447427628110784066871588075834165333373828650526024692385689314438276289971250220941653140999038661951910728977550886869714236684778528055767680350239219537471684597131239047825403525198884930962879967597639941598335812211891903305642030390866122067508606058225687325394139121597572060559480916939646871578266088956141600135191707078470589322309979591071721839173124338283682155319996639113825771975931768372068868816349293727705084937132838982573606689750396819320123651575149676589962145730214438779655168754324511699373812184175674781749086009633094107301026706363421994751108268099543946550462139668705134873157062239894541800522181185930079126615910964676092495367690674130941049738671132455963000828115157924267749666926765317532149720574358630019421220688758159043468771555039082027977164859246282815684541051179353508636159602797222349144665860655223976377551228092576356971132469351999404921233974502766050275823769452574204567357879766854840160495064043545412034905388308948529854360650016105890336991873115413770958645516585248748955942982222204234160650519313027424322945497335664070875312330647596402201676881431817961235569332307517470675093375623102268339406887457930069490948819931227493143519831467573690933228695056000237072648361315761450016667202094632939954643929170286596133133238490195200510417240081933665835621629348869485127218223348253994866149641459934441762295520114634331517542000772068091483756232364724751445217447694016091186497044825466923183027994023841735994396558932791870325030128580236226343137386121081736978939507009589008153358657097938113345683149281742932975965024905566300827536656156860718044433007813966224632239733316007454897194647744761388413408451062682594651718937948446459766624465164912842955091013528229488309595604697550533499453026558385896447260608317189256377937345498211831780824898764994322468215940841036189873238196724654126036673328941882530351048008864938977498556200004063314979628528127279171030905760475250473261144078723912613214153978407555073730517565412749593266227938203131839867072410241061079665946354754955667709709802308217582479319675582421822969061496912792099633917229015916749029588702186591000844799049690740199988511103820110797772177134292581366638465647094549035748289292214842111215946143854241503815937404849207030341557765443090623081341269053410616022086786023877660971733798185624609912239698891896855644336566782529135060236813232955557374975250751528293749837971303943742316432112508786361759335049790593432871819694253343765255761532699204409520044490231572237988470438336160429722730707873668398007798987414867770236875784953200465485781950115748071957128372567851886049045110088686068507011951128933997214929518407909416876191020843147689947688920816807383729052287535708354076053181018049768822518586563684243772075128335915503483390090325200510476003922268921385074833467615527137560341773108946432597158269264036287951008389181530870988038730181533445979090679219544554062768366947912453216974407639186652368791262042748036693952172649315866642839876186647387643441001277040846021871380758682262750419451067268938168812973850400186072974346292319897353574338862697176949744305363127346142024667500099826122279982612764887000118919805283489714194393062572156316243285986618471592395058551739838007746081285820511061316192577380220092255143868982735565820591665661839593129032330952719981627339269671095067746766678523089553353210177704301305866005031348614265395125505403655445447001572732041953657185673272452759766799133633178991040652141191834144264574949312142573122019235119280955087993285823163367044655369335394023712691034025486879430406129366052359926607067598354249627216143643729599037256117992157694381972627762303478006909926947199850275943316280538833453759856664015729924540247906348485447410439027533319082696775771237802820322846937679459357017478672314434365639726349118454895893050818748509508463673191609667145849447600833401633454238236877651020578241618723599192182687424534708746915297812285980886156107509215947831067964556654546950642109532863960786710508504000428345676653276824136028084481326067232171623769489214123250335944721953970441733048444569424775010459284397274548214436105439461344492371449063639754458239280855754801406827424786179270231573863532688330989213272157259999048340318318102044781814238448211399781657193741284318182997331545292983827313072776261934804542179565926903319537186280533410223567771996766564957740336321590563685585506696938523370614429073676361269636230144436914957184184524585428219914341841478035288851597227887950284594708994374161229038317469404795815587609168038530958937754631345251462956648358345877843769701191111880172642756670982013806983757594296756443516173801250267334906390098115893710193821219452011078374604159710060491857563865457669616473783273862820018951853680950649182176827346124443310997447957685210474878554121852592497519994418626036881772079707387544243990457504515086399994543917097018132980069075296504607956689498936439429682652612144062466215754181010492550124345019464433197970691515845025617788552042005646035805228234265129962235217523177359449072594826530487981764242748938683036507193075596849648980397346888798951538523410927658643917703243954993204432324771253059847226832336035702511186741444149512034654692672875473778581945923865640939963135647908732249728256903254793260568638003368616361959761265889802813044650427963292132443824179167593449402600523600047614296670884516791990180219554946112744825167603677208842124497660627776989991876428350939450314832549953196400936798445486913511410028555381711028792588593644765841801218466043558417651034433322367540897968499229359302886424275368159500454362287290341884422475046302320504856192967294659166980494596292661018944709948484314379536841152982039026223755905816379107683632034248681368180915368615759089961115208266150059089492741722326454433043444033944524843810680076924502093904328612760476997093304500665507398070528151862134919747436237529661058935845266938141249097184524209111982749155583360949254891676109029536576480367337325295456961690454223826122898416512146007086431000338477703510539064275001455654956058005559108089929229621972026341063877610112739913038691920398886741010675518915135145846934498315188991812243700696616509866376568584124870625299297429916778715431335386199977438115475781469032707753601928944459820406504381417738170872856065462270857277198193909106347695858489040144619627271653750391778409637190366903625161769307532392110641546043507236596576257534144042913882274931792513598372148662251395654525554423761023394220971246152269009709620204631261606681619721358446481508377185324728299848567040396251619357122591324705417130673977206046497300822776296172340073906197195488371784449972747151919860167422991303487858581571042854233619063293210187010643716568586063674089567734968030965232204854043480885711237137691074896095577217953120736557578763727000167206196557351935725272180238482915340866534971458916504242916004925384114582356113796129311333872387347611117740718705056463455555282361520404469730371379831259385816116138789917880606897464280304388277735439007018948490883037067045623017380879797181807176272535981925312862847347668678176990148203695243375388022337603135182438874547201575853002569869053686111862831610485286424434452256207393403592360361179358277267583925238089311260978424699292741163284310103062714852001714925566541348748299789313579936378765526588138569050429380454183838501229998562668629484861625664556034141017818036800084345017126807580267795284994969086251875757730143728489635398918070029340361439884570012677481053444205114848120536911068593343366971043091841709166598323352573706944275338233313626921535352313966641778609113353395911991517160690471724197803688497622757879290160374511386834211005597895124456153386030675053260546415834633617641158368867691482464718951590886414875429824735249396295135096164001480537066863182490437936660275846987377378042572472164588067272019315242529071098126901101777498445283335330329195052483172817873574953243288823503126708528150629666662268877566825819363843992179742912307612900040482612706224254646593835914195649751569770442282425792741564208024878119199552244430353415841651155755551760234412997642307675179801279227743928984869940649012718792594921356049230684961015095902260452592546882265356176945233706215433650903368881648852527569761688135861037728042061425233214800837441027894996246632890616379353809899838897464151729316118021121456420529277824267233308170236611643504124210677886002614003000682321049980100995610245930289343526969689365233032885594091508264892470272450088550464292476348520462044030946385778641753613352602189690101956112463179193180616187816861347475047104666250093263444394741528418193225659726364111110100702101020486163997634365450581389820926415371624637083281720751113773038243230297413510350069984571864559395218665568454478915172771901274295267218618188610844768995165202082506032302268264166174450966695121540258288579749860648462409047188403436614201643726436777534699086689145432022191920898205196962450676803281821159177077547250580734487751767635709471192688202336246856148412539089370189435885206337162171021451765207607825402146127180225287579201857486922388004867959809398415308688243868671349155185988556648560079128923110663864076283131700514776870310893867248793110949038293181676006240152057786518934725624375094673505639134018881982139091561687517180387217873300256400325321600570046559951025427799425049248714764189647657673204583432197949471385237558332899885156121177670168442682659765211013313432577739845634012729286875258394537119697120334418859754553366182284199290140011730442657788647570382022103037948471073863953457551920676302265052939868938674710699790123648406300229160343521545468691980247157499683350138554462192624786250765097712339617083046946861089723132106045180691536724805513980604571225032139234951190561820742873779531455756439422709717272743157919107808050815222873633784198662649122506126591321328061924665288484777621457590100898525384408306484546103088498665151700725890957921708588191919486429535223812185618440475524374110670902939480807953479650058278041517858581616135657172173562346738686093882753219063534346981156161053412609440465810096295731952573813244209768717834234108449509207177340507573076231139214576674121108269297892217083049438617906938490186988322127548315248288912909636715084228088875036663273870672190422904246033484107851680463605828998828346418048805736628130744622987645979823428731663387766138663057143181883107542605711463546751413846012751845389374274108685800233538705221812353394212567390660247355856928497511307093669687922073278802914903632521350737569682056145497235843225790128967528952690841262849387090313585856683733577036029155466614756960927544761530955811037035263361562361316352214528126278673344417822264311321739524685185865417830664023139736848886266107965229017963134835466369506582028266880679939044058764624590310839334714807461119892436991161938765046220365474474109343891005646705161840173939580945917656710840959378876505401453732740317352289632773605133254342333083180735791767469411496354509735627911501765934357426559921967574466293620523957408598269348481987291128018901172424350772348048943121572272128447788816819410260818857788006452294421339174742343566643683733618355649282562684835272554174497813138127579342470798785222777648581400619339972999885341924210341569740105585228264455939088142909003390569124354909557882199435560796124142643512740995558088926905348700127393439301868020871703349409303751782526856357477429318016408617208118241428985919590144760347606742238713473910114732273788578898401950643772970477562270194242470922266806661571646895661599347011353956770172075037340242434347825069415213755376458072829993215259223999720147790158951477879524595181400056953598632613686829614075860282108291269509677909537828656640381414833567422261842776925216309323821929290374789582868542489244438803996172640734611503628995883236771320619883247588503599201628376488460045094294049793500888175584362639749948546610754328984157760569639762969985849622627597017078424032170233400072141421349731609848112643081012569474896479598125794490927928140109143443060698332880925286962290859191957489268765329579267379566141816349879376965213847154327963702815031637249918241220437964385503849973495424282540150558345772702639340274883528516742965991095740736235971026730995566275172452182903917387741043285110445818289436926554185181252726949529428505745617128939300045427708434496763990770521149227131979646528622833667735493681218394041789041800810816749731004451624788762685532330932108114763439138707407179165825598364983102815292839940892753908267637480475988576646289917491970511296845378214214660299918260683150996273845877261071125709712026498356827510833982268354643416582783948634153157497659834560525315681998784501551429891604146905027413407330301877761596251137014407970244229794569330315966585715278187756220761476301226160929240084112074884738156557065603702700783702535872003805388086840867814519532473950538882326599934869590423150885882010246851047397605266522550601379567914070174955841785827769857692827857923587883019272228027829234781646770867525148526689926623296536667565692660764497126082142604739319227546329291623744750623640656305410931577996569952022082357855838184193879814229404157335873423856164344356138349468733813424706653807815954182651118153005872589994935032088042753812994385357087968419341340264915479656514384738584560175973194821383053208169961262553246403054864898492489468077648947650556531412199957136468709774460313151349789685889349324417329799123779534090841846884304944817781895254010959848118763186146615405906054793854826152165368443853269013576579588970732135323959887938005788853070170856662947470985426733970684810344436125071607957688793634929041242227590594405460504949453068477689643541907865567398965964072944954729492916078537321391495286091150181254408307750358863698421181360356396469328292444718917073135457887041858127358827921400307809725216280307295083358705241303722441257159129104600548791773499016884945047714038154869612088224088260943342370673804270159223638688626899554552346993306089472482517453610709966177494700828630010729695765156209487203252140044729278939078203213589941671286246202943445661020588905720908568403417858276125856469955982517353109644008492132133206739239024601965544077670430274072223102820012771106569037749462860847451311766052118998222439923814152284630882068987082645669254964280467492806771502568109360107562468935089748640520244622515421469971780543143686131788891108104219413126124660904945482558670735254764231790183539258566480714309012660968737729328144013782297189926079333692459835195508377332398195522585028212874487222781929706019172383234426109686530510488264048126588864700246246961417170740486761615408631474016997400543459047262640902383961129198054553266700492894839651436696704984089779766790291163518435838839276666560919316549500657109418982493283302888050814746056792612598873261819098349811139082946413255097170956030502065730598543187598594026982432059406549521341901255692085085665614261457035338672350993042024811657834609683194447982909425526898177398308116765233081643500506660304734091685663469052587472922907623603933816266161017427757740897940535937169868949570760961108095370765889856485938853386495389823942955739349749219398979701834648783164249452998528735259534196145140848383678484604425059142188832403697514794607143634343483752055110165883589186024300086251702540231423078894434349581622588652246551078159496215228593234179209905781245303360956509708122085572962681700151131381683576523549274874907212120305647160528849584309174987683958976389185724428967115453373191645443709384213615209743593088306765338330780809528960181109282798218212178981821410372809464232702079524240527462756223871446803177038512814421478065265681229254143405050866709688547952706239102328538506630485979924562468032065607576993306508347620129291391845665274893185825049944730931189203581565721039256239138856454875468554445572563215008775250647533256901465158377033015367266039449662774704878875973555268937177741904604238657263170754830079398424026359001048352144222070163686265336241275178420425741988601371665420304224928871140459480475947261352918227704389948312292533191668632806362842576874473577077165333236686432390149542249931642417931538376165798618394844083112038569829323210593028378218472326926679056291333245896855594266754851795727768699878679245971344828280500691635300052789225655962114359140396093678542702192374128652810521435949111243063881094763228286027983622903672900941955262907988745752274568834642702587919674147930764439628533418764087868968327815411259294526836492180504415683062519618730633833591372284502281296741145673539178018431139485345100133623263539201547103972981316587079647998955887212226414608904602795731932275760999284850326056740596051838945569455323991523077294457239573330122967206273411490746177284626776092902033756855116682582668167997330356594351684069724858555121845018871158582662843963092204271920413581081746107779092353108754250799981076872990887616969772177927922863110211953452911339900804978091878168618733905920391206930093414397371914794596080557516853619116514003687383683104791778635149283662859287977267454650651731512310563329876927005803292972745135665915722485934196947092115178381711826171236453632019003597052891667244691132793976831960185000491936941924360210625416547148245394746714797933425784809443361509317014279481165185310551760362247245727822716113653920780503659847184706414426680017786442603928466307508444072116925395024339378381754575042170828539712163047557452104868504309993776289876015793375005628788813692646156442386088084818173965433611753345654980168600269419707198526658265416856587526969969705409731034228652964788094369821588830449429167608788832380600037575281570809342380736608213698113835015707513536844705976744338252465840382243305608529826348415313314273518098393492864943434674348556321489786287003209655322526220748708963975314534011809097237066627940328289189046423692372110024379544429569346212151203688590409861984708662181577614991216231244748959369889092098676323142977149661351477926301736729545801830241923202856341392372936625142199763121239888603649876980223992066607513634829938440725524771384043565443997705036885523653733692713490417610375890226946935259959145923896228190268976312845949261965933942453630465920586196626743112129494514809263936323026234109672144243078827321086991920424261565121948403000884416041495596925326073345537970559147053994580297525566634438150130919709965347454066144727860143476206335294816166937119034760318774848475743756866929201934477782500208814855907348196318520534139311347929557501176554396704522915716458043944584088167931962417829467251071501888231997554854163332985340496056211153543559313570229907550871309270421158964900351615043195675940564772021328800019212432996090278252228320456217962742045000168517760636889690450487137113708546365587444669281979880685543457144498822481852739740093402986794148505069671908754751416081184469445860875729313135866716912018503598992742526899223052369260618066214628721905357953458529301694408387889222055851151395190125758276372478273900132367739385389635373188450209192645930443615895616159050282720081328547643582976594427173010301260106768082974399345875811880511597893593190255529167196124448773633931354384263746035666248392448027985330292254557913048750398534812115836362450429464464411638858827106035441569171920406713331220033768085553231828564665110134464831677666176234302712791194780785054655925268259613398224556179123513621774564954473076832193150543851255997951159271435717591113676903125851880089982447615336404231955435528020713763064554531263055503716978333915464499684659334071196235485688930845336664991274018654066674556295250523059100433504294323393515777796223238629936363545283130416664428243758808288337695252108628652505284489132176700776240304666539301918668497233738197458277446342783144465179178240900099535852905513724085728549139977132294284140632700243012133951228204770312615404990105903962726754472114714690603169560004410430693982038735558016106180277922173386006940423413617205789984284558759945244277543383318622634510621048624200699918341160467454377222947647063638393568983392251775230009754360060590012241963984407028521878621042924903008053732438692843422297947974550704237388540706927781970544008783472765376758735323770096519481478786032763178133579825809091130557145921190298183656716427055382900252267486935848628572120453839086425918564030682792033553037293732276393638123336392629424899593984613784685335293917196432279606842654385775443990409222414256381756060612471353216240037806260362818792551389045337327966336319850983856216138757806020693766106985737385119560556591454814786764294619233473081119349726301989008971769695045478685504075924641822529392431125258835388383288586740440657679191619467695396842054422383805616455729554637458868949695799210181021928698306812372753044572387878715722510939578161253943614861036411280558156247447995745128868033007487110689985731020178181601763065277854652356859594273474595857291547466342239199469717564124617452893229119604418851065518909447717587008177539351867864506764282916922342313272384167108834579393064377522781232048128382802271004864561415773845462044018796407309455852691726102640814788109495438843664117977741496532579233624487597331265288396027010919520813320628385501707367313498225807701180987169973844378648093346280830826275767332733370745499436039246485618739007913842539010654549879478749476207325237069838424424722783859528068817981870540393169397443260076031059043888377104308785507273831390544014740892705929893619091162273943284103819203132840922583643651505738875419779799297046674087579562312763253059565974260321995761164568832225732395147570001061959883123615130998352457502755040213356890614687222263799446111737985038814191363278227645609344503033233372344013707576858940492155024598569365304693181617519315573092712297430748140256707893614567249516397335461482854606193658324972034027816662189291847174972012780138831042755429404878885316287798505561602663246030692346183875797089664488071340726844137778432249837533604484799702984128825822110731337757708746191213293604170254342863532341472442483777146496682222118776423966349766393753598647217184738997253807124777057389473909463539390581789023282249605777805329716618769544767040752983091049596960125754040524290216475183074550214768411519672476614265291680420499750851319862306132137818567728038255184479955703221458609701260859245667659160640535038973707298954474737679470264946843788758013331618224589368685153170941260194415469431738433800624006138298808408085216143667288972051331926749161940650587660949753225958746366676401807083499328721560231320739172635720286812676508867177841852253490775134104561125589038092414841503212749603027350559470959315094327009816474038582436719178628783518993141926087905272141285945699200438675854190065440683237664455894887695997054280203362681968994953767701269914346131570736954594443968722947314917145806299014687215764726151373970214453007027859247817350777264782272736932818540736819247680094797656103423039558998706821904901266119770739088383621726425909073340836257926443007723951465577028367182370536422481834153365659704441576730758722226017134443898602277593062223068938317855227474110427030004780407847150312160650132303320538116932939173019955197915893307247272990684358459043864016735526785247260063680594383225915898510928168172263416637713750186451783340455566707679689203732249666829098065567895125641712996584443389853290181291571429106814933547116016630681706955723775685533378789113737331247574257715278067966708447180641790994130255036775657689644077753665061834473521171569996790459515177285300708129267955018498742774752527516024703561649979308447808392808775086356383689788974607449965407524944638649838114851790062486138944405033910170255572101819965788021467142508025073121134032727777843935397338386110215014398195569609892679296599467463902566691661157261545949937773186093723120894493983986007785465596765142923796802694367195286572817987782112520751210088714245937046395938367084282788653038270296747114092772245913905226797476238621053300639585741255145670115041254134665450000668362470819617791076167078385168963033266136173328119456054594960807038917377946146149579615263717093251265295220780610172534612453894425282853723348123722267583643226613197993798155327945451004024288078843229788975469340909095410150526709071946594817415848422231185783776085261228432683238445208092727370355818839555486062989769259018280602479292348591560787227974882636784375482402799030179856195443305630543665508360143671760920438792922465906305034407609669246054395412843093340726896061890155333091852444743164810117374194148886555289312896493843142608850761082009586500196876123936302923799637802329483986304527886407943843385679301068761648753599414540966976475954066634536315642529136613781249949733763332640919817368622326476407839867566803214594438237295274972560301544534511583959816155383610049938161791289027352359949023717420742883078193182916548491022770338135840265164315021648795738883283569678317396207083185042489897991329147181765145738462473389599635884118037404736035612553157551154785201894279215087324103570809874727968930168546700209970479055888358072468835483011044895337490628765522811667703706067583559752088188821128820086298550479486512347228023786595911436051511354319179951829135667774888660539754727879022067515668578582017744704766071365303721748968443091659449594586260545925253628695237441239936084281620684800858234004681160504347329712508482333473656960556812150780896070290434795685560122182869108949519221905072727154378081745199505177135609644087058509854902068483944157968594452611223637651256771018816598531468609804806838949652047133466301834055048729436541421653192899514791648254503707076609988737288314474159451628608918803627734492490810225830881035904348669134094402641299503030246661552475080328737124765500271270980841907208167506386808618748760948760963721096234809746242134629520901139897780230672932712101042329753109453504068411170139810839424675110498144321411513162632156480882927710186018072493040389353458524073322859857040114676151545533474101921837586893566718394588505702920109829953943477928268892920480090231695600793584305944721786277854213502382171214198040702722959550944082313362048422934610352825630400971620686157061403346973448831343974414315511388051463212433605491102071577700294883686483141998440772517882119709807976766381088370829879456671705110036022097763775966548994068935083325078809946013524452110834223295656923877502285826095384590146971067195581779046168915215126787485001289257486713889354771768129688406165135624742415488598837382943337691907833215254419015291328672803760845762061835833154923466661870512006191934900877469680503616108194814108582319765008292546540343363219115920981251483710040588318764899217921746358363898572295744298634192200918393517140160040606069788196837182365421031696861020631415243636291954264752546705655198816281751799003111912167966205404865779520309347908770992973116868672782604566186750912512623223428194227090498430874114182556870963313141804662170057332549795812273814397656682941704237819908392092528983658186791197292853747018742272896854986901934327916184801259441276659027680253406869162901559130821282078370920822451130926231221928628150229723790096720332979000841323530572181749299691845518870317324815407886217625789610755421287212378516027426854800963756644915641344464589844730414694108869571221442548975993176116371953943739252406809914141944601011052650623727368130440148453657004084732737508877718000864980495011649704761063618099806635364126966135892694316661940188644177105932284705298676760674622840528441603086641708006127465136299724155264487847580049864266375678177056279556669694669651290157050688804080469037107524337117348488968603897588382732888045944128155118911667219037169145227810992602632936726095954525820937320753909386801312772343716078888916323989033898200560738641323405541661275348966342684981127473088365202796060037893515388068758755917585562754025505465857600841915711866304980494121207546739836609874414990671446553024472637596587239873355763891946954615427833147360832119178965704215410034722503573790672947542254004824284713235386862311209910221929138712610612297960752053334975749204764981618507773076212971146357182764531049312960449057308735508199984960103243227678677897491809137662576736043172829613577204504399772932142347081083662143466299110204756354153663958390416229656351737843471676227228201267706835988200509526424923437629525502650730384341067752407396337944141224255425586811841492136697495281613565787303237721959325302426036995372506603849912611848549343516812776896921960281514339813175192047701681458339328208257420301244364899480604026161323710108214900565743237711800510287323984827738716635254503241497733925821374050606546501180691733474066342207288819585158092628816491852371741255679707119715192641796521108411979935731496882348085864010658093664105645861260201290976248338666166103203367442032736431923513715569546664161666521467653921674274405495907624576330729416019616114989852461041899472306435967440439285240203495000495515081536709515769741069375213819104005032884377820237999689203133629352334526290843192904760056860211805900982619442209090291747840189161710454433122709730741080261169616012941008950704805554306073741848260938894796157236003740423260195944955727586108908007998237231186279351652777704434435932644031922607481288602778924334599752879502619074954921394320129587062737658610183384800149191857350840786178841802584012749713982324304884725611638628292477530808580914489261108514063128273174081353258386863430289189386921927079548980053055026844177280728382328437177710366548116527493385327216779907770500729411465282945460259313997348764834553375669589785340808623771791755174226299316488780973029386333125861365187434592413965924254180449033114468507589534199927100752368006585463643044368052389727622789104001395166575071972698792295992272871223286823539807168770048336481008431172687400257746613148872183752172514830526000946243823457252658646711546701898220259140387431440664362420555833012610165430091923126440273100397389337838256835960564850366399554227277394154943958840234178347967911347418218513722079257946192460981844917050114657556552853172098267760058896145104097942457078002449813023585294558676251587198990578727652132404528764289412622368542006317521847739549042029669427275402671410765364141479856355398838066651627414802436545809515006206259218780636659031533623545504243171064600600519866411705224717716719579830213031610103916909397695661269240444433764493890267923334598702245063421440945109824941041098564194438628954118869025463656310966684547015100792994415725037785844719310973571610844734264272863463975102055050867610921446350753958038432086359709447713601695833120239566683100167470432934304355259266130126151138009068821980608159916889280359594236767154348315040264517141633616431100100359484707709626901874159306490504569944426140939347835258179616844398375107099396526313199096956565215566331978464778711960439725775568567557473016225478711244597224205163622299318702804864109394712931729777838793658014116569662168267433505875329563132458737049753584907173694621726861370541800297095050436350828344915876877039023482437808329275077615479301673845924656585111942564213580950757965405579741036899059254083098257058625315513480689663485896420539887214774956602625803467185356775852332461197175019443664658603825636872960868501394007847053453543904964200833918149152073746141884266036026917305905317705989223576382128510618797779989600019732710005162481662305493058064780955374013701074814003134909632697974943803919096664901391499157586829088658339293791237137840310912576927348207840877601026183843675803215772292671636412259232476683455158751106947291136917186112757574745502702710265944478926934542744570716621644280887986215870400023721916549497715640918705158093211122417882893786574422380458155167191416093473155076149043516954789134302960761773594650011523536391921495416734938538990330565504967503257852137721735126467359242180104743988880122942759849004619602951834782708228040333098895391525048151494660442543887469991061047051457018158921678801596901533028482504551069177805750200239015695440824402422167023492089104536460547049127411822550840880839344147764615471084030141533047421558242349607884310573428091928155196276750070868215398692701080606546285350828841613536369425256253835851218532159968744141597379868215525544595833194702823939165386262047720233761109721110848538652766729380073845551354244253159170523594581696760805342073402723453913045364619012364353691404899550506640221328030309990190253969517757252855972131580408538027378286398896617326298744799647754746241216178104232295041980703045140626192886595229612120174811750271312055299295980879869620838670489591439494728378231017863873818630164987076557044219558800419552333863022216588142263963444619913447743485017011860921763518161946434857595548809782268592094308914653893360521075347523145522937283019215184014139665174622651719289291409786363072065492966022467142659022816130525977181622892944014804677758467796291779236655489468464013963404968146123483113613778913131280882260246469095030142874314583925949786855864064278351266018870068936861230878243300135301727052864651161267980271704867885345014940333115798531581345103472746060750456378809102897718503266914584867628299966226307515062489444075906803739430492812591216571274875001243390616276836047240736605403170885263965126288101137809237695122910921108785086806255107106856420792297653837197006025754618335237472217721666105581918171159997685991352877190413140052533645114703221610309151366182809563166903286465862531761981215061927385978529577775620977542489363774290563087585158464836349494623185205817662025933501792094483103603507877319545202011874525985841448865340265803527422993397772812967455617842777218190509288955316382634074782795207576586664256574538109057517679831775447947401894840445374252674371781717126761868745321310428104563573338482744387192685296906486960568180682853263676369320907516718816933070320859659180306349758508215559114256488991143648291131335539543471727224339995845165536070137362227711053007048408793906213441260123636407986605535092701161269714665791370547812931332397499459268571924528582067596448305400341522573524989899667090515110421388151885566477076690566886476720464836993285924584352099094690916076416030355783381435518324794907225259367612807340790300045196563973841217079449283330417472655864274301516335202505349525346812953979924036497335928030966766857939304988117878649688282863625478409125496505525474357318836949877671350223143144597873694809335600518887226423421406619201925983634159103651446722017598821459847802152003390993913339918413794290945689125449730107639792203733785759043286854477340350219884246746661720669460713360925991051759168119491933626608715646300431599147316587397338023428027807317474998251601377006092698330373169439350867172342685851755570766729092707417662557231192066878773781094319745819340987968673832162148888761505465714112597644004349480079497906232057043425763644701898504673164712128699421858241568086202594251569426310808490066290631208916133361218543610390146223475031558402025539782652967750650541332351801214028404054088204986974652320161358332659273872230865327120317780761277177335892770084892794568572996753372365642022950267478499019082134630310615816581472594920529668375224675353559935188300415796741244790068830447579803640529871275130373903724102600769841634009840791507410245112451582668279983019814707159831797060508205479311066191970706177215735059475619724546128896996709661461384838582429338790204005884527876304605993312848645939538799308164183717574423117559518088886788887514381282575254782533906028989429603556916070027932722372369181457394508322943387116831698175641155653403183901197761841770362014314057235742630692219910183376372588354086579954367811831088621246058943741952548869334034247739931356791320732522598247906649820469854542165930106672796970998934824149944492130388403268646246681928795403611160214544087968283968918028280296848909515182744765032317529154090046405670878775083099807059167391048983010793910456323520703963403021352242883649432988745228914770136051477242896288284282095534475152558478489778536003648619623259105551078918465783799117302858081753041505525208827968340171956293525353980262792720678014368882431727888265127352931143164458674845288705997492473095862183808139989297408416237267544220223813938515091418977750853321544346354139969192632934065501660092042719660705952841680876568101620299219998622911014518593481178392158216804265438471201612406010729345178298860335075371512108142730117132710951438101514928865006916777761713520665383605585564265005271162928873925760544692534737155926294781055694618762970231363224650049298170946447196798034126952359886226039957114711159052932314236492726488053771619575788868898747981870849452420007017813312848097169075040501939125723856592104550732618520265286913001240751912712856746976732416313381793193770046939430382096747084233852589017221971251374364865509112379617752871723561528146993545709576437789252658570128757041080467382994065691869590651439541982168202002484887278186253699648078419092508827696186195045224424436372827853056044434916470771807649073080973539210113879610908090547135134145848939493551841003061630208947061688583219125213013732811428362595884658563937938536834449431201482663317837536235594126634391814505550720473868979226607835707257700970805843276447178231045533062079968527598868468523357746198895415543901667248160502070648567687371547930216158937901986501948959751426782448680951959724659995919847596721250113811115387444742612957835600198091269223181169793990330686821988382090879424447151065403441265478908893280829013175570791068119765615993444263031092731044662200902307966397602910204529250019206944362643531608029397297252178745014376226624129595184931582158732658758673342920454753128007370861364206121437448850847511979633560695739830891406217251139371699951732089243154114361037678920033079214522901415615113342116349684842039694944381445265109439081705750221873316257630330433791207174806588596275553914335715174604136427365981982822557367387227719682300219462317316605798521086551846389463648371784684459359679498759639170383979577460279773295758061642679226955540577254271634829769687899812500458038926932420057803968615360846984779472284226996135733914073574971211092547382912121908103890218882160205000888118713540225646811946809077666914648643361673431638826671180331525463598980457236443472309407967970631264362591555339160698326243618655732217879020793519860144813904099192700792593921951964973327088085316633999315955830379283055407575550591585070448008399203520714966837208003805222419963744831514935683846788510686420626136952698928722801540908928377847143530315811459774119013400934209187224952935608165032926478032682155607819721080019515888973721496122335646091341864213321861334996939086698219628686375603433028511773638098457908147194151410696243553559948239115605687625926886916558125072723286132011983409724502150976189716804194323758784884964260297900562191458003461812525989263227635254071853380266023739145118400562139810166893512624159563084612275154342798175591782727336719957254655928470603574670178122177764024810444793342944951015572809352170803746513222272459956674998116780046181420470174495606325572013326915475813271096487940702458833437673370864746348791571628270462009418420951175127115293082445569828486558614814629387817555650123306607099889466496703985518892137320622721082896401719820824111998589881274240843974643436964067331845143154095104623770924698037835381044401461194977609173391541791636389172244221002088704693040572619033874876092714204307108090391139330845087291857974425959686372467646278675215821521524264134301623944133351917041065908131433546351931354119337147042487316074629069736184704655594606810771615108560224175024991739603978188592781075828770313056929555670231151692568699777849716026707081754888114708923977748198930172259941086318651231058647428068559360923306359398006816596935140551154495396065232537089760522501506811297514737903708202968380272742165397201783085269736646773388995908538864415083583690852076336707289691165696143983148540185015367455059928899137301272864783231240104339159814362554845475938375120387289483883926716522046474193660927973037857885940661519125783526564234275724808654514317562039392181689011236300529718207286031674939742957161967925827129956381751010332206080565818517768518020637172242631250483695173563578645788880216854498888466524372641510592224206240200340353802117909897870488384227639839755267526920458044230448635289239183422102154434743110051649483011185356903959889129360337917279238938550804010227289191222777313563048043463607719215822129237830357454314843839897007409515705205353476970583001563765320832807971143561021307228947765625428978754517790280875268823255921709613285386199239372072047073775189296680825780214936553024355101047471419781691641196873564931178748797815929372734581182855549302548758278741742788728663590161309774558786457914822747528198471827202433221672377194793998780352899165739669327192678831627869617344501649716951412880943464940145025951293423266177768713163043783524034780337620005217299348409070333967962184020541075780910558035154768781471308550214315081740286609127977576294134249028494193528028989669944677235196446041307848514242331473668358507500126127161313764130905274793561063941363899185206818478865165014887601038436917626619575771968144173768709381660831880804737050794742339969964314601435920551981746894291082525729921099986026341294885026361216282218720662216740257234567941816959256804938004267092918637182638192534669717722525307650291115360802731092987242124298479175533010594137767393334752594356010838872546395267677677229650465177183716312520088789263884821540725391413975112311449581944327732105578969701027841996783711969216091729718704705481391894956842989941804574324092276454682913333675540186415831862608251507587185605339777207059226675341557020378702454208464005167758761114440382838005437353404276644983313615904214532295268671837294759693740073641580268035979711480976837267932500737577914319775405990918322917491877369610142542560545154641733493812985256620524011689498745057823417161976423746884252460441652836656660580835563352414664121970967067807327277893129722579895364343934647053318768303855963578417599630719162012992248033091681126666383849493681995009428881881139017857036633202742802734545848546216083766264136885607708840016019100609619490374183268171759149229022948575174470231863067441608570988885898453420113283489887868397689860354523737986452463894858941758083250876263574894185240211037542563270710386823421611970402068272222703775145528712216630842155750570190677644229403448595897886935038013440521719050608834602098654790509348761748667696096184597690185131005424985909303361239491685103622169735705729495896838824088320557065267433074797014695859721385626971899583478928952625991273301532076491835583660647430157327153978459147777226505134479003712986894566716962596314341490053689751402445786419267530833611922782529151050178257592389631788944619346389032897582712506711043600221029229121731136182999591347654680431381728981291563489289103527149851120701720387763845740265096539451262140757753016935974325488741992663762956394298990802541532987607104119388036532486918427624633244190323980563717553903564494469083273256100227974710135273348382057861817037349217168824188495162541710927438674970894287057747081548043766230878694915642963301339428062567906568851278670611587440455487987663407822205491594460596301760990894807854228549638445764072282469449732859345359509119204266605483343262269277304201028054554887710370723132876711399929610292963797202246804938244366707102442102701092655710646725694441424001763049306692080347915536289022711452431147784664665069002400572322003475561358560000823571292883958735051686269761163314120462628437544543415471697306177898979672617519714616656881112775196316847841047749487201994751619283733877218939661038770596866366517574349224559566325130696526082304379186304670109181234099868002383423244612868165468880846931462758143971802677917521847704767694620411617992040121329714287851712789947852323844213558297041430090295459231203506156061526822261833457928400392786591425539988073364556738193677037122975420017785747800482601472170795914693744432256388761856359307214233285501584861623183422957163154685019338198524313650731371658509912028984310571273532520090991827770792957865703488741079688966199277031740576760637368677918759950912083710491322668701194878228192246847561917583988508074803870265154117148649087342015516948229096345587925056206212246306557824644240298995540902817669041596041490906542514418315037541520542080320705440869163213361861218589080195969202004300255978711986405037155443622631058484132676750190601784382317629579639932137084973074970195862744007630128303686268429790756827622941293350157204374268953568388320104400132772141916898890040221857209976067298272293941708129323164301762563064359089223339836292832834221737537897126920477735535533527161024106232699779378131531280053200101025683614880429919294466510061828801095471884055979322636936923888300592061566780892780496533218613832623727149173179526300853996271892565918034332340355962668858283757004010176491887986001093056140247392461786083846814805980012889477437761986658185139183905365380518784944100766617085157409223139305021663801520225819163969050850074885544839344206372056334788349838104941823757154501875434731412146420441260204709479520231589036724650694403464590329924900817444379461221685662224680692049705106516201073608499383010021241099539076557536892989145378618439006328695292505642342587532995904944864268769140956574468015984371012420156168048434173184840487214992801824429227601766967949064950745673225559744568649820141681622173494613006323409050917720549242751179541441071370642244209644720943329565788704512292430541541442981965506427412112753298366981064179174483836318426476459342701158643209630545957284169076926004701754273867855369382847410153333853410027696646301291439617018518878306386318857829722443401240065704401510777289417093817730390489577470529841330724265348239636993565247709399877160443998138849642781552330363042182106304045742851291902278571668761778853852074070353209395439819373770138182916014270237613484105675323866010399849816739297929910247528726558866475012390055820978816885017095854002752015667641746888118149006885991577912946338298446803036253776476582754575252649537957682714041869800297890187223083848444396523056610334265761776595475290369580363571880168053702164218782647861556398879551001050064819824507671677583162453728535541360281735399355504056613511744581246790456631161475420060698901082786828189245598082382876425957913654688712010971125697246041681223375269348510961493762956136207113709225737626266588104433956549829503450801718935806880010759300928512937476442556142959939266345639992585846379326570951321283303667302665154058458925967129752424942787978162440179169160147147712366879383172528190931848142398431169511749747394850337363187198066514432056938063169422537068891900873698946449922726086814316278551728289113513363711447868180835719853390108867411009523562548721512357551594929360398502800594101926907203779248844524408156064996178737036355106554236303351404253942059547563724096823777100630479686628140519039578275380613323979011438938917482924866620626830479169650654031932244979655824299768930846054654629511709328077246845409612350277043527672628790710488996956499122884164721796048287015651237918185843254511583928073324600646287075255723411559161477064376840451467389393163179066134304058576660505718961868914134936131736192505296501724460602015646121412190146806894380306334269090150351892899833885880852977547075130863432705406218189791909003793225258813195121979179612032060169765594868284126452613028434991421875188625594776910710129451167218520163730651393448450603520079248836608683426485673975357391575630835197151217319611493047181615767486730086204903874626527742276736428611312870078344502539590468457209707474945645048569601774760673252206750492365507316136658038340895751102281327315250474394397150473104141049130234916215944515113754282364891285741648041140989103901212142547496643147009086847398321827244923436429570491661910721211886752436945339551064029640802528305074371627359517916971590005405973403320307245692705255653451105647504924085216834819485101615585121143194574494323887717066062337771068073988283478196184017056860322721452064528077437632792480068099687180500865645456116194095168948402552867274208700036598400750675578838363253722952076155001577211632019358293254052977209762858188946773647421341156502354540299175095780028824947598125228081207515582802666278236543110566437777465428591700268483426095481511610908360107251746105822380884303392624192307285293588450743336064710091691825430631454779203118134422253804684050316300965259767169919897606056292557608777631452691318189384030215317656267629867413509538570750176324485401552737320050947991612739454297728613580897152190284730011552662594559757517098741054954083799628006377074343730624094809158260362687407128588732470856231977499956846300176599077376342761614200953330592118766711904664689234458292258402194974057566626486879117146413385214228091333409093140382138696241030530488420247810945351132834730469685474925288344770886505243053442097154656195222018362739262301606299038973644954362873413604993031676815315700329742091811030860586585972576113983645023897920805650391931998252245859936844665011592875139293144754178498079121289800251616423994441052655667377404953484803442917791848561180558907889715262437779144695199194899577582268859200676955286732252560691207942691196267573620098848062666021045035710886714893198611408242851400054037305624335147335646641567288192361018839089633001723377501002788897819261114414992397950849607605651959728317313080302963476823586065538554759610108824832940858602971198424427092827156407762201426651017047330434486203736011093125153321768921670182445165052000249828377652385059277604402177911165697848169193625032349067660462800684180292914739412858159146173841336435031114455879900112115209026170117530151526807934957472631316194366462388195713911092894519039114477889625948331753971324583039183940030636611553581907250177589099368388214824409978016845681384128614651908718773171228954884612393501259726279085807426372881534193264973519920735938775258959272360897559216563757578405313851489544065291280475843922630785163889518093053695987607279651239043219410921257447790429400391093957779577211345684928969263808829633127485512305622411951191555007068032196698815540062468938861419665910236705265070031514093141618410351667645926058902958381406616406425727171753925243929826308531958480818657946327330634296833493443938873572195794195398014587550321698119488971863080123042230141946629438146768564365051426505237682171124401307876664730626730682237569614813480020564067977523848914663658851212927163062841343281161524856187164106163445134237705158797470562407829614162617825993788767372411382763511589358304554278455948576455996275983170700099655501922754018943465904257211150764548451416998100454148245000871920240631728972882270676296093367585539964153522289594787485766924212319409172252810451220588670435709547870212123134142921257266329591835957542684578725302405925189292030621497006644045193604427187316200498004379646238080780645250625724258672550409962091936684272931128513181912596610827637451621885865651487970577158717077164652272773049940759878631788860261672186667759790605772198316351605421701583220520568815692088123807536771519616672139923673122366825722731196096858751540565994664392451038359907413925378951423137597639892749272994488116669708272011674878437507007977818500651804928434766394564905573830698289816910160509316450465630728470405919662053448412030690540490823333138026753485979782079766571600844914536446267163576864698182807006142218696861491291825120753952405864098489631870114796047006203531640510670974480339945982342661773243077483595625054397038556773819076415812791066648469011771077709142179229012778869340527649850018725458889317852001197515734283630378491551741489661788978240645231485855276333435182651968853577538922289451692330016327575645364544479546383447627456016751930105528987253417281776686260683566128956528248728849866115800583707160167357725743554095342161680969063134491204360970434668420540491657806960809541436122728600709241282892552305497212522527689911374661078772151641229586049888383471237550284984946425121758869241798508649957392498454999728412883439352693144840880149873433137754840623461277613484986198221879069049331360015787815970737465730963579477147857765152124194633678745107532057598478965415441558019165333529064685249955537011732859930554100218566941062846372442197873685530117527517429034343662344189179804739828374017015417914941710225649781830101886770983303398234159487061023075077692757457797952436876748185537515841617810694365257441707997067061394651213804825343912039634195493249605157068722308256719390734874840870358367119431224822640337018055214819226336171111413401286751469958701869614848332299450588376148903235241407269622917736789859610273998327536221991320974762782284962369872967088932655435910694112992910245312814595687322940046288446488541144538573954310766327508618702088830067039220940773787602414095844389478491027910529100979715091532634075284924234581502845112310205664476250542971961715910127324241614955989806497756793229020018177747224332955965115471174686205160827084724751468068886278305297294818143370453091526085414559424510528323263135427464272363670094027790612656584479193921951895801867984770017425452659698133441025209246952893680176828521788993533569856719784699437318496493765729979673100341490023877436896303921329139157850405649194376591639906371819628429206832338493412412838265289931057852919059324560315902194415091119075497120921549143870546226356018836278938225487516782984853550526142837193667735247780726675497715904186860684530517977725241841358559798860870796196855382181155873784729566984784848059261125003362788298027942575850099323615049379386601630896898379451098636065537686811081124574732262261828565605435866273614042463643609396491285184120259511652881032636100930847186319069707692752545996250400601908074547988109797993666770726346173122761766205218621083150478540649600632699239709702619601483470453248718840287932773882737031516381068336915495110841682167771232073850174365184996115780053694739501408330449615974798524162490638065015570494187417998386398582924364852720616784684530811666310785536205619545120591474001039210791421012236517095457290009786978430252924794980035887806430634370356431491243612855305357326531597075244477847116661091764294132524442837695363454181995240803939018599447155449114150084152960932276268874801517117769318035190685121846921394821812239715909035645053757341564205153645779381906631278628478738553789718607306405956495868174724448065171758034413190990600463221908130772136537626276477629753553417312698347241599598284935474772650607139758031113964409197958753893770052376545174370420146940493803519928630862514529350763962841452133610265075076793256576035414471619064095493462603697868180684740256470964981214206289166716549154373246882295323208461199005431250407818457898865954838503880831905046462404611927354693819891612645497044025126612469482996446285771288252880040648678952725465287218209730445435672054193057723322628968546356002013614208967870947033942208677027798138670445990104744644360614745066998361811882941923614654426108024267617348250001677612977238918812884625717767486564961315801438665387629461697310768920138467069127066298817020128917233542667167684915791045830737951499069264334025612699323992510205108348207572322291715962721471076751448378601130785309737287666056161977713330352012506911829406319164882996003209988977531634026046266347074675189624177558393069616818686959419717318012734896110133015606249404796018300923424002582006577326722508795559495780640685016699171798072536203133505447262164732600395464998698084099994058346524113606233112538325326768189969035743127011822838995378227597712428101486086011375151595286342575934869009752796767634880766977331976828565849245280206784514680888136466844361949875064070709316798778293718755827343987265070312049467506677957006930821937279333733873454445467203306718965247484846661636819820464927823407739661231199365288651886826127414795098545027098697200125200714695977781531955129285930344177639917530493711665571498707924212504525106830681683073677833176555760021560116790561817866146794182604638797785652496571717863408406310389029026442880205047203142043562911442950000758081948450544086923468616456537965380499899166693081948085098570831341496982410623313763479906438154654436831213926751397128566471494673443658405856393595483388406371451651979436622750874574095882643524687522549633801399411321062114434199683775668859167165521152235907653539995325569614521289207318861122471555425070804420978739434797163431694065383801302499986103835623913699599565420232325191566997830689451568449142013697618362173702471673388643177805254847993907932646770550873194229435118361970939801073287441481247156431481782205758228682443575252242257049322836975670620140125994472503105645048429127207359386918346075334707124414054900478517686991908990512674412187939246652211125872738532365822833306043464352582294870955903026160205161025803485071616123934764505918140897663448963835691057938477654420419449163201451940053412049401731208690359188020560262006712145339803435099801290684706120440594953953840858235130864696086379023118016395012469710815309690882176493184976319897047754856317565085127429406085244081549745396843179622911974078359914676643850315058537926356610968694837931202533720369504678900723906685807947373580843860148200508187948372111743102763866183975096899646359980148971560200081855952868974204453435008757453260716301213170133122313863030135953474599581780121507354380116260128063926685696831942321550039400754354408593544900227222642193854280987489838191700829302314791289014136759631133963655305753363512357043885609795387181888801188848225969122764854157304511765210773486278159923620844249477397589500269521221343931513788694495369581874965157468499851093235534140922151581157781616020805947426741606000146644299241771573244559975687896881212963522117489701107119067659429501411825032948066232992887413995287270650547063193366917372967455678864089200962799137556323487590406752344553114557148198115330213166836993684144010023249431633135108375101824016118114550810477594334739824540580214433559430396346498215583189711901417704346442594213083168333387004999336767255565848194127191703019801170003933554926106844600574842188535995176670424903348690091664026731122820302106173689445940832061351703978592526212165951494730770516437908851380428315353773493649247002898591174379748916248148660699706169266595819200357016224114650936774429058457284597789723006341285340623604704674369483874396947689102153434315906938622018788649887249105520868831172959402329237269659621213997696041863926134473711475025391855257855620800467016777340770721598083804980244069828527028289841901983689716937503579891809223841010372087512078529467801520264791420681395656292205611150131940380689702244418610219664697495124598196292499455229142335135982481415823040808077154626745669405734062962505659208371552912505129147738652264170683116552509767431310746896576024528478278984998259959378310031514113207080154347424794162228385328470517323322456147345604940747092748524930952918960122642450578313414460215924940963740435825606323405485196484110175690711457603115724323378145854352962043215573004358277664363799501108186564079030854273861387063414108571653981554047819069154865879558636753519859257722441164752675530586613209017325465942208282307245771439139803488015355061652144711519912264423508495058146767382825036819039132130246045952575422135648794994454272533265249962368597410900543105373013243305235991562741027891914872524843373549461120025783112763387556838534148953538296006905398711708854033576701099276251498138015371206158696498349141471056335967615229119603208267242336027492403263620054720576731080500672936157422285260392536655136292966247339414832825864258383281525447956039079793516026975501083741623077097381994786557000966130540154346096247671143052910619322903127213897640980493945602954053172168453922076763023983138813779900320140859485147909925207563533555288578036075180159587095911142520820859502955368909721083982142984693817669638011510985306862415120994985797792790838021230241912564858684334562535876488431340049570999223915041041704362443231447161572149953798305232155767465485985455963814413745729082246664637975830146795600020864598051697281739532944451774194047693705337524407045185928055449213015478667586084139007681756713264542672055982070012023832532162084841191502012237755673766457667152584710130070994762508545253677171322094843574361607499240048926117932907966628858089917400535605546531225728433979652598596296134940723380764341597919091491266992372800207197769044942970429699247622259280123747165375783045500821985299523830422056881400997045833554965781582415759835572235559774632766509660461318217282279062891122478867405274930315698616548186475692280009734437500520011221915109281882272375658517308587261383133419180225909225424363097252335231385428485130631111434400867652575994118694379868793902205799155989699473127301285737622204928196316374959579884592254064019686289210663120961917161365883957024804364750704146180541232894367664218410088566441950512125605975887575278763253155137987971996556857247782624788670532157153966321732709288452266867954506943235322035992812827315011060293143917839723453571229533373141503477612075460310646374135764902406824975665259657434548838780982472093771919408411179116581225301403592346810358650175108587438729921331148227420489794029497918362246716222387433297315408106180492673691234839023532048249660941575067721841991234132727137060569570831282517408777664817785979360364826199328198527627506865344471481762464449379760751400620634063325894733084284957584606667373202695718057045303678843851191403414777578256327687040695544175020974143126996773058022612811565245070654000491986654572963506342832356903766408908379769157179699905222624838193124753649453465083038846868106913141205514312266622127781718205366439435614122891233479791110528563926178006240095374024151071276516212110559483611388595536698258393818233149869997116915130710125833648880697574003304885418585561283107471548955101729480638363912565132104723520196790792175738821685294941725360750458610648653263388637899228186157504295021073583260257124832681293482817499305137922937517376383129773874418955667595234933054061303770262673176759839938977941768048198226456257959811316472127348877132876234492794717611477886062502279679869892867477817234429006178628008655847811684293869733960657450916726033602155177788035836200019008188427959364655058929684215955201979465297166899864638555861194362462539690350754605631343207540193644056323458080213700517044167476071599237317775457830067950065993923235950793151952385788431504010729490406594513234793657726427151054070015383539045916375736996336009501754567344107657924669293114417154667064524680742777706843545853131488372619069015002193032936164152075841678402616518861268031918397697893523698335708039403865166990470972680400340536820087907215997030900169374438793655186623776059285880062250631008844275609517878264009779693028272897979611070013269661726594477553647035536517515219020951421551593446058045823985731133697584658892779174320566359272323271554337978252460789017104833557219420871066928487763220551924621929422535942428677768034815286396599610675063965881140505055815187533369616719840442419266821841553417153961665086352694338244047204980263426509036061223012729060826003870623871681472772603346463993430493560112623805256335806948024675656075600452880351211522732703986736155255724468812499969508641541851348826451018336404492290850180677926829075336074490330044927605268174212544050648655822591202792171903639738530269329864098034632049888538549048788580115234485322490909394830528359805224946233386734774617900833283939974796677980971517828577282700664783975141115441224330640192703371016414520194843208502710776172846512107233898340529438872375197379510952165284171791301750252785092350689038526082114771528665092606308133321410076952290080506835865945629431375327026277467257144163179369631921870233656943403605870921175574640907436854499837796589479733699795557488406547916854801309382437819836018447984596977969702427541448964745421578983715784682526402524251390921378118020570903742587322905446478555396921696647625607553112743711442078868729919854811610932420480729737732512851440583766787833736960495148613805941394548150032963463901452360912512720519993050872560136096883121274106996673373823975652412672449105131576867783642069234382001840562404969894281849508689033737227084825572565456964680958676959323243715989958230834598659391609411012390426318257368470607668953945221620286034391774025100099259505385699683972901680218899059490634803030525472731136563049214674127600275400571921131268525768571616715816565482478770946632529054767833592102244322946594687353408053068697887116233034382328621532708761227550428206280317021034288422709945786981760716543829088423980999156774005973468467237310805845617705396360524650132686227924124241978460930549367439663137798299659983156315972273759446505622228653314631340522452614278835525079468718921947287072241641768985081306751926242014257132177656718828275854698785170242155532271168603432578960131763040456575916347256752159147721807213176046685541182381238249143362682826170791692340019897252161863783152875373814830429381577309495743108151952086416573125448617298050381494453556090598387831587169536252516181755404981258965010484040724392273978718780930047787193056290527590217729813328597847296085310026478581595162117291963564003656306303801767130217143339917105377707109456213599768682520672725900265753149985924341900466743769783355146168566656451576125114371908403238807800106306702886682220435810846951283031588168026542837360955339281638226558148167974158404765556270934705600321493789123028370455138337773080312999302877501818881875864767236541927499439947680793404658584469435316736456500053645459972969574261841051892865669226339241341891814893129577402140505644628418059029633904032013310755663448604090683380241958168487667935150664919151447033056766004755439324678181208710716308790010914930034080108525968415241120178063735286676548701957014107748679253503541925121016667844270985763455646659130177107404098907174761206153204964751640733551458176457201977774867457980327365938973491184348138176141794882275820888050413843964197123915650539893969781953415130165932949277915666134940997066012605424722328620828951490006888308117260083816816899781053027044724964489543811265805178506490294201007874290411125780853213954519313756710415073757205629395201990095545926086642895011793952672284652100889946594108767364363465381016614412144864389089345648292118432622605329687997468435973756823081687292546169477123471789912006155451840611420582674980133110974240723785253377032022003766392871184422627160133410378198561891174844186677063087290501495473055639145376215855373862714186461152979017287948867477566260492543950694642532352057132969826909029443360881901150754214769622364514874519264163845445743237743679369680165068663351278234026632400566966578071619073937949252982379329327560372876726181625029250519319834027837421227179589965119566334011351935975893005418282321434090388675011342751028455311951960264948395649029338316563473894222354578285064298332429491857686299158634677002593918941009335840566286812048248511841658032794190218331753451637440837841368545476495897268034363148164965031085926648465409741808058600554516881823549204277950798759258912728608938544947944561568606331933111535266981940946451859794387139361243497938321609512549134607466882124071723755128191607192997376028729001129016913098779882541588781556678405396484582547545892026492691167993462511646083564047700767465284351586179822263409371211607224095188582799743009943324650458406357926732717745987991327236643931309942852915988456504345591311919044493147539975609430718887195396626729571709463796172391592266174793113489951777637048843955233262142634808009912552772028001676738491176058060990617735112667532388702930508568825471836256924551053182039851294909189830890012323433871429064637986006395275819821499191641568154865047627299439828304050355227981593565390829327022915006587551414361857406926308482421630630109205992848336190868317527460215719045510307170991135126615017741396464211992117218053285663332400403981161597786553603818398850276856033103714541192647242418914344347199329772387099237949090522904637577528493854693649740829862201672256745317486804560251195277706639209409883488571282161249479461607263700113021073587497406889152434382240011507380034085551396616771932283187283676639618203013030329082822386188648369728801649890129385389722249083557613078283627633929948068010120883624713481540985258583180405866786065438977684139675359431155089853224505416949374314192177316450397012790475292245352971997349447668599991234200279753314746382702723180195837699681483527746004501434133248575313011272557390490288371469451407896152757568710324365691119527288075802309421180698313883935782445375871755510097046252639713873189416753723984881331763723102043630164182458828482088626444127402119122945704455789574856126136058213422222675165894875787135179456731223991792075146460840188590343683174326763755612719762250131453959323990563135154884027449884064434134791034452737118304860442892014330818489539859380352844445092916257320881799392076786918622012302332624852029770926320790905582999476347804816712952722521531801409177075559983155340854130928968486753603932593268434990288216330496292279992954105431515834810287644017050221183169411029918736245588781222497141388881699479072908105548145173718575339969023586038886358091569569885930750081570186180193358121085481940895793470864842681667709255513375124690893359164199104943965310809358357397109958555308346803819356498439602334932791123933376742320293510318700647265236042217698796180743209928037669246148599618859905079878601154676709589219467398988728321933030183305716584787350247132628634987149716165969454542056327152079412620898728326812269679134976704638343829664723848783840670292641922483008883234635153219839436316880385633429060562395929181206364934457739014512246071306359777980613468557561266353031312930304870134884493667604366106674528805673276043939094117731015293312340155846417022706149994234773530958011302905680095157329345816102613822255108027981918117985538030591917042667900771765951787452397751135710722830447805755061246877678743681162500965319377529666214266679353720909233534756976379207038771664760898189957055392905143188206710174453296041101881267438618550085689375984871123018022300940547049626982145436104425549079312456353543605621188774090585546217131742074069884766346787430557695735440223365003320611808474326309670268417373720196323637622038149742265840374857079239328048273109197215289177867110226048757107999018064465628512889105274425981817890418008286603366491681031037275335996014414278765766994373879766748739862321116251443338342635510021767610326904807381214911169236334528800634156877116912845705066965386896249908706356892614534473562732819114779373731927988302953266102969267333559083988526944649547704519306199727604405361754903630662297543635434115548479152478431770274890423788105243859440195388192478156901327433005529828996075443973507216167290008378799770239835895293215717530142195730516918055888162044112801218834094500478376962499296813821005440414279565105834267736013768414844622318995250352335635973825075856364175648901549433351092067389748758498812462273481164324619481376690781485057800922588453488738693504424601256467819598357062644149966500511653350949521691663627393450168033451054972915571903954980502379180078842239752987103301773438507971401717631209890006764559743119131892208298401585858037211097202027163151640407375256475263735080735178929533164707950389290359698411293942684552574051118224729007018456685827271772835748276823571051903589491042427323421250938343413460201152577924932863169290335572443555079354244210534779506336843231087370200517703529006564714819599178629883031468915921183720311360638293083714190975510214147111728302496222236614038215836677722805307381736938700904392268147036214249218078090162477763914381927776273131684523519531490580405306631344013843140060372948427472412590363830973367731455420069870633671149510679985617459807721357709144630886208462425813271887311530034881054861549431421762426880993434047694128797975040131935158558796260577864675918866906761686260046093982811389995651807447088841771751240081337992010753822573204349834407772288734339278760887862532708692394937723527900490990277743009898469889322894176594616428715505041410078672902455678466494887351153223899685985833721146653180776522323283793086423462496301865351276863339501057117674434361915538155335927791778598223029670616697030990700200680364689326234304615369809756384073436801963675148752047224470949015334986075468183687686332786248682393729209130753274428569466890416964454724502651703291410094736393192626103029378690613010226565309746637887751198028588620585923132924956006632558633522039085521765759963836028458566465563613660713317159933515492075849790179857045161631188494967418770919413077513639061892723751344249654490255592289874048843094116633869005514916600102821737837095769815850540634516244900785495766212368589444241699570495082226946919892856683554080729504662208830866634354703666594504756476955709172472105304701147655375353855132732342052618893693293766744333140958107275738393890589629852506876218351391230886998495632906924110478716210903446679419105130233290034912413067190529122044191719734441307502171072123637663073116442894692482560292544224728801209847745231850152750626406935516548093637028273466229826951648181285602673068852884776997796150249660843556478935654215853518301815268213924330456154022298326820459400263864368744769448102736829656499701522679067628099327502042452979874766139599501593648856479658495201251655449116182297901716363206011944149949761694242999071013330747297319078638578792353754268180932093647688268609237167579858031165856012237650343354609334565838035412622287262430327254258006676520254159367052767090922103675115320229710728276858995824727100743963822319556403813652096310210571391476724242263675960169483990155563563470958828848708229273294440681604763961706970550342775186106772133871020815974216179238888830876628789841020561550587950624542625469633562399854966138684975672047775642604916118838992415762816625757720696554036626225689680540138948562249606505158180635507302148692678490040154618592915560070951043084460653698286797879077805991374610183086470844987715888050342610261132880805732883510607908576854518396219687427929102387713775758921421164838610702925863088653895385034187877005609419850257566955385530335783507770972400762521730145513299345825381253498849115095306799854308400858157584079340577760213868389279081936081819419727076187429610614104469453101007143427239963097504068602815669610376457346683761317092351366302009791765466426719985025395286012129132713401747209706919415711343742012159893873091584863136489148922293541723827780043457154156599252675174531681834833650402821385416968341217813791647203228969082434624614304240063130304199133067498893379989286599597223252060990100032391000267133024871427271598047259858313573717027538593188081708445810840776109146547768580904016753251639814469176989024186894809077420149040170390191142984689297022928513862647304566978992696551980460483844174315451072136943966024835160940187852045923525901310906661204712555251669691992008903472155817702530610217466187791735555450050520534553639512375128376348199408251111358063554062656004943870730819290417149217382013236544708914497292240980248093048727335446980952136491223878791829652278421749990945467908778548798716621489093315660025158321519733992385393698554754511198900632357859401761038572942065764565164616330988134445309068769262838057962753444967605185472746957747408941787574044156153026725043053519122770842506379996790909610898430794292407512942329039578757763938169283653717505093401144599412409252282206652551236326904333107355005026667257470871817338949061740406230085297773201442626099037755485609716775011725910731705410751799859363018594134624576910540991230243987852434403402783117880144760682529514951511690125261878013127167534669594009460471944085709602378940379369263545821992106307301835694479831743138777503284726617342655799968880511926778427429440097700783183953520891200953317314587064501176772374186269027495471764956733047948637727215933921132342253692132476660835917323211281011448730895307045511752626287156999847860277516284224494393883544051975545231293245607976598148838268339580728462577259210602936679469564061330546292765140506331886807848367803446733534852918253052024490874984523513861509444993886225965343294974884554074670430777034682836317661395309498347992929504195129045812272795771142751398606992669679499469838840335744025170746438151269279762296730828121237345733698832141065394364348665444231222057703370164478438861340063950622023275026867978771957565320940852548524718043641320904013366791736018491767472247015226876507517709028325477110603892797950467256391054147713560581668149320618289886873697823520125936517664325454572989922017497264402410307086418643015188936886339376502186512360268118227765870696838679807927025229350264546531478440036729252464526237966954815263496117158140919696497471214656645617689593017009780620285447327931111649205674570882570849779073991234580863437698606552931254180026549504512835277952152710740388529317847767107151508164933419190805986859052196430371120058023274436182396130860497864563366469650092258230935962189387969400401783504997085827466110427668136739797943361333243059269435854243374015627273329901162209318670094200060726426893856140418947637662193289101680435108126887781066000295349472153474321180928934923500811809941184058832737606869252915235741345036165843128161847373512847263928953352155488522778410879443750374798675198197165570313398800765989348603513365097200137963538998608097577025438698411242809926812935798712003217537152378722113158838398972334157750123425544373342447723114396109113026062396468233955885646944210527401069103270305222041291029854820418876638659198002861870729199490951680974671231846575425214559250890951387541587766977274495449029029750511906546362482460777554771199638826706881405369027138956505846868879139514695919803864618233484225913834534027089284956118726667266652923493690011342164106020394746150474217300007939231363003694694453474122888534417783509623440105230049642658396140518767314864328882770580622718557872710308106694910528839042177515593967379269860621296074242896533630166805669457634167636250243092745894261130916051063206548598031138963875010970926562620618617081225806550187184861082275785467868023943987855051555115629231623284338738721462406748917340035182533143704381972236834804015497439077327362729657749518199801180708738274698962246617861087081651013740917756731585155374899072398948711819108233298556649006056384177973025943411589047511040216882964198282899580967957462140578418048794884876138429497922895506040811996349130735976986864768696663139964518202096566028413861257664770649412260904190078628228230017800143151238882279652768423751099305762122736895416602543920129695800752240942468403498982064589330787082749124648369008064710172542653512438102105976669606979252936755911168933921782517526267743063887602361481794656262669087939198958896920988113253451361257924907288236927467405858248123114821282418020182697958920136907679434804190453515574428179878343572986908011384731418552612008918942021137753512579280125192446090179836016902308353815926278960537906645066977105058233520461475278059227722854415813182653018378306926526909166041352089042990570811560707593123356196553652200195516472659296466767235253535732899921892753462381011961777813453645153592223592700672922762693958021286961315824464246971146724164216379846276855992581261407288867537643293545837915972072377438895798322260053245105688635152042691939782461351580709784527022531361464300289459408230752161760610797051910671221222355779069605023593266786483013818351060049521872568067397326256958575828213158610394328733088233953829257948876077059949739907496903957903775453984265795040114837156082532391355106328563890201825450639246221783866623454100950244930694766288742065289203819155761613287444468912151453043071091110571839646374574588857209114618318161587723459661412138112884714798080016157821317646413173749023374296438032030752654781052506344562307111541725802485777361127218700305202681861963951325280437120213897945979672120580056369938703804569394659187647659500195061798614026443741917888907435407126354210149218290401745872068153085633679452192842364142070451174254084527489403655071447289852869045955563046124925295758045899407704281322782788137543035087920445991797357560070761651191030823139527220720770623503780126849802469538080166361263506134321877512731100433902739727154127171897082121731787957544127798452086900004001218345567907205841733831063345534472935998017028150966950628811329242517300135277190713070554348463757006893408722723210988010983283463749349786601754711717253830226957293081844386244833240289185735665669018411857284051953272733762255455917010152005132455609722098333451109141733330473746806873744084214654107379258733488805465335560513329727945967503492634492406892085273456014284333064722870127442171991106315873968185691887130108274722630306753471495575543990271288859340468386911570772841188951799337375866106643674432378834114228500104082897843052921133909558835754882922636053337756643134982971839878204029740349747656005932294981649844675784638811880561381179317099175479165622874340404078348657914940167915303726280730923010443016712051334003814990576475125150600900212565406715776715630810991535716004344109403110563071838416321664457282457571008867458689077363430075108729766602612358947729307970927354250888766259045353932111795944874665616432751745313715217447739924858709559069707049051515412224225189258666074466768738187174988016449184960559960893993146990820318213465841548443226312309887781778488304546364672548942548547700247525270552009440350493082835107713891285357923515973323574127628348425297690048771071912578863860223841231043355394960579234028256970448631127680059635942099949608658595175168102426558170314235373724129291869101285133633208032213238739525917718428501053212679174534573787252679151638773254997629509650298906472631085277368444147354637268795922320044937242166864901254649126765243428489490122886789214376990536038555935304229788860494563408468829467121396964194712624154860248025728571363038471859971502008708875629691452258993178250603777480365536496971184348674820355226447256443569481490261683949445607905534949346346633624633671222431761495396038157361305973769984855213862691608962635818152597818933813239999804318792173189314422715796867989305784661891867500357470963928495592155893002949994763296049097644947381783243560724439220377799412412151427657475200837499220066864306380435520173902266920891452989287547134511255097615706071503785062380047716365021688042982626779681809028129726681458163151461932551273509265719045908584988142168822975568839039484215622115320159202956132557125217080782988005509898095028026648078733243225469144535416723085394556002882356365894569424249041501957867457439082691634744104003118804349939452541177791517427815671705416282062999385952471934586405708147431522517276927422169684918635090451649985393762965792027543068149325490638471118232059852768418985168467956694914221419577913063299517949381901281225303390247164203167754657358290034104934380729777276249626407473613187173461731687631033775017997887245529028950146297775789461281820473286414766970038544095900997245530686672061484897069037799050257088158160114690648665595934110791929036051383398896572597783997691405201310816467388958441592348107253921636263516677391664773573992553300359811645358941128134672864050675173419469354506183597648647705359051604566105821922449390601509447306246761719495328345009844617966939919587953580217975027216871974728627672336078532454203319519246056364229102717379752077325464050081243863600600495790292502823922543121351525643517186327009719259334459754744745719737377112421610398300545918307420711104292627443297560666785113063094352073938834460205807964828680403264248637739860910745841988320357453889702351032467476342792318323199115248860501262797292321099647303693511779131320749029639317663424272901771984608637191788681761971620816900766036801895918428454587810725849082982327055218604596274392255457317914007167250912322412971189347510889558895090393762811649412000335892770942762309536372851480580967292394214317399699355816314208262056692458578665166144781690944403667547845932797546245689133400175497317309513547316391152936343665262822345799596349007499311369744822645204528144710632999767590155111796838401098872311625369205829272627229672972268077410347990040813504052369106620490206206539853317180680735731432901398632838375725917134230266492550825216894215375669288671460734364973402305581534242658761622381930274321199617197655174351107346420753130297585874453553319464561925816917871803152321523330928857077208514989495061849978433945019493097060344809926902283066043053314465223484998937979702721224426965414200942211434848691421612412771158618075401220079831088025079265923967586269153687278126672719071839553264571849949022087754785964365586654254071697931237720411540286213925231086910176708621448681279791964638710732515026837056706812190211490047397442844393695211989157234891551305156142992584000117717939994070899724631621230486499736338305929244120240354375370694530313907271555316050436445270874486125019998014419654335639626550790060674296588280367746322066509675269696103661804658993872100877199614569269099618324062572327741743671535212079225269015510203194453052160740169351201445637907667665913352366560376061829126626442793842393859937863490425169293055098694531271300215222280481865827714851333548744043378371128732664613645368839770495803922890337368556866514269918365133515291044418098048506129084709905477021351486936676082699626195447422031092105143781412034918303953047178163539546865137222673011925597022499857554179567255880408101885113280874616633471190933285261012818479277689564094257109122653221356769728631079967222565499422195525251434686761030376916122721316108131255872256255363037214083274691105336882279029101715210859116396499120405673966349197254654758878461572525990363316928803368244122998304180472247875246578567985350034081146812716671292394349372118521920557760899729220353149240536155136376853725028206709143499366202625777439052238156139357668051805928691022209478673477261892882183205170197257117348112138411657651255580764767161447598997772495437183019763589088167568288039439393622953598838073179186374644371757958946445772985943214012181551830459616718614360154292304274210291700183203308139853709715458114991071512432386407608977739342356711942859255169347838228159735998643081362816666989622381781574880748850004880326798409023147115400424085500881949627871466858511317146797333751340890714854317392636545874068080804654950198178543612245965275571400709814047913812050523365128465956064266533082379370355262239428545846721666763452301037521557124252168795636513940487220118761439349778177654339495507738267663321826873530186986641984717468641727508449869751705427755527139534790983533563736549569509118751897247454038090841435794596903707137510294078670613474950135452664496467840485957169528862187090388793575192094305052386686411690040350495270786444012747983584916671153987668316553913389253234350337075583152936830229145953428126754450455478005404876403368088229934078045893652321139229873266833058583331181415999460608951906957946981924785668738721797436431636814323432560618076213392562179610561560113375745885122558280809492719431436651103000890713324184068631947046037428640044408436655675965002061984315201949007232072814928539916751475512253653269608965824482795055092653724371280228672885337894802319980412090566088418652993214573979888602388421959870640835398269768880575988136831056971709699529185111998802410521505022770362659897133431109777523863664118618757041903331791144619080107009576052792300538873840923923760919648827665270670627919378291929015529791850284286577462499266916976085339482659436403329489521806557692675112597451340386698474934759449827159019687665659728106426658527881551869132377733972916615191825667875210679995216431789820902886824897127387967609215476691478063547210457731548760249443535208900864775745920940902932214709512705594566421558828724569326520321959273694271240899101796273598570321267164445184085417093946204875242363562348039782618066518831163814566010082607983294037430969301442606435740363264965114413411900403753013642486023783406457066191376041309173902746710440085261577030863754643166960721797849418117850874438951697909324765865291836028656702933703413539437472099917344890023554742297890477360997589177556684467047352537773011576157376209970692360946869484923240005471512021643979403449939484218933088755236475582161898615046848160787926653853720635227128887047973774343385418699008247919117038518703447117709038681675621031050275399732334755336696531924052943988104706561613935567141120080143012806391874482686773793943684408260166679234996008142502074885917828606356963507549866851351253671641923952080485396357423395124996167716359977749789517790729785262237112823613733782265485528222011265421991412127290559777626877298898168855845839719392986018007143978287195414526170213907699501171670707964733881725000934197689683475384980673687687636191274970445163050107354311057223211375884870626046635229689768628991099144484276595426865853022520856300314779732900587151757204341298719625396219820361319724131568751792343014602665288920330401502333380720649587088203837320241877477292519162679786517837532118072032622251212583407760311378416784411380711445091351268006470105896781282085478756094965012172771018023011227569292333553402462294550497603762917783516362225879874526949331293608050693186942819398423604121837288340106355569061595082866979534944025531436642389819044176851327002079669150044119819022808329695551802065976098731722345706981898963118271934714359582996589897492024608717877638839423410075658465798657408743793207735531037169422700575383650210083955084079488350135060076903240906736213467807696724165769608721694171820520042363706827320120533777721698383942675187765674310030275547873075438393219732526327756660225638022206258343598426276454123142923380219340958299987029383796645046430597671113253450642145501342702589806464726694977972126209287520353296011526194922837020562775662253305947029582153783250397616132059315632244990520755446487606387926267947900198151035858472519302428125201848604852284245675542142302714534981205006188496355103745715488254797591620962482323656041024632995973002020273481616777795388192022528831127898269718645505469074524938838813110558576469272135828446316508576786760498772851414107272475567139476759965027672802489423483632442793595149599810099578595447787033971659990816111023310124386431504934788018709850620213127091527888888078566250465445545353609918885137800548122117752976778308239755065157587015640904355319262955337061670232212179687309478756190133976305681381613056925971150354907075470656579920473032370831819845203533956738873149331262667282704330146460299664384298119100733830741980024868283380273171065057997104280847616385582320935464434379806469733389781523916143899436844314674801708801943307731140079463739498546382907942778911579639858234739995760407828708074641949787718761654807021288363669668449333532537572209815229678116710558202198585540039921726199937473461612789981680355778853880046832934933357079333793277645130623991462987619892800535228158664407840128296093532910779608796605285529661617730145871960897281314506124738851898684630771394430267927017229340406622925899541217431472364019632311869354687362185718747194470438370594042917821015601882394972607675520010331154632161723998437957301250719266622908713127357446946659786294157408580731230676601595015743343119640103231806617667930415034977726098571376784814608225818209677825019052177318596252942463405852045164324874795295636501356225949015654162859377116361239196663399305163390721162897083985861488867808444817543291166124477817778308309530718200424114788724033730922985557835362153091467043353067198679643539681612052443005979218090322261503332073305696899821988247197409691781940968815233108233709497728964400230771979683161381100297904344816225119343830818931660251554617303137589084440678640961993953385518709234209564106609059233415354040756967512386463169772787257440502191625950516671135656306491194999967728901214006373986939942020876792576021814721223803201914746332101426901600379685832430982828716435765125786697712217808854034757848064318852386574370337804864347059401320224657472192723035202097837412550862026019493924087783657904222971913311465151610609695736525511181429886904150319593739093247125930920235220455039909831075758027728626234866323711851005100870326218955482593947627852057833092132804878859871539679852177119219175808423251745728707487043709310383595724182494796350444935168738213647669618374918138056801278100173693043962564744953052963503484743903044590771163241915816943587706426607366885094848521253569565402315269654535708034627780472884803590443399203589845327940990643468113952043423372880949884667998206721441374644659343475041703392815438494995932413455822559359542145831888200913957535910012937497465885989153170302879510503147323013548948658731280362248405525930612738043697736654981886522144847932251537298722953593866947090384890120520779864391968990493156257136461264235701784222665331116626805165712209781816604341832546039531162035700059408325289554994934310440312861959998137168802581021337618262154130367668842733663962028347218644312023627430357445008460038850819551905395111730232566906831625785262051135518328837322516722386310199620401102367986150816079008041291471244898362831375261052028397769636039993262899587844168864493475708871127516242911628370588074019200697373375127682328047044954384399874807465173764865242069824568406946328391128874899324958207435419257940667614006740168432578341576006675189087423040790237438830010707932515343761950069897387632922435942100400137099154975034549903131103797490583433748290578733594540846674914126383925291667569868395573819136956793603508657053570436785956306613847898251221743856417844635999689435130787616173834482694467305038858216547089884529518041825294144699440216533370192857538539751007015856473264544361899968030714190091604509065179117326159777703871567171338163513770159928317072617553577346319343250192850358224442760823780890078168878501110434506141703435149730784234198028204004521124009149433738932428799893013153946588548560551443505596808336069977269759263578553605614104021236306624122478724657681371115001286923343113398547839638224045074157851376261597203451476359423889807496140130319891566290963505484531216517457880637683650076074943586754279343955661754998694589875260774171744441517348721038342737986399179809501353231059655348334012469304813763765718327033559526681538399354157378743752567214906761254321996117661653107104557785367929339358851540572576936236479143740364254712117924424464062991111251065980610694947539983031142071822049885290628745745499092014839235913308852127629424435125261087815060582550367087113932125505170522401893298335854857141230059751819668135854305513691928245949671312332466057615918697711581062435047323874936222108457415511591236053665590170110044054606977965316302501573172922481432161974985523434665641743296442026430854382733154517908966143165203331426544042857247129408257412355289682098512715716398669363580287318323611326213396989711750259043306535574057026983647972633432865141072634284831228661918233383924269200837512004614836922001608406018039645771416193417759536412187630460564780631084301840997971541340147046457322481245785121069602002002202204335204854481995947938932098598566190460938739065226082243188514148685936130635292393870412986050837580065294134493411205260818749807318247093802599794897539714953365181364156851577773320087199115561431014341809100799713766222721116993356208842641048802628870284536284068136139464631371022477139547270460132966053935558463693383584393162935042835050369488649288695614393324575466266194073038933822254858538402506045017218574798359784622334633856040476060846663061363282579669877327093658871708492975223357196098338911070643087279610410658942022474531414227871743189797162896776653169103876454596113729543105958151682958015852478534394209557848157152085267824210065383330474354850063493400756344341537541643190585333425106940187253564968128956571027270551438023043476604119314513794732236198296655192232283931489812600265410330727207560702333348473340287615891578843890796438488158900166656064490607410943251434933030532924815746248822415704729907843236188255302792446380414059815877420366549158840721543580103783345465262219770105694299365974008300245789248246603189550340382700710170105122705357164458614903307483675960220263624996703467183740142081475793502082084466979450857949375417905073742308160034004176095779677705489020000975759606030988492428016368281100341035636467312981604484647699843456294199352909397359332288569269504387205300678089096324973034347395322688821337092484633478213983581778904266336331595515067286279710922969329314306790410433150519109501795306984142024419686826395615189979732567397924803541196035564730696717569843849976868677866835456234602787753453415808240994901734996696040773275092101953517032808571090789460319097354747861111172357949026994374139697015126864473213780488999229937857322642056895601846171906715616217344722552247222982446433836173035183790050939312551286551457391362562272578091490006577959505017435485195695017734303831901599686808104220922445527366521165620491511478773694880450984232380930216709141498519993119454483301215287991218340128431766546937510676384273060060854308543318127485467736298428303308921982148119957327647508107937385681550951824517600892419210510210613373865213804250786292672501624502301831526024646939524333718520818449263208351194724408976564760309413049979728935716302156140684756698683704013092962366660011983754645441771695620578262619826841793152537965104772721694227375061521670591510885053728960115243209905871148585800989268425344372684125088547854703662947372440852703270398179279302773464299503936836415719313218850827525811692678244616705278401190602487572769792015112286441151873106468967999689670196517667899761211509267502150123683137382334443914602733561484255985086673583112439182587861658128690951588100564765745368252200029904945027550671484737447089426735018516054516408781341448201917731448814510011983748046373834431139189706885880864299445665350748298567118297451363984126348360724593435205102477090400807967763509051361653890441824127708554208402718674383226390197019513175748076922065428648788423524384897088877148800723682514572494355411746451691024299632828126749803184923519322266326152996834842057082164492364019765649871118298026620282108219273548981970895166167436678387272016964894747917012125998722063755393724019413099448653068323713469780731378385055105522811220907820294560335300696733066460727497584646991948915679968904915334395187146811147026427347209550436766012920663763765730614305612972074704977836484675061606640808468478546200616537640284151474599241289271626723034769407225885736896066333974836200043514976912933428029570277896330492832679210276504460522113354488301630604746724536068751957073257047439296205838980354835755074065127052805141057793038249059443009295666619191084999025911520766436112874790875803328760849443542291705487455616014610003302335258022391997044510483951873368902714000795823686581128783334843046500854191846473238358301984268551781921362590521810629591469840498669924437130830396647103199363597383340108786413832838823231182827451698134581766748891260208614812800657475338173787296636645505452180745772196600607053513193627860883852941574423477093891310074093246899278282332757377599834366142463580603525864929444995284238646488323730481038856789274496564220950485568765759215294346387615167128463752977968018863334596938169805759078519769840952854453177906163034041284576868977754325816334319820626477264267696866789502986620203268165342179128478518467169916149051903880934365431107449230045201733392577504410705584834461440607755240085641740979761178711284213294843331127005334357698687331798513632433428735734866920236711932943511289532685929222094086832093025219392109517208927733022186602370729336076943700679064868564346895589154122895211989343554768395997274424654036952174750423499206746410209930102285795683953251906572496113535125009214956103934311574921716826193358257942099189040834315127888138331867069597821019039521775381849317410116626328463262062941504953981949974208557597342485339391992767643885745964270843639308928402955611624065670296185108913020626791201596356090435972747913988686987923964265698585209152910383144466639172432533643954286916557056673705033916910890863404379195637726818152552678736222201336123187939745328241262490676952640361231271526625582410296996179304466492335155257878535639667320091848824398255140677335655812326835956185365620481868193118622743402679926557337983218639845567207867089102674157624018789085940929864990480314658462358104557287951485595650917692174579409232722587486744853949960405770894915652187334705895293134233071843617413269209453643032329957435398658517365172270412506839457040584873927531335447604417609342815535385228362567258749454333607916320065060048708587514582917400798498287080235738870440569673042060001321587050613791020927247159964298043698440218991420871034281174108899056806851318020945386407771064323185291841732448336250137003446950032884638774112605122709608381807773045009099245646341695176154705204546646807418390239433968446792578060753874186656850759374368076616831298633906802986183479825095655782474360947530962824517136787977499122614258117959732719480564007509657870177107925245473332723437977271556407228728670830365099051162113593695343626491239413030943463027571789036914849812218599718669380550700804654090870688247153805339245614284905201467600084168710742029134985746002288963354536265551672219091697786551478076388289241088843581592723017454319029947030623633933051948017984901967551001307850520057336920244857849155515011992027274508608534135396701822481417823922178904386196390689745342019645647362381093641921808546305680019360327094179903749266551614844902381524423760124249721350815993497520340217436811071939189944442646215505701411368695107194589115187060331316248588676887097601086826812206107289523514120712548458189739424940660272548965226578858426795440612243647059255329812593204854558553878581287902808168297029455641353694939815217057094167311627940873911724209534180202043242879175734695574194009527953921734549164636444002015392304969054143216362035041735427450204471740802956896087277789598685109372717095226618771514034956337330131623496883969921638041372224529489525402188552392652469167080643762581395324888656105162714524414910407334551901103354762669793054728574422498515248217148144418358927526981045330289652778535112013236276566614239872068318137662946935492454339649876167301859964280453554089110920411161887645300251095078070729963933021173593489105292998710889252033140906991651093281046694188689028138888844805678566454518656430505509739216070412392850274885574750917671196157591416491997661539117808582035089577417644989791511686420572994986579788375324303327136697958533588198270548548195201550597612359782631928115647889804055941633403140964371345993025063340660133369654651021719982351521577249105204916371483687103435867793535670367851691221973212443004077441794512185441271644318488928887666286551801227225204227903017501533601410441524731454266050510307936324447586446040143805136949466951278739985559281335918247660841770640893459908219847042503587108825691862922058871186095915901795094871267090286479132304724753623608607837605521025426567026436063496816196250737304550005058636358494336049709127485697357995917954711387344580517903497109826556918082025897549182767570548343142740127299383982316091050268398323246654720185731965764943799955799813556508513210679836550572946881029622756016374137866544708224499644456508525053215190401663272195597453524672753809424907440217092571966501679808317578965238510394361999150438193696478577266862847141653003803841537379239722570463984417392193603000088058139802310418664266580141571264369782383266859553604127388060909036218934534548360701884328075561795528949697470536057573271053920255690139731276422578070767666678153962452274428860082605707268547965823707835258198489368706070693760586952048994058352494170988884688981746065845952709785192781129222625951125171087787399022582165760711748816073023854643940529000615144066952947200115877593001458595809517462852654858082139896942404458818882355381886955826422786165891899240381036519392202603076328484529796647519680005834371025717044500595324795989095570626638998534546387273770468797834544496242046742761486249390211395303113522284317612215081027182597883731082197767562453165607921274378332375258294260078633582377144412624814191631533676782554815500584928803450026274902824279687515706697871844870653400379029202387192352511206603066810551554177773881225874657878286653436261941741299206104206419752590822800009838201334956790431586055975084138596570189524176858746603104608930266133994014587075312497350100865576062703411066347991628278777924482786002724595075383544583318972649026392536172071600311685278374127365282380175516283944315709436415833937843142134919452073918496728930842417999484854838832639213912036272443673158468688681794193053454179622845312710765734947729884515960643099872080514405084381778965409284266808603953258847254465059094422995691662343981608410485307202044704367223908930616126063461650194846149292191403016383330136362359989027113139579029093253814644622877957199922913474196368755546230809075592670774187644130115909007898759108448448764119815479985350163027821661853906284601278973222123292166835250609972955097701473355551169620722578126524445627744622293003335919638593548808292405207763414821570822162325317523443472816249096068314040171238851479712463679667732043308123368130912491700512916416024015779742425159637569626854575769764522589342257242735000804492762592183822949054451403517852392908239396845865148511726649403466218931234204034154666054112192395293855422780545637246716956162419399295214003751105113143513840351950526736295313038668155597748384957620927735350026896038342671697727198752306370987573031744993671353258844945607854212029620655969912653893253376625755260917815887451527403316646291408407234972742496333624138158617472200336383221934868655107576810436358847014914234538268334769333486853484520751473541026702418687042204685529610259128214951463842352368450272789539748289148417348890573726405018448149111663278938171348618813211728253192113367040519054203141154505351915542026023781880735926049313575852530030511812871332759052456467607323562816969204758923297450886030894717997749564629081406026262070716481635831292875744295700750977933649582972523710486768687580515302657258838434259427284214896712880189588745045897188743192855165870704635488316059432573792726283698493908511982388442081692075062614007916985390030311603144662728524621506219398035754388376279283784039502947663920547947722583325541138204265275503786571098076789428724130197232357516492764652376854909550560330266901722107295827438008365700971164278787308162330984025089964504561258703785317876322848971072605173005135726405421938225007207993329741730864355993666321180688511680599512610166652074729990025960634837416774877133474876165223500032585805994572126070525639383805958768318843914173759587861517226187930813899044874189538135123661256984700627969358978066396107899988027864273989480225991359781156539036326587360739275263946940176314834612097345905411860459249705474622943966618244768096644673779779375725608941920821196704684673538443729539613707047625537967690093139961429349648744442482967830436610783625013762127106758359260772382726942933681593372273726835549895236368963279851666782106922281895004132211548732268427015194770571550845979942024106843583351151616964632637234478163158888629888801967982196376011567254089693812463903767000511041904655780029362565036707255594032028635267111154912661967557795548276763817533982159843203802331077089437374593503080819996473204493459179376097889626503817919054110065394248374888337264558302720417906415204559020567929660445107884341324874362442851371508895700639086870193446077430060381496821359830287758179744785437655419858701519519442187858015006272300487415987967552201769858040581820327856057103332578454849206755218031702738746140328352841367802430253813185723263099686415716675242330912958170059130387189768060102394878652516329771956459022663784111221536193966315326372971190700327240774174439762095677254962147166942637111549835391002464498381341293589824468089054941732399117109516273722472492527067480391287402731903757353185605161714581697019813853456832381852609622378095059791067910807389463071792874031011732630669407405695133393917403769812613986041703495770356105512477812130274439162135348903804050767360028792172916871372683921076787928678669147961171005342758781101934825363095476506830964034157524841029690975266209217827500913874501235402091158640545206997938159469582031884327328515467816349427710261506893288180995453203734087458030246715436058968231144819398293742275305978379342151112597588918086156449726208066581721983714299536578085683544823226950874247810503351800787009987498710754069794162564714189211593129259880718143853954612521036947047927179869633794500877920124534670839227304852474567210145859221058705378933148899287204147566343420488597114452344934796204479078380980846339621175937002127513609496231850399230339138599440816231453995884651081356729636117868147353791819992065584431577084874856672483922019253789582490042903416711355730142541808675631425559555242905084013617574637666610530094429150644640272840306981668345185981403859719917462161921820546852368135819651481883446471330021246178916077956112593752485175187135615941455663432162383155508781094870506083406252064279495728393477237117445970274019459954229538897698847637308568941000391697701023319676373543846721317794223778248922125651758904153671483781020619607417395326911183265986158906970617492287856308177249175512597876587908163622684379589484910855707339834356967436776837540662920705825699275097424660380825087434439848814946588941014573993818655178137741063427140031378730688010871636675919755044088659142508510059848777525664656142701498186103692416522856866204148382974476955442562961480499829822547338914274651061540492519693276934995257386060949636148394487675191537253012933588840159563971212715984915131033148018302571015127010270051932474606988027622878655443474431823781992514844065892623719306697496104555056285998965313114842057256599001600551685772022786677281075765232261683728692773498805781381928724464945470915034526667223737753048180778365670890815367702473762734077757350024186738901102334355920104596676337056975339243920950664346306719236879448819819989972962589107688604183019634289763965149242848546219912219569586842515345697416774835095655364227234296602065914649620337581785681566211550743896146835017813817034290944105767468232807026741372169686997037448824267164728983354993081171094947516947202153667249856250811507780297381604634574698800108702536069178619968767376986051390886732038496747812150980550395080001981100982489408893874459769740754396006723883411011914914363718125543343293627801923789197453876669212436515157977999740529992658147132407566224849182045299942001672442281474799468069733975274413159114699786693477941982202249408816953744392978253275257003935424553192839818191023288965664012657248937341157607103727944512407426225575223528174427088456295175503802524220044790138359659682975266186624588387576623496578452858869643975525104419977573888149596096304496692840106399488665525442725610009957436978135257642699285145411654341186320681281238619722423071420519957514797537659768896157565969101457058908803704737071578537148799802426994047016995181733090105370660510723544840361182765315232230573719237451131989648479708243038808951470970894625677751397241998153705334130958904040038615513424796014242671276640557258220285140805221141732352056252399031520418528508290694601264918057772056990057081132066521721253479630283255066046868016609918567142663216930062439014447040071234463314015457229530431217590073492707030756369130259230639270838979727946887335094597244924616070617493603982134631894396720843039839894784730176849043699601155024820149165598093297230641739430623456165179782718050521853729169556306122201110023003065300131033122747569356574029244945603461603330763571191211269527200398641073209767042538394802916318937654972584132647341673009738183718343756317718769113415643487881521431927023077176477030368906995174585308679673543648972174834243060518942367921215584506499504668477777726024103988843989938844852271058655391534149089075905326621417919121704576856149653075824143956622599242060494751386731998896475692390199241012528685760029822825957559363067524093986631054770883898055354844479036407053957478365622928501393509100483221114818694389648819910904570281919931875935597540347825879354510516159881208849738890999326437468758840963521936734136337953674998847407524453991518495609279361230355694443798390442953768014423669071761072457052909996412391384013593515880633469711451784089405790235489507695271697512829591017792881747733696357824182771947985836092754502978793035421721843674445813680053483496471816457420690991395943132126919841349482707693666379984007912526724776682598992427463777781835750850084922697591270126814424842460724742003658365795130653581353082826547587883807707132058099519283599067707035902173548178134000315973320579229968020240974651706112695845715263265432130597627087403569342003689057082984819569421791791922136450149677011109787731678650327462699436450507977064770622051137353199287493059491914049761122054419377659621412483200410522239727319911963093139066078038772368329377329183426027719859892142657128171320756930803431235752762225042824954615272542283027150264621962284919328989356664269435927314559766770457267403033263318566310396486874106015843742233417340646718991452328903751790377282982551830065050615972036896374353548347199957137200346384996027866286401001979667827925476769218130114816040092572318089300858993702979684675024933242642769498315928023897879911505193785273179604788937918915390023896586532571155102056230582826277196662220912105345375473889925698075513224089505352156159349230315975482789984932589694967590832238040445653644331966226538165292160198212706907872473873187011516932706007372900605140364399215713653703696447852551691470500926857048527081005745337668952795247273546567103164791858693250392142594694820203427876345209385443062004433540621678532460518420500888371052958063151737888407396567205825741299773817469092327948044823418507607460750774719147433470190709514868177048105758116026039959671519387562204623178809409205851810437536412562286561504509358263329458773963857487045900538194449260663464914257532343703882980827386305622450915433017503891807645234845184967530468882967787866445793625927658036906251351602458165652212513190057881448364565527924433390233066462243697835511690360570616372121047139379446810891947526627957191988539730893167110046224889427480860694919093557924199551945314605328072549163316605863875154598637685745945289361064446937897250333740843333100821186300051133121716889755952032153081182887684064970807587118066789125586884954152638973692620726444123232210693770628180615937370854822478115420645386590416158423672208777335160760016597933106670073295235189372941206058023641657708607532330263292089086192891199848558229042656032618630868988401358638081404705141481245102393905356932313419763486049288042733630749212261393123538340156890904037330619700833838282860993218527245383475153250073739746514277000960294448493940907628537869630182072001263377843714946606620352154124078408822442340776930890839242138225160828611150992827576054074359987109064372896878183844332875848104645696491836144808480921842243392327249307158789816873635750203013796838139727096175567643894991799896185959695631461387521220796754710168404243669708975401270150772879579599213533199274400788050293654584164810356750197147770249528662748748730294140538751438675632617088890867910207818435075203709455827549800132052090268914079544478153118032396862919573705985877247786748099349730447522561268959755796164782274878121592734641747350698815108656234613646776710045309096764753094204031864778269928391633675862728402293002481233283506756006576382425325461783740031270142278783941488938776227282365635038588179073663589032975463652084223739262090938922858908495016901965061341913285249475341548034932100564504428708426595357052293779184338521443446822495197468009027226759168962240276046074126035655049292184509364661622727333504819541184848695377314197420670821714405055899736960114397780789838414084091943986260010755457817580593140438877002216526380153666537296587587962548614205139496912851781506991746312362967327080290293917609429577364999201824406326848467428384964151005852991255090822464380774199455300042952010826866218389478797458045674927787249432045339995181097620218237672331686460871963853891730754008702427886931518592106590117463763287588532271587582483332584371923366480379928792383605766256083179482949522964437835743752614620480589031858144785746292917576514974448582986902985175867405323286022163932617294206968565810167999213957690327952238582586392771932725738286914523004111466460975373316043472144528110974103186965017053453429898168385607978364894128219954898023266801941023197143244298967348584154837477745896239163257500365643172135494068604614552625268470998388121257279114754565896556078758242733287733962437554335181286680865258150812747646055160892334420251662193753010164004446399845775710024975948751706746764320608891604630821255978984007770656246511231438553422710360256575584716592867616144910064381013743383757062359701828205577854253672789715908168418047731584977647552350905316194632095331369563577902946316698046654734830230300014056625853446041472851881183226218221866355727338794493237474494109602901834251837497667297529588030497954911397580871625578924434661640963095168436118414471817514951851177263070871905176677038995553436289511581924529178453595977904826731733782792611503123592706013248738725784324265220053184548006195356239615269980538178340287621010063565608242016248830339674436007154562107693951750653957683738341112373607991984730066818760030108454448233153604664155097878717217100055656938908678466451925541652322038410775048285146992801164629041741951446674555468058493011048318830039676066761467977590302766243020922615953295126226236063271470070434146912958539162645055256186828280257459420460366595531954887331275567816263567709787483965631464447925228179522512353902172796948525858332047893577709332846536736758094103966876181275996529928938271205395751647733468036759511592736403567183030328619963310576361273341883118531459033887450483139920543759337351452745569628994412939666752344097849524876580851797641364472921184631561193533911184579149884361318568968433094660946564168058998725657791438618437402323977701235716590173115610492912631052623249427538853245900726013475069547713214836764488160626142898596084987218158363724675046309145836623021025878756873634793954895383564842115003576380267776608565213925083383316151164635725376305056745259653734722360499596523723397527008957450697891354440816872269029547227359818374336063861585902285499014429247784743427236072428764055449964813052243801688525876319710946961648108150397530746427085706259671777786908515954503155050843998745604018288366995145450813283386877336003765719038907955542236659214668411760268203268670717030835235265903553291506887409554917332249760539471229547956962518266943074290154774992019355196603300770133021137021381195699638002948150498773030542149423811279284698004188327605096312982304855173567839506466345699661215705976811212185003011639373252459131137133607614011638512108195217283926840103919071373335820816040390995803216492559235463037633173911803565690948497640108400985214275818250782715688789206838551025618024945791788520654276395110896079546968619890618245069342486784791055236269745200796806059726317300090328761431999248178112570962482990431517155505730595948194425073875979071405414016102022051178740557945055887096014090564849988605984410477820769012148311376863994171898238814157496293309997435959294254922868640264191623736365262332877332162010257774651216074001866298613383471605077586105469935963444544859096624589093140369808344325494924402407304888915096192232217145943402800909046549305931373874843869620088743013005309503624754116701046598443206931119683616619937010524475512126301326644129273321266535491336691019375754713517331275751501920542871089538437218237129524932252771023844988328599642811530563273196501472514312197015621811340305639521081161972029621710295872760749582720852131830087951387135405545053280757404391705292863659937649184873497452448853271715006425672509713291880196532087742470809038683619211596450615531281772425897096561299003650923416100060979427183431005872873137952493373190570587943392762931399145569327198633741668419089517974464510688035008020232450212638245910661294898976810480844560585828034796419714908319987337233846527172029725624042855882965867764671308788501808856577632244212435798637097898133083603139470269763435247566943877286998919161679989001293165975628660020056710144007445830176389130643875557158222575614041252789608439695448051886727296431148073232707642343542982383736495395286945077228794362373206341366452726433920835037584463542999516568761161883524573644018688609823453142487595608955391415591271119289563648163287125513673765628841261941251998095877610241924958807597796369085013725881118357416904442525807473333155054199876414374937318546274481638448991299034903034840007680075544486617240576515759823855130083100952419242050222468574616697609194417284154441305329032332111893720169564521913690136493900883473011730932174845343372052281763676926693624039174341264468323117832932549622165796227388221994760357384564092199204473064143303395384905126469105609653321368485992778426234454958782041268678073305713070360175697576082667298373919189191939368577501877060329624172658830836425500842393521355426672152059982903809306897728083950827425804326900028923452012833704278097198116799130209217040215017656401352304307944709583684736772811421354787555333026411971521086343712113662767735344761773717662838640116805344349135391922046043763500799839584682576774274429744574267798481989887830950412331868069060384260397441960717624891856457013878457151272296859385683286384251403227312424754336422095230858678761786383970167850849002775536364017268362034464071715732862472892113925822606490947482144443407705537956811800368314319910401505754272227446092638266504364675120576234556181008558098919338272355797492010311022958572048157460787655015809984872241833499283356317307155543579263419195779113905210075210088133492109948408966204590625153345298691470160222105471386438637815242411692329283359563793132268769192505754283705593201905208986958781342880148490884975645904492938013327399438974334900701826656964334156365039660826968811081870251709910096127518424118278799302356778587326645272059664410305762495127986635269546080465023457050809082032070687895309920770518580756437932879667163372638804488581761224343795305968819854354579016058056150549759273817896386916734896107652342301368239304353042435467452864986901123197214856958887125603951019155608431246847218123563188797041474942100854976006654821083459859551564290976499231243751662052008904052204532737422744106916874346845226606041665258765042353049394852007067637456506262363409160500874806546646149489386182446656682772438832859058354188465731933113441184298511016332691542174303772469104860241233761574762027673622531356682258700242189586636007084315339663548693844260597370899969992003128984238946189683399837023115836167068321330341552912839001445707320629626051698048598038861323562174451326561465180557294743272207533934908683977378034997998436553029886971615977604969808021613397452794143390607526514149063877335575208946850462209038704614391353100740695013730490286365976600178776078500431515852358081980745225007449423810244780118095952757598993212060157500800001216442168155852229705640130122546912139877279317170662176351596310071143936674486961157512917136773202158960338040789915116093310013256840336840878720913205388985876486026397586513507777872059514592087261189739023965553445985074749134140282841068048348050119030617640002209769989729164757597584919683111449432450869499028539260333865236033374295670102820195570658078427500724727993646680086831491852587421591701632910984504847653683943117404488715569712917047181576995467775024380410500028556919779154390740454507110418864020693043184529330576591476217797062707780273827114939514524309449301402107449916700919618954939294806882093444345959284177886836818442845859728296420846423092107808956875632468779786556092416787234572884023249650571986026755767115572039024560849523314226172759817993822310191736448228802855942121600626954125994515170634830370439638743303367718853567261186008313866456436407808794244159266850561796819544466162487518913966719408127133046117723343236082981258741695178955804723069539464179735285310199427311390781202314969169009016757359826758979548222536722476947774317785699116870806246924199378603383632539711234073107932737481505756985294004024466044298057501200787805506752038440724134744421423508751328282654617855716671514957055248073317390911007768758334268554563922150307257935574007830002595205842493113412584375462430008240840499589857312677417753443815806391461108702090526236959612925244999715488787341882916045008414519480610396085819353535458475255619630607455607512947752342702627079153000547946236707578332599822755900786293790080728316070558359498754360872499926108303443309023384742038103442591455236985546361243013306407112801186295306447982937510649995504552295930301758587536309792148466640728940356273288683292513625497998942633999272888537824034177766936191560123205011957235070913023517181234707210596619467482254437072882485692767044192482823641788703797052569363438496281796792253966532902913084952308813628072306000717083003082172834543114223818321442573302033286686583391283298622959678491492680931099435332523817602343930406795409810171219323479168339869932857273367833572176606883394114449677277585645871874274303578902341455596263251640297603071560681909374298896466972218239957104985738033028525388189161264692913042004577086992751623826871257150815550116745816262556419563032287121781359607211126624068807240188203424187961426826164520662749418378916392627747032091376972380235868670667296995240724563066377597293920946554663562725115590079709124761707930168942311208765271837599466398983613959541302705960720104701899740038113363293380046278781315105925368623086767196878813799899827202420192232099833387314421559514242736472941433683790913935098988667334408820010280585787418444507444178413207719172500543030181713860004137564114743430401860794452133942904552685065862109886897401986220534926851707784627271371984996010155241629262728707780160604864662306048303895688251095410392101604264472877454761652764000728360969145127822126989196059538427481787522218013967822875442541464923393284439528038916134869199706136627763195965302004951511182420145455706498740922187082125250534200986557470117801003822219664153229272374872203989112340230714164981648765997055814708155695040557742729937511118653166942906315150250829357155311871937001188294780057584150572205897740236179450027268192534550007638713164239312828551480121176679024160529780602150833156013336018479544426346919426438836219496270274928157707239749945489089012444901006322693664236169608307112894497832594981936933288419971040457216880877431517396337839982250444283395562471798810470585575922584213880351192475536576600320492076217992913295508168107223653292150009287318012033341452048924850566048268019185867651965542073677783288943207454337913568803386340052186115580834395404207316587082353533213701765461058049526333058226166593876546469108726482958856834932228190950861721081849524886880002813318932491631829450398341962766356149581838219902207647661546447847304158202319177479112637109248622315693718565508859941746716852296105485801840665696548167135738591586288774485710742196577694349346218700327667691498568712448400702636041700801027417555844003512141545674707919407954362107623896501346224783819088898841598438084586734802766102839387453081198990023261821205342691043149755958669714070115361081781472501234114754620000306909689782287747203569315957144472493686309146169198284487614615423845664994999486065913572626024764243309392574221750241534672989443519848869919119548789763707149048086892571855211542654783342067055236330648115225627351186629391278862960428589098146187213048385015916803995268073888155073672412883517987065019487175598207330078838098051191368350016945385599577183375231857181060821479305557574458443593336740294647183537704919184720545710673076914544244144514069179636964137266053952208715849523900675573107366061514819858924758654825820206929211998979630955564584036915858199904164133810922260954265042586084881462852894762822609134505706342374216139861010279819296934472369650015503613939691032016691243899260225466691241544576463483036105855063538495156733242395900349606840772115748930412634984953976450221211630057545987838108470120098922724864876455126756319402443555305268696238077102701453143561330001635091053454430512647539327675425067253108441164015858487005584012368995907308100685320344947457559022583961535450119316473611586620516904081585319786626660343034030282891383990529555929489620222101953522605363982051080826148876957941832467431288271554396755622945623407625173055987696447550512645951412342221523404695220838921550297186527668338099864404954529319226391012641272432749938778638462138784341168296504492811061492371961838087328569255062473397701561298077161453162911290879090667298801279141548009560636231524986017503284531511222152134267644152859518722847983933878483489045288864153249205559395111618727113309581919467666903562972834416586749099087207976623303563430003710934450341828274355361446721552122384938045064231855909738920390274997031231274847184035014372157922048035538962765736787564389668004223298921541440014448428901412140232301736043728997671340125420690918437617016046591637000338330564058617967856377702217640174986514378937459930811681932934685351454173281000747582043261978448491989036368373777190515764590986801885303707649620555849671189280925927862756559813590061395210526136597926835406356044406246812956548095755632939782702138315938214674145673843885418800642130457473417174813637341288252278082825555879174365179472921759776864131459184824182202177789191735987961358265764095310352253191972555481104743082762570801424851632015392596229423058690727717690974880825395755478388912472678701249746048255177374006609441846292743024368627876316389574971857039425970390009816569712365618714150698548362144472868377814369491570423800188121202261671065993894168056107866209212736127028282475866433687064183343134549925474490359938650687467031858289693412388865726700286629735733938036511077074185658533290029227745372066929469653063731761250523507906882162503872132492435485610996100023046826116532761342170741559071137754162562832253590576234069257505804283505066064305182207262663019135198504708270009608252892811033419656499180863852126118267270636314147429161303449303304146309360050835256811677729810088738104666173581084287477767431689401201013562604048877232177818082729834101971528181182506071578828886274375891696590552960134488195349428884250845439939058002908272016975071237941900342885363466743897531631352287786747225132989156095846567873725193644961825549745507010926662253412810245289605125027774023690007020240616491866159139448323691979465745849592159153171210516659317760894910135207014054214069981496281647344587363580616126531573585503692246130277407745593605597077463408962648436802071897829507973302193261044150843791100996677268370912134263923224003217546434657118417033024593944699249277418787129930505819346757258089755654012082901156555774178037243510701224634230136357910762815466502943247819775667728349316331515680194530896898225498207101120726768292700619269828468382636224034537867754657719914575331382104177831112759870801326901881416901351555085414711877338448177674762322804805398745626364832237199313004227975755912838125440198680292608326977771596880533189294859281923242041634865119952849353013026243821329824101639251054019341861592779118974013756908198271402497251983683827304049499908620438010236793428995187077038392355962476494796531009177169418301761974984554659890632110133306382765273193077954848167424809504648034930010711799610572755670457357342010575438571427597875874222598283123337569959417237933359495612559737642351943417666731266701764604925186516144528902142770352067756515585656552058421101389160197305592573381689756381895536349204935652807316000053331825476708334948515295158131673637776956583296826513313237920370296310925145394294444394697174194103393953756315136283804031928825199707360574576028272750052088943212972048316432820681104839228855224100891771742697894858340367994645034212579220797465375994415985416946244802168746232371438375408584019178654730058982843403068915443035463084811792109236262108405011829664851155267830802653609090875602808118107824654113959039553841299704046696585513192637680318042470547389122341420330919126538508051258145963067631640285407530540089586163639230508816357138101695587287819776945913776509551553282967330399376748905154880471123111279276520546222634386263154001948429911743654746624775627950751633105236252324885405149077510983895370189131712723143936321856477654926463852976361854468638569728104962501825696084658711521066608872291849162640604538059486436988474008664892424147858858098483717915722252017139337056627057773684024864885095766552245547508958186161624320312273327793017966225824451129836907093184145779168402315218152186321169027878576934234589168713380030964127749173507935107787222041571054533119281384447804139623225535972595896257559789904545216524923436220237407753385410575771517971930939847462718947199712894261669850525428723909045942509444781185720070777611756279282100194485260934247470854057507354907867911543761746343753872926029921523878035949933979991786724733589172662915366823620154035409007102668924842642094525819543947889633659221364884253574814499934954158107276426516256496468016779605342454309104829318588543389619655080542880005933928777801258233409060784343515946769528248119397683370341536018522043331559779499232577362364786208588497006714948180371160624557541984523994990622549961586161855819764631574057375191833926789265649797009725557669926171426835186673386208759106850029488868231400758663141286712719654798436882040303819262136071031041156692362920508484837829716545820890841166257817434907162814461243405416047050523039604354941513125044852028453865732408573588774681327985585252999205654574721778624833560837618010903694369219483716672241271817587734317211539620925854752531842715272461126568966225861496418436813397704921070802921524268898003585516042613802609950346672787579629895379349879106957287761698191322995160054587539523745642845446333699461420240604555053184805897168853948950781677139245851712156508649878183491328830162935125356137280311295649357133172257552683698800883805782064829312128355081622489205009859450958465707708754526231554064136445408802935567188050723997506924545963128917920379037907274952378681557136528268474362268912484679422131567384350282592075731385190027739598699656327984480409302185038644236439054205181698423366765092768785366908256585031675616622847589269144732448696968519702566817549585241589085709534878299145613451350084194256636489099694580855903725536697831105971071951702103330796000802173246929190623037600855063678779197441648543087483718453490094347691688357340149398327421525930569345350377297991287685334024440604964107839868824013275480707264327553295701632032337574269115008601588496656357212647495973338433555519382577684111425212410321023579070660615418003853807195689181063701150644093683953329440673195914130353729589331899820147220998211706575822831272258418915092946177155977328720818733799474263969420432576311035281330295374518269267281151551574131826157456774965388576287473071132819961873837008337027763208911691820154571718896767965984621061820975432221884103494040546082217125008478174098684088696613762769247305793920798164540801765251536336986819677121592566311962323252222812677831912131690261527813666513547906118054296413430802595375928248206496865198210116754687787160938140332225325028621412219395900966092419780192928670506155562785195293961676892620297369669877162222374116966291208916197852543064782432414145777283045441689468023746722274201195195462054532230095947482021159212385999960430210935909551481777088763461318053577064554394412143932684639319100785343571839434483376654570503612743302916051665057182558439012537006975290309381339460727883181803671457141541446978094963046588147218438892449148198726821685854813600596112994250880360489801581578116645016969190378851035842224386953621321950338892915599386074052796650737517988035140033099057139311965720018745782226876043161511514976992335033246052950243757094155009678475391987565906439039010285200429889515375446607058046112050758991021536800377129980501392083731959117634249234304939808154154871507841620041123025610069613596039885895700214421765796296324943796444726950889673968657117820282805644719106447999307599001701868302139938030338775767203107013411343157781873066917015562350136416042244652693987267643884720377654335408057960890610768201327333487153176117507479023154242179389312266545559120980043592199252065134062395685718863789908103984915135805367296739248775521267363820352748285864799634458904676555775439204665649997119076324477401237637635485182537903921951111590539681631779322808192734755727618127848432469840280627316443563131847512688474886609856116390042207265253262777826639211491029296545092703408546548572494867584213478302570149846240213549492353867446896480451753173766825362551839548647144937680855787287554498937855100656577186651606777537365383524312041738189321551237069604709329322027424941249801331767290811231859429408874943350384936087153938630277520205047262603717560637518600803016522209760855586857904069923657410882051913858167802303094891312828536531314672495693966690085021154513224040274077719959237616523067217483169291741788464212682616723810285642242369275883624194678053740380852245268993223684414843258695152117026822490146599175625966311027529952518208307173324090951736607001687013406855307310994548051875443172288402430447215234006256577759996632613845548463426783198671009122514766803308272082606269594227961764797843501133764026205689696025509462124624527785541547420093833747244352365660048669859762695735417466595809058717184939893238500946712021970777165749472981523967145271919536620399874677218197499183494758625238683492924469294795333503828117801664339721038208364955209081872987704673105986249380651127220498898317418794633201489157517223337075580088085539138710922225770654414316504305892795683693711406531867642872876741226161640921711263620194456044561444113245986900680079069986862545595249068055980366712979797016518907102825765711911229459722074748812020414121747350965067897080061840612255372993018568753627756516993798891282414234214573444116833242399311873145373469612664368686534319914629130199800274766427450290388540442560981447582924874886627135979309783844483265836091283670146360982043035678840670947963081535126494800927320470835233846659717275652210352430607747214522305858947984690884559830831071030277545715552422904734153811802446027364677294547213330471943831840842718215934254655716134190531223979376725792253824248407227414090613947795808587334736964739576107776958320382698749679899278028013692580611352220726026144308204129513524752229979533992339608782680779902525796887375937282154332113529036608217295536539026766521362897680099385629587191892011012344473464144930530341743707009971337013795240602757235269667497993773342049011556430546882796076767531781095283162305706112961918937615484628844996856585928444010494217909124638871114952547079361683285628608740385581235646943288874021840939386356700887999477431881095520052632485964480066413865883108781757154478108949954503593342174975375537657393405722722622650279779968782807731707664514671066932141903928279683744530131183688266427055651499213186262358465742287074051647127857158989990449717493357560701680613688746274704561462651274860896526431988373973459932831894332923693873030312988661874438379098506156717916754248230494750933228639444611051444050691726874696714043011173771849473425699808539700032558489463911202347542758363805112652577348739867662082226363888200290165777867876502871983771071156985050445370716162730425585159809508762839509873785347230539737070235398791844107358979936075700766414656605697260737059647247639244976444822753719979995760433484428227204689094058411742265805760712517282307667596825240299482494989639240896679109263934680396550876108729082089595101582137525392419557882214059532675992526307449090787282302171329496459954148177106306592113833543005934026206452740005738936619060924859445129567550443192167829432287872411404668211421527382291950513269396994667686495895548513016740278762133500500398856127189171079729012684338573142851216181136081932534023504030256007838479684023911343317383694807056580061783618055224571832814231912288767757372081882826005817952528916417785100386086716333269097298533031803187739683122158476087688447758297087434482449342888242098534531303610769291647673619099396829495487798741015352203900393216107605882735526841795012280290088708485696452751766754000526208222694903789660279401255507778622682903159417434887131337730437922842333831996060616465364378892697190830535143609875867614405233835484157482843307766328798118132283516404905934146494798842463672934521820558433630483394451927783149784443960122166740056549101437640062791313285458864138938833411668477993155249826887466217983795236348487720635252562076459244087902559199271270278042854543519471201096633162228651664107074345298176414328365493650208366551289080095453953812256073430817824008666724078008347283939489123087923279473314118076246195627197675943106845223616088580850496681235627479074517172531125693438422801080447463226853785962413471293312528113911068461495531403790017701885857342209440193659806718810437385577805566717406026078274609176798594213516160399157272558194516333974878838309562386646467854176435207977581553807544358870262439095547083192144331795912600398651835743988277626144213185675578231478510566637922983025432435340470889564203419992765691680337847169634456750828689170405525256850570391163233301396945423607034019578087751983780705804233494496382257879019000199982150178326983308322733867085117521488454907742837525328044498079029338420200716286953458761049315368677471010829988860124395133376189825238962325464571278695881561906152053053776583046344282670090936317978040654420979400326624801365279483441317646228289387763371747643975911370417638291177865508619426065444687911941453880732507828743461574944015201386088354367832255705663620078823258258535493112553922525411152471446838932568589924061578561601950177895182426468367884999805074646457697526556551236971762182955274182865123532661950865733492887659167480578309097838657307449269046798166237362017823551502548661320946469424665281862852159580043607468778831496382180083893477033932385565141994906721116274452318278266744359730480674494736660265710913168053754893605428794335945253030637540052728393120092397069371777604279354678161698307860184846870032685616887299335128659272440665223316942944119825429516595046416092017783440319756758451239974688980500316340186312730011972179608942503166796099094660041031943591646861187675508464214050996270088490122634939619856847239389980359235308216887278245806211945752751635416891561207604222652454263587306394977727118487645011745596291476049334207640077270924772447054366750996015898002323652702786181088584947125225749258436429090775780678853382841411635616926165625483987705418019658611653102325597393273118315743834131124155627041237214552541017841926948406023202611431528346139664893816664759537275394554532379460713973826944479760611816701417638974030661082971653164193088807443447801889646951898526937823374331409829021840938904876022055864758186385714556099145780921892461090055702790218933186354604240610593028303870686149803974912662875009975297765612894665620029088596518148202663101579068178949409772433651995036351726685189557442653147758117937653473187589896212605182854639396748560261975828748997649521590179476138631826028157793691483696240041314399495144697681914694416703169994623958073642872401118033905998714983395721358824273204671142212456806414989250096719520879023900415054567753694426963505046717561442632640988015963438694394553179148280985584709817921116825526175850872985429581858271567154468313557561937707239882236301324927677023966327015429529006537368604160898683686998878054655420878829799470483131645675052849274062017147757262479709884742237897336520359889153783176318893943220695801831352553538838701616994603814251368200381727448857015833166151119522233823419787656272149246669928203882220762487569723959368618699093015050189327224641859365951710968620305291219448726558851731914204274142180361729175142865973458446834233596568444224418616959417134988166477878614921645635628189426696363646996597975315294407423727789405642371098038740518573228117726060646502872110465945266774584760337286936013915733466878359242940253802078310022132125391452629754600528905597714789273546501394728972452030000316179683722007600507510617851004952888606165896682746364265765166269315209288080831105197506785997181667258657892354309815941996530021374325271363482821100611989561219439797438030719544002407176658660317958929582733683967063038053867206296303821518734582476794272129031564602124684658480162276162229854863894671088637891001943656985347706603816371663841271091984075180814612757148315264278077597667622147466455249479601838765121137713828937838811576991485129944984004165627540645203126909312007574517353589862787703455321310065549255092007055909939382097299329208542335582260992386999298883876717898386612182010288697396397500225022710127014038059018090181144735788289355040881737681149936268401148655026899080018265527607030758542771738413376903219181025036017664132984307633976487043031422245428976404784706614911194521540426474996405386166035791531024991693863714274073569910654374758016116020546878689442517339614851500971107390414554140714467128133621702667139771974847699191418456131164557484498990813561009655302794492018548441805951110971903940794967307486412601926047398574453333287708115718972452650820670108895548739058373903871801944810119914931537719882706468626701945809614159626122282116213380741669651886797595614541679424790738625442627628697688664349982868054678987517952081780818116045380858326035710810370917706106733955796597309133811459635875993023485726261942943814757052343630784268284443794723529243615003933362437328348779552853352650999787606646359707347914539458763235859485405783794544450373820890955228316156716730335876907044737993654396373251289039175952996892594222204347171358180760429898483258492055093591856189031654909292475154176102514046557408730469650021334030401538494849663709804233661745321567734159527637787793200460544118109867643249200333152596576270939704913953944288669079851354093910652720139355935274108595779142720545610044957327476214948992701224514943356472135675123538027487856173006239209534732233908365711911272123178415037499521705166457889642641147992885546957448917112755183336633767788839194965898775641680922324019689475861909645482262169766559709777411307330476299863400822244859188269600834942192650105439905323262435111263784015851135726989023198579136564445048416580282641637329334231349004842669660894561484235840280387813122906444029189554899024535409212140052796222546696785370433650093127991581806249771752124409853879467980072652992032313870863968237352527627506269953127740474856463726537809105207261472277509973126547970120424358578218628798976836768925139597642173253344202320928185018105113678871815895604010419770682538678438207184588111404172884866310375709899441110176631792597131901879291993011463851752844817805465311458304312637881594082011146170543036768259558099144446414037624777868861625045034381945048282228152010434785861284480754593576326957655499996535554862066045134999269961166417297990905589717835653203017450834241751242791160428583128861563921533576666188250127012407289327595682352826491970506457045054683186310413519863598215516789781840954577755381297381695087792951946398736107150546412719890861641253096791092039807246125798049982484281609724157993946783876091494692032548791836593563279333521246163074561066135860562269366159469584636087823955844046868200555282580782764609427861898229798121889368004747247658530303646153604407478057566791648615294828399626313816600211047780686039697102502009944885803871858256065810588668583676834609844013833838279797441213473008093016872353819827327612349706657443153629315535967137556244050825755936835873321459036387303260274405740470367405623592485051880834045546217417839707636176177475955749027407978705561997179862148695601930205086370631731226827739748808253766620275236882033851391234654162573428244054216226178334155209379846853465480650687270999400743843967931036484684798992548275161455617361477491031510829762936300048867010595248528857850795398019304048189427379554159862688693714467354979122464780850990835037097540558749320144153350158487694659144647615312694900797117133997846247849408363303041734043893108096449048953988118405352083970671281049902612611276539294291440242908496860750658821917173417061979968521181690340840264823550012937703956247494208496127904054637078368804498270264020895241838294641617921831005795074176861895605020809543333869707791289549287417261096154428245601797311076167234274828384928533409043313376485866834810494198783527563775948817629392775371709606733873616894969351558802406632364477570312782462666793234424870796188927868088787468490133156576610228475528714472666123543480246327625733867373983338082109191102896425997983654960834571009126937523041968498221276248054940862321721659459339339469787077390037796128224616255805752127671415065227700679798257397059588297436624409460099920076573662043235815914289088776964367326822696210707004832961196257992474926120136627512559793251123453716494260169658339923797371045636237287269595818217196917132673085861158690285587811543056062363310757358215058063260783071019164410659029603504538214722374349246018055411540433402363639215836941811692094466217859329693313906687089055782752717766784952787041904892193135030424227436548812524337361396656647119455516540299157343996635394638177535855526043001673260736406311795975679907796916171588163634211994752755865702370718355084501781629962089639663429027094528200840645645498815656108691705700961948554500390080467375572852899466991850210922334691720311678311164252671858004713145966115402764731170221070237659881517732623660626315905303949354787761212415606432873078791804655249061662006262888687199755280276863391937878425284519057125069832616677614448206002051249564324790614399797192847211787113560660227768363114947977904659930128880296485956582364706147888311632551434334773392659397621365950438278036052891268483573635541636896562226322239131014718805154930963775952353218691859214922492714401218098390022679186990565003046907137238233004791942386743389201913274267285622518000906441704731595068807588659864896014176608881230275121909542837552657253118498517705280114008590341830005285345909993483044062478890623825565197036983691351559286000529783417924112942735483455073465631414002644469715469940536805961844458217481052656589296151231565157071175295406946507250290286304079406402464860452605539922952115078055704738743579956092540456481900765871643638877583554091110450309055049083630120460688821373878568811331259274250445081684898043081484884404005216302542356941046889303546437627882011950409774958257147937533537814685810765754912622716764195912686805401623422310255852286564953801612118677785889356867424430780027510239156244358698401576969178858771691120088419526919490227370798220919668695129469614124358834035029968403695984516342605483073451973885611470228267213720950408382682361305964021144774991994583335202254350220516794704544781550997350523318513103610004573968186640097220601063617034220342107479293420654776448598495054060303487868576526653393710350341600324927115471000424308032451171568733565541388167390611800511440666483794051236583924473320720052777762642684306688120372534260685281680826608410176133656774994254145994101374451033760509562867082725219641508789436935147687591971808737574627449877179142565741579564043225542180437589255632525735464080799492325923822922888724904120842480799215918779436648409396057257251035028235365497567489297299209887667607536021689286977233009346643816674285179855956836971465405722921994615621934385418121330104410279406031892610455369128313343969571032790824985208320053242178653159856812931004610527152283713937752290300265683988140282079143322642759360953135533485291746752736166424695754348703371850410562842687086448523746069377253158113864225956673723699087845446844878432657599477591178531081836404856955471754830161723708010174769262201778874887597584505242144905781211416446166968468651728228997994123576268476783600819825163576834917601266202139975121371417330137019014438966976984036969465690313474578117803966469512558250324669617430187007094188950682148877121221758978040598872605646845021416385589077392754576176317660826207884657538795840842067802786389517679506001601998743699088117899864369843539915533073240369309518007124528626680704539610845184154038908270540985718346888084616755434572370216301583696059119391945257083831934432622562627296358318048141073188038954749949057165489186552296532533946647757417497824392752810298693459222184981659590645393958941990105221247665652164754260160086182983893445387875853249533408054131800349742708971061109524901582904610537452091766011258229621554427431861547814236600041614531946612994553456594292341998938422043011276789973484139031277575644893116926480802490260619970309288725870115013228029772933360833786139747928319098553263742275851794071212474228803485779339325468032020630750718527198384327047543858407852696827970400174535243128392941139693181057201771338212656862988064878773030528852771410558294658058202791788506328691856553557366900092689086678134970219314619578356483155924642057867532630867741842789609317969085370951690075143401962937165189621380308307464167996693402493719890876043458249263489736216515931353665782609368056499252315251064377710116095881104119285703011011631662797927448613486085598165129858174074326482857354476370516125836393989700962046000224888813264303749785478628692052386400121431883687152591096721067537512630583517478972682588200097106345143048498725718522388169466323663300294825258207115746438713180498779187616038334185912701778820609875831901138656178021178175773105056556557798701266557714484733328214672707770916706155351592504821734465402444431090925865767054898579777015020062837121020112807016835237218841072884615276015112450786202990219371744172540512240907816067494255742556562913699039005737042576229475434064622606224057871391310714513369429124780145693034314460270022962662669467071312880524822407419683738060096598211886092302637532407843612289636435408619624870684388209865738062802879145620408362229854531833027529071495236922626463709075298246836369386468915326710300524563308722076237378902365791211139710580079833606790532484400600802862579066102584321202505399357528728978979840383698750397027862662184467192244951929883309681646084574086982873976705194166845680472354622739899970176500678141676220974855305685149205985779425879400033178254001872024144872768742814217080275971678258185939707427817354856741668100463526224317821109857159245374271190988762868325309449928323752215588024140010276891451383754972933604814400313835433304222473989688412717835914721031091240395616947713939720080629675776101944701990764455401157207974455936917566913804760264294561299489854650071369026656537410858856702975846849676177749493366456005944478274703303025557914103249404879227485298523132459581207011572646404077986648619792514306816254674825620319939715570067788275849538494842542279108685228141824165714596669939888386726645955419105520287964194106037730428694125077692734851602235648540661908440407839128291273074589406552416405668780546142207461241332811721645250303974271505248544277036638558939513046122878760514163047638200655959781763829233602313429583817545199826683535848782312729863916484305968160845211641760186402974645078596512619298990544463844385400928282439832564166634734250421776639918395063295743481537745981524400614635682818941813799771120502081510173030416729767366831555633019869645945279572491768596225366071962777848566531529646212143770459806071793560236582255965225535161293089327826124859320658333657465520082716982771310476996139300168757290725099016082258559161890324634695573253344630531322059473162641845035009334627932733911980678607823239897748441788745533390423465326036613066742601463289258806025698014281853921840950369611058917343893044443842434739692881239104472245932896707115666335294832120339456059637799225113845461143382879669673176276797861199750754365327577356896158565840017720270352840228602252176678320846128816531019853213411937706755655049894151497637765712876514611565804133642214998574447911852353314325334625355721767807751747340076839111603267296000731453948916684227692874741150613403973015220375977826069067397668868812247084942144741528346345133174440232165755605852136300917196578649490868848372659288908015738136206780488886633158322575256473655739240556963363114984959092228512494269911194445284130631096309457636343799444632366586804379674469649885646620333286697562586044210614583003104178994421405359557048650162520708173452016557736198823066581432595957912892448810523550287967914301820675075049746063814759722228761871844814258541323111975147841580784171651541742728872329132458995078445185167816466848370186666416562914464523614747422723823312466614563686192737222502504015476765549856820415380301814363103674130233374451635762568750350777071782600135713963605550205147638314081942708414706673316679806800440390398661886899061965272257144897684232143329726128211905939171334826828119956037004782149996304547072248330613862230512537824908509404161265961115770738187389219639955273532468490482541282472141968244297687210324588275751095997929411945431010092773851866865440078505274532603779062120664412319043371916956924946460473123532345179021987489812337270006533451700923928965523190318540108285281315385667727922666852408767583329478740501389315646452720679538829418759080403796753621152579243719614789604654770985848733863663948917520412136549245491380220726515198480911055910926052929086792210887526048920736961690009327864445052779191602059612523842218465710607260309351748482288929083061518952780484702296204600097901975868026344226831728600427087827407337295154736107666936454790368324738254778652743661478553217524735934526207567954281119126958715323332329239429150793658516665015711279604164748563655410248977544408180759003929262226875656757877142329471795615549214655819428578476504745956994813145190455363916163762719449147870359876770942152067046900467736118283275185252229129580958603486768490460955124537687354711369290679416261905168962567783096667954023385541906055626921298076138562008550124855679660010445868580132071244356852698227908190138650975318298282977347452438448309137117901353263543396557129895363381064981950194540686008464635122472379865163904181978573784622904690484862057196341253649864155059426599445525519385346024631245501761979095971020735279988871627186411845450327563819438010447265617421350465572034964696511831960769292772829853163601359153001882001849910377218952114900956584599952420489816563671721956885134234267667712098550181663288243084780730029323987912331907406648486250710571338976859771055971296968940574548414730873615520548786245086262814033450371698928449535554288029942497032437366631998904934963130648467599685849186533179949729389328232116955145308952655083524721514597395920629706257518645223557711789511333420932927387155004719276550742183150548958759193757380053120794485830157802859480999875979363378661194233249780455639991324831649986069363163406897232446658626944909295383546439542441068875107715896764024231497213206640581118399522051159683788856468405091945239746290356846091214132554994884192164561985759747770491926960610230134937933732659349008077975225779115563522697448101535029318026226866766445104508935868136437559039680394113586739673710143240297364753277634355932326326070415134784302507906354825953964765543300280802683811001300280498740441133411011289288670929836700360022676499898750435563988554173694220076819247078032018026318951804241714527200716674201354991617105480018925234362774080024672664627414571014901028566158502245585746857504885543710339267939113521523488088654128146190022939773205792147338295351834039727223296427256739637974597126774734717703555005254366248951627619139674948013724082201447212825851212916022644039281701131357518693058223680759892867707295190153706464985980422143783503144156202848322039947816286811520520910895494790747401579105150563240810586724922319636278484997784317283673626056273224494244494697325640708157543794254073873277157658222751374393689303000037149623598149011525634611451166768205506547085244953551071143509644683536651602568671083692732235112855550664666314269741680717164093980531382423663300353680266500580152628476913218306706453651143458358356206439449859644962321229904154548659396737469717565991027338780211213496371619691666993200029080046034754827519822390722909268947487924643246106838039713613013298352308681145214205190574494237041730329024379755028428311785492235028269914085442220896223780458038696716387850150601117055245564473412312820284673253031134285609406866701789845076098194872027600390724179499010635964779077674276711038574418694376099715397771842190770372786356858288682896120784678018972253303412262818382934868535347452180952247854164119232532588521306675542710119220044183166445846645956214486339631547682442500237386287123584542709898505016912990296038793651610292109170508281412691704809534485128203528118841182749128387049655125175890848993724914426017115318876385331725496124996169422066100936370509483197747956203563336113597241415253994371339196272390634539915937226498042113012136654577231521189971982710191759304766729710169992391251909478356369100435887957313561816356980426339567108257855802763596803939373468764537889482146909095969798901066535273438789507582869193759285531606981212033473472379512366657859169833323680725189241864733666700582135018825813070315163449824939451179496281980601879854032456587969659768978288185286395910581585260471809719759419150647354037110243135559758768154203017265469989504693221251214698593069935640311073485486887116767720202060434982123830689470614581811764710152519890645359231767381645457785620465150070162468047568537033556802321267567386137365416358123767951090171155593765301505346075462878140466682259273403759689914110551200118719511564354786831608463857745772334932935368372681528873707348507428257761736627189901731448655117201579840128626661548576284811278050993527585526588805812535981364937035561194278286354530604395434287826959433275832749535642005879468437452641685232524038621334012015874327597023682976126127956054727509888478250332575856372394504943467543380421784340580015011123510029817772313444454863800802848062358794884243250349483971686925920923809453718160296382669255916429136485547529722990222197461547497575071823400002722583955610536409899473973094064434122983734031377739575436274248038911740401006835519581731530888812959572829406812694302927460285804407854830890643484876517949466469575404687268696375723657226153922186270260123522874011619081075691775780887654076391354006491105439062980231338296896627283645562280174194648793507691157412608923755185959658326428796246815965018802419743783413349886166229220212940636106652988656788666576345207851464920968619529964763794624006026358571863716417877015961552922613960708862347940374665584469023729337321081844441925575146169855473243714988722988011267038508744160293115747460459913340630730924590568935677183426834599216844675735819197161762090344296765560564385305794468477143612180817973530085742363542615825884719699671910195655261463709461202621328783647322646411716162908292830887273793990987184054378584794285998018683333816051867449004701822755527813406420786114932143378080990132006194072418649679721259072914286553764568739931010086117659239035858875546608890041806845656054285447158877077339388443826848244958940082755268765090816287479096526132031294344229054695089393031452135689466654384180145079371532502078280771427501557215956244512785465991642977401062150209522606539091294895593110079744185555522626244329928249572070168858139866136225367924241855284244580714292866634137044014853032610268952405278188110574337056837708848834023305426647861450708068681412143318302672644951468826437752315376574706565105780581236762710168478187519133254712406525929810399031878640016169636524627414651939441169284925041136130443516144738637830212671110057955018675346377437031235787335490894699075328962242641294009786897729204435315085492642659801111409757283841622781076938438863253061152492171929247595955647203193468210004747477510711055695178987679212151298287018235964655798702804224367155349665385672976600093234257904658581955496838062438472141598088317432246336548259210082239368029248756736730133539052301243641975390815251263263564819170624690007013553039214818609916312084711459850926032326369679334885047454482159573690633443817480272392870022457116067812841540036926819526018209303783848481288131987277649263626829535496384603123383950337504259563647791166450483255957343661131836867454827075623112294120065186777475152663766374570051909238887850634102142891457257176303637443481849252916806830157874547093579221695710062610516155138331799958942428055745123193853075635993267841567647010953303433742907008899921390006847073890896829678562831024479586998757713758038361672957160655923799224037226664939264753570144670405310847317828154399186386099836700645318878786056689214622538154746540991439171099816968313165917351785966495902521748172602554190127745226999219007003049863764496224123260525412210919742151132413119330736838684262615287302797233445958424755099852240881196620493689423653775474701163266665544212214482679209699008774830739145239758825396972348496727276678088522445322448912927859201408587476381560341085641832469783419819206849469447857179445790275939966458626808897713178264471316309379553829132018238139293287778094798097312328609501361653229111482007513374696766082215163417381565157673779350296336514576263648814328395614961404582352839971894511589810381170585747718250931053413504953497805411960098853851530015370071488645416748635310221238773653648695620250107280812476918005450263116590278265181144387365790634654755090587939184894000770325167143912762527768046295338341375590758600196870293152274629072343362000046035131687803896161010431209989385475749664470168271858919759659917530361950137397040058300053689934516731157179289794211282441532015564080718763353326810057410043581438343893194837460652114519196437349867999961235653430046909820944927681927611143100330427760279434309160165701263303352610718677667464907738775390993534807363321241916240954244720654471628420580088381826556660985447309195453984994208037086705863720250534579007644158181093910157735796685625103563892392801442651042682896331313454654090905072667079130421489086984185280412104624140812230958812114663856307911039057344696919991318136365095237784752327325259234275589834963599443413287822163494473681406014416991415979786836511426464968885329334713041501090956629750469027824905815506592676638318855363922811722787959650470825665014607976643020593305941679234637399305186539274080356236641244786509618170229330725257045269383159310541201646142917462487422549687400999998045008886487503444357016724108331149376757230858330463304102769844264388322575491982893292142086970892242774414021146157000139625764852461162552374751696158494060522093765676260034900072701124451742065651935296658234381081457693773055959744800583377484457821333101531078700518441287227621787634326873036276591323552304213218571156789036164013579476752276615461124908069958639200521169349817591800690068035741988553101766803990325973255683555634731774613150261871102435144918211087297146990537383276902392324082643941470683356529787471033818702656667942105492154806216012359519382164520498980708594908757159310173193931275569059873607274292996971335450867165989619901017530533162960919006305993910396332609003556328827570363208046887312167228000901409533969749766270363880133073269455712281962721407137271141681203557964675888700187356432811994946438571555783841850846763586001927578139084923191923234372815678618139460023092945492102925349857197173569346398830992110393619532453853629725502140713305986773324599798359274942143330727004718007443474131475377601384171573263829836565247932736208373865359550731658702379148006433432328848780148428317637573313176801168615742771041408304817815541534897037272946095423611434658769157820773850026253362361916102474493456404999013707308543890361985123567670491860728385652405801709888712650146764855872782080723286475958081764700651164513227299982692299714050771077680477641825814465650546976422434885136706140176491627167775715071613815744807648313304666762953022508185666005113059715833647357104450469059042467384030213077295123294364542203867554565026531098323312722859349436281013044397411919797471489614020771461498360817954659316853321755183905668481671614923331653099245565702977374023549715615317359754355819534221497402362973515080508905579631411513331832943674705924585371041284230885856301030488812880673653936818000785305009727333662264068368223195014620091255019829285993725600479777912815191999309436145588163021355383197139530165948357254154790316490992584861511534869834804425542375113014814683917254381608351201010879196773328545864631722196936768018676736701944512478769875106087288867674891035696225454941361034970080575375524491112580097593257739773047176665893195062283584125843866570086109274889140762672195706171814551844530849449294442054505272520617079026340905899241470652883406212303014164955156224540325288291093907324889947968633142534649469717424792354877872510081460590352725671292236722319979385934431130947181671921404692238007029348607298869417055637439233125896946750891551040510454332753977305927965297245569042579436777000551087858463897157069371958692470088683908806993650487362014322535164782508870148195839069035548533280037304944428524111054601719740790650867055951741962383054270484691005736848839492975744008216104262714126962428330277354279502370924524030888304565318154530116463160966070993249768881395854470038498475036777854497534240922038797955654799160827102555676770253800564030018910823864383624385577865965464357582805749462648495623010352831466993084306270370940533491079270332900905510084197027924649768318674466222052640996861657843268258910920992839916288325657449504736449311909453425349790190620649738340585056071742576431891405983036699754047287041444448409236599700977979591106232936632085134461485028994759434187072114176801415953718454329399151334457472592270233049239918768948073926031352014906701921200458560560263449395481483742454376515294012478710702856603200179211929259678220649316092999534216894311769048074411649516551050391304365152138972103244038522989767425085346252188712124927570538628063215914322004572434429162622931628235924260273355713291839400038877001401078763625460114376436244772244850939984139804172595619192611755832943658295795741742686464290087622873295902149397876208890913835925752956175302485231379196787875011024802454563185782627376940304371714999199510967252934544916187811278356959625131901083223807777448988916904500727817211171077691463297142278417999205647575109500074767061717862542879493852029893695382413348968181427296411730033148850166570400774707754117552989253250541177259178721386707888011233937069847273717524381912073605215806600107989142551790893115015168281465113688449946635644989596209569083887783812346872154464081564827694775732598916934581036843398860442893846486125166189784797318513785741490880231167186281717306617568217959929855456756676397121033213262985688443716908325335787552193914232102216332041195164362074164165039698952986488167782017837391504693299907949882984891244830060466093341880879193350865488390196496431204273544479848702729062268077725218247126421773864240758757461537054431064223560852926262173484925610180525514621350082726709128334792245114350488716074923709541739704517261447225447941965410136349125306598900345834631605836529545575964609652260946821092931606144950406729085379476016818729161756027994690561705064431278087349403873251797733668281238840675561327226180580070757520303565467853936187742698601698631173836225348035742903506719004167777156656542242929629910920905126743034323941788590011391066146862499293631635010746283129625377688759506653562430603729711414876902644662667059001050011334586177540577926969640411753900575165647030840376362046856102239738988955011551485859489145819228649735381039570824143654951183501134278072575783878215187643515594629947773829156342518509168797568340206883593146784953639123336291776153969937162591752820586671170677452282518239864643244763741229007351012576058593896385086993406058722902574692576834726431261982577808392290781323719836570448245464439799285616395404920764814602189365185000959458590539969443163673620804708474604640154721696357302244780780759150173867512266800227894935437149087820807269151587872927560272058767442976963128945988127503107147678200334020027214065715473509195678239836183776297594690270726758198850798157528733710888095560949515117788378952040981867946252998321504973537383939985856558311583518309133201242619399126728040606306996852991452018165222341271316302940145485796065777504392987861236170604662058692751810263037919982720040451801480543242116290413715642835424707224688414971808657444872892990751031744989826041524152756288333543182914379652865530047064542246592779100534462868865577886112199553893521462618921567503120296000667860283443815674496877529737814016817922021394286533545416380779270559066856257232582248796525621480822284167502054287271521032882754596409923698940226996553370483281373218207962285907537563580148147998886087645284701107190369668182348349781570429613580028192649873182223121920352864848472292331302501683243325506827253295549458201588317781322590403154654361162626245748750223928988672929625472331054250582038219031185598481429342331335191817140555352148121453279101284587921881749421311191749257437014959054898560873803025275489756327316309085108789224518970873477193751042623679068908642255531123649198110475618055827512457951043039329153013450226395828113951130349331553837034932306885087552478625682503476878245196661805358831058003615198768736391927160791926094018066046733928598600163563227031292095191907751821171140006535552345271519640757637297031603690724975574102723773456609284635121571243107567097832014563466749609017702122703137515299792156600142856008771255909226825038390032465338629626436788168137951322514682112074421347364909217471758561669536295105955985154019639917968122410711624064298019755785289664316475441763124216790560421332004464961317149962813810031928190341434265968015358605665742879848898776454304338759155363376122770006674276907985475202552196170381037283028258864316273588657298615963317863407279405166504466944664441965116725553387097156613393463160534791898080350775053133092987435429168554433882031552633284537141222374674431763756243564388464127140661546297132337555374922207712835207719509913291092512594388329154962076144011140895704382795407630238305716344827923852548211225383140113305659817387435622662433777032538897258890607050756939890923868571257472302566401463414684462135169867293664035223812625505791837663932489182796138758655064646012696903718725523915897628741304662354989691380896314530906739545131943841323270987891332715095267898496520443744624240699152665257015828069705725033335397039239321313900284011159899099010796368094375177481412356830750747466321386579481081406364030636781331715330021562760226014907106626351238129586986672264955906069991297682972246634962953982438466153430737883315162594481033801732146577920258061726891640959995674841057006697103449685956248021959086433786378611029787303901026144263023699509709015430496968792649318458390342929906646419571965744776931978608553048149213857475507358480174326523245091802979958979426840238193405942222550942846901645523076738650980647066049335399548544797459659068901653956219419488269400086172536526154591921372170283425522410694180548124273934951059141987657365322660015931231301609316378558538829193421679002874008921942987049343639849351695418377122562738561778795781799106753925893120389780258893053928710364665333309432019889948715146607680813257097429190621403077557263542730276323057960899434299869240142294909232711212838457343869610895042152662744480504052395760599941183919392224484266489084567768638420783435024916911151792491428450534488149998461561310710466961155511040659152942490502353315709602534913731680735609609551069493019946586506432468564424145950783977460045094039091826962534334212656076692038561253611959181226806143676153509056555576581628779579900416241380003292300595881310356076709014196128851885392453914176403771606240128093328053242278033503979281045223868519694961305853433409731099061774997085457324108020495358650318372631081395349590544424517217838254381715054502201577479195412343694564730610119414609515633891460572590102687656012157723934253309873722211006460244184643826395035343140522039931292793661635031992214456185853188866868299538140662526384899070700513228923485340511623262515531976161641181386491403736114297131677373904888935274510941021847834432671738161170924199055965725057909690222745280273400766563170669939991767850516115396942381785786248575937521616870775340750078177974344192041961162605570820020461581170545112194306705796685577387021715155532571230284654596009548249018832359918032052450646898276471494048343331003835101880219785174851812582079891875943529989354928717592087513925740141212743728020583794851544530084857825807007346439328706992180806584522183592836222977254347539244873519147995663777994198342407475552716481898271076094555804691927746539642724232448666173170651794013124496538230848464321989673590041542673430633871622120080101345110217750261199716027743879507035379955119117356909150613676341795263376676378091592712873765624019911701755250410675356186036680750943534952638847208959417830615251026894591975228478860417271423434453550729343501176205518786830582081576702338454183567396207137236485019939789865522497201120957570011057406893122372012991371480701341958726607083511548718787574466759068646750951352660950976144637155457507312776080739194390397628841800537850076387308869820764740826997008450939640666899141768617438535270157500971186257156940116352214642607994040868657085410042567668369639648250447800322728463668158353551528415675793231660023106694329277913371726749513105549959366855096869493952191606984903029685587696068402805163353027682262190734166903160911940462386271676305006426224090034113027820220039276832603860155600525001516773609959766936016584755314615740634922115868647609662642228905512385546359458795068293962651095618686461037075075226101935177096283235697845558767893392542953334161055909678307273913969407790343071056468708122367119404414349260455793924458390410244761977661198259195690782449332056042015929622872185833703728158069097426915343695603164343810328862563652433524853783557731093332328061182874467456671709335830106367235774821031404469186741741937586286089621611895010383120132073208270102333099520642363634609742704088297538058324448252281855676439533246323848193705269363035278972247140536124780753449239644852775705845098370833146255990262748539488842200626628023284689861094711588842774434645388237054668374529938823304580572884018388952776612437830070162714026283750076030629522176488897954992796221100725020801117247835030844114743049766030190325564566118243440632086600578758751010924269260120956022192677355182898139158140367613514511377096557312164544594934574524235854572178367280423495334291152667723189532032878669524432140205863924702424328857766275940731502284510803043724355927155175961994585754574536632360648225520120937782878911257896541355428325990130876683786791359900271529787133229646542408894263080539537897143064295704979112414959935528183763237651640078765392465653361698879355945932607635606350430992654818161622987998791458668243939670742329403796977005048220040661490816753912439790981023242777989115305462210661747307105180772627324437571188467027445917945942507265174926316051831608844140977997948558658002220072148531400726334468973515378919420156556868167004939040361451614254048291970084526261321669364916571240538639454644988066207287010966915096453367885616527946234873266857780997652666231918668637522246093912535293448349253458857688493188800129701965881531648945659719031390982509978113424370450926800254599243768999335844000311734769098324720946158656487301328674261546453124584126321499964590432727094567820974268243068359162997124926198073203296565276381470504988920503406138040242472957966067988185549315957696574732999503414105196248335209922125339673382719672172977702580316439978697048681649622346717902956776676670663458503098379743145895203208188634506522043004516884121179841324210734661730206639036641571079851016164963352408990196868629104660428995816163598626126961986918479759136557360953547318975588348576844436363448316211669230168810898114887505031710210016451584371029423335407802206510392030770581894207510563509164563333054324423676845673914585719371416155202872402006972379423420562024560388199714824947343622210859377576799319267625591722573283810739913725070900620607783827889671780460088135833874366921233206566632148854416592002136287508559080811023035038682234975895070213404417834807101591850547273121574352895558968025230856515016123458357028671179935837367119070116278196821971373657221626394140018548408077252858735741187078743213727217651419580610438233971336597308339642738196676760504259336552966951906932803316388685938009715499558763412180583865983773537492402625589154315604361038226821451182674188523925267745676554875400691314745870890428255293861339691001549930210035026761359290894258262123592661675945687135346458032912255222362064927945489486961128135276047102784118188894355382683451627346862722117034873115153036605341799140677635332095285944405221325503680979049461872032169386630124949085040174711136154819208875774528492371998302314223189632983076085185146081683867087205059437976593912449594586272959943903405822452478714072787188749472412665367095524147566094967996299224462461715860242044675840418108653368298653137053465888220925298883516833215748058936875141688095655520675830898722074396718439065070137683888140486799695050046319494170665033371156242309086070648214368028635024331014201813401028181959865446922296748218326587370810184367709978694565257771058714058052212043275256126036747037275297281961270925582811700905744936376212652358955631747594468213062281487515039134639663763609327804233858930080759075145264912225127396414686601795358574990113372411933559381239947026546580624104554949816301985622613974867482738577740069787184612436654746325790108209670474321701345294616870593314750457963534045148556316651176234633841770153281100163515602533575901081620858642823917453999228720053194283646433859487598112041598771011464091948946616061419310564041012251427618399590406734368179417164735206630498032177252214228254824600948702375154810664591114100508964321968748574918531596952374615613601905951836307809790974303129096423175127391535249471487674870936597066379840938703481839642923061320980605493432118790161085157794569755678884298369366116628934138545361941090011765066827099988351720273226716328484011960854981692549346236917708775022781090094819439582356279389518125562240190483047492420967428963212963593185864560381634643983931244168769784053386726512319536120848586643416602198163472826395335602865383950337147178643815614906731817922607086990555753765945206526571071126332146030748281785503871961729787983618234028744199400537138919028989490999242496224998691233515381460360562748940276631392360682213990638710007585813862671022834700592578035848321471199619220572928880150814276189832656553831128052274060535828315291262045793783378326675345465137784159702337928531179850500636795880720415676982003230721738914093764426211153487099196838402532070453905308258641373563750394383832962760314876529259354811727235911285209543709927850637324126383421029843726163019474866884067889247485442438906359017334313748793239914798798463596482880233603365844742366749780222334929317437273736089147233556523987992430776512574330216813815865139364133768405687262608247249248564638432860414769537725827618989154392317881088720118013479383067392757618134083543253428025612543962467119363350480504765062522702949849260740457809891199608833112121988355666431633245214481201405920741897104156890298320612985870459390332248972050693576921226387116534690655507732634785810042992792806833101001669675775517066214419757032076661397291182144566369137854940676925859656406425817069931595891103592546029750557202563965677354881273664320853663528773286148581319887847394188026406038918595957800572857427262753355671645528835481608179858352883791746536772502482198510607805780478005873077211557544286897083313995098692534678512880760137735009064124096741036201295677554414658432811675647290784156810785230454776351821235276487226529385569284930693477576814383674408505976120043243175507961770856094514360063495590443545729303890273002558176778188032201441458970110126287257446412956382358167611941278846492389005203117477930391156910330768124448389497990294141004165718585951419036219521102663685496084092226860056906517456227385818912199489316903468171187289304150840274955026940919630509639238813295258433332429617607490523218684749109295925758856592697736132513313001783486026997373007363026631892287986431460458815144350427136580225411102939209907617471836539069849795653240016504392307756234529242087590195753341210731171214544974587906982761983697057408913763102585216800382921567492045460040737246153533677050038086196914804463246111639952455907847598176943951117764261085901881099510002594774248609416527803134802857683416396840961556715285553915587439355272029598793056215940733272463563065846073820306562426374361135080985422225841819624878532199090212226144635848312421593430829818903919672192699563332712750901670325032302649898595495111580244245902674102248086001741874826344866861999297445260070885227226975340877840009579173521834237002500861745878969165832495718674209077938939370772473092915665234418375334608790152762767443473856909202368053618827099817998264157110631854167350071321486044314385986443820095464665313837373487098119969375003806877236297112771834586584412235755350489060203274494713278153505572230355719524337007254230558761907534922585281652821375118190757668834990030716642845979664961852464966258482050409424522495675857983176637114488769334673356465960620408283319369292705591444238066845297243840073986427287348502447085407233228008116663482375015012900411014399431909605716122430799646134405457578382740997368054033081169476270371541216432520673293660654019509111401710316638613025298044871801705767973080417026308298437506727064222977765750168194573951479196979598574538574197324630550637971510502250246410539403784789533606086362620279616843936666151423912164891514925245750873851644499335293501851067394488162319220753965942711256292744238664552475517591680152409490726059213868588671383117636345700715491764807392180614180876509395549491424469872803097992057128246631853593264065453594609231530481417188007886477256225826882968666371682749014296357323859538958946749532720786340899117249666942765466922722720154043549601621293179132984558360613680860601379345044410702365066862981441426244283151395558385027515013529254475065974987139522233808107788139754020245426145537438148347494726747890575007288572943208952976341870307337635226078043026504686608246481503098878991186735958660208147236061046075006165775921186632260295197700169345675120868742096174251566229149981590924057857912689348365604269206661079948107109623775630087451774119302584043658090033164126978633642845897013299429661832677632159600605641517732988252448496047130241867255983852138338232353498980842121947699305300325393268401656155150912184659919234387156644971744306818191608647577736798474082628202425185224855127797446735138670852788182762186341892245241631192480902174072372651915734065401216825154463901491826853583956208350590976133118960611800961762331790125519431955998745322685958287928451353681008348199355236714293820326968128683783492790647931313056883354202445826775954880595239731896548535808263318721031614652609123315457616973583934640642005716464753833476039020417112206336313877657658107482596235780616131219671653035708025441168507364732844368990316445121489194887201212291023739332755881058238775106327755081235433856786871891420601081837078200028586850900049276096510218757420061461006398816753861798682454092699079660621150953274285009054532078481617845075932476621310941478098979670252677104325059414592547261993774422348161721591563797925691585268152826239423819943550484518417939050035253294325746820521462395932717817341650846951197922291911847568980211594977525518674008173037695653066100062879273584187416926826493969569427218079736848555704067055847134447388465528282340787948259829281309179849806185632470310384635084298393317181411652695942949595197292617628123153207550493166381594030244820365341441473215904564326543431902660045279677281244952716280731005380160294892479020807594701877913872870673687602364214324772854635561320519991645932077415645909527438447658318302903995549998384617693839026773935198748687219883547164830621935109874868161245988959039848210348072548349278398742898274005799188572427931489376479255011541967274108290724760358128570366851165025619922291334020311656485877697255182072928999883499243674924201722784808165278150011903456389392628329012955334864359618611260211315328325663667568670547447126127495862476418291941660129127803422641082416145251317105375628402455917824500302333155499478127041588748624644107360520379031535576034349647364747914345886622949958199707934873680917791686265964257691290079921927168086120935809070264004761349808930815731266214659069538113589756790071269088638359496218632748509595750366670603676526880109644965952538442495707255725643927149499559947277029111904482631487695644089435996521400967795106351807255710661584733377056810888779740865936552270377588021284709629163369279353038679213648499353208317768892165344560019417992187734271719635075970518535182835979890590871487902922883362943024271336232770584503371167237537772811693065684081098381148470743007233157121370721854902385389683533152106690374011598235726876353095773663792806722826893601901469965536341438166248565416192833562218690262564496342865356100825293332025182692946215094903112967765047021837537877411337034765649537179947003584295201344177885841126673456472752177309922685713788316564675702347751197704902506882403728100032897037878799477935997997580512726473509792810928179083197936195043441990830037313857266132713628634906672722062272141256303906753880717243609052916120378787520367674310933760741904722533301951957253323775480988457034585082330782162971358474751931999311579344088287886016198301196489890329640053419804416191833714649305644793685666570585188694404483492163945243965121946363724651556476901859476465175185881082150306864738681067271731221098070497662158388979036470282131319333167424311812030839636315588817168179256425701558470940561298788903266640645602806578781737879845312001521909764544057935655590366745476636452241225457666837450588049297450067545673867993230527771476050061863083962089414596587683816624085151010110957455516725071370891156832711907200080322362517922824622651284988362124711526509434820481993175646734457866251159530481103032058210076664445500684831885786941851170718920240713899332370114775253176916469488421001877887910881679422601084314799794122602094204830390891707774266433676361263803462599318434412300448654281865180683090624620184990262382690745290138388047231418883548704262184482365289354868571325617803197864176615973760073051724538949234372888122644211200332500993872145333382371698624378405538847507106283765154664264733919329694666127506983787195150982464990225464587616263587712252888585949284014629121978550444540856441416065455382498403767162362108110370732094492435034543784236911905592135790292359228271385691017079778363763548189199541246214880773474186871381652206506952653337399522687293185553761942017808789459534225026503200251332674760352330880424566978402359794335672307134357509279291758469286386856249572991193082774087633430905839855973690370073869707535916406614602738037135320322297577060279910230515062276463181893639841349277362282711760869289579870575122576029993205753881182005578026297172013324280550645651245089748740582356635209250940559772332812467167342752944276261158828561412475729302612009951494012067914944624404076446878111527727324804529541280682500385886360630195823443880627942233628601125208396102051927788011991388934634867133318200220730594377300090046318198146092964052584670430116734317917624262320738574804465759149186369024828327135716922396606266803108185869181994403097662005927784138144006303432347452522509635359154933412910561188612030646745050896798332646833658497861480002642151903817312805259904886176852879551955369891664435432062130253289104420882144203652517802416785255943443813105137406718435693138543709797235798832695087648603803923055845106349096105529392179573214690169639568224916207301707953793016067805224704736371633737247084276962339173256214408701419455741396169863598659303122285033792869917860207086056320456469801785624166416307581626140857851901204178582728573097510010745630191208662529333648537424045686652830203905366277119693694716977082883556602635459235644612267349705750724765946623339012124896183484688623896599852198011006797470874668534483580188615184180734155179613288035320964044376631640299441831655090891055254139603656283400389261996330493203817535399354474328363011745600569007807863570643289303900812605263054492260554021589255559490338262842037550113578159400169053160930535195445814444934011815152832251498611865775006130032484583285009819878971305885238861225939911724463841096506297473925470256448239198454637769027092709178581088466605213030251494386662286383761054279129042087916513215379261868332444383145060813992856410222713242471496684830488400108749648242443140662184615598563563969249731598131571017421315812251000485010768567879144645166714803988150173248297233373747497627464960934091195678236243071861929834785981125007882623615274294329180884085396556854254027636982884671255705034435905290670172777562272918325712210015330072604061062800595027181679661662142498282514103365854798944195063517969769444349373718993369194157370344721821908786387996833810413889176034279558993294763474173929252476027869445294674918384598699765314750548847400198308208969991009781265266055382117489781688151638686907060818457241083286760233484937977285766138163903973976439240048805478355264167247808514898651427754527249709402512335316664153747810816432229709382207300446226266470639658535801999313215243253513746573461408913896753606169487945857420707056299603535326261512757406759103274018065971480190235306569126953897017704958793999202768912329528764586163066334591513911306050842049948195989777671243820226176412416934509162885312459987257409843396638900736790528090158687979854396151900795893347851843965193782220233049105066143872586634867639284704104115630074113840495385518914067327063054727554712373437820675886916823982710764795568646689710199422343142997786431244753126488407046310226293462538287765143897427358588021821642850815372078789895870553992522840772857246334085675578564779670230814242294100431150309739259096818997083920763236925966050284077647570309902216262986316213365870275417525531856119260922541126091957653022121498089539196866189291125333252459895963185274903293583944682906633786241051692053072651050083800682698540581833134016339865032986513970915354429458196737816553742758718905246550576426619546516930416220119854316519147804830451777160566431317008547158302939344510026313406807669572381365002183217165539486318440480456115753922180344448484252475846204769448410672109725243206842981316934024513882169292927253708179715485179001335237185673127522829342621075201162030476392345278651109355164143055459561997138231116556025615663091237199482727755684652032229811683175928474367679466010742860228177205204189512315992232287629800844180295818655690534587765308735309364743388659089146377507013990183520064966312184283327393134415094093720147919061958203661092431397960266980061602939029369917987298981859791418570652022900097241984415901037864072932168634970735615378382836286090002609653128927107865155778169401147649510883504422237570359187823423037789405843987874333941691874943902480967925188083117962534754771524992609723724820732502323949282119509633541655640141918904221896861502458945552068440909812334733204333549131732785806629370634630441056534209773219134804124074027047716828351461515764028792616552313305197633960831998580644905963804456236295016191793592899655440028011156960790592370445921872898149393724880414980456376350817263581234765149041952341294986450396626808947255381904602432494049773264783482579708524001420951253911347743232701103824235729211880537602388693369074545348806913662017030866388059286768011077930778082422274503094225800472721974025607964416261875286018439808477684038438916264670724960740459924741612715197381055085163133088838763729477114263412241114365221405625493500126480879347525207950283698040524017271545545637590213233660671518018707938896770789047766881734028929525368871098451533202939402638412371196650503819784981963613454902945227550360187263335404420755520847934878554425405041060836400453459781429308349009865668604041539436882901813120878114323198775931804630478005533148664681104747958468853095121426998761844526887543981569459344177446668073004934697731144531706129473035344739728030561942072171321355622857640400033559515823112162654727778844762399991284404716932028093839682457003873207453826384814656065573387464843470311482290892638352987331713977592437398733310914072249455619496915435483989623424231122427983589557309381705448394217486071092904504570075102823413321299085574618651323128676357716958498605621270219302742827050570569611940580445070473609023845157400547749686850965193587996529947943618635100570549324334719349785381230141312271416349152118360330995273445658437770113703555933418264578961692777351176425109708399230485944352522125067177748327612474717733694211411536952362718095118149472306849766420128219329229412567519397205387409611913795488504242808381267508747838681662312701514970826322052937013364491109782340866288511070767422925335310279986935521662235570084922658850407468478903751768039630697409170817170703582951512961160556570625979540237948318296987336875085897424022436719129742542489579806282306350903959164153622721012607158641538228294249559177850763096736808189588198193758291360142439323529686187463695143977210239981853918009175368747795413894275173028344420193438290603027085407857191055477704163087990648420711074282531147600248196084892625807890328782107521633004084759306903309514336510906413207815397706057111580999762102616243188132483402632105452851724855563889954463461588983909402451588195261451074655894724148206101768153591654438965184789598129209137858251087105610641010375353813511080012993454283795749576068613251457827960452054284861884941906684923173349955399942497440518270373427378252262102747840631120893091281666266134769606820831970394699600089013221154642827722634769693987594420019470425702557858675319248401856672853172859052375298051561162495471821142716616775399875634637097901136405546117354899446334366469951711449702158651412033440320818930625269289634146827054331133418319503410318430621715400350119710997607674883980430049907685285051474596269677056771395824051268873394061276458347037283028344646267651934318682749102841668138375150798409078055456368954495178820140842259381964298204593786383449482628207184660188086623995387322618341732130953219459679781480285984605563464224713142273536991692014518120817940281754603611208446543587005029913239241746725509072526472461832825511394537622692514404847549278467188244916244888071095847991499462083343479489222212191587149190814209278900130189864510671642844767937355593275163309825528830415816096730520883634553107944974957936453193062983508469075198918463439714812031428224326634223213476532328270344799570331013937035644362954402411789287645659387006750647201145143266840047138859453314306512432695799885638973694398715316787894601513394013680619998660228961520999776469420874039814828349356677898801160313234919591425199978483613218751542368798966571588121115531083774894938785895289256453259117445857967207100682844484825900138116554464784052494054242192917666292362288021742015570702049384338606239681761980882580538323707867650916968532588588327167362099080884605485067205290631905376217060335974790143892646467625478956079321606162684243471843152840635711289425054123178407693534784236522690624163426159637439621735279575716543001278343211413689949334289886547198533986150590453351756842895227789080544835425403968815994260776373594198652024030667996362604407284319429465394747524210831405669050719926790463524076934039560023024201473890244907279261074665482565387075762546707037895638348970414094890694373482412429918390983461459932674403971959370064165774468603304072008086593214806615565997915761959609283271272178190713936748934726450857731578466734440244360597507377787559662985668091525810085380781372141849939512124803618551814902233155232595347507606481395092338548286891799876180977902581329297807870708574570823695214432992583910629569281839825613181671568922798552296756488555796355473326796468493123783692609075986659530513247511790587765864464751947700524694696090399023336711855036274584682316045072395381709391082705133851112849768736564254235894018608880984675614322352864948863582619461331925467033336880898446001572195635364382084136032185326907202908830390768903291562041123423865837520765628901475190835406236741947057741622393923078518204730897853316502870983660516773401425038154112201768842500760991960549234128165561440029667258554701995540161445867001954721961392861455119643440200792474297060205642165882383769952248475304182038790945341019428055951869544811538478027410603357758177843460955280344581524907472926287635400782805049858581404368506911899784283702148508825766911249039577655514196118310960371268948935899611069862996841703494076935785107240373421796518520737917089993033232884605404392706433131239774591542227532484246637649173221614675804216580248728618170874207108441979052643643874349375720229785285295059810866701525122852288553718937463015450185944090600248082067715738954203785291300200104184127159689841914225679012579290000691710332409993656975773206893526787198070865039595397783678073700723864938166948322427320367934984945183334359572614941782010696197373256119625588402328676443173422557649022199006334045169231907345326919033471996032235408393620797661561062572647361285434886959455100276659370176155666377060351853843480712032679485489899050150116615898668231561853788790143580529867590261003669663163766773394051951131935629909937050102284017277467011372555173135413114457143826337375141771802023702767979925126005188258030350970036137261783835524786061638225168374001811196831078808904485674392241330211833952737751413525845412304694467097878296148362899648461978871373154352209229564257961263758749455938920469860763848466211437133915990608187111303377799266233026018287855530818461051459020423400766789412618873225279892115529156366599577233834438360560341447393433816773699723130125905325510353119786423755474742309950757478245388389744822475180170867444854358449557041896917586205788757740063774362850983050838958394728355645017307521013669069105409068919621004779270211805407934024734392193657512881758258690135518060599558358066783230344294457607554892877757940996323103301365470140436559746436932398502653880592669628848763078944179331760245483425958725934222650447751006548896308933293189455048185535478393385411842638254000891658823145486967095275528131629864160736876202372977153570497490791090847331648040411379210943597876970859648651216045975148939014629520845326088669204951619695819869583469506078741638553009264300847254371972364150072061961137740807960754101024121868198999744619234257112215680827855719074242553083513542379770191495393771138403922429998125059544443702428598265333456475615606375386103236389992348591958940145123506027735285222211442952894556986700252420560385869136034407389624520463983811367394587436363358058396038641065860501673078523335954060610780367124917786257999414513579667577384308917376895935819103290876986984873031101539241730698012500974691454235803683242374132777616964955895799012308339862181257712792748899060742544006971207352343857042436111047173854817974048389664008652559646822217179768330354742731682064514381756297377584789908794332540894119527502138693705115413275581629813782080114040947586942207686940266044408992493660961658073448699640673497781369776197148399487800460264834536401974278849086557324532610425953164180039151980169097978642540930538880395790908191171093504472349756240798431365766707308774175194863295013892273525349430228342282544942930232058296976437907219489574209612745309282184548768559764993862448649133463681718543400734602781268194020019381028401170144515894606199873969446305990124782640536860073180862412218068497705347420149647280090948995649537581513397690377841176466365857646882004729175882662904748920512118969174155470368586113799537896883553202922584012231621603350596274844807043125312837668380664209535356998153210626301224565481313837562136331657965157001224539589876608828444836324559977765823977916728251381226120851723999828651664931859705052554238969689265775910975826733490955815999076629447749438681482967694317963057517399177935204716190554715672568500234356532404719075236559977862737681647159059677182265346584544786493613590119014152755641793329589526845987496699368458944596665199961040128871929762142673198171017590994885171150540240799849787982322938228736055933755459271837512638752121173321797887677580588817878340697929233355783066218757440032652773571276846027376687658519976668380787704004276788766190109599821210291963494541978540752639484879652082640435166429555097980788383920279441834072382461264499971587740119133545512174434973984050064923271070275495843935690464099176478276054920899957870414165101733340055383911830806582938150085806003745914617293422226307113699574769018957835884776672338241234221999288442187245556979224826974009714100549633671586553760593206991538624338706598081978527608891066581220015366131089436859049786700491399430278291582214863577301499450722953032147172787030628157627071924915499749322035579566080904405473861059054100612790638570625828758760799431510148358750888232256616654421492733678979595430802915977711437690020184464278295395014455418464896517432798064001289946132439867837428635063745056785468079973126411232136059718962795576268714093481218105749993885751257230936205606036191204921007296164991819939388135456106662605629004455756359622402584990114800749070877328405995025888560814302840623602187024290641225228099126940798553246878704816436239239840859616659347521012842806069862280982746114793375890318287586602243790632626697281845038479874305688287668102365760037568366717548242780929316184609699064613441547014472041328093212742183543242195942066130981047117712777867390637497033483241137423564546997315669159881556251484348926891031887126752195932178953147970852140854222285312004395392798451137149512922926287720275063174352655888281423835356796217494777440523544697078002900069442352642611696065776728182426582038869812669824810061441472621437565212973355847354022842529465728907829450477884989875642479347926042167464469240942818447607039759054854050604646313268011871248128778722690799081566493289772879251771053418783242838991905133106795885793451552897978515398243987964790570732418640102214102267530132418824832368896651487815488040653776052152989920897248495334463149516132054745799898232771204631248258098163839411405308908965319657359289690343935505281255401916811073189276238501616493752608311629123503958157584972113732420608446395815614522835773142588699817309515185385186255870401232482919302701125587725304043370666638835883619695765118812271731665152639036367238054466953304368648413331612903319471385744628031601582836050468671390697002963185594411392705002946151228963176534976057977871377037446224854350946853078703765294078633706036783122813106200777222183715002914346928811821178117882990994857734802159447152872200694032907944067304179294357008597740365065157080107927459405113194431929770023039720826263447908230182593090002538841795100723824433576538568276637619553214588814852290699503497952985279843777556628044323622001824692856577284754693010230210764715336778231343523509477698077657072002669345703244104582855548894611089922003709685922658761778910281382383083766354157147111882591705864858403085787560384153046819584541083192594751797627134737343938868406516451564141630596229634263533818379666292614241967792226574224688706765821751367836285536260258062411797470763193562977712730300538818500744831007938053489073230954410282394353210470586160302399759498851214004400840660019860905759918916081315121262125126934549641027587930913872509002018677557010341438205995731826041489429870501786287855667234683702173229147145006753384616894430159856384069562309859210336794518874707994879110677526556139195622879595218227135572088786348629534321072131005121887635542696267938713125525851679218922146320842052663909766366368454252441058886582810050787934568202696112755628057755167418713975532631098363251510184375369795564753400371336803415500683798226351398282604084148428017639382987070335914687980561022996001584109001311631233358613562594724248701220817224745007877622029479926260722958438619108753066013064922431694012399650201070244159475879021674739674470979587236517911052521652050615996584022837217742088961911052577416250145384824453288001614270352893951414362469324455315869088441326125120593822697728802036460307129021445746559078049484267364421811929374596758490297416531090129163454767224397130331365897809800772869664749910764106097497832310291001808317404731412495518906179841522421467629963434208999545302976542215606576546218709085969830124251076057357681048830923234700035827451578630331502135582694866673858034188828705200793019931487212763181537274954167331435105792258033087750349887157911927575100586047176950850541934303090758423715857833633904497200672882341500263221248627241650660261228298058091118105350963452082081484592041037440909287843481714914058507427518635506943683687582486443076540109805036052923231796620375082521478407382375338164981514919848969595528551905289920601719175676735960266565134562781085585259632699048006674159949821399496020396020966006998944646809863505406458053079311303842411101068375414044136927496006404051062500192418289004406545458211355239814631870714548926291066134223734910296352856798104630430877057607772124973067249193948242817286610946230442360262847015507163872894718766998526069450778500584967309361865499730218986836535299685866496621808922200421692320265837186985769743297774595524642892278988758882815694091823505163851042218930191507746650880492935871741449873450511303922019272440815221059494290296930536768880447981063859049069263311068379314176337532718674836747962776366464662149502542217657130576369257364533990687981431563052351920324081813184943879661243119603720929809242070155069630415083441071966808142948811528769993296202765657009396921054901687375801986401592557384571501406191638109500838750232467333028195508941864023270413535969378902850937806772172713354330345690799626364109552129474052596059748241634897319801741783704602054748362319477901119562423906249389148687359359616477587401858708765400085004251204818030804517795017356770181132708763660215887368740105179625938866977897368476965493501065392984533444712987853511218694990558098589740698482001425832411445899241914529005269419677728687312958572973512204023908223823558882047752900883404085439655211761826104285285676508763196529104546624709366356962047333237896795790454584606700598313751094195477164316166776550249394786281919644818438825392065467961549612433263693114816731861384212037006852017177302966877084742140213897253969056326355726687927565065996878465967166707280048858572852233794251939485338087248285688214596220965358731389568419280175003969966488561842377517006522812498871949457243865252695595601246100941026139928283023800323094497958832712611247316881031902006141773784556957960611559065537975564599940803123492348522311840497657355382425010307250015422406669399113450338362096999889211539909954006823391758375966690314964865001563463170573083445017249361063487566471008382225783734519774574544588712102682536506808808407201892445897732422618195780858495600021122782077452242631221172229106793488725741892125043468795219046242835625670099516008236515845558762582719077165891125522501709716590201814323901156824354198341114855802397272431502553680172380290952220461372701130106275944432026107678201559674044412107255522442646903403058102209548275681186879259334516667842919239240990774281492810223434894329944936854496449672372270965765402109607501429380042646518165116907585110882743108268168203032559394105198599349989978858310658676363365944108419174616591996964952490269359202520969211038660400442014866952506966386491857107546530030126627435957622375215460743765709332870775272730900032914073850432205839852785373543441152360625519888569110237714859583963495894927396717030389151084327163319657154983603723621132329430446238249773438910075381147478330558381025837220638807044939236115825841505757426898863535427666050593924980720416717754821107065913996999975696648623364966556110018721396791999408160893815167610242739541772770847238305066618287970494505017886740850920344201592681255702825191349053181027162281503492280224343640010439196880778221598554968488903236337791041929215427919953989717326573896366912266686513654325318528929116376502282260201053628271505653300010931163861387849661838756945750267358183911060547074460258572988177338387546044522955597321906083975258633497331843029589020361712866927875329228031487561573058791489086653130574293519896091808372520373582691891736283633800835519652895398849451437010447026681261671228027891264234139153447746676770465750316758240676393519138669639389148385047944220245281780220840150809278470500923355629702315157689905960473887159602887778653742699368283033731216994409635382251063811917362080904128176165557128551446572745192281561930660426794104081211098264589623662154014134271723882195722500787131761395322479974932192354993146892451677511515546482590006484762541018287955391817831951743451747467151619514805053118881732023983765811501715267103406652404494249518219306428513723156356013173422678519630432226309302141219857389854351465739622106013939751348760744743618987775693146795781456634784937455347234905419730204047845787821494005598248074747519529569547814067177953877197831810572174654584662227554580351315615706102361422654685833492569106604044812095326919314007503323164807044010954307204739032680230187562356861828557395100083352634798155741048227897277298135537550340599355074829715460548213498739315318727611451178351324466808141791786631598161894318514857387645100943658867363968911389800179576095268038676172901572069310740351033115023133461854782193927438953733898910859032371722017898063964900457097804326261693224710824701684675716339663092943298344376913593527799753594155343013501767004256332304685147099714621017498816694365990016382097069394574411627083681728261930245322980169686197558998764881489208567659427513507059596638030526707719017267116531602586704196520654530204224361328705099131408077620045017603480226211085923590935518684449922280207128906660355903328259773070768984035499841080222922679695479469740608468115260241578858909630909582538512375700497592680787347197560052486172388298274805815249000489659159586815007477884145325249285919792410988231089872173606914652201757777325452590347802038544888173795987852907640472487626170829381377110898126385381034294911809374771034524903901207097791152206187986400444850041232077364115609372454599194547874131064489913391987940828651625265715348486213301096799886421472094852397865028554734145365834223370164077955311197967984763435058725048405414289880041687353226037926378696385133400719505831468549798231372835836391467514256320512326311139003980567585570230015252926147225304717908302169800934159026833800622290877852568900315062156257261125879707122545426197812403995870076557420166548788301431547957698929291384678874430342292378539979105950144262125883484576710841598453215882461542593453832250175887036485902423764647566157562194395726609758990291175229917490498496606343802045815903329436803064317827574519366507224291733463309071675413295433756525737405084841949538571325030875766927406388684543044195440688360368919541302855899703159402961053189468145520286256252689286353300479791006782420318194108654652806103678552019063720721240762809737676122471682419342210354066095161513007836879322796611125312757314547147859138735243633023810037685894805527573855267830853614448853675400147553525343101095541438610005148829425017934211510883103386914761421185082229149976481387113668417329594952732813845066672800328686049153932836013158560416602284240541091461015195978087095927905795690443561098358342842805518863326643855768049168137076442428665639071882173223912684686026367603799915214942950571183140926315559575047057870872180198319368295197534045454112928286462399536833562713200288349114154422538320914299970721883223937281645202077943239858927646417008272784824160250459126830714868404909694383832216161140315021751401118789374998610128957571117724049156709359017834518914561801710766475450510285167075806149750225033500324039741740270556105738388964959429046811999659848726066813473553494192987124693683484007704242118610418669932073300707026107090250804283522075623633905664706215678560739098694739388156587428450773727007393246991048628221451122889237220690433788396101172404297346898407629905148397729071511678322267556358865585904242381932248622657340450782405500340178609730621256759766529452914856633852123373541865381261377387740544796072710642763614076343886329121420658507204382371928939576675185125028215368673501044037302992954314436553862596648882122731395858789463392611877575243163740967255352236098213448567217879278423562070990584889689215640865489503260664678755478665509523739299675149850095884870498500887786468373291878823924741456059745754167579263080914609508558715969571244065416399230345922863010234085200012774492414840480897139423170421530934738528353119028905380538187285626032539110700745852864104359783814109813989687295108630902627902501186236691000017473982683924578998750578404770781395333265468867154957066395794065843850071907265343370210052620071337281690613054337344928973541619524175773010323543409618724195171240917903766501984312059196710336750710507409207226862841609231525801694372297991287829187713324453412611242184778718031644636938708866918456794731656307611016593208764286363782227686985091633874762738008949941879044976917402464273996754371569041543217323593728201810388750847779116351865071625252290312741391275078334976670895642264361120328926266708600643293368340869226319056798788433575318757052993112460602962707051033955806623970729201896008786725549920690508955800912188538124601367381288286237499872268283443618780778782658688635305247902804602461927859087957896948664415702731704184510846239885402521428163758019317918771150003001369369177561720034245858878281059399995934656226866451337535843790926217984811687072223993577315494877118707111146054469467735574949815723784885512390152080549847889040272930495559219640501618816503303816680787225763400617465535082105798536435609623069031035851590291624034878039146219757862836061918451061582743761314674642389069110543359409870838149577916133035403273711025871241815513941565870145955919293849413974318028400845825723474702283859571236875840035643304428021866282278424594109614443734103248664034431062384377358125361267755520283267017996221149310369725913826649261073698882377441630933707480091436307097522641064680149911373247536994845027805204494180067724428059389829582934448093797416910190611037739787193712928336325688117892834431762853108736061956263748938174601128800976142583128067679017010064359819315357674091697032024474771660908184358269567903785767054157669852254591897015545122486282994744139972600474230729796896666526065012129992940238556781655528469305947469385194555148833685902865047908843156899974135982555005002487463231414056342771642275272043604152783065173080701887228282893843683378441742148943291315743424817611473382588973639791575474047783506224946284569350532568689443723680863417829981956606473320481124752318707148051462308823518940810580726334556815498615899676118349296183159837657246658416280698777318631385147941662353929981477038375170740640555534205361983769812466196305424651652662464946124272598490316658026561394236328341731392503733954756122563434059404614555545468104396050602797327826879429006126435664237662621445103177027938632652449129220502487216016956037535841499077561602550538127026108080751794358676570800593301843561467579006919953026340859126311471761648572831849884763956644613325692176683507198380618356890462055974148316865829666902376499217852076226026602684403358027417686268361914618095073098935276232213695303012822163048826683678367744899751609689749442244362649713217429622589084699297595744918020424812383394250701670570295686972134226364391512570754254916740350301816556502447910311480558257514082541441950568050725457550513235867078054307099487929677663369432098623669262451796987467798897412533606528367443965100757105681614454361139451779595899621243536357743796298284901429505391655225673831711800367812092756649334895107019758054836002777002290504368097997829626156876386155595649865084419281549393780204230553148430638841042599930718442490569353971351815325156367863573297258917078126438403977881967622339701990354192229384178436727328561783321927980991685705359498676605363502778398518722502346362421892845641062915823355625680512981100629913667502956446435359366299170772362544731512711849106957286344765156348762503832509787015265678440058054169581538427891082852995002676495348831801889735369434170664631522971126838513632297175466877757877392540808451448666773487460150134462462087447840863813195936863892869798880393711380176879591966446631376948073620842755117215355888149013328592453323686719177345706290881100520081836406245889347352573248996576874586759602120343556949199649121276622805430692577188351764154360611615606569011481902603808087350225628798361682354454133456054348888135647779598858299500676029669224808923975650676565119257174593142542282652783475855441526656705153506954317949376910409540054080747779929856012694976348907499562882833720115316755323189572101715512252362046472835198955964950729296536235722795159788013927993910330662667500950621149871571747721140742036878432804781941374211052106705695262690367006022581754870120103295383591505203684612126002378478704659476915540479753035491473335745274092453898037232828870836777956490012181746982279799189312292128968104049496091183393247183707737604698120100830050999539126637612689546427857766807436873422723103179831006879190893522048235317937366235732358990104307684105396395500468232336209467152112308857128129616641313006530174066360035041168444068151704604482850984276909714622243762409953435674359470185956252442312874118023069029833416763741983346781154596647079428431182674777059981462763687786759315420609096391071747975579966255212262609807048942229388251679331579655869873891807525908241988390514304417270027632427397979796792227624514830861149962134530469743158658412689391812441341143700021049435508369787495997667502438178052691199828552301458059896308453699125095981372140301713598781585378840872369914953893798421527903207496123535081334388252895243707674711532045569694173540660495471743544031827750493925892340258868246665163777089029476461124471274721153145560889372684559491010119391420353437437933055439811488088954339568775767101995704723285091416945277884490864785764886931071557940225634870531040191291368995827201357307730726972970767930425355457737028614623756765293318220589616948978486314754735348219672257702352199789252334343522619793226888000265523346134399036676911137246875034327619638529385388189714083617873533564799545034066070285488849579707990519731316980665190980597822129901242979440283623874043410031367298517870528039805789324971200365404944493836181597750550513925258533847140072747364554799348054101528755000821473060801188449890707597350742647305215695509428606066313929241491215612472221612604484020060939344577216493893386441808529798853694929592883308955594282413297117633464763417268888613183351872771439919584870414064904778019316428233676276441016866630266135279337326598517786121516499920659361317237569937018667443467251341534692429461723042202027133632170670347805522665789839834064523865395375475177370213264905600477794838147454781226982584244674637880227129132282422513768988354008546315152973804674328218309190950492871349078901238038908093977181137735313670348743877443242017682960390296306721908587209983185329018873304102926230449233646608954365817707622155217701386100349738172520992730177080182801436588050983710228799770779737287908655671362373233582786571157693727095302334393166630453084819747808937285627004837333291126309463850987203149574564634863255841162889147239688087426596140435281307360251931023740857342349839387083819831587218567112655039339336446911862987058812494208584505181224090445436683586041402542345940628911649052248343341444240723427154232793787518376437488880100246354409457666384609062666832743862315340999541597246671920601936546354677186052864592018457489565644488230762181158735339725890158160752298130277911100612585120389080610797437096834161000715526709211429443412579931400252176880805798738138894863453427011397868988130425820884601450760190603747761274969534378258407745547806440546944434715294565845135697886456409257466940667911766760161194069574262486323259852979450961365412783141764193004528791705547079721134544686949600275441999186317364277246663687584229778710967726316782827113968586374018269924678477358666034740915176740888576750680660944404208694898576222236337027947600505317446528900063162976345033052467162909703272749232120821232248694727486262894519620513818990453249477582486501601690383827704753806173320451906481530937612622284466109934182897724525488230347208081113930490355189811951746539717311549964127307172062873632472496708379527369584183247212674708718174936300757623472859588389741101608122050965225472285661357792667319267776285839704436421162642747216224294937743995205302148563055740280323005742886757891072165267763990749364438555434385884256393172736755702042110072542532622183845043193449584217962618643215654010012806759954812084977468436955292057754288084266390625372382353024064104210571433339939513444305537760998102990816087022730316468244492243382523305933218615717742180108397730036973766507752477781527546990540448219415974407575057302020836717938782456774354043843585339371610631881006514428849268436523745775588967715749997843542541098874596690061903653456398008045574310181993669116945850776171493548453718066894179662034999547145093124379502698208984044994906489570036539435635433804511110864434099800923227137152517695918739849788127122628914796048809921793644553473425705132343620839724750299835505503534923660690595740891128732763231520829258982187149208973068666099290844464121981669552514486305215440337478675073439193946288155793587841677686423400311273557206972557712534298297683549508848366936714965110649417591887213374316292686066282237233050238744400069085777832335925918275414539605952564558746203598225006774779395691962516235020958733942894506080463409983664432714174256293138235910897196491841685276415853128905770517229301811323199438346901741810277593167424982305058169083129950340017216559083647687753334518346028265862007160889443615336413976901605029791945423100235520086680691958438470880389034554187441378607552335100511198106538601241042601443770755653280520967374452329248824908005931219094731007265343922988468191606518894533366525216582202886626033714584842142582112380827249815277404049040320475435154713476191258445225415875154693374800066238531168007602453034903844314406386493499587495769798706559528395787076593958580326582628210114395174893326748137247206622018027435268096442153146990945590461166303309872693763737907124401868129783916060816488880735080015169019747003621618220022744495241755843418523933045547600135121424121352286867325717826631294514362636196149257530291479946479773980000191430911365801801215692563918852285392664950166313464366003424905977532694285409335637337647235394721739995229423682985159273305787203026351809062371303925508654508709386426109645790020730070481766026049486209797524120683018589744941587403587900284086970356386344448547148264167249228952001715146524855341761625950709390763698125232083199781505306342480281287611583734732579790290186919680494565966092761963880370992625466042643699321442937063292828666209909627382532057548376654569336603300591672823801200720152566706638826391809087385723955850901475424187092858594469012446920313785413921243380860526383892330037733601968360302528046252526858963163586655201294489511108971169922208808293266087662156431941673465920735794074607879848375885269403626883833910436691191377828072208973324961038495320722484248852327667206008734071858938202523018276397133553911412389504355938009564864849689870069246137868952893896310899579408933119224401090066139837604887862239155265995499817708533240626902993588132786613664205358957086684847357931875757714636839923463034848023846399779128997462198440924226256804987672863440551957676457998340169647787173576836387614583642998680477951940990645567332116880018326753680135993665220746927966936693461509616354101056186894408149790284603072036462523070720254433918190994825577736283289592226832571749029693972218846633467763079463588970409438929912498580586397446142080593226956264542383245396703059748634970847953479895506947278745775045739463543324449318124695948097813215129243122897670354957289366928038368587933742311023672770710344617537822732660105813976031835187670250599391604353525149419234864823279129971570102643864237192979961026701514349039548401418748872201423576535196063444338589645111462580517754725967078341245171046399077038703331364732541509787957821711121006126899999231036569584033955676391828668929424522545911834971435538995331920149308084183958145989708724068085843262278097990921828455478412059492144856082433887952160854797521681969180833427356492136169202576426856170921079122688559976802708914668939505944553555303524558447600929454291443166637816502112060523410746712393537357231365308977942889787359540391526596978919259507760075941797120947774427453262963422565239166501303482316411234754256391940880822650232755359697867352608908916032464549411417214349248181654463284669254082744891019810005485918070046239057924750902353363489297313099637127123780940343740306016839332003659234632117629521344733299788963710289505635903732797722232063096206775077650274723083449460712785668469661268316241963217072554673915802481782547071007767757300605264317073450775098261357936437822024110672433921946805996815813170469195373170632338863038373318655251729319668248382208418240939216745004565780521126296342205248427851278842083225955322077855313197549583027264577685752435175644734959424832481189825525859371479731444946750675858043357392220339933457398280408610626743055759015665635749445972361707501746404665802516459351316988074648236134902331361274359348670891743715140351699731087476920429925540526533855403057077169744563422774285999597201147189334924597729016244346433091335268616980668254177737062384117161057290651573544460267517335010472489895631906797595067956089021887643653424857286750340775186038308546970415807460298419078040899854181862641775600277063509392733691944831564552725649206876178709816717517442071974907222719426569459574226909209503248862074294549021378367679254141019968685163810099938915186673847120895650662069963723926588024213484978123201971839301746962163080159700403513548677829736998099902139710982151278197577232580885397518047913192382499668483870959222490622943951715234777150668937221787269460151820621409749747028723429201352468349726762630145612531965342036566701031900129740442428677407361908748545008454872411405157865398032737494524078891957854843954888655971397253626776216330165943588285813690825598391795595311196109351238994583167706960094488065536849890442276615294713409827827697112796816166794583181200150768832406613850880345567647571604628098951139487937649701192794585373923366940558817856547598684215571260615495596654289494907890565872342208541695725782224307731803501183008546912543646575129841643126600421279212566670212260240217612226578131385183537853653644048740961539677875588558344800525780394882171717387365886909461888538400065225500276622116719565444690183435416240039733401647692901534088058098474020276696222103966992710849428610389777959506793316037314501161243316570485986676285250729320366034594888975376914892620638208583001471163453950830551171742623974393780100581817635362622838248629984749493757305616103723655569238926086312880367235233926980599904192723116348950576424209561543910988353827831856184699429338378569455433989537084962660227356913536942091359365861745500485801299071163243612532772934466389774133489910318263852070299077806444787051562202165482688180041254792640319645011481648303981230893821395303662735698722588310280195745558788517817617392142071442382009993131051677459948342584224385927427021258369718884842138998799842345055101053423505147162611957625149936103592454694404612559122246413668099788571794296302953186196686813912970068209797905466496723189341108327940417476852652804708636335537769708398818937973952391949361657494269042203247654230785570646406358383525045426586707943261491401466482134196283192663699873418267836975995405567523598894593638114690651042022293457175319237929917558205039520823228070239037744969185890309997109574694485812914938568509096279526489930929052677178350695196470350231114352657336195141925228690056911322305196899676920781763116004792187625029736108432878550113824815260543160644407452443545313041105512094459000707532482716651283299096578455236930234023588683286068410426274264358184469997129612439277421949973137029163159558555644684989764441436504200456032298532119729973557221027570256724588479216392707442063359120428270347102936154378638266071678500250603877710666017746150388210306448543378295613352136803937452349692723822656307505428585632651296046224864524948607520914057245967488831681214444724941516155077960793438764248998468987556310806594693389470109418276609162435598473437066129404543436623556099559867383141017685052299443530066660473195361874547478073395173977714727646224492191504505900497718778284916271829675195226340986802349055491281801679297999701289852446594111214244286000008406091734293424461750700684374913482159203318604159844179097041449906701726176609714925670145893508088155779866510378696026920237854666573413112801861903982085626464341752512393415836490295477535612529560711284972284797568781018901067115336611873017719095301593636209538208949270155036845671406773171499985130407707548281518468052285202059788682515571074128518409199414188722637295587495879275232925253532724618728482715634458646906314055908870667116366314990349948072321198721370045499103607114631938469645289470314009057021545254729289900784045271105301798329739868624945322702935875688240888695114305068455428363079405254653918159280595479557757293783563093654342630625654139267675167964978721850980883261398768949275990967598162990669472075342102868231356296251612161436866533925316167313525600805705537424546323736227928191616897511251825614251948552770315486890982713744218706014885755736623970617046997033621520319064079951753213698863925367860270363939183408074180438112832224019458879028882049203747178218004228672271664528412397603796095866488659633249703884751363344310364073417480475979411312049986955729823285710157901679362302450156015776059632279699988507583444207145701615644964063404600932027905230816407952208727940437487742483214690271755995600674081694810605324981486755250297705804602532412673773269623244509061203117070680214536599612677339885301305354753831229504882596899214973301407005568929636451359954929899320818243236422440008406250021137285500205941542480103443558176926441909111731991684746530019328141650079889851899870019442338305120227301292062997805972283807399900181145383161515936542933751253009489918933497959978374877558956435336052545254657041460398952628829471656066416925643142599048937539523270394303724372646711013149874125536989262836586577753446592534005409757243636125862309023228967783764747726855749326424225211372024927963745978067613561469751465415316087158265634954311177806784730015074402934012272781791982918420859892819536429102928756478744941509683723626860409064649055127066274045764147453056606938254691418783605691233574538620101495587456376728025137178046347885994024667458942810157472989857590183076873599646589559808045925326776045071457423218957764835183648667599165144623494059335649020924011270638292431523526951316054904532470359484038327943904792700033646563152872172129339109509186984568758306443409597809129257006564579194228538303372409273562651659072693900423310818149122754273905311353359193362057857622967146156171848358360511625021502687232998991527587517718039615788364934854986977570647592427766550717310549134008119087164423744056968547421553945554771922868557361194012301502841336277698070310205731446121740155396289328120517074455336467676187421979745189075498693953043086486259329900850057031314660543811815423513798947741925524872619548971679887537533705425565425379692721028529607385197263697895477097418586004207137637091406294569514701934357699980408497977257573103082402519238135382139994489663342569916886119537552814361746204428393856220008232254081232444358497818558815145088823361939032897084946157713938251130573592388428554656425963306951517394272946219487447269096605276500626039827126543967987918480455918171918390956295601492489627029435795013261592940926398139444854404534680708151515806777226696230153803584632200433468142135255282043146950881459064380389945709639833509025376408996443567849918106941044867135097074468411805912079048041924730243092347723489603715437830622073875601477436886919963126511450124530465880504999652279120209787792782412078561598516717209227365207426822410975482799906223341291077362667142114638154407538925922462727492583448885583413357062234553335941893508707206569131898398531056275731799446555449130143580522292902206141996145875201988997271068309027255525489402967297383687753725911399147064783014308416479863091273680857581909019952638174711278560652830265851594947579752874175438928749386242000347084282158651309844758942345090500970390715056601816450023263274283517882689820748162669148971327899077737469770745679270102729069303686094159253568811268911676788049670850892395660866894218742013267819835395513280159451682549709542749998981242003211730321668299883168200397573160870974708946265871424991256314871173112502705900409368126093237800779933856834642386787593939941958359840458181944176245351295584104519319573140138070701104000310654732711081187762595803421170355943480073296539083283473362364944880748442343715733562653082370355534551184341792920254885745065913135289789232173988283116040379283539320970237294444619815880238433821554515216486750663719802808572996123558051908593559924020192567274070862817138236570815246042094593360520721274024548018484267710699150833851140846423928325201568786140531006671893974305478072016210935003801202892152729549690715566694717945865499868957457738662969782118426190978673111806126069197013858657309179019012198098910503414013456429216967054751502901330121988095696643433119267340910220219807840997984047920193412615219441758645968817533851366202842685311006800591390376207712320542401971836740927951892184378061485517514784913436597509519914035983947698342447196255200272217185265135543333254701586478960293372664873749859436440555487765708038978065928210417661691823214217199630693188017020721648585192125513774668879968049252755262107344822249429453916040781599080663404309069731957781501859280545604118230227805157171287756640575321754172044924862112245134625677611344857747024761788885817595277136160138522656541003150973671963075252028594539150601761806210256101656500009351748337074369004484249958248050394574634142879184614207190618714587423788355648383487487657954099522632512129070196406571827217844539822299320707366044452844628668641926398442751288509187300260255836681781611806466731747950988004353056258549202399296902735936336353654862029349592734124212794940141970777243343555550715394236917878456198474337116277908144856731218665972215281510950444251444871563717150193498017294129051015199509642607179070229246857602270997930959575766727378283085307979112162725343825460712824542120339961075501068983061980736627356984909063219363650918101941949092283093899179281005191690611183815817205287272503344689320955393861093979226648180139836314403736661454950315450313867079848385197634156501022229409742012312793811321782941792426881345420410139365043934442138533557907064304059329277289249020781613264817969157818978412987783080321630910422872964022861707820287344657650597357804029141611073332159401302153893744478056226110121091600316588823790264202802052465081558954958289607565747580820349967440443632799073333768753011337780760658068415705288912958319793043662349355383796803297824455272764073633971963297547595840268004135045746880322448337450858635317988051824397593570841071729942539301924957729016332429249295778369198576724242990127349944594232794954321116292454236364525662026295370811374061758033101690540218895893400723152930202751062406805271757282728181078957245611392842752046462376448777307933619496834309130567361028290804506322157813056900050098770827304693319724918190720126199442361262602720492164512780851424146368958400626395958098510634904651418007713213600019171278824185059144285200392906303438811016930426300106352035171620584451627652713286184107107314518946775650006585597350076322399698622838595723462385199785994114766175739643233140401844350328585611895071485395908617823616767038895407631450354486446590499367395226132097498144805429866411266958728387054903588304817242339673916910376490895626372384741512820170404807213725509076881969715534024113752884923599857239031437556082027659796565943753645794797397285380092159811811461527578352987813633196661982418417919599479892121281276005387337684778925510718305048932280285316346485748020808691258557602104974352570550558478244702803347011790132224994732759249052990122095078283395057084027705960898868062559494038028439410415354140160314288188120564578679952850670021154328138019533470397558310174288827301861223909803504680805652919753644344278808533213631946717576135044997501619632075500438343613229946943798668217406604538263148107529879213414295335630454121413607028700903768748123954330051522199231198158514444484645903939922930310244975958694423873645435641594033812653230686677770275102713810353794662014995955337103945227032135269624289060478334850770561378485577047514484452155573317915783327156454652917014693493742344441758897174769947718422471507879539163726737119255158693751658696050320713122355546330354695248855411840691086956136882437399726908000371162266819660408462055449199136064994003471714543474145015652115470776220391387437559115114632202227356361349394451245109122296673286831083492664573405391359759425634578622180011940934825023361561946618051274715674725804068294974780528124133220995314560148160494193990125596832669042777288125918838625844942072462458469269861426973977285143767422036633822036420908582137788983032261904322742321076106173611227724747400379636953578925989830278511566509987497604037015060371768361629856250247834636860108829083454203355386056962310978273462925827818227543743797696256122519580757409530101883602549284964700800431403402184787534112472662647782028602724605439192783454445730868659774070189628597674339568107348243784607600226999639391436771229072520732364677992216924311730649010463944100568269354270006918648369149639682472040750364589852001680661236295243581815555548178683292264973167646913567826035316941545126447916418387047170993935163449367864324238781822606373189754125274312612665416899926868270390403233214453687516919954805547923113560846320498886825453757033296679608987265219044019337509561809170646190714742349251221474642047413792448311289149883372176128111719928827326499925167516433566083926302355389343141374690405513380702670919174326104542713531780092479988431215527586998979493960723814785543720255007076606890625866048091723777518166775110986919114281634488766087531358055233723189334517986815627146970396977098441391101799956843806130819136098802105085765376141164960140432351983284647230217732786168187741439685418138550405367864376566103391264193791044997206129112651439656849934167589885154077935511951858620718176743543438456911851101941885455503872408357221421735522092495976616296340468810232596212064711552885306010477339637343907056772219252526659588784500236510738007205743250245898182936304171842494959312334964415141894768404670723826084815706234368065037262440309369289376202759607009921168229007709621442599287208366399164786594327143527420170532976241238058389688211202440906152552693920098957216727723094006106223271587807452512775798375657128657928659936306337243613058370126272032726385407547362576672309190021679315933193720364060520607073450698866353685633763485043289446098198822746581645307181293577856077616946465066219751034578585236777562307811608965151943116290830655907771253967367750530535318395228865048809642356718752102940472443665733681899154180129887346804712565758985065372306407621177951871447186972348720601549359200430491687957753794400059410845684620048577566986892898040961349168101965981872829505798242106830590203905348849945634514438565192434573883113552704915916393374691032348665990010608416617539797765661280777748967177910510147456137287706775694726354563735107818682517598145953775213990545715860584031954822771188746096553444607069839544547843878329913422831717971802093792952354596695516459187403694282211171825901062929668044056866965916042100991755392154575229004879922434923141569557558613348116113115503504592870775091311972747687902575061024455228944822780877951389763980887710681302537291346880979611196942989893805505361909132905875832829217304569184002419507406917775173842793859589650000864798924599772058949069318104203726744676526314882281370115786378736704816459079267126450689886196212409838304616969091287921125294481819131946182404795508996253719620172706484891106084003897442601154990501660968788586397584895340435266006694514320168466560413629642615356666071249305488608768729559015857150357689299876886198165075782169834621387336948780890242871069800992514710723039879155135061300050888750551363450311945257696561455782575105929408696711121254427587605963522810338992422290496653870400976820917142418925839958194390970770535040841288444903389694055117466071169973224798221334289330137990413682645916667127503168845879547285437638095042196614452501725458179458826025926608388520260236024973319676409492124549670550027709825615431037573685998122885777710830761775153327549008660037182994143530463289462043680445063633549605186090211863149504054163500188014516729900110394087620772876568673545465756886120199462901396398125349617916757595004946183169007534325295823882182235640749107947669970255792206948840147766288373636512722853691802343917441939004583014843467737597695171010765143263377203079269398523139656938474944334956582446560382133245131032454710060238208582980508112496160265108495928107515476117712595236807357039045918942440990581191366191685244854224189121549300476971324150912001153040559112945747181692632014660303259896958506066889537842015454495278929558028641253252498144283489940630412715118323699384097903850461044409034922837904158935420338877401920348349587903744681376095169734348238079720757494076575372308216442202219396130439994332725470254737649522493741748058315413415376259537020416656831610449914967404776652145193972793542066368844986845013343795801260352540732291151746660734160922559578544771676260146815347517163955093955540708484744238871118964321744288112892069777778618651219456479662400958103992988349105587671213046007950821547723520222478163399852815020683845075538809030621408403063444753310651727730453865677458038114585289597874049465770985294223633165965660358515379915148579303087424048154195511218575196486935722484712911905225646889796198418977485452503414062661650145494891246003745804689204025137143429200893664308109553398133621040661227695476199287008501646309474753901565016030514526067988500854273149952672009476631779646910753980039172986527139285044640669255532363517186596767336981129886545445167376717097029692032308336159152164156023003920382933888543897586374094651408149137476842905108620220366947626291881954320986249961706062675834318872823549681484264391081898099813348126835831271301406195986811533402631049742985705299293558120760593442859821407682652351236915366610888962363379494693852888150708899928363839440454252339433577109716385039133257407202488495964642283790224037122735296634336055623812517531233474274467650639945663293918723160413805126355501963172324503731166556179670605621004020341997895489448947066801398545244621739147963962350473505737715945042778240936734458203410467764228374684601139743439613728843607282636525316606093573130150101587281379958075091586342414101636247047364265447507995889185794337328113154700949159784906967465793639382956119860200363019971424788614729492739744717386285479715251735606171916880605911812499405347575142156624092962175760826858083141540999221768045639222109202514353164365122168599184560463842851716885382962618173726126146414260463692623059435864739522951142264929750036330519297927744942538336405670783453231832264390929580447970255926034082887924710740659827628610214849001824394048928285369971395534726210353526775715161311397830518240891350915764205425188784079517501515778540789653029784253665044653325637412229325465599188865690132435656026613596803307132259512571716697394273047240293431285606043734042036599308258010787502812103979980182638374279873872018299167528081099992201236540276600285185096102074341820660327799027378930223946625482358758659475422874126040346250070482310912659065160214917821011206337724239441062832665267735024923471382570571974161537916038546725126542377452504255373690382498484763345215119242737494035708452434485686941729684637353295539351614105290300581348076412756280270048976258535530078973840475307567840478840938046694879553080177886574181390870545997014346586485328131694733342615450357873492306681468759328340708162321046021876440192511726735336919731693742003694759387733932619888271255155978447905799680099518371608044642478868564232369764907411072867462982538055227526781605445830672489571286558622331760813989821273432811635852646309958909530495772795353068640800786031641409351119667291000051383007690053128027076613422750350448876484620146928252043691224851160846147083923207058966420786776126323333145851800720275213323700356479136261278228265740279239350242498853840351060118621101585271738723046637433045030439547287463135940581436818108372407471162757051729135068852732250261943627548512514693199072186938013808599868221807065251655661780520200782553986875573412254478390257216846577283340311901540746891905010713540307020393518596156752767704831726933267277143205563797419783187876281604781558817648185577578674825124553230049244554160230224555400677662384359546330453055222822191175285065647406181913380048956614840747450369442128846256452110329399846849420784169007684322010085688071401882134239291987674430909339352982360689337719260477235134946776407106291722395317682269670721240114269790151876477572168889028086657175149641336248412678029014893658728796999569834529954661136787264746665612649507109265394466990085239129958989673984290787887285679125482105391068609928567657194269617251089858674709990622989230842320200028539153434608948802341853372834775277750674645732352115893153486804112092179304443613698394036591588813718230840904178095354281228111628509221800690613538702248653062430259346414325880439783751277391577495109579640227520520888276526399681848041834140132311019956435966668227502524317348252470866800682802877439373579043749295819804032106153575808150603388459924258386507521601643717386999880928222826325641787588460541569352402380582132054224580476263012074617028721735329697312258087662484186440690112166518639245499736893539346458087636037952306903587295067864473007668310107189008953959930728553648610633699663057000949556065480446691234069980455851301224096613072457547566658984937928799476966820567119882256859760536458224805973036413053825896272077930939051617766284639408998221395018927721573835775650905009857124929905557006659997270856559053843213622595813106594406661540888667601071959105544149096714462864668133828354643874583572629182930411024515547746493248339479182787139550412932612824539817571175039667565097691761951022007746572540233251448729604508559161535251934991234318658945403381807335838893710636843407374173882298916427062107942060430441657893060262928911585025198591373981637955738625329340379208097969313627139647148183988514305133401472313207692825816736146177494333624409536264272839751474124809494969073512785422030057957061072099830879356425305126500265612300872525067737736757399444375711095011230678467225100755681776998444910260056247560807077539203633519449245264271996361134985482110400373956763662439785904262353508728016378614562629273341223856610657559855885340466930518481395509588141669177064644022564341993310190721938346303677241631510290173152992985075849377470245574664980003158024266972082713032069421599523453649786838288787629986254303272385315297994007046445407821350036811993148135691128642089811651335930273995483065362460284356745825677144192520577044804257615620604546434029417047258151403370847637281657622803883993015144734859425494615217428720058544099287430384451983098237530058332262103897428229911578300415401866656122542401023485019207668341899269344650137714036347841904297006459418025984734105028211660245726102071633508509867339628311844468147187579559154284442742439556047724870610102444131806782107071045595805520034464811048786475273189853844833798310748385137513732303176418016186307000734997581400686392140690767575077667839278242493846674500733435486576149127883102000748229940563388725842671435059178306656096977791130358606531860960936983867800155890720842981195954102019673123721700092022613324441133208742662016513493940528285849159167619929763741710192469904885957657443099736476096841548719005421572953580528235244098805965647997310672793858040492962389010752565438304461477388479386883482476819909652115452306151977219819586414450455529675703818248710770018658998488130995813031098056168669991557645040593435534420766064788585841113725067542392379014215597995447964113612887929898836338492676551098711176441524892976772395181521802039410917782100804562528576692405957363913496307473887972612673598691428585986925187889087437002106933716628407434564181496207317311832246314752911897453301321793620516825383068955081886389647215299041805582807207548888469912231429164961781080403136089797104315448707397521307117714854985038039205756146464030557324553180195618427604833663669269869762243375807306793303357120269728324826067818614414211932409322668725732695763583221486700722150622787625725876592042525922574953947422295458708407135964692431047991711907807450095737295960617770214217037893514000678661495834261103489260650724815503625197544768450213037912781148773585599119659138908243948981378580984173422806195724477024707406449309327858833253676058781038649654447698785935623827603702337641586474255040959970163539130509821520678670440450454113554728174583568156484408842844712138474656081241798154489241769544884536424895875355738761213421518026830673323061271826654308808305400747039127144207431166275094315752300453806379104072985156280874811215489897751281229857089871004493835563587726740639812249660519860801909805436984794297794152303467990439422522192492083937398738026475090323891025690402526913702203657982484216312245096067361939269974622217768650086493799496388931539813591628498423192582081532572009307624664898617534130819968602855000170278611366594465133197036635889600565533751941925580642205733803429135940782350874234634556793984307369328023374216349825674986713408078053317318661257790037306288413648829395109224483900761092260024156624856797927246263140950813359574449548054609763353454421932997745189439982215899279963078091572497586170199164562422251543894051354473354840332908823946493275396479357802420925682133327430659176793820059178960659652624223489675027986857890777268134173765306798693563199803783140815220667756720464451259232614689497531394546332176128978322639798646335735576642252981303410840979687455715968664185474408219859097248077512550702044944106509800563817355463808526551898460397892562000118748949287481762855349096330603090521917252563352053179622583686346338367554626152370546851201621005673082742706282064984656867631912918152557033858102270219040491206357250530209764722237016730069599774950912866724215560268282169581177061044152682111145941342156574757123953090153678705507380432505235720633847230973992648241252176324333018896218116158702846044006611673041744580097880030397484138289627101622420791224096373184127092915685506070502047664345304846507179859864564313266296242231447520602490909988492650499394615883621459381828807347264983986772619605004017235771752932911607988515283731867361171480888226068218374689848419026089875580671131950136116245283831181201760703006146689859690368369125498755614112989956140911567041074361124226009951212150661090613396420619543843412738348807695899781594289547637747277766693302267781680760697184501040848033296869111778654502305247749983216827561694118141789355382774487703834773621030690442580247036902979258722135930625993728097555967523799600101592640054696094432581581148083638360218492917540850928382138216805763113348657326161548500322767365016316826108651828972872308954370961512700516386244949759502815940903426793470022131036726298922519244809368245368650452697743861147074398285089258060616010663329190714754913663252136373104299588416762185362307585400736564227870711850414739289246665337522024825680664466427588884352477668921053331666228156002710215720851843354941590140602466285718872695602560157600136973705035176011616429324869330071995896696931859124197407370405499963114712656437515130533644756770091373991271125753850544715677280873823766349232662401987383035043471638450869528871137904009776115325434175564830883990730559652715399373067061480822579929658067880898149270984655800341538907844181869901944811119755308187523576039195731764946185939205097813183955134928778218272484047181958980528807636153175238795881546713471223083566359366536286375158794428442823778072405820678556983168442668270840026205706628551092518021425986087345675523968919863716721920023008908211869401405262264444185295405105209355225499274938197728576149457729016163758492904174147953192870266231342774955791879123610902990463861401761283953410792768757363291660337350030024559062486729641255434073084359564047406304986585222354982383045935690134698798669492566618944434422437577553303473726938039816573243706355743393106996062244107807936840640013910704029360785010757062451875959557031509366625972369323155384024015289559900202755003733768478318519933946464939095687046382542513593664426929011218197284614331636182708391235829231657808301325873417331723860896194665071064733106079647353670518432616510812899454313688018913116319425323734150308363947877525129622768522498510075638198916846069502122947073624548675641635150378138613318553212164219505409833264387326965793351707994108457275312742314894493660816470868308659761825766271849185848387392499300996303504660852326912163478772558962626134180732772712266061563267707157758871601039915994304667832795890805978824133299646969324381716790248430303541070863221857959010967152970578001876222315601833520836786156357510181530848837200158669833099008084708995481898068678912127065278939145190737057742339823466811086751807353782763630479703300718007397026157206688680843025346301879305443148274192162980543075274689832880189762670940043846666004590472402941486777925915363565093880644302349439262558339461546269804619544066155805326191571978452242536345087120363263913456245066441393130468335232064560415696411488739105274215227358784847639405179454125910584523483902027222144225724649214953597361264770493047789234668071802172184031597317382908051508223086954515673375600501709710392182131551011095331155449978133550658663595433041558857917292897871104080386725060307903596140351973598944561520677880775941670522615496837281010873359070344694972352914513478128379890598349683683546234535920169750747432836863441709368309482915177117912564358544727973640556878173705018920318893889864748086986535445516787390386801183725305292645399950891349284261441701798717379134744383765452758132109401644664962382792349260085649048520180728115758374226907025297095558359154236951881597093155701557766905721644623394345696544939565525884239199465496694687804202594020076820859329517492619496269021563133199159625079541715470085444129948178600677809069522589481435985038671358104408586406732574903808915381438565589579489411714302372802221797829814321916725798145288210755719695148616984752719164073122752917847051010526123218919201737623878896300010857387199501080363691810437737795680043193970128341638138222088081322666900498201109453466060990848428080378496817675347587578985556559494012709884738803955437236448705254195446684699125644899863473390270981497079142394968845946101958859418957729331668184070230072725583755958796313506911205154824540695707760808345915362321889362155694858464670506832692575902524344548636969822336415539782782770584500096657428332528248983388530468715178041867489534634464398192398188201871260460335673536011234479030725322405179798309264652653069200904632142547636123547327944148819643305322631131775886164330741083657824223025674897472094706123443690061610884976106498644937398202389764131522172166410291792948234780704257505531822070797079905663897857271253047074585491576108508561821357016967218166449801184576729433883043670773839742546898512648673605926350466449846842224460957764009835175075226159803000705922283291314610415173821006526574132143245437974441963280819211930631392034236437650522076246612914353878915325320576582425590064771501715718866781643161077376314657027009229104836940917023273359087601010790360083122456811093946555363826012611456743637385763994717833119273700498973786730676777557869214379951370464478577952267841953838295784344661328456398221065078664966069813094793812338048260002840242686317760972768285834883657798667890683882925896512168718766224592906444027155771202800161300532018941362327783180652150780760799384529148342222909307950127259800076129424672823412253918494797936526775148833108249826180261390532507833439954446403234803102429406376358798023511157574466173596926696104114190273427268984544147902254609540178424504273735898384726305135315611513342671040870754520629671182697725396203523869377765469959058598653554310876950257461664753307866366069824404533180559658791317289153140240879201662995809731882596134355997781889279315542966707501291600258756620283546211632004103061176281330784887663349001584129105173471035139612474730514904208671839894132200065089262676944219439599740393159227367121996481173733855854061486820494847712142855335020977314895552823175996252147518786963134103077355203440337112746762744428246043786104262606762106647713286442911677286610612911934020709679078976417979262186437246258492977782351214899277356998897050119522557936457886358458937346829177687334930643827593484212195575984469442044656967911789822304822392086819830578059190755590607461247037031695828859802157064615802972395760039067908215412740124699873105465499532905264705075417461783317924127365024978876633333522718382960398911266857669791968075214683022981692454973598310247028997184353234653372018297216079619941039755753540527748584229300103805282666261986517489752617594964846215495659708166653506841792952258024416321620709122271457913301013842382420458203552678021425439701718050703439848224006121970966571011848057307173566033041624771230827147180372444530634815863316416397067734769142702149445851660759199219525112180090096125977255457656869203001635273927831392014830386389168530398154165158192255536728571514221206430995744382166495389551279607657657862641337991304375260844322857643410144828477688254649839200055190155898223812630213189901195279157003193084375464340730495417719302551196366526499204574521461366329089317685731949484638651421407978506914984736444806128178607710315611299402984968983378506167098797197501355500595819771240730512729915748889176778990719676812026013448209434308460969459343000843588864756022973256149462110230137783344199169392052614830823878024440218330663860917814470671562033815881939726912388862887437965161986436948112623452517144809489454111841877966013250057060524384535823585382170496595952801896297000304388506637805026770896319672723014201309992365568376968916361348581545615606062530177426532359763058565444033507944345833097137569284214960186464166506910761511034573174069486333603496144066182644535392689389761826706388050237200935174339529869953606624547944071099094414505265588566098104881565591933411740169331297893426056021934173965149926618263258464563274181955355307676291053023542269222776983228206117074728726560249598235060814318161424900076201972841084728298423017432429944314776578890171886519000839569083423730871362291067832021904104289060062175218414816643356385408083707956088346402963075512204021729761045266802146462985049989796313092848715693374241708637742470106794445878188724625865902497669874488891570530678562085347152442035216874810754919359159302490067992851889398124781373105204021874322708045019017170477227000846886323923486303912068152347479160097121852533769907050362715532313570015838879280032420383456570149371184258223457947370668455779611379141475460304486715329047389665882206337181043798635502383647016564897242596657241241170512851768849687698995951429704601262593043385757375022471815137810754398994933140722150627481677080638449783620931703257172987711887009126746031463444188588755577687515842152152661089825302989068543120715291780140561335869841975870177001670589481220462460574604892907190918938950679325869133283262385094587460077625209950394883398818910404516896140946010793563175132730458233460644051210498458128741582202204305330901071079107229369354825103030263482792874598896940933826881103189778473258750842980449741677463570983473621589361543098141522336237582963631448739703781748195075185169274838403489400928670600721524714379481034270125848174712994346392071162277945924914067918548089826457552566919260449717587500685245579315555746793072265259735542631699329654770169296256151330688737323971047023058582311766370190796443443778008708653327159078870338402191063576462750638981182611841377291543644602482048623384430204761878317303311130176264884129907321323701781883165375783156385591049960235776244916457898157407090951872531768234906412949167613584036778990886444294924532064331654975796847960602485443895523664800664846357558788436339329720832744618386868115735594075525669874489279381931185745018919202990180791261681166080344020055444334239296975842374707830680301721510441287878211946546224221962062927693173059097300348189203126998993750957916631381458686711662226575902536213505952885001201151237575861556498628920708469349390642184700747276594091849104127749275763890080697638057279343079750760061139776106646209639612237755192827986535062568416271913053801829411130214364919560001555896966147081928913460871242042336813956091328952559425621451418361437723731409541096386069051497365859763869862283229693885795281785442699548144122359917796076273954230586758550186476404633929464924052770689234415440853473614213477941802657420136108140545807142025373694371143610318207005613587711706141469767157207091658751725416224469715243374734061087562030827945592912790812151081098426816512298336073340535313569808081746644987119180397300751881899099977124684354168778635743412782482516746327194183995688944800668617156166925412531758019656753099007620035570184646997205789184442966691663184086363731647279422497832160586019118119063061268794654852993930447628796472238065557283341092457990992370910399941184824761871819566079891556726797448004871939789017232751381354520932327959106248053324097295264001212077262837752880694182259900188344802062443462395092154680799302593069890457104079478687217041820881442545641815696182243609958622309179706788269185783036806107173180432785701200267037644818546841878752633823165693767140445590779524051809858884103646791508817319612455289588863118940837136288319402886012484173702013305211072365955865203300638255887643785324703961609070814224189037302262067314529292340568321438035964441300886489779332738187242146929568543254616483844698697896129895218105919499962401911050438259679928193851835222031890685827288628812833572911120037330724793062360734718957185560270549701473641989298167069186895688459296700360340960869623076383818583568136074983381486922045919318476569804547263586285987604889935249354627385106818550037170996920381884049531418500925100650702205882986176779951082629457167528543725368211237797110626821035873263348179249501614009636738655918489251816780501519996786268783814380862935605985055528304875130376535763237411140884914509567908430410101564210901183514989312827570115016717791699792933118556924679643304958489936652765922178880392263756524240004561166476954398896990482303656360627877293412399974091090662727581890648842062313904031414269666980487820357617969418043354598507692292952086172856779913104972348869345801513603014742402809201619467729135341104672101298878917771747983395293632247120060024092595541604710263781721774376967379732729552116471900644252035642792025149394273489437408579453772883915239235397259530812565318009732468580557279267317411650763283591714339164074545386427386388143493198401118349416447320133666350003036717286005355680298554929162718578607353846324441210252585502097854658374196564108314094101892090016061689810277184833654123970338632612283105387102305132982406353966084654351001126402725378183663475832810391187883746894960232036391617253044888182286064985005805332586099614354021734994461081977802063349529288812378184327412228303486228552581732797683800620984558332316072744869326032164267119696491317957898868274003410351062755642549185278905637126843281815513514382745552528307166396428184951003575497232006617059014373685912640269183804717962545980831786667659512328790639296193905667795720125775055685351522939486045376912632553859243839097530626376902000660643991108257357333732761160172427332853731920858167744821708766158382050579972238349729116643005271991028939307349728998214574493178718826565357927571012787629478922926159596306664142999989528260043749950963600227679841004066976848085337313261272452343332912307078329418942879463868894993718872262538499703813044567580403129521876878011931547435439727992555387041931212962709207361346317765223510554852820742882079403548905398905165761054874833489764086608490962387645105056226366480860356910121478605900387219421004529674765412619697091854226483939515004263192508747690127183191680901512158396427531189537447490357983057723535071023864498248073632523773661978531548851536521683712712869374484074832402720452331075015483951455050095057982948259621114481491638370401482933268040755684875670365709385052049204627372171221852473820874631816901171039547825466085531070314834044502130448151177762857790788690590754878168496103940269763708471994513307392405277268710024822511977357098562020436011589674406873946230148427589598064184705726050863963509253900529306207038043706327548713716672489875637061318706863402353578405430695849898010300681162408487206716208028822659588063843972949901549189817397233843443302515114994686324398679907448508711845482087712577787147621132797233621801191047701283549188535008437814515637502357716437357151618475392314359105052128600030673761810406336294736153376116405218852383738420457312955855253504192887832248340166371950342364816589602673338782590091765452088060196650270735816162069747048978864872749581676726550245702582613547296092956372816114267943880673262877667763836979096701040811213021802970768825777052785846456504081029729448995437397565743432565194622510012401285516137917523276891001491039178854843152800721409470274544308612951839230907347156742946076408961070382526687555601446786937280608340838014940987300286652382792588044788513665125454978681617919835862263506626773814557288294886036177208796387627034358223436180902588242121668001163142645329882809605342689956063296901721874683214722582708841999160577796277420031720170115709662439611791934500353422824033107218767581294096735879428732187858676920898073572985436184830679590816236919418931956689697911792243182464737274060691132092887714854050291933186081749175079018002126356266375932728013584926921364764604203221209402404278745217832779881022896885395481927183327331181179687742361596866482891337319950733676648747076776863955422313176959911702093403896160440293578904612814041073481668352206226046280246031715652148101062276398061567766846401431730040830227523730535757701959450187771720764139545197787132032360600960290447519052758104664168635475758535594897731919716084465788668989142850572488712969171159210027633633942406531824898600126040204709711617794594727497505299336363012304423963223344978960346954070152602350071911081235065192544161547322142299475668380891617802801685015459615820394684156766067103956149065500356276308632139386610852433518949113239583517874259647309671424027308514759473535830365004353196619356383532535547185248677671617940642846022000657068269755225023386354862422426677743278102149337045631382811203467961632385920227628066165378650526553125749384209504706034698363935023961594680062537071513871997250814902797311450096366140832801320059085662916826071476776795414591240838623182212927397030410005380185151962032839977723750410469643185749603757872052249636110601166052164761518299958333142643416292666129313662552390276089015361551377998930316189256389549580527559407955038566933016818562747730437901250032938500407236942394791585780398300671963364588372157139346933949909076677165494470052119518294788026035993873398189357807031459968545579324219449392945022810993711702619151061670142399866565682361082951645302219223403955160219852877624385201053267857820314430246964985120717195806199661300583958854588845280742632043858419921272674035961443102791614501428188269937910086445241787801448556550883698825945570600264995335001679269075746925380666229116911260021775171910622796108560226414503821107031614796831865122701285911526056324234405243703516555934199157535112608372704659374884957605013057976188056025786360744929437040081188109125682543332634920015133340394413733185606580642563189723821087650236833117781769085176999564321610465404949408860545146544701401691182100686100998606806757586152338947978622388539118230382075383287019529136446816424466624708044201010963197271489248170368488202875676533917741199279749636348264910521694331028810684537915780874329090215241901316496206342853060651017790070778566723222571174561011724440609113528188980458816791153519788693029644082956728539016191510663682715734016285480905163749628013899916873870088930974389521917168645537345301342927663023560059692086346299102949502818792894164798225601225978795387701687136393065744673538650876216496139255433750195735019874371966559989472912273186133926958380751796829966009515491569819768314069826692221185987743640522550327176095490185398284630836841396402729336031005278759469888884531178061462809266367005284001964716265618380247304061877323039765801110925110737463959690627918976562727665639927809460498577495974634708689979933647758291537841893271191296863893998998286326418504670148683744763035674155183880143261197630263700521459587598525429960081718949567637781198818289351168705704562121239857987267967350547683852612144248825813565186754276900383754487313628446960515886861920246082953907597771400411814378893544825949247310044171255969815415177710682761064580691470030485952339947269334327911434203907613951493956585714799384778129352896635987510598749085043800253621592195453440421098880184568075079582155209961016633893098658529327338131866050337423262411964021194496256156914725877042184189530495115179578742570706886630788616274209625728850563415456793813220890526880957161072064940887920465349739746532879920915959101657318331135231528026847532629214922580253280521686091297297015530740452304563436548917680653981154398966563283953826277363950520418946536428088159430924684636102241213831390825609899945208491631993892071699978385239229281104982444321105564733848781920728886725631940606721777420986817957576614634452732838900560743024308398385941981342051380204143994445734692885278967193370091773612548000143795302237161890263673855172155069514810328098232372973919105178336945779208863078029091771812553452485031555303718732468410050848447306685506639772952003150623337063479811557436109838850814644254485780600796762202099941928498139758616850882429589144139580853406674884600717563994857219745234107152562434085064450386264398989992932405258134562498593853493204851867662395095546034120563565647196077246250564180734818275472541504563303153114212229460982592484984484922950004291563750429032758955835445151004831445188417662423163701799386727647720971195914660753005665538343695832566014732201754647596687428204597100878070377248864071218094665033486583025046680906614265845521009901814536856894750913727545709924440056036211286957228263301601125742934748484609890093576442547048891199914761245297494718156561534665926197262263771673779390784497318600051006083632744528017642274632694032996368957205168914561026251107568677353427470059114787091865409631673103868922137230447756872443552530696437484720127780317870684177023279774346424011268681186323981486534759636552384010583548222695085089571055648294934014923123253503486915453903261205000251394712876396143258572458459520250846654719558848920125356991472721869797654048503946231882197493592972763984093754139559330004954717363783314136317095251897956276891967238147334435140179635001543560854575717854105975001966718732812638859583485607489891177323846266056256585146463464781805716531122537529760407604874027022573600369484993570609202454327767258313869566601552679972497798917880156103551720716003460788472637045386787571589530965893159436158469449375108325879843528501529813024609405889068712322072632981597770603531243660807017595132646868525755651180417906026721174437049310372239836330734102271281557823270572698462643990250872178976620769047135156887081809713794544839022580198701301975165564725491405938741526821897661369298971097837641420706591009837850382763627725128498496075456168769824068261683681408811113931836542221100555056734373795539186772417548126735441932322681030411944581625152089308715438499295863740308657752865327802846608072022945137470935367920334681873472292162575891427105850488361487112167282967168621359483967599686541793789449791449320681718173029131076982776299137915821322992946388540196576185240394517255775154846543207098533352941295217450929509872209256297603489973498035240704779461009049998563186465437780244009553931746370374511284209111667017924818825384934640186194367342457181869788999891070380939092202109597549767083438631843360560163512313487477412467515374590357299774189164732509693851123094403895891737651124784961060959778730032870177071069933696113183322994369385448424299432297940969177599534090379267820823811236369291184389189071705227078155525384992930165027670366583329982405727366546400349636057323279623173943627800160554283554768487727711732345669065793843475719870008382870275010886501263969214641774895777217785080383024550554068170209284946358350579172067861023399135894039457227099348385564072757592186305672937437207794247842813650279373993446002656064340467786277314909277696037028234213955873755268387796143270204882132356155589009321219399919661374244806959229954885987752759510892943500424558867425540594624053167832564353098052128027319076049919882564174181722373398872153256841601062854291308317992561225681281490393971208656701497724705515731603004557242095655683592937417126827948781147421626457502714031632253648248001031673615770578314858304241898310942287575173810735986492266372011786964455534997389359175049831680546293745797043822401834700266504949151199289553965426723909826916508835840823297153887855432331045581040556578368909203629085078689405425357754864363094278121655892195678028728216292826432261595206594061842508429877237522174251834496553457059485222490522432518919547581286961599254132286637527662698870576253740891437421466170712483425857486458980192444312113717082857478838018816571484814822763582033049947149710376343685349965781180522573713976372910158709146883910474716542808188891689016981209244403633617614748921759913621852082215310275308096933914526298828598246746723750180307916036807648741915461770573911703814992642351499525274443120869471396939864256768540471752835865714424657368579257461040299269218258109433615513587634078947622248740518759711873457803339209434559266387933771142790418591848041158540090555813915248470817408791170972264479392588418885789021859954438513999181137958133149001635660338514617907170712923403761029247845996994620723142522913123363624119801821608220097436259042887965593342385852660719586650133614100768174985171557762464464972034192545793846144811116583087772219909328765592785053962871922627522691386724192555260276239773690890561980911938587046079428744190670629655867846259793623607873750948744054300803385015545535923804307464644056185298357173031107554781014536655551241346023034822849089370065945780385684562790493774754770065775979659168002283345713543866721922050916773737223357404304424730020624544375033290811845299337318520828631361557050481276162353097294922236007293632184772381680595812471689587167723996024031914242543631391835860988374015455524845871017779501049102470241254426639860492187921896459902484794598230542630611081903721306877520516289197557666505641752089068186464284760003265230314167735576666324599231226828269420900164316064458564039839598724059235468338729374717388985912899595266749566251165982051111769634159981128806766312095645771487183323147607457823369797468769657436853360746728914998937642861232773465295932880595033516906272479942356895616900610986847548879200576109788941877932484696493850058197834143868138316209731634998587055043503191682132458102891806316332079931195210465159216869127666473590827779178277438217541919280761505670413966720838341139295980121987113152216613601264626204400259783955774345436208293412164340473196694047024463871416554667124635852727242507554745270516623000233075951420457210906053271773197933153143268111135203157567158488743011864297956928990780653791977514575604423960760934641712332544676130220322667284283480346603869665990659876698494875687854305909449638724944910688077067576399431631577007964212095042411238993468645667124546749460601176328701772517568942573350679647968890660115763391842110871568722071495708345204909151624402035873314177374133323984481764217153553282523561094284324469760542115150638610449698828678423829665790112256897748702792060887279852195054755939114768551326999523491437610485668317919367654546609416576699365923279244315825291664189843870310950262746257065153949431876450673961049494286698834031484701862183692803753099630367250822671723040865755009047888179231458065788949815130679803654875801996452795554335983995380945664344578161907361620373530182649529468344438214469302016390995507371555457489292630103002524369586928191561357317670789401059506995788746115912484533543775294631991868382356454696075385512354984382666557245395675606650011358056277431240724801881338701643534306568005889944019569414276873070153724235380048294537713060983475582727622879739290257245641520316876665559122920075333798445967422371121557016732965409789412271314112077139406618874313106528149345576778154388328115688189316728704160046320125673085348476471693845469602593103684962514927864811265663022674090665735153769667000964836708935207916087430347399267768482996704540655731570360633155971409985304225031127641261450187622402731776353910029379882609815054160410882093800367450832326533335822470914027271592885565283336512136168531058859208350317598012371002560233421403822890580030958110996276552644219890685292846959298020190674109988241353356130479133092131396560014742475499699351753725519330677042078599908881439083255485609617017661687995485119638755702145834451549609652011832902575715378644358445980400783862592594363439992410440693233127685994623831109121918424508142383277410671155507881658818772826005077375673498050267242701476751794004180266400091947968370482313924661617260583242770107238534799449527647182319437739676563243180282035820529827416017225487940998959951137054407365265781072761079773502822841772988479134682314361526721563895765991353553370122643733867205340824059144215341198150097070255339142704928315025340162066104842556891107292334643532780846927474751859911066744875396434998712195558755510700049457286414490965107604684296835899985269809673024681565472270120056271899450898184628515098271599171647141106201070737378272742531192639439050290771259013108777218498324685352321559291942642519909674422580047938468643825572059940370370096888361663185115693298192715341341669028547099358313185411740403703010421793025230994292366395416935780532899684325739956748377428388226665729574782907248059900980411443782145815872228860646831840982245846742735945852418609590917900116962484391491823484893764298143408315659724338881528713333757314031349370263539884093516912631887708668438211190177232077492681258998774297417869746141340353624477927643234489185510060422030063611766580276017483508503325258003448884512911609617392312203589923318595672559941024750204401109318142626595639174919744810722577519065599696686468752883258179183023964377152409600369377537572253578347813781778802487590531153078275539384913483648065866812121116989604616322813270311941037883959350308098270950395846232738990685848719200051440516668325549397866698669862440836393821181281281568176154344451165598367925874343524868410626137236011594737983894922482449963201288438874426598312565399276987052421616885736488282801295534483845614484431234458342402151716369379930006509509198331824513654046813001305307310823441970443114113447140938110633555851002466137200418755556835661767400745262552311580365982498909621284430584302287969191337946406953082107753756437241328335678978274882578892683980570207012307549402408065402679950354801485221210858403870418658325000143137538980825512117410910886894551308559626376785546882812724832959561728493549139567621226865289260557302456713678634927706008042993754741198706980504381408671632782225600062351124184554723533383089151688118557742499353960263649054047677909422363539876631554479448772432470598778554491867175068607075669364499131590899432261254417675842228215486931617174450056884983801078952429082186744580530154988533991474716492575300938640378617996355029849881042648882297344393659229366409616591209743298282656179348805659722785289703558204628128129096256180373196135830659775570528863251039519200252566904300127320039376957488813667652590535477026774751587475508706827635731622320636885246587071145745586149913678992263984263808405827970471269078104426375444808327393346880825328942954640840737706497952403190093158972116372949674703048592502368418047660417004977736445188977485625920214424354417050362874590403011944348995700939527995231469014718790288928679493321712207360915862474111254277358811581787030377335012296610211113047376592890264646634805073688329547990688111671500526610227753468787564348406831477996834567678406216261182703340131374212295770866228241685678536480736962123217522043070481556976428032071137159622454261494851573536413588962582734120668882025665036053923829272848993898738894423192660995836298621963688849619340623589334288875197730037603693502680331763458141685156458707334421821975099224428185222023019671897939455183626451038095127546183526394465502026658403197517969386516739096744128576264855905994113949029698034291005320278708360697736847832563548890722570653757125983943352368569031217320320718143297919924184851940477816235325307917085708474500089592296129539413373114289675209079623188873149456680392480130383040248694540467864621482794163603257264992877466209102081922549570260411215463352871270829656583619011520622687464211780250086369688677069184938970018493054228078909588591218810220335824921250871763777216876163570293583814108211470501808717813095942631472360452030544091438523638993405289901907893310582830184996569021738096371667463571150000892854712735152209609582023273767565970436216610813271854589726381181480708702715712560993403948360207247924582573486055185157758403606377317991919883057338663603722355163848318777977345863311682780902876364922214685419498376658395659684984030092876629193989336959864531252315590818861515130766250700733968311158412203393587288658432156355181496590375199367982396075359620503049987076595459557823339005530783416667033835399866783192974534788733224561501582794831741900744206680967108136570751359247543876089002771614310567486796312327103862279922857525368117876543031620420668357711315871896731233536717395960248660546048267733535098234361427362856640254691593016164307854617961037331014124751998789643036406867100085544609339841649472786576937524802485628714223230283347499911453055085099391414792099528334301166924855061217679508899417508902516558535207852648603896346088004175124487137704849955369747613244340041375359061544993237288254552066935022539467392758473720368229303477049324177038743007253893901701521809733401203960923584774461506100760100874117143236788417520061918260933634449453726791338726857500474097684439872126640111014243425607306146339832826587151539915890522784292288456066835296977727830614539522997547273301167696575003296671584866103843206173838273490234071434551521925936986968851432148188284273235098237067968013732454525918637037159435138583991024169978751957499154371808175438604558842498850912830570853262693673558732585695934037586729625146788213473141702997262992665888640723308285926452351493859846475377002762042290897800543894334641860624324930201869345490579035741903639057440388273803517241890209776029524073453109402856275289128446992053591477893436630177814733386755870340495549707451837187012702408687645896726565044898784467352016422259085504575510494011052284104235664709746610860704353617063209256273188667693541847953237795208563180948100507986406185114374521592433315793368666262804673167687237157113338804681462634105510297403044946607077167119282306241269660113401502854610682623632137083591792694921418064130031836641001869170340842167515912689252826068330294608222941202675399952376172442864399469912975539406517015798586384517306566020704013198669444684017795863514783663596277484982697438184930633545468850410719363914993395572860196099984665192661091833032089931327826637240973262215238977260543773847418070536439988091555204035641470969458864785929407000179155285494552270756712756743511223704973204316897735466113666136709471783844972246184546817531975454707304071898168473555481202488340315352379301208495121057741460603565776486743968056446770413731317688225493081630865571405237745287735295791019919324703642657780970739761267768515366792510697325194368484769282176139389606103754813028806338245535579010626932475497863838855353449835212335642798239232840087685110970887624353757433002799604750352816523913464441085347405951300913626117493969850998195737690335765911025426420928440366032302604728580182015818278731300243069798417168617185038843810879422471823893119267062328669252564635883915111699344699332594162067934249455492488712395234546593600967830029421712262357674439975071257269165475746400411685294426267799802535585747089120551003201468492996797428067930944347885724122227992681702746867824990894906305228894131044345354035075616976129348945282601281627604115539494521623342146683013359260253331681539692179516576910799891392394621386377812565397235148570387141626072706644669723386459542089631777067098383850717595692082205072296523000422058195995302831654772349731904141918529390916218703527570696326704606865441591251483680020696571780475222135457751249767335544210424717175919417092486246658536589819790530114159331533723450121751676566094220149539389971848970412516197216441044294719991047533414754219586437364118076647709442310436423744462768131956511311035654655652656666867037910685011598894699574978523613713625850280958686369556890603921947251108900033031537340124842548546314634596368883894970007266613387701822010970876942091965250740965199509506527027711218766042305184814910711633273954317351153640927733366925466134804044270339344028128613004196277119191533980164582895913051550859102762326827089894050429554447667460006119584375324719769603382284161613223277052332237714042734270710568277387035520128765522082392613020760791334360034731696664461385676043194835698426050398199701022231129057332861449816867254582353759241263864360307588978397086880759244106935312371951572193046335879089116142076362903805561744259128957588447758536762295937702145051849901311872276629287756224912794378175186484752317714633847526842901720016370871895348585221035878922939988597447533937399685831228514585300630292237920873500752146193615788821850146790396562949947121637653665159296566932495735210145973599614439773469193866747962625484928205313096306899705197790987131755972097411081505016985055230218432936927649183860639225151647724788099290662060286000354126715607104734041449729424992454264969915085184994512780354574270225732655969294981625910090411638297009215923744199657072495374246006555305027704812707664457035896202923624982566601186516196174387951256343375550575517162164074449486308052725626629967524445342475401856109401737616919230748625983374193939381749188620952151140866990200118509969398882776069887051105819864847748702672761189094041430283765622945722952691741784315782989830455745656269569670075200478162240726283551127658503595883234370533616540805567929056645014242911587481304998375168836515629975379049784619642705834289289615492594861547937073925320167217545424144940795818926097827243270150119366979077284331752579064181684114055009318858428579547410305624697940828408362474227102185292671445338775179282797019385999123148771256340377304405223006504392965810465446661752219979304462410914617333831483961569841514335984514066051162638234570228212227883623555105766250503463598260062565735963680367207625021509748813278192572218726066018657926928255287788588369693082488440198872735930893941365750631874976739092646133587501378888705696582753446289379867158457952219103751031956084457755692524326557649570763926747334580613425611057231816578725531652318585909712530448624297055051529457559358180866646446842889614746368966869811871083653907571710306380836990300936806764925285176236798168399346255696302560199924615156296748985237826333975510236601889522916129024658829666202299474716810739126663120469867327793632093819248396651482622783384628022480639186995749611170572919285401367991750695080434936867976048078528281466555321121512721936818129485556699383392299661616805201645627214263717240911287538598834993360486242349501361495713107546392883680441315330581248951318089041704255124195070619649661058434595925879309780193267122649766682157114559592587283497135533272310847646081208052556672815754856829489069974691877081732379666250414950043061585520059357598232691556047637976220538347203252521482331319326376573515128301718141620776882766576872760622346991146879646139449700018359830999337341596134308486895514512258415641151050793233560989320143469264845457365419139854818588333356638617659769709398417310766446587673779831035680329101490446330156738877555319447214096542414976919619115171758168195291162119220297720656666393942359752856841337409039361999977962987604752657757520908647148192821362300336991252837737126175107151811948753919734363348064408764241221805196817843683495563194329165495156958286752334108633349885512161642821877924196523214713891584965656496316243177848901940810623739024451259941106305662554713377924917099232306906889292106094887278538261142469977224904816832119834259219382301412283476139559807531430419032256792201383824954062364356132474065324436623085928386170464508275437939551219177954696108807286937407577034491703036605696472187255591494754030952061708499448961769741375799426181776703928453752490539526197300471526872195541050179983619111261574908715803787477403033890038690584024550778494471160882303915097771718574623860505183596083976955666750752903256430180333470526607924882008126194887036701530780718783322168876383894999738071096117497484969221612707257284843323946878859372215540845844816822808701265452949351761794227592342170319767676962567638128526605042063346733203092553859481844677382674536445324847491663932755479590549320558873609045976049547896940629102683999477753740646077854982948440065794513929861734329987597614257570624829638922501180417692429584528677765425293923356941300949537046969060103920578888288487920079359485812377446056814317670141332177953202905777823725739060636433914762100129966704919055070387858510030041703788491745758735436272388269584829164696749100362784871941533007939225130413843470878115833703320143739164735627244638408147198159876883754677875742581025145444063228250185451095152056380122301656166459958105053216726281647128068032039527536717769058030784885402861963648244105925800921917312966707509768005920947384334184475810088119102942668887701124583442931623498661632498808812713710494879169610532614226520765703209132496043581882529075258732885558683644632499834735247182201172211811427648906049524563958836362760671876279073721289801270090941192401922869646422759452990341761526359895950815495490682222292869627113629047505363985861204853958801876412810980973203068508444572108749994087415401969270200397807405565874145229194940394263224989994168425796907519657379835743572363679410208016183402023799916427308342052745324151458352962429443750222215113731390955573913352574472711711620283248701905786910800941302759854859058144081071745506191211507147166466510658999107837460979141171439769355539102562013515284114437219411273791765776071161224332289235464520020903660006487122419307493080342476951084281258759179450071324927917194897407692282227578245430351760748005379624280782170855363168481204820246864577653912276424639011653766015883270620275221547879202586731394906220461245272323180568739672455028529327722001866476207212919392743711765862684391773968102479279910987159557488107980686867070495281513180045995229915838630687191115473871852887444675425028882779027135296948193420470732809956764767237777662250049679848076853936718715431645550075012092044602919587390412038855434855981382493810588246362886732872413457306278542261229176816312742759129357066442583479584839757265384335098632090763999323105001184193297103401603595578674904301434138210100357471173360516798755797320121469078524002265733350741143412200577277761223621158259491545304418505249261572308634106303042673670526578356238950110050003415555941493997462231591639153182628313809643461907620555971550516321579701264642915804296887145969834248135190483803870427735419596587265036869380222198005119965968286059562230287328463188782730123338701009067414290992929516629451666196922146084966235309210742092205397660582855264408934031205812520925991387271709986423636549276684727252279094393850598931575297392750747011649201170323984649530482760469406277448037472689274351641451657443208893475533386472987470814295423323849046769430109733710968277158946608125324379701596271173079346266659510724323477698644124610029722503038276057207477107605861629216383066303131125232564184612275955877485239561720408053933463040036541702196952383657988258569111684551031935703722447120153141086117545588744324662143284585493047960150000774379073578959495983904555832393110653491498385969875008712316779105738461982498314986884917809611560644838437155541314965110548999937508182339283263137901044704497884042256486676826358754618149898706148307453218764697885197763356688893447073481750794761068664677059985059528576413048760527015227245035793298481176600501245444266582712923069397613825073368331696329695613736972358026797640133282947454534367984344471988890868636541426091200752309477714271215539027918914844029009797268821308464444635112156106899962458297186775235290714488728429631898098887423726702272045488031855630558747124880386920698723653416076640791406140526210385495183826064950509165418023829311658267253276978933759909433507301141210775264905116801985573454370362655783838627254316331093472836867473509113913204622223318068418077195243746300792255997088105972228659477468754956129140914565623869999071070672087001666754418665397894374427414541401129638720474492469561432044580435153065221784918589234747792330915390992881216094782169729636667146276121570797817741798562782104013481976412831070418073738743993297309905388953321625497238592224761967188324273841201632225860150097835385953644736396313489932229482929159452150113127610199860462977625434955448730522963863928022055557626062287794584793704092059902647388232914675546189583289001575253749431436113738209101050827696238282313747176663254770346153723939454036662636456987306204830729259621592508177412829333884494768182414041876584253187731838948538436005597255618757191806481112340349054637777200832196681098105238752641731132977551644268431579862873821196942927720920673993509785347557137912199628049972612587344541759714532627069026734872482578819261633542119190760063340572516188661826583001746127801345657151467531769828066947978046435015473079432308021111342137468510715688600719147471426717411073309923467847135493748376516243026374677803189471081758658087496061955324010314727847844775071539417395747106305046357911262026878200929699333896322664341079663346646865804571935559699818086487336338332102318620411296142462967591862313619416909123108410214011615067043471361577982030824895438997844040220039772266560413743921993578770017829507094919116991860237395036000977486751654352747111182889611486584429572200523490328298797657427398074843686203026249424498137951163167987265269629261487122616654585857013418193408969645435256943797232801529349404973906462094566234432209644344243453641677390204676966226415358438432899100107804952582192672446805934044001258261467566869773199551818805943473786725931641989076147155380372441247497929863457404941988967015407592757111586629647797441426799919460923968506965378019622864486990012945052356493867045952410696335721621169575372078786542869027898396751062611451883469001918810027146437531259309626780340900046647964610015429406242909301621196679288235082494168530150435305895568796674295825159015145964986604315228595086018585361446911864967590266841127773544861883505286406293428159814963962491534096555047467261732462181206589422552856826070693377289652796350131578560521837445323984685089393472299391087149233137405610517664807145265145998041207259664171927897825557756712304915370619098543921183377714554834740385336834635193997202351147650996336984239116517668165805342965272982436685801688784527983772440229791406782538475362793471158718429780642959956636956589399996988367976752603039575365908823666090026795561574608560595678744561706749559999431219303795475287801023772294083539411908680935998823327584168737944100544322391150270801256236730455679438616428096372337437437952320239887385472255322818776858943370026331669920997472400025497317618359820803101117184910806545240163564797098697134378313567523847883689519099795791792733840265627027035119070832128608990325071835164775753239089092795477656398638743141353046532435847861302086178062692039879175007441201613635174503665551675203686112391188012003976636400263940600356538699178669446157750317715596689411644216807552676265705023003263572956262471465632522525533820246064370478942218661424991638798911200422271746438463429859965123335754897784159505625875388661796643074854291228590773651586275067671189130413666191546504567186266278108685678528457740487449840516834893209622313161901019316874983847621555673657556005585602093253185205483117937207591363412785518472914969895399226279807991720302838540187628442875786767355202721300787710929480306703478785073139628968729387864841446151578942645347982092276677529939667102087198015991637309112984227185175081328749763615080729803092636543468494886554129092333703062872734051364909635819714160719812580841890874803119543777352077972503729874963749021301048601336593722955451209854298337947979048819111330774563464219643683052446925219704878169288127391596280323181120461255581120475990672161162526351804228178847757597246978065662073435447650999675871613902506646923773898101899507966359145986056461481543491571343463420821075748876827820208680204927439203494985871595857735545836926354722765925917039669593711540451833232547808729756573071515000174011314007781725130950134214771606327614348818396296524281488227828116651963037195721664389528702936987758267905331633582998736982638938008363738812960578805774923985392870284363440781083030695606901580579618280886300785972779183184166360898512669285551860164563828294708621122243054954681144646741654977373001625093350072557599895082304019112900563011887173170904408058905526836334913036140155433244759192401203085851320006232585108536682543338234317091428580568938451184202327545537708636958686051717711909898710335481133015686514243998038630243590338917315369261119413803284808828390726141057814315128710979579226546925893277210030875594040616473865811859991928464643192264764374215300412673889033175382939071925518489764002003957446247781216410189220850753624456284754013551218920174329230674553471400491632963993536848563816179235801149673009225984632647003038482049372197339457181307879745816876504238093491039810679713961344645081502099527200745017791346991299334363797118065844119578904282115162973511273860168304701901468270207863172043971945326452559808995056031628260463046848319416401867803959230708434487910943135255583656617771927375961064148981058874033994610110517191081052316125971126147389652606357973862948631911702280357273245449586986107145170723832764712042371529445057852854907439242310043839360250287023305804866203911597968722302299216998358740979098203608852482724912703144792767630721183639310372081899790459384154803903999654868161468851357098762711300662595177441115864570307984110826288615857429955863628072528789023432447133271234607996328206452963485570626050184665144844359779724051725568647485369534360490378620032373392139645096628406113595285980765843378155018061474550683626312166021464994552001744541948314149419327434502024923110673590141160755556678401000464951244069632754999080938858520490030366393738237009467946631894747901656014090765072981456317784582024805102461906004666840249511317161547548798379802507629647553406751037490017744525446006105967323036243299644458499162347853144009417315177293712817936772698747607429508224912439753105450837305987563029657712797905617351862227124038308216778352335852494430872025855339087625682897153541750662677655643885768157042951389965894485560501548784347608198807707228852520871978062711378693325498597025477816591311224727954484466585517961991613678074122390778996034116484880580135660123362073035493689629379489590327685070875862890036860106297317054806213303719480508869774519983683881506048272090957616898933371860638125130245901409802863225670648317328254755420173109178463050100262892252038550027655220646855075922095060502030928424384462185429084102175235094596145696912914237030289413034464092101333829087536283368840333171122908791051471746609282948244479308968203786988001122701947123854766159731804029065383426005547836472534666365092020112879030401920259062208236940981730324827244911971650682991430006327094210352781201777909258918727272406016346251343390817852078702601634466415283823094668995064923868688160149520448679328641382157664012998352794615984323362024950315295535274963490930702059396790493150454174301117950469999153192382322870977452696544828072700460215319975551478996624157192961692373094682375928682772971361117723353989434862897349169822101592429053675382739445176959399953138481328694635709636234445464717879965415376760548873177932144216505293100592621449537083876750190065979670036788519896713332381521638859708485113517939940383810907528717111124424441434212377369028843143055990597417765125403528760258927194466915344401386822368422812244474459315515386430758933809564806606652880416928828747796997757948757919289333115450156837540296787502907656033339246718427642845526950683594386931810239279918260056308414271356728844264297638519388370309773670076956191603228961673531548658020590868331532037472884620838496875182688494307867956513147463112239259874022867030503520248562161572178901378761246388975246452338136159554405979994200936342484484049101634670434282391293371578735370358954981244154968990114463048531375448697096003831911938344767546055472647290546493446530225050303699609574442988930426534635520747802942808132491410643981340332674355862304284472419223043852294698041944540492809635179304614216737265798962002614855426098564664526953821900672744439243211850575321028685175219210778714553970053206628708932256117410524160637038061756598401242818685624374706429351862051814106662680171646353325285927372356404781233672637207146429886898532757933482745635915915835409892733531025564447771748866660768899374873234305080092322442678901102774829797919153813774870469216941256894694631886399613209794642865136611926210499407383156156656017808055069456355847882164945972762717178012460220241670786549487029748612099781741773191074212877042222446944188085607481152055715667426200684218584093489229676039727733229015153955092419127030222612202798053314329221616040310999675840379257541099463000201380359119015649205491564841167284610664653016192031626307655206135807938344762139480369256247227895680519111638786544741487362840806430382758892404119595971667040035233856530052840431316090008685302300484208155395738075785998060983764503283491185376338123473745210263692301165548643852763145337993936354589254038788178492124430722546483129917634579197439089694625208091230608479097071627994438976874813183334817655081280841436431276726273590045450748885639357534602360976686971585963137603606619658399164662510704524109110171063913069455329810813242460064992116649765377342433879791229909842145495066124227753572303617521336921659722609816454336401515532114011228433893020354159689793479300945211646190334709370644681566777855139523979745176179465382529335697430167065295725609259933592116034507401439334130182500213262002238469731292729029664330243314843486743735470753060146232337883810777643564020501809313199788339029705933903635561320491287288546487358821643086596969424242597674930741228225427785545628881041687824126644694283415626899410419758858057706854122614804085721569153264424706176455364703603795011019581684628473561734611500577652028110145929909430432084507554364874198929953484456818168066778090300297280234047899269844562454289713917515764857934493726373137651005203565707059602772402854200099420349900205495872868302308146294945516678239544040465605815040945674259849930345620930375804821981465210596584612311431536916331314713854522276530014986026204594232137283352207910431872289557852576808733011618824063614183445940031067709220680395729583861396540468736717872070016907188255464984828586027286018722656599451072865384114998294540852241979795161548957951525096215766687706510036007520676919390560985415785347197777159828432272900676279134740514248673400033204130442779869155635634606127351015049569886712677229303701313416965228506053041962742280486300614808265634624973036764911822556640110600979395394707794280722705252434218355031307914513267114408671925374189586832143671246027275144219857115609507794331708916870419669300845285165300868591673730872034276775268450904233411892051670425168918138999063250976270859538364310844731345527932988915770929950361912553801930116578537511574566449964954960288814632030702134720996752799092833050849110649728534057077094366964490929904811246012559002937209397267695967385341239510462231511852700679543593346340281656236509567519975516887697836750167293447271473290762113030253378411686620531248455407723673724787942393222888943082536483509450740269382934769912620554010252398905016001259367898069137658777808960359287879767375391116982428755531172615131565832023492730154145088592694095088775647545719164112669008690731625856349118632188006289306622428892612183695535528012865785705970529459903158166368655676818248057395245882198685009194623287317830981880429104145300555052495302434477699439234851494573705421675485575452246817013723872330777900693306602222829271637596380440280430174064152432186926914185195750780345407593891099159064674038646568443545451458787193815729031206914138318034594229007924010193838759069940127968035620173952546577048459860517027127574780748816244033335817161288658203179426544130381471552155166280754983047455342253196320633986248757436050140679646590396043897786984510977397169446636415204166772570942258580951509214036604887732339868487016049729762961009860721144015126828761032070055993880939672295169334241783212902180130934778301992407660652073092868907430111089505709690546881055124667674909019423875686501318030635044220171747835856433404863964378742724557337606384130146258564374621428489162006531440613859033982452563479755270914533741343000204099104314675307593570381573116230978238330006871305011689871252727686797582946925104507800994539230459202570884028040447581985843305024443480629892083139719282784210175183773596773215875519356207127435557129236050102751880450484083968634661327386853600252711275698957409332101911250080313970189710238570451677023719317027170420757087088427095791678953293912861228552605137675401431701329447143871411593071672941544656270989128683282393972424480257087754162248860464638006182928352164040715427140678877164023325912295261689083696260070765365471432173444078735806227509734812403574049631538096436981282826301288195930176296010637473758962758472103099383174603328324848445395425778018120609534939052643504071994130889501922966919093724473002410719361932648830010982133164309644804961573988213028836314257072641328487806155293690416207903110259865142918293024545554168420418833053441851100503475961552361231672949905630409531121662893951236443239180452783031277852778747219890901197231690814193948891389154554298479985759108472014734580785956864881290921483671752447390428875046067691183358632952985305148911582794152166518224283526898148871494925358101396944129303144599146441476974907700585160547641517944505909612148705342116126223973956675920501359147411597938110139268467823161788842187264404377944201801636284117609802010074884691320872674753909851036942632638613261080450444960061773242029598135341245161885806610791498522230431936743905376103586150229027667778734944565767031156877498579988028020605229011110819925720607044953530306126409420400454840261573943571052678796288249926002672327129906108007876614988743829773716112285374778690695131040412053063402322147441349153189316956564331448035273077085515883611767186049104793038944739232301498685142764766097968810640191130470678571915550182081370520501742314329183849184765395608896061313660282970965132541510465268893344573135513737917618994653688189291263215233265074165825549178643396914857099770065529415165331939979091324856022695762781144192824389234326907878298070393534277195672888541967067222067427161777873532252005860396841275097093071120610223158848725779153321344701937356788496571902164727890326994014840610191302010826011156268604248866713858165491878655225060454510366799997468058649046249434662276500581138229918283115731113261122910854431439104427364413371828162626375940738483374573220012521967534570023228275276127902369326700444855088828208366135786075719158749110153564422598413686958658287555663605455977179912033888804982874439171684936916639963873834033732275027138069039613535530220501082479404186514880337350736987639444299955883425653407616347049821530052605823539465111112182734454233941897275377832019674966093118396161831059787164650964678022698522337572606448877796061579768086190494020131757940515362062465309777084273591311481279928561178632000444985678916445317746409100532201043400301784409324722915341193116639888652592501648149966436395463481910721103991671633935849015714169015176990975254303057754447774930876852696548895960391508269794402592399653057537736345094583449144343316674387988751818099013507136032607750969004071258818826500224337234090498389862085607041726622464561968813491601107105137654803328300757740383159837595165007953113498491911064768951975527115303684555990833398566745348720003823587053146503677212079899613617019266053169273378815443735544544529982154047377695263646886223421418909752319042717044755897983249993305534855603369166053884651519413819695791235746720435037230632800779402675953743585249356559677339675717394536864374373846976164263327698284585496427621863611748251140981709191486777916081005425333168917582744657284298539776104707365622851982488695646476494875594233617886990935146838332463196514077306929719171946764677686444277012784750223085589935068188694855170214566549631009845222917365532117367348689664472442113212998128917312858687183142784207851877987691657680769065744229324142044662893578404228116507733670867132270238778341474621621087772495498057921505213726951088027013554082220154616652046709382869353025154078133035918731684195623758561036878725674207079793266802124605922416333591671861518672292601517595003587083636340315288240292910715784766849420573467779354925750866573394394025026239709162135868549632228989366745906341894059115810852672413608354535764439036970958491392154756962003498509452528141222944301486792162881700289423596079826534520751749762580070117797962319227904294537581948603516591221021047871753965631645976269512164318642794811982967654434254116225083560445147446371284646676152412132405805629229167769526130539220571699590199575395944107243540084067276822409352182101610928468072896693683776233864477500797111442250892971084414506922232875107619532934651684272575902907526220210296352099008672391546704262524841097771613095703631973440481462524265945024218920075033216043409336802000403564152266078454572346722410136147573631249798742425205440797398432345368114463439504009825178940196347669002689708977833175802327263958534936650389301863516093563263482048809955366046837112451921020674805509452030815348357663696930146643852481654425094794475757454791095349495195792640257392115096421853336368076654699850013396293490439548663749313570274676772722517103127453636856688644683889778438559411058987960627102256943317561191094270947007720879438578254993157163516060187591509027757575951704950139892908317066955766085764227958778129523055929756037287314465351636295343506311514495333915663909096362568368058504258149338437796829217631996471515866929685459685522419930596948807997648137497919287796986866023605185027929255682386955492426826291583573560414955653713286185381501571168826404390049284770121665232791780613630557550695242674346346197303281736942397761763069920625995321796474524504817727327190521169932632879949027042383129241725114111306805504400975160865651910541995300197888244338277471625930698521596979686177098122775273087472500030298460662761727444721628828004154173628591540109721968701574441889727401704778463016478455085341278493021064476310635574275015474335475891416271259163275273816659312062908381561512816152001861210281085894049034064712638284500006837631686953145655088061170348011739537930320953897762832766546869921149290426799614958452072261149505065022305229434054056739628181703829457137852243810743640577026686258447567916079476003998880110369573624344257659640292603111678539229676451161792795390426087189646983127922079341152010232410875413996840359763861436436316163349533644080295576852086328715452179366851939423333795333830864543417048023638909990438459078659101806432333971091804170373230147687683406760790140926851878073977828586558101124669844119481774641914896422071818362288271103206816927804726484261436889540370205895410005174429193617933679096137590542634375936837472881972737230041768219428043853922567246235118952098860437604538854080938178141191057429943891820007287815143616184828969317255789736846682236202502976787208019652396153591799400827460378204072876778322316484665210144332962847351501580231223607524873441245862968940645196896467255925030299038280124120250264481803181113508543319820252184444111341501198046719492904893112055863561064348535626802141971338547453640349410795717699319003433141678203014059833032358825804092357075488987019307535240752737136946233703123553398758124125448163259983323182922996717557607072588733581724202178721885649627744013258122744721673492560292043570109273957630646334281381952880762404564978742207048564370653226450850089328721195198093263602039030856222418751258563662255069414156700251055191505004680897710237510310059993288155262192184324508559449103087648487218316320302939534274842671138138193832634417274885048601084426273081562690339650572196687053262992411861644665218485545508377313548144239955751468594735269736314733646974279990452303094545935517106592561945498634647895746233720996797820176139845794028947646701984457922310762691330548503225308927332557431191105718356077126274996257241230819623199259945546907200014458200024284298002080433839446534103586429026103921181681923176559169405837683913336566713678210047769066668359202681488543195593517485263001123125391345132325378439982142322997248714519375469864724099944098562014648460758403901974396722769979052562229276475279745991876090483564552313435393124328725280359640467677444142259116979138939921785095957974333702151004957383651601026269573607078779185241218677034495543849889663019895381317896352318685549836399036977417880454734460438883158808894239352266321400473834862993821666370469772817139482751713318003826846761661791595637068988041270378379934435665351839346121670951093098232371981342645821545249579134420708330592694014807140934984352022796926650140549673100608212687675162538476046728344341144945186596470291560660613351195005477286656146926022229847870918625969044904701095653413271233945889621864361511649848950404071175271217582956507268241658454103391956794709821612416858609519640733926501106418946785778546060815665523136037569603442513061493995132502674575285150728133613682849450785433447975550491556645117551072765065367574005385652280749915490332415201911415989696856281644467790011150933915554643010376886409322825950006829794370269191453033439753595049610104351532394552202075652356746871828513024408072713086569190101315356376448447053410969785497677277854831293602174261275699450655119041739941859403508540403581917921008402993418252843676993198513700942085959309485346806713010758817790435858641432075908265524175658276254367828647035390777344851101408802006173788556947274865703732363099516614176930465431780093361166846007370477077425294803269591274000373779520221800410235630612137343374150724289906007006054767134832761467615104817422130613408273450489665003495872509524124645435151998052219735805870851231465406445891162174185923837837663700687732021696409330230985350697435130496569594140043762126559055738093819191785818616124860124396609903463916600393957944071681699559922798761194353922445197052752409110703879130810444856163962653364953793066246418934464842698106085659494669633157970852312629542309429690591299147786653730532791957201860710581886092463159890904943828184458459022915489050285740265019487143593627575891224262518422519815448621895448057308171327945092597796412015395265129521224891845107193458068392306241520412399917111931275094093532728076490346411391223669045049687696026698251743643872191248110744433766106601635869294817593293604946279997636479479741269145777272040829818283960951472646366568522904477513748902741114695608313287730637235861417198435328430254249749346066034998402538722447429555627720037060410066408626225947395060938154503214422261102756323791277710383364752457664000246730280600536568502721782085128420597877082049285444016017744984087429121819452682527505178571559478810604192772190565056734749131501125639390143632533989329660553264464719045374421993585445248027376831548660034181194350878398302537348304101751284988160228614295029020077515035106170203918756429269898266164342047638714740296875055862023633515850317896910703918450332771597336282422071103544921345288824489229104725383518450108680086678545853062370954503422869915493185056284322660455652682916409119459679617911543404213525844829368908623174638029628020765449496766966675058741987862006046005540170488130769034769112460298575813612480801891087318170559325560749988932356342293512868137414871488986571469828982279510854255516181987102055279093805736086609693385630448404765062646066907519924017514368832998519943646888528477272950239535965072726687293706684397447613405432322165819500672621804981072426936814423974653888402392575029916751271747362959179593474699217570277697965490417696853759728738255323174070150034933036957599728060615357506863055176291447349366126549677848989567660453395860955810553264007521226879063627122942655157865071663882738820236842608371085708677558597978028982978187760996552614459424829521831836816918397846980621826884211883903331911314947735563430659319191940371396299964643436903210990483575917988073991318001049270830191642899737527729153055255973213329746231173905328759577904296113718353592974388221287072494214881578846289583575169005848189185084192911438963657776284821228469892744175760857468906900620903267863488481182891878531023082297973316218825094195374421112202852382896236176687835983870031262771827647737843182456185731986255396381972157873241875549326978892562303212292467954458331362241555994698201520701416798100868143636022978313254603789657584459939607529651659064695836535376297723845903855239360734664996205611790788641003689643757975478357541557553582907739320856927429574562609034536712438007816089562709891691573075947318575444538405904729451659386586947554278918269138867108347020650611206657749355815895535321336671227803159213549685642570981125955428406282645978731672639574310208663074290334984889440623468217320224094327960745701393760043341481176428713798573989815933884244057073892977493358003776024596429454205727208262839264269497566037375304560965013606126798969830213992340401933170849892436915990559338886702826706495534268411317238669398873046248407183411730431703241409949261544089039106631588796140717275528382343127931742263999544207149466239026126767952572065219125832322998329930930957647614514447479143511550535769208599797412814820769684265741754839238993279942135865539185764857019532889914890261841255710189790887125508926405258084026789877059797010052656091826238434954657180602675419945080260921191563737283219382542701640268031889288580440057864861782171274341423167696909980921758077986137426482116707118861715692210707365802032566888010969555327466869944308131482384736391247993442256553201315685223389388453329813025737516211128750024732071750407503196835049997721238312880079179020218375128759387922264880576024336241514761128266860775249817903371390575595136810860216111149222272914005820229211931389858033672723785738376673095791834033435695729060933953045472649575566860443662659065762536918826246975277818486323000251085867581245858471343898701624117489983771957811288697585523466387578491013835824386251411776153226407457284521337097440784364170324768679624555161788581963792118357957949053854879541302466979425089142476254710233270421441784282082063791630835487496426488566362194815451341950857025835971952112860021253425694035596166173601659394634399306596611643880520965302125624808803009247952470840719334141311239090718274953230246027841467927109709983843423609770511385985776907438862158761632797752117492679033507130842627871039043718469561755671728081270417423212116878346042627020875202946614686282118798531895322216929502335683829510598651012588549899627746523693890810872014647685539766894845568260745657360191393536539337353893970615551670671805789805743603846687366452005413650934533595343350791182294946813433591457263750361230359201792112267614415685235611122342437619576355305408604836032618094809795217667224578019449060326975877853147339224971469045736935857340169697592967370676453953525319052233575514652095010555960865831520301809662370297478370958301904027327612734111773760620230704572301266000866916043822190501648559010743000103419192810913170734821650802775663793163470584711037685156863314961151740035907068358565365075448759513291155493076971160154489854318897893841862577402285091301217331091165446670378500930987002498448174718322350527848902978222765663747838215553640062908228894011547146203123283792544435083638181345576961314971284273338775169332759480559775208143075305752453285322632981300189649033847426612948945030802580748858361610122765493316506555721677898053075732234198207227668557432697540098266051709503566031153929000642297085913139748694079658321560382454760420911522762105031815975902458338594242036264275706389307569308841408142797150486161162224146619055403404614339651012420585793711392050610055836161146981840117395566262671012033173421566717834679604897614808643836573926633460517047563530140313234642594318790124902626364008835448263019749823193770305049331153134357164827494110449544135067616568088527029044095533894876338448544467793521508377314550526998509169638384693568448824749096088190415779555284449073419788410084448147708513682602279922365860722196638570206769847877782081430960036483205060974374436556655269822646101022414444342387298031667755374840770082883099991615335548522715037324274263107319625026269389490098095749848232737017872487676400735038770828034734117673111788133566753391727436384976603674420007950431942065712077183626370404366521315198814034218780004728660335120241206012957262311747272388422669173348956983378458772202210249513436490060815809784061132186139990932604924827294607411591151762564903265147845191293016721606455455453648021774922225767811224163634489231783383482268233573343735549932216575034868602237668019013194977071007924698286295330146970353070543696146855314161482989708354529097579691070669728484854626578408261897374496970783073064576806023488630360422989484171891177650692336638831697747760042854574056738130428583597285783999912704668139536951185417509586886386971867814752086417299277407274492021940589137683902918172202107313281647602513361418515718286701945718814880501543329068392561613054229060637115316627801308029405714902367824533368756440125989598977441225784370614441361608741464939343203044005812684051307656545621064301903917480225491826225183845320473905724651553116786160951694438789425244402579195868077447636227661158817403230376195533346237473615247354020338136693053876132478308670670511223322570058999201742150877903109512333009077323289777924917337878132396447210035176674118341929790115291182678128934687255241143336937692834345618746553391647782001191434717462489490091605679546759114680551620436836480445359360422875120173255531338516200007775257726730026033460131660039032681549322053022686356456351654825113763715708439802138612982904481028265928929892185009935963892167456536392320491690631263595749616776542381271510417510647359940390781549031990214726819783511690728918685396054758504239633178101882734312738639193039300594619863544655889875826094674669788471157258650575248160935409130087054886576259347839372549012536098782228439431112913841164304125949675845107442912712432175414768694055344941036929219419945897791319698916924228507683155634176588849211602639819360308078501779870856289675097340584971641509296581672045803788226760402072656426966653645016684686274944098574084122130953404317050707722141838833810696619561596782821483613105328432464674279021887541186467374968867938354867953563522002733101848656660223217395394166177768373036696828504703369602012735704725569762600790164028942064505883458875907254393343708091146454214519450800719750585631254415933275011362073747085894601896359965625739369615827397016029737714025233811134561284943645326569920741739096695977302523943053284961265708117014352857916713883416625739339961599113277980354825556220013675779514208558006237337895317684359461775476852961513844600690621167570602467374514306708258771481589182469818253025109771950026614567404455474183332705561842498069537486210837056789665806341538829759092201451497260633476575085675932213561419889587275309956464382805144550715160366484348170208158767197849709549359452249046580662331082031349376109109054246340780986004311802029086435366135683410036288073608681778530784326137064260164576007855298338602906621953322952197525439833289772637927203993763251763695725008364623003855957402088588989189857511175338747217186852390757813798802457427441200822711310105247077739564648316953016279231729822350005105355049441430169564427955069698489536754575702615179400491888929439115507985618481565909448491137421674662435757637865278137980632517662376984012086784866668463606170610812461719397813452962162618565552099376391862021952139403948146182164789664931232671359898920627418136190452705374984480779435595836666800736670483757471373477126281330063384057378276248723653479443891792009573396343934153754831697129103089243369098752487095341497293822592799081749501554855654510695365908435161408287214072428764978443319144101942990524950608097312410950810871129076504807782754003832007533717859790912536627405629159007117041431295320802302143268475217371663654604224373166058063263210204069821547080575619406503078207438763903119652087038443996553407162402922487231215707181347568946198322909309154000289721646700010353302410176220679953372288385607980637454199157726051832187377678741935081916936279121334642361086296058829736355355673687638482766800390010973812086482927188689551397180689431631680401505727182653389009223074028280812351558481851225166817534858504183920236737262933900425763769520692880883944729557508848040242415995551703676958682288657746992105705143500533333948415843584236090218318161797830684568923953532551758423452846505367078562510029385653975749503337625277036194018169485182620350193917695645811412585569711812887276520163763311321087186499312290329927413033699714954412248197585343790420135832285026935033441703299080789468347654881423130307629671415478389657282827271990681326526746205986999599602710859750884349165729945657909435327030449155430916243991594883352366799704219173751026226815434309565988842654520127197046373613759839122370871997953969646635255265568880448745851277998918435166395783249362304942912263316603248000238288370816297082031957763537564036527076590944817404489390403489665574989311198924395998666973046889286224554623062936711850886329086142475230046434649126564432474696108043823067376440140357371305032903766354607932125297969593311246250084762685132430921920597655080366905658495760491912174669329994784028444821788141378730818942783330225982327390184556345673233284271813776894433414245587030796205539643538779698691313587646104883785142655456400907977793212220326337950622219043608240407528042992411601074884217641393324385253110683566885181673996836735196188464405015265325624833167904171455073902348024866741987229715340187822309493750898972114572875807138902124207577051092867900728944346917350807837305916491632644576586359755776588242412099856369250771296316144150969661156946673225505884719051970856323957419065315113902481149181011029577425391929216850142430000100719244458244034170303333472048182003075115924422534136261302409391817612670155065934932879774242438110155173564132564177677523790996829285303821966336699733882836521205344551808316640351768059489597903185055104907975886455095523820331917350157733940611539614842480718700211534602955415049316521903033965796248903336779992199326954868553111391513534838189381092530727355066806512808492608899696487186413416058665940418534726934084608378345060979346155418856757328636968024219549956211886464590603162979804109128933106164956492981720261287141332552833160268959557860825066348423420274832477888333071251930077693764149618638101562468816533428215507775527457455871451993172430775803598423488706166074563061303174178241427905096867099990924255763458137728881594119018533166636265360879067243303303971143475224246350331262363172428168624904975741930205688934511506228923980195078483122348598958889668982466583036254966376930223757403206001865785347983276123000545508590825707764477630445117624952006975111276824333055514966226157033614421596877856705664933953038592690216401591850392380247627311496472740389406045517212530895676269509888758137450689061872903181771980840861050019789607089406822180008761988876681649748062820750926205395374366260779818120647289404482432524966292712746845220010275368780817810212731015759876396251868420436810916163825362075577413248749767975135693269264824674290642200255094647066480051254635120722686299430489544213090883992855783201065301915321359753523749365244257028772422382763023696141552325995335827171459175538896552337927696047808468107909726380042513590762511067825378846983863148962192711411639959102669928789751630635976490717148853458213602678943659419009550204877275119472892417740882012776066367308851731413841964882036949867476659829343058779140392195265617201903485237610778389374682937491992194754528843172593982504382717631628221193194627432969990951670863608342758653252675545958711252441066890753432835615139757922271255951844688769998681443725405468770326477032641429321581953206856437840991296872203216704306651120090190980438762711868188323346106616798076697058157927459197516863107856218999866053601317229641892893797496746223840044464944385416584055148919182255740018227148936614178472058544552120587996683061924220262187080516895990544861292377564271071238507571788858829061289419477708410847100395838013542716352618483659077834104550066462954311065139645162327480132299755309075903688067787515865887124167692096124522388649258243062816743229151633475648353586167957867218119817737423534877039899412060772854727755476261019627019617177764426371460333432029529257285375556718040171815185981822694431215282329834736516315281506480576609103208161584178420111816789231434960714301685810724108778086299041150990248359914026232776793691646823386976906995910117971515493336199071176614942374446812342929984956277480086418363271359466550710573617509945444543051962017155065819781249094530168891297170926002157677891962394760019377432555667750260786734705880474657784912774886874495987338145661282031276110329448589721431605322532218170546568753329836843071792958867534660477523052573100678989241029357993738500126749381632867435220043472299971854554818024912080392252880356830801126912301331290604439783310747258749917550467412046688274824641597300021837110575256704569067816728988222484592507870329158856461475680852116222031122368145962223390560187009279011865211912834568690938129334655285620235908870204033069633396798927879909244722482215249969045625580691257951110580485472110194256538303347643642555847252265757437415900754185124539608699640252181341833599848667032489516035626378622968683884217137625407824480245076277479103602290057510467697961272810406470985954674048495354972662819669878720527015070385129190810671777670788722439499329460096185579986269112702187991922958770236601271814982467982856837223906287817526785360011639943833614509122634642398040697277243111438646975734952541483320577041591006288100387961349301479741495554872115881405083602117790059081395626691849251536225756605119825013187113155762345974137426481328956729790171709065695363093279630318275699221219562935689387799027498945343720789612092395145238991322287470468041633047625214183315763485882178243738531572255993424131313706688381204118582644659788778104128788699012790657069668474535254926067137809473027066328219226768087826671019068803179961823743687770660558294719931802957153217729732038788019620287740879096492291672842808532004603357686452472877173527264937638453997732211338821754406056986119503207512202583897438881727288678125749777317654021440443480554221423251620873209755896599422440679090241575917406870828131941341558378604500056920197805998240515293589075904762954245465746693111312350939477783350966291557399261183907629296399731492274223680349929191250348034126930191599157910228830008460089259058430899076134350443572160835837869443627186345869420857910102349567110873924452422895781987748735015534348226985206820204916461073027921207767399031879711222371592785053018917057472986931724463366198208773457905540198351552610418074421722454933632448409518727310199760383716787069314851418205868056529791547421174731127287097406862665414477745931577297358693645660353963181845711161067501190789466789158115221386294660088836336225059439890546337985101296853172340628845671831713067991224347588747582774988996858599499716692077528836005980378415024477395863515893104868103709042498953044853609582343602523245553398907582206685969793260586658859462063384013509918200026291104225201269765238851887552391801458044085044916551515945265388364343692178725542014685976816736243325662893539807919356087161013593232321904499208891929569685788582644686854718182538592548850027365578900915370439310641820260138742652145821702504579506519762587141345553437899973122258631066783462426872375399108614263208746895087400956704560843912362328300371471435543899024476398852279791205738158357799157787736760971169740218689717142420836224154863906263304177576126395948387290054293639710760659620008105718224698959217144110934932255956183356629059828755041333933165596102229477279701264716554220697698701564117748764880279766904822180507672513849715099278621409729669492345192939775296255214234632462819749233123263456135901510042073340499112484633461415031640029750221734824387966967432729161724688320624217642165477239501973766880097211282728460955085877230589586045904537830281294761571899236306700888014167178077903443516068060201898030479780126456629807303651828632929443755350047926540865167554920727615092413052176743240910067407808536471143675626241497064437661755426587661161990601033284419959764194655525347791855524285874943804235261082546384764467981978020618414124710423547185806376081710437149672332381394217183624296947984437836370827830688381752959310808877889410655249309836661650139739045213269132006045556853218893282485216470192542853700275751766937638809813635822645911794499372122568596369963692407011557519978461344083304956811846240880522374569664077208065954189346601230826720563717357265326501436581104724717916659992664817851951128509285419089177908958918809686833590519789034740902550133756277982406350719130361541587744796675654454102517654091097421683866506443189902869932599388206748450337996529852158863226153653818217087007061884855621738245091084064374625132844980654049910794515527376007100052963873534132337349195978115647467286438195599403056814070279682062008247158207377641934717933693068900601834248221753749677227399232893091070987833034532017123582756017992210941331894342183801402377810532733324290519707924673825600138221286480554662788140384734624197307400742258111121885758133356395737294614883912759195570721835345019870777380554829269908690205525428148037157166383769463774593211080077312040904442323144214700610227335844836938711087725270909124752771402175468802903331408998556397891180202749079751400646555102621232506348695806717760107172234101290923009377071146307514539310744859516627109264807348557209355975685128779103878192673087724684599110686903906434435729619714503748637318893035412115128141123323411981279296825262291349630817446711937469166866649318022359808611549181222402607202010403038510693299928792550312070522758049080863753450218912129676923055022319651245267380990721783129808659233024256434999200511047490326058599464320017277426552099413992315426696602132043327085530226627733155697298130388718711455081684213688658162470660686799970713211144104950540081932909250431444010750365928953008438401624000498822586760510731443458751872306045260895219961480943948653712809711409420537187490175036399465906496488316341930706823719552725041776113351858608142021959142822460548852891912342684651851975582926017658992458290801213849239933782384346180088267609428966783256874183716847936799638180375572745578883004543783216798467404996587046924465811406375388720319964074701817627666907533916476772467213137411016877691989666569235425207990467610515334587970636375132491725788028537433438590529347878546931441490183336897917773158813084952424698778955886187845916698803525679278115613905734330752821721568941198539241663971478613854421491672666430908001006219316948899840454677871937169337885252236340360771579058417361709028886461011933088665538358947399112715231733615038462869643313938129610245844875890409291631887594414416758842930341968741283376672707319881683246617230935240836299681682095640399119723364598305769164654215487080663286736638638842873771601181458473636973448660507630872310600616315128282501446517461182377842647861641122002365732285973376344871329967666187770546826208489903754734547877308306689250712989406918466224279052393292207025039062471115890758957537999756940690748640075433352190037347566041639714102013945862241560151150405312723625006472215397229943954787454126913597320321280878908654425545695415609115005391647613658463667550756130798789090397938255795489997346180278021636532085303055266187444440165119585758510588864984865593306046701765062188751092020396205831152708283646209449162579474080666802657235408398882056791450512439010278890930504826567763430147460357257080571423859900075407786564742786310179013207285376147051672461347894699488333749184275161312228672873267989017233373855574579347164541030063458571894237098166376632916009068039112438180117149334298497313726273896578344564846341980495684936971440807596675256680237900168629157311905991777980128267344909052972322180362290509246427942306859797761380450899922687098087288549382071072919577839061657722088614238867623758849076419866560050604865811643845478569027093297902594050266442060508630109379006854645238860150753175129317106732859077272482108545128717891810356050329145994723996399805830573480275278256184988459608042014815224661280787079900439099634110146110203251068332264701790063507816572490066195048588591782446230157296111171767255562722492736030803339536176043434599429454953603229450955579302347982674808908054317370850018073257338825661013113670697775276387210780876533648842582413725874857908265969316698139121209068556535529214795868019421143855029354050174965246015430454499730911833682889085011795503258316093921743565217442975116248166656906185133300532680945272279946352317653640644024006689008726678647353980878898748739440516603680264227917545037175795383036709547471850914962319757570278927483695690725326521545599316226077210188018341185767677176688511615036552905123974855954529970444866281208711691111507701207726565901005762453690732284236300300377585265228748084549047258417562690249543331059542418985328713500591977421640801494182134378273418028429184004472152262230854843470062306691735501994922786675929799974272481920765575821597545061960867261539369928533197607543557762945512476588708950702292211723416583973524347184285265275146491706868676121722901583585454357318742256178611948460075313280248447233381164715725091765090676594992332400266257192987733401225695167602445057657647628745883952671673328993093000850837617357341981621700346634785955327388667244560729690989543586169334121062965444774687747748032432989641645294385801276664385240233187129742042691982511204490336254978192534995950616455769537263109643198174933751894899360188514522779076366116753870362634078313361112710907827326865541052611764287005093770200140981506837685933299700003225213329366159577945143427946083438021267370498999986053147188619988782108282482834393444847367237603754485270175280275268173208755937391030956454122535137939311959128650564267665295076745015537152208066586591389455025068563960817488920906899343923533122210409855640446173786001992359806328664210497155108021362379423650933191851808684840047373705289860721487436967344820812508893733651392575266415562995912984950195394727947801135284474843375567602684678947221500323312505390728814196252012921288743371074970429759613444754205362115381064296283424784543356187670466245049207840906787279451245582645058987494205441942873132778786998961986263921736760710242843103591340165634500146773657097807887346692730808260424842829518244937258259191433759536064228103092356538979989168505929532012613742849986154435945337159077315892827543074287870910455740841507699767539226314107665935960756528985483244766451799909316133078815997942499359194878723804681021799637910616894587454424787587621509803684191907058126765908486782044974849378380000213382917706542751902436921265821345366477712192013672137093103278804644633349587371974705106142241738758455219624113801264934433517780437915920118699872883389989798062400780372309522346923860881170079644206951737048137933371009905084317770522081578259358418463598839284422088148530888924650692247110985068393359330116404155346600965421867499772781154316729877771059988362660648965892507497962151405914206052248685615811695450054473211299279185042831002390912229523654084147276813393981126780884685236614397985446864091869018310275395546245023869548614688532277601156328215157392534638627040178401361599230973719384945741518177847693094187976185754541640265508970934338360491521355924002144725100708966376367160552116827679195778865621043408875043334463917107615173941811750121678841800928602073624529381669477655881753995046113762508245780880956573276245430742363890181980785046586753915208882472754429744478821372996064584355845787136227155828895645373758252585130327693554207393257219236101943662639778500612538033323845057617756790767046532057331263808356968373661629896341709488440059962690225963768753855840733172858839540611997779141983908156426727598296948807916983034208941630504801578408703237327009784937688471570877915874048322211496933927809669074948118393095117275205868424993777777970369150948970618120656681708917339099285147893978466202623893169675861247285624737986027655262580977953324408973112487771692292000291215981473256707749513903161135014461165450531274843317809272329897523647459827419975230107896932908068020280263303994383507812518696789265955702725382092248473289342985475614370181066615616474853782584139828526184772335938495058773935592807820128114187821782640573524497634555478520314343144215404426015037469870083681671416320116567626245969571469200206941694784663141579561616569932435662044070191408763152648306827973766895753717039926903396485146329958882427359080796188088514765406453811975031676740406511498332059902786672234769488713099780220481613516330784762100944600224403937535562129787690759195663567798734529716911615196606278132969502857736186727811711770529644111747196799196731958184188563168294257400084368088984100967740372521159864028814031874736855527062574655323956477221076554998733356360207559722567466640126394249806034375990492904637877857746226623215513301089091106520851727566167876830160405007368846698050877911957538496799092929225909522228589387484246157743614109911209744800464601769982689082626383981559955540699688148483493315466810288078547124065228067122895423461829641678128095051355923439461303834827603480304212766580821389692573241845881317631719989554066845837910366982266608326130550089395250169759011465860813838823330392743354968920171732848017989481514132076171443433492780006121684530638289677200725914771602474328173431464562581209531893046728681141078439141519020251731215137320771247076429733685714689870703963564331433095435980687749470413016131311556158398890683518982723605544932621548528391978090662852629455566989167076829729901955052634984228218508778505372469316445939468820419901486426131473931978448343874893289844992807452281636783489641704789529542420064854838008939748558848697708680787037817437702193407084019543656991766856289261333593931567980606696571342948106238667366813609965421525272270041092417317092399241388237641009055107874615457142743387325845783750355298038367296440332879581900449068494241825812274059122879058572183930671368662846855261084526082118370853569691234215508244560179353584126444038949615101087236939166469566349787121067513107542303450699351213909229640565307606861296716973605858125763308608560192292623079684637768048765477958971337312646322759883226578151808998656416665867405760982787238457823802155253737685914508185594795445960858576149249364830165602087647351471540057441464939026436470774115269572646956237957563535274061393260132456951725393210523045201521473931951205851682990309912423873210525681700092360905699773407297520661937203255983352976267987441437337421836430059090138122556112954019956832793114711346813649571453672114179605405221548529848787109123748226998094001036410713047593583269224700797046862396526392818636744059590308388022179377482083830064793007081069205951489819061605527817609279189172378002600875838120624974681415277030310008580513774138579857219847587683291857017503061906313024273236044824965711467170358190842049316142060096965968269648042972505214177702236461751794752955592176946275848662604254872025385085009836958789165453298855450055628692478742994608891504575276033769477842148224803644914899863134104720843422144384085629489444610000439773985781924209092322584678790209874771597917401881436704798045519756371429163345082143560814667407101320963855808586933310547315329192906330105503332737263706283495347323670099211314097101551066019941787400993115983855759255628167153941228213681792190345648937523371463370301959216335053522737410266509907852610650651653102040597095138876453432159442456405899398152398621943094296595389602651374764560863967992938939107452445714114944686119158131111948417189350553391886519143696601307487516822796986803170269299045002446701919633349649733596986359480766022604042049867316991899868438800839334448709341760722598514107428372741367818026605748512083221494355179831270741242271691145791863372014483848330123193674905388892829493201306241562643146645526878198962513808695602815991670916043474262210521482858226174301834722450413317118181694441772169929697018717076578949205124745962691320475799293568945957139402779092900648752440356669700884141439971667817409659012879444424333877054737859566806899344565917575680898631194193262902134394876292849221700889290834687842753322145676640122637624463049367595451009781455202229811288178534414939385261578329965964488548538053993073604735844686529497964950000580744026656774166702103074970462606791924977197322515665655152785037194361709358866990622407246617471155816562722746632892260816122928587286286477532980364311133149912343157917245001978210879385468559175002647683749749152781337950989296071681383367193711062878850746325651353438205785343359955401503171007669933482988172057285617432314256876498336602940310277990706972122345148346825633393788221872957561763210279608135774257910476667102631764480016314411724932502204392743638660199870859040090130588937715644709361321505865396668350203646240461701870498023542053989120520837704019418040613606561787762901667160084188673658311769162874625782668532893470971467720958090300799396563087735784340372781087639174023595456517904579286436040892349929070110792530805586833061081959638102460809637019790766653269365361198740755960724056610115267729504705420073358942650601645739726324683155835973276967185245351486407879871811288357100078804437750402731958520574731241657570342370130781629264582000251595208036309159343072283860835395955095154208212862291326245254313792808482757860017962414255392637254026683741817745212604615151263734910007156850046714435680811647236403466995485987079764574743855140825858296062577730231590879039600800054195836725625920178921537706416463164314967414435569801516605812429915083399954739990107242822324788122858353796604485110060827273435762617886371116000402292268608968154233350973987478752401896377706678727704189958749943871080189109333853863385654571834147784523102482462302956559721901797147169876824279017863105612673936287332155726746263394334770407593895534954251885327875977577449320801777960516867365065232734865221469575856059411018202292431948609963743634478256116151044582504922999806713253930850590079049653800579845117907362865255671124699158782394352509520518752012887336781005566950221505599123787633932010560581552777909206106910249825760232205914785941389991260183784108938145311126387015861742505869077093139932088064718699076531639262694719457818565416857918544508508992476433395011650273981201322874933371105694325049889404343302672671377368123246131979858644224658394605092042024862632537468824346138911728811528361720362455168472211043915244237453195450785491127226350240069801629216107155355349520630609962502910693887603846542821644965719982641091222010352086448522697344470392305263818638069368858189373926919924273514914964826424908923144022632540952587336201953353327190083093057468925724543645466194932310475660936827895505344895176708599281353124166118454877944759923845244471038489277706546952554604931572734184105232527034406595373306449021515937695756921918031328318410027221370315913498838253016877736318563632634422783067974201446063146459841019893300538772403713776953747507092046183732103770320028439183575468907739850143295646997043505290304826296292145651435131664498613449633840299200123955550403757312818065487524037596744005011428142600793104647805479212468248845799890432022426653855197635127775989419130337664515302622964672568745264582944778569192645680464880653093866745346120745894182941190938848014006885509363207087355396761016473248115957304600717857332326715888556261985470649042361766643479979333070610337497219329041694530695284231490705923938388194046918040042341760349915143974970980201375759340917185003408238575462758432148109968642716615604808569218642187179398490123049544125594513133884165400276189282839085058823390249313079564345684419279850954434128021765926106321087197510215748489672276980739708793799479556619846546208953451951303691303060537559617906245294540767779123627715116214118922409511575180695819565818763429341387733605734467030111043771927955764108557208995587391856762048099881382792137079569394457596422842608605939070458226205274659974247228955338944678436360823038007965071450989148906150938168108412871354190858254405040371092306701639195246891379060680080335716007658212621456473809140234913108006163643452208672215268873919295504048472487559025954603176558710090683642098593927247744471506782264268004055142259288560470595514045746582501816127029977665035523044635005149294212617212758140895565623014013388172316601774735479473380839719021738955862826349465702969556211528256091625096590607799617683360516382825849314010214883879721712426712895037073037888317203387475832843950864230888836033405944512986608071509663877606778206549370317560837797203960912751944081694484784394985077829355609191064351934720188606898026929160396744849986611553841136923626818639242454840133085504409538364084798763952177516801331623700402192466777012255725465125703828980314688616485409560436156638669504487348544927199514729103388812837835377894320178087187544613853315177558035906380813305027471333562067157697972361755521595882083303832551312479860778911979626731888689066587052896487790872542604501957026003353142359669473550572744804702929370244428781737178946997161249763624286938395788391659410179486698043253497162169587622894803771002731016951832005555125050138093982156413134306611584421974157440707928511839398333805541390891187393908401029424975211757161616705833314622244930509815218667243094880622648594451679026394474772170860504733523195384111003205561457317355325411825243372487671018405108912600665859307419915262869212346755021073266451723028497671982528907798238910317354399565230587223072839253239258912472546366860678282556186953653331285482644557721065146151345907606479868211527747609931307366885052896314777120662580367837126662128295047257282227258763421919175247866375154012609227197678304620933480503734590886606819178242632040566902714430288317316968480739336597495244542051843912455416265643650227792327122187984287544792883238751069342976130315721323772634221611748197983588158129719348038244054326878353968268498560037775707187321339221525089791332323817865200295674486809730410802341164536405469215900549640365380373813163827858995684351390836122915650457207104593226091125353664863680913620538475134043431944299822229922990097284921740979155440236313685150485062036077230918218739125534144644040479808250074733762066294946586381165154416132834013592098929218146241662937321546396884320650689848163848249323034614900818275368147991892842362687997047756916790684606868189784907616017153776048504458403220755783953692665748285776209307992403203490232212951805956470391370503175665817305210722892521210995228002025010172494116742797316457824806815064462806021111428177370483108558908688852847865418612660418214909475228765502083663265510032285395798407292126729330235462807264175369864136853822826557423593046844368955132474474086146011224349395129350716879709806566212729947509980484903805564111736009516309338567460576697249989067675538053384039072937157875014303790707606638090287610480973449074642604058936747250908533274538680763680283337436550909309438655434448587289076575210739808317075416071690716582434444209896171202757500845619537526793087404217494319426470731502348523026585963198525882508608896195474587032946902744161246036749794527747829004606397686016054973197677818469351881783388055834539740060167421085907769768768633398466478747594069222140930109476229117525638729596002424185714834600458448170388469305740730194179486959742394648815388253595590951526630748334261298055806414885855032300054924816031509356919414270740157797960456362216684808204789285215690754106610468882668836236690308748335493539245025217530661410234952381799510951301311415531117669470506529039219942694651060096643493890402352303508094726312532069399637664245703609278506497827870654494662515943013106756175334692513564150222765760500136623456610708590939836824439887289115223514683826126401082992300087140184693004089773951700713658124845749774558039531504368636047412466017265711573218751950029830257917248766698642332029034235647520704826978790073748882634473531868359638608168059377728937754622757349177008767878538167921415228349413047360655987835046510269537028877442657981296620319207487611447567961303271874283115483188470838679493675340720517499338732286050406276913019709244836910674772730349793234609913739639738250558721776146313908278679965406422648777315333985279517714288008782999160622199190587584004052435495715521630853360225197084461033171037055712067136208040761700325286741023925041660097335921938356373261002090702319776197887179517606571617557297477616680533997945034824965988079309383493239602081259860350225656367675984580425727213236043644552726527508417890293450859862748907941459659520190486065417221589750825058115008456506833779982139430301860950014478407119129092782590266055219671787457254831025870805292758904289169543707924839743481092529604154331670456801723944539453037278855559186025382017928146404554987126826885940681846590864923977828650095288535171236975250568056601158315143433315687101385294449867366317344161415183560670482674130078905523648513531870942001073454403439810889734075125104437265076569642381388288329262180894083728575680721202148399424753833060810782709759391348309734032215312361731146123789077692114922925605847725851728319790828685648828873545266524743524735958228539876852882723641300060572992058803767388286503538626995405983628968140774522605316956101841406101928709614097480636950784796958658264061478902939219262624040737472462092112516522941034414431122950501736019681194768393866903152071105030885054422456106537297574520443559856295690097042182493337729382577837999724544518028490219324954856498210823779054615329050176443951135467974158136255934771587090112528450213355955232615199977432141704110482185965900745350383721089902656318995045035887173708365030223839689922662548235469596038163260866342915038640319415102784614405870158664299622378915304901697524058604777906911757201813762601158501023513922509032887440033392666660786714701196069120893989722277371895952474431465696560530087494593122366881741906210455428744373340823212551861986290946171910388300110097140068805754650148512433952682749725372032275467899120074504168648320903758478720569116770560456965424646698367371565307316045085797759198008687104369606650151936640188453912685829043228350322751339676221974140059220488306904894531952661363260729626284073875156246805660801210026446526085114999668091526234030163719451941088473481530050482958152190641819258943529738202500379476756338448915937165147418865302809093789186703777026845625430809425780007067939998771429973086857322588197459595011856081919297930369859973555021224626965429848347927280206299094544955556034085471279587205556788232796336054927909766536071608032238862584580118885393397903062955551359725634662915198877991283918780352094163687667420843066060009290939950755790858494336110576337388520820735367911784246630619986336433188817201319978325090600658482917973959035210940074335898517034969842051926314270339582841108761138184798568791312514277727651050698674422267213598824218261424215576002305344322650310898229188441139900329678607499064495619030919588611115661580859487544766293619577721625773285825541370982658286123767510325674835086799769841701411858732741906064921551015288138514383489695697660246396613628559963170844818787910686628244651688754504809318654906328383380268527741900612572110766721841527284481796965380021653619282211632306936600339142519211724016770673061986258005771484675661024021100382265394786181353278518254242628325912943087570003741076825510871806058889800290504500829346825716823984928593859802507239922991843743092049819856793707805220199607820061144690585874893702483204847456413922087024761852032777019377905963771475505149216850227211742597494802517287458340536973466145382507101711998577540609477842143097107280065356319129807864041869587037932608435768645318981636662278026581168887923853723020153849827289221865591198699374518913204051846558799407650581995963421006502796730659697434930618546536117457090763927825994049155432328163813125078918164850276652690889089823678267239541092777859963661844179707061405850143920601223669832226973160241364643120379178616549187848124888480930625629325858299555517491284311554124379674560294794409988050921190046946164649369019034312005912298270645510465256408976899661749030047703316621839235719773865517078972023491528396909212909125194569790252051570094347817149101489674076878372294949512671422298719389436169336577686253012190361475064716749127600064067637286908729917628170161346539217588786597429708496322082886870985333606422745816141695866273822983924301795763066219405259879888799722267671386694303882619648986584472647650502152324877872072209400562604464172014093718537461883390473125539674592362013189271414233048438744541741571460684964703735680805123073506234005784197205341315014296934005615596564571310286347177373605886560808152473266748742788247838275223345100807201493491480961599429328549775694667767236745816500619238410436353096931134972802173980665541139225990096416232677505187436061185923538523959479215542792141530195795854961812649335826963539803373822672105808837445086816586851660181990573771409106831381569703872169503083627616197989502685390290179289769676888409810180333661636339442482715206666508328646021018847073397007723573786008457731411438202113922454425088730311339999457893573702683014372459725546323398632268392116805240058231664944059515559729980535901088781381447093813790744570526114941906576659242445849374556478119167477647466631862602336951349093734646700322953572892061386635079945946127383953005753175745585872231471405660774591134650038692139251993696364587058809022639184035954159920626832813915194703057581773776349809211289916861238573920100501186669551917173113294895117028411672285937148492033274396368133797576209288806731106468831187074451120824933983253271717213232165029913425426394080124103645524535228391418835024300819856590088915019308430739618196248748472511934424860393328245971500981553191077069784008908021814381513989666469008050834346047762166948051701342223706981954098761856187568388890899520215472567025511749884119402949650614234419122210125010351731354285932697179760172149209599011399685793438363233000609291867308265132725636358109864526602859529845042477548840952965783131410757079893628489795406632866395592782046317030704915511625435224778517859653583364198716848693327036665498177652009421616523311241148903734290090590749345517534549501299949052574866721787917965836859795728244309668998809573207337995951875281942497172630065463691325572320728281387333895933877331822913832780893418958310700789635101873568993315455450971122252975968736446225470884563146486936673877623338191787236000934864368463767671924460716096999246327639322225213205124140571119262902566612009170076883409768123726775082794571650408628954349792300417802341780829120885152737453113640040029361037761903343298141499114095085823538838286086776771438767515929137050856200839977621215574674304775085882821471506734043987840089395432618648872217886790614926285541282329528657654077609478227645337782368872804316875095231679508791038367452546104030570712531196004231145704114827760918517143203782930995103444395372900863733256245955380959627261949027919912336522885059358415501395855717120324145479365098926070352453804894568895982808293922660648665186882706736451281684683673831863399032546401443706047805632975457174761798200994770764877831651550914476107221513520195101108332242221211635003559745504304192542328168746816523857557252453292310799094104067495952193178688312894195772104892011095899204010164795701766853129203118268240637561421281745385961641300927604455713666660694381465999084832627208651899265438325253043389934932855809253427643355981244082429948226586070909788255739048921045441367143660575771760716273387709984118613375800756364435906484420751252228113295262057969996054967573029231014429656419941092505269439785969422076716019057730063057534594750851143813754918866711338950173334329881198205756506537755972797184129047369452047697087797019052381038520889318840743416480962961822300866167021342458878989100462229044757162068533327568969490320925825870070780483903130187345645910841753393664736662953205458439395631700703196078281006763595205671103974852318779673632647440307367351579584144921000883407819005662125957754366944641988313555199586927056802504455517956614023025688458006805542440384419130774562095157033704993713462003335711594595948762550819975823494988256071385562197327314914302150118082621263630426896745190579946259262796796084676011101137871856309746500067092364737796457496172624227853660210970969947714351072501218698674349285663231510337933246591901832504897526087057829971306176090312514843289497756191872340620543618021404667904847688948139330995314825660188521148822342353477952140264019614127637247211161184096026933224903529941200722711163737848122158034959355502443129544131614024596654284252661989294967744760852005089310868743208635214417551018910504975587795834976754614992403958173036631912253235756168758862349221398293122594305425972529310602077192237843332196876109462179708436039563971884530453790003637555333214273983480413166544873852628076928994706474703762873766918350113848674457761280619133986906451702408829000998296489609974075284870114042682012080801958152590265598271841031747573979635316981511337290021924563853707289148868753153220983968489191931358367954151669989198918179690432325596397561696562396204389791489879436464990388343213260828833191873022245140337478424307439160235281146205455753029546333944289128882482000827472552887504727971617841378516334659890899430294317841283736250447784506353453872346265900805055012758314768332593125367459102064911465670374455662180372320681237179609733667909855141030727123392120110880717940945657756474724732117284609219010885158348718621322302372282091988393810543786238063628212054739300707786403632993857099835932223847680061919280021542215668562113515587822988902761680240349332569082964330881434890289080035650635047214197158569440607457184547609212917062935095760087603934126127906275723991622262337569997655807276369777045393599758880670009340571459914748770573060170798395819241496309142635125357227508261621612835463846584871907610159113942911299865127235524604732341713737461086517382835546840858812690039085605645995160435334777126078865055108997283006385087815715896727826185233354273623502061796711776197300561535880409917321573184098935137247944674721896459838520711627984999762437964991242305749649624600190844940576191912976773891749931720876574941132977512343306973197795993677701815529632543098143525996655892146404906874338800625984092291526812706783242750755506905513077771106435802664550117734851686076712870747083672313943663874852838628739080483298687917791897410565071088754879482531266866302371728872474884542455040374635953894403115346643025830137120961765461308679429054637696188160975917698703122615208663612032708725109375976518622884817486748634312791102716444634467852198056499991708912842614699907919228090143249388527466943046310106107817910398089886096867711137877852829243239373470512334625193093917283826566265653587053316576765066960303448842960389647461382489511802959342084495629563505703883132272939236362588293578050915749822059108527890964073640921621439421750773711846334405749177512980250141174503854629940575410704695843639865463007063880476660316874802102223196095340654597843974562604314657725791507225560889947909908182637869772664704385264459462242985792156818328593264935642099342733921303302201756833829867992195888045470120757993991300119677185779120721587072658892921301275753977686655512438109165898279595895594200200090091646995481775571497888975979185750690024013190421251882753337256104064463635668715852866561859310253915055602089316822794190341323419623544622530605589324981736036130575259869125924990879426943279087560695489198178287536382893331482419122499477101487467368127101299467919402764710970588144623059915915172417487874434522099859139983394613186560573430257504772794431026018031846227295527536479458408703059550538616896282339236618919473931263398610593182402103910470113564392062235005917760176451278560156656375297614796573256527247297064927975943297545662509607836700544618821575222577914619089711457001286595396325449781347981184863189767562296503791101116021064036596649630504980514721563212565844889565026883938583121922621571344768353631316657740232255149217200870834612158545627764357233566466480192819015086026615953232495925201375963017843789781953154770577818363437855847938228160457661281507180492076565147146890094556699942122064716191579853767517886769680167745099640279000095347023005583890944547298376473921088129865590776694761858111051717413649574079926689843569347669682366766239886672992502702722983990999663378595918684265097772485105255619481641659362801017577132067027596412186060183276303898395580917355926102279299373294780974923632320785859916743804047375607255634507091863698512593297543582431112928676438009961360511802943690586597709231112462335029643956929025999013787311357738597829987230513590565592120893937952981471323647114638146710082853798635762720613424058832836180798585162922416328818392276746795685009266768598858247161318554152822333314727856638537506272619223619589507711373817627578624079901383031623648290511386583309729596238030990972726608869096545766829122475853952918958384139856427394730522190807663362737826039948155217078308694851641569414021387023002140857275141732975026414412745318375993286546477987915855102834258012001519247165734239258112156996182344124355448739430969734965162096551845594409900071179254493850721835518192577391805561637394151022367560803338185319293442243949605474127115594984858104472814047959153703553577833349858526866786410951590549662018716581829526119336463990835417740542615596789744674103520972810525794125454844411317484751755917465536003961701778080708519554801544238678171182032085935650055519539643827348265225202753139818081880084032547636261928349341706819742511126298127419626134706002968483736083053381853712687080729622717787338507114706263600762062036499763219082496791963643063013797241438116466381028261589157680763336024935619137689211392147775261682187894644546774587379097459193509238996202244488644266630472351868209817302017854173952870122052132608565056851222256449395393104242998486724184691193079337495654375559987278483273617654411672940382083535745726553336170070714694821089523023697628104192065282379027540424796365118048686108869190131851972748037662482026779451241382799836148503859842933678959457825146640692572273982334195377027754236183850217763794534583171306344649736713325858825582994874060863529679441737188078415437742020479637160322931878310202482026857653741107046131349252137739854625780576596291710348886807387535358752145967560580627383327423048850975413817870603301585227112078747082306862925776971607362066726514314099369428690424752106502988236333911167142787709062006901349049004585848926132235384886606933184300390357240567023203798996513613035304933216452943359387226249505650857571391100797113979705264371122413848133882341037615061423674963482318805460398285633083670110379178214256348894149010858153096076022639993145714570586898465893201637786258613225684015967892514479359881971370576296528467964354321783203819783896253596190621674376679335728236732013744154830866051880458824163475013314549665386653279153109135997458735774919106025042802514228776332166007889832092156346417934060624718255791998060594165981800417506343979826049144547479681293773923864593909023562274333948906466267710026011320177555999950534642657705576480863539056484677205571926089742113552403094003681534404067140086148657516245510769293639203561916442410479543169476299667885012127844750183364098126422362762935237623930731095026445498183243052492307258312777099028979710497564886447030002782348130007078717114753158512658845468065447572209403278378115751009775840726149854934890996928925621336045570901854984466527112164278667428358040435965494309332504461942646392401134775853978779060753074337573332353767588805673531253837261032894298612381696059379926021539097764614600703738577051570364701325741555655682450919579672125954766279436404767628257489637672840210530510305463997470798206145780945568612324363778498736738406406975244975970460056998964968988492029593713713460329509792214691974525822342994730759832129039499732581091778687921082312798367803593578764000309636454903429119324305354280784403170864903206028736561344629904307599061502500221549789342030381219586073315496522798861245764207922667073878246669104865173294961343862216131690826431491778025499691662403170923219232056833391890385313291337842602221072994645409730961271773609031623371635793543921661624190307537956502085691054257489583254235654912945100795248858471921541609123631677319163943518217533663908964638783317246423869386936716162812570722525418898098756875818787294241808817316730727811111256516718831560234752186550811962459038564864703172454549344549441129746969630032799529964484797452419886855062372012353098287072773056850069398025671739066193401868073937132084143874023666786340128745896379940163509713906143561537567777217837582519160487531142266431483233675319624675057666019053280533101759467361323684846437918510344648658630401153682931866335521709606248711409838385672364525144860375389179042794882268969227875779644365876173867882580715767249495001616950663702051838572532737058677194472021212548225484723541740549823560379591234425727240692890434593743501029182892243748151108611915572823640296659280644618340251904526536721263859017925416587868886984602972269677825579957658221332708381542546107973106400258238678273769435176005156261278224031948155108239970571932546651946851450276093289961775612493722464880421553220959346506288811740541337546238086071789245958599410424391638215633817315918433255252806299491195963399250749475856941510010507198768842837595541423137611623656196460639370271242314163968703996068597529047889520331549594005214434116309306835019578769946815654963049507425536041422791764240929136671890835225244723058455204588791449020090190890401665911144320017533305978636335476190363553777382580370851167039555368460759055972984795539136834120320627020114312134555663409242564195926816531671180922786429340749285543338451287799573405311662313441791438658816333262342478795448634015445015570365072945934217719230818259956075645629485941208623769648927906503563152787497578687151362936775769947961448960602165159936302060961050883909319812083165808842430854529508946843669957198422279246438918945579711787911982883802356823059700285226364663463111252604841332628879331031873548905742664850404496918251854607793131734566189711453502506293637421909144059674978245782549665941149204841200304914725268520475733093090482160216992019026892994318274017257412783024099038007578283717001812910053557497341093533982879957509814966252324967226573773326919848344432340066950443600956216193135821913345302774000378761886663406988462777920239600346722931687452507611301650315871912790456798397800805140196951062073094215967551815606002466687042097626495065260300893936690426124045618366909135811543234124588006903416768916637659131328708789651029198726300463590535850457532559943693920437612799021103692364076104256544611199497619335002023575496545752364218646777017476651467695266157542759403803811761555000172256727573874376988113522644201908687004598134624544736450652933889531130336479235184680428011214662576114172937541948082694098188676235077540541494885606815824200339441532635893085090365279613364303482530040553510995595883660745027497610191406282110876065043234906659268723572139932639611665813268153099848134525545933040373083068322207119477664109336075216663446039226843069472050505141214097557343709236625794999191885013825504408607911135393021128927187298729837531552393551596058096583538875027293328615110847982421557923522321696425347441565802610365528775761435263502871338859661801763585804519586689778417885121598419652937666746245266748707088651440490151150080268632229667758346418623779681779953400402242742482836624489223420942493291883428474154708850986658257431773467797804761384900217732795725733298450120160259094661697042740447714460767314561687332619314213480775610325513918247545698244105261351591755440654770396870446031777464514858789622971228216708057423391657682365779292164093049404615121308974499845185249723244522643762421815459096257356878891319748487786745520917921779955597241534604142345923884731298302921763812728601871871767794477933122745813554010269422497070141065091214460796723055972841706453791087153897600377054001896963646135935528231232192872974322335398839754743227190049204128820160995652855442753819246798567256689577332551017596871539360177253060342035887454401595977502097026744486434485349346709551827206675342748507480311752905832441413942229832243412455976348932497029507349755380296365287058492096210480068502598318736143240512575203717826391049690149746731419586368427658588504174699449115348267832198212873703392753409145206810103926511613246556958788927163212985420394676761809031132226333544604734553224745905520551862413711585863747355213838477928181292959548720742833747318699983923249856332416696004164504168579558970948000749523415168425405062948373040698178636898149008290553181261163450361113884553541696854215644728884692064862380093461251363050490585192851515981172728925907248019939739280061485943524228935783378395858923286803496031104656320596376760804964952026776437022176479404190080547591752273851173374231196396084031218075227182556125417396841451292192607706497641916920774182836116400770737964361366502710702751807719518327357894588139362241495435697536648755861690607332673307059919639303633087130025128663974805144738348133606441998654198086536832075768689986235210750277243922515184461350284736139997634840138405472008810047779374922602745857464524357394331051489419804793319138267005895316941124103238812055013414741281940062764796719398927609955886886200020043510855363079105114652861803256182090600954338336531444954336345482078660991881925120435142734199772904757829223798121897534624519899695015008182523714398959147702578688838082292784195303675270994174422869563603646222208481794356959209796455739239258685619079953775243793958051774155933045467321611320633769312481567790796188047271964049024292542869362869222224386365520751317183712924777285868054888572359608199617277106102716285736727636891263337550721745705097130776178366313180528514044998059810066421586307946816908017120807266943520581070610458047049665552480271095800511695090456141450626534395748608774860821965622107802334217857143643689066445079987412455707882012277456711865158766502646322661073395097070882005894253258106753352833782449281235992558720656430217360691496494155210781627170652199000056559402165468089043969613122638648545202489523107914824054747605814185419125666136423836665533437720064677031944074109234405757711902544192170626520891445478924088847336702171461621438704832224640484023957007742910546252295669088130131753299036640969130590893101481575737954386892158422646899210079983131213570868346736167634001479910492751139506117988810674171247015075787083250802499932175726369095841402977629865958264994242960594471000207946564787843397033590322459427021540318367719501039159419960869430608840525654402454976464829354670306426419593078031429380667804898406718276559122952934165221826878414349521093821560644264471153073053473195657015829880401329552374419391104522236558845994634046612318563192972678264232919937067207715468691390325175631596920060422660077328282109875987076983679319792043342839374414952324979362336058198711262093841443460017009096154913456917360045436919955831976451913555330445321682795733418743572891506861489159291721222514215252175212821561594800441197223219438960672413707352400959178434326627753984314331152619144817660024123784928306930946450548306424275951429249816521001750821462710684840231698223929291707276822020537854697067185918135645495914224816907203710173659312132894306422485263624530761531482274209977203737622957179818219087536119592359062162609082573145202811681266244809093021367385254236979867503514234484856835671956165066065587602949854789413314464944469563838230700934612564039237673271358840242655153856647477448397348623252173871528693868022392128330638650491586174864190248299247954142728764135292621647496050758348805343207939629599861665817433315829822926368174750597767857743375825484123432849409558135190833193389079842333798055414478682530035423834416263361062518081044229746262662613135671917239299213400763491350278889138148209992790807961184862628262484734622193288671225940627289113812960222233603774479179587564417300001653203724176271248949603449924125897026141676520818396059593923428113136459422551325914694868056108487198086537915954496077935962537671855310538816800627346040086966836562520332659030803514683374463639685673128873330559256295743994872490022745676319071792385861252117404845651208906934688484199087598403135690726326634690040228593069902859607736151341102557856721786385138757823687850604856425154837334434982406760038198052035509258727458734208589979330254114210241160883644858765400495394377396435452704931518843573715095027283778783543726240976076655195800633088163972448487978607017670671452468827628927656191644726595745634958081405163125075099427120272093526049634716256926387904009724554627135617243097586459583689619515424711674277087606233201114931734437208085485150185163438937342560359208807844258642934392068641779220934436212672258924294806311332047079292520183022275936104922329308520555978713903660382660188047797272327924991224683389536576657341900952271077462649909098441721756157368958355394535546294070980503400240927180503016636439899756355269433588757363903173542821594053868280847602746816033563277080942879599408413135894337295248812005198764147995690274448000614965660312136458993263538112542210715350034177210716111810761856280899883653969007111238503053958059365584581344422368767496160458081941801720990047748159830740685399133911318104195316749223693182119255804543529856295550707546610219933722949438621751472662161456676004065871674690088503235921132380330986600981480407017444835770488535704713723124274349724777437639328086787179553359253955503236757261719354079580693929264455281729764344410020948151261008545144277820353910965608490354372262551269840325329427535258402804345950265345744729588370940909828998035658365831955697402012993678062176484816409255638378059439691493602299619508096141746632656310661384784751496899435145018680310986843732429123394076451916038771312951109549954501291243816067567424224674434197068275186179523671941553312136281246395622433239617820671579789778242840235028866468772308767005011765850498130320149674435780354856450490733299587514382287408018233353970417030571468765703957309858431780418576510752163799967279646870530392423942490908163392785388630469162978698367458601176476145613054525528625318198555236888531319869146317785748177955585052798167948540273928852322914859112113997684272203165747262819138659226616936609809681543850685432585472568098191928522094966881782286308221189713492362655492368436272273731209084809532577469333301037693959822148349803142699033699821917114544489674890865150770383789320740549551883061615316449602838232564749127416604694324021541685885522221342508607466324368133300818323120468348294045819365837298490545286629509812118143864405668360972149386987261979881244152468977243203279461694640199568980920592505051588791047179273924407030740923382843620414030900438008116398054440230152292863498172313747474348152751625545124367136268909247977637835176705843588649971570470406231682919676868248463700251452309609758367445638987005503260540821442592207119323443362321559228478767834054186549686639987030163259744348221394286240620826342803088656802196816433649703657952279752544254894173309944873263380221411394867366825402608988147367181048348262085809614694795741504419969334441476186293076180279200944165886460760923392717079601656523623527823252874840856616887702663169684085903836643092388729481398250213306295664818218074200808495068320284092356008825766962032851799663069829170989548546417778649249645339710328275690040632774671714848676325334287140243187103866762265537327024842399757026691935196829987088385983406373787256050274333047510142076541727242530003309493493298555465484469448114139192829544943471443038545191377397074911017173591047738585266464142305449093874257097244740995723191084854658143546429145982665512129963973337370285872353039937812115693792412056837911081008260043972353510986511434390379256902525625327199114343040945465376159784500515796368787688019042498604752883941575628405308872502895754325311189813700544108789667109365059827902322940527339589227172951033981900475811900015408270715294635068811637439001362404503463059499325813442392202887972390866035946451006590703922417634526046209590292139508670854056958066793729065391244045126257294530772040848741304251594210019541874523359185580656363174272575279122707578134541106356334735154469444613267845240965843452800641453730031147692455201106571350191673970196198393087224732929597263363447486985158481294369046475563026440366059450424381789419305298338991826930287810795340774882203718703443277422549386101871411002000577183155522048804552999569892472441037613505143714333248422524649946210123573828080236024617415610011067849661230616910572802334389146077898864364562682827513133892804825660345555282032836389300100137628480878365192564602216603612707556115489262655249598379379207942244907753104693623829985019056252790375133010408947289606411326115824393615748677063536415568539355606259261797738105020772540830164487581577205444912023184893918878246719407216994750400999070666331796300868486898202037206144106889741037200683654113975219768795370322696399857241361894582402515803025751953104840220961515739931624865579499282394354847126263882655238383609482427218240069154200059153146420985509728837670512316444596630441195597452239406415348183183222288455225013540023657466375323417963271346279842088439936703100159437048383138833618403958312749292787095199289113263291576664459785680595887101702433813712961629363510298168526572197988176896152626508739639210967190183726503016263728158574917881658761948452210100511186520770506045623485461639614828466869148316287209738531042881491786482850668791519510604501168449224753719035228980261975265147591859035923547571360404905998223627631294174575870993064703024561712573973353863049105711421903269268811433263346666279622166661152613009337339338061326836134881798006743892590054948670029044414086289398638546822691642155527491872547705073777794295872601475899611658481219356011971787740161900862676801756781932572554260427331430085361124009693648808598198846403929103636165418546387544985778676635976008785161201554185318529698283863201322500233873896946384804081933954206207382699945186251139937434642797687757256534338229922845231095951497895148671837165331140897843772338339188627434234820970166049474505405039489887547336783270527587727809367935272334026475697396948045497614302853604423888022169446670170726563682385129056350623690470641104726525238742343870067531709283313223482850947245436905454179547464838233614710471702463847546783279400612142956192319238610398828152463486954885845608882734151656805404529998821469259083972716133331978385087052512139687704769913886041713406268188660986602420876598069681074953270655527712729963737353898533960846486116216855182957506393269706032396365894214164451827495526863469437015939822480284564707908876012767117617088950904194654946622988922412372969333544485783764796707234454249849613569650605432503027416624405429323996718364279270242762984931724766084514422528356902046514347365534662283670537843748654419987585416313688802832908423078755352456794886341331233473017476366812586542119330847880941399631997349237389186514134754516865933710583474875393431953601489236886472821435421999337226222541428511904783102277350779995783176786914842708047287318080419144490612695714687858515070829670060957326666659596304695383157905936841668382745390236932520816914052396219239178192570341769149453540781361813966247167474300839581362192615654807571452875451306361050230926927634722814341667444764773208220852109172881438180585922251394758819221327579925808546384826659712152301524622393623238544231047187954734161639733697390196549132834766269572989833521116904869045044022937573648070537075819554707504576995430957977899021796521694916788671766474354302213627539117499049596763619285387971903355763627008076298742409527742844569457816326240695936381449550169259953512856886675795066829417897968562135073489297243882028867956524959578670043964488572346296979654509120296752128309152992098329912695396508529902905098045687245582081899534447643004001232660745591770479033335214339000626156006559418541360936190464898433311661810415720150530627376102371707563585259671620810194279674362537307090730877445103502687588723128219997265419467762958602823748918695129840740008063306579308747500321596502606892008038986130039460772779900532827870179504118750366248029739919794599151919178095991461054081951621082287144155186179490212298685744839608028298221511775349974426790903355580963790435968102893408915985063636842848580480812892487084694031322729449376794580186671494015219260047181871305827541967018578079717427830797604037592958123021073320485481974444047259731772593605020945932636093163805026842963409104657674887263184194502815350886285205485296457122923935198497101311244012194290399795383012093373553388788185428045099114926516670797685076788223611326531409650185279549337343378712402995376423718726292517826477622860060409915783102323689370284613853489373695614743594945047439780118731213203121118998427780469162507627851155071790041701638204884928128541833693904111072772470729554291622699340187243081319844019487549027861554747443258440732256592170227112461733571927463245506264116777980061393892306047819140563419844279093139617785191522643536045660147565525912206443949205981910274191743587476188226355231396221575902762853646792486929520693566492384835387903379080656775339879207661220799936479352619170449106185896935982353971048674924756162579308415882125968814752878139101079917010462693862226719000404704143827398077129361826960073773043408669200690561513439218628375660188522711496271729827910088196694959330940293420159115452737797453284230603486375836559620579664886181599615326290627154533852392141068068803559145813096783654770884850422761977373662018771259223013345265810471667704797550481925002289971126446168148542799489753123764010977294724812851186013575907646875803735356828651284818425818504981817519543088415937513342227713563658058718142986974689109470473344154528587121236559604021338892765979559926874802439418608278004711575937515525401891526284619931350684648191901515398429657369541274280013788435238064098434513756907933287669835298627147871017298726086172907238940104361313434064016360954421537788768217846733562862022865538762903936420707901355026240537329956151846052153771465466364437267103564190451112362599589769521968085462857468595251175801942661914485856984487929509248633554204670205566179673135252309833013098074911906809838461906122350219673361179994775437054537297990172929702677405266942576595590375567686509295579198835625101113714467669281402300963437507854441959182114917766500454758378467839893654073500986996743095416076719239726593417115942480946764228380744221087240978675225982833288288483247318520754703417952328234045839305417723460786802533992762150102630266006871082029034332377244109035500227078777897414659008891711619005119868712950525745465060853278899426491835825501319936458006371956880051672732685078085708540389535563153907128991582446320243866821449042040427853509973135280173207412316832238584609557751909108380667913370442394259025271744958254852699200051175133790712204100732225856116126709995629412342055457416378797907824713583892080362162994015219790999651582700544981696036877741233906390729339737647446539779676319526680439258816730260845093016823638596685198606526270316152577514578394843682149865508118411592283346415840392285289260029349082865738684286382050074071613864655970007052751184248902568167213340833245883085605152495892217800824376980523275086227695189708405362369011800490937443729709106463308731459926385713143284580957740780912373423710610752824237123320801537814698543980479342005817979528414940608606581760896430666491099711708065676547166571195465414399477115243491269743277275730875688443424012215297537181704715196717562330283408374176369128589917625036682250910690192812027777352647362719194052113282899617498849793034669490678992194494136127102603097382780593264289391489470160192486342875089347817578731472698188554218104197638847699608197984282624579162311872710681678699578491486276663427952913550046617925909660390553860390246315626614943600071427558726899807614660872372886505645337303941130407594460914389215192841934848850597020256679720514744878758460853088094206416684943235729049460239415310256093980672305811084166760781153610144035877960199212336394665833701011154291608661414375380777021113020856147681065250786316547321940908371160157289077657127669343157784590165726784254070066113903536990100084096042806008120824621719101111514798686255989162763423355597804961497479098729079331911731848548811829312057333307427207596556818920387967292210546094449980188235476231552078075431672386287919811710235681501109656855281250019477583467310123077314037303094033734968919817719666933296028258470553527453447815063440370887837218678103666744480526036269348108103405652978602841979953182550101017153078511136457261401378634854716748062660971590258931549065063266325636381529674271186660754108418510959416456496090075837191408781197807772443821287336155355308154392250650213939670508860327597521465688692732662814630300366258706248543277706426592216626161536529738881987054811198610154413768922741953805551186638939581517084720601008568905193551123756517861379871712282394284771621810299526346714118337618785059230528214327878291757993673455219045766835685767729178299452368781547514746350193485650548025601672958330735094914543220289830677013365375577478218230304190277472426473555206709406979202400865240968530808947795224691876349955751873980279680626620692665577991707444445644801012759645782493466160176949048830020758559900897810694090502846342140859628252665261783046758589876643346528694036875186395606499544054850863872617809746419764789400891865533647986755335665015568193917234631743846594672865099800978968417761676775963663616962468955540078428948630409114912920115501093642256716544235551393004498059839382943702640106027826278385182598237269806059220356674792665303417153817179248954484215271327288202499004217155065467576887738382903378891533882138398356267554611280615749766018731586965319899322545586622002700477915971572474320408518159308787107628188365196370358104462029526933254833386372528829093556692166363844257417679316729417630230891869580339735583492322324522216828547541883757530504926693828860407030182380781802924026629378441693309050588128349050404363745218866327499560881416217681336042576912692736989932961870992629501283428208424309031513671727206396938544507255854999657569069373359671926295001038322183006660248436271287101382558631494260824741551477663268269286789688491154219675021216480953318322364104562417798193242575215169843111274857417465982576513437475332942244196297258057216410598604059706491493741736554587702016356878120078511076571852405849508442231563589064334291362939893087942794896412868503740512575118287076071465301976181592652443931583828197092972730091654955542800067686152615518578447011322560878520082400871984575859419822869722409387613236439832200777957195992882712414097968555277939822598539742751731700930598886942277390097948301637700963456806258550307278781288081249616556634931690771460441900265585547741984267064989401668613183452841327306259587019655970189266530457336771500635937906770786291174918250784512074123798650718516984743296782601498721296494065244876967771644854029192877031521659506888379936904837498979080785013501712964487563737783164553938021487340875842651571261149702027817133985523991577852331712089410883442290797886990554771247443554862208910363106240980466390893888642083095349154612199510434907273333327420041038934273571570709889996810971200872615423476333990994494378069917646785637804996040192314904774620460240573247198936466846041567224801619436388076553858129311683261820138773328236583841046152387406635559628063964894796891804075191896042693332849444804843400130584087567660157977428827652617986766032638580818632566626073862075518748147685240258442171391439628680833642531966861205411794263881038255516288836560178633196930535827439634271445759258810990531658080670764385467480565056361032599196255676120915886162401582641445268444936175969837600347569259647145729190223412701075335223868889875448040143622286028004896198788620611933005957394305290994643283581400091614740583962064462041632045136290176246662597419143681474861920510232399287008949696236321053465548648155984295456354174705064049450985592035834814750571951070134624935482228771273316127919111094309071637664400901852508619025068356549327515961341233983460806902283299703374709257132582800032603014771881871444341620702545011984664871386046034105150819410002516343234203016656515625699610849266816170969153964167239370546689976057527489445994693714261534164659764385206667788896780891953802236439627305129447134457931626669358870470494289898396340425788318307174461450172810821698031612546828027478529814858794270960934224845660213930123566311238797981074622391410609665685525721615768837919787953759933294171080291726556831447732589908548174399423663076922605074161722722205287774707996702747251714823500055187240612723468680313551878876712473636828135170681831736745708651794007484750338137017665202233097514060511270386368705991614129699405618303072362883552984786595940196983950616440121794889595227777831717120304666969233775974209732095885151466545208715644235671546546383812535101890320428648483164281616764261830041986459183354866971714615958014322936735959799481605623633589588379303281005268182164214004038565512098045675674252430979532937350795418303319823820014302161418217683109812696393160787830956120522816154801571841416354694217512695951473728223976221743168573253240642978298625530934450658463694092315249747202005654997937328849081449857870466075570618118773385649689059317485671400786179858330455596625417923839949869482259437238103095465401473192917476943767008478012443720057915942861614071385750675411525315695190984419383064811772675469717005892341144386233752709682298177452060816146839554082146291464678175337594823931643508666437301664473303858580677090680739320291964863739392671104302663561649743926438777852162336059064630864841744455442011384218290923456939785057969445342910679232952937691281344582314987399526518009441765112251370811479460077321424224431308745057393838116689512901985825827334546011964625388211221702780984914395022776927554340657393750118035369252980296445124947938114068578457103402863094180538470608611821303030371345034085006407191478991891731784216612867237324077454354368003935865912850257467152532941898156306341631053697152001034077102398397442793595585974682448323927863137314971382387286837114895292419164948090559927668924247048566709508013150318549762577743540800186344112594978853726131192763817374530116671001331861334363191146922623325785899603567757690372797914740775797886823962309127178675252998878240312592807784049802075019458550581538945885349142948534460780261233408511400256730909745073601225317821153100756647114253301389969217673512638129005080865140938867697587080353993941492737369285687383504271825889480930016875434996587725827949371110427916471004261314563390405903499693344528551704769739306530303198865878326201570948816284669713193357033031103651148594008775022255539076693366947717984899915684300365788952501990369141207042800497042712337614818882646221799527004802230380375771676978648165081050749325530374518626049433818641307364454788899010532777190632461311920608222650835962374198377449712681585180192613207823807863951947899254785921741916550611538544816079353421483949305954724612059012129252305195336472027227852027062944113835215866817760283487989367499614764900153353857469758244594690993954480150629696619203734500948232053133031554719563853857238662634957221137136616973952400929177385852472138639157851068896642413654485339533998012910115422842979762694544395303962448676133859048630589931698977567206698629148959303878395530372863908813281574721631025723487854194900637274660372095239381499760777583346885955564583657465636836190200334663429193881270902759930692198354798373115869193256528551337035956829383858251935554150081826252222748864858753800690537029234582699897833720698935138232792184650199462333191582300978142204869888806508299480022628881331006745743178940999355301459241355127403594203122488699111199164928434475503585270457765726837725162598030825247292930754856447189387215597827661345797361228058955624827952579255896976459295039380476607946460046855174106665555083482304898028905367043095219517622907875685889777040716565660761900002947909148990433410779999845181746563359689037646074808812865563552300656020855692683352182021827226261881422583056937890584771960122480376460524760950377550605695589218162082829101693738849189390021304756067971889549298258394986086756534485213258975776698986604905817352310603103048369231998443300186028977690253723273545825878505430944851612107010132147174131530384874367457792764641963858392024021100651882147026740744189894023879379146914697091018742918620631937357682749981356644434596928711400779870002537975397543693698285870129992463501780667932046569131957814987738169419526912532050959532207261634566285512558686170240196726870525056425669463603440695025263667293651253703053326976043661449593297140973544434664507199276609413931616185608700694649893794209681222962378868685466521842542118586370860320676752965762842644443147234221585494248559221907380923245996147853224025732771802684926548928515274070090236360384269017199744399187415044602118357391337850912334447952921286677514327977305597763751748394971382539134242463572967732800109114314860315143509067263979140645221003099421900867663643646577244738996810204653151610498312130323807745179741136001404007930398319270622869732546371463307670803544345047794921075181551944390998273034835357351243282223484421918124302204345119453330250154465867860363631570477775093137481048596952160376709873525221288538609505042679190143509317657491141284602789331790108781194182087165913587521019280098561778061832869849985578919853450880569781954728569396507498159944634211048742902926416715793027786370217371004517898438677411537176086932652371536872144102780260246769608806043770167500469422825263715226208859613997574314068822313802159092621067608735179133632764629352968272457618183456676307689034329194614398894504243067423260064436089295258153661343429964067662311343966462253344870151633707947091897133848933414430688135203230325469234617427028771149244534101266004375800059877474426926780646709504575527540374823646115078648625216124050395443340780548110680801700202336458432128370390312647231232049736967360361704212764710364785737258378411090219806696975590577505983242534217815665651901120236573105580817471369757274452992405517630531235686248641262950696489089136167591059048335176887397503958952690838335702406705527255465837733671123479494723107010954064313742604073625471407069018198776433968530481343337299944965515068937497254458883678200240034764740548576796514841375002524689226416676227364055968421844995970134786410781894463178801590089591629192378859906145882319909887227124162849213002078784785983832492504831402345281351929729224955217672216104476699781176783558754261753058360033700034864235569965317042995041845598689371379915369116818854254004544361266319041955138133034016205805516118262251325408951213049197349306751133317016463719481545328511205347019813485701515413366678760889158469481371921450979221315651632890472400454096083947641111992381330330005891926088008437354118862867834300562996937117181965079830244672710161424788442956012661712741141920008373617856785975843279848492880071788051050277440626610684783142947700957294450427200960279816820287368251532567115222405945876899713364674752136225005954370286043595854457953586832952097596389759949830663651523579200307985504863506882872264477845743708884086592937139401689627056003673845324486052891685184733131943053024470971982761023443567386263684724105395830893380000264640264305609227529964608765548473464125336141480881145982468500323273663141322376448153761111350989066632417103419959445861019266350605964295580800680747616805573904468381742596510896339373539899481076274219719391032766013693350514829036455877914843049463111169673320150927273249794508900693255503314609723233073729433391305847836375442887861766230054976354434626752773162962151538304179132978196752301017379225042757279498939181194167376131222473975213403684809802272164756653414795815356446426842661513756797075702783742372441577561619758138841349703828556787438552515048566025284696751208815728283355544781090614854183420987276125993916914807868071436885511266637213449931925092138788115179030089778315326792832497850421374972539342443486398210722734764565333312784978664357072657775252812441938856504812273194417912570991713528904192283487320597740513011150059212155555736038866286213286911912735958837060758559687752494928062361654377312732393513648259220578309666580883483947390429321308502849917403052266920169002338729898786681205006665253400190149343190406100193204036310000141509151748116689614838921726938018344873364516815464997419032901923971944404918722182825239367752055189017232865947456998340386732495815284043127372664153075103100749055854341545252972719439887649105315825792635428722285032053968686238050505325683201333540527631306931952104383952832744911006004832918310145413318457276561273793647358440182841078957426143357785776212568876230127305691171045424267828431319290366148391603645512981290237039400690826700981825048129329168262156675564616667970954155463769203620768499087626965668120413059844482705913155971827321348354806261431686476487139125076024003160615123317100572431836197903990319213093299827638092943498169736626754439442688540166497305354612292124577523170548010927884984954634646511424819476840126919736495179626557224246880485724144969601019602435028158443576539485797466930876810858715386903284448444476604893810055579320717661531841574589998010092228755909920626682532219686468059212725474443939838697113282478866185984883281008247106140838884191472019697853415108746639509128092759316549656347087525115676917980413212632056858379512622085749246554192833790149042729119012829804805202346354373195586811739977746281552130028975497668346650967784484340517561715429792392534091434371928000262243230659219599999298655361678967787156406662998195836116194894878836446848831756161264426434471413669313781232047436326697008859090282789230175934323069540645442743766811326875239082088481356002354205031372201070539421999082948626234782783035752253357214424356820940187056679912427988322163824474460481223281992336533926873472918822328194729568034832661645821024887686424029509065149991209879804376331769240356732554213153663017978215933354507066885547201934705680693687572750061072367672009104814667403032806492103526174474448654907447397128338267058503120427546819559252190886700065017490588464747763813856870436289713628003246066265647025720423301536527614569787279795117357346876744250880096570948273224933204154618737765799133576994106713936310761509218751559161728172460133272140996018989782061939680446639236788230361085736536898325517233493781775726709245386284979218499332867443816344918634562281898559780575565745111429451762247931334247190484120440300261959908710012459705118081038279249219024705448516561449506795157243009277223504356396422918944172981356069323398481707173823329050093002669714304304952225497665306066763504903223922754381101146533934753489947251379647039656292726068380434538085256176801467808080855812388715130234727611926705454861539518141230832634053214411596958863705872257705040024504721289232228819836921799148915418264906631056127067798872726254338467970805166541521889380813500876939138861618133258402273027388732893643249254777245042579563641772274357014427321201363294528975773405339570069489641611540202937009724153598045981494108726337330848689499014645694510330527353180168070291153857971380933255824325373966549327070431493713047975395445225094253822820163192443895830988030250961853181091196461200589894103874534607713395243556316035953719028046113411180002157572160812799939388085214643322043233912463867653286394001513250248605948585352282870780742934439883582803300147724688892406054370273964748555538175123080434531400742817199069285996678751862217743774051629406258594938651735841722113924663695360460885633465035518365054253662159684585562824325627771317568900907348883105391579267384097676797370261122182447456835485815728119561476586776035297289037071499212562241222324135279925997731692202236570508867051422698187277886325293378160032358688536892406665226771477259188010862899178212163693740946416802691392640428598283423159781805646740480123581033024511994886240474073199786665256548809615848113921903072352452989177083810018215712102217716746754635421785422301231465796648237861524847984659873499023350959065605966048454213939781821262123592726361657597920001645045696673558688928806993867577636046809644342932380241645276869343509941003625321630885749648395760916957905299017368315677836456369506760057875047904265790661755902331872293369566785210572040095368474276606860626063601794513667057291064135727896695714201078023039182423554591138461080623444260737031601986482924239488937871688572936876116923347972804397523065850803184519684272500720494686707248571001815042262770767993274677521561531069204206457026478304647107266903117917149550081980424696913159779880129217427302588747620407305800294876010475113854005242888045873785075236487005414358392392070169775819905689577147046565469071358788567983279661111515260470171693618985438507298338060753398346671866521160439907304150098400511415524098884626578851682072471273128890799935790084635977810155855655690059373117650494081379265639701341191592597472113567087411339665009979341708527154492866912323581688798705030594746821199704579416185925584684424672013721307064812986510744572565821808779914145415613130596143815204982747656708552081670968564999031781580740822904771696046635767583227227895213434942056743262745923813436400999485933936601565401229645817319447577588952877541090690650878331509872101991872522716273012642765782857199363063833219856121812941639866152540513992301845730387759174395599121321723034398066332264588560452131953100719768138547174059622496384233712132864466207898405554038978301967517003901907291168867458188016790566854114208564175817496325637176979702172544731320090008725629149117682966712706079252169166473822286301758508606255612792165258782142835022285892421294366488400582830719284913713861676538679050352729648412153039494171156840611766183903415778517806140356373865348020520370910318026402607952849171743161049228043296525035758001823290264408865891675840960887621694191644135502640543421292490213405926925875928643822037941045233629781162417741588086564759699092728673202672903187310498537586321534263124674436338379446778677930038433217001149504920297925932353083457436091373488735573856427777221695916640767559982510221269154245003410449254220081264644646504061126229363471212114353542479073718502175352312890400442182439167143370755313593085345633825738287919153398599907235929990081390097376666876604240061649047846163641931803618921748169486191171967696294425391242218996599669301973684738479185732662611849615347048029256536239177714451621590512709552244433619082811693278674457768798027903921170447160116721987019874503818994070633198692951416494768590445162937740106126612659413586770814535632789856913170868422501434467957705776090171857383948409355986571388812515352200969971131540277973312976547180278439432328863110728759359488606929395841918327052903112968747784407201700993641647090901586501455274808291323648544275592667083544427050290484523473191023621882885898690300707908632039437326972091354786747041080816385882136494825948621516211390654018500545591048005998055660692910492501741838386657491405626200232262433432569448217273122398650760354426800677649925064075834927193774600967379399448110530373828988883289827145248050591512793732958817289695430642539849012157613844554389472291892369864529799305468708265531538174248607451417520727942628410446400172869133990247550702643643154889678626378211653358676130359112616368096664957742920982243021070584941525272052178261307878295794510489208367745967971748559112879106238934855097046076989111604746019217397467377950395097963997713533880597975921314200524953384358286822611759903217317710922046698086269959573089935621906717147623842863047385239889061311962136098364428974919691061662942425106520623327536227424197863366948222191057527041259569588370050566065783104903132010677335492740239784979549473703013385456592865959906473997790719351968427995387288541457038538910217339841977009029338712338898921925810879645400408840893484158285630276058545733694679259163667092269051284996042691179250836785612384095203612621113142631828626312590926425837621569430435803541393556048410393735996445743207940803790427499906019178891555452076590621770162473995249257845277371255503931307025221671493701722985323867392892829538086821309722642008713754718457220733023349883425213603990130808495855780173681904623158324333360294468420232046624126079399828093970059931527487718135715662837053160127835747289362469446009366413811380128967848115757606411091044385545308729064815895040933852037315634921846645183444380574516961614056740211253965829138869916483473758161988849791213521175663686525318988590542421982812784396263437969377575265754116807240727442628693785096988378434217141030059062157879493282251306077624614245830172220085933373757666511377764431803453109116385810532062185171432898206628082212468706785159660168029998158329768488896585109968353103754743287756444744851234498627820824542727559843474290147770727106781917004584132306499603589348862959752773565906783295442751172597798340915441815594538228741110909037413110816248069641480866757113511527837088456682371381104447582304547929047920086874419739463309375624443700973811396562706032186216877128311983592164475739342146694362748108558302543586297296271330502330747915144786964000641797023200494892306585298040851636731310948420086776708240101073773253635091453604465250674087761296015306816291356317818252547920637746976337202503543857990872563837593461491791261997287685971774639957558316177944327312999775739538388605703253615916973019548183548139709249263060090874333119645342886109963913143131417154476229932657210925869078525029669599694141827641138786202030545431837303370698803908147416686804566710097597202227803256954557605643955084743486659972746931038316237980462857441960101489757824515298846789178167788661902339683100206552485626607362671145245506602045563021170479313199714728863751088127367392674196688811500178332076471236537603511377866345406215842700023188202070331000456366899289525898293419100782807179563502349118628910314896521299728758257649491124057247526495885503258792098377633524340141591065021220340581861828105322646268786586043596482423404629855961046869468211551285089454348251774076160264505024389557376662769358536463497721567543088778538383548026130260395730299096782033169722421899298063225803094932317991198996000685238854495905720118649751747012096192483721307654026118524776311142891586635526060017264236366269783111703045149688003731522886836956632006498748580030310537887608709323408526381681655671421929736116345519384059255632753926492098466981206636413535522941182222085793011945056782845450598686130244964955973904883242646951457346096579321858890869597777280617576393871784725764551222325375952361338647915650642580305695175218561232674942642109161940427321882455561440028044370861084908462880283261032683195041176613138130894140135486753137496682151581378434649423498061060680729319534931568745093291107620085126498748984128457169642983290179398609398364490032306928934087484819863864192476656817796049172697628013238109692323976292518788018663244638582351603156305358869474637139780165065708371709681375452399424234176665840233163500689451341055455841603471664441368926117469408519760783162832984458617302859301531008672559892784350572755755167481801579525611290039683761289441417256755837070057191209892206058604139449384435301211732325910468957814721766567851242456913918061642906048024802550762962212708631676004521164832724323932591651863219246293431872894512112225899057296372172017519346985951455608741920841225456898978498926462690578966812186456821144062879067948737013194140786870272471597169362909848682211655519261590860263489703006374770554664415497074613683045083851392360503922699530945385015184108061014354344333477062470715000324724549639269406472615972528414309347147675637371636712021475401128994375541376371746518363412159977679105829353211912495974938534943371032629919823221827045456327071259533497248552002602986174826044500439173980442436143606926813499216300332137046537575590088925139970281737706626667193759681676343735458321985294764040351324671725085809348408377852035368017087501445822573570004464768694153153061746408067971096617511728041530055495519281786136625170911701302132645384611309554188715742750332017670975724469789297919118986479733003422626315451391660626747325200366009298742824349130852122323934763337504716947231341304151839554384758699430657650714480825438202119123621195253097890323678167508612222212176352159902565581392606270251590803291411559689138951274713033017842338714706385731671585102725742086904959079684159100076918337141057763623882935790190149467312718398467323471458284507643857173352775306562241405066012899207633276774279812534770677584854773114227925012494945116963077971843646791385552921677633511859818737710493318693011657610662866032004528285608213199208108668120700550862818434924298097939418838301431013769346360693885583897750555914302707763581199483494817799968146367247929409670422922095562283966755940584807192669347784652808633284930918813174539748401385828712614444253939961131440499135000330028691760737165438515041619748017445749629334200621015046338252002570072943812271481992893073652022191914820246079863406834577922705817384513732605202711745651170230669083325106287568622327024465746152271853196149044305129864488887115454126035410790352584577278106823513798096017880397914092706595369466604664547278164321227102264495724672866772278405431254849966581883669928542610512494219895356849377577924382544369756685699380465357417917374872593661066071010481530176184142011666477113799538470697938302874227817269685366950190895457299141880917711420436142703218683773846537757400937000366561169287226192439871401641467852803253617607508770628301623790075891310167126589266560954340128353299058805886298665216075058070693562975627163614418054882854069867674540380968902933278228758918853935408075927617263453680113769642721243224553740659391091003793125387148086264929910279780263366101232692228704766592992683520041259890167379063515859237290431194274971722839573343796284043097913563494657613457516665235099058371489053552783507787130033780044716199672713496482265275115124253172457761010647639164645201970490439139822794126006510584726369958185489357199793453204649340354374484793222523119849559078014261535888078864970996428766051646603188533589860564531367175210314110524753369989080870275905093956091593291035999045081295885024114332277841949105196331704184426951096648828357339527997131536408479214251738992001883967779053032250757074669234995457114293370669375281441398310451041860636126854512394650314928997277757685562049856251845743443740387448209657702891957633522100969668595355234466738945563100935991838573760030127987083896432135010860947020648719844266018530252163692800423348432670733975298853510866090387503133879506790255464951925669680434186117526581325356660254743509778665626629767130591395624546042661722258080571473210319797403450623212324276425414022980016649303768735297076502903554858856472175535571776444898603115835589339666203312376673456924997557011270641163871029306988525897337799353843134685667948269741987321555863253541045771180621690475212309417276878695241744115141004436238125931356041497373728497322181483547177292811143176694565707649419785924123992600482743755492612665187563992372880455560700508974521360545958587521508050096410841224352492825364295920074542683459439062293525202181063832114576129595221902562533262571126552539342948936856091099245756220037477588682509966764051365628599878992188794783352841781658610997445237651282880511209731020161877036104130989351840003168617942140760497537151028092827616912485655672030170368482526120508194578536754028835608918410032235169692899894440610908105691347005347036851911039993118508893188994647208793979594995901138106672519641093700105791244362718521286620916013494845324997224748798433583722683233177738389882142192677303331754160216771209000468834518331337478591024222793138712044196693115627010137162843345937770155169323476319053424986847436770453691253634106490351986436964336298478594293494267828640475688655917977285562417711183328516986000372453885038853847412956666507075355112988558607427576421050682882102951204438349657053833718544757219743254718019423046455672044294041358890342829788952657377720956527664824632039065979541577938191405612921188066207314796256253028590645171043538646925750670077993019463146568773800331143531834773454116336911035228401804627736301444731340792228650433530399280621335965324097389548583613507810654565307867968898111757787379287906425803282311998915355582583010237337361411033261550839032568195305873151143888960169300188465221001556319115527774266039599319299674653902142757801593512288014435666603535790727252382035526953914837727895991503958602275477277500833327694020928546347956679723473616823231063505949186298802201127451426944034674506196817344989080282468000771006590276653247399965819040036099459560425192279517403452655719481502357991705302908070750365915755797880931504363045978208414728842430971506110829610357844338664631431944744346561916416179999788857024650821461818459855230775026802298167258806292679684786329517332914540725292232206056781208696344639595492755168171204532542642058175494719686445287516465015360932436056331887797381405799341558962718168754258711029725778297073349945450187716907957586745664516995226608164740136849029199503639896049551855343281965729139176815709184250423507788978808099439057422299560835589511135641658616470239471439418883857152375651612887062995667029607405606692910053613203803715762830966663739527608029082594911370611934351942617580986477835955107858027760319532950831560465791055726861586047482047537733803763921941379189217267180015773915095763191670114590049641865595905830001545313649589596496938606834041828114102353573134779671774446421075025776956300820609057598553177994478082049034773997739656803412242486870768086271123551594395972451673623060623833740962287868822205038223745347364297579713540465622083453498125899487181845068762811451272262193751392423171684652470534201433042948001188294821115140325771807804368100041025863027089906217881219287136244239563953807549330661670716566304601078512108013730601116978468334316776003808585030260636155042270453692383805105240760954489204935845891120579823355871902363398397357570132927454255334254025962342659764629635851131657312421965971154028444101154612204629738451092096127580459023911893758118968449939536633129932828620451154321854893916788591838173309928625097707678968162718310140105838291368669036758109558600383874139213588106202781003115696125826115911582126779618439464099895806915448669807212463645085619124645783391064248661267818770455497126342121877149447222868268247993604513465252824335289106830326502374058913067060082761424365237012843573924086206227885075311011425605193034011297551261099997004037695623303395829746710653582244457699176518914027118804656072408345964259006712205747198499814444071561177923077903783879402472460165627464893210145100565800476192557736256644399196089203555509609881073626678509519981868313257120378220333422049888163025979485895233521213798793739872782863926699612748416358829008596652657190030728844192761668390721495440614879230279815000854404145553658897097263586224830686722056070499637817824609344283153579423265440496171618246320570032153261610583646911126476669690609130475326231872328245950510318216439411595696220426791120562647582483995198596525864433299986642175554517505300162471996015934013002349127425087421560466704770618807603704955590305469153693338212083097247829997643182760045698756257978211248699985729757008622039318988521606616106000437695416158397023926179992497727754069815871822892598806776094713721670959816697183299558717328406773283090389313826459785574291423031576087894791291972944691056161494482640585698714589988724518575218642545378547573960537715716545960922173961948600835507385622325373519613128793277438195933582786684735311139504980987615611982038030662793071023892131756104384867631449919541668817441065351001431020405087112822710631522865586682266116590682046863760667489629415992392188833476621914228911431876185514547045687577678893537838916926433001017906988109238986390232368129376339864245585655555764315940427481957196618530167216947349340786158876372807508715111551843952079090184382997246441787387760317266816151607982527651813344293641504608188857559888203595159378006366177322843737438085614719422086302662786914550449994107535688817081827388643091345867093933546220702545277260625291041685937589453522257128321561407929978265523578327895466652827451269813892910342094460883818304480322858481779188469513159965287254424278353743402555712548741118501069800563481741944957417709211102246296213691995556889990263511985235549007294345332527113773230641287664589631880715225505419673545963830481659365693038928262246451743457548348778409734237309306663738524333629840261386389762742739278184390840130777153292143629037123896594077739783014520041351739558872674479574527044102013956841102304540103978512097731277329955539017436135731680454380031329652734254186498231110799894413306566303846437196868671691373418503226581746594705732767655132029400820194934787447356020996079780512643616589735213080784064314385828216228048031126921041007736428366243034466857083207948533658569607055394527955884553270941426118794338775621510099603834279331766388068787815764601881808650102423161053976024955969122999540934925218068670818259299460616799809749213628354218935567826898158129957335164947192881780276610962896859037975101348505550426769536904409588055976823955593718800197888619891118941500493002465133228494393370815930020364007966041578601789664651980812056632180195052639950325129987529630102085160179510378280177780066938486568079116468657490936034370069878293037724383762300850128169777076753786476604785305787333670980633760985501135686568992493380669171716013884908669431526911387805088150712484859471650672190014696158501939479074585025916208896405607005519209015207420191224455995018607600445827040494657298910731263526504327817164332064093582384298180280667876936722839802004643959163704681421952366277870743390142822584304342171589890012999224303151444624324595129181196790632275924562055073259644042030520900125264390689678854313895939066132035116316252095502994230132360186503981839933996926724833110536672611503205924143920997776161649556543797463064372154294457034634519125138275231213024121977663351195809555100876180460785462162418816876604886780655211159514553816843530123587328835513595256056515695291126612850647761055039446934469299512540641677791858169185610884028281236353679181723184216625344268292829287043018766395145255302547513754607191270612986898021764777249622131036769877186551457338940511466265510127746683163688369543842727153950993169132135405557511339504239748137631723346407188264807840036566152506818943405506480265848951856050881807796313402675518911622217896634160914328896288209037421476570876044905313135230194649801819863013046858812181967450721317080314963301645343757326379722320879117141732766512595602105398178448769059361712995248532494924096045527690855793579031789381064999871087491919623631563438623333803264340127283471409786254385592596481681107210626913339970037896293947411635690017150634185076358930462560792878250258518869198412260604414112728578120816077704418351357858376957625715017097335080036135995898630252242547212867498609054646006137972770930643431711070572055788442806544104551746380778812136182297021565729628813936333939704633624244889002149533321789654558027442277965357891483973112998446395493983703685308347159835599068534425316059816144698947334334083243666362616193555354559100529789486356682420903181687190667802258806994808190815079934009106932284330527098182154835238284717349092651120951809744276917630980328159469000603601377893233464372982762290269986241614586952253129625683283568105117888581866017639182836959433029101510922950718668013232459118914651183467084847247893857926281928435510382682376900257811991017483303574357117782497402959507483894002983449318421634614489114207451685475016886294327957585564887636520114418822548434915651529818140770893101087559848747254034782485710640858951760504290452739204873263480950125541940857553802588712245186876340697497076742408271012210858643081551370798522195823616024444796072742420559379540539866331425426540272872880204557825031320226610726910181643146679922922050880215038190080343465737373472923852836168501498048998311283415625273321981094311342431992556288129302418408608071824898904777030262732072759435680378332457683298725186186063635504188480262315257417143749992065445114245801655391538215895785222308141023834672574704036376012775941625940570499541971030888228493426529296293918995963672819287884274505226235266965549202148140364122650942055093382629664894824525722201980742834649640136042064603176699898745182041300759050630871370970595965358228228551407904180941680067162988710557071734897827957669851763702714882843828301419697984881111219176492336205802669833636627646142757631272285039073286979591058256972771412854417168172740783270013862908755303566269050289280517147034585319749857112032398435825756533225251152927767023104245818803233242807110005687922313422301113203916097808362607285551862733923222061530756470624990332550667913046617496494119915685746982425211096006095252349696876912887060012160609995900430237309113350953948838812832979525876902733333919488053459644687248261653261664464110820315444006757808233367603184142275343988644096646363696571930298969695902451490529072366619310718888496955401850086144866566816966278863749405530520126682275254031484578270805887207282682430669597565429016797899110184692138391945482909677324240858196309365276252031242874877544629926956389101113572392586143879626775173138019666874284571142367361245516217003113289397408127750859895396872081608912218434279610081521318302256073815852612220819131990415519451845639775103602119619764830483313841011419900734327632453287220473970270373156572482406523089923044553806274904935523045078507581181657398596404870362806220375027451622640139180414036759634925733820857105586846150116764293030412932018974194107369555139588955351904656048568443850491004356064669223723158426577512191843881132443695465669154478208101282488290305710638453448647407059474457962973394641727143188208429761813249259170084355713720605321843663981089145670991343218065616109968846216403248115454921286300898501884512375414026923695883659487214277872269690566551860786722708527588617009611217601410838640350508178073896364226629218066367418602107146163940439523894230607207753136946522710867179172726467530771218870541857476420578758067286080876581862368199789834365009814608014141499167908069642115358974164810853639240229990454149213223863891501432830204732298224258144732992526285309576149193077630726465804246965650183053723956623437005749090747474823166300857974333245490166176869617500437208656712246320777713460756315756937122710910847391777403137905825941735702932133483528756964587229547279201440223207666723399829908287312250762433238440705673123052104470476309247319669388421878922456453328303151137542677367264223666366307873055610154662009278960720100330210860772615747046693227123236981600498229720331997053956068216895554308688795325357254697665097961387802886889899775164373438467216518777784627840044254640551640363447907228732129615681455322967818571887943803329260955852980191733299162298634716697328852628847579319674246522687282986462357897077588866174936595421933844799286161905693726368763691430789430639015713296444089685573777854922279462494486537847850855676656009628228942846756554372143393316658092125352876484592063759879680348029865371568200022650691985178024022417620568185775920857539726968493980202694783923485734886924983782068002096179931617932456605927171446557910286294467795606212767320621426609777452248468310462139035945682292973949037490672074439137142901481184046897670952213402069248846448157938067086677976051342648410002110169481927986611718558039496321830333077538122121637312559587714151936852235853984269799880295863931240494081204821669360441455585924704929125398820341235190167466082922547021966544852817850331131795060472116980160594906545866617847268342890852695086749430954425959902992759354211854283235102047321595671460677863539955981685441604271176693733601591129882494050361893543654041105463897411450183108219979172724532277105141732785091820148965588741001452070621803509535644465494083433839344953319081875557169880626610954192351819706994406718388929238341220851232667104137742997204649062229138515742594338086095453815104281312546619989028253683166033395839128421577598393623657103691184088854308871727687809832800913268349196849418321604095711859360037218444752235662799876382874485580334951232600152960090956567087905084547889253387468805986888881421906843358838001198124660479776312668158693170970750347879753907240103704842214909212011010161465215393196699946790215492423072671404317564634131554112435719454605315856079505314099133960906517774670169678833025949487000609710005491231592593723705772615573462486452044329509763906073758750151237398950022480798077390797186962537700643125270951995256022700083940263189696693108309090251265674358680391390713159905408159271728832166725042128949466265659765076943298019380044377973125090421502423261075353475802026223373881134561256135225810800179254744072784179432579423297183228170562112526938864040954222752256698817063351289896513560070148288325860491343899498162037110394359440195877446279335982686738200326164815745682158203820479080560127670980103569497643366797505679369988332210849998034034538452619845129859082065756851165552537325361057715048041416478832131952286593604921795310196540193272391675943176569619620140964611456670336317312203643024437375324510422318459256049999838602376784716224816357983637329564668357279022788343005966613464721290181716186389099939041644289171268370939406146659096084997863333581717774165215919902780735970691009681599758711383045626659188783789654607633664750892328254798509280472419834085101672450906062937506377638474955375954532975106145743302859539288524188657944029212359132150919154448059035965372905069001822619821457141119682443549722013657208883878336360667127137011615611417313535816197605966226140945080906743601078209148224442504417519295778444787400693178594240215108044282510866978917203409564404417049264704001110477784669699031625996110820924503564284317863275607433037444636652635261925156601010833505760401764887948134050159614050084097688618737155236065405574231380927326848134611472445998200146189996736504401200035482459980252604671836112762942589439517396323821012792858907253468453826182451686469549746839980492701259725758530521713796881723333548096572694194905822058843831232626353068629638982729652361799424068553773350087356218140347999262392949557846007464978125480176067961772741943878627381991484452714155676790821196268870742046517075520961091471804496726943164759298524903640279037037745656908652526240332282544833136203644355571400479923304685625095467388821861417694631921517087609440301849013404227697085459380581440032401000262812680268191934706492557858068874144119813984385973581927972626465967874524349488855496203085279136046742170351238367876735760838963716051441280367354804047947123503117696674870492010210556426711201630171846341204382738665433700382464353956473106698354764567345998048554319155971656891634726300566559807384084893068005304478338923357142639880427694412308422870630795127216253238170446708505899549060725730989241951413676032779371004583069854442661560513483377269208912972050902686192390478856567202248086286183035472515395671484401795672365562482225974297769672285573184174714406864364864970028620593175861872425504117573231070233222268063184968514409195223401113085029738580261725692683264771120378927466927947760062215800972822337680837484697370437416850840730149398227234458031035048942321909176047716350087503975446074967789309418870915487747312541874044840566031283913551574595002667454990826067058490868396470695756940750704970109947819304054439698487122524371755631864959032644367591547660712839175222386878990166282940936860776863765305599664229167027874258230693822458198459231549108073631836622624236713968381952488245022012772040808175544387300507609420899025564024267148391758600472854258609885593800394921934339459276467801671118464197553466820530343674670808336303395082805614290971608718224215396359089268794792800544544134923230038724774741162212388493889159169970902226224742543963308517718045932559393150054912055760807535138004942963601811447046699283584060278476942151739677622104043808894875485489735751384981649450177147702591050838763614297583458918867923998921074870117256250432661968820807666061071409027122245454114777584695242627404975167867241897872837298661595248182705716721479075834921156529736237060396245036976454439719085687458017303717781239800471357945895516321024082825201291425961356274932938059444833888927434378338587497139238356736564707361959888976107834505352455201270071140446984089655937740517747306177079077834081830520231433764004420116061747943994931322915908646368298806087995066226174349501722489833843809353702486359992302348010632903165633372840195627340153692239800464026511702580581754037902342917228733523717671913518499321243183441863469252684261483938962253795398057032797923536957122967639014578982060999714730591572381808075659055354050593084615076571747448384849140803317559827298976223265275296443806659834624695281418267642629318890296738881088193974447555677442830476205100594846741322194743438541270722936888015070962265582596257692042472159514248605308808889356133714964628800762622947653311491968121924755641682055584184408720521814601994175138055478960412838025532827313041635192403495642449653501021440518627710019394317319660796735991197700574170071329926756758071162215424670833867956633818342949341751201295114719245102256989181383098978634125825413507693933400465260260934464068617610271824581800081933803444284648192057251925024341013225356735244017421680729800840098695090617024175137634969480920746964494985591988923795246484244630797657975100118236365566390203270171074448346002193698778182015731880345446911605494987416181761672589303614002568376767314295395969491631797039703091434943492356245889756083632565398978855056539409282656138240330744894511765409583152736020513893611648924154121403733053196507198464564078971263800099694801820603308689744039987459539125537278665504105196125466767572386815877031964977476276458863771888123883988309347345198197591450024101771762064630343822380710023785637440714348091091320134781067294864822576373606086558458143421190190944668720912164793427935909738848558005844530702067768571256516678121145186537434809718392873648112155054277313560685536114964359501396786867724026107036876860848858674384712815387508131404534009133605705618553847083918745403586211936272783439048371223250237149503194297578617817993169330413758906740786179561257964566862542821424008771418076681121907344093013313695196252094230848463524937763965381486907452251987129757046164673879511069074330805542659439960034978861621605573969327047714760254790773464210664841214646709068828000632531602927206820160631758381080327353393206140823252310585966699672453085424426731374831449487387447828240016326399619540970223435087704460948107250029722703625910221937776650380060864395070469035080326181110430148522380416109594417345904133199022744412777099348262299504730249887725035206397370731173001733552807779001456076340510881568625445340453622175324878687569405383468965713758746332606307365751865670754033214154776594214443066704247868449189578997362001076758572928589068484003596752495409032521915358075121225032649628330861831514337230228877758534598643506310611466737466327127672239529599117485620161380963802292629418556308259716968564241082458495968283351768651143578212919850123519155311774736352567856265643872947237845700513460226652135156790440004968560618033684890946807779411863768552268823065176077038926922169670041266849408050069207204177611942824918659648230970840383759169225393818306643319080116944115348107730394374957088206094716913558207636800818676899956607010060235105381780960496667487267565656007629293713480767086641926094174738125760141593916487680814887545102860774356073511158845198651497418423057067302560944216729359321018298199144345759842746771379763606821276675218218212923348254788881793251734339177634012914540664898699998788048062911130768315641917523505474204866313396920104221395108108432622710887752017022770383141293460636341696621172744131826228325816091433264565358140065649728430551831657525376770593259484544732747486181553517689800137782451845355790885642883578988389208904529076172370065214976650047898732731581517739961505785854822477161594694534735160338756427658179162248548590543937849583271200338941352609286907422774169298579828967079446016422452510649267907341194187268031210300740791301562397963352133366980748937720533120906698822019389486646064202245896222906799397702961746844696935115228208396760473749191255359717666619879932110163367742002582034430260429869926278184415553905848818101856232239887696249729364121705375219676406115942566461282807632199054305704135089684633171958282288597527462891974502086833498903182484395039855552832501399371678670234523073631146821090971681150502400591314351124477870934999834205939864542149481155201613575596262896601061227795962758464846015914214232624863088265168009446520997764842056904561095080147452707392868772758792224248781921549779500542256957000102625124794939331436948982477564657025541347346053659494324703936780809872311468980099909861228296793907485036167100521679683562305823441269242710592872470692950540071394566603417347014294192335341378470372237559301217212219349609997435644472678138981006425592530964575653466030854978479565600715417673506800748042716480706744193682002070069448445919399714252510160294312155782137618879225919217660950291283742933500570694930444923614066597268348076030554383249012130351310292146752824641167815038598230701898672957567909868804683836002657691829017865681309278953374693457605333347443425099941188635147837672686568041796284621039001434089643782711216018537205789770134479175746499395147891404797311312597850099210197134735484354681196153787905569578851848314471268205273314398828836422804675093773646919683330148131100800244284318803413951821700170529196282886620487263061460928846602787216836035638722404171488925382637055725921970939594593390500946801367679999902102375616111608307302008992480487879714287192124877517244274648113569776763950808984408637656370652550785835795622246871892198711674465713915202979839600497758392744351190919524437107506074944593630412705851839162467564985994215790427463111106652215247789404024908919275017794273381672663098741158340993044804836138198417035432804599259031544105813140330955150188424933698795478456879975481208482894004191757979681408349370642056239401093731099557959395957655964721759305818720045663270405946679093983066479237724408369596330176252758596206740135477227520948791259147672419397662931628990890896812758447073811374382863429898045909955557779078860432395699910228192963880228965670711286245107441636989284200024241155266046063645875182538341382464974771174288088236847414990169260414459087133612286174815020929908546279049666524021107031999352320744968644704849053694019602903836010047867076551036575983800199621498253913674412233842799665394688455455694722809851905440728144406638728845762389332484139086700020502744106752470587076353040736573066749209965934038913340454177801786304400536068850487364755273498050984079586539490905043172931747756702341596877079427406922163095422912229791016396336871084004545677752895494509134908352813337291101407799968217525686728855028453703201482007161732861569313608179238352729942954253506569325509598987649190436937200573739244583647134614776825020549826643970731409423482374526171063959229749993131114670027160190179639491756128344764168763058173221169055335851952609499501417915056463148341037999200157364406704641699917879277723852404678070541187152382364495595585990378086658955833102176321659593784618987076905224074749493600221313653726197035122306755790862082032577372851768298117151111345345745288028140681793660935171052205257223871576107327324717725275758890809678696109723175382174594920352968340515780609765080151678594085206281932827033723827800617273864675721561535766912654240191853280837439064323013208075659981385529317881951311629974126975543588941483157653834954435272779651302742599392585263580127606359012799956173165184158578439992388355102725120663218232152052070691023610187501274574920147510663510710723223735385660303928299809659385322092776974823577976779524593083742048561796077306554856444945752154239844822145250952823179846406730912187568864643532376547420602559981682446619740963415149839329870410094453120137424680539160653653560096280321749208383442038803677544279574194730287721199911505041838152055728245211472288319660603536692403585394361728022527388038148666665205742452371321926442273879679905799929350830460611587765742279400373013888176546083188905291412845733231867983315829683668486983264091081542232285355979619291312796787461976160382334705880410255908986384286372747942796852474612462675458606968570063066904483896625644901868697932736547852334936141578453367915462145019378046123700419038786656418135582758239402443764471107786664101289266755948839734542477043854811892721779687975522632471582369243662060795930933383061581191607296781336371181472729636568224665303650699781535607838373467233162501157005574047778860719771889826488996363560934399632871296010411782700135393188284037745861187404952726136026631511741339303152550606919434916709534984477337811060245543758683404955099252601815787044079619838422286544597321719319658166571481335462075087023131327149956097852552537812788291916988521210970553935973461466531639910648583451460868149277955610617899818824005864071290270786537133417963232439073466215186346828851022641638772614495040796591931696712477205665506317279619841275050164320193981654963215021786204938245024135069678093415685439546391264394605889116832791877709939214919655367701551804967378521860075390078044624275807120553835202454488517136640838025168661333732748667951532074955731702620841891785229946871759373097754293343822499810278540444560111364204237161688434785931160319984010334630346481759197970870431382581120644907246331931414969016088740437010166782924924866623892333754470816116314088183054291744247037951616454672169484887947166266859098855624880972002015253583806251715290820148558165818676713438388173315316523961005626790222472359220497902310842975273422282531627024410196515380079690853571864856662363451597488491708716605372701429038575811768332001517860653772562068167728044755042626773328235889811313369201864681614158204533499585284546048569341330229512217795816374293147088931787182786368360232986200116315905146999451053501807711047656588971413651133283814698082577114764367565591014673873117730732223315709449461991071476231875602336516931015588926380050745545083340230320508495132052772092179607099017202677962581277715392088696750430222238306867159287779366490731755380181856454678354426249939518725093543067685899904639161956104576001755118324291142644947013870361073371949450838850857818764628795449801848349778922464588754640358074396631369736478534946746614849926685027814515803752919486219239006540927478430326770450441900331548924339480828722587395665453713384173861005313605770039009769808466280551182271097401533530983424816681509605559055911796698755835187212821239863549384176657333312900208794969533894311397196692536402818686015858155223926041178115816641764080901841891522019281411208641121937932548400543843405075733080259017337875654889136520507699075015547857597762951287384718424594703451521210578709636648243747307658717323722052009404813410058512589894524028783177657775250190443883249155009254309549055668339764152037890943854886962064356348653411342929874672074674679232837981526756294463467501982709747249577975252898015405681814260825350342994381678376732411671806351345089260464592966964575777784542235154159100123488259816356054931353498433924471446767318684946052556542513581004392895259878260069121591098516138112483548439870409237034563700439468696089632066556998281160655510534266231703034941744338295949033143158138129447014137443780715527217501762992105117925791786540731405011080759828607241520356006090122456324664144511024347619311485763631667887505900549059401868243265898252416689018248951947913071339860515587666848668885282725023098415028006210645171569627252724501234739585830218289703873608481585671235806444415807200373474595854638230452093747707887883761506938648147371163325674422196385141571417691584772653971014536812468888984026345673923556301014829347650820119927144740727718236913594722286506917227055641094137060753762449194197279062989450677410637572175310035651175845772898673938046716121978283987411880229776494931511444799578459398882832675837489324101798723548976649483602879501082277380388207255024729487732429993506360871210286341542938060992797002055028251953744323517591013917268794908335102788802824432670505048250307990926543573371771769942683810597515819981919721296685925300682733565769871907512645663893973118459143831177711322822725467128610277209110417643641014037436127883314598178456475496992896892044108194438464502990539067312381726729675050472782051736520373990481247228332901086667400919426537204916781341359679296688880912186510727989842142539886770776769196217467387644835927392321569071316738245203777810484573265792776707178361816875657195897805631058143907614587383713143261768593435845904067096949897152669847487060706940463327527412230928921819359064704729319578086656845863098557647900255825046188154922492762788641605719303976429225946424840540471461972611352916303185335829171582159320735686938881224857091948985744301906297724027609887198181384244869581302738675062877783954443613773086106577441366410616606240777674085804348874089810065880512525689801322661744279973831679099978536135532545680745908652723485023634975864167944589446305369981603235711420081520822734739301981129875614026174677527157594765933458759028223585115712887728167252027292721307112623753549045013494683640121229364554559568221419387620816358000361390194077436445534766739091335348755326985471560428258181756123334858224194475233868577006566186280479888253050165406377470646049828335051517883293731288266590993216492970916742309975097261556976090978389001885067665084026311309702222477737675279075931531412843931433646199851342426955606114805977805930807415941726399888824021279476069317258754060379153086900183686270244544741655036884892082202316963960521453591477266051084877199724033794359956318998168168235094280311990411534156720661838483566415398709099636426860190494358421613091043156135878615467869087780561935196697290436357981922073763201444410833354631883719371177742135172598786787804686076041258549634899082765926689970371083230698940439303675706593328306091142971275706852408645576283790103535691862278757814245143445023878341518154383870446093806650878995537446786955428993099532342097809562190605484032442045736485800262840417679387067890576126053545568165498669828233707490772392148115239835123849213782650287377696669121732140019064479348734786210787948241817418726795604733152084206538942774722455243303543508828416115878944759956543101394348284422722067127494124508481412272486659180400435865971007848893306432967858789408326202170379156955589290053424906898965786498432690577567012200174792232768266481717938221118167512164629901559428820995154767803101079223301889387398769157203484715597288967351409953838730628166039770310475611436578099879987431956950098689079325030052847039311165241367509745396574281117517972616456928883836095356878770241974348881108610235183255558285462230532904157235683246568361006872986020470872791069741713968383009580980858287607711992384008986714385714647894462752639126794808005941383436578746373120059255288414823538948618527376203478795791785220228049559621152841783901849075900937206810039283647711961186640054994567639342329483250921720654925758064830456235493319508019914847989316373213458157582709317892429920775884646975729276445163944359431389817926094236191196517842590409516128617598460138059583358593595538932667105132726235496455217383798706101272063836192357617089410750230448734424584843410430421800776032920961506033445579266300655961713502045477867650981656057068797640870033796960373768307698480351957436420912523188690884114390271062772638642710922472406310721868217306244613302574406367472949254681800049964858604536209793902389215697343128052908704896698598890793556574755076221421454763385692663153052159315481180299478061071557484431070306710937304052431854250098323994715267456563903115530379526789770796032676407054883088541635824349379247831521364765863179195691521690087362700757305851820449772872566974743807102025405648517211252074460212548383483726167408452167345579709841672654255919803773102023371447276883751249970624204793109753199936546119965677445958582694421475010848491174065587668487958257119666821770703522112307527830270655215221840340345140594189079751317331360714294427594955990949742206534889381876285997733756391478868159718873497996237025885745193748794743498932467344308029186660326126141364895590627020908200489670963597019982359099712307149941068517106275305065092989861631425106311904102519481072250944566692655700894326718129670367462525389471085137531971781725431116358724233204160704805744601675785224648917043786062819396468073048871287372362939198676309443944572499044034368082752287252561033193374752664474564558772012639664273927953366162012209322790586013463900504233549414181811586408976595388935311328376268136219251549880522474718755575009963399463819322038377065818576488760203451261983411288375178860125573678880161307269877666713492861960671767019476944624743010450951857955071675202389467634596038680239847030364250866679522386704584906552490402467416879235377600296176739564253199846337594215944563554221761852698274500871703930932457318863921674890666760871394378938342925258822583895333191889476831705453504962306853576162648586465127697892710674184251504325986757742376008251724779655273015253176609464288882110219120651889598166756990539764440699071465183370510826041882170252230698659102973300003398286029606362847684353735353214118360866805058018280090710687132121516591534111695761389829897351644700185089113196909338287196131081134418714539892527765785598688806558048188574568862379413376170771983045146838375104589219286215122741822096200464535621155571022914525718157569509592032631446506229031648834421318115018465548937279343696831580887998883422256333064283936874576127165737187417836597944254262534755606795752619922931162823031781961113727267228887198488290224744056405431418665501895459095217228679797130196610051215692400610847494463007042643256671707215614584265751249379187122822176528193608050576737100309066335279704368076533877178501544497806435537645100091057562203993314600145205401848135444173353423052072808293888334213772893107066727966273672786793889840728891444494510023044741489949191654186977785216079544141797823322928021017941991660439782354251850243595096735013250871402698509448020458181104840178989558822903900155849326482863075030641013602547485752687423597095827775849431208157653407600870432540180990416017573954142321107768711062593533705861233404719732586513471840525736902148496910936688208268374279152159860993128365045731275045517539293115507605514931146204640345667437616707876940555131107209300890057588886340445067352069088716882594719276220607688122984196587019178160828220801264113798953903305886163231787515303526634024276193496988428191149145359170875579007801030373642691378510752127230070273490913816020924904488073204088944624340631981566768254607372038923080292806424602348265659725669519047763081671517948860359472058161874777407579976056322940163527989761631581293204434859783795363305512986906006271687813005920917024941972745455446661947138060316287674415421578813907052276333934725790289418596454061621738871075825711882798415311705186125409134644854855428097912158199455841568930058983431328194557901713503697273365639167897648111588363503286945800826468128828574909326854695054059195403249620968174219738909021667599264845004361601850847797764233829012025250241012077479011767910460425083654108463042727446354791549499751650740748186382975035142091622273773757522979488209250564555056446970228650612175955269856835934385443128779414371806496075363564543313314220961252540719208133953140251476307558813428240537530550192675525844114739571340881612172568203281767158125453906820348108327821047893939000452403883639490881980718040281942116811847359117437360676146022351162209045084851968707143021241810785923648920513469547530950223439559008874623638259743387710983662504191819364497849016668899984223945668758926488645662800202639816851570221714530223588337028372534117436441413333717613320740208192829482840834065254738512717739307063421162370677064402400334217227915542117094943224739672495001756397860634283394031847425508298032525728943464464185563456874361132256573017138568346416573131193373187952899637058124551732447436268728736638887485151061535907415685122339960546178313727601602366914284239914439271724201057832816633399495838193581501779024940910624762959724210553249532953073153850671897450701669904895754155173542550440512140325069617328427922701558942803500398723712034072267077588605300937076990164466494364427356003611786904428898537559562098416046212835738795359167279536455289854907487897593888140223167866408600316814149321525334752259283845184103503495034106304939565243026639267260834985089055222532346299840799466133866930146564328051842710533514206833882058535230623684106042568029425589524021389551125946910520569180467957198033269983104088745900819115990119168484672261401404544077282211645281301471141132209388657626713840561471382672691887820020029190182338683287932140917196926787286832317013901449157574710096383816406486566782297539672630929700240756656798428187983373668820809286933697566986594336521949550727457773204247265290787498072545521493567288725989044343469694897113231331734963059557621461769056254847435012002221686708593680867537388504320249059219097659049747152784391560290727198740843781397926014737971138782604051047604154174918182757731924518868993687255946498762318818844331265371323992197391128760231473298774395872308224427187342671282419088428001644686010729791420204330223610803912476406732646835029232933115751186375997493592286218209495781693178143657617303421027780780840451921991641642622161765151805255878552421277700813012998482461861009982735751442251856141545927414724471513077973892198396829676707000294829605586239708697923555809716253503360909920395033450407984862658147223397314233337314410484882898056117121187054942347496910772773013044563663284866139198060632880727027375991350330972075808268245635944366535349807236190285477656372645395760153967152069811597929538935100290533119221565404734882020531045998440762001849725610965683413766750291066894521989567804425927871549175762742413714173693951812098214870656233742481245309474122991118681334687152670820551093482535201109333496113487741213329483558164035450218603974164495486437349900179897765414395109024643186205477155359008392718135780648103309067091409570031099075686810923235684249049703545912701527377699163335276702074427667830392311965082457481141184768911493825821726712919389426985750346515520257826565422617792386856888387206628237860910193687787619427537236086136175125842528521762952176359579215577097765957799378919060561473668759013625947192319384732327113381682639172218731031326833756725398240227047638799335759694918905200772609771945141817778552565613260022524149515596622253569662973160873303072982398570009793288637374157432936004875996929774954803275285414208435371301260611194112935557873255751983954846213296664211713275677509158507783536856798320580960920080809082311755745104985622956037179194112135157763188381361321550726423824127243303581850781931835005481141860480176557330860896496001822080545258094996136679519250351557563354989816128460604236781942144613699127410808866082217488354269210688583042221256175177049034930804873965252572618917842550617799368954328488048800705609095219135907114804040245520490615480545596788291594175458456482608427415762192297138244853649681756288354805458529960396426806827963842185016092328530510021709503188188896204598843108343926228973863807338256756947493363740040485491214784349371117496380465263308684837205697253955383542967269469798132609405686654577494815988787803700375738110559779939482296331314588192472506855918364108263783662792650756846132378826429942397723279215083361482057920094330959423217310901248146786204111162903439792468703410094987928736147512963178308497346247254934171853073142431778398812019930719429334990134607794859700124243147984109790766066697841349983337102279968947518681796712304719304843322650708842422355289156161584139423423052284941938249857097420820892763660297968887260235692151740771170257188923374996564628266076180799334430912114281431771854230590877815019644198525873381813733833046866003603478731788456704694817368971460824827948924708185706897153483358094754629835531144985524687473314170818056423431688506208507093042170383198624772116060720303639862180331371362819428279259140878271792261371946042335982689805436695607767112796631855177684686578545848498324951521384976058036527555170440037137284782761027482752426939871247703727651040864146810413266671617747971378243378652296965315256647284406191524193837323261254545472526832187656817149325752161178200522183023189936818098878685844632766850775957519832758567929082522994919878582675153176822396490568363222706215275589199031394020435585814889725995633107734512979417208670630825804911303810757326260963797151777042388884365492413074429323683506011318429333074414804030719927913544774021962877804410484664170648105625784867381895510321154581366258669903514699745214800843031064768767062476278065185257137501875167125720836374825942422237291280778542232711586982746960543427336142036503773809708488224560255328677261106553662350661906016257710387562341985404430133278079413280485179098720729414788128376533113279627952194222943224752288217813272459374323239863348106373171226357656694809871414876554265023038558862479689002010541511434222988641732386278619158729869758795144984987461257756513762797672339356388315373100449784513420329580865271837447064775443476832528546000618689549862404227271592363590787465650476707462694085473058214432929199213721471093396129377815645523473069253176650994946447915146745767237950143751545128378251687250684461873146966600474642852608284360189612960964767750245816169037570590131282816769101750904558804236216907250820433508084499268188134165713919385455011079027248468882810766613120950545625305109990427286018475449403294448490984925274980650295662945328573055483532378845195099625992905176672477684147939104150276381261511032377853199974772876502202432606686569429920749699024463380867195447254748122115448020924572868465716627067097853471753399126975986451693709247592776926900989694009172578523602252296566950486986711247652002484728013250395633095788365322257742749179613663333423638475295037923293234596912238142683585771082571603571596583282722843708698352149906441977982949430781970767988500146613563431432941821932677636384306560849531676460854717988639562652992357630929412228174267956023121934269470314467208196399572677243232018414840985613712828752206086210633446348568882465060815229549527859624938466137518894689087699057748108164252169526260545181074599509666635256524426003944990884225474239483431874746873486230108123961782690356615032794219841018222649864530319483066545718678609280856210243227335453016157087251716395572378655400435135067884473523623859765450665020917647416840297449484719554309403643671744681143180238299558835759983619245545085460472758650606767724258074691393243860475109250912620103872740388457829403595865293011119231144333023082745784891371039606096956670796252670316087155679675855286850509533900096068297458677680675149511646563420256176548057036634904187250387527696349993015198844693170002294629325499099190466862571696620519854597622923766378922802409802386667028360407948227522952409753660082416800775643514179272228234889030076119763406876382224531347309742110460814864239612654802489254250631055975576340217987776189305125905011969055084688463159550939558412411647496839814879353382509294312531307158443880899771743574810777956995395316900744040768655232045504666132805072225023484558927421664479915889080174321847992567908280229172234833551956827971505040189726324697948198838001395353882739926872840984465823901276166609549917111278392439995804216680676479300464683697661707033505036147055321476039668203231641258208793079401543915262142196969384170191120820494352689519887724562760382750465654645831960584000203351384083046823330802600651399920672884226849835365395551113168083170397450771951230012176540054675097141491508997006883667836382599676331895290565970867660690221836405723918010657556955065418449442923649210596823799085121273858903478248417627024216270416244464015165648483867733784833054952015632120329522753745577975111801743293999265454250789492952748640757903516407925867102793265333862820354753330070020648187005319893215300415604832623054294737963690859197756843821266413469835929934089122999068935075045666448679180603596033901235015050063906548732543987328775701269742262809093699117658208790628913341164715622303623588101286210233699684081734659736215567781150922028546750978536100560824831980671981706252146549572467179221189445610851757699378353281736781709623305906333775879987330082156954429054594755420341265368475934918077377596677592695223631287460103478489281341275198902782277588571271678956783451001199311900177516402185032655619132496765868959978661118046062819911878916305237899132446513058186390467841721845476680550780074206925704208377543619359770671997858028265469155988819023064222898899516119592712978029622673558065456470358046742428023826327829451631425396639878894218789478274546798698843503024117103750289706017269134068255293574589073589730802795654745098468196985790414323974930257056124984302133303684484037072784802237045732778776600486511607231588191097049307615638943535100168153579638405908218556928911567621677750187940083366269329378704445678426225634936232841414656893084414752592461808156060276983042072576396595130878820541803500084847547413970923063360736808787061596578530569727445566755545025550701574174258722726032674578645754449051971331164420476951670382188454294751176019897519073076051095746400412462070956631110243221683138485418656384305711455539550723748463734184172153264370759507403211047146224019497449988107189510814027526498538741688629738828849537718709074454567913018276523873416856271756994806310644103005593213143072994982342378898672103138305095548653697069167027851888200024748272561103456287630760746803965248661617133322557274173401171169739454372519779385284206820688527985052220904219323553019949975097287692477118198984011220056537658415648209616099989029602362503609540957173308995168399482074860055694197002365442667556361523094669505960017499481345748101825146459415920491912359050198763696070292847848085058922726872712367339375253031846277033441817117622678327039309338093981155764840514735619611184460320287868411704382807420426235767934722614459372250832345295928126879307991624430138608916726770675355404036014491516851581793635463625371437998805450157075731250570796573904640777922094033375974877200830089311845193970201212068188862115037111826438252839326118015358896565755556456544944185595680651134064813119714929695798948342673359017520839081146358357308421436838767663206442219520400591664165247983074310101321407053742102001865514838847046618618012750473378949620043201033211395822551680535524985659075803269517259816979017415637068879257893755290842429646474419958767289033935131285328131128049940860677160008584786893793189426522360045676361276050441597483320072631706630358737221399884511571079102115505481687069997714760543664421002113454280914430415340627616364675418975232663778869800099541044326590726710293036612572281444521386957416476609360283810368285287643466143396888157063999427845093383003220233815719199263632146115303160870617256073924139833750501122688922713954094635240838038020267681820698150208310701153380766283566200832206451857904248690278038456383624421491649717521995970328711483675179621623287398779182908227880908937069425167245074950304608854344524832811225543057722943630223163675630604760596921292469111132967098031194379512587222340697139892688536014338155951344446910040496310886281525708090586009099763640420541201870693970973539305337731355243414927690026759242269805207303802706649564839807495542976053578816458711068758328675635336104606264525993593290556160714921189323716928824188559975964584469851836287264217096136541261576311135112956697672960943485387845081239107678112652684417196432740119590427507658522206417046219494282490805979135063949120343280414610576915387068940864203301453384512253232529996653342923155396511811422223163012974863469905607024863898520905925191510435376859400019524001914645995903175828280628671217902311924256809708067704175900277168557431208431811794322047889478564135267174014795992720420472725989132110816304258346143104924964498380620486782586807333726595106205106926773131117539783013519058908144966451699178555324625050927640677310304119050885532877222904117362701746872680871921132854343320789563610625044940205474980101656253244289049210900578590626080755355970653811419744396742232593817229664653056039855705768772189995561098481455823014060309457194902497894824037268698496695883006853220259328965954701141154007728952502880429631375217078064942823138041432898498574421013537686115471680149684609776981211495495555804870343405361544060044311142888356342659017876595164038107376555059887269638971416660509871376356438356366601261841480971852478983913163673352062142805403312122349557179929517455292997307417328509779097408681741487292380517079770612455990822862169710692052367127591796023862708131871908815595359350066286169695520143513709526433915334513158921303167775235516309330060841301078150434862381079982725119014668937265028166151272364546027953377824194972637250894580075583772888492018888027752978522159515278611820029135112263064551271380108537432517278564668015416347855072487709670110288533922378823026152219112376466941554074208366822372866267239636038088374467138085777799982608186799164019449388982586284856323633528476666260878970668786227742781305260988990835436740543407040686208038410578630390062732512222420014860063722592144654130237024580583285569184626829824537033343549447198811881786371921843837614388283578803866957752643616515656957142986102879430611815367618104806891834725514591876010480318381974960584371555426720761519339794698586027793347646439112638838993163304987110361345102996737299539400593064234841045884679972790636904451732584500721813092497180388193110540096874581352654173266421108785382719571940896991179371268882638433868898009770215147959373840390004609293420284831673574011932844464573326329384439539930404316451868371083721868899294160056261446687144577972350247685194628922187296563098139422501806522546196730784232910712241482887053004042258609856634062537990943011254453281783399635253610304358305013962349795846153768218033475472752528293006683885050202822310389387189705542751394559478459665912864504672980076626589308440386753426896297213642514588177883684393923596091251763325107143030229793703918338680888743209516751062026793946762282354870007403203750450381771746385497344339899542187168809044257135597666256561903148406528580215273627448675682074650813069477784085976829497168494192792550829106055910606268234788721800990683715545823450274283035413303182140809189040915078734888219797274623026029412431707424743399227630135228386397787722867685190638663263506437939714176303111090777466024769097839600656124710959111809303992274767658614068754685565125589590224038502909100847961084637631555097476672182080097273039458662678273554461981365153698523291142253069329701355171739896004410529309762363873763768323764578788952866705757581125136824806371619929030023421008379467245761993620982429865388827203121337066084092344980245583814202936718077830873627393407633827796405915583458459780679672509350237586411437868363573228806734994080891136143154842130766688150329779996782665677479942705615198106960287649190361751785668002840464581911884670035190632303176147728882333034509310084432966202579299049652654339895754143003925093698161414057632020590201766750588927401805120142251275554309089523682799895250869808836590769222162559398831352862233018751411675718394917853336837147756097247337775625873300289683845561093897221246111620313788154505485872025009779978671724974200011538986560731923284617890870434002272620015085836735057863140629789147957935747001278041333910980388023464053142461190756700985906558216629987677011991075840722125417929944617719753619842580251749886677251117875188731919251495655598877683331509030715109066816653558324991082164676047528098914582486175005844625866259529112919112157550283192546335116461987498445855387776700109649209385736308462904424606874717942630657248675104820482047244743052764444923004542536046624903590260806746164417440410382678802940296562049891236827004745590849887070889741069775244288982320160501828668154181067094011347809494286357045634998346128495342040968867901729875402012047118364888019463333732651838937368267159340471104823533975423274030530895570529754240072557983669285875451447181215464180213394084604557551794801327102300027360108536544604251881685854863041343883787438331985618133086628792072392762151473065209256222535655024804894284241301062967911018303131716754995228626709235484792714036061150284475104560400423774209690191328508756367294625013437647315318636958232637680273559067816048575841432610573298619376570970272331943923061981821642257503987962908990959880023503505787938397288234765327079965871331325496852734608903389123879024174462604776126458861800344605676566471735170574038571471036997403154893695116925954344308289747591188471710233981607040511739366275219200053165474594012196488656384861385851129113580331582650347510499675835867964460371411882040421969135861248628336782179806806674569315835277253817467157526640461681637195027278361577223143700616138630087631652470856002067569352420272004323485245418499445083432557592387309805831429381118063331220579105071043498113967423663506833687438729215895616338485502964662103605773167916349949316198453819990442152737592647473600802744663896516861278528611438355714472452066864514181035152187015793218992481260774548240729401007934640529219831924426927296982169506867428563682943422496227233715706085390717031044365045892722998701808257841691190109950069018910033051965433485365981399168309920885423338844777405609654648500114679287819797011831330437794795232620945161274660401832233579607324231080801575508181325716603858870941001846181839557104685444281893876972078287673314744495238613265599221611807510313687635843992074076505767246574079059729577992439618939388811949762167435212260945576042357111963976380867716741003032886201669665096347659826317804413531270294956879079372119193673384839281712877124205306898374299239729627522418664065384756623548558339724871980999407313022381975198722316919918940463606587450957753852700740842242844507225064286492429239103606642177994791212362546873137255706554254812581849336043874384537446574339296333954130574841336691883102332715405161789335548359572218315980047933980404988652868537612194756374574775099962627834041701687197991492985492130410588274299541549403160559406968499343128822052281020780393606221283446205681460554903965179251479169972725937223935347494629907931661092944036174852947502048785565729782550486487429975461233442043109885443314668334011573213723468420084463121271744338549487789261199852237756702347850394357812398490962296328619805006813284001052983606501601861364181896895532593589751012065025438011142777016182182063190490880152468520407395965336431642335509178581259338873130821684772705348451597542475001227795441609011530105580941855704222251179995412239292329370288456827463137162323778785509234011518799073299112080494389056685307903928641456479553931566244251819508444756190786645914137952806585591952115673626805395957090278875088561539767289117914977212283374572412936537173130220874389192745430761472842335545815546894402420980511959685167718342908913904677785464666528003221883932328920769179696327871205472588181039247459934143327998828174473122024451477365493164567067545718024205167693101416695077566122819732119806481426969355065807707928117132178968218422446758836769275011468590542537861563984930556572624197311888185588896818685360565920027923590692956462971459807233189613374796631913229679624435279904076249908182833319801365287200870655486452811538872198458209367179793249862901388757704899751178206403542123194873966998887415611579481805744987392647563041276338353886070075861435740656474134189322166885036781357065831646528557734583978829080533690770014433962213023291501679804129765606156579951014478514231841846929410294768622405775007390176158665001276333676542087399330055695526412879757493134016187490430976307395028002695597155646054903703828435006295869733115295442253116390434717957151856323122885686377829310959070249704248867959565061056322687851295830024533423227807776828577168530898613509487989503209674183808424336344959813481117475301396367374636829104054660451906314744751954461030783087345672329213811043686431324199477682794824781169285386100118701206436795591334803017715605093230878261337698871616029179631099444972042940999098843927374849227189263537334582741668057630884404620599752790676238796898771288169878391493391944459943490487953737567163543002796110421782964490953888455528011920456937953484270734677366151067171143291281014191219485315848555690689874989793198697281339614618375347599969285367358937524943609993451980642947792115360365709866131924288114621633195301225946131170057158481977498624405511574770010636885154349879294457903646927620593452561345005346596098389926875755403547550859398686275185064562567150626104072930756993075200031941788245959080373826008433058721959569541129320192299872855367738873858376933596679907280589841799917809634401692166096943504634445315654480622229288615611965358924594181777151501007741010066952146103067799296036376412691108165284767767197471042365513709355029035651535794122627618454649044448030011469730893618571088905823763919062834869441027241037749907604393424678384430233787405312694440019721368593810979618053455312756556536498612882800640865976091522612964885546135749276924764911473503978385135737508168040013212968526502672494012310790083337444990896857872513794624174138793278044831511458085452226287720713298168244308493851408741938238279970399769889563002149880485440714686531685655292353093042147478426323704630603858083814714422641815376566424010534647103258129207595210863656813951010496843295118217776953298362326762333574421829446325585943572607964947235708835924352168098406177494973654611760981782548873560823865145616945400211646493429316678850903495062774082172524449252695379734474959845103059928421908751142786648937760168197093425583105465257100374031911017722205156406524302655935488291276184582317740827686376989705197731091852262033467131593722606513050795770560720644495338644582828580160929801977197382021190214029802734687449737010214442436341795567201879590963581246844835771827051836547634137863130482571203296506923263625983421632646610408859042607685688959833669756025871922639947682447045969085770419655330590717982047645664631597287248696055426117220375609827506644490498659258049084406804329532652382054389774625195873496447058137764032349529802993218581732459764541476749835246397131723576962298062278934846494169375142002010247814956260026448658975564781226918374294383068385731194533044617538933958459220461691544398955962044070422481261324066112473866061263824754590444918939530109286640104202021691582899689147799518588013262936440934363787103262081916264895414864349248346541571164336163443569140288523070776349378937084092395965183417772545355421557531927425501163294206398452411758176569940270124784670257351340153776278783646382939068078100544665546237971234562642871749008509093455175771272276953761813656349638907684661784716468643898515867704099387916654369101500437502158068060490091228883177102272088334883417337783956719782602499160152102183412479325880558168042000426252977851332270183963764843583744638590900857790277364304575737202392389296803737297017754039329155858557870446873276244184427650339870121867600803074900913712723687159860118474383878283129009775276204177103311533443035772605509964004994216022080397543874099415946419799599350205716230256599097157624329031054558272301437068611292037620521706550745076661636509857120764368549780297893231015496772013082436140574987356963084096074862527279821235126568980238511536900829404907591750599286207232575919553946240564330665036409433415419281297816532851497182288259825939860413850768867402131647817106717918450952881460693149834755232096177130544137279240950564725430374722248597941815253936142112183317669817486649199091525698216304416725307159764725144175214509927140333758216865987481863044999423273836762363241217830616959165198729313568324072077015449711106719967834614068730434583934917823517302697956598845817155826039382281345615060273200375565935117339438813984402116657844951980668038547828239347694075174832441146021362762797957058219074964846527791434813465963795567221440953294350082973010522799843103698441340959239388879634799451134896291562997438319299687181203827170220031927197652935844939358372346901024300287305373920643401556183120028321396206624539153051332578250073168540296290554582996285391102760898890313759349334822097864138377726163620391215062071182655129804405684744772228327541874972272100766162982411003774718890977221451408989441703422103256416151828275822508134456251010680146063281156064305416193988711902988541974271591014349382709042827507878550901631519799306523458088805873867533392106881293144966733432125372506747310266311106498042131818071451108380220831235378878915871179772473593715229502437195525748137516983139353644636449126629802367186103326023911727404485525368842391118123676729937067154703734965249310764432632118812767113440550244918744047529421997775490176113982106454644767088986051459602680341697628149020738831699938503155840934917140249234626076660056294445992786568165856138461970403519092920194247629136136914647038019563382265056755011925140540266374740064942419053406010967951990934466167133159289443631839827147023053744961110245924319981992250785161533148159543518835066171990933223585452983582947672359392603599366208519408733774224054473319208749772833069073597558871796647418783789899514731606095754106490943281021989818558359051972930010227420633387729786277148963386598371057467603455364534790057230313934051386651513105003792601920552945566506648441661911491823727985370090843810016135873429949791321071978791353792752725433750029716290675088634322790160980293502901290091481386209186435336679738169471193305132746341363656641129691513981086872257389499929520733619464742673266220033725569508510300865113789168225727230763337231703924315131130871866329281481104977223630147054226324708511498935889051157351473411559642891840638978516765721965575476007815778325393813716167235833411716709858729146436160119852789053657793393388237490291208280801067983486307291434430086639521260416850362057752334256177223870143299787393502231371550747124528092325854129581992840417399018783828383542243830104311893725605147362915385374774527909701871047708362826731228108882554008284766767566603641121746826860390952337622867643389537091381874891803456614481782664205576019413220610152043384075983845500298441144523405485290358995746088204184954812937696801488953614193467450661229775829657501051854111637243047815642277603097906855453520013417425583066977028096285270552224477754710623050879501689911337487373739670102696158551641997257268604233492764296722029947437480324486668051104363165988113944648766125847937283687393806292561226193470087834817556286214528139357555120508217434600097002966864478570282205661264341437484772299579111262878738147360294086953933725635613820152880317274654064968626780483375925417462509248371589237186630280452661231739917258835579046259192214298501803218265459807245665743032861143056964935692190665549641588300697222198668864786203411782814571756181160122681149882169027876584716830332647617102271930217432572995180015234957451424921582715895149959587493989994570882135082359667184580140809733301337837093871233712083311524168540540994032600118323965330926670265926342977456001176223804886002586409105391171296221187520194420045194275500725975854952922953113160338976534932763632248642554311637063934589035209576196994929100613433229381189459674783180837709880925195256206743761181048803475611133884869600673342053535651303843431895940796453761053260382222988326025044576044861406652109476812505668064258621982289566943181855561694685117736526333443157599572085926987903699474159614932150467473783216638432653954874200016055199362383084890054259256638148401010112631936146683826540888597865378409701806253832899562123077169240827566033055410480587921932374418480751107144660010366380791515955276330250409887551911761089506729608763477547288115568608667297599948117008397583497322411866575063338694196821542895584133313253419763890929982641155546478545505771822035773277439022374252032039523901670130335060128637935157951509847033591880371141974705418699021904896528653018529093215075060754853922815773609578566778422064694535044217483706115160291777811493226692490770163858997791484714223289928335761922620360862636400357732486779278379923159908202428867704000694589559105222721013213167079839962369931609004861882669612088011347545549441510770000738595197299156024554620246539986206900618935931682712430475685586146321137948639457260881079655663887256995804749062578103912968305466133687386798826180469073710625988717658899474920333301282311379949364712299072850915007855498588907431723453683596786023111959226314351380883354526092628354019134355225210130615029155259530013825410118689208933755487127606478065137921931195650067344231968530822095946348169799340134783602203577598521414791009212627187827534105553118554410294401507524009201245332789362233179889101860218688567124304058613730607842363479729499750001662889053234863040516663538537112355905545168849146154696478603004550439378940017038773998828532484358716802195683407621526509777535109634215664171397735457374155101098684207563749227122492776987952756293995438845308395461097837844863192823272655084403405055910170508221357678854979870782287076356102565405069112564897668537688869759497542372765646776867376542418524066569936426463105349708046706819425053886708291790351217788171830437181870973886492436994795423504745235657454551544253688852785425352739155018145892071777864065174269299747512412721038347706120502649392565195219007135138471529069562888890730716883911748486621110180258026804244542193449273391643865545328956081267802324549257478853327236264723691867764371451486184266371777918059119567056613969715704979784163490575352704659572104131043403947078548698367622570775558153061454702464754554896075314555499643648486605180748293629223188438413134888104711061761705052479918643311558449406585450602125538758961698042530665376147880979048911021299184766987713547963228998765470772494656022908560466861894902075596954313059503894527889355866954966739016013133964284613102905471792210910238454331101505818203436819894323878479672075636317258219418604644696459232391769212297586828237224886573289812496451989270920322863467671180273169115211877601011116294675069935911873687471717483410495264962716175517524138413777708721920667238821201036570963415748266636036071078631680448748314604159744243704089168389637450043756903888130793651542319996533814994885177980061610890412864988989931709211728842004249290031250308919742155692804426213135520339005387641182437080612711425172939588920077884921470345998365195918570708432903730745490519320766474986296339911354701527252331805213050030679771061413518929148189816758503157914788171478563253794319801293089548943283867490644342341455479163000151185576250064589733972420251638110200103681494831788566068288707897382457019471658439720173237368056599060806779739208521594717608242109884293117424962742988121223502000032672139327924743056790643998459712810834420121190932212680952370169993183407253788435167941886578391903431088206388332419232251977493354713862153653655632478706282863629815632806005312204347565814107856452594465190870889020560380039457445107025117035917857880879641352571436248956836048467536175378947774283494748622265665525678922998417636793121652202788526231567790536827412247832544166312215483427409496733467304624732390711089875692465649707678887855014039479678941690983533172670646752564658742139115456068732698203581761544743017044584754556279272457576240120457331022537157870526762042221969078098991088871971777475228786285759679166138001553648605316039130577937721650610460856216058651039264884925757126904299108575319853019946071499670363144331273142011083375394814725347482727781301700772111910116459068222327375522713698852618124330312610920589660933025754910968911410625174781660283498040459489649353658795602830126201022612957267920872160635018554342848087520634346557221537010083141888512989465505536204540029145583469592900601182220317208397404742208770102219313874503255368849806199311266536180150569746808891092473447407383970799975905141762337663303159235935963427796059218526484996947991007987567043906538405518689404392217190897798482189031703860812182213756934301286195830422273867196178431412280684558424793529447668944224934945247467022659567405318596811262567362653547826554900750943930433296108277324832449743049814739174747771651173413848164425267870372995785073270538841073086106310748546615877753945746562598063367820715549171212772594585466512844862599550428802053244443299332442754805494236656681404864998490080130916916108655219021194932111999136124528118305328030731305103414877019021713140035531438985969596262202820713668496869497550050649306968065789670350794946381258212624781828523991705254696259408294069377837235702279460299002419884826547737383269221171954423262010398012407336660204265307896713314947033777497376677839351594572035918075585089074286342435564940194283170610957537790038087421232801185751800721078635066438679391198238251148052105743036296051561356056891896947023089643137812965054627978664489992073008150320257096490787875560313123259722829636574996941002215392975530928633925748362999607893290057187332159688732187231404054319317967759024635750960175139930496485433957529642221858918195485358658686850451377542145619259104096500792112082813211505814943427535069868052488000680094727825399653338937960820250070933167421512363582145958889276758240680937272957279383365263079052327733324590245933879450366510267438016309714725868822968897196513403643824284683515302994236304842543748900166346103709419642496898866487209055923455776238468875543000300750348830869461277557459893244865591588848278672576125802072371165461668130234049719805659265946641713589834854518727078352775011596711282433961723879619783920002353104934450254663104186932249573398153951910545835029836633111246227754832913269457448697516142896752966228902938092242013475863845630295998856515205632122260937749422650035113203585938206675126720265257876951273856132074368660769201637706486630826495850744331228595462768163669043939767588902294538615362073483184066686777620540255072145975041114865048707474246433601815571941913158665715347836556564824593301564019080426275887144950795672068343649334206595751403307156385055964721957972183006417525351583175373390358164856652497146648117410115758599011166800340456842743134071147585851651855176965925475572734290541584385431864346835191898069447415804049172527940296111473232853574226215838640717088015389762122515748124668439791358003282166433997550665226053352451901617617575949996043251284791127548229630950393663929708846583736608026151520492992483078148300381283493163750739083895997448682813969001927663010318818904365566283575643034435980536236543258711622902507525481489906491210525041223104169503224181321695555174157355694596821319265733372296914378308841631212636007201337816219171630265440688834060062368282654058432085012920212636960689263027222490544938296762250926271470198593566540289837613330107421081846979753832863472880699524741575927601098755818649929838796392746170868193933293802137560366010807145925198566208462623776122253959566273612383861282068126835315006336923451208168325562057529642930540876816993620652178062832778271880081726142367233632167110032613815683431876340459410817257142218384621012446079346383567901701585529905245785999401824601093659661226418186001864751960452724142078667901372843477480117233310099576378542528188942149850519542119929851891607507222021009072186398736021101692988945859066241083825219869610569854307552116253979451469911090678774221045411486965713425996577997454433024967079074350992655745127973979381853993881071954697701936897143403138272219345797361357463609759262255448362367703281163214639345108466696248484587630648637575612956831483142069619022350342749884290346789286706693124741968535840463252659253193847373594472841944513502637610050960223681674785972543051257510198567707434812007562036458530228751017023069276943140788921989706047092895346876393401491273599534236530888546570712151209046609831753646513130483051144171206471814805702073874543137535251474152698558887104398460692001641055860268116805430695506016635859292556342928041773635835446314921778695698570865677502682497845714276597604315807040514032742535023946681824043088976515188039218116877194195825603324450088402157003728135189063644122973738786265016740469828393464294525154816265809398855187655730441742559736485339062783402354740813934416865320461802287302075241831248390462670298530342216798101860457946865997863787433264504103010278026223928532501977898651624613634856071757702288742113370413064964004849032559641436464518693280690648896157964164620572353988406954853284721266194717917563351860051272704912009407264092592397569863988887212626145941937963617965268323225121753300560221696463210241182195418479835360589145135262206043681088939312562346266288068228395960378886464472494889366194415561552288039152755115783134545781161030632089310328011694407705559414492642405539296535543982912116692307945982790959377025833660400967612015550693762202838208824703018553456967064600246416312059117436810852244694005525436648020449780766850243736707593639367491726138326757122077214056922529827937594933091150881591076606767183547835393889576140337568332158109381982737968496973297701946611274019755750201529455614070501484191895030184546594961266134387086878047458520571967728501781494952563227967545996741554044863253963903926807076840984296113794023181163100909232001789845774583961881113597498547179519181345175620819158937522302906535295266973739036199354841621771910242478988455322445337593882313858402728490871002302860688433185892020584889535280726917614944626242337602944646695921747880290608138070657449181766582574083208359213978742433555677924923023524207429559299080711031160415971041228921232961225663941741200605637600235966852394801864707252222970846566354794559795186076882597976273379189010060356990449645153024266524749441032123667301416356779746530004298821430355790592214450506304606765612877499952694512337590373417756926243858685538826455981004140979522120867652275022971958272177922939206416208244760711262497369172726862433208734214839103288394085938621103098673276030544251030213526375001588304224224357775149374292177616012328774692477333578136461707833862738408873554351634097498110225587913388670864822685002485694333046627051451419438281845542923197028558480453134024724691926929241917237706907068366919444138859429862097633020739303620433637805697950887089132461418727078679314341035257872504452353558221476660854992467416929963898042544031426965141577447821011604372915928171219175871710459492084212043821020830625906837780365327454095614709783914776840116483735655010289099118696153830297697189907098304233176126784993706516795727763361721906499145112774121006414037986818407494790171754070835425276005500405589706661721512117181014924322609817435197659099361490762639332342610505552078544212592773209497577794262660411545941891146779874460444814122546431666949841583147921871342364858359403827420066683102388986378840775958156450097678105358643490211952113989441036097268805310906719470248960824530365919368321448827492987266951624644690588926352796008908651682055170231453900561503796325438164903818350655658617026883414782167527770289815808760747021827648116242554467568336214481089140787763101162742633760496601747005571614107872097786414345221763712920730701725832411564867374033713986417406713617065035982509371846870289967451468610929191406235344027146655987757326012858075925292804079389753405027375043900144671465815714883010980522548516516768878705729913191965600656428713568528626819117672857217938029126707649820327798002716165558991018081471204328937349060850888641585461632800760375082607573858504115965594654805391267879710751699154145280909333549976584601786529502696563779581151385693739011820886859581018247187314443119362980841996203861398675738764507446945253299521413237855416381992140058299520544065952301024665485036391006129422913834153778678671873858690279736935150721741853346527865655069038219429773606834536465181771415963642283174872003338753716850335888365703041412965790914914352186490328353798317370563155857432601447222685769888711447521589373306511286624818250013351254033030500445451309874181473459807309226266788329286103086595141052139327775445346305784238034384257021727277573211479470231399062755725757630761277623644424137596019828194442658645957503179957497550741364783837843542813482665202648115787948251807836529678288378687036143714427525197486937818801264403759908231783711491037974632921853855939753860051420977727859293593783658841706246680568857315355328110171209870559224116063019522880042531557263437515812970279376581760930449869136685514143212067653332585531093607067674388538002567481449997074455635808372572574877177988937244848565978233774339109615009940504470393960182314742106421031801761498076122268304252543009312340127888276315235612398231545182883220703175109695881973074370436334938944274238314596783165414488274287766261018435479754938333077456815736325905657580211896469554296364646666218894227153647367025092594121828644209512761884951869104039811313840618447766530920089357724864985850484504593122822684023107855070025514724120492309736735348943795995840259755520909450789640793209308582304318127968336227807460330619358499232244255085030149026274788792589755677361534253392798350670976708152550550518211769702811731994491643776897531218749932334249361827563176185759960233778633666406022391391008794415713632218829518741761853032870272629434210521388643798548989503063828271723648276302709587417904425548121661868894708099460026175041731441534784408915692532448992614247351055757526199646792073595741537618899015601473001522577629047148547899601323103212971814140438236789941082220855372652041180112518911360400245423020383908812232203898009789637485903952530808768068037144167947240892195702424023048764432745238849898442612714205886319210020827526277530741431588273956275251921587810385350300683919554250588188754112314622538066702005462127862459058709007508672927427070489318160243002015516035315780905302433880103708364386303655580728923892436223732712366604206441491059086534018130818177127693876620005212042931106265326756274790213037942133664961956870250271904504249947242025340957007096541649348161876482713522133906791894978944441012754520394242923743846784998611362986865671770206269266764815193626114759329125160763561905132339296068337136305469365105406380381036111733826966729274967779190163257804861963584238556827522232681325358824319626027887053056252758072033337450343730531630119620848909907689252267087547193095565019760034345266284158141570883496857701178451760217897318080615300276352340516381074941677198931356518805329261696492809680323498807773051242687363274302331586125438505983088185555653675321060149209091785621528650750014021528183300363655353813748978311097724200569806803398195543089876032865348187866767024814766956630865336575162100891968091411940390501790145769333829107880101287014584708825767008421771674740750780133340465980915291156790437810193008731380621691302254522761053644042033626764878202597884364042917700802429926171902549496479066735985825581940896674084750022847467047208881909525082936845820941274330983046424225719389702995475630427206438462539559715944704200059588833760200335486054741813229294372595090878151566116674995719974999374566564013065258398119451440103520219447982360379434893501931892232483477588449369430953750602622211692481696448363476496151597425478430463457744320403272162190411583221877144404657616391580816408137586256936609075744940890847536634781352689113533811113569281415557581499295816508684448930400581369041909600832460661713070441373318499728487896379609587024369278122581046863741714423392178867349622517066307190633741199108082877287764731409339147346188409857465929330166628497780724183980578859041738991710688358884559564625595676662004200004029428426217575774620135143498512690559249345237420953056721905834758842689670062839492513765880225959490074651316423662329865323113582438402219306928925326135536828326940511459759283542711454337384301017043131250221273830199733716561143736358747287875904364579715802639600143590401013153504018188203858466005676948336594280570100353369396897524843283227370897923284936652434803354442407150968131163814825332067986898425651537014544299654370796112262021299028378968728552615494247159433431311870384897144825976953004167684191995763047239941604854766863432940453451318854057940401748263352692343796254881660486069294260851844761142467364200749017236645068952529729414340201855850479219291461561921444325884707918539897018416796256100048867487578770965065285429285777864851218502580237425735323379869637206948866671802158033492068205913220606756806080685216228457307334305791429532084155265227742221357868122642538114351799416577674651909324615584014719386575283626624141171980475094802905471567308174466937095948851537754856783889948827894311460872248468828941314740242617515177682430771395811749162204953227160476314559757959199499789441090161416584321612436992411723285542724832366418233640932859138430995931250948800405036807719189172805526245803875029670555465556711092545954158112516152804325611785469457143534210514536606898234709523569323827176498581563366545129753084787607462076043741813987974304745855658829769451285802683726167245656393779006853588485915472023571040902515499296218334759863828302478519848408103656773015033267910653151433807140908960009901257765706815480941791679545010326795952285471912954047128975510275790274368597779305160125519179856647850265695077795529965065427688395282897937582581266062287815451069228431552192479801929432778748707482177008394070723580937978401313068502792421861096221615555019382404954211392660060201979142750666426588971414341069788468025338877237805581291243440259798644211311917555727505918451138193312552467530729300130491713055875424793301653676691215777356703118757937862030277145828444620253514370113977649267361066133542659223232102852266391875002154339377197474757167964515660152832002079801579800503430290886935900331609989053292039624779115838065051014082129692884002942152306186919302052674131031087868302762472004636786751693807720466493531044200414765108784817773170315579956434900743291530438546163016654475768092788424678618938928676660627459462749105000321414447279167477115670440847429878893293647945780495517345295641728253701979714341972581654290616736276252045445028386957324743766833278858500863897298004622823359888044327678802178992564913806762793240605837211780383084092393176687499318402074692168298020164185067030710993904739085526786094170573196131581698792957981864295567348066341826425707739570913131256557205452386462716587989675995077706021706206544953724065190216409718341369839150452420376670011413783562705863202150596049393183981823111489405733894114157693519030457807497955947853390845959541256281384512074188219793585467113837781172873243576251946566726738883038305684399883251238068119659491890652370411406901027425785697980539063838629151812150989401298949667086708612055879305454231873619088821787365171279050695307621101954694114097796886964164973089560947468204880588419292368765884091061983728393194268455150320084544321303643640817878280438317708516536208191679411609061577675218432136957819219907846782049328381534931458255979961139354842408992676689615754973777895861877789541405127465187420716957113755668627072023484113549445968507411482769649193419264059609788808525593499965417818545687140352040671317833959766908376905563216661428220659353589454586798440481224813412826663179796296430018424454243631969207247181987101180372077743790016248426047508009607771606206647323953182585807413967796685785317100953227084525022355063219742509609618936789144540977362796738213737387735773548220813950362572910214133390678987069116042943982948799940673790742026183122006575323276750728117528833991704944719084087684470636723309682422277616660807765741720483104626416267509145973523100604276842839567989352628628764664732119683264786091920844480723104085559208657833781871813937832341211641731202244743519773758947852115099538752237373743817741493781313194365269582647664460685193857097194795622901370580624600625991331530572451614892362422870380254353456011559455868395687755521018156350084440298680852195524011667052093522588099456949017470392045270007537025348689537851781444302075099342676571248754881709967041893250562409055119817672216239240048935898431930975512678558070973259875505351229797247636177913741220543576838476149975034544811168181265408501687910968387267341960403839007463381650013845536289679620232854352100116529808452337175901473170130658617170502573890163088610290507902781194318741998314303451597638479348005490713389964996458666242543990485954250377563576734262153498795739307368549380028860930208624616310930976870173348832888396829132394689488426797307732843339938819890645111200724596335892281268806617495532069566446601667527202562042857964516603300925200811630175015989290899495449736949334295949006065088880281039094868334577538137526768387835189207233596842215439706473597584335196985640674369084136337701776824068463446570155136054762482393123460481471064763935788650619805587944104713360517553411466241719554018220907234159591288104732799125728743485226267752429782765047696790442158759434988998481724599700284666598367324099038075266375708896490142005777188518188182639966213872015552187414595365438056992164495590471855547712137922798665119174591932529504638611882430935824875023571177568134030099425356410804471820867896764774845504212951216268237065479679443491643893022268038462182433401946485657420091715989023173189162293702203682126674401991929116666407073696755133347450140513916494618865552319221961679428971506446856857759985338608102037542831457741941056540922871278433260430997749508036745011453318593339484456863055094823143057633955966540371391925344316314747161863180487660618017746695323612763142852841567130629124394955223415009315612777617947953607016695084865670410335731668345406485490607575620004861698721212073641747541743116779504462678521922405172803190703194909901685527635539695461240503710697950834294109808292532086678606949964247692870894530961011043512467861202320227306233108201048253070351039567949122449453154411186416282967667183635710756467379570188552485151389664751840054575167555204036873332696970810975734969026049245628184104317264772722423342606344432611958022276408520928581387602073509630611664086858530126005854257628961589086457216294494561787432061587174548212395804285321543019094326681860400580319492435784249136172136231947302316721142183607643933278012081790688203808888815361416925321359007457188346746278015433188995245477444813742878214269908334712528811315878529412804694162420698199311427771154988080652839101340114587715554521289031870653356667794950866102631986455687531320992164005850361646959883865940069887690324414419450733649259477181869851747368947008761083072818162311973642290262223849376105104262619972484332989848489291866332182185049255156015286769696590634539843444736640991050835673696725849084490586811632326679317669677503348594395772374425733092359114488520158733964820065797530716493105402437597089472679808168194817686011046890649816056657127871744497766969248886156966853195426785572041537023419618399761023589716679105116523804922858239451975403307943630500102914964868187817828186080010171907993827538300160482135237673403152393884814531567120949845584388062558248020094758038512416032784889491537717674462345168726670467958076780555216397527046477789676107579383301519963815797401428104495386151980384594605406734163684154224441489646111527557115226845306485898396216098724842386004240351854284838195278757020612345016377699319367102515136412489086715631252716501676188360894086871528449494823378516432826492366125078387456740187002304084706561424953279089066670053755550599698492471502714626263193517842523989575602005331959891445666004820131929452434628767636654991310334890735131575152764550661870533803591737264129434675244710757341876974273416285003515866946333554608604357895723570328188191073336035612387191449803099316154014890685562527336302344976723577440993268776075270509172723580846709657460112547324801857774159402703038986094272432350724502691934004558604562384227293566612814091948756377558041888976909756343107054665824474093592446331698655757188096259940581331215432976134623265186763302331511713018316012903185044911969435321992865011360720587118634490002528469751276810998408663577106862375198968057738806698288590030819499418344298194844878680858561281517628327013505773086412178834609419598535188258053192698047810827238751315793891511446358995828505254469119623591874281179512399666323199570939699037681193206871280521846151750858721082429429572259923373359743131781015677157232394208590245638423294005747863926994486756184120889896142067199231617224932627679576570325180582328166427972958581658153488872228477088656420514079431347749426143405057134040010287881666476990990608735022534712428856393518069547388833591287544270693588967778455007835981282652849867636875259887001789811454545091964556210766113120485033451449038244981990280217778811897801582602668358599516999365952210228463437461221278316060033938099036580848377921518149485254437781431266602535623306206321517983483241692848531209756463084246113798081881339087042888624037314562414167440180310337553526157740075132465967364050315806615919241423037599272153179997013565666440542979951262043433146223191137250299900550966564291248480325884731088784908176211802250627633132039175502018909895206364209230656460039446245203018160865641308376054737770766981227421911921612406674509218681485925292812487732139654824609222095081468532697260281757338208146341540349403485652329524562476535202105678142009052042832753847186265079528718426076185497750821899415627486964778737574879382825849159207146139852590475668601062702625626957578087181057309404818454775279525367160794271154558331395270961205244901640337566362794345896680879585856626176219925818723755479191052896806177170753441475721875725823940567250651402436093854163578455396665592721453400252163668841301924883224688301517388631759927166094222861637680242289196547467332983915347577281302259674015719868044696831509483255454899741866043726745263541317436536993100915001369467085384507217919375501649542549935140813294055494427426196294200317690993440234304909897507815419437190247704477365828632089197148774975820858253478563501015890523857724075163054225933821236465651381838872966010255705420303046251510066948490966820104529909202187413154399188692111238615377085458936920181569801810895650027825110410186077513548583914744390836447597708239265116584657610444572124166555003837763611453774348873329368269425300323626451052990623997209382331340170643387631781922376033725755305315613947617852814393975190056621917242546612667640980783372592497071843255682085629869657475190864255315877702913050004576168551092395844850598576390537896076921148338008421765410127820320620975508275133984317594419001663142010823546813344876803133852025507580387603230730279670899940611203546029407140853235776940803712275019240706591933409621153876542235929228675018194331739876267771567309229343368799465535301516434333838904540374270495128859943135375128039656857336595773045861603490318465117714936810243883764213818436500483189360700766011857027763246112457227817621895717317540703582824620134827530788389822563306538390060238851440525994766865552835754349751713322381362180120240643525740701093334128879682802457392297279699936320989614063884967687230691853777995471166604830474115853690258165874769190374293333874557675460390206854321637993805108896551606950180147442751744642341026398825472415205250714851638292286461083821226799079853699335174150238470335206215999594383490143470121046181609855846412190903714056319407977077646995256129946723054253950795951894965328935867754425131987167827319817003690283396808098095479459355239042191565165506783541527013015801885512548314081482092823813558486195754880581476660854748840942806731026483629962948743135361163104868198353093421487442026420464297536382319395868906307355059791276712508774189556869428382709110905344439096881714494283749313752335982507919754787786255084105698181521779101666504905206865570707108834297399849838537609438138209989388667045476157441954499178501873341148710119347198697371971405615077827473751252149550376486665495497808981761151422921438274740276072938430247678500429654351382395122697771899738670743582392800407804353801047918372133190410092108274442342104536994483956475093823438817988404014861676664556135612152991331621101577739639341902930965964984658108326526420198500725490661866417192373203087021310291613048304877389683583327279436930723108143789898081399183377412977980116804786485453753959614515819540925546926634987792829711133577163478901213450881229062452203595983376096117500504384151166115497075491954907106569450986164444403305560036709616220586251028674631443047184389243177284568383598093648608965749908286296511692462015310948545645832742815813383346909459375082996232810318438383781694977370717667745898228205165360478149490680706610936426024779698651557500614567275286515581774877600587568308585257904284090217785802242615667690658808912212369199001718198904041886487350883701284265408205965875530649353587301339734178729971408886715538197718847877239001055943913567800613970038639190838481653394175943704403928810439854572620985027904401108755652698760734558259478125695421387603446291910955113043333512984144869824106789607874674067061534480035411855770065372230600081448307223711060272163016721215026257568349128817330364943762345394143561488396507876414921018887249961248258168410713125448974414192368940389198119448611853362608424501534648411145645278852667623861315331404111932979271579475839951212448992507756717202248107106878512503978513193131212836690024882422879328566804449437204086628663209735593112569852664076285783071748904410185301568113561834437880609617475684343670069881985252407830582926321868467461794004661265525115045879226872732617417636329674855669356483072810266134219026321473195866698343318411204603887871302061499294628515396650733679381098162010646397681834869775178762441472657785899183522553620064359228688422477629535534491556828305255756682052775524163407627381847776175371353966567123041246058866937214638284489940981683838981364684495185213627909562794643142341779923132025851217637089451642135836490021967908600234935737419668024356683797887936746220613067095536001606543729989760849422783732478889229193179073617775748895277670795711000705632885571119741038453326022961329332045962402843669756922922451125749097984533637341985370507094087398731414167061249368350214252433077814452712414899863317372497904588334911164661867555526664890101577474202905187642202996847228305636996499792630407796031895504977485430537240599098788739231777932284565553108023334426273714492930624943072517363342591639227654487719271626930998208854593471909581461196906234782421301584199068320748060919222591760041500820118680805010355037186078981278562862459804630880123429962246952403687185732636661736078644576775644920951601260857564421109228541264134779266548541094946936174871323646289725801565675631247533400119578294525123272892674552238775796367984130031932722786960053030313628173867150149709558035608700444121065630611326334854361995309162414403757109461320484195552260683722197775102430440668488235460202491823461635526807948922247002286802794655240456731422143618080446724059359157314786315842039870532379649702484756611015362945969933636011987549648878624175022145644630366715891799853782770455351830392050548194450595201363016057604775596470660474005086499712214904677669160878795626227908775000644754930006212946999894035657951237247209778709659280514947950004237079809360740557852558817993128094501145449074487878521404231752646849465542595010097142260020959899176054972818993815915302738957692014457018172625626341326914307837384117567038437673673761042119235219688281259227297195389022493837924186411776285484835067027368702744155205810511555235544491085352041653248816164929093551356699700287280819692809044366214375462623674886692763810596368704108780254871951163997835411319105875520342313874469913121204641632242049646485951397540466047849835513265107102617211465432825555476375867217965957850106728691149061600213898919047031272334824422484682496720949886764828473595781665402937193689905855164171075149532333106833400650559127987749247267384218945520306011685305899860207709307108419523588379710425552165659532545672034596451493601048420912362320733044567505258338310096779841463499479692228858397407315904720037209087304609415128121215092108459773576473996902984623717863475547379643193653428311462677827603478775547829161539867557535372731034574996310158529309792393412947767897629560052187047036531333167241177533302467261422075195261844651813863887022912672366420878225039585622707968888619734604184804708289036683563228374930438900378929478854436537726670555231431604414655430171924845796042875195869104051317159663911813241903843010410153003251419222938197770409861665030555539362345229794853440267596309438828153829595473043623727748724251684774513066055389205275836837895778624838873700166062689331383076509915671928142260296954247439368687060187209779299815304244535266443186044063613010137189208675624501937254292097565144516265840771945448413972102499020060747980294251296000297891606769805244136978914356384333023238037180083144049656745636382590268759939974314098171751833991811874355227427400506354600068689330698148277230054474604352085065085892150182479530463599106152067947543822046073673040205751030027188958980951271803217168177071032383185144124589735599844248930044074268901786163558369527787684980739662855959493571300073077094557444765002207574135501091389177031014900107214693627489910211543599806408372843548201741947870327556783553979277113439239460253143060498335032532447226316439688269238335489818793282269789667823346284109244617912423202739839338688157228396972484543556998699244783048361599231723607234192417234622097365752013915862893588120937011593974063889572584629027117903282183477115902776142482174265388065832395585921628891425347545317320640669894193625921170624072822486259496687340378376023354241651735890952333187206984209488086364469573101141367899165405360223863541406366716845168628424204786841762359829783151082882744715825464718295680366729748705437908031721896520258412537579282777773974383853227177839195469709437725662239923719677889609587386546066760763707320830820741402409667661449249686373153750293827279647453652034862660809696508602270469393640409112811953095687054098893274286897833326024658441852193074628089105325403511753670428678358275025934029418885480383764098489533689622834501326928735993522580792653151612751721244231780628420256824306320572777362691482856260220415476836135491130631578672934420922702305117807260814584818125503069700516282343568310807388835202061645985887552957415686664044813820199788393217758254413569103393799083115748574698128185245975883295318369135585412933627089845078562934902763218073299664526159938927668084228563174333489128071802503317095507443751961924479591219998211834981667217556281950924551127236781668684580725608387408430350643412859846550485335160210530673730710230665504926793651049421068918461269371190994950063762016880301006910904333572991618832799169459885074210812526510552687814331864519867086548893192404009164105551799810339264547180768614874044912037398334772312514152866335636128958221982711552578723619827036716042791126396213943095356577099929734414437007675770942863385790010415149027535369547249588481585171067724320379083478428740959257887396829544653810327050816607356972167502797667857957857058092474941835109935879276416602425605504604250352787963208598300426422089860902989775928501468431534083660762488662339774150793573662324913602044381934694602137935478307997999686919103509679465205486825417839414158486668487928519758296389169619911101762586174527895533667912862791804360420927328721918097915997719036483157493960186243559980791345946437656831724754964738151263389310558356088606701301482513825603775782994497621365063878847400716682795104814857822778196831272861780066433114241758287020631166950147288430103610117279115176720472958501365779987315541040705741703573990491344488198770877743217892595306668100365722350473259608822449650732613424897645471590042775301962387928001697206786961500873075364645290652493106685585143050470312695509708241203462148049085845960054026934647359869062893319139862614288119881508146192736258439297932195077484886124259042079659175966105438725876268332807599937006019247737526529573688197247027453449583737256909751839277214318662527693074793248886165476625334797202184134982880760325278853265479018063677267198471417012039287619987572402260919872114243144496305215359994691853642185884774866520511211120262320401223573016017243915282974163836462966957030059973929558097070441156191335713820757829276852133512912260351551035894889523063246713329976354988512536038204252629057922882199243663045069638443335907297888384659972405100368219650932411551689109041489259401493425647163512692680176567909961035241763517718135804245202198613614916170751503232776012969087890548241653154496111879410905536144216178083577458959438000959962030855781360310409802420815956515311647162223562356312182671068580553479449961897340540983438012000064408540950376303806848131181758993627608707501884351710967311856832799432041465002133595636092655010150646550184028832164735032765058263405445285751920500590006353222542227179553532655413641773077703733253574362971595687320708769270324330593059229079497610360652074149911979267704630392441568349436363458174347614981964463386456586405689378825042619910337079700202696110107631959892198784338026414856786116725852788076634193613676263395891997424718976388446706102072609910497179115683887830087227462306841940620165980405496582904424138668065818533231475642212781255882339836425917785432188461019174408318341354721182793322139141005542788286759387599248218946946601765727255426617857969343557104921821463477745306791889406833886033395285576731458230247201139305307784884903183238044531222206528181026348514405037821815102325595918716557617566097377015551363014190145532220070399811680956911440908509779381183684365225809202982650463050563679686702739178240325985018668858557935091850157843320185762539568081018263150261735631109294505643851744506501872782073402419673472463521080551959174471834783244965827295411628983013207756877150280280185416575465570162092482842072507369090611717559488630604550354253470074514105349800060851326616641212939403963489620002776160064694821082515582528908440204822281986311653708799381832478036966665005410167364151874643015030691585182306360474614586219913319686659894944685664171055865188853644038367071005772325309062968283053551427134626747366326041123144006936125485416574544670134009570415732246193093245440477741815229759578096688895242771561676486174048836758173104500317617878259921208686436780041560990061565161210651504618397376729250881385842700998299951367515829250143030905931315907057475315913281174333343745133123456149516444634148254750540811066363636196563728357929335914239070410033271931189741581883649714639475093321323835227346213086153944697007132280824635870410572500765538342897258689746367378176873956313947842484528008384420154454474031477218457298582674619199600443771457599586447078755980213823517306907357733083441243037567320223229504099061415915529136926991336087052695336865220878538667410202950024359270538974429488641224676551836448594862438582292488590757439509601815694607847410504380521341980536137794941318109888455305592269030010670276799609550931301530469138846298159029242949130870861312303761851518795393721322504008706294996011707851016178807583180178220720157060888288327638531940157782211785595021805968508261613575375453859864413175284518849056281041847633086433157661820229061179298835028205820652255954204780359650916753748830182601686075906631173027156601684562145878111886473512575273728412311949165516328776430183988657754471069431233985488607786624915378521117731494863036756281646411053080806138322207012122015198039964942513735755932665360704522873445871841611117623272758057853449809208318744693256651516466167638127167840882641240344721973641418404087169268724420121506661140293816177396375916242295681626504232016302737748010123748068533396055946479994274496661131199210090368688097140357934444537636128737310551048291353417139449663449577479319934410367137955390944043296094405111221166813547465758012462096746547326504739142644512189190192014346320031305012830365721042732032395864054051376890935280116891632686334474426804074297725639699024449463510434311884495520174762370036919259242377394254748592296940575965895319214479573426315575224828485394626693058951896789669023140315638775354930293232742487996024239182123756899138829929201319062057017196956066047999104756511653960022081661998375074837572608840938741083926063094524290499658045950917273490409679712035337959615820343181973420140107073345491309471177799527613225309502755791837306026461021479749670464919035235192804550842952527540192023709184772423864578907562777109017572361708251607493497252168532060683404299268414160606066502370622708836493154781098336405028544130389939711427294836989270059520265699581893093361584543671454800494612168338867960802016649266508426875164115134240606077702073521812001881054582139772914705231193830846132091300459219563809203199933752587424040758504094444719863617340861246692980580224347644378118024875262935629447541740029030311988594613189275888878642953927284800889046561875205169481277480633413166396071135420384892099316845954060832876589165760508509537538679567197868815723713538344665695995117242145123972175300503712952666212467871850229396151066035755289416535796173745139498159862016700150594274674924598348262678170103611471762604768008719446033437879697393942732441534440707131294258667983050500795434854970860698690111097715543588359784008904417074187703788577300641778833102783201498704056052246713707023269668908394909870989472777513180178415693873537567140163218781669132756883817004157746034207918687209943985700716489410016331836376138299911036774775923684066346186464440184244043188324891046913108281469832886319743928866035384433827463850184713482895290279006831341672570310666578816208134451863204251050252092008973631809383794541472876154587508140412109499311362313248400221229794724079303552766798524537301096175055748707787727555012402008811883813084456165410413022673676781165453742878005975217703921266557872917990244699581080490161940502795326123054003168393962775000764580220555229209877537266399094726236900842387258414678014552825796565332915431798528086328278139212262920878181289133060947160496299972369300455824741355869098244320155114010929622331262939162769475590285879881090444646155746619845786757334266362347572562655585619089612182993360572872561668749574188102807465881888291989933561058395321711171326841407280389007986598686154209210028329307567447461998788634142653934514043961254125358967303078561276971885372822932646820812696587909564335933906053972090278193602783972160731951942354793185565649823945337062488012853941347353863305369527704815490523562165853296930286283853141019437401756372389105958817893378869210114223622889148963818711813599030646990365728082637835078717522546129010396574013915120726638959262321601440355430010110411770157654553085187513002824018738407291895775510455179418010695365043493390058033048400138705635985260449387233414909929435883164366904529415436818645451418269149797955709548583530914346747532015034245859473019634355907489822910261861212578963865387304284996372378721029342021724501015017403249793859637204797524512021679806732657723692205033784947071861484779606873510087247608704475407241950871137887971695568951433173297192086539171544837200927223192186682281335857145779379849157929958243035533907023529205887186668206317155930054803766482946058247895776292542204999164262494735559451054764164980783157245206506755665285805093181799229818883131551228635017269562778085157469726478946107083881224475670269133817412719410446873973781651068417249223686125216470098729373329526839653940243000359298868237260157525428285311243051199259458024191072948245059865185718535255550255564819652389421232978620268762955952305885492932594296447733099511859652539269619855081352956897175269010099131134984323245641799201354130203212025927224685796306600956388414896465323544289846918875780782982462674973753069751326683124752972012938370645745267638792972208690102680865166394302571810147158754141901724308958023355221741569463423902145351576547045864505218463717178900746949852309904175902783513437984242114188613127883661556433986704244572938152344183481749801938053958863661486617633141006003235197228806216572639922447467259345283661350460337973923645122268490516783361053632997073460005410870469202327840246944703103386631483307474783693422766691525653220166541608437151072883579861884175399055318522144689906373442830608416550262338006094401623795718530815458384036528159666977182767685681973303999832374125699446456613394913887368748428210092687794629223107671426393352179626456252275701461509195752649659339621240106661644120891192875956245525805283671032944915853473201856652225386426778778108852040393028407899425084340162261254689076654498774486314382716815467893672310391535012384315540931626497510089086331263472945780472440292150544869365642132351567127069466113469109631032461178866049065456619149929955784298921578721633571625051673495231421106464593884284752336693115675330166869227347493978984734371917132004291424027221944907271748165534131311841894884398639280376135843341214329933614072667261451473264890206304816106301237381692782811599793719615738864742408935572864955178598559019949940842018832583221122377926273637875632226059999903558042537073623481964274703232974746033307553925092660338152936670475130811996145842102393772869358727595878534697344471199364422860869640743198715563641947444360038968382209124744609138542246410071701951608444189351169899713300935478310354958227339271035710105030812563563399280788003435783141992177448686895704341817496237864331776440125966580273283746743414547396260999741517750085423407596772989559380013634332136076043898602166315481481201897489771519947408760639806056559449315428597518592095196732566798722063153991477679298317392282768186874130994960846624183913997541396765331976099211440442360453053636343423262746288987402400510017704137576552987990931405573743229524791078580158469339078515506534825071731984487096864425158722817834723768848455138301779136058497039380180451492192923076489529022846038580153791893042761907681965649440542325038273059433930534154618590138758677545301902674392891226638543808662728861124451498678118832482823027797372753649321105789543611270800835646077205615094787063639182917141135058920927408392660344806841916968029402348850651811609269220062607969827627952327368417706144230804115347489475354097041043698564128551929974252349408174411998630341942636788787566384673357319548589494983598659558472955500613956902745675820117240624196485451852266475022132207734186596854529595194986457879656485796534230898216207640596898546824913645632037962482913799241194050619890441453401813624205938112457776753280639249270048326802679409650052694542245227908251957010423831856191778031546062824471379113249181323789346435789628745651703643841921466388186633269506449012018162637281677070216087161378964540452229753707021867295258535240564187276727703078309069138332562281013037140583715781944268716914654804845499514485381737329445544218419832458494557404784481671613319938012776281550542836788843496016424528984099253124090815067342547783355227743293634417433989951254747213763403821682299122643633678056588047504912501272051621884989383706615511728335305857273824687655922801431453627602152918245459034532881633394404699926886810475129017667337960930278357152743692257068138414132753703886753835599154246786395207757063427776473710520193682257866673427611243214798398930027926945665150013071151089720343645600063840290580857461643829150348438181696575882414945999769107935476375537496733988847537971827810497971109812459534347297111094883154483663322960599452931215314721289415683675464573575529930001033560255505235831305553687226115665729366392270749272948064991038087840385196072830342629767898163295338817348388600171517497437448905361537262019724009413252142266482848137756098322661555348887178842829320844386746156289818261602676455822969970015420330104330688811706646852962853822988847818164807691148599069347258105134076708390151814476051497582363766124043503280358615293441714864641207593992977224101307453766672287572546171975758737324533188981566592354148332745628219919771209142148139986455516011516522984166883770508267933409426339659130594058120770400124089806942260558556113096133947781799553780283050000142619326256133238604061440564375196396711494636728652979770582608681166414911958954597245057429177185897055139801234417550446138774639444775426535457249471496419627152046424999880572562609322310613550915092035261253258761277156602754023495365921504951705232528656291393390959786596979964728491097281074728254339269548490472432028277292154116108832712738582998309744501765524344105295496500168831149251706943800971886181229807593638430702499091565415250368043752389625532952197245095290539693231966721891693172497773674802739553756902593053562037902657525074817003698777509179354580919245401504006145717993052206006217339432874549249581719639541486458703693536488244187141720084715167893007760649705432152098351938709878229068926520936188651286023893294667406809361050149634255502455434193785370262513379509699434946876426765282461015741788706488394704492806660095399664173468506556153566036335966197597656737436428927868440768670696737848651277209352523894845771149457407877720445377176057708225147859917304229825402290272130683867495081706677901171390706948871528067237418431730077870328943703073972241712180205513318392817161915498162738267520017107891214793778640169076641453843187493961898713954802199095090961334696454627983789544037440614539805765502297907019908570485004186753018612199706908095279018639477605020634932864954636977469463732047697757729348824817915442855003615347739732489166246849746797744784739245584952457961153799201974195318778123696958354414563395567176839122148327174419224021515835535271466550235310403412302165589066981736010665259579980650170568085056942052522297145318262311860307554855213969288000056706252873043728481378920003001493111270813529927539832673149204606387402226363475544299894903243449963580975244674378998572888443579596307839568552679822094927723894466997117614436489568742190759796886139724584531748871779735496900311721933731069598349687320494578819475537634398925356973136950215341276017864357311063278416266192131751497532606441554461733963907845916222139287980662111216089232885368403788857947306440134134928842631061282462091311542812127940177780033391317551417712211245948626731141397915639541736289755913137472304753027569609157123990317660860383643704263476909324557645013541281458546991486775214185455666576833550933101330846365713552904033669642139489703254388235906579815034957571733679736451763654897190922508514278309318600065398121346810236512565429556816372278042777500957235421437164520979073862655077014662732785571846877521617871220056673161233340469032907655539605070194381667395855465123574725024018798562402623066722427511518169495950444319430981829652875919786080403738869198002503145513632178486678692093268097893608151305447425500926749881569562450783529246556031587643145701291648106545735989442028711241429325988055034091021119111586333759209626819899780931569208549878010057196100485531794907443585651979388536414177372622354019391699847538223208390748706986111110076728780225483463046442400369366498508476189003652552202594972024309787718904790670698487709753518967605294815100405425811920547685603379477431049757312248712210196812977635129285261906338025701295397803053398244692281870662111503577874841655728407627078526350111013751144383987697105095613397572709347926359476145836732869877941148170872690491976255543535708608305764826260350710807530680879614301590050207027955995566702356565344203880039949117446983129675432956667865378579594806552252011506600211900099208250189849271913293379541766682900005177800235897093488557609606587261498634543861792698441283485329256714031818161502643181109073986348462280735431449730165040143075512833263418171648283615101466353289058143688485770292906378805809453230908362755090009358643173085267005115061656446700120598502907517504669231289482284631326242614203863926017422186835506653431473232387868876034692999882907518693952035431082081874948042590771590781054422700982075688927954696135090140627028728708556287757500159451525398927780487145810383640925621865520986338879789009578013141089724313450529633564828902357771573654213858038808359096781777154289370050066174807135448287154243892030053005427428343404918729545814346861445363450719202855194764842609924217155189465139775035911414321045202172675990699643317711513733496513796984252187348775083299998709380011642284804568286021346635508625802749368944926823039811594674187126898293690054917399425513844321630229716802481813328260328209857393972231435451736446947684767070509958787959465901500307563971918849520554819949871362922112412615385043658036286418872530233338704629900741509991058431055168429944725416613272913191424761363259914897612988270478330513510474517242877315568946384080820071494969757774646880910048235094207826437318563985738443671518958073451254149711139762552014388526307907921107190099692165072818863183230699449566198244461410364936927433478239930754304144813472101785065631970292558860621403358677287565032691964383275998825110680093225843264750610805124212761432280001580537010474235695465668825820266764977922567030330772640071916968186740398190461949224069914292490697194719334790725905114887372407067499441121833661012516030675058391510106501156330297315039215908654772222438639993734003421496249217698417096832242988679658217571363231242017785175490518250410746430030848336970075800703801452795219387841282109813295277519298842612798405242598548627371952799938523677806241000004378321550713972779587407938143557573036980992968489690473951067005559636184387103743365086300533457891048292467460074763318172869263295281824236526427337173560884772838071772294377452745271064522969215871453610587864702584023599538588454231310215597356569665989575910077214912219405486345194176586083312644155697148511681330318335740935281962266897544909948034528319088865357006691148119259395731172085145496514687997616497722449536545523750600313989683115211967043475310914979476462292515935793682707610604604754107303732864354176889338306883312266571984035176546785773665489911168861845005224821364456648526518621553393388711748035555658547436334859197514519668937125133434604048507474638503264697099103870653028851219777155039355138184873072449477719964450384993814482188951773773825716248363041992662349124019145229826908343013220056908470327948952043794758022197080050191585704222215217375334905086234575666856320883653046983567220064656491200981646788202472315080325842691430934535260159030955362852485766577070724170871506027361727947323560009706715384703280798350218066394193496751860964971558053041379552260812185923528563642356583335908919356049734005535305600836351650162363047699153478177208229434516565904087349435479319301042169646179617300393022251870097328208962293688255326982130296966983275888481429982428778588945585354398528194186255079909503223810863167742252053881233879166900679855481724257935262045495901577677701285122186502755707630747747511993078444450551426592996325081689614987768574928108328174071946685269718150387700381528378356202068380024913582246775542314873760655288992996612584993631465299404293726558612221703629655619176917040201445940492065572745319117597640484844408202865924448662282169602555737531306984473351730435499369671631031645916086670366399500002189810966663705480106816741075436740269378635599107229317993452492107302477768846558372912094258356372324835133622109955045807424213615634922851859384395643356072665757678425923602200776037836000432767962945987581181371540327125264474532542692764845447777767799441615887511518376609535294774804220876192991071851051290111396203335236849706007891191259884921243950837962657301728336749405982599078021680787497633793007128211181010794050669065780547473794876576308112294025163587193192992208880012983548323159148915320199068231928899842436077045911777319301507305278329191974372848460682326479179154450998663570381242149222789967138056245308379305281240073915802777207338174425154610892931172166578463744402839668658683042565112796802484608071222913222056488581181083602790674686704032566675531082268746417039097515008037460885466178171810504895638349399892581694831117246080455294771722862234496991696462601561000583189669129468607227857102211056566611134920938363643348394837449152158140448100242440500465036546721014278862572449700649291194624572975649325673512578277989840916899478185514530102312600532296534045405701475394298809617993107697339727136052776812889507141526466007830753745606635108984653328380889462875605784404364338131652545905342788867757799443727729730205108521756800923000170899031408802802773927934426304634930340851683825762015140138295543110984118173943133486374216973218553206181850021149559645587741320708532951216808278548873639388618232629211039770634888629902242734626701092638363585758881381612801030855308016820830443642322023119147220445361381323461967424968276494628502546447709536267579248046691286797543865336560599450924609962495226633086921050857378919975487829471223821208443156362273966211399141817872897441582720281187685165737885641116086369142547768040583049890913431947557415632471911645538999282838418538110738015287080929581178562720585539951633178279550602705477062793634478341298788470082301375718658748416461102610940440546344068599382504607778982397154173391579748825642490362987614793358429056550901993606676048706246798997860917447015113467706939086291069660965593108766489177530259018772435395944848976997611808780857876794416657011376526263594429261172342275956622590933564224456976977697336450234134723407164462566142149953761384920783582816016230638847427295322531911354371951194010453372938937701927922049147506134697651481400512579456444485268733293933038235808467224192019277321290715613954343283362729777482923790479311751508505260828944964407399838007061952720808458044966206799383197642475296220442934510339859434343397921833068765985683586916216944293607368881274357372256519296708839073236574685219101740102568690884370091665650618777835876030189399561706987823907368028188938668417904509318638085750216288978329770427693145797626562373365366527491118668983766092323167991383376980076319109560325679677828873945124557572232318887234892797717321145383501217166273299522907358254757201237410860699022050662348805905554750519722583025912169681933366336583393730668331058288406262173223418489692774374936960577570519848986404486205791627849544965945956448052201993832246644228980679635251526215666419536166839034226900214399977345412205932923381155150480733554638714870547645737950674156774669557542450199669322672853334936567435426044606028216976422868655637048538063140505289231619960439920606444013769854506322914466718553832996355642759555995393601658156014540756788771032693764583590788686200314355983638998176657216070640647460470743237882339448785529122989554299986187069114058621425309788960301298019538503305562258190121276736962222121691134377502548037447844551824216140203490854829469999275203624043307403637967210173832053660127308575382919655198186777356345243665919591336592294920714311616711988060052765930584759779605848158025744088670203058891926873605722441256684369569960354525453556384201709208978711810843243597020597299169041995069655297295149301344746488266889477781326476546587096532057727209940148100728794325636508969389566838063209050496167043557021384078058219752789915955587220239991425228302384192370433834736151631728515176956598166711941210078611906974744392116073812439161917271378873770535692719535452171970925626208285508102844389563858588084519223299090350537472300358875329629531371067169189826931227860268815155431734065015309541750361224566431171300404815079145615630108796265511497702912041514796910826888503757270199441536231760288018386072424453686945163576144705700725781720754188246335441445247657227980489664843070389008416298814385848307455128126401572202144161486721201891178547632323424173405676123791210519810749915168157522815812772299790280629497654657982597494842157407863891910032617197489379755091281547315128036994408200793994492645553941322698302596822318283504240285748123364560882531157327443149883191557484888899387928723772656216216297581849225582729542595355092476539623710063351297055735947016214787223728829147993599027527179716409691928832350993507882375134631405433022529245636084067497756082107864144132176168481043701453543461183466466441716748504066190306631499546517222297114410098449103843475023931034474095774541956770117803134411418144983711260019590334118829287494958363315295213965898691081563700979770305907557507004828177746885700375963936086714550158803600519714311433689354761645463235419301286718023477900722586066229315185820614798354997483466609195183469535292003422524756599568421320618759387749509804456697558471865690186402629990616796822720925253277345851184840384518214737416449507923044246579954374843849594983532810896270053174027737415304175195720825640842910892516514097740831924598416155165448346017279483883141906261278585815560308140935679896741351420012780375890764431186151847110898165372581953297717825354131990418993105319906167558114447574117266507445331871553807127859716271356778205905407275684921669597370682517311902103296286079746816263238971417816491175892622193197221509381849698563243194213485372212877126024114883326747633143322947033198085309998202108102797263019196796661300224289622986862999785258157982049389948387838325049422834330460330485188377193590573987183386680381687752325055221030654507834192132233826768359329028451789637878194191492498910805036297038577680951465170214564564445324146426768600718871110858224717746026410795486361294437506049673462415194779525890247263031092854219444194684855854560770190661422810420722802051228107267049992466849975885374026329872478940174568152068774893759756831780209261860431736841678460450633079594475152134735374052662007023938238349493605980108961273431981610377027898424461212043614038127467981702684946699895453774814410727868794062021546496389556082303410583201187057578687369303671809476240934493800330730742047891729022873445079872318678256249304309023181181242150427357377743846881741448263742517304566395581524115921123594408950772072913191139987057893602209550501637433309040469678207524686340450821601063034401986452983968675184282323236032780667157806452321911757588052308429471031952097456412792134207026485062063472136864829095198725415025420750325634383055108950652586759534551944730372716190386602580662996355212754547682562613741018598010705013884746723142877942672528962025352832921573543179761006121737142713408382922209393279362989015800324797823441552606924035711556748978572522843550976226058051137708373069839999723711081516722439690387015704812460470192986423622523178417873673038328070649899161980490235047090913834879850286744957903944352357268273082519307939111273191980681254209316638962047734280986584289688007554396451853129029534359960932131032638859070973723631866860357372653409400556315001342506146303299812122172914168183509915765991118362667953891224969501918469312714722999140583034646397697456460591159716100006165354046229231955701810006886834240130165189227669470482437984114032589957725270076156267768454870201298689930221717340477479147980452476756568063685654881963273739812854504395263738781307597241492380017363649820565807501508089936344598372848292589030716984749688933723618369905940115931494526827346684518504134564004577572763141586548674557490105007964054134781692794665579514014933787012729508371656295561388700258983590602120879847992929003728157000900981773311673680057446474051020346898385350317441877275675260334404078146213452048309210539304424240608363782287920422585558158462800205788279786444139710171487065594872628391122962277091504413355141239362483023484742680369744635515988507537497410613692511765355220165293377954103149250273778401393325485404422728383005033525146166595487182735799969174498588251569283384837752814237385122901178194014505473554552833148740174297066895177267054852715840667356796674511525156466257751170683743288301563626540608066097916681265077921189636276970555584154779039057356984291634086978228525648398166720250416279933972918543350096456523841479421374265322003889521822747975494346909721129784459278584545807302952277975673496496789939826661706305214150919084967958606612745874753443149622779601753546576902578603522646124616248110353467462556601701444599323001160860807975468972465620828739095149395965020736986019380444162859357496625443043789921539194202071963082571542876449448917484072844528659156581292427550486683034682802619297948384377588386068347014347130371938314069780750675565384071450314473871032820473109374862249909548281593284660666658625166747694152960137136284942820015273017415475404597821566071423317926210858964795874118859662495417191124203649350863535452003306335049731316958178392307736404165110593675201522775673875975820538602201565552519879795060204156350031123314873958310750624029868815371654191610762083832811065045219779403887505567298081855816649445739362463571532945130661688947989623193537057173093997769966750046491568728418564084159689816708514211336507254098179336756013295380527578416684332580598460597167550563556138301928820807395725513268660469138349369666287546541611629320967408167461464930001839889825577576387355455719064998800909492057614770050026083346347047409509678382067180872316903325875557798108499926052924291786442338615298203051498338260374539254494110476367020478848493812252392080094308767743964104443298202818534858088555319344585078923944070529798986181060005082589303607802258217852478345048534235229162526471559618115557004143913668333632324014335702788769260197147186890949781305244289827696423583687714290207673650464496673222272157523647265063057445430292367948041391800597528927728943405565759398326466192428495021308800644278350702084777408039236588559526632133097712908777410181378959671063136065896619910900547271789238744405945881707492516897285926545447386428357879521387133098126209473054442307444651632571345592298318939994366116434267086771751785239020396345762420597042630819132051286260427143078542172089924039136118006626225794400504444851128534615868009051324809523381824331482185128827417163249273356860608725841796004997899875901875198180711147263048140602694593670846155738847602593458137282389216474353061322483847731871382111876560174368438517894867227072941312426148127244958923145007226690802576003712900535854617293537669006979235435341964769823316229468407762855635859949292073671130713361120370551866566405721090136419114652161279505332224221195610625204456911846990620091103376741920471706313207315518495402177648010712875455895620953696861123444405230380889191010756398077868684765499357461255972947940149797709392630646580440427654767516108898653559566536914162515250763845990538603118187131520828483988282104629397429318585124072477541675998896008308894376715196483611115833882249483071136364828438156407636169907816315095542691521823592045131053777404831199362580662269864148748549805003551100370450533408118769651664888486208709447505196193106603172000364594649674318296733789683087352843832911160497202279424744805867822465994906408569035355986048638306857636252007286792894931834779383532950386968173340496373669222173308547239211763946515576281676225299319871351872338664064706104399758466785924402217255308010172290245706725621229434961780578534661518374157963087981502690176505169962152210782715846917062451218236083077313020070108293217212371002610938834302550244864032774595195172415497290474283246311475757224620083870293638172492445419478963839055122641503299163771379653955664423667225112512755111622233191312451632262955552238571751602980045791809846762186421226761277847803863773166102024169769884481492426098898824404739151363675009627761612247532410775241396794440175867512283250961556090512037893872954130832700366620468605067387321553170811454157326839356480948507812740314123679266110274650248725657970415593713493849872547309245503560449799069985439163514719725119188999628601597816643779880983027068539017487777330271579276249043442294174826429223426172923449538035112678489388431689824734235695774879751471229620511590806089770866632124734534697281031449203585441949284610471323742023814091394954423913481937272117941893529495151243556814124606723921159497375803146740325960457020946356135254211342199291520747079283284303812765841916139047135980817886721391682501876176772530382922932227036794230514007107593708237443278820241332661608200751036397037058537339328948141007610964767482967761606874254850110741537256267232875588883377128667227186589323218762763308010292939419338586386098129715360510665558603165216467417887933164362099298819986168591978854141766519319406066109282574834952854606615420505098001333553628783768604072091198650586511901463954391699970796226808072166300191036125072646748829485566070240836007902858903349256659806203317560114208356778233612993569774358723914808629619186029210412354106553291063241974938116967439742334418764508043415885989373693775022791633012560547299303400948388834539260014286527451888149187234663092013406915333654636412130756191744445962119941149396733444214163806910466324714288201912468504193502567665914318011023707811969184008837048523031178859971046534285389307896857389287383589233917412086273976177191557096496182220903832804389943296252559618294039000780470912240093934377400823838593071044694045912637668243919950891948235541968594768675582123933016500400430780578674962467613055067714746649723170606099848876638104692284289097941509259402319812603538067429811988138836051771332783847590287477946993044483056021899188734150551067155841367822187956213463015491540495022726203382201873296356311305254515536046952836416604507359313277957376188807520517127935418837329697846017148546747561426246709141932865431996106474699319414644933108583963915437296508467520338198471360654683422282323155261662749296191601121454190993634979127759847215404757848861303420414214364917211662942311082481106212761633819166589664464059417832248919030254599661583550197563509246443723301998774083682809917323972364666177775087774428334989052999938692096645974607662393390101280953597824245761217883626973987498777769841699232912150658083442405425415880731831942381067956673407632210491562662009054970463103554269771356871998404463383946107340716065145748850637170841273035408209033700280303168474130835057887985187061515576452781044878233546843352439401467677261296140169962422585496619695488927672344157122457298760873111617787717631216918631571101541776574750194181258565354339627201987998250926238450943240928685832080169167437195114001296113547044203390440722727993016008067578257186819291087329334748245067245525565829499552157070919455289306690728014523867688962270700178147429568248791312583040202563244399560790881965731457260355271520117588064415724308032153205157799065348711511404325123846139857093345336249582722924604514967006567234296996434809113702527011899981608951448662812657268420321228674735262526856332736250146985128700020420194576721867943004122068341950424508796454339027070872480284324223713479943108529282673153105787354147133193424305821740909206434768116990176853132221768894508019155462395604305245240165722075093704446412552573680692719304749766864235235036272606631848835113491109681334725157215775771532810482347463707660532536207964704199014724009556317512606047452140774266430649339184487669814531740247120434618722726433316378701521344940015352152495441846781257352889971089953655133594055981183846440770097347353990403033705124711147713731481032167721646773708828656474959015849264592352240698861751910131402264407754250392031528389244713226180982966953206941867471214143522748280092374275843860054100217450173709363442149739024111429092225231353754314051030545602974353134028831497721179691659485161200480539256102912401641511308547014312790247936315516615402444941726010431720497780553714069077077174456725930219742249224556543193017866047097961806043562598710851378635524999526424769367358210368648034768984201524547287556092056224635690036427737351266607891546404811769478042936263979831523174516971000724312088712867966149402706551977910847104602502506415478496949518615955757810269094754317224211043707755649315471372502693275810116922445506044690749189632324593972184486629561283519437572738791827618936726642239970195233016736942479101403118098532315567034619450621008017567510323314231524206006185904637605548979491257705068501286582959492967272682236223340374876589241008505596892352561106449458033307642338436541088704091546025396643750120735503548583121850327170813712683533411272995113761332717380616746302895609428714619930339576957619804434372432829336783673201558087933473579183432641573542122515942651495958130453654820599250002351770239580586485451885364873473297032983671190058775778934040209671501231645315920111995130529744890531973943325351067693097911572668193599308764977179106207173289256329477586626017982330940548300320775444736685068572214337912533203639921285671351739321579889487768687919873931005427949990885845975852114773582542526537463521229778207320590251099426771733055107582070578467003082520795994177876630809165460901351176666722606683861393069162742555830902373017852504366324391375328704312999698427251774801044358048812934166050448465266587884333765334640540870316315986933162713648020595868471442159394036768607814913101671092610264002040534400416558311816629646387174010133230359094465982367488103504978410546615316847264901600271637542104606460050310831332360248710346332386975898128454334482660702713787891203695877166143968060316086745433878535449481244177818236100126790411044078297777986423630034482209427303912525469640015966552535919168403673526970353937384315161657657687752334933199412853723865724342003550014576357242121794938173320223124812583787924997210987331277933405346593019931109762647490744576854687289328315139446179860858880917831790423215184495910684269226074486184838117582940255445323533638102651808574413874594316662322480303799392352911449369183827450235382744792431198591423019342745592221354671566927025609072717379058741232177868914609518595230624452569196644210778592691854699218176919805856143049155860584107762137405815598269700473974796468841493276963511285399076316140016613260029137599936012240684578756581833940690127552338103161285094204785405575669443722356654679199455629186814664524687987516661073252407691453137383928235237638834416232517866475149319779830217116940109847748736177593127585636671029362971555800279161184152730961882852577161268975347061012071448120610560614441279582950229036475837446196822544480161711978928222739939218956423021066064196230638768733779586410195738951599108956387769870801942015077128624326331318069144870578537596825301308379780727700813633297697498005455460558475041907772424780420553411503261001449912191128618624473994826733789387269893522197447283333485536180165878698447061797330913811909835855635024926323097343102589561936884614325335462838892812020032844903704484594868940314375605716504209075526784152321545259534720902004107135769710914245587285874235083895751828963805594979623798340219251275928804350785242884825295235931877846070557729964115063125534161610503364706722473890987777480626403630637290636604432691485219710976851996254321326172035151306800530683615000426568841295261255214143744537908847117069254311464080805797997645540655386378485264977974854900023069952900665612105949263970594083692184653233774144792092077890018612319384175778808208168420382619513718204712487334197349201089294938174103930166095354121687168397632168670064697642710580090920077040664880970816694323846835693090741178759900904771594904953951889529208746090852393644323358708523014751027564572598255803078038593365546426769134118725346917563839919541125709917573309344924831760837715795060478059868967592423166738500444807819923307115192120870227815636204397269006591100927118026348971909686990672587446440754827838670999622306309065409360701362805633749109441096759930319202117608537343057595480885564408043107554442531517273286532781306529943769464708202367992481893919760747097197922156075198260836440175673462344415933068021936461530709218169377087632151683512039493585147787785804702808523124423073687644686973678082980194668323987094998121830993760233521902253617499006342297153559525033487964562867317230420258558207071682164643806753819458193169085649402075213890912621855125648460809792166518236809397372898297149990200376470392396165813368893282654139914878403788491805913079458370964917950753798253772929999400455120370320836316846553980285030893481966221473275402186790443263472983569480869559679141778137972116333050712179486770060584293972965335959590526325990417578246204068376645890695460983907346963491807138329981909895545112962285697369243977592294368578245461403699580818481179086900994031197059469253645545491092299193995111123962151170418198936915360289969454060726910594345435820960882982760134642356245285672075758246254880730147331187941418577209293449430564423386691406406597159951889418150930595889598196653944540206827902604431490316509342305630115835485326123973329585192948547833059799222795767626402005498653809741294492471340473373778518286001209572961425765777329073908665078841128912427067740903502082591479507520989598552337834399574401273756934507479476600956292345367401829945016327433495027832137068602495732128152123774793836344600498408854505227346327511139623302304236310387568787654461868038305696193762212460459989473507759496026927236013209875832421334859197176127593044211990210945638730693323670012143077765285134879859977807338438212402216421602366847845686792242118456216768497697497654189002524247290085316020085769732198486308347032156807951146017201549159217608025776014123849589816951014830851502526514152816372095232000879253296210369885862228103139134489303984212006926831101269603416730699479081080070042148210368059282091473714089204370971959544005552625923257499042430264856870006962790281368574105791457071029667539926410493608844192154413398057521581966937351602069748824539777882859166316947750110425617931201013247817465369593569502945939589916170254953528254680637308840702101286686045077438567773010263616465477552777424708055803201406465629989354850377236161847465530075680780340095512619724202104893223984115386646673524367626684426733748921259397445290406743802698976431831380946469764686910127458173657172403574755603023615031041845779448215899139791120554802690470601718346525877076203505037426123603248656303400022998737690476518839426456218088699439980043496383260023259609924637842981048989468156055959119271116499863938810506852497486939665654879380807415587777134841239846193781758270481587001827136771921262657803050969357245629408812340992652102683123323732215397723361676959415661188534603119488617774597923060139470574720134385033537727270232766900058455006532444546376643556312498564502928784345163787755720100561122631019295489075553266635801378699812480244564315277275235399731475626696899989085958618789835988504732350993564977682608547160465130397166145302685506146016940493171921306602470100201990183950868251770776923795885605673801131059925958692558123002967314436709161051589794828398748195511840387162757290622747331944087626019059617924928831225305505015104113206668393359691699383847193880971284390800092690254810303534027809172813687271807657126281477386708236330429787625258615252783346506544635691628520924400242882268310686761149368593610828545328410527802125405777856358591487295062163172490550994265964738877540701146861235636669196419653950842418426794238193427977182553663024840329850608407029041420865675272909058782634787637314733607088057166001538114316973083079118978626477515121299758567001007261518535357380094481416409807116264692134881624493110852631201720311961342614035570842173350810492032682175532015531278015590902830491211696955954439639523223755033348242894443435066523818495232136050819268954369112268701217976474708579853903720129103610071647014785421728775320230605305879436445879765583780390261249397670983104644585780949142062004299809788255960449663792973030593843650935274204925683401144771558400290638171862430841998096168790750433481348848950584919785288038411798995793746139065667143186047816738400690630898395859403768794572470077359305571202791010591071419099205656913513546934287527346101010853256768017355495168345478229357460754136660360123647339135001824856086118198358192936723705710922875937729036936593532894335508798993859609405091470005343367068289581276265440991174139411854259130757754116843318302139423640709445376790223393784485235994310916660505992488519004990349136551951298479087346416782480938333579898564866456892898988004955342073488994830333157113112520752343288329139833243107008619521911000910449468784513554200632552923980461726103126951809092086684189226520972122188331247228126245988508396645998591169611169721616134737914748769229550124442481307004571886433135798071069620552618168856627086080000661141271495784436958236390161640750454108041566674692180855038411369875500849225200233429788870520855318340494121026788713362118444816449529409871762546242610770321613367477383408599096361286801445741378441303014308515040298674610518488269613873343480775923549752895877698152380661727398656801783507813566983777002870585172055923417627516492063498674767674001114501840824678053327794950104526126916957787133413094582683577558510626273824296146956171504258285388863733693637334044002506976912359383306263024336773684661831609687302189443776444322188576549134397041279795069831754361323116630584816375660492867771128212214928787260226106792724323977726576181171001220603432573552868854602101496463339054643650819381129838927971432718148550450681986796252349015043095324404357445711408432659169261225477164196176020763407435159864817841244115784512750472664710586774947174209280148072649000800753906315851841403165591874062946315619168106380505747821643464935554801741929126196063600723478827739228724939422976939392733059284113305281803570227368768632727889352076973711337921948922116623844694535844105543822065802614984119899375193574226034746010352238847123550504591208943067184712105065268746463945132718160168015281053894256124443889904229749774135212950426345392286910658461055687092963090743519943961799030452685371353020348262307261764462053784155582947119644832065570935966693508329016397433953190982565220823928919327883945752279800709865300972300600570407461084718554399517306897507525554223932326881975561756053845000854036088623498425263453511870141858563970371573387597115371752723779296063498460738189409291100018791051240495343724111890203942957532495833161873984082952266051133202569342435486737732320624612070866144992027219704612091136552294263074002391498223772467918643117243196197836778236333136765670996610866223076497793150631008116085637682597290745428073056439599051213367317011356700081950685804906190423614044597395211165590021077388183177129840771443033560538017187186631413265442940147781563592802445986606501467811208712968181258575691281379599637677918972170348709268474261077710806717617608617300054888496915144288848444616404469013369149019635241765335679298429320434110754063133594530471052889507069574471156794813752382577021869361114127450354365013471772457997868701867301480345371112155340157816423557685813924884608966664491241509790316645780453643711834418105754924957780961278819668129021797960406123547058181341482071619963924567497356044257512439876976014293214669093507786805469061584402875648635381766912097062845189580983246093538384297927355309444660232443118540096077433759930582239864362966669905957491981954345945816129434005735699280425247349332774720312825098162293297338806898908125819237978728262955558891711795740813242279790867959521500036112491432079263959949911761558106805867222271507396339605839935082276838682233985212247800224220376659938535976128673461805357960610933546493219437429337650723927785969896743529474346858195058385292662656945531285201352144203731738946120000304958534737947075969283417742121377834639667506604652702362637828987109661309627221894445444174514367213419144145715771709410109738014196479290843902131033624058085701932700587893626741919167862091445769373489685943326024322601575231244040626195366432360574891473907670957238798159917104835672355076704675960874522354003846510123969444302830247259477513354298234380707187834811446589640319656147068166368075616508287489183834793257164567572150174919307214897903758365079292648237896729198429545294988336053855025804078513062672094060558907285526060934846267071921534494864523663459622364123440999646229178670817148323745045146607552292469361176570361710737364144307351222647805629539452268097839977521585701431927941637059486418290239489247135508242537593713863010164045809845847587444096469045307703589602832214770236044280018199139662927974899298499543645349994635228883401781763330064774230123648418049265673127797093010214949559804479945359091841628094696192671992504196027442016544672254619971233541550130769532372537348589703841792014928563596635842057120813694554422830284187001225019360925714952191687955403196616822441611085366806743466151080523104636698587521508408391143527946787518588253753925596019361589849703083651203401112510755109030049739389895729537341620745634460260010550004187585745585608460201916427968172154730428197592356220266060796663659953609512153363542116006308211424654396465917289530317151989644506157890788836298183478012788262911045775590871174051371010814324616227815731514238332479933112890814908800400988621940338763018146554928378005276706008008948393775751556066607884736969961802001332374505218471318945436743482259912416452449195764004462283209871085846597229397206377595071739612055697841649535243661359932673820484128044285412732836311264960549951547869345561337577075925270236394198040016611773216119413276101356410880064722538430422323528657953966369832604188948683642344598811729987572622205770259054865733508811695380972164074097227118780336726061526771402141143612902726692630687772265630683613830163253687616913657024985540958784659143946237219647737214302437087347266887113675329356108870229856220704058227557918124653568802257030107754099101028015889376091422109235759359540671283826831428582229057851009757141786380075638048611071270887842649835248317134429142740790018690493475048629573766156290785093203447804727781278680832374891876571505593773648055237031236248984451979662213853195747386969301580394849331216391217322572979472383327121943115774982142969882200649790667817570581454578286548725580043773654190614155097237132519987364826475843960408218101928308978735552271501361798620796604241572760367771793703907701615042915339321332271809889963162474523623390976556840458501712809734940785132233472323168908177919686981342289068843519796784112430963651127070835243888582274575877671697388669698165198557235483549621847808931047171563290304977720004810449268221946684039926982268751429681560561982701725457326366013446425553868423688740325418373044634169887590755712758514921166031576057936619566876173966182053293086573286680811901590051996363631363004494818959130697344751137999223791284314552779130042122412416342871115049872948850520057127784318555017499869935415648902108420935832647359529286046005456509372206896976057011850536595369981869189326522172888581504187116259198139308272547991713194391863673082274084992347314009244964263629299278723514167432927415681143034467443514618161500393802334048664774380475869344551751758956738443557252514141586557207025763260867472345780929323969520029519383444848412635935472093119451130400830486161397510755360066022587474857981424919624855204658950698086006568184766970151606409069298481665532684434951326470102149071784234041247731046572942817107894934961231331109143160462324235317610033966522937039749408043219352427606969913294961364828420191691083300047140765859951893859276862060700711040165670070221786117441571210307041041016633769770496440495680654457898451841226178399172178957771809960390505555685275691904230781339319008826323575634310389244980948308342370487999667591846905702720173354916340610222395051670962047932684475900129052218289007830475739501269745485704110955439215397822731920441984172046757629952933021544954328697147062850241550099331872644218405517358291847902413564870508478147746087002238832343404465807031137094503466307511011432046629993440490214762033787306322664391501963909829710158876982498006275907715585843191039927547229522105767089844752884337701642537401977847594600470013092603307151319033872888850623879065761122423677198042485294029638107938494820431905863750428784430416486908758961926250342883250566388228288842488001989966824249592865493766053373492071790172664527422435878042171624300678389665148443892636169262952386918629502213559403573831867742376198632260604563222782311074770046226489207599214786694397053286070038549205324848057105982381963433721429805022321906507624633010417720227497202982391821185327220884727899728977174414873201528931639571383853424411415322542665149637781101755855535482665599595085897863438737511279664946285638422868626491372374527381406060867819621881184414447940542669755464834472084962112822878759065248784743206116952383474197012747055639152094176709826513172066697677372244700376680345538420777578582618396362247638183537585965533782192246111670148485548515531320630358028784773017371048439447500679887707655520526104226536064028401076548555831117963840255936771365949308504498530436246384736599122060565762795559902178493282762123791705704029018616811317165375851709993868227855157642743390400460078955916852975026541296580005057376580077825631999652268286483975969308598969655941426717368126592867999322133673200904729720386896085453360199754572498674711103341983123037285096911606632136403632907913420201794016319301618668525992748004708844481629096061333680224191596393624565757257754577001609863706971784731928848636618296145119557968373051542976594047385841117732806790322007698717020383552699999563102458133368380945273091735442035688968397895279616081397397125812125399234204605714182550365719464297736046342022541119402187462168038856227636879783475434744824643801721078869957632582407867053116852184149083328226079859286395078223698176126028187590793896052187415261694374942976069166386474474800071012468807464292384861810890326105917975714150297851938452433797993359447406248269798191692824144122573510651228081312952958806566912054858131472628191296198825543935894661927190552272796163747235757586875186482489430867294890301020685316019856909084900569514587620955484151489052345290013178045797340260280300123330555810601560266782269943035797049221189431116738402915703595649258951539871970839249274073327802906802609066918476060237494753905462835887813215829179864248875556581821110446460390353261360970473845892832656137743636013730517932203890414554653359947068536848346946447724272411739199986192323543296452562067781566775322833425125949230872671827150537054632627406409904205470013797980428928219980958566266525607194822659570923906637450831842026551309165676280130808432715239057919221967021577767463380055441606360508988350682383492556450663047120860783332387295397806607529663926583060956931545806132021424303676561243484770753571509930692410728203361127855061077376851279431045472470800031575775717959956767825652664083703355904774930006278018462202661761469396042949283683269373281754378693614969512939836022813771684922380091296595855350606776652507089434932320309002556781188567510739388680957037999298224169925901562698614325859587913718738197471190972114942609765742855457946147235743786273784691142954257472543731635715623383698476877415979858720996503292463686901406332225495064184159855313073183391024710778299881679958290307758365878675475050198671067221121674364828850809851151314329389914680781265794335836226983888862004588498166772399406247483820506213013769359359178610177170988560700313610930175249102257032956384501469583757891703140965908035736747833053498294782451943781686010748008989529884128475183169129103709013253249751208058629463596127521614618596804301349814310264259564623963472104912897703238556499465988016438019538473707605386195779808162977244979332759430432017617452615196096966606077677307812687744534932301579759316420599819535123748509600949708564066301582078234254749164228469867352157368071360587992740458920927613016248253248498417692549627733350054329104276815515209508336796898952467031814551595233744277622873236633557971818167042377103231006865469394290983199887592285943797394399620034850152409034060727915176445695733901102187167752918942695563796428671523278283861482822693882366593306850390249791891999067467311549474262185119378063254325654954707526369167442294639146757062203590675995993182009472776652476809364068426191731210377695290841265821160826892674885135689905087560121671709613662587297294332740566824234180585377021921087382248904167674373182296320843536782742540138135688540512307630797239505651910592149123084347831765122455857790908729300681513315688856989868072774621803124016158389295002036839249998155240493178063952034879653548653755183895625041983338888149425281995348244343092595321151232285906318524953652658588891637051426615163610349121126342683451071366832963643656739897619685001736251492356049544236241163475103951604345140479597189274858350614467375873472145411547471447286226217117576163140442386139848928316179804971704873004934794353543723631157497767853796723122778778135675720434071569729358053111728262711844488764047035420045815851573231335702646632887945155250156312153517322697335305552908192041456379815509988801711987961105883155555907849708474444323964026762824263112616243544092160080456614700167919973307848075488947551555465381776385346264300172272852760219502593459230836518122619408544502501436719811100755816742020940672924703912646137970899682067262318000748968677492402605393371030666674975302492442903864656840249710763391725604442342069529368318010534355397686913196641220758997443276715996643519014447109907736470184104560281139316159689597881194429498457668043388504937799849218589671053368940664447554291704298751953064542213809618749824707051051605941272583618882041942982592491033837632187806826934126853742110885559741876732692855470196690726974069675154714153049930402150541783504764702404645131286890257072863677458447093891730443579862467237142716450469027462183662709019058799992450333511137909271791720339890076863625329793143304941883776764584201792831446167632892380407367890284627479992376506183292183446491777372716477732993775404122989618086148683796023194721578769113746694341223385599511128322737783298328592162704807454462447302193828221790423077288029170716768401429791869831748933349978745236278711075656320545998133714410648019855644191132523436902324795598751612113707830831675736497942073456662456405284332479125327795830041206445378439663130209582950011585965229982131426724216849534298853079711103722743519377902955615956360391284755152140327058366305919090636174118527740119125354367685062782769504544547747079530004123089968651805876895109483040065388282022737789750719727270201489011222343542965787550081857837120003927579848735497722061150695303884115794859084923719304836760461683803940246101758115112959407590918425348583293423915918534298491591274157279288199156496664059821036518115389466920264898385594376174499887607967989412750201276246467026983810841082961244192548663562388386626667800391631880540754153516027825144573711061155604260515036987563657534158590188578867877275958415153943110188934156017028740787509750665372827821705438046475588795670675158505018571190961177260079059894718618334826221215956598393627937451436869436161395139476843011129602160181814207126998055994081188414741154543833964734707572041398485011209682050749500661012677690484997047737997527748776663573854403502288822076734018994857886313903515522450923979918059619582651704428881126994715330715968575926448348110399440430170698669687360845302770107399104361271415562122869597915112972853382572212787959604216699694528557454894081161649591682126546500499770040539590806362713348354078327950474290312686100675076219909825284727707551425675445216520250106826902235260566622234433885620070214389753614097915602449642550256270174425918367373185044633067237011782743660126179596246647205262145382958498201309219709476472802230879414113450076432001970800860770071414902891139392318815330906353490583438040138134386358510861156785649706111951351348943985587286452247550392788046425651863298112028211568398325197797715650247126057111506451820339268813266150691630731104671505841743291166378329256699025552380797773630597621056693324460624403800266988217949102797006287047102855010772747421669026154824569751138029323533681016024153640479920431155871525046574615701242208512692358676500704503747127258334272423890704099451247750893390503889467239279999462223748128599000560826200868322901101618972501582857980533791200534038682650414435518096776113747084862871387707515512355941900697537861221052598553548056422302694401585786628373901631777108078341294101806605333096684103741614522546758705583894589410755761140503667290869658512744698537587532163280770152534824109164629561492396600837219819824152482165442962480418882202451943289226120883782097803738129379647166414155673084103331357558494489078216164336322404207229428683986924451196406751446563191652568573286173506762758591904431593515779348667508703910366359541845776519580228440881879733233556499588353612469320579078448843638280905373857437685239768232396588228783292437502965686509351567459853165318182389525026543296436253206518158848609008307336046437032442088314616234870998149392226628393155179777061135055528451794063314828568117022690337541495940088047167037943799405458107955967792820184306690813153035306270742538721407387127107987433500843791714717109710050524495133605590126168625256720713291751145466288089600719390200435932685599364126131533509477583389912155807976142157636257386988768481692159487865570037888376804865121392561717698330180603317617441186053204982035395907392387546997075159473796149413330670444111082079272208860457360388681531619234685923220032206869933151503251953739168476713276153497520956000628936459788212354772778391118890280046147161543623254014759464667760133374526296578256495763770855994011933019003051881366121830841114344971088686042448833800298339542390414779366239645516429067502173999762385955685498191502066877591438797196759048536283321734110889332861834611924934975085455577255432116660988877352546386587002472534981814810359259542908619530408687019553119236832369784462079140931741428614612758499989679694889309775311006232838763871876539672140481292341699609495616531589814206367660111499188217283022243185659898337198376151119749170210373751100714046666765058236258082691904667741690676337078549796131154101045974379837670411794048233136560659328565469656819173052637967082251666347537542557741777723521438692544886741314611809517458632991388149242230989494875913310805816636660972390158970844237659598459998320871597761668361565994211826976235610513845027473245678725166753785031275462208640312117587403183442414968305536949023132037328651840794144186581043575611275243056532040886396042869442057887527363798115617371291976261713542235267892424683469000256214707748222196341596947995917507247577613074680431007276118152843829956485407388305598146711324289354677991243072116238625223237637589985335973289103842144669910050659897953070866177549518818512836184764775239473072831240667210247970528617107559807014036592439225489758635027350921019396784103971445353382957382748968794505879006614628868942697541983456213595447568580588767835877893358081585967776141057012103997977064756426672458083618394172997248071030488843753741467266635354289320574396336665539611750113592298187525343513776096492873486541109361898110371135781204750768869488873289682939900143606085892799282582373425707200157017282249164247830732428437273403152901873106371135608853099959306070678487221357401136783789173301431373273083967235279614676368526391860362694220414142120999469917427865935182133221559574594879373815058451042556335994914258918962791590129969139784511523308287715364273231471238363116825937000251504727253625139776968946385132975588175012035365344534286682567420235553288399733267663039449228198315481106395329668507014480821789162468784584303349655209606227052702927495924040517562743640619830039798204390217857213442455615090685985850753636902662585830014362505906800579554268763543715492913901293085733696184481322868162974455985842740258805662515877480074969920514457185677230118125040148173703343384301560272216197931883627266679831302049776658853484326577769639734040598548999344620022961419840636280013017012816044803210480495660687467238952386792124071854640860169191639044930234054483753847971953051573325413813430142319692846729106927075733728749049263517441947589590070245606168307371329498420799122705896171828112647753021232766646671919919169303108175815298681136046854090021340847505668049032532040302911826949291004046971922885545847240512403548850037681725523840577290539499672260626915541689875882993167739007875642884572522584606692999310464576830395346899792479638338836086230611477448350934156207119950457304591229709943830077202774050918716808898605675959945337111528950139561529508494552357113426803185258914953186232932163597999489786012802282529393439113484376028516849142650833083549648185769084752396699015641902159968738083793652427210681178774876877787164861619981544977902687710195005989715091611395770864141503807134015126360600469358678494266320342706830870110534022500379132576932700654242769704972090714049672050312241832540077648150414706267841260331557396963160440741917241190925310133038012047623550089679939048134641884444188537943866686792790096249436107063911312660147639182765034929166422205254564321786599356398652780663444099687999277013959444632382174399356859102764606831621799701748503015169967963107680597512306405902797354863765001649660637254143216240398492243469558292530369096526926098543297224528801176299330348987220551106890661377292914867528443065654966067021064572992977429337847460098774371524665742157439023033441723322574676732812977341187807202963905258570296081040356301398024286436182670797400233826011786144441548386808039805008282490582861168604976693768309378044280040439973168528955447738581906510523962395693759936728080705708187289128892599822245134841619619780689812865519787615665978677291970670012756142022313529401561581195794007143378052453133640584851812874152459737947335180291724945383821324708490371730438811954381170146231280561124420039126476654524647504733990928546511447122105331995109318075296560592092627618095356613691648665501123043009679270542323656015307119805729024870251318186773636523270523219882044715170040854494377572543673566782812460565267998004326504986634542014480423567103908486789459090452086423036919177504075221126498487488604177487405299086042382104482360228238317343284656149740780936832754357300339671816526145240172720857161073568692930190371021644584668714457821357485030287544718565484919825789142713426911691857745189869294047911057391251666558653845261667651590558442724332721977316906427880950367064019566454385798894994620235160168723306251383001726487940706195931594108441444713835848090270578054221720515702284911382296140938176942334033111716637144370627851937146510410361107431494057764528522182987860547950595992660876565367631302870614223894184817674882535427244799726030225269872617694326019435751179668285875806503192437855848999090485275369902503485099190439855896246053346990023870258632848265752590338899835953856735203843388694691360191177316931751074438208732611636982155883568375382040185066125954529542576268315362155414867771956500657736978283352086382778684139408797631027071900374180836386789410902467241486176484287821903943076027741428773444208472822766155548528106892366510940612907789671296885211871893306438983355059040515791724450226964764096220325240854736769298430238754540958963929625185592349336367103311293712947882762788740392660417432004669764646088198154316956204590410341046154554847174448921316490053205516178344213438229810614675929443498673020183842858311702480639533875244849748665737130321341718489580340699134402224151697753126298762826740001739742753582965432740754972093760783795361623683792823128534383397620381740779778887061567902683243312119576611870093233466474318822473527374718198766743379613783247625095568624429727052775437220891108713631805392369699758091108020474622625117335829765147672743549494174669457079133252899424415935539259820155789649836478240174527680239700943406789279808445893296702662314898318550011504644485824123330018138957352070875067614870817833302702608008527529645390543613501851453310359244256664309777603594327939695042507658262141513791359606776400020738323972152190787293481107703792002636261990842314903176020786746539801891445139496106361922885209124205060435414021790615064873634186173817141165093817273309533310783631711690317304254711917699347611574035112067345948034956357610143401624505096911809707452055453586684198339115715102695435302057685046826597384677390176353112867872528681011306694971691723430845711817690630175145681246293249362702920310335537611636839554838146652815243255471663055878380296104093044418601835341673091561649536952995979200492967040303623378648199653867305398352638981664126640903653127117448902273882527180758020561261120847215153198249169791047415415873530418165568918676227241858273847484773387651412237277873713191375679143690691809031194990859242953973158752631520350845243995743319762443923631281502186070323407510440775781570503079623832752094301795237258043185754172774281743037250002624277186378503168875706070868525758928098774189512165586487237548119809601863391194173335061784599007299701120437665577366295457769976397585724044728111706438584605841179728909177061494341050015313647392740580621535442487730343613221068633979555416494152355550546353621454099673929327334342248161464942783893526853170764191939056389779896094536729987886673589732594328049273622027811606129963370290806993329498360316457741685256286360810342134524834149374236692829029101203885810452021303492711197768012573024447874122333048433227928200867168869791964578775060461060739361613649848723439931651917516321619306683735778123327016459902618985752580877785549903760903631251329869507262816595249878533071509870169652795754017768716611706786876150036364460950385264646747862429098428115294516735762725812922098849752645808956064425703533976659329271098526029655186089939261326922787466368799081418907547244477643987359714670678418224051020743072693656033017174198280632881015360784040667623075312917502625503854609085090919099875525215865215031604348814193902494689584238021566356484025589219712056131064733844176501648254032557710593473061197487732235915114425251151486379093062089446982933068177091579810311753471792019278513309336620225962066511754508849722195519601920414841772276127872593625485126130203167694646388906505132410005602149560523486999870058224834335982287193506032560969188748176818174473697443034823661244248442492762045916390259186234586622640379644666022740816427099330306818902834778402967925624661825047736893333336544410077291684561392470002101950332475833309953184073865968951172423079028076673443839145838847285823106045233048305340257633021391316535911633568292533327644025977422310577605515340839759700534442450199078586821588379154119876206113351563154631308870139708024264073000282227472100426872208711581369506268837600764656714040013066132873077035377527956297001903551985676685658753267853310205549778723644822802654907633536272676307033571406722279313023020521006071733339566838950541192532493043726596227670206520924673212246939177499039809117662870203051583886644422597768359798227764467573970344140775742904071277057617159675297685019175589141166344361859884836850010187437933526317436954695490859288793979371719304743562487493062525359163730484908950123346727517155608779485260670240255455766334755325033435413367325010220186367201715838075533932267001694204012408894694835862022988411410863459421027655457293708086794133024980737689712028839093077057722452793395767160070355585974416654535088624538587967316661870054719265693531689777059991026698497356060315576236671121192641090692061402438154727925188781589036798658865954685057013987917586836803882377163585449528685436092105743639472434540839080408207172838432896273084237386104520084778225826853213843298450995812800372908817311466728797282992860413550256087234911977623610771344354315041841926903093588761866760701862624774006071029950675200534876818504283247498380503232313637343537476539985876458038811022865878772339916300586511329675427974818767630469694456122862208180603231585869227321601905089410334072523969924730953458480733540224110388506975692562524968593674251441122889221967216009304405389053023723228906222467646153497463087483727151468432105642345161176944822678069198689787030299292329247767129115157268715979184001674371680648984339152802712253058865968941403796621575658190640766960690986424257695883304815500887993063543596858509601506860019735524491427487166340623916727200427312827768292153691411279146125939951497060076777761295597808089174752420951880349404153716264644333960355939126433371041806153805951813079802508804336091454043810309969446813058130880291412653041100697106256267756608446343589448443346185724562741966907830410711819059770464879038617324764975048280245044826137683175915280198587700024999911633278784820095674270947327971325711425952485531826785879375625056405028752486025606013860017903808304670077296737323777887030035556279254489479460107441634675924760034600219344894911733780910656464153854271347715009457408167108406312817524477185425718257289106654705227467846276142886775476962321578814388836583860158438294463785668215017962446769482417110774800708185193289836904820330542943597531558922633186365548277322766169966131448111560059447899713954516294328540552632224204723112443685959418221908743055258733862175013589463184935166329875691674403711565642237077204895079991954529111183279016974765037245885853002630565113247689228496239869865633705481500937437130810905760860331708198436533108996867888850282105295120657777964592642096481680487002811207205470485279667292304495009367829123400394064105984324626538946520116927314092833220315226042676606392563371842322136787691278917947662696897242570861480551307628887837200970077805086973246307571177765758189393323181204132017323508263696483210174104030337609750360278751847120497347491854406016663837133307420824278213479374661506745398817143688767162317498109023741518849589729888200523925568284922681364968318007131302341754224110216812502531212340616486735655867197205516930656140370428203575222115233466122073963637195646474131407523922326706708282064376147063739161000728931881233245094948703168870761313039582457038124646626046836831408830185435593398957248475563125107888329237954857530246808498248821593889660562952540701811842528836608068306153036322549093595544385500052089129673737377895478535009158422298499886469782997902237796166205091223185006397483421747743419614482551685378499407862080879262762930059683394942545825091248728706883008634758720951185681813456234539980700766111366348867200678203925596775696057337516957460424923372270320625577252163380254303015171718051021499588424588244583221212838544991772249683242889744553387188465941671439965238747768068036815726391839337265426879239284302888596131110209030190235116476400574384266284588653440031404682377942131746413169714603765725418330026000938236332344565033174155345133240616634548007507102743688574011622938193341479890671720614261598771363026654377344642971499646618727109032546921869824252543532531361097446848199089874460647267182599410377951822941488387778046148977187617104791199806581892042944964639712877748250080669885655044078442650966102351069066120311312555525633130551088413344552820199075861242456439544315906640479417834006168628367761261791568126725469198190490891062306065224638676286368682085055852828552875284437153600342562036256320976371100595814004863650270723065459965514336842580777542382228590746090098766596533459576549577382399516049645102224580612396199943962327271787123687156014909236890820177096997624486362138255354279358656214450703316540050585556149579848494674758322770164113704938620016564785160421191509331876890832456459291768076941435911203570485486784741362464844305780523068910832667401925321434784548680107775879352719170647327069123195740645063335908524610704197854372381595971799948032647297477609175907025656500524965826391760152331500552362921217653452729641403324959562664849423693278246921012760776052392525175078726099315415277397080681179115592787396689602206794005076797448857421180035803228388929863462570029753734349492196598919283979655338303605425530671160882791330941253140041778048782251463863631064840918731742749072446402411465405266112141291970866181049990629709956726201752283804523069946136604896903756575416866310408029518848316693700834903214731588806547077572536940971813426711315327773684556347966210220651670859854382870760548713057007620808459168885707915689356000238678891870504843715430069267238384385478895175168957520901821170698642776752128661661738792670465259180619976552607545477236527259149727421241309115308683831587939174927829719728756069343426156843671797775433440236700884972151580290548170977693368419834056665275298988570379861998813005878921031811028292085841564991513503250248942884958755490771767023718390004873559606811536961753691514145044511087037457773028479290259891364975265061922212681114013205548863632296015081321100349889338317025508349341618301311160587829420703386778773419311393499807973439148192050010593597299434107072557375459129641691216379875071682920001365479306660344415464681721075694918199081650814920720115207606902987572768670956136884912111524410773299868752170170541921331962231357657831211383307959237166105108522761820131974756526214495887987696713936059681134676997685613351295848282409426707352438427357846796411053576132502939960110476266015518935202636596244144158544224881942044988424981172804255517079541813885150461306311842127361106780473971878509156312210325647198271025679595592059483779415145805360365907054124763933545082861755275901429266502566633680818036949240438487761797061366432971719859699072303070271001898495274206848672516499217235846492756456981684458107993760863873534686768680720756286633949804565314680502825286020461078610019790186115916226058499834724654595155104301879206388264799682745695852551346373744585648052624651486388786139183871251168826534727104331399680909748306373473543535748215986746482568336688159299465449187092186119971365781128828661987609302483285090313998103625022201314027023296321048926134137063329841424592717307298918330811856194117353982296278584661042899667400030201580191703844393403912587812090699855295350078193181723313328438292675233050801569223604202499116387699678624899253333971833690791311710487496359097655967553238543216519515913172447053229362540260073678406673317843418443664224663354721802405197244226793620195237742324939030822172791725749524600898282658567176603158253096071161383489235204011751152089961878344049697626467994612973536035367010301092467643944209629584299347495258672501626474881932157616138700167851236299002543676134368187783975386714285440337421273677691174339041007092058595276800901880718059068873475616932515442596642928093548411406385015268596663215119522411531977494911438720260159791238627714077647182446322684896467578665991884426859898576262813298825413409350445148735420633952642430561496091906118138767019617767511817555049802579710337214178409516067145352218365030008074022809367093505108966411593542486925143289390768505994309897483569868533372519089547303316687592689612539343858487909712093363902899055080789795537361565677353561820785594741872711105697799861909255130076312230870283315045896470458535595848988363678575241580870113718975231185553085543848699990462043782141992865546151458277027525449542866723137352760400178925268243891818468972438510455193295238521122289401225278686724350157719418860979349558570105281175044382236879138638593191732676347431096998974273164098502297681067179311913972551627246486639690343970407095543032812117748181816500330642512876222235517683155326715966578305047381713044798198151333815010928166826020538268337230410765749648925718770464873939915524362621236729616203691094454681253680415455251983607681100977736618059002713837886198193952290594828250545960271746400457309107221847431903668797172143531752427994902322399208971939862597002774952519321825839917947548525700214083279896945836367181700751125811763723571236223870326428114188923444836901284925219622675651607620486257310887638340121316919584002154244567825129448664856033928076795691076131872908017870208460900677204119547739831406837291405017109322497828713234188215381820369560453903845677135135224703991023651651971042907945288426497931967656919170861281571211783099555540708084201733557037080662957946534538171263963638108969655382802718054562013259001056127999643479565119239273050565808131388701413287549340787057875532940784617717889449009854101749773511390316390536254686147163041020697147583876917356349878096099987936901562813449829538177199437549469374997547403396131365812867196703651725357802710182717326403210796907225413084035135921072330515747002697045637297024262009372668326030421113345206462150449657944281424897398451519421256340054322796893628761640088728743858204417897680635207056201396369294560210363119756350347528794663215775209690152026113997363377392454645040131159847673005928488938067482848866942044492765021609737953007019436816783458476893245536767397170473839991315685568174681921201708595210815017376346769496015360948863866484963326967436451673477431365231310562359398175176804181085154253285197820708091480742474210577938280862392274009373176773301658939332443130850105774531098355680274786757783306264360211280172454077919374428403287939167172424829042742872081038945030504747128697633498778917413573884416881815297355142657830253358777191197439082694621521402319018174791065883074998589400821869244070824314589262106295097055967527695185756530691969380435041949121486762355044157493393484523402497200923319089678957401195426627307050180013528861774906893194777586148815573652363387063665149595752912494588733005008392679528610533611244253251320072858730329340279820902795396528568999833098127808384135167715964572952928129245797142449671165680102435325336198032074184821061943673151992430108695937573128543586779136163650992270567484942297446912844832658089263809210643067763197736514625547969603880625506828849450004556544341730726547313459747079718888781009177267451469461429040203759117814469291282198746076946346651234078236740238292751760395833815124494942770172219183693255819937454649993917401662177930194399536097756955074938009102849680870627871156981258234711084787732833986917303158186035099645323820487166495763747888909944125407850191214073422449932801578955432295844205375826310945064323621272269768011970958284433042006008441200778854383264471141797650405632253301582899823573033149667329677561595737680735701444381958968680904885431638762765608907943132392478096532507513370880326897379729215549991628739129169944224356486737545902408164326219025926335295166005804757199452168884831826270703367336095747571996716897831387243035115245929070363471045446839507785433613927301106693179329179430559506773025257086406882593770020863946268134456194946692630180995396319478840036847779088319905891855391849825841708415928567822543969202294115310811137647673165899889819797302353620918413870363572514153085369431472364087064156930739237699677591857326219588112869384361127179387355233218948141917411892007804613551381011557542652491003392992705447246434811020128843924188895583279016901776100812178808018006458542012499931134736975209367505824171937459257734025284826966474598454488129643015566727627549359447914269196341973865745595154402491587922478400608618147843910719600832066105824902022592720130005496245277627219891221054523448199956689230594666980647097803669504813455710005714028141577961422811261391479808700956921772698679677490788268017816757436224145763199822045402715239231134135736528598464856508202284531409125106133537348726840281598456757032979074220025675042898350501500432989840085957726832279541028538482813489395963109514941850969210704155922430611969738395932975506969502433913173194925882176654864798202835518967065797467655053815961355642017468037234117083855788254905967701863539710771512497316192936212855698326356832034867379361082752348715507346137003766634219194010893217282944398919407010884843290034414150943691467534495886420144724815039666325788290079195100793837678317117734903863502630096629940946050091467882810944412149797141228244440190768110681017581739527393914933394287947918822360462966210555630396102207029093321480588152927031247572418117787561717658134868317643338311735656026806755658352355402311060710384980059429901197040666058561396103549626693576992197184958246506933742500824117405032318589271820632478446430197038320369219645115902718709721168048962285338337270200454114173045723228642007110464564678821017067938959893831807604058838746597646738692990481869130690273977312042602418348205681379584844747137665937164369893430757856708118206485410480878091965092042383861625393571681022793263705754326130989643703600373204632878737660688364267140687310099532081361076731949926495490464132274791633426508058600035883627215881675727685267062605082736838350483604870265176640625650109616986573501919216637883064848260353020033168020699395583656407084119908538031291238518136906224155818043010979867086759050327263871605096631787337273185116430360231722787658240239645900226528857709138177579938523213173909805290542076313708411147479456306755312278260619788073318111756985425947561817227127740779209076160298771299715183703288356985685287103434213380750781411978148031561365265095944674787643952746782609940104228150180290287272718919541145869640487526858806378154843824062277528328670113132587301267301451789164130595829806555979653772092205703932698437775358386515448168574169602216456403546355842897915938428223204722039773799339860773206652555185399697106066100235115438784882312878099190143595257650138228535979449519413245987879820640879131401981813689265665022261723291071561727343022371449342827158720792757087610522249343845935334847001821299035583920217678844673450742541704454200619609631388083110844702420874524170211231443759330555578109928241359486587262723286009278320339180960418727888557170345576525985096327536713204392691477523342233622958096124233661066987698706188992691423504664891647182524915694343765913922320035945897177444973984299224158390583515719317577037862930066264174075985482111502947721863836705228601828993177233282857573479808770103925157154210463349203848172475459685333148287360756971937410678629825296465757611426472804873559569494626015758844676185310022347194207400756659728346051887456476722790484545374534480496844178275478209066825537762650129562213787861183615130125532373674373598392057010445420781765869599022856637576828337156346083020320430557287873303258968048381020976850072124726150546726759082943848503726494210171612001854026426743783256450741117383302625355227361247932635469329934917074605938914378927597836201215888536244669059250662344988889615824124845191382706665403059114077862112845138747512579839360387869547981403265813376267757472522089757605373811851846098283314782137523147542331448202070599448959034380332256784733837815991937120518586065657090730811273964948280418112681403406313843447298974794136209645938765151813386900241476600859534268041447247049513052968536830509323996535861963357688247413301656767691625020870253636295611099111509271079164026570405576368459823518863228392575040824207873604928258013833286701454156558028455161750204226902747916637354612421799242851439643977838785470547528806656696989744228618638976247299988367765171568146051983896676912628447523133237647857920302697638030045628367931586366760152115659153560578154523020030173350924058392058714183159285365802995827927939053052906981794534531641956616165873509941100031456417541960399459181860322633057725444273146269941483124534018358063050948879419020341134651276349952057074878775998426197823973448665354409141951775347953392669477386289068450695107025869488900978611513891030734425756835849402875728329045733565397557799486134434453233892856659307234702858651977349757367041603683207235166203684973337227963939283737292518051878129049577149409808864949192733026464546507294084773062393097979299559823546208648275511971886339648904937231124103893122956223040306767684515888104723041635806713539366949400738533512214087973556096652036230876713595549825320550724475398948016855229880722389706877928816045860636509507500662495696362990655909839057866925984091579937542307548564892106281253028869440717905705222023451350386951322363980576753597617200635985973894476384197494257623570156620439498158530227488985487974747504093691113299320219762720636237076052809838547019542025057494415357434048214559592025194344982250634728844649185035305143756862099967325119104759283992658194252640939230966284463433085808556676212392145058527972138414208517115449563499075437231706885782004958187048835430956886022109854404182048369498270595353691346260048262853587251263536308200514383073303363771229925040456898624701041470537168224461386553394345609956512389055619930901540199584802364842522111498483775483397712957890413522341463505836108430002394025089422762207437031246995289146868252632558925076098822256539652806172267853441105066505398247799162198723517703191912340859058333910007030615833830809375938649376904277636822571452046354707187056892821582246708419407311160296224120920022580122037465507290198102154219203339789577682147357448101986329822858274935614792169670241818788429223544983448999423069805698207344626143123744314535587822011616177516726519395268303586843117316611060284935290128486547809895216823289620810975492716858716921719815299323020576801728773385383035231863045315442223915208579425425987286444042744928324282347464477732402377001889357498348197359961649974278614085943195615532340031156925896389476510204009651901973178418045445539872114004201830129654295831554885983845609282933513561482296113889910223421872689996756480282489958155515185876378645882494434409449704847145106954941996850844089426935406029638495221382663534520162554652263612512239643583401944352218548395063073455618606090429906217247592352656724300148784127471801241073359950477326014208728731355733612148192908312142430904206024611212868328160646803351966485024736634672750612736810412718703886500715688345299823628532487391771792611773932035052638840648487933217356205090347997733597333921280110243618375281436799994475083677590413101011653878223382298674280447987001955783705548063998610859476869054335422442048913612056541360506448408527391266522958480740095140419416840939566590228488682151975871419911263038340103428629370599970878714855684270855092886164361413777370785003144886245703418776055137043620579155955051865666672342986085327629300822104112036032740575603431825199716326536453471858576950843073699428590554561522409020680960085574654812254564152102642830981260007860504255395659105215669560280078287085030739054354448527847715342588871076212807256161330509379866868301862689060364903093877752003285642890200628690678303684365417248268527450491134718938564108416725486263947579625508167942159274911366279259516424713447210976318372924813519774691896837423131872961091948901145666498880244866840976370745419240740761258265888061276002457873861932363322192823580117275395555555719913135590510462221607353961966360864103728371460690010707851083663156362864667415488247320859611268784035076348438703174134865706929909217776085684940864067109533105875383740856349300010756121729149136247438982941599202479073786988921662939340469048329114426965757959666271194819215464771470090429824837444508633251535862186959999729753967287202631602996356411479736918891158693869013653042644720511237711489727727764285110195999612602854990034315266159801985194756527481344652872063291222455453692801692638203901561948002658718944616059698079362653053084921368581036563896395041978989440411093458321464754546707352001321622818910215907217784076889818544978446172406080771102894144788355041816016858456795602676118034658441278963720440404371446465323804247901243334487473548505454409396553109989545841890449823167376981858216516968453182071483164065880862105042717766277948798137014993661398684133018855586496585102966357932284287553075324046984881155035128082610048039166805820322902286421941591287546194787016850423579442554606956783471009673397442558907801433801534761057455248162354522693717848346702914255319348326455081994048643879540581455229189179345163640145860654451987547243691015293252960823573228724992261574233733044770769478105114194957590100238619287473724891838999109051436189641795679441812507399276559812871994043824208432655815333558122742079693128275320334930765753973738727124648539039519748115708751972641407193522205620926363870529170620210262863268849631843404468697394329411358978021796821336975539745287163740091001472413039144002162759963309581854619142595495287385360061555764458424570420375262020380855907436835129328875549823215927845639771302752470436432874976739833316327082186600765386823920879523371236054255485173720107281470379756294562693718042898833082030560785803912108095156919646843371869172653897905934320234937776104491361975928154251366399663001913010154820090840173415969926480370206222819864152869739156431289402456109377890708860983458944177208425548151286176285404772068852495712124181842646375634896966130558957525985140047682923891017075601096775691752372524114769924332552224238968995206295395011913607019345292070797970186510854047556665146452292035761038350331590108390363862089375052534435276773348592896538975127735437693988159899269816194807085994910221548362913924099165723356076822875149699646033923598915097436213235419347090042544852282772477180169013303736358402814597785503035725643669107636712656028145428964490064602223220483212670144886732935848430884962645842341186176789998564434706968801420777341245453243042851085127417173510623997728794369547366488905436129267914684774161412985283164958218756522657870675537981547531949544598655580993166655065664507320297657189204782069946436117775484734172626277303248422700823882888526387617761791286420303716615482252568036382617567489948929802012275377402706938665228809258581704078304437941488776148466417548608895657609050868411487538429893570102812425717916169017326341711063087459566148381509776046470832281363809917076287388008346768813453502463578085657445252073651498310757346089849954778726814968164797124957396843285003812678674571096715052100988676981754242097100665893805402633564054689657303357862778662212202639319513914349279719908675460636335861294253345541759394709631281190642975197173362031618896720182497086173674952737701133662261418992969417978065691191795007716716249273221180397825635961217232463940098754303409981945781210743940138945912755994272831451442400704872395444805219370835081907935789233039826412627883319509484272707578446282997210840857846389900755786263771116456927141467459246075798565461470487975168391660142470946223423418602332494969096864885745021193181142384210646613375491123003023810392636801707411805530564251697837336816200453947971421546642945346288938976683905796665866798429634453030889424124021158965448380776997623886503829143509251431302237139712670884126008950839016792933856136493656830232515655598295886440381620325951893899058690475905533022765737792877906130580185014445921941505355149082222775690248849019698380122892274458299020964515479360359564893400102116068906937998149512285353415034881287752350371195990104580489869340553866417622081694171940441282288356650686640933750988444189699589395317684051922575467056139283030938849599333079050385054662053093362821834936017736976918479540811529956825748561676641894854599693081584906116726006168299774077428036382088107336092529681410140276837389718627721227748429693516445885156351992430912134366995769579711386207214446537333931391732585604808662133412215070978686042386339085910979461442602812051755912408496080906276326249406497309723123317516781293265629494476869788931184620980545357778978372716708249104771950009112081128137381949520100678829658843503543498347675162114456938025717497553554031159818426846847145235750132399438061456275737373829622604769421595757822063038638818151893222811769147623950616368181636422653303945155158724629183254434111199141518844262554677559781206391567236640628147583922544337775779346261835892311181793157449091576958390106537800345130443156166292703824343567723244287017503395307135315069192161918390694715678694955310368633819924966448037465237192745373018841199777957892126895569994794570296492607694871523920768254807147650535985493263101766147574197849677637304537771932501989454557272668667360727960441641137618258055568851031268960964212861474613666988367164061493950824996201439136133490244673246504869295897526323461396450606007206443405284948792924066366509609171693429872310843681562884619092646743126657732785163560391337940840784649014975126628429856684500491192691282941082347296997475528499016376951337177454161767521889841273610351023427001967367424156211027877960199378222459551325460395997393248790198509074314225860835841237330972715713026337478219671183341452789019233080428679932008302092105507056523512771717851014592497534904413166015407044958494266765222720769560952835504329646198547865971447526990338786963309577344815099304962576636528778556106428111139718375148730543429000536835749409811507322005721803680162581985983857432695351620715815951665827731003016421326437007449942866052855301785970097935657170558515261933293060320273410735478580857838541854126709571816861165067361153911469282173036402870900626111023014146960648753299951101162124193448237993321371929323673493458864793418367088450430848895529260468708654966516935722586039896692417234258326432655591488350772335969374250786720708121492138373081623943721866801877898489212372685233482530766336360260105246450186470421077360841478983807144278332125794027456827416000511058524220918567650307697513329470871736879996423491254412047121128371277667068031920622630587482665051600955037200897007571962855387092842314153166515826614941325193153883611974052784468892777618476668400076458334173250627027882609091936498255507509814149036078510116143222882214390446258939255667374027062140133361161870744423794466602187599939544261984151563333003460912386994318489764518301110525384047633291552134814755134651464026803778111308822526128385596008823377529573291910781077787282664237300245287673834122324664549080437113645699597727299005212599965709294464205983560155107468887578759318486797499005808611027182055527527358073914506128700620455656821909174907713875686598843636537207946734616858113444254796474188457074446002025483158248414055391872065525510432683239627967664291289647154238354705318833464364469914235379056555644746953540240212610555092008428377656738290234518473247725012184707364525573779448951672820727676707975883837547661678266515693965541747956996671631784891746949004963394931076377440314000887491404254818601391108781628910692553280657570707702773196893003679533134433532031795606156211574357214484843206551738104711156024909985113071982286657503270831592703529228880287224966933435950968210104285196957200703124814273550639713696223817057863553021643736457725197145764891052237251168670392408869404480147422133044903859757475816370210394503548414551046735451078298610694182713557923741540969165095834730657657967408258005000292749097311963972360097101030710720592348078350985018250655870484546724070715744462875894852010071292853436217642992814500644874807824055653337143075715651288213552290759695048483786405893168537175936503327942205353667365502045449208900874037941393204932055571677188934771412645227478075087217620270937961653677188751023607987259374791664027568655831785416408717768159499054393154240825152011081992988247910164322256726139455501815838595056064722740996163362545119341317098705708792282816727188645725993571391344471065121665094549379957273345715751628510778427718230755534684769615818816910421564460539407616461076789762207759319801089225656033279660421814781706382324692708927668223814653382237714466029633400962617473034584597279410822733889341468445550164758121675402392960829938379048101595703962364525273591130854783275937853564798089507799988061172981461973885265248081351382136468993221007061907225055752420994058237246794443446955812982521266661048113671150534915644631368698265214837105629896809162848694261843900268046174434308798690484383997585285476874165457244528343835466152414781924610396639931477440252399224266780335878411638871904254878995476272185993042808018968933810653042322264014203806409019563913960422009334942101233785489620855917170154991309567164378527200970952631677443656115648923262443973882650242681091433199689289443884985416466719957826832325324007255656149455469421607767754476786194378513027285754412823303693283053986680590725429960818716015555111054390947406075770942480396188950520529234559457042191845023596163038915733552491171228655862375656344121186328523170618217504966139762980706020256768881129882558945542869223551807889900904841822166168022902474942144927931369821438288456357564862679847665586336212471953226775555814389122913820645370278419047519224743901754092104898262577672930342637271705920038663920037038646843998451283436488966994318336318253231552433387224544636918963329911492647371499303292620428219370789207209211656196198453604708348374170810569669652617508290902933011970178090211122539791775105639142459328889213176058209090747371071265733553069651667847763701798989328938921837611789713612284511987808497389344709458838250643564953117544415248976415276940286459965608877715710885741107929910450196083411696550416451097181923168470410248268788806329904855630451685179288947820711043737401093197580383988709487288936826781594018660080586838368126660714762074135188407954696160919810051487258145587015399627939378807222855106264524052603396130278911878842406318326124445794731895752425650943726107305299872425857184495064345874346601950775938967025950673390482418013111272049084125283799273930257275672936248780561294037251518632148151120480983636288360945300022308678417354776982858994416458618804117158251209493559133163751082789592375084237759755898362657914536927105787063657834197318912362310786691493883251514730685932441226296756983830251809010964099516090868896649704795946824245062938488446941805240196927505624991774675833872393206278942868701260301505522365212218497027173251022587928697949213364338574832101422577380371442291392282740152224173392860451121439994875675549480842874818029088669714714186580319975579517468286871266227765072552118427430235562292065363501749312475084457563091995320212567499339596932273308800146163846194525310744450017160570076581695200484167538510348067930923774594605554611905726410514151771795706683291075588101962468753318043305098394611729825747212747343117187765378603432526638876128983748691920279330252733428176155730890634287738566867564128068762032102576118647242374982669215387251723258260712292462217063227350138343690796180865429448980796145892995002708971204422806300786307469656103679564730517881159396608396000024681590871741600016870438955494411061522771742784606836984464262304705672813552734649522681797935867960022410352241816016977407410639734526986818154181973972235350004941815114930360082699238369547621177073603616858813947880417762100922569576410336422808881554025054497124532956392610004417047142962679212380115864505816181081466291169692499812889552009596028591065186834653227900380021207932893090309280910656467491682272016185279309065529762182755533631006516587912209491032214053234062979739278463878369029622155824770569348880247488773205518369350974480358526848372907312865138102669475377955360762216158986654303796244489306860419402925270306678453106983895106905982822930864350612971912908202145259295259024476260758878475203036581266891106020449481496309748174338586462136331146592683445045789646144806353260820456220688683509895302092624445722868436356778172118610374694025163957274869944683416967075557858808731565192828115467583679141159353992495802058117102647911020497434397647844388687029009557005146483775570481145105196065597155956574970247327021506686561967913969793329031157829975406889042689088607366642214597721475751348508542408882496763603755273207627750225698547188782537266163844557019853125610797516372715799854149057693088292986670067210431315609701103856572745355819162908303331858020787876477604194038296281815071106239142295834566310387604943225062392699460245975102239890324805638426184648183996242669531466858579785810658530370561781618865797519870427611884140937052139976769271110004563330125151098112171622393211947198283834776432657763939407325832929217118086053473956821298482653829006810559522096894386397135201366922413375643649906523108725553825638626100273253556773090444105521365018874566707345714463220074299113825898571388820319214232596878469769986999297614420808977331951868554827535803893990404041679568285020921283150993854392925202015387945057223401720646649684172384493655841862597591457098555196147282733578247376730171533469222410170946681014299201806278713556710230041164209454966508389360179439214114386031512469589151915248261369937413150062743927060936483447164441555812610594494335768653667889540064634805018905137348733852280132353671218943679068848981440296188311758802413296548805290701208809842312475599441548513773700987475714663687840860293198585485679313041929518864794597624208276538765010614055452007384308630629590508723278607735376746449840567550312333420789865368384041802200879378186457800267901571671543791134552574759318818202589016680141639598991930954957475725853269670957043760611214482445245726622149028397913009156205932734494883922362053904345824552551905291391209946793834127285889255958171952500407863310249096072802962903961375677638269257613746090481573262776400897989785041680200500197485344833736919152043795896801652573108621861589280716143682912088303158523043397750658789470452563159509621209104377332178869939201037469871966451198543546293071729135203300482992874394136814854896755037384243156731026429310474978565861977820568662783106351951228402448957442891070592106442075626230931412464402913276365602353269992613169836465009784196705811819660223956005041052478727796355245303440687964107717393500698086805450063846833084459612669603887912861295078823933561287445364599363710493478520943578219738481135990670191621085050719050576821813641867702733755510949725976870093881584135493366549552269230570698809601836799538480065820224744082588248140905791701882826385020814855782956311556249135123354971797428399613001114721351894951563341623427764672045283749448372977672319742231243300452384880352418076168255840841708237629989070084944484831058481066220565946633558815468789440220284384531445239101698331334857277898434305603251479036290340718876262710910885844433054383003803936789282606432310766822249413867501933233311017258466871448263348161828858611910762884603214203086814538115217483179696727341128653883843705038499923040668832699002405678496704206550879179920401221826808406990638472579792382913003540154254675045090883033504528496493846380293292894221818347291840657381605738423783074486032988807258127259705554764602498987363711313014878111278849540532153299972532930193247318999462048291372617023959300703195677857052846585809969955814828517721428476183660256567207286815626354238456480953242763751633561180511614528864815455669459266702324415948161353351193692556295286018202622457772349395418151840279787759776940653081923219661213108925996102845213281894672946607494504796224906577864404457568361712002145531444007415665783481017867852536821387687225406210608431731614295542777040316480369830163826775462753939193771541956431794002292541589053622305878318701267424207658930051844223023771184480784869383643068021548519190902099244800110153743871908184830391425192251417082881851079155988248004819166762126043651279210604532845011309899913896083727338733506239326215731090294449072263274598868669800148699396897297130651430409550465985075183572323859702838398692590851524865829185409131591773425434829827910463987480619742353307260443810365654082676664672419528000591306306807691496364392114260309482386666199242684655915452825603074218389565119016408438568532538076491893978282678497717507749435073195592285568518221105608356393616343023492166957829164143474420078735374567029382334726035564383313963955614667449367603578175108943306432955235048044761777795445532050029851301724644403934161124334115173029166014416438184329986035226489817650833041556289216314356237899618262901361221917043999716756286538130588874354970829933017028000624890035435296693021641364725530880910313781262990659565518619891190232929999495961772297631267427601114068761891322358965958387387821434373764337887531935674131966578197061092927439842140293726360986736133069608613085689649419585086888373214685676040114252177506674041552783154769619984540703821656301243421938226190748978887005165653027480046355443263448386358327246125410655928094371528147155292509203411596278635597942951547283820098496407069649091811877302137278442469093458459374320236322094045932048561900794442761375874746260200522562712053635599630253970112428795556735364173645961663133039093772331121007796384364488589457081667169041351714406636248974589082281959246176641127133623543110280237211611975900019148838175738041885062945446768444455158949003271252757610430896593595258136759722337131169189383586363582590261388509681059075862550609770048495332386506233160245838956639293062868867198335175728238345287766309326923705634168212442397542238431819949968705593897382090383776960134371842569804460162227659535675223916579582326312661426938708957043344671205461340261341889594385681928380617067760700028217876826874596687578900554218289531326074457579767219108094120058338892892021252581871386584255499125099521815839945830150985549134325782052039081396516410315527069462509449477535573096329690707580435270131067600489044591132232041374691361094840376525172301556795050124264771765643153861354606791616327244491591684816930134934071933268910950244557333486579486627341538138024011418823520375780210594334846233714195615292078586254628664105935651056844815464016935109973944131968859116725446850944664827862132104204356974798324231673821348727083183255045716549695441413542947710346139786437670665440786654451807253845413561559312590059009006741648872815247981300073276189820558559647168202247348903851522928538951549998660899451003692802372533140922370958247115117356949803340200613942418022117655401248309082353213629157415783852389377167523912820620541187887945085328611049916722211048573004027953594219327523910482100052467300546401276301889054314349125927918610510068136000751411371543718770511305058577425618202046717176771504971912481488279971210202994712190025888024359477752855347341975193289242717370840293011781137418859151566061048122538002172676118770723251213939487246118757117310724567558751721310318498749161098943055023089028204966251889955431199854687033124569160431837496085785068249715658778033956255861041300517577706693783499859115256386940181673469156902133733177185856576484332383368804112132552396840481952760068874665642449588583726508364836592755856758432551853356162648956262502367262815605124160658672218461034996430290429773197479567986599809760757028414955502122406397534320984167903549279940010577549340531520863363610083848998516438089470216687269512978391308012250955177638165089716429016056694996390556717739477101484137201621749561029549241649690736276855904926514733694875303830502547740263450065372397539456557726889914230072088533002631130462237449020749261654487509046038567864932699052742480276651822025988151902274778294566149680095707393032321284643814263412698426555333379734928302938364165128922304276912753630548435237214855340838962130827052305199639085742116479701731031097373438134279291753802101762752891412893273120293102225349178273417119027673144767929462208872503538137517760022886433857057760477293289819734231067018970474029891455923163419407569454856137201405652467278957528865957592151428108530426856214276117444197161472405111852582920537939114818209522357057082649665193265553231620565354219484333181909112542211080007118724382677009223852843821897620612662591130342115259022470370473326144470178949983358654227490659518646067620441767314615983106563467297636308279396898990632791559532445399098136542647686646504045880477799317631627128711600286947948832790040293332664890198385840504859734407170653861269041744157713492460080966618082860843884712888921159988099886128853000643549422036659744085353105881471704894664101586269027250610354233334817779462762770035451393209891206850845808500643486094335223763830592510159504814989086754507032307605747899735550274978642265735872592168387406980783569102701685134145480546692351233939417127725280938388141028923052002049830163717942189730265128801168503726923162002863994658520206646381158694689259246635003723626679862466273019205792809747311193332275740563647348686117374146860221599145839774277843019972619096570509889301104150295117930835139488994178119552990258649164568457529249048836092869842565826626437207889988840431881404359956739909580688820240674233723210216949319819006071558215884422894348608110759439161503836315719542764633728204595401587466183352827197309851208009795653786787996866659443402362782798601110585727775763452077459005516985251017424790423165402086154557489334180602930107955214026632717376941665796082950450681621433739293647817693573643618143149145711334068014175175937708369058671233979231852654372473033965192965441563469352699554485759713314966955188287931077026489380418789426214277369449534583488669783415651319803622492095537814588031971175875236896576549495363402032114643266196815186631633650609242846589990077890201695054828052563573034809667786335004625780936354515077727303601322177649719398856075414909653598987580804316578793333320606816513461405372732837836666330266399903459513625495764235823711294274873826294444556407765436808709051665869078824658876308840336057945253222227811175648115326129286302933350048316092700342555430674480086561592494189043068939567062246138125429625382707980948461461068850903217934013713120672513722797734099552417112760410887047994780133777402163021754073442640451099188156208612345339351565858175350545702210337404967930862173396281720215941445717159790052479794403581682568079123708346115134538469863995884429818176706151975155197843808531161419482454127980629718378861359914877290793922015630996770048328197034754668238417189787562182058029853439151429269085602032925896152156965867946943720326774027381347725734936452678931563838909491635731346753596874840413703505060707365154602979145040059009875974151036423349880283278644339768763572334890150588565490512628934648729496644748603577854924312766645101362489766944415924352588517084557118300841051037213013491526375977290193056922199435554426080509611794533224426916271575064482845958523221566833810523194806404599218510403534372084471987696291358546301995300191922694734611390149903558513953654328202982679442558499735026591893007141434849492220651797158955363206587260805324494333530937302980248545605914302193582567990458924429537796103326186577638899191841727593339136992741056684585086377778572918605287770924486591302564272558058889913160743608599347192085452834240911772398456736167109371179352349866995163534154009419795424750127852606918035687169772874980843699356700414027956433315156909809804873420468095625456494789471177506911955363796108612612253099028176165505389572292491717277265675655957892622391751342272324311595020366903784416836064125086707591310673806574081909935195488926131658408140005635176856490095944063529236798823447933069245759599150800566910106920899530011767214834016947478249781587870379269431704841789326755338596047826463167590771914151149629957687168608663653130018551299635731527276106194689997512756962116588364754993932293888550004289628496731408915710784915544260782818470743497466224101342928543579843387008147806458988444272305607418175798731426133062077689839961180541620979729510600379646263136763342390976687202651620785770724701297580986027390488916288514682071485559958092027983573631268284109601793633221480490879699229432021173647233086567885153934531691578250083773902328055482412639807057284913618679736004641979716914317837373765932236218962914319256733624571220254321559900069039288064079671741098956795075775970740684281858908305844525777433518524880929694336225557275838894045122201973193103823990458505034245334879707827613069203617750164525102332857425398916900278335420123408295124711120996621121970875906848821126485283034126198314862389928364521603540410273279956710800827292053929650067526742147889710097666540299624615873422697690783808719526970815655305622412266654621846642789128773540666359672800028206764037311800227094290080585044093222953238096593878926894557153972353344931913720087401984957228759658743474067758484588054578921132386567341854804498814643357881052810309810267686097943720211743133122369393989221529565194018617494874179112897130095158009480679872946272612997752441549004147057235651493375958248751837826085341415915597347950262014185341622524579688752407134428717844869211826121387005027061829614984533164765384535406992102348200759394683210053012060838694585007474125047022261453937728922223291283135096070731767078676786144648624113268325437931702086413595982784590304884792064210582169969621096392853647179702562857656701186584095895263826043862421443784829633250573325455671114058801159585109151081765834978474134401127002701983557712857694887381048307659568608947891181443568867051769338112691859965303678638374032011811405294920849642457003645229668894345894275057546951267068390431918263908351856622257132430623328078894918446017785923361798129963892831189303645721577129226672748624544341087066415211300785842687130450472068875217439380542778253242945125258754784718250302865046295535256060390553673512966123006227217548872419770103017515146063311895742274984482807756316431576577543143167265756416929920184837052832218754276686787065983737936130018835439358181970371450604033509430151150363006749587574150785012870080696826334785308388422410083085841049958379883618991416966125109534964141633739252697727897821180278273445747405001334541847481424352261939524090917928523802641108790201349927318467408039931093350888176478403400940201052546068764741550577550254616782521496072876917607116438370661234608128332975577880218357360171012569052274380403072547005237853925921688579316413571710306375863462399731762167568481141165256476623227777828588493550765544979934992242967802049006943739622843650563002558292133347014160993072300384130265994692529481571690851805593315484991507338443240716784674538944589801167470205726530882175580968682225885710393530505287236600181950660418702641243600008986115457033892133020889157597173160404705779386540863090776246890460443029295211705009898508911316594813215710425786625385013744163991914942970521067715883748932274775311616897753462362736113534785284884335187693873120286186962689619938626405673815188567881617361057666537193360183141865726183456916228761565994151614823933897019819024672689398573528614272845932535314086551396642049619626714142166854421100038343469798061765139227558796269331310413321767636528705342765411567740070295818960891352691471106008448289628558725989920859023410253430868279097423001132156124463993468738018414833444192178380642529277040120865823897982622543203073464803659686126409798631278441284926096982614699380618367422301769330979570457062198123740196870130652293926992810011028609245101944399021583679236585421569607296237693472306686821545760208348273696429553431127351165143678778067034655587052743715901753022226863290781578787211044585051671056603821850995760847764715019656453617279859939232589977220814909273278117699507490233204300815989943728682080614587115720239457637795073741558673557513473948608987670885933297471657045128024166528852210175137120095895029980388230883501471407567488167674149680316708057659058541444166349750522938551140318990403497808244337073851375274403738950957946364468920640271612490790257059757947593663850549296332071914063745982946482671894629936069474112060849661112915363679796873325475235123407548652190218114286724966720389655628877969190344474937393841683456939873513122410893344861541719446150464737491069503841815901614006940052726431600119386944391552058990312710739712497026366306161498970746088371175391864758917545386231799112173332296177983604374275237899170282493552752783389548730724894002564283031038307225388293890080699043553154696613604219164617160070011550261971065099120949955301019116473880508404715652554438635186556860642406922987110356776008666093588680059911764550092669775043032368328168834047261569608358237954643655574694851104610805776573547833072399882653004326008723458406538916587392551890326671604667669674467119118327800272241954322266708877684295607276556859000660610103169475827759154839030690003814863744361583913589223142386608738572526351655012957396570096680737292227206751275306534835158828998075466161829130696744957560618760973324503420194955198419820420145218902804413944498698320580728333392901979813218398992783328502171257671118740048443179228901418014993703699294062709105080131207560663863682832736377915837493357225956312820724488145862853430196483804677185072156900758581633227998143134589486621650577703586710085314639112689355900323442868484603973539308466014932693489808866286943755917989451800825392158718820953897296098371750306298324499901960011683780028703033197342548114455121195803649673912450779130261949795333612662292408147547215961060377630326891332544566878613998853307798482033229733123751910164052371101263742609728780140582386628832898569247604373056708751234948211702727983154118518082717985374963495603274477727732598134074567149008397774662897743006669928104066735345569567381114015195573707918821054302111121038621336926542763869851203895536178907385132367662983710945479640380934036291777061182620148593046511793493865638743334983173415040365348956376922805263346805501411566349771944683575584124499083016063359246482554090945991874559433494165787026724703232191468345002157077260808728895289050905252865483306540665741092233314767868622021610830875692999854374551084743747074860803663274183462745411087067736063657214796928947994146333662204069419991766431593629360152481991897655977313681721005339942751889710147947366250362895208060158985344349254952541802398835396352727974815179145906780861610554621636742302083263713942231043990479530866358373778327564488762564783529156489934971368097362433289280398161844676424440806504390792296201087088334470936982058998200465815561303228837762193992243693785847202919180577591135554657455809824401816570549800646043013687794022564765846604184111875488308777348736398790230444407266912900326462707224119014409796685989895344786681466538560344777421038364221482979854464160955893942082260964573049645874142915647865888434816015868272358808509629034141437180750298508642362170679425957742843607875822872820180621530926099181810807034828799502436242164748382357723404965364404185731510681714514480356500541809624170497582973078077002999448109542518692343696867659205559290526271192753296656787156751483673555538040737850646781880071687428236154220317174828932106626617977199832388197392458158152900544114263357933268396471015370149103047742267724872147964226135066795118503944099281164937836972273245535328026525882845301364591883945801345453377409729352984482891380768303411743579489054340137709230510792732779072274694642693841194344202496404288770437203899322819837699839162779654768426973759129527335207563075890344168290291313380435719106661986497007172964187838699174473842647444696009488916667239843367916750545917271073463256989251548582590334226287347081335596116278720118448544900638565782847038868389136202120831069830617179953006598583038472476793634632113559320265311878756320535686221201286857207164862851591764693068606488116012857839221935899161315232725647128500748883394084639442162170885540293974676333853821976517740805967513383528980728274503709596383548739178306254084149935245278185367730753250921299285262153002957707888238662906195787012179817703667427906659035278074249931135226108503892782869753838249464769282530077704105670644976113339648541485440689589379771329217762797045581366841716963519768706690573360239001495546544588739704812051230421965508520608309932624407598682895980894599715104789288367868762065345201431367996179735695491294567171432454972420113294286775133679164407327593415102180457386018303255222567613933902981829449391964997693185004859118391453287713655046525921832190968515882618360116223323655883876282281421428176513910284986266577218243589143413807755571373198954153174261011109550377539314741009237463143886461400844537334202489518928375653393150693224052371452355900148739327557705737167873214312714396349607770383185697179921510644301202532931437381283792853009316557969125005974960143160785588765001343970183612941869675635502295671316474526405362143629306395411489814277147339353330889779497180881132707183129650995576796079093446181689558852551853679924426410431740832898966519716253135940950205264917093506053848023559995880067411296076059015773896958019111884555014797829771742645763539126973153755564210223691810866216506971255418462946476615509922748304962322798485161233128856362506737163845098582747552793994792004319554384787355000928370877947911925428799106395453410480869214987517447702394313669279798782836468045824032826164127189779277119399065615200358064660338379791720892140583784276447091696814050198583143718163655347012085527595141696200932683999077821751645310682035643184416379958770799596466546582737150629295229865607749936997554445518910141610093062104507416471916766014426065726279211616489678223152102585261787729721146594429080168475009195872872102203270719754031611460823103307095414811939527135917399586277980341437381796891541025150211210974088328948017767733364992428310254128945046778296732631764568951929317148974092348214687555369505583780274790625819652799527385737876236565813402054269620428718022324891910690104295612591431434627962003419688689249749817797804813937792690394654285351717283578270437004683253808942298787425304942421280199746639311704132106154236315268958788205789143737550199040544096328837362930222571702759418843961025443359895555897754756459765519225806017043869767747655029461835176357246264147160727137820371902322103876911336219131204083326920949707634983634180870981424920888088559081597660232183369640729935819963100560295100264543787787003863030340102773253704491356811850230506026590077522476005972792741594481513282792058446758132707633331802660683228227936647069997677183108847291889084169341855059634953490751476152079362764424890732329082416802005783589376427124999887477010022817631134566942769967160342815133721875389916512555063018172630960257801830570133316676659754877301355076677108216442882411246923059962623120114204267177934391623454953734623821999705732958463671397931667404919260215376656985039186886380256728446456595046984859623649875879275895681615036536438881519675912761955231521029133692074867649801761427971587433958520233177689275112478451437088086938206024110266048603048365011812949045617850548653504551298616242078727300400845845947220827219278481574071551491826379501542740205808879189732928065358422659704656579741587304915373106437050037521230901927842844696711910960049499576970075626852436370043465590823465617286183845434897719661760397124191897169156370492407519882505921168760022397184436087906196609547041614695835497906149175901987852871959956954565553695428743553659948808476083056620291701192721742620087789690296812196959053466513823231449311889579475585376284710350403814041292086500980311594267278798628117161723022428917754189772024080942939355024650943383839329910537043218636975648730131424388720741080860878784607544980308998992237531504357764502283356655934989662133475124568815978146414926270732605550848597471499893079199797260176610517344748488555885027031944658770273023854830835958375547247450023334564127824043391970746140839658191412713307177146422915391013615490904172019352907510497828642906223138505347034051443169950145426588087225985303444153119725349780833382398585012355305668846765415419743573615222825503685241075273106345422729333410455549335656466011793997592247325508824029459580975538195589210811312034123419237494444620624745206546550219347651154304725625428947858779018627931951752731546719269713370947874592359633745254966291427731974270139174259126668396482795683896731339747191303518937101392070230897911243374899312330510977476069340446096025708200803113830036956787266229964992123953322925479275358016827945483346735687678171055912270071919669792082720609101029989710189841616646886758755594009269685796966271508044503233508005171173867089608035889578185673434970660248206905527855906005709255551713658259088114617420133719166424822121694916092870592388780849896817877392905686964320703707297469182625090839366419657713871100577077566212511088323173818307414707082800926343004848792908317842277683175945379840579761921415731319154237931860690468743225479086763824617329605931447959249387062540664959534322156916712322773208736287859070269284182687548681129654325626792882088498212193256438428020854550416512232162768804975216426770169430872548583855402848396596967310432605580099775908775683164478541308733474430970762279376865634099867292919319206691878151196515575903216048828954683076091283509623041792974206847455870385102615711532876336637864689699600671418698246823631188209477781864987037025567328020277444413000334166366176798161640481452335217258761293123223219877693201429448032334885394925700169059269515644045981457532389888926694712324373969938276404442340534920260451909249083996445365587990744205712935130485063779357596410319950002809441855484739523556476485335245698537388144768091542994946597578973148422723959426033973463249870705075398287093523525934456382228878603183081055323404202623430736040675168481820743781769478249877018125575501851050380880765602184748049117910113354633762793061951017602676082089930163415497627864507408372178377770800579627175232782685181720945472928670085443933345723434230142767998626170450166417927600838766471588378961650032347175022820688179725297739378877261238567526555611313705633638652863369249617168384225322136949073354719998953290609208044148307276377113889992040196666878466462584684027515615276715378669139282821996464823153686057240631097263795731160927439438997584814975083106887039328239058192115154493862161717877328657119878302978734472551629207900491604220853341863650877599621550912245109077470765421652708102482577677404214457579215089938003716613639877187917260538194399040243523843950810045120280021958652811708181327826704658716585757491930249182805769309997865238382712973772692429583873990281516528747746379961254158472094496936105669900566020854440738877278944686926110412019661425304496321352560251552148204678466439543670868374260091501076069943525600963919427831683798143269460255268788917632618617423814977203542742915124706142977304674124361336260378473031250094436032414859163837222798390449427037367667611980145175259986902064664867352689820344656316975309586484585943197944710760479173547407132265722912705213886613584679620286373609239568275242140759406776226406273746244033367021872224926117734962492746396357567192149441353130909145253687506381652462670924747756481606314787831716701764804761287414502310974581632504643306507513995384754984402168979095805274979611650801724770039134404630527092890141230054290645143256822428651210916783085628986725605619851737911201943205921898945817150990032497024095649125437573487996887902304687578877147776340838027146824726585560420871736629031657093189741409507840927398887589882774591308342693556646391019346303459459455020235751527372426978919627463285513779938222387589384675792139583524338046880268087266855130054505275258712004626112846106525872419731402950284146104286807097882914086149566197571703649441845606067992716730702854255233863169345858258259601796200006208925694583612714627437366032621680351960780999665879604542196276601866452146772415803163745822833659158774124381189090854692442470345836085125708285018614914965602766136077715296290876474810197802180510069688922630226867266778034145962808206309066417470614895413547781853612332213897105225698211187574179573131481452615097139411971246987180654857155817372347178040650556127107883128586826711561382965051697172644101231347563666956333131149205070588886391639944813493880608459850685587733910264769018709381066529935349249478576249141463082555918463802588342879914249818993714855848176610939326221364101069278017979172334400151401651596828572406586900989239841177424608733260352960272452652473989026847582004606213682462531437296468104740069796064918910942599092466930176110628021555316009859815041613450657569632377607029850788573927998840980928392793406543690785855661180403958945288986088100073436923633621093690106605906763581496146047324376986432881093359340315135481329401135996605265639592535483942905012980314513744917574415684431391941885706969027353826166441441127309138907576460401128147503908821958570714612789617123642269693208564318635365497722030755734084380074768046723238028510855022971200444409464001995453528110334604743218172992416096092505473395808021852593959057522133377673777728126895947728995101057097065175446540807456053166408168979400384099440235650027027052552292359555007587159295395752771834073186571199274849533003651202962709108213479270220905458165997153737525578909129183159474088060971741879378841816767170162422517552898080101134274182669452759715454034632508966673395052753434237959190128325176153292717434947037493468748607755498308027491679539495305954374920974694607138924703412524153521556764661873939301868780294607359628432130911472846286883532513788093646964295843663317840699330451624382567430469989561775544164219284585614908194230232981657091780754621000324817319908801640240334600075422071885199705691720275962108026291230975031829640040777077483580233449957739358523888101100844262119224782161279165091044117974077887514708211479279435687336907887503847860971695258678439292868361360354715030157416975918412004417695065428374658096813678439947857978029946379659722484335084003212196308010580123954888896147548712417995947473044154628619696188802949462337622903288465630572884642980090095739055554492906980728085014394846383281372730242959750866035507851191469441478509960872901739280598786731415692187447083848973391509424721980435239755977502058673836041345504201669778680595103860960009904558240798657278793661124909404104189634723962429784939049567781729233041692144791028920396111543640030562242564005406468865428899885426815944154137874771796412843511596059783709460709499572331921467202996798686159970016092491766402928284815277978800653060840270235986296909001430624008326382148750483801752818065254859161635229804424316813373554543077442966136906999329708121971976084510282324255417252621625447889397293902640476161799632368672419146199280550244194216697693809141116196742862548239912553755446171495326545358505238556233845943280832994547340223789241779731701472019886368492988151591775453854476746797996476381448683002077299456705272551859450512821147011015986127812302415502555527678546003728639653221238368108097435397530966167400625402443816535973220529253732922787485341583463692093792904432189296146652712583601386363417292098425440915452578676826049754475389820787988757959359680913741610032411421839864121491887493461767081693476486772910873094238218900742314262174796123904846748134499052830394968536759317906266372730840951456104628926380041976404442629773566309325086466919490184110917364144094258105506447314399699441225457665054103419619840725373304246611729493068607564400901378175213930781195715332201547639429272705897744501199829948324702167301281178324107667520355723361367744057505461932244566301813783481786315591912013959720508078118288757255692605953777362799283268558130387302072303603385315262697436089228187534753853596027330375317964335616731568706537377477164641668467645789009501792938669855380230161973563483107213637979546595763800132714264085346433811924893007477587574834623789875533133600252491801451071876189887460753168302968204702485864180628427934192191444790332265477916072055126050305705774214172688250278781397672318202049179104035145477119444202624506576569395926824249811791592991419413339646395393557157408793547181031479102215638053654596614441665618418016248003168391628215914140117669882556975035979729187181665545201535788287008612717081139686845471949943385008255206492679387663487792628485145535048545691581480108034601737713369818088076460540278422825272337879183665498836756473215982692594055141095204942431957765610671901109189534250454557795414732156521491169420006849279259651073034078676360526371570501692998788512782622422450899291487310869930094545392845894221796917551634111434743197948109337708603685063545042985365071677132165134548070144521747841232719416457522906156229651121041481294644549163161903128589962791070409761842272868997104058726194627658302072376941491584583513402861522116906110306559381701610152546031895612622602672000600598294424922059801513881232282931762282576057659778519785709199514736624843972278012746240205503524515629747842271803186941187475917848944995346617155232623309421175102828676413627257299726009102060218676230663609005633079600892703050670288313157309154932211459345999345674633939626660006347232710699940757435385578441334181009711436345629060153971287098364762912052253240107595435279720092121626413793556590822224297868142238733943528105379463602880546876579174403878403212145407430741568738708318764937514788036044795838510537644687365377417486464975943602577905871982232128146784921293477131740917482022350102834097691216350155934017065439343385192104510741316667651712775786267184018856870240674279357835802927259734800001960584478643552160285789485949179150729292926711045215208304793088203923032436546240549908818251363265329171792109771065250178525201332477850448093036751791823818538745921827053958603267170007375530669719308182525645111531738712860970335399893219092883829215995316594032860908464953544259194093329643865402309106501102994627420314647984161769461446780278317037038594333949111658374705542267137529464045917594524261227256660004497448512464235890063269742443554567795305555879494943320845563035223946220058606922155258725169558705365033963185151423737320792739713297616810020207239757253166286653056599213572204279718088996896283484966323658352962786631374975295995678035906592496217597873425899338602601949293191479706327032998761091097130778346948400682367239257860028346752657369276360223592998824982640958071721343899840058230945372343629225387344750020091873477341542190629933042938904726635837311180192636129057327348738960694860344223058458024148073252132928823998274335277404203628171585314426179567658174438620678349981869606892831765713458492711933981473589097354982681836599330547485216375028138337223170381915504542649579034202375652345801682528457484584947308790327860272406104026874890908856251071764728181825925889824850772085070776059056225160341109458453490805644690675673023631061190102475094127831909447195716579887687880782006067699866943954483493186285187993337091991296067276071634958268502829410361075221280608253529215678919581761656627669424391794180748730768254290069131577363241398500440520198841833641222439606326895316417198375338448129570326371044301562607815194452130631895701085703892260707887862851885118718851760945237119966756464619600927638026088964750653328012104579190378038787027515624037253606017472222081794387140780054059623163581249777443960360622638151398127014287383618683528196168650227200742201088895452557711171173644386731192486534838325845802648676984959476470560686323623632531707710955004950307755174496764670860367792921590803260919136236251922986695911481866211027744269242690746722215705925465389802119047056981364149213448769043667325865418226618955893444187931603348306842297270921950338181591991196070985072686965523409995859316837264780836614446578292698256570234737521825590593705492551277845394545451066024568995094061823350550856792078839616389661524871992558101871868881301293295316357013133665527708094786948905952459532479758074112644270950385463958980378470740107752882933779016159816363538639574871551644479010015546018090249691841728360871995744002274237041659520290287843015908485810492202306672081002764928449458916178014469713417278784282454700203690685839259198344008760070024409938376856923541339512811498339467247016254260678560079348684521041934466850572122673136284078968209904115751186585875153262922606724024625566060470983309698767165102229075092796049456016405155303930769574596761088592925709989385860898193058367028902642818845343615717059874064049893730594137925001751697149374661446686225114666441781817683374857382296797017872881650005906249013692872071069842602569934446448363847422632769533780049257855875494412620179033751778925015468451872794348342004081339261149562437617837497714123050272626729912958984700610101642240161292832289042032783050015783547600415624914202383006187891110695168099393131296820697293867167112524156380891207073576807126096331503086775578117030290183033461672250610780782663276512944510626157699115229580691003341611511793177557898929532691830761954320411190031044358519677168836183044293734875710642382293509851371379202462021900708139350951080168666738345978368637413077893786278725598678892949048358572501217158786820591404466087554784573541691170610160827740575451893662986215966508521600160503832850874435588788374160673715859530235199174508451806759657069414265671485453642268462069265855332624559411721967929188166757672172047942946852722872303879539129172609455265054146875274330781934320029421416269785339576548135358962851447053903471784404418450879974235000187095180735257621424116475471806235474902574629087596279509495346181772984716096179909014560085286151796602186014666954551388062839994085270649449533907665526247907760462521607373366984271487129997628640930323187149976137916976108928425395865759162328819087807203829677671596843592682730559432381460191107465350488547860117517873104973911300744619955086512140065543608275394077997717319806662376014192348331348595033557342480116219191069991964567477511380450800940329208861878987030529226040786303578803748812360009290300072526331263415658619379149339849247396331623549541492284137363834021058552436155622904635953786176493466949872634375044675477848478944181307334204667554080041316006204184958730144703880200360039460152537855111274027348990353649530199827669080232894280025646969166654592058749429209190090458386391036750692050411168576900504126272371565183515997820311202245503057304117209622816882371819163848790048523167738168816737480875527771771923365452416651806658534758965937738618513344782410650651676131043194169639391131289108142566788078552890660592698280545886187252742746587275370611977532672800678298459709305736477219668794579545893535122328125474656880434211782987750951530936350985945204603478625182753632605817745333271344694424921538724032817903251806630068672741051265767094196218519346275057826313246873201345292695233775846934469795284797684984574927734696645386760762170581221874682855400771654903144354350850241832954230068754701000518855477860035797762275188002058045197921223661694113286296311629959046863916752388844310663613090826661574600563417286576176286756015336033317530394645250409678859424395064981898866457300246486880580801411758929145492339772538714957439146748365399358794154321895796734076828224531313125552872890223458436297951557720163253579410593056029398753474604035662165478397044041539006511506313460184435183325166119494844990536061165838416632581357389606812790563738182128942634514757626775722288470178464480103289115315344706023393852405647353461571517859333413635997781333433756827994164095600151224970275224061533419106552095450361238114989482618141144431225481410096981620213821136575536543216198387589956104583267971627430682235584071776089460837665832477035126765315758138870753810017308409193257799938574310289077921863331037609346231635360823448751108119079100722917582826583483756067059560899508578433721217584129628194675691855705547396859243561978578111576058359555817681392731309573474394433904316182845787779681827766557055527573795643029098388231655081017235568752363056675027770971981679031197527448314809626139225126903311327467641766211565661917345710131868094192270139781959619174608248574554774109954045139542468508110569267698816669404784360898749608370278820796341946023307517888366458417302331607609848212373256883684863863252226823724711551462625072325119209909209430179796254464439832061069374786330344782916568132394953818730602629392603361024720891441792311953293737091912796438879885040073206277410668100471366218802285761845470159707370611163318717327084795004833689838579393743253276363325537181360205947403029382454556653231422781705297298742064583041199864549124440023196129297730327807220144410480251427416651867414216613487503972997706474682463507885661096633270249314665557873136185635279724055442834735672577293224392213481034354348640096684825051131108659307918945020623537931310936915662853708211616317398951252641959172304837732257948438052389009920277233517483618322625483668393139780133455387667165813493842220779783777589895197746722625352829257650300305332100224442853448221548740156183172810910478212211230852559440793469711445961221604590888682005140317534674752215326211899228523138693551685944741987459868584008015318834349892261963508833834970190087078633890156225732298634576137141154117004508256024479510132218412442762795178102245862370828964836711766980151496996751567569682031005205498589577017552488577944057224915007278129803952365095375534163920055018147189687908567264844358140087155662249887419397609783237396837020975588070992676599411125800287695605585728731091086615650483331090167202088308776027407455684419395734177233969952678815076947903814009016180099974095374651849137174929967156410533201731109400889690987428122068904080076106992602067366160841863823953529345807891856421563575192017553307003423746486460969640670715314804859218827865749173132933561639957226708213823569724680391216986148164944731364680603291093121022801772243863501195197770043562087457112199135841525877145183232073043893166753392758322757397513185819395049916884130424292621585567112375454081240512257551584890281568540474991335993991095270402724882592008032241732909789997858274472434024104325945790451392883801155637735080559913928544423020407630423219033588950758036969437983809777207651330565557933742654998372236912597337083169894400447156418941617070676550903054412201316862094570259273167084144509829941537703984013486317259974351429120127219013265078567686975164479169158792019474047434611457059535513247167282673371750786707294547294054193779980138622988353711645856186008628344226736684699296095625475107788221668116799470693334297359536474861788443671738222893158991625648253179187020670452434680403171099975146573715621900261361586267639313993957314135270883356637328929753532636402678519246592210732634824781426188821544025589902940966766975664128881420019832314881102081084898280614076708290969382584373217541056458302529550234339300376072609376678573147281572188992005408034894232447196202073436723679744856434013370499703010718040823153813868020620113721023388195439899811327166762328767427567972183669734771918462663203107854945853989230354565218818874655012568891144283882937243150691314856317095277314724059438272294236801251898913734845397849811018761201842921058293273644599239322002653624129652282532203656670572288652040052264722228517763973110339930991151153746241580153230952409316809132133921005436312865827023945341794320345210150780745602292123183599263538333817284202313483337058785384573918686099252022709279728692275010374858444303888567680050059620127530459466350049037973702422398157475038377680349650888851161248764218315595553805428930721613864184598447613958738013301852965066855646020960606458639066398541349226078998495466445344423077972668378213093181324659777328053142925616591315568615525038810052249497862666736703801371218919672273992818845923631724484254032036386525708330845818999034813281188692456378292586144155844518428850201488927741524387792448894000202133794071529257068495291397913531464808968902996164410915528436444454402964963769959456021736134274649233667133800438915390754650730038110474389175304546602131649906514041778215860624064322282171060315485288522378489283953680722696944891664142940613663276602297994516659484606746930787744173016077132110899005519181473551822607460480699356285870228072902666097518211305922418824206161799998632497793463682162266172419622727704685658291405046774608663308481145887661597438002254657194627255361983341188895596669833299717196042683219992909783062866380816956233658771966925504710323277171377773234488246650665514455782030325859085783745709547702287340869673121292933896145183549299140626612612609208703061526154097043572785041450470053520078354608513415388367158310774422639450692394984178811140565370370812338080758751644071480718418838691290102174685049417555852300672627062399777341899770518297603581015387872882158498952601838587539222915265449908266254184620237130191367730580614252773449222960757935258319431058482659847779407395254462202877271385659126333259414925369040938719186401081115047237315606218235191003140184437873677288831907876362549421547779375262555984749776867885244284808868417077349346372703675125356789689655154489972475168051413800607519996561783998745549548096503429849460574555273386995471772350289122544392833158795391567495096152059286582557328846907415524147194740086913974146262674159326732157878031431611570011749792974270932390187743062261946164972882286042907306986481841269374129924070582710251159893629035734741940270893941128996971462059372258898206043322022465590735010873981090620104951733900671797927487655767857844110648850491437941566650519774644123777629765832416437004185458563731699246223435898669939790310089284806543195467000899886827974319803240692839792475708797473889707746121166922165762633829116653318065517313148126901262728306221665696115962224358531251988997511860339538641646489417803349386136869892587951167731427510906706277680512926553275101400985472613856647045469108912821172480996951386413549232059391268421929430199700952247094601114665467924664683272878863468932048136843373514968747217889682915139530038254665410169576094771267589147846164134145234838154573467512327793800806097640335828194521631651355440640399937382828003253983147666344345204017114676354310609131812639515985005634865739419761780986219278433877925108020822649870888553133270069242942892925801100467069222097279714261171497211146058237146441680442466480383639320124279555425733852240505127617296185308171251200914957752953645340125378910477039073761147844258260870063661264351408002756435209218372339320503580232567629320918695707057487493907379008608794560932311129479387974499566336696971955252930424486479511155729377859498882480709164452585595252492014435577541650716606319581284143019217151337176209871145619197360694318731585592885808560083233257170272603739289003577255990823825916561499732592590939433229173175754851753659011437466635550631737584650865149924566549441941935538213492218499142256729278665830262366877478979823993384396799191863819407637045957129220934426171505936151195217078730728214292529261685515169025577960860524582167142610311465990603930599313799191684809199805362228049127767024461275984442938561241592075760498738474779724871150854807604020990458459011442705861620425186884255944362684639979184122761972852544520552635773983862959201137326165620598611902705953292884150526911003526462512949911842559270766680258881672552541476584180746774764654912492129115030861879498861726590877745796157529876552068527598611165623100249506446739062769419241984784633247110802193490140678965754287988214695366473239348574415499297209784184352958362599309488121142163117829860360123334147477429084848870087309990925098660759954034410259256890397693001217231143161938797576808361964213751578342980945161943163053405560533549232804565397415428777862752478484762795211367726329931266403981484680322691191724656708022911201604006182494702055544573834599608604477775795938218047769480841325798417592319394478272072056596651696100640054813505454335847074164778371816716867800700928086966340493625304472835666769600380818850774091301033192938282169713327632705061217077159659035597222502255074923931969118533416167959849945077371541644569100549479205838712215652370461649130796508833664113580282480642844404120596349514774810859747597294110597231436712987761901962827240972968505370978489185357387500495902104682605559041946563720964579474526560653161784535784355161989851663505151964689531085113946021937440436603705955270280685033748404983185095161870816248609319131816262958348087120607556335265971435108177097016413147733783533358908147939052675832926123049846720798826333853188325944016797790869517260202333724484797585983107396662749561121777803906180228350152558833348949240433243424630340683203330517814326821776825062654852149594128358231662051504138119368698151285490783694953696828011667317009425737910518009395767877515235720420598167979016392977546281435659280649909654082693673059870597868138056939291246771402585400152077281444191715902402880918227142703331674014575030762084430625573083826212546616179004602878462017972071009475498716682681517072377442233995116252647655416517039377106581328674929342495569682801481576870850876750090017497555069158606316244956447453490953559431582901400520101815222794840362104444984074699373782297309360554609156734790128496185303927607936721328439642618410243298620825194221144810095330144895191971408623673553578406363503785232797241377169284237507053983881918541065967481097989711543206510262072568654313880490181703211745765703082011372115210385957920094658903980046451233542588790967104434172989357273660787949416785702950288283579938909041275615733839693296038137677435524978024866060177290807447313221561738572416116462146282332229755556917021239420393591097228087755651012638830061123685027779659223117571921197938174844592144797339969573099531462691378889132535018257480548909913861589026163228096543205312962587480221649316573576823740017808223209366346165823635540375903639318730604794048280909512408622263817694880319207851387286124656072126425260318464424618037642528945400319691404121476676332510763039149396725303624897238193368481918741433986610499886114874892532869309039108020716515994249401086028462207991592087980200315724688276064994408790617918299545344753600566351203350239797756528604893530619417907438202091924689617051493970047598682034166530194067954373902618849446592630319742486127047161276241698482381649052204406061900333161736489442587045412809960944603355369197610731563819255509352876459594423988308467221845221591569246864490722038765670627430250880387983842991510521982741771390652402257646892997214107223126699471171200117776789614333379642706276661121082924738529977016320208889470775816898966346067351344260874720075686661857203470353256600233479324200170016356502172445525542332959149752089624637717469295692081537432300083173851865797083811013122094035733347761761009537608797422910622320425417166146298514711588730866080457492389247175196765908441010197375437935767502692495896417010952365392455746828356531422408738463644301977160383735326461695575681120548737870428369031276907446099064710387627182880835767240418525447099595954541810146558497688810992752193825486654432713714576875376937339118875735799891503137639308397319168103781549168568923628174555988842383720360081074194504956902668543935285398375114627154568305922354288445549412745657816455891655430162374448985979969902355430385811572350300920864734293834342480326897172454921249443303754663356977826960223861613361765347464619410767174914623340437530554094075629207817888909131445095026572427143009333215217629210939203881403391640337958736984835665938874212482408395138459641739443918800845725230311016767241829867250920048184330413999444654072961402247832437615304228095170597131237449255294576173527528120963356147893136354741039265669360632723912463398101522059748879723716489570404238051725262649312044296589431748152774730740161069671377988938914640009230678514485356657641752481560882995640975276297810850340240736877093211998102741099574081134258465634736825736058430805893769491995629182989877082123876831903301777611946183932255796847519316412937731915314760891909586056471083978716746950414288761572324335528425305233888358162332723918382040121654461591990381588928192581146444996371852462605763467986404655969927116536882611623152603353966136644105154203681125711688849393406317663168150667753085956807305441158448230617261260916484913318075428038379442344104050101217222200631081909743989393724889320757306112848361720499346945003410204850194106653691893008477863547622654268817027805222515177851452293292396214417897314777320596556172172038893662549664576370253018994911574096209938897774927975581088656220096712860824416909161304584746658000367095878586653732236660917148450911583278689566054348709287054337124037119188758779513223986071442163680201729752306864529162133013175272980697116472166871240991598128396561796754757045411400181092559041568951038500546224416549444278372492093220632447776711204581060605427212756732684854348629385340037604238957569536912605076044537645121365053693607765378047584859209233379900057465121333387511511119105734772400837734059356325192336387704620669049425122363386633354406209480054067141870251953705424240180121186519138963837731592646305114619946053569487251850868460984520756284263429525753201049870299840853210774755865367022432871563252526974146559277678655077374887076572574169881202488490703554033755059443958972557240987538912281572499179334487117124372957089915163799036218812585378101588559757041708058468217886993472680488041460946786958432502333853756947959725740626438669173531411953870153999425854837873463553535657809270901048279810535942718413888031523726379045088527619975028593770620734290284122713178093335986012813592359951151728729571961299861177361245433750619549271095792341563329160980404069421659124557815157078038385490952574364712407056277385136409072288152600011634376946405888779630312825033679959007296129920670618298481955395985614534267779630956840806621427265784925941988379454968895113510187371351615824656444019972800792387891988135436521126248108740729363251797311190366473728122294707576986804163298230344308636535458707707349854389094341108191435729978760517310851751198115397138128128638797272127217649707187131483938649836585110541249810684095758632639265412330695220243429745064705419558282329941650874462394807419167329878034247900734692501214560245287963042243043071122356010683011963417481570147880921569953139744164961074963095143255500923978140321107117847363201658521695874315753593820502857780942980905915338453688659067725183988207493920369180143823672361641957807641617406298136876732651518694708948657929340331550773401155392762971427565193827170242932812401866142066728334748640706791191475190476607670521665472105063892148794299340477550481276071803909443874343022507325193800119062669703703492703616428396742339747314367188541502340685191513824729421792851566189663357208228230529351550045490015700197625952731381980838483118670010118540058079119915672560853630453300836269041746455502522332376715922284958758112791710688989718232499840949002491736971067540018548764007528524047008938228985090210860323610615302750094114922198038840973046422077648650453780209518092281453541491142888915633499172003461890883054557727529375786000673891379023773335844840644465957702384283989380995108626307985970598073910057868686812907822006016291950505567048141623607068738110730500562853537514417530767381528155924698064754070151206126032840876357783193645330356255857551250221394286964065481307344618547245380479753977054348943006482518880493148215888185825692022578235087196801855889100708035471898211826316537271022760979272954147366058816342666262118188700577965233966254697139446224742579633010711153538857992982487593661147624462572912443233934272297784317326662756324480744299372373626785495107637973456915733319938855609577980565860130699244314838516092982574533665049837498180586784831876759833325885777644057563959612794283544124409863570194331687803537566400608139935738081816243499436505404099131531986159969755810438655819652679222686574264152767138283881200892051640061085301913878058431307766910764628366988343971119822072957286382057882495357562322890452129241087917698652656138843402925885218800975082930552559280153035017786566027460815641024901683002908702661373596998968043273120403719517665451934283644448430460162514537415041469698508966113563427526378048360756315075012162412221007802475326221795452214111639799034095332906247052425502536067129485667383234899487742133055472924140872331611238453555588700651235899935094993358038088184163509904137266397026684700766650711989009748681064228867074329679712866144647316199112376515459361744689785372004057674343360288071295424861497228815589682864246851144876484634367653391580858677486658867691900210387014846794455753252528374782568478246716969559985876815053862264140583400099514403807426421103005047637676417850741411003249400353741056666110580929718051549968305519451563170091016623402259705255466164551698870518985261118010514855908392175609969816481240545318855244897093907340939935486734167483365433738183424541453635661212094264696541515259803709069224251340191057018645485774897262055566284822923927929623482182688835361501952986969149209058538810161559461961047473052837989982402489866142755691825685743917497862759011935797354074324245166362193098278041924029975817351498500533268610905641010013276663610667420366570201105089372273495395875385087886503505802815158252038679562934399990648135430478177144256121064083465401596171330844023399054833837424944205170014932065989561308117502422413161038064089360530429392114615922072407151204762563892804575547573786174015239002379271240754419023091788245005593441649247715311060225620399960738835262245041220688698999590880148656352967592198935504881541360453852461104420500849632598779351687756630642609807740488259052056845305769518071489874321708721214043843130271546436093533231601587646099183395667459216493058425743697589781426668987939736900827141835531811024894849501501971565693619510023281436154592904750295054026835293899830070131654735615836915081915149496513092844944325587128293668435858768274133868617421540808688948911661251423829308536512077717687779924485815476227214715833494293696561675844469384590404213258088545980846795380526995316218956026866270221775798496379307090026677041686240276406515495193972454374218921443112179895235747937547051325194466121842029795870225718186818897294040209392906257942641875042747439465487922757450901643939711216500350353516727495498596651777228608155857034395882652148461293722788873837638381772086814647476830517979716397806884359878984094200775945690676189895165766284703471586323344608832587881491057863157343284863234535310646754250068372153736301165791730683465034890158255324853826834856213421694005251293885711115861864975174393975226661916404686168232128479922165378795199753392321628471555037993474742415446320368376608013918538167341614182949487447168686840958253592635267233053766925737406954501598925788642819081097739583510049353520222716242791269090481603092039718532338746748607453786246554128993890306058756346728671380987343394838053612242734590843674609784067938476697848276466977951749011181409910593570857756841167977015687138867931477736855259802828343822886837906996758814988402303025268666689097117661348769291945999547632495494548296664230296989516455905842687328026718048952958157925166930643290994345403086084821850941268354434368948272827824273291612914787981212406014913965213149891793051621996613086282067196923248798787570279332780817988326242598105026717102387058174529884904429519491415008538208136293259720910570165244027685235336561857914850373725297370143680548155487481002153574478169168249480880544360363072543860687445514813259584622390475781890631269403760045203916214625148557407545459594155515719923626371148147289281234033007309242019036682465885031891838001659635144135672299644446227165774151533859816337796141738904348130841699684132607071522187298887340840500014462560526602644348354188351303909311936232189688161967910506876193232457754062193201545408309411153809888923046265712189283572906872450346090268629165646042207323812804436763492743972302274208038149251979537532274237689407011259752736691113690815337986235556220835268446309961320662429401387778272399263796758922341249134339737178057031404631660410923537709784905566884538969152521072387533673040299575868453251088246583128570654188928711413045303242044662888801951058940475444300615433096592243981323166781459901819740061506529900003616534396390568025300730575079956043114996255909696049252411163031800630775683345154138959512544216014168593098786386786203216358348168660234605281609933334365667861961531809050520458839582264864788104485602099705402719908558936772392677371516253994943437426250351739785908190255178681281247148667177411011853471096276344563394306092331358365226219183712870513414228478147186573964193831892650440865644380417500275992474818799608195037256838796364398513902873662986017281253774553696943495264086680631973698950069454550313939638644822353905619842795248334208784902264426830431398088119944812667075834977726842884476716000840407954184426437194266763070600928244396726139679065403889544940643842787267939806466870306228705867960568001193090859038691397287668406138418605774614629438834630481828453960941432301357754532294719134046302232525382080176974514684894740207199273443432553492804920088944442895760524524246162249176228466443036703638655007853134646011339469875454497626189957457186872429572686186811864137494311413853300388435720624464218548272852351161019623505298450831697719452497245345159002135669713634055321532804135976902128165670027718489848366059658550303523773112007958045037986645995986460038193075632287065054647747046643214061048074232592245893822266654149169714740522468623233074558369770534175848128755557836177372263173398412682156730108872040115181969108245242612390369522673139183052032796701874459891391307575219902454055218227288565401649236152800439204445553709137401504151277040568025529698672251698290674144420873702071769630688561709364276773708674149932017886023726946049154874683502071107963471403672046950473858172511786363225407308854127418091906677400637191322259130216530984035980064742351449557523973400239600204787283744167450152835727593025334747873671781763550158349062684750037434600041353776119499282851573502286930065917259141611548903575912118046302813359024508745517657754926402583609140164137111400113859383252597281397578527657636906205338485941264052219046807195406886985841120047959578916998674890798664332480068532640464569429213557524755607286367070321704313824464715072277270811608692953666383674080291972883514239024157070959773198775320240323300894581667871380477134865707854168311743032689485738786812976883156161363618683724065510224275617621226855456572426666223333860195936746457384611734783292994382202840906857691041205030478441107297531116309418434266163786651936989826152523533128655552375387129678851707242862326844992489806469806270971649498616242637442302246147197718100325172521323515856877629960373825200038879049950464362192445430478558903939427824981870975804591922460585430893489322387195202162159945396957871651850184338356455040155790768868010480185891939732073103825872626220100564857296244421435615959562548978633731010898846809873946427961192817197864455698192890315776338764631023488065421587979535137015208857700525218699561750652043789920514794913352038508535827338527458292743642156005175200233342588584256095485211857648813945375913575212699763815131061849742712394508718628563808005591101299558324521907748912328759299409483759651346702615348625930605333611520625808051505063987007438397489615369484511117494468100927915734103589652902634440230120471224010035313187520369029526530287246300925075920551523753856882593045436117313221663396214102889789472185141521249295741360051381144429383846177683250024433244559332643147805769812707811877985938447539201978819620574654107079047727421946933773228359225884151537071118923472652986662061267753893578298353172231839896297658183950517021991103778444730151703057109145604596291463120007677824325717678066943597597890084517549735741540328763633672371067269297563961207377048095314985093260839626465226718284577702897627658431440458614455925238348131593306147564321560618931798470155334436885265950231336934394541562844050317977017184548880343009767287024096444222035696112945320410961449063307301429117363187861613362047421246294102180065846142172367768544375255692316051711922501862982397998405337178865532557224917562608971148636629223029615546511803679471050418867680223061037539633941130594903095050300848530965896237683291171200786248677867469697813007723292342615922102595575501788675531205782426632077980288192328641905072968757285571791195099353702157807266419647965078341080286621371200845947555629596845602424608176521955843545493659333477311300977957230202024736643764518313005966488974208472520475104736059018383379079878747483181149587557389353597430041241173093186698176688631417949835092847059407222667283159314781298745088047198220298382633385342256247503300402275847310391872970848765094572500279063845407514771843268446098292544912141011387730849322514355239072974135081486818579333941615571746404724692261383019068099021069599980085405893881333752945258963672563005957515632157507981762494051459485277334024211546047170962538417399411687250132440331454268219941456252113677438657803925742525592844202182048282518105786375250586668148807072440217289612112508526931672423018266865472166598820203057904134109850070135795626515397572827596471309263479213827004486983745116645033231956365075268092599862653100275177832819790801062110430862598850943768821756327030700935515201784159024510952736076518178537860199685841833677996134126910367137643873329228101167115685072326670113865935485595868594426603105380867166665884350387532527617202405075683137876779195897334795332722038783885913205263282059362915554022806559039038806996715973053038053726204483240252772704614426388886159521682796836119415702958785235223358119458429692273770767775739033888827436312167679061873312104154242957049397775513946732691982302620036989866767330330455333113393130541268384995662607075978517914605273588315520768786395893352964471918065988842483729851835735986508705373736647924766060728829237182411494791937582360485935692455918070949201218598247699335277944742506936438742222824073379789979162240996647401339538737038878364796422290495942174629513637085226330554062020364834244618787143413222640073119880845104926377073112516754182161445822739145438123526188545543926632067113934006779746317669672337387481000428801850648663471317955294473860610106941553858857415743720464947169420265327416734766049068506098344757222971730630520258171299442016286123875578139102431867900178722134419628282098612065576913391135392101072288214178757434819502570000688371113786433122458792252801203155613948824858333091623121334453641094017517458483613568612734183930818333961406654536034404927297346984855364009786590692705278930526661671901596537269172528381896107202464807170364308457550406060361546533432906357637166428141479460371894045590038156143110613453273576640700924227506865615471337331718521136036311944876646306740290056636246038224029330270319170462590517816491740790265639709431471550296215344467587024539831784837967766237394341335087462583103760318878719579648181434837500064799185618254092127724684376488953621912920971407023472191287442464578909213945612513688424340505212790191983009230562986522466486318135542147013014091077928033047022332335049042909193005476146846916471705341708120573673485807388000570110699167521763608365815749485362910257580595341654598892012442874990815668275722746877548539762094733427848755337282770441768964661955238679674317264537241230971997482080483567320081816463752020840021047387277533614661118052441980048417691241681737467117063792803637183115248543750694423803996182253128193725737427949765872392850942841543884778584542953476199857062766871277811247201483782593844379886856876109821482711178659926687596288349600697313847832205934743950048338080421302046621289180385934010145342461845406871632364074350945025143391098048105658452326457204290136489457433118332771392246973767991579688408406311239705951864973423814217962035577249582608023054162802372852788079168151380041926901570760718565667786588361901483947581567299581296725234447043125341013155143733123981679266795616865250029063096589042306484765725862977477933109832036524024630635376113671690575017009225979958899277570834442761432689535708725206489888852582916783759330184332109854432543409504337407528234658265147475880156471611049373269625190116569108268911729040478193954801280686210780929291374478686695865554654273225184267345523336023095410799317445476691141858229439944071646640380546843189304750295679317060880898633274006048621180784709683867827064010036161133076233340548581229472422666056446534857624318212502400498837442288951035067631826056912007803340977261248003218681809844103936158575229460055595101311961231928584558603795023195963555120917903171613459224626880418040783044286718064547897771109766380819204197001163784086603199487836511451364842959981804958015357195701796457999505463373823571151048495072212402952637708616034813245479847216654018945393233553277722561745146054175872657886126805650630531420116137802230224271231765981106894587425694249716420383801085179258061001961499187064628613595821644031538404850958565548651214030321364271363920843010606885983107086458323448452773787402908888049423464037302863482456360922111230363517831673615790501008137104797492019410900945080262052489743698773888405581614216636321089569954898761255191884904616348010308493512911231152497129743537292564230665764181190067649646117253047922461805614748992261227045382425537147152241278505602687674162111132379841682880457679306090286285969751685963218806365768143358370581684998967608108574097277395032710145997477336730649046157596063417234172457234596999216211464060175201815128697115781276943432811171802407474159300866538330574023261280976345589856806502646700935535055015039489167296436022128027949885664942738873797905455286748070194588955538322030767586761510048576871916746418383068081241378117961995787973186604655746018943155900481248198035216109108556485771072235283823611973334630881081031957617144780534514295967935009371538560246855604634337285478034848130035290465785952600357996911956493913332128880781459311722643630417961173070563193918797724180513625229630501977235330596043540633012449811882886636969501562161296627467186102852848074474609706548626954939971406705213716839809766157867848598751115412112351967180870514023108637104726731876871312199042931309103228513511540232012227050354143052023788448912396977458751929625287569297381156339004274266252830763841389669432858398676519787176915590976745647138186025556724016950006500129020272559682811274913448820150064773357879770296763514784773054281326464340025307450678762222805017831772538391276771210857761288077571573251503467888724285514045642620760484527390319296069006646573141289846186449311512445967458153948387385681008161439485841677801714914112444816534288598110167643055166060094241003807968809278746010457763188963619757957430748762365942689962548803225943250259579999822545877913349252226314237462346575200437329802034870612130464683160256890184814675919264823887607546237168424579335579770449216805304105012382145267500667382291926157844863667151518553605435273581521392638754332739504666371949896475666598338555406974628515981688173953688166539156650430695450049100071898817707055739958047534385984552852090646300472999621235564839734319994357283050673280741896516393219716331561599606367481908400006807458011808061508266401556383540506265378304117040285281963458465910528125719619701204257509300184115918822756523555095547252929808842845274359339129024246820728321872200033121130291208431165042736361797326880933356369099601465891023860243773128537967164882925501287125384025593583464348146194162312847776922851560175969218808751048915920023542231446166563385742129327244265958832181841344133668023855533247495236143659495100423690476550253997759734495408135535851447244597730445949554111580901146736924787725323753637792419473498820263619042016202998058096196339118915623818349140046352579571062128116250860959511762442929458167127606528007297131183619845291753815049428674610737602328124156836634115011462774948325887942661972508209152148975424429544958624592018881218263474557365454123303144009610198752703834075540971229965068402530743783233519191205863707640397784234608941541164276436315536846247510993139643145493977753791108892035832460337518830981398833953068599479005282898730422779069947542109355696134122564682858402619360192258834216041346650811616502459257338993319317837734361773272636724484952151152039228692183425684692655119762358480342151627856544566924994465189646849657859601455451180117894928007368815412850416475772387292236891354185172991479736404731865322967722159299361050114096186070047967051991822185127434498603249372134592643373735428960821863440764190178093861066653607938665722836687656600937112782968892717702119969840322503623626580738716406285594142411597661568870340392041371545058869397244942150239221021114486153727613946727644612319991158483482920634724935608517455302230635768290612644771755037854413424676868627293368655851025483991661032334522873827779960776030423203209394981383542115300426180734571886541212560693482908713582695460749825573589276808623696110698795298500535975328655212543053552695693548895415636813261946787682611877647136656900876246155413103285128072646784400841091513862497456700156020539750171608436246665036281566317426835755720598649218400501569642010798613032127379442341228609011434410485646110808249605436509524230311078387950119429922771012881397683547099931920104247374045770121451051415201051314424210536049124026038495875535344499642193862751010478343544415997156095602016403283131825944604875571656775181421674931806521797188789198315080191111321149008921087384375456821400277388909522821994306635866918889463484783097957578976387822533652511026893103802958344856366743888726339866671273107950683113859594123439008935139419192119882843637235830212495662668065301414626699079837794595056265459370192817256821578324573184132424850105363278865559312342975021564909379856237722764939855924190134096570145019833180114933502778622053358366724132032027119710728767867864400191916030409606513497226983077398973855166906628812742729071830398955073892973720488485481994252364610052563967739486982492191264348288844386374734037862786586706579046731501147804498109109795540813313961612061902152777712210296992844139587170164560879861070585882071033558551124314583935348079646453630828248242674845600472197571143865387069680570979813757034793599625721099935442289620942189882136164507177359212506040960965020248791010957450263159421071454444672716098280191677609643302380926106264767900675379208605353660341163558752202951014647751013942782674517814496076007925690252214476118191972532965093090217613387627903740020162107580075406506069226464439652481235664274048708505928104077032550979703088530352853862181062590453666349572150207989737425671532714521587501864480742024832546643268167044155324558639061048726062857385819364027110738541892567172343879675930980393532443660543225349208471242327864568390331491241119382967429511066727803082408004235855606423953184308969655207343053287261412264401160449812344128008414256629116113153282351228776353415427327180928882060559886587896284390277698170662293520462191068819692995519926745655610165608100370074127698499020067702859472742008941670968801357619706351446105920643964350271469861354389224136670813600370817834770585914933953867262802017065675909686486111382694723492538195585121826719088493448667419022333933284379464569389514043779348615917803551265290174638211771615732837524104762907086826969844963558835473528928705383856521398140673141344157193335819607413580911493801545007242473392480136501356974425668975182557358495074172254445865882638233116747472493864750732071791129590634977585873614798040861251636443004432623671512804829880549018221017333748648428399449183289249398415010610003835058730588655185540146892611278136577387752520329287158931954454631397603486513310226188784553480676096613239480066230613988635877653217711575803680257476623526959798091943209987380254729473560844948742267539801218006143233604007558358696289758769461222827800800316817342357038857824627021923978908279328704396803056805545460314106919991786229537459022396008868333295071904368550943758300372069169196364117717606927088135445203234818872175436743665292736644178147166949504933567503525124063638426602528417297818305361048268456694902453709030737191249649475917491826018991033233570158551794845941480571965626360151873930162837322204143898656109065154181575538905626686177856552033570373220341523374478523259065471586992019927291667278273413878500576652597834335098320345479721901137284690908933439667548015853429672926941588884674765972777389149514818202901289312634500047064950766640714733603688672314913565088077119103877797690873704654144949026373927363645004839128617635593339146833284352003708486121416717514886181856410115238117021292799148342163059485798830194392485770399457159741054286029978019557446377303623224433561575035925601011897807566435224045719154043615253615010909726890658737294572053514034180552187782640404968906989733658267835221479476423964413774426674646458354369036349216951826647896263610005538456271921120560271778046916646583183966620243792004926055246200702621244446753160248254721278015241924670490075637416606684107158277577233933089677571414288811150961317227461615629778664479782128939392600362804942565568823488216320121565845361744786236711566324002734357439815552708670973890776711985371310986938663920133603564497017067451981292928816757920983462753591393066342345391848262589195427136084405461831541233319096146310491173727261601436478474258260327965518720918967251041417392534210778326859548995366635002218573703252761476234270599587066712314678319353342183938317741964713837498218521182638087474883856996654131649627484878472304846387886907698588040707622651987778232158954910029672412826073343392262513062757993956182043398443964212887994834881360590458018639582770359136386937041915411667643934407853504634133970960299855936230108344973654105476932772674317886470457791957043450808195678945672927730466086033489650163790003325885494097122520787057798300942516978441878866175154677896987434262656528776285238750983502971468370121042541661270284508367714124794948745892038844543084068210142814267276189240095843550588301984480313839107872764178413568085575414199249003898617888434065356612781956009048565058930001866253139814977678737318705612188939213183107267486761122953861995598864207658774096765957185549944410665011608163059601146068656208113483307230567492972069117391479282879561716233421428776445435944653260473834722163100402798662589514988995749677331287461305316564739700118287618703196602961203932793140939998319752430639696199364851475327154542916818039315973054116941925205109475598246362638894094368638906460739912493787437946631504161263036300710268219794903490159934163302278219347314393272090049100375807890898226971031102734307128087843168259733427584858691537006328103669800329236480648881956681160877873152306512142201800839667643201187088948527272151665432353360362141061099938108591706973027925832169839324999071816067808440426415501299894755732957084236554691406690413181852020199471379144347923829346690822235841762950289127219884345090924915487981828972060305733335353945802200860463574809441196479161466712558354005710792943832818167885133862882602399552346301767585644213530294217175672462619688624768857484401064570853354634687848903851867925415951524392603119920006737364565980548477690142091818844610398028449503362041038938618818778693025854907791055832049587320597967605894958649284036931774216125700421503121273701571326547833942313039658612324876285275406740235422610868745176154974402150925730869716441658002642978950873836640108122167800436819285349650587122627208030750558143302800358013171631266674210860206491768407000475179145751344282253298765733345091999589262298379973776201983792127565204638026276120597454146190958973042300892189575137975076037113582845723044457616264764338011701317994874744465761307765663776314331343113875040739726170817409312171982147242449287809079883089175826564040487838280067526671101166370837663901735893627342514181303813816101185740181392637515945849694413217137138298802022813243456124924051760675520889013670273806459027819687404517968752844648056787524446647511481555245644780936993005660820994333352597229763800652948464661162766663110349749382793381364315863820733712072981832012306795638575657409676080266346694629119144731470371574135129955044338714978108581329854440278115687883552744391829688879548390977336688823521989051009751715479759507895274570238279500553270997953069955340667436389337245384761364981446214463560489976685763134043999679890831266364006769183574886538517828783413333553247986855355003855316509766922116702370785822416913748146866161408899447793687846548095321308837494036364250655358652965842044286652164310524421512507817206832420664135144622805694631512169522105972214001183718693600512745507998035601851483495449316333476950426400850925600319506029807415257048641266625945021235367377986689670789216670174396944429376724159378470738771058180286245238064730687797857706721505359285241822824655119181633067585476647276296570858665744562938228113999144493822149900695519896935554008731237763745512927236421868582490143298788584483248674281558003760845856997946822835169543047613162792147671178876084529057116296946556231616696739787962824264704255494485277140581637222993818420932134071165457215132116952374564039248314938089798943968286281024238413348652643919435637217521165587755156564666324345994015991375745884282885102453310238214338190570375733602511830551679393901533548819357903289528731001820960427458285398667849352075949688764534225656841534891429878354853089737520335077119960542263962693481402999542840924183809562334017026509109486736100028292870773197473883395265963471168550128148349257043182689010616613655501811552047297123954867026506278749172615062796962744134801560233226817106884015978432565844509200012159586100637882368978058048338002988104192411970869716257178730385231952713023114833888976990599105315807431714544577625927381756438700021314073067270205783536773391739136988804379464880722552390780482090304212097949968969237567573303783479360181391161338668862274645255311041507469751073754076670889385141971855105292173905636789658260990903592061742662854339321923791692254577565824341088503746284321043933815145495165729996473887105779398951462565735304811618357302517785841032305712248709083815864025257875940971010111543169139897417265583209810215159697750491426512236141380041491553750387006833331604418203470935127474909840051006381672281312685708737888442800156606927343376158596895735972812432540999255797538790036289960978451212746615759716600807370629137732599674408094742806614877191009597718214813910335158886377221684063064498227664082942719084132614704872329699481525265477413898406164756138408132864213757737095603391835760278636383013111928700164703727900587863202355510701370984677931099389870360212586458528975807828093890314416570991807119918515705143240002734205025116419201453094527518589138570441109446220912206406248482758536861179839810935237420725940098246346340571263289437931186565935983435242212256693145481243964236651059234257620033526655701097598392736970613219530939505464567542419901409751076643236507024153074309820943839419692701036469812782451719490470187769404533990007005319968484510144644455810921120192862418389292160764045532294665675118676556341968921376190994663949951164980149735666115187864794512812055531988467326967294375866915343402632813436746687936279374099620165913086818444233264153676208147496492794399574160663905554776152235971774972794267950210727693637409939772175260746600892565086094511170211339198712949351926587245141009768260261768253343619331101014563326665735949194668955389218247085389294238580299931625868436716783629080829215649635357053830589828527098573796292009262394239886250679542941020610459846142206126516397192289086730304181386965284041378917546490033302357488889524486601953149246131270978144362404894143933407416093754516002470646514341632090975468410816565826866347713006106737318086235486526316004182862019562837005930257268802265296512289671219406237826449869496650007121491440904531072500427166902476543097027945143307680247882915122656051602259156588752780656806481621584573459852789633332665224095790067545743744045828087485093488593080411880030304030524369161110990288729749344877001814464315416589618951964380944792345330037862330208073398426923967563985260429283174029200310849487235343590930250637992411412360411649749721954938244283161869297049867381949784889996618013420798597226031360176774469684844534416381486596342748408393541437288480715362714552529962512833528536572342960337870676698860706303836723940679484949407021906687927214215401966099465704659047384669974069227782639340351645513375384525774556674981030100322301072472827986158260392701767149278034163684035608799313824774850210670702575517721138214974040297417918044927056070576971508997996833022673078731261118361754779200496341519108006836362779997731842616629325220234489733374147377429295730791723637485739188623038082697478590289575803197682636747002869854740598890244880514816244726087936795857018560661714964128583321506544795196929289102715012943752121798129709677311368248867749209770125475851742307724598536151980010440859098257267919350091885026088067942234835185664278300217925453803326329338256317271550766371791569610764978727807333272653562468266403347920716660917717417254557906758833156453545389892788415087149990635625552285366114365341922058230999526529473987258173894117479427661780570996366139617532191591777003058507524421938572499652154276247555047845908144208223957056352105804852400969926090137246245448568474485706503674649976648157732038568244736546864058415708795798849905174434651815691071017860947960789811336511635354208651341538048968260485980777222434076669935953392330038526228731894015942689419513415034503710502112387898790419226484883330259083733733869016031334158035838537327536914199755720973507187690297415639061077584373042766268863512373688467938555520952249485293847794308993187479490303945711718783754264722735096441630213091168586970335343573632324009032065407033310910759187620814773065371428299696933506893075866872936914418595976055145019429460664279655839674407882212029541222417877899062428656110828594912311968543084257791644303274492357580798544716843302994980036848802380068024793420179005257526908816965383643420747745055132499627735050670981841397019930262812604390384740683347522078806764045695370776485454944965047106919517527111302845755341478008172438665546404133008560819121447465243937481362175114063943235645957758293210671847909242595878723773816342362663458507355359437635497293313136291061772741126606212768432086958277780318866088215098798917031586157623030725633031183538441524276021797503871680375737347021599393255301310384116961521424112655346550040739772925173593243851552167709954698428651258130251836822824130748009501500637652241243893533159839261397714861255498672120868019148312561363134607368858718107956722092302577710204573334076360612983958605002309438314354476498565526413927956159108095318443954018672231682090930938576877931242286829555664833575038173817488327996887024046009255370281121941232591586439386303975489474415832471343933192376595872829437638909048489485166479312108496947307032390698731609466865090256017593589400617615314588820198002105559708015208058300523602338116296649219429023214569418032666553411556656578929162069218324598881470195923977702165073695312382645371024253842835901265080246976002085343985104877845968484948600895738877699536121994273459185643699963933308693244011453556427042103112981682916535943330727771033112018243048820427111484693993698877461018000717888518445736973581727144502938051591840113631889327239403877286807945952968501005283225320380869767371853070281176022400076591706499128660705238792094157901773209855840484571259794188034052421155829866459327928974293624216556601914784317514304668276798047365623280430837113034036776500974673122560534465605171981196607539516662506900669965541998306685436952625680377961699051524500533016206337690772911458598639646633161618721706275202414284789372274581975486687972728412246917630722739891564200767173364505860258660367435175721302515188133471944939190090809521392706446741521136523826062519225002269409977677441556334422304269020014569734468095097724540302072208379705557196678173800766016622657972729958634802749673100095944281262028123162928711682849227707337745523799980952805733861919903948350677778443999207503437734419242254253613818794363286077779563568767798608763116602620999300617574398619623579995423913631654626595211214800798854235587712367599969643729566372161820897227465115474746119875936554603382659926666306799094331506118406038976364628742673849014644652016674898012271576477719561762850648462479674793584938119680063954912789094819330790675354479828724868518864269733920072782987881012563744115596802326070429556878528845382951840837686735380107824222514693883328626393474382112591361272030132633131416597235215144545698882647710740727392708267861089097336683295480005144768410158537764942138060220584541024147707924369850287432946819381948913309120384671548805524590996230611405491389687856194381268141297834740381534131765971362548932369681359741113652825662946670297932326853133326861419775199055022074526870270508158693453874510299245657769223038733951741932185231077185507214993808644466983417906687043074028211912616018396945874835103254989187829325215637924994431707650644575359381931796288632225357616526857126393920913014786015888965416743522345464797755147248305169466447476394044119727495356764660605539337652786340519422796555582189286655575696134565186686889683799422989419396320300720620237666126567456489299475141687965136404865103065632937418805562257534924469970100293206011592107336222565762149716828874480350629738385105214996892038987513580930773145600499115158154728352385859389000040220521504973658330869034101781418934913034588044226285554152189853350745930103531252016548410355931676538709176952957392449920952144552542807490294356553328524625991515803130761091898201637498391763854449190053784441108436687462593465577620007915960495669965294063530074537878533868798915231917457875886561952199573814045082669661870455708249723604961765889061238946357138839665413271185016423224529508217378127665198701805780140543707568799707341461619973476368089817549554850078070705920579671850345655386260907376308257922048345678176305940920153788618107381104527304159342213895500179914921253849733245583488443295299976566639335772894448987633208207333488927716520358205978251597873876720606326165245491622817416590932505054431582706673505080856179639477842798212070400148129975155712737307141434549841361863060526633841946028190168022827741667452006242289469327958685472432463536375346399093745220158467903603629845068794080449730092746864149018484447917341501603463940521376700615417968932348710775763204967675233353409428503931918601099082835316386544204685622914006984113632865859212846228979887158616318313027717444679433399600022949838258431220897328246060614979659919805858765187307891133005442355125572451891767699494139637139268633497732818496740099280463364576959060587126120125966994267723727183211214465678041430389060912655068093697317376113431811137479217093712029278343437632662486080891302106947895371871813685652865937634723464150910966468860545032903267249537416365158498882368009475488126414114319681363548633826949989071129725460060136702432652124578709026730672939788875905362566531903144939377415717045976275214001287070062009613411085219782153002730213447200455531628000443169968019816151857087795421861395384363318879194850145509957009298514711911844488287689593430859091199911623449025460627688476698492133641832643773019677855268257289392863595219528729546890424003484766643290102994467129126263579048604602789804947315163690762862949755533646929559514899625591657143403363987362734536520132340519353094761228597782487023653157369529613674659900992624523075124873888171980107155371670012887631609049098071573664778227300383405657173512878520676493624809998257562218590321731529945112489297696988159281836206842659279426637905657346561726749929675302853802107857075901973610247552789293458317049060731515243344715144308141057047103523276370049809258771046035623542019750278433702930505992117421507109837873811486600085367499734077970273340317803383704569390208002537739503337787835438569915495922940451650604101311776101681117723615816164477056844170784678160184566529745120501896435692491187997586437126424422049271743192246324785621903659851609147784910658022818345153937857021084262107404798210643832551301336372845035147200483231021289770691429027428920144460386531527820694611154081576722790083553040696803021514630574831976381702088493949120426085916442215428460911963439628225820444623556812686177485264521389355765273418128338140024201844727355131082777873053154424628206189907951386911663393295477016308860542519629063920835840688773752068203159218553030350247530148303416399634744338444010183668519386099223132488316603128876062302549643442274652464229976637530028145978819500253348855461693781049249488094431625622537297886384160626094292410011116159232683053154108807949482351579897949485246775399696243202679539090486703578584941279012182703897681389938224477997711711078213834552857130029536649193712792215484968327993725025572683869603350500129069797538457386417980317668183577253254240935572939013958539280001653365027403782583332770731347598938642791382744051522493133296402362542298536497197361707376080154719313317226075006800063314449449588035863573550091488113850184829917267836535657910259567752583080473434606983810346526367425908089186929477059100014388448169040256214686526386174820472460000220093926369821000959785697211557999720143813159205871741871027619237307407508481793904569079103219077852375095544030328010686718013229250513212617390832439460570996629842467628679757012304860082545523609586744346781048845633538149039342157663765169887504453136261264324930363604676997757804752946521566803471732562472827095524792973737413026553132887563845887743396427317961623314028295902748638071529655188282407303616503465849394933143943906316656273245864849805465306468714960703401161429221533922609438799815717402626657161192215647067047408795771669242269175496795753576504729616754941355025769749668470414792838579333256315214388858411031197990577114287939284215223570878497846641815652697797706568568073491045385074384961013669341121003596051482091575083282816809490480040240984231906516680073996859558209631626797727504668443704519281955643217935806233912716148475870431275195634400067313758932177223696977453715526117440577999472727664202240287731048890266400389800620625975215639282634653286629965738817659831758288129213508457789028791779838750150658988613943009927412800311311200373622399987206100912396458913109576149697653516886239754927981354164697216116664644209476968005092749864553695068467969594441957995926117122914157094450272206903046353297648648393910506600607122350544204677947946259034148157433349548472949586548299778518844135244364827709954869046669358818570579040503702146689107278404837919158450129290094275477257955553030212999777345606626153360750782245050258875545924523235520971496071564644880871404826079463964479658283554724187924728286396588509401535281309846128742505512622438871313535711246548895871202062385359902554540694347848467606657664441522845503823528532751128581280634046598749050985215107478116816218573068431494977862218972058695326443638250182161379355009456003545095214735178469597026650657650854382690321315113632520087802482313221057388908929702558242174702823318221384257430076450554899930889905144859733288284466996674892497943104245907844762718112354618374092919449849577642884959148511786782771930624528492228590439336936640827204747484627728404647377422644033839874159696170172594426623796656029809676884183516749190681365735151920982320241148679631103540110214195239560652243871086726054969762584477732116688024228723028085800437277250662209567574127230322821299480998426862498067171654715828337267886508412922256198975149564054590540085502991829070990514135569996041300535814823719979181771266599143652525025106871561135526168292028742079941228270411467284579478803237532952259202471231351310337332932162920870508578502937356566165914138935244897922891621020111595365980687908148965704489103415458436682375465287055846662591059965198653160483889733163826908024740102699803525273222256151191163429516252976920236753655937739878417851883865053642241970672264012486691150068775833420430475064534372933904540986113290953293525854379385389505843023552477673785287965170712119739281197816735369526082754591364906394202284280210816024064586843433386892644040517275106247194430239384169831510972148521196390526982740496090024097294175406512446896226702732550787001754799621070447368889371514459443015423433845768254382456801981423068740832542828928223923586714603219921560563299610219953750507204582382297084840659428926701160651814095866534805333826909244914434450363409691273740452569114589791321398800684317300873243281010306949319924946659000453136335101996005616701101490345452761283600076847377348488917762524793024394058383494232473368472624778080440448498565758957153369885653332469106681446110563360847642855577971537966717918825176318282954036576272267461973501084663039424178540467884369290633244549969697905987313663776343751121808741091372591517797463093898167244046379602090114225656213019556895355205570058576176391926048752187936260630394051948484788146942720210327348299159296620201126592110331924535159125200031096203033922974370263307907907809740058792330222665137212875292561843756213283470922017542945585819267492311528910494480293006648330096781975977289435192772479047911077920656321734311738745648143307948174933392726735841412133205464793085740577717821521028479522631704899196593106445529328355469707948267692450300542322542431288735960993845547674915310332001930765724222945158718244496186405155578471957834080489521198142564639896512723528750837720550605083106223113845259815563068421494483980148297426236853236258245567109257082621928108269142505988883892941700770424260053446971075204964447592466734232496951065103792410737727377222444811382792518891900305234979162441909375765158966281885711868634928585125512127818389750155810342336093949154770322102939445457777772650582036598022099042086591494356285602966613294417778521277648253444627988445221445896580360495179951659952561490733592448507153834516666584572637985806797981974356559532706265872180540727008971784946505085391183907696422354776577852214334418382283131497340620804665946770491653888576506771684622419915468030558560962056461529387194719781623554544173647948442846540179990269713155408617306901473176702605635161581626984492868249409821845781828045893065779672190712876456171733399909913160178683006773167173386158373152082724842130682815973830103884303344028205137723729985962175536552733487535323229523439923934575681603659077705137302721053573457020678329214369551810416810616160690691344736424153134851033591411626360433920623617984229037089383304759506846926890978145449895228719696694777760824616627583994552297261985160617266319479753642026540721971393460333089739606565179354069657993059346303588039954919923924129448422590996224340537225316345119427295763669769230996155239070770962379152758313235758352518260288792129677231486857488550468751899811336619581390600747734505652423046856336083352481407138455731476186002668317169743007526755779847948194207492024739085625343906847792940078094027277856660743027161126302640384238548747753464932534606824016548795938932994971304293216701361294979221632881795286882268645268598339869804716570427129602407305348991731412911772704627403197938834668228267724194421870534842298631264956246462321849508189516963175073074823325051367211163240858455975101806681501247550531723950142439820169780122882972123532632267465433589363976690779075902463343650808280629780022961453859134963958961564068547785411595465954545891187952739641234131916751912670665073946089403318299825618621757996250506292014541409620655994899325177303615265968747285138975252636645538120085210260807723317266033995047889794363387125494542123686033495752418869882402355249079005376612760654141416604937098932774674855304185536837115731293057449052452422061362147875910401771968913294961126217038207704875984084608961290843304922074354115294151017200584485548420725172793478888671657646406143876189942469343715202852442857364539892106956259183145087904906576125895728209797878391801764783504604358933119161621744149232027003323183728189235355267978994237664633123351426425116975934256092139873365328279597193298362845054857171609449113868742002978548868163454692457001271017113421482966003980085492025488732577730374462883915169294822950332170619043820713651651673222241058655783575000675674449724887932194607131952723469219877349776213909651837911023145765726225938744749528633622776863590050634907473531495896855338789949438376646055052475055006751763072927751964238000046915360625775118745935506838948671734543698844568239199272854389568244740074198349527186384258469493814064641243673739127697112901690364826531469898391696108210895508678741634943774640105012497152721161928838649407142953001887051184710445294738098224359850582050366804068282038316913939067394883120999533599004603389948355323350080344142190788953775569734498545439913310654811054362352811321396431861750830112479767518686854825924276206951401569056428903292450140751133351156122188352539975075588474695984103594812004685540813864087919233390775372798089244163979209479035146078718147004802299609897287499595542903138062191287548272838137188172105789208029659060374161161697437387420198472615025319137472333661502627907692103173079437329537901934985969349993218963775281334438266410503142443451340478324868190828200501366329150026023995708640507250827925462086897200007460152367569760165977024658351115826508406495734910259035625862865874666297299221930440438444201707492124677776637752500951864423441133087041831579149424802078889304874900672165297375446201876856553039310948765993590353824685970525809093820238921841357523260997082098319512466466694773996132715529124964250690335935089478654327802362434189033370738287031772490816964482917065527242228436685042779296877640864956509466859250585171663383095773333387117930464112988143012524409276395651643988012320222486596043249400724268547957409322962444495030868933306717832912942299443108392749201533873279305199281690448914032181974115771196654173106981561178155284014132955581520957151627842707350659610707723741348066208518918793415652235938001811304530348102791373154094464496718110603707921324517358503367841104735165066945710042011271688092712461697573199552673035173681718286389820297366668485777235324304927739526198737346357541732355845088411183540740408037897999706621226369883917223810924246228420033009995400640083680315164545462074628496574485915590737221461633815438874695865987630404250178224539556996581455871457278768775037170743093848565101182841345582453459912817622775334128220443654089757208682511649159859025991324390786363212059767892317169285348308351370129189638044318020797946207794246699103021985531411358171070755236341978150529899923184832016002929443686652152431370246281741536838923190924023232258180652078904226781839583695623921932869310666882587077719735854756846246918211337066121491869507644099918822376606465769581306036918342371253314387202066395373402505497567653756949161588187134180045083618050958302448940771719232420450342053537272660693696385005301520335321599674362652344952791431994431865218280421985722979029194932912727983207339593320408801294116412837301382789387292307969110992794899812082980047822179007374574623830673121622099248748534627942781603597729310942593778711235995146785199641935825963844163610665846993504465467466338684361229219094008666596126925125827265661057874055934210227851184840544629802926707246377546588471129693113021004068846648630750605352102666842931704205975719468872839875368040258941962767926119455480286325067015983127403769582612552778916823023527218851850136602773714723872192622989626675386165149475862955581849597751060096424072433600976450749871980261838065567290760311797110433960284671900725436230825987825321515471731416533722655191488983187065954674110746159649486068367562250186682217040755146265471075506919844089896892085558507388534714415312809357823829486892965060547788207984948188354981198316535906420894118485702146740643280250477211940515077727758813060257074510775031134879363571600516869285582287239505052538445266381800091961081125316822891295875119414067621256106131731806652667081989410668632930922953320268178210059712103586064012419117331642507671377318012513792492764666415313023725872359758631539138307324305695314913818738857252468445209791337085085903250930157207606695778363085886560860765349061891615204868352457631290161244021715647569563679398181630161065323668807100140418622871528045765248432151404496507773842741425700225281966492432294038813140672882483710737001163570177319512323505278818880252785574070374252594329115906493500276603424120562215646325523479075062577623069523770276180860872462949816313559062041968665281177608176090577928909745513285170503911414799139368001573987487226916071199496894195211720034665465306468977076958393318671321552917219328599308044701701811375642162357839481392610543428945945102090829720266175953950949526723904535599190486400140069218338090845115074338329461948310629065078222370878218896811045019046628229778872693491088357870259692321013734974044153067942187835257191754943523400820010351674308568249727659037165272897550177075002516787257354359269690844162645345617124055597218218144867035621146842108992005168251354222578665682313302608768497715468627195469954671237487137656584063397705068143312716283478223327955744421909945206090730160288910440572113292878861394406624815676172345430088365118937980429447659005512677745948043118657518652154298784278334989040205822646436094405884321950388545488248290732936366781681901910959563720579969679396394597775233733396269507479858334005188028051263168272165599797350667329715196941271146241745364702821082164772935947217705241639647535019076135751785377130516543178684965172514100729508573561005330674420029882429813043520118403363101071404863010544853657851584608368211120338720841209107881183441495029703416296075552326590033044061813547449617184431997246174630639544693314231239104421271828067872558036995081824258788349839056900353218092073745242870402313180465529746994916392312999636201421763236710703595561600438301532932456110710677557544920707643003382416067491441693331969889358031122824629441976235784488983764480739500287205985171931881061457791565414106323876733891075683090143619428217078128609386054486772604707053980040371046327943423108221226100760288505960712813670050071532427341840537230343816144863358416813598057294891953303534679005114777299707861496086653002369417578731333589975218967786304878312901935055129459061833270503922927198769231217701146779345910978989914899187388927398666697554600848846203866160855965770549727144746843659411772614794304554989472396242217633595662617459895501395668568014942032822951347311406930933158099547767041689061961299496799916982794674230387017543789859396795025708659607968080308516875025527834840590994132272462379527962682225101751545434430786049835198460268141103644025314811946540960716572513455051935915469247699653917919674934915902075529492834005392691050400855716376683384900673289995711589958574509826629281436999192625943159904763209634155331017213195327543138469541537926381214413710656486721611151035827856699362043769711173057322415076628253394464562760759029991307520322220669005733316492306597106937917185884079831388597303523625105109975108246073637052268227124404405946291140121144243847249139663911904239198897335599510247471879927285815223938419199473262133468870166283703382187721564415600205732823828062915574909888262140034971659085443419288608286278471020660509763234290968774149872468888805117348437648122070543881378752173028814039195631778821793227060535927835453715502087187139518667438641953249984532295184486194531015749324882332710020686466777427919935897535064480537702695479816623762768081789381683290786514729605655924378860056173354734604215851524619868741773349584996548135797233063280835584514819130640450841243139962801827781860661537954122565679916870234803690921204030053805958808652029132342481757668346652692100825600419616739391548446857242803818110422032488938274420757819266162921250066987560803199202079176551926988384365085227973798212873661546244015141199297103723906599055390639508611786845177476248612813078803164585258494187617004063919683580027608499954093226255434165760499726978509811646506835514333645273385683370140128191912163017945698615148619551929045238328050395857797158445043463116364821465214157165745444435277096344477684243449853678323200660876656731162097873103824505170957233045692861113198463201269687930988666582848164845887566830148856055551399062488950576816018218044932955725254257209996771358331446327075905950852133841333406914334758173425678530292885681414872478024520197995463414935349474823972578723864338738951503439751194609447178509224125607608993808934028099070214091186374635797957617961428926829683289158082448839329443213880839727010153067360578990246814156353008039111419470704544978957346391235127652651672812572893252310576557360993178280511065468869969499104667897151172443282531037633953195464200806701036400685045493683319505691126171641829174728885658490181993925062404026288074985910093202946132201780285380267196247357843606177992483131400859976080433816778213321377624471287299963117922312448563434853392700336683433469816863175201026513726136000050475676656800720028273314053619743719897568706836890351128663685335720380146587198256906405519626302275259055175689410096127510583539184817791998562538984989687600188778365185152390199398843241024321698264565130509943141056852160802238081402585234387360136514677515131608982447442435444977444125172349131818802655609954579825970732616251763885830621749608402756460009390756977829971488161183817884411888354536053077082636047675754678882168105483257902529372212097389358715149868123836952807602073216440652158588893823790143381461050840052677134154389268096456550833581050410328234451374793507629690746013915482900628237732885250346600038661202360024395703371254450375047441602406940764659601418100160207112479092099677981731612141920081990495155800545135889940997080671331764783281159849550994722807793586297810360893595508209375953916535010952863594039270854227873912334935056703796916268666369447933540845950706771252090716113120710496762353938950840172563104106787265527549215056491439404142943191805551237567139524760025211505117916740256909886405544806839061152127908864165712423754838140333399754916524558986644848880652923897803639967008179837517037376196227416275059623656647423718507463858048967563600771147094880687284264540290906147478666387717188950905239678807929596033245833808110263735109120737587742246441465230689157879317716515628666581897996592706069387663063974793170040194383772046620004272565905821423005849984504020491189380104612881639138681710168663297634237368935380516711436073182685047672773118791038061161203419595264947755863281100707208618041478367154691010960507216515283832351112679399750231726151872262834138941777286753083618548953811486430883230321410882111743788133903071462986129025081225311249850868200762209103389760982912964525734420162963554386236084005953386791437383742001158767987096413603859404800497963758708827506732910574646678488449002582694098665922105776846469625104297744654790934809887026449486656332981399667026871626284523675831461593468501656487684431821350653077110963772393546602658803151047268282235851492915639306961762321779196231515353742987278211960386930763712806090645452989592752620431702909657176104358833481663912134527611560641133116783702727488239085509711093882928448426529160190055927956457015424047634172130825486598767269546628873946156641600539926184534250537335904684704244965825728530290055514565969503600062519153949339172403397095578945746679204449082924078920503415245908301041864061045923282960854348598806706009263702881147838351664529210326776299572035651089307786294468963008448551445616564924282543178747842754558082063025003459279461643836199824749234124968504744411165981021100682208554077084098919301622431190270819865305766389576304578560619710320801960749736920856064038171317567723220380307433708311100189464749390837208957392700591653620826666993823347484866269705777271680702829523145010341652572505769066750459563438707051279569706167255173074503692549051819723356476535325588733600135864722954078818465411125396451395114420722304250417953813731421912593638368126177042199358144981657697924459877565351527557293404124006442315225482446329134077757112123667699805044035005466954909499335190149304311487936596660031113248677925047830859070629165693230277236850818273623287286750173709345935865954322224331256832910814567647873670295328405923791894180241942490047133233655370446606744260671399363143139318155352847051714079069248620872195740719437458476780970337694041710819953989689349432922325114389949521126773371820639315606584787573108791760255318807626238508911359718747765275289981809212970001802835084987759307243490190885987579411233191302525636020241270919118366408619364324669058029055080311476542974524997206758409266227492298770674477119257202867023609842052632966270159737515586156073002242490483197105560827115420919542166775314045584989732655258913445444503225536845221784534038387412936644746839102079864087694892338926969743056557012623267445714043521308911848804750380370709280810634629674970267738959603291614617828831047793692802001571271523951890224560414434359020418644771932674132318168343559404764641036448921198087203391311603923681835945714815657755050038829610244051552830137346212793271850195976489669945541056021505199379757022885540443903156990622445475436477582107830587690839230669674547611358732950080156648339656151834045034152201647356829887639337246111198434911526001316433875292050271267324325720093272291318247464385602840002117905663644440391259693695164932749683855008737762592330841020060072335991618221662121260573678049796357079505838929398169955472894885044398311837629850061152153830542968018642056186144705139544796716871270931148104571948491820677061579065266787995061030739449251258077063446024312893390572029996547020411411544952716025300413514290623207346797546927171398355144687933704019702181692892781251404631532988039178020231856024509323780160401461963038544936581909058736358354061231415753356129089965536040571455113538042770218155459701366694498379240839852806151250537090925903272101853030743953429088233477153886060436088088767166300720365861922885852512365382867251795430244165614264068145216058670022981598395914641609616994205679519089257732499114684580215572415240474134691499578090294332580888611715224395602674556523276637572041906608267440060870709001719408358607221488828570469901148432064423923468166215136707935806468284089196042971485910054272773261988050081598903791617618654619146675237667952786075970303564857399242059611958246375746423301224218005394870651206909041926303052020293586559679264574663027228303490498201620575804420853362862788209546695403576533772268442740007669940935250756231635274263515348586555183654508345170166708597073854690568057551107773042999318945780584610428853847482350504862888547956838723168263993391962055375180749812818043551367379295869796471178817115899397299934551699569585870089265260991089081298527124218642629701906178234266689783788657935714576008244463916856935564876616012644698249640575712463181769785676836054463427053282749400218473578094683792553920660172480442832273278430889244835262399802728400935808874416082975583810452833976967074229923917964151845942758566753060293627600007201568987856949740502509075499888590055954401740175045626169068413696550366406983138326048180188536635186775572215916282148709391000496981125901765021053145170723444771274510570035973423982488713833413648465249273108368768144615712780950022721050558589388915178363657636128279876953996917206916332137806088234682320419781072240525316277788916728044287483029245910406412226834588649337900123700453635822346002711798247080952916687721712455615821329281346591384333979331948249500155616059943320364217380745114942609820242512688243681140393352400277089195520310749419926026825385436915225594779566487554414813561535200517146017741549498846327568975877300863354709866280978797909675826362591914459487519144655501044959332712695364550924272287555942820241210643857015583517938507259948024276528419562920922429163841908620293712829509526782646719652874108425561965243442257363669843624980905753646774514118273750433960261715316972135210725808707451378108914619039731805921464326787007139661405095826093272175894145788349819975305444121245907815854654159470061238401920690350751621856315379357055557224088221378225448109102546829865604115645606005854317984882077731197506899811843350918583105729632585452770112646539094213108109731760488922504520943574890564810630375723043162531084904672290258675072563069622237135221232241568270260407922892624450110407075006890559578517848320440150842928613978666779139959658022147627013754520215145506734794283700591310632798338840736679238575252200472529980811324584312214418743637121672561797502617189343022275367026710165661928561667129706846087311106436145280745959409686487698419025783927119465935319499420451236276023729635505443511474393727885382979568458288413270329389068678044415551305161759823636920612851874817454346716775688338273777507749998031528898678537166645724772007087024606884277599605103759076301151546025715673627010658784310540899879956872440096733328382790853228349045921768015948926281433474350284410555613055441253664188051073024969523402342600392973422702050998486832148167984984965633283776448302928914164245928884311393820494226932042169283040682377821516624902471209339931849563730880075529734239197703500917559136407452797025958228193153621333209699019356164152722741499812640549807633646727990015128782000196519778370432479262599303261174117733549095896904945468443503572306305444845440481429005943325739338760939894445105031111422589323683487644232846079538895606552714267013545685360581772522519173683397351064142460951914277633516296985265234358875785426787040659020462604162356674480440076808880950641405089675663479484159936395094857619596680258074041585799179254802089545548264223160494208085937665250203074333008243422486264725847453012365963073178745091833065427654287968688584027728138179002279203821329928747484290844615943259765680249304428674107807051299837751406107878339552758614384433950212754684662311926011775150672687924253961073337501550058244919243287057548376084087713864113362230699239906871473336377870739073701793899991370953720031412057592314279050388992712955671760413264556774331468836235444775321804110472831076005840683858214076478573398948689082290810463088157251171414730416285389381309038821636866987433422444590195396318414417929127984627576393100115572121735776668872209733736073596097226924782289487025900590315955576062214232124500848451145795912190675884780291352562634966744752845731041655239604102332119705484759687897618465790269168191128118942737186041604660165648883607778126041016406721530249882308893148723461877218227691591403210006611509362300983666335153412388899285325456854863872435446928372915487368945920649919829721621215295731860217338042611529795575138246285619551944506461698774798538785297206726943420217672144189834756541625345365781906992483319967780232265463259749416146484325697768931182831836904810280160831946186797883231985015921262757762670394402654189482814564216175124804286304995814476790210112323575397970299678743235194594050015828855526572184842805852699550456677480045947027563250122685448894801532252448450435227871005312429603923249994454370094437162484321717650514929572650823301480545179228747932528066347203637010744723601409690724936473728742796323105028340025204105784186522852325340056488410635245923077342445581446055489352534155216556625737196097158378152674467704183371944551220807969057700777998466041330648452435181647641757889484266565551552974349310929988675429554754201711301232441944940424670155785209447692347170390852453379034448978736190979364218840647721193709105742727096390418350166462780824937949769803239706432176604475804081849750354829927324618883889689910808460121283339612956018537625855930814640940081127190140924292989922873135383401738182024960384310115860067476910875539576457832026853258147421472406799321610037560792227042269459080698926561684290792838876411550735528780282953292239587875964609440972877706794698020546168961935153754311545908985625927022140014854818959899275094837960736576204528587290916433866711417348584853251752134293733316236224400286846153068823408495926985660604846774283475177307560056566893451851340586501582293581121370778367192630129885644749290106097401699321158554128615731895165516191785662874059161161763375323960508071753230533945868902058863138397091821962725135648949572604880040961005097739146525122407128344874666292880934330266745982186257014318774130030610357986986134745962102634425042225111440776174356584651217096795167814926282705636242091022009123032257782293605131461502401400214666735681506655914570035987101373798572351244880996131501996655892746874952077292137122331590414629725909551433670135877991041329885103180510757466112114409540306243840550154637886251822923258542463154871408861940765197511828935036681649133460409100505304465276046082461469316150307177496117803530159160424134569277291105204244349022946190772253848853115829046629172145286790775250405329332301770600575327004484765395893099773730689976064042958924635751723580209886998558022428184570423690637239249108177039027216420968842240320895815884126476015414097548015287944721784087994427420736328187223727670314613173446435824525677462335905809390160308008213173149204011257778621374035572357393478739109796393988530600858755486486469737087173211118071506603017503558078155060811374407936987981527566114091885557576667220058520216193088089309202280000850647964476576053775357059273737335021266806577011527739863371578540910904976008695603550761089346097653878580593164246481923918644032541718499177920362846648807607024210923620703452265291539983080150649396852053564358324181874907453196850601249503488658330460128607760169789507563032681748333873546131916238242894166695835642610994946887611709244197303286164701698169938945306541547034427889093582737704034756586529592240716129171977625874794899123527058929148285003032043792503670709762284386651303196013581650841698385535109484343415023438135595482183212098581468541559435188878409241871427208373635101685566514800614919500728480396857700292956507161390958881367409945260793649572197223290823958693205982089065222218428988483362407282481639769624652904842667253961904646826177725038960320759499324512922746002032603146933604735775302578027937723502486622065564188038097819730776122032179337875194205745510111736781271309992178450414938048374775452150808897442910859964804256030005545994923251816188459522922680220446868799472055011616048247760180865804086695691119007381749678583855476317860714300297734283160584647203382068778848375730957279974850071168971891017704560283347384107900608570221572662886945540428238638865489763743693150723304609531252369323509296368691221026400685512630811525426692346069289161816632210514461581582860958709854828494356750415445164441903748879928548654560618845672912122744998855217953529538517914431742223503503078575011883514835156277963960096360946403525940506943122326212988292372415194331687498203764596143354635334506263590075695213910316862406201223756679188517933461465922182392710802673759067284903087581562438423675655437751798622056461837392616569129074265836321314990405306860917499247477764035818723917084030037040146157143460058643663936670039069688717598301529454436118238100020510450843836277408858365583039790574999300321746259278963502788738431091768452571069853373103899778165310250939660332971523094531201495874958260088768306730777310163248789111265174578983717353553403837932601014454968852653335816332819925742021204305706313641073904703734282661958518604626221367070364537112604777266503602770305031939732671495410551021652934214686523997557070720922062946073595194789737381662053636089097424072880020682059075418037310814950860230352156672263941474666386456676829040665346122455863357585858662508568690859700181111469486410910809751894834388441793757487391936054730743221878178352214678230289947557778126575274601393074486859637517182122037282394729319743198864635270225942193336697488216232475381068836299050015177182937863423113933954618962221784784407496604504074032931679415125357230516008120639237701471371413766688229272862292478833088309341041928440727785046619901562556048172735029607727451845639011545936638453753295428610009303671986271350222059089843971930285248569840439697071949197767630307049544442572694756695277435862452554102793913180739015997062074047390030951145728603748526654461386708174951605238454148619861147754238284221942188393392766071873571368335855872650474847387030943308065573939424796544625476247956597591900428623325422671607027359081156875958352560688976053497157043794022662866980616211021472247141485742419112889607890696029903659588360778724551399661474511451346800130123838843279301318356426881674013245572941180879168926529542464682015538219057586329479274114451844092606117646525263460084818308933500116728470234493330762331558907510758315113294795914744763222031897139596698919209020532336241138382666168686931790685996217861882983972113589572633595670205258414213272021498577334316668623713162434693550993580039685423419293476552793133214219210717753396874205970678929265053439257920622372354597037501951747798014078198806732301940341991457645005230433459587140597438459958441031095834252875825823957053413156837412683259594640597305392772137775201185243882820464309616278698673899771211890433733645442733024770637787680970245755911123606672923647866267371019774767658724073844348609768526328679409037444558205158784456509314313348226010666079022395997626464126405184195314324535377326435414223432215895464452616568466573309661427170143686550483052180932784799584477759552650464771411845612893495419754640174482324090390705244299879716642766513032182179545749337281001000556770934565013876023440916817726082375780928408027295206208982524338381386943710935277611048708629969418679983184078639328934689147570812209482168055033223308255637038007683672620668001204816344934928346291312610251362260747576810818554856100932775374759680728968592317107746131703044880951733879795349261386420929324576897546926428384150018395995851122761789672481937977828270070336527047169856457445807008255234732092026810416759954588298972620397903702065638929504233467731350117986805534886265304924692408206027446112490170251604095758881770308484212914310058329905224237503622293656858007185648234311063322819673908798998568597106797607231785435905862482833748343154500051676780627697819566565722826954216183584035666464460062841595728516398051165418728025213111284474671751087429175889117045320467404022536085995510649230105611759179508446500659378274166132147244397493619226986098583509928010299504027243222637103197597733605911027639469549861740303481604005913165685397473718701233024369536280096843426782389160536496116893888758190751327824597686885504698108380287336308655656989053779904584882917518888109630094686931979787243199532833056931727971275145885186471872070374483654352925379009991654605716785157827596815032802164718878703041523586377171714605489669320140304074995391907711245663871445268877058256568968328039280430419998041677357899601772248320485579143526933590053160581386142700086021794591540541231629740865252140379536568500497634883204865690705621185243333909956808888838589732495497006839617151830387125743874918470738032821563305360476350598652597802081215535125051201131404603266904930622381967126595740122149024388887980513865546743102750570280352897960433427658050884599578088785705938177299335912101128293109429161349238785827857543084543891555936060223263476593407754395002824677078118793629473512295446017424741714723000494532421858909606242472309593809171531049328495801044336554276629381899600623313411858727023640607416489714871154044416804904800023143419979752226100212302732071932478587142010475679219424868492122786237723750499886914118999017620394129951041001921666101352830433195341710565236397823372592774766711916275555004031763360962892032827568168413696466857503250903888786841390913810455597638982863572111487439760244326951928325759243638730605246604067759964074189121079660132066997923219666970108826938006977545276424330377130073044858644382948238551203671893954451818016095681659354263489591799657551930559491337538204943420779816403172041129765088324185569245672667333523796331570635383747690237898173718436696844512750478945465515622122653806522800882848317350894759694795581484676212372443325996201857144493586379018493662250272484866943987850751648403593095209485425889691740978353647209421061299120479853684086422248382892956114337207914872918861380640376680649264056864532537269601977233427102192983528152590338946499812743328978299685353212244490888241503086000702277725801435721893380617437673158205053445548803919165615236290207812263372593235298721436147448318404585710826198454387523463354818341628457468437575691983687959926516186110463236160304786669500542412022260335189987936248201926162506009591008300508952446747414467504492744284442438962015757954037768832045988627782225261159984099773961216669119980407828967244782955130599464141913528222341165787432885779315204295828122121112678114635885433601893443466534886616896086011282961080052189195155239252294689398941473573810083142854185539494165760044808618387496715847111269973339547449211099755968713488221033696038233756354720120877691326112761342934898131827905058757548495474853792132352009175430604852332849367385808518835828556176166554594203205037203469147705553972063445319862107810589980154285193390432591260510138907387267212884692787177749857728591455762437413965425755832001197346661129847221324542845236469795718762784377270828994420196045408995894845238169003522431696677023004282701247365597339605711858254067666603833032717781417423729090912434241987034569901636554175862513720447929355215933310147212553075829247234978445615265924123090756428216319886449097592989191047197034377530237971628428484130052901285432881304693553914936670065662030138767924887280459381701151180679360422774135890330380088808774585561300615001754871820582369849861566772539531892486177103373557859655912947238318352841007974639585717442947077474586638804202576096483838982395308862961305382174083447465074994467627399431442811108063785590145991465046016330227781099633852811113947085406846022354884626436551555197094440775199158532724518828528422952681638009152111763728886985692101789119807459621991070133845129932405565526983677512985073678015697304324595277160966983508522697844730006707865168265661387445288140511942036631959348495340615759261115205564971573170485790179129454727362552831859468762867070627779562599176981818923877131164484486657756536743224134487078237302826135524399915603618429808278510247940577017675291060904792574011900567640438463766296099953660306994929223934090792553612391202455465339546836749964124882363344354952078887834819830707463781273268474310748896796235577517865543837082536034552243224802088575387759113506305436359703969219392842275965256753366994786839487447694377520838874516259564872141695050317239877029812777253718387919520288652353517295963531651692069311273821841158883291531599884635143641643606282770623801534478896166052574942274602530028587247354307951658481010979237893585186253032033379218606035565046661773782629728261280272493500941708714910908080164911219118302874298839310944676293151857705476843486343565269451989459432464729382161421198536103168061790853316458609287447623984178131035089621808609315296115304696393059700105096070669619020632335380418626963879929503975176738558680999832399502725731367306283015293160324109376509449889372420393320625021299009968641875790945582397916032832296064532680592615172974668476604292630250075980790565393958194036999749314170876240699191824575746230815487845196286015570879311952608393181025310082474782104714291952989270046148444537688168068767180453875935486391904875556391853941807097786029424952775376498045319043436860917134531010387251437511389680931899388333286027856350237632183616910508424239114805375289385833373628317869349935601741927720113904757102989068906700855094517261117790928656888273922668177320651578764741480821201296766681147003012946772313228682162197449672387028930606028732795494162619419301049534085969962839159060893954455684114545095103412568121397769758924868686704967609481321803854441280699440451333510599019045180543285883769963266454191886796125172346965626474201719294566675305851719389966772534771061312798661553966264110326967956225567787505081329570204434069726278900044325712036067123502347640052174193749749883357013841013939218490778265723143744704201622509100119895244101537466667175859764011238844378980853581742649376935128040130704449859669612726686918904402051640322765431118142774802659033798025946009474081718728118017232026216644143070973598313014381255027064819091638092167313199197452379862258128668220129928599859659383914750394053472178987740535860278296063247575568858973609521645134893314742350448746298017979735406469645057309742869765062733483558861417290537055859077958906900045611137958269263926327143767203093015740615154878878262548978436813360846777457184708610593292116982398188904409551581823965436090830397879670198350317931484172915317666814222783408585802675505516185201803924725925279423077401331583646045929420964274687994436661897758992548741873921280793339869812695145322875370301905676867135150771383210180162022932656420280203853878780644380960185205571653192952814363018235003023414902716269452265349570007384253396175106303725732548918640537115440883671622698312786972262189595214030233544318893364536413728989918282581443881973477307461003903729949508950417185216774064012868231167997233310931797644090167788277920522463779805572016257174404583940001681047328245987154131330153466636635805778245863169761423910783260785228104708215536441837656108256598040700386090720038911837000249102457830810572460450439807392666793194171462475335817309110460136580741276965901864153030909905065265693819371916907788337859158187667596389855438106839646085712873251185180140424327868184707311659511181730167006528100879816510399946154426868106023758374487272566502451516791613351524959184589001161919359270011897053246456117058364729473439486450087436503425760564839262969856316817465670031676232400096963457736005674108855101914091682478025817804649809313136963589360230576339883554461853411559184415604139268867295372745718055999555000058984087641014955073138537371423481901613159600541878207955366820792183985550395584225910412557630459934418409170557859722610942557767192849938512464973141453288045249283906365269125577989572112808024380152567297787446862688829208265665453540578957300692059943706666627055215971982137790050360609339565511370829016935013442866194698428669305801445268406433325172893157411920307493285445742709383528027823859705563014686270670625375512419234210866342029098909977445193546313156010788415943083936689596357951032243302142221157580637732712324433359932512063673635422972918777871499731244758632505654305327931590676972655838663203736866304290087760184663544935955909477433748466070531786138248839149887034714247529694594824284495737844565045822012544300955427202011508439535880683743659396765799736151471484590769765440051420115475380606074298182964276687947221211027022598757512849955666689867588438665406798503427602262084638126263805849916658266622990794153791943035300959587170877768612325839722663188388964701206850827598632378241937496438802494867117778052410613629107500202444556868414824062683849105965088403694587335792816767440920506986463508764143662883284810108585015865630038071431526132024483112303509753046907368004106515114244528345001635479448819142086497161280069708495548756176460386256998254735858223835997344985035359098477023056942651549965576768168578778603644263416374312412596778110541175835932832101698604004553982264782393033408847483828584763305017041490023709064423267946259205910996712625613067045743255414875527166402056656167582827179288337948302419786857519406594278290130373893340649986651940186919085354076838147111567208969174900329605104865051591603198131442937077735616551273005437385408301468052798887792391699803339682036785775450325214069255967567457958627618991670818187182339178822126742764997646795357431383306390251056848653396085166385850025103908749059998733360261539043646814791730130793889639388185161242466559769296368417889869905978961333541750751494271283540330739573337449269850386244802041421457925530550487587402388738049000879897638984834511475215913299751000547324234204403460865467652054776072424911280159332229775831814427150855182625421291149323741967984136746064968872242466998905523817836926678316987115107485917010306344109394348469772232359843330127822020202630861437696172397857305511032472839959724502644736192047402499902055970141484753717687891360465360419110626793787851527398124920114665918417274426270655002375867476795543040371578643898276073616106685573464226763304019775421908985605936606651615102525159608814964561370624462699591193601922495478666915020929522342303960385852009735282173205952902606815848227010552554694509247283638405388922196651858601995837516271562291238613777226725130613167131107266806833822990721696496412627337770958490914242585059053661841658267327938628527947472091108074434239612796239285426277531743739649024014507208367323071719008428687210744555429162521613448669216233616015317189967548506858325209481109543896688136204176962987840880528445783965955981210441514710868357410524317186881499176041800138806691618825852447191024792308208103462931394990302550678904213720859761819610999489003673105451655525006128923571568648444253911426069361335294403062264889735617636054138685293056695657722445419998844895154436618061178366332971323965693581616859095446191521978434329527815272558153893539830840749339854236534629598107180240139244709960068205662730437221235341541665832841270096238661078475507554142181929408269923071641692268980857682374096659129872639319695223183632044792468701198946530591218275807091820383370130783764112183734435944438298141196130310492329267664838284853795537196956304228035788849786519361037058474103139052671907606411603093271899524643119655146049998614300573073137800633712367280357000448548306765998009604751033993671095023914184442451158526571477988542844258084817606493583259269115014628435003817686683028284416374789277460974525471212920470802494492229313590336384660978969771901459716159072375298061099817037072051593418080554122641017970218771925604639486443772874098891233886729682335957631180220601356854552811664240378972708319570491729071287924786058788759818886554726100363824799007928961902473118336854202040308919960530468296021784112811835060672290703826716628285104753096011363291045192818374463839254081232603078288807710617748993004996513415712857065694161585720372420588135062090493371730398993364140504414978023597071239861808675499486406589357576736363785365217575638071021773290620318510519427702923363336834541437377893028740761419561732852131158114442226526426105402620905947595910901255161273055223404359038233583975290377781594682422190655983309343868164575259329363995215606172671469945054227801448418928585484868887466868661359346732943349096990241645085341571882612132794677328300542052203080315985787572329897593079746648316416033492406840887325340401246536401326772173193641688787014992629752048318479992902372678287193007193806113915795105489279883519895331516671164305308234285379948511246254589373618836932740292900360930717934255889995321182160849062340218971576157188846783310855843510875651721881935952274090471150980290648820334483206719251288934881388757169938449951947886568435547234432612736779321328886340475418627671414194256873470430804576455400748182492679826752473849621925454701934851590414891646290286306124862323578825885139564703916623321722025239214263553719016767095253212587004597976333536541289954764102615509080156479324435539943002388748749713945059502604592803858228348920553360271451775551620986816996195183497790974255448159692789389530846580941586455696586245803740534671582664939248722185632700727906858386074239530903491344417003686492807526137612511599568702868262753376286317781136853024006567361499307853163044993072816423369536877117715069572951115171540690316863963183254359376276090262140192832792423630080218107624511053335382673821383258503747812543318028346097931601496468792732577534610456983359842609209200527122653617080687287271840914839485554983912555035573586566605134044471012699466972011107989675573430604472669547878125992733302154126239954938227153290309295733293759516714428526237381329187594005751588569440150186318476745797702832373105584457065951535422837610276959789240849221948748093821180398423213876649593648984728062427266335105828911565398080074313668245883767181094801840192155693395935094821595645423430574439340776760807451095921481275520797190393587925062685379693451771117209087292861773241654212355437304307055645687293863597639864737386372349148203932707255085998485826353931563047722438543608300313399373900931986578212140473399833357751818696079456211927071576882312664876227483680619418682829611529939887162007671206604041356647136036622755424663702061899553074206271780071752961113821095373929625379169143558605827636539167633929564359727385277063410386237954898476318538369835176923505098925891774202451719880984597429123791773057232712716018816604383062727045705272447111575404756665340043908961687201739169533831109580930070592465198587222592695298420479431487259714700180036882915025622828727366038030903989009370340842233789744760114414857236039257023546119687469852452251256823076263917641770778924508703788892867594290445783488475730691190897393352976344006600325432667413801753413606240475464306579424932784592509967388462726076168080046425724851468088895696784395417515858533690563907892526497338464004905779247068761115286489599219273254773941302574515226567834311194567038769269139410662900527647511859752925875263889642210962049660838337528064274073968603816442805532629536514081537502168928122082583647782257608873634237614640636199694322074088145935898614526480227798032200008360632624091901304055894310447834547520383079248852561362393180700267579842779479957178849126514063316505756400844236057683813806964275856253205619184632029434113711493012376983704993469021633451340492724348856590014703139281942308607002881761876442663186554628325447356025391574195623921468562894336615439321325708803577974291687011434435583051917282453908018231041055024109461362772119009280564730953305559446563971788538772286353942214859838827732709776303456254976035773234011952851130550489925038344600780697283496926308211682149303281384459891125278994621391570147222450868536245176592734218788771963126830338679849276573370130992538397641356672109843770323334309520790776507766931460182989356423704841178397511062936871792683956973106960741011086954742631905594514848834536394009705710388342772653949375726698362979947218654528953215722556693281738970033089454960838297083082939250745665427962868428744915753287674974559363465104413908472892582150127891061340469843136397995411475647148716215565863883663555315261142177287009948809257905308818057760172546398255733057694429939532109907359510841186834918322192597519916613788723984673994078759185814778618316305080929521689082573596649205850702117703838614037695346857181205468588710304457632911824747280120683497501322610879472920287500498359575340141249653648986288609000318229727239414169890915269819298611403980493791550770931912492454506440572058961166413219143342275051186511722466094184699437319483626693434556786624182884160848863222900357511804687376484079782015606663435363577575295725073462410395007709896954624530671538127327713901372837535309563938366867849680894941183061120219113914144354578021846851697959454850933123122792591589615072738840600457986903302339931347434055056490995097578323286423504170720584604392824187214190450426614640116351299125949384669798730681549870432973568119876209248366641913942356655180755892867097093037030904121794591127498963395365196233174215338965310553848972107746661036074933500605982332552983548198786352712576226375624357348338137282551465906412746724907703666695212963528605921372660506637769284782944329476819896068426360735514678534500397185615419621159029705824196548702792517355123555283874509001331736553010834086714238216179907165941694200969293285132084009307257513016329715037523469042701015552771151349050839262090744682057672036245715100464991933441846849242736439923168763457767400512726707820381447201654322062417133629434718670901064368537769317135561894547404903052371150099015876277321822408009030549996779654195958172601008045865765824213787432913562908501315127718222358659484387654125464125702607461428407053159461440986242808039734127409437433578267796057677762362979119709759135991888784792932179657196823918649021879137826758017072087311735977079410046904012489191742178813050923311609648761000784475076560417093830888331402017263900154043933642191462963923549621460603973952007217387274194744218822980452825433928983201634617469030588438145744463430088819323565256832455277533709795970829537938114958510678310440334197976951420814226445851045188953193835848030662692121455010576165218968135252666842308554459537986339614893387960937586736452537315784624830240761497263474467322529825947002321502809122208884150246064828306308805663605191348499355886330735692705036248430946572150841059446305393597700708748534970244140113076826665610249112334068689151128042974486933258516462676219743855299518621132400606882329254518390246361991122923597154683710449246143962939995390434520459628465174565287216279029613021883029910461892756767540243770780528500281758260435299887134913128416096460988008456954794936052355396124428489071322596167089286104066883368803434139118665821530436347542517453055714978636764899971027097725044227311691286034367159040070873144401278259044075525816972918010554705264949842787962472958581262316519263980685339910174357392785073870078415013875466489149856582606726365214925832052131592940084467773966627285031163086012163462472192313673067302566477828934187844341025965959996534331599445215961811765238147419076801345607336543117083947637574450091351137287320453681975911915011987751247135492779366446372133470649084520620183439163119881053728223443674832203570487427074771589914076191572012607770663965433666845841238179832420265046995292151547071511551555812346153526742817439834089987839865631841771314842526992972729040160503794136552748135770165041482346701808156492705134744193752494496023828675895508793431244021914546985496765345530689487454791627999233502364386861733765403395008693199332368834159282703861835938793838329810305465510701903393762450763524307963368906531800577616222360357477042399315295944500572715384426010752305148663840687557655724072857753341216037331536891074887413781221146909942474762732013029523030624099640335081240373315445652646440069033847888324311843536637531310056004067556145590939705245347888919125633219576005763178628635168804191334263343665975841310409740822482463702311188909330797148362720602202048083156943212665126681264010357966924860510960376532702743582316104230084487681740646106185865545167227480379113422035775726895515741677881349301592794828282651601227542125125378695880156767572583690065868707707018411526640179946290455248702852002662198958073719311655967403238236456628522661433348957609408824544105047814572337462813313489798356081897413360101778851766209633654787267137414142864400910216180860613566245214991592920404048594144934562392426248486755344356857679162762813862885007512212511973002772808102917146789692661309263879712846309574013233278045682844119134617924898437583075736744210320669645024464037317795202780173558512905610560998932068451883032375260237162072408803994459462887397984189680314852013607226151295520952543083087858625942226574186632517503793305932373737094035952715500536575864974963767482789118925879838809109240377006172571855168296467957744696268275394125775150377113668703041767592231706122286160438037210203797446428977080648470341685627844943669867827317304719445322066258028507730248770289586435727034385505278845808819204917588623975270219422262571085467674592544934718420477448193065959204466388988053314056886240585938985671098832885716720428479377111946733269489832260336926286315382700835793738526260056753753234239195034853484326666939214748483845961696946267562344941952145138686061696012391725283776558305535234545222242391839486317654538115214247290169717663274572512665510144109129093657521566280856201136420845034138099533299039474322809045313044453979814491185421249848362786666030439722644079290008774869122503369843589921518123948693816618852582784767272952465111817481853512362900202420000321863039628552445145837158957592348844952195450798559580701876670591720395224072922940360358051095671226078692327512523564495087415974480235304223122564867788571925503994598254959799569235608731687936588180345673967398861583108006494395412626495207157126853501890049723317348732140071943728778396624636139281737704361737295480861510480826634329488700941846428791621087726211810557890776558276201783229045908058671158586045902437012138029242378743742519488585375603607156595957070688258247576407422810560488037140736988038773986905699305178794648637731810644398892165470185715719456558924494158593805731052053989874215888715965067226198022601776887772242950098913050428203177482844611242444507303615960935935159984142953207665527469624279632383635621834788092011622266078776423660406896979389499917893605293378571736907534758275945377565850751537536660091128154289608536629087036119939389038785375120088528667243593809413525370791362936691937169993754529299208185305860184131581190282763102769916881042259065763889831518514873352250887727618942917916789067574502926985512551763597331700526897077905088865544208092946195882894737523864578166625545274119138947486837940906413120579798665778174557934336001589909379479061277692302087285923776372689553446906209744859425003091527049317400858253998720435903749966916281945756494728547188757167149298294913608217923729680364951443658335736014576831143073412634312727193354933861535070042746527770738831174935760954956571579775418636804397203364264191800822641259567126867471978872455324967407184994862823492185284468340935168850565219024536143404682006745513525380105215421263309327624375529056782645932159914241247831463335988884116402472646036906808432323757353852425758955449875804484437364820800865518163645220071398872393080233403479341515290321520497682851782839863883547369031289381456573497468040870164495400083002664601813451184579711294579504288366819891064022842644889748323808803956168266779927285745402537123448251304950151636011667218841029403216873014024833546216944339943056396116609400979154406222357326255494263101157668143060354626611144850249250162718110963649784373131123708165957830722926613062875917302008808493873743022409051037615026488331778069376031270115374108685183671337971914077046752923482042664682893258868324298438334248302639748350362076418592291876467221142209281938926927879942604872702225342579366821808108356477745216295328427929262256412356404675335555190473817166970138988293759107805733943652592038011299674336590290739920709679969723247431808319797319656919096020555115830764797214746645511088492061106370588238373945771673676664768186151073437531977742236971818254271702306157494192222319292836347002198818778416222561347378016320512417619498764161767235472860794923769532212304387282209223582879287780407632749844583270320795364055068304620508528487003856558009601854359944826370220511477131510173107697702812945954669756010970101694940166658608539967381843533065466946962580086587315837470114262254911704803990935166069507131826366967684398937199468517021999669524043424014738359922143172523236839847351191359211836964145948269072653427235106651428853955541852390558247282794692720323846094079667697805625462533647137011924048105181010055023678057251686245355529259647352739163587844519884605913272704003450142592857331614555927066135299205419272388362561822649840241499670102913112306349999376606089049367184936789900372809121814837330208462896238971561967851929636576209379991388089976951709359196661140695663749135387353411201754313914750466400258339284265283513627331902296788307123864290808497928272761074319673589707066831048560407294064403606756273914711116723893583389434197958035612865160456727801570457214267103359209121131018511196955328753642339638888460031242189591093965939064490763859956458092219039720461196172732098245408174776897515962847216135063661426652336142068009751196343740806416310696061281986425961574878448275326861554015221784233942336655075563214997120269795046989365585800363620500347416916369447226954538668198387675194258129651483083299748303123655115325860148906771297287205650743616554769092512443847935019435664284375263560391553027162721057813483000928736952148186997614334563790860806344462003618166121406864243982095875782220510726568758097680425067465670394195965166006661831208591800144029498979222505004928223179277260392741695395764062647252111938597439298866899952774663452155322007684337957372471812131850898207423432714671760417217653792802296756071010492809645523623247895411522002640424758373607582748569563072945603958107633878933334508818618225240775334731020389953170039359822791002338091762667003498451510603242627498309406998284334094568001330355755818278571951653726055497183559801521121181750557098736766044012177243380835486996198252559798165566763890147217666841513455616258604380421640162806023648936752483067751745736936756941593964061237046130599813235803390270808786772689029690969576478167756327226068042699164559843464457643658723709637413360564983877486123496740761516586801632429825707096391393137416832801968124691826192078057376318412506658837935132535103110619210992326779893754669363035528076296675974558281934195071001955141975111130183634477815870969186527893386528895528098564846550141064569045885859577020910775364147533740595778240704700965225185007644810764783941406175044334702914254143923508021565545706529300917108835568242568086180555713371165170366388842072106452313046527857546827697132573917052304515847008304195958597611602284592410231775485434381556747981118051961961890362386354482471530099513216196307735678812787046973082905111936493838216539698480788300841208513802459606472623020787117388474046449886601649444097959169786370174216839087439391190766469173696485391932119716827367382189970504702717604414289428792706737996707156271215764445347205154632822968161781520944719784275325967370257897069021088829668578917070216937213410646694839059312265285556609110172283555254066473611427181690686853639468166029296110807210575467938470497559608934415662482328702434804550894337260420413980170598242764381320022194167063778605402928669985257735371896473097003241125744270797667188688137032933950860215355234805427707553466365460098352871991202106551529610972164139265549106995353947097037486587834189248047834985973977127389440698448096207146396684267644777335191391344591780201988908149418809472999333924926409103583202156740849779146270892924928360252198884498814415293263209961850019321291993759322329332225826186064000687264634512122512016249473865109080138769121136905086266233788319170390529780929347346441354589391497018832879901713848961518732420493129393840227209100783645014054795028712244374456801777773131966195548836763437800649115473020082569553200359106295853328399521411143323614392964202584142810456078956868347997922722243773711952500412858326677199050437084509267418715654321961177150792801638654901175772973004904272317150464371807533510790740368778314922737901397619822908412931751911836910435801264719803297313838230266560339879272037826245618231162444522278526448125454616120001234560516220409857645888012504181674178116707275176442498653273113368738825111854389550750473110699603849297852599733127163802498318752915732116601621049463373200103135900036834993379400266186829031705295519810493152704815967719540619006170333361525135279245588982678712167028710687193710294829662722966251952718504490085997237028035144754539073698247770531623538623379647699668118701742244273357149124295083294419637003860937357619618985723823610406765209654914672356896611556990753711533528606808725229408691404335801806440904653266878960294624878142237247490562321331020690389433084840120494971413624876552989814528087271887056630729683749648829092863916258946226359795258055632435765703295059581768564323078113395410893763853559897949288144559962449872375464122429160075576049279020263418842801454044050479344596126460037568490944478225365044521928783614557621407011590777475433809514529492175518760373321818969637971029210838891737069273825704553042921602710332486494154042615753076413914811327825144691564511208436351078644527336436895453276663478406332213878618720829984507366383353086495970820089683812529580401690196488091698596569635540696965796146370976394923197644970759088127924287131531883798426643710628342400410005983900790030048289832058983978651760035588298152177954557044864720623344349211594388704209701137319417343769967411032397217611881262609053293198760124357074632413006469336654356875898303538813168418913668772783162916125890722455250362741575267702140586149230246666415298404746215379602713086692348809379707194744448970141432458901457494560253781022144829170961300562842803527590175505394176040411074760006215556511536858009923364726168750522181047552897204927406800509234273312313329473608856378265863653256839505813016373178314295882810414643316220795518710128045781767012254491435154300881990627040823568761434225000442598073234896293667644290204622889456575936909976209845953967622717744013475549236436977541764884364104565739137477624278615242355241125010848575456572211240631985399755719849065932784213598970494042211924176737004233791250972638170180815061435212748253186777513089413506709368213714144830015476341316441233756628697932369943696571442565958462222015928843429710779528146913666890875755397343843432783423649543613887315847361541565692555027273493477907116813601507539323337323258051563202173662255256666794675180036538820636142939684805398736335401268422677415991134574292953597694848342151286372909859885606938196736816094347546622066506197081420924614002114669154611641788988318995066426368495371228365960598179195635117566872319876340281844112444103304084149813607059355242540153617081328342454711418713572458278159825496728924297649592729849322339046765498134672268835502188653957885529327368009339410441578839326869334107865249907530739550131126286435496970468725591593613551181580772164570353053617161382128244559966150270187368385805547375762915290795370915983068328145891538862975224048655807146104835392317251087695252272153834705089240722956938492572590318228258469414377907744704830102420119025864368649053305218222895706433443725239309844158706481786026412975071225057890418096343754109604379649862975675120512110968919960419270335276429223473975321635713007591234822129171984013429143779059836832367541903829720569875948583302869293560671287393665499236610173250997446950549928478463520864608653622004933477199541092600967266587498085542452732353135453520885411993847846699172459576869043185102636569388826697183302437451920390511340518604727900188639126173387024830598294427785377594532711548164456851435435780933440627998446001585227024147796708257885035185059271093181007238339382317177126164572830040690487461160192923832166457702764961363422623360608999953104521991878796261436929976423707728713715585218087207176745002365242411050305129025497283386935623139561877672133836832203974032290779239375246026907950384601039151702052702245993433452670306690107931671468285329921406132647102629127241628226440194431095254100708920356002261747694036897309275940614459986136455875863258763072743972104846734333087592026098290792687056371656592595730526965573926832099327849316744810922775785001504312303668097991780871039087605865221898167441584675067408668108678785843465711780249579616547511462361891541960318707939054819255181021312474527231435298189245018924768690815529508135765696116513103802608748445198395388459763124189152689479736497351080171672898700264063685802804680262366988152925513562767138007621209254190914380921168003655435008120673506125935431611971642414460102530411688745607678682872835081063874186633806554910636308757819599946068366769981031919657154180630600299507386156394283505734948826736574047332234053269605445684494719122783776913478830318702072580127762393917416005531645799295484525094450096878960663750075112920981223330209514379348833758226012671245695911558836424877562437371389702127442145248418469654581848384040506352521029152146176399813676212228762175256886302413947443730967502635983337336640258167876503307080517398873572506604852223153677194560068913408743751809148075260998037293295114500748625886586736407527005424269725271314838903042129610035092912508273429530318198676891390311417051732168665708114128734969217351551746669117795544571515356555183756843826810403936073874499388572126143012597716712987092259912511326480289323652623283969916013172470302968406302714700723139469911279321248522757384453996828644242490543869770824446555018709632411703773981149054288694690000686570873141247168684281622427919447789806846221664370609691211101424739343888277232959191567536520824668573221287556873869188623900819196930842090877016508532770629173346180169492744392221496767802424812850156925863127632632590914432719808514491887794641021658278948753511200645774367201776153843918874375328829764709435332543333393204581698246685910411591159476506573387575800796777915197931121824076128556171392267883841680863941401246395420552102843047076582832220130944879453805895371727759199222118344105602934346322693359993539657139633027780540050658303279303404990234108341945138933799003567730373391860129304223841187846591034986319143388596842899972955246657435763360902588980979294864078476852438362298663822293888281866619836104099062870218031955956543558290895202746014194392603121817804813600463583920366605165129290129822762250750588304903397597452026694291966301176732582664861441489036149163426868880706604830221222761730506061789142401468314843568896738938377501357268348258230864623471262738692845125059732997717859005213733444302053589769317001946902279775770937423228348280254818562246865575504520107326647517131811243119632420499961475478317746747145758918690434805836195480291596793813856656286984111861842734172698045319833597352500837265340384577277495356215933154586008253515014655832939536934635158524972828691519379972001348221045941801976313258724678066392073182775177777458064278728134677454621009426981143440507969324891664410500728944096820807787877212447263597553540715659450388869052299019415773977434404847266366374298251137536939895433493414488544687651528168360237181796267464509470684384559114831046690779500486948142527594774455249434309619698315517613491703758073684694248095596154975133576945877127749013746063612871778683752751159632526123646213202006854312184522582268445010069627956534583762410375565754601079423462839135460178405947831270048958469348679496785009963702799960628548126945306131438052108091550722914308794302168275335216929994056077051581968563420517462084632330420028212520494717113228745053705067209187839380156854828657168758282225212383189093123513752218111333255441740713052952482241713840803916244489033834870292508865100247947364771575399814751873004001866014616257061263981514212474017320395730895971371469373291158541426574325618368595355304626475356063069515818812949978470844589875811466818354706860527587298744793888492713799466145802731301276724868983555177384351551820569056019327854479109581888881024548637916891109432462808906631359943217120647893603615405391418791026315004125151450122459020811017488415418603330778350840253017630070580871480247312346459304164168015226682123902833790755413324555220999719625938345721903797988327909421422808719781998950673790860541335729177385176659324736893028555189001558150959627949227686530081964956000041510627404254113315224778364594250126858050999126899591368790021129884900464881223306240313207519238131944577266836534760298709953621873529724095402290229623568938992614801484515633998935981626675290821220171228556549599087136615200976197408743905027402920352082719100117665798698440891350488160345000115770764384287403023216990961759835295627393516977906725015943064195935336732078471612660826329758135529635526830677916745335266540320888422648368858481632441278826627846069163303934051600583985460950176699921166945888623743612349868724547439316648207494449354894564855567966063185794047309418462596525920523065862737048009995890406773075201248893063040767616840024800065054623666100271805236210846752146939225594692077565251963550597150820324235307831904438142531009962857473579630923187756610364706074340319319721507573619305641888669581561034139404386573665050561228286325309706531416376398959407751489131761306261470961291689976565630362381844584036091243785607494468249882044692177658458970277529035073773558430507404896339121360057743974982787536121984376453209654495628157643056282559874785182256123515725244534585429348619528768565758367350770759191314926006680427763791418677209481793155037674492815266529220597881053679575756165026707025573891411829486624873818878582316274390875885295823047848660772405460326868723216555360466094967161613132884318143684593965365119504824165492171739201072059840022508161348459573600196920271088374899065516209755862767344659400030835849723319894640688882363504114677461889259323935511927397757562494137625816601280326785367163886264369597393684840931714745146451929194935052573346182842028308591682557372089356492527936539837234809547572884970304135441470371716835151317596907119605804026083554246500841115726752436379058663928659733755023796501725133124288436454037082721196903979155348229189349349870653658914220027566297687148136848014205398105975012446045770067915464508277229369250054899597525901158351164262337919410860831403182839802800441238654340547353767450619535848722243139630908015516575524994089268371121753658395093094248295718661235160393000197627449374870238206766036391770310884690424015634519927656925292106222652863907306294885306497246926044053075961273004045858155427441051226970091821345383283005020039381418548983227224583014714956064056143871071478129941099119021101011393334253480986484525744759652857221417779254754716258429894376856829068213381653266634858678309750271119511192176803567788548359696176450186712054983997696263245526078400871107186630720325694208075057056410788507214150987895237082531498257306343696241009347761159034368344730901042351869597200038101968293471707545517694215008703156411542085647277539520770206691381607061741553479282684437903202260567141313080625187954364258903716046869099449740971299749728741226885724594688025896757777830631745315353569831037410545272144158529868426984082288060355822960117957301278564023955004909212506623585982401852647391833616809272590976895795121615588929296393022258621305736632875977391639999271869013391341014091663476494421153196349016157299452513143782403141362462205473327379630429367840913602895215610273746370240526549722144671469517507444970262972484362630831610752742617153707755798081410674582664724743587759670622001416438733695284925948498821177513667279342429169183926897975427484706600805195777052064938921738481342555356023694020286972738448254468793584806046492029978797747131663296290286815602097648755713040151658564821336442682223227481586757582793120168133374346921093562505406187282238846043318843453018008583351377733621931173853085903840279487361520536265188994343393784705312204858670893671934478450355357301353387294351224866413831988847119908861397429348896887075066438808327901860042999837944397411676292540663027874066955924492898588454788669627957968656134313141460019611453550802167466935938372842052482376185654642598137779136467507562219494464200607367274216769234776844606692215224046920331452049146025287028044144489178485544161191633890421113239903324491344137507614911514215446762972475269584998682133698978703731357810729880820163371292684424922663421668552983047301200748831735123258663248840551667309021778392359929422101328985788255490223459915751331065980001455597391104769934981849359237769319989147731568877265641771688774698366312946787868698368982091187842227423454559372023657724912105232212503064766901876507536497172241344513697524434452936039695195229619399382226308924655428508872126613882274291359287717671775193087489647799888506233655660145574708388319696237725736010268001058977546211523470272580650430701292065729937261668958641620521429052762981450146036748457946961809409611047595492900042447651794971915602797411518913100966647681589248705709870793452248998917342997256591338391462382978994955079369460150352624924863156819270485766636105683503411558061304170806749542546984801174677780389456014709097888958966466231022194145854602407791869767722771558592085214387056385606578622324589441354258585671398455124817641706896523377673006238011948427462335352618402952676870498824195917712698012391701583902282892036634271422753176212141529263733930784436990929090641600959963072575262556608140244127481896773904353413898938347605421592905446924633766318247853796466576698609165081155934412536403350746819017177261633685613290363107814107340460255388530899537607019102947510524555207088042136490256662190198201743657137185522715659951044624079746347656108437656174544815935062093911243617618352983912814684999604316608126488625356444853437832482547657455049683328189516864982349405847883218371245180864591156423003642260978965827980807128738422029067469462837447916856999696524184149539274658069396903589785036841657065967425137281491385395793273077681499394819438704586518724974358445524926437550356872886130676329507218744615763890502881252793576075344852277777376156241879091547170157883647568115811072276706092343586004479572190773613575259479729102610658578243572686241070815901464662184441644469236601290957553432036774103067642893184521422827220274546936740889459323020776827597986317469544773116303670112091425196321294596029145533303016700050196972271939879927764995016574197208815305309341172141624758404319085065431441908003781958286106963539045004772381407082679360910721570341366797989966018174605207293364564263701750636301349360512522073582200474053082520422177207269775225158753343154290767723449540162386745412490846887865707761525807964342254944983876053252426614221011369880146446937257592588169505957775492503150381370070506444944171287487976426159571551369824069769429005684286760875172280659482562850065572265976385390799598869258723432739013477771740581417066610721585524864000787415958269391273972746225560076489212392363969437482428578326242839382469653874443419372010600574796841262037501370884335972442291144693159940717781260447018990206086141377894739470727275305249658558482869865120613688579432814596448456597802355093565921782812349848922958081261600271889423308396668572379908410136321152298221950816079497246527665399375464211487315208794822220247288670239742258671405677719280425320899092399488076547085700601057166584548924085719918671301514847139493680130057133067323672306031508666737648928167760159790586919773996387366804663224075750961365351126143061039206706274696456325272506694194795544901373138862202724962408826038091963469615053536404792850393749048489919136659895411337328946025125790790675669147998010246500249354142800649608077038396483249626519591416191536462790899002108309934050305959575973854124371583355707901241129563422623999689060588240778831640315412887251402878571387982267273993240894648971777441798225115620078407403563207785778535423065019923951690955122832641061309565722494945180132119170867146997052854782928722147590755831196475337896307603002158306554825615776960063335364746958985954055972713701597559041393356019140130122479521863979788376717349287717120966007352955671148158173474036107937788777227089034044820457698159796748463547569505466789843271066221100587832724514248659351142312007451083267656304547774370386442997513874609459255830299719051620435304934302624448554952891211733784662458108242805208229404927250786512121772637758200691596263461211341861277817802402346201469279478621107323046389157501472246442039115177756162284730393718542409981001748657719268283144461587696059510196105537280461111866682618276979171564845900531109136006060013107178443072901905654351996295605113821245635896723887230166025239574092187355192621023775012480278169696564095987780926201658847490446403826159700050790580117183474030994688741638782588732636597262490444965834148734972144482955436645371271690556432498624632997727793747769908049740871687796697561946205178636923443182359022068040468300511068836317526032653421291558697214978791506310613365511811749715757429290610570067225052377543208982969363625021285582290181679072692018448778204076955184955656474859488829969050995565859388042769810105565620186176852263993221482342474365433791075799414833064870956656447556693162592081507577469471166268694891108286746415985877824290196888825464357823517028205388457793188707916599837213197166347239575689142960966634435198536029605361923325375340350775132062317679316842725893894149005746088230942952005621942543677836030670685738870813043640952003619126652740131242795856263643919583411531648787310393723529297039031599188476490618028472529246321088991687422490077644428693285290057811303444478813441850717292699436517105308540076991965281416953884058592972356655099544189586533067566303246068655250806811448648326570943559137948520022500242275675031845312556849604826895145546437704913450447646506048870328656561474904218948114915860665587501371923360625576253535311116992016460048400843002638354008422647622818420573315773745677056807448903488258983459132894296906194148832948342354196582510519610106503495805538879350428381510211524558564620039389423986631115852627229728119963730173506699344497892158207390680820010685863166356260703346031622657134852622039058366925251624716620706195355277782653068509779899611224844709801378013474159015979244953066809209707506901235889303579621047480077460341560379413765550090818881354469749488859140360429473193690607493740009224476899039239102400863905537368544631168710464132923125100916846771472207732946137563352243721309618515047604615003445913353523304910021409776238980485287047015613525049985106010482574518850763421797425722877252614527064189760417821446361919598345958806088664103260434081661916437144799240132032815635711348970984591400807833973633227829287731135133289459553521779007376142600606151190454096329934053682013296356380481733504259851844574680524753804704085056635611233656330247406928649319148451905391337487921772079504780593472863712812043075900992298429591815375636728178903553183928516743836602991543036566888957291125168700001316730412690690042237219477173757229867682417460949876817397586506781717180271269717001773307620587251117167863580342267098713387548929914584259304191469092206035575126361815208774327849641328592941761237168786893307623898479815663699900741164924470101988526937312770426895426020736791072234559750795631902203660817817569978634261421467450157490447204348951990905263313608463163488190641491529113686874663611293484066536792077944447244706416577632955421019180652546522778177042330937203756869616020114728291220661422702080200731164897467804744787999589583294061454005849239093889222502255545858596220216513064425318588448647392387529491850853326966828112844079328062072529215308850734159446289979902115756242260303220787070574460887366227918841877473613346093877008258051038352941478603043325225890162125445641257226055355845945269729804413495298213452967508422156401499833598237249535205523150086720228799557215698905061963198408707125257768889344939427616114480880468093808910533414911672261057302151245303100115949059912877446957106002104107631429283375422795368434445222969155448615203415930246815999140253555391017029333978645009645521226625138405008013107287051483719115696802706538605340002605207776796589383049285091670213887582784250179277016274254284471736497075490656498669980868393499446271397437078872655082283420750357286716567365329119184332091756618300126350898717213132799442731018245493035051805115810424128894249380115270314328810184482690761752471838153536142057812202326294639292684747612736721762201799609301815885626915434506826145050449872929271096375905486350187106089788006065064058934002597953096855701354906993051316206734250806232717274564306234087194142475900358396964984161031433513703740229026097093879417109367125262269401481204100210669664492020810828817754899435573857868625014250891032356339930858855762906865332844747156774869754717511616283975690191627197761975649599893601525162371362143086887627842063217112857409654099627541105203158179058819789272511065274295898696240460398769595226655591377771389364729843636674701744694379071175584874049516623780975380674943523279176837135241304525318230071381979237485966184941814608645215908485320310261927259250295697565292095911534112297473860702948415095842542859187753403873953707280023595563461048323557017669466241110493342409156526331833278856090197115201959028717135246385447082451088761389300820333075958091990155828748566834586843882483638834588638188420203984501375338526538889642576863287466914143565179388835501116322381693592965511542627065471736129624086759534860999700983508012536378050613299672115754959631723572233456086362341917023449814234484477761818189949876968042401924571717404035402315500983223053563507551613705339450044533761292584250386901498227423347466090704333298884564467423551792061246095682554228998051417706491477771766479385711357711373315336016203619181174709445571677587034169755643707472062830458301937617112515814133857098651862443243361632808843651963667147339484554113721024945931234531193754818351572549709363936582337795864552139520274852158558633212748846058194482141728934702555293345584081735928674632298336377669171357420168935703373785740862905837903320914497222071814999891430126721829994019258594980089053340130415358891132263359454487613511811599328813512720597466121118490065238185269022974137108176142476919234261951954712840774052347571471152900377112524948690906956315018416120998083952130496220119318318264986167178743919986893987907125103722837163045681869552039746583154116907526960504171143348284342775872965577615073563569968628981019303351503413488818968997292656657305481472017646586655803143760649361087803493770909735246809806873002663472304108163976191672497406406490207192377812381487421234542130418743063036959355827975637818387047160592219125798191983455029357715856694522574144148148415121839065972416988087453079305421876549753257316274391007190624362187944425825323514111482921411625213132132628718699367795162252638943208310833174169397071294855141980479311355838999729367709693791440095377532385412428308721190160921816912927816835200650969380566412072312853179180978129915759089215199336963686907548015989593774794848988103236764244712337821042481504153941195002395781753603742653123988413878175309797353147416585624971281498944914056520281168577928331771109431266366549751802112643657182154056446450618871449498503522762733816632841483700157930421416304444532957374883873836615195076970319933506606639414029836442129899072584944454589163803330418292024591979520202322645808787631449952131630793357460362078386262334860145521214449124135437196850797422269404704195490528550979672625378100008695393476928520198775079048901972781478890018381298071822406896025434002773704335330559228789754868800242671168322873135432896346342134304619022013074345948843309660968388725242739557813526811442988421647889552081548637328700746509649414071490198684411758754772438952105689481727210748564973310198472615206337539994810967653227122434760644778944948003300192939927662909868806309600891230811920466466481393605991122108189976110861484969429903220369782336530298469746770814114792824170820637852588623695942432532468229649584313581354941754116293703734649857995834850919434953892208476304068919256131326750970378332342482381530482948188743780901216229691178383436905953107643509995576706797637897126586626277303681140636208582858832003535068250430560355647246892133626797583974952458661018885428351382456818694146311033861992701739766146796174841187647859266186319766611109645042648070315146062536749859693045800992386805570070823598215748014313138305632147653386529280789897611749530323123673035711393053010206873735664958807124874122982283943050498788156257834122651483661832714318322750674690661691463657518433676851303587949989174979553898051443375676160867656341665006031675678466536369038009635348353072556763258814685387087201665608290983401197403600323803355854670432600144544094951500744045902570892524032073815381348739960228395630719167551883907831310049416519139568270679446967390370265780842896162357608692102854446358573375035267784318557362751079267183657745878500865736923833482504059522713836044213079158011675028872097652037123727277048167696518790081463158552071178109255331978483153416951335777642347534738616209165197567977939887488392103531755798767411582981278431642735062331564125484800484767077987976082342154544101231525849950828706203598897902933579125896834202661144462679995684835714949619141189926929450605929928811503853458840200204470201517168738220761909424837261739133508545381649581110339135313965376322253913843084866700555764878840809697368381087750234828315078206787254716793274846106135069295712227811012217333602292458467744480503422834800548993060589521336526014189137018561106788046924148092986657649706746922454996341159442630457848082865853377842996365151698905011442552567839788057813262503432038668463918428937075317155976741315610348912645671702772143430402464292239281773379223091454315500268795032802220558860280845907863410455961844451332409020005750228523561897376249743537174771481874850207310423794355928190598945814017074998515581288367279487773910439112857983110780286718420011543987189409240626208611141304587652496738333706155221646262208660774803022605150083567367756391977060537902870129005050013510151517450985534344795455992465827754873570605966419689654472557047185636013367307898840411553857876776333989766157956709380345788115923134026720555047034113425854130419881332405056240692195039551715973252342253954378384608709922527692839951567136111739244621337256091327835191970734844353173220081304875348137819166136493674214616572344497687101082844810397746803260023878933986759827856453781944509387000203577071444279898424267671233739618339259803065438468230019535707414984016118083090901591045381417733249007940997220679346146132968476910450405832446818498759302776307749396633777587540301046203826946177838650064657129554983485771709356539906973446180418830425125687276391687810963148001582181075334170362358323672505669844055039184090793897956746234424550818156480297691839461200610381501582536687332545442159009696751612432934746156599212157887918653495857202501921693575888884066660782407384667430984688361591644501206929099008232511036531240067844983874995438541106588270074464818223212789274474727023345052689514175008959267521396545477678594111597747893037928003568890237154466336005134100544520903001332455880292119713767027313895420725700174021956884195076056288906635516460025125182579630737080902529549296597927627695865895906910943255681182362723047595510062279015939240980925666633301220349998926558592401995364261327453080519397571103664129164296034582966527679021618539602412220531131512440848120444762373253012090945827410481852036245147720580576297000684742606711361410392927167862092569842914564651194609203265280400429497071915378353076467391102710347984606476515610199288077957140013491776954678376350600237426009185973210418893337416759354212943774200488542296821119161839032035760876020563764544271126484425287697464272694289257416723265864902132173266931604233611451732165649473347971648307173171749419570763589707761971958926055670304561002284396274910430648696457306811127986238181282866224142419821337034754680133349096507698268641097483883743655800624590133919065478522771921131214025293962183490187491784628072487541418777911754033143785943371224154222793724449906740418273971880013380134339720314454883479708899305580478570416662338797147502252996440873678414303011686844333040560914138104252847017701447013105599930276684839386750236404970415048268632189599701203387946272020078425416094064178279191338096794056994129143547729567734363410481724610911863275923113729126217906288011964926352870471230614842420484888583135015927995603297293564088188826617860319641834381857391408554784102871624416502429396155228888061891372271374558715045531741509750778570841503348078125202691515634978076488753083912447546528048836168616383333383566208791094174293783293720811807412750358161788237958689339625827295522600324096670655319257622264895889215939320259650307648730456775844352523330083941598014842120950656268756952403113568352035337023745076016919801577705306080087176308610650214410666871273430717041619035544236330426394843215750600284855790773009878068277388952333285881824252899194420074666630788758663675463104897159458067840162952681810217246078685118855585055824233245136812273250270464488121553929717567785124187088690934475911184849726827056122053213983783238683394351496628974387094161997721739876418105027588241553980501071845560279678879622405962529820904061532497832308315045710098308715379947081422454354609456264796789383805233880048100828424649392748630469988260829211018775941079464614800401572830581417828521352022646509329374546013625975295320691312152025234514890342880970479133544990256912463057092361881825801650391330248679801717977783079007318788342201511017135660503221898860301061294552586674127970412891579129352053079226373687130903868572183005523307531854436057894440468792801282517985436986666220450118462072351177121762634165291771191911489096059831046618665551882113709574859611700854285223022762958139901452224947017830823588090926791883670173694087712080208857051801124036587985093479848153583658417608475819610209023172405638274842032715427956282360752385387072388417879933141196668613199553545483484107742063256365943642035231438587185230916148743189563910299417638748406093780767846716932840620313827231936241211281098895676402838459646794023470349498913040028933854440096659479694129416337996408239351321172748852843503173533028776381696935293171102445617317916447040830901373785957850243157174863557850829952725364523599620474172206987428192623401307089991532341614198730630788892282856218069640608818151147618678955208529104672201178588874575683589952633614474208066998412127956280215216947089239157274492721968166246015084701018919348641548035802975303645460279179503971184340329801017458572715457221313211180546356000602628590235235576363901564630749468825981805918510647294963970708830461753991066214266785788804363766692458204637375434515605236039499347054233108122950532867706519284641552346399016649843459040279068791287576907926313949921299262099356358295513429983972708781650181565065329262925820181335544014240719350158475885427567659607182589822922709190711836266435582613447649175873836367673928921999854001430016164775355744407422222078761743958415159311527414295881720828830707534913995626745885930602899856021778608185402786770228479958275838996151803059963137218923514999194374438160764634709413755594368501893773436863573782189705495242016108889830117400905273812923584696085912636781744234560127740964100222703424313816214344449028560599843494224120287064557583745198707944113551724430369671214273213161219760782539160393859057610356551427112284701982959616779506307322297048319283284927866736254953256847724627600982969459229460806076207817647748454540550920083415323807933065504658656978449367636528271154021414272200907914277286081901253831365864471319674222925454278626145835347577094416422122528148772061769278679874036859725980714854570460846440562365063113841136779499542799347328452995200030750946290758022383454028259718510507018706696373701697518566781176816717904402165775512056654020319981893193044361107731291289637525160942606003015396104908566924817762087182339145309130360581019031637254523191120770339058924358269777456317603522958473108636064363511877402226800461400603880954642658265901265279074370529587517961185966621754047159329136305906973141228865857689784203903116920568143083191569098822076652294218161013390106907058559694606462591161824810082552084969829361203980997030973800278740691231930269666186594657850850346153174179538550613002307214137734963517783185789729566865954590956857805848992579966571191434021780307158902971262339376012608851023154253577621267376302717846895461249706456618547510528607767352623262730385549482811966746928932867927007562434718495116785982649111159624292232194355708564853500237667371195251188421380593371245571592166059479740932507692744142813670699191243631721789076794754634570780191979275891398881062253934669417856934989277709609337026182751609058374870672914927606006050894034372830511411275703980251194404693633446052412639057602828722159533672381555243405313452790003859344463252660329709166228823374249678699998139304171274260751094835967825195168739369098257702956311254586031697982183025081643389534150718293951521935804508426887691175506246862472212917830079588290128327671840262580177470712893286657709461369314511746930769287338707922346837050010175778724849351047198149460650909899414771723825270567919982713641049566532318576588061009046701019461776491457630671311614995807024942526343154942867246499393490054062162819602205911693940428318887115248927682143848784460392663187935486174332756051972174585889103345955954771616855553259537071466197371222880813176278128898400700445299371485804574003555483340520157003640320257057325504934796671841763706720116209875874472679963075543132517738125954810578660010048739397924166661799621134492561966689184992461218173702520252877072376887914364413726064385460251495213867654969060408528499729199841037472131045287474209762154232805025310979046768972860024676620991659272067361762773525853456012589510586387381099391360238451450334953355550780900840779584851720368079561315586653306763560014399184106050964686982842394776625665198822261630613625679151615098826659416477674422111052787791072514322500513210067093839137646609111826340096349875351253195722435958495766430105365206051039304715974800722108490624101981222605518187354289532572894948501454327684689269313391191159683570767272998208943791711762323698801823549048380529079378929732724074086736970428801589233824034244867605803439863217035060106856780244384173217158986384653468936550329798206187337453167189916970410135937809713940717141353169105037154031714384522487560964803866160839684177417877273868493569448641810194889220499103745060871255990126299738379902188397674120160851455895389207778988761741848250494420628463340826223512178490995648863138173382734688916314559767006432658128009752380835033648462617606003752330980853388105372656635177047556655236633031322984441665097361043370177424144120958448205344170464721823013351493137787109086352986913311536493181034301851420769539068273460471657424078060735163593113941093050253429883183646192695076558748285772953844006501326090803156022531162776918556317189064336154363033860470963892577247846160553418934303355495584434274557560150560607417697336621051898404183473208469461379387891454385171405810788911811452520240578532693343648454533573899274062238268760595700449150590106366735081851859465440163094812693630150106054359143068124836837409331075937444251535407419051977502114699654107131745179788936550935222859831868264578323001939715772078280282951173421990178275535320374798224528364865975394044556959481761413477726751160677880153273966162395738240407524860203736740697770386106267917799763653954387371333366543475413875432752570442151368915104126916435881785971235548889418172029555944668566849200304624909883875815670739486844766754789125378518457706565776362211883782454069082883237313436859498126809687785642330977890556839652660951895359712638241972159806598688459045619915683721688452868588481797019066676209220330254169963003040815912057551255781123670244774439651913846801855249265366500727219245467159843197542265172447238636365000734111383556298308750545313884593331141110190280442363279169486494197944114524634013104007981655724914659272963711489032753608499263868524523759953107839350109830929369607525413957277990693004612156429426719262817324377199719871312757577578816303724166662752317466534075831649000395690170586452996247467547848556963849800223434861893062214022972796064356660622955653108852420309813780851997359926277792078540079719931904574270849922721481159723950258994313804520795285515082113450511909813936773804900437249941067053190082689519517552025278482071594600299797731630968149367355277075419167793481563902929141084976890440987587195733860259144434388145123848936660182285228681661580031102515585884174511909457957800377009338104391735642121155929846449473965952976924633144086705892970988482209732874244876006303090241437108740649205581753901608813528404719878695500345262376234429727014325180990849905788530424119744929581803922080945064571849257366886696018263206818492182457806886178299006759813742636855669186462462356745905529083759163315532223511118759087286746209764159905851303341691802149783247179365728305312272111889393399004544231544203314317434778328144525441853307279804582781197665541658223075555832741969729537187435913238320469683447976398500228068355566970923431036434091663788069751880120491487756418120692799302529306547290351077267283455117854643298337204833402852241436066090915442727096779022163729267561875028913192916985965222142968911052525529479979464567493016478952264207021189813853474615662001721202982652230630934605938022715714821302953186411014766054061472198671982619600886222737228186685934294346894031364186735081342519061460425002934982905022678848254217722001957314819014327661975281344389676983216722195781156050337702047677693501331034947414501148790303122194668451902742038710535881332168057719285492073693647215512546174245334597529234928594798321656949598234600851395615203833588024349483502184271157118722030603046083414790452362354551454042349140952614338637669592611435735489712470914136174968332804003416518886623421249744018312847905650275742251961698502917339508754897480945541358290925243548028831557260953223403263092114399748895790790273695927732950960602487447851206635278267584909442438584940273437548132183022261039266983763583235036533477637595123708610566877533507693255894295823467096714496941303843949691319344137175513102797876827584960864562624708520005142073071203567158821090638474755905673881505719662434130603248781073721146742170667459490661238608408974977401258670203121056697805579902470251778935797200102324222302699289671652543799918356842827321395947065575725950562982255891515580238323450462199199104900137902323864736158489999092883034444619128153079801233397881800680043834308593961658587998253421269098375813464719189318129947103657838502298269391606337719799490724999843807622804648802018126847440724058316437752233183425724884648468755126226945294129314733137286120355434343979704817092768501499239554624057651991167366354801876388446884556298507698380742144348948226546375049987977008924246290417909674979613709011009941577674684574474026351372446859096902597733961647505133043582318998412299531427834532125375903735637267171104082295540026046641714264636587232013320883990013573882361183492629826694644622624733498683005402427070920352191035364625877219792183395997145473134365774860471968637243133268724201735327568258246770380229674258724105100572584103433112451468198767715523492418566870520950309625304463032208303804840348080717421798543616716363559397448318839711780747182192729460056093004764747662612533044671085969823470294042932284907924006766745881783948564389898604492490456120357972592239647401224093586402173166109350427594768721041033256791727062882928710339788132488132274960369934413209308653536720255335931225650014475814069711241614912773110012023571523659286633849981217068410261789195936339306259797393604076882574698730549732678843822217031223508025680821875039995087658342231159812332639553220996578471207512376469188290022218777772597153807592337588300011280596276695477559107696583443507636162685460399348482166823080888775981068080190193315295275415622675372319210018626962604818834347555560775428037866374993553086511527415681440018848505529131442643266610947454504428920120101790527912544574784017668419233221510426670662166897218356025399617218906394790787252102512734776985578036382733932251339143907912329796586340014352951133776471609121510306314904572373149212159835087855859148814596836343694433856993161513704046203482432213048442620122904812882501464949147880963852047221897819051481383055060466308383744034482307600086344302241036991210663799450593155480864449660797661659565748512100806916562864328775554329483745871941295025879889421363806849567942685400287409265260635358036801440138275996666107207587563053012572098882133506149366360890809288307943125786824237737718547305371786065816016351585402106808920180566062653083364138322423711213105734005730708906831204745283351998710202995515098890350782642797544440189047027783067348639807255562421786828103089815222499990974991860375096695686965035401494782992606810545815558398707658914317052558929087153278576424522822598258390250420289330324713534578517315113828669992525732691836101572735459835275324665568593556628878775072980216289197654382558036437715054532541202548745619381082885794296867292227573633286763020532678083720827666765773147932164284320287160661140513344616216439685072071567987855562076471221136801313550873477514364779392805675133744430744094480834961329665144426385130236252392213520833982215995218967619198745694376869830484380355023208898300059387681291487867507242393027070172734205426067609964434670818237692160621807362069533840156873297746482675157415355234084395012588897835806140851183626889273340350791941967834078765321745271141291431090031572775869981741697577190208637686046328117647662768414614974030159369607481556499601250055604259491166508564695540645134328500023339577434346373379708560153642535713455562455177998403472248382083754377566400326174885116383070570927562102306359450218393481086603837467874854178536940271037122242171575406721379832515420500301489050939765329142328564889706056499804667677600671143875450852920475861993514546951037726832375221468718567595570464861900337216761870243599275378767374160046377893139908511953434394350457655644393201720343776040672514952046982205705220526197429247210001689174730686704445602660651973795307770516894764977372511407538996200402712673853166994626152944435002691907674563541342410739545226267684182206224990223271384566725974287929317908243261358341940845741511598975662583527915880054184113048699266929430161302358561168503809780672049485854809909141191400641377677575099966022166633816038226898704715031579470552385979963471576269458331554199178659728425615824972304319139583478059500444550396038240411883455543100697902873562288078209147562870840709755015536731058259865654330818211977992324751320713517801171430080523334961679128800984260080410508335717426767732978766029229650164470243859089258433130856685923837097514738836794467411216809118287316593013195096018677259168994455064078749005047200761372774607077362430525947068471021512298384865630938763754307243145626868277770941042956594691176083616040285134532128392640421864985559869513145436472227194000674784927861364106832552962136371381798530058462054417348446090140705572620379924545019059888043847930111589299937341357131011207793248360049868305516960674003585215529552338911474184483347293351632721487376617618417910945643888902354833571790946236219614992774008195403303230657033080598139097518974958982655509325232882191463374060041127019514161245818408341384757220595183403283544548215752696451361444166849850285530118536092963676626644507534328030665889879379419230769931268238056154559770438271057032063182702649475265005917600265171973788310347989826711203585364155556536911119322179365409548576462729359268582340710244788745795313389498995356995062077345176413204625121445521633109599487257447018559108934305804337821560378058623735666994804004258952636648172730722342500161141923977591943451244396111915120517350736652847591200451377436061610478952644132710560636583855987497735355282989667218339474855620982995117749423438222846921096900960967312107525233154921325742050106766115112447811913472312699044014888458252693784040534307788495605612431202450695895212983078022633834925523309832250133858322324052038515302719157894421983148824636049085941517833538106412994067497646110956393845213321428617349012479261423299065421899313244798152944494652655874807976837301072205807285562237006082910348077659032154282955994948854450132670875299309236275318128328540034061138328326614650196452987138270500353850075047714235519161518434528225417559665986213488047144866090781800130073395752528247566731260790472975147544499487995151765458288032845992587159166335923170004374191096026845145433638117542769683477288089163481284765155639061817236500210828422788758527535495428185245321478746799868737571237863856313078809040486629287351011776265338225820579368217985082085247571082006468635164206727022706144071016881271648400404542322860561331807248548409495093547819343656738631834345067973849732898385088515471017973681515248908153697208777117929988296648507890549965288223017753050230596301165448154245019342456491086102989083159137160226216634243959828413730800252672509066334384095903223637426108346017341602197150219908960231022960134262979598489851978009793499517994784611425749275396097916503790715809521610225362815910269467577015864732213708005931394870440589623925374860906748376684486747859254048834060120603906517345321985938187359496881088443196706039060076527692291689974690971736220119529179539842559850829162038532481157971964547249291321485739640035400398320281826177692299686548685278784723807399680136569752208386743754662975827785131675723149791391392580111769464067498346780123368864565351021318841708268779789704073651682973080606645510084319348348456208312752631201586692608503550352141906194441841991803962922586871387650876625268513289398461556233433439256551644469280508403305864294478609791903809922614819475576911102654739355127269806140733509691957508526264189791734796880573053239093880810680333565310482854749879598755601002438185307791636020384403165149680938810066752611801304147447777138763867058492163641265623885680196809224030180419985430769994206325380726587988228513476054385373652585998438917857466496615194865740345035042223187899312373133699926508378140325427135716457596332498155874018188997981699629095488318293009245656657216355983157061700417378989235647381454358032473514465988802743790603803443952367106263657330246742837086026815472345755155738102608948201933031815336882471981430155298575326160561640512933746144941110871607103440529598405789681549580271355699190958024748725773279784263927752556815605679106607034319523515296250620570644920675566166912429241855564203611476124857379446672004652947766677966756398768976647693048938149182403381175936602373516582381275375155683358655320950805882007844943937401410150772599843724611682556745671252432996436694409723311927069088567455373389051322925953760894464848685977042125878731197551734202056589527308594423976778077048553880749897388022749949440610202481314403175087375488822085066816251290349041173358872308628810543090198360024076617300039435757687095795454568007489496408226076088760015647470496555882419458145688430936333679138603639825858381628065139983002429646850701642665401047717893107757420466002036598514851711564044647973824090570846721560051024718646007580060395585275731894912768348267376666780003346774727103282019772481555210557704618638804194812282501989706691767166858654442893783377592310068913545199760741393922229040338086442722230024848512866053707371302215489808896184030971844869516358945342376007367552431435978746567873191905699373237952362775267794274317993327292349218157026595946769369969961111181101168278067923971192084058952436589023976148216171478371946764254769418833106228517573042025961410043413716002461923476186863974798591144357907092971333542649464026563820412569983448867364961456088092457481358491225116843857316039229041402172269562240745251543407536396155801346123801580222223137887085911561218074063546030962913011722487451593469914099673436966806748943209613870191936212430279786858558892683955136505100518779542566826873053434851800499714045830389043450930734804351623744935377282967489651285409785564956234404693103753278313168719256244475193118251625983410337722389828062616041754813942912259618454704428065108631938411555096271196604588559539994912636446714453519560401960334097784968014266422601785759805273080860194429212389167409909504256309638346760280894958864180872723714367952271242313270415366457688159584787379130764064992707215867278649703983438870648811295305176714425891667600250164742182399110655474524584667412604779442832656045833523550945381019627876945040884796695766429106311427573528116141919616685203596787972484668943501940138584496077698814365301720833238969237619021208805244181067395411797630978684985213973022453429183587241549356626810430270157106854683826191611521717187564629756539061996853763037120785520630467239462703212297629667240977443764969192776666863662891490255294846777913388382608872021513069363689331543319779954934599143914011653210180898567403198800289357469725312226010037917192708244467686408908287339583919512967131476480576897296634176570788682557560773702059888332551499852178935578912461159358183718441536487256615431316158091528325656138595063670554421164805766653020517489730063490983654681921436483840255899144939455318063399182782740363381055953888354543636053018625369171062740178585777031992130126464427049942150052596093415599051720598120921046808224102374272754940269459434361012827020233023474423708330102276877534680980043421284721325019047224988882318438112618475514357541265151189386329624688429922845914296889569905690573093075901001732211759386932341718399753429489843921137073086978198266712674650589824661391305155268362872960829231827950149557589480790941102537882133556787402394362244657485377041629015098826858498650264276600734621933285025269212144827588967189042379395004583316085042809098709782541282905855622238835963279720184780886637856433947884624536058688809713579941563256427887162673766769124728185820279484240955107177163011531570861110092583834102341869721198937048806365230875388863091568866107280853443515390934252077365592121043322337990468884331939151878984564649632857374685709603822622543682639207416377197148110267183534468636392729878831007662882953505364746261223379822326150729366076579708347769696357903278666205481631671031071305348655336414700370569243894387027848748673934897310034294858975370103250050378985040268869892803312699611730123538004164875328982951223205841925981319428094224560268723050666095187980278994107473306691509021117026602923339936047972150807970350836060392814758122523928660619735208474950169944491144472277616695064089842808652529890972092429696832854160059585789760651836322552502241747783394072171021683035221873898668478961665550933384327776879616212226815318048351760257475518787699731005562233500893855614823628415429357771706534971067059459064407358932947569055363070585214150715190741465676698531327782652972468273172672895667837777999536906709510879624137835755419061081039648643547831376750025225802295120277803168010562483652384258977262023524941692182854738807961442117306996833928965891135868374840323585551566429340880871062354777227380680159063705217256096536790601619980839212363945993927919876887664221710697398880739536595939124759290960986109806801731983333233502583058436748037341615014317502245778831790132774753038464611347466562057525611051401000845148011440509427569459715407860259670660749800200012340738974705028739169902921853217991451969688013144712128606690675709751456285796560017529322333013941086499387142717322664579214562544455962844313689664977935446080880954080530517043917760439845222074862301526776109414683370478384207518475565287738987468928783281677211836553843034870105453660779888502353128365718320904303290594519275023922046082003638604115796573109426392276914543633483096866579216018638274412619093346782169012147661283418590458001334130098920999624988670567213319440451341630975564948297507556740726891592089330072398040093618618998589445237045789790395641476982702744004365876734274608403185884901188661662273443336475545187363743707185802514902628076552027182530668751392168875540937901568182402323954682364760011204369466144104164290625132118779470601041552548706528586828548079145093756297209646964336378959194140538744303918371802051612914378088555658204196386071886188586426286833288407320623420184363799896364280997223894031441025376651453959530652834095156108748672818077268633276177042497990802182422433272248166138618942345522433794624808858196000143920220382132729835710789720019413437377080047262794315136965476157905627367688229061219350041941941190552024847504926857270355827668367601825896143008620279592800575568353366460038656764597884142632832322827119427079435450022547860379262282735086384376956733586101333093102313200116255822967952960583915587487655429290828359251332205232364010842950725777665010645444793990415582534098711550884899559282957441627841795669293733849420658361993742744450471026942329375190240669410034591314790032418879256503970059448791405100440396576353146385127667765206243721871672796479659889335331130092043107229519735102100422416970720503636796763673963919463327434418513704958547851100857628356433213341832112760880689034528446096793665534711226930267064993281361803118373302267167896393388708165797864967083730713202379234955392573564260178629235211761579007154355521503428067767755056600346606016503331573820104892446147318579276023234338083223042459400278084789119908045182435014249433188940197164499834045869215248507769132899660695197257825326160753711214272470150179874811323464530293419371510588329040473587483688214720865179599779775163952278711212734751680598622876178320099258714443593645356451801210711791942999014514304884818097733700700280145100293344292887077124346906168604633075870986129063701462972806771277786000359516091576090266410118656269599840829516348686629197177942308641847207181439460136024760200428773271926571156895327381844765144021807876852004822741076916054936506015058206800665721187656089275790920641593728264888743172393213069618840389560858624226632122958523311036802005865384178460018073150652175335228877327352642726759090825688958191666695904219659837071294477684933349086255162265254168679295781675322726682376019710183563980874036628018855984048655112963767074925060813991688362468776327856773202430543272183062054573884493649937032388614767708006123011960608445121682389613440104180855005503112309276456427419894861585835688215407362287368593126043604328549610528381905099474289238491606759874023075609300466193781098859379282370706125560231894350384251285063919216547075811344881044644628727000780694165715980215373216485981894758175546306644176347622790732260807029651177027008015707638339218796038954317279825687594391771926910133546137941779080407908511761377190532916577569470136912906122758943435113773820564856420614256414586017131520906895186168728386676782707734455051081679974212149278678766469300975116730875207624178565702305403008586086862019027992999976074440689492235989541258861589971908356814769573124272948831817332010323739799033312757638194032517634801283524793353728524973303933428777526086994677816760315123545854092657799241915660901012987988766808511972264414915329961196540100747067115480051101008028295011345957065417206045714324764514684968860151952856359652722857519499711392469632549699546000970672213477284899753219901110945939437912111882938174407583613983633606388946362808807679481033592436601078648279037911286465903879370711019663865135162405549299758381087316862088016854860067184861328886552404513820485845220103990050244863605825866782997319052502172100915966990317223243446655607245325993162140861020929701887374218267433881183276879000897202188566302491238997663863913994464387282390063098300003752026996004484310743060602952710721484572141188115741591654580752476133103198489717534111893415252517200524970647894636899513484043947509376586476449519949362741449959011558335483604579121996209947498749082184124938819409291271234860015355765830281380308984391207441213970952803387428994218869850300080748829638144827904788286166908306696743312565045405159170447915841491182841546996116227043398529201863625801794907286664666080078710496115047057152052022031289428325369149513542429878152863846178651666383323834775187264573871663039640953779306360578425812047292055279973617989816403486171388345463964358554190941674356370464342169416518595706122963368595540843917418032745338487112950051121048977923075877026967394949240436485090946513203960878966577917885025972940434791285806843763254065640033095512103795981786128448398106999788471788637845530976771904095153645280472939627684715417325519746851397732063216566188276504112643630621097570129598339335268961069774417817238706552681101834877632783545997632437085768457539692179646308367255660000493357171944516657478605308432611507019603123942720179846220159086505435436205183114347256467389043472798705726187611088631199367162169670155680398842160280529527962748775903336066736827065602805173222184446597939761533902657574316692491978202652821995230263179273770909991590793910786705579817946631128708465722030063234837637699987781389900192390550598711489048384298044614160270868723861979407213201125362379391239695300064780319030401716437083157072815974481978941086904261808519450701925077225544196987422644588597168615242005059171551998626448444085368782638843205355311551393764013937839478592577697265192599857060176107433829411707452697367206749872741670867339061436582785177959352179000996962444684436826899985933532094901257705042461144762390293397290995144100524748166709635973325953398062859704502096444731292997316945982895851989818718797036429966305497302067746485238209388324224360826042622445956009252404584478607066832849804538180419661592779231960934360297713877051792511475692007891310315764384449243028301698928447924516422818784393441061105942433607780269254775602069394425783906407633223929527106761388638401025213250149474390155319664507655413372938579158234591515860603362181685959130009635670252770254398858592369356289982272996169771093453215536059869684543495026996025782741960967942231102006152113530400794395690930553388331193093039013262252657559150862647649266066324933046146980305050073816923451276355543429129884158915952039346698256253608187880366709510050904125611229242842923542442408041711913083287336423383661686428145697542039235711416875379945930874137068219236276146432943684270666805814181286639743578014071957391933953373625493647153848016288522890214129870612375546242308452630857505310716381328794082410814897286568209004925720534658831371560362271687322909964543897553718893634565454448112641629088365156679300052523761542784445719630999588606756955249982290448289786441433205549046907852338975422806832011453699841871494491540820663127953568423848484888677556040331126508673129703692839009487019142554208876971444449926737406950880003525747297685296127553350859863294599451686970331810401967979238724049294621384856825644985060174941145287400235855086850046504751334463069225606991662028447848002122395163598074412216528033045711020280052324682885560037482083856702823564015529588424588843553353132011279525419767871587796199451929970395364177905439032619898597645255441006977331363382589119530525917643267214063926240134566407902661200693740017445069739793084350644761925361931588576397421885081135833304391923240651637144873637980632174305378139649427472007984935353363289401235590356774038069802525348831418013182799809558186685061009963622237275847193864385982294169391884832461316213124489140987086655561838366204223664811847395780592803040585829455725368316313703018978433481464495157680067667909879478167666810051147918055654547451388500357284992908256021018863712534051228646099622200751689069407391290685319407330177805109493362498475874989694085984355361516928520007803706252134041457551126278824913570785706283823719811361815449629899735941755269902057012144228345517169008297583044783432134981559579664820842733938862170740951491592064773604776305242184298187887130532330494320892163828194665787717107841234041387379722938695118349395612027337965735213864588537517720364728752383327075727122641062362308626022353488312922039990676347520235677275564959983125432138894672886514071222243391939418988340391046688357046823112888221887498995769919703329146754080826382579878599578832026845181181574908695872094717320368107133725772587325984221416957534897245981693785648168406015552308247473411002245665799556177522315468289262213542935047480215119710807720593244823603656273484357925924924563034313813906050032003266476821829782304707040017915056755061068585475262522651997893098280401476148408316393074371201915137102952118162712285388583043028540814433432746897428746439362121034630378153168802780185657964737883610451271713540353319364619977444203960743885241885761337297674520498883696979303192996892506290864774208684222247067015475447017471527167351747193652418456458575078924610709940011577504816344631579622713761943746786864386231780747972916209741446828685310876536514152143655315354139849031184692257584061440139019630085525792778243540241260111945530204955212251939498788067449488287201913078741359775246132211151701116206922171910230469214645974567186108417494331348701931670811538414476375523585857263351751320026921168648726061438416405031494001894960906254562782277171063115563199723495649506084492880804471886005305676526709709873599508440070247433982717715901897747192124899591306829265951623259971116731481498100199233650209205529407465143559776678257341851076500578198859670391671473474801283428649033247650114352690225987149490910215560625055691261394683575268063790505652682455275825949364088250743709536523551967608801227573128021219499463116815551779418778462323746119899596875639790777430053475749011494923709946670621059082782379754907755902275310281000020762354962757989463792728310349510386950934028501671232150836913678479553010928067751329309393022677360753848981567102640238879379653454130978175457060307513135171832822785266835752498175545217898852579077236653133843849155533597473197158208137402764090765400452781952929369739062361624353343372606872709445301988819894065562045950988339684762015157966592637730649344089601237640936185220404807333390813939907976517007162711840783145207098455356965820800224188159979736333308859060074801796505882728151593287512445737847369719475672446407100967326302115005340711083102048776593699611612418722028808187887608617000780453482038798010935029138963829915192075911909499349359714819483091097957262450803178163985565828902910933991160852105880251145455233075655198394311006076283732904606200378161221039889942676914280337914327377374674334341599652047190060449369526882820458193793889837311611702624470039625639340027974863027849336799190907171998876576816969541871827849136961042329365307966927618651864826759496159157465913801563866056969996922418449745216687302257682203028068438778065897411727028531652136400537625320951602032133172067339362943207421410354027780253923476132784181163332377428439186340639757346608649110016774720451160169055598362661250102738892413371164211220103427623035439215787057183600921418910350029131049263462132599721034212617330200457901568704015150133572446589767595969604877154869951906946884343165057754569455969566231708956606913270101271927253467214616507377099716077274688917624688166435911734087659864513822341565794949149036213414803100749059804556999973945116876840714690075785808876282803116877473992725150493791364248030730434197412200156185037289082377277867004257593050106040613467697672689200455319136770474036954345748758837038794042938726898875090133510222473404282132491522505577796987268290612319214809792977021591663667592480596924318982414428973369856166620857858738704135767696357101004908990979613146600554395863400897182666823629866930022460294874738622292687578382592687282267939007182736149094658115076844312430880105628433150712023442434450105650405551043148304453459435967627805732124293738409044651186130789706893217464907653541782322046145076986543888601320984918207264833046723962454757797213140586653081776641410992391575643810738128978235353093260490269191369301587937567398712027940546979284581632567389289545588767233607266856605575300279462188504314722434285214135999669145982395229942031414258281917934852132233728958546425553116621456629974859298267795556042908764836338774488001461367351162216669066408789844128898623700526708467319458340974761246985424342174885357691411825045669693904686174804434883159086673760420310494694244061489560617047360183547633761762611851044306502661947554394900657342561913425916816864958117238230792540024082512134389912130326196270063740370879386568706394584055556688378461978185923791225744061554158112715158309753892902243077482295088942042048260003600475121158694674807242784628368608875053109651641189719510293615038658397652479273165162977148143869668923791227478898863224572309802549285266247721177536427686266053830360305957519802915974971971858569271255396511082655833055339955572435468355472443030575915653401204602100582539199645762051225390893560786830965874699292503855850842920255685974699192273633017743411806611495623432096895007594987107562765089090773828217052887437200566548703365008892328569362121584469594836162896705033019258506491984279968050639264616770856258785989377374510949270997166216618233320632559469231682294166612804266879651409892203646907393720142274154858055795996280499511316722705844979971525266767505725634845365893159420643032269604402886358036941822448215172626348627506500996563395841893199991853924766524863997167333327239722863496776799737156059086002407306707595014275250729508708776932042344815755640042617209171478761477638920456770043687382495166727670566771348799955236890470566576256072090278907939922672593890302086874617346520031646113199520195682887723405852693088334579988233314868593777986323927052755392159378801689380531430550424631164002789579292713201467163847584642911147713237986124242251910450857460059582190358717243017746530353304140359065637513913641593318179269590323269510888804064430208399579859274272418518230037541949761505910174856575155341653755023766670593752069410634510854216568443706013495611948834094334551981814514946583795603628564731555037582918876221094196454601830877592113627315044206725574049878867395832128712893867002984708541210658853418975360855814084695180341399380149424310477969424553755930978679057511514462501676609449553231839758790983937422638892861091741935622324146852768486984060911936455038387956450274692431857913640282924478430605876359214568800675804269195092866615223103694631438148536848171541993317380108263001770351374957372934512461571930519392686362236931606607978474823721427312540311250630798362107303706745549354905032291676690326830407761204460324065819382869761077170259213807994397227101673141512275572268266023557148939422068753593871608891829612099092241980619872413701166451810495586217318289553788348124964322452430637785470927392256610105651141852062194730701167608736789628002653346362223049348877676939305935263404395565617487870441187555210659944233048538567283139927914038558693568259307424843844531594019407180032214497243613833979738716357607809567264469862127362569800592437466473344809245124242411868634258646831263489083132488670707986332156843940985303900442565776031634815985389324327830002560988512253516236298035788012064329729658338217507606270582697797918847203647902166546197782280398630213331520861039847326748975200845805595820848818938042041416500515279659485443581185653097991989166609791726908954924430154365154909664308066063162118620996124170510006307681743747154781967876557107918203172552177254041058811891197669312723741256141089689528630596464197425840061313512860788522030222647331781825828660906429400020200587970535501636465435832792300745930284182874446648630967210771635138539690868914452439418303680292433368506929091162978083003878971028943702047798335432121588398846264884429266156438271552500540500841770953618782552016680124028808600625691033249179424176411297600656767639187052046322941132237614964433937820129120775348781918593218440804172889505358020606230428935499557220182811633571572403064300342675109884126303531418719335293350959410105514708069158373498635352749831977075393573715310778795930078095324659373974294078324821208575171806931934823937940872131626071871099391789992617174270412621548319732290118247414113507597743257023147897875201847047117978822699730715528697436958334226574265404932042574138881303619303783118745307047700068464979362513339993197197167450263275110237683713086705914976215280569538301595650546552135044509128627096173100124351195985915310692170522652216540686163018273628291672197363047498493031135685172569518223648309133754739623299851736579209995487646596270077363695678789170660317913550207639515764304478587176632785524491635599669711018262103807072671633521514193893206837647603183220693259986506624280123892161314956848129025537086256536015056378324368713685969882995882348097821589596430662625394605695663952986546416719825848746117003168911889508261679030064832270604502725006541018185378437582529679501644691047343600190428464919986223516916341299964550743063847218125333694451557130126507934928207570064430491200806578279679605547824504007282425704809498491829665718294765888936190458308985796261249112292537859351654622284428942887874163528635471831438844044224135894535591591436077751121840055418553081739824001727594141632485516380152777695912406415424512377956689568565650354316790452834783931094483846214721961638821177143999726586488684686276155553212393045567799441014019960559953454320857430195896450225856358939235799692619943135917964830701101938718005113185974406650365650855954404946049738434815528879282697384480222534180066565706224431014148470395767649237263173237704252069230049748284731776240555851882102607251006579314294733224346345989215409244330803131478401481765477953200843594537725103545888200141672975537244151241802647263291429174798720570788104031552215690207209365808479871240575594770920744383472078617360668171863761945950949511119689354429013952114760414548598258174404847053031471566396269970952735953813450546302745165995205526853477294351884253591867926580328087069975231573056664369265684996049617432379392558379853374245280625109425079899547522084621093884755550810785774395890349051229285647452758785546545773494716895646805103683823952514262268253005637680977838158785290985849582969803262874500194497288501005183384872065622018637891040164777087188656887311151652792393466928871280626991055886131107212381240349529484970286751242347852778407731818548432287356944652269402254955413904464786938470471323070461008474216972894468815821410605443409082669391872572405827859719319732564453181370908819700296961715035227504370516264721814717554753106433242540824508002786654199963525910770797583290918315511088781419111462179877739993764788180207593325107768689834510290882825696667675502472051187006653528042004457442755889770941133858057271505333603094203319913665395608138332378499352113202329567027229540021452154952822282961581715464348049656946843120692941796209419020495865782946443253945842784124091704841550310713259803418495228584041065950704653230164856486030255744492186024515560307296431452685563130509013220863529082837057450630266770061262513288968865359831889766236265689962213769395655110349044446937773652174822344387421116434335889342656085230090038313071714919059788992737737031292690578348371561460733386289972300923837846350121566860506199163982989162850460230287059887221829339400481573899644051086619769488471926714011214272701431446440547690355340315589225641461680901654005576745844150524578477141647942396534765504156084003988825209662256118430511261080995369110330488294828810552049468162100675856195520190923341087557789573291489704302506931774053365809545587683642496694563895790042810361661155540257009075244481810014588046171026771230645531503251701563185324921346693139621472337096974037856039660433050654266399375343694280741591863506372957039573482240263424015039897372706557956111196617573362212095134534093025273138041147369956234901485379909064899662709924606227352765292804925571822991252230203924424240058978171334289785266087060016013270821187906808033808308128997843550987968977080720303210122993778799338382642391860757491772901944202984653586163323964850794279264405056405502666813056245220152997117454364250133651267080980839295602850551404857445763007181842746070803187693461398807479861710316526252623198543916801100819618578643389093175666135662892473022289324950789191846868576334497267576672444795865359472118683837548608016210339446387194621394621355897124108877783793048532010765584388669724076030334693859077929133715530117757338433461686971387125149465934999284451506847177104681289399679054494088079944586500511663803619575512124631256775310840932998059689719594753217466933452276728539825497026766122777646198921745495103291991933256631655019986022599672235299230027419144715687778106266782658314296680054145010468632799469180636416490596507656003664164912760122511441867546811095912240048255778653428365673575923592381905199572177738435235051351280310902881407558691562831541545948996557349396008079671591511368039040320487784184909949516393616975484807779041940389376290881951853812769091887926815760846393527091719019223783718814613387480477368322475611460707377147499169327022900396182198678916870876503607914540107326338933484433486319938596859205798218633674399552660325944064481953424711038217664932550551671784700321801745149562388814004619399170182586311027294423628535225184428657042099596672516931700048617594995879140791609351286784621265360337439650864006316652713734791875698767047188832372195005601991832873361544255500969604453243716726743659069431748518788567377491414339949787706222185631793389583719179051529833083758538945569798839552817052043180336998225616062637185465638535879376778809718009854790805155622364032988593838341446655381511657778910555995935851652054117955820640861740877555963605036403092822662290357308205848381272647721146519453116829656184147988131273274997944942469107405924746696108532608982984461743723952511894143130677096526846722726287591804141213123546326872128525850245951684163316675839839237012455863998173722422616169972969762599024467173328189096933993626859735357689063036667992093208491781268029988968078829113753036072110644416477121488637910853853480521694956432738722521535296111886926051412306106399544585742352768566606760822429311200084180099466703909314967572374575242647678022430970279069841600865060193605719305898156791494639644604141198354544232221435227310664754852425700356485232419423974618574652570249638061027646232691823203419736229244645265121597735476836662404610965097815545583000924241487098778584248122927311088007323815875168592295015198109156448147275094009368382421357743628815564355107109634859001962070001285717472494408541268351740405183561948972617618536504101951426144242446517724930598703579387735911493451799815508297801527988836456857452628181354933684826080207691291948812543329573977530922665262907793870874228871739548118362749023380660615172767310153522554311404690713433947296750079702204197454463745742880428491915183498839838680355310560131571389650368902695134268452080791911737266567739301877936724688236045494914414638484587163947029180538219527569696896505097369933634890974820409604452517722394819667018344477361952393055661605481307030154858408545475253718939948731410835841833534646370038895848459430678193288817578678980714810175259258902188060106745105945867658287079405177608800589769254497345501249728647003858006301025211245922142866657929999636863734738060275938890982108085917739189199374596273176011221192243323121559125244846658928669452240972065733133104117749420102769633869879869684766042611161898945235161986520721920189622106321675428434687422644986913229312697579282942756350139694955189162959901644531507874683177806606082162032114836018835647760433445779320676937508005908129568106632934575985809510038386051381794860420120389492432164801728903612264729802830067409131309128548618118897967827666396658617841233022673020668497433400407868537085050684491462944264869557633643525669822107616741816196605097920842889525933388739652579924245052299556638742066075305587513716587348750315121960756797063626989407839039844100354939946980413606709997958458418817151556586760801148056860788979101913613623446812017823202194324722973463042520834471181639002002725819636130615864819659504623030718893601791166874974155268051542357305631406799772056088571090541970148177759339745448528316598529718386452486944502805818505857156121247817614193437346804823267792424515867726628851467364797483258465942331151197522708188478242258433322922301323477615544612791915407376324129834108885697328743157078779014270226736579211761989056357845757961396687698538576610601129034783884917732558684476199734012381177066622785462233881034463060236684543588059259827653669346115421660589570776238983367963510333125141762071902786031229120167660718849846293300018091760803473660294519677231874337130084737254944386624565371602294888984749680004125683433520132084824486473072313266232095185351828279096233014915022186876072768115868965320209848892531153866315268311868361563290336254350472976514891708977874568860813862624134881432800837909485826714166400333588597493414550947053794066728445174489417079512413016615986208469230787874472282706146998723691242913003475847835264693627966363841168894471350742229284226639099005346434493382287499341859000782814763310705505361881887171323174524115416852878271317918746216228800606157293309250943779441339345116953257224096803832900130462082909157740205870671122294901581507313488314225653427662905797788590312074519152060198840346420127720331786447055634616526276725605098312851709634856751091914005622560049276331818479242292326055753573726638164635782569224766538581877681236887193340022528976624470178575487286222102719784008823515635163118411026295851754221359059675864367571688688236018197406085064470806025874725796885748735962024443301212746883773767073773193998272792806788349322757931962370404608089376221019127707899102453348737439397011448556868278172572798102243787504824807088623458606230101801924514329893287733299645764406538704887417572878883858455910269652273384884955066594383635687511777796095116136302968046909098454320908146966215433542252554529531481147883673952527154465286773465854015253640757418742231056148132961312093598245019136719653847799269300525699464539861578500516259869490472592183208315366446905077339328492117625863720682371788103990023986311697513256493607112465752457430364172774048576823460434864390092546965764731427302831511191692448479757599968097518148740589068363276269364750067001808245339130890244853698010502231387620141198086781279259413503268105001966318609552913695229919802457119444094973062607066725130082420131524447898767355426850827416296742632867724146803974653787085851439140316249456496832589255541476521735248989746463613771599198674702452895635937189684340845696364007149613689937940858414375175994962391656083197491145282741184352170067598946158951441168234761750766720167117638236750013831193983762903307732044802925366686566177800344902809664716562617010687778413499750419172754041608717271392971568041043731998167208911177813915981334215137007369368669896042450415490578304965966872142299308830803452525640543625453686118866960648064422060589773403423497371148585240874829867492265843501700440137389337387611459655382719659665384089316384584696703168847214282868718605898606695651805720742568591338129245111807586725481272977806906641912652089598423856266766988875619234282803701862383920084614166426477511252596325310546843584968813594771932886751168526192441616607072117777081774706189008904756130049757687575922620372786420451224134421709596385184298511339916247970468301204347294580699934866664978641960113039980960046239819968161431523299571381463370453772644698747700763453481029776630996561826098341843014102057750490929534226918985590716800455704814437733941160496623756201393089859868455477955861692909004260784020888440788604035589510888232947650138113389815176777082778183978814893827266311916748980312331357620505688163163007065332833724744511946056681268633806527763154489883990384054693203523479312931064358633982932936267076899870089489320984139773415024236977746967510477976911274978787992528637080183823479532926932770052290937927710322403471370188663860041762772364818497282297968895620933824317687640870462661203922843055874824073734503642563281767477563439367286327115545195263067913244747021481311752837028146775003507031596717570120457767184522785938595287359683349209487114957103993337633134644749772397309543053177509533210814216102354791279829348376980728558510125845002284410140149743136084359649091351958550843117803584212201595133194808655997373441735299152773143791414008044316167345307905471162037764956038851657860584606367767075904384834874361258686943447344822282999685723226596085714911005372120721117328593413191360177748032838266143329668884334924444367628929250462483441197076647020988186139191097761352761441766119244883657062810419846817973682329017211062165286596943655869993710852531326317146096641463248319453424960480489583575221271262000719344747865385051618270087645345926967703395201742598262110638715723325820781527492171975981483876872632378313356556381944335496985449533912308384325298022431140068441579010341497110710760762629907813701895497566011308366769033305341918349256861827465862925437229293969983604659032534432151771978279921911203818540914160237422270910904822504208617847723999344809895413002768011250542057533503235268418867093870407698552017587978110082264816824982255115209827091444333321579836035450656345431289189351787400406955044022074117006252949646004770428778809680920689498645953730437804566462534984398502167429540167483693515271187462987289353104334361181335021548750896889430835907948222513303393425924009735325353082791153378966682882564995914738324252806680805810229651841862901801441110469223452563113815049572973545027741264714971391743574383775186600338854741642080134232515162834192911335751503883854009010873176727474165763322166180887962223988339106500855325884767371938792929847946724287055927023909649256359716753788589314023570929105335554499446167415406587844149395476566372506167231143243583014878168167803024452658153418459732657777049002413054328025489025633194358321583005369177412286305004401369980642822073314272648070787108508356959719691796934430956296798362712807977550435160301565454438874582199511663900322186299801747613849416116178819179175636639469486550863897108556860955370250092959599141462134497031125771741783293695698933560264459991861152359938545775032223819197568052563306338807303956114528268751083324214802973946201572159452333395875435273556019587485877858565384380008856377439813572239897018803665978755201593017192844189715441862114274313990921961868829591348421133595230868334688090569043092387504416188803518441189794342898892320671358657222082738309738840046757754193681896439187569500242410244876779625742944912640250794724659105142941895515596754065402715526486195913321103209620085414131673463446696136463198039755587126381528136821163586781089008888384156718114911684976284507832558538717035935919275750379549025355726781459319871493292043568185268983122430586119312512098783637671893695306109300555145896884602803208100834563148366360517970150086757294989923782538878806713510616241924147519077507875904563595384388415849385784059205883536010831210882461395409404656757027116247345071031594670179964618242216832503564393606526217425288466036545691683649852525745340892817525359777343183375472302901488344263704705512922484362480198149383285320971594135015568027346202346427938177329510639642346314360480006886886985446871452341425966390761185767692386955391531629828203643232957799547668189513879895331884518505227081558903432734771174992666406337403880892443823544405194796926499282628051912526645311006234589257413886942363649454067872278379534268862922450464928330179127815396318283490315896219068110162105870478392031750243006351747245490524148558450172836392305181536505407980866770578788718664143506241561238040171566167952727113536964268021026620287035344187755700407882542720428391230512795720580116280507400447461591709608176557638258235584464299075883987457879324464502015391309746521228166851958814925144622860876291712165218483096076031771057748573123403391098419759262658812889220796826962410943187885145233870031274705618263668875599799855747593523249096256555869503436696290856962263133073956950121583455580981635711885325885533541391387149611295322311680860684190286964192824536334427511591592300785748636960623895354525239057419037412435141825884737109206022839466875347907488775426367690620603478247936587451234920952580597275547628451227267423916020597024393458577468368049350130747338705327808965886961808256498131019087963029020402530632604449801275121630604056209590927090200836122505110070198775861138511842102431541391176270007767606737321990571991015397835185702996301335143599677449992511571052814118811376895878741729537241034232813650549395718407466974712473441509684426752144300349536757521309549484638308457559712734045513198754638369137033414159363569392121241564986973360165227803887299541734106252933415990834122645228214295814748740669677085581639011309372243094882486244333381596144061223722538631564379298222496212508415740776846178025113046367810103285258491487925827107765905304600494322011463210976253795203752380370810017840813409883051000012986004802407634195408682977090812521510926436515533642508109972971636184463609268290471611713537785224086145391794135361494057326532125484430660253027493601749556316881594328942214269000000086681879891324418277696060451993212506525620003252150243642744218153837753928996064995691200410366347589935533722552962894525444602213761261921875561044893542876221257837633411565718298251677792976264805434025239379256203626833302623392128474327531305698262044484366617095138316249573039360015505140223620563254570907003698393448688198626165957326907215275567114041261997090706040269533170115285831704699855522579721872682606831288866028679074160651749167059933495666787725244597115524018743270452030636040849307030822990706928097524352770935111546084576795921699930441216775140678080539463246822374682341280040057085293400836881012236619800477894020460994170350812662740818023865406671264356191037244556148553003762712894052161668876974729702201546610619060506415678407674245608626764975600200273376755100950112865394796049522513662566922825548580421713460732852247107981675875127157243471112108144397490572667505807142625251724912677313544441912977165885928887742431969372881940446312118358110980692058514127338392121004957938090572209080045162108011152195415068577136258323792118592854939227303366237264306396835749426522287344826252215589793900368990805651991245547643972316050586022605200828529365930657284162801846342373958330994457635172583612633100776789067072542328708260755849894177264458037919330988133613621768504604227690239676613585969197249062733217969531927262369060826358414346085361997426220969412812400821205247756924316541848226431782546815610504843267603717349294896879083304491660398872085557082827922210185169823572431282966642722547876473211778349884940751065220780937514436378120010629309169367778751213202450328667509608719295665397361162581797098380996120656248138020861795417563044112237210627538482248055360863384853646558302776631197976320201934340938311050051998631362336775387696229709688978651988614697863203053780934665202351217707308284872008026994299069564785533358359763443225127829634377553035638518249812255079021094282760593779886310094810753533533617898978272548476852010434490037086064365724532185531655170298152934285328272573875405963003553125889006911227780988781831450253804970411857731919435262034465349934810408384000155085268974470894862308735325416544465525194625313191944486010077166584493333579123011927356668566510609702967543968207068756838790299328294502316532369369862787989192258455340918740547800994615777012872289009692665103179524907939398425366381578628378533882714860066546183868660473773643044169152681865710534002378676906885255315355059109449834595294488136356253000723352223799114382893030341079044076847699305355382277334590266497980480636631290428552907215387491206565640973225257205063363901922616013990071199335819686507143536702776539099847206489399080838348576107161877394373528978528039295992070065675389700240706571275265258775075903919986343823090518576307683912093121164153345030736728038516658519370048678627537507233121444771253126693356447685627900564124887452054269175271701116859588543495748525673554607707704639096635520426052780129767046740595335593144903524678331211224311671407739982753999137392658098324268486049497166734813950554391961947841438624971838830114344833244010733271721181560781828195733204323936703411337971645887844834251178154840918317776499948296075703089830099773556046139233735286531380027984984794438711401221319358048880066896547876337178000230104489893452388029728581736803353798433762496463333262714256367277131368256182311382176536292758907875547067885864841506632815201568902761626466472017665712841460004736737481956790936148436923170663967816832427962786480199355196258642085299808029828227064649958751713196322896249438977146647891368693758930041175140418256428560797536764000614487681965931096298326852155920050742543157895745318978607397358849797885231407598082205161516908051540839980643932099007618744738184537549418831150625030360021404362243427749476427330896988351437140496143713306888968089098232838775229006517917744025375147565600087630113692812311587454014421552824901748166420899863565767967761304309344727713137698361112549689568440036136008892277119961181991024992191581587332482429269070766169243545818979055484251477113840000725303649840557817046828859712593185470913734053534349382908022912328009837428308287800647428023523900331949474527863956939799813862577394758612495714071448501735981929373624276347517324664785164435781400896560471758282763638156271980263477263445191462671005120788515392972501170116510841235484226892923975016289048836756704530082878109614028979649899523646420503145447752330477021702657592835771110026322241106938360464703051270902632491471166429042735544852813832532173749746878863450023575635242560759349764594939934187784534920253930545646507146213178203093344905260828135525099833421365528148965002823298934728551490701199552738801233558175494644278639063453772622576083435139435812780127511840009826061195002942018567912754764987591297250907035682494559314120654594741830321377418208576244259102787202680482982550706187819757565965982927170892658037528995122205536307225379635947900851240484522442630100479315315905586043597240876571702339546079714154652135608524840489881627620712815590991614510747434035732084578694346847672288693790226413196217841410728235955992252743165943462498637100048417455212778239410347382032134452145585736667184818715786289656784136913534410513354922256273826108852238510672564719712523731942121762474325956618211049341283677046917590228031533141256324218597288370206551388090173426570169989425634638730374481068020492896728499498651545434650042733323185272940530795094237093784901253308379912072397195376432796620299830861546837946033905326053476006151286882379371919932963217994028244819483533621539763954413499874509011132194518810026634448840309363609246473797850543328502831222397207014281699153631339157866634765757502602612611771406403410164868712569783012722779970173946989336073886456792197932069458599364662424555265031812079655607843002449028972500774082352393953743480304493185059966434793756446233897451574456380849271236680475621725563033722708628266798353194941729055204439545082849472500556270497890822916602472401707003353503230699375577178994745406764175465513368146533276812334066315224765118090695350416269991370859127961588615413768100102736707940788112530326881768312878809890071387687582896105298065344211196628522120592841235530541668818099437420243218142183845321469363794883484154610391187007218207895254652716506420904175217733159413966094635583957259980300698034336313287125517849693525114134618782705687162707371619414112554821826357248303734601638438796449239406035019027832947710633949238562263556862902805585070874766932842867625877331287833597404444581747446646035045090695805092047063330848423796546048961549425292029234913386110994066038518069969647630651726643547909183822227478544105143090841719205080218880871487180309286796622644112564585676589225909606031272018065372344249247810196310869056265425891810477308287727571890823950848377183236449827341106686644524267971095871091546572228085689605322521535670453328218158471831971358408510139522090988878405732548822450608487837704023115146978564838509361938281126253546846927068157545894065592446584556309113195663650303154941718240374918431017580752819741945580913671201510815607022335620962851978577432430154847592419646599898219263006026509715804437083048652948756385277055638030009771783138827806072247167361883604329745706567728997974093807728063366071504365351758114756863301831384851807928828532604131968432913206673593637658953037448803736167762136672795726197474142829449556671489177684170523337538667062426573226497252312073518858786296027119445655505536366543862324456205277775010697408583292262623243533768863444079208067970414861834501720115795390992755268806026428864727532254494198226454236764590619820083312627519447440032377465510505480810214245491930328815785000955500955546350080392986797455798135478467426221666702637568413428874119717526167711135710392129244707794314110933989481718424085884197556926409467562512576091552518120953566619601602910419277070911484358069392347731043301275724680732421562102021779690186399130826930313561781314364037991464521426820222271633118307381495356105207764050696856736434717600647822555418482787176982937957662597927912653367485659937830151708998196230143207783779428005349759288649006294764875386984221797810935118718902992396209295248191800953188519140706980931820905780254222121749942438570693451549280167252151102475959707759068869574587668177076888663272386128989816886792027368470790565114716742984413643497879163998206477485124798467358328593892531649714652606173817017758270166645983770292750335545095253523232176829734569062557416555663067169537036678932499799156502860387446186884918901160976114998473142492534620581065834029807722041554882009377411497097351075837282032721342687313429573372406912341766115149095209581397878394364537824650951577618370359530923902905950357116845089829559343619373664567235543974878967899344358060707982756404768658336776093299212056839597899852838071961186213277605922155590813721985823377114839450418494277576049274753875507346792380701963124536607478975486357436295776582356428023685209415896109628535794696565599939910593764940741930651756065000657827024735890364131142300865896529110908325785316289896521683690875174997582981456896074178567716237368657011744010586943354483912963088352397529975156695367386550726429545955290835923959441780114505964772471951053613912002658487130799786748824631792294080625792568756652393851602911411869585699114618577736958917877502879360122737311576257549305557900562457598513965447164349773965222702812328051969142792659576427305820864810246305106954243124034289888522973641504414830854242282787091874435047763636831890935444412904353183252113301135256782193583556439931299563421750318557909549977511224080684201170113300908710072737335468761129893889304060310160495819025155906273066115886190140477325035926672340524244929054674037345925337324905838227989618012093684658247336175640753573039180285826138026829464061840198195185223371793087260344232468255756546953012046762866373167962698507903184904063213102542689847575485781969791002998583134864317980868454199206798405546317718499561197922181984422361758554126697915991863279213876485848182243673873982875479331253825004901176331279940066295445510982305589965139826459586978189398775758638619876808832930079215337634387051186490187991665658522850048075152745160793690364287506007444566885357632828099735865259895193487166468544718519264134851220473056557240323462549611221650051533840847603581033071419624796526560784544418186399302607985449224636852534375047182002819785570472379796308824770794741387023539147702119447232964861585064532583255452349768729726151603906138213529618602039785812640494151087804672147351224277120436917005301333975574119259275491560465164591165289159292599774588144327698650788407405229999543097677047015807833750457184777494539148172895698224555961457191303203524514816712547999018338884172096338042189158605705181126783210204341911790973007096249913087966642018010390251255399855156095342026503192665374535525194584536903179502698937821916853343465907948512609707462961393232156690776592089802128300366759455962919613106195189737499180513919765887519752559895100863693068111024449289021560754447286970824603112754606709549835628174901605384640377434422926165757822201769337714102758216444845218237651729579556503303187916743246678607649735720415473394427497369482789743040222200247020679839176788980320468326544782054493437909194016081939042509219508577874661045232947262561934255303000365057965758816614179808820062785486114478922543388446399198612325687883127315456527008086782879814284489859043825989679561440584612622256474037172321840645284177530651590534393564342759655098082099190922383486740044889491693233348167004853069633215433458542127267768246879039124685693318012835400481910766779338268963285999849701440055543259259473705034781362703248636591565242504223501439283644447595549013816944550458575722063813083525452272260068987492323401165143521903144197882634577042584200307034246525879475664681008088015750650766139008849279965451568767021486480791281329764463576501427740999257280957212146580871977495045464674993272870008596987949251955103349028993156121071550331265062151550882284338034723800170641327221591283766675117020314373285300184445491175654397688814391071869671978535089785287174657016280714019178246657638971390566831644854572319999617124726119483752360149798479430528035853592749919291203359019472359040523007382409127976229421492084178353129328402930184122544155776999049810165829582837811325048036117383832833078596452349210371320582196860340599276315933430354723124880586618228418844010797278334160148416833792530710797805449534599894533654800665636026718019665704533811309806927928054956109429371324817749482028465616633465798191807247785705273599325982569605346774539702751991642984424227202283062711170502578290334478840196739008087639139956347828921237573056527158008129456832621187115854401797089972923005815027065336554989018263162537008377718139149928204676279447651416281430624401586943289118753830150910944548247778181461186761550501621226160820464974727754701795567498442222771633828476066836798198871415256562266584132299932268847930909025549484967501893725463052460594307330668270069139789263122185008229622424980227704972959753834140828758115765306884079303403017286040722496362363018999087632459296242884042959178394083315857642340202245819858725829365531305179352503015951822953769892175558222515583513017693550941602439484639941655820262729112040900729954340230039387311881039773889817593841401425117879397609334564827531769983910600915273093606723131523181105535271542226939503956928931537879007258788610272488874314690227287311926098646930785669775919271298996024503345227488699294283388195823525644879718388259043731237040344701084577942029973175810046460829664358195181098440447326676517188748341739214266884515634887499147896210731741374985631664180253663505252799332439388199660840030266853972868551304903813765522330321616137347010190887457501351183127925647735368996315081916875046927448900570049709829388418663629308544361445605358185921493268513985546791703408475721192497783793306381345925413264648723252225389573451493031298771580857232828152664161461296926090419464098769850657696081736367567640065066744242735694526895807389459452654348388159077299906440385166667398873662773336679917597418688291352779824850112908282852419432294047270443883150369612176881319818189703770184960019635584051676298498413589703533229280871637025805965677796590522439633557963245538780644886660790945857648478786800905133581530545015626787471186947251616446414254873272160693193228373056031438653731947650118791092106181820013906578022469983332463908411761707782185320444496024935178488334688119043779688286922545742909172324847938404897551943583784447137152099616540081308947178497881147670218839039198580492245719209192681131368403822606114672308418552929391869478635950698002957629443889895966536943938134128142827056114765179386453764488296503367188714239409342261178800575467427340963489625129423316638670008573570626224988238977022265765449536254032341423815304388899752228739697309615722986021074796178219214614656009994853995552623283915655677420745576190105439534936962182923379244379803160219000937791554164334722269615323128384158140307716849577925394441250295980145685711380518653057562010335243099396515975938198621588073303286658146114668478938271027983055818232849822987820953248314283923759710643570758874685359509238636925413716342768193038164547505818554632669645189287398417513698395040699073946078005794990124422787732104991563311069782979068378233859727657680158133021974434420694039124514833139453093603105710258213463139607275413909307256617673178493109249455093217514284961057403149453368815115697000581580378526124056303888774918833591709117978642107014190589788053319157145752020202041223572819797713609781080508756807995004191880089602380051418546379359387847701785620684459432707821180958926054504610329299263001005414992707867178754538277004762727213853922995751443702436069109862014913336807689349588530665181528910211763825572390060267126275733466440970775609881824576867442775681367610243575776657111677961148945000584581562126728651367483811004680900473556834694037585830408447072747791076558713752641018722598978419620265663706814584734179769791813662245396423349187068073018277849859662196700529037822334779877850918313157656054770696045072644777280919960983414690851068532492943993631211343441150520888581414493680524322685507473751276663666140133740718131276591578048081608935180118846847159335010120038409729191986311979858875594480684773571019910344395914587780285870167244529321047520488548358046193541004049860921297872144484879050702697008149878034919589231539432666263198063340188447102536036025638215744086882156679302113378291567762876458235828761474508076698622459652271417996169210628387830668678144103474304878002255130970277340334365196337452134945067595118647532125339792853116737857258496841659772900594361132528018470114150973365497710032879591136578874878606092636563185099202026111838810171425343234934145163014680629972417340594849864142655173722034054161050881323578739073210144302779675316685231005007719454115173878236128456606528169651885626033809329029466272574199223676978856697588442468923042050338252530889688114082761153233242421086557462527886598238232245111255891330760401910882477461426081119009199614343721365567879080542958045310226589185720430340275459675437213171492580395618733813847543748578825195489283845217198686200203197841951436981235315441290791174827477825133022590314900039769285978908359864725004766408762777450132132507257542999793597095104247597496179072657319620846362492650489117894255203170198493015269823769488163349698980204606673200753136424971355736956236274533529902747019730874476485965730559660341251695952035401028115171284867935288320640108377525855714580464821474778862274843035485211208493726357896558503068932871888893582348469879626754302230292365359639913423457997649676580136900939605776495385798682669325302334212158909485035483870967774873673904871462042936668740787399225454469600249015536893660839694164352709131216755244404239049860897091400844608428202967562976533186765453878773031932741643396452694290246992573873799882191616603643118084336699922380487884131298602049494891882966565550035730112042714715473642744396522738337303303262714484000844691024132047479181666262382753706572557038844426538503754345063200291195170414118257389290058833971120244103553368038236965391123843152905441614166467146363245791786848986048988196550223781232078009108205049444182588483368476280418196308900734418749357279198759853095542701709828947858489695507232225095029518340457791802291813529795595370499641530927991894667947528749460820456553593428855292151094948456517415730204848634195525156344717456897269038696802535983418422072047080249392947578599959379167806477751413243773257492500570423892267165949302194801454621186947995417590355789284587994517434631949985021763433735876639067229128154464222499637420179480571893891594276940508253293811662496680938593011172532164224046648187819667466843235177774432806714842279888171267076079076394741669866510695167036749869656942168537202851458552900613989382313297134284250083738830751142100792924199570024043059921581564173827151024012568037817371821089607550997306964382275890615059439771144540677832909710913171570552351793091741182565572306795341973160062295948679748116078320929050322184078556041384808393632629014193810483490787084890226849205273063935137420057615058522023227819505340043334667207340228470221381320645028323836974156818807365772565140492767849328694593279859208899289203620954977566119478334036914350102029636264831585713904179134588771197629782901209789795998137071160853872983822745682238080909699152946484573916387799397336052149183822354358702175167278155349071016240696209237349144466279825670520125202511160225030257399467815375071107995820977271263087694905502186092807696195239780404752373553123791955403471643895867698045590201003203887036631362211750905640640935079971526776422169861789362660434624923342405922024100955624861142101011211342579063008205978708418813073773080056589726661907838121888751792222871808936752674562278710236823197972628497924937910361878744600542408732255708889904549838389253402922362208854963189924432059059994955395742681562525442401661847607619071678035445587480680143008674022112261374590217142326514748685025485497778668667220900628472230961433088531801711902578717347023500977780940865608561102747577850858395340211119548647286218150417455876637214670863139686458017843477334762728202922095729623727398119176988249811277008598404676897595157427228382016714668911794483820208419891087714770004903099762449693866807385206162721426056212426583457650763450754340581207548373870528222491267120964142329000973935331550318711339146218034157063137365379278212697411697903777680851158202999859484861477203515412563173474384697745860162114165906108389876151935150450663613657238091561999062471224406862263996841887157859058783793927516336075587480562788555710535237748965170161004460518565309751378829080421276869052820210365693797771486264544460604973136679185382222346742125159529471248239341668273622733062399828257834743238228257010877022036705904073817855784190499098154422288150423635660931561526063254024235057177734603680870439283561405631547056361361010717515599402948509560527532794916116495177847762337915046793759578420834352748242162662803322127079409813733888399149354301508843175907325969261770060632620010213298601714498692578406010698024486287679247180527531038056509271338748973734112075255811504049712290085707363028738448971171092218380603717144863860429182831312950396398552201758406315656132195078727622306237147239418410266473953598163941062681623243662307039209272246574960722937745557800328606047966368208942165244432457701439685093459108482452692626088903303727523033633242269594216544636408615406674794467874470089078957523399225311385926545252420620816918976191038671731672434960686747680563869384600359325779107979681835071722215371660929374856608558396726341147818572655988993443144019005431728007779030915630973647805897321035894212032390809032904671618102809728028590920137955221655641050598116922468329016746599531056554384410530451461116488691817964453503138156351618481732359703898631117726746067163934895390676149190896629237676719964696072830429882931669762558694566953747286619146252580029831681020946474185026268836918642627836618535205211921851173088560187491184137484110827928972297649472747958352437220874113046029968311061108355797285926086240605325060691854017727075670929638520254202567686718053177151440823462462105509766099048180060552335694697157544480845365418484713090518222254389652913822657274204689163174973793783636046924847624111346912190116071117927130993527952723533772549795700292217126304846316996409970322727309665235069921458562157318255539336793953105663724156254386620128012898367993733183270191585185366866840110696732388929545572502095327981473883097960850932604229869578851616192995501403909043326801859824015534486904743894564285212008037656631565470865784162454531455003463322273984561146836745066607486487417260956702695612425752884907240694755076728783443258644632517373594800638594763665593033499445866625666453102796388402214419900272792637186300954290887624222967317134191137769684702085750920436706272906948691287778487434442425447516575279207082770098353105955533733360428882027771626638811533651302845305992440940762972250708808903204197612159053085081574911510611894427309614436400080006485521630395513978302884597432696533821828537615291194241691025222636934118883834190008182728648420107072421181567412465926316911475165472513913118596845411310511319050035541240099002397901977084143302687131874480383308584951388352976703933577025128620153107717374668233353097190814538190865334132489373355056225552503422364326678253452680439977166561058563198268212165001040775641440438728915581565047808663212479638563864467344937302290540562126713774414872035542805012476626567379732786673886954859799769725134943783554425910183337684256788823516818372259403183639846921142025166056710876249007781187280783270935037169412750234128913599935513377826906951441286910007587088808206472823192084650856217690759506472481025373201177029295859191164248735901220828928097687442498336439953904993872016835278716736950557498820511502051510103756138390480684575882725992288971431152647121798933684950497404588936382941969516894540862746073328962584522968957461179293796723922453473976748585156152082501333514847726532191982066533265127744322248807647449254965575015329789045223115517104442912658735635425874240412918082155957965177216508790795929744555421888648985536308471009451982881857770271885728360087800531745910462109079950075084151352184262649005972156966339710271924277893671429280790196197626010077228560323816337578958104637204676538223677101811568683547688041578072438049451270733123661068294510443010535732362410738880242005564271013369132292307291080672738707762743875809141689554630652598744672656359388813161135794370933173190765326895921258944994650521964623382989942142938650196901669098460104100743212771056883494307773056338834114602538113545880999012606181881974399741394909939062910281059939928767379787427029506502065236647050297433341879799840551558489410839320855589119885108427162113877224868965945171551883491972477068144374334069085954231340090625496882900152071448373673488476280685183280157012411402610616663212764814460645137300484834313567494352434601742552933769513521389460581235028025608382724980593801473528617503558514090149409823326603405718025998288430269720008228156417422463912688761088362650130568434966247523402112460148281545763868631729384894496271078560554957998098700044411617551165891113711162243453798205507497761930233896014671870571872712984635660197752944638696068615431636556514765676860063643580316406757349015452622452123390615844093530556415714863340650528382494516234413010185568741369251432885818072723566262208538307104393491487050817168490293746292133017073074501050362221437399564713787252552261711689678354583757470415591956856344042609230606136811230775044164415920589022328784256471737321315827986277378227439341096250849223948391736648349082958506833473575174950531838394638093090803508669846837628371347447873481993215448850778913209034161254305222242437752573535907354776665533580648642489873594518553371870360592728584733592574369487553650684002839486100201916956930990954989557777447335205020341063739304233281363062041984306244686519144179662845024273190679166711090972927996579456286163765402114982765756609433205301623333858929862954053962902302138747866506234163624785288215178323701456030460544541553360947843728797253310554633343999540486308255081968896790112630951935142509987153424407735605106807283925411890796972236814302634031208340868714508253427182480160677963847718307609160926082413459318599616067664465968216252638394485965638225194951855666027589723420332749113177284341124124953977393971540859741004848368755922171569432434868819330260626620878503776811328503527767044737768892994575619432922438481684794995237010705341049161757951472860943376665670863878159627184288418893808365309326743023642813090592787117768007901630343091549414055893818866392120522169898204575164501606136194642362674946487778972754562933474405444489080101830538534341082132221652211545171373924739128824017112866992761495148262628402023739456936142681862355452767868964773214802291565433366010399972735793015591801013354292621187579458922312327030261371677021602299727192744795455537649026191350486073617692131416940954845758695240415310083947370818562917254555665551884469667981347344128472770055516514243283604072106386042741422840713295305171582782251076191357787885605050842404030787741894849101209195296908591879010797604658074599650758620404086412257862494333917636803658689077767742916430832429129169698156173916514323971885853982828603995132107853458915924449394152762293523561504518611867754068319919372899508301861908383014011091235219413571108505740347474353983811498370937674292781398414592390432397040135180224779117694115849854774912742535258856061021132664905874345937311530542335921226570326369057014723022186832096874872213297559566624624025634182685001165357658605263303693452019490593287974668797266586426501052201123971399082325959578094381510058568048387711832353456265490847947818401611002106175961070384843246347665766252169476654570954477411858965521636276214471924306701241882097830593870908939378772719341819703545733420950871851027463927368393198522299350192267168679644475368919499567971218984139505532238752965612403262690504857650311963828082910451972762993236988503158214507408607801657419258923252868657388805486971829098461826391129873345274166062726003829024305024875993265176428134617908261926122366677339717554561527831938246563489547257534701817131496477833419931334604236695665230034063277021911442040565474821047497328485627612482287971696606499046106040407117132840791314742017678442467210070687401622607864881984373079338710860777203823636562314862830156136398921104573547080668861679150829007178838785021493380596026485630409170370609175595805356584097124445189587347623869296925273985479426611612334243701028478444208320105815433935900470794983749850275789208411359345081315466573713902993200572156707672863745667446770530739973017300328536099579658022017854884498675700978938596219781472616436424173634317945400127455627111249778587536249868751061345994017545087400497818328643462761481566036617144420146934362635153416606017971261067679982980246428051572787728389311448192050393613514949667524211929090357177547437589717988107942564382950000161899562343597701178771487450189404100558692236647406791504645901214789111088700351524257236137069252156749110011169432802346678327391252846640168174290305319582483834260594132205803097793128034001787433721632611775462424652671041765128681743283182361388000139405866521794237825754366912032378089169419799853437777009775568013185299171450433938755159413607924089008208980731934911868774919451032113235827254173198738842065343656428324029929461613238193758507723270974051723054238935517759934989356845689984186549402882368215244614405376364375298071245413618054850334074917741856854581579793521337496132774471122659040816550385538592865759321023576707715637518554660243505008524076431894051318747717776676200088110069800276813770868319888304957331725376067682699559597796780741021438152178026628032741886695726997753457812269118915915780334180333987527598945017406180441970361247310685060215393718871459747402511682740445541330027986116991522512530728043926125420874253123427259388461483318427542143348311204248530076211679565372335484847110222359882966306268694800014457265084553015967759505418633932969054682953763959919364600524943149248413404226933841175994840837119820557751780726844250761523045660442153092815743648679708914697051943641950907382570554715587016971704569072154493243512903068926245856255036901170130021759850730667542670604054743396841152565072222128261899736567249988255909917157766815393141152899754266890752001066074630626698622628871230092500153279047631309884404077533962646863644430645082579176654093200985873876317193392797361466556911034509326448966067895346288929043841036287998039414634409848974377797733280217391143271585868294234927325188720026648668839194083787083490607893994070871450208848850022808358809523820079126554884683916234854150295121633799634412933789024646338101840088613772667830760581305352255332730879355994305253171722891427283298007798371322700167582103766679072087800501059504744436015248606406612733833015263364227864244205571627676729773902118990378886278316515073521412702378483900656241858346746042394176807130426433514875265572403022105646652025320336868863507387628067768659300135543389436225212186732512688584012239487371437882369890367121331294026240011723556330618282957972501808608141726007639211449962892503172602892260487887466805137869433018709048569609836692135844159646009821823217718310834404746053761579276168121305680637183446607941043835191393828242789024166544124069312657617846281840559594368612379514258984762159518180238538175412410910515524017528846932954506912506529639636574241822043452891830226681201475157344732465909555496690185935647605943320663156969021005690264991237830041732618083533679268070387341251727691294782459372653266473633891312196599612129909376356053883963073145103041784198792010766719833372731838239168019773091785597289551176573653671618413736180612137888256443923950270265888680827132098148819914949406959835405525558138605606911060179597882988285440488623541704458813650096755723731928072123870797474538368110181411532434407239928980048468045545442766959113514655646052548517630167269404563372290595903893848765057898825423222757786155865528702056316054092107304063592711227462722254646520560941684812952511029842905488285250868132949911654755112991781625479930767185384430167221623295145669848951631335478321802841206170087037235036376021331731862014950640528523857009516238968945514970261367109488495433505089945087155952793725041305354238101875815825048641829301135828742238275117658672580284661127624753774777396988407582804262249572607265179357950623066832129202940071879549916392702752243746300344416931301466170873216101497144397113450752369903802757621792902874784640446046060114607759520441816896986356586971572215373510006707492765313393715416146853188585924762819768479532688459309192552450660039389638452893594539673189154746809056209460809722444442471031284000198731335531743523811230078121117025581012585006225384965674010248987658947969534865146467941175118796752234006513524456006119278044843137057104949657743020775455828020094543225724589491223377482461138648802880379738312203438505889648695582548825192599587226476649281139155024992159330841470875520964775872588555321529071158544842690841846471551390264407128746587177787527422076170320296550419383312268138660582250736452670125933707274688117595369414220252861231862769811089141069856311282210355300816665366617737708574483727791463688785069124619766327130961741099986675921653853280587078212918309794728414660761305965872420271328912159415975253079603306670428898982512505319687102611937905011535742318835436253127745435182732355422521253083523305387770086088191241882593242092504715271436500743158605812323976814020072296829941258157360245705397265405520506368591745169693463814393682403833824536833447716883474107382499526422111002566583064303902557392723659827214236400429480084918340305483620750795713345257319516317952334965441902175561855025727953021214901862488150770089611995372749010698365351132805041439078090925769183157428154176088770512169929767089920491884117954119820812530343086920576707673467888349482733686052745669411576163003712049588363072387263965879151281589563082252204010397004383511763453618610667615859387408886661095113625353637384680075433549095902755809010404698304219571168191223836866785763813004208748363841114542271043496565474206415825556411350446769040049960187326939525445248627856648431688137356621644536154395479513727177835825797847874798046078460662722577468292295883764647993952898049763977347801496204334745695465110590945060953590839213042746207197144783710726870357498852004694876051239186511096456328259517991212780622036172081155397012065730706571077468674469587249730931298183909413706626920915526206751950224593415026367900248107635282274365361322917786722639901050661204505292684025117862572310855199931533489438210478414447165260769529645841536216369510403659698833907253743044958368485019039039950062929693625567895062233703969843438360984266334629193390066225301378571603776163000961353765525652195077579824172869061209240656316585766287616125586059829272961898793978092046175936542994401873111205585069570560892973619004534869459929336940697886510420654362277655894564534627942744801231333227436835455008200386612347421166335061248977008931544741686856422831871749162759125682480484519870913377138204722377578209101775856512932368447326189947238673861037735737170123046496392053076558193085152054399648595689665839699356442520802687557537474133008615671479831162686515943673783261830563639310377949039143447808100962593636824880219326952993920568221839159548664772802658940931365009599651172755769475269611986827334292427138361143134694593483244835981999683314730067583408370455242140237402098901467722039935094539643599463308545501669983778922239162774986506379253040460943756046247065239774479445729437026149161414617811054333789264014078180259960431984139183442857929463927150043242989023651648750855651330997397144230728571621369202703046713913456189657522894225386856102339812469151183398010439134943074656215306776586227755553061492733669664149221349113331951807388670203222890581788702286070429286912770840775654555186691622969471167303462744620827468370695600409192932991456216093502768872292095114145065481061811211854324568026605497170977076868771342748226057798101326606113118519871617175778253465449738635314929556465367157303911102578468418503822396876481402551516467106891174224206002990977020427716684518954308058374208004032868227150850224732564818435295480676796309697476273155390949399173698336906767431749214999993173382245091863015620892927108607097390308642677926128276126222745305834418398338744567787423237283115679881259533387790673460063776876006611267375240679439311279572146218085273546284660838912073543820547590561374029789628496686191393563922618074844714906150372255990092461315163481295578565039326248564980513931801407502665982841392963748809352881941561731794970643626156173593997938022868460416530905848410500537223033707366291278418872720605583642744060055441425707136428683295146703894701063344660868413295827869715243891924045386522785922836299805217485707915172820023542652059387729520242035325483985054447205994936368418467517335129774930587118758986312519804615719661072556224791111899070021325503700650268077304745339751496132293046627221549965690989052230899903336598768571118371408905732230212785243667081400990098093236198557631274951792451438612742742712947682718268586548806588112123440769535582949396408520247128391626249028027355216071894773798909408468478221479386827483292136994618656466620118756936645879486868629467845024613273044212477863999031468650681173078358228959751390429681275438687976785057962492397908226510203451059727084290385776128272189498110838724491394134068359222928428914502161603814370189765122088159452489515175804186323348791345071391189987455050218369465752850878184221975361729074425625873441334549154603284141407806267992892947410444770853553209329188578401108400565322207914062732365224726218819793169822728797929266198305951044962063407948907524098761467870925566052989388253836786713895281427953553684098464904465579084981052668261845946253209666767686196900472790998666823850442116572897856362798945532158779671122449616582840520984627489982093351780001116251766566615041534337421189795098530531632464058752720515075283552826100436075741979524961408229173927707313346723870120244375493302427179906541094081756971095776376579307703170602551331001191105519600907601033672408578839837506086900726799423805644789731320356222785274032197303026314642443465846153571314179173039133349035611042155656564649878634972900060099121218112172065181980310066481057675749361602901319158174493709688690374538540557897207255070681434681340924671577054659311889757607092054207093885512844224691405627828202747081421594852061282988386438458244672119148462953249994543363047319564012246692293443266672815679290802462986876034916504464265413253201767700868673921118078363365933906366202714125023753343064802672182700720668911754540485613988875452088468559726195282951614179700366920181898417103495717630726714079790697195987271634377267499039278332080753231775435162198545467604845891698754949785135259760631573851778096668808995530873450622713888541866780087067425831471654351738658459567816107271541953429872671432776794958818195175634494367892074477745202002938340248491286713465991411073941682216436046262592882548455594902422912957850977440756630422754192741225593778747231405414875461923092160395526572643551420909064760720774383067675917292263594540447104373303800039392806546169184707470819220315442190944267673827241534421621243817918954872683896665641371833757475008344971168553495451457202235709748333519328522324584806136723430411147827694814400993689251739001503240568003983898784564063942417201526049755684082279955822953542303194766083253790937371883907760363055159355466112142050414754483754169873050551288337153541450413858715995868636043943222410366710701023070012509073615254912155757136925140842925363730512979821119391478381356896141437428592224051318218319129785811066482184074261631697529319760716458180615684326792718360992384971085281200065133329011576954991697752099627753311101535478154148836114965050810379544727199799514497816019816589186304017217088101034814631719699174268227975423418267222315887182861649274473262418880796728804139471814685625054664981494612643994363991960268247566084182339196857717334654170805618177213361527869010347116387228437536082743289978959806812220270442272838406377192141188608083443952199765392350213522725224631492371387641500195239310856467854283037203208708642504446406579967675024731868601093689847218356367437794131376568217690980778403210502179976519488570832449984540539396290953993282863311210532179198658467069698548210914821103933814648544693891492565355818683055263880784988177325530433919513584855747874484105912730428146327047230475133840407603071342398442261585926905711428760132926785619702180727464560556932949935127558112733764650216303667363616242735201388615948382366226429141024952305613261757344333781005773636088815704941133873898040561930814851257603900363918552588412383043207161588140621692260819835175168054866680295006246354584210979510512490514679261330562077198396137590975689240741647303622434765067573086986101055719404683592118064169405581805299628518863448501775925748580519019287804247314693881893702624014436724909165325377464956226615611122808577528450684180111729427616086664768092039304832986647392641021447382610833265074155812349974425926139263606988816539759285036954374468605285622231844950791144790414898408560306114533331417930774122949382101721246409642577710288456614294842281307233031200052415587512156121323674004341790480246318225119817903438398300790676961051637039256205357079434964207466667520963668512543248416053076468510416584752903975596036144845398892583665826969466985922612992185961670586394043184258705358379631419657648957763224532050834967243128671213420541485921783955252963615915137103469664551841700817282641947971942559098619054330444828412684266670013364988238687648482654618410517045670498233089664257149125968351891073473871630151904842052769282856232446755057117074069915364657528326561367848251738561995980892941377093340423542488592459376415785075292315954903067842736365534989826711876205496133629569333510559051912383364781028617470415580803989574435096652824185981738960731291510222145010744930573872124135084113856678742058666763682108973941224338137949792203978181925186385759694624524031862410412737096631718550383553996524266457594492602460442322092992477888095051356949446230136102530369187594286407976903565423916518789579846179920973832095092547867744262511791289733085630855709947913343670763101926829898149149150952432650628934906266719418443647395165129084626235104711512559384134350281983237017116992563999428561071652820253886339499436899942926788110863801421516052830167213457650253813634798327696954159852291719604729630846667269026509408608329264652214481939959832857980197378625690032238603876884596308695134273781407335235242911998361977486511340619266810885412470093450010090327335759986124396218295291255736908388474868071556293858405005761891030352875760421330746085209471458935105791743254546808749261549092032840126075857295628403718839113438302476508681745463166996357626912396993116108896377312835068047468528107034336821545666599370721454181005066144040885760176074848264065856685084856329586049062690098266146322539031922932590139835763775321534496668640034118488138986661376925109851679914339884054325019858664675030233915223590363798051593025543429060478792368733303794922478374772698601214353919230085195746286786122858423943187876689998692904685316859644686381278719459625732975663472508457529433843295792456665410293027483640349866314369356433025702547605811013375169997799546196933255576561004898531735670991411164544043245287841045510933827157878330761557059639130544062427178678502751381447884077060809552666027387681563739285399696399419218487640728405890017730377176321754364642661711966174867701453236359365953459461343941311753689057015616790933246867595695230636436575114324162124846344113263707475620579529935848353137469232049907650237858165326184856319263734662320284254745212598005737872806935288665381581988068734621206722286251618605402260887610161682694882674328088255789956991081462419418827248181876482091044042191683344097190568949928508166834211131777380003875059656270558792477199544279724709793116087829497649461014533829876939013859171995856162905413284531468120910765553511600237061270474560665713595436814690592428148671159324417887377265858244588378375332477497283390532075997806586631262578645308339620837143402369471225479229950205748205133640697623059233171307998280000023801519594022946267314622438263021962680799853808002417626068899928219345275855047411746333571640287383996286430946279296672044042444913107825166220690593244507278334368759123578842418631454635439468287359198087060787179765644732314139223772140258494030823113942518923258496640711021283607321352714675429285412396778606875604355511779864269071292022261374969509567074455969805220329561268578780627225656902759845913355576317287711986643565810810552040184674752723160244810519975208230027279582787986531683469600627301760727973057511030597357946589025165980948213004147000325101408724924010707413612061584830711880400562078157588756532248598259368835083844856540518817061776968897883831231047710036034463255666832747692581347560597373761787133274751328209926938331858652768192294508725778548987486145401719913186025058115053460869699843340916171069302813083161682717485818079256172420807496733308753820366199221492107639795619529562448629299722163574937959786577554292433188135353517521085959261510947293420373220947355313954898412662181035867597744059222323922451790262140722474884463428954369637098726097579434142341409496028701506655530826183804508804548763544512216761993802329146552221948556755640037613070021751714440203150750994521777966344891273525703019429966277765887089859456042513366166457251754968374011269129700229738959283109749922533319935132461082393317277369282440094830649422151871104719231696062363133835282208226933268999028734173676531195385591162284525841707188476706513254374118549737448740450554416556819760767477842532586472481732375633891076198473818056486759366534900162665597718166973766648405325523215364307334261940842438459314124315756606235899177966552270323970592197591581088929016799050446317335400422187675871808545256659783826359046923949916479251503349202917970160833656743889909639228439127666407924416870802715181141242309671221459191713815577625259493109460065098927778629460420080623616041301704905573624871833346511880351233846562732616577661187456203621836306884506650401640604860515864283894414921660025415729021707226992569747552536501711262605030317081818849361160623254072500783847887078003002492998172392410449770605878907622747667397243811781073574795715673022311781713414939804252960860961785719198289280173204423323891253951056890089001255372776893530002297711310817431867602290770994845360588993286590071506917408299895748575145860837200447538379834292358422086309243132008446093854987715722752955082244004816631665606279794513377354687849480455317240475670018471855986382808134994236974617973549709902086247843654813481828932835391187715087688642971545790863592850993731721558549670004671002586606176279115196665295118070996753506515381376051375134507333864721461914762156314923836080965501498669516809126720272743422816336437418453223837547922645270068935980854564122748221495498041659693128129769273520455974725454003922587189916957138280832623713155871016047450823518655134685076550560013785125320723127581467646153549629732365709763581448776908139867251623921559325499230751500740036847833294237844650613199094402430637911549649639705455714544381808791294468044727052891084982356273923712502192239501442460898113597416304346269913854083396223906482342611696836397834738773292151047714592960378192385445540003489303798868420253474107515537618242124926910490559596009040992635206721049583060513802277535810969855805922106351632069292180124893714950064931453842400135027600281889830532380706924131345386250381717389815983309098750215470959174114382943227160584057198031138756465078677325282169726742987463078286600800533910276677994686332312908385158440341083106096574586308206948268481201531438443836042747167790774346210862243815598795148165704931986723787087439878638805696447649333118230884422128605128865713545706983514964209811444909341241625069127154943868695152360495187198348503658174119858064342015288342279473891049101821029938693293976121163965813428175436671410166308139644531971902660520770153226264248090446360811565458254609659988374385597463661128647761629590901178492810636476796035001656489750448069483063929776105612693311130452261029476614402051734345949009548299946964198908165581608387991253649668906553116085700529499625045463720960254594990045603471054199891892305809899875341480925046341677565652724091689564085041709228539044973034672773054618016168820552846174878473051351484446406907544175429022170480643369754233114470863983625747474058098130825104853327406826225267126862586253159043896242116273318450139529605717796462579506768246796972443407571869024977912236249291024502748319973398246737825367137491662116903917406133969198574524843318195396310035837849455515124138357668182389349268649872818975921239951612981637313218988293606971402002195638020482083868312077686597520183030032279118115982662142922043984982989027516811718898215554090724652289637356533312229855389570048561612981760923149427861917964681288142334769273807871104131041676771017614210490400078258162159610699903342770696157342269043473036055271810684097677929627592075745165210640597112670498725835731313629828836797739982320542597878204836526347997444426652105501909995900017102434193721844517487910191637760210708206735774358586207762393424364836883686074128852874185801349360497230991790644689054550022533279021847806984562696101693851440744956541496504574073249902350435730860856214162602028100817832101308715409050246177501565927401273555600535792869360581884936941372020633974796096747671031202354290145953888846359705733305162212808642379193277098522898042496056514583942219598654627674743459397470071976116769660393004992420784326026089147280080150522221578697835163511150803029743643173878379909290284139796994922846132501464417797734130006615576557073335429171617857412956195264208401308342228792077608761265661573694730491425764605699062686998115778747164813979317691158378042950922330942124915340742794838778447703839737327772113552946518451450573626803891294036593615868537103914438236571663217392146372076890007751693853131172616102011576346147686766412397497547285308252264095933128222513414621128153668801055795739409665643460272440392636491627482508578480961531788432609334697344882262638013827698890974010485659595259663725510690482113185393680644421190416689048355643576592752298217832344906497171025745931093131782326076179648215248953927298209070901714739840962225264167516630280467823123217753035772422326154741070347085064746594352165186905435361100729488239698896367906112251607604814400734816786509429852980585553223215242770537012491661449421452351178097761038853232630806614564433089998135813769226335617250365886930451957340998220679676481205938151437443868752296762226110886962298644529264798803130326805941256470822183370877025639797662399563295277601079109720776878783184809328312275682892648774474598969852583608802586949740097674795475761077341319896056276817569398242666340871233649030125575096025116918024296445419076591748145424153649704740174066217223429407302752564828516682427275948939876186197175599182069936758358693372107766086915626134409387851538927978085604114337717724103351705186470428758893494343876235787197336859815584304772681530501549894280668734030077836205267683969512690557891442551926434058820497201411676151392641263812934746308620853305022455328019368038896794498216854258349916785149909042980995113935081864736166991405513037647296911944808770936843452778642306298247253529578318426444371515320509947273152565762750749216075413347422197490498580926310919540384971619117019974895091787155210832216053818798362320581456709081402130439403392222605061667159183568124727019332784290684286280515122973077527777005679756075320492046823114894122656643776613660405870126505217140003599285732358656328995758297773341133055398974304194160613731323299019396932209263923350567461459669757340607295425191742568675123875438242585359692248025904389033179756128081035291194367426284856868256892207293405523646526783055027796619426965770624444542857284952814909450618999894391376119421092740270729460008606723482923669213456979469152787110763904187361203231469495221896164123879582098790984552655053167954576375888547435021043808125500358550718709094215260160285014457487783976042269290771246386901729236733389721379847170149397952839921944706070938555885826091846618276214246565118313669844283486378308883831415770247976338113262777995815167423965846709523394222041667067616750264296844607425262787506110535336955841086536851653858362328223866722539585350605745949860870238246362271089197987977098045232412660023775898976412448987944542717920631263275250278047007960186289093720191131087969040887540037865711932654363341380643698662936489199606077157970802039129357367765849236347727817898616629103544235435899602107465266415257099974480978953695828534244123456835393474592172438965126216432221838555319808690135186677157763621751692520449543876898741762607434289211250656624788626980163823422075320393776446401317145559972775890009456535678712339515818365776636701952042044399658684128660899089004288331671923252364301805267242549346517814325588807656112986064505331933600925973041778869694464407721089776094324019791998871495432209361846428128669990675091552047797042706761975557855836518324027325314739304819935557743694452699948996921435136336571683640410859799970812030754614891892046917551393042704307171490964088202924267891806225432335036785294352160900223147496734153977920638363072894364724055090339668066314753735441877809839740941952132141203122907062805028447242069546701586268748338173522929398706223568921968013345619075128405851681200737676765624710962792825114653218406464582906093645745785476420848063522533069429468261833853493603834143112667235418650061223348095555553626435255873202506529467489863953004481390564948129804779366311175372339638329704142500152350004066192629677371653438419125182229241911662643883420912117898753539866169432466144498429687032399354982202879843722872023351504039515346704048218349395956125112044416053137948249618447085417879093914499589069734355270108940208355518508816021893232252549596106498385048834257843677198618766702808401456171384235736885972716355629731332695341952785555000034324993306059242423307194906940042180134925570374040258693698601238882895527546835916101009364243205712314148729317166555080267988499530795314712351038189635954144251158649918724382184196768459258393588178975230874739051650055544922151851181165648930353425586047573281645651827742355169949070501694682119911943101716052124023931895594224578219057437119791150998345957051570930055234922224469237125653654338428166382055790146124153109906023473080572368329314733630524983061960376471680448821890203008786233036505985443606925174864381718159187962781605209300444763514019997264484660721961250955535171880303020824360169232421584233284672537572679915991035307385037300065248946172249697196680518155804113577214924537910491128301223734685913098209519133494348702578442827952768720724203827881985263162796654077254494779429690303712700284400089776136390733748155062397081718959496294221173520574919707677858851724196354698043557941154404252130774183339596057442266944726185415352853192988486915114203547269584671805303200210719683590833265318081625669683437835621003085069752501613260773390965175940282205637171843515716536775621052134522284476499308822024379043984036546325611133768930529971721360331968615140623526947480948177140693935957507388900390053350492254661008221338863585276995906482577893381419483134024569211972780476980486622404205270055660044542526741768017764568263060542203312609497149470520287739742762301182807165964289757540709741942880455631965940828376329233536568138479718367355335325634506650752584304866330994449655731520995458182233227982251907660354981150339946642124222470139118865264802648619612628096072632753391561423112424890763498400262019396134101273927802033330097346818626990561436850958782690637402981958923794399364740207812868124728835744918064867858677638890513682607668877880961334196799119088564033966502190922299884953357037559097798102929460873887943750121283228054071789374254947834818778650485863567410720347446448812333824352433066125661085902093710690504469160433513575671302299732494072357814429717132793832152046090470644063181269635611819673164174101275011342019389936834253995254760408960166635320021002754888895144028436048432915702487675006194812582148703418568904507047163885116077595989054997774611185029148890914363607938266727954487206933172391757102149377003085812374960771939682246298756501736645377593891239020774941542618582998868798827811006249075747043931895658200370415672519711749913065775406098503292696965605931775953275986687872211934247778871680564873549898551132922278454014140362827944423604818644450088535896196044353263637875886916531870018501252485160611650195889336270168178648603018733296109192069276680578368159163502251648637358722984450610996913382082572743074238189686867302312782091870704649796280069777817245955955258007244993333755329087978771700973732582737010762940630091209303861613586810063097614025711911476029599196512732792704832076596191106022481189130721975218141682623915363892468314351145223437699981438453087368240900450366528107980860942367394824388304732520282526217439522881323437064596806695958268661741794326593057987232931495787936190659221505450896164526997870640752726794227859807838410365997436862002762362711422772995199326916841695669584110105224839074245055482742048331351275576410942228994309162990430412540590868459421757793513440608552779370898072287384668896543930653546911361067576277566193939042583273207482576328764116188114003161537544260500575936704586941444210119410647812658351726866862568164250972719025089159239888828930120661349605346982477600472196322054061483664316061456700317907747212643841018627429987396774668222426874731172192726010094959594016915143736228142743376533913992045798501078085898858393603907310369336695003624560811566857996291161921510818975828964787035714324932011529120874779279462058682024536925903893139569231901958421661597085261695742806850655327982544572637157477315659715820351248433425297089261844996311268480086973125796414319000274782125941721859295601063138660430713053913706689529879145601932329186584373982067974268480873927517835137565805599315485650536023502683176612953332282274994421548244452320109304595833596621650085657575159816519579329568663306601211924591852094362205769660611365991341152303393401579334549298801684165265201837193484152258640022045922230675289730253588242140788063428802961296118137215448940252531141499694699338668920176967623210140813922216590124800952615086013939596823397207591149983305098091686657846471488380971037670882639738843036643206626906986598081760335666779608928764126651939866131537748302199143550853214211681621630945129910864379675345298954308398421135442653403713890477468282651672371010234845164329308090861755539126410424917994223827279066831486850490860381855482138094229114275315483661605090579872625571872810803856522766006480500554170336372242252589723450308717006755088384150784723431128018836465483920289372395830467236049844282498151637230818805904000962433793536319746284717308295464595827809914099811350452360954516727697352412053617185988508731756798962055040192091537695440054990951785590813469134356281264307475342359981631857067719896941946829150566806261975850121797497974909845405712042443297917372004088241718057923248396825927756997010875644114503298632078061472983515787664051095253553283875014816536368443081986714678725033465741989289649780267222485413963939246126113937181086536921441487331129839119369853624810130556470700699948499927055147353908424497108323620024190877477851117303155341019394730129007250885048168750129362986756001647740719443317710077867158774728216619576111276965869431992887521216752930158906097055837546142532246851975953383600602262527324636943702887686710721209822811585878703216287126862858397224365727552383479554429437461184645340946835727730418528332282553718850573239041162671878872987389351598754858623609039420358549886222884278660381042284334762337646006740154833596419413052706568708359336304732499575790992823863635743963146434626431359083063168698755330748145482699591876616910719362705769823287736688795870827952631246430432411565417712392747748750038247175572105407065057008627827089002327683191271222002620746325126254280004222391217973794855387754922727164614419496626929918164110331711396829743555583733378940893585570274655844590341397049958995672973082751693171181185424756883837897510457717599016372727438658873058005646089541095349522680879066930646404646495091833855214626442498998146603949672339705699357839848735097633504232684876524033624087126203882246151433918301107978300883516868486584859216175614727417311161432202702235648443327971167948788753612516017823421636727158229105845868711019727931261365214007850888528808389320190743942585258066448338869459977312954870834023036021881846544044468574658758452968852557393589112228850689182287462340218374808395410489156810880190789622006846766959288262253237079965482988439350196113186468913818332535090715403904657374431825459751147653682783718551653066906604837135535024793782199387859689279702788966745340643096096204818813540252495817516989565153979368334131471894170365290808214741805922105865177168352851236176174143731887307726264016068027817242964267249050927275131736372589587515855247922943757871144610266677079748977193577467288462976945939495316040851431075903872561480834131777644454020209668347037974830566513442014559809093134624981778116108627460001157495055315077953001635894933253596477602635511994423116826350933724240739385807765943151245439119231174564951716031601941346906737849245722328792254554294231784875879903353757591117894496669962484166963102315829247173659908124191292740962618646342098837556342006730013499331010110969163420200127174215600481520509349431664998560341151021051588462595354893168134746771951154063579416991899445405154361980717943824729581680394620360316884995521838432715418494780091641263760910948556671989030717000832015785702153184484904041465315169951953395637453595240098876892381244838997395486340026731850555833036796376822791741614117405776632699028469091990875029977963868569152592100654403692278088094898199846096912656534303550695623284127039720594996007637475853560387365847701881724952145932250862344941667255052129045612655212584369160017613805174720284624545763590723180697833322723876392397743509125298450257701402404140940318118044768342702107391591531726341468757196705922889292308181359888673237974449382336041893472075746696085369322868139043238795710753461205362853436388085155076061151708018106487558883420977194624272949579296830676952992486403760945675825560937334569901693845626675978306524136481976415971485782251765314056579215914135408954170176959819070095324661537977846772307165411834721243880946588499788389775735838223159420338402469570714409998423779144216973457812210521186772762537275499362327668690144982314274767558221750973098012257033314794318426948240026763342210278619083900498544240319128394308003632303580918379756052746586499641454085196110774396139161042261258843501508498021191301103034256262187594640822398882242358137797938411616148055208921793043783551983676574952408654495182052804867176480925903802038646783036817100646842622225273315935973359396481751337102180107808198411767018385846769331061942451608167662018861117680966718084527885451107385905095633237096086993927720100675173057099134942532271926380580161237979559232812550106596572084079179336318991533916761965009516144762032679954692156157785216674711628774910626805214327346365498755876387204933384867709646540459431701458463925637646165102029259259550794298172765927735976333913606595272530343090678573503106570527951677584397176574915230896871371292409521818612585849803414265765070171213886139045023523360054892386022684353059828433925745361403267006463310633588673920981111277940136813891472476798188961060620909181967486318074326965244575766055542605969066461173772363149334851587609105138472178502178631620345247235763836810493490384284913593994380262010333184561813587852329789721767048313132874693183296438479801291282975181048221267655364709159841514742650140609860381554891716155820518706090995127926984314092477910365319539451284872829858950749838364715243483303050052546146312337781219390667429153134724279333879306936798517173170630617756184826211639138659288466269581694464362088895154130897821271849287857845879297032537982668220892265822335772141017128001616470673992761925579918077832170540204457967604809490181838381550032755544656195790883934050543704807698119064430075915850623620413883268818575613462440496562103723344827154788243001266824827922427887998701642085298245344862033690160448146721787439612201750728537048362485910644920958511436050273812026272381429768751470654430792498686074860732436071874137581490136950198878857846079517656033225429842995068872583322291318428161389521812813219564334074743876721564588376168488008559293004367360616938500745587009576522757234714283818905299434248616309996418434880888562324592697545484397565956577183628161660477213629350180297776325346675502717854039929365252798672597106820059139231418847597016773792560273177925312957820965907157027148562139093211532570252033532853611180733046886108883205271730275913417794338093451000611381434242448987426279801637309758430665313236072635199956677485603811277121712631191220182950006530877904724661022623831087268115024311887061133858032171426124697933861490492016393499058512287112167163126682760986795713516334549295451363381844632423652456440169980869060718640014079309773141903315021658614412119578898453588759785257324059309126476493107472817847095436269135515864243283166316560593273068797197655483690936198846966866968659399688928937836028247736799269430515411728327853207761908578336559199002375196478100618137825511874973421092826196257131653396927678268305172392862243242136114328345092709475751669749510142829873781077623810659392298173942011147536117198184520928694762311689525509305903865355657048014773843466881006846637189346129433620435978475467516528937635490960778685277653919207711533120955927688997519590112210313551575370214712827067156110833590539640152512346553453712647787253407644551632065500110391973798296929213309947409703419188201137626238563564933567694566194181564144410429875357975449013265515449791257441197461240127061151192452431382100849691721538828881884367444554715544315141448444248679674497455553496842188168592192863215707509851000591715572669235710967468507333594217660968538035375518825692626873438745977902865613305536277995082370426356668731411813019820109401615446523519694247527246850535257877215035161114163765011022949501373033470812037123534437224813500420026716539220729538100182470137767570060050631475260907840322366357570996352426744643419901526338841229685209671601053779630303670256411693364219635255327892272976731757184365643583983399926983217974179745771776560386518853545206825060092372753575877958275820813894216841138776091486167787361493044113426743877138714629230128312296366314907958950583609141888820563563904386414135428321972940693195569126445915890905965662942456224596953635283251937056578377105327291963460284632021830160358403341657879784848201773702653668230780576413900440720945571508118805252225169669404173379086018094602971585171057992882096110395279074363328851016498646616436776479753621367012632445927389679456261950363112462395923742129587714221214736644337587551151801217600597195643670552130727265421234811750129203643149186685417071714098735862351836530881939558355818516029991344253157600988843689218813122846223937768420980327277961517028842195410057870406063986352526758345993977965443388949853308129743836044206542067027314694044884786740835461913083224073319473039311577721547429377782032267746869714020794543815221385489700027433982484730627139859945395453817446017310810711706359128727806505855892278690518012140131061329777108873643398720545034977231021014936472379012626952413705771701191429648955203493225527685324375363323402451982441352130967094806758864853899027416556944781415343695420669695620060447746124804222347303552450185188247356956274993692226076175652376323577494064782465341411153167382191912035086450112665413954308309006951433691829978964840281917473820507132088121752433831615911258976533939429927857111821939543158177689679104252861786083308445373042479298233931447080033040723827740993226826946412486668127912646890985511218817641829275342814013205469516723507294864566978686855881349579349707100117099865532826339523064128549227257098634976540092976400680505210183736429136139252754548871939286028897533152546911013902968114527858953319921618355226853002011571127600922456430578778947467775038744038129855414691526292109448193952721024912242485526105631960130377475476004531562127808779537897662425358338787218203695402588058957483266891808625665253584016190540998748492819260281019877540588331453504701319996403354085080074481633882528021408062793206029781984752448320150215406163990647932652102217139664727067717640238335036227090524693423205518002775453110146571680428504608676388205765520014031092651334344942890540208148378032821622288133454448702955717321304935747774887032085269678196338750595789108351388857931412245177454938312791594406615146033394703609322483408559750096085236607253519373827877716615739339069609199946744185972344873096622354384043876663019511834427238905435229915189835660548722518741510277331194815226963574624771739543781046765004450518114937808924887947506608039835833401667899226055513506519633872026997290452461731336820597593428732491434432051599257339140340747134551623269432300843331576649224734874938928378918033466262090663490123024918214494115691392539235753386007180235213855028888523574325971706023106372357436119405023853345656670495009499159610532182644219844759567361043428611157489468192487257095399771242537442710397433386468492234004619335175488642087325807164923028449005136076540939302167450181165241646770967515771421121476974815321376858120556845238211150326892357819245287153499785010651013836472246453650496859302648796070039377477866034699649646969693087601993060681185632950712034558775009149406764312305058539176883982185884793029792807172662622156383222867693819555917424223634595255647593249496171609955436388805390079606309406623292729112986971953613898251379517205684614692011317940750103894985595264312985338334619066784666601696077389858363454001603378379423972078535350128513280791766670960580073965953645889608281642291178204809320678846192260397497153291000908798815390794708739655173975714223533413157268581986968384635087170930903610512521397329864799460107838672716856784127998366913138103549157392349811549238725280503683004500460630096266861798611017298414724764249547981299521238361125198706612102035792220349577302504761554223764048195718268732284185019440192737970175413229774384969038959749607618870721683784232808777566721382876611089989581276840829544461803587565849667910773583997223202630612455590013227530047600322159540792826974071215216218574172951057443249023325665415085852491351727213186542728992325614233644410970468794946689931705732921658804580618545816306714833436207074449383586780289722458484661394030654489832658928294053235143341743920157679326808504331210673965301688734475367533497909883970158496974842922005923514587159955054011308754811083107159045771889466952606905021733331964008446483112307430733173427622982717877088598588882023231419582875835925601473950522202006321009820632384202587016928037008352943128258804443552249888942921816831483082760592871492050890732285284453862094747612190524237595418411542333336521815118023235874888103146185376621835135617867642233110572796387134017110728544707813566881563873198225116388856056107371495653300349200160154102826528744532399043318690309029281156564292239146922241055272770356944838884348688568010220238108254431300109603695562021154557895021256439927547222227331423715503123746349391212158837706513050097543750508976656420282380009054818006170890119823504813702303926768449490641776295947416399339040610651645538822597575907974395310657857013359287416603492880487702443772674309156562173449815868700631925108755646558432057928599283864890112928215830819909121913386341333928630307523007076480147346477185955140217792312228268672153230714812605886930621915873190381110369143413986662516574634662512378792933713421390378686081312105757096902946754504099522984910594907335475810856574573425108536905154703850184694428019351642898842505149690236623897855228444678555791395545464941629654186904970729677078809809027128235018791474302477922802107742820370685889872042228680993861964047645403278559831077345364543720207298105705798211289769517811991687667884666614766263536766211125923349246273642918471613944413387416040404653710686494383306931516621268294691306466054500002821879402902011199825287412485164023287036583415875053489181233123135960362339279345214668177884878945069207609166855451488657058724628925923765515323748442604534811108076417042222625459436343157795831636277102792410328436563048420330700646488336015995888532185044394106032821668436486044207651753542304634478150434391047394282457435435669359526942961271485647723313509345633350469007506003324147123276018415554929717347756805610825710504226017993789621176256254901756331935388485520183730315762284264344735322898333996135842905432833886187664664909651232807030525785236974896303984201806660444835201507507533610412538041417774517289191947314828258431406151376855272951188786739961938509881162452370258725277377911866571664448100924480155087584978283920618275720138662615523430521316544008675707718496232287900853768192771788330901830833869439367753942056796667454707385681687894434956549884036188623666866506133924225362266905159397344684085678681603581008756648352589786262730649037048886655423564515527106350568873853502878192784691410610835583057823097760967578761450990715071180810328088171783758733867416124658993233049177374767960906664764102435352694312649652541669229525825785532980634730668294890310856707711883698740561067347842557039489055123498161531592587466537994002972897944379181545806711378957346090711719572066950467226447174854486712661944154915284429481673160115910208476686810660875816861781546997953954455673717571370106638012555047671575961182268065327429950373453613136848889727403322243119473993902122760431007955937360703629908406233561599997115818150793987525419905897962499025021938627457764231362036831278290939133913129304475713160108941913419646013300992196449482428822515763493208128291634683501632299327773703413362315850124424348189081984688009689259925035241465917264814786192267098193966327948707557601838477903067924676170624166704660219009930346327272663079731353164568789697505418800757129407200678682291016451877473880822803985877031303561338533632135901978762028889408011329594284564903841347070840292613305840819818873964135759066729683624567620738178213005301419021242605135332280784314115471314289833766937743474102952769944730056417186401360313703756205681462345027520673712007046826391877453927184737752611120680937518965353421580448457104643782691448577047977976469306686988205534554510227830877067115260939167539910575268785669405366620253806861679212547906836784576972470260652514751369391991050907986096816094273360198708334072184625776344291266140663358169727570617131918658748891548799963388995098519984904318688460504989989360529803201904505488259160295169124416336573125842911021824849698784316206210022350407833206750100548202159216458981154769317041015799107071469693784712602686304603653237268516228953777968036559693446790852089251987979170708175848998826347868133088134062775556909755708616743297138835474761532527519215275568379608324296271367924738851352652739063256978681936550517428288403998573832540575891012367528215355970782589719535189326208555834381680778174204791813233789768849824602583039648703083677025713338985025715991411427754410318642135961563448375781439102993673206688314385946683163329397958550686502497797199312723920761245501699165611287073977922461136626452579465979960674402066185447198768437627317223470401336905566390310708640531764427823383333628126318179203443997972413577292028139030549196320863751391643602658511193441899800266367152074739181057013281970045539147319551434150411968780062237029743073055082452141914687122233338708824793262282929182927618088624116928312703967838692738305456300287785405093065166836902686165287216052539094891104346979265434365097667268029630642041836905070865575471215650134960437637847970174800380898643537286269337754628692780918091693206482593158518505458650784890191530453077829054515820993897286473421081993074501914664172864729104664688586845707699241641125524789144856603763981328909567052382281532342772854934090825487293387080393121815511804911344124858700190505999931767001665827096293171581092582519214894059368064336762091456439139370384376505205519368192497061219535320936207214372430154367141620656011840580976890715502828464667208316286263962783505728328121939638937509603508147997368925926643703478738684610423683671404759110676385620538735457381404261198851686704167695983284594975476177058322529457266684650783012383275070993426652690474084301055797955151982948701914841330539249955048026266590652610389418783506926174551485365037966969087970979450677845016320776271556607378411740547626701755278158968978545129053989120645700330155948314921847159407969397745608390247359113113418560128397966623563120324600749270647055078533431897262997181763321400953624039098806580287145504852268789964775221870073364616446775169776079369602036624811366513479718283524725775350425237923549943238161538036935935770231006907528952438084428027509386398272867855629714420926154157960382700171969110032927603885477099777523733195919242351690247815774274321598405237240864560589518111035088773731121025789697905600381605501732054759106535630347396096556539074206548291940343493829489053869395394725975875238042887944720488721564066076145693621906930273151515888316940115357957448097451275748420100365518102747270103484895733098421086623303288408601633897063220275846053394071525492102674939243354382795503727528372086623581784146589301858100170712499633160940047990466911231719464589730895853545426374867126019891848172013100251928574728078976184934568586711670656723276698544251912608821376539510409859901918541914344491539431643190159297364302685305320166080385879477337148720120632029447433150339546275229805491279841644314696617560103883126115476333612357482628971823503318231977893013552959498294552663284088580530121965148390093719164576729684145816227410688425709193338792196807101966523069769722934228374321432684804709907775902012522050315147090380247009279510456646085203537279870282595694058177446996916073860002125116189678338666046830770089037169377245415590676974862158065683006927323345801385892715447513825811189941254273511440765764560137888594407666370780779925518666583180963701138544112338234829573389785660642688410175149344319232831146877893101910186619175897186165787263790359225419248340604452359921671131712499537469454737034817058263805230590397169136840655758660088876500608720554124565676717386771684056610132203081532843970235712691211531174947934632975930457102748762848806606173431472864210013743753059998684048677964025578297414702891731188908784558517479054607099353530345665354653363101649371731772644517826443941927368773964309054952652111294140710677133417859786514943026615037002737164761837034944426307976989937825667663706162909994904874253723556638389683646900167884645071221754861655801008490515308000990023171320018176058187387449577863379245685650069806081514874210027116306984731625945476574941656068969193867615224572884719878821725962232075253763826778482900735085427877415477831365903054557428958604200350455107988214375698353366974013286931678381717381918153243034037024372318320463979383428922790746921265411071893339561386626264596244485463748027250120329881116301027037470891234153706667367491877430738952183348518573365507903451903738790093305367730499058332467691381117564786629213151418738735993129801796089044231043852344420231027217931362086983857204918111250051756875472582320784036717772909938446906255967776522782282625991559656026649472235232881184389414966029621214716961550090984708676683231911629212040492791389322221811593868713840703426394529038913459294016830591235886097227852381056963810262974332246950232845690212751276800531568886974573060319103782258351931474394676628187117132662908655117185485037811875898575513499523167596771633300547843990053028475098791053866017112954872522360451050323972791729521787768990486146053386112006711798102224444029737724285684030358993074424836598846936879507684738198598276859449055756627100020386171212203486304700040110771350871192962716584128939414416616256401075069618237103727347017783687980773927559718259973304183682432278604191288083499796311311295157035855347813984899569415135205193311661131167712916910238080276074644884408603697363275521648491968198484680013649151232342842057179546782733581273152013058310843653285128239149720167470075154142347146134848129270717839568980143415895172659852715586469701913004857214767912848780065874199661374142349591210255964216714686681415846347385220688181926654860537509665622513877626850808360640090473576186278805036779480434515264718220661144331625958536261068061911784485568949028321799197159636588848623265008352316930739179107357228996688893274446118981437332167068377565949484840020068490208412873899987176902341872734021003967372227495081536001729907898142276342988977710558411173709169320191903057172299695173278124252789204159311487929210591304240795063574920699927899722121393662936660345818291855387058094212305009342890235016699193846894930899661061300709443278354660045216476278754371965864189230726042348285762675006749732617295378852326922127841423319644851905192665063409170564851250222055572626384523574010024891061285782525133279721832308296165276466724624140902342204279994849080323462414258733115283224253350920702838072581958190171708496782726635949229325497998930302319154877363744255094691964339235496594027419117255310817755594681423032623520295092263165960725427175008407069145323467923882533787549568096097934699318982993387103476767110271237410877309149518287487421773678794976979874748930716110033373546824689360043524308221375090499120624737061027925574241729289928122496196055862162116313324476043812143506726376241017164844744196281703317571724801231139809534014468515590372894020435761192042794116115120830846582851997252764192914680696093298314154020655066577944980234307538209996010127581514064656973032465131936013943357900903628191619359344213727240693943211289048818344307791045675416404131091318392985044585753211879518411118790210484229615664167102754316124919998106257379897003478169197080443701779679477205751144997059620244162702364278053165099097289371040718939987566273763541150692665980937028165403711960495952189454901763012187157826992586000009298342000358391630904563168042973586031242242010686095063609490500392768895726993062609420419819719690417011330486342116568528140899896147288909143268288913967461114939856353696762514143752210254786702138466051428218636780928438543879185533265964364303386300833816648053678138810696350603635563238058769537101548954496000437310749746671095360852889807007129197805918253716444433275406233650587577160771171793056541853951378347152628023422330474564442076700905760328574656047711738830048644740334307854306406395213230008573809307542712754229225865312744946860489408359034540453989179022511092234451617135410680178737266679438608013025390216617154773185648890660185388925241733931093279760540941781212914156076828701935572473522541794460665356319613329313510703344780085903993280088773202819134564527830926765701956754181167840455060587255779525287934229245636893427936095302231325817396083304876042116440465928061162441623908063110787793413964036129468684740197956032899554311158511205948158377543833818440078434266583602737614049920960701804886333086127234679474960269796968102698557422697613953689489786623515093977547336661733741435523595745883764318240887073034493421138787338065750187035521298252254839137438346613478835620256371465972981393689291904866984086321907966898027307359162568581276455782912926761561530192536426670957077571872708956642661443362061214660811966939907411211087794197062629327499683397118673711791294486898078814831715560827236554396703393229700613229418067384395631329219707256725896467542924128698631439244459063663206194332451197659701930166858195510001349928933038582806524591141503101226328116468110990528072370893822772085639256702023906273079756361206302767153520676295330677888258591703389874448271290719223996924263987323426283556161956586256843074729266616850467758420639831047720791145268364144523007403127313208072453681883437397251973962188303213610237510209916706070590290809195159614223032888107232563137801074523846398673861217638958615676669410226299083236483591475282935471057159585027605635824156267189260511466038242166046536477105194983635496509735588758137086327248091435444469100293953229812323176879008005703224730754725233805018887917544738159455778589442842235135115448923970867408265144780421185563468174972719170559887146902077146040408875431674951839972691868075725167364150778420805489007007346385899331504643743999195057427219707355579318311245799386471976946192904983562248621370942932513302905999386798178285613579731032907760467661816988985101277543155885227799288304122094576793060878109087643966698837489806510527927471718477577670851261633132643820126150428913549286187022647841057719157016156024790471811344510624156866386338548552506826908806011202920980011683876375341792854165503656679381114972703527643400207997544912448682101226857503887707997591586539343719681170446252624026201099055039653465749551007516864122210979463924549930909255021710606426524949572351608256445557782141873409797364083840469297340530585101766505345638991969214522483819088585803425329839815738779619150812131496164477494302209151002349037578398338218980897478542111868431760830633519482746762917369311186143934773747204817662969498755864785720728129900395353848024269559232184363787693705028873584710607430162715206310082549731080591233384775167602047162071444028301480121472049056480706837845925304221073849626990653373232067170597519962044711836493642789994668206029298791479229307513637835765273853565335663106055596584845110477118554496103220123831091387600525212543766805952934459290725814036655998149771362887966664776777235731292775824368690795565630861454941697895355441571762754327583114975248930457538217974999128965675419268226753631257872028633353645440511790447776876930705742352859875563467928699666758093075752766982201489988806242971583837692825156088978153220601576928665757665531658273474531878441862871790609297714048026972052495090370566365918344788170249171117192506415864815312263501628882768515645772715930669183621557975764645729467364108633119497108118476191540968828649800556529914669449504383211192111851258158282560890512849684017108970147585071163619714085151994585468558061581910312776820714358949819436263967297753621926999300856831842396660527707028802373494776733024659562306074755994477895333121537630263702735720617661807191799956614551526777194878948254610300051149518383683935994371650593426817317861674547919956457118449268312411456413178614608255979769113721994128692676503683400252219359118089489264591447442436050771212957134661528609405356018574041150139729634487793965090237708358347247965718399891069066203739668380141915116276073409662345810761000608848323829594000978355522699103231028030235641940860526448350864112292556808741738850429374064344413772874496266174738149278526675352767928597078594627799398518668884869218756560091546149189582705604727549124344195380554649174199872715529744780868156211315856438854311386019508504988654971524719884728187174449078198858678838383255341538297879919912363234741130724600881505005769042802238147830001761345353277143424113531383728659575604101551052828660197742170190267407636873755830610406346986316233171233632647520900404956415385393302932767200922603262829791359825451725925806824911861637995178163594604268807544789880743588631713954661011350668374451354991879885189645009133873102503870128823611186437018119709715098373983745123598121029221671777657673124020178543695337133696240507294160930728299103408857302017085603089258705573064872233386047831200731759239023613187464930493025880726297573723301160357784402830148199708464250404817260453417047621890553462704561256596201227362533954219655484568312170804328721889661874396598607853808635004161462274486167715032968187542867283287459375020171307540685060324284558312597709129073161149915725499645410670651131856188996731604712886011829998483909556664677380332769288449670479483208764098103225719163582889560046487604971241799118490259949186480275960845793919334251350180085099583477658908634647667808123804991109880608356370016763082112477064476845256557248229990014887354731181888084948001483319025865572916534440876205088382121126755751081254435359151108088243472992897269236239812064035308723412587033061559423552974358494358125680579084413371721141264171971561662046047195422571602726239207763750161920268452371005395347592140747676103834850615231767229147557901009470519551938880181727273149386559751398736140233198027813115889596403468579499921181624095771299291457780506808959150189115106678258859144906009434889819280480389612261575740982878623100012023173544604301425965889353566945212915552628611036895769669867544348217948770213220291335503859197800130667176387489177516107968285154174916970031248118742158488868869614088559416883310774947593420689773236607470570843836585865123130790512215531050321024615430120248180971108785657099519463416326782511653777836479947680999607441292286715322063189449383898024346881172073988331590292581319496572203970090297247942462173237898849774241514656945760104668226702518512999695170536702127165253527423801508182899225688412038957811527504593981408917628421764517628560834222843502086323022352985868072678567058986356485731823092583094058222799487662361522046487756237562045709330436765399683276440088938827762354112554104647409743614414709629360446001716228897250598378524757869688283248959018962963464777633466271491590735386667925012471628826850395588010751994821467096753439536133657855999872138400178803565512581837806879975480286264948082021442684019572676691699125550777144972289745163998890296228792372619545537304984267460373308061306722779624764454740041150144303486746464568739895752709352242509100898413176126468298717192318237337339901372160452223998110923848123699496698014258660317060962126920877212381530816078124307553134868613711717662645841865865134174712776235621314029538265670041422176949860011108958296750693437381599585992091808789102767900596597198628482945605322426582188664378622931117322076506196386904355046260590589827909088154040981729525050751560693940231518645967002086196460770611396441545783718535455283902990407429751591101433997037843033294550390464238833671210348283284292951210307020050363224904613612439504407838403538843078319694620767284361303605810229616580641122162566870753979033665991980346849310596150621443960526532505150925967459579940275086684362663661137537367537047304615259615688023529677884881486212133563108372016868173668366791784009184367883104323022162964901805811042314613489566218600987806632226906157485227318005803894993232658145694461165889425895739008688642935548550499956895492522042917515838899734043420978231865614344258488668871685891248774772753574158055207736010612794214911858268724638351275942738047678099321016792864066671259542505957158701209402529373380066224963425627419723952703069785136915157882445580862595251202959040025679155016595012448728034964434565220251542012638996905953785980302195024400101977638661338702344414320173579854058294917448731322745039942042048306057976187562062966218783150869280924825987770354262347823683768019869582945071719918214339744962616565797206423527583619176427607899383760457129505527041675756019726511138941061109014953921348171116146782548884903596681333125105923049391070850578014505279094589842376063064813449899605248513165228387216555307567586545101879087834326882525743973622456731297586964476508552576527099712945843989809552591484193321312479741943341608301496765808254385038368702629715958205047967354588868889258717729555151649165764984291089356610687441388830104932890925949367784807692514213406693762209662331785764531653061610977681735566662987231098307163146751316374203383352137413456656791795212850986680423206517653916431810676866373675723217980374068128644808161732404717880587690462655948856177160698043239169799353439448975299749708535403409119104853046088503094057680005981834886057145058833331998871189659095324073450176132030259819060566044986902813051259110765155853392598476324288195504809758135005551012674439248613459772590634974394873167888011902702219261093183516796719390820973101129395518086492569842646335536217252319455677946557747164250083084647582222557475272313412589651436532563562664470339860640054075616717853719014380037518058543986492344210523351317969562405769605378204394029292619585733158592434685790074523779089705849949185055934077376073071124964493903242764911633965860185108449912790776262634802222550928225223613905257989970118038195610225218306293179123237148784095801226631798940702494035599464113531052828841416589986102875568204614747199121027907409889174672395870762747639425149426523485406530190105957975120980665002236937055149714711612389851356303145277923303787866621516937069119829647380811561450899822466057584001703412037875728434845673641991904807700241908788994755361752364282884431133748698069390908050961941458516701461170488585921555826764592877607278408921746431955115429378775987810999166550255144761716768349947453934460201802676077139604801624645651027791562007798215435383053005662469499451703917249846520256730251807679406370156003086741206238162881449404520248673806002764480459837932986754261100163094143915622006394857674248485846194624363132424683921924699686211829897194719530117370893824178768485227368319257365952834836628080212525728601910460019801734058568379418918582665253969270071219778719524544552994833514837780230204378022551303302572875360521396374225934791088407117443785967338940689316712904272488778059900190884082003632086266273969749256658887353105187998508414387011250669440438934479113305537242786183529466611058829538327313940085578828751329142056705139576063566067944234999115955133586226787215930048543028730847529338224131380831674614220577079985876916270650801940898902896552342950164817229036921659159410892607650503779825373642088148406870022168275967199934310301436662779359272249912369188654029094804030855034959335683898823990111540815365155433516704407484080706722444123573950683718249065924363101422448537692457764757375043928608966419288296081174873685596004475200348320931327655470343313972186843918345052411760055216658707297373999162980681192300901845189241996087421168873620758292017160473496027853089201287935061062927952752219248465961387152255880487075346641486354144702550186533592680941278579675232189005086400585316629313160503178350626609845298773516871824229916956599514091712935885996158082531898445377976695786990393809580407677984388926019678078119508139549647188747811588300227470259574679363955740658390833691309287230740680467079741988902758436930870860871264852492319526022816285908011853659539129754091648076588420524428996486131697723604302584076848544381023454536717503123773471517778689780292749422923701231488483056315801660736516346994580295502549981309623763969166039908718514909877822477178595565650114420931410772202922266496508508863550651847146851865997286835298292308876644425826781047051916356478011904986375485286697398289127040825901137342318248477709427238658074273492889188822659845084374460922061653844153265230805331504349394905294858167171018060371891714994562827108054530449688545224043130983621142101356940739647595598433138496343606087298200748764518724742422902357902421874039630564726123790445007684941013190055246729010698330636164123704474256700552711502786016550513409244451551141526586883102235858097061986152009369178275279841071120963423870030916906439156750787518725046214281459279019988665011012449240349987000099181781083262501067013585698932383223129018560463783102205955865280603695285392394107817652197291840879280286649283029411866521803338295963886528771875568497654705363882187949413843983617861732632450118383800306626668626019215421084178491083187048034290351663305669072006493054153004637716534580670621799103467753151399980297210001339862260435975836040777006908064624013857440849548180408461145454116511375049079577145003273127034018846984207510813131380293022705884133479484561990686318129487912624900977005674445175641232829276566051625010579976611402034344028191214006983170787467290686249900973854322076011420141981467393440903850077594053243470539617093637160034838317393838627085780950401995076069650347622766257177634943842630112922739094664061782822591186776476073310613622584282626545437479520500435593390206520134917966826266592810595067066069449034155261478823537116092175211822819077339572864814263649573603465183784817813121494408965851641965037012690830122341047596150574292827418145217727312489459776374342091553210389723357389262058048818694718380349225088387853427901894919140192651515567596107977610434516696728489691537568841033089593014927569477092728501462150702940869677492830806837821073599743800376480449750418274743707764631868885280846004102467581720882083976335459293091138278690738776322609865665434512502599709699315210871342055843003863122009192270550821574822855033512458564600187136642561648349308204355236511553301086300358348656871665919203629033878295401220234106712307401087275536885143926844415662053954148135663893572564107197815314703404897056345215982796014400355636505301742467969136080781368429787817931565968719469772990612851511770238042440697609800787791028736756967050456058680768403169368970391824077886723478510946723649247379228686893400895908612317055147682017596458026789349430903773698590216291901912145306290033994126054443120193212004638339839370785287825608044248526490898160620356353584248066563595646927896526579324844212050071319740377583140368563439530425546993924851476092438696906661593891982170613321457014341027885795753075454477595438439949312114987355314206700430670329990120681148245319955986150275972921579015628472279470019159058560687852585024039563183853246368466816860702101488603383327896426983185280249724119445332578789934748912290098597245864433834425599323839033749838663514672767173023741884093401116773037647945675526960776980403821735571341113427000492531923948950589494413234707489862140618598396137289586861346097781773184544713806113447404453904998983000499993895462180586420800376872246371874307611517707206284221580563496693609812631019527219857755115565920671151640525212844888034481490943860490169255597903926517079850109745448126394358983199128535927748017585252097175316953679813008525949295335328843813146443452763087685213965738483788619277738958982895542584700785548780835618692064477655196140673988544793486378893646195371670100866485127401953760289334101605765754582509851069860200433784836843819910102659949017549451506485384145554061341374280261898676591554703963347526433633866787587849158390915517129727710493801724277124555936956452774381772220000376390397643592415786336368455952026101502877660079567267176575569609637255009893283711936228558693638467435393249216384604148574937215845912119749074342169159878030393024889586084036546525741343211773887570826707978490019385357021254720393241795353748218873142179688332097322589978626016743531053897729320548933441800763462113995927540636960836141195434730850065495353663266323040884723042259316413444435518365469431151476726781549812982030197620205985596426310553179727896482837719337965461011736299892171396394674376873680668807064843754743342819617581072193408559330929768682878333834187778197374990437921100107146872109423361393818516365584921573305675688049488270266153634929581198328367368935616179591313802526358788296433946412244905058814500479732801662490794406892967747393096433380696803662596122388545901311850606428627834908233112070234903876150824048031006528191577370032685560898293310539387626944751651547013151367325384370856067578171948910442595422890509946596903908198933643344854639065262970791008838885642854834303658080972020082931247912357887378953155142524161909402105671889270074324978664011244886402991027623241504371438566626297370977052239040356207301253096866880812600927909794036780923966847378832964067051696818489430357216989561124357486576852874690115164468714566140762932274228958022816632875168907610147020431508370384633130731456744735730021861368125580842907644069060597910418870576955034166884932658888359614964953348322491355004933076472411371207157528880965230968962329592316026800161529275007473444682108687132323883269457327664358586970400578960213932848986583904115382058538696523943782531139984313921424598463863015936733861027939175671978390721425979210883622486594226414652615281091822585528781005684097187405457173629831630766841712659954802879765791900021852407085815919883565904861262566916103030925734888507332521165472189168986282684786516820960233928261949667242670063199623119122036203827073419182500372058853596356744591527715567206324565288424797580568674720800883949851920107283024242268182686594723240178819459933294103599438947957054474660099319201039051661084068368237908387874804150920880511103829131493166403748491341905671340646384673202510187299209480768174461974001354813350343655102180502804525317796033550507356881764122579568443034226320497232109721029402872770409256284847208745255838835391395116029074589092184239693228836870131335453308376808514762057900533655915894658371746492959719016160502315148215353250605732140061275986488591121615432261719394201496819742850261880859390341814257570120954863393444463536397377200091012121702449553605656964072777366036915282264011086891035142433239497622887369043990720511124484696275141171068373982852723715576556569049692894457078255864545537161319223040170575017057004678431845300464967657030902468774329914970087665545578857294779129983594567750197654182042773218758914343720093764857167362694230997747161175962202286441999973708711282939641811150724014469524329959937680199578006019981814851465494831094765361341771228645294259742726739358615628695321611637205309702419357359650519437545489642896346302168760266922648616987976735983756627007559120934152238546766974767168242556790142785890568054645271575626587952840023081220822959280960419759976001296701958149832341933909047801311718398844516302825099588443335622187828791832798886504611573318777092652605690630305318602330199578587843838370197497807855991616778666669645160066175608921377423266080914309261920677254181745071912414448022267610251415803235230478181601764658093036421866651791256297514686776092808725028469361601103282017283376517794735883949958743204841860856454662904594549910437595192677164810813654220742917729511698427723040096607853563230191251908144621467283089247854568821956011671747476146482928838194974877476941740686013217298244441795834697279583942335325042239546545799507044935488277851484501062819165976024134111115280576528538196038210271486378704437234701485368839022293940104644234534618483846627126514653329283295502431622198888765355995702919554386084085885923297621632117246210597842480545620256828931790892400107913298674203103504231921299430329371572214067050478989432553112451178317629725122672865922141067376881287320966095003756698883320615790064783117507833451800481781475013061751850571213963795760425228531792741101482318953914813187421082642194513110087298981966475810602747397763862246846885019080270192342552515059775061011010276534343801978013192480650267189778407160734812644928846188269315164600115144106305998780718032581510840775951978161056229185235277273316051394887925839132070961427973560981728467815478687352036249664016603453538566265892017168386916884604956776108550132526969396260615806485771210532806542128566121129385836092869901433795260749431519164183580979492204532187276985721728461504444355833017052316342997217368787758173283224925464912538458344355670726727994891902972556332217459811918833556368323150088422027068719345715070951423589586297853726608160447148502360832889981618880865746916118439988260456743941011055908774412706843625847132861571991139963708203182620515040348236190735784345844142885684110334736548253564414209493123473732633089119746711280901183014355036425265082927401451040588862255640414254621456771118330649097090524371880512542163150186521723998451558059893764227247737866077633033718494536128658656135076927266772081544955619890158704274231794446568610454997878760821702198803465047551387852286631325719083592160951175997122685297478862134469424335571698215843265943946478507051289480910691146132924155896676253627935000604479051799339154618415835663448354636290358267512800606103215039751627907835480607349397433039104436060803961863052881068148551106021138758100011562403006286068761602985153700213865797815328916461725445219729042494276738679150751239662891787963106187133853229275259147082651157571199212592181894687993470566915592003844433252092229485207669209130425987577681712463852511325598396978088565428463748350688938276512503913450065486104298556684442662458911639114909348537906709353024167892847645896678060843677716297991570500929508154882194969096659083596981387104746982227308668408359899445205151794342108914595616379255400926359975105507750885034671862177105731112093322419795268338301797182504292672671971635480578025133328979239351123992610491441735834047589802214257118215806779484663315857712726110998817758627715246652767746640735638760956029521199244108868646804935969107397439317984811706344334476523988093728919839189601663473460729986711784843449439395801876503217360950292791034724672620819960527631147508048899934498963179700325167419105975976998951765165672727905477939560843748646772024855054168236673511672965784928779593738101375134321706839241563244512658892388232784190648328098382380246847060830600437043922198774304134088339159271791149823047979133409425247300905611052937686600728221212928678141546253830312305535554384133897589157492767000061101568362392245397263926786074663165655959937496558189254147902313693374510904344497731564292299272548398580669492516442767953818480764704239543707019696931010902872932114954691822811097266654162595540578894735265578333986619823089973631823766497698210802817353451807493466749180143783550882185482817013319955995979462030433032550911303823732448901473248672453652717916818260252746939052487559931630888963408832409136927127405060414253180665576246270123906850521156252348529331471093728054339359964170537070426022702640138532415560978767564357289326281674624761400173559095378588002733188801411994989066826691869177493009997355974647045370156672457394228729372357296664801201655401376194027547664161362049275296192943085904860862179750256947835087546034063265396686656806486240346365835357877950595859363685797940012001491462188773438040369508358160913650023517975779135341697464857949821233362182631813435104477858664792914418054011158602712389037412392558411240339877240512019389583303832097233167616600634223340777820110190932185292871347667547294733191551312005766362787501595561368969405417624867358694256157186383533284182623044279361196004579509470606637974569612347888978117980573878631680162810582839408259581682412184016849976309756534993777207494890437600617210601587245210978252444671944202384222418524041278246560020081297678088926162525815942376114255940460152145453202208244082726168477146163612344204145469352779916792195518794577284670329253716468846555928226580741503903901660960230214537360894009375306834868009030565061752873072648318529637738117294011845374159182147951842185621298235294022026558115998386212171307519381022500803099189639034951481703878705001737664472836068629154309070708157614931139234741842475538184625463656438272379279900775490310265831232903109131643241736575435640146144703811734663827175970721785283787603853788189033778981236173877543185014953525579683823846121527294217542539854472782883855564138527013956463128795145129663264756929480414267800373474125335884971947719552252611818618821845796769060637452178974057352677385179882120388151476808266614448839879320763873797418826257831163353703698115644713381032972258958805834038726714928538220927823769003356505906904309250384089300318938711458154459093660089682572240483541913334664825406330957746725384624351359151240644815779732154129800963505443737444542250077736327760079332189438721605804501837882134872865483539210674703957777319342338612214196828099966739369426955170562220338418407623436966435076245258898896143491112805093688947622086511694319838376124306538115448698773213859420932332706751985983957841777954243919076332331730100308613746443140359570561475884284677182168755826818703987303696369638145925095391382900835879994897003344094259950178460198662671037791527261586275138097557274837008852831387749389982812999108920866859868668270828153629772859320537181152982848630204046073840002523163861315968103632861673480640860227918232437774893267716256557106150756558935956786597073091014964237406585268233361635163487222110576800014965324563375847059067781958874579799811892236703205860846960605566316589435066858497296176096674361799956628959244698412062905399552810818256430712553730959576767710465066392229868573537465895390887151588211656217100924637084539206867254621176187490634962907095169613660146531240432472267804384697856402457604213574957804628217230657355215684967436654131353648224089832856136411916892113352875015392889168400080045992961328105826451377680527666255045322782963012941436440782804587386381106690806308862893651912987180793086501795889276532406262777093571948367917705267368139923480199098880671687803178542261632884807746925658194502547363855225302699929034254056937768931529178817608406047963403643720575898108717583182894002041532822184668489769519275150458919814854298149067257634108445954096616158257243193839139975656390850652277144467420497931564578135158571207239872917482522989202321768497683403174842332477204397729177641173150457188607483337203959201266265146697746136756900403913991264789832979553680362293115442149641068445984967145313840616615994525430184112150366492320785820196142329680612547747265519004584948491425958307012429279900474887806639201145717699448170528287107400761963854878906052706644512224958976991957509527400409771751023221668037599586937737110200266025232072046590806119073437788545535195693089779443599202029960217993314866605135016830346491864166563039631976772877356571503288404565606650190648614871171004474705809280863071109049170135869457257265276880713774939494592275074572531037731559901026415906354162415897179779362887580898918760051897254925192548111618642024560345400998167391371963071755459581889390117862009390304726805358100308340533803990413974952734197377437048871267424592713813700616086267153823098155744086457460698815647547386765309302578468185152144445682443332969940550458799633845180409488579006251439403019943889914907347303668359261248898964954171555550998179424966232802827056508258802677146818443869525722788203951829244185955184384071993310882587958416052056078646783541031129958359665846348581190824452164885363556831470518064058775834101827794205127024512147667809525325133860582423730421940746908390692412150981845967847666837932433529453323229400879068061051498117622279927611924480358271717146406927773520538861055649678387824966217731952552339383257152339824626701494652881699711319867342216578092278815355031582973540892751835382612005531348126809045203764522955570014980596219930796549967341733111645637429729467279830933296498984267527142891988653337068346920917211469719515568072727110670363976911629982904991534690181647038630016808155336763438416732907072450958223195690900641734359627265440612182527897988496934075416824618739233615069518306247181919918318474629229451836067608450212429029162963389780729135907226277726913449761698065264893431125330035272067117455155267517033482580360324598272111320922781733331991604601855873659369253802634350642308142697312989445506031167393407447755409890822593018878692940796760936007880364368595343181003972580611295129909320718505087792564966195363873921572381844616485551856913892014335278490588186811757238193940050808725665763720503310705678838528876294591578061249893556569640837840150776914705375983047066733137806117429135349511410778757125376359457897644315832171087539820845819513584149083860782377736675338758220697405859279874360296571106017756295345185174083219893349941432739648392410581152214714022256263555244742630507585305962300650720515427273193611600934022006030130822500648140408111460094910042931887542686212317067544839507211914565604653288402915387465515123224160196731156116710131184587534444803449271729227353503708212912723078325783042640829983273800705406675425208636452337030488673289767809399741450732302653709636021528328299103411167460502945276419476852679372993178135561232768859587064284534637713396036663669311814872503165772914260519327320475234982713573170302586921670958605946690247686526321834489116511534417056282488752240393187383843416463551590152195972356425243906276242551496316314712862846151362648039216878940991090082653845399023908603603556116001859269772506991429415433020000183882584733833863255637314188773685519140856531818090697695958365320646115587463871481371405482884575670802558436900639859871412596286322445043050665408950866200274951364114905269116266437205972779879661718240196497466774879346677620837177178843307202851550695221933110498011566407686498994174275773032914417438410789051009642453556083753736539661711193868608334493740009819042923459214027036394009191833453788628147581729837139544249203492835475013941637968315552940531667329608799209855940978222937639661376502701886173466032901681796543372971346590015286864004627524857562757811527655774028612396008262399089355173837655667683361014711429790545284297184945641546444790900114373420353260599126291581314156535217791630880594000994503691170955517225220225570693949847580740777904415606356169144848028597903254026435945132494965819463504512253240769895708984555080286423641117470256484055876119650709211539563932668340956296061018487194271135730117552656686868821460895039249939859479121525167849861500784307247718421651806235226706431579683299426142008031568444506172476899783383221830932709452824212369396240612000514451953579493381506774193578660787969840462024846180128916907282557494573036371588557517712123272725677993199618714110399140005527837372722913871636334702792241049517502878811772124094383526002385141257913941258070523372952357236007573995466310795506953408824222537144393786691160244464566602179030918386356480077363722858922888008480984352594437377007293333860638056673825484982364651238014827952765542977717122659090172339739349395367063187846501614920511365056802115673977764765155818196794767928067644339576735338711263878808829682554595708728391589717441727168694968814702662693682539199121316817207149196980500261361499838741227085009488771473356148781769765978337866143019036728390041192466425893330781105925122188713385039817311212734286379398238186088437460131289601151133961778799067771462474618832483278761700844325559852814067242291230506662578669405557802249074225003404111689948299437495128182498927419871678106195148026695825205019922572023752102484240161505004815863726324606800647968535112267148649346173182657131042473728165414612523095452525109064201730528707680335019737385474340481820089941194879293904553639022939230252926381321900896672294162827998083547731621476080325731379559798914634149500916096734467404358923626365900550270982788963172396325228239722785948222940757812048142165293805016234958411494451776916009487869008523613848778349276542624796833706714807500614745566450064128206024454752678864465698959993092793026205302840506326969792444266464370227880827085308139253032182490951320699299484664861642091164051746929261053698447681174001745568484771059062590797252225136296021052486841659540986257480655346094087075042521219585093033817243106701844904514491376447655602370697894013462587516096333066003342733802754858927407334072903975131230329174691937054298823226462078117757784768691258803638537305141725689876642393344999828696827280320181506711826153518089001428125909426618629825970719385256424088529487736844493320277094809955396306619309117894156273546213579264896748633449497318247713772310680107803559316985717892626573216903579130830723175727353246829508443037709572461170770175640255084075536482159432668700271086654019516212545370458711099631564385590872629284300285936180997714373968311908091728901686600720695566061170461561118288329304442225477833720384780203668342062453809053016035948367707818912183072699014634205355114922669477851092408400584437296698031381999873059177902593251399920201916818299719285147198970064354544217713415903054648646137619680873174940959123112787325238674244400120820108614790019552588767648069135988224333597562309032229951022083189600739394852625328063364546512281635598234601432504099703252818925280820882007684983843148880921455465895359215364926482333194207781295495095734626329732906527715140065678828765337714437624011716540531731946698792748120952578195835597815646551193694212616201531753258860141950477153907905937729125436259117719727901421831937092982729023430701778814483138201636243159921869120586247704140128631445913280516737438437097000601555515692966973011672011225032160619029753945524183190653171083127344812362435348033177958051189261790754997553887666225372890169926570308667821428734805486935291441196953126670005161049351254460487571718061099211193310938301967578132791569529792269919423015874716952802833527472777445179736968080199335874361360677149795805018720593805397795337560582963467930084007096160661206347131197871579685136566444613548012873004374218695242425651021901865733582707074012159779948604195770388945553315532486499469252190623182157711952422052442516293261307584026876027999934822543924025031455634791227547011015696537969995213940110747978510978468999815954830431668923036447230547075361873560066056240806921195952245970041839401080819372740335271640059948908243741900536749975889356632132449794196483893660252599686348967589286267414789672580112660797457262497531678933159624668918956100052646555552440490102445415033243681704948806627182119788914188216408715543477020449815939235563500525830239308415334703767122913799820353418066384251708978550714203740648252255040147955690315957660239074256178177634363143034031866651253362247429691309527306603009753909437886794644605377499708121667696134914808810196464745642981211632486072382791724977555443684026119705342925992544525570018656325086601742506273454781771546455658823536750446831744474990230336575151794028432945044618040881079515992366267452543063040279937463391962771677199103372616669393633296943033452722998405064394443214198129413861753277363258863981100088597804124356159333113305167379290734555520856389605325064870520665533795093462031729912817273901218857490932433685512446237474381215790251917013164920179760959878609271763421397845171324311275464235121484462199105591446033672385256500935554956070317928725889454285535202519008838969233553540637050967771576553413157931173656222043973570299283127822670239180520345766588864286652212231305737500323406667326329532836052188281297187841880696722001551243060551827795113825386660979247047392906917851092461196635449856513893728371315283753327219473462306853361005689614824173000760866624366876829089185773402464374733479615199560118741073587359524096570252759703179039120565542140608319017152089812805371483145013453404579088553289777412598457214530935881008641187854853706768309274947021440436792370946518558684806210313875801108420709897788483052844462820843773324923085680396427934047056676673061695917244381774694960402024444523648875112552025077182454633942598334391398799577800589307850263665396113080367435289528959699758340855720956698072531462913769437761911741601923066754759680866222966514538519296127878458924218891726917099318889480030482538424671289490501620146851744566342247668605305650415642982038662818550512300771660021344488562872849037062371250313146732607457692875990401756233668275360682065258832106907872689650129453664502737405049835348282116500488675269846017985213526874157797168501324131409090102869278898283336676882566551772852734696391914413688722849398925941279599145038968048270158808469511604095086839635708843017369622887209808068360256841291076559581698701984578497644208906239814817165249776923635535166281313475637302494535772548070352359642539947271521628734250520060009765332044942902104485103030666875941210625345721102842490925279688077891180968695903583135546420489888347519907617188947073140335641846978387191416419609481863669522922273924101468893439929530560959266866204216403433688872274402708243838916463734137654704496106572353247985664833606762615369626040035157779629637617367717496843907102958695758433025112178274258209112339110941955993576879757347660272266618384520641650860683700249874520741991024868436163651474205725285778404590085049140404284926085695317076805478275455128324537364683881988907222052454192082933671543194463415934448482974584393799770884076528118814496891937120593502024257307020486015301668823062484981006124379728577043313947431620726607541369460402715428142500074871565177002998824709616636391139665666289857497107584257833787304220353583952659655285101732990348898003701622864306721734204796770034495167254148896064757674560216260746704281902557220099957721080532667160630110453422585983173630492485806215411354201273994512942670880930285895499765269771556184342191647243223173167443767855488009578049926702256592760863567236724769562173907674079741713046930667238161014986514058191836830993459010412779827986010457398178943649649216499766264692680006824714481536789596273372632229556565379997372784453728240622464673689679950137734919073655422377089696362141756034686812272451142959052063722752859035929430342556351094673291034167001293815869049627268149272117425386346606306889751161608929840005994823114542481031239902595063461271379531205228516540062998430657154784065266266697335499942471027978566955776345601542911920991489655319064614119783139896369231652089564388441617371977288685785771768922138820600157866801571136715258861671472642581676601608396832313080454882999399316652872908267369201055580737913629871193739849491758638595559126908926976601157592490438736216235404007562075863448755230138074326816319471323159545559828495519795842297235210119115772604601945303379312754742937990182729560953370890070856782065672668518602555704779693132980575411380997663630842585235237933072733081038957421605535933303128814865602614641229320040011910475059784633022665624323514454802575356810462512173019665824071992661689340850118035552330967243614539525787052791880048237726923234267741834774835964932595586484289343940302557518645724143706737729181086440254106356176180092504825461194654802836152638437133695147198817392319367929043175061371642263425921247290257298675737657080926354384989322336838184032927807101110955536345195903526434898958283517825036479543758370286327075304594358272222658014410241821741622617203084322591895535624207673595852526686445362068221993582412301385580114141833862947407907553916719707355500931015666284501652722637630324741740865829744433519198433210458966638282161228167544010353793895022483156996110483532324113551431301996025202155555120540661242223628918427890592512682989881438781349597030155517828454829708987318668492909245146845733204476835840966380914383537822450908528996161761507830818634171832921411018922589692716542496463096899612913442809573647225942556000859893748633269195857464993144570398659201115134814439444737704458984589375385371031221784433982425082799715577512566351453807861384996118116392067283455911228975271563203467781021061309663395116513104556882262988149736590297814858825423575247843371173194442417829497783298986468448271376264649764202772267509049380101283968809251183839562303299676187506170603730089814574294589860548896637598188867633370831876644988296864555894932288084779212725093690743825652052034632899098398262706050742268460743056526728697594077863264302955871235232353291152681888219437029165055613759516214644711833521634187907288039706324237776632307300773205904352830235492110925210114865520578059653357326860022337405839426534504972335448644226196383860780128422542637455070352564219468458479575049917353992233935912846057851373574550026479184860097250141513701493374318524399708502197037067944829429605813827165518535839707425347362448534933931468377124652585969046947716104573473213610500316202199927183977058568222975696118931728169030808847182712480138453575857810195170023923667531442380661092951369342367041107686345766013256107194467925675955823612548047492201172761027276885301782187956224919975113685187903837709508378690149807511349666588460731698835187553670710085387862966379807013648689054243806345073919720214801012581466102716735580228652929672840674434780004359806495093706212957107483672418788400696760110573786959497349386291278824577170256285308877109363716197236121742501405426510295204625845848914846827967443688464206963591044471715698643383542921124908565048759587973184791756878117584465583183515277630646825335599860258437606729279990934542860548022554027572181435213143937216623245409592131533581541513905924878097621560639340521305487788108367807794269704171396342364673961322715489565202981109253922687755625256696759390431701636600182390051238181473623108911512821373552032348077473984264225759936759827775506667038865307782874210665217125493691601146185246866722672265046761915090793730755834329457730702793499882941145165560765239397538603061693311759798413411620528040245113866437949408781660226019588577075605395703931373142769976162825552297422395630033954120761208139817071430579057300945974652406737168870527657659412682947731272408841290669922727896665298022270975641866475058154580234433055722475677472583987413880374370095687465690583084268473096584630450940528155904090466897767950176807041209662628559140521242882352991931702645862173346086677777761259734162850682566758864423988343479610964915279808057357546082056895693678942913889799960873891384896832293430842780444790419627535049624993232521240202360714382688487725101828055623261354747380739115953997186932702234482256830531826550699452519643532917412466371790674554745961991578050165747948022292049419111811017358991007880410130055919120813173963564452459263466753276621676983261738491605759474189424036333739259100142860842809557384335562684728560740098388503995969461863937179312391243750316207604206281302020148703577252793610271809462548504066075913092281238293108870892110964482873985200314573109704805837438659966923279288236464123976129271668412413196470041946085934696008026440621037666120070223783422839759121881060344979680542686604151622759964315984623572184112867454760559233827438755182083863369363130307607678319682434037782667925946719732627584611881466501489748191307941040023684558563559405859184531152256814668657419780751698014828802130300753397007367724205250927225642276595691546433314041107679924699913933682124100545801128728212906467497513438838026745128708269256307195283343235708220500804658676030530310143032538746510822474513465238933124035188418209260132451314307584256424201907412454019893148990092507191811878021485862679759208229038654336909246186282280656821879001226843911418073781842306039568526690696030151977302773304514865003773927232442504171508668715292275466517111073742553359620713004584460401021646171686734332382922141040951349436835290959878881835118001297038552339414795153326797939563541124796786050443378344961544687152657627734973146297383128900080303908236322571718668192394006263933553717923600454545401400893557863903399908384662441074199810861276830230526766963653397359090259244284753677275011728637224776448551080851826791639846204410017510187110848280815985922636896625808613104115180043510963019212140585541445044580356964578406422078737064810061039615589840505828607496044007674178569681729239307192819675642375447163457446824084661351384037654817684102386008546599804169844098761513096360834228572876697366167070889857713918511182434909604960789661611271313178018107079899443667223050852309980568139728697567514255561005107586175908528842081069882063526170753638612247482306342485380211423100236181699028149909681307008136305942513676660939125288219677106799331292179877569390481479385688107756670913987638791192374545933808653150169850610575716778369105482922249696066689795414243248063392459149480933696637415146684909158743908225791490642132619668146212280051757634871181813324311382371884660410252723535605953595863265356672887214998608525667977645210012699641359946788952375664779504053536637698030712976270408859283619573139154857230337073358174277986294879819910075257039836836849270833757743444163346585832347307306411260677071515011362886890334713124297029179531795093195383948696817308514166603384018571752635588383314413035832349511087965943172992449373583940577710880466894756877095960030817400972408628340141561877931885253371631168658692335010782737783169865581163950264156753988121324687060957695427784685259726985641124794386725582869937714283704018976460640133390668998821193453012455685193794872544466466894138703256916413489391316796103080987373295759706112893458519360544565545772862906811743300541588136321401800930454933454170266980022896072011451922486249402325933646007293271779288617395634466219150171095970108403498767649649969646197605941837390918912861500792465417450994472080048038005310433206802034759319136538536459658765948749334360773777620421197897397989392533821444730024478059624140356598779431058435984059859782821721234472016961510817625945771761224780833621302168354232814601298035451500153018905913271698971527884298590560733372375236010450636047212642996072428443956478565181999879412342707104418652804435945500193425997632257854835134482186496927936690598565085189131715183051901136547730109909555735710280329835705683032464761107157261902631269927613132819318635142899215005408305925556715010414343742462544697307101844138571603203854904643639168512977321991656931499652035969614354107067299949656682033313826176149680979391227302978311601414427051033041385234098108733747287082493544781550088019297172937880823708023027426612109038482559401524454168030977361170498712847715333891547873193247736997549832130646835672055840061656884725359282518234223473734051110683073112036050828870061505673718695913165953355369759749612393056061587830255655094748041101063590210383254701014153271319405506723122903354857340926925859543705086782916206592007622341049785899027056487637766404428387857040811610712554373016007924216427555854084806610923983386129879923039330487215585290986280721831746904311752098248491286784028106926875493442190208382189073476466250415857624448231411629703802946755466763952820854393414690897584141049345007882274935767859526970690306963598535996210979212189864748383544602576442938579302626030361692497378341304814658923180643145275779734992625651167527473603896323421888635445013024164232408029849363701596709332468141249648941591466645537412237161213667183134392659285831566105557980517467284014359980690635220285452426702330795990414847967241613979433218120749319717904471663149975338496017999952925219629293936668283515852567708819835244173949175641471830011467735588804365553282846714820104945309194102662867190254255881751471127758104437903253708973117243750585624145063539912202287815948403709433300844909921731480328611178533011093629190929150650880403409488735569994291506829702815405765572215851540673416855656653929295648060826521562453485502020949764521151921675037155844479016003847748088708680157041765434477391961204070489375895307085513862805697002868308481358228120834906819465176148713313995710588743873289654315999013255694820946146850850525203351673498663152708346634021843447502168212670664347859181921599033321496541231360170446059582595395269091557586088043875545187186725961374959093278128079660819324134141041906400560739152446714057942765086367839505635950412230492299729764029683452123757684652627807327621912889963768635531371504045419044495561646640067123694828996762895529029464788533315279022705989660162885381568667636961784775620550635918832467409324771814648044558994397789126469178433255506815133582929968475796088726071903690860981028272944091493948235287182686829125009886774021594469808264104772222801057653503757633946474003035077124981877070386058722152709735364660093890450883167319317982766749481479536154518374810651273273585993541521198997991443720954270703815439996396966921368293488911005781063847320016647411284617578718883521724490807110526000733932241294450687679702032749533511413393858960482185272145690441299073538854450690384656868761210195193713163666836442931814181255013622261754213527334232104730544990199845907410116099636835383638242543475441904992569908193143110921923988122424833076925121779797500524280258547152963217723707532820367655408116151987695074583600224051617168853663038622234965848432376352933336270252508323940984907042627540803334115282963804363630393539424519582019546686893206341664954696098368417829479463224831543682425448174617607134409643374271045949991353014324801447610894095992578651911863018702439089951203619587661968165543204032479228648076753993454901899879004775196808141890981213055006927973416557545386235330930368439705603245530892285659264460423605918962742673416475495110898974183629833976820069265782283063222093886491772405909726389958827352809535478360527748101936698695075514306566213064592970065953881513053432097528748708070034262997385673670672550712070947139920691859782062271739817929838314312861524654019439768117376122591092436884004381699657989513574211274208281181678482605063692857055436185809243819791319149146026717178672421917088118623477412190640213366421426133780539762510339027922048727339920475078685808685086535088234534816948268299559392470975793619343262421872405042531508426255745869660487656339693086302561819267738763315413209572244859482643656708150973323888986977151474558831835613436501743822498884352926494839163745136082111624128063637797564095611302918723202642797544963007394114518625795772282480491140426776361010886879088223074263206647942727349812893057196249380200761803296125722853202352272005956203597527890542573241814454559617317827956611129275500376995018819312601670023746622735900056967974026812392861572344081440730619661173549028949564304376226290246686998302087529643027973450245672538736402928203399027948485604228216955747870695173212812607721925815996131025722257453695274474502093846030040217462715111161409128030813249479049724035424969087113750962777968745081152959057124213540952689707655061198805134119997034403234865386981147730165119385140322019210228033860605494937108948839738744813363394519051549706622739315835646215809152603683517913058376581196057029002497217071063592838206070201246684945251484893763767841184646179189915406489846407387390160907997351513707108003054085136698147300268787488498994122683447671135666545289117108708978834742035247430829226947917132403341910424057649391700486674689940878472474125393877918650892217503012682086904655539128048785606898366728084309859636365065500907532852176552988090448974724133377874972323977685681532977939145352069762155851767731248358845927037148899240836996677394016350630916315389775543947038181193485398642539306518897049918277299946221737839380465178977331468806265451156224149904081442072537403369850488701896625536922308721977268130835330894376110589220834343806287930505321820562825221656416787665311865474056176192588154423296181422064555599215538209065842505615967249585895216210822334088399174071860293305108975663700612412866316011711019451681655112071565611663792698342909373585956670268232914961330818944655109700082976814437466271852148989635503337645697382424154155231747588887431938829666462067863998187301362730940054880865541596031710842581621432949354096951623210834858550333813182936488799101932277544270045416654693088477376223356275521420912720178378468764539452254144509532571532149798333380480995837942498765246836898320664078992153018351776521671848989756246743380826416271128132038942410100264639946935022828876732464118060983486713209385291790913543180257471709516465873100930756151740933524425686927984637069509122763221564799083752658393388185350463192576435409446070002433339470038203850393320482561402264757129465192767301704571771765892713028993932691816423603817393891249813984824434496446287213301160645152051236376545962004461807969375141992072370029970461725182559407158222038155549575968210346029977844959785443366931544400848234581837151213367476871694048224364699856799042638568458782674001241237512287675195001605956600818974790818856464716958020687528631738574386979803105666998623821616086040209152193106744599324986620302008858200969816428059370823986985385367490931070594699108441634073470552398534054825911967802362363225758823182036298417266044273438314038985731414632003777383434814543143686963655138604632959317620409609452250239417938364685389017614936012406084804767348759127812690760376782004074115938935595711836309073123005169155592239743735908082243615733311781861749598039482480035841511657264586221072604372855814240660831653576004218539407769383468598220604439723956254821176836252582124303192695705247240831993901350196745383014230810731179168020735043955205668815340088976585077311538015712022947314954583220683824043805117649482554400719844320344075984545415182666710759183899476197211769576458434057684920123843460334381395031891354448616426311662765016928329842745555266335683956440113036863765578661503838120521439878592956162235082051142673797838083153961972249266348843116570949565370107548789076134008754757591109980662913534985376729346801829480656472753079105900208599305452265230086497628219630090961734901756748377206473322537452032725288762314014211845488808267071811418514409000873436312463561016212457626750924720102227381281270221313513590747974220101708330486465118288443544215387967471900947164055400678881373129749509804885966394986388003335961100625732619732950711835198619569148919205892252098059688723056638888604003562417196852685622195037026681560515962829414829521315065526919438929217113096847237346897922324064937634506757025437305133186715588641681604445104296800131955454312559267947161972306905868978728094990167856762750728478567185743626137953545308591655291416648757971948992852103741434900191362962297361396852329403927695034672312326160121590833610429450954255406737169971419949044253695731659367282980234231321063074921160689188486289967150872629803692666596482142165405632375619668406808640221229899808382428201537836844379790546567053624061541775007057330056624567127924175697896614860030079672883680623229409002935595249222959749758020210699479777950986493801704423089738634314378570377268473348789669262699993857442637368064047280125660675705680247904530601060805120211011370030095341307478552296438988380439045778502005265631424286116579816413199746796562385017934774483573848656901378568346065766839725816323150022203718351057452774449817130875726536557898977923316136303522976364046007526096641041462343989165216415025898647453352144105781124450642432565270431649659422104761691812690454837221197099368967283007904848000867203308165210752632532331072994613091267594662005085217252903695806134366989469234812478245652874845555890681680159181101902847830667204893180998136081969395448223695876678342973138884543141183345723012185178183266572030625568113551143398157617321593459738199609497665511691349511127265101235183242186992672204300978357554279514073757229654053453479645801136123101364140634498506294765373519994495168310042810463435532270005229745644926793566255625188320802951334030091599063453414855518916042022158802786036446759879350637650390881883503857641167285980198067781969109072591518053869560477895068696794801837962044819281440834082126368730712268131837024555448380409662279828080583002577944196201936414762644775138731135679661218307037333187421601037617499530915813979791159493899279340020038358001261163600198281833636254152421846518284448972662958009597743916395084137594568663582796324204418678512511146744124692047014461197115844420619244256803386084080602072506152123947361702387973823727627736225407827159413715648167971415496164928029634348188391535837658131746805278098336904641313274476227392537766010844684335382564188823669322276991221163021489186899593496331452608999745976510811676258492963867597227704437426526756354931975859592225969861749814793242889001599943080144429353096532262055555868208994621744677644113309618716253883026164344699114596279022167894041081814939490766221347947365256224936325549848994589070906631920213406721019127112614816688210155405054932475220707608638796729101312851522890378658937167786185421608628985983511741535407555659445607836478674675303747236946198375038026546548919052978317439225956024946230401109146480921364647610581733466070555879810047029547195195045674064389458232000574782756649802779845676759655295268988803480112261805784920208649769801401548386318514916080886766364873380282646778435705125050118797772714155000178119902844167185756155680189498823177867618295190151808536084939729844381927915435361439002298972438292117897915717104997625671955260609924316958231907637256494983680771198684116613029162884793613586568243278315103677235171804572652498442289802242300977545997794641555596979990200568094544820533674883001197111590320123712748003524178095926597100070207359885036888322860165912069148579376896504547357549811599162711002876234940246581847092025813566384964528000017344417190377957072468151325522088634092960936279337403365155349665874672899651978214971970650794292169930740234751623958066753720267908231071957925000224612913215657719460147035146364491991118229755454285972804381530227893006358511736706889146376659864166897192530175917248921991028312844885815612177776880410962523603357453403393296316380890616550260585210712641418297318140810734338422814977984114407364550016124885402970460909770923019636834121860505274192098978980074286115572110277707392327436791655259083610411965721668591171908366411298474930670737722583736640753938586056418701476628845889708632089732954538578778305859604541945923376386190311175131856256395048264088994645298657238850256404530823239711695027181039733924978796101568809729909606300929568761786237498741793618688162892060644960111520523224934418212909004158695583907378661803428434250963987258407914714914956393264203313992770493740683159612607364534186433489146825923015772002071506009781340069745620982094860647756696265323121885008805157044788562482149677450974692592334229085038314513807648497514167644959730003109231883173174358378508329754475573143594435474085892725785283558378805363462285011548065974404173054218268177914036665297903308431316258117078175390365863275323994767558803040431187162904650512455464428033152976329525673442172610961024103094359913239778454421313491166639308877897244519503250928589508862969806266463751384645565884399072103876194537980910961729779231842162759944058023186842133045582671206166403113585180085446214092243636798118383622698170320861889428829232610933739493194569555327552101947615768993915236514638191929967802628444166139986958911821270493349443624318690129927509460962234710177636296368729958051352091250091409786154108836570983300778559036271875701687374973912784705702813461609195983924011505096280932095386281051735393671959382809278955565160413361122272500154085230806273725689581109723492307075999474596565518148092168647362086783821727209443964886909820554648388881288573368063027769235964239092254359377694575540940153814144145908347035938367127261938873337701462868356390105743186786467374398160364015366603913161042252867376044224345829894142365281066692138203257490693646573018827722129760266254330888548211436708880748441389517877202160954842269673458792129567890171686611549742562571935651922801262720619425331268842820060116886661810463585870579634577380384879441557265587016382362038209743283819312671607750246588181784740527967549496032133881774079396328287938644400934882437427168889119383861908798551863000732026674380612315426492065321532741248385544535370041609554302667192995580071486869108302813496185868520179137122667849869495214008256577485575473859050899608509275327438323794165640848259967842816766373100981406397202472459150634291357350522928000295343887432697270060804626123304105952364564681464998214858600786219230613889719454295690964405121802151203937735099310410460916746538124968200840167267546417183825198599694558778277443702180192934720006261159337298627781953733370245751139420992903343336121810987214049298654556072032961377516850050074907768086558851625770209859416065907296784902218040241859240741367856430527613008594781108428251386010890869976099241179553981242925370149602751858996239024870595886754655782811680282908627361853193809876198522570883714746054511111103208027972516714602109283047225609189965400967801381962508672522894301663233340173230524813776270898648320345232274087121823506903755746303459254795979149532614505947965400382874101853284793891344378257823279003890959846574085404890625268523258392001066953276512148440193528686344945051923973089679932994715824341747598348723234070888568092865242723450378493874344280307605485714943004973088714551233240759394653814171058390244970626329585042098719266999555232552692958389102434622445033151922196563493654705573176087161569952941028717580105887477617823112487021892387923547682145365978064333553393059120019149731150333883554586893964167529044228980757339940161466391380245793309917291501863465419986283624407681279163092773947852593134992611833545074544592932267990768767027905004764619559802595796948963038782000582775558504052515989276517986624505389142102571223968690181364555670392322072609399862358774497545242935546527624768471032968663238562699357565762806276244943137520000159115762776951009012882139609198228832703051599721272646549192513497116488756563532518768617135823617014272829575278631790928837711925513828551640251492361379714170097707151980191221175627397726532185137931468021445197405560490792271705681082336832368828438006880428537530879009361277859616329199860921543159309594649504893608425721243696731964387122734723190888569603550839401636541047077106115738165163217999395166861810179454185347038669888679095410198940216643315598932663101359137809611048996590266455003626514570781417967072349491222387440389382470131912292762557121967026160121808945908456426782625795986767983035540511999121066987758703973786360425365950490048631636650924098542000323574870022981973461020285897685526926937556727452383377479692017005133798594517088895201905344023053551972316826544687619152712626623377224619417856243549184782567626032512068849665891461315184817077885944181902138808283150500985717772729055244278313737142593661994838820649320150379674070273886978301721792810123220849519073552573897706991223419787509767296474167244761479838935407432134302250244610775243406327150659282291952936595247659201472789955001232464930227823928630668786942860388157060291461738756877841122495492633381220704257946718598239823237155660109759115391309264867442590460853531149040136673499086714819608429822590210438200177251099666985220610462737479969713261809004758021364058220552413383699729178122891807183104211518123628044823446966904287465739761732654692264640478997294176495663037369479340999581880214718771154868856876748017510974982614780200842796863708261230726337398443372780083333818066804530963402980915265577835140186008302903350818776242787064176805439021903698014105726322474579005512507495542240715947406874672886837835121862245236812157072958419222854423871404659807109466625219283485755544241532278800509741677902280726255211985028250540833445140269851007453317090394153738769362378466652101698733361694776242250030231081734735764773849371291178998421279048669551526727660462223612864132108034092295593784182533994544740918395158500030959733172804461602732490242701393397588028232223024228928354511892015244108751107607694244312928177091281529772509060870482445278191311610280214767477012591623368654896732957165255591236254119863857038748505558550655970165046882029121821680228618662266562528055828862154298676784818396070996830271642734036282787949509289158268594730022241629333573467638543175962997306791799356435710720466142464186405090720466072333806167964232391675218282641238649997606720808590231419164275455548293109732997180119077140647446019867715174204109959388526319100183354238062989735464607117566821077426204816577648843896574961890647722262070170895756980043693478206616948602966908147135850632531392674035202297305336524493397613148882897443982738432501640678075044777704228612636431444962036925149153547915979649092366561533620087696802557635028015754515399316747960780474678131009119499454681270526433970020817335506007240993848708330575335297356769137464790458709514169246892653830311295983011275790852497403118518185413524223313003867192622163106843322814598321487794494534625758100952679946826901309853287760976021566336580336197718707439833463071002169061863707045072315668080004847706296080015338487358972837201323029847564066235932503853546926337650140886847944147725461950792119198677234500512762637463094887340089662331026205755008640720483935166715917096380009891023149909778294663669007574490500666338820127997251077694515911151206102586040142959128664088811927405349577163378257212143337424982503432599366839671291555241773738700361287867390074144531846683914426019638560540986663503266765205414177766573309242458965686893151108652088289580700614319683661161639863089294242190084479815962461303887351990799333796508648175752221767476261957914965406368052390780238101672613724625294648417800002021067851689318326980652950532246275610198648082170598247600839570977534287551921007191872953234275583910253839886728684940155957274906806787639444228064629873344187281513845378511426555429218885334823103500557466420019743664662993974681242284189770846324056616923424412151033359246864405904058366938475477962246989744749210800824231240143860807976526650517129180884107453456902447233134002665124268538578179716407006934192922211357635311084011938929439179925538818158004487916394757798878552865934287190853943472692247733451662485544495143146244649619104310307802205841752473789574799789581890372742472371002008589778125028323299868043606143219160054299226873853207417683589750451913070859406526841101503045625516136159132196785632066003813566210859985460533126066619215606400611114548909643201631484938860173631888770114078208249952463511139671445575711007678370787267414719230711182506378200744217785728849390757784498908246882648941154280386892753685002413296602909443482751655747484976424631432266400240382224093316515363349032279525509888330794186352560787824321482728986093691167826479190059654014310460597952647149262632236298440938541923630199993262649878672035148545713931393927723832299952583944627370293380450989034177162305899115751638410404402982517171600184318106842729754567254908089732410036000964085225126547910965434361022996965734208917260383506644916211353733249516539694655470468104988189369381079419008476969111539582047708793848222102136266344299165597304919671252517398732764529504982313606416351346364156011710975513789973046133424855011367970535745258152185536385032515179447260337036735322625335154369072910371939479136085866994783220029636968744136685376177635801286313487522799673506314315971695141115018401894960760788602760906327218621289983368261067086352636185369959620986168727611186365095248256500151042054032217172049241154472543340628954513021430489990561914432943543245246421504952095085286967155480950026145121905549762608192274548001487361724633654011110913821336494808041542285984160779694240354968981027809258629529246562859494198375684654792827874557575213317710624066266170356107134805933467428953906181085952748522995311761142492748061005549747714596337665066331358673266374769469689345104227175255576462407296002518946786345962933506330349576156215613357549946270500959602758186214052742208434041518878874479261917483751840963143284388579776155951498687796056517488683262686041465604858419600679578771256675975499624163061232686162038712751991354705527967904685243030763253844343375082420033603061916275698537855425794377975424117423187710878466148190728011147523761395153679968475484894604605729658751688427940067913124329591804297556878927560986960372873267674200938998931900437307718155426215165245248102425487187983421537262182856604845478279385863660104853921120277294111524527739823522147363104469725967321153870758138070168419228253488983760806530530869315474974866838735875503064465028599079389113469592754426255509796423740935527084991443914422804579498433005927859436821594780272350768962507251373445541190177066512412377645686775791583472732403811534368694497757310048101260809664262695948282199744836810118257616733094447817964948402409190990407478179509775827578609900736297846191232449625662510984998678963170481641000894833811193780303385315386473015393128602133007712255681194018321491430248758714644951556445082331964715503891845062194855008309108655041705547284874698385118512533611502043211505576144803854197107416278729618939803514106497126272427127284354922755230578876602354438596881023242767371183758836060433964002385661816845697420793312550136961367818140420562584224943575963188475297747456310869642350973226284750613910101291370370360572196558870510281193518868900755630993158534287387199420446459121084163473661445808550361161414044576160377622035382861470011760820508936353390718283882410987814087146340272627453867587614858834077902360945747642351206507769017074176197026106769084790108605814104238447387260953424639486891892859923832139997043152989677391636355116473104170299019359930238665533644284665836814979702729462796039445455659567765523331644554213966727418318394896542239083754771618340905607350142795320393949848830437667048568926685932144214471315588567346551213701470304684250816044123372652442595209030721535749351967075457047073025469480558777708992310254391599819621603804047628294584310477532399527288706912999917094580671235693515954218993868531115438436162516981122325595328545490332933717640015556586814793945619062689271641672744892586684557084821848240227182309739684181585707939413787393110325139323808820699890459421007392183921367289263779599444161448525927535072969742215263566347811051988666039533688713226352273285723430739788356033887955536210495419562672782140616061356245169781788947276757499985485663740376722652028473627300999235128732239074084278183559089707158580651002997755600565731619991914718540288301922525197708003962504843703541612300971688912279774268350946657179055585468633318872649228512243223895459980101682695026453793136216429789350819864432168059800230153969490331425758772532843018364283066435172878735710644126638774489857157222502716265571891956312196500746550104292530684289147874632324441955488034534166792959842679637422852183803614178109866142261832383378916173569678967520292383490080743556447258454638361093675084726239667382158962261683403213227586035560805035542544821042720132088225648985497952448539199061707779120188350590113847542064273258518837577054514707402905113038977389722124337807597830967731272224538016254417196550126648476973190873583189075108472446295273570840309791078707636999271231978048648748462256212702361089685471869461255070983423557876806945218370250622091791919648548075898914171613857031582395298778771247199167961072793159365298040900052171249638346691277858421922117981448248680149497944951400324082008533342126067201851962784103572213202461028734018957443033868092503838440829238475571030914950078010629465301279556924007145713795140246486344757541569775118716693251224068725101573306802985633105203222718370629196610102800283491491526250590377453065247481250873653185640627961765731783171685434091788246316729991535029641190092002082714934468829838680945061901286133293310877215874064648882021716502709198183887181982358950494494814543835252154596511819453432212296583995199104486852278223736948554750344184874211792865377143983355020634051175102884903756411626540672523388744611890404833552305270299373463309980649325313585387661772089840292309934113880969126333172754676405853506276887125214739630034268920153100693142455897639702779606483288971719100079168149451649892393173431261084180977852985412424475738595613103610579811139456766733722195533916409326209451936418440568094793844233136965017942083279466522241540928377104478661829968447890651607547341291603583436805461442841870241424582931982510275180599557530526131995042331460854870177997079254749403520301075574442451824927205368448188388551404455754819397434357586018410805650853468883465474767316961034693457166477805613703236559850350496275590276764367331314188531565757843420914944905708807371375811779360876259593745831770674003739282830705262890041719562126900706088718659833636862196345672684806015900548092814406184960951739106580737783324717453495138866494559997773136555044374567911874229034488271573529960992273199496612361476814334006275154811817284554091898048076322015141986257007306264081101500399865694395962305173868328649546920668185280449355778499927232278585309080820674976950758629553617183202497610720325309511438595731396747870211751063525888332167907760602564131758263243023080570902183268367459501447926508989278821433601398894748907872793977631938579085214889871783670560773445752229054076115918451407244906773618334333209730935508422011346365473835709753400940230683881539643639538959869456814407681656364196563533775401115814338801877654619280036359351329981550869673491459763167596008397131197214418064215333520442463003822090586060959698302974224455737076869484053403482440917712782423902528053212614723915273145111371227188788666005413465181603428699783221626133995391356920572030500787164468395654584287135959962097165660638113430171544324126955110565181871587325449159418760341124542437707491486810983870211674729990122533767919695368499207463411125026312738579258006392895858991569362760843580603455508109853963038167109465768722010110823442865355978655252263581659578856405310363170562859663044793271092267668327950994413463011663842569815720284333667656493405580429705487102508003472926622795839020499221384181114472113967150423364599527783581843722338814924450611129165710304731870413078096330501910645983453152506940174037481661294971398211699140096158924665963613662673915480693398112030826736397162172620679743462433965167006134611098502779451254749307981526132828310249699202585047064537846515135371486856549572327039113148043468698617385439767990098872279428616520979378837767930690078822003189120221699313898575743735008544928727447329298388525869980481929306715074691559093094988525935639346400193384822494540820369092850485452124533791135201472525382338469794383174129845570566920166932372382053283672204568660728131627610104271472529181668284692993330111437487958024417993499782868221215376797170320169403648994110484116033155439247677410519608085141210952334778121899798040982904838725294810122828313652153059444512129676708138005724453508406485386709053181491411120692658194397778900983279572791203021070037148219445912158851704882410389160050125237878029653881580233654453433416331179093974394901139843738343042759045741050408512336057398232984912406549238217245394785636554067387664238888915953726905414000301480556100104457120183543338196035088724418502649252415705329579493920295885892214908152984938343598393413610896051114690515383231006026162179670773808619981598217840738323262570982715374166880922793505121389090146079657773849111107110782836086909219136424927644215559821809417322436062299918132279791695490380932853132291358694222258898505032876601969449655367898093701325937353834901477527016788204556211200464758638796966015463334559836502902554022116351638906647693757649689140413883955664913886418361003293895339508185502412425362014778126206092673698341133537750772056523187599334112010659198074394914267190900028927532388822122134974133293111786553525963854219302512644001965934781575101370032718810138631605531216960444023832917016195315884440783386472019434365162583665161090804354167257263361050319221654551437088219365096572444898266546650586829030599040024862012994868623076715106747291690196971917448240400951354279702721502573811764577938273206350701663018047485039386708854348603904296051182242740222094243524871832564132080682663458289680123200148105687039748588386994196815807075187422402240681711186594665409157615296184280107216460201668672214370436503379058547958961144189212462223591905084516493468384896396394801690072812609605952873565785219825028220866635875869379873816623470767855664299574081406585821251605567944584054056080745479735271209842083801429633178845038231719547446590393341264499497190110485730725790261068163227466952200969040648087530937186013532140798432760033407728883887825560844277617018908997351390148884824987862514968241276056868435769489375137572886845757409041848964585612579510970603032879420066367486308323164636594303267558103752366746587324878814509483205099496186621212593671146226712537762428596405309360143631210687383501255767092262205556668040264586314240896475297582470265416839423688285608686180873024431670981260901869499637502948784356646117882096143678554444854097795665049891564310230164599624861671598148529736070351455970894954212286633564143276954010789659123813158245523939469588948300136943425555219863818513940436517736651011469775467369847135676580179083926474000230180575128179472017946261517332905547387682611105307800240068686574817288072581442974913969414128868457409502059208444515168499093912042621166820082009721414336987201292744756991076973328484243801029952457830172617510435444422038035706644057207671744281097771191351660220058575061013284863428319204189157335478861964037353204277697635067939813337941204484570008959309304834025439463655282110683150299146348426459587369203848812222143449587398395390176441519871650637034746848999605260359400437460535203942502104628766666359163055447866390351200113070175057354347612196939970572979027332106380206384817921924981352718231490172215070301440101523113116626556012965076938142529105264444111313258422648879182979170962649353377421873173471216883303580037353122139938733576178836806675005566246028337560030157614986361026380848605553452039201361261100279329106166582384927154981177649143181319641530120978692935801670728653540129838822234531778690454740557899873387050649939257479392214437002299995449288392453257805082215837276941331481815194814389114314060321291172014628466301432675742718671783425851456430078579726208924109189261387455080221656504043892731963126764423113850589705273747584317523463537000529307056833350101234938956093944163100110179210279780114740061601868927153464479675806380148197027774690345774776110207281320036736387341169817005745692122093748983745862741930001624733988427911202955789153903068177797202663334649161327018649344085834719388919337396708507285235361799991187894084010913203191632668116732897403953588969244350145126523701734892606242021413160385766259057900668515802049227722413317457300753265789921868006793102668693980050727430021019723398375935295958273853660814634161227579529852368861513583500069928616661787588992655819522700633068049085453828273622913095772078177111768414054695032633794558715138165726356959308121105768074433478865275326290444839387381607389506821243922428446828472457252143119248319039885575866091883918855304625702098192114122622673341712142513611083889962269871373069190837817126427341570505611185598357509446393948065149668035131603053224682789736070083702349063747200904728288232960157214281175331871983861262773019368925588901515368654584171759820916534315189618326564353789022916975107294262116198731201179241721832429769364530053896004809798603657630261862790324584244648921171697279192082889414917401834831338166405786842319623058355333587103903958176335736633094170083398451015817779788368952630438139647118726125358878530368301791431289095770769947961837078782058413064124083389286288641207911680937131061101048834221328860609883850832629758326242196057879631078807155180092577065676459220565567151848116259321324282137252192423263267741645030245416017761743720654270346401922361739849829661597862518012231755597471063796498333766221384536806231891453628777162003518024964213363265500993528141667495220065645179528591380041671008625535670207598839991208703170914059748289899616233583147660767282394102855388119984718079008098390514319720656146275761941218265464999620804185263111791986555043853599791324118741875538982256284467981070951233354603897839174709074826241588027143502738641911109866091038604783370687099462753796713091958165743108500056816222283812122780319165242006046025732956086594498301673446995423972156557567624387301456110202489200237935658860968278143591602401872102635280789645374107059183216351222577591833224028178602208867029477432883286443661582851883664902656572455861276100211308891946286860643878338220275425386661146592741683584314586837220993552533060913515433127460204512878554508145313517766770622844089009382221814971512330734877234179993039925280682647784970648340022935284987318287198648454378390234375046926886201808106655086914744893509973500756339690300913738725000700426894157449536833211149292873675322188828870806302168531110755631536971087424233632542963599401081497316662235380964945959406318511336962338499588676361493165796022979230469987127221147774114767079565795047269344520154877554923312809866030664002257291989084175674464053676849580431672499918366521071354617774348615274577282902941331007165109345937668379472530850760777639764995746141948089795158897348518279778141701737459135353678865883378747038362505960945075771279398204176709650426197028437173551929974288117047132850252341138212665719834784064764191841214090687191410826307371011153012436606845200309139835561125848627873038070546291470562859367319604327589145247757505296269923564804742488547232246876321373997357829482871204643022375237948740535355014593019488732502550383162300427867807891796855131606947904509833536824109692154885261855987509171066341164243757138512409776243139449558771826209608395492672246622571355659539270287313791804011122135419937167577134656907161055244128326195434327687081078859327543129682256683656348614140150497981052104096691605157265665650814176916190849197256701839717567257575753431077348859992058790935870385800010584082582100081526139200271972458732706020160345303731804676694953752490823464426774415708385875858381517515776046812490222863770712349810144149733683392564385904651616791450760055346027227855867698285866849214357946996708891360863453140654707889372507415703013349608806102677371078731923545640561487114092479405761803509563659068183119465546875546837553115113913517350005107332709656664311496853147284175631398760735459139500855437594014615324934629193536764647045462156403939429732045535218234543970081625633384395348512680873835452826203337305833979388921384364574942289252954113801399141871228405290234182245402690212115734026046318475716121935850289345724083222165425310397335379973683751142053892117243243154479508133382348562359671130031078575708658269122342462002117549298556346589028316802232428802797754482396673578718644315866428833049898821963921960244021430304911361433740796925844076655128414266191250510478890449690873775458993799247524938129595089424720867122105838931279304820597425901808671754684673944185941982794266043167864208744503742299549080006523384289920783289835624309537586006631612344078645767716311608096667809274354835896977308586168252594512659800121072817299505537809109229089741324332616966566525981843226152542838296683527050653182263674759326859796881565230048681940071699953723572218720068579030222671477051799444378295172553053524211990407813935398498570853996829052576465462396127447569790846894003243697388093900121451122395774146838782266002580307873071041142252194246529158809088316740521602553233705765149866542023613133180767365179626938771716166006281401194303129154285120292966059885328256654899996520037868881906644027947363643786645408252529581341698699628415745633004961363035022505584885446074288934382678615903151039315971714958921569988968151761494063450809950248505052714436785855853912314103867226340542968285981290220296586329126675345203378814274511587682783428504141468494654198667644478986887376141186246116002087003024810163627122348290619633642320159983161696620217470594611020395105705761675532666199618495685004635446705039679240749220336574700868671611185466704969168836954041772148970895879270349482606983517426429465900542529340258233467007749235252820486839541004703420293511289272502835979954730270895414465221103104412749471672957357526430698608921346279581425589931255605116054372107597390615746610342403810863566245302937710622897820117931677527034607040265835518834812788915061106956711750786570532143988732666887565243992000964551634467475962948478983280976696686269862486589452576028170452805934132114475409994199050298948400733447338413593948034561076142527315496251801722841593483438017861797998098809659098355894232742603942885752705838870598051222945914609522267570859236720274308397962186232516598280611672428148793400499876421218731115910258691944148493007279400798149335384417293955353905674292355551588264615397401262980022950496083114666545141595848974428166657361299441960389750535076576793880873881484986768497319275607772296969729450292316609637008481497627071485243174742228490437154284086677990175694857199467058870620475100487063916497953218169627972592685230758977158153656257249276433418237719426881616668315308439544212243044716540483690282036181228193927915060716807289944032101211972478587553290430520631240265542423209943890401044511476347154338566434526978901684917225662452227092740808965930244445275753062661987039132489915689206865520951619383074274975611871975589129405590361776569022614525060699288419927840560607448123362899813358927014510757818323682964800347812021759971898029111788102067770757290171877735769488531584657007398024183500324824525847922214219981108490952923646535707144491536803084009599992127941778471674237029540682322293374819536161790439677625964636933784143442295065598414392336372770942115944434941439774036127692610449339963790301610484447733222746893450483950396076121226700068682226454802692853558091262250510549704158048816296408971444444044299039463940621875895176142033446744709002340871460267172580589123981289444472281029296339836603514698811302607702280957130258804944339332580643104338717725527923372967241966814046662538834321160352268432115590490214886709943160486619850932834570674555082804605409592094042658854826020131144321110151492713827012370329042198234232893385657034604631529926291122679199547616837066902392132670756003884559321553190417068735566200910392327661826292717118164258163306803533066855371548175331699655463087490081166234786182053433415306992799270557305308471193174728210763957362824056175966985397697789312264906180545820379950750298706660420418960797781145268285651457576593453973742243761054578742962775363344451284798925709360714887611701993357411424310869565065879136708955925704250370525510976292471708325702408786216603535729519170275416752063513747295721503528047480817678140496336498576208644762991155957147475251024963542285457770539100288592987099593934897670740055934774162459409442029669645173100093719915439561923243655965485705773526295435870597353341246461454966376066945518248078398243989983984897006765654649031967683955534943272265609302473857140777943875762962274113599008364592543506340437970758188181788204416670417383531402815412837690598840484925111658075493142686834494742196168230850510556455990092327335115828897665350854017493061955990469007815871737515440008939385409362039709546735595962835197535617327879041776471450177857768070028098880974408475109783772794212208020213295233484954969312836317417528112005166574718595437011869677761936465100962267136439976602207495797363439175708334053482915761423503701456584947703496658295434185784765632517656049305649951938271411418362096243215729344448242939517392559745305371019755719351792002395374265615228545515041760687262208914174386371377967017854134246505845599443687013486146731284101726540827159602366569799442592043346445438545329488209638757885408055875795895591424308605882760286714581674014094655352042688277475111219666841926278067121972107923620634159199165706287598350554648339897192163468324622224733684764262428525165905690904973000821328842090062578509937202259236472737981526948853998189672848021442786388052794178390479152241218891820138869370566110478512643026061604970838732146434923059424610143269735660074690364765680684173504009609189244431781544011851594492746887000030776335283775489362853653067086624228770970511799259012853470965665110412889953777005866596971903729684732537025894813594686712887175564689837289303783639507670279433700036031051972873887781036502343790978524494923605296733959339926703833343364832106519346670015087415709805506396127330214022406640758004614657721630145076565796238329529597986769628165327277697639677847101285630767857381644103343133594581540926863058824129470501292905812577736964135860685716135402892191813789543001308180683880435583809242517840911257863824224275941259800514808561811521449386128811745170854314484860910553025976676901639369528283457230084334403331222066694911571997011770694531018422062235558972340418990103023024713498305336770318645613521058337011575917412435327175624670430648793147545913340877734320606036275479513428960260685009130118269926562599082777304804461729876815377758271023453124407258119110440247909341855651607354543907076752127033788600563997343636432235109570080412633064810914606126204972801691173639477917970671061532315583432717416972734004228800427492503595097037862430450253309971279253340648400506606577455778547924159013344073810024773340969214528187481849428564261255465757750710371869623917411986857665115147641818971761841692859059370893447115876482791462596758806622304011118147083433319239558717769655804521927814762727163175078504054503083247437259605009818818528560177341134849251626261630955940917076562161880764579071106947976414692258106097226942430717128224803595785211127170161231734842445597381158961090990296626828426937722374078395148638874543870515646827536818096895746899764735783220660729357088209182256915010577942030109929632164519147477455388598214814822238926778361692680247987339184206746289060157527831994414237433734940573242644247108514593201533164890731533055853246739194752358066574659387124665720597587204959772593670921164911907870937172822066789739014522197038469807560671086832454661177330088217994903611007510062362993024183731289244614436672979053505105893785419727623003919106243425049802577675340486051211232343966849099757394427938306778806184359395123784030733637756129621208801551782692549624780794604891018739472709077016411096394236714235362291672252161190512606990465887791526674306460756871658602653825567938033545422355481551269501154059398896804035081784368959920863155378394128651402220707102066825275525425781802841352939793312717221171915023833820609217309566891400851152894377891777901929872916481703899584425838607156397188342250700834007272031277071790300835489963051817265539674090012204814008739572157680287008716455995254915697854429412635845804865869661774418568071810545984358699695735713561586868421995218018647429675509881296374038100070717537567800179513711217299801844914572941478941793642443950542913345633185877223069773394201060028204519958688130867347866740995298306265514719728843985903195842573106189800401004688708946800537349036312708157476813756170616137153257917625412962767646187548049512381500050273273168867993480937519054863749546964796011755555840899097191245876405997697989684937259773502542015621373250937236310684047765266124415229611042665319267792908767736875784057818926949882035781090115085158082690742197692792492308897356998535228732526114550518391931270876324168768754356534203198844207621728544698438334221049137906557083601690183276379384302805694648984952040436567749434160509958147142538247686546487774132023542559670919916952292178473371984789886007902345917572522400794229940644532486476119480381901786067852301108229397388900020409471707313676209191439849931320164994137778379571630915420020316952436910633951920083618263280283727882220978231301012449410045215345245813149863076872222217240656150741619149274469714441446083784478828058751887052137795191946965950257448581971847102937643757680714105243879507433043915436018411071050374054665515140003088805320552623535629972186769356007214944520069066931009980708418254712402389506169611067809401024059189897653318959178936101307906339276315704190730282187788170647863461218162047147526602763819057989472865563339663588160253474750248819445566196007504138283561272967756054331418770571494269783693475768142894255323124283316478704818193551208482705436959668672748582763582631779327879252266546999763961237080969526795426328567457180429566010325047207643575442851815224942628390992993721171146237363961173171302965252606053427320488675224452270929189236315987161408250360112505753988928346125095581215736359184491616720115919246030179981769585582537063026652362036352851293634008568618326570479820514217966574944188055621831679867926452297211794895053400459865971947558517934204058289370677117127483736810572029539897485582949034636971184692066646076065787505915255547835977015408819012009620457572388140474425768084480559775661944931027289289053481637444918029407490536386135004923024649289283010068030916864478953096783502949989231707927461675906624453115808267835875071695123961269779552353576831351869361249349498573474007849298113694866202967055388189092077744094910197857028368502167738645236347800425262667831485496171955055979013512173918153216027410873081749533736880964047086002721735561865849251395783469503552250032084840854653706665845528721236452128710151438973401467072919039201137946190571238513652931464890144876632005637685008912848657012547385422460423903112755254666059885163654427251637487263494438158376487089213094002266593980109212280483315820583516100713667829035001898118800907785051757537812331817574829148353678740475197480517262882879758237550455285358745746349675387408321267404663236865543561528112211288245209450070973386095802754565668772053076779188135291982207929697306196101042949547490828528508492599447157170295275996633831187845312001878075508308799795530000750460490571969945218003031230448249018758063494952689057847509169622948275042788566084547169218183440258041793692470149409131539584304014100340473821516501386965732737484166422582493308479747582972654010697516437576127383041023512937113865603408655610424012299834649216160268819319593009138850471113006534686936664421372614950401578789400074333240075515851098928562754220450427103858753142479658687213775176340735305617658723783597011080607080085455211382521411366846146553712224947053933044048588384499796880640420381209638341896533268417040306383974839159758446151982095315387558325829859198503282558567286121136467900202253520954212757554435926371776429997425842608211069426229306579259427229885402080238095034690173427829205633712346468402690115089255502213350698746949360366049167990582622507732843264358265837763125337896856852358276981599891698197222030351603446775418882892900441055491064340560320103691863353997301764176927766365681506648061481895732505956851300842305567366289774819148099909171823456459913560003430583617265805447231999051053433386836058679334965490185213050724068348549986770589605713000489096074220186753408067537114193635282050844695497523999843398577756907690088867694561433865679601415424218708370783693276025056091078417613588775983777256974606637355351532300408659076111482264192759280713967967688103753146879426569210660453585690620503549863522197070915590368091360222300738570651274842895831011139818579315860961202768180816987359531043494972012873299917316255629708508557185430598024700968758568784372068633063189345830011927286377443887933416949594100970609788947845510212341405749365215898887410585711171386057479290574844967258269180655862200894983561540437880686581823878378685824901242655890491672149446479426816092501126297982753099898292382076821875649599106505782737375472328780766118471956842438284001442965402508377714044501976452191854195033620690698009858433563716326629393848737513931058843917664235093957384269658143130880910961953176207001115709463862130089525073092678883637876318484706083104014188926330893819012952000760997646828031541892541672612651432879605631436791252714315481425928763929238898596532294838997055376130470663167015069614554748769598408287809974404670192300135163119990757936248089395300204001235088136433107317913217151260880468068626148749178695435748391740941587676159701405729464339579869209641684904917801318411258766912502280460404143600295202486235016079085766839575602046614196965868968287234654816524078797844864328908786200447041376708086690676821418650385882583987351870554785516331937118694629654179891865904947075894835232358353101442251572355008132394673832582234420067941678788470081460184299671760635826017836573421414993489506207026758563089541114512195808239480562350164252538804761586358092503707147643267570224507174614389869306540347223945030351910043607343298110724339756656485043830232074470164801379002502268174019605112382219498568693875982950511003604580884817619658317465966564825576497829601995073560828019458200842299573833580516688665508758580602945737449243993447995988894142208346171607830904157547038295224830401619022771465825440512335447574222865960165275412544559948781503938701842357566072548177625204014012035089436643744625623018767232390385990609960686659012555065623719809408372418838545986312467754523403390486059842922207059116575036743198237810182545613481135188695124079946694984849001367606669743033514292503469564467439928690526138755116183331148094414807167813982315776305013666632775208075791133749991968082473607127232360261622779578227809004624160401847251352686128440363635605507634838475797389665032200444383355807802111120133289076161368052147118883499297583272291391291616928347506068530759418812074212579645676514453871036962049953767290756808869448754470413997225530998372803100158917049767480679199478540070402479307887180493695149433923274938781175910005555860632641066922352879175512217093141090821811397461900820759615014838910263513160680884352961719825426660964829600632941426437967027838697457803071410100794154391240723529058937534044495311301926312888557293691876623966658515775818587871797939408171686409623666432896947609681820635393960862265246625916364848292191241493143298352518864931495886881676570284079482254935077599944181855840022512704895767381083845888210336159713815070316670537517460817434549243904099233176811811676144606031059959229693899660363909521619125708816566353159426237735121623719421528309845569568104576854417336918449620376654902181122016938385996431093218085577100735707143112520350131434039971305515386608821148541071393184201848123067920908384612038190522234590016730805153822215745940471077497205554366262454821805559167190422148434246629869380644960770996069404011756184675035212659063413654863558702269328363273242229752206098034910840021269482828022303832064288304021491204793036948557250033231700592042480339460364108967792379981657527737301252058163206351580736743015285429505391629383309657844634425530742385828416746006576339337042923141491640065723023229132167290461345056561849617234752396852826318750569987129236568350977083445489756007939339137825584393256571145281244679172992554153787796058256227108584960262013925475297208331190876471054530480842261922917475119918812590731511721416066289507001678406138092082406759468742071697433621555142283496671407757170897329210092142642690721311845586085119022938136827060783697067658920733862116282281966545383227420014247413287833732860834547696357145775985229196049116164582637533053478991047284853031637577849516877116947402794487959725257489088324227886974924476635246571494896706570090020554854069251691063034800315022350271378702288039209746362857221733175109199603892475300694703681127461620226807831668141116289195254673514628163279443518680378568641539536032202105640122084946682348456159314082194312488229975441141738225279930107897337903342241937343467190948148945563575878691729577615263338657940539788742833397517127139028494437178258489867852041135304864152970872364127219036197994776878787288836114573203179139346658286817106084972866369279239665369308663730610425615060141869443798982591332791962315856687850742012881258642665674585290381710553700197217766620963002549423570968372726905528882153562078575027831176904013134523517849967731337982559549212134256879653231740117156756326474241356241135970572732640557773313673941780446150630762169130563165137783838188657319178829106036930720281072534910759796269430492428362943477585569569203842520566094304235672328642243715466064572985348514292921991170959363552728837854530069903468907605948118581609363640815625907116088194187182302153662579771340022534929645913684631287508529761932300510913340582067449024018244887196042114372363250059571660674355598171689110467111621422241849547828731524869760243194549393743117198398666972312225756353659893061029601139014665402572714357378100218421337673980712312907103310689994206253158213125338569228832021849092715241540499687941652298619816010253299140168690987171860192439802326540618655212515741433037154458016157353680174235960072681494917028139050934253757962254392968536182103158953433417174379646885786243574999607172987963212778793807410869908649782719609531273815110355509631626511022822330630344078513703503006752783632137216747546167952412548378326783023485772298726524636939570001644848230564051689553294430882088128169851122447913847648578344166352413610407841135902285096406091308653559361093103654996686412686428085530253688729984839056421815860377018845293467396274203645547974734769395768823974679530843946357768160093257776623040250651161070154342500623157194560188188522894838952032842901389846890354242191252243219287765678212848084123993381090375430636570352156140363842793317514495489427451570954521793702922503008662506634001362869425865275871283958739109225844911408472103229972179070206337282466297206595116708804597218430115773064275470480526955116209312376961737523496200978803124696766285332346779673705161038492923243312629668478270691663098244471532257586767527150925721210858443791245392816997310778914298568133843744411056077181651061951568203348400445761743594066333469048408843239067848560293344422856413192845095764194835242139903793751527187243582767597192887334163437693375513423647948501987868488381908755604362185235470155808555845115518981883762477983624721930021981092350568459609624278310706664767780621493887914863483083949237885187330626173661810890516405751607443641346834540953564271585162541668687153706531912653845139918484564806842047302294808450295034893838593175858134672133876450885359172025492194908023952030706841925502239776098529326951411684263664639083097170142948921979398434893104753501100354453509496225631938772768385343139245650523506450138955430192146949177613476939323975953131988637116088783625735511356028539579426273640305091298057377966104957321140994733994858518822941330481307029952855890558765183247858404974609681465313974648301807140810011594096497465937856953966040283605356583926265438759345009869868171175890087053324353937665272172541328182367479851121683666670305017672080328048620323579905023974091611172721231619199801714118639676197379945934733472910507841847185536105943317369914939757154472941871247831643054206857496003489289482159377598463134283933735511118400781672102501801584932868914274687455401988240502993427582137608086113451413405477564901764675508123062601288037575069159303792231839325332431807461238921714139756600064027145944250612920027187360465369940046424840873157737179174097505401162977961127513017878308024349671395995592757785310789496281272002720793767609246115742787746558721925400772812294643961146492695264834577021125821434486402666404373432914053161051122823087885462620065141678904022606551578452857392338628227774646936952327876378949488641797460713351447695801778302335379350189246745251738075309653508807950313304539607263470057391849454821187635045062538682609662998914257421368786538522404272060628596075248850915114005734988477758453191335450564548286883223407444169679107369820544372226535941885209864514140618438098349940945219588275042720343840486232561099035137008871415973576973532849005423378351227712645549397833139888970313471833375973246408862418212799905335315908414759496358011892345496042620189868432162840592130217720335799502296507230799289866111666213625672108873344123741921548823447298714416729218537618648823006097553741220290649123997665474820628133362768288352937072477993574964742770788286731700258714300211956529545148784743051614343489143422081551877441820661462206910414963576606452435222907674516421996330792961881581028930685052452161589320266540177662114560237604925462355647841585623913485134430802109338790543735573644059392207131424789939867631700768830565338037540956396576988067919933692643813477422427496331325881197683654680588776931521829053850623513045469607889499519204966697447532060643899843075353133194939382746571447779444543624772045447992172299136229547478713220736026892067617866217125352376457148351208001055801643004501969782214049478433576900197280776968682147706383447232822916484628939242077947712164901253939318251424971764848483490210804694425737172144399963557451068687421220720280474136576649504452518363156576504323173316108386613392639463880928660891175359888961733064103260093936285031366482136455778090263433355887214728626598299496955423696026194639174914511754388978473615627178116435319269989192062973869329485748097227517247418396657242602950859943730910033879707720670775873347032099261820617515532710570978323527202380968407623866656056412106806175845359979957483377492368626926195175221229378337981676742118807475184385132891700415352444280966367479814395413871251406548779035937608108359806908155187823925248491325941841250917263514980147346205147068700646427714240291920005671993644094423614168032863145782998490742695517157490458415542477532593225158083855908096895775019764361201974795759973715678927040441144131313489418478681598309587605858380916674822282185021694035975524050386366751095297804764217936195056510087739609966633384868403980260102788348716578096721928267370181733244748404236728640584014071172257690270597705369883823028090609690676177264096662228145937158410270458360597942966078510131939182388948737234874449961652516346738737725777440973080251030931085904548320151661519984591138182315499587011684663212417905369748231284792914763569127806548013545246592702078290219473370028176195479219969786401960141809128313061122908954846781040623789361855180565887173006449244158714969898062162749542296799442586097974294090735999325985092719775687669434890885926501755486514365487070195651173186139801955657051820497160585401718789668027738925461426249159916774643465566924782308133126182154446190387601679782910544328289817825346463169794096404908437203697149574328915185140665762146984902742189665386609879002425369745353805369174475418036484873970524297146342059404821802498314729945333496798212632842077867431036642623178364926160369580387305544777338791514776883666341554501643407982191616310965562408188199543685053441868916917313611271351346112209454493348606663925639778438079937514786058067244205877650558343006114019720742983091658489761276140139695431204021942739660185146728483843855952835934250563203732841650631295988173175414922768817135990781748329222605725444999459154977530154571978008695752076104536753877788625021415784561124672477721747376055303563448884360334161358520901623883898144380222558585856881155622947591876336280813385982873558664482275034000980628771093807193230368652541251202644244214858574989998829827204410289755924161749809262634526861608050313772146849837483918248172562752095770567310730683724095070184365867547306063417688228379043004565810865742799769120426176472587723479858799333632426113775870311196815287679835852407148536119677343235868046474807128736761311249758402358263902202311139800635253040244151930834882074060666641676182888964433522359888633477015479557042408922355861368094024458746902957802244938201335886335674561588251740428737793693297323706731237673364978799997164953887192367651985196160872643721146550755020909031027553651621601961952850836216756888585063307176453301499708427924626339188202236061854525198131977049236266913939447940528602629224734413318294084752552704399683744610301240735249660635414631541447332971550117800028341145151103650686793373584250901814500252133293398909379712113504127390539610259280780450357377317138077151543525620707479696643535113915488843809810359881555364850002072112327051691275563016042425118312665506512574250919101534200076495007894062550327388003585988481608944622740379767345254119886859888152245895491662267948916212515578334297881246217777303176895627493534973275901279212117386514967295731651471660155923584935504553704615472628835734157741104194253251259368163471212366116262207007950841497291819963954901005478670832846304089118271806302570733346415469129095841721721849618832291820846325696657433479259777935961650542075886165757726751725495470876865659178221770700108694908251219376969554449139228931856915929141709062973553714534825663163259984903524994116277146295072887203949862925024374051500210605844684907948640072799749675797471052031780830242400118362475199216030370934479071236010067880623592366678512642476498748619479959803764639305532232809866433886381317851039634713434893502946734614759406085770609919548934161235965911070544164942627794624687270691862944420603859126904860156743523489902211332796046669143066937231505838112782699330389837926234093870679762874474525226401673537340753717693536386635899112184243278268805413319488653553839370523501700653450468816915689180056765876252584810348684406300044729742895433895409159545370011809641947883115270348003277476232534050818086950238639779355433199543890669509308911982762384720791081587977095640771939985494898964029944040549607025521463916907080324451653450260679294649562920218923849159296913694421374215312129121094245585996041554095582920830882144624787896677352964861629452707069256680414193997458944581178444454339429278973048402958693018262571419092113856998769535018221558646815128507023068673892780981346645918618578795591149275730481329319920579486134345200620843758109876661125238468655309424949150562916652359774950976404942543394449679510083030272511298895935423337980030920224976304031591111240398207817355191056077194317252061441789977362800444268890520709745234938418141692530328952634533691608754518467442881284373633695029642265931143352178645256417526930610955489591085707755609814727691619975471868964942779106810207320424912519683793417092153367895300387214795543344969074658144122094532319976717765062690383909640641103311461095631480257580358443944600880328959108369079227995584343760475562323485530659245375812416759341288652329975826463004542064986782116082433034209426272306030895338368702858704011268171963853658552912930693731012840519395908755704630404552026586779259563620159089492892209676840847538193133230059547915056795062478436729596069868327735466513050606658817396484164221475511167815406458294023254309717782945420766955275448393300522041589787454965755364379602996162500198531911393677802999486056250613097634746537497307875729130832381232774514994743246495028093283083465251055302930111439252847072278409453802230536272181348329798989831482262592858186124273446289838350684566450102137717768744815609917010034877058840447805983418912399135147777362546537340795404495047165904617502403540137209672933794108451057026082484359924615866019152606441274907381183565214241608313962272881067000942566300565053248789216634926311315262325345718268229274678219618905371740923642013775854902513437575015043184172837573958236856911113424263250991216238314082321808183371012075747302826503898272574379318558969551346077938841432680292135364114386102319582041474733810173434564659820347681108268160166351241462186794748665550875093984673308183779015070622134736351919954909624415218656320188839900081614614503197452833851812533947283888993652353903797763376361934163370264971352000531713865488998368633786471993875396677995255412459160237485509796235502362228374262293791037969217231553915226912684672691286556770759132507819755279965187165616562832202387893941377804135976863586899026288487532475815502478744007596840788099309019272195575289288331057176111816998922986684697881688880779481088626205616178162036986472540208006129491436082603320820943551681469352964076158055725322750542906699745188001201024025175711711682035305872310885542803940760191618114490657649385571915661373576833268799131412973848509875357891715532828986019290875846912415715897998012413440846854571918808756666889116844853071853032217678637762957115206915159709306091764531767775268997808752900582936354107889967494304382393881651148735499666254426813478068841106953120594243149947655857072441799763935514677168947926654626991357643952286846023679434303057122620283689760533189119059886683505354376861641965483571882244052372584338346085575344049110677501402319208441392351882858596189165098231472763393334248122892303408062753218351942965511391295677238293514157185305079601308876870675144857790174011571587366666726919596003653454112335566672882705456310159497832403873721468772912311643694553413877354142044386704697364290850358285884942547240147261366094311769713824390856245854616728500290646546405643437698621427214191253963069488208145583774376693814373196823826254485477734786418597528629834741502704072084962900345020253510772891215840517375093146375332806979523436870863482477777061153859259042358456313919658916861783075004421710849202473717933959717506318176410544138530125950813786481357212698603546732822587226996120930650527718941046072701321055790894039044142538072039417645764072676881960946547119359293378299975558921624565761301228239988546881006111259070464460049241858162033183074276502404370212088485130136672762666736388192269712796493686942754703836564982553543381286752801392604214165240672992543954235851378995005076944142226885691375886679496721006237622181551044249774530758311809635432409812173182381272545370955797192493525142484488447181158240500260563993470726515023628923918086741553480344810781590908115999859039024480284410612872391409140395540947867925334598729327839733622303987678650696365650660979349636302910847584724490620744520304300567400997900989665301236248971140228600087757403241852211305034063724185960705162521173772319835503209101386965943739557052579608446069265842610753890383427403009245358090190563329075061056279633657256272560394764125918087024918862800619426052662121730814167800178035080198945886405577112704970772780269447120620658588668939609115288333061444175700418100129144616367632319303401666652307824899140998355998920841386738851474986639918360356289355526085366914259579551445054035987550302439332393736050481722931197910926049069216104158051952107402291010065885522374933789897093935809321586195585581724692978154654197032844956285930615602776266365139284174176846942152276945704187914963933318979035814649253203410401167052746782285888780352026006068652710986246526250656126544457433939955110279711313388447916211700416408190446844243401614841235516478509924239949465064088839772625737106552858794284368623014002855182830820835107271535648530319762445418708581265657776243972813235206600286962127851191395142710847761553714840886334694913994842953867858338050651748381889376665526068325551219353972505866523204179190279599985254487753465221144616170786684002997814797618750246987544092374328238814309947313962711954766768187224386891495427874108695848970701437776499923838738759867359960627159379376038847123695257816702343810520253774213552182383435215087680070570827315146814281693352467184927391684355309105452093801596803293886685461086089550538262256469069774009673231241716999464680447240237167256595769243287176232001551960032786235670579856480127923202335573889992851811912777091462721754420133229523872827937217837451084660863484740664653932356126955366854098388587521745064486268340756594398953164379225780536639331091546538427404149384363079734139591058701157029986629506200238197183389654769438891716278036927980473392267136655417637398592269971900472389973872241317154073473307817189740539550828483900906076451381194853160154998343622328789452910750348263000509251356081986967363297571287847529999962102070874232643378485677796712947599939727241501867226377725496813058153089954615532164408623132013687542392212268545300543774675514374020052388956830808138629550287071501201673507215303875588832319431953005647254780247696699584824359077880590586865857510515223352911483008330063913285269203680377154386629455395731125608843717242562166920847649834221094008651487622893464290602410984882841232804685225446989620978820606760275640518397079473632641991492293382289289862183978888530557788718539483178558381026942197532512044422310490856400193871574589308324317535340304405834647264603271492070543622751954205130790430127115315333985401299220569666550293647560054448349016506592621222777726968696070302790558190694143911308794950259941526016427690732732098902813858686982515010885822214366319705011854500140080382316136904121940829968777689749953778065829027815255003115685500671862888354288426645622632062703172460813370690918472495384629190228128079956428483833433834220994903493112063868980037920053120513293107039883818556640137784781628632198025841865905507361773478720747190075037715099376613248840726683227269885217233747935525360099845476636316898270717104894955173720226704505969537724088845264618119195770583464648683485609727009965010838693044044043002493822472250141909868272640751816916778733883473367882716687040654767054037577184985416761617336494253460985752085946755175359634217147989196727830206618720921605431111245020589073304549081074316621926680148828174530072203337083838748413712439393852543798314911576750956030672002674314659510913434763894055043576408229219634071914666375720527253900342259101101748140721661946635135895245802489910969525578161700713284215099877578790271163017567271584786570714756757314206411717913857153365211631866809122412734272721993556494085593858520449846092341566424603687272748301772959279121064238870207904817777913854812031124038366346616173279084977862656622326549712715333086905616129472976281455159439442451587561748151730115530637693144234079778107231760775349266692299848713868277425372224181037793203100927091452923604236155016648485274230224522430469849198640222679337831139864327551486016245204900116894017283247195449615273342557321979373848056655377546803973956347610379570635824081669550048872212832527350454084590964475408069286167303369759071016099157107918729251832106324607658377036713950471733509379595507279159497214932761373825335787468607690094609428654640924072665181796067589897931757453461833796815757219971703409888360760692966837763484317161554353241241332687627945354869128517187857858753366848376101056115547532455635968325806165154428041015555504813827284948568438310885028999449441480746374059827334936235453051316071242375896199392096072146294926493208571683575198144361998137849404778562183410763819777140154214635535165161951166823746063312705301054448574344173674945182559049244181883063133268436355105473420378917700192716400754204848655181168757462413121561984071774731709696208266493075384455321002048089123580194814572578230967427152680340470874180099716377046999700239249590490708193186710336918852717890503587676874807064654079371559725564351464418055290150825052841628373714272339524944129401910440403958289361428226597335634560808581221241200117761082243314169705720562261504162481356378152303617292475128796379579161499467260253205019479334582145313690644421188811524584829119947001390765166676943871629042956079852895529565792660911924769394422260626280505057714228894771984824425697613827130177005032025586860780071687366637817271756026959565124119158434954122383910937729631308422584698519209924064059436967601339897122396391860632032535011228002693449287304844267249762109264214359895820033111221444379807892227562608807605697036468756699503503482453377463339681916380456115559191111752174561436529020014650628719974821070402722335547984449210100760724994827136821542315545382056491894314776781885564904027425103312701708491969722697406177531665195716695474425573467774748000835347240485542587843836933524254055705089842214244415591568492647016348361636091735998249835434061348967058948273888607213641518063692206778924757850527352323064076279278918760496469682415281324640806867944795819927119783891333196246243452261103027915684096077099973672094453129622557611368688652748732233904923127794468148778769812271170477413886383936082263275477459552876019337755362441859769593181605894297521998832809879730964153755353103868014217987752050845182210761718951214276414812849120544377639830552126490869573306264111224768082084138513764706055529727323650101523785347068771350818955842476310177512536163978678536885864773612780284633123131040229638961938437800298751317822532267049363576288582276049689327041766692273431631495823904839137345787447604794381697126656135250253969099690530814643225134506044080922529880194912161483347814890875112689194155468863348297812032017074029583281927699910080280847691731138744818810203025413729022789755918174926097641067159357230651026528668706703109388299763537681110808389927802599362002346746847644012736887883354200150548123323621813775335953027206263210056089803441206731648610970306818370779465782706079003849112940543872938729340710601236448383865668787952315268109998160824332898879602917616103119159256951209174969051566639557228277272910019429237690759430731516352542012217950101701933077352205988741184960496384026327621913087304966131037058741988296842044867434440396258083039883349061130746606049708486785674820700695520082240479521243427882461983565441170073875733094556776486899691842949492281731348459029248959540092270044549588286139494041222466532844961254080798875969310161215489410266374753931348398271834834424798432610148192209599760709374381045382629156494814172384841695832663770080421999266599850723346907052804090005196983027306532134769423495700098419392730902077332541613430068922313389885978930875876679994093668967712797936103585560957516459699547192958850475106574347986212001301216163480785565402707745516915163322014869868031098562185335447844810808989702195005420713464809172980994805409450709446806957719557142024286689133650512764332845127305930860424653149035147992653483953164433213795807891037880300319153291410894976821486786433810907704417854624312085416456754542438962792296312796009521289596047092064776486211763295665482180036646701152918655558345703642638395808415483684521705041155365725897906702036993077667792434302393560528630231128310149844418443817216057153648470226084549972747237249415227092142528825125619831217395987154804189317769443079633010870748993985832856484907520840538497105471218857996682363038759459620970840841696667858219365373432001412815271897953526471530473772557636795039161061324810249425709966287560574952452831572940233866765969456921887835460212732877783223144687711170487148310649622010811230154173893645302871958037515216074785372872595486643606511522519968505030549585803266006840678007389215726093698869114805878810902336675856945113496570865647438470030440861199200554646658730672656440679159307241692991123072484196685705481340072527567154682757141505999342213600186005407105084294189913495018179176267226423398585688697674329387667731186742387818116337465965634006082044694496039410060555515129639085258753530028200840442073697470858908075405982730530411193673107064040720330537134085594957780453565529476482961218438781677985288380653835035756929398405280375482894550619389473427637593730397926366209915007316624425807807288705661132316742432662491019561488346676270456893424794422997917843268692144954029828840478632880411164065375947546815370597126085520356219051654470894819675819501461264220149248607391539099915920583967866017634392927928339015572011795789964951921806696121487865182297029254398689627591854677585727854540360050518780711283403953672091129850677089181029303904722173344298595586489850101627317310041974060021531600398299106832188860235408307733373062200411214522224352154182483021577358474222405897243048864363798477764872806790393994412062914675353487096920758409297179104670526593716363092340890389759563577145121439298029733980151453683354170531540371852258568087646610364106025661312549049373068463053248533519088298730347314099346979947749608883592033795331982931823672848300475586913973277736154622285147536701466206556615101651092190620777445429146861903650969314616276090007917274864051806991791559290069087779189847276314496907446304124551704904512178372418222993135305404716990042085656483830585380401776715481008061100411430164012173593096164358425649305506867970381490089589306547820871546786818094563109472409610716300404701481896818555829218565348622540632244147603481873688578147898892517709001656075280780048190508222450978866273428634428916081224371147962552673661643379596994772263082840944222084576138734104230216805952162407318492011380151052664680767193792070275979973865152725550105823313298047589297913669440574115685589679903591966106914187375649849879666161328781220415151786181635008342121915891523923274963675364050610605660594880069486928815829058056767749965096577223458418723884109382260651716983058717177668010283106354361914256819129428489153175862604031228580530372465537721097953600696736966056481316786631208214647855824538952783322314295237586268705285306732668931097725797335603701442640757652846369712747776999059295776036074732508680655606066686083525827891143808106607881559929257857166242421232577865060176725918397515023387777572435185398095395946285209788290159672214617005865136976408826456029736744279508115090370229257803714311130019634616221434503506898377421983403823758840412186970176899604553270846173374758398183712032561712132880478150750549425430322883756984876214875959483336682202053358206522258034753056959243189007020981454704335428823415924970520886748472183330384444310429349744515283084928571874020746797665528679711039611729097859330098253005940756191236400517905811137461832218851546717647700153465328087369248449502307934399175328116351202578909836239160391903914061591485139492038145077935274432536332670000931821917721193572474169296500951353591717819337662203852715467607691578409509927276868457615747052779073948744288416211258111128705048174893821217631331239855016158175805473008207573509934447787106347706814504562240159069760966230432571883900968154832193077460094335560259245991025382444653528271843604408101761461053566161629613228350271447507093365032922248393936260579142680760906755971704563579997487946116275457909166135389913753277726739555976076889380880158227274984861254532947282267995294871869132316409981114135299454653166575497315446178538015721046727194189010465678850887126020271350947393349527833699302098671465479869683690924195994339882835029518961393339232670124711972811952673565304100209482611270456583474448827990316016395554120236779293543510412192905892653243510555152997533142785671634905432525806686035973699816441874936585715123532279615773017379920209135396937611651683201302973787165607601382915197326778730425240585151410546560874801040150162872443680517917103386511273076028458535066896552392854611381380516261130858168351478735684170704032457859119746304262567665850821399274861329496820183022295138185659584207069895434013076538687277151147302201340936694773666033199169803297024145433173193818705988119972560538233997739063794857857586442570838544049225749763638617627826367049961674784556089107867274921926371538698488260055128644707096066990288802329095461875773212532463488738686010886914227034240282269868324847767566219020175687432306020377310172695216961004597820730982558700010913356212959879301052470489907514090673464331424355752732828040850822663145167932011530734953774076630583165784673380797468578027731359700759673487597922775675116164908595448842263852959100721351835926719333538248050173182194010959577608670816142248331678329275585281494111479260334134527335081769225065426243996412525410815256893407022993246405011661100270211782358904515239385202239066298846711650276122665958628958819227488382121990072668922904016984091628851560752839376170287241484151608506386955170748586230486613828259002316603647426419322881415777692497453259522460781356523731775958905653867798482983532098662477753094055269014021114570380904571386357083698511030682111507389819827142735383734470995166995711402339459665462764859914329135005490072747500751549615237888268805591954690001079013157410763236078202383268072643852009760559686264440300181665015434122900687383236295697857467780359183179606722185524175252128980079779630679762543182703604695556714834209136072829750640596011511444342998314538230788424887536835512471441662470373597982440797501910112070901636550342527446780324626776536796462771466595564652510187670244543399948139397992208873008973554735700948472935073355702174842975599218365026011597683903749123249539855550654260715723187192504109035608284907389325766593077339325656274290471983580411396719796601016876489509524967086622982429535644903448750441551028730682380680304886153292764814544057913893903354233260414606766507611524238384524861472845121773305589937956835992600346533784508894138355973275738694174347440409253456236528843103906562672327210828173908392294424402311879472728610886029199010365203031505452131399025629759977345201260917703047584873552537155772908620183410564803479561996687861312578250342407863569878583327205685180282148144950729099998628773473590890330015144458383312128326350063739338954301595866494454055773408414869213144128002811751106823113364918013991787847032372791046000433062389023693050648363617999221543447286452995005865066331240582330962284634738835906679226162202257365937657324801220916873304176092348959852009563652178412042407601502269185189549658036882506162402491414496706933051538821509485134192309448814613560139682197437264281307230062680911997383133925967353561490281077947413763157913370519331718301485989921946901379387505600653560484021127307250807903081773023155555081680111039258471021535794837755444496736002408912751417074508593744488981797209216986051097719001114321386638664597340729810194790869357899868637509853443157042236835541776776807186139639179781648948668898179576192997504960300998029428692612127143384950184442053157749393742039096328783905134342789302143194106290391599091015790723449615532180071824179136235908146383851878593203449784615843511708578100907512890925085325182175865621452239436470668523841129377343588930420796699154148442048824618439301022211101576691759740290004293563531896741880123695746053880866303361541203995979114360917715931911957809875288396754470747700283468776001171308863451307520676382444054990414934666361863906357464797901923062060163006828419829651384378658204490064128803804571775077195298524467704518795871647328887440788364936355536633322022129114570324099936434077463141706253116291064013991702055347282852730970777077021295868047942888892649888082408026396331292655195664108690821595466421616820361087635315207439312667851545744343198615996211795420155440500477961672798773539856456065430638731663259480021643720797792623917777729506010886315492921870811499633379711804060788158455429157875906918614597161160538790772326538271185586039863792023063832144252446392533645448627793363609720294330286984962824081265146104576331539673054606946010201265748097121563774389426426519985951203267801712397021993727620881104727181911403015679737480631013898845014877584247350234067232623988213948515213655214087069810385869182960927444633388636600179899002007417797631797499019463061955542485239497943929275085210774476769457723254627028072078423272466010178531373071871702937722331537004866304013533274848161446466093358017784597231307661150909632463519138836207358762972120970924009282931446050306610548895322382640588464944991682649347496250362597886208399980883719819104013074113708107394317970375595412232544130871567704898406599860753584013244864752531237684336345949294627108629720954132474074298011704853868883700310797623661451635971284151334861520310762198160533044400436767925513103858725208562754529447842901941421424528917285969933128496111960900833147736477740365349888090282622885220906787447641011543623632267416264966665052306400199580658260133785161164730407551347605977591593139102723599584061001094525971745233046832535180844561492326913184541818162221618607395820664016173076377257485298391650831316786532518245362034887645048497860016377834459967869525806792554239767253919599093066706121614524771714461684350905380058813543327173190615934586823094610055679303879358960294015466583677223864477885890015643903258593102013279496310091373111489551113426011388118980810571109912687438531725387346971839304600838949773618364343025055470968191118607816326119478058044771362853092228509614025270374082829050255887053263206815381989863849083808623870819779712700111449671231500805938500467015268060246956564906005852534129734172885665180075774021763769555727422342584365058686129855068911795692496297274682354489657622003468230926428022778304331310337887887432341340043948837997816041218334865392526548816998910657397303491595966117862579868339587245749467098470299674691873477278773793746106858430433528804250429732231108046244327866966411015738970725346053043534754507528469449746507615968028783431486447853582791703793084051517141000983102974426946594278676887976334542837597437118703275968305239267514564007557750661294810250646400602658793793626828282423114101530159318654740450845167186509286969726069070563486569909719212452829010459731369623677488929154701833828989344728050103368108790521957894841355961642716685996462571285947033508464114525832450994364762371007742955827703634901080543472245298204201697757426530046671391252978966774846068530129121559544050137670205918675653333225911177333771707276499413663611258854994281586527824840442360120963434294441384359010385096938475842818155637195657229477852908736641597896070699240835337838725817304311546306542398499487811943120547419958263980307870080234748804735906667014998383952288511088102379679826622235069725203898593894521967834479952199052636338668677940190617887663464593604729900440999829592258628564123087911027567080273007448266583079025238520910290196865082477037941995260835724981652520393839698581346396877825572300045581703390438820362592748967834504253874227858617982101625453914719381473845366452141586294886890835199001925204491430533472800294423424552665836772200221433277374889247366762843775636244956816893048016672756627861262710275229378775173900535548190700504720070782778036040021397707783361006983354078562148590860524692624230161629912110538049995349154329086861174080516556226047260430759356332476934922075276348123779948637791316469885770218970621822594946462146459963024866502381888449167175904089078064728927955375500741461252863599354828478586424429712657955475445745998668405890881796633719317396061049871790684340440454212278763037026278904938263790864153340254159608953507279040972896560052741229869737543175968450225985427315377946949760563685226378594822539825881886735989572693647530954832366473859556167190361134140305135072412621645717909488461782709668567192808421198828157330486653872389550712642838189320923106557255509387334737645027309428636286954499591873316145615384784682929831394891226217226753288609546894446062101687455656711484690098077518153472656602794021960467985531714007301572436476053468823106351122775208684204513863869963176160324647725119115034089346521267913089316328085634771660230116341481815418087809695336823235983369410093953898231008795112852140947850194348759304127773285394068703054519347762556956668368071515255876673717992026833236521475879986705518481322128192349432266377605205968337877674222619465219751625187015931701324963722519727689422308879165376574171378547833406604458654963166071820944537371707605293599830068089868491561167952560353638422944149014806414486843105880425629163366649969829079779704982667543076391011768132587408286637489796072110436983802461353254781879677079717291192949656365938875190528790575102057421142640628103864665144031962625725436109490036815256335065563694317345957802787020269976620411802412336419543862259529703741764439428946691491964590365838379476147330445991889911625543617878428038259242424304390091306837242893959682718607095417209208236168342097672479916542538264736317320555845058005942507804551833874921106669007019336657436293292352400161873184792335211542597262464510823347306217452399299983263755542441914812281370361147908637462164314109730870724089869918863095723567319245806795754246360671312506643403524319776576290602558683497074026354244629231697634052927664630289509162817770787147507884331656316360002060186469623427002677505499789565027727699355862365615268667100474821440341491910931404582968044657938036357873222368389917603872151362205709207448957847664297089095460460620582490992238850409290259789036822916617816097404558268750607566691088343252914099220774262239208457942693172489935105855360493146439606356348787777986539545960364994984774685993788557105307262210744945882572019289197906275355034433313053010526942127943682510880075829650512781753913912031186948767459649888165403742366573514935639389661596437701646670673830775332126258362372139498459863712038802138609587328494147728338148963565058919406232083052527885669342993361938079317884187005388078406292116872909091302596252213483877269870601198572801320051407158822499102493905380615404300766505774467499023735569114750804227956498796846872698101907692073439841170271554478099321447850715420864459409329384891744259844880184858886176001377812161863493227532136673284619620366694201023583274513510430003700051912498583135234463722052736090597837789357057136898620551377655866479774401991976207121749073514973461901675437541222639922413472162266642222605774161047831649530206796840733270459280372229697391244895099957946693028979667566163943721098171739987169957591802818867041883844625788969291699282390680537878189820181682002248007164909398329919545245233892604383196965028503399056947665482295852697137207927973639378145570573933781220896598102652087070289034327554735064626237842239150441501603027913977257915031548316102920075664532139157505229685232384100173279496264173625785732997617641370936548972058685919171754845888582072137457732647632537507732579895120890672550238642927456090207100037380244888647886447546196959372512954424230972157506551843265037439885112878859061324794768884174150621546419784989250403034007798124325558078808379260182194163274462791019978867644500994238803611091595284559344857003136583166021725450947887366992806681297449081671143802379742276028385067668013638985789056602885258329533947737940346969206406626358013735159594650348687883530822129260098746686535992681606721187293457363657174838957129216479658140299811887190451248860486554204966298983954734485956139539248247609653788029750016289239243812962845522364236882418998595741983982218510849354703792064583218743369625968243050969604467256458989167328497770890519309118230498114838913044231784597270076221268637533995577818714927924294877514430687668574910120496003227367258934810268037717262727499451337482997872925305192755400321869974115957220675090923207979843698976783547963655966921358788700886361677457915442448354189774920322318431549808577040455960141880532063048252776524396404765240920691145841398821874098950142692563470671468185444594755696317612536301782029413037734885666204045963080874360461992030805093902058720389845258391908202892092144628884477926836705928045535125796953332982214552629612240435898812753431385112997895822137610701975176846574259903177926878352552897111640039533005967670428023371820891239626397469845493546809312221617760486646885043853652850060674145878390640782257349434125808875072522189074279329675511641818929296318863717786160725912661925128339386276170237595375191180559488699568211765845467437399505024960683650568510180099506516947211863094316208747984495707034677580702775673617719459290912708352332806793159579308417537871161205278875098558287948139933117598092176525774506025771370132179898367653829262872365075976056306773265802189549151675628467259163716247848167116724013946628893260269461398024951578025753851558038621283092753903651166695283743398575641861714926206867774090763322400926093514333723850110845931974000893126671989614881325571150400351692159116812361867472932564011133463677052545859815392193856521221653020556393680392167050433120947874342485950218422612383710765097406817817312236142051478521313570405006579947354443717412318124953948078051778226345996091721932575302855645965342798540357060424877077955548620322107107947960826559281899051836232753711278495598358098985531043304613495373002428364717086966744516170891695809608711071106770639042392390511687599817511458673073708744815809287595243062939229390046335872971693646582150722820563821085820445451970877265002144601684808917150858069875222289339678704660488391710188015080592915111226359012135676035818469697940537122677000814686589788318581002863511484640532597178540528833345748030774520014469015158126844619467821079264380101443126690275687713871688948513198098148542064170689184402024045185132278028248252742939897711260619270798016514994015925497714667363315627045057534906237939790608874772645590467379407047981643185699706866356078310143480699987947015351348260249900915217882838571837468139532276209689591019840943037900509039594714049243919992483966801776142432240052221595087500069966270853692630033888958286395097663254196875422661100132426503669739296783321748975120819140005552931311829545495359166712727481555661449135580154796507998391761836630263231596352043472619243850095535908189269909431567689035170471031108905468115307134178733993776243889385989193697384700129280523512964220670648343489619724541796952876551309427039046067789998034062802862354752426834440982537836806453195555291695376816186614114746438739875162996225039334110051314922266321157960953342786637848435942008349295781758347784847121034250517350792676138318332173352213821717012036259020268697918702566622830021119544473294871238540683612572212456217804316264363090966585753189601933673266998312145412189037960201155224502099726261371889817748541855222392587806195455832850412250941834955518420334726398251283026437411087987010545504156764965963531866856561593006542785361715276099322856356458872880782546883400262582063549616455647278489184125595782025844020599229325144679504522006040773577108653681685106636657433762301470398835813156438195158601901367624098202819625227118200961736440768734927130919804879791675413205485519032759910753472856785474510775864844858284078869980197077605808709834687624526099773716075516468255811638212718079764130124366329174832329839454693174633884143960626066149451971793275833208911364637020322409339346218623335674623975840308009399817247375982788603449027563926335969433225691410962763795756288332901163434004816745418580646487067066135147675682020138421950301620532024283075170250338700583012879382507076316861155287893672258196966920039668230083315071955581935115336819907697787446546524943878965606506555378486080559833045324419783260089191809721298146994514877893531119898964826945151663051491536793336140421850768723381386029994659790260962371742256797561546099159307641707277172046263138648156864053585934396090482603099994583343580382849802558160901158050218996772549455975816956172166811622432786516690959428043066485173285418669776545483384182919948432534439188001215417080856718144687603761964053560616202270688114695921010553847770216253991955254731708722591287099346221969500401197871380778340410099386992590564832128768045729838877139478410025621571149186041814081670379910154144232433870975417402243374597315520641683172936498132731031704422504363110881267246485962765843494313764005295171373401406583309152026921942167242076968988486438086672776182348410121418496307972788720672926649286125082249086056997407396394524834809734473455458215246776581883898373762961165043127164341146186139127156611648221933917399895556986436124057919650081484409844147261659910144200879437389042882494614407539743766277673575114803089452805885668386560297129927863195409464129359238056170050987278203841655160714735566790825900540033642559889611843676079928166786624766929997125987389320009233208627608808838387000005657526315577272090675621560795976185042095585333488164818496457472284099302923514464648720625206258842698770166696154992950482581274536222046748934021182592348069442924315555678787238891961667216731130393598513667747959285422126336924572594274063458021040204877433559886797043304716014975960923300234307487776290881616734169132752727770523703655768915158756342142796858493828185254866478985662966683950105261384570746967724010487191735899405253980079890050650615460801473689492450376139920737462712697678522341021649112880344774604586539568097121543769075741333018773442777146685753133271003640098772895867586885016493304263492859751231906023060493735555658924071354582787456644338594883269348568946256327476619543487201989444194987445704353297714702697552407955907998610280787343400913735975167069359325202999966985707768441053158590620048879833494953291057188482718404409616649230632575994158651487712171908398255868897083916846980549032299781077168555721597977210779742942210169057776337169850067500409855158787014787591818770842598218211081516418163367768137482794356402947424389623470097960381500638927379118415424951993478945401890486396927567190062406998343986170847832259616288079725949917452935047196190562532995027141570457338933033592005186916426374325396118963750232462532510951907276139591831686163817871703211328558155760418143513510152524459623011220890003307857845828112203173222491558245663348309341377771010755010403662258787327542824182536689740841827326538289754655692609529341697535249272128039264784355765958401666888672504156679250078701479276330622865183472141397695039623763371121421222570767944959003327126996869303211905534898614957766867354149964218976720063489181206710601185704785626704547857211262524396193119248575208301924654786948018136255051515932758236309545505629567614721934057739774920736743325606553223956194335502724735270649547901331652451655219485202760308012000758414699807718214018334571416365911998974375800880851079348927842427003621545939693436827748933404605242165476264079933097206105579017243299388428697847227651429219862426291692041895236230583766514936961837075220201657248687997147558733018279377627434396037876664604113232524469420669930661608802762571598535584220528769232219009891251086178624417879618941456593194736773169485762626848711616741211555796421500810297792650951035514299114676323730991254025891953649879498456303751132738494697520576735376293762875857678775602420627934905715287634957728516617611938334201786896265706697872242040208768410173939627138730420218619819832894786600295558010334039888961786978350190996115647205997311992418998471292181703988533205691881630721806277262969201620899950555390854101619373107452963232241209613239498074283794850560195144007344301234601787871663808096873659588883146791161873336061833406912987082506674386165249495109896976177517165262189996475107156579798113426479538243753727325692060439123317067958187501434568146684527171982763675140453389544037186122728018097379402612502191345546232655977745117221050321790951066460333607167898343514936350957536835119345183867106814981906905478696703619893437777358152394413870353371124971302957997484129375164789978232103414031323877309413523606277706976931752869146159833723567747563094717986315625398935337650408277203533483179809333528155883286028240758849625549168409585138051957925614895523528241917209086766754915770893121268322824941909049741574558450887695533088452041508625280453608434028285161986493329441707730232194322748067871361423308562783385964207712925837908466355405661073658940017578697292274121148839288827867713266698085179480271258259667436605058400273015269588337115410177509267867615174334684480653589310658264375889058011617590768857910107989852949305647460624707700842512671881429502536257896369311354521454246790359157824485097257654080814897267763389584672215453596414046838939652814946796482186736437252764179836407270872161408058381540859009818202906700209069942159501429977841636363018866469722465403869701639156394871768502330601680593951057797696316300706216774652972508757098317300995456680660697952526333165485070378802975701314420122223479556427438618259973483286249015911095344176046726358748931867619767695533021110695080533784817691925176841186904716630372413329591995159843564208618608532099707766434793131196789280464361935120781478695506333137322459513105511327881603860999407111204178941884761278837321585811275189208959119056880931212471323422276340497211858268495393116109540855625713264789424506139701412522614142326710056188653153749055858987151283881916228895431741520833771124947179117493919402313887363419917214886394176611065204985773647893482478767295691360351903463635076605009054116611870751947002513600536135300612496056900217034291490241355762663932552302431595850560988868780656289743726686268835723389385112130153826712085664409512504523724849121641749451169666598678066861422982183360066304529932302341599649344164520335741721937458289676628029512281552529917540855708931815183702964735131667431527983581825260806533712600668519010705012937730017911251602292005963920029947354485038918012180729254954374108729410320341060908662866361498826818081873085182560077505179237937136029238684455907613897512622929361510281990303563381614162182674387949918387111978435785538156941961214432247965783243236393776926940996434784397164070584266969204121168271369380283816258102831716197639826310963807372962552146121817790371809330266298556974309170414912414484535956157559480670935375300976653811077203371383014310672416455850351685980399391789483971204365421436846224034780335374744019722089471032182440868131365853741664752489962547634386096638350559838699989003843985552732336947133478604122634131183000047651489150322834142591275150214996939103663681326389447843993240365362510850851959387550284042659281175871470403332337911804755740587235902955242475566686761955756595996429144748124131083058049928900661736011326523684149884647796685955441620599366439961770897156164944636640307370123718444555164559491108531378699051972949527202176462749041180220926779186547382289315151063206140728894960226452590845281449066977878409541725587470270174853368139387074798517559416100807873376336166599039038158335343306872787433656977267730399157790665351406010959001090315181224521847326874351792908553040866458795414822779124299668587856527299990486843046562575140320516683700901298158456635907756061939794422223554559048866561281257571002132179381260308985466429739210897575296159452047620117885969130794188742054695154591889246750332779082150867102009255320035467329214788631486897468128933653794080492094800371638425887076424517417723441586981201441037001401275066686852894939757180156878327040168691172718821693072206282576103692433259425114350100404105495940170515705657922440280430141410639034667192960806024408621010731712095135603764327029043035722541869227819902965999352021409455183897703797487642664272288634032871606776451662053477665951412344804845030649464895341638270692984246349047286194064569907668682013626142753637483663651355084693094119620720711261080671359498944843520716104135074281517957164867817123560106059938102528644731338494538567707724637014463743528127199682451758704892308879467620024710948733986869478804026811085398040555994664136197081888629059550036251475819785708096415770303456863079065666359020486159083332602775136425498025713597469252081264750729524694605498604137767466083182223602185964366316662156859179896366266694116222591051091464375684006997178291241651772364119066455166322034944161549738589966819795891632066282654512134229751366898490524463871431972331969635954199514708194657833606238132181080482942997243260865813315110462431218155029331158056962376635111203476866207005007429529059278222068421773401553896884645744392645305651234277708108561845921833882883135636166246658300704015033101247255975058173188256166890597097776380938761676559872954278793044677967403169909923158206094894790728808321218879505286634276414707808206788751882567314667597649413143539283082999142469940646652492473861129333908569902499139130235413266078166546067627697942409461752752128795145935144275640996720552351443947792066941099678392467229683822833074662561325396781156652827320591939955235148263766026275750217954174507307249772907509902070626356574685033790798919230371730475673123224230562385758780222021410543247571648703652930093503527962008863495531071693772253765139679068456377920545953740648934174993437014892152785120085578481693047016660732288193908901063996916730208878994255001646113129593709525823514473613752792254916272919844282460164096534497812737797087695787987081595337120973662976995433221794904170738067645677440753514213197317540067755533391164819681347098130329951795437345362605361460864363592368014318542173705490616698564635256146631876997247603444581835674675158985491342970889602299037225167735602355604627842976724499114515603854474727816246168645363484640400912177224369790263284615704143122860339157566121034009216245785335193188776767306013947241219144936431857817703953544791187715479042354262231645991397014526182806637062657314351313551516241189020570189061816625797631422430494700631098922534715558868288767331872940892429748436468635910917409700879287717468418829706648044163012617115987664413971166489009571646136088419492514930655478373569651017639845561586476413997546485665524859613113947415484155922520152564548758667166033409079690757456206642267036510664696349193279565396680618452926428561655595048011189859922001322012533153078368617479935029611147044901636823259499623584473049854365721762329436659765132594823358205095242663027581133170117054251921890272718597592697084383684180212402059099238093318320272661814359159725281994494644297951955691934731242422269944360270515560126882227307778023054863105107002169938258877096151329386977161293691821202567004138756891508566922596440662276974200635362865194492486908472655855730299739663103255322875165609589519602308198740301801611916629841669387931247972271882245229507404132325673638566659668415828185856897051234562226787956508990646613721736127553392720741208602684533725619696834336963723425501597843279059192635872497230213366239060213901549322975686023412081594633654183107003982468731486560233953089173387024056786462318907279733882703730849642522552028183831298122897071891425161443209542247338025534462861583724667684830498426164543303627815559839027724387475964485690454398015039305849311306384649550880391182202676698219659910609924600965223581575401796728107852103977043846159331111982900300270268533818206334737613482335741056029258850756568626445491337876325670782353220948723587069708796258070118793397546258114332744160111823012023286450658324361145420419177511564854721801451049451020650540762402910203274101217564770046028044669302731722181129723881340203792071575751359532494217519623881995288803854226852036661063201590120906989463917019347853642532458016098107923730019374570016047664664741004357591596505978090058377082620600682249171820205316508190077671825381760844136515974959443700805163286565132466465360929623990492887491619465892903574555162295098139213196355799631643518321943190545767038012804477428480071468526145731568362902994179694440868313064237277356619478087728645859066715806890326936695264265220564075893342772403318020404383128103982381761239199791136570388516010827022793568316772857043414606963043094300694523043331017497344966609001352598134327547557317773267277738479237002273628366409133306162970597281710598981730053790643218325316402082240324661630631848456216003570841854455617103661313609925725050481943737085404887571261558229297173385400583428050465214343230591480020518626965574953085894338300013733383174052078537576887978953672051876307934696928646510181630580931328527100827976287459500237739109376060229018714691238178964924137652661771834105622943564922665812709584092225055026333483590942765770593041838948387887037256662196504266054897331177221587737732846931940894029011133892969730248024718751581279831445353732926343766756274946476278719720300355675629456941042809447840794973334580466314623560595713708500381907396650515862424956896038311943686758562205655044681507660559698402723393282407951267884005351482476483843785872937341280013890479625212739745671519306395556698031684897961074980743233162105982710701710756293847444698728623478020589635615773528083950305272249692829114224679459662678896132445111539172552603444037108859109342511370881270133867902667912107170522151708841000107184511870876376479813364947845178331669272467404648419672354804070279241467671155583605448016727107437494325673467537805094938698854252970850680658335090689136472839603244839346511240170748299403403380244744156976843258452646676741854709385448900083086577710453654957756117388130216921497436629241076768976211755250858615044941540753655802709693251926146655107666770851960753365270548308309892879098520806883808859004573985997512307876349392259209771921177811416533575197848884139235557508166745483622913640180888271261889560759001301203524471592657559560255874580629231230289422660931727807298205793406292685985815293831434821879647142700531472662770566742052218357265880329712190371128579688381499252325892650891368832640589067311026292198080438696065325025802677891779684064148160489357991951844795284814676436985025751675548541818371503555655052265012910306248541680877502783746388867315255402155211428760813114318184080890265930986726481816718787113689466755180295565667660381016376407882801057895191648583454528790160677123616706074486649128276381182499472754370514865593062480133267825176944742712652976745030155341014035733319177821059728328714899610153893771141716421541019807425294365561791141572178119101749505509193685657800573790796896222461112827785741261976134303637569542140552722154539028782182453071428885771961530162856635077092710251259042329626485790742802566794134928509747794609178594219705879892604976704268601202757045456518987357373335613998820008418349373215073574524502402976085013467420691048987753075081449000176496552402002980617608724909114151143174585690279891302785783415370312475139384293828826470749688726850720108460288560395709661441498766571507739099029638961811532629342523463563887173656141839541076992338971832112028417024399007918565167553620200794950803855377208536884743322174048819249104505867736812066160211744500103058560827843072048882544717179098770699701867691475299454006235283600364245929877040870111900421668559824459366528890130700536777817780884632674680362473261204252664539678693308611571626031172017352821821701967365926212082676047484188620861361171485949939821943851054768135216030470209252117213699022860821322685184266714266416351294083154448230530803040409771273445612064921167499608226102658619675616096343471692043640984383721920637091196552373296661486702054728603904503011803886820514459635048485341407880563643680822495154956451170084938569301790049867905670165345510588515289412544089162122301727578227834029587355221533686367593344082145446673350321929885740399379406053193939276602941856374483516853119525957514397211225092503359704818139516710465449202439215201514436820341332940577453816251983919601634835866256859989319215157841750715589644171496238705285951732174824165370679071198299302613220715508164751201504057544248805403407980730376588349504956814180511198890126722571229800174581349102869888620480449477457235119650138930465821455762549305832975699922241240709683825066577721486651920982413420690623865410219296442520472634319042158123491834872648776896705180063911098532052047127592782073761413550032350917363716533715461432826188583260499590331786718832992593421602704717074063224229348920803698971500200063114070946736716200323494323259498516944017531935994513867551947646417612534318793256996017793909744277609417194451257462788814339823399427075824871404581650646624410770858056852905579466024523532480764110915921007318010567749096994662607652772781096276651700328817325636892038475869882716804230992674767264251095781406244681277619273467383553392750778450979326359374191437232527393094767888664343008508831257634647439453704189531166498806994332461421229428435620281126541815134350991722531549723523329633010594670012517357235065012509526209017229162690824564655644948453329595208239642255346836536856659033776105233070750572780931156009909956931590125305871078150104672003092704147820784872486764587943731350704454584272642961265719074268238031309609619488359384249600943954732289501725378225972151518530839022425149650356492974343483750739895986954564425909556767169977350162983467319914928824523910445980201870936058486273872930616555100620688512436480960564179290250204411863428997179484310862787244921766276009896345621731262222872993265206747589362882589547700210872342925252773546484322943149349785323183246837400057726990035177366617515625021435530633207307207051276480603433040289139129920159638122993545632592448229277162523063678906217761989029875244906074146398019806562953265587322718048057968905754676337421320270311061812997149793897207084826255221195992182134985017929503641534389454502450528783222397665888527001243156107414925062797231144488886519621440118383626147809330244489083482008956758598557092680159273475485712759205594576164053531779416777480893020665387307508456394937138106483894298448665988823028658630669409465682240229423348402310399194384889251085805691265020207283386913554385584470210079174128834246744956646022535944682675198099077413584383648110894780404606035585831451799353346566874533893982951646847415543666095357696096395817179701778306556945520733538754388048014425414327383494398909356507905919034574092857724329668516325961748771380748237333964935305783408885083299024183818663120351696631873835126472036252180128888155602261428858941908121883684525746387519091943589482966780772422876062542081958564203217289063495396055453610330034100150685582395677944180526904488933374584555143668539348512285462160420883491848819759651098409020956104589575822165622630074696119796216642408478239750262484166014762738535240196699715297569755933179530673886439635293153756860995224911802827962959563227415637726269629415105873422726318994119314285153685328428827288662965442235418337908103143157166835823133658275926759199314270815158368523578500218273358224764319040646174344187856831257661669861235984453846221042557861828222745992909328524887116244715606111161546526030107822581677620164984570771254966502478497691558281489613540649580291637204151777815892790616240042095736814157811163285091678779229280470246072653427288137268097996915026370178445058515395933336777675184536694279475488699246632262971231953593233509177477488438411523559238346609553452091209000772553033682172433952327619103032284602641716529291659658057926697229177397787733854830699853081871585259873264767798806473607378423947481004461531320433362916806915255489566740665932256629577712617510883052824036884965082894944697033372325140728669449237545340641783921579294065755748245114849665492622595328436496930162583911395620232167321271334608768117759030661323580153305707056187995127105681495935383021050011231927020512811170062318520559979599682667191261944780522092116490664755214917669522911704122692043199707892120076221971320279224407543041491747663293192218000090929884899896093773027430995548813721898068973253768893042185666707913748276856136942960432320200224899725406266693358692176020122573167799588353220624120112241290228389514112705276760394824836570176634480100865087671254248554110685875834247542923157774916796235339114506904249176702021554921687169756354845308154991350377528225805173807264986994961862148194818598804861934588919149908214548409231405080046238739047951730831129381949837384548012389458148971625337339775807135941102046922243808708564262635405560919482955944448706881414043969547454387609501365618899288887237390087167460822531564239559472683588195508868778098680410815320322391846184224787336882839283086154049989431611666735478281233288146227289787524871052115614244561577189751401898751342674928274627397660809402280934161737098898805644741794926510938899293909615998327204067270200646550856016958213104024227070720755185048845211429471045913894550122775115153395836073094388536735374313600381649459075155954446283554922645617278929322360263704608532573622528367435492403555638181015073979097917192536002378260379285838883570874686498481063638176898469698415300763564900176936005959022798145795607805315422925498428010552465059869175134836442054797105678710991650398216576667075725112639468273034108020638510580893490946588085587191026299444012306524146161887868560273517218773628672408992812059746556891398199384734440356643033731615193354900914169389374640869260570054895039342793233781619868683723530193388915051853388579501438092889044755647826681404908108264387402454404233317212784936370851245386273209465054450919019830946594849898198057137739283178609259380309887067611913046935745659968853014326517242184454534554748559138707782438658585102763046509354728786955191110940676413242819681720880219469171780465286393349282303739354558069762582455279509421763818956171590261091215643282752709445319500861518831384029924736821886239532986834382871590416919081637303172636285069777888077269437014784237744766113189056291074328346116811261519658590046517607777798713002602437182212794704626508246813813038219467719506106576684588324746967160736328535618694514099263451615280746151726596465985575560192897470843197383863918168755933371924411762135861673923199560923566682040054685752816396593377187546650596208764380174561866796566761822457469337569900751559854072666447310504637130134225623915969047277801212567079690656970295623523135008221490649544480612332494785898995743168062928886382024268938201874191738781270288386626948859890636010352531235698326400424778218414366941507782884572979359940367000780618700193822170263023685777722387528214607859003439978096441714859508593180518736285686941949585532739120969902089416854985464267067437766880743109087047979704353143385355698531633653872951113758826090800550710414830849848207743346664880996453629923289412669534035104954613671032917445388801785913232311967018393434436064893690560222625414706509976127322195697071054645267689046545036758611589061266328002630430333628563526874894496730849685376932525994748636128126155864597076541268079539975131716829402038001497080689477993370198334803092017388479936871220806504859820722131124551571849221471850047535899419942823347670214298860247806740849746553907678998008376977217747217385160168464574118210712762135188680193579277437931994913250343971219712793708995362128693638441400844227921500950550302439307652902753638335639650647969545063476766562045208644074575149291339619390123594897174315128258874059582182839787936370564440570697667673242220787393536891370007642965310338808290514926211921667867068260805800827586581166821887914094377213529117105119892131951717540624776740150703657152295079623694455420119223612195097258535313255461247360251409577993933227603331717959428757335202974176844589894526188201826246785831652466596738114768006232667227260727774551394958405755576410068428849052764847345684993548395283375078144724588761563985300367592390296744637971833062807728753946254802177903534876742055384122462122600735579536350031217760598786787475211476080595822937767360472041400527899633297992126883819480395961397772978273839635788884192804178224854815102476847123310196210073427501353252655632061385018106205984712958599591354496002682912828849057134465788331302894094978342906629858244722157675496869265295777780653610687766469350882329340015200173450684047723236420057652367003086847492776423430943685044390398278448253185328151370774445014832157330544718014902892769992273117387335479247765393922724225754345796608414293733784566328932127877135835294788533280225972495364379978016099375875241449286680365171942571651547755085892412824161808013506110366725045179558068985561395305453292043775564934348067246755755280496605041101829896456890904764875539481164939354651552557433309053196906616208032378830984912647142145081270819795704599250344572098045783099965143080191191264391398431725448718337716605497744999731260680388288217071361415625348266615620507652300228804977929375367367305341902290576999763844450560743248266251665176605551522720816324609137200128213477823191242802989005137571980318832239664695296439293978565605665597226127351827746511671489281070135220709994176555751323778297369653917150397337050701511330352106505621510834637109872431952657825543063058395169796266381656224798682483192638970023047352163779966213972374691355500662535693257254332258104081282479069710871091764227777304793082181235332670384913566111529136314996642620363127974822151170356363282546295268110516362395888793815333171423093323499024744588576931346362357256472032653465898309992351295435095695048538924304941717532864230524903612527233423738545372691815298167035812037599891789659024633825361804634063561929177718556839797423818110893463305085283700028707356672193157629327109499831520498600363098679527794557056369456212214730068103927297674729097218410179479551367859211622705546453826587346559081078175420513501683382444690840471639547954330341502520527175350071849103824966704801690474368061887894419084983165436893710172363085135572809422481571916361624239135659285769775878880404434284893406830640134783213717426666801601509423859558215181181325339498716778698131110197695840542947688358057200373374633008176892711296428525481166542663283477228581101572793330242571828539523997984749527203298746130712230227874508611926195299873433495153676169701658476166803395764470824236308292572544265263347028980219815233263909266875747576190575436254540374983247035508251556051738174014456294826533079116667162985940368144730726556079890777422363593156044919469246038289598504109668639864851182056452094957547937666714192015716469579044950103337014448755157316360783173645612071789496402402180033451330243380312299072228547173315711920271139436581043587600475570519018181839587839758620078874512489078371007200380472852438085126347032365100228928338487332985995548314146130604238824235666909537488051321999730751315806932622053541704512278134953715968063894389439660221903420160975507663079240997221930873547392271878284926146851490476959974841337394303292053474101228340303667429162605040242980469780750498235040697966487195870582503205598673241597254543064448166621231783862201893422221584245982253423274744647470396562711657420202547008047701918862648031200363847258981725289182463629918924638167745800847318222885759225591836037267226856207147641274045840412489928843885389709308512809141854288298851334076540375073568987522965905693514572159686728570236180362653696783673570981556127532952754766637610553212526578482841703061240323803413760002821848480528240068609910168195611240465129597723463189670831357398006594999341049254935237549979134973509213520134698434833526337974219350746876006072045125959140687421049066111825930461609753019296560048027047556398712607389165592063828248915422254179074521487001500896201098897340323904735662660782831607434701408268996481960930604833674506268577239430617611972860158933832197351326808333805650203838590568988368298406101570830815445132941071493184200969004993379238818354730351155074173883812744421432107658461845874721790311588992857419120231938648318666995401180756438128951721060130426283325041430291209930840332943199593317649137461479892105570519820566293008771365656276669228916819792236131560317041967290229701891842395788027803746675254687116759112067802428070526683244303491544676452440419237706635994779197631468125317076962510468062406563767715732893526792143906538507671113978058561838403595320774608380218918898102768893725973359975021901822276452551856673321292440693016132801832159073708121128378055648458764559797086124334731232315575344384980318172852996883853030203979830178159069122365877590283070801893683200875811075280068454162969916636356237586997325982626869462520731448732246741387335037478449058977730191969226124251472595046313992775004622118238926201797295377000804681745165893345351343427385975451672023163343755883449783935451632203400372166296146789902628760245356446341138902939953977886979639191989335800727435118118977309399414658582259718155094622926600500966413663214465008591586588297222564294368500277681256802458893989635818851894255810485490595752361258583129813298662845332409077272714187678237273776817528470388970382557352915960840767379899510000189520950126683370030558179413186320912324864913003881187317010310504990718093139549107328244836895507571594100489435334602175265462599062437819113677105183708668540226300228027551769947246334939392461244316006702732627118389079222852532177238546787741804583200788931122620568302879537307133784821532108309852983922681240940495142182864389247339436787437802580939956238308814581594673231575621265143980917282252074346422669548240038901144295121833839181149410919709723754020558438433231136864228453962748535258559925002547352964427766021126512562062502665907374229587115584093418041547112788583839267642171529925305795816006504816134241270895572597050254168581879658467079845778030201112299844619446143587851694788080431449895274967955431582126475983163147897955894145605898230383042627435637279587380295527069052127135116680145946039332106620132775836159847604818993266478296216460905614600922637634502889579979570467815617258993245006007510009660808979602655418892700663493066997461584836520211334654364063119357717821122880441895638711304094789407445828260831834073800420570655689454771006146573557854280452248989102816912918406615121723818988995367859827770916221536005045446297078895190061632648622884372152144698479609378933211854816734070151069315028050067106866080781301297656711773395763142326190643941307668811816294083166679171196002121061847068240850113554006243239867262606257133215922309149347717229378615360915988809125823947760565217110949632914877385132809384569247896026380994190754549604928151305056797264992700233191218356586488724920224896698850238458146736318345840024210564699556083496435784291344349439316160063662500627663242570109692461625774199436607350333146262860417172573199894382673887087642746885631185875772739833346588075427256492067347147765301056938406307286349681320712581745495123818103961786129755538902739294848569706455458326466228556554232371132622719902613161813275633729928144022840029533465568252859562180454565358776888285909656344742236289664823676910875673610243372945873401081206814021281357212295314909532651893880628828334030293277751705799549008011140225289701569363852098414950464225670392291019886449229171455854557676553038846617436592586134486731567214383057138778188746451898564072263170174691876257244044940427203416709108639260318076608148734405483689128382755425975799842557486953295648893970505158785476588758807016141290753762871727872173681477613849271267589215763360371147322845765836238674935397842233091060956277752287684669344252542294167481299353286635829720967127304484472211333610990980175860686666449480571325814436884393369476449504776082286277139660497786087470270878078029438821227218519752520426105317051568832717985433569201771372049712833619486849755023057332711745358053183052628107867684626344004882422516367997458727046539360835623484293827895652344092968627815568585344833174889823017541379763930000128803302891590621082890295309544403816890953166974131749102392700990954723238798293658478517456769778174940127454005851562764511570601322122305836152587730374061200770467413106906202610142163958807894667010224338490967051693569913847735679962675758852152508044536712248499753084373382928711613025924956777300161261478463300533241241922288630189658139500806684274890524828182102505811278385836874840013298507678575284761355194489126029428051082622121306155886905961699051332064189242419243267164495172479153462313714422347927831341847642295260860371985756119628134037980554024524778657919783197777631500524773697651312300747272226369779615100937169892814714294249211437483903437522930701618508563223175992776883847161078628864379362234526608919648022958275349285608285484671966927678803630117676329718285367252643348924728195786536564035668805716079927682017456772736876115247798256133498085906560060537746945119731084500406272387982421112615923315113834922912815567937055047629164086736256870538149025247439715820596867793108771244144713302974263448539608592597729568473519536640459861866372497355160904840949888068894683306914070979135576770918884053358641413760978771720624594737269787065394066863813395608447420363983723296063417873013076563126752426129948381868415059915287196937037729466457283866123750906049975289910675274065427833198832019244257564618768563680490736404049284210069464668863548919772995775831835452821534038952629897549568418598774506477192833714166036842246746886185582699321649542069455383759351683480145784073458997647877804326745103690323184229253836519800117286644213107150003643240571358973021789968758455521103704306731791980974247782286123315373805956854482063606467422057338120552902607044532024429663146482275614384415751411636222953036404540790498792135500759935101732124974567995309564519421438857566256587849474933491902164107049735723285655097752429318627290179613540785813400623157479356605549640686294898934391991280413528712176855759387921509090163343888063172142629179151302409622377449289812026339917112641363625264215836201619263870511021067652917858647541325379411252499096603347928652983868118737476763700122847290422976069431370050626360886345810431521460799497251432126964642980865193886783174628421980569676245685840609020203923090829271383791044806836138659310558020065616003203458191948192668527992117213398837830790491555136657690439007043323009569945164315386289695815139712455873962614686911280605065458374553611788314685678444738738087558427387497562769379979392778534848383761634679301425724301870368072207690922344383001822713305558442777312025900607606843108042827629942659571382467847171048969254197671941196367539148767683166002018654906242886815368335332326631397819359460160097428741901793677520475959911335842706635536170044878794562428687316978175346301772363217035808471584711973581730426960676251884057568469285514978949022055793194005239161442163047846266499542337554424007708378704495569339663772997163404552607959265827330512921478832956639446018415545437460318975422880227499672253819038374379514979991528273837720857745180830173579967944506403388412803510799512193466379226816860293195268528354552034740075983254897500648408809161858410270387801316890541578298768423410602398680718447162354483077040299744193238963928327231893191978523111164233360349691193073947829640066599934636590930951039062495215272769983841351300600296658374006938140003135956404579676117593364727136339293648300175340824666435720332869521961595540415641498335475378471420241197554505436437806095922270935971889650708683624183321267623825741589845884807151796100258887143128826270895700835475948156588771443659934662060995719228574511036216540216598856172116411892286226753286303676878593950175820370948072714149777806853061175536984719303734330788650424086041546097817215691860770833908725009585387053886908293932619932923724184664389622527957417872793183309741357030991508953366588200271319094953220708052591944887611253956768600717238836008679501261514077620167400639782043633306489657856719642208887679010244865049203546932166746959987553040008106806758021435171412323183226157744077993641039935553705491953020734664941274466204729279561883428692542066199401056745480773195374483879872746525674794711737911732813775506254565819665612133646080853592930466119365154201854427550717616005600570548628013399075536297802032394622347331116813386126299702321585029075317627465740712030313196276601527260212703721546914828881506286648471198767241788161374131311419470571024701732992197916262354512739277374990698588025890205143633701113787664695642878542658038270136431387719412565674320920924381408638743205636678022609312425234749689000554095550465414379093557634675377056621141983421116854234772360848792438107145230967893827003237887315395697106438795350448426027423140814967862060021527075975256493062033934943849586697738689187764322091180420722418385338382326926057902520779272733917680430235439700522940768298704298426816911880723020845918066496209612863028122175909738684782055103189519335059367691782099368877012293830691678771039949407002567013069697856067493920590038041053246743997692256216423273124939025701086911719962997239586829127832072586658178051053877437442898682683831696618457921696613348909168255140891623824897979023579571635876014220684650600379638082830323371647004562602660324911199787038629865579740284574302078905856547091229532861923876978575268621264026372257967673298488409290335241543434567426426398702571332396373078409921703000339424700536739920323632637153230709844743659327526469045879163075558132704546903660798044646670170757092846226554419770030540720623826938581956979549979473556776606584106129262734992330178458573896127838333754499977709811059138120395882448071272803195795926291720819014549455505898955177704147614972715099673500304950404901234803583208564659740455376837539619747460104761896645690504315945435803941047120947743892233359188064621137819588101107887974750349548566769229946904731758858628387816379261807521236448495228034491316689842936199929741630813415837163695759296643888819226866934658857514677518746958945870493050448424896616941543009148983868350047636802257774868676903297584765404281019959972367762255546604418004226113775323096078589390519231390423278702772743153992238443411448129083306291043309510654351261680255708923260070780352264067074942802214284614624759393237881650166106268139554790568610765911051101846207654934249671776922022434922055043210642288285514648454713028856129350952991871053107170614149459590641225353843031676455395638444576947359782779015952784311743115107482013799887310332414259086729111482726083529138395941017371080157970085176570039017366411722385875713418894370402019988468345195452908311051602259267777632914805335714141113668863537139736804997718503683856197584393259654066326232502642312468727697147733294446195201909701178205137997431556866594294587782183836890785416603465375872906366316232364316599987123822673932157511410574720246754052639370513041200923133857658053815725559945736140946613789211071422740590540780862891995589056065228885150858772104462664687657977056633429957746926330267129857820093916925578213953553179848196139776728304166196309652105790667175178977310773686781888157266004713095065340880825578514355047546375933934687034319996808317386850222528350985421379391770252482777000924965161599839797172329107013445247311372086321172129783871254788276614123721076453183314399572745362351648930283651966399819859694302375044285811666810532879530215707462065247408548763720935029231145036929277112930984958324942466010748483862329706275943220025228090788080108255350659420601721957466443349463367473506378836599993892303245279226277973842890495765721555100990034273470029340860196173414697743303439904920398648762093194752400417752337843351774524373868884370369200370107452224156586820245690610374082285015506043004821880449393156288938191893143731035276826804460846781292585891490756073241318477725438083161927630570136481834002882565593082872242611618511513474632852804419509043065953142055352367084212992741120935191943413315303660335686415994807490809086531165604303670349708214050201931247430590519221818307416517233909974830842670106407423391629822471800528632455306910929147854502064738658355454638588004944465614348184774448124598561069356415282757197011465218633058134045985062174444457862467894317665679577089490169700717856627311490103996150376372979938686547417503286648813157501330305385550324817822737692508606121021722910968988295146536026110907105541351563947031425464058238894568332199976108154723905404585479176456218785459669223037753231690751708572356509958497822204815490025910351562270542509596041114172419949331843993769581688661086411864545871211899454771586964058039194470497939409446565633298248506538737774860314497694215831285132309833476400797143636246338956736575046406321810837321854305839932846265164738576020534422148086043188595250210338944714066171486824796723236186844126764160335182915100814768101485570707049320512284849218754713793602793220716012915514835534914948902365012699148217139728012661886437438120980751145118430640747737007519620121129707940404616840919225460825194734922733929482648142425198447186640416612133436024793088693022962715578089073722131647656488700452771011830072222251133001896168648537783963087949702868141278445211591198663300805156708005241632430117669197166096274767110719701219603258552477122398717221427012754168587717509722493228430946212475897404921156746626060165180058175030788481796005496140954538602994578040633207007702022145084106050545089268359601072630307332388790599868218159497064953156110853337009815466995872805379746913536017886543698054849685589139845142985053928495656422228745231569100385742557889794572244051494518790332234033825125762606002750884880451776461800145257741152534999859982473096287161955275219021882004913373066601140777138542638858586071378695496058803104125106711620748994621679292346377436170153025842482049407349041582088954001080123185747771462351044271994494423190018475571649231910742868063547891471664557693157858857370110801274856276654959214203008518243412873312672067443222504180750365146927205971051657766263672311404423761932657922990734107357464482918765681711596568715403771811570325202013504008175545313231881476889356850738256940866018457124959851815610920058524185624133620751565390405200718524003154190618237869650185196385475050938841084586152925272823677799345038622824357485009290183219024981449881155032054385472038926377411954007000391429822439520389748479634479635971948067780364650936034414450840605258818260761770472958710096959280698519942001313740602793145791949986244140464454079269876600713280870746316305064417504102969735408840945892644932471873362817148558228220798982061262834261302261888334688372959820266071706058396916317300462087371969308092651355306581596493468574275424845582229327468177836272022560700830781606412149433164008032069401701308728804355122851825161073034057905340787270869646534518067825133889319339052845144733920478078063947078972411114923126185756131372743722444344470410228453093888769740623646367004256251040682918826131259283838877935355662506786154286561590519670806267310371213811961421934183822780132340120534985176201751110725974031155678052250833166091834834078681334282723065680537149298897180311811578675447800568462475690188981813368606580187979398446222046868261173989349945490022448729997449767650026815166786081647773825234897279351643726051418171489020655119302020117366751433232228083055584455505195811501970302672793108902317391931685552613924944459368595307920282728825753529797980399869113705420591818947226510622442081453104972756803970560404377990129318811698399633695468097491451689277773109306477281740845230427150745278784786179749178829914656665053040994769398812810632523173935114430284584563464272581123843053815379104035897105270353816862011017399143274319329784203318078414869209481553540344297038397095128676481182213480630064658328006191573612591973565032754429380916889433208000448498026512404991166287884289175190607759635828682517264647918011350587905240001706506334275269025993792574793655239154776584298674509229204109390759239832250222097843324561133830402821536944722439201077573578364146224289003979979335176276404110660702614142275827914094991469513736501620003047413143321230286918110451804649277516160838146516184077215313761251156146109501085046358672321392968234731499408991368103880245068371201542159691894931632819723688215531852749077353659035841365931209118221386212088924580718808114004750411038610771048601846250789700953995531798601077391593395186953479656428504460626362320817816561038140791664520607744525824601817251241714985126940049010745152188184168195402771578746172641102385056182615906930722095780786706475064810653697167595002333338636700354120629817522701050305335686859458958174322642461927854841838215039529459808175103001014481059242573383987953682044555482579519545185912494185908419886187594372690098924986610570798065384953869598306383730514254576934281951354868969817073214494801809969548056785546758037927966832522633333752557886619152578333127270926622861249463894393055159693116574461128336454628798743654789872554806796228456505721475376103963617893655303352166026046031004807731572386449879887095670802256363949552454415746389617260456648674751026087727868427055661339333334277001761051891806838011965555426635078765650003348155036951982365957062716533433215995878841270165041214167667888970265859791567751209443268476239037217588601888549560530291263127440133717238904511113777811631915544189596550759406482466502369582545333529797221945598190124861749879716049656648512801554773320624707448787902547966459920983628799009115051228488983955058097373021994931194237013084954086254011535378238583532875693248970716255274475238870608436603460747001076754071225139425403316869553660146327420457283845094718921808337914823947905558795580474368874634469981167808592682640863102158559296093490769761585840873722020511175827944913995561612464331016806185113974093589153009587755476835832395265518219007041328505261645348531660422335996153638902535393275966705323066311450636483142569799277879618823116983751056373864134008718499336487741372776744202586217185859269710395125277936383749030389879480099286047824306388586772257673453677820932196062821010950776422752176885902483912301971297009778385914579403316473814322150561206562598141999307059457558793753633917433108299448290655274812602008579508062950936520178716577869269996236690191925100916395119141447560272501467602628267941758301909014640608678607221584132792896507167747509604031196058384844819211847266609802569360858542839910148115673783415998694267357766070036177434978171555990403856000014168569505199637278191736649838001557124437800076861063692343707046579593850728788739691633460175991830824306537694801779442625007929444982984520873037060001563005602316749227606293104464726206983762467345431072878544615458955044704620278114971473979193048459995319832899950480337483592221447831139702294610463170379263732533465103300448541958574670004806441507629901725108649519230652158083897898888441108776099622527547246231327996280701106490393403842052375594292375535767644863500450458955036993422425659727762150768212112914094410901215408288340980088577733461065519019243874492192500697761669967768110777287602270950277215048262987833724445304172817785699487496866856441963724741846416063421739558049127652089110183609293227123363398739204049531102655618095624561570238972666717364607477669053159738024463309909228765733726912218033781089011307544409213019102337575019146843683242158337536226280877776301505951793437525079138235466415117097797493591432365001065639788362929380381084867093915951954266409418199093310783286259382848321615795630175044879396491798639458446783554299088036833987809127136035534498586171624938370733479239049689648620939051510707231111511513661957638131091358100062904495105021066533725507761960917527867816853210195444534136835358646052266080301186147130859389184947292394585831423220563944965146294979682975333066771395181195858949533608666127308251823550882225058208428078473082166250251809627748244882021391022331019761413208667538799020979995491091898634797927918024903248805619483213409624423505386229148240496227238861084769920958464795438456993349705105342937693893758360246628623074632412376102882979539177811504890372774176759525502044507744804260178360212599584256775109220414391688912539670207456928509390905870828488455129573436107440257442011427627828354555260514750495619904057405197058885242796713022086396545176731034051953193984796801352577348188630895135051638868965741907660305237000411848176489505305138817281787524883362603100279909812476145449855769594044569060111183726154666827587491413764992089215265815876846780435074747367061919065160592012777625865947656783523204098650873112421104717034036865418448279295574365386618766976150999824294973207306161199071317494015955594942462380123103980864685971075846925978667109989254513535869817232246376829561472712041916446019483167411096716063932149576267189354820452769663679585002691124898214241359222640775433320318822383777841034330356742322758802270536656062373578010705062018939621687784997019723240941977726048730729856681407458441531358714312170436717707856388859998507324147715389570213435900456354345897469545273125989885462806562027926122829033768616874293610582889931007804065741659510095957625330137220673454719812386043018432495923781095667227306514804494174681856336754251205741828451296898500462224184715711255355491559268154609260878025610737826987468150171435112941296554877505403293350616795289876161769272895260056710257543223256532361736268423640500904923247555843674439759112850981761636462557509969838061456129467500534359031777281597649941161540091170243779548755269661112221584121431366112880632812902128742220510709485966376814433177192684775068931010532773350148980482777191582731363457527907114071097098731174645994066945478985463814437882711959204084984487092938986521477689379233690749882635133577625250851622008766165102989896747197487603735883146810343461377480092133451484906852128015062266441367511052182266059404711190244675917625943626756962842514204179390606343491383949151848605839153551339509951327943826448736875946614888016044953011243282431088081386865190092116906965572424637171206747492513810770175231746565803989040210745436393913841624598357837605428023294705399872421294624960318821006666519261112572755640081602659350266066215193181805208657189963983504040895803301738887824120144894272222763535724288429255257590341861823400424319875426917260002554448412609049680931122893225424197202296768274460638120925879051122066420341742602466910636841857461878657251344898816986826879273091064065537931452867111262700011609343197548470812503088673558521057837025390408354984287244171133873078815723137604198878311244965948424373791431606820868676126635758837727971709497585133408586130410063310195522952600650088054732156778134968791556880347879549355009221550972177137068305292324680483042590337685710375945486937153870389196959577969185744813277509275687360377015684877528249954715645302354847620398915871200398705592450976492196260688447974273232040761027854426857003396687530439878043534794832025660773933979151764424526572113879386140209802717927177534984847598265104033768314430804312447476371782395359200525036942100243250592063431557422640271489668859837168615470473403785281401805767925217739882271561969756474422924152063677609795858143373280256368372767918765518248599357980143560278735708999392700635981607006858219836146356043548844762208409340123022888669110871473670523872649372396480727056106003318996540962847022853190104742073972891971294872330088667596684142189186127377240733650946907087212156273778782592741634500061115213147568416288018959860118494361175259859458551130643764729257484241835762604048086327992801317038745535217774504039164208696588381672851373878702022201876978891119768340048559006674515054354212106553074716416978509282724744913960995119837725840125270260235631498870945657677200781552966685516871778938378394530799636835575798855516911748213993891096289486963126730399147217848972739469795644705426907179283869003685109807329991477605895479961455839977858578568282660251700201435544025359561522660018263810980907497031415317221204875083754120348745851219707806412621789639525648731371322812721820040775511160401391357781372916988072766849269795595520734268229528001450974880163589980997322782358262699314813285451929987818935650817904078469907387650217895935959569853276337142027355199847815724861072916698260052079111570756144501253946033011770578305187879987873553112009569265208906205580445833534416155498052632990845983165129575124890600714286451453283852042771447004370297484198104969391345557777574850259053126516949710624955605372292471685943051102265488259096763705840572769102457895050011085093419418440569004952234387157006676856501971969397493093022946307062919011569801916725326430263333639771603834205640654215531939229590101261145861518411984523238815448255298923017192184646628260047110279869469161949045258155630565744642299336014186050592035877009948060531015390166876798362628698468157313570923176008013373952644010712973755580061824346630005688864083187044055954108863095473679854691067526845107820324641711524518208565272794440139227369055076725595267363787406277020376750367325800089720460710988228362248888496760125944793970706080980257312763654972073467639746106189826650583626685812322318268976974846951454362303320923178278540863503392000972747576474094449399938647837299574506293117209710762965668727130445172862956089413087931302061887833180347325372517703323342430411803985548706733613848066679027849759023207299252268581575964279807275802682419649832529748235183216002080611104671453981400987206757274576217456500312388396127860287295919248697431785707374565756383586407171214452446637208680404539615839452668890710386920993969598070682533323364751698439407510732818327398250680120264994989463828813189745758309076824895481826633366892755698144903248574340352009348510901259135529201728980907727763632086879843703782409493160629175118153117771139244175321344250465399460454483913159214513079474995827776572047719896855738240675534644566211340997778592742017429202854955221454394421298012582829870178548138185522909088048086167292168031236539208870325074115042866770050981081161823206574540035355785752116536072901614893400402859694878116925189632728573961961683590545484948865979513688492209918477764997076755780739111495696642935949232494039184276269280682342346423685597605414311490881147231705788133114282386999665396350431381642257857341876520702131326130805406659048146608109283047248496380748839477210364357286919314422079010769196758432976865473882788151533049241865758208985927103511073745686883551668999385314041312039659685418266645878166865098782433286840665973022176684476028913000347427211767726501795820792709886182939901689287762470612095917282292708629224502447693353916689020303644808809654839874432878062035966929540953020684603385735742365247116187349837045903462553141132381729487078693821782264533260397262965046276713453925128137589874330575683061018314862110326742069008654098824796277573165288107614476898570986796421934662339484845760178187873690051861827236841856787636844843492032582862921018800906682736718277320156690192965828991830153514454808739749857732311055837641599810138190434955279638156601780790038905163482764547016435305247334467019754146667072293118069584003466730183094879772589297948522443140296207835415634216972869635429918967793626211659048449095538489131760945280120759136987232633899322953379358260314014488314202277528505428811399521007602255368265755853524894318711718473727866704233956000923218813391444607245046549843431060868880620850913890117906149173281894302535743742996273653468512720414463970171607187053093181309452209978570298632280711988804064554843099598291734446629217126757484456678782119384346709203106203735337880039260652124469200004283834227013036623701600915526442817561615781752677097572227177242818874205598555505949481831688843564306259333308367529825295729661296098209793199829202050821530998781646769314011579868742374392262197309745349833045517461375498911866933888694626720398822802561541862865166055936481565233380312338954509379550644515617332092297278577105082156980572041515897262724401983503313912388913316506387632372523649155890203897730143169111338274605557922953896340724092905278810202851503442400339929373447225197638728892456944663318032493298870159692097389754660318687849300317206070401968327704622507084645101222847252717589690287063547420009261705114218906837343900351354316919280374969307931880756878722358515539925469876990453965138508885860425870650572037383027618226566256606346673433241958464165616830282113749794998468712597584546047722670718076106784975007451647059345850682133886726510297680157893704012842884937619953393045629503754519032225517990467670556870504233580388283601332883650160328971176877336079877549146222868600865552206303576619546109436220931250317228331599841770911832693458979890839900605302970714970627794215235859587376857184437346008929660382854141378215619926658090884691387422381559240019969208357424744434898285877420744682488347430356139433553618787661020483166192561513426980086205192446523077571781350934779713217045066971702133059234463297682614985131443463205594941562651718734793244956891067548478353142887824610733402380437535765649321432852656578670346801752970047792129156223803304085976927114377971732550400397426464384656287847455171697094185122947571266525902851487774516587744601120221620678115063380765757408298382565423147427818152496357459522997697856575328741529094358149465364301045102040790800849061166434820493683823227096470166373046833622586308114968568382501180446531807393771872385195843665350441933581731189877555898787136309385929500436377240279138534022659970164080094420675788755495776050102880944244637604248140844385116620399349374710604118732593961113256514148158353794058078181787094997929909595448135507955498519959731547390786742249298352761990308677608843003431437429828202816893600397615282663471644921021869469891874048833549589243611374144537550970393751175395869801860080880094685897858475090696521501239132641163797690412082678309801920800051942740945840659521138960661401812658784158433320615408989591110418262791030566607186717223416147096062684047563754532345278230100102433963365586884726093325391165738839626625278048102229276771980521795231962400329287096959127340448310246855300936342523675473222377204057559077267051936810300621138388934440258149756423157828980210754417231405829472676321908992398946620192184521418423381040700338560163240936039639686842755663754041020397648851620424734904893411201577629507753128483436387078105938665541573802307457632291357821270886227821555044155619539596590245958015755211608376121291196041102301190813591382076760062840098795656905555913001593339458463870320260224405419163221343006568846671999530810567970213569329841637589442510321874606435644609308299576398039837916290957315033196829993539893150622993249320013558604243996656554730305985200700521406691230794513444611266103477431036649656477051244118734215124283248971446262187379344875411482394515517376311609327977020630689047909995803836889519543119566379990186151550677646233112144629250091770799842453121390965489105721502984797401094976160848016364760752647742669627242492807167064356857535226512834619625529209434641453318724537030979610021031460493730553336012243790455181468234523920390354494679811298039355916824903215729928429817677459238928090129756502495759005847146346632901716395466504000669264769821522863061465939986870598366767077051736336647174778467342206630761829922332162734798180173159467530811153463535230576954060116374946694639288991981386543721672789389692278662522243356674976540751032448314773756615287659497664432155296308173079514159911158014408314501044319333875568040500632671778733810335290208005037893453312285632115511037691581270200951675481924735470695247739813871738594287637511120400344963107107931708855500373864368233098972200018877399231195567048301846511925104014457055644485095581267046145044103436169589479683943932972287487026073985182729699878276577160178309477326544674530966073365279733584500542317087686423698633183607575433218961093607523344379452857916109056213341975657594475673503496499579661774719991548077929513597874187436179605104651036912623427434109596755956420732176000022732640953812530304135427622558585117741148902258147159815916266689181271915421785943279697232769217735498564654254728326821775459033536914278201308535692618892743060219173201191014131399149238965329257474958556961173719956544848872649033261865598620059972711270242029437805171864479062623614046096350039241933449979668559285552342633038642673890245521468805177171599564067862362100690689893688528874003563662547401260353263155071745525706069393588730669897256411710234334575674112800186641783257836462215291333072474116909568585165288098482794083978141533973847198657380595319416575364324052129692535163938160364579864642932478301377242510583981218909423437375303631296510058263751586283853559964055136500340840979244061618465747861431361303613314569257276679693236501492731597226698531922037609821316003388263006633399363654491772091106567439645890221747055975774604156919365194493563025568664485612456055586312325999726754786314048243243579348487481410494667900276823117122183742730671425933667597156494403032572141854227616609449336365205430009266850508747547505539442757646353440358965673164123801514788460550167733195749777339701508181221298964535645841915805100534203286446953737640749664587924275736781270074431278679297391790131868605554155339498491130764482493870135085099115912144003088787688055213665928642325978120098325914764577342395690485434938356887177148324352081360298437544983301921875528079538983743144917382309258374323806501430412244024940091419894582116673632184987865089089873470550147346325798040143448933091777899806022183880399033536911872408883209499442942203651307396476718406436584262353787096691833748963096316226579218826847703683873706333139444577688338086422933980111446046574731634489457100193950463058600215030931245801669477155063936576352604099048586223127667703977725093946144686592071808768111363822207705912113765784147162457945504915134328252702436811316391672892676147780833688169774614096595811370724609263474921214354657463296997452546205531593390837444418372634506269964200682888451626001704023557728147878837711029902662217193107957021796808550098104920834948755137110423489618410922464308529051999559147258950680481669990481520025095092819353832519116120663155603527611852171146620063314410183161017982779502483547378949143334195430588846464666798800234666005376645855892616457485299805963640628459628475652598526956560139245520132254158967015320978907068850452593568839680447560641909735778376181048010854387313964148563295221926135378861378035474570659222518292950603715048533042472526438968421161252290133518135142333202453751816194958465653540149112392402785390365825881018532837864893808597120850526246463685042259748508066249935944664313981426918988082183837033432795338810720999745082574279548422196889319243769530786538640295893662492381564785726581631699066066148192856861344392412491908421255631112955286769521887649903342608723261782137894948407589910923926426903995467238725836840562101269559853137342447209210379090877967164453695542098532143743100933622647230399100959726864782805164251968727045291480576534177831219584444715725168264876775468418859008460988651000075850376663188229782285149532407754254832788006658355789494115815463522987344252811652230346842280490218128194038662366706762673493015803910897016012438723968704014206473643600237470366948086050687762708279680713617318283096846893805652278015237488303601267930566503952805552909479200549695231943503760838753019986467225256537916363523824766781569414322883029060922233509063513698290529513255869786941082338158544933184548306712051136638220565965300390838943832790861837489410753505000286728949157303192721599872588467486698352142212491641497421434306300496583178898349986859804760241296510873673458413249223855748923278047898250198174935342304413466117560603423257739066974942199142869282817267385824488860752983171375228597159892816841266232990586561378765580981057493871117074117835220723196278655579128000594977526453731503615502556471053554759112188569748885614171471762130729348371691074202584527550036882520995136996709616623645630419305819191239119285073401880339186043675402837575631291536532910622983472131268831437754555361741256764703670227776740561463917436368192962478335262449092966967648636101689885124003299344330390015445530570284458620909634267909369050599681688815222883483950281545891809661083948253048224547711326110724176340791391230462100284064955973618066053102832303086753377226307703971909445395286337516162249464464198522316862057582435228092487220576199552321587136310494499349355118566011315646704357374861576953090243498069188209835605157976703003282400015961536674537313604371884605317052416706086151661278717403189050598181547323809216616968689577760657920134864669264699949937484742503312710007626789332136551063096592977007791982327880701691193237777172767473522598366861994153008067257685674841755332171243207332540248150377188394624934840013822933482227845519243576674848168942025718743013530326759218994921552828385099987227007666872863509243186909376059564000259441854971363140480390105267516199748396735939638835291079364139664850868176846978502721102668965135333682322917122525089875217173822033679715675960721803489959698634161492951633470346640271172237194353196899472958946402968691479567370896339865001178802847778209918950214717493586863989027173475913777234833075224123087306276867690669821422721835569159528773779829852699783204374057165373022359073630217837272408083760045339757680263268902227804260198174366134808933517106843588865289758748088961196178760074008643708129989730754678346808948340510580882205059051653563749533531281096472816022345859473655169628141260248332781486484188453551157924448700067044204634060684231866676513395157004156724085429901615428590290508848618199182657214242439458313580289874843078556598071636166841788244973075505922060416945382619608006187482947182906646092860608082686805226714623123195422639530092514130155231655733663571173357086792337991654799374230141215366268514638506376746742891795188243610821802590527331294767036511462931682715495954402785621179240683256857750461672711235431678292576070367182758345929388426371459901411661107430496244771949390186701326050292568132444984747713941173814934002550752443048910171220148871938759623825107971437918309741223720181273447972539498899906619545053864751915850269167955448673782761112414446340757162941158377066972239862873519025591494195597516318028173273522090263414736683033730747767128664083539116570681692145303068732452076446233477215187281476932739663663286431621439153584610821658189428699983236856233376498083783646478312065592657156099470427023358673420798053911801855744121775112415848086210648625267207530265277236590797515527738012018983101006818024867892578872959553973877012548145690059973681301929070197206164819157670440964973406656570570553120726740706993418204337206626577152571063205563600984021995260074598415075662371889557652035241481482346544753413529551495406321651641443386077715489453751333563089674175783719164748975749659069399880007392395860441248385119193727640191384091849715705202109074722924601783288205010383371303183989789687909585423144624028491538723580579620440262267307294692822489854718332442850998277683755281665540326077980277921857860121185290029246395588468904938729849718014525889508445538810899672484915725917092697230128059749540987834998226171616343887494634329652580314163088089427561549553802315084462222042292460293448647622549933112171281308778217838017310257488475143790456958754639842814222822094432486480065345771082263642061561149468570684173332032859038143329458373213210966355017777680325513924541054138147193694582769646573320380969700388834658228815579557165021374372104821839937099895931786185363950245760100950240319014607140647409795156663915980531456393052323997826439424063209746709968464115071747352488398646487986767463793884814230762696837293430902186455980219596896479639354351404218771011205311693336398407267778931877343438602899303931732387718068408996979607131509022543884126002545068128065551896079621573808762238554893697036316125353144533877145262854450776494783183297023646917016613210912964193721859087346658422711426489343246892048907987236968543892028325968463265757672990439170232209554274017612916707512934995596611201940682556574699633812258724125690026089477874264794632059819280145573531534446863257349730982726563122592602685640701724878330904104861095546804748373666962746952154435032981795484730938187901665131999280591527670178772621466720902221440556772350816443149162838662100069957313551139813387347512474246473013215830401398399582616249443737497934367864465797106008721881716820497359672604480612728848265159924313101139203288522991819894473689708699007604917639455016203999505064380437189942701452970414059527738800294352051430655508377215756539908778349500074371260705905925066330135277829988881615564193483371166515094398547337833582794268330340730254785068992940356738016755679643637589173231527701888951643704542023247342579086272097371877822845327321762187021351375232125423963393301098735426420458085277063020671483036542600225083324845189755412442852549528804788522197308897869853664791426655258570598356599630184183610593089693621945969491221256041146763719567243673015060052103099518466252317628540249948102394556913801989222500527090918465114705067345158010798261526111577116991050935724073437123523648863019112413686151634756627629313420599948237450462470917748613897055348226196571414089695744499130026775346079836446117219195438972845653821503440121315842912285611219363856222188074353359540577886780005356970792000487419094343419059121271681431301558673421192288214068556860983930744960163422813274050009523736040123680204257645408542783944198267953366624562637421557229230453707352155155392317498894347810682740215897771076942546676862392727513949523244640207994221658459094402123534153572748352064477669616608988758657533834374443369480371479895748548149344287913272021028375409757009992673015656968781057676412222036759988213001515245159352883969988055706660563494431025932685411187846977456685242457135481599873116616768830361179917044490650743144049547750007579812103765820415763011070179284509766239536274016128427996021662490253818884915125838143790626309411491753992163739636428445317856714120359718903272646866470763026644845835504244221062427071129817800380681362539897163374235049736058099203727691522468498964303537595878633946741573876972954008695739088204407245315099120707570965893111859641295684128909872352975791413682351959833835593835681898572274653255780076845524820684681349727648880260015319810191540927152004198855913717029744993119904478700080756239932382116885438843333955842533403334955864734351364818200450644708398445644938515808419636852796452103304955304711432200788511746630028864269612324968903321914642686951900669271437972233381757068189027275370292274828177609587727751388882145365399590847375575961041419523851189589637595823303994662463806302978576477811566501891374817755373048377823947626575135222802698279652441893160475005364177056689578698371235379831234492191123223037506652724581671502416417946220236238527525772354014360461636823115322558631855053142169688442636744171502609020769882660170955192435420220233922195566960496605031917819333058398467517647833794175085009930460350146053209082575176530194094150422300835055115923343581422006622603171504862674106436696263321009307740350745066326384845057498548652281088961818683388936973791891764531035741956366573868781050609444868287918461687547370583962922583931204828051846257544658980748475879694893347797790746235688144069127663043360050888729239592381637220812667339185558008107614820382537670965529576124232745261479468971341774074676900779011055867566872713490431012750308357784327110298356032536166206842953458656772481980264348912220103878461040228936730919947334307475282239208787670283751215991729918270683962261743617125567858626319149927616227230463503147895098631421172726169121515220688663459748934002932601375670006018895865477557507882576349140093772653011964054629656069486006321562822529352160133345503503844228412282222089771259643323634469180069011672884595605251475726185605322736134933925680576340451840803548746870189657186565258007582088345951937215844606123964403267531353174726118942360376005042620634766357521951947908094895084038149351512760319882322730252899774863005293205776183500766533356455719425688818729932917746914066237346215841224472796715661022872826775384913199938066726353426762265872046158820792974109725598574428986018055695889285906138590191819552605852231109957361579105554252066101063693536071821155082765757741976574144901629692883037922391688136721438406761749733462549756792631587904017091475940099958501142868124802159122649447075387137824284433926623392370696612360251838262310919115564543589659111172867784951726596804398707475864408258769951854201376107494231571078089727508377746845785015934029650760429657766795848906011430680081101300132805677054000968773624414275667884468207810907847759497050734207711171885939179854854897241124132610400380633982673878183346632813652487124311923445681270590058061214487133678694462266909986476183039800345373187324107192616335055539021468468001759902421210633793897831921583537582774710298918191905512677632687525051283426381777606523870599667801181082854530082898907551716703725931923156953206713603483602934248930081123716987043034431150826033410073262253190486859825032260013516552641939744973041931641105486876377109468978814673981718349938388796861959980160586438571451416841277011747588544561507394664743097778233606366748081330892296613980872568276918616138656786348015376557938253125304169833122573290998129003095756384209202026366079478357780212074376284185701810917667195875137446614131122085498720681529395259781644714005686101154865934097922876573832208741819631150912743328634895074435994551422395675247427610287396542083403101984338292400075162717313419098505923725408206180446938883061831202456071688428917461959004156319783897027011277160893198157503643388640690401299992268327639166900426775125278512470970342585679640889666564689704987043353104576094926442058878163995998164379833681598343069918597766257430248695522679775858636757983718562447189834674554170784314510305422648378573765932681606505601563492341780356121378179405190259619583834309488806731735413750251737613585198739777031806710598396122569130161294846268589471211208161448141878045370197150274696517271621985611333150299044230793552056312886056043411281751289183418274526743744424961846456059438373910934550551375606376883520213371826496768414959962390173363136103745616027346882687003585611908121957479797379056543060969229389815672890670892309685787597431383478825394954357652529986271359837566996690913448930631990810998859278808030201391901970851512641864104136814417289554663363448219377701838944763627606878463979647573858987087858523496536900757357152287719469874318515951584732468938001328517081715488665828323943523840004585372492554904083439104708804132711259607021678245251405374040420390869250332766069351773358320684134798673656229948655284972065363611582476033930543766824552977760593617109456866610764633498972962465941324976566944851673462767670527615435445295678987049944925875088541823991071344978111430407440898866304855296775572954038552530894324099358356180519780778080586970693411620408028558025778709839489365100275721631548233599571608934093217660676765376271933914240969788075583166500384334249923537912897276967382571249687920163688104319845271002212438282730631935394247257882261707543512926919910724211531461472718128141339638059139946812060345316250963562518003391852810306624158634646530955344177912462143495884659656143994100609461401412035659180914750302479438642138704219429280986854368137950862717790025049341443452413966520829266649884750822714809425370607931621819950874877910355191410946979144242590216123288290130771553962212069427157622007377633811216924763613631757484952501945034511528892849670631559398211722523218585695679821928241705817523988540528310414047653628028275466282338746524295088196600427078537557422250914549577348926190023207424309443875489863314426691890078515716699828342670917352183163931332440855875199128657272765265117330862081483891133631265834364151448604254773605550728313016056657495389135006437909870700257333317220995375738319088465153770964679362026548136136911646268998976586553670423422893927133076209989808989481006126208770859869378413657553063852997683427388571542307549407226397010567203406907612491625378570805484763185609674301898273882049010781778084753079663577322096792375564758366060100736939600833999714858148617768022341359961029515891384821236207269175398276551465157365738320771865031647316123020641622441022976196665985826764758186434500212554960010804174510403267766843413125558880050691388256931139151355777296844481642337116690550546538465753362013028300064927350745633365876168034844491923132850017846479510876665461103331018740906415723729971166558534427318712396710851269579422171630360730504762191512219207854668314881174583006500500632457918607512079439486421502293298818591548602803348073110201322149503739621556821259944772218603979929494213116403985506744854350641921442148557291290542372786501435765092250875005168109137018059759843464121229701873029676790375930472589832085026036765213723034268944708922882061655495822930439298715079053568741393101236222078823412517938475087435444241425105216523677991582291712037891940521003408381963397967478257663384835672038319259810542654316839743454551509861168759704969772630088610451817550366924997326716649986781612761251502550310908020580745976718277678522091952363416969348173008662079195755922771844277567787167762025052580113479567535258810614834887685328981428030807351608701480286353383501862411052623589838709120226506577305031600610216356012314630796191541379719199114664335292827112811546963804897756316853072073827878247270326019798557781042973053892194663483146680644849381860276552565187962694444490958609948663350683137459772585781236145300948785429547198227048778767326734472672960035998532999316806710039985348743518143807282403956642478187054407759277842384751363395020726779379650322350564015901632207366483538697213419830805056720280284971055441900530377425716295788959158636350725317043540788047996872389039706451458062357577145441478014957187643844772870175700793988808013988594422007844798452648263728135553803565254953693326709990962092955465813032330388562592199448320208291055764825802480410487566846016106553849826375461595843383307521901947853913396026779111209116227050044635442286850311918595246332792281774032057997187133722153508861667025096603061520618474342830781492485964888532176257745470081281352399471811792150134906381653692150341989143276083128672469193186313651198647815319457945600223232485074409244379389472493878807831983602336635840433232502369842467517570413017697568652294035926304752994983099717277780758966742439840189435887741057753545313428445121702067481713255616259507304584243848697356687954647217534376971207588793104933374301675805140589051997521177159702159957861451338305668041029292372782979735264313861009977277588262568584004375713164517079142628384845405336127171620748957791231987526499635315622160789832993939650785636062370087371625547273226389157807586579586448844611166279471659187532981313678888011652815819970625995131107577314993003142894807683045765626877615075888302764883390708940706159720558189243255150792786072588090662057267215530715664134756299617835085447421512423143315316841332032763663653321763780472339164945225981911787136699524468581045019078523160447290407936261055242725339030078395598412272684590130574330776309905514694176689379634774419674929003656463758792567901852356451609322514041723908157019885358702237731969972594104962432329311332967869395344998232588165699472749062487351934088382595030588094637030985238893148841253669985353494810687901617124546955636874469029399830070196854091616589407945616677060093909421244791184661758104735355690321333084974978894654055116035064262806284932371239044193453366407687331598911474892158286467192611498622327194359763494867344416828676548634490718885511375177633373625068941550048427465172561052896383164961204736912663107629560637592039100667472009356079207512369739653167574395889558579799532787530745582149630552629280011205141171040183526441297141327723600618543532569174078018908136644514068237063627276936282476999529622669133964563230429796353077420672852163161034523069572981253316161001847750458608551896052222504434993832583894167582409864452828390507104170490534036948140875418932397909818365647132779008503618104107311124647097550654820691105585195637844393049306167499682257666487048881014461929117512044623756104982972967562125593522087023917646601988832137229777454968427048168750748305891333805214602216080929477655228010643401599187336673385661320806742452756731653934457042440531417789832942283406842678520943275305813160862031986246523583886335135953901156303416593910817681236495538806095630548611008509874335385547411638481878147390511976303591688193912291993753839006417855980945087447285589946687554956334271921665919457738777047065563089809109955880689390144402080020996382943750847477870842808314274008666995954233411384085762750970972655901452439906492519776823620215842366536768831336183485413575472551069023280491371632664383023487949878631757904105350753784362486373288687972920548668165985335399172435166148416693608652923207963345948114579344775984499085275767574298095875430220573459766743232255601422452838167256932037226962812670558599814237604321465129072482534785901343878411993241572465710314879117880648052056871865767715022480243780911758249238685954985152332078248887812225731701415107968018359738702192836507023931812449429590875742248894412278019518102101793681035698435678544690294692830670742136246255148758944560560198110253622386392199023813376457975487735722182535068898743843673274171277256117802666695787473913411005565261179435765432239601272865616646204955133495376711497016246687598828665658000448784939434463830175359200825843557591789071591629954978704628897914426159729612531569567132422401722058496893198023260312926365570846272168693661273402219819809294691263741362353094438946514969412293775852469797136255530187341094920840774024803290549721448178872500174524723625470519582400964784216104730208683609682948097213049010600710056508189917974779216090839628240826615937673698860743165606878753180580873669758157721530529005379181542423481515397582915250294934662038088485613557289905241560978546943906401683772693020553599649359046158685942838718915005984234158329938334980421828449465344429196507525860923719358526836344167596783782579019474236210811278075417191578891043039571433951094109722661879756333449204667018718911955998743856670652385452573199942781959937014127927397059539641225822617375642916991005019038459995849665097504223505043676202768011845539110271144716021346273727342249369384255410727151937188257182473208837412210295747670394928513523984348658794090676540856887768306813977779472371265821917609466325299612255448055526991224260445149175565214597640302318701423573665212999740774737992950387888627882044852143777773540777024029310284002026585914191444050042260316597468539446062029469795474477385918162890919216785378070691740874980344031723505412778894154318939390256218410118039930183298685143133666112609608514713062728368663060131539668260229717369793973885909243017780574736973732378564729646671548414005255597849216107190722909603461359572254765985620128422721779671680023165739866412036324502242172570417173790386251830088087927581159000773642332584220325732461996535386911502368800792732775091566753179597569095657391498818784314631202589060020400690672194682294462684658419472779895094266670007296469551656040786947065265124256669310957947944068430762225660948101346524851430760503045030108691949943745903214226773724659540127476642271558494170920971622691212129912622649969159432815906692045318329445612456769507028275689886334074328543157295298463664381446802337425560208164930425349993888855470226938548317698211486472354207475630090872528832084295934301732060541601486682175474368258164513085324206809260371956226615215580796150014085180386870892837935753579296021397260504327450414650334844471218783459452067444506813842242107929507888391094770821314166541014007112238603674196240185844651264590365316792960177758198856518973426794598574144435018146173051642182112471030472047270268730312729282668053429144421118153938177339193961770472077851829786631778278097304494781410243926710547901743831168878229068941463613786803944421498656587530616591607705754682695021551508200694684157255551507132924336485087422137628422217795188443923116190306523787229887180230948145581983952564426968892527953755549460814727157003873565908959863330936507508402329251266752750171294747298195024162524775124924943890164881817067491590311349812777370221219719859307092820567431327086823282384962599710086023676079221025272681782996684857590994075410695197560096094358100244392120941641794473758998137452262417355040366923800254231275067592976039140487663806937937898951683413854221878163223296511050038769495332118306508296358366624307853232392412663783640693420234336523458340815010337845620211644448880176654161871611782967635058931482327758109930855661410230418422444524344115297478098900954737085403096242030146327233665503904607550749550563489355706943027915873065913684835910572741882828886116017037270814964123404472023314212831951553678698192869697165057388726003207074642514675615364109406786057646463472787376998485693701586540071172337392713359720818019718828077232543290441428252386023444914775326608457014285202484153426322856596922755885779541409865273216279339696068220551300413440912319951852960502572999427514422666142089778371938869085657400439624783871312102127387459481841781815113637827505676053153010409926804025825896110947694190750012370858364959561865706137723803196826428676217212124928943207014718074893622827996068429473047556022245209514719712861178387764271105722956381813741143623881226357683114066530643384071780853515139870723829206500303659836446278869678622880048934774788523387200719613698265710255814437945818858392767579791867002389858926380823287306109015846755255370276133482780969763612859242140556137348948310392281701113828053844120400644703010928943862868562564585857239639599553367942441955805245668692307388280223085939215323190374669368582536954979103570407995549498668704001456867509247583820549204422912976176846951088091414943903111404486294365391729877106364363445325641670046077039020726653084780248953179478720262606066879843565891023558612616923036020842986564027091317653537797885141649549795743417898936273216501393008267488633006242591470181676395861022510280292348871429507737614688147702185396349528790442419520030025271385160050653352218543858372465627127874213552301219974072162347241609135178082933641200491531958996276419587586926576906265046645884016959636184133502490298316179466723644686200449420221269933458995390424520312496531500471951214663939438173625208236797403423021702018871214118931603393530923710198938298972739827953161188817999003938777426024804976509861816920615099578779082648717057128338578858139085325638986887660184020806970766570904958352498520870061865125098856324799331514392572541144088192794898974611476794843994669347457404969570300006996825077648788269905090425978910029618280720046827009048639482228829204792579492738580837829962167904791301392276667041107412335631349424854621375975886832219196440189701436888036539015377571101683353902357076607264585184573193274447785521239446547024222988070395735653152692293137596869328069190917085327909690711567100904861264556851553437283923479725425409218530721191564869871375583528795707689282816125196576207623439327533851347388528551308540131293911900958423948021613205515350803968175410299291729515024025464676507354011069970605847196337758777865306501449437872108922280147563363660443085920084834293913560284203503108006451377460969989441011279635385688444372058551520550957072877183813341257201139846876480012804311242484207496302220640169790524609646677186527058744213058986999485101035267059579035849155136072310138919172787648676143626074799963311431563546553886839072194498314920747452618766671241717220780759327073007768968045208389275555973064597086621418265130525953669605577915082371442277922648534140762429035238065924112357226635526867909942676211058046840699413851604302157330776337054968805536040692406564739922765222091054380279634074784424574634709971381015327017217536850203588027304013047362139059536914357778344302497023046504914607972102739734328965573144423997803002661462388212212861640386197244674592433007655631897487954527895373112064741547681868230035743434658969093265665330049906038824658748366100688618693214341733410925137097889669090672040595790886682091448041691768297733926763518549011026854565275689916070257341378425352118738297589733184246217478051785855281128895499140632053333837172069286424470081932839295020139928753319064118854014716132052576505396766940047682546244358517387700381201513321792240996289974991172889065705462100552835027879119915212530886581114657640128910113286176172573333798404381443951793271579813238376003082967285410149370842546901792710201463148815654317201860972427776177940848695433159689600745889274597902651273821282352611429194494013653423708349139651340618915054622437002052309703686552861551729214685326399888751808079456296066171928808704849215797313330020428928240333945041386313933981244352781799779948158497423342680453912230713289654734291832160818110868434853073370329315592555559877384921672258688552790407761014204800146162655789184373781706245675271478803659542091970275450916302869859397166125149762610772864153244215607432852200079554587193423726624550633102722097963156857384248129710439245001234945151552802780292326325201239144187162914031599161380304591163586330586709853675033752075549155288231339563383031652131955264226914296312214738228263420215084568134905407638689201815556010257268006428430040134908797801438901340073606925800264573226347177166610508886723553098747965201712995130157704113915841694696798163310393548493474539329628824165777895605288370289894238481417452745581668264970434271206031724351761369220008149187503066570838476774114564300648833960131624563106972417273107329032554262873424593612771021052541162497793887178399664413116358165575918304180801301352827044081141944079190128364690435922330882019367915632314462299518336144942966967461923210758549089409412216229682106588848262078930013476291973083658335550099177608202528811597925127724312382178142377515402862939039729322537885578416830988637404335144204416561355262109519298455397808728880852534911431053250311509842135829878587018766994288144827656011317960809771752103639450822898548236186061059063882697023161473972060490499449422761855688770050909824932792433935564137053942505831351169827511280792962507091797002787147734598648152485831646956772693686462748808839125908253793177575150064178919203030845360014527821435814542995676883834043094030439075535265501726971811409749022574677714525009272776275355794166017396304754812213061570268100085656941912593084703471395464676002618915983494327040742641499920717131970050489335654310561952126861028240531448441354054281037621370050168399510754256762665219727209285365750717023563579968932993214652352216795088128293195459977316315729856040914679948566513469431553100501376909278108157889341504887761625497309308722843335003209283750877483736360065371529260539654410467532433645508807135439364827009291461073561917819175906162729358962439896690903018913022605977260385726837229850432777397048723077646340032655877253817082196100387005199597220899701922001653033304294950766733570921888498233148982561910190048148163469862861231016716219140337243784083706696146821137964000687133069261565324038604932042243088598524612174754961698252581015791178293524291220898767897794237049543448669236766262120238809591344139419998713183070077349450022724727908707176362895422905776212251217580184964017475664264303988058151840360618853700031629506533476545836206155775137264877071532070553859296514717195206995491343513837198303221407027921981451995566811154661098169085369589114261243694841131070531587465266527293695189424219337599448479797320598059151911203605771575763125446485871742756716556715511416723125885183603604124135593274973131245645193147133652160917741743951389009660538500513817541704467897832194004824041395564878019444543471066279137147017121204807865715495200171242675603651103759245466574666530905909842556014115552388318646033174742987550576566459936801824912383381190628893660921756309045187277232221309037436068886522922559290398524740066828876204163880147044931591070839876713241458686902360286753534769197703533320025786758781013832486297151833532498949442290154727600829409834302809374301644197151629971035816951119226046394753291011191108478534200311509163767005848256674626854142899150433884223744646886117097444223980419910595966651403538464938044319059496114121052260801247096495177999303224975289548891851288169595399829362414124768636742193544987873766759742893058778042052369269470112566881476574226409557602790650124116898067210540804839920033076892891604953642280319744724890310489800399359914070690148870057699186409429183673221009534219346606531564836976093987556813111784370788597576932867801267604110429453333776153998866747135563638663522686184558825991853559737871308442340372083664022378635578363728501069826521233772945832243497350803223721880779050363598158240566072402182930358664663117607258174584726172852345958684376350240334693990983442394797161265289101940208421553660914005675304978036162573371685499347658544116883823470319822453820254517861621323437771811864794972159529422113543045848238305735241626145267238072565108761024451526536340829765964354372806621152022389356717526602644156673596466653614972584743437745551567012973279114122111381894959360870523038949148848873974748685718459042632575816489786811203585682602349815544736037674242195619518532811041317888105444551754401455844945656166826922806515603622578303041208875317888724552421251532406180440148775765828224779211748168072316776845690584335686548878150169060217608152643482488645904882632852111126016522209256528618846110450426820801812465580466774995511991072914098518193843200263442251382609124621236231369918370441997778379194583442569232773384808375222169220720722007300402837158389947154143371422201506637882252376760712400293580746866658341071712653228604398125831561071693385853568651994808825104171675724404403696185669892279559603322272985712164191266683182435562867935196035141135476245580289509118458042747117804865833120824339924441625468421848239838442996538786228826150584654256751118619868497893898378377685681660073538349476850545641532553436316364822874598413175353538394680852782744171114317144402776706896686207555800982607818006505533286266644632038615822419394418990143527354295653057553835018183550078595883332179528698872308726938999032403642712935786931060958140966801951044203052572526720816044000175614516972014239723865351261029754945018096420343835124938184638322059064217992148202312693330668211775562802589596897687717780755880536038230840681824833614454260702321094397789099707053172644962448221125415120458032721129146381780068150869185558619537799204114896217253801807464287630436274985709411138188546596612117607313024543867804495492096943500705333928369006739627743829493600567536633628679029813028873776739540939489341752618527525361014445663564206817497120082698966068275548420645984659635017807996447373724750327657149302451639166303525522464435935767389315352630314466043711954179134319090762951032118480629964684934573405171531479908629663226522874700843155866129011508196688637928428999165832803283126693154931691988145397316262202281843228705514036707083755544934563073937281892073161857569857888571011670703867959827586656023191049637008542633212565698871458420020218078110622448823456409985535686484580332766634146532823422489386788751620642400369013934030778500050770862221936861425698324983796713820273206704296355266686314691263364072620238501244865282552038082554349813437414275183477287159644803687326916375006229609390487092404058824236447865544216130444891042184856899227604180080902495582205013266392468457632141738398782201036792216332087730183637080492838369030781771352691659225863560791466949778730381962285422706477357545809597317457545993180962266372994675068030188228413558192486489933061822814018854652866604483634352802594152139511586845026065126886617352300879893975988277043085064985332130046071345678066562922084826772087031060042109762555616996930149547122810826602906779685102930502104648264718469710612663909649802675254844468467548420212490306430708441591388300851734074102270806033639980872397101814082671844065743087958754097352523932200791376583514346649082918125050449587659099317978825168221261958770684210698796713924292196323717506354838264681020094687880212796434329643487735911814462076310722294828909327182284799357161703685035729135738620856502262607679605293166063399889134408789135602860450821417508043371010274114267201504252599309551828025535482258253685742869684746282657830946752185863554946164627015005297573010895727674732089937837187468730569182999884999979265036198452714740943236994109235909033669504155614560594766084499394542224431266559518564015265731607750665145503828565338019893064355225654170761592913794933066275597210902851662433878749085001183701758836570176389334294194717741367179477927775279834601815441617752887028695697088798713830056518279835926225591652077157189230811211347770598353587938503311322397586127001298017541692711819992221623213193454036363581605725095527189724619660465556642463392122255691616412339587191912711898995855984736069557420501781677736798089663113556420051843989527086077509337855958141665987752789218384553106147696751616290545175998881431266326009890322641292648967243174062640288379244203458467542756641189675576520491074748377971164250980055498485130458108430252433274773975044833877577272031379953644672033768051785351495161631237449278006694360442488482559650892102676773886618630978402942377491630761922612455575235377096404123501538161832955769092269291730691390232240983660801981134038094326310481841877401989384217088601268047048768649219168860610169918068644610315401646551383440870436564342300971182194482141403790491316999657905090897322165402095423341335352027968813373265427495176357837173204470104525946505871182223108294341597766326099019977709174933892135280119767457125682301136964567167656588938323915036406972631969724052636614795522470775093112215211875066401457185818437329515403860036686117861676867029025928991063166789761755498523075768019661557425889939293701951868842601589537270608108469059801906880523582102665564047082112913655762713197718338750224131812738132525544893161867902790528077243323009298071257778186875104592033146073663661966924621158288306357174333125562367155121538345889262575765809342478432528983307814276822652032033871219280709658268639714148469413534757837513151163008519965023081145469680552956293672646479834232933835467726158805236485028747119564505473244944120001015035542615461268929078292061034046987296307924063825064610765230636675847705779094873027111322096026138475782430639369081592653919437354754958860384914068479538874629255381657947777567446281027558170498018070011926719916327976741172835761017612246589731831105252530781451448657025623842481486073499173893273076585058146454355041910668270429236881535980165005102429440406534497304289224339331587131168045810407845840243610548478130763641909092090433319438125173296126450366860862348296425882328961891601301950110412076911627777132415679951118595942423634686203394588807486341361797314832138188158429002554774179727887601574824141749729957090778350113618562380435728727532089815824921389679982212497501737942883434359017728169876291718426044531294437382821820060702531035140039218428600194760465665341613026410511085261632931751807751164047993822967436529790437251298953075627796555654385847729025077775459618848894050737885715685557194276530804962268003868388184258506901404087957491065291003197661509774238469306844704161583483033065207140840364483078918842473514066040580502731546201465590390566553660240115931956064584098780055491329596844003230779860519097996545870941512846891820924969928990874246870501073318955896780388205502567458855030548211293823939700794193510273385950300615143783174136043767739915704990582027989316979704317420527297677407705572246118607720866943996043365697080486342703664597174149415493390390653217940334878522835010197660254815789393925338631300317928661079870669282369068634607516946652024314663168237818196978044352124561396708282325752072483023744201294472246598247590796562631174431992020726846699749375570084420182813474723792670419581400602781786845653145954138897525288085372984463825937024912183797209572897842405506459064858826063162574403692194397131024874585804394973267019137119503064319934892619637915939961501871679187999478261323898722894122883492263252384177901445093499877659113683197445221146913325154627230384566321721753950370223009396234111362531644648468157604776085102175674131219917104612236214819967518641061216688139684591496659415206647087385027135206430703946170758668096918968299620000760514827855282508910890463883422968017314668329186547317083322149951192307435752229737886796595108127596936837623704429131969558707442428318359946952124618604324681106300411596183623329315734623614866871316310113898982025002504205055728254150895790822656930824780320377660760408124574039250638899891533967719660431196219306451150748863737326127809607892577644942716988792999006408373970700807619258036912122275728248645011441018217260396101509661929411641104371223581073746907238496421876373064664841652973208123623183359226455522522275151607195693218806034657349423336784596665142755226435692931732144948281747884802426698423872980586460287547317360722812825076820409731022755628015306377662088980188848105491167457398906391036925484168366513268016209474128618396334428020726820595730626503280668299013047080692880040101130351464557329748531947805177115144631204142024244974517925688597605997490763954255755794402405722356772471250374779176332366377695899553487444286002697335091780916884317791393894053547390128124594087007987458654992396901109926861242637432040353959965483794787408241123066015221408014652459040605345138199605690318844325011410536815267187354474888100011646411019226795246294362784837957881080963958068943850311024369828228113229478146068162295999139256456001869026551490842710157062384979213882026949975843113038998428777034109611173271102564456960495044409893698049253393855897850034103081995179642974052772560751288463055154639386206415721898472714925489514130308518711156231608008809243106568758817283205750751046657164581584675847221005420747080194870311833088030166708483886268621250219956280838517983122996123917389976611590749804712396552384590022062793713483853442048179987213778795035137053421871494223572366874551218185094828820044611005539815347240268886251864675005920067582220440568937420280097331462463147887510005699451180888972181437213971779542447156859823534714502687103262497340593354060375183343529224759242526752445922429157157197707908800224975564051387169915277501997672441255731995174847761291528679225439032312048619326854280130224754635479743180475797874734986134041852322303209943991069089663131422590062694741007665328543635986326868391280964345885599966995002940434085682074182167675778364023163039029821395759391576120033392444991081403820643516343099255466339719292020753064769927392589862486851736327489907144148656869034706842059140975855047467458603373975208059325501967440526877856334790792238530529459889062835358255064636418292080523714278870395661947342028693850504560055438337030542416361582502583148904787483310627525526498457764120220380142416973711998175512433144610544887890469633750229947283270083884750941146844540812248437866305038924753160148137243999938427058280167807339290587749812684524564237530405955074561318654043936805796187849081424850721308803565767347486355454687364624316701298726768406619896802739044773408413461102376880114509851972130209624760317974423366674864166817689447397249130131132501407518171401619053813146377425631856605933053366733543257179454884606212258810375325901734230481088589539633961647898944701432015717926907135617755891573795860030304090101366036015494566015595159541364910561953339732119645988374862568009059832742840444324435376552600098676057133023097440834559090214376923495220677033355775062294329442768830032891862999687433886628417906301332466292316882912471624390053989420121442431832220438189282598093936675966696064842400700492549885834334279780615067807635428099127405170812398330626105605710214219942076182139174242256034283516061512749394750084925345556650455669422104425806207483557109728997338040957949210187301363216543158006623138975253600683624196300147744470924070030476203742455220024381250462889624399177988185413057732382635739488945396381851737605341065078611977183863077504080895117793988781555641160580112597161351392056450675483002144493250353165157451877667195799126555590348185491166147020388756237936713417365393050726616844143467042747432300441020749381791044705641721940112962110645272083482109462705434322566808099273516707277885158641340107794619653046478132111101516267857283552126485814353259794155011303875608965477784048104142651981243237492644161691024611639480106786896635802313148119855459502206919398339825667598401887046030190055541241746318510048296657260027925847905211991325656939527018354648439404737834176009504331645062904901712034991645122669292171434635308956501535399243377852312252265209858021392122931864038267285932312885502775133819136179999897864752208248188388858067031797110427298158144104029039031239623754669355024540462536481957494220507843258366553411019033298005736088306830045418709484258793794421692732579741855403707586631991471741048174550444998930217650169744148621955596912894004513788088746638257489993370859856536952444157802259736932586893286754507015388747546211547085219866048333427281635986964017850062660506323091719837795032374977877576566846057960730593987983246263289596832963538383502598860494831598341795254824754539599782789084174386248923816358666784368942419346737858113751886013596653182836478292054705724538213777071500658591304998411845591451220929349388794333136918574198120502840415618906750212730115591440875661496858834113519926818122948443516230260837739328393776852968583624936537380750808459957610434613239054721770691927356239457004833852816680027757651112200626131423313591197140505050117194952138439355789815007311280775122837811968566799628775520605733962837436915735891927765504655749444988632026587946034573398124595121505874851348580213317628314901586996086656963493589095060114029377560030336547544696759014394477659293386784728161283242615427497982665507230388145629043889120150158351630401740332039599180096684375924474195228871893682278846016843468290479463475915444575720963623784722656178699515495034243317607329833772020153093629062153856065665624079714281275200500773964214094242600985335007879380679590606040806011991012141943474851914720940923912512473300155653406247094154185726868488994393991480501440157453389403689344660264823166042864317552359041180477029282400476447371597684668354958501784191260224744798493039203134272836529105115372741128444702839227961350416582914808475908946388428881350393098379172304995992922658442244398062019785355335239118593274739393838843955806282512639230075678116945733199161599698403593361656584141904455034521314222778111529005747186512301669576025720413270092060999348402120286619073530146667829104571025958195514942779112397093247155800775955740177352643550420301854759893739733178178831087859014165585543661264645256146817253538592813541200675265856742431364396646083853827423199989780089311326872202172597479522802088687937463101008088511996476561366442317118466899105211589346837291175882722825734943341739329082254628360168928789362309337670092790975481647539113606482739778671604850635317481491745839892823559919817735585567144010251832745755094864018101591422766818031060279221006825750942711473015077619096427367700404231531898438103858047826834480656626286215392676735137722104475046461083611884083510721770438524625770865229473954172439548369223987988492058838200886994371956240955965435539368496060035084135612122398491142346332569003013532512433126400564912023351459552897051990638403396478119548492297092449841843225729039791221271151024072765503487226896989213236818782854304380815688365854894110312760669930560722721204820881860141937069873413295563130260548700429801662045944718781986136000113872559148294313567606501997644770115573153942457820545626128257922733270599518993251901281938672947527396518900098185092707776822783350640599445745101439527251119258621369348332292357563054424642615982769574092976347482238798135453559231026788654277919729021301758367937809462724168045890655100131660108836090062044982870126917586768455741613976149557306189554489766595722401851014972070517647440248218893765808176208834694145591206383539932162080419688625227501094138591020057496633468526345554287372988717517029237559746281323791129661040345578810445883485250773741875498857038291153063364368636012521967436567949099409431921070962223837315162169281177788982894588453307470100102443830265290395907943939099123654559762265209980542007565647095774825010513355574802885963318750914771945189568391249888838909348240005335984711496212030015108990924305151115581099947003203650366926910057224944492233390154154032195459884841367169404110398744883787846084492237394337079922075948035818551883792544030737052525462416661464075342608389511540376729462055205640164569602430428706242928958950536183693126385545177275506342431879507749655574623073789351946015771579570778925860923635075681790525466379411125663617514136264816504483286625054698654043634756085136931143002015578016103780480245681983929638803808340516832459430215293024214818916764825878301556388886297004197257684449186592290419556184849433598193187017926909691141625386860180230922819476967264713841264530378326957371158006936340653114825849110620165919188028263538872163560008962227024741453934444526374201481921489501633206719355207781819071028683085315035161419098931829771184280679692264422019851612021428674111514240828022927839602218573663629927837434215984750737444256731387937607541899421742240745416523684022693088886316929958017034653269837086510334959755587033651110161458120548064845814131681378761078719095956086926643963821043159376023146496771865070464306774279232694368874101806056910803108602090926348297786349576663883090673837485076908810206578417346501082174006729552280681149685714999349538971391116046889324485692629890140783554972647788640548317441643104200481847533813321108747338785334180481946276543636498723165708347445834377017982952842406932686674076768612133872019449469047012802887068427648259932313052648218977053792002943751199683945794902696127526667999418674373117816943453563890206144779963535932054024955360383618474220697054667306076530422017026589759031913303614450612912781307404767760277693873969255191003415458471638213362688854518495675182452795008303924085203471671557466411455113999966827358821169126603653200786712653697815035162022316182093902309470944396817362574057009060873310812141724661766339269319973368542900239370138433052982754871695693010334947024092290935418333342910195579888563088389683811797045663815177711967636293527551500911162514739073914913676410804101098393038584002044638961317142835509986476329591064324986578912129103749227323842111978815786532438125602245621649310915611477379642216885271427159200404551427303505047705420007634915291229891756469206646292055488341184957632944754068234352437595787412675801863742205007918309802745989580588917945559734303039742016481979778280547006547492898063740609469296441596911838624596832252699809115718027564368166622055731808019092283689570365943739807443223605610919324224919152670682598755935095191498060375697376019367534439957025275583978593020388414348966193343611398650097675158235564694144467229398986131452993576949153574104075106444789836118909614086456672865917512657377520576189027917596597501518589229968706859852543493216311854165562744725577926413824872013224572093718584995922037653249659323090543305665688902557090502900665434934684546395037893712961837856073520643690154306462195201702855108155627744075318057442264861246898602929744022529470757839969677672000205913109743116801618517480650977080876075025518504153077617711363127778024198651019179216463185274290880254663192891562343690641297814725560421440142803669157984544907541702901246022754043569956078841771881316690637940525971095083439300772581632666423763992394770402420922916771907213111725282638435218426546816924038805779187301624548487556983038672836638502763985312762003172548248349398098358850361845460384673946549366580528330959755940227837600673228531738916293806942498145433956754288039503519077174376397250729829743890325146650857421266369441882537985070207175527966244589295532946750974398341889855351007769338238271470498344190164661293214817014416305435051855088423929153155476930709142339176072658425864858770831597208750831299648807050752056068266930682823279545412099014342343592289044840706061876497739712940232324890850279408363427693054254075557989622532365713399829121030921769350095036674622689036785395712414690915388273203038121628367110934654130507384312154777311415310566331513764590532031940663263810556098456603299467180389700692376947070733474010851444649675556288431197831426020575526260901459178609990142541190691248670527536829241292125937829941133439280361125148185753873233428977444743954727977573858721512369194323292386052500616148389038307871453750602743142024916759824329398600785217742287994470159643439583895978017474396886882353852383274647259290690545050789611353019112521176999976715695938706473316103999885784338070134489058775857490039118301750319613692092301013002972636192698982227746687279037707608622339669010507318540702542032392426936540837074903539694828582344198809785765652523149881076301689608925210430464598030686089292712458278534646590398584025358494044673553662982756482317701038081066356545641453892569666765323747321241298459394293777194674680840390020425372644362843010194421655102480027396051554034660221817132526737602463403915938078562647255266414642586231967518624191566148290481100067310825823605897065333283559721184494394249722320424147802677518938867547489426933235086896365186315378180778601551438336416381408655513302685113253902611729795706316059835976691063836666886733625560084477911845350282908807081171861100792542054826297388140396722327320835557154961749486468963871893327784594265811302322164816893634777664600737667637390489285953580431472369106056568264767693051335961749448271860195428948681700211054883914155304210335965181691930070120635183202253096357513382569420110776203539661374571052051456482515720846489055283158900695200189833321257429559812345779634612863201208944802515662689048583812281773063565458484194530925076325920129292905862364593395029565141320313298783156306434585801455704596575612220258086926768038808572874613140873098940005764201495625683319905312434928730469912262697865537411642823107340839611058299886164249107362363355438814229338266240229088130365624576440731322734272316332952821240729163324324709788986532828739609284932466308937028965592993006510503104824107826664342573464178401077972073339668518705282715498217128993530505798472449461806966788230383565310828716111731367352221901495469418319357686019977766414699053835920682949029348894582361465298941296085942349700864895058664004587454731960313944542147298550857655537483064745524026637078486506592827997613868440125953094413924086006578497068833631892168225671703582762999448306626919288522548179357690527188454307993589946544047361107921549458679650570522198516810094990353854803394641422455345046664654794352534255890712000417816413120672124103060301831180712016410483446248225072305956652294827494221157122538026919259976200399219614414691089274910837311418646867180293745396632919150502067420503609572218197305013366750901556594087504923060390172915211259920116755272609739644705579713822471097439057121895150951202533679135597186560681855566420586450864319215592946795918905740742193139479023845212472603519578002811258030146840142121980535432798380726356088983702072572338599459774194385210146493978222542613705362109205928484849150900429661272404479208536801022902138108255655893081034256577571125214549035857212970135505526928570605310679485902140256393166458006835595067725265756693502669123407409698877861110453867647242746295697818013537371251518488791541005058686231263181586957882466244028384628475209372052433963394040621588619805821672462562846013638875946101415927835517331596742601901454001834215837563545589482129893731696681751547426873107659148498594377996612661543559446615265900549507442199834109805608172955635086530505504184880645772288867739861077781808219812527569656251285330881780466564257192786710059110542839083359613554909756355222045111300336998231975640604091035953906833711032789637139625164226554023238643821525154241606742731032064868623061772278950090953804140349313179493614533257521365139743065687809416826974717138110118986652430894824252108463735241175173005649774333148364541238170567454474928336399664739058494563420617022318340706834345153383302991322588486796401921660835115025231971706418783916366347835516271207067124571926812427938982648331185502262546709625658580280279111809922660170748100831988341547755060057340942418667323682693849002680033792072431462640230545427772965710787857200503576628649077907756072917593881603874687380386953052314996204045820332348090669661212769089715693341394898390676841911012967563353950558776958103409533443044798359806292196813450202767632449346836615910414385510519808079451440255529613660079165782327297937408144586352119446441648445671650650098377548729479463930145356785264822520012856965832183815921595967674598969551838280355291927720069421375322826172064721826657353233862154410876159824072132001986868370175498420175009465654925313961326206977337992104307935838373565572474245462101063667328607571904097902276644674211779506739323982823762322463989303972468802297114740515405171868838096986801818809579058736407349683493625920218310594461726979165459169440357846542312248387518326272146328683857225646723038000903563400670276221293018832733317952846077156503038693992460686883902468878049472371155539932915455285838703923042243057071209366398030061948941507643795076813673209550116278494290364545315095409057075197388546256878497961716499480019999888440072135623760206829156258696460874198533275374019332819568679124435044079498403781678298254762058073728345288890186817834913639605314242441178312226609291341905642945801017183134870303019281736008890240941445011359505315490352348876301443444240672846818031581759200191653708191700331656953176599732202222599737096136584420806253650577762921556909250086863900579979470894757099742899834449766600971870382963438398118688723091790899805300920961847901074183555874251091744247177958953599497025604415388526747770460335976156555722798818097535461862745575282502373989293858718900013431763993383901836633152390259804854627821797813749995648064580873920324231242632900977819591554342547447273892128282624462250392960732398812221302963689535824932283015223533684658667481638313992455799320800935222683125983901886935301795507313680511725501210276280019994941716177580365267482273202527287174448954618939652950982544175298747504411879525402232818643685663611305634496617676429262037823591063042983643542635280902012705673622931489368329263030186538502566721715498090003349131081496510213011121296164356698046635180525701595859737045191489709940050682023936837708126620571916776793678303545582696103006094190973374263708946155594454157740348023770793656145874436021912334999428976015649436055212825781105842886802947477754732696175912278191865456170913551114449883633824085941649780342763959631122291282536161674709119057409291190751522185865472167795118498734684940520603574657490954380368452713621568171569969477233758701255694475886631348518419068762031466636283201812252982968022801676162390042647773223904463763714059958928070747590645052902073333636813343782524239499021748013295378380266920208447653794848329006215863342209807056035480919117543795107875053684076426228858444088285719519784213612562829944488569270173911642606614158924726541542508380791841008984230148373917606065151512854683887681752897471756742998769055520237449554137100623967084019211862986798652868583542902938458808541482615255630855191422246271454909421521269312331515999893760434635065047229670996459847487775526720934878970547035109876904410781580402593311247845014140846355527826457969360852018014625730970583294246792272063651869495421854812324527225243015743172322641239299849445288913865536931746448120059919228442490915741358526361318668074966191344883508176452163202869283739825629734511591555126376764293558597194171386458784017981681646983708395094234445202322057966636972671481741936502813983102996665925431409143958322576562346440009484347383391725247377174407998488343684599198918432161123978413149437586726965207433696918286368843222821645665049333716200027028656539792856765242458213775571357589493346680329300530444058474581365668907331867899582771504177695924873316919008843176000962918910473833279368610079776977049391020781390480167881634922914920062966449957560903573300953088822188891806342361479046503710098099403072187539943289067537737378033660679951621352251668632887646730372808905475386143141829007074393537773891289268122812212807327623417444530642553238516590289667656219508310008870936146631689019620293634000519496404916519832380364257568248162757817761658637812372639485099354405588640886246482911200882558783027402699718319940386812606303889316148581830175593089131485200650920997226743792372342624116033986406039921410045603766183168318584826385919703331196805728323150987927012264555492034831856345408995763414054171408522769135725389566105718675869136136830960715465870042203546594644269996440004625765570337737640611482742422144401172355957790215781337405527120439756250644611145570299948017620980165942573987228250505735376111400149884058364064496743074522571064364103032520492103812768184973230695129858315147938493867838008436106917095131224588588007152527137835331911744602182562520626823391983948941102326403592429828706863565300802379769150469681214045702176765592471014870181971874618834067651988396310407838514181313757363919950457344500178053666674306810934985542743280000035056513254911518954591809743477079619906106690871907083401056521379353640427947439410205543638029656146482226942131729309345887110255751753532830472021042797870052746738668543517708047579330474743813307411936279217470241549694726526659192319863765308898503714738531996146885970501772641675714622740917546914785701379754190769859817090955373686720880215742731133322909655359353404770361105612826369948344065648229902661599940269672821752198077342064446820796162617969210451109243511884436672754820859162837774930016773515706684900695007101784572670631264865201630898078980860167018290411242027047094800411053768076789445894150383705434061272893549875109792108135429752621271851489862977251161258465036023452556951843685177965508253669663234735428283300246182425474853215976655021194194049293271301680660183167029549848458587542535058357525237296349410717308658202057950330816260024002802620948239213430383587105728452708581701879051868239187880045624050287480806915700590216110050012103608149589018020172846775455808328078640067800516196607519834426073462680050674516879187871227521582957496551388311285997580467043654032373374858376966696520768778243977192134917526469867804731962703362411825333639785877007777273323022560014067762217181064812818341185110511654811928523166351249316333145203379075530114800574274533377366575722720216766854796762527440233538794555606739080603388498087832438342846498989013534300209634173429213033922098087136451668779700034529179752878131214059800435585562212168045038687909168647217631765835710443017240563242013095626596779766218778476995264663985943873552540136362122883915429615922494547682455493856921855088198192589825085301258117314681524784325705543382412342315111696788138129494367764219858040166112790788045480232948316656485666187461054638902149978732475635805883495323142284155538273687179729445839884412751690175224953527027679635319380651825343838060905791542209420259827122070040358090307314287345862314601601453394787763024429925665935393221941652765736107509633784534578988290850360160954058018014715387511402699476003873267217078254911846030100262510798863201276371272276141167607509519218254852438306400943482631133871762400189073981343250252416865149207276980485068223483781634209072273139794384438894591094047323222122702870755807586500711714295869761112626027099449802989263286504915941114655457697179757038229120921004011485981257229921374357195884949771539805394625316979723330742358167851774221641551999006629050766534622851720731300095369708263214194987477301033275371508098076714227332664675324152606953735403257452766667951242557513066310294983690064242912642981958949942608870856504599330466860573938570941562642408586622783703431373632606285391273964435718779859231852074362754617798330891412671248397010059743369427572409033382634431898867188737838886605116778920532553663987374123393295523892632777569247749179139701370877277998607028791672912200401140558156708533462357153218522486311684715532889126813969714681605624546354766974232337886212840419901698722438109670786130217640821558707248571410698802718833006436316154169128282978625034170030791307405787538211618768807279160160390246088572516854803454890902867858254353691381637331886881633766020969033559467267351652977335707982606377570379653176870841602358950867608188390930850076472590302486715845390965911481297728885676241286745064980156078444636361069110621537216880073309510934486487789769322037682168943191015149054026514688890079845740583260405251464157936692799890367247316290563782423565150610533316785528204351287987630547156137023331474046617583845518420613751829890913187026589063777529539438551877045227325115721684297158844035934866140896324946248726440000309780375220804857453094073717056523329336330595335120204051653683480943607238908314893238976869197359125943872766493570221663784113396881170303828074009303032994829090576680727191729492675581201515872637123574000117604735286119026930222064443502497932793192332881355428822799637215214699502270475027472664500896455781549171551799330833114034202911017176358553462065410037581037398221848662232210025967406493321881572251729106173728836807547971335733249730774790254346985600522110030563290105699720674605492837268239739601584383103668362076945765863989598277031254470392923753997986391582933360167652900948978807641772970532056832237619651536087179336129701607283517620401043325283720916833613730834173437041625157724302423687769841935194355080597417718060506597734549748725470454478455341647562639494574709653030099108245478738385216416855333943957612040488729317186729539976593215187338617284998836559774189893320673414505190126907465126647349779145769544277699664424721885803758208672065151295001849856771139593384760280978818389648417282333478429158180637804280946515852004329251673675351124124658158247155206149265480393074347400728125244964165155469720815703419067623609933570216035056273738153601627720593080905706920786086376795856493410406297445528166271104818235876200999402252326356912243133217127761451722716193987540641970294585375673951432947559983734831602133892846926481813183408757127219691280901681560135455091174314894117261915101982024577523023340242142498015412637195591531964470916716985856429124419003137467586643315424095148341414229403622072583566312628888978480188654345623974851595604854905667841538596585891790041098526269229683109568421044538279420530905453596859143812127735537636060895846658241037240021378743883540219798043145639701324823471757067523039345918894268530645614532081836875243983678657950122627086531857825296592721521361120710289675904603616073940800902591596504204623960093512692864079550302410934869558595421140140083797317233017952307672344325346704027647728328760381246207254835973483171689929539221641881110826909069448157275978189831363487565280561626893739104046817819786707510670406832259779782989500106299807870205261069943016379837525611817556066963968050352422177493585628365839810892785418194280687267661257187699854514054849081119874546653607009160617082499409252390313561884873101535517825857044599925541856879181204229866894125181568209254151634458422157390365566419802012487773583640514133558199304808230518724186719954961042911297469362686393334629455859279814016450622926633142820190123540362818801211657942248583230693542775207388070984613781173954959700966895363309361918486209920306091189802826233831199883566894531791524064740949048277863757611718274742512162893507692793074915716391149021000879985311132546921411854125741717912931586396240159689751721296407490969994974940650769125146852106473881669058671122721101766389744522411374618102671320472475654930263495456714905623669689902267895442403967129516629658229045520966291555357577291406147195084541758212260342354729051818527168587951916259662092309184267008431107995508785932373969824819572910584567015529968486146549108534510318687842300031852634938111208620404464026332237083235208175072059377806605940251942219258691698401378625049675668769966421318666949853049768695957155054796064912363868407838942689401652995258697524603338741325564996956732466159422722291050709081509269784479667816355369881457637271664256127815619271122727119249249270833814905961993265459896191939184065970525431392047032554626471752963482847728051952510041106458883662401735824311647366152421680430960498250180406454810639108446158356355658498880828271894673872126084765791490972372161225488819424057467909988311453082727602238035629975010669427712310920626855755618417393300001858600217598358617636010682437844991260107893022940580488334484106514882900866384936161290140293159924832554809701098510179113589832258627213930808310452857155165091301234754524293330383090217578382500396864825965988570701188551114997972059118398674085948722096271576530226821299358655149161244104823495482866143159568318618908247224649098180639442027448729415496861901657100872624489167798670085205815738930725917837343286436700436461985139327217743701270291759477770570968184785477364805520201755335567411689847193164785020018762907792744363765028820427791257293853046136961649320561166137660502972869871828133304734318268578112222830562859040137415976591393087306320223135876798097319912782804664609584922425082697855262664787247145928924401274639727847963396556051743128563336207850212191947303530348635230263827252523561944185229657885414330311675723175359514478559347019769485802508348478961988911038235429163871966987325441927246629156029254601213278727130402228892412824281811636941120056227949266895519880223720696577360133979867150484771302273979536125918810376390224147896027138235576278390357737173540830241701654295819221502875062606493822598302864766641553034264758016869976985441550099135545220333467140361577822242428915860630231085739978499326888874214944892588018906153512078677063287662175619754370860322113997842455388018134365811220430317988856824762166302046779553842543422733068122793438542258162573099724096600627683529907237600904068560697356462890242445944253997765458690444535127630272931541153138380813932798710260103399888791300930734275024874619599055163608406281599114409065972956197960165227586256559397831623905708463768129876798032138768494075946214705067414491866538564728541147566525904436789149119712350691525807733469214994265852500468417733339133128266865267252957352369137993458794470984583320819328064004404573049600073232413747115628879618415974813157142522857168173245568946947062670138443819791956914052481991705348560955089808771312280510937654427780310326383662168681751493104099526066389314751565332874603859472896953259752517952421816827007272363641848256685557530636556212393063896176346652732313528549483958993317554577817060739350925093481107272818064710709107928397971840915082481712737332963820353650609106210210643051771417151136323857803819973203436411659579068498296740857497236040054831986622207817619155128676121320193410080236799219993222173606543631871728659676776337801136628134688568328765734475690030944294228050985098703731169464153225025901025036948423623302127792532854869292611450128356350128684294091442565627124469281769324013053548061941514460517944364263386703019828614037628223915580238344277626236608019686607138731534695837354986788501401938655975723077852498543277860872615605535353506979962954699842579071656388446348409295974712362245717013058581754030529085777118028773457948194341171689891350646850249101000704845875278937457290863600097500143296339282632287185090561343217614090143378440157555296565610670596485730975874156712234402840060998159683316636628774800869485092754144337435200861826629122855561966120525396091173780926391386185551995377477629657507220116544823845942261998739079629044549164631708567092402611727399788096964386269616873631598534907099850097325720974514334087672775937008875408703333861903268183919127333198403471407845611636553874631523909874779040952733817689820502207660571723032447131697126192010238434493161082534623112129133314653328615989229927949949105840210342209848984899914043919377183777702567474172568850089823750621764014295913653756575120748038458737908048251136372267392052681876723085772923486583519766655446093347463785239631938768058447634171946997911390729813732077938839891964397736372966514643853148124188277205700516721151337865205581390929272195280058529073980825619981483174327085946640407901915552239548571212675137175722450663550710742236063952848985170274634740114177446680614046778338543650418327413783818741617499468411929261414398421426487571778035759206897009138293746993970911834581821774034918359036036512070056496428834474056564513208711473280564960962918117153680345166852354457051268384644760572835025908937531951258067894530751608515809134451150210972824689732142638862127546688425591479638834435209448908166607297464050281953796393238341545871995544457498642038017112391306280120533444967126025978752906390230624172214333265537913421816105704756439249528435763952014051531562694774975855882133224186018239158765356850576506512946151286718203131374215678158928476251695017918715433618820267375013051205312340791548682177705298685497069939450406963631594997616183393974344114331383173287297867123873788846721629920017538246645216037676848697661513907127236279327305046045422086571454462558327618930441560608245969962121945809595424624965824671766477278847772176942176161752882601787007749875274963383174160015961417304855318171558638184023758097118527912482686706541649940869799980567823466342203455221562909489038830409659111005038858550914846196449267858022564343948564804255551306382779068192830371536355998154126694543040316107618563653428286666493562098915666570498725326707978833149113769610763694697920569547007764959704162252596467878526423387121863385597538196629787966754144482242302041386043400669355694431943875955198784786461731969900500521537541364438277809382371636558301721690319640082363631650635403235754238297768804178316938786030287353069480506662653607326200208099706761222682117836103374077831899372119607676717763386858575651866028175281953600719067026756712311156617706440316739471949153590985884632270486731929521507062017455964642347920366548171149815007449476038312515615745999068040603975152771371095112829704457951255301362490421441959543375638581640608362185155908648040967221484917664789802481372024662637226841388473355851602377507750231708389722735760433526719446155863873531546984222533364915977820665556025913800282286170910409315159393112078550912252870117695933154566092599957955197005612067940570431501507954537790492607587376928210859106191563949612549127853812572896367068396875991204419096312759186058901145910560014992683003670590522264610935481567906961154741086325305966581266972639696091569018222045984018686330875157458992777736293856790912353863972877843809165257761970841543331259749215012680925555932032392380191083755929580068716739679009600325739480385183248605832737855372004371771200285587539061876980882147663809701969143290603379767144930882316173780594944824691028887889397193261402892393152069213746523027830660923278015607263708253664629941891893326472319153787810166895924125900588828148286504343001554590082427819907702282102649836903804010881938868271350168439903194580098794866523550355349204582836341602500973651101461463284002485969240213327831180391700897335586366168679887905510806594832690037449417642015826840271967794904051795570795876996531420982854425119320535895790822248155635593246292997929542330639440237500214993653913506078824555557229849500009009168832869411346684487131042275977672503966286301776288605453902449553954271669431235355280354218981404507130756795814146842718522624976457406970076943694807474485109146365756168237396754135368543209091128900954622373550891275732755605713097942200781394949870733367114669725790885183292341050932273554079302841782748317220570127062338976434167829896545141319746356458570711910545294646666910870245214684061602329068822670296659765663442539156007443438031044291801976163386579843785378141904240033041357048780057808624297340919551767228680138359241293234373001510288330008621209896963149191390602243124770007346100225741882378982973036568376317730265569165974410181544316759435412731206566228625049975754093822006614212366099172523324282742159109465989878510818018121965586951050209754828074577190558535107847785938625268328937440681844283247957376512641336663011187943560624446577383729684231055053230027044602673419565402882870037603593597960499209456164041363849431669702391007287737832747225941504559759307216386514365044857334135914506712126729983217488221955906347949552844139793421192211933982961779875038839615286545022728391655616747829516959806923217458922482830537832692176355426728734451217565790568376600304808180684566024957611261105286797860934632222603594311254985483554696342011760766548276764122662639065439168181792579959859055236978374892756007171147890402859548185816355405821743277570323938973375921620859916374587108495638222872248023388697667441628609162528448574920036967528854452374928336249977957902080973651608751618838059814957060437678652082361813221962485015941236490222729846765300689823327655063106709985634378784884452801245726035915939292086933328103816527327615720017061840462480388354461775496082939701053771915099036739821945929586080918135373551781798577859133850164724557170470667177575756760578001055967568055701499482107983165509443750816543305255141159910482201687286839107555420499341765134360913205323364258199574011167749701612728577396461061030065773707749003443943126727841067933315216919237346023572372492639982852000710158414998857949947597956558832721509965038512689459956478881836739872370166701479311521312745344978313628863352017337767352773873379714297538678289974860485135915370829901299441739917565289003902764365281686955072561956253849362102661830505088323264173822555712597014411781661108827730784168211115198263872296574406523344827420691676982303380939430536555633117448974655016465508426756836827483280024993809986036043910052528954854027157768287569952959560025189669446509280293457409097863020716449421411068231251931512396700287320980394447288275833373881204906259771005707644356374307425007489397289858669101468283801032320510861157128293167871052798918002066186815503511359100979708307720742064338446994271085584784691806884332909408602455390625001241534305799922232606463115449398819187403349139879664868535045936883589461641228495633081650141028043834919901834387172026169289526571518955855936369054011032351955656341760993185712743115735277637274551808659218334000574367288445761784451605483021885908016304394785078765747749400368361708920994634882279208515448774402455353490346276074936214945664470055017792163862636254454693989980811267419768892814239648970612665301129632947926289964270934053756555710791202956655577543234948076017886864233968101266223687313884706392283005445855941571483226188965365660160901043866333160942594273270257381539981507873222520471074735254546075032386735316281804470005798103378478196002718758996612802525959682445193223984473244016019952957781866897415341053845423971763044016472697469459313352453306681737991006714490819839008333474739996884551359489203977410582972440735999015206042046380830466070550479787001175420335341008230263980435196404733667088226353402964992389937181704190375920017349454986953044924645918019594723190124013999491139176331147622406191447931211147984473196584803462478028048353446450078439462017177118705449432069913589182924165951351697975040358370023745079782662605696466089376097694736336402148550272583915226192778596469017218187723224596948396826316231433669177018864985304806467034599902783318391013302237570958131078070000832119707778958818085827501400547067621359036147957320626252032446431990476578075262001533685412992375086929765774312400291709776231320049275546190876332701410508872326406338231021119098241526311575703152832746334495329398311082361334945315630931377119130672164281627842639380331893057157452608154386182118607141892003850872636609103858132308746948998259782690824928743720693288508648927270727749331684862569388597948749392673167144890311966147050055571783618701491446600877268739274993526827535309135382480651994740566037360450724801605310250468182259688342085791578759690828154999564569803820440438658503281996710676971288419712768940935773200811626099114870037962242972815303985828020859150298560516457102071359440170415746173508649270455482218703024330310908674086405244274866468609506388778960719236240465102500394675796932885740856805227634716638851558182665858069235657849582221576355000909143956397877306631075081972797660108007409062829550073940893784196464936893789446695230632195836162798196349681944744334276601872059258696384705568861157295423295003172319536112970649969911377276231728019620325369754814863064046322243751276016486646493666355541481651534838709614130920505444719452893847538585975248959505143559242844787644532418069190230773681823482941171738094454207331538247712983957396010654187865702504921314935638610897503897713475558982407325548537872210863191685411867484802164008324266902747487796375281788951976599876435946123242123731545935503512430739397023520154776881777647172701886538501446150200400512522481208427063556769971157955269034968532992540180475155706797182945289862613708436672941067624453196731937117731313433353386977521272924666826560252449315790453000985553981292251637151444450095778969701660745824546743218556784533957371889424446466059744182912831747916272741905099287105246325488058111023904085658712926795804293684954869959824427552603990877412747156403091411524440463680103908671823045763248528871106281009153290201646447094032145757409635619723472833282378288653292844036113299298425692016766598251289424044793052477077496869872089612596576240646953232217473458960377058834160120836713574990296888156304950116573995177826803250125875969548704306839360819683491531756160813411210000606881516015377451377093857748681135708692761364406982747162599418120155702849880998135354135641054956075520345339797118660445141185162435932610395827073516635073349629231810360049537649904982092728535260514724325661451899524051597673843821450192815619979353187621204293811996838086979757926192063423118164666937173585353672631119631958618444374637151263386900140756856676846625630108978131460512146164540795877120661274950544554352642887259700744109147344143865235099825412942282805727925346149164850173302975926768712712495914922262784766131380210988984866662076798285006928476684427627702347097491032000771251941692717214531597754152609044037241466252088985488899812170086907999418291285521202278961366666468978615685058318291115082114275007812640931114967864630553479975231504653562656997137579340110297839319807419637102075891607058586806471371231460663248661167819475571954493647485468952611845784901954891227189446733392891077592207750627788535003383922730109869964299454343626092837154629369469846519365149077048891403431401193501802829737761630764139781989001087034042016936209007425604608368517259823540773664968693321125585850356747257072045556874041131961935497235491415357851587873831502184931607432807618874373517365230457134655713233513027849015292079101767335645666871357263964229651058233472488516808312130441934068355646551802754018016886224447967839227208353458013502171468864417913137397926228931102642846216066141175469702211165960850025039200374254299076051139028512635707298569488813713313917101493982241242036252455386566791382355581273064787855991168131131804337063469403555288770915111148635893138003107156394260047209724104583966795923126030566612209836307124163279196949944422622701858330885860134770238305816851060311906094516078466854665968994889320171240340192024659602130954582358701502646767790878798517514159665641229949659792728315281827144620429048395896746431938021963623883612167687809582723418273214609216387175609959666215291764637227623293730765526359322723435783477819845150581369990946344813074011793078538942939454413193894149750580769999645641227337060882401582528209130226010334196379933175953048365231514406810094398783825752052838376097860110995420966457363333666805326099219414127899569969054326325925205889178105915295784336908744454556457728758063852739308309189443095217276562510495796359256265854254026601289352419571798118341535201519026071992021615168553176203033955102083477319431252534132250049636622416988356380031851540637543989209601936486785631773697951486051724880439294403848678976219884070691852997824433054546810359743207615193987128635034151243110578313211639738047572596560602790701383693524939812958784000669864671184089759899260643353185505549329561585771714890768903179733495470852049590775707711509733730284485712894605473713852767336427689138127509563593430530060870876202733315591875007803159691996480719412108054009820440456225817854174099354852772538546864272238879060944499068659269775817343079427001904887544322421214508660464652189117406219490549234022058274410927988663780974924919096089270738069935753855823001540278344892309910076540341866790584683553856052336669374444541086189518659628687528729907622827607690741544122821159661154961997715456287970052264813305734038940565001121324480688925178186848762212401503404496852692895092609562692114388253023032977343906838772731062071976832099497876415412246141811836427529682268722976766388306991434811476427447622066619054744914524826647142484616226995535427421150819572736870790192915867372150459730852979785211480152002358382530100806542974007953821549179584817947447795643257915219141291322486427594655680429598122641264587093735481933322997900275290377451942915790476040692328367741495250659114483562385371434319095447336902975814962084079436152673269626975776192646031589865293106474978045790271496886139494904604628392287370848593914879063085510502153120360635184522409955112163907522701249185107136484470978137654281889667209763354487796922192405143056308761645248635287492716999280499317509139805301222362084010060103087035092740979123070508480778749011568637646246717571151143724457322553702296411247515103313390886105009155838303099557599485483883437207119419435888270898086159367815499142169857522518608250899290788350384149916499462745075266804977257959691751649735312808341172904322310023674425311954587108650500381314678799864716094611231880349252530371366184696906467859999148021059148621301090892378403512625265319697770403123540356514350456213744012416352799517797843843513551347014524865693940460819683834343158669232708142373297593956068931672327442799394184372836514763185734152707899101985492662571186896417844990038738044279906589040670251914704113256875603043644921815234657158402477936098408741515779885343912414166157886471425993088748982585554831676551572794644661061910015586900894565426300655018469936448014788316032251480622457678025461622765710520512682153555181064256735999426718367761997727326456704144889676212957250166174959633296095664367532902105897153175958251654803255714993565773099499901654975899311766677237185216221675210220155414671160925714081633167560388153609883635903931513201855912723081646348964625294209774965866287174168412105234193999535966961395703637795229162622054698410853744160077910113994418432982908055344913482569288419473774863367663660726913781728360047089868597160812341452493726356497404867029592985183285257875622275568056132249799106388417544670847762330942491936590401915279110260584832561660520267526814766929589182200077034974909718745485574153315080449420365342808385617163074507902101664941564660287725566026029182472322330224815098583900703425723774090507578327187375552044753970844745595696225402250745736406089063457128473630912611802341942576545110628559979052083099891060477006571006188665254866060848041247276907579960618184493551014788397812765506453064667983128616898044752589912993330134775498433773566175939326292701260955062294579288052068349520872057155475979202667256249381021678621103607206877339710701010679269458046766175174079272815238719641965907051055651175775222419684804511163193412744244204077677837294135137746787623961318121470619116969729035991766787005003091149409453891592765783429828023491480892005601887217565563054115988913291990881747061553250535496163278195416085532632402865514535086805220069838330418305120803118789467605150256676175435752055571806866901245672264283629809402588173818673898647181055875223007191200723541069657536494595710175480266731513088924442100178081260001218537508755083072674275438631887313183243385094589884012700953404854876475407727437422009420470412667231783022843529803310199098723376365085997871289336890095403121642139938750607552743865841831013044007557908522617142316448527768012915406620158675744085374727633959565470780148951292954899768689436294815431220995674584927456031407007996284737674487093800997326605868695496363108216473738585439693644084243866834805109293427431553632526859994205931797426878204918108615426569949294868685422097227078922336760095982083716957867994807533823299471972985407081627272289728119225830844045686363479665750068406691651834110316501405464670924768628154164602539708893575607857253866160949483625216423474051489401255316667531564757234661075459156295884977261124851963962564450391054361708988766547832412994453366744019441508666444379713661904444596868798722704956630165193652492191511133724963134426117138040174581562939196502874936561555514806421022816433643203902654401353137715869213221355343394055288127427492312644828260294745695155754655486727266303763443263972850184397504005396847992591505195775565419119950992786558107070654729038090121993394138784255699666929232889401930535526257781398960167166390396946561692011730859750691822018924333375226112417609236439823239633879606090710162670368985892005502295582186242734336502978173201213781757204146059374991841216123896754446282668597241540292205096066892452295120182738252771274381167010406187350739774377074779882898824121875806536326500184759213932654530686849797903132252821769241913821033727226224991655369646749454310622552322151049816981949092437443977577288967107622349587740038132025039935069303950114746240269506801367956527739037608797737840166210726044745424964504707463850214511592746121467697051948597692611902456123568541417619997189634576509745909605941279264831711791537137767552423573152137871433154833182421663624240160307142275056967169527113336543290525362863640579572042244750353210198075337965504471086556991898636246695229954089204249014424922178477537734290128954760388951215666633661790514749079615445404237910423002067802007231403468914621809200313650413898833143092313052231824038055570260675450588982011805924047431709213351687259191053954037674961527651561873001514578783733782252163026985086277807839587603972790432777606430577027764040114132657220519837902676881121225805996093070830730635435295279332202354395231941067789294008989510395612638443475263539775595182955614111583852560170995310580168491678089575827306633187598859702800536683207087563470908938553408121289772559985496191091344209177559827393142563212423852878271817767458166381327477266038467376296042300992212854043064230917037888336756339318909902045385972576448067897404072444236761008922899540256464163808149057028537008637154511759713240946475605327845486804596448233645064242902465193863695076416928930507669101386821694666147017550713689427807783750598161176476506589017251447345042082717273279407345094155936768724637295942152629078788230952287191233493365620154237050561996019049434223627038871011384079033105101379664707947677954841254029613760843068092577778856734556717026057952818021581825289969320855342195462429985680189443946640530840082191711092234375637385115577458654605234768524211357380281443608360917986127667100828013863491447947553246960641355960318289858863865487537871375942985796063525357078210104816170511801757029477240054616046288402624117742125774043104419460941708078596115446995450199504468068629270566523167844255333149722293170535874850557460841003182639780569733011320088094948902987447133734976888743114225508921144504565712047558257761443603758518569108748285266659695904397177040182960222646464520642021683600930600816877777219930460174934550282034653774105791082678484818613349474842937423414237061713498115803018232501289810046212532772460152980965197884625106063518442545221717790840410609301379564124371022112689488831939157108224434349825790396740952532895079296962955191495010805680632118851544506773595911853616694799411089492275525164960276854640809442362213188558452340630895519289830087654684289477945718327037763727696116073073479202810244457168176646440615801936815220143484872277113453828997691420905708784285303320178191512656061859937953255797548684594902984057938339835763424276934764170096904257132817488447580360442480471959181799066916198228509530402849913299151186352640554870524010232385299363978624021848861815207007943902681919737482252201708943958765289614549846467653262002042346461279925238009009320303488372131776094142079392735163478205054151971699659646607598380262083203485172549152445991683536401168357091049917642055219154542452784437968155863072675314911982723913933391534337804233760337366785008811953402613684801910762125107128283130769182857847221720306876528972934167803509078603099177302567932642044729337476290466516312306363103595828603625563999808201727870017436531157195208998447016660353233225672826429368791147727396826304267254238439222067198032441933043862274230769535972099427239630235639742403234073457419234065634626450797521631638993879818218549423204870838325648750293300195481602909348399729086015310027328704783437823823861211323093453363822258173696924562918841857369376843348446762022049399361982298613035089735079522688562367711510074393567074301587679352404335389280255745005827278910344354156843173376518377232562099511867152792284891294418959852576020639706483855016108665161177918062482993273932197578942602007823871477429816437842774511717697601451972463454856942010580227493267045304469238110812568539093026502288737214488187026820626089809557502576952811012063408918264459185542412276803060405897441925887712307131307399922394290147364621257539787844892713457492013907272658769458226518815259988777558229417700128045693157607442074372197532188388406905325311438356895923311958396504633980295490144538910624649935062147227822791625634290436618896918685703005089204387509929988873571731218647224109982811159350422736793224468857372269596944892913921630743276807149397527456758138423431306666077916648032465050928354519179497282269924273165154927794090899477372898216658503501176137417339102701895670011539153667318107239395078382054716776095142504802990283133770905328524960019262188732532916896381418565148077917787851742118144257244308055921387587323289054883930960459351140937441705770053240608468053209737544073145611671144001102283322491872195371759266397874034929447479213392343283626661657841065808447827130655112019702824388510418598673752098648094560648889513614526727411495074975443240642650998684018465521076340870101442863911124368886079119477003575699802968300302400170334034955645111434740781971350500799033459461911282898574203973252992141112557972008799492710863359078132550621461403281901615025089250534520288680198191483238397639110492655177194700428631655869747184940646227949235579514780764602684128992541901291589936946212701285882536788321352207558464141622966572523772249155803015122436025385387472971812403550348708973528791365792668482175006900285171916820240773358509540993032986260511027144338642738185116272657649608366894314175004470961851311166437899293967726200090840006646241726579706945322564948459205584525076232256577854102015892897939464113218058219730174864204169811772146464957954845863145688212818622055916153491989629762983606802053253524959990157845647889774634962039354072090133420357991372967569765464119167322449191953281885278987608444182320347879334616782866108831106851812363931545060063897488345186186602629976016333288597369816671025919497994087019610736113163742406780208844466016631957422220722137134184785186282621019084128523654483704320504385228121222589127532518046207732261194414205289986204403030786358248486670691405736573535896866728048288394439919698672823592693134148830755864401300499990128568181977776732480216079316019626550216588582549386784715831007459743703273124431496243354161029535400084669919836904849742875263124481515989321227843870677791772343293164034532696090282736709986527194867745571053333550975517392985246483688704960724393349054619688827293325318838715795541294637434040254873576579990550616183500434863435566732536789579942837480558244795418592044161814953161135729251365064062260064854430158866138011325979131572445551516313510613145166128766470460033913139786992429547772501326321344562570353667521301911670599794153496215848058320529997151556647713499163628150791802434911728388281899071241623107240778546294405124701778584489280884060355805455466088276409216600922806618325038882598843242332559166549474775589316249315851458941688323081241520595117106604772475315008865775112475972619740460297377024064368836673560355471343151837859788517594999992079411331935473860908300023605949279672266784724456765648198085849485308599267307382170983504662789349274342147377284267323266720428030760191800699728564143588271137320031025299129897634903306074208068594857605959706112566095126193764624568223764590552038677201222817754651368580602757192553675801435529643882215430700038297861159347781675284815673052532956648884412583267183528098457625758581028253827234803791683561416521347679941136791755103817758494950285223317558906639146570783869304290814297989032041744259836449783369379921456483964879124379491056288964689805968107876215030698474324224431449682165486013073106890335351157151462081756206668366875286204051040237022357495241190141685256886008732127075790868215512337419111632643112516826622708306403616162683920041925926676565640411959269735559497346743514599850093182852002952073555253742504129486854423819805740594240090467282828777699293155353340327955118558525291436725760537200456131628251958636476635634941118840504738798412550145539310114528919626086724147357499289162246387929473809316133945193549705071294666986438212212790563689697190805367505672633264885297638320715342951215706750004021844702340191408984534165045632582749683467223350169456627030814714991869812517501044462709713792262234891181875732121589466403984832654872473471756977183780927998716062678566479536042204238423329935139342354085068149696605511042763898529533621241100929805928676094091436630270373687656662600027778296480837659267048280711973804095617298304201068567066003943523077707432648109916438924137778701375384178289864610069263045740229598310040320263777316860862055794173998779553254103298245210864138591418643031582986369617424576115929993417515180425601231545737466454995565333508251636347735501543535516391317968927555701858961487226318480825494241342347318984287353026963975985668930177651424229432840423235851575828956821433028450984077623832608809639285815495333624976851602867025705662165507605802261005772119228330235597848048897134101552479145364716793649189576166295955998466685138614759800484353617247431075432830471190548562974773758918122455159591731997654193702760477230153691797422323049238414198535243358358631559865250521115853741025663980770730806322170150296329104522349464713379887921313976503227927279334797679170664677449031929339715211019924032270142459080635779754674002385754629369903287969971968141660115081618208152568535549962554810506678151471493854124849247104615510357464770620751265240713698379981942612598357423298332655245632493283137184240636054837365356677849374340307103103144187484417017208752609890162745337495537908324134724810463215186428119376893548492866577996752277581718056541881219984224409686264538945238404937957296814039455779065350243498067056171842045448039255783228106603438979511935386298480244340846118805664518343935453126777455318861014310905173184661604597791050542553011213686581580992401687163858534988139751116124139211048368966809262388591118381463758557992166070943667850863324722871365867276446658746655981533639561699373454817985846766680113898331545422687304789865187737177596811497844413068857267690853464301100644126819942386565596119591415284649963955928698854946322624740629087787344923142224680626654663700664163879479612237322187264490678286473677804913649724476424829410510358543114657156333560341574216867033571736172309713581419144837910107206929444634362835973260319385055347578190410486121417170540900803307784931728280221529051077470909795445703365780598434603503204673262752527679571119476202585180565838816532249320428430654984696041547306861895366690926759967854594494889081309754498345187554561937115087984416459891134398313556221874410622422305663953848092089449493765065974848692291105076836943749764342697088135830189991281162066876036520770889685053962547604178167638682973083863584208086976094599233589303281136729034779031818335539057479603224978180035089739544531034171521191809507191162751912614200791590162548747183974843784415069293653066055685641652699912362066682436390762260190035978012222752995761257816754298530737186384658603681901072829425205315889094314499521766455454744472217907228493614711184836489683506904605026854129864745198141076693308485685685440173325327951261928731603237826451708556777609769736355868177097216736849946819219330283980687676898866862918301542732074970761193903370930498797034473948106234828160085703422187739737839929378094711696781548987890367186561953911969450057381608544761226062202365387222884996564366181159338727114525609046977725320417060513250237195177871109277959025006183667799634770997092787511793925565758249170917733965888188570604662034746058040854825094403366340432174057415407169763273241980804475237586605104537260199027785239100888228633078503783608860280801559907475818185259963518477170694098889912211433090638692865126624790531790160221496155090419806465945641221238456410150935670508088788103360719403860848027123893563543450510350872750920024966723834256014838099636106288476063211591442866970451676024208102239177171705257009942261674999184832086386995618055557743530488415087501270837112454424838253859261749513968414752542703112223674530514331428668007431210880138011494629731257903510496761556653815720625742509419740412614310063865310858505655905646042535222480446091568012957335820531766540542833086801581819743730569156438785226862580067331858842088214481584308824666999121617236739493970668357952802424414969372962395235637758512091030630572377045583758547528632166076584469469528028872196884869806493145652678073322259277210812222120654612646176646262877605425864464406903883786181640760813938695184060854126558216441700397501649340464505077671030158122923739272492093667261407484572898778920382555858100047537620474650625161192396494318301758634720414992125938784946960436824018239034465281332006882717224554907953559004399873990297140964510610464576703989980263685976997805468300020272820866525981687833458435076322339125328310786169435621616286316199445682397412721399980649175207683349361610066956966144160712508720606528021814183319075742586562447962389988612557195507448879003616263964936570884966745822471079695206410451935337805859510693589030042543603306817508232167185325439631210139349680963467380869419939049139191832368610462919888297226440508039002842261120008218069526880923703568758546366767930729135651996699667066147435331425475967893266340725528723047485822565025747942957505070352546528621627296174824744394973454878729512053431559497920210674431215556592327012409806912379492601959826703485729548745181751972472691633522157992842684827004455546968465894513790934647428391536606007253254343724858365526699810319869041433155291467912408175789676184149156813787222910627364380244778522539747154657871134083676306657984305213490986173771667463859749158598736611276457020644852327166793295218192056605888373654150171338045980892015805319655812101555204729362536482429739628318926357194587982038463038258178927008497058795654173609078138271793892685125203501777600776202817826371444897222776735545510590115806611203977857389034423951960981548241152122864195002282060120897249427658659530716668357430075130583240722494038228840153592208490216204212388243714475141175887625136482266782505442826731538717049293782007927877090164384117626141812389070400289324161062160725435607063300461726907235664355050676299998999432370490805884566143205366696908193950888522803539381111528817344705942880721861767065712346866126568074114077405979938410607250637168974150810231825485365089738139160040127908066460165342413183041862874098812112783259003832555904813014674315493922036100083819469906300759906385032690945962387677650398882197579755423940556435043913816835090614041349654257918704921844502452686402105789908547824991432386210242837501324728854854071462271429100724248251704074618013146925605229756402335051609442830988528447452464771371587611844486446253947087751846002572544807301964571601802698478087383738541706796819911255759399264047382970859766051782812062493240497608595920972792373671968939169023546147274079985693856935542310274364345347513427974296186148030994116697807194243706106888911831382776746056588539010198026393260252727905192024104803877107526252481548360707284635764948942535820535432100556200573009077533119096811007143940654988537679435145828715235464531261663881909846055088987355634640365584115977202116095105198054450564700104710414211989622496697197144763971941630473169117587038705252830469002687948264030435196024796157032165229146078543879970018551336030307770835106602807079987322046981085126231851586782174311162880575958488503433293086046275289250912906379388871658304250885828711307688521580827877551060231372165969068391935027614185911404135300150204245118721042745558563155487628832513077807720384975005197237692255486672985215299821537805340870946428661445276244285209956013883753504935507915117949231055526646411096275338792740055377396392960118335949630965798787121864547051365704456525135622346137582104167625687809054670568118535650500191366876800107509704898036833382882580575732837132506806153107477246280577825029624099252307769816177634808144031932817912803634518537868046181749146470290558019539202812602240461285338850786008522524122117515759194434357098593903250358712540952223014852631988481230284323181828054274797451273111832562484175653266903798684456313336983581988264625404204237248603652466883922248194007356207123904329533679357136891296799529726041928029609575827442076953661633093954171675871585596854216949712684021812873205486208348874301127182257255828802720159747175298655707184581543641624737798496261575243778337681950708643961122838349935545597532651661678543881363720315294407720540173990498861349405998271791234565420482772614117156514767997245185745447383667835987332791758695358076253529993177254523847117465355599259944698072358870197905670996886748799275909059035544981588430291339967413560170040339054198814478358804168386506334355535361458795887975287822588819308684637898387727765515230230136059733706358441936640066055728585318891499622988148916060508529571887666829087715433100122049103989804110846007433919778808786266131205128095937901318977308425566097518359620291055196386877757093291934372418878471616664409245876948728141150094252345765202145468707760730962644019102175105464002833732639889784616402562277378634970484216556603294979671304125168931239392560156915789962040510494149516130526621828281220607661700810765193512946142346660380800950892715328340635612020337675157817996132287709576102817715477686043777081033999820202761039628050248633708680773866416105773818768436819819640741880282000907714850550884712158896543180872269876084619586957697519704471680307651494479856745815835321057921016911304615140268415424274457161567156182540925412827522535248009125278411789464748334949189255475127866826775122860025733821557064161939950556164085114936773906604303856182226861604680359212718633694717741684975190732112990466830824715008032130963344376524959941871795596619823962072792265562872547365918071692203103695980536229101591178571021954517383013719306650478145275466208024849275828598293064699385399976191838297230805077179144838108557388154975572195783323138360961035360214872819981197825110145280563179724298152077703943818231616597550457874181818290688264551507185632034626510903888306859090219821413384450728265323111460519108743930205618945219397120706585514206325104000822463050874900864663430081610562565966751478382608456585564945261885273900145134579925270840143319262224439026040518209914680826932861135529581014152085836158301342605824057011227480178845183387130538768519659102815535919192879855845840043879676128209945467665191515822795270987564461364274573237871354077828984088750081324750278000695958140951234961065357946012237844047415117798358338995616737675346645026686018348613782771644672241062014271433255342777928190275036485392018568371127994594520921212467446471691000206561151781313416419471818913237330461709161819639774466548276568676119560981984178489093668535355375507210392897051540113615258602862028010709058973546558256885007814619616449887411235857283580346306737191182961693872915543022497423767897190506090851137738620740573637924645737021972113213820881673442921922557203921456138651227095314050119895365567622965441379183281729972342407809449365887991162544673094670274536551459094594020441541354526733668604294600737622927700766386520827137346107202630503583682922081099601722936340476115176376121244502938697929319632474918147743064096463620479874983155890317335074814521330386463238571890247907658910752271349153511292313595979406703942091159542082842943684339655794595428043184280610855581500357287839659326202736889645136125451691422245437337883028824889139943378027068689208594821762211785995053876206523539355847415384619256702487065078181849479862435214279947646674830607255094198226274432564958945627324689254883711040810598569116243658812782549681278937336095219894691669761866592787302551235446202410736169341923390096791501950265622136898754182742669634970902933856634088380426054405554650773857985944153715071844625645347893626886921295569128202283013522105572967956432782146558866284884634085597879718487031725114755986205255704449716151077586383206487543216350592870685885832110705257940657336939075829669017671188036622926113637330021324105944013316209633714237198742647388954620024539064849122507137656963091703410198859597551350731428544983923706194446314564072385260473236164446199914500631436818320988195629615146623019013415303960764419427412179527035671586099635511422074986088518860024778802606539777362019720717045929336267499173565359080200843612976603970664227726310252160871230195601897590704393024574689409954250460297636211525504873005762213061040324679291624960960900926499990216956070596430916708976671376245281140859482354034385784050214762124410327345041174253128587002360456544973183033221757150436715661405456459165647931861273217788939806718120513006437634492267034017696089221089610892471046795610940548585577901743679801903381893811974075773850149429765067188511470877005291059434604527925714013832156980771622627700291399805660359713459154379333123121493398973226363633542427841206724669983097549299229363030568235253995620770623171002958520298767572848822340014599214344758927084873956478266708502789981822056645375428212466740497171336467916039392659201581179113058088763598398199972315149168516082495978463161075679676702770008154204685143144230970388400373324373001042520961643922312066582041127219046301046816484651061305618440457851970781370713458873075570163159790309565132677306789453405471175441757085896166150983060782734142192500087271451545137328391112566816011902358889637762397805736132641924325291093563703456806652519005783681404315199665566533712415701797237887307644773949591089656485102828045964217712623008802250053638503865045691876973421895203316735676186004445670043648194168945664588673998296534463675511312983904076126789009570140208112195262158034184433295893417151628853753224572076152753372399675248895911673637828081769960646958937736686802636147520113523032764812342033567666373139706207582246836735364484186232571364986226218506830962788691598980933937644484849852969247302418814332372867912347394669874960094333206002274880967848858936193881578023180017184511007539365151221881194944611447391845435460945344263117464352507227041796753172967905523314260613790268161566445940654387812627065375749986226217910463173299701749953580574550070324448356123239168550732174867458685484286065025028869937180863142658578861442939907222880146265717377848508942643627997131091558021565693302453087158898547457311976748233964832212732519791268938799053626405950137188841650880518318831431020034590789310034953073696166233250372228325791401684112200184864676236905227343526693865276962704511271431165983652569099474541753918671986489189983238368762878908540338636201480574604688905094233626426376866027673853632107310814953979485878361648754249851477224572837455206412430653477236699346394330488655058739216397620388050769362101996034573586863988411634562000447657708399105150897126672734306088597864748162115333996322820524280594015429219431293572074565174563446387190649887298384319622014234998351970935623422559046002431285454337175097165473143752838989816570314461127016432685525480519037499158482618789723517845325176879999298490812178575310848722204463880277524083526048325000196240408399639330359156593438174214033660051699392921416648202159343298325026583594442827735154304764968544516924791481479048404326019361977968555645551641439093754004307507364188969737443815996340315930747181060035736707571526049780968750763743728250244492980589850271512841501367779583244885674807393000727985968273110336915533692671669808136122973060559238000128112221499034146377736027044522657577280342200691071058138276888716950811116306300910662863444226144229887334501083479606717614275114402842996458510930934801742729547249095917687812722905469539876816228249051898535443726081592200049089617689806574580328747339426610280817638378333251073821069482714832369169718316624191150390538184418267322683599546627766934385601959287018921782969896087388828899552041914699583571576391854741709029394762259595415822152697370965826333476276807011128243831404083755261447202723629123897979200293323843381481442051739703686616980178255847831095636070349775824219030701882265407871541956188229942562449084881803375643044565589175869221491647336091190593258383214465998521760600782422636636939611243757548307971443233639522778965679701132730797697012466032540133000749157169461678197279549015694836268169790802037294575307540146358094648846157903177541625242055590036330806610753867172212211385269614620643462759231568737660805399054078573292620480811931430299132370016484727259363905221078325382000352635497316930978285840999155869549295111009344587479303324895707989003975765762590053440999093860689186653945192732498850074597142759737430861299620657787756388997979886759466161982939206572421791666511762077061540275424776562533177377891039723813658446605032954920079489017335281812997529523254269478398219437102305883026318461513033394755323200449821558840396125712542161279392673832919546537940523793768060934914821545384283591435179177271064217630233532189410350174492230580446086761556668000056230599750451034360222047080232512522044010102057792686592616456523401157170731484060610242586745154640282581511628888779329518128887924222459895528462301275936167980463318304638462038041318787272554129970110884276239683022819640530544912859794705178240517326597040844454314036161658297782594169032938329686216715103216920307750504891497513781863042637504412800454481996160710728410642313820268597241248368917906516236375614043739701503937592966871850580511016694472909454560196482260582958775441802383562858604642872920103196075497841180527950996705037971632318660041476562332935490219238404906898189172992357928262996826418971290877835354796424873366074778339361389900283987132170974327674129290028687918632198606770544854901901210158407105345629021558495681711384340279148234968685232934808498640636766142300626125286310158417296196255303500682329247485659792128242389305115589608411088855610677466110155055623337698491276838956831078968230526939248628303362158137553175571310616668450243700694475873194738613017107169279257984029777719072070276819169775874257240251359390410827798205402547217748353269629308076939901603546976401529005887752101493271752846269019097012190666020036581467560686010181919284642546734682962419235202461377963260275947697995728299447641392892547350695939824066712110818893288119063013454623162138147728943209073473335772642290238007451577622778498483483249873791650179617713967647722101152047108535496838950109512595364515997091194362413345468780062478807208922830622367266276766784341862311553568355256873780176499983201935908309409137183124980458111777070424202554756428177209562038262880502765439032210117485715651196017271991487403114713230974825829039270055566250824735406406086120919361539238495520255757280297414537517038732343909563384079124102034990679733356505500526529050940127759568282762783233157036303223697304909269262022641722793241120358731149894960084267162938934230176809384578464547761095251510408114726265934804689796961058406890688345209284725751875051253183823505266721869668343828139249342429313594245680550736255863947881461813734227637963450318382876743897974677693334603774320427387644192394146120333741507533022718386514043400579722949291528166401200353278851532043830236038900520732779742514843247407266151457260934235916405381965429051503233660253443458301505419027374622078927626289953675671280519209868825578563467227239335919902223653846222650273963075457100299352007880334069647437688119167693604547643294600389417428623832549585254327313787422751085535939736013555397912450164276543139288149574246006887156849690062662130479887688732714463475709717338926092869605118351389170190196357589124641132718622294070515461181174905445698114918602192109864828803603698452327022608280946657225318168306534898065626197486849383966656654898408559911764614906191148636393232048652550941663575760894053336726150962533240423523782049074099645678395941996828735235321990167360251222648614262572931483894744414629179770587530074625381924632957197821182140144228893762559080098145960960211054657151149498922806578384074699475085010875736979940939613696710775434763066287624238644345551286979012238390368095943709256931970350681381943753320940535354967211613029639752954808226360063402310824212512217524532004151497720179093795637402373288179665904640471955087806618722441052490424745710578664736886902159000441538424916194350963935251583490976130346479598540830792111377700413177697663615819801368440804818023496486201182541302080392935660075457446644251296412928406508015138364374240461565300443087144846967500431536736663760253465792647332432935226273559022650550735086487179657002209670342975951110190446832981866702701313320443814743141305590382190322740562668324243427530952599612094373784729689192473508925071411620592012820581075142363176100549005818729443351665506089543738969053303067038108078925616526188937646711458750529597192801579658653600778071011504035545180242992073387658619179183790112806959295630739301864836147854940244622406939123819906694267652491612027863634214555225475439793898621050472265131330021462865041070510041829806419904728539541007940156552386927459007768617254815534651235802987911271761600070146105231943050160314857032393414286424361427406710226877763988649950965518903921498162603873270889736859822408448331721929446848330928359921894019081384479592237972580647665887682197733372769826807015586194746581442544281736159141068989599134556689432543387907242917738771330336183759624500441420547455885064810418166604260405586440691920973943991852012076322894224550282094724179975311482139286048484717657132564159141663427093906493283731999222717876038890431428992651143031461140012642312135363837476132890901398683861312433798959442421015041373330632455838194935083712791799150456139699343016021175677385840281153072171875238684784672264829173301405534232492472554411603826140148605122407368221398622395891490289275341095514759837365615734913217505316696790978850112062609475688545826145470483234228277009881731644609154576883315417211758677911213654631563325981954864774286596724085540580824053408273755316399407919983938167846422486129792675031604957808019394150168795718396578501155254433795159766829819007153967497732554482052108897615663621311942644034753340299780232753315123732995926839872743855651549387549384017623351006698298563467500870550899901950045333557654279261677024716655141672573308380530710348555241181614630938337315851781614170522958408540529080471643848314608480121127735891646271493137677073602465822426767536733131604430978431667372492976800194310026105948123069569044859041707180672065574038438123065388954967361891939842974696508243285375174981157649751332070416577883873494969825606617310547474127746405431340483350384893185246767887138879722885252808504288449770229835270152483402752341659700954978116802285973916223502316116385790635713008410616588374231870966244815138652543629868241414045262396776022114147832562155526132437273611282275640096534050695216067428691283561416685586467159093837832079315698113055683035309648180263425174636518424293203200846918523279847269683021331642023756182430591833894411583414621712518143818111256392187437379765617355062123368012234737310167011413868082586245247903217478838639446958997287816073562315970433920877554728467324708059888555014122516078631161100238919866973711927621915453931760023901212786187080250940083943784341040730588748231890086128230691582133442898967301198116715150077832561339599768357126347614872284906146909291940554638780556053048237264462248938591922636551367345056490634702323740245773564914731999220876886509411881549503832352690849363404581392734750272183290607658817480999982741438575275045354436338209618598072904994204496826963385264925578393497237029766408380664593819207109882022888052006853541265727866465527020851076723477327571708117097033517232744340534299389405623518616388046608651231332913048745113881243586539481694622620333495844716509045230499547572285495403091084147076900244958517241175620934837093544729706432106470087586861146208658931019327128730877578270987373303806441538981287546170800502417860416543397365601076869396708121582216616421789288272643844353106621285141708842677533660608712649712601700748795217692814244345277895419397539795573699037210133789694213376247801036963766257236749741288802633806813399364152555483459998223134006358850125110845052261465016284037526171858972792258270701229757402761145548271799393704450898415861175065199913493465351870821037344976522687566392437476877189187312162586745115974101696765491008345835305191270750848460746349450800829719921238614910824409234867873480320311621527405378607190047197295858160508463669431636924186889510881305836045438707842449265806128891025510637164272221239503744415593828880318654748582682461096618023788950174206496308016204553339399258260480701261777004903621944187921204489598748220342413220334808163051456653428604232844328795792080666399998930243432809971683256144995344106931780187238410674358593241282935540062981149216513665467441071731546918419922278296427926537642972486812687326939983276795386589224710230387683556520144763874623986457101581278247621043335476267569314970498402766231883002132444108987767862955571415386677637761991273075707171763158335218307308127846052550714440055692393939697362996510912959837403800680098738117651253756030308794719395983009463384948177314202294224039814462747409392941144519522537046341798253221462859604027504603968807618908775716656532685259950021264272564885769201547169628698919588417146064033741756652712767072922420182928929912163308394759133165462484424978623232697930858163109005086524372086943422411701952266174371533213243548588831500258859837317302641912728374901304489646768260887328108678766023818389960965766940452695685299184203614983763104203317591785369769274649945523149814985744622868058183961293788405526746177710982044866598275923585102850831456998562477659951877070257561039504022435042974425413851561340032117544058821918325168635786813846179220279915746344748416628801541533258802418489083535697757505446901162644435501866489527004122802803716894884191272151260213923140048535675226145976290428419884467604406093854909198766769616542197598083864528979071462445709737967130945384980551397681353679712796003693290926313417757732243171738879649302036598565079101976169872230269326253133886451940414459740120500568768041154624883591614136467894050530146767495557508420720837382701944779946979893194583965783189529591087090973458576041235707939824140998317251102603323031004317752664726374468356378235389252046854877057264531913592950617826072094609572359789217224743614297068761417231005162074571366234593770396634021535103608780252894447450949117698284713055975382417577144904283432536790142848185632905802320734850767751228409742610032639607981975096566282958975560676325631891779198845275163031278214903930113664465020276925574338756255569675414258658613891712030399258092402103986827860312223970000394888328022585651911092452140255373248863116089831792411972233784675072438593139696927808290046776409413984143000547742970822306602095529567301936268905681318094656229990638461795807929297112746518880027570344687935896428686978633894593456288508065676850064349340694902836097732798239218885605263628407532922434085608126680476655508178903366147865436544112169316378835896165951436669555941097102809193999138332922456501837230705421889813302457068748264899967364639629862051694397722813749670806227131165300381060145087507185414125349178092524567426454247118224683353833671154099908428956807815391076955622428848025668821163550206192175737720362469460511322176572465337503069699705993861114615851917420025549511133165358052304767527470264296905965665112681588993144527298758579478289911833567498794322699518363690101651228853097735319223857872438926481030557813482478590835074994426311550100243314285636327943343036712881831064867499381941901501028857891703425789351000652908737028528767515631384185558340229121727879480796820400804736052063360951046349545276362044306220652112189565425596651806987066813824718604613468217893448225146953254348190653988661034436936506265116627973046650427462572253848053788973486511381535928945701260554302499157131286419097548849082511325065399370077203189011085591982719049057284180028425027849754668840467862590682294263974431614604503866200483316168542123739630729787534846987007421260344910871754848696499277185231422954320779442311763285648712484385838995990538842722433489177666923912192279518202891978923636696789621329747384412847034671680311070179692640136123653137474975753518858449512950825456896870085780070364720862965162746575842613599026670283625282436068995935760413636408603470766713172634010434674530493599482907943719584034670487197756821739636117662266648856939216538540195155897984776831007333980998308687127904802185030118866688519877315492557157819811858956412512842753257888548834379051349129106768893496483463916514981780526715530322006023320996426466759553283283481878774985601357092846483671111606315696383751545635872881405664579815447949758331547384652314663967558060831007903864287288016121863355300382029027589075021899419013806285958363248899357135621935387089568790958728362138519812888332755153899463499660783727004144235243694992485007383915396674285355593238623182897901948134153691120699608344545656028513264426319925239196088594162881314787521510045177829039442627133070443413833729752884436234628319996333717075089951644668687276257668031019778621301404354432445801354290409815853873857920743457864134272130861260784683156693738925288825843823860947654383996505608522880355902451427349323986373520682291955204952023768525401163717415347317672195882341772910271104524292587511223119962542963895028788494549205901166360801120965555372196629658062181924589987423588128918260038979694226191375547829009547994344097693387588673966589271176668386913033970459285823993095051589033261406824442245067531218830695518088511257465788917883796251564780598733095567571816673824342803305579246428369080861554002904769069391321382514772562729375971082028164429414686369127356837017448826269882738288776038324555223333684992036207727939466950430130970266804558444241194663212220273737495905499215195913747792529560961878800304357370068577685128155581365529487108094592406351014197206435527387077199161147804615395757830007886173579154161533703209967988121139042116055044009771264463482150970437618248098960388038862042657007563293830906626239171943754758026684270997921698245021010685781262762216235264342790141305640133043998230973915057952911722525210312191964206232061022693826968689578060436406316354560529243743765851878388789332738600307649395677390717476103640723978427817426837544532321953185160894848547961710327881477144688236129673703959665247474568228249591936072569283663164188696357260043391326896910506542616947215155968750760770174344074336261953873914120204509963186529622156674916286125418418032805138662799309036257821461266786868121804000619256260254610006174668144017285693412839938811270229670087148544008823542120901473061614268643200730665521790299314954935651030591452938516737184169164654147554679118263286283889440976387666842627568560262525917042800294262260197697661654642487770725012337239745870532986443287679315403309024885111955892494659365603312111664159616939983268275686207773719954504212572171483650245611396221764570027860803633363194268826080991050963815211262408691849763619711476354123887097920707820375973497397074113039390695931548105341093176060378042166176221991518463161128913639151396059480100396541133910856969522094698817421077397226098328607543348636154498676704863008471927329768867566270625115269543876378034925471480558141690140607751636386574235587289428864538362455493111086534909514033451477123446263044760385827079363588895118855685128383135376291281736625244005313731744599071563633570901683120710362536378849375522701781500001500388997306597259346791757829507278254077774067433284614223381481303117643439367943808172872174218070720954670515601106607402458070511984419968897604438846564577672179989412712465857409648822311994335313203140863925455157532439169997360732900221637334156341518082528553045254398291537513693924787673089380463094310211772704865364197074042563939742129046982180858324165565640446659455933073790323615404115402126811341017808842851311336696978669449223461608669300401533474049320465931952531866864227096400635500737649340819221302205442764683284416217533918238113728603669918109746827828673238218136107852931073442267769612214107205656004852917279435259754725705654833745813162970417034711883997087542980023409093917445315857122615371821243733994316742130585606436464706559147551234536862380260744111394669474395466877630522819650630479545381512449828979122518389591099502441423713318500575494029322918255897178507498272878147637180504080082255158052070245961733499448882641245928972957798251839594414956643142890728014113979920943271764730507804927817498925311688372568907478190307784446206954408656900832764993622444705827477046281255076352024908117201760280581225452743981543163160525644718403976239426660799994410689477280763386658483046506501879847876175087425939758015345173381090555234066535698726062532862856788389037528293870504356766607681082054089652591018417282351523792462596283810877114266516232068614770342287232669210636911702288155963245711556635765957233131295071504696030001052160473040107120297551228118200943734531741786942900530148409021354156719609344401183341914737226379013728117220897734582217979437080900464708789778220699821250867468401758487830847384699312624341854973637871531533589936528284331816738549437955999073967997697957803011679090847920798067398818161553894889379474776468685881482013347466530484626453976854039957913303993813622166759017043746541646999440315734277909319888186360628663819048525880306646038192744153874563066123076594639155258951184698504559027912637917191039127290776807493159135070485240787568005682177400897232542214550419780213266597418702949001033951487635299939308787045876222062032485072364793214149562420553712749485251294955382112809926127506844721835699802498788337688444792713185941752303975479551802157144440618132716323901845866193067825880029532747276847398635680774190135422009838102404056794708780223216814823513167399928270921851696873380982741777572959107535356515707253099789943845874276961128799852108313620507861412384928999875536148781805470145625159622321580682552187663535039332438711897337032192215679135173788738648375896389636640401318932059401260561286304419295641609040251149419338471326269539857997610587390622661557924814652150999268806657584836040385130805494490357144028863476580502661481772338862458495416186602812543447271557671340507266388635811283199450828173724293576262886843916635657957713888873972968915905658971600290206954532512623835661763310690267840865146183566804904424435454891094179721958006800208032822691307773334162092258567186804812761432273355345404980058034410786903479136042044260440879329779518412358675554822019758328361664598628853049783768757083814929899138777272806950215092321132884467742327393763866726087438558204364985525187573649008897001992794683800353891275345721311156041352025018861531015373535457239943125155250939582932553497652110161210288358297597145591822334498687045485073140273482156464886236401239630824250526069165276710041058669136685811294848879137021886139633448813223875136470359854062751894212794446713125881801004681239988294036467090965798322887445913885627272517594185369305368285418428954749511079621118149051700355622514945288247603775479256030062380514547192205369022137215943718472361769649320386199649472088785574928928517048928447095244059529948966970790219575193166052745121163678946264397079838139977298849126835846164254454812706557699409682747187500094988428832771770385776687830717654601181292392494028051880891090216132047015814767761353531383993195197096150525212406526137303779148588624270558708253602591773598145815745453545021842015929083757616501158921077876187790519200222085581229926847610686488754609681750018901236562587575879813780399867030950766911083537331185913928755382072529921093844173544173964671466812341743533035313993503572922289146845158907942724232279172211099345801278508569635532872448451860470051790783235503235003102147226474374501770247930882023343306547658394745113360754753752409694955529767443198793886466022918580493405636242512584990786085936428895881650729003919249962432586734983851610953230420709076773826581224450804531166535750310528321805933498256302372533822614234460226112477284386911126807300268845979506937354936094396797820037228784675963704238561883602609404710572528178139525499306205170959889393593089594651382907175964905271328825619106489241372893893438219853340737035144173529147498710494753535483680016671945039951174149975790078493214418468521720704828143026709977044319746098678753104401992073508637208462284004518820078632872241769548718285594854412569308727429278837517722570742830812774623087438069815781477100696808778289866859663864130853666429554600390135219324820884330751244633432024191596204393739936068092697630670616262264415065884145115697073471444191451539703261488083705029980241485411472922047935758172503403139986881530610440389847982737956254504322502891958785867901536362209987808846064601283752979082176238531498663801614036887225778956709226072184438915035788780205148238639182566831841335568261869911038226153098929269329617408022547955152034029473773995499168418479098063873276100429518974834825419294038388203381556819855903915992382855436131882922017928492555944752325147332481058168872564242361705286135707375893616840876407964411727834409055090274539564501190606845635837290191842887563025942470975289432590862205197965507319548534782829203975971144061843726507325721317022498193231780471559309964889698060855058978952562293598482060940612950221046836023084173663380390882119617311743739559766415839712331392657781937235844293416112451617389512200471984601798631881181551655445636101204829714354236197405027384786515565440895193186622344232024973459727359767221959262739244449604266691995665741587545963644460806195764634126037969887536717363186218664214182441306683429823211403211374420544376156949461067405688092762958874006658533493330689113371564319966743468003671341024192773835071632386099278826727694548878752015673124532632808430618586576135339108500751223332348977437328577056472657881601100358910727052343045968908210802696764761193620134451767148866485367265917812992876569724011843407306488483196471830059250951901459709814244477557269779232697426773677550764209471871569907036056954332079410244227171810568543161892464768632815018026393602193172058250259815624683031258711255753116254617202721858552738773250289935641039688540278872532956721889158115205362427943045492824646093143391732464134847915819122214516939261862231230153713376210053490253667005506882507290110979846778467839039718173794092774114051316061399306682600130159421845821662012020571623173962189704260267522188882552628380424537802461782512976414298110381587412462777444539678647183315899948071431560461216899216444673948350110833771360081417519682457631900296263949249480393775922011427601022243101410135780601825282981199842724077869847330382318853187539842321957758428103437305074239893905192292864576674727124502898985513778468244444080241700030592867024511739390504218726453635054761119884988541159681075358718177947835473972863244909675248105646471812798540255185003366787961242872499125102713894245145507419021659836193827993138514824683074658689922031617391231852412668386939406709441072937727132599626116104829817810924130190807186301644450922057870652785766873024606421991884855407181445966943304242589265372941817909637594884495048114117331301608653461808554047813256968445100312505960803319883740741577550543148605175238159229995045663590267874780380859183552308899150645620525177752450083715803620568896158549424418209777319136817492415598732675504138539421120313121407506529064928497707898028402091151033033323476624813355604029444816900146457097177269225101859932523557486507856998039128812792374095893460227870902937161803070340365462471384156157192468342770576308475658551562564926375729926091645429388369630060803339556134318541650688496735241934075736227518115138055264466446389858220917670017723529289120950124223121755327783940865279427205174716681530331602428927718392476793843628840853653053254811797497476492522917548519692485823136880299136647790097020543590230276663769556330520389182361069485140175611104388345476719732831818671423494376810393064227179122146558678929163677868523515579927154413845340255697992983027685311097073223592937805599556250556515625965835770943236933943429194718573320180000507368000459939819307257841902053201541886546823183679122467885484377497189580403495359658175850225267051116168434442189523396766885638864876069373282061213475967286971925247998519602166804720383541200355764898534072306832751009694487193290146425184225907492687683175494828980698473422700235977999266765861951347655609586571838703505072148009153542843789427654104925967908300570019745833323285182294759060973753433607950179550990041814950969743884808834411975012013625507838227915379630302952408399891249717451988361615728014848237171329549105692573622927587070707045399152907906363636590277433052383368109396726752598196051735997076742449436909453594271453171508373003470825610363458181564617593161936821044333883418131729567016030827942889476211234639680677851535380153406081027730108408135642505862093702890214852689341724973453632790283493171649221835965451194517969129941186323792244490641442504826991830875590799437563751419648214067178252051382913335992273275598961671324805483779443702809696870182153840187584437277158333002100440574225896897179078864294476809142744518084541266694156430440226689164045540930557038840234234383499912071986474587133949999752357390987616177610318926076125887696716519469740261392268400404265944024327391706063488682771425332666066336363338546383695017325265584608024923287021740972940203973252798888582284899631462572868896373638184737822234823537382017354555500173479115591733502421057423575907559736006559162289551977352072877379799841479474863899455940557135252767266788660581969176945555655039485024750170397894220388030403631565891572025874988521477033379543822423424295296666214352636850079769571929058578707740732478326790944724735836675252942723946482117680282338542502107759901466570339624912617301212979289763844899424240313304260967732868702676790995871777252995073653789727581751953362343764521622161801864925072497827676002303968379702919563661235702534876471080248597782020944129839764962774737033044070879712157961064418662454329625310080909922601239528615280271654818896496753972681495438644563962001001364550687719277184437449229120908023293121326979553777052541575061383738868979407367653560073514163301780817686027283133625243977363761470591042110430938476062014011668228144853698798398139914708937534257063490333724882374844974465893948939227718944603883994821552059982000044632022991305694962455237643397163806188199149862363549111862009712252652903036136350485302484041151100754941786382703852877132956884543781611997591015160268457009925904587937075044236053588294178489719999307480792515472919778944958994121534140599804506862321804989953173445654007970073658846404294115743779472274778527299950520725268349006770877093113855623772810288149232002119707172342456530415178565551417142185598712049120315814118436662870385311346710679964601082456243425056812650103290375983367537040291120841709428548512664894335620149497238344280506932562379353452745176146676275848614279309387769586960805058215749450761552971130245797983389890125804973424610207102184052502558722136588601005549254413697670204682355865547581400308858703724766631279143874586222946390758224763728811371788451443686934690193410773652259246849917761807526382354126759331248762147797212880147332165047378026448211963371539539898746750001683795227299053447606787374077700297936384803031453254302890517223113541885909536642977538503188810009988332547517412383322906334469393061825989875153008894371724332147055267336873924798013643912761113184714292728902624009585967601847608846064414129819737603385797536118288313891315212682321570601437649661420668489296280690365871877508083926795423628299661668232850117864840779591155926478209678529136368180651745996354005270986172535234804426528838956053120386224936482932542251793661229671554591485463474510764833961093171988131772615870319275986776971674435452303822511667487785948010149104991521001428501069019733707789929933070847790870017753078824349930333775942248948604852600735768292723109221680343379837804797482332089430322708711699271379572708614343286990013482897085952295419062324600967664862427791500410276014164836958507815946534242148722036778279533259745330262795292652715493311083975503513521915710869027361384133491991768009424449192416229366531297115054584436092364750014264956239914731365316049169055674772268303887718637529495644175914590734232467228240196035854052171722903270193627473387498956328124780444795331410072552271512471430174260375864950263642584618150707694646771559886117355940312049075442183028618324067544250466161906522276427069806006081882475572989314277014956274336982415395023652029877228926222333408731833240273840313698806823860782667324355319911064914733486548912994922752411000923078019858695328206120740204067075585652204039840415941854954876732743201645623177986691718233101646094548525066211171253533253912217804925114611626804665996223185951833463972478821215782072914279281030135295895752655279888864283336657755595856576140790605129818113449262341270423490888163014922995893764994282504740468005514066672632226122303323900523738223490587401531413766987015388471235592695628820784374449316345431434394151637571249630886521892351316914889858816656108267803046592307961697288439858544772912469414081054150509204001707344143093874141896766998808507148856417611023915463162268540859273985362035657033374694348262546611978260885198329966815024158262959808277991388106112633753392271232599049432834437634381966952566026657538573193450989558258730557768802731879192066608162456826845200248035886702744696500620583315403414772089763186058240793688958586244006490198578911507197826607001561490123517271366219131059452485892617008727085940207446497767144740549335408227140015465073117893725666723904675200660197530841984445694196498965282360217676817135298980611823768821227125716155523458630433828105698076853896804469165940599773253802863769357560969834756402079578972603729204469887771245867960564224424867135627638259039021926787416474991609236009886657054976085306031086615966322404441988635489011855417241917117849452250506121249125882011617413210385895844916083667663905159949128408985890064911629777512155019915584505949262609925603075757603558307626728662547158906174390187749690222748038012559136315404788999831199259930686701100013099129884688154295215166423426940675530583956402425579705852389038853415129481121276470663029650251135089176999145038261714359636998846061758811374281238927612306237189401205301118611629085498852648582723997439608342476335849202400409550913945930325497205499443401906684031251918322449307226933273708113158709459464809654753649193983621258553476223746401976179907032566096797553582506294376667890104521168086306119827561806428483464053449552690563201737398962474894126592686989782213190618279272848604296914156819485896516388947257584831416293872431906788127845626717347515193838095969552493554919796361532874345239320030630225805055022089035748364696430132733042002790024235649173451231489420211311394139532755212471604432407354325994463134610558781062560472679570663240758827738420900181138858044452701091113943020153726248294703783698624460596011412831576557320529822026730641258728617912489403171744404968306111958420648174669784405532935933980983098154698444919018233568594290549696356179636419010603506645284045833823766163570506252451779952160282195735150612244550428308911480079565782689601069610869938888692886001560433843853086885688179794726791254394928197356310103113135259564949805375391198190525078310259070110509143258145164648134344200829229590884469478849145999972848995631863678451966758696681392688859967191288428869082346709670401556826910401275001367325042045175111691861373998327148577835743759804168149467805293299440362954826767835696169205674647245128590940811187801635059836690439858849389505669322003539485126012838723722135740321451570009218153685821057161553286138945575698918775099689768658439428745354143444244125238091136966207199552645220222686948206620542883047017380243282841738279048983927732052533462001068271041301415696129891205401676162362400770466895481796003590820262851906550249785848274811962387158842531069699913963096654247744068027860852142856572952121271758673145488047880025984757400500559413059329923841105358299498555353463927370300440623853523312297970809247657803432393764211329680443553944340225241126528250671803922193135899789317605547485587011905745010004690637362933194484157584050044322926787403751277228023693284733713108422496844816546344021826874497720059727564108635982737106756081758123909630816410152053779201713057096706350569301273262702635977424252799525345814059889120508428925085843224254713027190797871023404866132563546148816872293351708172205560368986371868616621211840447173701624732334561481239735779849927241005744911943376488628339479320776346432433913415674038066531121369019509850706633912228462318519704992758465812637461839537848068966203753347962162624881621647347021940854704400570624210492505415803452091840824269432071347503454502476567413785235598412556190016183950646966170350192786318904072315725359605503660525396439508694460921248782603720862776132230602057881006550717892782966905919928253204157378384621542760580469658852028490191930747815732751104036685768363167360292734972241492150686004325299529954162713696840188385787230408664646202949541849142477744922259471002117363123428768235261040970905423263916499681436585819473174758604249033091752323453649314147147895876556082070135006588566567785187724617068942575206472680324175572224127195726482503689042720210720713185022227888101465140808191991074607763034499494643910445153244307517023579500971841608311218068932755933574566739778535732913674014623356910180261339637610473090990763148642689347177398400260145270171901230799535985417090407984879906595405669211443499040782951218246550501654248560412935634154977227824599310728058132315639640635775355880298966289672922774022182034407020864144732724757617379324337508087118562983406446619630788677720334260963411299526271188367891356413014466384615463737311387784415866423555887574211695649575190467318809223533212504320216530792772868392740442386480423982129743053438199377853890652426938917738208280664643739710617871286131908709976241358287408032075033186981625590019017273722160428318028479275392042311291977667212239579442292571320086339357962793372618059427037654098094059149273992381637430536749585380783801174584302276776223662328548526745788055566731879733695068236684953409412722354319330600222697557807938115956013934840108550515765217040003028613192981917387726287549243000002004450655253887537522793164151564360720055779715274365565613643161120998708193830843248533682567364082176606417338255834675147460934087584848292923936324676779992482261045969781818193297950123187700470734840806140373007880211950924243210962267964184168022397156923392945701993301919664708477822629148627905072403283839933088063793091691075387708020537621853303497236722686126965050214831461422648343648541658866042960059319712151946041821039577708120989491440671797734875982987521391715611913185909047303051978888937429567340781693882396312580587628920282932791443865372969650960797119943958013260170377807802575073038659211238957199221588174901144596282705104388231453788076164299135939462861542867057116304516382318928454739661894873469145470598548380524750661675904696883907624684885925419745578204540495246368753290068973879480800151780944103578974948567349711711506776950887963923628805753668915585395619278200726912007065983417198886831457735066364809588616269704291514446973340369587516117198095365352934338151377147097253891654012951471460391345816893816111556929274983809595512968347720069540286269195127617414338064487166440925997778810168420915109009728575308477806536612402157110828535641178773356589641878384707140455771177614248418496728844827650165465261831669426421751869561467522727752607094846210569862753308805506991331592829719081967266146432982860072586703844921676609978469938956658749519072048883321818047519088417626509397145758497470379298323914775555096504751850100814633830745509088228660015915868458887823405290733465329580043356445488724175772657939660511748910361404336483151528893746306734697015284080700252208011926333040220809213455520096964821364337167905322690907441137379168911672109343577096575618947619001346459450794453902917245810207161452300866368928171300676599755612128072123318526700306118654760490421840386353843963107929782663538154957237519111202339479741015399413496959219439352435909610014193037747477587660764615982507845061189095852039233963651415035618401282001974161913367128723094200656537980916295318754533779325152125647533244713418949286803740131818282830407626012323301934755248698889152091200882223779148083371663167139938462655862340262813111814753165260878570125941658383341672744984468602840301996368264163762915005044490197228269408854550306733681875063777288703206428947078430684524119883877641425171804148775473720491765489874318241408806650325706494703765691162912751388396387056324266539634842287823557901095641225529938109399324302153453713094579385466092858940375003351307619342559585251511095272944307355646118165337463346058964528962221523838743447129416500069249069805543696449154385248333966103107680231361581059920542733534962252431658202192809997428103269449223925253010183240752535582495603313787342884124682559772060014861011353043955633636821895018698687497098005876011631152421473955719456877358603010375105067542055771026237539634265472974799319868324096880631920839501884497142911326013725098529441397028966849711616462403242516555171543525800488848286085178649100780329245917849323407792594593033597907343171275363642128772967401393217044909596858113578423568004083893004562765766235952973773350443058886893122668191481585565666895105867526544006805098875406809912859865873892748128835264924123942272133040666191130928273932792243063268573479385309299103713243026895123561544602061091776976784651584147369150407570215421315845418636843997335347093917989152071334578764137693094421814536124419400786915589839317302474823154905001754305499118191409341818939758654289050476158669119949581071331714282195336004575690716693504939479756477901869534624319798573675392237550660470594091060865935908393321189921627568912863927995442973630363545855715285307862317500043042962743518020934498608866426077807572209513481803312062534416792785636448603213179107928819103214378147062615668265537822531362161815307163586642006461255788507936258705967842214836606597539111634156118016628363971250821656775665940932956947785504707850176176076377901947163580051097298432535298812177830347600785106312144083939380347193123479813103952747511427596985480186328493238351846639825061262456929493259112686822074595353405361109958970433254287677434429904670340985721963451450971498286160017061857228812860929779209934677158991690628967702003232373411248519760856246327887958903952854021046491871203856381638571853149649958722878996988463783684535502056178008212391071488141316962279489740944469515955830371797826679145122381317311166988083748940114878597595272051365229170070103803074050841075464616635299169633869514239637993673595564702307282118187711869299522305645014751610713813315872779081020520208821332130208704199777494959691501362627109790722366154186166263979858232463502073394476353382096281010135205425422097078234158878145933783952886839301781609744979732144729033980752792986635036180574702581251042336365004372863371751016265412756949153692218013269678817688826742647764701777988220403397457978605551301580454279182516885260088790401590822112444161172167373721219710588167000250356214396064330076975566494450695201226541687663588841630551015694930653651854745694231950834647335082132994808956081127915132533458627097724756475270164734702565638778436553324966090478288902033521690828293917839928013048364892900714121334489152059534070462924335238040462243147593846724876211946063785934282171615324262962205352879082216412525497245734786314456822552762173323602841312679040106830819250612335418407110345183571475038465952469323710821308971047462915348996014482695202784949347939660091155394132382633570996997874786134445017090184102478175913527802905495587507643869636625913880239965151543706773361777927132877137777587545474034546623316182359295500587952342650890879372007473677631811683300262489282919243769884783861376564041021575520305720086334391199552260182216625404626439486170587278330750272216124945671303433620923107003633664223598109968390714831817287621078511682163720100925731689685330555602945315850379996312280698867932521885041737621490544450841329890897200175684663606478859713574227810227273911956084995806585288649542549865467835154180961728947004701549341297085892300315358431712472100701499932772713298016961570238885145959942881500454444838955222591318124609647246826114794587679476316771007287898955276012828531891205854550333206961775981230238588723137855800977507289630519104957868142219229535924505105626751083186368695676498289790426549763389575211983480841931101106261880905820191554502332090469361728100210672254170098171681837569638649560580095433379151517109533181844847827490027376039280598342746883789364007289040814186335862003696123755962864733748687729460021296461711668029343790941150556499785460342877978194234606368603410045755664576424326940693926448989740346079020759096840063319923971886486083532201573993492483366747407715222306338395664207468334004101323400754699125128211814203909529858476079008112752116388451180006247867075404782564649254177352359380632371252673790667636083139033424908962335213750916838994458510296424956166238622930306209656595121647882737166944202075309344813895634896042698702339192106613376830588183345037912570048123307766097084340398747967361505328835532138983125968875385553198752175109019286048467318975684427988537140088894544744853895492685135560958387912593328393017901657767994785008694990063908549296282004054736793247020575206983588764489581520047209390787288253651103251776808006823953138233256420332808834792726663102026902424832144145063364392675663952564880714563875545978230149690951528626250583625679826903214682065467290432875536544786902694080485188010087606593898043718012109106968695118239690045871872085850120795837342976594195811990299127286470216569690858588762781615166538067898692874219832941284858631047738709047518505587541026525892535416299958116543830462017959526248044348774197501171808774608720337825764689629416921400117424995289305158913129727890478414745577528715017051597137898071469762177993770169171350548943387085438307112426628490795014656372295578206888375079793385344190969625092328907651318094454270639814672232048643268605893920712532785790497735778235229550559676125094746831886212154862481839381978462449098142641120796809373283398274267931041457041077973673241947411222737920437894321084800486834326928787680331704904657852415949570326728707037117886791565931707997052435001507379591716456402358803323631823834129802500031034482316310934853354122091246810145579567288478058163764234679162375828079720615211937314002797334680737788936243752409557862600408082379168548009669834560109434491758050533331250753248849026527049705971655817706052331099473137849070381222610169079861676719345765676631012623569039871252290698014795965990675190252386900519812539513555942420018513538267302041811382232859134256833018927790562565397548297167018686576735474024110564836950669718331650070050212474031416166362593523729867249652169903166431070980224568384567424998232049982855562542663405935952437086093310917060759068377677169763876193661271129184581070750880397173699167950299763523008998150582254023210767946250192360155346433158125081944965363906721224396748836407631669547062675788389788825352116192909028192334466145675388193009467761810294731227430530978991364646922980088651692797685858578187648074016627123232197767016217560221295674474556829725633242203080756250885646938494838594088373224600390500157399424976931591221150795297676683507720793377622756134411110625915112425848160196408379125944376346726294784447042471074463693068158757390797815030715937877345864705455708283597060191485029601638610515806160857333071979202107035352700178260377564567815298862334814656611467672592802880885422775252036948669777476141346117922968409518369158081251764338363391760621854514766055004753343663567045510112277464652092468793966424936332649017188882561148247469033162787554980473070316583207133568208773508698253688398234810930202541623062500836632710899512385828548726050876731657177119100803484595091730351840104919052939850016048715863907920583070778991432803302674539230836642809048809564109670756708903264774355068935274129999841318708807970809907711936329072032968607140237742357816858388580587866623821095078355664118528356791551852203822351029408629170497893645665837701991822955104347400548628599346399228165234420838861432465772475354812750806617491016508431754414509529086224902600483679768986306666490184575568875037420446576743655069710654631844906289435033290429341586111943440639174071833901665855233244607217966593457897220491709066396860337644026374841375170534094300605163948432265738238493644396556699547473856648261910872225020215620205556598736695764438246447824733013981741581529382042895932579311996965944501682398769704529293287152189572528996368717848660220055680622153327846091690634348409432292304487866843233943594893775260601373774368475368840539512175920721406094373105386155226161303605218044125328857332119334643393211754212095898779912739348453391262707771447126324810707233013025236197986967868685453206747468121231871920642277538180571128082908158783749666530690673733911225330848609948530540021378743624582072051628933579277230530471006310210574978987901451691072670395403163065588256410000569775635437700196692712826986020967795467820212512534758870698096322826888566892824153071983010796085968531938911615831976929674825170979367600466709811286589819395029718796651305138565232690829029084846735733627067641842344784285015735030395776090413838974251649957506675719219395473574552589361605331808637053308296755146659700654667204712366828376005863888033784535135464386512892783561094190145496494520061062347292106352375305902501628258012934301682986004555171486007829752136834294731119593103233201059479675529247320675564114581959465479236195015658426425681551179398118622893857836490171902036845682497804092225116882310442717095939437796006982935608079852812974577389926128056162500499664487080676020331203509853192726687065035009366398580921053033671189428213332302274206688428477163536829544926937434888921766200879492370514232026281927132649513806560991193640633048500863853396211142660690351133395284226931627515560017017802864050821405886336776039148158889187244563908926411844838128735139557853730949729079838972865493734099778201951671838593118892336593165775431250818535491302442796025116760912681885537052930825287214597317062444132126979420704052447997848635581898038801947569711440882116944576335209727173778946994399709218827000529049200503494233973674204521806869357787798055809654434998229288727625635617295594914743375634305566429565933163771099857852747393424954450777480489190861435621594505276152079883584332251063188107881457203159835015212133849645756443169002305625417689258138333300350180144940506089346820606617213135171609710046982713547647283128089499762177340776451006258488988878758638197446144570775709152441721131581930148453226378696009304738491133544209308769221688514669845320954182246534358868820083929982767156173990061360733453800472489799438718179822147055354526662781529004282393682788303985055111459637424838536542489894190952467979287112109600429652153600615922849135787136148574030954980507297165433981015044809275296026978722418958183882915268610140627232974414385904396930008420018047275803057383088986002231212172296796061804375390444710189357451550370290425993300199025480665465146388105816270268753934402236277323012382241865213975302273922514246145633948731089239798122923959754923317012031780520985670359273885235772137582158151735913809209555409269223745907922622206644244980664156360604082746318230703577997934734367917191632817626880614623172635861509949999893982542254597866718482342690360724448001573055988195551934201139972110806951879673568879873032588666282066233340566373099898410584506135404596813217671263892716312605493731127580286422169384061182231490458393430163620297200005804772094881655933434114979091690841022841033354653202515275648079151256665474675313784210842547745122696366406482460471795360171681411088411045520692017781113290999283872631431596777506251986443970418449102402977887306067593318575685240227205151447588462432722861150548001019076353649595186805757144358425323725703184378613017097177766493220546642765929331320899176514563172831448565047906302898841153943415854223985852677676690727693279253390833026966143296138347981391994464488702718429643754842634223076845547941974868370089191076166075063002189060198542059730124180591513834232252476875185322433542674471167629191399628998764057170004995232425700747101703323530373855575265374764679017668220228601275131445141921263103578868822338909425403512200078017604757655437024052355070763210838774449903887637193804687528716343177212337833336261339437524064806749780982400738622855900385268192148509815444795888365594893805437832976896566445524187861138111522011505680839600756702335539695083116255951914871895542277975641817807528734706857826265518909742191136422697635065043821513112116024858331408475841975543206208215780951335778901757747998800769021375979616278085165406879530113709315383711461595956103825291114810408579654167975372618395321404764150918816136666510338218760040607359489323210749375425659478361107938246511321587134803986896138740029996625552389610425100116972030622087299543596581828222363888017513963364037847339216795252172223781594601968283052536591083071477776423913024340132933615604609823831201145959364167805448242275216254606811823132698478566196280155720261829943494904859687538240675730776463602257742189594630697284054248872966348639115535949623082970483582799684845460585980506449251180026679924643025181206904034927660323217858028393817661225839491410446369583223021539748876375388296109891662609115642519906513972423412389408940460071836476449095030681824762956260223016716476367746119966764594792095582792788007469287178688254252720461043230801590652174822530343432352352654263328048198347888819494420309973340388874359206209803327280613830670732717445366272628933726392149144607497429252939418088636531757560934337726241158584422924175430629296992916429840180339396360001207506034023876297313105937448183781771858939121093942404412661654989869963794910587965252849873237388536078326946658828518023419125991312778791524402681502891611818675428897490361658037458425314079992389837444775272476289210241932548154411187927967034448052976390834126903568313115689510150479002918047530746519184660629948411984077241064072225188576916360597984842867857954893288486092997448749971762420507852593751590198736098775436072569818802610487012348358377796548766854196990642367052230479538765157677296439326139734990510784818604954557409006445482517852579289671119374175006804695938101857324402116527830358401970661405011140418980416553220917600280818890920477510318607844838611461708775510833841781351259489927746298354347947882027906946179850754903019737565019321353490526046588565158021543586516517436833254493467881090060102128841462084364471663855200489534241056670761146651297629246415227678731930881936091534914616432716084486301989786793423043623266842206108282679685394640447121424706440406294395988052708947056243521666347530095593328948348851106494303709064551383274983160931259512956787220904422630234624191263086018067014381852147617793979399482375764363226575735599623876207009368842951995107418660344843857649014499899092695934341568650467642502571319180845199503451412590488221576218324843402189409518527391497705058342297761423414602447375741835539071889413242132722759855599187060547973489991619593122156451722246750915397835655788509561094609874463649231334974128863720139909151909770635062040335664186923874225702006308043059059698199989838870752898078986198940350258200164532650343539929689970863372622518676647225420912325198948704126199319402849185465246682792190089454653535705817407439678369270404377531624798339123039386312254188245724673483861221293616981747086403990161183417700412398361995579984208048473714340644692189386638682948556751953646795067088865399777020051857726610295106116290486231949126292564648299158783519526968666011037196666679605691066984660526957895556667002886911716380938453302945986600040060259221844036932250509993062089912822583227444053737836015237138488516861396539910051460864764612853881044055217499295784538438104862120915114117920434202004359868639648075284327767753286659117970578112809188291906760099517372998627080984764927340773200148554424999239734351009502842913103429985985049825519114905333815696179174669027973811371272423282409828512826736650394810891072879557853217308688783760114657906542800533116802749335409821159459121802162203625354272276362945532836681202292634233977095573318427863966425911409039139632648096083109592532697025494940923059649987895308797060640865469903161266323971000542637684836073251180460543127167708117575572261879839667551884131843421666004807944336928917377536489624855599040133103364153585689204451048545609451331305737973244956381456691094833525836769106895837196948673584377204920443474321851990722734838437052041056325299888728811333959770219603990845574016680178736248632967675756108467511736403026411116666106398499853115749144879419907831338665201374910846653603323797011227187959108703051730553722255283040132085447649326635412433843028951263130722501142945519243390560382165536561833004632710882572094246054542954279802654792205242107497685191661426201316655861862028958452138429867859274655077924526007731994095094932690154934961400121958691696211687957445902407898133703400877243603763259768223867001519863665182293374558466706654678931648576000897262128369388136429661639347571139438889626371473046182600691637905890916033009545455903149341322833429287276382034123273086653618255585976333958318943839858440804591053880958244593729129305856323241485851045809101338833848788744724243950563406153166440897973322976696316634516205330561134640664811340577834861267043399107687932965865099478126796118145413354077826062711449092508768957705405557118112835618476685389011535881473253262037968798107094549580448352962448584512102715333123160198287762164060645006000621866103755409757884519769552833648937250763870746902885409730890885898528257303901884399429368992377479687498503147993253979611415585197045899593953733435761284988614751893648647879971361207300301673054311790761495282394710427469680311539036570550354253709368282713478969041277056255126287232937739112516100172247013103529276835713882607698044961298257226526548390924215822026564245569741967268919926516443314449650939074642703581841938543046345493698336902897916448433926208740134814640303520337875357214253374065908134584987627905267320034454990587431106555319727475157517932182329198272275495827639704824219632763271658099857307756892843672384112269192723350775983891484584931182836509342331317376883315531875800507230186165933657536339714963336841542906616323451589640019295946535153367533152507792460083435127642295264305938773715000052694745380214930522924606894486327580070449889214084528093177253128537063595694694273882907092036047270937273752361773528488922584246680262884953409297058766854493171022388139992054531800646427361783093936908919832003831163154526936647864220099156044294826318641509548056310003858753092152498972937261882490174244057632355343224388636771627189896341072386000399479884815890505699181980864448424298525320537549101670960882195493649667894763260075464024965066040207087533783583374119395361475558785468601537110046041489023071842109502343596546054332224408519947598844506765610190416989885028534108554044989835652116283768336987862498022814903701305106589607100983944473925416927380327987938648668781779082143934667885140311281829799216667314482139712203687561427226700757712710560193675951307658550564617230390038455004757046934978187254263114489160627686685642822555198640558571547541752270543348807437182192876487651807141582265291742850215551331443349156167464867875461834998425803218438038826723163410182527956601792892964774189722096610512850187951980415784888618871323888510562510829177947082397617288121861728223244623283651170529370730883354330817153187612649785077324226457805043614623561958798587104978551311750338356952201508012793543349221412392947823710766412709517968487623456702241967191239601930264960572235722796392940269644666762708129395928402722547730147481665802820350917525614582055853978919805685995454825892895030268078599949283575346997968222897436278530218611480120788717785354381922338677472367741219386236850338740165759006366238677970875666853210141601267395465276584398089793546378894349142566137874430985223908002609126992043570200855131702762244127948714180149205691665032340302277898011271550268053949857639975181947589902626195256812823741429609205313080784599095734850548479643502459695801721974903311541387230484812208572162943419413213744481545872867917303753506281528345228157764692363135802317622398916014099126997468195462599717734288334717445917163361197294177522274757952515518126493415056737742369101238622615795363287007524183422294590042227415982269579023079041884503651463235685294489710461026456007238862258817547887190669415436983653068813845713935636349478700761227250468404431899165859447747382496003217650717086319325382164239394674885744625690379338835031035830582181670225861019275620549877127153647612279539891943297002762904864223230743635473941493979565074236330306661540172666953821098981061234724715077414572274756357454517637886954728085652118843062053477185755937168957184522993251939973906559589818031635987786034911977977983640002137238606657719977730749882368784168805480038164490530759360214536082971979964101042559701172433672205049303851332872506766100280187217609493790963824952890295644451992209818076103241926274215232650057711471416269893463301320643119649223735809554494001547843962625307139861463473232508419989889885948953647358636872400944690666795167842400519337020195117008180670100181285282878361729736588750136434416455628881723142777237966273397610394894455182008750557801233314223793773385113741015468362310982789574740058303271551782044639981166545494552671975744143028736636967628404730507575693573002081711486332315850016558016745803313590149762879785905842536454672804859075054515639809887311517960753184656165976640675564453794157464978740691578198850029665900058575033180978350255922550920352553539930626601706583478607757758081582833390047792422268540555856277987519902488410451726189865640492151387150048895101418119026083637654427661940919198195060323957371569306295334402340121333990232436298808692333420209482538820414398715253783683280279524925827516083441993966745338734108818576960878912595409118179993640917244376100486156546410301645085162197327992131142095186008864349500324814724723513316981764158077072088086869902548978447077382339416453753588044871983623900040271970484926556500679940989134289120338884918282485870177279978375575057652157483378687706447511414522842020548759418023489971167349276644691841274914499798035173832182474445326443249932757192332141632783365538009998147056081232365017585612560813326470641160208474600340100144188005994548415204706015401570264929606475630849641507324676562550035078477359977285692368386013428133391849035844985248680897815890046357551676755817554353256777967665647736985975054380388999927819142094692251505322678750281585405601157854071959558643353804715689665041256954125537424027751067758973406752840619137542103661265443611915917060476187100509319324539754022943275208635569470402447563377101489625514670868024647804494128855645536849387957901943278736417546928344659976247597524878542402568139120947536054219251438131817996818858646990803179282179992753207823571703460643414796111913376094282478627419597902306844011508041903744140200586729802394908901141822677455248623867532054761653524880901142111359844253176832874776737484496038020544183765981403680483132519501970942234231916273901446983108020585448444207256987080797530107152614208608459357497937518147313819922152680354478824263928955486600307013501802411067678786959697327068973854720331920698867493969624753426702214215938368286170985496725698349578750771491774788702432582177401274825508923308858190646760563566113302363582292863102982853052899474831778952375694656670765714151628605125306510426672409654859490607981585132324333478716878523711940157065251480320496925977965722559381846554501109864650184721603604927409928636426813392736952497034794390921480085548807187678728192057217339186794709834729849236541932156137709107205579205167376146886183395357811313705537631892055149459802350538816562501913774109206839604875923653746673453622905147998707042126330578393007143207332173200551093100743414494574683064227927556679024985998395880339184310965085224270710033973682613388240388759786156555619860013460622422278606458533957404512408840070645809889711202779609066828502692274326187835526906385184980511975310668141867016697040891894574771186403201997023846540051974346974772136960782365989107145260870619719821743680223407804901569198492185276068833612118303572822638858284930869380818072694371883921544017102076213689795084869619101865261353547217666774143638255088008615338034196086933722320447411807265409356575480617865249441248311559467709678404681608784633241168588806640573022315422299189984742381638820363011660361112383667825943838736669820598764056851148405368536340297896819030672528943319858817851654050990012327052056013315361257247042076602853366395803174029517264956868925226613732553832165142781075449628945907475972479028884247915396872701869134819500455790406026046779447000558893371009165993300505736122989423864664192696997796176335320068919777484755042524389799018437767302729720071852608539258370972538778095282626900247911375814726025648359169848463199940366668027689802517947783701844852489620562326580397624066266075937363953985190048399090419626804273326188294517029563221663498584194974006497123037423005724140124540657960185671985872090553128505584345010953830489359279111210934175656661090445638259870557118050584882929669130345554262283210252742785770198922637190250367036754912097005485881095955251634953367918263627452186152894424754970358759197359530278051890318433935187858228038274905239271039044191982267437254283560972923155099009881711058166049010121451133112707316314665816068273755187150083938828201305662880099223604159162208026242594506406773551474116312834328111075495789346049356423945250855492143543897060968479651104925155095322970667286582888711374320246821386137339146070041092188835051095252831702693660025401439329656545009247725017224085416535394749840383166864430163593049308868137563165135227149173140076787336737025770924223487838670697238046807357673660770687592703625570720082665278417193690549498766433876806199263740451639860978932454293823268137460052649053321911017696288477218947443991693864144082462909546037272297410913141785038147056902006891931908209592183518141982509358990264750238335732368279977723025442131909056098816123565611163088314928377967073161148424336832846700390490278105942884507093788787375874000806255990482213967907082863828672904319999539622604022444875752020314478691472340295175535164560359129434327303763597958435470037954320547309035487332644429962593306335872268500718565333699636964359974961171069117637925304034236468128209866052781899967005514721095086809981828483205576179451244897202589776468872730971793293822571964564020624888720211273808259652993040706847620765836946402867447934102241199523846869134632917413170461282932572165090873296981264339896203005821093802417512979538750719113469487007039620710478694386593188021670463437874933257525585314069512635259643988541603577355699746399445254409233204365503332219494247899024796398694938906852633564090602513017164276653457431288153232203864976647263572293457975076800443312506785728451125654043892886699888649085081515559240516232578577222824098834892163159912005620895538743902272324976117930037043900806004633182066144150009295454537305534218066307775098988408733042434639884085484156059472500801037192006423454354204356506884942266509667793991800752245893521667281786590025498316912543242576305295322551316880298996263876018755188862462169931360667224146409099180001474542175681891099547489752343648029505210972606599910548619192849443116976920583779199078602515151217700989394456737133019395423000851143649548814424741508575667495791981634417216859172574268777973748626543855122921191392093311439690675456139452546194119874798841553583254182042849338948864579614963541472288232887289479909671857135278045223142203709257364695646853272054226071842198206929074484259109451287404233047477113800014047427401587906110578192430788885750557782465848826956599182528246969260254263730137406660325819505202026595094966608495017335245295949678343914946813075090104856477933995220713961199713692265845168395898899598955558000566357770072077923378214394573772240755728495757682244860381003812612049759590158816025216863164373249991810440382350904857380294676074115887255644413723896857171901458913667403885204375672143044766888634353248899651960857677960070878263016512411038441663675739017900391340336786470783306807523113678167273673981443588871941507266770766245021907277670646336484944588673484004533851250841089463350878524202705805688375570334984321985561955475012639172506241302787889022084716322257461396623833850747833342894173281664554053922334799657154784787362350442657374550351630007029324442640034984685210439794576346653377869853386132891745263603898292275595557946063049468982545338753529870972245804641468977131406938394389343814426338206393142958498812072079984383601576521897256222301248180873818602213031425977081921103040909800215271350637146632173431965929564477235412867316888093072015505681231616408202407570259159100406063779713407144855261280216066754529311898180100500558616453783274200851030560375521821317752099125248476568436899437922563560791375365512932529834706195250733468279025949435210988938411381920845021627498962845646633033569419317114045769084431759258500363044428819255119605959411851775350641957905234751338311177674743208900686539887784676146157052731739069629668822971223461896557210406620145034230240527802701180914722222186893575446499324070563521965669065401146814922390531684763067204324146359074170440017438904015763620161460635303317943632675845966909500869252356417314708541133105362371097946668940843597404567243993881186885093863765566730050899306804069625187150795271736564435624040334601917567953370118505903918469467514020138324952675024585586673640331566626477988096789716692836958799519151635777059991442108780598952091644890783760275205207735634740533324401235237506574523786997717935215319881376783353379528766474324846391291798840952823674497029892766298001721129428431009261879506074196117950329184889955130304747421072142422541135274950073117454436137912438951485600958555481024455772505535190792397451972691387685091057363692904551432314234361529904844749620060904126582497560470976382642146905996332415629074709031173068673580218646673222960673923715816593315454803621568321012005691836229787967695387957370095800367269458174708573912874663463402775221714957139957413735881117612388613580989278559244771183448867742115797338169780701332435223897004123314922891225016829377969691919922267922539957330506784435610289700245734378212593773210049973000449506691296032383006957234254182696155576704203712312257226942308018636661856715409864524869265937262859410999689507174495444210387042319405498964996409528882266736399432691838228733011274551980535873112589965220761903645743062178062570950701034853088274140139843037915258768864030521005850961033938250845728724608072893613377644859104076714662310998944323361003995887450417743518653397969207037065690118737618285353198195505742823709780262166837837518867511605974044300605958139157055775184812222355972826763915244666625933359180070133711434650156855633384690240091757375111162133926782190053822810289799138311216773589599260270669706921319924314613201143596907965321158219380232637200534884006346589910487078063892107145979461732066277120012421378109536762820147761245333137476457755803863179137504175122744250193778293191716591269755699075656329136471989895773175795027312732097557517645868021147077004773190271568980507401499585727351368244722434328790280157081764199236032414960610693639941922150324410044001166897975103876731908842494670436571525393846459986157591749190876746886049633739392017349167510874923814369145054066808277239900955965581901998832382884786425397798065289739981637511318810083143942605823617503418704532520137902010065212556323220254633839236662444303943265882258760802706617669202742788410442303122210652579058914235060439353739385146375530194993988857583569211891164817080093717594079462507233536666241790970108463498184111448252448198257713811220335039050631152722256648626004205254233271595718324868671747219592369144803393415055912667866083298336684428222711957746706670762699245006994925607443964380470963668657190392968093051774928400012283630424032714855649797301239332451342771335034245471816248782864176818614627335762794714078361836870351272698509831761181999747838316446119042978193497531623605529003729164891037670005110160898124072191025267183116012592024382772040820441806832161931732051367446163972731504500595847923902335915321103841807294337041806586714844897954994523546999101353186223568377520295649649063858185424405065861489611809852508667800243211559800126589467650692482182661108780244533671535308397608682436700640977696856811732627661193182734191495763470729440054566956155901834739150973302043251643215299408305054383824030842275640171853017455692859233314798176736248372898875570831751805470504450286566630370171320703445788211401014086563742583151921354740183236339037557993391608405274912346193152269808150523445781276498397664646684871174236415372579284526960483607302372492797142338218198560660404536830825511920372902398057126012445973470233063737209930534418405114388284701353153526859830131926600657157130229444665139400839126636030077003699981256318472422175969265218407951199518546234372523892731128224801503790042422788206717503940872509833898285187776035417919576403612391604371957729607490864846949980412364944530344786994936091617704894968679560925914484949172515991428150983417835547546091711458021460736900953555395712611016260193905044156275112854633299278383180393921303839222908649356953179172868195310349235833083886120000093212491556880690753330052974908400976293288789863382123475540811479916674568698635768233467261416035297226242064506905234294292786869351899972997626850371616713824592053921798343322210947165708580856295291946208266149115853003941053529078825308457845893005603825823107517255517334979261565655731265641015587268409814820147817111689196545009539017099929646832366887387329171849184780943805510785094283601024457250418191990308306755345234610231567836486721144015381376878823096651393693439450141231121329647373000688115624347682360466260575137439662973062020092152912768233707794343805934402702788533827434011241856350269776126645687211441949717845908894664374985528592761941366787252468644639747228753953761832408124392020804978520626343449602032912893979787859575556070239938828846763998765246151257085338296998241531613879283837453233539509146604875127013294982790946942049133848053878177469077577631790819388062703613672762170889431361183040229010917196631105291213839067305833186594495455079433193489500458737998601795488249488063754587916748145135636223586600620616565726601317494319456110962900577681338149461067284324862957638666389555675741130556965542449641555349297855459498199364075869947328045598931076879159189776610999664710579637658588519327579540350319079370590266542335136490602291044089433770305252774064784545521044071215322082863705717743218593677982615709659849071128919919049990203428365424262098728446888630546167261505439707943170134031509420412651619881120348952168760837267281831943321107611718677458483740198567768667125730226806140977403382500747686939377342910057007971288763967214634241673767617777673034171199885274651201725706033957288381424393479959633881497224775016014730342220207725534591869900636028705914656712598134335338669581603167065578245299497799330564830517663120262942099958368529146080481334984591777595872798930216287467359733759346502703205679565240503390551912844266362814515330085273028192149725320992092142338079216197508341048117902900577110903507020129219795975926565715384855318574308056882877797068564139634855210866296158711001959710367211629995262464036961072532591219328618812853351623763192235591489963905936142405485530407765394217365527127671237564603117562803311024776867459706294584745003869278842360330234984908238253909534717608576508023647854856401237815700169664569991209152674508840781288873988715362139274556523404225061394797010854707471000356131239683472444676944694076420184261001475708292975710638508445414227010670896631728398701859830164132149456029618858071547602927038591776141573955602765066522487532484102569496652229732120025985598057825063732394675440661297054768860514679420632365782965328752868276896086626560948143375010692669287127925184637362556648297824662929033036080019207263136736130946123775442180278762898163214690225626880545748760276886689360849171350837604806718344667059264939527047938830862706081243709710443311620901711651213445203173261846824509002115754063736205221296211140851520052316417503422555365051921035610168847449989180613235516521336419501523453696838039689629166831727247752306346956400065626490914897724806254707191491355927744306303858776301839155458870010043084939280295869267789367660315863408815235761486632372443183096049480125483955722089346420417225231668013532362489066000248532667528931075180324159886045862721133001225621603558570048185613605579354538431809325740395461907319497269903570279714397907130357419663851898267325070652303971186443507037091489580650432411273924166094352846199104185580287601346277941890211469563483643099186700691568028874683763929222522128613168261942381464963899756756813160795777320742196015610939790591963918126330654381418090478169933727053572141564606724436363723710789690196203671493303858349409346049522121317857324625557435370547797079449783928173265287941685815013891034484647092081391570473044011063921924485425834776373777551366244713096396733584028722004392269693603922795600393032566967099500038559677667508788882746331830458017418657258745149806944016860343128581402966724131937261432004220774056226462640091795281080916057387609683259807936522700306455783868949822403150195347166822009927326362323967261790091115620003825147193032135657164264003202756670522747261317866688698561576988585792546592743853630172884723836832486761652788573644050875956930156975514770207471964523366487883731177199702284482174833113773157338505012639412871106204355914162710973044502738710735199785655998372740398833564187127400699905468648756926475936806140346509382719573783452555360583740928187901801943822090730742921162583596798871648833540435767198538301400926726810067491400460711848346087369145348057451478176047743330618168850897054199333884161787672290071253723106175558524458243481907291803273853222958699994723171586601365773044015357781848163831015593876876686668863259015303159256136041539530997578239840188103989068210456706123912174817965654356490586568720508430918583529574787947053420233430878618798949328530436216870238068419609617688552530015590202868148838985173167311379977912520540713324072286081216562277726860673706060132357803826807032915936737966619596222336575714058920144737227811153335043797482225194802656773319211128994025391164850410653847062756935055736627047542940548723621182371809337522116664378182857177701358562037706306721839262839400226429764327717776182044419865629385809803991287797209037300540778277354041094496054377999242147123957934847985570236320529245393054613271865392682969029904488276269485772355333507647243668778269591073683377307217724609608497294958441688667335693803388670871597972789674629486844898364090769759535465174390583589527186661049394121957221745552763904374073514984683812884929199982991044418256850858774454784881920142019869888053998668212484970299308808653968788121031182799850094639644397990681278400673545086551902758901874489842616317758022173370919245711641216592749726746418362460803576519366184442388549231096966451464368791688348450810079913885851549151264347017800255244305787467451789971936915104953507587775105198972686393921950732629900544454211456648599188098906595254145535770910042559162288996141500648602852791278111849603600251485046814356702758324996447325980376949765787516741064851850733561905978851516549302767190348115943087595644711789201520947683555904192486609861878444429208283654243001584973221849322986478530245929496250266745540296647519933738090642092266516456148199085459933543172848232873709588882356613544156944877499083424030919882809196894927780952927337002558027767697544182784809820969624551512913053309356216191493029492758595121638709053314770279808232969695287057580395033909696562374308270518300940929134278322627617922742741355268361894290620512385676419814991356091012280633237405537568979702947599201837618867093498534386274766675656758070043843599068760908270958907755329758597214958476148638609745329729587541611182935869274316651424757612073240436209813673932638207634443966877790250938132713614432790505232098255299063693743158174100973074149819318602114130460121293909800079787234938768761300426892999246083409462882021255940430238078397918248341949079302574917446442766740305922808005768110975350433981183120562612809681684638550287076312014954697118407720422587437934049070406291316366956070051626503875690671457343353745544843039861520853678193156514910159960010220208929964700073282356156594129951027013094828258168786640659153571038450124260010093999847693958213770648545124781510008429297501023887707334224326530777074454385797274178589014572036814105818625445012173116514555605634570882195768174392450195902250358282779438729041883306498856830066349671697473661667719628219788567566021043494290484790592716842733698872832224338439311741689075942375740535349019562306886154103194784394198618811778618977460689409803557517741351027719915712874519589214573479329227929675681442593455820371710756048707054062505167784479119343741426216013069986072881445105753651633691383712043114025839582738020214226564184344622011279261476652819106348543338988362312741081847895869418587393909920534949129673402897640734070705843717769467835207493651426684485755671602867993886744615195389584545177082564808240184703433945022460368512086737078580791487828798937758919090777757880969287608943722951472593388462055698815634814624138973828502103698736447199924406673729526709194413598255627689124284424785211489582316031333454862500923177605897724121252278948260062241550396898971724382131632169591780254218159928525876184290068175034032016943627921913790615501340302445176027441536038017602303091167529895857532354549564079486370431564216806564483202798155492879672588268662104069311129265308076141393440720576801061467810733774984321243894697171693806990722324495714275182154104745202968244548506349571662511898662524676613019134761404807091634125682433229272594807575097996551965679681497546042812842392937592914835054537386636070267783371298355651231125537449063644021922709682441728649611121682021977211125810242550075604279725482933467501156046179300347957147860935191714884291526380460133998277904736408278328374198664437575706189322432363077834194773341510998522250463137330383956532100345755891696740539384205320307613048858486224085980813809839435919413249621965171581375324060139415273510489909910764191925654917672920676583655921226283029349885220832514401389370385867013678229521409851313130922927036098864606048193062590752567471511896600043604474129608039817785561809402926243796114588022601427782523486466689079794028206570552723874213289438950924331631995225965239468973817018962113986086857785227451927569485914146178186160190756661742244532094381970650979917977378785388562652895107120395635657929645486706228370812313667132065661402543518414389348692671360874952496235694624331390189269184737077062274816530471362907171542663821972463243026984270816415052076690432872657609236604030068142044499981449260130227817761251079938241140101888951998036156593689747482595831283265185789369599506938465043708967001700453366964106050395498305600813732789661181560685109214211661800826792172280233922985729020094643880499523421435671578118214321728282220151900732646538226214860021775050897241476672531746345084969559960425686196288633511217961203982683176655603777320534152879773834968911112045918973731082816388535235274357645636155796270907888488524880926611047281348571078725326489302815311175355258000768777797546341032051316656197003114074350050368952806796116298908812475045577975724081339556885549186149547939624202698140409842494980505697428639988152105278669760909470171533010010113670074993613419072888477325583810690615717026055717136675712660859078770255949706786485783507019702661230414508616649078359283602651689287900822680772580461605152791064671030254515720918465322123634671605839579454451228205980600009398729175102563673362759513518639787731326456381269403560194852917587154217578988959223040958623740378019955334537798013224084570768504990256123810777240071296926520106569979860320237054836832176973629178084950782052488853952240449784062594437150058247739779185023582580624132463828839665394514281108113758179549408029125158053714590670211729097857903631722563328144156467683541592677455917291546269188261418364765608201497279753971244468277792980946829732417185201481050943629863049984637895568412059551930234395897653224066765900602252307701644521488414876825770988897323541158947656810372657571676596987220726384285642514756070667856448792746884814161756445679838486386556349272941874043245377498389622414948888688954237633677105800255683114590756444315742588627770360513155509089440388834968879680868090291338736656473985113048965099068204032327812515665144388097227276632989397700158060542338199680226486137017576138451265768456393631867402846205961740400639216201521327441940075253180757951722845796788521979201439682246463812578747832019197636885195311561672224309783409208622811557984338096990749540470725679786569525147524434190160164498823353518143981769973302868163480632371156839214360821332925712422844935065766012175610343751408257865284112491930880868430295700289443314442601841733923994392677834087899065400068947362364483239058196666428042198147049960206283812670964635175287171894912900413758348716530422768415526361724225189009942344044030525360333339207170520354597995615923387037980035492634700912702779454987287380426138775578964917155577527308319456666653391518993484408604993206040475687086505630764528528892427140001979872183799355059470044380270918091249730695786638646289513628675269586457629226499314130219814514685205671798100726198909482726099790066416176661208648371214557625176592508194000769070468789465068889020378302461524560832399611185970025829285131708618637946573306469322989090283160461346548387711917480237193326068854967737902949369325954302062803513294578374591858850635681352870715769898081739341656211047046277056402735241048003781584103550104699004216099820374278650423772664859157483959933524589756480403893922661938126405673086006856397706533978940514249045052215732928051087608145784236961509486252838250688971052689677164564341474257827671535183599852749707283573629528581436408266985252896615782963282520651894967985321498737639103940718215468434473635523099529765295791086547703899128156639127617760855611905234052272782334278528053848471208067644366057331221671987931094540757209478281512931387149321920379861633425075587089443256585548732081454817818467155676650302796304180689203076322754970185780853325664949043595484797624112338544276843015419312010762351028014052132330204342910762682743442436593415241708248230610888249613521280289944083833463903875235474268218424202214784274169715239250234273318949475514239372743060273999767698574365541189162303762944927535774094179719906717742216756626137957115936808507901223791581858876449624539504854358726985031130784803519123002338315571799910556331785217769137840275884480192196665569516893609334968555560525487457580305171427192057229389855339561845429405194688958913487571104730448125231586096797116784511879961050266846523417647085042253989832932528741689451992642159760130301491963023520592078539092734839054442577762053686639419000024994220527161935873555341667564922182993667491187186612156421716989141541606007095095320511299165328157555168878361301655757557994577989525314396758104574628582735925231675874915801404355041146966523608736758935305924703429736037642712937186896181952729675706517021473558486612126050869238143708833972727280283512969405959503554080509676792705034000651195177160127686202804119247377195905299207612401848686611169367836153932337728003276855639640713129709418174575693243413172725610433186550480511994858499118396736651017592736368326903116984399028246679910713456765941206226999465081847460196440271146976397988395179950187854832929736373744098842867333180139914381187054746115682208697931971233028442096007660831806295529378884279811412538248503720141631234684198497394608812384854358639390378776943535471891162777163005346136447870478937770485492914995649001325719506337880885270703933960363674594994720534856847940906507433347267483031615999693804933639383833093487452624106954974557477637399609017805497455512465594373721858210439090987662101494620467046983727664695965948795703643903858287300988374846169879616027800044893235451000774329126828419840094484729637249586776987312110480894350919055271275767719660106264256204084754059733048980705308766155386631240803311625796248219910828106383425742768717820628381809314231475113319548697268401898210165848347030871825094319034192578138143374045138830334960621057530451316504979011596384645341683021852983114940043028393617884480789375307863275727075588725070668701511429964284690082109164438239729472489278495683758720387486125730515470747567285297804867890028846745718504547261339536643933764950620453679360306149838767122447499434707410039096282911916216342549205030486509685285162052709848018368972069516087761836529333995532133199045885271990324934324361506885817879848546750579333423449380574713099621126261577925388665285976760344084509781635507698271142305000249685813939830757463027357126797213129329305932416385707042150968203533437664285857722456010713283602087483753106686476757101306402073359289815600883299195902003921347646790738459694690950921974492328874690323365094366616985380919202422850694284055663137721081590492721531243219127349209587749433473844469561201539393903350195357752685976730161714074194674171558082186510953311745643171577075779507942667198677467640953664978324959996510351654273291523923046253626604423661642599106447266128539095002932282483357339169476980460395973674585859730245370420811963233952845105789996640749137527404124393989994877433344822925966974776711378878740509235564196619220000626413518636144598982415037701346753079491909370780257360085550725934979653553224701143463036624857428853684069401072178528259058943089395923360368573499856202918865213040228169513518384384573436658628631158083903373508299013995227719537906210109707182370614459567361977412677812205316984507887366032674206512425590425330426465143598112764066804493777586042489929053024211927061869683187131983873491357085012110167083741120775853499493340186475439486877953315471235671609568455888439939008293005058378816261402271650014141562364944074817754582535647012471586297869354205262194993162425128048038107930429618748002262545370523040526578483347252032266618625465592253833493472894264787651176989475194060897995840512929920641878570372497551541026041424287564689237219766322860123061105004572945560649456270717315107770686170580781713832340555904245237458521816872468413235291211263017371325642321835880402442012780321029557329299981544836841249988291669531667848442521675237718268515021798379193546206074556334398625904333222688848304298774302154020968336890610537860757600744506060681509317946557227703343100020988172772404308663839969544266714301226310324730716739407481692845387831328913157547471771712769469702458231166812304104543490995948582142715014731104681392527311070543909562530895725717638657310390050672999659674116420004216641145264473352604361739123008129156769066348453211406200554402846223367931075464908973667232163345907507722796822710672525480933028910152267741233545140264502163921736570313226525527599231979726675363650771464347583116718272039562091025543922380948826464496791529982561194399097207753370789708742512246947326250768312119522114458767776092114199458989056966883517360102638373841421218604946350274505819776567583971057597022784663274047923632292618502019421611295771447136651485995285101712783108407076248637516379951460180517121218613577407391679344024019290270939357367952785938142476173227449486560697245618198791561467756885045397603454960711588594939334850671764635892291503897385157142898997509210556562565930357926506204414428767506057413892246544684125719497639040071804380541551868515149306530491243668637208582430419171853292573295378396799300012750052182637449433431314272283305215575153445766716626007692130769812523391190413510997216037667738707028972267141528855704697401417752394360078929257465114412038033159706208440310488857629414283987870283093232493227701874661403946643577798646265098127321634686277282088505464006390963546737624873750539206282309575769891138921364892134251327731723983142018638091875894381067723876526858038295702040034537305540263338136971831354609025384252415858857834306416003340331761684575424757968719521841794198027074080367926567359328857662435318992771481308158320210519817450848955489645276175980890560568941069253614322068370181652077895609556312493544706644910834315782041625017244308139525364188416795313388343479746585383211512128101384753206477572100392639034023173272529692851522018687435658093381702938990445216208677633443916261827995498543397921721675997023578024022729787863729026931519259713450951127434798644136963190987958403241323904699691694717103573203088898496327633276421754085208740936697951975283842286703958875412864538866803710919430329351959605136435430441816791263765148037793525985639140279381854645299961522887303949294525265355960499578028725278406071152153641232515956584551876745282789282337157698703236052680306181984308006550470319747064943489500571956499276530123953368803977539484469479922088723378103570355508050203113230386388140635584949090120170399717083347777482179476592263766892700883336706007385840019235479762596709625193761459259605828321434724254257492867755694931006303043987541836836087520398331405832608013215812560722442940651847796311134585575191438376856011912232387811493586390627760790501961646966642425491625892185644955330056582025842950821110469570936608863035965393051104904224456759240518652620456979861022354101192989576727577833380396925649573646900087947358429199406813362806959715888663203566342650575252510525273024273761568544417268776961609146969651148257096408534144925482936237142067796282454258861302372763756819213869966344622228104700155284690667610703204631990032655650543418977906499231157413808428905113222970447152639863612580240792347802295499209663864489539523215031741005869739142960643883906354698294105080529829914245519003982392474345541520125383592738213505352711251884689570521274010816507334575903569924964209920282763033626064137496995964643872861815741452042339516304741594637904954663311928200764122865380127898150305742851984043259809656004314349036364547124794773584466761896303968144098475065731522095815292234271856087135192811356623569622381833342040397775668569756822362189889826774232549980117240363770864686691739863227877288767943757155856179706883965018591170459856753911418241365960436706269521346719102287491282737789988092999726807407374315681482504830671220063036726704000571021490567184947909603845555353539742110048180098565894534723075963876340134687450113694103630285741962967030221459792916856124576776863915004945647166559515778775879252848942506603725310141622940532403030237291619005483103122003417578486204161257672807697271110692120891272487820140473028670309712247486678280396629120998159030219151523383132691900589327790596786854257813038014233520834665932912794114278257847266394709410230211342979094271710870538651733688401201701339541651219246014489062943817335406152665756720017326576185591510381881643347187053108265043113752550214689853796587984210723616534988668079773580669118951774829253190250593188090957459910283786023808085367256096166789750406476687512177341488381724789186631677971297501907593839160880418627743497402832262431958500211060929265202570299595366493113172800577614206733461820820829577130347611258757524630379819779159834573921317593734579357749332931592623563142235219091292006751717278990578979350062247037149243965327494761207131867826249058747838826139084431383896958675532824741748472304753688173768018111821735131716877974453643122609455137369420442215317816835942740578309289278316537762658605187468935279487634461027820097974014657532881069712387869414161369042190724419033005997142575048512988072287616756705218643453175337899296504801002207882795713227387095732247551598793290395949251870298933213707191008247997956903916139721332112214216584933029712015550037502875909987414019310614591895584229120803559761628572554895805039392804023317485349524255892179905803623005879768376862161294998785821747777599884443500520914535099223217878705811433864132787112927457549192753543156999948376931346216965334024261985508334818966966944557268885239209748141945037535262462015766372201239333435396229292772596590090918551158472908825912768878575074870945828777738156214846077492638364628969413198196314575750150554747463541737626046754632625968426250051006582114061486962197733405839380000714345625107693085412589225998394269699064137271025167333793520284021318673524317145225744935254574397754268725654159003549859802244452921187824217593404374648878653937573402198455894046754067136798260796258919976174076165469480434069313686796603542009004112572873843803647595245253717952791213448336023370752446840028608040178293692309617545991615158044198390053907746235653371417696987482805549543332368140992079994085787557360883228480773894152887224091295336895037975296945901493918429557962179454761077737553107703671196201503351607191481885305184913081468677235198739326849972592435919877721614814806231648974592427156889404554768276369346806301180512499953835772647192459391794803710864384923404830512995658819710869246950253617526020961137267092119232999712261875790879507405065320406793438403869549495237916731696135568587700187077111268161890383826721210029622867598023595397115055522624256489262827484696853724907619469413521760187254685588109439213370963575661411838515390424080899149781868225382807272351231035739021994873159761052403953633444017013825518514788639307214396970334369831899880598474026882202937451466342221109431816324987780476205639501441895695879643034413245360600859830090584744061720547674775666286852688593554080834804980861517540487342287102908970413921763031578657751458488925127618886158180882959288826080413090087136754585870327082985660347292634541991006488154024217298093337637565436192328249610229008220012296967447172898409863664908280450989440047161345212982999174208133090136824141314666331151433112821323435094636143032879070270709258320373013065145007191392331943479069196713077305203634231294575027170983633475655257663522392475601695020359345543425100665083160976445822797936669159360297641702464211292518012856366594030135243302438970584398546854398630577871230723468267105885948268482499779819653757917013151858280836204996903719852192472133194866932676144239230983071901571425444945769352171526728874952313553855206437200645487053503859266494439867143947286398475126822461461001074937616747477448128666790192962689150373219855332914881520764211064455518539550604182906130725130750060318748775698111750639788838749473316288335941335553987023684577524493743456168776732608729298024633122845843549735348161255643993604782013129620239153660845659059347616361653174653204658026295893291347730276597075719389738510205465065590498410361056335265182843805034450098659573581841654823891968120812324558732477497139688897062822951732619363412308165487233377162492543535609913400347638747207499730282553986934271683749673550469354995556490084779917053109945004596711534173074020373905159488682183388153215013034392085370778973313923360881464847381091689833225761800120259711006795688537504069969036672504865564640388997031912047070477276047254437518422385029756396082846909727624653388267063076104153585745882509421127628485979168949864228353127824641355291916532368893376487879592991836424690731806429573032764072754974990620503799840725412494983468151324006910869221899855825076865590448893194118061257205034697134644583734343720947882869362932034812976706039905025151006883619252885426864434921146639512978191945706043381986257964287126193762291529261511411253790023647921246681751209936240303286933212301290099045512254985226445968504109282672579823376018974800257953634455267938862604886179236507127514276327394246360358386256225963612090406522576725150317149367013011523069817467180749571823341479041936891375407863848355578033167576019517893382220566779930507305465455106883008996801370945239108340740765651385922605946016403006254920278111251597664433848665558614889577674001940367290939461129790513631578838145561010437991547790498696794660978231395062630129277270775843834521905136051074481871549914410669692069461630810471268351898121927974502589309400884050415216440208993510182852651544743974751939203842100509993029897947268112163917714168350514934473786536863788821275468767203745897904371146134866046316893455609148020497246885136737053306930265190715286328817597528511049617015376779275294836327731854757869484754122538022511548212666345658761712658244462298048664140787260755972469142793615913977460924392559548574120754104239604200668919882763406458603997809986903333204611296876811012478944205623767396849481604453706081298852960072545936121999889110219799762081684407486931432118580141508276799789749768895030209705179464631871583333183453271280216094645025930170693339209007253066101765935424960253416099884362029988940200347810202690836859648220074763225452292606519981012518751164257497545704595208797843130900130739420378349867429396223378495875152844087030250385693511809285674589947731714099743808566851273472117502807833630393339863081568831956602160183112063350922539537421629522084326167332390350591392414193910598088995093704810474937185722176969020147022257130436847541960912166104436642776352179566306644520762406649571953318010595800430818038872158092669343877126062460592594991593365871549474610381026192304855543844052901534469178500979382686653861737787945496751559568880745577872408085939119420963028711481424512838700496975032783949531370365037218603917625139715339104772358444937627846327429528160666363835614992765626119029902132276254265502740204362903903093613846083953137439060576788932954859068523740518913299349952803260637069356820607832552950520223999045347481713179784703512663337836469719903726328665659617466600839316374697296834708231080728884283224090048760810233603357360575924079630281080686085345202674010197047185720105384245488629791830132523498874768807220129937424677235511988420429189998013791744020366091349400666991081842057708857853194686338514178783155314816237116273488705299861862175699021016300948104157689426138786594322047604842501453921377226097284948773298513761673474205336305754565743143935529766345761968080614597714645569076904660164642363340017751049176949695789198104464329341401572173732359608330946571548408662395213143422681214690352888015147613947686667556561158519492149328915572573179014261794771733428268408470716018233264656986066253104134214798571664599764805877638720463107369702605006871312021431532097283871991115551588936533426792508483181893237784868057593168697637207052825704763631358180685864247431429844883593038813699044965876062883786167192835684839705546833325572366337674114810112857999108465242288962298887385209077111524359128826724405160179000857082028116060901480354294968575912117006559790349461317338285732510585578651052732715620136145250653908061683655365537696317062800515553757311453990044720271037537924335724109677110229254006115707217746398086830694856420397835808971301540666809529205240459904124939316465008559316064735548338355587784585923235689769846181744174988424013400861524522707897362487972685296204453624420827878962942613323280811743003314151657358485509056699385915305058195535308149964609228871712976701144940568842442076644552058016162204405557786533765550400164802835617528978027731224285903412631541476004245634618962195726854181078108179413564733491251276844784236553783325471605800463233482781517958812185816046719504440302943718166435763967594157015006321754094131426515151627995880307737421773486924099783054546811320267255195256879735969592643642310152349361945322106908558747443895889168967081825549526965588569800401336486493082806952859318162864187338566612315397314531203689423313310870505553607424955254461838067850321600840257717395366550241763520469456244543714024407619663530457905758120500554858404174043214789185636490880509724755118448393837647993484092907936703584844665310517983157869932809097120573397561448581401220753799750411360474928422651159185943799881128304203985015414489142753446042833589065553607823510579757653620513430497651215503510044198540340693003559998380040821968806859018149815585301160729761837494594172852218436089647506791462846221591972814429314870990388608883597979720241797921180455942365415397779022309802981225798091109483955754872516561903241867071710860064383351686069636500878231998201803754452956381583822539105436418812869391710962604788695375589048180861170418236633266811443009603074610749125697411762129552234847294465014673315196028160455778032163813956077077425623888031230625772704285656272446359977855506885433161429367339026523815549462318761633690449214294787844797436291573484217974396245842655612728152623060946876728368995390812667039597449810481940597019109348041757965075706474934734181754453263780572513771701293287571662325257757027580448254272953052790850944963505611050480878072334138078041047483869552488785416998106853381683480832209081237923762952832167349728234086836690762152597938022003506624735588542449177462783737204039084414459007724900120458627780812954112812720235877841875513829002273918348826832780282816085396555554184903825342080972805318041822358511900955459424877043096709990545330419047496259611399759876660179816363111118464553009663711920282621820930636123606354727198508545699149439083479743529315385044113728858106392010234789294616975396185468433845953708863704450068132175141623353234576296724790116558501231083680061023488233588496828954468375352010289671549242195165535810689145185956283027037383697917262587284181284215997924506468824430056751060532533039469150348933633963825322367402384806201354892929645424100582648975501870159290281487810836293937143391077181737520213870728176258948911906110984267857848159998667077140294768536787159852733423316676987738181023427295617120201135087470433987615884365058040564702844468794387647246370467692817281249681466659310347224255700843253472719893167558467732339000155812764371076191985528336528351248943732610030453687079371704319246283618838002958975044389053651066761500905927489748484857570325669143578395315739306339289935987225372662328889910484319015207449231610477214823791057722838371791477126245575312402366944622944339088545208630816279856038366242188035502886668097066648412451286099799930604243644107586657934271312240624706501112585684724468077082551691149189789355408210479560770007577008430883078511400865047320875791396546875360204310462883545923219181803760931821697964538786199909904331940405131624556660106854909152721654235440926705444634684547390861118795393173129203459335225024333970714342423344973338027714507244095570746683689570339732979045835292708833761920086227783910663913900575954548003480505751275946982764305639102207065003767718650969227563861254169148674297696208068338438547043663493140668061022765329609088140160459574296944121777003050087497170267019898695971925508233632035273441721920249140645325868244361402146893867471949537597161239006748996109486494456736182217718561840192543807264530724457462756512812065025282357060462590623041140053690784764065312056955455407212838557620792984660895538205069785526701201148690127267716151011331020507090017102657084399201901088449228666646787137073558812984468920126372294348940375285056579930493614246754034068344812589755886137444182330822628206996440803710477128561812565263789082274125222197865550331080185554297382320989459681118581586945802843157008369889241135182276497838120855429480942577706754592656411408561152051440375957496671321775663875073609643682310491834919760902793913562630955896974769117016410552572711773449001615865620179419301284877592528295745863279981489804595800709591702199729241426483980522941237116065733356902823373041091151299505249896833031844805923529967485165241569392147564443556639335449795803507986630128805699250419736595607998385946088413575712755433031248166268269998237650576536919563678324025454757284751693818913900523168759625595191993383385206070613553713969294089760271192768105933512535733228352943441168214203848972137901537387115155000568601961469610393299556174334892814038565452300081242382286343322050351136835652161887213563086847228671208613843830807466859856246205335820149782459923151449437888161261514757537927529259788557467327941778175989821108228098521125106092571450376916988360932658056984431781268511020669803829983172869068928403162605798539835093452729138986111992028520335326549551926478824990210979842379196310809337325978936568347443634454126765718778730892539874474608353622585692654052324910712310928441779668907829761384911610232942736529802170426109600823379110014541300389494184749430804947742264729217029257387545366044169913041756479802970415696234514181774397062646784276288354911781710305157041197006314865038848681241942521461751716515882112719920361465401875497124159071892951987939515129912078604156988690993325793463752836163923747277389610251958854706408421105305706065582709967451422909275939757832408179098176228895004721199692375572204492533207930972407711140591106251950956233078726125679459395204895517684835465672933887188778325887119708062751119839750423302085897142584629214837871328592659606497045963042036896751337579653352880192224352773971081412852965961061349205962605497298943542732095574022886913364391458096182227064578408316178925329840124984118940501184347541160184870524663778192116514646759241713300643552426862373382095535909427389007595145523846088954766021905559555417468824425400796877140799829693680736052997984814924552776901706749859326934809415788181294494177475961212976972301287275473789566410183450034766303502400815927461479458736482867700810532575885383222456547894986579636994027385008620803193715384522134083560514352137129602476600206137184035241517692509260863718106446576480926199801372005772773289585027569052985353788170675479857487473254291342447845505252824000485372884573470182047372307540719255858959422408949979665852743161180772827802980948715654648717331830580619550601455730638871103791935945598932075871940837222889212845715329007661415386339649314937427566270530729858046656767477821443826822340171188204377813284400070450393452615805702884831276491540729065769519162975883182775245529271926527285513590067308026853468211952626637220596542514677702230233574058549948461520726744656030913996266095876190681921559105064094656256962587246283801467095058687121343575758812249862761159621967919576415467935372698949988851497750516734765047717591256040384519315700232368627059844162325576836195671059956722438705850809883132542368070961294215411009696526633006062495555152106850044640325587374882217983334697091713892253984307150355708357333927139047064565081544945243157896520497025558254520298878329170387812915942085166150351354622942657537761649852160026144544503646162138500770057442620955567737927995329227512008129300780002911668311718930035003813909851077901007491231875847647510213610170822619116020882539643683798628445976249070473005197215826884935261971558778316525797709270081986485568040050164257987261685131521527492734650838056760004908703638793705559536251463136172416409326358759518606604680795356767639492417585768157331502936993532694279392350203155967239162617398616824865090137741295943962074192836326743857594018549067549613169952272925874907335206152176259441079038131993775805862159736054722552491889518318205028912608929044232787209653342074746922565812881764848623457261369796664919885119528082956018873666992095092058530411869922788666087260863610645605796779475255211596634867068520955265291766404343670899814324120938562712221514548781315401295209485046916682526838588493210737057013113199894293911186802525961542087035423130130104828938159296218931858986594111130485090738066103185585885084619117576031839361429332833012590002232995804538106140054560430850541917472512639729286835133666803793845885926844975746052737203272123091753419649872646854708838619089444839115446613014090588929476677894351432000448396937876176497034115608543410911227370085215393557799507773124241805365286196435329232565053490195411116450449362384663253618680719203707851528749859027552876604623995296846843124086149587227026191742434453856103808961023211429044010583703077072561075466241265338786680292744879800058786896055700518402119571920858348590481090816344856018522482703345801205780928307195318636016598747196596183286560735485271299099496761680999540659640381008106943811341636445828326282468180269843664141349952176961267481080438617765827101072590186465432634101569676062563486702062046609578217797443779004240141332401843982424125122290505040622730856991819046482790679027639932050925268823170322919568417590281706420404945498716554116958518303437065758557040519733745151341521813760358913777879426060619598573001722854196366607706017212340692848620323039355663274345515376866511675488738658817494239447309899561592025344581762922450843646602903888681575404361866131172496283007828302133731695170186222857621511156235039482614879045675779106073810703852792575921607514639764167512702568259737882323712796869227817419077833676940964650258631231612238056308958955632691572337565445412889707709474037144138479211966495104976664063973010342384185052009270689500895681492876082241146825249791897791121414256227420027708531572704855553453359019586518742385391585223965233414856421485491817528202310380322645704178353500314353472781701002075881335911316201784377966405585003277046547529579286721171072266293417189501725022315489818795727672692823926568964394138616413979391896830332961273129529641754356162834909506324773026478787941691929467360343767657871476633428048027189255375660891011633872295115041738968002574557422405186089629433695430035509536843781599908235048663642718795812940615583118209511565263453969526462458428790409028219909644167501790629209744481595908142492774026841799575380056238969027586124891846482181846162450792236652177990248355498915250239630502375289055432708096381236401941262841440858619237337787857581776546193799247512110835661808726695457957056616307945434837485209178190639859465398003636363199709803139485861401985014451415528688115477946608477216829985209703834248567038996211391897521632223779626970691726553101066623676783248728608152893081991013389540712465952187007810888801313021503690955025709146438495872760550315571492445549134492507711777140085001762294683518171715150169047206009289309944566086813857051183887575683802960345726631718034019435995022147591831408998408833589796400601072811542606992685913183319593475144385895477052356542183503114112369563015334684528567204991940644169495293970507190592467729351481269147325963831052478153527238393303828517765415271711719267853405422363465575083969902325226958936060862904306775821924277179817868196877388452836983692981097816697175982827749344562526939913631577243904810519148827830624981670369827214703305679933001837391733739649329001585171537923938829958099691748185419215194685764107844882233180684042788517986930218952892312586158298749494331280029038707954675380119692931841217871018790778561827030049225759385252583554495618161206269289212298041958956244827002725230368241291467436345507408243983443387730443297698481777428466094102722833091764553924677978271468593923622689917135476040868951055369013813779078619119866057083052282173967543474095053678046860763361154468355161830102261243752158890670318873313699369587358688669373736747775717889684190845296280330175240749088399701617827936386789773904692891775679426483916741050199585735371374751367562499531123169075949196700112690079157902445755558251443090145180513151699396437844784083473147123845045086855317823888531963033403815095153797246030346556945941572820139059330713212920292312741637626627937808758606696169711055642656360081083532537459232916198913453202999287974001132342610827336971911129186997606202422922481475356077687555429623998051826383014333854584420710751534673814331025301816758464367817899756930561284820262678992446464200296969648269769741292227030890179317146913759288853746773646832929637396852914049611474414661879076485036696264087052206757001364463919801512256823595566226035651523455435590414496753357329584091405079733052887558098256640555386746245157570562722259553198843911915986296677480322070585637058331338440416673527025235843633042498741041150758531676697564393800438465497392892294566112121296875515352695107569482910759497329941068350351653028904589493075346731856987550945708523640864080282442639528416494701323889552372613911947400383518019917971684357966592933206114406404682532983677820024257540990547307244520458079118097896648665410155337641712769121115153641869351894330812672680244984344878039065511786246985084432610896132788526693929154650570484665657566241525005098686297512417389536641529310919520096561238431965965705279341428036770901535720073956552745104981766123803850754873071379871015341986400800479768302082916539454557521897646575915675088717799693677897248608344050782435993744389115214077266444293141135495758844105136293223286797474308412683340086291779401211195039800493805779934604022464887591168339804532517736278322761004880201423107816936273339304700591225838738812115240244815106016017457557831513675223628740204812152120774521187373615549391131742806612637170857680930224329358827567122496847081917081536597415258774956025724179853240646987246560158754963789694471227948964596584707914559862518580554308442947030402104178042758332703607960926727193957311924623837280452239312569307793963229926121128857752038737481911488582582326256748995091848966693240542228178503083436585637494812376116919073640449322827313850665604897202209011167567311567408075589404533348574478309995282069352561923953695585867592208748963603267840898179180021090639002015360098403433397896811207456009011632831469273860564300823422953187857570745912303356526086162243642356255253885212948267832148839652711706581013261565642430080163451289716744392933112084943481316724489086020178124838535679824426286341725588745779948698287332337981776836988348246460218197256355282602975325576702160083382164497532014952442611954220274467981448633133757041115607775082994951763161253652351767783018047525054249884073360815394352739441995423505545591365756578397202374121584009181078207875879405017911192508473773976681462458159056314122756187653510609929718046173247038983940413970796211678424870908409434348726358229270944859110757315626630119314422473265533812348475271778831515165828013877640803855471388758637040283805071397519468208576416995053959729217033980225304495013603077139622758188330419688184293022175997207159461671010167862044983424749688144426920227475975753074459683928944376666303508692286835714460124367472358835995879149167519029606256824342655560640093925927881816050024877713425208178825067792911601001715664486610959859118004633407486343784212607417584783845837413122787503788071226698216857785741809443696893027504672726550129898951056796168052244159848305824665152753863715003609450291709559705900233692398499494823341327930279659501095952742649876787984586150620798068584287157148268564779813910474456967080187402678031722060104654988742151162860652672899552361993068477980372985691801238485470758744403228390220018109492972866798836531853919867997064662156101405717905645652873087945612910579984348237496909825815530564504107693511846796613321132175857227036792522864876353938028518914937962183910943783318641324316439389996017370193489333474668904748105845550330199320479784241531555530489816429078085360261238096958449319925173310791452170389594022562012875382477502601918837357955749684459286103118869067839888371576998017294956760880333870855029383051303124557239754988695472391006527688466083461978550889486753419670673526473857554880753395192380298479158540757238271688303996653837147676648410503044171073067684302818716376566183155073040079139084556503496170822993834245978168474497957883473798973028033641096082654625240364446200077510631873114850577522917144922990721191768096385213908334219578697633816037722043736003045344327106329910716866719471020675452903946240065362951855888022119622269149746212383984048084240275039970045662600075890614290004261373216514728737986654860211433409042083121891321852073597172603348767401833720903380508617960463588038919775663996763402885108913271663266310305181672057147009958267753388808443203273882779462627747993512866148281180725718190670309623812681915650471193278041633125064050379721979198092002810655375903167568874315283846474465916600905790245474642334460165553321070610812714115623852035591359777432518015032579703472351922624117964598688148832789186672022680455255394388321900081324498810926854375351602203542335963961015168946241153431453542893853361155980960156612464164500222964307797364594488787164392735059040083486851177532360466051415540899981407403585380184301254575133704845446933307811168731813872514752169053254187996786786785933170462983091020140480735359902213446424186972886061827179740900702587125955768232771136503668015495110266723748956664556456294869708797428618658129854718634350985839659621509673159874505969081108283664707943323498620691896130048548628222499365619237478584758072682455223848101601925627262143895116859396283675791278857603671382088970548979682209882782600106735510272940544421029700818795827820789919496588346716678107333379623430514168155123398953618237777510544133214118934299662218039249353754096235366801636641549005194422502372382842819517838421307098563858397033833702078427504223612135809697614371586567565224744682013145290951484822550227709504633370695092660314798869248808797573466266675085345980092582527455129697156299032991583255341475840759250520688079993383507582085727569159920454963917180226257587073774344893540345996092641076420284692729178792127206262293527960314643733014351921500355477141188322695749071538108612757647871413464094627915328304349175603503160905405932075894661578822471536688857136746780561371281466208533230782160458124329917481706934555831412695693447029644521904564993834583427098902923704387375621403144812462690369098959864964491577516591908564314946521333353772026705105875808922301672349333094533474672206851832338969011823746894558947083513022964591732452783481301814384759122432040494508592380041173584024567959451698258495236210505182627770912035729441624064180379024943035375310669572867218592173000343095162338734670234891892870188110227685288601556812065933249190330373793245889152516926420855430360919355961344424067481161250861593045869372399696507854497824825069086617359681083084086835222744816125553236970604133689210848218470451422231115893437090597391905056546766163486408136328397703694587914867096062329123082958595321488120007150065936043670786601164990946718299281205791070071526810042675978829122117618390279602368515445716213706345901320167102783059229275292307825070668209703432877835354077594404707861741841988617276922853430658889232670514304400716970327355926547222494826734703630065167388510248203697429366010929925786218743712712659568463415766812252212009458987970857226227441528822000974738167551887224629975078625827323403624230793143858899980266464190145729692538473093026446171803983283176992893264835677886452964565207966954553649577806095584199237328243494543286423709161810249494962651318596938624869749873381409960762192265537311450232037754069556271755681559625874328491883271790117541496942921634066634964436989024630343832273580820844507768728326227016586953583845982467438170888025898885564034576239436623470153770836810864509783810286689877214212727135891108416409704782259299551696407032314301302716958056074297684239580168098906323713461074994704100649679539589626768272661071579336964174084117043001002042519916011748449872454583837550841273140450769855174794065612601476865769449971064557691806658684070326049149751738029128943174152462038015695060036172500418716631460190477656950514897176175113966565129181084698677405774642360229366813806223722165746401532083237330712286447960783459335055081670823761712140022314370364175291556364833963070317523231506363334953442847984005872430527697303537488136833714503971295427780059363988048411227391520378064391166545395400371873182248293511351192779105625419293699760011399587014513404380835393117586483306143013142452384446436180828238473374820245742479633826763069651792078601110432812799787846071217577943488024019966682824708396326605147657418396594504376034357281783867929698835162455252480419885998007879215221301822462242264213333441124669218298249335850694213264578882302014167788973510680951499250303404632755978308647646202247236645437435685060811491822892608112304641974751373162773875076650740816974515709826092758067114451413374541879409555795283183403667238627459709455578482428294976409785777377809467740499276301999211853376482870743546731044171207266228628471185716203336377060020805251441908582924376610009903155268712835743166373610701314771653468014733589859169731396729664950545766932409982221989108386354037505628481892258208051774728394300196417161443148342922328787512060776304294185560201783213478518094824549286274431633891789516752970742096123297404740564646623693118536822166282747810403294510963751071176913609033808656868444655078935409724491966948415932329641719049202448170218188871597432645015424090759647163784864258695123504398894025910398743998431160193670256334874409986010496796075540420782128481902691415748623586864072496615548064815158968080740102363476396977889472254692728905386671954920030784381098889451390767324562827351531045210419670828247202323638207089417675680354900158880901670213936753672810830977689097090048526726208032763104869592732005793975866394036834740938561603919778725196748969431149005802562266464566179833984912366293400892896256984723915652336157806769806679725050651547336877772059543550442004879884798440532995889716440282258164243169452629432319757089324241869109041710009118028378835421702558004958251542405385282713944426427252129097511000229356549753077659767443127907466691938346833057918472593223713675216624447730102867239791103752419094175997087017191836524370790639576051022684370084041313641095549138289380507515066308739438224126532837635285991074799637572735091313467863800732495440893578686402948599053257058365038145466774339099529626488942202492105397489664562864397974661645049642243593624968433329734188524261726922623003889960944851533898149360691341247424191588002142355495375913956871105721645626831769357179266734333474244716955793960636116256297125835591488573469932580263348250268807328588458466710810912927640818557469826278426495971850144051706457601794847069699155003480121454510685417738310432394369047255401077432705600815473962613526129946603840924423175103539327872950733534350846582344072103288062807667954790200055411326360235499455134861368944946130171413593305529086955422809734106816220223492103485510154642964537475103588442741760733312256082119531252954585795239979086465585958989951639954967042541450567344211936409911104007962213237955550053557500275303600486646681823464050617689852623873948848973771382110663653414021692649913576044959354972316824849328701340153863990342152283496552228239194653160101195836389885446961821762034613514144572252739649938077625088040012150591865545434471729861656550522354910953055423447031497969072690395216799680615392389286190507634292513338318658427359555493506188383657695761666896970673426998289106604076122920977382591708059314735858485400955601670682259838075996912861158235749767225926635593881095482168155014105703069399133746247270268614899769392962703046704215065905955338410341061442273761829918519454425595597467665009440526091224584592980336539347986732147089750814483270047354200466013497175761476031987216891487381165262285088894259852462864033003087291878571746804543698007931892243596914570921890292577895712224593405970890260215433661997048430046227289680393245979097306952230958225661096990336938213248843879619831445491615992895012588736419541739314500024529729148937512026306227969829812216155069630148957058034847214778040688743238385272380108149305962070447673116189310360748229869576020449522549472714606972088003985451694399550377550163399606637996229821321543905851146946479980174134421249388030777329918137827697113691438548039547759882812249618813820927826948251631535908687668239536292225310127785457060789827844067888602841858928327436025177690387224251158859629574886316293102221796754386361396609997849351448253175714950479880225187218589838515985511444697214449860366295623071742457195005406087484558046659758535994707830699154950454652744321843896124638110629506950139555855866963039297168601468103006272937259535425044316806468682140280896286145090708799699536186625658791137632782613447807354236307511209422828855326354242109432452800702059041011314360380431198671252105375187302217712936826766692051597551840757521631182149791204945702625995812086401594011925187177990019909531606859389107736007515648775417169166033525984385446560387001014872211933200895549804700818352464723442277810187368920904820941974823441245134460103193360252194006135146110525619654810162205648474999104557532890136880685927742430819694656250298788615432578695662260505293579410747523585716923889477030026401609509492183210976904301514005787557094462652455259457928817745346039420576081055171062221582270039750863197656786830717098510297905045539123109826051435829486026068663332619773538479803218857580898213831944525830108383306923909313594810132582168083964702145466822164587903574049291778327217023654798464663950493756191241013848059230851490039980745129579155436057979030914901100561690414269611242675801481605293621734830331600615744988402416948279158041763001196235546177290426780799975364677453504975558369093447433293111700048315583777201819641990872010545788204348069163248224964523496227950919334674495434016613913760435048726687578831642577352655647302102603180742609480050119085844179156540215637758032008303442606413427621201772011201057778794325769551669086820243209808199427196461284141043226310462795740203834759411346453861631507682764520647360678732528885273676919365843905096543834520905253611430810060170484335661209286899386617272917995592028331838924387171622004692747954263572864072347921464022460764910175570101963955636380585773338864858520321450502899687864390695379485137047394857829763625542478725255221242279966964485368894807437335224447168869285681981745364270717984227473210531025580018636717192821578747674173419320212159192758044460091387899947720885981761790555187318551260023356416499942131332654726718302138853677596387929734751143745479129747230975915676131428224278540053564444046697399167848140634627817680091165555858663929741830724286055050244779127996377741261514413369643786965406805052131121741210299359835345919828875624991529541419377393651552098278375957074365298784453943219947403521190847935870976928050297625981419836165399429017786991097165806589905684032196532210438836431009148635183658905998661170771712897333545091889406535185612680107500531454704425721832413947291321566579829645641342661587911417146333075712134977495082821061040902789520014347126368762605383842732261653300746705078076207142474095575216341736138847868690557982678052139267499718385319061752069846785702320786803350651027553347412198228894472507940153294130147551536894716044989618993553576513352866555870270517301783063439929181906676171945731478663124712558985280566040671550235897055455836011807262456367047208093116236453162035197725263709850673429621160619862919931371611112620117562278196889291988779841523273850972761393173206838277047892675158343472192852036003549397575939062963849668048875742447910471480975216719300578128955024526398134986344167632019585856724316319282539675266646548691179531775530621140836115000736660089934951223963468829183995459960653341512422347164558897083850622981741216283561909518790124646747651538529467524752554080705676429214686994118054828358048510527758418865899302655079903403786007491763656940703609356724860891279300134890943990583554371478018413227495635842092405549833493824312097089216601622467219498862522009462484729464687322191718990858091085844288296695462182965803691142666628339955061307374928653144481377794907660573838248496994375720109590777886694981193910005955840454951914899087122619876701480964441837510750808837187604884231281897245665833947852699879649751759521623321704743689789544959064183721963183804097902682651895485723385272356769192202751547422520611294130373178158520180715730109843254490509268836193294944361150468366281373074300698418249388585443410490326069667827531469208900492918739675649514915439338547724741809735800303271698133662448953280904425832114417219737649256810652548692316491752155817896197378950305416570687568191253125312989926215100876266162212579203446017841539968412221482136223456937605630857392986818228143577318411813786556871958847543005445136651535118958544931935918945938045323519900626858609740920101087125807031626288141441968808547009401412633122338344228947609222047355672302708176500555478513770731278593224525789985927977365760526804761987372574990652231506128642553890235863681937530412421194276374802763410029439691433603456226347781344643531794114804495311373915086386926649655326882287089396516768736371334890675988331924216225912644818327606373700776668765168431195870000882384370611964223628498011379272768486813986183601705315297892244968410259069965942942958689316446236034900902523162838250625667473412265089888537585729111097337147962755286681008576283976353946456405719367093918110196887703703920352109007668643737704062158950462504721299881684997522016336573922745552425798840709231246003397935496716393230186335627523236481669743852316127003994738505926786015774912094752700962020208606172303966350487184231371676181436406848227331468029381779641328879921815103691486686892859825109963969660356718620545863366456093557516094044100975068025351333177925559940854742448324066086222913663365211796926603418220223477430278914821187923765362653112849349284621396428071719074960884200248743170606783356130540189762629350264296754715768792822882578741305145747738833666488907862854276812105137312188729062495627664092391794584325757853882538223184130694538097943654748358735603425266418846907940513426840429828915307958570717786499518057864611861743706874242779518833280954904820378491011765326433818996663494653789161695012829685683879243224572444494007666692126646858575435195681350493079624570129152994684023405090662160394201438965166800570315027128471038685652111269791880102256771747768362481607811893948882226511651620681728483139244063854577445047427895589437269903320983849234888194619742074596218985532649784871884032661539795609692008063796556131870094249925446358568090410610294251722609444312747082267182184379121724922400885982274156199733115681426132379648884220302950454953025039942510568768945886696799754059546123418925955065812459390719169063961107154624258999570006051309167777905127684036160858604022758499456566273104438331780530802418806501772767924207886997863217193912120983473527865263086034985426716565191285606271792804796671365719399887450227527363250661462047163297635377067265015083649424474592535769671746835662642445324118379658867234074529638145545563715507920139953839155387023489893825099194714089664353999013057622718458829491774426542393517557249797049193546444193414410161308101392791479040010565355142003137654498342506889927681143970307570375137636282927058077975858427593143111693833814144870658504753876034106011281593637442407261698147246389680060186736699131368731860237032141379855497546761513698700374814688245816330575663881287577550079721709868895819093822016194669895068710224811648639946829730476588720517476588909455825169854231651779440256759868499050658692544077876448900108671889984618597706573373623303742410909684421478629457028140206691556840924341942140819908604273052897626727108538723003860939162783245053753414828538469234059445597607277948294246520336623154088252813057131054391500784514966142947069411190742457214258506839980837273086564263431899229878635098071543695738503005436781650895922122778374852483307447879505780314033192928365014246859366876908227174402603753729239344855656707762992680355778137676619452982567479129656389294533947709794130349551045872916740214961458520105915820716597393417174502640981803901072316243713136167241671289034839389433981110052872884660671498110392959452968008492632970110327046014068470193113864155426610677725682426444946578603379296604171112499174379499409715913246607556188738375298724137070207517401024516045232454097095654685116452229530852927737474417390546150433313523246896235153855862240031855721900615512995826609220414298012650560213313118759312476476541813100853935497263774501701920966091670177272578948881504452717114839323550069631285885533749720687106617054496907788197602961227632147138139083595512823200469691919544158076065776181553123099223370159641547999648340559033307539033592138338801196714624123948246304328732625546448189775524834027359634360085463952426770740652775886544704518412092196698662625918401741881344269873084413265632439335033100336660464413988996283449038019568399701151055270018962865966448082191654167277209492554619937658071484049359844500510335576153466415383784967117608189573882217026321668496041569633696757066886600091419476846393619027440283126139305743904239586224490560982845494467259372251686627043778154286641046813967432325477596983845082227560056381397259648283585908256844998286738333983634016827636490776806069036335031579208989776861222576601093828457933022572555855071272297452131617410384313016486171895981886429023003710865051251209896570950164510082009982449686899923163679703281039437338153496531093035527737432697108842861941494609084807897977229775562277350467606502394082143102432901248815670325673173466923579204699948018247796672161198392800858151750378663180717044510940332128432878875813643831527942724704640261546222802281610139418711201197679772976924656012216734506154056896326327351088203484407829343053767941959815636634332171957634892182920501973776312473389113134271986673176957109192826088496420154728709251678511735998349956138942936151384017874482358031030399358344267953776324817413112289925271881721330024685736916307228049909619798627517769839219634690084800230328249179689779789999140398741879263706274085372076948973778287358619204100917999279945988077038475081281561227719992647111275086149577142483032354465847125115097667661683490635665997657645449027777558754582683503016246127091612525409338482460453393228145463672284006826571842053562117675609130869869043372970838841158660378610053642417181169133301255361466402143766529109439019289731831917087844720898686414867199723708247014718183456713481249312974953957466332166408552987606540343351553746337712844553942832848484265618558438580471921352084013246231085808575733120926615533949156102671350660321679182129143278391754691503264446422116984898498873369676482140131133664023887493143593014371079960416089361885111367872319988115508436044042703440256098431506737676828045543961703584429094500995697097674097314981981979577945301264014083278165410603758874010866664557004866122517559447348562603016030898141570073636966700101321677187923742174128288704620769157921249773027470065742712557000259926072991829930184046257726433785244984084843871237308427276515593001576127258413188621643748314943176014267170301623335212846530746237748204133063328820597593898004939946487089552940888105628817260077284292775439602438385401852317741538569535238811110891644081418248482694458177118882487192380142021301523101821185291870917779655126922477390215378463799168744742575169220937494861872809274043190858497990557407674456742197031775401422723471585555103195131242878900192332481834775069834287169557363627723037265393756092647731988150096451118031764877778867459334414798646937372363782005843124130683764748722483181014550657542957190953132396264265881255710271218193474050468585293185308688531377559374961778600308740108733886877522670238237164517030250430033963434533054018428132628094512104873975520331860528126374881872200951310410114063107747183398160452503262061648334264148934481508280850678919709584014403858435605498184247920131484253262823590263141611088253747148253242072073438827196552205198753057180692502229992955558367457967548850278757293538303770339347741455518168708564581177514048686016482266502698140354524495648619439563548672224973811969118503459577004601556232059714502546939795008239538249146187525057543637122373942626481025133223836160237095339186909707504806204767879085631749892641453901858129385354979359580651187888661484318010444637628318877407765508261485038433395423163120631140026182673913273682396578308109370991854597184921892195978511322598393944334603972317037194244695779645632237410042132612059936192797825382929405605817279208655723016151662209291403100360337931700563290431662784340720978686837172082265826367750874563995668121111879724096056826929631739410780330758027777247396700932528999412131958441911282979916675081135375437970840890475448919218256736297467932223205673145990700496291861749122522437760268487687175411562513036967365569831808819774453992097164547109472893395432912226845747843560441939883069783347650513026736563183503813990704485610796050474638222014798493581442318516669813742756534380841134798637054669942244971539191763471765299907336823778873670068378551668904218252842962292082242048842969217306875671472791444062288060154105202575647486446934275656789491613510943612149639246092372463439610871836385941242537960293484531264874061726181575761863895813589138708100636490199103226759554350941505568374179458603333320150103302183319766877028651510778262953623630025708685248307264942360143414543086346551316053029597500458561311009515778189613581554514285398623991393481737868233928325687743215864421126124922150346387570231439401870497834137520525664886085817846142584434002166089145578402382505972697890840894234764055586201190506397937488959927632750893956334341711475564712472695801105607246582448754320360949032357720972080473137369440380141747502526274104670420540121686351946087084157605680232973530773643320484295436437093151213101618253912555737387594270031379036716926769525487186169009805530168690764010965852206991674721481964851415054478949064715602016819352245004195695550110277927160224523049593175831338579499285914124108183381741060707241216715677728492709054920644627509872499213397684707757948699017576208190057863439959232550947873162488795862172849773593599661031016221210182551138887652636385917890922796797903074685408256417527543104751134705121707335248702420947852357139234614255639842405083053784243743306608137180599799229420063981552098519965513534448245919425451771697784907055984047078972183820317327047500194421193575212313130200570798720971217427053793579980561463278325332969595772824531033422388047848406898100205402450763778032808557923903346533944435729347770969367229973528758412354748836427834216728377549644431517532518750681201836643710053155586840150725280589025375384848245219310118545488771552400768502559284999408393493313680178493201254394932359544959643375153802554077293950277258942414420760191183629443713686091981563512670752124026179644336226442620856178657211253135016277091885898263393520354180684577353258970362772692208887135127381916866888214988018888566401663001464757286878954606401039671376362147052695841966154717429962584802386704721043015132351814156431942880346359174581442987550127167357665692018346718375205351118754934416071672270095893160528619489413209700113952946521376928583397189969220087012286227537611195962326165200025312694310777630635651933904711200132933258452842766822690863425221547212205010052882401430851045972830325047128913093991323041934505229523846924897455854446156316370524222097879391880933383341717335752842177889848815435624832568883285177107452253093947264661312896953611581558909202282111359018712114892725803853746804951101832939177980278507558889879367057734990022821210723706765807755806008615028293954914209236709366213954065171391598026659377350295019996699049903401196269292575822408445169525767011782480678332407412153020184115388460775799957954308417380357961226791042820743264076603355671205096499949330114563552352218044942846298330008567253073749507016909339802419770995603688489486200738232134145199905125385326907490239590415455104448693009310142004758869927722516767021955994619597064510244487619547391671615748895264367889264528105156945391737934908649327624554899991071585834410847942721674263632489476314119183980643395164546234901091425702281426196253841455507598087723513295757368913027280991458415083821394538577795787083681560116819020160871687903981971079953721368260442883419156237923386478850769191119490020268227409781469840754288921968599441444591511543767581548911349481847099063946179992888653132041933861435077532720328064621303359766190235782518551267662397384580454320364879059965294511753603872394560361028015658672239715658353161579463744567192050930503216044837055523686787458315187022974821048080604434695384699871245002761874935797724669140210007782533819075166246238567295518766819968946336281033430072467279924733176898371852163355153752713151680441068021538933466544786150998638159448047633798904174571441985737418267213170767027511569113519405025971294390317601930389328735696496099022784480198185025459722822946872315781370048602742489495888302201953766478488365426427986496652753334801797803900101591678426141879210055976794950126617282488552151470920924491186192208846606971479906752067903563214775489578091486496077731433108745569996451804485876806426442525925292507379257597664144536802098301058136139014316599682617947594861034290405186717087882867354752359267185747295101736889888875745277444704087934479857360070843900117938550186413830060878294477120013772787368705289446051003284725194628946663477527282130487062046762847094473493436991859897862452036100176485256625739794211643456938712014052470069217758205916488037426190682160024456999145044312953452806695558374937517472774564035955028822895937809910833081672368541289701276696083650935110657233623505444062822190472308294967197677925007963336568352379793898578832679185959224262681495811824207052800147761937401520783020762206085117370397397062488170673019460043019191639816959810014162308179519813149880880840969946184035491351111295624786390667020611731494856643638389254556700268046211578832574883353460733494869916997459022024736203368591093525934191801380241795945751726381911778311734629511492910302418360703884385485734106296162000965069422656032133335276272758720060699656613177477967831875239266069440787062990866771373785550964373127672778409488214916295052206286081251043701408555424440815411633021365696391201792179082047990874350278787566878914537350751039470611242512872021748275251843225903309351282883211579050583759743905462206345543226877271876002337498065278642661820110334194296821049245627987846007094545745656618545331415256804439537076146088842677508780677366403444806872597652427926819756945304587000964976761611061205480781675079626684509254132736337714275846748429692603789015427832696627383322026924132065459156691496053365682407375290131305258246018120411043004840930758231209609621950672248088267862996623181096480068912901722796026611909650812045749108588479544634258776287744665196119912251454211571717851571718361488630620532784729231163926077015041070751786599953666183674464850606133423764543476376442076163080088898292446195961735145936770113503982212812406213525449802191381783553741420996937008662612571514182884715771847407724851780796984569702135830633473889968400914760329018729294791382314734480749963878910531124888003525907622360382598846196436397341499744402460783495773234536369892209929450663543478210760751896840458817315647914414140429856765231636206897691914983476199305996687567323165672025898147842428396215743613440709761329907382458197095852544822900136311909167593701875667761708418471481443677596242056489671567402109544050506985938546211828792059522967657029906245616424971832076191803525436880482106299882842846749218445662726843247454846322225309042224481784955607179428053183850976037055892900060131272548499924455344000329497017714705621491176483466159444598476075724917942073774746153094300487575077755446748113342605542215942644510142913632348885457038330437338930118297115522573811856497169436259966937911700581937620946647486927962761581479760245100132679389508609479946844870406452239526454648255559636409214921696839129404362088358375869263196442230839426992036424060437455912545766095369175932812910790379836493290859843781068523826991139546619581794004736356535443552090494649484096042177823365944013264666682329962847893817085052568660671551783116075567810503162837219331802936042143885538602359006316825502132044576413792991772312954339738349305534766943320544870064488825096046700575212343610048361128586582778892170796821113253526073156799095891802458358732609715170510122369681329854920981188225665170123360800603434467966575506232232025513176754985673335629972614820554166096401140872943077174053158032934633161713306784202921523747123060720959258294488819347384390476169101922135989337480665472520368169727836233528867337032232949667581593046904384982312318091975148538389912121222333839682843987777400909309781402180204782042818357178636931869569489554297346563393839374094537866152245313106470772388301574967229370666292512483657444411999280727123253833334232030215144481918841780472140456835718563500156141221907655326241829013956883055199491383542647456718826851987958732121103509602556076080983683641308707045927059003875475047970873125374555971606998276598643712373024832100970455293832532189096527220856210541242444436376396018956185709406462657771488378792143138730177287011843017192604618767536161450528150127829361681716365232216099742788855773036473068236872634177203344481370022273860308423655721202007336806042583711340458007706077756441397595369851935592518008210892818894138750102964174079923091081606887710044393385602569646478455139840518979160753174122092213412838886123143592459037340800223311477325184535689317632957694580417775475024412818668254022609916970742070536587713986572665658296784803048907581034498873553195403290222281787389709422104239879848228041097252965264639388872704358301404269474774550840314137439029645027856098667917577131080423569931476514703372236420467128703464899796199450657502770056925340584558108154516516497242592181106184737850299024054086912975984989857167517117860886720037334202671483425145312498246252274970659121751743891348710715316015654654526803315979940387731555304574988454412298665376380457032845258395026080674779849748357700245906392602583567227910877897496070714113145521510043318420768602093473542710932348942698563703511486427684412837078407081816020374736459424466150321502980362138803653584293908315099960485816128753707028002090331448399471994630615604979199427530084584976955907393167457777401359378308901282470828872658356091424618567982455555868217140405581656148665144480634056512610684126172740307962792680490576957335842150108034981344206842662183671509349136732355334464407341706669611777678549183983421949607509917433419529099832297312033820085219015859808158703770983950349068797015252745257600342387806506843667048751608842511277802972481521011165040673387880351230970177033208405175439254931531393551997136042120490383894115025626619347276107873730676595252990738334522725285539683359781943847717525559342011193158134535798531470623370258471724681585465161455439957107449097607666308590693240314731979330876614552155463283097852819551459280735020125474678136165100231312995120602591070286032747463577700465066093636537475953039855154722766558887143093279950311530529365464541766437657847347426818980834319779948638137620208920895075204412004217668273830152002149827855837653170161936131168323625560272046132880407629498051872766771396798283828529683227190615057774546916462278204684345173241352316299296970502399105670531666307176714592518652570107570190166034618495725902994926157873073718822006165806188438072491426352717216676294400631181701458501374820884276296402404595986139095166177337700332619901012711529632220829705755966121142424629767284248932837957010075621080420278971383294126327495081287606066223287568171105263989434462836086229467360620532765785549065836514322674388634423237443272093941951629628064576355563015851056376986016790970672709883791863864174371192391217334230010357319554220584371459460285081478435558851064420927051882845517121575171646536635618421273123345145291567432506179984565031847623007771265299407942023534469697926914553393816517713102061300768737162748926234824098399991643977727940254520143808864624660093133550337648569447841892557155305028348065208856488959600102432439281139395877204073728233879250883394509527707671566061738219325951935669079181282056079218837298608499995673514032048002786131539327576135240703026205001130353756995851650199272182069648349755745771076637998975173291509944751052261946426621923362732724780539125860352430013174436191516974270859721274771408261569928015153368835092356070206345298610436358061602213149169111260235385373161267267126148882231021558387402813744654567159458763908846333081449198060451441113947083742181283196132228412060381519724759156310244548973644481629894255864810988993321259048154721080252638248211166483889083766912468273435433678574090256983416578709184029857161802669270447968890584776620087549790160986219554036178351010088993919574499157049157479587969564576304328015232807789201769030549464705819459864017507890047816187581232854743343187246730054159568262445960752228533246734996217100513803529337168621896806442835790505513508046169076112601768800058333190846078439860837063570461531824113044736320465404124216815698286264036392998937155203231646498754238350288932626875691211401429212741018500479101117635507157339402322936857089263177814365116177157578500956906631215332411848487340806527618226910849789620026478769216512741996110358117136518427203154841292317135733920891648917430908008495326471081151607392318109244556413990463680601626953634222176428447513610725530142181485791066543279024114037170902517989278718881972762189524194944529302185241335194423945614304119902591131004115544237870996033528232461248888474581203901197246701678604742722118948860098882342646783745161848776625304803094690617683077338065628758110937166167102731489818318420232911051239606164895069943107489034132593190846397237384946427124004965223660202300418906843278589322383868106163022233666973617998507638147242610734415155645253436336116882123468758655853992405279654080264049492868223958761605312088493014112538175257690112835842188405048169964216166311333725674746343596204981358015618109763773697867557908290843715104016610044593483735773846823997201655459453191591093873126906820038531619221191229009249901140831083295217163000800936459462714836527764813812881604953442101568910069162955097306876357274132843662708751687534746318670027325437715318253960400548074898818494907615816098218651659766647438440664516157393253203930872184307585425686518046937963998360542231579660816408334302729031786679351315272388990635443542074631073105378708714458067029199157056346496283791407486474209049540059911183644350924106585358769224606721857569107347170345514841237432331314276933756263302175108122514627116436238689364154092987342361924691492661838117485790783187492554547722198039533748892837715222466215899014874825626027291956053064610197999619541130912357556631950648698630132178807859678190083536466501982664939373368768671360576259328584105301735625013931767606060321199492456091130036667793401673395674278647871606272272171117996763207594671543856219604230861328829488029448484465216334278178927628484970973701622483827935971763000731807480634998311801953739961241452791856292279147667984476943279484024291126512177261061944124557390675722152297246219639122420537384836424989801054451873228407132501271985847101834764766529883323394866754457804026851675033469924187950944238037105782964721525200898977296775625208842461650702989883971150898466720077576701309233437837850069003401786112459097377485381284058691674414457809909116251735397973096367487599583130638491437862771543091048802724199575686025679216450965009597395484177331845635703950197714570363941191757434452620756980058940003237915448745513833273742720836546261001263736212336329014603201465685032769746258765605013871921954496964616946938682488937963914042741907500649693165311476132199135059313994677889036086961027821936417251009961173114887057240529911065887127927979238910714102838939996216101494457504599586336446264111942041835557751983415183648242222575170961680913788868851427021667924397686114071406386341539019305872111939854542812802451462661340074080219996584601745265305937232166054631541672398904664464393660431306851570689515444908637311509464253295085260641932051361073100817211573550839829013980913334120345210194997555015839820696461465212096769352244874033589207393801608147056856267656571985041490824607693284660716134541296422199825195788810831917051844080855705935263708960131404611019947001590478708020901306720573125407363868199259508628969290417844430411798064486243550064764424593553144185331018171391988471016118211537951987206834831316509466883486070076738685749817413745186441336047222993111245856077774636303193018346058422656517134631230232950739617016236431734218783061788871068961233251041757257424937700632534086156941058107836084527051870401552544795982427248493294608105047122047633588993776873298371539749555620031962156028148789961330044581402750819029224553179691670336279234451379306077286620379597207091055009343641990563519754571403163976604418291373137755169975784452320812519900250789012148443183807190437659799804896963998664717649959401702375150667924760884263247448428434078310024295872150666249958531617604869542356130386366448226625960996669821329423217047957558871909496036522356635825858326761617168274681241471527175611769765860921223868870945246503390035763351006164725110469311701058149925659589500655940153570176041374088678303292777909611546699971297947487555017148942981603930106976098872417214409125102900966453039819279639015435480243979733290309882593004568389461839359192801404348173804850160786793307548147992931032253604694774477801710255892672574101548459246110591683299863451011189506952439226250808436928415542316691706518011595313533896442447166104526959474687718565733901767948043058017505022958485845047632230597519481403635278364976860799876481051940004127152563132657173012783771467164438036307972221553061422581532715048058476293839157324973403298966340059842146393541171105024523302924067759229876591114793709111977923899870877584558152126906846328019844041748571090479455507263759807066768037009268106630312197641670403603530076543699790321319420936473224380469766705820258805407326671989669530098585109629408840388506960841587997865823461502953281342924876715971107807762082509000589328062908231542152204795193167650741891338816093016988856098597136318146949978091343255595469879803579739492796990663650721042755327300371047188455897270683783188084112003588233336191360504219295018388961695109503174414675487957978788139367301778415651038254866493486714408972796395938175127887830768095201489273347191481798891233925058111239324446372235893641201060921123270511399219009822705629313961000114121221278828985562430896847807537676330851116429422709397856503853056310898152712973262734452867470256317037267618733218876023306838705886139926415083387766222967501715733115502213456065441769948981142249042596115515666601875919063392916868166016658246973294183983510651967167850968377368279704303767018136337347212277702232003700725738886305886097042241552422908245276856379186029666784488622676361937441728079159407265367583725279936308291762689442129876139177344487689068627436868700806586831312859897899239548067941972459648162155618331975182930872267916713891265431432155367061620118045470570326688425592595705845613983982908003426700848987105493284320978625983655967290383873403824208348429882501598124933244126548847828885598797908802527151610164512277475466335821316022944001878849880002184914232916343604770980143539688138499072095844624895383195635568592447508388748149359134715987546669336189047395359903784781721142016111426008963389968483948284325974489757488973470751759389724758427034650809812952684659238210916131809017473385205065649761370830177360458162096406409985039263843929128874527625130636966116745511587890453987796281690480894021371916264819655814566998537533925287255566239754937982505089459030439470270642865945402501444207353440021579915561265764148239753060924801285463676666418836076924165400529179781912991271593726769296969808883908819350885430000427090017304756256524005250215341723984668080462329065410379197068526142033699162472210040779487236300071523472190833695962519437837400007241047311136739889355922928593941336918615029831154345720990768023629952357633653565198910320140125659755660337523345264078769969197700759345324963936353781752112329383514044676831295993993834611927244143672420331779764173616769237416501010913576779444277408774171835779453201551025109521607686124846858554510354575881935173186765694526766333729599710464953637748317283413151793704281075151872603636901556539704037910816380011157724031878353109867927034616674144855298746493474996515991153760838777210730403894374376290902003049373876365083247351196841670050473184404567510217210436019646903785886398499235120738051676885886976091297723969443648278955914155368581038464169253768594911232015741260207727790866752616486175055943617829829554367130059912502249767879140646000909650493704980204502680232545156013595738864404779312843996618611309406664770929442355079613965028914272014333796964399097392662821066485720856093155763879121961288073301645968149505290952867221813640725504248919742339594998472260979558014467941985588486871813633498940026882918088413999499666862457668214833302360563821461421909914670591516590600235468093130601824496930071054487669326107589840827024616940298375738150763389555942582019294143361307809085735636646159875613113469699740746982740672636265443361820319857044728727043620917724306823911373948440824838923568343923100544936938894020064446573713640995184172527677294263258109672006992084118994299375498327029696445795720849759432388141281018219550099072396119849986400163727927805715734189866094124950006364841558323347326284124013593065829821616989897559976394695603390553839331104160354538675510461410279330748184486686244793444973302661208121975443421534843651469237819975577392586991968961828277543143957756011242411557079368385648566312902453011856777762766242236623318598871048834706258082890824368221652992936905641531191579709426519566504647813625215724761806575807424031135259864354360397140411730009135812919744096224074597474006260336959065753505584889189880078358454957191958510275901675189350482415071869005523500576024246834692032299555416280067011881428689392614405347283943883923632198777952477601394293271937456636358778991489951640049553070487287444610251636838901736777234221379605227253923430135919196510170688869959307185868274170495036367886155776711529665455081257401623120665992059660215644344714679668330269598367198422465272119356581037239599507883470616852155220849635113382681462254546411124166689686161487929749114927188536749734899915196580065721563376488144935905524926093874373302355415815875463104236806113905519113042706301135091457929659780299592025256910145890602851388844646691334701271342072467624412951544602678698765971268956175797953620534385604548805074717027436530205553082753753070373827673032497904843599145644981893447585346694995616251598483686344931542518008381556955382775004124563959719312226524511060179105938636080826743003198322589583898639570300877245568363004904081432886833532594497638779479583719939259566527398848874952971498321653753293084904727933000331090472679781338088691562324169223329251009900916739323012253864354598134521573323256825604854279775985691093386663583850820678858678945121922562721334912628543643252297474243789855634437066515396556235925025511680627826728077194828103697346868913374821180773341402277808759406563927288895790751915149219135261569321338355927598463023754289464398491797224997310350760878218510645139017357950934704377326754613471483383397371976515280931289748827128916853575938111187474434121004228489385098780108820483353161466529172374578816422772887988533542929984716068675560016864865133980205841259743881751504180856759207212349672413404550839355508920589215626338087120543479719981858409014810929016613964712780013458075603775785405607983454976169272613752979522376133310324853239581506073124486508076188501543345481577268655926506578615783958141124084206539438289803575112167143491404916125066410317040994471099181824527421931204508329405076224500689318414982399108055558772641448309709962143741651683338468802247959112483136034057663028371948267811596860178753010078032404271157614708247018653462721874625828368396532823639083234484642436142937683349575078819542194838711200376656340033256404997119718962131548291204177160700790434999769192692290525911458032694994052246079426556036582101929066708519930023891006744170057593667200634107269524200024190355774567460807543447906945019483802178451919178095772129758360507745817073935296280797524165062109680564043522893653910777976409698700685077965083102088788855142527575653739136610604648519149952139449028998776152475766749420151967712960541264217658747678386064045605418339410257017256343428043736168564823882828526807230694977240244596108567698268277114546624060987898104533275910001494362635264426678454192333374768376907319019816620941191066424247067242458752125006568835015122518888598813513438973825395281176744776706155764135388645131537548031626017136279300467138359684628262948096309059855657770329502205400753834892986684370977273428151711471346447491463503502630965243735515435478720937431461357089688125258046354441444718295584731259114331419317335841570682640232631444989602105225673638597198707651576634619083668154698670437931137837480011426875105145004281192405232418536203718485195512157107506147937391245129938192081623236073445468864932907967120691330876748731804716782166151748884196174679260477736887902868976468353821443869003030195527875129234032479835642770025334837901650608235214873648155266202163183313227203974431410153248385622682070027671547425856005341106619385542814454430724923831094794998088631093851569412547847302829241230082107573423794052913607100440452021449364969177011216601214775657501695018539639958101217337810714872210184216323461993621477318976482752674260473715738854991113550793236171549211088349239222860709885514703545746784317490260534425718875672979245533928878856276707808172937050369313452646508114973277525245142998195250068051142251681575748096603659055666243760045743817724427421506625528707350839084124849664706343219775736390347626404745043392247847244540694716731805208368918467408716995347839378228680615557781485054479903204183377935221471934989877264586894438626938458569913999879798329058675893873076531047846940077885049036124976789363058858180843436403777547866650847904529620130399787890351784760644577542818618080620563770151359390349137373545948753678295528269926383969017717673253801189266826234378345713042679753623852484703827749686356779098970392095736081230833596172247839356831789152415183432362405240890294567444431855377130223354879810400766408692381468429903084784016206732790632725216478606222120842795391475215565617846305977479733211259430335916514094618499413049802952418192203668723358481574068065521935873462942716593056644590698487955947725464495497896471359410018194339694876341016854097793807135424749011411519824564704575855514276330266050094973785382309331616358999833548126879906792318511287980359279006146532824571502460226117498221634559623249355643819908570906028161177091567339271673776997447648892049999593804070772164174068487107242221510168327109906701379477086345959121119836382818663580249688497696085699069299409103946918421944734561262074450774090865461286324418390058494183805910007225180175998817573805890421063590445128007923815206864273102901304636654093786272667375334852289907457725032201901303084277041551266653364520119269356098993057540378098057500827653449433311049548446773028514508388557378347864505352612752949304015167246762792657260044946449244454604777390994620915648752307742913870324649307409053787093913751400786888951291154028958927867725509727350714390391446417532750284360570339299043690854728333062208009362346728959211746492955841460253925497673592251535378270879132275852154347830675300305416693276356348194918897156275265835298593082647156432373140242817117109703723167350291722135313936602000459010545608020941388962246586110389033979505538255812851599172983441248604980523871281179767712383660412201240782795219934512261150688886673847585583737334349395382145591918112969199578039520514307142639335743373512682250396653356606888577703555142116541231455741743134739700260196285602984636722407180644554409244765005750780361710299092480472137954854103433986535579199411176710308623768387386832079305427994927933136155554005219319156985810072528144477087882744015907912850398985566793851702740376159224394856853733508306975153051644089128353880902798813898002659653542050715632746654374005229274890834953412451082536353513998218912638563854523114220576129848747364891492971201719707758859223579963306197551766183888559740930867306658209817842218014324552268676715585113391328218500127193573785024063526026508770199419658086518718262042256783137086987644535905043623668481195697671842973580330504533929028335207910484319140630826807363091510278323297517924893398481996264749605250542682459631424975554786702863698382015822383105149183900512917621705429905718798554389795976132330921487511113656448167296967464677952744184377992454883529157033678761679931206860146427937905249920087463672608075553796356315657512658153852662800966555947686292016687296636259665413392333171719271314521241555090042184360286600870085483064157875874330940824912639746120912265703086042245615922545548198028287597000557618384577866354968871916313828909972501720786572068926807548260813700192529417616800202252366919101214229330699848761021707233964702844099623612716164400392132731702925921188758879186697946364231732272892993777131345874667573963169104345841751419282370348459615370492853442764138103081851376574490203291464320385755030415099709759121236807559311049905976637771055330992817715112537453750552773488438480093445150684412631530348381460668489823303242933918285949968373308126678696306525283483764293843667428808687699776288162110627193646547726414087859353285699167729263932823027115640710465535883373295836226107933300762694908232628640931660329816547902750710066823750249059664334961250028965579501974085441078500680745208496117575216194650221029293675488927411449522806335051678604104202944982505288158863013183550282870699314469195505601067026215153118286571925506255195141320568902535230190564437607980670269825717121953867540838003442108190207760268818643871699831950790107650911117446736121307220845763636776035540681747319915303045025021820920420947019914507263913163392585384342290903086268808926787447588454603625133341513399133335214167024219481021346295976700507239507416672115015280898537303840606693738843094554589412515889822317152291227407643241432248182740484946465679186780955177812473747095389102101711978758398451033495125851500199822346449907857198647824028539281663030147206294085854141853684268104233122189425764348974520946823142527733154319546373452516283563262139463180240920720710239683176927472853643029120121534523582657666133373768135699058293676075374623692060812647965526186808812996239707432452021112257152979413621503002799883842841259280622005687340364429688154720323829860761076695238677100166525237859114762330478680069253407111041385291656519887097235826101080553174118111752620132897350343324806800875428169316733514833154127540095373864225870668508462330462527610056108255402964229276304611594361860330449850320046274810232456241306058660369756837960933308498118512574140368990925487241670487576799257475897455626505231046769929554400673454644403671537896553124629388068083681930126451732275984772528077230835776887474638707416886703404951934313243083588803247517243077210824963123406507838936107438921313552536295288209770867995929446221849720066789481724048526464886031029970347549428229235790882680696628595919551469542013771481997675475871940761598363724701272995635085175825825432839666716743615996212950350154720096044811291564638823916654519843627129967038741237420065009556077958149762212446012399044357840118245577683148691730320757355887733735171941198803485638505519730123307483297676034423425430141090257369645518958360446524934956232658423073457261500820165154234392272360033198730137011154553055252000339642086602639835552378694529287460554633614574532312129877655510271839164131320987353907653465206387006195107279982549971708662122827846566480795134602886684021121054456133866338263168820490843166513710357566670188601809709444163132271484187179660860244476281006954697947522563286267579211563523639640129490878469502648237269993732675210839380866490018946893042334996690857502693684002405045466240820427517364162946591586611263037301640816987720075760121967984551554266292873720292259772365577898142517261906280526921340557352830779744385467822517671644100720459529156423066351087330891270084780475334151019249418569452016425941854527243931565389581293638058189286505728450232392187974446353690896016908178328474444238088835221291085230977726851141118551853357786492195985137276294637250952316519636577189463668799638165077048637877678770413902415094033188029935879144042420314732133020426799214673727773574387415799553586038498596538028883438931874824603046835832107477299578710472664533162250010256367851310631017962408149539658247426265213984515050284343771495922046108002555130147523856336927998950358311631197822682924038377639567104758075461736675059993528412286500924908665821065496359245461556100385282161948365989360900181516134349158652882785489680478562068160498932458913204580086253997096513329243642913901022902679691988466653740370188640595243026391817476273000521929720444327792125694663603938301219889895236825894556971259095881216977026766244375790057404216147386379675663433277272701564629158543461971524335935447527853365162703846629337792393676973382206429914779413266873112687938664092153712165027963453324927369559632971010001773525438120708791395788009885801556158273355512036357553815697851418879717307991748252793224303620451082161315197404096446566676289559720708406143315616834024722364673324106151251255334168115204835804295964795554981028745119140497153551082271815595541211311374739636488709946408543195241579655964346626535528083236450640507883267315482944394236271818096566666091099583989824886622125745666882256833450950412172727890743639009170901182391009044839735693090556108083878514028491079910011739495391142140563801770093102442651071741959232455764354015631914710600250142414094411645999051737733434712012904518917301665655688516340488203136172310696820704226747812290849336571382465172559199276372661422769138119871602913704144808755982126972347900988793027149060866827342085088273927923686534038090753845285788019339029862921205779271603728756492954097895918172573896706757531221939580516697943886754065526050714576159240984536524936976242550919731948778114277354942604631752581360744560689627665785510800798435867788279037395573836153636649933546360782378288311751704444253967270709061106314359196790001848620158729367987203810281523699789776414062894645427624333426058898824384002134160864431067891674160013844207463524393627779568495335382119635295349685244642684851973251851308112562322248430153705891796902020133679476672715578430884218429261703166059206045916963112064015383073519845746028001824688818017670620921756500214853866117449313362353765149607113916465846463602670434321201136274124432032357591278539511895754445056968186249213730497760305623780548499465454601369922141794143786466570825877523723951067121738918350239698332807879424135373172382813248431040886750016916084429333434371105114503159644377889449037878441251061958999994683715020889775846642029045027885111486122625863107900546871490257002721721036747931185759383202504416468368279464303099489828145021321603827914044441643866485529649115643287059937239795537125316083051054551248192382199544404908822896851118728186630042990219679944102578397569237334096370503961876086522062800074679778872994275193497653840483010561065801786186282795120873917862765454439326406290247477121739006796572043432044598569041564166142821051008799767727653319303824756385599596575340623712827529187602423804642418755943363167846230594237994449971377512291453428097199325591534183247201737056933598290941378047559140829224542879896898719574560795129814029452920788042185707572931585487442895167902974425487933259258399975022887208791540305198620338226779526036239481234533072409689318759507199678177165138151813791569917056159423596445135574562085794732946442352720112081708916321962332268044989915963912096320232108209222833793342545715997894909018045791029269113233512965967689480230111811446104761644913894315538303878135576742945016509541203672005652887673445999651536763104630671785678987328273895281704066349665444433423261237918787244547185768699446539998481610877788463683515116274443561326642073858179234043834311693959186125669789920477623521254209602160265136916807792024959792500809339532801181011411449977308864187840992546280802829943726318415381631226507673858045166440179724632108618733807129081461158018156691246795996810731135755419495672524901588652609878771119294053717022193359976565663688163433279482185810945010274275246616865601750604019623538428176621389475292836077673598477518711590512694254139491649888362255995008067958476362475421873564978214877026836971202055439266930503424986938149418896636415581085837197620667369841466303879782624395361418804501605355329574440154528115231194849481113890280420220037110057837884095176737977252084002772043566985436357992035187199870724397866251058547925288862712459279352629252551720754642684545207310910174891906445152715566278425023618794809493200581599776133701854432613350712177714460760325731340167462904663666899680878606404523873097437707817152818270407462622302542800581849581492242391614354420943308066284638490895023300085453361463132917192334326350756221318302038072412088683872212179082087027094114064758520357059757136092509071557949765736667821599093328003380675192184424109933628223645150946254486472275508331605668200017190093577335924085646906757324979372844937106674393904680151391496944272832562753777483671602226666213388637117516873821336548779272035461758949645190075400636852043632602380773885238645261827535110049635105689935404362693748961853644889692198234480892248874460611213037947771912236547251511942394634628940777806047697853443855917230091280140965523391531087104837758011796688930943509768360520054349765530124455127458544982001310529292438311609010801982531006677556281421773230326862538481583453589807858079591098864428165411332648253397961042574535983411926911493342499027031509451820284888535826640851960347332726874382991977375326372974896097043414741124680463604154179130137415027358816444269945543085348182292752359508005590982544216675315604946231345801613170919858929880541592384716938726543503897537981600033560331955748900495455836090915487093440068040317188384603348064940144489795090307226543408286713134268608028379360740397303449962514788395483518539224607918526534988554265546429490118941833175676048790907988144378512664648156220110684331507965230940960285299176839045339112703409609835566992160181801640026453613979593153593045174917580925535618007637199199909173126026653085929690950455706276690815918640896663369966097408906632697135484336512753316781184637157323458813308330107903689284491608084382477007592399017868557962385949792568105691000609176557396633440049776746071386381040248003949936474913916941943230594106811666194487683892332354706308800495999446266778836155332753318611246133166352226596782432074150959280381846130617275632124923781090259769489569085506297445318296719005889606304910976775524820760690055996587791